diff -Nru virtualbox-4.1.12-dfsg/Config.kmk virtualbox-4.1.44-dfsg/Config.kmk --- virtualbox-4.1.12-dfsg/Config.kmk 2012-04-02 13:24:34.000000000 +0000 +++ virtualbox-4.1.44-dfsg/Config.kmk 2015-11-11 15:05:58.000000000 +0000 @@ -7,7 +7,7 @@ # # -# Copyright (C) 2006-2012 Oracle Corporation +# Copyright (C) 2006-2014 Oracle Corporation # # This file is part of VirtualBox Open Source Edition (OSE), as # available from http://www.virtualbox.org. This file is free software; @@ -100,6 +100,7 @@ INST_TESTSUITE = testsuite/ INST_LIB = lib/ INST_ADDITIONS_LIB = $(INST_LIB)additions/ + VBOX_INST_TOOLS = $(INST_BIN)tools/ else @@ -122,6 +123,7 @@ INST_TESTSUITE = testsuite/ INST_LIB = lib/ INST_ADDITIONS_LIB = $(INST_LIB)additions/ + VBOX_INST_TOOLS = $(INST_BIN)tools/ endif INST_DOC = doc/ @@ -192,7 +194,7 @@ # This is the current build number. It should be increased every time we publish a # new build. The define is available in every source file. Only even build numbers # will be published, odd numbers are set during development. -VBOX_VERSION_BUILD = 12 +VBOX_VERSION_BUILD = 44 # The raw version string. This *must not* contain any other information/fields than # major, minor and build revision (as it is now) -- also will be used for host/guest version # comparison. @@ -205,6 +207,9 @@ # Force the additions.sh script to get an exact additions build when we're doing the release. ifeq ($(int-mod $(VBOX_VERSION_BUILD),2),0) + VBOX_RELEASE_EXACT_MATCH=1 +endif +ifneq ($(VBOX_RELEASE_EXACT_MATCH),) export VBOX_ADDITIONS_SH_MODE = release export VBOX_DOCUMENTATION_SH_MODE = release export VBOX_EFI_SH_MODE = release @@ -463,6 +468,8 @@ if1of ($(KBUILD_TARGET), darwin freebsd linux solaris win) VBOX_WITH_HOSTNETIF_API = 1 endif +# Emulated USB smart card reader +VBOX_WITH_USB_CARDREADER = 1 ## @} @@ -561,8 +568,6 @@ endif # Enable the VNC server in VBoxHeadless (GPL only). #VBOX_WITH_VNC = 1 -# Enable S3 support (requires libcurl) -VBOX_WITH_S3 = 1 ## @} @@ -638,9 +643,7 @@ ## @{ # Enables hardening. # Most developers will want to disable this in their LocalConfig.kmk. -ifn1of ($(KBUILD_TARGET), win) - VBOX_WITH_HARDENING = 1 -endif +VBOX_WITH_HARDENING = 1 # Where the application files are (going to be) installed. #VBOX_PATH_APP_PRIVATE = /usr/lib/virtualbox ifdef VBOX_WITH_HARDENING @@ -699,13 +702,11 @@ endif endif # Enable the system wide support service/daemon. -# Work in progress, but required for hardening on Windows. +# Very sketchy work in progress. #VBOX_WITH_SUPSVC = 1 -ifdef VBOX_WITH_HARDENING - if1of ($(KBUILD_TARGET), win) - VBOX_WITH_SUPSVC = 1 - endif -endif + +# Continue to support Vista w/o any service pack, at least for now. +VBOX_WITH_VISTA_NO_SP = 1 ## @} @@ -939,6 +940,15 @@ endif # +# Indicate VBOX_ONLY build if any of the VBOX_ONLY_* variables are set. +# +VBOX_ONLY_BUILD := $(strip $(foreach x, ADDITIONS DOCS EXTPACKS SDK TESTSUITE\ + , $(if-expr defined(VBOX_ONLY_$(x)),VBOX_ONLY_$(x)))) +if $(words $(VBOX_ONLY_BUILD)) > 1 + $(error VBox: More than one VBOX_ONLY build enabled! $(VBOX_ONLY_BUILD)) +endif + +# # For the docs build box. # ifdef VBOX_ONLY_DOCS @@ -1297,6 +1307,11 @@ if !defined(VBOX_USE_VCC100) && !defined(VBOX_USE_VCC90) && !defined(VBOX_USE_VCC80) && !defined(VBOX_USE_VCC70) VBOX_USE_VCC70 := 1 endif +ifdef VBOX_USE_VCC70 + VBOX_VCC_LINK_DYNAMIC_BASE_AND_NX_COMPAT = +else + VBOX_VCC_LINK_DYNAMIC_BASE_AND_NX_COMPAT = /DynamicBase /NxCompat +endif # # The kBuild tools and SDKs are using PATH_DEVTOOLS, PATH_DEVTOOLS_BLD @@ -1436,7 +1451,7 @@ # Compiler optimization flags. # VBOX_GCC_WARN ?= -Wall $(VBOX_GCC_Wextra) $(VBOX_GCC_Wno-missing-field-initializers) -Wno-unused -Wno-trigraphs $(VBOX_GCC_fdiagnostics-show-option) -VBOX_GCC_PEDANTIC_CXX ?= -pedantic -Wshadow $(VBOX_GCC_WARN) -Wno-long-long +VBOX_GCC_PEDANTIC_CXX ?= -pedantic -Wshadow $(VBOX_GCC_WARN) -Wno-long-long $(VBOX_GCC_Wno-delete-non-virtual-dtor) VBOX_GCC_PEDANTIC_C ?= -pedantic -Wshadow $(VBOX_GCC_WARN) -Wno-long-long -Wmissing-prototypes -Wstrict-prototypes -Wmissing-declarations -Werror-implicit-function-declaration ifeq ($(KBUILD_TYPE),debug) VBOX_GCC_FP ?= -fno-omit-frame-pointer @@ -1680,6 +1695,20 @@ # RTManifest (extension pack manifest utility) VBOX_RTMANIFEST ?= $(PATH_OBJ)/bldRTManifest/bldRTManifest$(HOSTSUFF_EXE) +# RTSignTool (certificate extraction tool) +VBOX_RTSIGNTOOL ?= $(PATH_OBJ)/bldRTSignTool/bldRTSignTool$(HOSTSUFF_EXE) + +# Visual C++ EditBin.exe. +ifndef VBOX_USE_VCC70 + VBOX_VCC_EDITBIN = $(if $(PATH_TOOL_$(VBOX_VCC_TOOL)_BIN),$(PATH_TOOL_$(VBOX_VCC_TOOL)_BIN)/,)editbin.exe /NoLogo + VBOX_VCC_SET_INTEGRITY_CHECK = $(NO_SUCH_VARIABLE) # linker does this +else + ## HACK ALERT! We ASSUME we have the 2005 compiler handy so we can use it's editbin to enable integrity checking. + VBOX_VCC_EDITBIN = $(PATH_DEVTOOLS)/win.x86/vcc/v8sp1/bin/editbin.exe /NoLogo + VBOX_VCC_SET_INTEGRITY_CHECK = $(if $(eq $(tool_do),LINK_LIBRARY),,$(VBOX_VCC_EDITBIN) \ + /LargeAddressAware /DynamicBase /NxCompat /Release /IntegrityCheck "$(subst /,\,$1)" $2) +endif + # filesplitter (splits java files) VBOX_FILESPLIT ?= $(PATH_OBJ)/filesplitter/filesplitter$(HOSTSUFF_EXE) @@ -2069,12 +2098,12 @@ VBOX_GCC32_CHECK_CXX = $(2) else VBOX_GCC_CHECK_CC = $(shell \ - if $(TOOL_$(VBOX_GCC_TOOL)_CC) $(1) -S -o /dev/null -xc /dev/null > /dev/null 2>&1; \ + if $(TOOL_$(VBOX_GCC_TOOL)_CC) $(subst -Wno-,-W,$(1)) -S -o /dev/null -xc /dev/null > /dev/null 2>&1; \ then echo "$(1)"; \ else echo "$(2)"; fi; ) VBOX_GCC_CHECK_CXX = $(shell \ - if $(TOOL_$(VBOX_GCC_TOOL)_CXX) $(1) -S -o /dev/null -xc++ /dev/null > /dev/null 2>&1; \ + if $(TOOL_$(VBOX_GCC_TOOL)_CXX) $(subst -Wno-,-W,$(1)) -S -o /dev/null -xc++ /dev/null > /dev/null 2>&1; \ then echo "$(1)"; \ else echo "$(2)"; fi; ) @@ -2112,17 +2141,18 @@ $(APPEND) '$@' 'VBOX_GCC_VERSION_CXX ?= $(call VBOX_GCC_VERSION,$(TOOL_$(VBOX_GCC_TOOL)_CXX))' $(APPEND) '$@' 'VBOX_GCC_LIBGCC ?= $(shell $(TOOL_$(VBOX_GCC_TOOL)_CC) -print-libgcc-file-name)' $(APPEND) '$@' 'VBOX_GCC_Wno-pointer-sign ?= $(call VBOX_GCC_CHECK_CC,-Wno-pointer-sign,)' - $(APPEND) '$@' 'VBOX_GCC_Wno-array_bounds ?= $$(if $$(int-ge $$(VBOX_GCC_VERSION_CXX),40300),-Wno-array-bounds,)' + $(APPEND) '$@' 'VBOX_GCC_Wno-array_bounds ?= $(call VBOX_GCC_CHECK_CC,-Wno-array-bounds,)' # -Wextra produces additional useful warnings but includes -Wno-missing-field-initializers (too noisy) $(APPEND) '$@' 'VBOX_GCC_Wextra ?= $(call VBOX_GCC_CHECK_CC,-Wextra,)' $(APPEND) '$@' 'VBOX_GCC_Wlogical-op ?= $(call VBOX_GCC_CHECK_CC,-Wlogical-op,)' + $(APPEND) '$@' 'VBOX_GCC_Wno-delete-non-virtual-dtor ?= $(call VBOX_GCC_CHECK_CXX,-Wno-delete-non-virtual-dtor,)' + $(APPEND) '$@' 'VBOX_GCC_Wno-int-to-pointer-cast ?= $(call VBOX_GCC_CHECK_CC,-Wno-int-to-pointer-cast,)' + $(APPEND) '$@' 'VBOX_GCC_Wno-invalid-offsetof ?= $(call VBOX_GCC_CHECK_CXX,-Wno-invalid-offsetof,)' $(APPEND) '$@' 'VBOX_GCC_Wno-missing-field-initializers ?= $(call VBOX_GCC_CHECK_CC,-Wno-missing-field-initializers,)' - $(APPEND) '$@' 'VBOX_GCC_Wno-pointer-to-int-cast ?= $(call VBOX_GCC_CHECK_CC,-Wno-pointer-to-int-cast,)' - $(APPEND) '$@' 'VBOX_GCC_Wno-int-to-pointer-cast ?= $(call VBOX_GCC_CHECK_CC,-Wno-int-to-pointer-cast,)' + $(APPEND) '$@' 'VBOX_GCC_Wno-pointer-to-int-cast ?= $(call VBOX_GCC_CHECK_CC,-Wno-pointer-to-int-cast,)' $(APPEND) '$@' 'VBOX_GCC_Wno-variadic-macros ?= $(call VBOX_GCC_CHECK_CXX,-Wno-variadic-macros,)' - $(APPEND) '$@' 'VBOX_GCC_Wno-invalid-offsetof ?= $(call VBOX_GCC_CHECK_CXX,-Wno-invalid-offsetof,)' - $(APPEND) '$@' 'VBOX_GCC_fno-stack-protector ?= $(call VBOX_GCC_CHECK_CC,-fno-stack-protector,)' $(APPEND) '$@' 'VBOX_GCC_fdiagnostics-show-option ?= $(call VBOX_GCC_CHECK_CC,-fdiagnostics-show-option,)' + $(APPEND) '$@' 'VBOX_GCC_fno-stack-protector ?= $(call VBOX_GCC_CHECK_CC,-fno-stack-protector,)' # Produce code optimized for the most common IA32/AMD64/EM64T processors. Introduced with gcc version 4.2. $(APPEND) '$@' 'VBOX_GCC_mtune-generic ?= $(call VBOX_GCC_CHECK_CC,-mtune=generic,)' $(APPEND) '$@' 'VBOX_LD_as_needed ?= $(call VBOX_GCC_CHECK_LD,--as-needed,)' @@ -2292,6 +2322,10 @@ # ifdef VBOX_SIGNING_MODE ifeq ($(KBUILD_HOST),win) + # + # Windows + # + # VBOX_PATH_SELFSIGN points to the Vista WDK bin/SelfSign directory. ifndef VBOX_PATH_SELFSIGN VBOX_PATH_SELFSIGN := $(lastword $(sort $(wildcard $(PATH_DEVTOOLS)/win.x86/selfsign/*))) @@ -2308,8 +2342,8 @@ VBOX_CERTIFICATE_SUBJECT_NAME_ARGS ?= /n "$(VBOX_CERTIFICATE_SUBJECT_NAME)" else if1of ($(VBOX_SIGNING_MODE), release development) VBOX_CERTIFICATE_SUBJECT_NAME ?= Oracle Corporation - VBOX_CERTIFICATE_SUBJECT_NAME_ARGS ?= /n "$(VBOX_CERTIFICATE_SUBJECT_NAME)" - VBOX_CROSS_CERTIFICATE_FILE ?= $(VBOX_PATH_SELFSIGN)/MSCV-VSClass3.cer + VBOX_CERTIFICATE_SUBJECT_NAME_ARGS ?= /n "$(VBOX_CERTIFICATE_SUBJECT_NAME)" /a + VBOX_CROSS_CERTIFICATE_FILE ?= $(VBOX_PATH_SELFSIGN)/VeriSign Class 3 Public Primary Certification Authority - G5.cer VBOX_CROSS_CERTIFICATE_FILE_ARGS ?= /ac "$(VBOX_CROSS_CERTIFICATE_FILE)" VBOX_TSA_URL ?= http://timestamp.verisign.com/scripts/timestamp.dll VBOX_TSA_URL_ARGS ?= /t "$(VBOX_TSA_URL)" @@ -2318,19 +2352,29 @@ endif VBOX_CERTIFICATE_STORE ?= my VBOX_CERTIFICATE_STORE_ARGS ?= /s "$(VBOX_CERTIFICATE_STORE)" + VBOX_CERTIFICATE_FINGERPRINT_ARGS := $(if-expr "$(VBOX_CERTIFICATE_FINGERPRINT)" != "" \ + ,/sha1 "$(subst $(SP),,$(VBOX_CERTIFICATE_FINGERPRINT))",) ## Commands for signing a driver image after link. - VBOX_SIGN_DRIVER_CMDS ?= $(if $(eq $(tool_do),LINK_LIBRARY),,$(call VBOX_SIGN_FILE_FN,$(out))) - ## Sign a file. + VBOX_SIGN_DRIVER_CMDS ?= $(if $(eq $(tool_do),LINK_LIBRARY),,$(call VBOX_SIGN_IMAGE_FN,$(out))) + ## Sign a file (generic). # @param 1 The file to sign. # @param 2 File description. Optional. + # @param 3 Additional parameters. Optional. VBOX_SIGN_FILE_FN ?= $(VBOX_SIGNTOOL) sign \ $(VBOX_CROSS_CERTIFICATE_FILE_ARGS) \ $(VBOX_CERTIFICATE_STORE_ARGS) \ $(VBOX_CERTIFICATE_SUBJECT_NAME_ARGS) \ + $(VBOX_CERTIFICATE_FINGERPRINT_ARGS) \ $(VBOX_TSA_URL_ARGS) \ $(if $(strip $(2)),/d "$(strip $(2))",) \ + $(3) \ $(1) + ## Sign an executable image. + # @param 1 The file to sign. + # @param 2 File description. Optional. + VBOX_SIGN_IMAGE_FN ?= $(call VBOX_SIGN_FILE_FN,$(1),$(2),/ph) + ## Create a security catalog file. # @param 1 The directory containing the stuff to sign. # @param 2 The expected .cat name. (Inf2Cat lowercases it) @@ -2349,16 +2393,76 @@ endif # Go nuts, sign everything. - ifeq ($(strip $(VBOX_SIGNING_MODE)),release) + if "$(strip $(VBOX_SIGNING_MODE))" == "release" || defined(VBOX_WITH_HARDENING) ## Commands for signing an executable or a dll image after link. - VBOX_SIGN_IMAGE_CMDS ?= $(if $(eq $(tool_do),LINK_LIBRARY),,$(call VBOX_SIGN_FILE_FN,$(out))) + VBOX_SIGN_IMAGE_CMDS ?= $(if $(eq $(tool_do),LINK_LIBRARY),,$(call VBOX_SIGN_IMAGE_FN,$(out))) endif ## Enable signing of the additions. VBOX_SIGN_ADDITIONS ?= 1 + + else ifeq ($(KBUILD_HOST),darwin) + # + # Darwin code signing. + # + # Currently release signing is done when packing. This may change later. + # (Installer package signing is done elsewhere (VBOX_MACOSX_INSTALLER_SIGN).) + # + if defined(VBOX_CERTIFICATE_FINGERPRINT) && !defined(VBOX_CERTIFICATE_SUBJECT_NAME) + VBOX_CERTIFICATE_SUBJECT_NAME = $(subst $(SP),,$(VBOX_CERTIFICATE_FINGERPRINT)) + endif + ifeq ($(strip $(VBOX_SIGNING_MODE)),test) + VBOX_CERTIFICATE_SUBJECT_NAME ?= $(error You, need to set VBOX_CERTIFICATE_SUBJECT_NAME in LocalConfig.kmk.) + VBOX_CERTIFICATE_SUBJECT_NAME_ARGS ?= --sign "$(VBOX_CERTIFICATE_SUBJECT_NAME)" + else if1of ($(VBOX_SIGNING_MODE), release development) + VBOX_CERTIFICATE_SUBJECT_NAME ?= Developer ID Application: Oracle America, Inc. + VBOX_CERTIFICATE_SUBJECT_NAME_ARGS ?= --sign "$(VBOX_CERTIFICATE_SUBJECT_NAME)" + else + $(error VBox: Unknown VBOX_SIGNING_MODE: $(VBOX_SIGNING_MODE)) + endif + + VBOX_CODESIGN ?= codesign + ## Sign an application bundle, framework or kernel extension. + # @param 1 The bundle to sign. + # @param 2 Identifier, optional. + VBOX_SIGN_BUNDLE_FN = $(VBOX_CODESIGN) \ + --verbose=9 \ + --force \ + --file-list - \ + $(VBOX_CERTIFICATE_SUBJECT_NAME_ARGS) \ + $(1) $(if $(2),--identifier "$(2)",) + + ## Sign a Mach-O image. + # @param 1 The bundle to sign. + # @param 2 Identifier, optional. + VBOX_SIGN_MACHO_FN = $(VBOX_CODESIGN) \ + --verbose=9 \ + --force \ + --file-list - \ + $(VBOX_CERTIFICATE_SUBJECT_NAME_ARGS) \ + $(1) \ + $(if $(2),--identifier "$(2)",) + + ## Sign a VMM Mach-O image. + # @param 1 The bundle to sign. + # @param 2 Identifier, optional. + VBOX_SIGN_VMM_MOD_FN = $(VBOX_CODESIGN) \ + --verbose=9 \ + --force \ + --file-list - \ + $(VBOX_CERTIFICATE_SUBJECT_NAME_ARGS) \ + $(1) -D $(1).codesign \ + $(if $(2),--identifier "$(2)",) + else - # Not windows build platform, ignore. + # Not Windows or mac os x build host, ignore. VBOX_SIGNING_MODE := endif + +# +# Complain if windows hardening is enabled but not code signing. +# +else if "$(KBUILD_TARGET)" == "win" && defined(VBOX_WITH_HARDENING) && !defined(VBOX_ONLY_BUILD) + $(error You need to enable code signing for a hardened windows build to work.) endif # @@ -2389,6 +2493,48 @@ --output $(2) \ $(1) +## +# Helper macro for re-signing DLL images from tools that we ship so they won't +# cause trouble for the hardened build requirements. +# +# Invoke via $(call VBOX_RE_SIGN_DLL_FN) inside the SOURCES list. Necessary +# _CLEAN entry will be added to the target. If hardening is not enabled or +# we're not on windows, the source will be returned. +# +# @returns Name of the output file name. May have leading space, but no trailing. +# @param 1 Target name. +# @param 2 The source name. +# +if defined(VBOX_SIGNING_MODE) && "$(KBUILD_TARGET)" == "win" + VBOX_RE_SIGN_DLL_FN = $(if-expr !defined($(1)_VBOX_RE_SIGNED_$(notdir $(2))),\ + $(evalcall VBOX_RE_SIGN_DLL_INTERNAL_FN,$1,$2)\ + ,)$($(1)_0_OUTDIR)/$(notdir $2) + +define VBOX_RE_SIGN_DLL_INTERNAL_FN +local n = $(notdir $2) +ifndef $(1)_VBOX_RE_SIGNED_$(n) + $(1)_VBOX_RE_SIGNED_$(n) := 1 + $(eval $(1)_CLEAN += $$($(1)_0_OUTDIR)/$(n)) + + $$($(1)_0_OUTDIR)/$(n): $(2) $(VBOX_VERSION_STAMP) | $$(dir $$@) + $(call MSG_TOOL,SIGNTOOL,,$<,$@) + $(RM) -f -- "$@" + $(CP) -- "$<" "$@" + $(VBOX_VCC_EDITBIN) /LargeAddressAware /DynamicBase /NxCompat /Release /IntegrityCheck \ + /Version:$(VBOX_VERSION_MAJOR)0$(VBOX_VERSION_MINOR).$(VBOX_VERSION_BUILD) \ + "$@" + $(call VBOX_SIGN_IMAGE_FN,$@) +endif +endef # VBOX_RESIGN_DLL_FN +else + VBOX_RE_SIGN_DLL_FN = $(2) +endif + + +## +# @param +VBOX_RESIGN_DLL_FN = + # # Adjust kBuild defaults. # @@ -2421,19 +2567,19 @@ # SDKs for external libraries. # SDK_VBOX_LIBXML2 = . -SDK_VBOX_LIBXML2_INCS ?= $(PATH_ROOT)/src/libs/libxml2-2.6.31/include +SDK_VBOX_LIBXML2_INCS ?= $(PATH_ROOT)/src/libs/libxml2-2.9.2/include SDK_VBOX_LIBXML2_DEFS ?= _REENTRANT SDK_VBOX_LIBXML2_DEFS.win += WIN32 _WINDOWS _MBCS # note: no linking to LIB here, we do that explicitly in src/VBox/Runtime/Makefile.kmk to link # libxml against VBoxRT SDK_VBOX_LIBPNG = . -SDK_VBOX_LIBPNG_INCS ?= $(PATH_ROOT)/src/libs/libpng-1.2.8 +SDK_VBOX_LIBPNG_INCS ?= $(PATH_ROOT)/src/libs/libpng-1.2.53 SDK_VBOX_LIBPNG_LIBS ?= $(PATH_STAGE_LIB)/VBox-libpng$(VBOX_SUFF_LIB) SDK_VBOX_ZLIB = . if1of ($(KBUILD_TARGET), os2 solaris win) - SDK_VBOX_ZLIB_INCS ?= $(PATH_ROOT)/src/libs/zlib-1.2.6 + SDK_VBOX_ZLIB_INCS ?= $(PATH_ROOT)/src/libs/zlib-1.2.8 SDK_VBOX_ZLIB_LIBS ?= $(PATH_STAGE_LIB)/VBox-zlib$(VBOX_SUFF_LIB) else SDK_VBOX_ZLIB_INCS ?= @@ -2466,21 +2612,6 @@ $(PATH_STAGE_LIB)/VBoxExtPack-libssl$(VBOX_SUFF_LIB) \ $(PATH_STAGE_LIB)/VBoxExtPack-libcrypto$(VBOX_SUFF_LIB) -SDK_VBOX_BLD_OPENSSL = . -SDK_VBOX_BLD_OPENSSL_EXTENDS = VBOX_OPENSSL -SDK_VBOX_BLD_OPENSSL_LIBS ?= \ - $(PATH_STAGE_LIB)/VBoxBldProg-libcrypto$(VBOX_SUFF_LIB) -SDK_VBOX_BLD_OPENSSL_LIBS.linux ?= \ - crypt - -ifdef VBOX_WITH_S3 -VBOX_WITH_LIBCURL = 1 -SDK_VBOX_LIBCURL = . -SDK_VBOX_LIBCURL_INCS ?= $(PATH_ROOT)/src/libs/curl-7.19.4/include -SDK_VBOX_LIBCURL_LIBS ?= $(PATH_STAGE_LIB)/VBox-libcurl$(VBOX_SUFF_LIB) -SDK_VBOX_LIBCURL_DEFS ?= BUILDING_LIBCURL -endif - SDK_VBOX_FFMPEG = . if1of ($(KBUILD_TARGET), darwin linux os2 solaris win) SDK_VBOX_FFMPEG_INCS ?= \ @@ -2511,6 +2642,27 @@ SDK_VBOX_NTDLL_LIBS.amd64 ?= $(PATH_STAGE_LIB)/RuntimeR3NtDll-amd64.lib # +# SDK for getting newer SDK headers for some of the hardening stuff. +# +SDK_VBoxPsdk200702 = Windows 2007/02 SDK. +PATH_SDK_VBoxPsdk200702 ?= $(PATH_DEVTOOLS)/win.x86/sdk/x200702/ +SDK_VBoxPsdk200702_INCS = \ + $(PATH_SDK_VBoxPsdk200702)/Include +SDK_VBoxPsdk200702_LIBS.x86 = \ + $(PATH_SDK_VBoxPsdk200702)/Lib/Uuid.Lib \ + $(PATH_SDK_VBoxPsdk200702)/Lib/credui.lib \ + $(PATH_SDK_VBoxPsdk200702)/Lib/Secur32.Lib \ + $(PATH_SDK_VBoxPsdk200702)/Lib/ShLwApi.Lib \ + $(PATH_SDK_VBoxPsdk200702)/Lib/NetAPI32.Lib +SDK_VBoxPsdk200702_LIBS.amd64 = \ + $(PATH_SDK_VBoxPsdk200702)/Lib/x64/Uuid.Lib \ + $(PATH_SDK_VBoxPsdk200702)/Lib/x64/credui.lib \ + $(PATH_SDK_VBoxPsdk200702)/Lib/x64/Secur32.Lib \ + $(PATH_SDK_VBoxPsdk200702)/Lib/x64/ShLwApi.Lib \ + $(PATH_SDK_VBoxPsdk200702)/Lib/x64/NetAPI32.Lib + + +# # The linux kernel headers(/sources). # if1of ($(KBUILD_TARGET), linux) @@ -2524,7 +2676,8 @@ ifneq ($(VBOX_LINUX_SRC),) ifeq ($(origin VBOX_LINUX_INCS),undefined) export VBOX_LINUX_INCS := $(VBOX_LINUX_SRC)/include - # XXX hack alert! support splitted Linux kernels (make O=) + # XXX hack alert! Support split Linux kernels (make O=). kernelpath points to + # the obj directory while VBOX_LINUX_SRC points to the virgin source directory. # XXX put this crap elsewhere kernelpath := $(shell $(SED_EXT) -ne 's+^KERNELSRC.*= *\(.*\)+\1+p' $(VBOX_LINUX_SRC)/Makefile) ifeq ($(kernelpath),) @@ -2548,13 +2701,20 @@ $(kernelpath)/include/asm-x86/mach-default \ $(kernelpath)/arch/x86/include \ $(kernelpath)/arch/x86/include/asm/mach-default \ - $(kernelpath)/arch/x86/include/generated \ + $(kernelpath)/arch/x86/include/uapi \ + $(VBOX_LINUX_SRC)/arch/x86/include/generated \ + $(VBOX_LINUX_SRC)/arch/x86/include/generated/uapi \ + $(kernelpath)/include/uapi \ + $(VBOX_LINUX_SRC)/include/generated/uapi \ $(kernelpath)/include endif endif # Since Linux 2.6.15, is included like this. It cannot hurt to do the # same for older Linux kernels - ifneq ($(wildcard $(VBOX_LINUX_SRC)/include/generated/autoconf.h),) + ifneq ($(wildcard $(kernelpath)/include/linux/kconfig.h),) + # Linux >= 3.1 + export VBOX_LINUX_INCLUDE := -include $(kernelpath)/include/linux/kconfig.h + else ifneq ($(wildcard $(VBOX_LINUX_SRC)/include/generated/autoconf.h),) # Linux >= 2.6.33 export VBOX_LINUX_INCLUDE := -include $(VBOX_LINUX_SRC)/include/generated/autoconf.h else ifneq ($(wildcard $(VBOX_LINUX_SRC)/include/linux/autoconf.h),) @@ -2582,7 +2742,11 @@ # uname -v can report "snv_XYZ" or "11.X" VBOX_SOLARIS_11_VERSION = $(shell uname -v | sed 's/snv_//' | cut -f1 -d'.') ifeq ($(VBOX_SOLARIS_11_VERSION),11) - VBOX_SOLARIS_11_VERSION = $(shell pkg contents -H -t set -o pkg.fmri entire | head -1 | sed 's/^.*\@//;s/\:.*//;s/.*,//' | cut -f2 -d'-' | cut -f2 -d'.') + VBOX_SOLARIS_11_FULLVERSION = $(shell pkg contents -H -t set -o pkg.fmri entire | $(SED_EXT) -e '1!d' -e 's/^.*\@//;s/\:.*//;s/.*,//') + # FULLVERSION format e.g. "5.11-0.175.1.0.0.16.0", we're interested in 175 (VERSION), 1 (UPDATE), 16 (BUILD). + VBOX_SOLARIS_11_VERSION = $(word 2, $(subst ., ,$(word 2,$(subst -, ,$(VBOX_SOLARIS_11_FULLVERSION))))) + VBOX_SOLARIS_11_UPDATE_VERSION = $(word 3, $(subst ., ,$(word 2,$(subst -, ,$(VBOX_SOLARIS_11_FULLVERSION))))) + VBOX_SOLARIS_11_BUILD_VERSION = $(word 6, $(subst ., ,$(word 2,$(subst -, ,$(VBOX_SOLARIS_11_FULLVERSION))))) endif # OSS audio support for Solaris @@ -2612,7 +2776,13 @@ TEMPLATE_VBoxRc_CXXFLAGS = -Zi -Zl -GR- -EHs- -GF -W3 -wd4244 $(VBOX_VCC_GC_OPT) $(VBOX_VCC_GC_FP) $(VBOX_VCC_WERR) endif TEMPLATE_VBoxRc_CFLAGS = $(TEMPLATE_VBoxRc_CXXFLAGS) - TEMPLATE_VBoxRc_LDFLAGS = -Driver -Subsystem:NATIVE -Incremental:NO -Align:64 -MapInfo:Exports -NoD $(VBOX_VCC_LD_WERR) -Debug + TEMPLATE_VBoxRc_LDFLAGS = \ + -Driver -Subsystem:NATIVE -Incremental:NO -Align:64 -MapInfo:Exports -NoD $(VBOX_VCC_LD_WERR) -Release -Debug \ + -Version:$(VBOX_VERSION_MAJOR)0$(VBOX_VERSION_MINOR).$(VBOX_VERSION_BUILD) \ + -Stub:$(PATH_ROOT)/src/VBox/HostDrivers/Support/win/winstub.com + if defined(VBOX_SIGNING_MODE) && !defined(VBOX_USE_VCC70) + TEMPLATE_VBoxRc_LDFLAGS += -IntegrityCheck + endif ifdef VBOX_USE_WINDDK ifndef VBOX_NOINC_MISC include $(KBUILD_PATH)/sdks/$(VBOX_WINDDK).kmk @@ -2628,7 +2798,7 @@ endif TEMPLATE_VBoxRc_LIBS += \ $(PATH_STAGE_LIB)/RuntimeRCStub$(VBOX_SUFF_LIB) - TEMPLATE_VBoxRc_POST_CMDS = $(VBOX_SIGN_IMAGE_CMDS) + TEMPLATE_VBoxRc_POST_CMDS = $(call VBOX_VCC_SET_INTEGRITY_CHECK,$(out),&&) $(VBOX_SIGN_IMAGE_CMDS) endif # pe ifeq ($(VBOX_LDR_FMT32),elf) @@ -2680,7 +2850,10 @@ TEMPLATE_VBoxRcExe_MODE = $(NO_SUCH_VARIABLE) ifeq ($(VBOX_LDR_FMT32),pe) - TEMPLATE_VBoxRcExe_LDFLAGS = -Incremental:NO -MapInfo:Exports -NoD -Debug + TEMPLATE_VBoxRcExe_LDFLAGS = \ + -Incremental:NO -MapInfo:Exports -NoD -Debug \ + -Version:$(VBOX_VERSION_MAJOR)0$(VBOX_VERSION_MINOR).$(VBOX_VERSION_BUILD) \ + -Stub:$(PATH_ROOT)/src/VBox/HostDrivers/Support/win/winstub.com TEMPLATE_VBoxRcExe_SDKS = WIN32SDK ifndef VBOX_USE_VCC70 TEMPLATE_VBoxRcExe_LIBS = \ @@ -2743,7 +2916,13 @@ TEMPLATE_VBoxR0_CXXFLAGS = -Zi -Zl -GR- -EHs- -GF -W3 -wd4244 $(VBOX_VCC_OPT) $(VBOX_VCC_FP) $(VBOX_VCC_WERR) endif TEMPLATE_VBoxR0_CFLAGS = $(TEMPLATE_VBoxR0_CXXFLAGS) -TEMPLATE_VBoxR0_LDFLAGS = -Driver -Subsystem:NATIVE -Incremental:NO -Align:4096 -MapInfo:Exports -NoD $(VBOX_VCC_LD_WERR) -Debug +TEMPLATE_VBoxR0_LDFLAGS = \ + -Driver -Subsystem:NATIVE -Incremental:NO -Align:4096 -MapInfo:Exports -NoD $(VBOX_VCC_LD_WERR) -Release -Debug \ + -Version:$(VBOX_VERSION_MAJOR)0$(VBOX_VERSION_MINOR).$(VBOX_VERSION_BUILD) \ + -Stub:$(PATH_ROOT)/src/VBox/HostDrivers/Support/win/winstub.com + if defined(VBOX_SIGNING_MODE) && !defined(VBOX_USE_VCC70) + TEMPLATE_VBoxR0_LDFLAGS += -IntegrityCheck + endif TEMPLATE_VBoxR0_LIBS = \ $(PATH_STAGE_LIB)/RuntimeR0Stub$(VBOX_SUFF_LIB) ifdef VBOX_USE_WINDDK @@ -2753,7 +2932,7 @@ TEMPLATE_VBoxR0_LIBS.x86 = \ $(PATH_SDK_W2K3DDKX86_LIB)/int64.lib endif -TEMPLATE_VBoxR0_POST_CMDS = $(VBOX_SIGN_DRIVER_CMDS) +TEMPLATE_VBoxR0_POST_CMDS = $(call VBOX_VCC_SET_INTEGRITY_CHECK,$(out),&&) $(VBOX_SIGN_DRIVER_CMDS) endif # pe ifeq ($(VBOX_LDR_FMT),elf) @@ -2832,17 +3011,24 @@ TEMPLATE_VBOXR0DRV_DEFS.x86 = _X86_ TEMPLATE_VBOXR0DRV_DEFS.amd64 = _AMD64_ ifndef VBOX_USE_VCC70 - TEMPLATE_VBOXR0DRV_CXXFLAGS = -Zi -Zl -GR- -EHs- -GF -Gz -W3 -GS- -wd4996 -Zc:wchar_t- $(VBOX_VCC_OPT) $(VBOX_VCC_FP) + TEMPLATE_VBOXR0DRV_CXXFLAGS = -Zi -Zl -GR- -EHs- -GF -Gz -W3 -Gs4096 -GS- -wd4996 -Zc:wchar_t- $(VBOX_VCC_OPT) $(VBOX_VCC_FP) else - TEMPLATE_VBOXR0DRV_CXXFLAGS = -Zi -Zl -GR- -EHs- -GF -Gz -W3 $(VBOX_VCC_OPT) $(VBOX_VCC_FP) + TEMPLATE_VBOXR0DRV_CXXFLAGS = -Zi -Zl -GR- -EHs- -GF -Gz -W3 -Gs4096 $(VBOX_VCC_OPT) $(VBOX_VCC_FP) endif TEMPLATE_VBOXR0DRV_CFLAGS = $(TEMPLATE_VBOXR0DRV_CXXFLAGS) - TEMPLATE_VBOXR0DRV_LDFLAGS = -Driver -Subsystem:NATIVE -Incremental:NO -Align:4096 -MapInfo:Exports -NoD -Debug + TEMPLATE_VBOXR0DRV_LDFLAGS = \ + -Driver -Subsystem:NATIVE -Incremental:NO -Align:4096 -MapInfo:Exports -NoD -Release -Debug \ + -Version:$(VBOX_VERSION_MAJOR)0$(VBOX_VERSION_MINOR).$(VBOX_VERSION_BUILD) \ + -Stub:$(PATH_ROOT)/src/VBox/HostDrivers/Support/win/winstub.com TEMPLATE_VBOXR0DRV_POST_CMDS = $(VBOX_SIGN_DRIVER_CMDS) ifdef VBOX_USE_VCC100 # HACK ALERT! TEMPLATE_VBOXR0DRV_CINCS = $(TOOL_$(VBOX_VCC_TOOL)_CINCS) TEMPLATE_VBOXR0DRV_CXXINCS = $(TOOL_$(VBOX_VCC_TOOL)_CXXINCS) endif + if defined(VBOX_SIGNING_MODE) && !defined(VBOX_USE_VCC70) + TEMPLATE_VBOXR0DRV_LDFLAGS += -IntegrityCheck + endif + TEMPLATE_VBOXR0DRV_POST_CMDS = $(call VBOX_VCC_SET_INTEGRITY_CHECK,$(out),&&) $(VBOX_SIGN_DRIVER_CMDS) endif ifeq ($(KBUILD_TARGET),linux) @@ -3085,13 +3271,18 @@ TEMPLATE_VBOXR3EXE_CFLAGS.debug = $(TEMPLATE_VBOXR3EXE_CXXFLAGS.debug) TEMPLATE_VBOXR3EXE_CFLAGS.kprofile = $(TEMPLATE_VBOXR3EXE_CXXFLAGS.kprofile) TEMPLATE_VBOXR3EXE_LDFLAGS = \ - /NOD /INCREMENTAL:NO /MAPINFO:EXPORTS /LARGEADDRESSAWARE /DEBUG \ + /NOD /INCREMENTAL:NO /MAPINFO:EXPORTS /LargeAddressAware $(VBOX_VCC_LINK_DYNAMIC_BASE_AND_NX_COMPAT) /Release /Debug \ + /Version:$(VBOX_VERSION_MAJOR)0$(VBOX_VERSION_MINOR).$(VBOX_VERSION_BUILD) \ + /STUB:$(PATH_ROOT)/src/VBox/HostDrivers/Support/win/winstub.com \ /DISALLOWLIB:libc.lib \ /DISALLOWLIB:libcd.lib \ /DISALLOWLIB:libcmt.lib \ /DISALLOWLIB:libcmtd.lib \ /DISALLOWLIB:msvcrt$(VBOX_VCC_CRT_TYPE_N).lib \ /DISALLOWLIB:msvcprt$(VBOX_VCC_CRT_TYPE_N).lib + if defined(VBOX_SIGNING_MODE) && defined(VBOX_WITH_HARDENING) && !defined(VBOX_USE_VCC70) + TEMPLATE_VBOXR3EXE_LDFLAGS += -IntegrityCheck + endif TEMPLATE_VBOXR3EXE_LIBS.x86 = \ $(PATH_TOOL_$(TEMPLATE_VBOXR3EXE_TOOL.win.x86)_LIB)/msvcrt$(VBOX_VCC_CRT_TYPE).lib \ @@ -3101,7 +3292,7 @@ $(PATH_TOOL_$(TEMPLATE_VBOXR3EXE_TOOL.win.amd64)_LIB)/msvcrt$(VBOX_VCC_CRT_TYPE).lib \ $(PATH_TOOL_$(TEMPLATE_VBOXR3EXE_TOOL.win.amd64)_LIB)/msvcprt$(VBOX_VCC_CRT_TYPE).lib \ $(PATH_TOOL_$(TEMPLATE_VBOXR3EXE_TOOL.win.amd64)_LIB)/oldnames.lib - TEMPLATE_VBOXR3EXE_POST_CMDS = $(VBOX_SIGN_IMAGE_CMDS) + TEMPLATE_VBOXR3EXE_POST_CMDS = $(call VBOX_VCC_SET_INTEGRITY_CHECK,$(out),&&) $(VBOX_SIGN_IMAGE_CMDS) ifdef VBOX_USE_VCC100 # HACK ALERT! TEMPLATE_VBOXR3EXE_CINCS.win = $(TOOL_$(VBOX_VCC_TOOL)_CINCS) TEMPLATE_VBOXR3EXE_CXXINCS.win = $(TOOL_$(VBOX_VCC_TOOL)_CXXINCS) @@ -3149,6 +3340,8 @@ -Wl,--export-dynamic,--dynamic-linker=libld-l4.s.so \ -Wl,--rpath-link,$(L4_LIBDIR) TEMPLATE_VBOXR3EXE_LDFLAGS.linux = -Wl,-z,noexecstack $(VBOX_LD_as_needed) +TEMPLATE_VBOXR3EXE_LDFLAGS.solaris = -Wl,-z,ignore # same as VBOX_LD_as_needed + ifeq ($(KBUILD_TARGET),linux) TEMPLATE_VBOXR3EXE_LIBS = pthread m rt dl else ifeq ($(KBUILD_TARGET),l4) @@ -3272,6 +3465,7 @@ # TEMPLATE_VBOXR3STATIC = VBox Static Ring 3 EXE TEMPLATE_VBOXR3STATIC_EXTENDS = VBOXR3EXE +TEMPLATE_VBOXR3STATIC_DEFS = IN_RT_STATIC $(TEMPLATE_VBOXR3EXE_DEFS) ifeq ($(KBUILD_TARGET),win) TEMPLATE_VBOXR3STATIC_CFLAGS = $(filter-out -MD$(VBOX_VCC_CRT_TYPE), $(TEMPLATE_VBOXR3EXE_CFLAGS)) -MT$(VBOX_VCC_CRT_TYPE) TEMPLATE_VBOXR3STATIC_CXXFLAGS = $(filter-out -MD$(VBOX_VCC_CRT_TYPE), $(TEMPLATE_VBOXR3EXE_CFLAGS)) -MT$(VBOX_VCC_CRT_TYPE) @@ -3348,13 +3542,45 @@ # TEMPLATE_VBOXR3HARDENEDEXE = Hardened VBox Ring-3 EXE TEMPLATE_VBOXR3HARDENEDEXE_EXTENDS = VBOXR3EXE -TEMPLATE_VBOXR3HARDENEDEXE_LIBS = $(VBOX_LIB_SUPHARDENED) $(TEMPLATE_VBOXR3EXE_LIBS) +TEMPLATE_VBOXR3HARDENEDEXE_DEBUG_INST.win = $(INST_DEBUG)hardened-exes/ +ifdef VBOX_WITH_HARDENING + TEMPLATE_VBOXR3HARDENEDEXE_LIBS = $(VBOX_LIB_SUPHARDENED) $(TEMPLATE_VBOXR3EXE_LIBS) +else + TEMPLATE_VBOXR3HARDENEDEXE_LIBS = $(TEMPLATE_VBOXR3EXE_LIBS) +endif TEMPLATE_VBOXR3HARDENEDEXE_LDFLAGS.darwin = $(TEMPLATE_VBOXR3EXE_LDFLAGS.darwin) -framework IOKit ifeq ($(KBUILD_TARGET),linux) # not necessary except USE_LIB_PCAP is defined in SUPR3HardenedMain.cpp # TEMPLATE_VBOXR3HARDENEDEXE_LIBS += cap endif -ifn1of ($(KBUILD_TARGET), win os2) +ifeq ($(KBUILD_TARGET),win) # No CRT! + ifndef VBOX_USE_VCC70 + TEMPLATE_VBOXR3HARDENEDEXE_SDKS = VBOX_NTDLL VBoxPsdk200702 $(TEMPLATE_VBOXR3EXE_SDKS) + else + TEMPLATE_VBOXR3HARDENEDEXE_SDKS = VBOX_NTDLL VBoxPsdk200702 WINDDK $(TEMPLATE_VBOXR3EXE_SDKS) + endif + TEMPLATE_VBOXR3HARDENEDEXE_LIBS.x86 = \ + $(PATH_SDK_$(VBOX_WINDDK)_LIB.x86)/int64.lib \ + $(PATH_TOOL_$(TEMPLATE_VBOXR3HARDENEDEXE_TOOL.win.x86)_LIB)/chkstk.obj + ifndef VBOX_USE_VCC70 + TEMPLATE_VBOXR3HARDENEDEXE_CXXFLAGS = $(filter-out -RTC% -GZ -GS,$(TEMPLATE_VBOXR3EXE_CXXFLAGS)) -GS- + TEMPLATE_VBOXR3HARDENEDEXE_CXXFLAGS.debug= $(filter-out -RTC% -GZ -GS,$(TEMPLATE_VBOXR3EXE_CXXFLAGS.debug)) -GS- -O2 -Oy- + TEMPLATE_VBOXR3HARDENEDEXE_CFLAGS = $(filter-out -RTC% -GZ -GS,$(TEMPLATE_VBOXR3EXE_CFLAGS)) -GS- + TEMPLATE_VBOXR3HARDENEDEXE_CFLAGS.debug = $(filter-out -RTC% -GZ -GS,$(TEMPLATE_VBOXR3EXE_CFLAGS.debug)) -GS- -O2 -Oy- + else + TEMPLATE_VBOXR3HARDENEDEXE_CXXFLAGS = $(filter-out -RTC% -GZ -GS,$(TEMPLATE_VBOXR3EXE_CXXFLAGS)) + TEMPLATE_VBOXR3HARDENEDEXE_CXXFLAGS.debug= $(filter-out -RTC% -GZ -GS,$(TEMPLATE_VBOXR3EXE_CXXFLAGS.debug)) -GS- -O2 -Oy- + TEMPLATE_VBOXR3HARDENEDEXE_CFLAGS = $(filter-out -RTC% -GZ -GS,$(TEMPLATE_VBOXR3EXE_CFLAGS)) + TEMPLATE_VBOXR3HARDENEDEXE_CFLAGS.debug = $(filter-out -RTC% -GZ -GS,$(TEMPLATE_VBOXR3EXE_CFLAGS.debug)) -O2 -Oy- + endif + TEMPLATE_VBOXR3HARDENEDEXE_LDFLAGS = $(TEMPLATE_VBOXR3EXE_LDFLAGS) \ + /DISALLOWLIB:msvcrt$(VBOX_VCC_CRT_TYPE).lib \ + /DISALLOWLIB:msvcprt$(VBOX_VCC_CRT_TYPE).lib + TEMPLATE_VBOXR3HARDENEDEXE_LDFLAGS.win.x86 = $(TEMPLATE_VBOXR3EXE_LDFLAGS.win.x86) /entry:suplibHardenedWindowsMain + TEMPLATE_VBOXR3HARDENEDEXE_LDFLAGS.win.amd64 = $(TEMPLATE_VBOXR3EXE_LDFLAGS.win.amd64) /entry:suplibHardenedWindowsMain + TEMPLATE_VBOXR3HARDENEDEXE_LIBS.x86 = $(NOT_SUCH_VARIABLE) + TEMPLATE_VBOXR3HARDENEDEXE_LIBS.amd64 = $(NOT_SUCH_VARIABLE) +else ifn1of ($(KBUILD_TARGET), os2) TEMPLATE_VBOXR3HARDENEDEXE_LDFLAGS = $(filter-out '$(VBOX_GCC_RPATH_OPT)%,$(TEMPLATE_VBOXR3EXE_LDFLAGS)) TEMPLATE_VBOXR3HARDENEDEXE_LDFLAGS.linux = $(filter-out $(VBOX_GCC_ORIGIN_OPT),$(TEMPLATE_VBOXR3EXE_LDFLAGS.linux)) endif @@ -3368,11 +3594,23 @@ # +# Template for building hardened Ring-3 executables. +# These shall have no extra runpaths, esp. not origin ones. +# +TEMPLATE_VBoxR3HardenedTstExe = VBox Ring-3 Hardened Testcase Exe (currently windows only!) +TEMPLATE_VBoxR3HardenedTstExe_EXTENDS = VBOXR3HARDENEDEXE +TEMPLATE_VBoxR3HardenedTstExe_INST = $(INST_TESTCASE) + +# # Template for building set-uid-to-root helper programs. # In hardened builds, these may only contain absolute runpaths! # TEMPLATE_VBoxR3SetUidToRoot = Set-uid-to-root helper program. -TEMPLATE_VBoxR3SetUidToRoot_EXTENDS = VBOXR3HARDENEDEXE +if1of ($(KBUILD_TARGET),win) + TEMPLATE_VBoxR3SetUidToRoot_EXTENDS = VBOXR3EXE +else + TEMPLATE_VBoxR3SetUidToRoot_EXTENDS = VBOXR3HARDENEDEXE +endif TEMPLATE_VBoxR3SetUidToRoot_LIBS = $(NO_SUCH_VARIABLE) ifdef VBOX_WITH_RUNPATH TEMPLATE_VBoxR3SetUidToRoot_LDFLAGS += '$(VBOX_GCC_RPATH_OPT)$(VBOX_WITH_RUNPATH)' @@ -3386,6 +3624,26 @@ endif endif +# +# Template for building R3 tools. +# +TEMPLATE_VBoxR3Tool = VBox Ring 3 Tools +TEMPLATE_VBoxR3Tool_EXTENDS = VBOXR3EXE +TEMPLATE_VBoxR3Tool_INST = $(VBOX_INST_TOOLS) +ifeq ($(KBUILD_TARGET),win) + TEMPLATE_VBoxR3Tool_CFLAGS = $(TEMPLATE_VBOXR3EXE_CFLAGS) $(VBOX_VCC_WERR) + TEMPLATE_VBoxR3Tool_CXXFLAGS = $(TEMPLATE_VBOXR3EXE_CXXFLAGS) $(VBOX_VCC_WERR) + TEMPLATE_VBoxR3Tool_LDFLAGS = $(TEMPLATE_VBOXR3EXE_LDFLAGS) $(VBOX_VCC_LD_WERR) +else + TEMPLATE_VBoxR3Tool_CFLAGS = $(TEMPLATE_VBOXR3EXE_CFLAGS) $(VBOX_GCC_WERR) + TEMPLATE_VBoxR3Tool_CXXFLAGS = $(TEMPLATE_VBOXR3EXE_CXXFLAGS) $(VBOX_GCC_WERR) + ifdef VBOX_WITH_RUNPATH + TEMPLATE_VBoxR3Tool_LDFLAGS = '$(VBOX_GCC_RPATH_OPT)$(VBOX_WITH_RUNPATH)' $(TEMPLATE_VBOXR3EXE_LDFLAGS) + else ifdef VBOX_WITH_RELATIVE_RUNPATH + TEMPLATE_VBoxR3Tool_LDFLAGS = '$(VBOX_GCC_RPATH_OPT)$(VBOX_WITH_RELATIVE_RUNPATH)/..' $(TEMPLATE_VBOXR3EXE_LDFLAGS) + endif +endif +TEMPLATE_VBoxR3Tool_LIBS = $(LIB_RUNTIME) $(TEMPLATE_VBOXR3EXE_LIBS) # # Template for building R3 shared objects / DLLs with the 10.5 Mac OS X SDK. @@ -3409,7 +3667,7 @@ # This is the VBOXR3EXE template only with a different install dir. # TEMPLATE_VBOXR3AUTOTST = VBox Ring 3 Testcase Exe -TEMPLATE_VBOXR3AUTOTST_EXTENDS = VBOXR3EXE +TEMPLATE_VBOXR3AUTOTST_EXTENDS = $(if-expr "$(KBUILD_TARGET)" == "win",VBoxR3Static,VBOXR3EXE) TEMPLATE_VBOXR3AUTOTST_INST = $(INST_TESTCASE) TEMPLATE_VBOXR3AUTOTST_LIBS = $(TEMPLATE_VBOXR3EXE_LIBS) TEMPLATE_VBOXR3AUTOTST_LIBS.l4 = $(LIB_RUNTIME) $(TEMPLATE_VBOXR3EXE_LIBS.l4) @@ -3417,6 +3675,7 @@ ifdef VBOX_SIGNING_MODE TEMPLATE_VBOXR3AUTOTST_POST_CMDS = endif + TEMPLATE_VBOXR3AUTOTST_LDFLAGS = $(filter-out -IntegrityCheck, $(TEMPLATE_VBOXR3EXE_LDFLAGS)) endif # @@ -3436,6 +3695,7 @@ ifdef VBOX_SIGNING_MODE TEMPLATE_VBOXR3TSTEXE_POST_CMDS = endif + TEMPLATE_VBOXR3TSTEXE_LDFLAGS = $(filter-out -IntegrityCheck, $(TEMPLATE_VBOXR3EXE_LDFLAGS)) endif # @@ -3451,6 +3711,19 @@ # +# Ring-3 testcase DLL. +# +TEMPLATE_VBoxR3TstDll = VBox Ring-3 Testcase Dll +TEMPLATE_VBoxR3TstDll_EXTENDS = VBOXR3TSTEXE +ifn1of ($(KBUILD_TARGET), darwin win os2) + TEMPLATE_VBoxR3TstDll_DEFS = $(TEMPLATE_VBOXR3TSTEXE_DEFS) PIC + TEMPLATE_VBoxR3TstDll_CFLAGS = $(TEMPLATE_VBOXR3TSTEXE_CFLAGS) -fPIC + TEMPLATE_VBoxR3TstDll_CXXFLAGS = $(TEMPLATE_VBOXR3TSTEXE_CXXFLAGS) -fPIC + TEMPLATE_VBoxR3TstDll_LDFLAGS = $(TEMPLATE_VBOXR3TSTEXE_LDFLAGS) -fPIC +endif + + +# # Template for the CppUnit kind of testcases. # TEMPLATE_VBOXCPPUNITEXE = VBox CppUnit Testcase Exe @@ -3492,74 +3765,75 @@ # Template for building libraries, shared libraries / modules # which only depends on IPRT for crt. # -TEMPLATE_VBOXNOCRTGCC = VBox no-crt GCC libraries and modules, yasm/nasm. -TEMPLATE_VBOXNOCRTGCC_DEFS = IN_RING3 IPRT_NO_CRT $(ARCH_BITS_DEFS) -TEMPLATE_VBOXNOCRTGCC_ASDEFS = ASM_CALL64_GCC -TEMPLATE_VBOXNOCRTGCC_CFLAGS = -nostdinc -fno-strict-aliasing -fno-math-errno $(VBOX_GCC_WARN) -Werror-implicit-function-declaration -TEMPLATE_VBOXNOCRTGCC_CFLAGS.x86 = -m32 -TEMPLATE_VBOXNOCRTGCC_CFLAGS.amd64 = -m64 -mcmodel=medium -fno-common -TEMPLATE_VBOXNOCRTGCC_CFLAGS.sparc32 = -m32 -TEMPLATE_VBOXNOCRTGCC_CFLAGS.sparc64 = -m64 -TEMPLATE_VBOXNOCRTGCC_CFLAGS.release = -O2 -fno-strict-aliasing -TEMPLATE_VBOXNOCRTGCC_CFLAGS.profile = $(TEMPLATE_VBOXNOCRTGCC_CFLAGS.release) -TEMPLATE_VBOXNOCRTGCC_CFLAGS.kprofile = $(TEMPLATE_VBOXNOCRTGCC_CFLAGS.release) -TEMPLATE_VBOXNOCRTGCC_CFLAGS.darwin = -static -TEMPLATE_VBOXNOCRTGCC_CXXFLAGS = $(TEMPLATE_VBOXNOCRTGCC_CFLAGS) -TEMPLATE_VBOXNOCRTGCC_CXXFLAGS.$(KBUILD_TARGET) = $(TEMPLATE_VBOXNOCRTGCC_CFLAGS.$(KBUILD_TARGET)) -TEMPLATE_VBOXNOCRTGCC_CXXFLAGS.$(KBUILD_TARGET_ARCH) = $(TEMPLATE_VBOXNOCRTGCC_CFLAGS.$(KBUILD_TARGET_ARCH)) -TEMPLATE_VBOXNOCRTGCC_INCS = $(PATH_ROOT)/include/iprt/nocrt +TEMPLATE_VBoxNoCrtGccLib = VBox no-crt GCC libraries and modules, yasm/nasm. +TEMPLATE_VBoxNoCrtGccLib_DEFS = IN_RING3 IPRT_NO_CRT $(ARCH_BITS_DEFS) +TEMPLATE_VBoxNoCrtGccLib_ASDEFS = ASM_CALL64_GCC +TEMPLATE_VBoxNoCrtGccLib_CFLAGS = -nostdinc -fno-strict-aliasing -fno-math-errno $(VBOX_GCC_WARN) -Werror-implicit-function-declaration +TEMPLATE_VBoxNoCrtGccLib_CFLAGS.x86 = -m32 +TEMPLATE_VBoxNoCrtGccLib_CFLAGS.amd64 = -m64 -mcmodel=medium -fno-common +TEMPLATE_VBoxNoCrtGccLib_CFLAGS.sparc32 = -m32 +TEMPLATE_VBoxNoCrtGccLib_CFLAGS.sparc64 = -m64 +TEMPLATE_VBoxNoCrtGccLib_CFLAGS.release = -O2 -fno-strict-aliasing +TEMPLATE_VBoxNoCrtGccLib_CFLAGS.profile = $(TEMPLATE_VBoxNoCrtGccLib_CFLAGS.release) +TEMPLATE_VBoxNoCrtGccLib_CFLAGS.kprofile = $(TEMPLATE_VBoxNoCrtGccLib_CFLAGS.release) +TEMPLATE_VBoxNoCrtGccLib_CFLAGS.darwin = -static +TEMPLATE_VBoxNoCrtGccLib_CXXFLAGS = $(TEMPLATE_VBoxNoCrtGccLib_CFLAGS) +TEMPLATE_VBoxNoCrtGccLib_CXXFLAGS.$(KBUILD_TARGET) = $(TEMPLATE_VBoxNoCrtGccLib_CFLAGS.$(KBUILD_TARGET)) +TEMPLATE_VBoxNoCrtGccLib_CXXFLAGS.$(KBUILD_TARGET_ARCH) = $(TEMPLATE_VBoxNoCrtGccLib_CFLAGS.$(KBUILD_TARGET_ARCH)) +TEMPLATE_VBoxNoCrtGccLib_INCS = $(PATH_ROOT)/include/iprt/nocrt ifeq ($(KBUILD_TARGET).$(KBUILD_TARGET_ARCH),$(if-expr !defined(VBOX_WITH_NEW_WIN_TOOLCHAIN),win.amd64,)) # cross compile to 64-bit ELF (linux). - TEMPLATE_VBOXNOCRTGCC_TOOL = XGCCAMD64LINUX - TEMPLATE_VBOXNOCRTGCC_ASTOOL = YASM - TEMPLATE_VBOXNOCRTGCC_ASFLAGS = -f elf64 -DASM_FORMAT_ELF -D__YASM__ -w+orphan-labels -g dwarf2 - TEMPLATE_VBOXNOCRTGCC_LIBS = $(PATH_DEVTOOLS)/win.x86/x86_64-unknown-linux-gnu/20060701-r2/lib/gcc/x86_64-unknown-linux-gnu/3.4.6/libgcc.a - TEMPLATE_VBOXNOCRTGCC_LDFLAGS = -nostdlib + TEMPLATE_VBoxNoCrtGccLib_TOOL = XGCCAMD64LINUX + TEMPLATE_VBoxNoCrtGccLib_ASTOOL = YASM + TEMPLATE_VBoxNoCrtGccLib_ASFLAGS = -f elf64 -DASM_FORMAT_ELF -D__YASM__ -w+orphan-labels -g dwarf2 + TEMPLATE_VBoxNoCrtGccLib_LIBS = $(PATH_DEVTOOLS)/win.x86/x86_64-unknown-linux-gnu/20060701-r2/lib/gcc/x86_64-unknown-linux-gnu/3.4.6/libgcc.a + TEMPLATE_VBoxNoCrtGccLib_LDFLAGS = -nostdlib else ifeq ($(KBUILD_TARGET).$(KBUILD_TARGET_ARCH),win.x86) # Use the default GCC (MinGW) with the Microsoft linker. # (Drop all '-g' options as we're unable to strip the debug info.) - TEMPLATE_VBOXNOCRTGCC_TOOL = $(VBOX_GCC_TOOL) - TEMPLATE_VBOXNOCRTGCC_ASTOOL = $(VBOX_ASTOOL) - TEMPLATE_VBOXNOCRTGCC_ASFLAGS = $(VBOX_ASFLAGS) - TEMPLATE_VBOXNOCRTGCC_LDTOOL = $(VBOX_VCC_TOOL) - TEMPLATE_VBOXNOCRTGCC_LDFLAGS = -Incremental:NO -MapInfo:Exports -NoD - TEMPLATE_VBOXNOCRTGCC_LIBS = $(VBOX_GCC_LIBGCC) - TEMPLATE_VBOXNOCRTGCC_CFLAGS := $(filter-out -g,$(TEMPLATE_VBOXNOCRTGCC_CFLAGS)) -s + TEMPLATE_VBoxNoCrtGccLib_TOOL = $(VBOX_GCC_TOOL) + TEMPLATE_VBoxNoCrtGccLib_ASTOOL = $(VBOX_ASTOOL) + TEMPLATE_VBoxNoCrtGccLib_ASFLAGS = $(VBOX_ASFLAGS) + TEMPLATE_VBoxNoCrtGccLib_LDTOOL = $(VBOX_VCC_TOOL) + TEMPLATE_VBoxNoCrtGccLib_LDFLAGS = -Incremental:NO -MapInfo:Exports -NoD + TEMPLATE_VBoxNoCrtGccLib_LIBS = $(VBOX_GCC_LIBGCC) + TEMPLATE_VBoxNoCrtGccLib_CFLAGS := $(filter-out -g,$(TEMPLATE_VBoxNoCrtGccLib_CFLAGS)) -s + TEMPLATE_VBoxNoCrtGccLib_CXXFLAGS := $(filter-out -g,$(TEMPLATE_VBoxNoCrtGccLib_CXXFLAGS)) -s else # Use the default GCC. # The use of --exclude-libs ALL is to avoid confusing the linux ld.so. - TEMPLATE_VBOXNOCRTGCC_TOOL = $(VBOX_GCC_TOOL) - TEMPLATE_VBOXNOCRTGCC_ASTOOL = $(VBOX_ASTOOL) - TEMPLATE_VBOXNOCRTGCC_ASFLAGS = $(VBOX_ASFLAGS) - TEMPLATE_VBOXNOCRTGCC_CFLAGS += $(VBOX_GCC_fno-stack-protector) - TEMPLATE_VBOXNOCRTGCC_CXXFLAGS += $(VBOX_GCC_fno-stack-protector) + TEMPLATE_VBoxNoCrtGccLib_TOOL = $(VBOX_GCC_TOOL) + TEMPLATE_VBoxNoCrtGccLib_ASTOOL = $(VBOX_ASTOOL) + TEMPLATE_VBoxNoCrtGccLib_ASFLAGS = $(VBOX_ASFLAGS) + TEMPLATE_VBoxNoCrtGccLib_CFLAGS += $(VBOX_GCC_fno-stack-protector) + TEMPLATE_VBoxNoCrtGccLib_CXXFLAGS += $(VBOX_GCC_fno-stack-protector) ifeq ($(KBUILD_TARGET_ARCH),amd64) # in 64-bit mode we'll build a sys-module (VBoxREM2). if1of ($(KBUILD_TARGET), darwin solaris) - TEMPLATE_VBOXNOCRTGCC_LDFLAGS.solaris= -64 -r + TEMPLATE_VBoxNoCrtGccLib_LDFLAGS.solaris= -64 -r else - TEMPLATE_VBOXNOCRTGCC_LDFLAGS = -nostdlib + TEMPLATE_VBoxNoCrtGccLib_LDFLAGS = -nostdlib endif else # x86: - TEMPLATE_VBOXNOCRTGCC_LDFLAGS = -nostdlib + TEMPLATE_VBoxNoCrtGccLib_LDFLAGS = -nostdlib ifn1of ($(KBUILD_TARGET), os2 darwin solaris) - TEMPLATE_VBOXNOCRTGCC_LDFLAGS += -Wl,--no-undefined + TEMPLATE_VBoxNoCrtGccLib_LDFLAGS += -Wl,--no-undefined endif endif # x86 - TEMPLATE_VBOXNOCRTGCC_LDFLAGS.darwin = $(VBOX_DARWIN_DEF_SDK_LDFLAGS) - TEMPLATE_VBOXNOCRTGCC_LIBS = # FIXME - has unwind mess. + TEMPLATE_VBoxNoCrtGccLib_LDFLAGS.darwin = $(VBOX_DARWIN_DEF_SDK_LDFLAGS) + TEMPLATE_VBoxNoCrtGccLib_LIBS = # FIXME - has unwind mess. endif # -# Same as VBOXNOCRTGCC only it uses GAS as the assembler instead of yasm/nasm. +# Same as VBoxNoCrtGccLib only it uses GAS as the assembler instead of yasm/nasm. # TEMPLATE_VBOXNOCRTGAS = VBox no-crt GCC libraries and modules, gas. -TEMPLATE_VBOXNOCRTGAS_EXTENDS = VBOXNOCRTGCC -TEMPLATE_VBOXNOCRTGAS_ASTOOL = $(TEMPLATE_VBOXNOCRTGCC_TOOL) +TEMPLATE_VBOXNOCRTGAS_EXTENDS = VBoxNoCrtGccLib +TEMPLATE_VBOXNOCRTGAS_ASTOOL = $(TEMPLATE_VBoxNoCrtGccLib_TOOL) ifeq ($(KBUILD_TARGET).$(KBUILD_TARGET_ARCH),win.x86) TEMPLATE_VBOXNOCRTGAS_ASFLAGS = -s else @@ -3602,20 +3876,25 @@ TEMPLATE_VBOXMAINEXE_INCS += \ $(PATH_TOOL_$(VBOX_VCC_TOOL)_ATLMFC_INC) TEMPLATE_VBOXMAINEXE_LDFLAGS = \ - /NOD /INCREMENTAL:NO /MAPINFO:EXPORTS /LARGEADDRESSAWARE /DEBUG\ + /NOD /INCREMENTAL:NO /MAPINFO:EXPORTS /LargeAddressAware $(VBOX_VCC_LINK_DYNAMIC_BASE_AND_NX_COMPAT) /Release /Debug \ + /Version:$(VBOX_VERSION_MAJOR)0$(VBOX_VERSION_MINOR).$(VBOX_VERSION_BUILD) \ + /STUB:$(PATH_ROOT)/src/VBox/HostDrivers/Support/win/winstub.com \ /DISALLOWLIB:libc.lib \ /DISALLOWLIB:libcd.lib \ /DISALLOWLIB:libcmt.lib \ /DISALLOWLIB:libcmtd.lib \ /DISALLOWLIB:msvcrt$(VBOX_VCC_CRT_TYPE_N).lib \ /DISALLOWLIB:msvcprt$(VBOX_VCC_CRT_TYPE_N).lib + if defined(VBOX_SIGNING_MODE) && defined(VBOX_WITH_HARDENING) && !defined(VBOX_USE_VCC70) + TEMPLATE_VBOXMAINEXE_LDFLAGS += -IntegrityCheck + endif TEMPLATE_VBOXMAINEXE_LIBS = \ $(LIB_RUNTIME) \ $(PATH_TOOL_$(VBOX_VCC_TOOL)_LIB)/msvcrt$(VBOX_VCC_CRT_TYPE).lib \ $(PATH_TOOL_$(VBOX_VCC_TOOL)_LIB)/msvcprt$(VBOX_VCC_CRT_TYPE).lib \ $(PATH_TOOL_$(VBOX_VCC_TOOL)_LIB)/oldnames.lib \ $(PATH_TOOL_$(VBOX_VCC_TOOL)_ATLMFC_LIB)/atls$(VBOX_VCC_CRT_TYPE).lib - TEMPLATE_VBOXMAINEXE_POST_CMDS = $(VBOX_SIGN_IMAGE_CMDS) + TEMPLATE_VBOXMAINEXE_POST_CMDS = $(call VBOX_VCC_SET_INTEGRITY_CHECK,$(out),&&) $(VBOX_SIGN_IMAGE_CMDS) ifdef VBOX_USE_VCC100 # HACK ALERT! TEMPLATE_VBOXMAINEXE_CINCS = $(TOOL_$(VBOX_VCC_TOOL)_CINCS) TEMPLATE_VBOXMAINEXE_CXXINCS = $(TOOL_$(VBOX_VCC_TOOL)_CXXINCS) @@ -3684,6 +3963,7 @@ $(warning Warning: VBOX Build: Target $(KBUILD_TARGET) is not officially supported!) TEMPLATE_VBOXMAINEXE_LIBS = endif +TEMPLATE_VBOXMAINEXE_LDFLAGS.solaris = -Wl,-z,ignore # Same as VBOX_LD_as_needed. ifdef VBOX_WITH_RUNPATH TEMPLATE_VBOXMAINEXE_LDFLAGS += '$(VBOX_GCC_RPATH_OPT)$(VBOX_WITH_RUNPATH)' else ifdef VBOX_WITH_RELATIVE_RUNPATH @@ -3827,8 +4107,8 @@ TEMPLATE_VBoxR3ExtPack_EXTENDS = VBOXR3DLLNOXCPT TEMPLATE_VBoxR3ExtPack_DEFS = $(TEMPLATE_VBOXR3DLLNOXCPT_DEFS) VBOX_IN_EXTPACK VBOX_IN_EXTPACK_R3 else - TEMPLATE_VBoxR3ExtPack_EXTENDS = VBOXNOCRTGCC - TEMPLATE_VBoxR3ExtPack_DEFS = $(TEMPLATE_VBOXNOCRTGCC_DEFS) VBOX_IN_EXTPACK VBOX_IN_EXTPACK_R3 IPRT_NO_CRT IN_RING3 + TEMPLATE_VBoxR3ExtPack_EXTENDS = VBoxNoCrtGccLib + TEMPLATE_VBoxR3ExtPack_DEFS = $(TEMPLATE_VBoxNoCrtGccLib_DEFS) VBOX_IN_EXTPACK VBOX_IN_EXTPACK_R3 IPRT_NO_CRT IN_RING3 TEMPLATE_VBoxR3ExtPack_INCS = $(PATH_ROOT)/include/iprt/nocrt $(TEMPLATE_VBOXR3DLLNOXCPT_INCS) endif ifneq ($(KBUILD_TARGET),win) @@ -4008,8 +4288,13 @@ TEMPLATE_VBOXQT4GUIEXE_INCS += \ $(PATH_TOOL_$(VBOX_VCC_TOOL)_ATLMFC_INC) TEMPLATE_VBOXQT4GUIEXE_LDFLAGS = \ - /NOD /NOLOGO /INCREMENTAL:NO /MAPINFO:EXPORTS /DEBUG \ - /DELAYLOAD:oleaut32.dll + /DELAYLOAD:oleaut32.dll \ + /NOD /INCREMENTAL:NO /MAPINFO:EXPORTS /LargeAddressAware $(VBOX_VCC_LINK_DYNAMIC_BASE_AND_NX_COMPAT) /Release /Debug \ + /Version:$(VBOX_VERSION_MAJOR)0$(VBOX_VERSION_MINOR).$(VBOX_VERSION_BUILD) \ + /STUB:$(PATH_ROOT)/src/VBox/HostDrivers/Support/win/winstub.com + if defined(VBOX_SIGNING_MODE) && defined(VBOX_WITH_HARDENING) && !defined(VBOX_USE_VCC70) + TEMPLATE_VBOXQT4GUIEXE_LDFLAGS += -IntegrityCheck + endif TEMPLATE_VBOXQT4GUIEXE_SDKS += WINPSDK TEMPLATE_VBOXQT4GUIEXE_LIBS = \ $(VBOX_LIBS_QT4) \ @@ -4024,8 +4309,7 @@ $(PATH_TOOL_$(VBOX_VCC_TOOL)_LIB)/msvcrt$(VBOX_VCC_CRT_TYPE).lib \ $(PATH_TOOL_$(VBOX_VCC_TOOL)_LIB)/msvcprt$(VBOX_VCC_CRT_TYPE).lib endif - TEMPLATE_VBOXQT4GUIEXE_POST_CMDS = $(VBOX_SIGN_IMAGE_CMDS) - TEMPLATE_VBOXQT4GUIEXE_LDFLAGS.win.x86 += /LARGEADDRESSAWARE + TEMPLATE_VBOXQT4GUIEXE_POST_CMDS = $(call VBOX_VCC_SET_INTEGRITY_CHECK,$(out),&&) $(VBOX_SIGN_IMAGE_CMDS) ifdef VBOX_USE_VCC100 # HACK ALERT! TEMPLATE_VBOXQT4GUIEXE_CINCS = $(TOOL_$(VBOX_VCC_TOOL)_CINCS) @@ -4044,7 +4328,8 @@ TEMPLATE_VBOXQT4GUIEXE_CXXFLAGS = \ -g -pipe $(filter-out -Wno-unused,$(VBOX_GCC_WARN)) -frtti -fno-exceptions -Wno-non-virtual-dtor \ -Wno-long-long -fshort-wchar -fno-strict-aliasing \ - $(VBOX_GCC_fvisibility-hidden) $(VBOX_GCC_fvisibility-inlines-hidden) + $(VBOX_GCC_fvisibility-hidden) $(VBOX_GCC_fvisibility-inlines-hidden) \ + $(VBOX_GCC_Wno-delete-non-virtual-dtor) TEMPLATE_VBOXQT4GUIEXE_CXXFLAGS.x86 = -m32 TEMPLATE_VBOXQT4GUIEXE_CXXFLAGS.amd64 = -m64 TEMPLATE_VBOXQT4GUIEXE_CXXFLAGS.linux = -pthread @@ -4104,6 +4389,7 @@ /usr/local/lib endif ifeq ($(KBUILD_TARGET),solaris) + TEMPLATE_VBOXQT4GUIEXE_LDFLAGS.solaris = -Wl,-z,ignore # Same as VBOX_LD_as_needed. TEMPLATE_VBOXQT4GUIEXE_LIBS += \ rt socket nsl endif @@ -4166,143 +4452,151 @@ # # HACK ALERT! The BLD_TRG_* is a hack to allow building libraries as well. # -TEMPLATE_VBOXBLDPROG = VBox Build Program -TEMPLATE_VBOXBLDPROG_BLD_TRG := $(KBUILD_HOST) -TEMPLATE_VBOXBLDPROG_BLD_TRG_ARCH := $(KBUILD_HOST_ARCH) -TEMPLATE_VBOXBLDPROG_BLD_TRG_CPU := $(KBUILD_HOST_CPU) -TEMPLATE_VBOXBLDPROG_DEFS := IN_RING3 LOG_DISABLED -TEMPLATE_VBOXBLDPROG_DEFS.win := _CRT_SECURE_NO_DEPRECATE -TEMPLATE_VBOXBLDPROG_ASTOOL := YASM -TEMPLATE_VBOXBLDPROG_ASFLAGS.x86 := $(VBOX_ASFLAGS32) -TEMPLATE_VBOXBLDPROG_ASFLAGS.amd64 := $(VBOX_ASFLAGS64) +TEMPLATE_VBoxBldProg = VBox Build Program +TEMPLATE_VBoxBldProg_BLD_TRG := $(KBUILD_HOST) +TEMPLATE_VBoxBldProg_BLD_TRG_ARCH := $(KBUILD_HOST_ARCH) +TEMPLATE_VBoxBldProg_BLD_TRG_CPU := $(KBUILD_HOST_CPU) +TEMPLATE_VBoxBldProg_DEFS := IN_RING3 LOG_DISABLED +TEMPLATE_VBoxBldProg_DEFS.win := _CRT_SECURE_NO_DEPRECATE +TEMPLATE_VBoxBldProg_ASTOOL := $(VBOX_ASTOOL) +TEMPLATE_VBoxBldProg_ASFLAGS.x86 := $(VBOX_ASFLAGS32) +TEMPLATE_VBoxBldProg_ASFLAGS.amd64 := $(VBOX_ASFLAGS64) ifeq ($(KBUILD_HOST),win) ifndef VBOX_USE_VCC70 - TEMPLATE_VBOXBLDPROG_TOOL := $(VBOX_VCC_TOOL_STEM)$(toupper $(KBUILD_HOST_ARCH)) - TEMPLATE_VBOXBLDPROG_SDKS := $(if-expr "$(KBUILD_HOST_ARCH)" == "x86",WIN32SDK,WIN64SDK) + TEMPLATE_VBoxBldProg_TOOL := $(VBOX_VCC_TOOL_STEM)$(toupper $(KBUILD_HOST_ARCH)) + TEMPLATE_VBoxBldProg_SDKS := $(if-expr "$(KBUILD_HOST_ARCH)" == "x86",WIN32SDK,WIN64SDK) else if1of ($(KBUILD_HOST_ARCH), x86) - TEMPLATE_VBOXBLDPROG_TOOL := VCC70 - TEMPLATE_VBOXBLDPROG_SDKS := WIN32SDK + TEMPLATE_VBoxBldProg_TOOL := VCC70 + TEMPLATE_VBoxBldProg_SDKS := WIN32SDK else if1of ($(KBUILD_HOST_ARCH), amd64) - TEMPLATE_VBOXBLDPROG_TOOL := VCC80AMD64 - TEMPLATE_VBOXBLDPROG_SDKS := WIN64SDK + TEMPLATE_VBoxBldProg_TOOL := VCC80AMD64 + TEMPLATE_VBoxBldProg_SDKS := WIN64SDK else $(error KBUILD_HOST_ARCH=$(KBUILD_HOST_ARCH)) endif - ifneq ($(TEMPLATE_VBOXBLDPROG_TOOL),VCC70) - TEMPLATE_VBOXBLDPROG_CXXFLAGS = -Zi -Zl -GR- -EHs- -GF -MT$(VBOX_VCC_CRT_TYPE) -W3 -wd4996 -Zc:wchar_t- - TEMPLATE_VBOXBLDPROG_CXXFLAGS.debug = -RTCsu - TEMPLATE_VBOXBLDPROG_CXXFLAGS.release = -O2 -Oy- -GS- - else - TEMPLATE_VBOXBLDPROG_CXXFLAGS = -Zi -Zl -GR- -EHs- -GF -MT$(VBOX_VCC_CRT_TYPE) -W3 - TEMPLATE_VBOXBLDPROG_CXXFLAGS.debug = -GZ - TEMPLATE_VBOXBLDPROG_CXXFLAGS.release = -Ogitb2 -Oy- - endif - TEMPLATE_VBOXBLDPROG_CXXFLAGS.profile = $(TEMPLATE_VBOXBLDPROG_CXXFLAGS.release) - TEMPLATE_VBOXBLDPROG_CXXFLAGS.kprofile = $(TEMPLATE_VBOXBLDPROG_CXXFLAGS.release) - TEMPLATE_VBOXBLDPROG_CFLAGS = $(TEMPLATE_VBOXBLDPROG_CXXFLAGS) - TEMPLATE_VBOXBLDPROG_CFLAGS.debug = $(TEMPLATE_VBOXBLDPROG_CXXFLAGS.debug) - TEMPLATE_VBOXBLDPROG_CFLAGS.release = $(TEMPLATE_VBOXBLDPROG_CXXFLAGS.release) - TEMPLATE_VBOXBLDPROG_CFLAGS.profile = $(TEMPLATE_VBOXBLDPROG_CXXFLAGS.profile) - TEMPLATE_VBOXBLDPROG_CFLAGS.kprofile = $(TEMPLATE_VBOXBLDPROG_CXXFLAGS.kprofile) - TEMPLATE_VBOXBLDPROG_LDFLAGS = \ - /NOD /INCREMENTAL:NO /MAPINFO:EXPORTS /LARGEADDRESSAWARE /DEBUG \ + ifneq ($(TEMPLATE_VBoxBldProg_TOOL),VCC70) + TEMPLATE_VBoxBldProg_CXXFLAGS = -Zi -Zl -GR- -EHs- -GF -MT$(VBOX_VCC_CRT_TYPE) -W3 -wd4996 -Zc:wchar_t- + TEMPLATE_VBoxBldProg_CXXFLAGS.debug = -RTCsu + TEMPLATE_VBoxBldProg_CXXFLAGS.release = -O2 -Oy- -GS- + else + TEMPLATE_VBoxBldProg_CXXFLAGS = -Zi -Zl -GR- -EHs- -GF -MT$(VBOX_VCC_CRT_TYPE) -W3 + TEMPLATE_VBoxBldProg_CXXFLAGS.debug = -GZ + TEMPLATE_VBoxBldProg_CXXFLAGS.release = -Ogitb2 -Oy- + endif + TEMPLATE_VBoxBldProg_CXXFLAGS.dbgopt = $(NO_SUCH_VARIABLE) + TEMPLATE_VBoxBldProg_CXXFLAGS.profile = $(TEMPLATE_VBoxBldProg_CXXFLAGS.release) + TEMPLATE_VBoxBldProg_CXXFLAGS.kprofile = $(TEMPLATE_VBoxBldProg_CXXFLAGS.release) + TEMPLATE_VBoxBldProg_CFLAGS = $(TEMPLATE_VBoxBldProg_CXXFLAGS) + TEMPLATE_VBoxBldProg_CFLAGS.debug = $(TEMPLATE_VBoxBldProg_CXXFLAGS.debug) + TEMPLATE_VBoxBldProg_CFLAGS.dbgopt = $(TEMPLATE_VBoxBldProg_CXXFLAGS.dbgopt) + TEMPLATE_VBoxBldProg_CFLAGS.release = $(TEMPLATE_VBoxBldProg_CXXFLAGS.release) + TEMPLATE_VBoxBldProg_CFLAGS.profile = $(TEMPLATE_VBoxBldProg_CXXFLAGS.profile) + TEMPLATE_VBoxBldProg_CFLAGS.kprofile = $(TEMPLATE_VBoxBldProg_CXXFLAGS.kprofile) + TEMPLATE_VBoxBldProg_LDFLAGS = \ + /NOD /INCREMENTAL:NO /MAPINFO:EXPORTS /LargeAddressAware $(VBOX_VCC_LINK_DYNAMIC_BASE_AND_NX_COMPAT) /Release /Debug \ + /Version:$(VBOX_VERSION_MAJOR)0$(VBOX_VERSION_MINOR).$(VBOX_VERSION_BUILD) \ /DISALLOWLIB:libc$(VBOX_VCC_CRT_TYPE_N).lib \ /DISALLOWLIB:libcmt$(VBOX_VCC_CRT_TYPE_N).lib \ /DISALLOWLIB:msvcrt.lib \ /DISALLOWLIB:msvcrtd.lib \ /DISALLOWLIB:msvcprt.lib \ /DISALLOWLIB:msvcprtd.lib - TEMPLATE_VBOXBLDPROG_LIBS = \ - $(PATH_TOOL_$(TEMPLATE_VBOXBLDPROG_TOOL)_LIB)/oldnames.lib \ - $(PATH_TOOL_$(TEMPLATE_VBOXBLDPROG_TOOL)_LIB)/libcmt$(VBOX_VCC_CRT_TYPE).lib \ - $(PATH_TOOL_$(TEMPLATE_VBOXBLDPROG_TOOL)_LIB)/libcpmt$(VBOX_VCC_CRT_TYPE).lib + TEMPLATE_VBoxBldProg_LIBS = \ + $(PATH_TOOL_$(TEMPLATE_VBoxBldProg_TOOL)_LIB)/oldnames.lib \ + $(PATH_TOOL_$(TEMPLATE_VBoxBldProg_TOOL)_LIB)/libcmt$(VBOX_VCC_CRT_TYPE).lib \ + $(PATH_TOOL_$(TEMPLATE_VBoxBldProg_TOOL)_LIB)/libcpmt$(VBOX_VCC_CRT_TYPE).lib else # (gcc of some kind ) -TEMPLATE_VBOXBLDPROG_TOOL = GXX3 -TEMPLATE_VBOXBLDPROG_CFLAGS = -g -pipe $(VBOX_GCC_PEDANTIC_C) $(VBOX_GCC_Wno-variadic-macros) -TEMPLATE_VBOXBLDPROG_CFLAGS.x86 = -m32 -TEMPLATE_VBOXBLDPROG_CFLAGS.sparc32 = -m32 -TEMPLATE_VBOXBLDPROG_CFLAGS.amd64 = -m64 -TEMPLATE_VBOXBLDPROG_CFLAGS.sparc64 = -m64 -TEMPLATE_VBOXBLDPROG_CFLAGS.release = -O2 -fno-omit-frame-pointer -fno-strict-aliasing -TEMPLATE_VBOXBLDPROG_CFLAGS.profile = $(TEMPLATE_VBOXBLDPROG_CXXFLAGS.profile) -TEMPLATE_VBOXBLDPROG_CFLAGS.kprofile = $(TEMPLATE_VBOXBLDPROG_CXXFLAGS.kprofile) -TEMPLATE_VBOXBLDPROG_CXXFLAGS = -g -pipe $(VBOX_GCC_PEDANTIC_CXX) $(VBOX_GCC_Wno-variadic-macros) -TEMPLATE_VBOXBLDPROG_CXXFLAGS.x86 = -m32 -TEMPLATE_VBOXBLDPROG_CXXFLAGS.sparc32 = -m32 -TEMPLATE_VBOXBLDPROG_CXXFLAGS.amd64 = -m64 -TEMPLATE_VBOXBLDPROG_CXXFLAGS.sparc64 = -m64 -TEMPLATE_VBOXBLDPROG_CXXFLAGS.release = -O2 -fno-omit-frame-pointer -fno-strict-aliasing -TEMPLATE_VBOXBLDPROG_CXXFLAGS.profile = $(TEMPLATE_VBOXBLDPROG_CXXFLAGS.release) -TEMPLATE_VBOXBLDPROG_CXXFLAGS.kprofile = $(TEMPLATE_VBOXBLDPROG_CXXFLAGS.release) -TEMPLATE_VBOXBLDPROG_OBJCFLAGS = $(TEMPLATE_VBOXBLDPROG_CFLAGS) -TEMPLATE_VBOXBLDPROG_OBJCFLAGS.x86 = $(TEMPLATE_VBOXBLDPROG_CFLAGS.x86) -TEMPLATE_VBOXBLDPROG_OBJCFLAGS.amd64 = $(TEMPLATE_VBOXBLDPROG_CFLAGS.amd64) -TEMPLATE_VBOXBLDPROG_OBJCFLAGS.release = $(TEMPLATE_VBOXBLDPROG_CFLAGS.release) -TEMPLATE_VBOXBLDPROG_OBJCFLAGS.profile = $(TEMPLATE_VBOXBLDPROG_CFLAGS.profile) -TEMPLATE_VBOXBLDPROG_OBJCFLAGS.kprofile = $(TEMPLATE_VBOXBLDPROG_CFLAGS.kprofile) -TEMPLATE_VBOXBLDPROG_OBJCXXFLAGS = $(TEMPLATE_VBOXBLDPROG_CXXFLAGS) -TEMPLATE_VBOXBLDPROG_OBJCXXFLAGS.x86 = $(TEMPLATE_VBOXBLDPROG_CXXFLAGS.x86) -TEMPLATE_VBOXBLDPROG_OBJCXXFLAGS.amd64 = $(TEMPLATE_VBOXBLDPROG_CXXFLAGS.amd64) -TEMPLATE_VBOXBLDPROG_OBJCXXFLAGS.release = $(TEMPLATE_VBOXBLDPROG_CXXFLAGS.release) -TEMPLATE_VBOXBLDPROG_OBJCXXFLAGS.profile = $(TEMPLATE_VBOXBLDPROG_CXXFLAGS.profile) -TEMPLATE_VBOXBLDPROG_OBJCXXFLAGS.kprofile= $(TEMPLATE_VBOXBLDPROG_CXXFLAGS.kprofile) -TEMPLATE_VBOXBLDPROG_LDFLAGS.x86 = -m32 -TEMPLATE_VBOXBLDPROG_LDFLAGS.sparc32 = -m32 -TEMPLATE_VBOXBLDPROG_LDFLAGS.amd64 = -m64 -TEMPLATE_VBOXBLDPROG_LDFLAGS.sparc64 = -m64 +TEMPLATE_VBoxBldProg_TOOL = GXX3 +TEMPLATE_VBoxBldProg_CFLAGS = -g $(VBOX_GCC_pipe) $(VBOX_GCC_PEDANTIC_C) $(VBOX_GCC_Wno-variadic-macros) +TEMPLATE_VBoxBldProg_CFLAGS.x86 = -m32 +TEMPLATE_VBoxBldProg_CFLAGS.sparc32 = -m32 +TEMPLATE_VBoxBldProg_CFLAGS.amd64 = -m64 +TEMPLATE_VBoxBldProg_CFLAGS.sparc64 = -m64 +TEMPLATE_VBoxBldProg_CFLAGS.release = -O2 -fno-omit-frame-pointer -fno-strict-aliasing +TEMPLATE_VBoxBldProg_CFLAGS.profile = $(TEMPLATE_VBoxBldProg_CXXFLAGS.profile) +TEMPLATE_VBoxBldProg_CFLAGS.kprofile = $(TEMPLATE_VBoxBldProg_CXXFLAGS.kprofile) +TEMPLATE_VBoxBldProg_CXXFLAGS = -g $(VBOX_GCC_pipe) $(VBOX_GCC_PEDANTIC_CXX) $(VBOX_GCC_Wno-variadic-macros) +TEMPLATE_VBoxBldProg_CXXFLAGS.x86 = -m32 +TEMPLATE_VBoxBldProg_CXXFLAGS.sparc32 = -m32 +TEMPLATE_VBoxBldProg_CXXFLAGS.amd64 = -m64 +TEMPLATE_VBoxBldProg_CXXFLAGS.sparc64 = -m64 +TEMPLATE_VBoxBldProg_CXXFLAGS.release = -O2 -fno-omit-frame-pointer -fno-strict-aliasing +TEMPLATE_VBoxBldProg_CXXFLAGS.profile = $(TEMPLATE_VBoxBldProg_CXXFLAGS.release) +TEMPLATE_VBoxBldProg_CXXFLAGS.kprofile = $(TEMPLATE_VBoxBldProg_CXXFLAGS.release) +TEMPLATE_VBoxBldProg_OBJCFLAGS = $(TEMPLATE_VBoxBldProg_CFLAGS) +TEMPLATE_VBoxBldProg_OBJCFLAGS.x86 = $(TEMPLATE_VBoxBldProg_CFLAGS.x86) +TEMPLATE_VBoxBldProg_OBJCFLAGS.amd64 = $(TEMPLATE_VBoxBldProg_CFLAGS.amd64) +TEMPLATE_VBoxBldProg_OBJCFLAGS.release = $(TEMPLATE_VBoxBldProg_CFLAGS.release) +TEMPLATE_VBoxBldProg_OBJCFLAGS.profile = $(TEMPLATE_VBoxBldProg_CFLAGS.profile) +TEMPLATE_VBoxBldProg_OBJCFLAGS.kprofile = $(TEMPLATE_VBoxBldProg_CFLAGS.kprofile) +TEMPLATE_VBoxBldProg_OBJCXXFLAGS = $(TEMPLATE_VBoxBldProg_CXXFLAGS) +TEMPLATE_VBoxBldProg_OBJCXXFLAGS.x86 = $(TEMPLATE_VBoxBldProg_CXXFLAGS.x86) +TEMPLATE_VBoxBldProg_OBJCXXFLAGS.amd64 = $(TEMPLATE_VBoxBldProg_CXXFLAGS.amd64) +TEMPLATE_VBoxBldProg_OBJCXXFLAGS.release = $(TEMPLATE_VBoxBldProg_CXXFLAGS.release) +TEMPLATE_VBoxBldProg_OBJCXXFLAGS.profile = $(TEMPLATE_VBoxBldProg_CXXFLAGS.profile) +TEMPLATE_VBoxBldProg_OBJCXXFLAGS.kprofile= $(TEMPLATE_VBoxBldProg_CXXFLAGS.kprofile) +TEMPLATE_VBoxBldProg_LDFLAGS.x86 = -m32 +TEMPLATE_VBoxBldProg_LDFLAGS.sparc32 = -m32 +TEMPLATE_VBoxBldProg_LDFLAGS.amd64 = -m64 +TEMPLATE_VBoxBldProg_LDFLAGS.sparc64 = -m64 ifeq ($(KBUILD_HOST),linux) -TEMPLATE_VBOXBLDPROG_LIBS = pthread m rt dl +TEMPLATE_VBoxBldProg_LIBS = pthread m rt dl else ifeq ($(KBUILD_HOST),os2) -TEMPLATE_VBOXBLDPROG_TOOL = GXX3OMF -TEMPLATE_VBOXBLDPROG_LIBS = socket iconv +TEMPLATE_VBoxBldProg_TOOL = GXX3OMF +TEMPLATE_VBoxBldProg_LIBS = socket iconv else ifeq ($(KBUILD_HOST),darwin) -TEMPLATE_VBOXBLDPROG_TOOL = GXX4MACHO +TEMPLATE_VBoxBldProg_TOOL = GXX4MACHO if "$(VBOX_DEF_MACOSX_VERSION_MIN)" == "10.7" || "$(VBOX_DARWIN_HOST_VERSION_MAJOR)" == "7" -TEMPLATE_VBOXBLDPROG_DEFS.darwin = $(VBOX_DARWIN_DEF_SDK_10_7_DEFS) -TEMPLATE_VBOXBLDPROG_CFLAGS.darwin = $(VBOX_DARWIN_DEF_SDK_10_7_CFLAGS) -fno-common -TEMPLATE_VBOXBLDPROG_CXXFLAGS.darwin = $(VBOX_DARWIN_DEF_SDK_10_7_CXXFLAGS) -TEMPLATE_VBOXBLDPROG_OBJCFLAGS.darwin = $(VBOX_DARWIN_DEF_SDK_10_7_OBJCFLAGS) $(VBOX_GCC_PEDANTIC_C) -TEMPLATE_VBOXBLDPROG_OBJCXXFLAGS.darwin = $(VBOX_DARWIN_DEF_SDK_10_7_OBJCXXFLAGS) $(VBOX_GCC_PEDANTIC_CXX) -TEMPLATE_VBOXBLDPROG_LDFLAGS.darwin = $(VBOX_DARWIN_DEF_SDK_10_7_LDFLAGS) +TEMPLATE_VBoxBldProg_DEFS.darwin = $(VBOX_DARWIN_DEF_SDK_10_7_DEFS) +TEMPLATE_VBoxBldProg_CFLAGS.darwin = $(VBOX_DARWIN_DEF_SDK_10_7_CFLAGS) -fno-common +TEMPLATE_VBoxBldProg_CXXFLAGS.darwin = $(VBOX_DARWIN_DEF_SDK_10_7_CXXFLAGS) +TEMPLATE_VBoxBldProg_OBJCFLAGS.darwin = $(VBOX_DARWIN_DEF_SDK_10_7_OBJCFLAGS) $(VBOX_GCC_PEDANTIC_C) +TEMPLATE_VBoxBldProg_OBJCXXFLAGS.darwin = $(VBOX_DARWIN_DEF_SDK_10_7_OBJCXXFLAGS) $(VBOX_GCC_PEDANTIC_CXX) +TEMPLATE_VBoxBldProg_LDFLAGS.darwin = $(VBOX_DARWIN_DEF_SDK_10_7_LDFLAGS) else if "$(VBOX_DEF_MACOSX_VERSION_MIN)" == "10.6" || "$(VBOX_DARWIN_HOST_VERSION_MAJOR)" == "6" -TEMPLATE_VBOXBLDPROG_DEFS.darwin = $(VBOX_DARWIN_DEF_SDK_10_6_DEFS) -TEMPLATE_VBOXBLDPROG_CFLAGS.darwin = $(VBOX_DARWIN_DEF_SDK_10_6_CFLAGS) -fno-common -TEMPLATE_VBOXBLDPROG_CXXFLAGS.darwin = $(VBOX_DARWIN_DEF_SDK_10_6_CXXFLAGS) -TEMPLATE_VBOXBLDPROG_OBJCFLAGS.darwin = $(VBOX_DARWIN_DEF_SDK_10_6_OBJCFLAGS) $(VBOX_GCC_PEDANTIC_C) -TEMPLATE_VBOXBLDPROG_OBJCXXFLAGS.darwin = $(VBOX_DARWIN_DEF_SDK_10_6_OBJCXXFLAGS) $(VBOX_GCC_PEDANTIC_CXX) -TEMPLATE_VBOXBLDPROG_LDFLAGS.darwin = $(VBOX_DARWIN_DEF_SDK_10_6_LDFLAGS) +TEMPLATE_VBoxBldProg_DEFS.darwin = $(VBOX_DARWIN_DEF_SDK_10_6_DEFS) +TEMPLATE_VBoxBldProg_CFLAGS.darwin = $(VBOX_DARWIN_DEF_SDK_10_6_CFLAGS) -fno-common +TEMPLATE_VBoxBldProg_CXXFLAGS.darwin = $(VBOX_DARWIN_DEF_SDK_10_6_CXXFLAGS) +TEMPLATE_VBoxBldProg_OBJCFLAGS.darwin = $(VBOX_DARWIN_DEF_SDK_10_6_OBJCFLAGS) $(VBOX_GCC_PEDANTIC_C) +TEMPLATE_VBoxBldProg_OBJCXXFLAGS.darwin = $(VBOX_DARWIN_DEF_SDK_10_6_OBJCXXFLAGS) $(VBOX_GCC_PEDANTIC_CXX) +TEMPLATE_VBoxBldProg_LDFLAGS.darwin = $(VBOX_DARWIN_DEF_SDK_10_6_LDFLAGS) else if "$(VBOX_DEF_MACOSX_VERSION_MIN)" == "10.5" || "$(VBOX_DARWIN_HOST_VERSION_MAJOR)" == "5" || defined(VBOX_MACOS_10_5_WORKAROUND) -TEMPLATE_VBOXBLDPROG_DEFS.darwin = $(VBOX_DARWIN_DEF_SDK_10_5_DEFS) -TEMPLATE_VBOXBLDPROG_CFLAGS.darwin = $(VBOX_DARWIN_DEF_SDK_10_5_CFLAGS) -fno-common -TEMPLATE_VBOXBLDPROG_CXXFLAGS.darwin = $(VBOX_DARWIN_DEF_SDK_10_5_CXXFLAGS) -TEMPLATE_VBOXBLDPROG_OBJCFLAGS.darwin = $(VBOX_DARWIN_DEF_SDK_10_5_OBJCFLAGS) $(VBOX_GCC_PEDANTIC_C) -TEMPLATE_VBOXBLDPROG_OBJCXXFLAGS.darwin = $(VBOX_DARWIN_DEF_SDK_10_5_OBJCXXFLAGS) $(VBOX_GCC_PEDANTIC_CXX) -TEMPLATE_VBOXBLDPROG_LDFLAGS.darwin = $(VBOX_DARWIN_DEF_SDK_10_5_LDFLAGS) +TEMPLATE_VBoxBldProg_DEFS.darwin = $(VBOX_DARWIN_DEF_SDK_10_5_DEFS) +TEMPLATE_VBoxBldProg_CFLAGS.darwin = $(VBOX_DARWIN_DEF_SDK_10_5_CFLAGS) -fno-common +TEMPLATE_VBoxBldProg_CXXFLAGS.darwin = $(VBOX_DARWIN_DEF_SDK_10_5_CXXFLAGS) +TEMPLATE_VBoxBldProg_OBJCFLAGS.darwin = $(VBOX_DARWIN_DEF_SDK_10_5_OBJCFLAGS) $(VBOX_GCC_PEDANTIC_C) +TEMPLATE_VBoxBldProg_OBJCXXFLAGS.darwin = $(VBOX_DARWIN_DEF_SDK_10_5_OBJCXXFLAGS) $(VBOX_GCC_PEDANTIC_CXX) +TEMPLATE_VBoxBldProg_LDFLAGS.darwin = $(VBOX_DARWIN_DEF_SDK_10_5_LDFLAGS) else -TEMPLATE_VBOXBLDPROG_DEFS.darwin = $(VBOX_DARWIN_DEF_SDK_DEFS) -TEMPLATE_VBOXBLDPROG_CFLAGS.darwin = $(VBOX_DARWIN_DEF_SDK_CFLAGS) -fno-common -TEMPLATE_VBOXBLDPROG_CXXFLAGS.darwin = $(VBOX_DARWIN_DEF_SDK_CXXFLAGS) -TEMPLATE_VBOXBLDPROG_OBJCFLAGS.darwin = $(VBOX_DARWIN_DEF_SDK_OBJCFLAGS) $(VBOX_GCC_PEDANTIC_C) -TEMPLATE_VBOXBLDPROG_OBJCXXFLAGS.darwin = $(VBOX_DARWIN_DEF_SDK_OBJCXXFLAGS) $(VBOX_GCC_PEDANTIC_CXX) -TEMPLATE_VBOXBLDPROG_LDFLAGS.darwin = $(VBOX_DARWIN_DEF_SDK_LDFLAGS) - endif -TEMPLATE_VBOXBLDPROG_LIBS = +TEMPLATE_VBoxBldProg_DEFS.darwin = $(VBOX_DARWIN_DEF_SDK_DEFS) +TEMPLATE_VBoxBldProg_CFLAGS.darwin = $(VBOX_DARWIN_DEF_SDK_CFLAGS) -fno-common +TEMPLATE_VBoxBldProg_CXXFLAGS.darwin = $(VBOX_DARWIN_DEF_SDK_CXXFLAGS) +TEMPLATE_VBoxBldProg_OBJCFLAGS.darwin = $(VBOX_DARWIN_DEF_SDK_OBJCFLAGS) $(VBOX_GCC_PEDANTIC_C) +TEMPLATE_VBoxBldProg_OBJCXXFLAGS.darwin = $(VBOX_DARWIN_DEF_SDK_OBJCXXFLAGS) $(VBOX_GCC_PEDANTIC_CXX) +TEMPLATE_VBoxBldProg_LDFLAGS.darwin = $(VBOX_DARWIN_DEF_SDK_LDFLAGS) + endif +TEMPLATE_VBoxBldProg_LIBS = + else ifeq ($(KBUILD_HOST),haiku) +TEMPLATE_VBoxBldProg_TOOL = GXX3 +TEMPLATE_VBoxBldProg_LIBS = network iconv +TEMPLATE_VBoxBldProg_LIBPATH += \ + /boot/common/lib else if1of ($(KBUILD_HOST), freebsd netbsd openbsd) -TEMPLATE_VBOXBLDPROG_TOOL = GXX3 -TEMPLATE_VBOXBLDPROG_LIBS = pthread -TEMPLATE_VBOXBLDPROG_INCS += \ +TEMPLATE_VBoxBldProg_TOOL = GXX3 +TEMPLATE_VBoxBldProg_LIBS = pthread +TEMPLATE_VBoxBldProg_INCS += \ /usr/include \ /usr/X11R6/include \ /usr/local/include -TEMPLATE_VBOXBLDPROG_LIBPATH += \ +TEMPLATE_VBoxBldProg_LIBPATH += \ /usr/lib \ /usr/X11R6/lib \ /usr/local/lib else ifeq ($(KBUILD_HOST),solaris) -TEMPLATE_VBOXBLDPROG_TOOL = GXX3PLAIN -TEMPLATE_VBOXBLDPROG_LIBS = rt +TEMPLATE_VBoxBldProg_TOOL = GXX3PLAIN +TEMPLATE_VBoxBldProg_LIBS = rt else $(warning Warning: VBOX Build: Target $(KBUILD_HOST) is not officially supported!) endif @@ -4311,37 +4605,45 @@ # -# Advanced build programs using IPRT, openssl and worse stuff. +# Advanced build programs using IPRT and stuff. # TEMPLATE_VBoxAdvBldProg = Advanced VBox Build Program -TEMPLATE_VBoxAdvBldProg_EXTENDS = VBOXBLDPROG -TEMPLATE_VBoxAdvBldProg_SDKS = $(TEMPLATE_VBOXBLDPROG_SDKS) VBOX_BLD_OPENSSL -TEMPLATE_VBoxAdvBldProg_SDKS.win= $(TEMPLATE_VBOXBLDPROG_SDKS.win) VBOX_NTDLL -TEMPLATE_VBoxAdvBldProg_DEFS = $(TEMPLATE_VBOXBLDPROG_DEFS) IN_RT_R3 +TEMPLATE_VBoxAdvBldProg_EXTENDS = VBoxBldProg +TEMPLATE_VBoxAdvBldProg_SDKS = $(TEMPLATE_VBoxBldProg_SDKS) +TEMPLATE_VBoxAdvBldProg_SDKS.win= $(TEMPLATE_VBoxBldProg_SDKS.win) VBOX_NTDLL +TEMPLATE_VBoxAdvBldProg_DEFS = $(TEMPLATE_VBoxBldProg_DEFS) IN_RT_R3 +ifeq ($(KBUILD_HOST),win) + #TEMPLATE_VBoxAdvBldProg_CFLAGS = $(TEMPLATE_VBoxBldProg_CFLAGS) $(VBOX_VCC_WERR) - 4.2+ + #TEMPLATE_VBoxAdvBldProg_CXXFLAGS = $(TEMPLATE_VBoxBldProg_CXXFLAGS) $(VBOX_VCC_WERR) - 4.2+ +endif TEMPLATE_VBoxAdvBldProg_LIBS = \ $(PATH_STAGE_LIB)/RuntimeBldProg$(VBOX_SUFF_LIB) \ - $(TEMPLATE_VBOXBLDPROG_LIBS) + $(if-expr defined(IPRT_WITH_KSTUFF), \ + $(PATH_STAGE_LIB)/VBox-kStuffStaticBldProg$(VBOX_SUFF_LIB) \ + $(PATH_STAGE_LIB)/RuntimeBldProg$(VBOX_SUFF_LIB) \ + ,) \ + $(TEMPLATE_VBoxBldProg_LIBS) TEMPLATE_VBoxAdvBldProg_LIBS.darwin = \ - $(TEMPLATE_VBOXBLDPROG_LIBS) \ + $(TEMPLATE_VBoxAdvBldProg_LIBS) \ iconv \ - $(TEMPLATE_VBOXBLDPROG_LIBS.darwin) + $(TEMPLATE_VBoxBldProg_LIBS.darwin) TEMPLATE_VBoxAdvBldProg_LIBS.freebsd = \ - $(TEMPLATE_VBOXBLDPROG_LIBS) \ + $(TEMPLATE_VBoxAdvBldProg_LIBS) \ iconv \ rt \ - $(TEMPLATE_VBOXBLDPROG_LIBS.freebsd) + $(TEMPLATE_VBoxBldProg_LIBS.freebsd) TEMPLATE_VBoxAdvBldProg_LIBS.linux = \ - $(TEMPLATE_VBOXBLDPROG_LIBS) \ + $(TEMPLATE_VBoxAdvBldProg_LIBS) \ crypt \ - $(TEMPLATE_VBOXBLDPROG_LIBS.linux) + $(TEMPLATE_VBoxBldProg_LIBS.linux) TEMPLATE_VBoxAdvBldProg_LIBS.solaris = \ - $(TEMPLATE_VBOXBLDPROG_LIBS) \ + $(TEMPLATE_VBoxAdvBldProg_LIBS) \ contract \ kstat \ rt \ socket \ nsl \ - $(TEMPLATE_VBOXBLDPROG_LIBS.solaris) + $(TEMPLATE_VBoxBldProg_LIBS.solaris) # @@ -4425,7 +4727,7 @@ TEMPLATE_VBOXGUESTR3EXE_DEFS := $(filter-out $(ARCH_BITS_DEFS), $(TEMPLATE_VBOXR3EXE_DEFS)) IN_GUEST IN_GUEST_R3 IN_RT_R3 $(VBOX_GC_ARCH_BITS_DEFS) TEMPLATE_VBOXGUESTR3EXE_DEFS.linux := $(TEMPLATE_VBOXR3EXE_DEFS.linux) LOG_USE_C99 RT_WITHOUT_EXEC_ALLOC ifeq ($(KBUILD_TARGET),linux) # As few libs as possible on linux. - TEMPLATE_VBOXGUESTR3EXE_LIBS = pthread rt m + TEMPLATE_VBOXGUESTR3EXE_LIBS = pthread rt m dl else if1of ($(KBUILD_TARGET), freebsd netbsd openbsd) TEMPLATE_VBOXGUESTR3EXE_LIBS = $(TEMPLATE_VBOXR3EXE_LIBS) iconv else ifeq ($(KBUILD_TARGET), solaris) @@ -4882,7 +5184,7 @@ SVN ?= svn$(HOSTSUFF_EXE) VBOX_SVN_REV_KMK = $(PATH_OUT)/revision.kmk ifndef VBOX_SVN_REV - VBOX_SVN_REV_FALLBACK := $(patsubst %:,, $Rev: 77218 $ ) + VBOX_SVN_REV_FALLBACK := $(patsubst %:,, $Rev: 104071 $ ) VBOX_SVN_DEP := $(wildcard $(PATH_ROOT)/.svn/entries) ifeq ($(which $(SVN)),) VBOX_SVN_DEP := @@ -5026,3 +5328,4 @@ quick: $(MAKE) VBOX_QUICK=1 + diff -Nru virtualbox-4.1.12-dfsg/configure virtualbox-4.1.44-dfsg/configure --- virtualbox-4.1.12-dfsg/configure 2012-04-02 13:24:34.000000000 +0000 +++ virtualbox-4.1.44-dfsg/configure 2015-11-11 15:05:58.000000000 +0000 @@ -43,7 +43,7 @@ fi } -OS=`uname -s | sed -e 's/GNU\/Linux/Linux/g' | tr [:upper:] [:lower:]` +OS=`uname -s | sed -e 's/GNU\/Linux/Linux/g' | tr '[:upper:]' '[:lower:]'` case "$OS" in linux) ;; @@ -93,7 +93,6 @@ WITH_EXTPACK=1 WITH_DOCS=1 BUILD_LIBXML2= -BUILD_LIBCURL= BUILD_LIBSSL= PASSIVE_MESA=0 CC="gcc" @@ -129,15 +128,11 @@ LIBVNCSERVER="-lvncserver" CXX_FLAGS="" if [ "$OS" = "freebsd" ]; then - INCCURL="-I/usr/local/include" - LIBCURL="-L/usr/local/lib -lcurl" INCPULSE="-I/usr/local/include" LIBPULSE="-L/usr/local/lib" INCPNG="-I/usr/local/include" LIBPNG="-L/usr/local/lib -lpng" else - INCCURL="" - LIBCURL="-lcurl" INCPNG="" LIBPNG="-lpng" fi @@ -919,38 +914,6 @@ fi } -# -# Check for libcurl, needed by S3 -# -check_curl() -{ - if [ -z "$BUILD_LIBCURL" ]; then - test_header libcurl - cat > $ODIR.tmp_src.cc << EOF -#include -#include -extern "C" int main(void) -{ - printf("found version %s", LIBCURL_VERSION); -#if 10000*LIBCURL_VERSION_MAJOR + 100*LIBCURL_VERSION_MINOR + LIBCURL_VERSION_PATCH >= 71601 - printf(", OK.\n"); - return 0; -#else - printf(", expected version 7.16.1 or higher\n"); - return 1; -#endif -} -EOF - [ -n "$INCCURL" ] && I_INCCURL=`prefix_I "$INCCURL"` - if test_compile "$LIBCURL $I_INCCURL" libcurl libcurl; then - if test_execute; then - cnf_append "SDK_VBOX_LIBCURL_LIBS" "`strip_l "$LIBCURL"`" - cnf_append "SDK_VBOX_LIBCURL_INCS" "$INCCURL" - fi - fi - fi -} - # # Check for pam, needed by VRDPAuth @@ -1618,8 +1581,10 @@ echo "compiling the following source file:" >> $LOG cat $ODIR.tmp_src.c >> $LOG echo "using the following command line:" >> $LOG - echo "$CC -O -Wall -o $ODIR.tmp_out $ODIR.tmp_src.c -nostdinc -I$LINUX/include" >> $LOG - $CC -O -Wall -o $ODIR.tmp_out $ODIR.tmp_src.c -nostdinc -I$LINUX/include >> $LOG 2>&1 + echo "$CC -O -Wall -o $ODIR.tmp_out $ODIR.tmp_src.c -nostdinc -I$LINUX/include " \ + "-I$LINUX/include/generated/uapi" >> $LOG + $CC -O -Wall -o $ODIR.tmp_out $ODIR.tmp_src.c -nostdinc -I$LINUX/include \ + -I$LINUX/include/generated/uapi >> $LOG 2>&1 if [ $? -ne 0 ]; then echo echo " Linux kernel headers not found at $LINUX" @@ -1832,7 +1797,7 @@ fi for p in $PYTHONDIR; do for d in $SUPPYTHONLIBS; do - for b in lib64 lib/64 lib; do + for b in lib/x86_64-linux-gnu lib/i386-linux-gnu lib64 lib/64 lib; do echo "compiling the following source file:" >> $LOG cat $ODIR.tmp_src.cc >> $LOG echo "using the following command line:" >> $LOG @@ -2131,7 +2096,6 @@ EOF [ $OSE -eq 0 ] && cat << EOF --build-libssl build openssl from sources - --build-libcurl build libcurl from sources EOF [ "$OS" != "darwin" ] && echo " --setup-wine setup a Wine directory and register the hhc hack" cat << EOF @@ -2185,7 +2149,6 @@ WITH_DBUS=0 WITH_KMODS=0 BUILD_LIBXML2=1 - [ $OSE -eq 1 ] || BUILD_LIBCURL=1 fi # scan command line options @@ -2321,9 +2284,6 @@ --build-libssl) BUILD_LIBSSL=1 ;; - --build-libcurl) - BUILD_LIBCURL=1 - ;; --build-headless) HEADLESS=1 WITH_SDL=0 @@ -2499,7 +2459,6 @@ check_libxml2 [ $WITH_LIBIDL -eq 1 ] && check_libidl check_ssl -check_curl [ "$OS" != "darwin" ] && check_z [ "$OS" != "darwin" ] && check_png [ $OSE -eq 0 -a "$OS" = "linux" ] && check_pam diff -Nru virtualbox-4.1.12-dfsg/configure.vbs virtualbox-4.1.44-dfsg/configure.vbs --- virtualbox-4.1.12-dfsg/configure.vbs 2012-04-02 13:24:34.000000000 +0000 +++ virtualbox-4.1.44-dfsg/configure.vbs 2015-11-11 15:05:58.000000000 +0000 @@ -2072,68 +2072,6 @@ '' -' Checks for libcurl -sub CheckForCurl(strOptCurl) - dim strPathCurl, str - PrintHdr "libcurl" - - ' - ' Try find some cURL dll/lib. - ' - strPathCurl = "" - if (strPathCurl = "") And (strOptCurl <> "") then - if CheckForCurlSub(strOptCurl) then strPathCurl = strOptCurl - end if - - if strPathCurl = "" Then - str = Which("libcurl.lib") - if str <> "" Then - str = PathParent(PathStripFilename(str)) - if CheckForCurlSub(str) then strPathCurl = str - end if - end if - - ' Ignore failure if we're in 'internal' mode. - if (strPathCurl = "") and g_blnInternalMode then - PrintResultMsg "curl", "ignored (internal mode)" - exit sub - end if - - ' Success? - if strPathCurl = "" then - if strOptCurl = "" then - MsgError "Can't locate libcurl. Try specify the path with the --with-libcurl= argument. " _ - & "If still no luck, consult the configure.log and the build requirements." - else - MsgError "Can't locate libcurl. Please consult the configure.log and the build requirements." - end if - exit sub - end if - - strPathCurl = UnixSlashes(PathAbs(strPathCurl)) - CfgPrint "SDK_VBOX_LIBCURL_INCS := " & strPathCurl & "/include" - CfgPrint "SDK_VBOX_LIBCURL_LIBS := " & strPathCurl & "/libcurl.lib" - - PrintResult "libcurl", strPathCurl -end sub - -'' -' Checks if the specified path points to an usable libcurl or not. -function CheckForCurlSub(strPathCurl) - - CheckForCurlSub = False - LogPrint "trying: strPathCurl=" & strPathCurl - if LogFileExists(strPathCurl, "include/curl/curl.h") _ - And LogFindFile(strPathCurl, "libcurl.dll") <> "" _ - And LogFindFile(strPathCurl, "libcurl.lib") <> "" _ - then - CheckForCurlSub = True - end if -end function - - - -'' '' ' Checks for any Qt4 binaries. sub CheckForQt4(strOptQt4) @@ -2256,7 +2194,6 @@ Print " --with-libxml2=PATH " Print " --with-libxslt=PATH " Print " --with-openssl=PATH " - Print " --with-libcurl=PATH " Print " --with-python=PATH " end sub @@ -2291,7 +2228,6 @@ strOptXml2 = "" strOptXslt = "" strOptSsl = "" - strOptCurl = "" strOptPython = "" strOptMkisofs = "" blnOptDisableCOM = False @@ -2340,8 +2276,6 @@ strOptXslt = strPath case "--with-openssl" strOptSsl = strPath - case "--with-libcurl" - strOptCurl = strPath case "--with-python" strOptPython = strPath case "--with-mkisofs" @@ -2412,7 +2346,6 @@ CheckForXslt strOptXslt end if CheckForSsl strOptSsl - CheckForCurl strOptCurl CheckForQt4 strOptQt4 if (strOptPython <> "") then CheckForPython strOptPython diff -Nru virtualbox-4.1.12-dfsg/debian/changelog virtualbox-4.1.44-dfsg/debian/changelog --- virtualbox-4.1.12-dfsg/debian/changelog 2015-05-22 00:04:49.000000000 +0000 +++ virtualbox-4.1.44-dfsg/debian/changelog 2015-11-21 00:43:17.000000000 +0000 @@ -1,3 +1,127 @@ +virtualbox (4.1.44-dfsg-1+deb7u1ubuntu1) precise-security; urgency=medium + + * New upstream release. (LP: #1517161) + - drop patches and rebase with debian wheezy-security upload + - all CVEs are fixed in the upstream import, drop all the CVE + patches. + * Add two patches, to comply with build failures (build and module build) + - fix-ipv6-build.patch + - fix-module-build.patch + + -- Gianfranco Costamagna Tue, 17 Nov 2015 12:37:21 +0100 + +virtualbox (4.1.42-dfsg-1+deb7u1) wheezy-security; urgency=medium + + * New upstream release. + - Addressed CVE-2015-4813 and CVE-2015-4896 + + -- Gianfranco Costamagna Mon, 26 Oct 2015 12:14:36 +0100 + +virtualbox (4.1.40-dfsg-1+deb7u1) wheezy-security; urgency=medium + + * New upstream release. + * Remove all the CVE related patches, and refresh patches. + + -- Gianfranco Costamagna Fri, 28 Aug 2015 16:01:27 +0200 + +virtualbox (4.1.18-dfsg-2+deb7u5) wheezy-security; urgency=medium + + * d/p/CVE-2015-3456.patch fix for CVE-2015-3456 a.k.a. VENOM + (Closes: #785424) + + -- Gianfranco Costamagna Mon, 18 May 2015 18:32:20 +0200 + +virtualbox (4.1.18-dfsg-2+deb7u4) wheezy-security; urgency=medium + + [ Frank Mehnert ] + * fix security vulnerabilities (Closes: #775888) + CVE-2015-0377, CVE-2015-0418 + - debian/patches/CVE-2015-0{377,418}.patch + + -- Gianfranco Costamagna Thu, 22 Jan 2015 14:21:14 +0100 + +virtualbox (4.1.18-dfsg-2+deb7u3) wheezy-security; urgency=high + + * Fix memory corruption vulnerabilities in 3D acceleration. (Closes: #741602) + - CVE-2014-0981, CVE-2014-0983 + - Backport fixes from version 4.1.32 in debian/patches/CVE-2014-0981.patch + and debian/patches/CVE-2014-0983.patch + + -- Felix Geyer Mon, 14 Apr 2014 11:19:01 +0200 + +virtualbox (4.1.18-dfsg-2+deb7u2) wheezy-security; urgency=high + + * Apply fixes from the January 2014 security advisory. (Closes: #735410) + - Add debian/patches/38-security-fixes-2014-01.patch + - CVE-2013-5892, CVE-2014-0407, CVE-2014-0406, CVE-2014-0404 + + -- Felix Geyer Sun, 09 Mar 2014 19:46:52 +0100 + +virtualbox (4.1.18-dfsg-2+deb7u1) unstable; urgency=high + + * Fix build failure with the Debian wheezy kernel which backports the drm + subsystem from Linux 3.4. (Closes: #703358) + * Set urgency to high as it fixes an RC bug. + + -- Felix Geyer Sun, 31 Mar 2013 20:45:16 +0200 + +virtualbox (4.1.18-dfsg-2) unstable; urgency=high + + [ John Paul Adrian Glaubitz ] + * Include patch to fix virtual graphics device user + vulnerability CVE-2013-0420. (Closes: #698292) + + -- Felix Geyer Sat, 19 Jan 2013 18:05:25 +0100 + +virtualbox (4.1.18-dfsg-1.1) unstable; urgency=high + + * Non-maintainer upload. + * Fix cve-2012-3221: missing privilege check for task gate switches + (closes: 690777). + + -- Michael Gilbert Thu, 18 Oct 2012 14:20:28 -0400 + +virtualbox (4.1.18-dfsg-1) unstable; urgency=low + + * New upstream release. + - Fixes host freezes with 64-bit guests on 32-bit hosts. (LP: #1012627) + - Fixes odd permissions of files in shared folders. (LP: #1013368) + * Drop 37-fix-unregister-netdevice.patch, fixed upstream. + * Compress orig tarball and binary packages with xz. + + -- Felix Geyer Thu, 21 Jun 2012 12:31:17 +0200 + +virtualbox (4.1.16-dfsg-2) unstable; urgency=low + + * Fix vboxnet device unregistration on kernel >= 3.2.18. (LP: #1009156) + - Add 37-fix-unregister-netdevice.patch, backported from upstream. + * Switch from python-central to dh_python2. (Closes: #617143) + + -- Felix Geyer Sun, 10 Jun 2012 21:32:09 +0200 + +virtualbox (4.1.16-dfsg-1) unstable; urgency=low + + * New upstream release. + * Drop 37-fix-build-gcc47.patch, fixed upstream. + + -- Felix Geyer Tue, 29 May 2012 10:09:31 +0200 + +virtualbox (4.1.14-dfsg-2) unstable; urgency=low + + * Fix FTBFS with gcc 4.7 on i386. + - Add 37-fix-build-gcc47.patch + + -- Felix Geyer Mon, 21 May 2012 10:39:19 +0200 + +virtualbox (4.1.14-dfsg-1) unstable; urgency=low + + * New upstream release. + - Drop 36-tarball-respin.patch + * Fix FTBFS with X Server 1.12. (Closes: #671061) + - Add 36-fix-ftbfs-xserver-112.patch + + -- Felix Geyer Tue, 01 May 2012 20:22:40 +0200 + virtualbox (4.1.12-dfsg-2ubuntu0.10) precise-security; urgency=medium * d/p/CVE-2015-3456.patch fix for CVE-2015-3456 a.k.a. VENOM diff -Nru virtualbox-4.1.12-dfsg/debian/control virtualbox-4.1.44-dfsg/debian/control --- virtualbox-4.1.12-dfsg/debian/control 2013-03-25 11:37:11.000000000 +0000 +++ virtualbox-4.1.44-dfsg/debian/control 2015-11-17 11:57:40.000000000 +0000 @@ -13,6 +13,7 @@ dkms (>= 2.1.1.1), docbook-xml, docbook-xsl, + dpkg-dev (>= 1.15.6~), g++-multilib [amd64], genisoimage, gsoap, @@ -50,8 +51,7 @@ lsb-release, lynx-cur, makeself, - python-central (>= 0.6.7~), - python-dev (>= 2.4), + python-dev (>= 2.6.6-3~), texlive-fonts-extra, texlive-fonts-recommended, texlive-latex-extra, @@ -63,7 +63,7 @@ xsltproc, yasm (>= 0.7.0), zlib1g-dev -XS-Python-Version: >= 2.5 +X-Python-Version: >= 2.5 Standards-Version: 3.9.3 Homepage: http://www.virtualbox.org/ Vcs-Git: git://git.debian.org/git/pkg-virtualbox/virtualbox.git @@ -71,6 +71,7 @@ Package: virtualbox-qt Architecture: amd64 i386 +Pre-Depends: dpkg (>= 1.15.6~) Depends: ${shlibs:Depends}, ${misc:Depends}, virtualbox (= ${binary:Version}) @@ -88,6 +89,7 @@ Package: virtualbox Architecture: amd64 i386 +Pre-Depends: dpkg (>= 1.15.6~) Depends: ${shlibs:Depends}, ${misc:Depends}, ${python:Depends}, @@ -100,7 +102,6 @@ Conflicts: virtualbox-2.0, virtualbox-2.1, virtualbox-2.2, virtualbox-3.0 Breaks: virtualbox-ose (<< 4.0.6-dfsg-1~) Replaces: virtualbox-ose (<< 4.0.6-dfsg-1~) -XB-Python-Version: ${python:Versions} Description: x86 virtualization solution - base binaries VirtualBox is a free x86 virtualization solution allowing a wide range of x86 operating systems such as Windows, DOS, BSD or Linux to run on a @@ -115,6 +116,7 @@ Section: debug Priority: extra Architecture: amd64 i386 +Pre-Depends: dpkg (>= 1.15.6~) Depends: ${misc:Depends}, virtualbox (= ${binary:Version}) | virtualbox-guest-utils (= ${binary:Version}) Breaks: virtualbox-ose-dbg (<< 4.0.6-dfsg-1~) @@ -129,6 +131,7 @@ Package: virtualbox-dkms Section: kernel Architecture: all +Pre-Depends: dpkg (>= 1.15.6~) Depends: ${misc:Depends}, virtualbox (>= ${source:Version}) Breaks: virtualbox-ose-dkms (<< 4.0.6-dfsg-1~) Replaces: virtualbox-ose-dkms (<< 4.0.6-dfsg-1~), @@ -165,6 +168,7 @@ Package: virtualbox-guest-dkms Section: kernel Architecture: all +Pre-Depends: dpkg (>= 1.15.6~) Depends: ${misc:Depends}, virtualbox-guest-utils (>= ${source:Version}) Breaks: virtualbox-ose-guest-dkms (<< 4.0.6-dfsg-1~) @@ -204,6 +208,7 @@ Package: virtualbox-guest-x11 Section: x11 Architecture: amd64 i386 +Pre-Depends: dpkg (>= 1.15.6~) Depends: ${shlibs:Depends}, ${misc:Depends}, ${xserver:Depends}, @@ -223,6 +228,7 @@ Package: virtualbox-guest-utils Architecture: amd64 i386 +Pre-Depends: dpkg (>= 1.15.6~) Depends: ${shlibs:Depends}, ${misc:Depends}, adduser, @@ -243,6 +249,7 @@ Package: virtualbox-fuse Architecture: amd64 i386 +Pre-Depends: dpkg (>= 1.15.6~) Depends: ${shlibs:Depends}, ${misc:Depends}, virtualbox (= ${binary:Version}) diff -Nru virtualbox-4.1.12-dfsg/debian/patches/01-build-arch.patch virtualbox-4.1.44-dfsg/debian/patches/01-build-arch.patch --- virtualbox-4.1.12-dfsg/debian/patches/01-build-arch.patch 2013-03-25 11:37:11.000000000 +0000 +++ virtualbox-4.1.44-dfsg/debian/patches/01-build-arch.patch 2015-11-17 11:56:51.000000000 +0000 @@ -4,7 +4,7 @@ diff -urNad virtualbox-ose-3.0.8-dfsg~/configure virtualbox-ose-3.0.8-dfsg/configure --- virtualbox-ose-3.0.8-dfsg~/configure 2009-10-07 11:27:13.000000000 +0200 +++ virtualbox-ose-3.0.8-dfsg/configure 2009-10-07 13:41:49.012963906 +0200 -@@ -314,7 +314,7 @@ +@@ -324,7 +324,7 @@ check_environment() { test_header environment diff -Nru virtualbox-4.1.12-dfsg/debian/patches/04-vboxdrv-references.patch virtualbox-4.1.44-dfsg/debian/patches/04-vboxdrv-references.patch --- virtualbox-4.1.12-dfsg/debian/patches/04-vboxdrv-references.patch 2013-03-25 11:37:11.000000000 +0000 +++ virtualbox-4.1.44-dfsg/debian/patches/04-vboxdrv-references.patch 2015-11-17 11:56:51.000000000 +0000 @@ -1,10 +1,11 @@ Description: Change error messages for vboxdrv failure, according to virtualbox-ose-dkms. Author: Daniel Hahler -diff -urNad virtualbox-ose-4.0.2-dfsg/src/VBox/VMM/VMMR3/VM.cpp virtualbox-ose-4.0.2-dfsg/src/VBox/VMM/VMMR3/VM.cpp ---- virtualbox-ose-4.0.2-dfsg/src/VBox/VMM/VMMR3/VM.cpp 2011-01-20 11:55:54.000000000 +0100 -+++ virtualbox-ose-4.0.2-dfsg/src/VBox/VMM/VMMR3/VM.cpp 2011-01-20 11:56:18.215472116 +0100 -@@ -289,10 +289,8 @@ +Index: virtualbox/src/VBox/VMM/VMMR3/VM.cpp +=================================================================== +--- virtualbox.orig/src/VBox/VMM/VMMR3/VM.cpp ++++ virtualbox/src/VBox/VMM/VMMR3/VM.cpp +@@ -307,10 +307,8 @@ #ifdef RT_OS_LINUX case VERR_SUPDRV_COMPONENT_NOT_FOUND: @@ -17,7 +18,7 @@ break; #endif -@@ -334,10 +332,8 @@ +@@ -373,10 +371,8 @@ { case VERR_VM_DRIVER_LOAD_ERROR: #ifdef RT_OS_LINUX @@ -30,7 +31,7 @@ #else pszError = N_("VirtualBox kernel driver not loaded"); #endif -@@ -376,10 +372,8 @@ +@@ -415,10 +411,8 @@ case VERR_INVALID_HANDLE: /** @todo track down and fix this error. */ case VERR_VM_DRIVER_NOT_INSTALLED: #ifdef RT_OS_LINUX diff -Nru virtualbox-4.1.12-dfsg/debian/patches/06-xsession.patch virtualbox-4.1.44-dfsg/debian/patches/06-xsession.patch --- virtualbox-4.1.12-dfsg/debian/patches/06-xsession.patch 2013-03-25 11:37:11.000000000 +0000 +++ virtualbox-4.1.44-dfsg/debian/patches/06-xsession.patch 2015-11-17 11:56:51.000000000 +0000 @@ -4,7 +4,7 @@ diff -urNad virtualbox-ose-3.0.8-dfsg~/src/VBox/Additions/x11/Installer/98vboxadd-xclient virtualbox-ose-3.0.8-dfsg/src/VBox/Additions/x11/Installer/98vboxadd-xclient --- virtualbox-ose-3.0.8-dfsg~/src/VBox/Additions/x11/Installer/98vboxadd-xclient 2009-10-07 11:27:13.000000000 +0200 +++ virtualbox-ose-3.0.8-dfsg/src/VBox/Additions/x11/Installer/98vboxadd-xclient 2009-10-07 13:42:27.862988136 +0200 -@@ -40,9 +40,9 @@ +@@ -42,9 +42,9 @@ no_display=1 fi diff -Nru virtualbox-4.1.12-dfsg/debian/patches/07-vboxnetflt-reference.patch virtualbox-4.1.44-dfsg/debian/patches/07-vboxnetflt-reference.patch --- virtualbox-4.1.12-dfsg/debian/patches/07-vboxnetflt-reference.patch 2013-03-25 11:37:11.000000000 +0000 +++ virtualbox-4.1.44-dfsg/debian/patches/07-vboxnetflt-reference.patch 2015-11-17 11:56:51.000000000 +0000 @@ -4,7 +4,7 @@ diff -Nur virtualbox-ose-4.0.0-dfsg.orig/src/VBox/Devices/Network/DrvIntNet.cpp virtualbox-ose-4.0.0-dfsg/src/VBox/Devices/Network/DrvIntNet.cpp --- virtualbox-ose-4.0.0-dfsg.orig/src/VBox/Devices/Network/DrvIntNet.cpp 2010-11-28 18:24:07.000000000 +0100 +++ virtualbox-ose-4.0.0-dfsg/src/VBox/Devices/Network/DrvIntNet.cpp 2011-01-01 23:39:33.408286663 +0100 -@@ -1569,7 +1569,7 @@ +@@ -1692,7 +1692,7 @@ return VERR_PDM_NO_ATTACHED_DRIVER; } return PDMDrvHlpVMSetError(pDrvIns, rc, RT_SRC_POS, diff -Nru virtualbox-4.1.12-dfsg/debian/patches/13-module-mismatch.patch virtualbox-4.1.44-dfsg/debian/patches/13-module-mismatch.patch --- virtualbox-4.1.12-dfsg/debian/patches/13-module-mismatch.patch 2013-03-25 11:37:11.000000000 +0000 +++ virtualbox-4.1.44-dfsg/debian/patches/13-module-mismatch.patch 2015-11-17 11:56:51.000000000 +0000 @@ -4,7 +4,7 @@ diff -urNad virtualbox-ose-4.0.2-dfsg/src/VBox/VMM/VMMR3/VM.cpp virtualbox-ose-3.0.8-dfsg/src/VBox/VMM/VMMR3/VM.cpp --- virtualbox-ose-4.0.2-dfsg/src/VBox/VMM/VMMR3/VM.cpp 2011-01-20 11:58:26.000000000 +0100 +++ virtualbox-ose-4.0.2-dfsg/src/VBox/VMM/VMMR3/VM.cpp 2011-01-20 11:58:27.000000000 +0100 -@@ -410,9 +410,11 @@ +@@ -422,9 +422,11 @@ break; case VERR_VERSION_MISMATCH: case VERR_VM_DRIVER_VERSION_MISMATCH: diff -Nru virtualbox-4.1.12-dfsg/debian/patches/16-no-update.patch virtualbox-4.1.44-dfsg/debian/patches/16-no-update.patch --- virtualbox-4.1.12-dfsg/debian/patches/16-no-update.patch 2013-03-25 11:37:11.000000000 +0000 +++ virtualbox-4.1.44-dfsg/debian/patches/16-no-update.patch 2015-11-17 11:56:51.000000000 +0000 @@ -3,9 +3,11 @@ Author: Daniel Hahler , Felix Geyer diff a/src/VBox/Frontends/VirtualBox/src/net/UIUpdateManager.cpp b/src/VBox/Frontends/VirtualBox/src/net/UIUpdateManager.cpp ---- a/src/VBox/Frontends/VirtualBox/src/net/UIUpdateManager.cpp -+++ b/src/VBox/Frontends/VirtualBox/src/net/UIUpdateManager.cpp -@@ -65,6 +65,8 @@ void UIUpdateManager::shutdown() +Index: virtualbox/src/VBox/Frontends/VirtualBox/src/net/UIUpdateManager.cpp +=================================================================== +--- virtualbox.orig/src/VBox/Frontends/VirtualBox/src/net/UIUpdateManager.cpp ++++ virtualbox/src/VBox/Frontends/VirtualBox/src/net/UIUpdateManager.cpp +@@ -65,6 +65,8 @@ void UIUpdateManager::sltForceCheck() { @@ -14,10 +16,11 @@ /* Force call for new version check: */ sltCheckIfUpdateIsNecessary(true); } -diff -Nur virtualbox-ose-4.0.0-dfsg.orig/src/VBox/Frontends/VirtualBox/src/settings/UISettingsDialogSpecific.cpp virtualbox-ose-4.0.0-dfsg/src/VBox/Frontends/VirtualBox/src/settings/UISettingsDialogSpecific.cpp ---- virtualbox-ose-4.0.0-dfsg.orig/src/VBox/Frontends/VirtualBox/src/settings/UISettingsDialogSpecific.cpp 2010-12-17 16:14:24.000000000 +0100 -+++ virtualbox-ose-4.0.0-dfsg/src/VBox/Frontends/VirtualBox/src/settings/UISettingsDialogSpecific.cpp 2011-01-02 00:03:55.120533579 +0100 -@@ -501,6 +501,10 @@ +Index: virtualbox/src/VBox/Frontends/VirtualBox/src/settings/UISettingsDialogSpecific.cpp +=================================================================== +--- virtualbox.orig/src/VBox/Frontends/VirtualBox/src/settings/UISettingsDialogSpecific.cpp ++++ virtualbox/src/VBox/Frontends/VirtualBox/src/settings/UISettingsDialogSpecific.cpp +@@ -540,6 +540,10 @@ #endif /* !VBOX_WITH_NETFLT */ break; } @@ -28,10 +31,11 @@ default: break; } -diff --git a/src/VBox/Frontends/VirtualBox/src/globals/UIActionPool.cpp b/src/VBox/Frontends/VirtualBox/src/globals/UIActionPool.cpp ---- a/src/VBox/Frontends/VirtualBox/src/globals/UIActionPool.cpp -+++ b/src/VBox/Frontends/VirtualBox/src/globals/UIActionPool.cpp -@@ -438,7 +438,6 @@ void UIActionPool::createActions() +Index: virtualbox/src/VBox/Frontends/VirtualBox/src/globals/UIActionPool.cpp +=================================================================== +--- virtualbox.orig/src/VBox/Frontends/VirtualBox/src/globals/UIActionPool.cpp ++++ virtualbox/src/VBox/Frontends/VirtualBox/src/globals/UIActionPool.cpp +@@ -438,7 +438,6 @@ #ifdef VBOX_WITH_REGISTRATION m_pool[UIActionIndex_Simple_Register] = new PerformRegisterAction(this); #endif /* VBOX_WITH_REGISTRATION */ @@ -39,7 +43,7 @@ m_pool[UIActionIndex_Simple_About] = new ShowAboutAction(this); } -@@ -472,9 +471,6 @@ void UIActionPool::createMenus() +@@ -472,9 +471,6 @@ m_pool[UIActionIndex_Simple_Update]->setVisible(false); #endif #if !(defined(Q_WS_MAC) && (QT_VERSION < 0x040700)) @@ -49,10 +53,11 @@ if (m_pool[UIActionIndex_Simple_About]) delete m_pool[UIActionIndex_Simple_About]; m_pool[UIActionIndex_Simple_About] = new ShowAboutAction(this); -diff --git a/src/VBox/Frontends/VirtualBox/src/globals/UIActionPool.h b/src/VBox/Frontends/VirtualBox/src/globals/UIActionPool.h ---- a/src/VBox/Frontends/VirtualBox/src/globals/UIActionPool.h -+++ b/src/VBox/Frontends/VirtualBox/src/globals/UIActionPool.h -@@ -45,7 +45,6 @@ enum UIActionIndex +Index: virtualbox/src/VBox/Frontends/VirtualBox/src/globals/UIActionPool.h +=================================================================== +--- virtualbox.orig/src/VBox/Frontends/VirtualBox/src/globals/UIActionPool.h ++++ virtualbox/src/VBox/Frontends/VirtualBox/src/globals/UIActionPool.h +@@ -45,7 +45,6 @@ #ifdef VBOX_WITH_REGISTRATION UIActionIndex_Simple_Register, #endif /* VBOX_WITH_REGISTRATION */ @@ -60,10 +65,11 @@ UIActionIndex_Simple_About, /* Maximum index: */ -diff --git a/src/VBox/Frontends/VirtualBox/src/selector/VBoxSelectorWnd.cpp b/src/VBox/Frontends/VirtualBox/src/selector/VBoxSelectorWnd.cpp ---- a/src/VBox/Frontends/VirtualBox/src/selector/VBoxSelectorWnd.cpp -+++ b/src/VBox/Frontends/VirtualBox/src/selector/VBoxSelectorWnd.cpp -@@ -1747,12 +1747,6 @@ void VBoxSelectorWnd::prepareMenuHelp(QMenu *pMenu) +Index: virtualbox/src/VBox/Frontends/VirtualBox/src/selector/VBoxSelectorWnd.cpp +=================================================================== +--- virtualbox.orig/src/VBox/Frontends/VirtualBox/src/selector/VBoxSelectorWnd.cpp ++++ virtualbox/src/VBox/Frontends/VirtualBox/src/selector/VBoxSelectorWnd.cpp +@@ -1751,12 +1751,6 @@ pMenu->addAction(gActionPool->action(UIActionIndex_Simple_Register)); #endif /* VBOX_WITH_REGISTRATION */ @@ -76,7 +82,7 @@ pMenu->addAction(gActionPool->action(UIActionIndex_Simple_About)); /* Configure connections: */ -@@ -1768,8 +1762,6 @@ void VBoxSelectorWnd::prepareMenuHelp(QMenu *pMenu) +@@ -1772,8 +1766,6 @@ VBoxGlobal::connect(gEDataEvents, SIGNAL(sigCanShowRegistrationDlg(bool)), gActionPool->action(UIActionIndex_Simple_Register), SLOT(setEnabled(bool))); #endif /* VBOX_WITH_REGISTRATION */ diff -Nru virtualbox-4.1.12-dfsg/debian/patches/18-system-xorg.patch virtualbox-4.1.44-dfsg/debian/patches/18-system-xorg.patch --- virtualbox-4.1.12-dfsg/debian/patches/18-system-xorg.patch 2013-03-25 11:37:11.000000000 +0000 +++ virtualbox-4.1.44-dfsg/debian/patches/18-system-xorg.patch 2015-11-17 11:56:51.000000000 +0000 @@ -1,10 +1,11 @@ Description: Build the X.Org driver only for the selected system X Server version. Author: Michael Meskes , Felix Geyer -diff --git a/src/VBox/Additions/common/VBoxGuestLib/Makefile.kmk b/src/VBox/Additions/common/VBoxGuestLib/Makefile.kmk ---- a/src/VBox/Additions/common/VBoxGuestLib/Makefile.kmk -+++ b/src/VBox/Additions/common/VBoxGuestLib/Makefile.kmk -@@ -40,8 +40,8 @@ LIBRARIES += \ +Index: virtualbox/src/VBox/Additions/common/VBoxGuestLib/Makefile.kmk +=================================================================== +--- virtualbox.orig/src/VBox/Additions/common/VBoxGuestLib/Makefile.kmk ++++ virtualbox/src/VBox/Additions/common/VBoxGuestLib/Makefile.kmk +@@ -40,8 +40,8 @@ VBoxGuestR3LibShared ifndef VBOX_ONLY_TESTSUITE if1of ($(KBUILD_TARGET), freebsd linux netbsd openbsd) @@ -15,21 +16,24 @@ endif endif LIBRARIES.win.amd64 += VBoxGuestR3Lib-x86 VBoxGuestR3LibShared-x86 -diff --git a/src/VBox/Additions/common/crOpenGL/Makefile.kmk b/src/VBox/Additions/common/crOpenGL/Makefile.kmk ---- a/src/VBox/Additions/common/crOpenGL/Makefile.kmk -+++ b/src/VBox/Additions/common/crOpenGL/Makefile.kmk -@@ -63,16 +63,12 @@ VBoxOGL_TEMPLATE = VBOXCROGLR3GUESTDLL +Index: virtualbox/src/VBox/Additions/common/crOpenGL/Makefile.kmk +=================================================================== +--- virtualbox.orig/src/VBox/Additions/common/crOpenGL/Makefile.kmk ++++ virtualbox/src/VBox/Additions/common/crOpenGL/Makefile.kmk +@@ -63,18 +63,12 @@ VBoxOGL_INCS = . if1of ($(KBUILD_TARGET), linux solaris freebsd) VBoxOGL_INCS += \ - $(VBOX_PATH_X11_ROOT)/libXdamage-1.1 \ - $(VBOX_PATH_X11_ROOT)/libXcomposite-0.4.0 \ +- $(VBOX_PATH_X11_ROOT)/libXext-1.3.1 \ - $(VBOX_PATH_X11_ROOT)/libXfixes-4.0.3 \ - $(VBOX_PATH_X11_ROOT)/damageproto-1.1.0 \ - $(VBOX_PATH_X11_ROOT)/compositeproto-0.4 \ - $(VBOX_PATH_X11_ROOT)/fixesproto-4.0 \ - $(VBOX_PATH_X11_ROOT)/libx11-1.1.5-other \ -- $(VBOX_PATH_X11_ROOT)/1.3/xorg \ +- $(VBOX_PATH_X11_ROOT)/xextproto-7.1.1 \ +- $(VBOX_PATH_X11_ROOT)/xproto-7.0.18 \ + /usr/include/x11 \ + /usr/include/xorg \ + /usr/include/pixman-1 \ @@ -40,9 +44,10 @@ VBoxOGL_DEFS += VBOX_NO_NATIVEGL endif -diff --git a/src/VBox/Additions/x11/Makefile.kmk b/src/VBox/Additions/x11/Makefile.kmk ---- a/src/VBox/Additions/x11/Makefile.kmk -+++ b/src/VBox/Additions/x11/Makefile.kmk +Index: virtualbox/src/VBox/Additions/x11/Makefile.kmk +=================================================================== +--- virtualbox.orig/src/VBox/Additions/x11/Makefile.kmk ++++ virtualbox/src/VBox/Additions/x11/Makefile.kmk @@ -17,6 +17,10 @@ SUB_DEPTH = ../../../.. include $(KBUILD_PATH)/subheader.kmk @@ -54,10 +59,11 @@ # Include sub-makefiles. if1of ($(KBUILD_TARGET), freebsd linux netbsd openbsd solaris) include $(PATH_SUB_CURRENT)/VBoxClient/Makefile.kmk -diff --git a/src/VBox/Additions/x11/vboxmouse/Makefile.kmk b/src/VBox/Additions/x11/vboxmouse/Makefile.kmk ---- a/src/VBox/Additions/x11/vboxmouse/Makefile.kmk -+++ b/src/VBox/Additions/x11/vboxmouse/Makefile.kmk -@@ -23,7 +23,6 @@ include $(KBUILD_PATH)/subheader.kmk +Index: virtualbox/src/VBox/Additions/x11/vboxmouse/Makefile.kmk +=================================================================== +--- virtualbox.orig/src/VBox/Additions/x11/vboxmouse/Makefile.kmk ++++ virtualbox/src/VBox/Additions/x11/vboxmouse/Makefile.kmk +@@ -29,7 +29,6 @@ # vboxmouse_drv # if1of ($(KBUILD_TARGET), linux) @@ -65,7 +71,7 @@ vboxmouse_drv_TEMPLATE = VBOXGUESTR3XF86MOD vboxmouse_drv_DEFS.linux = linux vboxmouse_drv_DEFS.x86 += __i386__ -@@ -59,7 +58,6 @@ endif +@@ -65,7 +64,6 @@ # # vboxmouse_drv_70 # @@ -73,7 +79,7 @@ vboxmouse_drv_70_TEMPLATE = VBOXGUESTR3XORGMOD vboxmouse_drv_70_DEFS = \ XFree86Server IN_MODULE XFree86Module XFree86LOADER XINPUT XORG_7X IN_XF86_MODULE -@@ -80,7 +78,6 @@ vboxmouse_drv_70_SOURCES = \ +@@ -86,7 +84,6 @@ # # vboxmouse_drv_71 # @@ -81,7 +87,7 @@ vboxmouse_drv_71_TEMPLATE = VBOXGUESTR3XORGMOD vboxmouse_drv_71_DEFS := $(vboxmouse_drv_70_DEFS) vboxmouse_drv_71_INCS := \ -@@ -97,7 +94,6 @@ vboxmouse_drv_71_SOURCES = \ +@@ -103,7 +100,6 @@ # # vboxmouse_drv_13 # @@ -89,7 +95,7 @@ vboxmouse_drv_13_TEMPLATE = VBOXGUESTR3XORGMOD vboxmouse_drv_13_DEFS := $(vboxmouse_drv_70_DEFS) NO_ANSIC vboxmouse_drv_13_INCS := \ -@@ -112,7 +108,6 @@ vboxmouse_drv_13_SOURCES = \ +@@ -117,7 +113,6 @@ # # vboxmouse_drv_14 # @@ -97,7 +103,7 @@ vboxmouse_drv_14_TEMPLATE = VBOXGUESTR3XORGMOD vboxmouse_drv_14_DEFS := $(vboxmouse_drv_70_DEFS) NO_ANSIC vboxmouse_drv_14_INCS := \ -@@ -126,7 +121,6 @@ endif +@@ -131,7 +126,6 @@ # # vboxmouse_drv_15 # @@ -105,7 +111,7 @@ vboxmouse_drv_15_TEMPLATE = VBOXGUESTR3XORGMOD vboxmouse_drv_15_DEFS := $(vboxmouse_drv_70_DEFS) NO_ANSIC vboxmouse_drv_15_INCS := \ -@@ -141,7 +135,6 @@ vboxmouse_drv_15_SOURCES = \ +@@ -145,7 +139,6 @@ # # vboxmouse_drv_16 # @@ -113,10 +119,11 @@ vboxmouse_drv_16_TEMPLATE = VBOXGUESTR3XORGMOD vboxmouse_drv_16_DEFS := $(vboxmouse_drv_70_DEFS) NO_ANSIC vboxmouse_drv_16_INCS := \ -diff --git a/src/VBox/Additions/x11/vboxvideo/Makefile.kmk b/src/VBox/Additions/x11/vboxvideo/Makefile.kmk ---- a/src/VBox/Additions/x11/vboxvideo/Makefile.kmk -+++ b/src/VBox/Additions/x11/vboxvideo/Makefile.kmk -@@ -22,7 +22,6 @@ include $(KBUILD_PATH)/subheader.kmk +Index: virtualbox/src/VBox/Additions/x11/vboxvideo/Makefile.kmk +=================================================================== +--- virtualbox.orig/src/VBox/Additions/x11/vboxvideo/Makefile.kmk ++++ virtualbox/src/VBox/Additions/x11/vboxvideo/Makefile.kmk +@@ -51,7 +51,6 @@ # vboxvideo_drv # if1of ($(KBUILD_TARGET), linux) @@ -124,7 +131,7 @@ endif # target linux vboxvideo_drv_TEMPLATE = VBOXGUESTR3XF86MOD vboxvideo_drv_DEFS.linux = linux -@@ -89,7 +88,6 @@ endif # target linux +@@ -121,7 +120,6 @@ # base keywords instead of using .solaris or .linux. # Also it is *important* to use := and not = when deriving a property. # @@ -132,96 +139,112 @@ vboxvideo_drv_70_TEMPLATE = VBOXGUESTR3XORGMOD if1of ($(KBUILD_TARGET), linux) vboxvideo_drv_70_CFLAGS += \ -@@ -112,7 +110,6 @@ vboxvideo_drv_70_SOURCES = $(vboxvideo_drv_SOURCES) +@@ -142,7 +140,6 @@ # # vboxvideo_drv_71 # -DLLS += vboxvideo_drv_71 vboxvideo_drv_71_TEMPLATE = VBOXGUESTR3XORGMOD vboxvideo_drv_71_CFLAGS := $(vboxvideo_drv_70_CFLAGS) - vboxvideo_drv_71_DEFS := $(vboxvideo_drv_70_DEFS) -@@ -127,7 +124,6 @@ vboxvideo_drv_71_SOURCES = $(vboxvideo_drv_SOURCES) + vboxvideo_drv_71_DEFS := $(vboxvideo_70_DEFS) XORG_VERSION_CURRENT=700100000 +@@ -157,7 +154,6 @@ # # vboxvideo_drv_13 # -DLLS += vboxvideo_drv_13 vboxvideo_drv_13_TEMPLATE = VBOXGUESTR3XORGMOD vboxvideo_drv_13_CFLAGS := $(vboxvideo_drv_70_CFLAGS) - vboxvideo_drv_13_DEFS := $(vboxvideo_drv_70_DEFS) VBOXVIDEO_13 -@@ -146,7 +142,6 @@ vboxvideo_drv_13_SOURCES = \ + vboxvideo_drv_13_DEFS := $(vboxvideo_13_DEFS) XORG_VERSION_CURRENT=100300000 +@@ -171,7 +167,6 @@ # # vboxvideo_drv_14 # -DLLS += vboxvideo_drv_14 vboxvideo_drv_14_TEMPLATE = VBOXGUESTR3XORGMOD vboxvideo_drv_14_CFLAGS := $(vboxvideo_drv_70_CFLAGS) - vboxvideo_drv_14_DEFS := $(vboxvideo_drv_13_DEFS) -@@ -165,7 +160,6 @@ vboxvideo_drv_14_SOURCES = $(vboxvideo_drv_13_SOURCES) + vboxvideo_drv_14_DEFS := $(vboxvideo_13_DEFS) XORG_VERSION_CURRENT=100400000 +@@ -185,7 +180,6 @@ # # vboxvideo_drv_15 # -DLLS += vboxvideo_drv_15 vboxvideo_drv_15_TEMPLATE = VBOXGUESTR3XORGMOD vboxvideo_drv_15_CFLAGS := $(vboxvideo_drv_70_CFLAGS) - vboxvideo_drv_15_DEFS := $(vboxvideo_drv_13_DEFS) NO_ANSIC PCIACCESS \ -@@ -192,7 +186,6 @@ endif + vboxvideo_drv_15_DEFS := $(vboxvideo_15_DEFS) XORG_VERSION_CURRENT=100503000 +@@ -206,7 +200,6 @@ # # vboxvideo_drv_16 # -DLLS += vboxvideo_drv_16 vboxvideo_drv_16_TEMPLATE = VBOXGUESTR3XORGMOD vboxvideo_drv_16_CFLAGS := $(vboxvideo_drv_70_CFLAGS) - vboxvideo_drv_16_DEFS := $(vboxvideo_drv_15_DEFS) -@@ -212,7 +205,6 @@ vboxvideo_drv_16_SOURCES := $(vboxvideo_drv_15_SOURCES) + vboxvideo_drv_16_DEFS := $(vboxvideo_15_DEFS) XORG_VERSION_CURRENT=100600000 +@@ -220,7 +213,6 @@ # # vboxvideo_drv_17 # -DLLS += vboxvideo_drv_17 vboxvideo_drv_17_TEMPLATE = VBOXGUESTR3XORGMOD vboxvideo_drv_17_CFLAGS := $(vboxvideo_drv_70_CFLAGS) - vboxvideo_drv_17_DEFS := $(vboxvideo_drv_15_DEFS) -@@ -239,7 +231,6 @@ vboxvideo_drv_17_SOURCES := $(vboxvideo_drv_15_SOURCES) + vboxvideo_drv_17_DEFS := $(vboxvideo_15_DEFS) XORG_VERSION_CURRENT=100699000 +@@ -234,7 +226,6 @@ # # vboxvideo_drv_18 # -DLLS += vboxvideo_drv_18 vboxvideo_drv_18_TEMPLATE = VBOXGUESTR3XORGMOD vboxvideo_drv_18_CFLAGS := $(vboxvideo_drv_70_CFLAGS) - vboxvideo_drv_18_DEFS := $(vboxvideo_drv_15_DEFS) -@@ -266,7 +257,6 @@ vboxvideo_drv_18_SOURCES := $(vboxvideo_drv_15_SOURCES) + vboxvideo_drv_18_DEFS := $(vboxvideo_15_DEFS) XORG_VERSION_CURRENT=100800000 +@@ -248,7 +239,6 @@ # # vboxvideo_drv_19 # -DLLS += vboxvideo_drv_19 vboxvideo_drv_19_TEMPLATE = VBOXGUESTR3XORGMOD vboxvideo_drv_19_CFLAGS := $(vboxvideo_drv_70_CFLAGS) - vboxvideo_drv_19_DEFS := $(vboxvideo_drv_15_DEFS) -@@ -293,7 +282,6 @@ vboxvideo_drv_19_SOURCES := $(vboxvideo_drv_15_SOURCES) + vboxvideo_drv_19_DEFS := $(vboxvideo_15_DEFS) XORG_VERSION_CURRENT=100900000 +@@ -262,7 +252,6 @@ # # vboxvideo_drv_110 # -DLLS += vboxvideo_drv_110 vboxvideo_drv_110_TEMPLATE = VBOXGUESTR3XORGMOD vboxvideo_drv_110_CFLAGS := $(vboxvideo_drv_70_CFLAGS) - vboxvideo_drv_110_DEFS := $(vboxvideo_drv_15_DEFS) -@@ -320,7 +309,6 @@ vboxvideo_drv_110_SOURCES := $(vboxvideo_drv_15_SOURCES) + vboxvideo_drv_110_DEFS := $(vboxvideo_15_DEFS) XORG_VERSION_CURRENT=101000000 +@@ -276,7 +265,6 @@ # # vboxvideo_drv_111 # -DLLS += vboxvideo_drv_111 vboxvideo_drv_111_TEMPLATE = VBOXGUESTR3XORGMOD vboxvideo_drv_111_CFLAGS := $(vboxvideo_drv_70_CFLAGS) - vboxvideo_drv_111_DEFS := $(vboxvideo_drv_15_DEFS) -@@ -347,7 +336,6 @@ vboxvideo_drv_110_SOURCES := $(vboxvideo_drv_15_SOURCES) + vboxvideo_drv_111_DEFS := $(vboxvideo_15_DEFS) XORG_VERSION_CURRENT=101100000 +@@ -290,7 +278,6 @@ # # vboxvideo_drv_112 # -DLLS += vboxvideo_drv_112 vboxvideo_drv_112_TEMPLATE = VBOXGUESTR3XORGMOD vboxvideo_drv_112_CFLAGS := $(vboxvideo_drv_70_CFLAGS) - vboxvideo_drv_112_DEFS := $(vboxvideo_drv_15_DEFS) -@@ -317,6 +306,23 @@ vboxvideo_drv_111_INCS = \ - vboxvideo_drv_112_SOURCES := $(vboxvideo_drv_15_SOURCES) + vboxvideo_drv_112_DEFS := $(vboxvideo_15_DEFS) XORG_VERSION_CURRENT=101200000 +@@ -304,7 +291,6 @@ + # + # vboxvideo_drv_113 + # +-DLLS += vboxvideo_drv_113 + vboxvideo_drv_113_TEMPLATE = VBOXGUESTR3XORGMOD + vboxvideo_drv_113_CFLAGS := $(vboxvideo_drv_70_CFLAGS) + vboxvideo_drv_113_DEFS := $(vboxvideo_15_DEFS) XORG_VERSION_CURRENT=101300000 +@@ -318,7 +304,6 @@ + # + # vboxvideo_drv_114 + # +-DLLS += vboxvideo_drv_114 + vboxvideo_drv_114_TEMPLATE = VBOXGUESTR3XORGMOD + vboxvideo_drv_114_CFLAGS := $(vboxvideo_drv_70_CFLAGS) + vboxvideo_drv_114_DEFS := $(vboxvideo_15_DEFS) XORG_VERSION_CURRENT=101400000 +@@ -329,6 +316,23 @@ + vboxvideo_drv_114_SOURCES := $(vboxvideo_drv_15_SOURCES) +vboxvideo_drv_$(XSERVER_VERSION)_NAME := vboxvideo_drv diff -Nru virtualbox-4.1.12-dfsg/debian/patches/23-remove-invalid-chars-check.patch virtualbox-4.1.44-dfsg/debian/patches/23-remove-invalid-chars-check.patch --- virtualbox-4.1.12-dfsg/debian/patches/23-remove-invalid-chars-check.patch 2013-03-25 11:37:11.000000000 +0000 +++ virtualbox-4.1.44-dfsg/debian/patches/23-remove-invalid-chars-check.patch 2015-11-17 11:56:51.000000000 +0000 @@ -5,7 +5,7 @@ diff -Nur virtualbox-ose-3.1.53-dfsg.orig/configure virtualbox-ose-3.1.53-dfsg/configure --- virtualbox-ose-3.1.53-dfsg.orig/configure 2010-05-13 19:56:04.000000000 +0200 +++ virtualbox-ose-3.1.53-dfsg/configure 2010-05-17 13:07:47.848976527 +0200 -@@ -157,11 +157,6 @@ +@@ -156,11 +156,6 @@ # the restricting tool is ar (mri mode). INVALID_CHARS="[^A-Za-z0-9/\\$:._-]" diff -Nru virtualbox-4.1.12-dfsg/debian/patches/27-hide-host-cache-warning.patch virtualbox-4.1.44-dfsg/debian/patches/27-hide-host-cache-warning.patch --- virtualbox-4.1.12-dfsg/debian/patches/27-hide-host-cache-warning.patch 2013-03-25 11:37:11.000000000 +0000 +++ virtualbox-4.1.44-dfsg/debian/patches/27-hide-host-cache-warning.patch 2015-11-17 11:56:51.000000000 +0000 @@ -5,7 +5,7 @@ diff -Nur virtualbox-ose-4.0.0-dfsg.orig/src/VBox/Main/src-client/ConsoleImpl2.cpp virtualbox-ose-4.0.0-dfsg/src/VBox/Main/src-client/ConsoleImpl2.cpp --- virtualbox-ose-4.0.0-dfsg.orig/src/VBox/Main/src-client/ConsoleImpl2.cpp 2010-12-22 15:00:24.000000000 +0100 +++ virtualbox-ose-4.0.0-dfsg/src/VBox/Main/src-client/ConsoleImpl2.cpp 2011-01-02 00:15:06.952597774 +0100 -@@ -2890,36 +2890,12 @@ +@@ -3137,36 +3137,12 @@ if ( enmFsTypeFile == RTFSTYPE_EXT4 || enmFsTypeFile == RTFSTYPE_XFS) { diff -Nru virtualbox-4.1.12-dfsg/debian/patches/28-no-selinux-fedora.patch virtualbox-4.1.44-dfsg/debian/patches/28-no-selinux-fedora.patch --- virtualbox-4.1.12-dfsg/debian/patches/28-no-selinux-fedora.patch 2013-03-25 11:37:11.000000000 +0000 +++ virtualbox-4.1.44-dfsg/debian/patches/28-no-selinux-fedora.patch 2015-11-17 11:56:51.000000000 +0000 @@ -4,7 +4,7 @@ diff -Nur virtualbox-ose-4.0.0-dfsg.orig/src/VBox/Additions/linux/Makefile.kmk virtualbox-ose-4.0.0-dfsg/src/VBox/Additions/linux/Makefile.kmk --- virtualbox-ose-4.0.0-dfsg.orig/src/VBox/Additions/linux/Makefile.kmk 2010-12-05 19:17:42.000000000 +0100 +++ virtualbox-ose-4.0.0-dfsg/src/VBox/Additions/linux/Makefile.kmk 2011-01-02 11:02:43.379712209 +0100 -@@ -323,9 +323,7 @@ +@@ -307,9 +307,7 @@ lnx_add_inst-noexec_INSTTYPE = stage lnx_add_inst-noexec_SOURCES = \ $(VBOX_REL_X11_ADD_INST)vboxclient.desktop \ diff -Nru virtualbox-4.1.12-dfsg/debian/patches/29-fix-ftbfs-as-needed.patch virtualbox-4.1.44-dfsg/debian/patches/29-fix-ftbfs-as-needed.patch --- virtualbox-4.1.12-dfsg/debian/patches/29-fix-ftbfs-as-needed.patch 2013-03-25 11:37:11.000000000 +0000 +++ virtualbox-4.1.44-dfsg/debian/patches/29-fix-ftbfs-as-needed.patch 2015-11-17 11:56:51.000000000 +0000 @@ -3,12 +3,12 @@ --- VirtualBox-4.0.0_OSE/Config.kmk +++ VirtualBox-4.0.0_OSE/Config.kmk -@@ -4082,7 +4082,7 @@ - TEMPLATE_VBOXBLDPROG_LDFLAGS.amd64 = -m64 - TEMPLATE_VBOXBLDPROG_LDFLAGS.sparc64 = -m64 +@@ -4542,7 +4542,7 @@ + TEMPLATE_VBoxBldProg_LDFLAGS.amd64 = -m64 + TEMPLATE_VBoxBldProg_LDFLAGS.sparc64 = -m64 ifeq ($(KBUILD_HOST),linux) --TEMPLATE_VBOXBLDPROG_LIBS = pthread m rt dl -+TEMPLATE_VBOXBLDPROG_LIBS = pthread m rt dl crypt +-TEMPLATE_VBoxBldProg_LIBS = pthread m rt dl ++TEMPLATE_VBoxBldProg_LIBS = pthread m rt dl crypt else ifeq ($(KBUILD_HOST),os2) - TEMPLATE_VBOXBLDPROG_TOOL = GXX3OMF - TEMPLATE_VBOXBLDPROG_LIBS = socket iconv + TEMPLATE_VBoxBldProg_TOOL = GXX3OMF + TEMPLATE_VBoxBldProg_LIBS = socket iconv diff -Nru virtualbox-4.1.12-dfsg/debian/patches/30-usb-warning-filters.patch virtualbox-4.1.44-dfsg/debian/patches/30-usb-warning-filters.patch --- virtualbox-4.1.12-dfsg/debian/patches/30-usb-warning-filters.patch 2013-03-25 11:37:11.000000000 +0000 +++ virtualbox-4.1.44-dfsg/debian/patches/30-usb-warning-filters.patch 2015-11-17 11:56:51.000000000 +0000 @@ -5,7 +5,7 @@ diff --git a/src/VBox/Frontends/VirtualBox/src/settings/UISettingsDialogSpecific.cpp b/src/VBox/Frontends/VirtualBox/src/settings/UISettingsDialogSpecific.cpp --- a/src/VBox/Frontends/VirtualBox/src/settings/UISettingsDialogSpecific.cpp +++ b/src/VBox/Frontends/VirtualBox/src/settings/UISettingsDialogSpecific.cpp -@@ -1096,7 +1096,7 @@ bool UISettingsDialogMachine::isPageAvailable(int iPageId) +@@ -1100,7 +1100,7 @@ bool UISettingsDialogMachine::isPageAvailable(int iPageId) /* Get the USB controller object: */ CUSBController controller = m_machine.GetUSBController(); /* Show the machine error message if any: */ diff -Nru virtualbox-4.1.12-dfsg/debian/patches/32-disable-guest-version-check.patch virtualbox-4.1.44-dfsg/debian/patches/32-disable-guest-version-check.patch --- virtualbox-4.1.12-dfsg/debian/patches/32-disable-guest-version-check.patch 2013-03-25 11:37:11.000000000 +0000 +++ virtualbox-4.1.44-dfsg/debian/patches/32-disable-guest-version-check.patch 2015-11-17 11:56:51.000000000 +0000 @@ -4,7 +4,7 @@ diff --git a/src/VBox/Additions/x11/VBoxClient/hostversion.cpp b/src/VBox/Additions/x11/VBoxClient/hostversion.cpp --- a/src/VBox/Additions/x11/VBoxClient/hostversion.cpp +++ b/src/VBox/Additions/x11/VBoxClient/hostversion.cpp -@@ -40,6 +40,8 @@ public: +@@ -43,6 +43,8 @@ public: virtual int showNotify(const char *pcHeader, const char *pcBody) { diff -Nru virtualbox-4.1.12-dfsg/debian/patches/36-fix-ftbfs-xserver-112.patch virtualbox-4.1.44-dfsg/debian/patches/36-fix-ftbfs-xserver-112.patch --- virtualbox-4.1.12-dfsg/debian/patches/36-fix-ftbfs-xserver-112.patch 1970-01-01 00:00:00.000000000 +0000 +++ virtualbox-4.1.44-dfsg/debian/patches/36-fix-ftbfs-xserver-112.patch 2015-11-17 11:56:51.000000000 +0000 @@ -0,0 +1,14 @@ +Description: Fix FTBFS with X Server 1.12. +Author: Felix Geyer +Bug-Debian: http://bugs.debian.org/671061 + +--- a/src/VBox/Additions/common/crOpenGL/fakedri_drv.c ++++ b/src/VBox/Additions/common/crOpenGL/fakedri_drv.c +@@ -29,6 +29,7 @@ + #include + #include + #include ++#include "xorg-server.h" + /** X server message type definitions. */ + typedef enum { + X_PROBED, /* Value was probed */ diff -Nru virtualbox-4.1.12-dfsg/debian/patches/36-tarball-respin.patch virtualbox-4.1.44-dfsg/debian/patches/36-tarball-respin.patch --- virtualbox-4.1.12-dfsg/debian/patches/36-tarball-respin.patch 2013-03-25 11:37:11.000000000 +0000 +++ virtualbox-4.1.44-dfsg/debian/patches/36-tarball-respin.patch 1970-01-01 00:00:00.000000000 +0000 @@ -1,9358 +0,0 @@ -Description: Diff of the 4.1.12 tarball respin. - ---- a/Config.kmk 2012-04-02 15:24:34.000000000 +0200 -+++ b/Config.kmk 2012-04-03 14:10:02.000000000 +0200 -@@ -4882,7 +4882,7 @@ - SVN ?= svn$(HOSTSUFF_EXE) - VBOX_SVN_REV_KMK = $(PATH_OUT)/revision.kmk - ifndef VBOX_SVN_REV -- VBOX_SVN_REV_FALLBACK := $(patsubst %:,, $Rev: 77218 $ ) -+ VBOX_SVN_REV_FALLBACK := $(patsubst %:,, $Rev: 77245 $ ) - VBOX_SVN_DEP := $(wildcard $(PATH_ROOT)/.svn/entries) - ifeq ($(which $(SVN)),) - VBOX_SVN_DEP := ---- a/doc/manual/user_ChangeLogImpl.xml 2012-04-02 15:24:36.000000000 +0200 -+++ b/doc/manual/user_ChangeLogImpl.xml 2012-04-03 14:10:06.000000000 +0200 -@@ -1,7 +1,7 @@ - - - -- Version 4.1.12 (2012-04-02) -+ Version 4.1.12 (2012-04-03) - - This is a maintenance release. The following items were fixed and/or - added: -@@ -42,6 +42,11 @@ - - - -+ Metrics: fixed an occasional crash during VM shutdown if host -+ RAM/VMM metrics are enabled -+ -+ -+ - VBoxSVC: several locking fixes - - ---- a/src/VBox/Frontends/VirtualBox/nls/qt_nl.ts 2012-04-02 15:28:41.000000000 +0200 -+++ b/src/VBox/Frontends/VirtualBox/nls/qt_nl.ts 2012-04-03 14:11:42.000000000 +0200 -@@ -5,7 +5,7 @@ - MAC_APPLICATION_MENU - - Services -- -+ Services - - - Hide %1 -@@ -36,11 +36,11 @@ - AudioOutput - - <html>The audio playback device <b>%1</b> does not work.<br/>Falling back to <b>%2</b>.</html> -- <html>Het apparaat <b>%1</b> , dat geluid afspeelt, werkt niet.<br/>In plaats daarvan wordt <b>%2</b> gebruikt.</html> -+ <html>Het apparaat <b>%1</b> dat geluid zou moeten afspelen werkt niet.<br/>Teruggevallen wordt op <b>%2</b>.</html> - - - <html>Switching to the audio playback device <b>%1</b><br/>which just became available and has higher preference.</html> -- <html>Stappen over op het geluidsafspeel apparaat <b>%1</b><br/>deze is net beschikbaar gekomen en verdient de voorkeur.</html> -+ <html>Switchen naar geluidafspeelapparaat <b>%1</b><br/> die net beschikbaar is gekomen en de voorkeur verdient.</html> - - - Revert back to device '%1' -@@ -51,7 +51,7 @@ - Phonon:: - - Notifications -- mededeling -+ Mededelingen - - - Music -@@ -63,11 +63,11 @@ - - - Communication -- communicatie -+ Communicatie - - - Games -- Spelletjes -+ Games - - - Accessibility -@@ -79,14 +79,16 @@ - - Warning: You do not seem to have the package gstreamer0.10-plugins-good installed. - Some video features have been disabled. -- Waarschuwing: Het pakker "gstreamer0.10 plugins" is niet goed geïnstalleerd. -- Sommige video mogelijkheden zijn gedeactiveerd. -+ RL - gstreamer0.10 plugins-good zijn aanvullende codecs voor gstreamer -+ Waarschuwing: Het pakket "gstreamer0.10 plugins-good" is niet geïnstalleerd. -+ Sommige videomogelijkheden zijn gedeactiveerd. - - - Warning: You do not seem to have the base GStreamer plugins installed. - All audio and video support has been disabled -- Waarschuwing: De "GStreamer plugins" blijken niet geïnstalleerd. -- Alle audio en video ondersteuning is gedeactiveerd -+ RL - basis GStreamer plugins leveren de basis codecs om mediabestanden te kunnen afspelen -+ Waarschuwing: De basis GStreamer plugins blijken niet geïnstalleerd. -+ Alle audio en video ondersteuning is gedeactiveerd - - - -@@ -97,18 +99,21 @@ - Check your Gstreamer installation and make sure you - have libgstreamer-plugins-base installed. - Kan het afspelen niet starten. --Controleer de installatie van "Gstreamer" en zorg ervoor dat de "libgstreamer plugins basis is geïnstalleer. -+ -+Controleer de installatie van Gstreamer en zorg ervoor -+dat libgstreamer-plugins-base is geïnstalleerd. - - - A required codec is missing. You need to install the following codec(s) to play this content: %0 -- -+ RL - kan nog niet goed vertaald worden omdat %n als single/plural place marker niet in source is opgenomen. Ticket #10400 aangemaakt bij virtualbox, afwachten tot bug hersteld is. RL - Ticket gesloten - is string van derde (Phonon) in Qt source, geen VirtualBox issue. -+ - Een noodzakelijke codec mist. U moet de volgende codec installeren om deze inhoud af te spelen: %0 -- De noodzakelijke codecs missen. U moet de volgende codecs installeren om deze inhoud af te spelen: %0 -+ Noodzakelijke codecs missen. U moet de volgende codecs installeren om deze inhoud af te spelen: %0 - - - - Could not open media source. -- Kan de media bron niet openen. -+ Kan de mediabron niet openen. - - - Invalid source type. -@@ -116,15 +121,15 @@ - - - Could not locate media source. -- Kan de media bron niet vinden. -+ Kan mediabron niet vinden. - - - Could not open audio device. The device is already in use. -- Kan het audio apparaat niet openen. Het apparaat wordt al gebruikt. -+ Kan het audio-apparaat niet openen. Het apparaat wordt al gebruikt. - - - Could not decode media source. -- Kan de media bron niet decoderen. -+ Kan de mediabron niet decoderen. - - - -@@ -228,7 +233,7 @@ - - - File &type: -- &Soort bestands: -+ &Bestandstype: - - - Back -@@ -264,27 +269,28 @@ - - - Read-only -- Alleen lezen -+ Alleen-lezen - - - Write-only -- Alleen schrijven -+ Alleen-schrijven - - - Inaccessible -- niet toegankelijk -+ Niet toegankelijk - - - Symlink to File -- Snelkoppeling naar het bestand -+ Snelkoppeling naar bestand - - - Symlink to Directory -- Snelkoppeling naar de map -+ Snelkoppeling naar map - - - Symlink to Special -- Snelkoppeling naar iets speciaals -+ RL - naar de map 'Speciaal', als die map van naam verandert, deze string ook aanpassen -+ Snelkoppeling naar Speciaal - - - File -@@ -332,7 +338,7 @@ - - - Sort by &Size -- size kan ook zijn omvang -+ EG - size kan ook zijn omvang RL - verschil? - Op grootte &sorteren - - -@@ -353,15 +359,18 @@ - - - the file -- Het bestand -+ RL - kleine 'h' bij 'het' (deze string is %1 bij andere string) -+ het bestand - - - the directory -- De map -+ RL - kleine 'd' bij 'de' (deze string is %1 bij andere string) -+ de map - - - the symlink -- De snelkoppeling -+ RL - kleine 'd' bij 'de' (deze string is %1 bij andere string) -+ de snelkoppeling - - - Delete %1 -@@ -421,7 +430,7 @@ - - Could not read directory - %1 -- Kan de map niet lezen -+ Kon deze map niet lezen - %1 - - -@@ -449,8 +458,8 @@ - - Could not open - %1 -- Kan: --%1 niet openen -+ Kan niet openen: -+%1 - - - Could not write -@@ -474,7 +483,7 @@ - Q3NetworkProtocol - - Operation stopped by the user -- Actie gestopd door de gebruiker -+ Actie gestopt door gebruiker - - - -@@ -488,7 +497,7 @@ - Q3TabDialog - - OK -- Ok -+ OK - - - Apply -@@ -496,7 +505,8 @@ - - - Help -- Help -+ RL - eng 'Help' wordt bij Moz/KDe/GNOME/Ubuntu/Fedora/Windows/Mac standaard vertaald in Nederlands als 'Hulp' -+ Hulp - - - Defaults -@@ -608,31 +618,31 @@ - - - The protocol `%1' does not support listing directories -- Het protocol `%1' ondersteund geen opname in een lijst van mappen -+ Het protocol `%1' ondersteunt geen opsomming van mappen - - - The protocol `%1' does not support creating new directories -- Het protocol `%1' ondersteund niet het aanmaken van nieuwe mappen -+ Het protocol `%1' ondersteunt niet het aanmaken van nieuwe mappen - - - The protocol `%1' does not support removing files or directories -- Het protocol `%1' ondersteund niet het verwijderen van bestanden of mappen -+ Het protocol `%1' ondersteunt niet het verwijderen van bestanden of mappen - - - The protocol `%1' does not support renaming files or directories -- Het protocol `%1' ondersteund niet het herbenoemen van bestanden of mappen -+ Het protocol `%1' ondersteunt niet het herbenoemen van bestanden of mappen - - - The protocol `%1' does not support getting files -- Het protocol `%1' ondersteund niet het ophalen van bestanden -+ Het protocol `%1' ondersteunt niet het ophalen van bestanden - - - The protocol `%1' does not support putting files -- Het protocol `%1' ondersteund niet het wegzetten van bestanden -+ Het protocol `%1' ondersteunt niet het wegzetten van bestanden - - - The protocol `%1' does not support copying or moving files or directories -- Het protocol `%1' ondersteund niet het kopiëren van bestanden of mappen -+ Het protocol `%1' ondersteunt niet het kopiëren van bestanden of mappen - - - (unknown) -@@ -659,14 +669,15 @@ - - - &Help -- &Help -+ RL - eng 'Help' wordt bij Moz/KDe/GNOME/Ubuntu/Fedora/Windows/Mac standaard vertaald in Nederlands als 'Hulp' -+ &Hulp - - - - QAbstractSocket - - Host not found -- Gastheer niet gevonden -+ Host niet gevonden - - - Connection refused -@@ -674,7 +685,7 @@ - - - Socket operation timed out -- Tijdslimiet verstreken voor de actie op de socket -+ Tijdslimiet voor actie op socket verstreken - - - Socket is not connected -@@ -685,13 +696,13 @@ - QAbstractSpinBox - - &Step up -- nakijken -- &ophogen?? -+ EG - nakijken RL - tja.... -+ &Stap omhoog - - - Step &down -- Nakijken -- &Afnemen?? -+ EG - Nakijken RL - tja.. -+ &Stap omlaag - - - &Select All -@@ -769,7 +780,7 @@ - - - &Basic colors -- &Basis kleuren -+ &Basiskleuren - - - &Custom colors -@@ -808,7 +819,7 @@ - - %1: permission denied - QSystemSemaphore -- %1: geen toestemming -+ %1: toestemming geweigerd - - - %1: already exists -@@ -854,7 +865,7 @@ - - - Unable to commit transaction -- Kan de transactie niet bevestigen -+ Kan de transactie niet toepassen - - - Unable to rollback transaction -@@ -862,7 +873,8 @@ - - - Unable to set autocommit -- Kan het automatisch bevestigen niet instellen -+ RL - autocommit is techterm -+ Kan automatisch toepassen (autocommit) niet instellen - - - -@@ -881,7 +893,7 @@ - - - Unable to fetch record %1 -- Kan het record %1 niet ophalen -+ Kan record %1 niet ophalen - - - Unable to fetch next -@@ -900,7 +912,7 @@ - - - am -- NM -+ vm - - - PM -@@ -919,7 +931,7 @@ - - - SpeedoMeter -- Tachometer -+ SpeedoMeter - - - SliderHandle -@@ -941,7 +953,7 @@ - QDialogButtonBox - - OK -- Ok -+ OK - - - Save -@@ -969,7 +981,8 @@ - - - Help -- Help -+ RL - eng 'Help' wordt bij Moz/KDe/GNOME/Ubuntu/Fedora/Windows/Mac standaard vertaald in Nederlands als 'Hulp' -+ Hulp - - - Don't Save -@@ -985,7 +998,7 @@ - - - Yes to &All -- Ja, &alles -+ Ja op &alles - - - &No -@@ -993,7 +1006,7 @@ - - - N&o to All -- Nee voor &alles -+ Nee op &alles - - - Save All -@@ -1032,7 +1045,7 @@ - - - Size -- Omvang -+ Grootte - - - Kind -@@ -1087,7 +1100,8 @@ - - - Debug Message: -- Test bericht: -+ RL - debug als bekende term laten staan -+ Debug bericht: - - - Warning: -@@ -1222,7 +1236,7 @@ - - - Show -- Weergeven -+ Toon - - - Forward -@@ -1289,7 +1303,7 @@ - - - Size -- Omvang -+ Grootte - - - Kind -@@ -1338,7 +1352,7 @@ - - - Light -- licht -+ Licht - - - Italic -@@ -1354,7 +1368,7 @@ - - - Latin -- Latijns -+ Latijn - - - Greek -@@ -1366,7 +1380,7 @@ - - - Armenian -- Armekaans -+ Armeens - - - Hebrew -@@ -1493,7 +1507,7 @@ - - - &Size -- &Omvang -+ &Grootte - - - Effects -@@ -1524,19 +1538,20 @@ - QFtp - - Host %1 found -- Gastheer %1 gevonden -+ Host %1 gevonden - - - Host found -- Gastheer gevonden -+ RL - 'host' als host vertalen, voorkomt 'gast' en 'gastheer' verwarring in VirtualBox (gebruikerswens) -+ Host gevonden - - - Connected to host %1 -- Verbonden met de gastheer %1 -+ Verbonden met host %1 - - - Connected to host -- Verbonden met de gastheer -+ Verbonden met host - - - Connection to %1 closed -@@ -1548,11 +1563,11 @@ - - - Host %1 not found -- Gastheer %1 niet gevonden -+ Host %1 niet gevonden - - - Connection refused to host %1 -- Verbinding met %1 geweigerd -+ Verbinding met host %1 geweigerd - - - Unknown error -@@ -1561,7 +1576,7 @@ - - Connecting to host failed: - %1 -- Verbinding met gastheer mislukt: -+ Verbinding met host mislukt: - %1 - - -@@ -1579,7 +1594,7 @@ - - Changing directory failed: - %1 -- veranderen van map is misluktl: -+ Veranderen van map is misluktl: - %1 - - -@@ -1618,7 +1633,7 @@ - - - Connection refused for data connection -- Verbinding voor gegevens verbinding geweigerd -+ Verbinding geweigerd voor dataconnectie - - - -@@ -1632,11 +1647,11 @@ - QHostInfoAgent - - Host not found -- gastheer niet gevonden -+ Host niet gevonden - - - Unknown address type -- Onbekend soort adres -+ Onbekend adrestype - - - Unknown error -@@ -1651,7 +1666,7 @@ - - - Host %1 not found -- Gastheer %1 niet gevonden -+ Host %1 niet gevonden - - - Wrong content length -@@ -1663,19 +1678,19 @@ - - - Host %1 found -- Gastheer %1 gevonden -+ Host %1 gevonden - - - Host found -- Gastheer gevonden -+ Host gevonden - - - Connected to host %1 -- Verbonden met de gastheer %1 -+ Verbonden met host %1 - - - Connected to host -- Verbonden met de gastheer -+ Verbonden met host - - - Connection to %1 closed -@@ -1691,7 +1706,7 @@ - - - Request aborted -- verzoek afgebroken -+ Verzoek afgebroken - - - No server set to connect to -@@ -1707,7 +1722,7 @@ - - - Invalid HTTP chunked body -- Ongeldige HTTP gebroken body -+ Ongeldige HTTP afgebroken body - - - Proxy authentication required -@@ -1723,11 +1738,11 @@ - - - Host requires authentication -- De gastheer vereist authenticatie -+ Host vereist authenticatie - - - Data corrupted -- gegevens zijn onbetrouwbaar -+ Data gecorrumpeerd - - - SSL handshake failed -@@ -1743,7 +1758,7 @@ - - - HTTPS connection requested but SSL support not compiled in -- HTTPS verginding vereist maar SSL ondersteuning niet opgenomen -+ HTTPS verbinding vereist maar SSL ondersteuning niet meegecompileerd - - - -@@ -1765,7 +1780,7 @@ - - - Unable to commit transaction -- Kan de transactie niet bevestigen -+ Kan de transactie niet toepassen - - - Unable to rollback transaction -@@ -1808,7 +1823,7 @@ - - - Unable to commit transaction -- Kan de transactie niet bevestigen -+ Kan de transactie niet toepassen - - - Could not allocate statement -@@ -1820,7 +1835,7 @@ - - - Could not describe input statement -- Kan de invoer instructie niet beschrijven -+ Kan de invoerinstructie niet beschrijven - - - Could not describe statement -@@ -1847,7 +1862,7 @@ - QIODevice - - Permission denied -- Geen toestemming -+ Toestemming geweigerd - - - Too many open files -@@ -1874,15 +1889,15 @@ - - - XIM input method -- XIM invoer methode -+ XIM invoermethode - - - Windows input method -- Windows invoer methode -+ Windows invoermethode - - - Mac OS X input method -- Mac OS X invoer methode -+ Mac OS X invoermethode - - - -@@ -1901,25 +1916,26 @@ - - - Could not mmap '%1': %2 -- wat is mmap -- Kan '%1': %2 niet mmappen?? -+ EG - wat is mmap RL - mmap is (op unix en -----x familie) een system call dat bestanden of apparaten mapt naar het geheugen (map/unmap), dus gewoon vertalen als 'mmappen' -+ Kan '%1': %2 niet mmappen - - - Plugin verification data mismatch in '%1' -- Plugin controle gegevens komen niet overeen in '%1 -+ Plugin controle-gegevens komen niet overeen in '%1 - - - Could not unmap '%1': %2 -- wat is unmap -- kan '%1': %2 niet unmappen?? -+ EG - wat is unmap...RL - mmap is (op unix en -----x familie) een system call dat bestanden of apparaten mapt naar het geheugen (map/unmap), dus gewoon vertalen als 'unmappen' -+ kan '%1': %2 niet unmappen - - - The plugin '%1' uses incompatible Qt library. (%2.%3.%4) [%5] -- Plugin '%1' gebruikt een QT biblitheek, (%2.%3.%4) [%5], die niet compatibel is -+ Plugin '%1' gebruikt een Qt bibliotheek, (%2.%3.%4) [%5], die niet compatibel is - - - The plugin '%1' uses incompatible Qt library. Expected build key "%2", got "%3" -- Plugin '%1' gebruikt een QT biblitheek die niet compatibel is. Verwacht bouw sleutel "%2" maar kreeg "%3" -+ RL - build key onvertaald laten -+ Plugin '%1' gebruikt een Qt bibliotheek die niet compatibel is. Verwacht build key "%2" maar kreeg "%3" - - - Unknown error -@@ -1935,7 +1951,7 @@ - - - The plugin '%1' uses incompatible Qt library. (Cannot mix debug and release libraries.) -- Plugin '%1' gebruikt een QT bibliotheek die niet compatibel is. (kan geen test en productie biblitheek doorelkaar gebruiken.) -+ Plugin '%1' gebruikt een Qt bibliotheek die niet compatibel is. (een test en productie bibliotheek kunnen niet door elkaar gebruikt worden.) - - - -@@ -1977,7 +1993,7 @@ - - - %1: Permission denied -- %1: geen toestemming -+ %1: Toestemming geweigerd - - - %1: Address in use -@@ -2020,7 +2036,7 @@ - - - %1: Connection error -- %1: Fout in de verbinding -+ %1: Verbindingsfout - - - %1: The socket operation is not supported -@@ -2047,7 +2063,7 @@ - - - Unable to commit transaction -- Kan de transactie niet bevestigen -+ Kan de transactie niet toepassen - - - Unable to rollback transaction -@@ -2086,7 +2102,8 @@ - - - Unable to bind outvalues -- Kan geen overwaarde binden -+ RL - was vertaald 'overwaarde', maar betekent 'een hogere waarde hebbende dan' Wordt door bv Microsoft in Nederlands nooit vertaald -+ Kan geen outvalues binden - - - Unable to store statement results -@@ -2098,14 +2115,15 @@ - - - Unable to store next result -- Kan het volgene resultaat niet opslaan -+ Kan het volgende resultaat niet opslaan - - - - QMdiArea - - (Untitled) -- (Zonder titel) -+ RL - opmaak, niet vertalen Zie virtualbox.org wikki translating -+ (Untitled) - - - -@@ -2148,7 +2166,7 @@ - - - Stay on &Top -- Op de &Voorgrond blijven -+ Op &Voorgrond blijven - - - &Close -@@ -2172,7 +2190,8 @@ - - - Help -- Help -+ RL - eng 'Help' wordt bij Moz/KDe/GNOME/Ubuntu/Fedora/Windows/Mac standaard vertaald in Nederlands als 'Hulp' -+ Hulp - - - Menu -@@ -2210,7 +2229,8 @@ - - - Help -- Help -+ RL - eng 'Help' wordt bij Moz/KDe/GNOME/Ubuntu/Fedora/Windows/Mac standaard vertaald in Nederlands als 'Hulp' -+ Hulp - - - <p>This program uses Qt version %1.</p> -@@ -2226,18 +2246,18 @@ - - - <p>This program uses Qt Open Source Edition version %1.</p><p>Qt Open Source Edition is intended for the development of Open Source applications. You need a commercial Qt license for development of proprietary (closed source) applications.</p><p>Please see <a href="http://www.trolltech.com/company/model/">www.trolltech.com/company/model/</a> for an overview of Qt licensing.</p> -- <p>Dit programma gebruikt Qt Open Source editie versie %1.</p><p>Qt Open Source editie is bedoeld voor het ontwikkelen van Open Source applicaties. U heeft een commerciële Qt license nodig voor het ontwikkelen van proprietary (closed source) applicaties.</p><p>Kijk bij <a href="http://www.trolltech.com/company/model/">www.trolltech.com/company/model/</a> voor een overzicht van Qt licenties.</p> -+ <p>Dit programma gebruikt Qt Open Source editie versie %1.</p><p>Qt Open Source editie is bedoeld voor het ontwikkelen van Open Source applicaties. U hebt een commerciële Qt license nodig voor het ontwikkelen van proprietary (closed source) applicaties.</p><p>Kijk bij <a href="http://www.trolltech.com/company/model/">www.trolltech.com/company/model/</a> voor een overzicht van Qt licenties.</p> - - - <h3>About Qt</h3>%1<p>Qt is a C++ toolkit for cross-platform application development.</p><p>Qt provides single-source portability across MS&nbsp;Windows, Mac&nbsp;OS&nbsp;X, Linux, and all major commercial Unix variants. Qt is also available for embedded devices as Qt for Embedded Linux and Qt for Windows CE.</p><p>Qt is a Nokia product. See <a href="http://www.trolltech.com/qt/">www.trolltech.com/qt/</a> for more information.</p> -- <h3>Info over Qt</h3>%1<p>Qt is een C++ gereedschapskist voor applicatie ontwikkeling over platformen heen.</p><p>Qt levert één enkele bron overdraagbaarheid met MS&nbsp;Windows, Mac&nbsp;OS&nbsp;X, Linux en alle belangrijke commerciële Unix variantenn. Qt is ook beschikbaar voor ingebouw apparaten zoals Qt voor inbouw Linux en Qt voor Windows CE.</p><p>Qt is een Nokia product. Kijk bij <a href="http://www.trolltech.com/qt/">www.trolltech.com/qt/</a> voor meer informatie.</p> -+ <h3>Info over Qt</h3>%1<p>Qt is een C++ gereedschapskist voor applicatie-ontwikkeling over platformen heen.</p><p>Qt levert één enkele bron overdraagbaarheid met MS&nbsp;Windows, Mac&nbsp;OS&nbsp;X, Linux en alle belangrijke commerciële Unix varianten. Qt is ook beschikbaar voor ingebouwde apparaten zoals Qt Embedded Linux en Qt voor Windows CE.</p><p>Qt is een Nokia product. Kijk bij <a href="http://www.trolltech.com/qt/">www.trolltech.com/qt/</a> voor meer informatie.</p> - - - - QMultiInputContext - - Select IM -- wat is IM -+ EG - wat is IM RL - Ik weet het ook niet zeker, maar het zou zomaar kunnen dat hier -gezien de context- 'Input Method' wordt afgekort - Selecteer IM - - -@@ -2245,18 +2265,18 @@ - QMultiInputContextPlugin - - Multiple input method switcher -- Schakelaar tussen invoer methodes -+ Schakelaar tussen invoermethodes - - - Multiple input method switcher that uses the context menu of the text widgets -- Schakelaar tussen invoer methodes die gebruik maakt van het context menu of de tekst widgets -+ Schakelaar tussen invoermethodes die gebruik maakt van het context menu of de tekst-widgets - - - - QNativeSocketEngine - - The remote host closed the connection -- De gastheer op afstand heeft de verbinding verbroken -+ Host op afstand heeft de verbinding verbroken - - - Network operation timed out -@@ -2276,16 +2296,16 @@ - - - Invalid socket descriptor -- Wat is een descriptor -- Ongeldige socket deskriptor -+ EG - Wat is een descriptor RL - Heel kort door de bocht: een beschrijver (zoals sockfd) hoe de socket moet worden benaderd. Techterm, onvertaald laten -+ Ongeldige socket descriptor - - - Network unreachable -- Netwerk is niet te bereiken -+ Netwerk onbereikbaar - - - Permission denied -- Geen toestemming -+ Toestemming geweigerd - - - Connection timed out -@@ -2325,31 +2345,33 @@ - - - Another socket is already listening on the same port -- Eenn andere socket luisterd al op dezelfde poort -+ Eenn andere socket luistert al op dezelfde poort - - - Unable to initialize non-blocking socket -- Kan het, niet blokkerende, socket niet initialiseren -+ RL - non blocking socket: techterm, niet vertalen -+ Kan non-blocking-socket niet initialiseren - - - Unable to initialize broadcast socket -- Kan het, rondstrooiende , socket niet initialiseren -+ RL - broadcast socket: techterm, niet vertalen -+ Kan broadcast socket niet initialiseren - - - Attempt to use IPv6 socket on a platform with no IPv6 support -- Probeert IPv socket te gebruiken op een platform die IPv6 niet ondersteund -+ Poging IPv6 socket te gebruiken op een platform dat IPv6 niet ondersteund - - - Host unreachable -- Gastheer niet te bereiken -+ Host onbereikbaar - - - Datagram was too large to send -- Datagram is te groot om te verzenden -+ Datagram was te groot om te verzenden - - - Operation on non-socket -- Operatie op een niet-socket -+ Operatie op een non-socket - - - Unknown error -@@ -2357,30 +2379,30 @@ - - - The proxy type is invalid for this operation -- De operatie is niet geldig voor dit soort proxy -+ Het proxytype is ongeldig voor deze operatie - - - - QNetworkAccessFileBackend - - Request for opening non-local file %1 -- Verzoek om bestand %1 te openen, dat niet locaal staat -+ Verzoek om niet lokaal bestand %1 te openen - - - Error opening %1: %2 -- Openen van %1: %2 gaat fout -+ Fout bij openen van %1: %2 - - - Write error writing to %1: %2 -- Schrijf fout bij het schrijven naar %1: %2 -+ Schrijffout bij het schrijven naar %1: %2 - - - Cannot open %1: Path is a directory -- Kan %1 niet openen: Het pad is map -+ Kan %1 niet openen: Het pad is een map - - - Read error reading from %1: %2 -- Lees fout bij het lezen van %1: %2 -+ Leesfout bij het lezen van %1: %2 - - - -@@ -2391,26 +2413,26 @@ - - - Logging in to %1 failed: authentication required -- Logboek bij houden in %1 is mislukt: authenticatie is nodig -+ Logboek bij houden in %1 is mislukt: authenticatie is vereist - - - Error while downloading %1: %2 -- Fout tijdens het downloaden%1: %2 -+ Fout tijdens het downloaden %1: %2 - - - Error while uploading %1: %2 -- Fout tijdens het uploaden%1: %2 -+ Fout tijdens het uploaden %1: %2 - - - - QNetworkReply - - Error downloading %1 - server replied: %2 -- Fout tijdens het downloaden%1 - server antwoorde: %2 -+ Fout tijdens het downloaden %1 - server antwoordde: %2 - - - Protocol "%1" is unknown -- Protocol "%1" is onbekend -+ Protocol "%1" is onbekend - - - -@@ -2424,7 +2446,7 @@ - QOCIDriver - - Unable to logon -- Kan u niet aanmelden -+ Niet in staat in te loggen - - - Unable to initialize -@@ -2433,11 +2455,11 @@ - - - Unable to begin transaction -- Kan niet beginnen met de transactie -+ Kan niet met transactie beginnen - - - Unable to commit transaction -- Kan de transactie niet bevestigen -+ Kan de transactie niet toepassen - - - Unable to rollback transaction -@@ -2448,7 +2470,7 @@ - QOCIResult - - Unable to bind column for batch execute -- Kan de kolom niet binden voor een batch uitvoering -+ Kan kolom niet binden voor een batch uitvoering - - - Unable to execute batch statement -@@ -2472,7 +2494,7 @@ - - - Unable to execute select statement -- Kan de "select" instructie niet uitvoeren -+ Kan de select-instructie niet uitvoeren - - - Unable to execute statement -@@ -2487,15 +2509,15 @@ - - - Unable to connect - Driver doesn't support all needed functionality -- Kan geen verbinding maken - Stuurprogramma ondersteund niet alle benodigde functionaliteit -+ Kan geen verbinding maken - Stuurprogramma ondersteunt niet alle benodigde functionaliteiten - - - Unable to disable autocommit -- Kan het automatisch bevestigen niet deactiveren -+ Kan automatisch toepassen (autocommit) niet deactiveren - - - Unable to commit transaction -- Kan de transactie niet bevestigen -+ Kan de transactie niet toepassen - - - Unable to rollback transaction -@@ -2503,14 +2525,14 @@ - - - Unable to enable autocommit -- Kan het automatisch bevestigen niet activeren -+ Kan het automatisch toepassen (autocommit) niet activeren - - - - QODBCResult - - QODBCResult::reset: Unable to set 'SQL_CURSOR_STATIC' as statement attribute. Please check your ODBC driver configuration -- QODBCResult::terugzetten: 'SQL_CURSOR_STATIC' kan niet als een attribuut van instructie meegeven. controleer de configuratie van het ODBC stuurprogramma -+ QODBCResult::terugzetten: kan 'SQL_CURSOR_STATIC' niet als instructie-attribuut meegeven. Controleer configuratie ODBC-stuurprogramma - - - Unable to execute statement -@@ -2526,7 +2548,7 @@ - - - Unable to bind variable -- Kan geen variabele binden -+ Kan de variabele niet binden - - - Unable to fetch last -@@ -2534,7 +2556,7 @@ - - - Unable to fetch -- Kan niets ophalen -+ Kan niet ophalen - - - Unable to fetch first -@@ -2557,11 +2579,11 @@ - - - Write error writing to %1: %2 -- Schrijf fout bij het schrijven naar %1: %2 -+ Schrijffout bij het schrijven naar %1: %2 - - - Read error reading from %1: %2 -- Lees fout bij het lezen van %1: %2 -+ Leesfout bij het lezen van %1: %2 - - - Socket error on %1: %2 -@@ -2569,11 +2591,11 @@ - - - Remote host closed the connection prematurely on %1 -- De gastheer op afstand heeft de verbinding voortijdig verbroken op %1 -+ Host op afstand heeft de verbinding voortijdig verbroken op %1 - - - Protocol error: packet of size 0 received -- Protocol fout:Een leeg gegevenspakket ontvangen -+ Protocolfout:pakket met grootte van 0 ontvangen - - - -@@ -2599,7 +2621,7 @@ - - - Could not commit transaction -- Kan de transactie niet bevestigen -+ Kan de transactie niet toepassen - - - Could not rollback transaction -@@ -2633,7 +2655,7 @@ - - - Millimeters (mm) -- Millimeter (mm) -+ Millimeters (mm) - - - Inches (in) -@@ -2669,7 +2691,7 @@ - - - Orientation -- Ligging -+ Oriëntatie - - - Portrait -@@ -2689,19 +2711,19 @@ - - - Margins -- Marges -+ Kantlijnen - - - top margin -- Bovenmarge -+ bovenmarge - - - left margin -- Linkermarge -+ linkermarge - - - right margin -- Rechtermarge -+ rechtermarge - - - bottom margin -@@ -2727,7 +2749,7 @@ - - - Aliases: %1 -- Alias: %1 -+ Aliases: %1 - - - unknown -@@ -2735,7 +2757,7 @@ - - - Print To File ... -- Afdrukken naar een bestand ... -+ Afdrukken naar bestand ... - - - File %1 is not writable. -@@ -2889,11 +2911,11 @@ - - - Print to File (PDF) -- Afdrukken naar een bestand (PDF) -+ Afdrukken naar bestand (PDF) - - - Print to File (Postscript) -- Afdrukken naar een bestand (Postscript) -+ Afdrukken naar bestand (Postscript) - - - Local file -@@ -2912,7 +2934,7 @@ - QPrintPreviewDialog - - Print Preview -- Print voorbeeld -+ Afdrukvoorbeeld - - - Next page -@@ -2932,11 +2954,11 @@ - - - Fit width -- Breedte aanpassen -+ Breedte passend - - - Fit page -- Pagina aanpassen -+ Pagina passend - - - Zoom in -@@ -2960,7 +2982,7 @@ - - - Show facing pages -- Geef gespiegelde pagina's weer -+ Geef tegenoverliggende pagina's weer - - - Show overview of all pages -@@ -2968,7 +2990,7 @@ - - - Print -- Print -+ Afdrukken - - - Page setup -@@ -2980,7 +3002,7 @@ - - - Page Setup -- Pagina instelling -+ Pagina Instelling - - - -@@ -3002,8 +3024,8 @@ - QPrintSettingsOutput - - Form -- of Vorm -- Formulier -+ EG - Formulier of Vorm RL - Even gechecked, het moet 'Papierformaat' zijn, A4, Letter, Legal en zo... -+ Papierformaat - - - Copies -@@ -3011,7 +3033,7 @@ - - - Print range -- Print bereik -+ Afdrukbereik - - - Print all -@@ -3031,7 +3053,7 @@ - - - Output Settings -- Uitvoer instellingen -+ Uitvoerinstellingen - - - Copies: -@@ -3082,7 +3104,7 @@ - QPrintWidget - - Form -- Formulier -+ Papierformaat - - - Printer -@@ -3189,7 +3211,7 @@ - - - Unable to commit transaction -- Kan de transactie niet bevestigen -+ Kan de transactie niet toepassen - - - Unable to rollback Transaction -@@ -3223,7 +3245,7 @@ - - - Unable to commit transaction -- Kan de transactie niet bevestigen -+ Kan de transactie niet toepassen - - - Unable to rollback transaction -@@ -3269,7 +3291,7 @@ - - - Top -- boven -+ Bovenkant - - - Right edge -@@ -3277,7 +3299,7 @@ - - - Bottom -- Onder -+ Onderkant - - - Page left -@@ -3313,7 +3335,7 @@ - - - Line up -- Rangschikken -+ Regel naar boven - - - Position -@@ -3321,7 +3343,7 @@ - - - Line down -- Lijn onder?? -+ Regel naar beneden - - - -@@ -3332,15 +3354,15 @@ - - - %1: unable to lock -- %1: kan niet sluiten -+ %1: kan niet vergrendelen - - - %1: unable to unlock -- %1: kan niet openen -+ %1: kan niet ontgrendelen - - - %1: permission denied -- %1: geen toestemming -+ %1: toestemming geweigerd - - - %1: already exists -@@ -3487,7 +3509,8 @@ - - - Help -- Help -+ RL - eng 'Help' wordt bij Moz/KDe/GNOME/Ubuntu/Fedora/Windows/Mac standaard vertaald in Nederlands als 'Hulp' -+ Hulp - - - Back -@@ -3691,7 +3714,7 @@ - - - Select -- selecteren -+ Selecteren - - - Yes -@@ -3719,7 +3742,7 @@ - - - Call -- Aanroep -+ Bellen - - - Hangup -@@ -3785,11 +3808,11 @@ - QSocks5SocketEngine - - Socks5 timeout error connecting to socks server -- Socks5 tijdslimiet verlopen tijdens verdinging zoeken met de socks server -+ Socks5 tijdslimiet verlopen tijdens verbinding zoeken met de socks server - - - Network operation timed out -- Tijdslimiet verlopen bij de netwerk operatie -+ Tijdslimiet verlopen bij netwerk operatie - - - -@@ -3882,7 +3905,7 @@ - - - Error loading local certificate, %1 -- Fout bij het laden van het locale certificaat, %1 -+ Fout bij het laden van lokaal certificaat, %1 - - - Error loading private key, %1 -@@ -3890,14 +3913,14 @@ - - - Private key does not certificate public key, %1 -- Prive sleutel certificeerd geen publieke sleutel, %1 -+ Prive sleutel certificeert geen publieke sleutel, %1 - - - - QTDSDriver - - Unable to open connection -- Kan de verbinding niet openen ' -+ Kan verbinding niet openen - - - Unable to use database -@@ -3947,7 +3970,7 @@ - - - Select All -- Alles selecteren -+ Selecteer Alles - - - -@@ -3965,7 +3988,7 @@ - QUdpSocket - - This platform does not support IPv6 -- Dit platform ondersteund geen IPv6 -+ Dit platform ondersteunt geen IPv6 - - - -@@ -3976,7 +3999,7 @@ - - - Redo -- Opnieuw -+ Opnieuw doen - - - -@@ -3994,7 +4017,7 @@ - - - Redo -- Opnieuw -+ Opnieuw doen - - - -@@ -4009,26 +4032,26 @@ - - - ZWJ Zero width joiner -- nog vertalen -- ZWJ Koppelaar zonder breedte -+ EG nog vertalen RL - Techterm -+ ZWJ Zero width joiner - - - ZWNJ Zero width non-joiner -- nog vertalen -- ZWNJ Niet-koppelaar zonder breedte -+ EG nog vertalen RL - Techterm -+ ZWNJ Zero width non-joiner - - - ZWSP Zero width space -- nog vertalen -- ZWSP Spatie zonder breedte -+ EG nog vertalen RL - Techterm -+ ZWSP Zero width space - - - LRE Start of left-to-right embedding -- LRE Start van links-naar-rechts imbedding -+ LRE Start van links-naar-rechts embedding - - - RLE Start of right-to-left embedding -- RLE Start van rechts-naar-links imbedding -+ RLE Start van rechts-naar-links embedding - - - LRO Start of left-to-right override -@@ -4040,12 +4063,12 @@ - - - PDF Pop directional formatting -- nog vertalen -- PDF Pop richtingsformattering -+ EG nog vertalen RL - Techterm -+ PDF Pop directional formatting - - - Insert Unicode control character -- Voeg een unicode controle teken toe -+ Voeg een Unicode controle teken toe - - - -@@ -4056,19 +4079,19 @@ - - - Request blocked -- verzoek geblokkeerd -+ Verzoek geblokkeerd - - - Cannot show URL -- Der URL kann nicht angezeigt werden -+ Kan URL niet tonen - - - Frame load interruped by policy change -- Laden van het frame onderbroken door een wijziging in het beleid -+ Laden van het frame onderbroken door een policywijziging - - - Cannot show mimetype -- Kan het mime type niet weergeven -+ Kan het mime-type niet weergeven - - - File does not exist -@@ -4080,12 +4103,12 @@ - - Submit - default label for Submit buttons in forms on web pages -- Voorleggen -+ Indienen - - - Submit - Submit (input element) alt text for <input> elements with no alt, title, or value -- Voorleggen -+ Indienen - - - Reset -@@ -4120,17 +4143,18 @@ - - Open Image - Open Image in New Window context menu item -- Plaatje openen -+ RL - Liever 'afbeelding' dan 'plaatje' -+ Afbeelding openen - - - Save Image - Download Image context menu item -- Plaatje opslaan -+ Afbeelding opslaan - - - Copy Image - Copy Link context menu item -- Kopiëer plaatje -+ Kopiëer afbeelding - - - Open Frame -@@ -4185,7 +4209,7 @@ - - Add To Dictionary - Learn Spelling context menu item -- Aan de map toevoegen -+ Aan woordenboek toevoegen - - - Search The Web -@@ -4195,7 +4219,7 @@ - - Look Up In Dictionary - Look Up in Dictionary context menu item -- In het woordenboek opzoeken -+ In woordenboek opzoeken - - - Open Link -@@ -4309,7 +4333,7 @@ - - - Web Inspector - %2 -- Web Inspecteur - %2 -+ Web Inspector - %2 - - - %1 (%2x%3 pixels) -@@ -4323,7 +4347,7 @@ - - This is a searchable index. Enter search keywords: - text that appears at the start of nearly-obsolete web pages in the form of a 'searchable index' -- Deze index is te doorzoeken.Geef trefwoorden op: -+ Deze index is te doorzoeken. Geef trefwoorden op: - - - -@@ -4348,7 +4372,8 @@ - - - Help -- Help -+ RL - eng 'Help' wordt bij Moz/KDe/GNOME/Ubuntu/Fedora/Windows/Mac standaard vertaald in Nederlands als 'Hulp' -+ Hulp - - - < &Back -@@ -4360,7 +4385,8 @@ - - - &Help -- &Help -+ RL - eng 'Help' wordt bij Moz/KDe/GNOME/Ubuntu/Fedora/Windows/Mac standaard vertaald in Nederlands als 'Hulp' -+ &Hulp - - - Go Back -@@ -4372,7 +4398,7 @@ - - - Commit -- Anwenden -+ Toepassen - - - Done -@@ -4403,7 +4429,7 @@ - - - &Size -- &Omvang -+ &Grootte - - - Mi&nimize -@@ -4419,7 +4445,7 @@ - - - Stay on &Top -- Op de &Voorgrond blijven -+ Op &voorgrond blijven - - - Minimize -@@ -4427,8 +4453,8 @@ - - - Restore Down -- nog vertalen -- Restore Down -+ Eg - nog vertalen RL - Dit is de actie verbonden aan het raam-icoontje rechtsboven op titelbalk van venster (middelste van de drie), bij aanklikken gaat venster naar maximaal, nog eens aanklikken naar oude grootte. Wordt in Fedora vertaald als 'venster herstellen'. -+ Venster herstellen - - - Close -@@ -4459,15 +4485,16 @@ - - - unexpected end of file -- Onverwachts einde van het bestand -+ Onverwacht einde van het bestand - - - more than one document type definition -- Meerdere definities van het soort document -+ Meer dan één document type definitie - - - error occurred while parsing element -- Fout bij het ontleden van het element -+ RL - parsen is nl werkwoord, betekent analyseren van info, Techterm -+ Fout bij het parsen van element - - - tag mismatch -@@ -4475,7 +4502,7 @@ - - - error occurred while parsing content -- Fout opgetreden bij het ontleden van de inhoud -+ Fout opgetreden bij parsen van inhoud - - - unexpected character -@@ -4491,23 +4518,24 @@ - - - wrong value for standalone declaration -- Verkeerde waarde voor een op zichzelf staande declaratie -+ Verkeerde waarde voor een standalone declaratie - - - error occurred while parsing document type definition -- fout opgetreden bij het ontleden van het document type definitie -+ fout opgetreden bij het parsen van document type definitie - - - letter is expected -- Een letter wordt verwacht -+ RL - letter als papierformaat, zoals A4 bv -+ letter wordt verwacht - - - error occurred while parsing comment -- Fout opgetreden bij het ontleden van het commentaar -+ Fout opgetreden bij parsen van commentaar - - - error occurred while parsing reference -- Fout bij het ontleden van de referentie -+ Fout bij parsen van referentie - - - internal general entity reference not allowed in DTD -@@ -4558,11 +4586,12 @@ - - - Sequence ']]>' not allowed in content. -- De volgorde ']]>' is niet toegestaan in de inhoud. -+ De volgorde ']]>' is niet toegestaan in inhoud. - - - Namespace prefix '%1' not declared -- De naamruimte voorvoegsel '%1' is niet declareerd -+ gewoon prefix -+ Naamruimte prefix '%1' is niet declareerd - - - Attribute redefined. -@@ -4570,8 +4599,7 @@ - - - Unexpected character '%1' in public id literal. -- Literal? -- '%1' wordt niet verwacht in een publieke id literal. -+ Teken '%1' wordt niet verwacht in een publieke identificator literaal. - - - Invalid XML version string. -@@ -4591,7 +4619,7 @@ - - - Standalone accepts only yes or no. -- Op zichzelf staand accepteerd alleen ja of nee. -+ Standalone accepteert alleen ja of nee. - - - Invalid attribute in XML declaration. -@@ -4619,7 +4647,7 @@ - - - Expected character data. -- Verwacht een teken als gegeven. -+ Verwacht teken als data. - - - Recursive entity detected. -@@ -4631,11 +4659,11 @@ - - - XML declaration not at start of document. -- De XML declaratie staat niet aan heb begin van het document. -+ De XML declaratie staat niet aan het begin van het document. - - - NDATA in parameter entity declaration. -- NDATA in de parameter entiteit declaratie. -+ NDATA in parameter entiteit declaratie. - - - %1 is an invalid processing instruction name. -@@ -4655,11 +4683,11 @@ - - - Opening and ending tag mismatch. -- Opening en afsluit tag komen niet overeen. -+ Openings- en sluittag komen niet overeen. - - - Reference to unparsed entity '%1'. -- Referentie naar niet ontlede entiteit '%1'. -+ Referentie naar ongeparste entiteit '%1'. - - - Entity '%1' not declared. -@@ -4667,7 +4695,7 @@ - - - Reference to external entity '%1' in attribute value. -- Verwijzing naar externe entiteit '%1' in de attribuut waarde. -+ Verwijzing naar externe entiteit '%1' in de attribuutwaarde. - - - Invalid character reference. -@@ -4675,15 +4703,15 @@ - - - Encountered incorrectly encoded content. -- Niet correct gecodeerde inhoud ontdekt. -+ Niet correct gecodeerde inhoud tegengekomen. - - - The standalone pseudo attribute must appear after the encoding. -- Het op zichzelf staande pseudo attribuut moet na de codering volgen. -+ Standalone pseudo attribuut moet komen na de codering. - - - %1 is an invalid PUBLIC identifier. -- %1 is een ongeldige PUBLIEKE id. -+ %1 is een ongeldige PUBLIEKE identificator. - - - -@@ -4694,7 +4722,7 @@ - - - No operand in an integer division, %1, can be %2. -- Geen operand bij deling %1, van gehele getallen, kan een %2 zijin. -+ Geen operand bij deling %1, van gehele getallen, kan een %2 zijn. - - - %1 is not a valid value of type %2. -@@ -4702,43 +4730,47 @@ - - - When casting to %1 from %2, the source value cannot be %3. -- Bij het overgaan van %1 uit %2 kan %3 geen brond zijn. -+ Bij het omzetten naar %1 vanuit %2 kan %3 geen bron zijn. - - - Effective Boolean Value cannot be calculated for a sequence containing two or more atomic values. -- Een effectieve boolsche waarde kan niet worden berekend voor een serrie die meer dan twee zeer kleine waarden bevat. -+ RL - EBV: Waarde van George Boole, wiskundige. Wordt in Nederland wisselend niet vertaald (Boolean) en wel (Booleaans) -+RL - een attribuut is atomair indien het maar één enkele waarde kan bevatten -+ Een Effectieve Booleaanse Waarde kan niet worden berekend voor een serie die twee of meer atomaire waarden bevat. - - - Operator %1 is not available between atomic values of type %2 and %3. -- Operator %1 is niet beschikbaar voor zeer kleine waarden van het soort %2 en %3. -+ RL - een attribuut is atomair indien het maar één enkele waarde kan bevatten -+ Operator %1 is niet beschikbaar tussen atomaire waarden van type %2 en %3. - - - It is not possible to cast from %1 to %2. -- Het is niet mogelijk om %1 over te laten gaan vanuit %2. -+ RL - To cast hier is eigenlijk 'omgieten' bv van SQL-vorm naar Xml of andersom -+ Het is niet mogelijk om %1 om te zetten %2. - - - Casting to %1 is not possible because it is an abstract type, and can therefore never be instantiated. -- Overgaan naar %1 is niet mogelijk omdat dit een abstracte soort is en kan daarom nooit geconcretiseerd worden. -+ Omzetten naar %1 is niet mogelijk omdat dit een abstract type is en daarom nooit geconcretiseerd kan worden. - - - It's not possible to cast the value %1 of type %2 to %3 -- Het is niet mogelijk om de waarde %1 van soort %2 over te laten gaan naar %3 -+ Het is niet mogelijk om waarde %1 van soort %2 om te zetten in %3 - - - Failure when casting from %1 to %2: %3 -- De overgang van %1 naar %2 is mislukt: %3 -+ Omzetting van %1 naar %2 is mislukt: %3 - - - No comparisons can be done involving the type %1. -- Met soort %1 zijn geen vergelijkingen uit te voeren. -+ Met type %1 zijn geen vergelijkingen uit te voeren. - - - The data of a processing instruction cannot contain the string %1 -- De gegevens van een proces instructie kunnen niet de reeks %1 bevatten -+ De gegevens van een procesinstructie kunnen niet de reeks %1 bevatten - - - %1 is an invalid %2 -- %1 is ongeldig %2 -+ %1 is een ongeldig %2 - - - %1 is not a valid XML 1.0 character. -@@ -4746,7 +4778,7 @@ - - - The first argument to %1 cannot be of type %2. -- Het eerste argument van %1 kan niet van het soort %2 zijn. -+ Het eerste argument van %1 kan niet van het type %2 zijn. - - - %1 was called. -@@ -4758,11 +4790,11 @@ - - - In the replacement string, %1 can only be used to escape itself or %2, not %3 -- In de vervangende reeks kan %1 alleen worden gebruikt om zichzelf in te dekken of %2 maar niet %3 -+ In de vervangende reeks kan %1 alleen worden gebruikt om zichzelf in te dekken of %2, maar niet %3 - - - %1 matches newline characters -- %1 komt overeen met tekens voor nieuwe regels -+ %1 komt overeen met tekens voor een nieuwe tekstregel - - - Matches are case insensitive -@@ -4774,11 +4806,11 @@ - - - It will not be possible to retrieve %1. -- het is niet mogelijk om %1 terug te halen. -+ Het is niet mogelijk om %1 terug te halen. - - - The default collection is undefined -- De standaard verzameling is niet gedefinieerd -+ De standaardverzameling is niet gedefinieerd - - - %1 cannot be retrieved -@@ -4786,15 +4818,15 @@ - - - The item %1 did not match the required type %2. -- Het item %1 komt niet overeen met het vereiste soort %2. -+ Het item %1 komt niet overeen met het vereiste type %2. - - - %1 is an unknown schema type. -- %1 is een onbekend soort schema. -+ %1 is een onbekend schematype. - - - Only one %1 declaration can occur in the query prolog. -- Maar één %1 declaratie kan voorkomen in de inleiding van een zoekvraag. -+ Maar één %1 declaratie kan voorkomen in de inleiding van een zoekopdracht. - - - The initialization of variable %1 depends on itself -@@ -4806,7 +4838,7 @@ - - - Version %1 is not supported. The supported XQuery version is 1.0. -- Versie %1 wordt niet ondersteund. De ondersteunde Xquery versie is 1.0. -+ Versie %1 wordt niet ondersteund. De ondersteunde XQuery-versie is 1.0. - - - No function with signature %1 is available -@@ -4814,27 +4846,27 @@ - - - It is not possible to redeclare prefix %1. -- Het is niet mogelijk om voorvoegsel %1 opnieuw te declareren. -+ Het is niet mogelijk om prefix %1 opnieuw te declareren. - - - Prefix %1 is already declared in the prolog. -- Voorvoegsel %1 is al gedeclareerd in de inleiding. -+ Prefix %1 is al gedeclareerd in de inleiding. - - - The name of an option must have a prefix. There is no default namespace for options. -- De naam van een optie moet een voorvoegsel hebben. Er bestaat geen standaard naamruimte voor opties. -+ De naam van een optie moet een prefix hebben. Er bestaat geen standaardnaamruimte voor opties. - - - The Schema Import feature is not supported, and therefore %1 declarations cannot occur. -- De import kenmerken, voor het schema, wordt niet ondersteund en daarom kunnen declaraties %1 niet voorkomen. -+ De faciliteit Schema Import wordt niet ondersteund en daarom kunnen declaraties %1 niet voorkomen. - - - The target namespace of a %1 cannot be empty. -- De doel naamruimte van een %1 kan niet leeg zijn. -+ De doelnaamruimte van een %1 kan niet leeg zijn. - - - The module import feature is not supported -- Het kenmerk "import module" wordt niet ondersteund -+ De import-module faciliteit wordt niet ondersteund - - - A variable by name %1 has already been declared in the prolog. -@@ -4846,7 +4878,7 @@ - - - The namespace of a user defined function in a library module must be equivalent to the module namespace. In other words, it should be %1 instead of %2 -- De naamruimte van een zelf gedefinieerde functie, in een biblitheek module, moet overeenkomen met de module naamruimte. Met andere woorden: het moet %1 zijn in plaats van %2 -+ De naamruimte van een zelf gedefinieerde functie in een bibliotheek module moet overeenkomen met de module naamruimte. Met andere woorden: het zou %1 moeten zijn in plaats van %2 - - - A function already exists with the signature %1. -@@ -4854,7 +4886,7 @@ - - - No external functions are supported. All supported functions can be used directly, without first declaring them as external -- Externe funkties worden niet ondersteund. Alle ondersteunde functies kunnen direct worden gebruikt zonder deze als extern te declareren -+ Externe functies worden niet ondersteund. Alle ondersteunde functies kunnen direct worden gebruikt zonder deze als extern te declareren - - - An argument by name %1 has already been declared. Every argument name must be unique. -@@ -4866,7 +4898,7 @@ - - - No variable by name %1 exists -- Een variabele met naam %1 betaat niet -+ Een variabele met naam %1 bestaat niet - - - No function by name %1 is available. -@@ -4874,7 +4906,7 @@ - - - The namespace URI cannot be the empty string when binding to a prefix, %1. -- De naamruimte URI kan niet een lege reeks zijn als deze gebonden wordt aan voorvoegsel %1. -+ De naamruimte URI kan niet een lege reeks zijn als deze gebonden wordt aan een prefix, %1. - - - %1 is an invalid namespace URI. -@@ -4882,11 +4914,11 @@ - - - It is not possible to bind to the prefix %1 -- Het is niet mogelijk om voorvoegsel %1 opnieuw te binden -+ Het is niet mogelijk om prefix %1 opnieuw te binden - - - Two namespace declaration attributes have the same name: %1. -- Twee attributen voor een naamruimte declaratie hebben dezelfde naam: %1. -+ Twee attributen voor een naamruimtedeclaratie hebben dezelfde naam: %1. - - - The namespace URI must be a constant and cannot use enclosed expressions. -@@ -4898,11 +4930,11 @@ - - - %1 is not a valid name for a processing-instruction. Therefore this name test will never match. -- %1 is geen geldige naam voor een proces instructie. Daarom zal deze naam test nooit werken. -+ %1 is geen geldige naam voor een procesinstructie. Daarom zal deze naamtest nooit werken. - - - %1 is not in the in-scope attribute declarations. Note that the schema import feature is not supported. -- %1 valt niet in het bereik van de attribuut declaraties. Let op: het kenmerk "schema import" wordt niet ondersteund. -+ %1 valt niet in het bereik van de attribuutdeclaraties. Weet dat schema-import faciliteit niet wordt ondersteund. - - - empty -@@ -4914,8 +4946,7 @@ - - - exactly one -- --precies één -+ precies één - - - one or more -@@ -4935,10 +4966,11 @@ - - - Network timeout. -- Tijdslimiet van het netwerk is verlopen. -+ Netwerk timeout. - - - Element %1 can't be serialized because it appears outside the document element. -+ EG - xml serialization = geserialiseerd - Element %1 kan niet geserialiseerd worden omdat buiten het document element voorkomt. - - -@@ -4955,7 +4987,8 @@ - - - Overflow: Can't represent date %1. -- Kan datum %1 niet weergeven (loopt over). -+ RL - Foutmelding dus Overflow onvertaald vermelden ivm foutopsporing op internet -+ Kan datum %1 niet weergeven (Overflow). - - - Day %1 is invalid for month %2. -@@ -4963,7 +4996,7 @@ - - - Time 24:%1:%2.%3 is invalid. Hour is 24, but minutes, seconds, and milliseconds are not all 0; -- 24 uurs tijd:%1:%2.%3 zijn ongeldig. Het uur is 24 maar de minuten, seconden en milliseconden zijn niet allemaal 0. -+ 24 uurs tijd:%1:%2.%3 zijn ongeldig. Het uur is 24 maar de minuten, seconden en milliseconden zijn niet allemaal 0; - - - Time %1:%2:%3.%4 is invalid. -@@ -4971,11 +5004,12 @@ - - - Overflow: Date can't be represented. -- Kan de datum niet weergeven (loopt over). -+ RL - Foutmelding dus Overflow onvertaald vermelden ivm foutopsporing op internet -+ Kan de datum niet weergeven (Overflow). - - - At least one time component must appear after the %1-delimiter. -- Tenminste één tijd component moet voorkomen na de %1 begrenzer. -+ Tenminste één tijdscomponent moet voorkomen na de %1 begrenzer. - - - Dividing a value of type %1 by %2 (not-a-number) is not allowed. -@@ -4991,47 +5025,50 @@ - - - A value of type %1 cannot have an Effective Boolean Value. -- En waarde van het soort %1 kan geen effectieve booleanse waarde hebben. -+ RL - EBV: Waarde van George Boole, wiskundige. Wordt in Nederland wisselend niet vertaald (Boolean) en wel (Booleaans) -+ Een waarde van het soort %1 kan geen Effectieve Booleaanse Waarde hebben. - - - Value %1 of type %2 exceeds maximum (%3). -- Waarde %1 van het soort %2 overschreidt het maximum (%3). -+ Waarde %1 van het soort %2 overschrijdt het maximum (%3). - - - Value %1 of type %2 is below minimum (%3). -- Waarde %1 van het soort %2 overschreidt het minimum (%3). -+ Waarde %1 van het soort %2 overschrijdt het minimum (%3). - - - A value of type %1 must contain an even number of digits. The value %2 does not. -- Een waarde van het soort %1 moet een even aantal getallen bevatten. De waarde %2 heeft dat niet. -+ Een waarde van het type %1 moet een even aantal getallen bevatten. De waarde %2 heeft dat niet. - - - %1 is not valid as a value of type %2. -- %1 is niet geldig als een waarde van het soort %2. -+ %1 is niet geldig als een waarde van het type %2. - - - Operator %1 cannot be used on type %2. -- Operator %1 kan niet worden gebruikt bij soort %2. -+ Operator %1 kan niet worden gebruikt bij type %2. - - - Operator %1 cannot be used on atomic values of type %2 and %3. -- Operator %1 kan niet gebruikt worden op zeer kleine waarden van de soorent %2 en %3. -+ RL - een attribuut is atomair indien het maar één enkele waarde kan bevatten -+ Operator %1 kan niet gebruikt worden op atomaire waarden van type %2 en %3. - - - The namespace URI in the name for a computed attribute cannot be %1. -- De naamruimte URI inde naam voor berekende attribuut kan geen %1 zijn. -+ De naamruimte URI in de naam voor berekend attribuut kan geen %1 zijn. - - - The name for a computed attribute cannot have the namespace URI %1 with the local name %2. -- De naam voor een berekend attribuut kan niet de naamruimte URI %1 hebben met de locale naam %2. -+ De naam voor een berekend attribuut kan niet de naamruimte URI %1 hebben met de lokale naam %2. - - - Type error in cast, expected %1, received %2. -- Foute in het soort bij de overgang, verwacht %1 maar %2 ontvangen. -+ Typefout bij omzetten, verwachtte %1 maar %2 ontvangen. - - - When casting to %1 or types derived from it, the source value must be of the same type, or it must be a string literal. Type %2 is not allowed. -- Bij het overgaan van %1 of soorten daaraan afgeleidt, moet de bronwaarde van hetzelfde soort zijn of moet het een literal reeks zijn. Soort %2 is niet toegestaan. -+ RL - literaal: constante die in een programmeertaal, als absolute rekengrootheid, vergelijkingswaarde of vast uitvoergegeven wordt weergegeven -+ Bij omzetten van %1 of typen daarvan afgeleid moet de bronwaarde van hetzelfde type zijn of moet het een literale reeks zijn. Soort %2 is niet toegestaan. - - - A comment cannot contain %1 -@@ -5043,51 +5080,53 @@ - - - An attribute node cannot be a child of a document node. Therefore, the attribute %1 is out of place. -- Een attribuut node kan geen kind zijn van een document node. Daarom is het attribuut %1 niet op zijn plaats. -+ Een attribuutnode kan geen kind zijn van een documentnode. Daarom is het attribuut %1 niet op zijn plaats. - - - A library module cannot be evaluated directly. It must be imported from a main module. -- Een bibliotheek module kan niet direct geëvalueerd worden. Deze moet via een hoofd module geïmporteerd worden. -+ Een bibliotheekmodule kan niet direct geëvalueerd worden. Deze moet via een hoofdmodule geïmporteerd worden. - - - A value of type %1 cannot be a predicate. A predicate must have either a numeric type or an Effective Boolean Value type. -- Een waarde van het soort %1 kan geen gezegde zijn. Een gezegde moet of een numerieke soort of een effectieve booleanse waarde soort hebben. -+ RL - Waarde van George Boole, wiskundige. Wordt in Nederland wisselend niet vertaald (Boolean) en wel (Booleaans) -+ Een waarde van het soort %1 kan geen predikaat zijn. Een predikaat moet of een numeriek type of een Effectieve Booleaanse Waarde type hebben. - - - A positional predicate must evaluate to a single numeric value. -- Een positioneel gezegde moet evalueren naar een enkele numerieke waarde. -+ Een positioneel predikaat moet evalueren naar een enkele numerieke waarde. - - - %1 is not a valid target name in a processing instruction. It must be a %2 value, e.g. %3. -- %1 is geen geldige doelnaam in een proces instructie. Deze moet %2 waarde zijn, bijvoorbeeld %3. -+ %1 is geen geldige doelnaam in een procesinstructie. Deze moet een %2 waarde zijn, bijvoorbeeld %3. - - - The last step in a path must contain either nodes or atomic values. It cannot be a mixture between the two. -- De laatste stap in een pad moet of nodes of zeer kleine waarden bevatten. En combinatie van de twee kan niet. -+ RL - een attribuut is atomair indien het maar één enkele waarde kan bevatten -+ De laatste stap in een pad moet of nodes of atomaire waarden bevatten. Een combinatie van beide kan niet. - - - No namespace binding exists for the prefix %1 -- Een naamruimte binding bestaat niet voor het voorvoegsel %1 -+ Een naamruimtebinding bestaat niet voor prefix %1 - - - No namespace binding exists for the prefix %1 in %2 -- Een naamruimte binding bestaat niet voor het voorvoegsel %1 in %2 -+ Een naamruimtebinding bestaat niet voor prefix %1 in %2 - - - The first argument to %1 cannot be of type %2. It must be a numeric type, xs:yearMonthDuration or xs:dayTimeDuration. -- Het eerste argument van %1 kan niet van het soort %2 zijn. Het moet numeriek, xs:jaarMaandDuur of xs:dagTijdDuur, zijn. -+ Het eerste argument van %1 kan niet van het type %2 zijn. Het moet numeriek, xs:jaarMaandDuur of xs:dagTijdDuur zijn. - - - The first argument to %1 cannot be of type %2. It must be of type %3, %4, or %5. -- Het eerste argument van %1 kan niet van het soort %2 zijn. Het moet van het soort %3, %4 of %5 zijn. -+ Het eerste argument van %1 kan niet van het type %2 zijn. Het moet van het type %3, %4 of %5 zijn. - - - The second argument to %1 cannot be of type %2. It must be of type %3, %4, or %5. -- Het tweede argument van %1 kan niet van het soort %2 zijn. Het moet van het soort %3, %4 of %5 zijn. -+ Het tweede argument van %1 kan niet van het type %2 zijn. Het moet van het type %3, %4 of %5 zijn. - - - If both values have zone offsets, they must have the same zone offset. %1 and %2 are not the same. -- Hebben beide waarden zone uitlopers, dan moeten ze dezelfde zone uitloper hebben. %1 en %2 zijn niet hetzelfde. -+ Hebben beide waarden zone offsets, dan moeten ze dezelfde zone offset hebben. %1 en %2 zijn niet hetzelfde. - - - %1 must be followed by %2 or %3, not at the end of the replacement string. -@@ -5095,11 +5134,11 @@ - - - %1 and %2 match the start and end of a line. -- %1 en %2 komen aan het begin en het einde van de regel overeen. -+ %1 en %2 betekenen allebei begin en het einde van een regel. - - - Whitespace characters are removed, except when they appear in character classes -- Witruimte tekens zijn verplaatst, behalve wanneer deze voorkomen in teken klassen -+ Witruimte-tekens worden verwijderd, behalve wanneer deze voorkomen in tekenklassen - - - %1 is an invalid flag for regular expressions. Valid flags are: -@@ -5107,15 +5146,15 @@ - - - If the first argument is the empty sequence or a zero-length string (no namespace), a prefix cannot be specified. Prefix %1 was specified. -- Is het eerste argument lege volgorde of een reeks met lengte nul (geen naamruimte), dan kan geen voorvoegsel worden gespecificeerd. Voorvoegsel %1 is gespecificeerd. -+ Is het eerste argument een lege reeks (empty sequence) of een reeks met lengte nul (geen naamruimte), dan kan geen prefix worden meegegeven. Prefix %1 was meegegeven. - - - The normalization form %1 is unsupported. The supported forms are %2, %3, %4, and %5, and none, i.e. the empty string (no normalization). -- De normalisatie vorm %1 wordt niet ondersteund. De ondersteunde vormen zijn %2, %3, %4, %5 ,en "geen", dus de lege reeks (geen normalisatie). -+ De normalisatie vorm %1 wordt niet ondersteund. De ondersteunde vormen zijn %2, %3, %4, %5 ,en "geen" d.w.z. de lege reeks (geen normalisatie). - - - A zone offset must be in the range %1..%2 inclusive. %3 is out of range. -- Een zone uitloper moet binnen de reeks %1..%2 (inklusief) vallen. %3 valt buiten het bereik. -+ Een zone offset moet binnen de reeks %1..%2 (inclusief) vallen. %3 valt buiten het bereik. - - - Required cardinality is %1; got cardinality %2. -@@ -5123,31 +5162,32 @@ - - - The encoding %1 is invalid. It must contain Latin characters only, must not contain whitespace, and must match the regular expression %2. -- De codering %1 is ongeldig. Deze mag alleen latijnse tekens bevatten, geen witruimte en moet overeenkomen met de reguliere expressie %2. -+ RL - Latin is karaktertype -+ De codering %1 is ongeldig. Deze mag alleen Latin tekens bevatten, geen witruimte en moet overeenkomen met de reguliere expressie %2. - - - Only the prefix %1 can be declared to bind the namespace %2. By default, it is already bound to the prefix %1. -- Alleen voorvoegsel %1 kan gedeclareerd worden om te binden met naamruimte %2. Standaard is deze al gebonden met voorvoegsel %1. -+ Alleen prefixl %1 kan gedeclareerd worden om te binden met naamruimte %2. Standaard is deze al gebonden met prefix %1. - - - The namespace %1 is reserved; therefore user defined functions may not use it. Try the predefined prefix %2, which exists for these cases. -- De naamruimte %1 is gereserveerd. Daarom kunnen eigen gedefineerde functies niet worden gebruikt. Probeer het voorgedefinieerde voorvoegsel %2) deze bestaat voor dit soort gevallen. -+ De naamruimte %1 is gereserveerd. Daarom mogen eigen gedefineerde functies deze niet gebruiken. Probeer het voorgedefinieerde prefix %2, dat al bestaat voor dit soort gevallen. - - - The name of a variable bound in a for-expression must be different from the positional variable. Hence, the two variables named %1 collide. -- De naam van de variabele, gebonden in een "for" expressie moet verschillen van de positionele variabele. Daarom botsen de twee variabelen genaamd %1. -+ De naam van de variabele gebonden in een "for" expressie moet verschillen van de positionele variabele. Daarom botsen de twee variabelen genaamd %1. - - - The Schema Validation Feature is not supported. Hence, %1-expressions may not be used. -- Het kenmerk "schema validatie" wordt niet ondersteund. Daarom mogen %1 expressies niet worden gebruikt. -+ Schema Validatie faciliteit wordt niet ondersteund. Daarom mogen %1 expressies niet worden gebruikt. - - - None of the pragma expressions are supported. Therefore, a fallback expression must be present -- Geen van de pragmatische expressies worden ondersteund. Daarom moet een terugval expressie aanwezig zijn -+ Geen van de pragmatische expressies wordt ondersteund. Daarom moet een terugval expressie aanwezig zijn - - - %1 is not a valid numeric literal. -- %1 is geen geldige numerike literal. -+ %1 is geen geldige numerieke literaal. - - - Namespace %1 can only be bound to %2 (and it is, in either case, pre-declared). -@@ -5155,35 +5195,37 @@ - - - Prefix %1 can only be bound to %2 (and it is, in either case, pre-declared). -- Voorvoegsel %1 kan alleen gebonden worden aan %2 (en is in elk geval voorgedeclareerd). -+ Prefix %1 kan alleen gebonden worden aan %2 (en is in elk geval voorgedeclareerd). - - - A direct element constructor is not well-formed. %1 is ended with %2. -- Een directe element constructor is niet goed gevormeerd. %1 eindigt met %2. -+ Een direct element constructor is niet goed opgezet. %1 eindigt met %2. - - - The name %1 does not refer to any schema type. -- De naam %1 heeft verwijst niet naar enig soort schema. -+ De naam %1 verwijst naar geen enkel schematype. - - - %1 is an complex type. Casting to complex types is not possible. However, casting to atomic types such as %2 works. -- %1 is een complex soort. Overgaan naar een complex soort is niet mogelijk. Hoewel overgaan van zeer kleine soorten zoals %2 werkt. -+ RL - een attribuut is atomair indien het maar één enkele waarde kan bevatten -+ %1 is een complex type. Overgaan naar complexe typen is niet mogelijk. Echter, omzetten naar atomaire typen zoals %2 werkt. - - - %1 is not an atomic type. Casting is only possible to atomic types. -- %1 is geen zeer kleine soort. Overgaan is alleen mogeijk naar zeer kleine soorten. -+ RL - een attribuut is atomair indien het maar één enkele waarde kan bevatten -+ %1 is geen atomair type. Overgaan is alleen mogeijk naar atomaire typen. - - - The name of an extension expression must be in a namespace. -- De naam van een aanvullende expressie moet in de naamruimte aanwezig zijn. -+ De naam van een aanvullende expressie moet in een naamruimte staan. - - - Required type is %1, but %2 was found. -- Het vereiste soort is %1 maar %2 is gevonden. -+ Het vereiste type is %1 maar %2 is gevonden. - - - Promoting %1 to %2 may cause loss of precision. -- Het opwaarderen van %1 maar %2 kan verlies van de nauwkeurigheid veroorzaken. -+ Het opwaarderen van %1 maar %2 kan verlies van nauwkeurigheid tot gevolg hebben. - - - It's not possible to add attributes after any other kind of node. -@@ -5191,7 +5233,8 @@ - - - Only the Unicode Codepoint Collation is supported(%1). %2 is unsupported. -- Alleen de Unicode codepunt samenwerking wordt ondersteund (%1). %2 wordt niet ondersteund. -+ RL - Unicode Codepoint Collation niet vertalen -+ Alleen Unicode Codepoint Collation wordt ondersteund (%1). %2 wordt niet ondersteund. - - - An %1-attribute with value %2 has already been declared. -@@ -5199,7 +5242,7 @@ - - - An %1-attribute must have a valid %2 as value, which %3 isn't. -- Een %1 attribuut moest een geldige %2 als waarde hebben en dat is niet %3. -+ Een %1 attribuut moet een geldige %2 als waarde hebben en dat heeft %3 niet. - - - The first operand in an integer division, %1, cannot be infinity (%2). -@@ -5207,7 +5250,7 @@ - - - The second operand in a division, %1, cannot be zero (%2). -- De tweede operand in een deling, %1 kan niet null zijn (%2). -+ De tweede operand in een deling, %1 kan niet nul zijn (%2). - - - Integer division (%1) by zero (%2) is undefined. -@@ -5215,68 +5258,70 @@ - - - Division (%1) by zero (%2) is undefined. -- De deling (%1) door nul (%2) is niet gedefinieerd. -+ Deling (%1) door nul (%2) is niet gedefinieerd. - - - Modulus division (%1) by zero (%2) is undefined. -- De modulo deling (%1) door nul (%2) is niet gedefinieerd. -+ De modulus deling (%1) door nul (%2) is niet gedefinieerd. - - - No casting is possible with %1 as the target type. -- Een overgang is niet mogelijk met %1 als doel soort. -+ Een omzetting is niet mogelijk met %1 als doeltype. - - - The target name in a processing instruction cannot be %1 in any combination of upper and lower case. Therefore, is %2 invalid. -- De doelnaam, in een proces instructie, kan geen %1 zijn, in enige combinatie van hoofd- of kleine letters. Daarom is %2 ongeldig. -+ De doelnaam in een procesinstructie kan geen %1 zijn, in welke combinatie van hoofd- of kleine letters dan ook. Daarom is %2 ongeldig. - - - %1 takes at most %n argument(s). %2 is therefore invalid. -+ enkel en meervoud string, nieuwe format - -- %1 heeft ten hoogste %n argument(en). %2 is daarom ongeldig. -- %1 heeft ten hoogste %n argument(en). %2 is daarom ongeldig. -+ %1 accepteert ten hoogste %n argument. %2 is daarom ongeldig. -+ %1 accepteert ten hoogste %n argumenten. %2 is daarom ongeldig. - - - - %1 requires at least %n argument(s). %2 is therefore invalid. - -- %1 vereist tenminste %n argument(en) %2 is daarom ongeldig. -- %1 vereist tenminste %n argument(en) %2 is daarom ongeldig. -+ %1 vereist tenminste %n argument %2 is daarom ongeldig. -+ %1 vereist tenminste %n argumenten %2 is daarom ongeldig. - - - - The root node of the second argument to function %1 must be a document node. %2 is not a document node. -- De wortel node van het tweede argument voor functie %1 moet een document node zijn. %2 is geen document node. -+ RL - root node is Techterm -+ De root node van het tweede argument voor functie %1 moet een document node zijn. %2 is geen document node. - - - The namespace for a user defined function cannot be empty (try the predefined prefix %1 which exists for cases like this) -- De naamruimte for een eige gedefinieerde functie kan niet leeg zijn (probeer een voorgedefinieerd voorvoegsel %1 die voor dit soort zaken bestaat) -+ De naamruimte for een eigen gedefinieerde functie kan niet leeg zijn (probeer een voorgedefinieerd prefix %1 dat voor dit soort gevallen bestaat) - - - A default namespace declaration must occur before function, variable, and option declarations. -- Een standaard naamruimte declaratie moet bestaan voor een functie, variabele en optie declaraties. -+ Een standaard naamruimte declaratie moet aanwezig zijn vóór functie, variabele en optie-declaraties. - - - Namespace declarations must occur before function, variable, and option declarations. -- Naamruimte declaaraties moet voorkomen voor functie, variabele en optie declaraties. -+ Naamruimte declaraties moeten aanwezig zijn vóór functie, variabele en optie declaraties. - - - Module imports must occur before function, variable, and option declarations. -- Module import moet voorkomen voor functie, variabele en optie declaraties. -+ Module imports moeten aanwezig zijn vóór functie, variabele en optie declaraties. - - - %1 is not a whole number of minutes. -- %1 is geen geheel getal voor minuten. -+ %1 is geen geheel getal in minuten. - - - Attribute %1 can't be serialized because it appears at the top level. -- Attribuut %1 kan niet geserialiseerd worden omdat deze op het hoogste niveau voortkomt. -+ Attribuut %1 kan niet geserialiseerd worden omdat deze op het hoogste niveau optreedt. - - - - VolumeSlider - - Muted -- Gedemp -+ Gedempd - - - Volume: %1% -@@ -5295,7 +5340,7 @@ - - - Top -- boven -+ Boven - - - Right edge ---- a/src/VBox/Frontends/VirtualBox/nls/VirtualBox_nl.ts 2012-04-02 15:28:40.000000000 +0200 -+++ b/src/VBox/Frontends/VirtualBox/nls/VirtualBox_nl.ts 2012-04-03 14:11:41.000000000 +0200 -@@ -1,6 +1,6 @@ - - -- -+ - - @@@ - -@@ -11,22 +11,23 @@ - - -- - Native language country name (empty if this language is for all countries) -- -+ Nederland - - - English - Language name, in English -- Nederlands -+ Dutch - - - -- - Language country name, in English (empty if native country name is empty) -- -+ The Netherlands - - - Oracle Corporation - Comma-separated list of translators -- Ebel Geertsema, Alexander L. de Goeij -+ EG - AdG - RL -+ Ebel Geertsema, Alexander L. de Goeij, Richard E. van der Luit - - - -@@ -52,11 +53,11 @@ - - - Incompatible Qt Library Error -- Qt-Bibliothek niet te combineren -+ Qt-Bibliotheek Incompatibiliteitsfout - - - VirtualBox - Error In %1 -- VirtualBox - fout in %1 -+ VirtualBox - Fout in %1 - - - <html><b>%1 (rc=%2)</b><br/><br/> -@@ -64,7 +65,7 @@ - - - Please try reinstalling VirtualBox. -- VirtualBox opnieuw installeren kan helpen. -+ Probeer VirtualBox opnieuw te installeren. - - - This error means that the kernel driver was either not able to allocate enough memory or that some mapping operation failed.<br/><br/>There are known problems with Linux 2.6.29. If you are running such a kernel, please edit /usr/src/vboxdrv-*/Makefile and enable <i>VBOX_USE_INSERT_PAGE = 1</i>. After that, re-compile the kernel module by executing<br/><br/> <font color=blue>'/etc/init.d/vboxdrv setup'</font><br/><br/>as root. -@@ -76,7 +77,7 @@ - - - Make sure the kernel module has been loaded successfully. -- Controleer of de kernel module daadwerkelijk succesvol is geladen. -+ Controleer of de kernelmodule daadwerkelijk met succes is geladen. - - - VirtualBox - Runtime Error -@@ -84,31 +85,31 @@ - - - <b>Cannot access the kernel driver!</b><br/><br/> -- <b>Kan de kernel stuurprogramma niet benaderen!</b><br/><br/> -+ <b>Kan het kernelstuurprogramma niet benaderen!</b><br/><br/> - - - Unknown error %2 during initialization of the Runtime -- Onbekende fout %2 tijdens de initialiseren voor het uitvoeren -+ Onbekende fout %2 tijdens het initialiseren van de Runtime - - - Kernel driver not accessible -- Kernel stuurprogramma niet toegankelijk -+ Kernelstuurprogramma niet toegankelijk - - - The VirtualBox kernel modules do not match this version of VirtualBox. The installation of VirtualBox was apparently not successful. Please try completely uninstalling and reinstalling VirtualBox. -- De VirtualBox kernel modules passen niet bij deze versie van VirtualBox. De installatie van VirtualBox is klaarblijkelijk niet een succes. Het kan helpen om de installatie volledig ongedaan te maken en VirtualBox opnieuw te installeren. -+ De VirtualBox kernelmodules passen niet bij deze versie van VirtualBox. De installatie van VirtualBox is kennelijk niet goed gelukt. Deïnstalleer VirtualBox eerst volledig en installeer VirtualBox daarna opnieuw. - - - The VirtualBox kernel modules do not match this version of VirtualBox. The installation of VirtualBox was apparently not successful. Executing<br/><br/> <font color=blue>'/etc/init.d/vboxdrv setup'</font><br/><br/>may correct this. Make sure that you do not mix the OSE version and the PUEL version of VirtualBox. -- De VirtualBox kernel modules passen niet bij deze versie van VirtualBox. De installatie van VirtualBox is klaarblijkelijk niet een succes. Voer <br/><br/><font color=blue>'/etc/init.d/vboxdrv setup'</font><br/><br/> uit, dit moet het probleem verhelpen. Controleer of u de OSE versie en de PUEL versie niet hebt verwisseld. -+ De VirtualBox kernel modules passen niet bij deze versie van VirtualBox. De installatie van VirtualBox is kennelijk niet goed gelukt. Uitvoeren van <br/><br/><font color=blue>'/etc/init.d/vboxdrv setup'</font><br/><br/> zou dit kunnen corrigeren. Controleer of u de OSE versie en de PUEL versie van VirtualBox niet hebt vergemengd. - - - This error means that the kernel driver was either not able to allocate enough memory or that some mapping operation failed. -- Deze fout betekent dat de kernel driver of teweinig geheugen kan reserveren of dat een koppeling mislukt is. -+ Deze fout betekent dat de kerneldriver of te weinig geheugen kan reserveren of dat uitvoeren van mapping mislukt is. - - - The VirtualBox Linux kernel driver (vboxdrv) is either not loaded or there is a permission problem with /dev/vboxdrv. Please reinstall the kernel module by executing<br/><br/> <font color=blue>'/etc/init.d/vboxdrv setup'</font><br/><br/>as root. If it is available in your distribution, you should install the DKMS package first. This package keeps track of Linux kernel changes and recompiles the vboxdrv kernel module if necessary. -- -+ De VirtualBox Linux kerneldriver (vboxdrv) is niet geladen of er is een permissie-probleem met /dev/vboxdrv. Herinstalleer de kernelmodule door <br/></br>..<font color=blue>'/etc/init.d/vboxdrv setup' </font><br/><br/>als root uit te voeren. Indien in uw distributie aanwezig, installeer dan eerst het DKMS pakket. Dit pakket houdt Linux kernelveranderingen bij en hercompileert indien nodig de vboxdrv kernelmodule. - - - -@@ -144,11 +145,11 @@ - QIHttp - - Connection timed out -- De verbinding is niet op tijd tot stand gekomen -+ De verbinding is niet op tijd tot stand gekomen - - - Could not locate the file on the server (response: %1) -- Het bestand op de server is niet gevonden (antwoord: %1) -+ Het bestand op de server is niet gevonden (antwoord: %1) - - - -@@ -197,11 +198,11 @@ - - - Copy all errors to the clipboard -- -+ Kopieer alle fouten naar ket klembord - - - Copy -- -+ Kopieer - - - -@@ -209,12 +210,12 @@ - - not complete - value state -- Niet compleet -+ niet compleet - - - invalid - value state -- Ongeldig -+ ongeldig - - - <qt>The value of the <b>%1</b> field on the <b>%2</b> page is %3.</qt> -@@ -222,14 +223,14 @@ - - - <qt>One of the values on the <b>%1</b> page is %2.</qt> -- <qt>Een van de waarden op pagina<b>%1</b> is %2.</qt> -+ <qt>Eén van de waarden op pagina<b>%1</b> is %2.</qt> - - - - QIWizardPage - - Use the <b>%1</b> button to go to the next page of the wizard and the <b>%2</b> button to return to the previous page. You can also press <b>%3</b> if you want to cancel the execution of this wizard.</p> -- Gebruik de <b>%1</b> knop om naar de volgende pagina van de assistent te gaan en de<b>%2</b> knop om terug te keren naar de vorige. U kunt ook op <b>%3</b> drukken als u de deze assistent wilt stoppen.</p> -+ Gebruik de <b>%1</b> knop om naar de volgende pagina van de assistent te gaan en de <b>%2</b> knop om terug te keren naar de vorige. U kunt ook op <b>%3</b> klikken als u de deze assistent wilt stoppen.</p> - - - -@@ -256,19 +257,20 @@ - - - Auto-resize &Guest Display -- Grote van het &gast scherm automatisch aanpassen -+ Grootte van het &gastscherm automatisch aanpassen - - - Automatically resize the guest display when the window is resized (requires Guest Additions) -- Pas de grote van het gast scherm automatisch aan wanneer het venster van grote veranderd (vereist de gast uitbreiding) -+ Guest Additions als naam laten staan -+ Pas de grootte van het gastscherm automatisch aan wanneer het venster van grootte veranderd (vereist Guest Additions) - - - &Adjust Window Size -- Venstergrote &aanpassen -+ Venstergrootte &aanpassen - - - Adjust window size and position to best fit the guest display -- Pas de venstergrote aan en plaats het gast scherm op de beste plek -+ Pas de venstergrootte aan en plaats het gastscherm op de meest geschikte plek - - - Disable &Mouse Integration -@@ -296,7 +298,7 @@ - - - &Insert Ctrl-Alt-Backspace -- &Invoegen van Ctrl-Alt-Backspace -+ &Invoegen van Ctrl-Alt-Backspace - - - Send the Ctrl-Alt-Backspace sequence to the virtual machine -@@ -304,11 +306,11 @@ - - - Take &Snapshot... -- Maak een &momentopname... -+ Maak een &momentopname... - - - Take a snapshot of the virtual machine -- Maak een momentopname van de virtuelen Machine -+ Maak een momentopname van de virtuele machine - - - Session I&nformation Dialog -@@ -316,7 +318,7 @@ - - - Show Session Information Dialog -- Geef de sessie informatie dialoog weer -+ Toon Sessie Informatiedialoog - - - &Pause -@@ -324,7 +326,7 @@ - - - Suspend the execution of the virtual machine -- -+ Onderbreek tijdelijk de uitvoering van de virtuele machine - - - R&esume -@@ -332,11 +334,11 @@ - - - &Reset -- &Opnieuw instellen -+ &Resetten - - - Reset the virtual machine -- Stel de virtuele machine opnieuw in -+ De virtuele machine resetten - - - ACPI Sh&utdown -@@ -348,7 +350,7 @@ - - - Send the ACPI Power Button press event to the virtual machine -- Stuur het ACPI startknop gebeurtenis naar de virtuele machine -+ Stuur ACPI startknop-indrukken gebeurtenis naar de virtuele machine - - - &Close... -@@ -380,11 +382,11 @@ - - - &Network Adapters... -- &Netwerk adapters... -+ &Netwerkadapters... - - - Change the settings of network adapters -- Pas de instellingen van de netwerk adapters aan -+ Instellingen van netwerkadapters aanpassen - - - &Shared Folders... -@@ -392,7 +394,7 @@ - - - Create or modify shared folders -- Open de dialoog om met de gedeelde mappen te bewerken -+ Aaanmaken of bewerken gedeelde mappen - - - &Remote Display -@@ -404,11 +406,12 @@ - - - &Install Guest Additions... -- &Gast uitbreidingen installeren... -+ Guest Additions als naam laten staan -+ &Installeren Guest Addition... - - - Mount the Guest Additions installation image -- Koppel de gast uitbreidingen installatie image aan -+ Koppel Guest Addition installatie-image aan - - - De&bug -@@ -431,19 +434,19 @@ - - - &Help -- &Help -+ &Hulp - - - Dock Icon -- Dok Iioon -+ Dok Icoon - - - Show Monitor Preview -- Geef monitor voorvertoning weer -+ Toon Monitor Preview - - - Show Application Icon -- Geef applicatie icoon weer -+ Toon applicatie icoon - - - Enter &Fullscreen Mode -@@ -483,7 +486,7 @@ - - - Enable remote desktop (RDP) connections to this machine -- Activeer beeldscherm op afstand (remote desktop protocol, RDP) verbindingen naar deze machine -+ Activeer beeldscherm-op-afstand (remote desktop protocol, RDP) verbindingen naar deze machine - - - &Disable Remote Display -@@ -505,7 +508,7 @@ - - - Switch to &Fullscreen -- Schakel over op de &schermvullend -+ Schakel over op &schermvullend - - - Switch between normal and fullscreen mode -@@ -513,7 +516,7 @@ - - - Switch to Seam&less Mode -- Schakel over naar naad&lose modus -+ Schakel over naar naad&loze modus - - - Switch between normal and seamless desktop integration mode -@@ -525,7 +528,7 @@ - - - Switch between normal and scale mode -- Schakel tussen normale en Schaal modus -+ Schakel tussen normale en schaal modus - - - Session I&nformation -@@ -533,19 +536,222 @@ - - - Enable R&emote Display -- Activeer b&eeldscherm op afstand -+ Activeer B&eeldscherm op Afstand - - - &Settings... -- In&stellingen... -+ In&stellingen... - - - Manage the virtual machine settings -- -+ Beheer instellingen virtuele machine - - - Session I&nformation... -- -+ Sessie I&nformatie... -+ -+ -+ &File -+ Mac OS X version -+ &Bestand -+ -+ -+ &File -+ Non Mac OS X version -+ &Bestand -+ -+ -+ &Virtual Media Manager... -+ Manager voor &Virtuele Media... -+ -+ -+ Display the Virtual Media Manager dialog -+ Geef de dialoog weer voor de Virtuele Media Manager -+ -+ -+ &Import Appliance... -+ Appliance &importeren ... -+ -+ -+ Import an appliance into VirtualBox -+ Importeert een appliance in VirtualBox -+ -+ -+ &Export Appliance... -+ Appliance &exporteren ... -+ -+ -+ Export one or more VirtualBox virtual machines as an appliance -+ Exporteert één of meerdere VirtualBox virtuele machines als een appliance -+ -+ -+ &Preferences... -+ global settings -+ &Voorkeuren... -+ -+ -+ Display the global settings dialog -+ Toon de algemene instellingen -+ -+ -+ E&xit -+ &Afsluiten -+ -+ -+ Close application -+ Programma afsluiten -+ -+ -+ &New... -+ &Nieuw... -+ -+ -+ Create a new virtual machine -+ Maak een nieuwe virtuele machine aan -+ -+ -+ &Add... -+ &Toevoegen... -+ -+ -+ Add an existing virtual machine -+ Voeg een bestaande virtuele machine toe -+ -+ -+ Cl&one... -+ Kl&oon... -+ -+ -+ Clone the selected virtual machine -+ Kloon de geselecteerde virtuele machine -+ -+ -+ &Remove -+ Ve&rwijderen -+ -+ -+ Remove the selected virtual machine -+ Verwijder de geselecteerde virtuele machine -+ -+ -+ S&tart -+ &Start -+ -+ -+ Start the selected virtual machine -+ Start de geselecteerde virtuele machine -+ -+ -+ S&how -+ &Weergeven -+ -+ -+ Switch to the window of the selected virtual machine -+ Schakel over naar het venster van de geselecteerde virtuele machine -+ -+ -+ Discard -+ Verwerp -+ -+ -+ D&iscard Saved State -+ Ver&werp Opgeslagen Status -+ -+ -+ Discard the saved state of the selected virtual machine -+ Verwerp de opgeslagen status van de geselecteerde virtuele machine -+ -+ -+ Re&fresh -+ &Verversen -+ -+ -+ Refresh the accessibility state of the selected virtual machine -+ Actualiseer de toegankelijkheidsstatus van de geselecteerde virtuele machine -+ -+ -+ Show &Log... -+ Toon &Log... -+ -+ -+ Show the log files of the selected virtual machine -+ Toon de logbestanden van de geselecteerde virtuele machine -+ -+ -+ Show in Finder -+ Toon in zoekscherm -+ -+ -+ Show the VirtualBox Machine Definition file in Finder. -+ Toon het VirtualBox Machine Definitiebestand in het zoekscherm. -+ -+ -+ Show in Explorer -+ Toon in Explorer -+ -+ -+ Show the VirtualBox Machine Definition file in Explorer. -+ Toon het VirtualBox Machine Definitiebestand in Explorer. -+ -+ -+ Show in File Manager -+ Toon in Bestandsmanager -+ -+ -+ Show the VirtualBox Machine Definition file in the File Manager -+ Toon het VirtualBox Machine Definitiebestand in Bestandsmanager -+ -+ -+ Create Alias on Desktop -+ Maak Alias op bureaublad -+ -+ -+ Creates an Alias file to the VirtualBox Machine Definition file on your Desktop. -+ Maakt een aliasbestand naar het VirtualBox Machine Definitiebestand op uw bureaublad. -+ -+ -+ Create Shortcut on Desktop -+ Maak een snelkoppeling op bureaublad -+ -+ -+ Creates an Shortcut file to the VirtualBox Machine Definition file on your Desktop. -+ Maakt een snelkoppeling naar het VirtualBox Machine Definitiebestand op het bureaublad. -+ -+ -+ Take Sn&apshot... -+ M&aak Momentopname... -+ -+ -+ Take Screensh&ot... -+ Maak Screensh&ot... -+ -+ -+ Take a screenshot of the virtual machine -+ Maak een schermafdruk van de virtuele machine -+ -+ -+ Ins&ert Ctrl-Alt-Backspace -+ Invo&egen Ctrl-Alt-Backspace -+ -+ -+ Sort List -+ Sorteer Lijst -+ -+ -+ Sort the VM list alphabetically (Shift for descending order) -+ Sorteert de VM opsomming alfabetisch (Shift voor aflopend) -+ -+ -+ &Close -+ &Sluiten -+ -+ -+ Po&wer Off -+ Uit&zetten -+ -+ -+ Power off the virtual machine -+ Zet de virtuele machine uit - - - -@@ -588,7 +794,7 @@ - - - Guest OS Type -- OS soort gast -+ Gast OS-type - - - CPU -@@ -620,7 +826,7 @@ - - - Network Adapter -- Netzwerk adapter -+ Netwerkadapter - - - USB Controller -@@ -632,12 +838,12 @@ - - - Virtual Disk Image -- het woord 'Disk image' is lastig, suggesties: schijf afbeelding, ... -- Virtuele schijf -+ EG - het woord 'Disk image' is lastig, suggesties: schijf afbeelding, ..RL - Ik zou gewoon image laten staan, als begrip -+ Virtuele schijf image - - - Unknown Hardware Item -- Onbekende hardware -+ Onbekende Hardware - - - MB -@@ -671,129 +877,131 @@ - - - When checked a new unique MAC address will assigned to all configured network cards. -- -+ Wanneer aangevinkt zal een nieuw, uniek MAC-adres worden toegewezen aan alle geconfigureerde netwerkkaarten. - - - &Reinitialize the MAC address of all network cards -- -+ He&rinitialiseren MAC-adres van alle netwerkkaarten - - - - UIApplianceImportEditorWidget - - Importing Appliance ... -- Hulpmiddel importeren ... -+ EG - RL - Appliance laat zich niet goed vertalen, voorlopig maar als begrip onvertaald laten...suggesties? -+ Appliance importeren ... - - - Reading Appliance ... -- Hulpmiddel lezen ... -+ Appliance lezen ... - - - - UICloneVMWizard - - Clone a virtual machine -- -+ Kloon een virtuele machine - - - Clone -- -+ Kloon - - - Linked Base for %1 and %2 -- -+ Gekoppelde Basis voor %1 en %2 - - - - UICloneVMWizardPage1 - - <p>This wizard will help you to create a clone of your virtual machine.</p> -- -+ <p>Deze assistent zal u helpen een kloon te maken van uw virtuele machine </p> - - - <p>Please choose a name for the new virtual machine:</p> -- -+ <p>Kies een naam voor de nieuwe virtuele machine:</p> - - - &Reinitialize the MAC address of all network cards -- -+ He&rinitialiseer het MAC-adres van alle netwerkkaarten - - - Welcome to the virtual machine clone wizard -- -+ Welkom bij de assistent voor het aanmaken van een virtuele machine kloon - - - %1 Clone -- -+ %1 Kloon - - - When checked a new unique MAC address will be assigned to all configured network cards. -- -+ Wanneer aangevinkt zal een nieuw, uniek MAC-adres worden toegewezen aan alle geconfigureerde netwerkkaarten. - - - - UICloneVMWizardPage2 - - Cloning Configuration -- -+ Configuratie Klonen - - - Full Clone -- -+ Zelfstandige Kloon - - - Linked Clone -- -+ Gekoppelde Kloon - - - <p>Please select the type of the clone.</p><p>If you choose <b>Full Clone</b> an exact copy (including all virtual disk images) of the original VM will be created. If you select <b>Linked Clone</b>, a new VM will be created, but the virtual disk images will point to the virtual disk images of original VM.</p> -- -+ <p>Selecteer het type kloon.</p><p>Indien u <b>zelfstandige kloon</b> kiest, zal er een exacte kopie (inclusief alle virtuele schijf images) van de originele VM worden aangemaakt. Indien u kiest voor <b>gekoppelde kloon</b> zal er een nieuwe VM worden aangemaakt, maar de virtuele schijf images zullen wijzen naar de virtuele schijf images van de originele virtuele machine.</p> - - - <p>Note that a new snapshot within the source VM is created in case you select <b>Linked Clone</b>.</p> -- -+ <p>Realiseer dat een nieuwe momentopname van de bron-VM zal worden aangemaakt wanneer u kiest voor <b>gekoppelde kloon</b>.</p> - - - - UICloneVMWizardPage3 - - Current machine state -- -+ Huidige staat machine - - - Current machine and all child states -- -+ Huidige staat machine en van alle kinderen - - - All states -- -+ Alle Staten - - - Cloning Configuration -- -+ Configuratie Klonen - - - Please choose which parts of the virtual machine should be cloned. -- -+ Kies welke delen van de virtuele machine moeten worden gekloond. - - - If you select <b>Current machine state</b>, only the current state of the virtual machine is cloned. -- -+ Indien u kiest voor <b>huidige staat machine</b> zal alleen de huidige staat van de virtuele machine worden gekloond. - - - If you select <b>Current machine and all child states</b> the current state of the virtual machine and any states of child snapshots are cloned. -- -+ Indien u kiest voor <b>huidige staat machine en van alle kinderen</b> zal de huidige staat van de virtuele machine en elke staat van kind-momentopnamen worden gekloond. - - - If you select <b>All states</b>, the current machine state and all snapshots are cloned. -- -+ 'virtuele' ontbreekt in bron, maar consequent zijn is mooier -+ Indien u kiest voor <b>alle staten</b> zullen de huidige staat van de virtuele machine en alle momentopnamen worden gekloond. - - - - UIDescriptionPagePrivate - - No description. Press the Edit button below to add it. -- Geen beschrijving. Druk hieronder op de knop wijzigen om een beschrijving toe te voegen. -+ Geen beschrijving. Druk hieronder op de knop Wijzigen om een beschrijving toe te voegen. - - - Edit -@@ -805,150 +1013,373 @@ - - - -+ UIDetailsBlock -+ -+ Name -+ details report -+ Naam -+ -+ -+ OS Type -+ details report -+ Soort besturingssysteem -+ -+ -+ Information inaccessible -+ details report -+ Informatie niet toegankelijk -+ -+ -+ Base Memory -+ details report -+ Basisgeheugen -+ -+ -+ <nobr>%1 MB</nobr> -+ details report -+ <nobr>%1 MB</nobr> -+ -+ -+ Processors -+ details report -+ Processoren -+ -+ -+ <nobr>%1</nobr> -+ details report -+ <nobr>%1</nobr> -+ -+ -+ Execution Cap -+ details report -+ RL - heeft te maken met rechten op processerCAPaciteit, onvertaald laten lijkt me.. -+ Execution Cap -+ -+ -+ <nobr>%1%</nobr> -+ details report -+ <nobr>%1%</nobr> -+ -+ -+ Boot Order -+ details report -+ Opstartvolgorde -+ -+ -+ ACPI -+ details report -+ ACPI -+ -+ -+ IO APIC -+ details report -+ IO APIC -+ -+ -+ BIOS -+ details report -+ BIOS -+ -+ -+ VT-x/AMD-V -+ details report -+ VT-x/AMD-V -+ -+ -+ Nested Paging -+ details report -+ Geneste Paging -+ -+ -+ PAE/NX -+ details report -+ PAE/NX -+ -+ -+ Acceleration -+ details report -+ Acceleratie -+ -+ -+ Video Memory -+ details report -+ Videogeheugen -+ -+ -+ Screens -+ details report -+ Beeldschermen -+ -+ -+ 2D Video -+ details report -+ 2D Video -+ -+ -+ 3D -+ details report -+ 3D -+ -+ -+ Remote Desktop Server Port -+ details report (VRDE Server) -+ Serverpoort voor Werkplek op Afstand -+ -+ -+ Remote Desktop Server -+ details report (VRDE Server) -+ Server voor Werkplek op Afstand -+ -+ -+ Disabled -+ details report (VRDE Server) -+ Uitgeschakeld -+ -+ -+ (CD/DVD) -+ (CD/DVD) -+ -+ -+ Not Attached -+ details report (Storage) -+ Niet aangesloten -+ -+ -+ Host Driver -+ details report (audio) -+ Host stuurprogramma -+ -+ -+ Controller -+ details report (audio) -+ Controller -+ -+ -+ Disabled -+ details report (audio) -+ Uitgeschakeld -+ -+ -+ Bridged adapter, %1 -+ details report (network) -+ Bridged adapter, %1 -+ -+ -+ Internal network, '%1' -+ details report (network) -+ Intern netwerk, '%1' -+ -+ -+ Host-only adapter, '%1' -+ details report (network) -+ Host-only adapter, '%1' -+ -+ -+ Generic driver, '%1' -+ details report (network) -+ Generiek stuurprogramma, '%1' -+ -+ -+ Generic driver, '%1' {&nbsp;%2&nbsp;} -+ details report (network) -+ Generiek stuurprogramma, '%1' {&nbsp;%2&nbsp;} -+ -+ -+ Adapter %1 -+ details report (network) -+ Adapter %1 -+ -+ -+ Disabled -+ details report (network) -+ Uitgeschakeld -+ -+ -+ Port %1 -+ details report (serial ports) -+ Poort %1 -+ -+ -+ Disabled -+ details report (serial ports) -+ Uitgeschakeld -+ -+ -+ Port %1 -+ details report (parallel ports) -+ Poort %1 -+ -+ -+ Disabled -+ details report (parallel ports) -+ Uitgeschakeld -+ -+ -+ Device Filters -+ details report (USB) -+ Apparaatfilters -+ -+ -+ %1 (%2 active) -+ details report (USB) -+ %1 (%2 actief) -+ -+ -+ Disabled -+ details report (USB) -+ Uitgeschakeld -+ -+ -+ Shared Folders -+ details report (shared folders) -+ Gedeelde mappen -+ -+ -+ None -+ details report (shared folders) -+ Geen -+ -+ -+ None -+ details report (description) -+ Geen -+ -+ -+ - UIDetailsPagePrivate - - Name - details report -- Naam -+ Naam - - - OS Type - details report -- Soort besturingssystem -+ Soort besturingssystem - - - Base Memory - details report -- Geheugen -+ Geheugen - - - <nobr>%1 MB</nobr> - details report -- <nobr>%1 MB</nobr> -- -- -- Processors -- details report -- -+ <nobr>%1 MB</nobr> - - - <nobr>%1</nobr> - details report -- <nobr>%1</nobr> -+ <nobr>%1</nobr> - - - Boot Order - details report -- Opstart volgorde -+ Opstart volgorde - - - ACPI - details report -- ACPI -+ ACPI - - - IO APIC - details report -- IO APIC -- -- -- BIOS -- details report -- -+ IO APIC - - - VT-x/AMD-V - details report -- VT-x/AMD-V -+ VT-x/AMD-V - - - Nested Paging - details report -- Geneste Paginering -+ Geneste Paginering - - - PAE/NX - details report -- PAE/NX -+ PAE/NX - - - Acceleration - details report -- Acceleratie -+ Acceleratie - - - Video Memory - details report -- Video geheugen -+ Video geheugen - - - Screens - details report -- Schermen -+ Schermen - - - 2D Video - details report -- 2D Video -+ 2D Video - - - 3D - details report -- 3D -+ 3D - - - Remote Desktop Server Port - details report (VRDE Server) -- Server poort voor het werkplek op afstand -+ Server poort voor het werkplek op afstand - - - Remote Desktop Server - details report (VRDE Server) -- Server voor werkplek op afstand -+ Server voor werkplek op afstand - - - Disabled - details report (VRDE Server) -- Gedeactiveerd -+ Gedeactiveerd - - - (CD/DVD) -- (CD/DVD) -+ (CD/DVD) - - - Not Attached - details report (Storage) -- Niet aangesloten -+ Niet aangesloten - - - Host Driver - details report (audio) -- Host stuurprogramma -+ Host stuurprogramma - - - Controller - details report (audio) -- Controller -+ Controller - - - Disabled - details report (audio) -- Gedeactiveerd -+ Gedeactiveerd - - - Bridged adapter, %1 - details report (network) -- Netwerk bridge adapter, %1 -+ Netwerk bridge adapter, %1 - - - Internal network, '%1' - details report (network) -- Intern netwerk, '%1' -+ Intern netwerk, '%1' - - - Host-only adapter, '%1' - details report (network) -- Host-only adapter, '%1' -+ Host-only adapter, '%1' - - - VDE network, '%1' -@@ -958,66 +1389,66 @@ - - Adapter %1 - details report (network) -- Adapter %1 -+ Adapter %1 - - - Disabled - details report (network) -- Gedeactiveerd -+ Gedeactiveerd - - - Port %1 - details report (serial ports) -- Poort %1 -+ Poort %1 - - - Disabled - details report (serial ports) -- Gedeactiveerd -+ Gedeactiveerd - - - Port %1 - details report (parallel ports) -- Poort %1 -+ Poort %1 - - - Disabled - details report (parallel ports) -- Gedeactiveerd -+ Gedeactiveerd - - - Device Filters - details report (USB) -- Apparaat filters -+ Apparaat filters - - - %1 (%2 active) - details report (USB) -- %1 (%2 actief) -+ %1 (%2 actief) - - - Disabled - details report (USB) -- Gedeactiveerd -+ Gedeactiveerd - - - Shared Folders - details report (shared folders) -- Gedeelde mappen -+ Gedeelde mappen - - - None - details report (shared folders) -- Geen -+ Geen - - - None - details report (description) -- Geen -+ Geen - - - The selected virtual machine is <i>inaccessible</i>. Please inspect the error message shown below and press the <b>Refresh</b> button if you want to repeat the accessibility check: -- De geselecteerde virtuele machine is <i>niet te benaderen</i>. Onderzoek de foutboodschap hieronder en druk op de knop <b>verversen</b> als u de toegangscontrole wilt herhalen: -+ De geselecteerde virtuele machine is <i>niet te benaderen</i>. Onderzoek de foutboodschap hieronder en druk op de knop <b>Verversen</b> als u de benaderingscontrole wilt herhalen: - - - General -@@ -1032,7 +1463,8 @@ - - Preview - details report -- Voorvertoning -+ preview is algemeen ingeburgerde term -+ Preview - - - Display -@@ -1079,26 +1511,6 @@ - details report - Omschrijving - -- -- Execution Cap -- details report -- -- -- -- <nobr>%1%</nobr> -- details report -- -- -- -- Generic driver, '%1' -- details report (network) -- -- -- -- Generic driver, '%1' {&nbsp;%2&nbsp;} -- details report (network) -- -- - - - UIDownloader -@@ -1110,6 +1522,14 @@ - The download process has been canceled by the user. - Het download proces is geannuleerd door de gebruiker. - -+ -+ Looking for %1... -+ Zoeken naar %1... -+ -+ -+ Downloading %1... -+ Downloaden %1... -+ - - - UIDownloaderAdditions -@@ -1133,12 +1553,21 @@ - Select folder to save Guest Additions image to - selecteer een map om de gast uitbreidingsCD op te slaan - -+ -+ VirtualBox Guest Additions -+ als begrip laten staan (zoekt ook makkelijker op internet indien gebruiker problemen heeft) -+ VirtualBox Guest Additions -+ - - - UIDownloaderExtensionPack - - Select folder to save %1 to -- -+ Selecteer map om %1 in op te slaan -+ -+ -+ VirtualBox Extension Pack -+ VirtualBox Extension Pack - - - -@@ -1147,6 +1576,10 @@ - Select folder to save User Manual to - Selecteer map om de handleiding in op te slaan - -+ -+ VirtualBox User Manual -+ VirtualBox Gebruikershandleiding -+ - - - UIExportApplianceWzd -@@ -1284,7 +1717,7 @@ - - - Export -- -+ Exporteren - - - -@@ -1295,7 +1728,7 @@ - - - <p>This wizard will guide you through the process of exporting an appliance.</p><p>%1</p><p>Please select the virtual machines that should be added to the appliance. You can select more than one. Please note that these machines have to be turned off before they can be exported.</p> -- <p>Deze assistent help u bij het exporteren van een appliance.</p><p>%1</p><p>Selecteer aub de virtuale machines die toegevoegd zullen worden aan de appliance. U kun meer dan één selecteren. Let op deze machines moeten uit staan voordat deze geexporteerd kunnen worden.</p> -+ <p>Deze assistent help u bij het exporteren van een appliance.</p><p>%1</p><p>Selecteer de virtuele machines die toegevoegd moeten worden aan de appliance. U kunt er meer dan één selecteren. Let wel op: de machines moeten uit staan voordat deze geëxporteerd kunnen worden.</p> - - - -@@ -1377,7 +1810,7 @@ - - - Create a Manifest file for automatic data integrity checks on import. -- Maak een manifestbestand aan voor automatische integriteitscontroles bij import. -+ Maak een manifestbestand aan ten behoeve van automatische integriteitscontroles bij import. - - - Write &Manifest file -@@ -1405,11 +1838,11 @@ - - - Please complete the additional fields like the username, password and the bucket, and provide a filename for the OVF target. -- Vul de aanvullende velden, zoals gebruikersnaam, wachtwoord en de emmer, in. Ten slotte moet u een bestandsnaam opgeven voor de OVF bestemming. -+ Vul de aanvullende velden zoals gebruikersnaam, wachtwoord en de emmer in. Geef vervolgens een bestandsnaam op voor het OVF doelbestand. - - - Please complete the additional fields like the username, password, hostname and the bucket, and provide a filename for the OVF target. -- Vul de aanvullende velden, zoals gebruikersnaam, wachtwoord, hostnaam en de emmer, in. Ten slotte moet u een bestandsnaam opgeven voor de OVF bestemming. -+ Vul de aanvullende velden zoals gebruikersnaam, wachtwoord, hostnaam en de emmer in. Geef vervolgens een bestandsnaam op voor het OVF doelbestand. - - - -@@ -1484,14 +1917,14 @@ - - - Here you can change additional configuration values of the selected virtual machines. You can modify most of the properties shown by double-clicking on the items. -- Hier kunt u aanvullende instellingen, van de geselecteerde virtuele machines, aanpassen. U kunt merendeel van de weergegeven eigenschappen aanpassen door daarop te dubbelklikken. -+ Hier kunt u aanvullende instellingen van de geselecteerde virtuele machines aanpassen. U kunt het merendeel van de weergegeven eigenschappen aanpassen door op het item te dubbelklikken. - - - - UIFirstRunWzd - - First Run Wizard -- Start eerst de assistent -+ Start Assistent - - - <p>You have started a newly created virtual machine for the first time. This wizard will help you to perform the steps necessary for installing an operating system of your choice onto this virtual machine.</p><p>Use the <b>Next</b> button to go to the next page of the wizard and the <b>Back</b> button to return to the previous page. You can also press <b>Cancel</b> if you want to cancel the execution of this wizard.</p> -@@ -1623,60 +2056,60 @@ - - - Start -- -+ Start - - - - UIFirstRunWzdPage1 - - Welcome to the First Run Wizard! -- Welkom bij de startassistent! -+ Welkom bij de Start Assistent! - - - <p>You have started a newly created virtual machine for the first time. This wizard will help you to perform the steps necessary for installing an operating system of your choice onto this virtual machine.</p><p>%1</p> -- <p>U heeft een nieuw aangemaakte virtuale machine voor de eerste keer gestart. Deze assistent helpt u met noodzakelijke stappen om het besturingssyteem, van uw keuze, op deze virtuale machine te installeren.</p><p>%1</p> -+ <p>U hebt een nieuw aangemaakte virtuele machine voor de eerste keer opgestart. Deze assistent zal u helpen met de stappen die nodig zijn om het besturingssyteem van uw keuze op deze virtuele machine te installeren.</p><p>%1</p> - - - <p>You have started a newly created virtual machine for the first time. This wizard will help you to perform the steps necessary for booting an operating system of your choice on the virtual machine.</p><p>Note that you will not be able to install an operating system into this virtual machine right now because you did not attach any hard disk to it. If this is not what you want, you can cancel the execution of this wizard, select <b>Settings</b> from the <b>Machine</b> menu of the main VirtualBox window to access the settings dialog of this machine and change the hard disk configuration.</p><p>%1</p> -- <p>U hebt een nieuw aangemaakte virtuale machine voor de eerste keer gestart. Deze assistent helpt u met de noodzakeliljke stappen bij het inrichten van een besturingsysteem van uw keuze op de virtuale machine.</p><p>Let op, u kunt nu geen besturingsysteem installeren virtuale machine omdat u hieraan nog geen harde schijf hebt gekoppeld. Is dit niet wat u wilt, dan kunt u de uitvoering van deze assistent annuleren, selecteer <b>Instellingen</b> uit het<b>Machine</b> menu in het hoofdvenster van VirtualBox om de dialoog, voor instellingen van deze machine, te benaderen en de harde schijf configuratie te wijzigen.</p><p>%1</p> -+ <p>U hebt een nieuw aangemaakte virtuele machine voor de eerste keer opgestart. Deze assistent zal u helpen met de stappen die nodig zijn voor het opstarten van een door u gekozen besturingsysteem voor deze virtuele machine.</p><p>Merk op dat u nu nog geen besturingsysteem op deze virtuele machine kunt installeren, omdat hieraan nog geen harde schijf is gekoppeld. Is dit niet wat u wilt, dan kunt u de uitvoering van deze assistent annuleren. Selecteer vervolgens <b>Instellingen</b> uit het<b>Machine</b> menu in het hoofdvenster van VirtualBox om de dialoog voor instellingen van deze machine te benaderen. Verander daar de configuratie van de harde schijf.</p><p>%1</p> - - - - UIFirstRunWzdPage2 - - <p>Select the media which contains the setup program of the operating system you want to install. This media must be bootable, otherwise the setup program will not be able to start.</p> -- <p>Selecteer de media die het setup programma bevat met het besturingssysteem die u wilt installeren. Dit moet een opstartbaar medium zijn, anders kan het setup programma niet opstarten.</p> -+ <p>Selecteer het medium dat het setup programma bevat met het besturingssysteem dat u wilt installeren. Dit moet een opstartbaar medium zijn, anders kan het setup programma niet opstarten.</p> - - - <p>Select the media that contains the operating system you want to work with. This media must be bootable, otherwise the operating system will not be able to start.</p> -- <p>Selecteer de media die het besturingssysteem bevat waarmee u wilt gaan werken. Deze media moet opstartbaar zijn, anders kan het besturingssysteem niet opstarten.</p> -+ <p>Selecteer het medium dat het besturingssysteem bevat waarmee u wilt gaan werken. Dit medium moet opstartbaar zijn, anders kan het besturingssysteem niet opstarten.</p> - - - Media Source -- Media bron -+ Mediumbron - - - Select Installation Media -- Selecteer installatie media -+ Selecteer Installatiemedium - - - - UIFirstRunWzdPage3 - - <p>You have selected the following media to boot from:</p> -- <p>U heeft de volgende media, om op te starten, geselecteerd:</p> -+ <p>U hebt het volgende medium om op te starten geselecteerd:</p> - - - <p>You have selected the following media to boot an operating system from:</p> -- <p>U heeft de volgende media geselecteerd om het besturingssysteem te starten:</p> -+ <p>U hebt het volgende medium geselecteerd om een besturingssysteem van op te starten:</p> - - - <p>If the above is correct, press the <b>Finish</b> button. Once you press it, the selected media will be temporarily mounted on the virtual machine and the machine will start execution.</p><p>Please note that when you close the virtual machine, the specified media will be automatically unmounted and the boot device will be set back to the first hard disk.</p><p>Depending on the type of the setup program, you may need to manually unmount (eject) the media after the setup program reboots the virtual machine, to prevent the installation process from starting again. You can do this by selecting the corresponding <b>Unmount...</b> action in the <b>Devices</b> menu.</p> -- <p>Is het bovenstaande correct, druk dan op de knop <b>Klaar</b>. Zodra u die indrukt, wordt de geselecteerde media, tijdelijk, gekoppeld aan de virtuele machine en zal uitgevoerd worden.</p><p>Let op, sluit u de virtuele machine, dan wordt de geselecteerde media automatisch ontkoppeld en het opstarten zal vanaf de eerste harde schij plaatsvinden.</p><p>Afhankelijk van het soort setup programma kan het zijn dat u zelf de media moet ontkoppelen (uitwerpen) nadat het setup programma de virtuele machine opnieuw heeft gestart. Om te voorkomen dat het installatie proces opnieuw begint kunt u de overeenkomstige <b>Ontkoppel...</b> actie selecteren in het menu <b>Apparaten</b>.</p> -+ <p>Indien het bovenstaande correct is, druk dan op de knop <b>klaar</b>. Zodra u die indrukt zal het geselecteerde medium tijdelijk gekoppeld worden aan de virtuele machine en worden uitgevoerd.</p><p>Let op: sluit u de virtuele machine, dan wordt het geselecteerde medium automatisch ontkoppeld en het opstarten zal daarna vanaf de eerste harde schijf plaatsvinden.</p><p>Afhankelijk van het soort setup programma kan het zijn dat u zelf het medium moet ontkoppelen (uitwerpen) nadat het setup programma de virtuele machine laat herstarten. Om te voorkomen dat het installatieproces opnieuw begint kunt u de overeenkomstige <b>Ontkoppel...</b> actie selecteren in het menu <b>Apparaten</b>.</p> - - - <p>If the above is correct, press the <b>Finish</b> button. Once you press it, the selected media will be mounted on the virtual machine and the machine will start execution.</p> -- <p>Is het bovenstaande correct? KLik op de knop <b>Klaar</b>. Zodra u hierop klikt wordt de geselecteerde media gekoppeld aan de virtuele machine en machine zal starten met de uitvoering.</p> -+ <p>Is het bovenstaande correct? Klik op de knop <b>klaar</b>. Zodra u hierop klikt wordt het geselecteerde medium gekoppeld aan de virtuele machine en zal de machine starten met uitvoeren.</p> - - - Summary -@@ -1684,7 +2117,7 @@ - - - CD/DVD-ROM Device -- CD/DVD-Rom station -+ CD/DVD-ROM station - - - Type -@@ -1698,6 +2131,56 @@ - - - -+ UIGlobalSettingsDisplay -+ -+ Maximum Guest Screen &Size: -+ Maximun grootte gastbeeld&scherm: -+ -+ -+ &Width: -+ &Breedte: -+ -+ -+ Specifies the maximum width which we would like the guest to use. -+ Specificeert de maximum breedte die we de gast willen laten gebruiken. -+ -+ -+ &Height: -+ &Hoogte: -+ -+ -+ Specifies the maximum height which we would like the guest to use. -+ Specificeert de maximum hoogte die we de gast willen laten gebruiken. -+ -+ -+ Automatic -+ Maximum Guest Screen Size -+ Automatisch -+ -+ -+ Suggest a reasonable maximum screen size to the guest. The guest will only see this suggestion when guest additions are installed. -+ Stel een redelijk maximaal beeldformaat aan de gast voor. De gast zal dit voorstel alleen zien als de Guest Additions zijn geïnstalleerd. -+ -+ -+ None -+ Maximum Guest Screen Size -+ Geen -+ -+ -+ Do not attempt to limit the size of the guest screen. -+ Probeer niet de afmeting van het gastbeeldscherm te beperken. -+ -+ -+ Hint -+ Maximum Guest Screen Size -+ Hint -+ -+ -+ Suggest a maximum screen size to the guest. The guest will only see this suggestion when guest additions are installed. -+ Stel een maximale schermafmeting aan de gast voor. De gast zal dit voorstel alleen zien als de Guest Additions zijn geïnstalleerd. -+ -+ -+ - UIGlobalSettingsExtension - - &Extension Packages: -@@ -1768,11 +2251,11 @@ - - - When checked, the application will provide an icon with the context menu in the system tray. -- Is deze aangevinkt dan zal het programma een ikoon, voor het contekst menu, in de systeem tray neerzetten. -+ Aangevinkt zal het programma een icoon met het contextmenu in het systeemvak plaatsen. - - - &Show System Tray Icon -- &Geef het systeem tray ikoon weer -+ &Toon Systeemvakicoon - - - When checked, the Dock Icon will reflect the VM window content in realtime. -@@ -1785,26 +2268,26 @@ - - - &Auto show Dock and Menubar in fullscreen -- &Automatische Dock laten zien && Menubarlk bij schermvullend -+ Toon &automatisch Dok en Menubalk bij schermvullend - - - When checked, the host screen saver will be disabled whenever a virtual machine is running. -- Is deze optie aangevinkt dan wordt de schermbeveiliging van de gastheer gedeactiveerd zodra een virtuele machine draait. -+ Aangevinkt wordt de schermbeveiliging van de host uitgeschakeld zodra een virtuele machine draait. - - - Disable Host &ScreenSaver -- &Deactiveer schermbeveiliging van de gastheer -+ Uitschakelen &schermbeveiliging host - - - - UIGlobalSettingsInput - - Host &Key: -- Gastheer &toets: -+ &Hosttoets: - - - Displays the key used as a Host Key in the VM window. Activate the entry field and press a new Host Key. Note that alphanumeric, cursor movement and editing keys cannot be used. -- Geeft de toets weer, in het VM venster, die als gastheer toets wordt gebruikt. Activeer het opgave veld en druk op een nieuwe gastheer toets. Let op dat alfanumerieke, cursor, wijzigings toetsen niet gebruikt kunnen worden als gastheer toets. -+ Toont de toets die als Hosttoets wordt gebruikt in het VM scherm. Activeer het invoerveld en druk op een nieuwe Hosttoets. Let op dat alfanumerieke toetsen, cursortoetsen en bewerkingstoetsen niet gebruikt kunnen worden als Hosttoets. - - - Reset Host Key -@@ -1816,19 +2299,19 @@ - - - When checked, the keyboard is automatically captured every time the VM window is activated. When the keyboard is captured, all keystrokes (including system ones like Alt-Tab) are directed to the VM. -- Is deze aangevinkt dan wordt het toetsenbord automatisch gevangen zodra het VM venster is geactiveerd. Is het toetsenbord gevangen dan worden alle toetsaanslagen (inclusief de syteemeigen zoals Alt-Tab) doorgesluist naar de virtuele machine. -+ Aangevinkt wordt het toetsenbord automatisch gevangen zodra het VM venster is geactiveerd. Wanneer het toetsenbord is gevangen worden alle toetsaanslagen (inclusief de systeemeigen zoals Alt-Tab) doorgeleid naar de virtuele machine. - - - &Auto Capture Keyboard -- &Automatische toetsenbord vangen -+ &Automatisch toetsenbord vangen - - - Reset host combination -- Zet de gastheer combinatie terug -+ Reset host combinatie - - - Resets the key combination used as the host combination in the VM window. -- Zet de toetscombinatie terug die als gastheer toets wordt gebruikt in het VM scherm. -+ Reset de toetscombinatie die als hostcombinatie wordt gebruikt in het VM scherm. - - - -@@ -1841,12 +2324,14 @@ - - <unavailable> - Language -- <niet beschikbaar> -+ onvertaald laten -+ <unavailable> - - - <unknown> - Author(s) -- <onbekend> -+ onvertaald laten -+ <unknown> - - - Default -@@ -1859,11 +2344,11 @@ - - - &Interface Language: -- &Taal van de interface: -+ &Taal van Interface: - - - Lists all available user interface languages. The effective language is written in <b>bold</b>. Select <i>Default</i> to reset to the system default language. -- geeft alle beschikbare gebruikerstalen weer. De actuele taal is <b>vetgedrukt</b>weergegeven. Selecteer <i>standaard</i> om de standaard taal van het systeem terug te zetten. -+ Geeft alle beschikbare gebruikerstalen weer. De actuele taal is <b>vetgedrukt</b>weergegeven. Selecteer <i>Standaard</i> om naar de standaardtaal van het systeem terug te keren. - - - Name -@@ -1895,31 +2380,31 @@ - - - host IPv4 address of <b>%1</b> is wrong -- Het host IPv4 adres van <b>%1</b> is foutief -+ host IPv4 adres van <b>%1</b> is foutief - - - host IPv4 network mask of <b>%1</b> is wrong -- Het host-IPv4 netmasker van <b>%1</b> is foutief -+ host-IPv4 netmasker van <b>%1</b> is foutief - - - host IPv6 address of <b>%1</b> is wrong -- Het host-IPv6 adres van <b>%1</b> is foutief -+ host-IPv6 adres van <b>%1</b> is foutief - - - DHCP server address of <b>%1</b> is wrong -- Het DHCP server adres van <b>%1</b> is foutief -+ DHCP server adres van <b>%1</b> is foutief - - - DHCP server network mask of <b>%1</b> is wrong -- Het DHCP server netmasker van <b>%1</b> is foutief -+ DHCP server netmasker van <b>%1</b> is foutief - - - DHCP lower address bound of <b>%1</b> is wrong -- Het laagste IP adres voor de DHCP server van <b>%1</b> is foutief -+ grens laagste IP adres voor de DHCP server van <b>%1</b> is foutief - - - DHCP upper address bound of <b>%1</b> is wrong -- Het hoogste IP adres voor de DHCP server van <b>%1</b> is foutief -+ grens hoogste IP adres voor de DHCP server van <b>%1</b> is foutief - - - Adapter -@@ -1942,7 +2427,7 @@ - - Not set - address -- Niet gezet -+ Niet ingesteld - - - IPv4 Network Mask -@@ -1951,7 +2436,7 @@ - - Not set - mask -- Niet gezet -+ Niet ingesteld - - - IPv6 Address -@@ -1964,7 +2449,7 @@ - - Not set - length -- Niet gezet -+ Niet ingesteld - - - DHCP Server -@@ -1973,12 +2458,12 @@ - - Enabled - server -- geactiveerd -+ Ingeschakeld - - - Disabled - server -- Gedeactiveerd -+ Uitgeschakeld - - - Address -@@ -1995,7 +2480,7 @@ - - Not set - bound -- Niet gezet -+ Niet ingesteld - - - Upper Bound -@@ -2024,7 +2509,7 @@ - - - Lists all available host-only networks. -- Geef alle beschikbare host-only netwerken weer. -+ Toon alle beschikbare host-only netwerken. - - - Name -@@ -2043,7 +2528,7 @@ - UIGlobalSettingsNetworkDetails - - Host-only Network Details -- Details van het host-only netwerk -+ Details host-only netwerk - - - &Adapter -@@ -2055,7 +2540,7 @@ - - - Use manual configuration for this host-only network adapter. -- Gebruik de handmatige configuratie voor deze host-only netwerk adapter. -+ Gebruik handmatige configuratie voor deze host-only netwerkadapter. - - - &IPv4 Address: -@@ -2063,7 +2548,7 @@ - - - Displays the host IPv4 address for this adapter. -- Geef het host IPv4 adres voor deze adapter weer. -+ Toont het host IPv4 adres voor deze adapter. - - - IPv4 Network &Mask: -@@ -2071,7 +2556,7 @@ - - - Displays the host IPv4 network mask for this adapter. -- Geef het host IPv4 netmasker voor deze adapter. -+ Toont het host IPv4 netmasker voor deze adapter. - - - I&Pv6 Address: -@@ -2079,7 +2564,7 @@ - - - Displays the host IPv6 address for this adapter if IPv6 is supported. -- Geef het host IPv6 adres voor deze adapter weer als IPv6 ondersteund wordt. -+ Toont het host IPv6 adres voor deze adapter indien IPv6 ondersteund wordt. - - - IPv6 Network Mask &Length: -@@ -2087,7 +2572,7 @@ - - - Displays the host IPv6 network mask prefix length for this adapter if IPv6 is supported. -- geeft het host IPv6 netmasker voorvoegsel weer voor deze adapter als IPv6 ondersteund wordt. -+ Toont het host IPv6 netmasker prefixlengte voor deze adapter indien IPv6 ondersteund wordt. - - - &DHCP Server -@@ -2099,7 +2584,7 @@ - - - Indicates whether the DHCP Server is enabled on machine startup or not. -- Geeft aan of de DHCP server is geactiveerd zodra de machine opstart of niet. -+ Geeft aan of de DHCP server wordt ingeschakeld bij het opstarten van de machine of niet. - - - Server Add&ress: -@@ -2107,7 +2592,7 @@ - - - Displays the address of the DHCP server servicing the network associated with this host-only adapter. -- Geeft het adres vand e DHCP servers weer, die het netwerk bedient van deze host-only adapter. -+ Toont het adres van de DHCP server die het netwerk van deze host-only adapter bedient. - - - Server &Mask: -@@ -2115,7 +2600,7 @@ - - - Displays the network mask of the DHCP server servicing the network associated with this host-only adapter. -- Geeft het netwerk masker weer van de DHCP server die het netwerk bedient van deze host-only adapter. -+ Toont het netwerkmasker van de DHCP server die het netwerk van deze host-only adapter bedient. - - - &Lower Address Bound: -@@ -2123,7 +2608,7 @@ - - - Displays the lower address bound offered by the DHCP server servicing the network associated with this host-only adapter. -- Geeft het laagste IP adres weer, die door de DHCP server die het netwerk bedient van deze host-only adapter. -+ Toont het laagste IP adres dat kan worden aangeboden door de DHCP server geassocieerd met het netwerk van deze host-only adapter. - - - &Upper Address Bound: -@@ -2131,69 +2616,69 @@ - - - Displays the upper address bound offered by the DHCP server servicing the network associated with this host-only adapter. -- Geeft het hoogste IP adres weer, die door de DHCP server die het netwerk bedient van deze host-only adapter. -+ Toont het hoogste IP adres dat kan worden aangeboden door de DHCP server geassocieerd met het netwerk van deze host-only adapter. - - - - UIGlobalSettingsProxy - - When checked, VirtualBox will use the proxy settings supplied for tasks like downloading Guest Additions from the network or checking for updates. -- -+ Aangevinkt zal VirtualBox de proxy-instellingen gebruiken voor taken als downloaden van de Guest Additions van het netwerk of controleren op updates. - - - &Enable proxy -- -+ Proxy activ&eren - - - Ho&st: -- -+ Ho&st: - - - Changes the proxy host. -- -+ Verandert de proxy host. - - - &Port: -- -+ &Poort: - - - Changes the proxy port. -- -+ Verandert de proxy poort. - - - When checked the authentication supplied will be used with the proxy server. -- -+ Aangevinkt zal de opgegeven authenticatie gebruikt worden met de proxy server. - - - &Use authentication -- -+ Gebruik a&uthenticatie - - - User &name: -- -+ Gebruikers&naam: - - - Changes the user name used for authentication. -- -+ Verandert de gebruikersnaam voor authenticatie. - - - Pass&word: -- -+ Wacht&woord: - - - Changes the password used for authentication. -- -+ Verandert het wachtwoord gebruikt bij authenticatie. - - - - UIGlobalSettingsUpdate - - When checked, the application will periodically connect to the VirtualBox website and check whether a new VirtualBox version is available. -- Is deze aangevinkt dan zal het programma verbinding zoeken met de VirtualBox wesite en controleren of een nieuweversie van VirtualBox beschikbaar is. -+ Aangevinkt zal het programma verbinding zoeken met de VirtualBox-website en controleren of een nieuwe versie van VirtualBox beschikbaar is. - - - &Check for updates -- &Controleer op nieuwe versie -+ &Controleer op updates - - - &Once per: -@@ -2201,7 +2686,7 @@ - - - Specifies how often the new version check should be performed. Note that if you want to completely disable this check, just clear the above check box. -- Geeft aan hoe vaak de controle op nieuwe versies moet plaatsvinden. Let op wilt u deze controle niet laten plaatsvinden verwijder het vinkje in het keuzevakje. -+ Geeft aan hoe vaak de controle op nieuwe versies moet plaatsvinden. Let op: wilt u deze controle niet laten plaatsvinden verwijder eenvoudigweg het vinkje in het keuzevakje. - - - Next Check: -@@ -2217,30 +2702,31 @@ - - - &Stable release versions -- &Stabiele vrijgegeven versies -+ release is algemeen geaccepteerde nederlandse term -+ &Stabiele release versies - - - <p>Choose this if you wish to be notified about all new VirtualBox releases.</p> -- <p>Kies hiervoor als op de hoogte wilt blijven van alle VirtualBox uitgaven.</p> -+ <p>Kies hiervoor als op de hoogte wilt blijven van alle nieuwe VirtualBox releases.</p> - - - &All new releases -- &Alle nieuwe uitgaven -+ &Alle nieuwe releases - - - <p>Choose this to be notified about all new VirtualBox releases and pre-release versions of VirtualBox.</p> -- <p>Kies hiervoor als op de hoogte wilt blijven van alle nieuwe VirtualBox uitgaven en voor-uitgegeven versies van VirtualBox.</p> -+ <p>Kies hiervoor als op de hoogte wilt blijven van alle nieuwe VirtualBox releases en van pre-release versies van VirtualBox.</p> - - - All new releases and &pre-releases -- Alle nieuwe uitgaven en &voor-uitgaves -+ Alle nieuwe releases en &pre-releases - - - - UIHelpButton - - &Help -- &Help -+ &Hulp - - - -@@ -2255,23 +2741,23 @@ - - - Left Shift -- Linker Shift -+ Linker Shift - - - Right Shift -- Rechter Shift -+ Rechter Shift - - - Left Ctrl -- Linker Ctrl -+ Linker Ctrl - - - Right Ctrl -- Rechter Ctrl -+ Rechter Ctrl - - - Left Alt -- Linker Alt -+ Linker Alt - - - Right Alt -@@ -2303,7 +2789,8 @@ - - - <key_%1> -- <Toets_%1> -+ onvertaald laten -+ <key_%1> - - - Pause -@@ -2485,7 +2972,7 @@ - - - Restore Defaults -- Standaard instellingen terugplaatsen -+ Standaardinstellingen herstellen - - - &Import > -@@ -2493,7 +2980,7 @@ - - - Import -- -+ Importeren - - - -@@ -2512,29 +2999,29 @@ - - - <p>This wizard will guide you through importing an appliance.</p><p>%1</p><p>VirtualBox currently supports importing appliances saved in the Open Virtualization Format (OVF). To continue, select the file to import below:</p> -- <p>Deze assistent helpt u bij het importeren van een appliance.</p><p>%1</p><p>VirtualBox ondersteund, op dit moment, appliances opgeslagen het Open Virtualisatie Formaat (OVF). Om verder te gaan selecteer, hier onder, het bestand om te importeren:</p> -+ <p>Deze assistent helpt u bij het importeren van een appliance.</p><p>%1</p><p>VirtualBox ondersteunt op dit moment appliances opgeslagen het Open Virtualisatie Formaat (OVF). Om door te gaan, selecteer hieronder het bestand dat u wilt importeren:</p> - - - - UIImportApplianceWzdPage2 - - These are the virtual machines contained in the appliance and the suggested settings of the imported VirtualBox machines. You can change many of the properties shown by double-clicking on the items and disable others using the check boxes below. -- Dit zijn de virtuele machines zoals beschreven in het hulpmiddel, met hun voorstellen voor mappings naar VirtuelBox. U kun veel van de weergegeven eigenschappen aanpassen door hierop te dubbelklikken of keuze, van de onderstaande keuzevakjes, te wijzigen. -+ Dit zijn de virtuele machines vervat in de appliance en de voorgestelde instellingen voor de geïmporteerde VirtuelBox machines. U kun veel van de weergegeven eigenschappen aanpassen door op de items te dubbelklikken of andere uit te schakelen door middel van onderstaande keuzevakjes. - - - Appliance Import Settings -- Import instellingen voor Appliance -+ Importinstellingen voor Appliance - - - - UIImportLicenseViewer - - <b>The virtual system "%1" requires that you agree to the terms and conditions of the software license agreement shown below.</b><br /><br />Click <b>Agree</b> to continue or click <b>Disagree</b> to cancel the import. -- <b>Het virtuele systeem "%1" verlangt dat u akkoord gaat met de bepalingen en condities uit de software licentie overeenkomst zoals hieronder weergegeven.<b><br/><br/>Klik op <b>Akkoord</b>, om door te gaan of klik op <b>Niet akkoord</b>, om het importeren te annuleren. -+ <b>Het virtuele systeem "%1" verlangt dat u akkoord gaat met de bepalingen en condities in de software licentie-overeenkomst zoals hieronder weergegeven.<b><br/><br/>Klik op <b>akkoord</b> om door te gaan of klik op <b>niet akkoord</b> om het importeren te annuleren. - - - Software License Agreement -- Software licentie overeenkomst -+ Software Licentie Overeenkomst - - - &Disagree -@@ -2558,7 +3045,7 @@ - - - Save license to file... -- Bewaar licentie in het bestand... -+ Sla licentie op in bestand... - - - -@@ -2566,7 +3053,7 @@ - - <p style='white-space:pre'><nobr>Indicates the activity of the virtual hard disks:</nobr>%1</p> - HDD tooltip -- <p style='white-space:pre'><nobr>Geeft de activiteit van de virtuale harde schijf weer:</nobr>%1</p> -+ <p style='white-space:pre'><nobr>Geeft de activiteit van de virtuele harde schijf weer:</nobr>%1</p> - - - <p style='white-space:pre'><nobr>Indicates the activity of the CD/DVD devices:</nobr>%1</p> -@@ -2581,12 +3068,12 @@ - - <p style='white-space:pre'><nobr>Indicates the activity of the network interfaces:</nobr>%1</p> - Network adapters tooltip -- <p style='white-space:pre'><nobr>Geeft de activiteit van de netwerk interfaces weer:</nobr>%1</p> -+ <p style='white-space:pre'><nobr>Geeft de activiteit van de netwerkinterfaces weer:</nobr>%1</p> - - - <br><nobr><b>Adapter %1 (%2)</b>: %3 cable %4</nobr> - Network adapters tooltip -- <br><nobr><b>Adapter %1 (%2)</b>: %3 cabel %4</nobr> -+ <br><nobr><b>Adapter %1 (%2)</b>: %3 kabel %4</nobr> - - - connected -@@ -2596,32 +3083,32 @@ - - disconnected - Network adapters tooltip -- los gemaakt -+ niet verbonden - - - <br><nobr><b>All network adapters are disabled</b></nobr> - Network adapters tooltip -- <br><nobr><b>Alle Netwerkadapters zijn gedeactiveerd</b></nobr> -+ <br><nobr><b>Alle netwerkadapters zijn uitgeschakeld</b></nobr> - - - <p style='white-space:pre'><nobr>Indicates the activity of the attached USB devices:</nobr>%1</p> - USB device tooltip -- <p style='white-space:pre'><nobr>Geeft de activiteit van de gekoppelde USB apparaten weer:</nobr>%1</p> -+ <p style='white-space:pre'><nobr>Geeft de activiteit van gekoppelde USB apparaten weer:</nobr>%1</p> - - - <br><nobr><b>No USB devices attached</b></nobr> - USB device tooltip -- <br><nobr><b>Geen USB apparaat aangesloten</b></nobr> -+ <br><nobr><b>Geen USB apparaten aangesloten</b></nobr> - - - <br><nobr><b>USB Controller is disabled</b></nobr> - USB device tooltip -- <br><nobr><b>USB controller is gedeactiveerd</b></nobr> -+ <br><nobr><b>USB controller is uitgeschakeld</b></nobr> - - - <p style='white-space:pre'><nobr>Indicates the activity of the machine's shared folders:</nobr>%1</p> - Shared folders tooltip -- <p style='white-space:pre'><nobr>Geeft de activiteit van de gedeelde mappen van de machine weer:</nobr>%1</p> -+ <p style='white-space:pre'><nobr>Toont activiteit van de gedeelde mappen van de machine:</nobr>%1</p> - - - <br><nobr><b>No shared folders</b></nobr> -@@ -2648,24 +3135,25 @@ - - - Indicates whether the host mouse pointer is captured by the guest OS:<br><nobr><img src=:/mouse_disabled_16px.png/>&nbsp;&nbsp;pointer is not captured</nobr><br><nobr><img src=:/mouse_16px.png/>&nbsp;&nbsp;pointer is captured</nobr><br><nobr><img src=:/mouse_seamless_16px.png/>&nbsp;&nbsp;mouse integration (MI) is On</nobr><br><nobr><img src=:/mouse_can_seamless_16px.png/>&nbsp;&nbsp;MI is Off, pointer is captured</nobr><br><nobr><img src=:/mouse_can_seamless_uncaptured_16px.png/>&nbsp;&nbsp;MI is Off, pointer is not captured</nobr><br>Note that the mouse integration feature requires Guest Additions to be installed in the guest OS. -- Geeft aan of de muis, van de gastheer, is gevangen door het gast besturingssysteem:<br><nobr><img src=:/mouse_disabled_16px.png/>&nbsp;&nbsp;Muis is niet gevangen</nobr><br><nobr><img src=:/mouse_16px.png/>&nbsp;&nbsp;Muis is gevangen</nobr><br><nobr><img src=:/mouse_seamless_16px.png/>&nbsp;&nbsp;Muis integratie (MI) staat aan</nobr><br><nobr><img src=:/mouse_can_seamless_16px.png/>&nbsp;&nbsp;MI staat uit, muis is gevangen</nobr><br><nobr><img src=:/mouse_can_seamless_uncaptured_16px.png/>&nbsp;&nbsp;MI staat uit, muis is niet gevangen</nobr><br>Let op Muis integratie werkt alleen als de gast uitbreidingen zijn geïnstalleerd op de het gast besturingssysteem. -+ tja, muis is gevangen....arm dier ;) -+ Geeft aan of de muis van de host wordt gebruikt door het gastbesturingssysteem:<br><nobr><img src=:/mouse_disabled_16px.png/>&nbsp;&nbsp;Muis is niet gevangen</nobr><br><nobr><img src=:/mouse_16px.png/>&nbsp;&nbsp;Muis is gevangen</nobr><br><nobr><img src=:/mouse_seamless_16px.png/>&nbsp;&nbsp;Muis integratie (MI) staat aan</nobr><br><nobr><img src=:/mouse_can_seamless_16px.png/>&nbsp;&nbsp;MI staat uit, muis is gevangen</nobr><br><nobr><img src=:/mouse_can_seamless_uncaptured_16px.png/>&nbsp;&nbsp;MI staat uit, muis is niet gevangen</nobr><br>Let op Muis Integratie werkt alleen als Guest Additions op het gastbesturingssysteem is geïnstalleerd. - - - Indicates whether the keyboard is captured by the guest OS (<img src=:/hostkey_captured_16px.png/>) or not (<img src=:/hostkey_16px.png/>). -- Geeft aan of het toetsenbord, van de gastheer, is gevangen door het gast besturingssysteem (<img src=:/hostkey_captured_16px.png/>) of niet (<img src=:/hostkey_16px.png/>). -+ Geeft aan of het toetsenbord van de host is gevangen door het gastbesturingssysteem (<img src=:/hostkey_captured_16px.png/>) of niet (<img src=:/hostkey_16px.png/>). - - - Indicates whether the Remote Desktop Server is enabled (<img src=:/vrdp_16px.png/>) or not (<img src=:/vrdp_disabled_16px.png/>). -- Geeft aan of de werkplek op afstand geactiveerd is (<img src=:/vrdp_16px.png/>) of niet (<img src=:/vrdp_disabled_16px.png/>). -+ Geeft aan of de Remote Desktop Server is ingeschakeld (<img src=:/vrdp_16px.png/>) of niet (<img src=:/vrdp_disabled_16px.png/>). - - - <hr>The Remote Desktop Server is listening on port %1 -- <hr>De werkplek op afstand luisterd op poort %1 -+ <hr>De Remote Desktop Server luistert op poort %1 - - - Indicates the status of different features used by this virtual machine:<br><nobr><b>%1:</b>&nbsp;%2</nobr><br><nobr><b>%3:</b>&nbsp;%4</nobr><br><nobr><b>%5:</b>&nbsp;%6%</nobr> - Virtualization Stuff LED -- -+ Toont de status van verscheidene features die door deze virtuele machine worden gebruikt:<br><nobr><b>%1:</b>&nbsp;%2</nobr><br><nobr><b>%3:</b>&nbsp;%4</nobr><br><nobr><b>%5:</b>&nbsp;%6%</nobr> - - - -@@ -2683,11 +3171,11 @@ - - - EXPERIMENTAL build %1r%2 - %3 -- PROEF constructie %1r%2 - %3 -+ EXPERIMENTELE build %1r%2 - %3 - - - Preview Monitor %1 -- Voorvertoon monitor %1 -+ Preview Monitor %1 - - - Snapshot %1 -@@ -2731,14 +3219,18 @@ - - - No supported devices connected to the host PC -- Geen ondersteunde apparaten zijn aan de gastheer PC verbonden -+ Er zijn geen ondersteunde apparaten aan de host-PC verbonden -+ -+ -+ Select a filename for the screenshot ... -+ Geef een bestandsnaam voor schermafdruk ... - - - - UIMachineSettingsAudio - - When checked, a virtual PCI audio card will be plugged into the virtual machine and will communicate with the host audio system using the specified driver. -- Is deze aangevinkt dan is de virtuelle PCI audio kaart aangesloten op de virtuele machine die het specifieke stuurprogramma gebruikt om het de audio kaart van de gastheer te communiceren. -+ Aangevinkt zal de virtuele PCI-audiokaart aangesloten worden op de virtuele machine en zal het gespecificeerde stuurprogramma gebruikt worden om met de audiokaart van de host te communiceren. - - - Enable &Audio -@@ -2746,11 +3238,11 @@ - - - Host Audio &Driver: -- Gastheer audio &stuurprogramma: -+ Host audio &stuurprogramma: - - - Controls the audio output driver. The <b>Null Audio Driver</b> makes the guest see an audio card, however every access to it will be ignored. -- Controleert het audio stuurprogramma voor uitvoer. Het <b>Null audio stuurprogramma</b> zorgt dat de gast de audio kaart wel ziet, maar daar geen toegang tot heeft. -+ Beheert het audio stuurprogramma voor uitvoer. Het <b>Null audio stuurprogramma</b> zorgt dat de gast de audio kaart wel ziet, maar daar geen toegang tot zal hebben. - - - Audio &Controller: -@@ -2758,14 +3250,14 @@ - - - Selects the type of the virtual sound card. Depending on this value, VirtualBox will provide different audio hardware to the virtual machine. -- Selecteerd het type virtuele geluidskaart. Afhankelijk van deze waarde zal VirtualBox andere audio hardware aan de virtuele machine leveren. -+ Selecteert het type virtuele geluidskaart. Afhankelijk van deze waarde zal VirtualBox andere audio hardware aan de virtuele machine leveren. - - - - UIMachineSettingsDisplay - - you have assigned less than <b>%1</b> of video memory which is the minimum amount required to switch the virtual machine to fullscreen or seamless mode. -- u heeft minder dan <b>%1</b> aan video geheugen toegewezen, dit is het minimum wat nodig is om de virtuele machine over te schakelen op schermvullende of naadloze modus. -+ u hebt minder dan <b>%1</b> aan videogeheugen toegewezen, deze hoeveelheid is echter het minimum dat nodig is om de virtuele machine over te kunnen laten schakelen op schermvullende of naadloze modus. - - - <qt>%1&nbsp;MB</qt> -@@ -2777,11 +3269,11 @@ - - - Video &Memory: -- Video &geheugen: -+ Video&geheugen: - - - Controls the amount of video memory provided to the virtual machine. -- Controleert de hoeveelheid video geheugen toegewezen aan de virtuele machine. -+ Beheert de hoeveelheid videogeheugen toegewezen aan de virtuele machine. - - - MB -@@ -2793,7 +3285,7 @@ - - - When checked, the virtual machine will be given access to the 3D graphics capabilities available on the host. -- Is deze optie aangevinkt dan krijgt de virtuele machine toegang tot de 3D grafische kapaciteiten die beschikbaar zijn op de gastheer. -+ Aangevinkt krijgt de virtuele machine toegang tot de 3D grafische capaciteiten die beschikbaar zijn op de host. - - - Enable &3D Acceleration -@@ -2805,7 +3297,7 @@ - - - When checked, the VM will act as a Remote Desktop Protocol (RDP) server, allowing remote clients to connect and operate the VM (when it is running) using a standard RDP client. -- Is deze optie aangevinkt dan zal de virtuele machine optreden als een server voor beeld scherm op afstand (RDP: Remote Desktop Protocol), hiermee kunnen systemen, met een RDP client, op afstand de virtuele machine bedienen. -+ Aangevinkt zal de virtuele machine optreden als een server voor Beeldscherm op Afstand (RDP: Remote Desktop Protocol), hiermee kunnen systemen met een RDP client op afstand de virtuele machine bedienen. - - - &Enable Server -@@ -2813,7 +3305,7 @@ - - - Server &Port: -- Server &poort: -+ Server&poort: - - - Displays the VRDP Server port number. You may specify <tt>0</tt> (zero) to reset the port to the default value. -@@ -2821,7 +3313,7 @@ - - - Authentication &Method: -- Authenticatie &methode: -+ Authenticatie&methode: - - - Defines the VRDP authentication method. -@@ -2829,7 +3321,7 @@ - - - Authentication &Timeout: -- &Tijdslimiet authenticatie verstreken: -+ Authenticatie &Timeout: - - - Specifies the timeout for guest authentication, in milliseconds. -@@ -2837,11 +3329,11 @@ - - - you have assigned less than <b>%1</b> of video memory which is the minimum amount required for HD Video to be played efficiently. -- u heeft minder dan <b>%1</b> video geheugen toegewezen, dit is de minimum hoeveelheid nodig om voor HD Videoom om effectief af te spelen. -+ u hebt minder dan <b>%1</b> videogeheugen toegewezen, deze hoeveelheid is echter het minimum dat nodig is om HD Video efficient af te spelen. - - - When checked, the virtual machine will be given access to the Video Acceleration capabilities available on the host. -- Is deze optie aangevinkt dan zal de virtuele machine toegang krijgen tot de video versnellings mogelijkheden, beschikbaar op de gastheer. -+ Aangevinkt zal de virtuele machine toegang krijgen tot de video-versnellingsmogelijkheden van de host. - - - Enable &2D Video Acceleration -@@ -2849,15 +3341,15 @@ - - - The VRDP Server port number. You may specify <tt>0</tt> (zero), to select port 3389, the standard port for RDP. -- De VRDP server poort nummer. U mag <tt>0</tt> (nul) opgeven,om poort 3389 te selecteren, de standaard poort voor RDP. -+ Het VRDP server poortnummer. U mag <tt>0</tt> (nul) opgeven om poort 3389 te selecteren, de standaardpoort voor RDP. - - - Mo&nitor Count: -- Antal Mo&nitoren: -+ Aantal Mo&nitoren: - - - Controls the amount of virtual monitors provided to the virtual machine. -- Controleert het aantal virtuale monitors van deze virtuale machine. -+ Beheert het aantal virtuele monitoren van deze virtuele machine. - - - <qt>%1</qt> -@@ -2865,7 +3357,7 @@ - - - Specifies whether multiple simultaneous connections to the VM are permitted. -- Geeft aan of meerdere gelijktijdige verbindingen met de VM zijn toegestaan. -+ Specificeert of meerdere gelijktijdige verbindingen met de VM zijn toegestaan. - - - &Allow Multiple Connections -@@ -2877,22 +3369,22 @@ - - - you have 3D Acceleration enabled for a operation system which uses the WDDM video driver. For maximal performance set the guest VRAM to at least <b>%1</b>. -- -+ U hebt 3D-acceleratie ingeschakeld voor een besturingssysteem dat de WDDM-videodriver gebruikt. Zet voor maximale prestaties het gast-VRAM op minstens <b>%1</b>. - - - you have 2D Video Acceleration enabled. As 2D Video Acceleration is supported for Windows guests only, this feature will be disabled. -- U hebt 2D video versnelling geactiveerd. Omdat 2D video versnelling alleen door Windows wordt ondersteund, wordt deze mogelijkheid gedeactiveerd. -+ U hebt 2D video versnelling ingeschakeld. Omdat 2D videoversnelling alleen voor Windowsgasten wordt ondersteund, zal deze mogelijkheid worden uitgeschakeld. - - - you enabled 3D acceleration. However, 3D acceleration is not working on the current host setup so you will not be able to start the VM. -- -+ U hebt 3D acceleratie ingeschakeld. Echter, 3D acceleratie werkt momenteel niet in de huidige gastopstelling. Het zal daarom niet mogelijk zijn de VM te starten. - - - - UIMachineSettingsGeneral - - Displays the path where snapshots of this virtual machine will be stored. Be aware that snapshots can take quite a lot of disk space. -- Geeft het pad weer waar momentopnames, van deze virtuele machine, worden opgeslagen. Let op: momentopnames kunnen veel ruimte op de harde schijf innemen. -+ Geeft het pad weer waar momentopnamen van deze virtuele machine worden opgeslagen. Wees ervan bewust dat momentopnamen erg veel ruimte op de harde schijf kunnen innemen. - - - &Basic -@@ -2904,7 +3396,7 @@ - - - Displays the name of the virtual machine. -- Geeft de naam weer van de virtuele machine. -+ Toont de naam van de virtuele machine. - - - &Advanced -@@ -2916,23 +3408,23 @@ - - - Selects which clipboard data will be copied between the guest and the host OS. This feature requires Guest Additions to be installed in the guest OS. -- Definieert de modus voor het delen van het klembord, tussen de gast en het besturingssysteem van de gastheer. Let op: deze optie vereist dat de gast uitbreidingen zijn geïnstalleerd bij het gast besturingssysteem. -+ Definieert de modus voor het delen van het klembord tussen de gast en het host OS. Let op: deze optie vereist dat Guest Additions op het gastbesturingssysteem is geïnstalleerd. - - - S&napshot Folder: -- &Momentopname map: -+ &Map Momentopname: - - - &Description -- &Omschrijving -+ &Beschrijving - - - Displays the description of the virtual machine. The description field is useful for commenting on configuration details of the installed guest OS. -- Geeft de omschrijving van de virtuele machine weer. Het veld voor omschrijving is handig voor commentaar op de configuratie van het geïnstallerde besturingssysteem. -+ Toont de beschrijving van de virtuele machine. Het veld voor beschrijving is handig voor opmerkingen over de configuratie van het geïnstalleerde besturingssysteem. - - - If checked, any change to mounted CD/DVD or Floppy media performed during machine execution will be saved in the settings file in order to preserve the configuration of mounted media between runs. -- Is deze optie aangevinkt dan wordt iedere verandering aan de CD/DVD of het diskette media, tijdens het draaien van de virtuele machine, opgeslagen in het bestand met instellingen. Dit om de configuratie van de aangekoppelde media te bewaren tussen verschillende uitvoeringen. -+ Aangevinkt wordt iedere verandering bij aangekoppelde CD/DVD/diskette media aangebracht tijdens het draaien van de virtuele machine opgeslagen in het instellingenbestand om de configuratie van aangekoppelde media te behouden tussen runs. - - - Removable Media: -@@ -2940,7 +3432,7 @@ - - - &Remember Runtime Changes -- &Onthoudt wijzigingen bij uitvoering -+ &Onthoud runtime wijzigingen - - - Mini ToolBar: -@@ -2948,23 +3440,23 @@ - - - If checked, show the Mini ToolBar in Fullscreen and Seamless modes. -- Is deze optie aangevinkt dan wordt een mini werkbalk schermvullend en in naadloze modus weergegeven. -+ Aangevinkt wordt de mini-werkbalk getoont in schermvullende en naadloze modi. - - - Show In &Fullscreen/Seamless -- Geef weer in &Schermvullend en naadloos -+ Toon in &Schermvullend/Naadloos - - - If checked, show the Mini ToolBar at the top of the screen, rather than in its default position at the bottom of the screen. -- Is deze optie aangevinkt dan wordt een mini werkbalk bovenin het scherm weergegeven in plaats van de standaard positie onder aan het scherm. -+ Aangevinkt wordt de mini-werkbalk boven in het scherm weergegeven in plaats van de standaardpositie onder aan het scherm. - - - Show At &Top Of Screen -- Geef &bovenin het scherm weer -+ Geef &boven in het scherm weer - - - you have selected a 64-bit guest OS type for this VM. As such guests require hardware virtualization (VT-x/AMD-V), this feature will be enabled automatically. -- U heeft een 64-Bit gastbesturingssysteem, voor deze VM, geselecteerd. Daarom is hardware virtualisering (VT-x/AMD-V) vereist voor de gast, deze optie wordt automatische geactiveerd. -+ U hebt een 64-Bit gastbesturingssysteem voor deze VM geselecteerd. Daardoor is hardware-virtualisering (VT-x/AMD-V) voor de gast vereist, deze optie wordt automatische ingeschakeld. - - - -@@ -2988,7 +3480,7 @@ - - - When checked, plugs this virtual network adapter into the virtual machine. -- Is deze optie aangevinkt dan wordt deze virtuele netwerk adapter in de virtuele machine geplaatst. -+ Aangevinkt wordt deze virtuele netwerkadapter in de virtuele machine geplaatst. - - - &Enable Network Adapter -@@ -2996,7 +3488,7 @@ - - - Selects the type of the virtual network adapter. Depending on this value, VirtualBox will provide different network hardware to the virtual machine. -- Selecteerd het soort virtuele netwerk adapter. Afhankelijk van deze waarde zal VirtualBox een andere netwerk adapter leveren aan de virtuele netwerk adapter. -+ Selecteert het type virtuele netwerkadapter. Afhankelijk van deze waarde zal VirtualBox een andere netwerkadapter aan de virtuele machine leveren. - - - &Attached to: -@@ -3004,7 +3496,7 @@ - - - Controls how this virtual adapter is attached to the real network of the Host OS. -- Controleert hoe deze virtuele adapter is gekoppeld aan het werkelijke netwerk van het gastheer besturingssysteem. -+ Beheert hoe deze virtuele adapter is gekoppeld aan het werkelijke netwerk van het host OS. - - - Open additional options dialog for current attachment type. -@@ -3020,7 +3512,7 @@ - - - Adapter &Type: -- &Soort adapter: -+ Adapter &Type: - - - A&dvanced -@@ -3028,7 +3520,7 @@ - - - Shows or hides additional network adapter options. -- Geeft de extra opties van de netwerk adapter weer of verbergt deze. -+ Toont of verbergt extra opties voor de netwerkadapter. - - - &Mac Address: -@@ -3036,15 +3528,15 @@ - - - Displays the MAC address of this adapter. It contains exactly 12 characters chosen from {0-9,A-F}. Note that the second character must be an even digit. -- Geeft het MAC adres van deze adapter weer. Deze bevat precies 12 tekens van {0-9,A-F}. Let op: dat het tweede teken een even getal moet zijn. -+ Toont het MAC adres van deze adapter. Deze bevat precies 12 tekens van {0-9,A-F}. Let op: het tweede teken moet een even getal zijn. - - - Generates a new random MAC address. -- Maakt een willekeurig MAC adres aan. -+ Genereert een nieuw, willekeurig MAC adres. - - - Indicates whether the virtual network cable is plugged in on machine startup or not. -- Geeft aan of de kabel van het virtuele netwerk aangesloten is tijdens het opstarten of niet. -+ Geeft aan of de kabel van het virtuele netwerk tijdens het opstarten van de machine is aangesloten of niet. - - - &Cable connected -@@ -3052,7 +3544,7 @@ - - - Opens dialog to manage port forwarding rules. -- Opent een dialoog om doorverwijsregel van de poort te beheren. -+ Opent een dialoog om doorverwijsregels van de poort te beheren. - - - &Port Forwarding -@@ -3060,39 +3552,39 @@ - - - &Promiscuous Mode: -- -+ &Promiscuous Modus: - - - Selects the promiscuous mode policy of the network adapter when attached to an internal network, host only network or a bridge. -- -+ Selecteert het promiscuous-modus beleid van de netwerkadapter wanneer deze wordt gekoppeld aan een intern netwerk, host-only netwerk of een bridge. - - - Generic Properties: -- -+ Generieke Eigenschappen: - - - Enter any configuration settings here for the network attachment driver you will be using. The settings should be of the form <b>name=value</b> and will depend on the driver. Use <b>shift-enter</b> to add a new entry. -- -+ Vul hier configuratie instellingen in voor de netwerkkoppelingsdriver die u zal gebruiken. De instellingen moeten in de vorm zijn <b>naam=waarde</b> en zijn driver afhankelijk. Gebruik <b>shift-enter</b> voor een nieuwe toevoeging. - - - no generic driver is selected -- -+ er is geen generieke driver geselecteerd - - - Selects the network adapter on the host system that traffic to and from this network card will go through. -- -+ Selecteert de netwerkadapter op het gastsysteem waar verkeer van deze netwerkkaart doorheen gaat en waar doorheen verkeer terugkomt. - - - Enter the name of the internal network that this network card will be connected to. You can create a new internal network by choosing a name which is not used by any other network cards in this virtual machine or others. -- -+ Vul de naam in van het interne netwerk waaraan deze netwerkkaart zal worden aangesloten. U kunt een nieuw intern netwerk aanmaken door een naam te kiezen die nog niet door een andere netwerkkaart in deze virtuele machine of door andere machines gebruikt wordt. - - - Selects the virtual network adapter on the host system that traffic to and from this network card will go through. You can create and remove adapters using the global network settings in the virtual machine manager window. -- -+ Selecteert de virtuele netwerkadapter op het hostsysteem waar verkeer van deze netwerkkaart doorheen gaat en waar doorheen verkeer terugkomt. U kunt adapters aanmaken en verwijderen via de algemene netwerkinstellingen in het virtuele machine manager scherm. - - - Selects the driver to be used with this network card. -- -+ Selecteert de met deze netwerkkaart te gebruiken driver. - - - -@@ -3131,7 +3623,7 @@ - - - When checked, enables the given parallel port of the virtual machine. -- Is deze optie aangevinkt dan wordt de gegeven parallelle poort, van de virtuele machine, geactiveerd. -+ Aangevinkt wordt de gegeven parallelle poort van de virtuele machine ingeschakeld. - - - &Enable Parallel Port -@@ -3143,7 +3635,7 @@ - - - Displays the parallel port number. You can choose one of the standard parallel ports or select <b>User-defined</b> and specify port parameters manually. -- Geeft het poortnummer weer van de parallelle poort. U kunt een van de standaart parallelle poorten of een door de <b>gebruiker gedefinieerde</b> en specificeer de poort parameters handmatig. -+ Geeft het poortnummer weer van de parallelle poort. U kunt een van de standaard parallelle poorten kiezen of kies <b>Gebruiker Gedefinieerd</b> en specificeer de poortparameters handmatig. - - - &IRQ: -@@ -3163,26 +3655,26 @@ - - - Port &Path: -- Poort &pad: -+ Poort&pad: - - - Displays the host parallel device name. -- Geeft de naam, van het parallelle apparaat, weer van de gastheer. -+ Toont de naam van het host parallelle apparaat. - - - Displays the IRQ number of this parallel port. This should be a whole number between <tt>0</tt> and <tt>255</tt>. Values greater than <tt>15</tt> may only be used if the <b>IO APIC</b> setting is enabled for this virtual machine. -- Geeft het IRQ nummer van deze parallelle poort weer. Dit moet een geheel getal zijn tussen <tt>0</tt> en <tt>255</tt>. Waarden groter dan <tt>15</tt> mogen alleen worden gebruikt als de <b>IO APIC</b> instelling aan staat voor deze virtuele machine. -+ Toont het IRQ nummer van deze parallelle poort. Dit nummer moet een geheel getal zijn tussen <tt>0</tt> en <tt>255</tt>. Waarden groter dan <tt>15</tt> mogen alleen worden gebruikt als de <b>IO APIC</b> instelling voor deze virtuele machine aan staat. - - - Displays the base I/O port address of this parallel port. Valid values are integer numbers in range from <tt>0</tt> to <tt>0xFFFF</tt>. -- Geeft het basis I/O poort adres van deze parallelle poort weer. Geldige waarden zijn gehele getallen in de reeks van <tt>0</tt> tot <tt>0xFFFF</tt>. -+ Toont het basis I/O poort adres van deze parallelle poort. Geldige waarden zijn gehele getallen in de reeks van <tt>0</tt> tot <tt>0xFFFF</tt>. - - - - UIMachineSettingsParallelPage - - Duplicate port number selected -- dubbel poortnummer geselecteerd -+ Dubbel poortnummer geselecteerd - - - Port path not specified -@@ -3190,7 +3682,7 @@ - - - Duplicate port path entered -- dubbel poortnummer is opgegeven -+ Er is een dubbel poortnummer opgegeven - - - -@@ -3221,7 +3713,7 @@ - - - This button deletes selected port forwarding rule. -- Deze knop verwijderd de geselecteerde doorverwijsregel. -+ Deze knop verwijdert de geselecteerde doorverwijsregel. - - - -@@ -3248,15 +3740,15 @@ - - - Removes the selected shared folder definition. -- Verwijderd de definitie van een gedeelde map. -+ Verwijdert de definitie van een gedeelde map. - - - Machine Folders -- map voor virtuele machines -+ Machinemappen - - - Transient Folders -- tijdelijke mappen -+ Tijdelijke mappen - - - Full -@@ -3264,11 +3756,11 @@ - - - Read-only -- Alleen lezen -+ Alleen-lezen - - - Lists all shared folders accessible to this machine. Use 'net use x: \\vboxsvr\share' to access a shared folder named <i>share</i> from a DOS-like OS, or 'mount -t vboxsf share mount_point' to access it from a Linux OS. This feature requires Guest Additions. -- Geeft een lijst met alle gedeelde mappen, die toegankelijk zijn voor deze machine. Gebruikt 'net use x: \\vboxsvr\share' om de gedeelde map genaamd <i>share</i> te benaderen in een op MS-DOS gebaseert besturingssysteem (zoals Windows).Gebruikt 'mount -t vboxsf share mount_point' om deze gedeelde map in een Linux omgeving te benaderen. De optie vereist de gast toevoegingen. -+ Toont een lijst met alle gedeelde mappen die toegankelijk zijn voor deze machine. Gebruik 'net use x: \\vboxsvr\share' om de gedeelde map genaamd <i>share</i> te benaderen in een op MS-DOS gebaseert besturingssysteem (zoals Windows). Gebruik 'mount -t vboxsf share mount_point' om deze gedeelde map in een Linux omgeving te benaderen. Deze optie vereist de Guest Additions. - - - Name -@@ -3327,23 +3819,23 @@ - - - Folder Path: -- Pad naar de map: -+ Pad naar map: - - - Folder Name: -- naam van de map: -+ Naam van map: - - - Displays the name of the shared folder (as it will be seen by the guest OS). -- Geeft de namen weer van de gedeelde map (zoals deze door het gast besturingssysteem wordt gezien). -+ Geeft de naam weer van de gedeelde map (zoals deze door het gastbesturingssysteem wordt gezien). - - - When checked, the guest OS will not be able to write to the specified shared folder. -- Is deze optie aangevinkt dan kan het gast besturingssysteem niet op de gespecificeerde gedeelde map schrijven. -+ Aangevinkt kan het gastbesturingssysteem niet naar de gespecificeerde gedeelde map schrijven. - - - &Read-only -- Alleen &lezen -+ Alleen-&lezen - - - &Make Permanent -@@ -3351,7 +3843,7 @@ - - - When checked, the guest OS will try to automatically mount the shared folder on startup. -- Is deze optie aangevinkt dan zal het gast besturingssysteem de gedeelde folder automatisch proberen te koppelen. -+ Aangevinkt zal het gastbesturingssysteem de gedeelde folder automatisch proberen te koppelen bij opstarten. - - - &Auto-mount -@@ -3359,7 +3851,7 @@ - - - If checked, this shared folder will be permanent. -- Is deze optie aangevinkt, dan zal deze gedeelde map permanent worden. -+ Aangevinkt zal deze gedeelde map permanent worden. - - - -@@ -3371,7 +3863,7 @@ - - - When checked, enables the given serial port of the virtual machine. -- Is deze optie aangevinkt dan wordt de gegeven seriële poort geactiveerd voor deze virtuele machine. -+ Aangevinkt wordt de gegeven seriële poort voor deze virtuele machine ingeschakeld. - - - &Enable Serial Port -@@ -3383,7 +3875,7 @@ - - - Displays the serial port number. You can choose one of the standard serial ports or select <b>User-defined</b> and specify port parameters manually. -- Geeft de seriële poortnummers weer. U kunt één van de standaard seriële poorten kiezen of selecteer een door de <b>gebruiker gedefinieerde</b> en specificeer de poort parameters handmatig. -+ Toont de seriële poortnummers. U kunt één van de standaard seriële poorten kiezen of selecteer <b>Gebruiker Gedefinieerd</b> en specificeer de poortparameters handmatig. - - - &IRQ: -@@ -3407,27 +3899,27 @@ - - - Controls the working mode of this serial port. If you select <b>Disconnected</b>, the guest OS will detect the serial port but will not be able to operate it. -- Controleert de status van deze seriële poort. Selecteert u <b>niet verbonden</b> dan zal het gast besturingssysteem de seriële poort wel detecteren maar is niet in staat ermee te werken. -+ Beheert de status van deze seriële poort. Selecteert u <b>Niet verbonden</b> dan zal het gastbesturingssysteem de seriële poort wel detecteren maar zal niet in staat zijn ermee te werken. - - - If checked, the pipe specified in the <b>Port Path</b> field will be created by the virtual machine when it starts. Otherwise, the virtual machine will assume that the pipe exists and try to use it. -- Is deze optie aangevinkt dan zal de pijp, gespecificeerd in het <b>pad voor de poort</b>, aangemaakt worden door de virtuele machine zodra deze opstart. Anders zal de virtuele machine een bestaande pijp proberen te gebruiken. -+ Aangevinkt zal de pijp gespecificeerd in het <b>Poort/bestandspad</b> veld door de virtuele machine worden aangemaakt zodra deze opstart. Niet aangevinkt zal de virtuele machine een bestaande pijp proberen te gebruiken. - - - &Create Pipe -- Maak &Pijp aan -+ Maak &pijp aan - - - Displays the path to the serial port's pipe on the host when the port is working in <b>Host Pipe</b> mode, or the host serial device name when the port is working in <b>Host Device</b> mode. -- Geeft het pad weer naar de seriële poort op de gastheer, als de poort in <b>Host pijp</b> modus werkt, of de gastheer seriële apparaat naam, als de poort in <b>Host appparaat</b>modus werkt. -+ Toont het pad naar de seriële poort op de host indien de poort in <b>Host pijp</b> modus werkt; en de naam van het host seriële-apparaat als de poort in <b>Host apparaat</b> modus werkt. - - - Port/File &Path: -- Poort-/bestands&Pad: -+ &Poort/bestandspad: - - - Displays the IRQ number of this serial port. This should be a whole number between <tt>0</tt> and <tt>255</tt>. Values greater than <tt>15</tt> may only be used if the <b>IO APIC</b> setting is enabled for this virtual machine. -- Geeft het IRQ nummer van deze seriële poort weer. Dit moet een geheel getal zijn tussen <tt>0</tt> en <tt>255</tt>. Waarden groter dan <tt>15</tt> mogen alleen worden gebruikt als de <b>IO APIC</b> instelling aan staat voor deze virtuele machine. -+ Toont het IRQ nummer van deze seriële poort. Dit nummer moet een geheel getal zijn tussen <tt>0</tt> en <tt>255</tt>. Waarden groter dan <tt>15</tt> mogen alleen worden gebruikt als de <b>IO APIC</b> instelling voor deze virtuele machine aan staat. - - - Displays the base I/O port address of this serial port. Valid values are integer numbers in range from <tt>0</tt> to <tt>0xFFFF</tt>. -@@ -3438,15 +3930,15 @@ - UIMachineSettingsSerialPage - - Duplicate port number selected -- Dubbel poortnummer gelecteerd -+ Dubbel poortnummer geselecteerd - - - Port path not specified -- pad naar de poort is niet gespecificeerd -+ Pad naar de poort is niet gespecificeerd - - - Duplicate port path entered -- Dubbel pad is opgegeven voor de poort -+ Er is een dubbel poortpad opgegeven - - - -@@ -3521,7 +4013,7 @@ - - - <nobr>Expand/Collapse&nbsp;Item</nobr> -- <nobr>Item&nbsp;uUitklappen/inklappen</nobr> -+ <nobr>Item&nbsp;Uitklappen/Inklappen</nobr> - - - <nobr>Add&nbsp;Hard&nbsp;Disk</nobr> -@@ -3529,11 +4021,11 @@ - - - <nobr>Add&nbsp;CD/DVD&nbsp;Device</nobr> -- <nobr>Voeg&nbsp;CD/DVD&nbsp;apparaat&nbsp;toe</nobr> -+ <nobr>Voeg&nbsp;CD/DVD&nbsp;speler&nbsp;toe</nobr> - - - <nobr>Add&nbsp;Floppy&nbsp;Device</nobr> -- <nobr>Voeg&nbsp;diskette&nbsp;apparaat&nbsp;toe</nobr> -+ <nobr>Voeg&nbsp;diskette&nbsp;station&nbsp;toe</nobr> - - - No hard disk is selected for <i>%1</i>. -@@ -3541,7 +4033,7 @@ - - - <i>%1</i> uses a medium that is already attached to <i>%2</i>. -- <i>%1</i> gebruikt een medium die al is gekoppeld aan <i>%2</i>. -+ <i>%1</i> gebruikt een medium dat al is gekoppeld aan <i>%2</i>. - - - Add Controller -@@ -3569,7 +4061,7 @@ - - - Add Attachment -- Voeg bijlage toe -+ Voeg aansluiting toe - - - Add Hard Disk -@@ -3577,31 +4069,31 @@ - - - Add CD/DVD Device -- Voeg CD/DVD apparaat toe -+ Voeg CD/DVD speler toe - - - Add Floppy Device -- Voer diskette apparaat toe -+ Voeg diskette station toe - - - Remove Attachment -- Verwijder bijlage -+ Verwijder aansluiting - - - Adds a new controller to the end of the Storage Tree. -- Voeg een nieuwe controller toe aan einde van de opslagboom. -+ Voegt een nieuwe controller toe aan einde van de Opslagboom. - - - Removes the controller highlighted in the Storage Tree. -- Verwijder de controller die oplicht in de opslagboom. -+ Verwijdert de controller die geaccentueerd is in de Opslagboom. - - - Adds a new attachment to the Storage Tree using currently selected controller as parent. -- Voeg een nieuwe bijlage toe aan de opslagboom en gebruik de geselecteerde controller als ouder. -+ Voegt een nieuwe aansluiting toe aan de Opslagboom en gebruikt de geselecteerde controller als ouder. - - - Removes the attachment highlighted in the Storage Tree. -- Verwijderd de bijlage die oplicht in de opslagboom. -+ Verwijdert de aansluiting die geaccentueerd is in de Opslagboom. - - - IDE Controller -@@ -3637,7 +4129,7 @@ - - - Contains all storage controllers for this machine and the virtual images and host drives attached to them. -- Bevat alle opslag controllers voor deze machine en de virtuele images en de gastheer stations die aan gesloten zijn. -+ Bevat alle opslagcontrollers voor deze machine, de virtuele images en de hoststations die aangesloten zijn. - - - Information -@@ -3645,7 +4137,7 @@ - - - The Storage Tree can contain several controllers of different types. This machine currently has no controllers. -- De opslagboom kan verschillende controllers, ook andere soorten, bevatten. De machine heeft nu geen controllers. -+ De Opslagboom kan verschillende controllers van verscheidene types bevatten. Deze machine heeft momenteel geen controllers. - - - Attributes -@@ -3657,15 +4149,15 @@ - - - Changes the name of the storage controller currently selected in the Storage Tree. -- Wijzigt de naam van de opslag controller die nu geselecteerd is in de opslagboom. -+ Wijzigt de naam van de opslagcontroller die momenteel geselecteerd is in de Opslagboom. - - - &Type: -- &Soort: -+ &Type: - - - Selects the sub-type of the storage controller currently selected in the Storage Tree. -- Selecteert het soort opslag controller die nu is geselecteerd in de opslagboom. -+ Selecteert het sub-type van de opslagcontroller die momenteel is geselecteerd in de opslagboom. - - - S&lot: -@@ -3673,8 +4165,8 @@ - - - Selects the slot on the storage controller used by this attachment. The available slots depend on the type of the controller and other attachments on it. -- nakijken wat de vertaling van attachment moet zijn in deze context -- Selecteerd het slot van de opslag controller in gebruik bij deze bijlage. De beschikbaarheid van de slots hangt af van het soort controller verbindingen hier mee. -+ EG - nakijken wat de vertaling van attachment moet zijn in deze context RL - 'aansluiting' lijkt mij correcter dan eerdere vertaling 'bijlage' -+ Selecteert het slot op de opslagcontroller dat gebruikt zal worden door deze aansluiting. De beschikbare de slots hangen af van het type controller en andere betaande aansluitingen daarop. - - - Selects the virtual disk image or the host drive used by this attachment. -@@ -3694,23 +4186,24 @@ - - - When checked, allows the guest to send ATAPI commands directly to the host-drive which makes it possible to use CD/DVD writers connected to the host inside the VM. Note that writing audio CD inside the VM is not yet supported. -- Is de optie aangevinkt dan wordt toegestaan dat de gast direct ATAPI opdrachten verstuurt naar het station van de gastheer. Dit maakt het mogelijk om CD/DVD schrijf stations aan te sluiten op de virtuele machine. Let op het beschrijven van een audio CD is nog niet ondersteund. -+ Aangevinkt wordt toegestaan dat de gast direct ATAPI opdrachten verstuurt naar het station van de host. Dit maakt het mogelijk om CD/DVD schrijfstations op de virtuele machine aan te sluiten. Let op: het beschrijven van een audio-CD wordt nog niet ondersteund. - - - &Passthrough -- &Doorgeven -+ &Passthrough als begrip laten staan -+ &Passthrough - - - Virtual Size: -- Virtuele grote: -+ Virtuele grootte: - - - Actual Size: -- Actuele grote: -+ Actuele grootte: - - - Size: -- Grote: -+ Grootte: - - - Location: -@@ -3726,19 +4219,19 @@ - - - Allows to use host I/O caching capabilities. -- Staat toe om de gastheer I/O caching mogelijkheden te gebruiken. -+ Staat toe host I/O caching-mogelijkheden te gebruiken. - - - Use host I/O cache -- Gebruik gastheer I/O cache -+ Gebruik host I/O cache - - - Add SAS Controller -- Voeg SAS controlertoe -+ Voeg SAS controller toe - - - SAS Controller -- SAS controler -+ SAS controller - - - Storage Controller -@@ -3774,7 +4267,7 @@ - - - Choose a virtual CD/DVD disk or a physical drive to use with the virtual drive. The virtual machine will see a disk inserted into the drive with the data in the file or on the disk in the physical drive as its contents. -- Kies een virtuele CD/DVD schijf of een fysiek station om te gebruiken voor het virtuele station. De virtuele machine zal een schijf, ingebracht in het station, met gegevens in het bestand of op de schijf in het fysieke station, beschouwen als zijn inhoud. -+ Kies een virtuele CD/DVD schijf of een fysiek station om met het virtuele station te gebruiken. De virtuele machine zal een schijf ingebracht in het station, met gegevens in het bestand of op de schijf in het fysieke station, beschouwen als haar inhoud. - - - Set up the virtual CD/DVD drive -@@ -3786,7 +4279,7 @@ - - - Choose a virtual floppy disk or a physical drive to use with the virtual drive. The virtual machine will see a disk inserted into the drive with the data in the file or on the disk in the physical drive as its contents. -- Kies een virtuele diskette of een fysiek station om te gebruiken voor het virtuele station. De virtuele machine zal een schijf, ingebracht in het station, met gegevens in het bestand of op de schijf in het fysieke station, beschouwen als zijn inhoud. -+ Kies een virtuele diskette of een fysiek station om te gebruiken met het virtuele station. De virtuele machine zal een schijf ingebracht in het station, met gegevens in het bestand of op de schijf in het fysieke station, beschouwen als haar inhoud. - - - Set up the virtual floppy drive -@@ -3798,15 +4291,15 @@ - - - Choose a virtual hard disk file... -- kies een virtueel harde schijf bestand... -+ Kies een virtueel harde schijf bestand... - - - Choose a virtual CD/DVD disk file... -- Kies een virtueel CD/DVD bestand... -+ Kies een virtueel CD/DVD schijf bestand... - - - Remove disk from virtual drive -- Verwijder schijf van het virtuele station -+ Verwijder schijf van virtuele station - - - Choose a virtual floppy disk file... -@@ -3814,84 +4307,86 @@ - - - When checked the virtual disk will not be removed when the guest system ejects it. -- -+ Aangevinkt zal de virtuele disk niet worden verwijderd wanneer het gastsysteem het uitwerpt. - - - &Live CD/DVD -- -+ &Live CD/DVD - - - When checked the guest system will see the virtual disk as a solid state device. -- -+ Aangevinkt zal het gastsysteem de virtuele disk beschouwen als een solid-state apparaat. - - - &Solid-state drive -- -+ &Solid-state station - - - Details: -- -+ Details: - - - no name specified for controller at position <b>%1</b>. -- -+ geen naam opgegeven voor controller op positie <b>%1</b>. - - - controller at position <b>%1</b> uses the name that is already used by controller at position <b>%2</b>. -- -+ controller op positie <b>%1</b> gebruikt een naam die al wordt gebruikt door controller op positie <b>%2</b>. - - - no hard disk is selected for <i>%1</i>. -- -+ er is geen harde schijf geselecteerd voor <i>%1</i>. - - - at most one supported - controller -- Op zijn minst één ondersteund -+ Op zijn minst één ondersteund - - - up to %1 supported - controllers -- tot %1 ondersteund -+ tot %1 ondersteund - - - you are currently using more storage controllers than a %1 chipset supports. Please change the chipset type on the System settings page or reduce the number of the following storage controllers on the Storage settings page: %2. -- u gebruikt nu meer opslagcontrolers dan een %1 chipset ondersteund. Wijzig aub het type chipset bij de pagina met systeeminstellingen of verminder het volgende aantal opslagcontrolers bij de pagina met opslaginstellingen: %2. -+ u gebruikt nu meer opslagcontrolers dan een %1 chipset ondersteunt. Wijzig aub het type chipset bij pagina Systeeminstellingen of verminder het aantal van de volgende opslagcontrolers op de pagina Opslaginstellingen: %2. - - - &Port Count: -- -+ &Poorttelling: - - - Selects the port count of the SATA storage controller currently selected in the Storage Tree. This must be at least one more than the highest port number you need to use. -- -+ number is hier aantal -+ Selecteert de poorttelling van de SATA-opslagcontroller die momenteel geselecteerd is in de Opslagboom. Deze moet op zijn minst staan op één meer dan het hoogste poortaantal dat u nodig hebt om te gebruiken. - - - - UIMachineSettingsSystem - - you have assigned more than <b>%1%</b> of your computer's memory (<b>%2</b>) to the virtual machine. Not enough memory is left for your host operating system. Please select a smaller amount. -- u heeft meer dan <b>%1%</b> van u geheugen in fysieke computer (<b>%2</b>) aan de virtuele machin toegewezen. Er blijft onvoldoende geheugen over voor uw gastheer besturingssysteem. Kies voor een lager aantal. -+ alle strings in deze sectie toch maar met hoofdletter beginnen -+ U hebt meer dan <b>%1%</b> van het geheugen van uw fysieke computer (<b>%2</b>) aan de virtuele machine toegewezen. Er blijft zo onvoldoende geheugen voor uw hostbesturingssysteem over. Kies alstublieft een lager aantal. - - - you have assigned more than <b>%1%</b> of your computer's memory (<b>%2</b>) to the virtual machine. There might not be enough memory left for your host operating system. Continue at your own risk. -- u heeft meer dan <b>%1%</b> van u geheugen in fysieke computer (<b>%2</b>) aan de virtuele machin toegewezen. Er blijft onvoldoende geheugen over voor uw gastheer besturingssysteem. Doorgaan is op eigen risico . -+ U hebt meer dan <b>%1%</b> van het geheugen van uw fysieke computer (<b>%2</b>) aan de virtuele machine toegewezen. Er blijft zo onvoldoende geheugen over voor uw hostbesturingssysteem. Doorgaan is geheel op eigen risico. - - - for performance reasons, the number of virtual CPUs attached to the virtual machine may not be more than twice the number of physical CPUs on the host (<b>%1</b>). Please reduce the number of virtual CPUs. -- Voor een goede prestatatie, mag het aantal virtuele CPU's, gekoppeld aan de virtuele machine, niet groter zijn dan twee keer het aantal fysieke CPU's van de gastheer (<b>%1</b>). Verlaag het aantal virtuele CPU's. -+ Voor een goede prestatatie mag het aantal virtuele CPU's gekoppeld aan de virtuele machine niet groter zijn dan twee keer het aantal fysieke CPU's van de host (<b>%1</b>). Verlaag alstublieft het aantal virtuele CPU's. - - - you have assigned more virtual CPUs to the virtual machine than the number of physical CPUs on your host system (<b>%1</b>). This is likely to degrade the performance of your virtual machine. Please consider reducing the number of virtual CPUs. -- u heeft meer virtuele CPU's toegewezen aan de virtuele machine dan het aantal fysieke CPU's in uw gastheer computer (<b>%1</b>). Dit verlaagt de prestaties van uw virtuele machine. Overweeg het aantal virtuele CPU's te verlagen. -+ U hebt meer virtuele CPU's toegewezen aan de virtuele machine dan het aantal fysieke CPU's in uw hostcomputer (<b>%1</b>). Dit verlaagt de prestaties van uw virtuele machine. Overweeg gerust het aantal virtuele CPU's te verlagen. Ik zou het doen. - - - you have assigned more than one virtual CPU to this VM. This will not work unless the IO-APIC feature is also enabled. This will be done automatically when you accept the VM Settings by pressing the OK button. -- u heeft meer dan één virtuele CPU toegewezen aan deze virtuele machine. Dit zal niet eerder werken totdat de IO-APIC optie ook is geactiveerd. Dit gebeurt automatisch als u de VM instellingen accepteerd en op de Ok knop drukt. -+ U hebt meer dan één virtuele CPU toegewezen aan deze virtuele machine. Dit zal niet eerder werken totdat de IO-APIC optie ook is ingeschakeld. Dit gebeurt automatisch als u de VM instellingen accepteert door op de OK-knop te klikken. - - - you have assigned more than one virtual CPU to this VM. This will not work unless hardware virtualization (VT-x/AMD-V) is also enabled. This will be done automatically when you accept the VM Settings by pressing the OK button. -- u heeft meer dan één virtuele CPU toegewezen aan deze virtuele machine. Dit zal niet eerder werken totdat de hardware virtualisering (VT-x/AMD-V) ook is geactiveerd. Dit gebeurt automatisch als u de VM instellingen accepteerd en op de Ok knop drukt. -+ U hebt meer dan één virtuele CPU toegewezen aan deze virtuele machine. Dit zal niet eerder werken totdat de hardware virtualisering (VT-x/AMD-V) ook is ingeschakeld. Dit gebeurt automatisch als u de VM instellingen accepteert door op de OK-knop te klikken. - - - <qt>%1&nbsp;MB</qt> -@@ -3913,11 +4408,11 @@ - - - Base &Memory: -- &Basis geheugen: -+ &Basisgeheugen: - - - Controls the amount of memory provided to the virtual machine. If you assign too much, the machine might not start. -- Controleert de hoeveelheid geheugen geleverd aan de virtuele machine. Wijst u teveel toe dan kan het zijn dat de machine niet opstart. -+ Beheert de hoeveelheid geheugen geleverd aan de virtuele machine. Wijst u teveel toe, dan kan het zijn dat de machine niet opstart. - - - MB -@@ -3925,27 +4420,27 @@ - - - &Boot Order: -- &Opstart volgorde: -+ &Opstartvolgorde: - - - Defines the boot device order. Use the checkboxes on the left to enable or disable individual boot devices. Move items up and down to change the device order. -- Legt de opstart volgorde vast. Gebruik de keuzevakjes aan de linker zijde om individuele opstart apparaten te activeren of te deactiveren. Verplaats items naar boven of beneden om de opstart volgorde te wijzigen. -+ Definieert de opstartvolgorde. Gebruik de keuzevakjes aan de linker zijde om individuele opstartapparaten te activeren of te deactiveren. Verplaats items naar boven of beneden om de opstartvolgorde te wijzigen. - - - Move Down (Ctrl-Down) -- Naarbeneden (Ctrl-neer) -+ Naar beneden (Ctrl-Down) - - - Moves the selected boot device down. -- Verplaats het geselecteerde opstart apparaat naar beneden. -+ Verplaats het geselecteerde opstartapparaat naar beneden. - - - Move Up (Ctrl-Up) -- Naar boven (Ctrl+op) -+ Naar boven (Ctrl+Up) - - - Moves the selected boot device up. -- Verplaats het geselecteerde opstart apparaat naar boven. -+ Verplaats het geselecteerde opstartapparaat naar boven. - - - Extended Features: -@@ -3961,7 +4456,7 @@ - - - When checked, the virtual machine will support the Input Output APIC (IO APIC), which may slightly decrease performance. <b>Note:</b> don't disable this feature after having installed a Windows guest operating system! -- Is deze optie aangevinkt dan zal de virtuele machine de invoer/uitvoer APIC (IO APIC) ondersteunen, dit de prestatie negatief beïnvloeden. <b>Let op:</b> deactiveer deze optie niet nadat u het gast besturingssysteem heeft geïnstalleerd! -+ Aangevinkt zal de virtuele machine de Invoer/Uitvoer APIC (IO APIC) ondersteunen. Dit zal de prestatie negatief beïnvloeden. <b>Let op:</b> deactiveer deze optie niet nadat u het gastbesturingssysteem hebt geïnstalleerd! - - - Enable &IO APIC -@@ -3981,7 +4476,7 @@ - - - When checked, the Physical Address Extension (PAE) feature of the host CPU will be exposed to the virtual machine. -- Is deze optie aangevinkt dan zal de fysieke adres uitbreiding (PAE) optie van de fysieke CPU zichtbaar worden voor de virtuele machine. -+ Aangevinkt zal de fysieke adresuitbreiding (PAE) optie van de fysieke CPU voor de virtuele machine zichtbaar worden. - - - Enable PA&E/NX -@@ -3997,7 +4492,7 @@ - - - When checked, the virtual machine will try to make use of the host CPU's hardware virtualization extensions such as Intel VT-x and AMD-V. -- Is deze optie aangevinkt dan zal de virtuele machine proberen gebruikt te maken van de hardware virtualiserings uitbreiding, zoals Intel VT-x en AMD-V. -+ Aangevinkt zal de virtuele machine proberen gebruikt te maken van hardware virtualiseringsextenties, zoals Intel VT-x en AMD-V. - - - Enable &VT-x/AMD-V -@@ -4005,7 +4500,7 @@ - - - When checked, the virtual machine will try to make use of the nested paging extension of Intel VT-x and AMD-V. -- Is deze optie aangevinkt dan zal de virtuele machine proberen gebruikt te maken van de geneste paging uitbreiding van VT-x of AMD-V. -+ Aangevinkt zal de virtuele machine proberen gebruikt te maken van geneste paging extenties van VT-x of AMD-V. - - - Enable Nested Pa&ging -@@ -4018,7 +4513,7 @@ - - - When checked, the guest will support the Extended Firmware Interface (EFI), which is required to boot certain guest OSes. Non-EFI aware OSes will not be able to boot if this option is activated. -- Is deze optie aangevinkt dan zal de gast de Extended Firmware Interface (EFI) ondersteunen, deze is verplicht om bepaalde gast besturingssystemen te kunnen opstarten. Besturingssystemen die EFI niet ondersteunen kunnen niet opstarten als deze optie aan staat. -+ Aangevinkt zal de gast de Extended Firmware Interface (EFI) ondersteunen. Deze is verplicht om bepaalde gastbesturingssystemen te kunnen opstarten. Besturingssystemen die EFI niet ondersteunen kunnen niet opstarten als deze optie aan staat. - - - Enable &EFI (special OSes only) -@@ -4026,7 +4521,7 @@ - - - If checked, the RTC device will report the time in UTC, otherwise in local (host) time. Unix usually expects the hardware clock to be set to UTC. -- Is deze optie aangevinkt dan zal het RTC apparaat de tijd in UTC formaat rapporteren, anders in locale (gastheer) tijd. Unix verwachte normaal gesproken dat de klok op UTC staat. -+ Aangevinkt zal het RTC apparaat de tijd in UTC formaat rapporteren; anders in locale (host) tijd. Unix verwacht normaal gesproken dat de klok op UTC staat. - - - Hardware clock in &UTC time -@@ -4034,11 +4529,11 @@ - - - Controls the number of virtual CPUs in the virtual machine. You need hardware virtualization support on your host system to use more than one virtual CPU. -- Controleert het aantal virtuale CPUs in de virtuale machine. U hebt hardware virtualisatie ondersteuningn nodig op uw gastheersysteem om meer dan één virtuale CPU te gebruiken. -+ Beheert het aantal virtuele CPUs in de virtuele machine. U hebt hardware virtualisatie ondersteuning nodig op uw hostsysteem om meer dan één virtuele CPU te kunnen gebruiken. - - - If checked, an absolute pointing device (a USB tablet) will be supported. Otherwise, only a standard PS/2 mouse will be emulated. -- Is deze optie aangevinkt dan wordt een USB tablet ondersteund. Anders wordt alleen een standaard PS/2 muis geëmulateerd. -+ Aangevinkt wordt een USB tablet ondersteund. Anders wordt alleen een standaard PS/2 muis geëmuleerd. - - - Enable &absolute pointing device -@@ -4050,7 +4545,7 @@ - - - Selects the chipset to be emulated in this virtual machine. Note that the ICH9 chipset emulation is experimental and not recommended except for guest systems (such as Mac OS X) which require it. -- Bepaals welke soort chipset door deze VM wordt gebruikt. -+ Selecteert de chipset die in deze VM moet worden geëmuleerd. Besef dat de ICH9 chipset-emulatie experimenteel is en niet wordt aangeraden, behalve voor gastsystemen (zoals Mac OS X) die niet zonder kunnen. - - - you have selected emulation of an ICH9 chipset in this machine. This requires the IO-APIC feature to be enabled. This will be done automatically when you accept the VM Settings by pressing the OK button. -@@ -4058,33 +4553,35 @@ - - - &Execution Cap: -- -+ RL: in de lijn van processor capacity /onvertaald laten lijkt me, wordt uitgelegd in de volgende string -+ &Execution Cap: - - - Limits the amount of time that each virtual CPU is allowed to run for. Each virtual CPU will be allowed to use up to this percentage of the processing time available on one physical CPU. The execution cap can be disabled by setting it to 100%. Setting the cap too low can make the machine feel slow to respond. -- -+ timeslicing dus -+ Beperkt de tijdsduur waarbinnen instructies door elke virtuele CPU kunnen worden uitgevoerd. Elke virtuele CPU zal dit percentage van de beschikbare processortijd worden toegestaan op één fysieke CPU. De execution cap kan worden uitgeschakeld door deze in te stellen op 100%. De cap te laag zetten kan de indruk wekken dat de machine langzaam reageert. - - - you have set the processor execution cap to a low value. This can make the machine feel slow to respond. -- -+ U hebt de processor execution cap op een te lage waarde ingesteld. Dit kan de indruk wekken dat de machine langzaam reageert. - - - you have enabled a USB HID (Human Interface Device). This will not work unless USB emulation is also enabled. This will be done automatically when you accept the VM Settings by pressing the OK button. -- U hebt een USB HID (Human Interface Device) geactiveerd. Deze zal niet werken zolang de USB emulatie niet is geactiveerd. Dit wordt automatisch gedaan als u de VM instellingen accepteerd door op de Ok knop te klikken. -+ U hebt een USB HID (Human Interface Device) ingeschakeld. Deze zal niet werken zolang de USB-emulatie niet is ingeschakeld. Dit wordt automatisch gedaan als u de VM instellingen accepteert door op de OK-knop te klikken. - - - <qt>%1%</qt> - Min CPU execution cap in % -- -+ <qt>%1%</qt> - - - <qt>%1%</qt> - Max CPU execution cap in % -- -+ <qt>%1%</qt> - - - you have assigned ICH9 chipset type to this VM. It will not work properly unless the IO-APIC feature is also enabled. This will be done automatically when you accept the VM Settings by pressing the OK button. -- -+ U hebt het ICH9 chipset type aan deze VM toegewezen. Dit zal niet eerder naar behoren werken totdat de IO-APIC feature eveneens is ingeschakeld. Dit gebeurt automatisch als u de VM instellingen accepteert door op de OK knop te klikken. - - - -@@ -4107,7 +4604,7 @@ - - - &Move Filter Up -- Verplaats filter &Omhoog -+ Verplaats filter o&mhoog - - - M&ove Filter Down -@@ -4119,7 +4616,7 @@ - - - Adds a new USB filter with all fields set to the values of the selected USB device attached to the host PC. -- Voegt een nieuw USB filter toe waarbij de velden de waarden van het geselecteerde USB apparaat, aangesloten op de fysieke PC, overnemen. -+ Voegt een nieuw USB filter toe waarbij de velden de waarden van het geselecteerde USB apparaat aangesloten op de fysieke PC overnemen. - - - Edits the selected USB filter. -@@ -4127,15 +4624,15 @@ - - - Removes the selected USB filter. -- Verwijderd geselecteerde USB filter. -+ Verwijdert geselecteerd USB filter. - - - Moves the selected USB filter up. -- Verplaatst geselecteerde USB filter omhoog. -+ Verplaatst geselecteerd USB filter omhoog. - - - Moves the selected USB filter down. -- Verplaats geselecteerde USB filter naar beneden. -+ Verplaats geselecteerd USB filter naar beneden. - - - New Filter %1 -@@ -4144,19 +4641,19 @@ - - - When checked, enables the virtual USB controller of this machine. -- Is deze optie aangevinkt dan wordt de virtuele USB controler, op deze machine, geactiveerd. -+ Aangevinkt wordt de virtuele USB-controller van deze machine ingeschakeld. - - - Enable &USB Controller -- &USB controler activeren -+ &USB controller activeren - - - When checked, enables the virtual USB EHCI controller of this machine. The USB EHCI controller provides USB 2.0 support. -- Is deze optie aangevinkt dan zal de virtuele USB EHCI controler, van deze machine, geactiveerd worden. De USB EHCI controler levert ondersteuning voor USB 2.0. -+ Aangevinkt zal de virtuele USB EHCI controller van deze machine worden ingeschakeld. De USB EHCI controller levert ondersteuning voor USB 2.0. - - - Enable USB 2.0 (E&HCI) Controller -- USB &2.0 controler activeren -+ USB &2.0 controller activeren - - - USB Device &Filters -@@ -4164,7 +4661,7 @@ - - - Lists all USB filters of this machine. The checkbox to the left defines whether the particular filter is enabled or not. Use the context menu or buttons to the right to add or remove USB filters. -- Geeft een lijst weer met alle USB filters op deze machine. Het keuzevakje aan de linkerkant bepaald of het specifieke filter geactiveerd is of niet. Gebruik het context menu of de knoppen aan de rechterzijde om USB filters toe te voegen of te verwijderen. -+ Toont een lijst met alle USB filters van deze machine. Het keuzevakje aan de linkerkant bepaalt of het specifieke filter ingeschakeld is of niet. Gebruik het contextmenu of de knoppen aan de rechterzijde om USB filters toe te voegen of te verwijderen. - - - [filter] -@@ -4208,7 +4705,7 @@ - - <nobr>State: %1</nobr> - USB filter tooltip -- <nobr>Status: %1</nobr> -+ <nobr>Staat: %1</nobr> - - - USB 2.0 is currently enabled for this virtual machine. However this requires the <b>%1</b> to be installed. Please install the Extension Pack from the VirtualBox download site. After this you will be able to re-enable USB 2.0. It will be disabled in the meantime unless you cancel the current settings changes. -@@ -4216,7 +4713,8 @@ - - - USB 2.0 is currently enabled for this virtual machine. However, this requires the <b>%1</b> to be installed. Please install the Extension Pack from the VirtualBox download site. After this you will be able to re-enable USB 2.0. It will be disabled in the meantime unless you cancel the current settings changes. -- -+ laatste voor de duidelijkheid er zelf bij gezet, dichtersvrijheid ;) -+ USB 2.0 is voor deze virtuele machine momenteel ingeschakeld. Dit vereist echter dat <b>%1</b> wordt geïnstalleerd. Installeer het Extention Pack van de VirtualBox-downloadsite. Na installatie zult u in staat zijn USB 2.0 weer in te schakelen. In de tussentijd zal USB 2.0 zijn uitgeschakeld, tenzij u de verandering van deze instelling annuleert (en daarmee dus niet kiest voor USB 2.0). - - - -@@ -4224,6 +4722,7 @@ - - Any - remote -+ EG - zie strings hieronder: 'any' betekent hier zowel de fysieke als de virtuele kant - Beide - - -@@ -4250,7 +4749,7 @@ - - - Defines the vendor ID filter. The <i>exact match</i> string format is <tt>XXXX</tt> where <tt>X</tt> is a hexadecimal digit. An empty string will match any value. -- Bepaald het filter voor het ID van de leverancier. Het <i>precieze</i> formaat is<tt>XXXX</tt> waarbij <tt>X</tt> een hexadecimaal getal is. Een leeg veld zal met elke waarde overeenkomen. -+ Bepaalt het filter voor het ID van de leverancier. Het <i>precieze</i> formaat is<tt>XXXX</tt> waarbij <tt>X</tt> een hexadecimaal getal is. Een leeg veld zal met elke waarde overeenkomen. - - - &Product ID: -@@ -4258,7 +4757,7 @@ - - - Defines the product ID filter. The <i>exact match</i> string format is <tt>XXXX</tt> where <tt>X</tt> is a hexadecimal digit. An empty string will match any value. -- Bepaald het filter voor het ID van de product. Het <i>precieze</i> formaat is<tt>XXXX</tt> waarbij <tt>X</tt> een hexadecimaal getal is. Een leeg veld zal met elke waarde overeenkomen. -+ Bepaalt het filter voor het ID van het product. Het <i>precieze</i> formaat is<tt>XXXX</tt> waarbij <tt>X</tt> een hexadecimaal getal is. Een leeg veld zal met elke waarde overeenkomen. - - - &Revision: -@@ -4266,7 +4765,7 @@ - - - Defines the revision number filter. The <i>exact match</i> string format is <tt>IIFF</tt> where <tt>I</tt> is a decimal digit of the integer part and <tt>F</tt> is a decimal digit of the fractional part. An empty string will match any value. -- Bepaald het filter voor het revisie nummer. Het <i>precieze</i> formaat is<tt>IIFF</</tt> waarbij <tt>I</tt> een geheel getal is en <tt>F</tt> is getal achter de komma. Een leeg veld zal met elke waarde overeenkomen. -+ Bepaalt het filter voor het revisienummer. Het <i>precieze</i> formaat is<tt>IIFF</</tt> waarbij <tt>I</tt> een geheel getal is en <tt>F</tt> een getal achter de komma. Een leeg veld zal met elke waarde overeenkomen. - - - &Manufacturer: -@@ -4274,7 +4773,7 @@ - - - Defines the manufacturer filter as an <i>exact match</i> string. An empty string will match any value. -- Bepaald het filter voor de fabrikant als een <i>exacte overeenkomst</i>. Een leeg veld zal met elke waarde overeenkomen. -+ Bepaalt het filter voor de fabrikant als een <i>exacte overeenkomst</i>. Een leeg veld zal met elke waarde overeenkomen. - - - Pro&duct: -@@ -4282,7 +4781,7 @@ - - - Defines the product name filter as an <i>exact match</i> string. An empty string will match any value. -- Bepaald het filter voor de productnaam als een <i>exacte overeenkomst</i>. Een leeg veld zal met elke waarde overeenkomen. -+ Bepaalt het filter voor de productnaam als een <i>exacte overeenkomst</i>. Een leeg veld zal met elke waarde overeenkomen. - - - &Serial No.: -@@ -4290,7 +4789,7 @@ - - - Defines the serial number filter as an <i>exact match</i> string. An empty string will match any value. -- Bepaald het filter voor het serienummer als een <i>exacte overeenkomst</i>. Een leeg veld zal met elke waarde overeenkomen. -+ Bepaalt het filter voor het serienummer als een <i>exacte overeenkomst</i>. Een leeg veld zal met elke waarde overeenkomen. - - - Por&t: -@@ -4298,7 +4797,7 @@ - - - Defines the host USB port filter as an <i>exact match</i> string. An empty string will match any value. -- Bepaald het filter voor de fysieke USB poort als een <i>exacte overeenkomst</i>. Een leeg veld zal met elke waarde overeenkomen. -+ Bepaalt het filter voor de fysieke USB poort als een <i>exacte overeenkomst</i>. Een leeg veld zal met elke waarde overeenkomen. - - - R&emote: -@@ -4306,7 +4805,7 @@ - - - Defines whether this filter applies to USB devices attached locally to the host computer (<i>No</i>), to a VRDP client's computer (<i>Yes</i>), or both (<i>Any</i>). -- Bepaald of dit filter werkt voor USB apparaten lokaal gekoppeld aan de fysieke computer. (<i>Nee</i>) voor een VRDP computer (<i>Ja</i>) of beide (<i>Beide</i>). -+ Bepaalt of dit filter werkt voor USB apparaten die lokaal gekoppeld zijn aan: de fysieke computer. (<i>Nee</i>), een VRDP computer (<i>Ja</i>) of beide (<i>Beide</i>). - - - &Action: -@@ -4314,7 +4813,7 @@ - - - Defines an action performed by the host computer when a matching device is attached: give it up to the host OS (<i>Ignore</i>) or grab it for later usage by virtual machines (<i>Hold</i>). -- Bepaald de actie die de gastheer computer uitvoert als een overeenkomstig apparaat wordt aangesloten: geef het aan het gastheer besturingssysteem (<i>negeren</i>) of pak het op voor toekomstig gebruik door virtuele machines (<i>Vasthouden</i>). -+ Bepaalt de actie die de hostcomputer uitvoert als een passend apparaat wordt aangesloten: geef het door aan het hostbesturingssysteem (<i>Negeren</i>) of pak het op voor eventueel later gebruik door virtuele machines (<i>Vasthouden</i>). - - - USB Filter Details -@@ -4325,22 +4824,22 @@ - UIMachineWindowNormal - - Shows the currently assigned Host key.<br>This key, when pressed alone, toggles the keyboard and mouse capture state. It can also be used in combination with other keys to quickly perform actions from the main menu. -- Geeft de nu toegekende gastheer toets weer.<br>Door alleen deze toets aan te raken wordt de status van het toetsenbord en de muis omgewisseld.De toets wordt ook in combinatie met andere toetsen gebruikt om snel acties uit het hoofdmenu uit te voeren. -+ Toont de huidige Hosttoets.<br>Door alleen deze toets in te drukken wordt de status van het toetsenbord en de muis omgewisseld.De toets wordt ook in combinatie met andere toetsen gebruikt om snelacties uit het hoofdmenu uit te voeren. - - - - UIMediumTypeChangeDialog - - Modify medium attributes -- -+ Bewerk medium attributen - - - <p>You are about to change the attributes of the virtual disk located in <b>%1</b>.</p><p>Please choose one of the following medium types and press <b>%2</b> to proceed or <b>%3</b> otherwise.</p> -- -+ <p>U staat op het punt de attributen van de virtuele schijf op plek <b>%1</b> te veranderen.</p><p>Kies één van de volgende media medium types en druk op <b>%2</b> om door te gaan of <b>%3</b> anders.</p> - - - Choose medium type: -- -+ Kies medium type: - - - -@@ -4353,7 +4852,7 @@ - - VirtualBox - Question - msg box title -- VirtualBox -vraag -+ VirtualBox -Vraag - - - VirtualBox - Warning -@@ -4373,11 +4872,11 @@ - - Do not show this message again - msg box flag -- Geef deze boodschap niet opnieuw weer -+ Geef deze boodschap niet opnieuw - - - The following files already exist:<br /><br />%1<br /><br />Are you sure you want to replace them? Replacing them will overwrite their contents. -- De volgende bestanden bestaal al: <br/><br/>%1<br/><br/>Weet u zeker dat u deze wil vervangen? Door deze te vervangen overschrijft u de inhoud. -+ De volgende bestanden bestaan al: <br/><br/>%1<br/><br/>Weet u zeker dat u deze wilt vervangen? Door deze te vervangen overschrijft u de inhoud. - - - You are running a prerelease version of VirtualBox. This version is not suitable for production use. -@@ -4385,11 +4884,11 @@ - - - Failed to open <tt>%1</tt>. Make sure your desktop environment can properly handle URLs of this type. -- Het is niet gelukt <tt>%1</tt> te openen. Verzeker u ervan dat uw bureaublad omgeving op een goede wijze met URL's van dit soort om kan gaan. -+ Het is niet gelukt <tt>%1</tt> te openen. Zorg ervoor dat uw bureaubladomgeving op een goede wijze met URL's van dit soort kan omgaan. - - - <p>Failed to initialize COM or to find the VirtualBox COM server. Most likely, the VirtualBox server is not running or failed to start.</p><p>The application will now terminate.</p> -- <p>Het is niet gelukt de COM op te zetten of de VirtualBox COM server is niet gevonden. Waarschijnlijk draait de VirtualBox server niet of lukt het niet deze op te starten.</p><p>Het programma wordt nu afgesloten.</p> -+ <p>Het is niet gelukt COM te initialiseren of de VirtualBox COM-server is niet gevonden. Waarschijnlijk draait de VirtualBox-server niet of lukt het niet deze op te starten.</p><p>Het programma wordt nu afgesloten.</p> - - - <p>Failed to create the VirtualBox COM object.</p><p>The application will now terminate.</p> -@@ -4401,7 +4900,7 @@ - - - Failed to access the USB subsystem. -- Het is niet gelukt om toegang naar het USB subsysteem te krijgen. -+ Het is niet gelukt om toegang tot het USB subsysteem te krijgen. - - - Failed to create a new virtual machine. -@@ -4413,7 +4912,7 @@ - - - Failed to apply the settings to the virtual machine <b>%1</b>. -- Het is niet gelukt de eigenschappen aan virtuele machine <b>%1</b> toe te kennen. -+ Het is niet gelukt de instellingen aan virtuele machine <b>%1</b> toe te kennen. - - - Failed to start the virtual machine <b>%1</b>. -@@ -4421,7 +4920,7 @@ - - - Failed to pause the execution of the virtual machine <b>%1</b>. -- Het is niet gelukt virtuele machine<b>%1</b> te pauseren. -+ Het is niet gelukt virtuele machine <b>%1</b> te pauzeren. - - - Failed to resume the execution of the virtual machine <b>%1</b>. -@@ -4429,7 +4928,7 @@ - - - Failed to save the state of the virtual machine <b>%1</b>. -- Het is niet gelukt de status van virtuele machine <b>%1</b> op te slaan. -+ Het is niet gelukt de staat van virtuele machine <b>%1</b> op te slaan. - - - Failed to create a snapshot of the virtual machine <b>%1</b>. -@@ -4437,7 +4936,7 @@ - - - Failed to stop the virtual machine <b>%1</b>. -- Het is niet gelukt virtuele machine<b>%1</b> te stoppen. -+ Het is niet gelukt virtuele machine <b>%1</b> te stoppen. - - - Failed to remove the virtual machine <b>%1</b>. -@@ -4445,11 +4944,11 @@ - - - Failed to discard the saved state of the virtual machine <b>%1</b>. -- Het is niet gelukt de opgeslagen status van virtuele machine <b>%1</b> weg te gooien. -+ Het is niet gelukt de opgeslagen staat van virtuele machine <b>%1</b> weg te gooien. - - - <p>VT-x/AMD-V hardware acceleration has been enabled, but is not operational. Your 64-bit guest will fail to detect a 64-bit CPU and will not be able to boot.</p><p>Please ensure that you have enabled VT-x/AMD-V properly in the BIOS of your host computer.</p> -- <p>De VT-x/AMD-V hardware versnelling is geactiveerd maar niet operationeel. Uw 64-Bit gast kan de 64 Bit CPU niet herkennen en zal dus niet opstarten.</p><p>Verzeker u ervan dat de VT-x/AMD-V instelling correct is aangezet in de BIOS van uw fysieke computer.</p> -+ <p>De VT-x/AMD-V hardwareversnelling is ingeschakeld maar niet operationeel. Uw 64-Bit gast kan de 64 Bit CPU niet herkennen en zal dus niet opstarten.</p><p>Zorg er voor dat de VT-x/AMD-V instelling in de BIOS van uw fysieke computer correct is aangezet.</p> - - - Failed to discard the snapshot <b>%1</b> of the virtual machine <b>%2</b>. -@@ -4465,7 +4964,7 @@ - - - There is no virtual machine named <b>%1</b>. -- Een virtuele machine met deze naam bestaat niet <b>%1</b>. -+ Een virtuele machine met de naam <b>%1</b> bestaat niet. - - - <p>Are you sure you want to permanently delete the virtual machine <b>%1</b>?</p><p>This operation cannot be undone.</p> -@@ -4477,7 +4976,7 @@ - - - <p>Are you sure you want to discard the saved state of the virtual machine <b>%1</b>?</p><p>This operation is equivalent to resetting or powering off the machine without doing a proper shutdown of the guest OS.</p> -- <p>Weet u zeker dat u de opgeslagen status van virtuele machine <b>%1</b> wilt weggooien?</p><p>Deze actie staat gelijk aan het uitzetten van de machine zonder het gast besturingssysteem netjes af te sluiten.</p> -+ <p>Weet u zeker dat u de opgeslagen staat van virtuele machine <b>%1</b> wilt weggooien?</p><p>Deze actie staat gelijk aan het uitzetten van de machine zonder het gastbesturingssysteem netjes af te sluiten.</p> - - - <p>There are hard disks attached to ports of the additional controller. If you disable the additional controller, all these hard disks will be automatically detached.</p><p>Are you sure you want to disable the additional controller?</p> -@@ -4493,11 +4992,11 @@ - - - Failed to open a session for the virtual machine <b>%1</b>. -- Het is niet gelukt een sessie aan te maken voor virtuele machine <b>%1</b>. -+ Het is niet gelukt een sessie te openen voor virtuele machine <b>%1</b>. - - - <p>Deleting this host-only network will remove the host-only interface this network is based on. Do you want to remove the (host-only network) interface <nobr><b>%1</b>?</nobr></p><p><b>Note:</b> this interface may be in use by one or more virtual network adapters belonging to one of your VMs. After it is removed, these adapters will no longer be usable until you correct their settings by either choosing a different interface name or a different adapter attachment type.</p> -- <p>Verwijderen van dit host-only netwerk zal leiden tot het verwijderen van de host only interface waarop dit netwerk is gebaseerd. Wilt u deze (host-only netwerk) interface <nobr><b>%1</b></nobr> verwijderen?</p><p><b>Let op:</b> Deze interface wordt mogelijk door meerdere virtuele netwerk adapters, van uw virtuele machines, gebruikt. Nadat deze interface is verwijderd zullen de adapters niet meer bruikbaar zijn, tenzij u de instellingen corrigeert door of een andere interface naam of een andere soort adapter te kiezen.</p> -+ <p>Verwijderen van dit host-only netwerk zal leiden tot het verwijderen van de host-only interface waarop dit netwerk is gebaseerd. Wilt u deze (host-only netwerk) interface <nobr><b>%1</b></nobr> verwijderen?</p><p><b>Let op:</b> Deze interface wordt mogelijk door meerdere virtuele netwerkadapters van uw virtuele machines gebruikt. Nadat deze interface is verwijderd zullen de adapters niet meer bruikbaar zijn, tenzij u de instellingen corrigeert door hetzij een andere interfacenaam hetzij een andere soort adapter te kiezen.</p> - - - Failed to remove the host network interface <b>%1</b>. -@@ -4513,37 +5012,37 @@ - - - Failed to create the shared folder <b>%1</b> (pointing to <nobr><b>%2</b></nobr>) for the virtual machine <b>%3</b>. -- Het is niet gelukt om gedeelde map <b>%1</b> (die verwijst naar <nobr><b>%2</b></nobr>) aan te maken voor virtuale machine <b>%3</b>. -+ Het is niet gelukt om gedeelde map <b>%1</b> (verwijzend naar <nobr><b>%2</b></nobr>) aan te maken voor virtuele machine <b>%3</b>. - - - Failed to remove the shared folder <b>%1</b> (pointing to <nobr><b>%2</b></nobr>) from the virtual machine <b>%3</b>. -- Het is niet gelukt om gedeelde map <b>%1</b> (die verwijst naar <nobr><b>%2</b></nobr>) te verwijderen van virtuale machine <b>%3</b>. -+ Het is niet gelukt om gedeelde map <b>%1</b> (verwijzend naar <nobr><b>%2</b></nobr>) te verwijderen van virtuele machine <b>%3</b>. - - - <p>The Virtual Machine reports that the guest OS does not support <b>mouse pointer integration</b> in the current video mode. You need to capture the mouse (by clicking over the VM display or pressing the host key) in order to use the mouse inside the guest OS.</p> -- <p>De virtuale machine rapporteert dat het gast besturingssysteem geen <b>muis integraten</b> ondersteunt in de huidige video modus. U moet de muis vangen, door te klikken in het venster van de virtuale machine of door te drukken op de gastheer toets, om deze te kunnen gebruiken in het gast besturingssyteem.</p> -+ <p>De virtuele machine rapporteert dat het gastbesturingssysteem geen <b>muisintegratie</b> ondersteunt in de huidige videomodus. U moet de muis (in)vangen door te klikken in het venster van de virtuele machine of door te drukken op de Hosttoets om de muis te kunnen gebruiken in het gastbesturingssysteem.</p> - - - <p>The Virtual Machine is currently in the <b>Paused</b> state and not able to see any keyboard or mouse input. If you want to continue to work inside the VM, you need to resume it by selecting the corresponding action from the menu bar.</p> -- <p>De virtuale machine is nu in de <b>gepauseerde</b> toestand en accepteert daarom geen invoer van het toetsenbord of de muis. Wilt u doorgaan met werken in deze virtuale machine dan moet u deze activeren via de overeenkomstige actie in de menubalk.</p> -+ <p>De virtuele machine is nu in <b>Pauze</b> stand en accepteert daarom geen invoer van toetsenbord of muis. Indien u wilt doorgaan met werken binnen deze virtuele machine moet u deze machine activeren via de checkbox menu-optie hiervoor in de menubalk.</p> - - - <p>Cannot run VirtualBox in <i>VM Selector</i> mode due to local restrictions.</p><p>The application will now terminate.</p> -- <p>VirtualBox kan niet draaien in <i>VM Selector modus</i> door locake restricties.</p><p>Het programma sluit zich af.</p> -+ <p>VirtualBox kan niet draaien in <i>VM Selector modus</i> door lokale restricties.</p><p>Het programma sluit zich nu af.</p> - - - Failed to create appliance. -- Het is niet gelukt om een appliance aan te maken. -+ Appliance aanmaken mislukt. - - - <nobr>Fatal Error</nobr> - runtime error info -- <nobr>Fatale fout</nobr> -+ <nobr>Fatale Fout</nobr> - - - <nobr>Non-Fatal Error</nobr> - runtime error info -- <nobr>Normale fout</nobr> -+ <nobr>Niet-fatale Fout</nobr> - - - <nobr>Warning</nobr> -@@ -4558,24 +5057,24 @@ - - Severity: - runtime error info -- nauwgezetheid: -+ Ernst: - - - <p>A fatal error has occurred during virtual machine execution! The virtual machine will be powered off. Please copy the following error message using the clipboard to help diagnose the problem:</p> -- <p>Een fatale fout is opgetreden tijdens de werking van de virtuale machine! De virtuale machine wordt uitgezet. Het is zinvol om de volgende foutboodschap te kopieren, wat helpt bij het nader onderzoeken van het probleem:</p> -+ <p>Een fatale fout is opgetreden tijdens de werking van de virtuele machine! De virtuele machine zal worden uitgezet. Het is zinvol om de volgende foutboodschap naar het klembord te kopieren, wat helpt bij diagnose van het probleem:</p> - - - <p>An error has occurred during virtual machine execution! The error details are shown below. You may try to correct the error and resume the virtual machine execution.</p> -- <p>een fout is opgetreden tijdens de werking van de virtuale machine! De details van de fout worden hieronder weergegeven. U kunt proberen de beschreven fout te herstellen en de uitvoering van de virtuale machine.voort te zetten.</p> -+ <p>Een fout is opgetreden tijdens de werking van de virtuele machine! De details van de fout worden hieronder weergegeven. U kunt proberen de beschreven fout te herstellen en de uitvoering van de virtuele machine vervolgens.voort te zetten.</p> - - - <p>The virtual machine execution may run into an error condition as described below. We suggest that you take an appropriate action to avert the error.</p> -- <p>De uitvoering van de virtuale machine.kan tegen de onderstaande foutsituatie aanlopen. U kunt de boodschap negeren maar het is verstandig om een geschikte actie te ondernemen om er zeker van te zijn deze fout niet zal optreden. </p> -+ <p>De uitvoering van de virtuele machine kan tegen de onderstaande foutsituatie aanlopen. U kunt de boodschap negeren maar het is verstandig om een geschikte actie te ondernemen om er zeker van te zijn dat deze fout niet zal optreden.</p> - - - Result&nbsp;Code: - error info -- Resultaat&nbsp;code: -+ Resultaat&nbsp;Code: - - - Component: -@@ -4590,22 +5089,22 @@ - - Callee: - error info -- ? -+ Eigenlijk: Aangeroepene: proces/functie e.d.dat wordt aangeroepen, callee laten staan voor probleemoplossing via internet - Callee: - - - Callee&nbsp;RC: - error info -- / -- Callee&nbsp;RC: -+ Eigenlijk: Aangeroepene: proces/functie e.d.dat wordt aangeroepen, callee laten staan voor probleemoplossing via internet -+ Callee&nbsp;RC: - - - <p>Could not find a language file for the language <b>%1</b> in the directory <b><nobr>%2</nobr></b>.</p><p>The language will be temporarily reset to the system default language. Please go to the <b>Preferences</b> dialog which you can open from the <b>File</b> menu of the main VirtualBox window, and select one of the existing languages on the <b>Language</b> page.</p> -- <p>Kan geen taalbestand vinden voor de taal <b>%1</b> in de folder <b><nobr>%2</nobr></b>.</p><p>De taal wordt tijdelijk terug gezet op de systeem standaard. Ga naar de <b>voorkeuren</b> dialoog, deze is te bereiken via het menu in het VirtualBox hoofdscherm, en selecteer een van de bestaande talen uit de pagina <b>talen</b>.</p> -+ <p>Kan geen taalbestand vinden voor de taal <b>%1</b> in de folder <b><nobr>%2</nobr></b>.</p><p>De taal wordt tijdelijk teruggezet op de systeemstandaard. Ga naar <b>Voorkeuren</b> dialoog, deze is te bereiken via het menu in het VirtualBox hoofdscherm. Selecteer één van de aanwezige talen op de pagina <b>Talen</b>.</p> - - - <p>Could not load the language file <b><nobr>%1</nobr></b>. <p>The language will be temporarily reset to English (built-in). Please go to the <b>Preferences</b> dialog which you can open from the <b>File</b> menu of the main VirtualBox window, and select one of the existing languages on the <b>Language</b> page.</p> -- <p>Kan het taalbestand <b><nobr>%1</nobr></b> niet laden.<p>De taal wordt tijdelijk terug gezet naar Engels (ingebouwd). Ga naar de <b>voorkeuren</b> dialoog, deze is te bereiken via het menu in het VirtualBox hoofdscherm, en selecteer een van de bestaande talen uit de pagina <b>talen</b>.</p> -+ <p>Kan het taalbestand <b><nobr>%1</nobr></b> niet laden.<p>De taal wordt tijdelijk teruggezet naar Engels (ingebouwd). Ga naar <b>Voorkeuren</b> dialoog, deze is te bereiken via het menu in het VirtualBox hoofdscherm. Selecteer een van de aanwezige talen op de pagina <b>Talen</b>.</p> - - - <p>The VirtualBox Guest Additions installed in the Guest OS are too old: the installed version is %1, the expected version is %2. Some features that require Guest Additions (mouse integration, guest display auto-resize) will most likely stop working properly.</p><p>Please update the Guest Additions to the current version by choosing <b>Install Guest Additions</b> from the <b>Devices</b> menu.</p> -@@ -4625,47 +5124,47 @@ - - - <p>Failed to remove the shared folder <b>%1</b> (pointing to <nobr><b>%2</b></nobr>) from the virtual machine <b>%3</b>.</p><p>Please close all programs in the guest OS that may be using this shared folder and try again.</p> -- <p>Het is niet gelukt om de gedeeld map <b>%1</b> (die verwijst naar <nobr><b>%2</b></nobr>) te verwijderen van virtuele machine <b>%3</b>.</p><p>Sluit alle programma's af, in het gast besturginssysteem, die deze map mogen gebruiken en probeer het opnieuw.</p> -+ <p>Het is niet gelukt om de gedeeld map <b>%1</b> (die verwijst naar <nobr><b>%2</b></nobr>) te verwijderen van virtuele machine <b>%3</b>.</p><p>Sluit alle programma's af in het gastbesturingssysteem die deze map mogen gebruiken en probeer het opnieuw.</p> - - - <p>Could not find the VirtualBox Guest Additions CD image file <nobr><b>%1</b></nobr> or <nobr><b>%2</b>.</nobr></p><p>Do you wish to download this CD image from the Internet?</p> -- <p>De CD image bestand <nobr><b>%1</b></nobr> of <nobr><b>%2</b></nobr> , met daarop de gast uitbreidingen, is niet te vinden.</p><p>Wilt u deze downloaden van het internet?</p> -+ <p>Het VirtualBox Guest Additions CD image bestand <nobr><b>%1</b></nobr> of <nobr><b>%2</b></nobr> is niet te vinden.</p><p>Wilt u deze downloaden van het internet?</p> - - - <p>Failed to download the VirtualBox Guest Additions CD image from <nobr><a href="%1">%2</a>.</nobr></p><p>%3</p> -- <p>Het is niet gelukt om het CD image bestand, met daarop de gast uitbreidingen, bij <nobr><a href="%1">%2</a></nobr> te downloaden.</p><p>%3</p> -+ <p>Het is niet gelukt om het CD image bestand, met daarop de gast uitbreidingen, bij <nobr><a href="%1">%2</a></nobr> te downloaden.</p><p>%3</p> - - - <p>Are you sure you want to download the VirtualBox Guest Additions CD image from <nobr><a href="%1">%2</a></nobr> (size %3 bytes)?</p> -- <p>Weet u het zeker dat u het CD image bestand, met daarop de gast uitbreidingen, bij <nobr><a href="%1">%2</a></nobr> (omvang %3 bytes) wil downladen?</p> -+ <p>Weet u het zeker dat u het VirtualBox Guest Additions CD image bestand van <nobr><a href="%1">%2</a></nobr> (omvang %3 bytes) wil downladen?</p> - - - <p>The VirtualBox Guest Additions CD image has been successfully downloaded from <nobr><a href="%1">%2</a></nobr> and saved locally as <nobr><b>%3</b>.</nobr></p><p>Do you wish to register this CD image and mount it on the virtual CD/DVD drive?</p> -- <p>Het CD image bestand, met daarop de gast uitbreidingen, is succesvol gedownload bij <nobr><a href="%1">%2</a></nobr> en locaal opgeslagen als <nobr><b>%3</b></nobr>.</p><p>wilt u de CD image registreren en koppelen aan het virtuele CD/DVD station?</p> -+ <p>Het VirtualBox Guest Additions CD image bestand is met succes gedownload van <nobr><a href="%1">%2</a></nobr> en lokaal opgeslagen als <nobr><b>%3</b></nobr>.</p><p>wilt u het CD image registreren en koppelen aan het virtuele CD/DVD station?</p> - - - <p>The virtual machine window is optimized to work in <b>%1&nbsp;bit</b> color mode but the virtual display is currently set to <b>%2&nbsp;bit</b>.</p><p>Please open the display properties dialog of the guest OS and select a <b>%3&nbsp;bit</b> color mode, if it is available, for best possible performance of the virtual video subsystem.</p><p><b>Note</b>. Some operating systems, like OS/2, may actually work in 32&nbsp;bit mode but report it as 24&nbsp;bit (16 million colors). You may try to select a different color mode to see if this message disappears or you can simply disable the message now if you are sure the required color mode (%4&nbsp;bit) is not available in the guest OS.</p> -- <p>Het venster van de virtuale machine is geöptimaliseerd om te werken in <b>%1 bits</b> kleurenmodus, echter de kleurkwaliteit van het virtuele beeldscherm staat op <b>%2&nbsp;bit</b>.</p><p>Open de beeldscherm eigenschappen in het gast besturingssysteem en selecteer <b>%3 bits</b>kleurenmodus,mits beschikbaar, voor de beste prestatie van het video subsysteem.</p><p><b>Let op</b>: Sommige besturingssystemen (zoals OS/2) werken in 32 bits kleurenmodus maar melden dit als 24 bits kleurenmodus (16 miljoen kleuren).U kunt proberen een andere kleur kwaliteit te selecteren om de boodschap weg te krijgen of u kunt de boodschap nu uitzetten, als u zeker weet dat de vereist kleur kwaliteit (%4&nbsp; bit) niet beschikbaar is in het besturingssysteem.</p> -+ <p>Het venster van de virtuele machine is geöptimaliseerd om te werken in <b>%1 bits</b> kleurenmodus, echter de kleurkwaliteit van het virtuele beeldscherm staat op <b>%2&nbsp;bit</b>.</p><p>Open de beeldscherm-eigenschappen in het gastbesturingssysteem en selecteer indien beschikbaar <b>%3 bits</b>kleurenmodus voor de beste prestatie van het video-subsysteem.</p><p><b>Let op:</b> Sommige besturingssystemen (zoals OS/2) werken in 32 bits kleurenmodus maar melden dit als 24 bits kleurenmodus (16 miljoen kleuren).U kunt proberen een andere kleurkwaliteit te selecteren om deze boodschap weg te krijgen of u kunt de boodschap gewoon nu uitzetten indien u zeker weet dat de vereiste kleurkwaliteit (%4&nbsp; bit) niet beschikbaar is op het gastbesturingssysteem.</p> - - - <p>You didn't attach a hard disk to the new virtual machine. The machine will not be able to boot unless you attach a hard disk with a guest operating system or some other bootable media to it later using the machine settings dialog or the First Run Wizard.</p><p>Do you wish to continue?</p> -- <p>U heeft geen harde schijf gekoppeld aan de nieuwe virtuele machine. De machine kan niet eerder opstarten dan nadat u een harde schijf, met een gast besturingssysteem of een andere opstartbaar medium, hebt gekoppeld. U kunt dit doen via de machine instellingen dialoog of door de assistent op te starten.</p><p>Wilt u doorgaan?</p> -+ <p>U hebt geen harde schijf aan de nieuwe virtuele machine gekoppeld. De machine kan niet eerder opstarten dan nadat u eerst een harde schijf met een gastbesturingssysteem of een andere opstartbaar medium hebt aangekoppeld. U kunt dit doen via het dialoog Machine-instellingen of door de Start Assistent op te starten.</p><p>Wilt u doorgaan?</p> - - - Failed to find license files in <nobr><b>%1</b></nobr>. -- Het is niet gelukt om het licentie bestand in <nobr><b>%1</b></nobr> te vinden. -+ Het is niet gelukt het licentiebestand in <nobr><b>%1</b></nobr> te vinden. - - - Failed to open the license file <nobr><b>%1</b></nobr>. Check file permissions. -- Het is niet gelukt om het licentie bestand <nobr><b>%1</b></nobr> te openen. Controleer de toegangsrechten. -+ Het is niet gelukt het licentiebestand <nobr><b>%1</b></nobr> te openen. Controleer de toegangsrechten. - - - Failed to send the ACPI Power Button press event to the virtual machine <b>%1</b>. -- Het is niet gelukt om de ACPI startknop gebeurtenis naar virtuele machine <b>%1</b> te sturen. -+ Het is niet gelukt de ACPI startknopgebeurtenis naar virtuele machine <b>%1</b> te sturen. - - - <p>Congratulations! You have been successfully registered as a user of VirtualBox.</p><p>Thank you for finding time to fill out the registration form!</p> -- <p>Gefeliciteerd! u bent met succes geregistreerd als gebuiker van VirtualBox.</p><p>Bedankt dat u de moeite nam om het registratieformulier in te vullen!</p> -+ <p>Gefeliciteerd! U bent met succes geregistreerd als gebuiker van VirtualBox.</p><p>Bedankt dat u de moeite nam om het registratieformulier in te vullen!</p> - - - Delete -@@ -4690,16 +5189,17 @@ - - Mount - additions -- aankoppelen -+ Aankoppelen - - - <p>The host key is currently defined as <b>%1</b>.</p> - additional message box paragraph -- <p>De gasheer toets is op dit moment als <b>%1</b> gedefineerd.</p> -+ <p>De Hosttoets is op dit moment gedefineerd als <b>%1</b>.</p> - - - Capture - do input capture -+ RL - Of Opvangen, Afvangen - heeft te maken met opvangen input volgens dev com - Vangen - - -@@ -4710,21 +5210,21 @@ - - Switch - fullscreen -- Overschakelen -+ Switchen - - - Switch - seamless -- Overschakelen -+ Switchen - - - <p>Do you really want to reset the virtual machine?</p><p>This will cause any unsaved data in applications running inside it to be lost.</p> -- <p>Weet u zeker dat u de virtuele machine wilt resetten?</p><p>Wordt de machine gereset dan gaan alle, niet opgeslagen, gegevens van alle draaiende programma's verloren.</p> -+ <p>Weet u zeker dat u de virtuele machine wilt resetten?</p><p>Wordt de machine gereset dan gaan alle niet opgeslagen gegevens van alle draaiende programma's verloren.</p> - - - Reset - machine -- Terugzetten -+ Reset - - - Continue -@@ -4734,7 +5234,7 @@ - - Go Back - no hard disk attached -- Terug gaan -+ Teruggaan - - - <p>Failed to save the global VirtualBox settings to <b><nobr>%1</nobr></b>.</p> -@@ -4742,19 +5242,19 @@ - - - <p>Failed to load the global GUI configuration from <b><nobr>%1</nobr></b>.</p><p>The application will now terminate.</p> -- <p>Het is niet gelukt om de algemene GUI configuratie te laden vanuit <b><nobr>%1</nobr></b>.</p><p>Het programma wordt nu afgesloten.</p> -+ <p>Het is niet gelukt de algemene GUI configuratie te laden vanuit <b><nobr>%1</nobr></b>.</p><p>Het programma wordt nu afgesloten.</p> - - - <p>Failed to save the global GUI configuration to <b><nobr>%1</nobr></b>.</p><p>The application will now terminate.</p> -- <p>Het is niet gelukt om de algemene GUI configuratie op te slaan in <b><nobr>%1</nobr></b>.</p><p>Het programma wordt nu afgesloten.</p> -+ <p>Het is niet gelukt de algemene GUI configuratie op te slaan in <b><nobr>%1</nobr></b>.</p><p>Het programma wordt nu afgesloten.</p> - - - Failed to save the settings of the virtual machine <b>%1</b> to <b><nobr>%2</nobr></b>. -- Het is niet gelukt om de instellingen van virtuele machine <b>%1</b> op te slaan in <b><nobr>%2</nobr></b>. -+ Het is niet gelukt de instellingen van virtuele machine <b>%1</b> op te slaan in <b><nobr>%2</nobr></b>. - - - Failed to load the settings of the virtual machine <b>%1</b> from <b><nobr>%2</nobr></b>. -- Het is niet gelukt om de instellingen van virtuele machine <b>%1</b> vanuit <b><nobr>%2</nobr></b> te laden. -+ Het is niet gelukt de instellingen van virtuele machine <b>%1</b> vanuit <b><nobr>%2</nobr></b> te laden. - - - Disable -@@ -4782,27 +5282,28 @@ - - - <p>Could not enter seamless mode due to insufficient guest video memory.</p><p>You should configure the virtual machine to have at least <b>%1</b> of video memory.</p> -- <p>Kan de naadloze modus niet binnengaan omdat de gast onvoldoende video geheugen heeft.</p><p>U moet, bij de configuratie, de virtuele machine minimaal <b>%1</b> video geheugen meegeven.</p> -+ <p>Kan de naadloze modus niet binnengaan omdat de gast onvoldoende videogeheugen heeft.</p><p>U moet bij de configuratie de virtuele machine minimaal <b>%1</b> videogeheugen meegeven.</p> - - - <p>Could not switch the guest display to fullscreen mode due to insufficient guest video memory.</p><p>You should configure the virtual machine to have at least <b>%1</b> of video memory.</p><p>Press <b>Ignore</b> to switch to fullscreen mode anyway or press <b>Cancel</b> to cancel the operation.</p> -- <p>Kan de gast scherm niet laten overschakelen op schermvullend omdat de gast te weinig video geheugen heeft.</p><p>U moet, bij de configuratie, de virtuele machine minimaal <b>%1</b> video geheugen meegeven.</p><p>klik op <b>Negeren</b> om toch op volledig beeld over te schakelen of klik op<b>Annuleren</b> om niets te doen.</p> -+ <p>Kan het gastscherm niet laten overschakelen op schermvullend omdat de gast te weinig videogeheugen heeft.</p><p>U moet bij de configuratie de virtuele machine minimaal <b>%1</b> videogeheugen meegeven.</p><p>Klik op <b>Negeren</b> om toch op volledig beeld over te schakelen of klik op<b>Annuleren</b> om niets te doen.</p> - - - You are already running the most recent version of VirtualBox. -- U heeft reeds de laatste versie van VirtualBox geïnstalleerd. -+ Tekst zo ivm uitvullen in mededelingschermpje, is terugmelding als je handmatig controleert op updates -+ U hebt de meest recente versie van VirtualBox. - - - <p>You have <b>clicked the mouse</b> inside the Virtual Machine display or pressed the <b>host key</b>. This will cause the Virtual Machine to <b>capture</b> the host mouse pointer (only if the mouse pointer integration is not currently supported by the guest OS) and the keyboard, which will make them unavailable to other applications running on your host machine.</p><p>You can press the <b>host key</b> at any time to <b>uncapture</b> the keyboard and mouse (if it is captured) and return them to normal operation. The currently assigned host key is shown on the status bar at the bottom of the Virtual Machine window, next to the&nbsp;<img src=:/hostkey_16px.png/>&nbsp;icon. This icon, together with the mouse icon placed nearby, indicate the current keyboard and mouse capture state.</p> -- <p>U heeft op <b>de muis geklikt</b>in het scherm van de virtuele machine of op <b>gastheer toets</b> gedrukt.Dit zorgt ervoor dat de virtuele machine de muis <b>vangt</b> (dit treed alleen op als de muis integratie niet ondersteund wordt door het gast besturingssysteem) en het toetsenbord. Deze twee zijn dan niet meer beschikbaar voor andere applicaties die draaien op de gastheer machine.</p><p>U kunt op ieder moment op de <b>gastheer toets</b> drukken omhet toetsenbord en de muis (als deze gevangen is) weer <b>vrij te geven</b>. De huidige gastheer toets word weergegeven in de statusbalk onderin het venster van de virtuele machine, naast het&nbsp;<img src=:/hostkey_16px.png/>&nbsp;ikoon. Dit ikoon, samen met het muis ikoon, geven de huidige status weer, gevangen of vrij.</p> -+ <p>U hebt op <b>de muis geklikt</b> in het scherm van de virtuele machine of op <b>Hosttoets</b> geklikt. Dit zorgt ervoor dat de virtuele machine de muis <b>vangt</b> (dit gebeurt alleen als muisintegratie door het gastbesturingssysteem niet ondersteund wordt) en daarmee ook het toetsenbord. Deze twee zijn dan niet meer beschikbaar voor andere applicaties die draaien op de hostmachine.</p><p>U kunt op ieder moment op de <b>Hosttoets</b> drukken om het toetsenbord en de muis (als deze gevangen is) weer <b>vrij te geven</b>. De huidige Hosttoets wordt weergegeven in de statusbalk onder in het venster van de virtuele machine, naast het&nbsp;<img src=:/hostkey_16px.png/>&nbsp;icoon. Dit icoon geeft samen met het muis-icoon de huidige status weer, te weten gevangen of vrij.</p> - - - <p>You have the <b>Auto capture keyboard</b> option turned on. This will cause the Virtual Machine to automatically <b>capture</b> the keyboard every time the VM window is activated and make it unavailable to other applications running on your host machine: when the keyboard is captured, all keystrokes (including system ones like Alt-Tab) will be directed to the VM.</p><p>You can press the <b>host key</b> at any time to <b>uncapture</b> the keyboard and mouse (if it is captured) and return them to normal operation. The currently assigned host key is shown on the status bar at the bottom of the Virtual Machine window, next to the&nbsp;<img src=:/hostkey_16px.png/>&nbsp;icon. This icon, together with the mouse icon placed nearby, indicate the current keyboard and mouse capture state.</p> -- <p>U heeft de modus <b>automatisch toetsenbord vangen</b> aangezet. Dit zorgt ervoor dat de virtuele machine automatisch het toetsenbord <b>vangt</b> iedere keer dat het VM venster wordt geactiveerd en maakt het toetsenbaar, voor andere applicaties, niet beschikbaar. Is het toestenbord gevangen dan worden alle toets aanslagen (inclusief de speciale zoals Alt-Tab) doorgegeven aan de VM.<p></p>U kunt ieder moment op de <b>gastheer toets</b> drukken om het toetsenbord en de muis (als deze gevangen is) weer <b>vrij te geven</b>. De huidige gastheer toets word weergegeven in de statusbalk onderin het venster van de virtuele machine, naast het&nbsp;<img src=:/hostkey_16px.png/>&nbsp;ikoon. Dit ikoon, samen met het muis ikoon, geven de huidige status weer, gevangen of vrij</p> -+ <p>U hebt de modus <b>Automatisch toetsenbord vangen</b> aangezet. Dit zorgt ervoor dat de Virtuele Machine automatisch het toetsenbord <b>vangt</b> iedere keer dat het VM venster wordt geactiveerd en maakt daarmee het toetsenbaar voor andere applicaties onbeschikbaar. Eenmaal het toestenbord gevangen worden alle toetsaanslagen (inclusief de speciale zoals Alt-Tab) doorgegeven aan de virtuele machine.<p></p>U kunt ieder moment op de <b>Hosttoets</b> drukken om het toetsenbord en de muis (als deze gevangen is) weer <b>vrij te geven</b>. De huidige Hosttoets wordt weergegeven in de statusbalk onder in het venster van de virtuele machine, naast het&nbsp;<img src=:/hostkey_16px.png/>&nbsp;icoon. Dit icoon geeft samen met het muis-icoon de huidige status weer, te weten gevangen of vrij</p> - - - <p>The Virtual Machine reports that the guest OS supports <b>mouse pointer integration</b>. This means that you do not need to <i>capture</i> the mouse pointer to be able to use it in your guest OS -- all mouse actions you perform when the mouse pointer is over the Virtual Machine's display are directly sent to the guest OS. If the mouse is currently captured, it will be automatically uncaptured.</p><p>The mouse icon on the status bar will look like&nbsp;<img src=:/mouse_seamless_16px.png/>&nbsp;to inform you that mouse pointer integration is supported by the guest OS and is currently turned on.</p><p><b>Note</b>: Some applications may behave incorrectly in mouse pointer integration mode. You can always disable it for the current session (and enable it again) by selecting the corresponding action from the menu bar.</p> -- <p>De virtuele machine meldt dat het gast besturingssysteem <b>muis integratie</b> ondersteund. Dit betekend dat u niet de muis hoeft te <i>vangen</i> om deze in het gast besturingssysteem te gebruiken. Bevindt de muis zich op het venster van de virtuele machnie dan zullen alle acties naar het gast besturingssysteem worden gestuurd. Is de muis nu gevangen dan wordt deze automatisch vrijgegeven.</p><p>Het ikoon van de muis op statusbalk lijkt hierop:&nbsp;<img src=:/mouse_seamless_16px.png/>&nbsp; dit maakt duidelijk dat muis integratie wordt ondersteund en nu geactiveerd is.</p><p><b>Let op:</b> bepaalde applicaties kunnen zich vreem gedragen in deze modus. U kunt dit altijd deactiveren voor de huidige sessie (en later weer activeren) door de overeenkomstige actie in de menubalk te selecteren.</p> -+ <p>De virtuele machine meldt dat het gastbesturingssysteem <b>muisintegratie</b> ondersteunt. Dit betekent dat u niet de muis hoeft te <i>vangen</i> om deze binnen het gastbesturingssysteem te kunnen gebruiken. Bevindt de muis zich op het venster van de virtuele machine dan zullen alle acties naar het gastbesturingssysteem worden gestuurd. Is de muis op dat moment gevangen dan wordt deze automatisch vrijgegeven.</p><p>Het icoon van de muis op statusbalk lijkt op:&nbsp;<img src=:/mouse_seamless_16px.png/>&nbsp; dit maakt duidelijk dat muisintegratie wordt ondersteund en momenteel geactiveerd is.</p><p><b>Let op:</b> bepaalde applicaties kunnen zich vreemd gedragen in deze modus. U kunt muisintegratie altijd deactiveren voor de huidige sessie (en later weer activeren) door de overeenkomstige actie in de menubalk te selecteren.</p> - - - <p>The virtual machine window will be now switched to <b>fullscreen</b> mode. You can go back to windowed mode at any time by pressing <b>%1</b>. Note that the <i>Host</i> key is currently defined as <b>%2</b>.</p><p>Note that the main menu bar is hidden in fullscreen mode. You can access it by pressing <b>Host+Home</b>.</p> -@@ -4818,7 +5319,7 @@ - - - Show the online help contents -- Geef de online help inhoud weer -+ Toon inhoud online hulp - - - &VirtualBox Web Site... -@@ -4826,7 +5327,7 @@ - - - Open the browser and go to the VirtualBox product web site -- open de browser en ga naar de website van VirtualBox -+ Open de browser en ga naar de website van VirtualBox - - - &Reset All Warnings -@@ -4858,7 +5359,7 @@ - - - Show a dialog with product information -- Geef de produkt informatie weer -+ Toon produktinformatie - - - <p>A new version of VirtualBox has been released! Version <b>%1</b> is available at <a href="http://www.virtualbox.org/">virtualbox.org</a>.</p><p>You can download this version using the link:</p><p><a href=%2>%3</a></p> -@@ -4866,12 +5367,12 @@ - - - <p>Are you sure you want to release the %1 <nobr><b>%2</b></nobr>?</p><p>This will detach it from the following virtual machine(s): <b>%3</b>.</p> -- <p>Weet u zeker dat u %1 <nobr><b>%2</b></nobr> wilt vrijgeven?</p><p>Hierdoor worden deze ontkoppeld van de volgende virtuele machines: <b>%3</b>.</p> -+ <p>Weet u zeker dat u %1 <nobr><b>%2</b></nobr> wilt vrijgeven?</p><p>Hierdoor wordt deze ontkoppeld van de volgende virtuele machines: <b>%3</b>.</p> - - - Release - detach medium -- Vrijgeven -+ Release - - - <p>Are you sure you want to remove the %1 <nobr><b>%2</b></nobr> from the list of known media?</p> -@@ -4879,11 +5380,11 @@ - - - Note that as this hard disk is inaccessible its storage unit cannot be deleted right now. -- Let op: deze harde schijf is niet te benaderen, dus kan zijn opslag eenheid nu niet verwijderd worden. -+ Let op: deze harde schijf is niet te benaderen, dus zijn opslageenheid kan nu niet verwijderd worden. - - - The next dialog will let you choose whether you also want to delete the storage unit of this hard disk or keep it for later usage. -- De volgende dialoog laat u kiezen of u ook de opslag eenheid wilt verwijderen of dat u deze harde schijf wilt bewaren voor later gebruik. -+ Volgend dialoog laat u kiezen of u ook de opslageenheid wilt verwijderen of dat u deze harde schijf wilt bewaren voor later gebruik. - - - <p>Note that the storage unit of this medium will not be deleted and that it will be possible to add it to the list later again.</p> -@@ -4896,11 +5397,11 @@ - - - <p>The hard disk storage unit at location <b>%1</b> already exists. You cannot create a new virtual hard disk that uses this location because it can be already used by another virtual hard disk.</p><p>Please specify a different location.</p> -- <p>De opslag eenheid van de harde schijf, op locatie <b>%1</b>, bestaat al. U kunt geen nieuwe virtuele harde schijf aanmaken op deze locatie omdat deze mogelijk door een andere virtuele harde schijf wordt gebruikt.</p><p>Geef een andere locatie op.</p> -+ <p>De opslageenheid van de harde schijf op locatie <b>%1</b> bestaat al. U kunt geen nieuwe virtuele harde schijf aanmaken op deze locatie omdat deze mogelijk door een andere virtuele harde schijf wordt gebruikt.</p><p>Geef een andere locatie op.</p> - - - <p>Do you want to delete the storage unit of the hard disk <nobr><b>%1</b></nobr>?</p><p>If you select <b>Delete</b> then the specified storage unit will be permanently deleted. This operation <b>cannot be undone</b>.</p><p>If you select <b>Keep</b> then the hard disk will be only removed from the list of known hard disks, but the storage unit will be left untouched which makes it possible to add this hard disk to the list later again.</p> -- <p>Wilt u de opslag eenheid van harde schijf <nobr><b>%1</b></nobr> verwijderen?</p><p>Selecteert u <b>Verwijderen</b> dan wordt de opslag eenheid permanent verijderd.Deze actie <b>kan niet</b> terug gedraaid worden.<p><p>Selecteert u <b>Behouden</b> dan wordt de harde schijf alleen uit de lijst met bekende harde schijven gehaald maar de opslag eendheid wordt niet onaangetast, zodat het mogelijk is om de harde schijf op een later moment weer op de lijst te zetten.</p> -+ <p>Wilt u de opslageenheid van harde schijf <nobr><b>%1</b></nobr> verwijderen?</p><p>Selecteert u <b>Verwijderen</b> dan wordt de opslageenheid permanent verwijderd.Deze actie <b>kan niet</b> teruggedraaid worden.<p><p>Selecteert u <b>Behouden</b> dan wordt de harde schijf alleen uit de lijst met bekende harde schijven gehaald maar de opslageendheid blijft onaangetast, waardoor het mogelijk is om de harde schijf op een later moment weer op de lijst te zetten.</p> - - - Delete -@@ -4914,7 +5415,7 @@ - - - Failed to delete the storage unit of the hard disk <b>%1</b>. -- Het is niet gelukt om de opslag eenheid van harde schijf <b>%1</b> te verwijderen. -+ Het is niet gelukt de opslageenheid van harde schijf <b>%1</b> te verwijderen. - - - <p>There are no unused hard disks available for the newly created attachment.</p><p>Press the <b>Create</b> button to start the <i>New Virtual Disk</i> wizard and create a new hard disk, or press the <b>Select</b> if you wish to open the <i>Virtual Media Manager</i>.</p> -@@ -4922,7 +5423,7 @@ - - - Failed to create the hard disk storage <nobr><b>%1</b>.</nobr> -- Het is niet gelukt om de harde schijf opslag <nobr><b>%1</b></nobr> aan te maken. -+ Het is niet gelukt de harde schijf opslag <nobr><b>%1</b></nobr> aan te maken - - - Failed to attach the hard disk <nobr><b>%1</b></nobr> to slot <i>%2</i> of the machine <b>%3</b>. -@@ -4942,27 +5443,27 @@ - - - Failed to open the %1 <nobr><b>%2</b></nobr>. -- Het is niet gelukt om %1 <nobr><b>%2</b></nobr> te openen. -+ Het is niet gelukt %1 <nobr><b>%2</b></nobr> te openen. - - - Failed to close the %1 <nobr><b>%2</b></nobr>. -- Het is niet gelukt om %1 <nobr><b>%2</b></nobr> te sluiten. -+ Het is niet gelukt %1 <nobr><b>%2</b></nobr> te sluiten. - - - Failed to determine the accessibility state of the medium <nobr><b>%1</b></nobr>. -- Het is niet gelukt om de toegankelijkheids status van medium <nobr><b>%1</b></nobr> op te halen. -+ Het is niet gelukt de toegankelijkheidsstatus van medium <nobr><b>%1</b></nobr> op te halen. - - - <p>Failed to connect to the VirtualBox online registration service due to the following error:</p><p><b>%1</b></p> -- <p>Het is niet gelukt om een verbinding te krijgen met de VirtualBox online registratie service vanwege de volgende fout:</p><p><b>%1</b></p> -+ <p>Het is niet gelukt verbinding te krijgen met de VirtualBox online registratie service vanwege de volgende fout:</p><p><b>%1</b></p> - - - <p>Unable to obtain the new version information due to the following error:</p><p><b>%1</b></p> -- <p>Het is niet gelukt om infomatie over de nieuwe versie op te halen vanwege de volgende fout:</p><p><b>%1</b></p> -+ <p>Het is niet gelukt om infomatie over de nieuwe versie op te halen vanwege de volgende fout:</p><p><b>%1</b></p> - - - <p>One or more virtual hard disks, CD/DVD or floppy media are not currently accessible. As a result, you will not be able to operate virtual machines that use these media until they become accessible later.</p><p>Press <b>Check</b> to open the Virtual Media Manager window and see what media are inaccessible, or press <b>Ignore</b> to ignore this message.</p> -- <p>Een of meer virtuele harde schijven, CD/DVD-Rom's of de diskette zijn nu niet te benaderen.Hierdoor kunt u niet met de virtuele machines werken die deze media gebruiken, totdat de media later wel weer benaderbaar zijn.</p><p>Druk op de knop <b>Controleren</b> om de manager voor virtuele media te openen om na te gaan welke media niet te benaderen is, of drukt opde knop <b>Nogeren</b> om dir berichte te negeren.</p> -+ <p>Eén of meer virtuele harde schijven, CD/DVD-Rom's of de diskette zijn nu niet te benaderen. Hierdoor kunt u niet met de virtuele machines werken die deze media gebruiken, totdat dit medium of deze media weer benaderbaar zijn.</p><p>Druk op de knop <b>Controleren</b> om de Virtuele Media Manager te openen om na te gaan welk medium niet te benaderen is, of druk op de knop <b>Negeren</b> om dit bericht te negeren.</p> - - - <p>Your existing VirtualBox settings files were automatically converted from the old format to a new format required by the new version of VirtualBox.</p><p>Press <b>OK</b> to start VirtualBox now or press <b>More</b> if you want to get more information about what files were converted and access additional actions.</p><p>Press <b>Exit</b> to terminate the VirtualBox application without saving the results of the conversion to disk.</p> -@@ -4993,7 +5494,7 @@ - - - <p>A critical error has occurred while running the virtual machine and the machine execution has been stopped.</p><p>For help, please see the Community section on <a href=http://www.virtualbox.org>http://www.virtualbox.org</a> or your support contract. Please provide the contents of the log file <tt>VBox.log</tt> and the image file <tt>VBox.png</tt>, which you can find in the <nobr><b>%1</b></nobr> directory, as well as a description of what you were doing when this error happened. Note that you can also access the above files by selecting <b>Show Log</b> from the <b>Machine</b> menu of the main VirtualBox window.</p><p>Press <b>OK</b> if you want to power off the machine or press <b>Ignore</b> if you want to leave it as is for debugging. Please note that debugging requires special knowledge and tools, so it is recommended to press <b>OK</b> now.</p> -- <p>Een fatale fout is opgetreden terwijl de virtuele machine draaide en de machine is gestopt.</p><p>Kijk voor ondersteuning op de community sectie van <a href=http://www.virtualbox.org>http://www.virtualbox.org</a> of u contact voor ondersteuning. Lever aub de inhoud van het logbestand <tt>VBox.log</tt> en het image bestand <tt>VBox.png</tt> deze kunt u terugvinden in de <nobr><b>%1</b></nobr> folder, samen met een beschrijving van wat u deed op het moment dat de fout optrad. Let op; u kunt genoemde bestanden ook benaderen via <b>Toon Log</b> in het <b>machine</b> menu van de hoofdvenster van VirtualBox.</p><p>Klik op <b>Ok</b> als u de machine uit wilt zetten of klik op <b>Negeren</b> als u alles zo wilt laten staan voor nader onderzoek. Let op: nader onderzoek vereist specifieke kennis en hulpmiddelen, het is wenselijker om op <b>Ok</b> te klikken.</p> -+ <p>Een fatale fout is opgetreden terwijl de virtuele machine draaide waardoor de machine nu is gestopt.</p><p>Kijk voor ondersteuning op de community sectie van <a href=http://www.virtualbox.org>http://www.virtualbox.org</a> of raadpleeg uw eigen ondersteuningscontact. Stel alstublieft de inhoud van het logbestand <tt>VBox.log</tt> en het imagebestand <tt>VBox.png</tt> ter beschikking. Deze kunt u terugvinden in de <nobr><b>%1</b></nobr> folder, en geef daarbij een beschrijving van wat u deed op het moment dat de fout optrad. Let op: u kunt genoemde bestanden ook benaderen via <b>Toon Log</b> in het <b>Machine</b> menu van het hoofdvenster van VirtualBox.</p><p>Klik op <b>OK</b> als u de machine wilt uitzetten of klik op <b>Negeren</b> als u alles zo wilt laten staan voor nader onderzoek. Let nogmaals op: nader onderzoek vereist specifieke kennis en hulpmiddelen, het wordt aangeraden om op <b>OK</b> te klikken.</p> - - - hard disk -@@ -5016,7 +5517,7 @@ - - - You are trying to shut down the guest with the ACPI power button. This is currently not possible because the guest does not support software shutdown. -- U probeert de gast af te sluiten via de ACPI startknop. Dit is op dit moment niet mogelijk omdat de gast geen ACPI subsysteem gebruikt. -+ U probeert de gast af te sluiten via de ACPI startknop. Dat is op dit moment niet mogelijk omdat de gast geen softwarematige afsluiting ondersteunt. - - - Close VM -@@ -5033,31 +5534,31 @@ - - - Failed to create the host-only network interface. -- Het is niet gelukt om de host only interface aan te maken. -+ Het is niet gelukt de host-only interface aan te maken. - - - Failed to open appliance. -- Het is niet gelukt om de appliance te openen. -+ Het is niet gelukt de appliance te openen. - - - Failed to open/interpret appliance <b>%1</b>. -- Het is niet gelukt om appliance <b>%1</b> te openen of interpreteren. -+ Het is niet gelukt appliance <b>%1</b> te openen of te interpreteren. - - - Failed to import appliance <b>%1</b>. -- Het is niet gelukt om appliance <b>%1</b> te importeren. -+ Het is niet gelukt appliance <b>%1</b> te importeren. - - - Failed to create an appliance. -- Het is niet gelukt om een appliance aan te maken. -+ Het is niet gelukt een appliance aan te maken. - - - Failed to prepare the export of the appliance <b>%1</b>. -- Het is niet gelukt om de export van appliance <b>%1</b> voor te bereiden. -+ Het is niet gelukt de export van appliance <b>%1</b> voor te bereiden. - - - Failed to export appliance <b>%1</b>. -- Het is niet gelukt om appliance <b>%1</b> te exporteren. -+ Het is niet gelukt appliance <b>%1</b> te exporteren. - - - Failed to remove the file <b>%1</b>.<br /><br />Please try to remove the file yourself and try again. -@@ -5077,39 +5578,39 @@ - - - <p>Your existing VirtualBox settings files will be automatically converted from the old format to a new format required by the new version of VirtualBox.</p><p>Press <b>OK</b> to start VirtualBox now or press <b>Exit</b> if you want to terminate the VirtualBox application without any further actions.</p> -- <p>De bestaande bestanden, met VirtualBox instellingen, zijn automatisch van het oude formaat in het nieuwe formaat overgezet, dit was nodig voor de nieuwe versie van VirtualBox.</p><p>Klik op <b>Ok</b> om nu VirtualBox te starten of <b>Afsluiten</b> om VirtualBox, zonder verdere acties af te sluiten.</p> -+ <p>De bestaande bestanden met VirtualBox-instellingen zijn automatisch van het oude formaat in het nieuwe formaat omgezet, hetgeen nodig was voor deze nieuwe versie van VirtualBox.</p><p>Klik op <b>OK</b> om VirtualBox nu te starten of op <b>Afsluiten</b> om VirtualBox zonder verdere acties af te sluiten.</p> - - - A file named <b>%1</b> already exists. Are you sure you want to replace it?<br /><br />Replacing it will overwrite its contents. -- Een bestand met de naam <b>%1</b> bestaat al. Weet u het zeker dat deze wilt vervangen?<br/><br/>Vervangen betekend overschrijven van de inhoud. -+ Een bestand met de naam <b>%1</b> bestaat al. Weet u het zeker dat deze wilt vervangen?<br/><br/>Vervangen betekent overschrijven van de inhoud. - - - <p>VT-x/AMD-V hardware acceleration has been enabled, but is not operational. Certain guests (e.g. OS/2 and QNX) require this feature.</p><p>Please ensure that you have enabled VT-x/AMD-V properly in the BIOS of your host computer.</p> -- <p>De hardware versnelling VT-X/AMD-V is geactiveerd maar is niet operationeel. Bepaalde gasten (zoals OS/2 en QNX) hebben deze functie nodig.</p><p>Controleer aub of de VT-x/AMD-V correct in de BIOS van uw fysieke computer is geconfigureerd.</p> -+ <p>De hardwareversnelling VT-X/AMD-V is ingeschakeld maar is niet operationeel. Bepaalde gasten (zoals OS/2 en QNX) hebben deze functie nodig.</p><p>Controleer alstublieft of de VT-x/AMD-V correct in de BIOS van uw fysieke computer is geconfigureerd.</p> - - - <p>Invalid e-mail address or password specified.</p> -- <p>Ongeldig e-mai adres of wachtwoord opgegeven.</p> -+ <p>Ongeldig emailadres of wachtwoord opgegeven.</p> - - - <p>Failed to register the VirtualBox product.</p><p>%1</p> -- <p>Het is niet geluk om VirtualBox te registreren.</p><p>%1</p> -+ <p>Het is niet gelukt VirtualBox te registreren.</p><p>%1</p> - - - Failed to check files. -- Het is niet gelukt om de bestanden te controleren. -+ Het is niet gelukt de bestanden te controleren. - - - Failed to remove file. -- Het is niet gelukt om het bestand te verwijderen. -+ Het is niet gelukt het bestand te verwijderen. - - - You seem to have the USBFS filesystem mounted at /sys/bus/usb/drivers. We strongly recommend that you change this, as it is a severe mis-configuration of your system which could cause USB devices to fail in unexpected ways. -- U lijkt een USBFS bestandssysteem gekoppeld te hebben aan /sys/bus/usb/drivers. We adviseren u met klem dit te wijzigen, omdat dit een ernstige mis-configuratie van uw systeem is. Dit kan ervoor zorgen dat uw USB apparaten op onverwachte momenten storing geven. -+ U lijkt een USBFS bestandssysteem gekoppeld te hebben aan /sys/bus/usb/drivers. Wij adviseren u met klem dit te wijzigen omdat dit een ernstige mis-configuratie van uw systeem is, met als resultaat dat uw USB apparaten op willekeurige wijze zullen falen. - - - You are running an EXPERIMENTAL build of VirtualBox. This version is not suitable for production use. -- U draait een PROEF constructie van VirtualBox. Deze versie is niet geschikt voor productie. -+ U draait een EXPERIMENTELE build van VirtualBox. Deze versie is niet geschikt voor productie. - - - <p>Are you sure you want to restore snapshot <b>%1</b>? This will cause you to lose your current machine state, which cannot be recovered.</p> -@@ -5121,7 +5622,7 @@ - - - <p>Deleting the snapshot will cause the state information saved in it to be lost, and disk data spread over several image files that VirtualBox has created together with the snapshot will be merged into one file. This can be a lengthy process, and the information in the snapshot cannot be recovered.</p></p>Are you sure you want to delete the selected snapshot <b>%1</b>?</p> -- <p>Door het verwijderen van een momentopname wordt de status informatie opgeslagen in de momentopname weg gegooid. En de schijf gegevens, verspreidt over verschillende image bestanden, die VirtualBox heeft aangemaakt tesamen met de momentopname, worden samengevoegd in één bestand. Dit kan een langdurig proces zijn en de informatie in de momentopname kan niet hersteld worden.</p></p>Bent u er zeker van dat u de geselecteerde momentopname <b>%1</b> wilt verwijderen?</p> -+ <p>Door het verwijderen van een momentopname wordt ook de informatie over de staat -opgeslagen in de momentopname- weggegooid. De schijfgegevens die VirtualBox heeft aangemaakt -en verspreid zijn over verschillende image bestanden- worden met de momentopname samengevoegd in één bestand. Dit kan een langdurig proces zijn. De informatie in de momentopname kan niet hersteld worden.</p></p>Bent u er zeker van dat u de geselecteerde momentopname <b>%1</b> wilt verwijderen?</p> - - - Delete -@@ -5129,11 +5630,11 @@ - - - Failed to restore the snapshot <b>%1</b> of the virtual machine <b>%2</b>. -- Kan de momentopname <b>%1</b>, virtuale machine <b>%2</b>.niet terugzetten. -+ Kan momentopname <b>%1</b> van virtuele machine <b>%2</b>.niet terugzetten. - - - Failed to delete the snapshot <b>%1</b> of the virtual machine <b>%2</b>. -- Kan de momentopname <b>%1</b>, virtuale machine <b>%2</b>.niet verwijderen. -+ Kan momentopname <b>%1</b> van virtuele machine <b>%2</b>.niet verwijderen. - - - <p>There are no unused media available for the newly created attachment.</p><p>Press the <b>Create</b> button to start the <i>New Virtual Disk</i> wizard and create a new medium, or press the <b>Select</b> if you wish to open the <i>Virtual Media Manager</i>.</p> -@@ -5179,7 +5680,8 @@ - - - Force Unmount -- Geforceerde afkoppeling -+ knoptekst (?) -+ Forceer Afkoppeling - - - Failed to eject the disk from the virtual drive. The drive may be locked by the guest operating system. Please check this and try again. -@@ -5187,7 +5689,7 @@ - - - <p>Could not insert the VirtualBox Guest Additions installer CD image into the virtual machine <b>%1</b>, as the machine has no CD/DVD-ROM drives. Please add a drive using the storage page of the virtual machine settings dialog.</p> -- <p>Kan de VirtualBox Gast toevoegingen installatie CD image niet plaatsten in de virtuele machine <b>%1</b>, omdat de machine geen CD/DVD-ROM station heeft. Voeg a.u.b. een station toe via de opslag pagina bij de instellingen van de virtuele machine.</p> -+ <p>Kan de VirtualBox Guest Additions installatie-CD image niet plaatsten in de virtuele machine <b>%1</b> omdat de machine geen CD/DVD-ROM station heeft. Voeg een station toe via de Opslagpagina bij de instellingen van de virtuele machine.</p> - - - E&xit -@@ -5196,7 +5698,7 @@ - - - <p>The following VirtualBox settings files will be automatically converted from the old format to a new format required by the new version of VirtualBox.</p><p>Press <b>OK</b> to start VirtualBox now or press <b>Exit</b> if you want to terminate the VirtualBox application without any further actions.</p> -- <p>De volgende bestanden met VirtualBox instellingen zullen automatisch omgezet worden van het oude formaat naar het nieuwe formaat, dat is nodig voor de nieuwe versie van VirtualBox.</p><p>Druk op <b>OK</b> om VirtualBox nu te starten of druk op <b>Afsluiten</b> als u de VirtualBox applicatie witl beëindigen zonder verdere acties.</p> -+ <p>De volgende bestanden met VirtualBox-instellingen zullen automatisch worden omgezet van het oude formaat naar het nieuwe formaat, hetgeen nodig is voor deze nieuwe versie van VirtualBox.</p><p>Druk op <b>OK</b> om VirtualBox nu te starten of druk op <b>Afsluiten</b> als u de VirtualBox-applicatie wilt beëindigen zonder verdere acties.</p> - - - hard disk -@@ -5216,7 +5718,7 @@ - - floppy - failed to mount ... host-drive -- Diskette -+ diskette - - - floppy image -@@ -5240,7 +5742,7 @@ - - - <p>Are you sure you want to delete the CD/DVD-ROM device?</p><p>You will not be able to mount any CDs or ISO images or install the Guest Additions without it!</p> -- <p>Weet u zeker dat u de CD/DVD-ROM apparaat wilt verwijderen?</p><p>Het is daarna niet meer mogelijk om enige CD of ISO images to koppelen of de Gastuitbreidingen te installeren!</p> -+ <p>Weet u zeker dat u het CD/DVD-ROM apparaat wilt verwijderen?</p><p>Het is daarna niet meer mogelijk om CD's of ISO images te koppelen of de Guest Additions te installeren!</p> - - - &Remove -@@ -5249,31 +5751,31 @@ - - - <p>VT-x/AMD-V hardware acceleration is not available on your system. Your 64-bit guest will fail to detect a 64-bit CPU and will not be able to boot. -- <p>VT-x/AMD-V hardware versnelling is niet beschikbaar op uw systeem. Uw 64-bit gast will zal geen 64-bit CPU detecteren en kan niet opstareten. -+ <p>VT-x/AMD-V hardwareversnelling is niet beschikbaar op uw systeem. Uw 64-bit gast zal geen 64-bit CPU detecteren en niet in staat zijn op te starten. - - - <p>VT-x/AMD-V hardware acceleration is not available on your system. Certain guests (e.g. OS/2 and QNX) require this feature and will fail to boot without it.</p> -- <p>VT-x/AMD-V hardware versnelling is niet beschikbaar op uw systeem. Bepaalde gastsystemen (bv. OS/2 en QNX) Hebben deze mogelijkheid nodig en kunnen anders niet opstarten.</p> -+ <p>VT-x/AMD-V hardwareversnelling is niet beschikbaar op uw systeem. Bepaalde gastsystemen (bv. OS/2 en QNX) hebben deze mogelijkheid nodig en kunnen zonder niet opstarten.</p> - - - <p>Deleting the snapshot %1 will temporarily need more disk space. In the worst case the size of image %2 will grow by %3, however on this filesystem there is only %4 free.</p><p>Running out of disk space during the merge operation can result in corruption of the image and the VM configuration, i.e. loss of the VM and its data.</p><p>You may continue with deleting the snapshot at your own risk.</p> -- <p>Het verwijderen van momentopname %1 kost tijdelijk meer schijfruimte. In het ergste geval zal de omvang van image %2 groeien met %3, echter er is maar %4 vrij.</p><p>Door de schijfruimte heen raken tijdens een samenvoeg operatie kan resluteren in het corrupt raken van de de image en de VM configuratie, dus het verlies van de VM en zijn gegevens.</p><p>U mag op eigen risico doorgaan met het verwijderen van de momentopname.</p> -+ <p>Het verwijderen van momentopname %1 kost tijdelijk meer schijfruimte. In het ergste geval zal de omvang van image %2 groeien met %3, echter er is maar %4 vrij.</p><p>Geen schijfruimte meer hebben tijdens de samenvoegoperatie kan als gevolg hebben dat de image en de VM-configuratie corrupt raken, dat betekent onherstelbaar verlies van VM en haar gegevens.</p><p>U mag natuurlijk op eigen risico doorgaan met het verwijderen van de momentopname.</p> - - - <p>Could not change the guest screen to this host screen due to insufficient guest video memory.</p><p>You should configure the virtual machine to have at least <b>%1</b> of video memory.</p> -- <p>Kan het gastscherm niet veranderen in het gastheerscherm omdat er onvoldoende videogeheugen is voor gast.</p><p>U moet de virtuale machine zo configureren dat deze tenminste <b>%1</b> aan video memory heeft.</p> -+ <p>Kan het gastscherm niet wisselen naar het hostscherm wegens onvoldoende gastvideogeheugen.</p><p>U moet de virtuele machine zo configureren dat deze tenminste <b>%1</b> aan videomemory heeft.</p> - - - <p>Could not change the guest screen to this host screen due to insufficient guest video memory.</p><p>You should configure the virtual machine to have at least <b>%1</b> of video memory.</p><p>Press <b>Ignore</b> to switch the screen anyway or press <b>Cancel</b> to cancel the operation.</p> -- <p>Kan het gastscherm niet veranderen in het gastheerscherm omdat er onvoldoende videogeheugen is voor gast.</p><p>U moet de virtuale machine zo configureren dat deze tenminste <b>%1</b> aan video memory heeft.</p><p>Druk op <b>Negeren</b> om toch te wisselen of druk op <b>Annuleren</b> om de operatie te stoppen.</p> -+ <p>Kan het gastscherm niet wisselen naar het hostscherm wegens onvoldoende gastvideogeheugen.</p><p>U moet de virtuele machine zo configureren dat deze tenminste <b>%1</b> aan videomemory heeft.</p><p>Klik op <b>Negeren</b> om toch te wisselen of klik op <b>Annuleren</b> om de operatie te stoppen.</p> - - - <p>Can not switch the guest display to fullscreen mode. You have more virtual screens configured than physical screens are attached to your host.</p><p>Please either lower the virtual screens in your VM configuration or attach additional screens to your host.</p> -- <p>Kan het gastscherm niet omzetten naar volledigscherm. U hebt meer virtuale schermen geconfigureerd dan dat er fysieke schermen zijn aangesloten.</p><p>Verminder het aantal virtuale schermen in u VM configuratie of sluit meer schermen aan.</p> -+ <p>Kan het gastscherm niet omzetten naar volledig scherm. U hebt meer virtuele schermen geconfigureerd dan dat er fysieke schermen zijn aangesloten.</p><p>Verminder het aantal virtuele schermen in uw VM configuratie of sluit meer schermen aan.</p> - - - <p>Can not switch the guest display to seamless mode. You have more virtual screens configured than physical screens are attached to your host.</p><p>Please either lower the virtual screens in your VM configuration or attach additional screens to your host.</p> -- <p>Kan het gastscherm niet omzetten naar naadloze modus. U hebt meer virtuale schermen geconfigureerd dan dat er fysieke schermen zijn aangesloten.</p><p>Verminder het aantal virtuale schermen in u VM configuratie of sluit meer schermen aan.</p> -+ <p>Kan het gastscherm niet omzetten naar naadloze modus. U hebt meer virtuele schermen geconfigureerd dan dat er fysieke schermen zijn aangesloten.</p><p>Verminder het aantal virtuele schermen in uw VM configuratie of sluit meer schermen aan.</p> - - - <p>Could not find the VirtualBox User Manual <nobr><b>%1</b>.</nobr></p><p>Do you wish to download this file from the Internet?</p> -@@ -5281,35 +5783,35 @@ - - - <p>Are you sure you want to download the VirtualBox User Manual from <nobr><a href="%1">%2</a></nobr> (size %3 bytes)?</p> -- <p>Weet u het zeker dat u gebruikershandleiding van VirtualBox wilt downloaden bij <nobr><a href="%1">%2</a></nobr> (omvang %3 bytes)?</p> -+ <p>Weet u het zeker dat u de gebruikershandleiding van VirtualBox wilt downloaden van <nobr><a href="%1">%2</a></nobr> (omvang %3 bytes)?</p> - - - <p>Failed to download the VirtualBox User Manual from <nobr><a href="%1">%2</a>.</nobr></p><p>%3</p> -- <p>Het downloaden van de gebruikershandleiding van VirtualBox is mislukt bij <nobr><a href="%1">%2</a>.</nobr></p><p>%3</p> -+ <p>Het downloaden van de gebruikershandleiding van VirtualBox is mislukt bij <nobr><a href="%1">%2</a>.</nobr></p><p>%3</p> - - - <p>The VirtualBox User Manual has been successfully downloaded from <nobr><a href="%1">%2</a></nobr> and saved locally as <nobr><b>%3</b>.</nobr></p> -- <p>De gebruikershandleiding van VirtualBox is succesvol gedownload bij <nobr><a href="%1">%2</a></nobr> en lokaal opgeslagen als <nobr><b>%3</b>.</nobr></p> -+ <p>De gebruikershandleiding van VirtualBox is succesvol gedownload van <nobr><a href="%1">%2</a></nobr> en lokaal opgeslagen als <nobr><b>%3</b>.</nobr></p> - - - <p>The VirtualBox User Manual has been successfully downloaded from <nobr><a href="%1">%2</a></nobr> but can't be saved locally as <nobr><b>%3</b>.</nobr></p><p>Please choose another location for that file.</p> -- <p>De gebruikershandleiding van VirtualBox is succesvol gedownload bij <nobr><a href="%1">%2</a></nobr> maar kan lokaal niet worden opgeslagen als <nobr><b>%3</b>.</nobr></p><p>Kies aub een andere locatie voor dit bestand.</p> -+ <p>De gebruikershandleiding van VirtualBox is met succes gedownload van <nobr><a href="%1">%2</a></nobr> maar kan lokaal niet worden opgeslagen als <nobr><b>%3</b>.</nobr></p><p>Kies aub een andere locatie voor dit bestand.</p> - - - Failed to open virtual machine located in %1. -- -+ Het is niet gelukt virtuele machine aanwezig in %1 te openen. - - - Failed to add virtual machine <b>%1</b> located in <i>%2</i> because its already present. -- -+ Het is niet gelukt virtuele machine <b>%1<b> aanwezig in <i>%2</i> toe te voegen, omdat deze al toegevoegd is. - - - <p>You are about to remove the virtual machine <b>%1</b> from the machine list.</p><p>Would you like to delete the files containing the virtual machine from your hard disk as well?</p> -- <p>U staat op het punt om de virtuele machine <b>%1</b> uit de lijst met machines te verwijderen.</p><p>Moeten de bestanden, die de virtuele machine bevatten, ook verwijderd worden van u harde schijf?</p> -+ <p>U staat op het punt om de virtuele machine <b>%1</b> uit de lijst met machines te verwijderen.</p><p>Moeten de bestanden, die de virtuele machine bevatten, ook verwijderd worden van u harde schijf?</p> - - - <p>You are about to remove the virtual machine <b>%1</b> from the machine list.</p><p>Would you like to delete the files containing the virtual machine from your hard disk as well? Doing this will also remove the files containing the machine's virtual hard disks if they are not in use by another machine.</p> -- <p>U staat op het punt om de virtuele machine <b>%1</b> uit de lijst met machines te verwijderen.</p><p>Moeten de bestanden, die de virtuele machine bevatten, ook verwijderd worden van u harde schijf? Hiermee worden ook de bestanden verwijderd die de virtuele harde schijven van de machine bevatten, tenzij ze ingebruik zijn door een andere machine.</p> -+ <p>U staat op het punt om de virtuele machine <b>%1</b> uit de lijst met machines te verwijderen.</p><p>Moeten de bestanden, die de virtuele machine bevatten, ook verwijderd worden van u harde schijf? Hiermee worden ook de bestanden verwijderd die de virtuele harde schijven van de machine bevatten, tenzij ze ingebruik zijn door een andere machine.</p> - - - Delete all files -@@ -5321,7 +5823,7 @@ - - - You are about to remove the inaccessible virtual machine <b>%1</b> from the machine list. Do you wish to proceed? -- U staat op het punt om de virtuele machine <b>%1</b>, die niet te benaderen is, uit de lijst met machines te verwijderen. Wilt u doorgaan? -+ U staat op het punt om de virtuele machine <b>%1</b>, die niet te benaderen is, uit de lijst met machines te verwijderen. Wilt u doorgaan? - - - Remove -@@ -5329,7 +5831,7 @@ - - - <p>You are about to add a virtual hard disk to controller <b>%1</b>.</p><p>Would you like to create a new, empty file to hold the disk contents or select an existing one?</p> -- <p>U staat op het punt om een virtuele harde schijf aan controler <b>%1</b> toe te voegen.</p><p>Wilt u een nieuw leeg bestand maken, die schijfinhoud bevat of een bestaande selecteren?</p> -+ <p>U staat op het punt een virtuele harde schijf aan controller <b>%1</b> toe te voegen.</p><p>Wilt u een nieuw, leeg bestand aanmaken voor de schijfinhoud, of een bestaande selecteren?</p> - - - Create &new disk -@@ -5343,7 +5845,7 @@ - - - <p>You are about to add a new CD/DVD drive to controller <b>%1</b>.</p><p>Would you like to choose a virtual CD/DVD disk to put in the drive or to leave it empty for now?</p> -- <p>U staat op het punt om een nieuw CD/DVD station aan controler <b>%1</b> toe te voegen.</p><p>Wilt u een virtuale CD/DVD schijf in het station plaatsen of voor nu leeg laten?</p> -+ <p>U staat op het punt een nieuw CD/DVD station aan controller <b>%1</b> toe te voegen.</p><p>Wilt u een virtuele CD/DVD schijf in het station plaatsen of vooralsnog leeg laten?</p> - - - &Choose disk -@@ -5357,19 +5859,19 @@ - - - <p>You are about to add a new floppy drive to controller <b>%1</b>.</p><p>Would you like to choose a virtual floppy disk to put in the drive or to leave it empty for now?</p> -- <p>U staat op het punt om een nieuw diskette station aan controler <b>%1</b> toe te voegen.</p><p>Wilt u een virtuale diskette in het station plaatsen of voor nu leeg laten?</p> -+ <p>U staat op het punt een nieuw diskette-station aan controller <b>%1</b> toe te voegen.</p><p>Wilt u een virtuele diskette in het station plaatsen of vooralsnog leeg laten?</p> - - - Failed to detach the hard disk (<nobr><b>%1</b></nobr>) from the slot <i>%2</i> of the machine <b>%3</b>. -- Het is niet gelukt om harde schijf <nobr><b>%1</b></nobr> los te koppelen van het slot <i>%2</i> van virtuele machine <b>%3</b>. -+ Het is niet gelukt harde schijf <nobr><b>%1</b></nobr> los te koppelen van het slot <i>%2</i> van virtuele machine <b>%3</b>. - - - Failed to detach the CD/DVD device (<nobr><b>%1</b></nobr>) from the slot <i>%2</i> of the machine <b>%3</b>. -- Het is niet gelukt om CD/DVD station <nobr><b>%1</b></nobr> los te koppelen van het slot <i>%2</i> van virtuele machine <b>%3</b>. -+ Het is niet gelukt CD/DVD station <nobr><b>%1</b></nobr> los te koppelen van het slot <i>%2</i> van virtuele machine <b>%3</b>. - - - Failed to detach the floppy device (<nobr><b>%1</b></nobr>) from the slot <i>%2</i> of the machine <b>%3</b>. -- Het is niet gelukt om diskette station <nobr><b>%1</b></nobr> los te koppelen van het slot <i>%2</i> van virtuele machine <b>%3</b>. -+ Het is niet gelukt diskette station <nobr><b>%1</b></nobr> los te koppelen van het slot <i>%2</i> van virtuele machine <b>%3</b>. - - - <p>The VirtualBox Guest Additions do not appear to be available on this virtual machine, and shared folders cannot be used without them. To use shared folders inside the virtual machine, please install the Guest Additions if they are not installed, or re-install them if they are not working correctly, by selecting <b>Install Guest Additions</b> from the <b>Machine</b> menu. If they are installed but the machine is not yet fully started then shared folders will be available once it is.</p> -@@ -5377,22 +5879,24 @@ - - - <p>The virtual machine(s) <b>%1</b> are currently in a saved state.</p><p>If you continue the runtime state of the exported machine(s) will be discarded. Note that the existing machine(s) are not changed.</p> -- -- <p>De virtuale machine(s) <b>%1</b> is(zijn) nu in een veilige staat.</p><p>Als u verder gaat wordt de status "Uitvoeren", van de te exportern machine(s), genegeerd. Let op, de bestaande machine(s) worden niet gewijzigd.</p> -- -+ RL - Noodzakelijke %n place marker ontbreekt, old format - Bij ticket #10400 virtualbox.org gezet, afwachten (02.04.2012) -+ -+ <p>De virtuele machine <b>%1</b> bevindt zich momenteel in opgeslagen staat.</p><p>Indien u doorgaat wordt de runtime staat van de geëxporteerde machine weggegooid. Weet dat de bestaande machine niet worden veranderd.</p> -+ <p>De virtuele machines <b>%1</b> bevinden zich momenteel in opgeslagen staat.</p><p>Indien u doorgaat wordt de runtime staat van de geëxporteerde machines weggegooid. Weet dat de bestaande machines niet worden veranderd.</p> - - - - Failed to update Guest Additions. The Guest Additions installation image will be mounted to provide a manual installation. -- Het is niet gelukt om de Gast aanvullingen bij te werken. De Gast aanvullings installatie image wordt gekoppeld voor een handmatige installatie. -+ Het is niet gelukt de Guest Additions bij te werken. Het Guest Additions installatie-image wordt gekoppeld voor een handmatige installatie. - - - Failed to install the Extension Pack <b>%1</b>. -- Het is niet gelukt om het uitbreidingspakket <b>%1</b> te installeren. -+ Extention Pack als naam laten staan, net als Guest Additions -+ Het is niet gelukt het Extention Pack <b>%1</b> te installeren. - - - Failed to uninstall the Extension Pack <b>%1</b>. -- Het is niet gelukt om het uitbreidingspakket <b>%1</b> te deïnstalleren. -+ Het is niet gelukt het Extention Pack <b>%1</b> te deïnstalleren. - - - You are about to remove the Extension Pack <b>%1</b>. Are you sure you want to do that? -@@ -5404,47 +5908,47 @@ - - - The current port forwarding rules are not valid. None of the host or guest port values may be set to zero. -- De huidige regel voor het doorverwijzen van poorten zijn niet geldig. Geen van de poorten, nog van de gastheer nog van de gast, mogen op nul staan. -+ De huidige regels voor het doorverwijzen van poorten zijn niet geldig. Geen van de poorten, noch van de host noch van de gast, mogen op nul staan. - - - <p>There are unsaved changes in the port forwarding configuration.</p><p>If you proceed your changes will be discarded.</p> -- <p>De poort doorverwijzings configuratie heeft nog niet bewaarde wijzigingen.</p><p>Gaat u verder dan gaan uw wijzigingen verloren.</p> -+ <p>De poort doorverwijzings configuratie heeft nog niet-opgeslagen wijzigingen.</p><p>Doorgaan betekent dat deze wijzigingen verloren gaan.</p> - - - Sorry, some generic error happens. -- Excusses een algemene fout is opgetreden. -+ Excuses, een algemene fout is opgetreden. - - - Failed to attach the hard disk (<nobr><b>%1</b></nobr>) to the slot <i>%2</i> of the machine <b>%3</b>. -- Het is niet gelukt om harde schijf<nobr><b>%1</b></nobr> te koppelen aan het slot <i>%2</i> van de machine <b>%3</b>. -+ Het is niet gelukt harde schijf<nobr><b>%1</b></nobr> te koppelen aan het slot <i>%2</i> van de machine <b>%3</b>. - - - Failed to attach the CD/DVD device (<nobr><b>%1</b></nobr>) to the slot <i>%2</i> of the machine <b>%3</b>. -- Het is niet gelukt om CD/DVD station <nobr><b>%1</b></nobr> te koppelen aan het slot <i>%2</i> van de machine <b>%3</b>. -+ Het is niet gelukt CD/DVD station <nobr><b>%1</b></nobr> te koppelen aan het slot <i>%2</i> van de machine <b>%3</b>. - - - Failed to attach the floppy device (<nobr><b>%1</b></nobr>) to the slot <i>%2</i> of the machine <b>%3</b>. -- Het is niet gelukt om diskette station <nobr><b>%1</b></nobr> te koppelen aan het slot <i>%2</i> van de machine <b>%3</b>. -+ Het is niet gelukt diskette station <nobr><b>%1</b></nobr> te koppelen aan het slot <i>%2</i> van de machine <b>%3</b>. - - - <p>Note that the storage unit of this medium will not be deleted and that it will be possible to use it later again.</p> -- <p>Let op: de opslag eenheid van dit medium wordt niet verwijderd en dus is het mogelijk deze later opnieuw aan de lijst toe te voegen.</p> -+ <p>Weet dat de opslageenheid van dit medium niet wordt verwijderd en het dus mogelijk is deze later opnieuw te gebruiken.</p> - - - <p>The VirtualBox Guest Additions do not appear to be available on this virtual machine, and shared folders cannot be used without them. To use shared folders inside the virtual machine, please install the Guest Additions if they are not installed, or re-install them if they are not working correctly, by selecting <b>Install Guest Additions</b> from the <b>Devices</b> menu. If they are installed but the machine is not yet fully started then shared folders will be available once it is.</p> -- <p>De VirtualBox gast aanvullingen lijken niet beschikbaar op deze virtuale machine en gedeelde mappen kunnen dan niet worden gebruikt. Om gedeelde mappen te gebruiken binnen de virtuele machine installeer de gast aanvullingen als deze nog niet zijn geïnstalleerd, of herisntalleer deze als ze niet goed werken. Selecteer <b>Installeer gast aanvullingen</b> uit het menu <b>Machine</b>. Zijn deze geïnstalleer maar is de machine nog niet helemaal gestart dan komen de gedeelde mappen beschikbaar zo dadelijk bechikbaar.</p> -+ <p>De VirtualBox Guest Additions lijken niet beschikbaar op deze virtuele machine. Gedeelde mappen kunnen dan niet worden gebruikt. Om gedeelde mappen te kunnen gebruiken binnen de virtuele machine installeert u de Guest Additions indien deze nog niet zijn geïnstalleerd. Indien wel, moet u deze herinstalleren. Selecteer <b>Installeer Guest Additions</b> uit het menu <b>Machine</b>. Zijn de Guest Additions wel goed geïnstalleerd maar is de machine nog niet helemaal gestart dan komen de gedeelde mappen waarschijnlijk beschikbaar zodra de machine wel volledig is opgestart.</p> - - - <p>The virtual machine window will be now switched to <b>fullscreen</b> mode. You can go back to windowed mode at any time by pressing <b>%1</b>.</p><p>Note that the <i>Host</i> key is currently defined as <b>%2</b>.</p><p>Note that the main menu bar is hidden in fullscreen mode. You can access it by pressing <b>Host+Home</b>.</p> -- <p>De virtuale machine schakelt nu over op de <b>schermvullende</b> modus. U kunt ieder moment terug keren door op <b>%1</b> te drukken. Let op: de <i>gastheer toets</i> is op dit moment <b>%2</b>.</p><p>Let op: het hoofdmenu is verborgen bij volledig scherm. U kunt dit menu benaderen door op de <b>gastheer toets+Home</b> te drukken.</p> -+ <p>De virtuele machine schakelt nu over op de <b>schermvullende</b> modus. U kunt ieder moment terugkeren door op <b>%1</b> te drukken. Let op: de <i>Hosttoets</i> is op dit moment <b>%2</b>.</p><p>Besef dat het hoofdmenu verborgen is bij volledig scherm. U kunt dit menu benaderen door op de <b>Hosttoets+Home</b> te drukken.</p> - - - <p>The virtual machine window will be now switched to <b>Seamless</b> mode. You can go back to windowed mode at any time by pressing <b>%1</b>.</p><p>Note that the <i>Host</i> key is currently defined as <b>%2</b>.</p><p>Note that the main menu bar is hidden in seamless mode. You can access it by pressing <b>Host+Home</b>.</p> -- <p>De virtuale machine schakelt nu over op de <b>naadloze</b> modus. U kunt ieder moment terug keren door op <b>%1</b> te drukken. Let op: de gastheer toets</i> is op dit moment <b>%2</b>.</p><p>Let op: het hoofdmenu is verborgen in naadloze modus. U kunt dit menu benaderen door op de <b>gastheer toets+Home</b> te drukken.</p> -+ <p>De virtuele machine schakelt nu over op de <b>naadloze</b> modus. U kunt ieder moment terugkeren door op <b>%1</b> te drukken. Let op: de <i>Hosttoets</i> is op dit moment <b>%2</b>.</p><p>Besef dat het hoofdmenu is verborgen in naadloze modus. U kunt dit menu benaderen door op de <b>Hosttoets+Home</b> te drukken.</p> - - - <p>The virtual machine window will be now switched to <b>Scale</b> mode. You can go back to windowed mode at any time by pressing <b>%1</b>.</p><p>Note that the <i>Host</i> key is currently defined as <b>%2</b>.</p><p>Note that the main menu bar is hidden in scale mode. You can access it by pressing <b>Host+Home</b>.</p> -- <p>De virtuale machine schakelt nu over op de <b>schaalbare</b> modus. U kunt ieder moment terug keren door op <b>%1</b> te drukken. Let op: de gastheer toets</i> is op dit moment <b>%2</b>.</p><p>Let op: het hoofdmenu is verborgen in schaalbare modus. U kunt dit menu benaderen door op de <b>gastheer toets+Home</b> te drukken.</p> -+ <p>De virtuele machine schakelt nu over op de <b>schaalbare</b> modus. U kunt ieder moment terugkeren door op <b>%1</b> te drukken. Let op: de <i>Hosttoets</i> is op dit moment <b>%2</b>.</p><p>Besf dat het hoofdmenu is verborgen in schaalbare modus. U kunt dit menu benaderen door op de <b>Hosttoets+Home</b> te drukken.</p> - - - Switch -@@ -5453,11 +5957,11 @@ - - - Failed to open the Extension Pack <b>%1</b>. -- Het is niet gelukt om het uitbreidingspakket <b>%1</b> te installeren. -+ Het is niet gelukt het Extention Pack <b>%1</b> te installeren. - - - <p>You are about to install a VirtualBox extension pack. Extension packs complement the functionality of VirtualBox and can contain system level software that could be potentially harmful to your system. Please review the description below and only proceed if you have obtained the extension pack from a trusted source.</p><p><table cellpadding=0 cellspacing=0><tr><td><b>Name:&nbsp;&nbsp;</b></td><td>%1</td></tr><tr><td><b>Version:&nbsp;&nbsp;</b></td><td>%2</td></tr><tr><td><b>Description:&nbsp;&nbsp;</b></td><td>%3</td></tr></table></p> -- <p>U staat op het punt om het uitbreidingspakket voor VirtualBox te installeren. Uitbreidingspakketten vullen de functionaliteit van VirtualBox aan en kan software op systeem niveau bevatten die mogelijk schadelijk is voor uw systeem. Bekijkt de omschrijving hieronder aub. en ga alleen verder als u een uitbreidingspakket van een betrouwbare bron hebt ontvangen.</p><p><table cellpadding=0 cellspacing=0><tr><td><b>Naam:&nbsp;&nbsp;</b></td><td>%1</td></tr><tr><td><b>Versie:&nbsp;&nbsp;</b></td><td>%2</td></tr><tr><td><b>Omschrijving:&nbsp;&nbsp;</b></td><td>%3</td></tr></table></p> -+ <p>U staat op het punt een Extention Pack voor VirtualBox te installeren. Uitbreidingspakketten vullen de functionaliteit van VirtualBox aan en kan software op systeemniveau bevatten dat mogelijk schadelijk is voor uw systeem. Bekijk de beschrijving hieronder alstublieft en ga alleen verder als u een uitbreidingspakket van een betrouwbare bron hebt ontvangen.</p><p><table cellpadding=0 cellspacing=0><tr><td><b>Naam:&nbsp;&nbsp;</b></td><td>%1</td></tr><tr><td><b>Versie:&nbsp;&nbsp;</b></td><td>%2</td></tr><tr><td><b>Beschrijving:&nbsp;&nbsp;</b></td><td>%3</td></tr></table></p> - - - &Install -@@ -5465,19 +5969,19 @@ - - - Extension packs complement the functionality of VirtualBox and can contain system level software that could be potentially harmful to your system. Please review the description below and only proceed if you have obtained the extension pack from a trusted source. -- Uitbreidingspakketten vullen de functionaliteit van VirtualBox aan en kan software op systeem niveau bevatten die mogelijk schadelijk is voor uw systeem. Bekijkt de omschrijving hieronder aub. en ga alleen verder als u een uitbreidingspakket van een betrouwbare bron hebt ontvangen. -+ Uitbreidingspakketten vullen de functionaliteit van VirtualBox aan en kan software op systeemniveau bevatten dat mogelijk schadelijk is voor uw systeem. Bekijk de beschrijving hieronder alstublieft en ga alleen verder als u een uitbreidingspakket van een betrouwbare bron hebt ontvangen. - - - <p>An older version of the extension pack is already installed, would you like to upgrade? <p>%1</p><p><table cellpadding=0 cellspacing=0><tr><td><b>Name:&nbsp;&nbsp;</b></td><td>%2</td></tr><tr><td><b>New Version:&nbsp;&nbsp;</b></td><td>%3</td></tr><tr><td><b>Current Version:&nbsp;&nbsp;</b></td><td>%4</td></tr><tr><td><b>Description:&nbsp;&nbsp;</b></td><td>%5</td></tr></table></p> -- <p>Een oudere versie van het uitbreidingspakket is al geïnstalleerd, wilt u deze opwaarderen? <p>%1</p><p><table cellpadding=0 cellspacing=0><tr><td><b>Naam:&nbsp;&nbsp;</b></td><td>%2</td></tr><tr><td><b>Nieuwe Versie:&nbsp;&nbsp;</b></td><td>%3</td></tr><tr><td><b>Huidige Versie:&nbsp;&nbsp;</b></td><td>%4</td></tr><tr><td><b>Omscrijving:&nbsp;&nbsp;</b></td><td>%5</td></tr></table></p> -+ <p>Een oudere versie van het uitbreidingspakket is al geïnstalleerd, wilt u deze opwaarderen? <p>%1</p><p><table cellpadding=0 cellspacing=0><tr><td><b>Naam:&nbsp;&nbsp;</b></td><td>%2</td></tr><tr><td><b>Nieuwe Versie:&nbsp;&nbsp;</b></td><td>%3</td></tr><tr><td><b>Huidige Versie:&nbsp;&nbsp;</b></td><td>%4</td></tr><tr><td><b>Beschrijving:&nbsp;&nbsp;</b></td><td>%5</td></tr></table></p> - - - &Upgrade -- &Opwaarderen -+ &Upgrade - - - <p>An newer version of the extension pack is already installed, would you like to downgrade? <p>%1</p><p><table cellpadding=0 cellspacing=0><tr><td><b>Name:&nbsp;&nbsp;</b></td><td>%2</td></tr><tr><td><b>New Version:&nbsp;&nbsp;</b></td><td>%3</td></tr><tr><td><b>Current Version:&nbsp;&nbsp;</b></td><td>%4</td></tr><tr><td><b>Description:&nbsp;&nbsp;</b></td><td>%5</td></tr></table></p> -- <p>Een nieuwere versie van het uitbreidingspakket is al geïnstalleerd, wilt u naar de lagere versie? <p>%1</p><p><table cellpadding=0 cellspacing=0><tr><td><b>Naam:&nbsp;&nbsp;</b></td><td>%2</td></tr><tr><td><b>Nieuwe Versie:&nbsp;&nbsp;</b></td><td>%3</td></tr><tr><td><b>huidige Versie:&nbsp;&nbsp;</b></td><td>%4</td></tr><tr><td><b>Omschrijving:&nbsp;&nbsp;</b></td><td>%5</td></tr></table></p> -+ <p>Een nieuwere versie van het uitbreidingspakket is al geïnstalleerd, wilt u naar de lagere versie? <p>%1</p><p><table cellpadding=0 cellspacing=0><tr><td><b>Naam:&nbsp;&nbsp;</b></td><td>%2</td></tr><tr><td><b>Nieuwe Versie:&nbsp;&nbsp;</b></td><td>%3</td></tr><tr><td><b>huidige Versie:&nbsp;&nbsp;</b></td><td>%4</td></tr><tr><td><b>Beschrijving:&nbsp;&nbsp;</b></td><td>%5</td></tr></table></p> - - - &Downgrade -@@ -5485,7 +5989,7 @@ - - - <p>The extension pack is already installed with the same version, would you like reinstall it? <p>%1</p><p><table cellpadding=0 cellspacing=0><tr><td><b>Name:&nbsp;&nbsp;</b></td><td>%2</td></tr><tr><td><b>Version:&nbsp;&nbsp;</b></td><td>%3</td></tr><tr><td><b>Description:&nbsp;&nbsp;</b></td><td>%4</td></tr></table></p> -- <p>Het uitbreidingspakket is al geïnstalleerd met dezelfde versie, wilt u deze opnieuw installeren? <p>%1</p><p><table cellpadding=0 cellspacing=0><tr><td><b>Naam:&nbsp;&nbsp;</b></td><td>%2</td></tr><tr><td><b>Versie:&nbsp;&nbsp;</b></td><td>%3</td></tr><tr><td><b>Omschrijving:&nbsp;&nbsp;</b></td><td>%4</td></tr></table></p> -+ <p>Er is al een uitbreidingspakket geïnstalleerd met dezelfde versie, wilt u deze opnieuw installeren? <p>%1</p><p><table cellpadding=0 cellspacing=0><tr><td><b>Naam:&nbsp;&nbsp;</b></td><td>%2</td></tr><tr><td><b>Versie:&nbsp;&nbsp;</b></td><td>%3</td></tr><tr><td><b>Beschrijving:&nbsp;&nbsp;</b></td><td>%4</td></tr></table></p> - - - &Reinstall -@@ -5493,11 +5997,11 @@ - - - <p>You are about to remove the VirtualBox extension pack <b>%1</b>.</p><p>Are you sure you want to proceed?</p> -- <p>U staat op het punt om het uitbreidingspakket <b>%1</b> te verwijderen. Weet u dit zeker?</p> -+ <p>U staat op het punt het uitbreidingspakket <b>%1</b> te verwijderen. Weet u dit zeker?</p> - - - The extension pack <br><nobr><b>%1</b><nobr><br> was installed successfully. -- Het uitbreidingspakket <br><nobr><b>%1</b><nobr><br> was succesvo geïnstalleerd. -+ Het uitbreidingspakket <br><nobr><b>%1</b><nobr><br> is met succes geïnstalleerd. - - - Deletion of all files belonging to the VM is currently disabled on Windows/x64 to prevent a crash. That will be fixed in the next release. -@@ -5505,7 +6009,7 @@ - - - <p>Cannot create the machine folder <b>%1</b> in the parent folder <nobr><b>%2</b>.</nobr></p><p>Please check that the parent really exists and that you have permissions to create the machine folder.</p> -- <p>Kan de map <b>%1</b> voor de machine niet aanmaken in de bovenligende map <nobr><b>%2</b>.</nobr></p><p>Controleer of de bovenliggende map bestaat en dan u rechten heeft om de machine map aan te maken.</p> -+ <p>Kan de map <b>%1</b> voor de machine niet aanmaken in de bovenliggende map <nobr><b>%2</b>.</nobr></p><p>Controleer of de bovenliggende map bestaat en dat u voldoende rechten hebt om de machinemap aan te maken.</p> - - - <p>USB 2.0 is currently enabled for this virtual machine. However this requires the <b><nobr>%1</nobr></b> to be installed.</p><p>Please install the Extension Pack from the VirtualBox download site. After this you will be able to re-enable USB 2.0. It will be disabled in the meantime unless you cancel the current settings changes.</p> -@@ -5513,114 +6017,172 @@ - - - Failed to register the virtual machine <b>%1</b>. -- -+ Het is niet gelukt de virtuele machine <b>%1</b> te registreren. - - - <p>The machine settings were changed while you were editing them. You currently have unsaved setting changes.</p><p>Would you like to reload the changed settings or to keep your own changes?</p> -- -+ <p>De machine-instellingen werden veranderd terwijl u deze aan het bewerken was. U hebt momenteel niet-opgeslagen veranderingen.</p><p> Wilt u de veranderde instellingen herladen of uw eigen veranderingen houden?</p> - - - Reload settings -- -+ Instellingen herladen - - - Keep changes -- -+ Behoud veranderingen - - - The virtual machine that you are changing has been started. Only certain settings can be changed while a machine is running. All other changes will be lost if you close this window now. -- -+ De virtuele machine die u aan het veranderen bent werd opgestart. Slechts bepaalde instellingen kunnen worden veranderd wanneer een machine draait. Alle andere veranderingen gaan verloren bij het afsluiten van dit venster. - - - Failed to clone the virtual machine <b>%1</b>. -- -+ Het is niet gelukt virtuele machine <b>%1<b/> te klonen. - - - <p>You are about to restore snapshot <b>%1</b>.</p><p>You can create a snapshot of the current state of the virtual machine first by checking the box below; if you do not do this the current state will be permanently lost. Do you wish to proceed?</p> -- -+ <p>U staat op het punt momentopname <b>%1</b>.</p><p> te herstellen. U kunt eerst een momentopname aanmaken van de huidige staat van de virtuele machine door het hokje beneden aan te vinken; indien u dit niet doet zal de huidige staat permanent verloren gaan. Wilt u doorgaan?</p> - - - Create a snapshot of the current machine state -- -+ Maak een momentopname van de huidige machinestaat - - - <p>Are you sure you want to restore snapshot <b>%1</b>?</p> -- -+ <p>Weet u zeker dat u momentopname <b>%1</b> wilt terugzetten?</p> - - - <p>Error changing medium type from <b>%1</b> to <b>%2</b>.</p> -- -+ <p>Fout bij veranderen medium type van <b>%1</b> in <b>%2</b>.</p> - - - <p>USB 2.0 is currently enabled for this virtual machine. However, this requires the <b><nobr>%1</nobr></b> to be installed.</p><p>Please install the Extension Pack from the VirtualBox download site. After this you will be able to re-enable USB 2.0. It will be disabled in the meantime unless you cancel the current settings changes.</p> -- -+ <p>USB 2.0 staat momenteel aan voor deze virtuele machine. Echter, dit vereist dat <b><nobr>%1</nobr></b> is geïnstalleerd.</p><p>Installeer het Extension Pack van de VirtualBox downloadsite. Na installatie kunt u USB 2.0 weer inschakelen. In de tussentijd zal USB 2.0 worden uitgeschakeld, tenzij u de huidige verandering van instelling annuleert.</p> - - - Could not load the Host USB Proxy Service (VERR_FILE_NOT_FOUND). The service might not be installed on the host computer -- -+ Kon de Host USB Proxy Service (VERR_FILE_NOT_FOUND) niet laden. De service is mogelijk niet geïnstalleerd op de host computer - - - VirtualBox is not currently allowed to access USB devices. You can change this by adding your user to the 'vboxusers' group. Please see the user manual for a more detailed explanation -- -+ VirtualBox wordt momenteel niet toegestaan USB-apparaten te benaderen. U kunt dit veranderen door uw gebruiker toe te voegen aan de 'vboxusers' groep. Lees de gebruikershandleiding voor een meer gedetailleerde uitleg - - - VirtualBox is not currently allowed to access USB devices. You can change this by allowing your user to access the 'usbfs' folder and files. Please see the user manual for a more detailed explanation -- -+ VirtualBox wordt momenteel niet toegestaan USB-apparaten te benaderen. U kunt dit veranderen door uw gebruiker toegang te verlenen tot de 'usbfs' map en haar bestanden. Lees de gebruikershandleiding voor een meer gedetailleerde uitleg - - - The USB Proxy Service has not yet been ported to this host -- -+ De USB Proxy Service is nog niet gepoort naar deze host - - - Could not load the Host USB Proxy service -- -+ Kon de Host USB Proxy service niet laden - - - Can't find snapshot named <b>%1</b>. -- -+ Kan momentopname met de naam <b>%1</b> niet vinden. - - - <p>Failed to save the downloaded file as <nobr><b>%1</b>.</nobr></p> -- <p>Het is niet gelukt het gedownloade bestand als <nobr><b>%1</b> op te slaan.</nobr></p> -+ <p>Het is niet gelukt het gedownloade bestand als <nobr><b>%1</b> op te slaan.</nobr></p> - - - <p>You have an old version (%1) of the <b><nobr>%2</nobr></b> installed.</p><p>Do you wish to download latest one from the Internet?</p> -- -+ <p>U hebt een oude versie (%1) van <b><nobr>%2</nobr></b> geïnstalleerd staan.</p><p>Wilt u de nieuwste versie downloaden van het internet?</p> - - - Download - extension pack -- Download -+ Download - - - <p>Are you sure you want to download the <b><nobr>%1</nobr></b> from <nobr><a href="%2">%2</a></nobr> (size %3 bytes)?</p> -- -+ <p>Weet u zeker dat u de <b><nobr>%1</nobr></b> van <nobr><a href="%2">%2</a></nobr> wilt downloaden (size %3 bytes)?</p> - - - <p>The <b><nobr>%1</nobr></b> has been successfully downloaded from <nobr><a href="%2">%2</a></nobr> and saved locally as <nobr><b>%3</b>.</nobr></p><p>Do you wish to install this extension pack?</p> -- -+ RL - lidwoord en werkwoord in eerste deel weggelaten, niet zeker van enkelvoud/meervoud in de naam van het extentiepakket, maar zo kan het ook ;) -+ <p><b><nobr>%1</nobr></b> met succes gedownload van <nobr><a href="%2">%2</a></nobr> en lokaal opgeslagen als <nobr><b>%3</b>.</nobr></p><p>Wilt u dit uitbreidingspakket installeren?</p> - - - Install - extension pack -- Installeer -+ Installeer - - - <p>The <b><nobr>%1</nobr></b> has been successfully downloaded from <nobr><a href="%2">%2</a></nobr> but can't be saved locally as <nobr><b>%3</b>.</nobr></p><p>Please choose another location for that file.</p> -- -+ RL - lidwoord en werkwoord in eerste deel weggelaten, niet zeker van enkelvoud/meervoud in de naam van het extentiepakket, maar zo kan het ook -+ <p><b><nobr>%1</nobr></b> met succes gedownload van <nobr><a href="%2">%2</a></nobr> en maar kan lokaal niet worden opgeslagen als <nobr><b>%3</b>.</nobr></p><p>Kies een andere locatie voor dat bestand.</p> -+ -+ -+ Network Operations Manager... -+ Netwerk Operations Manager... -+ -+ -+ Show Network Operations Manager -+ Toon Netwerk Operations Manager -+ -+ -+ <p>You are about to remove following inaccessible virtual machines from the machine list:</p><p>%1</p><p>Do you wish to proceed?</p> -+ <p>U staat op het punt de volgende niet-toegankelijke virtuele machines van de machinelijst te verwijderen:</p><p>%1</p><p>Wilt u doorgaan?</p> -+ -+ -+ <p>You are about to remove following virtual machines from the machine list:</p><p>%1</p><p>Would you like to delete the files containing the virtual machine from your hard disk as well? Doing this will also remove the files containing the machine's virtual hard disks if they are not in use by another machine.</p> -+ <p>U staat op het punt de volgende virtuele machines van de machinelijst te verwijderen:</p><p>%1</p><p>Wilt u eveneens de bestanden waarin de virtuele machine is opgenomen van uw harde schijf verwijderen? Dat doen zal ook de bestanden verwijderen waarin de virtuele harde schijven van de machine zijn opgenomen indien deze niet in gebruik zijn bij een andere machine.</p> - - -- <p>Failed to download the <b><nobr>%1</nobr></b> from <nobr><a href="%2">%2</a>.</nobr></p><p>%3</p> -- -+ <p>You are about to remove following virtual machines from the machine list:</p><p>%1</p><p>Would you like to delete the files containing the virtual machine from your hard disk as well?</p> -+ <p>U staat op het punt de volgende virtuele machines van de machinelijst te verwijderen:</p><p>%1</p><p>Wilt u eveneens de bestanden waarin de virtuele machine is opgenomen van uw harde schijf verwijderen?</p> - - - <p>You have version %1 of the <b><nobr>%2</nobr></b> installed.</p><p>You should download and install version %3 of this extension pack from Oracle!</p> -- -+ <p>U hebt versie %1 van <b><nobr>%2</nobr></b> geïnstalleerd staan.</p><p>U zou versie %3 van dit uitbreidingspakket van Oracle moeten downloaden en installeren!</p> - - - Ok - extension pack -- -+ OK -+ -+ -+ Do you wish to cancel all current network operations? -+ zie commentaar bij UINetworkManager -+ Wilt u alle huidige netwerk uitvoeringen annuleren? -+ -+ -+ Do you wish to cancel all current network operations or leave them running in the background? -+ Wilt u alle huidige netwerk uitvoeringen annuleren of deze verder op de achtergrond laten draaien? -+ -+ -+ Cancel All -+ Alles Annuleren -+ -+ -+ Leave in Background -+ In achtergrond laten -+ -+ -+ <p>Do you really want to send an ACPI shutdown signal to the virtual machine?</p> -+ <p>Wilt u echt een ACPI-shutdown signaal naar de virtual machine sturen?</p> -+ -+ -+ ACPI Shutdown -+ machine -+ ACPI afsluiten --> lijkt net alsof ACPI dan wordt uitgezet, dus maar onvertaald gelaten -+ ACPI-shutdown -+ -+ -+ <p>Do you really want to power off the virtual machine?</p><p>This will cause any unsaved data in applications running inside it to be lost.</p> -+ <p>Wilt u echt de virtuele machine uitzetten?</p><p>Dit zal als gevolg hebben dat alle niet-opgeslagen data van applicaties die binnenin draaien verloren zal gaan.</p> -+ -+ -+ Power Off -+ machine -+ Uitzetten -+ -+ -+ Failed to drop data. -+ Data drop niet gelukt. - - - -@@ -5646,7 +6208,7 @@ - - - Cancel the VirtualBox User Manual download -- Annuleer de download van het VirtualBox gebruikershandboek -+ Annuleer download van VirtualBox gebruikershandboek - - - Downloading the VirtualBox User Manual -@@ -5661,33 +6223,69 @@ - UIMiniProgressWidgetAdditions - - Cancel the VirtualBox Guest Additions CD image download -- Annuleer de download van de virtuele CD, met de VirtualBox gast uitbreidingen -+ Annuleer download VirtualBox Guest Additions CD image - - - Downloading the VirtualBox Guest Additions CD image from <nobr><b>%1</b>...</nobr> -- Download de virtuele CD, met de VirtualBox gast uitbreidingen bij <nobr><b>%1</b>...</nobr> -+ Download VirtualBox Guest Additions CD image van <nobr><b>%1</b>...</nobr> - - - - UIMiniProgressWidgetExtension - - Cancel the <nobr><b>%1</b></nobr> download -- -+ Annuleer de <nobr><b>%1</b></nobr> download - - - Downloading the <nobr><b>%1</b></nobr> from <nobr><b>%2</b>...</nobr> -- -+ Downloaden <nobr><b>%1</b></nobr> van <nobr><b>%2</b>...</nobr> - - - - UIMultiScreenLayout - - Virtual Screen %1 -- Virtual Scherm %1 -+ Virtueel Scherm %1 - - - Use Host Screen %1 -- Gebruik scherm gastheer %1 -+ Gebruik Host Scherm %1 -+ -+ -+ -+ UINetworkManager -+ -+ Network Operation -+ RL - Ik kan echt geen sluitende vertaling vinden voor 'operation': 'operatie' doet mij te veel aan ziekenhuizen denken; voor de rest: verrichting, bewerking, werking, uitvoering --> tis allemaal niet lekker sluitend. Microsoft vertaalt 'Network Operation' bv als 'Netwerkbeheer', maar dat sluit weer niet aan bij de overige strings....toch maar uitvoering gebruiken, maar be my guest.... -+ Netwerk Uitvoering -+ -+ -+ Restart network operation -+ Herstart netwerk uitvoering -+ -+ -+ Cancel network operation -+ Annuleer netwerk uitvoering -+ -+ -+ Error: %1. -+ Fout: %1. -+ -+ -+ Network Operations Manager -+ Netwerk Operations Manager -+ -+ -+ There are no active network operations. -+ Er zijn geen actieve netwerk uitvoeringen. -+ -+ -+ &Cancel All -+ &Alle Annuleren -+ -+ -+ Cancel all active network operations -+ Annuleer alle netwerk uitvoeringen - - - -@@ -5706,7 +6304,7 @@ - - - Summary -- Samenvatting -+ Samenvatting - - - <nobr>%1 Bytes</nobr> -@@ -5718,7 +6316,7 @@ - - - Select a file for the new hard disk image file -- Selecteer een bestand voor de nieuwe harde schijf image -+ Selecteer een bestand voor de nieuwe harde schijf image - - - < &Back -@@ -5740,12 +6338,12 @@ - - Location - summary -- Locatie -+ Locatie - - - Size - summary -- Omvang -+ Grootte - - - Bytes -@@ -5807,178 +6405,178 @@ - - %1_copy - copied virtual disk name -- -+ %1_copy - - - Create -- -+ Aanmaken - - - Copy Virtual Disk -- -+ Kopieer Virtuele Schijf - - - Copy -- -+ Kopieer - - - Welcome to the virtual disk copying wizard -- -+ Welkom bij de assistent voor het kopiëren van een virtuele schijf - - - <p>This wizard will help you to copy a virtual disk.</p> -- -+ <p>Deze assistent zal u helpen een kopie te maken van uw virtuele schijf </p> - - - Please select the virtual disk which you would like to copy if it is not already selected. You can either choose one from the list or use the folder icon beside the list to select a virtual disk file. -- -+ Kies een virtuele schijf om te kopiëren als u deze nog niet geselecteerd hebt. U kunt een schijf kiezen uit de lijst of door op de mappenikoon naast de lijst te klikken en daar een schijfbestand te kiezen. - - - &VDI (VirtualBox Disk Image) -- -+ &VDI (VirtualBox Disk Image - - - V&MDK (Virtual Machine Disk) -- -+ V&MDK (Virtual Machine Disk) - - - V&HD (Virtual Hard Disk) -- -+ V&HD (Virtual Hard Disk) - - - Welcome to the virtual disk creation wizard -- -+ Welkom bij de assistent voor het aanmaken van een virtuele schijf - - - <p>This wizard will help you to create a new virtual disk for your virtual machine.</p> -- -+ <p>Deze assistent helpt u bij het aanmaken van een nieuwe virtuele harde schijf voor uw virtuele machine.</p> - - - <p>Please choose the type of file that you would like to use for the new virtual disk. If you do not need to use it with other virtualization software you can leave this setting unchanged.</p> -- -+ <p>Kies het bestandstype dat u wilt gebruiken voor deze nieuwe virtuele schijf. Indien u niet van plan bent deze virtuele schijf met andersoortige virtualisatiesoftware te gebruiken kunt u deze instelling onveranderd laten.</p> - - - Virtual disk file type -- -+ Bestandstype virtuele schijf - - - Please choose the type of file that you would like to use for the new virtual disk. If you do not need to use it with other virtualization software you can leave this setting unchanged. -- -+ Kies het bestandstype dat u wilt gebruiken voor deze nieuwe virtuele schijf. Indien u niet van plan bent deze virtuele schijf met andersoortige virtualisatiesoftware te gebruiken kunt u deze instelling onveranderd laten. - - - Virtual disk storage details -- -+ Opslagdetails virtuele schijf - - - Please choose whether the new virtual disk file should be allocated as it is used or if it should be created fully allocated. -- -+ Kies of het nieuwe virtueel schijfbestand gealloceerd moet worden tijdens gebruik of dat het volledig gealloceerd aangemaakt moet worden. - - -- <p>A <b>dynamically allocated</b> virtual disk file will only use space on your physical hard disk as it fills up, although it will not shrink again automatically when space on it is freed.</p> -- -+ <p>A <b>dynamically allocated</b> virtual disk file will only use space on your physical hard disk as it fills up (up to a <b>fixed maximum size</b>), although it will not shrink again automatically when space on it is freed.</p> -+ <p>Een <b>dynamisch gealloceerd</b> virtueel schijfbestand zal tijdens gebruik groeien tot de aangegeven maximale grootte en zo in het begin minder ruimte op uw fysieke harde schijf innemen, hoewel het schijfbestand niet automatisch zal krimpen wanneer ruimte wordt vrijgemaakt.</p> - - - <p>A <b>fixed size</b> virtual disk file may take longer to create on some systems but is often faster to use.</p> -- -+ <p>Aanmaken van een virtueel schijfbestand van <b>gefixeerde grootte</b> kan op sommige systemen langer duren maar is vaak sneller in het gebruik.</p> - - - <p>You can also choose to <b>split</b> the virtual disk into several files of up to two gigabytes each. This is mainly useful if you wish to store the virtual machine on removable USB devices or old systems, some of which cannot handle very large files. -- -+ <p>U kunt er ook voor kiezen het virtueel schijfbestand <b>te splitsen</b> in meerdere bestanden van maximaal twee gigabytes elk. Dit is hoofdzakelijk handig indien u de virtuele machine wilt opslaan op verwijderbare USB-apparaten of op oudere systemen, waarvan sommige niet kunnen omgaan met erg grote bestanden. - - - &Dynamically allocated -- -+ &Dynamisch gealloceerd - - - &Fixed size -- -+ &Vaste grootte - - - &Split into files of less than 2GB -- -+ &splits in bestanden minder groot dan 2GB - - - Virtual disk file location and size -- -+ Locatie en Grootte virtuele schijf - - - Select the size of the virtual disk in megabytes. This size will be reported to the Guest OS as the maximum size of this virtual disk. -- -+ Selecteer de grootte van de virtuele schijf in megabytes. Deze grootte zal aan het gast-OS worden gemeld als de maximale grootte van deze virtuele schijf. - - - Virtual disk file location -- -+ Locatie virtuele schijf - - - Please type the name of the new virtual disk file into the box below or click on the folder icon to select a different folder to create the file in. -- -+ Typ de naam van de nieuwe virtuele schijf in de ruimte beneden of klik op het mapikoontje, kies een andere map en maak daar het bestand in aan. - - - <nobr>%1 (%2 B)</nobr> -- <nobr>%1 (%2 B)</nobr> -+ <nobr>%1 (%2 B)</nobr> - - - You are going to create a new virtual disk with the following parameters: -- -+ U staat op het punt een nieuwe virtuele harde schijf aan te maken met de volgende parameters: - - - You are going to create a copied virtual disk with the following parameters: -- -+ U staat op het punt een gekopieerde virtuele harde schijf aan te maken met de volgende parameters: - - - If the above settings are correct, press the <b>%1</b> button. Once you press it the new virtual disk file will be created. -- -+ Indien bovenstaande instellingen correct zijn, klik op de <b>%1<b/> knop. Eenmaal aangeklikt zal de nieuwe virtuele schijf worden aangemaakt. - - - %1 B -- %1 B -+ %1 B - - - File type - summary -- -+ Bestandstype - - - Details - summary -- -+ Details - - - H&DD (Parallels Hard Disk) -- -+ H&DD (Parallels Hard Disk) - - - Q&ED (QEMU enhanced disk) -- -+ Q&ED (QEMU enhanced disk) - - - &QCOW (QEMU Copy-On-Write) -- -+ &QCOW (QEMU Copy-On-Write) - - - - UINewHDWizardPageFormat - - File type -- -+ Bestandstype - - - - UINewHDWizardPageOptions - - &Location -- &Locatie -+ &Locatie - - - &Size -- &Omvang -+ Gr&ootte - - - - UINewHDWizardPageVariant - - Storage details -- -+ Opslagdetails - - - -@@ -5993,11 +6591,11 @@ - - - Virtual disk to copy -- -+ Virtuele schijf te kopiëren - - - Choose a virtual hard disk file... -- kies een virtueel harde schijf bestand... -+ Kies een virtueel harde schijf bestand... - - - -@@ -6212,7 +6810,7 @@ - - - Create -- -+ Aanmaken - - - -@@ -6223,14 +6821,14 @@ - - - <p>This wizard will guide you through the steps that are necessary to create a new virtual machine for VirtualBox.</p><p>%1</p> -- <p>Deze assistent help u bij het aanmaken van een nieuwe virtuele machine in VirtualBox.</p><p>%1</p> -+ <p>Deze assistent help u bij het aanmaken van een nieuwe virtuele machine voor VirtualBox.</p><p>%1</p> - - - - UINewVMWzdPage2 - - <p>Enter a name for the new virtual machine and select the type of the guest operating system you plan to install onto the virtual machine.</p><p>The name of the virtual machine usually indicates its software and hardware configuration. It will be used by all VirtualBox components to identify your virtual machine.</p> -- <p>Geef een naam op voor de nieuwe virtuele machine en selecteer het soort besturingssysteem die u van plan bent te installeren op de virtuele machine.</p><p>De naam van de virtuele machine geeft over het algemeen aan welke soft- en hardware wordt gebruikt. Deze naam wordt door alle VirtualBox componenten gebruikt om uw virtuele machine te identificeren.</p> -+ <p>Geef een naam op voor de nieuwe virtuele machine en selecteer het soort besturingssysteem dat u van plan bent op deze virtuele machine te installeren.</p><p>De naam van de virtuele machine geeft over het algemeen aan welke soft- en hardware wordt gebruikt. Deze naam wordt door alle VirtualBox componenten gebruikt om uw virtuele machine te identificeren.</p> - - - N&ame -@@ -6249,11 +6847,11 @@ - UINewVMWzdPage3 - - <p>Select the amount of base memory (RAM) in megabytes to be allocated to the virtual machine.</p> -- <p>Selecteer de hoeveelheid hoofdgeheugen (RAM) in megabytes, die aan de virtuele machine wordt toegewezen.</p> -+ <p>Selecteer de hoeveelheid basisgeheugen (RAM) in megabytes die aan de virtuele machine moet worden toegewezen.</p> - - - Base &Memory Size -- Hoeveelheid &Hoofdgeheugen -+ Grootte &Basisgeheugen - - - MB -@@ -6265,7 +6863,7 @@ - - - The recommended base memory size is <b>%1</b> MB. -- De aanbevolen hoeveelheid geheugen bedraagt <b>%1</b> MB. -+ De aanbevolen hoeveelheid basisgeheugen bedraagt <b>%1</b> MB. - - - MB -@@ -6301,26 +6899,26 @@ - - - Start-up &Disk -- Opstart harde &schijf -+ Opstart harde &schijf - - - <p>If you wish you can now add a start-up disk to the new machine. You can either create a new virtual disk or select one from the list or from another location using the folder icon.</p><p>If you need a more complex virtual disk setup you can skip this step and make the changes to the machine settings once the machine is created.</p> -- <p>Selecteer een harde schijf die als opstartschijf dient voor de virtuele machine. U kunt of een nieuwe harde schijf aanmaken of een bestaande kiezen uit de keuzelijst of op de overeenkomstige knop te klikken (om het bestand-open venster op te roepen). </p><p>Heeft u een complexe opzet nodig van de harde schijf, dan kunt u deze stap overslaan en op een later tijdstip de harde schijf koppelen. Dit gaat dan via het VM instellingen dialoog.</p> -+ <p>Selecteer een harde schijf die als opstartschijf zal dienen voor deze nieuwe machine. U kunt of een nieuwe harde schijf aanmaken, of een bestaande kiezen uit de keuzelijst, of een schijf kiezen van een andere locatie door op de map-ikoon te klikken. </p><p>Hebt u een meer complexe instelling van de harde schijf nodig, dan kunt u deze stap overslaan en instellingen van de machine wijzigen als de machine eenmaal is aangemaakt.</p> - - - Choose a virtual hard disk file... -- kies een virtueel harde schijf bestand... -+ Kies een virtueel harde schijf bestand... - - - The recommended size of the start-up disk is <b>%1</b>. -- De aanbevolen grote van de opstart harde schijf is <b>%1</b>. -+ De aanbevolen grootte van de opstart harde schijf is <b>%1</b>. - - - - UINewVMWzdPage5 - - <p>You are going to create a new virtual machine with the following parameters:</p> -- <p>U staat op het punt een nieuwe virtuele machine aan te maken met de onderstaande parameters::</p> -+ <p>U staat op het punt een nieuwe virtuele machine aan te maken met de volgende parameters:</p> - - - Summary -@@ -6334,7 +6932,7 @@ - - OS Type - summary -- Soort besturingssystem -+ OS Type - - - Base Memory -@@ -6349,11 +6947,11 @@ - - Start-up Disk - summary -- Opstartschijf -+ Opstartschijf - - - <p>If the above is correct press the <b>%1</b> button. Once you press it, a new virtual machine will be created. </p><p>Note that you can alter these and all other setting of the created virtual machine at any time using the <b>Settings</b> dialog accessible through the menu of the main window.</p> -- <p>Is het bovenstaande juist? Druk op de <b>%1</b> knop. Zodra u de knop indrukt wordt de nieuwe virtuale machine aangemaakt. </p><p>Let op, u kunt deze en andere instellingen, van deze virtule machine, op elk moment wijzigen via het dialoog <b>Instellingen</b> uit het menu in het hoofdscherm.</p> -+ <p>Is het bovenstaande juist? Klik op de <b>%1</b> knop. Zodra u de knop aanklikt wordt de nieuwe virtuele machine aangemaakt. </p><p>Weet dat u deze en andere instellingen van deze virtuele machine op elk moment kunt wijzigen via het dialoog <b>Instellingen</b> uit het menu in het hoofdscherm.</p> - - - -@@ -6469,6 +7067,34 @@ - - - -+ UISelectorWindow -+ -+ Show Toolbar -+ Toon werkbalk -+ -+ -+ Show Statusbar -+ Toon statusbalk -+ -+ -+ Select a virtual machine file -+ Selecteer een virtuele machine bestand -+ -+ -+ Virtual machine files (%1) -+ Bestanden virtuele machine (%1) -+ -+ -+ <h3>Welcome to VirtualBox!</h3><p>The left part of this window is a list of all virtual machines on your computer. The list is empty now because you haven't created any virtual machines yet.<img src=:/welcome.png align=right/></p><p>In order to create a new virtual machine, press the <b>New</b> button in the main tool bar located at the top of the window.</p><p>You can press the <b>%1</b> key to get instant help, or visit <a href=http://www.virtualbox.org>www.virtualbox.org</a> for the latest information and news.</p> -+ <h3>Welkom bij VirtualBox!</h3><p>Het linker deel van dit venster is bedoeld om alle virtuele machines die op uw compter staan weer te geven. De lijst is nu leeg omdat u nog geen virtuele machines hebt aangemaakt.<img src=:/welcome.png align=right/></p><p>Om een nieuwe virtuele machine aan te maken klikt u op de knop <b>Nieuw</b> in de werkbalk boven in het venster.</p><p>De toets <b>%1</b> opent een helpscherm, of bezoek <a href=http://www.virtualbox.org>www.virtualbox.org</a> voor de laatste informatie en nieuws.</p> -+ -+ -+ Manager -+ Note: main window title which is pretended by the product name. -+ Manager -+ -+ -+ - UISession - - Install -@@ -6479,7 +7105,7 @@ - UISettingsDialog - - <i>Select a settings category from the list on the left-hand side and move the mouse over a settings item to get more information.</i> -- <i>Selecteer een categorie instellingen uit de lijst aan de linkerkant en beweeg de muis over de instelling voor meer informatie.</i> -+ <i>Selecteer een categorie instellingen uit de lijst aan de linkerkant en beweeg de muis over een instellingsmogelijkheid voor meer informatie.</i> - - - On the <b>%1</b> page, %2 -@@ -6534,7 +7160,11 @@ - - - Proxy -- -+ Proxy -+ -+ -+ Display -+ Beeldscherm - - - -@@ -6624,7 +7254,7 @@ - - - Replaces the current text with the content of a file. -- Vervangt de bestaande tekst met de inhoud van het opgegeven bestand. -+ Vervangt de bestaande tekst met de inhoud van een opgegeven bestand. - - - Text (*.txt);;All (*.*) -@@ -6723,10 +7353,17 @@ - - - -+ UIUpdateStepVirtualBox -+ -+ Checking for a new VirtualBox version... -+ Controleren op een nieuwe VirtualBox versie... -+ -+ -+ - UIVMCloseDialog - - Close Virtual Machine -- Sluit de virtuele machine af -+ Sluit virtuele machine af - - - You want to: -@@ -6734,23 +7371,23 @@ - - - <p>Saves the current execution state of the virtual machine to the physical hard disk of the host PC.</p><p>Next time this machine is started, it will be restored from the saved state and continue execution from the same place you saved it at, which will let you continue your work immediately.</p><p>Note that saving the machine state may take a long time, depending on the guest operating system type and the amount of memory you assigned to the virtual machine.</p> -- <p>Bewaart de huidige uitvoeringsstatus van de virtuele machine op de harde schijf van de gastheer PCs.</p><p>De volgende keer dan deze machine wordt gestart zal deze teruggeplaatst worden vanuit de opgeslagen status en doorgaan met de uitvoering vanaf dezelfde plaats op het moment van opslaan.</p><p>Let er op dat het opslaan van de status van de machine enige tijd duurt, afhankelijk van het soort besturingssysteem van de gast en de hoeveelheid geheugen die aan de virtuele machine is toegewezen.</p> -+ <p>Bewaart de huidige uitvoeringsstatus van de virtuele machine op de fysieke harde schijf van de host-PC.</p><p>De volgende keer als deze machine wordt gestart wordt de opgeslagen staat hersteld en doorgegaan vanaf hetzelfde punt waarop u het hebt opgeslagen; hierdoor kunt u direct doorgaan met waar u mee bezig was.</p><p>Wees bewust dat het opslaan van de staat van de machine enige tijd kan duren, afhankelijk van het soort besturingssysteem van de gast en de hoeveelheid geheugen die aan de virtuele machine is toegewezen.</p> - - - &Save the machine state -- De status van de machine &opslaan -+ De staat van de machine &opslaan - - - <p>Sends the ACPI Power Button press event to the virtual machine.</p><p>Normally, the guest operating system running inside the virtual machine will detect this event and perform a clean shutdown procedure. This is a recommended way to turn off the virtual machine because all applications running inside it will get a chance to save their data and state.</p><p>If the machine doesn't respond to this action then the guest operating system may be misconfigured or doesn't understand ACPI Power Button events at all. In this case you should select the <b>Power off the machine</b> action to stop virtual machine execution.</p> -- <p>Stuurt een ACPI startknop gebeurtenis naar de virtuele machine.</p><p>Normaal gesproken zal het besturingssysteem van de gast in de virtuele machine deze gebeurtenis opmerken en een nette afsluit procedure uitvoeren. Dit is de aan te bevelen manier om een virtuele machine uit te zetten omdat alle programma's, die daarop uitgevoerd worden, de kans krijgen om hun gegevens en hun status op te slaan.</p><p>Reageert de machine niet op deze actie, dan kan het besturingssteem van de gast verkeerd geconfigureerd zijn of begrijpt deze de ACPI startknop gebeurtenis niet. Selecteer in dat geval de<b>machine uitzetten</b>actie om virtuele machine daadwerkelijk te stoppen.</p> -+ <p>Stuurt een ACPI startknopgebeurtenis naar de virtuele machine.</p><p>Normaal gesproken zal het besturingssysteem van de gast in de virtuele machine deze gebeurtenis opmerken en een nette afsluitprocedure uitvoeren. Dit is de aan te bevelen manier om een virtuele machine uit te zetten omdat alle programma's, die daarop uitgevoerd worden, de kans krijgen om hun gegevens en hun status op te slaan.</p><p>Reageert de machine niet op deze actie, is het mogelijk dat het besturingssteem van de gast verkeerd geconfigureerd is of dat het gastbesturingssysteem de ACPI startknopgebeurtenis niet begrijpt. Selecteer in dat geval de<b>Machine uitzetten</b>actie om virtuele machine daadwerkelijk te stoppen.</p> - - - S&end the shutdown signal -- S&tuur het signaal uitzetten -+ S&tuur het shutdown signaal - - - <p>Turns off the virtual machine.</p><p>Note that this action will stop machine execution immediately so that the guest operating system running inside it will not be able to perform a clean shutdown procedure which may result in <i>data loss</i> inside the virtual machine. Selecting this action is recommended only if the virtual machine does not respond to the <b>Send the shutdown signal</b> action.</p> -- <p>Schakelt de virtuele machine uit.</p><p>Let er op dat deze actie de machine direct stop zet en dus het besturingssysteem van de gast niet in de gelegenheid stelt om een nette afsluitprocedure uit te voeren. Dit kan lijden tot verlies van <i>gegevens</i> in de virtuele machine. Het selecteren van deze actie is alleen aan te bevelen als de virtuele machine niet reageert op het <b>signaal voor het uitschakelen</b>.</p> -+ <p>Schakelt de virtuele machine uit.</p><p>Let er op dat deze actie de machine direct stopzet en dus het besturingssysteem van de gast niet in de gelegenheid stelt een nette afsluitprocedure uit te voeren. Dit kan lijden tot <i>verlies van gegevens</i> binnen de virtuele machine. Het selecteren van deze actie is alleen aan te bevelen als de virtuele machine niet reageert op het <b>Stuur het shutdown signaal</b>.</p> - - - &Power off the machine -@@ -6758,15 +7395,15 @@ - - - Restore the machine state stored in the current snapshot -- Zet de status van de machine terug zoals opgeslagen in het huidge momentopname -+ Zet de staat van de machine terug zoals opgeslagen in de huidige momentopname - - - <p>When checked, the machine will be returned to the state stored in the current snapshot after it is turned off. This is useful if you are sure that you want to discard the results of your last sessions and start again at that snapshot.</p> -- <p>Is deze optie aangevinkt dan zal de status van de machine, nadat deze is uitgezet, teruggeplaatst worden naar de status zoals in de huidige momentopname is vastgelegd. Dit is handig als u er zeker van bent dat u de resultaten van uw laatste sessie niet wil bewaren en dus terug wilt gaan naar de huidige momentopname.</p> -+ <p>Aangevinkt zal de staat van de machine nadat deze is uitgezet teruggezet worden naar de staat zoals deze in de huidige momentopname is vastgelegd. Dit is handig als u er zeker van bent dat u de resultaten van uw laatste sessie niet wilt bewaren en de volgende keer wilt beginnen vanaf de huidige momentopname.</p> - - - &Restore current snapshot '%1' -- &zet de huidige momentopname terug '%1' -+ &Terugzetten huidige momentopname '%1' - - - -@@ -6794,7 +7431,7 @@ - - <nobr><b>%1</b><br></nobr><nobr>Inaccessible since %2</nobr> - Inaccessible VM tooltip (name, last state change) -- <nobr><b>%1</b><br></nobr><nobr>Niet benaderbaar sindst %2</nobr> -+ <nobr><b>%1</b><br></nobr><nobr>Niet benaderbaar sinds %2</nobr> - - - S&how -@@ -6818,47 +7455,119 @@ - &Hervatten - - -- Resume the execution of the virtual machine -- Hervat de uitvoering van de virtuele machine -+ Resume the execution of the virtual machine -+ Hervat de uitvoering van de virtuele machine -+ -+ -+ &Pause -+ &Pauze -+ -+ -+ Suspend the execution of the virtual machine -+ Onderbreek de uitvoering van de virtuele machine -+ -+ -+ -+ UIVMLogViewer -+ -+ Log Viewer -+ mooi woord voor viewer -+ Log Viewer -+ -+ -+ &Save -+ &Opslaan -+ -+ -+ &Refresh -+ &Verversen -+ -+ -+ %1 - VirtualBox Log Viewer -+ %1 - VirtualBox Log Viewer -+ -+ -+ <p>No log files found. Press the <b>Refresh</b> button to rescan the log folder <nobr><b>%1</b></nobr>.</p> -+ <p>Geen logbestanden gevonden. Klik op de knop <b>Verversen</b> om de map <nobr><b>%1</b></nobr> met logs opnieuw te scannen.</p> -+ -+ -+ Save VirtualBox Log As -+ Sla VirtualBox Log op als -+ -+ -+ &Find -+ &Zoek -+ -+ -+ Close -+ Sluiten -+ -+ -+ Close the search panel -+ Sluit het zoekpaneel -+ -+ -+ Enter a search string here -+ Geef een zoektekst op -+ -+ -+ &Previous -+ &Vorige -+ -+ -+ Search for the previous occurrence of the string -+ Zoek achteruit naar zoektekst -+ -+ -+ &Next -+ &Volgende -+ -+ -+ Search for the next occurrence of the string -+ Zoek vooruit naar zoektekst - - -- &Pause -- &Pauze -+ C&ase Sensitive -+ Onderscheid &Hoofd- en kleine letters - - -- Suspend the execution of the virtual machine -- Onderbreek de uitvoering van de virtuele machine -+ Perform case sensitive search (when checked) -+ Houd rekening met hoofd- en kleine letters (mits aangevinkt) tijdens zoeken -+ -+ -+ String not found -+ Gezochte tekst niet gevonden - - - - UIVMPreviewWindow - - Update Disabled -- -+ Update uitgeschakeld - - - Every 0.5 s -- -+ Elke 0,5 s - - - Every 1 s -- -+ Elke 1 s - - - Every 2 s -- -+ Elke 2 s - - - Every 5 s -- -+ Elke 5 s - - - Every 10 s -- -+ Elke 10 s - - - No Preview -- -+ Geen Preview - - - -@@ -7490,11 +8199,11 @@ - VBoxFilePathSelectorWidget - - <reset to default> -- <de standaard terugzetten> -+ <standaard terugzetten> - - - The actual default path value will be displayed after accepting the changes and opening this dialog again. -- Het actuele waarde van het standaard pad wordt weergegeven na acceptatie van de wijzigingen en het opnieuw openen van deze dialoog. -+ De daadwerkelijke waarde van het standaardpad wordt pas weergegeven na acceptatie van de wijzigingen en het opnieuw openen van dit dialoog. - - - <not selected> -@@ -7502,11 +8211,11 @@ - - - Please use the <b>Other...</b> item from the drop-down list to select a path. -- Gebruik het <b>andere...</b> item uit de keuzelijst om het gewenste pad te selecteren. -+ Gebruik het <b>Andere...</b> item uit de keuzelijst om het gewenste pad te selecteren. - - - Other... -- andere... -+ Andere... - - - Reset -@@ -7518,7 +8227,7 @@ - - - Resets the folder path to the default value. -- Zet het pad naar de map terug op de standaard waarde. -+ Zet het pad naar de map terug op de standaardwaarde. - - - Opens a dialog to select a different file. -@@ -7526,7 +8235,7 @@ - - - Resets the file path to the default value. -- Zet het pad naar het bestand terug op de standaard waarde. -+ Zet het pad naar het bestand terug op de standaardwaarde. - - - &Copy -@@ -7605,7 +8314,7 @@ - - <nobr>Vendor ID: %1</nobr><br><nobr>Product ID: %2</nobr><br><nobr>Revision: %3</nobr> - USB device tooltip -- <nobr>Leveranciers ID: %1</nobr><br><nobr>Product ID: %2</nobr><br><nobr>Revisen: %3</nobr> -+ <nobr>Leveranciers ID: %1</nobr><br><nobr>Product ID: %2</nobr><br><nobr>Revisie: %3</nobr> - - - <br><nobr>Serial No. %1</nobr> -@@ -7630,7 +8339,7 @@ - - Base Memory - details report -- Geheugen -+ Basisgeheugen - - - General -@@ -7640,12 +8349,12 @@ - - Video Memory - details report -- Video geheugen -+ Videogeheugen - - - Boot Order - details report -- Opstart volgorde -+ Opstartvolgorde - - - ACPI -@@ -7670,22 +8379,22 @@ - - Enabled - details report (ACPI) -- Geactiveerd -+ Ingeschakeld - - - Disabled - details report (ACPI) -- Gedeactiveerd -+ Uitgeschakeld - - - Enabled - details report (IO APIC) -- Geactiveerd -+ Ingeschakeld - - - Disabled - details report (IO APIC) -- Gedeactiveerd -+ Uitgeschakeld - - - Not mounted -@@ -7737,7 +8446,7 @@ - - Disabled - details report (audio) -- Gedeactiveerd -+ Uitgeschakeld - - - Audio -@@ -7762,7 +8471,7 @@ - - Disabled - details report (network) -- Gedeactiveerd -+ Uitgeschakeld - - - Network -@@ -7772,7 +8481,7 @@ - - Device Filters - details report (USB) -- Apparaat filters -+ Apparaatfilters - - - %1 (%2 active) -@@ -7782,7 +8491,7 @@ - - Disabled - details report (USB) -- Gedeactiveerd -+ Uitgeschakeld - - - Powered Off -@@ -7802,12 +8511,12 @@ - - Running - MachineState -- draaiend -+ Draaiend - - - Paused - MachineState -- Gepauseerd -+ Gepauzeerd - - - Starting -@@ -7887,12 +8596,13 @@ - - Immutable - DiskType -- Niet te veranderen -+ Onveranderbaar - - - Writethrough - DiskType -- Doorschrijven -+ begrip -+ Writethrough - - - Null -@@ -7957,7 +8667,7 @@ - - NAT - NetworkAttachmentType -- -+ NAT - - - Bridged Adapter -@@ -7997,27 +8707,28 @@ - - Held - USBDeviceState -- Vast gehouden -+ Vastgehouden - - - Captured - USBDeviceState -- gevangen -+ Niet beschikbaar dus -+ Geclaimt - - - Disabled - ClipboardType -- Gedeactiveerd -+ Uitgeschakeld - - - Host To Guest - ClipboardType -- Gastheer naar gast -+ Host naar gast - - - Guest To Host - ClipboardType -- Gast naar gastheer -+ Gast naar Host - - - Bidirectional -@@ -8032,7 +8743,7 @@ - - Disabled - details report (serial ports) -- Gedeactiveerd -+ Uitgeschakeld - - - Serial Ports -@@ -8082,7 +8793,7 @@ - - User-defined - serial port -- Door de gebruiker gedefineerd -+ Gebruiker Gedefineerd - - - VT-x/AMD-V -@@ -8092,12 +8803,12 @@ - - Enabled - details report (VT-x/AMD-V) -- Geactiveerd -+ Ingeschakeld - - - Disabled - details report (VT-x/AMD-V) -- Gedeactiveerd -+ Uitgeschakeld - - - Controller -@@ -8112,12 +8823,12 @@ - - Disabled - details report (parallel ports) -- Gedeactiveerd -+ Uitgeschakeld - - - Parallel Ports - details report -- Parallelle porten -+ Parallelle poorten - - - PulseAudio -@@ -8137,17 +8848,17 @@ - - PAE/NX - details report -- -+ PAE/NX - - - Enabled - details report (PAE/NX) -- Geactiveerd -+ Ingeschakeld - - - Disabled - details report (PAE/NX) -- Gedeactiveerd -+ Uitgeschakeld - - - USB -@@ -8162,12 +8873,12 @@ - - IDE - StorageBus -- -+ IDE - - - SATA - StorageBus -- -+ SATA - - - Primary -@@ -8242,7 +8953,7 @@ - - <nobr>Manufacturer: %5</nobr> - USB filter tooltip -- <nobr>Leverancier: %5</nobr> -+ <nobr>Fabrikant: %5</nobr> - - - <nobr>Serial No.: %1</nobr> -@@ -8322,38 +9033,38 @@ - - Enabled - details report (3D Acceleration) -- Geactiveerd -+ Ingeschakeld - - - Disabled - details report (3D Acceleration) -- Gedeactiveerd -+ Uitgeschakeld - - - Setting Up - MachineState -- Opstellen -+ Opzetten - - - Differencing - DiskType -- Bijzondere -+ RL - Definitie: "A differencing disk is a virtual hard disk you use to isolate changes to a virtual hard disk or the guest operating system by storing them in a separate file." Een techterm dus. Niet vertalen. -+ Differencing - - - Nested Paging - details report -- Geneste paging -- Nested Paging -+ Geneste paging - - - Enabled - details report (Nested Paging) -- Geactiveerd -+ Ingeschakeld - - - Disabled - details report (Nested Paging) -- Gedeactiveerd -+ Uitgeschakeld - - - Internal network, '%1' -@@ -8448,12 +9159,12 @@ - - Enabled - details report (2D Video Acceleration) -- Activeer -+ Ingeschakeld - - - Disabled - details report (2D Video Acceleration) -- Gedeactiveerd -+ Uitgeschakeld - - - 2D Video Acceleration -@@ -8478,7 +9189,8 @@ - - Guru Meditation - MachineState -- Meditatie door een specialist -+ Guru hier maar laten staan -+ Guru Meditatie - - - Teleporting -@@ -8488,7 +9200,7 @@ - - Taking Live Snapshot - MachineState -- Maakt een momentopname tijdens het werk -+ Maakt een Live momentopname - - - Teleporting Paused VM -@@ -8498,7 +9210,7 @@ - - Restoring Snapshot - MachineState -- Terugzetten van de momentopname -+ Terugzetten van momentopname - - - Deleting Snapshot -@@ -8548,7 +9260,7 @@ - - Floppy Device %1 - New Storage UI : Slot Name -- Diskette apparaat %1 -+ Diskette station %1 - - - Paravirtualized Network (virtio-net) -@@ -8568,12 +9280,12 @@ - - Host Drive '%1' - medium -- Station van de gastheer '%1' -+ Host Station '%1' - - - Host Drive %1 (%2) - medium -- Station van de gastheer %1 (%2) -+ Host Station %1 (%2) - - - <p style=white-space:pre>Type (Format): %1 (%2)</p> -@@ -8593,7 +9305,7 @@ - - <i>Checking accessibility...</i> - medium -- <i>Controleert de toegankelijkheid...</i> -+ <i>Controleren toegankelijkheid...</i> - - - Failed to check media accessibility. -@@ -8607,7 +9319,7 @@ - - - You can also change this while the machine is running. -- U kunt dit niet aanpassen terwijl de machine draait. -+ U kunt dit ook aanpassen terwijl de machine draait. - - - <b>No media available</b> -@@ -8616,28 +9328,30 @@ - - - You can create media images using the virtual media manager. -- U kunt media aanmaken via de virtuale media manager. -+ U kunt media images aanmaken met behulp van de Virtuele Media Manager. - - - Attaching this hard disk will be performed indirectly using a newly created differencing hard disk. - medium -- Deze harde schijf wordt indirect aangekoppeld doormiddel van een nieuwe bijzondere harde schijf. -+ RL - Definitie: "A differencing disk is a virtual hard disk you use to isolate changes to a virtual hard disk or the guest operating system by storing them in a separate file." Een techterm dus. Niet vertalen. -+ Aankoppelen van deze harde schijf wordt indirect uitgevoerd bij gebruik van een nieuw aangemaakte differencing harde schijf. - - - Some of the media in this hard disk chain are inaccessible. Please use the Virtual Media Manager in <b>Show Differencing Hard Disks</b> mode to inspect these media. - medium -- Enkele media in deze keten van harde schijven zijn niet te benaderen. Gebruik, a.u.b. de Virtuele media manager <b>Geef bijzonder harde schijven weer</b> modus om deze media te inspecteren. -+ Enkele media in deze keten van harde schijven zijn niet te benaderen. Gebruik de Virtuele Media Manager in <b>Geef differencing harde schijven weer</b> modus om deze media te inspecteren. - - - This base hard disk is indirectly attached using the following differencing hard disk: - medium -- Deze basis harde schijf is indirect gekoppeld via de volgende bijzondere harde schijf: -+ Deze basis harde schijf wordt indirect gekoppeld wanneer de volgende differencing harde schijf wordt gebruikt: - - - %n year(s) -+ RL - wij gebruiken 'jaar' bij zowel 1 jaar als bv 15 jaar - - %n jaar -- %n jaren -+ %n jaar - - - -@@ -8682,7 +9396,7 @@ - - Screens - details report -- Schermen -+ Beeldschermen - - - VDE network, '%1' -@@ -8742,16 +9456,16 @@ - - Enabled - nested paging -- Geactiveerd -+ Ingeschakeld - - - Disabled - nested paging -- Gedeactiveerd -+ Uitgeschakeld - - - Nested Paging -- Nested Paging -+ Geneste Paging - - - Shareable -@@ -8771,17 +9485,17 @@ - - Remote Desktop Server Port - details report (VRDE Server) -- Server poort voor het werkplek op afstand -+ Server poort voor Werkplek op Afstand - - - Remote Desktop Server - details report (VRDE Server) -- Server voor werkplek op afstand -+ Server voor Werkplek op Afstand - - - Disabled - details report (VRDE Server) -- Gedeactiveerd -+ Uitgeschakeld - - - Choose a virtual hard disk file -@@ -8818,17 +9532,17 @@ - - Fault Tolerant Syncing - MachineState -- Fout bestendig synchroniseren -+ Fout tolerant synchroniseren - - - Unlocked - SessionState -- Ontsluiten -+ Onvergrendeld - - - Locked - SessionState -- Gesloten -+ Vergrendeld - - - Unlocking -@@ -8887,67 +9601,68 @@ - - Readonly - DiskType -- Alleen lezen -+ Alleen-lezen - - - Multi-attach - DiskType -- Meerdere aangesloten -+ Multi-aansluitbaar - - - Dynamically allocated storage -- -+ Dynamisch gealloceerde opslag - - - Fixed size storage -- -+ Opslag van gefixeerde grootte - - - Dynamically allocated storage split into files of less than 2GB -- -+ Dynamisch gealloceerde opslag opgesplitst in bestanden van maximaal 2GB - - - Fixed size storage split into files of less than 2GB -- -+ Opslag van gefixeerde grootte opgesplitst in bestanden van maximaal 2GB - - - Execution Cap - details report -- -+ RL - heeft te maken met rechten op processerCAPaciteit, onvertaald laten lijkt me.. -+ Execution Cap - - - <nobr>%1%</nobr> - details report -- -+ <nobr>%1%</nobr> - - - Generic, '%1' - details report (network) -- -+ Generiek, '%1' - - - Generic Driver - NetworkAttachmentType -- -+ Generiek Stuurprogramma - - - Deny - NetworkAdapterPromiscModePolicyType -- -+ Afwijzen - - - Allow VMs - NetworkAdapterPromiscModePolicyType -- -+ VM's toestaan - - - Allow All - NetworkAdapterPromiscModePolicyType -- -+ Alle toestaan - - - Adapter %1 -- Adapter %1 -+ Adapter %1 - - - -@@ -8958,15 +9673,15 @@ - - - The value '%1' of the key '%2' doesn't match the regexp constraint '%3'. -- De waarde '%1' van de sleutel/toets '%2' komt niet overeen met de beperking van de reguliere expressie '%3'. -+ De waarde '%1' van toets '%2' komt niet overeen met de beperking van de reguliere expressie '%3'. - - - Cannot delete the key '%1'. -- De Sleutel/toets '%1' kan niet verwijderd worden. -+ Kan toets '%1' niet verwijderen. - - - '%1' is an invalid host-combination code-sequence. -- '%1' is een ongeldige gastheer-combinatie code volgorde. -+ '%1' is een ongeldige host-combinatie code-sequentie. - - - -@@ -8988,50 +9703,7 @@ - - - I &Disagree -- I ga &niet akkoord -- -- -- -- VBoxLogSearchPanel -- -- Close the search panel -- Sluit het zoek paneel -- -- -- Find -- zoeken -- -- -- Enter a search string here -- Geef de zoeken tekst op -- -- -- &Previous -- &Vorige -- -- -- Search for the previous occurrence of the string -- Zoek achteruit naar de zoektekst -- -- -- &Next -- &Volgende -- -- -- Search for the next occurrence of the string -- Zoek vooruit naar de zoektekst -- -- -- C&ase Sensitive -- Onderscheidt &Hoofd- en kleineletters -- -- -- Perform case sensitive search (when checked) -- Houdt rekening met hoofd- en kleineletters (mits aangevinkt) bij het zoeken -- -- -- String not found -- Gezochte tekst niet gevonden -+ Ik ga &niet akkoord - - - -@@ -9105,7 +9777,7 @@ - - - Checking accessibility -- Controleer de toegankelijkheid -+ Controleren toegankelijkheid - - - &Select -@@ -9121,7 +9793,7 @@ - - - Select a hard disk image file -- Selecteer een bestand met een harde schijf -+ Selecteer een harde schijf bestand - - - CD/DVD-ROM images (*.iso);;All files (*) -@@ -9129,7 +9801,7 @@ - - - Select a CD/DVD-ROM disk image file -- Selecter een CD/DVD-ROM bestand -+ Selecter een CD/DVD-ROM schijf image bestand - - - Floppy images (*.img);;All files (*) -@@ -9137,11 +9809,11 @@ - - - Select a floppy disk image file -- Selecteer een diskette bestand -+ Selecteer een diskette schijf image bestand - - - <i>Not&nbsp;Attached</i> -- <i>niet&nbsp;aangesloten</i> -+ <i>Niet&nbsp;aangesloten</i> - - - -- -@@ -9150,7 +9822,7 @@ - - - Virtual Media Manager -- Manager voor virtuele media -+ Virtuele Media Manager - - - Hard &Disks -@@ -9162,11 +9834,11 @@ - - - Virtual Size -- Virtuele grote -+ Virtuele grootte - - - Actual Size -- Actuele grote -+ Ware grootte - - - &CD/DVD Images -@@ -9174,7 +9846,7 @@ - - - Size -- Omvang -+ Grootte - - - &Floppy Images -@@ -9213,43 +9885,43 @@ - - - Type: -- Type: -+ Type: - - - Location: -- Locatie: -+ Locatie: - - - Format: -- -+ Formaat: - - - Storage details: -- -+ Opslagdetails: - - - Attached to: -- -+ Aangesloten aan: - - - &Copy... -- -+ &Kopiëren... - - - &Modify... -- -+ &Aanpassen... - - - Copy an existing medium -- -+ Kopieer een bestaand medium - - - Modify the attributes of the selected medium -- -+ Pas de attributen van het geselecteerde medium aan - - - C&lose -- -+ S&luiten - - - -@@ -9286,11 +9958,11 @@ - - - Displays the operating system family that you plan to install into this virtual machine. -- Geef het besturingssysteem familie weer die u van plan bent te installeren op deze virtuele machine. -+ Toont de familie van het besturingssysteem dat u van plan bent op deze virtuele machine te installeren. - - - Displays the operating system type that you plan to install into this virtual machine (called a guest operating system). -- Geef het soort besturingssysteem weer die u van plan bent te installeren op deze virtuele machine (gast besturingssysteem genaamd). -+ Toont het type besturingssysteem dat u van plan bent op deze virtuele machine te installeren (dit wordt het gastbesturingssysteem genoemd). - - - &Version: -@@ -9397,12 +10069,12 @@ - - Click to view non-scaled screenshot. - non-scaled -- Klik om een niet geschaalde schermafdruk te bekijken. -+ Klik om een niet geschaald schermafdruk te bekijken. - - - Click to view scaled screenshot. - scaled -- Klik om een geschaalde schermafdruk te bekijken. -+ Klik om een geschaald schermafdruk te bekijken. - - - -@@ -9416,37 +10088,12 @@ - &Details - - -- &Preferences... -- global settings -- &Voorkeuren... -- -- -- Display the global settings dialog -- Geef de algemene instellingen weer -- -- -- E&xit -- &Afsluiten -- -- -- Close application -- Programma afsluiten -- -- -- &New... -- &Nieuw... -- -- -- Create a new virtual machine -- Maak een nieuwe virtuele machine aan -- -- - &Settings... -- In&stellingen... -+ In&stellingen... - - - Configure the selected virtual machine -- Configureer de geselecteerde virtule machine -+ Configureer de geselecteerde virtule machine - - - &Delete -@@ -9461,14 +10108,6 @@ - &Verwerpen - - -- Discard the saved state of the selected virtual machine -- Werp de opgeslagen status van de geselecteerde virtuele machine weg -- -- -- Refresh the accessibility state of the selected virtual machine -- Actualiseer de status over de toegankelijkheid van de geselecteerde virtuele machine -- -- - &File - &Bestand - -@@ -9489,32 +10128,8 @@ - &Omschrijving * - - -- S&how -- &Weergeven -- -- -- Switch to the window of the selected virtual machine -- Schakel over naar het venster van de geselecteerde virtuele machine -- -- -- S&tart -- &Start -- -- -- Start the selected virtual machine -- Start de geselecteerde virtuele machine -- -- - &Machine -- &Machine -- -- -- Show &Log... -- Geef &Log weer... -- -- -- Show the log files of the selected virtual machine -- Geef de logbestanden weer van de geselecteerde virtuele machine -+ &Machine - - - R&esume -@@ -9522,159 +10137,49 @@ - - - Resume the execution of the virtual machine -- Hervat de uitvoering van de geselecteerde virtuele machine -+ Hervat de uitvoering van de geselecteerde virtuele machine - - - &Pause -- &Pauze -+ &Pauze - - - Suspend the execution of the virtual machine -- Onderbreek de uitvoering van de geselecteerde virtuele machine -+ Onderbreek de uitvoering van de geselecteerde virtuele machine - - - <h3>Welcome to VirtualBox!</h3><p>The left part of this window is a list of all virtual machines on your computer. The list is empty now because you haven't created any virtual machines yet.<img src=:/welcome.png align=right/></p><p>In order to create a new virtual machine, press the <b>New</b> button in the main tool bar located at the top of the window.</p><p>You can press the <b>%1</b> key to get instant help, or visit <a href=http://www.virtualbox.org>www.virtualbox.org</a> for the latest information and news.</p> -- <h3>Welkom bij VirtualBox!</h3><p>Het linker deel van dit venster is bedoeld om alle virtuele machines, op uw compter, weer te geven. De lijst is nu leeg omdat u nog geen virtuele machines heeft aangemaakt.<img src=:/welcome.png align=right/></p><p>Om een nieuwe virtuele machine aan te maken drukt u op de knop <b>Nieuw</b> in de werkbalk boven in het venster.</p><p>De toets <b>%1</b> opent een helpscherm, bezoek <a href=http://www.virtualbox.org>www.virtualbox.org</a> voor de laatste informatie en nieuws.</p> -- -- -- &Virtual Media Manager... -- Manager voor &virtuele media... -- -- -- Display the Virtual Media Manager dialog -- Geef de dialoog weer voor de virtuale media manager -+ <h3>Welkom bij VirtualBox!</h3><p>Het linker deel van dit venster is bedoeld om alle virtuele machines, op uw compter, weer te geven. De lijst is nu leeg omdat u nog geen virtuele machines heeft aangemaakt.<img src=:/welcome.png align=right/></p><p>Om een nieuwe virtuele machine aan te maken drukt u op de knop <b>Nieuw</b> in de werkbalk boven in het venster.</p><p>De toets <b>%1</b> opent een helpscherm, bezoek <a href=http://www.virtualbox.org>www.virtualbox.org</a> voor de laatste informatie en nieuws.</p> - - - Log - icon text -- Loggen -- -- -- &Import Appliance... -- Appliance &importeren ... -- -- -- Import an appliance into VirtualBox -- Importeert een appliance in VirtualBox -- -- -- &Export Appliance... -- Appliance &exporteren ... -- -- -- Export one or more VirtualBox virtual machines as an appliance -- Exporteert een appliance uit VirtualBox -+ Loggen - - - Sun VirtualBox - Sun VirtualBox - - -- Re&fresh -- &Verversen -- -- -- &File -- Mac OS X version -- &Bestand -- -- -- &File -- Non Mac OS X version -- &Bestand -- -- - Select a virtual machine file -- Selecteer een bestand met een virtuele machine -+ Selecteer een bestand met een virtuele machine - - - Virtual machine files (%1) -- Bestanden met virtuale machine (%1) -+ Bestanden met virtuale machine (%1) - - - Manager - Note: main window title which is pretended by the product name. -- Manager -- -- -- &Add... -- &Toevoegen... -- -- -- Add an existing virtual machine -- Voet een bestaande virtuele machine toe -- -- -- &Remove -- Ve&rwijderen -- -- -- Remove the selected virtual machine -- Verwijder de geselecteerde virtuele machine -- -- -- Show in Finder -- Geef weer in het zoekscherm -- -- -- Show the VirtualBox Machine Definition file in Finder. -- Toon het VirtualBox machine definitiebestand in het zoekscherm. -- -- -- Create Alias on Desktop -- Maak een alias op het bureaublad -- -- -- Creates an Alias file to the VirtualBox Machine Definition file on your Desktop. -- Maakt een aliasbestand, van het VirtualBox machine definitiebestand, op het bureaublad. -- -- -- Show in Explorer -- Toon in de verkenner -- -- -- Show the VirtualBox Machine Definition file in Explorer. -- Toon het VirtualBox machine definitiebestand in de verkenner. -- -- -- Create Shortcut on Desktop -- Maak een snelkoppeling op het bureaublad -- -- -- Creates an Shortcut file to the VirtualBox Machine Definition file on your Desktop. -- Maakt een snelkoppeling, van het VirtualBox machine definitiebestand, op het bureaublad. -- -- -- Show in File Manager -- Toon in de bestandsmanager -- -- -- Show the VirtualBox Machine Definition file in the File Manager -- Toon het VirtualBox machine definitiebestand in de bestandsmanager -+ Manager - - - Show Toolbar -- Geef de werkbalk weer -+ Geef de werkbalk weer - - - Show Statusbar -- Geeft de statusbalk weer -- -- -- Cl&one... -- -- -- -- Clone the selected virtual machine -- -- -- -- Discard -- -- -- -- D&iscard Saved State -- -+ Geeft de statusbalk weer - - - -@@ -9736,11 +10241,12 @@ - - - Taken: -- Gepakt: -+ als in 'foto nemen' -+ Genomen: - - - &Description: -- &Omschrijving: -+ &Beschrijving: - - - D&etails: -@@ -9760,25 +10266,25 @@ - - Current State (changed) - Current State (Modified) -- Huidige status (gewijzigd) -+ Huidige staat (gewijzigd) - - - Current State - Current State (Unmodified) -- Huidige status (ongewijzigd) -+ Huidige staat (ongewijzigd) - - - The current state differs from the state stored in the current snapshot -- De huidige status verschilt van de status zoals opgeslagen in de huidge momentopname -+ De huidige staat verschilt van de staat zoals deze is opgeslagen in de huidge momentopname - - - The current state is identical to the state stored in the current snapshot -- De huidige status is gelijk aan de status zoals opgeslagen in de huidge momentopname -+ De huidige staat is gelijk aan de staat zoals deze opgeslagen is in de huidge momentopname - - - (current, - Snapshot details -- (huidige, -+ (huidige, - - - online) -@@ -9815,7 +10321,7 @@ - - - Take &Snapshot -- Maak een &momentopname -+ Maak &momentopname - - - &Revert to Current Snapshot -@@ -9827,7 +10333,7 @@ - - - S&how Details -- &Geef details weer -+ &Toon details - - - Discard the selected snapshot of the virtual machine -@@ -9835,7 +10341,7 @@ - - - Take a snapshot of the current virtual machine state -- Maak een momentopname van de huidige status van de virtuele machine -+ Maak een momentopname van de huidige staat van de virtuele machine - - - Restore the virtual machine state from the state stored in the current snapshot -@@ -9847,7 +10353,7 @@ - - - Show the details of the selected snapshot -- Geef de details van de geselecteerde momentopname -+ Toon details van geselecteerde momentopname - - - &Merge Snapshot with Parent -@@ -9895,7 +10401,7 @@ - - - Restore the selected snapshot of the virtual machine -- Zet de geselecteerde momentopname, van de virtuele machine, terug -+ Zet de geselecteerde momentopname van de virtuele machine terug - - - Delete the selected snapshot of the virtual machine -@@ -9907,11 +10413,11 @@ - - - &Clone... -- -+ &Kloon... - - - Clone the selected virtual machine -- -+ Kloon geselecteerde virtuele machine - - - -@@ -9929,21 +10435,21 @@ - VBoxTakeSnapshotDlg - - Take Snapshot of Virtual Machine -- Maak een momentopname van de virtuele machine -+ Maak momentopname van de virtuele machine - - - Snapshot &Name -- &Naam van de momentopname -+ &Naam momentopname - - - Snapshot &Description -- &Omschrijving van de momentopname -+ &Beschrijving momentopname - - - Warning: You are taking a snapshot of a running machine which has %n immutable image(s) attached to it. As long as you are working from this snapshot the immutable image(s) will not be reset to avoid loss of data. - -- Waarschuwing: U maakt een momentopname van de werkende machine die %n niet te wijzigen images gekoppeld heeft. Zolang u werkt vanaf deze momentopname zullen de niet te wijzigen images niet gereset worden om gegevens verlies te voorkomen. -- -+ Waarschuwing: U maakt een momentopname van een draaiende machine die %n niet te wijzigen image gekoppeld heeft. Zolang u werkt vanaf deze momentopname zal het niet te wijzigen image niet gereset worden om gegevensverlies te voorkomen. -+ Waarschuwing: U maakt een momentopname van een draaiende machine die %n niet te wijzigen images gekoppeld heeft. Zolang u werkt vanaf deze momentopname zullen de niet te wijzigen images niet gereset worden om gegevensverlies te voorkomen. - - - -@@ -9977,12 +10483,12 @@ - - <no devices available> - USB devices -- <keine Beschikbare apparaten> -+ <geen apparaten beschikbaar> - - - No supported devices connected to the host PC - USB device tooltip -- Geen ondersteunde apparaten zijn aan de gastheer PC verbonden -+ Er zijn geen ondersteunde apparaten aan de host-PC verbonden - - - -@@ -10019,7 +10525,7 @@ - - - &Runtime -- &Looptijd -+ &Runtime - - - DMA Transfers -@@ -10031,27 +10537,27 @@ - - - Data Read -- Gelezen gevens -+ Gelezen data - - - Data Written -- Opgeschreven gegevens -+ Geschreven data - - - Data Transmitted -- Verzonden gegevens -+ Verzonden data - - - Data Received -- Ontvangen gegevens -+ Ontvangen data - - - Runtime Attributes -- Attributen voor de looptijd -+ Runtime Attributen - - - Screen Resolution -- Scherm resolutie -+ Schermresolutie - - - CD/DVD-ROM Statistics -@@ -10078,11 +10584,12 @@ - - - Guest Additions -- Gast uitbreidingen -+ als begrip niet vertalen -+ Guest Additions - - - Guest OS Type -- Soort gast besturingssysteem -+ Gast OS Type - - - Hard Disk Statistics -@@ -10121,15 +10628,15 @@ - - - Storage Statistics -- Opslag statestieken -+ Opslag statistieken - - - No Storage Devices -- Geen opslag apparaten -+ Geen opslagapparaten - - - Network Statistics -- Netwerk statestieken -+ Netwerk statistieken - - - Not Available -@@ -10138,42 +10645,6 @@ - - - -- VBoxVMLogViewer -- -- Log Viewer -- mooi woord voor viewer -- Log Viewer -- -- -- &Save -- &Opslaan -- -- -- &Refresh -- &Verversen -- -- -- %1 - VirtualBox Log Viewer -- %1 - VirtualBox Log Viewer -- -- -- <p>No log files found. Press the <b>Refresh</b> button to rescan the log folder <nobr><b>%1</b></nobr>.</p> -- <p>Geen logbestanden gevonden. Kliken op de knop <b>Verversen</b> om de map <nobr><b>%1</b></nobr> met logs opnieuw te scannen.</p> -- -- -- Save VirtualBox Log As -- Sla de VirtualBox Log op als -- -- -- &Find -- &Zoek -- -- -- Close -- Sluiten -- -- -- - VBoxVMSettingsCD - - Host CD/DVD drive is not selected ---- a/src/VBox/Main/src-client/SessionImpl.cpp 2012-04-02 15:28:55.000000000 +0200 -+++ b/src/VBox/Main/src-client/SessionImpl.cpp 2012-04-03 14:12:00.000000000 +0200 -@@ -840,6 +840,10 @@ - AutoCaller autoCaller(this); - AssertComRCReturn(autoCaller.rc(), autoCaller.rc()); - -+ AutoReadLock alock(this COMMA_LOCKVAL_SRC_POS); -+ AssertReturn(mState == SessionState_Locked, VBOX_E_INVALID_VM_STATE); -+ AssertReturn(mType == SessionType_WriteLock, VBOX_E_INVALID_OBJECT_STATE); -+ - mConsole->enableVMMStatistics(aEnable); - - return S_OK; ---- a/src/VBox/Main/src-server/HostImpl.cpp 2012-04-02 15:28:55.000000000 +0200 -+++ b/src/VBox/Main/src-server/HostImpl.cpp 2012-04-03 14:12:00.000000000 +0200 -@@ -1090,7 +1090,6 @@ - IProgress **aProgress) - { - CheckComArgOutPointerValid(aHostNetworkInterface); -- CheckComArgNotNull(*aHostNetworkInterface); - CheckComArgOutPointerValid(aProgress); - - AutoCaller autoCaller(this); -@@ -1103,6 +1102,10 @@ - int r = NetIfCreateHostOnlyNetworkInterface(m->pParent, aHostNetworkInterface, aProgress); - if (RT_SUCCESS(r)) - { -+ if (!*aHostNetworkInterface) -+ return setError(E_FAIL, -+ tr("Unable to create a host network interface")); -+ - #if !defined(RT_OS_WINDOWS) - Bstr tmpAddr, tmpMask, tmpName; - HRESULT hrc; diff -Nru virtualbox-4.1.12-dfsg/debian/patches/37-fix-unregister-netdevice.patch virtualbox-4.1.44-dfsg/debian/patches/37-fix-unregister-netdevice.patch --- virtualbox-4.1.12-dfsg/debian/patches/37-fix-unregister-netdevice.patch 2013-03-25 11:37:11.000000000 +0000 +++ virtualbox-4.1.44-dfsg/debian/patches/37-fix-unregister-netdevice.patch 1970-01-01 00:00:00.000000000 +0000 @@ -1,119 +0,0 @@ -Description: fix dev unregistration issues on kernels 3.2.18 and newer -Origin: backport, https://www.virtualbox.org/changeset/41548/vbox -Bug: https://www.virtualbox.org/ticket/10624 -Bug-Ubuntu: https://bugs.launchpad.net/bugs/1009156 - ---- a/src/VBox/HostDrivers/VBoxNetFlt/linux/VBoxNetFlt-linux.c -+++ b/src/VBox/HostDrivers/VBoxNetFlt/linux/VBoxNetFlt-linux.c -@@ -1536,4 +1536,6 @@ - pThis->u.s.PacketType.func = vboxNetFltLinuxPacketHandler; - dev_add_pack(&pThis->u.s.PacketType); -+ ASMAtomicUoWriteBool(&pThis->u.s.fPacketHandler, true); -+ Log(("vboxNetFltLinuxAttachToInterface: this=%p: Packet handler installed.\n", pThis)); - - #ifdef VBOXNETFLT_WITH_FILTER_HOST2GUEST_SKBS_EXPERIMENT -@@ -1560,5 +1562,4 @@ - } - RTSpinlockReleaseNoInts(pThis->hSpinlock, &Tmp); -- Log(("vboxNetFltLinuxAttachToInterface: this=%p: Packet handler installed.\n", pThis)); - - /* -@@ -1604,4 +1605,5 @@ - static int vboxNetFltLinuxUnregisterDevice(PVBOXNETFLTINS pThis, struct net_device *pDev) - { -+ bool fRegistered; - RTSPINLOCKTMP Tmp = RTSPINLOCKTMP_INITIALIZER; - -@@ -1610,24 +1612,35 @@ - #endif /* VBOXNETFLT_WITH_QDISC */ - -+ if (ASMAtomicCmpXchgBool(&pThis->u.s.fPacketHandler, false, true)) -+ { -+ dev_remove_pack(&pThis->u.s.PacketType); -+ Log(("vboxNetFltLinuxUnregisterDevice: this=%p: packet handler removed.\n", pThis)); -+ } -+ - RTSpinlockAcquireNoInts(pThis->hSpinlock, &Tmp); -- ASMAtomicWriteBool(&pThis->u.s.fRegistered, false); -- ASMAtomicWriteBool(&pThis->fDisconnectedFromHost, true); -- ASMAtomicUoWriteNullPtr(&pThis->u.s.pDev); -+ fRegistered = ASMAtomicXchgBool(&pThis->u.s.fRegistered, false); -+ if (fRegistered) -+ { -+ ASMAtomicWriteBool(&pThis->fDisconnectedFromHost, true); -+ ASMAtomicUoWriteNullPtr(&pThis->u.s.pDev); -+ } - RTSpinlockReleaseNoInts(pThis->hSpinlock, &Tmp); - -- dev_remove_pack(&pThis->u.s.PacketType); -+ if (fRegistered) -+ { - #ifndef VBOXNETFLT_LINUX_NO_XMIT_QUEUE -- skb_queue_purge(&pThis->u.s.XmitQueue); --#endif -- Log(("vboxNetFltLinuxUnregisterDevice: this=%p: Packet handler removed, xmit queue purged.\n", pThis)); -- Log(("vboxNetFltLinuxUnregisterDevice: Device %p(%s) released. ref=%d\n", -- pDev, pDev->name, -+ skb_queue_purge(&pThis->u.s.XmitQueue); -+#endif -+ Log(("vboxNetFltLinuxUnregisterDevice: this=%p: xmit queue purged.\n", pThis)); -+ Log(("vboxNetFltLinuxUnregisterDevice: Device %p(%s) released. ref=%d\n", -+ pDev, pDev->name, - #if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 37) -- netdev_refcnt_read(pDev) -+ netdev_refcnt_read(pDev) - #else -- atomic_read(&pDev->refcnt) --#endif -- )); -- dev_put(pDev); -+ atomic_read(&pDev->refcnt) -+#endif -+ )); -+ dev_put(pDev); -+ } - - return NOTIFY_OK; -@@ -1870,5 +1883,9 @@ - * we don't want the handler to forward packets to disconnected switch. - */ -- dev_remove_pack(&pThis->u.s.PacketType); -+ if (ASMAtomicCmpXchgBool(&pThis->u.s.fPacketHandler, false, true)) -+ { -+ dev_remove_pack(&pThis->u.s.PacketType); -+ Log(("vboxNetFltOsDisconnectIt: this=%p: Packet handler removed.\n", pThis)); -+ } - return VINF_SUCCESS; - } -@@ -1917,5 +1934,5 @@ - RTSpinlockAcquireNoInts(pThis->hSpinlock, &Tmp); - pDev = ASMAtomicUoReadPtrT(&pThis->u.s.pDev, struct net_device *); -- fRegistered = ASMAtomicUoReadBool(&pThis->u.s.fRegistered); -+ fRegistered = ASMAtomicXchgBool(&pThis->u.s.fRegistered, false); - RTSpinlockReleaseNoInts(pThis->hSpinlock, &Tmp); - -@@ -1927,5 +1944,5 @@ - skb_queue_purge(&pThis->u.s.XmitQueue); - #endif -- Log(("vboxNetFltOsDeleteInstance: this=%p: Packet handler removed, xmit queue purged.\n", pThis)); -+ Log(("vboxNetFltOsDeleteInstance: this=%p: xmit queue purged.\n", pThis)); - Log(("vboxNetFltOsDeleteInstance: Device %p(%s) released. ref=%d\n", - pDev, pDev->name, -@@ -1974,6 +1991,7 @@ - */ - ASMAtomicUoWriteNullPtr(&pThis->u.s.pDev); -- pThis->u.s.fRegistered = false; -+ pThis->u.s.fRegistered = false; - pThis->u.s.fPromiscuousSet = false; -+ pThis->u.s.fPacketHandler = false; - memset(&pThis->u.s.PacketType, 0, sizeof(pThis->u.s.PacketType)); - #ifndef VBOXNETFLT_LINUX_NO_XMIT_QUEUE ---- a/src/VBox/HostDrivers/VBoxNetFlt/VBoxNetFltInternal.h -+++ b/src/VBox/HostDrivers/VBoxNetFlt/VBoxNetFltInternal.h -@@ -165,4 +165,6 @@ - /** Whether device exists and physically attached. */ - bool volatile fRegistered; -+ /** Whether our packet handler is installed. */ -+ bool volatile fPacketHandler; - /** The MAC address of the interface. */ - RTMAC MacAddr; diff -Nru virtualbox-4.1.12-dfsg/debian/patches/37-wheezy-kernel-drm.patch virtualbox-4.1.44-dfsg/debian/patches/37-wheezy-kernel-drm.patch --- virtualbox-4.1.12-dfsg/debian/patches/37-wheezy-kernel-drm.patch 1970-01-01 00:00:00.000000000 +0000 +++ virtualbox-4.1.44-dfsg/debian/patches/37-wheezy-kernel-drm.patch 2015-11-17 11:56:51.000000000 +0000 @@ -0,0 +1,48 @@ +Description: Fix build failure with the Debian wheezy kernel which backports the drm subsystem from Linux 3.4. +Bug-Debian: http://bugs.debian.org/703358 +Author: Felix Geyer + +Index: virtualbox/src/VBox/Additions/linux/drm/vboxvideo_drm.c +=================================================================== +--- virtualbox.orig/src/VBox/Additions/linux/drm/vboxvideo_drm.c ++++ virtualbox/src/VBox/Additions/linux/drm/vboxvideo_drm.c +@@ -97,6 +97,12 @@ + # endif + #endif + ++# if LINUX_VERSION_CODE >= KERNEL_VERSION(3, 2, 0) ++# ifdef DRM_IOCTL_MODE_GETPLANE ++# define DRM_DEBIAN70 ++# endif ++# endif ++ + static struct pci_device_id pciidlist[] = { + vboxvideo_PCI_IDS + }; +@@ -109,7 +115,7 @@ + return 0; + #endif + } +-#if LINUX_VERSION_CODE >= KERNEL_VERSION(3, 3, 0) || defined(DRM_FOPS_AS_POINTER) ++#if LINUX_VERSION_CODE >= KERNEL_VERSION(3, 3, 0) || defined(DRM_FOPS_AS_POINTER) || defined(DRM_DEBIAN70) + /* since linux-3.3.0-rc1 drm_driver::fops is pointer */ + static struct file_operations driver_fops = + { +@@ -134,7 +140,7 @@ + .get_map_ofs = drm_core_get_map_ofs, + .get_reg_ofs = drm_core_get_reg_ofs, + #endif +-# if LINUX_VERSION_CODE < KERNEL_VERSION(3, 3, 0) && !defined(DRM_FOPS_AS_POINTER) ++# if LINUX_VERSION_CODE < KERNEL_VERSION(3, 3, 0) && !defined(DRM_FOPS_AS_POINTER) && !defined(DRM_DEBIAN70) + .fops = + { + .owner = THIS_MODULE, +@@ -150,7 +156,7 @@ + .mmap = drm_mmap, + .poll = drm_poll, + }, +-#else /* LINUX_VERSION_CODE >= KERNEL_VERSION(3, 3, 0) || defined(DRM_FOPS_AS_POINTER) */ ++#else /* LINUX_VERSION_CODE >= KERNEL_VERSION(3, 3, 0) || defined(DRM_FOPS_AS_POINTER) || defined(DRM_DEBIAN70) */ + .fops = &driver_fops, + #endif + #if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 39) && !defined(DRM_RHEL61) diff -Nru virtualbox-4.1.12-dfsg/debian/patches/38-fix-nat-local-dns-resolver.patch virtualbox-4.1.44-dfsg/debian/patches/38-fix-nat-local-dns-resolver.patch --- virtualbox-4.1.12-dfsg/debian/patches/38-fix-nat-local-dns-resolver.patch 2013-03-31 17:01:13.000000000 +0000 +++ virtualbox-4.1.44-dfsg/debian/patches/38-fix-nat-local-dns-resolver.patch 1970-01-01 00:00:00.000000000 +0000 @@ -1,27 +0,0 @@ -Description: NAT: handles registration of DNS servers in 127.0.0.0/8 range. -Origin: upstream, https://www.virtualbox.org/changeset/43641/vbox -Bug-Ubuntu: https://bugs.launchpad.net/bugs/1031217 - ---- virtualbox-4.1.18-dfsg.orig/src/VBox/Devices/Network/slirp/slirp.c -+++ virtualbox-4.1.18-dfsg/src/VBox/Devices/Network/slirp/slirp.c -@@ -525,7 +525,19 @@ static int get_dns_addr_domain(PNATState - pDns->de_addr.s_addr = tmp_addr.s_addr; - if ((pDns->de_addr.s_addr & RT_H2N_U32_C(IN_CLASSA_NET)) == RT_N2H_U32_C(INADDR_LOOPBACK & IN_CLASSA_NET)) - { -- pDns->de_addr.s_addr = RT_H2N_U32(RT_N2H_U32(pData->special_addr.s_addr) | CTL_ALIAS); -+ if ((pDns->de_addr.s_addr) == RT_N2H_U32_C(INADDR_LOOPBACK)) -+ pDns->de_addr.s_addr = RT_H2N_U32(RT_N2H_U32(pData->special_addr.s_addr) | CTL_ALIAS); -+ else -+ { -+ /* Modern Ubuntu register 127.0.1.1 as DNS server */ -+ LogRel(("NAT: DNS server %RTnaipv4 registration detected switching to host resolver case forcebly.\n", -+ pDns->de_addr.s_addr)); -+ RTMemFree(pDns); -+ /* Releasing fetched DNS information. */ -+ slirp_release_dns_list(pData); -+ pData->fUseHostResolver = 1; -+ return VINF_SUCCESS; -+ } - } - TAILQ_INSERT_HEAD(&pData->pDnsList, pDns, de_list); - cNameserversFound++; diff -Nru virtualbox-4.1.12-dfsg/debian/patches/38-security-fixes-2014-01.patch virtualbox-4.1.44-dfsg/debian/patches/38-security-fixes-2014-01.patch --- virtualbox-4.1.12-dfsg/debian/patches/38-security-fixes-2014-01.patch 2014-04-15 15:38:09.000000000 +0000 +++ virtualbox-4.1.44-dfsg/debian/patches/38-security-fixes-2014-01.patch 1970-01-01 00:00:00.000000000 +0000 @@ -1,471 +0,0 @@ ---- a/include/VBox/VMMDev.h -+++ b/include/VBox/VMMDev.h -@@ -114,6 +114,10 @@ - - /** Maximum request packet size. */ - #define VMMDEV_MAX_VMMDEVREQ_SIZE _1M -+/** Maximum number of HGCM parameters. */ -+#define VMMDEV_MAX_HGCM_PARMS 1024 -+/** Maximum total size of hgcm buffers in one call. */ -+#define VMMDEV_MAX_HGCM_DATA_SIZE UINT32_C(0x7FFFFFFF) - - /** - * VMMDev request types. ---- a/src/VBox/Devices/Graphics/DevVGA_VBVA.cpp -+++ b/src/VBox/Devices/Graphics/DevVGA_VBVA.cpp -@@ -613,6 +613,13 @@ - - if (fShape) - { -+ if (pShape->u32Width > 8192 || pShape->u32Height > 8192) -+ { -+ Log(("vbvaMousePointerShape: unsupported size %ux%u\n", -+ pShape->u32Width, pShape->u32Height)); -+ return VERR_INVALID_PARAMETER; -+ } -+ - cbPointerData = ((((pShape->u32Width + 7) / 8) * pShape->u32Height + 3) & ~3) - + pShape->u32Width * 4 * pShape->u32Height; - } ---- a/src/VBox/Devices/VMMDev/VMMDev.cpp -+++ b/src/VBox/Devices/VMMDev/VMMDev.cpp -@@ -795,6 +795,20 @@ - - #endif /* VBOX_WITH_PAGE_SHARING */ - -+static int vmmdevVerifyPointerShape(VMMDevReqMousePointer *pReq) -+{ -+ /* Should be enough for most mouse pointers. */ -+ if (pReq->width > 8192 || pReq->height > 8192) -+ return VERR_INVALID_PARAMETER; -+ -+ uint32_t cbShape = (pReq->width + 7) / 8 * pReq->height; /* size of the AND mask */ -+ cbShape = ((cbShape + 3) & ~3) + pReq->width * 4 * pReq->height; /* + gap + size of the XOR mask */ -+ if (RT_UOFFSETOF(VMMDevReqMousePointer, pointerData) + cbShape > pReq->header.size) -+ return VERR_INVALID_PARAMETER; -+ -+ return VINF_SUCCESS; -+} -+ - /** - * Port I/O Handler for the generic request interface - * @see FNIOMIOPORTOUT for details. -@@ -1163,6 +1177,10 @@ - /* forward call to driver */ - if (fShape) - { -+ pRequestHeader->rc = vmmdevVerifyPointerShape(pointerShape); -+ if (RT_FAILURE(pRequestHeader->rc)) -+ break; -+ - pThis->pDrv->pfnUpdatePointerShape(pThis->pDrv, - fVisible, - fAlpha, ---- a/src/VBox/Devices/VMMDev/VMMDevHGCM.cpp -+++ b/src/VBox/Devices/VMMDev/VMMDevHGCM.cpp -@@ -97,6 +97,9 @@ - */ - VBOXHGCMSVCPARM *paHostParms; - -+ /* Number of elements in paHostParms */ -+ uint32_t cHostParms; -+ - /* Linear pointer parameters information. */ - int cLinPtrs; - -@@ -250,8 +253,6 @@ - { - int rc = VINF_SUCCESS; - -- AssertRelease (u32Size > 0); -- - VBOXHGCMLINPTR *pLinPtr = &paLinPtrs[iLinPtr]; - - /* Take the offset into the current page also into account! */ -@@ -294,8 +295,6 @@ - GCPtr += PAGE_SIZE; - } - -- AssertRelease (iPage == cPages); -- - return rc; - } - -@@ -310,7 +309,7 @@ - - VBOXHGCMLINPTR *pLinPtr = &paLinPtrs[iLinPtr]; - -- AssertRelease (u32Size > 0 && iParm == (uint32_t)pLinPtr->iParm); -+ AssertLogRelReturn(u32Size > 0 && iParm == (uint32_t)pLinPtr->iParm, VERR_INVALID_PARAMETER); - - RTGCPHYS GCPhysDst = pLinPtr->paPages[0] + pLinPtr->offFirstPage; - uint8_t *pu8Src = (uint8_t *)pvHost; -@@ -332,12 +331,17 @@ - - if (cbWrite >= u32Size) - { -- PDMDevHlpPhysWrite(pDevIns, GCPhysDst, pu8Src, u32Size); -+ rc = PDMDevHlpPhysWrite(pDevIns, GCPhysDst, pu8Src, u32Size); -+ if (RT_FAILURE(rc)) -+ break; -+ - u32Size = 0; - break; - } - - PDMDevHlpPhysWrite(pDevIns, GCPhysDst, pu8Src, cbWrite); -+ if (RT_FAILURE(rc)) -+ break; - - /* next */ - u32Size -= cbWrite; -@@ -346,8 +350,10 @@ - GCPhysDst = pLinPtr->paPages[iPage]; - } - -- AssertRelease (iPage == pLinPtr->cPages); -- Assert(u32Size == 0); -+ if (RT_SUCCESS(rc)) -+ { -+ AssertLogRelReturn(iPage == pLinPtr->cPages, VERR_INVALID_PARAMETER); -+ } - - return rc; - } -@@ -623,6 +629,20 @@ - Log(("vmmdevHGCMCall: cParms = %d\n", cParms)); - - /* -+ * Sane upper limit. -+ */ -+ if (cParms > VMMDEV_MAX_HGCM_PARMS) -+ { -+ static int s_cRelWarn; -+ if (s_cRelWarn < 50) -+ { -+ s_cRelWarn++; -+ LogRel(("VMMDev: request packet with too many parameters (%d). Refusing operation.\n", cParms)); -+ } -+ return VERR_INVALID_PARAMETER; -+ } -+ -+ /* - * Compute size of required memory buffer. - */ - -@@ -654,6 +674,12 @@ - if (pGuestParm->u.Pointer.size > 0) - { - /* Only pointers with some actual data are counted. */ -+ if (pGuestParm->u.Pointer.size > VMMDEV_MAX_HGCM_DATA_SIZE - cbCmdSize) -+ { -+ rc = VERR_INVALID_PARAMETER; -+ break; -+ } -+ - cbCmdSize += pGuestParm->u.Pointer.size; - - cLinPtrs++; -@@ -667,6 +693,12 @@ - - case VMMDevHGCMParmType_PageList: - { -+ if (pGuestParm->u.PageList.size > VMMDEV_MAX_HGCM_DATA_SIZE - cbCmdSize) -+ { -+ rc = VERR_INVALID_PARAMETER; -+ break; -+ } -+ - cbCmdSize += pGuestParm->u.PageList.size; - Log(("vmmdevHGCMCall: pagelist size = %d\n", pGuestParm->u.PageList.size)); - } break; -@@ -706,6 +738,12 @@ - if (pGuestParm->u.Pointer.size > 0) - { - /* Only pointers with some actual data are counted. */ -+ if (pGuestParm->u.Pointer.size > VMMDEV_MAX_HGCM_DATA_SIZE - cbCmdSize) -+ { -+ rc = VERR_INVALID_PARAMETER; -+ break; -+ } -+ - cbCmdSize += pGuestParm->u.Pointer.size; - - cLinPtrs++; -@@ -719,6 +757,12 @@ - - case VMMDevHGCMParmType_PageList: - { -+ if (pGuestParm->u.PageList.size > VMMDEV_MAX_HGCM_DATA_SIZE - cbCmdSize) -+ { -+ rc = VERR_INVALID_PARAMETER; -+ break; -+ } -+ - cbCmdSize += pGuestParm->u.PageList.size; - Log(("vmmdevHGCMCall: pagelist size = %d\n", pGuestParm->u.PageList.size)); - } break; -@@ -787,6 +831,7 @@ - uint8_t *pcBuf = (uint8_t *)pHostParm + cParms * sizeof (VBOXHGCMSVCPARM); - - pCmd->paHostParms = pHostParm; -+ pCmd->cHostParms = cParms; - - uint32_t iLinPtr = 0; - RTGCPHYS *pPages = (RTGCPHYS *)((uint8_t *)pCmd->paLinPtrs + sizeof (VBOXHGCMLINPTR) *cLinPtrs); -@@ -1135,6 +1180,20 @@ - Log(("vmmdevHGCMCall: cParms = %d\n", cParms)); - - /* -+ * Sane upper limit. -+ */ -+ if (cParms > VMMDEV_MAX_HGCM_PARMS) -+ { -+ static int s_cRelWarn; -+ if (s_cRelWarn < 50) -+ { -+ s_cRelWarn++; -+ LogRel(("VMMDev: request packet with too many parameters (%d). Refusing operation.\n", cParms)); -+ } -+ return VERR_INVALID_PARAMETER; -+ } -+ -+ /* - * Compute size of required memory buffer. - */ - -@@ -1289,6 +1348,7 @@ - uint8_t *pu8Buf = (uint8_t *)pHostParm + cParms * sizeof (VBOXHGCMSVCPARM); - - pCmd->paHostParms = pHostParm; -+ pCmd->cHostParms = cParms; - - uint32_t iParm; - int iLinPtr = 0; -@@ -1758,6 +1818,88 @@ - return VERR_INVALID_PARAMETER; - } - -+#ifdef VBOX_WITH_64_BITS_GUESTS -+static int vmmdevHGCMParmVerify64(HGCMFunctionParameter64 *pGuestParm, VBOXHGCMSVCPARM *pHostParm) -+{ -+ int rc = VERR_INVALID_PARAMETER; -+ -+ switch (pGuestParm->type) -+ { -+ case VMMDevHGCMParmType_32bit: -+ if (pHostParm->type == VBOX_HGCM_SVC_PARM_32BIT) -+ rc = VINF_SUCCESS; -+ break; -+ -+ case VMMDevHGCMParmType_64bit: -+ if (pHostParm->type == VBOX_HGCM_SVC_PARM_64BIT) -+ rc = VINF_SUCCESS; -+ break; -+ -+ case VMMDevHGCMParmType_LinAddr_In: /* In (read) */ -+ case VMMDevHGCMParmType_LinAddr_Out: /* Out (write) */ -+ case VMMDevHGCMParmType_LinAddr: /* In & Out */ -+ if ( pHostParm->type == VBOX_HGCM_SVC_PARM_PTR -+ && pGuestParm->u.Pointer.size >= pHostParm->u.pointer.size) -+ rc = VINF_SUCCESS; -+ break; -+ -+ case VMMDevHGCMParmType_PageList: -+ if ( pHostParm->type == VBOX_HGCM_SVC_PARM_PTR -+ && pGuestParm->u.PageList.size >= pHostParm->u.pointer.size) -+ rc = VINF_SUCCESS; -+ break; -+ -+ default: -+ AssertLogRelMsgFailed(("hgcmCompleted: invalid parameter type %08X\n", pGuestParm->type)); -+ break; -+ } -+ -+ return rc; -+} -+#endif /* VBOX_WITH_64_BITS_GUESTS */ -+ -+#ifdef VBOX_WITH_64_BITS_GUESTS -+static int vmmdevHGCMParmVerify32(HGCMFunctionParameter32 *pGuestParm, VBOXHGCMSVCPARM *pHostParm) -+#else -+static int vmmdevHGCMParmVerify32(HGCMFunctionParameter *pGuestParm, VBOXHGCMSVCPARM *pHostParm) -+#endif -+{ -+ int rc = VERR_INVALID_PARAMETER; -+ -+ switch (pGuestParm->type) -+ { -+ case VMMDevHGCMParmType_32bit: -+ if (pHostParm->type == VBOX_HGCM_SVC_PARM_32BIT) -+ rc = VINF_SUCCESS; -+ break; -+ -+ case VMMDevHGCMParmType_64bit: -+ if (pHostParm->type == VBOX_HGCM_SVC_PARM_64BIT) -+ rc = VINF_SUCCESS; -+ break; -+ -+ case VMMDevHGCMParmType_LinAddr_In: /* In (read) */ -+ case VMMDevHGCMParmType_LinAddr_Out: /* Out (write) */ -+ case VMMDevHGCMParmType_LinAddr: /* In & Out */ -+ if ( pHostParm->type == VBOX_HGCM_SVC_PARM_PTR -+ && pGuestParm->u.Pointer.size >= pHostParm->u.pointer.size) -+ rc = VINF_SUCCESS; -+ break; -+ -+ case VMMDevHGCMParmType_PageList: -+ if ( pHostParm->type == VBOX_HGCM_SVC_PARM_PTR -+ && pGuestParm->u.PageList.size >= pHostParm->u.pointer.size) -+ rc = VINF_SUCCESS; -+ break; -+ -+ default: -+ AssertLogRelMsgFailed(("hgcmCompleted: invalid parameter type %08X\n", pGuestParm->type)); -+ break; -+ } -+ -+ return rc; -+} -+ - #define PDMIHGCMPORT_2_VMMDEVSTATE(pInterface) ( (VMMDevState *) ((uintptr_t)pInterface - RT_OFFSETOF(VMMDevState, IHGCMPort)) ) - - DECLCALLBACK(void) hgcmCompletedWorker (PPDMIHGCMPORT pInterface, int32_t result, PVBOXHGCMCMD pCmd) -@@ -1858,6 +2000,8 @@ - VMMDevHGCMCall *pHGCMCall = (VMMDevHGCMCall *)pHeader; - - uint32_t cParms = pHGCMCall->cParms; -+ if (cParms != pCmd->cHostParms) -+ rc = VERR_INVALID_PARAMETER; - - VBOXHGCMSVCPARM *pHostParm = pCmd->paHostParms; - -@@ -1866,8 +2010,12 @@ - - HGCMFunctionParameter64 *pGuestParm = VMMDEV_HGCM_CALL_PARMS64(pHGCMCall); - -- for (i = 0; i < cParms; i++, pGuestParm++, pHostParm++) -+ for (i = 0; i < cParms && RT_SUCCESS(rc); i++, pGuestParm++, pHostParm++) - { -+ rc = vmmdevHGCMParmVerify64(pGuestParm, pHostParm); -+ if (RT_FAILURE(rc)) -+ break; -+ - switch (pGuestParm->type) - { - case VMMDevHGCMParmType_32bit: -@@ -1894,7 +2042,6 @@ - /* Use the saved page list to write data back to the guest RAM. */ - rc = vmmdevHGCMWriteLinPtr (pVMMDevState->pDevIns, i, pHostParm->u.pointer.addr, - size, iLinPtr, pCmd->paLinPtrs); -- AssertReleaseRC(rc); - } - - /* All linptrs with size > 0 were saved. Advance the index to the next linptr. */ -@@ -1945,7 +2092,8 @@ - default: - { - /* This indicates that the guest request memory was corrupted. */ -- AssertReleaseMsgFailed(("hgcmCompleted: invalid parameter type %08X\n", pGuestParm->type)); -+ rc = VERR_INVALID_PARAMETER; -+ break; - } - } - } -@@ -1961,6 +2109,8 @@ - VMMDevHGCMCall *pHGCMCall = (VMMDevHGCMCall *)pHeader; - - uint32_t cParms = pHGCMCall->cParms; -+ if (cParms != pCmd->cHostParms) -+ rc = VERR_INVALID_PARAMETER; - - VBOXHGCMSVCPARM *pHostParm = pCmd->paHostParms; - -@@ -1969,8 +2119,12 @@ - - HGCMFunctionParameter32 *pGuestParm = VMMDEV_HGCM_CALL_PARMS32(pHGCMCall); - -- for (i = 0; i < cParms; i++, pGuestParm++, pHostParm++) -+ for (i = 0; i < cParms && RT_SUCCESS(rc); i++, pGuestParm++, pHostParm++) - { -+ rc = vmmdevHGCMParmVerify32(pGuestParm, pHostParm); -+ if (RT_FAILURE(rc)) -+ break; -+ - switch (pGuestParm->type) - { - case VMMDevHGCMParmType_32bit: -@@ -1996,7 +2150,6 @@ - { - /* Use the saved page list to write data back to the guest RAM. */ - rc = vmmdevHGCMWriteLinPtr (pVMMDevState->pDevIns, i, pHostParm->u.pointer.addr, size, iLinPtr, pCmd->paLinPtrs); -- AssertReleaseRC(rc); - } - - /* All linptrs with size > 0 were saved. Advance the index to the next linptr. */ -@@ -2047,7 +2200,8 @@ - default: - { - /* This indicates that the guest request memory was corrupted. */ -- AssertReleaseMsgFailed(("hgcmCompleted: invalid parameter type %08X\n", pGuestParm->type)); -+ rc = VERR_INVALID_PARAMETER; -+ break; - } - } - } -@@ -2063,6 +2217,8 @@ - VMMDevHGCMCall *pHGCMCall = (VMMDevHGCMCall *)pHeader; - - uint32_t cParms = pHGCMCall->cParms; -+ if (cParms != pCmd->cHostParms) -+ rc = VERR_INVALID_PARAMETER; - - VBOXHGCMSVCPARM *pHostParm = pCmd->paHostParms; - -@@ -2071,8 +2227,12 @@ - - HGCMFunctionParameter *pGuestParm = VMMDEV_HGCM_CALL_PARMS(pHGCMCall); - -- for (i = 0; i < cParms; i++, pGuestParm++, pHostParm++) -+ for (i = 0; i < cParms && RT_SUCCESS(rc); i++, pGuestParm++, pHostParm++) - { -+ rc = vmmdevHGCMParmVerify32(pGuestParm, pHostParm); -+ if (RT_FAILURE(rc)) -+ break; -+ - switch (pGuestParm->type) - { - case VMMDevHGCMParmType_32bit: -@@ -2098,7 +2258,6 @@ - { - /* Use the saved page list to write data back to the guest RAM. */ - rc = vmmdevHGCMWriteLinPtr (pVMMDevState->pDevIns, i, pHostParm->u.pointer.addr, size, iLinPtr, pCmd->paLinPtrs); -- AssertReleaseRC(rc); - } - - /* All linptrs with size > 0 were saved. Advance the index to the next linptr. */ -@@ -2149,7 +2308,8 @@ - default: - { - /* This indicates that the guest request memory was corrupted. */ -- AssertReleaseMsgFailed(("hgcmCompleted: invalid parameter type %08X\n", pGuestParm->type)); -+ rc = VERR_INVALID_PARAMETER; -+ break; - } - } - } -@@ -2175,10 +2335,11 @@ - break; - } - } -- else -+ -+ if (RT_FAILURE(rc)) - { -- /* Command type is wrong. Return error to the guest. */ -- pHeader->header.rc = rc; -+ /* Command is wrong. Return HGCM error result to the guest. */ -+ pHeader->result = rc; - } - - /* Mark request as processed. */ diff -Nru virtualbox-4.1.12-dfsg/debian/patches/39-kernel-35.patch virtualbox-4.1.44-dfsg/debian/patches/39-kernel-35.patch --- virtualbox-4.1.12-dfsg/debian/patches/39-kernel-35.patch 2013-03-25 11:37:11.000000000 +0000 +++ virtualbox-4.1.44-dfsg/debian/patches/39-kernel-35.patch 1970-01-01 00:00:00.000000000 +0000 @@ -1,325 +0,0 @@ -Description: IPRT/r0drv/Linux: make it work with Linux 3.5 kernels -Origin: upstream, https://www.virtualbox.org/changeset/41577/vbox and - https://www.virtualbox.org/changeset/41660/vbox -Bug-Ubuntu: https://bugs.launchpad.net/bugs/1083576 - ---- a/src/VBox/Additions/linux/sharedfolders/vfsmod.c -+++ b/src/VBox/Additions/linux/sharedfolders/vfsmod.c -@@ -373,7 +373,11 @@ - - TRACE(); - truncate_inode_pages(&inode->i_data, 0); -+# if LINUX_VERSION_CODE >= KERNEL_VERSION(3, 5, 0) -+ clear_inode(inode); -+# else - end_writeback(inode); -+# endif - - sf_i = GET_INODE_INFO(inode); - if (!sf_i) ---- a/src/VBox/Runtime/r0drv/linux/memobj-r0drv-linux.c -+++ b/src/VBox/Runtime/r0drv/linux/memobj-r0drv-linux.c -@@ -100,6 +100,7 @@ - static struct task_struct *rtR0ProcessToLinuxTask(RTR0PROCESS R0Process) - { - /** @todo fix rtR0ProcessToLinuxTask!! */ -+ /** @todo many (all?) callers currently assume that we return 'current'! */ - return R0Process == RTR0ProcHandleSelf() ? current : NULL; - } - -@@ -169,6 +170,107 @@ - - - /** -+ * Worker for rtR0MemObjNativeReserveUser and rtR0MemObjNativerMapUser that creates -+ * an empty user space mapping. -+ * -+ * We acquire the mmap_sem of the task! -+ * -+ * @returns Pointer to the mapping. -+ * (void *)-1 on failure. -+ * @param R3PtrFixed (RTR3PTR)-1 if anywhere, otherwise a specific location. -+ * @param cb The size of the mapping. -+ * @param uAlignment The alignment of the mapping. -+ * @param pTask The Linux task to create this mapping in. -+ * @param fProt The RTMEM_PROT_* mask. -+ */ -+static void *rtR0MemObjLinuxDoMmap(RTR3PTR R3PtrFixed, size_t cb, size_t uAlignment, struct task_struct *pTask, unsigned fProt) -+{ -+ unsigned fLnxProt; -+ unsigned long ulAddr; -+ -+ Assert((pTask == current)); /* do_mmap */ -+ -+ /* -+ * Convert from IPRT protection to mman.h PROT_ and call do_mmap. -+ */ -+ fProt &= (RTMEM_PROT_NONE | RTMEM_PROT_READ | RTMEM_PROT_WRITE | RTMEM_PROT_EXEC); -+ if (fProt == RTMEM_PROT_NONE) -+ fLnxProt = PROT_NONE; -+ else -+ { -+ fLnxProt = 0; -+ if (fProt & RTMEM_PROT_READ) -+ fLnxProt |= PROT_READ; -+ if (fProt & RTMEM_PROT_WRITE) -+ fLnxProt |= PROT_WRITE; -+ if (fProt & RTMEM_PROT_EXEC) -+ fLnxProt |= PROT_EXEC; -+ } -+ -+ if (R3PtrFixed != (RTR3PTR)-1) -+ { -+#if LINUX_VERSION_CODE >= KERNEL_VERSION(3, 5, 0) -+ ulAddr = vm_mmap(NULL, R3PtrFixed, cb, fLnxProt, MAP_SHARED | MAP_ANONYMOUS | MAP_FIXED, 0); -+#else -+ down_write(&pTask->mm->mmap_sem); -+ ulAddr = do_mmap(NULL, R3PtrFixed, cb, fLnxProt, MAP_SHARED | MAP_ANONYMOUS | MAP_FIXED, 0); -+ up_write(&pTask->mm->mmap_sem); -+#endif -+ } -+ else -+ { -+#if LINUX_VERSION_CODE >= KERNEL_VERSION(3, 5, 0) -+ ulAddr = vm_mmap(NULL, 0, cb, fLnxProt, MAP_SHARED | MAP_ANONYMOUS, 0); -+#else -+ down_write(&pTask->mm->mmap_sem); -+ ulAddr = do_mmap(NULL, 0, cb, fLnxProt, MAP_SHARED | MAP_ANONYMOUS, 0); -+ up_write(&pTask->mm->mmap_sem); -+#endif -+ if ( !(ulAddr & ~PAGE_MASK) -+ && (ulAddr & (uAlignment - 1))) -+ { -+ /** @todo implement uAlignment properly... We'll probably need to make some dummy mappings to fill -+ * up alignment gaps. This is of course complicated by fragmentation (which we might have cause -+ * ourselves) and further by there begin two mmap strategies (top / bottom). */ -+ /* For now, just ignore uAlignment requirements... */ -+ } -+ } -+ -+ -+ if (ulAddr & ~PAGE_MASK) /* ~PAGE_MASK == PAGE_OFFSET_MASK */ -+ return (void *)-1; -+ return (void *)ulAddr; -+} -+ -+ -+/** -+ * Worker that destroys a user space mapping. -+ * Undoes what rtR0MemObjLinuxDoMmap did. -+ * -+ * We acquire the mmap_sem of the task! -+ * -+ * @param pv The ring-3 mapping. -+ * @param cb The size of the mapping. -+ * @param pTask The Linux task to destroy this mapping in. -+ */ -+static void rtR0MemObjLinuxDoMunmap(void *pv, size_t cb, struct task_struct *pTask) -+{ -+#if LINUX_VERSION_CODE >= KERNEL_VERSION(3, 5, 0) -+ Assert(pTask == current); -+ vm_munmap((unsigned long)pv, cb); -+#elif defined(USE_RHEL4_MUNMAP) -+ down_write(&pTask->mm->mmap_sem); -+ do_munmap(pTask->mm, (unsigned long)pv, cb, 0); /* should it be 1 or 0? */ -+ up_write(&pTask->mm->mmap_sem); -+#else -+ down_write(&pTask->mm->mmap_sem); -+ do_munmap(pTask->mm, (unsigned long)pv, cb); -+ up_write(&pTask->mm->mmap_sem); -+#endif -+} -+ -+ -+/** - * Internal worker that allocates physical pages and creates the memory object for them. - * - * @returns IPRT status code. -@@ -422,7 +524,7 @@ - - - /** -- * Undos what rtR0MemObjLinuxVMap() did. -+ * Undoes what rtR0MemObjLinuxVMap() did. - * - * @param pMemLnx The linux memory object. - */ -@@ -490,11 +592,7 @@ - struct task_struct *pTask = rtR0ProcessToLinuxTask(pMemLnx->Core.u.Lock.R0Process); - Assert(pTask); - if (pTask && pTask->mm) -- { -- down_write(&pTask->mm->mmap_sem); -- MY_DO_MUNMAP(pTask->mm, (unsigned long)pMemLnx->Core.pv, pMemLnx->Core.cb); -- up_write(&pTask->mm->mmap_sem); -- } -+ rtR0MemObjLinuxDoMunmap(pMemLnx->Core.pv, pMemLnx->Core.cb, pTask); - } - else - { -@@ -515,11 +613,7 @@ - struct task_struct *pTask = rtR0ProcessToLinuxTask(pMemLnx->Core.u.Lock.R0Process); - Assert(pTask); - if (pTask && pTask->mm) -- { -- down_write(&pTask->mm->mmap_sem); -- MY_DO_MUNMAP(pTask->mm, (unsigned long)pMemLnx->Core.pv, pMemLnx->Core.cb); -- up_write(&pTask->mm->mmap_sem); -- } -+ rtR0MemObjLinuxDoMunmap(pMemLnx->Core.pv, pMemLnx->Core.cb, pTask); - } - else - vunmap(pMemLnx->Core.pv); -@@ -1110,62 +1204,6 @@ - } - - --/** -- * Worker for rtR0MemObjNativeReserveUser and rtR0MemObjNativerMapUser that creates -- * an empty user space mapping. -- * -- * The caller takes care of acquiring the mmap_sem of the task. -- * -- * @returns Pointer to the mapping. -- * (void *)-1 on failure. -- * @param R3PtrFixed (RTR3PTR)-1 if anywhere, otherwise a specific location. -- * @param cb The size of the mapping. -- * @param uAlignment The alignment of the mapping. -- * @param pTask The Linux task to create this mapping in. -- * @param fProt The RTMEM_PROT_* mask. -- */ --static void *rtR0MemObjLinuxDoMmap(RTR3PTR R3PtrFixed, size_t cb, size_t uAlignment, struct task_struct *pTask, unsigned fProt) --{ -- unsigned fLnxProt; -- unsigned long ulAddr; -- -- /* -- * Convert from IPRT protection to mman.h PROT_ and call do_mmap. -- */ -- fProt &= (RTMEM_PROT_NONE | RTMEM_PROT_READ | RTMEM_PROT_WRITE | RTMEM_PROT_EXEC); -- if (fProt == RTMEM_PROT_NONE) -- fLnxProt = PROT_NONE; -- else -- { -- fLnxProt = 0; -- if (fProt & RTMEM_PROT_READ) -- fLnxProt |= PROT_READ; -- if (fProt & RTMEM_PROT_WRITE) -- fLnxProt |= PROT_WRITE; -- if (fProt & RTMEM_PROT_EXEC) -- fLnxProt |= PROT_EXEC; -- } -- -- if (R3PtrFixed != (RTR3PTR)-1) -- ulAddr = do_mmap(NULL, R3PtrFixed, cb, fLnxProt, MAP_SHARED | MAP_ANONYMOUS | MAP_FIXED, 0); -- else -- { -- ulAddr = do_mmap(NULL, 0, cb, fLnxProt, MAP_SHARED | MAP_ANONYMOUS, 0); -- if ( !(ulAddr & ~PAGE_MASK) -- && (ulAddr & (uAlignment - 1))) -- { -- /** @todo implement uAlignment properly... We'll probably need to make some dummy mappings to fill -- * up alignment gaps. This is of course complicated by fragmentation (which we might have cause -- * ourselves) and further by there begin two mmap strategies (top / bottom). */ -- /* For now, just ignore uAlignment requirements... */ -- } -- } -- if (ulAddr & ~PAGE_MASK) /* ~PAGE_MASK == PAGE_OFFSET_MASK */ -- return (void *)-1; -- return (void *)ulAddr; --} -- -- - DECLHIDDEN(int) rtR0MemObjNativeReserveUser(PPRTR0MEMOBJINTERNAL ppMem, RTR3PTR R3PtrFixed, size_t cb, size_t uAlignment, RTR0PROCESS R0Process) - { - PRTR0MEMOBJLNX pMemLnx; -@@ -1183,18 +1221,14 @@ - /* - * Let rtR0MemObjLinuxDoMmap do the difficult bits. - */ -- down_write(&pTask->mm->mmap_sem); - pv = rtR0MemObjLinuxDoMmap(R3PtrFixed, cb, uAlignment, pTask, RTMEM_PROT_NONE); -- up_write(&pTask->mm->mmap_sem); - if (pv == (void *)-1) - return VERR_NO_MEMORY; - - pMemLnx = (PRTR0MEMOBJLNX)rtR0MemObjNew(sizeof(*pMemLnx), RTR0MEMOBJTYPE_RES_VIRT, pv, cb); - if (!pMemLnx) - { -- down_write(&pTask->mm->mmap_sem); -- MY_DO_MUNMAP(pTask->mm, (unsigned long)pv, cb); -- up_write(&pTask->mm->mmap_sem); -+ rtR0MemObjLinuxDoMunmap(pv, cb, pTask); - return VERR_NO_MEMORY; - } - -@@ -1381,7 +1415,6 @@ - * Allocate user space mapping. - */ - void *pv; -- down_write(&pTask->mm->mmap_sem); - pv = rtR0MemObjLinuxDoMmap(R3PtrFixed, pMemLnxToMap->Core.cb, uAlignment, pTask, fProt); - if (pv != (void *)-1) - { -@@ -1394,7 +1427,9 @@ - const size_t cPages = pMemLnxToMap->Core.cb >> PAGE_SHIFT; - size_t iPage; - -- rc = 0; -+ down_write(&pTask->mm->mmap_sem); -+ -+ rc = VINF_SUCCESS; - if (pMemLnxToMap->cPages) - { - for (iPage = 0; iPage < cPages; iPage++, ulAddrCur += PAGE_SIZE) -@@ -1476,13 +1511,14 @@ - } - } - } -- if (!rc) -+ -+ up_write(&pTask->mm->mmap_sem); -+ -+ if (RT_SUCCESS(rc)) - { -- up_write(&pTask->mm->mmap_sem); - #ifdef VBOX_USE_PAE_HACK - __free_page(pDummyPage); - #endif -- - pMemLnx->Core.pv = pv; - pMemLnx->Core.u.Mapping.R0Process = R0Process; - *ppMem = &pMemLnx->Core; -@@ -1492,9 +1528,8 @@ - /* - * Bail out. - */ -- MY_DO_MUNMAP(pTask->mm, (unsigned long)pv, pMemLnxToMap->Core.cb); -+ rtR0MemObjLinuxDoMunmap(pv, pMemLnxToMap->Core.cb, pTask); - } -- up_write(&pTask->mm->mmap_sem); - rtR0MemObjDelete(&pMemLnx->Core); - } - #ifdef VBOX_USE_PAE_HACK ---- a/src/VBox/Runtime/r0drv/linux/the-linux-kernel.h -+++ b/src/VBox/Runtime/r0drv/linux/the-linux-kernel.h -@@ -242,7 +242,7 @@ - /* accounting. */ - # if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 0) - # ifdef VM_ACCOUNT --# define MY_DO_MUNMAP(a,b,c) do_munmap(a, b, c, 0) /* should it be 1 or 0? */ -+# define USE_RHEL4_MUNMAP - # endif - # endif - -@@ -269,10 +269,6 @@ - # endif /* !RT_ARCH_AMD64 */ - #endif /* !NO_REDHAT_HACKS */ - --#ifndef MY_DO_MUNMAP --# define MY_DO_MUNMAP(a,b,c) do_munmap(a, b, c) --#endif -- - #ifndef MY_CHANGE_PAGE_ATTR - # ifdef RT_ARCH_AMD64 /** @todo This is a cheap hack, but it'll get around that 'else BUG();' in __change_page_attr(). */ - # define MY_CHANGE_PAGE_ATTR(pPages, cPages, prot) \ diff -Nru virtualbox-4.1.12-dfsg/debian/patches/40-fix-crash-64bit-guests.patch virtualbox-4.1.44-dfsg/debian/patches/40-fix-crash-64bit-guests.patch --- virtualbox-4.1.12-dfsg/debian/patches/40-fix-crash-64bit-guests.patch 2013-03-25 11:37:11.000000000 +0000 +++ virtualbox-4.1.44-dfsg/debian/patches/40-fix-crash-64bit-guests.patch 1970-01-01 00:00:00.000000000 +0000 @@ -1,32 +0,0 @@ -Description: VMMR0: really disable the NMI on 32-bit Linux hosts before running 64-bit guests -Origin: upstream, https://www.virtualbox.org/changeset/41645/vbox -Bug-Ubuntu: https://bugs.launchpad.net/bugs/1071344 - ---- a/src/VBox/VMM/VMMR0/HWSVMR0.cpp -+++ b/src/VBox/VMM/VMMR0/HWSVMR0.cpp -@@ -2866,6 +2866,11 @@ - /* Disable interrupts. */ - uOldEFlags = ASMIntDisableFlags(); - -+#ifdef VBOX_WITH_VMMR0_DISABLE_LAPIC_NMI -+ RTCPUID idHostCpu = RTMpCpuId(); -+ CPUMR0SetLApic(pVM, idHostCpu); -+#endif -+ - CPUMSetHyperESP(pVCpu, VMMGetStackRC(pVCpu)); - CPUMSetHyperEIP(pVCpu, pfnHandler); - for (int i=(int)cbParam-1;i>=0;i--) ---- a/src/VBox/VMM/VMMR0/HWVMXR0.cpp -+++ b/src/VBox/VMM/VMMR0/HWVMXR0.cpp -@@ -4726,6 +4726,11 @@ - /* Disable interrupts. */ - uOldEFlags = ASMIntDisableFlags(); - -+#ifdef VBOX_WITH_VMMR0_DISABLE_LAPIC_NMI -+ RTCPUID idHostCpu = RTMpCpuId(); -+ CPUMR0SetLApic(pVM, idHostCpu); -+#endif -+ - pCpu = HWACCMR0GetCurrentCpu(); - HCPhysCpuPage = RTR0MemObjGetPagePhysAddr(pCpu->hMemObj, 0); - diff -Nru virtualbox-4.1.12-dfsg/debian/patches/41-add-support-for-linux-3-7.patch virtualbox-4.1.44-dfsg/debian/patches/41-add-support-for-linux-3-7.patch --- virtualbox-4.1.12-dfsg/debian/patches/41-add-support-for-linux-3-7.patch 2013-09-10 07:49:49.000000000 +0000 +++ virtualbox-4.1.44-dfsg/debian/patches/41-add-support-for-linux-3-7.patch 1970-01-01 00:00:00.000000000 +0000 @@ -1,30 +0,0 @@ -From 455df559ccb9f59119a04d62b7732dfadf35dc52 Mon Sep 17 00:00:00 2001 -From: Alberto Milone -Date: Tue, 10 Sep 2013 09:44:30 +0200 -Subject: [PATCH 1/1] Add support for Linux 3.7 - ---- - src/VBox/Runtime/r0drv/linux/memobj-r0drv-linux.c | 7 ++++++- - 1 file changed, 6 insertions(+), 1 deletion(-) - -diff --git a/src/VBox/Runtime/r0drv/linux/memobj-r0drv-linux.c b/src/VBox/Runtime/r0drv/linux/memobj-r0drv-linux.c -index 29697ca..f8d0f41 100644 ---- a/src/VBox/Runtime/r0drv/linux/memobj-r0drv-linux.c -+++ b/src/VBox/Runtime/r0drv/linux/memobj-r0drv-linux.c -@@ -1448,7 +1448,12 @@ DECLHIDDEN(int) rtR0MemObjNativeMapUser(PPRTR0MEMOBJINTERNAL ppMem, RTR0MEMOBJ p - - #if defined(VBOX_USE_INSERT_PAGE) && LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 22) - rc = vm_insert_page(vma, ulAddrCur, pMemLnxToMap->apPages[iPage]); -- vma->vm_flags |= VM_RESERVED; /* This flag helps making 100% sure some bad stuff wont happen (swap, core, ++). */ -+/* This flag helps making 100% sure some bad stuff wont happen (swap, core, ++). */ -+#if LINUX_VERSION_CODE >= KERNEL_VERSION(3, 7, 0) -+ vma->vm_flags |= VM_DONTEXPAND | VM_DONTDUMP; -+#else -+ vma->vm_flags |= VM_RESERVED; -+#endif - #elif LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 11) - rc = remap_pfn_range(vma, ulAddrCur, page_to_pfn(pMemLnxToMap->apPages[iPage]), PAGE_SIZE, fPg); - #elif defined(VBOX_USE_PAE_HACK) --- -1.7.9.5 - diff -Nru virtualbox-4.1.12-dfsg/debian/patches/42-add-support-for-linux-3-8.patch virtualbox-4.1.44-dfsg/debian/patches/42-add-support-for-linux-3-8.patch --- virtualbox-4.1.12-dfsg/debian/patches/42-add-support-for-linux-3-8.patch 2013-09-10 09:01:00.000000000 +0000 +++ virtualbox-4.1.44-dfsg/debian/patches/42-add-support-for-linux-3-8.patch 1970-01-01 00:00:00.000000000 +0000 @@ -1,30 +0,0 @@ -From 3bbf30c427dd9783f802c0e170d7d699cef6e888 Mon Sep 17 00:00:00 2001 -From: Alberto Milone -Date: Tue, 10 Sep 2013 10:59:26 +0200 -Subject: [PATCH 1/1] Add support for Linux 3.8 - -Do not use __devinitdata with Linux 3.8 or higher ---- - .../Additions/common/VBoxGuest/VBoxGuest-linux.c | 6 +++++- - 1 file changed, 5 insertions(+), 1 deletion(-) - -diff --git a/src/VBox/Additions/common/VBoxGuest/VBoxGuest-linux.c b/src/VBox/Additions/common/VBoxGuest/VBoxGuest-linux.c -index e8effb3..ba015bd 100644 ---- a/src/VBox/Additions/common/VBoxGuest/VBoxGuest-linux.c -+++ b/src/VBox/Additions/common/VBoxGuest/VBoxGuest-linux.c -@@ -203,7 +203,11 @@ static struct miscdevice g_MiscDeviceUser = - - - /** PCI hotplug structure. */ --static const struct pci_device_id __devinitdata g_VBoxGuestPciId[] = -+static const struct pci_device_id -+#if LINUX_VERSION_CODE < KERNEL_VERSION(3, 8, 0) -+__devinitdata -+#endif -+g_VBoxGuestPciId[] = - { - { - vendor: VMMDEV_VENDORID, --- -1.7.9.5 - diff -Nru virtualbox-4.1.12-dfsg/debian/patches/43-add-support-for-linux-3-9.patch virtualbox-4.1.44-dfsg/debian/patches/43-add-support-for-linux-3-9.patch --- virtualbox-4.1.12-dfsg/debian/patches/43-add-support-for-linux-3-9.patch 2013-09-10 09:30:23.000000000 +0000 +++ virtualbox-4.1.44-dfsg/debian/patches/43-add-support-for-linux-3-9.patch 1970-01-01 00:00:00.000000000 +0000 @@ -1,27 +0,0 @@ -From b59ed6c1b2311d39391b27ab9e8c9861a9231c43 Mon Sep 17 00:00:00 2001 -From: Alberto Milone -Date: Tue, 10 Sep 2013 11:28:46 +0200 -Subject: [PATCH 1/1] Add support for Linux 3.9 - -MAX_PRIO and MAX_RT_PRIO have been moved into linux/sched/rt.h ---- - src/VBox/Runtime/r0drv/linux/thread2-r0drv-linux.c | 3 +++ - 1 file changed, 3 insertions(+) - -diff --git a/src/VBox/Runtime/r0drv/linux/thread2-r0drv-linux.c b/src/VBox/Runtime/r0drv/linux/thread2-r0drv-linux.c -index d8a723a..f37a9e8 100644 ---- a/src/VBox/Runtime/r0drv/linux/thread2-r0drv-linux.c -+++ b/src/VBox/Runtime/r0drv/linux/thread2-r0drv-linux.c -@@ -35,6 +35,9 @@ - #include - #include - #include "internal/thread.h" -+#if LINUX_VERSION_CODE >= KERNEL_VERSION(3, 9, 0) -+#include -+#endif - - - RTDECL(RTTHREAD) RTThreadSelf(void) --- -1.7.9.5 - diff -Nru virtualbox-4.1.12-dfsg/debian/patches/44-add-support-for-linux-3-6.patch virtualbox-4.1.44-dfsg/debian/patches/44-add-support-for-linux-3-6.patch --- virtualbox-4.1.12-dfsg/debian/patches/44-add-support-for-linux-3-6.patch 2013-09-10 10:57:05.000000000 +0000 +++ virtualbox-4.1.44-dfsg/debian/patches/44-add-support-for-linux-3-6.patch 1970-01-01 00:00:00.000000000 +0000 @@ -1,26 +0,0 @@ -From 8d937becf2de6d3c0fdad88586bff5c512ca0f71 Mon Sep 17 00:00:00 2001 -From: Alberto Milone -Date: Tue, 10 Sep 2013 12:56:21 +0200 -Subject: [PATCH 1/1] Add support for Linux 3.6 - ---- - src/VBox/Additions/linux/drm/vboxvideo_drm.c | 2 ++ - 1 file changed, 2 insertions(+) - -diff --git a/src/VBox/Additions/linux/drm/vboxvideo_drm.c b/src/VBox/Additions/linux/drm/vboxvideo_drm.c -index c0d8bb0..c56732d 100644 ---- a/src/VBox/Additions/linux/drm/vboxvideo_drm.c -+++ b/src/VBox/Additions/linux/drm/vboxvideo_drm.c -@@ -103,7 +103,9 @@ static struct drm_driver driver = - { - /* .driver_features = DRIVER_USE_MTRR, */ - .load = vboxvideo_driver_load, -+#if LINUX_VERSION_CODE < KERNEL_VERSION (3, 6, 0) - .reclaim_buffers = drm_core_reclaim_buffers, -+#endif - /* As of Linux 2.6.37, always the internal functions are used. */ - #if LINUX_VERSION_CODE < KERNEL_VERSION (2, 6, 37) && !defined(DRM_RHEL61) - .get_map_ofs = drm_core_get_map_ofs, --- -1.7.9.5 - diff -Nru virtualbox-4.1.12-dfsg/debian/patches/45-add-support-for-linux-3-11.patch virtualbox-4.1.44-dfsg/debian/patches/45-add-support-for-linux-3-11.patch --- virtualbox-4.1.12-dfsg/debian/patches/45-add-support-for-linux-3-11.patch 2013-09-30 08:54:01.000000000 +0000 +++ virtualbox-4.1.44-dfsg/debian/patches/45-add-support-for-linux-3-11.patch 1970-01-01 00:00:00.000000000 +0000 @@ -1,89 +0,0 @@ -Description: Fix for Linux 3.11 -Origin: upstream, https://www.virtualbox.org/changeset/47588/vbox and - https://www.virtualbox.org/changeset/47484/vbox - ---- a/src/VBox/Additions/linux/sharedfolders/dirops.c -+++ b/src/VBox/Additions/linux/sharedfolders/dirops.c -@@ -233,7 +233,11 @@ - * b. failure to compute fake inode number - * c. filldir returns an error (see comment on that) - */ --static int sf_dir_read (struct file *dir, void *opaque, filldir_t filldir) -+#if LINUX_VERSION_CODE >= KERNEL_VERSION(3, 11, 0) -+static int sf_dir_iterate(struct file *dir, struct dir_context *ctx) -+#else -+static int sf_dir_read(struct file *dir, void *opaque, filldir_t filldir) -+#endif - { - TRACE(); - for (;;) -@@ -257,12 +261,19 @@ - /* skip erroneous entry and proceed */ - LogFunc(("sf_getdent error %d\n", err)); - dir->f_pos += 1; -+#if LINUX_VERSION_CODE >= KERNEL_VERSION(3, 11, 0) -+ ctx->pos += 1; -+#endif - continue; - } - - /* d_name now contains a valid entry name */ - -+#if LINUX_VERSION_CODE >= KERNEL_VERSION(3, 11, 0) -+ sanity = ctx->pos + 0xbeef; -+#else - sanity = dir->f_pos + 0xbeef; -+#endif - fake_ino = sanity; - if (sanity - fake_ino) - { -@@ -270,8 +281,11 @@ - return -EINVAL; - } - -- err = filldir(opaque, d_name, strlen(d_name), -- dir->f_pos, fake_ino, DT_UNKNOWN); -+#if LINUX_VERSION_CODE >= KERNEL_VERSION(3, 11, 0) -+ err = dir_emit(ctx, d_name, strlen(d_name), fake_ino, DT_UNKNOWN); -+#else -+ err = filldir(opaque, d_name, strlen(d_name), dir->f_pos, fake_ino, DT_UNKNOWN); -+#endif - if (err) - { - LogFunc(("filldir returned error %d\n", err)); -@@ -281,6 +295,9 @@ - } - - dir->f_pos += 1; -+#if LINUX_VERSION_CODE >= KERNEL_VERSION(3, 11, 0) -+ ctx->pos += 1; -+#endif - } - - BUG(); -@@ -289,7 +306,11 @@ - struct file_operations sf_dir_fops = - { - .open = sf_dir_open, -+#if LINUX_VERSION_CODE >= KERNEL_VERSION(3, 11, 0) -+ .iterate = sf_dir_iterate, -+#else - .readdir = sf_dir_read, -+#endif - .release = sf_dir_release, - .read = generic_read_dir - #if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 37) ---- a/src/VBox/HostDrivers/VBoxNetFlt/linux/VBoxNetFlt-linux.c -+++ b/src/VBox/HostDrivers/VBoxNetFlt/linux/VBoxNetFlt-linux.c -@@ -1804,7 +1804,11 @@ - - { - PVBOXNETFLTINS pThis = VBOX_FLT_NB_TO_INST(self); -+#if LINUX_VERSION_CODE >= KERNEL_VERSION(3, 11, 0) -+ struct net_device *pDev = netdev_notifier_info_to_dev(ptr); -+#else - struct net_device *pDev = (struct net_device *)ptr; -+#endif - int rc = NOTIFY_OK; - - Log(("VBoxNetFlt: got event %s(0x%lx) on %s, pDev=%p pThis=%p pThis->u.s.pDev=%p\n", diff -Nru virtualbox-4.1.12-dfsg/debian/patches/46-add-support-for-linux-3-13.patch virtualbox-4.1.44-dfsg/debian/patches/46-add-support-for-linux-3-13.patch --- virtualbox-4.1.12-dfsg/debian/patches/46-add-support-for-linux-3-13.patch 2014-12-15 09:21:55.000000000 +0000 +++ virtualbox-4.1.44-dfsg/debian/patches/46-add-support-for-linux-3-13.patch 1970-01-01 00:00:00.000000000 +0000 @@ -1,71 +0,0 @@ -on precise/12.04, virtualbox-source (4.1.12-dfsg-2ubuntu0.6) fails to build -against linux-headers-generic-lts-trusty (3.13.0.34.30). - - * https://www.virtualbox.org/ticket/11664 - * https://www.virtualbox.org/changeset/44923/vbox - * https://www.virtualbox.org/changeset/45300/vbox - ---- a/src/VBox/HostDrivers/Support/linux/SUPDrv-linux.c -+++ b/src/VBox/HostDrivers/Support/linux/SUPDrv-linux.c -@@ -223,7 +223,11 @@ - DECLINLINE(RTUID) vboxdrvLinuxUid(void) - { - #if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 29) -+# if LINUX_VERSION_CODE >= KERNEL_VERSION(3, 5, 0) -+ return from_kuid(current_user_ns(), current->cred->uid); -+# else - return current->cred->uid; -+# endif - #else - return current->uid; - #endif -@@ -232,7 +236,11 @@ - DECLINLINE(RTGID) vboxdrvLinuxGid(void) - { - #if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 29) -+# if LINUX_VERSION_CODE >= KERNEL_VERSION(3, 5, 0) -+ return from_kgid(current_user_ns(), current->cred->gid); -+# else - return current->cred->gid; -+# endif - #else - return current->gid; - #endif -@@ -241,7 +249,11 @@ - DECLINLINE(RTUID) vboxdrvLinuxEuid(void) - { - #if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 29) -+# if LINUX_VERSION_CODE >= KERNEL_VERSION(3, 5, 0) -+ return from_kuid(current_user_ns(), current->cred->euid); -+# else - return current->cred->euid; -+# endif - #else - return current->euid; - #endif ---- a/src/VBox/HostDrivers/VBoxPci/linux/VBoxPci-linux.c -+++ b/src/VBox/HostDrivers/VBoxPci/linux/VBoxPci-linux.c -@@ -429,7 +429,11 @@ - if (!pNewCreds) - goto done; - -+# if LINUX_VERSION_CODE >= KERNEL_VERSION(3, 5, 0) -+ pNewCreds->fsuid = GLOBAL_ROOT_UID; -+# else - pNewCreds->fsuid = 0; -+# endif - pOldCreds = override_creds(pNewCreds); - #endif - -@@ -539,7 +543,11 @@ - if (!pNewCreds) - goto done; - -+# if LINUX_VERSION_CODE >= KERNEL_VERSION(3, 5, 0) -+ pNewCreds->fsuid = GLOBAL_ROOT_UID; -+# else - pNewCreds->fsuid = 0; -+# endif - pOldCreds = override_creds(pNewCreds); - #endif - RTStrPrintf(szFileBuf, cMaxBuf, diff -Nru virtualbox-4.1.12-dfsg/debian/patches/47-add-support-for-linux-3-5.patch virtualbox-4.1.44-dfsg/debian/patches/47-add-support-for-linux-3-5.patch --- virtualbox-4.1.12-dfsg/debian/patches/47-add-support-for-linux-3-5.patch 2015-01-12 13:17:20.000000000 +0000 +++ virtualbox-4.1.44-dfsg/debian/patches/47-add-support-for-linux-3-5.patch 1970-01-01 00:00:00.000000000 +0000 @@ -1,38 +0,0 @@ -index c56732d..9fd29a7 100644 ---- a/src/VBox/Additions/linux/drm/vboxvideo_drm.c -+++ b/src/VBox/Additions/linux/drm/vboxvideo_drm.c -@@ -95,7 +95,6 @@ static struct file_operations driver_fops = - .unlocked_ioctl = drm_ioctl, - .mmap = drm_mmap, - .poll = drm_poll, -- .fasync = drm_fasync, - }; - #endif - -@@ -126,7 +125,6 @@ static struct drm_driver driver = - #endif - .mmap = drm_mmap, - .poll = drm_poll, -- .fasync = drm_fasync, - }, - #else /* LINUX_VERSION_CODE >= KERNEL_VERSION(3,3,0) */ - .fops = &driver_fops, -diff --git a/src/VBox/Additions/linux/sharedfolders/utils.c b/src/VBox/Additions/linux/sharedfolders/utils.c -index d6eb2ec..4c517f3 100644 ---- a/src/VBox/Additions/linux/sharedfolders/utils.c -+++ b/src/VBox/Additions/linux/sharedfolders/utils.c -@@ -144,8 +144,14 @@ void sf_init_inode(struct sf_glob_info *sf_g, struct inode *inode, - #endif - } - -+#if LINUX_VERSION_CODE >= KERNEL_VERSION(3, 5, 0) -+ inode->i_uid = make_kuid(current_user_ns(), sf_g->uid); -+ inode->i_gid = make_kgid(current_user_ns(), sf_g->gid); -+#else - inode->i_uid = sf_g->uid; - inode->i_gid = sf_g->gid; -+#endif -+ - inode->i_size = info->cbObject; - #if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 19) && !defined(KERNEL_FC6) - inode->i_blksize = 4096; diff -Nru virtualbox-4.1.12-dfsg/debian/patches/cve-2012-3221.patch virtualbox-4.1.44-dfsg/debian/patches/cve-2012-3221.patch --- virtualbox-4.1.12-dfsg/debian/patches/cve-2012-3221.patch 2013-03-25 11:37:11.000000000 +0000 +++ virtualbox-4.1.44-dfsg/debian/patches/cve-2012-3221.patch 1970-01-01 00:00:00.000000000 +0000 @@ -1,23 +0,0 @@ -Description: recompiler: Missing privilege check for task gate switches - Fixes kernel panic when invoking the double fault handler from user space - on Linux and maybe other guests -Origin: upstream, https://www.virtualbox.org/changeset/43068/vbox - -Index: virtualbox-4.1.18-dfsg/src/recompiler/target-i386/op_helper.c -=================================================================== ---- virtualbox-4.1.18-dfsg.orig/src/recompiler/target-i386/op_helper.c 2012-06-20 09:20:29.000000000 -0400 -+++ virtualbox-4.1.18-dfsg/src/recompiler/target-i386/op_helper.c 2012-10-18 16:39:20.647324489 -0400 -@@ -872,6 +872,13 @@ - type = (e2 >> DESC_TYPE_SHIFT) & 0x1f; - switch(type) { - case 5: /* task gate */ -+#ifdef VBOX -+ dpl = (e2 >> DESC_DPL_SHIFT) & 3; -+ cpl = env->hflags & HF_CPL_MASK; -+ /* check privilege if software int */ -+ if (is_int && dpl < cpl) -+ raise_exception_err(EXCP0D_GPF, intno * 8 + 2); -+#endif - /* must do that check here to return the correct error code */ - if (!(e2 & DESC_P_MASK)) - raise_exception_err(EXCP0B_NOSEG, intno * 8 + 2); diff -Nru virtualbox-4.1.12-dfsg/debian/patches/CVE-2013-0420.patch virtualbox-4.1.44-dfsg/debian/patches/CVE-2013-0420.patch --- virtualbox-4.1.12-dfsg/debian/patches/CVE-2013-0420.patch 2014-04-15 15:38:09.000000000 +0000 +++ virtualbox-4.1.44-dfsg/debian/patches/CVE-2013-0420.patch 1970-01-01 00:00:00.000000000 +0000 @@ -1,15 +0,0 @@ -Description: DevVGA: Do not draw more lines than necessary. -Origin: upstream, https://www.virtualbox.org/changeset/44055/vbox -Bug-Debian: http://bugs.debian.org/698292 - ---- virtualbox-4.1.18-dfsg.orig/src/VBox/Devices/Graphics/DevVGA.cpp -+++ virtualbox-4.1.18-dfsg/src/VBox/Devices/Graphics/DevVGA.cpp -@@ -1795,7 +1795,7 @@ static int vga_draw_text(VGAState *s, in - cx_max_upd = -1; - cx_min_upd = width; - -- for(cy = 0; cy < height; cy = cy + (1 << dscan)) { -+ for(cy = 0; cy < (height - dscan); cy = cy + (1 << dscan)) { - d1 = dest; - src = s1; - cx_min = width; diff -Nru virtualbox-4.1.12-dfsg/debian/patches/CVE-2014-0981.patch virtualbox-4.1.44-dfsg/debian/patches/CVE-2014-0981.patch --- virtualbox-4.1.12-dfsg/debian/patches/CVE-2014-0981.patch 2014-04-15 15:38:09.000000000 +0000 +++ virtualbox-4.1.44-dfsg/debian/patches/CVE-2014-0981.patch 1970-01-01 00:00:00.000000000 +0000 @@ -1,53 +0,0 @@ -diff -Nur VirtualBox-4.1.30/src/VBox/GuestHost/OpenGL/util/net.c VirtualBox-4.1.32/src/VBox/GuestHost/OpenGL/util/net.c ---- VirtualBox-4.1.30/src/VBox/GuestHost/OpenGL/util/net.c 2014-01-10 17:21:21.000000000 +0100 -+++ VirtualBox-4.1.32/src/VBox/GuestHost/OpenGL/util/net.c 2014-03-14 08:18:19.000000000 +0100 -@@ -957,7 +957,7 @@ - conn->InstantReclaim( conn, (CRMessage *) msg ); - } - -- -+#ifdef IN_GUEST - /** - * Called by the main receive function when we get a CR_MESSAGE_WRITEBACK - * message. Writeback is used to implement glGet*() functions. -@@ -990,7 +990,7 @@ - (*writeback)--; - crMemcpy( dest_ptr, ((char *)rb) + sizeof(*rb), payload_len ); - } -- -+#endif - - /** - * This is used by the SPUs that do packing (such as Pack, Tilesort and -@@ -1068,13 +1068,21 @@ - } - break; - case CR_MESSAGE_READ_PIXELS: -- crError( "Can't handle read pixels" ); -+ crWarning( "Can't handle read pixels" ); - return; - case CR_MESSAGE_WRITEBACK: -+#ifdef IN_GUEST - crNetRecvWriteback( &(pRealMsg->writeback) ); -+#else -+ crWarning("CR_MESSAGE_WRITEBACK not expected\n"); -+#endif - return; - case CR_MESSAGE_READBACK: -+#ifdef IN_GUEST - crNetRecvReadback( &(pRealMsg->readback), len ); -+#else -+ crWarning("CR_MESSAGE_READBACK not expected\n"); -+#endif - return; - case CR_MESSAGE_CRUT: - /* nothing */ -@@ -1092,7 +1100,7 @@ - { - char string[128]; - crBytesToString( string, sizeof(string), msg, len ); -- crError("crNetDefaultRecv: received a bad message: type=%d buf=[%s]\n" -+ crWarning("crNetDefaultRecv: received a bad message: type=%d buf=[%s]\n" - "Did you add a new message type and forget to tell " - "crNetDefaultRecv() about it?\n", - msg->header.type, string ); diff -Nru virtualbox-4.1.12-dfsg/debian/patches/CVE-2014-0983.patch virtualbox-4.1.44-dfsg/debian/patches/CVE-2014-0983.patch --- virtualbox-4.1.12-dfsg/debian/patches/CVE-2014-0983.patch 2014-04-15 15:38:09.000000000 +0000 +++ virtualbox-4.1.44-dfsg/debian/patches/CVE-2014-0983.patch 1970-01-01 00:00:00.000000000 +0000 @@ -1,62 +0,0 @@ ---- a/src/VBox/HostServices/SharedOpenGL/crserverlib/server_dispatch.py -+++ b/src/VBox/HostServices/SharedOpenGL/crserverlib/server_dispatch.py -@@ -46,6 +46,7 @@ - for func_name in keys: - current = 0 - array = "" -+ condition = "" - m = re.search( r"^(Color|Normal)([1234])(ub|b|us|s|ui|i|f|d)$", func_name ) - if m : - current = 1 -@@ -68,6 +69,7 @@ - name = "texCoord" - type = m.group(3) + m.group(2) - array = "[texture-GL_TEXTURE0_ARB]" -+ condition = "if (texture >= GL_TEXTURE0_ARB && texture < GL_TEXTURE0_ARB + CR_MAX_TEXTURE_UNITS)" - m = re.match( r"^(Index)(ub|b|us|s|ui|i|f|d)$", func_name ) - if m : - current = 1 -@@ -91,18 +93,23 @@ - name = string.lower( m.group(1)[:1] ) + m.group(1)[1:] - type = m.group(3) + m.group(2) - array = "[index]" -+ condition = "if (index < CR_MAX_VERTEX_ATTRIBS)" - if func_name == "VertexAttrib4NubARB": - current = 1 - name = "vertexAttrib" - type = "ub4" - array = "[index]" -+ condition = "if (index < CR_MAX_VERTEX_ATTRIBS)" - - if current: - params = apiutil.Parameters(func_name) - print 'void SERVER_DISPATCH_APIENTRY crServerDispatch%s( %s )' % ( func_name, apiutil.MakeDeclarationString(params) ) - print '{' -- print '\tcr_server.head_spu->dispatch_table.%s( %s );' % (func_name, apiutil.MakeCallString(params) ) -- print "\tcr_server.current.c.%s.%s%s = cr_unpackData;" % (name,type,array) -+ print '\t%s' % (condition) -+ print '\t{' -+ print '\t\tcr_server.head_spu->dispatch_table.%s( %s );' % (func_name, apiutil.MakeCallString(params) ) -+ print "\t\tcr_server.current.c.%s.%s%s = cr_unpackData;" % (name,type,array) -+ print '\t}' - print '}\n' - - print """ ---- a/src/VBox/HostServices/SharedOpenGL/crserverlib/server_simpleget.py -+++ b/src/VBox/HostServices/SharedOpenGL/crserverlib/server_simpleget.py -@@ -113,7 +113,14 @@ - *get_values = (%s)CR_MAX_TEXTURE_UNITS; - } - } -- """ % (types[index], types[index], types[index], types[index], types[index], types[index], types[index], types[index], types[index], types[index], types[index]) -+ else if (GL_MAX_VERTEX_ATTRIBS_ARB==pname) -+ { -+ if (CR_MAX_VERTEX_ATTRIBS < (GLuint)*get_values) -+ { -+ *get_values = (%s)CR_MAX_VERTEX_ATTRIBS; -+ } -+ } -+ """ % (types[index], types[index], types[index], types[index], types[index], types[index], types[index], types[index], types[index], types[index], types[index], types[index]) - print '\tcrServerReturnValue( get_values, tablesize );' - print '\tcrFree(get_values);' - print '}\n' diff -Nru virtualbox-4.1.12-dfsg/debian/patches/CVE-2015-0377.patch virtualbox-4.1.44-dfsg/debian/patches/CVE-2015-0377.patch --- virtualbox-4.1.12-dfsg/debian/patches/CVE-2015-0377.patch 2015-01-29 03:36:08.000000000 +0000 +++ virtualbox-4.1.44-dfsg/debian/patches/CVE-2015-0377.patch 1970-01-01 00:00:00.000000000 +0000 @@ -1,23 +0,0 @@ -Origin: https://bugs.debian.org/cgi-bin/bugreport.cgi?msg=79;filename=Attached+Message;att=2;bug=775888 -Subject: Handle MMIO Range Not Found - -Index: src/VBox/VMM/VMMAll/IOMAllMMIO.cpp -=================================================================== ---- a/src/VBox/VMM/VMMAll/IOMAllMMIO.cpp (revision 95342) -+++ b/src/VBox/VMM/VMMAll/IOMAllMMIO.cpp (revision 95343) -@@ -1696,7 +1696,14 @@ - if (rc2 == VERR_SEM_BUSY) - return VINF_IOM_HC_MMIO_READ_WRITE; - #endif -- VBOXSTRICTRC rcStrict = iomMMIOHandler(pVM, (uint32_t)uErrorCode, pCtxCore, GCPhysFault, iomMmioGetRange(pVM, GCPhysFault)); -+ PIOMMMIORANGE pRange = iomMmioGetRange(pVM, GCPhysFault); -+ if (RT_UNLIKELY(!pRange)) -+ { -+ IOM_UNLOCK(pVM); -+ return VERR_IOM_MMIO_RANGE_NOT_FOUND; -+ } -+ -+ VBOXSTRICTRC rcStrict = iomMMIOHandler(pVM, (uint32_t)uErrorCode, pCtxCore, GCPhysFault, pRange); - IOM_UNLOCK(pVM); - return VBOXSTRICTRC_VAL(rcStrict); - } diff -Nru virtualbox-4.1.12-dfsg/debian/patches/CVE-2015-0418.patch virtualbox-4.1.44-dfsg/debian/patches/CVE-2015-0418.patch --- virtualbox-4.1.12-dfsg/debian/patches/CVE-2015-0418.patch 2015-01-29 03:37:06.000000000 +0000 +++ virtualbox-4.1.44-dfsg/debian/patches/CVE-2015-0418.patch 1970-01-01 00:00:00.000000000 +0000 @@ -1,35 +0,0 @@ -Origin: https://bugs.debian.org/cgi-bin/bugreport.cgi?msg=79;filename=Attached+Message;att=2;bug=775888 -Subject: Handle RDRAND, INVPCID, VMFUNC calls from guests - -Index: include/VBox/vmm/hwacc_vmx.h -=================================================================== ---- a/include/VBox/vmm/hwacc_vmx.h (revision 96156) -+++ b/include/VBox/vmm/hwacc_vmx.h (revision 96157) -@@ -525,6 +525,12 @@ - #define VMX_EXIT_WBINVD 54 - /** 55 XSETBV. Guest software attempted to execute XSETBV. */ - #define VMX_EXIT_XSETBV 55 -+/** 57 RDRAND. Guest software attempted to execute RDRAND. */ -+#define VMX_EXIT_RDRAND 57 -+/** 58 INVPCID. Guest software attempted to execute INVPCID. */ -+#define VMX_EXIT_INVPCID 58 -+/** 59 VMFUNC. Guest software attempted to execute VMFUNC. */ -+#define VMX_EXIT_VMFUNC 59 - /** @} */ - - -Index: src/VBox/VMM/VMMR0/HWVMXR0.cpp -=================================================================== ---- a/src/VBox/VMM/VMMR0/HWVMXR0.cpp (revision 96156) -+++ b/src/VBox/VMM/VMMR0/HWVMXR0.cpp (revision 96157) -@@ -4112,6 +4112,10 @@ - case VMX_EXIT_VMWRITE: /* 25 Guest software executed VMWRITE. */ - case VMX_EXIT_VMXOFF: /* 26 Guest software executed VMXOFF. */ - case VMX_EXIT_VMXON: /* 27 Guest software executed VMXON. */ -+ case VMX_EXIT_INVEPT: /* 50 Guest software executed INVEPT. */ -+ case VMX_EXIT_INVVPID: /* 53 Guest software executed INVVPID. */ -+ case VMX_EXIT_INVPCID: /* 58 Guest software executed INVPCID. */ -+ case VMX_EXIT_VMFUNC: /* 59 Guest software executed VMFUNC. */ - /** @todo inject #UD immediately */ - rc = VERR_EM_INTERPRETER; - break; diff -Nru virtualbox-4.1.12-dfsg/debian/patches/CVE-2015-3456.patch virtualbox-4.1.44-dfsg/debian/patches/CVE-2015-3456.patch --- virtualbox-4.1.12-dfsg/debian/patches/CVE-2015-3456.patch 2015-05-22 00:04:49.000000000 +0000 +++ virtualbox-4.1.44-dfsg/debian/patches/CVE-2015-3456.patch 1970-01-01 00:00:00.000000000 +0000 @@ -1,74 +0,0 @@ -Index: virtualbox/src/VBox/Devices/Storage/fdc.c -=================================================================== ---- virtualbox.orig/src/VBox/Devices/Storage/fdc.c -+++ virtualbox/src/VBox/Devices/Storage/fdc.c -@@ -1514,7 +1514,7 @@ - FLOPPY_ERROR("controller not ready for reading\n"); - return 0; - } -- pos = fdctrl->data_pos; -+ pos = fdctrl->data_pos % FD_SECTOR_LEN; - if (fdctrl->msr & FD_MSR_NONDMA) { - pos %= FD_SECTOR_LEN; - if (pos == 0) { -@@ -1736,7 +1736,7 @@ - { - fdrive_t *cur_drv = get_cur_drv(fdctrl); - -- /* XXX: should set main status register to busy */ -+ fdctrl->msr &= ~FD_MSR_RQM; - cur_drv->head = (fdctrl->fifo[1] >> 2) & 1; - #ifdef VBOX - TMTimerSetMillies(fdctrl->result_timer, 1000 / 50); -@@ -1897,22 +1897,25 @@ - { - fdrive_t *cur_drv = get_cur_drv(fdctrl); - -- if (fdctrl->fifo[fdctrl->data_pos - 1] & 0x80) { -+ /* This command takes a variable number of parameters. It can be terminated -+ * at any time if the high bit of a parameter is set. Once there are 6 bytes -+ * in the FIFO (command + 5 parameter bytes), data_len/data_pos will be 7. -+ */ -+ if (fdctrl->data_len == 7 || (fdctrl->fifo[fdctrl->data_pos - 1] & 0x80)) { -+ - /* Command parameters done */ - if (fdctrl->fifo[fdctrl->data_pos - 1] & 0x40) { -- fdctrl->fifo[0] = fdctrl->fifo[1]; -+ /* Data is echoed, but not stored! */ -+ fdctrl->fifo[0] = fdctrl->data_len > 2 ? fdctrl->fifo[1] : 0; -+ fdctrl->fifo[1] = fdctrl->data_len > 3 ? fdctrl->fifo[2] : 0; - fdctrl->fifo[2] = 0; - fdctrl->fifo[3] = 0; - fdctrl_set_fifo(fdctrl, 4, 0); - } else { - fdctrl_reset_fifo(fdctrl); - } -- } else if (fdctrl->data_len > 7) { -- /* ERROR */ -- fdctrl->fifo[0] = 0x80 | -- (cur_drv->head << 2) | GET_CUR_DRV(fdctrl); -- fdctrl_set_fifo(fdctrl, 1, 0); -- } -+ } else -+ fdctrl->data_len++; /* Wait for another byte. */ - } - - static void fdctrl_handle_relative_seek_out(fdctrl_t *fdctrl, int direction) -@@ -1977,7 +1980,7 @@ - { FD_CMD_CONFIGURE, 0xff, "CONFIGURE", 3, fdctrl_handle_configure }, - { FD_CMD_POWERDOWN_MODE, 0xff, "POWERDOWN MODE", 2, fdctrl_handle_powerdown_mode }, - { FD_CMD_OPTION, 0xff, "OPTION", 1, fdctrl_handle_option }, -- { FD_CMD_DRIVE_SPECIFICATION_COMMAND, 0xff, "DRIVE SPECIFICATION COMMAND", 5, fdctrl_handle_drive_specification_command }, -+ { FD_CMD_DRIVE_SPECIFICATION_COMMAND, 0xff, "DRIVE SPECIFICATION COMMAND", 1, fdctrl_handle_drive_specification_command }, - { FD_CMD_RELATIVE_SEEK_OUT, 0xff, "RELATIVE SEEK OUT", 2, fdctrl_handle_relative_seek_out }, - { FD_CMD_FORMAT_AND_WRITE, 0xff, "FORMAT AND WRITE", 10, fdctrl_unimplemented }, - { FD_CMD_RELATIVE_SEEK_IN, 0xff, "RELATIVE SEEK IN", 2, fdctrl_handle_relative_seek_in }, -@@ -2038,7 +2041,7 @@ - } - - FLOPPY_DPRINTF("%s: %02x\n", __func__, value); -- fdctrl->fifo[fdctrl->data_pos++] = value; -+ fdctrl->fifo[fdctrl->data_pos++ % FD_SECTOR_LEN] = value; - if (fdctrl->data_pos == fdctrl->data_len) { - /* We now have all parameters - * and will be able to treat the command diff -Nru virtualbox-4.1.12-dfsg/debian/patches/fix-ipv6-build.patch virtualbox-4.1.44-dfsg/debian/patches/fix-ipv6-build.patch --- virtualbox-4.1.12-dfsg/debian/patches/fix-ipv6-build.patch 1970-01-01 00:00:00.000000000 +0000 +++ virtualbox-4.1.44-dfsg/debian/patches/fix-ipv6-build.patch 2015-11-17 11:56:51.000000000 +0000 @@ -0,0 +1,15 @@ +Description: fix build, for some reasons this version of libvncserver is not really ipv6 ready. + ipv6port is not defined in the struct. + +Author: Gianfranco Costamagna + +--- virtualbox-4.1.44-dfsg.orig/src/VBox/Frontends/VBoxHeadless/FramebufferVNC.cpp ++++ virtualbox-4.1.44-dfsg/src/VBox/Frontends/VBoxHeadless/FramebufferVNC.cpp +@@ -91,6 +91,7 @@ HRESULT VNCFB::init(const char *pszName) + if (mVncPort) + { + vncServer->port = mVncPort; ++#undef LIBVNCSERVER_IPv6 + #ifdef LIBVNCSERVER_IPv6 + vncServer->ipv6port = mVncPort; + #endif diff -Nru virtualbox-4.1.12-dfsg/debian/patches/fix-module-build.patch virtualbox-4.1.44-dfsg/debian/patches/fix-module-build.patch --- virtualbox-4.1.12-dfsg/debian/patches/fix-module-build.patch 1970-01-01 00:00:00.000000000 +0000 +++ virtualbox-4.1.44-dfsg/debian/patches/fix-module-build.patch 2015-11-17 16:31:12.000000000 +0000 @@ -0,0 +1,24 @@ +Description: fix module build failure with -lts-trusty kernel + well, with this kernel broadwell/skylake cpu will just stop working. + this isn't properly a regression, because at the moment when precise + was released the kernel wasn't supporting SMAP. + . + Since the "regression" is not due to this upgrade, but because of the + linux upgrade (to lts stack), I just put a warning, and let the compilation + finish correctly. + The best way would be to upgrade to virtualbox 4.2 because recently upstream + backported the SMAP feature to it. + +Author: Gianfranco Costamagna + +--- virtualbox-4.1.44-dfsg.orig/src/VBox/HostDrivers/Support/linux/SUPDrv-linux.c ++++ virtualbox-4.1.44-dfsg/src/VBox/HostDrivers/Support/linux/SUPDrv-linux.c +@@ -85,7 +85,7 @@ + #endif + + #ifdef CONFIG_X86_SMAP +-# error "CONFIG_X86_SMAP is only supported by 4.3 and higher. Please upgrade VirtualBox." ++# warning "CONFIG_X86_SMAP is only supported by 4.3 and higher. Please upgrade VirtualBox." + #endif + + /* to include the version number of VirtualBox into kernel backtraces */ diff -Nru virtualbox-4.1.12-dfsg/debian/patches/series virtualbox-4.1.44-dfsg/debian/patches/series --- virtualbox-4.1.12-dfsg/debian/patches/series 2015-05-22 00:04:49.000000000 +0000 +++ virtualbox-4.1.44-dfsg/debian/patches/series 2015-11-17 16:28:21.000000000 +0000 @@ -13,23 +13,7 @@ 30-usb-warning-filters.patch 32-disable-guest-version-check.patch 35-libvdeplug-soname.patch -36-tarball-respin.patch -37-fix-unregister-netdevice.patch -cve-2012-3221.patch -38-fix-nat-local-dns-resolver.patch -39-kernel-35.patch -40-fix-crash-64bit-guests.patch -41-add-support-for-linux-3-7.patch -42-add-support-for-linux-3-8.patch -43-add-support-for-linux-3-9.patch -44-add-support-for-linux-3-6.patch -45-add-support-for-linux-3-11.patch -46-add-support-for-linux-3-13.patch -CVE-2013-0420.patch -38-security-fixes-2014-01.patch -CVE-2014-0981.patch -CVE-2014-0983.patch -47-add-support-for-linux-3-5.patch -CVE-2015-0377.patch -CVE-2015-0418.patch -CVE-2015-3456.patch +36-fix-ftbfs-xserver-112.patch +37-wheezy-kernel-drm.patch +fix-ipv6-build.patch +fix-module-build.patch diff -Nru virtualbox-4.1.12-dfsg/debian/rules virtualbox-4.1.44-dfsg/debian/rules --- virtualbox-4.1.12-dfsg/debian/rules 2013-03-25 11:37:11.000000000 +0000 +++ virtualbox-4.1.44-dfsg/debian/rules 2015-11-17 11:56:51.000000000 +0000 @@ -19,6 +19,8 @@ upstreamversion := $(shell dpkg-parsechangelog | sed -n 's/^Version: *\([^-]\+\)-.\+/\1/p') +pkgs_xzcompress = $(shell dh_listpackages | grep -v -e ose -e source) + DIST_NAME := $(shell lsb_release -si) DIST_RELEASE := $(DIST_NAME)/$(shell lsb_release -sc) @@ -80,7 +82,7 @@ %: - dh $@ --with python_central,dkms + dh $@ --with python2,dkms override_dh_auto_configure: @echo Building for $(DIST_RELEASE) @@ -231,8 +233,9 @@ override_dh_compress: dh_compress -X.pdf -override_dh_pycentral: - dh_pycentral -p$(sname) +override_dh_builddeb: + dh_builddeb $(foreach pkg,$(pkgs_xzcompress),-p$(pkg)) -- -Zxz + dh_builddeb --remaining-packages override_dh_auto_clean: dh_auto_clean @@ -269,5 +272,5 @@ -type d ! -name '*mesa-*' -exec rm -rf {} \; cd ..; mv $(CURDIR) virtualbox-$(upstreamversion)-dfsg; \ tar --exclude .svn --exclude '.git*' --exclude debian \ - -cjf virtualbox_$(upstreamversion)-dfsg.orig.tar.bz2 \ + -cJf virtualbox_$(upstreamversion)-dfsg.orig.tar.xz \ virtualbox-$(upstreamversion)-dfsg diff -Nru virtualbox-4.1.12-dfsg/doc/manual/en_US/user_BasicConcepts.xml virtualbox-4.1.44-dfsg/doc/manual/en_US/user_BasicConcepts.xml --- virtualbox-4.1.12-dfsg/doc/manual/en_US/user_BasicConcepts.xml 2012-04-02 13:24:35.000000000 +0000 +++ virtualbox-4.1.44-dfsg/doc/manual/en_US/user_BasicConcepts.xml 2015-11-11 15:05:59.000000000 +0000 @@ -393,6 +393,9 @@ Additions be installed. As a result, this setting has no effect otherwise; see for details. + + The shared clipboard is disabled by default. See + for an explanation. diff -Nru virtualbox-4.1.12-dfsg/doc/manual/en_US/user_GuestAdditions.xml virtualbox-4.1.44-dfsg/doc/manual/en_US/user_GuestAdditions.xml --- virtualbox-4.1.12-dfsg/doc/manual/en_US/user_GuestAdditions.xml 2012-04-02 13:24:35.000000000 +0000 +++ virtualbox-4.1.44-dfsg/doc/manual/en_US/user_GuestAdditions.xml 2015-11-11 15:05:59.000000000 +0000 @@ -1030,13 +1030,16 @@ iocharset CHARSET - to set the character set used for I/O operations (utf8 by - default) and + to set the character set used for I/O operations. Note that + on Linux guests, if the "iocharset" option is not specified then + the Guest Additions driver will attempt to use the character set + specified by the CONFIG_NLS_DEFAULT kernel option. If this option + is not set either then UTF-8 will be used. Also, convertcp CHARSET - to specify the character set used for the shared folder name - (utf8 by default). + is available in order to specify the character set used for + the shared folder name (utf8 by default). The generic mount options (documented in the mount manual page) apply also. Especially useful are the options @@ -1605,7 +1608,11 @@ of fused pages, whereas the per-VM metric Guest/RAM/Usage/Shared will return the amount of fused memory for a given VM. Please refer to for information on how to query metrics. + linkend="metrics" /> for information on how to query metrics. + + Enabling Page Fusion might indirectly increase the chances + for malicious guests to successfully attack other VMs running on the + same host, see . diff -Nru virtualbox-4.1.12-dfsg/doc/manual/en_US/user_Introduction.xml virtualbox-4.1.44-dfsg/doc/manual/en_US/user_Introduction.xml --- virtualbox-4.1.12-dfsg/doc/manual/en_US/user_Introduction.xml 2012-04-02 13:24:35.000000000 +0000 +++ virtualbox-4.1.44-dfsg/doc/manual/en_US/user_Introduction.xml 2015-11-11 15:05:59.000000000 +0000 @@ -430,6 +430,7 @@ 10.7 (Lion, 32-bit and 64-bit) + Intel hardware is required; please see + 11.04 ("Natty Narwhal"), 11.10 ("Oneiric Oncelot"), + 12.04 ("Precise Pangolin") @@ -464,7 +466,7 @@ - Fedora Core 4 to 15 + Fedora Core 4 to 17 diff -Nru virtualbox-4.1.12-dfsg/doc/manual/en_US/user_KnownIssues.xml virtualbox-4.1.44-dfsg/doc/manual/en_US/user_KnownIssues.xml --- virtualbox-4.1.12-dfsg/doc/manual/en_US/user_KnownIssues.xml 2012-04-02 13:24:35.000000000 +0000 +++ virtualbox-4.1.44-dfsg/doc/manual/en_US/user_KnownIssues.xml 2015-11-11 15:05:59.000000000 +0000 @@ -39,6 +39,9 @@ Support of iSCSI via internal networking + + Synthetic CPU reporting + @@ -151,6 +154,12 @@ + The RDP server in the VirtualBox extension pack supports only + audio streams in format 22.05kHz stereo 16 bit. If the RDP client + requests any other audio format there will be no audio. + + + Preserving the aspect ratio in scale mode works only on Windows hosts and on Mac OS X hosts. diff -Nru virtualbox-4.1.12-dfsg/doc/manual/en_US/user_Networking.xml virtualbox-4.1.44-dfsg/doc/manual/en_US/user_Networking.xml --- virtualbox-4.1.12-dfsg/doc/manual/en_US/user_Networking.xml 2012-04-02 13:24:35.000000000 +0000 +++ virtualbox-4.1.44-dfsg/doc/manual/en_US/user_Networking.xml 2015-11-11 15:05:59.000000000 +0000 @@ -443,6 +443,18 @@ AirPort" (which is the wireless interface) and "en0: Ethernet", which represents the interface with a network cable. + Bridging to a wireless interface is done differently from + bridging to a wired interface, because most wireless adapters do not + support promiscuous mode. All traffic has to use the MAC address of the + host's wireless adapter, and therefore VirtualBox needs to replace the + source MAC address in the Ethernet header of an outgoing packet to make + sure the reply will be sent to the host interface. When VirtualBox sees + an incoming packet with a destination IP address that belongs to one of + the virtual machine adapters it replaces the destination MAC address in + the Ethernet header with the VM adapter's MAC address and passes it on. + VirtualBox examines ARP and DHCP packets in order to learn the IP + addresses of virtual machines. + Depending on your host operating system, the following limitations should be kept in mind: @@ -622,6 +634,8 @@ linkend="vboxmanage-dhcpserver" /> for details. + On Linux and Mac OS X hosts the number of host-only interfaces is + limited to 128. There is no such limit for Solaris and Windows hosts. diff -Nru virtualbox-4.1.12-dfsg/doc/manual/en_US/user_Security.xml virtualbox-4.1.44-dfsg/doc/manual/en_US/user_Security.xml --- virtualbox-4.1.12-dfsg/doc/manual/en_US/user_Security.xml 2012-04-02 13:24:35.000000000 +0000 +++ virtualbox-4.1.44-dfsg/doc/manual/en_US/user_Security.xml 2015-11-11 15:05:59.000000000 +0000 @@ -211,7 +211,7 @@ See for details. - + Clipboard The shared clipboard allows users to share data between the host and @@ -219,8 +219,23 @@ the guest to read and write the host clipboard. The "Host to guest" mode and the "Guest to host" mode limit the access to one direction. If the guest is able to access the host clipboard it - could also access sensitive data from the host which is shared over - the clipboard. + can also potentially access sensitive data from the host which is + shared over the clipboard. + + + If the guest is able to read from and/or write to the host clipboard + then a remote user connecting to the guest over the network will also + gain this ability, which may not be desirable. As a consequence, the + shared clipboard is disabled for new machines. + + + + + Shared folders + If any host folder is shared with the guest then a remote + user connected to the guest over the network can access + these files too as the folder sharing mechanism cannot be + selectively disabled for remote users. @@ -304,7 +319,7 @@ --> - + Potentially insecure operations The following features of VirtualBox can present security @@ -327,6 +342,17 @@ + When Page Fusion (see ) + is enabled, it is possible that a side-channel opens up that allows + a malicious guest to determin the address space layout (i.e. where + DLLs are typically loaded) of one other VM running on the same host. + This information leak in it self is harmless, however the malicious + guest may use it to optimize attack against that VM via unrelated + attack vectors. It is recommended to only enable Page Fusion if you + do not think this is a concern in your setup. + + + When using the VirtualBox web service to control a VirtualBox host remotely, connections to the web service (through which the API calls are transferred via SOAP XML) are not encrypted, but use plain @@ -345,6 +371,13 @@ IPsec), or use encrypted protocols in the guest network (such as SSH). The security properties are similar to bridged Ethernet. + + + Because of shortcomings in older Windows versions, using + VirtualBox on Windows versions older than Vista with Service Pack 1 + is not recommended. + + diff -Nru virtualbox-4.1.12-dfsg/doc/manual/en_US/user_Storage.xml virtualbox-4.1.44-dfsg/doc/manual/en_US/user_Storage.xml --- virtualbox-4.1.12-dfsg/doc/manual/en_US/user_Storage.xml 2012-04-02 13:24:35.000000000 +0000 +++ virtualbox-4.1.44-dfsg/doc/manual/en_US/user_Storage.xml 2015-11-11 15:05:59.000000000 +0000 @@ -469,7 +469,7 @@ the same, i.e. their state is not saved when a snapshot is taken, and not restored when a snapshot is restored. The difference only shows if you attach such disks to several VMs. - Shareable VMs may be attached to several VMs which may run + Shareable disks may be attached to several VMs which may run concurrently. This makes them suitable for use by cluster filesystems between VMs and similar applications which are explicitly prepared to access a disk concurrently. Only fixed size images can be used in this diff -Nru virtualbox-4.1.12-dfsg/doc/manual/en_US/user_ThirdParty.xml virtualbox-4.1.44-dfsg/doc/manual/en_US/user_ThirdParty.xml --- virtualbox-4.1.12-dfsg/doc/manual/en_US/user_ThirdParty.xml 2012-04-02 13:24:35.000000000 +0000 +++ virtualbox-4.1.44-dfsg/doc/manual/en_US/user_ThirdParty.xml 2015-11-11 15:05:59.000000000 +0000 @@ -248,6 +248,18 @@ Copyright (C) 2010, 2011 Nokia Corporation and/or its subsidiary(-ies). + + VirtualBox contains parts of the FreeBSD kernel which is governed by + the license in . + + + + + VirtualBox contains parts of the NetBSD kernel which is governed by + the license in . + + + @@ -1588,6 +1600,8 @@ Slirp license + Copyright (c) 1995,1996 Danny Gasparovski. All rights reserved. + Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: @@ -2595,5 +2609,101 @@ 3. This notice may not be removed or altered from any source distribution. + + FreeBSD license + + The compilation of software known as FreeBSD is distributed under the + following terms: + + Copyright (c) 1992-2009 The FreeBSD Project. All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions + are met: + + + + Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + + + + + Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + + + + + THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND + ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + SUCH DAMAGE. + + + + NetBSD license + + Copyright (c) 1992, 1993 The Regents of the University of California. + All rights reserved. + + + This software was developed by the Computer Systems Engineering group + at Lawrence Berkeley Laboratory under DARPA contract BG 91-66 and + contributed to Berkeley. + + + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions + are met: + + + + + + Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + + + + + Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + + + + + Neither the name of the University nor the names of its contributors + may be used to endorse or promote products derived from this software + without specific prior written permission. + + + + + + THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND + ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE + FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + SUCH DAMAGE. + + + diff -Nru virtualbox-4.1.12-dfsg/doc/manual/en_US/user_VBoxManage.xml virtualbox-4.1.44-dfsg/doc/manual/en_US/user_VBoxManage.xml --- virtualbox-4.1.12-dfsg/doc/manual/en_US/user_VBoxManage.xml 2012-04-02 13:24:35.000000000 +0000 +++ virtualbox-4.1.44-dfsg/doc/manual/en_US/user_VBoxManage.xml 2015-11-11 15:05:59.000000000 +0000 @@ -615,6 +615,19 @@ + --nicbootprio<1-N> + <priority>: This specifies the order in which + NICs are tried for booting over the network (using PXE). The + priority is an integer in the 0 to 4 range. Priority 1 is the + highest, priority 4 is low. Priority 0, which is the default unless + otherwise specified, is the lowest. + + Note that this option only has effect when the Intel PXE boot + ROM is used. + + + + --boot<1-4> none|floppy|dvd|disk|net: This specifies the boot order for the virtual machine. There are four "slots", which the @@ -2131,7 +2144,7 @@ space in the guest system first be zeroed out using a suitable software tool. For Windows guests, you can use the sdelete tool provided by Microsoft. - Execute sdelete -c in the guest to + Execute sdelete -z in the guest to zero the free disk space before compressing the virtual disk image. For Linux, use the zerofree utility which supports ext2/ext3 filesystems. @@ -2144,18 +2157,24 @@ - The --resize option allows you - to change the capacity of an existing image; this adjusts the + The --resize x option (where x + is the desired new total space in megabytes) + allows you to change the capacity of an existing image; this adjusts the logical size of a virtual disk without affecting the physical size much. Image resizing was added with VirtualBox 4.0. - This currently works only for expanding the capacity of - VDI and VHD formats, and only for the dynamically allocated variants. + This currently works only for VDI and VHD formats, and only + for the dynamically allocated variants, and can only be used to expand + (not shrink) the capacity. For example, if you originally created a 10G disk which is now full, you can use the --resize 15360 - command to add 5 GByte more space to the virtual disk without - having to create a new image and copy all data from within a virtual - machine. + command to change the capacity to 15G (15,360MB) without having to create a new + image and copy all data from within a virtual machine. Note however that + this only changes the drive capacity; you will typically next need to use + a partition management tool inside the guest to adjust the main partition + to fill the drive.The --resizebyte x + option does almost the same thing, except that x is expressed in bytes + instead of megabytes. @@ -3383,7 +3402,7 @@ linkend="intro-installing" />. To add a new extension pack, use VBoxManage - extpack install <tarball>. This command + extpack install <.vbox-extpack>. This command will fail if an older version of the same extension pack is already installed. The optional --replace parameter can be used to uninstall the old package before the new diff -Nru virtualbox-4.1.12-dfsg/doc/manual/user_ChangeLogImpl.xml virtualbox-4.1.44-dfsg/doc/manual/user_ChangeLogImpl.xml --- virtualbox-4.1.12-dfsg/doc/manual/user_ChangeLogImpl.xml 2012-04-02 13:24:36.000000000 +0000 +++ virtualbox-4.1.44-dfsg/doc/manual/user_ChangeLogImpl.xml 2015-11-11 15:05:59.000000000 +0000 @@ -1,7 +1,890 @@ - Version 4.1.12 (2012-04-02) + Version 4.1.44 (2015-11-11) + + This is a maintenance release. The following items were fixed and/or + added: + + + + + several fixes + + + + + + + + Version 4.1.42 (2015-10-20) + + This is a maintenance release. The following items were fixed and/or + added: + + + + + several fixes + + + + Windows hosts: hardening fixes + + + + + + + + Version 4.1.40 (2015-07-09) + + This is a maintenance release. The following items were fixed and/or + added: + + + + + ExtPack: don't fail if the TMP directory contains non-latin1 + characters (bug #14159) + + + + Linux hosts: fixed a bug which made the netfilter driver ignore + certain events (bug #12264) + + + + + + + + + + Version 4.1.38 (2015-05-19) + + This is a maintenance release. The following items were fixed and/or + added: + + + + + VRDP: fixed incompatibility with rdesktop 1.8.3 + + + + Floppy: several fixes + + + + Windows hosts: more hardening fixes (e.g. bugs #14051, #14052) + + + + + + + + Version 4.1.36 (2015-01-16) + + This is a maintenance release. The following items were fixed and/or + added: + + + + + VRDP: fixed a rare crash when using remote audio input + + + + Storage: fixed data corruption when resizing VHD images under certain + circumstances + + + + Linux Additions: fixed a potential use-after-free when unloading + the VBoxGuest module + + + + + + + + Version 4.1.34 (2014-07-15) + + This is a maintenance release. The following items were fixed and/or + added: + + + + + HGCM: fixed a problem with saved states which could cause several + guest misbehavior after a VM was started from a saved state + + + + VRDP: fixed a potential crash on client disconnect (bug #12858) + + + + + + + Version 4.1.32 (2014-03-13) + + This is a maintenance release. The following items were fixed and/or + added: + + + + + 3D: several fixes + + + + Additions: fixed CPU hot-remove on newer Linux kernels + + + + + + + + Version 4.1.30 (2014-01-10) + + This is a maintenance release. The following items were fixed and/or + added: + + + + + HGCM: fixed crashes under certain conditions + + + + Storage: fixed detection of CD/DVD media when switching from an empty + to a host drive with passthrough enabled + + + + AHCI: fixed a bug which resulted in Windows XP guest hangs if a + SATA CDROM is attached (bug #12417) + + + + AHCI: fixed a Guru Meditation under certain conditions + + + + Linux Additions: correctly set umask before installing + (bug #12166) + + + + Windows Additions: fixed guest crashes in in Shared Folders + service under certain conditions + + + + Guest Additions / 3D: fix an occasional dead-lock (bug #12319) + + + + + + + + Version 4.1.28 (2013-10-11) + + This is a maintenance release. The following items were fixed and/or + added: + + + + + VMM: properly handle NMIs on Linux hosts with X2APIC + enabled + + + + GUI: fixed a crash on shut-down + + + + GUI: prevent crashes under certain conditions on X11 hosts + + + + VRDP: fixed a rare crash on the guest screen resize + + + + Storage: fixed lost writes if iSCSI is used with snapshots and ansyc I/O + (bug #11479) + + + + Storage: fixed hang when creating a snapshot using Parallels + disk images (bug #9617) + + + + USB: fixed hang during isochronous transfer with certain + devices (4.1 regression; Windows hosts only; bug #11839) + + + + Main/Properties: don't create a guest property for non-running + VMs if the property does not exist and is about to be removed + (bug #11765) + + + + Main/Properties: don't forget to make new guest properties + persistent after the VM was terminated (bug #11719) + + + + Main/OVF: don't crash during import if the client forgot to call + Appliance::interpret() (bug #10845) + + + + VBoxSVC: don't crash on systems with many VLAN interfaces + + + + Mac OS X installer: keep previously instlled Extension Packs on + VirtualBox upgrade + + + + Linux Additions: Linux 3.12 compile fix (bug #12083) + + + + Linux hosts / guests: Linux 3.11 fixes (bugs #11946, 12001) + + + + Windows hosts: fixed an issue with USB2 devices being inaccessible + when plugged into USB3 ports + + + + Linux Additions: fixed compilation against Linux 3.2.0 Ubuntu + kernels (4.1.26 regression as a result of the Debian kernel build fix) + + + + Linux Additions: fixed udev detection in the init script + with Linux 3.x kernels + + + + X11 Additions: support X.Org Server 1.14 (bug #11609) + + + + + + + Version 4.1.26 (2013-04-12) + + This is a maintenance release. The following items were fixed and/or + added: + + + + + Storage: fixed data corruption after resizing a VDI image under + certain circumstances (bug #11344) + + + + Storage: fixed crash when connecting to certain QNAP iSCSI + targets + + + + Bridged Networking: fixed TCP pseudo header checksum computation + for IPv6 (bug #9380) + + + + Linux hosts / Bridged Networking: fixed the problem with leaking + connections in conntrack (bug #11178) + + + + Audio: fixed broken ALSA & PulseAudio on some Linux hosts + due to invalid symbol resolution (bug #11615) + + + + VBoxManage: don't crash during screenshotpng + if there is no display (bug #11363) + + + + VBoxHeadless: don't filter guest property events as this would + affect all clients (bug #11644) + + + + Linux hosts: work around gcc bug 55940 which might lead to wrong + kernel module code if gcc 4.7 is used to compile the 32-bit Linux + host kernel (bug #11035) + + + + Linux hosts: made "]" key work again on Japanese keyboards. + + + + Solaris / Mac OS X hosts: VM CPU load metrics now report 100% + when all cores are fully utilized (used to be a single core) + + + + Linux hosts / guests: fixed shared folders driver build error on + 3.5 and newer kernels when CONFIG_UIDGID_STRICT_TYPE_CHECKS + option is enabled. + + + + Linux Additions: Linux 3.8 / 3.9 compile fixes (bug #11036) + + + + Linux Additions: handle fall-back to VESA driver on RedHat-based + guests if vboxvideo cannot be loaded + + + + Linux Additions: fixed two warnings in the shared folders + guest kernel module (bug #11390) + + + + Linux Additions: fixed shared folders NLS translation. + Currently, CONFIG_NLS_DEFAULT table is used by default, however + it might be overridden by *iocharset* mount option. + + + + Linux Additions: RHEL/OEL/CentOS 6.4 compile fix (bug #11586) + + + + Linux Additions: Debian Linux kernel 3.2.0-4 (3.2.39) compile + fix (bug #11634) + + + + X11 Additions: fixed an unresolved reference in vboxvideo_drv + for X.org 6.8 guests and before (e.g. RHEL4; 4.1.24 regression) + + + + X11 Additions: fixed screen automatic resizing for guests with + X.org 1.3 or older (4.2.0 regression) + + + + + + + Version 4.1.24 (2012-12-19) + + This is a maintenance release. The following items were fixed and/or + added: + + + + + VMM: adapted to changes in Mac OS X 10.8.2 (bug #10965) + + + + VMM: page fusion fixes + + + + GUI: disable proxy authentication for security reasons + + + + VRDP: fixed occasional crash during a video playback in the guest + + + + NAT: fixed a memory leak when disabling the NAT engine (bug #10801) + + + + NAT: fixed a crash under rare circumstances (Windows hosts only; + bug #10128) + + + + Virtio-net: fixed the problem with network statistics counters + in Session Information dialog (GUI) + + + + Storage: fixed a hang during VM reset under certain circumstances + (bug #10898) + + + + Storage: fixed hang under rare circumstances + + + + Storage: fixed hang in case of unaligned requests and async I/O enabled + + + + + Storage: fixed hang with newer VHD images (bug #11279) + + + + VGA: fix for double scan text modes + + + + VBoxManage: fixed a memory leak when executing and waiting for a + guest process (bug 10859) + + + + VBoxManage: fixed converting disks from raw images + + + + BIOS: certain legacy guests (e.g. Windows 95) didn't find the boot + device after a warm reboot + + + + BIOS: don't trash the palette in text modes when setting the border + color + + + + USB: fixed invalid pending request count at the time of service + of DEVICE POWER requests (Windows hosts only; + bugs #10021, #11056) + + + + OVF: fixed importing OVF files cerated by recent VMware + products (bug #10905) + + + + Linux hosts / guests: Linux 3.7-rc1 fixes + + + + Linux Additions: support X.Org Server 1.13 + + + + Linux Additions: fixed a hang when the X server was restarted with + old guest kernels + + + + Linux Additions: fixed a VBoxService crash during CPU hot remove + (bug #10964) + + + + Linux Additions: don't crash VBoxService if libdbus is + not available (bug #8638) + + + + Windows Additions: fixed Guest screen automatic resize + issue for NT4 + + + + Windows Additions: fixed auto-logon installation for + Windows 8 + + + + Windows Additions: fixed Guest Additions startup on Windows 2000 + guests + + + + Windows Additions: don't fail if the shared folders host service is not + available + + + + + + + + Version 4.1.22 (2012-09-07) + + This is a maintenance release. The following items were fixed and/or + added: + + + + + VMM: fixed a potential host crash triggered by shutting down a VM + when another VM was running (only affected 32-bit hosts and 64-bit OS X hosts, + 4.1 regression, bug #9897) + + + + VMM: fixed a potential host crash under a high guest memory pressure + (seen with Windows 8 guests) + + + + VMM: respect RAM preallocation while restoring saved state. + + + + VMM: fixed handling of task gates if VT-x/AMD-V is disabled + + + + Storage: fixed audio CD passthrough for certain media players + + + + USB: don't crash if a USB device is plugged or unplugged when + saving or loading the VM state (SMP guests only) + + + + RTC: fixed a potential corruption of CMOS bank 1 + + + + Mac OS X hosts: installer fixes for Leopard (4.1.20 regression) + + + + Windows Additions: fixed memory leak in VBoxTray (bug #10808) + + + + + + + Version 4.1.20 (2012-08-20) + + This is a maintenance release. The following items were fixed and/or + added: + + + + + VMM: fixed a crash under rare circumstances for VMs + running without hardware virtualization + + + + VMM: fixed a code analysis bug for certain displacement + instructions for VMs running without hardware virtualization + + + + VMM: fixed an interpretion bug for TPR read + instructions under rare conditions (AMD-V only) + + + + Snapshots: fixed a crash when restoring an old + snapshot when powering off a VM (bugs #9604, #10491) + + + + VBoxSVC: be more tolerant against environment variables with + strange encodings (bug #8780) + + + + VGA: fixed wrong access check which might cause a crash + under certain conditions + + + + NAT: final fix for crashes under rare conditions (bug #10513) + + + + Virtio-net: fixed the problem with receiving of GSO packets in + Windows XP guests causing packet loss in host-to-VM transfers + + + + HPET: several fixes (bugs #10170, #10306) + + + + Clipboard: disable the clipboard by default for new VMs + + + + BIOS: the PCI BIOS was not properly detected with the chipset + type set to ICH9 (bugs #9301, #10327) + + + + Mac OS X hosts: adaptions to Mountain Lion + + + + Linux Installer: fixes for Gentoo Linux (bug #10642) + + + + Linux guests: fixed mouse integration on Fedora 17 guests + (bug #2306) + + + + Linux Additions: compile fixes for RHEL/CentOS 6.3 (bug #10756) + + + + Linux Additions: compile fixes for Linux 3.5-rc1 and Linux 3.6-rc1 + (bug #10709) + + + + Solaris host: fixed a guru meditation while allocating large pages + (bug #10600) + + + + Solaris host: fixed possible kernel panics while freeing memory + + + + Solaris Installer: fixed missing icon for menu and desktop + shortcuts + + + + + + + Version 4.1.18 (2012-06-06) + + This is a maintenance release. The following items were fixed and/or + added: + + + + + VMM: fixed VERR_REM_VIRTUAL_CPU_ERROR + under rare conditions after the guest has been reset (bug #5164 + and others) + + + + VMM: fixed host freezes with 64-bit guests on 32-bit Linux + hosts (bug #10528) + + + + VRDP: added a workaround for rdesktop clients not properly + updating the screen size when minimized + + + + AHCI: fixed a rare bug which can cause a guest memory corruption + after the guest storage controller has been reset + + + + NAT: another attempt to fix crashes under rare conditions + (Windows hosts only; bug #10513) + + + + Mac OS X hosts: addressed issues running Leopard / Snow Leopard + (bug #10631) + + + + Linux hosts / Bridged Networking: fixed the problem with device driver + unloading on kernels 3.2.18 and newer due to an invalid reference counter + (bug #10624) + + + + Linux hosts / guests: Linux 3.5-rc1 fixes + + + + Linux Additions: the guest content was sometimes not properly + updated (bug #9887) + + + + Solaris Additions: installer fix for X.org Server 1.11 and 1.12 + + + + + + + Version 4.1.16 (2012-05-22) + + This is a maintenance release. The following items were fixed and/or + added: + + + + + VMM: fixed a Guru Meditation VERR_ACCESS_DENIED + with certain guests (bugs #7589, #8247) + + + + VMM: fixed a Guru Meditation VERR_PAGE_TABLE_NOT_PRESENT + with Ubuntu 32-bit guests with nested paging enabled on AMD CPUs (bug #10183) + + + + VMM: preserve segment limits and attributes when switching to unreal mode + required for some legacy guests to work properly (VT-x without unrestricted guest + execution only; bug #9941) + + + + VMM: fixed a VM hang after a resume from pause / savestate with SMP + guests in rare cases + + + + 3D Support: several fixes for the Windows WDDM video driver crash + + + + NAT: fixed a crash on attempt to process ICMP datagram under some + circumstances (bug #10527) + + + + Host-only Networking: lifted the maximal number of interfaces to + 128 on Linux and Mac OS X hosts (there is no such limitation for + Solaris and Windows hosts) + + + + EFI: fixed wrong SEC/PEI Core entry point calculation (bug #10531) + + + + VRDP: fixed a display update problem (bug #10503) + + + + Main: set the proper VM state if savestate failed for some + reason (bug #6189) + + + + Main: more useful error message if a medium is inaccessible + + + + VBoxManage: fixed controlvm savestate if the VM is already + paused + + + + Mac OS X hosts: addressed issues running on Mountain Lion Preview 3 + (bug #10267) + + + + Linux hosts: Linux 3.4 compile fixes + + + + Linux hosts: fixed wrong help path in some rpm-based packages + (bug #10418) + + + + Guest Additions: fixed handling of custom environment variables + during VBoxManage guestcontrol execute + (bug #10581) + + + + Windows Additions: fixed guest driver crash of VBoxSF in certain + cases (4.1.10 regression, bug #10408) + + + + Windows Additions: don't load the WDDM driver if 3D support is not available + for Windows 8 guests to keep the guest maintainable in that case (still better + to miss some features than providing a blank screen) + + + + Solaris Additions: added support for X.org Server 1.11 and 1.12 + + + + Lunix/Solaris Additions: fixed guest memory metrics collection + + + + + + + + Version 4.1.14 (2012-04-13) + + This is a maintenance release. The following items were fixed and/or + added: + + + + + Network: fixed the problem with packets larger than MTU-4 when + PCnet or PRO/1000 was bridged to certain types of adapters on OS X hosts + (bug #3783) + + + + NAT: fixed a segfault under rare circumstances + + + + 3D Support: fixed Windows WDDM video driver crash for SMP guests + (bugs #10200, #10331) + + + + Windows Additions, VRDP: fixed occasional corruption of vertical text + + + + + + + + Version 4.1.12 (2012-04-03) This is a maintenance release. The following items were fixed and/or added: @@ -38,10 +921,20 @@ + USB mouse: ensure that the last mouse event doesn't get lost if no URBs + are available + + + HGCM: fixed a crash during savestate under rare circumstances + Metrics: fixed an occasional crash during VM shutdown if host + RAM/VMM metrics are enabled + + + VBoxSVC: several locking fixes @@ -272,7 +1165,7 @@ NAT: increase maximum number of parallel connections making - connections with port forwarding more robust (#8471) + connections with port forwarding more robust (bug #8471) @@ -308,7 +1201,7 @@ 3D Support: fixed full screen mode issues for ATI graphics (bug #9775), - Windows Media Player rendering for XPDM-based Direct3D support (bug# 8341). + Windows Media Player rendering for XPDM-based Direct3D support (bug #8341). Multiple fixes to XPDM and WDDM - based 3D support for Windows Guests and for 3D support in general @@ -813,7 +1706,7 @@ Windows Vista and 7 guests: WDDM driver fixes and performance enhancements, - fixed WinSAT crashes (#9267) + fixed WinSAT crashes (bug #9267) @@ -919,7 +1812,7 @@ - GUI: when reverting to a snapshot, ask for taking a snapshot + GUI: when restoring a snapshot, ask for taking a snapshot of the current state @@ -2087,7 +2980,7 @@ - Windows Guest Additions: automatic logon on Windows Vista/Windows 7 now supports + Windows Additions: automatic logon on Windows Vista/Windows 7 now supports unlocking previously locked workstations @@ -4446,12 +5339,12 @@ - Linux Guest Additions: fixed installation on RHEL 3.9 guests + Linux Additions: fixed installation on RHEL 3.9 guests and on some 64bit guests - Linux Guest Additions: prevent SELinux warnings concerning + Linux Additions: prevent SELinux warnings concerning text relocations in VBoxOGL.so (bug #5690) @@ -4474,7 +5367,7 @@ - Windows Guest Additions: fixed uninstallation issues of NT4 + Windows Additions: fixed uninstallation issues of NT4 @@ -4733,7 +5626,7 @@ - Linux Additions: added support for uninstalling the Linux Guest + Linux Additions: added support for uninstalling the Linux Additions (bug #4039) diff -Nru virtualbox-4.1.12-dfsg/include/iprt/asm-amd64-x86.h virtualbox-4.1.44-dfsg/include/iprt/asm-amd64-x86.h --- virtualbox-4.1.12-dfsg/include/iprt/asm-amd64-x86.h 2012-04-02 13:24:42.000000000 +0000 +++ virtualbox-4.1.44-dfsg/include/iprt/asm-amd64-x86.h 2015-11-11 15:06:02.000000000 +0000 @@ -68,6 +68,10 @@ # pragma intrinsic(__readcr8) # pragma intrinsic(__writecr8) # endif +# if RT_INLINE_ASM_USES_INTRIN >= 15 +# pragma intrinsic(__readeflags) +# pragma intrinsic(__writeeflags) +# endif #endif @@ -353,7 +357,7 @@ * Get the [RE]FLAGS register. * @returns [RE]FLAGS. */ -#if RT_INLINE_ASM_EXTERNAL +#if RT_INLINE_ASM_EXTERNAL && RT_INLINE_ASM_USES_INTRIN < 15 DECLASM(RTCCUINTREG) ASMGetFlags(void); #else DECLINLINE(RTCCUINTREG) ASMGetFlags(void) @@ -369,6 +373,8 @@ "popl %0\n\t" : "=r" (uFlags)); # endif +# elif RT_INLINE_ASM_USES_INTRIN >= 15 + uFlags = __readeflags(); # else __asm { @@ -390,7 +396,7 @@ * Set the [RE]FLAGS register. * @param uFlags The new [RE]FLAGS value. */ -#if RT_INLINE_ASM_EXTERNAL +#if RT_INLINE_ASM_EXTERNAL && RT_INLINE_ASM_USES_INTRIN < 15 DECLASM(void) ASMSetFlags(RTCCUINTREG uFlags); #else DECLINLINE(void) ASMSetFlags(RTCCUINTREG uFlags) @@ -405,6 +411,8 @@ "popfl\n\t" : : "g" (uFlags)); # endif +# elif RT_INLINE_ASM_USES_INTRIN >= 15 + __writeeflags(uFlags); # else __asm { @@ -524,8 +532,8 @@ /** - * Performs the cpuid instruction returning all registers. - * Some subfunctions of cpuid take ECX as additional parameter (currently known for EAX=4) + * Performs the CPUID instruction with EAX and ECX input returning ALL output + * registers. * * @param uOperator CPUID operation (eax). * @param uIdxECX ecx index @@ -535,7 +543,7 @@ * @param pvEDX Where to store edx. * @remark We're using void pointers to ease the use of special bitfield structures and such. */ -#if RT_INLINE_ASM_EXTERNAL && !RT_INLINE_ASM_USES_INTRIN +#if RT_INLINE_ASM_EXTERNAL || RT_INLINE_ASM_USES_INTRIN DECLASM(void) ASMCpuId_Idx_ECX(uint32_t uOperator, uint32_t uIdxECX, void *pvEAX, void *pvEBX, void *pvECX, void *pvEDX); #else DECLINLINE(void) ASMCpuId_Idx_ECX(uint32_t uOperator, uint32_t uIdxECX, void *pvEAX, void *pvEBX, void *pvECX, void *pvEDX) @@ -568,8 +576,7 @@ # elif RT_INLINE_ASM_USES_INTRIN int aInfo[4]; - /* ??? another intrinsic ??? */ - __cpuid(aInfo, uOperator); + __cpuidex(aInfo, uOperator, uIdxECX); *(uint32_t *)pvEAX = aInfo[0]; *(uint32_t *)pvEBX = aInfo[1]; *(uint32_t *)pvECX = aInfo[2]; @@ -979,7 +986,7 @@ /** - * Tests if it a authentic AMD CPU based on the ASMCpuId(0) output. + * Tests if it an authentic AMD CPU based on the ASMCpuId(0) output. * * @returns true/false. * @param uEBX EBX return from ASMCpuId(0) @@ -1008,6 +1015,71 @@ } +/** + * Tests if it a centaur hauling VIA CPU based on the ASMCpuId(0) output. + * + * @returns true/false. + * @param uEBX EBX return from ASMCpuId(0). + * @param uECX ECX return from ASMCpuId(0). + * @param uEDX EDX return from ASMCpuId(0). + */ +DECLINLINE(bool) ASMIsViaCentaurCpuEx(uint32_t uEBX, uint32_t uECX, uint32_t uEDX) +{ + return uEBX == UINT32_C(0x746e6543) + && uECX == UINT32_C(0x736c7561) + && uEDX == UINT32_C(0x48727561); +} + + +/** + * Tests if this is a centaur hauling VIA CPU. + * + * @returns true/false. + * @remarks ASSUMES that cpuid is supported by the CPU. + */ +DECLINLINE(bool) ASMIsViaCentaurCpu(void) +{ + uint32_t uEAX, uEBX, uECX, uEDX; + ASMCpuId(0, &uEAX, &uEBX, &uECX, &uEDX); + return ASMIsAmdCpuEx(uEBX, uECX, uEDX); +} + + +/** + * Checks whether ASMCpuId_EAX(0x00000000) indicates a valid range. + * + * + * @returns true/false. + * @param uEAX The EAX value of CPUID leaf 0x00000000. + * + * @note This only succeeds if there are at least two leaves in the range. + * @remarks The upper range limit is just some half reasonable value we've + * picked out of thin air. + */ +DECLINLINE(bool) ASMIsValidStdRange(uint32_t uEAX) +{ + return uEAX >= UINT32_C(0x00000001) && uEAX <= UINT32_C(0x000fffff); +} + + +/** + * Checks whether ASMCpuId_EAX(0x80000000) indicates a valid range. + * + * This only succeeds if there are at least two leaves in the range. + * + * @returns true/false. + * @param uEAX The EAX value of CPUID leaf 0x80000000. + * + * @note This only succeeds if there are at least two leaves in the range. + * @remarks The upper range limit is just some half reasonable value we've + * picked out of thin air. + */ +DECLINLINE(bool) ASMIsValidExtRange(uint32_t uEAX) +{ + return uEAX >= UINT32_C(0x80000001) && uEAX <= UINT32_C(0x800fffff); +} + + /** * Extracts the CPU family from ASMCpuId(1) or ASMCpuId(0x80000001) * diff -Nru virtualbox-4.1.12-dfsg/include/iprt/asmdefs.mac virtualbox-4.1.44-dfsg/include/iprt/asmdefs.mac --- virtualbox-4.1.12-dfsg/include/iprt/asmdefs.mac 2012-04-02 13:24:42.000000000 +0000 +++ virtualbox-4.1.44-dfsg/include/iprt/asmdefs.mac 2015-11-11 15:06:02.000000000 +0000 @@ -72,6 +72,50 @@ %define RT_BIT(bit) (1 << bit) ;; +; Makes a 32-bit unsigned (not type safe, but whatever) out of four byte values. +%define RT_MAKE_U32_FROM_U8(b0, b1, b2, b3) ( (b3 << 24) | (b2 << 16) | (b1 << 8) | b0 ) + +;; Define ASM_FORMAT_PE64 if applicable. +%ifdef ASM_FORMAT_PE + %ifdef RT_ARCH_AMD64 + %define ASM_FORMAT_PE64 1 + %endif +%endif + +;; +; SEH64 macros. +%ifdef RT_ASM_WITH_SEH64 + %ifndef ASM_FORMAT_PE64 + %undef RT_ASM_WITH_SEH64 + %endif +%endif + +;; +; Records a xBP push. +%macro SEH64_PUSH_xBP 0 + %ifdef RT_ASM_WITH_SEH64 + [pushreg rbp] + %endif +%endmacro + +;; +; Sets xBP as frame pointer that's pointing to a stack position %1 relative to xSP. +%macro SEH64_SET_FRAME_xBP 1 + %ifdef RT_ASM_WITH_SEH64 + [setframe rbp, %1] + %endif +%endmacro + +;; +; Ends the prologue. +%macro SEH64_END_PROLOGUE 0 + %ifdef RT_ASM_WITH_SEH64 + [endprolog] + %endif +%endmacro + + +;; ; Align code, pad with INT3. %define ALIGNCODE(alignment) align alignment, db 0cch @@ -129,6 +173,22 @@ %define IMP(name) IMPNAME(name) %endif +;; +; Gets the pointer to an imported object, version 2. +%ifdef ASM_FORMAT_PE + %ifdef RT_ARCH_AMD64 + %define IMP2(name) qword [IMPNAME(name) wrt rip] + %else + %define IMP2(name) dword [IMPNAME(name)] + %endif +%else + %ifdef RT_ARCH_AMD64 + %define IMP2(name) IMPNAME(name) wrt rip + %else + %define IMP2(name) IMPNAME(name) +%endif +%endif + ;; @@ -155,21 +215,69 @@ %endmacro ;; +; Global marker which is DECLASM() compatible. +%macro GLOBALNAME_EX 2, +%ifndef ASM_FORMAT_BIN + %ifdef ASM_FORMAT_ELF +global NAME(%1):%2 + %else +global NAME(%1) + %endif +%endif +NAME(%1): +%endmacro + +;; +; Global exported marker which is DECLASM() compatible. +%macro EXPORTEDNAME_EX 2, + %ifdef ASM_FORMAT_PE + export %1=NAME(%1) + %endif + %ifdef __NASM__ + %ifdef ASM_FORMAT_OMF + export NAME(%1) NAME(%1) + %endif +%endif +GLOBALNAME_EX %1, %2 +%endmacro + +;; ; Begins a C callable procedure. %macro BEGINPROC 1 -GLOBALNAME %1 + %ifdef RT_ASM_WITH_SEH64 +global NAME(%1):function +proc_frame NAME(%1) + %else +;GLOBALNAME_EX %1, function hidden - 4.2+ +GLOBALNAME_EX %1, function + %endif %endmacro ;; ; Begins a C callable exported procedure. %macro BEGINPROC_EXPORTED 1 -EXPORTEDNAME %1 + %ifdef RT_ASM_WITH_SEH64 + %ifdef ASM_FORMAT_PE +export %1=NAME(%1) + %endif +global NAME(%1):function +proc_frame NAME(%1) + %else +EXPORTEDNAME_EX %1, function + %endif %endmacro ;; ; Ends a C callable procedure. %macro ENDPROC 1 -GLOBALNAME %1_EndProc + %ifdef RT_ASM_WITH_SEH64 +endproc_frame + %endif +GLOBALNAME_EX %1 %+ _EndProc, function hidden +%ifdef ASM_FORMAT_ELF +size NAME(%1) NAME(%1 %+ _EndProc) - NAME(%1) +size NAME(%1 %+ _EndProc) 0 +%endif db 0xCC, 0xCC, 0xCC, 0xCC %endmacro @@ -723,5 +831,6 @@ %define xSI esi %define xWrtRIP %endif +%define xCB xS ; For backports. %endif diff -Nru virtualbox-4.1.12-dfsg/include/iprt/asm.h virtualbox-4.1.44-dfsg/include/iprt/asm.h --- virtualbox-4.1.12-dfsg/include/iprt/asm.h 2012-04-02 13:24:42.000000000 +0000 +++ virtualbox-4.1.44-dfsg/include/iprt/asm.h 2015-11-11 15:06:02.000000000 +0000 @@ -65,6 +65,10 @@ # pragma intrinsic(_InterlockedExchangeAdd) # pragma intrinsic(_InterlockedCompareExchange) # pragma intrinsic(_InterlockedCompareExchange64) +# pragma intrinsic(_rotl) +# pragma intrinsic(_rotr) +# pragma intrinsic(_rotl64) +# pragma intrinsic(_rotr64) # ifdef RT_ARCH_AMD64 # pragma intrinsic(__stosq) # pragma intrinsic(_byteswap_uint64) @@ -4114,7 +4118,7 @@ int iStart = iBitStart & ~31; int iEnd = iBitEnd & ~31; if (iStart == iEnd) - *pu32 |= ((1 << (iBitEnd - iBitStart)) - 1) << iBitStart; + *pu32 |= ((1 << (iBitEnd - iBitStart)) - 1) << (iBitStart & 31); else { /* bits in first dword. */ @@ -4652,6 +4656,121 @@ } +/** + * Rotate 32-bit unsigned value to the left by @a cShift. + * + * @returns Rotated value. + * @param u32 The value to rotate. + * @param cShift How many bits to rotate by. + */ +DECLINLINE(uint32_t) ASMRotateLeftU32(uint32_t u32, uint32_t cShift) +{ +#if RT_INLINE_ASM_USES_INTRIN + return _rotl(u32, cShift); +#elif RT_INLINE_ASM_GNU_STYLE && (defined(RT_ARCH_AMD64) || defined(RT_ARCH_X86)) + __asm__ __volatile__("roll %b1, %0" : "=g" (u32) : "Ic" (cShift), "0" (u32)); + return u32; +#else + cShift &= 31; + return (u32 << cShift) | (u32 >> (32 - cShift)); +#endif +} + + +/** + * Rotate 32-bit unsigned value to the right by @a cShift. + * + * @returns Rotated value. + * @param u32 The value to rotate. + * @param cShift How many bits to rotate by. + */ +DECLINLINE(uint32_t) ASMRotateRightU32(uint32_t u32, uint32_t cShift) +{ +#if RT_INLINE_ASM_USES_INTRIN + return _rotr(u32, cShift); +#elif RT_INLINE_ASM_GNU_STYLE && (defined(RT_ARCH_AMD64) || defined(RT_ARCH_X86)) + __asm__ __volatile__("rorl %b1, %0" : "=g" (u32) : "Ic" (cShift), "0" (u32)); + return u32; +#else + cShift &= 31; + return (u32 >> cShift) | (u32 << (32 - cShift)); +#endif +} + + +/** + * Rotate 64-bit unsigned value to the left by @a cShift. + * + * @returns Rotated value. + * @param u64 The value to rotate. + * @param cShift How many bits to rotate by. + */ +DECLINLINE(uint64_t) ASMRotateLeftU64(uint64_t u64, uint32_t cShift) +{ +#if RT_INLINE_ASM_USES_INTRIN + return _rotl64(u64, cShift); +#elif RT_INLINE_ASM_GNU_STYLE && defined(RT_ARCH_AMD64) + __asm__ __volatile__("rolq %b1, %0" : "=g" (u64) : "Jc" (cShift), "0" (u64)); + return u64; +#elif RT_INLINE_ASM_GNU_STYLE && defined(RT_ARCH_X86) + uint32_t uSpill; + __asm__ __volatile__("testb $0x20, %%cl\n\t" /* if (cShift >= 0x20) { swap(u64.hi, u64lo); cShift -= 0x20; } */ + "jz 1f\n\t" + "xchgl %%eax, %%edx\n\t" + "1:\n\t" + "andb $0x1f, %%cl\n\t" /* if (cShift & 0x1f) { */ + "jz 2f\n\t" + "movl %%edx, %2\n\t" /* save the hi value in %3. */ + "shldl %%cl,%%eax,%%edx\n\t" /* shift the hi value left, feeding MSBits from the low value. */ + "shldl %%cl,%2,%%eax\n\t" /* shift the lo value left, feeding MSBits from the saved hi value. */ + "2:\n\t" /* } */ + : "=A" (u64), "=c" (cShift), "=r" (uSpill) + : "0" (u64), + "1" (cShift)); + return u64; +#else + cShift &= 63; + return (u64 << cShift) | (u64 >> (64 - cShift)); +#endif +} + + +/** + * Rotate 64-bit unsigned value to the right by @a cShift. + * + * @returns Rotated value. + * @param u64 The value to rotate. + * @param cShift How many bits to rotate by. + */ +DECLINLINE(uint64_t) ASMRotateRightU64(uint64_t u64, uint32_t cShift) +{ +#if RT_INLINE_ASM_USES_INTRIN + return _rotr64(u64, cShift); +#elif RT_INLINE_ASM_GNU_STYLE && defined(RT_ARCH_AMD64) + __asm__ __volatile__("rorq %b1, %0" : "=g" (u64) : "Jc" (cShift), "0" (u64)); + return u64; +#elif RT_INLINE_ASM_GNU_STYLE && defined(RT_ARCH_X86) + uint32_t uSpill; + __asm__ __volatile__("testb $0x20, %%cl\n\t" /* if (cShift >= 0x20) { swap(u64.hi, u64lo); cShift -= 0x20; } */ + "jz 1f\n\t" + "xchgl %%eax, %%edx\n\t" + "1:\n\t" + "andb $0x1f, %%cl\n\t" /* if (cShift & 0x1f) { */ + "jz 2f\n\t" + "movl %%edx, %2\n\t" /* save the hi value in %3. */ + "shrdl %%cl,%%eax,%%edx\n\t" /* shift the hi value right, feeding LSBits from the low value. */ + "shrdl %%cl,%2,%%eax\n\t" /* shift the lo value right, feeding LSBits from the saved hi value. */ + "2:\n\t" /* } */ + : "=A" (u64), "=c" (cShift), "=r" (uSpill) + : "0" (u64), + "1" (cShift)); + return u64; +#else + cShift &= 63; + return (u64 >> cShift) | (u64 << (64 - cShift)); +#endif +} + /** @} */ diff -Nru virtualbox-4.1.12-dfsg/include/iprt/asm-math.h virtualbox-4.1.44-dfsg/include/iprt/asm-math.h --- virtualbox-4.1.12-dfsg/include/iprt/asm-math.h 2012-04-02 13:24:42.000000000 +0000 +++ virtualbox-4.1.44-dfsg/include/iprt/asm-math.h 2015-11-11 15:06:02.000000000 +0000 @@ -28,6 +28,17 @@ #include +#if defined(_MSC_VER) && RT_INLINE_ASM_USES_INTRIN +# include + /* Emit the intrinsics at all optimization levels. */ +# pragma intrinsic(__emul) +# pragma intrinsic(__emulu) +# ifdef RT_ARCH_AMD64 +# pragma intrinsic(_mul128) +# pragma intrinsic(_umul128) +# endif +#endif + /** @defgroup grp_rt_asm_math Interger Math Optimizations * @ingroup grp_rt_asm @@ -38,7 +49,8 @@ * * @returns u32F1 * u32F2. */ -#if RT_INLINE_ASM_EXTERNAL && defined(RT_ARCH_X86) + +#if RT_INLINE_ASM_EXTERNAL && !RT_INLINE_ASM_USES_INTRIN && defined(RT_ARCH_X86) DECLASM(uint64_t) ASMMult2xU32RetU64(uint32_t u32F1, uint32_t u32F2); #else DECLINLINE(uint64_t) ASMMult2xU32RetU64(uint32_t u32F1, uint32_t u32F2) @@ -49,6 +61,8 @@ __asm__ __volatile__("mull %%edx" : "=A" (u64) : "a" (u32F2), "d" (u32F1)); +# elif RT_INLINE_ASM_USES_INTRIN + u64 = __emulu(u32F1, u32F2); # else __asm { @@ -72,7 +86,7 @@ * * @returns u32F1 * u32F2. */ -#if RT_INLINE_ASM_EXTERNAL && defined(RT_ARCH_X86) +#if RT_INLINE_ASM_EXTERNAL && !RT_INLINE_ASM_USES_INTRIN && defined(RT_ARCH_X86) DECLASM(int64_t) ASMMult2xS32RetS64(int32_t i32F1, int32_t i32F2); #else DECLINLINE(int64_t) ASMMult2xS32RetS64(int32_t i32F1, int32_t i32F2) @@ -83,6 +97,8 @@ __asm__ __volatile__("imull %%edx" : "=A" (i64) : "a" (i32F2), "d" (i32F1)); +# elif RT_INLINE_ASM_USES_INTRIN + i64 = __emul(i32F1, i32F2); # else __asm { @@ -101,6 +117,67 @@ #endif +#if ARCH_BITS == 64 +DECLINLINE(uint64_t) ASMMult2xU64Ret2xU64(uint64_t u64F1, uint64_t u64F2, uint64_t *pu64ProdHi) +{ +# if defined(RT_ARCH_AMD64) && (RT_INLINE_ASM_GNU_STYLE || RT_INLINE_ASM_USES_INTRIN) +# if RT_INLINE_ASM_GNU_STYLE + uint64_t u64Low, u64High; + __asm__ __volatile__("mulq %%rdx" + : "=a" (u64Low), "=d" (u64High) + : "0" (u64F1), "1" (u64F2)); + *pu64ProdHi = u64High; + return u64Low; +# elif RT_INLINE_ASM_USES_INTRIN + return _umul128(u64F1, u64F2, pu64ProdHi); +# else +# error "hmm" +# endif +# else /* generic: */ + /* + * F1 * F2 = Prod + * -- -- + * ab * cd = b*d + a*d*10 + b*c*10 + a*c*100 + * + * Where a, b, c and d are 'digits', and 10 is max digit + 1. + * + * Our digits are 32-bit wide, so instead of 10 we multiply by 4G. + * Prod = F1.s.Lo*F2.s.Lo + F1.s.Hi*F2.s.Lo*4G + * + F1.s.Lo*F2.s.Hi*4G + F1.s.Hi*F2.s.Hi*4G*4G + */ + RTUINT128U Prod; + RTUINT64U Tmp1; + uint64_t u64Tmp; + RTUINT64U F1, F2; + F1.u = u64F1; + F2.u = u64F2; + + Prod.s.Lo = ASMMult2xU32RetU64(F1.s.Lo, F2.s.Lo); + + Tmp1.u = ASMMult2xU32RetU64(F1.s.Hi, F2.s.Lo); + u64Tmp = (uint64_t)Prod.DWords.dw1 + Tmp1.s.Lo; + Prod.DWords.dw1 = (uint32_t)u64Tmp; + Prod.s.Hi = Tmp1.s.Hi; + Prod.s.Hi += u64Tmp >> 32; /* carry */ + + Tmp1.u = ASMMult2xU32RetU64(F1.s.Lo, F2.s.Hi); + u64Tmp = (uint64_t)Prod.DWords.dw1 + Tmp1.s.Lo; + Prod.DWords.dw1 = (uint32_t)u64Tmp; + u64Tmp >>= 32; /* carry */ + u64Tmp += Prod.DWords.dw2; + u64Tmp += Tmp1.s.Hi; + Prod.DWords.dw2 = (uint32_t)u64Tmp; + Prod.DWords.dw3 += u64Tmp >> 32; /* carry */ + + Prod.s.Hi += ASMMult2xU32RetU64(F1.s.Hi, F2.s.Hi); + *pu64ProdHi = Prod.s.Hi; + return Prod.s.Lo; +# endif +} +#endif + + + /** * Divides a 64-bit unsigned by a 32-bit unsigned returning an unsigned 32-bit result. * diff -Nru virtualbox-4.1.12-dfsg/include/iprt/asn1-generator-asn1-decoder.h virtualbox-4.1.44-dfsg/include/iprt/asn1-generator-asn1-decoder.h --- virtualbox-4.1.12-dfsg/include/iprt/asn1-generator-asn1-decoder.h 1970-01-01 00:00:00.000000000 +0000 +++ virtualbox-4.1.44-dfsg/include/iprt/asn1-generator-asn1-decoder.h 2015-11-11 15:06:02.000000000 +0000 @@ -0,0 +1,30 @@ +/** @file + * IPRT - ASN.1 Code Generator, the ASN1 Decoder Passes. + */ + +/* + * Copyright (C) 2006-2014 Oracle Corporation + * + * This file is part of VirtualBox Open Source Edition (OSE), as + * available from http://www.virtualbox.org. This file is free software; + * you can redistribute it and/or modify it under the terms of the GNU + * General Public License (GPL) as published by the Free Software + * Foundation, in version 2 as it comes in the "COPYING" file of the + * VirtualBox OSE distribution. VirtualBox OSE is distributed in the + * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind. + * + * The contents of this file may alternatively be used under the terms + * of the Common Development and Distribution License Version 1.0 + * (CDDL) only, as it comes in the "COPYING.CDDL" file of the + * VirtualBox OSE distribution, in which case the provisions of the + * CDDL are applicable instead of those of the GPL. + * + * You may elect to license modified versions of this file under the + * terms and conditions of either the GPL or the CDDL or both. + */ + +#include + +#define RTASN1TMPL_PASS RTASN1TMPL_PASS_DECODE +#include + diff -Nru virtualbox-4.1.12-dfsg/include/iprt/asn1-generator-core.h virtualbox-4.1.44-dfsg/include/iprt/asn1-generator-core.h --- virtualbox-4.1.12-dfsg/include/iprt/asn1-generator-core.h 1970-01-01 00:00:00.000000000 +0000 +++ virtualbox-4.1.44-dfsg/include/iprt/asn1-generator-core.h 2015-11-11 15:06:02.000000000 +0000 @@ -0,0 +1,38 @@ +/** @file + * IPRT - ASN.1 Code Generator, the ASN.1 Core Code (VTable, Compare, ..). + */ + +/* + * Copyright (C) 2006-2014 Oracle Corporation + * + * This file is part of VirtualBox Open Source Edition (OSE), as + * available from http://www.virtualbox.org. This file is free software; + * you can redistribute it and/or modify it under the terms of the GNU + * General Public License (GPL) as published by the Free Software + * Foundation, in version 2 as it comes in the "COPYING" file of the + * VirtualBox OSE distribution. VirtualBox OSE is distributed in the + * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind. + * + * The contents of this file may alternatively be used under the terms + * of the Common Development and Distribution License Version 1.0 + * (CDDL) only, as it comes in the "COPYING.CDDL" file of the + * VirtualBox OSE distribution, in which case the provisions of the + * CDDL are applicable instead of those of the GPL. + * + * You may elect to license modified versions of this file under the + * terms and conditions of either the GPL or the CDDL or both. + */ + +#include +#include +#include + +#define RTASN1TMPL_PASS RTASN1TMPL_PASS_VTABLE +#include +#define RTASN1TMPL_PASS RTASN1TMPL_PASS_DELETE +#include +#define RTASN1TMPL_PASS RTASN1TMPL_PASS_ENUM +#include +#define RTASN1TMPL_PASS RTASN1TMPL_PASS_COMPARE +#include + diff -Nru virtualbox-4.1.12-dfsg/include/iprt/asn1-generator-init.h virtualbox-4.1.44-dfsg/include/iprt/asn1-generator-init.h --- virtualbox-4.1.12-dfsg/include/iprt/asn1-generator-init.h 1970-01-01 00:00:00.000000000 +0000 +++ virtualbox-4.1.44-dfsg/include/iprt/asn1-generator-init.h 2015-11-11 15:06:02.000000000 +0000 @@ -0,0 +1,36 @@ +/** @file + * IPRT - ASN.1 Code Generator, the ASN1 Init, Clone and Modifier Passes. + */ + +/* + * Copyright (C) 2006-2014 Oracle Corporation + * + * This file is part of VirtualBox Open Source Edition (OSE), as + * available from http://www.virtualbox.org. This file is free software; + * you can redistribute it and/or modify it under the terms of the GNU + * General Public License (GPL) as published by the Free Software + * Foundation, in version 2 as it comes in the "COPYING" file of the + * VirtualBox OSE distribution. VirtualBox OSE is distributed in the + * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind. + * + * The contents of this file may alternatively be used under the terms + * of the Common Development and Distribution License Version 1.0 + * (CDDL) only, as it comes in the "COPYING.CDDL" file of the + * VirtualBox OSE distribution, in which case the provisions of the + * CDDL are applicable instead of those of the GPL. + * + * You may elect to license modified versions of this file under the + * terms and conditions of either the GPL or the CDDL or both. + */ + +#include + +#define RTASN1TMPL_PASS RTASN1TMPL_PASS_INIT +#include +#define RTASN1TMPL_PASS RTASN1TMPL_PASS_CLONE +#include +#define RTASN1TMPL_PASS RTASN1TMPL_PASS_SETTERS_1 +#include +#define RTASN1TMPL_PASS RTASN1TMPL_PASS_SETTERS_2 +#include + diff -Nru virtualbox-4.1.12-dfsg/include/iprt/asn1-generator-internal-header.h virtualbox-4.1.44-dfsg/include/iprt/asn1-generator-internal-header.h --- virtualbox-4.1.12-dfsg/include/iprt/asn1-generator-internal-header.h 1970-01-01 00:00:00.000000000 +0000 +++ virtualbox-4.1.44-dfsg/include/iprt/asn1-generator-internal-header.h 2015-11-11 15:06:02.000000000 +0000 @@ -0,0 +1,29 @@ +/** @file + * IPRT - ASN.1 Code Generator, the Internal Header File. + */ + +/* + * Copyright (C) 2006-2014 Oracle Corporation + * + * This file is part of VirtualBox Open Source Edition (OSE), as + * available from http://www.virtualbox.org. This file is free software; + * you can redistribute it and/or modify it under the terms of the GNU + * General Public License (GPL) as published by the Free Software + * Foundation, in version 2 as it comes in the "COPYING" file of the + * VirtualBox OSE distribution. VirtualBox OSE is distributed in the + * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind. + * + * The contents of this file may alternatively be used under the terms + * of the Common Development and Distribution License Version 1.0 + * (CDDL) only, as it comes in the "COPYING.CDDL" file of the + * VirtualBox OSE distribution, in which case the provisions of the + * CDDL are applicable instead of those of the GPL. + * + * You may elect to license modified versions of this file under the + * terms and conditions of either the GPL or the CDDL or both. + */ + + +#define RTASN1TMPL_PASS RTASN1TMPL_PASS_INTERNAL_HEADER +#include + diff -Nru virtualbox-4.1.12-dfsg/include/iprt/asn1-generator-pass.h virtualbox-4.1.44-dfsg/include/iprt/asn1-generator-pass.h --- virtualbox-4.1.12-dfsg/include/iprt/asn1-generator-pass.h 1970-01-01 00:00:00.000000000 +0000 +++ virtualbox-4.1.44-dfsg/include/iprt/asn1-generator-pass.h 2015-11-11 15:06:02.000000000 +0000 @@ -0,0 +1,1412 @@ +/** @file + * IPRT - ASN.1 Code Generator, One Pass. + */ + +/* + * Copyright (C) 2006-2014 Oracle Corporation + * + * This file is part of VirtualBox Open Source Edition (OSE), as + * available from http://www.virtualbox.org. This file is free software; + * you can redistribute it and/or modify it under the terms of the GNU + * General Public License (GPL) as published by the Free Software + * Foundation, in version 2 as it comes in the "COPYING" file of the + * VirtualBox OSE distribution. VirtualBox OSE is distributed in the + * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind. + * + * The contents of this file may alternatively be used under the terms + * of the Common Development and Distribution License Version 1.0 + * (CDDL) only, as it comes in the "COPYING.CDDL" file of the + * VirtualBox OSE distribution, in which case the provisions of the + * CDDL are applicable instead of those of the GPL. + * + * You may elect to license modified versions of this file under the + * terms and conditions of either the GPL or the CDDL or both. + */ + + +#ifndef ___iprt_asn1_generator_pass_h +#define ___iprt_asn1_generator_pass_h + +#include + + +/** @def RTASN1TMPL_MEMBER_OPT_ANY + * Used for optional entries without any specific type at the end of a + * structure. + * + * For example PolicyQualifierInfo's qualifier member which is defined as: + * ANY DEFINED BY policyQualifierId + * + * Defaults to RTASN1TMPL_MEMBER_EX. + */ + +/** @def RTASN1TMPL_MEMBER_OPT_ITAG_EX + * Optional member with implict tag, extended version. + * + * This is what all the other RTASN1TMPL_MEMBER_OPT_ITAG* macros defere to. + */ +/** @def RTASN1TMPL_MEMBER_OPT_ITAG_CP + * Optional member of a typical primitive type with an implicit context tag. + * + * Examples of this can be found in AuthorityKeyIdentifier where the first and + * last member are primitive types (normally anyways).: + * keyIdentifier [1] OCTET STRING OPTIONAL, + * authorityCertSerialNumber [3] INTEGER OPTIONAL + */ +/** @def RTASN1TMPL_MEMBER_OPT_ITAG_UC + * Optional member of a constructed type from the universal tag class. + */ +/** @def RTASN1TMPL_MEMBER_OPT_ITAG_UP + * Optional member of a primitive type from the universal tag class. + */ + + +/** @name Expansion Passes (RTASN1TMPL_PASS values) + * @{ */ +#define RTASN1TMPL_PASS_INTERNAL_HEADER 1 + +#define RTASN1TMPL_PASS_VTABLE 2 +#define RTASN1TMPL_PASS_ENUM 3 +#define RTASN1TMPL_PASS_DELETE 4 +#define RTASN1TMPL_PASS_COMPARE 5 + +#define RTASN1TMPL_PASS_CHECK_SANITY 8 + +#define RTASN1TMPL_PASS_INIT 16 +#define RTASN1TMPL_PASS_CLONE 17 +#define RTASN1TMPL_PASS_SETTERS_1 18 +#define RTASN1TMPL_PASS_SETTERS_2 19 + +#define RTASN1TMPL_PASS_DECODE 24 +/** @} */ + +/** @name ITAG clues + * @{ */ +#define RTASN1TMPL_ITAG_F_CC 1 /**< context, constructed. */ +#define RTASN1TMPL_ITAG_F_CP 2 /**< context, probably primary. (w/ numeric value) */ +#define RTASN1TMPL_ITAG_F_UP 3 /**< universal, probably primary. (w/ ASN1_TAG_XXX value) */ +#define RTASN1TMPL_ITAG_F_UC 4 /**< universal, constructed. (w/ ASN1_TAG_XXX value) */ +/** @} */ +/** Expands the ITAG clues into tag flag and tag class. */ +#define RTASN1TMPL_ITAG_F_EXPAND(a_fClue) \ + ( a_fClue == RTASN1TMPL_ITAG_F_CC ? (ASN1_TAGCLASS_CONTEXT | ASN1_TAGFLAG_CONSTRUCTED ) \ + : a_fClue == RTASN1TMPL_ITAG_F_CP ? (ASN1_TAGCLASS_CONTEXT | ASN1_TAGFLAG_PRIMITIVE) \ + : a_fClue == RTASN1TMPL_ITAG_F_UP ? (ASN1_TAGCLASS_UNIVERSAL | ASN1_TAGFLAG_PRIMITIVE) \ + : a_fClue == RTASN1TMPL_ITAG_F_UC ? (ASN1_TAGCLASS_UNIVERSAL | ASN1_TAGFLAG_CONSTRUCTED) \ + : 0 ) + +#define RTASN1TMPL_SEMICOLON_DUMMY() typedef unsigned RTASN1TMPLSEMICOLONDUMMY + +#endif /* !___iprt_asn1_generator_pass_h */ + + +#if RTASN1TMPL_PASS == RTASN1TMPL_PASS_INTERNAL_HEADER +/* + * + * Internal header file. + * + */ +# define RTASN1TMPL_BEGIN_COMMON() extern DECLHIDDEN(RTASN1COREVTABLE const) RT_CONCAT3(g_,RTASN1TMPL_INT_NAME,_Vtable) + +# define RTASN1TMPL_BEGIN_SEQCORE() RTASN1TMPL_BEGIN_COMMON() +# define RTASN1TMPL_BEGIN_SETCORE() RTASN1TMPL_BEGIN_COMMON() +# define RTASN1TMPL_MEMBER_EX(a_Name, a_Type, a_Api, a_Constraints) RTASN1TMPL_SEMICOLON_DUMMY() +# define RTASN1TMPL_MEMBER_DYN_BEGIN(a_enmType, a_enmMembNm, a_Allocation) RTASN1TMPL_SEMICOLON_DUMMY() +# define RTASN1TMPL_MEMBER_DYN_END(a_enmType, a_enmMembNm, a_Allocation) RTASN1TMPL_SEMICOLON_DUMMY() +# define RTASN1TMPL_END_SEQCORE() RTASN1TMPL_SEMICOLON_DUMMY() +# define RTASN1TMPL_END_SETCORE() RTASN1TMPL_SEMICOLON_DUMMY() + + +# define RTASN1TMPL_BEGIN_PCHOICE() RTASN1TMPL_BEGIN_COMMON() +# define RTASN1TMPL_PCHOICE_ITAG_EX(a_uTag, a_enmChoice, a_PtrName, a_Name, a_Type, a_Api, a_fClue, a_Constraints) \ + RTASN1TMPL_SEMICOLON_DUMMY() +# define RTASN1TMPL_PCHOICE_XTAG_EX(a_uTag, a_enmChoice, a_PtrTnNm, a_CtxTagN, a_Name, a_Type, a_Api, a_Constraints) \ + RTASN1TMPL_SEMICOLON_DUMMY() +# define RTASN1TMPL_END_PCHOICE() RTASN1TMPL_SEMICOLON_DUMMY() + + +# define RTASN1TMPL_SEQ_OF(a_ItemType, a_ItemApi) RTASN1TMPL_BEGIN_COMMON() +# define RTASN1TMPL_SET_OF(a_ItemType, a_ItemApi) RTASN1TMPL_BEGIN_COMMON() + + + +#elif RTASN1TMPL_PASS == RTASN1TMPL_PASS_VTABLE +/* + * + * Internal header file. + * + */ +# ifndef RTASN1TMPL_VTABLE_FN_ENCODE_PREP +# define RTASN1TMPL_VTABLE_FN_ENCODE_PREP NULL +# endif +# ifndef RTASN1TMPL_VTABLE_FN_ENCODE_WRITE +# define RTASN1TMPL_VTABLE_FN_ENCODE_WRITE NULL +# endif +# define RTASN1TMPL_BEGIN_COMMON(a_uDefaultTag, a_fDefaultClass) \ + DECL_HIDDEN_CONST(RTASN1COREVTABLE const) RT_CONCAT3(g_,RTASN1TMPL_INT_NAME,_Vtable) = \ + { \ + /* When the Asn1Core is at the start of the structure, we can reuse the _Delete and _Enum APIs here. */ \ + /* .pszName = */ RT_XSTR(RTASN1TMPL_EXT_NAME), \ + /* .cb = */ sizeof(RTASN1TMPL_TYPE), \ + /* .uDefaultTag = */ a_uDefaultTag, \ + /* .fDefaultClass = */ a_fDefaultClass, \ + /* .uReserved = */ 0, \ + (PFNRTASN1COREVTDTOR)RT_CONCAT(RTASN1TMPL_EXT_NAME,_Delete), \ + (PFNRTASN1COREVTENUM)RT_CONCAT(RTASN1TMPL_EXT_NAME,_Enum), \ + (PFNRTASN1COREVTCLONE)RT_CONCAT(RTASN1TMPL_EXT_NAME,_Clone), \ + (PFNRTASN1COREVTCOMPARE)RT_CONCAT(RTASN1TMPL_EXT_NAME,_Compare), \ + (PFNRTASN1COREVTCHECKSANITY)RT_CONCAT(RTASN1TMPL_EXT_NAME,_CheckSanity), \ + RTASN1TMPL_VTABLE_FN_ENCODE_PREP, \ + RTASN1TMPL_VTABLE_FN_ENCODE_WRITE \ + } + +# define RTASN1TMPL_BEGIN_SEQCORE() \ + AssertCompileMemberOffset(RTASN1TMPL_TYPE, SeqCore, 0); \ + RTASN1TMPL_BEGIN_COMMON(ASN1_TAG_SEQUENCE, ASN1_TAGCLASS_UNIVERSAL | ASN1_TAGFLAG_CONSTRUCTED) +# define RTASN1TMPL_BEGIN_SETCORE() \ + AssertCompileMemberOffset(RTASN1TMPL_TYPE, SetCore, 0); \ + RTASN1TMPL_BEGIN_COMMON(ASN1_TAG_SET, ASN1_TAGCLASS_UNIVERSAL | ASN1_TAGFLAG_CONSTRUCTED) +# define RTASN1TMPL_MEMBER_EX(a_Name, a_Type, a_Api, a_Constraints) RTASN1TMPL_SEMICOLON_DUMMY() +# define RTASN1TMPL_MEMBER_DYN_BEGIN(a_enmType, a_enmMembNm, a_Allocation) RTASN1TMPL_SEMICOLON_DUMMY() +# define RTASN1TMPL_MEMBER_DYN_END(a_enmType, a_enmMembNm, a_Allocation) RTASN1TMPL_SEMICOLON_DUMMY() +# define RTASN1TMPL_END_SEQCORE() RTASN1TMPL_SEMICOLON_DUMMY() +# define RTASN1TMPL_END_SETCORE() RTASN1TMPL_SEMICOLON_DUMMY() + +# define RTASN1TMPL_BEGIN_PCHOICE() \ + AssertCompileMemberOffset(RTASN1TMPL_TYPE, Dummy, 0); \ + RTASN1TMPL_BEGIN_COMMON(UINT8_MAX, UINT8_MAX) +# define RTASN1TMPL_PCHOICE_ITAG_EX(a_uTag, a_enmChoice, a_PtrName, a_Name, a_Type, a_Api, a_fClue, a_Constraints) \ + RTASN1TMPL_SEMICOLON_DUMMY() +# define RTASN1TMPL_PCHOICE_XTAG_EX(a_uTag, a_enmChoice, a_PtrTnNm, a_CtxTagN, a_Name, a_Type, a_Api, a_Constraints) \ + RTASN1TMPL_SEMICOLON_DUMMY() +# define RTASN1TMPL_END_PCHOICE() RTASN1TMPL_SEMICOLON_DUMMY() + +# define RTASN1TMPL_SEQ_OF(a_ItemType, a_ItemApi) \ + AssertCompileMemberOffset(RTASN1TMPL_TYPE, SeqCore, 0); \ + RTASN1TMPL_BEGIN_COMMON(ASN1_TAG_SEQUENCE, ASN1_TAGCLASS_UNIVERSAL | ASN1_TAGFLAG_CONSTRUCTED) +# define RTASN1TMPL_SET_OF(a_ItemType, a_ItemApi) \ + AssertCompileMemberOffset(RTASN1TMPL_TYPE, SetCore, 0); \ + RTASN1TMPL_BEGIN_COMMON(ASN1_TAG_SET, ASN1_TAGCLASS_UNIVERSAL | ASN1_TAGFLAG_CONSTRUCTED) + + + +#elif RTASN1TMPL_PASS == RTASN1TMPL_PASS_INIT +/* + * + * Initialization to standard / default values. + * + */ +# define RTASN1TMPL_BEGIN_COMMON() \ +RTASN1TMPL_DECL(int) RT_CONCAT(RTASN1TMPL_EXT_NAME,_Init)(RT_CONCAT(P,RTASN1TMPL_TYPE) pThis, PCRTASN1ALLOCATORVTABLE pAllocator) \ +{ \ + RT_ZERO(*pThis) +# define RTASN1TMPL_END_COMMON() \ + return rc; \ +} RTASN1TMPL_SEMICOLON_DUMMY() + +# define RTASN1TMPL_BEGIN_SEQCORE() \ + RTASN1TMPL_BEGIN_COMMON(); \ + int rc = RTAsn1SequenceCore_Init(&pThis->SeqCore, &RT_CONCAT3(g_,RTASN1TMPL_INT_NAME,_Vtable)) +# define RTASN1TMPL_BEGIN_SETCORE() \ + RTASN1TMPL_BEGIN_COMMON(); \ + int rc = RTAsn1SetCore_Init(&pThis->SetCore, &RT_CONCAT3(g_,RTASN1TMPL_INT_NAME,_Vtable)) +# define RTASN1TMPL_MEMBER_EX(a_Name, a_Type, a_Api, a_Constraints) \ + if (RT_SUCCESS(rc)) \ + rc = RT_CONCAT(a_Api,_Init)(&pThis->a_Name, pAllocator) + +# define RTASN1TMPL_MEMBER_DYN_BEGIN(a_enmType, a_enmMembNm, a_Allocation) \ + RTAsn1MemInitAllocation(&pThis->Allocation, pAllocator); \ + pThis->a_enmMembNm = RT_CONCAT(a_enmType,_NOT_PRESENT) +# define RTASN1TMPL_MEMBER_DYN_COMMON(a_UnionNm, a_PtrName, a_Type, a_Api, a_Allocation, a_enmMembNm, a_enmValue, a_IfStmt) \ + do { } while (0) +# define RTASN1TMPL_MEMBER_DYN_END(a_enmType, a_enmMembNm, a_Allocation) do { } while (0) + +# define RTASN1TMPL_MEMBER_DEF_ITAG_EX(a_Name, a_Type, a_Api, a_uTag, a_fClue, a_DefVal, a_Constraints) \ + if (RT_SUCCESS(rc)) \ + { \ + rc = RT_CONCAT(a_Api,_InitDefault)(&pThis->a_Name, a_DefVal, pAllocator); \ + if (RT_SUCCESS(rc)) \ + rc = RTAsn1Core_SetTagAndFlags(RT_CONCAT(a_Api,_GetAsn1Core)(&pThis->a_Name), \ + a_uTag, RTASN1TMPL_ITAG_F_EXPAND(a_fClue)); \ + } +# define RTASN1TMPL_MEMBER_OPT_EX(a_Name, a_Type, a_Api, a_Constraints) do { } while (0) /* All optional members are left as not-present. */ +# define RTASN1TMPL_END_SEQCORE() \ + if (RT_FAILURE(rc)) \ + RT_CONCAT(RTASN1TMPL_EXT_NAME,_Delete)(pThis); \ + RTASN1TMPL_END_COMMON() +# define RTASN1TMPL_END_SETCORE() RTASN1TMPL_END_SEQCORE() + +/* No choice, just an empty, non-present structure. */ +# define RTASN1TMPL_BEGIN_PCHOICE() RTASN1TMPL_BEGIN_COMMON(); int rc = VINF_SUCCESS +# define RTASN1TMPL_PCHOICE_ITAG_EX(a_uTag, a_enmChoice, a_PtrName, a_Name, a_Type, a_Api, a_fClue, a_Constraints) \ + do { } while (0) +# define RTASN1TMPL_PCHOICE_XTAG_EX(a_uTag, a_enmChoice, a_PtrTnNm, a_CtxTagN, a_Name, a_Type, a_Api, a_Constraints) \ + do { } while (0) +# define RTASN1TMPL_END_PCHOICE() RTASN1TMPL_END_COMMON() + + +# define RTASN1TMPL_SET_SEQ_OF_COMMON(a_ItemType, a_ItemApi, a_OfApi, a_OfMember) \ + RTASN1TMPL_BEGIN_COMMON(); \ + RTAsn1MemInitAllocation(&pThis->Allocation, pAllocator); \ + int rc = RT_CONCAT(a_OfApi,_Init)(&pThis->a_OfMember, &RT_CONCAT3(g_,RTASN1TMPL_INT_NAME,_Vtable)); \ + if (RT_FAILURE(rc)) \ + RT_ZERO(*pThis); \ + RTASN1TMPL_END_COMMON() +# define RTASN1TMPL_SEQ_OF(a_ItemType, a_ItemApi) RTASN1TMPL_SET_SEQ_OF_COMMON(a_ItemType, a_ItemApi, RTAsn1SeqOfCore, SeqCore) +# define RTASN1TMPL_SET_OF(a_ItemType, a_ItemApi) RTASN1TMPL_SET_SEQ_OF_COMMON(a_ItemType, a_ItemApi, RTAsn1SetOfCore, SetCore) + + + +#elif RTASN1TMPL_PASS == RTASN1TMPL_PASS_DECODE +/* + * + * Decode ASN.1. + * + */ +# define RTASN1TMPL_BEGIN_COMMON() \ +RTASN1TMPL_DECL(int) RT_CONCAT(RTASN1TMPL_EXT_NAME,_DecodeAsn1)(PRTASN1CURSOR pCursor, uint32_t fFlags, \ + RT_CONCAT(P,RTASN1TMPL_TYPE) pThis, const char *pszErrorTag) \ +{ \ + RT_ZERO(*pThis); + +# define RTASN1TMPL_END_COMMON() \ + return rc; \ +} RTASN1TMPL_SEMICOLON_DUMMY() + + +# define RTASN1TMPL_BEGIN_SEQCORE() \ + RTASN1TMPL_BEGIN_COMMON(); \ + RTASN1CURSOR ThisCursor; \ + int rc = RTAsn1CursorGetSequenceCursor(pCursor, fFlags, &pThis->SeqCore, &ThisCursor, pszErrorTag); \ + if (RT_FAILURE(rc)) \ + return rc; \ + pCursor = &ThisCursor; \ + pThis->SeqCore.Asn1Core.pOps = &RT_CONCAT3(g_,RTASN1TMPL_INT_NAME,_Vtable) +# define RTASN1TMPL_BEGIN_SETCORE() \ + RTASN1TMPL_BEGIN_COMMON(); \ + RTASN1CURSOR ThisCursor; \ + int rc = RTAsn1CursorGetSetCursor(pCursor, fFlags, &pThis->SetCore, &ThisCursor, pszErrorTag); \ + if (RT_FAILURE(rc)) \ + return rc; \ + pCursor = &ThisCursor; \ + pThis->SetCore.Asn1Core.pOps = &RT_CONCAT3(g_,RTASN1TMPL_INT_NAME,_Vtable) + +# define RTASN1TMPL_MEMBER_EX(a_Name, a_Type, a_Api, a_Constraints) \ + if (RT_SUCCESS(rc)) \ + rc = RT_CONCAT(a_Api,_DecodeAsn1)(pCursor, 0, &pThis->a_Name, #a_Name) + +# define RTASN1TMPL_MEMBER_DYN_BEGIN(a_enmType, a_enmMembNm, a_Allocation) \ + if (RT_SUCCESS(rc)) \ + { \ + int rc2; /* not initialized! */ \ + RTAsn1CursorInitAllocation(pCursor, &pThis->a_Allocation); \ + pThis->a_enmMembNm = RT_CONCAT(a_enmType, _INVALID); \ + if (false) do { /*nothing*/ } while (0) +# define RTASN1TMPL_MEMBER_DYN_COMMON(a_UnionNm, a_PtrName, a_Type, a_Api, a_Allocation, a_enmMembNm, a_enmValue, a_IfStmt) \ + else a_IfStmt \ + do { \ + rc2 = RTAsn1MemAllocZ(&pThis->a_Allocation, (void **)&pThis->a_UnionNm.a_PtrName, \ + sizeof(*pThis->a_UnionNm.a_PtrName)); \ + if (RT_SUCCESS(rc2)) \ + { \ + pThis->a_enmMembNm = a_enmValue; \ + rc2 = RT_CONCAT(a_Api,_DecodeAsn1)(pCursor, 0, pThis->a_UnionNm.a_PtrName, #a_UnionNm "." #a_PtrName); \ + } \ + } while (0) +# define RTASN1TMPL_MEMBER_DYN_END(a_enmType, a_enmMembNm, a_Allocation) \ + rc = rc2; /* Should trigger warning if a _DEFAULT is missing. */ \ + } + +# define RTASN1TMPL_MEMBER_OPT_EX(a_Name, a_Type, a_Api, a_Constraints) \ + Error_Missing_Specific_Macro_In_Decode_Pass() + +# define RTASN1TMPL_MEMBER_DEF_ITAG_EX(a_Name, a_Type, a_Api, a_uTag, a_fClue, a_DefVal, a_Constraints) \ + if (RT_SUCCESS(rc)) \ + { \ + if (RTAsn1CursorIsNextEx(pCursor, a_uTag, RTASN1TMPL_ITAG_F_EXPAND(a_fClue))) \ + rc = RT_CONCAT(a_Api,_DecodeAsn1)(pCursor, 0, &pThis->a_Name, #a_Name); \ + else \ + rc = RT_CONCAT(a_Api,_InitDefault)(&pThis->a_Name, a_DefVal, pCursor->pPrimary->pAllocator); \ + if (RT_SUCCESS(rc)) \ + rc = RTAsn1Core_SetTagAndFlags(RT_CONCAT(a_Api,_GetAsn1Core)(&pThis->a_Name), \ + a_uTag, RTASN1TMPL_ITAG_F_EXPAND(a_fClue)); \ + } do {} while (0) + +# define RTASN1TMPL_MEMBER_OPT_UTF8_STRING_EX(a_Name, a_Constraints) \ + if (RT_SUCCESS(rc) && RTAsn1CursorIsNextEx(pCursor, ASN1_TAG_UTF8_STRING, ASN1_TAGCLASS_CONTEXT | ASN1_TAGFLAG_PRIMITIVE)) \ + rc = RTAsn1CursorGetUtf8String(pCursor, 0, &pThis->a_Name, #a_Name) + +# define RTASN1TMPL_MEMBER_OPT_ITAG_EX(a_Name, a_Type, a_Api, a_uTag, a_fClue, a_Constraints) \ + if (RT_SUCCESS(rc) && RTAsn1CursorIsNextEx(pCursor, a_uTag, RTASN1TMPL_ITAG_F_EXPAND(a_fClue)) /** @todo || CER */) \ + rc = RT_CONCAT(a_Api,_DecodeAsn1)(pCursor, RTASN1CURSOR_GET_F_IMPLICIT, &pThis->a_Name, #a_Name) + +# define RTASN1TMPL_MEMBER_OPT_ITAG_BITSTRING(a_Name, a_cMaxBits, a_uTag) \ + if (RT_SUCCESS(rc) && RTAsn1CursorIsNextEx(pCursor, a_uTag, ASN1_TAGCLASS_CONTEXT | ASN1_TAGFLAG_CONSTRUCTED)) \ + rc = RTAsn1CursorGetBitStringEx(pCursor, RTASN1CURSOR_GET_F_IMPLICIT, a_cMaxBits, &pThis->a_Name, #a_Name) + +# define RTASN1TMPL_MEMBER_OPT_XTAG_EX(a_TnNm, a_CtxTagN, a_Name, a_Type, a_Api, a_uTag, a_Constraints) \ + if (RT_SUCCESS(rc) && RTAsn1CursorIsNextEx(pCursor, a_uTag, ASN1_TAGCLASS_CONTEXT | ASN1_TAGFLAG_CONSTRUCTED)) \ + { \ + RTASN1CURSOR CtxCursor; \ + rc = RT_CONCAT3(RTAsn1CursorGetContextTag,a_uTag,Cursor)(pCursor, 0, &pThis->a_TnNm.a_CtxTagN, &CtxCursor, #a_TnNm); \ + if (RT_SUCCESS(rc)) \ + { \ + rc = RT_CONCAT(a_Api,_DecodeAsn1)(&CtxCursor, 0, &pThis->a_TnNm.a_Name, #a_Name); \ + if (RT_SUCCESS(rc)) \ + rc = RTAsn1CursorCheckEnd(&CtxCursor); \ + } \ + } do { } while (0) + +# define RTASN1TMPL_MEMBER_OPT_ANY(a_Name, a_Type, a_Api) \ + if (RT_SUCCESS(rc) && pCursor->cbLeft > 0) \ + RTASN1TMPL_MEMBER_EX(a_Name, a_Type, a_Api, RT_NOTHING) + +# define RTASN1TMPL_END_SEQCORE() \ + if (RT_SUCCESS(rc)) \ + rc = RTAsn1CursorCheckEnd(&ThisCursor); \ + if (RT_SUCCESS(rc)) \ + return VINF_SUCCESS; \ + RT_CONCAT(RTASN1TMPL_EXT_NAME,_Delete)(pThis); \ + RTASN1TMPL_END_COMMON() +# define RTASN1TMPL_END_SETCORE() RTASN1TMPL_END_SEQCORE() + + +# define RTASN1TMPL_BEGIN_PCHOICE() \ + RTASN1TMPL_BEGIN_COMMON(); \ + RTAsn1Dummy_InitEx(&pThis->Dummy); \ + pThis->Dummy.Asn1Core.pOps = &RT_CONCAT3(g_,RTASN1TMPL_INT_NAME,_Vtable); \ + RTAsn1CursorInitAllocation(pCursor, &pThis->Allocation); \ + RTASN1CORE Asn1Peek; \ + int rc = RTAsn1CursorPeek(pCursor, &Asn1Peek); \ + if (RT_SUCCESS(rc)) \ + { \ + if (false) do {} while (0) +# define RTASN1TMPL_PCHOICE_ITAG_EX(a_uTag, a_enmChoice, a_PtrName, a_Name, a_Type, a_Api, a_fClue, a_Constraints) \ + else if ( Asn1Peek.uTag == (a_uTag) \ + && (Asn1Peek.fClass == RTASN1TMPL_ITAG_F_EXPAND(a_fClue) /** @todo || CER */ ) ) \ + do { \ + pThis->enmChoice = a_enmChoice; \ + rc = RTAsn1MemAllocZ(&pThis->Allocation, (void **)&pThis->a_PtrName, sizeof(*pThis->a_PtrName)); \ + if (RT_SUCCESS(rc)) \ + rc = RT_CONCAT(a_Api,_DecodeAsn1)(pCursor, RTASN1CURSOR_GET_F_IMPLICIT, pThis->a_PtrName, #a_PtrName); \ + } while (0) +# define RTASN1TMPL_PCHOICE_XTAG_EX(a_uTag, a_enmChoice, a_PtrTnNm, a_CtxTagN, a_Name, a_Type, a_Api, a_Constraints) \ + else if (Asn1Peek.uTag == (a_uTag) && Asn1Peek.fClass == (ASN1_TAGCLASS_CONTEXT | ASN1_TAGFLAG_CONSTRUCTED)) \ + do { \ + pThis->enmChoice = a_enmChoice; \ + rc = RTAsn1MemAllocZ(&pThis->Allocation, (void **)&pThis->a_PtrTnNm, sizeof(*pThis->a_PtrTnNm)); \ + if (RT_SUCCESS(rc)) \ + { \ + RTASN1CURSOR CtxCursor; \ + rc = RT_CONCAT3(RTAsn1CursorGetContextTag,a_uTag,Cursor)(pCursor, 0, &pThis->a_PtrTnNm->a_CtxTagN, \ + &CtxCursor, "T" #a_uTag); \ + if (RT_SUCCESS(rc)) \ + rc = RT_CONCAT(a_Api,_DecodeAsn1)(&CtxCursor, RTASN1CURSOR_GET_F_IMPLICIT, \ + &pThis->a_PtrTnNm->a_Name, #a_Name); \ + if (RT_SUCCESS(rc)) \ + rc = RTAsn1CursorCheckEnd(&CtxCursor); \ + } \ + } while (0) +#define RTASN1TMPL_END_PCHOICE() \ + else \ + rc = RTAsn1CursorSetInfo(pCursor, VERR_GENERAL_FAILURE, "%s: Unknown choice: tag=%#x fClass=%#x", \ + pszErrorTag, Asn1Peek.uTag, Asn1Peek.fClass); \ + if (RT_SUCCESS(rc)) \ + return VINF_SUCCESS; \ + } \ + RT_CONCAT(RTASN1TMPL_EXT_NAME,_Delete)(pThis); \ + RTASN1TMPL_END_COMMON() + + +# define RTASN1TMPL_SET_SEQ_OF_COMMON(a_ItemType, a_ItemApi, a_OfApi, a_OfMember, a_fnGetCursor) \ + RTASN1TMPL_BEGIN_COMMON(); \ + RTASN1CURSOR ThisCursor; \ + int rc = a_fnGetCursor(pCursor, fFlags, &pThis->a_OfMember, &ThisCursor, pszErrorTag); \ + if (RT_SUCCESS(rc)) \ + { \ + pCursor = &ThisCursor; \ + pThis->a_OfMember.Asn1Core.pOps = &RT_CONCAT3(g_,RTASN1TMPL_INT_NAME,_Vtable); \ + RTAsn1CursorInitAllocation(pCursor, &pThis->Allocation); \ + \ + uint32_t i = 0; \ + while ( pCursor->cbLeft > 0 \ + && RT_SUCCESS(rc)) \ + { \ + rc = RTAsn1MemGrowArray(&pThis->Allocation, \ + (void **)&pThis->paItems, \ + sizeof(pThis->paItems[0]), \ + i, \ + i + 1); \ + if (RT_SUCCESS(rc)) \ + { \ + rc = RT_CONCAT(a_ItemApi,_DecodeAsn1)(pCursor, 0, &pThis->paItems[i], "paItems[#]"); \ + if (RT_SUCCESS(rc)) \ + { \ + i++; \ + pThis->cItems = i; \ + continue; \ + } \ + } \ + break; \ + } \ + if (RT_SUCCESS(rc)) \ + { \ + rc = RTAsn1CursorCheckEnd(pCursor); \ + if (RT_SUCCESS(rc)) \ + return VINF_SUCCESS; \ + } \ + RT_CONCAT(RTASN1TMPL_EXT_NAME,_Delete)(pThis); \ + } \ + RTASN1TMPL_END_COMMON() +# define RTASN1TMPL_SEQ_OF(a_ItemType, a_ItemApi) \ + RTASN1TMPL_SET_SEQ_OF_COMMON(a_ItemType, a_ItemApi, RTAsn1SeqOfCore, SeqCore, RTAsn1CursorGetSequenceCursor) +# define RTASN1TMPL_SET_OF(a_ItemType, a_ItemApi) \ + RTASN1TMPL_SET_SEQ_OF_COMMON(a_ItemType, a_ItemApi, RTAsn1SetOfCore, SetCore, RTAsn1CursorGetSetCursor) + + +# define RTASN1TMPL_EXEC_DECODE(a_Expr) if (RT_SUCCESS(rc)) { a_Expr; } + + + +#elif RTASN1TMPL_PASS == RTASN1TMPL_PASS_ENUM +/* + * + * Enumeration. + * + */ +# define RTASN1TMPL_BEGIN_COMMON() \ +RTASN1TMPL_DECL(int) RT_CONCAT(RTASN1TMPL_EXT_NAME,_Enum)(RT_CONCAT(P,RTASN1TMPL_TYPE) pThis, \ + PFNRTASN1ENUMCALLBACK pfnCallback, \ + uint32_t uDepth, void *pvUser) \ +{ \ + if (!RT_CONCAT(RTASN1TMPL_EXT_NAME,_IsPresent)(pThis)) \ + return VINF_SUCCESS; \ + uDepth++; \ + int rc = VINF_SUCCESS + +# define RTASN1TMPL_END_COMMON() \ + return rc; \ +} RTASN1TMPL_SEMICOLON_DUMMY() + +# define RTASN1TMPL_BEGIN_SEQCORE() RTASN1TMPL_BEGIN_COMMON() +# define RTASN1TMPL_BEGIN_SETCORE() RTASN1TMPL_BEGIN_COMMON() +# define RTASN1TMPL_MEMBER_EX(a_Name, a_Type, a_Api, a_Constraints) \ + if (rc == VINF_SUCCESS) \ + rc = pfnCallback(RT_CONCAT(a_Api,_GetAsn1Core)(&pThis->a_Name), #a_Name, uDepth, pvUser) +# define RTASN1TMPL_MEMBER_DYN_BEGIN(a_enmType, a_enmMembNm, a_Allocation) \ + if (rc == VINF_SUCCESS) \ + switch (pThis->a_enmMembNm) \ + { \ + default: rc = VERR_INTERNAL_ERROR_3; break +# define RTASN1TMPL_MEMBER_DYN_COMMON(a_UnionNm, a_PtrName, a_Type, a_Api, a_Allocation, a_enmMembNm, a_enmValue, a_IfStmt) \ + case a_enmValue: \ + rc = pfnCallback(RT_CONCAT(a_Api,_GetAsn1Core)(pThis->a_UnionNm.a_PtrName), #a_UnionNm "." #a_PtrName, \ + uDepth, pvUser); \ + break +# define RTASN1TMPL_MEMBER_DYN_END(a_enmType, a_enmMembNm, a_Allocation) \ + case RT_CONCAT(a_enmType,_NOT_PRESENT): break; \ + } +# define RTASN1TMPL_MEMBER_OPT_EX(a_Name, a_Type, a_Api, a_Constraints) \ + if (rc == VINF_SUCCESS && RT_CONCAT(a_Api,_IsPresent)(&pThis->a_Name)) \ + rc = pfnCallback(RT_CONCAT(a_Api,_GetAsn1Core)(&pThis->a_Name), #a_Name, uDepth, pvUser) +# define RTASN1TMPL_MEMBER_OPT_XTAG_EX(a_TnNm, a_CtxTagN, a_Name, a_Type, a_Api, a_uTag, a_Constraints) \ + if (rc == VINF_SUCCESS && RTASN1CORE_IS_PRESENT(&pThis->a_TnNm.a_CtxTagN.Asn1Core)) \ + { \ + rc = pfnCallback(&pThis->a_TnNm.a_CtxTagN.Asn1Core, #a_Name, uDepth, pvUser); \ + if (rc == VINF_SUCCESS) \ + rc = pfnCallback(RT_CONCAT(a_Api,_GetAsn1Core)(&pThis->a_TnNm.a_Name), #a_TnNm "." #a_Name, uDepth, pvUser); \ + } do {} while (0) +# define RTASN1TMPL_END_SEQCORE() RTASN1TMPL_END_COMMON() +# define RTASN1TMPL_END_SETCORE() RTASN1TMPL_END_COMMON() + + +# define RTASN1TMPL_BEGIN_PCHOICE() \ + RTASN1TMPL_BEGIN_COMMON(); \ + switch (pThis->enmChoice) \ + { \ + default: rc = VERR_INTERNAL_ERROR_3; break +# define RTASN1TMPL_PCHOICE_ITAG_EX(a_uTag, a_enmChoice, a_PtrName, a_Name, a_Type, a_Api, a_fClue, a_Constraints) \ + case a_enmChoice: rc = pfnCallback(RT_CONCAT(a_Api,_GetAsn1Core)(pThis->a_PtrName), #a_PtrName, uDepth, pvUser); break +# define RTASN1TMPL_PCHOICE_XTAG_EX(a_uTag, a_enmChoice, a_PtrTnNm, a_CtxTagN, a_Name, a_Type, a_Api, a_Constraints) \ + case a_enmChoice: \ + rc = pfnCallback(&pThis->a_PtrTnNm->a_CtxTagN.Asn1Core, "T" #a_uTag "." #a_CtxTagN, uDepth, pvUser); \ + if (rc == VINF_SUCCESS) \ + rc = pfnCallback(RT_CONCAT(a_Api, _GetAsn1Core)(&pThis->a_PtrTnNm->a_Name), \ + "T" #a_uTag "." #a_Name, uDepth + 1, pvUser); \ + break +#define RTASN1TMPL_END_PCHOICE() \ + } \ + RTASN1TMPL_END_COMMON() + +# define RTASN1TMPL_SET_SEQ_OF_COMMON(a_ItemType, a_ItemApi) \ + RTASN1TMPL_BEGIN_COMMON(); \ + for (uint32_t i = 0; i < pThis->cItems && rc == VINF_SUCCESS; i++) \ + rc = pfnCallback(RT_CONCAT(a_ItemApi,_GetAsn1Core)(&pThis->paItems[i]), "paItems[#]", uDepth, pvUser); \ + RTASN1TMPL_END_COMMON() +# define RTASN1TMPL_SEQ_OF(a_ItemType, a_ItemApi) RTASN1TMPL_SET_SEQ_OF_COMMON(a_ItemType, a_ItemApi) +# define RTASN1TMPL_SET_OF(a_ItemType, a_ItemApi) RTASN1TMPL_SET_SEQ_OF_COMMON(a_ItemType, a_ItemApi) + + + +#elif RTASN1TMPL_PASS == RTASN1TMPL_PASS_CLONE +/* + * + * Clone another instance of the type. + * + */ +# define RTASN1TMPL_BEGIN_COMMON() \ +RTASN1TMPL_DECL(int) RT_CONCAT(RTASN1TMPL_EXT_NAME,_Clone)(RT_CONCAT(P,RTASN1TMPL_TYPE) pThis, \ + RT_CONCAT(PC,RTASN1TMPL_TYPE) pSrc, \ + PCRTASN1ALLOCATORVTABLE pAllocator) \ +{ \ + RT_ZERO(*pThis); \ + if (!RT_CONCAT(RTASN1TMPL_EXT_NAME,_IsPresent)(pSrc)) \ + return VINF_SUCCESS; \ + +# define RTASN1TMPL_END_COMMON() \ + return rc; \ +} RTASN1TMPL_SEMICOLON_DUMMY() + +# define RTASN1TMPL_BEGIN_SEQCORE() \ + RTASN1TMPL_BEGIN_COMMON(); \ + int rc = RTAsn1SequenceCore_Clone(&pThis->SeqCore, &RT_CONCAT3(g_, RTASN1TMPL_INT_NAME, _Vtable), &pSrc->SeqCore) +# define RTASN1TMPL_BEGIN_SETCORE() \ + RTASN1TMPL_BEGIN_COMMON(); \ + int rc = RTAsn1SetCore_Clone(&pThis->SetCore, &RT_CONCAT3(g_, RTASN1TMPL_INT_NAME, _Vtable), &pSrc->SetCore) + +# define RTASN1TMPL_MEMBER_EX(a_Name, a_Type, a_Api, a_Constraints) \ + if (RT_SUCCESS(rc)) \ + rc = RT_CONCAT(a_Api,_Clone)(&pThis->a_Name, &pSrc->a_Name, pAllocator); \ + +# define RTASN1TMPL_MEMBER_DYN_BEGIN(a_enmType, a_enmMembNm, a_Allocation) \ + if (RT_SUCCESS(rc)) \ + { \ + RTAsn1MemInitAllocation(&pThis->Allocation, pAllocator); \ + pThis->a_enmMembNm = pSrc->a_enmMembNm; \ + switch (pSrc->a_enmMembNm) \ + { \ + default: rc = VERR_INTERNAL_ERROR_3; break +# define RTASN1TMPL_MEMBER_DYN_COMMON(a_UnionNm, a_PtrName, a_Type, a_Api, a_Allocation, a_enmMembNm, a_enmValue, a_IfStmt) \ + case a_enmValue: \ + rc = RTAsn1MemAllocZ(&pThis->a_Allocation, (void **)&pThis->a_UnionNm.a_PtrName, \ + sizeof(*pThis->a_UnionNm.a_PtrName)); \ + if (RT_SUCCESS(rc)) \ + rc = RT_CONCAT(a_Api,_Clone)(pThis->a_UnionNm.a_PtrName, pSrc->a_UnionNm.a_PtrName, pAllocator); \ + break +# define RTASN1TMPL_MEMBER_DYN_END(a_enmType, a_enmMembNm, a_Allocation) \ + case RT_CONCAT(a_enmType,_NOT_PRESENT): break; \ + } \ + } + +/* Optional members and members with defaults are the same as a normal member when cloning. */ +# define RTASN1TMPL_MEMBER_OPT_UTF8_STRING_EX(a_Name, a_Constraints) \ + RTASN1TMPL_MEMBER_OPT_EX(a_Name, RTASN1STRING, RTAsn1Utf8String, a_Constraints RT_NOTHING) +# define RTASN1TMPL_MEMBER_OPT_XTAG_EX(a_TnNm, a_CtxTagN, a_Name, a_Type, a_Api, a_uTag, a_Constraints) \ + if (RTASN1CORE_IS_PRESENT(&pSrc->a_TnNm.a_CtxTagN.Asn1Core) && RT_SUCCESS(rc)) \ + { \ + rc = RT_CONCAT3(RTAsn1ContextTag,a_uTag,_Clone)(&pThis->a_TnNm.a_CtxTagN, &pSrc->a_TnNm.a_CtxTagN); \ + if (RT_SUCCESS(rc)) \ + rc = RT_CONCAT(a_Api,_Clone)(&pThis->a_TnNm.a_Name, &pSrc->a_TnNm.a_Name, pAllocator); \ + } do { } while (0) + +# define RTASN1TMPL_END_SEQCORE() \ + if (RT_FAILURE(rc)) \ + RT_CONCAT(RTASN1TMPL_EXT_NAME,_Delete)(pThis); \ + RTASN1TMPL_END_COMMON() +# define RTASN1TMPL_END_SETCORE() RTASN1TMPL_END_SEQCORE() + + +# define RTASN1TMPL_BEGIN_PCHOICE() \ + RTASN1TMPL_BEGIN_COMMON(); \ + RTAsn1Dummy_InitEx(&pThis->Dummy); \ + RTAsn1MemInitAllocation(&pThis->Allocation, pAllocator); \ + int rc; \ + pThis->enmChoice = pSrc->enmChoice; \ + switch (pSrc->enmChoice) \ + { \ + default: rc = VERR_INTERNAL_ERROR_3; break +# define RTASN1TMPL_PCHOICE_ITAG_EX(a_uTag, a_enmChoice, a_PtrName, a_Name, a_Type, a_Api, a_fClue, a_Constraints) \ + case a_enmChoice: \ + rc = RTAsn1MemAllocZ(&pThis->Allocation, (void **)&pThis->a_PtrName, sizeof(*pThis->a_PtrName)); \ + if (RT_SUCCESS(rc)) \ + rc = RT_CONCAT(a_Api,_Clone)(pThis->a_PtrName, pSrc->a_PtrName, pAllocator); break +# define RTASN1TMPL_PCHOICE_XTAG_EX(a_uTag, a_enmChoice, a_PtrTnNm, a_CtxTagN, a_Name, a_Type, a_Api, a_Constraints) \ + case a_enmChoice: /* A bit of presence paranoia here, but better safe than sorry... */ \ + rc = RTAsn1MemAllocZ(&pThis->Allocation, (void **)&pThis->a_PtrTnNm, sizeof(*pThis->a_PtrTnNm)); \ + if (RT_SUCCESS(rc) && RTASN1CORE_IS_PRESENT(&pSrc->a_PtrTnNm->a_CtxTagN.Asn1Core)) \ + { \ + RT_CONCAT3(RTAsn1ContextTag,a_uTag,_Clone)(&pThis->a_PtrTnNm->a_CtxTagN, &pSrc->a_PtrTnNm->a_CtxTagN); \ + rc = RT_CONCAT(a_Api,_Clone)(&pThis->a_PtrTnNm->a_Name, &pSrc->a_PtrTnNm->a_Name, pAllocator); \ + } \ + break +#define RTASN1TMPL_END_PCHOICE() \ + } \ + if (RT_FAILURE(rc)) \ + RT_CONCAT(RTASN1TMPL_EXT_NAME,_Delete)(pThis); \ + RTASN1TMPL_END_COMMON() + + +# define RTASN1TMPL_SET_SEQ_OF_COMMON(a_ItemType, a_ItemApi, a_OfApi, a_OfMember) \ + RTASN1TMPL_BEGIN_COMMON(); \ + int rc = RT_CONCAT(a_OfApi,_Clone)(&pThis->a_OfMember, &RT_CONCAT3(g_,RTASN1TMPL_INT_NAME,_Vtable), &pSrc->a_OfMember); \ + if (RT_SUCCESS(rc)) \ + { \ + RTAsn1MemInitAllocation(&pThis->Allocation, pAllocator); \ + uint32_t const cItems = pSrc->cItems; \ + if (cItems > 0) \ + { \ + rc = RTAsn1MemGrowArray(&pThis->Allocation, (void **)&pThis->paItems, sizeof(pThis->paItems[0]), 0, cItems); \ + if (RT_SUCCESS(rc)) \ + { \ + uint32_t i = 0; \ + while (i < cItems) \ + { \ + rc = RT_CONCAT(a_ItemApi,_Clone)(&pThis->paItems[i], &pSrc->paItems[i], pAllocator); \ + if (RT_SUCCESS(rc)) \ + pThis->cItems = ++i; \ + else \ + { \ + pThis->cItems = i; \ + RT_CONCAT(RTASN1TMPL_EXT_NAME,_Delete)(pThis); \ + return rc; \ + } \ + } \ + } \ + else \ + RT_ZERO(*pThis); \ + } \ + } \ + RTASN1TMPL_END_COMMON() +# define RTASN1TMPL_SEQ_OF(a_ItemType, a_ItemApi) RTASN1TMPL_SET_SEQ_OF_COMMON(a_ItemType, a_ItemApi, RTAsn1SeqOfCore, SeqCore) +# define RTASN1TMPL_SET_OF(a_ItemType, a_ItemApi) RTASN1TMPL_SET_SEQ_OF_COMMON(a_ItemType, a_ItemApi, RTAsn1SetOfCore, SetCore) + +# define RTASN1TMPL_EXEC_CLONE(a_Expr) if (RT_SUCCESS(rc)) { a_Expr; } + + + +#elif RTASN1TMPL_PASS == RTASN1TMPL_PASS_SETTERS_1 +/* + * + * Member setter helpers. + * + */ +# define RTASN1TMPL_BEGIN_SEQCORE() RTASN1TMPL_SEMICOLON_DUMMY() +# define RTASN1TMPL_BEGIN_SETCORE() RTASN1TMPL_SEMICOLON_DUMMY() +#if 1 /** @todo later */ +# define RTASN1TMPL_MEMBER_EX(a_Name, a_Type, a_Api, a_Constraints) RTASN1TMPL_SEMICOLON_DUMMY() +#else +# define RTASN1TMPL_MEMBER_EX(a_Name, a_Type, a_Api, a_Constraints) \ + RTDECL(int) RT_CONCAT3(RTASN1TMPL_EXT_NAME,_Set,a_Name)(RTASN1TMPL_TYPE *pThis, a_Type const *pValue, \ + PCRTASN1ALLOCATORVTABLE pAllocator) \ + { \ + if (RT_CONCAT(a_Api,_IsPresent)(&pThis->a_Name)) \ + RT_CONCAT(a_Api,_Delete)(&pThis->a_Name); \ + return RT_CONCAT(a_Api,_Clone)(&pThis->a_Name, pValue, pAllocator, true /* fResetImplicit */); \ + } RTASN1TMPL_SEMICOLON_DUMMY() +#endif + +# define RTASN1TMPL_MEMBER_DYN_BEGIN(a_enmType, a_enmMembNm, a_Allocation) RTASN1TMPL_SEMICOLON_DUMMY() +# define RTASN1TMPL_MEMBER_DYN_END(a_enmType, a_enmMembNm, a_Allocation) RTASN1TMPL_SEMICOLON_DUMMY() +# define RTASN1TMPL_END_SEQCORE() RTASN1TMPL_SEMICOLON_DUMMY() +# define RTASN1TMPL_END_SETCORE() RTASN1TMPL_SEMICOLON_DUMMY() + + +# define RTASN1TMPL_BEGIN_PCHOICE() RTASN1TMPL_SEMICOLON_DUMMY() +# define RTASN1TMPL_PCHOICE_ITAG_EX(a_uTag, a_enmChoice, a_PtrName, a_Name, a_Type, a_Api, a_fClue, a_Constraints) RTASN1TMPL_SEMICOLON_DUMMY() +# define RTASN1TMPL_PCHOICE_XTAG_EX(a_uTag, a_enmChoice, a_PtrTnNm, a_CtxTagN, a_Name, a_Type, a_Api, a_Constraints) RTASN1TMPL_SEMICOLON_DUMMY() +# define RTASN1TMPL_END_PCHOICE() RTASN1TMPL_SEMICOLON_DUMMY() + + +# define RTASN1TMPL_SEQ_OF(a_ItemType, a_ItemApi) RTASN1TMPL_SEMICOLON_DUMMY() +# define RTASN1TMPL_SET_OF(a_ItemType, a_ItemApi) RTASN1TMPL_SEMICOLON_DUMMY() + + + +#elif RTASN1TMPL_PASS == RTASN1TMPL_PASS_SETTERS_2 +/* + * + * Member setters. + * + */ +# define RTASN1TMPL_BEGIN_SEQCORE() RTASN1TMPL_SEMICOLON_DUMMY() +# define RTASN1TMPL_BEGIN_SETCORE() RTASN1TMPL_SEMICOLON_DUMMY() +# define RTASN1TMPL_MEMBER_EX(a_Name, a_Type, a_Api, a_Constraints) RTASN1TMPL_SEMICOLON_DUMMY() +# define RTASN1TMPL_MEMBER_DYN_BEGIN(a_enmType, a_enmMembNm, a_Allocation) RTASN1TMPL_SEMICOLON_DUMMY() +# define RTASN1TMPL_MEMBER_DYN_END(a_enmType, a_enmMembNm, a_Allocation) RTASN1TMPL_SEMICOLON_DUMMY() +# define RTASN1TMPL_END_SEQCORE() RTASN1TMPL_SEMICOLON_DUMMY() +# define RTASN1TMPL_END_SETCORE() RTASN1TMPL_SEMICOLON_DUMMY() + + +# define RTASN1TMPL_BEGIN_PCHOICE() RTASN1TMPL_SEMICOLON_DUMMY() + +# define RTASN1TMPL_PCHOICE_ITAG_EX(a_uTag, a_enmChoice, a_PtrName, a_Name, a_Type, a_Api, a_fClue, a_Constraints) \ +RTASN1TMPL_DECL(int) RT_CONCAT3(RTASN1TMPL_EXT_NAME,_Set,a_Name)(RT_CONCAT(P,RTASN1TMPL_TYPE) pThis, RT_CONCAT(PC,a_Type) pSrc,\ + PCRTASN1ALLOCATORVTABLE pAllocator) \ +{ \ + AssertPtr(pSrc); AssertPtr(pThis); \ + RT_CONCAT(RTASN1TMPL_EXT_NAME,_Delete)(pThis); /* See _Init. */ \ + RTAsn1Dummy_InitEx(&pThis->Dummy); \ + RTAsn1MemInitAllocation(&pThis->Allocation, pAllocator); \ + pThis->enmChoice = a_enmChoice; \ + int rc = RTAsn1MemAllocZ(&pThis->Allocation, (void **)&pThis->a_PtrName, sizeof(*pThis->a_PtrName)); \ + if (RT_SUCCESS(rc)) \ + { \ + rc = RT_CONCAT(a_Api,_Clone)(pThis->a_PtrName, pSrc, pAllocator); \ + if (RT_SUCCESS(rc)) \ + { \ + RTAsn1Core_ResetImplict(RT_CONCAT(a_Api,_GetAsn1Core)(pThis->a_PtrName)); \ + rc = RTAsn1Core_SetTagAndFlags(RT_CONCAT(a_Api,_GetAsn1Core)(pThis->a_PtrName), \ + a_uTag, RTASN1TMPL_ITAG_F_EXPAND(a_fClue)); \ + } \ + } \ + return rc; \ +} RTASN1TMPL_SEMICOLON_DUMMY() + +# define RTASN1TMPL_PCHOICE_XTAG_EX(a_uTag, a_enmChoice, a_PtrTnNm, a_CtxTagN, a_Name, a_Type, a_Api, a_Constraints) \ +RTASN1TMPL_DECL(int) RT_CONCAT3(RTASN1TMPL_EXT_NAME,_Set,a_Name)(RT_CONCAT(P,RTASN1TMPL_TYPE) pThis, RT_CONCAT(PC,a_Type) pSrc,\ + PCRTASN1ALLOCATORVTABLE pAllocator) \ +{ \ + AssertPtr(pThis); AssertPtr(pSrc); Assert(RT_CONCAT(a_Api,_IsPresent)(pSrc)); \ + RT_CONCAT(RTASN1TMPL_EXT_NAME,_Delete)(pThis); /* See _Init. */ \ + RTAsn1Dummy_InitEx(&pThis->Dummy); \ + RTAsn1MemInitAllocation(&pThis->Allocation, pAllocator); \ + pThis->enmChoice = a_enmChoice; \ + int rc = RTAsn1MemAllocZ(&pThis->Allocation, (void **)&pThis->a_PtrTnNm, sizeof(*pThis->a_PtrTnNm)); \ + if (RT_SUCCESS(rc)) \ + { \ + rc = RT_CONCAT3(RTAsn1ContextTag,a_uTag,_Init)(&pThis->a_PtrTnNm->a_CtxTagN, pAllocator); \ + if (RT_SUCCESS(rc)) \ + { \ + rc = RT_CONCAT(a_Api,_Clone)(&pThis->a_PtrTnNm->a_Name, pSrc, pAllocator); \ + if (RT_SUCCESS(rc)) \ + RTAsn1Core_ResetImplict(RT_CONCAT(a_Api,_GetAsn1Core)(&pThis->a_PtrTnNm->a_Name)); \ + } \ + } \ + return rc; \ +} RTASN1TMPL_SEMICOLON_DUMMY() + +#define RTASN1TMPL_END_PCHOICE() RTASN1TMPL_SEMICOLON_DUMMY() + + +# define RTASN1TMPL_SEQ_OF(a_ItemType, a_ItemApi) RTASN1TMPL_SEMICOLON_DUMMY() +# define RTASN1TMPL_SET_OF(a_ItemType, a_ItemApi) RTASN1TMPL_SEMICOLON_DUMMY() + + +#elif RTASN1TMPL_PASS == RTASN1TMPL_PASS_COMPARE +/* + * + * Compare two instances of the type. + * + */ +# define RTASN1TMPL_BEGIN_COMMON() \ +RTASN1TMPL_DECL(int) RT_CONCAT(RTASN1TMPL_EXT_NAME,_Compare)(RT_CONCAT(PC,RTASN1TMPL_TYPE) pLeft, \ + RT_CONCAT(PC,RTASN1TMPL_TYPE) pRight) \ +{ \ + if (!RT_CONCAT(RTASN1TMPL_EXT_NAME,_IsPresent)(pLeft)) \ + return 0 - (int)RT_CONCAT(RTASN1TMPL_EXT_NAME,_IsPresent)(pRight); \ + if (!RT_CONCAT(RTASN1TMPL_EXT_NAME,_IsPresent)(pRight)) \ + return -1; \ + int iDiff = 0 + +# define RTASN1TMPL_END_COMMON() \ + return iDiff; \ +} RTASN1TMPL_SEMICOLON_DUMMY() + +# define RTASN1TMPL_BEGIN_SEQCORE() RTASN1TMPL_BEGIN_COMMON() +# define RTASN1TMPL_BEGIN_SETCORE() RTASN1TMPL_BEGIN_COMMON() +# define RTASN1TMPL_MEMBER_EX(a_Name, a_Type, a_Api, a_Constraints) \ + if (!iDiff) \ + iDiff = RT_CONCAT(a_Api,_Compare)(&pLeft->a_Name, &pRight->a_Name) +# define RTASN1TMPL_MEMBER_DYN_BEGIN(a_enmType, a_enmMembNm, a_Allocation) \ + if (!iDiff && pLeft->a_enmMembNm != pRight->a_enmMembNm) \ + iDiff = pLeft->a_enmMembNm < pRight->a_enmMembNm ? -1 : 1; \ + else if (!iDiff) \ + switch (pLeft->a_enmMembNm) \ + { \ + default: break +# define RTASN1TMPL_MEMBER_DYN_COMMON(a_UnionNm, a_PtrName, a_Type, a_Api, a_Allocation, a_enmMembNm, a_enmValue, a_IfStmt) \ + case a_enmValue: iDiff = RT_CONCAT(a_Api,_Compare)(pLeft->a_UnionNm.a_PtrName, pRight->a_UnionNm.a_PtrName); break +# define RTASN1TMPL_MEMBER_DYN_END(a_enmType, a_enmMembNm, a_Allocation) \ + case RT_CONCAT(a_enmType,_NOT_PRESENT): break; \ + } +# define RTASN1TMPL_MEMBER_OPT_XTAG_EX(a_TnNm, a_CtxTagN, a_Name, a_Type, a_Api, a_uTag, a_Constraints) \ + if (!iDiff) \ + { \ + if (RTASN1CORE_IS_PRESENT(&pLeft->a_TnNm.a_CtxTagN.Asn1Core)) \ + { \ + if (RTASN1CORE_IS_PRESENT(&pRight->a_TnNm.a_CtxTagN.Asn1Core)) \ + iDiff = RT_CONCAT(a_Api,_Compare)(&pLeft->a_TnNm.a_Name, &pRight->a_TnNm.a_Name); \ + else \ + iDiff = -1; \ + } \ + else \ + iDiff = 0 - (int)RTASN1CORE_IS_PRESENT(&pRight->a_TnNm.a_CtxTagN.Asn1Core); \ + } do { } while (0) +# define RTASN1TMPL_END_SEQCORE() RTASN1TMPL_END_COMMON() +# define RTASN1TMPL_END_SETCORE() RTASN1TMPL_END_COMMON() + +# define RTASN1TMPL_BEGIN_PCHOICE() \ + RTASN1TMPL_BEGIN_COMMON(); \ + if (pLeft->enmChoice != pRight->enmChoice) \ + return pLeft->enmChoice < pRight->enmChoice ? -1 : 1; \ + switch (pLeft->enmChoice) \ + { \ + default: break +# define RTASN1TMPL_PCHOICE_ITAG_EX(a_uTag, a_enmChoice, a_PtrName, a_Name, a_Type, a_Api, a_fClue, a_Constraints) \ + case a_enmChoice: iDiff = RT_CONCAT(a_Api,_Compare)(pLeft->a_PtrName, pRight->a_PtrName); break +# define RTASN1TMPL_PCHOICE_XTAG_EX(a_uTag, a_enmChoice, a_PtrTnNm, a_CtxTagN, a_Name, a_Type, a_Api, a_Constraints) \ + case a_enmChoice: iDiff = RT_CONCAT(a_Api,_Compare)(&pLeft->a_PtrTnNm->a_Name, &pRight->a_PtrTnNm->a_Name); break +#define RTASN1TMPL_END_PCHOICE() \ + } \ + RTASN1TMPL_END_COMMON() + + +# define RTASN1TMPL_SET_SEQ_OF_COMMON(a_ItemType, a_ItemApi) \ + RTASN1TMPL_BEGIN_COMMON(); \ + uint32_t cItems = pLeft->cItems; \ + if (cItems == pRight->cItems) \ + for (uint32_t i = 0; iDiff == 0 && i < cItems; i++) \ + iDiff = RT_CONCAT(a_ItemApi,_Compare)(&pLeft->paItems[i], &pRight->paItems[i]); \ + else \ + iDiff = cItems < pRight->cItems ? -1 : 1; \ + RTASN1TMPL_END_COMMON() +# define RTASN1TMPL_SEQ_OF(a_ItemType, a_ItemApi) RTASN1TMPL_SET_SEQ_OF_COMMON(a_ItemType, a_ItemApi) +# define RTASN1TMPL_SET_OF(a_ItemType, a_ItemApi) RTASN1TMPL_SET_SEQ_OF_COMMON(a_ItemType, a_ItemApi) + + + +#elif RTASN1TMPL_PASS == RTASN1TMPL_PASS_CHECK_SANITY +/* + * + * Checks the sanity of the type. + * + */ +# ifndef RTASN1TMPL_SANITY_CHECK_EXPR +# define RTASN1TMPL_SANITY_CHECK_EXPR() VINF_SUCCESS +# endif +# define RTASN1TMPL_BEGIN_COMMON() \ +RTASN1TMPL_DECL(int) RT_CONCAT(RTASN1TMPL_EXT_NAME,_CheckSanity)(RT_CONCAT(PC,RTASN1TMPL_TYPE) pThis, uint32_t fFlags, \ + PRTERRINFO pErrInfo, const char *pszErrorTag) \ +{ \ + if (RT_UNLIKELY(!RT_CONCAT(RTASN1TMPL_EXT_NAME,_IsPresent)(pThis))) \ + return RTErrInfoSetF(pErrInfo, VERR_GENERAL_FAILURE, "%s: Missing (%s).", pszErrorTag, RT_XSTR(RTASN1TMPL_TYPE)); \ + int rc = VINF_SUCCESS + +# define RTASN1TMPL_END_COMMON() \ + if (RT_SUCCESS(rc)) \ + rc = (RTASN1TMPL_SANITY_CHECK_EXPR()); \ + return rc; \ +} RTASN1TMPL_SEMICOLON_DUMMY() + +# define RTASN1TMPL_BEGIN_SEQCORE() RTASN1TMPL_BEGIN_COMMON() +# define RTASN1TMPL_BEGIN_SETCORE() RTASN1TMPL_BEGIN_COMMON() +# define RTASN1TMPL_MEMBER_EX(a_Name, a_Type, a_Api, a_Constraints) \ + if (RT_SUCCESS(rc)) \ + { \ + if (RT_LIKELY(RT_CONCAT(a_Api,_IsPresent)(&pThis->a_Name))) \ + { \ + rc = RT_CONCAT(a_Api,_CheckSanity)(&pThis->a_Name, fFlags & RTASN1_CHECK_SANITY_F_COMMON_MASK, \ + pErrInfo, RT_XSTR(RTASN1TMPL_TYPE) "::" #a_Name); \ + { a_Constraints } \ + } \ + else \ + rc = RTErrInfoSetF(pErrInfo, VERR_GENERAL_FAILURE, "%s: Missing member %s (%s).", \ + pszErrorTag, #a_Name, RT_XSTR(RTASN1TMPL_TYPE)); \ + } do {} while (0) +# define RTASN1TMPL_MEMBER_DYN_BEGIN(a_enmType, a_enmMembNm, a_Allocation) \ + if (RT_SUCCESS(rc)) \ + switch (pThis->a_enmMembNm) \ + { \ + default: \ + rc = RTErrInfoSetF(pErrInfo, VERR_GENERAL_FAILURE, \ + "%s: Invalid " #a_enmMembNm " value: %d", pszErrorTag, pThis->a_enmMembNm); \ + break +# define RTASN1TMPL_MEMBER_DYN_COMMON(a_UnionNm, a_PtrName, a_Type, a_Api, a_Allocation, a_enmMembNm, a_enmValue, a_IfStmt) \ + case a_enmValue: \ + rc = RT_CONCAT(a_Api,_CheckSanity)(pThis->a_UnionNm.a_PtrName, fFlags & RTASN1_CHECK_SANITY_F_COMMON_MASK, \ + pErrInfo, RT_XSTR(RTASN1TMPL_TYPE) "::" #a_UnionNm "." #a_PtrName); \ + break +# define RTASN1TMPL_MEMBER_DYN_END(a_enmType, a_enmMembNm, a_Allocation) \ + case RT_CONCAT(a_enmType,_NOT_PRESENT): \ + rc = RTErrInfoSetF(pErrInfo, VERR_GENERAL_FAILURE, \ + "%s: Invalid " #a_enmMembNm " value: " #a_enmType "_NOT_PRESENT", \ + pszErrorTag, pThis->a_enmMembNm); \ + break; \ + } +# define RTASN1TMPL_MEMBER_OPT_EX(a_Name, a_Type, a_Api, a_Constraints) \ + if (RT_SUCCESS(rc) && RT_CONCAT(a_Api,_IsPresent)(&pThis->a_Name)) \ + { \ + rc = RT_CONCAT(a_Api,_CheckSanity)(&pThis->a_Name, fFlags & RTASN1_CHECK_SANITY_F_COMMON_MASK, \ + pErrInfo, RT_XSTR(RTASN1TMPL_TYPE) "::" #a_Name); \ + { a_Constraints } \ + } +# define RTASN1TMPL_MEMBER_OPT_XTAG_EX(a_TnNm, a_CtxTagN, a_Name, a_Type, a_Api, a_uTag, a_Constraints) \ + if (RT_SUCCESS(rc)) \ + { \ + bool const fOuterPresent = RTASN1CORE_IS_PRESENT(&pThis->a_TnNm.a_CtxTagN.Asn1Core); \ + bool const fInnerPresent = RT_CONCAT(a_Api,_IsPresent)(&pThis->a_TnNm.a_Name); \ + if (fOuterPresent && fInnerPresent) \ + { \ + rc = RT_CONCAT(a_Api,_CheckSanity)(&pThis->a_TnNm.a_Name, fFlags & RTASN1_CHECK_SANITY_F_COMMON_MASK, \ + pErrInfo, RT_XSTR(RTASN1TMPL_TYPE) "::" #a_Name); \ + { a_Constraints } \ + } \ + else if (RT_UNLIKELY(RTASN1CORE_IS_PRESENT(&pThis->a_TnNm.a_CtxTagN.Asn1Core) != fInnerPresent)) \ + rc = RTErrInfoSetF(pErrInfo, VERR_GENERAL_FAILURE, \ + "%s::" #a_TnNm "." #a_Name ": Explict tag precense mixup; " #a_CtxTagN "=%d " #a_Name "=%d.", \ + pszErrorTag, fOuterPresent, fInnerPresent); \ + } do { } while (0) +# define RTASN1TMPL_END_SEQCORE() RTASN1TMPL_END_COMMON() +# define RTASN1TMPL_END_SETCORE() RTASN1TMPL_END_COMMON() + + +# define RTASN1TMPL_BEGIN_PCHOICE() \ + RTASN1TMPL_BEGIN_COMMON(); \ + switch (pThis->enmChoice) \ + { \ + default: \ + rc = RTErrInfoSetF(pErrInfo, VERR_GENERAL_FAILURE, \ + "%s: Invalid enmChoice value: %d", pszErrorTag, pThis->enmChoice); \ + break +# define RTASN1TMPL_PCHOICE_ITAG_EX(a_uTag, a_enmChoice, a_PtrName, a_Name, a_Type, a_Api, a_fClue, a_Constraints) \ + case a_enmChoice: \ + if (pThis->a_PtrName && RT_CONCAT(a_Api,_IsPresent)(pThis->a_PtrName)) \ + { \ + PCRTASN1CORE pCore = RT_CONCAT(a_Api,_GetAsn1Core)(pThis->a_PtrName); \ + if (pCore->uTag == a_uTag && pCore->fClass == RTASN1TMPL_ITAG_F_EXPAND(a_fClue)) \ + { \ + rc = RT_CONCAT(a_Api,_CheckSanity)(pThis->a_PtrName, fFlags & RTASN1_CHECK_SANITY_F_COMMON_MASK, \ + pErrInfo, RT_XSTR(RTASN1TMPL_TYPE) "::" #a_Name); \ + { a_Constraints } \ + } \ + else \ + rc = RTErrInfoSetF(pErrInfo, VERR_GENERAL_FAILURE, \ + "%s::" #a_Name ": Tag/class mismatch: expected %#x/%#x, actual %#x/%x.", \ + pszErrorTag, a_uTag, RTASN1TMPL_ITAG_F_EXPAND(a_fClue), pCore->uTag, pCore->fClass); \ + } \ + else \ + rc = RTErrInfoSetF(pErrInfo, VERR_GENERAL_FAILURE, "%s::" #a_Name ": Not present.", pszErrorTag); \ + break +# define RTASN1TMPL_PCHOICE_XTAG_EX(a_uTag, a_enmChoice, a_PtrTnNm, a_CtxTagN, a_Name, a_Type, a_Api, a_Constraints) \ + case a_enmChoice: \ + if ( pThis->a_PtrTnNm \ + && RTASN1CORE_IS_PRESENT(&(pThis->a_PtrTnNm->a_CtxTagN.Asn1Core)) \ + && RT_CONCAT(a_Api,_IsPresent)(&pThis->a_PtrTnNm->a_Name) ) \ + { \ + rc = RT_CONCAT(a_Api,_CheckSanity)(&pThis->a_PtrTnNm->a_Name, fFlags & RTASN1_CHECK_SANITY_F_COMMON_MASK, \ + pErrInfo, RT_XSTR(RTASN1TMPL_TYPE) "::" #a_Name); \ + { a_Constraints } \ + } \ + else \ + rc = RTErrInfoSetF(pErrInfo, VERR_GENERAL_FAILURE, "%s::" #a_Name ": Not present.", pszErrorTag); \ + break +#define RTASN1TMPL_END_PCHOICE() \ + } \ + RTASN1TMPL_END_COMMON() + + +# define RTASN1TMPL_SET_SEQ_OF_COMMON(a_ItemType, a_ItemApi) \ + RTASN1TMPL_BEGIN_COMMON(); \ + for (uint32_t i = 0; RT_SUCCESS(rc) && i < pThis->cItems; i++) \ + rc = RT_CONCAT(a_ItemApi,_CheckSanity)(&pThis->paItems[i], fFlags & RTASN1_CHECK_SANITY_F_COMMON_MASK, \ + pErrInfo, RT_XSTR(RTASN1TMPL_TYPE) "::paItems[#]"); \ + if (RT_SUCCESS(rc)) { RTASN1TMPL_SET_SEQ_EXEC_CHECK_SANITY(); } \ + RTASN1TMPL_END_COMMON() +# define RTASN1TMPL_SEQ_OF(a_ItemType, a_ItemApi) RTASN1TMPL_SET_SEQ_OF_COMMON(a_ItemType, a_ItemApi) +# define RTASN1TMPL_SET_OF(a_ItemType, a_ItemApi) RTASN1TMPL_SET_SEQ_OF_COMMON(a_ItemType, a_ItemApi) + +/* The constraints. */ +# define RTASN1TMPL_MEMBER_CONSTR_MIN_MAX(a_Name, a_Type, a_Api, cbMin, cbMax, a_MoreConstraints) \ + if (RT_SUCCESS(rc) && ((cbMin) != 0 || (cbMax) != UINT32_MAX)) \ + { \ + PCRTASN1CORE pCore = RT_CONCAT(a_Api,_GetAsn1Core)(&pThis->a_Name); \ + if (RT_UNLIKELY(pCore->cb < (cbMin) || pCore->cb > (cbMax))) \ + rc = RTErrInfoSetF(pErrInfo, VERR_GENERAL_FAILURE, \ + "%s::" #a_Name ": Content size is out of range: %#x not in {%#x..%#x}", \ + pszErrorTag, pCore->cb, cbMin, cbMax); \ + } \ + { a_MoreConstraints } + +# define RTASN1TMPL_MEMBER_CONSTR_BITSTRING_MIN_MAX(a_Name, cMinBits, cMaxBits, a_MoreConstraints) \ + if (RT_SUCCESS(rc) && ((cMinBits) != 0 || (cMaxBits) != UINT32_MAX)) \ + { \ + if (RT_UNLIKELY( ((cMinBits) == 0 ? false : pThis->a_Name.cBits + 1U < (cMinBits) + 1U /* warning avoiding */) \ + || ((cMaxBits) == UINT32_MAX ? false : pThis->a_Name.cBits + 1U > (cMaxBits) + 1U /* ditto */) ) ) \ + rc = RTErrInfoSetF(pErrInfo, VERR_GENERAL_FAILURE, \ + "%s::" #a_Name ": Bit size is out of range: %#x not in {%#x..%#x}", \ + pszErrorTag, pThis->a_Name.cBits, cMinBits, cMaxBits); \ + } \ + { a_MoreConstraints } + +# define RTASN1TMPL_MEMBER_CONSTR_U64_MIN_MAX(a_Name, uMin, uMax, a_MoreConstraints) \ + if (RT_SUCCESS(rc)) \ + { \ + if (RT_UNLIKELY( RTAsn1Integer_UnsignedCompareWithU64(&pThis->a_Name, uMin) < 0 \ + || RTAsn1Integer_UnsignedCompareWithU64(&pThis->a_Name, uMax) > 0) ) \ + rc = RTErrInfoSetF(pErrInfo, VERR_GENERAL_FAILURE, \ + "%s::" #a_Name ": Out of range: %#x not in {%#llx..%#llx}", \ + pszErrorTag, pThis->a_Name.Asn1Core.cb > 8 ? UINT64_MAX : pThis->a_Name.uValue.u, \ + (uint64_t)(uMin), (uint64_t)(uMax)); \ + } \ + { a_MoreConstraints } + +# define RTASN1TMPL_MEMBER_CONSTR_PRESENT(a_Name, a_Api, a_MoreConstraints) \ + if (RT_SUCCESS(rc) && RT_UNLIKELY(!RT_CONCAT(a_Api,_IsPresent)(&pThis->a_Name))) \ + rc = RTErrInfoSetF(pErrInfo, VERR_GENERAL_FAILURE, "%s::" #a_Name ": Missing.", pszErrorTag); \ + { a_MoreConstraints } + + + +# define RTASN1TMPL_EXEC_CHECK_SANITY(a_Expr) if (RT_SUCCESS(rc)) { a_Expr; } + + +#elif RTASN1TMPL_PASS == RTASN1TMPL_PASS_DELETE +/* + * + * Delete wrappers. + * + */ +# define RTASN1TMPL_BEGIN_COMMON() \ +RTASN1TMPL_DECL(void) RT_CONCAT(RTASN1TMPL_EXT_NAME,_Delete)(RT_CONCAT(P,RTASN1TMPL_TYPE) pThis) \ +{ \ + if (RT_CONCAT(RTASN1TMPL_EXT_NAME,_IsPresent)(pThis)) \ + { do { } while (0) + +# define RTASN1TMPL_END_COMMON() \ + } \ + RT_ZERO(*pThis); \ +} RTASN1TMPL_SEMICOLON_DUMMY() + +# define RTASN1TMPL_BEGIN_SEQCORE() RTASN1TMPL_BEGIN_COMMON() +# define RTASN1TMPL_BEGIN_SETCORE() RTASN1TMPL_BEGIN_COMMON() +# define RTASN1TMPL_MEMBER_EX(a_Name, a_Type, a_Api, a_Constraints) RT_CONCAT(a_Api,_Delete)(&pThis->a_Name) +# define RTASN1TMPL_MEMBER_DYN_BEGIN(a_enmType, a_enmMembNm, a_Allocation) \ + switch (pThis->a_enmMembNm) \ + { \ + default: break +# define RTASN1TMPL_MEMBER_DYN_COMMON(a_UnionNm, a_PtrName, a_Type, a_Api, a_Allocation, a_enmMembNm, a_enmValue, a_IfStmt) \ + case a_enmValue: \ + if (pThis->a_UnionNm.a_PtrName) \ + { \ + RT_CONCAT(a_Api,_Delete)(pThis->a_UnionNm.a_PtrName); \ + RTAsn1MemFree(&pThis->Allocation, pThis->a_UnionNm.a_PtrName); \ + pThis->a_UnionNm.a_PtrName = NULL; \ + } \ + break +# define RTASN1TMPL_MEMBER_DYN_END(a_enmType, a_enmMembNm, a_Allocation) \ + } +# define RTASN1TMPL_END_SEQCORE() RTASN1TMPL_END_COMMON() +# define RTASN1TMPL_END_SETCORE() RTASN1TMPL_END_COMMON() + + +# define RTASN1TMPL_BEGIN_PCHOICE() \ + RTASN1TMPL_BEGIN_COMMON(); \ + switch (pThis->enmChoice) \ + { \ + default: break +# define RTASN1TMPL_PCHOICE_ITAG_EX(a_uTag, a_enmChoice, a_PtrName, a_Name, a_Type, a_Api, a_fClue, a_Constraints) \ + case a_enmChoice: \ + if (pThis->a_PtrName) \ + { \ + RT_CONCAT(a_Api,_Delete)(pThis->a_PtrName); \ + RTAsn1MemFree(&pThis->Allocation, pThis->a_PtrName); \ + pThis->a_PtrName = NULL; \ + } \ + break +# define RTASN1TMPL_PCHOICE_XTAG_EX(a_uTag, a_enmChoice, a_PtrTnNm, a_CtxTagN, a_Name, a_Type, a_Api, a_Constraints) \ + case a_enmChoice: \ + if (pThis->a_PtrTnNm) \ + { \ + RT_CONCAT(a_Api,_Delete)(&pThis->a_PtrTnNm->a_Name); \ + RTAsn1MemFree(&pThis->Allocation, pThis->a_PtrTnNm); \ + pThis->a_PtrTnNm = NULL; \ + } \ + break +# define RTASN1TMPL_END_PCHOICE() \ + } \ + RTASN1TMPL_END_COMMON() + + +# define RTASN1TMPL_SET_SEQ_OF_COMMON(a_ItemType, a_ItemApi) \ + RTASN1TMPL_BEGIN_COMMON(); \ + uint32_t i = pThis->cItems; \ + while (i-- > 0) \ + RT_CONCAT(a_ItemApi,_Delete)(&pThis->paItems[i]); \ + RTAsn1MemFree(&pThis->Allocation, pThis->paItems); \ + pThis->paItems = NULL; \ + RTASN1TMPL_END_COMMON() +# define RTASN1TMPL_SEQ_OF(a_ItemType, a_ItemApi) RTASN1TMPL_SET_SEQ_OF_COMMON(a_ItemType, a_ItemApi) +# define RTASN1TMPL_SET_OF(a_ItemType, a_ItemApi) RTASN1TMPL_SET_SEQ_OF_COMMON(a_ItemType, a_ItemApi) + + +#else +# error "Invalid/missing RTASN1TMPL_PASS value." +#endif + + + +/* + * Default aliases for simplified versions of macros if no specialization + * was required above. + */ +/* Non-optional members. */ +#ifndef RTASN1TMPL_MEMBER +# define RTASN1TMPL_MEMBER(a_Name, a_Type, a_Api) \ + RTASN1TMPL_MEMBER_EX(a_Name, a_Type, a_Api, RT_NOTHING) +#endif + +#ifndef RTASN1TMPL_MEMBER_UTF8_STRING_MIN_MAX +# define RTASN1TMPL_MEMBER_UTF8_STRING_MIN_MAX(a_Name) \ + RTASN1TMPL_MEMBER(a_Name, RTASN1STRING, RTAsn1String) +#endif +#ifndef RTASN1TMPL_MEMBER_UTF8_STRING +# define RTASN1TMPL_MEMBER_UTF8_STRING(a_Name) \ + RTASN1TMPL_MEMBER_UTF8_STRING_MIN_MAX(a_Name, 0, UINT32_MAX) +#endif + +#ifndef RTASN1TMPL_MEMBER_STRING_MIN_MAX +# define RTASN1TMPL_MEMBER_STRING_MIN_MAX(a_Name, a_cbMin, a_cbMax) \ + RTASN1TMPL_MEMBER(a_Name, RTASN1STRING, RTAsn1String) +#endif +#ifndef RTASN1TMPL_MEMBER_STRING +# define RTASN1TMPL_MEMBER_STRING(a_Name) \ + RTASN1TMPL_MEMBER_STRING_MIN_MAX(a_Name, 0, UINT32_MAX) +#endif +#ifndef RTASN1TMPL_MEMBER_XTAG_EX +# define RTASN1TMPL_MEMBER_XTAG_EX(a_TnNm, a_CtxTagN, a_Name, a_Type, a_Api, a_uTag, a_Constraints) \ + RTASN1TMPL_MEMBER_EX(a_TnNm.a_Name, a_Type, a_Api, a_Constraints RT_NOTHING) +#endif + +/* Any/dynamic members. */ +#ifndef RTASN1TMPL_MEMBER_DYN_BEGIN +# define RTASN1TMPL_MEMBER_DYN_BEGIN(a_enmType, a_enmMembNm, a_Allocation) do { } while (0) +#endif +#ifndef RTASN1TMPL_MEMBER_DYN_END +# define RTASN1TMPL_MEMBER_DYN_END(a_enmType, a_enmMembNm, a_Allocation) do { } while (0) +#endif +#ifndef RTASN1TMPL_MEMBER_DYN_COMMON +# define RTASN1TMPL_MEMBER_DYN_COMMON(a_UnionNm, a_PtrName, a_Type, a_Api, a_Allocation, a_enmMembNm, a_enmValue, a_IfStmt) \ + RTASN1TMPL_MEMBER(a_UnionNm.a_PtrName, a_Type, a_Api) +#endif +#ifndef RTASN1TMPL_MEMBER_DYN +# define RTASN1TMPL_MEMBER_DYN(a_UnionNm, a_PtrName, a_Type, a_Api, a_Allocation, a_enmMembNm, a_enmValue, a_WhenExpr) \ + RTASN1TMPL_MEMBER_DYN_COMMON(a_UnionNm, a_PtrName, a_Type, a_Api, a_Allocation, a_enmMembNm, a_enmValue, if (a_WhenExpr)) +#endif +#ifndef RTASN1TMPL_MEMBER_DYN_DEFAULT +# define RTASN1TMPL_MEMBER_DYN_DEFAULT(a_UnionNm, a_PtrName, a_Type, a_Api, a_Allocation, a_enmMembNm, a_enmValue) \ + RTASN1TMPL_MEMBER_DYN_COMMON(a_UnionNm, a_PtrName, a_Type, a_Api, a_Allocation, a_enmMembNm, a_enmValue, RT_NOTHING) +#endif + +/* Optional members. */ +#ifndef RTASN1TMPL_MEMBER_OPT_EX +# define RTASN1TMPL_MEMBER_OPT_EX(a_Name, a_Type, a_Api, a_Constraints) \ + RTASN1TMPL_MEMBER_EX(a_Name, a_Type, a_Api, a_Constraints RT_NOTHING) +#endif +#ifndef RTASN1TMPL_MEMBER_OPT +# define RTASN1TMPL_MEMBER_OPT(a_Name, a_Type, a_Api) \ + RTASN1TMPL_MEMBER_OPT_EX(a_Name, a_Type, a_Api, RT_NOTHING) +#endif + +#ifndef RTASN1TMPL_MEMBER_OPT_XTAG_EX +# define RTASN1TMPL_MEMBER_OPT_XTAG_EX(a_TnNm, a_CtxTagN, a_Name, a_Type, a_Api, a_uTag, a_Constraints) \ + RTASN1TMPL_MEMBER_OPT_EX(a_TnNm.a_Name, a_Type, a_Api, a_Constraints RT_NOTHING) +#endif +#ifndef RTASN1TMPL_MEMBER_OPT_XTAG +# define RTASN1TMPL_MEMBER_OPT_XTAG(a_TnNm, a_CtxTagN, a_Name, a_Type, a_Api, a_uTag) \ + RTASN1TMPL_MEMBER_OPT_XTAG_EX(a_TnNm, a_CtxTagN, a_Name, a_Type, a_Api, a_uTag, RT_NOTHING) +#endif + +#ifndef RTASN1TMPL_MEMBER_OPT_ITAG_EX +# define RTASN1TMPL_MEMBER_OPT_ITAG_EX(a_Name, a_Type, a_Api, a_uTag, a_fClue, a_Constraints) \ + RTASN1TMPL_MEMBER_OPT_EX(a_Name, a_Type, a_Api, a_Constraints RT_NOTHING) +#endif +#ifndef RTASN1TMPL_MEMBER_OPT_ITAG_UP +# define RTASN1TMPL_MEMBER_OPT_ITAG_UP(a_Name, a_Type, a_Api, a_uTag) \ + RTASN1TMPL_MEMBER_OPT_ITAG_EX(a_Name, a_Type, a_Api, a_uTag, RTASN1TMPL_ITAG_F_UP, RT_NOTHING) +#endif +#ifndef RTASN1TMPL_MEMBER_OPT_ITAG_UC +# define RTASN1TMPL_MEMBER_OPT_ITAG_UC(a_Name, a_Type, a_Api, a_uTag) \ + RTASN1TMPL_MEMBER_OPT_ITAG_EX(a_Name, a_Type, a_Api, a_uTag, RTASN1TMPL_ITAG_F_UC, RT_NOTHING) +#endif +#ifndef RTASN1TMPL_MEMBER_OPT_ITAG_CP +# define RTASN1TMPL_MEMBER_OPT_ITAG_CP(a_Name, a_Type, a_Api, a_uTag) \ + RTASN1TMPL_MEMBER_OPT_ITAG_EX(a_Name, a_Type, a_Api, a_uTag, RTASN1TMPL_ITAG_F_CP, RT_NOTHING) +#endif +#ifndef RTASN1TMPL_MEMBER_OPT_ITAG +# define RTASN1TMPL_MEMBER_OPT_ITAG(a_Name, a_Type, a_Api, a_uTag) \ + RTASN1TMPL_MEMBER_OPT_ITAG_EX(a_Name, a_Type, a_Api, a_uTag, RTASN1TMPL_ITAG_F_CC, RT_NOTHING) +#endif +#ifndef RTASN1TMPL_MEMBER_OPT_ANY +# define RTASN1TMPL_MEMBER_OPT_ANY(a_Name, a_Type, a_Api) \ + RTASN1TMPL_MEMBER_OPT_EX(a_Name, a_Type, a_Api, RT_NOTHING) +#endif + +#ifndef RTASN1TMPL_MEMBER_DEF_ITAG_EX +# define RTASN1TMPL_MEMBER_DEF_ITAG_EX(a_Name, a_Type, a_Api, a_uTag, a_fClue, a_DefVal, a_Constraints) \ + RTASN1TMPL_MEMBER_OPT_ITAG_EX(a_Name, a_Type, a_Api, a_uTag, a_fClue, a_Constraints RT_NOTHING) +#endif +#ifndef RTASN1TMPL_MEMBER_DEF_ITAG_UP +# define RTASN1TMPL_MEMBER_DEF_ITAG_UP(a_Name, a_Type, a_Api, a_uTag, a_DefVal) \ + RTASN1TMPL_MEMBER_DEF_ITAG_EX(a_Name, a_Type, a_Api, a_uTag, RTASN1TMPL_ITAG_F_UP, a_DefVal, RT_NOTHING) +#endif + +#ifndef RTASN1TMPL_MEMBER_OPT_ITAG_BITSTRING +# define RTASN1TMPL_MEMBER_OPT_ITAG_BITSTRING(a_Name, a_cMaxBits, a_uTag) \ + RTASN1TMPL_MEMBER_OPT_ITAG_EX(a_Name, RTASN1BITSTRING, RTAsn1BitString, a_uTag, RTASN1TMPL_ITAG_F_CP, \ + RTASN1TMPL_MEMBER_CONSTR_BITSTRING_MIN_MAX(a_Name, 0, a_cMaxBits, RT_NOTHING)) +#endif + +#ifndef RTASN1TMPL_MEMBER_OPT_UTF8_STRING_EX +# define RTASN1TMPL_MEMBER_OPT_UTF8_STRING_EX(a_Name, a_Constraints) \ + RTASN1TMPL_MEMBER_OPT_EX(a_Name, RTASN1STRING, RTAsn1String, a_Constraints RT_NOTHING) +#endif +#ifndef RTASN1TMPL_MEMBER_OPT_UTF8_STRING +# define RTASN1TMPL_MEMBER_OPT_UTF8_STRING(a_Name) \ + RTASN1TMPL_MEMBER_OPT_UTF8_STRING_EX(a_Name, RT_NOTHING) +#endif + +#ifndef RTASN1TMPL_MEMBER_OPT_STRING_EX +# define RTASN1TMPL_MEMBER_OPT_STRING_EX(a_Name, a_Constraints) \ + RTASN1TMPL_MEMBER_OPT_EX(a_Name, RTASN1STRING, RTAsn1String, a_Constraints RT_NOTHING) +#endif +#ifndef RTASN1TMPL_MEMBER_OPT_STRING +# define RTASN1TMPL_MEMBER_OPT_STRING(a_Name) \ + RTASN1TMPL_MEMBER_OPT_STRING_EX(a_Name, RT_NOTHING) +#endif + +/* Pointer choices. */ +#ifndef RTASN1TMPL_PCHOICE_ITAG_UP +# define RTASN1TMPL_PCHOICE_ITAG_UP(a_uTag, a_enmChoice, a_PtrName, a_Name, a_Type, a_Api) \ + RTASN1TMPL_PCHOICE_ITAG_EX(a_uTag, a_enmChoice, a_PtrName, a_Name, a_Type, a_Api, RTASN1TMPL_ITAG_F_UP, RT_NOTHING) +#endif +#ifndef RTASN1TMPL_PCHOICE_ITAG_UC +# define RTASN1TMPL_PCHOICE_ITAG_UC(a_uTag, a_enmChoice, a_PtrName, a_Name, a_Type, a_Api) \ + RTASN1TMPL_PCHOICE_ITAG_EX(a_uTag, a_enmChoice, a_PtrName, a_Name, a_Type, a_Api, RTASN1TMPL_ITAG_F_UC, RT_NOTHING) +#endif +#ifndef RTASN1TMPL_PCHOICE_ITAG_CP +# define RTASN1TMPL_PCHOICE_ITAG_CP(a_uTag, a_enmChoice, a_PtrName, a_Name, a_Type, a_Api) \ + RTASN1TMPL_PCHOICE_ITAG_EX(a_uTag, a_enmChoice, a_PtrName, a_Name, a_Type, a_Api, RTASN1TMPL_ITAG_F_CP, RT_NOTHING) +#endif +#ifndef RTASN1TMPL_PCHOICE_ITAG +# define RTASN1TMPL_PCHOICE_ITAG(a_uTag, a_enmChoice, a_PtrName, a_Name, a_Type, a_Api) \ + RTASN1TMPL_PCHOICE_ITAG_EX(a_uTag, a_enmChoice, a_PtrName, a_Name, a_Type, a_Api, RTASN1TMPL_ITAG_F_CC, RT_NOTHING) +#endif + +#ifndef RTASN1TMPL_PCHOICE_XTAG +# define RTASN1TMPL_PCHOICE_XTAG(a_uTag, a_enmChoice, a_PtrTnNm, a_CtxTagN, a_Name, a_Type, a_Api) \ + RTASN1TMPL_PCHOICE_XTAG_EX(a_uTag, a_enmChoice, a_PtrTnNm, a_CtxTagN, a_Name, a_Type, a_Api, RT_NOTHING) +#endif + + +/* + * Constraints are only used in the sanity check pass, so provide subs for the + * others passes. + */ +#ifndef RTASN1TMPL_MEMBER_CONSTR_MIN_MAX +# define RTASN1TMPL_MEMBER_CONSTR_MIN_MAX(a_Name, a_Type, a_Api, cbMin, cbMax, a_MoreConstraints) +#endif +#ifndef RTASN1TMPL_MEMBER_CONSTR_BITSTRING_MIN_MAX +# define RTASN1TMPL_MEMBER_CONSTR_BITSTRING_MIN_MAX(a_Name, cMinBits, cMaxBits, a_MoreConstraints) +#endif +#ifndef RTASN1TMPL_MEMBER_CONSTR_U64_MIN_MAX +# define RTASN1TMPL_MEMBER_CONSTR_U64_MIN_MAX(a_Name, uMin, uMax, a_MoreConstraints) +#endif +#ifndef RTASN1TMPL_MEMBER_CONSTR_PRESENT +# define RTASN1TMPL_MEMBER_CONSTR_PRESENT(a_Name, a_Api, a_MoreConstraints) +#endif + + +/* + * Stub exec hacks. + */ +#ifndef RTASN1TMPL_EXEC_DECODE +# define RTASN1TMPL_EXEC_DECODE(a_Expr) /* no semi colon allowed after this */ +#endif +#ifndef RTASN1TMPL_EXEC_CLONE +# define RTASN1TMPL_EXEC_CLONE(a_Expr) /* no semi colon allowed after this */ +#endif +#ifndef RTASN1TMPL_EXEC_CHECK_SANITY +# define RTASN1TMPL_EXEC_CHECK_SANITY(a_Expr) /* no semi colon allowed after this */ +#endif + +#define RTASN1TMPL_SET_SEQ_EXEC_CHECK_SANITY() do { } while (0) + + +/* + * Generate the requested code. + */ +#ifndef RTASN1TMPL_TEMPLATE_FILE +# error "No template file (RTASN1TMPL_TEMPLATE_FILE) is specified." +#endif +#include RTASN1TMPL_TEMPLATE_FILE + + + +/* + * Undo all the macros. + */ +#undef RTASN1TMPL_DECL +#undef RTASN1TMPL_TYPE +#undef RTASN1TMPL_EXT_NAME +#undef RTASN1TMPL_INT_NAME + +#undef RTASN1TMPL_PASS + +#undef RTASN1TMPL_BEGIN_COMMON +#undef RTASN1TMPL_END_COMMON +#undef RTASN1TMPL_BEGIN_SEQCORE +#undef RTASN1TMPL_BEGIN_SETCORE +#undef RTASN1TMPL_MEMBER +#undef RTASN1TMPL_MEMBER_EX +#undef RTASN1TMPL_MEMBER_DYN_BEGIN +#undef RTASN1TMPL_MEMBER_DYN +#undef RTASN1TMPL_MEMBER_DYN_DEFAULT +#undef RTASN1TMPL_MEMBER_DYN_COMMON +#undef RTASN1TMPL_MEMBER_DYN_END +#undef RTASN1TMPL_MEMBER_OPT +#undef RTASN1TMPL_MEMBER_OPT_EX +#undef RTASN1TMPL_MEMBER_OPT_ITAG +#undef RTASN1TMPL_MEMBER_OPT_ITAG_EX +#undef RTASN1TMPL_MEMBER_OPT_ITAG_CP +#undef RTASN1TMPL_MEMBER_OPT_ITAG_UC +#undef RTASN1TMPL_MEMBER_OPT_ITAG_UP +#undef RTASN1TMPL_MEMBER_OPT_ITAG_BITSTRING +#undef RTASN1TMPL_MEMBER_OPT_UTF8_STRING +#undef RTASN1TMPL_MEMBER_OPT_UTF8_STRING_EX +#undef RTASN1TMPL_MEMBER_OPT_XTAG +#undef RTASN1TMPL_MEMBER_OPT_XTAG_EX +#undef RTASN1TMPL_MEMBER_OPT_ANY +#undef RTASN1TMPL_MEMBER_DEF_ITAG_UP +#undef RTASN1TMPL_MEMBER_DEF_ITAG_EX +#undef RTASN1TMPL_END_SEQCORE +#undef RTASN1TMPL_END_SETCORE + +#undef RTASN1TMPL_BEGIN_PCHOICE +#undef RTASN1TMPL_PCHOICE_ITAG +#undef RTASN1TMPL_PCHOICE_ITAG_UP +#undef RTASN1TMPL_PCHOICE_ITAG_CP +#undef RTASN1TMPL_PCHOICE_ITAG_EX +#undef RTASN1TMPL_PCHOICE_XTAG +#undef RTASN1TMPL_PCHOICE_XTAG_EX +#undef RTASN1TMPL_END_PCHOICE + +#undef RTASN1TMPL_SET_SEQ_OF_COMMON +#undef RTASN1TMPL_SEQ_OF +#undef RTASN1TMPL_SET_OF + +#undef RTASN1TMPL_VTABLE_FN_ENCODE_PREP +#undef RTASN1TMPL_VTABLE_FN_ENCODE_WRITE + +#undef RTASN1TMPL_MEMBER_CONSTR_MIN_MAX +#undef RTASN1TMPL_MEMBER_CONSTR_BITSTRING_MIN_MAX +#undef RTASN1TMPL_MEMBER_CONSTR_U64_MIN_MAX +#undef RTASN1TMPL_MEMBER_CONSTR_PRESENT + +#undef RTASN1TMPL_SANITY_CHECK_EXPR + +#undef RTASN1TMPL_EXEC_DECODE +#undef RTASN1TMPL_EXEC_CLONE +#undef RTASN1TMPL_EXEC_CHECK_SANITY + +#undef RTASN1TMPL_SET_SEQ_EXEC_CHECK_SANITY + diff -Nru virtualbox-4.1.12-dfsg/include/iprt/asn1-generator-sanity.h virtualbox-4.1.44-dfsg/include/iprt/asn1-generator-sanity.h --- virtualbox-4.1.12-dfsg/include/iprt/asn1-generator-sanity.h 1970-01-01 00:00:00.000000000 +0000 +++ virtualbox-4.1.44-dfsg/include/iprt/asn1-generator-sanity.h 2015-11-11 15:06:02.000000000 +0000 @@ -0,0 +1,29 @@ +/** @file + * IPRT - ASN.1 Code Generator, the Sanity Checking. + */ + +/* + * Copyright (C) 2006-2014 Oracle Corporation + * + * This file is part of VirtualBox Open Source Edition (OSE), as + * available from http://www.virtualbox.org. This file is free software; + * you can redistribute it and/or modify it under the terms of the GNU + * General Public License (GPL) as published by the Free Software + * Foundation, in version 2 as it comes in the "COPYING" file of the + * VirtualBox OSE distribution. VirtualBox OSE is distributed in the + * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind. + * + * The contents of this file may alternatively be used under the terms + * of the Common Development and Distribution License Version 1.0 + * (CDDL) only, as it comes in the "COPYING.CDDL" file of the + * VirtualBox OSE distribution, in which case the provisions of the + * CDDL are applicable instead of those of the GPL. + * + * You may elect to license modified versions of this file under the + * terms and conditions of either the GPL or the CDDL or both. + */ + +#define RTASN1TMPL_PASS RTASN1TMPL_PASS_CHECK_SANITY +#include + + diff -Nru virtualbox-4.1.12-dfsg/include/iprt/asn1.h virtualbox-4.1.44-dfsg/include/iprt/asn1.h --- virtualbox-4.1.12-dfsg/include/iprt/asn1.h 1970-01-01 00:00:00.000000000 +0000 +++ virtualbox-4.1.44-dfsg/include/iprt/asn1.h 2015-11-11 15:06:02.000000000 +0000 @@ -0,0 +1,2055 @@ +/** @file + * IPRT - Abstract Syntax Notation One (ASN.1). + */ + +/* + * Copyright (C) 2006-2014 Oracle Corporation + * + * This file is part of VirtualBox Open Source Edition (OSE), as + * available from http://www.virtualbox.org. This file is free software; + * you can redistribute it and/or modify it under the terms of the GNU + * General Public License (GPL) as published by the Free Software + * Foundation, in version 2 as it comes in the "COPYING" file of the + * VirtualBox OSE distribution. VirtualBox OSE is distributed in the + * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind. + * + * The contents of this file may alternatively be used under the terms + * of the Common Development and Distribution License Version 1.0 + * (CDDL) only, as it comes in the "COPYING.CDDL" file of the + * VirtualBox OSE distribution, in which case the provisions of the + * CDDL are applicable instead of those of the GPL. + * + * You may elect to license modified versions of this file under the + * terms and conditions of either the GPL or the CDDL or both. + */ + +#ifndef ___iprt_asn1_h +#define ___iprt_asn1_h + +#include +#include +#include +#include + + +RT_C_DECLS_BEGIN + +/** @defgroup grp_rt_asn1 RTAsn1 - Abstract Syntax Notation One + * @ingroup grp_rt + * @{ + */ + + +/** Pointer to ASN.1 allocation information. */ +typedef struct RTASN1ALLOCATION *PRTASN1ALLOCATION; +/** Pointer to a ASN.1 byte decoder cursor. */ +typedef struct RTASN1CURSOR *PRTASN1CURSOR; + + +/** + * Sketch of a custom ASN.1 allocator virtual method table. + * + * Any information required by the allocator should be associated with this + * structure, i.e. use this as a kind of parent class. This saves storage in + * RTASN1ALLOCATORINFO and possibly reduces the number of parameters by one. + */ +typedef struct RTASN1ALLOCATORVTABLE +{ + /** + * Free a chunk of memory allocated by this allocator. + * + * @returns IPRT status code. + * @param pThis Pointer to the vtable structure. + * @param pAllocation Pointer to the allocation info structure. + * @param pv Pointer to the memory that shall be freed. Not NULL. + */ + DECLCALLBACKMEMBER(void, pfnFree)(struct RTASN1ALLOCATORVTABLE const *pThis, PRTASN1ALLOCATION pAllocation, + void *pv); + /** + * Allocates a chunk of memory, all initialized to zero. + * + * @returns IPRT status code. + * @param pThis Pointer to the vtable structure. + * @param pAllocation Pointer to the allocation info structure. + * @param ppv Where to store the pointer on success. + * @param cb The minimum number of bytes to allocate. The actual + * number of bytes allocated shall be stored in + * pInfo->cbAllocated on success. + */ + DECLCALLBACKMEMBER(int, pfnAlloc)(struct RTASN1ALLOCATORVTABLE const *pThis, PRTASN1ALLOCATION pAllocation, + void **ppv, size_t cb); + /** + * Reallocates a memory allocation. + * + * New memory does not need to be initialized, the caller takes care of that. + * + * This will not need to deal with free (@a cbNew == 0) or the initial + * allocation (@a pvOld == NULL), those calls will be directed to pfnFree and + * pfnAlloc respectively. + * + * @returns IPRT status code. + * @param pThis Pointer to the vtable structure. + * @param pAllocation Pointer to the allocation info structure. + * @param pvOld Pointer to the current allocation. Shall remain + * valid on failure, but may be invalid on success. + * @param ppvNew Where to store the pointer on success. Shall not be + * touched, except on successful returns. + * @param cbNew The new minimum allocation size. The actual number + * of bytes allocated shall be stored in + * pInfo->cbAllocated on success. + */ + DECLCALLBACKMEMBER(int, pfnRealloc)(struct RTASN1ALLOCATORVTABLE const *pThis, PRTASN1ALLOCATION pAllocation, + void *pvOld, void **ppvNew, size_t cbNew); +} RTASN1ALLOCATORVTABLE; +/** Pointer to an ASN.1 allocator vtable. */ +typedef RTASN1ALLOCATORVTABLE *PRTASN1ALLOCATORVTABLE; +/** Pointer to a const ASN.1 allocator vtable. */ +typedef RTASN1ALLOCATORVTABLE const *PCRTASN1ALLOCATORVTABLE; + +/** The default ASN.1 allocator. */ +extern RTDATADECL(RTASN1ALLOCATORVTABLE const) g_RTAsn1DefaultAllocator; + +/** The Electric Fence ASN.1 allocator. */ +extern RTDATADECL(RTASN1ALLOCATORVTABLE const) g_RTAsn1EFenceAllocator; + + +/** + * Allocation information. + */ +typedef struct RTASN1ALLOCATION +{ + /** The number of bytes currently allocated. */ + uint32_t cbAllocated; + /** Number of realloc calls. */ + uint16_t cReallocs; + /** Reserved / padding. */ + uint16_t uReserved0; + /** Allocator vtable, NULL for the default allocator. */ + PCRTASN1ALLOCATORVTABLE pAllocator; +} RTASN1ALLOCATION; + + +/** + * Grow an array by zero initialized memory. + * + * @returns IPRT status code. + * @param pAllocation The allocation record (initialized by + * RTAsn1CursorInitAllocation or similar). + * @param ppvArray Pointer to the variable pointing to the array. This is + * both input and output. Remains valid on failure. + * @param cbEntry The size of an array entry. + * @param cCurrent The current entry count. (Relevant for zero + * initialization of the new entries.) + * @param cNew The new entry count. + */ +RTDECL(int) RTAsn1MemGrowArray(PRTASN1ALLOCATION pAllocation, void **ppvArray, size_t cbEntry, + uint32_t cCurrent, uint32_t cNew); + +/** + * Allocate a block of zero initialized memory. + * + * @returns IPRT status code. + * @param pAllocation The allocation record (initialized by + * RTAsn1CursorInitAllocation or similar). + * @param ppvMem Where to return the pointer to the block. + * @param cbMem The minimum number of bytes to allocate. + */ +RTDECL(int) RTAsn1MemAllocZ(PRTASN1ALLOCATION pAllocation, void **ppvMem, size_t cbMem); + +/** + * Allocates a block of memory initialized to the content of @a pvSrc. + * + * @returns IPRT status code. + * @param pAllocation The allocation record (initialized by + * RTAsn1CursorInitAllocation or similar). + * @param ppvMem Where to return the pointer to the block. + * @param pvSrc The source memory. + * @param cbMem The minimum number of bytes to allocate. + */ +RTDECL(int) RTAsn1MemDup(PRTASN1ALLOCATION pAllocation, void **ppvMem, void const *pvSrc, size_t cbMem); + +/** + * Free a memory block. + * + * @param pAllocation The allocation record (initialized by + * RTAsn1CursorInitAllocation or similar). + * @param pv The memory block to free. NULL will be ignored. + */ +RTDECL(void) RTAsn1MemFree(PRTASN1ALLOCATION pAllocation, void *pv); + +/** + * Initalize an allocation. + * + * @param pAllocation The allocation record (initialized by + * RTAsn1CursorInitAllocation or similar). + * @param pAllocator The allocator + */ +RTDECL(PRTASN1ALLOCATION) RTAsn1MemInitAllocation(PRTASN1ALLOCATION pAllocation, PCRTASN1ALLOCATORVTABLE pAllocator); + +RTDECL(int) RTAsn1ContentAllocZ(struct RTASN1CORE *pAsn1Core, size_t cb, PCRTASN1ALLOCATORVTABLE pAllocator); +RTDECL(int) RTAsn1ContentDup(struct RTASN1CORE *pAsn1Core, void const *pvSrc, size_t cbSrc, PCRTASN1ALLOCATORVTABLE pAllocator); +RTDECL(int) RTAsn1ContentReallocZ(struct RTASN1CORE *pAsn1Core, size_t cb, PCRTASN1ALLOCATORVTABLE pAllocator); +RTDECL(void) RTAsn1ContentFree(struct RTASN1CORE *pAsn1Core); + + + +/** Pointer to a core ASN.1 encoding info structure. */ +typedef struct RTASN1CORE *PRTASN1CORE; +/** Pointer to a const core ASN.1 encoding info structure. */ +typedef struct RTASN1CORE const *PCRTASN1CORE; + + +/** + * ASN.1 object enumeration callback. + * + * @returns IPRT status code. VINF_SUCCESS continues the enumberation, all + * others quit it and is returned to the caller's caller. + * @param pAsn1Core The ASN.1 object we're called back about. + * @param pszName The member name. Array member names ends with + * '[#]'. + * @param uDepth The current depth. + * @param pvUser Callback user parameter. + */ +typedef DECLCALLBACK(int) FNRTASN1ENUMCALLBACK(struct RTASN1CORE *pAsn1Core, const char *pszName, uint32_t uDepth, void *pvUser); +/** Pointer to an ASN.1 object enumeration callback. */ +typedef FNRTASN1ENUMCALLBACK *PFNRTASN1ENUMCALLBACK; + +/** + * ASN.1 object encoding writer callback. + * + * @returns IPRT status code. + * @param pbBuf Pointer to the bytes to output. + * @param cbToWrite The number of bytes to write. + * @param pvUser Callback user parameter. + * @param pErrInfo Where to store extended error info. Optional. + */ +typedef DECLCALLBACK(int) FNRTASN1ENCODEWRITER(const void *pvBuf, size_t cbToWrite, void *pvUser, PRTERRINFO pErrInfo); +/** Pointer to an ASN.1 encoding writer callback. */ +typedef FNRTASN1ENCODEWRITER *PFNRTASN1ENCODEWRITER; + +/** @name ASN.1 Vtable Method Types + * @{ */ + +/** + * Destructor. + * + * RTAsn1Destroy will first destroy all children by recursive calls to pfnEnum, + * afterwards it will call this method to release any memory or other resources + * associated with this object. The memory backing the object structure shall + * not be freed by this method. + * + * @param pThisCore Pointer to the ASN.1 core to destroy. + */ +typedef DECLCALLBACK(void) FNRTASN1COREVTDTOR(PRTASN1CORE pThisCore); +/** Pointer to a FNRTASN1COREVTDTOR method. */ +typedef FNRTASN1COREVTDTOR *PFNRTASN1COREVTDTOR; + +/** + * Enumerate members (not necessary for primitive objects). + * + * @returns IPRT status code, any non VINF_SUCCESS value stems from pfnCallback. + * @param pThisCore Pointer to the ASN.1 core to enumerate members of. + * @param pfnCallback The callback. + * @param uDepth The depth of this object. Children are at +1. + * @param pvUser Callback user argument. + */ +typedef DECLCALLBACK(int) FNRTASN1COREVTENUM(PRTASN1CORE pThisCore, PFNRTASN1ENUMCALLBACK pfnCallback, + uint32_t uDepth, void *pvUser); +/** Pointer to a FNRTASN1COREVTENUM method. */ +typedef FNRTASN1COREVTENUM *PFNRTASN1COREVTENUM; + +/** + * Clone method. + * + * @param pThisCore Pointer to the ASN.1 core to initialize as a clone + * of pSrcClone. (The caller is responsible for making + * sure there is sufficent space and such.) + * @param pSrcCore The object to clone. + * @param pAllocator The allocator to use. + */ +typedef DECLCALLBACK(int) FNRTASN1COREVTCLONE(PRTASN1CORE pThisCore, PCRTASN1CORE pSrcCore, PCRTASN1ALLOCATORVTABLE pAllocator); +/** Pointer to a FNRTASN1COREVTCLONE method. */ +typedef FNRTASN1COREVTCLONE *PFNRTASN1COREVTCLONE; + +/** + * Compare method. + * + * The caller makes sure both cores are present and have the same Vtable. + * + * @returns 0 if equal, -1 if @a pLeft is smaller, 1 if @a pLeft is larger. + * @param pLeftCore Pointer to the ASN.1 core of the left side object. + * @param pRightCore Pointer to the ASN.1 core of the right side object. + */ +typedef DECLCALLBACK(int) FNRTASN1COREVTCOMPARE(PCRTASN1CORE pLeftCore, PCRTASN1CORE pRightCore); +/** Pointer to a FNRTASN1COREVTCOMPARE method. */ +typedef FNRTASN1COREVTCOMPARE *PFNRTASN1COREVTCOMPARE; + +/** + * Check sanity method. + * + * @returns IPRT status code. + * @param pThisCore Pointer to the ASN.1 core of the object to check out. + * @param fFlags See RTASN1_CHECK_SANITY_F_XXX. + * @param pszErrInfo Where to return additional error details. Optional. + * @param pszErrorTag Tag for the additional error details. + */ +typedef DECLCALLBACK(int) FNRTASN1COREVTCHECKSANITY(PCRTASN1CORE pThisCore, uint32_t fFlags, + PRTERRINFO pErrInfo, const char *pszErrorTag); +/** Pointer to a FNRTASN1COREVTCHECKSANITY method. */ +typedef FNRTASN1COREVTCHECKSANITY *PFNRTASN1COREVTCHECKSANITY; + +/** + * Optional encoding preparations. + * + * On successful return, the pThisCore->cb value shall be valid and up to date. + * Will be called for any present object, including ones with default values and + * similar. + * + * @returns IPRT status code + * @param pThisCore Pointer to the ASN.1 core to enumerate members of. + * @param fFlags Encoding flags, RTASN1ENCODE_F_XXX. + * @param pErrInfo Where to return extra error information. Optional. + */ +typedef DECLCALLBACK(int) FNRTASN1COREVTENCODEPREP(PRTASN1CORE pThisCore, uint32_t fFlags, PRTERRINFO pErrInfo); +/** Pointer to a FNRTASN1COREVTENCODEWRITE method. */ +typedef FNRTASN1COREVTENCODEPREP *PFNRTASN1COREVTENCODEPREP; + +/** + * Optional encoder writer. + * + * This writes the header as well as all the content. Will be called for any + * present object, including ones with default values and similar. + * + * @returns IPRT status code. + * @param pThisCore Pointer to the ASN.1 core to enumerate members of. + * @param fFlags Encoding flags, RTASN1ENCODE_F_XXX. + * @param pfnWriter The output writer function. + * @param pvUser The user context for the writer function. + * @param pErrInfo Where to return extra error information. Optional. + */ +typedef DECLCALLBACK(int) FNRTASN1COREVTENCODEWRITE(PRTASN1CORE pThisCore, uint32_t fFlags, PFNRTASN1ENCODEWRITER pfnWriter, + void *pvUser, PRTERRINFO pErrInfo); +/** Pointer to a FNRTASN1COREVTENCODEWRITE method. */ +typedef FNRTASN1COREVTENCODEWRITE *PFNRTASN1COREVTENCODEWRITE; +/** @} */ + +/** Mask of common flags. These will be propagated during sanity checking. + * Bits not in this mask are type specfic. */ +#define RTASN1_CHECK_SANITY_F_COMMON_MASK UINT32_C(0xffff0000) + +/** + * ASN.1 core vtable. + */ +typedef struct RTASN1COREVTABLE +{ + /** The name. */ + const char *pszName; + /** Size of the structure. */ + uint32_t cbStruct; + /** The default tag, UINT8_MAX if not applicable. */ + uint8_t uDefaultTag; + /** The default class and flags. */ + uint8_t fDefaultClass; + /** Reserved for later / alignment. */ + uint16_t uReserved; + /** @copydoc FNRTASN1COREVTDTOR */ + PFNRTASN1COREVTDTOR pfnDtor; + /** @copydoc FNRTASN1COREVTENUM */ + PFNRTASN1COREVTENUM pfnEnum; + /** @copydoc FNRTASN1COREVTCLONE */ + PFNRTASN1COREVTCLONE pfnClone; + /** @copydoc FNRTASN1COREVTCOMPARE */ + PFNRTASN1COREVTCOMPARE pfnCompare; + /** @copydoc FNRTASN1COREVTCHECKSANITY */ + PFNRTASN1COREVTCHECKSANITY pfnCheckSanity; + /** @copydoc FNRTASN1COREVTENCODEPREP */ + PFNRTASN1COREVTENCODEPREP pfnEncodePrep; + /** @copydoc FNRTASN1COREVTENUM */ + PFNRTASN1COREVTENCODEWRITE pfnEncodeWrite; +} RTASN1COREVTABLE; +/** Pointer to an ASN.1 allocator vtable. */ +typedef struct RTASN1COREVTABLE *PRTASN1COREVTABLE; +/** Pointer to a const ASN.1 allocator vtable. */ +typedef RTASN1COREVTABLE const *PCRTASN1COREVTABLE; + + +/** @name Helper macros for prototyping standard functions for an ASN.1 type. + * @{ */ +#define RTASN1TYPE_STANDARD_PROTOTYPES_NO_GET_CORE(a_TypeNm, a_DeclMacro, a_ImplExtNm) \ + a_DeclMacro(int) RT_CONCAT(a_ImplExtNm,_Init)(RT_CONCAT(P,a_TypeNm) pThis, PCRTASN1ALLOCATORVTABLE pAllocator); \ + a_DeclMacro(int) RT_CONCAT(a_ImplExtNm,_Clone)(RT_CONCAT(P,a_TypeNm) pThis, RT_CONCAT(PC,a_TypeNm) pSrc, \ + PCRTASN1ALLOCATORVTABLE pAllocator); \ + a_DeclMacro(void) RT_CONCAT(a_ImplExtNm,_Delete)(RT_CONCAT(P,a_TypeNm) pThis); \ + a_DeclMacro(int) RT_CONCAT(a_ImplExtNm,_Enum)(RT_CONCAT(P,a_TypeNm) pThis, PFNRTASN1ENUMCALLBACK pfnCallback, \ + uint32_t uDepth, void *pvUser); \ + a_DeclMacro(int) RT_CONCAT(a_ImplExtNm,_Compare)(RT_CONCAT(PC,a_TypeNm) pLeft, RT_CONCAT(PC,a_TypeNm) pRight); \ + a_DeclMacro(int) RT_CONCAT(a_ImplExtNm,_DecodeAsn1)(PRTASN1CURSOR pCursor, uint32_t fFlags, RT_CONCAT(P,a_TypeNm) pThis,\ + const char *pszErrorTag); \ + a_DeclMacro(int) RT_CONCAT(a_ImplExtNm,_CheckSanity)(RT_CONCAT(PC,a_TypeNm) pThis, uint32_t fFlags, \ + PRTERRINFO pErrInfo, const char *pszErrorTag) + + +/** @name Helper macros for prototyping standard functions for an ASN.1 type. + * @{ */ +#define RTASN1TYPE_STANDARD_PROTOTYPES(a_TypeNm, a_DeclMacro, a_ImplExtNm, a_Asn1CoreNm) \ + DECL_FORCE_INLINE(PRTASN1CORE) RT_CONCAT(a_ImplExtNm,_GetAsn1Core)(RT_CONCAT(PC,a_TypeNm) pThis) \ + { return (PRTASN1CORE)&pThis->a_Asn1CoreNm; } \ + DECLINLINE(bool) RT_CONCAT(a_ImplExtNm,_IsPresent)(RT_CONCAT(PC,a_TypeNm) pThis) \ + { return pThis && RTASN1CORE_IS_PRESENT(&pThis->a_Asn1CoreNm); } \ + RTASN1TYPE_STANDARD_PROTOTYPES_NO_GET_CORE(a_TypeNm, a_DeclMacro, a_ImplExtNm) + + +/** Aliases two ASN.1 types, no method aliases. */ +#define RTASN1TYPE_ALIAS_TYPE_ONLY(a_TypeNm, a_AliasType) \ + typedef a_AliasType a_TypeNm; \ + typedef a_TypeNm *RT_CONCAT(P,a_TypeNm); \ + typedef a_TypeNm const *RT_CONCAT(PC,a_TypeNm) + +/** Aliases two ASN.1 types and methods. */ +#define RTASN1TYPE_ALIAS(a_TypeNm, a_AliasType, a_ImplExtNm, a_AliasExtNm) \ + typedef a_AliasType a_TypeNm; \ + typedef a_TypeNm *RT_CONCAT(P,a_TypeNm); \ + \ + DECLINLINE(PRTASN1CORE) RT_CONCAT(a_ImplExtNm,_GetAsn1Core)(a_TypeNm const *pThis) \ + { return RT_CONCAT(a_AliasExtNm,_GetAsn1Core)(pThis); } \ + DECLINLINE(bool) RT_CONCAT(a_ImplExtNm,_IsPresent)(a_TypeNm const *pThis) \ + { return RT_CONCAT(a_AliasExtNm,_IsPresent)(pThis); } \ + \ + DECLINLINE(int) RT_CONCAT(a_ImplExtNm,_Init)(RT_CONCAT(P,a_TypeNm) pThis, PCRTASN1ALLOCATORVTABLE pAllocator) \ + { return RT_CONCAT(a_AliasExtNm,_Init)(pThis, pAllocator); } \ + DECLINLINE(int) RT_CONCAT(a_ImplExtNm,_Clone)(RT_CONCAT(P,a_TypeNm) pThis, a_TypeNm const *pSrc, \ + PCRTASN1ALLOCATORVTABLE pAllocator) \ + { return RT_CONCAT(a_AliasExtNm,_Clone)(pThis, pSrc, pAllocator); } \ + DECLINLINE(void) RT_CONCAT(a_ImplExtNm,_Delete)(RT_CONCAT(P,a_TypeNm) pThis) \ + { RT_CONCAT(a_AliasExtNm,_Delete)(pThis); } \ + DECLINLINE(int) RT_CONCAT(a_ImplExtNm,_Enum)(a_TypeNm *pThis, PFNRTASN1ENUMCALLBACK pfnCallback, \ + uint32_t uDepth, void *pvUser) \ + { return RT_CONCAT(a_AliasExtNm,_Enum)(pThis, pfnCallback, uDepth, pvUser); } \ + DECLINLINE(int) RT_CONCAT(a_ImplExtNm,_Compare)(a_TypeNm const *pLeft, a_TypeNm const *pRight) \ + { return RT_CONCAT(a_AliasExtNm,_Compare)(pLeft, pRight); } \ + DECLINLINE(int) RT_CONCAT(a_ImplExtNm,_DecodeAsn1)(PRTASN1CURSOR pCursor, uint32_t fFlags, RT_CONCAT(P,a_TypeNm) pThis,\ + const char *pszErrorTag) \ + { return RT_CONCAT(a_AliasExtNm,_DecodeAsn1)(pCursor, fFlags, pThis, pszErrorTag); } \ + DECLINLINE(int) RT_CONCAT(a_ImplExtNm,_CheckSanity)(a_TypeNm const *pThis, uint32_t fFlags, \ + PRTERRINFO pErrInfo, const char *pszErrorTag) \ + { return RT_CONCAT(a_AliasExtNm,_CheckSanity)(pThis, fFlags, pErrInfo, pszErrorTag); } \ + \ + typedef a_TypeNm const *RT_CONCAT(PC,a_TypeNm) + +/** @} */ + + +/** + * Core ASN.1 structure for storing encoding details and data location. + * + * This is used as a 'parent' for all other decoded ASN.1 based structures. + */ +typedef struct RTASN1CORE +{ + /** The tag. + * @remarks 32-bit should be enough for everyone... We don't currently + * implement decoding tags larger than 30 anyway. :-) */ + uint32_t uTag; + /** Tag class and flags (ASN1_TAGCLASS_XXX and ASN1_TAGFLAG_XXX). */ + uint8_t fClass; + /** The real tag value for IMPLICT tag overrides. */ + uint8_t uRealTag; + /** The real class value for IMPLICT tag overrides. */ + uint8_t fRealClass; + /** The size of the tag and length ASN.1 header. */ + uint8_t cbHdr; + /** Length. */ + uint32_t cb; + /** IPRT flags (RTASN1CORE_F_XXX). */ + uint32_t fFlags; + /** Pointer to the data. + * After decoding this generally points to the encoded data content. When + * preparting something for encoding or otherwise constructing things in memory, + * this generally points heap memory or read-only constants. + * @sa RTAsn1ContentAllocZ, RTAsn1ContentReallocZ, RTAsn1ContentDup, + * RTAsn1ContentFree. */ + RTCPTRUNION uData; + /** Pointer to the virtual method table for this object. Optional. */ + PCRTASN1COREVTABLE pOps; +} RTASN1CORE; +/** The Vtable for a RTASN1CORE structure when not in some way use used as a + * parent type/class. */ +extern RTDATADECL(RTASN1COREVTABLE const) g_RTAsn1Core_Vtable; + +RTASN1TYPE_STANDARD_PROTOTYPES_NO_GET_CORE(RTASN1CORE, RTDECL, RTAsn1Core); + +/** @name RTASN1CORE_F_XXX - Flags for RTASN1CORE::fFlags + * @{ */ +/** Present/valid. */ +#define RTASN1CORE_F_PRESENT RT_BIT_32(0) +/** Not present in stream, using default value. */ +#define RTASN1CORE_F_DEFAULT RT_BIT_32(1) +/** The tag was overriden by an implict context tag or some such thing, + * RTASN1CORE::uImplicitTag hold the universal tag value if one exists. */ +#define RTASN1CORE_F_TAG_IMPLICIT RT_BIT_32(2) +/** Primitive tag with the corresponding RTASN1XXX struct. */ +#define RTASN1CORE_F_PRIMITE_TAG_STRUCT RT_BIT_32(3) +/** Dummy node typically used with choices, has children, not encoded, must be + * ignored. */ +#define RTASN1CORE_F_DUMMY RT_BIT_32(4) +/** Allocated content (pointed to by uData). + * The content should is still be considered 104% read-only by anyone other + * than then type methods (pOps and associates). */ +#define RTASN1CORE_F_ALLOCATED_CONTENT RT_BIT_32(5) +/** Decoded content (pointed to by uData). + * Mutually exclusive with RTASN1CORE_F_ALLOCATED_CONTENT. If neither is + * set, uData might be NULL or point to some shared static memory for + * frequently used values. */ +#define RTASN1CORE_F_DECODED_CONTENT RT_BIT_32(6) +/** @} */ + + +/** Check s whether an ASN.1 core object present in some way (default data, + * decoded data, ...). */ +#define RTASN1CORE_IS_PRESENT(a_pAsn1Core) ( RT_BOOL((a_pAsn1Core)->fFlags) ) + +/** Check s whether an ASN.1 core object is a dummy object (and is present). */ +#define RTASN1CORE_IS_DUMMY(a_pAsn1Core) ( RT_BOOL((a_pAsn1Core)->fFlags & RTASN1CORE_F_DUMMY) ) + +/** + * Calculates pointer to the raw ASN.1 record. + * + * ASSUMES that it's decoded content and that cbHdr and uData are both valid. + * + * @returns Byte pointer to the first tag byte. + * @param a_pAsn1Core The ASN.1 core. + */ +#define RTASN1CORE_GET_RAW_ASN1_PTR(a_pAsn1Core) ( (a_pAsn1Core)->uData.pu8 - (a_pAsn1Core)->cbHdr ) + +/** + * Calculates the length of the raw ASN.1 record to go with the + * RTASN1CORE_GET_RAW_ASN1_PTR() result. + * + * ASSUMES that it's decoded content and that cbHdr and uData are both valid. + * + * @returns Size in bytes (uint32_t). + * @param a_pAsn1Core The ASN.1 core. + */ +#define RTASN1CORE_GET_RAW_ASN1_SIZE(a_pAsn1Core) ( (a_pAsn1Core)->cbHdr + (a_pAsn1Core)->cb ) + +/** + * Retrievs the tag or implicit tag depending on the RTASN1CORE_F_TAG_IMPLICIT + * flag. + * + * @returns The ASN.1 tag of the object. + * @param a_pAsn1Core The ASN.1 core. + */ +#define RTASN1CORE_GET_TAG(a_pAsn1Core) ( !((a_pAsn1Core)->fFlags & RTASN1CORE_F_TAG_IMPLICIT) ? (a_pAsn1Core)->uTag : (a_pAsn1Core)->uRealTag ) + + +DECL_FORCE_INLINE(PRTASN1CORE) RTAsn1Core_GetAsn1Core(PCRTASN1CORE pThis) +{ + return (PRTASN1CORE)pThis; +} + + +DECL_FORCE_INLINE(bool) RTAsn1Core_IsPresent(PCRTASN1CORE pThis) +{ + return pThis && RTASN1CORE_IS_PRESENT(pThis); +} + + +RTDECL(int) RTAsn1Core_InitEx(PRTASN1CORE pAsn1Core, uint32_t uTag, uint8_t fClass, PCRTASN1COREVTABLE pOps, uint32_t fFlags); +/** + * Initialize the ASN.1 core object representation to a default value. + * + * @returns VINF_SUCCESS + * @param pAsn1Core The ASN.1 core. + * @param uTag The tag number. + * @param fClass The tag class and flags. + */ +RTDECL(int) RTAsn1Core_InitDefault(PRTASN1CORE pAsn1Core, uint32_t uTag, uint8_t fClass); +RTDECL(int) RTAsn1Core_CloneContent(PRTASN1CORE pThis, PCRTASN1CORE pSrc, PCRTASN1ALLOCATORVTABLE pAllocator); +RTDECL(int) RTAsn1Core_CloneNoContent(PRTASN1CORE pThis, PCRTASN1CORE pSrc); +RTDECL(int) RTAsn1Core_SetTagAndFlags(PRTASN1CORE pAsn1Core, uint32_t uTag, uint8_t fClass); +RTDECL(int) RTAsn1Core_ChangeTag(PRTASN1CORE pAsn1Core, uint32_t uTag); +RTDECL(void) RTAsn1Core_ResetImplict(PRTASN1CORE pThis); +RTDECL(int) RTAsn1Core_CompareEx(PCRTASN1CORE pLeft, PCRTASN1CORE pRight, bool fIgnoreTagAndClass); + + +/** + * Dummy ASN.1 object for use in choices and similar non-sequence structures. + * + * This allows hooking up destructors, enumerators and such, as well as not + * needing custom code for sequence-of / set-of collections. + */ +typedef struct RTASN1DUMMY +{ + /** Core ASN.1. */ + RTASN1CORE Asn1Core; +} RTASN1DUMMY; +/** Pointer to a dummy record. */ +typedef RTASN1DUMMY *PRTASN1DUMMY; + + +/** + * Initalizes a dummy ASN.1 object. + * + * @returns VINF_SUCCESS. + * @param pThis The dummy object. + */ +RTDECL(int) RTAsn1Dummy_InitEx(PRTASN1DUMMY pThis); + +/** + * Standard compliant initalizer. + * + * @returns VINF_SUCCESS. + * @param pThis The dummy object. + * @param pAllocator Ignored. + */ +DECLINLINE(int) RTAsn1Dummy_Init(PRTASN1DUMMY pThis, PCRTASN1ALLOCATORVTABLE pAllocator) +{ + return RTAsn1Dummy_InitEx(pThis); +} + + +/** + * ASN.1 sequence core (IPRT representation). + */ +typedef struct RTASN1SEQUENCECORE +{ + /** Core ASN.1 encoding details. */ + RTASN1CORE Asn1Core; +} RTASN1SEQUENCECORE; +/** Pointer to an ASN.1 sequence core (IPRT representation). */ +typedef RTASN1SEQUENCECORE *PRTASN1SEQUENCECORE; +/** Pointer to a const ASN.1 sequence core (IPRT representation). */ +typedef RTASN1SEQUENCECORE const *PCRTASN1SEQUENCECORE; + +RTDECL(int) RTAsn1SequenceCore_Init(PRTASN1SEQUENCECORE pSeqCore, PCRTASN1COREVTABLE pVtable); +RTDECL(int) RTAsn1SequenceCore_Clone(PRTASN1SEQUENCECORE pSeqCore, PCRTASN1COREVTABLE pVtable, PCRTASN1SEQUENCECORE pSrc); + +/** + * ASN.1 sequence-of core (IPRT representation). + */ +#if 0 +typedef struct RTASN1SEQOFCORE +{ + /** Core ASN.1 encoding details. */ + RTASN1CORE Asn1Core; +} RTASN1SEQUENCECORE; +/** Pointer to an ASN.1 sequence-of core (IPRT representation). */ +typedef RTASN1SEQUENCECORE *PRTASN1SEQUENCECORE; +/** Pointer to a const ASN.1 sequence-of core (IPRT representation). */ +typedef RTASN1SEQUENCECORE const *PCRTASN1SEQUENCECORE; +#else +# define RTASN1SEQOFCORE RTASN1SEQUENCECORE +# define PRTASN1SEQOFCORE PRTASN1SEQUENCECORE +# define PCRTASN1SEQOFCORE PCRTASN1SEQUENCECORE +#endif +RTDECL(int) RTAsn1SeqOfCore_Init(PRTASN1SEQOFCORE pThis, PCRTASN1COREVTABLE pVtable); +RTDECL(int) RTAsn1SeqOfCore_Clone(PRTASN1SEQOFCORE pThis, PCRTASN1COREVTABLE pVtable, PCRTASN1SEQOFCORE pSrc); + + +/** Defines the typedefs and prototypes for a generic sequence-of type. */ +#define RTASN1_IMPL_GEN_SEQ_OF_TYPEDEFS_AND_PROTOS(a_SeqOfType, a_ItemType, a_DeclMacro, a_ImplExtNm) \ + typedef struct a_SeqOfType \ + { \ + /** Sequence core. */ \ + RTASN1SEQUENCECORE SeqCore; \ + /** The array allocation tracker. */ \ + RTASN1ALLOCATION Allocation; \ + /** Items in the array. */ \ + uint32_t cItems; \ + /** Array. */ \ + RT_CONCAT(P,a_ItemType) paItems; \ + } a_SeqOfType; \ + typedef a_SeqOfType *RT_CONCAT(P,a_SeqOfType); \ + typedef a_SeqOfType const *RT_CONCAT(PC,a_SeqOfType); \ + RTASN1TYPE_STANDARD_PROTOTYPES(a_SeqOfType, a_DeclMacro, a_ImplExtNm, SeqCore.Asn1Core) + + +/** + * ASN.1 set core (IPRT representation). + */ +typedef struct RTASN1SETCORE +{ + /** Core ASN.1 encoding details. */ + RTASN1CORE Asn1Core; +} RTASN1SETCORE; +/** Pointer to an ASN.1 set core (IPRT representation). */ +typedef RTASN1SETCORE *PRTASN1SETCORE; +/** Pointer to a const ASN.1 set core (IPRT representation). */ +typedef RTASN1SETCORE const *PCRTASN1SETCORE; + +RTDECL(int) RTAsn1SetCore_Init(PRTASN1SETCORE pThis, PCRTASN1COREVTABLE pVtable); +RTDECL(int) RTAsn1SetCore_Clone(PRTASN1SETCORE pThis, PCRTASN1COREVTABLE pVtable, PCRTASN1SETCORE pSrc); + +/** + * ASN.1 set-of core (IPRT representation). + */ +#if 0 +typedef struct RTASN1SETOFCORE +{ + /** Core ASN.1 encoding details. */ + RTASN1CORE Asn1Core; +} RTASN1SETUENCECORE; +/** Pointer to an ASN.1 set-of core (IPRT representation). */ +typedef RTASN1SETUENCECORE *PRTASN1SETUENCECORE; +/** Pointer to a const ASN.1 set-of core (IPRT representation). */ +typedef RTASN1SETUENCECORE const *PCRTASN1SETUENCECORE; +#else +# define RTASN1SETOFCORE RTASN1SETCORE +# define PRTASN1SETOFCORE PRTASN1SETCORE +# define PCRTASN1SETOFCORE PCRTASN1SETCORE +#endif +RTDECL(int) RTAsn1SetOfCore_Init(PRTASN1SETOFCORE pThis, PCRTASN1COREVTABLE pVtable); +RTDECL(int) RTAsn1SetOfCore_Clone(PRTASN1SETOFCORE pThis, PCRTASN1COREVTABLE pVtable, PCRTASN1SETOFCORE pSrc); + + +/** Defines the typedefs and prototypes for a generic set-of type. */ +#define RTASN1_IMPL_GEN_SET_OF_TYPEDEFS_AND_PROTOS(a_SetOfType, a_ItemType, a_DeclMacro, a_ImplExtNm) \ + typedef struct a_SetOfType \ + { \ + /** Set core. */ \ + RTASN1SETCORE SetCore; \ + /** The array allocation tracker. */ \ + RTASN1ALLOCATION Allocation; \ + /** Items in the array. */ \ + uint32_t cItems; \ + /** Array. */ \ + RT_CONCAT(P,a_ItemType) paItems; \ + } a_SetOfType; \ + typedef a_SetOfType *RT_CONCAT(P,a_SetOfType); \ + typedef a_SetOfType const *RT_CONCAT(PC,a_SetOfType); \ + RTASN1TYPE_STANDARD_PROTOTYPES(a_SetOfType, a_DeclMacro, a_ImplExtNm, SetCore.Asn1Core) + + +/* + * Declare sets and sequences of the core structure. + */ +RTASN1_IMPL_GEN_SEQ_OF_TYPEDEFS_AND_PROTOS(RTASN1SEQOFCORES, RTASN1CORE, RTDECL, RTAsn1SeqOfCores); +RTASN1_IMPL_GEN_SET_OF_TYPEDEFS_AND_PROTOS(RTASN1SETOFCORES, RTASN1CORE, RTDECL, RTAsn1SetOfCores); + + +/** + * ASN.1 null (IPRT representation). + */ +typedef struct RTASN1NULL +{ + /** Core ASN.1 encoding details. */ + RTASN1CORE Asn1Core; +} RTASN1NULL; +/** Pointer to an ASN.1 null (IPRT representation). */ +typedef RTASN1NULL *PRTASN1NULL; +/** Pointer to a const ASN.1 null (IPRT representation). */ +typedef RTASN1NULL const *PCRTASN1NULL; +/** The Vtable for a RTASN1NULL structure. */ +extern RTDATADECL(RTASN1COREVTABLE const) g_RTAsn1Null_Vtable; + +RTASN1TYPE_STANDARD_PROTOTYPES(RTASN1NULL, RTDECL, RTAsn1Null, Asn1Core); + + +/** + * ASN.1 integer (IPRT representation). + */ +typedef struct RTASN1INTEGER +{ + /** Core ASN.1 encoding details. */ + RTASN1CORE Asn1Core; + /** The unsigned C representation of the 64 least significant bits. + * @note A ASN.1 integer doesn't define signed/unsigned and can have any + * length you like. Thus, the user needs to check the size and + * preferably use the access APIs for signed numbers. */ + RTUINT64U uValue; +} RTASN1INTEGER; +/** Pointer to an ASN.1 integer (IPRT representation). */ +typedef RTASN1INTEGER *PRTASN1INTEGER; +/** Pointer to a const ASN.1 integer (IPRT representation). */ +typedef RTASN1INTEGER const *PCRTASN1INTEGER; +/** The Vtable for a RTASN1INTEGER structure. */ +extern RTDATADECL(RTASN1COREVTABLE const) g_RTAsn1Integer_Vtable; + +RTASN1TYPE_STANDARD_PROTOTYPES(RTASN1INTEGER, RTDECL, RTAsn1Integer, Asn1Core); + +/** + * Initializes an interger object to a default value. + * @returns VINF_SUCCESS. + * @param pBoolean The integer object representation. + * @param uValue The default value (unsigned 64-bit). + * @param pAllocator The allocator (pro forma). + */ +RTDECL(int) RTAsn1Integer_InitDefault(PRTASN1INTEGER pInteger, uint64_t uValue, PCRTASN1ALLOCATORVTABLE pAllocator); + +RTDECL(int) RTAsn1Integer_InitU64(PRTASN1INTEGER pThis, uint64_t uValue, PCRTASN1ALLOCATORVTABLE pAllocator); + +/** + * Get the most significat bit that's set (1). + * + * @returns 0-base bit number, -1 if all clear. + * @param pInteger The integer to check. + */ +RTDECL(int32_t) RTAsn1Integer_UnsignedLastBit(PCRTASN1INTEGER pInteger); + +/** + * Compares two ASN.1 unsigned integers. + * + * @returns 0 if equal, -1 if @a pLeft is smaller, 1 if @a pLeft is larger. + * @param pLeft The first ASN.1 integer. + * @param pRight The second ASN.1 integer. + */ +RTDECL(int) RTAsn1Integer_UnsignedCompare(PCRTASN1INTEGER pLeft, PCRTASN1INTEGER pRight); + +/** + * Compares an ASN.1 unsigned integer with a uint64_t. + * + * @returns 0 if equal, -1 if @a pInteger is smaller, 1 if @a pInteger is + * larger. + * @param pInteger The ASN.1 integer to treat as unsigned. + * @param u64Const The uint64_t constant to compare with. + */ +RTDECL(int) RTAsn1Integer_UnsignedCompareWithU64(PCRTASN1INTEGER pInteger, uint64_t u64Const); + +/** + * Compares an ASN.1 unsigned integer with a uint32_t. + * + * @returns 0 if equal, -1 if @a pInteger is smaller, 1 if @a pInteger is + * larger. + * @param pInteger The ASN.1 integer to treat as unsigned. + * @param u32Const The uint32_t constant to compare with. + * @remarks We don't bother with U16 and U8 variants, just use this instead. + */ +RTDECL(int) RTAsn1Integer_UnsignedCompareWithU32(PCRTASN1INTEGER pInteger, uint32_t u32Const); + + +/** + * Initializes a big integer number from an ASN.1 integer. + * + * @returns IPRT status code. + * @param pInteger The ASN.1 integer. + * @param pBigNum The big integer number structure to initialize. + * @param fBigNumInit Subset of RTBIGNUMINIT_F_XXX that concerns + * senitivity, signedness and endianness. + */ +RTDECL(int) RTAsn1Integer_ToBigNum(PCRTASN1INTEGER pInteger, PRTBIGNUM pBigNum, uint32_t fBigNumInit); +RTDECL(int) RTAsn1Integer_FromBigNum(PRTASN1INTEGER pThis, PCRTBIGNUM pBigNum, PCRTASN1ALLOCATORVTABLE pAllocator); + +RTASN1_IMPL_GEN_SEQ_OF_TYPEDEFS_AND_PROTOS(RTASN1SEQOFINTEGERS, RTASN1INTEGER, RTDECL, RTAsn1SeqOfIntegers); +RTASN1_IMPL_GEN_SET_OF_TYPEDEFS_AND_PROTOS(RTASN1SETOFINTEGERS, RTASN1INTEGER, RTDECL, RTAsn1SetOfIntegers); + + + +/** + * ASN.1 boolean (IPRT representation). + */ +typedef struct RTASN1BOOLEAN +{ + /** Core ASN.1 encoding details. */ + RTASN1CORE Asn1Core; + /** The boolean value. */ + bool fValue; +} RTASN1BOOLEAN; +/** Pointer to the IPRT representation of an ASN.1 boolean. */ +typedef RTASN1BOOLEAN *PRTASN1BOOLEAN; +/** Pointer to the const IPRT representation of an ASN.1 boolean. */ +typedef RTASN1BOOLEAN const *PCRTASN1BOOLEAN; +/** The Vtable for a RTASN1BOOLEAN structure. */ +extern RTDATADECL(RTASN1COREVTABLE const) g_RTAsn1Boolean_Vtable; + +RTASN1TYPE_STANDARD_PROTOTYPES(RTASN1BOOLEAN, RTDECL, RTAsn1Boolean, Asn1Core); + +/** + * Initializes a boolean object to a default value. + * @returns VINF_SUCCESS + * @param pBoolean The boolean object representation. + * @param fValue The default value. + * @param pAllocator The allocator (pro forma). + */ +RTDECL(int) RTAsn1Boolean_InitDefault(PRTASN1BOOLEAN pBoolean, bool fValue, PCRTASN1ALLOCATORVTABLE pAllocator); +RTDECL(int) RTAsn1Boolean_Set(PRTASN1BOOLEAN pThis, bool fValue); + +RTASN1_IMPL_GEN_SEQ_OF_TYPEDEFS_AND_PROTOS(RTASN1SEQOFBOOLEANS, RTASN1BOOLEAN, RTDECL, RTAsn1SeqOfBooleans); +RTASN1_IMPL_GEN_SET_OF_TYPEDEFS_AND_PROTOS(RTASN1SETOFBOOLEANS, RTASN1BOOLEAN, RTDECL, RTAsn1SetOfBooleans); + + + +/** + * ASN.1 UTC and Generalized Time (IPRT representation). + * + * The two time types only differs in the precision the render (UTC time being + * the one for which you go "WTF were they thinking?!!" for in 2014). + */ +typedef struct RTASN1TIME +{ + /** The core structure, either ASN1_TAG_UTC_TIME or + * ASN1_TAG_GENERALIZED_TIME. */ + RTASN1CORE Asn1Core; + /** The exploded time. */ + RTTIME Time; +} RTASN1TIME; +/** Pointer to an IPRT representation of ASN.1 UTC/Generalized time. */ +typedef RTASN1TIME *PRTASN1TIME; +/** Pointer to a const IPRT representation of ASN.1 UTC/Generalized time. */ +typedef RTASN1TIME const *PCRTASN1TIME; +/** The Vtable for a RTASN1TIME structure. */ +extern RTDATADECL(RTASN1COREVTABLE const) g_RTAsn1Time_Vtable; + +RTASN1TYPE_STANDARD_PROTOTYPES(RTASN1TIME, RTDECL, RTAsn1Time, Asn1Core); + +RTASN1TYPE_STANDARD_PROTOTYPES(RTASN1TIME, RTDECL, RTAsn1UtcTime, Asn1Core); +RTASN1TYPE_STANDARD_PROTOTYPES(RTASN1TIME, RTDECL, RTAsn1GeneralizedTime, Asn1Core); + +/** + * Compares two ASN.1 time values. + * + * @returns 0 if equal, -1 if @a pLeft is smaller, 1 if @a pLeft is larger. + * @param pLeft The first ASN.1 time object. + * @param pTsRight The second time to compare. + */ +RTDECL(int) RTAsn1Time_CompareWithTimeSpec(PCRTASN1TIME pLeft, PCRTTIMESPEC pTsRight); + +/** @name Predicate macros for determing the exact type of RTASN1TIME. + * @{ */ +/** True if UTC time. */ +#define RTASN1TIME_IS_UTC_TIME(a_pAsn1Time) ((a_pAsn1Time)->Asn1Core.uTag == ASN1_TAG_UTC_TIME) +/** True if generalized time. */ +#define RTASN1TIME_IS_GENERALIZED_TIME(a_pAsn1Time) ((a_pAsn1Time)->Asn1Core.uTag == ASN1_TAG_GENERALIZED_TIME) +/** @} */ + +RTASN1_IMPL_GEN_SEQ_OF_TYPEDEFS_AND_PROTOS(RTASN1SEQOFTIMES, RTASN1TIME, RTDECL, RTAsn1SeqOfTimes); +RTASN1_IMPL_GEN_SET_OF_TYPEDEFS_AND_PROTOS(RTASN1SETOFTIMES, RTASN1TIME, RTDECL, RTAsn1SetOfTimes); + + + +/** + * ASN.1 object identifier (IPRT representation). + */ +typedef struct RTASN1OBJID +{ + /** Core ASN.1 encoding details. */ + RTASN1CORE Asn1Core; + /** Coverning the paComponents memory allocation if there isn't enough room in + * szObjId for both the dottet string and the component values. */ + RTASN1ALLOCATION Allocation; + /** Pointer to an array with the component values. + * This may point within szObjId if there is enough space for both there. */ + uint32_t const *pauComponents; + /** The number of components in the object identifier. + * This ASSUMES that nobody will be ever needing more than 255 components. */ + uint8_t cComponents; + /** The dotted string representation of the object identifier. + * If there is sufficient space after the string, we will place the array that + * paComponents points to here and/or the raw content bytes (Asn1Core.uData). + * + * An analysis of dumpasn1.cfg, hl7.org and our own _OID defines indicates + * that we need space for at least 10 components and 30-something chars. We've + * allocated 87 bytes, which we ASSUME should be enough for everyone. */ + char szObjId[87]; +} RTASN1OBJID; +/** Pointer to an ASN.1 object identifier representation. */ +typedef RTASN1OBJID *PRTASN1OBJID; +/** Pointer to a const ASN.1 object identifier representation. */ +typedef RTASN1OBJID const *PCRTASN1OBJID; +/** The Vtable for a RTASN1OBJID structure. */ +extern RTDATADECL(RTASN1COREVTABLE const) g_RTAsn1ObjId_Vtable; + +RTASN1TYPE_STANDARD_PROTOTYPES(RTASN1OBJID, RTDECL, RTAsn1ObjId, Asn1Core); + +RTDECL(int) RTAsn1ObjId_InitFromString(PRTASN1OBJID pThis, const char *pszObjId, PCRTASN1ALLOCATORVTABLE pAllocator); + +/** + * Compares an ASN.1 object identifier with a dotted object identifier string. + * + * @returns 0 if equal, -1 if @a pLeft is smaller, 1 if @a pLeft is larger. + * @param pThis The ASN.1 object identifier. + * @param pszRight The dotted object identifier string. + */ +RTDECL(int) RTAsn1ObjId_CompareWithString(PCRTASN1OBJID pThis, const char *pszRight); + +/** + * Checks if an ASN.1 object identifier starts with the given dotted object + * identifier string. + * + * The matching is only successful if the given string matches matches the last + * component completely. + * + * @returns true / false. + * @param pThis The ASN.1 object identifier. + * @param pszStartsWith The dotted object identifier string. + */ +RTDECL(bool) RTAsn1ObjId_StartsWith(PCRTASN1OBJID pThis, const char *pszStartsWith); + +RTDECL(uint8_t) RTAsn1ObjIdCountComponents(PCRTASN1OBJID pThis); +RTDECL(uint32_t) RTAsn1ObjIdGetComponentsAsUInt32(PCRTASN1OBJID pThis, uint8_t iComponent); +RTDECL(uint32_t) RTAsn1ObjIdGetLastComponentsAsUInt32(PCRTASN1OBJID pThis); + +RTASN1_IMPL_GEN_SEQ_OF_TYPEDEFS_AND_PROTOS(RTASN1SEQOFOBJIDS, RTASN1OBJID, RTDECL, RTAsn1SeqOfObjIds); +RTASN1_IMPL_GEN_SET_OF_TYPEDEFS_AND_PROTOS(RTASN1SETOFOBJIDS, RTASN1OBJID, RTDECL, RTAsn1SetOfObjIds); + + +/** + * ASN.1 bit string (IPRT representation). + */ +typedef struct RTASN1BITSTRING +{ + /** Core ASN.1 encoding details. */ + RTASN1CORE Asn1Core; + /** The number of bits. */ + uint32_t cBits; + /** The max number of bits (given at decoding / construction). */ + uint32_t cMaxBits; + /** Pointer to the bits. */ + RTCPTRUNION uBits; + /** Pointer to user structure encapsulated in this string, if dynamically + * allocated the EncapsulatedAllocation member can be used to track it and + * trigger automatic cleanup on object destruction. If EncapsulatedAllocation + * is zero, any object pointed to will only be deleted. */ + PRTASN1CORE pEncapsulated; + /** Allocation tracking structure for pEncapsulated. */ + RTASN1ALLOCATION EncapsulatedAllocation; +} RTASN1BITSTRING; +/** Pointer to the IPRT representation of an ASN.1 bit string. */ +typedef RTASN1BITSTRING *PRTASN1BITSTRING; +/** Pointer to the const IPRT representation of an ASN.1 bit string. */ +typedef RTASN1BITSTRING const *PCRTASN1BITSTRING; +/** The Vtable for a RTASN1BITSTRING structure. */ +extern RTDATADECL(RTASN1COREVTABLE const) g_RTAsn1BitString_Vtable; + +RTASN1TYPE_STANDARD_PROTOTYPES(RTASN1BITSTRING, RTDECL, RTAsn1BitString, Asn1Core); + +/** + * Calculates pointer to the first bit. + * + * @returns Byte pointer to the first bit. + * @param a_pBitString The ASN.1 bit string. + */ +#define RTASN1BITSTRING_GET_BIT0_PTR(a_pBitString) ( &(a_pBitString)->Asn1Core.uData.pu8[1] ) + +/** + * Calculates the size in bytes. + * + * @returns Rounded up size in bytes. + * @param a_pBitString The ASN.1 bit string. + */ +#define RTASN1BITSTRING_GET_BYTE_SIZE(a_pBitString) ( ((a_pBitString)->cBits + 7U) >> 3 ) + +RTDECL(int) RTAsn1BitString_DecodeAsn1Ex(PRTASN1CURSOR pCursor, uint32_t fFlags, uint32_t cMaxBits, PRTASN1BITSTRING pThis, + const char *pszErrorTag); +RTDECL(uint64_t) RTAsn1BitString_GetAsUInt64(PCRTASN1BITSTRING pThis); + +RTASN1_IMPL_GEN_SEQ_OF_TYPEDEFS_AND_PROTOS(RTASN1SEQOFBITSTRINGS, RTASN1BITSTRING, RTDECL, RTAsn1SeqOfBitStrings); +RTASN1_IMPL_GEN_SET_OF_TYPEDEFS_AND_PROTOS(RTASN1SETOFBITSTRINGS, RTASN1BITSTRING, RTDECL, RTAsn1SetOfBitStrings); + + +/** + * ASN.1 octet string (IPRT representation). + */ +typedef struct RTASN1OCTETSTRING +{ + /** Core ASN.1 encoding details. */ + RTASN1CORE Asn1Core; + /** Pointer to user structure encapsulated in this string, if dynamically + * allocated the EncapsulatedAllocation member can be used to track it and + * trigger automatic cleanup on object destruction. If EncapsulatedAllocation + * is zero, any object pointed to will only be deleted. */ + PRTASN1CORE pEncapsulated; + /** Allocation tracking structure for pEncapsulated. */ + RTASN1ALLOCATION EncapsulatedAllocation; +} RTASN1OCTETSTRING; +/** Pointer to the IPRT representation of an ASN.1 octet string. */ +typedef RTASN1OCTETSTRING *PRTASN1OCTETSTRING; +/** Pointer to the const IPRT representation of an ASN.1 octet string. */ +typedef RTASN1OCTETSTRING const *PCRTASN1OCTETSTRING; +/** The Vtable for a RTASN1OCTETSTRING structure. */ +extern RTDATADECL(RTASN1COREVTABLE const) g_RTAsn1OctetString_Vtable; + +RTASN1TYPE_STANDARD_PROTOTYPES(RTASN1OCTETSTRING, RTDECL, RTAsn1OctetString, Asn1Core); + +RTDECL(int) RTAsn1OctetStringCompare(PCRTASN1OCTETSTRING pLeft, PCRTASN1OCTETSTRING pRight); + +RTASN1_IMPL_GEN_SEQ_OF_TYPEDEFS_AND_PROTOS(RTASN1SEQOFOCTETSTRINGS, RTASN1OCTETSTRING, RTDECL, RTAsn1SeqOfOctetStrings); +RTASN1_IMPL_GEN_SET_OF_TYPEDEFS_AND_PROTOS(RTASN1SETOFOCTETSTRINGS, RTASN1OCTETSTRING, RTDECL, RTAsn1SetOfOctetStrings); + + +/** + * ASN.1 string (IPRT representation). + * All char string types except 'character string (29)'. + */ +typedef struct RTASN1STRING +{ + /** Core ASN.1 encoding details. */ + RTASN1CORE Asn1Core; + /** Allocation tracking for pszUtf8. */ + RTASN1ALLOCATION Allocation; + /** If conversion to UTF-8 was requested, we cache that here. */ + char const *pszUtf8; + /** The length (chars, not code points) of the above UTF-8 string if + * present. */ + uint32_t cchUtf8; +} RTASN1STRING; +/** Pointer to the IPRT representation of an ASN.1 string. */ +typedef RTASN1STRING *PRTASN1STRING; +/** Pointer to the const IPRT representation of an ASN.1 string. */ +typedef RTASN1STRING const *PCRTASN1STRING; +/** The Vtable for a RTASN1STRING structure. */ +extern RTDATADECL(RTASN1COREVTABLE const) g_RTAsn1String_Vtable; + +RTASN1TYPE_STANDARD_PROTOTYPES(RTASN1STRING, RTDECL, RTAsn1String, Asn1Core); + +/** @name String type predicate macros. + * @{ */ +#define RTASN1STRING_IS_NUMERIC(a_pAsn1String) ( RTASN1CORE_GET_TAG(&(a_pAsn1String)->Asn1Core) == ASN1_TAG_NUMERIC_STRING ) +#define RTASN1STRING_IS_PRINTABLE(a_pAsn1String) ( RTASN1CORE_GET_TAG(&(a_pAsn1String)->Asn1Core) == ASN1_TAG_PRINTABLE_STRING ) +#define RTASN1STRING_IS_T61(a_pAsn1String) ( RTASN1CORE_GET_TAG(&(a_pAsn1String)->Asn1Core) == ASN1_TAG_T61_STRING ) +#define RTASN1STRING_IS_VIDEOTEX(a_pAsn1String) ( RTASN1CORE_GET_TAG(&(a_pAsn1String)->Asn1Core) == ASN1_TAG_VIDEOTEX_STRING ) +#define RTASN1STRING_IS_VISIBLE(a_pAsn1String) ( RTASN1CORE_GET_TAG(&(a_pAsn1String)->Asn1Core) == ASN1_TAG_VISIBLE_STRING ) +#define RTASN1STRING_IS_IA5(a_pAsn1String) ( RTASN1CORE_GET_TAG(&(a_pAsn1String)->Asn1Core) == ASN1_TAG_IA5_STRING ) +#define RTASN1STRING_IS_GRAPHIC(a_pAsn1String) ( RTASN1CORE_GET_TAG(&(a_pAsn1String)->Asn1Core) == ASN1_TAG_GRAPHIC_STRING ) +#define RTASN1STRING_IS_GENERAL(a_pAsn1String) ( RTASN1CORE_GET_TAG(&(a_pAsn1String)->Asn1Core) == ASN1_TAG_GENERAL_STRING ) +/** UTF-8. */ +#define RTASN1STRING_IS_UTF8(a_pAsn1String) ( RTASN1CORE_GET_TAG(&(a_pAsn1String)->Asn1Core) == ASN1_TAG_UTF8_STRING ) +/** UCS-2. */ +#define RTASN1STRING_IS_BMP(a_pAsn1String) ( RTASN1CORE_GET_TAG(&(a_pAsn1String)->Asn1Core) == ASN1_TAG_BMP_STRING ) +/** UCS-4. */ +#define RTASN1STRING_IS_UNIVERSAL(a_pAsn1String) ( RTASN1CORE_GET_TAG(&(a_pAsn1String)->Asn1Core) == ASN1_TAG_UNIVERSAL_STRING ) +/** @} */ + +RTASN1TYPE_STANDARD_PROTOTYPES(RTASN1STRING, RTDECL, RTAsn1NumericString, Asn1Core); +RTASN1TYPE_STANDARD_PROTOTYPES(RTASN1STRING, RTDECL, RTAsn1PrintableString, Asn1Core); +RTASN1TYPE_STANDARD_PROTOTYPES(RTASN1STRING, RTDECL, RTAsn1T61String, Asn1Core); +RTASN1TYPE_STANDARD_PROTOTYPES(RTASN1STRING, RTDECL, RTAsn1VideoTexString, Asn1Core); +RTASN1TYPE_STANDARD_PROTOTYPES(RTASN1STRING, RTDECL, RTAsn1VisibleString, Asn1Core); +RTASN1TYPE_STANDARD_PROTOTYPES(RTASN1STRING, RTDECL, RTAsn1Ia5String, Asn1Core); +RTASN1TYPE_STANDARD_PROTOTYPES(RTASN1STRING, RTDECL, RTAsn1GraphicString, Asn1Core); +RTASN1TYPE_STANDARD_PROTOTYPES(RTASN1STRING, RTDECL, RTAsn1GeneralString, Asn1Core); +RTASN1TYPE_STANDARD_PROTOTYPES(RTASN1STRING, RTDECL, RTAsn1Utf8String, Asn1Core); +RTASN1TYPE_STANDARD_PROTOTYPES(RTASN1STRING, RTDECL, RTAsn1BmpString, Asn1Core); +RTASN1TYPE_STANDARD_PROTOTYPES(RTASN1STRING, RTDECL, RTAsn1UniversalString, Asn1Core); + +RTDECL(int) RTAsn1String_InitWithValue(PRTASN1STRING pThis, const char *pszUtf8Value, PCRTASN1ALLOCATORVTABLE pAllocator); +RTDECL(int) RTAsn1String_InitEx(PRTASN1STRING pThis, uint32_t uTag, void const *pvValue, size_t cbValue, + PCRTASN1ALLOCATORVTABLE pAllocator); + +/** + * Compares two strings values, extended version. + * + * @returns 0 if equal, -1 if @a pLeft is smaller, 1 if @a pLeft is larger. + * @param pLeft The first string. + * @param pRight The second string. + * @param fTypeToo Set if the string types must match, false if + * not. + */ +RTDECL(int) RTAsn1String_CompareEx(PCRTASN1STRING pLeft, PCRTASN1STRING pRight, bool fTypeToo); + +/** + * Compares a ASN.1 string object with an UTF-8 string. + * + * @returns 0 if equal, -1 if @a pThis is smaller, 1 if @a pThis is larger. + * @param pThis The ASN.1 string object. + * @param pszString The UTF-8 string. + * @param cchString The length of @a pszString, or RTSTR_MAX. + */ +RTDECL(int) RTAsn1String_CompareWithString(PCRTASN1STRING pThis, const char *pszString, size_t cchString); + +/** + * Queries the UTF-8 length of an ASN.1 string object. + * + * This differs from RTAsn1String_QueryUtf8 in that it won't need to allocate + * memory for the converted string, but just calculates the length. + * + * @returns IPRT status code. + * @param pThis The ASN.1 string object. + * @param pcch Where to return the string length. + */ +RTDECL(int) RTAsn1String_QueryUtf8Len(PCRTASN1STRING pThis, size_t *pcch); + +/** + * Queries the UTF-8 string for an ASN.1 string object. + * + * This may fail as it may require memory to be allocated for storing the + * string. + * + * @returns IPRT status code. + * @param pString The ASN.1 string object. This is a const + * parameter for making life easier on the caller, + * however be aware that the object may be modified + * by this call! + * @param ppsz Where to return the pointer to the UTF-8 string. + * Optional. + * @param pcch Where to return the length (in 8-bit chars) to + * of the UTF-8 string. Optional. + */ +RTDECL(int) RTAsn1String_QueryUtf8(PCRTASN1STRING pString, const char **ppsz, size_t *pcch); +RTDECL(int) RTAsn1String_RecodeAsUtf8(PRTASN1STRING pThis, PCRTASN1ALLOCATORVTABLE pAllocator); + +RTASN1_IMPL_GEN_SEQ_OF_TYPEDEFS_AND_PROTOS(RTASN1SEQOFSTRINGS, RTASN1STRING, RTDECL, RTAsn1SeqOfStrings); +RTASN1_IMPL_GEN_SET_OF_TYPEDEFS_AND_PROTOS(RTASN1SETOFSTRINGS, RTASN1STRING, RTDECL, RTAsn1SetOfStrings); + + + +/** + * ASN.1 generic context specific tag (IPRT representation). + * + * Normally used to tag something that's optional, version specific or such. + * + * For the purpose of documenting the format with typedefs as well as possibly + * making it a little more type safe, there's a set of typedefs for the most + * commonly used tag values defined. These typedefs have are identical to + * RTASN1CONTEXTTAG, except from the C++ type system of view. + * tag values. These + */ +typedef struct RTASN1CONTEXTTAG +{ + /** Core ASN.1 encoding details. */ + RTASN1CORE Asn1Core; +} RTASN1CONTEXTTAG; +/** Pointer to an ASN.1 context tag (IPRT thing). */ +typedef RTASN1CONTEXTTAG *PRTASN1CONTEXTTAG; +/** Pointer to a const ASN.1 context tag (IPRT thing). */ +typedef RTASN1CONTEXTTAG const *PCRTASN1CONTEXTTAG; + +RTDECL(int) RTAsn1ContextTagN_Init(PRTASN1CONTEXTTAG pThis, uint32_t uTag); +RTDECL(int) RTAsn1ContextTagN_Clone(PRTASN1CONTEXTTAG pThis, PCRTASN1CONTEXTTAG pSrc, uint32_t uTag); + + +/** @internal */ +#define RTASN1CONTEXTTAG_DO_TYPEDEF_AND_INLINE(a_uTag) \ + typedef struct RT_CONCAT(RTASN1CONTEXTTAG,a_uTag) { RTASN1CORE Asn1Core; } RT_CONCAT(RTASN1CONTEXTTAG,a_uTag); \ + typedef RT_CONCAT(RTASN1CONTEXTTAG,a_uTag) *RT_CONCAT(PRTASN1CONTEXTTAG,a_uTag); \ + DECLINLINE(int) RT_CONCAT3(RTAsn1ContextTag,a_uTag,_Init)(RT_CONCAT(PRTASN1CONTEXTTAG,a_uTag) pThis, \ + PCRTASN1ALLOCATORVTABLE pAllocator) \ + { return RTAsn1ContextTagN_Init((PRTASN1CONTEXTTAG)pThis, a_uTag); } \ + DECLINLINE(int) RT_CONCAT3(RTAsn1ContextTag,a_uTag,_Clone)(RT_CONCAT(PRTASN1CONTEXTTAG,a_uTag) pThis, \ + RT_CONCAT(RTASN1CONTEXTTAG,a_uTag) const *pSrc) \ + { return RTAsn1ContextTagN_Clone((PRTASN1CONTEXTTAG)pThis, (PCRTASN1CONTEXTTAG)pSrc, a_uTag); } \ + typedef RT_CONCAT(RTASN1CONTEXTTAG,a_uTag) const *RT_CONCAT(PCRTASN1CONTEXTTAG,a_uTag) +RTASN1CONTEXTTAG_DO_TYPEDEF_AND_INLINE(0); +RTASN1CONTEXTTAG_DO_TYPEDEF_AND_INLINE(1); +RTASN1CONTEXTTAG_DO_TYPEDEF_AND_INLINE(2); +RTASN1CONTEXTTAG_DO_TYPEDEF_AND_INLINE(3); +RTASN1CONTEXTTAG_DO_TYPEDEF_AND_INLINE(4); +RTASN1CONTEXTTAG_DO_TYPEDEF_AND_INLINE(5); +RTASN1CONTEXTTAG_DO_TYPEDEF_AND_INLINE(6); +RTASN1CONTEXTTAG_DO_TYPEDEF_AND_INLINE(7); +#undef RTASN1CONTEXTTAG_DO_TYPEDEF_AND_INLINE + +/** Helper for comparing optional context tags. + * This will return if both are not present or if their precense differs. + * @internal */ +#define RTASN1CONTEXTTAG_COMPARE_PRESENT_RETURN_INTERNAL(a_iDiff, a_pLeft, a_pRight, a_uTag) \ + do { \ + /* type checks */ \ + RT_CONCAT(PCRTASN1CONTEXTTAG,a_uTag) const pMyLeftInternal = (a_pLeft); \ + RT_CONCAT(PCRTASN1CONTEXTTAG,a_uTag) const pMyRightInternal = (a_pRight); \ + (a_iDiff) = (int)RTASN1CORE_IS_PRESENT(&pMyLeftInternal->Asn1Core) \ + - (int)RTASN1CORE_IS_PRESENT(&pMyRightInternal->Asn1Core); \ + if ((a_iDiff) || !RTASN1CORE_IS_PRESENT(&pMyLeftInternal->Asn1Core)) return iDiff; \ + } while (0) + +/** Helpers for comparing optional context tags. + * This will return if both are not present or if their precense differs. + * @{ */ +#define RTASN1CONTEXTTAG0_COMPARE_PRESENT_RETURN(a_iDiff, a_pLeft, a_pRight) RTASN1CONTEXTTAG_COMPARE_PRESENT_RETURN_INTERNAL(a_iDiff, a_pLeft, a_pRight, 0) +#define RTASN1CONTEXTTAG1_COMPARE_PRESENT_RETURN(a_iDiff, a_pLeft, a_pRight) RTASN1CONTEXTTAG_COMPARE_PRESENT_RETURN_INTERNAL(a_iDiff, a_pLeft, a_pRight, 1) +#define RTASN1CONTEXTTAG2_COMPARE_PRESENT_RETURN(a_iDiff, a_pLeft, a_pRight) RTASN1CONTEXTTAG_COMPARE_PRESENT_RETURN_INTERNAL(a_iDiff, a_pLeft, a_pRight, 2) +#define RTASN1CONTEXTTAG3_COMPARE_PRESENT_RETURN(a_iDiff, a_pLeft, a_pRight) RTASN1CONTEXTTAG_COMPARE_PRESENT_RETURN_INTERNAL(a_iDiff, a_pLeft, a_pRight, 3) +#define RTASN1CONTEXTTAG4_COMPARE_PRESENT_RETURN(a_iDiff, a_pLeft, a_pRight) RTASN1CONTEXTTAG_COMPARE_PRESENT_RETURN_INTERNAL(a_iDiff, a_pLeft, a_pRight, 4) +#define RTASN1CONTEXTTAG5_COMPARE_PRESENT_RETURN(a_iDiff, a_pLeft, a_pRight) RTASN1CONTEXTTAG_COMPARE_PRESENT_RETURN_INTERNAL(a_iDiff, a_pLeft, a_pRight, 5) +#define RTASN1CONTEXTTAG6_COMPARE_PRESENT_RETURN(a_iDiff, a_pLeft, a_pRight) RTASN1CONTEXTTAG_COMPARE_PRESENT_RETURN_INTERNAL(a_iDiff, a_pLeft, a_pRight, 6) +#define RTASN1CONTEXTTAG7_COMPARE_PRESENT_RETURN(a_iDiff, a_pLeft, a_pRight) RTASN1CONTEXTTAG_COMPARE_PRESENT_RETURN_INTERNAL(a_iDiff, a_pLeft, a_pRight, 7) +/** @} */ + + +/** + * Type information for dynamically bits (see RTASN1DYNTYPE). + */ +typedef enum RTASN1TYPE +{ + /** Not present. */ + RTASN1TYPE_NOT_PRESENT = 0, + /** Generic ASN.1 for unknown tag/class. */ + RTASN1TYPE_CORE, + /** ASN.1 NULL. */ + RTASN1TYPE_NULL, + /** ASN.1 integer. */ + RTASN1TYPE_INTEGER, + /** ASN.1 boolean. */ + RTASN1TYPE_BOOLEAN, + /** ASN.1 character string. */ + RTASN1TYPE_STRING, + /** ASN.1 octet string. */ + RTASN1TYPE_OCTET_STRING, + /** ASN.1 bite string. */ + RTASN1TYPE_BIT_STRING, + /** ASN.1 UTC or Generalize time. */ + RTASN1TYPE_TIME, +#if 0 + /** ASN.1 sequence core. */ + RTASN1TYPE_SEQUENCE_CORE, + /** ASN.1 set core. */ + RTASN1TYPE_SET_CORE, +#endif + /** ASN.1 object identifier. */ + RTASN1TYPE_OBJID, + /** End of valid types. */ + RTASN1TYPE_END, + /** Type size hack. */ + RTASN1TYPE_32BIT_HACK = 0x7fffffff +} RTASN1TYPE; + + +/** + * ASN.1 dynamic type record. + */ +typedef struct RTASN1DYNTYPE +{ + /** Alternative interpretation provided by a user. + * Before destroying this object, the user must explicitly free this and set + * it to NULL, otherwise there will be memory leaks. */ + PRTASN1CORE pUser; + /** The type of data we've got here. */ + RTASN1TYPE enmType; + /** Union with data of the type dictated by enmType. */ + union + { + /** RTASN1TYPE_CORE. */ + RTASN1CORE Core; + /** RTASN1TYPE_NULL. */ + RTASN1NULL Asn1Null; + /** RTASN1TYPE_INTEGER. */ + RTASN1INTEGER Integer; + /** RTASN1TYPE_BOOLEAN. */ + RTASN1BOOLEAN Boolean; + /** RTASN1TYPE_STRING. */ + RTASN1STRING String; + /** RTASN1TYPE_OCTET_STRING. */ + RTASN1OCTETSTRING OctetString; + /** RTASN1TYPE_BIT_STRING. */ + RTASN1BITSTRING BitString; + /** RTASN1TYPE_TIME. */ + RTASN1TIME Time; +#if 0 + /** RTASN1TYPE_SEQUENCE_CORE. */ + RTASN1SEQUENCECORE SeqCore; + /** RTASN1TYPE_SET_CORE. */ + RTASN1SETCORE SetCore; +#endif + /** RTASN1TYPE_OBJID. */ + RTASN1OBJID ObjId; + } u; +} RTASN1DYNTYPE; +/** Pointer to an ASN.1 dynamic type record. */ +typedef RTASN1DYNTYPE *PRTASN1DYNTYPE; +/** Pointer to a const ASN.1 dynamic type record. */ +typedef RTASN1DYNTYPE const *PCRTASN1DYNTYPE; +RTASN1TYPE_STANDARD_PROTOTYPES(RTASN1DYNTYPE, RTDECL, RTAsn1DynType, u.Core); + + +/** @name Virtual Method Table Based API + * @{ */ +/** + * Calls the destructor of the ASN.1 object. + * + * @param pAsn1Core The IPRT representation of an ASN.1 object. + */ +RTDECL(void) RTAsn1VtDelete(PRTASN1CORE pThisCore); + +/** + * Deep enumeration of all descendants. + * + * @returns IPRT status code, any non VINF_SUCCESS value stems from pfnCallback. + * @param pThisCore Pointer to the ASN.1 core to enumerate members of. + * @param pfnCallback The callback. + * @param uDepth The depth of this object. Children are at +1. + * @param pvUser Callback user argument. + * @param fDepthFirst When set, recurse into child objects before calling + * pfnCallback on then. When clear, the child object + * is first + */ +RTDECL(int) RTAsn1VtDeepEnum(PRTASN1CORE pThisCore, bool fDepthFirst, uint32_t uDepth, + PFNRTASN1ENUMCALLBACK pfnCallback, void *pvUser); + +/** + * Clones @a pSrcCore onto @a pThisCore. + * + * The caller must be sure that @a pSrcCore and @a pThisCore are of the same + * types. + * + * @returns IPRT status code. + * @param pThisCore Pointer to the ASN.1 core to clone onto. This shall + * be uninitialized. + * @param pSrcCore Pointer to the ASN.1 core to clone. + * @param pAllocator The allocator to use. + */ +RTDECL(int) RTAsn1VtClone(PRTASN1CORE pThisCore, PRTASN1CORE pSrcCore, PCRTASN1ALLOCATORVTABLE pAllocator); + +/** + * Compares two objects. + * + * @returns 0 if equal, -1 if @a pLeft is smaller, 1 if @a pLeft is larger. + * @param pLeftCore Pointer to the ASN.1 core of the left side object. + * @param pRightCore Pointer to the ASN.1 core of the right side object. + */ +RTDECL(int) RTAsn1VtCompare(PCRTASN1CORE pLeftCore, PCRTASN1CORE pRightCore); + +/** + * Check sanity. + * + * A primary criteria is that the object is present and initialized. + * + * @returns IPRT status code. + * @param pThisCore Pointer to the ASN.1 core of the object to check out. + * @param fFlags See RTASN1_CHECK_SANITY_F_XXX. + * @param pszErrInfo Where to return additional error details. Optional. + * @param pszErrorTag Tag for the additional error details. + */ +RTDECL(int) RTAsn1VtCheckSanity(PCRTASN1CORE pThisCore, uint32_t fFlags, + PRTERRINFO pErrInfo, const char *pszErrorTag); +/** @} */ + + +/** @defgroup rp_asn1_encode RTAsn1Encode - ASN.1 Encoding + * @{ */ + +/** @name RTASN1ENCODE_F_XXX + * @{ */ +/** Use distinguished encoding rules (DER) to encode the object. */ +#define RTASN1ENCODE_F_DER UINT32_C(0x00000001) +/** Use base encoding rules (BER) to encode the object. + * This is currently the same as DER for practical reasons. */ +#define RTASN1ENCODE_F_BER RTASN1ENCODE_F_DER +/** Mask of valid encoding rules. */ +#define RTASN1ENCODE_F_RULE_MASK UINT32_C(0x00000007) +/** @} */ + + +/** + * Recalculates cbHdr of and ASN.1 object. + * + * @returns IPRT status code. + * @retval VINF_ASN1_NOT_ENCODED if the header size is zero (default value, + * whatever). + * @param pAsn1Core The object in question. + * @param fFlags Valid combination of the RTASN1ENCODE_F_XXX + * flags. Must include the encoding type. + * @param pErrInfo Extended error info. Optional. + */ +RTDECL(int) RTAsn1EncodeRecalcHdrSize(PRTASN1CORE pAsn1Core, uint32_t fFlags, PRTERRINFO pErrInfo); + +/** + * Prepares the ASN.1 structure for encoding. + * + * The preparations is mainly calculating accurate object size, but may also + * involve operations like recoding internal UTF-8 strings to the actual ASN.1 + * format and other things that may require memory to allocated/reallocated. + * + * @returns IPRT status code + * @param pRoot The root of the ASN.1 object tree to encode. + * @param fFlags Valid combination of the RTASN1ENCODE_F_XXX + * flags. Must include the encoding type. + * @param pcbEncoded Where to return the encoded size. Optional. + * @param pErrInfo Where to store extended error information. + * Optional. + */ +RTDECL(int) RTAsn1EncodePrepare(PRTASN1CORE pRoot, uint32_t fFlags, uint32_t *pcbEncoded, PRTERRINFO pErrInfo); + +/** + * Encodes and writes the header of an ASN.1 object. + * + * @returns IPRT status code. + * @retval VINF_ASN1_NOT_ENCODED if nothing was written (default value, + * whatever). + * @param pAsn1Core The object in question. + * @param fFlags Valid combination of the RTASN1ENCODE_F_XXX + * flags. Must include the encoding type. + * @param pfnWriter The output writer callback. + * @param pvUser The user argument to pass to @a pfnWriter. + * @param pErrInfo Where to store extended error information. + * Optional. + */ +RTDECL(int) RTAsnEncodeWriteHeader(PCRTASN1CORE pAsn1Core, uint32_t fFlags, FNRTASN1ENCODEWRITER pfnWriter, void *pvUser, + PRTERRINFO pErrInfo); + +/** + * Prepares the ASN.1 structure for encoding. + * + * The preparations is mainly calculating accurate object size, but may also + * involve operations like recoding internal UTF-8 strings to the actual ASN.1 + * format and other things that may require memory to allocated/reallocated. + * + * @returns IPRT status code + * @param pRoot The root of the ASN.1 object tree to encode. + * @param fFlags Valid combination of the RTASN1ENCODE_F_XXX + * flags. Must include the encoding type. + * @param pfnWriter The output writer callback. + * @param pvUser The user argument to pass to @a pfnWriter. + * @param pErrInfo Where to store extended error information. + * Optional. + */ +RTDECL(int) RTAsn1EncodeWrite(PCRTASN1CORE pRoot, uint32_t fFlags, FNRTASN1ENCODEWRITER pfnWriter, void *pvUser, + PRTERRINFO pErrInfo); + +/** @} */ + + + +/** @defgroup rp_asn1_cursor RTAsn1Cursor - BER, DER, and CER cursor + * @{ */ + +/** + * ASN.1 decoder byte cursor. + */ +typedef struct RTASN1CURSOR +{ + /** Pointer to the current (next) byte. */ + uint8_t const *pbCur; + /** Number of bytes left to decode. */ + uint32_t cbLeft; + /** RTASN1CURSOR_FLAGS_XXX. */ + uint8_t fFlags; + /** The cursor depth. */ + uint8_t cDepth; + /** Two bytes reserved for future tricks. */ + uint8_t abReserved[2]; + /** Pointer to the primary cursor. */ + struct RTASN1CURSORPRIMARY *pPrimary; + /** Pointer to the parent cursor. */ + struct RTASN1CURSOR *pUp; + /** The error tag for this cursor level. */ + const char *pszErrorTag; +} RTASN1CURSOR; + +/** @name RTASN1CURSOR_FLAGS_XXX - Cursor flags. + * @{ */ +/** Enforce DER rules. */ +#define RTASN1CURSOR_FLAGS_DER RT_BIT(1) +/** Enforce CER rules. */ +#define RTASN1CURSOR_FLAGS_CER RT_BIT(2) +/** @} */ + + +typedef struct RTASN1CURSORPRIMARY +{ + /** The normal cursor bits. */ + RTASN1CURSOR Cursor; + /** For error reporting. */ + PRTERRINFO pErrInfo; + /** The allocator virtual method table. */ + PCRTASN1ALLOCATORVTABLE pAllocator; +} RTASN1CURSORPRIMARY; +typedef RTASN1CURSORPRIMARY *PRTASN1CURSORPRIMARY; + + +/** + * Initializes a primary cursor. + * + * The primary cursor is special in that it stores information shared with the + * sub-cursors created by methods like RTAsn1CursorGetContextTagNCursor and + * RTAsn1CursorGetSequenceCursor. Even if just sharing a few items at present, + * it still important to save every possible byte since stack space is scarce in + * some of the execution environments. + * + * @returns Pointer to pCursor->Cursor. + * @param pPrimaryCursor The primary cursor structure to initialize. + * @param pvFirst The first byte to decode. + * @param cb The number of bytes to decode. + * @param pErrInfo Where to store error information. + * @param pAllocator The allocator to use. + * @param fFlags RTASN1CURSOR_FLAGS_XXX. + * @param pszErrorTag The primary error tag. + */ +RTDECL(PRTASN1CURSOR) RTAsn1CursorInitPrimary(PRTASN1CURSORPRIMARY pPrimaryCursor, void const *pvFirst, uint32_t cb, + PRTERRINFO pErrInfo, PCRTASN1ALLOCATORVTABLE pAllocator, uint32_t fFlags, + const char *pszErrorTag); + + +/** + * Initialize a sub-cursor for traversing the content of an ASN.1 object. + * + * @returns IPRT status code. + * @param pParent The parent cursor. + * @param pAsn1Core The ASN.1 object which content we should + * traverse with the sub-cursor. + * @param pChild The sub-cursor to initialize. + * @param pszErrorTag The error tag of the sub-cursor. + */ +RTDECL(int) RTAsn1CursorInitSubFromCore(PRTASN1CURSOR pParent, PRTASN1CORE pAsn1Core, + PRTASN1CURSOR pChild, const char *pszErrorTag); + +/** + * Initalizes the an allocation structure prior to making an allocation. + * + * To try unify and optimize memory managment for decoding and in-memory + * construction of ASN.1 objects, each allocation has an allocation structure + * associated with it. This stores the allocator and keep statistics for + * optimizing array allocations. + * + * @returns Pointer to the allocator info (for call in alloc parameter). + * @param pCursor The cursor. + * @param pAllocator The allocation structure to initialize. + */ +RTDECL(PRTASN1ALLOCATION) RTAsn1CursorInitAllocation(PRTASN1CURSOR pCursor, PRTASN1ALLOCATION pAllocation); + + +/** + * Wrapper around RTErrInfoSetV. + * + * @returns @a rc + * @param pCursor The cursor. + * @param rc The return code to return. + * @param pszMsg Message format string. + * @param ... Format arguments. + */ +RTDECL(int) RTAsn1CursorSetInfo(PRTASN1CURSOR pCursor, int rc, const char *pszMsg, ...); + +/** + * Wrapper around RTErrInfoSetV. + * + * @returns @a rc + * @param pCursor The cursor. + * @param rc The return code to return. + * @param pszMsg Message format string. + * @param va Format arguments. + */ +RTDECL(int) RTAsn1CursorSetInfoV(PRTASN1CURSOR pCursor, int rc, const char *pszMsg, va_list va); + +/** + * Checks that we've reached the end of the data for the cursor. + * + * @returns IPRT status code. + * @param pCursor The cursor we're decoding from. + */ +RTDECL(int) RTAsn1CursorCheckEnd(PRTASN1CURSOR pCursor); + + +/** + * Skips a given number of bytes. + * + * @returns @a pCursor + * @param pCursor The cursor. + * @param cb The number of bytes to skip. + * @internal + */ +DECLINLINE(PRTASN1CURSOR) RTAsn1CursorSkip(PRTASN1CURSOR pCursor, uint32_t cb) +{ + if (cb <= pCursor->cbLeft) + { + pCursor->cbLeft -= cb; + pCursor->pbCur += cb; + } + else + { + pCursor->pbCur += pCursor->cbLeft; + pCursor->cbLeft = 0; + } + + return pCursor; +} + +/** + * Low-level function for reading an ASN.1 header. + * + * @returns IPRT status code. + * @param pCursor The cursor we're decoding from. + * @param pAsn1Core The output object core. + * @param pszErrorTag Error tag. + * @internal + */ +RTDECL(int) RTAsn1CursorReadHdr(PRTASN1CURSOR pCursor, PRTASN1CORE pAsn1Core, const char *pszErrorTag); + +/** + * Common helper for simple tag matching. + * + * @returns IPRT status code. + * @param pCursor The cursor (for error reporting). + * @param pAsn1Core The ASN.1 core structure. + * @param uTag The expected tag. + * @param fClass The expected class. + * @param fString Set if it's a string type that shall follow + * special CER and DER rules wrt to constructed and + * primitive encoding. + * @param fFlags The RTASN1CURSOR_GET_F_XXX flags. + * @param pszErrorTag The error tag. + * @param pszWhat The type/whatever name. + */ +RTDECL(int) RTAsn1CursorMatchTagClassFlagsEx(PRTASN1CURSOR pCursor, PRTASN1CORE pAsn1Core, uint32_t uTag, uint32_t fClass, + bool fString, uint32_t fFlags, const char *pszErrorTag, const char *pszWhat); + +/** + * Common helper for simple tag matching. + * + * @returns IPRT status code. + * @param pCursor The cursor (for error reporting). + * @param pAsn1Core The ASN.1 core structure. + * @param uTag The expected tag. + * @param fClass The expected class. + * @param fFlags The RTASN1CURSOR_GET_F_XXX flags. + * @param pszErrorTag The error tag. + * @param pszWhat The type/whatever name. + * @internal + */ +DECLINLINE(int) RTAsn1CursorMatchTagClassFlags(PRTASN1CURSOR pCursor, PRTASN1CORE pAsn1Core, uint32_t uTag, uint32_t fClass, + uint32_t fFlags, const char *pszErrorTag, const char *pszWhat) +{ + if (pAsn1Core->uTag == uTag && pAsn1Core->fClass == fClass) + return VINF_SUCCESS; + return RTAsn1CursorMatchTagClassFlagsEx(pCursor, pAsn1Core, uTag, fClass, false /*fString*/, fFlags, pszErrorTag, pszWhat); +} + + +/** + * Common helper for simple tag matching for strings. + * + * Check string encoding considerations. + * + * @returns IPRT status code. + * @param pCursor The cursor (for error reporting). + * @param pAsn1Core The ASN.1 core structure. + * @param uTag The expected tag. + * @param fClass The expected class. + * @param fFlags The RTASN1CURSOR_GET_F_XXX flags. + * @param pszErrorTag The error tag. + * @param pszWhat The type/whatever name. + * @internal + */ +DECLINLINE(int) RTAsn1CursorMatchTagClassFlagsString(PRTASN1CURSOR pCursor, PRTASN1CORE pAsn1Core, uint32_t uTag, uint32_t fClass, + uint32_t fFlags, const char *pszErrorTag, const char *pszWhat) +{ + if (pAsn1Core->uTag == uTag && pAsn1Core->fClass == fClass) + return VINF_SUCCESS; + return RTAsn1CursorMatchTagClassFlagsEx(pCursor, pAsn1Core, uTag, fClass, true /*fString*/, fFlags, pszErrorTag, pszWhat); +} + + + +/** @name RTASN1CURSOR_GET_F_XXX - Common flags for all the getters. + * @{ */ +/** Used for decoding objects with implicit tags assigned to them. This only + * works when calling getters with a unambigious types. */ +#define RTASN1CURSOR_GET_F_IMPLICIT RT_BIT_32(0) +/** @} */ + +/** + * Read ANY object. + * + * @returns IPRT status code. + * @param pCursor The cursor we're decoding from. + * @param fFlags RTASN1CURSOR_GET_F_XXX. + * @param pAsn1Core The output object core. + * @param pszErrorTag Error tag. + */ +RTDECL(int) RTAsn1CursorGetCore(PRTASN1CURSOR pCursor, uint32_t fFlags, PRTASN1CORE pAsn1Core, const char *pszErrorTag); + +/** + * Read a NULL object. + * + * @returns IPRT status code. + * @param pCursor The cursor we're decoding from. + * @param fFlags RTASN1CURSOR_GET_F_XXX. + * @param pNull The output NULL object. + * @param pszErrorTag Error tag. + */ +RTDECL(int) RTAsn1CursorGetNull(PRTASN1CURSOR pCursor, uint32_t fFlags, PRTASN1NULL pNull, const char *pszErrorTag); + +/** + * Read an INTEGER object. + * + * @returns IPRT status code. + * @param pCursor The cursor we're decoding from. + * @param fFlags RTASN1CURSOR_GET_F_XXX. + * @param pInteger The output integer object. + * @param pszErrorTag Error tag. + */ +RTDECL(int) RTAsn1CursorGetInteger(PRTASN1CURSOR pCursor, uint32_t fFlags, PRTASN1INTEGER pInteger, const char *pszErrorTag); + +/** + * Read an BOOLEAN object. + * + * @returns IPRT status code. + * @param pCursor The cursor we're decoding from. + * @param fFlags RTASN1CURSOR_GET_F_XXX. + * @param pBoolean The output boolean object. + * @param pszErrorTag Error tag. + */ +RTDECL(int) RTAsn1CursorGetBoolean(PRTASN1CURSOR pCursor, uint32_t fFlags, PRTASN1BOOLEAN pBoolean, const char *pszErrorTag); + +/** + * Retrives an object identifier (aka ObjId or OID) item from the ASN.1 stream. + * + * @returns IPRT status code. + * @param pCursor The cursor. + * @param fFlags RTASN1CURSOR_GET_F_XXX. + * @param pObjId The output ODI object. + * @param pszErrorTag Error tag. + */ +RTDECL(int) RTAsn1CursorGetObjId(PRTASN1CURSOR pCursor, uint32_t fFlags, PRTASN1OBJID pObjId, const char *pszErrorTag); + +/** + * Retrives and verifies an object identifier. + * + * @returns IPRT status code. + * @param pCursor The cursor. + * @param fFlags RTASN1CURSOR_GET_F_XXX. + * @param pObjId Where to return the parsed object ID, optional. + * @param pszExpectedObjId The expected object identifier (dotted). + * @param pszErrorTag Error tag. + */ +RTDECL(int) RTAsn1CursorGetAndCheckObjId(PRTASN1CURSOR pCursor, uint32_t fFlags, PRTASN1OBJID pObjId, + const char *pszExpectedObjId, const char *pszErrorTag); + +/** + * Read an UTC TIME or GENERALIZED TIME object. + * + * @returns IPRT status code. + * @param pCursor The cursor we're decoding from. + * @param fFlags RTASN1CURSOR_GET_F_XXX. + * @param pTime The output time object. + * @param pszErrorTag Error tag. + */ +RTDECL(int) RTAsn1CursorGetTime(PRTASN1CURSOR pCursor, uint32_t fFlags, PRTASN1TIME pTime, const char *pszErrorTag); + +/** + * Read an BIT STRING object (skips past the content). + * + * @returns IPRT status ocde. + * @param pCursor The cursor. + * @param fFlags RTASN1CURSOR_GET_F_XXX. + * @param pBitString The output bit string object. + * @param pszErrorTag Error tag. + */ +RTDECL(int) RTAsn1CursorGetBitString(PRTASN1CURSOR pCursor, uint32_t fFlags, PRTASN1BITSTRING pBitString, + const char *pszErrorTag); + +/** + * Read an BIT STRING object (skips past the content), extended version with + * cMaxBits. + * + * @returns IPRT status ocde. + * @param pCursor The cursor. + * @param fFlags RTASN1CURSOR_GET_F_XXX. + * @param cMaxBits The max length of the bit string in bits. Pass + * UINT32_MAX if variable size. + * @param pBitString The output bit string object. + * @param pszErrorTag Error tag. + */ +RTDECL(int) RTAsn1CursorGetBitStringEx(PRTASN1CURSOR pCursor, uint32_t fFlags, uint32_t cMaxBits, PRTASN1BITSTRING pBitString, + const char *pszErrorTag); + +/** + * Read an OCTET STRING object (skips past the content). + * + * @returns IPRT status ocde. + * @param pCursor The cursor. + * @param fFlags RTASN1CURSOR_GET_F_XXX. + * @param pOctetString The output octet string object. + * @param pszErrorTag Error tag. + */ +RTDECL(int) RTAsn1CursorGetOctetString(PRTASN1CURSOR pCursor, uint32_t fFlags, PRTASN1OCTETSTRING pOctetString, + const char *pszErrorTag); + +/** + * Read any kind of string object, except 'character string (29)'. + * + * @returns IPRT status code. + * @param pCursor The cursor we're decoding from. + * @param fFlags RTASN1CURSOR_GET_F_XXX. + * @param pString The output boolean object. + * @param pszErrorTag Error tag. + */ +RTDECL(int) RTAsn1CursorGetString(PRTASN1CURSOR pCursor, uint32_t fFlags, PRTASN1STRING pString, const char *pszErrorTag); + +/** + * Read a IA5 STRING object. + * + * @returns IPRT status code. + * @param pCursor The cursor we're decoding from. + * @param fFlags RTASN1CURSOR_GET_F_XXX. + * @param pString The output boolean object. + * @param pszErrorTag Error tag. + */ +RTDECL(int) RTAsn1CursorGetIa5String(PRTASN1CURSOR pCursor, uint32_t fFlags, PRTASN1STRING pString, const char *pszErrorTag); + +/** + * Read a UTF8 STRING object. + * + * @returns IPRT status code. + * @param pCursor The cursor we're decoding from. + * @param fFlags RTASN1CURSOR_GET_F_XXX. + * @param pString The output boolean object. + * @param pszErrorTag Error tag. + */ +RTDECL(int) RTAsn1CursorGetUtf8String(PRTASN1CURSOR pCursor, uint32_t fFlags, PRTASN1STRING pString, const char *pszErrorTag); + +/** + * Read a BMP STRING (UCS-2) object. + * + * @returns IPRT status code. + * @param pCursor The cursor we're decoding from. + * @param fFlags RTASN1CURSOR_GET_F_XXX. + * @param pString The output boolean object. + * @param pszErrorTag Error tag. + */ +RTDECL(int) RTAsn1CursorGetBmpString(PRTASN1CURSOR pCursor, uint32_t fFlags, PRTASN1STRING pString, const char *pszErrorTag); + +/** + * Read a SEQUENCE object and create a cursor for its content. + * + * @returns IPRT status code. + * @param pCursor The cursor we're decoding from. + * @param fFlags RTASN1CURSOR_GET_F_XXX. + * @param pSeqCore The output sequence core object. + * @param pSeqCursor The output cursor for the sequence content. + * @param pszErrorTag Error tag, this will be associated with the + * returned cursor. + */ +RTDECL(int) RTAsn1CursorGetSequenceCursor(PRTASN1CURSOR pCursor, uint32_t fFlags, + PRTASN1SEQUENCECORE pSeqCore, PRTASN1CURSOR pSeqCursor, const char *pszErrorTag); + +/** + * Read a SET object and create a cursor for its content. + * + * @returns IPRT status code. + * @param pCursor The cursor we're decoding from. + * @param fFlags RTASN1CURSOR_GET_F_XXX. + * @param pSetCore The output set core object. + * @param pSetCursor The output cursor for the set content. + * @param pszErrorTag Error tag, this will be associated with the + * returned cursor. + */ +RTDECL(int) RTAsn1CursorGetSetCursor(PRTASN1CURSOR pCursor, uint32_t fFlags, + PRTASN1SETCORE pSetCore, PRTASN1CURSOR pSetCursor, const char *pszErrorTag); + +/** + * Read a given constructed context tag and create a cursor for its content. + * + * @returns IPRT status code. + * @param pCursor The cursor we're decoding from. + * @param fFlags RTASN1CURSOR_GET_F_XXX. + * @param pCtxTagCore The output context tag object. + * @param pCtxTagCursor The output cursor for the context tag content. + * @param pszErrorTag Error tag, this will be associated with the + * returned cursor. + * + * @remarks There are specialized version of this function for each of the + * numbered context tag structures, like for RTASN1CONTEXTTAG0 there is + * RTAsn1CursorGetContextTag0Cursor. + */ +RTDECL(int) RTAsn1CursorGetContextTagNCursor(PRTASN1CURSOR pCursor, uint32_t fFlags, uint32_t uExpectedTag, + PRTASN1CONTEXTTAG pCtxTag, PRTASN1CURSOR pCtxTagCursor, const char *pszErrorTag); + +/** + * Read a dynamic ASN.1 type. + * + * @returns IPRT status code. + * @param pCursor The cursor we're decoding from. + * @param fFlags RTASN1CURSOR_GET_F_XXX. + * @param pDynType The output context tag object. + * @param pszErrorTag Error tag. + */ +RTDECL(int) RTAsn1CursorGetDynType(PRTASN1CURSOR pCursor, uint32_t fFlags, PRTASN1DYNTYPE pDynType, const char *pszErrorTag); + +/** + * Peeks at the next ASN.1 object. + * + * @returns IPRT status code. + * @param pCursor The cursore we're decoding from. + * @param pAsn1Core Where to store the output of the peek. + */ +RTDECL(int) RTAsn1CursorPeek(PRTASN1CURSOR pCursor, PRTASN1CORE pAsn1Core); + +/** + * Checks if the next ASN.1 object matches the given tag and class/flags. + * + * @returns @c true on match, @c false on mismatch. + * @param pCursor The cursore we're decoding from. + * @param uTag The tag number to match against. + * @param fClass The tag class and flags to match against. + */ +RTDECL(bool) RTAsn1CursorIsNextEx(PRTASN1CURSOR pCursor, uint32_t uTag, uint8_t fClass); + + + +/** @internal */ +#define RTASN1CONTEXTTAG_IMPL_CURSOR_INLINES(a_uTag) \ + DECLINLINE(int) RT_CONCAT3(RTAsn1CursorGetContextTag,a_uTag,Cursor)(PRTASN1CURSOR pCursor, uint32_t fFlags, \ + RT_CONCAT(PRTASN1CONTEXTTAG,a_uTag) pCtxTag, \ + PRTASN1CURSOR pCtxTagCursor, const char *pszErrorTag) \ + { /* Constructed is automatically implied if you need a cursor to it. */ \ + return RTAsn1CursorGetContextTagNCursor(pCursor, fFlags, a_uTag, (PRTASN1CONTEXTTAG)pCtxTag, pCtxTagCursor, pszErrorTag); \ + } \ + DECLINLINE(int) RT_CONCAT3(RTAsn1ContextTag,a_uTag,InitDefault)(RT_CONCAT(PRTASN1CONTEXTTAG,a_uTag) pCtxTag) \ + { /* Constructed is automatically implied if you need to init it with a default value. */ \ + return RTAsn1Core_InitDefault(&pCtxTag->Asn1Core, a_uTag, ASN1_TAGCLASS_CONTEXT | ASN1_TAGFLAG_CONSTRUCTED); \ + } \ + DECLINLINE(int) RT_CONCAT3(RTAsn1CursorIsConstructedContextTag,a_uTag,Next)(PRTASN1CURSOR pCursor) \ + { \ + return RTAsn1CursorIsNextEx(pCursor, a_uTag, ASN1_TAGCLASS_CONTEXT | ASN1_TAGFLAG_CONSTRUCTED); \ + } \ + DECLINLINE(int) RT_CONCAT3(RTAsn1CursorIsPrimitiveContextTag,a_uTag,Next)(PRTASN1CURSOR pCursor) \ + { \ + return RTAsn1CursorIsNextEx(pCursor, a_uTag, ASN1_TAGCLASS_CONTEXT | ASN1_TAGFLAG_PRIMITIVE); \ + } \ + DECLINLINE(int) RT_CONCAT3(RTAsn1CursorIsAnyContextTag,a_uTag,Next)(PRTASN1CURSOR pCursor) \ + { \ + return RTAsn1CursorIsNextEx(pCursor, a_uTag, ASN1_TAGCLASS_CONTEXT | ASN1_TAGFLAG_CONSTRUCTED) \ + || RTAsn1CursorIsNextEx(pCursor, a_uTag, ASN1_TAGCLASS_CONTEXT | ASN1_TAGFLAG_PRIMITIVE);\ + } \ + +RTASN1CONTEXTTAG_IMPL_CURSOR_INLINES(0) +RTASN1CONTEXTTAG_IMPL_CURSOR_INLINES(1) +RTASN1CONTEXTTAG_IMPL_CURSOR_INLINES(2) +RTASN1CONTEXTTAG_IMPL_CURSOR_INLINES(3) +RTASN1CONTEXTTAG_IMPL_CURSOR_INLINES(4) +RTASN1CONTEXTTAG_IMPL_CURSOR_INLINES(5) +RTASN1CONTEXTTAG_IMPL_CURSOR_INLINES(6) +RTASN1CONTEXTTAG_IMPL_CURSOR_INLINES(7) +#undef RTASN1CONTEXTTAG_IMPL_CURSOR_INLINES + + +/** + * Checks if the next object is a boolean. + * + * @returns true / false + * @param pCursor The cursore we're decoding from. + * @remarks May produce error info output on mismatch. + */ +DECLINLINE(bool) RTAsn1CursorIsBooleanNext(PRTASN1CURSOR pCursor) +{ + return RTAsn1CursorIsNextEx(pCursor, ASN1_TAG_BOOLEAN, ASN1_TAGFLAG_PRIMITIVE | ASN1_TAGCLASS_UNIVERSAL); +} + + +/** + * Checks if the next object is a set. + * + * @returns true / false + * @param pCursor The cursore we're decoding from. + * @remarks May produce error info output on mismatch. + */ +DECLINLINE(bool) RTAsn1CursorIsSetNext(PRTASN1CURSOR pCursor) +{ + return RTAsn1CursorIsNextEx(pCursor, ASN1_TAG_SET, ASN1_TAGFLAG_CONSTRUCTED | ASN1_TAGCLASS_UNIVERSAL); +} + + +/** @} */ + + +/** @name ASN.1 Utility APIs + * @{ */ + +/** + * Dumps an IPRT representation of a ASN.1 object tree. + * + * @returns IPRT status code. + * @param pAsn1Core The ASN.1 object which members should be dumped. + * @param fFlags RTASN1DUMP_F_XXX. + * @param uLevel The indentation level to start at. + * @param pfnPrintfV The output function. + * @param pvUser Argument to the output function. + */ +RTDECL(int) RTAsn1Dump(PCRTASN1CORE pAsn1Core, uint32_t fFlags, uint32_t uLevel, PFNRTDUMPPRINTFV pfnPrintfV, void *pvUser); + +/** @} */ + +/** @} */ + +RT_C_DECLS_END + +#endif + diff -Nru virtualbox-4.1.12-dfsg/include/iprt/base64.h virtualbox-4.1.44-dfsg/include/iprt/base64.h --- virtualbox-4.1.12-dfsg/include/iprt/base64.h 2012-04-02 13:24:42.000000000 +0000 +++ virtualbox-4.1.44-dfsg/include/iprt/base64.h 2015-11-11 15:06:02.000000000 +0000 @@ -48,14 +48,29 @@ * * @returns The length in bytes. -1 if the encoding is bad. * - * @param pszString The Base64 encoded string. - * @param ppszEnd If not NULL, this will point to the first char - * following the Base64 encoded text block. If - * NULL the entire string is assumed to be Base64. + * @param pszString The Base64 encoded string. + * @param ppszEnd If not NULL, this will point to the first char + * following the Base64 encoded text block. If + * NULL the entire string is assumed to be Base64. */ RTDECL(ssize_t) RTBase64DecodedSize(const char *pszString, char **ppszEnd); /** + * Calculates the decoded data size for a Base64 encoded string. + * + * @returns The length in bytes. -1 if the encoding is bad. + * + * @param pszString The Base64 encoded string. + * @param cchStringMax The max length to decode, use RTSTR_MAX if the + * length of @a pszString is not known and it is + * really zero terminated. + * @param ppszEnd If not NULL, this will point to the first char + * following the Base64 encoded text block. If + * NULL the entire string is assumed to be Base64. + */ +RTDECL(ssize_t) RTBase64DecodedSizeEx(const char *pszString, size_t cchStringMax, char **ppszEnd); + +/** * Decodes a Base64 encoded string into the buffer supplied by the caller. * * @returns IPRT status code. @@ -79,6 +94,33 @@ RTDECL(int) RTBase64Decode(const char *pszString, void *pvData, size_t cbData, size_t *pcbActual, char **ppszEnd); /** + * Decodes a Base64 encoded string into the buffer supplied by the caller. + * + * @returns IPRT status code. + * @retval VERR_BUFFER_OVERFLOW if the buffer is too small. pcbActual will not + * be set, nor will ppszEnd. + * @retval VERR_INVALID_BASE64_ENCODING if the encoding is wrong. + * + * @param pszString The Base64 string. Whether the entire string or + * just the start of the string is in Base64 depends + * on whether ppszEnd is specified or not. + * @param cchStringMax The max length to decode, use RTSTR_MAX if the + * length of @a pszString is not known and it is + * really zero terminated. + * @param pvData Where to store the decoded data. + * @param cbData The size of the output buffer that pvData points to. + * @param pcbActual Where to store the actual number of bytes returned. + * Optional. + * @param ppszEnd Indicates that the string may contain other stuff + * after the Base64 encoded data when not NULL. Will + * be set to point to the first char that's not part of + * the encoding. If NULL the entire string must be part + * of the Base64 encoded data. + */ +RTDECL(int) RTBase64DecodeEx(const char *pszString, size_t cchStringMax, void *pvData, size_t cbData, + size_t *pcbActual, char **ppszEnd); + +/** * Calculates the length of the Base64 encoding of a given number of bytes of * data. * diff -Nru virtualbox-4.1.12-dfsg/include/iprt/bignum.h virtualbox-4.1.44-dfsg/include/iprt/bignum.h --- virtualbox-4.1.12-dfsg/include/iprt/bignum.h 1970-01-01 00:00:00.000000000 +0000 +++ virtualbox-4.1.44-dfsg/include/iprt/bignum.h 2015-11-11 15:06:02.000000000 +0000 @@ -0,0 +1,185 @@ +/** @file + * IPRT - Big Integer Numbers. + */ + +/* + * Copyright (C) 2006-2014 Oracle Corporation + * + * This file is part of VirtualBox Open Source Edition (OSE), as + * available from http://www.virtualbox.org. This file is free software; + * you can redistribute it and/or modify it under the terms of the GNU + * General Public License (GPL) as published by the Free Software + * Foundation, in version 2 as it comes in the "COPYING" file of the + * VirtualBox OSE distribution. VirtualBox OSE is distributed in the + * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind. + * + * The contents of this file may alternatively be used under the terms + * of the Common Development and Distribution License Version 1.0 + * (CDDL) only, as it comes in the "COPYING.CDDL" file of the + * VirtualBox OSE distribution, in which case the provisions of the + * CDDL are applicable instead of those of the GPL. + * + * You may elect to license modified versions of this file under the + * terms and conditions of either the GPL or the CDDL or both. + */ + + +#ifndef ___iprt_bignum_h +#define ___iprt_bignum_h + +#include + +RT_C_DECLS_BEGIN + +/** @defgroup grp_rtbignum RTBigNum - Big Integer Numbers + * @ingroup grp_rt + * @{ + */ + +/** The big integer number element type. */ +#if ARCH_BITS == 64 +typedef uint64_t RTBIGNUMELEMENT; +#else +typedef uint32_t RTBIGNUMELEMENT; +#endif +/** Pointer to a big integer number element. */ +typedef RTBIGNUMELEMENT *PRTBIGNUMELEMENT; +/** Pointer to a const big integer number element. */ +typedef RTBIGNUMELEMENT const *PCRTBIGNUMELEMENT; + +/** The size (in bytes) of one array element. */ +#if ARCH_BITS == 64 +# define RTBIGNUM_ELEMENT_SIZE 8 +#else +# define RTBIGNUM_ELEMENT_SIZE 4 +#endif +/** The number of bits in one array element. */ +#define RTBIGNUM_ELEMENT_BITS (RTBIGNUM_ELEMENT_SIZE * 8) +/** Returns the bitmask corrsponding to given bit number. */ +#if ARCH_BITS == 64 +# define RTBIGNUM_ELEMENT_BIT(iBit) RT_BIT_64(iBit) +#else +# define RTBIGNUM_ELEMENT_BIT(iBit) RT_BIT_32(iBit) +#endif +/** The maximum value one element can hold. */ +#if ARCH_BITS == 64 +# define RTBIGNUM_ELEMENT_MAX UINT64_MAX +#else +# define RTBIGNUM_ELEMENT_MAX UINT32_MAX +#endif +/** Mask including all the element bits set to 1. */ +#define RTBIGNUM_ELEMENT_MASK RTBIGNUM_ELEMENT_MAX + + +/** + * IPRT big integer number. + */ +typedef struct RTBIGNUM +{ + /** Elements array where the magnitue of the value is stored. */ + RTBIGNUMELEMENT *pauElements; + /** The current number of elements we're using in the pauElements array. */ + uint32_t cUsed; + /** The current allocation size of pauElements. */ + uint32_t cAllocated; + /** Reserved for future use. */ + uint32_t uReserved; + + /** Set if it's a negative number, clear if positive or zero. */ + uint32_t fNegative : 1; + + /** Whether to use a the data is sensitive (RTBIGNUMINIT_F_SENSITIVE). */ + uint32_t fSensitive : 1; + /** The number is currently scrambled */ + uint32_t fCurScrambled : 1; + + /** Bits reserved for future use. */ + uint32_t fReserved : 30; +} RTBIGNUM; + + +RTDECL(int) RTBigNumInit(PRTBIGNUM pBigNum, uint32_t fFlags, void const *pvRaw, size_t cbRaw); +RTDECL(int) RTBigNumInitZero(PRTBIGNUM pBigNum, uint32_t fFlags); + +/** @name RTBIGNUMINIT_F_XXX - RTBigNumInit flags. + * @{ */ +/** The number is sensitive so use a safer allocator, scramble it when not + * in use, and apply RTMemWipeThoroughly before freeing. The RTMemSafer API + * takes care of these things. + * @note When using this flag, concurrent access is not possible! */ +#define RTBIGNUMINIT_F_SENSITIVE RT_BIT(0) +/** Big endian number. */ +#define RTBIGNUMINIT_F_ENDIAN_BIG RT_BIT(1) +/** Little endian number. */ +#define RTBIGNUMINIT_F_ENDIAN_LITTLE RT_BIT(2) +/** The raw number is unsigned. */ +#define RTBIGNUMINIT_F_UNSIGNED RT_BIT(3) +/** The raw number is signed. */ +#define RTBIGNUMINIT_F_SIGNED RT_BIT(4) +/** @} */ + +RTDECL(int) RTBigNumClone(PRTBIGNUM pBigNum, PCRTBIGNUM pSrc); + +RTDECL(int) RTBigNumDestroy(PRTBIGNUM pBigNum); + + +/** + * The minimum number of bits require store the two's complement representation + * of the number. + * + * @returns Width in number of bits. + * @param pBigNum The big number. + */ +RTDECL(uint32_t) RTBigNumBitWidth(PCRTBIGNUM pBigNum); +RTDECL(uint32_t) RTBigNumByteWidth(PCRTBIGNUM pBigNum); + + +/** + * Converts the big number to a sign-extended big endian byte sequence. + * + * @returns IPRT status code + * @retval VERR_BUFFER_OVERFLOW if the specified buffer is too small. + * @param pBigNum The big number. + * @param pvBuf The output buffer (size is at least cbWanted). + * @param cbWanted The number of bytes wanted. + */ +RTDECL(int) RTBigNumToBytesBigEndian(PCRTBIGNUM pBigNum, void *pvBuf, size_t cbWanted); + +/** + * Compares two numbers. + * + * @retval -1 if pLeft < pRight. + * @retval 0 if pLeft == pRight. + * @retval 1 if pLeft > pRight. + * + * @param pLeft The left side number. + * @param pRight The right side number. + */ +RTDECL(int) RTBigNumCompare(PRTBIGNUM pLeft, PRTBIGNUM pRight); +RTDECL(int) RTBigNumCompareWithU64(PRTBIGNUM pLeft, uint64_t uRight); +RTDECL(int) RTBigNumCompareWithS64(PRTBIGNUM pLeft, int64_t iRight); + +RTDECL(int) RTBigNumAssign(PRTBIGNUM pDst, PCRTBIGNUM pSrc); +RTDECL(int) RTBigNumNegate(PRTBIGNUM pResult, PCRTBIGNUM pBigNum); +RTDECL(int) RTBigNumNegateThis(PRTBIGNUM pThis); + +RTDECL(int) RTBigNumAdd(PRTBIGNUM pResult, PCRTBIGNUM pAugend, PCRTBIGNUM pAddend); +RTDECL(int) RTBigNumSubtract(PRTBIGNUM pResult, PCRTBIGNUM pMinuend, PCRTBIGNUM pSubtrahend); +RTDECL(int) RTBigNumMultiply(PRTBIGNUM pResult, PCRTBIGNUM pMultiplicand, PCRTBIGNUM pMultiplier); +RTDECL(int) RTBigNumDivide(PRTBIGNUM pQuotient, PRTBIGNUM pRemainder, PCRTBIGNUM pDividend, PCRTBIGNUM pDivisor); +RTDECL(int) RTBigNumDivideKnuth(PRTBIGNUM pQuotient, PRTBIGNUM pRemainder, PCRTBIGNUM pDividend, PCRTBIGNUM pDivisor); +RTDECL(int) RTBigNumDivideLong(PRTBIGNUM pQuotient, PRTBIGNUM pRemainder, PCRTBIGNUM pDividend, PCRTBIGNUM pDivisor); +RTDECL(int) RTBigNumModulo(PRTBIGNUM pRemainder, PCRTBIGNUM pDividend, PCRTBIGNUM pDivisor); +RTDECL(int) RTBigNumExponentiate(PRTBIGNUM pResult, PCRTBIGNUM pBase, PCRTBIGNUM pExponent); +RTDECL(int) RTBigNumShiftLeft(PRTBIGNUM pResult, PCRTBIGNUM pValue, uint32_t cBits); +RTDECL(int) RTBigNumShiftRight(PRTBIGNUM pResult, PCRTBIGNUM pValue, uint32_t cBits); + +RTDECL(int) RTBigNumModExp(PRTBIGNUM pResult, PRTBIGNUM pBase, PRTBIGNUM pExponent, PRTBIGNUM pModulus); + + +/** @} */ + +RT_C_DECLS_END + +#endif + diff -Nru virtualbox-4.1.12-dfsg/include/iprt/cdefs.h virtualbox-4.1.44-dfsg/include/iprt/cdefs.h --- virtualbox-4.1.12-dfsg/include/iprt/cdefs.h 2012-04-02 13:24:42.000000000 +0000 +++ virtualbox-4.1.44-dfsg/include/iprt/cdefs.h 2015-11-11 15:06:03.000000000 +0000 @@ -906,16 +906,33 @@ /** @def RTDATADECL(type) * Runtime Library export or import declaration. * Data declared using this macro exists in all contexts. - * @param type The return type of the function declaration. + * @param type The data type. + */ +/** @def RT_DECL_DATA_CONST(type) + * Definition of a const variable. See DECL_HIDDEN_CONST. + * @param type The const data type. */ #if defined(IN_RT_R3) || defined(IN_RT_RC) || defined(IN_RT_R0) # ifdef IN_RT_STATIC -# define RTDATADECL(type) DECLHIDDEN(type) +# define RTDATADECL(type) DECLHIDDEN(type) +# define RT_DECL_DATA_CONST(type) DECL_HIDDEN_CONST(type) # else -# define RTDATADECL(type) DECLEXPORT(type) +# define RTDATADECL(type) DECLEXPORT(type) +# if defined(__cplusplus) && defined(__GNUC__) +# define RT_DECL_DATA_CONST(type) type +# elif defined(_MSC_VER) +# if _MSC_VER < 1400 +# define RT_DECL_DATA_CONST(type) DECLEXPORT(extern type) +# else +# define RT_DECL_DATA_CONST(type) DECLEXPORT(type) +# endif +# else +# define RT_DECL_DATA_CONST(type) DECLEXPORT(type) +# endif # endif #else -# define RTDATADECL(type) DECLIMPORT(type) +# define RTDATADECL(type) DECLIMPORT(type) +# define RT_DECL_DATA_CONST(type) DECLIMPORT(type) #endif /** @def RT_DECL_CLASS @@ -1057,6 +1074,13 @@ /** RT_CONCAT4 helper, don't use. */ #define RT_CONCAT4_HLP(a,b,c,d) a##b##c##d +/** + * String constant tuple - string constant, strlen(string constant). + * + * @param a_szConst String constant. + */ +#define RT_STR_TUPLE(a_szConst) a_szConst, (sizeof(a_szConst) - 1) + /** @def RT_BIT * Convert a bit number into an integer bitmask (unsigned). @@ -1168,13 +1192,17 @@ * This differs from the usual offsetof() in that it's not relying on builtin * compiler stuff and thus can use variables in arrays the structure may * contain. This is useful to determine the sizes of structures ending - * with a variable length field. + * with a variable length field. For gcc >= 4.4 see @bugref{7775}. * * @returns offset into the structure of the specified member. signed. * @param type Structure type. * @param member Member. */ -#define RT_OFFSETOF(type, member) ( (int)(uintptr_t)&( ((type *)(void *)0)->member) ) +#if defined(__GNUC__) && defined(__cplusplus) && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 4)) +# define RT_OFFSETOF(type, member) ( (int)(uintptr_t)&( ((type *)(void *)0x1000)->member) - 0x1000 ) +#else +# define RT_OFFSETOF(type, member) ( (int)(uintptr_t)&( ((type *)(void *)0)->member) ) +#endif /** @def RT_UOFFSETOF * Our own special offsetof() variant, returns an unsigned result. @@ -1182,13 +1210,17 @@ * This differs from the usual offsetof() in that it's not relying on builtin * compiler stuff and thus can use variables in arrays the structure may * contain. This is useful to determine the sizes of structures ending - * with a variable length field. + * with a variable length field. For gcc >= 4.4 see @bugref{7775}. * * @returns offset into the structure of the specified member. unsigned. * @param type Structure type. * @param member Member. */ -#define RT_UOFFSETOF(type, member) ( (uintptr_t)&( ((type *)(void *)0)->member) ) +#if defined(__GNUC__) && defined(__cplusplus) && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 4)) +# define RT_UOFFSETOF(type, member) ( (uintptr_t)&( ((type *)(void *)0x1000)->member) - 0x1000 ) +#else +# define RT_UOFFSETOF(type, member) ( (uintptr_t)&( ((type *)(void *)0)->member) ) +#endif /** @def RT_OFFSETOF_ADD * RT_OFFSETOF with an addend. @@ -1789,18 +1821,6 @@ # undef CLSIZELOG2 #endif - -/** @def NULL - * NULL pointer. - */ -#ifndef NULL -# ifdef __cplusplus -# define NULL 0 -# else -# define NULL ((void*)0) -# endif -#endif - /** @def NIL_OFFSET * NIL offset. * Whenever we use offsets instead of pointers to save space and relocation effort @@ -1851,8 +1871,14 @@ */ /** 1 K (Kilo) (1 024). */ #define _1K 0x00000400 +/** 2 K (Kilo) (2 048). */ +#define _2K 0x00000800 /** 4 K (Kilo) (4 096). */ #define _4K 0x00001000 +/** 8 K (Kilo) (8 192). */ +#define _8K 0x00002000 +/** 16 K (Kilo) (16 384). */ +#define _16K 0x00004000 /** 32 K (Kilo) (32 678). */ #define _32K 0x00008000 /** 64 K (Kilo) (65 536). */ diff -Nru virtualbox-4.1.12-dfsg/include/iprt/cpp/xml.h virtualbox-4.1.44-dfsg/include/iprt/cpp/xml.h --- virtualbox-4.1.12-dfsg/include/iprt/cpp/xml.h 2012-04-02 13:24:43.000000000 +0000 +++ virtualbox-4.1.44-dfsg/include/iprt/cpp/xml.h 2015-11-11 15:06:03.000000000 +0000 @@ -389,6 +389,7 @@ ~Node(); const char* getName() const; + const char* getPrefix() const; bool nameEquals(const char *pcszNamespace, const char *pcsz) const; bool nameEquals(const char *pcsz) const { diff -Nru virtualbox-4.1.12-dfsg/include/iprt/critsect.h virtualbox-4.1.44-dfsg/include/iprt/critsect.h --- virtualbox-4.1.12-dfsg/include/iprt/critsect.h 2012-04-02 13:24:43.000000000 +0000 +++ virtualbox-4.1.44-dfsg/include/iprt/critsect.h 2015-11-11 15:06:03.000000000 +0000 @@ -29,7 +29,7 @@ #include #include #include -#ifdef IN_RING3 +#if defined(IN_RING3) || defined(IN_RING0) # include #endif #ifdef RT_LOCK_STRICT_ORDER @@ -107,9 +107,11 @@ * The intended use is avoiding lots of conditional code where some component * might or might not require entering a critical section before access. */ #define RTCRITSECT_FLAGS_NOP UINT32_C(0x00000008) +/** Indicates that this is a ring-0 critical section. */ +#define RTCRITSECT_FLAGS_RING0 UINT32_C(0x00000010) /** @} */ -#ifdef IN_RING3 +#if defined(IN_RING3) || defined(IN_RING0) /** * Initialize a critical section. @@ -203,6 +205,8 @@ */ RTDECL(int) RTCritSectTryEnterDebug(PRTCRITSECT pCritSect, RTHCUINTPTR uId, RT_SRC_POS_DECL); +#ifdef IN_RING3 /* Crazy APIs: ring-3 only. */ + /** * Enter multiple critical sections. * @@ -240,6 +244,8 @@ */ RTDECL(int) RTCritSectEnterMultipleDebug(size_t cCritSects, PRTCRITSECT *papCritSects, RTUINTPTR uId, RT_SRC_POS_DECL); +#endif /* IN_RING3 */ + /** * Leave a critical section. * @@ -277,7 +283,7 @@ return pCritSect->NativeThreadOwner == RTThreadNativeSelf(); } -#endif /* IN_RING3 */ +#endif /* IN_RING3 || IN_RING0 */ /** * Checks the section is owned by anyone. diff -Nru virtualbox-4.1.12-dfsg/include/iprt/crypto/digest.h virtualbox-4.1.44-dfsg/include/iprt/crypto/digest.h --- virtualbox-4.1.12-dfsg/include/iprt/crypto/digest.h 1970-01-01 00:00:00.000000000 +0000 +++ virtualbox-4.1.44-dfsg/include/iprt/crypto/digest.h 2015-11-11 15:06:03.000000000 +0000 @@ -0,0 +1,189 @@ +/** @file + * IPRT - Crypto - Cryptographic Hash / Message Digest. + */ + +/* + * Copyright (C) 2014 Oracle Corporation + * + * This file is part of VirtualBox Open Source Edition (OSE), as + * available from http://www.virtualbox.org. This file is free software; + * you can redistribute it and/or modify it under the terms of the GNU + * General Public License (GPL) as published by the Free Software + * Foundation, in version 2 as it comes in the "COPYING" file of the + * VirtualBox OSE distribution. VirtualBox OSE is distributed in the + * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind. + * + * The contents of this file may alternatively be used under the terms + * of the Common Development and Distribution License Version 1.0 + * (CDDL) only, as it comes in the "COPYING.CDDL" file of the + * VirtualBox OSE distribution, in which case the provisions of the + * CDDL are applicable instead of those of the GPL. + * + * You may elect to license modified versions of this file under the + * terms and conditions of either the GPL or the CDDL or both. + */ + +#ifndef ___iprt_crypto_digest_h +#define ___iprt_crypto_digest_h + +#include + + +RT_C_DECLS_BEGIN + +/** @defgroup grp_rt_crdigest RTCrDigest - Crypographic Hash / Message Digest API. + * @ingroup grp_rt + * @{ + */ + +/** + * Cryptographic hash / message digest provider descriptor. + * + * This gives the basic details and identifiers of the algorithm as well as + * function pointers to the implementation. + */ +typedef struct RTCRDIGESTDESC +{ + /** The message digest provider name. */ + const char *pszName; + /** The object ID string. */ + const char *pszObjId; + /** Pointer to a NULL terminated table of alias object IDs (optional). */ + const char * const *papszObjIdAliases; + /** The IPRT digest type. */ + RTDIGESTTYPE enmType; + /** The max size of the final hash (binary). */ + uint32_t cbHash; + /** The size of the state. */ + uint32_t cbState; + /** Reserved. */ + uint32_t uReserved; + + /** + * Updates the digest with more data. + * + * @param pvState The opaque message digest state. + * @param pvData The data to add to the digest. + * @param cbData The amount of data to add to the digest. + */ + DECLCALLBACKMEMBER(void, pfnUpdate)(void *pvState, const void *pvData, size_t cbData); + + /** + * Finalizes the digest calculation. + * + * @param pvState The opaque message digest state. + * @param pbHash Where to store the output digest. This buffer is at + * least RTCRDIGESTDESC::cbHash bytes large. + */ + DECLCALLBACKMEMBER(void, pfnFinal)(void *pvState, uint8_t *pbHash); + + /** + * (Re-)Initializes the digest. Optional. + * + * Optional, RT_BZERO will be used if NULL. + * + * @returns IPRT status code. + * @param pvState The opaque message digest state. + * @param pvOpaque Opaque algortihm specific parameter. + * @param fReInit Set if this is a re-init call. + */ + DECLCALLBACKMEMBER(int, pfnInit)(void *pvState, void *pvOpaque, bool fReInit); + + /** + * Deletes the message digest state. + * + * Optional, memset will be used if NULL. + * + * @param pvState The opaque message digest state. + */ + DECLCALLBACKMEMBER(void, pfnDelete)(void *pvState); + + /** + * Clones the message digest state. + * + * Optional, memcpy will be used if NULL. + * + * @returns IPRT status code. + * @param pvState The opaque message digest state (destination). + * @param pvSrcState The opaque message digest state to clone (source). + */ + DECLCALLBACKMEMBER(int, pfnClone)(void *pvState, void const *pvSrcState); + + /** + * Gets the hash size. + * + * Optional, if not provided RTCRDIGESTDESC::cbHash will be returned. If + * provided though, RTCRDIGESTDESC::cbHash must be set to the largest possible + * hash size. + * + * @returns The hash size. + * @param pvState The opaque message digest state. + */ + DECLCALLBACKMEMBER(uint32_t, pfnGetHashSize)(void *pvState); + + /** + * Gets the digest type (when enmType is RTDIGESTTYPE_UNKNOWN). + * + * @returns The hash size. + * @param pvState The opaque message digest state. + */ + DECLCALLBACKMEMBER(RTDIGESTTYPE, pfnGetDigestType)(void *pvState); +} RTCRDIGESTDESC; +/** Pointer to const message digest details and vtable. */ +typedef RTCRDIGESTDESC const *PCRTCRDIGESTDESC; + +/** + * Finds a cryptographic hash / message digest descriptor by object identifier + * string. + * + * @returns Pointer to the message digest details & vtable if found. NULL if + * not found. + * @param pszObjId The dotted object identifier string of the message + * digest algorithm. + * @param ppvOpaque Where to return an opaque implementation specfici + * sub-type indicator that can be passed to + * RTCrDigestCreate. This is optional, fewer + * algortihms are available if not specified. + */ +RTDECL(PCRTCRDIGESTDESC) RTCrDigestFindByObjIdString(const char *pszObjId, void **ppvOpaque); + +/** + * Finds a cryptographic hash / message digest descriptor by object identifier + * ASN.1 object. + * + * @returns Pointer to the message digest details & vtable if found. NULL if + * not found. + * @param pszObjId The ASN.1 object ID of the message digest algorithm. + * @param ppvOpaque Where to return an opaque implementation specfici + * sub-type indicator that can be passed to + * RTCrDigestCreate. This is optional, fewer + * algortihms are available if not specified. + */ +RTDECL(PCRTCRDIGESTDESC) RTCrDigestFindByObjId(PCRTASN1OBJID pObjId, void **ppvOpaque); + +RTDECL(PCRTCRDIGESTDESC) RTCrDigestFindByType(RTDIGESTTYPE enmDigestType); +RTDECL(int) RTCrDigestCreateByObjIdString(PRTCRDIGEST phDigest, const char *pszObjId); +RTDECL(int) RTCrDigestCreateByObjId(PRTCRDIGEST phDigest, PCRTASN1OBJID pObjId); +RTDECL(int) RTCrDigestCreateByType(PRTCRDIGEST phDigest, RTDIGESTTYPE enmDigestType); + + +RTDECL(int) RTCrDigestCreate(PRTCRDIGEST phDigest, PCRTCRDIGESTDESC pDesc, void *pvOpaque); +RTDECL(int) RTCrDigestClone(PRTCRDIGEST phDigest, RTCRDIGEST hSrc); +RTDECL(int) RTCrDigestReset(RTCRDIGEST hDigest); +RTDECL(uint32_t) RTCrDigestRetain(RTCRDIGEST hDigest); +RTDECL(uint32_t) RTCrDigestRelease(RTCRDIGEST hDigest); +RTDECL(int) RTCrDigestUpdate(RTCRDIGEST hDigest, void const *pvData, size_t cbData); +RTDECL(int) RTCrDigestFinal(RTCRDIGEST hDigest, void *pvHash, size_t cbHash); +RTDECL(bool) RTCrDigestMatch(RTCRDIGEST hDigest, void const *pvHash, size_t cbHash); +RTDECL(uint8_t const *) RTCrDigestGetHash(RTCRDIGEST hDigest); +RTDECL(uint32_t) RTCrDigestGetHashSize(RTCRDIGEST hDigest); +RTDECL(uint64_t) RTCrDigestGetConsumedSize(RTCRDIGEST hDigest); +RTDECL(bool) RTCrDigestIsFinalized(RTCRDIGEST hDigest); +RTDECL(RTDIGESTTYPE) RTCrDigestGetType(RTCRDIGEST hDigest); + +/** @} */ + +RT_C_DECLS_END + +#endif + diff -Nru virtualbox-4.1.12-dfsg/include/iprt/crypto/pem.h virtualbox-4.1.44-dfsg/include/iprt/crypto/pem.h --- virtualbox-4.1.12-dfsg/include/iprt/crypto/pem.h 1970-01-01 00:00:00.000000000 +0000 +++ virtualbox-4.1.44-dfsg/include/iprt/crypto/pem.h 2015-11-11 15:06:03.000000000 +0000 @@ -0,0 +1,133 @@ +/** @file + * IPRT - Crypto - PEM-file Reader & Writer. + */ + +/* + * Copyright (C) 2006-2014 Oracle Corporation + * + * This file is part of VirtualBox Open Source Edition (OSE), as + * available from http://www.virtualbox.org. This file is free software; + * you can redistribute it and/or modify it under the terms of the GNU + * General Public License (GPL) as published by the Free Software + * Foundation, in version 2 as it comes in the "COPYING" file of the + * VirtualBox OSE distribution. VirtualBox OSE is distributed in the + * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind. + * + * The contents of this file may alternatively be used under the terms + * of the Common Development and Distribution License Version 1.0 + * (CDDL) only, as it comes in the "COPYING.CDDL" file of the + * VirtualBox OSE distribution, in which case the provisions of the + * CDDL are applicable instead of those of the GPL. + * + * You may elect to license modified versions of this file under the + * terms and conditions of either the GPL or the CDDL or both. + */ + +#ifndef ___iprt_crypto_spc_h +#define ___iprt_crypto_spc_h + +#include +#include +#include +#include +#include + + +RT_C_DECLS_BEGIN + +/** @defgroup grp_rt_spc RTCrPem - PEM-file Reader & Writer + * @ingroup grp_rt_crypto + * @{ + */ + + +/** + * One PEM marker word (use RT_STR_TUPLE to initialize). + */ +typedef struct RTCRPEMMARKERWORD +{ + /** The word string. */ + const char *pszWord; + /** The length. */ + uint32_t cchWord; +} RTCRPEMMARKERWORD; +/** Pointer to a const marker word. */ +typedef RTCRPEMMARKERWORD const *PCRTCRPEMMARKERWORD; + + +/** + * A PEM marker. + * + * This is an array of words with lengths, optimized for avoid unnecessary + * strlen() while searching the file content. It is ASSUMED that all PEM + * section markers starts with either 'BEGIN' or 'END', followed by the words + * in the this structure. + */ +typedef struct RTCRPEMMARKER +{ + /** Pointer to an array of marker words. */ + PCRTCRPEMMARKERWORD paWords; + /** Number of works in the array papszWords points to. */ + uint32_t cWords; +} RTCRPEMMARKER; +/** Pointer to a const PEM marker. */ +typedef RTCRPEMMARKER const *PCRTCRPEMMARKER; + + +/** + * A PEM section. + * + * The API works on linked lists of these. + */ +typedef struct RTCRPEMSECTION +{ + /** Pointer to the next file section. */ + struct RTCRPEMSECTION const *pNext; + /** The marker for this section. NULL if binary file. */ + PCRTCRPEMMARKER pMarker; + /** Pointer to the binary data. */ + uint8_t *pbData; + /** The size of the binary data. */ + size_t cbData; + /** Additional text preceeding the binary data. NULL if none. */ + char *pszPreamble; + /** The length of the preamble. */ + size_t cchPreamble; +} RTCRPEMSECTION; +/** Pointer to a PEM section. */ +typedef RTCRPEMSECTION *PRTCRPEMSECTION; +/** Pointer to a const PEM section. */ +typedef RTCRPEMSECTION const *PCRTCRPEMSECTION; + + +/** + * Frees sections returned by RTCrPemReadFile. + * @returns IPRT status code. + * @param pSectionHead The first section. + */ +RTDECL(int) RTCrPemFreeSections(PCRTCRPEMSECTION pSectionHead); + +/** + * Reads the content of the given file and returns a list of binary sections + * found in the file. + * + * If the file isn't an ASCII file or if no markers were found, the entire file + * content is returned as one single section (with pMarker = NULL). + * + * @returns IPRT status code. + * @param pszFilename The path to the file to read. + * @param fFlags Flags reserved for future hacks. + * @param paMarkers Array of one or more section markers to look for. + * @param cMarkers Number of markers in the array. + * @param ppSectionHead Where to return the head of the section list. + * @param pErrInfo Where to return extend error info. Optional. + */ +RTDECL(int) RTCrPemReadFile(const char *pszFilename, uint32_t fFlags, PCRTCRPEMMARKER paMarkers, size_t cMarkers, + PCRTCRPEMSECTION *ppSectionHead, PRTERRINFO pErrInfo); + +/** @} */ + +RT_C_DECLS_END + +#endif + diff -Nru virtualbox-4.1.12-dfsg/include/iprt/crypto/pkcs7.h virtualbox-4.1.44-dfsg/include/iprt/crypto/pkcs7.h --- virtualbox-4.1.12-dfsg/include/iprt/crypto/pkcs7.h 1970-01-01 00:00:00.000000000 +0000 +++ virtualbox-4.1.44-dfsg/include/iprt/crypto/pkcs7.h 2015-11-11 15:06:03.000000000 +0000 @@ -0,0 +1,521 @@ +/** @file + * IPRT - PKCS \#7, Cryptographic Message Syntax Standard (aka CMS). + */ + +/* + * Copyright (C) 2006-2014 Oracle Corporation + * + * This file is part of VirtualBox Open Source Edition (OSE), as + * available from http://www.virtualbox.org. This file is free software; + * you can redistribute it and/or modify it under the terms of the GNU + * General Public License (GPL) as published by the Free Software + * Foundation, in version 2 as it comes in the "COPYING" file of the + * VirtualBox OSE distribution. VirtualBox OSE is distributed in the + * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind. + * + * The contents of this file may alternatively be used under the terms + * of the Common Development and Distribution License Version 1.0 + * (CDDL) only, as it comes in the "COPYING.CDDL" file of the + * VirtualBox OSE distribution, in which case the provisions of the + * CDDL are applicable instead of those of the GPL. + * + * You may elect to license modified versions of this file under the + * terms and conditions of either the GPL or the CDDL or both. + */ + +#ifndef ___iprt_crypto_pkcs7_h +#define ___iprt_crypto_pkcs7_h + +#include +#include + + +RT_C_DECLS_BEGIN + +/** @defgroup grp_rt_crpkcs7 RTCrPkcs7 - PKCS \#7, Cryptographic Message Syntax Standard (aka CMS). + * @ingroup grp_rt_crypto + * @{ + */ + + +/** + * PKCS \#7 IssuerAndSerialNumber (IPRT representation). + */ +typedef struct RTCRPKCS7ISSUERANDSERIALNUMBER +{ + /** Sequence core. */ + RTASN1SEQUENCECORE SeqCore; + /** The certificate name. */ + RTCRX509NAME Name; + /** The certificate serial number. */ + RTASN1INTEGER SerialNumber; +} RTCRPKCS7ISSUERANDSERIALNUMBER; +/** Pointer to the IPRT representation of a PKCS \#7 IssuerAndSerialNumber. */ +typedef RTCRPKCS7ISSUERANDSERIALNUMBER *PRTCRPKCS7ISSUERANDSERIALNUMBER; +/** Pointer to the const IPRT representation of a PKCS \#7 + * IssuerAndSerialNumber. */ +typedef RTCRPKCS7ISSUERANDSERIALNUMBER const *PCRTCRPKCS7ISSUERANDSERIALNUMBER; +RTASN1TYPE_STANDARD_PROTOTYPES(RTCRPKCS7ISSUERANDSERIALNUMBER, RTDECL, RTCrPkcs7IssuerAndSerialNumber, SeqCore.Asn1Core); + + +/** Pointer to the IPRT representation of a PKCS \#7 SignerInfo. */ +typedef struct RTCRPKCS7SIGNERINFO *PRTCRPKCS7SIGNERINFO; +/** Pointer to the const IPRT representation of a PKCS \#7 SignerInfo. */ +typedef struct RTCRPKCS7SIGNERINFO const *PCRTCRPKCS7SIGNERINFO; +RTASN1_IMPL_GEN_SET_OF_TYPEDEFS_AND_PROTOS(RTCRPKCS7SIGNERINFOS, RTCRPKCS7SIGNERINFO, RTDECL, RTCrPkcs7SignerInfos); + + +/** + * Attribute value type (for the union). + */ +typedef enum RTCRPKCS7ATTRIBUTETYPE +{ + /** Zero is invalid. */ + RTCRPKCS7ATTRIBUTETYPE_INVALID = 0, + /** Not present, union is NULL. */ + RTCRPKCS7ATTRIBUTETYPE_NOT_PRESENT, + /** Unknown values, pCores. */ + RTCRPKCS7ATTRIBUTETYPE_UNKNOWN, + /** Object IDs, use pObjIds. */ + RTCRPKCS7ATTRIBUTETYPE_OBJ_IDS, + /** Octet strings, use pOctetStrings. */ + RTCRPKCS7ATTRIBUTETYPE_OCTET_STRINGS, + /** Counter signatures (PKCS \#9), use pCounterSignatures. */ + RTCRPKCS7ATTRIBUTETYPE_COUNTER_SIGNATURES, + /** Signing time (PKCS \#9), use pSigningTime. */ + RTCRPKCS7ATTRIBUTETYPE_SIGNING_TIME, + /** Microsoft timestamp info (RFC-3161) signed data, use pContentInfo. */ + RTCRPKCS7ATTRIBUTETYPE_MS_TIMESTAMP, + /** Blow the type up to 32-bits. */ + RTCRPKCS7ATTRIBUTETYPE_32BIT_HACK = 0x7fffffff +} RTCRPKCS7ATTRIBUTETYPE; + +/** + * PKCS \#7 Attribute (IPRT representation). + */ +typedef struct RTCRPKCS7ATTRIBUTE +{ + /** Sequence core. */ + RTASN1SEQUENCECORE SeqCore; + /** The attribute type (object ID). */ + RTASN1OBJID Type; + /** The type of data found in the values union. */ + RTCRPKCS7ATTRIBUTETYPE enmType; + /** Value allocation. */ + RTASN1ALLOCATION Allocation; + /** Values. */ + union + { + /** ASN.1 cores (RTCRPKCS7ATTRIBUTETYPE_UNKNOWN). */ + PRTASN1SETOFCORES pCores; + /** ASN.1 object identifiers (RTCRPKCS7ATTRIBUTETYPE_OBJ_IDS). */ + PRTASN1SETOFOBJIDS pObjIds; + /** ASN.1 octet strings (RTCRPKCS7ATTRIBUTETYPE_OCTET_STRINGS). */ + PRTASN1SETOFOCTETSTRINGS pOctetStrings; + /** Counter signatures RTCRPKCS7ATTRIBUTETYPE_COUNTER_SIGNATURES(). */ + PRTCRPKCS7SIGNERINFOS pCounterSignatures; + /** Signing time(s) (RTCRPKCS7ATTRIBUTETYPE_SIGNING_TIME). */ + PRTASN1SETOFTIMES pSigningTime; + /** Microsoft timestamp (RFC-3161 signed data). */ + struct RTCRPKCS7SETOFCONTENTINFOS *pContentInfos; + } uValues; +} RTCRPKCS7ATTRIBUTE; +/** Pointer to the IPRT representation of a PKCS \#7 Attribute. */ +typedef RTCRPKCS7ATTRIBUTE *PRTCRPKCS7ATTRIBUTE; +/** Pointer to the const IPRT representation of a PKCS \#7 Attribute. */ +typedef RTCRPKCS7ATTRIBUTE const *PCRTCRPKCS7ATTRIBUTE; +RTASN1TYPE_STANDARD_PROTOTYPES(RTCRPKCS7ATTRIBUTE, RTDECL, RTCrPkcs7Attribute, SeqCore.Asn1Core); + +RTASN1_IMPL_GEN_SET_OF_TYPEDEFS_AND_PROTOS(RTCRPKCS7ATTRIBUTES, RTCRPKCS7ATTRIBUTE, RTDECL, RTCrPkcs7Attributes); + + +/** + * One PKCS \#7 SignerInfo (IPRT representation). + */ +typedef struct RTCRPKCS7SIGNERINFO +{ + /** Sequence core. */ + RTASN1SEQUENCECORE SeqCore; + /** The structure version (RTCRPKCS7SIGNERINFO_V1). */ + RTASN1INTEGER Version; + /** The issuer and serial number of the certificate used to produce the + * encrypted digest below. */ + RTCRPKCS7ISSUERANDSERIALNUMBER IssuerAndSerialNumber; + /** The digest algorithm use to digest the signed content. */ + RTCRX509ALGORITHMIDENTIFIER DigestAlgorithm; + /** Authenticated attributes, optional [0]. + * @todo Check how other producers formats this. The microsoft one does not + * have explicit tags, but combines it with the SET OF. */ + RTCRPKCS7ATTRIBUTES AuthenticatedAttributes; + /** The digest encryption algorithm use to encrypt the digest of the signed + * content. */ + RTCRX509ALGORITHMIDENTIFIER DigestEncryptionAlgorithm; + /** The encrypted digest. */ + RTASN1OCTETSTRING EncryptedDigest; + /** Unauthenticated attributes, optional [1]. + * @todo Check how other producers formats this. The microsoft one does not + * have explicit tags, but combines it with the SET OF. */ + RTCRPKCS7ATTRIBUTES UnauthenticatedAttributes; +} RTCRPKCS7SIGNERINFO; +RTASN1TYPE_STANDARD_PROTOTYPES(RTCRPKCS7SIGNERINFO, RTDECL, RTCrPkcs7SignerInfo, SeqCore.Asn1Core); + +/** RTCRPKCS7SIGNERINFO::Version value. */ +#define RTCRPKCS7SIGNERINFO_V1 1 + +/** @name PKCS \#9 Attribute IDs + * @{ */ +/** Content type (RFC-2630 11.1). + * Value: Object Identifier */ +#define RTCR_PKCS9_ID_CONTENT_TYPE_OID "1.2.840.113549.1.9.3" +/** Message digest (RFC-2630 11.2). + * Value: Octet string. */ +#define RTCR_PKCS9_ID_MESSAGE_DIGEST_OID "1.2.840.113549.1.9.4" +/** Signing time (RFC-2630 11.3). + * Value: Octet string. */ +#define RTCR_PKCS9_ID_SIGNING_TIME_OID "1.2.840.113549.1.9.5" +/** Counter signature (RFC-2630 11.4). + * Value: SignerInfo. */ +#define RTCR_PKCS9_ID_COUNTER_SIGNATURE_OID "1.2.840.113549.1.9.6" +/** Microsoft timestamp (RTF-3161) counter signature (SignedData). + * @remarks This isn't defined by PKCS \#9, but lumped in here for + * convenience. It's actually listed as SPC by MS. */ +#define RTCR_PKCS9_ID_MS_TIMESTAMP "1.3.6.1.4.1.311.3.3.1" +/** @} */ + + +/** + * Get the (next) signing time attribute from the specfied SignerInfo or one of + * the immediate counter signatures. + * + * @returns Pointer to the signing time if found, NULL if not. + * @param pThis The SignerInfo to search. + * @param ppSignerInfo Pointer to variable keeping track of the + * enumeration, optional. + * + * If specified the input value is taken to the be + * SignerInfo of the previously returned signing + * time. The value pointed to is NULL, the + * search/enum restarts. + * + * On successful return this is set to the + * SignerInfo which we found the signing time in. + */ +RTDECL(PCRTASN1TIME) RTCrPkcs7SignerInfo_GetSigningTime(PCRTCRPKCS7SIGNERINFO pThis, PCRTCRPKCS7SIGNERINFO *ppSignerInfo); + + +/** + * Get the (first) timestamp from within a Microsoft timestamp server counter + * signature. + * + * @returns Pointer to the signing time if found, NULL if not. + * @param pThis The SignerInfo to search. + * @param ppContentInfo Where to return the pointer to the counter + * signature, optional. + */ +RTDECL(PCRTASN1TIME) RTCrPkcs7SignerInfo_GetMsTimestamp(PCRTCRPKCS7SIGNERINFO pThis, + struct RTCRPKCS7CONTENTINFO const **ppContentInfo); + + + +/** + * PKCS \#7 ContentInfo (IPRT representation). + */ +typedef struct RTCRPKCS7CONTENTINFO +{ + /** Sequence core. */ + RTASN1SEQUENCECORE SeqCore; + /** Object ID identifying the content below. */ + RTASN1OBJID ContentType; + /** Content, optional, explicit tag 0. + * + * Hack alert! This should've been an explict context tag 0 structure with a + * type selected according to ContentType. However, it's simpler to replace the + * explicit context with an OCTET STRING with implict tag 0. Then we can tag + * along on the encapsulation logic RTASN1OCTETSTRING provides for the dynamic + * inner type. The default decoder code will detect known structures as + * outlined in the union below, and decode the octet string content as an + * anonymous RTASN1CORE if not known. + * + * If the user want to decode the octet string content differently, it can do so + * by destroying and freeing the current encapsulated pointer, replacing it with + * it's own. (Of course following the RTASN1OCTETSTRING rules.) Just remember + * to also update the value in the union. + * + * @remarks What's signed and verified is Content.pEncapsulated->uData.pv. + */ + RTASN1OCTETSTRING Content; + /** Pointer to the CMS octet string that's inside the Content, NULL if PKCS \#7. + * + * Hack alert! When transitioning from PKCS \#7 to CMS, the designers decided to + * change things and add another wrapper. This time we're talking about a real + * octet string, not like the one above which is really an explicit content tag. + * When constructing or decoding CMS content, this will be the same pointer as + * Content.pEncapsulated, while the union below will be holding the same pointer + * as pCmsContent->pEncapsulated. + */ + PRTASN1OCTETSTRING pCmsContent; + /** Same as Content.pEncapsulated, except a choice of known types. */ + union + { + /** ContentType is RTCRPKCS7SIGNEDDATA_OID. */ + struct RTCRPKCS7SIGNEDDATA *pSignedData; + /** ContentType is RTCRSPCINDIRECTDATACONTENT_OID. */ + struct RTCRSPCINDIRECTDATACONTENT *pIndirectDataContent; + /** ContentType is RTCRTSPTSTINFO_OID. */ + struct RTCRTSPTSTINFO *pTstInfo; + /** Generic / Unknown / User. */ + PRTASN1CORE pCore; + } u; +} RTCRPKCS7CONTENTINFO; +/** Pointer to the IPRT representation of a PKCS \#7 ContentInfo. */ +typedef RTCRPKCS7CONTENTINFO *PRTCRPKCS7CONTENTINFO; +/** Pointer to the const IPRT representation of a PKCS \#7 ContentInfo. */ +typedef RTCRPKCS7CONTENTINFO const *PCRTCRPKCS7CONTENTINFO; +RTASN1TYPE_STANDARD_PROTOTYPES(RTCRPKCS7CONTENTINFO, RTDECL, RTCrPkcs7ContentInfo, SeqCore.Asn1Core); +RTASN1_IMPL_GEN_SET_OF_TYPEDEFS_AND_PROTOS(RTCRPKCS7SETOFCONTENTINFOS, RTCRPKCS7CONTENTINFO, RTDECL, RTCrPkcs7SetOfContentInfos); + +RTDECL(bool) RTCrPkcs7ContentInfo_IsSignedData(PCRTCRPKCS7CONTENTINFO pThis); + + +/** + * PKCS \#7 Certificate choice. + */ +typedef enum RTCRPKCS7CERTCHOICE +{ + RTCRPKCS7CERTCHOICE_INVALID = 0, + RTCRPKCS7CERTCHOICE_X509, + RTCRPKCS7CERTCHOICE_EXTENDED_PKCS6, + RTCRPKCS7CERTCHOICE_AC_V1, + RTCRPKCS7CERTCHOICE_AC_V2, + RTCRPKCS7CERTCHOICE_OTHER, + RTCRPKCS7CERTCHOICE_END, + RTCRPKCS7CERTCHOICE_32BIT_HACK = 0x7fffffff +} RTCRPKCS7CERTCHOICE; + + +/** + * Common representation for PKCS \#7 ExtendedCertificateOrCertificate and the + * CMS CertificateChoices types. + */ +typedef struct RTCRPKCS7CERT +{ + /** Dummy ASN.1 record, not encoded. */ + RTASN1DUMMY Dummy; + /** The value allocation. */ + RTASN1ALLOCATION Allocation; + /** The choice of value. */ + RTCRPKCS7CERTCHOICE enmChoice; + /** The value union. */ + union + { + /** Standard X.509 certificate (RTCRCMSCERTIFICATECHOICE_X509). */ + PRTCRX509CERTIFICATE pX509Cert; + /** Extended PKCS \#6 certificate (RTCRCMSCERTIFICATECHOICE_EXTENDED_PKCS6). */ + PRTASN1CORE pExtendedCert; + /** Attribute certificate version 1 (RTCRCMSCERTIFICATECHOICE_AC_V1). */ + PRTASN1CORE pAcV1; + /** Attribute certificate version 2 (RTCRCMSCERTIFICATECHOICE_AC_V2). */ + PRTASN1CORE pAcV2; + /** Other certificate (RTCRCMSCERTIFICATECHOICE_OTHER). */ + PRTASN1CORE pOtherCert; + } u; +} RTCRPKCS7CERT; +/** Pointer to the IPRT representation of PKCS \#7 or CMS certificate. */ +typedef RTCRPKCS7CERT *PRTCRPKCS7CERT; +/** Pointer to the const IPRT representation of PKCS \#7 or CMS certificate. */ +typedef RTCRPKCS7CERT const *PCRTCRPKCS7CERT; +RTASN1TYPE_STANDARD_PROTOTYPES(RTCRPKCS7CERT, RTDECL, RTCrPkcs7Cert, Dummy.Asn1Core); +RTASN1_IMPL_GEN_SET_OF_TYPEDEFS_AND_PROTOS(RTCRPKCS7SETOFCERTS, RTCRPKCS7CERT, RTDECL, RTCrPkcs7SetOfCerts); + +RTDECL(PCRTCRX509CERTIFICATE) RTCrPkcs7SetOfCerts_FindX509ByIssuerAndSerialNumber(PCRTCRPKCS7SETOFCERTS pCertificates, + PCRTCRX509NAME pIssuer, + PCRTASN1INTEGER pSerialNumber); + + +/** + * PKCS \#7 SignedData (IPRT representation). + */ +typedef struct RTCRPKCS7SIGNEDDATA +{ + /** Sequence core. */ + RTASN1SEQUENCECORE SeqCore; + /** The structure version value (1). */ + RTASN1INTEGER Version; + /** The digest algorithms that are used to signed the content (ContentInfo). */ + RTCRX509ALGORITHMIDENTIFIERS DigestAlgorithms; + /** The content that's being signed. */ + RTCRPKCS7CONTENTINFO ContentInfo; + /** Certificates, optional, implicit tag 0. (Required by Authenticode.) */ + RTCRPKCS7SETOFCERTS Certificates; + /** Certificate revocation lists, optional, implicit tag 1. + * Not used by Authenticode, so currently stubbed. */ + RTASN1CORE Crls; + /** Signer infos. */ + RTCRPKCS7SIGNERINFOS SignerInfos; +} RTCRPKCS7SIGNEDDATA; +/** Pointer to the IPRT representation of a PKCS \#7 SignedData. */ +typedef RTCRPKCS7SIGNEDDATA *PRTCRPKCS7SIGNEDDATA; +/** Pointer to the const IPRT representation of a PKCS \#7 SignedData. */ +typedef RTCRPKCS7SIGNEDDATA const *PCRTCRPKCS7SIGNEDDATA; +RTASN1TYPE_STANDARD_PROTOTYPES(RTCRPKCS7SIGNEDDATA, RTDECL, RTCrPkcs7SignedData, SeqCore.Asn1Core); +RTASN1_IMPL_GEN_SET_OF_TYPEDEFS_AND_PROTOS(RTCRPKCS7SETOFSIGNEDDATA, RTCRPKCS7SIGNEDDATA, RTDECL, RTCrPkcs7SetOfSignedData); + +/** PKCS \#7 SignedData object ID. */ +#define RTCRPKCS7SIGNEDDATA_OID "1.2.840.113549.1.7.2" + +/** PKCS \#7 SignedData version number 1. */ +#define RTCRPKCS7SIGNEDDATA_V1 1 +/* No version 2 seems to exist. */ +/** CMS SignedData version number 3. + * This should only be used if there are version 1 attribute certificates + * present, or if there are version 3 SignerInfo items present, or if + * enmcCountInfo is not id-data (RFC-5652, section 5.1). */ +#define RTCRPKCS7SIGNEDDATA_V3 3 +/** CMS SignedData version number 4. + * This should only be used if there are version 2 attribute certificates + * present (RFC-5652, section 5.1). */ +#define RTCRPKCS7SIGNEDDATA_V4 4 +/** CMS SignedData version number 5. + * This should only be used if there are certificates or/and CRLs of the + * OTHER type present (RFC-5652, section 5.1). */ +#define RTCRPKCS7SIGNEDDATA_V5 5 + + +/** @name RTCRPKCS7SIGNEDDATA_SANITY_F_XXX - Flags for RTPkcs7SignedDataCheckSantiy. + * @{ */ +/** Check for authenticode restrictions. */ +#define RTCRPKCS7SIGNEDDATA_SANITY_F_AUTHENTICODE RT_BIT_32(0) +/** Check that all the hash algorithms are known to IPRT. */ +#define RTCRPKCS7SIGNEDDATA_SANITY_F_ONLY_KNOWN_HASH RT_BIT_32(1) +/** Require signing certificate to be present. */ +#define RTCRPKCS7SIGNEDDATA_SANITY_F_SIGNING_CERT_PRESENT RT_BIT_32(2) +/** @} */ + + +/** + * PKCS \#7 DigestInfo (IPRT representation). + */ +typedef struct RTCRPKCS7DIGESTINFO +{ + /** Sequence core. */ + RTASN1SEQUENCECORE SeqCore; + /** The digest algorithm use to digest the signed content. */ + RTCRX509ALGORITHMIDENTIFIER DigestAlgorithm; + /** The digest. */ + RTASN1OCTETSTRING Digest; +} RTCRPKCS7DIGESTINFO; +/** Pointer to the IPRT representation of a PKCS \#7 DigestInfo object. */ +typedef RTCRPKCS7DIGESTINFO *PRTCRPKCS7DIGESTINFO; +/** Pointer to the const IPRT representation of a PKCS \#7 DigestInfo object. */ +typedef RTCRPKCS7DIGESTINFO const *PCRTCRPKCS7DIGESTINFO; +RTASN1TYPE_STANDARD_PROTOTYPES(RTCRPKCS7DIGESTINFO, RTDECL, RTCrPkcs7DigestInfo, SeqCore.Asn1Core); + + +/** + * Callback function for use with RTCrPkcs7VerifySignedData. + * + * @returns IPRT status code. + * @param pCert The certificate to verify. + * @param hCertPaths Unless the certificate is trusted directly, this + * is a reference to the certificate path builder + * and verifier instance that we used to establish + * at least valid trusted path to @a pCert. The + * callback can use this to enforce additional + * certificate lineage requirements, effective + * policy checks and whatnot. + * This is NIL_RTCRX509CERTPATHS if the certificate + * is directly trusted. + * @param fFlags Mix of the RTCRPKCS7VCC_F_XXX flags. + * @param pvUser The user argument. + * @param pErrInfo Optional error info buffer. + */ +typedef DECLCALLBACK(int) FNRTCRPKCS7VERIFYCERTCALLBACK(PCRTCRX509CERTIFICATE pCert, RTCRX509CERTPATHS hCertPaths, + uint32_t fFlags, void *pvUser, PRTERRINFO pErrInfo); +/** Pointer to a FNRTCRPKCS7VERIFYCERTCALLBACK callback. */ +typedef FNRTCRPKCS7VERIFYCERTCALLBACK *PFNRTCRPKCS7VERIFYCERTCALLBACK; + +/** @name RTCRPKCS7VCC_F_XXX - Flags for FNRTCRPKCS7VERIFYCERTCALLBACK. + * @{ */ +/** Normal callback for a direct signatory of the signed data. */ +#define RTCRPKCS7VCC_F_SIGNED_DATA RT_BIT_32(0) +/** Check that the signatory can be trusted for timestamps. */ +#define RTCRPKCS7VCC_F_TIMESTAMP RT_BIT_32(1) +/** @} */ + +/** + * @callback_method_impl{RTCRPKCS7VERIFYCERTCALLBACK, + * Default implementation that checks for the DigitalSignature KeyUsage bit.} + */ +RTDECL(int) RTCrPkcs7VerifyCertCallbackDefault(PCRTCRX509CERTIFICATE pCert, RTCRX509CERTPATHS hCertPaths, uint32_t fFlags, + void *pvUser, PRTERRINFO pErrInfo); + +/** + * @callback_method_impl{RTCRPKCS7VERIFYCERTCALLBACK, + * Standard code signing. Use this for Microsoft SPC.} + */ +RTDECL(int) RTCrPkcs7VerifyCertCallbackCodeSigning(PCRTCRX509CERTIFICATE pCert, RTCRX509CERTPATHS hCertPaths, uint32_t fFlags, + void *pvUser, PRTERRINFO pErrInfo); + +/** + * Verifies PKCS \#7 SignedData. + * + * For compatability with alternative crypto providers, the user must work on + * the top level PKCS \#7 structure instead directly on the SignedData. + * + * @returns IPRT status code. + * @param pContentInfo PKCS \#7 content info structure. + * @param fFlags RTCRPKCS7VERIFY_SD_F_XXX. + * @param hAdditionalCerts Store containing additional certificates to + * supplement those mentioned in the signed data. + * @param hTrustedCerts Store containing trusted certificates. + * @param pValidationTime The time we're supposed to validate the + * certificates chains at. Ignored for signatures + * with valid signing time attributes. + * @param pfnVerifyCert Callback for checking that a certificate used + * for signing the data is suitable. + * @param pvUser User argument for the callback. + * @param pErrInfo Optional error info buffer. + */ +RTDECL(int) RTCrPkcs7VerifySignedData(PCRTCRPKCS7CONTENTINFO pContentInfo, uint32_t fFlags, + RTCRSTORE hAdditionalCerts, RTCRSTORE hTrustedCerts, + PCRTTIMESPEC pValidationTime, PFNRTCRPKCS7VERIFYCERTCALLBACK pfnVerifyCert, void *pvUser, + PRTERRINFO pErrInfo); + +/** @name RTCRPKCS7VERIFY_SD_F_XXX - Flags for RTCrPkcs7VerifySignedData + * @{ */ +/** Always use the signing time attribute if present, requiring it to be + * verified as valid. The default behavior is to ignore unverifiable + * signing time attributes and use the @a pValidationTime instead. */ +#define RTCRPKCS7VERIFY_SD_F_ALWAYS_USE_SIGNING_TIME_IF_PRESENT RT_BIT_32(0) +/** Same as RTCRPKCS7VERIFY_SD_F_ALWAYS_USE_SIGNING_TIME_IF_PRESENT for the MS + * timestamp counter sigantures. */ +#define RTCRPKCS7VERIFY_SD_F_ALWAYS_USE_MS_TIMESTAMP_IF_PRESENT RT_BIT_32(1) +/** Only use signging time attributes from counter signatures. */ +#define RTCRPKCS7VERIFY_SD_F_COUNTER_SIGNATURE_SIGNING_TIME_ONLY RT_BIT_32(2) +/** Don't validate the counter signature containing the signing time, just use + * it unverified. This is useful if we don't necessarily have the root + * certificates for the timestamp server handy, but use with great care. + * @sa RTCRPKCS7VERIFY_SD_F_USE_MS_TIMESTAMP_UNVERIFIED */ +#define RTCRPKCS7VERIFY_SD_F_USE_SIGNING_TIME_UNVERIFIED RT_BIT_32(3) +/** Don't validate the MS counter signature containing the signing timestamp. + * @sa RTCRPKCS7VERIFY_SD_F_USE_SIGNING_TIME_UNVERIFIED */ +#define RTCRPKCS7VERIFY_SD_F_USE_MS_TIMESTAMP_UNVERIFIED RT_BIT_32(4) +/** Do not consider timestamps in microsoft counter signatures. */ +#define RTCRPKCS7VERIFY_SD_F_IGNORE_MS_TIMESTAMP RT_BIT_32(5) +/** The signed data requires certificates to have the timestamp extended + * usage bit present. This is used for recursivly verifying MS timestamp + * signatures. */ +#define RTCRPKCS7VERIFY_SD_F_USAGE_TIMESTAMPING RT_BIT_32(6) + +/** Indicates internally that we're validating a counter signature and should + * use different rules when checking out the authenticated attributes. + * @internal */ +#define RTCRPKCS7VERIFY_SD_F_COUNTER_SIGNATURE RT_BIT_32(31) +/** @} */ + +/** @} */ + +RT_C_DECLS_END + +#endif + diff -Nru virtualbox-4.1.12-dfsg/include/iprt/crypto/pkix.h virtualbox-4.1.44-dfsg/include/iprt/crypto/pkix.h --- virtualbox-4.1.12-dfsg/include/iprt/crypto/pkix.h 1970-01-01 00:00:00.000000000 +0000 +++ virtualbox-4.1.44-dfsg/include/iprt/crypto/pkix.h 2015-11-11 15:06:03.000000000 +0000 @@ -0,0 +1,391 @@ +/** @file + * IPRT - Public Key Infrastructure APIs. + */ + +/* + * Copyright (C) 2006-2014 Oracle Corporation + * + * This file is part of VirtualBox Open Source Edition (OSE), as + * available from http://www.virtualbox.org. This file is free software; + * you can redistribute it and/or modify it under the terms of the GNU + * General Public License (GPL) as published by the Free Software + * Foundation, in version 2 as it comes in the "COPYING" file of the + * VirtualBox OSE distribution. VirtualBox OSE is distributed in the + * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind. + * + * The contents of this file may alternatively be used under the terms + * of the Common Development and Distribution License Version 1.0 + * (CDDL) only, as it comes in the "COPYING.CDDL" file of the + * VirtualBox OSE distribution, in which case the provisions of the + * CDDL are applicable instead of those of the GPL. + * + * You may elect to license modified versions of this file under the + * terms and conditions of either the GPL or the CDDL or both. + */ + +#ifndef ___iprt_crypto_pkix_h +#define ___iprt_crypto_pkix_h + +#include + + +RT_C_DECLS_BEGIN + +/** @defgroup grp_rt_crpkix RTCrPkix - Public Key Infrastructure APIs + * @ingroup grp_rt_crypto + * @{ + */ + +/** + * Verifies the signature (@a pSignatureValue) of the give data (@a pvData) + * using the specfied public key (@a pPublicKey) and algorithm. + * + * @returns IPRT status code. + * @param pAlgorithm The signature algorithm (digest w/ cipher). + * @param pParameters Parameter to the public key algorithm. Optional. + * @param pPublicKey The public key. + * @param pSignatureValue The signature value. + * @param pvData The signed data. + * @param cbData The amount of signed data. + * @param pErrInfo Where to return extended error info. Optional. + */ +RTDECL(int) RTCrPkixPubKeyVerifySignature(PCRTASN1OBJID pAlgorithm, PCRTASN1DYNTYPE pParameters, PCRTASN1BITSTRING pPublicKey, + PCRTASN1BITSTRING pSignatureValue, const void *pvData, size_t cbData, + PRTERRINFO pErrInfo); + + +/** + * Gets the cipher OID matching the given signature algorithm. + * + * @returns Cipher OID string on success, NULL on failure. + * @param pAlgorithm The signature algorithm (digest w/ cipher). + */ +RTDECL(const char *) RTCrPkixGetCiperOidFromSignatureAlgorithm(PCRTASN1OBJID pAlgorithm); + + +/** @name PKCS-1 Object Identifiers (OIDs) + * @{ */ +#define RTCR_PKCS1_OID "1.2.840.113549.1.1" +#define RTCR_PKCS1_RSA_OID "1.2.840.113549.1.1.1" +#define RTCR_PKCS1_MD2_WITH_RSA_OID "1.2.840.113549.1.1.2" +#define RTCR_PKCS1_MD4_WITH_RSA_OID "1.2.840.113549.1.1.3" +#define RTCR_PKCS1_MD5_WITH_RSA_OID "1.2.840.113549.1.1.4" +#define RTCR_PKCS1_SHA1_WITH_RSA_OID "1.2.840.113549.1.1.5" +#define RTCR_PKCS1_RSA_OAEP_ENCRYPTION_SET_OID "1.2.840.113549.1.1.6" +#define RTCR_PKCS1_RSA_AES_OAEP_OID "1.2.840.113549.1.1.7" +#define RTCR_PKCS1_MSGF1_OID "1.2.840.113549.1.1.8" +#define RTCR_PKCS1_P_SPECIFIED_OID "1.2.840.113549.1.1.9" +#define RTCR_PKCS1_RSASSA_PSS_OID "1.2.840.113549.1.1.10" +#define RTCR_PKCS1_SHA256_WITH_RSA_OID "1.2.840.113549.1.1.11" +#define RTCR_PKCS1_SHA384_WITH_RSA_OID "1.2.840.113549.1.1.12" +#define RTCR_PKCS1_SHA512_WITH_RSA_OID "1.2.840.113549.1.1.13" +#define RTCR_PKCS1_SHA224_WITH_RSA_OID "1.2.840.113549.1.1.14" +/** @} */ + + +/** + * Public key signature scheme provider descriptor. + */ +typedef struct RTCRPKIXSIGNATUREDESC +{ + /** The signature scheme provider name. */ + const char *pszName; + /** The object ID string. */ + const char *pszObjId; + /** Pointer to a NULL terminated table of alias object IDs (optional). */ + const char * const *papszObjIdAliases; + /** The size of the state. */ + uint32_t cbState; + /** Reserved for future / explicit padding. */ + uint32_t uReserved; + /** Provider specific field. This generally indicates the kind of padding + * scheme to employ with the given OID. */ + uintptr_t uProviderSpecific; + + /** + * Initializes the state of the signature scheme provider. + * + * Optional, RT_BZERO will be used if NULL. + * + * @returns IPRT status code. + * @param pDesc Pointer to this structure (for uProviderSpecific). + * @param pvState The opaque provider state. + * @param pvOpaque Opaque provider specific parameter. + * @param fSigning Set if a signing operation is going to be performed, + * clear if it is a verification. This is a fixed + * setting for the lifetime of the instance due to the + * algorithm requiring different keys. + * @param pKey The key to use (whether private or public depends on + * the operation). + * @param pParams Algorithm/key parameters, optional. Will be NULL if + * none. + */ + DECLCALLBACKMEMBER(int, pfnInit)(struct RTCRPKIXSIGNATUREDESC const *pDesc, void *pvState, void *pvOpaque, bool fSigning, + PCRTASN1BITSTRING pKey, PCRTASN1DYNTYPE pParams); + + /** + * Resets the state before performing another signing or verification. + * + * Optional. It is assumed that the provider does not have any state needing to + * be re-initialized if this method is not implemented. + * + * @returns IPRT status code. + * @param pDesc Pointer to this structure (for uProviderSpecific). + * @param pvState The opaque provider state. + * @param fSigning Exactly the same value as the init call. + */ + DECLCALLBACKMEMBER(int, pfnReset)(struct RTCRPKIXSIGNATUREDESC const *pDesc, void *pvState, bool fSigning); + + /** + * Deletes the provider state. Optional. + * + * The state will be securely wiped clean after the call, regardless of whether + * the method is implemented or not. + * + * @param pDesc Pointer to this structure (for uProviderSpecific). + * @param pvState The opaque provider state. + * @param fSigning Exactly the same value as the init call. + */ + DECLCALLBACKMEMBER(void, pfnDelete)(struct RTCRPKIXSIGNATUREDESC const *pDesc, void *pvState, bool fSigning); + + /** + * Verifies a signed message digest (fSigning = false). + * + * @returns IPRT status code. + * @retval VINF_SUCCESS if the signature checked out correctly. + * @retval VERR_PKIX_KEY wrong key or some other key issue. + * + * @param pDesc Pointer to this structure (for uProviderSpecific). + * @param pvState The opaque provider state. + * @param hDigest The handle to the digest. Call RTCrDigestFinal to + * complete and retreive the final hash value. + * @param pvSignature The signature to validate. + * @param cbSignature The size of the signature (in bytes). + */ + DECLCALLBACKMEMBER(int, pfnVerify)(struct RTCRPKIXSIGNATUREDESC const *pDesc, void *pvState, + RTCRDIGEST hDigest, void const *pvSignature, size_t cbSignature); + + /** + * Sign a message digest (fSigning = true). + * + * @returns IPRT status code. + * @retval VINF_SUCCESS on success. + * @retval VERR_PKIX_KEY wrong key or some other key issue. + * @retval VERR_BUFFER_OVERFLOW if the signature buffer is too small, the + * require buffer size will be available in @a *pcbSignature. + * + * @param pDesc Pointer to this structure (for uProviderSpecific). + * @param pvState The opaque provider state. + * @param hDigest The handle to the digest. Call RTCrDigestFinal to + * complete and retreive the final hash value. + * @param pvSignature The output signature buffer. + * @param pcbSignature On input the variable pointed to holds the size of + * the buffer @a pvSignature points to. + * On return the variable pointed to is set to the size + * of the returned signature, or the required size in + * case of VERR_BUFFER_OVERFLOW. + */ + DECLCALLBACKMEMBER(int, pfnSign)(struct RTCRPKIXSIGNATUREDESC const *pDesc, void *pvState, + RTCRDIGEST hDigest, void *pvSignature, size_t *pcbSignature); + +} RTCRPKIXSIGNATUREDESC; +/** Pointer to a public key signature scheme provider descriptor. */ +typedef RTCRPKIXSIGNATUREDESC const *PCRTCRPKIXSIGNATUREDESC; + + +PCRTCRPKIXSIGNATUREDESC RTCrPkixSignatureFindByObjIdString(const char *pszObjId, void *ppvOpaque); +PCRTCRPKIXSIGNATUREDESC RTCrPkixSignatureFindByObjId(PCRTASN1OBJID pObjId, void *ppvOpaque); +RTDECL(int) RTCrPkixSignatureCreateByObjIdString(PRTCRPKIXSIGNATURE phSignature, const char *pszObjId, bool fSigning, + PCRTASN1BITSTRING pKey,PCRTASN1DYNTYPE pParams); +RTDECL(int) RTCrPkixSignatureCreateByObjId(PRTCRPKIXSIGNATURE phSignature, PCRTASN1OBJID pObjId, bool fSigning, + PCRTASN1BITSTRING pKey, PCRTASN1DYNTYPE pParams); + + +RTDECL(int) RTCrPkixSignatureCreate(PRTCRPKIXSIGNATURE phSignature, PCRTCRPKIXSIGNATUREDESC pDesc, void *pvOpaque, + bool fSigning, PCRTASN1BITSTRING pKey, PCRTASN1DYNTYPE pParams); +RTDECL(uint32_t) RTCrPkixSignatureRetain(RTCRPKIXSIGNATURE hSignature); +RTDECL(uint32_t) RTCrPkixSignatureRelease(RTCRPKIXSIGNATURE hSignature); +RTDECL(int) RTCrPkixSignatureVerify(RTCRPKIXSIGNATURE hSignature, RTCRDIGEST hDigest, + void const *pvSignature, size_t cbSignature); +RTDECL(int) RTCrPkixSignatureVerifyBitString(RTCRPKIXSIGNATURE hSignature, RTCRDIGEST hDigest, PCRTASN1BITSTRING pSignature); +RTDECL(int) RTCrPkixSignatureVerifyOctetString(RTCRPKIXSIGNATURE hSignature, RTCRDIGEST hDigest, PCRTASN1OCTETSTRING pSignature); +RTDECL(int) RTCrPkixSignatureSign(RTCRPKIXSIGNATURE hSignature, RTCRDIGEST hDigest, + void *pvSignature, size_t *pcbSignature); + + +/** + * Public key encryption scheme provider descriptor. + * + * @todo This is just a sketch left over from when the signature code was + * chiseled out. + */ +typedef struct RTCRPKIXENCRYPTIONDESC +{ + /** The encryption scheme provider name. */ + const char *pszName; + /** The object ID string. */ + const char *pszObjId; + /** Pointer to a NULL terminated table of alias object IDs (optional). */ + const char * const *papszObjIdAliases; + /** The size of the state. */ + uint32_t cbState; + /** Reserved for future use / padding. */ + uint32_t uReserved; + /** Provider specific field. */ + uintptr_t uProviderSpecific; + + /** + * Initializes the state for this encryption scheme. + * + * Optional, RT_BZERO will be used if NULL. + * + * @returns IPRT status code. + * @param pDesc Pointer to this structure (so uProviderSpecific can + * be read). + * @param pvState The opaque provider state. + * @param pvOpaque Opaque provider specific parameter. + * @param fEncrypt Set if the instance will be encrypting, clear if it + * will be decrypting. This aspect of the instance is + * immutable due to the algorithm requiring different + * keys for each of the operations. + * @param pKey The key to use (whether private or public depends on + * the operation type). + * @param pParams Algorithm/key parameters, optional. Will be NULL if + * none. + */ + DECLCALLBACKMEMBER(int, pfnInit)(struct RTCRPKIXENCRYPTIONDESC const *pDesc, void *pvState, void *pvOpaque, bool fEncrypt, + PCRTASN1BITSTRING pKey, PCRTASN1DYNTYPE pParams); + + /** + * Re-initializes the provider state. + * + * Optional. It is assumed that the provider does not have any state needing + * to be re-initialized if this method is not implemented. (Do not assume that + * a final encrypt/decrypt call has been made prior to this call.) + * + * @returns IPRT status code. + * @param pDesc Pointer to this structure (so uProviderSpecific can + * be read). + * @param pvState The opaque provider state. + * @param enmOperation Same as for the earlier pfnInit call. + */ + DECLCALLBACKMEMBER(int, pfnReset)(struct RTCRPKIXENCRYPTIONDESC const *pDesc, void *pvState, bool fEncrypt); + + /** + * Deletes the provider state. Optional. + * + * The state will be securely wiped clean after the call, regardless of whether + * the method is implemented or not. + * + * @param pDesc Pointer to this structure (so uProviderSpecific can + * be read). + * @param pvState The opaque provider state. + * @param enmOperation Same as for the earlier pfnInit call. + */ + DECLCALLBACKMEMBER(void, pfnDelete)(struct RTCRPKIXENCRYPTIONDESC const *pDesc, void *pvState, bool fEncrypt); + + /** + * Encrypt using the public key (fEncrypt = true). + * + * @returns IPRT status code. + * @retval VINF_SUCCESS on success. + * @retval VERR_PKIX_KEY wrong key or some other key issue. + * @retval VERR_BUFFER_OVERFLOW if the output buffer is too small, the require + * buffer size will be available in @a *pcbCiphertext. The caller can + * should retry the call with a larger buffer. + * + * @param pDesc Pointer to this structure (so uProviderSpecific can + * be read). + * @param pvState The opaque provider state. + * @param pvPlaintext The plaintext to encrypt. + * @param cbPlaintext The number of bytes of plaintext. + * @param pvCiphertext Where to return the ciphertext (if any). + * @param cbMaxCiphertext The size of the buffer @a pvCiphertext points to. + * @param pcbCiphertext Where to return the actual number of bytes of + * ciphertext returned. + * @param fFinal Whether this is the final call. + */ + DECLCALLBACKMEMBER(int, pfnEncrypt)(struct RTCRPKIXENCRYPTIONDESC const *pDesc, void *pvState, + void const *pvPlaintext, size_t cbPlaintext, + void *pvCiphertext, size_t cbMaxCiphertext, size_t *pcbCiphertext, bool fFinal); + + /** + * Calculate the output buffer size for the next pfnEncrypt call. + * + * @returns IPRT status code. + * @param pDesc Pointer to this structure (so uProviderSpecific can + * be read). + * @param pvState The opaque provider state. + * @param cbPlaintext The number of bytes of plaintext. + * @param pcbCiphertext Where to return the minimum buffer size. This may + * be larger than the actual number of bytes return. + * @param fFinal Whether this is the final call. + */ + DECLCALLBACKMEMBER(int, pfnEncryptLength)(struct RTCRPKIXENCRYPTIONDESC const *pDesc, void *pvState, + size_t cbPlaintext, size_t *pcbCiphertext, bool fFinal); + + /** + * Decrypt using the private key (fEncrypt = false). + * + * @returns IPRT status code. + * @retval VINF_SUCCESS on success. + * @retval VERR_PKIX_KEY wrong key or some other key issue. + * @retval VERR_BUFFER_OVERFLOW if the output buffer is too small, the require + * buffer size will be available in @a *pcbCiphertext. The caller can + * should retry the call with a larger buffer. + * + * @param pDesc Pointer to this structure (so uProviderSpecific can + * be read). + * @param pvState The opaque provider state. + * @param pvCiphertext The ciphertext to decrypt. + * @param cbCiphertext The number of bytes of ciphertext. + * @param pvPlaintext Where to return the plaintext (if any). + * @param cbMaxPlaintext The size of the buffer @a pvPlaintext points to. + * @param pcbPlaintext Where to return the actual number of bytes of + * plaintext returned. + * @param fFinal Whether this is the final call. + */ + DECLCALLBACKMEMBER(int, pfnDecrypt)(struct RTCRPKIXENCRYPTIONDESC const *pDesc, void *pvState, + void const *pvCiphertext, size_t cbCiphertext, + void *pvPlaintext, size_t cbMaxPlaintext, size_t *pcbPlaintext, bool fFinal); + + /** + * Calculate the output buffer size for the next pfnDecrypt call. + * + * @returns IPRT status code. + * @param pDesc Pointer to this structure (so uProviderSpecific can + * be read). + * @param pvState The opaque provider state. + * @param cbCiphertext The number of bytes of ciphertext. + * @param pcbPlaintext Where to return the minimum buffer size. This may + * be larger than the actual number of bytes return. + * @param fFinal Whether this is the final call. + */ + DECLCALLBACKMEMBER(int, pfnDecryptLength)(struct RTCRPKIXENCRYPTIONDESC const *pDesc, void *pvState, + size_t cbCiphertext, size_t *pcbPlaintext, bool fFinal); +} RTCRPKIXENCRYPTIONDESC; +/** Pointer to a public key encryption schema provider descriptor. */ +typedef RTCRPKIXENCRYPTIONDESC const *PCRTCRPKIXENCRYPTIONDESC; + + +PCRTCRPKIXENCRYPTIONDESC RTCrPkixEncryptionFindByObjIdString(const char *pszObjId, void *ppvOpaque); +PCRTCRPKIXENCRYPTIONDESC RTCrPkixEncryptionFindByObjId(PCRTASN1OBJID pObjId, void *ppvOpaque); +RTDECL(int) RTCrPkixEncryptionCreateByObjIdString(PRTCRPKIXENCRYPTION phEncryption, const char *pszObjId, + bool fEncrypt, PCRTASN1BITSTRING pKey,PCRTASN1DYNTYPE pParams); +RTDECL(int) RTCrPkixEncryptionCreateByObjId(PRTCRPKIXENCRYPTION phEncryption, PCRTASN1OBJID pObjId, bool fEncrypt, + PCRTASN1BITSTRING pKey, PCRTASN1DYNTYPE pParams); + + +RTDECL(int) RTCrPkixEncryptionCreate(PRTCRPKIXENCRYPTION phEncryption, PCRTCRPKIXENCRYPTIONDESC pDesc, void *pvOpaque, + bool fEncrypt, PCRTASN1BITSTRING pKey, PCRTASN1DYNTYPE pParams); +RTDECL(int) RTCrPkixEncryptionReset(RTCRPKIXENCRYPTION hEncryption); +RTDECL(uint32_t) RTCrPkixEncryptionRetain(RTCRPKIXENCRYPTION hEncryption); +RTDECL(uint32_t) RTCrPkixEncryptionRelease(RTCRPKIXENCRYPTION hEncryption); + + +/** @} */ + +RT_C_DECLS_END + +#endif + diff -Nru virtualbox-4.1.12-dfsg/include/iprt/crypto/rsa.h virtualbox-4.1.44-dfsg/include/iprt/crypto/rsa.h --- virtualbox-4.1.12-dfsg/include/iprt/crypto/rsa.h 1970-01-01 00:00:00.000000000 +0000 +++ virtualbox-4.1.44-dfsg/include/iprt/crypto/rsa.h 2015-11-11 15:06:03.000000000 +0000 @@ -0,0 +1,148 @@ +/** @file + * IPRT - Crypto - RSA Public Key Cryptosystem . + */ + +/* + * Copyright (C) 2006-2014 Oracle Corporation + * + * This file is part of VirtualBox Open Source Edition (OSE), as + * available from http://www.virtualbox.org. This file is free software; + * you can redistribute it and/or modify it under the terms of the GNU + * General Public License (GPL) as published by the Free Software + * Foundation, in version 2 as it comes in the "COPYING" file of the + * VirtualBox OSE distribution. VirtualBox OSE is distributed in the + * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind. + * + * The contents of this file may alternatively be used under the terms + * of the Common Development and Distribution License Version 1.0 + * (CDDL) only, as it comes in the "COPYING.CDDL" file of the + * VirtualBox OSE distribution, in which case the provisions of the + * CDDL are applicable instead of those of the GPL. + * + * You may elect to license modified versions of this file under the + * terms and conditions of either the GPL or the CDDL or both. + */ + +#ifndef ___iprt_crypto_spc_h +#define ___iprt_crypto_spc_h + +#include +#include +#include +#include +#include + + +RT_C_DECLS_BEGIN + +/** @defgroup grp_rt_spc RTCrRsa - RSA Public Key Cryptosystem + * @ingroup grp_rt_crypto + * @{ + */ + +/** + * RSA public key - ASN.1 IPRT representation. + */ +typedef struct RTCRRSAPUBLICKEY +{ + /** Sequence core for the structure. */ + RTASN1SEQUENCECORE SeqCore; + /** The modulus (n). */ + RTASN1INTEGER Modulus; + /** The public exponent (e). */ + RTASN1INTEGER PublicExponent; +} RTCRRSAPUBLICKEY; +/** Pointer to the ASN.1 IPRT representation of an RSA public key. */ +typedef RTCRRSAPUBLICKEY *PRTCRRSAPUBLICKEY; +/** Pointer to the const ASN.1 IPRT representation of an RSA public key. */ +typedef RTCRRSAPUBLICKEY const *PCRTCRRSAPUBLICKEY; +RTASN1TYPE_STANDARD_PROTOTYPES(RTCRRSAPUBLICKEY, RTDECL, RTCrRsaPublicKey, SeqCore.Asn1Core); + + +/** + * RSA other prime info (ASN.1 IPRT representation). + */ +typedef struct RTCRRSAOTHERPRIMEINFO +{ + /** Sequence core for the structure. */ + RTASN1SEQUENCECORE SeqCore; + /** The prime (ri). */ + RTASN1INTEGER Prime; + /** The exponent (di). */ + RTASN1INTEGER Exponent; + /** The coefficient (ti). */ + RTASN1INTEGER Coefficient; +} RTCRRSAOTHERPRIMEINFO; +/** Pointer to the ASN.1 IPRT representation of RSA other prime info. */ +typedef RTCRRSAOTHERPRIMEINFO *PRTCRRSAOTHERPRIMEINFO; +/** Pointer to the const ASN.1 IPRT representation of RSA other prime info. */ +typedef RTCRRSAOTHERPRIMEINFO const *PCRTCRRSAOTHERPRIMEINFO; +RTASN1TYPE_STANDARD_PROTOTYPES(RTCRRSAOTHERPRIMEINFO, RTDECL, RTCrRsaOtherPrimeInfo, SeqCore.Asn1Core); +RTASN1_IMPL_GEN_SEQ_OF_TYPEDEFS_AND_PROTOS(RTCRRSAOTHERPRIMEINFOS, RTCRRSAOTHERPRIMEINFO, RTDECL, RTCrRsaOtherPrimeInfos); + +/** + * RSA private key - ASN.1 IPRT representation. + */ +typedef struct RTCRRSAPRIVATEKEY +{ + /** Sequence core for the structure. */ + RTASN1SEQUENCECORE SeqCore; + /** Key version number. */ + RTASN1INTEGER Version; + /** The modulus (n). */ + RTASN1INTEGER Modulus; + /** The public exponent (e). */ + RTASN1INTEGER PublicExponent; + /** The private exponent (d). */ + RTASN1INTEGER PrivateExponent; + /** The first prime factor (p) of the modulus (n). */ + RTASN1INTEGER Prime1; + /** The second prime factor (q) of the modulus (n). */ + RTASN1INTEGER Prime2; + /** The first exponent (d mod (p-1)). */ + RTASN1INTEGER Exponent1; + /** The second exponent (d mod (q-1)). */ + RTASN1INTEGER Exponent2; + /** The coefficient ((inverse of q) mod p). */ + RTASN1INTEGER Coefficient; + /** Optional other prime information (version must be 'multi' if present). */ + RTCRRSAOTHERPRIMEINFOS OtherPrimeInfos; +} RTCRRSAPRIVATEKEY; +/** Pointer to the ASN.1 IPRT representation of an RSA private key. */ +typedef RTCRRSAPRIVATEKEY *PRTCRRSAPRIVATEKEY; +/** Pointer to the const ASN.1 IPRT representation of an RSA private key. */ +typedef RTCRRSAPRIVATEKEY const *PCRTCRRSAPRIVATEKEY; +RTASN1TYPE_STANDARD_PROTOTYPES(RTCRRSAPRIVATEKEY, RTDECL, RTCrRsaPrivateKey, SeqCore.Asn1Core); + +/** @name RSA Private Key Versions + * @{ */ +#define RTCRRSAPRIVATEKEY_VERSION_TWO_PRIME 0 +#define RTCRRSAPRIVATEKEY_VERSION_MULTI 1 +/** @} */ + + +/** + * RSA DigestInfo used by the EMSA-PKCS1-v1_5 encoding method. + */ +typedef struct RTCRRSADIGESTINFO +{ + /** Sequence core for the structure. */ + RTASN1SEQUENCECORE SeqCore; + /** The digest algorithm. */ + RTCRX509ALGORITHMIDENTIFIER DigestAlgorithm; + /** The digest. */ + RTASN1OCTETSTRING Digest; +} RTCRRSADIGESTINFO; +/** Pointer to the ASN.1 IPRT representation of RSA digest info. */ +typedef RTCRRSADIGESTINFO *PRTCRRSADIGESTINFO; +/** Pointer to the const ASN.1 IPRT representation of RSA digest info. */ +typedef RTCRRSADIGESTINFO const *PCRTCRRSADIGESTINFO; +RTASN1TYPE_STANDARD_PROTOTYPES(RTCRRSADIGESTINFO, RTDECL, RTCrRsaDigestInfo, SeqCore.Asn1Core); + +/** @} */ + +RT_C_DECLS_END + +#endif + + diff -Nru virtualbox-4.1.12-dfsg/include/iprt/crypto/spc.h virtualbox-4.1.44-dfsg/include/iprt/crypto/spc.h --- virtualbox-4.1.12-dfsg/include/iprt/crypto/spc.h 1970-01-01 00:00:00.000000000 +0000 +++ virtualbox-4.1.44-dfsg/include/iprt/crypto/spc.h 2015-11-11 15:06:03.000000000 +0000 @@ -0,0 +1,490 @@ +/** @file + * IPRT - Crypto - Microsoft SPC / Authenticode. + */ + +/* + * Copyright (C) 2006-2014 Oracle Corporation + * + * This file is part of VirtualBox Open Source Edition (OSE), as + * available from http://www.virtualbox.org. This file is free software; + * you can redistribute it and/or modify it under the terms of the GNU + * General Public License (GPL) as published by the Free Software + * Foundation, in version 2 as it comes in the "COPYING" file of the + * VirtualBox OSE distribution. VirtualBox OSE is distributed in the + * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind. + * + * The contents of this file may alternatively be used under the terms + * of the Common Development and Distribution License Version 1.0 + * (CDDL) only, as it comes in the "COPYING.CDDL" file of the + * VirtualBox OSE distribution, in which case the provisions of the + * CDDL are applicable instead of those of the GPL. + * + * You may elect to license modified versions of this file under the + * terms and conditions of either the GPL or the CDDL or both. + */ + +#ifndef ___iprt_crypto_spc_h +#define ___iprt_crypto_spc_h + +#include +#include +#include +#include +#include + + +RT_C_DECLS_BEGIN + +/** @defgroup grp_rt_spc RTCrSpc - Microsoft Authenticode + * @ingroup grp_rt_crypto + * @{ + */ + +/** + * PE Image page hash table, generic union. + * + * @remarks This table isn't used by ldrPE.cpp, it walks the table in a generic + * fashion using the hash size. So, we can ditch it if we feel like it. + */ +typedef union RTCRSPCPEIMAGEPAGEHASHES +{ + /** MD5 page hashes. */ + struct + { + /** The file offset. */ + uint32_t offFile; + /** The hash. */ + uint8_t abHash[RTSHA1_HASH_SIZE]; + } aMd5[1]; + + /** SHA-1 page hashes. */ + struct + { + /** The file offset. */ + uint32_t offFile; + /** The hash. */ + uint8_t abHash[RTSHA1_HASH_SIZE]; + } aSha1[1]; + + /** SHA-256 page hashes. */ + struct + { + /** The file offset. */ + uint32_t offFile; + /** The hash. */ + uint8_t abHash[RTSHA256_HASH_SIZE]; + } aSha256[1]; + + /** SHA-512 page hashes. */ + struct + { + /** The file offset. */ + uint32_t offFile; + /** The hash. */ + uint8_t abHash[RTSHA512_HASH_SIZE]; + } aSha512[1]; +} RTCRSPCPEIMAGEPAGEHASHES; +/** Pointer to a PE image page hash table union. */ +typedef RTCRSPCPEIMAGEPAGEHASHES *PRTCRSPCPEIMAGEPAGEHASHES; +/** Pointer to a const PE image page hash table union. */ +typedef RTCRSPCPEIMAGEPAGEHASHES const *PCRTCRSPCPEIMAGEPAGEHASHES; + + +/** + * Serialization wrapper for raw RTCRSPCPEIMAGEPAGEHASHES data. + */ +typedef struct RTCRSPCSERIALIZEDPAGEHASHES +{ + /** The page hashes are within a set. Dunno if there could be multiple + * entries in this set, never seen it yet, so I doubt it. */ + RTASN1SETCORE SetCore; + /** Octet string containing the raw data. */ + RTASN1OCTETSTRING RawData; + + /** Pointer to the hash data within that string. + * The hash algorithm is given by the object attribute type in + * RTCRSPCSERIALIZEDOBJECTATTRIBUTE. It is generally the same as for the + * whole image hash. */ + PCRTCRSPCPEIMAGEPAGEHASHES pData; + /** Field the user can use to store the number of pages in pData. */ + uint32_t cPages; +} RTCRSPCSERIALIZEDPAGEHASHES; +/** Pointer to a serialized wrapper for page hashes. */ +typedef RTCRSPCSERIALIZEDPAGEHASHES *PRTCRSPCSERIALIZEDPAGEHASHES; +/** Pointer to a const serialized wrapper for page hashes. */ +typedef RTCRSPCSERIALIZEDPAGEHASHES const *PCRTCRSPCSERIALIZEDPAGEHASHES; +RTASN1TYPE_STANDARD_PROTOTYPES(RTCRSPCSERIALIZEDPAGEHASHES, RTDECL, RTCrSpcSerializedPageHashes, SetCore.Asn1Core); + +RTDECL(int) RTCrSpcSerializedPageHashes_UpdateDerivedData(PRTCRSPCSERIALIZEDPAGEHASHES pThis); + + +/** + * Data type selection for RTCRSPCSERIALIZEDOBJECTATTRIBUTE. + */ +typedef enum RTCRSPCSERIALIZEDOBJECTATTRIBUTETYPE +{ + /** Invalid zero entry. */ + RTCRSPCSERIALIZEDOBJECTATTRIBUTETYPE_INVALID = 0, + /** Not present pro forma. */ + RTCRSPCSERIALIZEDOBJECTATTRIBUTETYPE_NOT_PRESENT, + /** Unknown object. */ + RTCRSPCSERIALIZEDOBJECTATTRIBUTETYPE_UNKNOWN, + /** SHA-1 page hashes (pPageHashes). */ + RTCRSPCSERIALIZEDOBJECTATTRIBUTETYPE_PAGE_HASHES_V1, + /** SHA-256 page hashes (pPageHashes). */ + RTCRSPCSERIALIZEDOBJECTATTRIBUTETYPE_PAGE_HASHES_V2, + /** End of valid values. */ + RTCRSPCSERIALIZEDOBJECTATTRIBUTETYPE_END, + /** Blow up the type to at least 32-bits. */ + RTCRSPCSERIALIZEDOBJECTATTRIBUTETYPE_32BIT_HACK +} RTCRSPCSERIALIZEDOBJECTATTRIBUTETYPE; + +/** + * One serialized object attribute (PE image data). + */ +typedef struct RTCRSPCSERIALIZEDOBJECTATTRIBUTE +{ + /** Sequence core. */ + RTASN1SEQUENCECORE SeqCore; + /** The attribute type. */ + RTASN1OBJID Type; + /** The allocation of the data type. */ + RTASN1ALLOCATION Allocation; + /** Indicates the valid value in the union. */ + RTCRSPCSERIALIZEDOBJECTATTRIBUTETYPE enmType; + /** Union with data format depending on the Type. */ + union + { + /** The unknown value (RTCRSPCSERIALIZEDOBJECTATTRIBUTETYPE_UNKNOWN). */ + PRTASN1CORE pCore; + /** Page hashes (RTCRSPCSERIALIZEDOBJECTATTRIBUTETYPE_PAGE_HASHES_V1 or + * RTCRSPCSERIALIZEDOBJECTATTRIBUTETYPE_PAGE_HASHES_V2). */ + PRTCRSPCSERIALIZEDPAGEHASHES pPageHashes; + } u; +} RTCRSPCSERIALIZEDOBJECTATTRIBUTE; +/** Pointer to a serialized object attribute. */ +typedef RTCRSPCSERIALIZEDOBJECTATTRIBUTE *PRTCRSPCSERIALIZEDOBJECTATTRIBUTE; +/** Pointer to a const serialized object attribute. */ +typedef RTCRSPCSERIALIZEDOBJECTATTRIBUTE const *PCRTCRSPCSERIALIZEDOBJECTATTRIBUTE; +RTASN1TYPE_STANDARD_PROTOTYPES(RTCRSPCSERIALIZEDOBJECTATTRIBUTE, RTDECL, RTCrSpcSerializedObjectAttribute, SeqCore.Asn1Core); + +/** @name RTCRSPCSERIALIZEDOBJECTATTRIBUTE::Type values + * @{ */ +/** Serialized object attribute type for page hashes version 1. */ +#define RTCRSPC_PE_IMAGE_HASHES_V1_OID "1.3.6.1.4.1.311.2.3.1" +/** Serialized object attribute type for page hashes version 2. */ +#define RTCRSPC_PE_IMAGE_HASHES_V2_OID "1.3.6.1.4.1.311.2.3.2" +/** @} */ + + +/* + * Set of serialized object attributes (PE image data). + */ +RTASN1_IMPL_GEN_SET_OF_TYPEDEFS_AND_PROTOS(RTCRSPCSERIALIZEDOBJECTATTRIBUTES, RTCRSPCSERIALIZEDOBJECTATTRIBUTE, RTDECL, + RTCrSpcSerializedObjectAttributes); + +/** The UUID found in RTCRSPCSERIALIZEDOBJECT::Uuid for + * RTCRSPCSERIALIZEDOBJECTATTRIBUTES. */ +#define RTCRSPCSERIALIZEDOBJECT_UUID_STR "d586b5a6-a1b4-6624-ae05-a217da8e60d6" + + +/** + * Decoded encapsulated data type selection in RTCRSPCSERIALIZEDOBJECT. + */ +typedef enum RTCRSPCSERIALIZEDOBJECTTYPE +{ + /** Invalid zero value. */ + RTCRSPCSERIALIZEDOBJECTTYPE_INVALID = 0, + /** Serialized object attributes (RTCRSPCSERIALIZEDOBJECT_UUID_STR / pAttribs). */ + RTCRSPCSERIALIZEDOBJECTTYPE_ATTRIBUTES, + /** End of valid values. */ + RTCRSPCSERIALIZEDOBJECTTYPE_END, + /** MAke sure the type is at least 32-bit wide. */ + RTCRSPCSERIALIZEDOBJECTTYPE_32BIT_HACK = 0x7fffffff +} RTCRSPCSERIALIZEDOBJECTTYPE; + +/** + * A serialized object (PE image data). + */ +typedef struct RTCRSPCSERIALIZEDOBJECT +{ + /** Sequence core. */ + RTASN1SEQUENCECORE SeqCore; + /** The UUID of the data object. */ + RTASN1OCTETSTRING Uuid; + /** Serialized data object. */ + RTASN1OCTETSTRING SerializedData; + + /** Indicates the valid pointer in the union. */ + RTCRSPCSERIALIZEDOBJECTTYPE enmType; + /** Union of pointers shadowing SerializedData.pEncapsulated. */ + union + { + /** Generic core pointer. */ + PRTASN1CORE pCore; + /** Pointer to decoded data if Uuid is RTCRSPCSERIALIZEDOBJECT_UUID_STR. */ + PRTCRSPCSERIALIZEDOBJECTATTRIBUTES pData; + } u; +} RTCRSPCSERIALIZEDOBJECT; +/** Pointer to a serialized object (PE image data). */ +typedef RTCRSPCSERIALIZEDOBJECT *PRTCRSPCSERIALIZEDOBJECT; +/** Pointer to a const serialized object (PE image data). */ +typedef RTCRSPCSERIALIZEDOBJECT const *PCRTCRSPCSERIALIZEDOBJECT; +RTASN1TYPE_STANDARD_PROTOTYPES(RTCRSPCSERIALIZEDOBJECT, RTDECL, RTCrSpcSerializedObject, SeqCore.Asn1Core); + + +/** + * RTCRSPCSTRING choices. + */ +typedef enum RTCRSPCSTRINGCHOICE +{ + /** Invalid zero value. */ + RTCRSPCSTRINGCHOICE_INVALID = 0, + /** Not present. */ + RTCRSPCSTRINGCHOICE_NOT_PRESENT, + /** UCS-2 string (pUcs2). */ + RTCRSPCSTRINGCHOICE_UCS2, + /** ASCII string (pAscii). */ + RTCRSPCSTRINGCHOICE_ASCII, + /** End of valid values. */ + RTCRSPCSTRINGCHOICE_END, + /** Blow the type up to 32-bit. */ + RTCRSPCSTRINGCHOICE_32BIT_HACK = 0x7fffffff +} RTCRSPCSTRINGCHOICE; + +/** + * Stupid microsoft choosy string type. + */ +typedef struct RTCRSPCSTRING +{ + /** Dummy core. */ + RTASN1DUMMY Dummy; + /** Allocation of what the pointer below points to. */ + RTASN1ALLOCATION Allocation; + /** Pointer choice.*/ + RTCRSPCSTRINGCHOICE enmChoice; + /** Pointer union. */ + union + { + /** Tag 0, implicit: UCS-2 (BMP) string. */ + PRTASN1STRING pUcs2; + /** Tag 1, implicit: ASCII (IA5) string. */ + PRTASN1STRING pAscii; + } u; +} RTCRSPCSTRING; +/** Pointer to a stupid microsoft string choice. */ +typedef RTCRSPCSTRING *PRTCRSPCSTRING; +/** Pointer to a const stupid microsoft string choice. */ +typedef RTCRSPCSTRING const *PCRTCRSPCSTRING; +RTASN1TYPE_STANDARD_PROTOTYPES(RTCRSPCSTRING, RTDECL, RTCrSpcString, Dummy.Asn1Core); + + +/** + * RTCRSPCSTRING choices. + */ +typedef enum RTCRSPCLINKCHOICE +{ + /** Invalid zero value. */ + RTCRSPCLINKCHOICE_INVALID = 0, + /** Not present. */ + RTCRSPCLINKCHOICE_NOT_PRESENT, + /** URL (ASCII) string (pUrl). */ + RTCRSPCLINKCHOICE_URL, + /** Serialized object (pMoniker). */ + RTCRSPCLINKCHOICE_MONIKER, + /** Filename (pT2). */ + RTCRSPCLINKCHOICE_FILE, + /** End of valid values. */ + RTCRSPCLINKCHOICE_END, + /** Blow the type up to 32-bit. */ + RTCRSPCLINKCHOICE_32BIT_HACK = 0x7fffffff +} RTCRSPCLINKCHOICE; + +/** + * PE image data link. + */ +typedef struct RTCRSPCLINK +{ + /** Dummy core. */ + RTASN1DUMMY Dummy; + /** Allocation of what the pointer below points to. */ + RTASN1ALLOCATION Allocation; + /** Pointer choice.*/ + RTCRSPCLINKCHOICE enmChoice; + /** Pointer union. */ + union + { + /** Tag 0, implicit: An URL encoded as an IA5 STRING. */ + PRTASN1STRING pUrl; + /** Tag 1, implicit: A serialized object. */ + PRTCRSPCSERIALIZEDOBJECT pMoniker; + /** Tag 2, explicit: The default, a file name. + * Documented to be set to "<<>>" when used. */ + struct + { + /** Context tag 2. */ + RTASN1CONTEXTTAG2 CtxTag2; + /** The file name string. */ + RTCRSPCSTRING File; + } *pT2; + } u; +} RTCRSPCLINK; +/** Poitner to a PE image data link. */ +typedef RTCRSPCLINK *PRTCRSPCLINK; +/** Poitner to a const PE image data link. */ +typedef RTCRSPCLINK const *PCRTCRSPCLINK; +RTASN1TYPE_STANDARD_PROTOTYPES(RTCRSPCLINK, RTDECL, RTCrSpcLink, Dummy.Asn1Core); + + +#if 0 /** @todo Might not be the correct bit order. */ +/** + * Flag values for RTCRSPCPEIMAGEDATA::Flags and RTCRSPCPEIMAGEDATA::fFlags. + */ +typedef enum RTCRSPCPEIMAGEFLAGS +{ + RTCRSPCPEIMAGEFLAGS_INCLUDE_RESOURCES = 0, + RTCRSPCPEIMAGEFLAGS_INCLUDE_DEBUG_INFO = 1, + RTCRSPCPEIMAGEFLAGS_IMPORT_ADDRESS_TABLE = 2 +} RTCRSPCPEIMAGEFLAGS; +#endif + + +/** + * Authenticode PE Image data. + */ +typedef struct RTCRSPCPEIMAGEDATA +{ + /** Sequence core. */ + RTASN1SEQUENCECORE SeqCore; + /** One of the RTCRSPCPEIMAGEFLAGS value, default is + * RTCRSPCPEIMAGEFLAGS_INCLUDE_RESOURCES. Obsolete with v2 page hashes? */ + RTASN1BITSTRING Flags; + /** Tag 0, explicit: Link to the data. */ + struct + { + /** Context tag 0. */ + RTASN1CONTEXTTAG0 CtxTag0; + /** Link to the data. */ + RTCRSPCLINK File; + } T0; +} RTCRSPCPEIMAGEDATA; +/** Pointer to a authenticode PE image data representation. */ +typedef RTCRSPCPEIMAGEDATA *PRTCRSPCPEIMAGEDATA; +/** Pointer to a const authenticode PE image data representation. */ +typedef RTCRSPCPEIMAGEDATA const *PCRTCRSPCPEIMAGEDATA; +RTASN1TYPE_STANDARD_PROTOTYPES(RTCRSPCPEIMAGEDATA, RTDECL, RTCrSpcPeImageData, SeqCore.Asn1Core); + +/** The object ID for SpcPeImageData. */ +#define RTCRSPCPEIMAGEDATA_OID "1.3.6.1.4.1.311.2.1.15" + + +/** + * Data type selection for RTCRSPCATTRIBUTETYPEANDOPTIONALVALUE. + */ +typedef enum RTCRSPCAAOVTYPE +{ + /** Invalid zero entry. */ + RTCRSPCAAOVTYPE_INVALID = 0, + /** Not present (pro forma). */ + RTCRSPCAAOVTYPE_NOT_PRESENT, + /** Unknown object. */ + RTCRSPCAAOVTYPE_UNKNOWN, + /** PE image data (pPeImage). */ + RTCRSPCAAOVTYPE_PE_IMAGE_DATA, + /** End of valid values. */ + RTCRSPCAAOVTYPE_END, + /** Blow up the type to at least 32-bits. */ + RTCRSPCAAOVTYPE_32BIT_HACK +} RTCRSPCAAOVTYPE; + +/** + * Authenticode attribute type and optional value. + * + * Note! Spec says the value should be explicitly tagged, but in real life + * it isn't. So, not very optional? + */ +typedef struct RTCRSPCATTRIBUTETYPEANDOPTIONALVALUE +{ + /** Sequence core. */ + RTASN1SEQUENCECORE SeqCore; + /** An object ID indicating the type of the value. */ + RTASN1OBJID Type; + /** Allocation of the optional data value. */ + RTASN1ALLOCATION Allocation; + /** The valid pointer. */ + RTCRSPCAAOVTYPE enmType; + /** The value part depends on the Type. */ + union + { + /** RTCRSPCAAOVTYPE_UNKNOWN / Generic. */ + PRTASN1CORE pCore; + /** RTCRSPCAAOVTYPE_PE_IMAGE_DATA / RTCRSPCPEIMAGEDATA_OID. */ + PRTCRSPCPEIMAGEDATA pPeImage; + } uValue; +} RTCRSPCATTRIBUTETYPEANDOPTIONALVALUE; +/** Pointer to a authentication attribute type and optional value + * representation. */ +typedef RTCRSPCATTRIBUTETYPEANDOPTIONALVALUE *PRTCRSPCATTRIBUTETYPEANDOPTIONALVALUE; +/** Pointer to a const authentication attribute type and optional value + * representation. */ +typedef RTCRSPCATTRIBUTETYPEANDOPTIONALVALUE const *PCRTCRSPCATTRIBUTETYPEANDOPTIONALVALUE; +RTASN1TYPE_STANDARD_PROTOTYPES(RTCRSPCATTRIBUTETYPEANDOPTIONALVALUE, RTDECL, RTCrSpcAttributeTypeAndOptionalValue, SeqCore.Asn1Core); + + +/** + * Authenticode indirect data content. + */ +typedef struct RTCRSPCINDIRECTDATACONTENT +{ + /** Sequence core. */ + RTASN1SEQUENCECORE SeqCore; + /** Additional data. */ + RTCRSPCATTRIBUTETYPEANDOPTIONALVALUE Data; + /** The whole image digest. */ + RTCRPKCS7DIGESTINFO DigestInfo; +} RTCRSPCINDIRECTDATACONTENT; +/** Pointer to a authenticode indirect data content representation. */ +typedef RTCRSPCINDIRECTDATACONTENT *PRTCRSPCINDIRECTDATACONTENT; +/** Pointer to a const authenticode indirect data content representation. */ +typedef RTCRSPCINDIRECTDATACONTENT const *PCRTCRSPCINDIRECTDATACONTENT; +RTASN1TYPE_STANDARD_PROTOTYPES(RTCRSPCINDIRECTDATACONTENT, RTDECL, RTCrSpcIndirectDataContent, SeqCore.Asn1Core); + +/** The object ID for SpcIndirectDataContent. */ +#define RTCRSPCINDIRECTDATACONTENT_OID "1.3.6.1.4.1.311.2.1.4" + +/** + * Check the sanity of an Authenticode SPCIndirectDataContent object. + * + * @returns IPRT status code + * @param pIndData The Authenticode SPCIndirectDataContent to + * check. + * @param pSignedData The related signed data object. + * @param fFlags RTCRSPCINDIRECTDATACONTENT_SANITY_F_XXX. + * @param pErrInfo Optional error info. + */ +RTDECL(int) RTCrSpcIndirectDataContent_CheckSanityEx(PCRTCRSPCINDIRECTDATACONTENT pIndData, PCRTCRPKCS7SIGNEDDATA pSignedData, + uint32_t fFlags, PRTERRINFO pErrInfo); +/** @name RTCRSPCINDIRECTDATACONTENT_SANITY_F_XXX for RTCrSpcIndirectDataContent_CheckSanityEx. + * @{ */ +/** The digest hash algorithm must be known to IPRT. */ +#define RTCRSPCINDIRECTDATACONTENT_SANITY_F_ONLY_KNOWN_HASH RT_BIT_32(0) +/** PE image signing, check expectations of the spec. */ +#define RTCRSPCINDIRECTDATACONTENT_SANITY_F_PE_IMAGE RT_BIT_32(1) +/** @} */ + +/** + * Gets the first SPC serialized object attribute in a SPC PE image. + * + * @returns Pointer to the attribute with the given type, NULL if not found. + * @param pThis The Authenticode SpcIndirectDataContent. + */ +RTDECL(PCRTCRSPCSERIALIZEDOBJECTATTRIBUTE) +RTCrSpcIndirectDataContent_GetPeImageObjAttrib(PCRTCRSPCINDIRECTDATACONTENT pThis, + RTCRSPCSERIALIZEDOBJECTATTRIBUTETYPE enmType); + +/** @} */ + +RT_C_DECLS_END + +#endif + diff -Nru virtualbox-4.1.12-dfsg/include/iprt/crypto/store.h virtualbox-4.1.44-dfsg/include/iprt/crypto/store.h --- virtualbox-4.1.12-dfsg/include/iprt/crypto/store.h 1970-01-01 00:00:00.000000000 +0000 +++ virtualbox-4.1.44-dfsg/include/iprt/crypto/store.h 2015-11-11 15:06:03.000000000 +0000 @@ -0,0 +1,132 @@ +/** @file + * IPRT - Cryptographic (Certificate) Store. + */ + +/* + * Copyright (C) 2006-2014 Oracle Corporation + * + * This file is part of VirtualBox Open Source Edition (OSE), as + * available from http://www.virtualbox.org. This file is free software; + * you can redistribute it and/or modify it under the terms of the GNU + * General Public License (GPL) as published by the Free Software + * Foundation, in version 2 as it comes in the "COPYING" file of the + * VirtualBox OSE distribution. VirtualBox OSE is distributed in the + * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind. + * + * The contents of this file may alternatively be used under the terms + * of the Common Development and Distribution License Version 1.0 + * (CDDL) only, as it comes in the "COPYING.CDDL" file of the + * VirtualBox OSE distribution, in which case the provisions of the + * CDDL are applicable instead of those of the GPL. + * + * You may elect to license modified versions of this file under the + * terms and conditions of either the GPL or the CDDL or both. + */ + +#ifndef ___iprt_crypto_store_h +#define ___iprt_crypto_store_h + +#include +#include + + +RT_C_DECLS_BEGIN + +/** @defgroup grp_rt_crstore RTCrStore - Crypotgraphic (Certificate) Store. + * @ingroup grp_rt_crypto + * @{ + */ + + +/** + * A certificate store search. + * + * Used by the store provider to keep track of the current location of a + * certificate search. + */ +typedef struct RTCRSTORECERTSEARCH +{ + /** Opaque provider specific storage. + * + * Provider restriction: The provider is only allowed to use the two first + * entries for the find-all searches, because the front-end API may want the + * last two for implementing specific searches on top of it. */ + uintptr_t auOpaque[4]; +} RTCRSTORECERTSEARCH; +/** Pointer to a certificate store search. */ +typedef RTCRSTORECERTSEARCH *PRTCRSTORECERTSEARCH; + + +RTDECL(int) RTCrStoreCreateInMem(PRTCRSTORE phStore, uint32_t cSizeHint); + +RTDECL(uint32_t) RTCrStoreRetain(RTCRSTORE hStore); +RTDECL(uint32_t) RTCrStoreRelease(RTCRSTORE hStore); +RTDECL(PCRTCRCERTCTX) RTCrStoreCertByIssuerAndSerialNo(RTCRSTORE hStore, PCRTCRX509NAME pIssuer, PCRTASN1INTEGER pSerialNo); +RTDECL(int) RTCrStoreCertAddEncoded(RTCRSTORE hStore, uint32_t fFlags, void const *pvSrc, size_t cbSrc, PRTERRINFO pErrInfo); +RTDECL(int) RTCrStoreCertAddFromFile(RTCRSTORE hStore, uint32_t fFlags, const char *pszFilename, PRTERRINFO pErrInfo); + +RTDECL(int) RTCrStoreCertFindAll(RTCRSTORE hStore, PRTCRSTORECERTSEARCH pSearch); +RTDECL(int) RTCrStoreCertFindBySubjectOrAltSubjectByRfc5280(RTCRSTORE hStore, PCRTCRX509NAME pSubject, + PRTCRSTORECERTSEARCH pSearch); +RTDECL(PCRTCRCERTCTX) RTCrStoreCertSearchNext(RTCRSTORE hStore, PRTCRSTORECERTSEARCH pSearch); +RTDECL(int) RTCrStoreCertSearchDestroy(RTCRSTORE hStore, PRTCRSTORECERTSEARCH pSearch); + +RTDECL(int) RTCrStoreConvertToOpenSslCertStore(RTCRSTORE hStore, uint32_t fFlags, void **ppvOpenSslStore); +RTDECL(int) RTCrStoreConvertToOpenSslCertStack(RTCRSTORE hStore, uint32_t fFlags, void **ppvOpenSslStack); + + +/** @} */ + + +/** @defgroup grp_rt_crcertctx RTCrCertCtx - (Store) Certificate Context. + * @{ */ + + +/** + * Certificate context. + * + * This is returned by the certificate store APIs and is part of a larger + * reference counted structure. All the data is read only. + */ +typedef struct RTCRCERTCTX +{ + /** Flags, RTCRCERTCTX_F_XXX. */ + uint32_t fFlags; + /** The size of the (DER) encoded certificate. */ + uint32_t cbEncoded; + /** Pointer to the (DER) encoded certificate. */ + uint8_t const *pabEncoded; + /** Pointer to the decoded X.509 representation of the certificate. + * This can be NULL when pTaInfo is present. */ + PCRTCRX509CERTIFICATE pCert; + /** Pointer to the decoded TrustAnchorInfo for the certificate. This can be + * NULL, even for trust anchors, as long as pCert isn't. */ + PCRTCRTAFTRUSTANCHORINFO pTaInfo; + /** Reserved for future use. */ + void *paReserved[2]; +} RTCRCERTCTX; + +/** @name RTCRCERTCTX_F_XXX. + * @{ */ +/** Encoding mask. */ +#define RTCRCERTCTX_F_ENC_MASK UINT32_C(0x000000ff) +/** X.509 certificate, DER encoded. */ +#define RTCRCERTCTX_F_ENC_X509_DER UINT32_C(0x00000000) +/** RTF-5914 trust anchor info, DER encoded. */ +#define RTCRCERTCTX_F_ENC_TAF_DER UINT32_C(0x00000001) +#if 0 +/** Extended certificate, DER encoded. */ +#define RTCRCERTCTX_F_ENC_PKCS6_DER UINT32_C(0x00000002) +#endif +/** @} */ + + +RTDECL(uint32_t) RTCrCertCtxRetain(PCRTCRCERTCTX pCertCtx); +RTDECL(uint32_t) RTCrCertCtxRelease(PCRTCRCERTCTX pCertCtx); + +/** @} */ + +RT_C_DECLS_END + +#endif + diff -Nru virtualbox-4.1.12-dfsg/include/iprt/crypto/taf.h virtualbox-4.1.44-dfsg/include/iprt/crypto/taf.h --- virtualbox-4.1.12-dfsg/include/iprt/crypto/taf.h 1970-01-01 00:00:00.000000000 +0000 +++ virtualbox-4.1.44-dfsg/include/iprt/crypto/taf.h 2015-11-11 15:06:03.000000000 +0000 @@ -0,0 +1,189 @@ +/** @file + * IPRT - Crypto - Trust Anchor Format (RFC-5914). + */ + +/* + * Copyright (C) 2006-2014 Oracle Corporation + * + * This file is part of VirtualBox Open Source Edition (OSE), as + * available from http://www.virtualbox.org. This file is free software; + * you can redistribute it and/or modify it under the terms of the GNU + * General Public License (GPL) as published by the Free Software + * Foundation, in version 2 as it comes in the "COPYING" file of the + * VirtualBox OSE distribution. VirtualBox OSE is distributed in the + * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind. + * + * The contents of this file may alternatively be used under the terms + * of the Common Development and Distribution License Version 1.0 + * (CDDL) only, as it comes in the "COPYING.CDDL" file of the + * VirtualBox OSE distribution, in which case the provisions of the + * CDDL are applicable instead of those of the GPL. + * + * You may elect to license modified versions of this file under the + * terms and conditions of either the GPL or the CDDL or both. + */ + +#ifndef ___iprt_crypto_taf_h +#define ___iprt_crypto_taf_h + +#include +#include + + +RT_C_DECLS_BEGIN + +/** @defgroup grp_rt_crtaf RTCrTaf - Trust Anchor Format (RFC-5914) + * @ingroup grp_rt_crypto + * @{ + */ + + +/** + * RFC-5914 CertPathControls (IPRT representation). + */ +typedef struct RTCRTAFCERTPATHCONTROLS +{ + /** Sequence core. */ + RTASN1SEQUENCECORE SeqCore; + /** The trust anchor subject. For use in path construction. */ + RTCRX509NAME TaName; + /** Certificate, optional, implicit tag 0. */ + RTCRX509CERTIFICATE Certificate; + /** Certificate policies, optional, implicit tag 1. + * @remarks This is an ASN.1 SEQUENCE, not an ASN.1 SET as the name + * mistakenly might be taken to indicate. */ + RTCRX509CERTIFICATEPOLICIES PolicySet; + /** Policy flags, optional, implicit tag 2. */ + RTASN1BITSTRING PolicyFlags; + /** Name constraints, optional, implicit tag 3. */ + RTCRX509NAMECONSTRAINTS NameConstr; + /** Path length constraints, optional, implicit tag 4. */ + RTASN1INTEGER PathLenConstraint; +} RTCRTAFCERTPATHCONTROLS; +/** Pointer to the IPRT representation of a RFC-5914 CertPathControls. */ +typedef RTCRTAFCERTPATHCONTROLS *PRTCRTAFCERTPATHCONTROLS; +/** Pointer to the const IPRT representation of a RFC-5914 CertPathControls. */ +typedef RTCRTAFCERTPATHCONTROLS const *PCRTCRTAFCERTPATHCONTROLS; +RTASN1TYPE_STANDARD_PROTOTYPES(RTCRTAFCERTPATHCONTROLS, RTDECL, RTCrTafCertPathControls, SeqCore.Asn1Core); + +/** @name Bit definitions for RTCRTAFCERTPATHCONTROL::PolicyFlags + * @{ */ +#define RTCRTAFCERTPOLICYFLAGS_INHIBIT_POLICY_MAPPING 0 +#define RTCRTAFCERTPOLICYFLAGS_REQUIRE_EXPLICIT_POLICY 1 +#define RTCRTAFCERTPOLICYFLAGS_INHIBIT_ANY_POLICY 2 +/** @} */ + + +/** + * RFC-5914 TrustAnchorInfo (IPRT representation). + */ +typedef struct RTCRTAFTRUSTANCHORINFO +{ + /** Sequence core. */ + RTASN1SEQUENCECORE SeqCore; + /** The version number (defaults to v1). */ + RTASN1INTEGER Version; + /** The public key of the trust anchor. */ + RTCRX509SUBJECTPUBLICKEYINFO PubKey; + /** Key identifier. */ + RTASN1OCTETSTRING KeyIdentifier; + /** Trust anchor title, optional, size 1 to 64. */ + RTASN1STRING TaTitle; + /** Certificate path controls, optional. */ + RTCRTAFCERTPATHCONTROLS CertPath; + /** Extensions, explicit optional, context tag 1. */ + struct + { + /** Context tag 1. */ + RTASN1CONTEXTTAG1 CtxTag1; + /** The extensions. */ + RTCRX509EXTENSIONS Exts; + } T1; + /** Title language tag, implicit optional, context tag 2. + * Defaults to "en". */ + RTASN1STRING TaTitleLangTag; +} RTCRTAFTRUSTANCHORINFO; +/** Pointer to the IPRT representation of a RFC-5914 TrustAnchorInfo. */ +typedef RTCRTAFTRUSTANCHORINFO *PRTCRTAFTRUSTANCHORINFO; +/** Pointer to the const IPRT representation of a RFC-5914 TrustAnchorInfo. */ +typedef RTCRTAFTRUSTANCHORINFO const *PCRTCRTAFTRUSTANCHORINFO; +RTASN1TYPE_STANDARD_PROTOTYPES(RTCRTAFTRUSTANCHORINFO, RTDECL, RTCrTafTrustAnchorInfo, SeqCore.Asn1Core); + +/** TrustAnchorInfo version 1. */ +#define RTCRTAFTRUSTANCHORINFO_V1 1 + + +/** Indicates what kind of value a TrustAnchorChoice structure contains. */ +typedef enum RTCRTAFTRUSTANCHORCHOICEVAL +{ + /** Invalid zero value. */ + RTCRTAFTRUSTANCHORCHOICEVAL_INVALID = 0, + /** RTCRTAFTRUSTANCHORCHOICE::u.pCertificate. */ + RTCRTAFTRUSTANCHORCHOICEVAL_CERTIFICATE, + /** RTCRTAFTRUSTANCHORCHOICE::u.pT1. */ + RTCRTAFTRUSTANCHORCHOICEVAL_TBS_CERTIFICATE, + /** RTCRTAFTRUSTANCHORCHOICE::u.pT2. */ + RTCRTAFTRUSTANCHORCHOICEVAL_TRUST_ANCHOR_INFO, + /** End of valid choices. */ + RTCRTAFTRUSTANCHORCHOICEVAL_END, + /** Make sure it's (at least) 32-bit wide. */ + RTCRTAFTRUSTANCHORCHOICEVAL_32BIT_HACK = 0x7fffffff +} RTCRTAFTRUSTANCHORCHOICEVAL; + + +/** + * RFC-5914 TrustAnchorChoice (IPRT representation). + */ +typedef struct RTCRTAFTRUSTANCHORCHOICE +{ + /** Dummy object for simplifying everything. */ + RTASN1DUMMY Dummy; + /** Allocation for the valid member (to optimize space usage). */ + RTASN1ALLOCATION Allocation; + /** Indicates which of the pointers are valid. */ + RTCRTAFTRUSTANCHORCHOICEVAL enmChoice; + /** Choice union. */ + union + { + /** Generic ASN.1 core pointer for the choice. */ + PRTASN1CORE pAsn1Core; + /** Choice 0: X509 certificate. */ + PRTCRX509CERTIFICATE pCertificate; + /** Choice 1: To-be-signed certificate part. This may differ from the + * TBSCertificate member of the original certificate. */ + struct + { + /** Explicit context tag. */ + RTASN1CONTEXTTAG1 CtxTag1; + /** Pointer to the TBS certificate structure. */ + RTCRX509TBSCERTIFICATE TbsCert; + } *pT1; + + /** Choice 2: To-be-signed certificate part. This may differ from the + * TBSCertificate member of the original certificate. */ + struct + { + /** Explicit context tag. */ + RTASN1CONTEXTTAG2 CtxTag2; + /** Pointer to the trust anchor infomration structure. */ + RTCRTAFTRUSTANCHORINFO TaInfo; + } *pT2; + } u; +} RTCRTAFTRUSTANCHORCHOICE; +/** Pointer to the IPRT representation of a RFC-5914 TrustAnchorChoice. */ +typedef RTCRTAFTRUSTANCHORCHOICE *PRTCRTAFTRUSTANCHORCHOICE; +/** Pointer to the const IPRT representation of a RFC-5914 TrustAnchorChoice. */ +typedef RTCRTAFTRUSTANCHORCHOICE const *PCRTCRTAFTRUSTANCHORCHOICE; +RTASN1TYPE_STANDARD_PROTOTYPES(RTCRTAFTRUSTANCHORCHOICE, RTDECL, RTCrTafTrustAnchorChoice, Dummy.Asn1Core); + +/* + * RFC-5914 TrustAnchorList (IPRT representation). + */ +RTASN1_IMPL_GEN_SEQ_OF_TYPEDEFS_AND_PROTOS(RTCRTAFTRUSTANCHORLIST, RTCRTAFTRUSTANCHORCHOICE, RTDECL, RTCrTafTrustAnchorList); + +/** @} */ + +RT_C_DECLS_END + +#endif + diff -Nru virtualbox-4.1.12-dfsg/include/iprt/crypto/tsp.h virtualbox-4.1.44-dfsg/include/iprt/crypto/tsp.h --- virtualbox-4.1.12-dfsg/include/iprt/crypto/tsp.h 1970-01-01 00:00:00.000000000 +0000 +++ virtualbox-4.1.44-dfsg/include/iprt/crypto/tsp.h 2015-11-11 15:06:03.000000000 +0000 @@ -0,0 +1,136 @@ +/** @file + * IPRT - Crypto - Time-Stamp Protocol (RFC-3161). + */ + +/* + * Copyright (C) 2006-2014 Oracle Corporation + * + * This file is part of VirtualBox Open Source Edition (OSE), as + * available from http://www.virtualbox.org. This file is free software; + * you can redistribute it and/or modify it under the terms of the GNU + * General Public License (GPL) as published by the Free Software + * Foundation, in version 2 as it comes in the "COPYING" file of the + * VirtualBox OSE distribution. VirtualBox OSE is distributed in the + * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind. + * + * The contents of this file may alternatively be used under the terms + * of the Common Development and Distribution License Version 1.0 + * (CDDL) only, as it comes in the "COPYING.CDDL" file of the + * VirtualBox OSE distribution, in which case the provisions of the + * CDDL are applicable instead of those of the GPL. + * + * You may elect to license modified versions of this file under the + * terms and conditions of either the GPL or the CDDL or both. + */ + +#ifndef ___iprt_crypto_tsp_h +#define ___iprt_crypto_tsp_h + +#include +#include + + +RT_C_DECLS_BEGIN + +/** @defgroup grp_rt_crtaf RTCrTap - Time-Stamp Protocol (RFC-3161) + * @ingroup grp_rt_crypto + * @{ + */ + + +/** + * RFC-3161 MessageImprint (IPRT representation). + */ +typedef struct RTCRTSPMESSAGEIMPRINT +{ + /** Sequence core. */ + RTASN1SEQUENCECORE SeqCore; + /** The digest algorithm used to produce HashedMessage. */ + RTCRX509ALGORITHMIDENTIFIER HashAlgorithm; + /** The digest of the message being timestamped. */ + RTASN1OCTETSTRING HashedMessage; +} RTCRTSPMESSAGEIMPRINT; +/** Pointer to the IPRT representation of a RFC-3161 MessageImprint. */ +typedef RTCRTSPMESSAGEIMPRINT *PRTCRTSPMESSAGEIMPRINT; +/** Pointer to the const IPRT representation of a RFC-3161 MessageImprint. */ +typedef RTCRTSPMESSAGEIMPRINT const *PCRTCRTSPMESSAGEIMPRINT; +RTASN1TYPE_STANDARD_PROTOTYPES(RTCRTSPMESSAGEIMPRINT, RTDECL, RTCrTspMessageImprint, SeqCore.Asn1Core); + + +/** + * RFC-3161 Accuracy (IPRT representation). + */ +typedef struct RTCRTSPACCURACY +{ + /** Sequence core. */ + RTASN1SEQUENCECORE SeqCore; + /** The seconds accuracy. + * This will be larger than 0. If 1 inspect the Millis field. */ + RTASN1INTEGER Seconds; + /** The millisecond accuracy, optional, implicit tag 0. + * Range 1..999. If 1 inspect the Micros field. */ + RTASN1INTEGER Millis; + /** The microsecond accuracy, optional, implicit tag 1. + * Range 1..999. */ + RTASN1INTEGER Micros; +} RTCRTSPACCURACY; +/** Pointer to the IPRT representation of a RFC-3161 Accuracy. */ +typedef RTCRTSPACCURACY *PRTCRTSPACCURACY; +/** Pointer to the const IPRT representation of a RFC-3161 Accuracy. */ +typedef RTCRTSPACCURACY const *PCRTCRTSPACCURACY; +RTASN1TYPE_STANDARD_PROTOTYPES(RTCRTSPACCURACY, RTDECL, RTCrTspAccuracy, SeqCore.Asn1Core); + + +/** + * RFC-3161 TSTInfo (IPRT representation). + */ +typedef struct RTCRTSPTSTINFO +{ + /** Sequence core. */ + RTASN1SEQUENCECORE SeqCore; + /** The structure version number, current only 1 is valid. */ + RTASN1INTEGER Version; + /** Time authority policy. */ + RTASN1OBJID Policy; + /** The message imprint. */ + RTCRTSPMESSAGEIMPRINT MessageImprint; + /** Timestamp request serial number. */ + RTASN1INTEGER SerialNumber; + /** The timestamp. */ + RTASN1TIME GenTime; + /** The timestamp accuracy, optional. */ + RTCRTSPACCURACY Accuracy; + /** Ordering, whatever that means, defaults to FALSE. */ + RTASN1BOOLEAN Ordering; + /** Nonce, optional. */ + RTASN1INTEGER Nonce; + /** Timestamp authority name, explicit optional. + * (Should match a name in the certificate of the signature.) */ + struct + { + /** Context tag 0. */ + RTASN1CONTEXTTAG0 CtxTag0; + /** The TSA name. */ + RTCRX509GENERALNAME Tsa; + } T0; + /** Extensions, optional, implicit tag 1. */ + RTCRX509EXTENSION Extensions; +} RTCRTSPTSTINFO; +/** Pointer to the IPRT representation of a RFC-3161 TSTInfo. */ +typedef RTCRTSPTSTINFO *PRTCRTSPTSTINFO; +/** Pointer to the const IPRT representation of a RFC-3161 TSTInfo. */ +typedef RTCRTSPTSTINFO const *PCRTCRTSPTSTINFO; +RTASN1TYPE_STANDARD_PROTOTYPES(RTCRTSPTSTINFO, RTDECL, RTCrTspTstInfo, SeqCore.Asn1Core); + +/** The object identifier for RTCRTSPTSTINFO. + * Found in the ContentType field of PKCS \#7's ContentInfo structure and + * the equivalent CMS field. */ +#define RTCRTSPTSTINFO_OID "1.2.840.113549.1.9.16.1.4" + +/** @} */ + +RT_C_DECLS_END + +#endif + + diff -Nru virtualbox-4.1.12-dfsg/include/iprt/crypto/x509.h virtualbox-4.1.44-dfsg/include/iprt/crypto/x509.h --- virtualbox-4.1.12-dfsg/include/iprt/crypto/x509.h 1970-01-01 00:00:00.000000000 +0000 +++ virtualbox-4.1.44-dfsg/include/iprt/crypto/x509.h 2015-11-11 15:06:03.000000000 +0000 @@ -0,0 +1,1069 @@ +/** @file + * IPRT - Crypto - X.509, Public Key and Privilege Management Infrastructure. + */ + +/* + * Copyright (C) 2014 Oracle Corporation + * + * This file is part of VirtualBox Open Source Edition (OSE), as + * available from http://www.virtualbox.org. This file is free software; + * you can redistribute it and/or modify it under the terms of the GNU + * General Public License (GPL) as published by the Free Software + * Foundation, in version 2 as it comes in the "COPYING" file of the + * VirtualBox OSE distribution. VirtualBox OSE is distributed in the + * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind. + * + * The contents of this file may alternatively be used under the terms + * of the Common Development and Distribution License Version 1.0 + * (CDDL) only, as it comes in the "COPYING.CDDL" file of the + * VirtualBox OSE distribution, in which case the provisions of the + * CDDL are applicable instead of those of the GPL. + * + * You may elect to license modified versions of this file under the + * terms and conditions of either the GPL or the CDDL or both. + */ + +#ifndef ___iprt_crypto_x509_h +#define ___iprt_crypto_x509_h + +#include + + +RT_C_DECLS_BEGIN + + +/** @defgroup grp_rt_crypto Crypto + * @ingroup grp_rt + * @{ + */ + +/** @defgroup grp_rt_crx509 RTCrX509 - Public Key and Privilege Management Infrastructure. + * @{ + */ + +/** + * X.509 algorithm identifier (IPRT representation). + */ +typedef struct RTCRX509ALGORITHMIDENTIFIER +{ + /** The sequence making up this algorithm identifier. */ + RTASN1SEQUENCECORE SeqCore; + /** The algorithm object ID. */ + RTASN1OBJID Algorithm; + /** Optional parameters specified by the algorithm. */ + RTASN1DYNTYPE Parameters; +} RTCRX509ALGORITHMIDENTIFIER; +/** Poitner to the IPRT representation of a X.509 algorithm identifier. */ +typedef RTCRX509ALGORITHMIDENTIFIER *PRTCRX509ALGORITHMIDENTIFIER; +/** Poitner to the const IPRT representation of a X.509 algorithm identifier. */ +typedef RTCRX509ALGORITHMIDENTIFIER const *PCRTCRX509ALGORITHMIDENTIFIER; +RTASN1TYPE_STANDARD_PROTOTYPES(RTCRX509ALGORITHMIDENTIFIER, RTDECL, RTCrX509AlgorithmIdentifier, SeqCore.Asn1Core); +RTASN1_IMPL_GEN_SET_OF_TYPEDEFS_AND_PROTOS(RTCRX509ALGORITHMIDENTIFIERS, RTCRX509ALGORITHMIDENTIFIER, RTDECL, RTCrX509AlgorithmIdentifiers); + +/** + * Tries to convert an X.509 digest algorithm ID into a RTDIGESTTYPE value. + * + * @returns Valid RTDIGESTTYPE on success, RTDIGESTTYPE_INVALID on failure. + * @param pThis The IPRT representation of a X.509 algorithm + * identifier object. + */ +RTDECL(RTDIGESTTYPE) RTCrX509AlgorithmIdentifier_QueryDigestType(PCRTCRX509ALGORITHMIDENTIFIER pThis); + +/** + * Tries to figure the digest size of an X.509 digest algorithm ID. + * + * @returns The digest size in bytes, UINT32_MAX if unknown digest. + * @param pThis The IPRT representation of a X.509 algorithm + * identifier object. + */ +RTDECL(uint32_t) RTCrX509AlgorithmIdentifier_QueryDigestSize(PCRTCRX509ALGORITHMIDENTIFIER pThis); + +RTDECL(int) RTCrX509AlgorithmIdentifier_CompareWithString(PCRTCRX509ALGORITHMIDENTIFIER pThis, const char *pszObjId); + +/** + * Compares a digest with an encrypted digest algorithm, checking if they + * specify the same digest. + * + * @returns 0 if same digest, -1 if the digest is unknown, 1 if the encrypted + * digest does not match. + * @param pDigest The digest algorithm. + * @param pEncryptedDigest The encrypted digest algorithm. + */ +RTDECL(int) RTCrX509AlgorithmIdentifier_CompareDigestAndEncryptedDigest(PCRTCRX509ALGORITHMIDENTIFIER pDigest, + PCRTCRX509ALGORITHMIDENTIFIER pEncryptedDigest); + +/** @name Typical Digest Algorithm OIDs. + * @{ */ +#define RTCRX509ALGORITHMIDENTIFIERID_MD2 "1.2.840.113549.2.2" +#define RTCRX509ALGORITHMIDENTIFIERID_MD4 "1.2.840.113549.2.4" +#define RTCRX509ALGORITHMIDENTIFIERID_MD5 "1.2.840.113549.2.5" +#define RTCRX509ALGORITHMIDENTIFIERID_SHA1 "1.3.14.3.2.26" +#define RTCRX509ALGORITHMIDENTIFIERID_SHA256 "2.16.840.1.101.3.4.2.1" +#define RTCRX509ALGORITHMIDENTIFIERID_SHA384 "2.16.840.1.101.3.4.2.2" +#define RTCRX509ALGORITHMIDENTIFIERID_SHA512 "2.16.840.1.101.3.4.2.3" +#define RTCRX509ALGORITHMIDENTIFIERID_SHA224 "2.16.840.1.101.3.4.2.4" +#define RTCRX509ALGORITHMIDENTIFIERID_SHA512T224 "2.16.840.1.101.3.4.2.5" +#define RTCRX509ALGORITHMIDENTIFIERID_SHA512T256 "2.16.840.1.101.3.4.2.6" +#define RTCRX509ALGORITHMIDENTIFIERID_WHIRLPOOL "1.0.10118.3.0.55" +/** @} */ + +/** @name Encrypted Digest Algorithm OIDs. + * @remarks The PKCS variants are the default ones, alternative OID are marked + * as such. + * @{ */ +#define RTCRX509ALGORITHMIDENTIFIERID_RSA "1.2.840.113549.1.1.1" +#define RTCRX509ALGORITHMIDENTIFIERID_MD2_WITH_RSA "1.2.840.113549.1.1.2" +#define RTCRX509ALGORITHMIDENTIFIERID_MD4_WITH_RSA "1.2.840.113549.1.1.3" +#define RTCRX509ALGORITHMIDENTIFIERID_MD5_WITH_RSA "1.2.840.113549.1.1.4" +#define RTCRX509ALGORITHMIDENTIFIERID_SHA1_WITH_RSA "1.2.840.113549.1.1.5" +#define RTCRX509ALGORITHMIDENTIFIERID_SHA256_WITH_RSA "1.2.840.113549.1.1.11" +#define RTCRX509ALGORITHMIDENTIFIERID_SHA384_WITH_RSA "1.2.840.113549.1.1.12" +#define RTCRX509ALGORITHMIDENTIFIERID_SHA512_WITH_RSA "1.2.840.113549.1.1.13" +#define RTCRX509ALGORITHMIDENTIFIERID_SHA224_WITH_RSA "1.2.840.113549.1.1.14" +/** @} */ + + + + +/** + * One X.509 AttributeTypeAndValue (IPRT representation). + */ +typedef struct RTCRX509ATTRIBUTETYPEANDVALUE +{ + /** Sequence core. */ + RTASN1SEQUENCECORE SeqCore; + /** The attribute type (object ID). */ + RTASN1OBJID Type; + /** The attribute value (what it is is defined by Type). */ + RTASN1DYNTYPE Value; +} RTCRX509ATTRIBUTETYPEANDVALUE; +/** Pointer to a X.509 AttributeTypeAndValue (IPRT representation). */ +typedef RTCRX509ATTRIBUTETYPEANDVALUE *PRTCRX509ATTRIBUTETYPEANDVALUE; +/** Pointer to a const X.509 AttributeTypeAndValue (IPRT representation). */ +typedef RTCRX509ATTRIBUTETYPEANDVALUE const *PCRTCRX509ATTRIBUTETYPEANDVALUE; +RTASN1TYPE_STANDARD_PROTOTYPES(RTCRX509ATTRIBUTETYPEANDVALUE, RTDECL, RTCrX509AttributeTypeAndValue, SeqCore.Asn1Core); +RTASN1_IMPL_GEN_SET_OF_TYPEDEFS_AND_PROTOS(RTCRX509ATTRIBUTETYPEANDVALUES, RTCRX509ATTRIBUTETYPEANDVALUE, RTDECL, RTCrX509AttributeTypeAndValues); + +RTASN1TYPE_ALIAS(RTCRX509RELATIVEDISTINGUISHEDNAME, RTCRX509ATTRIBUTETYPEANDVALUES, RTCrX509RelativeDistinguishedName, RTCrX509AttributeTypeAndValues); + + +RTASN1_IMPL_GEN_SEQ_OF_TYPEDEFS_AND_PROTOS(RTCRX509NAME, RTCRX509RELATIVEDISTINGUISHEDNAME, RTDECL, RTCrX509Name); +RTDECL(int) RTCrX509Name_CheckSanity(PCRTCRX509NAME pName, uint32_t fFlags, PRTERRINFO pErrInfo, const char *pszErrorTag); +RTDECL(bool) RTCrX509Name_MatchByRfc5280(PCRTCRX509NAME pLeft, PCRTCRX509NAME pRight); + +/** + * Name constraint matching (RFC-5280). + * + * @returns true on match, false on mismatch. + * @param pConstraint The constraint name. + * @param pName The name to match against the constraint. + * @sa RTCrX509GeneralName_ConstraintMatch, + * RTCrX509RelativeDistinguishedName_ConstraintMatch + */ +RTDECL(bool) RTCrX509Name_ConstraintMatch(PCRTCRX509NAME pConstraint, PCRTCRX509NAME pName); +RTDECL(int) RTCrX509Name_RecodeAsUtf8(PRTCRX509NAME pThis, PCRTASN1ALLOCATORVTABLE pAllocator); + +/** + * Matches the directory name against a comma separated list of the comonent + * strings (case sensitive). + * + * @returns true if match, false if mismatch. + * @param pThis The name object. + * @param pszString The string to match against. For example: + * "C=US, ST=California, L=Redwood Shores, O=Oracle Corporation" + * + * @remarks This is doing a straight compare, no extra effort is expended in + * dealing with different component order. If the component order + * differs, there won't be any match. + */ +RTDECL(bool) RTCrX509Name_MatchWithString(PCRTCRX509NAME pThis, const char *pszString); + +/** + * Formats the name as a command separated list of components with type + * prefixes. + * + * The output of this function is suitable for use with + * RTCrX509Name_MatchWithString. + * + * @returns IPRT status code. + * @param pThis The name object. + * @param pszBuf The output buffer. + * @param cbBuf The size of the output buffer. + * @param pcbActual Where to return the number of bytes required for the + * output, including the null terminator character. + * Optional. + */ +RTDECL(int) RTCrX509Name_FormatAsString(PCRTCRX509NAME pThis, char *pszBuf, size_t cbBuf, size_t *pcbActual); + + +/** + * One X.509 OtherName (IPRT representation). + */ +typedef struct RTCRX509OTHERNAME +{ + /** The sequence core. */ + RTASN1SEQUENCECORE SeqCore; + /** The name type identifier. */ + RTASN1OBJID TypeId; + /** The name value (explicit tag 0). */ + RTASN1DYNTYPE Value; +} RTCRX509OTHERNAME; +/** Pointer to a X.509 OtherName (IPRT representation). */ +typedef RTCRX509OTHERNAME *PRTCRX509OTHERNAME; +/** Pointer to a const X.509 OtherName (IPRT representation). */ +typedef RTCRX509OTHERNAME const *PCRTCRX509OTHERNAME; +RTASN1TYPE_STANDARD_PROTOTYPES(RTCRX509OTHERNAME, RTDECL, RTCrX509OtherName, SeqCore.Asn1Core); + + +typedef enum RTCRX509GENERALNAMECHOICE +{ + RTCRX509GENERALNAMECHOICE_INVALID = 0, + RTCRX509GENERALNAMECHOICE_OTHER_NAME, + RTCRX509GENERALNAMECHOICE_RFC822_NAME, + RTCRX509GENERALNAMECHOICE_DNS_NAME, + RTCRX509GENERALNAMECHOICE_X400_ADDRESS, + RTCRX509GENERALNAMECHOICE_DIRECTORY_NAME, + RTCRX509GENERALNAMECHOICE_EDI_PARTY_NAME, + RTCRX509GENERALNAMECHOICE_URI, + RTCRX509GENERALNAMECHOICE_IP_ADDRESS, + RTCRX509GENERALNAMECHOICE_REGISTERED_ID, + RTCRX509GENERALNAMECHOICE_END, + RTCRX509GENERALNAMECHOICE_32BIT_HACK = 0x7fffffff +} RTCRX509GENERALNAMECHOICE; + +/** + * One X.509 GeneralName (IPRT representation). + * + * This is represented as a union. Use the RTCRX509GENERALNAME_IS_XXX predicate + * macros to figure out which member is valid (Asn1Core is always valid). + */ +typedef struct RTCRX509GENERALNAME +{ + /** Dummy ASN.1 record, not encoded. */ + RTASN1DUMMY Dummy; + /** The value allocation. */ + RTASN1ALLOCATION Allocation; + /** The choice of value. */ + RTCRX509GENERALNAMECHOICE enmChoice; + /** The value union. */ + union + { + /** Tag 0: Other Name. */ + PRTCRX509OTHERNAME pT0_OtherName; + /** Tag 1: RFC-822 Name. */ + PRTASN1STRING pT1_Rfc822; + /** Tag 2: DNS name. */ + PRTASN1STRING pT2_DnsName; + /** Tag 3: X.400 Address. */ + struct + { + /** Context tag 3. */ + RTASN1CONTEXTTAG3 CtxTag3; + /** Later. */ + RTASN1DYNTYPE X400Address; + } *pT3; + /** Tag 4: Directory Name. */ + struct + { + /** Context tag 4. */ + RTASN1CONTEXTTAG4 CtxTag4; + /** Directory name. */ + RTCRX509NAME DirectoryName; + } *pT4; + /** Tag 5: EDI Party Name. */ + struct + { + /** Context tag 5. */ + RTASN1CONTEXTTAG5 CtxTag5; + /** Later. */ + RTASN1DYNTYPE EdiPartyName; + } *pT5; + /** Tag 6: URI. */ + PRTASN1STRING pT6_Uri; + /** Tag 7: IP address. Either 4/8 (IPv4) or 16/32 (IPv16) octets long. */ + PRTASN1OCTETSTRING pT7_IpAddress; + /** Tag 8: Registered ID. */ + PRTASN1OBJID pT8_RegisteredId; + } u; +} RTCRX509GENERALNAME; +/** Pointer to the IPRT representation of an X.509 general name. */ +typedef RTCRX509GENERALNAME *PRTCRX509GENERALNAME; +/** Pointer to the const IPRT representation of an X.509 general name. */ +typedef RTCRX509GENERALNAME const *PCRTCRX509GENERALNAME; +RTASN1TYPE_STANDARD_PROTOTYPES(RTCRX509GENERALNAME, RTDECL, RTCrX509GeneralName, Dummy.Asn1Core); + +/** @name RTCRX509GENERALNAME tag predicates. + * @{ */ +#define RTCRX509GENERALNAME_IS_OTHER_NAME(a_GenName) ((a_GenName)->enmChoice == RTCRX509GENERALNAMECHOICE_OTHER_NAME) +#define RTCRX509GENERALNAME_IS_RFC822_NAME(a_GenName) ((a_GenName)->enmChoice == RTCRX509GENERALNAMECHOICE_RFC822_NAME) +#define RTCRX509GENERALNAME_IS_DNS_NAME(a_GenName) ((a_GenName)->enmChoice == RTCRX509GENERALNAMECHOICE_DNS_NAME) +#define RTCRX509GENERALNAME_IS_X400_ADDRESS(a_GenName) ((a_GenName)->enmChoice == RTCRX509GENERALNAMECHOICE_X400_ADDRESS) +#define RTCRX509GENERALNAME_IS_DIRECTORY_NAME(a_GenName) ((a_GenName)->enmChoice == RTCRX509GENERALNAMECHOICE_DIRECTORY_NAME) +#define RTCRX509GENERALNAME_IS_EDI_PARTY_NAME(a_GenName) ((a_GenName)->enmChoice == RTCRX509GENERALNAMECHOICE_EDI_PARTY_NAME) +#define RTCRX509GENERALNAME_IS_URI(a_GenName) ((a_GenName)->enmChoice == RTCRX509GENERALNAMECHOICE_URI) +#define RTCRX509GENERALNAME_IS_IP_ADDRESS(a_GenName) ((a_GenName)->enmChoice == RTCRX509GENERALNAMECHOICE_IP_ADDRESS) +#define RTCRX509GENERALNAME_IS_REGISTERED_ID(a_GenName) ((a_GenName)->enmChoice == RTCRX509GENERALNAMECHOICE_REGISTERED_ID) +/** @} */ + + +RTASN1_IMPL_GEN_SEQ_OF_TYPEDEFS_AND_PROTOS(RTCRX509GENERALNAMES, RTCRX509GENERALNAME, RTDECL, RTCrX509GeneralNames); +RTDECL(bool) RTCrX509GeneralName_ConstraintMatch(PCRTCRX509GENERALNAME pConstraint, PCRTCRX509GENERALNAME pName); + + +/** + * X.509 Validity (IPRT representation). + */ +typedef struct RTCRX509VALIDITY +{ + /** Core sequence bits. */ + RTASN1SEQUENCECORE SeqCore; + /** Effective starting. */ + RTASN1TIME NotBefore; + /** Expires after. */ + RTASN1TIME NotAfter; +} RTCRX509VALIDITY; +/** Pointer to the IPRT representation of an X.509 validity sequence. */ +typedef RTCRX509VALIDITY *PRTCRX509VALIDITY; +/** Pointer ot the const IPRT representation of an X.509 validity sequence. */ +typedef RTCRX509VALIDITY const *PCRTCRX509VALIDITY; +RTASN1TYPE_STANDARD_PROTOTYPES(RTCRX509VALIDITY, RTDECL, RTCrX509Validity, SeqCore.Asn1Core); + +RTDECL(bool) RTCrX509Validity_IsValidAtTimeSpec(PCRTCRX509VALIDITY pThis, PCRTTIMESPEC pTimeSpec); + + +#if 0 +/** + * X.509 UniqueIdentifier (IPRT representation). + */ +typedef struct RTCRX509UNIQUEIDENTIFIER +{ + /** Representation is a bit string. */ + RTASN1BITSTRING BitString; +} RTCRX509UNIQUEIDENTIFIER; +/** Pointer to the IPRT representation of an X.509 unique identifier. */ +typedef RTCRX509UNIQUEIDENTIFIER *PRTCRX509UNIQUEIDENTIFIER; +/** Pointer to the const IPRT representation of an X.509 unique identifier. */ +typedef RTCRX509UNIQUEIDENTIFIER const *PCRTCRX509UNIQUEIDENTIFIER; +RTASN1TYPE_STANDARD_PROTOTYPES_NO_GET_CORE(RTCRX509UNIQUEIDENTIFIER, RTDECL, RTCrX509UniqueIdentifier); +#endif +RTASN1TYPE_ALIAS(RTCRX509UNIQUEIDENTIFIER, RTASN1BITSTRING, RTCrX509UniqueIdentifier, RTAsn1BitString); + + +/** + * X.509 SubjectPublicKeyInfo (IPRT representation). + */ +typedef struct RTCRX509SUBJECTPUBLICKEYINFO +{ + /** Core sequence bits. */ + RTASN1SEQUENCECORE SeqCore; + /** The algorithm used with the public key. */ + RTCRX509ALGORITHMIDENTIFIER Algorithm; + /** A bit string containing the public key. + * + * For algorithms like rsaEncryption this is generally a sequence of two + * integers, where the first one has lots of bits, and the second one being a + * modulous value. These are details specific to the algorithm and not relevant + * when validating the certificate chain. */ + RTASN1BITSTRING SubjectPublicKey; +} RTCRX509SUBJECTPUBLICKEYINFO; +/** Pointer to the IPRT representation of an X.509 subject public key info + * sequence. */ +typedef RTCRX509SUBJECTPUBLICKEYINFO *PRTCRX509SUBJECTPUBLICKEYINFO; +/** Pointer to the const IPRT representation of an X.509 subject public key info + * sequence. */ +typedef RTCRX509SUBJECTPUBLICKEYINFO const *PCRTCRX509SUBJECTPUBLICKEYINFO; +RTASN1TYPE_STANDARD_PROTOTYPES(RTCRX509SUBJECTPUBLICKEYINFO, RTDECL, RTCrX509SubjectPublicKeyInfo, SeqCore.Asn1Core); + + +/** + * One X.509 AuthorityKeyIdentifier (IPRT representation). + */ +typedef struct RTCRX509AUTHORITYKEYIDENTIFIER +{ + /** Sequence core. */ + RTASN1SEQUENCECORE SeqCore; + /** Tag 0, optional, implicit: Key identifier. */ + RTASN1OCTETSTRING KeyIdentifier; + /** Tag 1, optional, implicit: Issuer name. */ + RTCRX509GENERALNAMES AuthorityCertIssuer; + /** Tag 2, optional, implicit: Serial number of issuer. */ + RTASN1INTEGER AuthorityCertSerialNumber; +} RTCRX509AUTHORITYKEYIDENTIFIER; +/** Pointer to the IPRT representation of an X.509 AuthorityKeyIdentifier + * sequence. */ +typedef RTCRX509AUTHORITYKEYIDENTIFIER *PRTCRX509AUTHORITYKEYIDENTIFIER; +/** Pointer to the const IPRT representation of an X.509 AuthorityKeyIdentifier + * sequence. */ +typedef RTCRX509AUTHORITYKEYIDENTIFIER const *PCRTCRX509AUTHORITYKEYIDENTIFIER; +RTASN1TYPE_STANDARD_PROTOTYPES(RTCRX509AUTHORITYKEYIDENTIFIER, RTDECL, RTCrX509AuthorityKeyIdentifier, SeqCore.Asn1Core); + + +/** + * One X.509 OldAuthorityKeyIdentifier (IPRT representation). + */ +typedef struct RTCRX509OLDAUTHORITYKEYIDENTIFIER +{ + /** Sequence core. */ + RTASN1SEQUENCECORE SeqCore; + /** Tag 0, optional, implicit: Key identifier. */ + RTASN1OCTETSTRING KeyIdentifier; + struct + { + RTASN1CONTEXTTAG1 CtxTag1; + /** Tag 1, optional, implicit: Issuer name. */ + RTCRX509NAME AuthorityCertIssuer; + } T1; + /** Tag 2, optional, implicit: Serial number of issuer. */ + RTASN1INTEGER AuthorityCertSerialNumber; +} RTCRX509OLDAUTHORITYKEYIDENTIFIER; +/** Pointer to the IPRT representation of an X.509 AuthorityKeyIdentifier + * sequence. */ +typedef RTCRX509OLDAUTHORITYKEYIDENTIFIER *PRTCRX509OLDAUTHORITYKEYIDENTIFIER; +/** Pointer to the const IPRT representation of an X.509 AuthorityKeyIdentifier + * sequence. */ +typedef RTCRX509OLDAUTHORITYKEYIDENTIFIER const *PCRTCRX509OLDAUTHORITYKEYIDENTIFIER; +RTASN1TYPE_STANDARD_PROTOTYPES(RTCRX509OLDAUTHORITYKEYIDENTIFIER, RTDECL, RTCrX509OldAuthorityKeyIdentifier, SeqCore.Asn1Core); + + +/** + * One X.509 PolicyQualifierInfo (IPRT representation). + */ +typedef struct RTCRX509POLICYQUALIFIERINFO +{ + /** Core sequence bits. */ + RTASN1SEQUENCECORE SeqCore; + /** The policy object ID. */ + RTASN1OBJID PolicyQualifierId; + /** Anything defined by the policy qualifier id. */ + RTASN1DYNTYPE Qualifier; +} RTCRX509POLICYQUALIFIERINFO; +/** Pointer to the IPRT representation of an X.509 PolicyQualifierInfo + * sequence. */ +typedef RTCRX509POLICYQUALIFIERINFO *PRTCRX509POLICYQUALIFIERINFO; +/** Pointer to the const IPRT representation of an X.509 PolicyQualifierInfo + * sequence. */ +typedef RTCRX509POLICYQUALIFIERINFO const *PCRTCRX509POLICYQUALIFIERINFO; +RTASN1TYPE_STANDARD_PROTOTYPES(RTCRX509POLICYQUALIFIERINFO, RTDECL, RTCrX509PolicyQualifierInfo, SeqCore.Asn1Core); +RTASN1_IMPL_GEN_SEQ_OF_TYPEDEFS_AND_PROTOS(RTCRX509POLICYQUALIFIERINFOS, RTCRX509POLICYQUALIFIERINFO, RTDECL, RTCrX509PolicyQualifierInfos); + + +/** + * One X.509 PolicyInformation (IPRT representation). + */ +typedef struct RTCRX509POLICYINFORMATION +{ + /** Core sequence bits. */ + RTASN1SEQUENCECORE SeqCore; + /** The policy object ID. */ + RTASN1OBJID PolicyIdentifier; + /** Optional sequence of policy qualifiers. */ + RTCRX509POLICYQUALIFIERINFOS PolicyQualifiers; +} RTCRX509POLICYINFORMATION; +/** Pointer to the IPRT representation of an X.509 PolicyInformation + * sequence. */ +typedef RTCRX509POLICYINFORMATION *PRTCRX509POLICYINFORMATION; +/** Pointer to the const IPRT representation of an X.509 PolicyInformation + * sequence. */ +typedef RTCRX509POLICYINFORMATION const *PCRTCRX509POLICYINFORMATION; +RTASN1TYPE_STANDARD_PROTOTYPES(RTCRX509POLICYINFORMATION, RTDECL, RTCrX509PolicyInformation, SeqCore.Asn1Core); +RTASN1_IMPL_GEN_SEQ_OF_TYPEDEFS_AND_PROTOS(RTCRX509CERTIFICATEPOLICIES, RTCRX509POLICYINFORMATION, RTDECL, RTCrX509CertificatePolicies); + +/** Sepcial policy object ID that matches any policy. */ +#define RTCRX509_ID_CE_CP_ANY_POLICY_OID "2.5.29.32.0" + + +/** + * One X.509 PolicyMapping (IPRT representation). + */ +typedef struct RTCRX509POLICYMAPPING +{ + /** Core sequence bits. */ + RTASN1SEQUENCECORE SeqCore; + /** Issuer policy ID. */ + RTASN1OBJID IssuerDomainPolicy; + /** Subject policy ID. */ + RTASN1OBJID SubjectDomainPolicy; +} RTCRX509POLICYMAPPING; +/** Pointer to the IPRT representation of a sequence of X.509 PolicyMapping. */ +typedef RTCRX509POLICYMAPPING *PRTCRX509POLICYMAPPING; +/** Pointer to the const IPRT representation of a sequence of X.509 + * PolicyMapping. */ +typedef RTCRX509POLICYMAPPING const *PCRTCRX509POLICYMAPPING; +RTASN1TYPE_STANDARD_PROTOTYPES(RTCRX509POLICYMAPPING, RTDECL, RTCrX509PolicyMapping, SeqCore.Asn1Core); +RTASN1_IMPL_GEN_SEQ_OF_TYPEDEFS_AND_PROTOS(RTCRX509POLICYMAPPINGS, RTCRX509POLICYMAPPING, RTDECL, RTCrX509PolicyMappings); + + +/** + * X.509 BasicConstraints (IPRT representation). + */ +typedef struct RTCRX509BASICCONSTRAINTS +{ + /** Core sequence bits. */ + RTASN1SEQUENCECORE SeqCore; + /** Is this ia certficiate authority? Default to false. */ + RTASN1BOOLEAN CA; + /** Path length constraint. */ + RTASN1INTEGER PathLenConstraint; +} RTCRX509BASICCONSTRAINTS; +/** Pointer to the IPRT representation of a sequence of X.509 + * BasicConstraints. */ +typedef RTCRX509BASICCONSTRAINTS *PRTCRX509BASICCONSTRAINTS; +/** Pointer to the const IPRT representation of a sequence of X.509 + * BasicConstraints. */ +typedef RTCRX509BASICCONSTRAINTS const *PCRTCRX509BASICCONSTRAINTS; +RTASN1TYPE_STANDARD_PROTOTYPES(RTCRX509BASICCONSTRAINTS, RTDECL, RTCrX509BasicConstraints, SeqCore.Asn1Core); + + +/** + * X.509 GeneralSubtree (IPRT representation). + */ +typedef struct RTCRX509GENERALSUBTREE +{ + /** Core sequence bits. */ + RTASN1SEQUENCECORE SeqCore; + /** Base name. */ + RTCRX509GENERALNAME Base; + /** Tag 0, optional: Minimum, default 0. Fixed at 0 by RFC-5280. */ + RTASN1INTEGER Minimum; + /** Tag 1, optional: Maximum. Fixed as not-present by RFC-5280. */ + RTASN1INTEGER Maximum; +} RTCRX509GENERALSUBTREE; +/** Pointer to the IPRT representation of a sequence of X.509 GeneralSubtree. */ +typedef RTCRX509GENERALSUBTREE *PRTCRX509GENERALSUBTREE; +/** Pointer to the const IPRT representation of a sequence of X.509 + * GeneralSubtree. */ +typedef RTCRX509GENERALSUBTREE const *PCRTCRX509GENERALSUBTREE; +RTASN1TYPE_STANDARD_PROTOTYPES(RTCRX509GENERALSUBTREE, RTDECL, RTCrX509GeneralSubtree, SeqCore.Asn1Core); + +RTDECL(bool) RTCrX509GeneralSubtree_ConstraintMatch(PCRTCRX509GENERALSUBTREE pConstraint, PCRTCRX509GENERALSUBTREE pName); + +RTASN1_IMPL_GEN_SEQ_OF_TYPEDEFS_AND_PROTOS(RTCRX509GENERALSUBTREES, RTCRX509GENERALSUBTREE, RTDECL, RTCrX509GeneralSubtrees); + + +/** + * X.509 NameConstraints (IPRT representation). + */ +typedef struct RTCRX509NAMECONSTRAINTS +{ + /** Core sequence bits. */ + RTASN1SEQUENCECORE SeqCore; + /** Tag 0, optional: Permitted subtrees. */ + struct + { + /** Context tag. */ + RTASN1CONTEXTTAG0 CtxTag0; + /** The permitted subtrees. */ + RTCRX509GENERALSUBTREES PermittedSubtrees; + } T0; + /** Tag 1, optional: Excluded subtrees. */ + struct + { + /** Context tag. */ + RTASN1CONTEXTTAG1 CtxTag1; + /** The excluded subtrees. */ + RTCRX509GENERALSUBTREES ExcludedSubtrees; + } T1; +} RTCRX509NAMECONSTRAINTS; +/** Pointer to the IPRT representation of a sequence of X.509 + * NameConstraints. */ +typedef RTCRX509NAMECONSTRAINTS *PRTCRX509NAMECONSTRAINTS; +/** Pointer to the const IPRT representation of a sequence of X.509 + * NameConstraints. */ +typedef RTCRX509NAMECONSTRAINTS const *PCRTCRX509NAMECONSTRAINTS; +RTASN1TYPE_STANDARD_PROTOTYPES(RTCRX509NAMECONSTRAINTS, RTDECL, RTCrX509NameConstraints, SeqCore.Asn1Core); + + +/** + * X.509 PolicyConstraints (IPRT representation). + */ +typedef struct RTCRX509POLICYCONSTRAINTS +{ + /** Core sequence bits. */ + RTASN1SEQUENCECORE SeqCore; + /** Tag 0, optional: Certificates before an explicit policy is required. */ + RTASN1INTEGER RequireExplicitPolicy; + /** Tag 1, optional: Certificates before policy mapping is inhibited. */ + RTASN1INTEGER InhibitPolicyMapping; +} RTCRX509POLICYCONSTRAINTS; +/** Pointer to the IPRT representation of a sequence of X.509 + * PolicyConstraints. */ +typedef RTCRX509POLICYCONSTRAINTS *PRTCRX509POLICYCONSTRAINTS; +/** Pointer to the const IPRT representation of a sequence of X.509 + * PolicyConstraints. */ +typedef RTCRX509POLICYCONSTRAINTS const *PCRTCRX509POLICYCONSTRAINTS; +RTASN1TYPE_STANDARD_PROTOTYPES(RTCRX509POLICYCONSTRAINTS, RTDECL, RTCrX509PolicyConstraints, SeqCore.Asn1Core); + + +/** + * Indicates what an X.509 extension value encapsulates. + */ +typedef enum RTCRX509EXTENSIONVALUE +{ + RTCRX509EXTENSIONVALUE_INVALID = 0, + /** Unknown, no decoding available just the octet string. */ + RTCRX509EXTENSIONVALUE_UNKNOWN, + /** Unencapsulated (i.e. octet string). */ + RTCRX509EXTENSIONVALUE_NOT_ENCAPSULATED, + + /** Bit string (RTASN1BITSTRING). */ + RTCRX509EXTENSIONVALUE_BIT_STRING, + /** Octet string (RTASN1OCTETSTRING). */ + RTCRX509EXTENSIONVALUE_OCTET_STRING, + /** Integer string (RTASN1INTEGER). */ + RTCRX509EXTENSIONVALUE_INTEGER, + /** Sequence of object identifiers (RTASN1SEQOFOBJIDS). */ + RTCRX509EXTENSIONVALUE_SEQ_OF_OBJ_IDS, + + /** Authority key identifier (RTCRX509AUTHORITYKEYIDENTIFIER). */ + RTCRX509EXTENSIONVALUE_AUTHORITY_KEY_IDENTIFIER, + /** Old Authority key identifier (RTCRX509OLDAUTHORITYKEYIDENTIFIER). */ + RTCRX509EXTENSIONVALUE_OLD_AUTHORITY_KEY_IDENTIFIER, + /** Certificate policies (RTCRX509CERTIFICATEPOLICIES). */ + RTCRX509EXTENSIONVALUE_CERTIFICATE_POLICIES, + /** Sequence of policy mappings (RTCRX509POLICYMAPPINGS). */ + RTCRX509EXTENSIONVALUE_POLICY_MAPPINGS, + /** Basic constraints (RTCRX509BASICCONSTRAINTS). */ + RTCRX509EXTENSIONVALUE_BASIC_CONSTRAINTS, + /** Name constraints (RTCRX509NAMECONSTRAINTS). */ + RTCRX509EXTENSIONVALUE_NAME_CONSTRAINTS, + /** Policy constraints (RTCRX509POLICYCONSTRAINTS). */ + RTCRX509EXTENSIONVALUE_POLICY_CONSTRAINTS, + /** Sequence of general names (RTCRX509GENERALNAMES). */ + RTCRX509EXTENSIONVALUE_GENERAL_NAMES, + + /** Blow the type up to 32-bits. */ + RTCRX509EXTENSIONVALUE_32BIT_HACK = 0x7fffffff +} RTCRX509EXTENSIONVALUE; + +/** + * One X.509 Extension (IPRT representation). + */ +typedef struct RTCRX509EXTENSION +{ + /** Core sequence bits. */ + RTASN1SEQUENCECORE SeqCore; + /** Extension ID. */ + RTASN1OBJID ExtnId; + /** Whether this is critical (default @c false). */ + RTASN1BOOLEAN Critical; + /** Indicates what ExtnValue.pEncapsulated points at. */ + RTCRX509EXTENSIONVALUE enmValue; + /** The value. + * Contains extension specific data that we don't yet parse. */ + RTASN1OCTETSTRING ExtnValue; +} RTCRX509EXTENSION; +/** Pointer to the IPRT representation of one X.509 extensions. */ +typedef RTCRX509EXTENSION *PRTCRX509EXTENSION; +/** Pointer to the const IPRT representation of one X.509 extension. */ +typedef RTCRX509EXTENSION const *PCRTCRX509EXTENSION; +RTASN1TYPE_STANDARD_PROTOTYPES(RTCRX509EXTENSION, RTDECL, RTCrX509Extension, SeqCore.Asn1Core); +RTASN1_IMPL_GEN_SEQ_OF_TYPEDEFS_AND_PROTOS(RTCRX509EXTENSIONS, RTCRX509EXTENSION, RTDECL, RTCrX509Extensions); + +RTDECL(int) RTCrX509Extension_ExtnValue_DecodeAsn1(PRTASN1CURSOR pCursor, uint32_t fFlags, + PRTCRX509EXTENSION pThis, const char *pszErrorTag); + + +/** + * X.509 To-be-signed certificate information (IPRT representation). + */ +typedef struct RTCRX509TBSCERTIFICATE +{ + /** Sequence core. */ + RTASN1SEQUENCECORE SeqCore; + /** Structure version. */ + struct + { + /** Context tag with value 0. */ + RTASN1CONTEXTTAG0 CtxTag0; + /** The actual value (RTCRX509TBSCERTIFICATE_V1, ...). */ + RTASN1INTEGER Version; + } T0; + /** The serial number of the certificate. */ + RTASN1INTEGER SerialNumber; + /** The signature algorithm. */ + RTCRX509ALGORITHMIDENTIFIER Signature; + /** The issuer name. */ + RTCRX509NAME Issuer; + /** The certificate validity period. */ + RTCRX509VALIDITY Validity; + /** The subject name. */ + RTCRX509NAME Subject; + /** The public key for this certificate. */ + RTCRX509SUBJECTPUBLICKEYINFO SubjectPublicKeyInfo; + /** Issuer unique identifier (optional, version >= v2). */ + struct + { + /** Context tag with value 1. */ + RTASN1CONTEXTTAG1 CtxTag1; + /** The unique identifier value. */ + RTCRX509UNIQUEIDENTIFIER IssuerUniqueId; + } T1; + /** Subject unique identifier (optional, version >= v2). */ + struct + { + /** Context tag with value 2. */ + RTASN1CONTEXTTAG2 CtxTag2; + /** The unique identifier value. */ + RTCRX509UNIQUEIDENTIFIER SubjectUniqueId; + } T2; + /** Extensions (optional, version >= v3). */ + struct + { + /** Context tag with value 3. */ + RTASN1CONTEXTTAG3 CtxTag3; + /** The unique identifier value. */ + RTCRX509EXTENSIONS Extensions; + /** Extensions summary flags. */ + uint32_t fFlags; + /** Key usage flags. */ + uint32_t fKeyUsage; + /** Extended key usage flags. */ + uint32_t fExtKeyUsage; + + /** Pointer to the authority key ID extension if present. */ + PCRTCRX509AUTHORITYKEYIDENTIFIER pAuthorityKeyIdentifier; + /** Pointer to the OLD authority key ID extension if present. */ + PCRTCRX509OLDAUTHORITYKEYIDENTIFIER pOldAuthorityKeyIdentifier; + /** Pointer to the subject key ID extension if present. */ + PCRTASN1OCTETSTRING pSubjectKeyIdentifier; + /** Pointer to the alternative subject name extension if present. */ + PCRTCRX509GENERALNAMES pAltSubjectName; + /** Pointer to the alternative issuer name extension if present. */ + PCRTCRX509GENERALNAMES pAltIssuerName; + /** Pointer to the certificate policies extension if present. */ + PCRTCRX509CERTIFICATEPOLICIES pCertificatePolicies; + /** Pointer to the policy mappings extension if present. */ + PCRTCRX509POLICYMAPPINGS pPolicyMappings; + /** Pointer to the basic constraints extension if present. */ + PCRTCRX509BASICCONSTRAINTS pBasicConstraints; + /** Pointer to the name constraints extension if present. */ + PCRTCRX509NAMECONSTRAINTS pNameConstraints; + /** Pointer to the policy constraints extension if present. */ + PCRTCRX509POLICYCONSTRAINTS pPolicyConstraints; + /** Pointer to the inhibit anyPolicy extension if present. */ + PCRTASN1INTEGER pInhibitAnyPolicy; + } T3; +} RTCRX509TBSCERTIFICATE; +/** Pointer to the IPRT representation of a X.509 TBSCertificate. */ +typedef RTCRX509TBSCERTIFICATE *PRTCRX509TBSCERTIFICATE; +/** Pointer to the const IPRT representation of a X.509 TBSCertificate. */ +typedef RTCRX509TBSCERTIFICATE const *PCRTCRX509TBSCERTIFICATE; +RTASN1TYPE_STANDARD_PROTOTYPES(RTCRX509TBSCERTIFICATE, RTDECL, RTCrX509TbsCertificate, SeqCore.Asn1Core); + +/** @name RTCRX509TBSCERTIFICATE::T0.Version values. + * @{ */ +#define RTCRX509TBSCERTIFICATE_V1 0 +#define RTCRX509TBSCERTIFICATE_V2 1 +#define RTCRX509TBSCERTIFICATE_V3 2 +/** @} */ + +/** @name RTCRX509TBSCERTIFICATE::T3.fFlags values. + * @{ */ +#define RTCRX509TBSCERTIFICATE_F_PRESENT_KEY_USAGE RT_BIT_32(0) +#define RTCRX509TBSCERTIFICATE_F_PRESENT_EXT_KEY_USAGE RT_BIT_32(1) +#define RTCRX509TBSCERTIFICATE_F_PRESENT_SUBJECT_KEY_IDENTIFIER RT_BIT_32(2) +#define RTCRX509TBSCERTIFICATE_F_PRESENT_SUBJECT_ALT_NAME RT_BIT_32(3) +#define RTCRX509TBSCERTIFICATE_F_PRESENT_ISSUER_ALT_NAME RT_BIT_32(4) +#define RTCRX509TBSCERTIFICATE_F_PRESENT_CERTIFICATE_POLICIES RT_BIT_32(5) +#define RTCRX509TBSCERTIFICATE_F_PRESENT_POLICY_MAPPINGS RT_BIT_32(6) +#define RTCRX509TBSCERTIFICATE_F_PRESENT_BASIC_CONSTRAINTS RT_BIT_32(7) +#define RTCRX509TBSCERTIFICATE_F_PRESENT_NAME_CONSTRAINTS RT_BIT_32(8) +#define RTCRX509TBSCERTIFICATE_F_PRESENT_POLICY_CONSTRAINTS RT_BIT_32(9) +#define RTCRX509TBSCERTIFICATE_F_PRESENT_AUTHORITY_KEY_IDENTIFIER RT_BIT_32(10) +#define RTCRX509TBSCERTIFICATE_F_PRESENT_OLD_AUTHORITY_KEY_IDENTIFIER RT_BIT_32(11) +#define RTCRX509TBSCERTIFICATE_F_PRESENT_ACCEPTABLE_CERT_POLICIES RT_BIT_32(12) +#define RTCRX509TBSCERTIFICATE_F_PRESENT_INHIBIT_ANY_POLICY RT_BIT_32(13) +#define RTCRX509TBSCERTIFICATE_F_PRESENT_OTHER RT_BIT_32(22) /**< Other unknown extension present. */ +#define RTCRX509TBSCERTIFICATE_F_PRESENT_NONE RT_BIT_32(23) /**< No extensions present. */ +/** @} */ + +/** @name X.509 Key Usage flags. (RFC-5280 section 4.2.1.3.) + * @{ */ +#define RTCRX509CERT_KEY_USAGE_F_DIGITAL_SIGNATURE_BIT 0 +#define RTCRX509CERT_KEY_USAGE_F_DIGITAL_SIGNATURE RT_BIT_32(0) +#define RTCRX509CERT_KEY_USAGE_F_CONTENT_COMMITTMENT_BIT 1 +#define RTCRX509CERT_KEY_USAGE_F_CONTENT_COMMITTMENT RT_BIT_32(1) +#define RTCRX509CERT_KEY_USAGE_F_KEY_ENCIPHERMENT_BIT 2 +#define RTCRX509CERT_KEY_USAGE_F_KEY_ENCIPHERMENT RT_BIT_32(2) +#define RTCRX509CERT_KEY_USAGE_F_DATA_ENCIPHERMENT_BIT 3 +#define RTCRX509CERT_KEY_USAGE_F_DATA_ENCIPHERMENT RT_BIT_32(3) +#define RTCRX509CERT_KEY_USAGE_F_KEY_AGREEMENT_BIT 4 +#define RTCRX509CERT_KEY_USAGE_F_KEY_AGREEMENT RT_BIT_32(4) +#define RTCRX509CERT_KEY_USAGE_F_KEY_CERT_SIGN_BIT 5 +#define RTCRX509CERT_KEY_USAGE_F_KEY_CERT_SIGN RT_BIT_32(5) +#define RTCRX509CERT_KEY_USAGE_F_CRL_SIGN_BIT 6 +#define RTCRX509CERT_KEY_USAGE_F_CRL_SIGN RT_BIT_32(6) +#define RTCRX509CERT_KEY_USAGE_F_ENCIPHERMENT_ONLY_BIT 7 +#define RTCRX509CERT_KEY_USAGE_F_ENCIPHERMENT_ONLY RT_BIT_32(7) +#define RTCRX509CERT_KEY_USAGE_F_DECIPHERMENT_ONLY_BIT 8 +#define RTCRX509CERT_KEY_USAGE_F_DECIPHERMENT_ONLY RT_BIT_32(8) +/** @} */ + +/** @name X.509 Extended Key Usage flags. (RFC-5280 section 4.2.1.12, ++.) + * @remarks Needless to say, these flags doesn't cover all possible extended key + * usages, because there is a potential unlimited number of them. Only + * ones relevant to IPRT and it's users are covered. + * @{ */ +#define RTCRX509CERT_EKU_F_ANY RT_BIT_64(0) +#define RTCRX509CERT_EKU_F_SERVER_AUTH RT_BIT_64(1) +#define RTCRX509CERT_EKU_F_CLIENT_AUTH RT_BIT_64(2) +#define RTCRX509CERT_EKU_F_CODE_SIGNING RT_BIT_64(3) +#define RTCRX509CERT_EKU_F_EMAIL_PROTECTION RT_BIT_64(4) +#define RTCRX509CERT_EKU_F_IPSEC_END_SYSTEM RT_BIT_64(5) +#define RTCRX509CERT_EKU_F_IPSEC_TUNNEL RT_BIT_64(6) +#define RTCRX509CERT_EKU_F_IPSEC_USER RT_BIT_64(7) +#define RTCRX509CERT_EKU_F_TIMESTAMPING RT_BIT_64(8) +#define RTCRX509CERT_EKU_F_OCSP_SIGNING RT_BIT_64(9) +#define RTCRX509CERT_EKU_F_DVCS RT_BIT_64(10) +#define RTCRX509CERT_EKU_F_SBGP_CERT_AA_SERVICE_AUTH RT_BIT_64(11) +#define RTCRX509CERT_EKU_F_EAP_OVER_PPP RT_BIT_64(12) +#define RTCRX509CERT_EKU_F_EAP_OVER_LAN RT_BIT_64(13) +#define RTCRX509CERT_EKU_F_OTHER RT_BIT_64(16) /**< Other unknown extended key usage present. */ +#define RTCRX509CERT_EKU_F_APPLE_CODE_SIGNING RT_BIT_64(24) +#define RTCRX509CERT_EKU_F_APPLE_CODE_SIGNING_DEVELOPMENT RT_BIT_64(25) +#define RTCRX509CERT_EKU_F_APPLE_SOFTWARE_UPDATE_SIGNING RT_BIT_64(26) +#define RTCRX509CERT_EKU_F_APPLE_CODE_SIGNING_THIRD_PARTY RT_BIT_64(27) +#define RTCRX509CERT_EKU_F_APPLE_RESOURCE_SIGNING RT_BIT_64(28) +#define RTCRX509CERT_EKU_F_APPLE_SYSTEM_IDENTITY RT_BIT_64(29) +#define RTCRX509CERT_EKU_F_MS_TIMESTAMP_SIGNING RT_BIT_64(32) +#define RTCRX509CERT_EKU_F_MS_NT5_CRYPTO RT_BIT_64(33) +#define RTCRX509CERT_EKU_F_MS_OEM_WHQL_CRYPTO RT_BIT_64(34) +#define RTCRX509CERT_EKU_F_MS_EMBEDDED_NT_CRYPTO RT_BIT_64(35) +#define RTCRX509CERT_EKU_F_MS_KERNEL_MODE_CODE_SIGNING RT_BIT_64(36) +#define RTCRX509CERT_EKU_F_MS_LIFETIME_SIGNING RT_BIT_64(37) +#define RTCRX509CERT_EKU_F_MS_DRM RT_BIT_64(38) +#define RTCRX509CERT_EKU_F_MS_DRM_INDIVIDUALIZATION RT_BIT_64(39) +/** @} */ + +/** @name Key purpose OIDs (extKeyUsage) + * @{ */ +#define RTCRX509_ANY_EXTENDED_KEY_USAGE_OID "2.5.29.37.0" +#define RTCRX509_ID_KP_OID "1.3.6.1.5.5.7.3" +#define RTCRX509_ID_KP_SERVER_AUTH_OID "1.3.6.1.5.5.7.3.1" +#define RTCRX509_ID_KP_CLIENT_AUTH_OID "1.3.6.1.5.5.7.3.2" +#define RTCRX509_ID_KP_CODE_SIGNING_OID "1.3.6.1.5.5.7.3.3" +#define RTCRX509_ID_KP_EMAIL_PROTECTION_OID "1.3.6.1.5.5.7.3.4" +#define RTCRX509_ID_KP_IPSEC_END_SYSTEM_OID "1.3.6.1.5.5.7.3.5" +#define RTCRX509_ID_KP_IPSEC_TUNNEL_OID "1.3.6.1.5.5.7.3.6" +#define RTCRX509_ID_KP_IPSEC_USER_OID "1.3.6.1.5.5.7.3.7" +#define RTCRX509_ID_KP_TIMESTAMPING_OID "1.3.6.1.5.5.7.3.8" +#define RTCRX509_ID_KP_OCSP_SIGNING_OID "1.3.6.1.5.5.7.3.9" +#define RTCRX509_ID_KP_DVCS_OID "1.3.6.1.5.5.7.3.10" +#define RTCRX509_ID_KP_SBGP_CERT_AA_SERVICE_AUTH_OID "1.3.6.1.5.5.7.3.11" +#define RTCRX509_ID_KP_EAP_OVER_PPP_OID "1.3.6.1.5.5.7.3.13" +#define RTCRX509_ID_KP_EAP_OVER_LAN_OID "1.3.6.1.5.5.7.3.14" +/** @} */ + +/** @name Microsoft extended key usage OIDs + * @{ */ +#define RTCRX509_MS_EKU_CERT_TRUST_LIST_SIGNING_OID "1.3.6.1.4.1.311.10.3.1" +#define RTCRX509_MS_EKU_TIMESTAMP_SIGNING_OID "1.3.6.1.4.1.311.10.3.2" +#define RTCRX509_MS_EKU_SERVER_GATED_CRYPTO_OID "1.3.6.1.4.1.311.10.3.3" +#define RTCRX509_MS_EKU_SGC_SERIALIZED_OID "1.3.6.1.4.1.311.10.3.3.1" +#define RTCRX509_MS_EKU_ENCRYPTED_FILE_SYSTEM_OID "1.3.6.1.4.1.311.10.3.4" +#define RTCRX509_MS_EKU_WHQL_CRYPTO_OID "1.3.6.1.4.1.311.10.3.5" +#define RTCRX509_MS_EKU_NT5_CRYPTO_OID "1.3.6.1.4.1.311.10.3.6" +#define RTCRX509_MS_EKU_OEM_WHQL_CRYPTO_OID "1.3.6.1.4.1.311.10.3.7" +#define RTCRX509_MS_EKU_EMBEDDED_NT_CRYPTO_OID "1.3.6.1.4.1.311.10.3.8" +#define RTCRX509_MS_EKU_ROOT_LIST_SIGNER_OID "1.3.6.1.4.1.311.10.3.9" +#define RTCRX509_MS_EKU_QUALIFIED_SUBORDINATE_OID "1.3.6.1.4.1.311.10.3.10" +#define RTCRX509_MS_EKU_KEY_RECOVERY_3_OID "1.3.6.1.4.1.311.10.3.11" +#define RTCRX509_MS_EKU_DOCUMENT_SIGNING_OID "1.3.6.1.4.1.311.10.3.12" +#define RTCRX509_MS_EKU_LIFETIME_SIGNING_OID "1.3.6.1.4.1.311.10.3.13" +#define RTCRX509_MS_EKU_MOBILE_DEVICE_SOFTWARE_OID "1.3.6.1.4.1.311.10.3.14" +#define RTCRX509_MS_EKU_SMART_DISPLAY_OID "1.3.6.1.4.1.311.10.3.15" +#define RTCRX509_MS_EKU_CSP_SIGNATURE_OID "1.3.6.1.4.1.311.10.3.16" +#define RTCRX509_MS_EKU_EFS_RECOVERY_OID "1.3.6.1.4.1.311.10.3.4.1" +#define RTCRX509_MS_EKU_DRM_OID "1.3.6.1.4.1.311.10.5.1" +#define RTCRX509_MS_EKU_DRM_INDIVIDUALIZATION_OID "1.3.6.1.4.1.311.10.5.2" +#define RTCRX509_MS_EKU_LICENSES_OID "1.3.6.1.4.1.311.10.5.3" +#define RTCRX509_MS_EKU_LICENSE_SERVER_OID "1.3.6.1.4.1.311.10.5.4" +#define RTCRX509_MS_EKU_ENROLLMENT_AGENT_OID "1.3.6.1.4.1.311.20.2.1" +#define RTCRX509_MS_EKU_SMARTCARD_LOGON_OID "1.3.6.1.4.1.311.20.2.2" +#define RTCRX509_MS_EKU_CA_EXCHANGE_OID "1.3.6.1.4.1.311.21.5" +#define RTCRX509_MS_EKU_KEY_RECOVERY_21_OID "1.3.6.1.4.1.311.21.6" +#define RTCRX509_MS_EKU_SYSTEM_HEALTH_OID "1.3.6.1.4.1.311.47.1.1" +#define RTCRX509_MS_EKU_SYSTEM_HEALTH_LOOPHOLE_OID "1.3.6.1.4.1.311.47.1.3" +#define RTCRX509_MS_EKU_KERNEL_MODE_CODE_SIGNING_OID "1.3.6.1.4.1.311.61.1.1" +/** @} */ + +/** @name Apple extended key usage OIDs + * @{ */ +#define RTCRX509_APPLE_EKU_APPLE_EXTENDED_KEY_USAGE_OID "1.2.840.113635.100.4" +#define RTCRX509_APPLE_EKU_CODE_SIGNING_OID "1.2.840.113635.100.4.1" +#define RTCRX509_APPLE_EKU_CODE_SIGNING_DEVELOPMENT_OID "1.2.840.113635.100.4.1.1" +#define RTCRX509_APPLE_EKU_SOFTWARE_UPDATE_SIGNING_OID "1.2.840.113635.100.4.1.2" +#define RTCRX509_APPLE_EKU_CODE_SIGNING_THRID_PARTY_OID "1.2.840.113635.100.4.1.3" +#define RTCRX509_APPLE_EKU_RESOURCE_SIGNING_OID "1.2.840.113635.100.4.1.4" +#define RTCRX509_APPLE_EKU_ICHAT_SIGNING_OID "1.2.840.113635.100.4.2" +#define RTCRX509_APPLE_EKU_ICHAT_ENCRYPTION_OID "1.2.840.113635.100.4.3" +#define RTCRX509_APPLE_EKU_SYSTEM_IDENTITY_OID "1.2.840.113635.100.4.4" +#define RTCRX509_APPLE_EKU_CRYPTO_ENV_OID "1.2.840.113635.100.4.5" +#define RTCRX509_APPLE_EKU_CRYPTO_PRODUCTION_ENV_OID "1.2.840.113635.100.4.5.1" +#define RTCRX509_APPLE_EKU_CRYPTO_MAINTENANCE_ENV_OID "1.2.840.113635.100.4.5.2" +#define RTCRX509_APPLE_EKU_CRYPTO_TEST_ENV_OID "1.2.840.113635.100.4.5.3" +#define RTCRX509_APPLE_EKU_CRYPTO_DEVELOPMENT_ENV_OID "1.2.840.113635.100.4.5.4" +#define RTCRX509_APPLE_EKU_CRYPTO_QOS_OID "1.2.840.113635.100.4.6" +#define RTCRX509_APPLE_EKU_CRYPTO_TIER0_QOS_OID "1.2.840.113635.100.4.6.1" +#define RTCRX509_APPLE_EKU_CRYPTO_TIER1_QOS_OID "1.2.840.113635.100.4.6.2" +#define RTCRX509_APPLE_EKU_CRYPTO_TIER2_QOS_OID "1.2.840.113635.100.4.6.3" +#define RTCRX509_APPLE_EKU_CRYPTO_TIER3_QOS_OID "1.2.840.113635.100.4.6.4" +/** @} */ + +/** + * Use this to update derived values after changing the certificate + * extensions. + * + * @returns IPRT status code + * @param pThis The certificate. + * @param pErrInfo Where to return additional error information. Optional. + */ +RTDECL(int) RTCrX509TbsCertificate_ReprocessExtensions(PRTCRX509TBSCERTIFICATE pThis, PRTERRINFO pErrInfo); + + +/** + * One X.509 Certificate (IPRT representation). + */ +typedef struct RTCRX509CERTIFICATE +{ + /** Sequence core. */ + RTASN1SEQUENCECORE SeqCore; + /** The to-be-signed certificate information. */ + RTCRX509TBSCERTIFICATE TbsCertificate; + /** The signature algorithm (must match TbsCertificate.Signature). */ + RTCRX509ALGORITHMIDENTIFIER SignatureAlgorithm; + /** The signature value. */ + RTASN1BITSTRING SignatureValue; +} RTCRX509CERTIFICATE; +/** Pointer to the IPRT representation of one X.509 certificate. */ +typedef RTCRX509CERTIFICATE *PRTCRX509CERTIFICATE; +/** Pointer to the const IPRT representation of one X.509 certificate. */ +typedef RTCRX509CERTIFICATE const *PCRTCRX509CERTIFICATE; +RTASN1TYPE_STANDARD_PROTOTYPES(RTCRX509CERTIFICATE, RTDECL, RTCrX509Certificate, SeqCore.Asn1Core); + +/** + * Checks if a certificate matches a given issuer name and serial number. + * + * @returns True / false. + * @param pCertificates The X.509 certificat. + * @param pIssuer The issuer name to match against. + * @param pSerialNumber The serial number to match against. + */ +RTDECL(bool) RTCrX509Certificate_MatchIssuerAndSerialNumber(PCRTCRX509CERTIFICATE pCertificate, + PCRTCRX509NAME pIssuer, PCRTASN1INTEGER pSerialNumber); + +RTDECL(bool) RTCrX509Certificate_MatchSubjectOrAltSubjectByRfc5280(PCRTCRX509CERTIFICATE pThis, PCRTCRX509NAME pName); +RTDECL(bool) RTCrX509Certificate_IsSelfSigned(PCRTCRX509CERTIFICATE pCertificate); + +RTDECL(int) RTCrX509Certificate_VerifySignature(PCRTCRX509CERTIFICATE pThis, PCRTASN1OBJID pAlgorithm, + PCRTASN1DYNTYPE pParameters, PCRTASN1BITSTRING pPublicKey, + PRTERRINFO pErrInfo); +RTDECL(int) RTCrX509Certificate_ReadFromFile(PRTCRX509CERTIFICATE pCertificate, const char *pszFilename, uint32_t fFlags, + PCRTASN1ALLOCATORVTABLE pAllocator, PRTERRINFO pErrInfo); + + +/** @name X.509 Certificate Extensions + * @{ */ +/** Old AuthorityKeyIdentifier OID. */ +#define RTCRX509_ID_CE_OLD_AUTHORITY_KEY_IDENTIFIER_OID "2.5.29.1" +/** Old CertificatePolicies extension OID. */ +#define RTCRX509_ID_CE_OLD_CERTIFICATE_POLICIES_OID "2.5.29.3" +/** Old SubjectAltName extension OID. */ +#define RTCRX509_ID_CE_OLD_SUBJECT_ALT_NAME_OID "2.5.29.7" +/** Old IssuerAltName extension OID. */ +#define RTCRX509_ID_CE_OLD_ISSUER_ALT_NAME_OID "2.5.29.8" +/** Old BasicContraints extension OID. */ +#define RTCRX509_ID_CE_OLD_BASIC_CONSTRAINTS_OID "2.5.29.10" +/** SubjectKeyIdentifier OID. */ +#define RTCRX509_ID_CE_SUBJECT_KEY_IDENTIFIER_OID "2.5.29.14" +/** KeyUsage OID. */ +#define RTCRX509_ID_CE_KEY_USAGE_OID "2.5.29.15" +/** PrivateKeyUsagePeriod OID. */ +#define RTCRX509_ID_CE_PRIVATE_KEY_USAGE_PERIOD_OID "2.5.29.16" +/** SubjectAltName extension OID. */ +#define RTCRX509_ID_CE_SUBJECT_ALT_NAME_OID "2.5.29.17" +/** IssuerAltName extension OID. */ +#define RTCRX509_ID_CE_ISSUER_ALT_NAME_OID "2.5.29.18" +/** BasicContraints extension OID. */ +#define RTCRX509_ID_CE_BASIC_CONSTRAINTS_OID "2.5.29.19" +/** NameContraints extension OID. */ +#define RTCRX509_ID_CE_NAME_CONSTRAINTS_OID "2.5.29.30" +/** CertificatePolicies extension OID. */ +#define RTCRX509_ID_CE_CERTIFICATE_POLICIES_OID "2.5.29.32" +/** PolicyMappings extension OID. */ +#define RTCRX509_ID_CE_POLICY_MAPPINGS_OID "2.5.29.33" +/** AuthorityKeyIdentifier OID. */ +#define RTCRX509_ID_CE_AUTHORITY_KEY_IDENTIFIER_OID "2.5.29.35" +/** PolicyContraints extension OID. */ +#define RTCRX509_ID_CE_POLICY_CONSTRAINTS_OID "2.5.29.36" +/** ExtKeyUsage (extended key usage) extension OID. */ +#define RTCRX509_ID_CE_EXT_KEY_USAGE_OID "2.5.29.37" +/** ExtKeyUsage: OID for permitting any unspecified key usage. */ +#define RTCRX509_ID_CE_ANY_EXTENDED_KEY_USAGE_OID "2.5.29.37.0" +/** AuthorityAttributeIdentifier OID. */ +#define RTCRX509_ID_CE_AUTHORITY_ATTRIBUTE_IDENTIFIER_OID "2.5.29.38" +/** AcceptableCertPolicies OID. */ +#define RTCRX509_ID_CE_ACCEPTABLE_CERT_POLICIES_OID "2.5.29.52" +/** InhibitAnyPolicy OID. */ +#define RTCRX509_ID_CE_INHIBIT_ANY_POLICY_OID "2.5.29.54" +/** @} */ + + +/* + * Sequence of X.509 Certifcates (IPRT representation). + */ +RTASN1_IMPL_GEN_SET_OF_TYPEDEFS_AND_PROTOS(RTCRX509CERTIFICATES, RTCRX509CERTIFICATE, RTDECL, RTCrX509Certificates); + +/** + * Looks up a certificate by issuer name and serial number. + * + * @returns Pointer to the given certificate if found, NULL if not. + * @param pCertificates The X.509 certificate set to search. + * @param pIssuer The issuer name of the wanted certificate. + * @param pSerialNumber The serial number of the wanted certificate. + */ +RTDECL(PCRTCRX509CERTIFICATE) RTCrX509Certificates_FindByIssuerAndSerialNumber(PCRTCRX509CERTIFICATES pCertificates, + PCRTCRX509NAME pIssuer, + PCRTASN1INTEGER pSerialNumber); + + + +RTDECL(int) RTCrX509CertPathsCreate(PRTCRX509CERTPATHS phCertPaths, PCRTCRX509CERTIFICATE pTarget); +RTDECL(uint32_t) RTCrX509CertPathsRetain(RTCRX509CERTPATHS hCertPaths); +RTDECL(uint32_t) RTCrX509CertPathsRelease(RTCRX509CERTPATHS hCertPaths); +RTDECL(int) RTCrX509CertPathsSetTrustedStore(RTCRX509CERTPATHS hCertPaths, RTCRSTORE hTrustedStore); +RTDECL(int) RTCrX509CertPathsSetUntrustedStore(RTCRX509CERTPATHS hCertPaths, RTCRSTORE hUntrustedStore); +RTDECL(int) RTCrX509CertPathsSetUntrustedArray(RTCRX509CERTPATHS hCertPaths, PCRTCRX509CERTIFICATE paCerts, uint32_t cCerts); +RTDECL(int) RTCrX509CertPathsSetUntrustedSet(RTCRX509CERTPATHS hCertPaths, struct RTCRPKCS7SETOFCERTS const *pSetOfCerts); +RTDECL(int) RTCrX509CertPathsSetValidTime(RTCRX509CERTPATHS hCertPaths, PCRTTIME pTime); +RTDECL(int) RTCrX509CertPathsSetValidTimeSpec(RTCRX509CERTPATHS hCertPaths, PCRTTIMESPEC pTimeSpec); +RTDECL(int) RTCrX509CertPathsCreateEx(PRTCRX509CERTPATHS phCertPaths, PCRTCRX509CERTIFICATE pTarget, RTCRSTORE hTrustedStore, + RTCRSTORE hUntrustedStore, PCRTCRX509CERTIFICATE paUntrustedCerts, uint32_t cUntrustedCerts, + PCRTTIMESPEC pValidTime); +RTDECL(int) RTCrX509CertPathsBuild(RTCRX509CERTPATHS hCertPaths, PRTERRINFO pErrInfo); +RTDECL(int) RTCrX509CertPathsDumpOne(RTCRX509CERTPATHS hCertPaths, uint32_t iPath, uint32_t uVerbosity, + PFNRTDUMPPRINTFV pfnPrintfV, void *pvUser); +RTDECL(int) RTCrX509CertPathsDumpAll(RTCRX509CERTPATHS hCertPaths, uint32_t uVerbosity, + PFNRTDUMPPRINTFV pfnPrintfV, void *pvUser); + +RTDECL(int) RTCrX509CertPathsValidateOne(RTCRX509CERTPATHS hCertPaths, uint32_t iPath, PRTERRINFO pErrInfo); +RTDECL(int) RTCrX509CertPathsValidateAll(RTCRX509CERTPATHS hCertPaths, uint32_t *pcValidPaths, PRTERRINFO pErrInfo); + +RTDECL(uint32_t) RTCrX509CertPathsGetPathCount(RTCRX509CERTPATHS hCertPaths); +RTDECL(int) RTCrX509CertPathsQueryPathInfo(RTCRX509CERTPATHS hCertPaths, uint32_t iPath, + bool *pfTrusted, uint32_t *pcNodes, PCRTCRX509NAME *ppSubject, + PCRTCRX509SUBJECTPUBLICKEYINFO *ppPublicKeyInfo, + PCRTCRX509CERTIFICATE *ppCert, PCRTCRCERTCTX *ppCertCtx, int *prcVerify); +RTDECL(uint32_t) RTCrX509CertPathsGetPathLength(RTCRX509CERTPATHS hCertPaths, uint32_t iPath); +RTDECL(int) RTCrX509CertPathsGetPathVerifyResult(RTCRX509CERTPATHS hCertPaths, uint32_t iPath); +RTDECL(PCRTCRX509CERTIFICATE) RTCrX509CertPathsGetPathNodeCert(RTCRX509CERTPATHS hCertPaths, uint32_t iPath, uint32_t iNode); + + +RT_C_DECLS_END + +/** @} */ + +/** @} */ + +#endif + diff -Nru virtualbox-4.1.12-dfsg/include/iprt/ctype.h virtualbox-4.1.44-dfsg/include/iprt/ctype.h --- virtualbox-4.1.12-dfsg/include/iprt/ctype.h 2012-04-02 13:24:43.000000000 +0000 +++ virtualbox-4.1.44-dfsg/include/iprt/ctype.h 2015-11-11 15:06:03.000000000 +0000 @@ -143,8 +143,8 @@ */ DECL_FORCE_INLINE(bool) RTLocCIsSpace(int ch) { - /* \t (9), \n (10), \v (11), \f (12), \r (13), ' ' (32). */ - return (ch) == ' ' || ((ch) >= 9 && (ch) <= 13); + return ch == 0x20 /* 20 (space) */ + || (unsigned)ch - 0x09U < 5U; /* 09..0d */ } /** diff -Nru virtualbox-4.1.12-dfsg/include/iprt/dbg.h virtualbox-4.1.44-dfsg/include/iprt/dbg.h --- virtualbox-4.1.12-dfsg/include/iprt/dbg.h 2012-04-02 13:24:43.000000000 +0000 +++ virtualbox-4.1.44-dfsg/include/iprt/dbg.h 2015-11-11 15:06:03.000000000 +0000 @@ -4,7 +4,7 @@ */ /* - * Copyright (C) 2008-2009 Oracle Corporation + * Copyright (C) 2008-2013 Oracle Corporation * * This file is part of VirtualBox Open Source Edition (OSE), as * available from http://www.virtualbox.org. This file is free software; @@ -29,6 +29,7 @@ #include #include +#include RT_C_DECLS_BEGIN diff -Nru virtualbox-4.1.12-dfsg/include/iprt/env.h virtualbox-4.1.44-dfsg/include/iprt/env.h --- virtualbox-4.1.12-dfsg/include/iprt/env.h 2012-04-02 13:24:43.000000000 +0000 +++ virtualbox-4.1.44-dfsg/include/iprt/env.h 2015-11-11 15:06:03.000000000 +0000 @@ -54,7 +54,15 @@ * Creates an environment block and fill it with variables from the given * environment array. * - * @returns IPRT status code. Typical error is VERR_NO_MEMORY. + * @returns IPRT status code. + * @retval VWRN_ENV_NOT_FULLY_TRANSLATED may be returned when passing + * RTENV_DEFAULT and one or more of the environment variables have + * codeset incompatibilities. The problematic variables will be + * ignored and not included in the clone, thus the clone will have + * fewer variables. + * @retval VERR_NO_MEMORY + * @retval VERR_NO_STR_MEMORY + * @retval VERR_INVALID_HANDLE * * @param pEnv Where to store the handle of the new environment block. * @param EnvToClone The environment to clone. diff -Nru virtualbox-4.1.12-dfsg/include/iprt/err.h virtualbox-4.1.44-dfsg/include/iprt/err.h --- virtualbox-4.1.12-dfsg/include/iprt/err.h 2012-04-02 13:24:43.000000000 +0000 +++ virtualbox-4.1.44-dfsg/include/iprt/err.h 2015-11-11 15:06:03.000000000 +0000 @@ -437,12 +437,14 @@ /** * Initialize a static error info structure. * + * @returns Pointer to the core error info structure. * @param pStaticErrInfo The static error info structure to init. */ -DECLINLINE(void) RTErrInfoInitStatic(PRTERRINFOSTATIC pStaticErrInfo) +DECLINLINE(PRTERRINFO) RTErrInfoInitStatic(PRTERRINFOSTATIC pStaticErrInfo) { RTErrInfoInit(&pStaticErrInfo->Core, pStaticErrInfo->szMsg, sizeof(pStaticErrInfo->szMsg)); pStaticErrInfo->Core.fFlags = RTERRINFO_FLAGS_T_STATIC | RTERRINFO_FLAGS_MAGIC; + return &pStaticErrInfo->Core; } /** @@ -512,6 +514,41 @@ RTDECL(int) RTErrInfoSetV(PRTERRINFO pErrInfo, int rc, const char *pszFormat, va_list va); /** + * Adds more error info details. + * + * @returns @a rc. + * + * @param pErrInfo The error info structure to fill in. + * @param rc The status code to return. + * @param pszMsg The error message string to add. + */ +RTDECL(int) RTErrInfoAdd(PRTERRINFO pErrInfo, int rc, const char *pszMsg); + +/** + * Adds more error info details, with a sprintf style message. + * + * @returns @a rc. + * + * @param pErrInfo The error info structure to fill in. + * @param rc The status code to return. + * @param pszFormat The format string to add. + * @param ... The format arguments. + */ +RTDECL(int) RTErrInfoAddF(PRTERRINFO pErrInfo, int rc, const char *pszFormat, ...); + +/** + * Adds more error info details, with a vsprintf style message. + * + * @returns @a rc. + * + * @param pErrInfo The error info structure to fill in. + * @param rc The status code to return. + * @param pszFormat The format string to add. + * @param va The format arguments. + */ +RTDECL(int) RTErrInfoAddV(PRTERRINFO pErrInfo, int rc, const char *pszFormat, va_list va); + +/** * Checks if the error info is set. * * @returns true if set, false if not. @@ -654,6 +691,8 @@ #define VERR_VERSION_MISMATCH (-11) /** The request function is not implemented. */ #define VERR_NOT_IMPLEMENTED (-12) +/** Invalid flags was given. */ +#define VERR_INVALID_FLAGS (-13) /** Not equal. */ #define VERR_NOT_EQUAL (-18) @@ -756,6 +795,8 @@ #define VWRN_NEGATIVE_UNSIGNED 57 /** Error while characters translation (unicode and so). */ #define VERR_NO_TRANSLATION (-58) +/** Error while characters translation (unicode and so). */ +#define VWRN_NO_TRANSLATION 58 /** Encountered unicode code point which is reserved for use as endian indicator (0xffff or 0xfffe). */ #define VERR_CODE_POINT_ENDIAN_INDICATOR (-59) /** Encountered unicode code point in the surrogate range (0xd800 to 0xdfff). */ @@ -873,6 +914,10 @@ #define VERR_UNEVEN_INPUT (-22402) /** Something is not available or not working properly. */ #define VERR_NOT_AVAILABLE (-22403) +/** An account is restricted in a certain way. */ +#define VERR_ACCOUNT_RESTRICTED (-22405) +/** An account is restricted in a certain way. */ +#define VINF_ACCOUNT_RESTRICTED 22405 /** @} */ @@ -1475,6 +1520,9 @@ #define VERR_ENV_VAR_NOT_FOUND (-750) /** The specified environment variable was not found. (RTEnvUnsetEx) */ #define VINF_ENV_VAR_NOT_FOUND (750) +/** Unable to translate all the variables in the default environment due to + * codeset issues (LANG / LC_ALL / LC_CTYPE). */ +#define VWRN_ENV_NOT_FULLY_TRANSLATED (751) /** @} */ /** @name Multiprocessor Status Codes. @@ -1670,6 +1718,499 @@ #define VERR_LOG_REVISION_MISMATCH (-22300) /** @} */ +/** @name RTAsn1 status codes + * @{ */ +/** Temporary place holder. */ +#define VERR_ASN1_ERROR (-22800) +/** Encountered an ASN.1 string type that is not supported. */ +#define VERR_ASN1_STRING_TYPE_NOT_IMPLEMENTED (-22801) +/** Invalid ASN.1 UTF-8 STRING encoding. */ +#define VERR_ASN1_INVALID_UTF8_STRING_ENCODING (-22802) +/** Invalid ASN.1 NUMERIC STRING encoding. */ +#define VERR_ASN1_INVALID_NUMERIC_STRING_ENCODING (-22803) +/** Invalid ASN.1 PRINTABLE STRING encoding. */ +#define VERR_ASN1_INVALID_PRINTABLE_STRING_ENCODING (-22804) +/** Invalid ASN.1 T61/TELETEX STRING encoding. */ +#define VERR_ASN1_INVALID_T61_STRING_ENCODING (-22805) +/** Invalid ASN.1 VIDEOTEX STRING encoding. */ +#define VERR_ASN1_INVALID_VIDEOTEX_STRING_ENCODING (-22806) +/** Invalid ASN.1 IA5 STRING encoding. */ +#define VERR_ASN1_INVALID_IA5_STRING_ENCODING (-22807) +/** Invalid ASN.1 GRAPHIC STRING encoding. */ +#define VERR_ASN1_INVALID_GRAPHIC_STRING_ENCODING (-22808) +/** Invalid ASN.1 ISO-646/VISIBLE STRING encoding. */ +#define VERR_ASN1_INVALID_VISIBLE_STRING_ENCODING (-22809) +/** Invalid ASN.1 GENERAL STRING encoding. */ +#define VERR_ASN1_INVALID_GENERAL_STRING_ENCODING (-22810) +/** Invalid ASN.1 UNIVERSAL STRING encoding. */ +#define VERR_ASN1_INVALID_UNIVERSAL_STRING_ENCODING (-22811) +/** Invalid ASN.1 BMP STRING encoding. */ +#define VERR_ASN1_INVALID_BMP_STRING_ENCODING (-22812) +/** Invalid ASN.1 OBJECT IDENTIFIER encoding. */ +#define VERR_ASN1_INVALID_OBJID_ENCODING (-22813) +/** A component value of an ASN.1 OBJECT IDENTIFIER is too big for our + * internal representation (32-bits). */ +#define VERR_ASN1_OBJID_COMPONENT_TOO_BIG (-22814) +/** Too many components in an ASN.1 OBJECT IDENTIFIER for our internal + * representation. */ +#define VERR_ASN1_OBJID_TOO_MANY_COMPONENTS (-22815) +/** The dotted-string representation of an ASN.1 OBJECT IDENTIFIER would be too + * long for our internal representation. */ +#define VERR_ASN1_OBJID_TOO_LONG_STRING_FORM (-22816) +/** Invalid dotted string. */ +#define VERR_ASN1_OBJID_INVALID_DOTTED_STRING (-22817) +/** Constructed string type not implemented. */ +#define VERR_ASN1_CONSTRUCTED_STRING_NOT_IMPL (-22818) +/** Expected a different string tag. */ +#define VERR_ASN1_STRING_TAG_MISMATCH (-22819) +/** Expected a different time tag. */ +#define VERR_ASN1_TIME_TAG_MISMATCH (-22820) +/** More unconsumed data available. */ +#define VINF_ASN1_MORE_DATA (22821) +/** RTAsnEncodeWriteHeader return code indicating that nothing was written + * and the content should be skipped as well. */ +#define VINF_ASN1_NOT_ENCODED (22822) +/** Unknown escape sequence encountered in TeletexString. */ +#define VERR_ASN1_TELETEX_UNKNOWN_ESC_SEQ (-22823) +/** Unsupported escape sequence encountered in TeletexString. */ +#define VERR_ASN1_TELETEX_UNSUPPORTED_ESC_SEQ (-22824) +/** Unsupported character set. */ +#define VERR_ASN1_TELETEX_UNSUPPORTED_CHARSET (-22825) +/** ASN.1 object has no virtual method table. */ +#define VERR_ASN1_NO_VTABLE (-22826) +/** ASN.1 object has no pfnCheckSanity method. */ +#define VERR_ASN1_NO_CHECK_SANITY_METHOD (-22827) +/** ASN.1 object is not present */ +#define VERR_ASN1_NOT_PRESENT (-22828) +/** There are unconsumed bytes after decoding an ASN.1 object. */ +#define VERR_ASN1_CURSOR_NOT_AT_END (-22829) +/** Long ASN.1 tag form is not implemented. */ +#define VERR_ASN1_CURSOR_LONG_TAG (-22830) +/** Bad ASN.1 object length encoding. */ +#define VERR_ASN1_CURSOR_BAD_LENGTH_ENCODING (-22831) +/** Indefinite length form is against the rules. */ +#define VERR_ASN1_CURSOR_ILLEGAL_IDEFINITE_LENGTH (-22832) +/** Indefinite length form is not implemented. */ +#define VERR_ASN1_CURSOR_IDEFINITE_LENGTH_NOT_SUP (-22833) +/** ASN.1 object length goes beyond the end of the byte stream being decoded. */ +#define VERR_ASN1_CURSOR_BAD_LENGTH (-22834) +/** Not more data in ASN.1 byte stream. */ +#define VERR_ASN1_CURSOR_NO_MORE_DATA (-22835) +/** Too little data in ASN.1 byte stream. */ +#define VERR_ASN1_CURSOR_TOO_LITTLE_DATA_LEFT (-22836) +/** Constructed string is not according to the encoding rules. */ +#define VERR_ASN1_CURSOR_ILLEGAL_CONSTRUCTED_STRING (-22837) +/** Unexpected ASN.1 tag encountered while decoding. */ +#define VERR_ASN1_CURSOR_TAG_MISMATCH (-22838) +/** Unexpected ASN.1 tag class/flag encountered while decoding. */ +#define VERR_ASN1_CURSOR_TAG_FLAG_CLASS_MISMATCH (-22839) +/** ASN.1 bit string object is out of bounds. */ +#define VERR_ASN1_BITSTRING_OUT_OF_BOUNDS (-22840) +/** Bad ASN.1 time object. */ +#define VERR_ASN1_TIME_BAD_NORMALIZE_INPUT (-22841) +/** Failed to normalize ASN.1 time object. */ +#define VERR_ASN1_TIME_NORMALIZE_ERROR (-22842) +/** Normalization of ASN.1 time object didn't work out. */ +#define VERR_ASN1_TIME_NORMALIZE_MISMATCH (-22843) +/** Invalid ASN.1 UTC TIME encoding. */ +#define VERR_ASN1_INVALID_UTC_TIME_ENCODING (-22844) +/** Invalid ASN.1 GENERALIZED TIME encoding. */ +#define VERR_ASN1_INVALID_GENERALIZED_TIME_ENCODING (-22845) +/** Invalid ASN.1 BOOLEAN encoding. */ +#define VERR_ASN1_INVALID_BOOLEAN_ENCODING (-22846) +/** Invalid ASN.1 NULL encoding. */ +#define VERR_ASN1_INVALID_NULL_ENCODING (-22847) +/** Invalid ASN.1 BIT STRING encoding. */ +#define VERR_ASN1_INVALID_BITSTRING_ENCODING (-22848) +/** Unimplemented ASN.1 tag reached the RTAsn1DynType code. */ +#define VERR_ASN1_DYNTYPE_TAG_NOT_IMPL (-22849) +/** ASN.1 tag and flags/class mismatch in RTAsn1DynType code. */ +#define VERR_ASN1_DYNTYPE_BAD_TAG (-22850) +/** Unexpected ASN.1 fake/dummy object. */ +#define VERR_ASN1_DUMMY_OBJECT (-22851) +/** ASN.1 object is too long. */ +#define VERR_ASN1_TOO_LONG (-22852) +/** Expected primitive ASN.1 object. */ +#define VERR_ASN1_EXPECTED_PRIMITIVE (-22853) +/** Expected valid data pointer for ASN.1 object. */ +#define VERR_ASN1_INVALID_DATA_POINTER (-22854) +/** The ASN.1 encoding is too deeply nested for the decoder. */ +#define VERR_ASN1_TOO_DEEPLY_NESTED (-22855) + +/** ANS.1 internal error 1. */ +#define VERR_ASN1_INTERNAL_ERROR_1 (-22895) +/** ANS.1 internal error 2. */ +#define VERR_ASN1_INTERNAL_ERROR_2 (-22896) +/** ANS.1 internal error 3. */ +#define VERR_ASN1_INTERNAL_ERROR_3 (-22897) +/** ANS.1 internal error 4. */ +#define VERR_ASN1_INTERNAL_ERROR_4 (-22898) +/** ANS.1 internal error 5. */ +#define VERR_ASN1_INTERNAL_ERROR_5 (-22899) +/** @} */ + +/** @name More RTLdr status codes. + * @{ */ +/** Image Verficiation Failure: No Authenticode Signature. */ +#define VERR_LDRVI_NOT_SIGNED (-22900) +/** Image Verficiation Warning: No Authenticode Signature, but on whitelist. */ +#define VINF_LDRVI_NOT_SIGNED (22900) +/** Image Verficiation Failure: Error reading image headers. */ +#define VERR_LDRVI_READ_ERROR_HDR (-22901) +/** Image Verficiation Failure: Error reading section headers. */ +#define VERR_LDRVI_READ_ERROR_SHDRS (-22902) +/** Image Verficiation Failure: Error reading authenticode signature data. */ +#define VERR_LDRVI_READ_ERROR_SIGNATURE (-22903) +/** Image Verficiation Failure: Error reading file for hashing. */ +#define VERR_LDRVI_READ_ERROR_HASH (-22904) +/** Image Verficiation Failure: Error determining the file length. */ +#define VERR_LDRVI_FILE_LENGTH_ERROR (-22905) +/** Image Verficiation Failure: Error allocating memory for state data. */ +#define VERR_LDRVI_NO_MEMORY_STATE (-22906) +/** Image Verficiation Failure: Error allocating memory for authenticode + * signature data. */ +#define VERR_LDRVI_NO_MEMORY_SIGNATURE (-22907) +/** Image Verficiation Failure: Error allocating memory for section headers. */ +#define VERR_LDRVI_NO_MEMORY_SHDRS (-22908) +/** Image Verficiation Failure: Authenticode parsing output. */ +#define VERR_LDRVI_NO_MEMORY_PARSE_OUTPUT (-22909) +/** Image Verficiation Failure: Invalid security directory entry. */ +#define VERR_LDRVI_INVALID_SECURITY_DIR_ENTRY (-22910) +/** Image Verficiation Failure: */ +#define VERR_LDRVI_BAD_CERT_HDR_LENGTH (-22911) +/** Image Verficiation Failure: */ +#define VERR_LDRVI_BAD_CERT_HDR_REVISION (-22912) +/** Image Verficiation Failure: */ +#define VERR_LDRVI_BAD_CERT_HDR_TYPE (-22913) +/** Image Verficiation Failure: More than one certificate table entry. */ +#define VERR_LDRVI_BAD_CERT_MULTIPLE (-22914) + +/** Image Verficiation Failure: */ +#define VERR_LDRVI_BAD_MZ_OFFSET (-22915) +/** Image Verficiation Failure: Invalid section count. */ +#define VERR_LDRVI_INVALID_SECTION_COUNT (-22916) +/** Image Verficiation Failure: Raw data offsets and sizes are out of range. */ +#define VERR_LDRVI_SECTION_RAW_DATA_VALUES (-22917) +/** Optional header magic and target machine does not match. */ +#define VERR_LDRVI_MACHINE_OPT_HDR_MAGIC_MISMATCH (-22918) +/** Unsupported image target architecture. */ +#define VERR_LDRVI_UNSUPPORTED_ARCH (-22919) + +/** Image Verification Failure: Internal error in signature parser. */ +#define VERR_LDRVI_PARSE_IPE (-22921) +/** Generic BER parse error. Will be refined later. */ +#define VERR_LDRVI_PARSE_BER_ERROR (-22922) + +/** Expected the signed data content to be the object ID of + * SpcIndirectDataContent, found something else instead. */ +#define VERR_LDRVI_EXPECTED_INDIRECT_DATA_CONTENT_OID (-22923) +/** Page hash table size overflow. */ +#define VERR_LDRVI_PAGE_HASH_TAB_SIZE_OVERFLOW (-22924) +/** Page hash table is too long (covers signature data, i.e. itself). */ +#define VERR_LDRVI_PAGE_HASH_TAB_TOO_LONG (-22925) +/** The page hash table is not strictly ordered by offset. */ +#define VERR_LDRVI_PAGE_HASH_TAB_NOT_STRICTLY_SORTED (-22926) +/** The page hash table hashes data outside the defined and implict sections. */ +#define VERR_PAGE_HASH_TAB_HASHES_NON_SECTION_DATA (-22927) +/** Page hash mismatch. */ +#define VERR_LDRVI_PAGE_HASH_MISMATCH (-22928) +/** Image hash mismatch. */ +#define VERR_LDRVI_IMAGE_HASH_MISMATCH (-22929) + +/** Cannot resolve symbol because it's a forwarder. */ +#define VERR_LDR_FORWARDER (-22950) +/** The symbol is not a forwarder. */ +#define VERR_LDR_NOT_FORWARDER (-22951) +/** Malformed forwarder entry. */ +#define VERR_LDR_BAD_FORWARDER (-22952) +/** Too long forwarder chain or there is a loop. */ +#define VERR_LDR_FORWARDER_CHAIN_TOO_LONG (-22953) +/** Support for forwarders has not been implemented. */ +#define VERR_LDR_FORWARDERS_NOT_SUPPORTED (-22954) +/** @} */ + +/** @name RTCrX509 status codes. + * @{ */ +/** Generic X.509 error. */ +#define VERR_CR_X509_GENERIC_ERROR (-23000) +/** Internal error in the X.509 code. */ +#define VERR_CR_X509_INTERNAL_ERROR (-23001) +/** Internal error in the X.509 certificate path building and verification + * code. */ +#define VERR_CR_X509_CERTPATHS_INTERNAL_ERROR (-23002) +/** Path not verified yet. */ +#define VERR_CR_X509_NOT_VERIFIED (-23003) +/** The certificate path has no trust anchor. */ +#define VERR_CR_X509_NO_TRUST_ANCHOR (-23004) +/** Unknown X.509 certificate signature algorithm. */ +#define VERR_CR_X509_UNKNOWN_CERT_SIGN_ALGO (-23005) +/** Certificate signature algorithm mismatch. */ +#define VERR_CR_X509_CERT_SIGN_ALGO_MISMATCH (-23006) +/** The signature algorithm in the to-be-signed certifcate part does not match + * the one assoicated with the signature. */ +#define VERR_CR_X509_CERT_TBS_SIGN_ALGO_MISMATCH (-23007) +/** Certificate extensions requires certificate version 3 or later. */ +#define VERR_CR_X509_TBSCERT_EXTS_REQ_V3 (-23008) +/** Unique issuer and subject IDs require version certificate 2. */ +#define VERR_CR_X509_TBSCERT_UNIQUE_IDS_REQ_V2 (-23009) +/** Certificate serial number length is out of bounds. */ +#define VERR_CR_X509_TBSCERT_SERIAL_NUMBER_OUT_OF_BOUNDS (-23010) +/** Unsupported X.509 certificate version. */ +#define VERR_CR_X509_TBSCERT_UNSUPPORTED_VERSION (-23011) +/** Public key is too small. */ +#define VERR_CR_X509_PUBLIC_KEY_TOO_SMALL (-23012) +/** Invalid strnig tag for a X.509 name object. */ +#define VERR_CR_X509_INVALID_NAME_STRING_TAG (-23013) +/** Empty string in X.509 name object. */ +#define VERR_CR_X509_NAME_EMPTY_STRING (-23014) +/** Non-string object inside X.509 name object. */ +#define VERR_CR_X509_NAME_NOT_STRING (-23015) +/** Empty set inside X.509 name. */ +#define VERR_CR_X509_NAME_EMPTY_SET (-23016) +/** Empty sub-string set inside X.509 name. */ +#define VERR_CR_X509_NAME_EMPTY_SUB_SET (-23017) +/** The NotBefore and NotAfter values of an X.509 Validity object seems to + * have been swapped around. */ +#define VERR_CR_X509_VALIDITY_SWAPPED (-23018) +/** Duplicate certificate extension. */ +#define VERR_CR_X509_TBSCERT_DUPLICATE_EXTENSION (-23019) +/** Missing relative distinguished name map entry. */ +#define VERR_CR_X509_NAME_MISSING_RDN_MAP_ENTRY (-23020) +/** Certificate path validator: No trusted certificate paths. */ +#define VERR_CR_X509_CPV_NO_TRUSTED_PATHS (-23021) +/** Certificate path validator: No valid certificate policy. */ +#define VERR_CR_X509_CPV_NO_VALID_POLICY (-23022) +/** Certificate path validator: Unknown critical certificate extension. */ +#define VERR_CR_X509_CPV_UNKNOWN_CRITICAL_EXTENSION (-23023) +/** Certificate path validator: Intermediate certificate is missing the + * KeyCertSign usage flag. */ +#define VERR_CR_X509_CPV_MISSING_KEY_CERT_SIGN (-23024) +/** Certificate path validator: Hit the max certificate path length before + * reaching trust anchor. */ +#define VERR_CR_X509_CPV_MAX_PATH_LENGTH (-23025) +/** Certificate path validator: Intermediate certificate is not marked as a + * certificate authority (CA). */ +#define VERR_CR_X509_CPV_NOT_CA_CERT (-23026) +/** Certificate path validator: Intermeidate certificate is not a version 3 + * certificate. */ +#define VERR_CR_X509_CPV_NOT_V3_CERT (-23027) +/** Certificate path validator: Invalid policy mapping (to/from anyPolicy). */ +#define VERR_CR_X509_CPV_INVALID_POLICY_MAPPING (-23028) +/** Certificate path validator: Name constraints permits no names. */ +#define VERR_CR_X509_CPV_NO_PERMITTED_NAMES (-23029) +/** Certificate path validator: Name constraints does not permits the + * certificate name. */ +#define VERR_CR_X509_CPV_NAME_NOT_PERMITTED (-23030) +/** Certificate path validator: Name constraints does not permits the + * alternative certificate name. */ +#define VERR_CR_X509_CPV_ALT_NAME_NOT_PERMITTED (-23031) +/** Certificate path validator: Intermediate certificate subject does not + * match child issuer property. */ +#define VERR_CR_X509_CPV_ISSUER_MISMATCH (-23032) +/** Certificate path validator: The certificate is not valid at the + * specificed time. */ +#define VERR_CR_X509_CPV_NOT_VALID_AT_TIME (-23033) +/** Certificate path validator: Unexpected choice found in general subtree + * object (name constraints). */ +#define VERR_CR_X509_CPV_UNEXP_GENERAL_SUBTREE_CHOICE (-23034) +/** Certificate path validator: Unexpected minimum value found in general + * subtree object (name constraints). */ +#define VERR_CR_X509_CPV_UNEXP_GENERAL_SUBTREE_MIN (-23035) +/** Certificate path validator: Unexpected maximum value found in + * general subtree object (name constraints). */ +#define VERR_CR_X509_CPV_UNEXP_GENERAL_SUBTREE_MAX (-23036) +/** Certificate path builder: Encountered bad certificate context. */ +#define VERR_CR_X509_CPB_BAD_CERT_CTX (-23037) +/** OpenSSL d2i_X509 failed. */ +#define VERR_CR_X509_OSSL_D2I_FAILED (-23090) +/** @} */ + +/** @name RTCrPkcs7 status codes. + * @{ */ +/** Generic PKCS \#7 error. */ +#define VERR_CR_PKCS7_GENERIC_ERROR (-23300) +/** Signed data verfication failed because there are zero signer infos. */ +#define VERR_CR_PKCS7_NO_SIGNER_INFOS (-23301) +/** Signed data certificate not found. */ +#define VERR_CR_PKCS7_SIGNED_DATA_CERT_NOT_FOUND (-23302) +/** Signed data verification failed due to key usage issues. */ +#define VERR_CR_PKCS7_KEY_USAGE_MISMATCH (-23303) +/** Signed data verification failed because of missing (or duplicate) + * authenticated content-type attribute. */ +#define VERR_CR_PKCS7_MISSING_CONTENT_TYPE_ATTRIB (-23304) +/** Signed data verification failed because of the authenticated content-type + * attribute did not match. */ +#define VERR_CR_PKCS7_CONTENT_TYPE_ATTRIB_MISMATCH (-23305) +/** Signed data verification failed because of a malformed authenticated + * content-type attribute. */ +#define VERR_CR_PKCS7_BAD_CONTENT_TYPE_ATTRIB (-23306) +/** Signed data verification failed because of missing (or duplicate) + * authenticated message-digest attribute. */ +#define VERR_CR_PKCS7_MISSING_MESSAGE_DIGEST_ATTRIB (-23307) +/** Signed data verification failed because the authenticated message-digest + * attribute did not match. */ +#define VERR_CR_PKCS7_MESSAGE_DIGEST_ATTRIB_MISMATCH (-23308) +/** Signed data verification failed because of a malformed authenticated + * message-digest attribute. */ +#define VERR_CR_PKCS7_BAD_MESSAGE_DIGEST_ATTRIB (-23309) +/** Signature verification failed. */ +#define VERR_CR_PKCS7_SIGNATURE_VERIFICATION_FAILED (-23310) +/** Internal PKCS \#7 error. */ +#define VERR_CR_PKCS7_INTERNAL_ERROR (-22311) +/** OpenSSL d2i_PKCS7 failed. */ +#define VERR_CR_PKCS7_OSSL_D2I_FAILED (-22312) +/** OpenSSL PKCS \#7 verification failed. */ +#define VERR_CR_PKCS7_OSSL_VERIFY_FAILED (-22313) +/** Digest algorithm parameters are not supported by the PKCS \#7 code. */ +#define VERR_CR_PKCS7_DIGEST_PARAMS_NOT_IMPL (-22314) +/** The digest algorithm of a signer info entry was not found in the list of + * digest algorithms in the signed data. */ +#define VERR_CR_PKCS7_DIGEST_ALGO_NOT_FOUND_IN_LIST (-22315) +/** The PKCS \#7 content is not signed data. */ +#define VERR_CR_PKCS7_NOT_SIGNED_DATA (-22316) +/** No digest algorithms listed in PKCS \#7 signed data. */ +#define VERR_CR_PKCS7_NO_DIGEST_ALGORITHMS (-22317) +/** Too many digest algorithms used by PKCS \#7 signed data. This is an + * internal limitation of the code that aims at saving kernel stack space. */ +#define VERR_CR_PKCS7_TOO_MANY_DIGEST_ALGORITHMS (-22318) +/** Error creating digest algorithm calculator. */ +#define VERR_CR_PKCS7_DIGEST_CREATE_ERROR (-22319) +/** Error while calculating a digest for a PKCS \#7 verficiation operation. */ +#define VERR_CR_PKCS7_DIGEST_CALC_ERROR (-22320) +/** Unsupported PKCS \#7 signed data version. */ +#define VERR_CR_PKCS7_SIGNED_DATA_VERSION (-22350) +/** PKCS \#7 signed data has no digest algorithms listed. */ +#define VERR_CR_PKCS7_SIGNED_DATA_NO_DIGEST_ALGOS (-22351) +/** Unknown digest algorithm used by PKCS \#7 object. */ +#define VERR_CR_PKCS7_UNKNOWN_DIGEST_ALGORITHM (-22352) +/** Expected PKCS \#7 object to ship at least one certificate. */ +#define VERR_CR_PKCS7_NO_CERTIFICATES (-22353) +/** Expected PKCS \#7 object to not contain any CRLs. */ +#define VERR_CR_PKCS7_EXPECTED_NO_CRLS (-22354) +/** Expected PKCS \#7 object to contain exactly on signer info entry. */ +#define VERR_CR_PKCS7_EXPECTED_ONE_SIGNER_INFO (-22355) +/** Unsupported PKCS \#7 signer info version. */ +#define VERR_CR_PKCS7_SIGNER_INFO_VERSION (-22356) +/** PKCS \#7 singer info contains no issuer serial number. */ +#define VERR_CR_PKCS7_SIGNER_INFO_NO_ISSUER_SERIAL_NO (-22357) +/** Expected PKCS \#7 object to ship the signer certificate(s). */ +#define VERR_CR_PKCS7_SIGNER_CERT_NOT_SHIPPED (-22358) +/** The encrypted digest algorithm does not match the one in the certificate. */ +#define VERR_CR_PKCS7_SIGNER_INFO_DIGEST_ENCRYPT_MISMATCH (-22359) +/** @} */ + +/** @name RTCrSpc status codes. + * @{ */ +/** Generic SPC error. */ +#define VERR_CR_SPC_GENERIC_ERROR (-23400) +/** SPC requires there to be exactly one SignerInfo entry. */ +#define VERR_CR_SPC_NOT_EXACTLY_ONE_SIGNER_INFOS (-23401) +/** There shall be exactly one digest algorithm to go with the single + * SingerInfo entry required by SPC. */ +#define VERR_CR_SPC_NOT_EXACTLY_ONE_DIGEST_ALGO (-23402) +/** The digest algorithm in the SignerInfo does not match the one in the + * indirect data. */ +#define VERR_CR_SPC_SIGNED_IND_DATA_DIGEST_ALGO_MISMATCH (-23403) +/** The digest algorithm in the indirect data was not found in the list of + * digest algorithms in the signed data structure. */ +#define VERR_CR_SPC_IND_DATA_DIGEST_ALGO_NOT_IN_DIGEST_ALGOS (-23404) +/** The digest algorithm is not known to us. */ +#define VERR_CR_SPC_UNKNOWN_DIGEST_ALGO (-23405) +/** The indirect data digest size does not match the digest algorithm. */ +#define VERR_CR_SPC_IND_DATA_DIGEST_SIZE_MISMATCH (-23406) +/** Exptected PE image data inside indirect data object. */ +#define VERR_CR_SPC_EXPECTED_PE_IMAGE_DATA (-23407) +/** Internal SPC error: The PE image data is missing. */ +#define VERR_CR_SPC_PEIMAGE_DATA_NOT_PRESENT (-23408) +/** Bad SPC object moniker UUID field. */ +#define VERR_CR_SPC_BAD_MONIKER_UUID (-23409) +/** Unknown SPC object moniker UUID. */ +#define VERR_CR_SPC_UNKNOWN_MONIKER_UUID (-23410) +/** Internal SPC error: Bad object monker choice value. */ +#define VERR_CR_SPC_BAD_MONIKER_CHOICE (-23411) +/** Internal SPC error: Bad object moniker data pointer. */ +#define VERR_CR_SPC_MONIKER_BAD_DATA (-23412) +/** Multiple PE image page hash tables. */ +#define VERR_CR_SPC_PEIMAGE_MULTIPLE_HASH_TABS (-23413) +/** Unknown SPC PE image attribute. */ +#define VERR_CR_SPC_PEIMAGE_UNKNOWN_ATTRIBUTE (-23414) +/** URL not expected in SPC PE image data. */ +#define VERR_CR_SPC_PEIMAGE_URL_UNEXPECTED (-23415) +/** PE image data without any valid content was not expected. */ +#define VERR_CR_SPC_PEIMAGE_NO_CONTENT (-23416) +/** @} */ + +/** @name RTCrPkix status codes. + * @{ */ +/** Generic PKCS \#7 error. */ +#define VERR_CR_PKIX_GENERIC_ERROR (-23500) +/** Parameters was presented to a signature schema that does not take any. */ +#define VERR_CR_PKIX_SIGNATURE_TAKES_NO_PARAMETERS (-23501) +/** Unknown hash digest type. */ +#define VERR_CR_PKIX_UNKNOWN_DIGEST_TYPE (-23502) +/** Internal error. */ +#define VERR_CR_PKIX_INTERNAL_ERROR (-23503) +/** The hash is too long for the key used when signing/verifying. */ +#define VERR_CR_PKIX_HASH_TOO_LONG_FOR_KEY (-23504) +/** The signature is too long for the scratch buffer. */ +#define VERR_CR_PKIX_SIGNATURE_TOO_LONG (-23505) +/** The signature is greater than or equal to the key. */ +#define VERR_CR_PKIX_SIGNATURE_GE_KEY (-23506) +/** The signature is negative. */ +#define VERR_CR_PKIX_SIGNATURE_NEGATIVE (-23507) +/** Invalid signature length. */ +#define VERR_CR_PKIX_INVALID_SIGNATURE_LENGTH (-23508) +/** PKIX signature no does not match up to the current data. */ +#define VERR_CR_PKIX_SIGNATURE_MISMATCH (-23509) +/** PKIX cipher algorithm parameters are not implemented. */ +#define VERR_CR_PKIX_CIPHER_ALGO_PARAMS_NOT_IMPL (-23510) +/** ipher algorithm is not known to us. */ +#define VERR_CR_PKIX_CIPHER_ALGO_NOT_KNOWN (-23511) +/** PKIX cipher algorithm is not known to OpenSSL. */ +#define VERR_CR_PKIX_OSSL_CIPHER_ALGO_NOT_KNOWN (-23512) +/** PKIX cipher algorithm is not known to OpenSSL EVP API. */ +#define VERR_CR_PKIX_OSSL_CIPHER_ALGO_NOT_KNOWN_EVP (-23513) +/** OpenSSL failed to init PKIX cipher algorithm context. */ +#define VERR_CR_PKIX_OSSL_CIPHER_ALOG_INIT_FAILED (-23514) +/** Final OpenSSL PKIX verification failed. */ +#define VERR_CR_PKIX_OSSL_VERIFY_FINAL_FAILED (-23515) +/** OpenSSL failed to decode the public key. */ +#define VERR_CR_PKIX_OSSL_D2I_PUBLIC_KEY_FAILED (-23516) +/** The EVP_PKEY_type API in OpenSSL failed. */ +#define VERR_CR_PKIX_OSSL_EVP_PKEY_TYPE_ERROR (-23517) +/** @} */ + +/** @name RTCrStore status codes. + * @{ */ +/** Generic store error. */ +#define VERR_CR_STORE_GENERIC_ERROR (-23700) +/** @} */ + +/** @name RTCrRsa status codes. + * @{ */ +/** Generic RSA error. */ +#define VERR_CR_RSA_GENERIC_ERROR (-23900) +/** @} */ + +/** @name RTBigNum status codes. + * @{ */ +/** Sensitive input requires the result(s) to be initialized as sensitive. */ +#define VERR_BIGNUM_SENSITIVE_INPUT (-24000) +/** Attempt to divide by zero. */ +#define VERR_BIGNUM_DIV_BY_ZERO (-24001) +/** Negative exponent makes no sense to integer math. */ +#define VERR_BIGNUM_NEGATIVE_EXPONENT (-24002) + +/** @} */ + +/** @name RTCrDigest status codes. + * @{ */ +/** OpenSSL failed to initialize the digest algorithm contextn. */ +#define VERR_CR_DIGEST_OSSL_DIGEST_INIT_ERROR (-24200) +/** OpenSSL failed to clone the digest algorithm contextn. */ +#define VERR_CR_DIGEST_OSSL_DIGEST_CTX_COPY_ERROR (-24201) +/** @} */ + /* SED-END */ /** @} */ diff -Nru virtualbox-4.1.12-dfsg/include/iprt/err.mac virtualbox-4.1.44-dfsg/include/iprt/err.mac --- virtualbox-4.1.12-dfsg/include/iprt/err.mac 2012-04-02 13:24:43.000000000 +0000 +++ virtualbox-4.1.44-dfsg/include/iprt/err.mac 2015-11-11 15:06:03.000000000 +0000 @@ -15,6 +15,7 @@ %define VINF_PERMISSION_DENIED 10 %define VERR_VERSION_MISMATCH (-11) %define VERR_NOT_IMPLEMENTED (-12) +%define VERR_INVALID_FLAGS (-13) %define VERR_NOT_EQUAL (-18) %define VERR_NOT_SYMLINK (-19) %define VERR_NO_TMP_MEMORY (-20) @@ -64,6 +65,7 @@ %define VERR_NEGATIVE_UNSIGNED (-57) %define VWRN_NEGATIVE_UNSIGNED 57 %define VERR_NO_TRANSLATION (-58) +%define VWRN_NO_TRANSLATION 58 %define VERR_CODE_POINT_ENDIAN_INDICATOR (-59) %define VERR_CODE_POINT_SURROGATE (-60) %define VERR_INVALID_UTF8_ENCODING (-61) @@ -120,6 +122,8 @@ %define VINF_BUFFER_UNDERFLOW 22401 %define VERR_UNEVEN_INPUT (-22402) %define VERR_NOT_AVAILABLE (-22403) +%define VERR_ACCOUNT_RESTRICTED (-22405) +%define VINF_ACCOUNT_RESTRICTED 22405 %define VERR_FILE_IO_ERROR (-100) %define VERR_OPEN_FAILED (-101) %define VERR_FILE_NOT_FOUND (-102) @@ -363,6 +367,7 @@ %define VERR_RT_REQUEST_STATUS_FREED (-704) %define VERR_ENV_VAR_NOT_FOUND (-750) %define VINF_ENV_VAR_NOT_FOUND (750) +%define VWRN_ENV_NOT_FULLY_TRANSLATED (751) %define VERR_CPU_OFFLINE (-800) %define VERR_CPU_NOT_FOUND (-801) %define VERR_GETOPT_UNKNOWN_OPTION (-825) @@ -433,3 +438,211 @@ %define VERR_DVM_MAP_EMPTY (-22200) %define VERR_DVM_MAP_NO_VOLUME (-22201) %define VERR_LOG_REVISION_MISMATCH (-22300) +%define VERR_ASN1_ERROR (-22800) +%define VERR_ASN1_STRING_TYPE_NOT_IMPLEMENTED (-22801) +%define VERR_ASN1_INVALID_UTF8_STRING_ENCODING (-22802) +%define VERR_ASN1_INVALID_NUMERIC_STRING_ENCODING (-22803) +%define VERR_ASN1_INVALID_PRINTABLE_STRING_ENCODING (-22804) +%define VERR_ASN1_INVALID_T61_STRING_ENCODING (-22805) +%define VERR_ASN1_INVALID_VIDEOTEX_STRING_ENCODING (-22806) +%define VERR_ASN1_INVALID_IA5_STRING_ENCODING (-22807) +%define VERR_ASN1_INVALID_GRAPHIC_STRING_ENCODING (-22808) +%define VERR_ASN1_INVALID_VISIBLE_STRING_ENCODING (-22809) +%define VERR_ASN1_INVALID_GENERAL_STRING_ENCODING (-22810) +%define VERR_ASN1_INVALID_UNIVERSAL_STRING_ENCODING (-22811) +%define VERR_ASN1_INVALID_BMP_STRING_ENCODING (-22812) +%define VERR_ASN1_INVALID_OBJID_ENCODING (-22813) +%define VERR_ASN1_OBJID_COMPONENT_TOO_BIG (-22814) +%define VERR_ASN1_OBJID_TOO_MANY_COMPONENTS (-22815) +%define VERR_ASN1_OBJID_TOO_LONG_STRING_FORM (-22816) +%define VERR_ASN1_OBJID_INVALID_DOTTED_STRING (-22817) +%define VERR_ASN1_CONSTRUCTED_STRING_NOT_IMPL (-22818) +%define VERR_ASN1_STRING_TAG_MISMATCH (-22819) +%define VERR_ASN1_TIME_TAG_MISMATCH (-22820) +%define VINF_ASN1_MORE_DATA (22821) +%define VINF_ASN1_NOT_ENCODED (22822) +%define VERR_ASN1_TELETEX_UNKNOWN_ESC_SEQ (-22823) +%define VERR_ASN1_TELETEX_UNSUPPORTED_ESC_SEQ (-22824) +%define VERR_ASN1_TELETEX_UNSUPPORTED_CHARSET (-22825) +%define VERR_ASN1_NO_VTABLE (-22826) +%define VERR_ASN1_NO_CHECK_SANITY_METHOD (-22827) +%define VERR_ASN1_NOT_PRESENT (-22828) +%define VERR_ASN1_CURSOR_NOT_AT_END (-22829) +%define VERR_ASN1_CURSOR_LONG_TAG (-22830) +%define VERR_ASN1_CURSOR_BAD_LENGTH_ENCODING (-22831) +%define VERR_ASN1_CURSOR_ILLEGAL_IDEFINITE_LENGTH (-22832) +%define VERR_ASN1_CURSOR_IDEFINITE_LENGTH_NOT_SUP (-22833) +%define VERR_ASN1_CURSOR_BAD_LENGTH (-22834) +%define VERR_ASN1_CURSOR_NO_MORE_DATA (-22835) +%define VERR_ASN1_CURSOR_TOO_LITTLE_DATA_LEFT (-22836) +%define VERR_ASN1_CURSOR_ILLEGAL_CONSTRUCTED_STRING (-22837) +%define VERR_ASN1_CURSOR_TAG_MISMATCH (-22838) +%define VERR_ASN1_CURSOR_TAG_FLAG_CLASS_MISMATCH (-22839) +%define VERR_ASN1_BITSTRING_OUT_OF_BOUNDS (-22840) +%define VERR_ASN1_TIME_BAD_NORMALIZE_INPUT (-22841) +%define VERR_ASN1_TIME_NORMALIZE_ERROR (-22842) +%define VERR_ASN1_TIME_NORMALIZE_MISMATCH (-22843) +%define VERR_ASN1_INVALID_UTC_TIME_ENCODING (-22844) +%define VERR_ASN1_INVALID_GENERALIZED_TIME_ENCODING (-22845) +%define VERR_ASN1_INVALID_BOOLEAN_ENCODING (-22846) +%define VERR_ASN1_INVALID_NULL_ENCODING (-22847) +%define VERR_ASN1_INVALID_BITSTRING_ENCODING (-22848) +%define VERR_ASN1_DYNTYPE_TAG_NOT_IMPL (-22849) +%define VERR_ASN1_DYNTYPE_BAD_TAG (-22850) +%define VERR_ASN1_DUMMY_OBJECT (-22851) +%define VERR_ASN1_TOO_LONG (-22852) +%define VERR_ASN1_EXPECTED_PRIMITIVE (-22853) +%define VERR_ASN1_INVALID_DATA_POINTER (-22854) +%define VERR_ASN1_TOO_DEEPLY_NESTED (-22855) +%define VERR_ASN1_INTERNAL_ERROR_1 (-22895) +%define VERR_ASN1_INTERNAL_ERROR_2 (-22896) +%define VERR_ASN1_INTERNAL_ERROR_3 (-22897) +%define VERR_ASN1_INTERNAL_ERROR_4 (-22898) +%define VERR_ASN1_INTERNAL_ERROR_5 (-22899) +%define VERR_LDRVI_NOT_SIGNED (-22900) +%define VINF_LDRVI_NOT_SIGNED (22900) +%define VERR_LDRVI_READ_ERROR_HDR (-22901) +%define VERR_LDRVI_READ_ERROR_SHDRS (-22902) +%define VERR_LDRVI_READ_ERROR_SIGNATURE (-22903) +%define VERR_LDRVI_READ_ERROR_HASH (-22904) +%define VERR_LDRVI_FILE_LENGTH_ERROR (-22905) +%define VERR_LDRVI_NO_MEMORY_STATE (-22906) +%define VERR_LDRVI_NO_MEMORY_SIGNATURE (-22907) +%define VERR_LDRVI_NO_MEMORY_SHDRS (-22908) +%define VERR_LDRVI_NO_MEMORY_PARSE_OUTPUT (-22909) +%define VERR_LDRVI_INVALID_SECURITY_DIR_ENTRY (-22910) +%define VERR_LDRVI_BAD_CERT_HDR_LENGTH (-22911) +%define VERR_LDRVI_BAD_CERT_HDR_REVISION (-22912) +%define VERR_LDRVI_BAD_CERT_HDR_TYPE (-22913) +%define VERR_LDRVI_BAD_CERT_MULTIPLE (-22914) +%define VERR_LDRVI_BAD_MZ_OFFSET (-22915) +%define VERR_LDRVI_INVALID_SECTION_COUNT (-22916) +%define VERR_LDRVI_SECTION_RAW_DATA_VALUES (-22917) +%define VERR_LDRVI_MACHINE_OPT_HDR_MAGIC_MISMATCH (-22918) +%define VERR_LDRVI_UNSUPPORTED_ARCH (-22919) +%define VERR_LDRVI_PARSE_IPE (-22921) +%define VERR_LDRVI_PARSE_BER_ERROR (-22922) +%define VERR_LDRVI_EXPECTED_INDIRECT_DATA_CONTENT_OID (-22923) +%define VERR_LDRVI_PAGE_HASH_TAB_SIZE_OVERFLOW (-22924) +%define VERR_LDRVI_PAGE_HASH_TAB_TOO_LONG (-22925) +%define VERR_LDRVI_PAGE_HASH_TAB_NOT_STRICTLY_SORTED (-22926) +%define VERR_PAGE_HASH_TAB_HASHES_NON_SECTION_DATA (-22927) +%define VERR_LDRVI_PAGE_HASH_MISMATCH (-22928) +%define VERR_LDRVI_IMAGE_HASH_MISMATCH (-22929) +%define VERR_LDR_FORWARDER (-22950) +%define VERR_LDR_NOT_FORWARDER (-22951) +%define VERR_LDR_BAD_FORWARDER (-22952) +%define VERR_LDR_FORWARDER_CHAIN_TOO_LONG (-22953) +%define VERR_LDR_FORWARDERS_NOT_SUPPORTED (-22954) +%define VERR_CR_X509_GENERIC_ERROR (-23000) +%define VERR_CR_X509_INTERNAL_ERROR (-23001) +%define VERR_CR_X509_CERTPATHS_INTERNAL_ERROR (-23002) +%define VERR_CR_X509_NOT_VERIFIED (-23003) +%define VERR_CR_X509_NO_TRUST_ANCHOR (-23004) +%define VERR_CR_X509_UNKNOWN_CERT_SIGN_ALGO (-23005) +%define VERR_CR_X509_CERT_SIGN_ALGO_MISMATCH (-23006) +%define VERR_CR_X509_CERT_TBS_SIGN_ALGO_MISMATCH (-23007) +%define VERR_CR_X509_TBSCERT_EXTS_REQ_V3 (-23008) +%define VERR_CR_X509_TBSCERT_UNIQUE_IDS_REQ_V2 (-23009) +%define VERR_CR_X509_TBSCERT_SERIAL_NUMBER_OUT_OF_BOUNDS (-23010) +%define VERR_CR_X509_TBSCERT_UNSUPPORTED_VERSION (-23011) +%define VERR_CR_X509_PUBLIC_KEY_TOO_SMALL (-23012) +%define VERR_CR_X509_INVALID_NAME_STRING_TAG (-23013) +%define VERR_CR_X509_NAME_EMPTY_STRING (-23014) +%define VERR_CR_X509_NAME_NOT_STRING (-23015) +%define VERR_CR_X509_NAME_EMPTY_SET (-23016) +%define VERR_CR_X509_NAME_EMPTY_SUB_SET (-23017) +%define VERR_CR_X509_VALIDITY_SWAPPED (-23018) +%define VERR_CR_X509_TBSCERT_DUPLICATE_EXTENSION (-23019) +%define VERR_CR_X509_NAME_MISSING_RDN_MAP_ENTRY (-23020) +%define VERR_CR_X509_CPV_NO_TRUSTED_PATHS (-23021) +%define VERR_CR_X509_CPV_NO_VALID_POLICY (-23022) +%define VERR_CR_X509_CPV_UNKNOWN_CRITICAL_EXTENSION (-23023) +%define VERR_CR_X509_CPV_MISSING_KEY_CERT_SIGN (-23024) +%define VERR_CR_X509_CPV_MAX_PATH_LENGTH (-23025) +%define VERR_CR_X509_CPV_NOT_CA_CERT (-23026) +%define VERR_CR_X509_CPV_NOT_V3_CERT (-23027) +%define VERR_CR_X509_CPV_INVALID_POLICY_MAPPING (-23028) +%define VERR_CR_X509_CPV_NO_PERMITTED_NAMES (-23029) +%define VERR_CR_X509_CPV_NAME_NOT_PERMITTED (-23030) +%define VERR_CR_X509_CPV_ALT_NAME_NOT_PERMITTED (-23031) +%define VERR_CR_X509_CPV_ISSUER_MISMATCH (-23032) +%define VERR_CR_X509_CPV_NOT_VALID_AT_TIME (-23033) +%define VERR_CR_X509_CPV_UNEXP_GENERAL_SUBTREE_CHOICE (-23034) +%define VERR_CR_X509_CPV_UNEXP_GENERAL_SUBTREE_MIN (-23035) +%define VERR_CR_X509_CPV_UNEXP_GENERAL_SUBTREE_MAX (-23036) +%define VERR_CR_X509_CPB_BAD_CERT_CTX (-23037) +%define VERR_CR_X509_OSSL_D2I_FAILED (-23090) +%define VERR_CR_PKCS7_GENERIC_ERROR (-23300) +%define VERR_CR_PKCS7_NO_SIGNER_INFOS (-23301) +%define VERR_CR_PKCS7_SIGNED_DATA_CERT_NOT_FOUND (-23302) +%define VERR_CR_PKCS7_KEY_USAGE_MISMATCH (-23303) +%define VERR_CR_PKCS7_MISSING_CONTENT_TYPE_ATTRIB (-23304) +%define VERR_CR_PKCS7_CONTENT_TYPE_ATTRIB_MISMATCH (-23305) +%define VERR_CR_PKCS7_BAD_CONTENT_TYPE_ATTRIB (-23306) +%define VERR_CR_PKCS7_MISSING_MESSAGE_DIGEST_ATTRIB (-23307) +%define VERR_CR_PKCS7_MESSAGE_DIGEST_ATTRIB_MISMATCH (-23308) +%define VERR_CR_PKCS7_BAD_MESSAGE_DIGEST_ATTRIB (-23309) +%define VERR_CR_PKCS7_SIGNATURE_VERIFICATION_FAILED (-23310) +%define VERR_CR_PKCS7_INTERNAL_ERROR (-22311) +%define VERR_CR_PKCS7_OSSL_D2I_FAILED (-22312) +%define VERR_CR_PKCS7_OSSL_VERIFY_FAILED (-22313) +%define VERR_CR_PKCS7_DIGEST_PARAMS_NOT_IMPL (-22314) +%define VERR_CR_PKCS7_DIGEST_ALGO_NOT_FOUND_IN_LIST (-22315) +%define VERR_CR_PKCS7_NOT_SIGNED_DATA (-22316) +%define VERR_CR_PKCS7_NO_DIGEST_ALGORITHMS (-22317) +%define VERR_CR_PKCS7_TOO_MANY_DIGEST_ALGORITHMS (-22318) +%define VERR_CR_PKCS7_DIGEST_CREATE_ERROR (-22319) +%define VERR_CR_PKCS7_DIGEST_CALC_ERROR (-22320) +%define VERR_CR_PKCS7_SIGNED_DATA_VERSION (-22350) +%define VERR_CR_PKCS7_SIGNED_DATA_NO_DIGEST_ALGOS (-22351) +%define VERR_CR_PKCS7_UNKNOWN_DIGEST_ALGORITHM (-22352) +%define VERR_CR_PKCS7_NO_CERTIFICATES (-22353) +%define VERR_CR_PKCS7_EXPECTED_NO_CRLS (-22354) +%define VERR_CR_PKCS7_EXPECTED_ONE_SIGNER_INFO (-22355) +%define VERR_CR_PKCS7_SIGNER_INFO_VERSION (-22356) +%define VERR_CR_PKCS7_SIGNER_INFO_NO_ISSUER_SERIAL_NO (-22357) +%define VERR_CR_PKCS7_SIGNER_CERT_NOT_SHIPPED (-22358) +%define VERR_CR_PKCS7_SIGNER_INFO_DIGEST_ENCRYPT_MISMATCH (-22359) +%define VERR_CR_SPC_GENERIC_ERROR (-23400) +%define VERR_CR_SPC_NOT_EXACTLY_ONE_SIGNER_INFOS (-23401) +%define VERR_CR_SPC_NOT_EXACTLY_ONE_DIGEST_ALGO (-23402) +%define VERR_CR_SPC_SIGNED_IND_DATA_DIGEST_ALGO_MISMATCH (-23403) +%define VERR_CR_SPC_IND_DATA_DIGEST_ALGO_NOT_IN_DIGEST_ALGOS (-23404) +%define VERR_CR_SPC_UNKNOWN_DIGEST_ALGO (-23405) +%define VERR_CR_SPC_IND_DATA_DIGEST_SIZE_MISMATCH (-23406) +%define VERR_CR_SPC_EXPECTED_PE_IMAGE_DATA (-23407) +%define VERR_CR_SPC_PEIMAGE_DATA_NOT_PRESENT (-23408) +%define VERR_CR_SPC_BAD_MONIKER_UUID (-23409) +%define VERR_CR_SPC_UNKNOWN_MONIKER_UUID (-23410) +%define VERR_CR_SPC_BAD_MONIKER_CHOICE (-23411) +%define VERR_CR_SPC_MONIKER_BAD_DATA (-23412) +%define VERR_CR_SPC_PEIMAGE_MULTIPLE_HASH_TABS (-23413) +%define VERR_CR_SPC_PEIMAGE_UNKNOWN_ATTRIBUTE (-23414) +%define VERR_CR_SPC_PEIMAGE_URL_UNEXPECTED (-23415) +%define VERR_CR_SPC_PEIMAGE_NO_CONTENT (-23416) +%define VERR_CR_PKIX_GENERIC_ERROR (-23500) +%define VERR_CR_PKIX_SIGNATURE_TAKES_NO_PARAMETERS (-23501) +%define VERR_CR_PKIX_UNKNOWN_DIGEST_TYPE (-23502) +%define VERR_CR_PKIX_INTERNAL_ERROR (-23503) +%define VERR_CR_PKIX_HASH_TOO_LONG_FOR_KEY (-23504) +%define VERR_CR_PKIX_SIGNATURE_TOO_LONG (-23505) +%define VERR_CR_PKIX_SIGNATURE_GE_KEY (-23506) +%define VERR_CR_PKIX_SIGNATURE_NEGATIVE (-23507) +%define VERR_CR_PKIX_INVALID_SIGNATURE_LENGTH (-23508) +%define VERR_CR_PKIX_SIGNATURE_MISMATCH (-23509) +%define VERR_CR_PKIX_CIPHER_ALGO_PARAMS_NOT_IMPL (-23510) +%define VERR_CR_PKIX_CIPHER_ALGO_NOT_KNOWN (-23511) +%define VERR_CR_PKIX_OSSL_CIPHER_ALGO_NOT_KNOWN (-23512) +%define VERR_CR_PKIX_OSSL_CIPHER_ALGO_NOT_KNOWN_EVP (-23513) +%define VERR_CR_PKIX_OSSL_CIPHER_ALOG_INIT_FAILED (-23514) +%define VERR_CR_PKIX_OSSL_VERIFY_FINAL_FAILED (-23515) +%define VERR_CR_PKIX_OSSL_D2I_PUBLIC_KEY_FAILED (-23516) +%define VERR_CR_PKIX_OSSL_EVP_PKEY_TYPE_ERROR (-23517) +%define VERR_CR_STORE_GENERIC_ERROR (-23700) +%define VERR_CR_RSA_GENERIC_ERROR (-23900) +%define VERR_BIGNUM_SENSITIVE_INPUT (-24000) +%define VERR_BIGNUM_DIV_BY_ZERO (-24001) +%define VERR_BIGNUM_NEGATIVE_EXPONENT (-24002) +%define VERR_CR_DIGEST_OSSL_DIGEST_INIT_ERROR (-24200) +%define VERR_CR_DIGEST_OSSL_DIGEST_CTX_COPY_ERROR (-24201) diff -Nru virtualbox-4.1.12-dfsg/include/iprt/formats/asn1.h virtualbox-4.1.44-dfsg/include/iprt/formats/asn1.h --- virtualbox-4.1.12-dfsg/include/iprt/formats/asn1.h 1970-01-01 00:00:00.000000000 +0000 +++ virtualbox-4.1.44-dfsg/include/iprt/formats/asn1.h 2015-11-11 15:06:03.000000000 +0000 @@ -0,0 +1,94 @@ +/** @file + * IPRT - Abstract Syntax Notation One (ASN.1) Definitions. + */ + +/* + * Copyright (C) 2014 Oracle Corporation + * + * This file is part of VirtualBox Open Source Edition (OSE), as + * available from http://www.virtualbox.org. This file is free software; + * you can redistribute it and/or modify it under the terms of the GNU + * General Public License (GPL) as published by the Free Software + * Foundation, in version 2 as it comes in the "COPYING" file of the + * VirtualBox OSE distribution. VirtualBox OSE is distributed in the + * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind. + * + * The contents of this file may alternatively be used under the terms + * of the Common Development and Distribution License Version 1.0 + * (CDDL) only, as it comes in the "COPYING.CDDL" file of the + * VirtualBox OSE distribution, in which case the provisions of the + * CDDL are applicable instead of those of the GPL. + * + * You may elect to license modified versions of this file under the + * terms and conditions of either the GPL or the CDDL or both. + */ + +#ifndef ___iprt_formats_asn1_h +#define ___iprt_formats_asn1_h + +#include + + +/** @defgroup grp_rt_formats_asn1 ASN.1 definitions + * @ingroup grp_rt_formats + * + * @{ */ + +/** @name Tag classes. + * @{ */ +#define ASN1_TAGCLASS_UNIVERSAL UINT8_C(0x00) +#define ASN1_TAGCLASS_APPLICATION UINT8_C(0x40) +#define ASN1_TAGCLASS_CONTEXT UINT8_C(0x80) +#define ASN1_TAGCLASS_PRIVATE UINT8_C(0xc0) +#define ASN1_TAGCLASS_MASK UINT8_C(0xc0) +/** @} */ + +/** Primitive encoding. */ +#define ASN1_TAGFLAG_PRIMITIVE UINT8_C(0x00) +/** Constructed encoding, as opposed to primitive. */ +#define ASN1_TAGFLAG_CONSTRUCTED UINT8_C(0x20) + +/** The tag value mask. */ +#define ASN1_TAG_MASK UINT8_C(0x1f) + +/** @name ASN.1 universal tags. + * @{ */ +#define ASN1_TAG_EOC UINT8_C(0x00) +#define ASN1_TAG_BOOLEAN UINT8_C(0x01) +#define ASN1_TAG_INTEGER UINT8_C(0x02) +#define ASN1_TAG_BIT_STRING UINT8_C(0x03) +#define ASN1_TAG_OCTET_STRING UINT8_C(0x04) +#define ASN1_TAG_NULL UINT8_C(0x05) +#define ASN1_TAG_OID UINT8_C(0x06) +#define ASN1_TAG_OBJECT_DESCRIPTOR UINT8_C(0x07) +#define ASN1_TAG_EXTERNAL UINT8_C(0x08) +#define ASN1_TAG_REAL UINT8_C(0x09) +#define ASN1_TAG_ENUMERATED UINT8_C(0x0a) +#define ASN1_TAG_EMBEDDED_PDV UINT8_C(0x0b) +#define ASN1_TAG_UTF8_STRING UINT8_C(0x0c) +#define ASN1_TAG_RELATIVE_OID UINT8_C(0x0d) +#define ASN1_TAG_RESERVED_14 UINT8_C(0x0e) +#define ASN1_TAG_RESERVED_15 UINT8_C(0x0f) +#define ASN1_TAG_SEQUENCE UINT8_C(0x10) +#define ASN1_TAG_SET UINT8_C(0x11) +#define ASN1_TAG_NUMERIC_STRING UINT8_C(0x12) +#define ASN1_TAG_PRINTABLE_STRING UINT8_C(0x13) +#define ASN1_TAG_T61_STRING UINT8_C(0x14) +#define ASN1_TAG_VIDEOTEX_STRING UINT8_C(0x15) +#define ASN1_TAG_IA5_STRING UINT8_C(0x16) +#define ASN1_TAG_UTC_TIME UINT8_C(0x17) /**< Century seems to be 1900 if YY < 50, otherwise 2000. Baka ASN.1! */ +#define ASN1_TAG_GENERALIZED_TIME UINT8_C(0x18) +#define ASN1_TAG_GRAPHIC_STRING UINT8_C(0x19) +#define ASN1_TAG_VISIBLE_STRING UINT8_C(0x1a) +#define ASN1_TAG_GENERAL_STRING UINT8_C(0x1b) +#define ASN1_TAG_UNIVERSAL_STRING UINT8_C(0x1c) +#define ASN1_TAG_CHARACTER_STRING UINT8_C(0x1d) +#define ASN1_TAG_BMP_STRING UINT8_C(0x1e) +#define ASN1_TAG_USE_LONG_FORM UINT8_C(0x1f) +/** @} */ + + +/** @} */ + +#endif + diff -Nru virtualbox-4.1.12-dfsg/include/iprt/formats/codeview.h virtualbox-4.1.44-dfsg/include/iprt/formats/codeview.h --- virtualbox-4.1.12-dfsg/include/iprt/formats/codeview.h 1970-01-01 00:00:00.000000000 +0000 +++ virtualbox-4.1.44-dfsg/include/iprt/formats/codeview.h 2015-11-11 15:06:03.000000000 +0000 @@ -0,0 +1,82 @@ +/** @file + * IPRT - Microsoft CodeView Debug Information. + */ + +/* + * Copyright (C) 2009-2013 Oracle Corporation + * + * This file is part of VirtualBox Open Source Edition (OSE), as + * available from http://www.virtualbox.org. This file is free software; + * you can redistribute it and/or modify it under the terms of the GNU + * General Public License (GPL) as published by the Free Software + * Foundation, in version 2 as it comes in the "COPYING" file of the + * VirtualBox OSE distribution. VirtualBox OSE is distributed in the + * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind. + * + * The contents of this file may alternatively be used under the terms + * of the Common Development and Distribution License Version 1.0 + * (CDDL) only, as it comes in the "COPYING.CDDL" file of the + * VirtualBox OSE distribution, in which case the provisions of the + * CDDL are applicable instead of those of the GPL. + * + * You may elect to license modified versions of this file under the + * terms and conditions of either the GPL or the CDDL or both. + */ + +#ifndef ___iprt_formats_codeview_h +#define ___iprt_formats_codeview_h + + +#include +#include + + +/** @defgroup grp_rt_fmt_codeview Microsoft CodeView Debug Information + * @{ + */ +/** + * PDB v2.0 in image debug info. + * The URL is constructed from the timestamp and age? + */ +typedef struct CVPDB20INFO +{ + uint32_t u32Magic; /**< CVPDB20INFO_SIGNATURE. */ + int32_t offDbgInfo; /**< Always 0. Used to be the offset to the real debug info. */ + uint32_t uTimestamp; + uint32_t uAge; + uint8_t szPdbFilename[4]; +} CVPDB20INFO; +/** Pointer to in executable image PDB v2.0 info. */ +typedef CVPDB20INFO *PCVPDB20INFO; +/** Pointer to read only in executable image PDB v2.0 info. */ +typedef CVPDB20INFO const *PCCVPDB20INFO; +/** The CVPDB20INFO magic value. */ +#define CVPDB20INFO_MAGIC RT_MAKE_U32_FROM_U8('N','B','1','0') + +/** + * PDB v7.0 in image debug info. + * The URL is constructed from the signature and the age. + */ +#pragma pack(4) +typedef struct CVPDB70INFO +{ + uint32_t u32Magic; /**< CVPDB70INFO_SIGNATURE. */ + RTUUID PdbUuid; + uint32_t uAge; + uint8_t szPdbFilename[4]; +} CVPDB70INFO; +#pragma pack() +AssertCompileMemberOffset(CVPDB70INFO, PdbUuid, 4); +AssertCompileMemberOffset(CVPDB70INFO, uAge, 4 + 16); +/** Pointer to in executable image PDB v7.0 info. */ +typedef CVPDB70INFO *PCVPDB70INFO; +/** Pointer to read only in executable image PDB v7.0 info. */ +typedef CVPDB70INFO const *PCCVPDB70INFO; +/** The CVPDB70INFO magic value. */ +#define CVPDB70INFO_MAGIC RT_MAKE_U32_FROM_U8('R','S','D','S') + + +/** @} */ + +#endif + diff -Nru virtualbox-4.1.12-dfsg/include/iprt/formats/hfs.h virtualbox-4.1.44-dfsg/include/iprt/formats/hfs.h --- virtualbox-4.1.12-dfsg/include/iprt/formats/hfs.h 1970-01-01 00:00:00.000000000 +0000 +++ virtualbox-4.1.44-dfsg/include/iprt/formats/hfs.h 2015-11-11 15:06:03.000000000 +0000 @@ -0,0 +1,677 @@ +/** @file + * IPRT - Hierarchical File System (HFS). + */ + +/* + * Copyright (C) 2009-2013 Oracle Corporation + * + * This file is part of VirtualBox Open Source Edition (OSE), as + * available from http://www.virtualbox.org. This file is free software; + * you can redistribute it and/or modify it under the terms of the GNU + * General Public License (GPL) as published by the Free Software + * Foundation, in version 2 as it comes in the "COPYING" file of the + * VirtualBox OSE distribution. VirtualBox OSE is distributed in the + * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind. + * + * The contents of this file may alternatively be used under the terms + * of the Common Development and Distribution License Version 1.0 + * (CDDL) only, as it comes in the "COPYING.CDDL" file of the + * VirtualBox OSE distribution, in which case the provisions of the + * CDDL are applicable instead of those of the GPL. + * + * You may elect to license modified versions of this file under the + * terms and conditions of either the GPL or the CDDL or both. + */ + +#ifndef ___iprt_formats_hfs_h +#define ___iprt_formats_hfs_h + + +#include +#include + + +/** @defgroup grp_rt_fmt_hfs HFS - Hierarchical File System. + * @{ + */ + + +/** @name HFS signature words (HFSPlusVolumeHeader::signature) + * @{ */ +#define kHFSSigWord UINT16_C(0x4244) +#define kHFSPlusSigWord UINT16_C(0x482b) +#define kHFSXSigWord UINT16_C(0x4858) +/** @} */ + +/** @name HFS version numbers (HFSPlusVolumeHeader::version). + * @{ */ +#define kHFSPlusVersion UINT16_C(4) +#define kHFSXVersion UINT16_C(5) +/** @} */ + +/** @name HFS mount version numbers (HFSPlusVolumeHeader::lastMountedVersion). + * @{ */ +#define kHFSPlusMountVersion UINT32_C(0x31302e30) +#define kHFSJMountVersion UINT32_C(0x4846534a) +#define kFSKMountVersion UINT32_C(0x46534b21) +/** @} */ + +/** @name Hard link file creators & types. + * @{ */ +#define kHardLinkFileType UINT32_C(0x686c6e6b) +#define kHFSPlusCreator UINT32_C(0x6866732b) +/** @} */ + +/** @name Symlink file creators & types. + * @{ */ +#define kSymLinkFileType UINT32_C(0x736c6e6b) +#define kSymLinkCreator UINT32_C(0x72686170) +/** @} */ + +/** @name Name limits. + * @{ */ +#define kHFSMaxVolumeNameChars UINT8_C(0x1b) +#define kHFSMaxFileNameChars UINT8_C(0x1f) +#define kHFSPlusMaxFileNameChars UINT8_C(0xff) +#define kHFSMaxAttrNameLen UINT8_C(0x7f) +/** @} */ + +/** @name Extent descriptor record densities + * @{ */ +#define kHFSExtentDensity UINT8_C(3) +#define kHFSPlusExtentDensity UINT8_C(8) +/** @} */ + + +/** @name File IDs (various fileID members). + * @{ */ +#define kHFSRootParentID UINT32_C(0x00000001) +#define kHFSRootFolderID UINT32_C(0x00000002) +#define kHFSExtentsFileID UINT32_C(0x00000003) +#define kHFSCatalogFileID UINT32_C(0x00000004) +#define kHFSBadBlockFileID UINT32_C(0x00000005) +#define kHFSAllocationFileID UINT32_C(0x00000006) +#define kHFSStartupFileID UINT32_C(0x00000007) +#define kHFSAttributesFileID UINT32_C(0x00000008) +#define kHFSAttributeDataFileID UINT32_C(0x0000000c) +#define kHFSRepairCatalogFileID UINT32_C(0x0000000e) +#define kHFSBogusExtentFileID UINT32_C(0x0000000f) +#define kHFSFirstUserCatalogNodeID UINT32_C(0x00000010) +/** @} */ + +/** @name Catalog record types. + * @{ */ +#define kHFSFolderRecord UINT16_C(0x0100) +#define kHFSFileRecord UINT16_C(0x0200) +#define kHFSFolderThreadRecord UINT16_C(0x0300) +#define kHFSFileThreadRecord UINT16_C(0x0400) +#define kHFSPlusFolderRecord UINT16_C(0x0001) +#define kHFSPlusFileRecord UINT16_C(0x0002) +#define kHFSPlusFolderThreadRecord UINT16_C(0x0003) +#define kHFSPlusFileThreadRecord UINT16_C(0x0004) +/** @} */ + +/** @name File record bits and masks. + * @{ */ +#define kHFSFileLockedBit 0 +#define kHFSThreadExistsBit 1 +#define kHFSHasAttributesBit 2 +#define kHFSHasSecurityBit 3 +#define kHFSHasFolderCountBit 4 +#define kHFSHasLinkChainBit 5 +#define kHFSHasChildLinkBit 6 +#define kHFSHasDateAddedBit 7 + +#define kHFSFileLockedMask RT_BIT(kHFSFileLockedBit) +#define kHFSThreadExistsMask RT_BIT(kHFSThreadExistsBit) +#define kHFSHasAttributesMask RT_BIT(kHFSHasAttributesBit) +#define kHFSHasSecurityMask RT_BIT(kHFSHasSecurityBit) +#define kHFSHasFolderCountMask RT_BIT(kHFSHasFolderCountBit) +#define kHFSHasLinkChainMask RT_BIT(kHFSHasLinkChainBit) +#define kHFSHasChildLinkMask RT_BIT(kHFSHasChildLinkBit) +#define kHFSHasDateAddedMask RT_BIT(kHFSHasDateAddedBit) +/** @} */ + +/** @name Key and node lengths. + * @{ */ +#define kHFSPlusAttrKeyMaximumLength ( sizeof(HFSPlusAttrKey) - sizeof(uint16_t) ) +#define kHFSPlusAttrKeyMinimumLength ( kHFSPlusAttrKeyMaximumLength - (kHFSMaxAttrNameLen * sizeof(uint16_t)) ) +#define kHFSPlusExtentKeyMaximumLength ( sizeof(HFSPlusExtentKey) - sizeof(uint16_t), +#define kHFSExtentKeyMaximumLength ( sizeof(HFSExtentKey) - sizeof(uint8_t) ) +#define kHFSPlusCatalogKeyMaximumLength ( sizeof(HFSPlusCatalogKey) - sizeof(uint16_t) ) +#define kHFSPlusCatalogKeyMinimumLength ( kHFSPlusCatalogKeyMaximumLength - sizeof(HFSUniStr255) + sizeof(uint16_t) ) +#define kHFSCatalogKeyMaximumLength ( sizeof(HFSCatalogKey) - sizeof(uint8_t) ) +#define kHFSCatalogKeyMinimumLength ( kHFSCatalogKeyMaximumLength - kHFSMaxFileNameChars - 1 + sizeof(uint8_t) ) +#define kHFSPlusCatalogMinNodeSize UINT16_C(0x1000) +#define kHFSPlusExtentMinNodeSize UINT16_C(0x0200) +#define kHFSPlusAttrMinNodeSize UINT16_C(0x1000) +/** @} */ + +/** @name Volume Attribute bits and masks. + * @remarks HFS has only 16-bit wide field, HFS+ has 32-bit. + * @{ */ +#define kHFSVolumeHardwareLockBit 7 +#define kHFSVolumeUnmountedBit 8 +#define kHFSVolumeSparedBlocksBit 9 +#define kHFSVolumeNoCacheRequiredBit 10 +#define kHFSBootVolumeInconsistentBit 11 +#define kHFSCatalogNodeIDsReusedBit 12 +#define kHFSVolumeJournaledBit 13 +#define kHFSVolumeInconsistentBit 14 +#define kHFSVolumeSoftwareLockBit 15 +#define kHFSUnusedNodeFixBit 31 +#define kHFSContentProtectionBit 30 + +#define kHFSVolumeHardwareLockMask RT_BIT(kHFSVolumeHardwareLockBit) +#define kHFSVolumeUnmountedMask RT_BIT(kHFSVolumeUnmountedBit) +#define kHFSVolumeSparedBlocksMask RT_BIT(kHFSVolumeSparedBlocksBit) +#define kHFSVolumeNoCacheRequiredMask RT_BIT(kHFSVolumeNoCacheRequiredBit) +#define kHFSBootVolumeInconsistentMask RT_BIT(kHFSBootVolumeInconsistentBit) +#define kHFSCatalogNodeIDsReusedMask RT_BIT(kHFSCatalogNodeIDsReusedBit) +#define kHFSVolumeJournaledMask RT_BIT(kHFSVolumeJournaledBit) +#define kHFSVolumeInconsistentMask RT_BIT(kHFSVolumeInconsistentBit) +#define kHFSVolumeSoftwareLockMask RT_BIT(kHFSVolumeSoftwareLockBit) +#define kHFSUnusedNodeFixMask RT_BIT(kHFSUnusedNodeFixBit) +#define kHFSContentProtectionMask RT_BIT(kHFSContentProtectionBit) + +#define kHFSMDBAttributesMask UINT16_C(0x8380) +/** @} */ + +/** @name Misc + * @{ */ +#define kHFSUnusedNodesFixDate UINT32_C(0xc5ef2480) + +#define HFSPLUSMETADATAFOLDER "\xE2\x90\x80\xE2\x90\x80\xE2\x90\x80\xE2\x90\x80HFS+ Private Data" +#define HFSPLUS_DIR_METADATA_FOLDER ".HFS+ Private Directory Data\xd" +#define HFS_INODE_PREFIX "iNode" +#define HFS_DELETE_PREFIX "temp" +#define HFS_DIRINODE_PREFIX "dir_" +#define FIRST_LINK_XATTR_NAME "com.apple.system.hfs.firstlink" +#define FIRST_LINK_XATTR_REC_SIZE ( sizeof(HFSPlusAttrData) + 10 ) + +/* {b3e20f39-f292-11d6-97a4-00306543ecac} */ +#define HFS_UUID_NAMESPACE_ID "\xB3\xE2\x0F\x39\xF2\x92\x11\xD6\x97\xA4\x00\x30\x65\x43\xEC\xAC" + +#define SET_HFS_TEXT_ENCODING(a_uHint) (UINT32_C(0x656e6300) | (uint8_t)(a_uHint)) +#define GET_HFS_TEXT_ENCODING(a_uHint) ( ((a_uHint) & UINT32_C(0xffffff00)) == UINT32_C(0x656e6300) \ + ? UINT32_C(0x000000ff)(a_uHint) : UINT32_MAX) +/** @} */ + +/** @name B-tree stuff. + * @{ */ +#define kMaxKeyLength 520 + +#define kBTLeafNode (-1) +#define kBTIndexNode 0 +#define kBTHeaderNode 1 +#define kBTMapNode 2 + +#define kBTBadCloseMask RT_BIT_32(0) +#define kBTBigKeysMask RT_BIT_32(1) +#define kBTVariableIndexKeysMask RT_BIT_32(2) + +/** @} */ + +/** @name B-tree compare types (BTHeaderRec::keyCompareType) */ +#define kHFSCaseFolding UINT8_C(0xcf) +#define kHFSBinaryCompare UINT8_C(0xbc) +/** @} */ + +/** @name Journal stuff. + * @{ */ +#define JIB_RESERVED_SIZE ( sizeof(uint32_t) * 32 - 85 ) + +#define kJIJournalInFSMask RT_BIT_32(0) +#define kJIJournalOnOtherDeviceMask RT_BIT_32(1) +#define kJIJournalNeedInitMask RT_BIT_32(2) + +#define EXTJNL_CONTENT_TYPE_UUID "4a6f7572-6e61-11aa-aa11-00306543ecac" +/** @} */ + + + +typedef struct HFSUniStr255 +{ + uint16_t length; + RTUTF16 unicode[255]; +} HFSUniStr255; +AssertCompileSize(HFSUniStr255, 0x200); +typedef const HFSUniStr255 * ConstHFSUniStr255Param; + +#pragma pack(1) +typedef struct HFSExtentKey +{ + uint8_t keyLength; + uint8_t forkType; + uint32_t fileID; /**< Misaligned. */ + uint16_t startBLock; +} HFSExtentKey; +#pragma pack() +AssertCompileSize(HFSExtentKey, 8); + +typedef struct HFSPlusExtentKey +{ + uint16_t keyLength; + uint8_t forkType; + uint8_t pad; + uint32_t fileID; + uint32_t startBlock; +} HFSPlusExtentKey; +AssertCompileSize(HFSPlusExtentKey, 12); + +typedef struct HFSExtentDescriptor +{ + uint16_t startBlock; + uint16_t blockCount; +} HFSExtentDescriptor; +AssertCompileSize(HFSExtentDescriptor, 4); + +typedef struct HFSPlusExtentDescriptor +{ + uint32_t startBlock; + uint32_t blockCount; +} HFSPlusExtentDescriptor; +AssertCompileSize(HFSPlusExtentDescriptor, 8); + +typedef HFSExtentDescriptor HFSExtentRecord[3]; +typedef HFSPlusExtentDescriptor HFSPlusExtentRecord[8]; + +typedef struct FndrFileInfo +{ + uint32_t fdType; + uint32_t fdCreator; + uint16_t fdFlags; + struct + { + int16_t v; + int16_t h; + } fdLocation; + uint16_t opaque; +} FndrFileInfo; +AssertCompileSize(FndrFileInfo, 16); + +typedef struct FndrDirInfo +{ + struct + { + int16_t top; + int16_t left; + int16_t bottom; + int16_t right; + } frRect; + uint16_t frFlags; + struct + { + int16_t v; + int16_t h; + } fdLocation; + uint16_t opaque; +} FndrDirInfo; +AssertCompileSize(FndrDirInfo, 16); + +typedef struct FndrOpaqueInfo +{ + int8_t opaque[16]; +} FndrOpaqueInfo; +AssertCompileSize(FndrOpaqueInfo, 16); + +typedef struct FndrExtendedFileInfo +{ + uint32_t reserved1; + uint32_t date_added; + uint16_t extended_flags; + uint16_t reserved2; + uint32_t reserved3; +} FndrExtendedFileInfo; +AssertCompileSize(FndrExtendedFileInfo, 16); + +typedef struct FndrExtendedDirInfo +{ + uint32_t point; + uint32_t date_added; + uint16_t extended_flags; + uint16_t reserved3; + uint32_t reserved4; +} FndrExtendedDirInfo; +AssertCompileSize(FndrExtendedDirInfo, 16); + +typedef struct HFSPlusForkData +{ + uint64_t logicalSize; + uint32_t clumpSize; + uint32_t totalBlocks; + HFSPlusExtentRecord extents; +} HFSPlusForkData; +AssertCompileSize(HFSPlusForkData, 80); + +typedef struct HFSPlusBSDInfo +{ + uint32_t ownerID; + uint32_t groupID; + uint8_t adminFlags; + uint8_t ownerFlags; + uint16_t fileMode; + union + { + uint32_t iNodeNum; + uint32_t linkCount; + uint32_t rawDevice; + } special; +} HFSPlusBSDInfo; +AssertCompileSize(HFSPlusBSDInfo, 16); + +#pragma pack(1) +typedef struct HFSCatalogKey +{ + uint8_t keyLength; + uint8_t reserved; + uint32_t parentID; /**< Misaligned. */ + uint8_t nodeName[kHFSMaxFileNameChars + 1]; +} HFSCatalogKey; +#pragma pack() +AssertCompileSize(HFSCatalogKey, 0x26); + +#pragma pack(1) +typedef struct HFSPlusCatalogKey +{ + uint16_t keyLength; + uint32_t parentID; /**< Misaligned. */ + HFSUniStr255 nodeName; +} HFSPlusCatalogKey; +#pragma pack() +AssertCompileSize(HFSPlusCatalogKey, 0x206); + +#pragma pack(1) +typedef struct HFSCatalogFolder +{ + int16_t recordType; + uint16_t flags; + uint16_t valence; + uint32_t folderID; /**< Misaligned. */ + uint32_t createDate; /**< Misaligned. */ + uint32_t modifyDate; /**< Misaligned. */ + uint32_t backupDate; /**< Misaligned. */ + FndrDirInfo userInfo; + FndrOpaqueInfo finderInfo; + uint32_t reserved[4]; /**< Misaligned. */ +} HFSCatalogFolder; +#pragma pack() +AssertCompileSize(HFSCatalogFolder, 70); + +typedef struct HFSPlusCatalogFolder +{ + int16_t recordType; + uint16_t flags; + uint32_t valence; + uint32_t folderID; + uint32_t createDate; + uint32_t contentModDate; + uint32_t attributeModDate; + uint32_t accessDate; + uint32_t backupDate; + HFSPlusBSDInfo bsdInfo; + FndrDirInfo userInfo; + FndrOpaqueInfo finderInfo; + uint32_t textEncoding; + uint32_t folderCount; +} HFSPlusCatalogFolder; +AssertCompileSize(HFSPlusCatalogFolder, 88); + +#pragma pack(1) +typedef struct HFSCatalogFile +{ + int16_t recordType; + uint8_t flags; + uint8_t fileType; + FndrFileInfo userInfo; + uint32_t fileID; + uint16_t dataStartBlock; + int32_t dataLogicalSize; /**< Misaligned. */ + int32_t dataPhysicalSize; /**< Misaligned. */ + uint16_t rsrcStartBlock; + int32_t rsrcLogicalSize; + int32_t rsrcPhysicalSize; + uint32_t createDate; + uint32_t modifyDate; + uint32_t backupDate; + FndrOpaqueInfo finderInfo; + uint16_t clumpSize; + HFSExtentRecord dataExtents; /**< Misaligned. */ + HFSExtentRecord rsrcExtents; /**< Misaligned. */ + uint32_t reserved; /**< Misaligned. */ +} HFSCatalogFile; +#pragma pack() +AssertCompileSize(HFSCatalogFile, 102); + +#pragma pack(1) +typedef struct HFSPlusCatalogFile +{ + int16_t recordType; + uint16_t flags; + uint32_t reserved1; + uint32_t fileID; + uint32_t createDate; + uint32_t contentModDate; + uint32_t attributeModDate; + uint32_t accessDate; + uint32_t backupDate; + HFSPlusBSDInfo bsdInfo; + FndrFileInfo userInfo; + FndrOpaqueInfo finderInfo; + uint32_t textEncoding; + uint32_t reserved2; + HFSPlusForkData dataFork; + HFSPlusForkData resourceFork; +} HFSPlusCatalogFile; +#pragma pack() +AssertCompileMemberAlignment(HFSPlusCatalogFile, dataFork, 8); +AssertCompileSize(HFSPlusCatalogFile, 248); + +#pragma pack(1) +typedef struct HFSCatalogThread +{ + int16_t recordType; + int32_t reserved[2]; + uint32_t parentID; + uint8_t nodeName[kHFSMaxFileNameChars + 1]; +} HFSCatalogThread; +#pragma pack() +AssertCompileSize(HFSCatalogThread, 46); + +typedef struct HFSPlusCatalogThread +{ + int16_t recordType; + int16_t reserved; + uint32_t parentID; + HFSUniStr255 nodeName; +} HFSPlusCatalogThread; +AssertCompileSize(HFSPlusCatalogThread, 0x208); + +typedef struct HFSPlusAttrForkData +{ + uint32_t recordType; + uint32_t reserved; + HFSPlusForkData theFork; +} HFSPlusAttrForkData; +AssertCompileSize(HFSPlusAttrForkData, 88); + +typedef struct HFSPlusAttrExtents +{ + uint32_t recordType; + uint32_t reserved; + HFSPlusExtentRecord extents; +} HFSPlusAttrExtents; +AssertCompileSize(HFSPlusAttrExtents, 72); + +#pragma pack(1) +typedef struct HFSPlusAttrData +{ + uint32_t recordType; + uint32_t reserved[2]; + uint32_t attrSize; + uint8_t attrData[2]; /**< Causes misaligned struct size. */ +} HFSPlusAttrData; +#pragma pack() +AssertCompileSize(HFSPlusAttrData, 18); + +#pragma pack(1) +typedef struct HFSPlusAttrInlineData +{ + uint32_t recordType; + uint32_t reserved; + uint32_t logicalSize; + uint8_t userData[2]; /**< Causes misaligned struct size. */ +} HFSPlusAttrInlineData; +#pragma pack() +AssertCompileSize(HFSPlusAttrInlineData, 14); + +typedef union HFSPlusAttrRecord +{ + uint32_t recordType; + HFSPlusAttrInlineData inlineData; + HFSPlusAttrData attrData; + HFSPlusAttrForkData forkData; + HFSPlusAttrExtents overflowExtents; +} HFSPlusAttrRecord; +AssertCompileSize(HFSPlusAttrRecord, 88); + +typedef struct HFSPlusAttrKey +{ + uint16_t keyLength; + uint16_t pad; + uint32_t fileID; + uint32_t startBlock; + uint16_t attrNameLen; + RTUTF16 attrName[kHFSMaxAttrNameLen]; +} HFSPlusAttrKey; +AssertCompileSize(HFSPlusAttrKey, 268); + +#pragma pack(1) +typedef struct HFSMasterDirectoryBlock +{ + uint16_t drSigWord; + uint32_t drCrDate; /**< Misaligned. */ + uint32_t drLsMod; /**< Misaligned. */ + uint16_t drAtrb; + uint16_t drNmFls; + uint16_t drVBMSt; + uint16_t drAllocPtr; + uint16_t drNmAlBlks; + uint32_t drAlBlkSiz; + uint32_t drClpSiz; + uint16_t drAlBlSt; + uint32_t drNxCNID; /**< Misaligned. */ + uint16_t drFreeBks; + uint8_t drVN[kHFSMaxVolumeNameChars + 1]; + uint32_t drVolBkUp; + uint16_t drVSeqNum; + uint32_t drWrCnt; /**< Misaligned. */ + uint32_t drXTClpSiz; /**< Misaligned. */ + uint32_t drCTClpSiz; /**< Misaligned. */ + uint16_t drNmRtDirs; + uint32_t drFilCnt; + uint32_t drDirCnt; + uint32_t drFndrInfo[8]; + uint16_t drEmbedSigWord; + HFSExtentDescriptor drEmbedExtent; + uint32_t drXTFlSize; /**< Misaligned. */ + HFSExtentRecord drXTExtRec; + uint32_t drCTFlSize; /**< Misaligned. */ + HFSExtentRecord drCTExtRec; +} HFSMasterDirectoryBlock; +#pragma pack() +AssertCompileSize(HFSMasterDirectoryBlock, 162); + +typedef struct HFSPlusVolumeHeader +{ + uint16_t signature; + uint16_t version; + uint32_t attributes; + uint32_t lastMountedVersion; + uint32_t journalInfoBlock; + uint32_t createDate; + uint32_t modifyDate; + uint32_t backupDate; + uint32_t checkedDate; + uint32_t fileCount; + uint32_t folderCount; + uint32_t blockSize; + uint32_t totalBlocks; + uint32_t freeBlocks; + uint32_t nextAllocation; + uint32_t rsrcClumpSize; + uint32_t dataClumpSize; + uint32_t nextCatalogID; + uint32_t writeCount; + uint64_t encodingsBitmap; + uint8_t finderInfo[32]; + HFSPlusForkData allocationFile; + HFSPlusForkData extentsFile; + HFSPlusForkData catalogFile; + HFSPlusForkData attributesFile; + HFSPlusForkData startupFile; +} HFSPlusVolumeHeader; +AssertCompileMemberAlignment(HFSPlusVolumeHeader, nextCatalogID, 8); +AssertCompileSize(HFSPlusVolumeHeader, 512); + +typedef union BTreeKey +{ + uint8_t length8; + uint16_t length16; + uint8_t rawData[kMaxKeyLength + 2]; +} BTreeKey; +AssertCompileSize(BTreeKey, 522); + +#pragma pack(1) +typedef struct BTNodeDescriptor +{ + uint32_t fLink; + uint32_t bLink; + int8_t kind; + uint8_t height; + uint16_t numRecords; + uint16_t reserved; /**< Causes struct size misalignment. */ +} BTNodeDescriptor; +#pragma pack() +AssertCompileSize(BTNodeDescriptor, 14); + +#pragma pack(1) +typedef struct BTHeaderRec +{ + uint16_t treeDepth; + uint32_t rootNode; /**< Misaligned. */ + uint32_t leafRecords; /**< Misaligned. */ + uint32_t firstLeafNode; /**< Misaligned. */ + uint32_t lastLeafNode; /**< Misaligned. */ + uint16_t nodeSize; + uint16_t maxKeyLength; + uint32_t totalNodes; /**< Misaligned. */ + uint32_t freeNodes; /**< Misaligned. */ + uint16_t reserved1; + uint32_t clumpSize; + uint8_t btreeType; + uint8_t keyCompareType; + uint32_t attributes; /**< Misaligned. */ + uint32_t reserved3[16]; /**< Misaligned. */ +} BTHeaderRec; +#pragma pack() +AssertCompileSize(BTHeaderRec, 106); + +#pragma pack(1) +typedef struct JournalInfoBlock +{ + uint32_t flags; + uint32_t devices_signature[8]; + uint64_t offset; /**< Misaligned (morons). */ + uint64_t size; /**< Misaligned. */ + char ext_jnl_uuid[37]; + char machine_serial_num[48]; + char reserved[JIB_RESERVED_SIZE]; +} JournalInfoBlock; +#pragma pack() +AssertCompileSize(JournalInfoBlock, 180); + +/** @} */ + +#endif + diff -Nru virtualbox-4.1.12-dfsg/include/iprt/formats/mach-o.h virtualbox-4.1.44-dfsg/include/iprt/formats/mach-o.h --- virtualbox-4.1.12-dfsg/include/iprt/formats/mach-o.h 1970-01-01 00:00:00.000000000 +0000 +++ virtualbox-4.1.44-dfsg/include/iprt/formats/mach-o.h 2015-11-11 15:06:03.000000000 +0000 @@ -0,0 +1,626 @@ +/* $Id: mach-o.h $ */ +/** @file + * IPRT - Mach-O Structures and Constants. + */ + +/* + * Copyright (C) 2011-2012 Oracle Corporation + * + * This file is part of VirtualBox Open Source Edition (OSE), as + * available from http://www.virtualbox.org. This file is free software; + * you can redistribute it and/or modify it under the terms of the GNU + * General Public License (GPL) as published by the Free Software + * Foundation, in version 2 as it comes in the "COPYING" file of the + * VirtualBox OSE distribution. VirtualBox OSE is distributed in the + * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind. + * + * The contents of this file may alternatively be used under the terms + * of the Common Development and Distribution License Version 1.0 + * (CDDL) only, as it comes in the "COPYING.CDDL" file of the + * VirtualBox OSE distribution, in which case the provisions of the + * CDDL are applicable instead of those of the GPL. + * + * You may elect to license modified versions of this file under the + * terms and conditions of either the GPL or the CDDL or both. + */ + +#ifndef ___internal_ldrMach_O_h +#define ___internal_ldrMach_O_h + +#include + +#ifndef CPU_ARCH_MASK + +/* cputype */ +#define CPU_ARCH_MASK INT32_C(0xff000000) +#define CPU_ARCH_ABI64 INT32_C(0x01000000) +#define CPU_TYPE_ANY INT32_C(-1) +#define CPU_TYPE_VAX INT32_C(1) +#define CPU_TYPE_MC680x0 INT32_C(6) +#define CPU_TYPE_X86 INT32_C(7) +#define CPU_TYPE_I386 CPU_TYPE_X86 +#define CPU_TYPE_X86_64 (CPU_TYPE_X86 | CPU_ARCH_ABI64) +#define CPU_TYPE_MC98000 INT32_C(10) +#define CPU_TYPE_HPPA INT32_C(11) +#define CPU_TYPE_MC88000 INT32_C(13) +#define CPU_TYPE_SPARC INT32_C(14) +#define CPU_TYPE_I860 INT32_C(15) +#define CPU_TYPE_POWERPC INT32_C(18) +#define CPU_TYPE_POWERPC64 (CPU_TYPE_POWERPC | CPU_ARCH_ABI64) + +/* cpusubtype */ +#define CPU_SUBTYPE_MULTIPLE INT32_C(-1) +#define CPU_SUBTYPE_LITTLE_ENDIAN INT32_C(0) +#define CPU_SUBTYPE_BIG_ENDIAN INT32_C(1) + +#define CPU_SUBTYPE_VAX_ALL INT32_C(0) +#define CPU_SUBTYPE_VAX780 INT32_C(1) +#define CPU_SUBTYPE_VAX785 INT32_C(2) +#define CPU_SUBTYPE_VAX750 INT32_C(3) +#define CPU_SUBTYPE_VAX730 INT32_C(4) +#define CPU_SUBTYPE_UVAXI INT32_C(5) +#define CPU_SUBTYPE_UVAXII INT32_C(6) +#define CPU_SUBTYPE_VAX8200 INT32_C(7) +#define CPU_SUBTYPE_VAX8500 INT32_C(8) +#define CPU_SUBTYPE_VAX8600 INT32_C(9) +#define CPU_SUBTYPE_VAX8650 INT32_C(10) +#define CPU_SUBTYPE_VAX8800 INT32_C(11) +#define CPU_SUBTYPE_UVAXIII INT32_C(12) + +#define CPU_SUBTYPE_MC680x0_ALL INT32_C(1) +#define CPU_SUBTYPE_MC68030 INT32_C(1) +#define CPU_SUBTYPE_MC68040 INT32_C(2) +#define CPU_SUBTYPE_MC68030_ONLY INT32_C(3) + +#define CPU_SUBTYPE_INTEL(fam, model) ( (int32_t )(((model) << 4) | (fam)) ) +#define CPU_SUBTYPE_INTEL_FAMILY(subtype) ( (subtype) & 0xf ) +#define CPU_SUBTYPE_INTEL_MODEL(subtype) ( (subtype) >> 4 ) +#define CPU_SUBTYPE_INTEL_FAMILY_MAX 0xf +#define CPU_SUBTYPE_INTEL_MODEL_ALL 0 + +#define CPU_SUBTYPE_I386_ALL CPU_SUBTYPE_INTEL(3, 0) +#define CPU_SUBTYPE_386 CPU_SUBTYPE_INTEL(3, 0) +#define CPU_SUBTYPE_486 CPU_SUBTYPE_INTEL(4, 0) +#define CPU_SUBTYPE_486SX CPU_SUBTYPE_INTEL(4, 8) +#define CPU_SUBTYPE_586 CPU_SUBTYPE_INTEL(5, 0) +#define CPU_SUBTYPE_PENT CPU_SUBTYPE_INTEL(5, 0) +#define CPU_SUBTYPE_PENTPRO CPU_SUBTYPE_INTEL(6, 1) +#define CPU_SUBTYPE_PENTII_M3 CPU_SUBTYPE_INTEL(6, 3) +#define CPU_SUBTYPE_PENTII_M5 CPU_SUBTYPE_INTEL(6, 5) +#define CPU_SUBTYPE_CELERON CPU_SUBTYPE_INTEL(7, 6) +#define CPU_SUBTYPE_CELERON_MOBILE CPU_SUBTYPE_INTEL(7, 7) +#define CPU_SUBTYPE_PENTIUM_3 CPU_SUBTYPE_INTEL(8, 0) +#define CPU_SUBTYPE_PENTIUM_3_M CPU_SUBTYPE_INTEL(8, 1) +#define CPU_SUBTYPE_PENTIUM_3_XEON CPU_SUBTYPE_INTEL(8, 2) +#define CPU_SUBTYPE_PENTIUM_M CPU_SUBTYPE_INTEL(9, 0) +#define CPU_SUBTYPE_PENTIUM_4 CPU_SUBTYPE_INTEL(10, 0) +#define CPU_SUBTYPE_PENTIUM_4_M CPU_SUBTYPE_INTEL(10, 1) +#define CPU_SUBTYPE_ITANIUM CPU_SUBTYPE_INTEL(11, 0) +#define CPU_SUBTYPE_ITANIUM_2 CPU_SUBTYPE_INTEL(11, 1) +#define CPU_SUBTYPE_XEON CPU_SUBTYPE_INTEL(12, 0) +#define CPU_SUBTYPE_XEON_MP CPU_SUBTYPE_INTEL(12, 1) + +#define CPU_SUBTYPE_X86_ALL INT32_C(3) +#define CPU_SUBTYPE_X86_64_ALL INT32_C(3) +#define CPU_SUBTYPE_X86_ARCH1 INT32_C(4) + +#define CPU_SUBTYPE_MIPS_ALL INT32_C(0) +#define CPU_SUBTYPE_MIPS_R2300 INT32_C(1) +#define CPU_SUBTYPE_MIPS_R2600 INT32_C(2) +#define CPU_SUBTYPE_MIPS_R2800 INT32_C(3) +#define CPU_SUBTYPE_MIPS_R2000a INT32_C(4) +#define CPU_SUBTYPE_MIPS_R2000 INT32_C(5) +#define CPU_SUBTYPE_MIPS_R3000a INT32_C(6) +#define CPU_SUBTYPE_MIPS_R3000 INT32_C(7) + +#define CPU_SUBTYPE_MC98000_ALL INT32_C(0) +#define CPU_SUBTYPE_MC98601 INT32_C(1) + +#define CPU_SUBTYPE_HPPA_ALL INT32_C(0) +#define CPU_SUBTYPE_HPPA_7100 INT32_C(0) +#define CPU_SUBTYPE_HPPA_7100LC INT32_C(1) + +#define CPU_SUBTYPE_MC88000_ALL INT32_C(0) +#define CPU_SUBTYPE_MC88100 INT32_C(1) +#define CPU_SUBTYPE_MC88110 INT32_C(2) + +#define CPU_SUBTYPE_SPARC_ALL INT32_C(0) + +#define CPU_SUBTYPE_I860_ALL INT32_C(0) +#define CPU_SUBTYPE_I860_860 INT32_C(1) + +#define CPU_SUBTYPE_POWERPC_ALL INT32_C(0) +#define CPU_SUBTYPE_POWERPC_601 INT32_C(1) +#define CPU_SUBTYPE_POWERPC_602 INT32_C(2) +#define CPU_SUBTYPE_POWERPC_603 INT32_C(3) +#define CPU_SUBTYPE_POWERPC_603e INT32_C(4) +#define CPU_SUBTYPE_POWERPC_603ev INT32_C(5) +#define CPU_SUBTYPE_POWERPC_604 INT32_C(6) +#define CPU_SUBTYPE_POWERPC_604e INT32_C(7) +#define CPU_SUBTYPE_POWERPC_620 INT32_C(8) +#define CPU_SUBTYPE_POWERPC_750 INT32_C(9) +#define CPU_SUBTYPE_POWERPC_7400 INT32_C(10) +#define CPU_SUBTYPE_POWERPC_7450 INT32_C(11) +#define CPU_SUBTYPE_POWERPC_Max INT32_C(10) +#define CPU_SUBTYPE_POWERPC_SCVger INT32_C(11) +#define CPU_SUBTYPE_POWERPC_970 INT32_C(100) + +#define CPU_SUBTYPE_MASK UINT32_C(0xff000000) +#define CPU_SUBTYPE_LIB64 UINT32_C(0x80000000) + +#endif /* !CPU_ARCH_MASK */ + + +typedef struct fat_header +{ + uint32_t magic; + uint32_t nfat_arch; +} fat_header_t; + +#ifndef IMAGE_FAT_SIGNATURE +# define IMAGE_FAT_SIGNATURE UINT32_C(0xcafebabe) +#endif +#ifndef IMAGE_FAT_SIGNATURE_OE +# define IMAGE_FAT_SIGNATURE_OE UINT32_C(0xbebafeca) +#endif + +typedef struct fat_arch +{ + int32_t cputype; + int32_t cpusubtype; + uint32_t offset; + uint32_t size; + uint32_t align; +} fat_arch_t; + +typedef struct mach_header_32 +{ + uint32_t magic; + int32_t cputype; + int32_t cpusubtype; + uint32_t filetype; + uint32_t ncmds; + uint32_t sizeofcmds; + uint32_t flags; +} mach_header_32_t; + +/* magic */ +#ifndef IMAGE_MACHO32_SIGNATURE +# define IMAGE_MACHO32_SIGNATURE UINT32_C(0xfeedface) +#endif +#ifndef IMAGE_MACHO32_SIGNATURE_OE +# define IMAGE_MACHO32_SIGNATURE_OE UINT32_C(0xcefaedfe) +#endif +#define MH_MAGIC IMAGE_MACHO32_SIGNATURE +#define MH_CIGAM IMAGE_MACHO32_SIGNATURE_OE + +typedef struct mach_header_64 +{ + uint32_t magic; + int32_t cputype; + int32_t cpusubtype; + uint32_t filetype; + uint32_t ncmds; + uint32_t sizeofcmds; + uint32_t flags; + uint32_t reserved; +} mach_header_64_t; + +/* magic */ +#ifndef IMAGE_MACHO64_SIGNATURE +# define IMAGE_MACHO64_SIGNATURE UINT32_C(0xfeedfacf) +#endif +#ifndef IMAGE_MACHO64_SIGNATURE_OE +# define IMAGE_MACHO64_SIGNATURE_OE UINT32_C(0xfefaedfe) +#endif +#define MH_MAGIC_64 IMAGE_MACHO64_SIGNATURE +#define MH_CIGAM_64 IMAGE_MACHO64_SIGNATURE_OE + +/* mach_header_* filetype */ +#define MH_OBJECT UINT32_C(1) +#define MH_EXECUTE UINT32_C(2) +#define MH_FVMLIB UINT32_C(3) +#define MH_CORE UINT32_C(4) +#define MH_PRELOAD UINT32_C(5) +#define MH_DYLIB UINT32_C(6) +#define MH_DYLINKER UINT32_C(7) +#define MH_BUNDLE UINT32_C(8) +#define MH_DYLIB_STUB UINT32_C(9) +#define MH_DSYM UINT32_C(10) +#define MH_KEXT_BUNDLE UINT32_C(11) + +/* mach_header_* flags */ +#define MH_NOUNDEFS UINT32_C(0x00000001) +#define MH_INCRLINK UINT32_C(0x00000002) +#define MH_DYLDLINK UINT32_C(0x00000004) +#define MH_BINDATLOAD UINT32_C(0x00000008) +#define MH_PREBOUND UINT32_C(0x00000010) +#define MH_SPLIT_SEGS UINT32_C(0x00000020) +#define MH_LAZY_INIT UINT32_C(0x00000040) +#define MH_TWOLEVEL UINT32_C(0x00000080) +#define MH_FORCE_FLAT UINT32_C(0x00000100) +#define MH_NOMULTIDEFS UINT32_C(0x00000200) +#define MH_NOFIXPREBINDING UINT32_C(0x00000400) +#define MH_PREBINDABLE UINT32_C(0x00000800) +#define MH_ALLMODSBOUND UINT32_C(0x00001000) +#define MH_SUBSECTIONS_VIA_SYMBOLS UINT32_C(0x00002000) +#define MH_CANONICAL UINT32_C(0x00004000) +#define MH_WEAK_DEFINES UINT32_C(0x00008000) +#define MH_BINDS_TO_WEAK UINT32_C(0x00010000) +#define MH_ALLOW_STACK_EXECUTION UINT32_C(0x00020000) +#define MH_ROOT_SAFE UINT32_C(0x00040000) +#define MH_SETUID_SAFE UINT32_C(0x00080000) +#define MH_NO_REEXPORTED_DYLIBS UINT32_C(0x00100000) +#define MH_PIE UINT32_C(0x00200000) +#define MH_DEAD_STRIPPABLE_DYLIB UINT32_C(0x00400000) +#define MH_HAS_TLV_DESCRIPTORS UINT32_C(0x00800000) +#define MH_NO_HEAP_EXECUTION UINT32_C(0x01000000) +#define MH_VALID_FLAGS UINT32_C(0x01ffffff) + + +typedef struct load_command +{ + uint32_t cmd; + uint32_t cmdsize; +} load_command_t; + +/* load cmd */ +#define LC_REQ_DYLD UINT32_C(0x80000000) +#define LC_SEGMENT_32 UINT32_C(0x01) +#define LC_SYMTAB UINT32_C(0x02) +#define LC_SYMSEG UINT32_C(0x03) +#define LC_THREAD UINT32_C(0x04) +#define LC_UNIXTHREAD UINT32_C(0x05) +#define LC_LOADFVMLIB UINT32_C(0x06) +#define LC_IDFVMLIB UINT32_C(0x07) +#define LC_IDENT UINT32_C(0x08) +#define LC_FVMFILE UINT32_C(0x09) +#define LC_PREPAGE UINT32_C(0x0a) +#define LC_DYSYMTAB UINT32_C(0x0b) +#define LC_LOAD_DYLIB UINT32_C(0x0c) +#define LC_ID_DYLIB UINT32_C(0x0d) +#define LC_LOAD_DYLINKER UINT32_C(0x0e) +#define LC_ID_DYLINKER UINT32_C(0x0f) +#define LC_PREBOUND_DYLIB UINT32_C(0x10) +#define LC_ROUTINES UINT32_C(0x11) +#define LC_SUB_FRAMEWORK UINT32_C(0x12) +#define LC_SUB_UMBRELLA UINT32_C(0x13) +#define LC_SUB_CLIENT UINT32_C(0x14) +#define LC_SUB_LIBRARY UINT32_C(0x15) +#define LC_TWOLEVEL_HINTS UINT32_C(0x16) +#define LC_PREBIND_CKSUM UINT32_C(0x17) +#define LC_LOAD_WEAK_DYLIB (UINT32_C(0x18) | LC_REQ_DYLD) +#define LC_SEGMENT_64 UINT32_C(0x19) +#define LC_ROUTINES_64 UINT32_C(0x1a) +#define LC_UUID UINT32_C(0x1b) +#define LC_RPATH (UINT32_C(0x1c) | LC_REQ_DYLD) +#define LC_CODE_SIGNATURE UINT32_C(0x1d) +#define LC_SEGMENT_SPLIT_INFO UINT32_C(0x1e) +#define LC_REEXPORT_DYLIB (UINT32_C(0x1f) | LC_REQ_DYLD) +#define LC_LAZY_LOAD_DYLIB UINT32_C(0x20) +#define LC_ENCRYPTION_INFO UINT32_C(0x21) +#define LC_DYLD_INFO UINT32_C(0x22) +#define LC_DYLD_INFO_ONLY (UINT32_C(0x22) | LC_REQ_DYLD) +#define LC_LOAD_UPWARD_DYLIB (UINT32_C(0x23) | LC_REQ_DYLD) +#define LC_VERSION_MIN_MACOSX UINT32_C(0x24) +#define LC_VERSION_MIN_IPHONEOS UINT32_C(0x25) +#define LC_FUNCTION_STARTS UINT32_C(0x26) +#define LC_DYLD_ENVIRONMENT UINT32_C(0x27) +#define LC_MAIN (UINT32_C(0x28) | LC_REQ_DYLD) +#define LC_DATA_IN_CODE UINT32_C(0x29) +#define LC_SOURCE_VERSION UINT32_C(0x2a) +#define LC_DYLIB_CODE_SIGN_DRS UINT32_C(0x2b) + + +typedef struct lc_str +{ + uint32_t offset; +} lc_str_t; + +typedef struct segment_command_32 +{ + uint32_t cmd; + uint32_t cmdsize; + char segname[16]; + uint32_t vmaddr; + uint32_t vmsize; + uint32_t fileoff; + uint32_t filesize; + uint32_t maxprot; + uint32_t initprot; + uint32_t nsects; + uint32_t flags; +} segment_command_32_t; + +typedef struct segment_command_64 +{ + uint32_t cmd; + uint32_t cmdsize; + char segname[16]; + uint64_t vmaddr; + uint64_t vmsize; + uint64_t fileoff; + uint64_t filesize; + uint32_t maxprot; + uint32_t initprot; + uint32_t nsects; + uint32_t flags; +} segment_command_64_t; + +/* segment flags */ +#define SG_HIGHVM UINT32_C(0x00000001) +#define SG_FVMLIB UINT32_C(0x00000002) +#define SG_NORELOC UINT32_C(0x00000004) +#define SG_PROTECTED_VERSION_1 UINT32_C(0x00000008) + +/* maxprot/initprot */ +#ifndef VM_PROT_NONE +# define VM_PROT_NONE UINT32_C(0x00000000) +# define VM_PROT_READ UINT32_C(0x00000001) +# define VM_PROT_WRITE UINT32_C(0x00000002) +# define VM_PROT_EXECUTE UINT32_C(0x00000004) +# define VM_PROT_ALL UINT32_C(0x00000007) +#endif + +typedef struct section_32 +{ + char sectname[16]; + char segname[16]; + uint32_t addr; + uint32_t size; + uint32_t offset; + uint32_t align; + uint32_t reloff; + uint32_t nreloc; + uint32_t flags; + uint32_t reserved1; + uint32_t reserved2; +} section_32_t; + +typedef struct section_64 +{ + char sectname[16]; + char segname[16]; + uint64_t addr; + uint64_t size; + uint32_t offset; + uint32_t align; + uint32_t reloff; + uint32_t nreloc; + uint32_t flags; + uint32_t reserved1; + uint32_t reserved2; + uint32_t reserved3; +} section_64_t; + +/* section flags */ +#define SECTION_TYPE UINT32_C(0x000000ff) +#define S_REGULAR 0x0 +#define S_ZEROFILL 0x1 +#define S_CSTRING_LITERALS 0x2 +#define S_4BYTE_LITERALS 0x3 +#define S_8BYTE_LITERALS 0x4 +#define S_LITERAL_POINTERS 0x5 +#define S_NON_LAZY_SYMBOL_POINTERS 0x6 +#define S_LAZY_SYMBOL_POINTERS 0x7 +#define S_SYMBOL_STUBS 0x8 +#define S_MOD_INIT_FUNC_POINTERS 0x9 +#define S_MOD_TERM_FUNC_POINTERS 0xa +#define S_COALESCED 0xb +#define S_GB_ZEROFILL 0xc +#define S_INTERPOSING 0xd +#define S_16BYTE_LITERALS 0xe +#define S_DTRACE_DOF 0xf +#define S_LAZY_DYLIB_SYMBOL_POINTERS 0x10 + +#define SECTION_ATTRIBUTES UINT32_C(0xffffff00) +#define SECTION_ATTRIBUTES_USR UINT32_C(0xff000000) +#define S_ATTR_PURE_INSTRUCTIONS UINT32_C(0x80000000) +#define S_ATTR_NO_TOC UINT32_C(0x40000000) +#define S_ATTR_STRIP_STATIC_SYMS UINT32_C(0x20000000) +#define S_ATTR_NO_DEAD_STRIP UINT32_C(0x10000000) +#define S_ATTR_LIVE_SUPPORT UINT32_C(0x08000000) +#define S_ATTR_SELF_MODIFYING_CODE UINT32_C(0x04000000) +#define S_ATTR_DEBUG UINT32_C(0x02000000) +#define SECTION_ATTRIBUTES_SYS UINT32_C(0x00ffff00) +#define S_ATTR_SOME_INSTRUCTIONS UINT32_C(0x00000400) +#define S_ATTR_EXT_RELOC UINT32_C(0x00000200) +#define S_ATTR_LOC_RELOC UINT32_C(0x00000100) + +/* standard section names */ +#define SEG_PAGEZERO "__PAGEZERO" +#define SEG_TEXT "__TEXT" +#define SECT_TEXT "__text" +#define SECT_FVMLIB_INIT0 "__fvmlib_init0" +#define SECT_FVMLIB_INIT1 "__fvmlib_init1" +#define SEG_DATA "__DATA" +#define SECT_DATA "__data" +#define SECT_BSS "__bss" +#define SECT_COMMON "__common" +#define SEG_OBJC "__OBJC" +#define SECT_OBJC_SYMBOLS "__symbol_table" +#define SECT_OBJC_MODULES "__module_info" +#define SECT_OBJC_STRINGS "__selector_strs" +#define SECT_OBJC_REFS "__selector_refs" +#define SEG_ICON "__ICON" +#define SECT_ICON_HEADER "__header" +#define SECT_ICON_TIFF "__tiff" +#define SEG_LINKEDIT "__LINKEDIT" +#define SEG_UNIXSTACK "__UNIXSTACK" +#define SEG_IMPORT "__IMPORT" + +typedef struct thread_command +{ + uint32_t cmd; + uint32_t cmdsize; +} thread_command_t; + +typedef struct symtab_command +{ + uint32_t cmd; + uint32_t cmdsize; + uint32_t symoff; + uint32_t nsyms; + uint32_t stroff; + uint32_t strsize; +} symtab_command_t; + +typedef struct uuid_command +{ + uint32_t cmd; + uint32_t cmdsize; + uint8_t uuid[16]; +} uuid_command_t; + +typedef struct macho_nlist_32 +{ + union + { + int32_t n_strx; + } n_un; + uint8_t n_type; + uint8_t n_sect; + int16_t n_desc; + uint32_t n_value; +} macho_nlist_32_t; + + +typedef struct macho_nlist_64 +{ + union + { + uint32_t n_strx; + } n_un; + uint8_t n_type; + uint8_t n_sect; + int16_t n_desc; + uint64_t n_value; +} macho_nlist_64_t; + +#define MACHO_N_EXT UINT8_C(0x01) +#define MACHO_N_PEXT UINT8_C(0x10) + +#define MACHO_N_TYPE UINT8_C(0x0e) +#define MACHO_N_UNDF UINT8_C(0x00) +#define MACHO_N_ABS UINT8_C(0x02) +#define MACHO_N_INDR UINT8_C(0x0a) +#define MACHO_N_PBUD UINT8_C(0x0c) +#define MACHO_N_SECT UINT8_C(0x0e) + +#define MACHO_N_STAB UINT8_C(0xe0) +#define MACHO_N_GSYM UINT8_C(0x20) +#define MACHO_N_FNAME UINT8_C(0x22) +#define MACHO_N_FUN UINT8_C(0x24) +#define MACHO_N_STSYM UINT8_C(0x26) +#define MACHO_N_LCSYM UINT8_C(0x28) +#define MACHO_N_BNSYM UINT8_C(0x2e) +#define MACHO_N_PC UINT8_C(0x30) +#define MACHO_N_OPT UINT8_C(0x3c) +#define MACHO_N_RSYM UINT8_C(0x40) +#define MACHO_N_SLINE UINT8_C(0x44) +#define MACHO_N_ENSYM UINT8_C(0x4e) +#define MACHO_N_SSYM UINT8_C(0x60) +#define MACHO_N_SO UINT8_C(0x64) +#define MACHO_N_OSO UINT8_C(0x66) +#define MACHO_N_LSYM UINT8_C(0x80) +#define MACHO_N_BINCL UINT8_C(0x82) +#define MACHO_N_SOL UINT8_C(0x84) +#define MACHO_N_PARAMS UINT8_C(0x86) +#define MACHO_N_VERSION UINT8_C(0x88) +#define MACHO_N_OLEVEL UINT8_C(0x8A) +#define MACHO_N_PSYM UINT8_C(0xa0) +#define MACHO_N_EINCL UINT8_C(0xa2) +#define MACHO_N_ENTRY UINT8_C(0xa4) +#define MACHO_N_LBRAC UINT8_C(0xc0) +#define MACHO_N_EXCL UINT8_C(0xc2) +#define MACHO_N_RBRAC UINT8_C(0xe0) +#define MACHO_N_BCOMM UINT8_C(0xe2) +#define MACHO_N_ECOMM UINT8_C(0xe4) +#define MACHO_N_ECOML UINT8_C(0xe8) +#define MACHO_N_LENG UINT8_C(0xfe) + +#define MACHO_NO_SECT UINT8_C(0x00) +#define MACHO_MAX_SECT UINT8_C(0xff) + +#define REFERENCE_TYPE UINT16_C(0x000f) +#define REFERENCE_FLAG_UNDEFINED_NON_LAZY 0 +#define REFERENCE_FLAG_UNDEFINED_LAZY 1 +#define REFERENCE_FLAG_DEFINED 2 +#define REFERENCE_FLAG_PRIVATE_DEFINED 3 +#define REFERENCE_FLAG_PRIVATE_UNDEFINED_NON_LAZY 4 +#define REFERENCE_FLAG_PRIVATE_UNDEFINED_LAZY 5 +#define REFERENCED_DYNAMICALLY UINT16_C(0x0010) + +#define GET_LIBRARY_ORDINAL(a_n_desc) \ + RT_BYTE2(a_n_desc) +#define SET_LIBRARY_ORDINAL(a_n_desc, a_ordinal) \ + do { (a_n_desc) = RT_MAKE_U16(RT_BYTE1(a_n_desc), a_ordinal); } while (0) + +#define SELF_LIBRARY_ORDINAL 0x00 +#define MAX_LIBRARY_ORDINAL 0xfd +#define DYNAMIC_LOOKUP_ORDINAL 0xfe +#define EXECUTABLE_ORDINAL 0xff + +#define N_NO_DEAD_STRIP UINT16_C(0x0020) +#define N_DESC_DISCARDED UINT16_C(0x0020) +#define N_WEAK_REF UINT16_C(0x0040) +#define N_WEAK_DEF UINT16_C(0x0080) +#define N_REF_TO_WEAK UINT16_C(0x0080) + +typedef struct macho_relocation_info +{ + int32_t r_address; + uint32_t r_symbolnum : 24; + uint32_t r_pcrel : 1; + uint32_t r_length : 2; + uint32_t r_extern : 1; + uint32_t r_type : 4; +} macho_relocation_info_t; + +#define R_ABS 0 +#define R_SCATTERED UINT32_C(0x80000000) + +typedef struct scattered_relocation_info +{ +#ifdef RT_LITTLE_ENDIAN + uint32_t r_address : 24; + uint32_t r_type : 4; + uint32_t r_length : 2; + uint32_t r_pcrel : 1; + uint32_t r_scattered : 1; +#elif defined(RT_BIG_ENDIAN) + uint32_t r_scattered : 1; + uint32_t r_pcrel : 1; + uint32_t r_length : 2; + uint32_t r_type : 4; + uint32_t r_address : 24; +#else +# error "Neither K_ENDIAN isn't LITTLE or BIG!" +#endif + int32_t r_value; +} scattered_relocation_info_t; + +typedef enum reloc_type_generic +{ + GENERIC_RELOC_VANILLA = 0, + GENERIC_RELOC_PAIR, + GENERIC_RELOC_SECTDIFF, + GENERIC_RELOC_PB_LA_PTR, + GENERIC_RELOC_LOCAL_SECTDIFF +} reloc_type_generic_t; + +typedef enum reloc_type_x86_64 +{ + X86_64_RELOC_UNSIGNED = 0, + X86_64_RELOC_SIGNED, + X86_64_RELOC_BRANCH, + X86_64_RELOC_GOT_LOAD, + X86_64_RELOC_GOT, + X86_64_RELOC_SUBTRACTOR, + X86_64_RELOC_SIGNED_1, + X86_64_RELOC_SIGNED_2, + X86_64_RELOC_SIGNED_4 +} reloc_type_x86_64_t; + +#endif + diff -Nru virtualbox-4.1.12-dfsg/include/iprt/formats/mz.mac virtualbox-4.1.44-dfsg/include/iprt/formats/mz.mac --- virtualbox-4.1.12-dfsg/include/iprt/formats/mz.mac 1970-01-01 00:00:00.000000000 +0000 +++ virtualbox-4.1.44-dfsg/include/iprt/formats/mz.mac 2015-11-11 15:06:03.000000000 +0000 @@ -0,0 +1,56 @@ +;; @file +; IPRT - MZ (DOS Executable Header) definitions for YASM/NASM. +; + +; +; Copyright (C) 2006-2013 Oracle Corporation +; +; This file is part of VirtualBox Open Source Edition (OSE), as +; available from http://www.virtualbox.org. This file is free software; +; you can redistribute it and/or modify it under the terms of the GNU +; General Public License (GPL) as published by the Free Software +; Foundation, in version 2 as it comes in the "COPYING" file of the +; VirtualBox OSE distribution. VirtualBox OSE is distributed in the +; hope that it will be useful, but WITHOUT ANY WARRANTY of any kind. +; +; The contents of this file may alternatively be used under the terms +; of the Common Development and Distribution License Version 1.0 +; (CDDL) only, as it comes in the "COPYING.CDDL" file of the +; VirtualBox OSE distribution, in which case the provisions of the +; CDDL are applicable instead of those of the GPL. +; +; You may elect to license modified versions of this file under the +; terms and conditions of either the GPL or the CDDL or both. +; + +%ifndef ___iprt_formats_mz_mac +%define ___iprt_formats_mz_mac + +struc IMAGE_DOS_HEADER + .e_magic resw 1 + .e_cblp resw 1 + .e_cp resw 1 + .e_crlc resw 1 + .e_cparhdr resw 1 + .e_minalloc resw 1 + .e_maxalloc resw 1 + .e_ss resw 1 + .e_sp resw 1 + .e_csum resw 1 + .e_ip resw 1 + .e_cs resw 1 + .e_lfarlc resw 1 + .e_ovno resw 1 + .e_res resw 4 + .e_oemid resw 1 + .e_oeminfo resw 1 + .e_res2 resw 10 + .e_lfanew resd 1 +endstruc + +%ifndef IMAGE_DOS_SIGNATURE + %define IMAGE_DOS_SIGNATURE 0x5a4d +%endif + +%endif + diff -Nru virtualbox-4.1.12-dfsg/include/iprt/formats/pe.mac virtualbox-4.1.44-dfsg/include/iprt/formats/pe.mac --- virtualbox-4.1.12-dfsg/include/iprt/formats/pe.mac 1970-01-01 00:00:00.000000000 +0000 +++ virtualbox-4.1.44-dfsg/include/iprt/formats/pe.mac 2015-11-11 15:06:03.000000000 +0000 @@ -0,0 +1,722 @@ +;; @file +; IPRT - Windows PE definitions for YASM/NASM. +; + +; +; Copyright (C) 2006-2013 Oracle Corporation +; +; This file is part of VirtualBox Open Source Edition (OSE), as +; available from http://www.virtualbox.org. This file is free software; +; you can redistribute it and/or modify it under the terms of the GNU +; General Public License (GPL) as published by the Free Software +; Foundation, in version 2 as it comes in the "COPYING" file of the +; VirtualBox OSE distribution. VirtualBox OSE is distributed in the +; hope that it will be useful, but WITHOUT ANY WARRANTY of any kind. +; +; The contents of this file may alternatively be used under the terms +; of the Common Development and Distribution License Version 1.0 +; (CDDL) only, as it comes in the "COPYING.CDDL" file of the +; VirtualBox OSE distribution, in which case the provisions of the +; CDDL are applicable instead of those of the GPL. +; +; You may elect to license modified versions of this file under the +; terms and conditions of either the GPL or the CDDL or both. +; + +%ifndef ___iprt_format_pe_mac +%define ___iprt_format_pe_mac + + +;******************************************************************************* +;* Header Files * +;******************************************************************************* +%include "iprt/asmdefs.mac" + + +;******************************************************************************* +;* Defined Constants And Macros * +;******************************************************************************* +%define IMAGE_NT_SIGNATURE 0x00004550 + +; file header +%define IMAGE_FILE_MACHINE_I386 0x014c +%define IMAGE_FILE_MACHINE_AMD64 0x8664 + +%define IMAGE_FILE_RELOCS_STRIPPED 0x0001 +%define IMAGE_FILE_EXECUTABLE_IMAGE 0x0002 +%define IMAGE_FILE_LINE_NUMS_STRIPPED 0x0004 +%define IMAGE_FILE_LOCAL_SYMS_STRIPPED 0x0008 +%define IMAGE_FILE_AGGRESIVE_WS_TRIM 0x0010 +%define IMAGE_FILE_LARGE_ADDRESS_AWARE 0x0020 +%define IMAGE_FILE_16BIT_MACHINE 0x0040 +%define IMAGE_FILE_BYTES_REVERSED_LO 0x0080 +%define IMAGE_FILE_32BIT_MACHINE 0x0100 +%define IMAGE_FILE_DEBUG_STRIPPED 0x0200 +%define IMAGE_FILE_REMOVABLE_RUN_FROM_SWAP 0x0400 +%define IMAGE_FILE_NET_RUN_FROM_SWAP 0x0800 +%define IMAGE_FILE_SYSTEM 0x1000 +%define IMAGE_FILE_DLL 0x2000 +%define IMAGE_FILE_UP_SYSTEM_ONLY 0x4000 +%define IMAGE_FILE_BYTES_REVERSED_HI 0x8000 + + +; optional header +%define IMAGE_NT_OPTIONAL_HDR32_MAGIC 0x10B +%define IMAGE_NT_OPTIONAL_HDR64_MAGIC 0x20B + +%define IMAGE_SUBSYSTEM_UNKNOWN 0x0 +%define IMAGE_SUBSYSTEM_NATIVE 0x1 +%define IMAGE_SUBSYSTEM_WINDOWS_GUI 0x2 +%define IMAGE_SUBSYSTEM_WINDOWS_CUI 0x3 +%define IMAGE_SUBSYSTEM_OS2_GUI 0x4 +%define IMAGE_SUBSYSTEM_OS2_CUI 0x5 +%define IMAGE_SUBSYSTEM_POSIX_CUI 0x7 + +%define IMAGE_LIBRARY_PROCESS_INIT 0x0001 +%define IMAGE_LIBRARY_PROCESS_TERM 0x0002 +%define IMAGE_LIBRARY_THREAD_INIT 0x0004 +%define IMAGE_LIBRARY_THREAD_TERM 0x0008 +%define IMAGE_DLLCHARACTERISTICS_NO_ISOLATION 0x0200 +%define IMAGE_DLLCHARACTERISTICS_NO_SEH 0x0400 +%define IMAGE_DLLCHARACTERISTICS_NO_BIND 0x0800 +%define IMAGE_DLLCHARACTERISTICS_WDM_DRIVER 0x2000 +%define IMAGE_DLLCHARACTERISTICS_TERMINAL_SERVER_AWARE 0x8000 + +%define IMAGE_NUMBEROF_DIRECTORY_ENTRIES 0x10 + +%define IMAGE_DIRECTORY_ENTRY_EXPORT 0x0 +%define IMAGE_DIRECTORY_ENTRY_IMPORT 0x1 +%define IMAGE_DIRECTORY_ENTRY_RESOURCE 0x2 +%define IMAGE_DIRECTORY_ENTRY_EXCEPTION 0x3 +%define IMAGE_DIRECTORY_ENTRY_SECURITY 0x4 +%define IMAGE_DIRECTORY_ENTRY_BASERELOC 0x5 +%define IMAGE_DIRECTORY_ENTRY_DEBUG 0x6 +%define IMAGE_DIRECTORY_ENTRY_ARCHITECTURE 0x7 +%define IMAGE_DIRECTORY_ENTRY_COPYRIGHT IMAGE_DIRECTORY_ENTRY_ARCHITECTURE +%define IMAGE_DIRECTORY_ENTRY_GLOBALPTR 0x8 +%define IMAGE_DIRECTORY_ENTRY_TLS 0x9 +%define IMAGE_DIRECTORY_ENTRY_LOAD_CONFIG 0xa +%define IMAGE_DIRECTORY_ENTRY_BOUND_IMPORT 0xb +%define IMAGE_DIRECTORY_ENTRY_IAT 0xc +%define IMAGE_DIRECTORY_ENTRY_DELAY_IMPORT 0xd +%define IMAGE_DIRECTORY_ENTRY_COM_DESCRIPTOR 0xe + + +; section header +%define IMAGE_SIZEOF_SHORT_NAME 0x8 + +%define IMAGE_SCN_TYPE_REG 0x00000000 +%define IMAGE_SCN_TYPE_DSECT 0x00000001 +%define IMAGE_SCN_TYPE_NOLOAD 0x00000002 +%define IMAGE_SCN_TYPE_GROUP 0x00000004 +%define IMAGE_SCN_TYPE_NO_PAD 0x00000008 +%define IMAGE_SCN_TYPE_COPY 0x00000010 + +%define IMAGE_SCN_CNT_CODE 0x00000020 +%define IMAGE_SCN_CNT_INITIALIZED_DATA 0x00000040 +%define IMAGE_SCN_CNT_UNINITIALIZED_DATA 0x00000080 + +%define IMAGE_SCN_LNK_OTHER 0x00000100 +%define IMAGE_SCN_LNK_INFO 0x00000200 +%define IMAGE_SCN_TYPE_OVER 0x00000400 +%define IMAGE_SCN_LNK_REMOVE 0x00000800 +%define IMAGE_SCN_LNK_COMDAT 0x00001000 +%define IMAGE_SCN_MEM_PROTECTED 0x00004000 +%define IMAGE_SCN_NO_DEFER_SPEC_EXC 0x00004000 +%define IMAGE_SCN_GPREL 0x00008000 +%define IMAGE_SCN_MEM_FARDATA 0x00008000 +%define IMAGE_SCN_MEM_SYSHEAP 0x00010000 +%define IMAGE_SCN_MEM_PURGEABLE 0x00020000 +%define IMAGE_SCN_MEM_16BIT 0x00020000 +%define IMAGE_SCN_MEM_LOCKED 0x00040000 +%define IMAGE_SCN_MEM_PRELOAD 0x00080000 + +%define IMAGE_SCN_ALIGN_1BYTES 0x00100000 +%define IMAGE_SCN_ALIGN_2BYTES 0x00200000 +%define IMAGE_SCN_ALIGN_4BYTES 0x00300000 +%define IMAGE_SCN_ALIGN_8BYTES 0x00400000 +%define IMAGE_SCN_ALIGN_16BYTES 0x00500000 +%define IMAGE_SCN_ALIGN_32BYTES 0x00600000 +%define IMAGE_SCN_ALIGN_64BYTES 0x00700000 +%define IMAGE_SCN_ALIGN_128BYTES 0x00800000 +%define IMAGE_SCN_ALIGN_256BYTES 0x00900000 +%define IMAGE_SCN_ALIGN_512BYTES 0x00A00000 +%define IMAGE_SCN_ALIGN_1024BYTES 0x00B00000 +%define IMAGE_SCN_ALIGN_2048BYTES 0x00C00000 +%define IMAGE_SCN_ALIGN_4096BYTES 0x00D00000 +%define IMAGE_SCN_ALIGN_8192BYTES 0x00E00000 +%define IMAGE_SCN_ALIGN_MASK 0x00F00000 +%define IMAGE_SCN_ALIGN_SHIFT 20 + +%define IMAGE_SCN_LNK_NRELOC_OVFL 0x01000000 +%define IMAGE_SCN_MEM_DISCARDABLE 0x02000000 +%define IMAGE_SCN_MEM_NOT_CACHED 0x04000000 +%define IMAGE_SCN_MEM_NOT_PAGED 0x08000000 +%define IMAGE_SCN_MEM_SHARED 0x10000000 +%define IMAGE_SCN_MEM_EXECUTE 0x20000000 +%define IMAGE_SCN_MEM_READ 0x40000000 +%define IMAGE_SCN_MEM_WRITE 0x80000000 + + +; relocations +%define IMAGE_REL_BASED_ABSOLUTE 0x0 +%define IMAGE_REL_BASED_HIGH 0x1 +%define IMAGE_REL_BASED_LOW 0x2 +%define IMAGE_REL_BASED_HIGHLOW 0x3 +%define IMAGE_REL_BASED_HIGHADJ 0x4 +%define IMAGE_REL_BASED_MIPS_JMPADDR 0x5 +%define IMAGE_REL_BASED_MIPS_JMPADDR16 0x9 +%define IMAGE_REL_BASED_IA64_IMM64 0x9 +%define IMAGE_REL_BASED_DIR64 0xa +%define IMAGE_REL_BASED_HIGH3ADJ 0xb + + +; imports +%define IMAGE_ORDINAL_FLAG32 0x80000000 +%define IMAGE_ORDINAL_FLAG64 UINT64_MAX(0x8000000000000000) + + +; debug dir +%define IMAGE_DEBUG_TYPE_UNKNOWN UINT32_C(0x0) +%define IMAGE_DEBUG_TYPE_COFF UINT32_C(0x1) +%define IMAGE_DEBUG_TYPE_CODEVIEW UINT32_C(0x2) +%define IMAGE_DEBUG_TYPE_FPO UINT32_C(0x3) +%define IMAGE_DEBUG_TYPE_MISC UINT32_C(0x4) +%define IMAGE_DEBUG_TYPE_EXCEPTION UINT32_C(0x5) +%define IMAGE_DEBUG_TYPE_FIXUP UINT32_C(0x6) +%define IMAGE_DEBUG_TYPE_OMAP_TO_SRC UINT32_C(0x7) +%define IMAGE_DEBUG_TYPE_OMAP_FROM_SRC UINT32_C(0x8) +%define IMAGE_DEBUG_TYPE_BORLAND UINT32_C(0x9) +%define IMAGE_DEBUG_TYPE_RESERVED10 UINT32_C(0x10) + +%define IMAGE_DEBUG_MISC_EXENAME UINT32_C(1) + +; security directory +%define WIN_CERT_REVISION_1_0 UINT16_C(0x0100) +%define WIN_CERT_REVISION_2_0 UINT16_C(0x0200) + +%define WIN_CERT_TYPE_X509 UINT16_C(1) +%define WIN_CERT_TYPE_PKCS_SIGNED_DATA UINT16_C(2) +%define WIN_CERT_TYPE_RESERVED_1 UINT16_C(3) +%define WIN_CERT_TYPE_TS_STACK_SIGNED UINT16_C(4) +%define WIN_CERT_TYPE_EFI_PKCS115 UINT16_C(0x0ef0) +%define WIN_CERT_TYPE_EFI_GUID UINT16_C(0x0ef1) + + +; For .DBG files. +%define IMAGE_SEPARATE_DEBUG_SIGNATURE UINT16_C(0x4944) + +%define IMAGE_SIZE_OF_SYMBOL 18 +%define IMAGE_SIZE_OF_SYMBOL_EX 20 + +%define IMAGE_SYM_UNDEFINED INT16_C(0) +%define IMAGE_SYM_ABSOLUTE INT16_C(-1) +%define IMAGE_SYM_DEBUG INT16_C(-2) + +%define IMAGE_SYM_CLASS_END_OF_FUNCTION UINT8_C(0xff) ; -1 +%define IMAGE_SYM_CLASS_NULL UINT8_C(0) +%define IMAGE_SYM_CLASS_AUTOMATIC UINT8_C(1) +%define IMAGE_SYM_CLASS_EXTERNAL UINT8_C(2) +%define IMAGE_SYM_CLASS_STATIC UINT8_C(3) +%define IMAGE_SYM_CLASS_REGISTER UINT8_C(4) +%define IMAGE_SYM_CLASS_EXTERNAL_DEF UINT8_C(5) +%define IMAGE_SYM_CLASS_LABEL UINT8_C(6) +%define IMAGE_SYM_CLASS_UNDEFINED_LABEL UINT8_C(7) +%define IMAGE_SYM_CLASS_MEMBER_OF_STRUCT UINT8_C(8) +%define IMAGE_SYM_CLASS_ARGUMENT UINT8_C(9) +%define IMAGE_SYM_CLASS_STRUCT_TAG UINT8_C(10) +%define IMAGE_SYM_CLASS_MEMBER_OF_UNION UINT8_C(11) +%define IMAGE_SYM_CLASS_UNION_TAG UINT8_C(12) +%define IMAGE_SYM_CLASS_TYPE_DEFINITION UINT8_C(13) +%define IMAGE_SYM_CLASS_UNDEFINED_STATIC UINT8_C(14) +%define IMAGE_SYM_CLASS_ENUM_TAG UINT8_C(15) +%define IMAGE_SYM_CLASS_MEMBER_OF_ENUM UINT8_C(16) +%define IMAGE_SYM_CLASS_REGISTER_PARAM UINT8_C(17) +%define IMAGE_SYM_CLASS_BIT_FIELD UINT8_C(18) +%define IMAGE_SYM_CLASS_FAR_EXTERNAL UINT8_C(68) +%define IMAGE_SYM_CLASS_BLOCK UINT8_C(100) +%define IMAGE_SYM_CLASS_FUNCTION UINT8_C(101) +%define IMAGE_SYM_CLASS_END_OF_STRUCT UINT8_C(102) +%define IMAGE_SYM_CLASS_FILE UINT8_C(103) +%define IMAGE_SYM_CLASS_SECTION UINT8_C(104) +%define IMAGE_SYM_CLASS_WEAK_EXTERNAL UINT8_C(105) +%define IMAGE_SYM_CLASS_CLR_TOKEN UINT8_C(107) + + +%define IMAGE_SYM_TYPE_NULL UINT16_C(0x0000) +%define IMAGE_SYM_TYPE_VOID UINT16_C(0x0001) +%define IMAGE_SYM_TYPE_CHAR UINT16_C(0x0002) +%define IMAGE_SYM_TYPE_SHORT UINT16_C(0x0003) +%define IMAGE_SYM_TYPE_INT UINT16_C(0x0004) +%define IMAGE_SYM_TYPE_LONG UINT16_C(0x0005) +%define IMAGE_SYM_TYPE_FLOAT UINT16_C(0x0006) +%define IMAGE_SYM_TYPE_DOUBLE UINT16_C(0x0007) +%define IMAGE_SYM_TYPE_STRUCT UINT16_C(0x0008) +%define IMAGE_SYM_TYPE_UNION UINT16_C(0x0009) +%define IMAGE_SYM_TYPE_ENUM UINT16_C(0x000a) +%define IMAGE_SYM_TYPE_MOE UINT16_C(0x000b) +%define IMAGE_SYM_TYPE_BYTE UINT16_C(0x000c) +%define IMAGE_SYM_TYPE_WORD UINT16_C(0x000d) +%define IMAGE_SYM_TYPE_UINT UINT16_C(0x000e) +%define IMAGE_SYM_TYPE_DWORD UINT16_C(0x000f) +%define IMAGE_SYM_TYPE_PCODE UINT16_C(0x8000) + +%define IMAGE_SYM_DTYPE_NULL UINT16_C(0x0) +%define IMAGE_SYM_DTYPE_POINTER UINT16_C(0x1) +%define IMAGE_SYM_DTYPE_FUNCTION UINT16_C(0x2) +%define IMAGE_SYM_DTYPE_ARRAY UINT16_C(0x3) + + +%define N_BTMASK UINT16_C(0x000f) +%define N_TMASK UINT16_C(0x0030) +%define N_TMASK1 UINT16_C(0x00c0) +%define N_TMASK2 UINT16_C(0x00f0) +%define N_BTSHFT 4 +%define N_TSHIFT 2 + + +;******************************************************************************* +;* Structures and Typedefs * +;******************************************************************************* + +struc IMAGE_FILE_HEADER + .Machine resw 1 ;;< 0x00 + .NumberOfSections resw 1 ;;< 0x02 + .TimeDateStamp resd 1 ;;< 0x04 + .PointerToSymbolTable resd 1 ;;< 0x08 + .NumberOfSymbols resd 1 ;;< 0x0c + .SizeOfOptionalHeader resw 1 ;;< 0x10 + .Characteristics resw 1 ;;< 0x12 +endstruc +AssertCompileSize(IMAGE_FILE_HEADER, 0x14) + +struc IMAGE_DATA_DIRECTORY + .VirtualAddress resd 1 + .Size resd 1 +endstruc + + +struc IMAGE_OPTIONAL_HEADER32 + .Magic resw 1 ;;< 0x00 + .MajorLinkerVersion resb 1 ;;< 0x02 + .MinorLinkerVersion resb 1 ;;< 0x03 + .SizeOfCode resd 1 ;;< 0x04 + .SizeOfInitializedData resd 1 ;;< 0x08 + .SizeOfUninitializedData resd 1 ;;< 0x0c + .AddressOfEntryPoint resd 1 ;;< 0x10 + .BaseOfCode resd 1 ;;< 0x14 + .BaseOfData resd 1 ;;< 0x18 + .ImageBase resd 1 ;;< 0x1c + .SectionAlignment resd 1 ;;< 0x20 + .FileAlignment resd 1 ;;< 0x24 + .MajorOperatingSystemVersion resw 1 ;;< 0x28 + .MinorOperatingSystemVersion resw 1 ;;< 0x2a + .MajorImageVersion resw 1 ;;< 0x2c + .MinorImageVersion resw 1 ;;< 0x2e + .MajorSubsystemVersion resw 1 ;;< 0x30 + .MinorSubsystemVersion resw 1 ;;< 0x32 + .Win32VersionValue resd 1 ;;< 0x34 + .SizeOfImage resd 1 ;;< 0x38 + .SizeOfHeaders resd 1 ;;< 0x3c + .CheckSum resd 1 ;;< 0x40 + .Subsystem resw 1 ;;< 0x44 + .DllCharacteristics resw 1 ;;< 0x46 + .SizeOfStackReserve resd 1 ;;< 0x48 + .SizeOfStackCommit resd 1 ;;< 0x4c + .SizeOfHeapReserve resd 1 ;;< 0x50 + .SizeOfHeapCommit resd 1 ;;< 0x54 + .LoaderFlags resd 1 ;;< 0x58 + .NumberOfRvaAndSizes resd 1 ;;< 0x5c + .DataDirectory resb IMAGE_DATA_DIRECTORY_size * IMAGE_NUMBEROF_DIRECTORY_ENTRIES ;;< 0x60; 0x10*8 = 0x80 +endstruc +AssertCompileSize(IMAGE_OPTIONAL_HEADER32, 0xe0); + +struc IMAGE_OPTIONAL_HEADER64 + .Magic resw 1 ;;< 0x00 + .MajorLinkerVersion resb 1 ;;< 0x02 + .MinorLinkerVersion resb 1 ;;< 0x03 + .SizeOfCode resd 1 ;;< 0x04 + .SizeOfInitializedData resd 1 ;;< 0x08 + .SizeOfUninitializedData resd 1 ;;< 0x0c + .AddressOfEntryPoint resd 1 ;;< 0x10 + .BaseOfCode resd 1 ;;< 0x14 + .ImageBase resq 1 ;;< 0x18 + .SectionAlignment resd 1 ;;< 0x20 + .FileAlignment resd 1 ;;< 0x24 + .MajorOperatingSystemVersion resw 1 ;;< 0x28 + .MinorOperatingSystemVersion resw 1 ;;< 0x2a + .MajorImageVersion resw 1 ;;< 0x2c + .MinorImageVersion resw 1 ;;< 0x2e + .MajorSubsystemVersion resw 1 ;;< 0x30 + .MinorSubsystemVersion resw 1 ;;< 0x32 + .Win32VersionValue resd 1 ;;< 0x34 + .SizeOfImage resd 1 ;;< 0x38 + .SizeOfHeaders resd 1 ;;< 0x3c + .CheckSum resd 1 ;;< 0x40 + .Subsystem resw 1 ;;< 0x44 + .DllCharacteristics resw 1 ;;< 0x46 + .SizeOfStackReserve resq 1 ;;< 0x48 + .SizeOfStackCommit resq 1 ;;< 0x50 + .SizeOfHeapReserve resq 1 ;;< 0x58 + .SizeOfHeapCommit resq 1 ;;< 0x60 + .LoaderFlags resd 1 ;;< 0x68 + .NumberOfRvaAndSizes resd 1 ;;< 0x6c + .DataDirectory resb IMAGE_DATA_DIRECTORY_size * IMAGE_NUMBEROF_DIRECTORY_ENTRIES ;;< 0x70; 0x10*8 = 0x80 +endstruc ; size: 0xf0 +AssertCompileSize(IMAGE_OPTIONAL_HEADER64, 0xf0); + + +struc IMAGE_NT_HEADERS32 + .Signature resd 1 ;;< 0x00 + .FileHeader resb IMAGE_FILE_HEADER_size ; ;;< 0x04 + .OptionalHeader resb IMAGE_OPTIONAL_HEADER32_size ;;< 0x18 +endstruc ; size: 0xf8 +AssertCompileSize(IMAGE_NT_HEADERS32, 0xf8); +AssertCompileMemberOffset(IMAGE_NT_HEADERS32, FileHeader, 4); +AssertCompileMemberOffset(IMAGE_NT_HEADERS32, OptionalHeader, 24); + +struc IMAGE_NT_HEADERS64 + .Signature resd 1 ;;< 0x00 + .FileHeader resb IMAGE_FILE_HEADER_size ;;< 0x04 + .OptionalHeader resb IMAGE_OPTIONAL_HEADER64_size ;;< 0x18 +endstruc ; size: 0x108 +AssertCompileSize(IMAGE_NT_HEADERS64, 0x108); +AssertCompileMemberOffset(IMAGE_NT_HEADERS64, FileHeader, 4); +AssertCompileMemberOffset(IMAGE_NT_HEADERS64, OptionalHeader, 24); + + +struc IMAGE_SECTION_HEADER + .Name resb IMAGE_SIZEOF_SHORT_NAME + .Misc.VirtualSize resd 1 + .VirtualAddress resd 1 + .SizeOfRawData resd 1 + .PointerToRawData resd 1 + .PointerToRelocations resd 1 + .PointerToLinenumbers resd 1 + .NumberOfRelocations resw 1 + .NumberOfLinenumbers resw 1 + .Characteristics resd 1 +endstruc +%define IMAGE_SECTION_HEADER.Misc.PhysicalAddress IMAGE_SECTION_HEADER.Misc.VirtualSize + + +struc IMAGE_BASE_RELOCATION + .VirtualAddress resd 1 + .SizeOfBlock resd 1 +endstruc + + +struc IMAGE_EXPORT_DIRECTORY + .Characteristics resd 1 + .TimeDateStamp resd 1 + .MajorVersion resw 1 + .MinorVersion resw 1 + .Name resd 1 + .Base resd 1 + .NumberOfFunctions resd 1 + .NumberOfNames resd 1 + .AddressOfFunctions resd 1 + .AddressOfNames resd 1 + .AddressOfNameOrdinals resd 1 +endstruc + + +struc IMAGE_IMPORT_DESCRIPTOR + .u.Characteristics resd 1 + .TimeDateStamp resd 1 + .ForwarderChain resd 1 + .Name resd 1 + .FirstThunk resd 1 +endstruc +%define IMAGE_IMPORT_DESCRIPTOR.u.OriginalFirstThunk IMAGE_IMPORT_DESCRIPTOR.u.Characteristics + +struc IMAGE_IMPORT_BY_NAME + .Hint resw 1 + .Name resb 1 +endstruc + + +struc IMAGE_THUNK_DATA64 + .u1.ForwarderString resq 1 +endstruc +%define IMAGE_THUNK_DATA64.u1.Function IMAGE_THUNK_DATA64.u1.ForwarderString +%define IMAGE_THUNK_DATA64.u1.Ordinal IMAGE_THUNK_DATA64.u1.ForwarderString +%define IMAGE_THUNK_DATA64.u1.AddressOfData IMAGE_THUNK_DATA64.u1.ForwarderString + +struc IMAGE_THUNK_DATA32 + .u1.ForwarderString resd 1 +endstruc +%define IMAGE_THUNK_DATA32.u1.Function IMAGE_THUNK_DATA32.u1.ForwarderString +%define IMAGE_THUNK_DATA32.u1.Ordinal IMAGE_THUNK_DATA32.u1.ForwarderString +%define IMAGE_THUNK_DATA32.u1.AddressOfData IMAGE_THUNK_DATA32.u1.ForwarderString + + +struc IMAGE_LOAD_CONFIG_DIRECTORY32 + .Size resd 1 + .TimeDateStamp resd 1 + .MajorVersion resw 1 + .MinorVersion resw 1 + .GlobalFlagsClear resd 1 + .GlobalFlagsSet resd 1 + .CriticalSectionDefaultTimeout resd 1 + .DeCommitFreeBlockThreshold resd 1 + .DeCommitTotalFreeThreshold resd 1 + .LockPrefixTable resd 1 + .MaximumAllocationSize resd 1 + .VirtualMemoryThreshold resd 1 + .ProcessHeapFlags resd 1 + .ProcessAffinityMask resd 1 + .CSDVersion resw 1 + .Reserved1 resw 1 + .EditList resd 1 + .SecurityCookie resd 1 + .SEHandlerTable resd 1 + .SEHandlerCount resd 1 +endstruc + +struc IMAGE_LOAD_CONFIG_DIRECTORY64 + .Size resd 1 + .TimeDateStamp resd 1 + .MajorVersion resw 1 + .MinorVersion resw 1 + .GlobalFlagsClear resd 1 + .GlobalFlagsSet resd 1 + .CriticalSectionDefaultTimeout resd 1 + .DeCommitFreeBlockThreshold resq 1 + .DeCommitTotalFreeThreshold resq 1 + .LockPrefixTable resq 1 + .MaximumAllocationSize resq 1 + .VirtualMemoryThreshold resq 1 + .ProcessAffinityMask resq 1 + .ProcessHeapFlags resd 1 + .CSDVersion resw 1 + .Reserved1 resw 1 + .EditList resq 1 + .SecurityCookie resq 1 + .SEHandlerTable resq 1 + .SEHandlerCount resq 1 +endstruc + + +struc IMAGE_DEBUG_DIRECTORY + .Characteristics resd 1 + .TimeDateStamp resd 1 + .MajorVersion resw 1 + .MinorVersion resw 1 + .Type resd 1 + .SizeOfData resd 1 + .AddressOfRawData resd 1 + .PointerToRawData resd 1 +endstruc + +struc IMAGE_DEBUG_MISC + .DataType resd 1 + .Length resd 1 + .Unicode resb 1 + .Reserved resb 3 + .Data resb 1 +endstruc + + +struc WIN_CERTIFICATE + .dwLength resd 1 + .wRevision resw 1 + .wCertificateType resw 1 + .bCertificate resb 8 +endstruc + +;; The header of a .DBG file (NT4). +struc IMAGE_SEPARATE_DEBUG_HEADER + .Signature resw 1 ;;< 0x00 + .Flags resw 1 ;;< 0x02 + .Machine resw 1 ;;< 0x04 + .Characteristics resw 1 ;;< 0x06 + .TimeDateStamp resd 1 ;;< 0x08 + .CheckSum resd 1 ;;< 0x0c + .ImageBase resd 1 ;;< 0x10 + .SizeOfImage resd 1 ;;< 0x14 + .NumberOfSections resd 1 ;;< 0x18 + .ExportedNamesSize resd 1 ;;< 0x1c + .DebugDirectorySize resd 1 ;;< 0x20 + .SectionAlignment resd 1 ;;< 0x24 + .Reserved resd 2 ;;< 0x28 +endstruc ; size: 0x30 +AssertCompileSize(IMAGE_SEPARATE_DEBUG_HEADER, 0x30); + + +struc IMAGE_COFF_SYMBOLS_HEADER + .NumberOfSymbols resd 1 + .LvaToFirstSymbol resd 1 + .NumberOfLinenumbers resd 1 + .LvaToFirstLinenumber resd 1 + .RvaToFirstByteOfCode resd 1 + .RvaToLastByteOfCode resd 1 + .RvaToFirstByteOfData resd 1 + .RvaToLastByteOfData resd 1 +endstruc +AssertCompileSize(IMAGE_COFF_SYMBOLS_HEADER, 0x20); + + +struc IMAGE_LINENUMBER + .Type.VirtualAddress resd 1 + .Linenumber resw 1 +endstruc +AssertCompileSize(IMAGE_LINENUMBER, 6); +%define IMAGE_LINENUMBER.Type.SymbolTableIndex IMAGE_LINENUMBER.Type.VirtualAddress + + +;;#pragma pack(2) +;;struc IMAGE_SYMBOL +;;{ +;; union +;; { +;; uint8_t ShortName[8]; +;; struct +;; { +;; .Short resd 1 +;; .Long resd 1 +;; } Name; +;; uint32_t LongName[2]; +;; } N; +;; +;; .Value resd 1 +;; int16_t SectionNumber; +;; .Type resw 1 +;; .StorageClass resb 1 +;; .NumberOfAuxSymbols resb 1 +;;} IMAGE_SYMBOL; +;;#pragma pack() +;;AssertCompileSize(IMAGE_SYMBOL, IMAGE_SIZE_OF_SYMBOL); +;; +;; +;;#pragma pack(2) +;;typedef struct IMAGE_AUX_SYMBOL_TOKEN_DEF +;;{ +;; .bAuxType resb 1 +;; .bReserved resb 1 +;; .SymbolTableIndex resd 1 +;; uint8_t rgbReserved[12]; +;;} IMAGE_AUX_SYMBOL_TOKEN_DEF; +;;#pragma pack() +;;AssertCompileSize(IMAGE_AUX_SYMBOL_TOKEN_DEF, IMAGE_SIZE_OF_SYMBOL); +;; +;; +;;#pragma pack(1) +;;typedef union _IMAGE_AUX_SYMBOL +;;{ +;; struct +;; { +;; .TagIndex resd 1 +;; union +;; { +;; struct +;; { +;; .Linenumber resw 1 +;; .Size resw 1 +;; } LnSz; +;; } Misc; +;; union +;; { +;; struct +;; { +;; .PointerToLinenumber resd 1 +;; .PointerToNextFunction resd 1 +;; } Function; +;; struct +;; { +;; uint16_t Dimension[4]; +;; } Array; +;; } FcnAry; +;; .TvIndex resw 1 +;; } Sym; +;; +;; struct +;; { +;; uint8_t Name[IMAGE_SIZE_OF_SYMBOL]; +;; } File; +;; +;; struct +;; { +;; .Length resd 1 +;; .NumberOfRelocations resw 1 +;; .NumberOfLinenumbers resw 1 +;; .CheckSum resd 1 +;; .Number resw 1 +;; .Selection resb 1 +;; .bReserved resb 1 +;; .HighNumber resw 1 +;; } Section; +;; +;; IMAGE_AUX_SYMBOL_TOKEN_DEF TokenDef; +;; struct +;; { +;; .crc resd 1 +;; uint8_t rgbReserved[14]; +;; } CRC; +;;} IMAGE_AUX_SYMBOL; +;;#pragma pack() +;;AssertCompileSize(IMAGE_AUX_SYMBOL, IMAGE_SIZE_OF_SYMBOL); +;; +;; +;; +;;struc IMAGE_SYMBOL_EX +;;{ +;; union +;; { +;; uint8_t ShortName[8]; +;; struct +;; { +;; .Short resd 1 +;; .Long resd 1 +;; } Name; +;; uint32_t LongName[2]; +;; } N; +;; +;; .Value resd 1 +;; int32_t SectionNumber; /* The difference from IMAGE_SYMBOL +;; .Type resw 1 +;; .StorageClass resb 1 +;; .NumberOfAuxSymbols resb 1 +;;} IMAGE_SYMBOL_EX; +;;AssertCompileSize(IMAGE_SYMBOL_EX, IMAGE_SIZE_OF_SYMBOL_EX); +;; +;; +;;typedef union _IMAGE_AUX_SYMBOL_EX +;;{ +;; struct +;; { +;; .WeakDefaultSymIndex resd 1 +;; .WeakSearchType resd 1 +;; uint8_t rgbReserved[12]; +;; } Sym; +;; +;; struct +;; { +;; uint8_t Name[IMAGE_SIZE_OF_SYMBOL_EX]; +;; } File; +;; +;; struct +;; { +;; .Length resd 1 +;; .NumberOfRelocations resw 1 +;; .NumberOfLinenumbers resw 1 +;; .CheckSum resd 1 +;; .Number resw 1 +;; .Selection resb 1 +;; .bReserved resb 1 +;; .HighNumber resw 1 +;; uint8_t rgbReserved[2]; +;; } Section; +;; +;; IMAGE_AUX_SYMBOL_TOKEN_DEF TokenDef; +;; +;; struct +;; { +;; .crc resd 1 +;; uint8_t rgbReserved[16]; +;; } CRC; +;;} IMAGE_AUX_SYMBOL_EX; +;;AssertCompileSize(IMAGE_AUX_SYMBOL_EX, IMAGE_SIZE_OF_SYMBOL_EX); + +%endif + diff -Nru virtualbox-4.1.12-dfsg/include/iprt/formats/xar.h virtualbox-4.1.44-dfsg/include/iprt/formats/xar.h --- virtualbox-4.1.12-dfsg/include/iprt/formats/xar.h 1970-01-01 00:00:00.000000000 +0000 +++ virtualbox-4.1.44-dfsg/include/iprt/formats/xar.h 2015-11-11 15:06:03.000000000 +0000 @@ -0,0 +1,68 @@ +/** @file + * IPRT - Extensible Archiver (XAR) format. + */ + +/* + * Copyright (C) 2013 Oracle Corporation + * + * This file is part of VirtualBox Open Source Edition (OSE), as + * available from http://www.virtualbox.org. This file is free software; + * you can redistribute it and/or modify it under the terms of the GNU + * General Public License (GPL) as published by the Free Software + * Foundation, in version 2 as it comes in the "COPYING" file of the + * VirtualBox OSE distribution. VirtualBox OSE is distributed in the + * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind. + * + * The contents of this file may alternatively be used under the terms + * of the Common Development and Distribution License Version 1.0 + * (CDDL) only, as it comes in the "COPYING.CDDL" file of the + * VirtualBox OSE distribution, in which case the provisions of the + * CDDL are applicable instead of those of the GPL. + * + * You may elect to license modified versions of this file under the + * terms and conditions of either the GPL or the CDDL or both. + */ + + +#ifndef ___iprt_formats_xar_h +#define ___iprt_formats_xar_h + + +#pragma pack(4) /* Misdesigned header, not 8-byte aligned size. */ +typedef struct XARHEADER +{ + /** The magic number 'xar!' (XAR_HEADER_MAGIC). */ + uint32_t u32Magic; + /** The size of this header structure. */ + uint16_t cbHeader; + /** The header version structure. */ + uint16_t uVersion; + /** The size of the compressed table of content (TOC). */ + uint64_t cbTocCompressed; + /** The size of the table of context (TOC) when not compressed. */ + uint64_t cbTocUncompressed; + /** Which cryptographic hash function is used (XAR_HASH_XXX). */ + uint32_t uHashFunction; +} XARHEADER; +#pragma pack() +/** Pointer to a XAR header. */ +typedef XARHEADER *PXARHEADER; +/** Pointer to a const XAR header. */ +typedef XARHEADER const *PCXARHEADER; + +/** XAR magic value (on disk endian). */ +#define XAR_HEADER_MAGIC RT_H2LE_U32(RT_MAKE_U32_FROM_U8('x', 'a', 'r', '!')) +/** The current header version value (host endian). */ +#define XAR_HEADER_VERSION 1 + +/** @name XAR hashing functions. + * @{ */ +#define XAR_HASH_NONE 0 +#define XAR_HASH_SHA1 1 +#define XAR_HASH_MD5 2 +#define XAR_HASH_MAX 2 +/** @} */ + + +#endif + diff -Nru virtualbox-4.1.12-dfsg/include/iprt/ldr.h virtualbox-4.1.44-dfsg/include/iprt/ldr.h --- virtualbox-4.1.12-dfsg/include/iprt/ldr.h 2012-04-02 13:24:45.000000000 +0000 +++ virtualbox-4.1.44-dfsg/include/iprt/ldr.h 2015-11-11 15:06:03.000000000 +0000 @@ -3,7 +3,7 @@ */ /* - * Copyright (C) 2006-2007 Oracle Corporation + * Copyright (C) 2006-2014 Oracle Corporation * * This file is part of VirtualBox Open Source Edition (OSE), as * available from http://www.virtualbox.org. This file is free software; @@ -38,6 +38,186 @@ RT_C_DECLS_BEGIN +/** Loader address (unsigned integer). */ +typedef RTUINTPTR RTLDRADDR; +/** Pointer to a loader address. */ +typedef RTLDRADDR *PRTLDRADDR; +/** Pointer to a const loader address. */ +typedef RTLDRADDR const *PCRTLDRADDR; +/** The max loader address value. */ +#define RTLDRADDR_MAX RTUINTPTR_MAX +/** NIL loader address value. */ +#define NIL_RTLDRADDR RTLDRADDR_MAX + + +/** + * Loader module format. + */ +typedef enum RTLDRFMT +{ + /** The usual invalid 0 format. */ + RTLDRFMT_INVALID = 0, + /** The native OS loader. */ + RTLDRFMT_NATIVE, + /** The AOUT loader. */ + RTLDRFMT_AOUT, + /** The ELF loader. */ + RTLDRFMT_ELF, + /** The LX loader. */ + RTLDRFMT_LX, + /** The Mach-O loader. */ + RTLDRFMT_MACHO, + /** The PE loader. */ + RTLDRFMT_PE, + /** The end of the valid format values (exclusive). */ + RTLDRFMT_END, + /** Hack to blow the type up to 32-bit. */ + RTLDRFMT_32BIT_HACK = 0x7fffffff +} RTLDRFMT; + + +/** + * Loader module type. + */ +typedef enum RTLDRTYPE +{ + /** The usual invalid 0 type. */ + RTLDRTYPE_INVALID = 0, + /** Object file. */ + RTLDRTYPE_OBJECT, + /** Executable module, fixed load address. */ + RTLDRTYPE_EXECUTABLE_FIXED, + /** Executable module, relocatable, non-fixed load address. */ + RTLDRTYPE_EXECUTABLE_RELOCATABLE, + /** Executable module, position independent code, non-fixed load address. */ + RTLDRTYPE_EXECUTABLE_PIC, + /** Shared library, fixed load address. + * Typically a system library. */ + RTLDRTYPE_SHARED_LIBRARY_FIXED, + /** Shared library, relocatable, non-fixed load address. */ + RTLDRTYPE_SHARED_LIBRARY_RELOCATABLE, + /** Shared library, position independent code, non-fixed load address. */ + RTLDRTYPE_SHARED_LIBRARY_PIC, + /** DLL that contains no code or data only imports and exports. (Chiefly OS/2.) */ + RTLDRTYPE_FORWARDER_DLL, + /** Core or dump. */ + RTLDRTYPE_CORE, + /** Debug module (debug info with empty code & data segments). */ + RTLDRTYPE_DEBUG_INFO, + /** The end of the valid types values (exclusive). */ + RTLDRTYPE_END, + /** Hack to blow the type up to 32-bit. */ + RTLDRTYPE_32BIT_HACK = 0x7fffffff +} RTLDRTYPE; + + +/** + * Loader endian indicator. + */ +typedef enum RTLDRENDIAN +{ + /** The usual invalid endian. */ + RTLDRENDIAN_INVALID, + /** Little endian. */ + RTLDRENDIAN_LITTLE, + /** Bit endian. */ + RTLDRENDIAN_BIG, + /** Endianness doesn't have a meaning in the context. */ + RTLDRENDIAN_NA, + /** The end of the valid endian values (exclusive). */ + RTLDRENDIAN_END, + /** Hack to blow the type up to 32-bit. */ + RTLDRENDIAN_32BIT_HACK = 0x7fffffff +} RTLDRENDIAN; + + +/** Pointer to a loader reader instance. */ +typedef struct RTLDRREADER *PRTLDRREADER; +/** + * Loader image reader instance. + * + * @remarks The reader will typically have a larger structure wrapping this one + * for storing necessary instance variables. + * + * The loader ASSUMES the caller serializes all access to the + * individual loader module handlers, thus no serialization is required + * when implementing this interface. + */ +typedef struct RTLDRREADER +{ + /** Magic value (RTLDRREADER_MAGIC). */ + uintptr_t uMagic; + + /** + * Reads bytes at a give place in the raw image. + * + * @returns iprt status code. + * @param pReader Pointer to the reader instance. + * @param pvBuf Where to store the bits. + * @param cb Number of bytes to read. + * @param off Where to start reading relative to the start of the raw image. + */ + DECLCALLBACKMEMBER(int, pfnRead)(PRTLDRREADER pReader, void *pvBuf, size_t cb, RTFOFF off); + + /** + * Tells end position of last read. + * + * @returns position relative to start of the raw image. + * @param pReader Pointer to the reader instance. + */ + DECLCALLBACKMEMBER(RTFOFF, pfnTell)(PRTLDRREADER pReader); + + /** + * Gets the size of the raw image bits. + * + * @returns size of raw image bits in bytes. + * @param pReader Pointer to the reader instance. + */ + DECLCALLBACKMEMBER(RTFOFF, pfnSize)(PRTLDRREADER pReader); + + /** + * Map the bits into memory. + * + * The mapping will be freed upon calling pfnDestroy() if not pfnUnmap() + * is called before that. The mapping is read only. + * + * @returns iprt status code. + * @param pReader Pointer to the reader instance. + * @param ppvBits Where to store the address of the memory mapping on success. + * The size of the mapping can be obtained by calling pfnSize(). + */ + DECLCALLBACKMEMBER(int, pfnMap)(PRTLDRREADER pReader, const void **ppvBits); + + /** + * Unmap bits. + * + * @returns iprt status code. + * @param pReader Pointer to the reader instance. + * @param pvBits Memory pointer returned by pfnMap(). + */ + DECLCALLBACKMEMBER(int, pfnUnmap)(PRTLDRREADER pReader, const void *pvBits); + + /** + * Gets the most appropriate log name. + * + * @returns Pointer to readonly log name. + * @param pReader Pointer to the reader instance. + */ + DECLCALLBACKMEMBER(const char *, pfnLogName)(PRTLDRREADER pReader); + + /** + * Releases all resources associated with the reader instance. + * The instance is invalid after this call returns. + * + * @returns iprt status code. + * @param pReader Pointer to the reader instance. + */ + DECLCALLBACKMEMBER(int, pfnDestroy)(PRTLDRREADER pReader); +} RTLDRREADER; + +/** Magic value for RTLDRREADER (Gordon Matthew Thomas Sumner / Sting). */ +#define RTLDRREADER_MAGIC UINT32_C(0x19511002) + /** * Gets the default file suffix for DLL/SO/DYLIB/whatever. @@ -102,11 +282,36 @@ /** Symbols defined in this library will be made available for symbol * resolution of subsequently loaded libraries. */ #define RTLDRLOAD_FLAGS_GLOBAL RT_BIT_32(0) +/** Do not unload the library upon RTLdrClose. (For system libs.) */ +#define RTLDRLOAD_FLAGS_NO_UNLOAD RT_BIT_32(1) /** The mask of valid flag bits. */ -#define RTLDRLOAD_FLAGS_VALID_MASK UINT32_C(0x00000001) +#define RTLDRLOAD_FLAGS_VALID_MASK UINT32_C(0x00000003) /** @} */ /** + * Loads a dynamic load library (/shared object) image file residing in one of + * the default system library locations. + * + * Only the system library locations are searched. No suffix is required. + * + * @returns iprt status code. + * @param pszFilename Image filename. No path. + * @param fNoUnload Do not unload the library when RTLdrClose is called. + * @param phLdrMod Where to store the handle to the loaded module. + */ +RTDECL(int) RTLdrLoadSystem(const char *pszFilename, bool fNoUnload, PRTLDRMOD phLdrMod); + +/** + * Combines RTLdrLoadSystem and RTLdrGetSymbol, with fNoUnload set to true. + * + * @returns The symbol value, NULL on failure. (If you care for a less boolean + * status, go thru the necessary API calls yourself.) + * @param pszFilename Image filename. No path. + * @param pszSymbol Symbol name. + */ +RTDECL(void *) RTLdrGetSystemSymbol(const char *pszFilename, const char *pszSymbol); + +/** * Loads a dynamic load library (/shared object) image file residing in the * RTPathAppPrivateArch() directory. * @@ -119,6 +324,16 @@ RTDECL(int) RTLdrLoadAppPriv(const char *pszFilename, PRTLDRMOD phLdrMod); /** + * Gets the native module handle for a module loaded by RTLdrLoad, RTLdrLoadEx, + * RTLdrLoadSystem, or RTLdrLoadAppPriv. + * + * @returns Native handle on success, ~(uintptr_t)0 on failure. + * @param hLdrMod The loader module handle. + */ +RTDECL(uintptr_t) RTLdrGetNativeHandle(RTLDRMOD hLdrMod); + + +/** * Image architecuture specifier for RTLdrOpenEx. */ typedef enum RTLDRARCH @@ -140,6 +355,21 @@ /** Pointer to a RTLDRARCH. */ typedef RTLDRARCH *PRTLDRARCH; +/** @name RTLDR_O_XXX - RTLdrOpen flags. + * @{ */ +/** Open for debugging or introspection reasons. + * This will skip a few of the stricter validations when loading images. */ +#define RTLDR_O_FOR_DEBUG RT_BIT_32(0) +/** Open for signature validation. */ +#define RTLDR_O_FOR_VALIDATION RT_BIT_32(1) +/** The arch specification is just a guideline for FAT binaries. */ +#define RTLDR_O_WHATEVER_ARCH RT_BIT_32(2) +/** Ignore the architecture specification if there is no code. */ +#define RTLDR_O_IGNORE_ARCH_IF_NO_CODE RT_BIT_32(3) +/** Mask of valid flags. */ +#define RTLDR_O_VALID_MASK UINT32_C(0x0000000f) +/** @} */ + /** * Open a binary image file, extended version. * @@ -164,6 +394,21 @@ RTDECL(int) RTLdrOpenkLdr(const char *pszFilename, uint32_t fFlags, RTLDRARCH enmArch, PRTLDRMOD phLdrMod); /** + * Open part with reader. + * + * @returns iprt status code. + * @param pReader The loader reader instance which will provide the raw + * image bits. The reader instance will be consumed on + * success. On failure, the caller has to do the cleaning + * up. + * @param fFlags Valid RTLDR_O_XXX combination. + * @param enmArch Architecture specifier. + * @param phMod Where to store the handle. + * @param pErrInfo Where to return extended error information. Optional. + */ +RTDECL(int) RTLdrOpenWithReader(PRTLDRREADER pReader, uint32_t fFlags, RTLDRARCH enmArch, PRTLDRMOD phMod, PRTERRINFO pErrInfo); + +/** * What to expect and do with the bits passed to RTLdrOpenBits(). */ typedef enum RTLDROPENBITS @@ -212,6 +457,8 @@ * Gets the address of a named exported symbol. * * @returns iprt status code. + * @retval VERR_LDR_FORWARDER forwarder, use pfnQueryForwarderInfo. Buffer size + * hint in @a ppvValue. * @param hLdrMod The loader module handle. * @param pszSymbol Symbol name. * @param ppvValue Where to store the symbol value. Note that this is restricted to the @@ -227,16 +474,73 @@ * value relative to any given base address. * * @returns iprt status code. + * @retval VERR_LDR_FORWARDER forwarder, use pfnQueryForwarderInfo. Buffer size + * hint in @a pValue. * @param hLdrMod The loader module handle. * @param pvBits Optional pointer to the loaded image. * Set this to NULL if no RTLdrGetBits() processed image bits are available. * Not supported for RTLdrLoad() images. * @param BaseAddress Image load address. * Not supported for RTLdrLoad() images. + * @param iOrdinal Symbol ordinal number, pass UINT32_MAX if pszSymbol + * should be used instead. * @param pszSymbol Symbol name. * @param pValue Where to store the symbol value. */ -RTDECL(int) RTLdrGetSymbolEx(RTLDRMOD hLdrMod, const void *pvBits, RTUINTPTR BaseAddress, const char *pszSymbol, RTUINTPTR *pValue); +RTDECL(int) RTLdrGetSymbolEx(RTLDRMOD hLdrMod, const void *pvBits, RTLDRADDR BaseAddress, + uint32_t iOrdinal, const char *pszSymbol, PRTLDRADDR pValue); + +/** + * Gets the address of a named exported function. + * + * Same as RTLdrGetSymbol, but skips the status code and pointer to return + * variable stuff. + * + * @returns Pointer to the function if found, NULL if not. + * @param hLdrMod The loader module handle. + * @param pszSymbol Function name. + */ +RTDECL(PFNRT) RTLdrGetFunction(RTLDRMOD hLdrMod, const char *pszSymbol); + +/** + * Information about an imported symbol. + */ +typedef struct RTLDRIMPORTINFO +{ + /** Symbol table entry number, UINT32_MAX if not available. */ + uint32_t iSelfOrdinal; + /** The ordinal of the imported symbol in szModule, UINT32_MAX if not used. */ + uint32_t iOrdinal; + /** The symbol name, NULL if not used. This points to the char immediately + * following szModule when returned by RTLdrQueryForwarderInfo. */ + const char *pszSymbol; + /** The name of the module being imported from. */ + char szModule[1]; +} RTLDRIMPORTINFO; +/** Pointer to information about an imported symbol. */ +typedef RTLDRIMPORTINFO *PRTLDRIMPORTINFO; +/** Pointer to const information about an imported symbol. */ +typedef RTLDRIMPORTINFO const *PCRTLDRIMPORTINFO; + +/** + * Query information about a forwarded symbol. + * + * @returns IPRT status code. + * @param hLdrMod The loader module handle. + * @param pvBits Optional pointer to the loaded image. + * Set this to NULL if no RTLdrGetBits() processed image bits are available. + * Not supported for RTLdrLoad() images. + * @param iOrdinal Symbol ordinal number, pass UINT32_MAX if pszSymbol + * should be used instead. + * @param pszSymbol Symbol name. + * @param pInfo Where to return the forwarder info. + * @param cbInfo Size of the buffer @a pInfo points to. For a size + * hint, see @a pValue when RTLdrGetSymbolEx returns + * VERR_LDR_FORWARDER. + */ +RTDECL(int) RTLdrQueryForwarderInfo(RTLDRMOD hLdrMod, const void *pvBits, uint32_t iOrdinal, const char *pszSymbol, + PRTLDRIMPORTINFO pInfo, size_t cbInfo); + /** * Gets the size of the loaded image. @@ -329,8 +633,197 @@ * @{ */ /** Returns ALL kinds of symbols. The default is to only return public/exported symbols. */ #define RTLDR_ENUM_SYMBOL_FLAGS_ALL RT_BIT(1) +/** Ignore forwarders (for use with RTLDR_ENUM_SYMBOL_FLAGS_ALL). */ +#define RTLDR_ENUM_SYMBOL_FLAGS_NO_FWD RT_BIT(2) /** @} */ +/** + * Gets the image format. + * + * @returns Valid image format on success. RTLDRFMT_INVALID on invalid handle or + * other errors. + * @param hLdrMod The module handle. + */ +RTDECL(RTLDRFMT) RTLdrGetFormat(RTLDRMOD hLdrMod); + +/** + * Gets the image type. + * + * @returns Valid image type value on success. RTLDRTYPE_INVALID on + * invalid handle or other errors. + * @param hLdrMod The module handle. + */ +RTDECL(RTLDRTYPE) RTLdrGetType(RTLDRMOD hLdrMod); + +/** + * Gets the image endian-ness. + * + * @returns Valid image endian value on success. RTLDRENDIAN_INVALID on invalid + * handle or other errors. + * @param hLdrMod The module handle. + */ +RTDECL(RTLDRENDIAN) RTLdrGetEndian(RTLDRMOD hLdrMod); + +/** + * Gets the image endian-ness. + * + * @returns Valid image architecture value on success. + * RTLDRARCH_INVALID on invalid handle or other errors. + * @param hLdrMod The module handle. + */ +RTDECL(RTLDRARCH) RTLdrGetArch(RTLDRMOD hLdrMod); + +/** + * Loader properties that can be queried thru RTLdrQueryProp. + */ +typedef enum RTLDRPROP +{ + RTLDRPROP_INVALID = 0, + /** The image UUID (Mach-O). + * Returns a RTUUID in the buffer. */ + RTLDRPROP_UUID, + /** The image timestamp in seconds, genrally since unix epoc. + * Returns a 32-bit or 64-bit signed integer value in the buffer. */ + RTLDRPROP_TIMESTAMP_SECONDS, + /** Checks if the image is signed. + * Returns a bool. */ + RTLDRPROP_IS_SIGNED, + /** Retrives the PKCS \#7 SignedData blob that signs the image. + * Returns variable sized buffer containing the ASN.1 BER encoding. + * + * @remarks This generally starts with a PKCS \#7 Content structure, the + * SignedData bit is found a few levels down into this as per RFC. */ + RTLDRPROP_PKCS7_SIGNED_DATA, + /** Query whether code signature checks are enabled. */ + RTLDRPROP_SIGNATURE_CHECKS_ENFORCED, + + /** Number of import or needed modules. */ + RTLDRPROP_IMPORT_COUNT, + /** Import module by index (32-bit) stored in the buffer. */ + RTLDRPROP_IMPORT_MODULE, + + /** End of valid properties. */ + RTLDRPROP_END, + /** Blow the type up to 32 bits. */ + RTLDRPROP_32BIT_HACK = 0x7fffffff +} RTLDRPROP; + +/** + * Generic method for querying image properties. + * + * @returns IPRT status code. + * @retval VERR_NOT_SUPPORTED if the property query isn't supported (either all + * or that specific property). The caller must handle this result. + * @retval VERR_NOT_FOUND the property was not found in the module. The caller + * must also normally deal with this. + * @retval VERR_INVALID_FUNCTION if the function value is wrong. + * @retval VERR_INVALID_PARAMETER if the buffer size is wrong. + * @retval VERR_BUFFER_OVERFLOW if the function doesn't have a fixed size + * buffer and the buffer isn't big enough. Use RTLdrQueryPropEx. + * @retval VERR_INVALID_HANDLE if the handle is invalid. + * + * @param hLdrMod The module handle. + * @param enmLdrProp The property to query. + * @param pvBuf Pointer to the input / output buffer. In most cases + * it's only used for returning data. + * @param cbBuf The size of the buffer. + */ +RTDECL(int) RTLdrQueryProp(RTLDRMOD hLdrMod, RTLDRPROP enmProp, void *pvBuf, size_t cbBuf); + +/** + * Generic method for querying image properties, extended version. + * + * @returns IPRT status code. + * @retval VERR_NOT_SUPPORTED if the property query isn't supported (either all + * or that specific property). The caller must handle this result. + * @retval VERR_NOT_FOUND the property was not found in the module. The caller + * must also normally deal with this. + * @retval VERR_INVALID_FUNCTION if the function value is wrong. + * @retval VERR_INVALID_PARAMETER if the fixed buffer size is wrong. Correct + * size in @a *pcbRet. + * @retval VERR_BUFFER_OVERFLOW if the function doesn't have a fixed size + * buffer and the buffer isn't big enough. Correct size in @a *pcbRet. + * @retval VERR_INVALID_HANDLE if the handle is invalid. + * + * @param hLdrMod The module handle. + * @param enmLdrProp The property to query. + * @param pvBits Optional pointer to bits returned by + * RTLdrGetBits(). This can be utilized by some module + * interpreters to reduce memory consumption and file + * access. + * @param pvBuf Pointer to the input / output buffer. In most cases + * it's only used for returning data. + * @param cbBuf The size of the buffer. + * @param pcbRet Where to return the amount of data returned. On + * buffer size errors, this is set to the correct size. + * Optional. + */ +RTDECL(int) RTLdrQueryPropEx(RTLDRMOD hLdrMod, RTLDRPROP enmProp, void *pvBits, void *pvBuf, size_t cbBuf, size_t *pcbBuf); + + +/** + * Signature type, see FNRTLDRVALIDATESIGNEDDATA. + */ +typedef enum RTLDRSIGNATURETYPE +{ + /** Invalid value. */ + RTLDRSIGNATURETYPE_INVALID = 0, + /** A RTPKCS7CONTENTINFO structure w/ RTPKCS7SIGNEDDATA inside. + * It's parsed, so the whole binary ASN.1 representation can be found by + * using RTASN1CORE_GET_RAW_ASN1_PTR() and RTASN1CORE_GET_RAW_ASN1_SIZE(). */ + RTLDRSIGNATURETYPE_PKCS7_SIGNED_DATA, + /** End of valid values. */ + RTLDRSIGNATURETYPE_END, + /** Make sure the size is 32-bit. */ + RTLDRSIGNATURETYPE_32BIT_HACK = 0x7fffffff +} RTLDRSIGNATURETYPE; + +/** + * Callback used by RTLdrVerifySignature to verify the signature and associated + * certificates. + * + * @returns IPRT status code. + * @param hLdrMod The module handle. + * @param enmSignature The signature format. + * @param pvSignature The signature data. Format given by @a enmSignature. + * @param cbSignature The size of the buffer @a pvSignature points to. + * @param pErrInfo Pointer to an error info buffer, optional. + * @param pvUser User argument. + * + */ +typedef DECLCALLBACK(int) FNRTLDRVALIDATESIGNEDDATA(RTLDRMOD hLdrMod, RTLDRSIGNATURETYPE enmSignature, void const *pvSignature, size_t cbSignature, + PRTERRINFO pErrInfo, void *pvUser); +/** Pointer to a signature verification callback. */ +typedef FNRTLDRVALIDATESIGNEDDATA *PFNRTLDRVALIDATESIGNEDDATA; + +/** + * Verify the image signature. + * + * This may permform additional integrity checks on the image structures that + * was not done when opening the image. + * + * @returns IPRT status code. + * @retval VERR_LDRVI_NOT_SIGNED if not signed. + * + * @param hLdrMod The module handle. + * @param pfnCallback Callback that does the signature and certificate + * verficiation. + * @param pvUser User argument for the callback. + * @param pErrInfo Pointer to an error info buffer. Optional. + */ +RTDECL(int) RTLdrVerifySignature(RTLDRMOD hLdrMod, PFNRTLDRVALIDATESIGNEDDATA pfnCallback, void *pvUser, PRTERRINFO pErrInfo); + +/** + * Calculate the image hash according the image signing rules. + * + * @returns IPRT status code. + * @param hLdrMod The module handle. + * @param enmDigest Which kind of digest. + * @param pszDigest Where to store the image digest. + * @param cbDigest Size of the buffer @a pszDigest points at. + */ +RTDECL(int) RTLdrHashImage(RTLDRMOD hLdrMod, RTDIGESTTYPE enmDigest, char *pszDigest, size_t cbDigest); + RT_C_DECLS_END /** @} */ diff -Nru virtualbox-4.1.12-dfsg/include/iprt/list.h virtualbox-4.1.44-dfsg/include/iprt/list.h --- virtualbox-4.1.12-dfsg/include/iprt/list.h 2012-04-02 13:24:45.000000000 +0000 +++ virtualbox-4.1.44-dfsg/include/iprt/list.h 2015-11-11 15:06:03.000000000 +0000 @@ -56,6 +56,16 @@ /** Pointer to a list node pointer. */ typedef PRTLISTNODE *PPRTLISTNODE; +/** The anchor (head/tail) of a doubly linked list. + * + * @remarks Please use this instead of RTLISTNODE to indicate a list + * head/tail. It makes the code so much easier to read. Also, + * always mention the actual list node type(s) in the comment. */ +typedef RTLISTNODE RTLISTANCHOR; +/** Pointer to a doubly linked list anchor. */ +typedef RTLISTANCHOR *PRTLISTANCHOR; + + /** * Initialize a list. * @@ -173,6 +183,9 @@ */ #define RTListNodeIsDummy(pList, pNode, Type, Member) \ ( (pNode) == RT_FROM_MEMBER((pList), Type, Member) ) +/** @copydoc RTListNodeIsDummy */ +#define RTListNodeIsDummyCpp(pList, pNode, Type, Member) \ + ( (pNode) == RT_FROM_CPP_MEMBER((pList), Type, Member) ) /** * Checks if a list is empty. @@ -195,6 +208,9 @@ */ #define RTListNodeGetNext(pCurNode, Type, Member) \ RT_FROM_MEMBER((pCurNode)->pNext, Type, Member) +/** @copydoc RTListNodeGetNext */ +#define RTListNodeGetNextCpp(pCurNode, Type, Member) \ + RT_FROM_CPP_MEMBER((pCurNode)->pNext, Type, Member) /** * Returns the previous node in the list. @@ -207,6 +223,9 @@ */ #define RTListNodeGetPrev(pCurNode, Type, Member) \ RT_FROM_MEMBER((pCurNode)->pPrev, Type, Member) +/** @copydoc RTListNodeGetPrev */ +#define RTListNodeGetPrevCpp(pCurNode, Type, Member) \ + RT_FROM_CPP_MEMBER((pCurNode)->pPrev, Type, Member) /** * Returns the first element in the list (checks for empty list). @@ -220,6 +239,9 @@ */ #define RTListGetFirst(pList, Type, Member) \ (!RTListIsEmpty(pList) ? RTListNodeGetNext(pList, Type, Member) : NULL) +/** @copydoc RTListGetFirst */ +#define RTListGetFirstCpp(pList, Type, Member) \ + (!RTListIsEmpty(pList) ? RTListNodeGetNextCpp(pList, Type, Member) : NULL) /** * Returns the last element in the list (checks for empty list). @@ -233,6 +255,9 @@ */ #define RTListGetLast(pList, Type, Member) \ (!RTListIsEmpty(pList) ? RTListNodeGetPrev(pList, Type, Member) : NULL) +/** @copydoc RTListGetLast */ +#define RTListGetLastCpp(pList, Type, Member) \ + (!RTListIsEmpty(pList) ? RTListNodeGetPrevCpp(pList, Type, Member) : NULL) /** * Returns the next node in the list or NULL if the end has been reached. @@ -246,6 +271,9 @@ */ #define RTListGetNext(pList, pCurNode, Type, Member) \ ( (pCurNode)->Member.pNext != (pList) ? RT_FROM_MEMBER((pCurNode)->Member.pNext, Type, Member) : NULL ) +/** @copydoc RTListGetNext */ +#define RTListGetNextCpp(pList, pCurNode, Type, Member) \ + ( (pCurNode)->Member.pNext != (pList) ? RT_FROM_CPP_MEMBER((pCurNode)->Member.pNext, Type, Member) : NULL ) /** * Returns the previous node in the list or NULL if the start has been reached. @@ -259,6 +287,9 @@ */ #define RTListGetPrev(pList, pCurNode, Type, Member) \ ( (pCurNode)->Member.pPrev != (pList) ? RT_FROM_MEMBER((pCurNode)->Member.pPrev, Type, Member) : NULL ) +/** @copydoc RTListGetPrev */ +#define RTListGetPrevCpp(pList, pCurNode, Type, Member) \ + ( (pCurNode)->Member.pPrev != (pList) ? RT_FROM_CPP_MEMBER((pCurNode)->Member.pPrev, Type, Member) : NULL ) /** * Enumerate the list in head to tail order. @@ -272,6 +303,11 @@ for (pIterator = RTListNodeGetNext(pList, Type, Member); \ !RTListNodeIsDummy(pList, pIterator, Type, Member); \ pIterator = RT_FROM_MEMBER((pIterator)->Member.pNext, Type, Member) ) +/** @copydoc RTListForEach */ +#define RTListForEachCpp(pList, pIterator, Type, Member) \ + for (pIterator = RTListNodeGetNextCpp(pList, Type, Member); \ + !RTListNodeIsDummyCpp(pList, pIterator, Type, Member); \ + pIterator = RT_FROM_CPP_MEMBER((pIterator)->Member.pNext, Type, Member) ) /** @@ -291,6 +327,13 @@ !RTListNodeIsDummy(pList, pIterator, Type, Member); \ pIterator = pIterNext, \ pIterNext = RT_FROM_MEMBER((pIterator)->Member.pNext, Type, Member) ) +/** @copydoc RTListForEachSafe */ +#define RTListForEachSafeCpp(pList, pIterator, pIterNext, Type, Member) \ + for (pIterator = RTListNodeGetNextCpp(pList, Type, Member), \ + pIterNext = RT_FROM_CPP_MEMBER((pIterator)->Member.pNext, Type, Member); \ + !RTListNodeIsDummyCpp(pList, pIterator, Type, Member); \ + pIterator = pIterNext, \ + pIterNext = RT_FROM_CPP_MEMBER((pIterator)->Member.pNext, Type, Member) ) /** @@ -305,6 +348,11 @@ for (pIterator = RTListNodeGetPrev(pList, Type, Member); \ !RTListNodeIsDummy(pList, pIterator, Type, Member); \ pIterator = RT_FROM_MEMBER((pIterator)->Member.pPrev, Type, Member) ) +/** @copydoc RTListForEachReverse */ +#define RTListForEachReverseCpp(pList, pIterator, Type, Member) \ + for (pIterator = RTListNodeGetPrevCpp(pList, Type, Member); \ + !RTListNodeIsDummyCpp(pList, pIterator, Type, Member); \ + pIterator = RT_FROM_CPP_MEMBER((pIterator)->Member.pPrev, Type, Member) ) /** @@ -323,6 +371,13 @@ !RTListNodeIsDummy(pList, pIterator, Type, Member); \ pIterator = pIterPrev, \ pIterPrev = RT_FROM_MEMBER((pIterator)->Member.pPrev, Type, Member) ) +/** @copydoc RTListForEachReverseSafe */ +#define RTListForEachReverseSafeCpp(pList, pIterator, pIterPrev, Type, Member) \ + for (pIterator = RTListNodeGetPrevCpp(pList, Type, Member), \ + pIterPrev = RT_FROM_CPP_MEMBER((pIterator)->Member.pPrev, Type, Member); \ + !RTListNodeIsDummyCpp(pList, pIterator, Type, Member); \ + pIterator = pIterPrev, \ + pIterPrev = RT_FROM_CPP_MEMBER((pIterator)->Member.pPrev, Type, Member) ) /** diff -Nru virtualbox-4.1.12-dfsg/include/iprt/log.h virtualbox-4.1.44-dfsg/include/iprt/log.h --- virtualbox-4.1.12-dfsg/include/iprt/log.h 2012-04-02 13:24:45.000000000 +0000 +++ virtualbox-4.1.44-dfsg/include/iprt/log.h 2015-11-11 15:06:03.000000000 +0000 @@ -780,6 +780,9 @@ /** Shortcut to |LogFlowFunc ("LEAVE\n")|, marks the end of the function. */ #define LogFlowFuncLeave() LogFlowFunc(("LEAVE\n")) +/** Shortcut to |LogFlowFunc ("LEAVE: %Rrc\n")|, marks the end of the function. */ +#define LogFlowFuncLeaveRC(rc) LogFlowFunc(("LEAVE: %Rrc\n", (rc))) + /** Shortcut to |LogFlowThisFunc ("ENTER\n")|, marks the beginnig of the function. */ #define LogFlowThisFuncEnter() LogFlowThisFunc(("ENTER\n")) @@ -1795,6 +1798,16 @@ */ RTDECL(void) RTLogPrintfV(const char *pszFormat, va_list args); +/** + * Dumper vprintf-like function outputting to a logger. + * + * @param pvUser Pointer to the logger instance to use, NULL for + * default instance. + * @param pszFormat Format string. + * @param va Format arguments. + */ +RTDECL(void) RTLogDumpPrintfV(void *pvUser, const char *pszFormat, va_list va); + #ifndef DECLARED_FNRTSTROUTPUT /* duplicated in iprt/string.h */ #define DECLARED_FNRTSTROUTPUT diff -Nru virtualbox-4.1.12-dfsg/include/iprt/mangling.h virtualbox-4.1.44-dfsg/include/iprt/mangling.h --- virtualbox-4.1.12-dfsg/include/iprt/mangling.h 2012-04-02 13:24:45.000000000 +0000 +++ virtualbox-4.1.44-dfsg/include/iprt/mangling.h 2015-11-11 15:06:03.000000000 +0000 @@ -48,15 +48,15 @@ * Stable functions (alphabetical order): */ # define ASMAtomicCmpXchgExU64 RT_MANGLER(ASMAtomicCmpXchgExU64) /* not-some-systems... */ -# define ASMAtomicCmpXchgExU64_EndProc RT_MANGLER(ASMAtomicCmpXchgExU64_EndProc +# define ASMAtomicCmpXchgExU64_EndProc RT_MANGLER(ASMAtomicCmpXchgExU64_EndProc) # define ASMAtomicCmpXchgU64 RT_MANGLER(ASMAtomicCmpXchgU64) /* not-some-systems... */ -# define ASMAtomicCmpXchgU64_EndProc RT_MANGLER(ASMAtomicCmpXchgU64_EndProc +# define ASMAtomicCmpXchgU64_EndProc RT_MANGLER(ASMAtomicCmpXchgU64_EndProc) # define ASMAtomicReadU64 RT_MANGLER(ASMAtomicReadU64) /* not-some-systems... */ -# define ASMAtomicReadU64_EndProc RT_MANGLER(ASMAtomicReadU64_EndProc +# define ASMAtomicReadU64_EndProc RT_MANGLER(ASMAtomicReadU64_EndProc) # define ASMAtomicUoReadU64 RT_MANGLER(ASMAtomicUoReadU64) /* not-some-systems... */ -# define ASMAtomicUoReadU64_EndProc RT_MANGLER(ASMAtomicUoReadU64_EndProc +# define ASMAtomicUoReadU64_EndProc RT_MANGLER(ASMAtomicUoReadU64_EndProc) # define ASMAtomicXchgU64 RT_MANGLER(ASMAtomicXchgU64) /* not-some-systems... */ -# define ASMAtomicXchgU64_EndProc RT_MANGLER(ASMAtomicXchgU64_EndProc +# define ASMAtomicXchgU64_EndProc RT_MANGLER(ASMAtomicXchgU64_EndProc) # define RTAssertAreQuiet RT_MANGLER(RTAssertAreQuiet) # define RTAssertMayPanic RT_MANGLER(RTAssertMayPanic) # define RTAssertMsg1 RT_MANGLER(RTAssertMsg1) @@ -259,7 +259,9 @@ # define RTAvlULRemove RT_MANGLER(RTAvlULRemove) # define RTAvlULRemoveBestFit RT_MANGLER(RTAvlULRemoveBestFit) # define RTBase64Decode RT_MANGLER(RTBase64Decode) +# define RTBase64DecodeEx RT_MANGLER(RTBase64DecodeEx) # define RTBase64DecodedSize RT_MANGLER(RTBase64DecodedSize) +# define RTBase64DecodedSizeEx RT_MANGLER(RTBase64DecodedSizeEx) # define RTBase64Encode RT_MANGLER(RTBase64Encode) # define RTBase64EncodedLength RT_MANGLER(RTBase64EncodedLength) # define RTBldCfgCompiler RT_MANGLER(RTBldCfgCompiler) @@ -345,6 +347,7 @@ # define RTDbgModCreateDeferred RT_MANGLER(RTDbgModCreateDeferred) # define RTDbgModCreateFromImage RT_MANGLER(RTDbgModCreateFromImage) # define RTDbgModCreateFromMap RT_MANGLER(RTDbgModCreateFromMap) +# define RTDbgModCreateFromMachOImage RT_MANGLER(RTDbgModCreateFromMachOImage) # define RTDbgModGetTag RT_MANGLER(RTDbgModGetTag) # define RTDbgModImageSize RT_MANGLER(RTDbgModImageSize) # define RTDbgModLineAdd RT_MANGLER(RTDbgModLineAdd) @@ -459,6 +462,10 @@ # define RTFileAioReqPrepareWrite RT_MANGLER(RTFileAioReqPrepareWrite) # define RTFileChangeLock RT_MANGLER(RTFileChangeLock) # define RTFileClose RT_MANGLER(RTFileClose) +# define RTFileCompare RT_MANGLER(RTFileCompare) +# define RTFileCompareByHandles RT_MANGLER(RTFileCompareByHandles) +# define RTFileCompareByHandlesEx RT_MANGLER(RTFileCompareByHandlesEx) +# define RTFileCompareEx RT_MANGLER(RTFileCompareEx) # define RTFileCopy RT_MANGLER(RTFileCopy) # define RTFileCopyByHandles RT_MANGLER(RTFileCopyByHandles) # define RTFileCopyByHandlesEx RT_MANGLER(RTFileCopyByHandlesEx) @@ -555,13 +562,17 @@ # define RTLdrClose RT_MANGLER(RTLdrClose) # define RTLdrEnumSymbols RT_MANGLER(RTLdrEnumSymbols) # define RTLdrGetBits RT_MANGLER(RTLdrGetBits) +# define RTLdrGetFunction RT_MANGLER(RTLdrGetFunction) +# define RTLdrGetNativeHandle RT_MANGLER(RTLdrGetNativeHandle) # define RTLdrGetSuff RT_MANGLER(RTLdrGetSuff) # define RTLdrGetSymbol RT_MANGLER(RTLdrGetSymbol) # define RTLdrGetSymbolEx RT_MANGLER(RTLdrGetSymbolEx) +# define RTLdrGetSystemSymbol RT_MANGLER(RTLdrGetSystemSymbol) # define RTLdrIsLoadable RT_MANGLER(RTLdrIsLoadable) # define RTLdrLoad RT_MANGLER(RTLdrLoad) # define RTLdrLoadAppPriv RT_MANGLER(RTLdrLoadAppPriv) # define RTLdrLoadEx RT_MANGLER(RTLdrLoadEx) +# define RTLdrLoadSystem RT_MANGLER(RTLdrLoadSystem) # define RTLdrOpen RT_MANGLER(RTLdrOpen) # define RTLdrOpenkLdr RT_MANGLER(RTLdrOpenkLdr) # define RTLdrRelocate RT_MANGLER(RTLdrRelocate) @@ -672,6 +683,7 @@ # define RTLogLoggerV RT_MANGLER(RTLogLoggerV) # define RTLogPrintf RT_MANGLER(RTLogPrintf) # define RTLogPrintfV RT_MANGLER(RTLogPrintfV) +# define RTLogDumpPrintfV RT_MANGLER(RTLogDumpPrintfV) # define RTLogRelDefaultInstance RT_MANGLER(RTLogRelDefaultInstance) # define RTLogRelLogger RT_MANGLER(RTLogRelLogger) # define RTLogRelLoggerV RT_MANGLER(RTLogRelLoggerV) @@ -879,6 +891,8 @@ # define RTPathExt RT_MANGLER(RTPathExt) # define RTPathFilename RT_MANGLER(RTPathFilename) # define RTPathGetCurrent RT_MANGLER(RTPathGetCurrent) +# define RTPathGetCurrentDrive RT_MANGLER(RTPathGetCurrentDrive) +# define RTPathGetCurrentOnDrive RT_MANGLER(RTPathGetCurrentOnDrive) # define RTPathGetMode RT_MANGLER(RTPathGetMode) # define RTPathHaveExt RT_MANGLER(RTPathHaveExt) # define RTPathHavePath RT_MANGLER(RTPathHavePath) @@ -940,6 +954,9 @@ # define RTProcGetExecutablePath RT_MANGLER(RTProcGetExecutablePath) # define RTProcGetPriority RT_MANGLER(RTProcGetPriority) # define RTProcIsRunningByName RT_MANGLER(RTProcIsRunningByName) +# define RTProcQueryParent RT_MANGLER(RTProcQueryParent) +# define RTProcQueryUsername RT_MANGLER(RTProcQueryUsername) +# define RTProcQueryUsernameA RT_MANGLER(RTProcQueryUsernameA) # define RTProcSelf RT_MANGLER(RTProcSelf) # define RTProcSetPriority RT_MANGLER(RTProcSetPriority) # define RTProcShortName RT_MANGLER(RTProcShortName) @@ -950,7 +967,6 @@ # define RTR0Init RT_MANGLER(RTR0Init) /* r0drv */ # define RTR0MemAreKrnlAndUsrDifferent RT_MANGLER(RTR0MemAreKrnlAndUsrDifferent) /* r0drv */ # define RTR0MemExecDonate RT_MANGLER(RTR0MemExecDonate) /* r0drv */ -# define RTR0MemExecInit RT_MANGLER(RTR0MemExecInit) /* r0drv */ # define RTR0MemKernelIsValidAddr RT_MANGLER(RTR0MemKernelIsValidAddr) /* r0drv */ # define RTR0MemObjAddress RT_MANGLER(RTR0MemObjAddress) /* r0drv */ # define RTR0MemObjAddressR3 RT_MANGLER(RTR0MemObjAddressR3) /* r0drv */ @@ -1134,18 +1150,46 @@ # define RTSha1Init RT_MANGLER(RTSha1Init) # define RTSha1ToString RT_MANGLER(RTSha1ToString) # define RTSha1Update RT_MANGLER(RTSha1Update) +# define RTSha224 RT_MANGLER(RTSha224) +# define RTSha224Final RT_MANGLER(RTSha224Final) +# define RTSha224FromString RT_MANGLER(RTSha224FromString) +# define RTSha224Init RT_MANGLER(RTSha224Init) +# define RTSha224ToString RT_MANGLER(RTSha224ToString) +# define RTSha224Update RT_MANGLER(RTSha224Update) +# define RTSha224Digest RT_MANGLER(RTSha224Digest) +# define RTSha224DigestFromFile RT_MANGLER(RTSha224DigestFromFile) # define RTSha256 RT_MANGLER(RTSha256) # define RTSha256Final RT_MANGLER(RTSha256Final) # define RTSha256FromString RT_MANGLER(RTSha256FromString) # define RTSha256Init RT_MANGLER(RTSha256Init) # define RTSha256ToString RT_MANGLER(RTSha256ToString) # define RTSha256Update RT_MANGLER(RTSha256Update) +# define RTSha256Digest RT_MANGLER(RTSha256Digest) +# define RTSha256DigestFromFile RT_MANGLER(RTSha256DigestFromFile) +# define RTSha384 RT_MANGLER(RTSha384) +# define RTSha384Final RT_MANGLER(RTSha384Final) +# define RTSha384FromString RT_MANGLER(RTSha384FromString) +# define RTSha384Init RT_MANGLER(RTSha384Init) +# define RTSha384ToString RT_MANGLER(RTSha384ToString) +# define RTSha384Update RT_MANGLER(RTSha384Update) # define RTSha512 RT_MANGLER(RTSha512) # define RTSha512Final RT_MANGLER(RTSha512Final) # define RTSha512FromString RT_MANGLER(RTSha512FromString) # define RTSha512Init RT_MANGLER(RTSha512Init) # define RTSha512ToString RT_MANGLER(RTSha512ToString) # define RTSha512Update RT_MANGLER(RTSha512Update) +# define RTSha512t224 RT_MANGLER(RTSha512t224) +# define RTSha512t224Final RT_MANGLER(RTSha512t224Final) +# define RTSha512t224FromString RT_MANGLER(RTSha512t224FromString) +# define RTSha512t224Init RT_MANGLER(RTSha512t224Init) +# define RTSha512t224ToString RT_MANGLER(RTSha512t224ToString) +# define RTSha512t224Update RT_MANGLER(RTSha512t224Update) +# define RTSha512t256 RT_MANGLER(RTSha512t256) +# define RTSha512t256Final RT_MANGLER(RTSha512t256Final) +# define RTSha512t256FromString RT_MANGLER(RTSha512t256FromString) +# define RTSha512t256Init RT_MANGLER(RTSha512t256Init) +# define RTSha512t256ToString RT_MANGLER(RTSha512t256ToString) +# define RTSha512t256Update RT_MANGLER(RTSha512t256Update) # define RTSocketClose RT_MANGLER(RTSocketClose) # define RTSocketFromNative RT_MANGLER(RTSocketFromNative) # define RTSocketGetLocalAddress RT_MANGLER(RTSocketGetLocalAddress) @@ -1235,6 +1279,9 @@ # define RTStrHash1N RT_MANGLER(RTStrHash1N) # define RTStrICmp RT_MANGLER(RTStrICmp) # define RTStrIStr RT_MANGLER(RTStrIStr) +# define RTStrIsCaseFoldable RT_MANGLER(RTStrIsCaseFoldable) +# define RTStrIsLowerCased RT_MANGLER(RTStrIsLowerCased) +# define RTStrIsUpperCased RT_MANGLER(RTStrIsUpperCased) # define RTStrIsValidEncoding RT_MANGLER(RTStrIsValidEncoding) # define RTStrmClearError RT_MANGLER(RTStrmClearError) # define RTStrmClose RT_MANGLER(RTStrmClose) @@ -1247,6 +1294,7 @@ # define RTStrmOpenFV RT_MANGLER(RTStrmOpenFV) # define RTStrmPrintf RT_MANGLER(RTStrmPrintf) # define RTStrmPrintfV RT_MANGLER(RTStrmPrintfV) +# define RTStrmDumpPrintfV RT_MANGLER(RTStrmDumpPrintfV) # define RTStrmPutCh RT_MANGLER(RTStrmPutCh) # define RTStrmPutStr RT_MANGLER(RTStrmPutStr) # define RTStrmReadEx RT_MANGLER(RTStrmReadEx) @@ -1557,17 +1605,20 @@ # define RTUdpServerShutdown RT_MANGLER(RTUdpServerShutdown) # define RTUdpWrite RT_MANGLER(RTUdpWrite) # define RTUniFree RT_MANGLER(RTUniFree) +# define RTUtf16AllocTag RT_MANGLER(RTUtf16AllocTag) # define RTUtf16CalcLatin1Len RT_MANGLER(RTUtf16CalcLatin1Len) # define RTUtf16CalcLatin1LenEx RT_MANGLER(RTUtf16CalcLatin1LenEx) # define RTUtf16CalcUtf8Len RT_MANGLER(RTUtf16CalcUtf8Len) # define RTUtf16CalcUtf8LenEx RT_MANGLER(RTUtf16CalcUtf8LenEx) # define RTUtf16Cmp RT_MANGLER(RTUtf16Cmp) +# define RTUtf16CmpAscii RT_MANGLER(RTUtf16CmpAscii) # define RTUtf16DupExTag RT_MANGLER(RTUtf16DupExTag) # define RTUtf16DupTag RT_MANGLER(RTUtf16DupTag) # define RTUtf16Free RT_MANGLER(RTUtf16Free) # define RTUtf16GetCpExInternal RT_MANGLER(RTUtf16GetCpExInternal) # define RTUtf16GetCpInternal RT_MANGLER(RTUtf16GetCpInternal) # define RTUtf16ICmp RT_MANGLER(RTUtf16ICmp) +# define RTUtf16IsValidEncoding RT_MANGLER(RTUtf16IsValidEncoding) # define RTUtf16Len RT_MANGLER(RTUtf16Len) # define RTUtf16LocaleICmp RT_MANGLER(RTUtf16LocaleICmp) # define RTUtf16PutCpInternal RT_MANGLER(RTUtf16PutCpInternal) @@ -1577,6 +1628,8 @@ # define RTUtf16ToUpper RT_MANGLER(RTUtf16ToUpper) # define RTUtf16ToUtf8ExTag RT_MANGLER(RTUtf16ToUtf8ExTag) # define RTUtf16ToUtf8Tag RT_MANGLER(RTUtf16ToUtf8Tag) +# define RTUtf16ValidateEncoding RT_MANGLER(RTUtf16ValidateEncoding) +# define RTUtf16ValidateEncodingEx RT_MANGLER(RTUtf16ValidateEncodingEx) # define RTUuidClear RT_MANGLER(RTUuidClear) # define RTUuidCompare RT_MANGLER(RTUuidCompare) # define RTUuidCompare2Strs RT_MANGLER(RTUuidCompare2Strs) @@ -1683,6 +1736,956 @@ # define RTZipTarCmd RT_MANGLER(RTZipTarCmd) # define RTZipTarFsStreamFromIoStream RT_MANGLER(RTZipTarFsStreamFromIoStream) + +/* sort/merge into the above later: */ +# define RTAsn1ContentAllocZ RT_MANGLER(RTAsn1ContentAllocZ) +# define RTAsn1ContentDup RT_MANGLER(RTAsn1ContentDup) +# define RTAsn1ContentFree RT_MANGLER(RTAsn1ContentFree) +# define RTAsn1ContentReallocZ RT_MANGLER(RTAsn1ContentReallocZ) +# define RTAsn1ContextTagN_Clone RT_MANGLER(RTAsn1ContextTagN_Clone) +# define RTAsn1ContextTagN_Init RT_MANGLER(RTAsn1ContextTagN_Init) +# define RTAsn1Dummy_InitEx RT_MANGLER(RTAsn1Dummy_InitEx) +# define RTAsn1MemAllocZ RT_MANGLER(RTAsn1MemAllocZ) +# define RTAsn1MemDup RT_MANGLER(RTAsn1MemDup) +# define RTAsn1MemFree RT_MANGLER(RTAsn1MemFree) +# define RTAsn1MemGrowArray RT_MANGLER(RTAsn1MemGrowArray) +# define RTAsn1MemInitAllocation RT_MANGLER(RTAsn1MemInitAllocation) +# define RTAsn1SeqOfCore_Clone RT_MANGLER(RTAsn1SeqOfCore_Clone) +# define RTAsn1SeqOfCore_Init RT_MANGLER(RTAsn1SeqOfCore_Init) +# define RTAsn1SequenceCore_Clone RT_MANGLER(RTAsn1SequenceCore_Clone) +# define RTAsn1SequenceCore_Init RT_MANGLER(RTAsn1SequenceCore_Init) +# define RTAsn1SetCore_Clone RT_MANGLER(RTAsn1SetCore_Clone) +# define RTAsn1SetCore_Init RT_MANGLER(RTAsn1SetCore_Init) +# define RTAsn1SetOfCore_Clone RT_MANGLER(RTAsn1SetOfCore_Clone) +# define RTAsn1SetOfCore_Init RT_MANGLER(RTAsn1SetOfCore_Init) +# define RTAsn1VtCheckSanity RT_MANGLER(RTAsn1VtCheckSanity) +# define RTAsn1VtClone RT_MANGLER(RTAsn1VtClone) +# define RTAsn1VtCompare RT_MANGLER(RTAsn1VtCompare) +# define RTAsn1VtDeepEnum RT_MANGLER(RTAsn1VtDeepEnum) +# define RTAsn1VtDelete RT_MANGLER(RTAsn1VtDelete) +# define RTAsn1CursorCheckEnd RT_MANGLER(RTAsn1CursorCheckEnd) +# define RTAsn1CursorGetBitString RT_MANGLER(RTAsn1CursorGetBitString) +# define RTAsn1CursorGetBitStringEx RT_MANGLER(RTAsn1CursorGetBitStringEx) +# define RTAsn1CursorGetBmpString RT_MANGLER(RTAsn1CursorGetBmpString) +# define RTAsn1CursorGetBoolean RT_MANGLER(RTAsn1CursorGetBoolean) +# define RTAsn1CursorGetContextTagNCursor RT_MANGLER(RTAsn1CursorGetContextTagNCursor) +# define RTAsn1CursorGetCore RT_MANGLER(RTAsn1CursorGetCore) +# define RTAsn1CursorGetDynType RT_MANGLER(RTAsn1CursorGetDynType) +# define RTAsn1CursorGetIa5String RT_MANGLER(RTAsn1CursorGetIa5String) +# define RTAsn1CursorGetInteger RT_MANGLER(RTAsn1CursorGetInteger) +# define RTAsn1CursorGetNull RT_MANGLER(RTAsn1CursorGetNull) +# define RTAsn1CursorGetObjId RT_MANGLER(RTAsn1CursorGetObjId) +# define RTAsn1CursorGetOctetString RT_MANGLER(RTAsn1CursorGetOctetString) +# define RTAsn1CursorGetSequenceCursor RT_MANGLER(RTAsn1CursorGetSequenceCursor) +# define RTAsn1CursorGetSetCursor RT_MANGLER(RTAsn1CursorGetSetCursor) +# define RTAsn1CursorGetString RT_MANGLER(RTAsn1CursorGetString) +# define RTAsn1CursorGetTime RT_MANGLER(RTAsn1CursorGetTime) +# define RTAsn1CursorGetUtf8String RT_MANGLER(RTAsn1CursorGetUtf8String) +# define RTAsn1CursorInitAllocation RT_MANGLER(RTAsn1CursorInitAllocation) +# define RTAsn1CursorInitPrimary RT_MANGLER(RTAsn1CursorInitPrimary) +# define RTAsn1CursorInitSubFromCore RT_MANGLER(RTAsn1CursorInitSubFromCore) +# define RTAsn1CursorIsNextEx RT_MANGLER(RTAsn1CursorIsNextEx) +# define RTAsn1CursorMatchTagClassFlagsEx RT_MANGLER(RTAsn1CursorMatchTagClassFlagsEx) +# define RTAsn1CursorPeek RT_MANGLER(RTAsn1CursorPeek) +# define RTAsn1CursorReadHdr RT_MANGLER(RTAsn1CursorReadHdr) +# define RTAsn1CursorSetInfo RT_MANGLER(RTAsn1CursorSetInfo) +# define RTAsn1CursorSetInfoV RT_MANGLER(RTAsn1CursorSetInfoV) +# define RTAsn1Dump RT_MANGLER(RTAsn1Dump) +# define RTAsn1EncodePrepare RT_MANGLER(RTAsn1EncodePrepare) +# define RTAsn1EncodeRecalcHdrSize RT_MANGLER(RTAsn1EncodeRecalcHdrSize) +# define RTAsn1EncodeWrite RT_MANGLER(RTAsn1EncodeWrite) +# define RTAsnEncodeWriteHeader RT_MANGLER(RTAsnEncodeWriteHeader) +# define RTAsn1BitString_CheckSanity RT_MANGLER(RTAsn1BitString_CheckSanity) +# define RTAsn1BitString_Clone RT_MANGLER(RTAsn1BitString_Clone) +# define RTAsn1BitString_Compare RT_MANGLER(RTAsn1BitString_Compare) +# define RTAsn1BitString_Delete RT_MANGLER(RTAsn1BitString_Delete) +# define RTAsn1BitString_Enum RT_MANGLER(RTAsn1BitString_Enum) +# define RTAsn1BitString_GetAsUInt64 RT_MANGLER(RTAsn1BitString_GetAsUInt64) +# define RTAsn1BitString_Init RT_MANGLER(RTAsn1BitString_Init) +# define RTAsn1SeqOfBitStrings_CheckSanity RT_MANGLER(RTAsn1SeqOfBitStrings_CheckSanity) +# define RTAsn1SeqOfBitStrings_Clone RT_MANGLER(RTAsn1SeqOfBitStrings_Clone) +# define RTAsn1SeqOfBitStrings_Compare RT_MANGLER(RTAsn1SeqOfBitStrings_Compare) +# define RTAsn1SeqOfBitStrings_Delete RT_MANGLER(RTAsn1SeqOfBitStrings_Delete) +# define RTAsn1SeqOfBitStrings_Enum RT_MANGLER(RTAsn1SeqOfBitStrings_Enum) +# define RTAsn1SeqOfBitStrings_Init RT_MANGLER(RTAsn1SeqOfBitStrings_Init) +# define RTAsn1SetOfBitStrings_CheckSanity RT_MANGLER(RTAsn1SetOfBitStrings_CheckSanity) +# define RTAsn1SetOfBitStrings_Clone RT_MANGLER(RTAsn1SetOfBitStrings_Clone) +# define RTAsn1SetOfBitStrings_Compare RT_MANGLER(RTAsn1SetOfBitStrings_Compare) +# define RTAsn1SetOfBitStrings_Delete RT_MANGLER(RTAsn1SetOfBitStrings_Delete) +# define RTAsn1SetOfBitStrings_Enum RT_MANGLER(RTAsn1SetOfBitStrings_Enum) +# define RTAsn1SetOfBitStrings_Init RT_MANGLER(RTAsn1SetOfBitStrings_Init) +# define RTAsn1BitString_DecodeAsn1 RT_MANGLER(RTAsn1BitString_DecodeAsn1) +# define RTAsn1BitString_DecodeAsn1Ex RT_MANGLER(RTAsn1BitString_DecodeAsn1Ex) +# define RTAsn1SeqOfBitStrings_DecodeAsn1 RT_MANGLER(RTAsn1SeqOfBitStrings_DecodeAsn1) +# define RTAsn1SetOfBitStrings_DecodeAsn1 RT_MANGLER(RTAsn1SetOfBitStrings_DecodeAsn1) +# define RTAsn1Boolean_CheckSanity RT_MANGLER(RTAsn1Boolean_CheckSanity) +# define RTAsn1Boolean_Clone RT_MANGLER(RTAsn1Boolean_Clone) +# define RTAsn1Boolean_Compare RT_MANGLER(RTAsn1Boolean_Compare) +# define RTAsn1Boolean_Delete RT_MANGLER(RTAsn1Boolean_Delete) +# define RTAsn1Boolean_Enum RT_MANGLER(RTAsn1Boolean_Enum) +# define RTAsn1Boolean_Init RT_MANGLER(RTAsn1Boolean_Init) +# define RTAsn1Boolean_InitDefault RT_MANGLER(RTAsn1Boolean_InitDefault) +# define RTAsn1Boolean_Set RT_MANGLER(RTAsn1Boolean_Set) +# define RTAsn1SeqOfBooleans_CheckSanity RT_MANGLER(RTAsn1SeqOfBooleans_CheckSanity) +# define RTAsn1SeqOfBooleans_Clone RT_MANGLER(RTAsn1SeqOfBooleans_Clone) +# define RTAsn1SeqOfBooleans_Compare RT_MANGLER(RTAsn1SeqOfBooleans_Compare) +# define RTAsn1SeqOfBooleans_Delete RT_MANGLER(RTAsn1SeqOfBooleans_Delete) +# define RTAsn1SeqOfBooleans_Enum RT_MANGLER(RTAsn1SeqOfBooleans_Enum) +# define RTAsn1SeqOfBooleans_Init RT_MANGLER(RTAsn1SeqOfBooleans_Init) +# define RTAsn1SetOfBooleans_CheckSanity RT_MANGLER(RTAsn1SetOfBooleans_CheckSanity) +# define RTAsn1SetOfBooleans_Clone RT_MANGLER(RTAsn1SetOfBooleans_Clone) +# define RTAsn1SetOfBooleans_Compare RT_MANGLER(RTAsn1SetOfBooleans_Compare) +# define RTAsn1SetOfBooleans_Delete RT_MANGLER(RTAsn1SetOfBooleans_Delete) +# define RTAsn1SetOfBooleans_Enum RT_MANGLER(RTAsn1SetOfBooleans_Enum) +# define RTAsn1SetOfBooleans_Init RT_MANGLER(RTAsn1SetOfBooleans_Init) +# define RTAsn1Boolean_DecodeAsn1 RT_MANGLER(RTAsn1Boolean_DecodeAsn1) +# define RTAsn1SeqOfBooleans_DecodeAsn1 RT_MANGLER(RTAsn1SeqOfBooleans_DecodeAsn1) +# define RTAsn1SetOfBooleans_DecodeAsn1 RT_MANGLER(RTAsn1SetOfBooleans_DecodeAsn1) +# define RTAsn1Core_ChangeTag RT_MANGLER(RTAsn1Core_ChangeTag) +# define RTAsn1Core_CheckSanity RT_MANGLER(RTAsn1Core_CheckSanity) +# define RTAsn1Core_Clone RT_MANGLER(RTAsn1Core_Clone) +# define RTAsn1Core_CloneContent RT_MANGLER(RTAsn1Core_CloneContent) +# define RTAsn1Core_CloneNoContent RT_MANGLER(RTAsn1Core_CloneNoContent) +# define RTAsn1Core_Compare RT_MANGLER(RTAsn1Core_Compare) +# define RTAsn1Core_CompareEx RT_MANGLER(RTAsn1Core_CompareEx) +# define RTAsn1Core_Delete RT_MANGLER(RTAsn1Core_Delete) +# define RTAsn1Core_Enum RT_MANGLER(RTAsn1Core_Enum) +# define RTAsn1Core_Init RT_MANGLER(RTAsn1Core_Init) +# define RTAsn1Core_InitDefault RT_MANGLER(RTAsn1Core_InitDefault) +# define RTAsn1Core_InitEx RT_MANGLER(RTAsn1Core_InitEx) +# define RTAsn1Core_ResetImplict RT_MANGLER(RTAsn1Core_ResetImplict) +# define RTAsn1Core_SetTagAndFlags RT_MANGLER(RTAsn1Core_SetTagAndFlags) +# define RTAsn1SeqOfCores_CheckSanity RT_MANGLER(RTAsn1SeqOfCores_CheckSanity) +# define RTAsn1SeqOfCores_Clone RT_MANGLER(RTAsn1SeqOfCores_Clone) +# define RTAsn1SeqOfCores_Compare RT_MANGLER(RTAsn1SeqOfCores_Compare) +# define RTAsn1SeqOfCores_Delete RT_MANGLER(RTAsn1SeqOfCores_Delete) +# define RTAsn1SeqOfCores_Enum RT_MANGLER(RTAsn1SeqOfCores_Enum) +# define RTAsn1SeqOfCores_Init RT_MANGLER(RTAsn1SeqOfCores_Init) +# define RTAsn1SetOfCores_CheckSanity RT_MANGLER(RTAsn1SetOfCores_CheckSanity) +# define RTAsn1SetOfCores_Clone RT_MANGLER(RTAsn1SetOfCores_Clone) +# define RTAsn1SetOfCores_Compare RT_MANGLER(RTAsn1SetOfCores_Compare) +# define RTAsn1SetOfCores_Delete RT_MANGLER(RTAsn1SetOfCores_Delete) +# define RTAsn1SetOfCores_Enum RT_MANGLER(RTAsn1SetOfCores_Enum) +# define RTAsn1SetOfCores_Init RT_MANGLER(RTAsn1SetOfCores_Init) +# define RTAsn1Core_DecodeAsn1 RT_MANGLER(RTAsn1Core_DecodeAsn1) +# define RTAsn1SeqOfCores_DecodeAsn1 RT_MANGLER(RTAsn1SeqOfCores_DecodeAsn1) +# define RTAsn1SetOfCores_DecodeAsn1 RT_MANGLER(RTAsn1SetOfCores_DecodeAsn1) +# define RTAsn1DynType_CheckSanity RT_MANGLER(RTAsn1DynType_CheckSanity) +# define RTAsn1DynType_Clone RT_MANGLER(RTAsn1DynType_Clone) +# define RTAsn1DynType_Compare RT_MANGLER(RTAsn1DynType_Compare) +# define RTAsn1DynType_Delete RT_MANGLER(RTAsn1DynType_Delete) +# define RTAsn1DynType_Enum RT_MANGLER(RTAsn1DynType_Enum) +# define RTAsn1DynType_Init RT_MANGLER(RTAsn1DynType_Init) +# define RTAsn1DynType_DecodeAsn1 RT_MANGLER(RTAsn1DynType_DecodeAsn1) +# define RTAsn1Integer_CheckSanity RT_MANGLER(RTAsn1Integer_CheckSanity) +# define RTAsn1Integer_Clone RT_MANGLER(RTAsn1Integer_Clone) +# define RTAsn1Integer_Compare RT_MANGLER(RTAsn1Integer_Compare) +# define RTAsn1Integer_Delete RT_MANGLER(RTAsn1Integer_Delete) +# define RTAsn1Integer_Enum RT_MANGLER(RTAsn1Integer_Enum) +# define RTAsn1Integer_FromBigNum RT_MANGLER(RTAsn1Integer_FromBigNum) +# define RTAsn1Integer_Init RT_MANGLER(RTAsn1Integer_Init) +# define RTAsn1Integer_InitDefault RT_MANGLER(RTAsn1Integer_InitDefault) +# define RTAsn1Integer_InitU64 RT_MANGLER(RTAsn1Integer_InitU64) +# define RTAsn1Integer_ToBigNum RT_MANGLER(RTAsn1Integer_ToBigNum) +# define RTAsn1Integer_UnsignedCompare RT_MANGLER(RTAsn1Integer_UnsignedCompare) +# define RTAsn1Integer_UnsignedCompareWithU32 RT_MANGLER(RTAsn1Integer_UnsignedCompareWithU32) +# define RTAsn1Integer_UnsignedCompareWithU64 RT_MANGLER(RTAsn1Integer_UnsignedCompareWithU64) +# define RTAsn1Integer_UnsignedLastBit RT_MANGLER(RTAsn1Integer_UnsignedLastBit) +# define RTAsn1SeqOfIntegers_CheckSanity RT_MANGLER(RTAsn1SeqOfIntegers_CheckSanity) +# define RTAsn1SeqOfIntegers_Clone RT_MANGLER(RTAsn1SeqOfIntegers_Clone) +# define RTAsn1SeqOfIntegers_Compare RT_MANGLER(RTAsn1SeqOfIntegers_Compare) +# define RTAsn1SeqOfIntegers_Delete RT_MANGLER(RTAsn1SeqOfIntegers_Delete) +# define RTAsn1SeqOfIntegers_Enum RT_MANGLER(RTAsn1SeqOfIntegers_Enum) +# define RTAsn1SeqOfIntegers_Init RT_MANGLER(RTAsn1SeqOfIntegers_Init) +# define RTAsn1SetOfIntegers_CheckSanity RT_MANGLER(RTAsn1SetOfIntegers_CheckSanity) +# define RTAsn1SetOfIntegers_Clone RT_MANGLER(RTAsn1SetOfIntegers_Clone) +# define RTAsn1SetOfIntegers_Compare RT_MANGLER(RTAsn1SetOfIntegers_Compare) +# define RTAsn1SetOfIntegers_Delete RT_MANGLER(RTAsn1SetOfIntegers_Delete) +# define RTAsn1SetOfIntegers_Enum RT_MANGLER(RTAsn1SetOfIntegers_Enum) +# define RTAsn1SetOfIntegers_Init RT_MANGLER(RTAsn1SetOfIntegers_Init) +# define RTAsn1Integer_DecodeAsn1 RT_MANGLER(RTAsn1Integer_DecodeAsn1) +# define RTAsn1SeqOfIntegers_DecodeAsn1 RT_MANGLER(RTAsn1SeqOfIntegers_DecodeAsn1) +# define RTAsn1SetOfIntegers_DecodeAsn1 RT_MANGLER(RTAsn1SetOfIntegers_DecodeAsn1) +# define RTAsn1Null_CheckSanity RT_MANGLER(RTAsn1Null_CheckSanity) +# define RTAsn1Null_Clone RT_MANGLER(RTAsn1Null_Clone) +# define RTAsn1Null_Compare RT_MANGLER(RTAsn1Null_Compare) +# define RTAsn1Null_Delete RT_MANGLER(RTAsn1Null_Delete) +# define RTAsn1Null_Enum RT_MANGLER(RTAsn1Null_Enum) +# define RTAsn1Null_Init RT_MANGLER(RTAsn1Null_Init) +# define RTAsn1Null_DecodeAsn1 RT_MANGLER(RTAsn1Null_DecodeAsn1) +# define RTAsn1ObjIdCountComponents RT_MANGLER(RTAsn1ObjIdCountComponents) +# define RTAsn1ObjIdGetComponentsAsUInt32 RT_MANGLER(RTAsn1ObjIdGetComponentsAsUInt32) +# define RTAsn1ObjIdGetLastComponentsAsUInt32 RT_MANGLER(RTAsn1ObjIdGetLastComponentsAsUInt32) +# define RTAsn1ObjId_CheckSanity RT_MANGLER(RTAsn1ObjId_CheckSanity) +# define RTAsn1ObjId_Clone RT_MANGLER(RTAsn1ObjId_Clone) +# define RTAsn1ObjId_Compare RT_MANGLER(RTAsn1ObjId_Compare) +# define RTAsn1ObjId_CompareWithString RT_MANGLER(RTAsn1ObjId_CompareWithString) +# define RTAsn1ObjId_Delete RT_MANGLER(RTAsn1ObjId_Delete) +# define RTAsn1ObjId_Enum RT_MANGLER(RTAsn1ObjId_Enum) +# define RTAsn1ObjId_Init RT_MANGLER(RTAsn1ObjId_Init) +# define RTAsn1ObjId_InitFromString RT_MANGLER(RTAsn1ObjId_InitFromString) +# define RTAsn1ObjId_StartsWith RT_MANGLER(RTAsn1ObjId_StartsWith) +# define RTAsn1SeqOfObjIds_CheckSanity RT_MANGLER(RTAsn1SeqOfObjIds_CheckSanity) +# define RTAsn1SeqOfObjIds_Clone RT_MANGLER(RTAsn1SeqOfObjIds_Clone) +# define RTAsn1SeqOfObjIds_Compare RT_MANGLER(RTAsn1SeqOfObjIds_Compare) +# define RTAsn1SeqOfObjIds_Delete RT_MANGLER(RTAsn1SeqOfObjIds_Delete) +# define RTAsn1SeqOfObjIds_Enum RT_MANGLER(RTAsn1SeqOfObjIds_Enum) +# define RTAsn1SeqOfObjIds_Init RT_MANGLER(RTAsn1SeqOfObjIds_Init) +# define RTAsn1SetOfObjIds_CheckSanity RT_MANGLER(RTAsn1SetOfObjIds_CheckSanity) +# define RTAsn1SetOfObjIds_Clone RT_MANGLER(RTAsn1SetOfObjIds_Clone) +# define RTAsn1SetOfObjIds_Compare RT_MANGLER(RTAsn1SetOfObjIds_Compare) +# define RTAsn1SetOfObjIds_Delete RT_MANGLER(RTAsn1SetOfObjIds_Delete) +# define RTAsn1SetOfObjIds_Enum RT_MANGLER(RTAsn1SetOfObjIds_Enum) +# define RTAsn1SetOfObjIds_Init RT_MANGLER(RTAsn1SetOfObjIds_Init) +# define RTAsn1ObjId_DecodeAsn1 RT_MANGLER(RTAsn1ObjId_DecodeAsn1) +# define RTAsn1SeqOfObjIds_DecodeAsn1 RT_MANGLER(RTAsn1SeqOfObjIds_DecodeAsn1) +# define RTAsn1SetOfObjIds_DecodeAsn1 RT_MANGLER(RTAsn1SetOfObjIds_DecodeAsn1) +# define RTAsn1OctetString_CheckSanity RT_MANGLER(RTAsn1OctetString_CheckSanity) +# define RTAsn1OctetString_Clone RT_MANGLER(RTAsn1OctetString_Clone) +# define RTAsn1OctetString_Compare RT_MANGLER(RTAsn1OctetString_Compare) +# define RTAsn1OctetString_Delete RT_MANGLER(RTAsn1OctetString_Delete) +# define RTAsn1OctetString_Enum RT_MANGLER(RTAsn1OctetString_Enum) +# define RTAsn1OctetString_Init RT_MANGLER(RTAsn1OctetString_Init) +# define RTAsn1SeqOfOctetStrings_CheckSanity RT_MANGLER(RTAsn1SeqOfOctetStrings_CheckSanity) +# define RTAsn1SeqOfOctetStrings_Clone RT_MANGLER(RTAsn1SeqOfOctetStrings_Clone) +# define RTAsn1SeqOfOctetStrings_Compare RT_MANGLER(RTAsn1SeqOfOctetStrings_Compare) +# define RTAsn1SeqOfOctetStrings_Delete RT_MANGLER(RTAsn1SeqOfOctetStrings_Delete) +# define RTAsn1SeqOfOctetStrings_Enum RT_MANGLER(RTAsn1SeqOfOctetStrings_Enum) +# define RTAsn1SeqOfOctetStrings_Init RT_MANGLER(RTAsn1SeqOfOctetStrings_Init) +# define RTAsn1SetOfOctetStrings_CheckSanity RT_MANGLER(RTAsn1SetOfOctetStrings_CheckSanity) +# define RTAsn1SetOfOctetStrings_Clone RT_MANGLER(RTAsn1SetOfOctetStrings_Clone) +# define RTAsn1SetOfOctetStrings_Compare RT_MANGLER(RTAsn1SetOfOctetStrings_Compare) +# define RTAsn1SetOfOctetStrings_Delete RT_MANGLER(RTAsn1SetOfOctetStrings_Delete) +# define RTAsn1SetOfOctetStrings_Enum RT_MANGLER(RTAsn1SetOfOctetStrings_Enum) +# define RTAsn1SetOfOctetStrings_Init RT_MANGLER(RTAsn1SetOfOctetStrings_Init) +# define RTAsn1OctetString_DecodeAsn1 RT_MANGLER(RTAsn1OctetString_DecodeAsn1) +# define RTAsn1SeqOfOctetStrings_DecodeAsn1 RT_MANGLER(RTAsn1SeqOfOctetStrings_DecodeAsn1) +# define RTAsn1SetOfOctetStrings_DecodeAsn1 RT_MANGLER(RTAsn1SetOfOctetStrings_DecodeAsn1) +# define RTAsn1BmpString_CheckSanity RT_MANGLER(RTAsn1BmpString_CheckSanity) +# define RTAsn1BmpString_Clone RT_MANGLER(RTAsn1BmpString_Clone) +# define RTAsn1BmpString_Compare RT_MANGLER(RTAsn1BmpString_Compare) +# define RTAsn1BmpString_Delete RT_MANGLER(RTAsn1BmpString_Delete) +# define RTAsn1BmpString_Enum RT_MANGLER(RTAsn1BmpString_Enum) +# define RTAsn1BmpString_Init RT_MANGLER(RTAsn1BmpString_Init) +# define RTAsn1GeneralString_CheckSanity RT_MANGLER(RTAsn1GeneralString_CheckSanity) +# define RTAsn1GeneralString_Clone RT_MANGLER(RTAsn1GeneralString_Clone) +# define RTAsn1GeneralString_Compare RT_MANGLER(RTAsn1GeneralString_Compare) +# define RTAsn1GeneralString_Delete RT_MANGLER(RTAsn1GeneralString_Delete) +# define RTAsn1GeneralString_Enum RT_MANGLER(RTAsn1GeneralString_Enum) +# define RTAsn1GeneralString_Init RT_MANGLER(RTAsn1GeneralString_Init) +# define RTAsn1GraphicString_CheckSanity RT_MANGLER(RTAsn1GraphicString_CheckSanity) +# define RTAsn1GraphicString_Clone RT_MANGLER(RTAsn1GraphicString_Clone) +# define RTAsn1GraphicString_Compare RT_MANGLER(RTAsn1GraphicString_Compare) +# define RTAsn1GraphicString_Delete RT_MANGLER(RTAsn1GraphicString_Delete) +# define RTAsn1GraphicString_Enum RT_MANGLER(RTAsn1GraphicString_Enum) +# define RTAsn1GraphicString_Init RT_MANGLER(RTAsn1GraphicString_Init) +# define RTAsn1Ia5String_CheckSanity RT_MANGLER(RTAsn1Ia5String_CheckSanity) +# define RTAsn1Ia5String_Clone RT_MANGLER(RTAsn1Ia5String_Clone) +# define RTAsn1Ia5String_Compare RT_MANGLER(RTAsn1Ia5String_Compare) +# define RTAsn1Ia5String_Delete RT_MANGLER(RTAsn1Ia5String_Delete) +# define RTAsn1Ia5String_Enum RT_MANGLER(RTAsn1Ia5String_Enum) +# define RTAsn1Ia5String_Init RT_MANGLER(RTAsn1Ia5String_Init) +# define RTAsn1NumericString_CheckSanity RT_MANGLER(RTAsn1NumericString_CheckSanity) +# define RTAsn1NumericString_Clone RT_MANGLER(RTAsn1NumericString_Clone) +# define RTAsn1NumericString_Compare RT_MANGLER(RTAsn1NumericString_Compare) +# define RTAsn1NumericString_Delete RT_MANGLER(RTAsn1NumericString_Delete) +# define RTAsn1NumericString_Enum RT_MANGLER(RTAsn1NumericString_Enum) +# define RTAsn1NumericString_Init RT_MANGLER(RTAsn1NumericString_Init) +# define RTAsn1PrintableString_CheckSanity RT_MANGLER(RTAsn1PrintableString_CheckSanity) +# define RTAsn1PrintableString_Clone RT_MANGLER(RTAsn1PrintableString_Clone) +# define RTAsn1PrintableString_Compare RT_MANGLER(RTAsn1PrintableString_Compare) +# define RTAsn1PrintableString_Delete RT_MANGLER(RTAsn1PrintableString_Delete) +# define RTAsn1PrintableString_Enum RT_MANGLER(RTAsn1PrintableString_Enum) +# define RTAsn1PrintableString_Init RT_MANGLER(RTAsn1PrintableString_Init) +# define RTAsn1SeqOfStrings_CheckSanity RT_MANGLER(RTAsn1SeqOfStrings_CheckSanity) +# define RTAsn1SeqOfStrings_Clone RT_MANGLER(RTAsn1SeqOfStrings_Clone) +# define RTAsn1SeqOfStrings_Compare RT_MANGLER(RTAsn1SeqOfStrings_Compare) +# define RTAsn1SeqOfStrings_Delete RT_MANGLER(RTAsn1SeqOfStrings_Delete) +# define RTAsn1SeqOfStrings_Enum RT_MANGLER(RTAsn1SeqOfStrings_Enum) +# define RTAsn1SeqOfStrings_Init RT_MANGLER(RTAsn1SeqOfStrings_Init) +# define RTAsn1SetOfStrings_CheckSanity RT_MANGLER(RTAsn1SetOfStrings_CheckSanity) +# define RTAsn1SetOfStrings_Clone RT_MANGLER(RTAsn1SetOfStrings_Clone) +# define RTAsn1SetOfStrings_Compare RT_MANGLER(RTAsn1SetOfStrings_Compare) +# define RTAsn1SetOfStrings_Delete RT_MANGLER(RTAsn1SetOfStrings_Delete) +# define RTAsn1SetOfStrings_Enum RT_MANGLER(RTAsn1SetOfStrings_Enum) +# define RTAsn1SetOfStrings_Init RT_MANGLER(RTAsn1SetOfStrings_Init) +# define RTAsn1String_CheckSanity RT_MANGLER(RTAsn1String_CheckSanity) +# define RTAsn1String_Clone RT_MANGLER(RTAsn1String_Clone) +# define RTAsn1String_Compare RT_MANGLER(RTAsn1String_Compare) +# define RTAsn1String_CompareEx RT_MANGLER(RTAsn1String_CompareEx) +# define RTAsn1String_CompareWithString RT_MANGLER(RTAsn1String_CompareWithString) +# define RTAsn1String_Delete RT_MANGLER(RTAsn1String_Delete) +# define RTAsn1String_Enum RT_MANGLER(RTAsn1String_Enum) +# define RTAsn1String_Init RT_MANGLER(RTAsn1String_Init) +# define RTAsn1String_InitEx RT_MANGLER(RTAsn1String_InitEx) +# define RTAsn1String_InitWithValue RT_MANGLER(RTAsn1String_InitWithValue) +# define RTAsn1String_QueryUtf8 RT_MANGLER(RTAsn1String_QueryUtf8) +# define RTAsn1String_QueryUtf8Len RT_MANGLER(RTAsn1String_QueryUtf8Len) +# define RTAsn1String_RecodeAsUtf8 RT_MANGLER(RTAsn1String_RecodeAsUtf8) +# define RTAsn1T61String_CheckSanity RT_MANGLER(RTAsn1T61String_CheckSanity) +# define RTAsn1T61String_Clone RT_MANGLER(RTAsn1T61String_Clone) +# define RTAsn1T61String_Compare RT_MANGLER(RTAsn1T61String_Compare) +# define RTAsn1T61String_Delete RT_MANGLER(RTAsn1T61String_Delete) +# define RTAsn1T61String_Enum RT_MANGLER(RTAsn1T61String_Enum) +# define RTAsn1T61String_Init RT_MANGLER(RTAsn1T61String_Init) +# define RTAsn1UniversalString_CheckSanity RT_MANGLER(RTAsn1UniversalString_CheckSanity) +# define RTAsn1UniversalString_Clone RT_MANGLER(RTAsn1UniversalString_Clone) +# define RTAsn1UniversalString_Compare RT_MANGLER(RTAsn1UniversalString_Compare) +# define RTAsn1UniversalString_Delete RT_MANGLER(RTAsn1UniversalString_Delete) +# define RTAsn1UniversalString_Enum RT_MANGLER(RTAsn1UniversalString_Enum) +# define RTAsn1UniversalString_Init RT_MANGLER(RTAsn1UniversalString_Init) +# define RTAsn1Utf8String_CheckSanity RT_MANGLER(RTAsn1Utf8String_CheckSanity) +# define RTAsn1Utf8String_Clone RT_MANGLER(RTAsn1Utf8String_Clone) +# define RTAsn1Utf8String_Compare RT_MANGLER(RTAsn1Utf8String_Compare) +# define RTAsn1Utf8String_Delete RT_MANGLER(RTAsn1Utf8String_Delete) +# define RTAsn1Utf8String_Enum RT_MANGLER(RTAsn1Utf8String_Enum) +# define RTAsn1Utf8String_Init RT_MANGLER(RTAsn1Utf8String_Init) +# define RTAsn1VisibleString_CheckSanity RT_MANGLER(RTAsn1VisibleString_CheckSanity) +# define RTAsn1VisibleString_Clone RT_MANGLER(RTAsn1VisibleString_Clone) +# define RTAsn1VisibleString_Compare RT_MANGLER(RTAsn1VisibleString_Compare) +# define RTAsn1VisibleString_Delete RT_MANGLER(RTAsn1VisibleString_Delete) +# define RTAsn1VisibleString_Enum RT_MANGLER(RTAsn1VisibleString_Enum) +# define RTAsn1VisibleString_Init RT_MANGLER(RTAsn1VisibleString_Init) +# define RTAsn1BmpString_DecodeAsn1 RT_MANGLER(RTAsn1BmpString_DecodeAsn1) +# define RTAsn1GeneralString_DecodeAsn1 RT_MANGLER(RTAsn1GeneralString_DecodeAsn1) +# define RTAsn1GraphicString_DecodeAsn1 RT_MANGLER(RTAsn1GraphicString_DecodeAsn1) +# define RTAsn1Ia5String_DecodeAsn1 RT_MANGLER(RTAsn1Ia5String_DecodeAsn1) +# define RTAsn1NumericString_DecodeAsn1 RT_MANGLER(RTAsn1NumericString_DecodeAsn1) +# define RTAsn1PrintableString_DecodeAsn1 RT_MANGLER(RTAsn1PrintableString_DecodeAsn1) +# define RTAsn1SeqOfStrings_DecodeAsn1 RT_MANGLER(RTAsn1SeqOfStrings_DecodeAsn1) +# define RTAsn1SetOfStrings_DecodeAsn1 RT_MANGLER(RTAsn1SetOfStrings_DecodeAsn1) +# define RTAsn1String_DecodeAsn1 RT_MANGLER(RTAsn1String_DecodeAsn1) +# define RTAsn1T61String_DecodeAsn1 RT_MANGLER(RTAsn1T61String_DecodeAsn1) +# define RTAsn1UniversalString_DecodeAsn1 RT_MANGLER(RTAsn1UniversalString_DecodeAsn1) +# define RTAsn1Utf8String_DecodeAsn1 RT_MANGLER(RTAsn1Utf8String_DecodeAsn1) +# define RTAsn1VisibleString_DecodeAsn1 RT_MANGLER(RTAsn1VisibleString_DecodeAsn1) +# define RTAsn1GeneralizedTime_CheckSanity RT_MANGLER(RTAsn1GeneralizedTime_CheckSanity) +# define RTAsn1GeneralizedTime_Clone RT_MANGLER(RTAsn1GeneralizedTime_Clone) +# define RTAsn1GeneralizedTime_Compare RT_MANGLER(RTAsn1GeneralizedTime_Compare) +# define RTAsn1GeneralizedTime_Delete RT_MANGLER(RTAsn1GeneralizedTime_Delete) +# define RTAsn1GeneralizedTime_Enum RT_MANGLER(RTAsn1GeneralizedTime_Enum) +# define RTAsn1GeneralizedTime_Init RT_MANGLER(RTAsn1GeneralizedTime_Init) +# define RTAsn1SeqOfTimes_CheckSanity RT_MANGLER(RTAsn1SeqOfTimes_CheckSanity) +# define RTAsn1SeqOfTimes_Clone RT_MANGLER(RTAsn1SeqOfTimes_Clone) +# define RTAsn1SeqOfTimes_Compare RT_MANGLER(RTAsn1SeqOfTimes_Compare) +# define RTAsn1SeqOfTimes_Delete RT_MANGLER(RTAsn1SeqOfTimes_Delete) +# define RTAsn1SeqOfTimes_Enum RT_MANGLER(RTAsn1SeqOfTimes_Enum) +# define RTAsn1SeqOfTimes_Init RT_MANGLER(RTAsn1SeqOfTimes_Init) +# define RTAsn1SetOfTimes_CheckSanity RT_MANGLER(RTAsn1SetOfTimes_CheckSanity) +# define RTAsn1SetOfTimes_Clone RT_MANGLER(RTAsn1SetOfTimes_Clone) +# define RTAsn1SetOfTimes_Compare RT_MANGLER(RTAsn1SetOfTimes_Compare) +# define RTAsn1SetOfTimes_Delete RT_MANGLER(RTAsn1SetOfTimes_Delete) +# define RTAsn1SetOfTimes_Enum RT_MANGLER(RTAsn1SetOfTimes_Enum) +# define RTAsn1SetOfTimes_Init RT_MANGLER(RTAsn1SetOfTimes_Init) +# define RTAsn1Time_CheckSanity RT_MANGLER(RTAsn1Time_CheckSanity) +# define RTAsn1Time_Clone RT_MANGLER(RTAsn1Time_Clone) +# define RTAsn1Time_Compare RT_MANGLER(RTAsn1Time_Compare) +# define RTAsn1Time_CompareWithTimeSpec RT_MANGLER(RTAsn1Time_CompareWithTimeSpec) +# define RTAsn1Time_Delete RT_MANGLER(RTAsn1Time_Delete) +# define RTAsn1Time_Enum RT_MANGLER(RTAsn1Time_Enum) +# define RTAsn1Time_Init RT_MANGLER(RTAsn1Time_Init) +# define RTAsn1UtcTime_CheckSanity RT_MANGLER(RTAsn1UtcTime_CheckSanity) +# define RTAsn1UtcTime_Clone RT_MANGLER(RTAsn1UtcTime_Clone) +# define RTAsn1UtcTime_Compare RT_MANGLER(RTAsn1UtcTime_Compare) +# define RTAsn1UtcTime_Delete RT_MANGLER(RTAsn1UtcTime_Delete) +# define RTAsn1UtcTime_Enum RT_MANGLER(RTAsn1UtcTime_Enum) +# define RTAsn1UtcTime_Init RT_MANGLER(RTAsn1UtcTime_Init) +# define RTAsn1GeneralizedTime_DecodeAsn1 RT_MANGLER(RTAsn1GeneralizedTime_DecodeAsn1) +# define RTAsn1SeqOfTimes_DecodeAsn1 RT_MANGLER(RTAsn1SeqOfTimes_DecodeAsn1) +# define RTAsn1SetOfTimes_DecodeAsn1 RT_MANGLER(RTAsn1SetOfTimes_DecodeAsn1) +# define RTAsn1Time_DecodeAsn1 RT_MANGLER(RTAsn1Time_DecodeAsn1) +# define RTAsn1UtcTime_DecodeAsn1 RT_MANGLER(RTAsn1UtcTime_DecodeAsn1) +# define RTMd2 RT_MANGLER(RTMd2) +# define RTMd2Final RT_MANGLER(RTMd2Final) +# define RTMd2Init RT_MANGLER(RTMd2Init) +# define RTMd2Update RT_MANGLER(RTMd2Update) +# define RTMd2FromString RT_MANGLER(RTMd2FromString) +# define RTMd2ToString RT_MANGLER(RTMd2ToString) +# define RTCrDigestClone RT_MANGLER(RTCrDigestClone) +# define RTCrDigestCreate RT_MANGLER(RTCrDigestCreate) +# define RTCrDigestFinal RT_MANGLER(RTCrDigestFinal) +# define RTCrDigestGetConsumedSize RT_MANGLER(RTCrDigestGetConsumedSize) +# define RTCrDigestGetHash RT_MANGLER(RTCrDigestGetHash) +# define RTCrDigestGetHashSize RT_MANGLER(RTCrDigestGetHashSize) +# define RTCrDigestGetType RT_MANGLER(RTCrDigestGetType) +# define RTCrDigestIsFinalized RT_MANGLER(RTCrDigestIsFinalized) +# define RTCrDigestMatch RT_MANGLER(RTCrDigestMatch) +# define RTCrDigestRelease RT_MANGLER(RTCrDigestRelease) +# define RTCrDigestReset RT_MANGLER(RTCrDigestReset) +# define RTCrDigestRetain RT_MANGLER(RTCrDigestRetain) +# define RTCrDigestUpdate RT_MANGLER(RTCrDigestUpdate) +# define RTCrDigestCreateByObjId RT_MANGLER(RTCrDigestCreateByObjId) +# define RTCrDigestCreateByObjIdString RT_MANGLER(RTCrDigestCreateByObjIdString) +# define RTCrDigestCreateByType RT_MANGLER(RTCrDigestCreateByType) +# define RTCrDigestFindByObjId RT_MANGLER(RTCrDigestFindByObjId) +# define RTCrDigestFindByObjIdString RT_MANGLER(RTCrDigestFindByObjIdString) +# define RTCrDigestFindByType RT_MANGLER(RTCrDigestFindByType) +# define RTCrRsaDigestInfo_DecodeAsn1 RT_MANGLER(RTCrRsaDigestInfo_DecodeAsn1) +# define RTCrRsaOtherPrimeInfo_DecodeAsn1 RT_MANGLER(RTCrRsaOtherPrimeInfo_DecodeAsn1) +# define RTCrRsaOtherPrimeInfos_DecodeAsn1 RT_MANGLER(RTCrRsaOtherPrimeInfos_DecodeAsn1) +# define RTCrRsaPrivateKey_DecodeAsn1 RT_MANGLER(RTCrRsaPrivateKey_DecodeAsn1) +# define RTCrRsaPublicKey_DecodeAsn1 RT_MANGLER(RTCrRsaPublicKey_DecodeAsn1) +# define RTCrRsaDigestInfo_Compare RT_MANGLER(RTCrRsaDigestInfo_Compare) +# define RTCrRsaDigestInfo_Delete RT_MANGLER(RTCrRsaDigestInfo_Delete) +# define RTCrRsaDigestInfo_Enum RT_MANGLER(RTCrRsaDigestInfo_Enum) +# define RTCrRsaOtherPrimeInfo_Compare RT_MANGLER(RTCrRsaOtherPrimeInfo_Compare) +# define RTCrRsaOtherPrimeInfo_Delete RT_MANGLER(RTCrRsaOtherPrimeInfo_Delete) +# define RTCrRsaOtherPrimeInfo_Enum RT_MANGLER(RTCrRsaOtherPrimeInfo_Enum) +# define RTCrRsaOtherPrimeInfos_Compare RT_MANGLER(RTCrRsaOtherPrimeInfos_Compare) +# define RTCrRsaOtherPrimeInfos_Delete RT_MANGLER(RTCrRsaOtherPrimeInfos_Delete) +# define RTCrRsaOtherPrimeInfos_Enum RT_MANGLER(RTCrRsaOtherPrimeInfos_Enum) +# define RTCrRsaPrivateKey_Compare RT_MANGLER(RTCrRsaPrivateKey_Compare) +# define RTCrRsaPrivateKey_Delete RT_MANGLER(RTCrRsaPrivateKey_Delete) +# define RTCrRsaPrivateKey_Enum RT_MANGLER(RTCrRsaPrivateKey_Enum) +# define RTCrRsaPublicKey_Compare RT_MANGLER(RTCrRsaPublicKey_Compare) +# define RTCrRsaPublicKey_Delete RT_MANGLER(RTCrRsaPublicKey_Delete) +# define RTCrRsaPublicKey_Enum RT_MANGLER(RTCrRsaPublicKey_Enum) +# define RTCrRsaDigestInfo_Clone RT_MANGLER(RTCrRsaDigestInfo_Clone) +# define RTCrRsaDigestInfo_Init RT_MANGLER(RTCrRsaDigestInfo_Init) +# define RTCrRsaOtherPrimeInfo_Clone RT_MANGLER(RTCrRsaOtherPrimeInfo_Clone) +# define RTCrRsaOtherPrimeInfo_Init RT_MANGLER(RTCrRsaOtherPrimeInfo_Init) +# define RTCrRsaOtherPrimeInfos_Clone RT_MANGLER(RTCrRsaOtherPrimeInfos_Clone) +# define RTCrRsaOtherPrimeInfos_Init RT_MANGLER(RTCrRsaOtherPrimeInfos_Init) +# define RTCrRsaPrivateKey_Clone RT_MANGLER(RTCrRsaPrivateKey_Clone) +# define RTCrRsaPrivateKey_Init RT_MANGLER(RTCrRsaPrivateKey_Init) +# define RTCrRsaPublicKey_Clone RT_MANGLER(RTCrRsaPublicKey_Clone) +# define RTCrRsaPublicKey_Init RT_MANGLER(RTCrRsaPublicKey_Init) +# define RTCrRsaDigestInfo_CheckSanity RT_MANGLER(RTCrRsaDigestInfo_CheckSanity) +# define RTCrRsaOtherPrimeInfo_CheckSanity RT_MANGLER(RTCrRsaOtherPrimeInfo_CheckSanity) +# define RTCrRsaOtherPrimeInfos_CheckSanity RT_MANGLER(RTCrRsaOtherPrimeInfos_CheckSanity) +# define RTCrRsaPrivateKey_CheckSanity RT_MANGLER(RTCrRsaPrivateKey_CheckSanity) +# define RTCrRsaPublicKey_CheckSanity RT_MANGLER(RTCrRsaPublicKey_CheckSanity) +# define RTCrPemFreeSections RT_MANGLER(RTCrPemFreeSections) +# define RTCrPemReadFile RT_MANGLER(RTCrPemReadFile) +# define RTCrPkcs7Attribute_DecodeAsn1 RT_MANGLER(RTCrPkcs7Attribute_DecodeAsn1) +# define RTCrPkcs7Attributes_DecodeAsn1 RT_MANGLER(RTCrPkcs7Attributes_DecodeAsn1) +# define RTCrPkcs7ContentInfo_DecodeAsn1 RT_MANGLER(RTCrPkcs7ContentInfo_DecodeAsn1) +# define RTCrPkcs7DigestInfo_DecodeAsn1 RT_MANGLER(RTCrPkcs7DigestInfo_DecodeAsn1) +# define RTCrPkcs7IssuerAndSerialNumber_DecodeAsn1 RT_MANGLER(RTCrPkcs7IssuerAndSerialNumber_DecodeAsn1) +# define RTCrPkcs7SignedData_DecodeAsn1 RT_MANGLER(RTCrPkcs7SignedData_DecodeAsn1) +# define RTCrPkcs7SignerInfo_DecodeAsn1 RT_MANGLER(RTCrPkcs7SignerInfo_DecodeAsn1) +# define RTCrPkcs7SignerInfos_DecodeAsn1 RT_MANGLER(RTCrPkcs7SignerInfos_DecodeAsn1) +# define RTCrPkcs7Attribute_Compare RT_MANGLER(RTCrPkcs7Attribute_Compare) +# define RTCrPkcs7Attribute_Delete RT_MANGLER(RTCrPkcs7Attribute_Delete) +# define RTCrPkcs7Attribute_Enum RT_MANGLER(RTCrPkcs7Attribute_Enum) +# define RTCrPkcs7Attributes_Compare RT_MANGLER(RTCrPkcs7Attributes_Compare) +# define RTCrPkcs7Attributes_Delete RT_MANGLER(RTCrPkcs7Attributes_Delete) +# define RTCrPkcs7Attributes_Enum RT_MANGLER(RTCrPkcs7Attributes_Enum) +# define RTCrPkcs7ContentInfo_Compare RT_MANGLER(RTCrPkcs7ContentInfo_Compare) +# define RTCrPkcs7ContentInfo_Delete RT_MANGLER(RTCrPkcs7ContentInfo_Delete) +# define RTCrPkcs7ContentInfo_Enum RT_MANGLER(RTCrPkcs7ContentInfo_Enum) +# define RTCrPkcs7ContentInfo_IsSignedData RT_MANGLER(RTCrPkcs7ContentInfo_IsSignedData) +# define RTCrPkcs7DigestInfo_Compare RT_MANGLER(RTCrPkcs7DigestInfo_Compare) +# define RTCrPkcs7DigestInfo_Delete RT_MANGLER(RTCrPkcs7DigestInfo_Delete) +# define RTCrPkcs7DigestInfo_Enum RT_MANGLER(RTCrPkcs7DigestInfo_Enum) +# define RTCrPkcs7IssuerAndSerialNumber_Compare RT_MANGLER(RTCrPkcs7IssuerAndSerialNumber_Compare) +# define RTCrPkcs7IssuerAndSerialNumber_Delete RT_MANGLER(RTCrPkcs7IssuerAndSerialNumber_Delete) +# define RTCrPkcs7IssuerAndSerialNumber_Enum RT_MANGLER(RTCrPkcs7IssuerAndSerialNumber_Enum) +# define RTCrPkcs7SignedData_Compare RT_MANGLER(RTCrPkcs7SignedData_Compare) +# define RTCrPkcs7SignedData_Delete RT_MANGLER(RTCrPkcs7SignedData_Delete) +# define RTCrPkcs7SignedData_Enum RT_MANGLER(RTCrPkcs7SignedData_Enum) +# define RTCrPkcs7SignerInfo_Compare RT_MANGLER(RTCrPkcs7SignerInfo_Compare) +# define RTCrPkcs7SignerInfo_Delete RT_MANGLER(RTCrPkcs7SignerInfo_Delete) +# define RTCrPkcs7SignerInfo_Enum RT_MANGLER(RTCrPkcs7SignerInfo_Enum) +# define RTCrPkcs7SignerInfo_GetSigningTime RT_MANGLER(RTCrPkcs7SignerInfo_GetSigningTime) +# define RTCrPkcs7SignerInfo_GetMsTimestamp RT_MANGLER(RTCrPkcs7SignerInfo_GetMsTimestamp) +# define RTCrPkcs7SignerInfos_Compare RT_MANGLER(RTCrPkcs7SignerInfos_Compare) +# define RTCrPkcs7SignerInfos_Delete RT_MANGLER(RTCrPkcs7SignerInfos_Delete) +# define RTCrPkcs7SignerInfos_Enum RT_MANGLER(RTCrPkcs7SignerInfos_Enum) +# define RTCrPkcs7Attribute_Clone RT_MANGLER(RTCrPkcs7Attribute_Clone) +# define RTCrPkcs7Attribute_Init RT_MANGLER(RTCrPkcs7Attribute_Init) +# define RTCrPkcs7Attributes_Clone RT_MANGLER(RTCrPkcs7Attributes_Clone) +# define RTCrPkcs7Attributes_Init RT_MANGLER(RTCrPkcs7Attributes_Init) +# define RTCrPkcs7ContentInfo_Clone RT_MANGLER(RTCrPkcs7ContentInfo_Clone) +# define RTCrPkcs7ContentInfo_Init RT_MANGLER(RTCrPkcs7ContentInfo_Init) +# define RTCrPkcs7DigestInfo_Clone RT_MANGLER(RTCrPkcs7DigestInfo_Clone) +# define RTCrPkcs7DigestInfo_Init RT_MANGLER(RTCrPkcs7DigestInfo_Init) +# define RTCrPkcs7IssuerAndSerialNumber_Clone RT_MANGLER(RTCrPkcs7IssuerAndSerialNumber_Clone) +# define RTCrPkcs7IssuerAndSerialNumber_Init RT_MANGLER(RTCrPkcs7IssuerAndSerialNumber_Init) +# define RTCrPkcs7SignedData_Clone RT_MANGLER(RTCrPkcs7SignedData_Clone) +# define RTCrPkcs7SignedData_Init RT_MANGLER(RTCrPkcs7SignedData_Init) +# define RTCrPkcs7SignerInfo_Clone RT_MANGLER(RTCrPkcs7SignerInfo_Clone) +# define RTCrPkcs7SignerInfo_Init RT_MANGLER(RTCrPkcs7SignerInfo_Init) +# define RTCrPkcs7SignerInfos_Clone RT_MANGLER(RTCrPkcs7SignerInfos_Clone) +# define RTCrPkcs7SignerInfos_Init RT_MANGLER(RTCrPkcs7SignerInfos_Init) +# define RTCrPkcs7Attribute_CheckSanity RT_MANGLER(RTCrPkcs7Attribute_CheckSanity) +# define RTCrPkcs7Attributes_CheckSanity RT_MANGLER(RTCrPkcs7Attributes_CheckSanity) +# define RTCrPkcs7ContentInfo_CheckSanity RT_MANGLER(RTCrPkcs7ContentInfo_CheckSanity) +# define RTCrPkcs7DigestInfo_CheckSanity RT_MANGLER(RTCrPkcs7DigestInfo_CheckSanity) +# define RTCrPkcs7IssuerAndSerialNumber_CheckSanity RT_MANGLER(RTCrPkcs7IssuerAndSerialNumber_CheckSanity) +# define RTCrPkcs7SignedData_CheckSanity RT_MANGLER(RTCrPkcs7SignedData_CheckSanity) +# define RTCrPkcs7SignerInfo_CheckSanity RT_MANGLER(RTCrPkcs7SignerInfo_CheckSanity) +# define RTCrPkcs7SignerInfos_CheckSanity RT_MANGLER(RTCrPkcs7SignerInfos_CheckSanity) +# define RTCrPkcs7VerifyCertCallbackCodeSigning RT_MANGLER(RTCrPkcs7VerifyCertCallbackCodeSigning) +# define RTCrPkcs7VerifyCertCallbackDefault RT_MANGLER(RTCrPkcs7VerifyCertCallbackDefault) +# define RTCrPkcs7VerifySignedData RT_MANGLER(RTCrPkcs7VerifySignedData) +# define RTCrPkcs7Cert_CheckSanity RT_MANGLER(RTCrPkcs7Cert_CheckSanity) +# define RTCrPkcs7Cert_Clone RT_MANGLER(RTCrPkcs7Cert_Clone) +# define RTCrPkcs7Cert_Compare RT_MANGLER(RTCrPkcs7Cert_Compare) +# define RTCrPkcs7Cert_DecodeAsn1 RT_MANGLER(RTCrPkcs7Cert_DecodeAsn1) +# define RTCrPkcs7Cert_Delete RT_MANGLER(RTCrPkcs7Cert_Delete) +# define RTCrPkcs7Cert_Enum RT_MANGLER(RTCrPkcs7Cert_Enum) +# define RTCrPkcs7Cert_Init RT_MANGLER(RTCrPkcs7Cert_Init) +# define RTCrPkcs7SetOfCerts_CheckSanity RT_MANGLER(RTCrPkcs7SetOfCerts_CheckSanity) +# define RTCrPkcs7SetOfCerts_Clone RT_MANGLER(RTCrPkcs7SetOfCerts_Clone) +# define RTCrPkcs7SetOfCerts_Compare RT_MANGLER(RTCrPkcs7SetOfCerts_Compare) +# define RTCrPkcs7SetOfCerts_DecodeAsn1 RT_MANGLER(RTCrPkcs7SetOfCerts_DecodeAsn1) +# define RTCrPkcs7SetOfCerts_Delete RT_MANGLER(RTCrPkcs7SetOfCerts_Delete) +# define RTCrPkcs7SetOfCerts_Enum RT_MANGLER(RTCrPkcs7SetOfCerts_Enum) +# define RTCrPkcs7SetOfCerts_Init RT_MANGLER(RTCrPkcs7SetOfCerts_Init) +# define RTCrPkcs7SetOfCerts_FindX509ByIssuerAndSerialNumber RT_MANGLER(RTCrPkcs7SetOfCerts_FindX509ByIssuerAndSerialNumber) +# define RTCrPkcs7SetOfContentInfos_CheckSanity RT_MANGLER(RTCrPkcs7SetOfContentInfos_CheckSanity) +# define RTCrPkcs7SetOfContentInfos_Clone RT_MANGLER(RTCrPkcs7SetOfContentInfos_Clone) +# define RTCrPkcs7SetOfContentInfos_Compare RT_MANGLER(RTCrPkcs7SetOfContentInfos_Compare) +# define RTCrPkcs7SetOfContentInfos_DecodeAsn1 RT_MANGLER(RTCrPkcs7SetOfContentInfos_DecodeAsn1) +# define RTCrPkcs7SetOfContentInfos_Delete RT_MANGLER(RTCrPkcs7SetOfContentInfos_Delete) +# define RTCrPkcs7SetOfContentInfos_Enum RT_MANGLER(RTCrPkcs7SetOfContentInfos_Enum) +# define RTCrPkcs7SetOfContentInfos_Init RT_MANGLER(RTCrPkcs7SetOfContentInfos_Init) +# define RTCrPkcs7SetOfSignedData_CheckSanity RT_MANGLER(RTCrPkcs7SetOfSignedData_CheckSanity) +# define RTCrPkcs7SetOfSignedData_Clone RT_MANGLER(RTCrPkcs7SetOfSignedData_Clone) +# define RTCrPkcs7SetOfSignedData_Compare RT_MANGLER(RTCrPkcs7SetOfSignedData_Compare) +# define RTCrPkcs7SetOfSignedData_DecodeAsn1 RT_MANGLER(RTCrPkcs7SetOfSignedData_DecodeAsn1) +# define RTCrPkcs7SetOfSignedData_Delete RT_MANGLER(RTCrPkcs7SetOfSignedData_Delete) +# define RTCrPkcs7SetOfSignedData_Enum RT_MANGLER(RTCrPkcs7SetOfSignedData_Enum) +# define RTCrPkcs7SetOfSignedData_Init RT_MANGLER(RTCrPkcs7SetOfSignedData_Init) +# define RTCrPkixSignatureCreateByObjId RT_MANGLER(RTCrPkixSignatureCreateByObjId) +# define RTCrPkixSignatureCreateByObjIdString RT_MANGLER(RTCrPkixSignatureCreateByObjIdString) +# define RTCrPkixSignatureCreate RT_MANGLER(RTCrPkixSignatureCreate) +# define RTCrPkixSignatureRelease RT_MANGLER(RTCrPkixSignatureRelease) +# define RTCrPkixSignatureRetain RT_MANGLER(RTCrPkixSignatureRetain) +# define RTCrPkixSignatureSign RT_MANGLER(RTCrPkixSignatureSign) +# define RTCrPkixSignatureVerify RT_MANGLER(RTCrPkixSignatureVerify) +# define RTCrPkixSignatureVerifyBitString RT_MANGLER(RTCrPkixSignatureVerifyBitString) +# define RTCrPkixSignatureVerifyOctetString RT_MANGLER(RTCrPkixSignatureVerifyOctetString) +# define RTCrPkixGetCiperOidFromSignatureAlgorithm RT_MANGLER(RTCrPkixGetCiperOidFromSignatureAlgorithm) +# define RTCrPkixPubKeyVerifySignature RT_MANGLER(RTCrPkixPubKeyVerifySignature) +# define RTCrSpcAttributeTypeAndOptionalValue_DecodeAsn1 RT_MANGLER(RTCrSpcAttributeTypeAndOptionalValue_DecodeAsn1) +# define RTCrSpcIndirectDataContent_DecodeAsn1 RT_MANGLER(RTCrSpcIndirectDataContent_DecodeAsn1) +# define RTCrSpcLink_DecodeAsn1 RT_MANGLER(RTCrSpcLink_DecodeAsn1) +# define RTCrSpcPeImageData_DecodeAsn1 RT_MANGLER(RTCrSpcPeImageData_DecodeAsn1) +# define RTCrSpcSerializedObjectAttribute_DecodeAsn1 RT_MANGLER(RTCrSpcSerializedObjectAttribute_DecodeAsn1) +# define RTCrSpcSerializedObjectAttributes_DecodeAsn1 RT_MANGLER(RTCrSpcSerializedObjectAttributes_DecodeAsn1) +# define RTCrSpcSerializedObject_DecodeAsn1 RT_MANGLER(RTCrSpcSerializedObject_DecodeAsn1) +# define RTCrSpcSerializedPageHashes_DecodeAsn1 RT_MANGLER(RTCrSpcSerializedPageHashes_DecodeAsn1) +# define RTCrSpcString_DecodeAsn1 RT_MANGLER(RTCrSpcString_DecodeAsn1) +# define RTCrSpcAttributeTypeAndOptionalValue_Compare RT_MANGLER(RTCrSpcAttributeTypeAndOptionalValue_Compare) +# define RTCrSpcAttributeTypeAndOptionalValue_Delete RT_MANGLER(RTCrSpcAttributeTypeAndOptionalValue_Delete) +# define RTCrSpcAttributeTypeAndOptionalValue_Enum RT_MANGLER(RTCrSpcAttributeTypeAndOptionalValue_Enum) +# define RTCrSpcIndirectDataContent_Compare RT_MANGLER(RTCrSpcIndirectDataContent_Compare) +# define RTCrSpcIndirectDataContent_Delete RT_MANGLER(RTCrSpcIndirectDataContent_Delete) +# define RTCrSpcIndirectDataContent_Enum RT_MANGLER(RTCrSpcIndirectDataContent_Enum) +# define RTCrSpcIndirectDataContent_GetPeImageObjAttrib RT_MANGLER(RTCrSpcIndirectDataContent_GetPeImageObjAttrib) +# define RTCrSpcLink_Compare RT_MANGLER(RTCrSpcLink_Compare) +# define RTCrSpcLink_Delete RT_MANGLER(RTCrSpcLink_Delete) +# define RTCrSpcLink_Enum RT_MANGLER(RTCrSpcLink_Enum) +# define RTCrSpcPeImageData_Compare RT_MANGLER(RTCrSpcPeImageData_Compare) +# define RTCrSpcPeImageData_Delete RT_MANGLER(RTCrSpcPeImageData_Delete) +# define RTCrSpcPeImageData_Enum RT_MANGLER(RTCrSpcPeImageData_Enum) +# define RTCrSpcSerializedObjectAttribute_Compare RT_MANGLER(RTCrSpcSerializedObjectAttribute_Compare) +# define RTCrSpcSerializedObjectAttribute_Delete RT_MANGLER(RTCrSpcSerializedObjectAttribute_Delete) +# define RTCrSpcSerializedObjectAttribute_Enum RT_MANGLER(RTCrSpcSerializedObjectAttribute_Enum) +# define RTCrSpcSerializedObjectAttributes_Compare RT_MANGLER(RTCrSpcSerializedObjectAttributes_Compare) +# define RTCrSpcSerializedObjectAttributes_Delete RT_MANGLER(RTCrSpcSerializedObjectAttributes_Delete) +# define RTCrSpcSerializedObjectAttributes_Enum RT_MANGLER(RTCrSpcSerializedObjectAttributes_Enum) +# define RTCrSpcSerializedObject_Compare RT_MANGLER(RTCrSpcSerializedObject_Compare) +# define RTCrSpcSerializedObject_Delete RT_MANGLER(RTCrSpcSerializedObject_Delete) +# define RTCrSpcSerializedObject_Enum RT_MANGLER(RTCrSpcSerializedObject_Enum) +# define RTCrSpcSerializedPageHashes_Compare RT_MANGLER(RTCrSpcSerializedPageHashes_Compare) +# define RTCrSpcSerializedPageHashes_Delete RT_MANGLER(RTCrSpcSerializedPageHashes_Delete) +# define RTCrSpcSerializedPageHashes_Enum RT_MANGLER(RTCrSpcSerializedPageHashes_Enum) +# define RTCrSpcSerializedPageHashes_UpdateDerivedData RT_MANGLER(RTCrSpcSerializedPageHashes_UpdateDerivedData) +# define RTCrSpcString_Compare RT_MANGLER(RTCrSpcString_Compare) +# define RTCrSpcString_Delete RT_MANGLER(RTCrSpcString_Delete) +# define RTCrSpcString_Enum RT_MANGLER(RTCrSpcString_Enum) +# define RTCrSpcAttributeTypeAndOptionalValue_Clone RT_MANGLER(RTCrSpcAttributeTypeAndOptionalValue_Clone) +# define RTCrSpcAttributeTypeAndOptionalValue_Init RT_MANGLER(RTCrSpcAttributeTypeAndOptionalValue_Init) +# define RTCrSpcIndirectDataContent_Clone RT_MANGLER(RTCrSpcIndirectDataContent_Clone) +# define RTCrSpcIndirectDataContent_Init RT_MANGLER(RTCrSpcIndirectDataContent_Init) +# define RTCrSpcLink_Clone RT_MANGLER(RTCrSpcLink_Clone) +# define RTCrSpcLink_Init RT_MANGLER(RTCrSpcLink_Init) +# define RTCrSpcPeImageData_Clone RT_MANGLER(RTCrSpcPeImageData_Clone) +# define RTCrSpcPeImageData_Init RT_MANGLER(RTCrSpcPeImageData_Init) +# define RTCrSpcSerializedObjectAttribute_Clone RT_MANGLER(RTCrSpcSerializedObjectAttribute_Clone) +# define RTCrSpcSerializedObjectAttribute_Init RT_MANGLER(RTCrSpcSerializedObjectAttribute_Init) +# define RTCrSpcSerializedObjectAttributes_Clone RT_MANGLER(RTCrSpcSerializedObjectAttributes_Clone) +# define RTCrSpcSerializedObjectAttributes_Init RT_MANGLER(RTCrSpcSerializedObjectAttributes_Init) +# define RTCrSpcSerializedObject_Clone RT_MANGLER(RTCrSpcSerializedObject_Clone) +# define RTCrSpcSerializedObject_Init RT_MANGLER(RTCrSpcSerializedObject_Init) +# define RTCrSpcSerializedPageHashes_Clone RT_MANGLER(RTCrSpcSerializedPageHashes_Clone) +# define RTCrSpcSerializedPageHashes_Init RT_MANGLER(RTCrSpcSerializedPageHashes_Init) +# define RTCrSpcString_Clone RT_MANGLER(RTCrSpcString_Clone) +# define RTCrSpcString_Init RT_MANGLER(RTCrSpcString_Init) +# define RTCrSpcAttributeTypeAndOptionalValue_CheckSanity RT_MANGLER(RTCrSpcAttributeTypeAndOptionalValue_CheckSanity) +# define RTCrSpcIndirectDataContent_CheckSanity RT_MANGLER(RTCrSpcIndirectDataContent_CheckSanity) +# define RTCrSpcIndirectDataContent_CheckSanityEx RT_MANGLER(RTCrSpcIndirectDataContent_CheckSanityEx) +# define RTCrSpcLink_CheckSanity RT_MANGLER(RTCrSpcLink_CheckSanity) +# define RTCrSpcPeImageData_CheckSanity RT_MANGLER(RTCrSpcPeImageData_CheckSanity) +# define RTCrSpcSerializedObjectAttribute_CheckSanity RT_MANGLER(RTCrSpcSerializedObjectAttribute_CheckSanity) +# define RTCrSpcSerializedObjectAttributes_CheckSanity RT_MANGLER(RTCrSpcSerializedObjectAttributes_CheckSanity) +# define RTCrSpcSerializedObject_CheckSanity RT_MANGLER(RTCrSpcSerializedObject_CheckSanity) +# define RTCrSpcSerializedPageHashes_CheckSanity RT_MANGLER(RTCrSpcSerializedPageHashes_CheckSanity) +# define RTCrSpcString_CheckSanity RT_MANGLER(RTCrSpcString_CheckSanity) +# define RTCrX509AlgorithmIdentifier_DecodeAsn1 RT_MANGLER(RTCrX509AlgorithmIdentifier_DecodeAsn1) +# define RTCrX509AlgorithmIdentifiers_DecodeAsn1 RT_MANGLER(RTCrX509AlgorithmIdentifiers_DecodeAsn1) +# define RTCrX509AttributeTypeAndValue_DecodeAsn1 RT_MANGLER(RTCrX509AttributeTypeAndValue_DecodeAsn1) +# define RTCrX509AttributeTypeAndValues_DecodeAsn1 RT_MANGLER(RTCrX509AttributeTypeAndValues_DecodeAsn1) +# define RTCrX509AuthorityKeyIdentifier_DecodeAsn1 RT_MANGLER(RTCrX509AuthorityKeyIdentifier_DecodeAsn1) +# define RTCrX509BasicConstraints_DecodeAsn1 RT_MANGLER(RTCrX509BasicConstraints_DecodeAsn1) +# define RTCrX509CertificatePolicies_DecodeAsn1 RT_MANGLER(RTCrX509CertificatePolicies_DecodeAsn1) +# define RTCrX509Certificate_DecodeAsn1 RT_MANGLER(RTCrX509Certificate_DecodeAsn1) +# define RTCrX509Certificates_DecodeAsn1 RT_MANGLER(RTCrX509Certificates_DecodeAsn1) +# define RTCrX509Extension_DecodeAsn1 RT_MANGLER(RTCrX509Extension_DecodeAsn1) +# define RTCrX509Extension_ExtnValue_DecodeAsn1 RT_MANGLER(RTCrX509Extension_ExtnValue_DecodeAsn1) +# define RTCrX509Extensions_DecodeAsn1 RT_MANGLER(RTCrX509Extensions_DecodeAsn1) +# define RTCrX509GeneralName_DecodeAsn1 RT_MANGLER(RTCrX509GeneralName_DecodeAsn1) +# define RTCrX509GeneralNames_DecodeAsn1 RT_MANGLER(RTCrX509GeneralNames_DecodeAsn1) +# define RTCrX509GeneralSubtree_DecodeAsn1 RT_MANGLER(RTCrX509GeneralSubtree_DecodeAsn1) +# define RTCrX509GeneralSubtrees_DecodeAsn1 RT_MANGLER(RTCrX509GeneralSubtrees_DecodeAsn1) +# define RTCrX509NameConstraints_DecodeAsn1 RT_MANGLER(RTCrX509NameConstraints_DecodeAsn1) +# define RTCrX509Name_DecodeAsn1 RT_MANGLER(RTCrX509Name_DecodeAsn1) +# define RTCrX509OldAuthorityKeyIdentifier_DecodeAsn1 RT_MANGLER(RTCrX509OldAuthorityKeyIdentifier_DecodeAsn1) +# define RTCrX509OtherName_DecodeAsn1 RT_MANGLER(RTCrX509OtherName_DecodeAsn1) +# define RTCrX509PolicyConstraints_DecodeAsn1 RT_MANGLER(RTCrX509PolicyConstraints_DecodeAsn1) +# define RTCrX509PolicyInformation_DecodeAsn1 RT_MANGLER(RTCrX509PolicyInformation_DecodeAsn1) +# define RTCrX509PolicyMapping_DecodeAsn1 RT_MANGLER(RTCrX509PolicyMapping_DecodeAsn1) +# define RTCrX509PolicyMappings_DecodeAsn1 RT_MANGLER(RTCrX509PolicyMappings_DecodeAsn1) +# define RTCrX509PolicyQualifierInfo_DecodeAsn1 RT_MANGLER(RTCrX509PolicyQualifierInfo_DecodeAsn1) +# define RTCrX509PolicyQualifierInfos_DecodeAsn1 RT_MANGLER(RTCrX509PolicyQualifierInfos_DecodeAsn1) +# define RTCrX509SubjectPublicKeyInfo_DecodeAsn1 RT_MANGLER(RTCrX509SubjectPublicKeyInfo_DecodeAsn1) +# define RTCrX509TbsCertificate_DecodeAsn1 RT_MANGLER(RTCrX509TbsCertificate_DecodeAsn1) +# define RTCrX509Validity_DecodeAsn1 RT_MANGLER(RTCrX509Validity_DecodeAsn1) +# define RTCrX509CertPathsBuild RT_MANGLER(RTCrX509CertPathsBuild) +# define RTCrX509CertPathsCreate RT_MANGLER(RTCrX509CertPathsCreate) +# define RTCrX509CertPathsCreateEx RT_MANGLER(RTCrX509CertPathsCreateEx) +# define RTCrX509CertPathsDumpAll RT_MANGLER(RTCrX509CertPathsDumpAll) +# define RTCrX509CertPathsDumpOne RT_MANGLER(RTCrX509CertPathsDumpOne) +# define RTCrX509CertPathsGetPathCount RT_MANGLER(RTCrX509CertPathsGetPathCount) +# define RTCrX509CertPathsGetPathLength RT_MANGLER(RTCrX509CertPathsGetPathLength) +# define RTCrX509CertPathsGetPathNodeCert RT_MANGLER(RTCrX509CertPathsGetPathNodeCert) +# define RTCrX509CertPathsGetPathVerifyResult RT_MANGLER(RTCrX509CertPathsGetPathVerifyResult) +# define RTCrX509CertPathsQueryPathInfo RT_MANGLER(RTCrX509CertPathsQueryPathInfo) +# define RTCrX509CertPathsRelease RT_MANGLER(RTCrX509CertPathsRelease) +# define RTCrX509CertPathsRetain RT_MANGLER(RTCrX509CertPathsRetain) +# define RTCrX509CertPathsSetTrustedStore RT_MANGLER(RTCrX509CertPathsSetTrustedStore) +# define RTCrX509CertPathsSetUntrustedArray RT_MANGLER(RTCrX509CertPathsSetUntrustedArray) +# define RTCrX509CertPathsSetUntrustedSet RT_MANGLER(RTCrX509CertPathsSetUntrustedSet) +# define RTCrX509CertPathsSetUntrustedStore RT_MANGLER(RTCrX509CertPathsSetUntrustedStore) +# define RTCrX509CertPathsSetValidTime RT_MANGLER(RTCrX509CertPathsSetValidTime) +# define RTCrX509CertPathsSetValidTimeSpec RT_MANGLER(RTCrX509CertPathsSetValidTimeSpec) +# define RTCrX509CertPathsValidateAll RT_MANGLER(RTCrX509CertPathsValidateAll) +# define RTCrX509CertPathsValidateOne RT_MANGLER(RTCrX509CertPathsValidateOne) +# define RTCrX509AlgorithmIdentifier_Compare RT_MANGLER(RTCrX509AlgorithmIdentifier_Compare) +# define RTCrX509AlgorithmIdentifier_CompareDigestAndEncryptedDigest RT_MANGLER(RTCrX509AlgorithmIdentifier_CompareDigestAndEncryptedDigest) +# define RTCrX509AlgorithmIdentifier_CompareWithString RT_MANGLER(RTCrX509AlgorithmIdentifier_CompareWithString) +# define RTCrX509AlgorithmIdentifier_Delete RT_MANGLER(RTCrX509AlgorithmIdentifier_Delete) +# define RTCrX509AlgorithmIdentifier_Enum RT_MANGLER(RTCrX509AlgorithmIdentifier_Enum) +# define RTCrX509AlgorithmIdentifier_QueryDigestSize RT_MANGLER(RTCrX509AlgorithmIdentifier_QueryDigestSize) +# define RTCrX509AlgorithmIdentifier_QueryDigestType RT_MANGLER(RTCrX509AlgorithmIdentifier_QueryDigestType) +# define RTCrX509AlgorithmIdentifiers_Compare RT_MANGLER(RTCrX509AlgorithmIdentifiers_Compare) +# define RTCrX509AlgorithmIdentifiers_Delete RT_MANGLER(RTCrX509AlgorithmIdentifiers_Delete) +# define RTCrX509AlgorithmIdentifiers_Enum RT_MANGLER(RTCrX509AlgorithmIdentifiers_Enum) +# define RTCrX509AttributeTypeAndValue_Compare RT_MANGLER(RTCrX509AttributeTypeAndValue_Compare) +# define RTCrX509AttributeTypeAndValue_Delete RT_MANGLER(RTCrX509AttributeTypeAndValue_Delete) +# define RTCrX509AttributeTypeAndValue_Enum RT_MANGLER(RTCrX509AttributeTypeAndValue_Enum) +# define RTCrX509AttributeTypeAndValues_Compare RT_MANGLER(RTCrX509AttributeTypeAndValues_Compare) +# define RTCrX509AttributeTypeAndValues_Delete RT_MANGLER(RTCrX509AttributeTypeAndValues_Delete) +# define RTCrX509AttributeTypeAndValues_Enum RT_MANGLER(RTCrX509AttributeTypeAndValues_Enum) +# define RTCrX509AuthorityKeyIdentifier_Compare RT_MANGLER(RTCrX509AuthorityKeyIdentifier_Compare) +# define RTCrX509AuthorityKeyIdentifier_Delete RT_MANGLER(RTCrX509AuthorityKeyIdentifier_Delete) +# define RTCrX509AuthorityKeyIdentifier_Enum RT_MANGLER(RTCrX509AuthorityKeyIdentifier_Enum) +# define RTCrX509BasicConstraints_Compare RT_MANGLER(RTCrX509BasicConstraints_Compare) +# define RTCrX509BasicConstraints_Delete RT_MANGLER(RTCrX509BasicConstraints_Delete) +# define RTCrX509BasicConstraints_Enum RT_MANGLER(RTCrX509BasicConstraints_Enum) +# define RTCrX509CertificatePolicies_Compare RT_MANGLER(RTCrX509CertificatePolicies_Compare) +# define RTCrX509CertificatePolicies_Delete RT_MANGLER(RTCrX509CertificatePolicies_Delete) +# define RTCrX509CertificatePolicies_Enum RT_MANGLER(RTCrX509CertificatePolicies_Enum) +# define RTCrX509Certificate_Compare RT_MANGLER(RTCrX509Certificate_Compare) +# define RTCrX509Certificate_Delete RT_MANGLER(RTCrX509Certificate_Delete) +# define RTCrX509Certificate_Enum RT_MANGLER(RTCrX509Certificate_Enum) +# define RTCrX509Certificate_IsSelfSigned RT_MANGLER(RTCrX509Certificate_IsSelfSigned) +# define RTCrX509Certificate_MatchIssuerAndSerialNumber RT_MANGLER(RTCrX509Certificate_MatchIssuerAndSerialNumber) +# define RTCrX509Certificate_MatchSubjectOrAltSubjectByRfc5280 RT_MANGLER(RTCrX509Certificate_MatchSubjectOrAltSubjectByRfc5280) +# define RTCrX509Certificates_Compare RT_MANGLER(RTCrX509Certificates_Compare) +# define RTCrX509Certificates_Delete RT_MANGLER(RTCrX509Certificates_Delete) +# define RTCrX509Certificates_Enum RT_MANGLER(RTCrX509Certificates_Enum) +# define RTCrX509Certificates_FindByIssuerAndSerialNumber RT_MANGLER(RTCrX509Certificates_FindByIssuerAndSerialNumber) +# define RTCrX509Extension_Compare RT_MANGLER(RTCrX509Extension_Compare) +# define RTCrX509Extension_Delete RT_MANGLER(RTCrX509Extension_Delete) +# define RTCrX509Extension_Enum RT_MANGLER(RTCrX509Extension_Enum) +# define RTCrX509Extensions_Compare RT_MANGLER(RTCrX509Extensions_Compare) +# define RTCrX509Extensions_Delete RT_MANGLER(RTCrX509Extensions_Delete) +# define RTCrX509Extensions_Enum RT_MANGLER(RTCrX509Extensions_Enum) +# define RTCrX509GeneralName_Compare RT_MANGLER(RTCrX509GeneralName_Compare) +# define RTCrX509GeneralName_ConstraintMatch RT_MANGLER(RTCrX509GeneralName_ConstraintMatch) +# define RTCrX509GeneralName_Delete RT_MANGLER(RTCrX509GeneralName_Delete) +# define RTCrX509GeneralName_Enum RT_MANGLER(RTCrX509GeneralName_Enum) +# define RTCrX509GeneralNames_Compare RT_MANGLER(RTCrX509GeneralNames_Compare) +# define RTCrX509GeneralNames_Delete RT_MANGLER(RTCrX509GeneralNames_Delete) +# define RTCrX509GeneralNames_Enum RT_MANGLER(RTCrX509GeneralNames_Enum) +# define RTCrX509GeneralSubtree_Compare RT_MANGLER(RTCrX509GeneralSubtree_Compare) +# define RTCrX509GeneralSubtree_ConstraintMatch RT_MANGLER(RTCrX509GeneralSubtree_ConstraintMatch) +# define RTCrX509GeneralSubtree_Delete RT_MANGLER(RTCrX509GeneralSubtree_Delete) +# define RTCrX509GeneralSubtree_Enum RT_MANGLER(RTCrX509GeneralSubtree_Enum) +# define RTCrX509GeneralSubtrees_Compare RT_MANGLER(RTCrX509GeneralSubtrees_Compare) +# define RTCrX509GeneralSubtrees_Delete RT_MANGLER(RTCrX509GeneralSubtrees_Delete) +# define RTCrX509GeneralSubtrees_Enum RT_MANGLER(RTCrX509GeneralSubtrees_Enum) +# define RTCrX509NameConstraints_Compare RT_MANGLER(RTCrX509NameConstraints_Compare) +# define RTCrX509NameConstraints_Delete RT_MANGLER(RTCrX509NameConstraints_Delete) +# define RTCrX509NameConstraints_Enum RT_MANGLER(RTCrX509NameConstraints_Enum) +# define RTCrX509Name_Compare RT_MANGLER(RTCrX509Name_Compare) +# define RTCrX509Name_ConstraintMatch RT_MANGLER(RTCrX509Name_ConstraintMatch) +# define RTCrX509Name_Delete RT_MANGLER(RTCrX509Name_Delete) +# define RTCrX509Name_Enum RT_MANGLER(RTCrX509Name_Enum) +# define RTCrX509Name_FormatAsString RT_MANGLER(RTCrX509Name_FormatAsString) +# define RTCrX509Name_MatchByRfc5280 RT_MANGLER(RTCrX509Name_MatchByRfc5280) +# define RTCrX509Name_MatchWithString RT_MANGLER(RTCrX509Name_MatchWithString) +# define RTCrX509OldAuthorityKeyIdentifier_Compare RT_MANGLER(RTCrX509OldAuthorityKeyIdentifier_Compare) +# define RTCrX509OldAuthorityKeyIdentifier_Delete RT_MANGLER(RTCrX509OldAuthorityKeyIdentifier_Delete) +# define RTCrX509OldAuthorityKeyIdentifier_Enum RT_MANGLER(RTCrX509OldAuthorityKeyIdentifier_Enum) +# define RTCrX509OtherName_Compare RT_MANGLER(RTCrX509OtherName_Compare) +# define RTCrX509OtherName_Delete RT_MANGLER(RTCrX509OtherName_Delete) +# define RTCrX509OtherName_Enum RT_MANGLER(RTCrX509OtherName_Enum) +# define RTCrX509PolicyConstraints_Compare RT_MANGLER(RTCrX509PolicyConstraints_Compare) +# define RTCrX509PolicyConstraints_Delete RT_MANGLER(RTCrX509PolicyConstraints_Delete) +# define RTCrX509PolicyConstraints_Enum RT_MANGLER(RTCrX509PolicyConstraints_Enum) +# define RTCrX509PolicyInformation_Compare RT_MANGLER(RTCrX509PolicyInformation_Compare) +# define RTCrX509PolicyInformation_Delete RT_MANGLER(RTCrX509PolicyInformation_Delete) +# define RTCrX509PolicyInformation_Enum RT_MANGLER(RTCrX509PolicyInformation_Enum) +# define RTCrX509PolicyMapping_Compare RT_MANGLER(RTCrX509PolicyMapping_Compare) +# define RTCrX509PolicyMapping_Delete RT_MANGLER(RTCrX509PolicyMapping_Delete) +# define RTCrX509PolicyMapping_Enum RT_MANGLER(RTCrX509PolicyMapping_Enum) +# define RTCrX509PolicyMappings_Compare RT_MANGLER(RTCrX509PolicyMappings_Compare) +# define RTCrX509PolicyMappings_Delete RT_MANGLER(RTCrX509PolicyMappings_Delete) +# define RTCrX509PolicyMappings_Enum RT_MANGLER(RTCrX509PolicyMappings_Enum) +# define RTCrX509PolicyQualifierInfo_Compare RT_MANGLER(RTCrX509PolicyQualifierInfo_Compare) +# define RTCrX509PolicyQualifierInfo_Delete RT_MANGLER(RTCrX509PolicyQualifierInfo_Delete) +# define RTCrX509PolicyQualifierInfo_Enum RT_MANGLER(RTCrX509PolicyQualifierInfo_Enum) +# define RTCrX509PolicyQualifierInfos_Compare RT_MANGLER(RTCrX509PolicyQualifierInfos_Compare) +# define RTCrX509PolicyQualifierInfos_Delete RT_MANGLER(RTCrX509PolicyQualifierInfos_Delete) +# define RTCrX509PolicyQualifierInfos_Enum RT_MANGLER(RTCrX509PolicyQualifierInfos_Enum) +# define RTCrX509SubjectPublicKeyInfo_Compare RT_MANGLER(RTCrX509SubjectPublicKeyInfo_Compare) +# define RTCrX509SubjectPublicKeyInfo_Delete RT_MANGLER(RTCrX509SubjectPublicKeyInfo_Delete) +# define RTCrX509SubjectPublicKeyInfo_Enum RT_MANGLER(RTCrX509SubjectPublicKeyInfo_Enum) +# define RTCrX509TbsCertificate_Compare RT_MANGLER(RTCrX509TbsCertificate_Compare) +# define RTCrX509TbsCertificate_Delete RT_MANGLER(RTCrX509TbsCertificate_Delete) +# define RTCrX509TbsCertificate_Enum RT_MANGLER(RTCrX509TbsCertificate_Enum) +# define RTCrX509TbsCertificate_ReprocessExtensions RT_MANGLER(RTCrX509TbsCertificate_ReprocessExtensions) +# define RTCrX509Validity_Compare RT_MANGLER(RTCrX509Validity_Compare) +# define RTCrX509Validity_Delete RT_MANGLER(RTCrX509Validity_Delete) +# define RTCrX509Validity_Enum RT_MANGLER(RTCrX509Validity_Enum) +# define RTCrX509Validity_IsValidAtTimeSpec RT_MANGLER(RTCrX509Validity_IsValidAtTimeSpec) +# define RTCrX509Certificate_ReadFromFile RT_MANGLER(RTCrX509Certificate_ReadFromFile) +# define RTCrX509AlgorithmIdentifier_Clone RT_MANGLER(RTCrX509AlgorithmIdentifier_Clone) +# define RTCrX509AlgorithmIdentifier_Init RT_MANGLER(RTCrX509AlgorithmIdentifier_Init) +# define RTCrX509AlgorithmIdentifiers_Clone RT_MANGLER(RTCrX509AlgorithmIdentifiers_Clone) +# define RTCrX509AlgorithmIdentifiers_Init RT_MANGLER(RTCrX509AlgorithmIdentifiers_Init) +# define RTCrX509AttributeTypeAndValue_Clone RT_MANGLER(RTCrX509AttributeTypeAndValue_Clone) +# define RTCrX509AttributeTypeAndValue_Init RT_MANGLER(RTCrX509AttributeTypeAndValue_Init) +# define RTCrX509AttributeTypeAndValues_Clone RT_MANGLER(RTCrX509AttributeTypeAndValues_Clone) +# define RTCrX509AttributeTypeAndValues_Init RT_MANGLER(RTCrX509AttributeTypeAndValues_Init) +# define RTCrX509AuthorityKeyIdentifier_Clone RT_MANGLER(RTCrX509AuthorityKeyIdentifier_Clone) +# define RTCrX509AuthorityKeyIdentifier_Init RT_MANGLER(RTCrX509AuthorityKeyIdentifier_Init) +# define RTCrX509BasicConstraints_Clone RT_MANGLER(RTCrX509BasicConstraints_Clone) +# define RTCrX509BasicConstraints_Init RT_MANGLER(RTCrX509BasicConstraints_Init) +# define RTCrX509CertificatePolicies_Clone RT_MANGLER(RTCrX509CertificatePolicies_Clone) +# define RTCrX509CertificatePolicies_Init RT_MANGLER(RTCrX509CertificatePolicies_Init) +# define RTCrX509Certificate_Clone RT_MANGLER(RTCrX509Certificate_Clone) +# define RTCrX509Certificate_Init RT_MANGLER(RTCrX509Certificate_Init) +# define RTCrX509Certificates_Clone RT_MANGLER(RTCrX509Certificates_Clone) +# define RTCrX509Certificates_Init RT_MANGLER(RTCrX509Certificates_Init) +# define RTCrX509Extension_Clone RT_MANGLER(RTCrX509Extension_Clone) +# define RTCrX509Extension_Init RT_MANGLER(RTCrX509Extension_Init) +# define RTCrX509Extensions_Clone RT_MANGLER(RTCrX509Extensions_Clone) +# define RTCrX509Extensions_Init RT_MANGLER(RTCrX509Extensions_Init) +# define RTCrX509GeneralName_Clone RT_MANGLER(RTCrX509GeneralName_Clone) +# define RTCrX509GeneralName_Init RT_MANGLER(RTCrX509GeneralName_Init) +# define RTCrX509GeneralNames_Clone RT_MANGLER(RTCrX509GeneralNames_Clone) +# define RTCrX509GeneralNames_Init RT_MANGLER(RTCrX509GeneralNames_Init) +# define RTCrX509GeneralSubtree_Clone RT_MANGLER(RTCrX509GeneralSubtree_Clone) +# define RTCrX509GeneralSubtree_Init RT_MANGLER(RTCrX509GeneralSubtree_Init) +# define RTCrX509GeneralSubtrees_Clone RT_MANGLER(RTCrX509GeneralSubtrees_Clone) +# define RTCrX509GeneralSubtrees_Init RT_MANGLER(RTCrX509GeneralSubtrees_Init) +# define RTCrX509NameConstraints_Clone RT_MANGLER(RTCrX509NameConstraints_Clone) +# define RTCrX509NameConstraints_Init RT_MANGLER(RTCrX509NameConstraints_Init) +# define RTCrX509Name_Clone RT_MANGLER(RTCrX509Name_Clone) +# define RTCrX509Name_Init RT_MANGLER(RTCrX509Name_Init) +# define RTCrX509Name_RecodeAsUtf8 RT_MANGLER(RTCrX509Name_RecodeAsUtf8) +# define RTCrX509OldAuthorityKeyIdentifier_Clone RT_MANGLER(RTCrX509OldAuthorityKeyIdentifier_Clone) +# define RTCrX509OldAuthorityKeyIdentifier_Init RT_MANGLER(RTCrX509OldAuthorityKeyIdentifier_Init) +# define RTCrX509OtherName_Clone RT_MANGLER(RTCrX509OtherName_Clone) +# define RTCrX509OtherName_Init RT_MANGLER(RTCrX509OtherName_Init) +# define RTCrX509PolicyConstraints_Clone RT_MANGLER(RTCrX509PolicyConstraints_Clone) +# define RTCrX509PolicyConstraints_Init RT_MANGLER(RTCrX509PolicyConstraints_Init) +# define RTCrX509PolicyInformation_Clone RT_MANGLER(RTCrX509PolicyInformation_Clone) +# define RTCrX509PolicyInformation_Init RT_MANGLER(RTCrX509PolicyInformation_Init) +# define RTCrX509PolicyMapping_Clone RT_MANGLER(RTCrX509PolicyMapping_Clone) +# define RTCrX509PolicyMapping_Init RT_MANGLER(RTCrX509PolicyMapping_Init) +# define RTCrX509PolicyMappings_Clone RT_MANGLER(RTCrX509PolicyMappings_Clone) +# define RTCrX509PolicyMappings_Init RT_MANGLER(RTCrX509PolicyMappings_Init) +# define RTCrX509PolicyQualifierInfo_Clone RT_MANGLER(RTCrX509PolicyQualifierInfo_Clone) +# define RTCrX509PolicyQualifierInfo_Init RT_MANGLER(RTCrX509PolicyQualifierInfo_Init) +# define RTCrX509PolicyQualifierInfos_Clone RT_MANGLER(RTCrX509PolicyQualifierInfos_Clone) +# define RTCrX509PolicyQualifierInfos_Init RT_MANGLER(RTCrX509PolicyQualifierInfos_Init) +# define RTCrX509SubjectPublicKeyInfo_Clone RT_MANGLER(RTCrX509SubjectPublicKeyInfo_Clone) +# define RTCrX509SubjectPublicKeyInfo_Init RT_MANGLER(RTCrX509SubjectPublicKeyInfo_Init) +# define RTCrX509TbsCertificate_Clone RT_MANGLER(RTCrX509TbsCertificate_Clone) +# define RTCrX509TbsCertificate_Init RT_MANGLER(RTCrX509TbsCertificate_Init) +# define RTCrX509Validity_Clone RT_MANGLER(RTCrX509Validity_Clone) +# define RTCrX509Validity_Init RT_MANGLER(RTCrX509Validity_Init) +# define RTCrX509AlgorithmIdentifier_CheckSanity RT_MANGLER(RTCrX509AlgorithmIdentifier_CheckSanity) +# define RTCrX509AlgorithmIdentifiers_CheckSanity RT_MANGLER(RTCrX509AlgorithmIdentifiers_CheckSanity) +# define RTCrX509AttributeTypeAndValue_CheckSanity RT_MANGLER(RTCrX509AttributeTypeAndValue_CheckSanity) +# define RTCrX509AttributeTypeAndValues_CheckSanity RT_MANGLER(RTCrX509AttributeTypeAndValues_CheckSanity) +# define RTCrX509AuthorityKeyIdentifier_CheckSanity RT_MANGLER(RTCrX509AuthorityKeyIdentifier_CheckSanity) +# define RTCrX509BasicConstraints_CheckSanity RT_MANGLER(RTCrX509BasicConstraints_CheckSanity) +# define RTCrX509CertificatePolicies_CheckSanity RT_MANGLER(RTCrX509CertificatePolicies_CheckSanity) +# define RTCrX509Certificate_CheckSanity RT_MANGLER(RTCrX509Certificate_CheckSanity) +# define RTCrX509Certificates_CheckSanity RT_MANGLER(RTCrX509Certificates_CheckSanity) +# define RTCrX509Extension_CheckSanity RT_MANGLER(RTCrX509Extension_CheckSanity) +# define RTCrX509Extensions_CheckSanity RT_MANGLER(RTCrX509Extensions_CheckSanity) +# define RTCrX509GeneralName_CheckSanity RT_MANGLER(RTCrX509GeneralName_CheckSanity) +# define RTCrX509GeneralNames_CheckSanity RT_MANGLER(RTCrX509GeneralNames_CheckSanity) +# define RTCrX509GeneralSubtree_CheckSanity RT_MANGLER(RTCrX509GeneralSubtree_CheckSanity) +# define RTCrX509GeneralSubtrees_CheckSanity RT_MANGLER(RTCrX509GeneralSubtrees_CheckSanity) +# define RTCrX509NameConstraints_CheckSanity RT_MANGLER(RTCrX509NameConstraints_CheckSanity) +# define RTCrX509Name_CheckSanity RT_MANGLER(RTCrX509Name_CheckSanity) +# define RTCrX509OldAuthorityKeyIdentifier_CheckSanity RT_MANGLER(RTCrX509OldAuthorityKeyIdentifier_CheckSanity) +# define RTCrX509OtherName_CheckSanity RT_MANGLER(RTCrX509OtherName_CheckSanity) +# define RTCrX509PolicyConstraints_CheckSanity RT_MANGLER(RTCrX509PolicyConstraints_CheckSanity) +# define RTCrX509PolicyInformation_CheckSanity RT_MANGLER(RTCrX509PolicyInformation_CheckSanity) +# define RTCrX509PolicyMapping_CheckSanity RT_MANGLER(RTCrX509PolicyMapping_CheckSanity) +# define RTCrX509PolicyMappings_CheckSanity RT_MANGLER(RTCrX509PolicyMappings_CheckSanity) +# define RTCrX509PolicyQualifierInfo_CheckSanity RT_MANGLER(RTCrX509PolicyQualifierInfo_CheckSanity) +# define RTCrX509PolicyQualifierInfos_CheckSanity RT_MANGLER(RTCrX509PolicyQualifierInfos_CheckSanity) +# define RTCrX509SubjectPublicKeyInfo_CheckSanity RT_MANGLER(RTCrX509SubjectPublicKeyInfo_CheckSanity) +# define RTCrX509TbsCertificate_CheckSanity RT_MANGLER(RTCrX509TbsCertificate_CheckSanity) +# define RTCrX509Validity_CheckSanity RT_MANGLER(RTCrX509Validity_CheckSanity) +# define RTCrX509Certificate_VerifySignature RT_MANGLER(RTCrX509Certificate_VerifySignature) +# define RTCrTafCertPathControls_DecodeAsn1 RT_MANGLER(RTCrTafCertPathControls_DecodeAsn1) +# define RTCrTafTrustAnchorChoice_DecodeAsn1 RT_MANGLER(RTCrTafTrustAnchorChoice_DecodeAsn1) +# define RTCrTafTrustAnchorInfo_DecodeAsn1 RT_MANGLER(RTCrTafTrustAnchorInfo_DecodeAsn1) +# define RTCrTafTrustAnchorList_DecodeAsn1 RT_MANGLER(RTCrTafTrustAnchorList_DecodeAsn1) +# define RTCrTafCertPathControls_Compare RT_MANGLER(RTCrTafCertPathControls_Compare) +# define RTCrTafCertPathControls_Delete RT_MANGLER(RTCrTafCertPathControls_Delete) +# define RTCrTafCertPathControls_Enum RT_MANGLER(RTCrTafCertPathControls_Enum) +# define RTCrTafTrustAnchorChoice_Compare RT_MANGLER(RTCrTafTrustAnchorChoice_Compare) +# define RTCrTafTrustAnchorChoice_Delete RT_MANGLER(RTCrTafTrustAnchorChoice_Delete) +# define RTCrTafTrustAnchorChoice_Enum RT_MANGLER(RTCrTafTrustAnchorChoice_Enum) +# define RTCrTafTrustAnchorInfo_Compare RT_MANGLER(RTCrTafTrustAnchorInfo_Compare) +# define RTCrTafTrustAnchorInfo_Delete RT_MANGLER(RTCrTafTrustAnchorInfo_Delete) +# define RTCrTafTrustAnchorInfo_Enum RT_MANGLER(RTCrTafTrustAnchorInfo_Enum) +# define RTCrTafTrustAnchorList_Compare RT_MANGLER(RTCrTafTrustAnchorList_Compare) +# define RTCrTafTrustAnchorList_Delete RT_MANGLER(RTCrTafTrustAnchorList_Delete) +# define RTCrTafTrustAnchorList_Enum RT_MANGLER(RTCrTafTrustAnchorList_Enum) +# define RTCrTafCertPathControls_Clone RT_MANGLER(RTCrTafCertPathControls_Clone) +# define RTCrTafCertPathControls_Init RT_MANGLER(RTCrTafCertPathControls_Init) +# define RTCrTafTrustAnchorChoice_Clone RT_MANGLER(RTCrTafTrustAnchorChoice_Clone) +# define RTCrTafTrustAnchorChoice_Init RT_MANGLER(RTCrTafTrustAnchorChoice_Init) +# define RTCrTafTrustAnchorInfo_Clone RT_MANGLER(RTCrTafTrustAnchorInfo_Clone) +# define RTCrTafTrustAnchorInfo_Init RT_MANGLER(RTCrTafTrustAnchorInfo_Init) +# define RTCrTafTrustAnchorList_Clone RT_MANGLER(RTCrTafTrustAnchorList_Clone) +# define RTCrTafTrustAnchorList_Init RT_MANGLER(RTCrTafTrustAnchorList_Init) +# define RTCrTafCertPathControls_CheckSanity RT_MANGLER(RTCrTafCertPathControls_CheckSanity) +# define RTCrTafTrustAnchorChoice_CheckSanity RT_MANGLER(RTCrTafTrustAnchorChoice_CheckSanity) +# define RTCrTafTrustAnchorInfo_CheckSanity RT_MANGLER(RTCrTafTrustAnchorInfo_CheckSanity) +# define RTCrTafTrustAnchorList_CheckSanity RT_MANGLER(RTCrTafTrustAnchorList_CheckSanity) +# define RTCrTspAccuracy_CheckSanity RT_MANGLER(RTCrTspAccuracy_CheckSanity) +# define RTCrTspAccuracy_Clone RT_MANGLER(RTCrTspAccuracy_Clone) +# define RTCrTspAccuracy_Compare RT_MANGLER(RTCrTspAccuracy_Compare) +# define RTCrTspAccuracy_DecodeAsn1 RT_MANGLER(RTCrTspAccuracy_DecodeAsn1) +# define RTCrTspAccuracy_Delete RT_MANGLER(RTCrTspAccuracy_Delete) +# define RTCrTspAccuracy_Enum RT_MANGLER(RTCrTspAccuracy_Enum) +# define RTCrTspAccuracy_Init RT_MANGLER(RTCrTspAccuracy_Init) +# define RTCrTspMessageImprint_CheckSanity RT_MANGLER(RTCrTspMessageImprint_CheckSanity) +# define RTCrTspMessageImprint_Clone RT_MANGLER(RTCrTspMessageImprint_Clone) +# define RTCrTspMessageImprint_Compare RT_MANGLER(RTCrTspMessageImprint_Compare) +# define RTCrTspMessageImprint_DecodeAsn1 RT_MANGLER(RTCrTspMessageImprint_DecodeAsn1) +# define RTCrTspMessageImprint_Delete RT_MANGLER(RTCrTspMessageImprint_Delete) +# define RTCrTspMessageImprint_Enum RT_MANGLER(RTCrTspMessageImprint_Enum) +# define RTCrTspMessageImprint_Init RT_MANGLER(RTCrTspMessageImprint_Init) +# define RTCrTspTstInfo_CheckSanity RT_MANGLER(RTCrTspTstInfo_CheckSanity) +# define RTCrTspTstInfo_Clone RT_MANGLER(RTCrTspTstInfo_Clone) +# define RTCrTspTstInfo_Compare RT_MANGLER(RTCrTspTstInfo_Compare) +# define RTCrTspTstInfo_DecodeAsn1 RT_MANGLER(RTCrTspTstInfo_DecodeAsn1) +# define RTCrTspTstInfo_Delete RT_MANGLER(RTCrTspTstInfo_Delete) +# define RTCrTspTstInfo_Enum RT_MANGLER(RTCrTspTstInfo_Enum) +# define RTCrTspTstInfo_Init RT_MANGLER(RTCrTspTstInfo_Init) +# define RTCrCertCtxRelease RT_MANGLER(RTCrCertCtxRelease) +# define RTCrCertCtxRetain RT_MANGLER(RTCrCertCtxRetain) +# define RTCrStoreCertAddEncoded RT_MANGLER(RTCrStoreCertAddEncoded) +# define RTCrStoreCertByIssuerAndSerialNo RT_MANGLER(RTCrStoreCertByIssuerAndSerialNo) +# define RTCrStoreCertFindAll RT_MANGLER(RTCrStoreCertFindAll) +# define RTCrStoreCertFindBySubjectOrAltSubjectByRfc5280 RT_MANGLER(RTCrStoreCertFindBySubjectOrAltSubjectByRfc5280) +# define RTCrStoreCertSearchDestroy RT_MANGLER(RTCrStoreCertSearchDestroy) +# define RTCrStoreCertSearchNext RT_MANGLER(RTCrStoreCertSearchNext) +# define RTCrStoreConvertToOpenSslCertStack RT_MANGLER(RTCrStoreConvertToOpenSslCertStack) +# define RTCrStoreConvertToOpenSslCertStore RT_MANGLER(RTCrStoreConvertToOpenSslCertStore) +# define RTCrStoreRelease RT_MANGLER(RTCrStoreRelease) +# define RTCrStoreRetain RT_MANGLER(RTCrStoreRetain) +# define RTCrStoreCreateInMem RT_MANGLER(RTCrStoreCreateInMem) +# define RTCrStoreCertAddFromFile RT_MANGLER(RTCrStoreCertAddFromFile) +# define RTErrInfoAdd RT_MANGLER(RTErrInfoAdd) +# define RTErrInfoAddF RT_MANGLER(RTErrInfoAddF) +# define RTErrInfoAddV RT_MANGLER(RTErrInfoAddV) +# define RTLdrHashImage RT_MANGLER(RTLdrHashImage) +# define RTLdrOpenWithReader RT_MANGLER(RTLdrOpenWithReader) +# define RTLdrQueryForwarderInfo RT_MANGLER(RTLdrQueryForwarderInfo) +# define RTLdrQueryProp RT_MANGLER(RTLdrQueryProp) +# define RTLdrQueryPropEx RT_MANGLER(RTLdrQueryPropEx) +# define RTLdrVerifySignature RT_MANGLER(RTLdrVerifySignature) +# define RTBigNumAdd RT_MANGLER(RTBigNumAdd) +# define RTBigNumAssign RT_MANGLER(RTBigNumAssign) +# define RTBigNumBitWidth RT_MANGLER(RTBigNumBitWidth) +# define RTBigNumByteWidth RT_MANGLER(RTBigNumByteWidth) +# define RTBigNumClone RT_MANGLER(RTBigNumClone) +# define RTBigNumCompare RT_MANGLER(RTBigNumCompare) +# define RTBigNumCompareWithS64 RT_MANGLER(RTBigNumCompareWithS64) +# define RTBigNumCompareWithU64 RT_MANGLER(RTBigNumCompareWithU64) +# define RTBigNumDestroy RT_MANGLER(RTBigNumDestroy) +# define RTBigNumDivide RT_MANGLER(RTBigNumDivide) +# define RTBigNumDivideKnuth RT_MANGLER(RTBigNumDivideKnuth) +# define RTBigNumDivideLong RT_MANGLER(RTBigNumDivideLong) +# define RTBigNumExponentiate RT_MANGLER(RTBigNumExponentiate) +# define RTBigNumInit RT_MANGLER(RTBigNumInit) +# define RTBigNumInitZero RT_MANGLER(RTBigNumInitZero) +# define RTBigNumModExp RT_MANGLER(RTBigNumModExp) +# define RTBigNumModulo RT_MANGLER(RTBigNumModulo) +# define RTBigNumMultiply RT_MANGLER(RTBigNumMultiply) +# define RTBigNumNegate RT_MANGLER(RTBigNumNegate) +# define RTBigNumNegateThis RT_MANGLER(RTBigNumNegateThis) +# define RTBigNumShiftLeft RT_MANGLER(RTBigNumShiftLeft) +# define RTBigNumShiftRight RT_MANGLER(RTBigNumShiftRight) +# define RTBigNumSubtract RT_MANGLER(RTBigNumSubtract) +# define RTBigNumToBytesBigEndian RT_MANGLER(RTBigNumToBytesBigEndian) +# define RTUInt128MulByU64 RT_MANGLER(RTUInt128MulByU64) +# define RTUInt128MulByU64_EndProc RT_MANGLER(RTUInt128MulByU64_EndProc) +# define RTUtf16Copy RT_MANGLER(RTUtf16Copy) +# define RTUtf16CopyAscii RT_MANGLER(RTUtf16CopyAscii) +# define RTUtf16Cat RT_MANGLER(RTUtf16Cat) +# define RTUtf16CatAscii RT_MANGLER(RTUtf16CatAscii) +# define RTUtf16End RT_MANGLER(RTUtf16End) +# define RTUtf16ICmpAscii RT_MANGLER(RTUtf16ICmpAscii) +# define RTUtf16NLen RT_MANGLER(RTUtf16NLen) +# define RTUtf16NLenEx RT_MANGLER(RTUtf16NLenEx) +# define RTUtf16PrintHexBytes RT_MANGLER(RTUtf16PrintHexBytes) +# define RTMemSaferAllocZExTag RT_MANGLER(RTMemSaferAllocZExTag) +# define RTMemSaferAllocZTag RT_MANGLER(RTMemSaferAllocZTag) +# define RTMemSaferFree RT_MANGLER(RTMemSaferFree) +# define RTMemSaferReallocZExTag RT_MANGLER(RTMemSaferReallocZExTag) +# define RTMemSaferReallocZTag RT_MANGLER(RTMemSaferReallocZTag) +# define RTMemSaferScramble RT_MANGLER(RTMemSaferScramble) +# define RTMemSaferUnscramble RT_MANGLER(RTMemSaferUnscramble) +# define RTErrConvertFromDarwin RT_MANGLER(RTErrConvertFromDarwin) +# define RTErrConvertFromDarwinCOM RT_MANGLER(RTErrConvertFromDarwinCOM) +# define RTErrConvertFromDarwinIO RT_MANGLER(RTErrConvertFromDarwinIO) +# define RTErrConvertFromDarwinKern RT_MANGLER(RTErrConvertFromDarwinKern) +# define RTErrConvertFromDarwin RT_MANGLER(RTErrConvertFromDarwin) +# define RTErrConvertFromDarwinIO RT_MANGLER(RTErrConvertFromDarwinIO) +# define RTErrConvertFromDarwinKern RT_MANGLER(RTErrConvertFromDarwinKern) +# define RTR0MachKernelClose RT_MANGLER(RTR0MachKernelClose) +# define RTR0MachKernelGetSymbol RT_MANGLER(RTR0MachKernelGetSymbol) +# define RTR0MachKernelOpen RT_MANGLER(RTR0MachKernelOpen) + /* * Stable variables (alphabetical order): */ @@ -1701,6 +2704,26 @@ # define g_szRTAssertMsg2 RT_MANGLER(g_szRTAssertMsg2) # define g_u32RTAssertLine RT_MANGLER(g_u32RTAssertLine) +/* sort/merge into the above later: */ +# define g_RTAsn1Time_Vtable RT_MANGLER(g_RTAsn1Time_Vtable) +# define g_RTAsn1String_Vtable RT_MANGLER(g_RTAsn1String_Vtable) +# define g_RTAsn1OctetString_Vtable RT_MANGLER(g_RTAsn1OctetString_Vtable) +# define g_RTAsn1ObjId_Vtable RT_MANGLER(g_RTAsn1ObjId_Vtable) +# define g_RTAsn1Null_Vtable RT_MANGLER(g_RTAsn1Null_Vtable) +# define g_RTAsn1Integer_Vtable RT_MANGLER(g_RTAsn1Integer_Vtable) +# define g_RTAsn1Core_Vtable RT_MANGLER(g_RTAsn1Core_Vtable) +# define g_RTAsn1Boolean_Vtable RT_MANGLER(g_RTAsn1Boolean_Vtable) +# define g_RTAsn1BitString_Vtable RT_MANGLER(g_RTAsn1BitString_Vtable) +# define g_RTAsn1DefaultAllocator RT_MANGLER(g_RTAsn1DefaultAllocator) +# define g_RTAsn1EFenceAllocator RT_MANGLER(g_RTAsn1EFenceAllocator) +#if 0 /* Disabled for now as I'm not sure the assmbler supports mangling yet. */ +# define g_abRTZeroPage RT_MANGLER(g_abRTZeroPage) +# define g_abRTZero4K RT_MANGLER(g_abRTZero4K) +# define g_abRTZero8K RT_MANGLER(g_abRTZero8K) +# define g_abRTZero16K RT_MANGLER(g_abRTZero16K) +# define g_abRTZero32K RT_MANGLER(g_abRTZero32K) +# define g_abRTZero64K RT_MANGLER(g_abRTZero64K) +#endif /* diff -Nru virtualbox-4.1.12-dfsg/include/iprt/md2.h virtualbox-4.1.44-dfsg/include/iprt/md2.h --- virtualbox-4.1.12-dfsg/include/iprt/md2.h 1970-01-01 00:00:00.000000000 +0000 +++ virtualbox-4.1.44-dfsg/include/iprt/md2.h 2015-11-11 15:06:03.000000000 +0000 @@ -0,0 +1,126 @@ +/** @file + * IPRT - Message-Digest Algorithm 2. + */ + +/* + * Copyright (C) 2006-2014 Oracle Corporation + * + * This file is part of VirtualBox Open Source Edition (OSE), as + * available from http://www.virtualbox.org. This file is free software; + * you can redistribute it and/or modify it under the terms of the GNU + * General Public License (GPL) as published by the Free Software + * Foundation, in version 2 as it comes in the "COPYING" file of the + * VirtualBox OSE distribution. VirtualBox OSE is distributed in the + * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind. + * + * The contents of this file may alternatively be used under the terms + * of the Common Development and Distribution License Version 1.0 + * (CDDL) only, as it comes in the "COPYING.CDDL" file of the + * VirtualBox OSE distribution, in which case the provisions of the + * CDDL are applicable instead of those of the GPL. + * + * You may elect to license modified versions of this file under the + * terms and conditions of either the GPL or the CDDL or both. + */ + +#ifndef ___iprt_md2_h +#define ___iprt_md2_h + +#include + +RT_C_DECLS_BEGIN + +/** @defgroup grp_rt_md2 RTMd2 - Message-Digest algorithm 2 + * @ingroup grp_rt + * @{ + */ + +/** Size of a MD2 hash. */ +#define RTMD2_HASH_SIZE 16 +/** The length of a MD2 digest string. The terminator is not included. */ +#define RTMD2_DIGEST_LEN 32 + +/** + * MD2 hash algorithm context. + */ +typedef union RTMD2CONTEXT +{ + uint64_t u64BetterAlignment; + uint8_t abPadding[4 + 16 + 16*4 + 16*4]; +#ifdef RT_MD2_PRIVATE_CONTEXT + MD2_CTX Private; +#endif +#ifdef RT_MD2_PRIVATE_ALT_CONTEXT + RTMD2ALTPRIVATECTX AltPrivate; +#endif +} RTMD2CONTEXT; + +/** Pointer to MD2 hash algorithm context. */ +typedef RTMD2CONTEXT *PRTMD2CONTEXT; + + +/** + * Compute the MD2 hash of the data. + * + * @param pvBuf Pointer to data. + * @param cbBuf Length of data (in bytes). + * @param pabDigest Where to store the hash. + * (What's passed is a pointer to the caller's buffer.) + */ +RTDECL(void) RTMd2(const void *pvBuf, size_t cbBuf, uint8_t pabDigest[RTMD2_HASH_SIZE]); + +/** + * Initialize MD2 context. + * + * @param pCtx Pointer to the MD2 context to initialize. + */ +RTDECL(void) RTMd2Init(PRTMD2CONTEXT pCtx); + +/** + * Feed data into the MD2 computation. + * + * @param pCtx Pointer to the MD2 context. + * @param pvBuf Pointer to data. + * @param cbBuf Length of data (in bytes). + */ +RTDECL(void) RTMd2Update(PRTMD2CONTEXT pCtx, const void *pvBuf, size_t cbBuf); + +/** + * Compute the MD2 hash of the data. + * + * @param pCtx Pointer to the MD2 context. + * @param pabDigest Where to store the hash. (What's passed is a pointer to + * the caller's buffer.) + */ +RTDECL(void) RTMd2Final(PRTMD2CONTEXT pCtx, uint8_t pabDigest[RTMD2_HASH_SIZE]); + +/** + * Converts a MD2 hash to a digest string. + * + * @returns IPRT status code. + * + * @param pabDigest The binary digest returned by RTMd2Final or RTMd2. + * @param pszDigest Where to return the stringified digest. + * @param cchDigest The size of the output buffer. Should be at least + * RTMD2_STRING_LEN + 1 bytes. + */ +RTDECL(int) RTMd2ToString(uint8_t const pabDigest[RTMD2_HASH_SIZE], char *pszDigest, size_t cchDigest); + +/** + * Converts a MD2 hash to a digest string. + * + * @returns IPRT status code. + * + * @param pszDigest The stringified digest. Leading and trailing spaces are + * ignored. + * @param pabDigest Where to store the hash. (What is passed is a pointer to + * the caller's buffer.) + */ +RTDECL(int) RTMd2FromString(char const *pszDigest, uint8_t pabDigest[RTMD2_HASH_SIZE]); + +/** @} */ + +RT_C_DECLS_END + +#endif + diff -Nru virtualbox-4.1.12-dfsg/include/iprt/md5.h virtualbox-4.1.44-dfsg/include/iprt/md5.h --- virtualbox-4.1.12-dfsg/include/iprt/md5.h 2012-04-02 13:24:45.000000000 +0000 +++ virtualbox-4.1.44-dfsg/include/iprt/md5.h 2015-11-11 15:06:03.000000000 +0000 @@ -46,13 +46,22 @@ /** * MD5 hash algorithm context. */ -typedef struct RTMD5CONTEXT +typedef union RTMD5CONTEXT { - uint32_t in[16]; - uint32_t buf[4]; - uint32_t bits[2]; + uint64_t u64BetterAlignment; + uint8_t abPadding[(4 + 6 + 16 + 1) * sizeof(uint32_t)]; + /** Context used by md5-alt.cpp. */ + struct + { + uint32_t in[16]; + uint32_t buf[4]; + uint32_t bits[2]; + } AltPrivate; +#ifdef RT_MD5_OPENSSL_PRIVATE_CONTEXT + /** Context used by md5-openssl.cpp. */ + MD5_CTX OsslPrivate; +#endif } RTMD5CONTEXT; - /** Pointer to MD5 hash algorithm context. */ typedef RTMD5CONTEXT *PRTMD5CONTEXT; diff -Nru virtualbox-4.1.12-dfsg/include/iprt/mem.h virtualbox-4.1.44-dfsg/include/iprt/mem.h --- virtualbox-4.1.12-dfsg/include/iprt/mem.h 2012-04-02 13:24:45.000000000 +0000 +++ virtualbox-4.1.44-dfsg/include/iprt/mem.h 2015-11-11 15:06:03.000000000 +0000 @@ -402,23 +402,6 @@ * @param cb The size of the memory block. */ RTR0DECL(int) RTR0MemExecDonate(void *pvMemory, size_t cb) RT_NO_THROW; - -/** - * Allocate read+write+execute memory to the exec heap. - * - * This API is specific to AMD64 and Linux/GNU. A kernel module that desires to - * use RTMemExecAlloc on AMD64 Linux/GNU will have to initialize some allocated - * memory in the module range if it wishes for GCC generated code to work. GCC - * can only generate modules that work in the address range ~2GB to ~0 currently. - * As RTR0MemExecDonate() does not work if CONFIG_DEBUG_SET_MODULE_RONX is - * enabled, use a different approach (only very recent Linux kernels). - * - * The API only accept one single initialization. - * - * @returns IPRT status code. - * @param cb The size of the memory block. - */ -RTR0DECL(int) RTR0MemExecInit(size_t cb) RT_NO_THROW; #endif /* R0+AMD64+LINUX */ /** diff -Nru virtualbox-4.1.12-dfsg/include/iprt/memsafer.h virtualbox-4.1.44-dfsg/include/iprt/memsafer.h --- virtualbox-4.1.12-dfsg/include/iprt/memsafer.h 1970-01-01 00:00:00.000000000 +0000 +++ virtualbox-4.1.44-dfsg/include/iprt/memsafer.h 2015-11-11 15:06:04.000000000 +0000 @@ -0,0 +1,226 @@ +/** @file + * IPRT - Memory Allocate for Sensitive Data. + */ + +/* + * Copyright (C) 2006-2014 Oracle Corporation + * + * This file is part of VirtualBox Open Source Edition (OSE), as + * available from http://www.virtualbox.org. This file is free software; + * you can redistribute it and/or modify it under the terms of the GNU + * General Public License (GPL) as published by the Free Software + * Foundation, in version 2 as it comes in the "COPYING" file of the + * VirtualBox OSE distribution. VirtualBox OSE is distributed in the + * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind. + * + * The contents of this file may alternatively be used under the terms + * of the Common Development and Distribution License Version 1.0 + * (CDDL) only, as it comes in the "COPYING.CDDL" file of the + * VirtualBox OSE distribution, in which case the provisions of the + * CDDL are applicable instead of those of the GPL. + * + * You may elect to license modified versions of this file under the + * terms and conditions of either the GPL or the CDDL or both. + */ + +#ifndef ___iprt_memsafer_h +#define ___iprt_memsafer_h + +#include /* RTMEM_TAG */ + +RT_C_DECLS_BEGIN + + +/** @defgroup grp_rt_memsafer RTMemSafer - Memory Allocator for Sensitive Data + * @ingroup grp_rt + * + * This API doesn't provide 100% secure storage, it only provider more secure + * and safer storage. Thus the API isn't called RTMemSafe because you cannot + * assume the data is safe against all kinds of extraction methods. + * + * The API guarantee that the memory won't be returned to the system containing + * any of the information you put there. It will be repeatedly wiped after use. + * + * The API tries to isolate your data from other information stored in the + * process/system. How well this is done depends on the implementation. The + * more complicated implementations will provide protection against heartbleed + * like bugs where pieces of the heap is copied onto the wire. + * + * The more hardened implementations of the API will also do their best to + * prevent the memory from ending up in process dumps or being readable by + * debuggers. + * + * Finally, two functions are provided for scrambling the sensitive memory while + * it's not in use. + * + * @{ + */ + + +/** + * Scrambles memory allocated by RTMemSaferAllocZEx and associates after use. + * + * Call this when the sensitive data isn't actively being used. It will at a + * minimum make sure the data is slightly scrambled, how hard it is to unbutton + * is dependent on which implementation is used and available host support. + * + * The user must synchronize calls to RTMemSaferScramble and + * RTMemSaferUnscramble, this memory allocator provides no help and keeps no + * state information around. + * + * @returns IPRT status code. + * @param pv The pointer returned by the allocation function. + * @param cb The exact size given to the allocation function. + */ +RTDECL(int) RTMemSaferScramble(void *pv, size_t cb); + +/** + * Unscrambles memory allocated by RTMemSaferAllocZEx and associates before use. + * + * This undoes the effect of RTMemSaferScramble. + * + * @returns IPRT status code. + * @param pv The pointer returned by the allocation function. + * @param cb The exact size given to the allocation function. + */ +RTDECL(int) RTMemSaferUnscramble(void *pv, size_t cb); + + +/** + * Allocates memory for sensitive data. + * + * Some effort will be taken to isolate the data from other memory allocation. + * Memory is always zeroed. + * + * @returns IPRT status code. + * @param ppvNew Where to return the pointer to the memory. + * @param cb Number of bytes to allocate. + * @param pszTag Allocation tag used for statistics and such. + */ +RTDECL(int) RTMemSaferAllocZExTag(void **ppvNew, size_t cb, const char *pszTag) RT_NO_THROW; + +/** + * Allocates memory for sensitive data. + * + * Some effort will be taken to isolate the data from other memory allocation. + * Memory is always zeroed. + * + * @returns IPRT status code. + * @param a_ppvNew Where to return the pointer to the memory. + * @param a_cb Number of bytes to allocate. + */ +#define RTMemSaferAllocZEx(a_ppvNew, a_cb) RTMemSaferAllocZExTag(a_ppvNew, a_cb, RTMEM_TAG) + +/** + * Allocates memory for sensitive data. + * + * Some effort will be taken to isolate the data from other memory allocation. + * Memory is always zeroed. + * + * @returns Pointer to the allocated memory. + * @param cb Number of bytes to allocate. + * @param pszTag Allocation tag used for statistics and such. + */ +RTDECL(void *) RTMemSaferAllocZTag(size_t cb, const char *pszTag) RT_NO_THROW; + +/** + * Allocates memory for sensitive data. + * + * Some effort will be taken to isolate the data from other memory allocation. + * Memory is always zeroed. + * + * @returns Pointer to the allocated memory. + * @param a_cb Number of bytes to allocate. + */ +#define RTMemSaferAllocZ(a_cb) RTMemSaferAllocZTag(a_cb, RTMEM_TAG) + + +/** + * Reallocates memory allocated by RTMemSaferAllocZEx, RTMemSaferAllocZ, + * RTMemSaferAllocZExTag, or RTMemSaferAllocZTag. + * + * When extending the allocation, the new memory will be zeroed. When shrinking + * the allocation the left over memory will be wiped clean using + * RTMemWipeThorougly. + * + * The function follows the standard realloc behavior. + * + * @returns IPRT status code. + * @param cbOld The current allocation size. + * @param pvOld The current allocation. + * @param cbNew The size of the new allocation. + * @param ppvNew Where to return the pointer to the new memory. + * @param pszTag Allocation tag used for statistics and such. + */ +RTDECL(int) RTMemSaferReallocZExTag(size_t cbOld, void *pvOld, size_t cbNew, void **ppvNew, const char *pszTag) RT_NO_THROW; + +/** + * Reallocates memory allocated by RTMemSaferAllocZEx, RTMemSaferAllocZ, + * RTMemSaferAllocZExTag, or RTMemSaferAllocZTag. + * + * When extending the allocation, the new memory will be zeroed. When shrinking + * the allocation the left over memory will be wiped clean using + * RTMemWipeThorougly. + * + * The function follows the standard realloc behavior. + * + * @returns IPRT status code. + * @param a_cbOld The current allocation size. + * @param a_pvOld The current allocation. + * @param a_cbNew The size of the new allocation. + * @param a_ppvNew Where to return the pointer to the new memory. + */ +#define RTMemSaferReallocZEx(a_cbOld, a_pvOld, a_cbNew, a_ppvNew) \ + RTMemSaferReallocZExTag(a_cbOld, a_pvOld, a_cbNew, a_ppvNew, RTMEM_TAG) + +/** + * Reallocates memory allocated by RTMemSaferAllocZ or RTMemSaferAllocZTag. + * + * When extending the allocation, the new memory will be zeroed. When shrinking + * the allocation the left over memory will be wiped clean using + * RTMemWipeThorougly. + * + * The function follows the standard realloc behavior. + * + * @returns Pointer to the allocated memory. + * @param cbOld The current allocation size. + * @param pvOld The current allocation. + * @param cbNew The size of the new allocation. + * @param pszTag Allocation tag used for statistics and such. + */ +RTDECL(void *) RTMemSaferReallocZTag(size_t cbOld, void *pvOld, size_t cbNew, const char *pszTag) RT_NO_THROW; + +/** + * Reallocates memory allocated by RTMemSaferAllocZ or RTMemSaferAllocZTag. + * + * When extending the allocation, the new memory will be zeroed. When shrinking + * the allocation the left over memory will be wiped clean using + * RTMemWipeThorougly. + * + * The function follows the standard realloc behavior. + * + * @returns Pointer to the allocated memory. + * @param a_cbOld The current allocation size. + * @param a_pvOld The current allocation. + * @param a_cbNew The size of the new allocation. + */ +#define RTMemSaferReallocZ(a_cbOld, a_pvOld, a_cbNew) RTMemSaferReallocZTag(a_cbOld, a_pvOld, a_cbNew, RTMEM_TAG) + + +/** + * Frees memory allocated by RTMemSaferAllocZ* or RTMemSaferReallocZ*. + * + * Before freeing the allocated memory, it will be wiped clean using + * RTMemWipeThorougly. + * + * @returns Pointer to the allocated memory. + * @param pv The allocation. + * @param cb The allocation size. + */ +RTDECL(void) RTMemSaferFree(void *pv, size_t cb) RT_NO_THROW; + +/** @} */ +RT_C_DECLS_END + +#endif + diff -Nru virtualbox-4.1.12-dfsg/include/iprt/nt/nt-and-windows.h virtualbox-4.1.44-dfsg/include/iprt/nt/nt-and-windows.h --- virtualbox-4.1.12-dfsg/include/iprt/nt/nt-and-windows.h 1970-01-01 00:00:00.000000000 +0000 +++ virtualbox-4.1.44-dfsg/include/iprt/nt/nt-and-windows.h 2015-11-11 15:06:04.000000000 +0000 @@ -0,0 +1,78 @@ +/* $Id: nt-and-windows.h $ */ +/** @file + * IPRT - Header for code using both NT native and Windows APIs. + */ + +/* + * Copyright (C) 2013 Oracle Corporation + * + * This file is part of VirtualBox Open Source Edition (OSE), as + * available from http://www.virtualbox.org. This file is free software; + * you can redistribute it and/or modify it under the terms of the GNU + * General Public License (GPL) as published by the Free Software + * Foundation, in version 2 as it comes in the "COPYING" file of the + * VirtualBox OSE distribution. VirtualBox OSE is distributed in the + * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind. + * + * The contents of this file may alternatively be used under the terms + * of the Common Development and Distribution License Version 1.0 + * (CDDL) only, as it comes in the "COPYING.CDDL" file of the + * VirtualBox OSE distribution, in which case the provisions of the + * CDDL are applicable instead of those of the GPL. + * + * You may elect to license modified versions of this file under the + * terms and conditions of either the GPL or the CDDL or both. + */ + +#ifndef ___iprt_nt_nt_and_windows_h +#define ___iprt_nt_nt_and_windows_h + +#if (_MSC_VER >= 1400) && !defined(VBOX_WITH_PATCHED_DDK) +# define _InterlockedExchange _InterlockedExchange_StupidDDKVsCompilerCrap +# define _InterlockedExchangeAdd _InterlockedExchangeAdd_StupidDDKVsCompilerCrap +# define _InterlockedCompareExchange _InterlockedCompareExchange_StupidDDKVsCompilerCrap +# define _InterlockedAddLargeStatistic _InterlockedAddLargeStatistic_StupidDDKVsCompilerCrap +# define _interlockedbittestandset _interlockedbittestandset_StupidDDKVsCompilerCrap +# define _interlockedbittestandreset _interlockedbittestandreset_StupidDDKVsCompilerCrap +# define _interlockedbittestandset64 _interlockedbittestandset64_StupidDDKVsCompilerCrap +# define _interlockedbittestandreset64 _interlockedbittestandreset64_StupidDDKVsCompilerCrap +# pragma warning(disable : 4163) +# endif + +#define _PEB IncompleteWindows__PEB +#define PEB IncompleteWindows_PEB +#define PPEB IncompleteWindows_PPEB + +#define _TEB IncompleteWindows__TEB +#define TEB IncompleteWindows_TEB +#define PTEB IncompleteWindows_PTEB + +#define IPRT_NT_USE_WINTERNL +#define WIN32_NO_STATUS +#include +#undef WIN32_NO_STATUS + +#undef _PEB +#undef PEB +#undef PPEB + +#undef _TEB +#undef TEB +#undef PTEB + +#include + +#if (_MSC_VER >= 1400) && !defined(VBOX_WITH_PATCHED_DDK) +# pragma warning(default : 4163) +# undef _InterlockedExchange +# undef _InterlockedExchangeAdd +# undef _InterlockedCompareExchange +# undef _InterlockedAddLargeStatistic +# undef _interlockedbittestandset +# undef _interlockedbittestandreset +# undef _interlockedbittestandset64 +# undef _interlockedbittestandreset64 +#endif + +#endif + diff -Nru virtualbox-4.1.12-dfsg/include/iprt/nt/nt.h virtualbox-4.1.44-dfsg/include/iprt/nt/nt.h --- virtualbox-4.1.12-dfsg/include/iprt/nt/nt.h 1970-01-01 00:00:00.000000000 +0000 +++ virtualbox-4.1.44-dfsg/include/iprt/nt/nt.h 2015-11-11 15:06:04.000000000 +0000 @@ -0,0 +1,2734 @@ +/* $Id: nt.h $ */ +/** @file + * IPRT - Header for code using the Native NT API. + */ + +/* + * Copyright (C) 2010-2014 Oracle Corporation + * + * This file is part of VirtualBox Open Source Edition (OSE), as + * available from http://www.virtualbox.org. This file is free software; + * you can redistribute it and/or modify it under the terms of the GNU + * General Public License (GPL) as published by the Free Software + * Foundation, in version 2 as it comes in the "COPYING" file of the + * VirtualBox OSE distribution. VirtualBox OSE is distributed in the + * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind. + * + * The contents of this file may alternatively be used under the terms + * of the Common Development and Distribution License Version 1.0 + * (CDDL) only, as it comes in the "COPYING.CDDL" file of the + * VirtualBox OSE distribution, in which case the provisions of the + * CDDL are applicable instead of those of the GPL. + * + * You may elect to license modified versions of this file under the + * terms and conditions of either the GPL or the CDDL or both. + */ + +#ifndef ___iprt_nt_nt_h___ +#define ___iprt_nt_nt_h___ + +/** @def IPRT_NT_MAP_TO_ZW + * Map Nt calls to Zw calls. In ring-0 the Zw calls let you pass kernel memory + * to the APIs (takes care of the previous context checks). + */ +#ifdef DOXYGEN_RUNNING +# define IPRT_NT_MAP_TO_ZW +#endif + +#ifdef IPRT_NT_MAP_TO_ZW +# define NtQueryInformationFile ZwQueryInformationFile +# define NtQueryInformationProcess ZwQueryInformationProcess +# define NtQueryInformationThread ZwQueryInformationThread +# define NtQuerySystemInformation ZwQuerySystemInformation +# define NtQueryVolumeInformationFile ZwQueryVolumeInformationFile +# define NtQuerySecurityObject ZwQuerySecurityObject +# define NtClose ZwClose +# define NtCreateFile ZwCreateFile +# define NtReadFile ZwReadFile +# define NtWriteFile ZwWriteFile +# define NtFlushBuffersFile ZwFlushBuffersFile +/** @todo this is very incomplete! */ +#endif + +#include + +/* + * Hacks common to both base header sets. + */ +#define RtlFreeUnicodeString WrongLinkage_RtlFreeUnicodeString +#define NtQueryObject Incomplete_NtQueryObject +#define ZwQueryObject Incomplete_ZwQueryObject +#define NtSetInformationObject Incomplete_NtSetInformationObject +#define _OBJECT_INFORMATION_CLASS Incomplete_OBJECT_INFORMATION_CLASS +#define OBJECT_INFORMATION_CLASS Incomplete_OBJECT_INFORMATION_CLASS +#define ObjectBasicInformation Incomplete_ObjectBasicInformation +#define ObjectTypeInformation Incomplete_ObjectTypeInformation +#define _PEB Incomplete__PEB +#define PEB Incomplete_PEB +#define PPEB Incomplete_PPEB +#define _TEB Incomplete__TEB +#define TEB Incomplete_TEB +#define PTEB Incomplete_PTEB +#define _PEB_LDR_DATA Incomplete__PEB_LDR_DATA +#define PEB_LDR_DATA Incomplete_PEB_LDR_DATA +#define PPEB_LDR_DATA Incomplete_PPEB_LDR_DATA + +#define PROCESSINFOCLASS IncompleteOld_PROCESSINFOCLASS +#define _PROCESSINFOCLASS IncompleteOld_PROCESSINFOCLASS +#define NtWaitForSingleObject Hide_NtWaitForSingleObject_Declaration + + +#ifdef IPRT_NT_USE_WINTERNL +/* + * Use Winternl.h. + */ +# define _FILE_INFORMATION_CLASS IncompleteWinternl_FILE_INFORMATION_CLASS +# define FILE_INFORMATION_CLASS IncompleteWinternl_FILE_INFORMATION_CLASS +# define FileDirectoryInformation IncompleteWinternl_FileDirectoryInformation + +# define NtClose NotStdcallWinternl_NtClose +# define NtCreateFile NotStdcallWinternl_NtCreateFile +# define NtDeviceIoControlFile NotStdcallWinternl_NtDeviceIoControlFile +# define RtlNtStatusToDosError NotStdcallWinternl_RtlNtStatusToDosError + +# define NtQueryInformationProcess IncompleteWinternl_NtQueryInformationProcess +# define NtSetInformationProcess IncompleteWinternl_NtSetInformationProcess +# define PROCESS_BASIC_INFORMATION IncompleteWinternl_PROCESS_BASIC_INFORMATION +# define PPROCESS_BASIC_INFORMATION IncompleteWinternl_PPROCESS_BASIC_INFORMATION +# define _PROCESS_BASIC_INFORMATION IncompleteWinternl_PROCESS_BASIC_INFORMATION +# define ProcessBasicInformation IncompleteWinternl_ProcessBasicInformation +# define ProcessDebugPort IncompleteWinternl_ProcessDebugPort +# define ProcessWow64Information IncompleteWinternl_ProcessWow64Information +# define ProcessImageFileName IncompleteWinternl_ProcessImageFileName +# define ProcessBreakOnTermination IncompleteWinternl_ProcessBreakOnTermination + +# define RTL_USER_PROCESS_PARAMETERS IncompleteWinternl_RTL_USER_PROCESS_PARAMETERS +# define PRTL_USER_PROCESS_PARAMETERS IncompleteWinternl_PRTL_USER_PROCESS_PARAMETERS +# define _RTL_USER_PROCESS_PARAMETERS IncompleteWinternl__RTL_USER_PROCESS_PARAMETERS + +# define NtQueryInformationThread IncompleteWinternl_NtQueryInformationThread +# define NtSetInformationThread IncompleteWinternl_NtSetInformationThread +# define THREADINFOCLASS IncompleteWinternl_THREADINFOCLASS +# define _THREADINFOCLASS IncompleteWinternl_THREADINFOCLASS +# define ThreadIsIoPending IncompleteWinternl_ThreadIsIoPending + +# define NtQuerySystemInformation IncompleteWinternl_NtQuerySystemInformation +# define NtSetSystemInformation IncompleteWinternl_NtSetSystemInformation +# define SYSTEM_INFORMATION_CLASS IncompleteWinternl_SYSTEM_INFORMATION_CLASS +# define _SYSTEM_INFORMATION_CLASS IncompleteWinternl_SYSTEM_INFORMATION_CLASS +# define SystemBasicInformation IncompleteWinternl_SystemBasicInformation +# define SystemPerformanceInformation IncompleteWinternl_SystemPerformanceInformation +# define SystemTimeOfDayInformation IncompleteWinternl_SystemTimeOfDayInformation +# define SystemProcessInformation IncompleteWinternl_SystemProcessInformation +# define SystemProcessorPerformanceInformation IncompleteWinternl_SystemProcessorPerformanceInformation +# define SystemInterruptInformation IncompleteWinternl_SystemInterruptInformation +# define SystemExceptionInformation IncompleteWinternl_SystemExceptionInformation +# define SystemRegistryQuotaInformation IncompleteWinternl_SystemRegistryQuotaInformation +# define SystemLookasideInformation IncompleteWinternl_SystemLookasideInformation +# define SystemPolicyInformation IncompleteWinternl_SystemPolicyInformation + + +# ifndef _WIN32_WINNT /* Must be >= 0x0500 or winternl.h is empty. */ +# define _WIN32_WINNT 0x0502 +# elif _WIN32_WINNT < 0x0500 +# undef _WIN32_WINNT +# define _WIN32_WINNT 0x0502 +# endif +# define WIN32_NO_STATUS +# include +# include +# include +# undef WIN32_NO_STATUS +# include + + +# undef _FILE_INFORMATION_CLASS +# undef FILE_INFORMATION_CLASS +# undef FileDirectoryInformation + +# undef NtClose +# undef NtCreateFile +# undef NtDeviceIoControlFile +# undef RtlNtStatusToDosError + +# undef NtQueryInformationProcess +# undef NtSetInformationProcess +# undef PROCESS_BASIC_INFORMATION +# undef PPROCESS_BASIC_INFORMATION +# undef _PROCESS_BASIC_INFORMATION +# undef ProcessBasicInformation +# undef ProcessDebugPort +# undef ProcessWow64Information +# undef ProcessImageFileName +# undef ProcessBreakOnTermination + +# undef RTL_USER_PROCESS_PARAMETERS +# undef PRTL_USER_PROCESS_PARAMETERS +# undef _RTL_USER_PROCESS_PARAMETERS + +# undef NtQueryInformationThread +# undef NtSetInformationThread +# undef THREADINFOCLASS +# undef _THREADINFOCLASS +# undef ThreadIsIoPending + +# undef NtQuerySystemInformation +# undef NtSetSystemInformation +# undef SYSTEM_INFORMATION_CLASS +# undef _SYSTEM_INFORMATION_CLASS +# undef SystemBasicInformation +# undef SystemPerformanceInformation +# undef SystemTimeOfDayInformation +# undef SystemProcessInformation +# undef SystemProcessorPerformanceInformation +# undef SystemInterruptInformation +# undef SystemExceptionInformation +# undef SystemRegistryQuotaInformation +# undef SystemLookasideInformation +# undef SystemPolicyInformation + +#else +/* + * Use ntifs.h and wdm.h. + */ +# ifdef RT_ARCH_X86 +# define _InterlockedAddLargeStatistic _InterlockedAddLargeStatistic_StupidDDKVsCompilerCrap +# pragma warning(disable : 4163) +# endif + +# if (_MSC_VER >= 1400) && !defined(VBOX_WITH_PATCHED_DDK) +# define _InterlockedExchange _InterlockedExchange_StupidDDKVsCompilerCrap +# define _InterlockedExchangeAdd _InterlockedExchangeAdd_StupidDDKVsCompilerCrap +# define _InterlockedCompareExchange _InterlockedCompareExchange_StupidDDKVsCompilerCrap +# define _InterlockedAddLargeStatistic _InterlockedAddLargeStatistic_StupidDDKVsCompilerCrap +# define _interlockedbittestandset _interlockedbittestandset_StupidDDKVsCompilerCrap +# define _interlockedbittestandreset _interlockedbittestandreset_StupidDDKVsCompilerCrap +# define _interlockedbittestandset64 _interlockedbittestandset64_StupidDDKVsCompilerCrap +# define _interlockedbittestandreset64 _interlockedbittestandreset64_StupidDDKVsCompilerCrap +# pragma warning(disable : 4163) +# endif + +# if 0 /* grr */ +# include +# endif +# include +# pragma pack() /* reset it in case wdm.h screws things up (ddk 6001). */ + +# if (_MSC_VER >= 1400) && !defined(VBOX_WITH_PATCHED_DDK) +# pragma warning(default : 4163) +# undef _InterlockedExchange +# undef _InterlockedExchangeAdd +# undef _InterlockedCompareExchange +# undef _InterlockedAddLargeStatistic +# undef _interlockedbittestandset +# undef _interlockedbittestandreset +# undef _interlockedbittestandset64 +# undef _interlockedbittestandreset64 +# endif + +# ifdef RT_ARCH_X86 +# pragma warning(default : 4163) +# undef _InterlockedAddLargeStatistic +# endif + +# define IPRT_NT_NEED_API_GROUP_NTIFS +#endif + +#undef RtlFreeUnicodeString +#undef NtQueryObject +#undef ZwQueryObject +#undef NtSetInformationObject +#undef _OBJECT_INFORMATION_CLASS +#undef OBJECT_INFORMATION_CLASS +#undef ObjectBasicInformation +#undef ObjectTypeInformation +#undef _PEB +#undef PEB +#undef PPEB +#undef _TEB +#undef TEB +#undef PTEB +#undef _PEB_LDR_DATA +#undef PEB_LDR_DATA +#undef PPEB_LDR_DATA + +#undef PROCESSINFOCLASS +#undef _PROCESSINFOCLASS +#undef NtWaitForSingleObject + + +#include +#include + + +/** @name Useful macros + * @{ */ +/** Indicates that we're targetting native NT in the current source. */ +#define RTNT_USE_NATIVE_NT 1 +/** Initializes a IO_STATUS_BLOCK. */ +#define RTNT_IO_STATUS_BLOCK_INITIALIZER { STATUS_FAILED_DRIVER_ENTRY, ~(uintptr_t)42 } +/** Reinitializes a IO_STATUS_BLOCK. */ +#define RTNT_IO_STATUS_BLOCK_REINIT(a_pIos) \ + do { (a_pIos)->Status = STATUS_FAILED_DRIVER_ENTRY; (a_pIos)->Information = ~(uintptr_t)42; } while (0) +/** Similar to INVALID_HANDLE_VALUE in the Windows environment. */ +#define RTNT_INVALID_HANDLE_VALUE ( (HANDLE)~(uintptr_t)0 ) +/** Constant UNICODE_STRING initializer. */ +#define RTNT_CONSTANT_UNISTR(a_String) { sizeof(a_String) - sizeof(WCHAR), sizeof(a_String), (WCHAR *)a_String } +/** @} */ + + +/** @name IPRT helper functions for NT + * @{ */ +RT_C_DECLS_BEGIN + +RTDECL(int) RTNtPathOpen(const char *pszPath, ACCESS_MASK fDesiredAccess, ULONG fFileAttribs, ULONG fShareAccess, + ULONG fCreateDisposition, ULONG fCreateOptions, ULONG fObjAttribs, + PHANDLE phHandle, PULONG_PTR puDisposition); +RTDECL(int) RTNtPathOpenDir(const char *pszPath, ACCESS_MASK fDesiredAccess, ULONG fShareAccess, ULONG fCreateOptions, + ULONG fObjAttribs, PHANDLE phHandle, bool *pfObjDir); +RTDECL(int) RTNtPathClose(HANDLE hHandle); + +/** + * Converts a UTF-16 windows-style path to NT format. + * + * @returns IPRT status code. + * @param pNtName Where to return the NT name. Free using + * RTNtPathFree. + * @param phRootDir Where to return the root handle, if applicable. + * @param pwszPath The UTF-16 windows-style path. + * @param cwcPath The max length of the windows-style path in + * RTUTF16 units. Use RTSTR_MAX if unknown and @a + * pwszPath is correctly terminated. + */ +RTDECL(int) RTNtPathFromWinUtf16Ex(struct _UNICODE_STRING *pNtName, HANDLE *phRootDir, PCRTUTF16 pwszPath, size_t cwcPath); + +/** + * Frees the native path and root handle. + * + * @param pNtName The NT path after a successful + * RTNtPathFromWinUtf16Ex call. + * @param phRootDir The root handle variable after a successfull + * RTNtPathFromWinUtf16Ex call. + */ +RTDECL(void) RTNtPathFree(struct _UNICODE_STRING *pNtName, HANDLE *phRootDir); + + +RT_C_DECLS_END +/** @} */ + + +/** @name NT API delcarations. + * @{ */ +RT_C_DECLS_BEGIN + +#ifndef NT_SUCCESS +# define NT_SUCCESS(a_rcNt) ((LONG)a_rcNt >= 0) +#endif + + +/** @name Process access rights missing in ntddk headers + * @{ */ +#ifndef PROCESS_TERMINATE +# define PROCESS_TERMINATE UINT32_C(0x00000001) +#endif +#ifndef PROCESS_CREATE_THREAD +# define PROCESS_CREATE_THREAD UINT32_C(0x00000002) +#endif +#ifndef PROCESS_SET_SESSIONID +# define PROCESS_SET_SESSIONID UINT32_C(0x00000004) +#endif +#ifndef PROCESS_VM_OPERATION +# define PROCESS_VM_OPERATION UINT32_C(0x00000008) +#endif +#ifndef PROCESS_VM_READ +# define PROCESS_VM_READ UINT32_C(0x00000010) +#endif +#ifndef PROCESS_VM_WRITE +# define PROCESS_VM_WRITE UINT32_C(0x00000020) +#endif +#ifndef PROCESS_DUP_HANDLE +# define PROCESS_DUP_HANDLE UINT32_C(0x00000040) +#endif +#ifndef PROCESS_CREATE_PROCESS +# define PROCESS_CREATE_PROCESS UINT32_C(0x00000080) +#endif +#ifndef PROCESS_SET_QUOTA +# define PROCESS_SET_QUOTA UINT32_C(0x00000100) +#endif +#ifndef PROCESS_SET_INFORMATION +# define PROCESS_SET_INFORMATION UINT32_C(0x00000200) +#endif +#ifndef PROCESS_QUERY_INFORMATION +# define PROCESS_QUERY_INFORMATION UINT32_C(0x00000400) +#endif +#ifndef PROCESS_SUSPEND_RESUME +# define PROCESS_SUSPEND_RESUME UINT32_C(0x00000800) +#endif +#ifndef PROCESS_QUERY_LIMITED_INFORMATION +# define PROCESS_QUERY_LIMITED_INFORMATION UINT32_C(0x00001000) +#endif +#ifndef PROCESS_SET_LIMITED_INFORMATION +# define PROCESS_SET_LIMITED_INFORMATION UINT32_C(0x00002000) +#endif +#define PROCESS_UNKNOWN_4000 UINT32_C(0x00004000) +#define PROCESS_UNKNOWN_6000 UINT32_C(0x00008000) +#ifndef PROCESS_ALL_ACCESS +# define PROCESS_ALL_ACCESS ( STANDARD_RIGHTS_REQUIRED | SYNCHRONIZE | UINT32_C(0x0000ffff) ) +#endif +/** @} */ + +/** @name Thread access rights missing in ntddk headers + * @{ */ +#ifndef THREAD_QUERY_INFORMATION +# define THREAD_QUERY_INFORMATION UINT32_C(0x00000040) +#endif +#ifndef THREAD_SET_THREAD_TOKEN +# define THREAD_SET_THREAD_TOKEN UINT32_C(0x00000080) +#endif +#ifndef THREAD_IMPERSONATE +# define THREAD_IMPERSONATE UINT32_C(0x00000100) +#endif +#ifndef THREAD_DIRECT_IMPERSONATION +# define THREAD_DIRECT_IMPERSONATION UINT32_C(0x00000200) +#endif +#ifndef THREAD_RESUME +# define THREAD_RESUME UINT32_C(0x00001000) +#endif +#define THREAD_UNKNOWN_2000 UINT32_C(0x00002000) +#define THREAD_UNKNOWN_4000 UINT32_C(0x00004000) +#define THREAD_UNKNOWN_8000 UINT32_C(0x00008000) +/** @} */ + +/** @name Special handle values. + * @{ */ +#ifndef NtCurrentProcess +# define NtCurrentProcess() ( (HANDLE)-(intptr_t)1 ) +#endif +#ifndef NtCurrentThread +# define NtCurrentThread() ( (HANDLE)-(intptr_t)2 ) +#endif +#ifndef ZwCurrentProcess +# define ZwCurrentProcess() NtCurrentProcess() +#endif +#ifndef ZwCurrentThread +# define ZwCurrentThread() NtCurrentThread() +#endif +/** @} */ + + +/** @name Directory object access rights. + * @{ */ +#ifndef DIRECTORY_QUERY +# define DIRECTORY_QUERY UINT32_C(0x00000001) +#endif +#ifndef DIRECTORY_TRAVERSE +# define DIRECTORY_TRAVERSE UINT32_C(0x00000002) +#endif +#ifndef DIRECTORY_CREATE_OBJECT +# define DIRECTORY_CREATE_OBJECT UINT32_C(0x00000004) +#endif +#ifndef DIRECTORY_CREATE_SUBDIRECTORY +# define DIRECTORY_CREATE_SUBDIRECTORY UINT32_C(0x00000008) +#endif +#ifndef DIRECTORY_ALL_ACCESS +# define DIRECTORY_ALL_ACCESS ( STANDARD_RIGHTS_REQUIRED | UINT32_C(0x0000000f) ) +#endif +/** @} */ + +/* Posssibly Missing in older WDKs/DDKs: */ + +/** @name Object attributes. + * @{ */ +#ifndef OBJ_INHERIT +# define OBJ_INHERIT UINT32_C(0x00000002) +#endif +#ifndef OBJ_PERMANENT +# define OBJ_PERMANENT UINT32_C(0x00000010) +#endif +#ifndef OBJ_EXCLUSIVE +# define OBJ_EXCLUSIVE UINT32_C(0x00000020) +#endif +#ifndef OBJ_CASE_INSENSITIVE +# define OBJ_CASE_INSENSITIVE UINT32_C(0x00000040) +#endif +#ifndef OBJ_OPENIF +# define OBJ_OPENIF UINT32_C(0x00000080) +#endif +#ifndef OBJ_OPENLINK +# define OBJ_OPENLINK UINT32_C(0x00000100) +#endif +#ifndef OBJ_KERNEL_HANDLE +# define OBJ_KERNEL_HANDLE UINT32_C(0x00000200) +#endif +#ifndef InitializeObjectAttributes +# define InitializeObjectAttributes(a_pObjAttrs, a_pName, a_fAttribs, a_hRoot, a_pSecDesc) \ + do { \ + (a_pObjAttrs)->Length = sizeof(OBJECT_ATTRIBUTES); \ + (a_pObjAttrs)->RootDirectory = (a_hRoot); \ + (a_pObjAttrs)->ObjectName = (a_pName); \ + (a_pObjAttrs)->Attributes = (a_fAttribs); \ + (a_pObjAttrs)->SecurityDescriptor = (a_pSecDesc); \ + (a_pObjAttrs)->SecurityQualityOfService = NULL; \ + } while (0) +#endif +/** @ */ + +/** @name File open/create dispositions. + * @{ */ +#ifndef FILE_SUPERSEDE +# define FILE_SUPERSEDE UINT32_C(0x00000000) +#endif +#ifndef FILE_OPEN +# define FILE_OPEN UINT32_C(0x00000001) +#endif +#ifndef FILE_CREATE +# define FILE_CREATE UINT32_C(0x00000002) +#endif +#ifndef FILE_OPEN_IF +# define FILE_OPEN_IF UINT32_C(0x00000003) +#endif +#ifndef FILE_OVERWRITE +# define FILE_OVERWRITE UINT32_C(0x00000004) +#endif +#ifndef FILE_OVERWRITE_IF +# define FILE_OVERWRITE_IF UINT32_C(0x00000005) +#endif +#ifndef FILE_MAXIMUM_DISPOSITION +# define FILE_MAXIMUM_DISPOSITION UINT32_C(0x00000005) +#endif +/** @} */ + +/** @name Open/create flags. + * @{ */ +#ifndef FILE_DIRECTORY_FILE +# define FILE_DIRECTORY_FILE UINT32_C(0x00000001) +#endif +#ifndef FILE_WRITE_THROUGH +# define FILE_WRITE_THROUGH UINT32_C(0x00000002) +#endif +#ifndef FILE_SEQUENTIAL_ONLY +# define FILE_SEQUENTIAL_ONLY UINT32_C(0x00000004) +#endif +#ifndef FILE_NO_INTERMEDIATE_BUFFERING +# define FILE_NO_INTERMEDIATE_BUFFERING UINT32_C(0x00000008) +#endif +#ifndef FILE_SYNCHRONOUS_IO_ALERT +# define FILE_SYNCHRONOUS_IO_ALERT UINT32_C(0x00000010) +#endif +#ifndef FILE_SYNCHRONOUS_IO_NONALERT +# define FILE_SYNCHRONOUS_IO_NONALERT UINT32_C(0x00000020) +#endif +#ifndef FILE_NON_DIRECTORY_FILE +# define FILE_NON_DIRECTORY_FILE UINT32_C(0x00000040) +#endif +#ifndef FILE_CREATE_TREE_CONNECTION +# define FILE_CREATE_TREE_CONNECTION UINT32_C(0x00000080) +#endif +#ifndef FILE_COMPLETE_IF_OPLOCKED +# define FILE_COMPLETE_IF_OPLOCKED UINT32_C(0x00000100) +#endif +#ifndef FILE_NO_EA_KNOWLEDGE +# define FILE_NO_EA_KNOWLEDGE UINT32_C(0x00000200) +#endif +#ifndef FILE_OPEN_FOR_RECOVERY +# define FILE_OPEN_FOR_RECOVERY UINT32_C(0x00000400) +#endif +#ifndef FILE_RANDOM_ACCESS +# define FILE_RANDOM_ACCESS UINT32_C(0x00000800) +#endif +#ifndef FILE_DELETE_ON_CLOSE +# define FILE_DELETE_ON_CLOSE UINT32_C(0x00001000) +#endif +#ifndef FILE_OPEN_BY_FILE_ID +# define FILE_OPEN_BY_FILE_ID UINT32_C(0x00002000) +#endif +#ifndef FILE_OPEN_FOR_BACKUP_INTENT +# define FILE_OPEN_FOR_BACKUP_INTENT UINT32_C(0x00004000) +#endif +#ifndef FILE_NO_COMPRESSION +# define FILE_NO_COMPRESSION UINT32_C(0x00008000) +#endif +#ifndef FILE_RESERVE_OPFILTER +# define FILE_RESERVE_OPFILTER UINT32_C(0x00100000) +#endif +#ifndef FILE_TRANSACTED_MODE +# define FILE_TRANSACTED_MODE UINT32_C(0x00200000) +#endif +#ifndef FILE_OPEN_OFFLINE_FILE +# define FILE_OPEN_OFFLINE_FILE UINT32_C(0x00400000) +#endif +#ifndef FILE_OPEN_FOR_FREE_SPACE_QUERY +# define FILE_OPEN_FOR_FREE_SPACE_QUERY UINT32_C(0x00800000) +#endif +/** @} */ + +#ifndef SECURITY_SERVICE_ID_BASE_RID +# define SECURITY_SERVICE_ID_BASE_RID UINT32_C(0x00000050) +#endif +#ifndef SECURITY_SERVICE_ID_RID_COUNT +# define SECURITY_SERVICE_ID_RID_COUNT UINT8_C(6) +#endif +#ifndef SECURITY_NT_AUTHORITY +# define SECURITY_NT_AUTHORITY { UINT8_C(0), UINT8_C(0), UINT8_C(0), UINT8_C(0), UINT8_C(0), UINT8_C(5) } +#endif +#ifndef SECURITY_LOCAL_SYSTEM_RID +# define SECURITY_LOCAL_SYSTEM_RID UINT32_C(0x00000012) +#endif +#ifndef SECURITY_BUILTIN_DOMAIN_RID +# define SECURITY_BUILTIN_DOMAIN_RID UINT32_C(0x00000020) +#endif +#ifndef DOMAIN_ALIAS_RID_ADMINS +# define DOMAIN_ALIAS_RID_ADMINS UINT32_C(0x00000220) +#endif + + +typedef struct _PROCESSOR_NUMBER +{ + uint16_t Group; + uint8_t Number; + uint8_t Reserved; +} PROCESSOR_NUMBER; +typedef PROCESSOR_NUMBER *PPROCESSOR_NUMBER; + +typedef struct _LDR_DATA_TABLE_ENTRY +{ + PVOID Reserved1[2]; + LIST_ENTRY InMemoryOrderLinks; + PVOID Reserved2[2]; + PVOID DllBase; + PVOID Reserved3[2]; + UNICODE_STRING FullDllName; + uint8_t Reserved4[8]; + PVOID Reserved5[3]; + union + { + ULONG CheckSum; + PVOID Reserved6; + }; + ULONG TimeDateStamp; +} LDR_DATA_TABLE_ENTRY; +typedef LDR_DATA_TABLE_ENTRY *PLDR_DATA_TABLE_ENTRY; + +#ifndef SID_IDENTIFIER_AUTHORITY_DEFINED +# define SID_IDENTIFIER_AUTHORITY_DEFINED +typedef struct _SID_IDENTIFIER_AUTHORITY +{ + uint8_t Value[6]; +} SID_IDENTIFIER_AUTHORITY; +typedef SID_IDENTIFIER_AUTHORITY *PSID_IDENTIFIER_AUTHORITY; +#endif + +#ifndef SID_DEFINED +# define SID_DEFINED +typedef struct _SID +{ + uint8_t Revision; + uint8_t SubAuthorityCount; + SID_IDENTIFIER_AUTHORITY IdentifierAuthority; + uint32_t SubAuthority[1]; +} SID; +#endif + +#ifndef SID_MAX_SUB_AUTHORITIES +# define SID_MAX_SUB_AUTHORITIES 15 +#endif +#ifndef SECURITY_MAX_SID_SIZE +# define SECURITY_MAX_SID_SIZE (8 * sizeof(uint8_t) + SID_MAX_SUB_AUTHORITIES * sizeof(uint32_t)) +#endif + +#ifndef SE_SELF_RELATIVE + +# define SE_SELF_RELATIVE UINT16_C(0x8000) + +typedef uint16_t SECURITY_DESCRIPTOR_CONTROL; +typedef SECURITY_DESCRIPTOR_CONTROL *PSECURITY_DESCRIPTOR_CONTROL; + +typedef struct _SECURITY_DESCRIPTOR_RELATIVE +{ + uint8_t Revision; + uint8_t Sbz1; + SECURITY_DESCRIPTOR_CONTROL Control; + uint32_t Owner; + uint32_t Group; + uint32_t Sacl; + uint32_t Dacl; +} SECURITY_DESCRIPTOR_RELATIVE; +typedef SECURITY_DESCRIPTOR_RELATIVE *PISECURITY_DESCRIPTOR_RELATIVE; + +typedef struct _SECURITY_DESCRIPTOR +{ + uint8_t Revision; + uint8_t Sbz1; + SECURITY_DESCRIPTOR_CONTROL Control; + PSID Owner; + PSID Group; + PACL Sacl; + PACL Dacl; +} SECURITY_DESCRIPTOR; +typedef SECURITY_DESCRIPTOR *PISECURITY_DESCRIPTOR; + +#endif /* SE_SELF_RELATIVE */ + + +/* End of possibly missing in older WDKs/DDKs. */ + + +#ifdef IPRT_NT_USE_WINTERNL +typedef struct _CLIENT_ID +{ + HANDLE UniqueProcess; + HANDLE UniqueThread; +} CLIENT_ID; +typedef CLIENT_ID *PCLIENT_ID; +#endif + +/** @name User Shared Data + * @{ */ + +#ifdef IPRT_NT_USE_WINTERNL +typedef struct _KSYSTEM_TIME +{ + ULONG LowPart; + LONG High1Time; + LONG High2Time; +} KSYSTEM_TIME; +typedef KSYSTEM_TIME *PKSYSTEM_TIME; + +typedef enum _NT_PRODUCT_TYPE +{ + NtProductWinNt = 1, + NtProductLanManNt, + NtProductServer +} NT_PRODUCT_TYPE; + +#define PROCESSOR_FEATURE_MAX 64 + +typedef enum _ALTERNATIVE_ARCHITECTURE_TYPE +{ + StandardDesign = 0, + NEC98x86, + EndAlternatives +} ALTERNATIVE_ARCHITECTURE_TYPE; + +# if 0 +typedef struct _XSTATE_FEATURE +{ + ULONG Offset; + ULONG Size; +} XSTATE_FEATURE; +typedef XSTATE_FEATURE *PXSTATE_FEATURE; + +#define MAXIMUM_XSTATE_FEATURES 64 + +typedef struct _XSTATE_CONFIGURATION +{ + ULONG64 EnabledFeatures; + ULONG Size; + ULONG OptimizedSave : 1; + XSTATE_FEATURE Features[MAXIMUM_XSTATE_FEATURES]; +} XSTATE_CONFIGURATION; +typedef XSTATE_CONFIGURATION *PXSTATE_CONFIGURATION; +# endif + +typedef struct _KUSER_SHARED_DATA +{ + ULONG TickCountLowDeprecated; + ULONG TickCountMultiplier; + KSYSTEM_TIME volatile InterruptTime; + KSYSTEM_TIME volatile SystemTime; + KSYSTEM_TIME volatile TimeZoneBias; + USHORT ImageNumberLow; + USHORT ImageNumberHigh; + WCHAR NtSystemRoot[260]; + ULONG MaxStackTraceDepth; + ULONG CryptoExponent; + ULONG TimeZoneId; + ULONG LargePageMinimum; + ULONG AitSamplingValue; + ULONG AppCompatFlag; + ULONGLONG RNGSeedVersion; + ULONG GlobalValidationRunlevel; + LONG volatile TimeZoneBiasStamp; + ULONG Reserved2; + NT_PRODUCT_TYPE NtProductType; + BOOLEAN ProductTypeIsValid; + BOOLEAN Reserved0[1]; + USHORT NativeProcessorArchitecture; + ULONG NtMajorVersion; + ULONG NtMinorVersion; + BOOLEAN ProcessorFeatures[PROCESSOR_FEATURE_MAX]; + ULONG Reserved1; + ULONG Reserved3; + ULONG volatile TimeSlip; + ALTERNATIVE_ARCHITECTURE_TYPE AlternativeArchitecture; + ULONG AltArchitecturePad[1]; + LARGE_INTEGER SystemExpirationDate; + ULONG SuiteMask; + BOOLEAN KdDebuggerEnabled; + union + { + UCHAR MitigationPolicies; + struct + { + UCHAR NXSupportPolicy : 2; + UCHAR SEHValidationPolicy : 2; + UCHAR CurDirDevicesSkippedForDlls : 2; + UCHAR Reserved : 2; + }; + }; + UCHAR Reserved6[2]; + ULONG volatile ActiveConsoleId; + ULONG volatile DismountCount; + ULONG ComPlusPackage; + ULONG LastSystemRITEventTickCount; + ULONG NumberOfPhysicalPages; + BOOLEAN SafeBootMode; + UCHAR Reserved12[3]; + union + { + ULONG SharedDataFlags; + struct + { + ULONG DbgErrorPortPresent : 1; + ULONG DbgElevationEnabled : 1; + ULONG DbgVirtEnabled : 1; + ULONG DbgInstallerDetectEnabled : 1; + ULONG DbgLkgEnabled : 1; + ULONG DbgDynProcessorEnabled : 1; + ULONG DbgConsoleBrokerEnabled : 1; + ULONG DbgSecureBootEnabled : 1; + ULONG SpareBits : 24; + }; + }; + ULONG DataFlagsPad[1]; + ULONGLONG TestRetInstruction; + LONGLONG QpcFrequency; + ULONGLONG SystemCallPad[3]; + union + { + ULONG64 volatile TickCountQuad; + KSYSTEM_TIME volatile TickCount; + struct + { + ULONG ReservedTickCountOverlay[3]; + ULONG TickCountPad[1]; + }; + }; + ULONG Cookie; + ULONG CookiePad[1]; + LONGLONG ConsoleSessionForegroundProcessId; + ULONGLONG TimeUpdateLock; + ULONGLONG BaselineSystemTimeQpc; + ULONGLONG BaselineInterruptTimeQpc; + ULONGLONG QpcSystemTimeIncrement; + ULONGLONG QpcInterruptTimeIncrement; + ULONG QpcSystemTimeIncrement32; + ULONG QpcInterruptTimeIncrement32; + UCHAR QpcSystemTimeIncrementShift; + UCHAR QpcInterruptTimeIncrementShift; + UCHAR Reserved8[14]; + USHORT UserModeGlobalLogger[16]; + ULONG ImageFileExecutionOptions; + ULONG LangGenerationCount; + ULONGLONG Reserved4; + ULONGLONG volatile InterruptTimeBias; + ULONGLONG volatile QpcBias; + ULONG volatile ActiveProcessorCount; + UCHAR volatile ActiveGroupCount; + UCHAR Reserved9; + union + { + USHORT QpcData; + struct + { + BOOLEAN volatile QpcBypassEnabled; + UCHAR QpcShift; + }; + }; + LARGE_INTEGER TimeZoneBiasEffectiveStart; + LARGE_INTEGER TimeZoneBiasEffectiveEnd; +# if 0 /* Not defined in older DDKs, so forget it till it's really needed. */ + XSTATE_CONFIGURATION XState; +# endif +} KUSER_SHARED_DATA; +typedef KUSER_SHARED_DATA *PKUSER_SHARED_DATA; +#endif /* IPRT_NT_USE_WINTERNL */ +/** @} */ + + +/** @name Process And Thread Environment Blocks + * @{ */ + +typedef struct _PEB_LDR_DATA +{ + uint32_t Length; + BOOLEAN Initialized; + BOOLEAN Padding[3]; + HANDLE SsHandle; + LIST_ENTRY InLoadOrderModuleList; + LIST_ENTRY InMemoryOrderModuleList; + LIST_ENTRY InInitializationOrderModuleList; + /* End NT4 */ + LIST_ENTRY *EntryInProgress; + BOOLEAN ShutdownInProgress; + HANDLE ShutdownThreadId; +} PEB_LDR_DATA; +typedef PEB_LDR_DATA *PPEB_LDR_DATA; + +typedef struct _PEB_COMMON +{ + BOOLEAN InheritedAddressSpace; /**< 0x000 / 0x000 */ + BOOLEAN ReadImageFileExecOptions; /**< 0x001 / 0x001 */ + BOOLEAN BeingDebugged; /**< 0x002 / 0x002 */ + union + { + uint8_t BitField; /**< 0x003 / 0x003 */ + struct + { + uint8_t ImageUsesLargePages : 1; /**< 0x003 / 0x003 : Pos 0, 1 Bit */ + } Common; + struct + { + uint8_t ImageUsesLargePages : 1; /**< 0x003 / 0x003 : Pos 0, 1 Bit */ + uint8_t IsProtectedProcess : 1; /**< 0x003 / 0x003 : Pos 1, 1 Bit */ + uint8_t IsImageDynamicallyRelocated : 1; /**< 0x003 / 0x003 : Pos 2, 1 Bit - Differs from W80 */ + uint8_t SkipPatchingUser32Forwarders : 1; /**< 0x003 / 0x003 : Pos 3, 1 Bit - Differs from W80 */ + uint8_t IsPackagedProcess : 1; /**< 0x003 / 0x003 : Pos 4, 1 Bit - Differs from W80 */ + uint8_t IsAppContainer : 1; /**< 0x003 / 0x003 : Pos 5, 1 Bit - Differs from W80 */ + uint8_t IsProtectedProcessLight : 1; /**< 0x003 / 0x003 : Pos 6, 1 Bit - Differs from W80 */ + uint8_t SpareBits : 1; /**< 0x003 / 0x003 : Pos 7, 1 Bit */ + } W81; + struct + { + uint8_t ImageUsesLargePages : 1; /**< 0x003 / 0x003 : Pos 0, 1 Bit */ + uint8_t IsProtectedProcess : 1; /**< 0x003 / 0x003 : Pos 1, 1 Bit */ + uint8_t IsLegacyProcess : 1; /**< 0x003 / 0x003 : Pos 2, 1 Bit - Differs from W81 */ + uint8_t IsImageDynamicallyRelocated : 1; /**< 0x003 / 0x003 : Pos 3, 1 Bit - Differs from W81 */ + uint8_t SkipPatchingUser32Forwarders : 1; /**< 0x003 / 0x003 : Pos 4, 1 Bit - Differs from W81 */ + uint8_t IsPackagedProcess : 1; /**< 0x003 / 0x003 : Pos 5, 1 Bit - Differs from W81 */ + uint8_t IsAppContainer : 1; /**< 0x003 / 0x003 : Pos 6, 1 Bit - Differs from W81 */ + uint8_t SpareBits : 1; /**< 0x003 / 0x003 : Pos 7, 1 Bit */ + } W80; + struct + { + uint8_t ImageUsesLargePages : 1; /**< 0x003 / 0x003 : Pos 0, 1 Bit */ + uint8_t IsProtectedProcess : 1; /**< 0x003 / 0x003 : Pos 1, 1 Bit */ + uint8_t IsLegacyProcess : 1; /**< 0x003 / 0x003 : Pos 2, 1 Bit - Differs from W81, same as W80 & W6. */ + uint8_t IsImageDynamicallyRelocated : 1; /**< 0x003 / 0x003 : Pos 3, 1 Bit - Differs from W81, same as W80 & W6. */ + uint8_t SkipPatchingUser32Forwarders : 1; /**< 0x003 / 0x003 : Pos 4, 1 Bit - Added in W7; Differs from W81, same as W80. */ + uint8_t SpareBits : 3; /**< 0x003 / 0x003 : Pos 5, 3 Bit - Differs from W81 & W80, more spare bits. */ + } W7; + struct + { + uint8_t ImageUsesLargePages : 1; /**< 0x003 / 0x003 : Pos 0, 1 Bit */ + uint8_t IsProtectedProcess : 1; /**< 0x003 / 0x003 : Pos 1, 1 Bit */ + uint8_t IsLegacyProcess : 1; /**< 0x003 / 0x003 : Pos 2, 1 Bit - Differs from W81, same as W80 & W7. */ + uint8_t IsImageDynamicallyRelocated : 1; /**< 0x003 / 0x003 : Pos 3, 1 Bit - Differs from W81, same as W80 & W7. */ + uint8_t SpareBits : 4; /**< 0x003 / 0x003 : Pos 4, 4 Bit - Differs from W81, W80, & W7, more spare bits. */ + } W6; + struct + { + uint8_t ImageUsesLargePages : 1; /**< 0x003 / 0x003 : Pos 0, 1 Bit */ + uint8_t SpareBits : 7; /**< 0x003 / 0x003 : Pos 1, 7 Bit - Differs from W81, W80, & W7, more spare bits. */ + } W52; + struct + { + BOOLEAN SpareBool; + } W51; + } Diff0; +#if ARCH_BITS == 64 + uint32_t Padding0; /**< 0x004 / NA */ +#endif + HANDLE Mutant; /**< 0x008 / 0x004 */ + PVOID ImageBaseAddress; /**< 0x010 / 0x008 */ + PPEB_LDR_DATA Ldr; /**< 0x018 / 0x00c */ + struct _RTL_USER_PROCESS_PARAMETERS *ProcessParameters; /**< 0x020 / 0x010 */ + PVOID SubSystemData; /**< 0x028 / 0x014 */ + HANDLE ProcessHeap; /**< 0x030 / 0x018 */ + struct _RTL_CRITICAL_SECTION *FastPebLock; /**< 0x038 / 0x01c */ + union + { + struct + { + PVOID AtlThunkSListPtr; /**< 0x040 / 0x020 */ + PVOID IFEOKey; /**< 0x048 / 0x024 */ + union + { + ULONG CrossProcessFlags; /**< 0x050 / 0x028 */ + struct + { + uint32_t ProcessInJob : 1; /**< 0x050 / 0x028: Pos 0, 1 Bit */ + uint32_t ProcessInitializing : 1; /**< 0x050 / 0x028: Pos 1, 1 Bit */ + uint32_t ProcessUsingVEH : 1; /**< 0x050 / 0x028: Pos 2, 1 Bit */ + uint32_t ProcessUsingVCH : 1; /**< 0x050 / 0x028: Pos 3, 1 Bit */ + uint32_t ProcessUsingFTH : 1; /**< 0x050 / 0x028: Pos 4, 1 Bit */ + uint32_t ReservedBits0 : 1; /**< 0x050 / 0x028: Pos 5, 27 Bits */ + } W7, W8, W80, W81; + struct + { + uint32_t ProcessInJob : 1; /**< 0x050 / 0x028: Pos 0, 1 Bit */ + uint32_t ProcessInitializing : 1; /**< 0x050 / 0x028: Pos 1, 1 Bit */ + uint32_t ReservedBits0 : 30; /**< 0x050 / 0x028: Pos 2, 30 Bits */ + } W6; + }; +#if ARCH_BITS == 64 + uint32_t Padding1; /**< 0x054 / */ +#endif + } W6, W7, W8, W80, W81; + struct + { + PVOID AtlThunkSListPtr; /**< 0x040 / 0x020 */ + PVOID SparePtr2; /**< 0x048 / 0x024 */ + uint32_t EnvironmentUpdateCount; /**< 0x050 / 0x028 */ +#if ARCH_BITS == 64 + uint32_t Padding1; /**< 0x054 / */ +#endif + } W52; + struct + { + PVOID FastPebLockRoutine; /**< NA / 0x020 */ + PVOID FastPebUnlockRoutine; /**< NA / 0x024 */ + uint32_t EnvironmentUpdateCount; /**< NA / 0x028 */ + } W51; + } Diff1; + union + { + PVOID KernelCallbackTable; /**< 0x058 / 0x02c */ + PVOID UserSharedInfoPtr; /**< 0x058 / 0x02c - Alternative use in W6.*/ + }; + uint32_t SystemReserved; /**< 0x060 / 0x030 */ + union + { + struct + { + uint32_t AtlThunkSListPtr32; /**< 0x064 / 0x034 */ + } W7, W8, W80, W81; + struct + { + uint32_t SpareUlong; /**< 0x064 / 0x034 */ + } W52, W6; + struct + { + uint32_t ExecuteOptions : 2; /**< NA / 0x034: Pos 0, 2 Bits */ + uint32_t SpareBits : 30; /**< NA / 0x034: Pos 2, 30 Bits */ + } W51; + } Diff2; + union + { + struct + { + PVOID ApiSetMap; /**< 0x068 / 0x038 */ + } W7, W8, W80, W81; + struct + { + struct _PEB_FREE_BLOCK *FreeList; /**< 0x068 / 0x038 */ + } W52, W6; + struct + { + struct _PEB_FREE_BLOCK *FreeList; /**< NA / 0x038 */ + } W51; + } Diff3; + uint32_t TlsExpansionCounter; /**< 0x070 / 0x03c */ +#if ARCH_BITS == 64 + uint32_t Padding2; /**< 0x074 / NA */ +#endif + struct _RTL_BITMAP *TlsBitmap; /**< 0x078 / 0x040 */ + uint32_t TlsBitmapBits[2]; /**< 0x080 / 0x044 */ + PVOID ReadOnlySharedMemoryBase; /**< 0x088 / 0x04c */ + union + { + struct + { + PVOID SparePvoid0; /**< 0x090 / 0x050 - HotpatchInformation before W81. */ + } W81; + struct + { + PVOID HotpatchInformation; /**< 0x090 / 0x050 - Retired in W81. */ + } W6, W7, W80; + struct + { + PVOID ReadOnlySharedMemoryHeap; + } W52; + } Diff4; + PVOID *ReadOnlyStaticServerData; /**< 0x098 / 0x054 */ + PVOID AnsiCodePageData; /**< 0x0a0 / 0x058 */ + PVOID OemCodePageData; /**< 0x0a8 / 0x05c */ + PVOID UnicodeCaseTableData; /**< 0x0b0 / 0x060 */ + uint32_t NumberOfProcessors; /**< 0x0b8 / 0x064 */ + uint32_t NtGlobalFlag; /**< 0x0bc / 0x068 */ + LARGE_INTEGER CriticalSectionTimeout; /**< 0x0c0 / 0x070 */ + SIZE_T HeapSegmentReserve; /**< 0x0c8 / 0x078 */ + SIZE_T HeapSegmentCommit; /**< 0x0d0 / 0x07c */ + SIZE_T HeapDeCommitTotalFreeThreshold; /**< 0x0d8 / 0x080 */ + SIZE_T HeapDeCommitFreeBlockThreshold; /**< 0x0e0 / 0x084 */ + uint32_t NumberOfHeaps; /**< 0x0e8 / 0x088 */ + uint32_t MaximumNumberOfHeaps; /**< 0x0ec / 0x08c */ + PVOID *ProcessHeaps; /**< 0x0f0 / 0x090 */ + PVOID GdiSharedHandleTable; /**< 0x0f8 / 0x094 */ + PVOID ProcessStarterHelper; /**< 0x100 / 0x098 */ + uint32_t GdiDCAttributeList; /**< 0x108 / 0x09c */ +#if ARCH_BITS == 64 + uint32_t Padding3; /**< 0x10c / NA */ +#endif + struct _RTL_CRITICAL_SECTION *LoaderLock; /**< 0x110 / 0x0a0 */ + uint32_t OSMajorVersion; /**< 0x118 / 0x0a4 */ + uint32_t OSMinorVersion; /**< 0x11c / 0x0a8 */ + uint16_t OSBuildNumber; /**< 0x120 / 0x0ac */ + uint16_t OSCSDVersion; /**< 0x122 / 0x0ae */ + uint32_t OSPlatformId; /**< 0x124 / 0x0b0 */ + uint32_t ImageSubsystem; /**< 0x128 / 0x0b4 */ + uint32_t ImageSubsystemMajorVersion; /**< 0x12c / 0x0b8 */ + uint32_t ImageSubsystemMinorVersion; /**< 0x130 / 0x0bc */ +#if ARCH_BITS == 64 + uint32_t Padding4; /**< 0x134 / NA */ +#endif + union + { + struct + { + SIZE_T ActiveProcessAffinityMask; /**< 0x138 / 0x0c0 */ + } W7, W8, W80, W81; + struct + { + SIZE_T ImageProcessAffinityMask; /**< 0x138 / 0x0c0 */ + } W52, W6; + } Diff5; + uint32_t GdiHandleBuffer[ARCH_BITS == 64 ? 60 : 34]; /**< 0x140 / 0x0c4 */ + PVOID PostProcessInitRoutine; /**< 0x230 / 0x14c */ + PVOID TlsExpansionBitmap; /**< 0x238 / 0x150 */ + uint32_t TlsExpansionBitmapBits[32]; /**< 0x240 / 0x154 */ + uint32_t SessionId; /**< 0x2c0 / 0x1d4 */ +#if ARCH_BITS == 64 + uint32_t Padding5; /**< 0x2c4 / NA */ +#endif + ULARGE_INTEGER AppCompatFlags; /**< 0x2c8 / 0x1d8 */ + ULARGE_INTEGER AppCompatFlagsUser; /**< 0x2d0 / 0x1e0 */ + PVOID pShimData; /**< 0x2d8 / 0x1e8 */ + PVOID AppCompatInfo; /**< 0x2e0 / 0x1ec */ + UNICODE_STRING CSDVersion; /**< 0x2e8 / 0x1f0 */ + struct _ACTIVATION_CONTEXT_DATA *ActivationContextData; /**< 0x2f8 / 0x1f8 */ + struct _ASSEMBLY_STORAGE_MAP *ProcessAssemblyStorageMap; /**< 0x300 / 0x1fc */ + struct _ACTIVATION_CONTEXT_DATA *SystemDefaultActivationContextData; /**< 0x308 / 0x200 */ + struct _ASSEMBLY_STORAGE_MAP *SystemAssemblyStorageMap; /**< 0x310 / 0x204 */ + SIZE_T MinimumStackCommit; /**< 0x318 / 0x208 */ + /* End of PEB in W52 (Windows XP (RTM))! */ + struct _FLS_CALLBACK_INFO *FlsCallback; /**< 0x320 / 0x20c */ + LIST_ENTRY FlsListHead; /**< 0x328 / 0x210 */ + PVOID FlsBitmap; /**< 0x338 / 0x218 */ + uint32_t FlsBitmapBits[4]; /**< 0x340 / 0x21c */ + uint32_t FlsHighIndex; /**< 0x350 / 0x22c */ + /* End of PEB in W52 (Windows Server 2003)! */ + PVOID WerRegistrationData; /**< 0x358 / 0x230 */ + PVOID WerShipAssertPtr; /**< 0x360 / 0x234 */ + /* End of PEB in W6 (windows Vista)! */ + union + { + struct + { + PVOID pUnused; /**< 0x368 / 0x238 - Was pContextData in W7. */ + } W8, W80, W81; + struct + { + PVOID pContextData; /**< 0x368 / 0x238 - Retired in W80. */ + } W7; + } Diff6; + PVOID pImageHeaderHash; /**< 0x370 / 0x23c */ + union + { + uint32_t TracingFlags; /**< 0x378 / 0x240 */ + struct + { + uint32_t HeapTracingEnabled : 1; /**< 0x378 / 0x240 : Pos 0, 1 Bit */ + uint32_t CritSecTracingEnabled : 1; /**< 0x378 / 0x240 : Pos 1, 1 Bit */ + uint32_t LibLoaderTracingEnabled : 1; /**< 0x378 / 0x240 : Pos 2, 1 Bit */ + uint32_t SpareTracingBits : 29; /**< 0x378 / 0x240 : Pos 3, 29 Bits */ + } W8, W80, W81; + struct + { + uint32_t HeapTracingEnabled : 1; /**< 0x378 / 0x240 : Pos 0, 1 Bit */ + uint32_t CritSecTracingEnabled : 1; /**< 0x378 / 0x240 : Pos 1, 1 Bit */ + uint32_t SpareTracingBits : 30; /**< 0x378 / 0x240 : Pos 3, 30 Bits - One bit more than W80 */ + } W7; + } Diff7; +#if ARCH_BITS == 64 + uint32_t Padding6; /**< 0x37c / NA */ +#endif + uint64_t CsrServerReadOnlySharedMemoryBase; /**< 0x380 / 0x248 */ +} PEB_COMMON; +typedef PEB_COMMON *PPEB_COMMON; + +AssertCompileMemberOffset(PEB_COMMON, ProcessHeap, ARCH_BITS == 64 ? 0x30 : 0x18); +AssertCompileMemberOffset(PEB_COMMON, SystemReserved, ARCH_BITS == 64 ? 0x60 : 0x30); +AssertCompileMemberOffset(PEB_COMMON, TlsExpansionCounter, ARCH_BITS == 64 ? 0x70 : 0x3c); +AssertCompileMemberOffset(PEB_COMMON, NtGlobalFlag, ARCH_BITS == 64 ? 0xbc : 0x68); +AssertCompileMemberOffset(PEB_COMMON, LoaderLock, ARCH_BITS == 64 ? 0x110 : 0xa0); +AssertCompileMemberOffset(PEB_COMMON, Diff5.W52.ImageProcessAffinityMask, ARCH_BITS == 64 ? 0x138 : 0xc0); +AssertCompileMemberOffset(PEB_COMMON, PostProcessInitRoutine, ARCH_BITS == 64 ? 0x230 : 0x14c); +AssertCompileMemberOffset(PEB_COMMON, AppCompatFlags, ARCH_BITS == 64 ? 0x2c8 : 0x1d8); +AssertCompileSize(PEB_COMMON, ARCH_BITS == 64 ? 0x388 : 0x250); + +/** The size of the windows 8.1 PEB structure. */ +#define PEB_SIZE_W81 sizeof(PEB_COMMON) +/** The size of the windows 8.0 PEB structure. */ +#define PEB_SIZE_W80 sizeof(PEB_COMMON) +/** The size of the windows 7 PEB structure. */ +#define PEB_SIZE_W7 RT_UOFFSETOF(PEB_COMMON, CsrServerReadOnlySharedMemoryBase) +/** The size of the windows vista PEB structure. */ +#define PEB_SIZE_W6 RT_UOFFSETOF(PEB_COMMON, Diff3) +/** The size of the windows server 2003 PEB structure. */ +#define PEB_SIZE_W52 RT_UOFFSETOF(PEB_COMMON, WerRegistrationData) +/** The size of the windows XP PEB structure. */ +#define PEB_SIZE_W51 RT_UOFFSETOF(PEB_COMMON, FlsCallback) + +#if (defined(IN_RING3) && !defined(IPRT_NT_USE_WINTERNL)) || defined(IN_RING0) /* Needed for older DDKs. */ +typedef struct _NT_TIB +{ + struct _EXCEPTION_REGISTRATION_RECORD *ExceptionList; + PVOID StackBase; + PVOID StackLimit; + PVOID SubSystemTib; + union + { + PVOID FiberData; + ULONG Version; + }; + PVOID ArbitraryUserPointer; + struct _NT_TIB *Self; +} NT_TIB; +typedef NT_TIB *PNT_TIB; +#endif + +typedef struct _ACTIVATION_CONTEXT_STACK +{ + uint32_t Flags; + uint32_t NextCookieSequenceNumber; + PVOID ActiveFrame; + LIST_ENTRY FrameListCache; +} ACTIVATION_CONTEXT_STACK; + +/* Common TEB. */ +typedef struct _TEB_COMMON +{ + NT_TIB NtTib; /**< 0x000 / 0x000 */ + PVOID EnvironmentPointer; /**< 0x038 / 0x01c */ + CLIENT_ID ClientId; /**< 0x040 / 0x020 */ + PVOID ActiveRpcHandle; /**< 0x050 / 0x028 */ + PVOID ThreadLocalStoragePointer; /**< 0x058 / 0x02c */ + PPEB_COMMON ProcessEnvironmentBlock; /**< 0x060 / 0x030 */ + uint32_t LastErrorValue; /**< 0x068 / 0x034 */ + uint32_t CountOfOwnedCriticalSections; /**< 0x06c / 0x038 */ + PVOID CsrClientThread; /**< 0x070 / 0x03c */ + PVOID Win32ThreadInfo; /**< 0x078 / 0x040 */ + uint32_t User32Reserved[26]; /**< 0x080 / 0x044 */ + uint32_t UserReserved[5]; /**< 0x0e8 / 0x0ac */ + PVOID WOW32Reserved; /**< 0x100 / 0x0c0 */ + uint32_t CurrentLocale; /**< 0x108 / 0x0c4 */ + uint32_t FpSoftwareStatusRegister; /**< 0x10c / 0x0c8 */ + PVOID SystemReserved1[54]; /**< 0x110 / 0x0cc */ + uint32_t ExceptionCode; /**< 0x2c0 / 0x1a4 */ +#if ARCH_BITS == 64 + uint32_t Padding0; /**< 0x2c4 / NA */ +#endif + union + { + struct + { + struct _ACTIVATION_CONTEXT_STACK *ActivationContextStackPointer;/**< 0x2c8 / 0x1a8 */ + uint8_t SpareBytes[ARCH_BITS == 64 ? 24 : 36]; /**< 0x2d0 / 0x1ac */ + } W52, W6, W7, W8, W80, W81; +#if ARCH_BITS == 32 + struct + { + ACTIVATION_CONTEXT_STACK ActivationContextStack; /**< NA / 0x1a8 */ + uint8_t SpareBytes[20]; /**< NA / 0x1bc */ + } W51; +#endif + } Diff0; + union + { + struct + { + uint32_t TxFsContext; /**< 0x2e8 / 0x1d0 */ + } W6, W7, W8, W80, W81; + struct + { + uint32_t SpareBytesContinues; /**< 0x2e8 / 0x1d0 */ + } W52; + } Diff1; +#if ARCH_BITS == 64 + uint32_t Padding1; /**< 0x2ec / NA */ +#endif + /*_GDI_TEB_BATCH*/ uint8_t GdiTebBatch[ARCH_BITS == 64 ? 0x4e8 :0x4e0]; /**< 0x2f0 / 0x1d4 */ + CLIENT_ID RealClientId; /**< 0x7d8 / 0x6b4 */ + HANDLE GdiCachedProcessHandle; /**< 0x7e8 / 0x6bc */ + uint32_t GdiClientPID; /**< 0x7f0 / 0x6c0 */ + uint32_t GdiClientTID; /**< 0x7f4 / 0x6c4 */ + PVOID GdiThreadLocalInfo; /**< 0x7f8 / 0x6c8 */ + SIZE_T Win32ClientInfo[62]; /**< 0x800 / 0x6cc */ + PVOID glDispatchTable[233]; /**< 0x9f0 / 0x7c4 */ + SIZE_T glReserved1[29]; /**< 0x1138 / 0xb68 */ + PVOID glReserved2; /**< 0x1220 / 0xbdc */ + PVOID glSectionInfo; /**< 0x1228 / 0xbe0 */ + PVOID glSection; /**< 0x1230 / 0xbe4 */ + PVOID glTable; /**< 0x1238 / 0xbe8 */ + PVOID glCurrentRC; /**< 0x1240 / 0xbec */ + PVOID glContext; /**< 0x1248 / 0xbf0 */ + NTSTATUS LastStatusValue; /**< 0x1250 / 0xbf4 */ +#if ARCH_BITS == 64 + uint32_t Padding2; /**< 0x1254 / NA */ +#endif + UNICODE_STRING StaticUnicodeString; /**< 0x1258 / 0xbf8 */ + WCHAR StaticUnicodeBuffer[261]; /**< 0x1268 / 0xc00 */ +#if ARCH_BITS == 64 + WCHAR Padding3[3]; /**< 0x1472 / NA */ +#endif + PVOID DeallocationStack; /**< 0x1478 / 0xe0c */ + PVOID TlsSlots[64]; /**< 0x1480 / 0xe10 */ + LIST_ENTRY TlsLinks; /**< 0x1680 / 0xf10 */ + PVOID Vdm; /**< 0x1690 / 0xf18 */ + PVOID ReservedForNtRpc; /**< 0x1698 / 0xf1c */ + PVOID DbgSsReserved[2]; /**< 0x16a0 / 0xf20 */ + uint32_t HardErrorMode; /**< 0x16b0 / 0xf28 - Called HardErrorsAreDisabled in W51. */ +#if ARCH_BITS == 64 + uint32_t Padding4; /**< 0x16b4 / NA */ +#endif + PVOID Instrumentation[ARCH_BITS == 64 ? 11 : 9]; /**< 0x16b8 / 0xf2c */ + union + { + struct + { + GUID ActivityId; /**< 0x1710 / 0xf50 */ + PVOID SubProcessTag; /**< 0x1720 / 0xf60 */ + } W6, W7, W8, W80, W81; + struct + { + PVOID InstrumentationContinues[ARCH_BITS == 64 ? 3 : 5]; /**< 0x1710 / 0xf50 */ + } W52; + } Diff2; + union /**< 0x1728 / 0xf64 */ + { + struct + { + PVOID PerflibData; /**< 0x1728 / 0xf64 */ + } W8, W80, W81; + struct + { + PVOID EtwLocalData; /**< 0x1728 / 0xf64 */ + } W7, W6; + struct + { + PVOID SubProcessTag; /**< 0x1728 / 0xf64 */ + } W52; + struct + { + PVOID InstrumentationContinues[1]; /**< 0x1728 / 0xf64 */ + } W51; + } Diff3; + union + { + struct + { + PVOID EtwTraceData; /**< 0x1730 / 0xf68 */ + } W52, W6, W7, W8, W80, W81; + struct + { + PVOID InstrumentationContinues[1]; /**< 0x1730 / 0xf68 */ + } W51; + } Diff4; + PVOID WinSockData; /**< 0x1738 / 0xf6c */ + uint32_t GdiBatchCount; /**< 0x1740 / 0xf70 */ + union + { + union + { + PROCESSOR_NUMBER CurrentIdealProcessor; /**< 0x1744 / 0xf74 - W7+ */ + uint32_t IdealProcessorValue; /**< 0x1744 / 0xf74 - W7+ */ + struct + { + uint8_t ReservedPad1; /**< 0x1744 / 0xf74 - Called SpareBool0 in W6 */ + uint8_t ReservedPad2; /**< 0x1745 / 0xf75 - Called SpareBool0 in W6 */ + uint8_t ReservedPad3; /**< 0x1746 / 0xf76 - Called SpareBool0 in W6 */ + uint8_t IdealProcessor; /**< 0x1747 / 0xf77 */ + }; + } W6, W7, W8, W80, W81; + struct + { + BOOLEAN InDbgPrint; /**< 0x1744 / 0xf74 */ + BOOLEAN FreeStackOnTermination; /**< 0x1745 / 0xf75 */ + BOOLEAN HasFiberData; /**< 0x1746 / 0xf76 */ + uint8_t IdealProcessor; /**< 0x1747 / 0xf77 */ + } W51, W52; + } Diff5; + uint32_t GuaranteedStackBytes; /**< 0x1748 / 0xf78 */ +#if ARCH_BITS == 64 + uint32_t Padding5; /**< 0x174c / NA */ +#endif + PVOID ReservedForPerf; /**< 0x1750 / 0xf7c */ + PVOID ReservedForOle; /**< 0x1758 / 0xf80 */ + uint32_t WaitingOnLoaderLock; /**< 0x1760 / 0xf84 */ +#if ARCH_BITS == 64 + uint32_t Padding6; /**< 0x1764 / NA */ +#endif + union /**< 0x1770 / 0xf8c */ + { + struct + { + PVOID SavedPriorityState; /**< 0x1768 / 0xf88 */ + SIZE_T ReservedForCodeCoverage; /**< 0x1770 / 0xf8c */ + PVOID ThreadPoolData; /**< 0x1778 / 0xf90 */ + } W8, W80, W81; + struct + { + PVOID SavedPriorityState; /**< 0x1768 / 0xf88 */ + SIZE_T SoftPatchPtr1; /**< 0x1770 / 0xf8c */ + PVOID ThreadPoolData; /**< 0x1778 / 0xf90 */ + } W6, W7; + struct + { + PVOID SparePointer1; /**< 0x1768 / 0xf88 */ + SIZE_T SoftPatchPtr1; /**< 0x1770 / 0xf8c */ + PVOID SoftPatchPtr2; /**< 0x1778 / 0xf90 */ + } W52; +#if ARCH_BITS == 32 + struct _Wx86ThreadState + { + PVOID CallBx86Eip; /**< NA / 0xf88 */ + PVOID DeallocationCpu; /**< NA / 0xf8c */ + BOOLEAN UseKnownWx86Dll; /**< NA / 0xf90 */ + int8_t OleStubInvoked; /**< NA / 0xf91 */ + } W51; +#endif + } Diff6; + PVOID TlsExpansionSlots; /**< 0x1780 / 0xf94 */ +#if ARCH_BITS == 64 + PVOID DallocationBStore; /**< 0x1788 / NA */ + PVOID BStoreLimit; /**< 0x1790 / NA */ +#endif + union + { + struct + { + uint32_t MuiGeneration; /**< 0x1798 / 0xf98 */ + } W7, W8, W80, W81; + struct + { + uint32_t ImpersonationLocale; + } W6; + } Diff7; + uint32_t IsImpersonating; /**< 0x179c / 0xf9c */ + PVOID NlsCache; /**< 0x17a0 / 0xfa0 */ + PVOID pShimData; /**< 0x17a8 / 0xfa4 */ + union /**< 0x17b0 / 0xfa8 */ + { + struct + { + uint16_t HeapVirtualAffinity; /**< 0x17b0 / 0xfa8 */ + uint16_t LowFragHeapDataSlot; /**< 0x17b2 / 0xfaa */ + } W8, W80, W81; + struct + { + uint32_t HeapVirtualAffinity; /**< 0x17b0 / 0xfa8 */ + } W7; + } Diff8; +#if ARCH_BITS == 64 + uint32_t Padding7; /**< 0x17b4 / NA */ +#endif + HANDLE CurrentTransactionHandle; /**< 0x17b8 / 0xfac */ + struct _TEB_ACTIVE_FRAME *ActiveFrame; /**< 0x17c0 / 0xfb0 */ + /* End of TEB in W51 (Windows XP)! */ + PVOID FlsData; /**< 0x17c8 / 0xfb4 */ + union + { + struct + { + PVOID PreferredLanguages; /**< 0x17d0 / 0xfb8 */ + } W6, W7, W8, W80, W81; + struct + { + BOOLEAN SafeThunkCall; /**< 0x17d0 / 0xfb8 */ + uint8_t BooleanSpare[3]; /**< 0x17d1 / 0xfb9 */ + /* End of TEB in W52 (Windows server 2003)! */ + } W52; + } Diff9; + PVOID UserPrefLanguages; /**< 0x17d8 / 0xfbc */ + PVOID MergedPrefLanguages; /**< 0x17e0 / 0xfc0 */ + uint32_t MuiImpersonation; /**< 0x17e8 / 0xfc4 */ + union + { + uint16_t CrossTebFlags; /**< 0x17ec / 0xfc8 */ + struct + { + uint16_t SpareCrossTebBits : 16; /**< 0x17ec / 0xfc8 : Pos 0, 16 Bits */ + }; + }; + union + { + uint16_t SameTebFlags; /**< 0x17ee / 0xfca */ + struct + { + uint16_t SafeThunkCall : 1; /**< 0x17ee / 0xfca : Pos 0, 1 Bit */ + uint16_t InDebugPrint : 1; /**< 0x17ee / 0xfca : Pos 1, 1 Bit */ + uint16_t HasFiberData : 1; /**< 0x17ee / 0xfca : Pos 2, 1 Bit */ + uint16_t SkipThreadAttach : 1; /**< 0x17ee / 0xfca : Pos 3, 1 Bit */ + uint16_t WerInShipAssertCode : 1; /**< 0x17ee / 0xfca : Pos 4, 1 Bit */ + uint16_t RanProcessInit : 1; /**< 0x17ee / 0xfca : Pos 5, 1 Bit */ + uint16_t ClonedThread : 1; /**< 0x17ee / 0xfca : Pos 6, 1 Bit */ + uint16_t SuppressDebugMsg : 1; /**< 0x17ee / 0xfca : Pos 7, 1 Bit */ + } Common; + struct + { + uint16_t SafeThunkCall : 1; /**< 0x17ee / 0xfca : Pos 0, 1 Bit */ + uint16_t InDebugPrint : 1; /**< 0x17ee / 0xfca : Pos 1, 1 Bit */ + uint16_t HasFiberData : 1; /**< 0x17ee / 0xfca : Pos 2, 1 Bit */ + uint16_t SkipThreadAttach : 1; /**< 0x17ee / 0xfca : Pos 3, 1 Bit */ + uint16_t WerInShipAssertCode : 1; /**< 0x17ee / 0xfca : Pos 4, 1 Bit */ + uint16_t RanProcessInit : 1; /**< 0x17ee / 0xfca : Pos 5, 1 Bit */ + uint16_t ClonedThread : 1; /**< 0x17ee / 0xfca : Pos 6, 1 Bit */ + uint16_t SuppressDebugMsg : 1; /**< 0x17ee / 0xfca : Pos 7, 1 Bit */ + uint16_t DisableUserStackWalk : 1; /**< 0x17ee / 0xfca : Pos 8, 1 Bit */ + uint16_t RtlExceptionAttached : 1; /**< 0x17ee / 0xfca : Pos 9, 1 Bit */ + uint16_t InitialThread : 1; /**< 0x17ee / 0xfca : Pos 10, 1 Bit */ + uint16_t SessionAware : 1; /**< 0x17ee / 0xfca : Pos 11, 1 Bit - New Since W7. */ + uint16_t SpareSameTebBits : 4; /**< 0x17ee / 0xfca : Pos 12, 4 Bits */ + } W8, W80, W81; + struct + { + uint16_t SafeThunkCall : 1; /**< 0x17ee / 0xfca : Pos 0, 1 Bit */ + uint16_t InDebugPrint : 1; /**< 0x17ee / 0xfca : Pos 1, 1 Bit */ + uint16_t HasFiberData : 1; /**< 0x17ee / 0xfca : Pos 2, 1 Bit */ + uint16_t SkipThreadAttach : 1; /**< 0x17ee / 0xfca : Pos 3, 1 Bit */ + uint16_t WerInShipAssertCode : 1; /**< 0x17ee / 0xfca : Pos 4, 1 Bit */ + uint16_t RanProcessInit : 1; /**< 0x17ee / 0xfca : Pos 5, 1 Bit */ + uint16_t ClonedThread : 1; /**< 0x17ee / 0xfca : Pos 6, 1 Bit */ + uint16_t SuppressDebugMsg : 1; /**< 0x17ee / 0xfca : Pos 7, 1 Bit */ + uint16_t DisableUserStackWalk : 1; /**< 0x17ee / 0xfca : Pos 8, 1 Bit */ + uint16_t RtlExceptionAttached : 1; /**< 0x17ee / 0xfca : Pos 9, 1 Bit */ + uint16_t InitialThread : 1; /**< 0x17ee / 0xfca : Pos 10, 1 Bit */ + uint16_t SpareSameTebBits : 5; /**< 0x17ee / 0xfca : Pos 12, 4 Bits */ + } W7; + struct + { + uint16_t DbgSafeThunkCall : 1; /**< 0x17ee / 0xfca : Pos 0, 1 Bit */ + uint16_t DbgInDebugPrint : 1; /**< 0x17ee / 0xfca : Pos 1, 1 Bit */ + uint16_t DbgHasFiberData : 1; /**< 0x17ee / 0xfca : Pos 2, 1 Bit */ + uint16_t DbgSkipThreadAttach : 1; /**< 0x17ee / 0xfca : Pos 3, 1 Bit */ + uint16_t DbgWerInShipAssertCode : 1; /**< 0x17ee / 0xfca : Pos 4, 1 Bit */ + uint16_t DbgRanProcessInit : 1; /**< 0x17ee / 0xfca : Pos 5, 1 Bit */ + uint16_t DbgClonedThread : 1; /**< 0x17ee / 0xfca : Pos 6, 1 Bit */ + uint16_t DbgSuppressDebugMsg : 1; /**< 0x17ee / 0xfca : Pos 7, 1 Bit */ + uint16_t SpareSameTebBits : 8; /**< 0x17ee / 0xfca : Pos 8, 8 Bits */ + } W6; + } Diff10; + PVOID TxnScopeEnterCallback; /**< 0x17f0 / 0xfcc */ + PVOID TxnScopeExitCallback; /**< 0x17f8 / 0xfd0 */ + PVOID TxnScopeContext; /**< 0x1800 / 0xfd4 */ + uint32_t LockCount; /**< 0x1808 / 0xfd8 */ + union + { + struct + { + uint32_t SpareUlong0; /**< 0x180c / 0xfdc */ + } W7, W8, W80, W81; + struct + { + uint32_t ProcessRundown; + } W6; + } Diff11; + union + { + struct + { + PVOID ResourceRetValue; /**< 0x1810 / 0xfe0 */ + /* End of TEB in W7 (windows 7)! */ + PVOID ReservedForWdf; /**< 0x1818 / 0xfe4 - New Since W7. */ + /* End of TEB in W8 (windows 8.0 & 8.1)! */ + } W8, W80, W81; + struct + { + PVOID ResourceRetValue; /**< 0x1810 / 0xfe0 */ + } W7; + struct + { + uint64_t LastSwitchTime; /**< 0x1810 / 0xfe0 */ + uint64_t TotalSwitchOutTime; /**< 0x1818 / 0xfe8 */ + LARGE_INTEGER WaitReasonBitMap; /**< 0x1820 / 0xff0 */ + /* End of TEB in W6 (windows Vista)! */ + } W6; + } Diff12; +} TEB_COMMON; +typedef TEB_COMMON *PTEB_COMMON; +AssertCompileMemberOffset(TEB_COMMON, ExceptionCode, ARCH_BITS == 64 ? 0x2c0 : 0x1a4); +AssertCompileMemberOffset(TEB_COMMON, LastStatusValue, ARCH_BITS == 64 ? 0x1250 : 0xbf4); +AssertCompileMemberOffset(TEB_COMMON, DeallocationStack, ARCH_BITS == 64 ? 0x1478 : 0xe0c); +AssertCompileMemberOffset(TEB_COMMON, ReservedForNtRpc, ARCH_BITS == 64 ? 0x1698 : 0xf1c); +AssertCompileMemberOffset(TEB_COMMON, Instrumentation, ARCH_BITS == 64 ? 0x16b8 : 0xf2c); +AssertCompileMemberOffset(TEB_COMMON, Diff2, ARCH_BITS == 64 ? 0x1710 : 0xf50); +AssertCompileMemberOffset(TEB_COMMON, Diff3, ARCH_BITS == 64 ? 0x1728 : 0xf64); +AssertCompileMemberOffset(TEB_COMMON, Diff4, ARCH_BITS == 64 ? 0x1730 : 0xf68); +AssertCompileMemberOffset(TEB_COMMON, WinSockData, ARCH_BITS == 64 ? 0x1738 : 0xf6c); +AssertCompileMemberOffset(TEB_COMMON, GuaranteedStackBytes, ARCH_BITS == 64 ? 0x1748 : 0xf78); +AssertCompileMemberOffset(TEB_COMMON, MuiImpersonation, ARCH_BITS == 64 ? 0x17e8 : 0xfc4); +AssertCompileMemberOffset(TEB_COMMON, LockCount, ARCH_BITS == 64 ? 0x1808 : 0xfd8); +AssertCompileSize(TEB_COMMON, ARCH_BITS == 64 ? 0x1828 : 0xff8); + + +/** The size of the windows 8.1 PEB structure. */ +#define TEB_SIZE_W81 ( RT_UOFFSETOF(TEB_COMMON, Diff12.W8.ReservedForWdf) + sizeof(PVOID) ) +/** The size of the windows 8.0 PEB structure. */ +#define TEB_SIZE_W80 ( RT_UOFFSETOF(TEB_COMMON, Diff12.W8.ReservedForWdf) + sizeof(PVOID) ) +/** The size of the windows 7 PEB structure. */ +#define TEB_SIZE_W7 RT_UOFFSETOF(TEB_COMMON, Diff12.W8.ReservedForWdf) +/** The size of the windows vista PEB structure. */ +#define TEB_SIZE_W6 ( RT_UOFFSETOF(TEB_COMMON, Diff12.W6.WaitReasonBitMap) + sizeof(LARGE_INTEGER) ) +/** The size of the windows server 2003 PEB structure. */ +#define TEB_SIZE_W52 RT_ALIGN_Z(RT_UOFFSETOF(TEB_COMMON, Diff9.W52.BooleanSpare), sizeof(PVOID)) +/** The size of the windows XP PEB structure. */ +#define TEB_SIZE_W51 RT_UOFFSETOF(TEB_COMMON, FlsData) + + + +#define _PEB _PEB_COMMON +typedef PEB_COMMON PEB; +typedef PPEB_COMMON PPEB; + +#define _TEB _TEB_COMMON +typedef TEB_COMMON TEB; +typedef PTEB_COMMON PTEB; + +#define RTNtCurrentTeb() ((PTEB)NtCurrentTeb()) +#define RTNtCurrentPeb() (RTNtCurrentTeb()->ProcessEnvironmentBlock) +#define NtCurrentPeb() RTNtCurrentPeb() +#define RTNtCurrentThreadId() ((uint32_t)(uintptr_t)RTNtCurrentTeb()->ClientId.UniqueThread) + +/** @} */ + + +#ifdef IPRT_NT_USE_WINTERNL +NTSYSAPI NTSTATUS NTAPI NtCreateSection(PHANDLE, ACCESS_MASK, POBJECT_ATTRIBUTES, PLARGE_INTEGER, ULONG, ULONG, HANDLE); +NTSYSAPI NTSTATUS NTAPI NtUnmapViewOfSection(HANDLE, PVOID); +typedef enum _SECTION_INHERIT +{ + ViewShare = 1, + ViewUnmap +} SECTION_INHERIT; +NTSYSAPI NTSTATUS NTAPI NtMapViewOfSection(HANDLE, HANDLE, PVOID *, ULONG, SIZE_T, PLARGE_INTEGER, PSIZE_T, SECTION_INHERIT, + ULONG, ULONG); + + +typedef struct _FILE_FS_ATTRIBUTE_INFORMATION +{ + ULONG FileSystemAttributes; + LONG MaximumComponentNameLength; + ULONG FileSystemNameLength; + WCHAR FileSystemName[1]; +} FILE_FS_ATTRIBUTE_INFORMATION; +typedef FILE_FS_ATTRIBUTE_INFORMATION *PFILE_FS_ATTRIBUTE_INFORMATION; + + +NTSYSAPI NTSTATUS NTAPI NtOpenProcess(PHANDLE, ACCESS_MASK, POBJECT_ATTRIBUTES, PCLIENT_ID); +NTSYSAPI NTSTATUS NTAPI NtOpenProcessToken(HANDLE, ACCESS_MASK, PHANDLE); +NTSYSAPI NTSTATUS NTAPI NtOpenThread(PHANDLE, ACCESS_MASK, POBJECT_ATTRIBUTES, PCLIENT_ID); +NTSYSAPI NTSTATUS NTAPI NtOpenThreadToken(HANDLE, ACCESS_MASK, BOOLEAN, PHANDLE); + +typedef enum _FSINFOCLASS +{ + FileFsVolumeInformation = 1, + FileFsLabelInformation, + FileFsSizeInformation, + FileFsDeviceInformation, + FileFsAttributeInformation, + FileFsControlInformation, + FileFsFullSizeInformation, + FileFsObjectIdInformation, + FileFsDriverPathInformation, + FileFsVolumeFlagsInformation, + FileFsSectorSizeInformation, + FileFsDataCopyInformation, + FileFsMaximumInformation +} FS_INFORMATION_CLASS; +typedef FS_INFORMATION_CLASS *PFS_INFORMATION_CLASS; +#endif /* IPRT_NT_USE_WINTERNL */ +#if defined(IPRT_NT_USE_WINTERNL) || (defined(IN_RING0) && defined(RT_ARCH_X86)) +NTSYSAPI NTSTATUS NTAPI NtQueryVolumeInformationFile(HANDLE, PIO_STATUS_BLOCK, PVOID, ULONG, FS_INFORMATION_CLASS); +#endif +typedef struct _FILE_BOTH_DIR_INFORMATION +{ + ULONG NextEntryOffset; + ULONG FileIndex; + LARGE_INTEGER CreationTime; + LARGE_INTEGER LastAccessTime; + LARGE_INTEGER LastWriteTime; + LARGE_INTEGER ChangeTime; + LARGE_INTEGER EndOfFile; + LARGE_INTEGER AllocationSize; + ULONG FileAttributes; + ULONG FileNameLength; + ULONG EaSize; + CCHAR ShortNameLength; + WCHAR ShortName[12]; + WCHAR FileName[1]; +} FILE_BOTH_DIR_INFORMATION; +typedef FILE_BOTH_DIR_INFORMATION *PFILE_BOTH_DIR_INFORMATION; +#ifdef IPRT_NT_USE_WINTERNL +typedef struct _FILE_BASIC_INFORMATION +{ + LARGE_INTEGER CreationTime; + LARGE_INTEGER LastAccessTime; + LARGE_INTEGER LastWriteTime; + LARGE_INTEGER ChangeTime; + ULONG FileAttributes; +} FILE_BASIC_INFORMATION; +typedef FILE_BASIC_INFORMATION *PFILE_BASIC_INFORMATION; +typedef struct _FILE_STANDARD_INFORMATION +{ + LARGE_INTEGER AllocationSize; + LARGE_INTEGER EndOfFile; + ULONG NumberOfLinks; + BOOLEAN DeletePending; + BOOLEAN Directory; +} FILE_STANDARD_INFORMATION; +typedef FILE_STANDARD_INFORMATION *PFILE_STANDARD_INFORMATION; +typedef struct _FILE_NAME_INFORMATION +{ + ULONG FileNameLength; + WCHAR FileName[1]; +} FILE_NAME_INFORMATION; +typedef FILE_NAME_INFORMATION *PFILE_NAME_INFORMATION; +typedef enum _FILE_INFORMATION_CLASS +{ + FileDirectoryInformation = 1, + FileFullDirectoryInformation, + FileBothDirectoryInformation, + FileBasicInformation, + FileStandardInformation, + FileInternalInformation, + FileEaInformation, + FileAccessInformation, + FileNameInformation, + FileRenameInformation, + FileLinkInformation, + FileNamesInformation, + FileDispositionInformation, + FilePositionInformation, + FileFullEaInformation, + FileModeInformation, + FileAlignmentInformation, + FileAllInformation, + FileAllocationInformation, + FileEndOfFileInformation, + FileAlternateNameInformation, + FileStreamInformation, + FilePipeInformation, + FilePipeLocalInformation, + FilePipeRemoteInformation, + FileMailslotQueryInformation, + FileMailslotSetInformation, + FileCompressionInformation, + FileObjectIdInformation, + FileCompletionInformation, + FileMoveClusterInformation, + FileQuotaInformation, + FileReparsePointInformation, + FileNetworkOpenInformation, + FileAttributeTagInformation, + FileTrackingInformation, + FileIdBothDirectoryInformation, + FileIdFullDirectoryInformation, + FileValidDataLengthInformation, + FileShortNameInformation, + FileIoCompletionNotificationInformation, + FileIoStatusBlockRangeInformation, + FileIoPriorityHintInformation, + FileSfioReserveInformation, + FileSfioVolumeInformation, + FileHardLinkInformation, + FileProcessIdsUsingFileInformation, + FileNormalizedNameInformation, + FileNetworkPhysicalNameInformation, + FileIdGlobalTxDirectoryInformation, + FileIsRemoteDeviceInformation, + FileUnusedInformation, + FileNumaNodeInformation, + FileStandardLinkInformation, + FileRemoteProtocolInformation, + FileRenameInformationBypassAccessCheck, + FileLinkInformationBypassAccessCheck, + FileVolumeNameInformation, + FileIdInformation, + FileIdExtdDirectoryInformation, + FileReplaceCompletionInformation, + FileHardLinkFullIdInformation, + FileMaximumInformation +} FILE_INFORMATION_CLASS; +typedef FILE_INFORMATION_CLASS *PFILE_INFORMATION_CLASS; +NTSYSAPI NTSTATUS NTAPI NtQueryInformationFile(HANDLE, PIO_STATUS_BLOCK, PVOID, ULONG, FILE_INFORMATION_CLASS); +NTSYSAPI NTSTATUS NTAPI NtQueryDirectoryFile(HANDLE, HANDLE, PIO_APC_ROUTINE, PVOID, PIO_STATUS_BLOCK, PVOID, ULONG, + FILE_INFORMATION_CLASS, BOOLEAN, PUNICODE_STRING, BOOLEAN); + +typedef struct _MEMORY_SECTION_NAME +{ + UNICODE_STRING SectionFileName; + WCHAR NameBuffer[1]; +} MEMORY_SECTION_NAME; + +#ifdef IPRT_NT_USE_WINTERNL +typedef struct _PROCESS_BASIC_INFORMATION +{ + NTSTATUS ExitStatus; + PPEB PebBaseAddress; + ULONG_PTR AffinityMask; + int32_t BasePriority; + ULONG_PTR UniqueProcessId; + ULONG_PTR InheritedFromUniqueProcessId; +} PROCESS_BASIC_INFORMATION; +typedef PROCESS_BASIC_INFORMATION *PPROCESS_BASIC_INFORMATION; +#endif + +#endif /* IPRT_NT_USE_WINTERNL */ +#if 1 || defined(IPRT_NT_USE_WINTERNL) || defined(IN_RING0) || defined(DOXYGEN_RUNNING) +typedef enum _PROCESSINFOCLASS +{ + ProcessBasicInformation = 0, + ProcessQuotaLimits, + ProcessIoCounters, + ProcessVmCounters, + ProcessTimes, + ProcessBasePriority, + ProcessRaisePriority, + ProcessDebugPort, + ProcessExceptionPort, + ProcessAccessToken, + ProcessLdtInformation, + ProcessLdtSize, + ProcessDefaultHardErrorMode, + ProcessIoPortHandlers, + ProcessPooledUsageAndLimits, + ProcessWorkingSetWatch, + ProcessUserModeIOPL, + ProcessEnableAlignmentFaultFixup, + ProcessPriorityClass, + ProcessWx86Information, + ProcessHandleCount, + ProcessAffinityMask, + ProcessPriorityBoost, + ProcessDeviceMap, + ProcessSessionInformation, + ProcessForegroundInformation, + ProcessWow64Information, + ProcessImageFileName, + ProcessLUIDDeviceMapsEnabled, + ProcessBreakOnTermination, + ProcessDebugObjectHandle, + ProcessDebugFlags, + ProcessHandleTracing, + ProcessIoPriority, + ProcessExecuteFlags, + ProcessTlsInformation, + ProcessCookie, + ProcessImageInformation, + ProcessCycleTime, + ProcessPagePriority, + ProcessInstrumentationCallbak, + ProcessThreadStackAllocation, + ProcessWorkingSetWatchEx, + ProcessImageFileNameWin32, + ProcessImageFileMapping, + ProcessAffinityUpdateMode, + ProcessMemoryAllocationMode, + ProcessGroupInformation, + ProcessTokenVirtualizationEnabled, + ProcessConsoleHostProcess, + ProcessWindowsInformation, + MaxProcessInfoClass +} PROCESSINFOCLASS; +NTSYSAPI NTSTATUS NTAPI NtQueryInformationProcess(HANDLE, PROCESSINFOCLASS, PVOID, ULONG, PULONG); +#endif +#if 1 || defined(IPRT_NT_USE_WINTERNL) + +/* The following APIs needs to redeclared because older winternl.h doesn't + given them any calling convention or dllimport directives. */ +NTSYSAPI NTSTATUS NTAPI NtClose(HANDLE); +NTSYSAPI NTSTATUS NTAPI NtCreateFile(PHANDLE, ACCESS_MASK, POBJECT_ATTRIBUTES, PIO_STATUS_BLOCK, PLARGE_INTEGER, ULONG, ULONG, + ULONG, ULONG, PVOID, ULONG); +NTSYSAPI NTSTATUS NTAPI NtDeviceIoControlFile(HANDLE, HANDLE, PIO_APC_ROUTINE, PVOID, PIO_STATUS_BLOCK, + ULONG, PVOID, ULONG, PVOID, ULONG); + +/* Missing in older winternl.h: */ +NTSYSAPI NTSTATUS NTAPI NtQueryDirectoryFile(HANDLE, HANDLE, PIO_APC_ROUTINE, PVOID, PIO_STATUS_BLOCK, PVOID, ULONG, + FILE_INFORMATION_CLASS, BOOLEAN, PUNICODE_STRING, BOOLEAN); +NTSYSAPI NTSTATUS NTAPI NtQueryTimerResolution(PULONG, PULONG, PULONG); +NTSYSAPI NTSTATUS NTAPI NtSetInformationFile(HANDLE, PIO_STATUS_BLOCK, PVOID, ULONG, FILE_INFORMATION_CLASS); +NTSYSAPI NTSTATUS NTAPI NtSetTimerResolution(ULONG, BOOLEAN, PULONG); +NTSYSAPI ULONG NTAPI RtlNtStatusToDosError(NTSTATUS); + +#endif /* IPRT_NT_USE_WINTERNL */ + +typedef enum _THREADINFOCLASS +{ + ThreadBasicInformation = 0, + ThreadTimes, + ThreadPriority, + ThreadBasePriority, + ThreadAffinityMask, + ThreadImpersonationToken, + ThreadDescriptorTableEntry, + ThreadEnableAlignmentFaultFixup, + ThreadEventPair_Reusable, + ThreadQuerySetWin32StartAddress, + ThreadZeroTlsCell, + ThreadPerformanceCount, + ThreadAmILastThread, + ThreadIdealProcessor, + ThreadPriorityBoost, + ThreadSetTlsArrayAddress, + ThreadIsIoPending, + ThreadHideFromDebugger, + ThreadBreakOnTermination, + ThreadSwitchLegacyState, + ThreadIsTerminated, + ThreadLastSystemCall, + ThreadIoPriority, + ThreadCycleTime, + ThreadPagePriority, + ThreadActualBasePriority, + ThreadTebInformation, + ThreadCSwitchMon, + ThreadCSwitchPmu, + ThreadWow64Context, + ThreadGroupInformation, + ThreadUmsInformation, + ThreadCounterProfiling, + ThreadIdealProcessorEx, + ThreadCpuAccountingInformation, + MaxThreadInfoClass +} THREADINFOCLASS; +NTSYSAPI NTSTATUS NTAPI NtSetInformationThread(HANDLE, THREADINFOCLASS, VOID const *, ULONG); + +#ifdef IPRT_NT_USE_WINTERNL + +NTSYSAPI NTSTATUS NTAPI NtQueryInformationToken(HANDLE, TOKEN_INFORMATION_CLASS, PVOID, ULONG, PULONG); + +NTSYSAPI NTSTATUS NTAPI NtReadFile(HANDLE, HANDLE, PIO_APC_ROUTINE, PVOID, PIO_STATUS_BLOCK, PVOID, ULONG, PLARGE_INTEGER, PULONG); +NTSYSAPI NTSTATUS NTAPI NtWriteFile(HANDLE, HANDLE, PIO_APC_ROUTINE, void const *, PIO_STATUS_BLOCK, PVOID, ULONG, PLARGE_INTEGER, PULONG); +NTSYSAPI NTSTATUS NTAPI NtFlushBuffersFile(HANDLE, PIO_STATUS_BLOCK); + +NTSYSAPI NTSTATUS NTAPI NtReadVirtualMemory(HANDLE, PVOID, PVOID, SIZE_T, PSIZE_T); +NTSYSAPI NTSTATUS NTAPI NtWriteVirtualMemory(HANDLE, PVOID, void const *, SIZE_T, PSIZE_T); +#endif /* IPRT_NT_USE_WINTERNL */ + +#if defined(IPRT_NT_USE_WINTERNL) || defined(IN_RING0) +NTSYSAPI NTSTATUS NTAPI RtlAddAccessAllowedAce(PACL, ULONG, ULONG, PSID); +NTSYSAPI NTSTATUS NTAPI RtlCopySid(ULONG, PSID, PSID); +NTSYSAPI NTSTATUS NTAPI RtlCreateAcl(PACL, ULONG, ULONG); +NTSYSAPI NTSTATUS NTAPI RtlCreateSecurityDescriptor(PSECURITY_DESCRIPTOR, ULONG); +NTSYSAPI BOOLEAN NTAPI RtlEqualSid(PSID, PSID); +# ifndef IN_RING0 +NTSYSAPI NTSTATUS NTAPI RtlGetVersion(PRTL_OSVERSIONINFOW); +# endif +NTSYSAPI NTSTATUS NTAPI RtlInitializeSid(PSID, PSID_IDENTIFIER_AUTHORITY, UCHAR); +NTSYSAPI NTSTATUS NTAPI RtlSetDaclSecurityDescriptor(PSECURITY_DESCRIPTOR, BOOLEAN, PACL, BOOLEAN); +NTSYSAPI PULONG NTAPI RtlSubAuthoritySid(PSID, ULONG); +#endif + + +typedef enum _OBJECT_INFORMATION_CLASS +{ + ObjectBasicInformation = 0, + ObjectNameInformation, + ObjectTypeInformation, + ObjectAllInformation, + ObjectDataInformation +} OBJECT_INFORMATION_CLASS; +typedef OBJECT_INFORMATION_CLASS *POBJECT_INFORMATION_CLASS; +#ifdef IN_RING0 +# define NtQueryObject ZwQueryObject +#endif +NTSYSAPI NTSTATUS NTAPI NtQueryObject(HANDLE, OBJECT_INFORMATION_CLASS, PVOID, ULONG, PULONG); +NTSYSAPI NTSTATUS NTAPI NtSetInformationObject(HANDLE, OBJECT_INFORMATION_CLASS, PVOID, ULONG); +NTSYSAPI NTSTATUS NTAPI NtDuplicateObject(HANDLE, HANDLE, HANDLE, PHANDLE, ACCESS_MASK, ULONG, ULONG); + +NTSYSAPI NTSTATUS NTAPI NtOpenDirectoryObject(PHANDLE, ACCESS_MASK, POBJECT_ATTRIBUTES); + +typedef struct _OBJECT_DIRECTORY_INFORMATION +{ + UNICODE_STRING Name; + UNICODE_STRING TypeName; +} OBJECT_DIRECTORY_INFORMATION; +typedef OBJECT_DIRECTORY_INFORMATION *POBJECT_DIRECTORY_INFORMATION; +NTSYSAPI NTSTATUS NTAPI NtQueryDirectoryObject(HANDLE, PVOID, ULONG, BOOLEAN, BOOLEAN, PULONG, PULONG); + +NTSYSAPI NTSTATUS NTAPI NtSuspendProcess(HANDLE); +NTSYSAPI NTSTATUS NTAPI NtResumeProcess(HANDLE); +/** @name ProcessDefaultHardErrorMode bit definitions. + * @{ */ +#define PROCESS_HARDERR_CRITICAL_ERROR UINT32_C(0x00000001) /**< Inverted from the win32 define. */ +#define PROCESS_HARDERR_NO_GP_FAULT_ERROR UINT32_C(0x00000002) +#define PROCESS_HARDERR_NO_ALIGNMENT_FAULT_ERROR UINT32_C(0x00000004) +#define PROCESS_HARDERR_NO_OPEN_FILE_ERROR UINT32_C(0x00008000) +/** @} */ +NTSYSAPI NTSTATUS NTAPI NtSetInformationProcess(HANDLE, PROCESSINFOCLASS, PVOID, ULONG); +NTSYSAPI NTSTATUS NTAPI NtTerminateProcess(HANDLE, LONG); + +/** Retured by ProcessImageInformation as well as NtQuerySection. */ +typedef struct _SECTION_IMAGE_INFORMATION +{ + PVOID TransferAddress; + ULONG ZeroBits; + SIZE_T MaximumStackSize; + SIZE_T CommittedStackSize; + ULONG SubSystemType; + union + { + struct + { + USHORT SubSystemMinorVersion; + USHORT SubSystemMajorVersion; + }; + ULONG SubSystemVersion; + }; + ULONG GpValue; + USHORT ImageCharacteristics; + USHORT DllCharacteristics; + USHORT Machine; + BOOLEAN ImageContainsCode; + union /**< Since Vista, used to be a spare BOOLEAN. */ + { + struct + { + UCHAR ComPlusNativeRead : 1; + UCHAR ComPlusILOnly : 1; + UCHAR ImageDynamicallyRelocated : 1; + UCHAR ImageMAppedFlat : 1; + UCHAR Reserved : 4; + }; + UCHAR ImageFlags; + }; + ULONG LoaderFlags; + ULONG ImageFileSize; /**< Since XP? */ + ULONG CheckSum; /**< Since Vista, Used to be a reserved/spare ULONG. */ +} SECTION_IMAGE_INFORMATION; +typedef SECTION_IMAGE_INFORMATION *PSECTION_IMAGE_INFORMATION; + +typedef enum _SECTION_INFORMATION_CLASS +{ + SectionBasicInformation = 0, + SectionImageInformation, + MaxSectionInfoClass +} SECTION_INFORMATION_CLASS; +NTSYSAPI NTSTATUS NTAPI NtQuerySection(HANDLE, SECTION_INFORMATION_CLASS, PVOID, SIZE_T, PSIZE_T); + +NTSYSAPI NTSTATUS NTAPI NtCreateSymbolicLinkObject(PHANDLE, ACCESS_MASK, POBJECT_ATTRIBUTES, PUNICODE_STRING pTarget); +NTSYSAPI NTSTATUS NTAPI NtOpenSymbolicLinkObject(PHANDLE, ACCESS_MASK, POBJECT_ATTRIBUTES); +NTSYSAPI NTSTATUS NTAPI NtQuerySymbolicLinkObject(HANDLE, PUNICODE_STRING, PULONG); +#ifndef SYMBOLIC_LINK_QUERY +# define SYMBOLIC_LINK_QUERY UINT32_C(0x00000001) +#endif +#ifndef SYMBOLIC_LINK_ALL_ACCESS +# define SYMBOLIC_LINK_ALL_ACCESS (STANDARD_RIGHTS_REQUIRED | SYMBOLIC_LINK_QUERY) +#endif + +NTSYSAPI NTSTATUS NTAPI NtQueryInformationThread(HANDLE, THREADINFOCLASS, PVOID, ULONG, PULONG); +NTSYSAPI NTSTATUS NTAPI NtResumeThread(HANDLE, PULONG); +NTSYSAPI NTSTATUS NTAPI NtSuspendThread(HANDLE, PULONG); +NTSYSAPI NTSTATUS NTAPI NtTerminateThread(HANDLE, LONG); +#ifndef IN_RING3 /* Hope we don't need these, might not have the PCONTEXT definition with the older SDK/DDK. */ +NTSYSAPI NTSTATUS NTAPI NtGetContextThread(HANDLE, PCONTEXT); +NTSYSAPI NTSTATUS NTAPI NtSetContextThread(HANDLE, PCONTEXT); +#endif + + +#ifndef SEC_FILE +# define SEC_FILE UINT32_C(0x00800000) +#endif +#ifndef SEC_IMAGE +# define SEC_IMAGE UINT32_C(0x01000000) +#endif +#ifndef SEC_PROTECTED_IMAGE +# define SEC_PROTECTED_IMAGE UINT32_C(0x02000000) +#endif +#ifndef SEC_NOCACHE +# define SEC_NOCACHE UINT32_C(0x10000000) +#endif +#ifndef MEM_ROTATE +# define MEM_ROTATE UINT32_C(0x00800000) +#endif +typedef enum _MEMORY_INFORMATION_CLASS +{ + MemoryBasicInformation = 0, + MemoryWorkingSetList, + MemorySectionName, + MemoryBasicVlmInformation +} MEMORY_INFORMATION_CLASS; +#ifdef IN_RING0 +typedef struct _MEMORY_BASIC_INFORMATION +{ + PVOID BaseAddress; + PVOID AllocationBase; + ULONG AllocationProtect; + SIZE_T RegionSize; + ULONG State; + ULONG Protect; + ULONG Type; +} MEMORY_BASIC_INFORMATION; +typedef MEMORY_BASIC_INFORMATION *PMEMORY_BASIC_INFORMATION; +# define NtQueryVirtualMemory ZwQueryVirtualMemory +#endif +NTSYSAPI NTSTATUS NTAPI NtQueryVirtualMemory(HANDLE, void const *, MEMORY_INFORMATION_CLASS, PVOID, SIZE_T, PSIZE_T); +#ifdef IPRT_NT_USE_WINTERNL +NTSYSAPI NTSTATUS NTAPI NtAllocateVirtualMemory(HANDLE, PVOID *, ULONG, PSIZE_T, ULONG, ULONG); +#endif +NTSYSAPI NTSTATUS NTAPI NtFreeVirtualMemory(HANDLE, PVOID *, PSIZE_T, ULONG); +NTSYSAPI NTSTATUS NTAPI NtProtectVirtualMemory(HANDLE, PVOID *, PSIZE_T, ULONG, PULONG); + +typedef enum _SYSTEM_INFORMATION_CLASS +{ + SystemBasicInformation = 0, + SystemCpuInformation, + SystemPerformanceInformation, + SystemTimeOfDayInformation, + SystemInformation_Unknown_4, + SystemProcessInformation, + SystemInformation_Unknown_6, + SystemInformation_Unknown_7, + SystemProcessorPerformanceInformation, + SystemInformation_Unknown_9, + SystemInformation_Unknown_10, + SystemModuleInformation, + SystemInformation_Unknown_12, + SystemInformation_Unknown_13, + SystemInformation_Unknown_14, + SystemInformation_Unknown_15, + SystemHandleInformation, + SystemInformation_Unknown_17, + SystemPageFileInformation, + SystemInformation_Unknown_19, + SystemInformation_Unknown_20, + SystemCacheInformation, + SystemInformation_Unknown_22, + SystemInterruptInformation, + SystemDpcBehaviourInformation, + SystemFullMemoryInformation, + SystemLoadGdiDriverInformation, /* 26 */ + SystemUnloadGdiDriverInformation, /* 27 */ + SystemTimeAdjustmentInformation, + SystemSummaryMemoryInformation, + SystemInformation_Unknown_30, + SystemInformation_Unknown_31, + SystemInformation_Unknown_32, + SystemExceptionInformation, + SystemCrashDumpStateInformation, + SystemKernelDebuggerInformation, + SystemContextSwitchInformation, + SystemRegistryQuotaInformation, + SystemInformation_Unknown_38, + SystemInformation_Unknown_39, + SystemInformation_Unknown_40, + SystemInformation_Unknown_41, + SystemInformation_Unknown_42, + SystemInformation_Unknown_43, + SystemCurrentTimeZoneInformation, + SystemLookasideInformation, + SystemSetTimeSlipEvent, + SystemCreateSession, + SystemDeleteSession, + SystemInformation_Unknown_49, + SystemRangeStartInformation, + SystemVerifierInformation, + SystemInformation_Unknown_52, + SystemSessionProcessInformation, + SystemLoadGdiDriverInSystemSpaceInformation, /* 54 */ + SystemInformation_Unknown_55, + SystemInformation_Unknown_56, + SystemExtendedProcessInformation, + SystemInformation_Unknown_58, + SystemInformation_Unknown_59, + SystemInformation_Unknown_60, + SystemInformation_Unknown_61, + SystemInformation_Unknown_62, + SystemInformation_Unknown_63, + SystemExtendedHandleInformation, /* 64 */ + SystemInformation_Unknown_65, + SystemInformation_Unknown_66, + SystemInformation_Unknown_67, + SystemInformation_Unknown_68, + SystemInformation_HotPatchInfo, /* 69 */ + SystemInformation_Unknown_70, + SystemInformation_Unknown_71, + SystemInformation_Unknown_72, + SystemInformation_Unknown_73, + SystemInformation_Unknown_74, + SystemInformation_Unknown_75, + SystemInformation_Unknown_76, + SystemInformation_Unknown_77, + SystemInformation_Unknown_78, + SystemInformation_Unknown_79, + SystemInformation_Unknown_80, + SystemInformation_Unknown_81, + SystemInformation_Unknown_82, + SystemInformation_Unknown_83, + SystemInformation_Unknown_84, + SystemInformation_Unknown_85, + SystemInformation_Unknown_86, + SystemInformation_Unknown_87, + SystemInformation_Unknown_88, + SystemInformation_Unknown_89, + SystemInformation_Unknown_90, + SystemInformation_Unknown_91, + SystemInformation_Unknown_92, + SystemInformation_Unknown_93, + SystemInformation_Unknown_94, + SystemInformation_Unknown_95, + SystemInformation_KiOpPrefetchPatchCount, + + /** @todo fill gap. they've added a whole bunch of things */ + SystemPolicyInformation = 134, + SystemInformationClassMax +} SYSTEM_INFORMATION_CLASS; + +//#ifdef IPRT_NT_USE_WINTERNL +typedef struct _VM_COUNTERS +{ + SIZE_T PeakVirtualSize; + SIZE_T VirtualSize; + ULONG PageFaultCount; + SIZE_T PeakWorkingSetSize; + SIZE_T WorkingSetSize; + SIZE_T QuotaPeakPagedPoolUsage; + SIZE_T QuotaPagedPoolUsage; + SIZE_T QuotaPeakNonPagedPoolUsage; + SIZE_T QuotaNonPagedPoolUsage; + SIZE_T PagefileUsage; + SIZE_T PeakPagefileUsage; +} VM_COUNTERS; +typedef VM_COUNTERS *PVM_COUNTERS; +//#endif + +#ifndef IPRT_NT_USE_WINTERNL +typedef struct _IO_COUNTERS +{ + ULONGLONG ReadOperationCount; + ULONGLONG WriteOperationCount; + ULONGLONG OtherOperationCount; + ULONGLONG ReadTransferCount; + ULONGLONG WriteTransferCount; + ULONGLONG OtherTransferCount; +} IO_COUNTERS; +typedef IO_COUNTERS *PIO_COUNTERS; +#endif + +typedef struct _RTNT_SYSTEM_PROCESS_INFORMATION +{ + ULONG NextEntryOffset; /**< 0x00 / 0x00 */ + ULONG NumberOfThreads; /**< 0x04 / 0x04 */ + LARGE_INTEGER Reserved1[3]; /**< 0x08 / 0x08 */ + LARGE_INTEGER CreationTime; /**< 0x20 / 0x20 */ + LARGE_INTEGER UserTime; /**< 0x28 / 0x28 */ + LARGE_INTEGER KernelTime; /**< 0x30 / 0x30 */ + UNICODE_STRING ProcessName; /**< 0x38 / 0x38 Clean unicode encoding? */ + int32_t BasePriority; /**< 0x40 / 0x48 */ + HANDLE UniqueProcessId; /**< 0x44 / 0x50 */ + HANDLE ParentProcessId; /**< 0x48 / 0x58 */ + ULONG HandleCount; /**< 0x4c / 0x60 */ + ULONG Reserved2; /**< 0x50 / 0x64 Session ID? */ + ULONG_PTR Reserved3; /**< 0x54 / 0x68 */ + VM_COUNTERS VmCounters; /**< 0x58 / 0x70 */ + IO_COUNTERS IoCounters; /**< 0x88 / 0xd0 Might not be present in earlier windows versions. */ + /* After this follows the threads, then the ProcessName.Buffer. */ +} RTNT_SYSTEM_PROCESS_INFORMATION; +typedef RTNT_SYSTEM_PROCESS_INFORMATION *PRTNT_SYSTEM_PROCESS_INFORMATION; +#ifndef IPRT_NT_USE_WINTERNL +typedef RTNT_SYSTEM_PROCESS_INFORMATION SYSTEM_PROCESS_INFORMATION; +typedef SYSTEM_PROCESS_INFORMATION *PSYSTEM_PROCESS_INFORMATION; +#endif + +typedef struct _SYSTEM_HANDLE_ENTRY_INFO +{ + USHORT UniqueProcessId; + USHORT CreatorBackTraceIndex; + UCHAR ObjectTypeIndex; + UCHAR HandleAttributes; + USHORT HandleValue; + PVOID Object; + ULONG GrantedAccess; +} SYSTEM_HANDLE_ENTRY_INFO; +typedef SYSTEM_HANDLE_ENTRY_INFO *PSYSTEM_HANDLE_ENTRY_INFO; + +/** Returned by SystemHandleInformation */ +typedef struct _SYSTEM_HANDLE_INFORMATION +{ + ULONG NumberOfHandles; + SYSTEM_HANDLE_ENTRY_INFO Handles[1]; +} SYSTEM_HANDLE_INFORMATION; +typedef SYSTEM_HANDLE_INFORMATION *PSYSTEM_HANDLE_INFORMATION; + +/** Extended handle information entry. + * @remarks 3 x PVOID + 4 x ULONG = 28 bytes on 32-bit / 40 bytes on 64-bit */ +typedef struct _SYSTEM_HANDLE_ENTRY_INFO_EX +{ + PVOID Object; + HANDLE UniqueProcessId; + HANDLE HandleValue; + ACCESS_MASK GrantedAccess; + USHORT CreatorBackTraceIndex; + USHORT ObjectTypeIndex; + ULONG HandleAttributes; + ULONG Reserved; +} SYSTEM_HANDLE_ENTRY_INFO_EX; +typedef SYSTEM_HANDLE_ENTRY_INFO_EX *PSYSTEM_HANDLE_ENTRY_INFO_EX; + +/** Returned by SystemExtendedHandleInformation. */ +typedef struct _SYSTEM_HANDLE_INFORMATION_EX +{ + ULONG_PTR NumberOfHandles; + ULONG_PTR Reserved; + SYSTEM_HANDLE_ENTRY_INFO_EX Handles[1]; +} SYSTEM_HANDLE_INFORMATION_EX; +typedef SYSTEM_HANDLE_INFORMATION_EX *PSYSTEM_HANDLE_INFORMATION_EX; + +/** Input to SystemSessionProcessInformation. */ +typedef struct _SYSTEM_SESSION_PROCESS_INFORMATION +{ + ULONG SessionId; + ULONG BufferLength; + /** Return buffer, SYSTEM_PROCESS_INFORMATION entries. */ + PVOID Buffer; +} SYSTEM_SESSION_PROCESS_INFORMATION; +typedef SYSTEM_SESSION_PROCESS_INFORMATION *PSYSTEM_SESSION_PROCESS_INFORMATION; + +NTSYSAPI NTSTATUS NTAPI NtQuerySystemInformation(SYSTEM_INFORMATION_CLASS, PVOID, ULONG, PULONG); + +NTSYSAPI NTSTATUS NTAPI NtDelayExecution(BOOLEAN, PLARGE_INTEGER); +NTSYSAPI NTSTATUS NTAPI NtYieldExecution(void); +NTSYSAPI NTSTATUS NTAPI NtWaitForSingleObject(HANDLE, BOOLEAN, PLARGE_INTEGER); +typedef NTSYSAPI NTSTATUS (NTAPI *PFNNTWAITFORSINGLEOBJECT)(HANDLE, BOOLEAN, PLARGE_INTEGER); +typedef enum _OBJECT_WAIT_TYPE { WaitAllObjects = 0, WaitAnyObject = 1, ObjectWaitTypeHack = 0x7fffffff } OBJECT_WAIT_TYPE; +NTSYSAPI NTSTATUS NTAPI NtWaitForMultipleObjects(ULONG, PHANDLE, OBJECT_WAIT_TYPE, BOOLEAN, PLARGE_INTEGER); + +NTSYSAPI NTSTATUS NTAPI NtQuerySecurityObject(HANDLE, ULONG, PSECURITY_DESCRIPTOR, ULONG, PULONG); + +#ifdef IPRT_NT_USE_WINTERNL +typedef enum _EVENT_TYPE +{ + /* Manual reset event. */ + NotificationEvent = 0, + /* Automaitc reset event. */ + SynchronizationEvent +} EVENT_TYPE; +#endif +NTSYSAPI NTSTATUS NTAPI NtCreateEvent(PHANDLE, ACCESS_MASK, POBJECT_ATTRIBUTES, EVENT_TYPE, BOOLEAN); +NTSYSAPI NTSTATUS NTAPI NtOpenEvent(PHANDLE, ACCESS_MASK, POBJECT_ATTRIBUTES); +typedef NTSYSAPI NTSTATUS (NTAPI *PFNNTCLEAREVENT)(HANDLE); +NTSYSAPI NTSTATUS NTAPI NtClearEvent(HANDLE); +NTSYSAPI NTSTATUS NTAPI NtResetEvent(HANDLE, PULONG); +NTSYSAPI NTSTATUS NTAPI NtSetEvent(HANDLE, PULONG); +typedef NTSYSAPI NTSTATUS (NTAPI *PFNNTSETEVENT)(HANDLE, PULONG); +typedef enum _EVENT_INFORMATION_CLASS +{ + EventBasicInformation = 0 +} EVENT_INFORMATION_CLASS; +/** Data returned by NtQueryEvent + EventBasicInformation. */ +typedef struct EVENT_BASIC_INFORMATION +{ + EVENT_TYPE EventType; + ULONG EventState; +} EVENT_BASIC_INFORMATION; +typedef EVENT_BASIC_INFORMATION *PEVENT_BASIC_INFORMATION; +NTSYSAPI NTSTATUS NTAPI NtQueryEvent(HANDLE, EVENT_INFORMATION_CLASS, PVOID, ULONG, PULONG); + +#ifdef IPRT_NT_USE_WINTERNL +/** For NtQueryValueKey. */ +typedef enum _KEY_VALUE_INFORMATION_CLASS +{ + KeyValueBasicInformation = 0, + KeyValueFullInformation, + KeyValuePartialInformation, + KeyValueFullInformationAlign64, + KeyValuePartialInformationAlign64 +} KEY_VALUE_INFORMATION_CLASS; + +/** KeyValuePartialInformation and KeyValuePartialInformationAlign64 struct. */ +typedef struct _KEY_VALUE_PARTIAL_INFORMATION +{ + ULONG TitleIndex; + ULONG Type; + ULONG DataLength; + UCHAR Data[1]; +} KEY_VALUE_PARTIAL_INFORMATION; +typedef KEY_VALUE_PARTIAL_INFORMATION *PKEY_VALUE_PARTIAL_INFORMATION; +#endif +NTSYSAPI NTSTATUS NTAPI NtOpenKey(PHANDLE, ACCESS_MASK, POBJECT_ATTRIBUTES); +NTSYSAPI NTSTATUS NTAPI NtQueryValueKey(HANDLE, PUNICODE_STRING, KEY_VALUE_INFORMATION_CLASS, PVOID, ULONG, PULONG); + + +NTSYSAPI NTSTATUS NTAPI RtlAddAccessDeniedAce(PACL, ULONG, ULONG, PSID); + + +typedef struct _CURDIR +{ + UNICODE_STRING DosPath; + HANDLE Handle; +} CURDIR; +typedef CURDIR *PCURDIR; + +typedef struct _RTL_DRIVE_LETTER_CURDIR +{ + USHORT Flags; + USHORT Length; + ULONG TimeStamp; + STRING DosPath; /**< Yeah, it's STRING according to dt ntdll!_RTL_DRIVE_LETTER_CURDIR. */ +} RTL_DRIVE_LETTER_CURDIR; +typedef RTL_DRIVE_LETTER_CURDIR *PRTL_DRIVE_LETTER_CURDIR; + +typedef struct _RTL_USER_PROCESS_PARAMETERS +{ + ULONG MaximumLength; + ULONG Length; + ULONG Flags; + ULONG DebugFlags; + HANDLE ConsoleHandle; + ULONG ConsoleFlags; + HANDLE StandardInput; + HANDLE StandardOutput; + HANDLE StandardError; + CURDIR CurrentDirectory; + UNICODE_STRING DllPath; + UNICODE_STRING ImagePathName; + UNICODE_STRING CommandLine; + PWSTR Environment; + ULONG StartingX; + ULONG StartingY; + ULONG CountX; + ULONG CountY; + ULONG CountCharsX; + ULONG CountCharsY; + ULONG FillAttribute; + ULONG WindowFlags; + ULONG ShowWindowFlags; + UNICODE_STRING WindowTitle; + UNICODE_STRING DesktopInfo; + UNICODE_STRING ShellInfo; + UNICODE_STRING RuntimeInfo; + RTL_DRIVE_LETTER_CURDIR CurrentDirectories[0x20]; + SIZE_T EnvironmentSize; /**< Added in Vista */ + SIZE_T EnvironmentVersion; /**< Added in Windows 7. */ + PVOID PackageDependencyData; /**< Added Windows 8? */ + ULONG ProcessGroupId; /**< Added Windows 8? */ +} RTL_USER_PROCESS_PARAMETERS; +typedef RTL_USER_PROCESS_PARAMETERS *PRTL_USER_PROCESS_PARAMETERS; +#define RTL_USER_PROCESS_PARAMS_FLAG_NORMALIZED 1 + +typedef struct _RTL_USER_PROCESS_INFORMATION +{ + ULONG Size; + HANDLE ProcessHandle; + HANDLE ThreadHandle; + CLIENT_ID ClientId; + SECTION_IMAGE_INFORMATION ImageInformation; +} RTL_USER_PROCESS_INFORMATION; +typedef RTL_USER_PROCESS_INFORMATION *PRTL_USER_PROCESS_INFORMATION; + + +NTSYSAPI NTSTATUS NTAPI RtlCreateUserProcess(PUNICODE_STRING, ULONG, PRTL_USER_PROCESS_PARAMETERS, PSECURITY_DESCRIPTOR, + PSECURITY_DESCRIPTOR, HANDLE, BOOLEAN, HANDLE, HANDLE, PRTL_USER_PROCESS_INFORMATION); +NTSYSAPI NTSTATUS NTAPI RtlCreateProcessParameters(PRTL_USER_PROCESS_PARAMETERS *, PUNICODE_STRING ImagePathName, + PUNICODE_STRING DllPath, PUNICODE_STRING CurrentDirectory, + PUNICODE_STRING CommandLine, PUNICODE_STRING Environment, + PUNICODE_STRING WindowTitle, PUNICODE_STRING DesktopInfo, + PUNICODE_STRING ShellInfo, PUNICODE_STRING RuntimeInfo); +NTSYSAPI VOID NTAPI RtlDestroyProcessParameters(PRTL_USER_PROCESS_PARAMETERS); +NTSYSAPI NTSTATUS NTAPI RtlCreateUserThread(HANDLE, PSECURITY_DESCRIPTOR, BOOLEAN, ULONG, SIZE_T, SIZE_T, + PFNRT, PVOID, PHANDLE, PCLIENT_ID); + +#if !defined(RTL_CRITICAL_SECTION_FLAG_NO_DEBUG_INFO) && !defined(RTL_CRITSECT_TYPE) +typedef struct _RTL_CRITICAL_SECTION +{ + struct _RTL_CRITICAL_SECTION_DEBUG *DebugInfo; + LONG LockCount; + LONG Recursioncount; + HANDLE OwningThread; + HANDLE LockSemaphore; + ULONG_PTR SpinCount; +} RTL_CRITICAL_SECTION; +typedef RTL_CRITICAL_SECTION *PRTL_CRITICAL_SECTION; +#endif + +RT_C_DECLS_END +/** @} */ + + +#if defined(IN_RING0) || defined(DOXYGEN_RUNNING) +/** @name NT Kernel APIs + * @{ */ +RT_C_DECLS_BEGIN + +NTSYSAPI BOOLEAN NTAPI ObFindHandleForObject(PEPROCESS pProcess, PVOID pvObject, POBJECT_TYPE pObjectType, + PVOID pvOptionalConditions, PHANDLE phFound); +NTSYSAPI NTSTATUS NTAPI ObReferenceObjectByName(PUNICODE_STRING pObjectPath, ULONG fAttributes, PACCESS_STATE pAccessState, + ACCESS_MASK fDesiredAccess, POBJECT_TYPE pObjectType, + KPROCESSOR_MODE enmAccessMode, PVOID pvParseContext, PVOID *ppvObject); +NTSYSAPI HANDLE NTAPI PsGetProcessInheritedFromUniqueProcessId(PEPROCESS); +NTSYSAPI UCHAR * NTAPI PsGetProcessImageFileName(PEPROCESS); +NTSYSAPI BOOLEAN NTAPI PsIsProcessBeingDebugged(PEPROCESS); +NTSYSAPI ULONG NTAPI PsGetProcessSessionId(PEPROCESS); + +extern DECLIMPORT(POBJECT_TYPE *) LpcPortObjectType; /**< In vista+ this is the ALPC port object type. */ +extern DECLIMPORT(POBJECT_TYPE *) LpcWaitablePortObjectType; /**< In vista+ this is the ALPC port object type. */ + +/* Missing in older WDKs/DDKs: */ +NTSYSAPI HANDLE NTAPI PsGetProcessId(PEPROCESS); +NTSYSAPI HANDLE NTAPI PsGetCurrentProcessId(VOID); +NTSYSAPI HANDLE NTAPI PsGetCurrentThreadId(VOID); +NTSYSAPI BOOLEAN NTAPI PsGetVersion(PULONG, PULONG, PULONG, PUNICODE_STRING); +NTSYSAPI NTSTATUS NTAPI PsLookupProcessByProcessId(HANDLE, PEPROCESS *); +NTSYSAPI NTSTATUS NTAPI PsLookupThreadByThreadId(HANDLE, PETHREAD *); +NTSYSAPI NTSTATUS NTAPI ObQueryNameString(PVOID, POBJECT_NAME_INFORMATION, ULONG, PULONG); +NTSYSAPI NTSTATUS NTAPI ObOpenObjectByPointer(PVOID, ULONG, PACCESS_STATE, ACCESS_MASK, POBJECT_TYPE, KPROCESSOR_MODE, PHANDLE); +typedef struct _PS_CREATE_NOTIFY_INFO +{ + SIZE_T Size; + union + { + ULONG Flags; + struct + { + ULONG FileOpenNameAvailable : 1; + ULONG Reserved : 31; + }; + }; + HANDLE ParentProcessId; + CLIENT_ID CreatingThreadId; + struct _FILE_OBJECT *FileObject; + PCUNICODE_STRING ImageFileName; + PCUNICODE_STRING CommandLine; + NTSTATUS CreationStatus; +} PS_CREATE_NOTIFY_INFO; +typedef PS_CREATE_NOTIFY_INFO *PPS_CREATE_NOTIFY_INFO; +typedef VOID (NTAPI * PCREATE_PROCESS_NOTIFY_ROUTINE_EX)(PEPROCESS, HANDLE, PPS_CREATE_NOTIFY_INFO ); +typedef VOID (NTAPI * PCREATE_PROCESS_NOTIFY_ROUTINE)(HANDLE, HANDLE, BOOLEAN); +NTSYSAPI NTSTATUS NTAPI PsSetCreateProcessNotifyRoutine(PCREATE_PROCESS_NOTIFY_ROUTINE, BOOLEAN); +extern DECLIMPORT(PEPROCESS) PsInitialSystemProcess; + +RT_C_DECLS_END +/** @ */ +#endif /* IN_RING0 */ + +/** @name Missing NT Status Codes. + * @{ */ +#ifndef STATUS_INVALID_IMAGE_HASH +# define STATUS_INVALID_IMAGE_HASH INT32_C(0xc0000428) +#endif +/** @} */ + +#if defined(IN_RING3) || defined(DOXYGEN_RUNNING) +/** @name NT Userland APIs + * @{ */ +RT_C_DECLS_BEGIN + +#if 0 /** @todo figure this out some time... */ +typedef struct CSR_MSG_DATA_CREATED_PROCESS +{ + HANDLE hProcess; + HANDLE hThread; + CLIENT_ID + DWORD idProcess; + DWORD idThread; + DWORD fCreate; + +} CSR_MSG_DATA_CREATED_PROCESS; + +#define CSR_MSG_NO_CREATED_PROCESS UINT32_C(0x10000) +#define CSR_MSG_NO_CREATED_THREAD UINT32_C(0x10001) +NTSYSAPI NTSTATUS NTAPI CsrClientCallServer(PVOID, PVOID, ULONG, SIZE_T); +#endif + +NTSYSAPI VOID NTAPI LdrInitializeThunk(PVOID, PVOID, PVOID); + +typedef struct _LDR_DLL_LOADED_NOTIFICATION_DATA +{ + ULONG Flags; + PCUNICODE_STRING FullDllName; + PCUNICODE_STRING BaseDllName; + PVOID DllBase; + ULONG SizeOfImage; +} LDR_DLL_LOADED_NOTIFICATION_DATA, LDR_DLL_UNLOADED_NOTIFICATION_DATA; +typedef LDR_DLL_LOADED_NOTIFICATION_DATA *PLDR_DLL_LOADED_NOTIFICATION_DATA, *PLDR_DLL_UNLOADED_NOTIFICATION_DATA; +typedef LDR_DLL_LOADED_NOTIFICATION_DATA const *PCLDR_DLL_LOADED_NOTIFICATION_DATA, *PCLDR_DLL_UNLOADED_NOTIFICATION_DATA; + +typedef union _LDR_DLL_NOTIFICATION_DATA +{ + LDR_DLL_LOADED_NOTIFICATION_DATA Loaded; + LDR_DLL_UNLOADED_NOTIFICATION_DATA Unloaded; +} LDR_DLL_NOTIFICATION_DATA; +typedef LDR_DLL_NOTIFICATION_DATA *PLDR_DLL_NOTIFICATION_DATA; +typedef LDR_DLL_NOTIFICATION_DATA const *PCLDR_DLL_NOTIFICATION_DATA; + +typedef VOID (NTAPI *PLDR_DLL_NOTIFICATION_FUNCTION)(ULONG ulReason, PCLDR_DLL_NOTIFICATION_DATA pData, PVOID pvUser); + +#define LDR_DLL_NOTIFICATION_REASON_LOADED UINT32_C(1) +#define LDR_DLL_NOTIFICATION_REASON_UNLOADED UINT32_C(2) +NTSYSAPI NTSTATUS NTAPI LdrRegisterDllNotification(ULONG fFlags, PLDR_DLL_NOTIFICATION_FUNCTION pfnCallback, PVOID pvUser, + PVOID *pvCookie); +typedef NTSTATUS (NTAPI *PFNLDRREGISTERDLLNOTIFICATION)(ULONG, PLDR_DLL_NOTIFICATION_FUNCTION, PVOID, PVOID *); +NTSYSAPI NTSTATUS NTAPI LdrUnregisterDllNotification(PVOID pvCookie); +typedef NTSTATUS (NTAPI *PFNLDRUNREGISTERDLLNOTIFICATION)(PVOID); + +NTSYSAPI NTSTATUS NTAPI LdrLoadDll(IN PWSTR pwszSearchPathOrFlags OPTIONAL, IN PULONG pfFlags OPTIONAL, + IN PCUNICODE_STRING pName, OUT PHANDLE phMod); +typedef NTSTATUS (NTAPI *PFNLDRLOADDLL)(IN PWSTR pwszSearchPathOrFlags OPTIONAL, IN PULONG pfFlags OPTIONAL, + IN PCUNICODE_STRING pName, OUT PHANDLE phMod); +NTSYSAPI NTSTATUS NTAPI LdrUnloadDll(IN HANDLE hMod); +typedef NTSTATUS (NTAPI *PFNLDRUNLOADDLL)(IN HANDLE hMod); +NTSYSAPI NTSTATUS NTAPI LdrGetDllHandle(IN PCWSTR pwszDllPath OPTIONAL, IN PULONG pfFlags OPTIONAL, + IN PCUNICODE_STRING pName, OUT PHANDLE phDll); +typedef NTSTATUS (NTAPI *PFNLDRGETDLLHANDLE)(IN PCWSTR pwszDllPath OPTIONAL, IN PULONG pfFlags OPTIONAL, + IN PCUNICODE_STRING pName, OUT PHANDLE phDll); +#define LDRGETDLLHANDLEEX_F_UNCHANGED_REFCOUNT RT_BIT_32(0) +#define LDRGETDLLHANDLEEX_F_PIN RT_BIT_32(1) +/** @since Windows XP. */ +NTSYSAPI NTSTATUS NTAPI LdrGetDllHandleEx(IN ULONG fFlags, IN PCWSTR pwszDllPath OPTIONAL, IN PULONG pfFlags OPTIONAL, + IN PCUNICODE_STRING pName, OUT PHANDLE phDll); +/** @since Windows XP. */ +typedef NTSTATUS (NTAPI *PFNLDRGETDLLHANDLEEX)(IN ULONG fFlags, IN PCWSTR pwszDllPath OPTIONAL, IN PULONG pfFlags OPTIONAL, + IN PCUNICODE_STRING pName, OUT PHANDLE phDll); +/** @since Windows 7. */ +NTSYSAPI NTSTATUS NTAPI LdrGetDllHandleByMapping(IN PVOID pvBase, OUT PHANDLE phDll); +/** @since Windows 7. */ +typedef NTSTATUS (NTAPI *PFNLDRGETDLLHANDLEBYMAPPING)(IN PVOID pvBase, OUT PHANDLE phDll); +/** @since Windows 7. */ +NTSYSAPI NTSTATUS NTAPI LdrGetDllHandleByName(IN PCUNICODE_STRING pName OPTIONAL, IN PCUNICODE_STRING pFullName OPTIONAL, + OUT PHANDLE phDll); +/** @since Windows 7. */ +typedef NTSTATUS (NTAPI *PFNLDRGETDLLHANDLEBYNAME)(IN PCUNICODE_STRING pName OPTIONAL, IN PCUNICODE_STRING pFullName OPTIONAL, + OUT PHANDLE phDll); +#define LDRADDREFDLL_F_PIN RT_BIT_32(0) +NTSYSAPI NTSTATUS NTAPI LdrAddRefDll(IN ULONG fFlags, IN HANDLE hDll); +typedef NTSTATUS (NTAPI *PFNLDRADDREFDLL)(IN ULONG fFlags, IN HANDLE hDll); +NTSYSAPI NTSTATUS NTAPI LdrGetProcedureAddress(IN HANDLE hDll, IN ANSI_STRING const *pSymbol OPTIONAL, + IN ULONG uOrdinal OPTIONAL, OUT PVOID *ppvSymbol); +typedef NTSTATUS (NTAPI *PFNLDRGETPROCEDUREADDRESS)(IN HANDLE hDll, IN PCANSI_STRING pSymbol OPTIONAL, + IN ULONG uOrdinal OPTIONAL, OUT PVOID *ppvSymbol); +#define LDRGETPROCEDUREADDRESSEX_F_DONT_RECORD_FORWARDER RT_BIT_32(0) +/** @since Windows Vista. */ +NTSYSAPI NTSTATUS NTAPI LdrGetProcedureAddressEx(IN HANDLE hDll, IN ANSI_STRING const *pSymbol OPTIONAL, + IN ULONG uOrdinal OPTIONAL, OUT PVOID *ppvSymbol, ULONG fFlags); +/** @since Windows Vista. */ +typedef NTSTATUS (NTAPI *PFNLDRGETPROCEDUREADDRESSEX)(IN HANDLE hDll, IN ANSI_STRING const *pSymbol OPTIONAL, + IN ULONG uOrdinal OPTIONAL, OUT PVOID *ppvSymbol, ULONG fFlags); +#define LDRLOCKLOADERLOCK_F_RAISE_ERRORS RT_BIT_32(0) +#define LDRLOCKLOADERLOCK_F_NO_WAIT RT_BIT_32(1) +#define LDRLOCKLOADERLOCK_DISP_INVALID UINT32_C(0) +#define LDRLOCKLOADERLOCK_DISP_ACQUIRED UINT32_C(1) +#define LDRLOCKLOADERLOCK_DISP_NOT_ACQUIRED UINT32_C(2) +/** @since Windows XP. */ +NTSYSAPI NTSTATUS NTAPI LdrLockLoaderLock(IN ULONG fFlags, OUT PULONG puDisposition OPTIONAL, OUT PVOID *ppvCookie); +/** @since Windows XP. */ +typedef NTSTATUS (NTAPI *PFNLDRLOCKLOADERLOCK)(IN ULONG fFlags, OUT PULONG puDisposition OPTIONAL, OUT PVOID *ppvCookie); +#define LDRUNLOCKLOADERLOCK_F_RAISE_ERRORS RT_BIT_32(0) +/** @since Windows XP. */ +NTSYSAPI NTSTATUS NTAPI LdrUnlockLoaderLock(IN ULONG fFlags, OUT PVOID pvCookie); +/** @since Windows XP. */ +typedef NTSTATUS (NTAPI *PFNLDRUNLOCKLOADERLOCK)(IN ULONG fFlags, OUT PVOID pvCookie); + +NTSYSAPI NTSTATUS NTAPI RtlExpandEnvironmentStrings_U(PVOID, PUNICODE_STRING, PUNICODE_STRING, PULONG); +NTSYSAPI VOID NTAPI RtlExitUserProcess(NTSTATUS rcExitCode); /**< Vista and later. */ +NTSYSAPI VOID NTAPI RtlExitUserThread(NTSTATUS rcExitCode); +NTSYSAPI NTSTATUS NTAPI RtlDosApplyFileIsolationRedirection_Ustr(IN ULONG fFlags, + IN PCUNICODE_STRING pOrgName, + IN PUNICODE_STRING pDefaultSuffix, + IN OUT PUNICODE_STRING pStaticString, + IN OUT PUNICODE_STRING pDynamicString, + IN OUT PUNICODE_STRING *ppResultString, + IN PULONG pfNewFlags OPTIONAL, + IN PSIZE_T pcbFilename OPTIONAL, + IN PSIZE_T pcbNeeded OPTIONAL); + +# ifdef IPRT_NT_USE_WINTERNL +typedef NTSTATUS NTAPI RTL_HEAP_COMMIT_ROUTINE(PVOID, PVOID *, PSIZE_T); +typedef RTL_HEAP_COMMIT_ROUTINE *PRTL_HEAP_COMMIT_ROUTINE; +typedef struct _RTL_HEAP_PARAMETERS +{ + ULONG Length; + SIZE_T SegmentReserve; + SIZE_T SegmentCommit; + SIZE_T DeCommitFreeBlockThreshold; + SIZE_T DeCommitTotalFreeThreshold; + SIZE_T MaximumAllocationSize; + SIZE_T VirtualMemoryThreshold; + SIZE_T InitialCommit; + SIZE_T InitialReserve; + PRTL_HEAP_COMMIT_ROUTINE CommitRoutine; + SIZE_T Reserved[2]; +} RTL_HEAP_PARAMETERS; +typedef RTL_HEAP_PARAMETERS *PRTL_HEAP_PARAMETERS; +NTSYSAPI PVOID NTAPI RtlCreateHeap(ULONG fFlags, PVOID pvHeapBase, SIZE_T cbReserve, SIZE_T cbCommit, PVOID pvLock, + PRTL_HEAP_PARAMETERS pParameters); +/** @name Heap flags (for RtlCreateHeap). + * @{ */ +/*# define HEAP_NO_SERIALIZE UINT32_C(0x00000001) +# define HEAP_GROWABLE UINT32_C(0x00000002) +# define HEAP_GENERATE_EXCEPTIONS UINT32_C(0x00000004) +# define HEAP_ZERO_MEMORY UINT32_C(0x00000008) +# define HEAP_REALLOC_IN_PLACE_ONLY UINT32_C(0x00000010) +# define HEAP_TAIL_CHECKING_ENABLED UINT32_C(0x00000020) +# define HEAP_FREE_CHECKING_ENABLED UINT32_C(0x00000040) +# define HEAP_DISABLE_COALESCE_ON_FREE UINT32_C(0x00000080)*/ +# define HEAP_SETTABLE_USER_VALUE UINT32_C(0x00000100) +# define HEAP_SETTABLE_USER_FLAG1 UINT32_C(0x00000200) +# define HEAP_SETTABLE_USER_FLAG2 UINT32_C(0x00000400) +# define HEAP_SETTABLE_USER_FLAG3 UINT32_C(0x00000800) +# define HEAP_SETTABLE_USER_FLAGS UINT32_C(0x00000e00) +# define HEAP_CLASS_0 UINT32_C(0x00000000) +# define HEAP_CLASS_1 UINT32_C(0x00001000) +# define HEAP_CLASS_2 UINT32_C(0x00002000) +# define HEAP_CLASS_3 UINT32_C(0x00003000) +# define HEAP_CLASS_4 UINT32_C(0x00004000) +# define HEAP_CLASS_5 UINT32_C(0x00005000) +# define HEAP_CLASS_6 UINT32_C(0x00006000) +# define HEAP_CLASS_7 UINT32_C(0x00007000) +# define HEAP_CLASS_8 UINT32_C(0x00008000) +# define HEAP_CLASS_MASK UINT32_C(0x0000f000) +# endif +# define HEAP_CLASS_PROCESS HEAP_CLASS_0 +# define HEAP_CLASS_PRIVATE HEAP_CLASS_1 +# define HEAP_CLASS_KERNEL HEAP_CLASS_2 +# define HEAP_CLASS_GDI HEAP_CLASS_3 +# define HEAP_CLASS_USER HEAP_CLASS_4 +# define HEAP_CLASS_CONSOLE HEAP_CLASS_5 +# define HEAP_CLASS_USER_DESKTOP HEAP_CLASS_6 +# define HEAP_CLASS_CSRSS_SHARED HEAP_CLASS_7 +# define HEAP_CLASS_CSRSS_PORT HEAP_CLASS_8 +# ifdef IPRT_NT_USE_WINTERNL +/*# define HEAP_CREATE_ALIGN_16 UINT32_C(0x00010000) +# define HEAP_CREATE_ENABLE_TRACING UINT32_C(0x00020000) +# define HEAP_CREATE_ENABLE_EXECUTE UINT32_C(0x00040000)*/ +# define HEAP_CREATE_VALID_MASK UINT32_C(0x0007f0ff) +# endif /* IPRT_NT_USE_WINTERNL */ +/** @} */ +# ifdef IPRT_NT_USE_WINTERNL +/** @name Heap tagging constants + * @{ */ +# define HEAP_GLOBAL_TAG UINT32_C(0x00000800) +/*# define HEAP_MAXIMUM_TAG UINT32_C(0x00000fff) +# define HEAP_PSEUDO_TAG_FLAG UINT32_C(0x00008000) +# define HEAP_TAG_SHIFT 18 */ +# define HEAP_TAG_MASK (HEAP_MAXIMUM_TAG << HEAP_TAG_SHIFT) +/** @} */ +NTSYSAPI PVOID NTAPI RtlAllocateHeap(HANDLE hHeap, ULONG fFlags, SIZE_T cb); +NTSYSAPI PVOID NTAPI RtlReAllocateHeap(HANDLE hHeap, ULONG fFlags, PVOID pvOld, SIZE_T cbNew); +NTSYSAPI BOOLEAN NTAPI RtlFreeHeap(HANDLE hHeap, ULONG fFlags, PVOID pvMem); +# endif /* IPRT_NT_USE_WINTERNL */ +NTSYSAPI SIZE_T NTAPI RtlCompactHeap(HANDLE hHeap, ULONG fFlags); +NTSYSAPI VOID NTAPI RtlFreeUnicodeString(PUNICODE_STRING); +NTSYSAPI SIZE_T NTAPI RtlSizeHeap(HANDLE hHeap, ULONG fFlags, PVOID pvMem); +NTSYSAPI NTSTATUS NTAPI RtlGetLastNtStatus(VOID); +NTSYSAPI ULONG NTAPI RtlGetLastWin32Error(VOID); +NTSYSAPI VOID NTAPI RtlSetLastWin32Error(ULONG uError); +NTSYSAPI VOID NTAPI RtlSetLastWin32ErrorAndNtStatusFromNtStatus(NTSTATUS rcNt); +NTSYSAPI VOID NTAPI RtlRestoreLastWin32Error(ULONG uError); + +RT_C_DECLS_END +/** @} */ +#endif /* IN_RING3 */ + +#endif + diff -Nru virtualbox-4.1.12-dfsg/include/iprt/once.h virtualbox-4.1.44-dfsg/include/iprt/once.h --- virtualbox-4.1.12-dfsg/include/iprt/once.h 2012-04-02 13:24:45.000000000 +0000 +++ virtualbox-4.1.44-dfsg/include/iprt/once.h 2015-11-11 15:06:04.000000000 +0000 @@ -3,7 +3,7 @@ */ /* - * Copyright (C) 2006-2007 Oracle Corporation + * Copyright (C) 2006-2012 Oracle Corporation * * This file is part of VirtualBox Open Source Edition (OSE), as * available from http://www.virtualbox.org. This file is free software; @@ -30,6 +30,7 @@ #include #include #include +#include RT_C_DECLS_BEGIN @@ -39,6 +40,28 @@ */ /** + * Callback that gets executed once. + * + * @returns IPRT style status code, RTOnce returns this. + * + * @param pvUser The user parameter. + */ +typedef DECLCALLBACK(int32_t) FNRTONCE(void *pvUser); +/** Pointer to a FNRTONCE. */ +typedef FNRTONCE *PFNRTONCE; + +/** + * Callback that gets executed on IPRT/process termination. + * + * @param pvUser The user parameter. + * @param fLazyCleanUpOk Indicates whether lazy clean-up is OK (see + * initterm.h). + */ +typedef DECLCALLBACK(void) FNRTONCECLEANUP(void *pvUser, bool fLazyCleanUpOk); +/** Pointer to a FNRTONCE. */ +typedef FNRTONCECLEANUP *PFNRTONCECLEANUP; + +/** * Execute once structure. * * This is typically a global variable that is statically initialized @@ -50,10 +73,17 @@ RTSEMEVENTMULTI volatile hEventMulti; /** Reference counter for hEventMulti. */ int32_t volatile cEventRefs; - /** -1 when uninitialized, 1 when initializing (busy) and 2 when done. */ + /** See RTONCESTATE. */ int32_t volatile iState; /** The return code of pfnOnce. */ int32_t volatile rc; + + /** Pointer to the clean-up function. */ + PFNRTONCECLEANUP pfnCleanUp; + /** Argument to hand to the clean-up function. */ + void *pvUser; + /** Clean-up list entry. */ + RTLISTNODE CleanUpNode; } RTONCE; /** Pointer to a execute once struct. */ typedef RTONCE *PRTONCE; @@ -93,20 +123,24 @@ } RTONCESTATE; /** Static initializer for RTONCE variables. */ -#define RTONCE_INITIALIZER { NIL_RTSEMEVENTMULTI, 0, RTONCESTATE_UNINITIALIZED, VERR_INTERNAL_ERROR } +#define RTONCE_INITIALIZER \ + { NIL_RTSEMEVENTMULTI, 0, RTONCESTATE_UNINITIALIZED, VERR_INTERNAL_ERROR, NULL, NULL, { NULL, NULL } } /** - * Callback that gets executed once. + * Serializes execution of the pfnOnce function, making sure it's + * executed exactly once and that nobody returns from RTOnce before + * it has executed successfully. * - * @returns IPRT style status code, RTOnce returns this. + * @returns IPRT like status code returned by pfnOnce. * - * @param pvUser1 The first user parameter. - * @param pvUser2 The second user parameter. + * @param pOnce Pointer to the execute once variable. + * @param pfnOnce The function to executed once. + * @param pfnCleanUp The function that will be doing the cleaning up. + * Optional. + * @param pvUser The user parameter for pfnOnce. */ -typedef DECLCALLBACK(int32_t) FNRTONCE(void *pvUser1, void *pvUser2); -/** Pointer to a FNRTONCE. */ -typedef FNRTONCE *PFNRTONCE; +RTDECL(int) RTOnceSlow(PRTONCE pOnce, PFNRTONCE pfnOnce, FNRTONCECLEANUP pfnCleanUp, void *pvUser); /** * Serializes execution of the pfnOnce function, making sure it's @@ -117,12 +151,21 @@ * * @param pOnce Pointer to the execute once variable. * @param pfnOnce The function to executed once. - * @param pvUser1 The first user parameter for pfnOnce. - * @param pvUser2 The second user parameter for pfnOnce. + * @param pvUser The user parameter for pfnOnce. */ -RTDECL(int) RTOnceSlow(PRTONCE pOnce, PFNRTONCE pfnOnce, void *pvUser1, void *pvUser2); +DECLINLINE(int) RTOnce(PRTONCE pOnce, PFNRTONCE pfnOnce, void *pvUser) +{ + int32_t iState = ASMAtomicUoReadS32(&pOnce->iState); + if (RT_LIKELY( iState == RTONCESTATE_DONE + || iState == RTONCESTATE_DONE_CREATING_SEM + || iState == RTONCESTATE_DONE_HAVE_SEM )) + return ASMAtomicUoReadS32(&pOnce->rc); + return RTOnceSlow(pOnce, pfnOnce, NULL, pvUser); +} /** + * Execute pfnOnce once and register a termination clean-up callback. + * * Serializes execution of the pfnOnce function, making sure it's * executed exactly once and that nobody returns from RTOnce before * it has executed successfully. @@ -131,19 +174,20 @@ * * @param pOnce Pointer to the execute once variable. * @param pfnOnce The function to executed once. - * @param pvUser1 The first user parameter for pfnOnce. - * @param pvUser2 The second user parameter for pfnOnce. + * @param pfnCleanUp The function that will be doing the cleaning up. + * @param pvUser The user parameter for pfnOnce. */ -DECLINLINE(int) RTOnce(PRTONCE pOnce, PFNRTONCE pfnOnce, void *pvUser1, void *pvUser2) +DECLINLINE(int) RTOnceEx(PRTONCE pOnce, PFNRTONCE pfnOnce, PFNRTONCECLEANUP pfnCleanUp, void *pvUser) { int32_t iState = ASMAtomicUoReadS32(&pOnce->iState); if (RT_LIKELY( iState == RTONCESTATE_DONE || iState == RTONCESTATE_DONE_CREATING_SEM || iState == RTONCESTATE_DONE_HAVE_SEM )) return ASMAtomicUoReadS32(&pOnce->rc); - return RTOnceSlow(pOnce, pfnOnce, pvUser1, pvUser2); + return RTOnceSlow(pOnce, pfnOnce, pfnCleanUp, pvUser); } + /** * Resets an execute once variable. * diff -Nru virtualbox-4.1.12-dfsg/include/iprt/path.h virtualbox-4.1.44-dfsg/include/iprt/path.h --- virtualbox-4.1.12-dfsg/include/iprt/path.h 2012-04-02 13:24:45.000000000 +0000 +++ virtualbox-4.1.44-dfsg/include/iprt/path.h 2015-11-11 15:06:04.000000000 +0000 @@ -173,6 +173,32 @@ RTDECL(int) RTPathGetCurrent(char *pszPath, size_t cchPath); /** + * Gets the current working directory on the specified drive. + * + * On systems without drive letters, the root slash will be returned. + * + * @returns IPRT status code. + * @param chDrive The drive we're querying the driver letter on. + * @param pszPath Where to store the working directroy path. + * @param cbPath The size of the buffer pszPath points to. + */ +RTDECL(int) RTPathGetCurrentOnDrive(char chDrive, char *pszPath, size_t cbPath); + +/** + * Gets the current working drive of the process. + * + * Normally drive letter and colon will be returned, never trailing a root + * slash. If the current directory is on a UNC share, the root of the share + * will be returned. On systems without drive letters, an empty string is + * returned for consistency. + * + * @returns IPRT status code. + * @param pszPath Where to store the working drive or UNC root. + * @param cbPath The size of the buffer pszPath points to. + */ +RTDECL(int) RTPathGetCurrentDrive(char *pszPath, size_t cbPath); + +/** * Get the real path (no symlinks, no . or .. components), must exist. * * @returns iprt status code. diff -Nru virtualbox-4.1.12-dfsg/include/iprt/process.h virtualbox-4.1.44-dfsg/include/iprt/process.h --- virtualbox-4.1.12-dfsg/include/iprt/process.h 2012-04-02 13:24:46.000000000 +0000 +++ virtualbox-4.1.44-dfsg/include/iprt/process.h 2015-11-11 15:06:04.000000000 +0000 @@ -361,6 +361,15 @@ */ RTR3DECL(bool) RTProcIsRunningByName(const char *pszName); +/** + * Queries the parent process ID. + * + * @returns IPRT status code + * @param hProcess The process to query the parent of. + * @param phParent Where to return the parent process ID. + */ +RTR3DECL(int) RTProcQueryParent(RTPROCESS hProcess, PRTPROCESS phParent); + #endif /* IN_RING3 */ /** @} */ diff -Nru virtualbox-4.1.12-dfsg/include/iprt/runtime-loader.h virtualbox-4.1.44-dfsg/include/iprt/runtime-loader.h --- virtualbox-4.1.12-dfsg/include/iprt/runtime-loader.h 2012-04-02 13:24:46.000000000 +0000 +++ virtualbox-4.1.44-dfsg/include/iprt/runtime-loader.h 2015-11-11 15:06:04.000000000 +0000 @@ -3,7 +3,7 @@ */ /* - * Copyright (C) 2008-2010 Oracle Corporation + * Copyright (C) 2008-2012 Oracle Corporation * * This file is part of VirtualBox Open Source Edition (OSE), as * available from http://www.virtualbox.org. This file is free software; @@ -115,7 +115,7 @@ * The function which does the actual work for RT_RUNTIME_LOADER_FUNCTION, * serialised for thread safety. */ -static DECLCALLBACK(int) rtldrLoadOnce(void *, void *) +static DECLCALLBACK(int) rtldrLoadOnce(void *) { RTLDRMOD hLib; int rc; @@ -144,7 +144,7 @@ int rc; LogFlowFunc(("\n")); - rc = RTOnce(&s_Once, rtldrLoadOnce, NULL, NULL); + rc = RTOnce(&s_Once, rtldrLoadOnce, NULL); LogFlowFunc(("rc = %Rrc\n", rc)); return rc; diff -Nru virtualbox-4.1.12-dfsg/include/iprt/sha.h virtualbox-4.1.44-dfsg/include/iprt/sha.h --- virtualbox-4.1.12-dfsg/include/iprt/sha.h 2012-04-02 13:24:46.000000000 +0000 +++ virtualbox-4.1.44-dfsg/include/iprt/sha.h 2015-11-11 15:06:04.000000000 +0000 @@ -45,9 +45,13 @@ */ typedef union RTSHA1CONTEXT { - uint8_t abPadding[ARCH_BITS == 32 ? 96 : 128]; + uint64_t u64BetterAlignment; + uint8_t abPadding[8 + (5 + 80) * 4 + 4]; #ifdef RT_SHA1_PRIVATE_CONTEXT - SHA_CTX Private; + SHA_CTX Private; +#endif +#ifdef RT_SHA1_PRIVATE_ALT_CONTEXT + RTSHA1ALTPRIVATECTX AltPrivate; #endif } RTSHA1CONTEXT; /** Pointer to an SHA-1 context. */ @@ -138,6 +142,7 @@ RTR3DECL(int) RTSha1DigestFromFile(const char *pszFile, char **ppszDigest, PFNRTPROGRESS pfnProgressCallback, void *pvUser); + /** The size of a SHA-256 hash. */ #define RTSHA256_HASH_SIZE 32 /** The length of a SHA-256 digest string. The terminator is not included. */ @@ -148,9 +153,13 @@ */ typedef union RTSHA256CONTEXT { - uint8_t abPadding[ARCH_BITS == 32 ? 112 : 160]; + uint64_t u64BetterAlignment; + uint8_t abPadding[8 + (8 + 80) * 4]; #ifdef RT_SHA256_PRIVATE_CONTEXT - SHA256_CTX Private; + SHA256_CTX Private; +#endif +#ifdef RT_SHA256_PRIVATE_ALT_CONTEXT + RTSHA256ALTPRIVATECTX AltPrivate; #endif } RTSHA256CONTEXT; /** Pointer to an SHA-256 context. */ @@ -215,6 +224,129 @@ */ RTDECL(int) RTSha256FromString(char const *pszDigest, uint8_t pabDigest[RTSHA256_HASH_SIZE]); +/** + * Creates a SHA256 digest for the given memory buffer. + * + * @returns iprt status code. + * + * @param pvBuf Memory buffer to create a + * SHA256 digest for. + * @param cbBuf The amount of data (in bytes). + * @param ppszDigest On success the SHA256 digest. + * @param pfnProgressCallback optional callback for the progress indication + * @param pvUser user defined pointer for the callback + */ +RTR3DECL(int) RTSha256Digest(void* pvBuf, size_t cbBuf, char **ppszDigest, PFNRTPROGRESS pfnProgressCallback, void *pvUser); + +/** + * Creates a SHA256 digest for the given file. + * + * @returns iprt status code. + * + * @param pszFile Filename to create a SHA256 + * digest for. + * @param ppszDigest On success the SHA256 digest. + * @param pfnProgressCallback optional callback for the progress indication + * @param pvUser user defined pointer for the callback + */ +RTR3DECL(int) RTSha256DigestFromFile(const char *pszFile, char **ppszDigest, PFNRTPROGRESS pfnProgressCallback, void *pvUser); + + + +/** The size of a SHA-224 hash. */ +#define RTSHA224_HASH_SIZE 28 +/** The length of a SHA-224 digest string. The terminator is not included. */ +#define RTSHA224_DIGEST_LEN 56 + +/** SHA-224 context (same as for SHA-256). */ +typedef RTSHA256CONTEXT RTSHA224CONTEXT; +/** Pointer to an SHA-224 context. */ +typedef RTSHA256CONTEXT *PRTSHA224CONTEXT; + +/** + * Compute the SHA-224 hash of the data. + * + * @param pvBuf Pointer to the data. + * @param cbBuf The amount of data (in bytes). + * @param pabDigest Where to store the hash. (What is passed is a pointer to + * the caller's buffer.) + */ +RTDECL(void) RTSha224(const void *pvBuf, size_t cbBuf, uint8_t pabDigest[RTSHA224_HASH_SIZE]); + +/** + * Initializes the SHA-224 context. + * + * @param pCtx Pointer to the SHA-224 context. + */ +RTDECL(void) RTSha224Init(PRTSHA224CONTEXT pCtx); + +/** + * Feed data into the SHA-224 computation. + * + * @param pCtx Pointer to the SHA-224 context. + * @param pvBuf Pointer to the data. + * @param cbBuf The length of the data (in bytes). + */ +RTDECL(void) RTSha224Update(PRTSHA224CONTEXT pCtx, const void *pvBuf, size_t cbBuf); + +/** + * Compute the SHA-224 hash of the data. + * + * @param pCtx Pointer to the SHA-224 context. + * @param pabDigest Where to store the hash. (What is passed is a pointer to + * the caller's buffer.) + */ +RTDECL(void) RTSha224Final(PRTSHA224CONTEXT pCtx, uint8_t pabDigest[RTSHA224_HASH_SIZE]); + +/** + * Converts a SHA-224 hash to a digest string. + * + * @returns IPRT status code. + * + * @param pabDigest The binary digest returned by RTSha224Final or RTSha224. + * @param pszDigest Where to return the stringified digest. + * @param cchDigest The size of the output buffer. Should be at least + * RTSHA224_DIGEST_LEN + 1 bytes. + */ +RTDECL(int) RTSha224ToString(uint8_t const pabDigest[RTSHA224_HASH_SIZE], char *pszDigest, size_t cchDigest); + +/** + * Converts a SHA-224 hash to a digest string. + * + * @returns IPRT status code. + * + * @param pszDigest The stringified digest. Leading and trailing spaces are + * ignored. + * @param pabDigest Where to store the hash. (What is passed is a pointer to + * the caller's buffer.) + */ +RTDECL(int) RTSha224FromString(char const *pszDigest, uint8_t pabDigest[RTSHA224_HASH_SIZE]); + +/** + * Creates a SHA224 digest for the given memory buffer. + * + * @returns iprt status code. + * + * @param pvBuf Memory buffer to create a SHA224 digest for. + * @param cbBuf The amount of data (in bytes). + * @param ppszDigest On success the SHA224 digest. + * @param pfnProgressCallback optional callback for the progress indication + * @param pvUser user defined pointer for the callback + */ +RTR3DECL(int) RTSha224Digest(void* pvBuf, size_t cbBuf, char **ppszDigest, PFNRTPROGRESS pfnProgressCallback, void *pvUser); + +/** + * Creates a SHA224 digest for the given file. + * + * @returns iprt status code. + * + * @param pszFile Filename to create a SHA224 digest for. + * @param ppszDigest On success the SHA224 digest. + * @param pfnProgressCallback optional callback for the progress indication + * @param pvUser user defined pointer for the callback + */ +RTR3DECL(int) RTSha224DigestFromFile(const char *pszFile, char **ppszDigest, PFNRTPROGRESS pfnProgressCallback, void *pvUser); + /** The size of a SHA-512 hash. */ @@ -227,9 +359,13 @@ */ typedef union RTSHA512CONTEXT { - uint8_t abPadding[ARCH_BITS == 32 ? 216 : 256]; + uint64_t u64BetterAlignment; + uint8_t abPadding[16 + (80 + 8) * 8]; #ifdef RT_SHA512_PRIVATE_CONTEXT - SHA512_CTX Private; + SHA512_CTX Private; +#endif +#ifdef RT_SHA512_PRIVATE_ALT_CONTEXT + RTSHA512ALTPRIVATECTX AltPrivate; #endif } RTSHA512CONTEXT; /** Pointer to an SHA-512 context. */ @@ -294,9 +430,44 @@ */ RTDECL(int) RTSha512FromString(char const *pszDigest, uint8_t pabDigest[RTSHA512_HASH_SIZE]); + +/** Macro for declaring the interface for a SHA-512 variation. + * @internal */ +#define RTSHA512_DECLARE_VARIANT(a_Name, a_UName) \ + typedef RTSHA512CONTEXT RT_CONCAT3(RTSHA,a_UName,CONTEXT); \ + typedef RTSHA512CONTEXT *RT_CONCAT3(PRTSHA,a_UName,CONTEXT); \ + RTDECL(void) RT_CONCAT(RTSha,a_Name)(const void *pvBuf, size_t cbBuf, uint8_t pabDigest[RT_CONCAT3(RTSHA,a_UName,_HASH_SIZE)]); \ + RTDECL(void) RT_CONCAT3(RTSha,a_Name,Init)(RT_CONCAT3(PRTSHA,a_UName,CONTEXT) pCtx); \ + RTDECL(void) RT_CONCAT3(RTSha,a_Name,Update)(RT_CONCAT3(PRTSHA,a_UName,CONTEXT) pCtx, const void *pvBuf, size_t cbBuf); \ + RTDECL(void) RT_CONCAT3(RTSha,a_Name,Final)(RT_CONCAT3(PRTSHA,a_UName,CONTEXT) pCtx, uint8_t pabDigest[RT_CONCAT3(RTSHA,a_UName,_HASH_SIZE)]); \ + RTDECL(int) RT_CONCAT3(RTSha,a_Name,ToString)(uint8_t const pabDigest[RT_CONCAT3(RTSHA,a_UName,_HASH_SIZE)], char *pszDigest, size_t cchDigest); \ + RTDECL(int) RT_CONCAT3(RTSha,a_Name,FromString)(char const *pszDigest, uint8_t pabDigest[RT_CONCAT3(RTSHA,a_UName,_HASH_SIZE)]) + + +/** The size of a SHA-384 hash. */ +#define RTSHA384_HASH_SIZE 48 +/** The length of a SHA-384 digest string. The terminator is not included. */ +#define RTSHA384_DIGEST_LEN 96 +RTSHA512_DECLARE_VARIANT(384,384); + +/** The size of a SHA-512/224 hash. */ +#define RTSHA512T224_HASH_SIZE 28 +/** The length of a SHA-512/224 digest string. The terminator is not + * included. */ +#define RTSHA512T224_DIGEST_LEN 56 +RTSHA512_DECLARE_VARIANT(512t224,512T224); + +/** The size of a SHA-512/256 hash. */ +#define RTSHA512T256_HASH_SIZE 32 +/** The length of a SHA-512/256 digest string. The terminator is not + * included. */ +#define RTSHA512T256_DIGEST_LEN 64 +RTSHA512_DECLARE_VARIANT(512t256,512T256); + + /** @} */ RT_C_DECLS_END -#endif /* ___iprt_sha1_h */ +#endif diff -Nru virtualbox-4.1.12-dfsg/include/iprt/stream.h virtualbox-4.1.44-dfsg/include/iprt/stream.h --- virtualbox-4.1.12-dfsg/include/iprt/stream.h 2012-04-02 13:24:46.000000000 +0000 +++ virtualbox-4.1.44-dfsg/include/iprt/stream.h 2015-11-11 15:06:04.000000000 +0000 @@ -249,6 +249,15 @@ RTR3DECL(int) RTStrmPrintfV(PRTSTREAM pStream, const char *pszFormat, va_list args); /** + * Dumper vprintf-like function outputting to a stream. + * + * @param pvUser The stream to print to. NULL means standard output. + * @param pszFormat Runtime format string. + * @param va Arguments specified by pszFormat. + */ +RTR3DECL(void) RTStrmDumpPrintfV(void *pvUser, const char *pszFormat, va_list va); + +/** * Prints a formatted string to the standard output stream (g_pStdOut). * * @returns Number of bytes printed. diff -Nru virtualbox-4.1.12-dfsg/include/iprt/string.h virtualbox-4.1.44-dfsg/include/iprt/string.h --- virtualbox-4.1.12-dfsg/include/iprt/string.h 2012-04-02 13:24:46.000000000 +0000 +++ virtualbox-4.1.44-dfsg/include/iprt/string.h 2015-11-11 15:06:04.000000000 +0000 @@ -671,11 +671,16 @@ */ RTDECL(int) RTStrValidateEncoding(const char *psz); -/** @name Flags for RTStrValidateEncodingEx +/** @name Flags for RTStrValidateEncodingEx and RTUtf16ValidateEncodingEx */ /** Check that the string is zero terminated within the given size. * VERR_BUFFER_OVERFLOW will be returned if the check fails. */ #define RTSTR_VALIDATE_ENCODING_ZERO_TERMINATED RT_BIT_32(0) +/** Check that the string is exactly the given length. + * If it terminates early, VERR_BUFFER_UNDERFLOW will be returned. When used + * together with RTSTR_VALIDATE_ENCODING_ZERO_TERMINATED, the given length must + * include the terminator or VERR_BUFFER_OVERFLOW will be returned. */ +#define RTSTR_VALIDATE_ENCODING_EXACT_LENGTH RT_BIT_32(1) /** @} */ /** @@ -683,8 +688,9 @@ * * @returns iprt status code. * @param psz The string. - * @param cch The max string length. Use RTSTR_MAX to process the entire string. - * @param fFlags Reserved for future. Pass 0. + * @param cch The max string length (/ size). Use RTSTR_MAX to + * process the entire string. + * @param fFlags Combination of RTSTR_VALIDATE_ENCODING_XXX flags. */ RTDECL(int) RTStrValidateEncodingEx(const char *psz, size_t cch, uint32_t fFlags); @@ -2399,6 +2405,31 @@ RTDECL(char *) RTStrToUpper(char *psz); /** + * Checks if the string is case foldable, i.e. whether it would change if + * subject to RTStrToLower or RTStrToUpper. + * + * @returns true / false + * @param psz The string in question. + */ +RTDECL(bool) RTStrIsCaseFoldable(const char *psz); + +/** + * Checks if the string is upper cased (no lower case chars in it). + * + * @returns true / false + * @param psz The string in question. + */ +RTDECL(bool) RTStrIsUpperCased(const char *psz); + +/** + * Checks if the string is lower cased (no upper case chars in it). + * + * @returns true / false + * @param psz The string in question. + */ +RTDECL(bool) RTStrIsLowerCased(const char *psz); + +/** * Find the length of a zero-terminated byte string, given * a max string length. * @@ -2965,9 +2996,15 @@ * @param cchBuf The size of the output buffer. * @param pv Pointer to the bytes to stringify. * @param cb The number of bytes to stringify. - * @param fFlags Must be zero, reserved for future use. + * @param fFlags Combination of RTSTRPRINTHEXBYTES_F_XXX values. + * @sa RTUtf16PrintHexBytes. */ RTDECL(int) RTStrPrintHexBytes(char *pszBuf, size_t cchBuf, void const *pv, size_t cb, uint32_t fFlags); +/** @name RTSTRPRINTHEXBYTES_F_XXX - flags for RTStrPrintHexBytes and RTUtf16PritnHexBytes. + * @{ */ +/** Upper case hex digits, the default is lower case. */ +#define RTSTRPRINTHEXBYTES_F_UPPER RT_BIT(0) +/** @} */ /** * Converts a string of hex bytes back into binary data. @@ -3169,6 +3206,52 @@ */ /** + * Allocates memory for UTF-16 string storage (default tag). + * + * You should normally not use this function, except if there is some very + * custom string handling you need doing that isn't covered by any of the other + * APIs. + * + * @returns Pointer to the allocated UTF-16 string. The first wide char is + * always set to the string terminator char, the contents of the + * remainder of the memory is undefined. The string must be freed by + * calling RTUtf16Free. + * + * NULL is returned if the allocation failed. Please translate this to + * VERR_NO_UTF16_MEMORY and not VERR_NO_MEMORY. Also consider + * RTUtf16AllocEx if an IPRT status code is required. + * + * @param cb How many bytes to allocate, will be rounded up + * to a multiple of two. If this is zero, we will + * allocate a terminator wide char anyway. + */ +#define RTUtf16Alloc(cb) RTUtf16AllocTag((cb), RTSTR_TAG) + +/** + * Allocates memory for UTF-16 string storage (custom tag). + * + * You should normally not use this function, except if there is some very + * custom string handling you need doing that isn't covered by any of the other + * APIs. + * + * @returns Pointer to the allocated UTF-16 string. The first wide char is + * always set to the string terminator char, the contents of the + * remainder of the memory is undefined. The string must be freed by + * calling RTUtf16Free. + * + * NULL is returned if the allocation failed. Please translate this to + * VERR_NO_UTF16_MEMORY and not VERR_NO_MEMORY. Also consider + * RTUtf16AllocExTag if an IPRT status code is required. + * + * @param cb How many bytes to allocate, will be rounded up + * to a multiple of two. If this is zero, we will + * allocate a terminator wide char anyway. + * @param pszTag Allocation tag used for statistics and such. + */ +RTDECL(PRTUTF16) RTUtf16AllocTag(size_t cb, const char *pszTag); + + +/** * Free a UTF-16 string allocated by RTStrToUtf16(), RTStrToUtf16Ex(), * RTLatin1ToUtf16(), RTLatin1ToUtf16Ex(), RTUtf16Dup() or RTUtf16DupEx(). * @@ -3238,6 +3321,161 @@ RTDECL(size_t) RTUtf16Len(PCRTUTF16 pwszString); /** + * Find the length of a zero-terminated byte string, given a max string length. + * + * @returns The string length or cbMax. The returned length does not include + * the zero terminator if it was found. + * + * @param pwszString The string. + * @param cwcMax The max string length in RTUTF16s. + * @sa RTUtf16NLenEx, RTStrNLen. + */ +RTDECL(size_t) RTUtf16NLen(PCRTUTF16 pwszString, size_t cwcMax); + +/** + * Find the length of a zero-terminated byte string, given + * a max string length. + * + * @returns IPRT status code. + * @retval VINF_SUCCESS if the string has a length less than cchMax. + * @retval VERR_BUFFER_OVERFLOW if the end of the string wasn't found + * before cwcMax was reached. + * + * @param pwszString The string. + * @param cwcMax The max string length in RTUTF16s. + * @param pcwc Where to store the string length excluding the + * terminator. This is set to cwcMax if the terminator + * isn't found. + * @sa RTUtf16NLen, RTStrNLenEx. + */ +RTDECL(int) RTUtf16NLenEx(PCRTUTF16 pwszString, size_t cwcMax, size_t *pcwc); + +/** + * Find the zero terminator in a string with a limited length. + * + * @returns Pointer to the zero terminator. + * @returns NULL if the zero terminator was not found. + * + * @param pwszString The string. + * @param cwcMax The max string length. RTSTR_MAX is fine. + */ +RTDECL(PCRTUTF16) RTUtf16End(PCRTUTF16 pwszString, size_t cwcMax); + +/** + * Strips blankspaces from both ends of the string. + * + * @returns Pointer to first non-blank char in the string. + * @param pwsz The string to strip. + */ +RTDECL(PRTUTF16) RTUtf16Strip(PRTUTF16 pwsz); + +/** + * Strips blankspaces from the start of the string. + * + * @returns Pointer to first non-blank char in the string. + * @param pwsz The string to strip. + */ +RTDECL(PRTUTF16) RTUtf16StripL(PCRTUTF16 pwsz); + +/** + * Strips blankspaces from the end of the string. + * + * @returns pwsz. + * @param pwsz The string to strip. + */ +RTDECL(PRTUTF16) RTUtf16StripR(PRTUTF16 pwsz); + +/** + * String copy with overflow handling. + * + * @retval VINF_SUCCESS on success. + * @retval VERR_BUFFER_OVERFLOW if the destination buffer is too small. The + * buffer will contain as much of the string as it can hold, fully + * terminated. + * + * @param pwszDst The destination buffer. + * @param cwcDst The size of the destination buffer in RTUTF16s. + * @param pwszSrc The source string. NULL is not OK. + */ +RTDECL(int) RTUtf16Copy(PRTUTF16 pwszDst, size_t cwcDst, PCRTUTF16 pwszSrc); + +/** + * String copy with overflow handling, ASCII source. + * + * @retval VINF_SUCCESS on success. + * @retval VERR_BUFFER_OVERFLOW if the destination buffer is too small. The + * buffer will contain as much of the string as it can hold, fully + * terminated. + * + * @param pwszDst The destination buffer. + * @param cwcDst The size of the destination buffer in RTUTF16s. + * @param pszSrc The source string, pure ASCII. NULL is not OK. + */ +RTDECL(int) RTUtf16CopyAscii(PRTUTF16 pwszDst, size_t cwcDst, const char *pszSrc); + +/** + * String copy with overflow handling. + * + * @retval VINF_SUCCESS on success. + * @retval VERR_BUFFER_OVERFLOW if the destination buffer is too small. The + * buffer will contain as much of the string as it can hold, fully + * terminated. + * + * @param pwszDst The destination buffer. + * @param cwcDst The size of the destination buffer in RTUTF16s. + * @param pwszSrc The source string. NULL is not OK. + * @param cwcSrcMax The maximum number of chars (not code points) to + * copy from the source string, not counting the + * terminator as usual. + */ +RTDECL(int) RTUtf16CopyEx(PRTUTF16 pwszDst, size_t cwcDst, PCRTUTF16 pwszSrc, size_t cwcSrcMax); + +/** + * String concatenation with overflow handling. + * + * @retval VINF_SUCCESS on success. + * @retval VERR_BUFFER_OVERFLOW if the destination buffer is too small. The + * buffer will contain as much of the string as it can hold, fully + * terminated. + * + * @param pszDst The destination buffer. + * @param cwcDst The size of the destination buffer in RTUTF16s. + * @param pwszSrc The source string. NULL is not OK. + */ +RTDECL(int) RTUtf16Cat(PRTUTF16 pwszDst, size_t cwcDst, PCRTUTF16 pwszSrc); + +/** + * String concatenation with overflow handling, ASCII source. + * + * @retval VINF_SUCCESS on success. + * @retval VERR_BUFFER_OVERFLOW if the destination buffer is too small. The + * buffer will contain as much of the string as it can hold, fully + * terminated. + * + * @param pszDst The destination buffer. + * @param cwcDst The size of the destination buffer in RTUTF16s. + * @param pszSrc The source string, pure ASCII. NULL is not OK. + */ +RTDECL(int) RTUtf16CatAscii(PRTUTF16 pwszDst, size_t cwcDst, const char *pwszSrc); + +/** + * String concatenation with overflow handling. + * + * @retval VINF_SUCCESS on success. + * @retval VERR_BUFFER_OVERFLOW if the destination buffer is too small. The + * buffer will contain as much of the string as it can hold, fully + * terminated. + * + * @param pwszDst The destination buffer. + * @param cwcDst The size of the destination buffer in RTUTF16s. + * @param pwszSrc The source string. NULL is not OK. + * @param cwcSrcMax The maximum number of UTF-16 chars (not code + * points) to copy from the source string, not + * counting the terminator as usual. + */ +RTDECL(int) RTUtf16CatEx(PRTUTF16 pwszDst, size_t cwcDst, PCRTUTF16 pwszSrc, size_t cwcSrcMax); + +/** * Performs a case sensitive string compare between two UTF-16 strings. * * @returns < 0 if the first string less than the second string.s @@ -3247,7 +3485,20 @@ * @param pwsz2 Second UTF-16 string. Null is allowed. * @remark This function will not make any attempt to validate the encoding. */ -RTDECL(int) RTUtf16Cmp(register PCRTUTF16 pwsz1, register PCRTUTF16 pwsz2); +RTDECL(int) RTUtf16Cmp(PCRTUTF16 pwsz1, PCRTUTF16 pwsz2); + +/** + * Performs a case sensitive string compare between an UTF-16 string and a pure + * ASCII string. + * + * @returns < 0 if the first string less than the second string.s + * @returns 0 if the first string identical to the second string. + * @returns > 0 if the first string greater than the second string. + * @param pwsz1 First UTF-16 string. Null is allowed. + * @param psz2 Second string, pure ASCII. Null is allowed. + * @remark This function will not make any attempt to validate the encoding. + */ +RTDECL(int) RTUtf16CmpAscii(PCRTUTF16 pwsz1, const char *psz2); /** * Performs a case insensitive string compare between two UTF-16 strings. @@ -3265,6 +3516,21 @@ RTDECL(int) RTUtf16ICmp(PCRTUTF16 pwsz1, PCRTUTF16 pwsz2); /** + * Performs a case insensitive string compare between an UTF-16 string and an + * pure ASCII string. + * + * Since this compare only takes cares about the first 128 codepoints in + * unicode, no tables are needed and there aren't any real complications. + * + * @returns < 0 if the first string less than the second string. + * @returns 0 if the first string identical to the second string. + * @returns > 0 if the first string greater than the second string. + * @param pwsz1 First UTF-16 string. Null is allowed. + * @param psz2 Second string, pure ASCII. Null is allowed. + */ +RTDECL(int) RTUtf16ICmpAscii(PCRTUTF16 pwsz1, const char *psz2); + +/** * Performs a case insensitive string compare between two UTF-16 strings * using the current locale of the process (if applicable). * @@ -3307,6 +3573,33 @@ RTDECL(PRTUTF16) RTUtf16ToUpper(PRTUTF16 pwsz); /** + * Validates the UTF-16 encoding of the string. + * + * @returns iprt status code. + * @param pwsz The string. + */ +RTDECL(int) RTUtf16ValidateEncoding(PCRTUTF16 pwsz); + +/** + * Validates the UTF-16 encoding of the string. + * + * @returns iprt status code. + * @param pwsz The string. + * @param cwc The max string length (/ size) in UTF-16 units. Use + * RTSTR_MAX to process the entire string. + * @param fFlags Combination of RTSTR_VALIDATE_ENCODING_XXX flags. + */ +RTDECL(int) RTUtf16ValidateEncodingEx(PCRTUTF16 pwsz, size_t cwc, uint32_t fFlags); + +/** + * Checks if the UTF-16 encoding is valid. + * + * @returns true / false. + * @param pwsz The string. + */ +RTDECL(bool) RTUtf16IsValidEncoding(PCRTUTF16 pwsz); + +/** * Translate a UTF-16 string into a UTF-8 allocating the result buffer (default * tag). * @@ -3716,6 +4009,24 @@ && RTUtf16IsLowSurrogate(wcLow); } +/** + * Formats a buffer stream as hex bytes. + * + * The default is no separating spaces or line breaks or anything. + * + * @returns IPRT status code. + * @retval VERR_INVALID_POINTER if any of the pointers are wrong. + * @retval VERR_BUFFER_OVERFLOW if the buffer is insufficent to hold the bytes. + * + * @param pwszBuf Output string buffer. + * @param cwcBuf The size of the output buffer in RTUTF16 units. + * @param pv Pointer to the bytes to stringify. + * @param cb The number of bytes to stringify. + * @param fFlags Combination of RTSTRPRINTHEXBYTES_F_XXX values. + * @sa RTStrPrintHexBytes. + */ +RTDECL(int) RTUtf16PrintHexBytes(PRTUTF16 pwszBuf, size_t cwcBuf, void const *pv, size_t cb, uint32_t fFlags); + /** @} */ @@ -3830,6 +4141,12 @@ /** @} */ +#ifndef ___iprt_nocrt_string_h +# if defined(RT_OS_WINDOWS) +RTDECL(void *) mempcpy(void *pvDst, const void *pvSrc, size_t cb); +# endif +#endif + RT_C_DECLS_END diff -Nru virtualbox-4.1.12-dfsg/include/iprt/thread.h virtualbox-4.1.44-dfsg/include/iprt/thread.h --- virtualbox-4.1.12-dfsg/include/iprt/thread.h 2012-04-02 13:24:46.000000000 +0000 +++ virtualbox-4.1.44-dfsg/include/iprt/thread.h 2015-11-11 15:06:04.000000000 +0000 @@ -259,6 +259,12 @@ */ RTDECL(int) RTThreadCreate(PRTTHREAD pThread, PFNRTTHREAD pfnThread, void *pvUser, size_t cbStack, RTTHREADTYPE enmType, unsigned fFlags, const char *pszName); +#ifdef RT_OS_WINDOWS /* XXX crashes genksyms at least on 32-bit Linux hosts */ +/** @copydoc RTThreadCreate */ +typedef DECLCALLBACKPTR(int, PFNRTTHREADCREATE)(PRTTHREAD pThread, PFNRTTHREAD pfnThread, void *pvUser, size_t cbStack, + RTTHREADTYPE enmType, unsigned fFlags, const char *pszName); +#endif + /** * Create a new thread. diff -Nru virtualbox-4.1.12-dfsg/include/iprt/time.h virtualbox-4.1.44-dfsg/include/iprt/time.h --- virtualbox-4.1.12-dfsg/include/iprt/time.h 2012-04-02 13:24:46.000000000 +0000 +++ virtualbox-4.1.44-dfsg/include/iprt/time.h 2015-11-11 15:06:04.000000000 +0000 @@ -513,6 +513,23 @@ return pTime1->i64NanosecondsRelativeToUnixEpoch == pTime2->i64NanosecondsRelativeToUnixEpoch; } + +/** + * Compare two time specs. + * + * @returns 0 if equal, -1 if @a pLeft is smaller, 1 if @a pLeft is larger. + * @returns false they are not equal. + * @param pLeft The 1st time spec. + * @param pRight The 2nd time spec. + */ +DECLINLINE(int) RTTimeSpecCompare(PCRTTIMESPEC pLeft, PCRTTIMESPEC pRight) +{ + if (pLeft->i64NanosecondsRelativeToUnixEpoch == pRight->i64NanosecondsRelativeToUnixEpoch) + return 0; + return pLeft->i64NanosecondsRelativeToUnixEpoch < pRight->i64NanosecondsRelativeToUnixEpoch ? -1 : 1; +} + + /** * Converts a time spec to a ISO date string. * diff -Nru virtualbox-4.1.12-dfsg/include/iprt/types.h virtualbox-4.1.44-dfsg/include/iprt/types.h --- virtualbox-4.1.12-dfsg/include/iprt/types.h 2012-04-02 13:24:46.000000000 +0000 +++ virtualbox-4.1.44-dfsg/include/iprt/types.h 2015-11-11 15:06:04.000000000 +0000 @@ -28,6 +28,7 @@ #include #include +#include /* * Include standard C types. @@ -40,6 +41,7 @@ */ RT_C_DECLS_BEGIN # include "xf86_ansic.h" +# undef NULL RT_C_DECLS_END # elif defined(RT_OS_DARWIN) && defined(KERNEL) @@ -125,6 +127,11 @@ # endif # include # include + /* + * Starting with 3.4, defines NULL as '((void*)0)' which + * does not work for C++ code. + */ +# undef NULL # undef uintptr_t # ifdef __GNUC__ # if (__GNUC__ * 100 + __GNUC_MINOR__) <= 400 @@ -141,7 +148,6 @@ # undef false # undef true # undef bool - # else # include # include @@ -157,6 +163,16 @@ # include #endif /* no crt */ +/** @def NULL + * NULL pointer. + */ +#ifndef NULL +# ifdef __cplusplus +# define NULL 0 +# else +# define NULL ((void*)0) +# endif +#endif /** @defgroup grp_rt_types IPRT Base Types @@ -374,10 +390,9 @@ */ typedef union RTUINT128U { - /** Natural view. - * WARNING! This member depends on the compiler supporting 128-bit stuff. */ - uint128_t u; - /** Hi/Low view. */ + /** Hi/Low view. + * @remarks We put this first so we can have portable initializers + * (RTUINT128_INIT) */ struct { #ifdef RT_BIG_ENDIAN @@ -388,6 +403,11 @@ uint64_t Hi; #endif } s; + + /** Natural view. + * WARNING! This member depends on the compiler supporting 128-bit stuff. */ + uint128_t u; + /** Quad-Word view. */ struct { @@ -452,6 +472,22 @@ /** Pointer to a const 64-bit unsigned integer union. */ typedef const RTUINT128U *PCRTUINT128U; +/** @def RTUINT128_INIT + * Portable RTUINT128U initializer. */ +#ifdef RT_BIG_ENDIAN +# define RTUINT128_INIT(a_Hi, a_Lo) { { a_Hi, a_Lo } } +#else +# define RTUINT128_INIT(a_Hi, a_Lo) { { a_Lo, a_Hi } } +#endif + +/** @def RTUINT128_INIT_C + * Portable RTUINT128U initializer for 64-bit constants. */ +#ifdef RT_BIG_ENDIAN +# define RTUINT128_INIT_C(a_Hi, a_Lo) { { UINT64_C(a_Hi), UINT64_C(a_Lo) } } +#else +# define RTUINT128_INIT_C(a_Hi, a_Lo) { { UINT64_C(a_Lo), UINT64_C(a_Hi) } } +#endif + /** * Double precision floating point format (64-bit). @@ -704,81 +740,6 @@ /** Pointer to a const time spec structure. */ typedef const struct RTTIMESPEC *PCRTTIMESPEC; -/** - * Generic pointer union. - */ -typedef union RTPTRUNION -{ - /** Pointer into the void... */ - void *pv; - /** Pointer to a 8-bit unsigned value. */ - uint8_t *pu8; - /** Pointer to a 16-bit unsigned value. */ - uint16_t *pu16; - /** Pointer to a 32-bit unsigned value. */ - uint32_t *pu32; - /** Pointer to a 64-bit unsigned value. */ - uint64_t *pu64; -} RTPTRUNION; -/** Pointer to a pointer union. */ -typedef RTPTRUNION *PRTPTRUNION; - -/** - * Generic const pointer union. - */ -typedef union RTCPTRUNION -{ - /** Pointer into the void... */ - void const *pv; - /** Pointer to a 8-bit unsigned value. */ - uint8_t const *pu8; - /** Pointer to a 16-bit unsigned value. */ - uint16_t const *pu16; - /** Pointer to a 32-bit unsigned value. */ - uint32_t const *pu32; - /** Pointer to a 64-bit unsigned value. */ - uint64_t const *pu64; -} RTCPTRUNION; -/** Pointer to a const pointer union. */ -typedef RTCPTRUNION *PRTCPTRUNION; - -/** - * Generic volatile pointer union. - */ -typedef union RTVPTRUNION -{ - /** Pointer into the void... */ - void volatile *pv; - /** Pointer to a 8-bit unsigned value. */ - uint8_t volatile *pu8; - /** Pointer to a 16-bit unsigned value. */ - uint16_t volatile *pu16; - /** Pointer to a 32-bit unsigned value. */ - uint32_t volatile *pu32; - /** Pointer to a 64-bit unsigned value. */ - uint64_t volatile *pu64; -} RTVPTRUNION; -/** Pointer to a const pointer union. */ -typedef RTVPTRUNION *PRTVPTRUNION; - -/** - * Generic const volatile pointer union. - */ -typedef union RTCVPTRUNION -{ - /** Pointer into the void... */ - void const volatile *pv; - /** Pointer to a 8-bit unsigned value. */ - uint8_t const volatile *pu8; - /** Pointer to a 16-bit unsigned value. */ - uint16_t const volatile *pu16; - /** Pointer to a 32-bit unsigned value. */ - uint32_t const volatile *pu32; - /** Pointer to a 64-bit unsigned value. */ - uint64_t const volatile *pu64; -} RTCVPTRUNION; -/** Pointer to a const pointer union. */ -typedef RTCVPTRUNION *PRTCVPTRUNION; /** @defgroup grp_rt_types_both Common Guest and Host Context Basic Types @@ -1557,6 +1518,13 @@ /** @} */ + +/** Pointer to a big integer number. */ +typedef struct RTBIGNUM *PRTBIGNUM; +/** Pointer to a const big integer number. */ +typedef struct RTBIGNUM const *PCRTBIGNUM; + + /** Pointer to a critical section. */ typedef struct RTCRITSECT *PRTCRITSECT; /** Pointer to a const critical section. */ @@ -1570,6 +1538,44 @@ /** Nil condition variable handle. */ #define NIL_RTCONDVAR 0 +/** Cryptographic (certificate) store handle. */ +typedef R3R0PTRTYPE(struct RTCRSTOREINT *) RTCRSTORE; +/** Pointer to a Cryptographic (certificate) store handle. */ +typedef RTCRSTORE *PRTCRSTORE; +/** Nil Cryptographic (certificate) store handle. */ +#define NIL_RTCRSTORE 0 + +/** Pointer to a const (store) certificate context. */ +typedef struct RTCRCERTCTX const *PCRTCRCERTCTX; + +/** Cryptographic message digest handle. */ +typedef R3R0PTRTYPE(struct RTCRDIGESTINT *) RTCRDIGEST; +/** Pointer to a cryptographic message digest handle. */ +typedef RTCRDIGEST *PRTCRDIGEST; +/** NIL cryptographic message digest handle. */ +#define NIL_RTCRDIGEST (0) + +/** Public key encryption schema handle. */ +typedef R3R0PTRTYPE(struct RTCRPKIXENCRYPTIONINT *) RTCRPKIXENCRYPTION; +/** Pointer to a public key encryption schema handle. */ +typedef RTCRPKIXENCRYPTION *PRTCRPKIXENCRYPTION; +/** NIL publick key encryption schema handle */ +#define NIL_RTCRPKIXENCRYPTION (0) + +/** Public key signature schema handle. */ +typedef R3R0PTRTYPE(struct RTCRPKIXSIGNATUREINT *) RTCRPKIXSIGNATURE; +/** Pointer to a public key signature schema handle. */ +typedef RTCRPKIXSIGNATURE *PRTCRPKIXSIGNATURE; +/** NIL publick key signature schema handle */ +#define NIL_RTCRPKIXSIGNATURE (0) + +/** X.509 certificate paths builder & validator handle. */ +typedef R3R0PTRTYPE(struct RTCRX509CERTPATHSINT *) RTCRX509CERTPATHS; +/** Pointer to a certificate paths builder & validator handle. */ +typedef RTCRX509CERTPATHS *PRTCRX509CERTPATHS; +/** Nil certificate paths builder & validator handle. */ +#define NIL_RTCRX509CERTPATHS 0 + /** File handle. */ typedef R3R0PTRTYPE(struct RTFILEINT *) RTFILE; /** Pointer to file handle. */ @@ -1592,7 +1598,7 @@ #define NIL_RTFILEAIOCTX 0 /** Loader module handle. */ -typedef R3PTRTYPE(struct RTLDRMODINTERNAL *) RTLDRMOD; +typedef R3R0PTRTYPE(struct RTLDRMODINTERNAL *) RTLDRMOD; /** Pointer to a loader module handle. */ typedef RTLDRMOD *PRTLDRMOD; /** Nil loader module handle. */ @@ -2146,6 +2152,17 @@ /** Pointer to a generic progress callback function, FNRTPROCESS(). */ typedef FNRTPROGRESS *PFNRTPROGRESS; +/** + * Generic vprintf-like callback function for dumpers. + * + * @param pvUser User argument. + * @param pszFormat The format string. + * @param va Arguments for the format string. + */ +typedef DECLCALLBACK(void) FNRTDUMPPRINTFV(void *pvUser, const char *pszFormat, va_list va); +/** Pointer to a generic printf-like function for dumping. */ +typedef FNRTDUMPPRINTFV *PFNRTDUMPPRINTFV; + /** * A point in a two dimentional coordinate system. @@ -2275,6 +2292,45 @@ /** + * Digest types. + */ +typedef enum RTDIGESTTYPE +{ + /** Invalid digest value. */ + RTDIGESTTYPE_INVALID = 0, + /** Unknown digest type. */ + RTDIGESTTYPE_UNKNOWN, + /** CRC32 checksum. */ + RTDIGESTTYPE_CRC32, + /** CRC64 checksum. */ + RTDIGESTTYPE_CRC64, + /** MD2 checksum (unsafe!). */ + RTDIGESTTYPE_MD2, + /** MD4 checksum (unsafe!!). */ + RTDIGESTTYPE_MD4, + /** MD5 checksum (unsafe!). */ + RTDIGESTTYPE_MD5, + /** SHA-1 checksum (unsafe!). */ + RTDIGESTTYPE_SHA1, + /** SHA-224 checksum. */ + RTDIGESTTYPE_SHA224, + /** SHA-256 checksum. */ + RTDIGESTTYPE_SHA256, + /** SHA-384 checksum. */ + RTDIGESTTYPE_SHA384, + /** SHA-512 checksum. */ + RTDIGESTTYPE_SHA512, + /** SHA-512/224 checksum. */ + RTDIGESTTYPE_SHA512T224, + /** SHA-512/256 checksum. */ + RTDIGESTTYPE_SHA512T256, + /** End of valid types. */ + RTDIGESTTYPE_END, + /** Usual 32-bit type blowup. */ + RTDIGESTTYPE_32BIT_HACK = 0x7fffffff +} RTDIGESTTYPE; + +/** * Process exit codes. */ typedef enum RTEXITCODE @@ -2297,6 +2353,165 @@ } RTEXITCODE; + +/** + * Generic pointer union. + */ +typedef union RTPTRUNION +{ + /** Pointer into the void... */ + void *pv; + /** As a signed integer. */ + intptr_t i; + /** As an unsigned integer. */ + intptr_t u; + /** Pointer to char value. */ + char *pch; + /** Pointer to char value. */ + unsigned char *puch; + /** Pointer to a int value. */ + int *pi; + /** Pointer to a unsigned int value. */ + unsigned int *pu; + /** Pointer to a long value. */ + long *pl; + /** Pointer to a long value. */ + unsigned long *pul; + /** Pointer to a 8-bit unsigned value. */ + uint8_t *pu8; + /** Pointer to a 16-bit unsigned value. */ + uint16_t *pu16; + /** Pointer to a 32-bit unsigned value. */ + uint32_t *pu32; + /** Pointer to a 64-bit unsigned value. */ + uint64_t *pu64; + /** Pointer to a UTF-16 character. */ + PRTUTF16 pwc; + /** Pointer to a UUID character. */ + PRTUUID pUuid; +} RTPTRUNION; +/** Pointer to a pointer union. */ +typedef RTPTRUNION *PRTPTRUNION; + +/** + * Generic const pointer union. + */ +typedef union RTCPTRUNION +{ + /** Pointer into the void... */ + void const *pv; + /** As a signed integer. */ + intptr_t i; + /** As an unsigned integer. */ + intptr_t u; + /** Pointer to char value. */ + char const *pch; + /** Pointer to char value. */ + unsigned char const *puch; + /** Pointer to a int value. */ + int const *pi; + /** Pointer to a unsigned int value. */ + unsigned int const *pu; + /** Pointer to a long value. */ + long const *pl; + /** Pointer to a long value. */ + unsigned long const *pul; + /** Pointer to a 8-bit unsigned value. */ + uint8_t const *pu8; + /** Pointer to a 16-bit unsigned value. */ + uint16_t const *pu16; + /** Pointer to a 32-bit unsigned value. */ + uint32_t const *pu32; + /** Pointer to a 64-bit unsigned value. */ + uint64_t const *pu64; + /** Pointer to a UTF-16 character. */ + PCRTUTF16 pwc; + /** Pointer to a UUID character. */ + PCRTUUID pUuid; +} RTCPTRUNION; +/** Pointer to a const pointer union. */ +typedef RTCPTRUNION *PRTCPTRUNION; + +/** + * Generic volatile pointer union. + */ +typedef union RTVPTRUNION +{ + /** Pointer into the void... */ + void volatile *pv; + /** As a signed integer. */ + intptr_t i; + /** As an unsigned integer. */ + intptr_t u; + /** Pointer to char value. */ + char volatile *pch; + /** Pointer to char value. */ + unsigned char volatile *puch; + /** Pointer to a int value. */ + int volatile *pi; + /** Pointer to a unsigned int value. */ + unsigned int volatile *pu; + /** Pointer to a long value. */ + long volatile *pl; + /** Pointer to a long value. */ + unsigned long volatile *pul; + /** Pointer to a 8-bit unsigned value. */ + uint8_t volatile *pu8; + /** Pointer to a 16-bit unsigned value. */ + uint16_t volatile *pu16; + /** Pointer to a 32-bit unsigned value. */ + uint32_t volatile *pu32; + /** Pointer to a 64-bit unsigned value. */ + uint64_t volatile *pu64; + /** Pointer to a UTF-16 character. */ + RTUTF16 volatile *pwc; + /** Pointer to a UUID character. */ + RTUUID volatile *pUuid; +} RTVPTRUNION; +/** Pointer to a const pointer union. */ +typedef RTVPTRUNION *PRTVPTRUNION; + +/** + * Generic const volatile pointer union. + */ +typedef union RTCVPTRUNION +{ + /** Pointer into the void... */ + void const volatile *pv; + /** As a signed integer. */ + intptr_t i; + /** As an unsigned integer. */ + intptr_t u; + /** Pointer to char value. */ + char const volatile *pch; + /** Pointer to char value. */ + unsigned char const volatile *puch; + /** Pointer to a int value. */ + int const volatile *pi; + /** Pointer to a unsigned int value. */ + unsigned int const volatile *pu; + /** Pointer to a long value. */ + long const volatile *pl; + /** Pointer to a long value. */ + unsigned long const volatile *pul; + /** Pointer to a 8-bit unsigned value. */ + uint8_t const volatile *pu8; + /** Pointer to a 16-bit unsigned value. */ + uint16_t const volatile *pu16; + /** Pointer to a 32-bit unsigned value. */ + uint32_t const volatile *pu32; + /** Pointer to a 64-bit unsigned value. */ + uint64_t const volatile *pu64; + /** Pointer to a UTF-16 character. */ + RTUTF16 const volatile *pwc; + /** Pointer to a UUID character. */ + RTUUID const volatile *pUuid; +} RTCVPTRUNION; +/** Pointer to a const pointer union. */ +typedef RTCVPTRUNION *PRTCVPTRUNION; + + + #ifdef __cplusplus /** * Strict type validation helper class. diff -Nru virtualbox-4.1.12-dfsg/include/iprt/uint128.h virtualbox-4.1.44-dfsg/include/iprt/uint128.h --- virtualbox-4.1.12-dfsg/include/iprt/uint128.h 2012-04-02 13:24:46.000000000 +0000 +++ virtualbox-4.1.44-dfsg/include/iprt/uint128.h 2015-11-11 15:06:04.000000000 +0000 @@ -29,6 +29,10 @@ #include #include #include +#include +#ifdef RT_ARCH_AMD64 +# include +#endif RT_C_DECLS_BEGIN @@ -100,17 +104,369 @@ } -RTDECL(PRTUINT128U) RTUInt128Add(PRTUINT128U pResult, PCRTUINT128U pValue1, PCRTUINT128U pValue2); -RTDECL(PRTUINT128U) RTUInt128Sub(PRTUINT128U pResult, PCRTUINT128U pValue1, PCRTUINT128U pValue2); -RTDECL(PRTUINT128U) RTUInt128Div(PRTUINT128U pResult, PCRTUINT128U pValue1, PCRTUINT128U pValue2); -RTDECL(PRTUINT128U) RTUInt128Mod(PRTUINT128U pResult, PCRTUINT128U pValue1, PCRTUINT128U pValue2); -RTDECL(PRTUINT128U) RTUInt128And(PRTUINT128U pResult, PCRTUINT128U pValue1, PCRTUINT128U pValue2); -RTDECL(PRTUINT128U) RTUInt128Or( PRTUINT128U pResult, PCRTUINT128U pValue1, PCRTUINT128U pValue2); -RTDECL(PRTUINT128U) RTUInt128Xor(PRTUINT128U pResult, PCRTUINT128U pValue1, PCRTUINT128U pValue2); -RTDECL(PRTUINT128U) RTUInt128ShiftLeft( PRTUINT128U pResult, PCRTUINT128U pValue, int cBits); -RTDECL(PRTUINT128U) RTUInt128ShiftRight(PRTUINT128U pResult, PCRTUINT128U pValue, int cBits); -RTDECL(PRTUINT128U) RTUInt128BooleanNot(PRTUINT128U pResult, PCRTUINT128U pValue); -RTDECL(PRTUINT128U) RTUInt128BitwiseNot(PRTUINT128U pResult, PCRTUINT128U pValue); + + +/** + * Adds two 128-bit unsigned integer values. + * + * @returns pResult + * @param pResult The result variable. + * @param pValue1 The first value. + * @param pValue2 The second value. + */ +DECLINLINE(PRTUINT128U) RTUInt128Add(PRTUINT128U pResult, PCRTUINT128U pValue1, PCRTUINT128U pValue2) +{ + pResult->s.Hi = pValue1->s.Hi + pValue2->s.Hi; + pResult->s.Lo = pValue1->s.Lo + pValue2->s.Lo; + if (pResult->s.Lo < pValue1->s.Lo) + pResult->s.Hi++; + return pResult; +} + + +/** + * Adds a 128-bit and a 64-bit unsigned integer values. + * + * @returns pResult + * @param pResult The result variable. + * @param pValue1 The first value. + * @param uValue2 The second value, 64-bit. + */ +DECLINLINE(PRTUINT128U) RTUInt128AddU64(PRTUINT128U pResult, PCRTUINT128U pValue1, uint64_t uValue2) +{ + pResult->s.Hi = pValue1->s.Hi; + pResult->s.Lo = pValue1->s.Lo + uValue2; + if (pResult->s.Lo < pValue1->s.Lo) + pResult->s.Hi++; + return pResult; +} + + +/** + * Subtracts a 128-bit unsigned integer value from another. + * + * @returns pResult + * @param pResult The result variable. + * @param pValue1 The minuend value. + * @param pValue2 The subtrahend value. + */ +DECLINLINE(PRTUINT128U) RTUInt128Sub(PRTUINT128U pResult, PCRTUINT128U pValue1, PCRTUINT128U pValue2) +{ + pResult->s.Lo = pValue1->s.Lo - pValue2->s.Lo; + pResult->s.Hi = pValue1->s.Hi - pValue2->s.Hi; + if (pResult->s.Lo > pValue1->s.Lo) + pResult->s.Hi--; + return pResult; +} + + +/** + * Multiplies two 128-bit unsigned integer values. + * + * @returns pResult + * @param pResult The result variable. + * @param pValue1 The first value. + * @param pValue2 The second value. + */ +DECLINLINE(PRTUINT128U) RTUInt128Mul(PRTUINT128U pResult, PCRTUINT128U pValue1, PCRTUINT128U pValue2) +{ + RTUINT64U uTmp; + + /* multiply all dwords in v1 by v2.dw0. */ + pResult->s.Lo = (uint64_t)pValue1->DWords.dw0 * pValue2->DWords.dw0; + + uTmp.u = (uint64_t)pValue1->DWords.dw1 * pValue2->DWords.dw0; + pResult->DWords.dw3 = 0; + pResult->DWords.dw2 = uTmp.DWords.dw1; + pResult->DWords.dw1 += uTmp.DWords.dw0; + if (pResult->DWords.dw1 < uTmp.DWords.dw0) + if (pResult->DWords.dw2++ == UINT32_MAX) + pResult->DWords.dw3++; + + pResult->s.Hi += (uint64_t)pValue1->DWords.dw2 * pValue2->DWords.dw0; + pResult->DWords.dw3 += pValue1->DWords.dw3 * pValue2->DWords.dw0; + + /* multiply dw0, dw1 & dw2 in v1 by v2.dw1. */ + uTmp.u = (uint64_t)pValue1->DWords.dw0 * pValue2->DWords.dw1; + pResult->DWords.dw1 += uTmp.DWords.dw0; + if (pResult->DWords.dw1 < uTmp.DWords.dw0) + if (pResult->DWords.dw2++ == UINT32_MAX) + pResult->DWords.dw3++; + + pResult->DWords.dw2 += uTmp.DWords.dw1; + if (pResult->DWords.dw2 < uTmp.DWords.dw1) + pResult->DWords.dw3++; + + pResult->s.Hi += (uint64_t)pValue1->DWords.dw1 * pValue2->DWords.dw1; + pResult->DWords.dw3 += pValue1->DWords.dw2 * pValue2->DWords.dw1; + + /* multiply dw0 & dw1 in v1 by v2.dw2. */ + pResult->s.Hi += (uint64_t)pValue1->DWords.dw0 * pValue2->DWords.dw2; + pResult->DWords.dw3 += pValue1->DWords.dw1 * pValue2->DWords.dw2; + + /* multiply dw0 in v1 by v2.dw3. */ + pResult->DWords.dw3 += pValue1->DWords.dw0 * pValue2->DWords.dw3; + + return pResult; +} + + +/** + * Multiplies an 128-bit unsigned integer by a 64-bit unsigned integer value. + * + * @returns pResult + * @param pResult The result variable. + * @param pValue1 The first value. + * @param uValue2 The second value, 64-bit. + */ +#if defined(RT_ARCH_AMD64) +RTDECL(PRTUINT128U) RTUInt128MulByU64(PRTUINT128U pResult, PCRTUINT128U pValue1, uint64_t uValue2); +#else +DECLINLINE(PRTUINT128U) RTUInt128MulByU64(PRTUINT128U pResult, PCRTUINT128U pValue1, uint64_t uValue2) +{ + uint32_t const uLoValue2 = (uint32_t)uValue2; + uint32_t const uHiValue2 = (uint32_t)(uValue2 >> 32); + RTUINT64U uTmp; + + /* multiply all dwords in v1 by uLoValue1. */ + pResult->s.Lo = (uint64_t)pValue1->DWords.dw0 * uLoValue2; + + uTmp.u = (uint64_t)pValue1->DWords.dw1 * uLoValue2; + pResult->DWords.dw3 = 0; + pResult->DWords.dw2 = uTmp.DWords.dw1; + pResult->DWords.dw1 += uTmp.DWords.dw0; + if (pResult->DWords.dw1 < uTmp.DWords.dw0) + if (pResult->DWords.dw2++ == UINT32_MAX) + pResult->DWords.dw3++; + + pResult->s.Hi += (uint64_t)pValue1->DWords.dw2 * uLoValue2; + pResult->DWords.dw3 += pValue1->DWords.dw3 * uLoValue2; + + /* multiply dw0, dw1 & dw2 in v1 by uHiValue2. */ + uTmp.u = (uint64_t)pValue1->DWords.dw0 * uHiValue2; + pResult->DWords.dw1 += uTmp.DWords.dw0; + if (pResult->DWords.dw1 < uTmp.DWords.dw0) + if (pResult->DWords.dw2++ == UINT32_MAX) + pResult->DWords.dw3++; + + pResult->DWords.dw2 += uTmp.DWords.dw1; + if (pResult->DWords.dw2 < uTmp.DWords.dw1) + pResult->DWords.dw3++; + + pResult->s.Hi += (uint64_t)pValue1->DWords.dw1 * uHiValue2; + pResult->DWords.dw3 += pValue1->DWords.dw2 * uHiValue2; + + return pResult; +} +#endif + + +/** + * Multiplies two 64-bit unsigned integer values with 128-bit precision. + * + * @returns pResult + * @param pResult The result variable. + * @param uValue1 The first value. 64-bit. + * @param uValue2 The second value, 64-bit. + */ +DECLINLINE(PRTUINT128U) RTUInt128MulU64ByU64(PRTUINT128U pResult, uint64_t uValue1, uint64_t uValue2) +{ +#ifdef RT_ARCH_AMD64 + pResult->s.Lo = ASMMult2xU64Ret2xU64(uValue1, uValue2, &pResult->s.Hi); +#else + uint32_t const uLoValue1 = (uint32_t)uValue1; + uint32_t const uHiValue1 = (uint32_t)(uValue1 >> 32); + uint32_t const uLoValue2 = (uint32_t)uValue2; + uint32_t const uHiValue2 = (uint32_t)(uValue2 >> 32); + RTUINT64U uTmp; + + /* Multiply uLoValue1 and uHiValue1 by uLoValue1. */ + pResult->s.Lo = (uint64_t)uLoValue1 * uLoValue2; + + uTmp.u = (uint64_t)uHiValue1 * uLoValue2; + pResult->DWords.dw3 = 0; + pResult->DWords.dw2 = uTmp.DWords.dw1; + pResult->DWords.dw1 += uTmp.DWords.dw0; + if (pResult->DWords.dw1 < uTmp.DWords.dw0) + if (pResult->DWords.dw2++ == UINT32_MAX) + pResult->DWords.dw3++; + + /* Multiply uLoValue1 and uHiValue1 by uHiValue2. */ + uTmp.u = (uint64_t)uLoValue1 * uHiValue2; + pResult->DWords.dw1 += uTmp.DWords.dw0; + if (pResult->DWords.dw1 < uTmp.DWords.dw0) + if (pResult->DWords.dw2++ == UINT32_MAX) + pResult->DWords.dw3++; + + pResult->DWords.dw2 += uTmp.DWords.dw1; + if (pResult->DWords.dw2 < uTmp.DWords.dw1) + pResult->DWords.dw3++; + + pResult->s.Hi += (uint64_t)uHiValue1 * uHiValue2; +#endif + return pResult; +} + + +DECLINLINE(PRTUINT128U) RTUInt128DivRem(PRTUINT128U pQuotient, PRTUINT128U pRemainder, PCRTUINT128U pValue1, PCRTUINT128U pValue2); + +/** + * Divides a 128-bit unsigned integer value by another. + * + * @returns pResult + * @param pResult The result variable. + * @param pValue1 The dividend value. + * @param pValue2 The divisor value. + */ +DECLINLINE(PRTUINT128U) RTUInt128Div(PRTUINT128U pResult, PCRTUINT128U pValue1, PCRTUINT128U pValue2) +{ + RTUINT128U Ignored; + return RTUInt128DivRem(pResult, &Ignored, pValue1, pValue2); +} + + +/** + * Divides a 128-bit unsigned integer value by another, returning the remainder. + * + * @returns pResult + * @param pResult The result variable (remainder). + * @param pValue1 The dividend value. + * @param pValue2 The divisor value. + */ +DECLINLINE(PRTUINT128U) RTUInt128Mod(PRTUINT128U pResult, PCRTUINT128U pValue1, PCRTUINT128U pValue2) +{ + RTUINT128U Ignored; + RTUInt128DivRem(&Ignored, pResult, pValue1, pValue2); + return pResult; +} + + +/** + * Bitwise AND of two 128-bit unsigned integer values. + * + * @returns pResult + * @param pResult The result variable. + * @param pValue1 The first value. + * @param pValue2 The second value. + */ +DECLINLINE(PRTUINT128U) RTUInt128And(PRTUINT128U pResult, PCRTUINT128U pValue1, PCRTUINT128U pValue2) +{ + pResult->s.Hi = pValue1->s.Hi & pValue2->s.Hi; + pResult->s.Lo = pValue1->s.Lo & pValue2->s.Lo; + return pResult; +} + + +/** + * Bitwise OR of two 128-bit unsigned integer values. + * + * @returns pResult + * @param pResult The result variable. + * @param pValue1 The first value. + * @param pValue2 The second value. + */ +DECLINLINE(PRTUINT128U) RTUInt128Or( PRTUINT128U pResult, PCRTUINT128U pValue1, PCRTUINT128U pValue2) +{ + pResult->s.Hi = pValue1->s.Hi | pValue2->s.Hi; + pResult->s.Lo = pValue1->s.Lo | pValue2->s.Lo; + return pResult; +} + + +/** + * Bitwise XOR of two 128-bit unsigned integer values. + * + * @returns pResult + * @param pResult The result variable. + * @param pValue1 The first value. + * @param pValue2 The second value. + */ +DECLINLINE(PRTUINT128U) RTUInt128Xor(PRTUINT128U pResult, PCRTUINT128U pValue1, PCRTUINT128U pValue2) +{ + pResult->s.Hi = pValue1->s.Hi ^ pValue2->s.Hi; + pResult->s.Lo = pValue1->s.Lo ^ pValue2->s.Lo; + return pResult; +} + + +/** + * Shifts a 128-bit unsigned integer value @a cBits to the left. + * + * @returns pResult + * @param pResult The result variable. + * @param pValue The value to shift. + * @param cBits The number of bits to shift it. + */ +DECLINLINE(PRTUINT128U) RTUInt128ShiftLeft(PRTUINT128U pResult, PCRTUINT128U pValue, int cBits) +{ + cBits &= 127; + if (cBits < 64) + { + pResult->s.Lo = pValue->s.Lo << cBits; + pResult->s.Hi = (pValue->s.Hi << cBits) | (pValue->s.Lo >> (64 - cBits)); + } + else + { + pResult->s.Lo = 0; + pResult->s.Hi = pValue->s.Lo << (cBits - 64); + } + return pResult; +} + + +/** + * Shifts a 128-bit unsigned integer value @a cBits to the right. + * + * @returns pResult + * @param pResult The result variable. + * @param pValue The value to shift. + * @param cBits The number of bits to shift it. + */ +DECLINLINE(PRTUINT128U) RTUInt128ShiftRight(PRTUINT128U pResult, PCRTUINT128U pValue, int cBits) +{ + cBits &= 127; + if (cBits < 64) + { + pResult->s.Hi = pValue->s.Hi >> cBits; + pResult->s.Lo = (pValue->s.Lo >> cBits) | (pValue->s.Hi << (64 - cBits)); + } + else + { + pResult->s.Hi = 0; + pResult->s.Lo = pValue->s.Hi >> (cBits - 64); + } + return pResult; +} + + +/** + * Boolean not (result 0 or 1). + * + * @returns pResult. + * @param pResult The result variable. + * @param pValue The value. + */ +DECLINLINE(PRTUINT128U) RTUInt128BooleanNot(PRTUINT128U pResult, PCRTUINT128U pValue) +{ + pResult->s.Hi = 0; + pResult->s.Lo = pValue->s.Lo || pValue->s.Hi ? 0 : 1; + return pResult; +} + + +/** + * Bitwise not (flips each bit of the 128 bits). + * + * @returns pResult. + * @param pResult The result variable. + * @param pValue The value. + */ +DECLINLINE(PRTUINT128U) RTUInt128BitwiseNot(PRTUINT128U pResult, PCRTUINT128U pValue) +{ + pResult->s.Hi = ~pValue->s.Hi; + pResult->s.Lo = ~pValue->s.Lo; + return pResult; +} /** @@ -238,10 +594,111 @@ } -RTDECL(PRTUINT128U) RTUInt128AssignAdd(PRTUINT128U pValue1Result, PCRTUINT128U pValue2); -RTDECL(PRTUINT128U) RTUInt128AssignSub(PRTUINT128U pValue1Result, PCRTUINT128U pValue2); -RTDECL(PRTUINT128U) RTUInt128AssignDiv(PRTUINT128U pValue1Result, PCRTUINT128U pValue2); -RTDECL(PRTUINT128U) RTUInt128AssignMod(PRTUINT128U pValue1Result, PCRTUINT128U pValue2); +/** + * Adds two 128-bit unsigned integer values, storing the result in the first. + * + * @returns pValue1Result. + * @param pValue1Result The first value and result. + * @param pValue2 The second value. + */ +DECLINLINE(PRTUINT128U) RTUInt128AssignAdd(PRTUINT128U pValue1Result, PCRTUINT128U pValue2) +{ + uint64_t const uTmp = pValue1Result->s.Lo; + pValue1Result->s.Lo += pValue2->s.Lo; + if (pValue1Result->s.Lo < uTmp) + pValue1Result->s.Hi++; + pValue1Result->s.Hi += pValue2->s.Hi; + return pValue1Result; +} + + +/** + * Adds a 64-bit unsigned integer value to a 128-bit unsigned integer values, + * storing the result in the 128-bit one. + * + * @returns pValue1Result. + * @param pValue1Result The first value and result. + * @param uValue2 The second value, 64-bit. + */ +DECLINLINE(PRTUINT128U) RTUInt128AssignAddU64(PRTUINT128U pValue1Result, uint64_t uValue2) +{ + pValue1Result->s.Lo += uValue2; + if (pValue1Result->s.Lo < uValue2) + pValue1Result->s.Hi++; + return pValue1Result; +} + + +/** + * Subtracts two 128-bit unsigned integer values, storing the result in the + * first. + * + * @returns pValue1Result. + * @param pValue1Result The minuend value and result. + * @param pValue2 The subtrahend value. + */ +DECLINLINE(PRTUINT128U) RTUInt128AssignSub(PRTUINT128U pValue1Result, PCRTUINT128U pValue2) +{ + uint64_t const uTmp = pValue1Result->s.Lo; + pValue1Result->s.Lo -= pValue2->s.Lo; + if (pValue1Result->s.Lo > uTmp) + pValue1Result->s.Hi--; + pValue1Result->s.Hi -= pValue2->s.Hi; + return pValue1Result; +} + + +/** + * Multiplies two 128-bit unsigned integer values, storing the result in the + * first. + * + * @returns pValue1Result. + * @param pValue1Result The first value and result. + * @param pValue2 The second value. + */ +DECLINLINE(PRTUINT128U) RTUInt128AssignMul(PRTUINT128U pValue1Result, PCRTUINT128U pValue2) +{ + RTUINT128U Result; + RTUInt128Mul(&Result, pValue1Result, pValue2); + *pValue1Result = Result; + return pValue1Result; +} + + +/** + * Divides a 128-bit unsigned integer value by another, storing the result in + * the first. + * + * @returns pValue1Result. + * @param pValue1Result The dividend value and result. + * @param pValue2 The divisor value. + */ +DECLINLINE(PRTUINT128U) RTUInt128AssignDiv(PRTUINT128U pValue1Result, PCRTUINT128U pValue2) +{ + RTUINT128U Result; + RTUINT128U Ignored; + RTUInt128DivRem(&Result, &Ignored, pValue1Result, pValue2); + *pValue1Result = Result; + return pValue1Result; +} + + +/** + * Divides a 128-bit unsigned integer value by another, storing the remainder in + * the first. + * + * @returns pValue1Result. + * @param pValue1Result The dividend value and result (remainder). + * @param pValue2 The divisor value. + */ +DECLINLINE(PRTUINT128U) RTUInt128AssignMod(PRTUINT128U pValue1Result, PCRTUINT128U pValue2) +{ + RTUINT128U Ignored; + RTUINT128U Result; + RTUInt128DivRem(&Ignored, &Result, pValue1Result, pValue2); + *pValue1Result = Result; + return pValue1Result; +} /** @@ -315,6 +772,41 @@ /** + * ORs in a bit and assign the result to the input value. + * + * @returns pValue1Result. + * @param pValue1Result The first value and result. + * @param iBit The bit to set (0 based). + */ +DECLINLINE(PRTUINT128U) RTUInt128AssignOrBit(PRTUINT128U pValue1Result, uint32_t iBit) +{ +#if ARCH_BITS >= 64 + if (iBit >= 64) + pValue1Result->s.Hi |= RT_BIT_64(iBit - 64); + else + pValue1Result->s.Lo |= RT_BIT_64(iBit); +#else + if (iBit >= 64) + { + if (iBit >= 96) + pValue1Result->DWords.dw3 |= RT_BIT_32(iBit - 96); + else + pValue1Result->DWords.dw2 |= RT_BIT_32(iBit - 64); + } + else + { + if (iBit >= 32) + pValue1Result->DWords.dw1 |= RT_BIT_32(iBit - 32); + else + pValue1Result->DWords.dw0 |= RT_BIT_32(iBit); + } +#endif + return pValue1Result; +} + + + +/** * Performs a bitwise XOR of two 128-bit unsigned integer values and assigned * the result to the first one. * @@ -456,20 +948,95 @@ return pValue1->s.Lo > pValue2->s.Lo ? 1 : -1; return 0; #else - if (pValue1->DWords.dw0 != pValue2->DWords.dw0) - return pValue1->DWords.dw0 > pValue2->DWords.dw0 ? 1 : -1; - if (pValue1->DWords.dw1 != pValue2->DWords.dw1) - return pValue1->DWords.dw1 > pValue2->DWords.dw1 ? 1 : -1; - if (pValue1->DWords.dw2 != pValue2->DWords.dw2) - return pValue1->DWords.dw2 > pValue2->DWords.dw2 ? 1 : -1; if (pValue1->DWords.dw3 != pValue2->DWords.dw3) return pValue1->DWords.dw3 > pValue2->DWords.dw3 ? 1 : -1; + if (pValue1->DWords.dw2 != pValue2->DWords.dw2) + return pValue1->DWords.dw2 > pValue2->DWords.dw2 ? 1 : -1; + if (pValue1->DWords.dw1 != pValue2->DWords.dw1) + return pValue1->DWords.dw1 > pValue2->DWords.dw1 ? 1 : -1; + if (pValue1->DWords.dw0 != pValue2->DWords.dw0) + return pValue1->DWords.dw0 > pValue2->DWords.dw0 ? 1 : -1; return 0; #endif } /** + * Tests if a 128-bit unsigned integer value is smaller than another. + * + * @returns true if the first value is smaller, false if not. + * @param pValue1 The first value. + * @param pValue2 The second value. + */ +DECLINLINE(bool) RTUInt128IsSmaller(PCRTUINT128U pValue1, PCRTUINT128U pValue2) +{ +#if ARCH_BITS >= 64 + return pValue1->s.Hi < pValue2->s.Hi + || ( pValue1->s.Hi == pValue2->s.Hi + && pValue1->s.Lo < pValue2->s.Lo); +#else + return pValue1->DWords.dw3 < pValue2->DWords.dw3 + || ( pValue1->DWords.dw3 == pValue2->DWords.dw3 + && ( pValue1->DWords.dw2 < pValue2->DWords.dw2 + || ( pValue1->DWords.dw2 == pValue2->DWords.dw2 + && ( pValue1->DWords.dw1 < pValue2->DWords.dw1 + || ( pValue1->DWords.dw1 == pValue2->DWords.dw1 + && pValue1->DWords.dw0 < pValue2->DWords.dw0))))); +#endif +} + + +/** + * Tests if a 128-bit unsigned integer value is larger than another. + * + * @returns true if the first value is larger, false if not. + * @param pValue1 The first value. + * @param pValue2 The second value. + */ +DECLINLINE(bool) RTUInt128IsLarger(PCRTUINT128U pValue1, PCRTUINT128U pValue2) +{ +#if ARCH_BITS >= 64 + return pValue1->s.Hi > pValue2->s.Hi + || ( pValue1->s.Hi == pValue2->s.Hi + && pValue1->s.Lo > pValue2->s.Lo); +#else + return pValue1->DWords.dw3 > pValue2->DWords.dw3 + || ( pValue1->DWords.dw3 == pValue2->DWords.dw3 + && ( pValue1->DWords.dw2 > pValue2->DWords.dw2 + || ( pValue1->DWords.dw2 == pValue2->DWords.dw2 + && ( pValue1->DWords.dw1 > pValue2->DWords.dw1 + || ( pValue1->DWords.dw1 == pValue2->DWords.dw1 + && pValue1->DWords.dw0 > pValue2->DWords.dw0))))); +#endif +} + + +/** + * Tests if a 128-bit unsigned integer value is larger or equal than another. + * + * @returns true if the first value is larger or equal, false if not. + * @param pValue1 The first value. + * @param pValue2 The second value. + */ +DECLINLINE(bool) RTUInt128IsLargerOrEqual(PCRTUINT128U pValue1, PCRTUINT128U pValue2) +{ +#if ARCH_BITS >= 64 + return pValue1->s.Hi > pValue2->s.Hi + || ( pValue1->s.Hi == pValue2->s.Hi + && pValue1->s.Lo >= pValue2->s.Lo); +#else + return pValue1->DWords.dw3 > pValue2->DWords.dw3 + || ( pValue1->DWords.dw3 == pValue2->DWords.dw3 + && ( pValue1->DWords.dw2 > pValue2->DWords.dw2 + || ( pValue1->DWords.dw2 == pValue2->DWords.dw2 + && ( pValue1->DWords.dw1 > pValue2->DWords.dw1 + || ( pValue1->DWords.dw1 == pValue2->DWords.dw1 + && pValue1->DWords.dw0 >= pValue2->DWords.dw0))))); +#endif +} + + +/** * Tests if two 128-bit unsigned integer values not equal. * * @returns true if equal, false if not equal. @@ -690,6 +1257,119 @@ #endif } + +DECLINLINE(uint32_t) RTUInt128BitCount(PCRTUINT128U pValue) +{ + uint32_t cBits; + if (pValue->s.Hi != 0) + { + if (pValue->DWords.dw3) + cBits = 96 + ASMBitLastSetU32(pValue->DWords.dw3); + else + cBits = 64 + ASMBitLastSetU32(pValue->DWords.dw2); + } + else + { + if (pValue->DWords.dw1) + cBits = 32 + ASMBitLastSetU32(pValue->DWords.dw1); + else + cBits = 0 + ASMBitLastSetU32(pValue->DWords.dw0); + } + return cBits; +} + + +/** + * Divides a 128-bit unsigned integer value by another, returning both quotient + * and remainder. + * + * @returns pQuotient, NULL if pValue2 is 0. + * @param pQuotient Where to return the quotient. + * @param pRemainder Where to return the remainder. + * @param pValue1 The dividend value. + * @param pValue2 The divisor value. + */ +DECLINLINE(PRTUINT128U) RTUInt128DivRem(PRTUINT128U pQuotient, PRTUINT128U pRemainder, PCRTUINT128U pValue1, PCRTUINT128U pValue2) +{ + int iDiff; + + /* + * Sort out all the special cases first. + */ + /* Divide by zero or 1? */ + if (!pValue2->s.Hi) + { + if (!pValue2->s.Lo) + return NULL; + + if (pValue2->s.Lo == 1) + { + RTUInt128SetZero(pRemainder); + *pQuotient = *pValue1; + return pQuotient; + } + /** @todo RTUint128DivModBy64 */ + } + + /* Dividend is smaller? */ + iDiff = RTUInt128Compare(pValue1, pValue2); + if (iDiff < 0) + { + *pRemainder = *pValue1; + RTUInt128SetZero(pQuotient); + } + + /* The values are equal? */ + else if (iDiff == 0) + { + RTUInt128SetZero(pRemainder); + RTUInt128AssignU64(pQuotient, 1); + } + else + { + /* + * Prepare. + */ + uint32_t iBitAdder = RTUInt128BitCount(pValue1) - RTUInt128BitCount(pValue2); + RTUINT128U NormDivisor = *pValue2; + if (iBitAdder) + { + RTUInt128ShiftLeft(&NormDivisor, pValue2, iBitAdder); + if (RTUInt128IsLarger(&NormDivisor, pValue1)) + { + RTUInt128AssignShiftRight(&NormDivisor, 1); + iBitAdder--; + } + } + else + NormDivisor = *pValue2; + + RTUInt128SetZero(pQuotient); + *pRemainder = *pValue1; + + /* + * Do the division. + */ + if (RTUInt128IsLargerOrEqual(pRemainder, pValue2)) + { + for (;;) + { + if (RTUInt128IsLargerOrEqual(pRemainder, &NormDivisor)) + { + RTUInt128AssignSub(pRemainder, &NormDivisor); + RTUInt128AssignOrBit(pQuotient, iBitAdder); + } + if (RTUInt128IsSmaller(pRemainder, pValue2)) + break; + RTUInt128AssignShiftRight(&NormDivisor, 1); + iBitAdder--; + } + } + } + return pQuotient; +} + + /** @} */ RT_C_DECLS_END diff -Nru virtualbox-4.1.12-dfsg/include/iprt/uni.h virtualbox-4.1.44-dfsg/include/iprt/uni.h --- virtualbox-4.1.12-dfsg/include/iprt/uni.h 2012-04-02 13:24:46.000000000 +0000 +++ virtualbox-4.1.44-dfsg/include/iprt/uni.h 2015-11-11 15:06:04.000000000 +0000 @@ -46,8 +46,8 @@ RT_C_DECLS_BEGIN - #ifndef RTUNI_USE_WCTYPE + /** * A unicode flags range. * @internal @@ -161,6 +161,20 @@ /** + * Checks if a unicode code point is case foldable. + * + * @returns true if it is. + * @returns false if it isn't. + * @param CodePoint The code point. + */ +DECLINLINE(bool) RTUniCpIsFoldable(RTUNICP CodePoint) +{ + /* Right enough. */ + return (rtUniCpFlags(CodePoint) & (RTUNI_LOWER | RTUNI_UPPER)) != 0; +} + + +/** * Checks if a unicode code point is alphabetic. * * @returns true if it is. @@ -303,6 +317,20 @@ /** + * Checks if a unicode code point is case foldable. + * + * @returns true if it is. + * @returns false if it isn't. + * @param CodePoint The code point. + */ +DECLINLINE(bool) RTUniCpIsFoldable(RTUNICP CodePoint) +{ + /* Right enough. */ + return iswupper(CodePoint) || iswlower(CodePoint); +} + + +/** * Checks if a unicode code point is alphabetic. * * @returns true if it is. @@ -389,6 +417,59 @@ RTDECL(void) RTUniFree(PRTUNICP pusz); +/** + * Checks if a code point valid. + * + * Any code point (defined or not) within the 17 unicode planes (0 thru 16), + * except surrogates will be considered valid code points by this function. + * + * @returns true if in range, false if not. + * @param CodePoint The unicode code point to validate. + */ +DECLINLINE(bool) RTUniCpIsValid(RTUNICP CodePoint) +{ + return CodePoint <= 0x00d7ff + || ( CodePoint <= 0x10ffff + && CodePoint >= 0x00e000); +} + + +/** + * Checks if the given code point is in the BMP range. + * + * Surrogates are not considered in the BMP range by this function. + * + * @returns true if in BMP, false if not. + * @param CodePoint The unicode code point to consider. + */ +DECLINLINE(bool) RTUniCpIsBMP(RTUNICP CodePoint) +{ + return CodePoint <= 0xd7ff + || ( CodePoint <= 0xffff + && CodePoint >= 0xe000); +} + + +/** + * Folds a unicode code point to lower case. + * + * @returns Folded code point. + * @param CodePoint The unicode code point to fold. + */ +DECLINLINE(size_t) RTUniCpCalcUtf8Len(RTUNICP CodePoint) +{ + if (CodePoint < 0x80) + return 1; + return 2 + + (CodePoint >= 0x00000800) + + (CodePoint >= 0x00010000) + + (CodePoint >= 0x00200000) + + (CodePoint >= 0x04000000) + + (CodePoint >= 0x80000000) /* illegal */; +} + + + RT_C_DECLS_END /** @} */ diff -Nru virtualbox-4.1.12-dfsg/include/iprt/x86.h virtualbox-4.1.44-dfsg/include/iprt/x86.h --- virtualbox-4.1.12-dfsg/include/iprt/x86.h 2012-04-02 13:24:46.000000000 +0000 +++ virtualbox-4.1.44-dfsg/include/iprt/x86.h 2015-11-11 15:06:04.000000000 +0000 @@ -833,12 +833,22 @@ #define MSR_IA32_PLATFORM_ID 0x17 #ifndef MSR_IA32_APICBASE /* qemu cpu.h kludge */ -#define MSR_IA32_APICBASE 0x1b +# define MSR_IA32_APICBASE 0x1b +/** Local APIC enabled. */ +# define MSR_IA32_APICBASE_EN RT_BIT_64(11) +/** X2APIC enabled (requires the EN bit to be set). */ +# define MSR_IA32_APICBASE_EXTD RT_BIT_64(10) +/** The processor is the boot strap processor (BSP). */ +# define MSR_IA32_APICBASE_BSP RT_BIT_64(8) +/** Minimum base address mask, consult CPUID leaf 0x80000008 for the actual + * width. */ +# define MSR_IA32_APICBASE_BASE_MIN UINT64_C(0x0000000ffffff000) #endif /** CPU Feature control. */ #define MSR_IA32_FEATURE_CONTROL 0x3A #define MSR_IA32_FEATURE_CONTROL_LOCK RT_BIT(0) +#define MSR_IA32_FEATURE_CONTROL_SMX_VMXON RT_BIT(1) #define MSR_IA32_FEATURE_CONTROL_VMXON RT_BIT(2) /** BIOS update trigger (microcode update). */ @@ -958,8 +968,9 @@ /** DS Save Area (R/W). */ #define MSR_IA32_DS_AREA 0x600 /** X2APIC MSR ranges. */ -#define MSR_IA32_APIC_START 0x800 -#define MSR_IA32_APIC_END 0x900 +#define MSR_IA32_X2APIC_START 0x800 +#define MSR_IA32_X2APIC_TPR 0x808 +#define MSR_IA32_X2APIC_END 0xBFF /** K6 EFER - Extended Feature Enable Register. */ #define MSR_K6_EFER 0xc0000080 diff -Nru virtualbox-4.1.12-dfsg/include/iprt/x86.mac virtualbox-4.1.44-dfsg/include/iprt/x86.mac --- virtualbox-4.1.12-dfsg/include/iprt/x86.mac 2012-04-02 13:24:46.000000000 +0000 +++ virtualbox-4.1.44-dfsg/include/iprt/x86.mac 2015-11-11 15:06:05.000000000 +0000 @@ -228,10 +228,15 @@ %define MSR_IA32_TSC 0x10 %define MSR_IA32_PLATFORM_ID 0x17 %ifndef MSR_IA32_APICBASE -%define MSR_IA32_APICBASE 0x1b + %define MSR_IA32_APICBASE 0x1b + %define MSR_IA32_APICBASE_EN RT_BIT_64(11) + %define MSR_IA32_APICBASE_EXTD RT_BIT_64(10) + %define MSR_IA32_APICBASE_BSP RT_BIT_64(8) + %define MSR_IA32_APICBASE_BASE_MIN 0x0000000ffffff000 %endif %define MSR_IA32_FEATURE_CONTROL 0x3A %define MSR_IA32_FEATURE_CONTROL_LOCK RT_BIT(0) +%define MSR_IA32_FEATURE_CONTROL_SMX_VMXON RT_BIT(1) %define MSR_IA32_FEATURE_CONTROL_VMXON RT_BIT(2) %define MSR_IA32_BIOS_UPDT_TRIG 0x79 %define MSR_IA32_BIOS_SIGN_ID 0x8B @@ -286,8 +291,9 @@ %define MSR_IA32_VMX_PROCBASED_CTLS2 0x48B %define MSR_IA32_VMX_EPT_CAPS 0x48C %define MSR_IA32_DS_AREA 0x600 -%define MSR_IA32_APIC_START 0x800 -%define MSR_IA32_APIC_END 0x900 +%define MSR_IA32_X2APIC_START 0x800 +%define MSR_IA32_X2APIC_TPR 0x808 +%define MSR_IA32_X2APIC_END 0xBFF %define MSR_K6_EFER 0xc0000080 %define MSR_K6_EFER_SCE RT_BIT(0) %define MSR_K6_EFER_LME RT_BIT(8) diff -Nru virtualbox-4.1.12-dfsg/include/iprt/zero.h virtualbox-4.1.44-dfsg/include/iprt/zero.h --- virtualbox-4.1.12-dfsg/include/iprt/zero.h 1970-01-01 00:00:00.000000000 +0000 +++ virtualbox-4.1.44-dfsg/include/iprt/zero.h 2015-11-11 15:06:05.000000000 +0000 @@ -0,0 +1,54 @@ +/** @file + * IPRT - Zero Memory. + */ + +/* + * Copyright (C) 2006-2014 Oracle Corporation + * + * This file is part of VirtualBox Open Source Edition (OSE), as + * available from http://www.virtualbox.org. This file is free software; + * you can redistribute it and/or modify it under the terms of the GNU + * General Public License (GPL) as published by the Free Software + * Foundation, in version 2 as it comes in the "COPYING" file of the + * VirtualBox OSE distribution. VirtualBox OSE is distributed in the + * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind. + * + * The contents of this file may alternatively be used under the terms + * of the Common Development and Distribution License Version 1.0 + * (CDDL) only, as it comes in the "COPYING.CDDL" file of the + * VirtualBox OSE distribution, in which case the provisions of the + * CDDL are applicable instead of those of the GPL. + * + * You may elect to license modified versions of this file under the + * terms and conditions of either the GPL or the CDDL or both. + */ + +#ifndef ___iprt_zero_h +#define ___iprt_zero_h + + +#include +#include +#include + + +RT_C_DECLS_BEGIN + +/** @defgroup grp_rt_zero RTZero - Zeroed Memory Objects + * @ingroup grp_rt + * @{ + */ + +extern RTDATADECL(uint8_t const) g_abRTZeroPage[PAGE_SIZE]; +extern RTDATADECL(uint8_t const) g_abRTZero4K[_4K]; +extern RTDATADECL(uint8_t const) g_abRTZero8K[_8K]; +extern RTDATADECL(uint8_t const) g_abRTZero16K[_16K]; +extern RTDATADECL(uint8_t const) g_abRTZero32K[_32K]; +extern RTDATADECL(uint8_t const) g_abRTZero64K[_64K]; + +/** @} */ + +RT_C_DECLS_END + +#endif + diff -Nru virtualbox-4.1.12-dfsg/include/Makefile.kmk virtualbox-4.1.44-dfsg/include/Makefile.kmk --- virtualbox-4.1.12-dfsg/include/Makefile.kmk 2012-04-02 13:24:36.000000000 +0000 +++ virtualbox-4.1.44-dfsg/include/Makefile.kmk 2015-11-11 15:06:00.000000000 +0000 @@ -94,6 +94,7 @@ VBox/vmm/gvm.h \ iprt/thread.h \ iprt/mem.h \ + iprt/memsafer.h \ iprt/alloc.h \ $(r3_cpp_hdrs) \ $(r3_only_hdrs) \ diff -Nru virtualbox-4.1.12-dfsg/include/VBox/apic.h virtualbox-4.1.44-dfsg/include/VBox/apic.h --- virtualbox-4.1.12-dfsg/include/VBox/apic.h 2012-04-02 13:24:39.000000000 +0000 +++ virtualbox-4.1.44-dfsg/include/VBox/apic.h 2015-11-11 15:06:00.000000000 +0000 @@ -54,5 +54,17 @@ return *(const volatile uint32_t*)((uintptr_t)pBase + reg); } + +#ifdef ___iprt_asm_amd64_x86_h +/** + * Reads an X2APIC register. + * + * @param offReg MMIO offset, APIC_REG_XXX. + */ +DECLINLINE(uint32_t) ApicX2RegRead32(uint32_t offReg) +{ + return ASMRdMsr((offReg >> 4) + MSR_IA32_X2APIC_START); +} #endif +#endif /* ___VBox_apic_h */ diff -Nru virtualbox-4.1.12-dfsg/include/VBox/apic.mac virtualbox-4.1.44-dfsg/include/VBox/apic.mac --- virtualbox-4.1.12-dfsg/include/VBox/apic.mac 2012-04-02 13:24:39.000000000 +0000 +++ virtualbox-4.1.44-dfsg/include/VBox/apic.mac 2015-11-11 15:06:00.000000000 +0000 @@ -16,4 +16,6 @@ %define APIC_REG_LVT_REMOTE_IRR RT_BIT(14) %define APIC_REG_LVT_LEVEL_TRIGGER RT_BIT(15) %define APIC_REG_LVT_MASKED RT_BIT(16) +%ifdef ___iprt_asm_amd64_x86_h +%endif %endif diff -Nru virtualbox-4.1.12-dfsg/include/VBox/com/EventQueue.h virtualbox-4.1.44-dfsg/include/VBox/com/EventQueue.h --- virtualbox-4.1.12-dfsg/include/VBox/com/EventQueue.h 2012-04-02 13:24:39.000000000 +0000 +++ virtualbox-4.1.44-dfsg/include/VBox/com/EventQueue.h 2015-11-11 15:06:00.000000000 +0000 @@ -1,10 +1,10 @@ +/* $Id: EventQueue.h $ */ /** @file - * MS COM / XPCOM Abstraction Layer: - * Event and EventQueue class declaration + * Event queue class declaration. */ /* - * Copyright (C) 2006-2010 Oracle Corporation + * Copyright (C) 2013 Oracle Corporation * * This file is part of VirtualBox Open Source Edition (OSE), as * available from http://www.virtualbox.org. This file is free software; @@ -27,11 +27,10 @@ #ifndef ___VBox_com_EventQueue_h #define ___VBox_com_EventQueue_h -#ifndef VBOX_WITH_XPCOM -# include -#else // VBOX_WITH_XPCOM -# include -#endif // VBOX_WITH_XPCOM +#include + +#include +#include #include #include @@ -52,8 +51,21 @@ { public: - Event() {} - virtual ~Event() {}; + Event(void) : + mRefCount(0) { } + virtual ~Event(void) { AssertMsg(!mRefCount, + ("Reference count of event=%p not 0 on destruction (is %RU32)\n", + this, mRefCount)); } +public: + + uint32_t AddRef(void) { return ASMAtomicIncU32(&mRefCount); } + void Release(void) + { + Assert(mRefCount); + uint32_t cRefs = ASMAtomicDecU32(&mRefCount); + if (!cRefs) + delete this; + } protected: @@ -63,76 +75,53 @@ * * @return reserved, should be NULL. */ - virtual void *handler() { return NULL; } + virtual void *handler(void) { return NULL; } friend class EventQueue; + +protected: + + /** The event's reference count. */ + uint32_t mRefCount; }; +typedef std::list< Event* > EventQueueList; +typedef std::list< Event* >::iterator EventQueueListIterator; +typedef std::list< Event* >::const_iterator EventQueueListIteratorConst; + /** * Simple event queue. - * - * When using XPCOM, this will map onto the default XPCOM queue for the thread. - * So, if a queue is created on the main thread, it automatically processes - * XPCOM/IPC events while waiting. - * - * When using Windows, Darwin and OS/2, this will map onto the native thread - * queue/runloop. So, windows messages and what not will be processed while - * waiting for events. - * - * @note It is intentional that there is no way to retrieve arbitrary - * events and controlling their processing. There is no use case which - * warrants introducing the complexity of platform independent events. */ class EventQueue { public: - EventQueue(); - ~EventQueue(); + EventQueue(void); + virtual ~EventQueue(void); + +public: BOOL postEvent(Event *event); int processEventQueue(RTMSINTERVAL cMsTimeout); + int processPendingEvents(size_t cNumEvents); int interruptEventQueueProcessing(); - int getSelectFD(); - static int init(); - static int uninit(); - static EventQueue *getMainEventQueue(); - -#ifdef VBOX_WITH_XPCOM - already_AddRefed getIEventQueue() - { - return mEventQ.get(); - } -#else - static int dispatchMessageOnWindows(MSG const *pMsg, int rc); -#endif private: - static EventQueue *sMainQueue; - -#ifndef VBOX_WITH_XPCOM - - /** The thread which the queue belongs to. */ - DWORD mThreadId; - /** Duplicated thread handle for MsgWaitForMultipleObjects. */ - HANDLE mhThread; - -#else // VBOX_WITH_XPCOM - - /** Whether it was created (and thus needs destroying) or if a queue already - * associated with the thread was used. */ - bool mEQCreated; - - /** Whether event processing should be interrupted. */ - bool mInterrupted; - - nsCOMPtr mEventQ; - nsCOMPtr mEventQService; - - static void *PR_CALLBACK plEventHandler(PLEvent *self); - static void PR_CALLBACK plEventDestructor(PLEvent *self); -#endif // VBOX_WITH_XPCOM + /** Critical section for serializing access to this + * event queue. */ + RTCRITSECT mCritSect; + /** Number of concurrent users. At the moment we + * only support one concurrent user at a time when + calling processEventQueue(). */ + uint32_t mUserCnt; + /** Event semaphore for getting notified on new + * events being handled. */ + RTSEMEVENT mSemEvent; + /** The actual event queue, implemented as a list. */ + EventQueueList mEvents; + /** Shutdown indicator. */ + bool mShutdown; }; } /* namespace com */ diff -Nru virtualbox-4.1.12-dfsg/include/VBox/com/NativeEventQueue.h virtualbox-4.1.44-dfsg/include/VBox/com/NativeEventQueue.h --- virtualbox-4.1.12-dfsg/include/VBox/com/NativeEventQueue.h 1970-01-01 00:00:00.000000000 +0000 +++ virtualbox-4.1.44-dfsg/include/VBox/com/NativeEventQueue.h 2015-11-11 15:06:00.000000000 +0000 @@ -0,0 +1,140 @@ +/** @file + * MS COM / XPCOM Abstraction Layer: + * Event and EventQueue class declaration + */ + +/* + * Copyright (C) 2006-2013 Oracle Corporation + * + * This file is part of VirtualBox Open Source Edition (OSE), as + * available from http://www.virtualbox.org. This file is free software; + * you can redistribute it and/or modify it under the terms of the GNU + * General Public License (GPL) as published by the Free Software + * Foundation, in version 2 as it comes in the "COPYING" file of the + * VirtualBox OSE distribution. VirtualBox OSE is distributed in the + * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind. + * + * The contents of this file may alternatively be used under the terms + * of the Common Development and Distribution License Version 1.0 + * (CDDL) only, as it comes in the "COPYING.CDDL" file of the + * VirtualBox OSE distribution, in which case the provisions of the + * CDDL are applicable instead of those of the GPL. + * + * You may elect to license modified versions of this file under the + * terms and conditions of either the GPL or the CDDL or both. + */ + +#ifndef ___VBox_com_EventQueue_h +#define ___VBox_com_EventQueue_h + +#ifndef VBOX_WITH_XPCOM +# include +#else // VBOX_WITH_XPCOM +# include +#endif // VBOX_WITH_XPCOM + +#include +#include + +namespace com +{ + +class MainEventQueue; + +/** + * Base class for all events. Intended to be subclassed to introduce new + * events and handlers for them. + * + * Subclasses usually reimplement virtual #handler() (that does nothing by + * default) and add new data members describing the event. + */ +class NativeEvent +{ +public: + + NativeEvent() {} + virtual ~NativeEvent() {}; + +protected: + + /** + * Event handler. Called in the context of the event queue's thread. + * Always reimplemented by subclasses + * + * @return reserved, should be NULL. + */ + virtual void *handler() { return NULL; } + + friend class NativeEventQueue; +}; + +/** + * Simple event queue. + * + * When using XPCOM, this will map onto the default XPCOM queue for the thread. + * So, if a queue is created on the main thread, it automatically processes + * XPCOM/IPC events while waiting. + * + * When using Windows, Darwin and OS/2, this will map onto the native thread + * queue/runloop. So, windows messages and what not will be processed while + * waiting for events. + * + * @note It is intentional that there is no way to retrieve arbitrary + * events and controlling their processing. There is no use case which + * warrants introducing the complexity of platform independent events. + */ +class NativeEventQueue +{ +public: + + NativeEventQueue(); + virtual ~NativeEventQueue(); + + BOOL postEvent(NativeEvent *event); + int processEventQueue(RTMSINTERVAL cMsTimeout); + int interruptEventQueueProcessing(); + int getSelectFD(); + static int init(); + static int uninit(); + static NativeEventQueue *getMainEventQueue(); + +#ifdef VBOX_WITH_XPCOM + already_AddRefed getIEventQueue() + { + return mEventQ.get(); + } +#else + static int dispatchMessageOnWindows(MSG const *pMsg, int rc); +#endif + +private: + static NativeEventQueue *sMainQueue; + +#ifndef VBOX_WITH_XPCOM + + /** The thread which the queue belongs to. */ + DWORD mThreadId; + /** Duplicated thread handle for MsgWaitForMultipleObjects. */ + HANDLE mhThread; + +#else // VBOX_WITH_XPCOM + + /** Whether it was created (and thus needs destroying) or if a queue already + * associated with the thread was used. */ + bool mEQCreated; + + /** Whether event processing should be interrupted. */ + bool mInterrupted; + + nsCOMPtr mEventQ; + nsCOMPtr mEventQService; + + static void *PR_CALLBACK plEventHandler(PLEvent *self); + static void PR_CALLBACK plEventDestructor(PLEvent *self); + +#endif // VBOX_WITH_XPCOM +}; + +} /* namespace com */ + +#endif diff -Nru virtualbox-4.1.12-dfsg/include/VBox/dbus-calls.h virtualbox-4.1.44-dfsg/include/VBox/dbus-calls.h --- virtualbox-4.1.12-dfsg/include/VBox/dbus-calls.h 2012-04-02 13:24:40.000000000 +0000 +++ virtualbox-4.1.44-dfsg/include/VBox/dbus-calls.h 2015-11-11 15:06:01.000000000 +0000 @@ -42,6 +42,8 @@ (DBusBusType type, DBusError *error), (type, error)) \ RT_PROXY_STUB(dbus_error_free, void, (DBusError *error), \ (error)) \ + RT_PROXY_STUB(dbus_free_string_array, void, (char **str_array), \ + (str_array)) \ RT_PROXY_STUB(dbus_connection_unref, void, (DBusConnection *connection), \ (connection)) \ RT_PROXY_STUB(dbus_connection_close, void, (DBusConnection *connection), \ @@ -68,6 +70,12 @@ RT_PROXY_STUB(dbus_message_append_args_valist, dbus_bool_t, \ (DBusMessage *message, int first_arg_type, va_list var_args), \ (message, first_arg_type, var_args)) \ + RT_PROXY_STUB(dbus_message_get_args_valist, dbus_bool_t, \ + (DBusMessage *message, DBusError *error, int first_arg_type, va_list var_args), \ + (message, error, first_arg_type, var_args)) \ + RT_PROXY_STUB(dbus_message_get_type, int, \ + (DBusMessage *message), \ + (message)) \ RT_PROXY_STUB(dbus_message_iter_open_container, dbus_bool_t, \ (DBusMessageIter *iter, int type, const char *contained_signature, DBusMessageIter *sub), \ (iter, type, contained_signature, sub)) \ @@ -123,7 +131,9 @@ const char *string2), \ (message, string1, string2)) \ RT_PROXY_STUB(dbus_connection_pop_message, DBusMessage *, \ - (DBusConnection *connection), (connection)) + (DBusConnection *connection), (connection)) \ + RT_PROXY_STUB(dbus_set_error_from_message, dbus_bool_t, \ + (DBusError *error, DBusMessage *message), (error, message)) #ifdef VBOX_DBUS_GENERATE_HEADER # define RT_RUNTIME_LOADER_GENERATE_HEADER diff -Nru virtualbox-4.1.12-dfsg/include/VBox/dbus.h virtualbox-4.1.44-dfsg/include/VBox/dbus.h --- virtualbox-4.1.12-dfsg/include/VBox/dbus.h 2012-04-02 13:24:40.000000000 +0000 +++ virtualbox-4.1.44-dfsg/include/VBox/dbus.h 2015-11-11 15:06:01.000000000 +0000 @@ -80,14 +80,23 @@ #define DBUS_ERROR_NO_MEMORY "org.freedesktop.DBus.Error.NoMemory" -/* Primitive types */ +/* Message types. */ +#define DBUS_MESSAGE_TYPE_INVALID 0 +#define DBUS_MESSAGE_TYPE_METHOD_CALL 1 +#define DBUS_MESSAGE_TYPE_METHOD_RETURN 2 +#define DBUS_MESSAGE_TYPE_ERROR 3 +#define DBUS_MESSAGE_TYPE_SIGNAL 4 + +/* Primitive types. */ #define DBUS_TYPE_INVALID ((int) '\0') +#define DBUS_TYPE_BOOLEAN ((int) 'b') #define DBUS_TYPE_INT32 ((int) 'i') #define DBUS_TYPE_UINT32 ((int) 'u') #define DBUS_TYPE_STRING ((int) 's') #define DBUS_TYPE_STRING_AS_STRING "s" -/* Compound types */ +/* Compound types. */ +#define DBUS_TYPE_OBJECT_PATH ((int) 'o') #define DBUS_TYPE_ARRAY ((int) 'a') #define DBUS_TYPE_ARRAY_AS_STRING "a" #define DBUS_TYPE_DICT_ENTRY ((int) 'e') @@ -112,5 +121,4 @@ #undef VBOX_DBUS_GENERATE_HEADER #endif /* ___VBox_DBus_h not defined */ -/* vi: set tabstop=4 shiftwidth=4 expandtab: */ diff -Nru virtualbox-4.1.12-dfsg/include/VBox/err.h virtualbox-4.1.44-dfsg/include/VBox/err.h --- virtualbox-4.1.12-dfsg/include/VBox/err.h 2012-04-02 13:24:40.000000000 +0000 +++ virtualbox-4.1.44-dfsg/include/VBox/err.h 2015-11-11 15:06:01.000000000 +0000 @@ -240,6 +240,8 @@ #define VERR_EM_INTERNAL_DISAS_ERROR (-1153) /** Unexpected guest mapping conflict detected. */ #define VERR_EM_UNEXPECTED_MAPPING_CONFLICT (-1154) +/** Guest tried to trigger a CPU hang. The guest is probably up to no good. */ +#define VERR_EM_GUEST_CPU_HANG (-1155) /** @} */ @@ -294,7 +296,7 @@ /** Internal processing error \#1 in the DBGF stack code. */ #define VERR_DBGF_STACK_IPE_1 (-1218) /** Internal processing error \#2 in the DBGF stack code. */ -#define VERR_DBGF_STACK_IPE_2 (-1218) +#define VERR_DBGF_STACK_IPE_2 (-1219) /** @} */ @@ -799,11 +801,11 @@ /** Unexpected unstable VM state. */ #define VERR_VM_UNEXPECTED_UNSTABLE_STATE (-1916) /** Too many arguments passed to a VM request / request corruption. */ -#define VERR_VM_REQUEST_TOO_MANY_ARGS_IPE (-1017) +#define VERR_VM_REQUEST_TOO_MANY_ARGS_IPE (-1917) /** Fatal EMT wait error. */ -#define VERR_VM_FATAL_WAIT_ERROR (-1018) +#define VERR_VM_FATAL_WAIT_ERROR (-1918) /** The VM request was killed at VM termination. */ -#define VERR_VM_REQUEST_KILLED (-1019) +#define VERR_VM_REQUEST_KILLED (-1919) /** @} */ @@ -1296,8 +1298,6 @@ #define VERR_PDM_TOO_MANY_DRIVER_INSTANCES (-2868) /** Too many instances of a usb device. */ #define VERR_PDM_TOO_MANY_USB_DEVICE_INSTANCES (-2869) -/** Too many instances of a usb device. */ -#define VERR_PDM_TOO_MANY_USB_DEVICE_INSTANCES (-2869) /** The device instance structure version has changed. * * If you have upgraded VirtualBox recently, please make sure you have @@ -1516,6 +1516,8 @@ #define VERR_VD_CACHE_NOT_FOUND (-3275) /** The cache is not up to date with the image. */ #define VERR_VD_CACHE_NOT_UP_TO_DATE (-3276) +/** Block read was marked as free in the image and returned as a zero block. */ +#define VINF_VD_NEW_ZEROED_BLOCK 3277 /** @} */ @@ -1602,6 +1604,22 @@ #define VERR_SUPDRV_SERVICE_NOT_FOUND (-3702) /** The host kernel is too old. */ #define VERR_SUPDRV_KERNEL_TOO_OLD_FOR_VTX (-3703) +/** The VM process was denied access to vboxdrv because someone have managed to + * open the process or its main thread with too broad access rights. */ +#define VERR_SUPDRV_HARDENING_EVIL_HANDLE (-3738) +/** Error opening the ApiPort LPC object. */ +#define VERR_SUPDRV_APIPORT_OPEN_ERROR (-3739) +/** Error enumerating all processes in the session. */ +#define VERR_SUPDRV_SESSION_PROCESS_ENUM_ERROR (-3740) +/** The CSRSS instance associated with the client process could not be + * located. */ +#define VERR_SUPDRV_CSRSS_NOT_FOUND (-3741) +/** Type error opening the ApiPort LPC object. */ +#define VERR_SUPDRV_APIPORT_OPEN_ERROR_TYPE (-3742) +/** The process trying to open VBoxDrv is not a budding VM process (1). */ +#define VERR_SUPDRV_NOT_BUDDING_VM_PROCESS_1 (-3748) +/** The process trying to open VBoxDrv is not a budding VM process (2). */ +#define VERR_SUPDRV_NOT_BUDDING_VM_PROCESS_2 (-3749) /** @} */ @@ -1649,6 +1667,18 @@ #define VERR_SUPLIB_INVALID_ARGV0_INTERNAL (-3768) /** The internal application does not reside in the correct place (hardening). */ #define VERR_SUPLIB_INVALID_INTERNAL_APP_DIR (-3769) +/** Unable to establish trusted of VM process (0). */ +#define VERR_SUPLIB_NT_PROCESS_UNTRUSTED_0 (-3770) +/** Unable to establish trusted of VM process (1). */ +#define VERR_SUPLIB_NT_PROCESS_UNTRUSTED_1 (-3771) +/** Unable to establish trusted of VM process (2). */ +#define VERR_SUPLIB_NT_PROCESS_UNTRUSTED_2 (-3772) +/** Unable to establish trusted of VM process (3). */ +#define VERR_SUPLIB_NT_PROCESS_UNTRUSTED_3 (-3773) +/** Unable to establish trusted of VM process (4). */ +#define VERR_SUPLIB_NT_PROCESS_UNTRUSTED_4 (-3774) +/** Unable to establish trusted of VM process (5). */ +#define VERR_SUPLIB_NT_PROCESS_UNTRUSTED_5 (-3775) /** @} */ @@ -1770,8 +1800,8 @@ #define VERR_VMX_IN_VMX_ROOT_MODE (-4011) /** Somebody cleared X86_CR4_VMXE in the CR4 register. */ #define VERR_VMX_X86_CR4_VMXE_CLEARED (-4012) -/** VT-x features locked or unavailable in MSR. */ -#define VERR_VMX_MSR_LOCKED_OR_DISABLED (-4013) +/** Failed to enable and lock VT-x features. */ +#define VERR_VMX_MSR_LOCKING_FAILED (-4013) /** Unable to switch due to invalid guest state. */ #define VERR_VMX_INVALID_GUEST_STATE (-4014) /** Unexpected VM exit code. */ @@ -1782,6 +1812,26 @@ #define VERR_VMX_UNEXPECTED_INTERRUPTION_EXIT_CODE (-4017) /** CPU is not in VMX root mode; unexpected when leaving VMX root mode */ #define VERR_VMX_NOT_IN_VMX_ROOT_MODE (-4018) +/** Undefined VM exit code. */ +#define VERR_VMX_UNDEFINED_EXIT_CODE (-4019) +/** VMPTRLD failed; possibly because of invalid VMCS launch-state. */ +#define VERR_VMX_VMPTRLD_FAILED (-4021) +/** Invalid VMCS pointer passed to VMLAUNCH/VMRESUME. */ +#define VERR_VMX_INVALID_VMCS_PTR_TO_START_VM (-4022) +/** Internal VMX processing error no 1. */ +#define VERR_HMVMX_IPE_1 (-4023) +/** Internal VMX processing error no 1. */ +#define VERR_HMVMX_IPE_2 (-4024) +/** Internal VMX processing error no 1. */ +#define VERR_HMVMX_IPE_3 (-4025) +/** Internal VMX processing error no 1. */ +#define VERR_HMVMX_IPE_4 (-4026) +/** Internal VMX processing error no 1. */ +#define VERR_HMVMX_IPE_5 (-4027) +/** VT-x features for SMX operation disabled by the BIOS. */ +#define VERR_VMX_MSR_SMX_VMXON_DISABLED (-4028) +/** VT-x features disabled by the BIOS. */ +#define VERR_VMX_MSR_VMXON_DISABLED (-4029) /** @} */ @@ -1798,6 +1848,18 @@ #define VERR_SVM_DISABLED (-4053) /** AMD-V CPU extension in-use. */ #define VERR_SVM_IN_USE (-4054) +/** Invalid pVMCB. */ +#define VERR_SVM_INVALID_PVMCB (-4055) +/** Unexpected SVM exit. */ +#define VERR_SVM_UNEXPECTED_EXIT (-4056) +/** Unexpected SVM exception exit. */ +#define VERR_SVM_UNEXPECTED_XCPT_EXIT (-4057) +/** Unexpected SVM patch type. */ +#define VERR_SVM_UNEXPECTED_PATCH_TYPE (-4058) +/** Unable to start VM execution due to an invalid guest state. */ +#define VERR_SVM_INVALID_GUEST_STATE (-4059) +/** Unknown or unrecognized SVM exit. */ +#define VERR_SVM_UNKNOWN_EXIT (-4060) /** @} */ @@ -1997,6 +2059,206 @@ +/** @name Support driver/library shared verfication status codes. + * @{ */ +/** Process Verficiation Failure: The memory content does not match the image + * file. */ +#define VERR_SUP_VP_MEMORY_VS_FILE_MISMATCH (-5600) +/** Process Verficiation Failure: The memory protection of a image file section + * does not match what the section header prescribes. */ +#define VERR_SUP_VP_SECTION_PROTECTION_MISMATCH (-5601) +/** Process Verficiation Failure: One of the section in the image file is not + * mapped into memory. */ +#define VERR_SUP_VP_SECTION_NOT_MAPPED (-5602) +/** Process Verficiation Failure: One of the section in the image file is not + * fully mapped into memory. */ +#define VERR_SUP_VP_SECTION_NOT_FULLY_MAPPED (-5603) +/** Process Verficiation Failure: Bad file alignment value in image header. */ +#define VERR_SUP_VP_BAD_FILE_ALIGNMENT_VALUE (-5604) +/** Process Verficiation Failure: Bad image base in header. */ +#define VERR_SUP_VP_BAD_IMAGE_BASE (-5605) +/** Process Verficiation Failure: Bad image signature. */ +#define VERR_SUP_VP_BAD_IMAGE_SIGNATURE (-5606) +/** Process Verficiation Failure: Bad image size. */ +#define VERR_SUP_VP_BAD_IMAGE_SIZE (-5607) +/** Process Verficiation Failure: Bad new-header offset in the MZ header. */ +#define VERR_SUP_VP_BAD_MZ_OFFSET (-5608) +/** Process Verficiation Failure: Bad optional header field. */ +#define VERR_SUP_VP_BAD_OPTIONAL_HEADER (-5609) +/** Process Verficiation Failure: Bad section alignment value in image + * header. */ +#define VERR_SUP_VP_BAD_SECTION_ALIGNMENT_VALUE (-5610) +/** Process Verficiation Failure: Bad section raw data size. */ +#define VERR_SUP_VP_BAD_SECTION_FILE_SIZE (-5611) +/** Process Verficiation Failure: Bad virtual section address. */ +#define VERR_SUP_VP_BAD_SECTION_RVA (-5612) +/** Process Verficiation Failure: Bad virtual section size. */ +#define VERR_SUP_VP_BAD_SECTION_VIRTUAL_SIZE (-5613) +/** Process Verficiation Failure: Bad size of image header. */ +#define VERR_SUP_VP_BAD_SIZE_OF_HEADERS (-5614) +/** Process Verficiation Failure: The process is being debugged. */ +#define VERR_SUP_VP_DEBUGGED (-5615) +/** Process Verficiation Failure: A DLL was found more than once. */ +#define VERR_SUP_VP_DUPLICATE_DLL_MAPPING (-5616) +/** Process Verficiation Failure: Image section region is too large. */ +#define VERR_SUP_VP_EMPTY_REGION_TOO_LARGE (-5617) +/** Process Verficiation Failure: Exectuable file name and process image name + * does not match up. */ +#define VERR_SUP_VP_EXE_VS_PROC_NAME_MISMATCH (-5618) +/** Process Verficiation Failure: Found executable memory allocated in the + * process. There is only supposed be executable memory associated with + * image file mappings (DLLs & EXE). */ +#define VERR_SUP_VP_FOUND_EXEC_MEMORY (-5619) +/** Process Verficiation Failure: There is more than one known executable mapped + * into the process. */ +#define VERR_SUP_VP_FOUND_MORE_THAN_ONE_EXE_MAPPING (-5620) +/** Process Verficiation Failure: Error closing image file handle. */ +#define VERR_SUP_VP_IMAGE_FILE_CLOSE_ERROR (-5621) +/** Process Verficiation Failure: Error opening image file. */ +#define VERR_SUP_VP_IMAGE_FILE_OPEN_ERROR (-5622) +/** Process Verficiation Failure: Error reading image file header. */ +#define VERR_SUP_VP_IMAGE_HDR_READ_ERROR (-5623) +/** Process Verficiation Failure: Image mapping is bogus as the first region + * has different AllocationBase and BaseAddress values, indicating that a + * section was unmapped or otherwise tampered with. */ +#define VERR_SUP_VP_IMAGE_MAPPING_BASE_ERROR (-5624) +/** Process Verficiation Failure: Error reading process memory for comparing + * with disk data. */ +#define VERR_SUP_VP_MEMORY_READ_ERROR (-5625) +/** Process Verficiation Failure: Found no executable mapped into the process + * address space. */ +#define VERR_SUP_VP_NO_FOUND_NO_EXE_MAPPING (-5626) +/** Process Verficiation Failure: An image mapping failed to report a name. */ +#define VERR_SUP_VP_NO_IMAGE_MAPPING_NAME (-5627) +/** Process Verficiation Failure: No KERNE32.DLL mapping found. This is + * impossible. */ +#define VERR_SUP_VP_NO_KERNEL32_MAPPING (-5628) +/** Process Verficiation Failure: Error allocating memory. */ +#define VERR_SUP_VP_NO_MEMORY (-5629) +/** Process Verficiation Failure: Erorr allocating state memory or querying + * the system32 path. */ +#define VERR_SUP_VP_NO_MEMORY_STATE (-5630) +/** Process Verficiation Failure: No NTDLL.DLL mapping found. This is + * impossible. */ +#define VERR_SUP_VP_NO_NTDLL_MAPPING (-5631) +/** Process Verficiation Failure: A DLL residing outside System32 was found + * in the process. */ +#define VERR_SUP_VP_NON_SYSTEM32_DLL (-5632) +/** Process Verficiation Failure: An unknown and unwanted DLL was found loaded + * into the process. */ +#define VERR_SUP_VP_NOT_KNOWN_DLL_OR_EXE (-5633) +/** Process Verficiation Failure: The name of an image file changes between + * mapping regions. */ +#define VERR_SUP_VP_NT_MAPPING_NAME_CHANGED (-5634) +/** Process Verficiation Failure: Error querying process name. */ +#define VERR_SUP_VP_NT_QI_PROCESS_NM_ERROR (-5635) +/** Process Verficiation Failure: Error querying thread information. */ +#define VERR_SUP_VP_NT_QI_THREAD_ERROR (-5636) +/** Process Verficiation Failure: Error query virtual memory information. */ +#define VERR_SUP_VP_NT_QI_VIRTUAL_MEMORY_ERROR (-5637) +/** Process Verficiation Failure: Error query virtual memory mapping name. */ +#define VERR_SUP_VP_NT_QI_VIRTUAL_MEMORY_NM_ERROR (-5638) +/** Process Verficiation Failure: Error determining the full path of + * System32. */ +#define VERR_SUP_VP_SYSTEM32_PATH (-5639) +/** Process Verficiation Failure: The process has more than one thread. */ +#define VERR_SUP_VP_THREAD_NOT_ALONE (-5640) +/** Process Verficiation Failure: The image mapping is too large (>= 2GB). */ +#define VERR_SUP_VP_TOO_HIGH_REGION_RVA (-5641) +/** Process Verficiation Failure: The memory region is too large (>= 2GB). */ +#define VERR_SUP_VP_TOO_LARGE_REGION (-5642) +/** Process Verficiation Failure: There are too many DLLs loaded. */ +#define VERR_SUP_VP_TOO_MANY_DLLS_LOADED (-5643) +/** Process Verficiation Failure: An image has too many regions. */ +#define VERR_SUP_VP_TOO_MANY_IMAGE_REGIONS (-5644) +/** Process Verficiation Failure: The process has too many virtual memory + * regions. */ +#define VERR_SUP_VP_TOO_MANY_MEMORY_REGIONS (-5645) +/** Process Verficiation Failure: An image has too many sections. */ +#define VERR_SUP_VP_TOO_MANY_SECTIONS (-5646) +/** Process Verficiation Failure: An image is targetting an unexpected + * machine/CPU. */ +#define VERR_SUP_VP_UNEXPECTED_IMAGE_MACHINE (-5647) +/** Process Verficiation Failure: Unexpected section protection flag + * combination. */ +#define VERR_SUP_VP_UNEXPECTED_SECTION_FLAGS (-5648) +/** Process Verficiation Failure: Expected the process and exe to have forced + * integrity checking enabled (verifying signatures). */ +#define VERR_SUP_VP_EXE_MISSING_FORCE_INTEGRITY (-5649) +/** Process Verficiation Failure: Expected the process and exe to have dynamic + * base enabled. */ +#define VERR_SUP_VP_EXE_MISSING_DYNAMIC_BASE (-5650) +/** Process Verficiation Failure: Expected the process and exe to advertise + * NX compatibility. */ +#define VERR_SUP_VP_EXE_MISSING_NX_COMPAT (-5651) +/** Process Verficiation Failure: The DllCharacteristics of the process + * does not match the value in the optional header in the exe file. */ +#define VERR_SUP_VP_DLL_CHARECTERISTICS_MISMATCH (-5652) +/** Process Verficiation Failure: The ImageCharacteristics of the process + * does not match the value in the file header in the exe file. */ +#define VERR_SUP_VP_IMAGE_CHARECTERISTICS_MISMATCH (-5653) +/** Process Verficiation Failure: Error querying image information. */ +#define VERR_SUP_VP_NT_QI_PROCESS_IMG_INFO_ERROR (-5654) +/** Process Verficiation Failure: Error querying debug port. */ +#define VERR_SUP_VP_NT_QI_PROCESS_DBG_PORT_ERROR (-5655) +/** WinVerifyTrust failed with an unexpected status code when using the + * catalog-file approach. */ +#define VERR_SUP_VP_WINTRUST_CAT_FAILURE (-5656) +/** The image is required to be signed with the same certificate as the rest + * of VirtualBox. */ +#define VERR_SUP_VP_NOT_SIGNED_WITH_BUILD_CERT (-5657) +/** Internal processing error: Not build certificate. */ +#define VERR_SUP_VP_NOT_BUILD_CERT_IPE (-5658) +/** The image requires to be signed using the kernel-code signing process. */ +#define VERR_SUP_VP_NOT_VALID_KERNEL_CODE_SIGNATURE (-5659) +/** Unexpected number of valid paths. */ +#define VERR_SUP_VP_UNEXPECTED_VALID_PATH_COUNT (-5660) +/** The image is required to force integrity checks. */ +#define VERR_SUP_VP_SIGNATURE_CHECKS_NOT_ENFORCED (-5661) +/** Process Verficiation Failure: Symantec Endpoint Protection must be + * disabled for the VirtualBox VM processes. + * http://www.symantec.com/connect/articles/creating-application-control-exclusions-symantec-endpoint-protection-121 */ +#define VERR_SUP_VP_SYSFER_DLL (-5662) +/** Process Purification Failure: KERNE32.DLL already mapped into the initial + * process (suspended). */ +#define VERR_SUP_VP_KERNEL32_ALREADY_MAPPED (-5663) +/** Process Purification Failure: NtFreeVirtualMemory failed on a chunk of + * executable memory which shouldn't be present in the process. */ +#define VERR_SUP_VP_FREE_VIRTUAL_MEMORY_FAILED (-5664) +/** Process Purification Failure: Both NtUnmapViewOfSetion and + * NtProtectVirtualMemory failed to get rid of or passify an non-image + * exectuable mapping. */ +#define VERR_SUP_VP_UNMAP_AND_PROTECT_FAILED (-5665) +/** Process Purification Failure: Unknown memory type of executable memory. */ +#define VERR_SUP_VP_UNKOWN_MEM_TYPE (-5666) +/** The image file is not owned by TrustedInstaller is it should be. */ +#define VERR_SUP_VP_NOT_OWNED_BY_TRUSTED_INSTALLER (-5667) +/** The image is outside the expected range. */ +#define VERR_SUP_VP_IMAGE_TOO_BIG (-5668) +/** Stub process not found so it cannot be revalidated when vboxdrv is opened + * by the VM process. */ +#define VERR_SUP_VP_STUB_NOT_FOUND (-5669) +/** Error openeing the stub process for revalidation when vboxdrv is opened by + * the VM process. */ +#define VERR_SUP_VP_STUB_OPEN_ERROR (-5670) +/** Stub process thread not found during revalidation upon vboxdrv opening by + * the VM process. */ +#define VERR_SUP_VP_STUB_THREAD_NOT_FOUND (-5671) +/** Error opening the stub process thread for revalidation when vboxdrv is + * opened by the VM process. */ +#define VERR_SUP_VP_STUB_THREAD_OPEN_ERROR (-5672) +/** Process Purification Failure: NtAllocateVirtualMemory failed to get us + * suitable replacement memory for a chunk of executable memory that + * shouldn't be present in our process. (You will only see this message if you + * got potentially fatally buggy anti-virus software installed.) */ +#define VERR_SUP_VP_REPLACE_VIRTUAL_MEMORY_FAILED (-5673) +/** Error getting the file mode. */ +#define VERR_SUP_VP_FILE_MODE_ERROR (-5674) +/** Error creating an event semaphore for used with asynchronous reads. */ +#define VERR_SUP_VP_CREATE_READ_EVT_SEM_FAILED (-5675) + +/** @} */ + /** @name VBox Extension Pack Status Codes * @{ */ diff -Nru virtualbox-4.1.12-dfsg/include/VBox/err.mac virtualbox-4.1.44-dfsg/include/VBox/err.mac --- virtualbox-4.1.12-dfsg/include/VBox/err.mac 2012-04-02 13:24:40.000000000 +0000 +++ virtualbox-4.1.44-dfsg/include/VBox/err.mac 2015-11-11 15:06:01.000000000 +0000 @@ -89,7 +89,7 @@ %define VERR_DBGF_REG_IPE_2 (-1216) %define VERR_DBGF_HYPER_DB_XCPT (-1217) %define VERR_DBGF_STACK_IPE_1 (-1218) -%define VERR_DBGF_STACK_IPE_2 (-1218) +%define VERR_DBGF_STACK_IPE_2 (-1219) %define VWRN_CONTINUE_ANALYSIS 1400 %define VWRN_CONTINUE_RECOMPILE VWRN_CONTINUE_ANALYSIS %define VWRN_PATM_CONTINUE_SEARCH VWRN_CONTINUE_ANALYSIS @@ -288,9 +288,9 @@ %define VERR_VM_THREAD_IS_EMT (-1914) %define VERR_VM_UNEXPECTED_VM_STATE (-1915) %define VERR_VM_UNEXPECTED_UNSTABLE_STATE (-1916) -%define VERR_VM_REQUEST_TOO_MANY_ARGS_IPE (-1017) -%define VERR_VM_FATAL_WAIT_ERROR (-1018) -%define VERR_VM_REQUEST_KILLED (-1019) +%define VERR_VM_REQUEST_TOO_MANY_ARGS_IPE (-1917) +%define VERR_VM_FATAL_WAIT_ERROR (-1918) +%define VERR_VM_REQUEST_KILLED (-1919) %define VINF_VRDP_SUCCESS VINF_SUCCESS %define VERR_VRDP_TIMEOUT VERR_TIMEOUT %define VERR_VRDP_ISO_UNSUPPORTED (-2000) @@ -470,7 +470,6 @@ %define VERR_PDM_TOO_MANY_DEVICE_INSTANCES (-2867) %define VERR_PDM_TOO_MANY_DRIVER_INSTANCES (-2868) %define VERR_PDM_TOO_MANY_USB_DEVICE_INSTANCES (-2869) -%define VERR_PDM_TOO_MANY_USB_DEVICE_INSTANCES (-2869) %define VERR_PDM_DEVINS_VERSION_MISMATCH (-2870) %define VERR_PDM_DEVHLPR3_VERSION_MISMATCH (-2871) %define VERR_PDM_USBINS_VERSION_MISMATCH (-2872) @@ -547,6 +546,7 @@ %define VERR_VD_CACHE_ALREADY_EXISTS (-3274) %define VERR_VD_CACHE_NOT_FOUND (-3275) %define VERR_VD_CACHE_NOT_UP_TO_DATE (-3276) +%define VINF_VD_NEW_ZEROED_BLOCK 3277 %define VERR_VBGL_NOT_INITIALIZED (-3300) %define VERR_VBGL_INVALID_ADDR (-3301) %define VERR_VBGL_IOCTL_FAILED (-3302) @@ -571,6 +571,11 @@ %define VERR_SUPDRV_INTERFACE_NOT_SUPPORTED (-3701) %define VERR_SUPDRV_SERVICE_NOT_FOUND (-3702) %define VERR_SUPDRV_KERNEL_TOO_OLD_FOR_VTX (-3703) +%define VERR_SUPDRV_HARDENING_EVIL_HANDLE (-3738) +%define VERR_SUPDRV_APIPORT_OPEN_ERROR (-3739) +%define VERR_SUPDRV_SESSION_PROCESS_ENUM_ERROR (-3740) +%define VERR_SUPDRV_CSRSS_NOT_FOUND (-3741) +%define VERR_SUPDRV_APIPORT_OPEN_ERROR_TYPE (-3742) %define VERR_SUPLIB_PATH_NOT_ABSOLUTE (-3750) %define VERR_SUPLIB_PATH_NOT_CLEAN (-3751) %define VERR_SUPLIB_PATH_TOO_LONG (-3752) @@ -591,6 +596,12 @@ %define VERR_SUPLIB_WORLD_WRITABLE (-3767) %define VERR_SUPLIB_INVALID_ARGV0_INTERNAL (-3768) %define VERR_SUPLIB_INVALID_INTERNAL_APP_DIR (-3769) +%define VERR_SUPLIB_NT_PROCESS_UNTRUSTED_0 (-3770) +%define VERR_SUPLIB_NT_PROCESS_UNTRUSTED_1 (-3771) +%define VERR_SUPLIB_NT_PROCESS_UNTRUSTED_2 (-3772) +%define VERR_SUPLIB_NT_PROCESS_UNTRUSTED_3 (-3773) +%define VERR_SUPLIB_NT_PROCESS_UNTRUSTED_4 (-3774) +%define VERR_SUPLIB_NT_PROCESS_UNTRUSTED_5 (-3775) %define VERR_GMM_SEED_ME (-3800) %define VERR_GMM_OUT_OF_MEMORY (-3801) %define VERR_GMM_HIT_GLOBAL_LIMIT (-3802) @@ -640,17 +651,33 @@ %define VERR_VMX_VMXON_FAILED (-4010) %define VERR_VMX_IN_VMX_ROOT_MODE (-4011) %define VERR_VMX_X86_CR4_VMXE_CLEARED (-4012) -%define VERR_VMX_MSR_LOCKED_OR_DISABLED (-4013) +%define VERR_VMX_MSR_LOCKING_FAILED (-4013) %define VERR_VMX_INVALID_GUEST_STATE (-4014) %define VERR_VMX_UNEXPECTED_EXIT_CODE (-4015) %define VERR_VMX_UNEXPECTED_EXCEPTION (-4016) %define VERR_VMX_UNEXPECTED_INTERRUPTION_EXIT_CODE (-4017) %define VERR_VMX_NOT_IN_VMX_ROOT_MODE (-4018) +%define VERR_VMX_UNDEFINED_EXIT_CODE (-4019) +%define VERR_VMX_VMPTRLD_FAILED (-4021) +%define VERR_VMX_INVALID_VMCS_PTR_TO_START_VM (-4022) +%define VERR_HMVMX_IPE_1 (-4023) +%define VERR_HMVMX_IPE_2 (-4024) +%define VERR_HMVMX_IPE_3 (-4025) +%define VERR_HMVMX_IPE_4 (-4026) +%define VERR_HMVMX_IPE_5 (-4027) +%define VERR_VMX_MSR_SMX_VMXON_DISABLED (-4028) +%define VERR_VMX_MSR_VMXON_DISABLED (-4029) %define VERR_SVM_UNABLE_TO_START_VM (-4050) %define VERR_SVM_ILLEGAL_EFER_MSR (-4051) %define VERR_SVM_NO_SVM (-4052) %define VERR_SVM_DISABLED (-4053) %define VERR_SVM_IN_USE (-4054) +%define VERR_SVM_INVALID_PVMCB (-4055) +%define VERR_SVM_UNEXPECTED_EXIT (-4056) +%define VERR_SVM_UNEXPECTED_XCPT_EXIT (-4057) +%define VERR_SVM_UNEXPECTED_PATCH_TYPE (-4058) +%define VERR_SVM_INVALID_GUEST_STATE (-4059) +%define VERR_SVM_UNKNOWN_EXIT (-4060) %define VERR_HWACCM_UNKNOWN_CPU (-4100) %define VERR_HWACCM_NO_CPUID (-4101) %define VERR_HWACCM_SUSPEND_PENDING (-4102) @@ -710,6 +737,82 @@ %define VERR_GVMM_BROKEN_IPRT (-5202) %define VERR_GVMM_IPE_1 (-5203) %define VERR_GVMM_IPE_2 (-5204) +%define VERR_SUP_VP_MEMORY_VS_FILE_MISMATCH (-5600) +%define VERR_SUP_VP_SECTION_PROTECTION_MISMATCH (-5601) +%define VERR_SUP_VP_SECTION_NOT_MAPPED (-5602) +%define VERR_SUP_VP_SECTION_NOT_FULLY_MAPPED (-5603) +%define VERR_SUP_VP_BAD_FILE_ALIGNMENT_VALUE (-5604) +%define VERR_SUP_VP_BAD_IMAGE_BASE (-5605) +%define VERR_SUP_VP_BAD_IMAGE_SIGNATURE (-5606) +%define VERR_SUP_VP_BAD_IMAGE_SIZE (-5607) +%define VERR_SUP_VP_BAD_MZ_OFFSET (-5608) +%define VERR_SUP_VP_BAD_OPTIONAL_HEADER (-5609) +%define VERR_SUP_VP_BAD_SECTION_ALIGNMENT_VALUE (-5610) +%define VERR_SUP_VP_BAD_SECTION_FILE_SIZE (-5611) +%define VERR_SUP_VP_BAD_SECTION_RVA (-5612) +%define VERR_SUP_VP_BAD_SECTION_VIRTUAL_SIZE (-5613) +%define VERR_SUP_VP_BAD_SIZE_OF_HEADERS (-5614) +%define VERR_SUP_VP_DEBUGGED (-5615) +%define VERR_SUP_VP_DUPLICATE_DLL_MAPPING (-5616) +%define VERR_SUP_VP_EMPTY_REGION_TOO_LARGE (-5617) +%define VERR_SUP_VP_EXE_VS_PROC_NAME_MISMATCH (-5618) +%define VERR_SUP_VP_FOUND_EXEC_MEMORY (-5619) +%define VERR_SUP_VP_FOUND_MORE_THAN_ONE_EXE_MAPPING (-5620) +%define VERR_SUP_VP_IMAGE_FILE_CLOSE_ERROR (-5621) +%define VERR_SUP_VP_IMAGE_FILE_OPEN_ERROR (-5622) +%define VERR_SUP_VP_IMAGE_HDR_READ_ERROR (-5623) +%define VERR_SUP_VP_IMAGE_MAPPING_BASE_ERROR (-5624) +%define VERR_SUP_VP_MEMORY_READ_ERROR (-5625) +%define VERR_SUP_VP_NO_FOUND_NO_EXE_MAPPING (-5626) +%define VERR_SUP_VP_NO_IMAGE_MAPPING_NAME (-5627) +%define VERR_SUP_VP_NO_KERNEL32_MAPPING (-5628) +%define VERR_SUP_VP_NO_MEMORY (-5629) +%define VERR_SUP_VP_NO_MEMORY_STATE (-5630) +%define VERR_SUP_VP_NO_NTDLL_MAPPING (-5631) +%define VERR_SUP_VP_NON_SYSTEM32_DLL (-5632) +%define VERR_SUP_VP_NOT_KNOWN_DLL_OR_EXE (-5633) +%define VERR_SUP_VP_NT_MAPPING_NAME_CHANGED (-5634) +%define VERR_SUP_VP_NT_QI_PROCESS_NM_ERROR (-5635) +%define VERR_SUP_VP_NT_QI_THREAD_ERROR (-5636) +%define VERR_SUP_VP_NT_QI_VIRTUAL_MEMORY_ERROR (-5637) +%define VERR_SUP_VP_NT_QI_VIRTUAL_MEMORY_NM_ERROR (-5638) +%define VERR_SUP_VP_SYSTEM32_PATH (-5639) +%define VERR_SUP_VP_THREAD_NOT_ALONE (-5640) +%define VERR_SUP_VP_TOO_HIGH_REGION_RVA (-5641) +%define VERR_SUP_VP_TOO_LARGE_REGION (-5642) +%define VERR_SUP_VP_TOO_MANY_DLLS_LOADED (-5643) +%define VERR_SUP_VP_TOO_MANY_IMAGE_REGIONS (-5644) +%define VERR_SUP_VP_TOO_MANY_MEMORY_REGIONS (-5645) +%define VERR_SUP_VP_TOO_MANY_SECTIONS (-5646) +%define VERR_SUP_VP_UNEXPECTED_IMAGE_MACHINE (-5647) +%define VERR_SUP_VP_UNEXPECTED_SECTION_FLAGS (-5648) +%define VERR_SUP_VP_EXE_MISSING_FORCE_INTEGRITY (-5649) +%define VERR_SUP_VP_EXE_MISSING_DYNAMIC_BASE (-5650) +%define VERR_SUP_VP_EXE_MISSING_NX_COMPAT (-5651) +%define VERR_SUP_VP_DLL_CHARECTERISTICS_MISMATCH (-5652) +%define VERR_SUP_VP_IMAGE_CHARECTERISTICS_MISMATCH (-5653) +%define VERR_SUP_VP_NT_QI_PROCESS_IMG_INFO_ERROR (-5654) +%define VERR_SUP_VP_NT_QI_PROCESS_DBG_PORT_ERROR (-5655) +%define VERR_SUP_VP_WINTRUST_CAT_FAILURE (-5656) +%define VERR_SUP_VP_NOT_SIGNED_WITH_BUILD_CERT (-5657) +%define VERR_SUP_VP_NOT_BUILD_CERT_IPE (-5658) +%define VERR_SUP_VP_NOT_VALID_KERNEL_CODE_SIGNATURE (-5659) +%define VERR_SUP_VP_UNEXPECTED_VALID_PATH_COUNT (-5660) +%define VERR_SUP_VP_SIGNATURE_CHECKS_NOT_ENFORCED (-5661) +%define VERR_SUP_VP_SYSFER_DLL (-5662) +%define VERR_SUP_VP_KERNEL32_ALREADY_MAPPED (-5663) +%define VERR_SUP_VP_FREE_VIRTUAL_MEMORY_FAILED (-5664) +%define VERR_SUP_VP_UNMAP_AND_PROTECT_FAILED (-5665) +%define VERR_SUP_VP_UNKOWN_MEM_TYPE (-5666) +%define VERR_SUP_VP_NOT_OWNED_BY_TRUSTED_INSTALLER (-5667) +%define VERR_SUP_VP_IMAGE_TOO_BIG (-5668) +%define VERR_SUP_VP_STUB_NOT_FOUND (-5669) +%define VERR_SUP_VP_STUB_OPEN_ERROR (-5670) +%define VERR_SUP_VP_STUB_THREAD_NOT_FOUND (-5671) +%define VERR_SUP_VP_STUB_THREAD_OPEN_ERROR (-5672) +%define VERR_SUP_VP_REPLACE_VIRTUAL_MEMORY_FAILED (-5673) +%define VERR_SUP_VP_FILE_MODE_ERROR (-5674) +%define VERR_SUP_VP_CREATE_READ_EVT_SEM_FAILED (-5675) %define VERR_EXTPACK_UNSUPPORTED_HOST_UNINSTALL (-6000) %define VERR_EXTPACK_VBOX_VERSION_MISMATCH (-6001) %include "iprt/err.mac" diff -Nru virtualbox-4.1.12-dfsg/include/VBox/intnet.h virtualbox-4.1.44-dfsg/include/VBox/intnet.h --- virtualbox-4.1.12-dfsg/include/VBox/intnet.h 2012-04-02 13:24:40.000000000 +0000 +++ virtualbox-4.1.44-dfsg/include/VBox/intnet.h 2015-11-11 15:06:01.000000000 +0000 @@ -209,11 +209,11 @@ */ typedef struct INTNETHDR { + /** The size of the frame. */ + uint32_t cbFrame : 24; /** Header type. This is currently serving as a magic, it * can be extended later to encode special command frames and stuff. */ - uint16_t u16Type; - /** The size of the frame. */ - uint16_t cbFrame; + uint32_t u8Type : 8; /** The offset from the start of this header to where the actual frame starts. * This is used to keep the frame it self contiguous in virtual memory and * thereby both simplify access as well as the descriptor. */ @@ -231,16 +231,16 @@ AssertCompile(sizeof(INTNETHDR) == INTNETHDR_ALIGNMENT); AssertCompile(INTNETHDR_ALIGNMENT <= INTNETRINGBUF_ALIGNMENT); -/** @name Frame types (INTNETHDR::u16Type). +/** @name Frame types (INTNETHDR::u8Type). * @{ */ /** Normal frames. */ -#define INTNETHDR_TYPE_FRAME 0x2442 +#define INTNETHDR_TYPE_FRAME 0x42 /** Padding frames. */ -#define INTNETHDR_TYPE_PADDING 0x3553 +#define INTNETHDR_TYPE_PADDING 0x53 /** Generic segment offload frames. * The frame starts with a PDMNETWORKGSO structure which is followed by the * header template and data. */ -#define INTNETHDR_TYPE_GSO 0x4664 +#define INTNETHDR_TYPE_GSO 0x64 AssertCompileSize(PDMNETWORKGSO, 8); /** @} */ @@ -252,9 +252,9 @@ { \ AssertPtr(pHdr); \ Assert(RT_ALIGN_PT(pHdr, INTNETHDR_ALIGNMENT, INTNETHDR *) == pHdr); \ - Assert( (pHdr)->u16Type == INTNETHDR_TYPE_FRAME \ - || (pHdr)->u16Type == INTNETHDR_TYPE_GSO \ - || (pHdr)->u16Type == INTNETHDR_TYPE_PADDING); \ + Assert( (pHdr)->u8Type == INTNETHDR_TYPE_FRAME \ + || (pHdr)->u8Type == INTNETHDR_TYPE_GSO \ + || (pHdr)->u8Type == INTNETHDR_TYPE_PADDING); \ { \ uintptr_t const offHdr = (uintptr_t)pHdr - (uintptr_t)pRingBuf; \ uintptr_t const offFrame = offHdr + (pHdr)->offFrame; \ @@ -378,6 +378,25 @@ } INTNETSWDECISION; +/** + * Network layer address type. + */ +typedef enum INTNETADDRTYPE +{ + /** The invalid 0 entry. */ + kIntNetAddrType_Invalid = 0, + /** IP version 4. */ + kIntNetAddrType_IPv4, + /** IP version 6. */ + kIntNetAddrType_IPv6, + /** IPX. */ + kIntNetAddrType_IPX, + /** The end of the valid values. */ + kIntNetAddrType_End, + /** The usual 32-bit hack. */ + kIntNetAddrType_32BitHack = 0x7fffffff +} INTNETADDRTYPE; + /** Pointer to the switch side of a trunk port. */ typedef struct INTNETTRUNKSWPORT *PINTNETTRUNKSWPORT; /** @@ -552,12 +571,29 @@ */ DECLR0CALLBACKMEMBER(void, pfnReportNoPreemptDsts,(PINTNETTRUNKSWPORT pSwitchPort, uint32_t fNoPreemptDsts)); + /** + * Notifications about changes to host IP addresses. + * + * This is used by networks bridged to wifi that share mac with + * the host. Host reports changes to its IP addresses so that L3 + * switching can ingore guests spoofing host's own IP addresses + * + * This callback may be null to indicate we are not interested. + * + * @param pSwitchPort Pointer to this structure. + * @param fAdded Whether address is added of removed. + * @param enmType Address type. + * @param pvAddr Pointer to the address. + */ + DECLR0CALLBACKMEMBER(void, pfnNotifyHostAddress,(PINTNETTRUNKSWPORT pSwitchPort, bool fAdded, + INTNETADDRTYPE enmType, const void *pvAddr)); + /** Structure version number. (INTNETTRUNKSWPORT_VERSION) */ uint32_t u32VersionEnd; } INTNETTRUNKSWPORT; /** Version number for the INTNETTRUNKIFPORT::u32Version and INTNETTRUNKIFPORT::u32VersionEnd fields. */ -#define INTNETTRUNKSWPORT_VERSION UINT32_C(0xA2CDf001) +# define INTNETTRUNKSWPORT_VERSION UINT32_C(0xA2CDf005) /** diff -Nru virtualbox-4.1.12-dfsg/include/VBox/intnetinline.h virtualbox-4.1.44-dfsg/include/VBox/intnetinline.h --- virtualbox-4.1.12-dfsg/include/VBox/intnetinline.h 2012-04-02 13:24:40.000000000 +0000 +++ virtualbox-4.1.44-dfsg/include/VBox/intnetinline.h 2015-11-11 15:06:01.000000000 +0000 @@ -43,13 +43,13 @@ * Valid internal networking frame type. * * @returns true / false. - * @param u16Type The frame type to check. + * @param u8Type The frame type to check. */ -DECLINLINE(bool) IntNetIsValidFrameType(uint16_t u16Type) +DECLINLINE(bool) IntNetIsValidFrameType(uint8_t u8Type) { - if (RT_LIKELY( u16Type == INTNETHDR_TYPE_FRAME - || u16Type == INTNETHDR_TYPE_GSO - || u16Type == INTNETHDR_TYPE_PADDING)) + if (RT_LIKELY( u8Type == INTNETHDR_TYPE_FRAME + || u8Type == INTNETHDR_TYPE_GSO + || u8Type == INTNETHDR_TYPE_PADDING)) return true; return false; } @@ -327,7 +327,7 @@ uint8_t *pu8 = (uint8_t *)pHdr + pHdr->offFrame; #ifdef VBOX_STRICT const uintptr_t off = (uintptr_t)pu8 - (uintptr_t)pBuf; - Assert(IntNetIsValidFrameType(pHdr->u16Type)); + Assert(IntNetIsValidFrameType(pHdr->u8Type)); Assert(off < pBuf->cbBuf); Assert(off + pHdr->cbFrame <= pBuf->cbBuf); #endif @@ -353,7 +353,7 @@ PPDMNETWORKGSO pGso = (PPDMNETWORKGSO)((uint8_t *)pHdr + pHdr->offFrame); #ifdef VBOX_STRICT const uintptr_t off = (uintptr_t)pGso - (uintptr_t)pBuf; - Assert(pHdr->u16Type == INTNETHDR_TYPE_GSO); + Assert(pHdr->u8Type == INTNETHDR_TYPE_GSO); Assert(off < pBuf->cbBuf); Assert(off + pHdr->cbFrame <= pBuf->cbBuf); #endif @@ -374,7 +374,7 @@ Assert(offReadOld >= pRingBuf->offStart); Assert(offReadOld < pRingBuf->offEnd); Assert(RT_ALIGN_PT(pHdr, INTNETHDR_ALIGNMENT, INTNETHDR *) == pHdr); - Assert(IntNetIsValidFrameType(pHdr->u16Type)); + Assert(IntNetIsValidFrameType(pHdr->u8Type)); /* skip the frame */ uint32_t offReadNew = offReadOld + pHdr->offFrame + pHdr->cbFrame; @@ -401,7 +401,7 @@ * Don't touch this! * @param ppvFrame Where to return the frame pointer. */ -DECLINLINE(int) intnetRingAllocateFrameInternal(PINTNETRINGBUF pRingBuf, uint32_t cbFrame, uint16_t u16Type, +DECLINLINE(int) intnetRingAllocateFrameInternal(PINTNETRINGBUF pRingBuf, uint32_t cbFrame, uint8_t u8Type, PINTNETHDR *ppHdr, void **ppvFrame) { /* @@ -425,11 +425,11 @@ offNew = pRingBuf->offStart; if (RT_UNLIKELY(!ASMAtomicCmpXchgU32(&pRingBuf->offWriteInt, offNew, offWriteInt))) return VERR_WRONG_ORDER; /* race */ - Log2(("intnetRingAllocateFrameInternal: offWriteInt: %#x -> %#x (1) (R=%#x T=%#x S=%#x)\n", offWriteInt, offNew, offRead, u16Type, cbFrame)); + Log2(("intnetRingAllocateFrameInternal: offWriteInt: %#x -> %#x (1) (R=%#x T=%#x S=%#x)\n", offWriteInt, offNew, offRead, u8Type, cbFrame)); PINTNETHDR pHdr = (PINTNETHDR)((uint8_t *)pRingBuf + offWriteInt); - pHdr->u16Type = u16Type; - pHdr->cbFrame = (uint16_t)cbFrame; Assert(pHdr->cbFrame == cbFrame); + pHdr->u8Type = u8Type; + pHdr->cbFrame = cbFrame; Assert(pHdr->cbFrame == cbFrame); pHdr->offFrame = sizeof(INTNETHDR); *ppHdr = pHdr; @@ -446,11 +446,11 @@ uint32_t offNew = pRingBuf->offStart + cb; if (RT_UNLIKELY(!ASMAtomicCmpXchgU32(&pRingBuf->offWriteInt, offNew, offWriteInt))) return VERR_WRONG_ORDER; /* race */ - Log2(("intnetRingAllocateFrameInternal: offWriteInt: %#x -> %#x (2) (R=%#x T=%#x S=%#x)\n", offWriteInt, offNew, offRead, u16Type, cbFrame)); + Log2(("intnetRingAllocateFrameInternal: offWriteInt: %#x -> %#x (2) (R=%#x T=%#x S=%#x)\n", offWriteInt, offNew, offRead, u8Type, cbFrame)); PINTNETHDR pHdr = (PINTNETHDR)((uint8_t *)pRingBuf + offWriteInt); - pHdr->u16Type = u16Type; - pHdr->cbFrame = (uint16_t)cbFrame; Assert(pHdr->cbFrame == cbFrame); + pHdr->u8Type = u8Type; + pHdr->cbFrame = cbFrame; Assert(pHdr->cbFrame == cbFrame); pHdr->offFrame = pRingBuf->offStart - offWriteInt; *ppHdr = pHdr; @@ -466,11 +466,11 @@ uint32_t offNew = offWriteInt + cb + sizeof(INTNETHDR); if (RT_UNLIKELY(!ASMAtomicCmpXchgU32(&pRingBuf->offWriteInt, offNew, offWriteInt))) return VERR_WRONG_ORDER; /* race */ - Log2(("intnetRingAllocateFrameInternal: offWriteInt: %#x -> %#x (3) (R=%#x T=%#x S=%#x)\n", offWriteInt, offNew, offRead, u16Type, cbFrame)); + Log2(("intnetRingAllocateFrameInternal: offWriteInt: %#x -> %#x (3) (R=%#x T=%#x S=%#x)\n", offWriteInt, offNew, offRead, u8Type, cbFrame)); PINTNETHDR pHdr = (PINTNETHDR)((uint8_t *)pRingBuf + offWriteInt); - pHdr->u16Type = u16Type; - pHdr->cbFrame = (uint16_t)cbFrame; Assert(pHdr->cbFrame == cbFrame); + pHdr->u8Type = u8Type; + pHdr->cbFrame = cbFrame; Assert(pHdr->cbFrame == cbFrame); pHdr->offFrame = sizeof(INTNETHDR); *ppHdr = pHdr; @@ -560,7 +560,7 @@ Assert(offWriteCom == pRingBuf->offEnd); offWriteCom = pRingBuf->offStart; } - Log2(("IntNetRingCommitFrame: offWriteCom: %#x -> %#x (R=%#x T=%#x S=%#x)\n", pRingBuf->offWriteCom, offWriteCom, pRingBuf->offReadX, pHdr->u16Type, cbFrame)); + Log2(("IntNetRingCommitFrame: offWriteCom: %#x -> %#x (R=%#x T=%#x S=%#x)\n", pRingBuf->offWriteCom, offWriteCom, pRingBuf->offReadX, pHdr->u8Type, cbFrame)); ASMAtomicWriteU32(&pRingBuf->offWriteCom, offWriteCom); STAM_REL_COUNTER_ADD(&pRingBuf->cbStatWritten, cbFrame); STAM_REL_COUNTER_INC(&pRingBuf->cStatFrames); @@ -588,7 +588,7 @@ INTNETHDR_ASSERT_SANITY(pHdr, pRingBuf); Assert(pRingBuf->offWriteCom == ((uintptr_t)pHdr - (uintptr_t)pRingBuf)); - if (pHdr->u16Type == INTNETHDR_TYPE_GSO) + if (pHdr->u8Type == INTNETHDR_TYPE_GSO) cbUsed += sizeof(PDMNETWORKGSO); /* @@ -612,13 +612,14 @@ { /** @todo Later: Try unallocate the extra memory. */ PINTNETHDR pHdrPadding = (PINTNETHDR)((uint8_t *)pHdr + pHdr->offFrame + cbAlignedUsed); - pHdrPadding->u16Type = INTNETHDR_TYPE_PADDING; - pHdrPadding->cbFrame = (uint16_t)(cbAlignedFrame - cbAlignedUsed - sizeof(INTNETHDR)); + pHdrPadding->u8Type = INTNETHDR_TYPE_PADDING; + pHdrPadding->cbFrame = cbAlignedFrame - cbAlignedUsed - (uint32_t)sizeof(INTNETHDR); + Assert(pHdrPadding->cbFrame == cbAlignedFrame - cbAlignedUsed - sizeof(INTNETHDR)); pHdrPadding->offFrame = sizeof(INTNETHDR); - pHdr->cbFrame = (uint16_t)cbUsed; + pHdr->cbFrame = (uint32_t)cbUsed; Assert(pHdr->cbFrame == cbUsed); } - Log2(("IntNetRingCommitFrameEx: offWriteCom: %#x -> %#x (R=%#x T=%#x S=%#x P=%#x)\n", pRingBuf->offWriteCom, offWriteCom, pRingBuf->offReadX, pHdr->u16Type, pHdr->cbFrame, cbAlignedFrame - cbAlignedUsed)); + Log2(("IntNetRingCommitFrameEx: offWriteCom: %#x -> %#x (R=%#x T=%#x S=%#x P=%#x)\n", pRingBuf->offWriteCom, offWriteCom, pRingBuf->offReadX, pHdr->u8Type, pHdr->cbFrame, cbAlignedFrame - cbAlignedUsed)); ASMAtomicWriteU32(&pRingBuf->offWriteCom, offWriteCom); STAM_REL_COUNTER_ADD(&pRingBuf->cbStatWritten, cbUsed); STAM_REL_COUNTER_INC(&pRingBuf->cStatFrames); @@ -664,8 +665,8 @@ Log2(("IntNetRingWriteFrame: offWriteInt: %#x -> %#x (1)\n", offWriteInt, offNew)); PINTNETHDR pHdr = (PINTNETHDR)((uint8_t *)pRingBuf + offWriteInt); - pHdr->u16Type = INTNETHDR_TYPE_FRAME; - pHdr->cbFrame = (uint16_t)cbFrame; Assert(pHdr->cbFrame == cbFrame); + pHdr->u8Type = INTNETHDR_TYPE_FRAME; + pHdr->cbFrame = (uint32_t)cbFrame; Assert(pHdr->cbFrame == cbFrame); pHdr->offFrame = sizeof(INTNETHDR); memcpy(pHdr + 1, pvFrame, cbFrame); @@ -689,8 +690,8 @@ Log2(("IntNetRingWriteFrame: offWriteInt: %#x -> %#x (2)\n", offWriteInt, offNew)); PINTNETHDR pHdr = (PINTNETHDR)((uint8_t *)pRingBuf + offWriteInt); - pHdr->u16Type = INTNETHDR_TYPE_FRAME; - pHdr->cbFrame = (uint16_t)cbFrame; Assert(pHdr->cbFrame == cbFrame); + pHdr->u8Type = INTNETHDR_TYPE_FRAME; + pHdr->cbFrame = (uint32_t)cbFrame; Assert(pHdr->cbFrame == cbFrame); pHdr->offFrame = pRingBuf->offStart - offWriteInt; memcpy((uint8_t *)pRingBuf + pRingBuf->offStart, pvFrame, cbFrame); @@ -713,8 +714,8 @@ Log2(("IntNetRingWriteFrame: offWriteInt: %#x -> %#x (3)\n", offWriteInt, offNew)); PINTNETHDR pHdr = (PINTNETHDR)((uint8_t *)pRingBuf + offWriteInt); - pHdr->u16Type = INTNETHDR_TYPE_FRAME; - pHdr->cbFrame = (uint16_t)cbFrame; Assert(pHdr->cbFrame == cbFrame); + pHdr->u8Type = INTNETHDR_TYPE_FRAME; + pHdr->cbFrame = (uint32_t)cbFrame; Assert(pHdr->cbFrame == cbFrame); pHdr->offFrame = sizeof(INTNETHDR); memcpy(pHdr + 1, pvFrame, cbFrame); diff -Nru virtualbox-4.1.12-dfsg/include/VBox/RemoteDesktop/VRDESCard.h virtualbox-4.1.44-dfsg/include/VBox/RemoteDesktop/VRDESCard.h --- virtualbox-4.1.12-dfsg/include/VBox/RemoteDesktop/VRDESCard.h 1970-01-01 00:00:00.000000000 +0000 +++ virtualbox-4.1.44-dfsg/include/VBox/RemoteDesktop/VRDESCard.h 2015-11-11 15:06:00.000000000 +0000 @@ -0,0 +1,515 @@ +/** @file + * VBox Remote Desktop Extension (VRDE) - SmartCard interface. + */ + +/* + * Copyright (C) 2011-2012 Oracle Corporation + * + * This file is part of VirtualBox Open Source Edition (OSE), as + * available from http://www.virtualbox.org. This file is free software; + * you can redistribute it and/or modify it under the terms of the GNU + * General Public License (GPL) as published by the Free Software + * Foundation, in version 2 as it comes in the "COPYING" file of the + * VirtualBox OSE distribution. VirtualBox OSE is distributed in the + * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind. + * + * The contents of this file may alternatively be used under the terms + * of the Common Development and Distribution License Version 1.0 + * (CDDL) only, as it comes in the "COPYING.CDDL" file of the + * VirtualBox OSE distribution, in which case the provisions of the + * CDDL are applicable instead of those of the GPL. + * + * You may elect to license modified versions of this file under the + * terms and conditions of either the GPL or the CDDL or both. + */ + +#ifndef ___VBox_RemoteDesktop_VRDESCard_h +#define ___VBox_RemoteDesktop_VRDESCard_h + +#include + +/* + * Interface for accessing the smart card reader devices on the client. + * + * Async callbacks are used for providing feedback, reporting errors, etc. + * + * The caller prepares a VRDESCARD*REQ structure and submits it. + */ + +#define VRDE_SCARD_INTERFACE_NAME "SCARD" + +/** The VRDE server smart card access interface entry points. Interface version 1. */ +typedef struct VRDESCARDINTERFACE +{ + /** The header. */ + VRDEINTERFACEHDR header; + + /** Submit an async IO request to the client. + * + * @param hServer The VRDE server instance. + * @param pvUser The callers context of this request. + * @param u32Function The function: VRDE_SCARD_FN_*. + * @param pvData Function specific data: VRDESCARD*REQ. + * @param cbData Size of data. + * + * @return IPRT status code. + */ + DECLR3CALLBACKMEMBER(int, VRDESCardRequest, (HVRDESERVER hServer, + void *pvUser, + uint32_t u32Function, + const void *pvData, + uint32_t cbData)); + +} VRDESCARDINTERFACE; + +/* Smartcard interface callbacks. */ +typedef struct VRDESCARDCALLBACKS +{ + /** The header. */ + VRDEINTERFACEHDR header; + + /** Notifications. + * + * @param pvContext The callbacks context specified in VRDEGetInterface. + * @param u32Id The notification identifier: VRDE_SCARD_NOTIFY_*. + * @param pvData The notification specific data. + * @param cbData The size of buffer pointed by pvData. + * + * @return IPRT status code. + */ + DECLR3CALLBACKMEMBER(int, VRDESCardCbNotify, (void *pvContext, + uint32_t u32Id, + void *pvData, + uint32_t cbData)); + + /** IO response. + * + * @param pvContext The callbacks context specified in VRDEGetInterface. + * @param rcRequest The IPRT status code for the request. + * @param pvUser The pvUser parameter of VRDESCardRequest. + * @param u32Function The completed function: VRDE_SCARD_FN_*. + * @param pvData Function specific response data: VRDESCARD*RSP. + * @param cbData The size of the buffer pointed by pvData. + * + * @return IPRT status code. + */ + DECLR3CALLBACKMEMBER(int, VRDESCardCbResponse, (void *pvContext, + int rcRequest, + void *pvUser, + uint32_t u32Function, + void *pvData, + uint32_t cbData)); +} VRDESCARDCALLBACKS; + + +/* + * Notifications. + * u32Id parameter of VRDESCARDCALLBACKS::VRDESCardCbNotify. + */ + +#define VRDE_SCARD_NOTIFY_ATTACH 1 /* A SCARD RDPDR device has been attached. */ +#define VRDE_SCARD_NOTIFY_DETACH 2 /* A SCARD RDPDR device has been detached. */ + +/* + * Notifications. + * Data structures: pvData of VRDESCARDCALLBACKS::VRDESCardCbNotify. + */ +typedef struct VRDESCARDNOTIFYATTACH +{ + uint32_t u32ClientId; + uint32_t u32DeviceId; +} VRDESCARDNOTIFYATTACH; + +typedef struct VRDESCARDNOTIFYDETACH +{ + uint32_t u32ClientId; + uint32_t u32DeviceId; +} VRDESCARDNOTIFYDETACH; + + +/* + * IO request codes. + * Must be not 0, which is used internally. + */ + +#define VRDE_SCARD_FN_ESTABLISHCONTEXT 1 +#define VRDE_SCARD_FN_LISTREADERS 2 +#define VRDE_SCARD_FN_RELEASECONTEXT 3 +#define VRDE_SCARD_FN_GETSTATUSCHANGE 4 +#define VRDE_SCARD_FN_CANCEL 5 +#define VRDE_SCARD_FN_CONNECT 6 +#define VRDE_SCARD_FN_RECONNECT 7 +#define VRDE_SCARD_FN_DISCONNECT 8 +#define VRDE_SCARD_FN_BEGINTRANSACTION 9 +#define VRDE_SCARD_FN_ENDTRANSACTION 10 +#define VRDE_SCARD_FN_STATE 11 +#define VRDE_SCARD_FN_STATUS 12 +#define VRDE_SCARD_FN_TRANSMIT 13 +#define VRDE_SCARD_FN_CONTROL 14 +#define VRDE_SCARD_FN_GETATTRIB 15 +#define VRDE_SCARD_FN_SETATTRIB 16 + +#define VRDE_SCARD_MAX_READERS 10 +#define VRDE_SCARD_MAX_ATR_LENGTH 36 +#define VRDE_SCARD_MAX_PCI_DATA 1024 + +#define VRDE_SCARD_S_SUCCESS 0x00000000 +#define VRDE_SCARD_F_INTERNAL_ERROR 0x80100001 +#define VRDE_SCARD_E_CANCELLED 0x80100002 +#define VRDE_SCARD_E_INVALID_HANDLE 0x80100003 +#define VRDE_SCARD_E_INVALID_PARAMETER 0x80100004 +#define VRDE_SCARD_E_INVALID_TARGET 0x80100005 +#define VRDE_SCARD_E_NO_MEMORY 0x80100006 +#define VRDE_SCARD_F_WAITED_TOO_LONG 0x80100007 +#define VRDE_SCARD_E_INSUFFICIENT_BUFFER 0x80100008 +#define VRDE_SCARD_E_UNKNOWN_READER 0x80100009 +#define VRDE_SCARD_E_TIMEOUT 0x8010000A +#define VRDE_SCARD_E_SHARING_VIOLATION 0x8010000B +#define VRDE_SCARD_E_NO_SMARTCARD 0x8010000C +#define VRDE_SCARD_E_UNKNOWN_CARD 0x8010000D +#define VRDE_SCARD_E_CANT_DISPOSE 0x8010000E +#define VRDE_SCARD_E_PROTO_MISMATCH 0x8010000F +#define VRDE_SCARD_E_NOT_READY 0x80100010 +#define VRDE_SCARD_E_INVALID_VALUE 0x80100011 +#define VRDE_SCARD_E_SYSTEM_CANCELLED 0x80100012 +#define VRDE_SCARD_F_COMM_ERROR 0x80100013 +#define VRDE_SCARD_F_UNKNOWN_ERROR 0x80100014 +#define VRDE_SCARD_E_INVALID_ATR 0x80100015 +#define VRDE_SCARD_E_NOT_TRANSACTED 0x80100016 +#define VRDE_SCARD_E_READER_UNAVAILABLE 0x80100017 +#define VRDE_SCARD_P_SHUTDOWN 0x80100018 +#define VRDE_SCARD_E_PCI_TOO_SMALL 0x80100019 +#define VRDE_SCARD_E_ICC_INSTALLATION 0x80100020 +#define VRDE_SCARD_E_ICC_CREATEORDER 0x80100021 +#define VRDE_SCARD_E_UNSUPPORTED_FEATURE 0x80100022 +#define VRDE_SCARD_E_DIR_NOT_FOUND 0x80100023 +#define VRDE_SCARD_E_FILE_NOT_FOUND 0x80100024 +#define VRDE_SCARD_E_NO_DIR 0x80100025 +#define VRDE_SCARD_E_READER_UNSUPPORTED 0x8010001A +#define VRDE_SCARD_E_DUPLICATE_READER 0x8010001B +#define VRDE_SCARD_E_CARD_UNSUPPORTED 0x8010001C +#define VRDE_SCARD_E_NO_SERVICE 0x8010001D +#define VRDE_SCARD_E_SERVICE_STOPPED 0x8010001E +#define VRDE_SCARD_E_UNEXPECTED 0x8010001F +#define VRDE_SCARD_E_NO_FILE 0x80100026 +#define VRDE_SCARD_E_NO_ACCESS 0x80100027 +#define VRDE_SCARD_E_WRITE_TOO_MANY 0x80100028 +#define VRDE_SCARD_E_BAD_SEEK 0x80100029 +#define VRDE_SCARD_E_INVALID_CHV 0x8010002A +#define VRDE_SCARD_E_UNKNOWN_RES_MSG 0x8010002B +#define VRDE_SCARD_E_NO_SUCH_CERTIFICATE 0x8010002C +#define VRDE_SCARD_E_CERTIFICATE_UNAVAILABLE 0x8010002D +#define VRDE_SCARD_E_NO_READERS_AVAILABLE 0x8010002E +#define VRDE_SCARD_E_COMM_DATA_LOST 0x8010002F +#define VRDE_SCARD_E_NO_KEY_CONTAINER 0x80100030 +#define VRDE_SCARD_E_SERVER_TOO_BUSY 0x80100031 +#define VRDE_SCARD_E_PIN_CACHE_EXPIRED 0x80100032 +#define VRDE_SCARD_E_NO_PIN_CACHE 0x80100033 +#define VRDE_SCARD_E_READ_ONLY_CARD 0x80100034 +#define VRDE_SCARD_W_UNSUPPORTED_CARD 0x80100065 +#define VRDE_SCARD_W_UNRESPONSIVE_CARD 0x80100066 +#define VRDE_SCARD_W_UNPOWERED_CARD 0x80100067 +#define VRDE_SCARD_W_RESET_CARD 0x80100068 +#define VRDE_SCARD_W_REMOVED_CARD 0x80100069 +#define VRDE_SCARD_W_SECURITY_VIOLATION 0x8010006A +#define VRDE_SCARD_W_WRONG_CHV 0x8010006B +#define VRDE_SCARD_W_CHV_BLOCKED 0x8010006C +#define VRDE_SCARD_W_EOF 0x8010006D +#define VRDE_SCARD_W_CANCELLED_BY_USER 0x8010006E +#define VRDE_SCARD_W_CARD_NOT_AUTHENTICATED 0x8010006F +#define VRDE_SCARD_W_CACHE_ITEM_NOT_FOUND 0x80100070 +#define VRDE_SCARD_W_CACHE_ITEM_STALE 0x80100071 +#define VRDE_SCARD_W_CACHE_ITEM_TOO_BIG 0x80100072 + +#define VRDE_SCARD_STATE_UNAWARE 0x0000 +#define VRDE_SCARD_STATE_IGNORE 0x0001 +#define VRDE_SCARD_STATE_CHANGED 0x0002 +#define VRDE_SCARD_STATE_UNKNOWN 0x0004 +#define VRDE_SCARD_STATE_UNAVAILABLE 0x0008 +#define VRDE_SCARD_STATE_EMPTY 0x0010 +#define VRDE_SCARD_STATE_PRESENT 0x0020 +#define VRDE_SCARD_STATE_ATRMATCH 0x0040 +#define VRDE_SCARD_STATE_EXCLUSIVE 0x0080 +#define VRDE_SCARD_STATE_INUSE 0x0100 +#define VRDE_SCARD_STATE_MUTE 0x0200 +#define VRDE_SCARD_STATE_UNPOWERED 0x0400 +#define VRDE_SCARD_STATE_MASK UINT32_C(0x0000FFFF) +#define VRDE_SCARD_STATE_COUNT_MASK UINT32_C(0xFFFF0000) + +#define VRDE_SCARD_PROTOCOL_UNDEFINED 0x00000000 +#define VRDE_SCARD_PROTOCOL_T0 0x00000001 +#define VRDE_SCARD_PROTOCOL_T1 0x00000002 +#define VRDE_SCARD_PROTOCOL_Tx 0x00000003 +#define VRDE_SCARD_PROTOCOL_RAW 0x00010000 + +#define VRDE_SCARD_PROTOCOL_DEFAULT 0x80000000 +#define VRDE_SCARD_PROTOCOL_OPTIMAL 0x00000000 + +#define VRDE_SCARD_SHARE_EXCLUSIVE 0x00000001 +#define VRDE_SCARD_SHARE_SHARED 0x00000002 +#define VRDE_SCARD_SHARE_DIRECT 0x00000003 + +/* u32Initialization, u32Disposition */ +#define VRDE_SCARD_LEAVE_CARD 0x00000000 +#define VRDE_SCARD_RESET_CARD 0x00000001 +#define VRDE_SCARD_UNPOWER_CARD 0x00000002 +#define VRDE_SCARD_EJECT_CARD 0x00000003 + +/* VRDESCARDSTATUSRSP::u32State */ +#define VRDE_SCARD_UNKNOWN 0x00000000 +#define VRDE_SCARD_ABSENT 0x00000001 +#define VRDE_SCARD_PRESENT 0x00000002 +#define VRDE_SCARD_SWALLOWED 0x00000003 +#define VRDE_SCARD_POWERED 0x00000004 +#define VRDE_SCARD_NEGOTIABLE 0x00000005 +#define VRDE_SCARD_SPECIFICMODE 0x00000006 + + +/* + * IO request data structures. + */ +typedef struct VRDESCARDCONTEXT +{ + uint32_t u32ContextSize; + uint8_t au8Context[16]; +} VRDESCARDCONTEXT; + +typedef struct VRDESCARDHANDLE +{ + VRDESCARDCONTEXT Context; + uint32_t u32HandleSize; + uint8_t au8Handle[16]; +} VRDESCARDHANDLE; + +typedef struct VRDESCARDREADERSTATECALL +{ + char *pszReader; /* UTF8 */ + uint32_t u32CurrentState; /* VRDE_SCARD_STATE_* */ +} VRDESCARDREADERSTATECALL; + +typedef struct VRDESCARDREADERSTATERETURN +{ + uint32_t u32CurrentState; /* VRDE_SCARD_STATE_* */ + uint32_t u32EventState; /* VRDE_SCARD_STATE_* */ + uint32_t u32AtrLength; + uint8_t au8Atr[VRDE_SCARD_MAX_ATR_LENGTH]; +} VRDESCARDREADERSTATERETURN; + +typedef struct VRDESCARDPCI +{ + uint32_t u32Protocol; /* VRDE_SCARD_PROTOCOL_* */ + uint32_t u32PciLength; /* Includes u32Protocol and u32PciLength fields. 8 if no data in au8PciData. */ + uint8_t au8PciData[VRDE_SCARD_MAX_PCI_DATA]; +} VRDESCARDPCI; + +typedef struct VRDESCARDESTABLISHCONTEXTREQ +{ + uint32_t u32ClientId; + uint32_t u32DeviceId; +} VRDESCARDESTABLISHCONTEXTREQ; + +typedef struct VRDESCARDESTABLISHCONTEXTRSP +{ + uint32_t u32ReturnCode; + VRDESCARDCONTEXT Context; +} VRDESCARDESTABLISHCONTEXTRSP; + +typedef struct VRDESCARDLISTREADERSREQ +{ + VRDESCARDCONTEXT Context; +} VRDESCARDLISTREADERSREQ; + +typedef struct VRDESCARDLISTREADERSRSP +{ + uint32_t u32ReturnCode; + uint32_t cReaders; + char *apszNames[VRDE_SCARD_MAX_READERS]; /* UTF8 */ +} VRDESCARDLISTREADERSRSP; + +typedef struct VRDESCARDRELEASECONTEXTREQ +{ + VRDESCARDCONTEXT Context; +} VRDESCARDRELEASECONTEXTREQ; + +typedef struct VRDESCARDRELEASECONTEXTRSP +{ + uint32_t u32ReturnCode; +} VRDESCARDRELEASECONTEXTRSP; + +typedef struct VRDESCARDGETSTATUSCHANGEREQ +{ + VRDESCARDCONTEXT Context; + uint32_t u32Timeout; /* Milliseconds. 0xFFFFFFFF = INFINITE */ + uint32_t cReaders; + VRDESCARDREADERSTATECALL aReaderStates[VRDE_SCARD_MAX_READERS]; +} VRDESCARDGETSTATUSCHANGEREQ; + +typedef struct VRDESCARDGETSTATUSCHANGERSP +{ + uint32_t u32ReturnCode; + uint32_t cReaders; + VRDESCARDREADERSTATERETURN aReaderStates[VRDE_SCARD_MAX_READERS]; +} VRDESCARDGETSTATUSCHANGERSP; + +typedef struct VRDESCARDCANCELREQ +{ + VRDESCARDCONTEXT Context; +} VRDESCARDCANCELREQ; + +typedef struct VRDESCARDCANCELRSP +{ + uint32_t u32ReturnCode; +} VRDESCARDCANCELRSP; + +typedef struct VRDESCARDCONNECTREQ +{ + VRDESCARDCONTEXT Context; + char *pszReader; /* UTF8 */ + uint32_t u32ShareMode; /* VRDE_SCARD_SHARE_* */ + uint32_t u32PreferredProtocols; +} VRDESCARDCONNECTREQ; + +typedef struct VRDESCARDCONNECTRSP +{ + uint32_t u32ReturnCode; + VRDESCARDHANDLE hCard; + uint32_t u32ActiveProtocol; +} VRDESCARDCONNECTRSP; + +typedef struct VRDESCARDRECONNECTREQ +{ + VRDESCARDHANDLE hCard; + uint32_t u32ShareMode; + uint32_t u32PreferredProtocols; + uint32_t u32Initialization; +} VRDESCARDRECONNECTREQ; + +typedef struct VRDESCARDRECONNECTRSP +{ + uint32_t u32ReturnCode; + uint32_t u32ActiveProtocol; +} VRDESCARDRECONNECTRSP; + +typedef struct VRDESCARDDISCONNECTREQ +{ + VRDESCARDHANDLE hCard; + uint32_t u32Disposition; +} VRDESCARDDISCONNECTREQ; + +typedef struct VRDESCARDDISCONNECTRSP +{ + uint32_t u32ReturnCode; +} VRDESCARDDISCONNECTRSP; + +typedef struct VRDESCARDBEGINTRANSACTIONREQ +{ + VRDESCARDHANDLE hCard; + uint32_t u32Disposition; +} VRDESCARDBEGINTRANSACTIONREQ; + +typedef struct VRDESCARDBEGINTRANSACTIONRSP +{ + uint32_t u32ReturnCode; +} VRDESCARDBEGINTRANSACTIONRSP; + +typedef struct VRDESCARDENDTRANSACTIONREQ +{ + VRDESCARDHANDLE hCard; + uint32_t u32Disposition; +} VRDESCARDENDTRANSACTIONREQ; + +typedef struct VRDESCARDENDTRANSACTIONRSP +{ + uint32_t u32ReturnCode; +} VRDESCARDENDTRANSACTIONRSP; + +typedef struct VRDESCARDSTATEREQ +{ + VRDESCARDHANDLE hCard; +} VRDESCARDSTATEREQ; + +typedef struct VRDESCARDSTATERSP +{ + uint32_t u32ReturnCode; + uint32_t u32State; + uint32_t u32Protocol; + uint32_t u32AtrLength; + uint8_t au8Atr[VRDE_SCARD_MAX_ATR_LENGTH]; +} VRDESCARDSTATERSP; + +typedef struct VRDESCARDSTATUSREQ +{ + VRDESCARDHANDLE hCard; +} VRDESCARDSTATUSREQ; + +typedef struct VRDESCARDSTATUSRSP +{ + uint32_t u32ReturnCode; + char *szReader; + uint32_t u32State; + uint32_t u32Protocol; + uint32_t u32AtrLength; + uint8_t au8Atr[VRDE_SCARD_MAX_ATR_LENGTH]; +} VRDESCARDSTATUSRSP; + +typedef struct VRDESCARDTRANSMITREQ +{ + VRDESCARDHANDLE hCard; + VRDESCARDPCI ioSendPci; + uint32_t u32SendLength; + uint8_t *pu8SendBuffer; + uint32_t u32RecvLength; +} VRDESCARDTRANSMITREQ; + +typedef struct VRDESCARDTRANSMITRSP +{ + uint32_t u32ReturnCode; + VRDESCARDPCI ioRecvPci; + uint32_t u32RecvLength; + uint8_t *pu8RecvBuffer; +} VRDESCARDTRANSMITRSP; + +typedef struct VRDESCARDCONTROLREQ +{ + VRDESCARDHANDLE hCard; + uint32_t u32ControlCode; + uint32_t u32InBufferSize; + uint8_t *pu8InBuffer; + uint32_t u32OutBufferSize; +} VRDESCARDCONTROLREQ; + +typedef struct VRDESCARDCONTROLRSP +{ + uint32_t u32ReturnCode; + uint32_t u32OutBufferSize; + uint8_t *pu8OutBuffer; +} VRDESCARDCONTROLRSP; + +typedef struct VRDESCARDGETATTRIBREQ +{ + VRDESCARDHANDLE hCard; + uint32_t u32AttrId; + uint32_t u32AttrLen; +} VRDESCARDGETATTRIBREQ; + +typedef struct VRDESCARDGETATTRIBRSP +{ + uint32_t u32ReturnCode; + uint32_t u32AttrLength; + uint8_t *pu8Attr; +} VRDESCARDGETATTRIBRSP; + +typedef struct VRDESCARDSETATTRIBREQ +{ + VRDESCARDHANDLE hCard; + uint32_t u32AttrId; + uint32_t u32AttrLen; + uint8_t *pu8Attr; +} VRDESCARDSETATTRIBREQ; + +typedef struct VRDESCARDSETATTRIBRSP +{ + uint32_t u32ReturnCode; +} VRDESCARDSETATTRIBRSP; + +#endif diff -Nru virtualbox-4.1.12-dfsg/include/VBox/settings.h virtualbox-4.1.44-dfsg/include/VBox/settings.h --- virtualbox-4.1.12-dfsg/include/VBox/settings.h 2012-04-02 13:24:40.000000000 +0000 +++ virtualbox-4.1.44-dfsg/include/VBox/settings.h 2015-11-11 15:06:01.000000000 +0000 @@ -781,6 +781,8 @@ ChipsetType_T chipsetType; // requires settings version 1.11 (VirtualBox 4.0) + bool fEmulatedUSBCardReader; // 1.12 (VirtualBox 4.1) + VRDESettings vrdeSettings; BIOSSettings biosSettings; diff -Nru virtualbox-4.1.12-dfsg/include/VBox/shflsvc.h virtualbox-4.1.44-dfsg/include/VBox/shflsvc.h --- virtualbox-4.1.12-dfsg/include/VBox/shflsvc.h 2012-04-02 13:24:40.000000000 +0000 +++ virtualbox-4.1.44-dfsg/include/VBox/shflsvc.h 2015-11-11 15:06:01.000000000 +0000 @@ -204,14 +204,14 @@ } /** - * Validates a HGCM string parameter. + * Validates a HGCM string output parameter. * * @returns true if valid, false if not. * * @param pString The string buffer pointer. * @param cbBuf The buffer size from the parameter. */ -DECLINLINE(bool) ShflStringIsValid(PCSHFLSTRING pString, uint32_t cbBuf) +DECLINLINE(bool) ShflStringIsValidOut(PCSHFLSTRING pString, uint32_t cbBuf) { if (RT_UNLIKELY(cbBuf <= RT_UOFFSETOF(SHFLSTRING, String))) return false; @@ -223,17 +223,57 @@ } /** - * Validates an optional HGCM string parameter. + * Validates a HGCM string input parameter. + * + * @returns true if valid, false if not. + * + * @param pString The string buffer pointer. + * @param cbBuf The buffer size from the parameter. + * @param fUtf8Not16 Set if UTF-8 encoding, clear if UTF-16 encoding. + */ +DECLINLINE(bool) ShflStringIsValidIn(PCSHFLSTRING pString, uint32_t cbBuf, bool fUtf8Not16) +{ + int rc; + if (RT_UNLIKELY(cbBuf <= RT_UOFFSETOF(SHFLSTRING, String))) + return false; + if (RT_UNLIKELY((uint32_t)pString->u16Size + RT_UOFFSETOF(SHFLSTRING, String) > cbBuf)) + return false; + if (fUtf8Not16) + { + /* UTF-8: */ + if (RT_UNLIKELY(pString->u16Length >= pString->u16Size)) + return false; + rc = RTStrValidateEncodingEx((const char *)&pString->String.utf8[0], pString->u16Length + 1, + RTSTR_VALIDATE_ENCODING_EXACT_LENGTH | RTSTR_VALIDATE_ENCODING_ZERO_TERMINATED); + } + else + { + /* UTF-16: */ + if (RT_UNLIKELY(pString->u16Length & 1)) + return false; + if (RT_UNLIKELY((uint32_t)sizeof(RTUTF16) + pString->u16Length > pString->u16Size)) + return false; + rc = RTUtf16ValidateEncodingEx(&pString->String.ucs2[0], pString->u16Length / 2 + 1, + RTSTR_VALIDATE_ENCODING_EXACT_LENGTH | RTSTR_VALIDATE_ENCODING_ZERO_TERMINATED); + } + if (RT_FAILURE(rc)) + return false; + return true; +} + +/** + * Validates an optional HGCM string input parameter. * * @returns true if valid, false if not. * * @param pString The string buffer pointer. Can be NULL. * @param cbBuf The buffer size from the parameter. + * @param fUtf8Not16 Set if UTF-8 encoding, clear if UTF-16 encoding. */ -DECLINLINE(bool) ShflStringIsValidOrNull(PCSHFLSTRING pString, uint32_t cbBuf) +DECLINLINE(bool) ShflStringIsValidOrNullIn(PCSHFLSTRING pString, uint32_t cbBuf, bool fUtf8Not16) { if (pString) - return ShflStringIsValid(pString, cbBuf); + return ShflStringIsValidIn(pString, cbBuf, fUtf8Not16); if (RT_UNLIKELY(cbBuf > 0)) return false; return true; diff -Nru virtualbox-4.1.12-dfsg/include/VBox/sup.h virtualbox-4.1.44-dfsg/include/VBox/sup.h --- virtualbox-4.1.12-dfsg/include/VBox/sup.h 2012-04-02 13:24:40.000000000 +0000 +++ virtualbox-4.1.44-dfsg/include/VBox/sup.h 2015-11-11 15:06:01.000000000 +0000 @@ -620,6 +620,8 @@ kSupInitOp_Driver, /** IPRT init related. */ kSupInitOp_IPRT, + /** Miscellaneous. */ + kSupInitOp_Misc, /** Place holder. */ kSupInitOp_End } SUPINITOP; @@ -628,7 +630,9 @@ * Trusted error entry point, optional. * * This is exported as "TrustedError" by the dynamic libraries which contains - * the "real" application binary for which the hardened stub is built. + * the "real" application binary for which the hardened stub is built. The + * hardened main() must specify SUPSECMAIN_FLAGS_TRUSTED_ERROR when calling + * SUPR3HardenedMain. * * @param pszWhere Where the error occurred (function name). * @param enmWhat Which operation went wrong. @@ -662,10 +666,12 @@ */ DECLHIDDEN(int) SUPR3HardenedMain(const char *pszProgName, uint32_t fFlags, int argc, char **argv, char **envp); -/** @name SUPR3SecureMain flags. +/** @name SUPR3HardenedMain flags. * @{ */ /** Don't open the device. (Intended for VirtualBox without -startvm.) */ #define SUPSECMAIN_FLAGS_DONT_OPEN_DEV RT_BIT_32(0) +/** The hardened DLL has a "TrustedError" function (see FNSUPTRUSTEDERROR). */ +#define SUPSECMAIN_FLAGS_TRUSTED_ERROR RT_BIT_32(1) /** @} */ /** @@ -1014,6 +1020,28 @@ SUPR3DECL(int) SUPR3GipGetPhys(PRTHCPHYS pHCPhys); /** + * Initializes only the bits relevant for the SUPR3HardenedVerify* APIs. + * + * This is for users that don't necessarily need to initialize the whole of + * SUPLib. There is no harm in calling this one more time. + * + * @returns VBox status code. + * @remarks Currently not counted, so only call once. + */ +SUPR3DECL(int) SUPR3HardenedVerifyInit(void); + +/** + * Reverses the effect of SUPR3HardenedVerifyInit if SUPR3InitEx hasn't been + * called. + * + * Ignored if the support library was initialized using SUPR3Init or + * SUPR3InitEx. + * + * @returns VBox status code. + */ +SUPR3DECL(int) SUPR3HardenedVerifyTerm(void); + +/** * Verifies the integrity of a file, and optionally opens it. * * The integrity check is for whether the file is suitable for loading into @@ -1324,6 +1352,63 @@ /** @} */ #endif +/** @name Trust Anchors and Certificates + * @{ */ + +/** + * Trust anchor table entry (in generated Certificates.cpp). + */ +typedef struct SUPTAENTRY +{ + /** Pointer to the raw bytes. */ + const unsigned char *pch; + /** Number of bytes. */ + unsigned cb; +} SUPTAENTRY; +/** Pointer to a trust anchor table entry. */ +typedef SUPTAENTRY const *PCSUPTAENTRY; + +/** Macro for simplifying generating the trust anchor tables. */ +#define SUPTAENTRY_GEN(a_abTA) { &a_abTA[0], sizeof(a_abTA) } + +/** All certificates we know. */ +extern SUPTAENTRY const g_aSUPAllTAs[]; +/** Number of entries in g_aSUPAllTAs. */ +extern unsigned const g_cSUPAllTAs; + +/** Software publisher certificate roots (Authenticode). */ +extern SUPTAENTRY const g_aSUPSpcRootTAs[]; +/** Number of entries in g_aSUPSpcRootTAs. */ +extern unsigned const g_cSUPSpcRootTAs; + +/** Kernel root certificates used by Windows. */ +extern SUPTAENTRY const g_aSUPNtKernelRootTAs[]; +/** Number of entries in g_aSUPNtKernelRootTAs. */ +extern unsigned const g_cSUPNtKernelRootTAs; + +/** Timestamp root certificates trusted by Windows. */ +extern SUPTAENTRY const g_aSUPTimestampTAs[]; +/** Number of entries in g_aSUPTimestampTAs. */ +extern unsigned const g_cSUPTimestampTAs; + +/** TAs we trust (the build certificate, Oracle VirtualBox). */ +extern SUPTAENTRY const g_aSUPTrustedTAs[]; +/** Number of entries in g_aSUPTrustedTAs. */ +extern unsigned const g_cSUPTrustedTAs; + +/** Supplemental certificates, like cross signing certificates. */ +extern SUPTAENTRY const g_aSUPSupplementalTAs[]; +/** Number of entries in g_aSUPTrustedTAs. */ +extern unsigned const g_cSUPSupplementalTAs; + +/** The build certificate. */ +extern const unsigned char g_abSUPBuildCert[]; +/** The size of the build certificate. */ +extern const unsigned g_cbSUPBuildCert; + +/** @} */ + + /** @} */ RT_C_DECLS_END diff -Nru virtualbox-4.1.12-dfsg/include/VBox/VBoxGuest.h virtualbox-4.1.44-dfsg/include/VBox/VBoxGuest.h --- virtualbox-4.1.12-dfsg/include/VBox/VBoxGuest.h 2012-04-02 13:24:37.000000000 +0000 +++ virtualbox-4.1.44-dfsg/include/VBox/VBoxGuest.h 2015-11-11 15:06:00.000000000 +0000 @@ -354,6 +354,10 @@ /** @} */ # endif /* RT_ARCH_AMD64 */ +#ifdef VBOX_WITH_DPC_LATENCY_CHECKER +#define VBOXGUEST_IOCTL_DPC VBOXGUEST_IOCTL_CODE(30, 0) +#endif + /** Get the pointer to the first HGCM parameter. */ # define VBOXGUEST_HGCM_CALL_PARMS(a) ( (HGCMFunctionParameter *)((uint8_t *)(a) + sizeof(VBoxGuestHGCMCallInfo)) ) /** Get the pointer to the first HGCM parameter in a 32-bit request. */ diff -Nru virtualbox-4.1.12-dfsg/include/VBox/VBoxOGLTest.h virtualbox-4.1.44-dfsg/include/VBox/VBoxOGLTest.h --- virtualbox-4.1.12-dfsg/include/VBox/VBoxOGLTest.h 1970-01-01 00:00:00.000000000 +0000 +++ virtualbox-4.1.44-dfsg/include/VBox/VBoxOGLTest.h 2015-11-11 15:06:00.000000000 +0000 @@ -0,0 +1,36 @@ +/* $Id: VBoxOGLTest.h $ */ +/** @file + * VBox 3D Support test API + */ +/* + * Copyright (C) 2012 Oracle Corporation + * + * This file is part of VirtualBox Open Source Edition (OSE), as + * available from http://www.virtualbox.org. This file is free software; + * you can redistribute it and/or modify it under the terms of the GNU + * General Public License (GPL) as published by the Free Software + * Foundation, in version 2 as it comes in the "COPYING" file of the + * VirtualBox OSE distribution. VirtualBox OSE is distributed in the + * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind. + * + * The contents of this file may alternatively be used under the terms + * of the Common Development and Distribution License Version 1.0 + * (CDDL) only, as it comes in the "COPYING.CDDL" file of the + * VirtualBox OSE distribution, in which case the provisions of the + * CDDL are applicable instead of those of the GPL. + * + * You may elect to license modified versions of this file under the + * terms and conditions of either the GPL or the CDDL or both. + */ +#ifndef ___VBoxOGLTest_h__ +#define ___VBoxOGLTest_h__ + +#include + +RT_C_DECLS_BEGIN + +bool RTCALL VBoxOglIs3DAccelerationSupported(); + +RT_C_DECLS_END + +#endif /*#ifndef ___VBoxOGLTest_h__*/ diff -Nru virtualbox-4.1.12-dfsg/include/VBox/vd.h virtualbox-4.1.44-dfsg/include/VBox/vd.h --- virtualbox-4.1.12-dfsg/include/VBox/vd.h 2012-04-02 13:24:40.000000000 +0000 +++ virtualbox-4.1.44-dfsg/include/VBox/vd.h 2015-11-11 15:06:01.000000000 +0000 @@ -184,8 +184,15 @@ * unusable images. */ #define VD_OPEN_FLAGS_IGNORE_FLUSH RT_BIT(7) +/** + * Return VINF_VD_NEW_ZEROED_BLOCK for reads from unallocated blocks. + * The caller who uses the flag has to make sure that the read doesn't cross + * a block boundary. Because the block size can differ between images reading one + * sector at a time is the safest solution. + */ +#define VD_OPEN_FLAGS_INFORM_ABOUT_ZERO_BLOCKS RT_BIT(8) /** Mask of valid flags. */ -#define VD_OPEN_FLAGS_MASK (VD_OPEN_FLAGS_NORMAL | VD_OPEN_FLAGS_READONLY | VD_OPEN_FLAGS_HONOR_ZEROES | VD_OPEN_FLAGS_HONOR_SAME | VD_OPEN_FLAGS_INFO | VD_OPEN_FLAGS_ASYNC_IO | VD_OPEN_FLAGS_SHAREABLE | VD_OPEN_FLAGS_SEQUENTIAL | VD_OPEN_FLAGS_IGNORE_FLUSH) +#define VD_OPEN_FLAGS_MASK (VD_OPEN_FLAGS_NORMAL | VD_OPEN_FLAGS_READONLY | VD_OPEN_FLAGS_HONOR_ZEROES | VD_OPEN_FLAGS_HONOR_SAME | VD_OPEN_FLAGS_INFO | VD_OPEN_FLAGS_ASYNC_IO | VD_OPEN_FLAGS_SHAREABLE | VD_OPEN_FLAGS_SEQUENTIAL | VD_OPEN_FLAGS_IGNORE_FLUSH | VD_OPEN_FLAGS_INFORM_ABOUT_ZERO_BLOCKS) /** @}*/ /** diff -Nru virtualbox-4.1.12-dfsg/include/VBox/vmm/cpum.h virtualbox-4.1.44-dfsg/include/VBox/vmm/cpum.h --- virtualbox-4.1.12-dfsg/include/VBox/vmm/cpum.h 2012-04-02 13:24:40.000000000 +0000 +++ virtualbox-4.1.44-dfsg/include/VBox/vmm/cpum.h 2015-11-11 15:06:01.000000000 +0000 @@ -425,6 +425,7 @@ */ VMMR3DECL(int) CPUMR3Init(PVM pVM); +VMMR3DECL(void) CPUMR3LogCpuIds(PVM pVM); VMMR3DECL(void) CPUMR3Relocate(PVM pVM); VMMR3DECL(int) CPUMR3Term(PVM pVM); VMMR3DECL(void) CPUMR3Reset(PVM pVM); @@ -493,7 +494,7 @@ VMMR0DECL(int) CPUMR0SaveHostDebugState(PVM pVM, PVMCPU pVCpu); VMMR0DECL(int) CPUMR0LoadHyperDebugState(PVM pVM, PVMCPU pVCpu, PCPUMCTX pCtx, bool fDR6); #ifdef VBOX_WITH_VMMR0_DISABLE_LAPIC_NMI -VMMR0DECL(void) CPUMR0SetLApic(PVM pVM, RTCPUID idHostCpu); +VMMR0DECL(void) CPUMR0SetLApic(PVMCPU pVCpu, RTCPUID idHostCpu); #endif /** @} */ diff -Nru virtualbox-4.1.12-dfsg/include/VBox/vmm/hwacc_vmx.h virtualbox-4.1.44-dfsg/include/VBox/vmm/hwacc_vmx.h --- virtualbox-4.1.12-dfsg/include/VBox/vmm/hwacc_vmx.h 2012-04-02 13:24:40.000000000 +0000 +++ virtualbox-4.1.44-dfsg/include/VBox/vmm/hwacc_vmx.h 2015-11-11 15:06:01.000000000 +0000 @@ -525,6 +525,12 @@ #define VMX_EXIT_WBINVD 54 /** 55 XSETBV. Guest software attempted to execute XSETBV. */ #define VMX_EXIT_XSETBV 55 +/** 57 RDRAND. Guest software attempted to execute RDRAND. */ +#define VMX_EXIT_RDRAND 57 +/** 58 INVPCID. Guest software attempted to execute INVPCID. */ +#define VMX_EXIT_INVPCID 58 +/** 59 VMFUNC. Guest software attempted to execute VMFUNC. */ +#define VMX_EXIT_VMFUNC 59 /** @} */ diff -Nru virtualbox-4.1.12-dfsg/include/VBox/vmm/pdmcardreaderinfs.h virtualbox-4.1.44-dfsg/include/VBox/vmm/pdmcardreaderinfs.h --- virtualbox-4.1.12-dfsg/include/VBox/vmm/pdmcardreaderinfs.h 1970-01-01 00:00:00.000000000 +0000 +++ virtualbox-4.1.44-dfsg/include/VBox/vmm/pdmcardreaderinfs.h 2015-11-11 15:06:02.000000000 +0000 @@ -0,0 +1,116 @@ +/* $Id: pdmcardreaderinfs.h $ */ + +/** @file + * cardreaderinfs - interface between Usb Card Reader device and its driver. + */ + +/* + * Copyright (C) 2011-2012 Oracle Corporation + * + * This file is part of VirtualBox Open Source Edition (OSE), as + * available from http://www.virtualbox.org. This file is free software; + * you can redistribute it and/or modify it under the terms of the GNU + * General Public License (GPL) as published by the Free Software + * Foundation, in version 2 as it comes in the "COPYING" file of the + * VirtualBox OSE distribution. VirtualBox OSE is distributed in the + * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind. + * + * The contents of this file may alternatively be used under the terms + * of the Common Development and Distribution License Version 1.0 + * (CDDL) only, as it comes in the "COPYING.CDDL" file of the + * VirtualBox OSE distribution, in which case the provisions of the + * CDDL are applicable instead of those of the GPL. + * + * You may elect to license modified versions of this file under the + * terms and conditions of either the GPL or the CDDL or both. + */ + +#ifndef ___VBox_vmm_pdmcardreaderinfs_h +# define ___VBox_vmm_pdmcardreaderinfs_h + +#include + +#define PDMICARDREADERDOWN_IID "78d65378-889c-4418-8bc2-7a89a5af2817" + +typedef struct PDMICARDREADER_IO_REQUEST +{ + uint32_t u32Protocol; /* Protocol identifier */ + uint32_t cbPciLength; /* Protocol Control Information Length */ + /* 'cbPciLength - 8' bytes of control info may follow. */ +} PDMICARDREADER_IO_REQUEST; + +typedef struct PDMICARDREADER_READERSTATE +{ + char *pszReaderName; + uint32_t u32CurrentState; /* Current state of reader at time of call. */ + uint32_t u32EventState; /* State of reader after state change */ + uint32_t cbAtr; /* Number of bytes in the returned ATR. */ + uint8_t au8Atr[36]; /* Atr of inserted card, (extra alignment bytes) */ +} PDMICARDREADER_READERSTATE; + + +typedef struct PDMICARDREADERDOWN PDMICARDREADERDOWN; +typedef PDMICARDREADERDOWN *PPDMICARDREADERDOWN; +struct PDMICARDREADERDOWN +{ + DECLR3CALLBACKMEMBER(int, pfnCardReaderDownEstablishContext,(PPDMICARDREADERDOWN pInterface)); + DECLR3CALLBACKMEMBER(int, pfnCardReaderDownConnect,(PPDMICARDREADERDOWN pInterface, void *pvUser, const char *pszCardReaderName, + uint32_t u32ShareMode, uint32_t u32PreferredProtocols)); + DECLR3CALLBACKMEMBER(int, pfnCardReaderDownDisconnect,(PPDMICARDREADERDOWN pInterface, void *pvUser, + uint32_t u32Disposition)); + DECLR3CALLBACKMEMBER(int, pfnCardReaderDownStatus,(PPDMICARDREADERDOWN pInterface, void *pvUser, + uint32_t cchReaderName, uint32_t cbAtrLen)); + DECLR3CALLBACKMEMBER(int, pfnCardReaderDownReleaseContext,(PPDMICARDREADERDOWN pInterface, void *pvUser)); + DECLR3CALLBACKMEMBER(int, pfnCardReaderDownGetStatusChange,(PPDMICARDREADERDOWN pInterface, void *pvUser, + uint32_t u32Timeout, PDMICARDREADER_READERSTATE *paReaderStats, uint32_t cReaderStats)); + DECLR3CALLBACKMEMBER(int, pfnCardReaderDownBeginTransaction,(PPDMICARDREADERDOWN pInterface, void *pvUser)); + DECLR3CALLBACKMEMBER(int, pfnCardReaderDownEndTransaction,(PPDMICARDREADERDOWN pInterface, void *pvUser, + uint32_t u32Disposition)); + DECLR3CALLBACKMEMBER(int, pfnCardReaderDownTransmit,(PPDMICARDREADERDOWN pInterface, void *pvUser, + const PDMICARDREADER_IO_REQUEST *pioSendRequest, + const uint8_t *pu8SendBuffer, uint32_t cbSendBuffer, uint32_t cbRecvBuffer)); + /** + * Up level provides pvInBuffer of cbInBuffer bytes to call SCardControl, also it specify bytes it expects to receive + * @note: device/driver implementation should copy buffers before execution in async mode, and both layers shouldn't + * expect permanent storage for the buffer. + */ + DECLR3CALLBACKMEMBER(int, pfnCardReaderDownControl,(PPDMICARDREADERDOWN pInterface, void *pvUser, + uint32_t u32ControlCode, const void *pvInBuffer, uint32_t cbInBuffer, uint32_t cbOutBuffer)); + /** + * This function ask driver to provide attribute (dwAttribId) and provide limit (cbAttrib) of buffer size for attribute value, + * Callback UpGetAttrib returns buffer containing the value and altered size of the buffer. + */ + DECLR3CALLBACKMEMBER(int, pfnCardReaderDownGetAttr,(PPDMICARDREADERDOWN pInterface, void *pvUser, + uint32_t u32AttribId, uint32_t cbAttrib)); + DECLR3CALLBACKMEMBER(int, pfnCardReaderDownSetAttr,(PPDMICARDREADERDOWN pInterface, void *pvUser, + uint32_t u32AttribId, const void *pvAttrib, uint32_t cbAttrib)); +}; + +#define PDMICARDREADERUP_IID "c0d7498e-0635-48ca-aab1-b11b6a55cf7d" +typedef struct PDMICARDREADERUP PDMICARDREADERUP; +typedef PDMICARDREADERUP *PPDMICARDREADERUP; +struct PDMICARDREADERUP +{ + DECLR3CALLBACKMEMBER(int, pfnCardReaderUpEstablishContext,(PPDMICARDREADERUP pInterface, int32_t lSCardRc)); + DECLR3CALLBACKMEMBER(int, pfnCardReaderUpStatus,(PPDMICARDREADERUP pInterface, void *pvUser, int32_t lSCardRc, + char *pszReaderName, uint32_t cchReaderName, uint32_t u32CardState, + uint32_t u32Protocol, uint8_t *pu8Atr, uint32_t cbAtr)); + DECLR3CALLBACKMEMBER(int, pfnCardReaderUpConnect,(PPDMICARDREADERUP pInterface, void *pvUser, int32_t lSCardRc, + uint32_t u32ActiveProtocol)); + DECLR3CALLBACKMEMBER(int, pfnCardReaderUpDisconnect,(PPDMICARDREADERUP pInterface, void *pvUser, int32_t lSCardRc)); + DECLR3CALLBACKMEMBER(int, pfnCardReaderUpSetStatusChange,(PPDMICARDREADERUP pInterface, void *pvUser, int32_t lSCardRc, + PDMICARDREADER_READERSTATE *paReaderStats, uint32_t cReaderStats)); + DECLR3CALLBACKMEMBER(int, pfnCardReaderUpBeginTransaction,(PPDMICARDREADERUP pInterface, void *pvUser, int32_t lSCardRc)); + DECLR3CALLBACKMEMBER(int, pfnCardReaderUpEndTransaction,(PPDMICARDREADERUP pInterface, void *pvUser, int32_t lSCardRc)); + /* Note: pioRecvPci stack variable */ + DECLR3CALLBACKMEMBER(int, pfnCardReaderUpTransmit,(PPDMICARDREADERUP pInterface, void *pvUser, int32_t lSCardRc, + const PDMICARDREADER_IO_REQUEST *pioRecvPci, uint8_t *pu8RecvBuffer, uint32_t cbRecvBuffer)); + DECLR3CALLBACKMEMBER(int, pfnCardReaderUpControl,(PPDMICARDREADERUP pInterface, void *pvUser, int32_t lSCardRc, + uint32_t u32ControlCode, void *pvOutBuffer, uint32_t cbOutBuffer)); + DECLR3CALLBACKMEMBER(int, pfnCardReaderUpGetAttrib,(PPDMICARDREADERUP pInterface, void *pvUser, int32_t lSCardRc, + uint32_t u32AttribId, void *pvAttrib, uint32_t cbAttrib)); + DECLR3CALLBACKMEMBER(int, pfnCardReaderUpSetAttrib,(PPDMICARDREADERUP pInterface, void *pvUser, int32_t lSCardRc, + uint32_t u32AttribId)); +}; + +#endif diff -Nru virtualbox-4.1.12-dfsg/include/VBox/vmm/pdmdev.h virtualbox-4.1.44-dfsg/include/VBox/vmm/pdmdev.h --- virtualbox-4.1.12-dfsg/include/VBox/vmm/pdmdev.h 2012-04-02 13:24:41.000000000 +0000 +++ virtualbox-4.1.44-dfsg/include/VBox/vmm/pdmdev.h 2015-11-11 15:06:02.000000000 +0000 @@ -357,6 +357,9 @@ /** Indicates that the device needs to be notified before the drivers when powering off. */ #define PDM_DEVREG_FLAGS_FIRST_POWEROFF_NOTIFICATION 0x00004000 + +/** Indicates that the device needs to be notified before the drivers when resetting. */ +#define PDM_DEVREG_FLAGS_FIRST_RESET_NOTIFICATION 0x00008000 /** @} */ diff -Nru virtualbox-4.1.12-dfsg/include/VBox/vmm/pgm.h virtualbox-4.1.44-dfsg/include/VBox/vmm/pgm.h --- virtualbox-4.1.12-dfsg/include/VBox/vmm/pgm.h 2012-04-02 13:24:41.000000000 +0000 +++ virtualbox-4.1.44-dfsg/include/VBox/vmm/pgm.h 2015-11-11 15:06:02.000000000 +0000 @@ -419,8 +419,9 @@ * @ingroup grp_pgm * @{ */ -VMMR0DECL(int) PGMR0PhysAllocateHandyPages(PVM pVM, PVMCPU pVCpu); -VMMR0DECL(int) PGMR0PhysAllocateLargeHandyPage(PVM pVM, PVMCPU pVCpu); +VMMR0_INT_DECL(int) PGMR0PhysAllocateHandyPages(PVM pVM, PVMCPU pVCpu); +VMMR0_INT_DECL(int) PGMR0PhysFlushHandyPages(PVM pVM, PVMCPU pVCpu); +VMMR0_INT_DECL(int) PGMR0PhysAllocateLargeHandyPage(PVM pVM, PVMCPU pVCpu); VMMR0_INT_DECL(int) PGMR0PhysSetupIommu(PVM pVM); VMMR0DECL(int) PGMR0SharedModuleCheck(PVM pVM, PGVM pGVM, VMCPUID idCpu, PGMMSHAREDMODULE pModule, PCRTGCPTR64 paRegionsGCPtrs); VMMR0DECL(int) PGMR0Trap0eHandlerNestedPaging(PVM pVM, PVMCPU pVCpu, PGMMODE enmShwPagingMode, RTGCUINT uErr, PCPUMCTXCORE pRegFrame, RTGCPHYS pvFault); diff -Nru virtualbox-4.1.12-dfsg/include/VBox/vmm/vmm.h virtualbox-4.1.44-dfsg/include/VBox/vmm/vmm.h --- virtualbox-4.1.12-dfsg/include/VBox/vmm/vmm.h 2012-04-02 13:24:41.000000000 +0000 +++ virtualbox-4.1.44-dfsg/include/VBox/vmm/vmm.h 2015-11-11 15:06:02.000000000 +0000 @@ -364,6 +364,8 @@ /** Call PGMR0PhysAllocateHandyPages(). */ VMMR0_DO_PGM_ALLOCATE_HANDY_PAGES, + /** Call PGMR0PhysFlushHandyPages(). */ + VMMR0_DO_PGM_FLUSH_HANDY_PAGES, /** Call PGMR0AllocateLargePage(). */ VMMR0_DO_PGM_ALLOCATE_LARGE_HANDY_PAGE, /** Call PGMR0PhysSetupIommu(). */ diff -Nru virtualbox-4.1.12-dfsg/include/VBox/VMMDev.h virtualbox-4.1.44-dfsg/include/VBox/VMMDev.h --- virtualbox-4.1.12-dfsg/include/VBox/VMMDev.h 2012-04-02 13:24:39.000000000 +0000 +++ virtualbox-4.1.44-dfsg/include/VBox/VMMDev.h 2015-11-11 15:06:00.000000000 +0000 @@ -114,6 +114,10 @@ /** Maximum request packet size. */ #define VMMDEV_MAX_VMMDEVREQ_SIZE _1M +/** Maximum number of HGCM parameters. */ +#define VMMDEV_MAX_HGCM_PARMS 1024 +/** Maximum total size of hgcm buffers in one call. */ +#define VMMDEV_MAX_HGCM_DATA_SIZE UINT32_C(0x7FFFFFFF) /** * VMMDev request types. diff -Nru virtualbox-4.1.12-dfsg/Makefile.kmk virtualbox-4.1.44-dfsg/Makefile.kmk --- virtualbox-4.1.12-dfsg/Makefile.kmk 2012-04-02 13:24:34.000000000 +0000 +++ virtualbox-4.1.44-dfsg/Makefile.kmk 2015-11-11 15:05:58.000000000 +0000 @@ -4,7 +4,7 @@ # # -# Copyright (C) 2006-2011 Oracle Corporation +# Copyright (C) 2006-2014 Oracle Corporation # # This file is part of VirtualBox Open Source Edition (OSE), as # available from http://www.virtualbox.org. This file is free software; @@ -21,10 +21,12 @@ # # Sub-makefiles / Sub-directories. # -if defined(VBOX_WITH_DOCS) && !defined(VBOX_ONLY_ADDITIONS) && !defined(VBOX_ONLY_EXTPACKS) && !defined(VBOX_ONLY_TESTSUITE) +ifndef VBOX_ONLY_ROOT_MAKEFILE + if defined(VBOX_WITH_DOCS) && !defined(VBOX_ONLY_ADDITIONS) && !defined(VBOX_ONLY_EXTPACKS) && !defined(VBOX_ONLY_TESTSUITE) include $(PATH_SUB_CURRENT)/doc/manual/Makefile.kmk + endif + include $(PATH_SUB_CURRENT)/src/Makefile.kmk endif -include $(PATH_SUB_CURRENT)/src/Makefile.kmk # @@ -70,22 +72,22 @@ # To avoid dragging in unnecessary tools and sdks here, we don't use the .win # and .linux property suffixes. # -INSTALLS += bin +INSTALLS += InstallExternalLibs -bin_INST = $(INST_BIN) +InstallExternalLibs_INST = $(INST_BIN) # The SDL DLLs if1of ($(KBUILD_TARGET), win os2) ifneq ($(VBOX_WITH_VBOXSDL)$(VBOX_WITH_VBOXBFE),) include $(KBUILD_PATH)/sdks/LIBSDL.kmk - bin_SOURCES += \ - $(DLL_SDK_LIBSDL_SDL) + InstallExternalLibs_SOURCES += \ + $(call VBOX_RE_SIGN_DLL_FN,InstallExternalLibs,$(DLL_SDK_LIBSDL_SDL)) ifdef VBOX_WITH_SECURELABEL - bin_SOURCES += \ - $(DLL_SDK_LIBSDL_SDLTTF) + InstallExternalLibs_SOURCES += \ + $(call VBOX_RE_SIGN_DLL_FN,InstallExternalLibs,$(DLL_SDK_LIBSDL_SDLTTF)) endif ifeq ($(KBUILD_TARGET),os2) - bin_SOURCES += \ + InstallExternalLibs_SOURCES += \ $(DLL_SDK_LIBSDL_FSLIB) endif endif @@ -97,35 +99,35 @@ ifdef VBOX_USE_VCC80 include $(KBUILD_PATH)/tools/VCC80X86.kmk include $(KBUILD_PATH)/tools/VCC80AMD64.kmk - bin_SOURCES.x86 += \ + InstallExternalLibs_SOURCES.x86 += \ $(PATH_TOOL_VCC80X86)/redist/x86/Microsoft.VC80.CRT/Microsoft.VC80.CRT.manifest=>Microsoft.VC80.CRT/Microsoft.VC80.CRT.manifest \ - $(PATH_TOOL_VCC80X86)/redist/x86/Microsoft.VC80.CRT/msvcr80.dll=>Microsoft.VC80.CRT/msvcr80.dll \ - $(PATH_TOOL_VCC80X86)/redist/x86/Microsoft.VC80.CRT/msvcp80.dll=>Microsoft.VC80.CRT/msvcp80.dll \ + $(call VBOX_RE_SIGN_DLL_FN,InstallExternalLibs,$(PATH_TOOL_VCC80X86)/redist/x86/Microsoft.VC80.CRT/msvcr80.dll)=>Microsoft.VC80.CRT/msvcr80.dll \ + $(call VBOX_RE_SIGN_DLL_FN,InstallExternalLibs,$(PATH_TOOL_VCC80X86)/redist/x86/Microsoft.VC80.CRT/msvcp80.dll)=>Microsoft.VC80.CRT/msvcp80.dll \ $(PATH_TOOL_VCC80X86)/redist/x86/Microsoft.VC80.CRT/Microsoft.VC80.CRT.manifest=>testcase/Microsoft.VC80.CRT/Microsoft.VC80.CRT.manifest \ - $(PATH_TOOL_VCC80X86)/redist/x86/Microsoft.VC80.CRT/msvcr80.dll=>testcase/Microsoft.VC80.CRT/msvcr80.dll \ - $(PATH_TOOL_VCC80X86)/redist/x86/Microsoft.VC80.CRT/msvcp80.dll=>testcase/Microsoft.VC80.CRT/msvcp80.dll - bin_SOURCES.amd64 += \ + $(call VBOX_RE_SIGN_DLL_FN,InstallExternalLibs,$(PATH_TOOL_VCC80X86)/redist/x86/Microsoft.VC80.CRT/msvcr80.dll)=>testcase/Microsoft.VC80.CRT/msvcr80.dll \ + $(call VBOX_RE_SIGN_DLL_FN,InstallExternalLibs,$(PATH_TOOL_VCC80X86)/redist/x86/Microsoft.VC80.CRT/msvcp80.dll)=>testcase/Microsoft.VC80.CRT/msvcp80.dll + InstallExternalLibs_SOURCES.amd64 += \ $(PATH_TOOL_VCC80AMD64)/redist/amd64/Microsoft.VC80.CRT/Microsoft.VC80.CRT.manifest=>Microsoft.VC80.CRT/Microsoft.VC80.CRT.manifest \ - $(PATH_TOOL_VCC80AMD64)/redist/amd64/Microsoft.VC80.CRT/msvcr80.dll=>Microsoft.VC80.CRT/msvcr80.dll \ - $(PATH_TOOL_VCC80AMD64)/redist/amd64/Microsoft.VC80.CRT/msvcp80.dll=>Microsoft.VC80.CRT/msvcp80.dll \ + $(call VBOX_RE_SIGN_DLL_FN,InstallExternalLibs,$(PATH_TOOL_VCC80AMD64)/redist/amd64/Microsoft.VC80.CRT/msvcr80.dll)=>Microsoft.VC80.CRT/msvcr80.dll \ + $(call VBOX_RE_SIGN_DLL_FN,InstallExternalLibs,$(PATH_TOOL_VCC80AMD64)/redist/amd64/Microsoft.VC80.CRT/msvcp80.dll)=>Microsoft.VC80.CRT/msvcp80.dll \ $(PATH_TOOL_VCC80AMD64)/redist/amd64/Microsoft.VC80.CRT/Microsoft.VC80.CRT.manifest=>testcase/Microsoft.VC80.CRT/Microsoft.VC80.CRT.manifest \ - $(PATH_TOOL_VCC80AMD64)/redist/amd64/Microsoft.VC80.CRT/msvcr80.dll=>testcase/Microsoft.VC80.CRT/msvcr80.dll \ - $(PATH_TOOL_VCC80AMD64)/redist/amd64/Microsoft.VC80.CRT/msvcp80.dll=>testcase/Microsoft.VC80.CRT/msvcp80.dll + $(call VBOX_RE_SIGN_DLL_FN,InstallExternalLibs,$(PATH_TOOL_VCC80AMD64)/redist/amd64/Microsoft.VC80.CRT/msvcr80.dll)=>testcase/Microsoft.VC80.CRT/msvcr80.dll \ + $(call VBOX_RE_SIGN_DLL_FN,InstallExternalLibs,$(PATH_TOOL_VCC80AMD64)/redist/amd64/Microsoft.VC80.CRT/msvcp80.dll)=>testcase/Microsoft.VC80.CRT/msvcp80.dll ifeq ($(VBOX_VCC_CRT_TYPE),d) - bin_SOURCES.x86 += \ + InstallExternalLibs_SOURCES.x86 += \ $(PATH_TOOL_VCC80X86)/redist/Debug_NonRedist/x86/Microsoft.VC80.DebugCRT/Microsoft.VC80.DebugCRT.manifest=>Microsoft.VC80.DebugCRT/Microsoft.VC80.DebugCRT.manifest \ - $(PATH_TOOL_VCC80X86)/redist/Debug_NonRedist/x86/Microsoft.VC80.DebugCRT/msvcr80d.dll=>Microsoft.VC80.DebugCRT/msvcr80d.dll \ - $(PATH_TOOL_VCC80X86)/redist/Debug_NonRedist/x86/Microsoft.VC80.DebugCRT/msvcp80d.dll=>Microsoft.VC80.DebugCRT/msvcp80d.dll \ + $(call VBOX_RE_SIGN_DLL_FN,InstallExternalLibs,$(PATH_TOOL_VCC80X86)/redist/Debug_NonRedist/x86/Microsoft.VC80.DebugCRT/msvcr80d.dll)=>Microsoft.VC80.DebugCRT/msvcr80d.dll \ + $(call VBOX_RE_SIGN_DLL_FN,InstallExternalLibs,$(PATH_TOOL_VCC80X86)/redist/Debug_NonRedist/x86/Microsoft.VC80.DebugCRT/msvcp80d.dll)=>Microsoft.VC80.DebugCRT/msvcp80d.dll \ $(PATH_TOOL_VCC80X86)/redist/Debug_NonRedist/x86/Microsoft.VC80.DebugCRT/Microsoft.VC80.DebugCRT.manifest=>testcase/Microsoft.VC80.DebugCRT/Microsoft.VC80.DebugCRT.manifest \ - $(PATH_TOOL_VCC80X86)/redist/Debug_NonRedist/x86/Microsoft.VC80.DebugCRT/msvcr80d.dll=>testcase/Microsoft.VC80.DebugCRT/msvcr80d.dll \ - $(PATH_TOOL_VCC80X86)/redist/Debug_NonRedist/x86/Microsoft.VC80.DebugCRT/msvcp80d.dll=>testcase/Microsoft.VC80.DebugCRT/msvcp80d.dll - bin_SOURCES.amd64 += \ + $(call VBOX_RE_SIGN_DLL_FN,InstallExternalLibs,$(PATH_TOOL_VCC80X86)/redist/Debug_NonRedist/x86/Microsoft.VC80.DebugCRT/msvcr80d.dll)=>testcase/Microsoft.VC80.DebugCRT/msvcr80d.dll \ + $(call VBOX_RE_SIGN_DLL_FN,InstallExternalLibs,$(PATH_TOOL_VCC80X86)/redist/Debug_NonRedist/x86/Microsoft.VC80.DebugCRT/msvcp80d.dll)=>testcase/Microsoft.VC80.DebugCRT/msvcp80d.dll + InstallExternalLibs_SOURCES.amd64 += \ $(PATH_TOOL_VCC80AMD64)/redist/Debug_NonRedist/amd64/Microsoft.VC80.DebugCRT/Microsoft.VC80.DebugCRT.manifest=>Microsoft.VC80.DebugCRT/Microsoft.VC80.DebugCRT.manifest \ - $(PATH_TOOL_VCC80AMD64)/redist/Debug_NonRedist/amd64/Microsoft.VC80.DebugCRT/msvcr80d.dll=>Microsoft.VC80.DebugCRT/msvcr80d.dll \ - $(PATH_TOOL_VCC80AMD64)/redist/Debug_NonRedist/amd64/Microsoft.VC80.DebugCRT/msvcp80d.dll=>Microsoft.VC80.DebugCRT/msvcp80d.dll \ + $(call VBOX_RE_SIGN_DLL_FN,InstallExternalLibs,$(PATH_TOOL_VCC80AMD64)/redist/Debug_NonRedist/amd64/Microsoft.VC80.DebugCRT/msvcr80d.dll)=>Microsoft.VC80.DebugCRT/msvcr80d.dll \ + $(call VBOX_RE_SIGN_DLL_FN,InstallExternalLibs,$(PATH_TOOL_VCC80AMD64)/redist/Debug_NonRedist/amd64/Microsoft.VC80.DebugCRT/msvcp80d.dll)=>Microsoft.VC80.DebugCRT/msvcp80d.dll \ $(PATH_TOOL_VCC80AMD64)/redist/Debug_NonRedist/amd64/Microsoft.VC80.DebugCRT/Microsoft.VC80.DebugCRT.manifest=>testcase/Microsoft.VC80.DebugCRT/Microsoft.VC80.DebugCRT.manifest \ - $(PATH_TOOL_VCC80AMD64)/redist/Debug_NonRedist/amd64/Microsoft.VC80.DebugCRT/msvcr80d.dll=>testcase/Microsoft.VC80.DebugCRT/msvcr80d.dll \ - $(PATH_TOOL_VCC80AMD64)/redist/Debug_NonRedist/amd64/Microsoft.VC80.DebugCRT/msvcp80d.dll=>testcase/Microsoft.VC80.DebugCRT/msvcp80d.dll + $(call VBOX_RE_SIGN_DLL_FN,InstallExternalLibs,$(PATH_TOOL_VCC80AMD64)/redist/Debug_NonRedist/amd64/Microsoft.VC80.DebugCRT/msvcr80d.dll)=>testcase/Microsoft.VC80.DebugCRT/msvcr80d.dll \ + $(call VBOX_RE_SIGN_DLL_FN,InstallExternalLibs,$(PATH_TOOL_VCC80AMD64)/redist/Debug_NonRedist/amd64/Microsoft.VC80.DebugCRT/msvcp80d.dll)=>testcase/Microsoft.VC80.DebugCRT/msvcp80d.dll endif endif ifndef VBOX_USE_VCC80 @@ -140,39 +142,39 @@ ## @todo Move these defines to VCC70. DLL_TOOL_VCC70_MSVCR71 ?= $(PATH_TOOL_VCC70)/bin/msvcr71.dll ifneq ($(wildcard $(DLL_TOOL_VCC70_MSVCR71)),) - bin_SOURCES += \ - $(DLL_TOOL_VCC70_MSVCR71)=>msvcr71.dll \ - $(DLL_TOOL_VCC70_MSVCR71)=>testcase/msvcr71.dll + InstallExternalLibs_SOURCES += \ + $(call VBOX_RE_SIGN_DLL_FN,InstallExternalLibs,$(DLL_TOOL_VCC70_MSVCR71))=>msvcr71.dll \ + $(call VBOX_RE_SIGN_DLL_FN,InstallExternalLibs,$(DLL_TOOL_VCC70_MSVCR71))=>testcase/msvcr71.dll endif ifeq ($(VBOX_VCC_CRT_TYPE),d) DLL_TOOL_VCC70_MSVCR71D ?= $(PATH_TOOL_VCC70)/bin/msvcr71d.dll ifneq ($(wildcard $(DLL_TOOL_VCC70_MSVCR71D)),) - bin_SOURCES += \ - $(DLL_TOOL_VCC70_MSVCR71D)=>msvcr71d.dll \ - $(DLL_TOOL_VCC70_MSVCR71D)=>testcase/msvcr71d.dll + InstallExternalLibs_SOURCES += \ + $(call VBOX_RE_SIGN_DLL_FN,InstallExternalLibs,$(DLL_TOOL_VCC70_MSVCR71D))=>msvcr71d.dll \ + $(call VBOX_RE_SIGN_DLL_FN,InstallExternalLibs,$(DLL_TOOL_VCC70_MSVCR71D))=>testcase/msvcr71d.dll endif endif DLL_TOOL_VCC70_MSVCP71 ?= $(PATH_TOOL_VCC70)/bin/msvcp71.dll ifneq ($(wildcard $(DLL_TOOL_VCC70_MSVCP71)),) - bin_SOURCES += \ - $(DLL_TOOL_VCC70_MSVCP71)=>msvcp71.dll \ - $(DLL_TOOL_VCC70_MSVCP71)=>testcase/msvcp71.dll + InstallExternalLibs_SOURCES += \ + $(call VBOX_RE_SIGN_DLL_FN,InstallExternalLibs,$(DLL_TOOL_VCC70_MSVCP71))=>msvcp71.dll \ + $(call VBOX_RE_SIGN_DLL_FN,InstallExternalLibs,$(DLL_TOOL_VCC70_MSVCP71))=>testcase/msvcp71.dll endif ifeq ($(VBOX_VCC_CRT_TYPE),d) DLL_TOOL_VCC70_MSVCP71D ?= $(PATH_TOOL_VCC70)/bin/msvcp71d.dll ifneq ($(wildcard $(DLL_TOOL_VCC70_MSVCP71D)),) - bin_SOURCES += \ - $(DLL_TOOL_VCC70_MSVCP71D)=>msvcp71d.dll \ - $(DLL_TOOL_VCC70_MSVCP71D)=>testcase/msvcp71d.dll + InstallExternalLibs_SOURCES += \ + $(call VBOX_RE_SIGN_DLL_FN,InstallExternalLibs,$(DLL_TOOL_VCC70_MSVCP71D))=>msvcp71d.dll \ + $(call VBOX_RE_SIGN_DLL_FN,InstallExternalLibs,$(DLL_TOOL_VCC70_MSVCP71D))=>testcase/msvcp71d.dll endif endif DLL_TOOL_VCC70_MSVCRT ?= $(PATH_TOOL_VCC70)/bin/msvcrt.dll ifneq ($(wildcard $(DLL_TOOL_VCC70_MSVCRT)),) - bin_SOURCES += \ - $(DLL_TOOL_VCC70_MSVCRT)=>msvcrt.dll \ - $(DLL_TOOL_VCC70_MSVCRT)=>testcase/msvcrt.dll + InstallExternalLibs_SOURCES += \ + $(call VBOX_RE_SIGN_DLL_FN,InstallExternalLibs,$(DLL_TOOL_VCC70_MSVCRT))=>msvcrt.dll \ + $(call VBOX_RE_SIGN_DLL_FN,InstallExternalLibs,$(DLL_TOOL_VCC70_MSVCRT))=>testcase/msvcrt.dll endif endif endif @@ -211,8 +213,8 @@ qt4-bin_MODE = 755 qt4-bin_INST = $(INST_BIN) qt4-bin_SOURCES = \ - $(foreach qtmod,$(VBOX_QT4_MOD_NAMES),$(VBOX_PATH_QT4_LIB)/$(qtmod)4$(SUFF_DLL)) \ - $(VBOX_PATH_QT4)/plugins/accessible/qtaccessiblewidgets4$(SUFF_DLL)=>accessible/qtaccessiblewidgets4$(SUFF_DLL) + $(foreach qtmod,$(VBOX_QT4_MOD_NAMES),$(call VBOX_RE_SIGN_DLL_FN,qt4-bin,$(VBOX_PATH_QT4_LIB)/$(qtmod)4$(SUFF_DLL))) \ + $(call VBOX_RE_SIGN_DLL_FN,qt4-bin,$(VBOX_PATH_QT4)/plugins/accessible/qtaccessiblewidgets4$(SUFF_DLL))=>accessible/qtaccessiblewidgets4$(SUFF_DLL) else INSTALLS += qt4-bin qt4-bin_MODE = 755 @@ -225,6 +227,12 @@ endif +# Below we might need TOOL_ZIP_UNPACK (for the additions/docs/efifw packages +# from the build server), and it's not really worth the effort of dragging in +# this tool only if absolutely needed. +## @todo Hack to get at TOOL_ZIP_UNPACK; see if this can be integrated somehow... +include $(KBUILD_PATH)/tools/ZIP.kmk + # # For building the combined package, just get the additions .ISO # once for amd64 to prevent version inconsistences. In all other @@ -247,23 +255,33 @@ buildserver-additions_INST = $(INST_ADDITIONS_ISO) buildserver-additions_MODE = 0644 buildserver-additions_SOURCES = $(PATH_TARGET)/VBoxGuestAdditions.iso -buildserver-additions_CLEANS = $(PATH_TARGET)/VBoxGuestAdditions.iso $(PATH_TARGET)/VBoxGuestAdditions.iso.tmp +buildserver-additions_CLEANS = \ + $(buildserver-additions_0_OUTDIR)/unpacked.ts \ + $(buildserver-additions_0_OUTDIR)/VBoxGuestAdditions.zip \ + $(buildserver-additions_0_OUTDIR)/VBoxGuestAdditions.zip.tmp \ + $(PATH_TARGET)/VBoxGuestAdditions.iso + +$$(buildserver-additions_0_OUTDIR)/unpacked.ts +| $(PATH_TARGET)/VBoxGuestAdditions.iso: \ + $$(buildserver-additions_0_OUTDIR)/VBoxGuestAdditions.zip + $(call MSG_L1,Unpacking additions archive) + $(QUIET)$(TOOL_ZIP_UNPACK) $(TOOL_ZIP_UNPACKFLAGS) -o $< -d $(PATH_TARGET) + $(APPEND) -t $@ "done" -$(PATH_TARGET)/VBoxGuestAdditions.iso: $(VBOX_SVN_REV_KMK) $(PATH_DEVTOOLS)/bin/additions.sh | $$(dir $$@) - $(RM) -f $(PATH_TARGET)/VBoxGuestAdditions.iso $(PATH_TARGET)/VBoxGuestAdditions.iso.tmp +$$(buildserver-additions_0_OUTDIR)/VBoxGuestAdditions.zip: $(VBOX_SVN_REV_KMK) $(PATH_DEVTOOLS)/bin/additions.sh | $$(dir $$@) + $(RM) -f $@ $@.tmp ifneq ($(KBUILD_HOST),win) - $(SHELL) $(PATH_DEVTOOLS)/bin/additions.sh --cmd fetch --filename $(PATH_TARGET)/VBoxGuestAdditions.iso.tmp + $(SHELL) $(PATH_DEVTOOLS)/bin/additions.sh --cmd fetch --filename $@.tmp else $(KMK) --affinity 1 -f $(MAKEFILE) buildserver-additions-affinity-hack endif - $(CP) -f $(PATH_TARGET)/VBoxGuestAdditions.iso.tmp $(PATH_TARGET)/VBoxGuestAdditions.iso - $(RM) -f $(PATH_TARGET)/VBoxGuestAdditions.iso.tmp + $(CP) -f $@.tmp $@ + $(RM) -f $@.tmp ifeq ($(KBUILD_HOST),win) buildserver-additions-affinity-hack: - $(SHELL) $(PATH_DEVTOOLS)/bin/additions.sh --cmd fetch --filename $(PATH_TARGET)/VBoxGuestAdditions.iso.tmp + $(SHELL) $(PATH_DEVTOOLS)/bin/additions.sh --cmd fetch --filename $(buildserver-additions_0_OUTDIR)/VBoxGuestAdditions.zip.tmp endif -endif +endif # VBOX_WITH_ADDITIONS_FROM_BUILD_SERVER # @@ -287,9 +305,6 @@ VirtualBox.chm UserManual.pdf \ $(foreach f,$(VBOX_MANUAL_ADD_LANGUAGES),VirtualBox_$(f).chm UserManual_$(f).pdf)) -## @todo Hack to get at TOOL_ZIP_UNPACK; see if this can be integrated somehow... -include $(KBUILD_PATH)/tools/ZIP.kmk - $$(buildserver-docs_0_OUTDIR)/unpacked.ts +| $(PATH_TARGET)/VirtualBox.chm $(PATH_TARGET)/UserManual.pdf \ $(foreach f,$(VBOX_MANUAL_ADD_LANGUAGES),$(PATH_TARGET)/VirtualBox_$(f).chm $(PATH_TARGET)/UserManual_$(f).pdf): \ $$(buildserver-docs_0_OUTDIR)/VBoxDocumentation.zip @@ -337,9 +352,6 @@ $(buildserver-efifw_0_OUTDIR)/VBoxEfiFirmware.zip.tmp ## @todo rainy day: cleanup the output directory (zip contains lots more) - ## @todo Hack to get at TOOL_ZIP_UNPACK; see if this can be integrated somehow... - include $(KBUILD_PATH)/tools/ZIP.kmk - $$(buildserver-efifw_0_OUTDIR)/unpacked.ts \ +| $$(buildserver-efifw_0_OUTDIR)/FV/VBOX.fd \ $$(buildserver-efifw_0_OUTDIR)/FV/VBOX64.fd: \ @@ -677,25 +689,52 @@ # @param 2 arch or *. # VBOX_RSYNC_IN_FN = rsync -a -v --delete --delete-excluded --prune-empty-dirs \ - --exclude .svn/ \ - --exclude doc/Devices/ \ - --exclude doc/tg/ \ - --exclude doc/vp/ \ - --exclude doc/L4VM/ \ - --exclude tinderclient.log \ - --exclude tools/FetchDir/ \ - --exclude webtools/ \ + --exclude=*.pyc \ + --exclude=.svn/ \ + --exclude=doc/Devices/ \ + --exclude=doc/tg/ \ + --exclude=doc/vp/ \ + --exclude=doc/L4VM/ \ + --exclude=tinderclient.log \ + --exclude=tools/FetchDir/ \ + --exclude=webtools/ \ $(foreach os,darwin freebsd linux solaris os2 win,$(if-expr "$(1)" != "$(os)", \ - --exclude tools/$(os).x86/ \ - --exclude tools/$(os).amd64/ \ - --exclude out/$(os).amd64/ \ - --exclude out/$(os).x86/ \ + --exclude=tools/$(os).x86/ \ + --exclude=tools/$(os).amd64/ \ + --exclude=out/$(os).amd64/ \ + --exclude=out/$(os).x86/ \ ,$(select \ - "$(2)" == "x86" , --exclude out/$(os).amd64/$(KBUILD_TYPE)/, \ - "$(2)" == "amd64", --exclude out/$(os).x86/$(KBUILD_TYPE)/) \ + "$(2)" == "x86" , --exclude=out/$(os).amd64/$(KBUILD_TYPE)/, \ + "$(2)" == "amd64", --exclude=out/$(os).x86/$(KBUILD_TYPE)/) \ )) # +# VM IP addresses. +# +VBOX_BLD_VM_LNX_IP := 192.168.27.2 +VBOX_BLD_VM_LNX_X86_IP := 192.168.27.11 +VBOX_BLD_VM_LNX_AMD64_IP := 192.168.27.12 +VBOX_BLD_VM_OS2_IP := 192.168.27.3 +VBOX_BLD_VM_SOLARIS_IP := 192.168.27.4 +VBOX_BLD_VM_DARWIN_X86_IP := 192.168.27.5 +VBOX_BLD_VM_DARWIN_AMD64_IP := 192.168.27.15 +VBOX_BLD_VM_WIN_X86_IP := 192.168.27.6 +VBOX_BLD_VM_WIN_AMD64_IP := 192.168.27.16 +VBOX_BLD_VM_FBSD_X86_IP := 192.168.27.7 +VBOX_BLD_VM_FBSD_AMD64_IP := 192.168.27.17 + +# +# For profiling the VM building steps. +# +if 0 + VBOX_BLD_VM_MSG_BEGIN = $(call MSG_L1,Building $1.) + VBOX_BLD_VM_MSG_END__ = +else + VBOX_BLD_VM_MSG_BEGIN = @echo `date "+%Y-%m-%dT%H:%M:%S"` - Start building $1. + VBOX_BLD_VM_MSG_END__ = @echo `date "+%Y-%m-%dT%H:%M:%S"` - Done building $1. +endif + +# # Build the additions, all of them. # # This is currently tailored (hardcoded) for the additions @@ -719,12 +758,20 @@ # built first. The windows amd64 additions need some x86 files, so don't change # the order of the windows builds. TODO: Split building and packing for these two VMs. additions-build: \ - additions-build-solaris.amd64 \ - additions-build-solaris.x86 \ + additions-build-rsync-into-vms \ additions-build-win.x86 \ additions-build-win.amd64 \ + additions-build-solaris.amd64 \ + additions-build-solaris.x86 \ additions-build-os2.x86 \ - additions-build-linux.x86.combined + additions-build-linux + +additions-build-rsync-into-vms: \ + additions-build-solaris.rsync-into-vm \ + additions-build-linux.rsync-into-vm + $(call MSG_L1,Rsynced the sources + tools into the VMs.) +.NOTPARALLEL: additions-build-rsync-into-vms + VBOX_ADDITIONS_BUILD.amd64 = VBOX_ONLY_ADDITIONS=1 VBOX_WITHOUT_ADDITIONS_ISO=1 \ KBUILD_TYPE=$(KBUILD_TYPE) BUILD_TYPE=$(KBUILD_TYPE) \ @@ -754,8 +801,9 @@ + $(VBOX_KMK_TIME) $(KMK) $(VBOX_ADDITIONS_BUILD.amd64) all $(VBOX_ADD_HOST_BUILD_TWEAK) + $(VBOX_KMK_TIME) $(KMK) $(VBOX_ADDITIONS_BUILD.amd64) packing else - $(call MSG_L1,Building Windows/amd64 additions) - $(VBOX_KMK_TIME) ssh vbox@192.168.27.5 " echo $@ && cd e:/$(VBOX_ADDITIONS_BUILD_SUBDIRNAME) && tools/env.sh kmk $(VBOX_ADDITIONS_BUILD.amd64) all packing " + $(call VBOX_BLD_VM_MSG_BEGIN,Windows/amd64 additions build+pack) + $(VBOX_KMK_TIME) ssh vbox@$(VBOX_BLD_VM_WIN_AMD64_IP) " echo $@ && cd e:/$(VBOX_ADDITIONS_BUILD_SUBDIRNAME) && tools/env.sh kmk $(VBOX_ADDITIONS_BUILD.amd64) all packing " + $(call VBOX_BLD_VM_MSG_END__,Windows/amd64 additions build+pack) endif additions-build-win.x86: @@ -763,8 +811,9 @@ + $(VBOX_KMK_TIME) $(KMK) $(VBOX_ADDITIONS_BUILD.x86) all $(VBOX_ADD_HOST_BUILD_TWEAK) + $(VBOX_KMK_TIME) $(KMK) $(VBOX_ADDITIONS_BUILD.x86) packing else - $(call MSG_L1,Building Windows/x86 additions) - $(VBOX_KMK_TIME) ssh vbox@192.168.27.5 " echo $@ && cd e:/$(VBOX_ADDITIONS_BUILD_SUBDIRNAME) && tools/env.sh kmk $(VBOX_ADDITIONS_BUILD.x86) all packing" + $(call VBOX_BLD_VM_MSG_BEGIN,Windows/x86 additions build.pack) + $(VBOX_KMK_TIME) ssh vbox@$(VBOX_BLD_VM_WIN_X86_IP) " echo $@ && cd e:/$(VBOX_ADDITIONS_BUILD_SUBDIRNAME) && tools/env.sh kmk $(VBOX_ADDITIONS_BUILD.x86) all packing" + $(call VBOX_BLD_VM_MSG_END__,Windows/x86 additions build+pack) endif # ASSUMES the 64-bit edition are built first. This also serializes VM access. @@ -777,22 +826,29 @@ + $(VBOX_KMK_TIME) $(KMK) $(VBOX_ADDITIONS_BUILD.x86) VBOX_WITH_COMBINED_SOLARIS_GUEST_PACKAGE=1 all $(VBOX_ADD_HOST_BUILD_TWEAK) + $(VBOX_KMK_TIME) $(KMK) $(VBOX_ADDITIONS_BUILD.x86) VBOX_WITH_COMBINED_SOLARIS_GUEST_PACKAGE=1 packing +additions-build-solaris.rsync-into-vm: else -additions-build-solaris.rsync-into-vm: $(VBOX_ADDITIONS_BUILD_WIN_HOST_FIRST) - $(VBOX_KMK_TIME) rsync -a --delete --delete-excluded --exclude .svn --exclude FetchDir --exclude tinderclient.log --exclude win.amd64 --exclude win.x86 . 192.168.27.4:/mnt/tinderbox/$(VBOX_ADDITIONS_BUILD_SUBDIRNAME) +additions-build-solaris.rsync-into-vm: + $(VBOX_KMK_TIME) $(call VBOX_RSYNC_IN_FN,solaris,*) \ + '--exclude=src/VBox/Additions/WINNT/**' \ + '--exclude=src/VBox/Frontends/**' \ + '--exclude=src/VBox/VMM/**' \ + . $(VBOX_BLD_VM_SOLARIS_IP):/mnt/tinderbox/$(VBOX_ADDITIONS_BUILD_SUBDIRNAME) additions-build-solaris.build-it: additions-build-solaris.rsync-into-vm - $(call MSG_L1,Building Solaris/amd64 additions) - $(VBOX_KMK_TIME) ssh vbox@192.168.27.4 " echo $@/amd64 && cd /mnt/tinderbox/$(VBOX_ADDITIONS_BUILD_SUBDIRNAME) && tools/env.sh --no-wine kmk $(VBOX_ADDITIONS_BUILD.amd64) all packing" - $(call MSG_L1,Building Solaris/x86 additions) - $(VBOX_KMK_TIME) ssh vbox@192.168.27.4 " echo $@/x86 && cd /mnt/tinderbox/$(VBOX_ADDITIONS_BUILD_SUBDIRNAME) && tools/env.sh --no-wine kmk $(VBOX_ADDITIONS_BUILD.x86) all packing VBOX_WITH_COMBINED_SOLARIS_GUEST_PACKAGE=1" + $(call VBOX_BLD_VM_MSG_BEGIN,Solaris/amd64 additions build+pack) + $(VBOX_KMK_TIME) ssh vbox@$(VBOX_BLD_VM_SOLARIS_IP) " echo $@/amd64 && cd /mnt/tinderbox/$(VBOX_ADDITIONS_BUILD_SUBDIRNAME) && tools/env.sh --no-wine kmk $(VBOX_ADDITIONS_BUILD.amd64) all packing" + $(call VBOX_BLD_VM_MSG_END__,Solaris/amd64 additions build+pack) + $(call VBOX_BLD_VM_MSG_BEGIN,Solaris/x86 additions build+pack) + $(VBOX_KMK_TIME) ssh vbox@$(VBOX_BLD_VM_SOLARIS_IP) " echo $@/x86 && cd /mnt/tinderbox/$(VBOX_ADDITIONS_BUILD_SUBDIRNAME) && tools/env.sh --no-wine kmk $(VBOX_ADDITIONS_BUILD.x86) all packing VBOX_WITH_COMBINED_SOLARIS_GUEST_PACKAGE=1" + $(call VBOX_BLD_VM_MSG_END__,Solaris/x86 additions build+pack) additions-build-solaris.rsync-out-of-vm: additions-build-solaris.build-it - $(VBOX_KMK_TIME) rsync -a --delete 192.168.27.4:/mnt/tinderbox/$(VBOX_ADDITIONS_BUILD_SUBDIRNAME)/out/solaris.x86 out/ - $(VBOX_KMK_TIME) rsync -a --delete 192.168.27.4:/mnt/tinderbox/$(VBOX_ADDITIONS_BUILD_SUBDIRNAME)/out/solaris.amd64 out/ + $(VBOX_KMK_TIME) rsync -a --delete $(VBOX_BLD_VM_SOLARIS_IP):/mnt/tinderbox/$(VBOX_ADDITIONS_BUILD_SUBDIRNAME)/out/solaris.x86 out/ + $(VBOX_KMK_TIME) rsync -a --delete $(VBOX_BLD_VM_SOLARIS_IP):/mnt/tinderbox/$(VBOX_ADDITIONS_BUILD_SUBDIRNAME)/out/solaris.amd64 out/ -.NOTPARALLEL: additions-build-solaris.rsync-out-of-vm additions-build-solaris.rsync-into-vm -.PHONY: additions-build-solaris.rsync-out-of-vm additions-build-solaris.rsync-into-vm additions-build-solaris.build-it +.NOTPARALLEL: additions-build-solaris.rsync-into-vm +.PHONY: additions-build-solaris.rsync-into-vm additions-build-solaris.rsync-out-of-vm additions-build-solaris.build-it additions-build-solaris.amd64: additions-build-solaris.rsync-out-of-vm additions-build-solaris.x86: additions-build-solaris.rsync-out-of-vm @@ -803,38 +859,49 @@ # + $(VBOX_KMK_TIME) $(KMK) $(VBOX_ADDITIONS_BUILD.x86) all $(VBOX_ADD_HOST_BUILD_TWEAK) # + $(VBOX_KMK_TIME) $(KMK) $(VBOX_ADDITIONS_BUILD.x86) packing #else -# $(VBOX_KMK_TIME) ssh vbox@192.168.27.3 " cd /mnt/tinderbox/$(VBOX_ADDITIONS_BUILD_SUBDIRNAME) && tools/env.sh --no-wine kmk $(VBOX_ADDITIONS_BUILD.x86) " +# $(VBOX_KMK_TIME) ssh vbox@$(VBOX_BLD_VM_OS2_IP) " cd /mnt/tinderbox/$(VBOX_ADDITIONS_BUILD_SUBDIRNAME) && tools/env.sh --no-wine kmk $(VBOX_ADDITIONS_BUILD.x86) " #endif -additions-build-linux.amd64: $(VBOX_ADDITIONS_BUILD_WIN_HOST_FIRST) -ifeq ($(KBUILD_TARGET).$(KBUILD_TARGET_ARCH),linux.amd64) +ifeq ($(KBUILD_TARGET),linux) +additions-build-linux.amd64: + $(VBOX_KMK_TIME) $(KMK) $(VBOX_ADDITIONS_BUILD.amd64) all $(VBOX_ADD_HOST_BUILD_TWEAK) + $(VBOX_KMK_TIME) $(KMK) $(VBOX_ADDITIONS_BUILD.amd64) packing VBOX_WITHOUT_LINUX_GUEST_PACKAGE=1 -else - $(call MSG_L1,Building Linux/amd64 additions) - $(VBOX_KMK_TIME) ssh vbox@192.168.27.12 " echo $@ && cd /mnt/tinderbox/$(VBOX_ADDITIONS_BUILD_SUBDIRNAME) && tools/env.sh --no-wine kmk $(VBOX_ADDITIONS_BUILD.amd64) all packing VBOX_WITHOUT_LINUX_GUEST_PACKAGE=1" -endif -additions-build-linux.x86: $(VBOX_ADDITIONS_BUILD_WIN_HOST_FIRST) -ifeq ($(KBUILD_TARGET).$(KBUILD_TARGET_ARCH),linux.x86) +additions-build-linux.x86: + $(VBOX_KMK_TIME) $(KMK) $(VBOX_ADDITIONS_BUILD.x86) all $(VBOX_ADD_HOST_BUILD_TWEAK) + $(VBOX_KMK_TIME) $(KMK) $(VBOX_ADDITIONS_BUILD.x86) packing VBOX_WITHOUT_LINUX_GUEST_PACKAGE=1 -else - $(call MSG_L1,Building Linux/x86 additions) - $(VBOX_KMK_TIME) ssh vbox@192.168.27.2 " echo $@ && cd /mnt/tinderbox/$(VBOX_ADDITIONS_BUILD_SUBDIRNAME) && tools/env.sh --no-wine kmk $(VBOX_ADDITIONS_BUILD.x86) all packing VBOX_WITHOUT_LINUX_GUEST_PACKAGE=1" -endif -# Combined Linux Additions .run package. This depends on the archives -# created during packing by the archetecture-specific builds. -additions-build-linux.x86.combined: $(VBOX_ADDITIONS_BUILD_WIN_HOST_FIRST) additions-build-linux.x86 additions-build-linux.amd64 -ifeq ($(KBUILD_TARGET).$(KBUILD_TARGET_ARCH),linux.x86) +additions-build-linux: additions-build-linux.x86 additions-build-linux.amd64 + $(VBOX_KMK_TIME) $(KMK) $(VBOX_ADDITIONS_BUILD.x86) all $(VBOX_ADD_HOST_BUILD_TWEAK) + $(VBOX_KMK_TIME) $(KMK) $(VBOX_ADDITIONS_BUILD.x86) packing VBOX_WITH_COMBINED_LINUX_GUEST_PACKAGE=1 else - $(call MSG_L1,Building Linux/x86 additions) - $(VBOX_KMK_TIME) ssh vbox@192.168.27.2 " echo $@ && cd /mnt/tinderbox/$(VBOX_ADDITIONS_BUILD_SUBDIRNAME) && tools/env.sh --no-wine kmk $(VBOX_ADDITIONS_BUILD.x86) all packing VBOX_WITH_COMBINED_LINUX_GUEST_PACKAGE=1" -endif +additions-build-linux.rsync-into-vm: + $(VBOX_KMK_TIME) $(call VBOX_RSYNC_IN_FN,linux,*) \ + '--exclude=src/VBox/Additions/WINNT/**' \ + '--exclude=src/VBox/Frontends/**' \ + '--exclude=src/VBox/VMM/**' \ + . $(VBOX_BLD_VM_LNX_IP):/mnt/tinderbox/$(VBOX_ADDITIONS_BUILD_SUBDIRNAME) + +additions-build-linux.build-it: additions-build-linux.rsync-into-vm + $(call VBOX_BLD_VM_MSG_BEGIN,Linux/amd64 additions build+pack) + $(VBOX_KMK_TIME) ssh 'vbox@$(VBOX_BLD_VM_LNX_IP) "echo $@ && dchroot -c debian-4.0-amd64 \"cd /mnt/tinderbox/$(VBOX_ADDITIONS_BUILD_SUBDIRNAME) && tools/env.sh --no-wine kmk $(VBOX_ADDITIONS_BUILD.amd64) all packing VBOX_WITHOUT_LINUX_GUEST_PACKAGE=1\""' + $(call VBOX_BLD_VM_MSG_END__,Linux/amd64 additions build+pack) + $(call VBOX_BLD_VM_MSG_BEGIN,Linux/x86 additions build+pack) + $(VBOX_KMK_TIME) ssh 'vbox@$(VBOX_BLD_VM_LNX_IP) "echo $@ && linux32 dchroot -c rhel3-i386 \"cd /mnt/tinderbox/$(VBOX_ADDITIONS_BUILD_SUBDIRNAME) && tools/env.sh --no-wine kmk $(VBOX_ADDITIONS_BUILD.x86) all packing VBOX_WITHOUT_LINUX_GUEST_PACKAGE=1\""' + $(call VBOX_BLD_VM_MSG_END__,Linux/x86 additions build+pack) + $(call VBOX_BLD_VM_MSG_BEGIN,Linux/x86 additions combine) + $(VBOX_KMK_TIME) ssh 'vbox@$(VBOX_BLD_VM_LNX_IP) "echo $@ && linux32 dchroot -c rhel3-i386 \"cd /mnt/tinderbox/$(VBOX_ADDITIONS_BUILD_SUBDIRNAME) && tools/env.sh --no-wine kmk $(VBOX_ADDITIONS_BUILD.x86) all packing VBOX_WITH_COMBINED_LINUX_GUEST_PACKAGE=1\""' + $(call VBOX_BLD_VM_MSG_END__,Linux/x86 additions combine) + +additions-build-linux.rsync-out-of-vm: additions-build-linux.build-it + $(VBOX_KMK_TIME) rsync -a --delete $(VBOX_BLD_VM_LNX_IP):/mnt/tinderbox/$(VBOX_ADDITIONS_BUILD_SUBDIRNAME)/out/linux.x86 out/ + $(VBOX_KMK_TIME) rsync -a --delete $(VBOX_BLD_VM_LNX_IP):/mnt/tinderbox/$(VBOX_ADDITIONS_BUILD_SUBDIRNAME)/out/linux.amd64 out/ + +.NOTPARALLEL: additions-build-linux.rsync-into-vm +.PHONY: additions-build-linux.rsync-into-vm additions-build-linux.rsync-out-of-vm additions-build-linux.build-it +additions-build-linux: additions-build-linux.rsync-out-of-vm +endif additions-packing: + $(KMK) VBOX_ONLY_ADDITIONS=1 \ @@ -849,7 +916,7 @@ VBOX_WITH_ADDITIONS_ISO.win.amd64=1 \ VBOX_WITH_ADDITIONS_ISO.win.x86=1 \ -C src/VBox/Additions \ - $(VBOX_PATH_ADDITIONS)/VBoxGuestAdditions.iso + $(VBOX_PATH_ADDITIONS)/VBoxGuestAdditions.zip .PHONY: \ additions-build-win.x86 \ @@ -857,9 +924,9 @@ additions-build-solaris.amd64 \ additions-build-solaris.x86 \ additions-build-os2.x86 \ + additions-build-linux \ additions-build-linux.amd64 \ additions-build-linux.x86 \ - additions-build-linux.x86.combined \ additions-packing @@ -892,8 +959,7 @@ extpacks-build-solaris.amd64 \ extpacks-build-solaris.x86 \ extpacks-build-os2.x86 \ - extpacks-build-linux.amd64 \ - extpacks-build-linux.x86 \ + extpacks-build-linux \ extpacks-build-darwin.amd64 \ extpacks-build-darwin.x86 \ extpacks-build-freebsd.amd64 \ @@ -925,16 +991,18 @@ ifeq ($(KBUILD_TARGET),win) + $(VBOX_KMK_TIME) $(KMK) $(VBOX_EXTPACKS_BUILD.amd64) all $(VBOX_EXTPACKS_HOST_BUILD_TWEAK) else - $(call MSG_L1,Building Windows/amd64 extension packs) - $(VBOX_KMK_TIME) ssh vbox@192.168.27.6 " echo $@ && cd e:/$(VBOX_EXTPACKS_BUILD_SUBDIRNAME) && tools/env.sh kmk $(VBOX_EXTPACKS_BUILD.amd64) all" + $(call VBOX_BLD_VM_MSG_BEGIN,Windows/amd64 extension packs) + $(VBOX_KMK_TIME) ssh vbox@$(VBOX_BLD_VM_WIN_AMD64_IP) " echo $@ && cd e:/$(VBOX_EXTPACKS_BUILD_SUBDIRNAME) && tools/env.sh kmk $(VBOX_EXTPACKS_BUILD.amd64) all" + $(call VBOX_BLD_VM_MSG_END__,Windows/amd64 extension packs) endif extpacks-build-win.x86: ifeq ($(KBUILD_TARGET),win) + $(VBOX_KMK_TIME) $(KMK) $(VBOX_EXTPACKS_BUILD.x86) all $(VBOX_EXTPACKS_HOST_BUILD_TWEAK) else - $(call MSG_L1,Building Windows/x86 extension packs) - $(VBOX_KMK_TIME) ssh vbox@192.168.27.16 " echo $@ && cd e:/$(VBOX_EXTPACKS_BUILD_SUBDIRNAME) && tools/env.sh kmk $(VBOX_EXTPACKS_BUILD.x86) all" + $(call VBOX_BLD_VM_MSG_BEGIN,Windows/x86 extension packs) + $(VBOX_KMK_TIME) ssh vbox@$(VBOX_BLD_VM_WIN_X86_IP) " echo $@ && cd e:/$(VBOX_EXTPACKS_BUILD_SUBDIRNAME) && tools/env.sh kmk $(VBOX_EXTPACKS_BUILD.x86) all" + $(call VBOX_BLD_VM_MSG_END__,Windows/x86 extension packs) endif ifeq ($(KBUILD_TARGET),solaris) @@ -947,19 +1015,21 @@ else # Serialize 32-bit and 64-bit ASSUMING the same VM builds both. extpacks-build-solaris.rsync-into-vm: $(VBOX_EXTPACKS_BUILD_WIN_HOST_FIRST) - $(VBOX_KMK_TIME) $(call VBOX_RSYNC_IN_FN,solaris,*) . 192.168.27.4:/mnt/tinderbox/$(VBOX_EXTPACKS_BUILD_SUBDIRNAME) + $(VBOX_KMK_TIME) $(call VBOX_RSYNC_IN_FN,solaris,*) . $(VBOX_BLD_VM_SOLARIS_IP):/mnt/tinderbox/$(VBOX_EXTPACKS_BUILD_SUBDIRNAME) extpacks-build-solaris.build-it: extpacks-build-solaris.rsync-into-vm - $(call MSG_L1,Building Solaris/amd64 extension packs) - $(VBOX_KMK_TIME) ssh vbox@192.168.27.4 " echo $@/amd64 && cd /mnt/tinderbox/$(VBOX_EXTPACKS_BUILD_SUBDIRNAME) && tools/env.sh --no-wine kmk $(VBOX_EXTPACKS_BUILD.amd64) all" - $(call MSG_L1,Building Solaris/x86 extension packs) - $(VBOX_KMK_TIME) ssh vbox@192.168.27.4 " echo $@/x86 && cd /mnt/tinderbox/$(VBOX_EXTPACKS_BUILD_SUBDIRNAME) && tools/env.sh --no-wine kmk $(VBOX_EXTPACKS_BUILD.x86) all" + $(call VBOX_BLD_VM_MSG_BEGIN,Solaris/amd64 extension packs) + $(VBOX_KMK_TIME) ssh vbox@$(VBOX_BLD_VM_SOLARIS_IP) " echo $@/amd64 && cd /mnt/tinderbox/$(VBOX_EXTPACKS_BUILD_SUBDIRNAME) && tools/env.sh --no-wine kmk $(VBOX_EXTPACKS_BUILD.amd64) all" + $(call VBOX_BLD_VM_MSG_END__,Solaris/amd64 extension packs) + $(call VBOX_BLD_VM_MSG_BEGIN,Solaris/x86 extension packs) + $(VBOX_KMK_TIME) ssh vbox@$(VBOX_BLD_VM_SOLARIS_IP) " echo $@/x86 && cd /mnt/tinderbox/$(VBOX_EXTPACKS_BUILD_SUBDIRNAME) && tools/env.sh --no-wine kmk $(VBOX_EXTPACKS_BUILD.x86) all" + $(call VBOX_BLD_VM_MSG_END__,Solaris/x86 extension packs) extpacks-build-solaris.rsync-out-of-vm: extpacks-build-solaris.build-it - $(VBOX_KMK_TIME) rsync -a --delete 192.168.27.4:/mnt/tinderbox/$(VBOX_EXTPACKS_BUILD_SUBDIRNAME)/out/solaris.x86 out/ - $(VBOX_KMK_TIME) rsync -a --delete 192.168.27.4:/mnt/tinderbox/$(VBOX_EXTPACKS_BUILD_SUBDIRNAME)/out/solaris.amd64 out/ + $(VBOX_KMK_TIME) rsync -a --delete $(VBOX_BLD_VM_SOLARIS_IP):/mnt/tinderbox/$(VBOX_EXTPACKS_BUILD_SUBDIRNAME)/out/solaris.x86 out/ + $(VBOX_KMK_TIME) rsync -a --delete $(VBOX_BLD_VM_SOLARIS_IP):/mnt/tinderbox/$(VBOX_EXTPACKS_BUILD_SUBDIRNAME)/out/solaris.amd64 out/ -.NOTPARALLEL: extpacks-build-solaris.rsync-out-of-vm extpacks-build-solaris.rsync-into-vm +#.NOTPARALLEL: extpacks-build-solaris.rsync-into-vm .PHONY: extpacks-build-solaris.rsync-out-of-vm extpacks-build-solaris.rsync-into-vm extpacks-build-solaris.build-it extpacks-build-solaris.amd64: extpacks-build-solaris.rsync-out-of-vm @@ -970,59 +1040,78 @@ #ifeq ($(KBUILD_TARGET),os2) # + $(VBOX_KMK_TIME) $(KMK) $(VBOX_EXTPACKS_BUILD.x86) all $(VBOX_EXTPACKS_HOST_BUILD_TWEAK) #else -# $(VBOX_KMK_TIME) ssh vbox@192.168.27.3 " cd /mnt/tinderbox/$(VBOX_EXTPACKS_BUILD_SUBDIRNAME) && tools/env.sh --no-wine kmk $(VBOX_EXTPACKS_BUILD.x86) " +# $(VBOX_KMK_TIME) ssh vbox@$(VBOX_BLD_VM_OS2_IP) " cd /mnt/tinderbox/$(VBOX_EXTPACKS_BUILD_SUBDIRNAME) && tools/env.sh --no-wine kmk $(VBOX_EXTPACKS_BUILD.x86) " #endif +ifeq ($(KBUILD_TARGET),linux) extpacks-build-linux.amd64: $(VBOX_EXTPACKS_BUILD_WIN_HOST_FIRST) -ifeq ($(KBUILD_TARGET).$(KBUILD_TARGET_ARCH),linux.amd64) + $(VBOX_KMK_TIME) $(KMK) $(VBOX_EXTPACKS_BUILD.amd64) all $(VBOX_EXTPACKS_HOST_BUILD_TWEAK) -else - $(call MSG_L1,Building Linux/amd64 extension packs) - $(VBOX_KMK_TIME) ssh vbox@192.168.27.12 " echo $@ && cd /mnt/tinderbox/$(VBOX_EXTPACKS_BUILD_SUBDIRNAME) && tools/env.sh --no-wine kmk $(VBOX_EXTPACKS_BUILD.amd64) all" -endif extpacks-build-linux.x86: $(VBOX_EXTPACKS_BUILD_WIN_HOST_FIRST) -ifeq ($(KBUILD_TARGET).$(KBUILD_TARGET_ARCH),linux.x86) + $(VBOX_KMK_TIME) $(KMK) $(VBOX_EXTPACKS_BUILD.x86) all $(VBOX_EXTPACKS_HOST_BUILD_TWEAK) + +extpacks-build-linux: extpacks-build-linux.x86 extpacks-build-linux.amd64 else - $(call MSG_L1,Building Linux/x86 extension packs) - $(VBOX_KMK_TIME) ssh vbox@192.168.27.11 " echo $@ && cd /mnt/tinderbox/$(VBOX_EXTPACKS_BUILD_SUBDIRNAME) && tools/env.sh --no-wine kmk $(VBOX_EXTPACKS_BUILD.x86) all" +# Serialize 32-bit and 64-bit ASSUMING the same VM builds both. +extpacks-build-linux.rsync-into-vm: $(VBOX_EXTPACKS_BUILD_WIN_HOST_FIRST) + $(VBOX_KMK_TIME) $(call VBOX_RSYNC_IN_FN,linux,*) . $(VBOX_BLD_VM_LNX_IP):/mnt/tinderbox/$(VBOX_EXTPACKS_BUILD_SUBDIRNAME) + +extpacks-build-linux.build-it: extpacks-build-linux.rsync-into-vm + $(call VBOX_BLD_VM_MSG_BEGIN,Linux/amd64 extension packs) + $(VBOX_KMK_TIME) ssh 'vbox@$(VBOX_BLD_VM_LNX_IP) " echo $@ && dchroot -c debian-4.0-amd64 \"cd /mnt/tinderbox/$(VBOX_EXTPACKS_BUILD_SUBDIRNAME) && tools/env.sh --no-wine kmk $(VBOX_EXTPACKS_BUILD.amd64) all\""' + $(call VBOX_BLD_VM_MSG_END__,Linux/amd64 extension packs) + $(call VBOX_BLD_VM_MSG_BEGIN,Linux/x86 extension packs) + $(VBOX_KMK_TIME) ssh 'vbox@$(VBOX_BLD_VM_LNX_IP) " echo $@ && linux32 dchroot -c debian-4.0-i386 \"cd /mnt/tinderbox/$(VBOX_EXTPACKS_BUILD_SUBDIRNAME) && tools/env.sh --no-wine kmk $(VBOX_EXTPACKS_BUILD.x86) all\""' + $(call VBOX_BLD_VM_MSG_END__,Linux/x86 extension packs) + +extpacks-build-linux.rsync-out-of-vm: extpacks-build-linux.build-it + $(VBOX_KMK_TIME) rsync -a --delete $(VBOX_BLD_VM_LNX_IP):/mnt/tinderbox/$(VBOX_EXTPACKS_BUILD_SUBDIRNAME)/out/linux.x86 out/ + $(VBOX_KMK_TIME) rsync -a --delete $(VBOX_BLD_VM_LNX_IP):/mnt/tinderbox/$(VBOX_EXTPACKS_BUILD_SUBDIRNAME)/out/linux.amd64 out/ + +#.NOTPARALLEL: extpacks-build-linux.rsync-into-vm +.PHONY: extpacks-build-linux.rsync-out-of-vm extpacks-build-linux.rsync-into-vm extpacks-build-linux.build-it + +extpacks-build-linux: extpacks-build-linux.rsync-out-of-vm endif extpacks-build-freebsd.amd64: $(VBOX_EXTPACKS_BUILD_WIN_HOST_FIRST) #ifeq ($(KBUILD_TARGET).$(KBUILD_TARGET_ARCH),freebsd.amd64) # + $(VBOX_KMK_TIME) $(KMK) $(VBOX_EXTPACKS_BUILD.amd64) all $(VBOX_EXTPACKS_HOST_BUILD_TWEAK) #else -# $(call MSG_L1,Building FreeBSD/amd64 extension packs) -# $(VBOX_KMK_TIME) ssh vbox@192.168.27.17 " echo $@ && cd /mnt/tinderbox/$(VBOX_EXTPACKS_BUILD_SUBDIRNAME) && tools/env.sh --no-wine kmk $(VBOX_EXTPACKS_BUILD.amd64) all" +# $(call VBOX_BLD_VM_MSG_BEGIN,FreeBSD/amd64 extension packs) +# $(VBOX_KMK_TIME) ssh vbox@$(VBOX_BLD_VM_FBSD_AMD64_IP) " echo $@ && cd /mnt/tinderbox/$(VBOX_EXTPACKS_BUILD_SUBDIRNAME) && tools/env.sh --no-wine kmk $(VBOX_EXTPACKS_BUILD.amd64) all" +# $(call VBOX_BLD_VM_MSG_END__,FreeBSD/amd64 extension packs) #endif extpacks-build-freebsd.x86: $(VBOX_EXTPACKS_BUILD_WIN_HOST_FIRST) #ifeq ($(KBUILD_TARGET).$(KBUILD_TARGET_ARCH),freebsd.x86) # + $(VBOX_KMK_TIME) $(KMK) $(VBOX_EXTPACKS_BUILD.x86) all $(VBOX_EXTPACKS_HOST_BUILD_TWEAK) #else -# $(call MSG_L1,Building FreeBSD/x86 extension packs) -# $(VBOX_KMK_TIME) ssh vbox@192.168.27.7 " echo $@ && cd /mnt/tinderbox/$(VBOX_EXTPACKS_BUILD_SUBDIRNAME) && tools/env.sh --no-wine kmk $(VBOX_EXTPACKS_BUILD.x86) all" +# $(call VBOX_BLD_VM_MSG_BEGIN,FreeBSD/x86 extension packs) +# $(VBOX_KMK_TIME) ssh vbox@$(VBOX_BLD_VM_FBSD_X86_IP) " echo $@ && cd /mnt/tinderbox/$(VBOX_EXTPACKS_BUILD_SUBDIRNAME) && tools/env.sh --no-wine kmk $(VBOX_EXTPACKS_BUILD.x86) all" +# $(call VBOX_BLD_VM_MSG_END__,FreeBSD/x86 extension packs) #endif extpacks-build-darwin.amd64: $(VBOX_EXTPACKS_BUILD_WIN_HOST_FIRST) ifeq ($(KBUILD_TARGET).$(KBUILD_TARGET_ARCH),darwin.amd64) + $(VBOX_KMK_TIME) $(KMK) $(VBOX_EXTPACKS_BUILD.amd64) all $(VBOX_EXTPACKS_HOST_BUILD_TWEAK) else - $(call MSG_L1,Building Darwin/amd64 extension packs) - $(VBOX_KMK_TIME) $(call VBOX_RSYNC_IN_FN,darwin,amd64) . 192.168.27.15:/Users/vbox/tinderbox/$(VBOX_EXTPACKS_BUILD_SUBDIRNAME) - $(VBOX_KMK_TIME) ssh vbox@192.168.27.15 " echo $@ && cd /Users/vbox/tinderbox/$(VBOX_EXTPACKS_BUILD_SUBDIRNAME) && tools/env.sh --no-wine kmk $(VBOX_EXTPACKS_BUILD.amd64) all" - $(VBOX_KMK_TIME) rsync -am -v --delete 192.168.27.15:/Users/vbox/tinderbox/$(VBOX_EXTPACKS_BUILD_SUBDIRNAME)/out/darwin.amd64 out/ + $(call VBOX_BLD_VM_MSG_BEGIN,Darwin/amd64 extension packs) + $(VBOX_KMK_TIME) $(call VBOX_RSYNC_IN_FN,darwin,amd64) . $(VBOX_BLD_VM_DARWIN_AMD64_IP):/Users/vbox/tinderbox/$(VBOX_EXTPACKS_BUILD_SUBDIRNAME) + $(VBOX_KMK_TIME) ssh vbox@$(VBOX_BLD_VM_DARWIN_AMD64_IP) " echo $@ && cd /Users/vbox/tinderbox/$(VBOX_EXTPACKS_BUILD_SUBDIRNAME) && tools/env.sh --no-wine kmk $(VBOX_EXTPACKS_BUILD.amd64) all" + $(VBOX_KMK_TIME) rsync -am -v --delete $(VBOX_BLD_VM_DARWIN_AMD64_IP):/Users/vbox/tinderbox/$(VBOX_EXTPACKS_BUILD_SUBDIRNAME)/out/darwin.amd64 out/ + $(call VBOX_BLD_VM_MSG_END__,Darwin/amd64 extension packs) endif extpacks-build-darwin.x86: $(VBOX_EXTPACKS_BUILD_WIN_HOST_FIRST) ifeq ($(KBUILD_TARGET).$(KBUILD_TARGET_ARCH),darwin.x86) + $(VBOX_KMK_TIME) $(KMK) $(VBOX_EXTPACKS_BUILD.x86) all $(VBOX_EXTPACKS_HOST_BUILD_TWEAK) else - $(call MSG_L1,Building Darwin/x86 extension packs) - $(VBOX_KMK_TIME) $(call VBOX_RSYNC_IN_FN,darwin,x86) . 192.168.27.5:/Users/vbox/tinderbox/$(VBOX_EXTPACKS_BUILD_SUBDIRNAME) - $(VBOX_KMK_TIME) ssh vbox@192.168.27.5 " echo $@ && cd /Users/vbox/tinderbox/$(VBOX_EXTPACKS_BUILD_SUBDIRNAME) && tools/env.sh --no-wine kmk $(VBOX_EXTPACKS_BUILD.x86) all" - $(VBOX_KMK_TIME) rsync -am -v --delete 192.168.27.5:/Users/vbox/tinderbox/$(VBOX_EXTPACKS_BUILD_SUBDIRNAME)/out/darwin.x86 out/ + $(call VBOX_BLD_VM_MSG_BEGIN,Darwin/x86 extension packs) + $(VBOX_KMK_TIME) $(call VBOX_RSYNC_IN_FN,darwin,x86) . $(VBOX_BLD_VM_DARWIN_X86_IP):/Users/vbox/tinderbox/$(VBOX_EXTPACKS_BUILD_SUBDIRNAME) + $(VBOX_KMK_TIME) ssh vbox@$(VBOX_BLD_VM_DARWIN_X86_IP) " echo $@ && cd /Users/vbox/tinderbox/$(VBOX_EXTPACKS_BUILD_SUBDIRNAME) && tools/env.sh --no-wine kmk $(VBOX_EXTPACKS_BUILD.x86) all" + $(VBOX_KMK_TIME) rsync -am -v --delete $(VBOX_BLD_VM_DARWIN_X86_IP):/Users/vbox/tinderbox/$(VBOX_EXTPACKS_BUILD_SUBDIRNAME)/out/darwin.x86 out/ + $(call VBOX_BLD_VM_MSG_END__,Darwin/x86 extension packs) endif @@ -1038,6 +1127,7 @@ extpacks-build-solaris.amd64 \ extpacks-build-solaris.x86 \ extpacks-build-os2.x86 \ + extpacks-build-linux \ extpacks-build-linux.amd64 \ extpacks-build-linux.x86 \ extpacks-build-freebsd.amd64 \ @@ -1109,7 +1199,7 @@ + $(VBOX_KMK_TIME) $(KMK) $(VBOX_TESTSUITE_BUILD.amd64) all $(VBOX_TESTSUITE_HOST_BUILD_TWEAK) else $(call MSG_L1,Building Windows/amd64 testsuite) - $(VBOX_KMK_TIME) ssh vbox@192.168.27.6 " echo $@ && cd e:/$(VBOX_TESTSUITE_BUILD_SUBDIRNAME) && tools/env.sh kmk $(VBOX_TESTSUITE_BUILD.amd64) all " + $(VBOX_KMK_TIME) ssh vbox@$(VBOX_BLD_VM_WIN_X86_IP) " echo $@ && cd e:/$(VBOX_TESTSUITE_BUILD_SUBDIRNAME) && tools/env.sh kmk $(VBOX_TESTSUITE_BUILD.amd64) all " endif testsuite-build-win.x86: @@ -1117,7 +1207,7 @@ + $(VBOX_KMK_TIME) $(KMK) $(VBOX_TESTSUITE_BUILD.x86) all $(VBOX_TESTSUITE_HOST_BUILD_TWEAK) else $(call MSG_L1,Building Windows/x86 testsuite) - $(VBOX_KMK_TIME) ssh vbox@192.168.27.16 " echo $@ && cd e:/$(VBOX_TESTSUITE_BUILD_SUBDIRNAME) && tools/env.sh kmk $(VBOX_TESTSUITE_BUILD.x86) all" + $(VBOX_KMK_TIME) ssh vbox@$(VBOX_BLD_VM_WIN_AMD64_IP) " echo $@ && cd e:/$(VBOX_TESTSUITE_BUILD_SUBDIRNAME) && tools/env.sh kmk $(VBOX_TESTSUITE_BUILD.x86) all" endif ifeq ($(KBUILD_TARGET),solaris) @@ -1129,19 +1219,19 @@ else testsuite-build-solaris.rsync-into-vm: $(VBOX_TESTSUITE_BUILD_WIN_HOST_FIRST) - $(VBOX_KMK_TIME) rsync -a --delete --delete-excluded --exclude .svn --exclude FetchDir --exclude tinderclient.log --exclude win.amd64 --exclude win.x86 . 192.168.27.4:/mnt/tinderbox/$(VBOX_TESTSUITE_BUILD_SUBDIRNAME) + $(VBOX_KMK_TIME) rsync -a --delete --delete-excluded --exclude=.svn --exclude=FetchDir --exclude=tinderclient.log --exclude=win.amd64 --exclude=win.x86 . $(VBOX_BLD_VM_SOLARIS_IP):/mnt/tinderbox/$(VBOX_TESTSUITE_BUILD_SUBDIRNAME) testsuite-build-solaris.build-it: testsuite-build-solaris.rsync-into-vm $(call MSG_L1,Building Solaris/amd64 testsuite) - $(VBOX_KMK_TIME) ssh vbox@192.168.27.4 " echo $@/amd64 && cd /mnt/tinderbox/$(VBOX_TESTSUITE_BUILD_SUBDIRNAME) && tools/env.sh --no-wine kmk $(VBOX_TESTSUITE_BUILD.amd64) all" + $(VBOX_KMK_TIME) ssh vbox@$(VBOX_BLD_VM_SOLARIS_IP) " echo $@/amd64 && cd /mnt/tinderbox/$(VBOX_TESTSUITE_BUILD_SUBDIRNAME) && tools/env.sh --no-wine kmk $(VBOX_TESTSUITE_BUILD.amd64) all" $(call MSG_L1,Building Solaris/x86 testsuite) - $(VBOX_KMK_TIME) ssh vbox@192.168.27.4 " echo $@/x86 && cd /mnt/tinderbox/$(VBOX_TESTSUITE_BUILD_SUBDIRNAME) && tools/env.sh --no-wine kmk $(VBOX_TESTSUITE_BUILD.x86) all " + $(VBOX_KMK_TIME) ssh vbox@$(VBOX_BLD_VM_SOLARIS_IP) " echo $@/x86 && cd /mnt/tinderbox/$(VBOX_TESTSUITE_BUILD_SUBDIRNAME) && tools/env.sh --no-wine kmk $(VBOX_TESTSUITE_BUILD.x86) all " testsuite-build-solaris.rsync-out-of-vm: testsuite-build-solaris.build-it - $(VBOX_KMK_TIME) rsync -a --delete 192.168.27.4:/mnt/tinderbox/$(VBOX_TESTSUITE_BUILD_SUBDIRNAME)/out/solaris.x86 out/ - $(VBOX_KMK_TIME) rsync -a --delete 192.168.27.4:/mnt/tinderbox/$(VBOX_TESTSUITE_BUILD_SUBDIRNAME)/out/solaris.amd64 out/ + $(VBOX_KMK_TIME) rsync -a --delete $(VBOX_BLD_VM_SOLARIS_IP):/mnt/tinderbox/$(VBOX_TESTSUITE_BUILD_SUBDIRNAME)/out/solaris.x86 out/ + $(VBOX_KMK_TIME) rsync -a --delete $(VBOX_BLD_VM_SOLARIS_IP):/mnt/tinderbox/$(VBOX_TESTSUITE_BUILD_SUBDIRNAME)/out/solaris.amd64 out/ -.NOTPARALLEL: testsuite-build-solaris.rsync-out-of-vm testsuite-build-solaris.rsync-into-vm +.NOTPARALLEL: testsuite-build-solaris.rsync-into-vm .PHONY: testsuite-build-solaris.rsync-out-of-vm testsuite-build-solaris.rsync-into-vm testsuite-build-solaris.build-it testsuite-build-solaris.amd64: testsuite-build-solaris.rsync-out-of-vm @@ -1152,23 +1242,25 @@ #ifeq ($(KBUILD_TARGET),os2) # + $(VBOX_KMK_TIME) $(KMK) $(VBOX_TESTSUITE_BUILD.x86) all $(VBOX_TESTSUITE_HOST_BUILD_TWEAK) #else -# $(VBOX_KMK_TIME) ssh vbox@192.168.27.3 " cd /mnt/tinderbox/$(VBOX_TESTSUITE_BUILD_SUBDIRNAME) && tools/env.sh --no-wine kmk $(VBOX_TESTSUITE_BUILD.x86) " +# $(VBOX_KMK_TIME) ssh vbox@$(VBOX_BLD_VM_OS2_IP) " cd /mnt/tinderbox/$(VBOX_TESTSUITE_BUILD_SUBDIRNAME) && tools/env.sh --no-wine kmk $(VBOX_TESTSUITE_BUILD.x86) " #endif testsuite-build-linux.amd64: $(VBOX_TESTSUITE_BUILD_WIN_HOST_FIRST) ifeq ($(KBUILD_TARGET).$(KBUILD_TARGET_ARCH),linux.amd64) + $(VBOX_KMK_TIME) $(KMK) $(VBOX_TESTSUITE_BUILD.amd64) all $(VBOX_TESTSUITE_HOST_BUILD_TWEAK) else - $(call MSG_L1,Building Linux/amd64 testsuite) - $(VBOX_KMK_TIME) ssh vbox@192.168.27.12 " echo $@ && cd /mnt/tinderbox/$(VBOX_TESTSUITE_BUILD_SUBDIRNAME) && tools/env.sh --no-wine kmk $(VBOX_TESTSUITE_BUILD.amd64) all" + $(call VBOX_BLD_VM_MSG_BEGIN,Linux/amd64 Validation Kit) + $(VBOX_KMK_TIME) ssh 'vbox@$(VBOX_BLD_VM_LNX_AMD64_IP) " echo $@ && dchroot -c debian-4.0-amd64 \"cd /mnt/tinderbox/$(VBOX_TESTSUITE_BUILD_SUBDIRNAME) && tools/env.sh --no-wine kmk $(VBOX_TESTSUITE_BUILD.amd64) all\""' + $(call VBOX_BLD_VM_MSG_END__,Linux/amd64 Validation Kit) endif testsuite-build-linux.x86: $(VBOX_TESTSUITE_BUILD_WIN_HOST_FIRST) ifeq ($(KBUILD_TARGET).$(KBUILD_TARGET_ARCH),linux.x86) + $(VBOX_KMK_TIME) $(KMK) $(VBOX_TESTSUITE_BUILD.x86) all $(VBOX_TESTSUITE_HOST_BUILD_TWEAK) else - $(call MSG_L1,Building Linux/x86 testsuite) - $(VBOX_KMK_TIME) ssh vbox@192.168.27.2 " echo $@ && cd /mnt/tinderbox/$(VBOX_TESTSUITE_BUILD_SUBDIRNAME) && tools/env.sh --no-wine kmk $(VBOX_TESTSUITE_BUILD.x86) all" + $(call VBOX_BLD_VM_MSG_BEGIN,Linux/x86 Validation Kit) + $(VBOX_KMK_TIME) ssh 'vbox@$(VBOX_BLD_VM_LNX_X86_IP) "echo $@ && dchroot -c rhel3-i386 \"cd /mnt/tinderbox/$(VBOX_TESTSUITE_BUILD_SUBDIRNAME) && tools/env.sh --no-wine kmk $(VBOX_TESTSUITE_BUILD.x86) all\""' + $(call VBOX_BLD_VM_MSG_END__,Linux/x86 Validation Kit) endif testsuite-build-freebsd.amd64: $(VBOX_TESTSUITE_BUILD_WIN_HOST_FIRST) @@ -1176,7 +1268,7 @@ # + $(VBOX_KMK_TIME) $(KMK) $(VBOX_TESTSUITE_BUILD.amd64) all $(VBOX_TESTSUITE_HOST_BUILD_TWEAK) #else # $(call MSG_L1,Building freebsd/amd64 testsuite) -# $(VBOX_KMK_TIME) ssh vbox@192.168.27.17 " echo $@ && cd /mnt/tinderbox/$(VBOX_TESTSUITE_BUILD_SUBDIRNAME) && tools/env.sh --no-wine kmk $(VBOX_TESTSUITE_BUILD.amd64) all" +# $(VBOX_KMK_TIME) ssh vbox@$(VBOX_BLD_VM_FBSD_AMD64_IP) " echo $@ && cd /mnt/tinderbox/$(VBOX_TESTSUITE_BUILD_SUBDIRNAME) && tools/env.sh --no-wine kmk $(VBOX_TESTSUITE_BUILD.amd64) all" #endif testsuite-build-freebsd.x86: $(VBOX_TESTSUITE_BUILD_WIN_HOST_FIRST) @@ -1184,7 +1276,7 @@ # + $(VBOX_KMK_TIME) $(KMK) $(VBOX_TESTSUITE_BUILD.x86) all $(VBOX_TESTSUITE_HOST_BUILD_TWEAK) #else # $(call MSG_L1,Building freebsd/x86 testsuite) -# $(VBOX_KMK_TIME) ssh vbox@192.168.27.7 " echo $@ && cd /mnt/tinderbox/$(VBOX_TESTSUITE_BUILD_SUBDIRNAME) && tools/env.sh --no-wine kmk $(VBOX_TESTSUITE_BUILD.x86) all" +# $(VBOX_KMK_TIME) ssh vbox@$(VBOX_BLD_VM_FBSD_X86_IP) " echo $@ && cd /mnt/tinderbox/$(VBOX_TESTSUITE_BUILD_SUBDIRNAME) && tools/env.sh --no-wine kmk $(VBOX_TESTSUITE_BUILD.x86) all" #endif testsuite-build-darwin.amd64: $(VBOX_TESTSUITE_BUILD_WIN_HOST_FIRST) @@ -1192,9 +1284,9 @@ + $(VBOX_KMK_TIME) $(KMK) $(VBOX_TESTSUITE_BUILD.amd64) all $(VBOX_TESTSUITE_HOST_BUILD_TWEAK) else $(call MSG_L1,Building darwin/amd64 testsuite) - $(VBOX_KMK_TIME) $(call VBOX_RSYNC_IN_FN,darwin,amd64) . 192.168.27.15:/Users/vbox/tinderbox/$(VBOX_EXTPACKS_BUILD_SUBDIRNAME) - $(VBOX_KMK_TIME) ssh vbox@192.168.27.15 " echo $@ && cd /Users/vbox/tinderbox/$(VBOX_TESTSUITE_BUILD_SUBDIRNAME) && tools/env.sh --no-wine kmk $(VBOX_TESTSUITE_BUILD.amd64) all" - $(VBOX_KMK_TIME) rsync -am -v --delete 192.168.27.15:/Users/vbox/tinderbox/$(VBOX_EXTPACKS_BUILD_SUBDIRNAME)/out/darwin.amd64 out/ + $(VBOX_KMK_TIME) $(call VBOX_RSYNC_IN_FN,darwin,amd64) . $(VBOX_BLD_VM_DARWIN_AMD64_IP):/Users/vbox/tinderbox/$(VBOX_EXTPACKS_BUILD_SUBDIRNAME) + $(VBOX_KMK_TIME) ssh vbox@$(VBOX_BLD_VM_DARWIN_AMD64_IP) " echo $@ && cd /Users/vbox/tinderbox/$(VBOX_TESTSUITE_BUILD_SUBDIRNAME) && tools/env.sh --no-wine kmk $(VBOX_TESTSUITE_BUILD.amd64) all" + $(VBOX_KMK_TIME) rsync -am -v --delete $(VBOX_BLD_VM_DARWIN_AMD64_IP):/Users/vbox/tinderbox/$(VBOX_EXTPACKS_BUILD_SUBDIRNAME)/out/darwin.amd64 out/ endif testsuite-build-darwin.x86: $(VBOX_TESTSUITE_BUILD_WIN_HOST_FIRST) @@ -1202,9 +1294,9 @@ + $(VBOX_KMK_TIME) $(KMK) $(VBOX_TESTSUITE_BUILD.x86) all $(VBOX_TESTSUITE_HOST_BUILD_TWEAK) else $(call MSG_L1,Building darwin/x86 testsuite) - $(VBOX_KMK_TIME) $(call VBOX_RSYNC_IN_FN,darwin,x86) . 192.168.27.5:/Users/vbox/tinderbox/$(VBOX_EXTPACKS_BUILD_SUBDIRNAME) - $(VBOX_KMK_TIME) ssh vbox@192.168.27.5 " echo $@ && cd /Users/vbox/tinderbox/$(VBOX_TESTSUITE_BUILD_SUBDIRNAME) && tools/env.sh --no-wine kmk $(VBOX_TESTSUITE_BUILD.x86) all" - $(VBOX_KMK_TIME) rsync -am -v --delete 192.168.27.5:/Users/vbox/tinderbox/$(VBOX_EXTPACKS_BUILD_SUBDIRNAME)/out/darwin.x86 out/ + $(VBOX_KMK_TIME) $(call VBOX_RSYNC_IN_FN,darwin,x86) . $(VBOX_BLD_VM_DARWIN_X86_IP):/Users/vbox/tinderbox/$(VBOX_EXTPACKS_BUILD_SUBDIRNAME) + $(VBOX_KMK_TIME) ssh vbox@$(VBOX_BLD_VM_DARWIN_X86_IP) " echo $@ && cd /Users/vbox/tinderbox/$(VBOX_TESTSUITE_BUILD_SUBDIRNAME) && tools/env.sh --no-wine kmk $(VBOX_TESTSUITE_BUILD.x86) all" + $(VBOX_KMK_TIME) rsync -am -v --delete $(VBOX_BLD_VM_DARWIN_X86_IP):/Users/vbox/tinderbox/$(VBOX_EXTPACKS_BUILD_SUBDIRNAME)/out/darwin.x86 out/ endif diff -Nru virtualbox-4.1.12-dfsg/src/apps/adpctl/VBoxNetAdpCtl.cpp virtualbox-4.1.44-dfsg/src/apps/adpctl/VBoxNetAdpCtl.cpp --- virtualbox-4.1.12-dfsg/src/apps/adpctl/VBoxNetAdpCtl.cpp 2012-04-02 13:29:11.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/apps/adpctl/VBoxNetAdpCtl.cpp 2015-11-11 15:09:22.000000000 +0000 @@ -38,6 +38,7 @@ /** @todo These are duplicates from src/VBox/HostDrivers/VBoxNetAdp/VBoxNetAdpInternal.h */ #define VBOXNETADP_CTL_DEV_NAME "/dev/vboxnetctl" +#define VBOXNETADP_MAX_INSTANCES 128 #define VBOXNETADP_NAME "vboxnet" #define VBOXNETADP_MAX_NAME_LEN 32 #define VBOXNETADP_CTL_ADD _IOWR('v', 1, VBOXNETADPREQ) @@ -209,7 +210,7 @@ if ( strlen(pcszNameIn) >= VBOXNETADP_MAX_NAME_LEN || sscanf(pcszNameIn, "vboxnet%d", &iAdapterIndex) != 1 - || iAdapterIndex < 0 || iAdapterIndex > 99 ) + || iAdapterIndex < 0 || iAdapterIndex >= VBOXNETADP_MAX_INSTANCES ) { fprintf(stderr, "VBoxNetAdpCtl: Setting configuration for '%s' is not supported.\n", pcszNameIn); return ADPCTLERR_BAD_NAME; diff -Nru virtualbox-4.1.12-dfsg/src/bldprogs/bin2c.c virtualbox-4.1.44-dfsg/src/bldprogs/bin2c.c --- virtualbox-4.1.12-dfsg/src/bldprogs/bin2c.c 2012-04-02 13:29:11.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/bldprogs/bin2c.c 2015-11-11 15:09:22.000000000 +0000 @@ -56,8 +56,10 @@ " -mask check if size of binaryfile is -aligned\n" " -width number of bytes per line (default: 16)\n" " -break break every lines (default: -1)\n" - " -ascii show ASCII representation of binary as comment\n", - argv0); + " -ascii show ASCII representation of binary as comment\n" + " -export emit DECLEXPORT\n" + " --append append to the output file (default: truncate)\n" + , argv0); return 1; } @@ -71,6 +73,7 @@ size_t cbMax = ~0U; size_t uMask = 0; int fAscii = 0; + int fAppend = 0; int fExport = 0; long iBreakEvery = -1; unsigned char abLine[32]; @@ -104,13 +107,11 @@ uMask = strtoul(argv[iArg], NULL, 0); } else if (!strcmp(argv[iArg], "-ascii")) - { fAscii = 1; - } + else if (!strcmp(argv[iArg], "--append")) + fAppend = 1; else if (!strcmp(argv[iArg], "-export")) - { fExport = 1; - } else if (!strcmp(argv[iArg], "-width")) { if (++iArg >= argc) @@ -152,7 +153,7 @@ return 1; } - pFileOut = fopen(argv[iArg+2], "wb"); + pFileOut = fopen(argv[iArg+2], fAppend ? "a" : "w"); /* no b! */ if (!pFileOut) { fprintf(stderr, "Error: failed to open output file '%s'!\n", argv[iArg+2]); diff -Nru virtualbox-4.1.12-dfsg/src/bldprogs/Makefile.kmk virtualbox-4.1.44-dfsg/src/bldprogs/Makefile.kmk --- virtualbox-4.1.12-dfsg/src/bldprogs/Makefile.kmk 2012-04-02 13:29:11.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/bldprogs/Makefile.kmk 2015-11-11 15:09:22.000000000 +0000 @@ -20,24 +20,21 @@ BLDPROGS += bin2c biossums filesplitter -bin2c_TEMPLATE = VBOXBLDPROG +bin2c_TEMPLATE = VBoxBldProg bin2c_SOURCES = bin2c.c -biossums_TEMPLATE = VBOXBLDPROG +biossums_TEMPLATE = VBoxBldProg biossums_SOURCES = biossums.c -filesplitter_TEMPLATE = VBOXBLDPROG +filesplitter_TEMPLATE = VBoxBldProg filesplitter_SOURCES = filesplitter.cpp -if !defined(VBOX_ONLY_ADDITIONS) \ - && !defined(VBOX_ONLY_DOCS) \ - && !defined(VBOX_ONLY_EXTPACKS) \ - && !defined(VBOX_ONLY_SDK) - PROGRAMS += scm - scm_TEMPLATE = VBOXR3EXE +ifndef VBOX_ONLY_BUILD + + BLDPROGS += scm + scm_TEMPLATE = VBoxAdvBldProg scm_SOURCES = scm.cpp - scm_LIBS = \ - $(LIB_RUNTIME) + endif include $(KBUILD_PATH)/subfooter.kmk diff -Nru virtualbox-4.1.12-dfsg/src/libs/kStuff/Makefile.kmk virtualbox-4.1.44-dfsg/src/libs/kStuff/Makefile.kmk --- virtualbox-4.1.12-dfsg/src/libs/kStuff/Makefile.kmk 2012-04-02 13:29:13.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/libs/kStuff/Makefile.kmk 2015-11-11 15:09:24.000000000 +0000 @@ -70,6 +70,21 @@ iprt/kHlpString-iprt.cpp \ iprt/kRdrFile-iprt.cpp + +# +# The library for static linking. +# +LIBRARIES += VBox-kStuffStatic +VBox-kStuffStatic_TEMPLATE = VBOXR3STATIC +VBox-kStuffStatic_EXTENDS = VBox-kStuff + + +LIBRARIES += VBox-kStuffStaticBldProg +VBox-kStuffStaticBldProg_TEMPLATE = VBoxBldProg +VBox-kStuffStaticBldProg_EXTENDS = VBox-kStuff + + +# # Generate the error constants. $$(VBox-kStuff_0_OUTDIR)/kErrNameConsts.h: \ $(PATH_SUB_CURRENT)/kStuff/include/k/kErrors.h \ diff -Nru virtualbox-4.1.12-dfsg/src/libs/Makefile.kmk virtualbox-4.1.44-dfsg/src/libs/Makefile.kmk --- virtualbox-4.1.12-dfsg/src/libs/Makefile.kmk 2012-04-02 13:29:11.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/libs/Makefile.kmk 2015-11-11 15:09:22.000000000 +0000 @@ -27,24 +27,18 @@ # Compression libs used by IPRT and . include $(PATH_SUB_CURRENT)/liblzf-3.4/Makefile.kmk if !defined(VBOX_ONLY_SDK) && !defined(VBOX_ONLY_TESTSUITE) \ - && "$(SDK_VBOX_ZLIB_INCS)" == "$(PATH_ROOT)/src/libs/zlib-1.2.6" - include $(PATH_SUB_CURRENT)/zlib-1.2.6/Makefile.kmk + && "$(SDK_VBOX_ZLIB_INCS)" == "$(PATH_ROOT)/src/libs/zlib-1.2.8" + include $(PATH_SUB_CURRENT)/zlib-1.2.8/Makefile.kmk endif # PNG support (for screenshots). if !defined(VBOX_ONLY_DOCS) && !defined(VBOX_ONLY_SDK) && !defined(VBOX_ONLY_TESTSUITE) \ - && "$(SDK_VBOX_LIBPNG_INCS)" == "$(PATH_ROOT)/src/libs/libpng-1.2.8" - include $(PATH_SUB_CURRENT)/libpng-1.2.8/Makefile.kmk + && "$(SDK_VBOX_LIBPNG_INCS)" == "$(PATH_ROOT)/src/libs/libpng-1.2.53" + include $(PATH_SUB_CURRENT)/libpng-1.2.53/Makefile.kmk endif # !VBOX_ONLY_DOCS -# Libcurl for inet access -if defined(VBOX_WITH_LIBCURL) && !defined(VBOX_ONLY_EXTPACKS_USE_IMPLIBS) && !defined(VBOX_ONLY_SDK) && !defined(VBOX_ONLY_TESTSUITE) \ - && "$(SDK_VBOX_LIBCURL_INCS)" == "$(PATH_ROOT)/src/libs/curl-7.19.4/include" - include $(PATH_SUB_CURRENT)/curl-7.19.4/Makefile.kmk -endif - # The kStuff lib used by IPRT and the debugger. -if defined(IPRT_WITH_KSTUFF) && !defined(VBOX_ONLY_EXTPACKS_USE_IMPLIBS) +if defined(IPRT_WITH_KSTUFF) #&& !defined(VBOX_ONLY_EXTPACKS_USE_IMPLIBS) include $(PATH_SUB_CURRENT)/kStuff/Makefile.kmk endif @@ -52,7 +46,7 @@ if !defined(VBOX_ONLY_SDK) \ && ( "$(SDK_VBOX_OPENSSL_INCS)" == "$(SDK_VBOX_OPENSSL_VBOX_DEFAULT_INCS)" \ || defined(VBOX_WITH_EXTPACK_PUEL_BUILD)) - include $(PATH_SUB_CURRENT)/openssl-0.9.8t/Makefile.kmk + include $(PATH_SUB_CURRENT)/openssl-0.9.8zg/Makefile.kmk endif # libjpeg for VRDP video redirection @@ -77,8 +71,8 @@ endif if !defined(VBOX_ONLY_TESTSUITE) && !defined(VBOX_ONLY_EXTPACKS_USE_IMPLIBS) - ifeq ($(SDK_VBOX_LIBXML2_INCS),$(PATH_ROOT)/src/libs/libxml2-2.6.31/include) - include $(PATH_SUB_CURRENT)/libxml2-2.6.31/Makefile.kmk + ifeq ($(SDK_VBOX_LIBXML2_INCS),$(PATH_ROOT)/src/libs/libxml2-2.9.2/include) + include $(PATH_SUB_CURRENT)/libxml2-2.9.2/Makefile.kmk endif endif diff -Nru virtualbox-4.1.12-dfsg/src/libs/xpcom18a4/Config.kmk virtualbox-4.1.44-dfsg/src/libs/xpcom18a4/Config.kmk --- virtualbox-4.1.12-dfsg/src/libs/xpcom18a4/Config.kmk 2012-04-02 13:29:19.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/libs/xpcom18a4/Config.kmk 2015-11-11 15:09:35.000000000 +0000 @@ -38,7 +38,8 @@ TEMPLATE_XPCOM_ASDEFS = $(NO_SUCH_VARIABLE) TEMPLATE_XPCOM_CXXFLAGS = -g -pipe -ansi -Wall -Wno-unused -Wno-non-virtual-dtor \ $(VBOX_GCC_Wno-invalid-offsetof) -Wno-sign-compare -Wno-unused -Wno-ctor-dtor-privacy \ - $(VBOX_GCC_fvisibility-inlines-hidden) $(VBOX_GCC_fvisibility-hidden) $(VBOX_GCC_fdiagnostics-show-option) + $(VBOX_GCC_fvisibility-inlines-hidden) $(VBOX_GCC_fvisibility-hidden) \ + $(VBOX_GCC_fdiagnostics-show-option) $(VBOX_GCC_Wno-delete-non-virtual-dtor) TEMPLATE_XPCOM_CXXFLAGS.x86 = -m32 TEMPLATE_XPCOM_CXXFLAGS.amd64 = -m64 TEMPLATE_XPCOM_CXXFLAGS.release = -O @@ -192,14 +193,14 @@ # and CXXFLAGS completely at the moment. # TEMPLATE_XPCOMBLDPROG = XPCOM Build programs executables -TEMPLATE_XPCOMBLDPROG_EXTENDS = VBOXBLDPROG +TEMPLATE_XPCOMBLDPROG_EXTENDS = VBoxBldProg ## @todo Verify that this doesn't blow up because of template inheriance ordering. (we're assuming XPCOMEXE is expanded when this is being used.) TEMPLATE_XPCOMBLDPROG_DEFS = \ - $(TEMPLATE_VBOXBLDPROG_DEFS) \ + $(TEMPLATE_VBoxBldProg_DEFS) \ $(filter-out VBOX_USE_IPRT_IN_XPCOM, $(TEMPLATE_XPCOMEXE_DEFS)) -TEMPLATE_XPCOMBLDPROG_DEFS.$(KBUILD_HOST) = $(TEMPLATE_VBOXBLDPROG_DEFS.$(KBUILD_HOST)) $(TEMPLATE_XPCOMEXE_DEFS.$(KBUILD_HOST)) -TEMPLATE_XPCOMBLDPROG_DEFS.x86 = $(TEMPLATE_VBOXBLDPROG_DEFS.x86) $(TEMPLATE_XPCOMEXE_DEFS.x86) -TEMPLATE_XPCOMBLDPROG_DEFS.amd64 = $(TEMPLATE_VBOXBLDPROG_DEFS.amd64) $(TEMPLATE_XPCOMEXE_DEFS.amd64) +TEMPLATE_XPCOMBLDPROG_DEFS.$(KBUILD_HOST) = $(TEMPLATE_VBoxBldProg_DEFS.$(KBUILD_HOST)) $(TEMPLATE_XPCOMEXE_DEFS.$(KBUILD_HOST)) +TEMPLATE_XPCOMBLDPROG_DEFS.x86 = $(TEMPLATE_VBoxBldProg_DEFS.x86) $(TEMPLATE_XPCOMEXE_DEFS.x86) +TEMPLATE_XPCOMBLDPROG_DEFS.amd64 = $(TEMPLATE_VBoxBldProg_DEFS.amd64) $(TEMPLATE_XPCOMEXE_DEFS.amd64) TEMPLATE_XPCOMBLDPROG_INCS = \ $(VBOX_PATH_SDK)/bindings/xpcom/include \ $(VBOX_PATH_SDK)/bindings/xpcom/include/nsprpub \ @@ -207,9 +208,9 @@ $(VBOX_PATH_SDK)/bindings/xpcom/include/xpcom \ $(VBOX_PATH_SDK)/bindings/xpcom/include/ipcd TEMPLATE_XPCOMBLDPROG_CFLAGS = $(filter-out -pedantic -Wshadow, $(TEMPLATE_VBOX_BLDPROG_CFLAGS)) $(VBOX_GCC_Wno-int-to-pointer-cast) $(VBOX_GCC_Wno-pointer-to-int-cast) -Wno-format -TEMPLATE_XPCOMBLDPROG_CXXFLAGS.darwin = $(TEMPLATE_VBOXBLDPROG_CXXFLAGS.darwin) -fpascal-strings -fshort-wchar -fno-common -fno-rtti -TEMPLATE_XPCOMBLDPROG_CXXFLAGS.solaris = $(TEMPLATE_VBOXBLDPROG_CXXFLAGS.solaris) -fno-omit-frame-pointer # for now anyway. -TEMPLATE_XPCOMBLDPROG_LDFLAGS.darwin = $(TEMPLATE_VBOXBLDPROG_LDFLAGS.darwin) -fpascal-strings -fshort-wchar -fno-rtti -fno-exceptions +TEMPLATE_XPCOMBLDPROG_CXXFLAGS.darwin = $(TEMPLATE_VBoxBldProg_CXXFLAGS.darwin) -fpascal-strings -fshort-wchar -fno-common -fno-rtti +TEMPLATE_XPCOMBLDPROG_CXXFLAGS.solaris = $(TEMPLATE_VBoxBldProg_CXXFLAGS.solaris) -fno-omit-frame-pointer # for now anyway. +TEMPLATE_XPCOMBLDPROG_LDFLAGS.darwin = $(TEMPLATE_VBoxBldProg_LDFLAGS.darwin) -fpascal-strings -fshort-wchar -fno-rtti -fno-exceptions TEMPLATE_XPCOMBLDPROG_ORDERDEPS = $(foreach hdrinst, $(filter %-HEADERS, $(INSTALLS)), $($(hdrinst)_1_TARGET)) diff -Nru virtualbox-4.1.12-dfsg/src/libs/xpcom18a4/java/src/nsJavaInterfaces.cpp virtualbox-4.1.44-dfsg/src/libs/xpcom18a4/java/src/nsJavaInterfaces.cpp --- virtualbox-4.1.12-dfsg/src/libs/xpcom18a4/java/src/nsJavaInterfaces.cpp 2012-04-02 13:29:20.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/libs/xpcom18a4/java/src/nsJavaInterfaces.cpp 2015-11-11 15:09:38.000000000 +0000 @@ -354,13 +354,13 @@ } #ifdef VBOX -# include +# include # include extern "C" NS_EXPORT jint JNICALL XPCOM_NATIVE2(waitForEvents) (JNIEnv *env, jobject, jlong aTimeout) { - com::EventQueue* aEventQ = com::EventQueue::getMainEventQueue(); + com::NativeEventQueue* aEventQ = com::NativeEventQueue::getMainEventQueue(); NS_WARN_IF_FALSE(aEventQ != nsnull, "Null main event queue"); if (!aEventQ) return -1; diff -Nru virtualbox-4.1.12-dfsg/src/libs/xpcom18a4/java/src/nsThreadUtils.h virtualbox-4.1.44-dfsg/src/libs/xpcom18a4/java/src/nsThreadUtils.h --- virtualbox-4.1.12-dfsg/src/libs/xpcom18a4/java/src/nsThreadUtils.h 2012-04-02 13:29:21.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/libs/xpcom18a4/java/src/nsThreadUtils.h 2015-11-11 15:09:38.000000000 +0000 @@ -50,11 +50,11 @@ return already_AddRefed(thread); } -#include "VBox/com/EventQueue.h" +#include "VBox/com/NativeEventQueue.h" inline already_AddRefed do_GetMainThreadQueue() { - com::EventQueue* eq = com::EventQueue::getMainEventQueue(); + com::NativeEventQueue* eq = com::NativeEventQueue::getMainEventQueue(); NS_ASSERTION(eq != nsnull, "Must be valid"); return eq->getIEventQueue(); } diff -Nru virtualbox-4.1.12-dfsg/src/libs/xpcom18a4/nsprpub/lib/ds/plarena.c virtualbox-4.1.44-dfsg/src/libs/xpcom18a4/nsprpub/lib/ds/plarena.c --- virtualbox-4.1.12-dfsg/src/libs/xpcom18a4/nsprpub/lib/ds/plarena.c 2012-04-02 13:29:21.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/libs/xpcom18a4/nsprpub/lib/ds/plarena.c 2015-11-11 15:09:39.000000000 +0000 @@ -115,6 +115,9 @@ align = PL_ARENA_DEFAULT_ALIGN; pool->mask = PR_BITMASK(PR_CeilingLog2(align)); pool->first.next = NULL; + /* Set all three addresses in pool->first to the same dummy value. + * These addresses are only compared with each other, but never + * dereferenced. */ pool->first.base = pool->first.avail = pool->first.limit = (PRUword)PL_ARENA_ALIGN(pool, &pool->first + 1); pool->current = &pool->first; @@ -158,10 +161,14 @@ { PLArena *a; char *rp; /* returned pointer */ + PRUint32 nbOld; PR_ASSERT((nb & pool->mask) == 0); + nbOld = nb; nb = (PRUword)PL_ARENA_ALIGN(pool, nb); /* force alignment */ + if (nb < nbOld) + return NULL; /* attempt to allocate from arenas at pool->current */ { @@ -217,6 +224,7 @@ a->base = a->avail = (PRUword)PL_ARENA_ALIGN(pool, a + 1); rp = (char *)a->avail; a->avail += nb; + PR_ASSERT(a->avail <= a->limit); /* the newly allocated arena is linked after pool->current * and becomes pool->current */ a->next = pool->current->next; @@ -239,6 +247,8 @@ { void *newp; + if (PR_UINT32_MAX - size < incr) + return NULL; PL_ARENA_ALLOCATE(newp, pool, size + incr); if (newp) memcpy(newp, p, size); diff -Nru virtualbox-4.1.12-dfsg/src/libs/xpcom18a4/nsprpub/lib/ds/plarena.h virtualbox-4.1.44-dfsg/src/libs/xpcom18a4/nsprpub/lib/ds/plarena.h --- virtualbox-4.1.12-dfsg/src/libs/xpcom18a4/nsprpub/lib/ds/plarena.h 2012-04-02 13:29:21.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/libs/xpcom18a4/nsprpub/lib/ds/plarena.h 2015-11-11 15:09:39.000000000 +0000 @@ -108,31 +108,37 @@ #define PL_ARENA_ALLOCATE(p, pool, nb) \ PR_BEGIN_MACRO \ PLArena *_a = (pool)->current; \ - PRUint32 _nb = PL_ARENA_ALIGN(pool, nb); \ + PRUint32 _nb = PL_ARENA_ALIGN(pool, (PRUint32)nb); \ PRUword _p = _a->avail; \ - PRUword _q = _p + _nb; \ - if (_q > _a->limit) \ + if (_nb < (PRUint32)nb) { \ + _p = 0; \ + } else if (_nb > (_a->limit - _a->avail)) { \ _p = (PRUword)PL_ArenaAllocate(pool, _nb); \ - else \ - _a->avail = _q; \ + } else { \ + _a->avail += _nb; \ + } \ p = (void *)_p; \ - PL_ArenaCountAllocation(pool, nb); \ + if (p) { \ + PL_ArenaCountAllocation(pool, nb); \ + } \ PR_END_MACRO #define PL_ARENA_GROW(p, pool, size, incr) \ PR_BEGIN_MACRO \ PLArena *_a = (pool)->current; \ - PRUint32 _incr = PL_ARENA_ALIGN(pool, incr); \ - PRUword _p = _a->avail; \ - PRUword _q = _p + _incr; \ - if (_p == (PRUword)(p) + PL_ARENA_ALIGN(pool, size) && \ - _q <= _a->limit) { \ - _a->avail = _q; \ - PL_ArenaCountInplaceGrowth(pool, size, incr); \ + PRUint32 _incr = PL_ARENA_ALIGN(pool, (PRUint32)incr); \ + if (_incr < (PRUint32)incr) { \ + p = NULL; \ + } else if (_a->avail == (PRUword)(p) + PL_ARENA_ALIGN(pool, size) && \ + _incr <= (_a->limit - _a->avail)) { \ + _a->avail = _incr; \ + PL_ArenaCountInplaceGrowth(pool, size, (RTUint32)incr); \ } else { \ - p = PL_ArenaGrow(pool, p, size, incr); \ + p = PL_ArenaGrow(pool, p, size, (PRUint32)incr); \ + } \ + if (p) { \ + PL_ArenaCountGrowth(pool, size, (PRUint32)incr); \ } \ - PL_ArenaCountGrowth(pool, size, incr); \ PR_END_MACRO #define PL_ARENA_MARK(pool) ((void *) (pool)->current->avail) diff -Nru virtualbox-4.1.12-dfsg/src/libs/xpcom18a4/nsprpub/pr/src/misc/prinit.c virtualbox-4.1.44-dfsg/src/libs/xpcom18a4/nsprpub/pr/src/misc/prinit.c --- virtualbox-4.1.12-dfsg/src/libs/xpcom18a4/nsprpub/pr/src/misc/prinit.c 2012-04-02 13:29:26.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/libs/xpcom18a4/nsprpub/pr/src/misc/prinit.c 2015-11-11 15:09:48.000000000 +0000 @@ -680,7 +680,7 @@ ptr = envVar; while (1) { - if ((ptr[len] == ':') && (strncmp(ptr, name, len) == 0)) { + if ((strncmp(ptr, name, len) == 0) && (ptr[len] == ':')) { ptr += len + 1; PR_sscanf(ptr, "%d:0x%lx", &fileType, &osfd); switch ((PRDescType)fileType) { diff -Nru virtualbox-4.1.12-dfsg/src/libs/xpcom18a4/python/gen_python_deps.py virtualbox-4.1.44-dfsg/src/libs/xpcom18a4/python/gen_python_deps.py --- virtualbox-4.1.12-dfsg/src/libs/xpcom18a4/python/gen_python_deps.py 2012-04-02 13:29:30.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/libs/xpcom18a4/python/gen_python_deps.py 2015-11-11 15:09:52.000000000 +0000 @@ -1,6 +1,6 @@ #!/usr/bin/python # -# Copyright (C) 2009 Oracle Corporation +# Copyright (C) 2009-2013 Oracle Corporation # # This file is part of VirtualBox Open Source Edition (OSE), as # available from http://www.virtualbox.org. This file is free software; @@ -23,26 +23,28 @@ if not os.path.isfile(file): return None - lib = os.path.join(p, "lib", dllpre+"python"+v+dllsuff) + lib = os.path.join(p, "lib/i386-linux-gnu", dllpre+"python"+v+dllsuff) + if not os.path.isfile(lib): + lib = os.path.join(p, "lib", dllpre+"python"+v+dllsuff) if bitness_magic == 1: lib64 = os.path.join(p, "lib", "64", dllpre+"python"+v+dllsuff) elif bitness_magic == 2: - lib64 = os.path.join(p, "lib64", dllpre+"python"+v+dllsuff) + lib64 = os.path.join(p, "lib/x86_64-linux-gnu", dllpre+"python"+v+dllsuff) if not os.path.isfile(lib64): - lib64 = lib + lib64 = os.path.join(p, "lib64", dllpre+"python"+v+dllsuff) + if not os.path.isfile(lib64): + lib64 = lib else: lib64 = None - return [os.path.join(p, "include", "python"+v), - lib, - lib64] + return [os.path.join(p, "include", "python"+v), lib, lib64] def print_vars(vers, known, sep, bitness_magic): print "VBOX_PYTHON%s_INC=%s%s" %(vers, known[0], sep) if bitness_magic > 0: - print "VBOX_PYTHON%s_LIB=%s%s" %(vers, known[2], sep) + print "VBOX_PYTHON%s_LIB=%s%s" %(vers, known[2], sep) else: - print "VBOX_PYTHON%s_LIB=%s%s" %(vers, known[1], sep) + print "VBOX_PYTHON%s_LIB=%s%s" %(vers, known[1], sep) def main(argv): diff -Nru virtualbox-4.1.12-dfsg/src/libs/xpcom18a4/python/src/module/_xpcom.cpp virtualbox-4.1.44-dfsg/src/libs/xpcom18a4/python/src/module/_xpcom.cpp --- virtualbox-4.1.12-dfsg/src/libs/xpcom18a4/python/src/module/_xpcom.cpp 2012-04-02 13:29:31.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/libs/xpcom18a4/python/src/module/_xpcom.cpp 2015-11-11 15:09:52.000000000 +0000 @@ -495,7 +495,7 @@ #ifdef VBOX -# include +# include # include static PyObject* @@ -510,7 +510,7 @@ } int rc; - com::EventQueue* aEventQ = com::EventQueue::getMainEventQueue(); + com::NativeEventQueue* aEventQ = com::NativeEventQueue::getMainEventQueue(); NS_WARN_IF_FALSE(aEventQ != nsnull, "Null main event queue"); if (!aEventQ) { @@ -540,7 +540,7 @@ static PyObject* PyXPCOMMethod_InterruptWait(PyObject *self, PyObject *args) { - com::EventQueue* aEventQ = com::EventQueue::getMainEventQueue(); + com::NativeEventQueue* aEventQ = com::NativeEventQueue::getMainEventQueue(); NS_WARN_IF_FALSE(aEventQ != nsnull, "Null main event queue"); if (!aEventQ) return NULL; diff -Nru virtualbox-4.1.12-dfsg/src/recompiler/Makefile.kmk virtualbox-4.1.44-dfsg/src/recompiler/Makefile.kmk --- virtualbox-4.1.12-dfsg/src/recompiler/Makefile.kmk 2012-04-02 13:29:43.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/recompiler/Makefile.kmk 2015-11-11 15:10:10.000000000 +0000 @@ -110,7 +110,14 @@ $(LIB_RUNTIME) VBoxRemPrimary_LDFLAGS.solaris = -mimpure-text -VBoxRemPrimary_POST_CMDS = $(VBOX_SIGN_IMAGE_CMDS) +if defined(VBOX_WITH_HARDENING) && "$(KBUILD_TARGET)" == "win" + VBoxRemPrimary_POST_CMDS = \ + $(VBOX_VCC_EDITBIN) /LargeAddressAware /DynamicBase /NxCompat /Release /IntegrityCheck \ + /Version:$(VBOX_VERSION_MAJOR)0$(VBOX_VERSION_MINOR).$(VBOX_VERSION_BUILD) "$(out)" \ + $$(NLTAB)$(VBOX_SIGN_IMAGE_CMDS) +else + VBoxRemPrimary_POST_CMDS = $(VBOX_SIGN_IMAGE_CMDS) +endif if "$(KBUILD_TARGET).$(KBUILD_TARGET_ARCH)" == "win.amd64" diff -Nru virtualbox-4.1.12-dfsg/src/recompiler/target-i386/cpu.h virtualbox-4.1.44-dfsg/src/recompiler/target-i386/cpu.h --- virtualbox-4.1.12-dfsg/src/recompiler/target-i386/cpu.h 2012-04-02 13:29:44.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/recompiler/target-i386/cpu.h 2015-11-11 15:10:11.000000000 +0000 @@ -64,6 +64,7 @@ # include # include # include +# undef MSR_IA32_APICBASE_BSP #endif /* VBOX */ #define R_EAX 0 diff -Nru virtualbox-4.1.12-dfsg/src/recompiler/target-i386/op_helper.c virtualbox-4.1.44-dfsg/src/recompiler/target-i386/op_helper.c --- virtualbox-4.1.12-dfsg/src/recompiler/target-i386/op_helper.c 2012-04-02 13:29:44.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/recompiler/target-i386/op_helper.c 2015-11-11 15:10:11.000000000 +0000 @@ -872,6 +872,13 @@ type = (e2 >> DESC_TYPE_SHIFT) & 0x1f; switch(type) { case 5: /* task gate */ +#ifdef VBOX + dpl = (e2 >> DESC_DPL_SHIFT) & 3; + cpl = env->hflags & HF_CPL_MASK; + /* check privilege if software int */ + if (is_int && dpl < cpl) + raise_exception_err(EXCP0D_GPF, intno * 8 + 2); +#endif /* must do that check here to return the correct error code */ if (!(e2 & DESC_P_MASK)) raise_exception_err(EXCP0B_NOSEG, intno * 8 + 2); diff -Nru virtualbox-4.1.12-dfsg/src/recompiler/target-i386/translate.c virtualbox-4.1.44-dfsg/src/recompiler/target-i386/translate.c --- virtualbox-4.1.12-dfsg/src/recompiler/target-i386/translate.c 2012-04-02 13:29:44.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/recompiler/target-i386/translate.c 2015-11-11 15:10:11.000000000 +0000 @@ -2554,17 +2554,6 @@ tcg_gen_shli_tl(cpu_T[0], cpu_T[0], 4); tcg_gen_st_tl(cpu_T[0], cpu_env, offsetof(CPUX86State,segs[seg_reg].base)); -#ifdef VBOX - int flags = DESC_P_MASK | DESC_S_MASK | DESC_W_MASK; - if (seg_reg == R_CS) - flags |= DESC_CS_MASK; - gen_op_movl_T0_im(flags); - tcg_gen_st32_tl(cpu_T[0], cpu_env, offsetof(CPUX86State,segs[seg_reg].flags)); - - /* Set the limit to 0xffff. */ - gen_op_movl_T0_im(0xffff); - tcg_gen_st32_tl(cpu_T[0], cpu_env, offsetof(CPUX86State,segs[seg_reg].limit)); -#endif } /* move T0 to seg_reg and compute if the CPU state may change. Never diff -Nru virtualbox-4.1.12-dfsg/src/recompiler/VBoxREMWrapper.cpp virtualbox-4.1.44-dfsg/src/recompiler/VBoxREMWrapper.cpp --- virtualbox-4.1.12-dfsg/src/recompiler/VBoxREMWrapper.cpp 2012-04-02 13:29:43.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/recompiler/VBoxREMWrapper.cpp 2015-11-11 15:10:10.000000000 +0000 @@ -2029,7 +2029,7 @@ for (i = 0; i < RT_ELEMENTS(g_aExports); i++) { RTUINTPTR Value; - rc = RTLdrGetSymbolEx(g_ModREM2, g_pvREM2, (RTUINTPTR)g_pvREM2, g_aExports[i].pszName, &Value); + rc = RTLdrGetSymbolEx(g_ModREM2, g_pvREM2, (RTUINTPTR)g_pvREM2, UINT32_MAX, g_aExports[i].pszName, &Value); AssertMsgRC(rc, ("%s rc=%Rrc\n", g_aExports[i].pszName, rc)); if (RT_FAILURE(rc)) break; diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Additions/common/crOpenGL/fakedri_drv.c virtualbox-4.1.44-dfsg/src/VBox/Additions/common/crOpenGL/fakedri_drv.c --- virtualbox-4.1.12-dfsg/src/VBox/Additions/common/crOpenGL/fakedri_drv.c 2012-04-02 13:25:18.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Additions/common/crOpenGL/fakedri_drv.c 2015-11-11 15:06:22.000000000 +0000 @@ -29,7 +29,20 @@ #include #include #include -#include "xf86.h" +/** X server message type definitions. */ +typedef enum { + X_PROBED, /* Value was probed */ + X_CONFIG, /* Value was given in the config file */ + X_DEFAULT, /* Value is a default */ + X_CMDLINE, /* Value was given on the command line */ + X_NOTICE, /* Notice */ + X_ERROR, /* Error message */ + X_WARNING, /* Warning message */ + X_INFO, /* Informational message */ + X_NONE, /* No prefix */ + X_NOT_IMPLEMENTED, /* Not implemented */ + X_UNKNOWN = -1 /* unknown -- this must always be last */ +} MessageType; #define VBOX_NO_MESA_PATCH_REPORTS diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Additions/common/crOpenGL/load.c virtualbox-4.1.44-dfsg/src/VBox/Additions/common/crOpenGL/load.c --- virtualbox-4.1.12-dfsg/src/VBox/Additions/common/crOpenGL/load.c 2012-04-02 13:25:19.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Additions/common/crOpenGL/load.c 2015-11-11 15:06:23.000000000 +0000 @@ -213,6 +213,8 @@ return; #endif + /* Try to keep a consistent locking order. */ + crHashtableLock(stub.windowTable); #if defined(CR_NEWWINTRACK) && !defined(WINDOWS) crLockMutex(&stub.mutex); #endif @@ -223,6 +225,7 @@ #if defined(CR_NEWWINTRACK) && !defined(WINDOWS) crUnlockMutex(&stub.mutex); #endif + crHashtableUnlock(stub.windowTable); } @@ -1018,10 +1021,11 @@ #ifdef WINDOWS PeekMessage(&msg, NULL, WM_USER, WM_USER, PM_NOREMOVE); # ifdef VBOX_WITH_WDDM - hVBoxD3D = GetModuleHandle("VBoxDispD3D"); - if (hVBoxD3D) + hVBoxD3D = NULL; + if (!GetModuleHandleEx(0, "VBoxDispD3D", &hVBoxD3D)) { - hVBoxD3D = LoadLibrary("VBoxDispD3D"); + crDebug("GetModuleHandleEx failed err %d", GetLastError()); + hVBoxD3D = NULL; } if (hVBoxD3D) @@ -1124,9 +1128,12 @@ } } #else + /* Try to keep a consistent locking order. */ + crHashtableLock(stub.windowTable); crLockMutex(&stub.mutex); crHashtableWalk(stub.windowTable, stubSyncTrCheckWindowsCB, NULL); crUnlockMutex(&stub.mutex); + crHashtableUnlock(stub.windowTable); RTThreadSleep(50); #endif } @@ -1207,15 +1214,6 @@ { crNetFreeConnection(ns.conn); } -#if 0 && defined(CR_NEWWINTRACK) - { - Status st = XInitThreads(); - if (st==0) - { - crWarning("XInitThreads returned %i", (int)st); - } - } -#endif } #endif diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Additions/common/crOpenGL/Makefile.kmk virtualbox-4.1.44-dfsg/src/VBox/Additions/common/crOpenGL/Makefile.kmk --- virtualbox-4.1.12-dfsg/src/VBox/Additions/common/crOpenGL/Makefile.kmk 2012-04-02 13:25:18.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Additions/common/crOpenGL/Makefile.kmk 2015-11-11 15:06:22.000000000 +0000 @@ -65,12 +65,14 @@ VBoxOGL_INCS += \ $(VBOX_PATH_X11_ROOT)/libXdamage-1.1 \ $(VBOX_PATH_X11_ROOT)/libXcomposite-0.4.0 \ + $(VBOX_PATH_X11_ROOT)/libXext-1.3.1 \ $(VBOX_PATH_X11_ROOT)/libXfixes-4.0.3 \ $(VBOX_PATH_X11_ROOT)/damageproto-1.1.0 \ $(VBOX_PATH_X11_ROOT)/compositeproto-0.4 \ $(VBOX_PATH_X11_ROOT)/fixesproto-4.0 \ $(VBOX_PATH_X11_ROOT)/libx11-1.1.5-other \ - $(VBOX_PATH_X11_ROOT)/1.3/xorg \ + $(VBOX_PATH_X11_ROOT)/xextproto-7.1.1 \ + $(VBOX_PATH_X11_ROOT)/xproto-7.0.18 \ $(VBOX_MESA_INCS) \ $(PATH_ROOT)/src/VBox/Additions/x11/x11include/libdrm-2.4.13 VBoxOGL_DEFS += VBOX_NO_NATIVEGL diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Additions/common/VBoxControl/Makefile.kmk virtualbox-4.1.44-dfsg/src/VBox/Additions/common/VBoxControl/Makefile.kmk --- virtualbox-4.1.12-dfsg/src/VBox/Additions/common/VBoxControl/Makefile.kmk 2012-04-02 13:25:14.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Additions/common/VBoxControl/Makefile.kmk 2015-11-11 15:06:20.000000000 +0000 @@ -35,6 +35,8 @@ $(if $(VBOX_WITH_HGCM),VBOX_WITH_HGCM,) \ $(if $(VBOX_WITH_GUEST_PROPS),VBOX_WITH_GUEST_PROPS,) \ $(if $(VBOX_WITH_SHARED_FOLDERS),VBOX_WITH_SHARED_FOLDERS,) +VBoxControl_DEFS.win += \ + $(if $(VBOX_WITH_DPC_LATENCY_CHECKER),VBOX_WITH_DPC_LATENCY_CHECKER,) VBoxControl_SOURCES = \ VBoxControl.cpp VBoxControl_SOURCES.win = \ diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Additions/common/VBoxControl/VBoxControl.cpp virtualbox-4.1.44-dfsg/src/VBox/Additions/common/VBoxControl/VBoxControl.cpp --- virtualbox-4.1.12-dfsg/src/VBox/Additions/common/VBoxControl/VBoxControl.cpp 2012-04-02 13:25:14.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Additions/common/VBoxControl/VBoxControl.cpp 2015-11-11 15:06:20.000000000 +0000 @@ -70,6 +70,7 @@ #ifdef RT_OS_WINDOWS GET_VIDEO_ACCEL, SET_VIDEO_ACCEL, + VIDEO_FLAGS, LIST_CUST_MODES, ADD_CUST_MODE, REMOVE_CUST_MODE, @@ -107,6 +108,8 @@ doUsage("", g_pszProgName, "getvideoacceleration"); if (SET_VIDEO_ACCEL == eWhich || eWhich == USAGE_ALL) doUsage("", g_pszProgName, "setvideoacceleration"); + if (eWhich == VIDEO_FLAGS || eWhich == USAGE_ALL) + doUsage(" [hex mask]", g_pszProgName, "videoflags"); if (LIST_CUST_MODES == eWhich || eWhich == USAGE_ALL) doUsage("", g_pszProgName, "listcustommodes"); if (ADD_CUST_MODE == eWhich || eWhich == USAGE_ALL) @@ -603,38 +606,120 @@ return RTEXITCODE_SUCCESS; } -HKEY getVideoKey(bool writable) +static int checkVBoxVideoKey(HKEY hkeyVideo) { - HKEY hkeyDeviceMap = 0; - HKEY hkeyVideo = 0; - LONG status; + char szValue[128]; + DWORD len = sizeof(szValue); + DWORD dwKeyType; + LONG status = RegQueryValueExA(hkeyVideo, "Device Description", NULL, &dwKeyType, + (LPBYTE)szValue, &len); - status = RegOpenKeyExA(HKEY_LOCAL_MACHINE, "HARDWARE\\DEVICEMAP\\VIDEO", 0, KEY_READ, &hkeyDeviceMap); - if ((status != ERROR_SUCCESS) || !hkeyDeviceMap) + if (status == ERROR_SUCCESS) + { + /* WDDM has additional chars after "Adapter" */ + static char sszDeviceDescription[] = "VirtualBox Graphics Adapter"; + if (_strnicmp(szValue, sszDeviceDescription, sizeof(sszDeviceDescription) - sizeof(char)) == 0) + { + return VINF_SUCCESS; + } + } + + return VERR_NOT_FOUND; +} + +static HKEY getVideoKey(bool writable) +{ + HKEY hkeyDeviceMap = 0; + LONG status = RegOpenKeyExA(HKEY_LOCAL_MACHINE, "HARDWARE\\DEVICEMAP\\VIDEO", 0, KEY_READ, &hkeyDeviceMap); + if (status != ERROR_SUCCESS || !hkeyDeviceMap) { VBoxControlError("Error opening video device map registry key!\n"); return 0; } - char szVideoLocation[256]; + + HKEY hkeyVideo = 0; + ULONG iDevice; DWORD dwKeyType; - szVideoLocation[0] = 0; - DWORD len = sizeof(szVideoLocation); - status = RegQueryValueExA(hkeyDeviceMap, "\\Device\\Video0", NULL, &dwKeyType, (LPBYTE)szVideoLocation, &len); + /* - * This value will start with a weird value: \REGISTRY\Machine - * Make sure this is true. + * Scan all '\Device\VideoX' REG_SZ keys to find VBox video driver entry. + * 'ObjectNumberList' REG_BINARY is an array of 32 bit device indexes (X). */ - if ( (status == ERROR_SUCCESS) - && (dwKeyType == REG_SZ) - && (_strnicmp(szVideoLocation, "\\REGISTRY\\Machine", 17) == 0)) + + /* Get the 'ObjectNumberList' */ + ULONG numDevices = 0; + DWORD adwObjectNumberList[256]; + DWORD len = sizeof(adwObjectNumberList); + status = RegQueryValueExA(hkeyDeviceMap, "ObjectNumberList", NULL, &dwKeyType, (LPBYTE)&adwObjectNumberList[0], &len); + + if ( status == ERROR_SUCCESS + && dwKeyType == REG_BINARY) { - /* open that branch */ - status = RegOpenKeyExA(HKEY_LOCAL_MACHINE, &szVideoLocation[18], 0, KEY_READ | (writable ? KEY_WRITE : 0), &hkeyVideo); + numDevices = len / sizeof(DWORD); } else { - VBoxControlError("Error opening registry key '%s'\n", &szVideoLocation[18]); + /* The list might not exists. Use 'MaxObjectNumber' REG_DWORD and build a list. */ + DWORD dwMaxObjectNumber = 0; + len = sizeof(dwMaxObjectNumber); + status = RegQueryValueExA(hkeyDeviceMap, "MaxObjectNumber", NULL, &dwKeyType, (LPBYTE)&dwMaxObjectNumber, &len); + + if ( status == ERROR_SUCCESS + && dwKeyType == REG_DWORD) + { + /* 'MaxObjectNumber' is inclusive. */ + numDevices = RT_MIN(dwMaxObjectNumber + 1, RT_ELEMENTS(adwObjectNumberList)); + for (iDevice = 0; iDevice < numDevices; iDevice++) + { + adwObjectNumberList[iDevice] = iDevice; + } + } + } + + if (numDevices == 0) + { + /* Always try '\Device\Video0' as the old code did. Enum can be used in this case in principle. */ + adwObjectNumberList[0] = 0; + numDevices = 1; + } + + /* Scan device entries */ + for (iDevice = 0; iDevice < numDevices; iDevice++) + { + char szValueName[64]; + RTStrPrintf(szValueName, sizeof(szValueName), "\\Device\\Video%u", adwObjectNumberList[iDevice]); + + char szVideoLocation[256]; + len = sizeof(szVideoLocation); + status = RegQueryValueExA(hkeyDeviceMap, szValueName, NULL, &dwKeyType, (LPBYTE)&szVideoLocation[0], &len); + + /* This value starts with '\REGISTRY\Machine' */ + if ( status == ERROR_SUCCESS + && dwKeyType == REG_SZ + && _strnicmp(szVideoLocation, "\\REGISTRY\\Machine", 17) == 0) + { + status = RegOpenKeyExA(HKEY_LOCAL_MACHINE, &szVideoLocation[18], 0, + KEY_READ | (writable ? KEY_WRITE : 0), &hkeyVideo); + if (status == ERROR_SUCCESS) + { + int rc = checkVBoxVideoKey(hkeyVideo); + if (RT_SUCCESS(rc)) + { + /* Found, return hkeyVideo to the caller. */ + break; + } + + RegCloseKey(hkeyVideo); + hkeyVideo = 0; + } + } } + + if (hkeyVideo == 0) + { + VBoxControlError("Error opening video registry key!\n"); + } + RegCloseKey(hkeyDeviceMap); return hkeyVideo; } @@ -692,6 +777,135 @@ return RTEXITCODE_SUCCESS; } +static RTEXITCODE videoFlagsGet(void) +{ + HKEY hkeyVideo = getVideoKey(false); + + if (hkeyVideo) + { + DWORD dwFlags = 0; + DWORD len = sizeof(dwFlags); + DWORD dwKeyType; + ULONG status = RegQueryValueExA(hkeyVideo, "VBoxVideoFlags", NULL, &dwKeyType, (LPBYTE)&dwFlags, &len); + if (status != ERROR_SUCCESS) + RTPrintf("Video flags: default\n"); + else + RTPrintf("Video flags: 0x%08X\n", dwFlags); + RegCloseKey(hkeyVideo); + return RTEXITCODE_SUCCESS; + } + + return RTEXITCODE_FAILURE; +} + +static RTEXITCODE videoFlagsDelete(void) +{ + HKEY hkeyVideo = getVideoKey(true); + + if (hkeyVideo) + { + ULONG status = RegDeleteValueA(hkeyVideo, "VBoxVideoFlags"); + if (status != ERROR_SUCCESS) + VBoxControlError("Error %d deleting video flags.\n", status); + RegCloseKey(hkeyVideo); + return RTEXITCODE_SUCCESS; + } + + return RTEXITCODE_FAILURE; +} + +static RTEXITCODE videoFlagsModify(bool fSet, int argc, char *argv[]) +{ + if (argc != 1) + { + VBoxControlError("Mask required.\n"); + return RTEXITCODE_FAILURE; + } + + uint32_t u32Mask = 0; + int rc = RTStrToUInt32Full(argv[0], 16, &u32Mask); + if (RT_FAILURE(rc)) + { + VBoxControlError("Invalid video flags mask.\n"); + return RTEXITCODE_FAILURE; + } + + RTEXITCODE exitCode = RTEXITCODE_SUCCESS; + + HKEY hkeyVideo = getVideoKey(true); + if (hkeyVideo) + { + DWORD dwFlags = 0; + DWORD len = sizeof(dwFlags); + DWORD dwKeyType; + ULONG status = RegQueryValueExA(hkeyVideo, "VBoxVideoFlags", NULL, &dwKeyType, (LPBYTE)&dwFlags, &len); + if (status != ERROR_SUCCESS) + { + dwFlags = 0; + } + + dwFlags = fSet? (dwFlags | u32Mask): + (dwFlags & ~u32Mask); + + status = RegSetValueExA(hkeyVideo, "VBoxVideoFlags", 0, REG_DWORD, (LPBYTE)&dwFlags, sizeof(dwFlags)); + if (status != ERROR_SUCCESS) + { + VBoxControlError("Error %d writing video flags.\n", status); + exitCode = RTEXITCODE_FAILURE; + } + + RegCloseKey(hkeyVideo); + } + else + { + exitCode = RTEXITCODE_FAILURE; + } + + return exitCode; +} + +static RTEXITCODE handleVideoFlags(int argc, char *argv[]) +{ + /* Must have a keyword and optional value (32 bit hex string). */ + if (argc != 1 && argc != 2) + { + VBoxControlError("Invalid number of arguments.\n"); + usage(VIDEO_FLAGS); + return RTEXITCODE_FAILURE; + } + + RTEXITCODE exitCode = RTEXITCODE_SUCCESS; + + if (RTStrICmp(argv[0], "get") == 0) + { + exitCode = videoFlagsGet(); + } + else if (RTStrICmp(argv[0], "delete") == 0) + { + exitCode = videoFlagsDelete(); + } + else if (RTStrICmp(argv[0], "set") == 0) + { + exitCode = videoFlagsModify(true, argc - 1, &argv[1]); + } + else if (RTStrICmp(argv[0], "clear") == 0) + { + exitCode = videoFlagsModify(false, argc - 1, &argv[1]); + } + else + { + VBoxControlError("Invalid command.\n"); + exitCode = RTEXITCODE_FAILURE; + } + + if (exitCode != RTEXITCODE_SUCCESS) + { + usage(VIDEO_FLAGS); + } + + return exitCode; +} + #define MAX_CUSTOM_MODES 128 /* the table of custom modes */ @@ -1486,6 +1700,39 @@ return RTEXITCODE_SUCCESS; } +#ifdef VBOX_WITH_DPC_LATENCY_CHECKER +#include "..\VBoxGuestLib\VBGLR3Internal.h" + +static RTEXITCODE handleDpc(int argc, char *argv[]) +{ +#ifndef VBOX_CONTROL_TEST + int rc = VINF_SUCCESS; + int i; + for (i = 0; i < 30; i++) + { + rc = vbglR3DoIOCtl(VBOXGUEST_IOCTL_DPC, NULL, 0); + if (RT_FAILURE(rc)) + { + break; + } + RTPrintf("%d\n", i); + } +#else + int rc = VERR_NOT_IMPLEMENTED; +#endif + if (RT_SUCCESS(rc)) + { + RTPrintf("Samples collection completed.\n"); + return RTEXITCODE_SUCCESS; + } + else + { + VBoxControlError("Error. rc=%Rrc\n", rc); + return RTEXITCODE_FAILURE; + } +} +#endif /* VBOX_WITH_DPC_LATENCY_CHECKER */ + /** command handler type */ typedef DECLCALLBACK(RTEXITCODE) FNVBOXCTRLCMDHANDLER(int argc, char *argv[]); typedef FNVBOXCTRLCMDHANDLER *PFNVBOXCTRLCMDHANDLER; @@ -1500,6 +1747,7 @@ #if defined(RT_OS_WINDOWS) && !defined(VBOX_CONTROL_TEST) { "getvideoacceleration", handleGetVideoAcceleration }, { "setvideoacceleration", handleSetVideoAcceleration }, + { "videoflags", handleVideoFlags }, { "listcustommodes", handleListCustomModes }, { "addcustommode", handleAddCustomMode }, { "removecustommode", handleRemoveCustomMode }, @@ -1522,6 +1770,9 @@ { "powerdown", handlePowerOff }, { "getversion", handleVersion }, { "version", handleVersion }, +#ifdef VBOX_WITH_DPC_LATENCY_CHECKER + { "dpc", handleDpc }, +#endif /* VBOX_WITH_DPC_LATENCY_CHECKER */ { "help", handleHelp } }; diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Additions/common/VBoxGuest/Makefile.kmk virtualbox-4.1.44-dfsg/src/VBox/Additions/common/VBoxGuest/Makefile.kmk --- virtualbox-4.1.12-dfsg/src/VBox/Additions/common/VBoxGuest/Makefile.kmk 2012-04-02 13:25:15.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Additions/common/VBoxGuest/Makefile.kmk 2015-11-11 15:06:20.000000000 +0000 @@ -34,7 +34,6 @@ endif VBoxGuest_DEFS.linux = KBUILD_MODNAME=KBUILD_STR\(vboxguest\) KBUILD_BASENAME=KBUILD_STR\(vboxguest\) DEBUG_HASH=2 DEBUG_HASH2=3 EXPORT_SYMTAB VBoxGuest_DEFS.solaris = VBOX_SVN_REV=$(VBOX_SVN_REV) - VBoxGuest_DEFS.win = # VBOX_WITH_VRDP_SESSION_HANDLING ifeq ($(KBUILD_TYPE),release) # Allow stopping/removing the driver without a reboot # in debug mode; this is very useful for testing the shutdown stuff! @@ -44,6 +43,8 @@ VBoxGuest_DEFS.win += VBOX_WITH_GUEST_BUGCHECK_DETECTION endif #VBoxGuest_DEFS.win += LOG_ENABLED LOG_TO_BACKDOOR + VBoxGuest_DEFS.win += \ + $(if $(VBOX_WITH_DPC_LATENCY_CHECKER),VBOX_WITH_DPC_LATENCY_CHECKER,) VBoxGuest_DEPS.solaris += $(VBOX_SVN_REV_KMK) VBoxGuest_DEPS.linux += $(VBOX_SVN_REV_HEADER) VBoxGuest_DEPS.freebsd += $(VBOX_SVN_REV_HEADER) diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Additions/common/VBoxGuest/VBoxGuest.cpp virtualbox-4.1.44-dfsg/src/VBox/Additions/common/VBoxGuest/VBoxGuest.cpp --- virtualbox-4.1.12-dfsg/src/VBox/Additions/common/VBoxGuest/VBoxGuest.cpp 2012-04-02 13:25:15.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Additions/common/VBoxGuest/VBoxGuest.cpp 2015-11-11 15:06:20.000000000 +0000 @@ -61,11 +61,15 @@ #endif static int VBoxGuestCommonIOCtl_SetMouseStatus(PVBOXGUESTDEVEXT pDevExt, PVBOXGUESTSESSION pSession, uint32_t fFeatures); +#ifdef VBOX_WITH_DPC_LATENCY_CHECKER +int VBoxGuestCommonIOCtl_DPC(PVBOXGUESTDEVEXT pDevExt, PVBOXGUESTSESSION pSession, + void *pvData, size_t cbData, size_t *pcbDataReturned); +#endif /* VBOX_WITH_DPC_LATENCY_CHECKER */ /******************************************************************************* * Global Variables * *******************************************************************************/ -static const size_t cbChangeMemBalloonReq = RT_OFFSETOF(VMMDevChangeMemBalloon, aPhysPage[VMMDEV_MEMORY_BALLOON_CHUNK_PAGES]); +static const uint32_t cbChangeMemBalloonReq = RT_OFFSETOF(VMMDevChangeMemBalloon, aPhysPage[VMMDEV_MEMORY_BALLOON_CHUNK_PAGES]); #if defined(RT_OS_SOLARIS) /** @@ -182,7 +186,7 @@ pReq->header.requestType = VMMDevReq_SetHypervisorInfo; pReq->header.rc = VERR_INTERNAL_ERROR; pReq->hypervisorSize = cbHypervisor; - pReq->hypervisorStart = (uintptr_t)RTR0MemObjAddress(hObj); + pReq->hypervisorStart = (RTGCPTR32)(uintptr_t)RTR0MemObjAddress(hObj); if ( uAlignment == PAGE_SIZE && pReq->hypervisorStart & (_4M - 1)) pReq->hypervisorStart = RT_ALIGN_32(pReq->hypervisorStart, _4M); @@ -1575,7 +1579,7 @@ */ const VMMDevRequestType enmType = pReqHdr->requestType; const uint32_t cbReq = pReqHdr->size; - const uint32_t cbMinSize = vmmdevGetRequestSize(enmType); + const uint32_t cbMinSize = (uint32_t)vmmdevGetRequestSize(enmType); Log(("VBoxGuestCommonIOCtl: VMMREQUEST type %d\n", pReqHdr->requestType)); @@ -2136,37 +2140,6 @@ } -#ifdef VBOX_WITH_VRDP_SESSION_HANDLING -/** - * Enables the VRDP session and saves its session ID. - * - * @returns VBox status code. - * - * @param pDevExt The device extention. - * @param pSession The session. - */ -static int VBoxGuestCommonIOCtl_EnableVRDPSession(VBOXGUESTDEVEXT pDevExt, PVBOXGUESTSESSION pSession) -{ - /* Nothing to do here right now, since this only is supported on Windows at the moment. */ - return VERR_NOT_IMPLEMENTED; -} - - -/** - * Disables the VRDP session. - * - * @returns VBox status code. - * - * @param pDevExt The device extention. - * @param pSession The session. - */ -static int VBoxGuestCommonIOCtl_DisableVRDPSession(VBOXGUESTDEVEXT pDevExt, PVBOXGUESTSESSION pSession) -{ - /* Nothing to do here right now, since this only is supported on Windows at the moment. */ - return VERR_NOT_IMPLEMENTED; -} -#endif /* VBOX_WITH_VRDP_SESSION_HANDLING */ - #ifdef DEBUG /** Unit test SetMouseStatus instead of really executing the request. */ static bool g_test_fSetMouseStatus = false; @@ -2436,6 +2409,12 @@ CHECKRET_MIN_SIZE("VMMREQUEST", sizeof(VMMDevRequestHeader)); rc = VBoxGuestCommonIOCtl_VMMRequest(pDevExt, pSession, (VMMDevRequestHeader *)pvData, cbData, pcbDataReturned); } +#ifdef VBOX_WITH_DPC_LATENCY_CHECKER + else if (VBOXGUEST_IOCTL_STRIP_SIZE(iFunction) == VBOXGUEST_IOCTL_STRIP_SIZE(VBOXGUEST_IOCTL_DPC)) + { + rc = VBoxGuestCommonIOCtl_DPC(pDevExt, pSession, pvData, cbData, pcbDataReturned); + } +#endif /* VBOX_WITH_DPC_LATENCY_CHECKER */ #ifdef VBOX_WITH_HGCM /* * These ones are a bit tricky. @@ -2550,15 +2529,6 @@ rc = VBoxGuestCommonIOCtl_WriteCoreDump(pDevExt, (VBoxGuestWriteCoreDump *)pvData); break; -#ifdef VBOX_WITH_VRDP_SESSION_HANDLING - case VBOXGUEST_IOCTL_ENABLE_VRDP_SESSION: - rc = VBoxGuestCommonIOCtl_EnableVRDPSession(pDevExt, pSession); - break; - - case VBOXGUEST_IOCTL_DISABLE_VRDP_SESSION: - rc = VBoxGuestCommonIOCtl_DisableVRDPSession(pDevExt, pSession); - break; -#endif /* VBOX_WITH_VRDP_SESSION_HANDLING */ case VBOXGUEST_IOCTL_SET_MOUSE_STATUS: CHECKRET_SIZE("SET_MOUSE_STATUS", sizeof(uint32_t)); rc = VBoxGuestCommonIOCtl_SetMouseStatus(pDevExt, pSession, diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Additions/common/VBoxGuest/VBoxGuestInternal.h virtualbox-4.1.44-dfsg/src/VBox/Additions/common/VBoxGuest/VBoxGuestInternal.h --- virtualbox-4.1.12-dfsg/src/VBox/Additions/common/VBoxGuest/VBoxGuestInternal.h 2012-04-02 13:25:15.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Additions/common/VBoxGuest/VBoxGuestInternal.h 2015-11-11 15:06:20.000000000 +0000 @@ -144,9 +144,6 @@ /** Spinlock various items in the VBOXGUESTSESSION. */ RTSPINLOCK SessionSpinlock; -#ifdef VBOX_WITH_VRDP_SESSION_HANDLING - BOOL fVRDPEnabled; -#endif /** Flag indicating whether logging to the release log * is enabled. */ bool fLoggingEnabled; diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Additions/common/VBoxGuest/VBoxGuest-linux.c virtualbox-4.1.44-dfsg/src/VBox/Additions/common/VBoxGuest/VBoxGuest-linux.c --- virtualbox-4.1.12-dfsg/src/VBox/Additions/common/VBoxGuest/VBoxGuest-linux.c 2012-04-02 13:25:15.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Additions/common/VBoxGuest/VBoxGuest-linux.c 2015-11-11 15:06:20.000000000 +0000 @@ -1,4 +1,4 @@ -/* $Rev: 74359 $ */ +/* $Rev: 97220 $ */ /** @file * VBoxGuest - Linux specifics. * @@ -203,7 +203,11 @@ /** PCI hotplug structure. */ -static const struct pci_device_id __devinitdata g_VBoxGuestPciId[] = +static const struct pci_device_id +#if LINUX_VERSION_CODE < KERNEL_VERSION(3, 8, 0) +__devinitdata +#endif +g_VBoxGuestPciId[] = { { vendor: VMMDEV_VENDORID, @@ -496,10 +500,11 @@ static void vboxguestLinuxTermInputDevice(void) { VbglGRFree(&g_pMouseStatusReq->header); + /* See documentation of input_register_device(): input_free_device() + * should not be called after a device has been registered. */ input_unregister_device(g_pInputDevice); - input_free_device(g_pInputDevice); } -#endif +#endif /* VBOXGUEST_WITH_INPUT_DRIVER */ /** diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Additions/common/VBoxGuest/VBoxGuest-win.cpp virtualbox-4.1.44-dfsg/src/VBox/Additions/common/VBoxGuest/VBoxGuest-win.cpp --- virtualbox-4.1.12-dfsg/src/VBox/Additions/common/VBoxGuest/VBoxGuest-win.cpp 2012-04-02 13:25:15.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Additions/common/VBoxGuest/VBoxGuest-win.cpp 2015-11-11 15:06:20.000000000 +0000 @@ -21,6 +21,7 @@ #include "VBoxGuestInternal.h" #include +#include #include #include @@ -728,86 +729,47 @@ pSession = pDevExt->win.s.pKernelSession; } - /* - * First process Windows specific stuff which cannot be handled - * by the common code used on all other platforms. In the default case - * we then finally handle the common cases. - */ - switch (uCmd) + /* Verify that it's a buffered CTL. */ + if ((pStack->Parameters.DeviceIoControl.IoControlCode & 0x3) == METHOD_BUFFERED) { -#ifdef VBOX_WITH_VRDP_SESSION_HANDLING - case VBOXGUEST_IOCTL_ENABLE_VRDP_SESSION: - { - LogRel(("VBoxGuest::vboxguestwinIOCtl: ENABLE_VRDP_SESSION: Currently: %sabled\n", - pDevExt->fVRDPEnabled? "en": "dis")); - if (!pDevExt->fVRDPEnabled) - { - KUSER_SHARED_DATA *pSharedUserData = (KUSER_SHARED_DATA *)KI_USER_SHARED_DATA; + /* + * Process the common IOCtls. + */ + size_t cbDataReturned; + int vrc = VBoxGuestCommonIOCtl(uCmd, pDevExt, pSession, pBuf, cbData, &cbDataReturned); - pDevExt->fVRDPEnabled = TRUE; - LogRel(("VBoxGuest::vboxguestwinIOCtl: ENABLE_VRDP_SESSION: Current active console ID: 0x%08X\n", - pSharedUserData->ActiveConsoleId)); - pDevExt->ulOldActiveConsoleId = pSharedUserData->ActiveConsoleId; - pSharedUserData->ActiveConsoleId = 2; - } - break; - } + Log(("VBoxGuest::vboxguestwinGuestDeviceControl: rc=%Rrc, pBuf=0x%p, cbData=%u, cbDataReturned=%u\n", + vrc, pBuf, cbData, cbDataReturned)); - case VBOXGUEST_IOCTL_DISABLE_VRDP_SESSION: + if (RT_SUCCESS(vrc)) { - LogRel(("VBoxGuest::vboxguestwinIOCtl: DISABLE_VRDP_SESSION: Currently: %sabled\n", - pDevExt->fVRDPEnabled? "en": "dis")); - if (pDevExt->fVRDPEnabled) + if (RT_UNLIKELY( cbDataReturned > cbData + || cbDataReturned > pStack->Parameters.DeviceIoControl.OutputBufferLength)) { - KUSER_SHARED_DATA *pSharedUserData = (KUSER_SHARED_DATA *)KI_USER_SHARED_DATA; - - pDevExt->fVRDPEnabled = FALSE; - Log(("VBoxGuest::vboxguestwinIOCtl: DISABLE_VRDP_SESSION: Current active console ID: 0x%08X\n", - pSharedUserData->ActiveConsoleId)); - pSharedUserData->ActiveConsoleId = pDevExt->ulOldActiveConsoleId; - pDevExt->ulOldActiveConsoleId = 0; + Log(("VBoxGuest::vboxguestwinGuestDeviceControl: Too much output data %u - expected %u!\n", cbDataReturned, cbData)); + cbDataReturned = cbData; + Status = STATUS_BUFFER_TOO_SMALL; } - break; + if (cbDataReturned > 0) + cbOut = cbDataReturned; } -#else - /* Add at least one (bogus) fall through case to shut up MSVC! */ - case 0: -#endif - default: + else { - /* - * Process the common IOCtls. - */ - size_t cbDataReturned; - int vrc = VBoxGuestCommonIOCtl(uCmd, pDevExt, pSession, pBuf, cbData, &cbDataReturned); - - Log(("VBoxGuest::vboxguestwinGuestDeviceControl: rc=%Rrc, pBuf=0x%p, cbData=%u, cbDataReturned=%u\n", - vrc, pBuf, cbData, cbDataReturned)); - - if (RT_SUCCESS(vrc)) + if ( vrc == VERR_NOT_SUPPORTED + || vrc == VERR_INVALID_PARAMETER) { - if (RT_UNLIKELY(cbDataReturned > cbData)) - { - Log(("VBoxGuest::vboxguestwinGuestDeviceControl: Too much output data %u - expected %u!\n", cbDataReturned, cbData)); - cbDataReturned = cbData; - Status = STATUS_BUFFER_TOO_SMALL; - } - if (cbDataReturned > 0) - cbOut = cbDataReturned; + Status = STATUS_INVALID_PARAMETER; } else - { - if ( vrc == VERR_NOT_SUPPORTED - || vrc == VERR_INVALID_PARAMETER) - { - Status = STATUS_INVALID_PARAMETER; - } - else - Status = STATUS_UNSUCCESSFUL; - } - break; + Status = STATUS_UNSUCCESSFUL; } } + else + { + Log(("VBoxGuest::vboxguestwinGuestDeviceControl: Not buffered request (%#x) - not supported\n", + pStack->Parameters.DeviceIoControl.IoControlCode)); + Status = STATUS_NOT_SUPPORTED; + } pIrp->IoStatus.Status = Status; pIrp->IoStatus.Information = cbOut; @@ -1397,3 +1359,119 @@ #endif /* DEBUG */ +#ifdef VBOX_WITH_DPC_LATENCY_CHECKER +#pragma pack(1) +typedef struct DPCSAMPLE +{ + LARGE_INTEGER PerfDelta; + LARGE_INTEGER PerfCounter; + LARGE_INTEGER PerfFrequency; + uint64_t u64TSC; +} DPCSAMPLE; + +typedef struct DPCDATA +{ + KDPC Dpc; + KTIMER Timer; + KSPIN_LOCK SpinLock; + + ULONG ulTimerRes; + + LARGE_INTEGER DueTime; + + BOOLEAN fFinished; + + LARGE_INTEGER PerfCounterPrev; + + int iSampleCount; + DPCSAMPLE aSamples[8192]; +} DPCDATA; +#pragma pack(1) + +#define VBOXGUEST_DPC_TAG 'DPCS' + +static VOID DPCDeferredRoutine(struct _KDPC *Dpc, + PVOID DeferredContext, + PVOID SystemArgument1, + PVOID SystemArgument2) +{ + DPCDATA *pData = (DPCDATA *)DeferredContext; + + KeAcquireSpinLockAtDpcLevel(&pData->SpinLock); + + if (pData->iSampleCount >= RT_ELEMENTS(pData->aSamples)) + { + pData->fFinished = 1; + KeReleaseSpinLockFromDpcLevel(&pData->SpinLock); + return; + } + + DPCSAMPLE *pSample = &pData->aSamples[pData->iSampleCount++]; + + pSample->u64TSC = ASMReadTSC(); + pSample->PerfCounter = KeQueryPerformanceCounter(&pSample->PerfFrequency); + pSample->PerfDelta.QuadPart = pSample->PerfCounter.QuadPart - pData->PerfCounterPrev.QuadPart; + + pData->PerfCounterPrev.QuadPart = pSample->PerfCounter.QuadPart; + + KeSetTimer(&pData->Timer, pData->DueTime, &pData->Dpc); + + KeReleaseSpinLockFromDpcLevel(&pData->SpinLock); +} + +int VBoxGuestCommonIOCtl_DPC(PVBOXGUESTDEVEXT pDevExt, PVBOXGUESTSESSION pSession, + void *pvData, size_t cbData, size_t *pcbDataReturned) +{ + int rc = VINF_SUCCESS; + + /* Allocate a non paged memory for samples and related data. */ + DPCDATA *pData = (DPCDATA *)ExAllocatePoolWithTag(NonPagedPool, sizeof(DPCDATA), VBOXGUEST_DPC_TAG); + + if (!pData) + { + RTLogBackdoorPrintf("VBoxGuest: DPC: DPCDATA allocation failed.\n"); + return VERR_NO_MEMORY; + } + + KeInitializeDpc(&pData->Dpc, DPCDeferredRoutine, pData); + KeInitializeTimer(&pData->Timer); + KeInitializeSpinLock(&pData->SpinLock); + + pData->fFinished = 0; + pData->iSampleCount = 0; + pData->PerfCounterPrev.QuadPart = 0; + + pData->ulTimerRes = ExSetTimerResolution(1000 * 10, 1); + pData->DueTime.QuadPart = -(int64_t)pData->ulTimerRes / 10; + + /* Start the DPC measurements. */ + KeSetTimer(&pData->Timer, pData->DueTime, &pData->Dpc); + + while (!pData->fFinished) + { + LARGE_INTEGER Interval; + Interval.QuadPart = -100 * 1000 * 10; + KeDelayExecutionThread(KernelMode, TRUE, &Interval); + } + + ExSetTimerResolution(0, 0); + + /* Log everything to the host. */ + RTLogBackdoorPrintf("DPC: ulTimerRes = %d\n", pData->ulTimerRes); + int i; + for (i = 0; i < pData->iSampleCount; i++) + { + DPCSAMPLE *pSample = &pData->aSamples[i]; + + RTLogBackdoorPrintf("[%d] pd %lld pc %lld pf %lld t %lld\n", + i, + pSample->PerfDelta.QuadPart, + pSample->PerfCounter.QuadPart, + pSample->PerfFrequency.QuadPart, + pSample->u64TSC); + } + + ExFreePoolWithTag(pData, VBOXGUEST_DPC_TAG); + return rc; +} +#endif /* VBOX_WITH_DPC_LATENCY_CHECKER */ diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Additions/common/VBoxGuestLib/VBoxGuestR0LibCrOgl.cpp virtualbox-4.1.44-dfsg/src/VBox/Additions/common/VBoxGuestLib/VBoxGuestR0LibCrOgl.cpp --- virtualbox-4.1.12-dfsg/src/VBox/Additions/common/VBoxGuestLib/VBoxGuestR0LibCrOgl.cpp 2012-04-02 13:25:16.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Additions/common/VBoxGuestLib/VBoxGuestR0LibCrOgl.cpp 2015-11-11 15:06:21.000000000 +0000 @@ -91,9 +91,18 @@ RTStrCopy(info.Loc.u.host.achName, sizeof (info.Loc.u.host.achName), "VBoxSharedCrOpenGL"); rc = vbglDriverIOCtl (&hCtl->driver, VBOXGUEST_IOCTL_HGCM_CONNECT, &info, sizeof (info)); if (RT_SUCCESS(rc)) - *pu32ClientID = info.u32ClientID; - else - *pu32ClientID = 0; + { + rc = info.result; + if (RT_SUCCESS(rc)) + { + Assert(info.u32ClientID); + *pu32ClientID = info.u32ClientID; + return rc; + } + } + + Assert(RT_FAILURE(rc)); + *pu32ClientID = 0; return rc; } diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Additions/common/VBoxGuestLib/VBoxGuestR3LibAutoLogon.cpp virtualbox-4.1.44-dfsg/src/VBox/Additions/common/VBoxGuestLib/VBoxGuestR3LibAutoLogon.cpp --- virtualbox-4.1.12-dfsg/src/VBox/Additions/common/VBoxGuestLib/VBoxGuestR3LibAutoLogon.cpp 2012-04-02 13:25:16.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Additions/common/VBoxGuestLib/VBoxGuestR3LibAutoLogon.cpp 2015-11-11 15:06:21.000000000 +0000 @@ -63,6 +63,7 @@ * VMMDevReportGuestStatus implemented we set the appropriate status via * guest property to have at least something. */ +#ifdef VBOX_WITH_GUEST_PROPS uint32_t u32ClientId = 0; rc = VbglR3GuestPropConnect(&u32ClientId); if (RT_SUCCESS(rc)) @@ -124,6 +125,7 @@ VbglR3GuestPropDisconnect(u32ClientId); } +#endif } s_enmLastStatus = enmStatus; diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Additions/common/VBoxGuestLib/VBoxGuestR3LibGuestCtrl.cpp virtualbox-4.1.44-dfsg/src/VBox/Additions/common/VBoxGuestLib/VBoxGuestR3LibGuestCtrl.cpp --- virtualbox-4.1.12-dfsg/src/VBox/Additions/common/VBoxGuestLib/VBoxGuestR3LibGuestCtrl.cpp 2012-04-02 13:25:16.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Additions/common/VBoxGuestLib/VBoxGuestR3LibGuestCtrl.cpp 2015-11-11 15:06:21.000000000 +0000 @@ -176,25 +176,26 @@ char *pszPassword, uint32_t cbPassword, uint32_t *pcMsTimeLimit) { - AssertPtrReturn(puContext, VERR_INVALID_PARAMETER); - AssertPtrReturn(pszCmd, VERR_INVALID_PARAMETER); - AssertPtrReturn(puFlags, VERR_INVALID_PARAMETER); - AssertPtrReturn(pszArgs, VERR_INVALID_PARAMETER); - AssertPtrReturn(pcArgs, VERR_INVALID_PARAMETER); - AssertPtrReturn(pszEnv, VERR_INVALID_PARAMETER); - AssertPtrReturn(pcbEnv, VERR_INVALID_PARAMETER); - AssertPtrReturn(pcEnvVars, VERR_INVALID_PARAMETER); - AssertPtrReturn(pszUser, VERR_INVALID_PARAMETER); - AssertPtrReturn(pszPassword, VERR_INVALID_PARAMETER); - AssertPtrReturn(pcMsTimeLimit, VERR_INVALID_PARAMETER); + AssertReturn(cParms == 11, VERR_INVALID_PARAMETER); + + AssertPtrReturn(puContext, VERR_INVALID_POINTER); + AssertPtrReturn(pszCmd, VERR_INVALID_POINTER); + AssertPtrReturn(puFlags, VERR_INVALID_POINTER); + AssertPtrReturn(pszArgs, VERR_INVALID_POINTER); + AssertPtrReturn(pcArgs, VERR_INVALID_POINTER); + AssertPtrReturn(pszEnv, VERR_INVALID_POINTER); + AssertPtrReturn(pcbEnv, VERR_INVALID_POINTER); + AssertPtrReturn(pcEnvVars, VERR_INVALID_POINTER); + AssertPtrReturn(pszUser, VERR_INVALID_POINTER); + AssertPtrReturn(pszPassword, VERR_INVALID_POINTER); + AssertPtrReturn(pcMsTimeLimit, VERR_INVALID_POINTER); VBoxGuestCtrlHGCMMsgExecCmd Msg; Msg.hdr.result = VERR_WRONG_ORDER; Msg.hdr.u32ClientID = u32ClientId; Msg.hdr.u32Function = GUEST_GET_HOST_MSG; - Msg.hdr.cParms = cParms; /** @todo r=bird: This isn't safe/right. The parameter count of this HGCM call - * is fixed from our point of view. */ + Msg.hdr.cParms = 11; VbglHGCMParmUInt32Set(&Msg.context, 0); VbglHGCMParmPtrSet(&Msg.cmd, pszCmd, cbCmd); @@ -244,17 +245,19 @@ uint32_t *puContext, uint32_t *puPID, uint32_t *puHandle, uint32_t *puFlags) { - AssertPtrReturn(puContext, VERR_INVALID_PARAMETER); - AssertPtrReturn(puPID, VERR_INVALID_PARAMETER); - AssertPtrReturn(puHandle, VERR_INVALID_PARAMETER); - AssertPtrReturn(puFlags, VERR_INVALID_PARAMETER); + AssertReturn(cParms == 4, VERR_INVALID_PARAMETER); + + AssertPtrReturn(puContext, VERR_INVALID_POINTER); + AssertPtrReturn(puPID, VERR_INVALID_POINTER); + AssertPtrReturn(puHandle, VERR_INVALID_POINTER); + AssertPtrReturn(puFlags, VERR_INVALID_POINTER); VBoxGuestCtrlHGCMMsgExecOut Msg; Msg.hdr.result = VERR_WRONG_ORDER; Msg.hdr.u32ClientID = u32ClientId; Msg.hdr.u32Function = GUEST_GET_HOST_MSG; - Msg.hdr.cParms = cParms; + Msg.hdr.cParms = 4; VbglHGCMParmUInt32Set(&Msg.context, 0); VbglHGCMParmUInt32Set(&Msg.pid, 0); @@ -298,18 +301,20 @@ void *pvData, uint32_t cbData, uint32_t *pcbSize) { - AssertPtrReturn(puContext, VERR_INVALID_PARAMETER); - AssertPtrReturn(puPID, VERR_INVALID_PARAMETER); - AssertPtrReturn(puFlags, VERR_INVALID_PARAMETER); - AssertPtrReturn(pvData, VERR_INVALID_PARAMETER); - AssertPtrReturn(pcbSize, VERR_INVALID_PARAMETER); + AssertReturn(cParms == 5, VERR_INVALID_PARAMETER); + + AssertPtrReturn(puContext, VERR_INVALID_POINTER); + AssertPtrReturn(puPID, VERR_INVALID_POINTER); + AssertPtrReturn(puFlags, VERR_INVALID_POINTER); + AssertPtrReturn(pvData, VERR_INVALID_POINTER); + AssertPtrReturn(pcbSize, VERR_INVALID_POINTER); VBoxGuestCtrlHGCMMsgExecIn Msg; Msg.hdr.result = VERR_WRONG_ORDER; Msg.hdr.u32ClientID = u32ClientId; Msg.hdr.u32Function = GUEST_GET_HOST_MSG; - Msg.hdr.cParms = cParms; + Msg.hdr.cParms = 5; VbglHGCMParmUInt32Set(&Msg.context, 0); VbglHGCMParmUInt32Set(&Msg.pid, 0); @@ -448,3 +453,4 @@ } return rc; } + diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Additions/common/VBoxService/Makefile.kmk virtualbox-4.1.44-dfsg/src/VBox/Additions/common/VBoxService/Makefile.kmk --- virtualbox-4.1.12-dfsg/src/VBox/Additions/common/VBoxService/Makefile.kmk 2012-04-02 13:25:17.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Additions/common/VBoxService/Makefile.kmk 2015-11-11 15:06:21.000000000 +0000 @@ -38,6 +38,9 @@ VBOX_BUILD_TARGET=\"$(KBUILD_TARGET).$(KBUILD_TARGET_ARCH)\" VBoxService_DEFS.win += _WIN32_WINNT=0x0501 VBoxService_DEFS.os2 = VBOX_WITH_HGCM VBOXSERVICE_CLIPBOARD +ifdef VBOX_WITH_DBUS + VBoxService_DEFS += VBOX_WITH_DBUS +endif ifdef VBOX_WITH_GUEST_PROPS VBoxService_DEFS += VBOX_WITH_GUEST_PROPS VBOXSERVICE_VMINFO endif @@ -120,6 +123,12 @@ VBoxService_LIBS += \ crypt endif +ifdef VBOX_WITH_DBUS + if1of ($(KBUILD_TARGET), linux solaris) # FreeBSD? + VBoxService_LIBS += \ + dl + endif +endif ifdef VBOX_WITH_GUEST_PROPS VBoxService_LIBS.win += \ Secur32.lib \ diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Additions/common/VBoxService/VBoxServiceAutoMount.cpp virtualbox-4.1.44-dfsg/src/VBox/Additions/common/VBoxService/VBoxServiceAutoMount.cpp --- virtualbox-4.1.12-dfsg/src/VBox/Additions/common/VBoxService/VBoxServiceAutoMount.cpp 2012-04-02 13:25:17.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Additions/common/VBoxService/VBoxServiceAutoMount.cpp 2015-11-11 15:06:21.000000000 +0000 @@ -440,7 +440,7 @@ struct vbsf_mount_opts mount_opts = { 0, /* uid */ - grp_vboxsf->gr_gid, /* gid */ + (int)grp_vboxsf->gr_gid, /* gid */ 0, /* ttl */ 0770, /* dmode, owner and group "vboxsf" have full access */ 0770, /* fmode, owner and group "vboxsf" have full access */ @@ -534,7 +534,7 @@ if (RT_FAILURE(rc)) VBoxServiceError("VBoxServiceAutoMountWorker: Error while getting the shared folder mappings, rc = %Rrc\n", rc); else if (!cMappings) - VBoxServiceVerbose(3, "VBoxServiceAutoMountWorker: No shared folder mappings fouund\n"); + VBoxServiceVerbose(3, "VBoxServiceAutoMountWorker: No shared folder mappings found\n"); } /* diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Additions/common/VBoxService/VBoxServiceControl.cpp virtualbox-4.1.44-dfsg/src/VBox/Additions/common/VBoxService/VBoxServiceControl.cpp --- virtualbox-4.1.12-dfsg/src/VBox/Additions/common/VBoxService/VBoxServiceControl.cpp 2012-04-02 13:25:17.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Additions/common/VBoxService/VBoxServiceControl.cpp 2015-11-11 15:06:21.000000000 +0000 @@ -306,6 +306,11 @@ VBOXSERVICECTRLPROCESS proc; RT_ZERO(proc); + /* Initialize maximum environment block size -- needed as input + * parameter to retrieve the stuff from the host. On output this then + * will contain the actual block size. */ + proc.cbEnv = sizeof(proc.szEnv); + rc = VbglR3GuestCtrlExecGetHostCmdExec(uClientID, cParms, &uContextID, @@ -324,11 +329,17 @@ &proc.uTimeLimitMS); if (RT_SUCCESS(rc)) { - VBoxServiceVerbose(3, "Request to start process szCmd=%s, uFlags=0x%x, szArgs=%s, szEnv=%s, szUser=%s, uTimeout=%u\n", + VBoxServiceVerbose(3, "Request to start process szCmd=%s, uFlags=0x%x, szArgs=%s, szEnv=%s, szUser=%s, szPassword=%s, uTimeout=%u\n", proc.szCmd, proc.uFlags, proc.uNumArgs ? proc.szArgs : "", proc.uNumEnvVars ? proc.szEnv : "", - proc.szUser, proc.uTimeLimitMS); + proc.szUser, +#ifdef DEBUG + proc.szPassword, +#else + "XXX", /* Never show passwords in release mode. */ +#endif + proc.uTimeLimitMS); rc = VBoxServiceControlReapThreads(); if (RT_FAILURE(rc)) diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Additions/common/VBoxService/VBoxServiceCpuHotPlug.cpp virtualbox-4.1.44-dfsg/src/VBox/Additions/common/VBoxService/VBoxServiceCpuHotPlug.cpp --- virtualbox-4.1.12-dfsg/src/VBox/Additions/common/VBoxService/VBoxServiceCpuHotPlug.cpp 2012-04-02 13:25:17.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Additions/common/VBoxService/VBoxServiceCpuHotPlug.cpp 2015-11-11 15:06:21.000000000 +0000 @@ -80,32 +80,32 @@ const SYSFSCPUPATHCOMP g_aAcpiCpuPathLvl1[] = { /** LNXSYSTEM: */ - {true, "LNXSYSTM:"} + {true, "LNXSYSTM:*"} }; /** Possible combinations of all path components for level 2. */ const SYSFSCPUPATHCOMP g_aAcpiCpuPathLvl2[] = { /** device: */ - {true, "device:"}, + {true, "device:*"}, /** LNXSYBUS: */ - {true, "LNXSYBUS:"} + {true, "LNXSYBUS:*"} }; /** Possible combinations of all path components for level 3 */ const SYSFSCPUPATHCOMP g_aAcpiCpuPathLvl3[] = { /** ACPI0004: */ - {true, "ACPI0004:"} + {true, "ACPI0004:*"} }; /** Possible combinations of all path components for level 4 */ const SYSFSCPUPATHCOMP g_aAcpiCpuPathLvl4[] = { /** LNXCPU: */ - {true, "LNXCPU:"}, + {true, "LNXCPU:*"}, /** ACPI_CPU: */ - {true, "ACPI_CPU:"} + {true, "ACPI_CPU:*"} }; /** All possible combinations. */ @@ -120,6 +120,18 @@ /** Level 4 */ {ACPI_CPU_PATH_NOT_PROBED, g_aAcpiCpuPathLvl4, RT_ELEMENTS(g_aAcpiCpuPathLvl4), NULL, NULL}, }; + +/** + * Possible directories to get to the topology directory for reading core and package id. + * + * @remark: This is not part of the path above because the eject file is not in one of the directories + * below and would make the hot unplug code fail. + */ +const char *g_apszTopologyPath[] = +{ + "sysdev", + "physical_node" +}; #endif #ifdef RT_OS_LINUX @@ -172,6 +184,11 @@ size_t cchName = strlen(pPathComponent->pcszName); RTDIRENTRY DirFolderContent; bool fFound = false; + + /* Get rid of the * filter which is in the path component. */ + if (pPathComponent->fNumberedSuffix) + cchName--; + while (RT_SUCCESS(RTDirRead(pDirCurr, &DirFolderContent, NULL))) /* Assumption that szName has always enough space */ { if ( DirFolderContent.cbName >= cchName @@ -272,10 +289,25 @@ if (iLvlCurr == RT_ELEMENTS(g_aAcpiCpuPath) - 1) { /* Get the sysdev */ - uint32_t idCore = RTLinuxSysFsReadIntFile(10, "%s/sysdev/topology/core_id", - pszPathCurr); - uint32_t idPackage = RTLinuxSysFsReadIntFile(10, "%s/sysdev/topology/physical_package_id", - pszPathCurr); + uint32_t idCore = 0; + uint32_t idPackage = 0; + + for (unsigned i = 0; i < RT_ELEMENTS(g_apszTopologyPath); i++) + { + int64_t i64Core = RTLinuxSysFsReadIntFile(10, "%s/%s/topology/core_id", + pszPathCurr, g_apszTopologyPath[i]); + int64_t i64Package = RTLinuxSysFsReadIntFile(10, "%s/%s/topology/physical_package_id", + pszPathCurr, g_apszTopologyPath[i]); + + if ( i64Core != -1 + && i64Package != -1) + { + idCore = (uint32_t)i64Core; + idPackage = (uint32_t)i64Package; + break; + } + } + if ( idCore == idCpuCore && idPackage == idCpuPackage) { diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Additions/common/VBoxService/VBoxServicePageSharing.cpp virtualbox-4.1.44-dfsg/src/VBox/Additions/common/VBoxService/VBoxServicePageSharing.cpp --- virtualbox-4.1.12-dfsg/src/VBox/Additions/common/VBoxService/VBoxServicePageSharing.cpp 2012-04-02 13:25:17.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Additions/common/VBoxService/VBoxServicePageSharing.cpp 2015-11-11 15:06:21.000000000 +0000 @@ -27,6 +27,7 @@ #include #include #include +#include #include #include #include @@ -80,9 +81,7 @@ } RTL_PROCESS_MODULES, *PRTL_PROCESS_MODULES; typedef NTSTATUS (WINAPI *PFNZWQUERYSYSTEMINFORMATION)(ULONG, PVOID, ULONG, PULONG); -static PFNZWQUERYSYSTEMINFORMATION ZwQuerySystemInformation = NULL; -static HMODULE hNtdll = 0; - +static PFNZWQUERYSYSTEMINFORMATION g_pfnZwQuerySystemInformation = NULL; static DECLCALLBACK(int) VBoxServicePageSharingEmptyTreeCallback(PAVLPVNODECORE pNode, void *pvUser); @@ -365,13 +364,13 @@ CloseHandle(hSnapshot); /* Check all loaded kernel modules. */ - if (ZwQuerySystemInformation) + if (g_pfnZwQuerySystemInformation) { ULONG cbBuffer = 0; PVOID pBuffer = NULL; PRTL_PROCESS_MODULES pSystemModules; - NTSTATUS ret = ZwQuerySystemInformation(SystemModuleInformation, (PVOID)&cbBuffer, 0, &cbBuffer); + NTSTATUS ret = g_pfnZwQuerySystemInformation(SystemModuleInformation, (PVOID)&cbBuffer, 0, &cbBuffer); if (!cbBuffer) { VBoxServiceVerbose(1, "ZwQuerySystemInformation returned length 0\n"); @@ -382,7 +381,7 @@ if (!pBuffer) goto skipkernelmodules; - ret = ZwQuerySystemInformation(SystemModuleInformation, pBuffer, cbBuffer, &cbBuffer); + ret = g_pfnZwQuerySystemInformation(SystemModuleInformation, pBuffer, cbBuffer, &cbBuffer); if (ret != STATUS_SUCCESS) { VBoxServiceVerbose(1, "ZwQuerySystemInformation returned %x (1)\n", ret); @@ -552,10 +551,7 @@ AssertRCReturn(rc, rc); #if defined(RT_OS_WINDOWS) && !defined(TARGET_NT4) - hNtdll = LoadLibrary("ntdll.dll"); - - if (hNtdll) - ZwQuerySystemInformation = (PFNZWQUERYSYSTEMINFORMATION)GetProcAddress(hNtdll, "ZwQuerySystemInformation"); + g_pfnZwQuerySystemInformation = (PFNZWQUERYSYSTEMINFORMATION)RTLdrGetSystemSymbol("ntdll.dll", "ZwQuerySystemInformation"); rc = VbglR3GetSessionId(&g_idSession); if (RT_FAILURE(rc)) @@ -737,12 +733,6 @@ static DECLCALLBACK(void) VBoxServicePageSharingTerm(void) { VBoxServiceVerbose(3, "VBoxServicePageSharingTerm\n"); - -#if defined(RT_OS_WINDOWS) && !defined(TARGET_NT4) - if (hNtdll) - FreeLibrary(hNtdll); -#endif - return; } diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Additions/common/VBoxService/VBoxServicePropCache.cpp virtualbox-4.1.44-dfsg/src/VBox/Additions/common/VBoxService/VBoxServicePropCache.cpp --- virtualbox-4.1.12-dfsg/src/VBox/Additions/common/VBoxService/VBoxServicePropCache.cpp 2012-04-02 13:25:17.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Additions/common/VBoxService/VBoxServicePropCache.cpp 2015-11-11 15:06:22.000000000 +0000 @@ -38,8 +38,9 @@ /** @todo Docs */ PVBOXSERVICEVEPROPCACHEENTRY vboxServicePropCacheFindInternal(PVBOXSERVICEVEPROPCACHE pCache, const char *pszName, uint32_t uFlags) { - AssertPtr(pCache); - AssertPtr(pszName); + AssertPtrReturn(pCache, NULL); + AssertPtrReturn(pszName, NULL); + /** @todo This is a O(n) lookup, maybe improve this later to O(1) using a * map. * r=bird: Use a string space (RTstrSpace*). That is O(log n) in its current @@ -65,11 +66,18 @@ /** @todo Docs */ PVBOXSERVICEVEPROPCACHEENTRY vboxServicePropCacheInsertEntryInternal(PVBOXSERVICEVEPROPCACHE pCache, const char *pszName) { - AssertPtr(pszName); + AssertPtrReturn(pCache, NULL); + AssertPtrReturn(pszName, NULL); + PVBOXSERVICEVEPROPCACHEENTRY pNode = (PVBOXSERVICEVEPROPCACHEENTRY)RTMemAlloc(sizeof(VBOXSERVICEVEPROPCACHEENTRY)); if (pNode) { pNode->pszName = RTStrDup(pszName); + if (!pNode->pszName) + { + RTMemFree(pNode); + return NULL; + } pNode->pszValue = NULL; pNode->fFlags = 0; pNode->pszValueReset = NULL; @@ -88,7 +96,8 @@ /** @todo Docs */ int vboxServicePropCacheWritePropF(uint32_t u32ClientId, const char *pszName, uint32_t fFlags, const char *pszValueFormat, ...) { - AssertPtr(pszName); + AssertPtrReturn(pszName, VERR_INVALID_POINTER); + int rc; if (pszValueFormat != NULL) { @@ -141,7 +150,7 @@ */ int VBoxServicePropCacheCreate(PVBOXSERVICEVEPROPCACHE pCache, uint32_t uClientId) { - AssertPtr(pCache); + AssertPtrReturn(pCache, VERR_INVALID_POINTER); /** @todo Prevent init the cache twice! * r=bird: Use a magic. */ RTListInit(&pCache->NodeHead); @@ -164,8 +173,8 @@ int VBoxServicePropCacheUpdateEntry(PVBOXSERVICEVEPROPCACHE pCache, const char *pszName, uint32_t fFlags, const char *pszValueReset) { - AssertPtr(pCache); - AssertPtr(pszName); + AssertPtrReturn(pCache, VERR_INVALID_POINTER); + AssertPtrReturn(pszName, VERR_INVALID_POINTER); PVBOXSERVICEVEPROPCACHEENTRY pNode = vboxServicePropCacheFindInternal(pCache, pszName, 0); if (pNode == NULL) pNode = vboxServicePropCacheInsertEntryInternal(pCache, pszName); @@ -182,6 +191,7 @@ if (pNode->pszValueReset) RTStrFree(pNode->pszValueReset); pNode->pszValueReset = RTStrDup(pszValueReset); + AssertPtr(pNode->pszValueReset); } rc = RTCritSectLeave(&pCache->CritSect); } @@ -205,9 +215,10 @@ */ int VBoxServicePropCacheUpdate(PVBOXSERVICEVEPROPCACHE pCache, const char *pszName, const char *pszValueFormat, ...) { - AssertPtr(pCache); + AssertPtrReturn(pCache, VERR_INVALID_POINTER); + AssertPtrReturn(pszName, VERR_INVALID_POINTER); + Assert(pCache->uClientID); - AssertPtr(pszName); /* * Format the value first. @@ -250,8 +261,15 @@ { /* Write the update. */ rc = vboxServicePropCacheWritePropF(pCache->uClientID, pNode->pszName, pNode->fFlags, pszValue); - RTStrFree(pNode->pszValue); - pNode->pszValue = RTStrDup(pszValue); + VBoxServiceVerbose(4, "[PropCache %p]: Written \"%s\"=\"%s\" (flags: %x), rc=%Rrc\n", + pCache, pNode->pszName, pszValue, pNode->fFlags, rc); + if (RT_SUCCESS(rc)) /* Only update the node's value on successful write. */ + { + RTStrFree(pNode->pszValue); + pNode->pszValue = RTStrDup(pszValue); + if (!pNode->pszValue) + rc = VERR_NO_MEMORY; + } } else rc = VINF_NO_CHANGE; /* No update needed. */ @@ -261,11 +279,16 @@ /* No value specified. Deletion (or no action required). */ if (pNode->pszValue) /* Did we have a value before? Then the value needs to be deleted. */ { - /* Delete property (but do not remove from cache) if not deleted yet. */ - RTStrFree(pNode->pszValue); - pNode->pszValue = NULL; rc = vboxServicePropCacheWritePropF(pCache->uClientID, pNode->pszName, 0, /* Flags */ NULL /* Value */); + VBoxServiceVerbose(4, "[PropCache %p]: Deleted \"%s\"=\"%s\" (flags: %x), rc=%Rrc\n", + pCache, pNode->pszName, pNode->pszValue, pNode->fFlags, rc); + if (RT_SUCCESS(rc)) /* Only delete property value on successful Vbgl deletion. */ + { + /* Delete property (but do not remove from cache) if not deleted yet. */ + RTStrFree(pNode->pszValue); + pNode->pszValue = NULL; + } } else rc = VINF_NO_CHANGE; /* No update needed. */ @@ -275,6 +298,9 @@ RTCritSectLeave(&pCache->CritSect); } + VBoxServiceVerbose(4, "[PropCache %p]: Updating \"%s\" resulted in rc=%Rrc\n", + pCache, pszName, rc); + /* Delete temp stuff. */ RTStrFree(pszValue); return rc; @@ -295,8 +321,9 @@ */ int VBoxServicePropCacheUpdateByPath(PVBOXSERVICEVEPROPCACHE pCache, const char *pszValue, uint32_t fFlags, const char *pszPathFormat, ...) { - AssertPtr(pCache); - AssertPtr(pszPathFormat); + AssertPtrReturn(pCache, VERR_INVALID_POINTER); + AssertPtrReturn(pszPathFormat, VERR_INVALID_POINTER); + int rc = VERR_NOT_FOUND; PVBOXSERVICEVEPROPCACHEENTRY pNodeIt = NULL; if (RT_SUCCESS(RTCritSectEnter(&pCache->CritSect))) @@ -341,7 +368,8 @@ */ int VBoxServicePropCacheFlush(PVBOXSERVICEVEPROPCACHE pCache) { - AssertPtr(pCache); + AssertPtrReturn(pCache, VERR_INVALID_POINTER); + int rc = VINF_SUCCESS; PVBOXSERVICEVEPROPCACHEENTRY pNodeIt = NULL; if (RT_SUCCESS(RTCritSectEnter(&pCache->CritSect))) @@ -366,7 +394,7 @@ */ void VBoxServicePropCacheDestroy(PVBOXSERVICEVEPROPCACHE pCache) { - AssertPtr(pCache); + AssertPtrReturnVoid(pCache); Assert(pCache->uClientID); /* Lock the cache. */ diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Additions/common/VBoxService/VBoxServiceStats.cpp virtualbox-4.1.44-dfsg/src/VBox/Additions/common/VBoxService/VBoxServiceStats.cpp --- virtualbox-4.1.12-dfsg/src/VBox/Additions/common/VBoxService/VBoxServiceStats.cpp 2012-04-02 13:25:17.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Additions/common/VBoxService/VBoxServiceStats.cpp 2015-11-11 15:06:22.000000000 +0000 @@ -43,6 +43,7 @@ #include #include +#include #include #include #include @@ -123,45 +124,32 @@ VBoxServiceVerbose(3, "VBoxStatsInit: DeviceIoControl failed with %d\n", rc); #ifdef RT_OS_WINDOWS - /** @todo Use RTLdr instead of LoadLibrary/GetProcAddress here! */ - - /* NtQuerySystemInformation might be dropped in future releases, so load it dynamically as per Microsoft's recommendation */ - HMODULE hMod = LoadLibrary("NTDLL.DLL"); - if (hMod) + /* NtQuerySystemInformation might be dropped in future releases, so load + it dynamically as per Microsoft's recommendation. */ + *(void **)&gCtx.pfnNtQuerySystemInformation = RTLdrGetSystemSymbol("NTDLL.DLL", "NtQuerySystemInformation"); + if (gCtx.pfnNtQuerySystemInformation) + VBoxServiceVerbose(3, "VBoxStatsInit: gCtx.pfnNtQuerySystemInformation = %x\n", gCtx.pfnNtQuerySystemInformation); + else { - *(uintptr_t *)&gCtx.pfnNtQuerySystemInformation = (uintptr_t)GetProcAddress(hMod, "NtQuerySystemInformation"); - if (gCtx.pfnNtQuerySystemInformation) - VBoxServiceVerbose(3, "VBoxStatsInit: gCtx.pfnNtQuerySystemInformation = %x\n", gCtx.pfnNtQuerySystemInformation); - else - { - VBoxServiceVerbose(3, "VBoxStatsInit: NTDLL.NtQuerySystemInformation not found!\n"); - return VERR_SERVICE_DISABLED; - } + VBoxServiceVerbose(3, "VBoxStatsInit: NTDLL.NtQuerySystemInformation not found!\n"); + return VERR_SERVICE_DISABLED; } /* GlobalMemoryStatus is win2k and up, so load it dynamically */ - hMod = LoadLibrary("KERNEL32.DLL"); - if (hMod) + *(void **)&gCtx.pfnGlobalMemoryStatusEx = RTLdrGetSystemSymbol("KERNEL32.DLL", "GlobalMemoryStatusEx"); + if (gCtx.pfnGlobalMemoryStatusEx) + VBoxServiceVerbose(3, "VBoxStatsInit: gCtx.GlobalMemoryStatusEx = %x\n", gCtx.pfnGlobalMemoryStatusEx); + else { - *(uintptr_t *)&gCtx.pfnGlobalMemoryStatusEx = (uintptr_t)GetProcAddress(hMod, "GlobalMemoryStatusEx"); - if (gCtx.pfnGlobalMemoryStatusEx) - VBoxServiceVerbose(3, "VBoxStatsInit: gCtx.GlobalMemoryStatusEx = %x\n", gCtx.pfnGlobalMemoryStatusEx); - else - { - /** @todo Now fails in NT4; do we care? */ - VBoxServiceVerbose(3, "VBoxStatsInit: KERNEL32.GlobalMemoryStatusEx not found!\n"); - return VERR_SERVICE_DISABLED; - } + /** @todo Now fails in NT4; do we care? */ + VBoxServiceVerbose(3, "VBoxStatsInit: KERNEL32.GlobalMemoryStatusEx not found!\n"); + return VERR_SERVICE_DISABLED; } + /* GetPerformanceInfo is xp and up, so load it dynamically */ - hMod = LoadLibrary("PSAPI.DLL"); - if (hMod) - { - *(uintptr_t *)&gCtx.pfnGetPerformanceInfo = (uintptr_t)GetProcAddress(hMod, "GetPerformanceInfo"); - if (gCtx.pfnGetPerformanceInfo) - VBoxServiceVerbose(3, "VBoxStatsInit: gCtx.pfnGetPerformanceInfo= %x\n", gCtx.pfnGetPerformanceInfo); - /* failure is not fatal */ - } + *(void **)&gCtx.pfnGetPerformanceInfo = RTLdrGetSystemSymbol("PSAPI.DLL", "GetPerformanceInfo"); + if (gCtx.pfnGetPerformanceInfo) + VBoxServiceVerbose(3, "VBoxStatsInit: gCtx.pfnGetPerformanceInfo= %x\n", gCtx.pfnGetPerformanceInfo); #endif /* RT_OS_WINDOWS */ return VINF_SUCCESS; @@ -354,6 +342,7 @@ req.guestStats.u32PageSize = getpagesize(); req.guestStats.u32StatCaps = VBOX_GUEST_STAT_PHYS_MEM_TOTAL | VBOX_GUEST_STAT_PHYS_MEM_AVAIL + | VBOX_GUEST_STAT_MEM_SYSTEM_CACHE | VBOX_GUEST_STAT_PAGE_FILE_SIZE; #ifdef VBOX_WITH_MEMBALLOON req.guestStats.u32PhysMemBalloon = VBoxServiceBalloonQueryPages(_4K); @@ -534,6 +523,7 @@ req.guestStats.u32StatCaps = VBOX_GUEST_STAT_PHYS_MEM_TOTAL | VBOX_GUEST_STAT_PHYS_MEM_AVAIL + | VBOX_GUEST_STAT_MEM_SYSTEM_CACHE | VBOX_GUEST_STAT_PAGE_FILE_SIZE; #ifdef VBOX_WITH_MEMBALLOON req.guestStats.u32PhysMemBalloon = VBoxServiceBalloonQueryPages(_4K); diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Additions/common/VBoxService/VBoxServiceUtils.cpp virtualbox-4.1.44-dfsg/src/VBox/Additions/common/VBoxService/VBoxServiceUtils.cpp --- virtualbox-4.1.12-dfsg/src/VBox/Additions/common/VBoxService/VBoxServiceUtils.cpp 2012-04-02 13:25:18.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Additions/common/VBoxService/VBoxServiceUtils.cpp 2015-11-11 15:06:22.000000000 +0000 @@ -4,7 +4,7 @@ */ /* - * Copyright (C) 2009-2010 Oracle Corporation + * Copyright (C) 2009-2012 Oracle Corporation * * This file is part of VirtualBox Open Source Edition (OSE), as * available from http://www.virtualbox.org. This file is free software; @@ -47,8 +47,12 @@ * @param puTimestamp Where to return the timestamp. This is only set * on success. Optional. */ -int VBoxServiceReadProp(uint32_t u32ClientId, const char *pszPropName, char **ppszValue, char **ppszFlags, uint64_t *puTimestamp) +int VBoxServiceReadProp(uint32_t u32ClientId, const char *pszPropName, + char **ppszValue, char **ppszFlags, uint64_t *puTimestamp) { + AssertPtrReturn(pszPropName, VERR_INVALID_POINTER); + AssertPtrReturn(ppszValue, VERR_INVALID_POINTER); + uint32_t cbBuf = _1K; void *pvBuf = NULL; int rc; @@ -106,7 +110,8 @@ break; /* done */ } - RTMemFree(pvBuf); + if (pvBuf) + RTMemFree(pvBuf); return rc; } @@ -121,14 +126,14 @@ * @param pu32 Where to store the 32-bit value. * */ -int VBoxServiceReadPropUInt32(uint32_t u32ClientId, const char *pszPropName, uint32_t *pu32, uint32_t u32Min, uint32_t u32Max) +int VBoxServiceReadPropUInt32(uint32_t u32ClientId, const char *pszPropName, + uint32_t *pu32, uint32_t u32Min, uint32_t u32Max) { char *pszValue; int rc = VBoxServiceReadProp(u32ClientId, pszPropName, &pszValue, - NULL /* ppszFlags */, NULL /* puTimestamp */); + NULL /* ppszFlags */, NULL /* puTimestamp */); if (RT_SUCCESS(rc)) { - AssertPtr(pu32); char *pszNext; rc = RTStrToUInt32Ex(pszValue, &pszNext, 0, pu32); if ( RT_SUCCESS(rc) @@ -142,6 +147,64 @@ return rc; } + +/** + * Reads a guest property from the host side. + * + * @returns VBox status code, fully bitched. + * + * @param u32ClientId The HGCM client ID for the guest property session. + * @param pszPropName The property name. + * @param fReadOnly Whether or not this property needs to be read only + * by the guest side. Otherwise VERR_ACCESS_DENIED will + * be returned. + * @param ppszValue Where to return the value. This is always set + * to NULL. Free it using RTStrFree(). + * @param ppszFlags Where to return the value flags. Free it + * using RTStrFree(). Optional. + * @param puTimestamp Where to return the timestamp. This is only set + * on success. Optional. + */ +int VBoxServiceReadHostProp(uint32_t u32ClientId, const char *pszPropName, bool fReadOnly, + char **ppszValue, char **ppszFlags, uint64_t *puTimestamp) +{ + AssertPtrReturn(ppszValue, VERR_INVALID_PARAMETER); + + char *pszValue = NULL; + char *pszFlags = NULL; + int rc = VBoxServiceReadProp(u32ClientId, pszPropName, &pszValue, &pszFlags, puTimestamp); + if (RT_SUCCESS(rc)) + { + /* Check security bits. */ + if ( fReadOnly /* Do we except a guest read-only property */ + && !RTStrStr(pszFlags, "RDONLYGUEST")) + { + /* If we want a property which is read-only on the guest + * and it is *not* marked as such, deny access! */ + rc = VERR_ACCESS_DENIED; + } + + if (RT_SUCCESS(rc)) + { + *ppszValue = pszValue; + + if (ppszFlags) + *ppszFlags = pszFlags; + else if (pszFlags) + RTStrFree(pszFlags); + } + else + { + if (pszValue) + RTStrFree(pszValue); + if (pszFlags) + RTStrFree(pszFlags); + } + } + + return rc; +} + /** * Wrapper around VbglR3GuestPropWriteValue that does value formatting and diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Additions/common/VBoxService/VBoxServiceUtils.h virtualbox-4.1.44-dfsg/src/VBox/Additions/common/VBoxService/VBoxServiceUtils.h --- virtualbox-4.1.12-dfsg/src/VBox/Additions/common/VBoxService/VBoxServiceUtils.h 2012-04-02 13:25:18.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Additions/common/VBoxService/VBoxServiceUtils.h 2015-11-11 15:06:22.000000000 +0000 @@ -4,7 +4,7 @@ */ /* - * Copyright (C) 2009 Oracle Corporation + * Copyright (C) 2009-2012 Oracle Corporation * * This file is part of VirtualBox Open Source Edition (OSE), as * available from http://www.virtualbox.org. This file is free software; @@ -23,6 +23,7 @@ #ifdef VBOX_WITH_GUEST_PROPS int VBoxServiceReadProp(uint32_t u32ClientId, const char *pszPropName, char **ppszValue, char **ppszFlags, uint64_t *puTimestamp); int VBoxServiceReadPropUInt32(uint32_t u32ClientId, const char *pszPropName, uint32_t *pu32, uint32_t u32Min, uint32_t u32Max); +int VBoxServiceReadHostProp(uint32_t u32ClientId, const char *pszPropName, bool fReadOnly, char **ppszValue, char **ppszFlags, uint64_t *puTimestamp); int VBoxServiceWritePropF(uint32_t u32ClientId, const char *pszName, const char *pszValueFormat, ...); #endif diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Additions/common/VBoxService/VBoxServiceVMInfo.cpp virtualbox-4.1.44-dfsg/src/VBox/Additions/common/VBoxService/VBoxServiceVMInfo.cpp --- virtualbox-4.1.12-dfsg/src/VBox/Additions/common/VBoxService/VBoxServiceVMInfo.cpp 2012-04-02 13:25:18.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Additions/common/VBoxService/VBoxServiceVMInfo.cpp 2015-11-11 15:06:22.000000000 +0000 @@ -34,6 +34,7 @@ # include # include # include +# include /* getpwuid */ # include # ifndef RT_OS_OS2 # ifndef RT_OS_FREEBSD @@ -49,6 +50,9 @@ # include /* LLADDR */ # include /* getnameinfo */ # endif +# ifdef VBOX_WITH_DBUS +# include +# endif #endif #include @@ -65,6 +69,20 @@ #include "VBoxServicePropCache.h" +/** Structure containing information about a location awarness + * client provided by the host. */ +/** @todo Move this (and functions) into VbglR3. */ +typedef struct VBOXSERVICELACLIENTINFO +{ + uint32_t uID; + char *pszName; + char *pszLocation; + char *pszDomain; + bool fAttached; + uint64_t uAttachedTS; +} VBOXSERVICELACLIENTINFO, *PVBOXSERVICELACLIENTINFO; + + /******************************************************************************* * Global Variables * *******************************************************************************/ @@ -74,12 +92,38 @@ static RTSEMEVENTMULTI g_hVMInfoEvent = NIL_RTSEMEVENTMULTI; /** The guest property service client ID. */ static uint32_t g_uVMInfoGuestPropSvcClientID = 0; -/** Number of logged in users in OS. */ -static uint32_t g_cVMInfoLoggedInUsers = UINT32_MAX; +/** Number of currently logged in users in OS. */ +static uint32_t g_cVMInfoLoggedInUsers = 0; /** The guest property cache. */ static VBOXSERVICEVEPROPCACHE g_VMInfoPropCache; +static const char *g_pszPropCacheValLoggedInUsersList = "/VirtualBox/GuestInfo/OS/LoggedInUsersList"; +static const char *g_pszPropCacheValLoggedInUsers = "/VirtualBox/GuestInfo/OS/LoggedInUsers"; +static const char *g_pszPropCacheValNoLoggedInUsers = "/VirtualBox/GuestInfo/OS/NoLoggedInUsers"; +static const char *g_pszPropCacheValNetCount = "/VirtualBox/GuestInfo/Net/Count"; /** The VM session ID. Changes whenever the VM is restored or reset. */ static uint64_t g_idVMInfoSession; +/** The last attached locartion awareness (LA) client timestamp. */ +static uint64_t g_LAClientAttachedTS = 0; +/** The current LA client info. */ +static VBOXSERVICELACLIENTINFO g_LAClientInfo; + + +/******************************************************************************* +* Defines * +*******************************************************************************/ +static const char *g_pszLAActiveClient = "/VirtualBox/HostInfo/VRDP/ActiveClient"; + +#ifdef VBOX_WITH_DBUS +/** ConsoleKit defines (taken from 0.4.5). */ +#define CK_NAME "org.freedesktop.ConsoleKit" +#define CK_PATH "/org/freedesktop/ConsoleKit" +#define CK_INTERFACE "org.freedesktop.ConsoleKit" + +#define CK_MANAGER_PATH "/org/freedesktop/ConsoleKit/Manager" +#define CK_MANAGER_INTERFACE "org.freedesktop.ConsoleKit.Manager" +#define CK_SEAT_INTERFACE "org.freedesktop.ConsoleKit.Seat" +#define CK_SESSION_INTERFACE "org.freedesktop.ConsoleKit.Session" +#endif @@ -130,7 +174,10 @@ if (!g_cMsVMInfoInterval) g_cMsVMInfoInterval = g_DefaultInterval * 1000; if (!g_cMsVMInfoInterval) - g_cMsVMInfoInterval = 10 * 1000; + { + /* Set it to 5s by default for location awareness checks. */ + g_cMsVMInfoInterval = 5 * 1000; + } int rc = RTSemEventMultiCreate(&g_hVMInfoEvent); AssertRCReturn(rc, rc); @@ -138,20 +185,23 @@ VbglR3GetSessionId(&g_idVMInfoSession); /* The status code is ignored as this information is not available with VBox < 3.2.10. */ + /* Initialize the LA client object. */ + RT_ZERO(g_LAClientInfo); + rc = VbglR3GuestPropConnect(&g_uVMInfoGuestPropSvcClientID); if (RT_SUCCESS(rc)) - VBoxServiceVerbose(3, "VMInfo: Property Service Client ID: %#x\n", g_uVMInfoGuestPropSvcClientID); + VBoxServiceVerbose(3, "Property Service Client ID: %#x\n", g_uVMInfoGuestPropSvcClientID); else { /* If the service was not found, we disable this service without causing VBoxService to fail. */ if (rc == VERR_HGCM_SERVICE_NOT_FOUND) /* Host service is not available. */ { - VBoxServiceVerbose(0, "VMInfo: Guest property service is not available, disabling the service\n"); + VBoxServiceVerbose(0, "Guest property service is not available, disabling the service\n"); rc = VERR_SERVICE_DISABLED; } else - VBoxServiceError("VMInfo: Failed to connect to the guest property service! Error: %Rrc\n", rc); + VBoxServiceError("Failed to connect to the guest property service! Error: %Rrc\n", rc); RTSemEventMultiDestroy(g_hVMInfoEvent); g_hVMInfoEvent = NIL_RTSEMEVENTMULTI; } @@ -163,20 +213,131 @@ /* * Declare some guest properties with flags and reset values. */ - VBoxServicePropCacheUpdateEntry(&g_VMInfoPropCache, "/VirtualBox/GuestInfo/OS/LoggedInUsersList", - VBOXSERVICEPROPCACHEFLAG_TEMPORARY | VBOXSERVICEPROPCACHEFLAG_TRANSIENT, NULL /* Delete on exit */); - VBoxServicePropCacheUpdateEntry(&g_VMInfoPropCache, "/VirtualBox/GuestInfo/OS/LoggedInUsers", - VBOXSERVICEPROPCACHEFLAG_TEMPORARY | VBOXSERVICEPROPCACHEFLAG_TRANSIENT, "0"); - VBoxServicePropCacheUpdateEntry(&g_VMInfoPropCache, "/VirtualBox/GuestInfo/OS/NoLoggedInUsers", - VBOXSERVICEPROPCACHEFLAG_TEMPORARY | VBOXSERVICEPROPCACHEFLAG_TRANSIENT, "true"); - VBoxServicePropCacheUpdateEntry(&g_VMInfoPropCache, "/VirtualBox/GuestInfo/Net/Count", - VBOXSERVICEPROPCACHEFLAG_TEMPORARY | VBOXSERVICEPROPCACHEFLAG_ALWAYS_UPDATE, NULL /* Delete on exit */); + int rc2 = VBoxServicePropCacheUpdateEntry(&g_VMInfoPropCache, g_pszPropCacheValLoggedInUsersList, + VBOXSERVICEPROPCACHEFLAG_TEMPORARY | VBOXSERVICEPROPCACHEFLAG_TRANSIENT, NULL /* Delete on exit */); + if (RT_FAILURE(rc2)) + VBoxServiceError("Failed to init property cache value \"%s\", rc=%Rrc\n", g_pszPropCacheValLoggedInUsersList, rc2); + + rc2 = VBoxServicePropCacheUpdateEntry(&g_VMInfoPropCache, g_pszPropCacheValLoggedInUsers, + VBOXSERVICEPROPCACHEFLAG_TEMPORARY | VBOXSERVICEPROPCACHEFLAG_TRANSIENT, "0"); + if (RT_FAILURE(rc2)) + VBoxServiceError("Failed to init property cache value \"%s\", rc=%Rrc\n", g_pszPropCacheValLoggedInUsers, rc2); + + rc2 = VBoxServicePropCacheUpdateEntry(&g_VMInfoPropCache, g_pszPropCacheValNoLoggedInUsers, + VBOXSERVICEPROPCACHEFLAG_TEMPORARY | VBOXSERVICEPROPCACHEFLAG_TRANSIENT, "true"); + if (RT_FAILURE(rc2)) + VBoxServiceError("Failed to init property cache value \"%s\", rc=%Rrc\n", g_pszPropCacheValNoLoggedInUsers, rc2); + + rc2 = VBoxServicePropCacheUpdateEntry(&g_VMInfoPropCache, g_pszPropCacheValNetCount, + VBOXSERVICEPROPCACHEFLAG_TEMPORARY | VBOXSERVICEPROPCACHEFLAG_ALWAYS_UPDATE, NULL /* Delete on exit */); + if (RT_FAILURE(rc2)) + VBoxServiceError("Failed to init property cache value \"%s\", rc=%Rrc\n", g_pszPropCacheValNetCount, rc2); } return rc; } /** + * Retrieves a specifiy client LA property. + * + * @return IPRT status code. + * @param uClientID LA client ID to retrieve property for. + * @param pszProperty Property (without path) to retrieve. + * @param ppszValue Where to store value of property. + * @param puTimestamp Timestamp of property to retrieve. Optional. + */ +static int vboxServiceGetLAClientValue(uint32_t uClientID, const char *pszProperty, + char **ppszValue, uint64_t *puTimestamp) +{ + AssertReturn(uClientID, VERR_INVALID_PARAMETER); + AssertPtrReturn(pszProperty, VERR_INVALID_POINTER); + + int rc; + + char pszClientPath[255]; + if (RTStrPrintf(pszClientPath, sizeof(pszClientPath), + "/VirtualBox/HostInfo/VRDP/Client/%RU32/%s", uClientID, pszProperty)) + { + rc = VBoxServiceReadHostProp(g_uVMInfoGuestPropSvcClientID, pszClientPath, true /* Read only */, + ppszValue, NULL /* Flags */, puTimestamp); + } + else + rc = VERR_NO_MEMORY; + + return rc; +} + + +/** + * Retrieves LA client information. On success the returned structure will have allocated + * objects which need to be free'd with vboxServiceFreeLAClientInfo. + * + * @return IPRT status code. + * @param uClientID Client ID to retrieve information for. + * @param pClient Pointer where to store the client information. + */ +static int vboxServiceGetLAClientInfo(uint32_t uClientID, PVBOXSERVICELACLIENTINFO pClient) +{ + AssertReturn(uClientID, VERR_INVALID_PARAMETER); + AssertPtrReturn(pClient, VERR_INVALID_POINTER); + + int rc = vboxServiceGetLAClientValue(uClientID, "Name", &pClient->pszName, + NULL /* Timestamp */); + if (RT_SUCCESS(rc)) + { + char *pszAttach; + rc = vboxServiceGetLAClientValue(uClientID, "Attach", &pszAttach, + &pClient->uAttachedTS); + if (RT_SUCCESS(rc)) + { + AssertPtr(pszAttach); + pClient->fAttached = !RTStrICmp(pszAttach, "1") ? true : false; + + RTStrFree(pszAttach); + } + } + if (RT_SUCCESS(rc)) + rc = vboxServiceGetLAClientValue(uClientID, "Location", &pClient->pszLocation, + NULL /* Timestamp */); + if (RT_SUCCESS(rc)) + rc = vboxServiceGetLAClientValue(uClientID, "Domain", &pClient->pszDomain, + NULL /* Timestamp */); + if (RT_SUCCESS(rc)) + pClient->uID = uClientID; + + return rc; +} + + +/** + * Frees all allocated LA client information of a structure. + * + * @param pClient Pointer to client information structure to free. + */ +static void vboxServiceFreeLAClientInfo(PVBOXSERVICELACLIENTINFO pClient) +{ + if (pClient) + { + if (pClient->pszName) + { + RTStrFree(pClient->pszName); + pClient->pszName = NULL; + } + if (pClient->pszLocation) + { + RTStrFree(pClient->pszLocation); + pClient->pszLocation = NULL; + } + if (pClient->pszDomain) + { + RTStrFree(pClient->pszDomain); + pClient->pszDomain = NULL; + } + } +} + + +/** * Writes the properties that won't change while the service is running. * * Errors are ignored. @@ -238,6 +399,23 @@ #endif } +#if defined(VBOX_WITH_DBUS) && defined(RT_OS_LINUX) /* Not yet for Solaris/FreeBSB. */ +/* + * Simple wrapper to work around compiler-specific va_list madness. + */ +static dbus_bool_t vboxService_dbus_message_get_args(DBusMessage *message, + DBusError *error, + int first_arg_type, + ...) +{ + va_list va; + va_start(va, first_arg_type); + dbus_bool_t ret = dbus_message_get_args_valist(message, error, + first_arg_type, va); + va_end(va); + return ret; +} +#endif /** * Provide information about active users. @@ -279,8 +457,8 @@ while ( (ut_user = getutxent()) && RT_SUCCESS(rc)) { - VBoxServiceVerbose(4, "Found logged in user \"%s\"\n", - ut_user->ut_user); + VBoxServiceVerbose(4, "Found entry \"%s\" (type: %d, PID: %RU32, session: %RU32)\n", + ut_user->ut_user, ut_user->ut_type, ut_user->ut_pid, ut_user->ut_session); if (cUsersInList > cListSize) { cListSize += 32; @@ -291,7 +469,7 @@ /* Make sure we don't add user names which are not * part of type USER_PROCESS. */ - if (ut_user->ut_type == USER_PROCESS) + if (ut_user->ut_type == USER_PROCESS) /* Regular user process. */ { bool fFound = false; for (uint32_t i = 0; i < cUsersInList && !fFound; i++) @@ -307,13 +485,214 @@ } } +#ifdef VBOX_WITH_DBUS +# if defined(RT_OS_LINUX) /* Not yet for Solaris/FreeBSB. */ + DBusError dbErr; + DBusConnection *pConnection = NULL; + int rc2 = RTDBusLoadLib(); + if (RT_SUCCESS(rc2)) + { + /* Handle desktop sessions using ConsoleKit. */ + VBoxServiceVerbose(4, "Checking ConsoleKit sessions ...\n"); + + dbus_error_init(&dbErr); + pConnection = dbus_bus_get(DBUS_BUS_SYSTEM, &dbErr); + } + + if ( pConnection + && !dbus_error_is_set(&dbErr)) + { + /* Get all available sessions. */ + DBusMessage *pMsgSessions = dbus_message_new_method_call("org.freedesktop.ConsoleKit", + "/org/freedesktop/ConsoleKit/Manager", + "org.freedesktop.ConsoleKit.Manager", + "GetSessions"); + if ( pMsgSessions + && (dbus_message_get_type(pMsgSessions) == DBUS_MESSAGE_TYPE_METHOD_CALL)) + { + DBusMessage *pReplySessions = dbus_connection_send_with_reply_and_block(pConnection, + pMsgSessions, 30 * 1000 /* 30s timeout */, + &dbErr); + if ( pReplySessions + && !dbus_error_is_set(&dbErr)) + { + char **ppszSessions; int cSessions; + if ( (dbus_message_get_type(pMsgSessions) == DBUS_MESSAGE_TYPE_METHOD_CALL) + && vboxService_dbus_message_get_args(pReplySessions, &dbErr, DBUS_TYPE_ARRAY, + DBUS_TYPE_OBJECT_PATH, &ppszSessions, &cSessions, + DBUS_TYPE_INVALID /* Termination */)) + { + VBoxServiceVerbose(4, "ConsoleKit: retrieved %RU16 session(s)\n", cSessions); + AssertPtr(*ppszSessions); + + char **ppszCurSession = ppszSessions; + for (ppszCurSession; *ppszCurSession; ppszCurSession++) + { + VBoxServiceVerbose(4, "ConsoleKit: processing session '%s' ...\n", *ppszCurSession); + + /* Only respect active sessions .*/ + bool fActive = false; + DBusMessage *pMsgSessionActive = dbus_message_new_method_call("org.freedesktop.ConsoleKit", + *ppszCurSession, + "org.freedesktop.ConsoleKit.Session", + "IsActive"); + if ( pMsgSessionActive + && dbus_message_get_type(pMsgSessionActive) == DBUS_MESSAGE_TYPE_METHOD_CALL) + { + DBusMessage *pReplySessionActive = dbus_connection_send_with_reply_and_block(pConnection, + pMsgSessionActive, 30 * 1000 /* 30s timeout */, + &dbErr); + if ( pReplySessionActive + && !dbus_error_is_set(&dbErr)) + { + DBusMessageIter itMsg; + if ( dbus_message_iter_init(pReplySessionActive, &itMsg) + && dbus_message_iter_get_arg_type(&itMsg) == DBUS_TYPE_BOOLEAN) + { + /* Get uid from message. */ + int val; + dbus_message_iter_get_basic(&itMsg, &val); + fActive = val >= 1; + } + + if (pReplySessionActive) + dbus_message_unref(pReplySessionActive); + } + + if (pMsgSessionActive) + dbus_message_unref(pMsgSessionActive); + } + + VBoxServiceVerbose(4, "ConsoleKit: session '%s' is %s\n", + *ppszCurSession, fActive ? "active" : "not active"); + + /* *ppszCurSession now contains the object path + * (e.g. "/org/freedesktop/ConsoleKit/Session1"). */ + DBusMessage *pMsgUnixUser = dbus_message_new_method_call("org.freedesktop.ConsoleKit", + *ppszCurSession, + "org.freedesktop.ConsoleKit.Session", + "GetUnixUser"); + if ( pMsgUnixUser + && dbus_message_get_type(pMsgUnixUser) == DBUS_MESSAGE_TYPE_METHOD_CALL) + { + DBusMessage *pReplyUnixUser = dbus_connection_send_with_reply_and_block(pConnection, + pMsgUnixUser, 30 * 1000 /* 30s timeout */, + &dbErr); + if ( pReplyUnixUser + && !dbus_error_is_set(&dbErr)) + { + DBusMessageIter itMsg; + if ( dbus_message_iter_init(pReplyUnixUser, &itMsg) + && dbus_message_iter_get_arg_type(&itMsg) == DBUS_TYPE_UINT32) + { + /* Get uid from message. */ + uint32_t uid; + dbus_message_iter_get_basic(&itMsg, &uid); + + /** @todo Add support for getting UID_MIN (/etc/login.defs on + * Debian). */ + int uid_min = 1000; + + /* Look up user name (realname) from uid. */ + setpwent(); + struct passwd *ppwEntry = getpwuid(uid); + if ( ppwEntry + && ppwEntry->pw_uid >= uid_min /* Only respect users, not daemons etc. */ + && ppwEntry->pw_name) + { + VBoxServiceVerbose(4, "ConsoleKit: session '%s' -> %s (uid: %RU32)\n", + *ppszCurSession, ppwEntry->pw_name, uid); + + bool fFound = false; + for (uint32_t i = 0; i < cUsersInList && !fFound; i++) + fFound = strcmp(papszUsers[i], ppwEntry->pw_name) == 0; + + if (!fFound) + { + VBoxServiceVerbose(4, "ConsoleKit: adding user \"%s\" to list\n", + ppwEntry->pw_name); + + rc = RTStrDupEx(&papszUsers[cUsersInList], (const char *)ppwEntry->pw_name); + if (RT_FAILURE(rc)) + break; + cUsersInList++; + } + } + else + VBoxServiceError("ConsoleKit: unable to lookup user name for uid=%RU32\n", uid); + } + else + AssertMsgFailed(("ConsoleKit: GetUnixUser returned a wrong argument type\n")); + } + + if (pReplyUnixUser) + dbus_message_unref(pReplyUnixUser); + } + else + VBoxServiceError("ConsoleKit: unable to retrieve user for session '%s' (msg type=%d): %s", + *ppszCurSession, dbus_message_get_type(pMsgUnixUser), + dbus_error_is_set(&dbErr) ? dbErr.message : "No error information available"); + + if (pMsgUnixUser) + dbus_message_unref(pMsgUnixUser); + } + + dbus_free_string_array(ppszSessions); + } + else + { + VBoxServiceError("ConsoleKit: unable to retrieve session parameters (msg type=%d): %s", + dbus_message_get_type(pMsgSessions), + dbus_error_is_set(&dbErr) ? dbErr.message : "No error information available"); + } + dbus_message_unref(pReplySessions); + } + + if (pMsgSessions) + { + dbus_message_unref(pMsgSessions); + pMsgSessions = NULL; + } + } + else + { + static int s_iBitchedAboutConsoleKit = 0; + if (s_iBitchedAboutConsoleKit++ < 3) + VBoxServiceError("Unable to invoke ConsoleKit (%d/3) -- maybe not installed / used? Error: %s\n", + s_iBitchedAboutConsoleKit, + dbus_error_is_set(&dbErr) ? dbErr.message : "No error information available"); + } + + if (pMsgSessions) + dbus_message_unref(pMsgSessions); + } + else + { + static int s_iBitchedAboutDBus = 0; + if (s_iBitchedAboutDBus++ < 3) + VBoxServiceError("Unable to connect to system D-Bus (%d/3): %s\n", s_iBitchedAboutDBus, + pConnection && dbus_error_is_set(&dbErr) ? dbErr.message : "D-Bus not installed"); + } + + if ( pConnection + && dbus_error_is_set(&dbErr)) + dbus_error_free(&dbErr); +# endif /* RT_OS_LINUX */ +#endif /* VBOX_WITH_DBUS */ + + /** @todo Fedora/others: Handle systemd-loginctl. */ + /* Calc the string length. */ size_t cchUserList = 0; - for (uint32_t i = 0; i < cUsersInList; i++) - cchUserList += (i != 0) + strlen(papszUsers[i]); + if (RT_SUCCESS(rc)) + { + for (uint32_t i = 0; i < cUsersInList; i++) + cchUserList += (i != 0) + strlen(papszUsers[i]); + } /* Build the user list. */ - rc = RTStrAllocEx(&pszUserList, cchUserList + 1); + if (RT_SUCCESS(rc)) + rc = RTStrAllocEx(&pszUserList, cchUserList + 1); if (RT_SUCCESS(rc)) { char *psz = pszUserList; @@ -347,30 +726,42 @@ { static int s_iVMInfoBitchedOOM = 0; if (s_iVMInfoBitchedOOM++ < 3) - VBoxServiceVerbose(0, "Warning: Not enough memory available to enumerate users! Keeping old value (%u)\n", + VBoxServiceVerbose(0, "Warning: Not enough memory available to enumerate users! Keeping old value (%RU32)\n", g_cVMInfoLoggedInUsers); cUsersInList = g_cVMInfoLoggedInUsers; } else cUsersInList = 0; } + else /* Preserve logged in users count. */ + g_cVMInfoLoggedInUsers = cUsersInList; - VBoxServiceVerbose(4, "cUsersInList: %u, pszUserList: %s, rc=%Rrc\n", + VBoxServiceVerbose(4, "VMInfo: cUsersInList: %u, pszUserList: %s, rc=%Rrc\n", cUsersInList, pszUserList ? pszUserList : "", rc); - if (pszUserList && cUsersInList > 0) - VBoxServicePropCacheUpdate(&g_VMInfoPropCache, "/VirtualBox/GuestInfo/OS/LoggedInUsersList", "%s", pszUserList); - else - VBoxServicePropCacheUpdate(&g_VMInfoPropCache, "/VirtualBox/GuestInfo/OS/LoggedInUsersList", NULL); - VBoxServicePropCacheUpdate(&g_VMInfoPropCache, "/VirtualBox/GuestInfo/OS/LoggedInUsers", "%u", cUsersInList); - if (g_cVMInfoLoggedInUsers != cUsersInList) + if (pszUserList) { - VBoxServicePropCacheUpdate(&g_VMInfoPropCache, "/VirtualBox/GuestInfo/OS/NoLoggedInUsers", - cUsersInList == 0 ? "true" : "false"); - g_cVMInfoLoggedInUsers = cUsersInList; + AssertMsg(cUsersInList, ("pszUserList contains users whereas cUsersInList is 0\n")); + rc = VBoxServicePropCacheUpdate(&g_VMInfoPropCache, g_pszPropCacheValLoggedInUsersList, "%s", pszUserList); } - if (RT_SUCCESS(rc) && pszUserList) + else + rc = VBoxServicePropCacheUpdate(&g_VMInfoPropCache, g_pszPropCacheValLoggedInUsersList, NULL); + if (RT_FAILURE(rc)) + VBoxServiceError("Error writing logged in users list, rc=%Rrc\n", rc); + + rc = VBoxServicePropCacheUpdate(&g_VMInfoPropCache, g_pszPropCacheValLoggedInUsers, "%RU32", cUsersInList); + if (RT_FAILURE(rc)) + VBoxServiceError("Error writing logged in users count, rc=%Rrc\n", rc); + + rc = VBoxServicePropCacheUpdate(&g_VMInfoPropCache, g_pszPropCacheValNoLoggedInUsers, + cUsersInList == 0 ? "true" : "false"); + if (RT_FAILURE(rc)) + VBoxServiceError("Error writing no logged in users beacon, rc=%Rrc\n", rc); + + if (pszUserList) RTStrFree(pszUserList); + + VBoxServiceVerbose(4, "Writing users returned with rc=%Rrc\n", rc); return rc; } @@ -472,18 +863,18 @@ Assert(pAddress); char szIp[32]; RTStrPrintf(szIp, sizeof(szIp), "%s", inet_ntoa(pAddress->sin_addr)); - RTStrPrintf(szPropPath, sizeof(szPropPath), "/VirtualBox/GuestInfo/Net/%u/V4/IP", cIfacesReport); + RTStrPrintf(szPropPath, sizeof(szPropPath), "/VirtualBox/GuestInfo/Net/%RU32/V4/IP", cIfacesReport); VBoxServicePropCacheUpdate(&g_VMInfoPropCache, szPropPath, "%s", szIp); pAddress = (sockaddr_in *) & (InterfaceList[i].iiBroadcastAddress); - RTStrPrintf(szPropPath, sizeof(szPropPath), "/VirtualBox/GuestInfo/Net/%u/V4/Broadcast", cIfacesReport); + RTStrPrintf(szPropPath, sizeof(szPropPath), "/VirtualBox/GuestInfo/Net/%RU32/V4/Broadcast", cIfacesReport); VBoxServicePropCacheUpdate(&g_VMInfoPropCache, szPropPath, "%s", inet_ntoa(pAddress->sin_addr)); pAddress = (sockaddr_in *)&(InterfaceList[i].iiNetmask); - RTStrPrintf(szPropPath, sizeof(szPropPath), "/VirtualBox/GuestInfo/Net/%u/V4/Netmask", cIfacesReport); + RTStrPrintf(szPropPath, sizeof(szPropPath), "/VirtualBox/GuestInfo/Net/%RU32/V4/Netmask", cIfacesReport); VBoxServicePropCacheUpdate(&g_VMInfoPropCache, szPropPath, "%s", inet_ntoa(pAddress->sin_addr)); - RTStrPrintf(szPropPath, sizeof(szPropPath), "/VirtualBox/GuestInfo/Net/%u/Status", cIfacesReport); + RTStrPrintf(szPropPath, sizeof(szPropPath), "/VirtualBox/GuestInfo/Net/%RU32/Status", cIfacesReport); VBoxServicePropCacheUpdate(&g_VMInfoPropCache, szPropPath, nFlags & IFF_UP ? "Up" : "Down"); # ifndef TARGET_NT4 @@ -492,7 +883,7 @@ if (!strcmp(pAdp->IpAddressList.IpAddress.String, szIp)) break; - RTStrPrintf(szPropPath, sizeof(szPropPath), "/VirtualBox/GuestInfo/Net/%u/MAC", cIfacesReport); + RTStrPrintf(szPropPath, sizeof(szPropPath), "/VirtualBox/GuestInfo/Net/%RU32/MAC", cIfacesReport); if (pAdp) { char szMac[32]; @@ -539,19 +930,19 @@ memset(szInetAddr, 0, NI_MAXHOST); getnameinfo(pIfCurr->ifa_addr, sizeof(struct sockaddr_in), szInetAddr, NI_MAXHOST, NULL, 0, NI_NUMERICHOST); - RTStrPrintf(szPropPath, sizeof(szPropPath), "/VirtualBox/GuestInfo/Net/%u/V4/IP", cIfacesReport); + RTStrPrintf(szPropPath, sizeof(szPropPath), "/VirtualBox/GuestInfo/Net/%RU32/V4/IP", cIfacesReport); VBoxServicePropCacheUpdate(&g_VMInfoPropCache, szPropPath, "%s", szInetAddr); memset(szInetAddr, 0, NI_MAXHOST); getnameinfo(pIfCurr->ifa_broadaddr, sizeof(struct sockaddr_in), szInetAddr, NI_MAXHOST, NULL, 0, NI_NUMERICHOST); - RTStrPrintf(szPropPath, sizeof(szPropPath), "/VirtualBox/GuestInfo/Net/%u/V4/Broadcast", cIfacesReport); + RTStrPrintf(szPropPath, sizeof(szPropPath), "/VirtualBox/GuestInfo/Net/%RU32/V4/Broadcast", cIfacesReport); VBoxServicePropCacheUpdate(&g_VMInfoPropCache, szPropPath, "%s", szInetAddr); memset(szInetAddr, 0, NI_MAXHOST); getnameinfo(pIfCurr->ifa_netmask, sizeof(struct sockaddr_in), szInetAddr, NI_MAXHOST, NULL, 0, NI_NUMERICHOST); - RTStrPrintf(szPropPath, sizeof(szPropPath), "/VirtualBox/GuestInfo/Net/%u/V4/Netmask", cIfacesReport); + RTStrPrintf(szPropPath, sizeof(szPropPath), "/VirtualBox/GuestInfo/Net/%RU32/V4/Netmask", cIfacesReport); VBoxServicePropCacheUpdate(&g_VMInfoPropCache, szPropPath, "%s", szInetAddr); /* Search for the AF_LINK interface of the current AF_INET one and get the mac. */ @@ -568,13 +959,13 @@ pu8Mac = (uint8_t *)LLADDR(pLinkAddress); RTStrPrintf(szMac, sizeof(szMac), "%02X%02X%02X%02X%02X%02X", pu8Mac[0], pu8Mac[1], pu8Mac[2], pu8Mac[3], pu8Mac[4], pu8Mac[5]); - RTStrPrintf(szPropPath, sizeof(szPropPath), "/VirtualBox/GuestInfo/Net/%u/MAC", cIfacesReport); + RTStrPrintf(szPropPath, sizeof(szPropPath), "/VirtualBox/GuestInfo/Net/%RU32/MAC", cIfacesReport); VBoxServicePropCacheUpdate(&g_VMInfoPropCache, szPropPath, "%s", szMac); break; } } - RTStrPrintf(szPropPath, sizeof(szPropPath), "/VirtualBox/GuestInfo/Net/%u/Status", cIfacesReport); + RTStrPrintf(szPropPath, sizeof(szPropPath), "/VirtualBox/GuestInfo/Net/%RU32/Status", cIfacesReport); VBoxServicePropCacheUpdate(&g_VMInfoPropCache, szPropPath, pIfCurr->ifa_flags & IFF_UP ? "Up" : "Down"); cIfacesReport++; @@ -623,7 +1014,7 @@ bool fIfUp = !!(ifrequest[i].ifr_flags & IFF_UP); pAddress = ((sockaddr_in *)&ifrequest[i].ifr_addr); Assert(pAddress); - RTStrPrintf(szPropPath, sizeof(szPropPath), "/VirtualBox/GuestInfo/Net/%u/V4/IP", cIfacesReport); + RTStrPrintf(szPropPath, sizeof(szPropPath), "/VirtualBox/GuestInfo/Net/%RU32/V4/IP", cIfacesReport); VBoxServicePropCacheUpdate(&g_VMInfoPropCache, szPropPath, "%s", inet_ntoa(pAddress->sin_addr)); if (ioctl(sd, SIOCGIFBRDADDR, &ifrequest[i]) < 0) @@ -633,7 +1024,7 @@ break; } pAddress = (sockaddr_in *)&ifrequest[i].ifr_broadaddr; - RTStrPrintf(szPropPath, sizeof(szPropPath), "/VirtualBox/GuestInfo/Net/%u/V4/Broadcast", cIfacesReport); + RTStrPrintf(szPropPath, sizeof(szPropPath), "/VirtualBox/GuestInfo/Net/%RU32/V4/Broadcast", cIfacesReport); VBoxServicePropCacheUpdate(&g_VMInfoPropCache, szPropPath, "%s", inet_ntoa(pAddress->sin_addr)); if (ioctl(sd, SIOCGIFNETMASK, &ifrequest[i]) < 0) @@ -648,7 +1039,7 @@ pAddress = (sockaddr_in *)&ifrequest[i].ifr_netmask; # endif - RTStrPrintf(szPropPath, sizeof(szPropPath), "/VirtualBox/GuestInfo/Net/%u/V4/Netmask", cIfacesReport); + RTStrPrintf(szPropPath, sizeof(szPropPath), "/VirtualBox/GuestInfo/Net/%RU32/V4/Netmask", cIfacesReport); VBoxServicePropCacheUpdate(&g_VMInfoPropCache, szPropPath, "%s", inet_ntoa(pAddress->sin_addr)); # if defined(RT_OS_SOLARIS) @@ -705,18 +1096,18 @@ # endif RTStrPrintf(szMac, sizeof(szMac), "%02X%02X%02X%02X%02X%02X", pu8Mac[0], pu8Mac[1], pu8Mac[2], pu8Mac[3], pu8Mac[4], pu8Mac[5]); - RTStrPrintf(szPropPath, sizeof(szPropPath), "/VirtualBox/GuestInfo/Net/%u/MAC", cIfacesReport); + RTStrPrintf(szPropPath, sizeof(szPropPath), "/VirtualBox/GuestInfo/Net/%RU32/MAC", cIfacesReport); VBoxServicePropCacheUpdate(&g_VMInfoPropCache, szPropPath, "%s", szMac); # endif /* !OS/2*/ - RTStrPrintf(szPropPath, sizeof(szPropPath), "/VirtualBox/GuestInfo/Net/%u/Status", cIfacesReport); + RTStrPrintf(szPropPath, sizeof(szPropPath), "/VirtualBox/GuestInfo/Net/%RU32/Status", cIfacesReport); VBoxServicePropCacheUpdate(&g_VMInfoPropCache, szPropPath, fIfUp ? "Up" : "Down"); cIfacesReport++; } /* For all interfaces */ close(sd); if (RT_FAILURE(rc)) - VBoxServiceError("VMInfo/Network: Network enumeration for interface %u failed with error %Rrc\n", cIfacesReport, rc); + VBoxServiceError("VMInfo/Network: Network enumeration for interface %RU32 failed with error %Rrc\n", cIfacesReport, rc); #endif /* !RT_OS_WINDOWS */ @@ -728,19 +1119,19 @@ /* Get former count. */ uint32_t cIfacesReportOld; - rc = VBoxServiceReadPropUInt32(g_uVMInfoGuestPropSvcClientID, "/VirtualBox/GuestInfo/Net/Count", &cIfacesReportOld, + rc = VBoxServiceReadPropUInt32(g_uVMInfoGuestPropSvcClientID, g_pszPropCacheValNetCount, &cIfacesReportOld, 0 /* Min */, UINT32_MAX /* Max */); if ( RT_SUCCESS(rc) && cIfacesReportOld > cIfacesReport) /* Are some ifaces not around anymore? */ { - VBoxServiceVerbose(3, "VMInfo/Network: Stale interface data detected (%u old vs. %u current)\n", + VBoxServiceVerbose(3, "VMInfo/Network: Stale interface data detected (%RU32 old vs. %RU32 current)\n", cIfacesReportOld, cIfacesReport); uint32_t uIfaceDeleteIdx = cIfacesReport; do { VBoxServiceVerbose(3, "VMInfo/Network: Deleting stale data of interface %d ...\n", uIfaceDeleteIdx); - rc = VBoxServicePropCacheUpdateByPath(&g_VMInfoPropCache, NULL /* Value, delete */, 0 /* Flags */, "/VirtualBox/GuestInfo/Net/%u", uIfaceDeleteIdx++); + rc = VBoxServicePropCacheUpdateByPath(&g_VMInfoPropCache, NULL /* Value, delete */, 0 /* Flags */, "/VirtualBox/GuestInfo/Net/%RU32", uIfaceDeleteIdx++); } while (RT_SUCCESS(rc)); } else if ( RT_FAILURE(rc) @@ -755,7 +1146,7 @@ * does not change. If this property is missing, the host assumes that all other GuestInfo * properties are no longer valid. */ - VBoxServicePropCacheUpdate(&g_VMInfoPropCache, "/VirtualBox/GuestInfo/Net/Count", "%d", + VBoxServicePropCacheUpdate(&g_VMInfoPropCache, g_pszPropCacheValNetCount, "%RU32", cIfacesReport); /* Don't fail here; just report everything we got. */ @@ -799,6 +1190,83 @@ if (RT_FAILURE(rc)) break; + /* Whether to wait for event semaphore or not. */ + bool fWait = true; + + /* Check for location awareness. This most likely only + * works with VBox (latest) 4.1 and up. */ + + /* Check for new connection. */ + char *pszLAClientID = NULL; + int rc2 = VBoxServiceReadHostProp(g_uVMInfoGuestPropSvcClientID, g_pszLAActiveClient, true /* Read only */, + &pszLAClientID, NULL /* Flags */, NULL /* Timestamp */); + if (RT_SUCCESS(rc2)) + { + AssertPtr(pszLAClientID); + if (RTStrICmp(pszLAClientID, "0")) /* Is a client connected? */ + { + uint32_t uLAClientID = RTStrToInt32(pszLAClientID); + uint64_t uLAClientAttachedTS; + + /* Peek at "Attach" value to figure out if hotdesking happened. */ + char *pszAttach = NULL; + rc2 = vboxServiceGetLAClientValue(uLAClientID, "Attach", &pszAttach, + &uLAClientAttachedTS); + + if ( RT_SUCCESS(rc2) + && ( !g_LAClientAttachedTS + || (g_LAClientAttachedTS != uLAClientAttachedTS))) + { + vboxServiceFreeLAClientInfo(&g_LAClientInfo); + + /* Note: There is a race between setting the guest properties by the host and getting them by + * the guest. */ + rc2 = vboxServiceGetLAClientInfo(uLAClientID, &g_LAClientInfo); + if (RT_SUCCESS(rc2)) + { + VBoxServiceVerbose(1, "VRDP: Hotdesk client %s with ID=%RU32, Name=%s, Domain=%s\n", + /* If g_LAClientAttachedTS is 0 this means there already was an active + * hotdesk session when VBoxService started. */ + !g_LAClientAttachedTS ? "already active" : g_LAClientInfo.fAttached ? "connected" : "disconnected", + uLAClientID, g_LAClientInfo.pszName, g_LAClientInfo.pszDomain); + + g_LAClientAttachedTS = g_LAClientInfo.uAttachedTS; + + /* Don't wait for event semaphore below anymore because we now know that the client + * changed. This means we need to iterate all VM information again immediately. */ + fWait = false; + } + else + { + static int s_iBitchedAboutLAClientInfo = 0; + if (s_iBitchedAboutLAClientInfo++ < 10) + VBoxServiceError("Error getting active location awareness client info, rc=%Rrc\n", rc2); + } + } + else if (RT_FAILURE(rc2)) + VBoxServiceError("Error getting attached value of location awareness client %RU32, rc=%Rrc\n", + uLAClientID, rc2); + if (pszAttach) + RTStrFree(pszAttach); + } + else + { + VBoxServiceVerbose(1, "VRDP: UTTSC disconnected from VRDP server\n"); + vboxServiceFreeLAClientInfo(&g_LAClientInfo); + } + + RTStrFree(pszLAClientID); + } + else + { + static int s_iBitchedAboutLAClient = 0; + if ( (rc2 != VERR_NOT_FOUND) /* No location awareness installed, skip. */ + && s_iBitchedAboutLAClient++ < 3) + VBoxServiceError("VRDP: Querying connected location awareness client failed with rc=%Rrc\n", rc2); + } + + VBoxServiceVerbose(3, "VRDP: Handling location awareness done\n"); + /* * Flush all properties if we were restored. */ @@ -806,7 +1274,7 @@ VbglR3GetSessionId(&idNewSession); if (idNewSession != g_idVMInfoSession) { - VBoxServiceVerbose(3, "VMInfo: The VM session ID changed, flushing all properties\n"); + VBoxServiceVerbose(3, "The VM session ID changed, flushing all properties\n"); vboxserviceVMInfoWriteFixedProperties(); VBoxServicePropCacheFlush(&g_VMInfoPropCache); g_idVMInfoSession = idNewSession; @@ -820,12 +1288,13 @@ */ if (*pfShutdown) break; - int rc2 = RTSemEventMultiWait(g_hVMInfoEvent, g_cMsVMInfoInterval); + if (fWait) + rc2 = RTSemEventMultiWait(g_hVMInfoEvent, g_cMsVMInfoInterval); if (*pfShutdown) break; if (rc2 != VERR_TIMEOUT && RT_FAILURE(rc2)) { - VBoxServiceError("VMInfo: RTSemEventMultiWait failed; rc2=%Rrc\n", rc2); + VBoxServiceError("RTSemEventMultiWait failed; rc2=%Rrc\n", rc2); rc = rc2; break; } @@ -834,7 +1303,7 @@ /* Reset event semaphore if it got triggered. */ rc2 = RTSemEventMultiReset(g_hVMInfoEvent); if (RT_FAILURE(rc2)) - rc2 = VBoxServiceError("VMInfo: RTSemEventMultiReset failed; rc2=%Rrc\n", rc2); + rc2 = VBoxServiceError("RTSemEventMultiReset failed; rc2=%Rrc\n", rc2); } } @@ -873,13 +1342,16 @@ const char *apszPat[1] = { "/VirtualBox/GuestInfo/Net/*" }; int rc = VbglR3GuestPropDelSet(g_uVMInfoGuestPropSvcClientID, &apszPat[0], RT_ELEMENTS(apszPat)); + /* Destroy LA client info. */ + vboxServiceFreeLAClientInfo(&g_LAClientInfo); + /* Destroy property cache. */ VBoxServicePropCacheDestroy(&g_VMInfoPropCache); /* Disconnect from guest properties service. */ rc = VbglR3GuestPropDisconnect(g_uVMInfoGuestPropSvcClientID); if (RT_FAILURE(rc)) - VBoxServiceError("VMInfo: Failed to disconnect from guest property service! Error: %Rrc\n", rc); + VBoxServiceError("Failed to disconnect from guest property service! Error: %Rrc\n", rc); g_uVMInfoGuestPropSvcClientID = 0; RTSemEventMultiDestroy(g_hVMInfoEvent); diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Additions/common/VBoxService/VBoxServiceVMInfo-win.cpp virtualbox-4.1.44-dfsg/src/VBox/Additions/common/VBoxService/VBoxServiceVMInfo-win.cpp --- virtualbox-4.1.12-dfsg/src/VBox/Additions/common/VBoxService/VBoxServiceVMInfo-win.cpp 2012-04-02 13:25:18.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Additions/common/VBoxService/VBoxServiceVMInfo-win.cpp 2015-11-11 15:06:22.000000000 +0000 @@ -40,6 +40,8 @@ #include "VBoxServiceInternal.h" #include "VBoxServiceUtils.h" +static uint32_t s_uGuestPropClientID = 0; +static uint32_t s_uIter = 0; /******************************************************************************* * Structures and Typedefs * @@ -52,11 +54,11 @@ WCHAR wszLogonDomain[_MAX_PATH]; /** Number of assigned user processes. */ ULONG ulNumProcs; - /** Last (highest) session number. This + /** Last (highest) session ID. This * is needed for distinguishing old session * process counts from new (current) session * ones. */ - ULONG ulSession; + ULONG ulLastSession; } VBOXSERVICEVMINFOUSER, *PVBOXSERVICEVMINFOUSER; /** Structure for the file information lookup. */ @@ -71,6 +73,8 @@ { /** The PID. */ DWORD id; + /** The SID. */ + PSID pSid; /** The LUID. */ LUID luid; /** Interactive process. */ @@ -84,7 +88,7 @@ uint32_t VBoxServiceVMInfoWinSessionHasProcesses(PLUID pSession, PVBOXSERVICEVMINFOPROC const paProcs, DWORD cProcs); bool VBoxServiceVMInfoWinIsLoggedIn(PVBOXSERVICEVMINFOUSER a_pUserInfo, PLUID a_pSession); int VBoxServiceVMInfoWinProcessesEnumerate(PVBOXSERVICEVMINFOPROC *ppProc, DWORD *pdwCount); -void VBoxServiceVMInfoWinProcessesFree(PVBOXSERVICEVMINFOPROC paProcs); +void VBoxServiceVMInfoWinProcessesFree(DWORD cProcs, PVBOXSERVICEVMINFOPROC paProcs); typedef BOOL WINAPI FNQUERYFULLPROCESSIMAGENAME(HANDLE, DWORD, LPTSTR, PDWORD); typedef FNQUERYFULLPROCESSIMAGENAME *PFNQUERYFULLPROCESSIMAGENAME; @@ -92,6 +96,28 @@ #ifndef TARGET_NT4 +static bool vboxServiceVMInfoSession0Separation(void) +{ + /** @todo Only do this once. Later. */ + OSVERSIONINFOEX OSInfoEx; + RT_ZERO(OSInfoEx); + OSInfoEx.dwOSVersionInfoSize = sizeof(OSVERSIONINFOEX); + if ( !GetVersionEx((LPOSVERSIONINFO) &OSInfoEx) + || OSInfoEx.dwPlatformId != VER_PLATFORM_WIN32_NT) + { + /* Platform other than NT (e.g. Win9x) not supported. */ + return false; + } + + if ( OSInfoEx.dwMajorVersion >= 6 + && OSInfoEx.dwMinorVersion >= 0) + { + return true; + } + + return false; +} + /** * Retrieves the module name of a given process. * @@ -142,20 +168,19 @@ { /* Loading the module and getting the symbol for each and every process is expensive * -- since this function (at the moment) only is used for debugging purposes it's okay. */ - RTLDRMOD hMod; - rc = RTLdrLoad("kernel32.dll", &hMod); - if (RT_SUCCESS(rc)) + PFNQUERYFULLPROCESSIMAGENAME pfnQueryFullProcessImageName; + pfnQueryFullProcessImageName = (PFNQUERYFULLPROCESSIMAGENAME) + RTLdrGetSystemSymbol("kernel32.dll", "QueryFullProcessImageNameA"); + /** @todo r=bird: WTF don't we query the UNICODE name? */ + if (pfnQueryFullProcessImageName) { - PFNQUERYFULLPROCESSIMAGENAME pfnQueryFullProcessImageName; - rc = RTLdrGetSymbol(hMod, "QueryFullProcessImageNameA", (void **)&pfnQueryFullProcessImageName); - if (RT_SUCCESS(rc)) - { - DWORD dwLen = cbName / sizeof(TCHAR); - if (!pfnQueryFullProcessImageName(h, 0 /*PROCESS_NAME_NATIVE*/, pszName, &dwLen)) - rc = VERR_ACCESS_DENIED; - } - - RTLdrClose(hMod); + /** @todo r=bird: Completely bogus use of TCHAR. + * !!ALL USE OF TCHAR IS HEREWITH BANNED IN ALL VBOX SOURCES!! + * We use WCHAR when talking to windows, everything else is WRONG. (We don't + * want Chinese MBCS being treated as UTF-8.) */ + DWORD dwLen = cbName / sizeof(TCHAR); + if (!pfnQueryFullProcessImageName(h, 0 /*PROCESS_NAME_NATIVE*/, pszName, &dwLen)) + rc = VERR_ACCESS_DENIED; } } else @@ -211,10 +236,13 @@ case TokenGroups: dwTokenInfoSize = 0; - /* Allocating will follow in a second step. */ + /* Allocation will follow in a second step. */ break; - /** @todo Implement more token classes here. */ + case TokenUser: + dwTokenInfoSize = 0; + /* Allocation will follow in a second step. */ + break; default: VBoxServiceError("Token class not implemented: %ld", tkClass); @@ -242,6 +270,14 @@ dwTokenInfoSize = dwRetLength; break; + case TokenUser: + pvTokenInfo = (PTOKEN_USER)HeapAlloc(GetProcessHeap(), + HEAP_ZERO_MEMORY, dwRetLength); + if (!pvTokenInfo) + dwErr = GetLastError(); + dwTokenInfoSize = dwRetLength; + break; + default: AssertMsgFailed(("Re-allocating of token information for token class not implemented\n")); break; @@ -264,6 +300,7 @@ case TokenStatistics: { PTOKEN_STATISTICS pStats = (PTOKEN_STATISTICS)pvTokenInfo; + AssertPtr(pStats); memcpy(&pProc->luid, &pStats->AuthenticationId, sizeof(LUID)); /** @todo Add more information of TOKEN_STATISTICS as needed. */ break; @@ -309,6 +346,34 @@ break; } + case TokenUser: + { + PTOKEN_USER pUser = (PTOKEN_USER)pvTokenInfo; + AssertPtr(pUser); + + DWORD dwLength = GetLengthSid(pUser->User.Sid); + Assert(dwLength); + if (dwLength) + { + pProc->pSid = (PSID)RTMemAlloc(dwLength); + AssertPtr(pProc->pSid); + if (CopySid(dwLength, pProc->pSid, pUser->User.Sid)) + { + if (!IsValidSid(pProc->pSid)) + dwErr = ERROR_INVALID_NAME; + } + else + dwErr = GetLastError(); + } + else + dwErr = ERROR_NO_DATA; + + if (dwErr != ERROR_SUCCESS) + VBoxServiceError("Error retrieving SID of process PID=%ld: %ld\n", + pProc->id, dwErr); + break; + } + default: AssertMsgFailed(("Unhandled token information class\n")); break; @@ -396,23 +461,22 @@ for (DWORD i = 0; i < cProcesses; i++) { paProcs[i].id = paPID[i]; - rc = VBoxServiceVMInfoWinProcessesGetTokenInfo(&paProcs[i], TokenGroups); - if (RT_FAILURE(rc)) - { - /* Because some processes cannot be opened/parsed on - Windows, we should not consider to be this an error here. */ - rc = VINF_SUCCESS; - } - else - { - rc = VBoxServiceVMInfoWinProcessesGetTokenInfo(&paProcs[i], TokenStatistics); - if (RT_FAILURE(rc)) - { - /* Because some processes cannot be opened/parsed on - Windows, we should not consider to be this an error here. */ - rc = VINF_SUCCESS; - } - } + paProcs[i].pSid = NULL; + + int rc2 = VBoxServiceVMInfoWinProcessesGetTokenInfo(&paProcs[i], TokenUser); + if (RT_FAILURE(rc2) && g_cVerbosity) + VBoxServiceError("Get token class \"user\" for process %ld failed, rc=%Rrc\n", + paProcs[i].id, rc2); + + rc2 = VBoxServiceVMInfoWinProcessesGetTokenInfo(&paProcs[i], TokenGroups); + if (RT_FAILURE(rc2) && g_cVerbosity) + VBoxServiceError("Get token class \"groups\" for process %ld failed, rc=%Rrc\n", + paProcs[i].id, rc2); + + rc2 = VBoxServiceVMInfoWinProcessesGetTokenInfo(&paProcs[i], TokenStatistics); + if (RT_FAILURE(rc2) && g_cVerbosity) + VBoxServiceError("Get token class \"statistics\" for process %ld failed, rc=%Rrc\n", + paProcs[i].id, rc2); } /* Save number of processes */ @@ -438,8 +502,13 @@ * * @param paProcs What */ -void VBoxServiceVMInfoWinProcessesFree(PVBOXSERVICEVMINFOPROC paProcs) +void VBoxServiceVMInfoWinProcessesFree(DWORD cProcs, PVBOXSERVICEVMINFOPROC paProcs) { + for (DWORD i = 0; i < cProcs; i++) + { + if (paProcs[i].pSid) + RTMemFree(paProcs[i].pSid); + } RTMemFree(paProcs); } @@ -447,14 +516,14 @@ * Determines whether the specified session has processes on the system. * * @returns Number of processes found for a specified session. - * @param pSession The session. + * @param pSession The current user's SID. * @param paProcs The process snapshot. * @param cProcs The number of processes in the snaphot. * @param puSession Looked up session number. Optional. */ uint32_t VBoxServiceVMInfoWinSessionHasProcesses(PLUID pSession, PVBOXSERVICEVMINFOPROC const paProcs, DWORD cProcs, - PULONG puSession) + PULONG puTerminalSession) { if (!pSession) { @@ -466,10 +535,18 @@ NTSTATUS rcNt = LsaGetLogonSessionData(pSession, &pSessionData); if (rcNt != STATUS_SUCCESS) { - VBoxServiceError("Could not get logon session data! rcNt=%#x", rcNt); + VBoxServiceError("Could not get logon session data! rcNt=%#x\n", rcNt); return 0; } + if (!IsValidSid(pSessionData->Sid)) + { + VBoxServiceError("User SID=%p is not valid\n", pSessionData->Sid); + return 0; + } + + int rc = VINF_SUCCESS; + /* * Even if a user seems to be logged in, it could be a stale/orphaned logon * session. So check if we have some processes bound to it by comparing the @@ -478,40 +555,35 @@ uint32_t cNumProcs = 0; for (DWORD i = 0; i < cProcs; i++) { - VBoxServiceVerbose(4, "PID=%ld: (Interactive: %RTbool) %ld:%ld <-> %ld:%ld\n", - paProcs[i].id, paProcs[i].fInteractive, - paProcs[i].luid.HighPart, paProcs[i].luid.LowPart, - pSessionData->LogonId.HighPart, pSessionData->LogonId.LowPart); if (g_cVerbosity) { TCHAR szModule[_1K]; - int rc2 = VBoxServiceVMInfoWinProcessesGetModuleName(&paProcs[i], szModule, sizeof(szModule)); - if (RT_SUCCESS(rc2)) + rc = VBoxServiceVMInfoWinProcessesGetModuleName(&paProcs[i], szModule, sizeof(szModule)); + if (RT_SUCCESS(rc)) VBoxServiceVerbose(4, "PID=%ld: %s\n", paProcs[i].id, szModule); } - if ( paProcs[i].fInteractive - && ( paProcs[i].luid.HighPart == pSessionData->LogonId.HighPart - && paProcs[i].luid.LowPart == pSessionData->LogonId.LowPart)) + PSID pProcSID = paProcs[i].pSid; + if ( RT_SUCCESS(rc) + && pProcSID + && IsValidSid(pProcSID)) { - cNumProcs++; - if (!g_cVerbosity) /* We want a bit more info on higher verbosity. */ - break; + if ( EqualSid(pSessionData->Sid, paProcs[i].pSid) + && paProcs[i].fInteractive) + { + cNumProcs++; + if (!g_cVerbosity) /* We want a bit more info on higher verbosity. */ + break; + } } } - if (g_cVerbosity) - VBoxServiceVerbose(3, "Session %u has %u processes total\n", - pSessionData->Session, cNumProcs); - else - VBoxServiceVerbose(3, "Session %u has at least one process\n", - pSessionData->Session); - - if (puSession) - *puSession = pSessionData->Session; + if (puTerminalSession) + *puTerminalSession = pSessionData->Session; LsaFreeReturnBuffer(pSessionData); + return cNumProcs; } @@ -586,12 +658,25 @@ return false; } - VBoxServiceVerbose(3, "Session data: Name=%ls, Session=%u, LogonID=%ld,%ld, LogonType=%ld\n", + VBoxServiceVerbose(3, "Session data: Name=%ls, SessionID=%RU32, LogonID=%ld,%ld, LogonType=%ld\n", pSessionData->UserName.Buffer, pSessionData->Session, pSessionData->LogonId.HighPart, pSessionData->LogonId.LowPart, pSessionData->LogonType); + if (vboxServiceVMInfoSession0Separation()) + { + /* Starting at Windows Vista user sessions begin with session 1, so + * ignore (stale) session 0 users. */ + if ( pSessionData->Session == 0 + /* Also check the logon time. */ + || pSessionData->LogonTime.QuadPart == 0) + { + LsaFreeReturnBuffer(pSessionData); + return false; + } + } + /* * Only handle users which can login interactively or logged in * remotely over native RDP. @@ -711,6 +796,9 @@ pUserInfo->wszUser, fFoundUser ? "is" : "is not"); } + if (fFoundUser) + pUserInfo->ulLastSession = pSessionData->Session; + LsaFreeReturnBuffer(pSessionData); return fFoundUser; } @@ -727,9 +815,15 @@ */ int VBoxServiceVMInfoWinWriteUsers(char **ppszUserList, uint32_t *pcUsersInList) { + AssertPtrReturn(ppszUserList, VERR_INVALID_POINTER); + AssertPtrReturn(pcUsersInList, VERR_INVALID_POINTER); + PLUID paSessions = NULL; ULONG cSessions = 0; + int rc2 = VbglR3GuestPropConnect(&s_uGuestPropClientID); + AssertRC(rc2); + /* This function can report stale or orphaned interactive logon sessions of already logged off users (especially in Windows 2000). */ NTSTATUS rcNt = LsaEnumerateLogonSessions(&cSessions, &paSessions); @@ -777,56 +871,73 @@ else { ULONG cUniqueUsers = 0; + + /** + * Note: The cSessions loop variable does *not* correlate with + * the Windows session ID! + */ for (ULONG i = 0; i < cSessions; i++) { - VBoxServiceVerbose(3, "Handling session %u\n", i); + VBoxServiceVerbose(3, "Handling session %RU32 (of %RU32)\n", i + 1, cSessions); - VBOXSERVICEVMINFOUSER UserInfo; - if (VBoxServiceVMInfoWinIsLoggedIn(&UserInfo, &paSessions[i])) + VBOXSERVICEVMINFOUSER userSession; + if (VBoxServiceVMInfoWinIsLoggedIn(&userSession, &paSessions[i])) { - VBoxServiceVerbose(4, "Handling user=%ls, domain=%ls, package=%ls\n", - UserInfo.wszUser, UserInfo.wszLogonDomain, UserInfo.wszAuthenticationPackage); + VBoxServiceVerbose(4, "Handling user=%ls, domain=%ls, package=%ls, session=%RU32\n", + userSession.wszUser, userSession.wszLogonDomain, userSession.wszAuthenticationPackage, + userSession.ulLastSession); /* Retrieve assigned processes of current session. */ - ULONG ulSession; - uint32_t cSessionProcs = VBoxServiceVMInfoWinSessionHasProcesses(&paSessions[i], paProcs, cProcs, &ulSession); + uint32_t cCurSessionProcs = VBoxServiceVMInfoWinSessionHasProcesses(&paSessions[i], paProcs, cProcs, + NULL /* Terminal session ID */); /* Don't return here when current session does not have assigned processes * anymore -- in that case we have to search through the unique users list below * and see if got a stale user/session entry. */ + if (g_cVerbosity > 3) + { + char szDebugSessionPath[255]; RTStrPrintf(szDebugSessionPath, sizeof(szDebugSessionPath), "/VirtualBox/GuestInfo/Debug/LSA/Session/%RU32", + userSession.ulLastSession); + VBoxServiceWritePropF(s_uGuestPropClientID, szDebugSessionPath, + "#%RU32: cSessionProcs=%RU32 (of %RU32 procs total)", s_uIter, cCurSessionProcs, cProcs); + } + bool fFoundUser = false; - for (ULONG i = 0; i < cUniqueUsers; i++) + for (ULONG a = 0; a < cUniqueUsers; a++) { - if ( !wcscmp(UserInfo.wszUser, pUserInfo[i].wszUser) - && !wcscmp(UserInfo.wszLogonDomain, pUserInfo[i].wszLogonDomain) - && !wcscmp(UserInfo.wszAuthenticationPackage, pUserInfo[i].wszAuthenticationPackage) - && cSessionProcs) + PVBOXSERVICEVMINFOUSER pCurUser = &pUserInfo[a]; + AssertPtr(pCurUser); + + if ( !wcscmp(userSession.wszUser, pCurUser->wszUser) + && !wcscmp(userSession.wszLogonDomain, pCurUser->wszLogonDomain) + && !wcscmp(userSession.wszAuthenticationPackage, pCurUser->wszAuthenticationPackage)) { /* * Only respect the highest session for the current user. */ - if (ulSession > pUserInfo[i].ulSession) + if (userSession.ulLastSession > pCurUser->ulLastSession) { - VBoxServiceVerbose(4, "Updating user=%ls to %u processes (last session: %u)\n", - UserInfo.wszUser, cSessionProcs, ulSession); + VBoxServiceVerbose(4, "Updating user=%ls to %u processes (last used session: %RU32)\n", + pCurUser->wszUser, cCurSessionProcs, userSession.ulLastSession); - pUserInfo[i].ulNumProcs = cSessionProcs; - pUserInfo[i].ulSession = ulSession; + if (!cCurSessionProcs) + VBoxServiceVerbose(3, "Stale session for user=%ls detected! Processes: %RU32 -> %RU32, Session: %RU32 -> %RU32\n", + pCurUser->wszUser, + pCurUser->ulNumProcs, cCurSessionProcs, + pCurUser->ulLastSession, userSession.ulLastSession); - if (!cSessionProcs) - VBoxServiceVerbose(3, "Stale session for user=%ls detected! Old processes: %u, new: %u\n", - pUserInfo[i].wszUser, pUserInfo[i].ulNumProcs, cSessionProcs); + pCurUser->ulNumProcs = cCurSessionProcs; + pCurUser->ulLastSession = userSession.ulLastSession; } /* There can be multiple session objects using the same session ID for the * current user -- so when we got the same session again just add the found * processes to it. */ - else if (pUserInfo[i].ulSession == ulSession) + else if (pCurUser->ulLastSession == userSession.ulLastSession) { - VBoxServiceVerbose(4, "Adding %u processes to user=%ls (session %u)\n", - cSessionProcs, UserInfo.wszUser, ulSession); + VBoxServiceVerbose(4, "Updating processes for user=%ls (old procs=%RU32, new procs=%RU32, session=%RU32)\n", + pCurUser->wszUser, pCurUser->ulNumProcs, cCurSessionProcs, pCurUser->ulLastSession); - pUserInfo[i].ulNumProcs += cSessionProcs; - pUserInfo[i].ulSession = ulSession; + pCurUser->ulNumProcs = cCurSessionProcs; } fFoundUser = true; @@ -836,28 +947,44 @@ if (!fFoundUser) { - VBoxServiceVerbose(4, "Adding new user=%ls (session %u) with %u processes\n", - UserInfo.wszUser, ulSession, cSessionProcs); + VBoxServiceVerbose(4, "Adding new user=%ls (session=%RU32) with %RU32 processes\n", + userSession.wszUser, userSession.ulLastSession, cCurSessionProcs); - memcpy(&pUserInfo[cUniqueUsers], &UserInfo, sizeof(VBOXSERVICEVMINFOUSER)); - pUserInfo[cUniqueUsers].ulNumProcs = cSessionProcs; - pUserInfo[cUniqueUsers].ulSession = ulSession; + memcpy(&pUserInfo[cUniqueUsers], &userSession, sizeof(VBOXSERVICEVMINFOUSER)); + pUserInfo[cUniqueUsers].ulNumProcs = cCurSessionProcs; cUniqueUsers++; Assert(cUniqueUsers <= cSessions); } } } + if (g_cVerbosity > 3) + VBoxServiceWritePropF(s_uGuestPropClientID, "/VirtualBox/GuestInfo/Debug/LSA", + "#%RU32: cSessions=%RU32, cProcs=%RU32, cUniqueUsers=%RU32", + s_uIter, cSessions, cProcs, cUniqueUsers); + VBoxServiceVerbose(3, "Found %u unique logged-in user(s)\n", cUniqueUsers); *pcUsersInList = 0; for (ULONG i = 0; i < cUniqueUsers; i++) { + if (g_cVerbosity > 3) + { + char szDebugUserPath[255]; RTStrPrintf(szDebugUserPath, sizeof(szDebugUserPath), "/VirtualBox/GuestInfo/Debug/LSA/User/%RU32", i); + VBoxServiceWritePropF(s_uGuestPropClientID, szDebugUserPath, + "#%RU32: szName=%ls, sessionID=%RU32, cProcs=%RU32", + s_uIter, pUserInfo[i].wszUser, pUserInfo[i].ulLastSession, pUserInfo[i].ulNumProcs); + } + + bool fAddUser = false; if (pUserInfo[i].ulNumProcs) + fAddUser = true; + + if (fAddUser) { - VBoxServiceVerbose(3, "User %ls has %ld processes (session %u)\n", - pUserInfo[i].wszUser, pUserInfo[i].ulNumProcs, pUserInfo[i].ulSession); + VBoxServiceVerbose(3, "User \"%ls\" has %RU32 interactive processes (session=%RU32)\n", + pUserInfo[i].wszUser, pUserInfo[i].ulNumProcs, pUserInfo[i].ulLastSession); if (*pcUsersInList > 0) { @@ -882,9 +1009,13 @@ RTMemFree(pUserInfo); } - VBoxServiceVMInfoWinProcessesFree(paProcs); + VBoxServiceVMInfoWinProcessesFree(cProcs, paProcs); } LsaFreeReturnBuffer(paSessions); + + s_uIter++; + VbglR3GuestPropDisconnect(s_uGuestPropClientID); + return rc; } diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Additions/common/VBoxService/VBoxService-win.cpp virtualbox-4.1.44-dfsg/src/VBox/Additions/common/VBoxService/VBoxService-win.cpp --- virtualbox-4.1.12-dfsg/src/VBox/Additions/common/VBoxService/VBoxService-win.cpp 2012-04-02 13:25:17.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Additions/common/VBoxService/VBoxService-win.cpp 2015-11-11 15:06:21.000000000 +0000 @@ -21,6 +21,7 @@ *******************************************************************************/ #include #include +#include /* For querying OS version. */ #include #include "VBoxServiceInternal.h" @@ -132,18 +133,40 @@ g_dwWinServiceLastStatus = dwStatus; SERVICE_STATUS ss; + RT_ZERO(ss); + ss.dwServiceType = SERVICE_WIN32_OWN_PROCESS; ss.dwCurrentState = dwStatus; - ss.dwControlsAccepted = SERVICE_ACCEPT_STOP | SERVICE_ACCEPT_SHUTDOWN; + /* Don't accept controls when in start pending state. */ + if (ss.dwCurrentState != SERVICE_START_PENDING) + { + ss.dwControlsAccepted = SERVICE_ACCEPT_STOP | SERVICE_ACCEPT_SHUTDOWN; #ifndef TARGET_NT4 - ss.dwControlsAccepted |= SERVICE_ACCEPT_SESSIONCHANGE; + /* Don't use SERVICE_ACCEPT_SESSIONCHANGE on Windows 2000. + * This makes SCM angry. */ + char szOSVersion[32]; + int rc = RTSystemQueryOSInfo(RTSYSOSINFO_RELEASE, + szOSVersion, sizeof(szOSVersion)); + if (RT_SUCCESS(rc)) + { + if (RTStrVersionCompare(szOSVersion, "5.1") >= 0) + ss.dwControlsAccepted |= SERVICE_ACCEPT_SESSIONCHANGE; + } + else + VBoxServiceError("Error determining OS version, rc=%Rrc\n", rc); #endif + } + ss.dwWin32ExitCode = NO_ERROR; ss.dwServiceSpecificExitCode = 0; /* Not used */ ss.dwCheckPoint = dwCheckPoint; ss.dwWaitHint = 3000; - return SetServiceStatus(g_hWinServiceStatus, &ss); + BOOL fStatusSet = SetServiceStatus(g_hWinServiceStatus, &ss); + if (!fStatusSet) + VBoxServiceError("Error reporting service status=%ld (controls=%x, checkpoint=%ld) to SCM: %ld\n", + dwStatus, ss.dwControlsAccepted, dwCheckPoint, GetLastError()); + return fStatusSet; } @@ -339,6 +362,8 @@ if (RT_SUCCESS(rc)) { + vboxServiceWinSetStatus(SERVICE_START_PENDING, 0); + rc = VBoxServiceStartServices(); if (RT_SUCCESS(rc)) { diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Additions/linux/drm/vboxvideo_drm.c virtualbox-4.1.44-dfsg/src/VBox/Additions/linux/drm/vboxvideo_drm.c --- virtualbox-4.1.12-dfsg/src/VBox/Additions/linux/drm/vboxvideo_drm.c 2012-04-02 13:25:21.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Additions/linux/drm/vboxvideo_drm.c 2015-11-11 15:06:24.000000000 +0000 @@ -50,7 +50,7 @@ */ #include -#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,33) +#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 33) # include #else # ifndef AUTOCONF_INCLUDED @@ -64,28 +64,52 @@ # if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 32) # ifdef RHEL_RELEASE_CODE -# if RHEL_RELEASE_CODE >= RHEL_RELEASE_VERSION(6,1) +# if RHEL_RELEASE_CODE >= RHEL_RELEASE_VERSION(6, 1) # define DRM_RHEL61 # endif +# if RHEL_RELEASE_CODE >= RHEL_RELEASE_VERSION(6, 3) +# define DRM_FOPS_AS_POINTER +# endif +# if RHEL_RELEASE_CODE >= RHEL_RELEASE_VERSION(6, 4) +# define DRM_NO_RECLAIM_BUFFERS +# endif # endif # endif #include "drm/drmP.h" #include "vboxvideo_drm.h" +# ifndef RHEL_RELEASE_CODE +# if LINUX_VERSION_CODE >= KERNEL_VERSION(3, 2, 39) && LINUX_VERSION_CODE < KERNEL_VERSION(3, 3, 0) +# if defined(DRM_MODE_OBJECT_PLANE) && defined(DRM_IOCTL_MODE_ADDFB2) +# define DRM_FOPS_AS_POINTER +# endif +# endif +# endif + +#ifdef CONFIG_SUSE_KERNEL +/* This is to cover the SLES 11 SP3 kernel back-ports. */ +# if LINUX_VERSION_CODE >= KERNEL_VERSION(3,0,61) +# if LINUX_VERSION_CODE < KERNEL_VERSION(3,1,0) +# define DRM_FOPS_AS_POINTER +# define DRM_NO_RECLAIM_BUFFERS +# endif +# endif +#endif + static struct pci_device_id pciidlist[] = { vboxvideo_PCI_IDS }; int vboxvideo_driver_load(struct drm_device * dev, unsigned long flags) { -# if LINUX_VERSION_CODE >= KERNEL_VERSION (2, 6, 28) +# if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 28) return drm_vblank_init(dev, 1); #else return 0; #endif } -#if LINUX_VERSION_CODE >= KERNEL_VERSION(3,3,0) +#if LINUX_VERSION_CODE >= KERNEL_VERSION(3, 3, 0) || defined(DRM_FOPS_AS_POINTER) /* since linux-3.3.0-rc1 drm_driver::fops is pointer */ static struct file_operations driver_fops = { @@ -95,7 +119,6 @@ .unlocked_ioctl = drm_ioctl, .mmap = drm_mmap, .poll = drm_poll, - .fasync = drm_fasync, }; #endif @@ -103,13 +126,15 @@ { /* .driver_features = DRIVER_USE_MTRR, */ .load = vboxvideo_driver_load, +#if LINUX_VERSION_CODE < KERNEL_VERSION(3, 6, 0) && !defined(DRM_NO_RECLAIM_BUFFERS) .reclaim_buffers = drm_core_reclaim_buffers, +#endif /* As of Linux 2.6.37, always the internal functions are used. */ -#if LINUX_VERSION_CODE < KERNEL_VERSION (2, 6, 37) && !defined(DRM_RHEL61) +#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 37) && !defined(DRM_RHEL61) .get_map_ofs = drm_core_get_map_ofs, .get_reg_ofs = drm_core_get_reg_ofs, #endif -# if LINUX_VERSION_CODE < KERNEL_VERSION(3,3,0) +# if LINUX_VERSION_CODE < KERNEL_VERSION(3, 3, 0) && !defined(DRM_FOPS_AS_POINTER) .fops = { .owner = THIS_MODULE, @@ -117,19 +142,18 @@ .release = drm_release, /* This was changed with Linux 2.6.33 but Fedora backported this * change to their 2.6.32 kernel. */ -#if defined(DRM_UNLOCKED) || LINUX_VERSION_CODE >= KERNEL_VERSION (2, 6, 33) +#if defined(DRM_UNLOCKED) || LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 33) .unlocked_ioctl = drm_ioctl, #else .ioctl = drm_ioctl, #endif .mmap = drm_mmap, .poll = drm_poll, - .fasync = drm_fasync, }, -#else /* LINUX_VERSION_CODE >= KERNEL_VERSION(3,3,0) */ +#else /* LINUX_VERSION_CODE >= KERNEL_VERSION(3, 3, 0) || defined(DRM_FOPS_AS_POINTER) */ .fops = &driver_fops, #endif -#if LINUX_VERSION_CODE < KERNEL_VERSION (2, 6, 39) && !defined(DRM_RHEL61) +#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 39) && !defined(DRM_RHEL61) .pci_driver = { .name = DRIVER_NAME, @@ -144,7 +168,7 @@ .patchlevel = DRIVER_PATCHLEVEL, }; -#if LINUX_VERSION_CODE >= KERNEL_VERSION (2, 6, 39) || defined(DRM_RHEL61) +#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 39) || defined(DRM_RHEL61) static struct pci_driver pci_driver = { .name = DRIVER_NAME, @@ -154,7 +178,7 @@ static int __init vboxvideo_init(void) { -#if LINUX_VERSION_CODE < KERNEL_VERSION (2, 6, 39) && !defined(DRM_RHEL61) +#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 39) && !defined(DRM_RHEL61) return drm_init(&driver); #else return drm_pci_init(&driver, &pci_driver); @@ -163,7 +187,7 @@ static void __exit vboxvideo_exit(void) { -#if LINUX_VERSION_CODE < KERNEL_VERSION (2, 6, 39) && !defined(DRM_RHEL61) +#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 39) && !defined(DRM_RHEL61) drm_exit(&driver); #else drm_pci_exit(&driver, &pci_driver); diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Additions/linux/installer/vboxadd-service.sh virtualbox-4.1.44-dfsg/src/VBox/Additions/linux/installer/vboxadd-service.sh --- virtualbox-4.1.12-dfsg/src/VBox/Additions/linux/installer/vboxadd-service.sh 2012-04-02 13:25:21.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Additions/linux/installer/vboxadd-service.sh 2015-11-11 15:06:24.000000000 +0000 @@ -117,7 +117,11 @@ fi if [ "$system" = "gentoo" ]; then - . /sbin/functions.sh + if [ -f /sbin/functions.sh ]; then + . /sbin/functions.sh + elif [ -f /etc/init.d/functions.sh ]; then + . /etc/init.d/functions.sh + fi daemon() { start-stop-daemon --start --exec $1 -- $2 } diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Additions/linux/installer/vboxadd.sh virtualbox-4.1.44-dfsg/src/VBox/Additions/linux/installer/vboxadd.sh --- virtualbox-4.1.12-dfsg/src/VBox/Additions/linux/installer/vboxadd.sh 2012-04-02 13:25:21.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Additions/linux/installer/vboxadd.sh 2015-11-11 15:06:24.000000000 +0000 @@ -1,6 +1,6 @@ #! /bin/sh # -# Linux Additions kernel module init script ($Revision: 75651 $) +# Linux Additions kernel module init script ($Revision: 88311 $) # # @@ -285,7 +285,7 @@ start() { begin "Starting the VirtualBox Guest Additions "; - uname -r | grep -q '^2\.6' 2>/dev/null && + uname -r | grep -q -E '^2\.6|^3' 2>/dev/null && ps -A -o comm | grep -q '/*udevd$' 2>/dev/null || no_udev=1 running_vboxguest || { diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Additions/linux/installer/vboxadd-x11.sh virtualbox-4.1.44-dfsg/src/VBox/Additions/linux/installer/vboxadd-x11.sh --- virtualbox-4.1.12-dfsg/src/VBox/Additions/linux/installer/vboxadd-x11.sh 2012-04-02 13:25:21.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Additions/linux/installer/vboxadd-x11.sh 2015-11-11 15:06:24.000000000 +0000 @@ -1,6 +1,6 @@ #! /bin/sh # -# Linux Additions X11 setup init script ($Revision: 77057 $) +# Linux Additions X11 setup init script ($Revision: 85162 $) # # @@ -54,6 +54,7 @@ # The last of the three is for the X.org 6.7 included in Fedora Core 2 xver=`X -version 2>&1` x_version=`echo "$xver" | sed -n 's/^X Window System Version \([0-9.]\+\)/\1/p'``echo "$xver" | sed -n 's/^XFree86 Version \([0-9.]\+\)/\1/p'``echo "$xver" | sed -n 's/^X Protocol Version 11, Revision 0, Release \([0-9.]\+\)/\1/p'``echo "$xver" | sed -n 's/^X.Org X Server \([0-9.]\+\)/\1/p'` +x_version_short=`echo "${x_version}" | sed 's/\([0-9]*\.[0-9]*\)\..*/\1/'` # Version of Redhat or Fedora installed. Needed for setting up selinux policy. redhat_release=`cat /etc/redhat-release 2> /dev/null` # All the different possible locations for XFree86/X.Org configuration files @@ -326,28 +327,21 @@ echo "installing the X.Org drivers." dox11config="" ;; - 1.12.* ) - xserver_version="X.Org Server 1.12" - vboxvideo_src=vboxvideo_drv_112.so - test "$system" = "redhat" || setupxorgconf="" - ;; 1.11.* ) xserver_version="X.Org Server 1.11" vboxvideo_src=vboxvideo_drv_111.so - # Does Fedora still ship without vboxvideo detection? - # test "$system" = "redhat" || setupxorgconf="" + test "$system" = "redhat" || setupxorgconf="" ;; 1.10.* ) xserver_version="X.Org Server 1.10" vboxvideo_src=vboxvideo_drv_110.so - # Does Fedora still ship without vboxvideo detection? - # test "$system" = "redhat" || setupxorgconf="" + test "$system" = "redhat" || setupxorgconf="" ;; 1.9.* ) xserver_version="X.Org Server 1.9" vboxvideo_src=vboxvideo_drv_19.so - # Fedora 14 looks likely to ship without vboxvideo detection - # test "$system" = "redhat" || setupxorgconf="" + # Fedora 14 to 16 patched out vboxvideo detection + test "$system" = "redhat" || setupxorgconf="" ;; 1.8.* ) xserver_version="X.Org Server 1.8" @@ -418,12 +412,21 @@ newmouse="" ;; * ) - echo "Warning: unknown version of the X Window System installed. Not installing" - echo "X Window System drivers." - dox11config="" + # Anything else, including all X server versions as of 1.12. + xserver_version="X.Org Server ${x_version_short}" + vboxvideo_src=vboxvideo_drv_`echo ${x_version_short} | sed 's/\.//'`.so + setupxorgconf="" + test -f "${lib_dir}/${vboxvideo_src}" || + { + echo "Warning: unknown version of the X Window System installed. Not installing" + echo "X Window System drivers." + dox11config="" + vboxvideo_src="" + } ;; esac - begin "Installing $xserver_version modules" + test -n "${dox11config}" && + begin "Installing $xserver_version modules" rm "$modules_dir/drivers/vboxvideo_drv$driver_ext" 2>/dev/null rm "$modules_dir/input/vboxmouse_drv$driver_ext" 2>/dev/null case "$vboxvideo_src" in ?*) diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Additions/linux/Makefile virtualbox-4.1.44-dfsg/src/VBox/Additions/linux/Makefile --- virtualbox-4.1.12-dfsg/src/VBox/Additions/linux/Makefile 2012-04-02 13:25:21.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Additions/linux/Makefile 2015-11-11 15:06:24.000000000 +0000 @@ -45,6 +45,7 @@ else \ cp vboxsf/vboxsf.o .; \ fi; \ + echo; \ fi @if [ -d vboxvideo ]; then \ if [ -f vboxguest/Module.symvers ]; then \ @@ -57,6 +58,7 @@ else \ cp vboxvideo/vboxvideo.o .; \ fi; \ + echo; \ fi install: diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Additions/linux/Makefile.kmk virtualbox-4.1.44-dfsg/src/VBox/Additions/linux/Makefile.kmk --- virtualbox-4.1.12-dfsg/src/VBox/Additions/linux/Makefile.kmk 2012-04-02 13:25:21.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Additions/linux/Makefile.kmk 2015-11-11 15:06:24.000000000 +0000 @@ -132,18 +132,7 @@ vboxmouse_drv_14.so \ vboxmouse_drv_15.so \ vboxmouse_drv_16.so \ - vboxvideo_drv_70.so \ - vboxvideo_drv_71.so \ - vboxvideo_drv_13.so \ - vboxvideo_drv_14.so \ - vboxvideo_drv_15.so \ - vboxvideo_drv_16.so \ - vboxvideo_drv_17.so \ - vboxvideo_drv_18.so \ - vboxvideo_drv_19.so \ - vboxvideo_drv_110.so \ - vboxvideo_drv_111.so \ - vboxvideo_drv_112.so \ + $(addsuffix .so,$(filter vboxvideo_drv_%,$(DLLS))) \ pam_vbox.so \ mount.vboxsf @@ -230,7 +219,7 @@ | $$(dir $$@) $(call MSG_INST_FILE,$<,$@) $(QUIET)$(INSTALL) -m 0755 $(if $(VBOX_DO_STRIP),-s,) $< $@ - $(QUIET)objcopy --add-gnu-debuglink=$@ $@ + $(QUIET)objcopy --add-gnu-debuglink=$(subst $(VBOX_LNX_ADD_INST_BIN_DIR),$(VBOX_LNX_ADD_DBG_BIN_DIR),$@) $@ # pattern rule for stripping and copying the VBOX_LNX_ADD_STRIP_SBIN files to the installation directory $(addprefix $(VBOX_LNX_ADD_INST_SBIN_DIR),$(VBOX_LNX_ADD_STRIP_SBIN)): \ @@ -239,7 +228,7 @@ | $$(dir $$@) $(call MSG_INST_FILE,$<,$@) $(QUIET)$(INSTALL) -m 0755 $(if $(VBOX_DO_STRIP),-s,) $< $@ - $(QUIET)objcopy --add-gnu-debuglink=$@ $@ + $(QUIET)objcopy --add-gnu-debuglink=$(subst $(VBOX_LNX_ADD_INST_SBIN_DIR),$(VBOX_LNX_ADD_DBG_SBIN_DIR),$@) $@ # pattern rule for stripping and copying the VBOX_LNX_ADD_STRIP_LIB files to the installation directory $(addprefix $(VBOX_LNX_ADD_INST_LIB_DIR),$(VBOX_LNX_ADD_STRIP_LIB)): \ @@ -248,7 +237,7 @@ | $$(dir $$@) $(call MSG_INST_FILE,$<,$@) $(QUIET)$(INSTALL) -m 0755 $(if $(VBOX_DO_STRIP),-s,) $< $@ - $(QUIET)objcopy --add-gnu-debuglink=$@ $@ + $(QUIET)objcopy --add-gnu-debuglink=$(subst $(VBOX_LNX_ADD_INST_LIB_DIR),$(VBOX_LNX_ADD_DBG_LIB_DIR),$@) $@ # pattern rule for stripping and copying the VBOX_LNX_ADD_STRIP_MOD files to the installation directory $(addprefix $(VBOX_LNX_ADD_INST_MOD_DIR),$(VBOX_LNX_ADD_STRIP_MOD)): \ @@ -257,7 +246,7 @@ | $$(dir $$@) $(call MSG_INST_FILE,$<,$@) $(QUIET)$(INSTALL) -m 0755 $(if $(VBOX_DO_STRIP),-s,) $< $@ - $(QUIET)objcopy --add-gnu-debuglink=$@ $@ + $(QUIET)objcopy --add-gnu-debuglink=$(subst $(VBOX_LNX_ADD_INST_MOD_DIR),$(VBOX_LNX_ADD_DBG_MOD_DIR),$@) $@ # pattern rule for stripping and copying the VBOX_LNX_ADD_STRIP_OBJ files to the installation directory $(addprefix $(VBOX_LNX_ADD_INST_MOD_DIR),$(VBOX_LNX_ADD_STRIP_OBJ)): \ diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Additions/linux/sharedfolders/dirops.c virtualbox-4.1.44-dfsg/src/VBox/Additions/linux/sharedfolders/dirops.c --- virtualbox-4.1.12-dfsg/src/VBox/Additions/linux/sharedfolders/dirops.c 2012-04-02 13:25:21.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Additions/linux/sharedfolders/dirops.c 2015-11-11 15:06:24.000000000 +0000 @@ -5,7 +5,7 @@ */ /* - * Copyright (C) 2006-2007 Oracle Corporation + * Copyright (C) 2006-2012 Oracle Corporation * * This file is part of VirtualBox Open Source Edition (OSE), as * available from http://www.virtualbox.org. This file is free software; @@ -233,7 +233,11 @@ * b. failure to compute fake inode number * c. filldir returns an error (see comment on that) */ -static int sf_dir_read (struct file *dir, void *opaque, filldir_t filldir) +#if LINUX_VERSION_CODE >= KERNEL_VERSION(3, 11, 0) +static int sf_dir_iterate(struct file *dir, struct dir_context *ctx) +#else +static int sf_dir_read(struct file *dir, void *opaque, filldir_t filldir) +#endif { TRACE(); for (;;) @@ -257,12 +261,19 @@ /* skip erroneous entry and proceed */ LogFunc(("sf_getdent error %d\n", err)); dir->f_pos += 1; +#if LINUX_VERSION_CODE >= KERNEL_VERSION(3, 11, 0) + ctx->pos += 1; +#endif continue; } /* d_name now contains a valid entry name */ +#if LINUX_VERSION_CODE >= KERNEL_VERSION(3, 11, 0) + sanity = ctx->pos + 0xbeef; +#else sanity = dir->f_pos + 0xbeef; +#endif fake_ino = sanity; if (sanity - fake_ino) { @@ -270,8 +281,14 @@ return -EINVAL; } - err = filldir(opaque, d_name, strlen(d_name), - dir->f_pos, fake_ino, DT_UNKNOWN); +#if LINUX_VERSION_CODE >= KERNEL_VERSION(3, 11, 0) + if (!dir_emit(ctx, d_name, strlen(d_name), fake_ino, DT_UNKNOWN)) + { + LogFunc(("dir_emit failed\n")); + return 0; + } +#else + err = filldir(opaque, d_name, strlen(d_name), dir->f_pos, fake_ino, DT_UNKNOWN); if (err) { LogFunc(("filldir returned error %d\n", err)); @@ -279,8 +296,12 @@ only when it runs out of space in opaque */ return 0; } +#endif dir->f_pos += 1; +#if LINUX_VERSION_CODE >= KERNEL_VERSION(3, 11, 0) + ctx->pos += 1; +#endif } BUG(); @@ -289,7 +310,11 @@ struct file_operations sf_dir_fops = { .open = sf_dir_open, +#if LINUX_VERSION_CODE >= KERNEL_VERSION(3, 11, 0) + .iterate = sf_dir_iterate, +#else .readdir = sf_dir_read, +#endif .release = sf_dir_release, .read = generic_read_dir #if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 37) @@ -310,7 +335,9 @@ * returned in case of success and "negative" pointer on error */ static struct dentry *sf_lookup(struct inode *parent, struct dentry *dentry -#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 0) +#if LINUX_VERSION_CODE >= KERNEL_VERSION(3, 6, 0) + , unsigned int flags +#elif LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 0) , struct nameidata *nd #endif ) @@ -357,6 +384,7 @@ goto fail1; } sf_new_i->handle = SHFL_HANDLE_NIL; + sf_new_i->force_reread = 0; ino = iunique(parent->i_sb, 1); #if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 4, 25) @@ -382,7 +410,11 @@ sf_i->force_restat = 0; dentry->d_time = jiffies; +#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 38) + d_set_d_op(dentry, &sf_dentry_ops); +#else dentry->d_op = &sf_dentry_ops; +#endif d_add(dentry, inode); return NULL; @@ -444,10 +476,8 @@ sf_init_inode(sf_g, inode, info); sf_new_i->path = path; SET_INODE_INFO(inode, sf_new_i); - - dentry->d_time = jiffies; - dentry->d_op = &sf_dentry_ops; sf_new_i->force_restat = 1; + sf_new_i->force_reread = 0; d_instantiate(dentry, inode); @@ -575,7 +605,9 @@ * @param mode file mode * @returns 0 on success, Linux error code otherwise */ -#if LINUX_VERSION_CODE >= KERNEL_VERSION(3, 3, 0) +#if LINUX_VERSION_CODE >= KERNEL_VERSION(3, 6, 0) +static int sf_create(struct inode *parent, struct dentry *dentry, umode_t mode, bool excl) +#elif LINUX_VERSION_CODE >= KERNEL_VERSION(3, 3, 0) static int sf_create(struct inode *parent, struct dentry *dentry, umode_t mode, struct nameidata *nd) #elif LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 0) static int sf_create(struct inode *parent, struct dentry *dentry, int mode, struct nameidata *nd) diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Additions/linux/sharedfolders/utils.c virtualbox-4.1.44-dfsg/src/VBox/Additions/linux/sharedfolders/utils.c --- virtualbox-4.1.12-dfsg/src/VBox/Additions/linux/sharedfolders/utils.c 2012-04-02 13:25:22.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Additions/linux/sharedfolders/utils.c 2015-11-11 15:06:24.000000000 +0000 @@ -6,7 +6,7 @@ */ /* - * Copyright (C) 2006-2010 Oracle Corporation + * Copyright (C) 2006-2012 Oracle Corporation * * This file is part of VirtualBox Open Source Edition (OSE), as * available from http://www.virtualbox.org. This file is free software; @@ -144,8 +144,14 @@ #endif } +#if LINUX_VERSION_CODE >= KERNEL_VERSION(3, 5, 0) + inode->i_uid = make_kuid(current_user_ns(), sf_g->uid); + inode->i_gid = make_kgid(current_user_ns(), sf_g->gid); +#else inode->i_uid = sf_g->uid; inode->i_gid = sf_g->gid; +#endif + inode->i_size = info->cbObject; #if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 19) && !defined(KERNEL_FC6) inode->i_blksize = 4096; @@ -251,13 +257,25 @@ [dentry] in the cache is still valid. the job is handled by [sf_inode_revalidate] */ static int -#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 0) -sf_dentry_revalidate(struct dentry *dentry, int flags) -#else +#if LINUX_VERSION_CODE >= KERNEL_VERSION(3, 6, 0) +sf_dentry_revalidate(struct dentry *dentry, unsigned flags) +#elif LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 0) sf_dentry_revalidate(struct dentry *dentry, struct nameidata *nd) +#else +sf_dentry_revalidate(struct dentry *dentry, int flags) #endif { TRACE(); + +#if LINUX_VERSION_CODE >= KERNEL_VERSION(3, 6, 0) + if (flags & LOOKUP_RCU) + return -ECHILD; +#elif LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 38) + /* see Documentation/filesystems/vfs.txt */ + if (nd && nd->flags & LOOKUP_RCU) + return -ECHILD; +#endif + if (sf_inode_revalidate(dentry)) return 0; @@ -569,11 +587,13 @@ while (in_bound_len) { int nb; - wchar_t uni; /** @todo this should be unicode_t in more recent kernel versions. */ - #if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 31) + unicode_t uni; + nb = utf8_to_utf32(in, in_bound_len, &uni); #else + linux_wchar_t uni; + nb = utf8_mbtowc(&uni, in, in_bound_len); #endif if (nb < 0) diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Additions/linux/sharedfolders/vfsmod.c virtualbox-4.1.44-dfsg/src/VBox/Additions/linux/sharedfolders/vfsmod.c --- virtualbox-4.1.12-dfsg/src/VBox/Additions/linux/sharedfolders/vfsmod.c 2012-04-02 13:25:22.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Additions/linux/sharedfolders/vfsmod.c 2015-11-11 15:06:24.000000000 +0000 @@ -106,18 +106,43 @@ str_name->u16Size = name_len + 1; memcpy(str_name->String.utf8, info->name, name_len + 1); - if (info->nls_name[0] && strcmp(info->nls_name, "utf8")) - { - sf_g->nls = load_nls(info->nls_name); - if (!sf_g->nls) +#define _IS_UTF8(_str) \ + (strcmp(_str, "utf8") == 0) +#define _IS_EMPTY(_str) \ + (strcmp(_str, "") == 0) + + /* Check if NLS charset is valid and not points to UTF8 table */ + if (info->nls_name[0]) + { + if (_IS_UTF8(info->nls_name)) + sf_g->nls = NULL; + else { - err = -EINVAL; - LogFunc(("failed to load nls %s\n", info->nls_name)); - goto fail1; + sf_g->nls = load_nls(info->nls_name); + if (!sf_g->nls) + { + err = -EINVAL; + LogFunc(("failed to load nls %s\n", info->nls_name)); + goto fail1; + } } } else + { +#ifdef CONFIG_NLS_DEFAULT + /* If no NLS charset specified, try to load the default + * one if it's not points to UTF8. */ + if (!_IS_UTF8(CONFIG_NLS_DEFAULT) && !_IS_EMPTY(CONFIG_NLS_DEFAULT)) + sf_g->nls = load_nls_default(); + else + sf_g->nls = NULL; +#else sf_g->nls = NULL; +#endif + +#undef _IS_UTF8 +#undef _IS_EMPTY + } rc = vboxCallMapFolder(&client_handle, str_name, &sf_g->map); kfree(str_name); @@ -240,6 +265,7 @@ sf_i->path->u16Size = 2; sf_i->path->String.utf8[0] = '/'; sf_i->path->String.utf8[1] = 0; + sf_i->force_reread = 0; err = sf_stat(__func__, sf_g, sf_i->path, &fsinfo, 0); if (err) @@ -373,7 +399,11 @@ TRACE(); truncate_inode_pages(&inode->i_data, 0); +# if LINUX_VERSION_CODE >= KERNEL_VERSION(3, 5, 0) + clear_inode(inode); +# else end_writeback(inode); +# endif sf_i = GET_INODE_INFO(inode); if (!sf_i) diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Additions/Makefile.kmk virtualbox-4.1.44-dfsg/src/VBox/Additions/Makefile.kmk --- virtualbox-4.1.12-dfsg/src/VBox/Additions/Makefile.kmk 2012-04-02 13:24:46.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Additions/Makefile.kmk 2015-11-11 15:06:05.000000000 +0000 @@ -155,7 +155,7 @@ # The packing target rule, but only if we're on the local build box. # (VBOX_WITHOUT_ADDITIONS_ISO is used by the additions build box, see the root makefile.) ifndef VBOX_WITHOUT_ADDITIONS_ISO - PACKING += $(PATH_STAGE_BIN)/additions/VBoxGuestAdditions.iso + PACKING += $(PATH_STAGE_BIN)/additions/VBoxGuestAdditions.zip endif endif # !VBOX_ONLY_TESTSUITE @@ -314,10 +314,14 @@ $(GUESTADDITIONS_FILESPEC.darwin.x86) \ $(GUESTADDITIONS_FILESPEC.darwin.amd64) +$(VBOX_PATH_ADDITIONS_ISO)/VBoxGuestAdditions.zip: $(VBOX_PATH_ADDITIONS_ISO)/VBoxGuestAdditions.iso + $(call MSG_L1,Zipping image $@) + $(QUIET)$(RM) -f $@ + $(QUIET)$(REDIRECT) -C $(VBOX_PATH_ADDITIONS_ISO) -- zip$(HOSTSUFF_EXE) -9 $@ $(notdir $^) # Alias for creating the iso. .PHONY: additions-iso -additions-iso: $(VBOX_PATH_ADDITIONS_ISO)/VBoxGuestAdditions.iso +additions-iso: $(VBOX_PATH_ADDITIONS_ISO)/VBoxGuestAdditions.zip endif diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Additions/solaris/Installer/postinstall.sh virtualbox-4.1.44-dfsg/src/VBox/Additions/solaris/Installer/postinstall.sh --- virtualbox-4.1.12-dfsg/src/VBox/Additions/solaris/Installer/postinstall.sh 2012-04-02 13:25:23.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Additions/solaris/Installer/postinstall.sh 2015-11-11 15:06:24.000000000 +0000 @@ -64,6 +64,8 @@ uncompress_file "$1" "vboxvideo_drv_18.so" uncompress_file "$1" "vboxvideo_drv_19.so" uncompress_file "$1" "vboxvideo_drv_110.so" + uncompress_file "$1" "vboxvideo_drv_111.so" + uncompress_file "$1" "vboxvideo_drv_112.so" uncompress_file "$1" "vboxvideo_drv_70.so" uncompress_file "$1" "vboxvideo_drv_71.so" @@ -76,6 +78,8 @@ uncompress_file "$1" "vboxmouse_drv_18.so" uncompress_file "$1" "vboxmouse_drv_19.so" uncompress_file "$1" "vboxmouse_drv_110.so" + uncompress_file "$1" "vboxmouse_drv_111.so" + uncompress_file "$1" "vboxmouse_drv_112.so" uncompress_file "$1" "vboxmouse_drv_70.so" uncompress_file "$1" "vboxmouse_drv_71.so" } @@ -114,7 +118,7 @@ if test "$currentzone" = "global"; then # vboxguest.sh would've been installed, we just need to call it. echo "Configuring VirtualBox guest kernel module..." - # stop all previous moduels (vboxguest, vboxfs) and start only starts vboxguest + # stop all previous moduels (vboxguest, vboxfs) and start only starts vboxguest $vboxadditions_path/vboxguest.sh stopall silentunload $vboxadditions_path/vboxguest.sh start @@ -157,7 +161,7 @@ case "$xorgversion" in 1.3.* ) - vboxmouse_src="vboxmouse_drv_71.so" + vboxmouse_src="vboxmouse_drv_13.so" vboxvideo_src="vboxvideo_drv_13.so" ;; 1.4.* ) @@ -188,6 +192,14 @@ vboxmouse_src="vboxmouse_drv_110.so" vboxvideo_src="vboxvideo_drv_110.so" ;; + 1.11.*) + vboxmouse_src="vboxmouse_drv_111.so" + vboxvideo_src="vboxvideo_drv_111.so" + ;; + 1.12.*) + vboxmouse_src="vboxmouse_drv_112.so" + vboxvideo_src="vboxvideo_drv_112.so" + ;; 7.1.* | *7.2.* ) vboxmouse_src="vboxmouse_drv_71.so" vboxvideo_src="vboxvideo_drv_71.so" @@ -298,14 +310,9 @@ /usr/sbin/removef $PKGINST $vboxadditions_path/$xorgconf_unfit 1>/dev/null rm -f $vboxadditions_path/$xorgconf_unfit fi - case "$xorgversion" in - 7.1.* | 7.2.* | 6.9.* | 7.0.* | 1.3.* ) - $vboxadditions_path/x11config.pl - ;; - 1.4.* | 1.5.* | 1.6.* | 1.7.* | 1.8.* | 1.9.* | 1.10.*) - $vboxadditions_path/x11config15sol.pl - ;; - esac + + # Adjust xorg.conf with mouse and video driver sections + $vboxadditions_path/x11config15sol.pl fi fi @@ -400,10 +407,37 @@ if test "$currentzone" = "global"; then /usr/sbin/devfsadm -i vboxguest - # Setup our VBoxService SMF service - echo "Configuring service..." - /usr/sbin/svcadm restart svc:/system/manifest-import:default - /usr/sbin/svcadm enable -s virtualbox/vboxservice + # Setup VBoxService & start the service automatically + echo "Configuring service (this might take a while)..." + cmax=32 + cslept=0 + success=0 + sync + + # Since S11 the way to import a manifest is via restarting manifest-import which is asynchronous and can + # take a while to complete, using disable/enable -s doesn't work either. So we restart it, and poll in + # 1 second intervals to see if our service has been successfully imported and timeout after 'cmax' seconds. + /usr/sbin/svcadm restart svc:system/manifest-import:default + is_import=`/usr/bin/svcs virtualbox/vboxservice >/dev/null 2>&1` + while test $? -ne 0; + do + sleep 1 + cslept=`expr $cslept + 1` + if test "$cslept" -eq "$cmax"; then + success=1 + break + fi + is_import=`/usr/bin/svcs virtualbox/vboxservice >/dev/null 2>&1` + done + if test "$success" -eq 0; then + echo "Enabling service..." + /usr/sbin/svcadm enable -s virtualbox/vboxservice + else + echo "## VBoxService import failed." + echo "## See /var/svc/log/system-manifest-import:default.log for details." + # Exit as partially failed installation + retval=2 + fi # Update boot archive BOOTADMBIN=/sbin/bootadm diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Additions/solaris/Makefile.kmk virtualbox-4.1.44-dfsg/src/VBox/Additions/solaris/Makefile.kmk --- virtualbox-4.1.12-dfsg/src/VBox/Additions/solaris/Makefile.kmk 2012-04-02 13:25:23.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Additions/solaris/Makefile.kmk 2015-11-11 15:06:24.000000000 +0000 @@ -185,6 +185,8 @@ vboxmouse_drv_18.so \ vboxmouse_drv_19.so \ vboxmouse_drv_110.so \ + vboxmouse_drv_111.so \ + vboxmouse_drv_112.so \ vboxmouse_drv_70.so \ vboxmouse_drv_71.so \ vboxvideo_drv_13.so \ @@ -195,12 +197,13 @@ vboxvideo_drv_18.so \ vboxvideo_drv_19.so \ vboxvideo_drv_110.so \ + vboxvideo_drv_111.so \ + vboxvideo_drv_112.so \ vboxvideo_drv_70.so \ vboxvideo_drv_71.so SOLARIS_ADD_COMMON_BINS = \ vboxguest.sh \ - x11config.pl \ x11config15sol.pl \ x11restore.pl \ VBox.sh \ @@ -274,7 +277,6 @@ $(VBOX_PATH_SOLARIS_ADDITION_INSTALLER)/vboxservice.xml \ $(VBOX_PATH_SOLARIS_ADDITION_INSTALLER)/VBox.sh \ $(VBOX_PATH_X11_ADDITION_INSTALLER)/98vboxadd-xclient \ - $(VBOX_PATH_X11_ADDITION_INSTALLER)/x11config.pl \ $(VBOX_PATH_X11_ADDITION_INSTALLER)/x11config15sol.pl \ $(VBOX_PATH_X11_ADDITION_INSTALLER)/x11restore.pl \ $(VBOX_PATH_X11_ADDITION_INSTALLER)/solaris_xorg.conf \ diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Additions/solaris/SharedFolders/Makefile.kmk virtualbox-4.1.44-dfsg/src/VBox/Additions/solaris/SharedFolders/Makefile.kmk --- virtualbox-4.1.12-dfsg/src/VBox/Additions/solaris/SharedFolders/Makefile.kmk 2012-04-02 13:25:23.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Additions/solaris/SharedFolders/Makefile.kmk 2015-11-11 15:06:24.000000000 +0000 @@ -47,7 +47,11 @@ vboxfs_LIBS = \ $(VBOX_LIB_VBGL_R0) vboxfs_LDFLAGS += -N drv/vboxguest -N misc/ctf - +if $(VBOX_SOLARIS_11_VERSION) >= 175 + && $(VBOX_SOLARIS_11_UPDATE_VERSION) >= 1 + && $(VBOX_SOLARIS_11_BUILD_VERSION) >= 10 + vboxfs_DEFS += VBOX_VFS_EXTENDED_POLICY +endif ifndef VBOX_OSE # diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Additions/solaris/SharedFolders/vboxfs_vnode.c virtualbox-4.1.44-dfsg/src/VBox/Additions/solaris/SharedFolders/vboxfs_vnode.c --- virtualbox-4.1.12-dfsg/src/VBox/Additions/solaris/SharedFolders/vboxfs_vnode.c 2012-04-02 13:25:24.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Additions/solaris/SharedFolders/vboxfs_vnode.c 2015-11-11 15:06:25.000000000 +0000 @@ -95,6 +95,14 @@ #include "vboxfs_vnode.h" #include "vboxfs_vfs.h" +/* + * Solaris 11u1b10 Extended Policy putback CR 7121445 removes secpolicy_vnode_access from sys/policy.h + */ +#ifdef VBOX_VFS_EXTENDED_POLICY +int secpolicy_vnode_access(const cred_t *, vnode_t *, uid_t, mode_t); +#endif + + #define VBOXVFS_WITH_MMAP static struct vnodeops *sffs_ops = NULL; diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Additions/x11/VBoxClient/main.cpp virtualbox-4.1.44-dfsg/src/VBox/Additions/x11/VBoxClient/main.cpp --- virtualbox-4.1.12-dfsg/src/VBox/Additions/x11/VBoxClient/main.cpp 2012-04-02 13:25:25.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Additions/x11/VBoxClient/main.cpp 2015-11-11 15:06:25.000000000 +0000 @@ -159,6 +159,8 @@ int main(int argc, char *argv[]) { int rcClipboard, rc; + if (!XInitThreads()) + return 1; const char *pszFileName = RTPathFilename(argv[0]); bool fDaemonise = true; /* Have any fatal errors occurred yet? */ diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Additions/x11/VBoxClient/seamless.cpp virtualbox-4.1.44-dfsg/src/VBox/Additions/x11/VBoxClient/seamless.cpp --- virtualbox-4.1.12-dfsg/src/VBox/Additions/x11/VBoxClient/seamless.cpp 2012-04-02 13:25:25.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Additions/x11/VBoxClient/seamless.cpp 2015-11-11 15:06:25.000000000 +0000 @@ -33,12 +33,6 @@ } virtual int run(bool fDaemonised /* = false */) { - /* Initialise threading in X11 and in Xt. */ - if (!XInitThreads()) - { - LogRel(("VBoxClient: error initialising threads in X11, exiting.\n")); - return VERR_NOT_SUPPORTED; - } mSeamless.init(); /* Stay running as long as X does... */ Display *pDisplay = XOpenDisplay(NULL); diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Additions/x11/vboxmouse/Makefile.kmk virtualbox-4.1.44-dfsg/src/VBox/Additions/x11/vboxmouse/Makefile.kmk --- virtualbox-4.1.12-dfsg/src/VBox/Additions/x11/vboxmouse/Makefile.kmk 2012-04-02 13:25:25.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Additions/x11/vboxmouse/Makefile.kmk 2015-11-11 15:06:25.000000000 +0000 @@ -18,6 +18,12 @@ SUB_DEPTH = ../../../../.. include $(KBUILD_PATH)/subheader.kmk +vboxmouse_xorg_INCS = \ + $(VBOX_PATH_X11_ROOT)/inputproto-1.9.99.902 \ + $(VBOX_PATH_X11_ROOT)/libpciaccess-0.10.8 \ + $(VBOX_PATH_X11_ROOT)/pixman-0.16.0 \ + $(VBOX_PATH_X11_ROOT)/xextproto-7.1.1 \ + $(VBOX_PATH_X11_ROOT)/xproto-7.0.18 # # vboxmouse_drv @@ -101,8 +107,7 @@ vboxmouse_drv_13_TEMPLATE = VBOXGUESTR3XORGMOD vboxmouse_drv_13_DEFS := $(vboxmouse_drv_70_DEFS) NO_ANSIC vboxmouse_drv_13_INCS := \ - $(VBOX_PATH_X11_XORG_1_3) \ - $(VBOX_PATH_X11_ROOT)/inputproto-1.4.4 \ + $(vboxmouse_xorg_INCS) \ $(VBOX_PATH_X11_ROOT)/xorg-server-1.3.0.0 \ $(PATH_SUB_CURRENT) vboxmouse_drv_13_SOURCES = \ @@ -116,8 +121,8 @@ vboxmouse_drv_14_TEMPLATE = VBOXGUESTR3XORGMOD vboxmouse_drv_14_DEFS := $(vboxmouse_drv_70_DEFS) NO_ANSIC vboxmouse_drv_14_INCS := \ - $(VBOX_PATH_X11_XORG_1_4) \ - $(VBOX_PATH_X11_XORG_1_4)/xorg \ + $(vboxmouse_xorg_INCS) \ + $(VBOX_PATH_X11_ROOT)/xorg-server-1.4.2 \ $(PATH_SUB_CURRENT) vboxmouse_drv_14_SOURCES = \ vboxmouse_15.c @@ -130,8 +135,7 @@ vboxmouse_drv_15_TEMPLATE = VBOXGUESTR3XORGMOD vboxmouse_drv_15_DEFS := $(vboxmouse_drv_70_DEFS) NO_ANSIC vboxmouse_drv_15_INCS := \ - $(VBOX_PATH_X11_XORG_1_5) \ - $(VBOX_PATH_X11_ROOT)/inputproto-1.4.4 \ + $(vboxmouse_xorg_INCS) \ $(VBOX_PATH_X11_ROOT)/xorg-server-1.5.3 \ $(PATH_SUB_CURRENT) vboxmouse_drv_15_SOURCES = \ @@ -145,10 +149,8 @@ vboxmouse_drv_16_TEMPLATE = VBOXGUESTR3XORGMOD vboxmouse_drv_16_DEFS := $(vboxmouse_drv_70_DEFS) NO_ANSIC vboxmouse_drv_16_INCS := \ - $(VBOX_PATH_X11_XORG_1_6) \ - $(VBOX_PATH_X11_ROOT)/inputproto-1.4.4 \ + $(vboxmouse_xorg_INCS) \ $(VBOX_PATH_X11_ROOT)/xorg-server-1.6.0 \ - $(VBOX_PATH_X11_ROOT)/xorg-server-1.6.0-local \ $(PATH_SUB_CURRENT) vboxmouse_drv_16_SOURCES = \ vboxmouse_15.c @@ -164,13 +166,8 @@ vboxmouse_drv_17_DEFS := $(vboxmouse_drv_70_DEFS) NO_ANSIC ## @todo replace $(VBOX_PATH_X11_ROOT)/xorg-server-1.6.0-local vboxmouse_drv_17_INCS := \ - $(VBOX_PATH_X11_ROOT)/inputproto-1.9.99.902 \ - $(VBOX_PATH_X11_ROOT)/libpciaccess-0.10.8 \ - $(VBOX_PATH_X11_ROOT)/pixman-0.16.0 \ - $(VBOX_PATH_X11_ROOT)/xextproto-7.1.1 \ - $(VBOX_PATH_X11_ROOT)/xorg-server-1.6.99-20090831 \ - $(VBOX_PATH_X11_ROOT)/xorg-server-1.6.0-local \ - $(VBOX_PATH_X11_ROOT)/xproto-7.0.18 \ + $(vboxmouse_xorg_INCS) \ + $(VBOX_PATH_X11_ROOT)/xorg-server-1.7.7 \ $(PATH_SUB_CURRENT) vboxmouse_drv_17_SOURCES = \ vboxmouse_15.c @@ -184,13 +181,8 @@ vboxmouse_drv_18_DEFS := $(vboxmouse_drv_70_DEFS) NO_ANSIC ## @todo replace $(VBOX_PATH_X11_ROOT)/xorg-server-1.6.0-local vboxmouse_drv_18_INCS := \ - $(VBOX_PATH_X11_ROOT)/inputproto-1.9.99.902 \ - $(VBOX_PATH_X11_ROOT)/libpciaccess-0.10.8 \ - $(VBOX_PATH_X11_ROOT)/pixman-0.16.0 \ - $(VBOX_PATH_X11_ROOT)/xextproto-7.1.1 \ + $(vboxmouse_xorg_INCS) \ $(VBOX_PATH_X11_ROOT)/xorg-server-1.8.0 \ - $(VBOX_PATH_X11_ROOT)/xorg-server-1.6.0-local \ - $(VBOX_PATH_X11_ROOT)/xproto-7.0.18 \ $(PATH_SUB_CURRENT) vboxmouse_drv_18_SOURCES = \ vboxmouse_15.c @@ -204,13 +196,8 @@ vboxmouse_drv_19_DEFS := $(vboxmouse_drv_70_DEFS) NO_ANSIC ## @todo replace $(VBOX_PATH_X11_ROOT)/xorg-server-1.6.0-local vboxmouse_drv_19_INCS := \ - $(VBOX_PATH_X11_ROOT)/inputproto-1.9.99.902 \ - $(VBOX_PATH_X11_ROOT)/libpciaccess-0.10.8 \ - $(VBOX_PATH_X11_ROOT)/pixman-0.16.0 \ - $(VBOX_PATH_X11_ROOT)/xextproto-7.1.1 \ + $(vboxmouse_xorg_INCS) \ $(VBOX_PATH_X11_ROOT)/xorg-server-1.9.0 \ - $(VBOX_PATH_X11_ROOT)/xorg-server-1.6.0-local \ - $(VBOX_PATH_X11_ROOT)/xproto-7.0.18 \ $(PATH_SUB_CURRENT) vboxmouse_drv_19_SOURCES = \ vboxmouse_15.c @@ -224,17 +211,34 @@ vboxmouse_drv_110_DEFS := $(vboxmouse_drv_70_DEFS) NO_ANSIC ## @todo replace $(VBOX_PATH_X11_ROOT)/xorg-server-1.6.0-local vboxmouse_drv_110_INCS := \ - $(VBOX_PATH_X11_ROOT)/inputproto-1.9.99.902 \ - $(VBOX_PATH_X11_ROOT)/libpciaccess-0.10.8 \ - $(VBOX_PATH_X11_ROOT)/pixman-0.16.0 \ - $(VBOX_PATH_X11_ROOT)/xextproto-7.1.1 \ + $(vboxmouse_xorg_INCS) \ $(VBOX_PATH_X11_ROOT)/xorg-server-1.10.0 \ - $(VBOX_PATH_X11_ROOT)/xorg-server-1.6.0-local \ - $(VBOX_PATH_X11_ROOT)/xproto-7.0.18 \ $(PATH_SUB_CURRENT) vboxmouse_drv_110_SOURCES = \ vboxmouse_15.c +DLLS += vboxmouse_drv_111 +vboxmouse_drv_111_TEMPLATE = VBOXGUESTR3XORGMOD +vboxmouse_drv_111_DEFS := $(vboxmouse_drv_70_DEFS) NO_ANSIC +## @todo replace $(VBOX_PATH_X11_ROOT)/xorg-server-1.6.0-local +vboxmouse_drv_111_INCS := \ + $(vboxmouse_xorg_INCS) \ + $(VBOX_PATH_X11_ROOT)/xorg-server-1.11.0 \ + $(PATH_SUB_CURRENT) +vboxmouse_drv_111_SOURCES = \ + vboxmouse_15.c + +DLLS += vboxmouse_drv_112 +vboxmouse_drv_112_TEMPLATE = VBOXGUESTR3XORGMOD +vboxmouse_drv_112_DEFS := $(vboxmouse_drv_70_DEFS) NO_ANSIC +## @todo replace $(VBOX_PATH_X11_ROOT)/xorg-server-1.6.0-local +vboxmouse_drv_112_INCS := \ + $(vboxmouse_xorg_INCS) \ + $(VBOX_PATH_X11_ROOT)/xorg-server-1.12.0 \ + $(PATH_SUB_CURRENT) +vboxmouse_drv_112_SOURCES = \ + vboxmouse_15.c + endif # neq ($(KBUILD_TARGET),linux) # Check the undefined symbols in the X.Org modules against lists of allowed @@ -338,6 +342,22 @@ $(vboxmouse_drv_110_1_STAGE_TARGET) $(VBOXMOUSE_SRC_PATH)/undefined_15 $(QUIET)$(APPEND) -t "$@" "done" + TESTING += $(vboxmouse_drv_111_0_OUTDIR)/tstvboxmouse111.run + OTHERS += $(vboxmouse_drv_111_0_OUTDIR)/tstvboxmouse111.run +$$(vboxmouse_drv_111_0_OUTDIR)/tstvboxmouse111.run: $$(vboxmouse_drv_111_1_STAGE_TARGET) + $(QUIET)$(call MSG_L1,Checking for unresolved symbols in $<) + $(QUIET)/bin/sh $(PATH_ROOT)/src/bldprogs/checkUndefined.sh $(KBUILD_TARGET) \ + $(vboxmouse_drv_111_1_STAGE_TARGET) $(VBOXMOUSE_SRC_PATH)/undefined_15 + $(QUIET)$(APPEND) -t "$@" "done" + + TESTING += $(vboxmouse_drv_112_0_OUTDIR)/tstvboxmouse112.run + OTHERS += $(vboxmouse_drv_112_0_OUTDIR)/tstvboxmouse112.run +$$(vboxmouse_drv_112_0_OUTDIR)/tstvboxmouse112.run: $$(vboxmouse_drv_112_1_STAGE_TARGET) + $(QUIET)$(call MSG_L1,Checking for unresolved symbols in $<) + $(QUIET)/bin/sh $(PATH_ROOT)/src/bldprogs/checkUndefined.sh $(KBUILD_TARGET) \ + $(vboxmouse_drv_112_1_STAGE_TARGET) $(VBOXMOUSE_SRC_PATH)/undefined_15 + $(QUIET)$(APPEND) -t "$@" "done" + endif # neq ($(KBUILD_TARGET),linux) endif # ! VBOX_ONLY_SDK diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Additions/x11/vboxvideo/edid.c virtualbox-4.1.44-dfsg/src/VBox/Additions/x11/vboxvideo/edid.c --- virtualbox-4.1.12-dfsg/src/VBox/Additions/x11/vboxvideo/edid.c 2012-04-02 13:25:26.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Additions/x11/vboxvideo/edid.c 2015-11-11 15:06:26.000000000 +0000 @@ -44,7 +44,6 @@ * Dave Airlie */ -#include #include #include #include diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Additions/x11/vboxvideo/Makefile.kmk virtualbox-4.1.44-dfsg/src/VBox/Additions/x11/vboxvideo/Makefile.kmk --- virtualbox-4.1.12-dfsg/src/VBox/Additions/x11/vboxvideo/Makefile.kmk 2012-04-02 13:25:26.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Additions/x11/vboxvideo/Makefile.kmk 2015-11-11 15:06:26.000000000 +0000 @@ -23,6 +23,30 @@ # include $(PATH_SUB_CURRENT)/testcase/Makefile.kmk +vboxvideo_70_DEFS := \ + IN_MODULE XORG_7X RENDER=1 IN_RT_STATIC +ifeq ($(KBUILD_TARGET),solaris) # don't use .solaris or anything here. + vboxvideo_70_DEFS += __EXTENSIONS__ ## @todo Why this? +endif +vboxvideo_13_DEFS := $(vboxvideo_70_DEFS) VBOXVIDEO_13 +vboxvideo_15_DEFS := \ + $(vboxvideo_13_DEFS) VBOX_DRI NO_ANSIC PCIACCESS XSERVER_LIBPCIACCESS +vboxvideo_xorg_INCS = \ + $(VBOX_PATH_X11_ROOT)/fontsproto-2.1.0 \ + $(VBOX_PATH_X11_ROOT)/glproto-1.4.10 \ + $(VBOX_PATH_X11_ROOT)/MesaLib-8.0.4-GL \ + $(VBOX_PATH_X11_ROOT)/inputproto-1.9.99.902 \ + $(VBOX_PATH_X11_ROOT)/kbproto-1.0.6 \ + $(VBOX_PATH_X11_ROOT)/libdrm-2.4.13 \ + $(VBOX_PATH_X11_ROOT)/libpciaccess-0.10.8 \ + $(VBOX_PATH_X11_ROOT)/libXext-1.3.1 \ + $(VBOX_PATH_X11_ROOT)/pixman-0.16.0 \ + $(VBOX_PATH_X11_ROOT)/randrproto-1.3.0 \ + $(VBOX_PATH_X11_ROOT)/renderproto-0.11 \ + $(VBOX_PATH_X11_ROOT)/xextproto-7.1.1 \ + $(VBOX_PATH_X11_ROOT)/xf86driproto-2.1.0 \ + $(VBOX_PATH_X11_ROOT)/xproto-7.0.18 + # # vboxvideo_drv # @@ -103,11 +127,9 @@ vboxvideo_drv_70_CFLAGS += \ -Wno-conversion -Wno-unused-parameter $(VBOX_GCC_Wno-variadic-macros) # template? endif -vboxvideo_drv_70_DEFS := \ - XFree86Server IN_MODULE XFree86Module XFree86LOADER XORG_7X RENDER=1 IN_XF86_MODULE IN_RT_STATIC +vboxvideo_drv_70_DEFS = $(vboxvideo_70_DEFS) XORG_VERSION_CURRENT=700000000 ifeq ($(KBUILD_TARGET),solaris) # don't use .solaris or anything here. - vboxvideo_drv_70_DEFS += __EXTENSIONS__ - vboxvideo_drv_70_CFLAGS += -D_XPG6 # Until we have moved the C++ bits into a library + vboxvideo_drv_70_CFLAGS += -D_XPG6 -Wno-shadow # Use XPG6 until we have moved the C++ bits into a library. endif vboxvideo_drv_70_INCS = \ $(VBOX_PATH_X11_XORG_7_0) \ @@ -123,7 +145,7 @@ DLLS += vboxvideo_drv_71 vboxvideo_drv_71_TEMPLATE = VBOXGUESTR3XORGMOD vboxvideo_drv_71_CFLAGS := $(vboxvideo_drv_70_CFLAGS) -vboxvideo_drv_71_DEFS := $(vboxvideo_drv_70_DEFS) +vboxvideo_drv_71_DEFS := $(vboxvideo_70_DEFS) XORG_VERSION_CURRENT=700100000 vboxvideo_drv_71_INCS = \ $(VBOX_PATH_X11_XORG_7_1) \ $(VBOX_PATH_X11_XORG_7_1)/X11 \ @@ -138,15 +160,10 @@ DLLS += vboxvideo_drv_13 vboxvideo_drv_13_TEMPLATE = VBOXGUESTR3XORGMOD vboxvideo_drv_13_CFLAGS := $(vboxvideo_drv_70_CFLAGS) -vboxvideo_drv_13_DEFS := $(vboxvideo_drv_70_DEFS) VBOXVIDEO_13 +vboxvideo_drv_13_DEFS := $(vboxvideo_13_DEFS) XORG_VERSION_CURRENT=100300000 vboxvideo_drv_13_INCS = \ - $(VBOX_PATH_X11_XORG_1_3) \ - $(VBOX_PATH_X11_XORG_1_3)/X11 \ - $(VBOX_PATH_X11_XORG_1_3)/xorg \ - $(VBOX_PATH_X11_ROOT)/glproto-1.4.10 \ - $(VBOX_PATH_X11_ROOT)/mesa-7.2/include \ - $(VBOX_PATH_X11_ROOT)/libdrm-2.4.13 \ - $(VBOX_PATH_X11_ROOT)/xf86driproto-2.1.0 + $(vboxvideo_xorg_INCS) \ + $(VBOX_PATH_X11_ROOT)/xorg-server-1.3.0.0 vboxvideo_drv_13_INCS += $(PATH_ROOT)/src/VBox/Runtime/include vboxvideo_drv_13_SOURCES = $(vboxvideo_drv_SOURCES) edid.c @@ -157,15 +174,10 @@ DLLS += vboxvideo_drv_14 vboxvideo_drv_14_TEMPLATE = VBOXGUESTR3XORGMOD vboxvideo_drv_14_CFLAGS := $(vboxvideo_drv_70_CFLAGS) -vboxvideo_drv_14_DEFS := $(vboxvideo_drv_13_DEFS) +vboxvideo_drv_14_DEFS := $(vboxvideo_13_DEFS) XORG_VERSION_CURRENT=100400000 vboxvideo_drv_14_INCS = \ - $(VBOX_PATH_X11_XORG_1_4) \ - $(VBOX_PATH_X11_XORG_1_4)/X11 \ - $(VBOX_PATH_X11_XORG_1_4)/xorg \ - $(VBOX_PATH_X11_ROOT)/glproto-1.4.10 \ - $(VBOX_PATH_X11_ROOT)/mesa-7.2/include \ - $(VBOX_PATH_X11_ROOT)/libdrm-2.4.13 \ - $(VBOX_PATH_X11_ROOT)/xf86driproto-2.1.0 + $(vboxvideo_xorg_INCS) \ + $(VBOX_PATH_X11_ROOT)/xorg-server-1.4.2 vboxvideo_drv_14_INCS += $(PATH_ROOT)/src/VBox/Runtime/include vboxvideo_drv_14_SOURCES = $(vboxvideo_drv_13_SOURCES) @@ -176,18 +188,12 @@ DLLS += vboxvideo_drv_15 vboxvideo_drv_15_TEMPLATE = VBOXGUESTR3XORGMOD vboxvideo_drv_15_CFLAGS := $(vboxvideo_drv_70_CFLAGS) -vboxvideo_drv_15_DEFS := $(vboxvideo_drv_13_DEFS) NO_ANSIC PCIACCESS \ - VBOX_NO_LOW_COLOUR +vboxvideo_drv_15_DEFS := $(vboxvideo_15_DEFS) XORG_VERSION_CURRENT=100503000 if1of ($(KBUILD_TARGET), linux solaris) vboxvideo_drv_15_DEFS += VBOX_DRI endif vboxvideo_drv_15_INCS = \ - $(VBOX_PATH_X11_XORG_1_5) \ - $(VBOX_PATH_X11_XORG_1_5)/X11 \ - $(VBOX_PATH_X11_ROOT)/glproto-1.4.10 \ - $(VBOX_PATH_X11_ROOT)/mesa-7.2/include \ - $(VBOX_PATH_X11_ROOT)/libdrm-2.4.13 \ - $(VBOX_PATH_X11_ROOT)/xf86driproto-2.1.0 \ + $(vboxvideo_xorg_INCS) \ $(VBOX_PATH_X11_ROOT)/xorg-server-1.5.3 vboxvideo_drv_15_INCS += $(PATH_ROOT)/src/VBox/Runtime/include vboxvideo_drv_15_SOURCES = $(vboxvideo_drv_13_SOURCES) @@ -203,16 +209,10 @@ DLLS += vboxvideo_drv_16 vboxvideo_drv_16_TEMPLATE = VBOXGUESTR3XORGMOD vboxvideo_drv_16_CFLAGS := $(vboxvideo_drv_70_CFLAGS) -vboxvideo_drv_16_DEFS := $(vboxvideo_drv_15_DEFS) +vboxvideo_drv_16_DEFS := $(vboxvideo_15_DEFS) XORG_VERSION_CURRENT=100600000 vboxvideo_drv_16_INCS = \ - $(VBOX_PATH_X11_XORG_1_6) \ - $(VBOX_PATH_X11_XORG_1_6)/X11 \ - $(VBOX_PATH_X11_ROOT)/glproto-1.4.10 \ - $(VBOX_PATH_X11_ROOT)/mesa-7.2/include \ - $(VBOX_PATH_X11_ROOT)/libdrm-2.4.13 \ - $(VBOX_PATH_X11_ROOT)/xf86driproto-2.1.0 \ + $(vboxvideo_xorg_INCS) \ $(VBOX_PATH_X11_ROOT)/xorg-server-1.6.0 \ - $(VBOX_PATH_X11_ROOT)/xorg-server-1.6.0-local vboxvideo_drv_16_INCS += $(PATH_ROOT)/src/VBox/Runtime/include vboxvideo_drv_16_SOURCES := $(vboxvideo_drv_15_SOURCES) @@ -223,23 +223,10 @@ DLLS += vboxvideo_drv_17 vboxvideo_drv_17_TEMPLATE = VBOXGUESTR3XORGMOD vboxvideo_drv_17_CFLAGS := $(vboxvideo_drv_70_CFLAGS) -vboxvideo_drv_17_DEFS := $(vboxvideo_drv_15_DEFS) -## @todo replace $(VBOX_PATH_X11_ROOT)/xorg-server-1.6.0-local +vboxvideo_drv_17_DEFS := $(vboxvideo_15_DEFS) XORG_VERSION_CURRENT=100699000 vboxvideo_drv_17_INCS = \ - $(VBOX_PATH_X11_ROOT)/fontsproto-2.1.0 \ - $(VBOX_PATH_X11_ROOT)/glproto-1.4.10 \ - $(VBOX_PATH_X11_ROOT)/mesa-7.2/include \ - $(VBOX_PATH_X11_ROOT)/inputproto-1.9.99.902 \ - $(VBOX_PATH_X11_ROOT)/libdrm-2.4.13 \ - $(VBOX_PATH_X11_ROOT)/libpciaccess-0.10.8 \ - $(VBOX_PATH_X11_ROOT)/pixman-0.16.0 \ - $(VBOX_PATH_X11_ROOT)/randrproto-1.3.0 \ - $(VBOX_PATH_X11_ROOT)/renderproto-0.11 \ - $(VBOX_PATH_X11_ROOT)/xextproto-7.1.1 \ - $(VBOX_PATH_X11_ROOT)/xf86driproto-2.1.0 \ - $(VBOX_PATH_X11_ROOT)/xorg-server-1.6.99-20090831 \ - $(VBOX_PATH_X11_ROOT)/xorg-server-1.6.0-local \ - $(VBOX_PATH_X11_ROOT)/xproto-7.0.18 + $(vboxvideo_xorg_INCS) \ + $(VBOX_PATH_X11_ROOT)/xorg-server-1.7.7 vboxvideo_drv_17_INCS += $(PATH_ROOT)/src/VBox/Runtime/include vboxvideo_drv_17_SOURCES := $(vboxvideo_drv_15_SOURCES) @@ -250,23 +237,10 @@ DLLS += vboxvideo_drv_18 vboxvideo_drv_18_TEMPLATE = VBOXGUESTR3XORGMOD vboxvideo_drv_18_CFLAGS := $(vboxvideo_drv_70_CFLAGS) -vboxvideo_drv_18_DEFS := $(vboxvideo_drv_15_DEFS) -## @todo replace $(VBOX_PATH_X11_ROOT)/xorg-server-1.6.0-local +vboxvideo_drv_18_DEFS := $(vboxvideo_15_DEFS) XORG_VERSION_CURRENT=100800000 vboxvideo_drv_18_INCS = \ - $(VBOX_PATH_X11_ROOT)/fontsproto-2.1.0 \ - $(VBOX_PATH_X11_ROOT)/glproto-1.4.10 \ - $(VBOX_PATH_X11_ROOT)/mesa-7.2/include \ - $(VBOX_PATH_X11_ROOT)/inputproto-1.9.99.902 \ - $(VBOX_PATH_X11_ROOT)/libdrm-2.4.13 \ - $(VBOX_PATH_X11_ROOT)/libpciaccess-0.10.8 \ - $(VBOX_PATH_X11_ROOT)/pixman-0.16.0 \ - $(VBOX_PATH_X11_ROOT)/randrproto-1.3.0 \ - $(VBOX_PATH_X11_ROOT)/renderproto-0.11 \ - $(VBOX_PATH_X11_ROOT)/xextproto-7.1.1 \ - $(VBOX_PATH_X11_ROOT)/xf86driproto-2.1.0 \ - $(VBOX_PATH_X11_ROOT)/xorg-server-1.8.0 \ - $(VBOX_PATH_X11_ROOT)/xorg-server-1.6.0-local \ - $(VBOX_PATH_X11_ROOT)/xproto-7.0.18 + $(vboxvideo_xorg_INCS) \ + $(VBOX_PATH_X11_ROOT)/xorg-server-1.8.0 vboxvideo_drv_18_INCS += $(PATH_ROOT)/src/VBox/Runtime/include vboxvideo_drv_18_SOURCES := $(vboxvideo_drv_15_SOURCES) @@ -277,23 +251,10 @@ DLLS += vboxvideo_drv_19 vboxvideo_drv_19_TEMPLATE = VBOXGUESTR3XORGMOD vboxvideo_drv_19_CFLAGS := $(vboxvideo_drv_70_CFLAGS) -vboxvideo_drv_19_DEFS := $(vboxvideo_drv_15_DEFS) -## @todo replace $(VBOX_PATH_X11_ROOT)/xorg-server-1.6.0-local +vboxvideo_drv_19_DEFS := $(vboxvideo_15_DEFS) XORG_VERSION_CURRENT=100900000 vboxvideo_drv_19_INCS = \ - $(VBOX_PATH_X11_ROOT)/fontsproto-2.1.0 \ - $(VBOX_PATH_X11_ROOT)/glproto-1.4.10 \ - $(VBOX_PATH_X11_ROOT)/mesa-7.2/include \ - $(VBOX_PATH_X11_ROOT)/inputproto-1.9.99.902 \ - $(VBOX_PATH_X11_ROOT)/libdrm-2.4.13 \ - $(VBOX_PATH_X11_ROOT)/libpciaccess-0.10.8 \ - $(VBOX_PATH_X11_ROOT)/pixman-0.16.0 \ - $(VBOX_PATH_X11_ROOT)/randrproto-1.3.0 \ - $(VBOX_PATH_X11_ROOT)/renderproto-0.11 \ - $(VBOX_PATH_X11_ROOT)/xextproto-7.1.1 \ - $(VBOX_PATH_X11_ROOT)/xf86driproto-2.1.0 \ - $(VBOX_PATH_X11_ROOT)/xorg-server-1.9.0 \ - $(VBOX_PATH_X11_ROOT)/xorg-server-1.6.0-local \ - $(VBOX_PATH_X11_ROOT)/xproto-7.0.18 + $(vboxvideo_xorg_INCS) \ + $(VBOX_PATH_X11_ROOT)/xorg-server-1.9.0 vboxvideo_drv_19_INCS += $(PATH_ROOT)/src/VBox/Runtime/include vboxvideo_drv_19_SOURCES := $(vboxvideo_drv_15_SOURCES) @@ -304,23 +265,10 @@ DLLS += vboxvideo_drv_110 vboxvideo_drv_110_TEMPLATE = VBOXGUESTR3XORGMOD vboxvideo_drv_110_CFLAGS := $(vboxvideo_drv_70_CFLAGS) -vboxvideo_drv_110_DEFS := $(vboxvideo_drv_15_DEFS) -## @todo replace $(VBOX_PATH_X11_ROOT)/xorg-server-1.6.0-local +vboxvideo_drv_110_DEFS := $(vboxvideo_15_DEFS) XORG_VERSION_CURRENT=101000000 vboxvideo_drv_110_INCS = \ - $(VBOX_PATH_X11_ROOT)/fontsproto-2.1.0 \ - $(VBOX_PATH_X11_ROOT)/glproto-1.4.10 \ - $(VBOX_PATH_X11_ROOT)/mesa-7.2/include \ - $(VBOX_PATH_X11_ROOT)/inputproto-1.9.99.902 \ - $(VBOX_PATH_X11_ROOT)/libdrm-2.4.13 \ - $(VBOX_PATH_X11_ROOT)/libpciaccess-0.10.8 \ - $(VBOX_PATH_X11_ROOT)/pixman-0.16.0 \ - $(VBOX_PATH_X11_ROOT)/randrproto-1.3.0 \ - $(VBOX_PATH_X11_ROOT)/renderproto-0.11 \ - $(VBOX_PATH_X11_ROOT)/xextproto-7.1.1 \ - $(VBOX_PATH_X11_ROOT)/xf86driproto-2.1.0 \ - $(VBOX_PATH_X11_ROOT)/xorg-server-1.10.0 \ - $(VBOX_PATH_X11_ROOT)/xorg-server-1.6.0-local \ - $(VBOX_PATH_X11_ROOT)/xproto-7.0.18 + $(vboxvideo_xorg_INCS) \ + $(VBOX_PATH_X11_ROOT)/xorg-server-1.10.0 vboxvideo_drv_110_INCS += $(PATH_ROOT)/src/VBox/Runtime/include vboxvideo_drv_110_SOURCES := $(vboxvideo_drv_15_SOURCES) @@ -331,23 +279,10 @@ DLLS += vboxvideo_drv_111 vboxvideo_drv_111_TEMPLATE = VBOXGUESTR3XORGMOD vboxvideo_drv_111_CFLAGS := $(vboxvideo_drv_70_CFLAGS) -vboxvideo_drv_111_DEFS := $(vboxvideo_drv_15_DEFS) -## @todo replace $(VBOX_PATH_X11_ROOT)/xorg-server-1.6.0-local +vboxvideo_drv_111_DEFS := $(vboxvideo_15_DEFS) XORG_VERSION_CURRENT=101100000 vboxvideo_drv_111_INCS = \ - $(VBOX_PATH_X11_ROOT)/fontsproto-2.1.0 \ - $(VBOX_PATH_X11_ROOT)/glproto-1.4.10 \ - $(VBOX_PATH_X11_ROOT)/mesa-7.2/include \ - $(VBOX_PATH_X11_ROOT)/inputproto-1.9.99.902 \ - $(VBOX_PATH_X11_ROOT)/libdrm-2.4.13 \ - $(VBOX_PATH_X11_ROOT)/libpciaccess-0.10.8 \ - $(VBOX_PATH_X11_ROOT)/pixman-0.16.0 \ - $(VBOX_PATH_X11_ROOT)/randrproto-1.3.0 \ - $(VBOX_PATH_X11_ROOT)/renderproto-0.11 \ - $(VBOX_PATH_X11_ROOT)/xextproto-7.1.1 \ - $(VBOX_PATH_X11_ROOT)/xf86driproto-2.1.0 \ - $(VBOX_PATH_X11_ROOT)/xorg-server-1.11.0 \ - $(VBOX_PATH_X11_ROOT)/xorg-server-1.6.0-local \ - $(VBOX_PATH_X11_ROOT)/xproto-7.0.18 + $(vboxvideo_xorg_INCS) \ + $(VBOX_PATH_X11_ROOT)/xorg-server-1.11.0 vboxvideo_drv_111_INCS += $(PATH_ROOT)/src/VBox/Runtime/include vboxvideo_drv_111_SOURCES := $(vboxvideo_drv_15_SOURCES) @@ -358,27 +293,42 @@ DLLS += vboxvideo_drv_112 vboxvideo_drv_112_TEMPLATE = VBOXGUESTR3XORGMOD vboxvideo_drv_112_CFLAGS := $(vboxvideo_drv_70_CFLAGS) -vboxvideo_drv_112_DEFS := $(vboxvideo_drv_15_DEFS) -## @todo replace $(VBOX_PATH_X11_ROOT)/xorg-server-1.6.0-local +vboxvideo_drv_112_DEFS := $(vboxvideo_15_DEFS) XORG_VERSION_CURRENT=101200000 vboxvideo_drv_112_INCS = \ - $(VBOX_PATH_X11_ROOT)/fontsproto-2.1.0 \ - $(VBOX_PATH_X11_ROOT)/glproto-1.4.10 \ - $(VBOX_PATH_X11_ROOT)/mesa-7.2/include \ - $(VBOX_PATH_X11_ROOT)/inputproto-1.9.99.902 \ - $(VBOX_PATH_X11_ROOT)/libdrm-2.4.13 \ - $(VBOX_PATH_X11_ROOT)/libpciaccess-0.10.8 \ - $(VBOX_PATH_X11_ROOT)/pixman-0.16.0 \ - $(VBOX_PATH_X11_ROOT)/randrproto-1.3.0 \ - $(VBOX_PATH_X11_ROOT)/renderproto-0.11 \ - $(VBOX_PATH_X11_ROOT)/xextproto-7.1.1 \ - $(VBOX_PATH_X11_ROOT)/xf86driproto-2.1.0 \ - $(VBOX_PATH_X11_ROOT)/xorg-server-1.12.0 \ - $(VBOX_PATH_X11_ROOT)/xorg-server-1.6.0-local \ - $(VBOX_PATH_X11_ROOT)/xproto-7.0.18 + $(vboxvideo_xorg_INCS) \ + $(VBOX_PATH_X11_ROOT)/xorg-server-1.12.0 vboxvideo_drv_112_INCS += $(PATH_ROOT)/src/VBox/Runtime/include vboxvideo_drv_112_SOURCES := $(vboxvideo_drv_15_SOURCES) +# +# vboxvideo_drv_113 +# +DLLS += vboxvideo_drv_113 +vboxvideo_drv_113_TEMPLATE = VBOXGUESTR3XORGMOD +vboxvideo_drv_113_CFLAGS := $(vboxvideo_drv_70_CFLAGS) +vboxvideo_drv_113_DEFS := $(vboxvideo_15_DEFS) XORG_VERSION_CURRENT=101300000 +vboxvideo_drv_113_INCS = \ + $(vboxvideo_xorg_INCS) \ + $(VBOX_PATH_X11_ROOT)/xorg-server-1.13.0 +vboxvideo_drv_113_INCS += $(PATH_ROOT)/src/VBox/Runtime/include +vboxvideo_drv_113_SOURCES := $(vboxvideo_drv_15_SOURCES) + + +# +# vboxvideo_drv_114 +# +DLLS += vboxvideo_drv_114 +vboxvideo_drv_114_TEMPLATE = VBOXGUESTR3XORGMOD +vboxvideo_drv_114_CFLAGS := $(vboxvideo_drv_70_CFLAGS) +vboxvideo_drv_114_DEFS := $(vboxvideo_15_DEFS) XORG_VERSION_CURRENT=101400000 +vboxvideo_drv_114_INCS = \ + $(vboxvideo_xorg_INCS) \ + $(VBOX_PATH_X11_ROOT)/xorg-server-1.14.0 +vboxvideo_drv_114_INCS += $(PATH_ROOT)/src/VBox/Runtime/include +vboxvideo_drv_114_SOURCES := $(vboxvideo_drv_15_SOURCES) + + # Check the undefined symbols in the X.Org modules against lists of allowed # symbols. Not very elegant, but it will catch problems early. ifdef VBOX_WITH_TESTCASES @@ -494,6 +444,22 @@ $(vboxvideo_drv_112_1_STAGE_TARGET) $(VBOXVIDEO_SRC_PATH)/undefined $(QUIET)$(APPEND) -t "$@" "done" + TESTING += $(vboxvideo_drv_113_0_OUTDIR)/tstvboxvideo113.run + OTHERS += $(vboxvideo_drv_113_0_OUTDIR)/tstvboxvideo113.run +$$(vboxvideo_drv_113_0_OUTDIR)/tstvboxvideo113.run: $$(vboxvideo_drv_113_1_STAGE_TARGET) + $(QUIET)$(call MSG_L1,Checking for unresolved symbols in $<) + $(QUIET)/bin/sh $(PATH_ROOT)/src/bldprogs/checkUndefined.sh $(KBUILD_HOST) \ + $(vboxvideo_drv_113_1_STAGE_TARGET) $(VBOXVIDEO_SRC_PATH)/undefined + $(QUIET)$(APPEND) -t "$@" "done" + + TESTING += $(vboxvideo_drv_114_0_OUTDIR)/tstvboxvideo114.run + OTHERS += $(vboxvideo_drv_114_0_OUTDIR)/tstvboxvideo114.run +$$(vboxvideo_drv_114_0_OUTDIR)/tstvboxvideo114.run: $$(vboxvideo_drv_114_1_STAGE_TARGET) + $(QUIET)$(call MSG_L1,Checking for unresolved symbols in $<) + $(QUIET)/bin/sh $(PATH_ROOT)/src/bldprogs/checkUndefined.sh $(KBUILD_HOST) \ + $(vboxvideo_drv_114_1_STAGE_TARGET) $(VBOXVIDEO_SRC_PATH)/undefined + $(QUIET)$(APPEND) -t "$@" "done" + endif # ! VBOX_ONLY_SDK endif # eq ($(KBUILD_HOST_ARCH),$(KBUILD_TARGET_ARCH)) endif # eq ($(KBUILD_TARGET),linux) diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Additions/x11/vboxvideo/pointer.c virtualbox-4.1.44-dfsg/src/VBox/Additions/x11/vboxvideo/pointer.c --- virtualbox-4.1.12-dfsg/src/VBox/Additions/x11/vboxvideo/pointer.c 2012-04-02 13:25:26.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Additions/x11/vboxvideo/pointer.c 2015-11-11 15:06:26.000000000 +0000 @@ -27,9 +27,14 @@ #include #include "compiler.h" #include "cursorstr.h" +#include "servermd.h" #include "vboxvideo.h" +#ifdef XORG_7X +# include +#endif + #define VBOX_MAX_CURSOR_WIDTH 64 #define VBOX_MAX_CURSOR_HEIGHT 64 diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Additions/x11/vboxvideo/setmode.c virtualbox-4.1.44-dfsg/src/VBox/Additions/x11/vboxvideo/setmode.c --- virtualbox-4.1.12-dfsg/src/VBox/Additions/x11/vboxvideo/setmode.c 2012-04-02 13:25:26.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Additions/x11/vboxvideo/setmode.c 2015-11-11 15:06:26.000000000 +0000 @@ -49,26 +49,12 @@ */ #ifdef XORG_7X -# include "xorg-server.h" # include #endif #include "vboxvideo.h" -#include #include "version-generated.h" #include "product-generated.h" -#include -#include - -/* All drivers initialising the SW cursor need this */ -#include "mipointer.h" - -/* Colormap handling */ -#include "micmap.h" -#include "xf86cmap.h" - -/* DPMS */ -/* #define DPMS_SERVER -#include "extensions/dpms.h" */ +#include "xf86.h" /* VGA hardware functions for setting and restoring text mode */ #include "vgaHW.h" @@ -104,10 +90,6 @@ TRACE_LOG("cDisplay=%u, cWidth=%u, cHeight=%u, x=%d, y=%d, displayWidth=%d\n", cDisplay, cWidth, cHeight, x, y, pScrn->displayWidth); - pVBox->aScreenLocation[cDisplay].cx = cWidth; - pVBox->aScreenLocation[cDisplay].cy = cHeight; - pVBox->aScreenLocation[cDisplay].x = x; - pVBox->aScreenLocation[cDisplay].y = y; offStart = y * pVBox->cbLine + x * vboxBPP(pScrn) / 8; /* Deactivate the screen if the mode - specifically the virtual width - is * too large for VRAM as we sometimes have to do this - see comments in @@ -121,12 +103,8 @@ return FALSE; else cwReal = RT_MIN((int) cWidth, pScrn->displayWidth - x); - TRACE_LOG("pVBox->afDisabled[cDisplay]=%d\n", - (int)pVBox->afDisabled[cDisplay]); - /* Don't fiddle with the hardware if we are switched - * to a virtual terminal. */ - if (pVBox->vtSwitch) - return TRUE; + TRACE_LOG("pVBox->afDisabled[%u]=%d\n", + cDisplay, (int)pVBox->afDisabled[cDisplay]); if (cDisplay == 0) VBoxVideoSetModeRegisters(cwReal, cHeight, pScrn->displayWidth, vboxBPP(pScrn), 0, x, y); @@ -153,8 +131,13 @@ PixmapPtr pPixmap = pScreen->GetScreenPixmap(pScreen); VBOXPtr pVBox = VBOXGetRec(pScrn); uint64_t cbLine = vboxLineLength(pScrn, width); + int displayWidth = vboxDisplayPitch(pScrn, cbLine); TRACE_LOG("width=%d, height=%d\n", width, height); + if ( width == pScrn->virtualX + && height == pScrn->virtualY + && displayWidth == pScrn->displayWidth) + return TRUE; if (!pPixmap) { xf86DrvMsg(pScrn->scrnIndex, X_ERROR, "Failed to get the screen pixmap.\n"); @@ -173,7 +156,7 @@ vboxClearVRAM(pScrn, width, height); pScrn->virtualX = width; pScrn->virtualY = height; - pScrn->displayWidth = vboxDisplayPitch(pScrn, cbLine); + pScrn->displayWidth = displayWidth; pVBox->cbLine = cbLine; #ifdef VBOX_DRI if (pVBox->useDRI) diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Additions/x11/vboxvideo/undefined virtualbox-4.1.44-dfsg/src/VBox/Additions/x11/vboxvideo/undefined --- virtualbox-4.1.12-dfsg/src/VBox/Additions/x11/vboxvideo/undefined 2012-04-02 13:25:26.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Additions/x11/vboxvideo/undefined 2015-11-11 15:06:26.000000000 +0000 @@ -166,6 +166,8 @@ xf86PrintModes xf86SaveScreen xf86Screens +xf86ScreenToScrn +xf86ScrnToScreen xf86SetBackingStore xf86SetBlackWhitePixels xf86SetDefaultVisual diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Additions/x11/vboxvideo/vboxutils.c virtualbox-4.1.44-dfsg/src/VBox/Additions/x11/vboxvideo/vboxutils.c --- virtualbox-4.1.12-dfsg/src/VBox/Additions/x11/vboxvideo/vboxutils.c 2012-04-02 13:25:27.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Additions/x11/vboxvideo/vboxutils.c 2015-11-11 15:06:26.000000000 +0000 @@ -29,6 +29,11 @@ #include "vboxvideo.h" +#ifdef XORG_7X +# include +# include +#endif + /************************************************************************** * Main functions * **************************************************************************/ diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Additions/x11/vboxvideo/vboxvideo.c virtualbox-4.1.44-dfsg/src/VBox/Additions/x11/vboxvideo/vboxvideo.c --- virtualbox-4.1.12-dfsg/src/VBox/Additions/x11/vboxvideo/vboxvideo.c 2012-04-02 13:25:27.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Additions/x11/vboxvideo/vboxvideo.c 2015-11-11 15:06:26.000000000 +0000 @@ -16,11 +16,14 @@ * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind. * -------------------------------------------------------------------- * - * This code is based on: - * - * X11 VESA driver + * This code is based on the X.Org VESA driver with the following copyrights: * * Copyright (c) 2000 by Conectiva S.A. (http://www.conectiva.com) + * Copyright 2008 Red Hat, Inc. + * Copyright 2012 Red Hat, Inc. + * + * and the following permission notice (not all original sourse files include + * the last paragraph): * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -46,12 +49,31 @@ * Conectiva Linux. * * Authors: Paulo César Pereira de Andrade + * David Dawes + * Adam Jackson + * Dave Airlie */ #ifdef XORG_7X -# include "xorg-server.h" +# include # include #endif + +#include "xf86.h" +#include "xf86_OSproc.h" +#if GET_ABI_MAJOR(ABI_VIDEODRV_VERSION) < 6 +# include "xf86Resources.h" +#endif + +#ifndef PCIACCESS +/* Drivers for PCI hardware need this */ +# include "xf86PciInfo.h" +/* Drivers that need to access the PCI config space directly need this */ +# include "xf86Pci.h" +#endif + +#include "fb.h" + #include "vboxvideo.h" #include #include "version-generated.h" @@ -92,15 +114,14 @@ struct pci_device *dev, intptr_t match_data); #endif static Bool VBOXPreInit(ScrnInfoPtr pScrn, int flags); -static Bool VBOXScreenInit(int Index, ScreenPtr pScreen, int argc, - char **argv); -static Bool VBOXEnterVT(int scrnIndex, int flags); -static void VBOXLeaveVT(int scrnIndex, int flags); -static Bool VBOXCloseScreen(int scrnIndex, ScreenPtr pScreen); +static Bool VBOXScreenInit(ScreenPtr pScreen, int argc, char **argv); +static Bool VBOXEnterVT(ScrnInfoPtr pScrn); +static void VBOXLeaveVT(ScrnInfoPtr pScrn); +static Bool VBOXCloseScreen(ScreenPtr pScreen); static Bool VBOXSaveScreen(ScreenPtr pScreen, int mode); -static Bool VBOXSwitchMode(int scrnIndex, DisplayModePtr pMode, int flags); -static void VBOXAdjustFrame(int scrnIndex, int x, int y, int flags); -static void VBOXFreeScreen(int scrnIndex, int flags); +static Bool VBOXSwitchMode(ScrnInfoPtr pScrn, DisplayModePtr pMode); +static void VBOXAdjustFrame(ScrnInfoPtr pScrn, int x, int y); +static void VBOXFreeScreen(ScrnInfoPtr pScrn); static void VBOXDisplayPowerManagementSet(ScrnInfoPtr pScrn, int mode, int flags); @@ -110,6 +131,12 @@ static void VBOXSaveMode(ScrnInfoPtr pScrn); static void VBOXRestoreMode(ScrnInfoPtr pScrn); +static inline void VBOXSetRec(ScrnInfoPtr pScrn) +{ + if (!pScrn->driverPrivate) + pScrn->driverPrivate = calloc(sizeof(VBOXRec), 1); +} + enum GenericTypes { CHIP_VBOX_GENERIC @@ -220,8 +247,25 @@ hw/xfree86/modes/xf86Crtc.h and hw/xfree86/modes/xf86Modes.h in the X.Org source tree. */ +static Bool vbox_config_resize(ScrnInfoPtr pScrn, int cw, int ch) +{ + VBOXPtr pVBox = VBOXGetRec(pScrn); + TRACE_LOG("width=%d, height=%d\n", cw, ch); + /* Save the size in case we need to re-set it later. */ + pVBox->FBSize.cx = cw; + pVBox->FBSize.cy = ch; + /* Don't fiddle with the hardware if we are switched + * to a virtual terminal. */ + if (!pScrn->vtSema) { + xf86DrvMsg(pScrn->scrnIndex, X_ERROR, + "We do not own the active VT, exiting.\n"); + return TRUE; + } + return VBOXAdjustScreenPixmap(pScrn, cw, ch); +} + static const xf86CrtcConfigFuncsRec VBOXCrtcConfigFuncs = { - VBOXAdjustScreenPixmap + vbox_config_resize }; static void @@ -231,6 +275,13 @@ unsigned cDisplay = (uintptr_t)crtc->driver_private; TRACE_LOG("cDisplay=%u, mode=%i\n", cDisplay, mode); pVBox->afDisabled[cDisplay] = (mode != DPMSModeOn); + /* Don't fiddle with the hardware if we are switched + * to a virtual terminal. */ + if (!crtc->scrn->vtSema) { + xf86DrvMsg(crtc->scrn->scrnIndex, X_ERROR, + "We do not own the active VT, exiting.\n"); + return; + } if ( pVBox->aScreenLocation[cDisplay].cx && pVBox->aScreenLocation[cDisplay].cy) VBOXSetMode(crtc->scrn, cDisplay, @@ -244,6 +295,13 @@ vbox_crtc_lock (xf86CrtcPtr crtc) { (void) crtc; return FALSE; } + +/* We use this function to check whether the X server owns the active virtual + * terminal before attempting a mode switch, since the RandR extension isn't + * very dilligent here, which can mean crashes if we are unlucky. This is + * not the way it the function is intended - it is meant for reporting modes + * which the hardware can't handle. I hope that this won't confuse any clients + * connecting to us. */ static Bool vbox_crtc_mode_fixup (xf86CrtcPtr crtc, DisplayModePtr mode, DisplayModePtr adjusted_mode) @@ -264,13 +322,25 @@ TRACE_LOG("name=%s, HDisplay=%d, VDisplay=%d, x=%d, y=%d\n", adjusted_mode->name, adjusted_mode->HDisplay, adjusted_mode->VDisplay, x, y); pVBox->afDisabled[cDisplay] = false; - VBOXSetMode(crtc->scrn, cDisplay, adjusted_mode->HDisplay, - adjusted_mode->VDisplay, x, y); + pVBox->aScreenLocation[cDisplay].cx = adjusted_mode->HDisplay; + pVBox->aScreenLocation[cDisplay].cy = adjusted_mode->VDisplay; + pVBox->aScreenLocation[cDisplay].x = x; + pVBox->aScreenLocation[cDisplay].y = y; /* Don't remember any modes set while we are seamless, as they are * just temporary. */ if (!vboxGuestIsSeamless(crtc->scrn)) vboxSaveVideoMode(crtc->scrn, adjusted_mode->HDisplay, adjusted_mode->VDisplay, crtc->scrn->bitsPerPixel); + /* Don't fiddle with the hardware if we are switched + * to a virtual terminal. */ + if (!crtc->scrn->vtSema) + { + xf86DrvMsg(crtc->scrn->scrnIndex, X_ERROR, + "We do not own the active VT, exiting.\n"); + return; + } + VBOXSetMode(crtc->scrn, cDisplay, adjusted_mode->HDisplay, + adjusted_mode->VDisplay, x, y); } static void @@ -489,7 +559,6 @@ }; #endif /* VBOXVIDEO_13 */ -#ifdef XFree86LOADER /* Module loader interface */ static MODULESETUPPROTO(vboxSetup); @@ -552,7 +621,6 @@ return (NULL); } -#endif /* XFree86Loader defined */ static const OptionInfoRec * VBOXAvailableOptions(int chipid, int busid) @@ -566,9 +634,53 @@ xf86PrintChipsets(VBOX_NAME, "guest driver for VirtualBox", VBOXChipsets); } +#ifndef XF86_SCRN_INTERFACE +# define xf86ScreenToScrn(pScreen) xf86Screens[(pScreen)->myNum] +# define xf86ScrnToScreen(pScrn) screenInfo.screens[(pScrn)->scrnIndex] +# define SCRNINDEXAPI(pfn) pfn ## Index +static Bool VBOXScreenInitIndex(int scrnIndex, ScreenPtr pScreen, int argc, + char **argv) +{ return VBOXScreenInit(pScreen, argc, argv); } + +static Bool VBOXEnterVTIndex(int scrnIndex, int flags) +{ (void) flags; return VBOXEnterVT(xf86Screens[scrnIndex]); } + +static void VBOXLeaveVTIndex(int scrnIndex, int flags) +{ (void) flags; VBOXLeaveVT(xf86Screens[scrnIndex]); } + +static Bool VBOXCloseScreenIndex(int scrnIndex, ScreenPtr pScreen) +{ (void) scrnIndex; return VBOXCloseScreen(pScreen); } + +static Bool VBOXSwitchModeIndex(int scrnIndex, DisplayModePtr pMode, int flags) +{ (void) flags; return VBOXSwitchMode(xf86Screens[scrnIndex], pMode); } + +static void VBOXAdjustFrameIndex(int scrnIndex, int x, int y, int flags) +{ (void) flags; VBOXAdjustFrame(xf86Screens[scrnIndex], x, y); } + +static void VBOXFreeScreenIndex(int scrnIndex, int flags) +{ (void) flags; VBOXFreeScreen(xf86Screens[scrnIndex]); } +# else +# define SCRNINDEXAPI(pfn) pfn +#endif /* XF86_SCRN_INTERFACE */ + +static void setScreenFunctions(ScrnInfoPtr pScrn, xf86ProbeProc pfnProbe) +{ + pScrn->driverVersion = VBOX_VERSION; + pScrn->driverName = VBOX_DRIVER_NAME; + pScrn->name = VBOX_NAME; + pScrn->Probe = pfnProbe; + pScrn->PreInit = VBOXPreInit; + pScrn->ScreenInit = SCRNINDEXAPI(VBOXScreenInit); + pScrn->SwitchMode = SCRNINDEXAPI(VBOXSwitchMode); + pScrn->AdjustFrame = SCRNINDEXAPI(VBOXAdjustFrame); + pScrn->EnterVT = SCRNINDEXAPI(VBOXEnterVT); + pScrn->LeaveVT = SCRNINDEXAPI(VBOXLeaveVT); + pScrn->FreeScreen = SCRNINDEXAPI(VBOXFreeScreen); +} + /* - * This function is called once, at the start of the first server generation to - * do a minimal probe for supported hardware. + * One of these functions is called once, at the start of the first server + * generation to do a minimal probe for supported hardware. */ #ifdef PCIACCESS @@ -582,20 +694,13 @@ pScrn = xf86ConfigPciEntity(NULL, 0, entity_num, VBOXPCIchipsets, NULL, NULL, NULL, NULL, NULL); if (pScrn != NULL) { - VBOXPtr pVBox = VBOXGetRec(pScrn); - - pScrn->driverVersion = VBOX_VERSION; - pScrn->driverName = VBOX_DRIVER_NAME; - pScrn->name = VBOX_NAME; - pScrn->Probe = NULL; - pScrn->PreInit = VBOXPreInit; - pScrn->ScreenInit = VBOXScreenInit; - pScrn->SwitchMode = VBOXSwitchMode; - pScrn->AdjustFrame = VBOXAdjustFrame; - pScrn->EnterVT = VBOXEnterVT; - pScrn->LeaveVT = VBOXLeaveVT; - pScrn->FreeScreen = VBOXFreeScreen; + VBOXPtr pVBox; + VBOXSetRec(pScrn); + pVBox = VBOXGetRec(pScrn); + if (!pVBox) + return FALSE; + setScreenFunctions(pScrn, NULL); pVBox->pciInfo = dev; } @@ -617,73 +722,44 @@ * driver, and return if there are none. */ if ((numDevSections = xf86MatchDevice(VBOX_NAME, - &devSections)) <= 0) - return (FALSE); + &devSections)) <= 0) + return (FALSE); /* PCI BUS */ - if (xf86GetPciVideoInfo()) { + if (xf86GetPciVideoInfo()) + { int numUsed; int *usedChips; int i; - numUsed = xf86MatchPciInstances(VBOX_NAME, VBOX_VENDORID, - VBOXChipsets, VBOXPCIchipsets, - devSections, numDevSections, - drv, &usedChips); - if (numUsed > 0) { - if (flags & PROBE_DETECT) - foundScreen = TRUE; - else { - for (i = 0; i < numUsed; i++) { - ScrnInfoPtr pScrn = NULL; - /* Allocate a ScrnInfoRec */ - if ((pScrn = xf86ConfigPciEntity(pScrn,0,usedChips[i], - VBOXPCIchipsets,NULL, - NULL,NULL,NULL,NULL))) { - pScrn->driverVersion = VBOX_VERSION; - pScrn->driverName = VBOX_DRIVER_NAME; - pScrn->name = VBOX_NAME; - pScrn->Probe = VBOXProbe; - pScrn->PreInit = VBOXPreInit; - pScrn->ScreenInit = VBOXScreenInit; - pScrn->SwitchMode = VBOXSwitchMode; - pScrn->AdjustFrame = VBOXAdjustFrame; - pScrn->EnterVT = VBOXEnterVT; - pScrn->LeaveVT = VBOXLeaveVT; - pScrn->FreeScreen = VBOXFreeScreen; - foundScreen = TRUE; - } - } - } - free(usedChips); - } + numUsed = xf86MatchPciInstances(VBOX_NAME, VBOX_VENDORID, + VBOXChipsets, VBOXPCIchipsets, + devSections, numDevSections, + drv, &usedChips); + if (numUsed > 0) + { + if (flags & PROBE_DETECT) + foundScreen = TRUE; + else + for (i = 0; i < numUsed; i++) + { + ScrnInfoPtr pScrn = NULL; + /* Allocate a ScrnInfoRec */ + if ((pScrn = xf86ConfigPciEntity(pScrn,0,usedChips[i], + VBOXPCIchipsets,NULL, + NULL,NULL,NULL,NULL))) + { + setScreenFunctions(pScrn, VBOXProbe); + foundScreen = TRUE; + } + } + free(usedChips); + } } - free(devSections); - return (foundScreen); } #endif -/** - * This function hooks into the chain that is called when framebuffer access - * is allowed or disallowed by a call to EnableDisableFBAccess in the server. - * In other words, it observes when the server wishes access to the - * framebuffer to be enabled and when it should be disabled. We need to know - * this because we disable access ourselves during mode switches (presumably - * the server should do this but it doesn't) and want to know whether to - * restore it or not afterwards. - */ -static void -vboxEnableDisableFBAccess(int scrnIndex, Bool enable) -{ - ScrnInfoPtr pScrn = xf86Screens[scrnIndex]; - VBOXPtr pVBox = VBOXGetRec(pScrn); - - TRACE_LOG("enable=%s\n", enable ? "TRUE" : "FALSE"); - pVBox->accessEnabled = enable; - pVBox->EnableDisableFBAccess(scrnIndex, enable); - TRACE_EXIT(); -} /* * QUOTE from the XFree86 DESIGN document: @@ -727,6 +803,7 @@ VBOX_VERSION_STRING "\n"); /* Get our private data from the ScrnInfoRec structure. */ + VBOXSetRec(pScrn); pVBox = VBOXGetRec(pScrn); if (!pVBox) return FALSE; @@ -906,10 +983,9 @@ * * End QUOTE. */ -static Bool -VBOXScreenInit(int scrnIndex, ScreenPtr pScreen, int argc, char **argv) +static Bool VBOXScreenInit(ScreenPtr pScreen, int argc, char **argv) { - ScrnInfoPtr pScrn = xf86Screens[scrnIndex]; + ScrnInfoPtr pScrn = xf86ScreenToScrn(pScreen); VBOXPtr pVBox = VBOXGetRec(pScrn); VisualPtr visual; unsigned flags; @@ -931,7 +1007,7 @@ return (FALSE); #ifdef VBOX_DRI - pVBox->useDRI = VBOXDRIScreenInit(scrnIndex, pScreen, pVBox); + pVBox->useDRI = VBOXDRIScreenInit(pScrn, pScreen, pVBox); #endif if (!fbScreenInit(pScreen, pVBox->base, @@ -958,11 +1034,7 @@ fbPictureInit(pScreen, 0, 0); xf86SetBlackWhitePixels(pScreen); - - /* We need to keep track of whether we are currently switched to a virtual - * terminal to know whether a mode set operation is currently safe to do. - */ - pVBox->vtSwitch = FALSE; + pScrn->vtSema = TRUE; if (vbox_open (pScrn, pScreen, pVBox)) { vboxEnableVbva(pScrn); @@ -1041,6 +1113,13 @@ pScrn->currentMode->VDisplay, pScrn->frameX0, pScrn->frameY0)) return FALSE; + /* Save the size in case we need to re-set it later. */ + pVBox->FBSize.cx = pScrn->currentMode->HDisplay; + pVBox->FBSize.cy = pScrn->currentMode->VDisplay; + pVBox->aScreenLocation[0].cx = pScrn->currentMode->HDisplay; + pVBox->aScreenLocation[0].cy = pScrn->currentMode->VDisplay; + pVBox->aScreenLocation[0].x = pScrn->frameX0; + pVBox->aScreenLocation[0].y = pScrn->frameY0; /* And make sure that a non-current dynamic mode is at the front of the * list */ vboxWriteHostModes(pScrn, pScrn->currentMode); @@ -1056,15 +1135,8 @@ if(!xf86HandleColormaps(pScreen, 256, 8, vboxLoadPalette, NULL, 0)) return (FALSE); - /* Hook our observer function ito the chain which is called when - * framebuffer access is enabled or disabled in the server, and - * assume an initial state of enabled. */ - pVBox->accessEnabled = TRUE; - pVBox->EnableDisableFBAccess = pScrn->EnableDisableFBAccess; - pScrn->EnableDisableFBAccess = vboxEnableDisableFBAccess; - pVBox->CloseScreen = pScreen->CloseScreen; - pScreen->CloseScreen = VBOXCloseScreen; + pScreen->CloseScreen = SCRNINDEXAPI(VBOXCloseScreen); #ifdef VBOXVIDEO_13 pScreen->SaveScreen = xf86SaveScreen; #else @@ -1084,7 +1156,7 @@ xf86ShowUnusedOptions(pScrn->scrnIndex, pScrn->options); if (vbox_cursor_init(pScreen) != TRUE) - xf86DrvMsg(scrnIndex, X_ERROR, + xf86DrvMsg(pScrn->scrnIndex, X_ERROR, "Unable to start the VirtualBox mouse pointer integration with the host system.\n"); #ifdef VBOX_DRI @@ -1094,21 +1166,21 @@ return (TRUE); } -static Bool -VBOXEnterVT(int scrnIndex, int flags) +static Bool VBOXEnterVT(ScrnInfoPtr pScrn) { - ScrnInfoPtr pScrn = xf86Screens[scrnIndex]; VBOXPtr pVBox = VBOXGetRec(pScrn); TRACE_ENTRY(); vboxClearVRAM(pScrn, 0, 0); if (pVBox->fHaveHGSMI) vboxEnableVbva(pScrn); - pVBox->vtSwitch = FALSE; #ifdef VBOX_DRI if (pVBox->useDRI) - DRIUnlock(screenInfo.screens[scrnIndex]); + DRIUnlock(xf86ScrnToScreen(pScrn)); #endif + /* Re-assert this in case we had a change request while switched out. */ + if (pVBox->FBSize.cx && pVBox->FBSize.cy) + VBOXAdjustScreenPixmap(pScrn, pVBox->FBSize.cx, pVBox->FBSize.cy); #ifdef VBOXVIDEO_13 if (!xf86SetDesiredModes(pScrn)) return FALSE; @@ -1121,14 +1193,11 @@ return TRUE; } -static void -VBOXLeaveVT(int scrnIndex, int flags) +static void VBOXLeaveVT(ScrnInfoPtr pScrn) { - ScrnInfoPtr pScrn = xf86Screens[scrnIndex]; VBOXPtr pVBox = VBOXGetRec(pScrn); TRACE_ENTRY(); - pVBox->vtSwitch = TRUE; if (pVBox->fHaveHGSMI) vboxDisableVbva(pScrn); vboxClearVRAM(pScrn, 0, 0); @@ -1136,21 +1205,24 @@ vboxDisableGraphicsCap(pVBox); #ifdef VBOX_DRI if (pVBox->useDRI) - DRILock(screenInfo.screens[scrnIndex], 0); + DRILock(xf86ScrnToScreen(pScrn), 0); #endif TRACE_EXIT(); } -static Bool -VBOXCloseScreen(int scrnIndex, ScreenPtr pScreen) +static Bool VBOXCloseScreen(ScreenPtr pScreen) { - ScrnInfoPtr pScrn = xf86Screens[scrnIndex]; + ScrnInfoPtr pScrn = xf86ScreenToScrn(pScreen); VBOXPtr pVBox = VBOXGetRec(pScrn); - if (pVBox->fHaveHGSMI) - vboxDisableVbva(pScrn); - vboxDisableGraphicsCap(pVBox); - vboxClearVRAM(pScrn, 0, 0); + if (pScrn->vtSema) + { + if (pVBox->fHaveHGSMI) + vboxDisableVbva(pScrn); + if (pScrn->vtSema) + vboxDisableGraphicsCap(pVBox); + vboxClearVRAM(pScrn, 0, 0); + } #ifdef VBOX_DRI if (pVBox->useDRI) VBOXDRICloseScreen(pScreen, pVBox); @@ -1158,7 +1230,7 @@ #endif if (pScrn->vtSema) { - VBOXRestoreMode(xf86Screens[scrnIndex]); + VBOXRestoreMode(pScrn); VBOXUnmapVidMem(pScrn); } pScrn->vtSema = FALSE; @@ -1166,26 +1238,36 @@ /* Do additional bits which are separate for historical reasons */ vbox_close(pScrn, pVBox); - /* Remove our observer functions from the X server call chains. */ - pScrn->EnableDisableFBAccess = pVBox->EnableDisableFBAccess; pScreen->CloseScreen = pVBox->CloseScreen; - return pScreen->CloseScreen(scrnIndex, pScreen); +#ifndef XF86_SCRN_INTERFACE + return pScreen->CloseScreen(pScreen->myNum, pScreen); +#else + return pScreen->CloseScreen(pScreen); +#endif } -static Bool -VBOXSwitchMode(int scrnIndex, DisplayModePtr pMode, int flags) +static Bool VBOXSwitchMode(ScrnInfoPtr pScrn, DisplayModePtr pMode) { - ScrnInfoPtr pScrn; VBOXPtr pVBox; Bool rc; TRACE_LOG("HDisplay=%d, VDisplay=%d\n", pMode->HDisplay, pMode->VDisplay); - pScrn = xf86Screens[scrnIndex]; /* Why does X have three ways of referring to the screen? */ +#ifndef VBOXVIDEO_13 pVBox = VBOXGetRec(pScrn); - /* We want to disable access to the framebuffer before switching mode. - * After doing the switch, we allow access if it was allowed before. */ - if (pVBox->accessEnabled) - pVBox->EnableDisableFBAccess(scrnIndex, FALSE); + /* Save the size in case we need to re-set it later. */ + pVBox->FBSize.cx = pMode->HDisplay; + pVBox->FBSize.cy = pMode->VDisplay; + pVBox->aScreenLocation[0].cx = pMode->HDisplay; + pVBox->aScreenLocation[0].cy = pMode->VDisplay; + pVBox->aScreenLocation[0].x = pScrn->frameX0; + pVBox->aScreenLocation[0].y = pScrn->frameY0; +#endif + if (!pScrn->vtSema) + { + xf86DrvMsg(pScrn->scrnIndex, X_ERROR, + "We do not own the active VT, exiting.\n"); + return TRUE; + } #ifdef VBOXVIDEO_13 rc = xf86SetSingleMode(pScrn, pMode, 0); #else @@ -1201,31 +1283,32 @@ vboxSaveVideoMode(pScrn, pMode->HDisplay, pMode->VDisplay, pScrn->bitsPerPixel); #endif - if (pVBox->accessEnabled) - pVBox->EnableDisableFBAccess(scrnIndex, TRUE); TRACE_LOG("returning %s\n", rc ? "TRUE" : "FALSE"); return rc; } -static void -VBOXAdjustFrame(int scrnIndex, int x, int y, int flags) +static void VBOXAdjustFrame(ScrnInfoPtr pScrn, int x, int y) { - VBOXPtr pVBox = VBOXGetRec(xf86Screens[scrnIndex]); - ScrnInfoPtr pScrn = xf86Screens[scrnIndex]; + VBOXPtr pVBox = VBOXGetRec(pScrn); TRACE_ENTRY(); + pVBox->aScreenLocation[0].x = x; + pVBox->aScreenLocation[0].y = y; /* Don't fiddle with the hardware if we are switched * to a virtual terminal. */ + if (!pScrn->vtSema) + { + xf86DrvMsg(pScrn->scrnIndex, X_ERROR, + "We do not own the active VT, exiting.\n"); + return; + } VBOXSetMode(pScrn, 0, pVBox->aScreenLocation[0].cx, pVBox->aScreenLocation[0].cy, x, y); TRACE_EXIT(); } -static void -VBOXFreeScreen(int scrnIndex, int flags) +static void VBOXFreeScreen(ScrnInfoPtr pScrn) { - ScrnInfoPtr pScrn = xf86Screens[scrnIndex]; - /* Destroy the VGA hardware record */ vgaHWFreeHWRec(pScrn); /* And our private record */ diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Additions/x11/vboxvideo/vboxvideo_dri.c virtualbox-4.1.44-dfsg/src/VBox/Additions/x11/vboxvideo/vboxvideo_dri.c --- virtualbox-4.1.12-dfsg/src/VBox/Additions/x11/vboxvideo/vboxvideo_dri.c 2012-04-02 13:25:27.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Additions/x11/vboxvideo/vboxvideo_dri.c 2015-11-11 15:06:26.000000000 +0000 @@ -46,10 +46,15 @@ * Daryll Strauss */ +#include "xf86.h" #include "vboxvideo.h" #ifndef PCIACCESS # include "xf86Pci.h" #endif +#include +#include +#include +#include static Bool VBOXCreateContext(ScreenPtr pScreen, VisualPtr visual, @@ -155,11 +160,10 @@ } #endif -Bool VBOXDRIScreenInit(int scrnIndex, ScreenPtr pScreen, VBOXPtr pVBox) +Bool VBOXDRIScreenInit(ScrnInfoPtr pScrn, ScreenPtr pScreen, VBOXPtr pVBox) { DRIInfoPtr pDRIInfo = NULL; Bool rc = TRUE; - ScrnInfoPtr pScrn = xf86Screens[scrnIndex]; TRACE_ENTRY(); pVBox->drmFD = -1; diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Additions/x11/vboxvideo/vboxvideo.h virtualbox-4.1.44-dfsg/src/VBox/Additions/x11/vboxvideo/vboxvideo.h --- virtualbox-4.1.12-dfsg/src/VBox/Additions/x11/vboxvideo/vboxvideo.h 2012-04-02 13:25:27.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Additions/x11/vboxvideo/vboxvideo.h 2015-11-11 15:06:26.000000000 +0000 @@ -54,7 +54,6 @@ #include #include - #include #ifdef DEBUG @@ -101,37 +100,10 @@ #include #include -/* All drivers should typically include these */ -#include "xf86.h" -#include "xf86_OSproc.h" -#if GET_ABI_MAJOR(ABI_VIDEODRV_VERSION) < 6 -# include "xf86Resources.h" -#endif - -#include -#include "compiler.h" - -#ifndef PCIACCESS -/* Drivers for PCI hardware need this */ -# include "xf86PciInfo.h" -/* Drivers that need to access the PCI config space directly need this */ -# include "xf86Pci.h" -#endif - -/* ShadowFB support */ -#include "shadowfb.h" - -/* Dga definitions */ -#include "dgaproc.h" - -#if GET_ABI_MAJOR(ABI_VIDEODRV_VERSION) < 6 -# include "xf86RAC.h" -#endif - -#include "fb.h" +#include "xf86str.h" +#include "xf86Cursor.h" #define VBOX_VERSION 4000 /* Why? */ -#include "xf86Cursor.h" #define VBOX_NAME "VBoxVideo" #define VBOX_DRIVER_NAME "vboxvideo" @@ -146,7 +118,6 @@ #undef u_int64_t #include "sarea.h" #include "GL/glxint.h" -#include "GL/glxtokens.h" /* For some reason this is not in the header files. */ extern void GlxSetVisualConfigs(int nconfigs, __GLXvisualConfig *configs, @@ -188,8 +159,6 @@ CloseScreenProcPtr CloseScreen; /** Default X server procedure for enabling and disabling framebuffer access */ xf86EnableDisableFBAccessProc *EnableDisableFBAccess; - /** Is access to the framebuffer currently allowed? */ - Bool accessEnabled; OptionInfoPtr Options; /** @todo we never actually free this */ xf86CursorInfoPtr pCurs; @@ -197,9 +166,6 @@ Bool forceSWCursor; /** Do we know that the guest can handle absolute co-ordinates? */ Bool guestCanAbsolute; - /** Are we currently switched to a virtual terminal? If so, it is not - * safe to touch the hardware. */ - Bool vtSwitch; /** Does this host support sending graphics commands using HGSMI? */ Bool fHaveHGSMI; /** Number of screens attached */ @@ -207,6 +173,8 @@ /** Position information for each virtual screen for the purposes of * sending dirty rectangle information to the right one. */ RTRECT2 aScreenLocation[VBOX_VIDEO_MAX_SCREENS]; + /** The last requested framebuffer size. */ + RTRECTSIZE FBSize; /** Has this screen been disabled by the guest? */ Bool afDisabled[VBOX_VIDEO_MAX_SCREENS]; #ifdef VBOXVIDEO_13 @@ -263,7 +231,8 @@ uint32_t cyInit); /* DRI stuff */ -extern Bool VBOXDRIScreenInit(int scrnIndex, ScreenPtr pScreen, VBOXPtr pVBox); +extern Bool VBOXDRIScreenInit(ScrnInfoPtr pScrn, ScreenPtr pScreen, + VBOXPtr pVBox); extern Bool VBOXDRIFinishScreenInit(ScreenPtr pScreen); extern void VBOXDRIUpdateStride(ScrnInfoPtr pScrn, VBOXPtr pVBox); extern void VBOXDRICloseScreen(ScreenPtr pScreen, VBOXPtr pVBox); @@ -277,11 +246,6 @@ static inline VBOXPtr VBOXGetRec(ScrnInfoPtr pScrn) { - if (!pScrn->driverPrivate) - { - pScrn->driverPrivate = calloc(sizeof(VBOXRec), 1); - } - return ((VBOXPtr)pScrn->driverPrivate); } @@ -301,6 +265,7 @@ /** Calculate the display pitch from the scan line length */ static inline int32_t vboxDisplayPitch(ScrnInfoPtr pScrn, int32_t cbLine) { + /* take care to reference __udivdi3! */ return ASMDivU64ByU32RetU32((uint64_t)cbLine * 8, vboxBPP(pScrn)); } diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Additions/x11/vboxvideo/vbva.c virtualbox-4.1.44-dfsg/src/VBox/Additions/x11/vboxvideo/vbva.c --- virtualbox-4.1.12-dfsg/src/VBox/Additions/x11/vboxvideo/vbva.c 2012-04-02 13:25:27.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Additions/x11/vboxvideo/vbva.c 2015-11-11 15:06:26.000000000 +0000 @@ -27,6 +27,9 @@ #include #include "compiler.h" +/* ShadowFB support */ +#include "shadowfb.h" + #include "vboxvideo.h" /************************************************************************** @@ -52,7 +55,7 @@ unsigned j; pVBox = pScrn->driverPrivate; - if (pVBox->fHaveHGSMI == FALSE || pVBox->vtSwitch) + if (pVBox->fHaveHGSMI == FALSE || !pScrn->vtSema) return; for (i = 0; i < iRects; ++i) diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Debugger/DBGCCmdHlp.cpp virtualbox-4.1.44-dfsg/src/VBox/Debugger/DBGCCmdHlp.cpp --- virtualbox-4.1.12-dfsg/src/VBox/Debugger/DBGCCmdHlp.cpp 2012-04-02 13:28:20.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Debugger/DBGCCmdHlp.cpp 2015-11-11 15:08:05.000000000 +0000 @@ -761,7 +761,7 @@ break; case DBGCVAR_TYPE_NUMBER: u64Number = (uintptr_t)pVar->u.u64Number; - return VINF_SUCCESS; + break; case DBGCVAR_TYPE_GC_FAR: u64Number = (uintptr_t)pVar->u.GCFar.off; break; diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Debugger/DBGCEmulateCodeView.cpp virtualbox-4.1.44-dfsg/src/VBox/Debugger/DBGCEmulateCodeView.cpp --- virtualbox-4.1.12-dfsg/src/VBox/Debugger/DBGCEmulateCodeView.cpp 2012-04-02 13:28:20.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Debugger/DBGCEmulateCodeView.cpp 2015-11-11 15:08:05.000000000 +0000 @@ -311,16 +311,16 @@ { "dia", 0, ~0U, &g_aArgDumpIDT[0], RT_ELEMENTS(g_aArgDumpIDT), 0, dbgcCmdDumpIDT, "[int [..]]", "Dump the interrupt descriptor table (IDT) including not-present entries." }, { "dl", 0, ~0U, &g_aArgDumpDT[0], RT_ELEMENTS(g_aArgDumpDT), 0, dbgcCmdDumpDT, "[sel [..]]", "Dump the local descriptor table (LDT)." }, { "dla", 0, ~0U, &g_aArgDumpDT[0], RT_ELEMENTS(g_aArgDumpDT), 0, dbgcCmdDumpDT, "[sel [..]]", "Dump the local descriptor table (LDT) including not-present entries." }, - { "dpd", 0, 1, &g_aArgDumpPD[0], RT_ELEMENTS(g_aArgDumpPD), 0, dbgcCmdDumpPageDir, "[addr] [index]", "Dumps page directory entries of the default context." }, - { "dpda", 0, 1, &g_aArgDumpPDAddr[0],RT_ELEMENTS(g_aArgDumpPDAddr), 0, dbgcCmdDumpPageDir, "[addr]", "Dumps specified page directory." }, - { "dpdb", 1, 1, &g_aArgDumpPD[0], RT_ELEMENTS(g_aArgDumpPD), 0, dbgcCmdDumpPageDirBoth, "[addr] [index]", "Dumps page directory entries of the guest and the hypervisor. " }, - { "dpdg", 0, 1, &g_aArgDumpPD[0], RT_ELEMENTS(g_aArgDumpPD), 0, dbgcCmdDumpPageDir, "[addr] [index]", "Dumps page directory entries of the guest." }, - { "dpdh", 0, 1, &g_aArgDumpPD[0], RT_ELEMENTS(g_aArgDumpPD), 0, dbgcCmdDumpPageDir, "[addr] [index]", "Dumps page directory entries of the hypervisor. " }, + { "dpd", 0, 1, &g_aArgDumpPD[0], RT_ELEMENTS(g_aArgDumpPD), 0, dbgcCmdDumpPageDir, "[addr|index]", "Dumps page directory entries of the default context." }, + { "dpda", 0, 1, &g_aArgDumpPDAddr[0],RT_ELEMENTS(g_aArgDumpPDAddr), 0, dbgcCmdDumpPageDir, "[addr]", "Dumps memory at given address as a page directory." }, + { "dpdb", 0, 1, &g_aArgDumpPD[0], RT_ELEMENTS(g_aArgDumpPD), 0, dbgcCmdDumpPageDirBoth, "[addr|index]", "Dumps page directory entries of the guest and the hypervisor. " }, + { "dpdg", 0, 1, &g_aArgDumpPD[0], RT_ELEMENTS(g_aArgDumpPD), 0, dbgcCmdDumpPageDir, "[addr|index]", "Dumps page directory entries of the guest." }, + { "dpdh", 0, 1, &g_aArgDumpPD[0], RT_ELEMENTS(g_aArgDumpPD), 0, dbgcCmdDumpPageDir, "[addr|index]", "Dumps page directory entries of the hypervisor. " }, { "dph", 0, 3, &g_aArgDumpPH[0], RT_ELEMENTS(g_aArgDumpPH), 0, dbgcCmdDumpPageHierarchy, "[addr [cr3 [mode]]", "Dumps the paging hierarchy at for specfied address range. Default context." }, { "dphg", 0, 3, &g_aArgDumpPH[0], RT_ELEMENTS(g_aArgDumpPH), 0, dbgcCmdDumpPageHierarchy, "[addr [cr3 [mode]]", "Dumps the paging hierarchy at for specfied address range. Guest context." }, { "dphh", 0, 3, &g_aArgDumpPH[0], RT_ELEMENTS(g_aArgDumpPH), 0, dbgcCmdDumpPageHierarchy, "[addr [cr3 [mode]]", "Dumps the paging hierarchy at for specfied address range. Hypervisor context." }, { "dpt", 1, 1, &g_aArgDumpPT[0], RT_ELEMENTS(g_aArgDumpPT), 0, dbgcCmdDumpPageTable,"", "Dumps page table entries of the default context." }, - { "dpta", 1, 1, &g_aArgDumpPTAddr[0],RT_ELEMENTS(g_aArgDumpPTAddr), 0, dbgcCmdDumpPageTable,"", "Dumps specified page table." }, + { "dpta", 1, 1, &g_aArgDumpPTAddr[0],RT_ELEMENTS(g_aArgDumpPTAddr), 0, dbgcCmdDumpPageTable,"", "Dumps memory at given address as a page table." }, { "dptb", 1, 1, &g_aArgDumpPT[0], RT_ELEMENTS(g_aArgDumpPT), 0, dbgcCmdDumpPageTableBoth,"", "Dumps page table entries of the guest and the hypervisor." }, { "dptg", 1, 1, &g_aArgDumpPT[0], RT_ELEMENTS(g_aArgDumpPT), 0, dbgcCmdDumpPageTable,"", "Dumps page table entries of the guest." }, { "dpth", 1, 1, &g_aArgDumpPT[0], RT_ELEMENTS(g_aArgDumpPT), 0, dbgcCmdDumpPageTable,"", "Dumps page table entries of the hypervisor." }, @@ -2596,16 +2596,14 @@ } else if (paArgs[0].enmType == DBGCVAR_TYPE_NUMBER) { + /* If it's a number (not an address), it's an index, so convert it to an address. */ Assert(pCmd->pszCmd[3] != 'a'); VarDefault = paArgs[0]; - if (VarDefault.u.u64Number <= 1024) - { - if (fPAE) - return DBGCCmdHlpPrintf(pCmdHlp, "PDE indexing is only implemented for 32-bit paging.\n"); - if (VarDefault.u.u64Number >= PAGE_SIZE / cbEntry) - return DBGCCmdHlpPrintf(pCmdHlp, "PDE index is out of range [0..%d].\n", PAGE_SIZE / cbEntry - 1); - VarDefault.u.u64Number <<= X86_PD_SHIFT; - } + if (fPAE) + return DBGCCmdHlpPrintf(pCmdHlp, "PDE indexing is only implemented for 32-bit paging.\n"); + if (VarDefault.u.u64Number >= PAGE_SIZE / cbEntry) + return DBGCCmdHlpPrintf(pCmdHlp, "PDE index is out of range [0..%d].\n", PAGE_SIZE / cbEntry - 1); + VarDefault.u.u64Number <<= X86_PD_SHIFT; VarDefault.enmType = DBGCVAR_TYPE_GC_FLAT; paArgs = &VarDefault; } @@ -2711,7 +2709,6 @@ VarPDEAddr.u.u64Number += iEntry * sizeof(X86PDE); } cEntriesMax = (PAGE_SIZE - iEntry) / cbEntry; - iEntry /= cbEntry; } /* adjust cEntries */ @@ -3105,7 +3102,6 @@ VarPTEAddr.u.u64Number += iEntry * sizeof(X86PTE); } cEntriesMax = (PAGE_SIZE - iEntry) / cbEntry; - iEntry /= cbEntry; } /* adjust cEntries */ diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Debugger/VBoxDbgStatsQt4.cpp virtualbox-4.1.44-dfsg/src/VBox/Debugger/VBoxDbgStatsQt4.cpp --- virtualbox-4.1.12-dfsg/src/VBox/Debugger/VBoxDbgStatsQt4.cpp 2012-04-02 13:28:20.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Debugger/VBoxDbgStatsQt4.cpp 2015-11-11 15:08:06.000000000 +0000 @@ -354,6 +354,17 @@ static ssize_t getNodePath(PCDBGGUISTATSNODE pNode, char *psz, ssize_t cch); /** + * Calculates the full path of a node, returning the string pointer. + * + * @returns @a psz. On failure, NULL. + * + * @param pNode The node. + * @param psz The output buffer. + * @param cch The size of the buffer. + */ + static char *getNodePath2(PCDBGGUISTATSNODE pNode, char *psz, ssize_t cch); + + /** * Check if the first node is an ancestor to the second one. * * @returns true/false. @@ -1311,6 +1322,16 @@ } +/*static*/ char * +VBoxDbgStatsModel::getNodePath2(PCDBGGUISTATSNODE pNode, char *psz, ssize_t cch) +{ + if (VBoxDbgStatsModel::getNodePath(pNode, psz, cch) < 0) + return NULL; + return psz; +} + + + /*static*/ bool VBoxDbgStatsModel::isNodeAncestorOf(PCDBGGUISTATSNODE pAncestor, PCDBGGUISTATSNODE pDescendant) { @@ -1433,6 +1454,10 @@ PDBGGUISTATSNODE VBoxDbgStatsModel::updateCallbackHandleOutOfOrder(const char *pszName) { +#if defined(VBOX_STRICT) || defined(LOG_ENABLED) + char szStrict[1024]; +#endif + /* * We might be inserting a new node between pPrev and pNode * or we might be removing one or more nodes. Either case is @@ -1450,6 +1475,11 @@ */ PDBGGUISTATSNODE pNode = m_pUpdateParent->papChildren[m_iUpdateChild]; PDBGGUISTATSNODE const pPrev = prevDataNode(pNode); + AssertMsg(strcmp(pszName, getNodePath2(pNode, szStrict, sizeof(szStrict))), ("%s\n", szStrict)); + AssertMsg(strcmp(pszName, getNodePath2(pPrev, szStrict, sizeof(szStrict))), ("%s\n", szStrict)); + Log(("updateCallbackHandleOutOfOrder: pszName='%s' m_szUpdateParent='%s' m_cchUpdateParent=%u pNode='%s'\n", + pszName, m_szUpdateParent, m_cchUpdateParent, getNodePath2(pNode, szStrict, sizeof(szStrict)))); + pNode = pNode->pParent; while (pNode != m_pRoot) { @@ -1458,6 +1488,7 @@ Assert(m_cchUpdateParent > pNode->cchName); m_cchUpdateParent -= pNode->cchName + 1; m_szUpdateParent[m_cchUpdateParent] = '\0'; + Log2(("updateCallbackHandleOutOfOrder: m_szUpdateParent='%s' m_cchUpdateParent=%u, removed '/%s' (%u)\n", m_szUpdateParent, m_cchUpdateParent, pNode->pszName, __LINE__)); pNode = pNode->pParent; } Assert(m_szUpdateParent[m_cchUpdateParent - 1] == '/'); @@ -1469,7 +1500,7 @@ while (pszName[m_cchUpdateParent - 1] == '/') { /* Find the end of this component. */ - const char *const pszSubName = &pszName[m_cchUpdateParent]; + const char * const pszSubName = &pszName[m_cchUpdateParent]; const char *pszEnd = strchr(pszSubName, '/'); if (!pszEnd) pszEnd = strchr(pszSubName, '\0'); @@ -1481,6 +1512,7 @@ m_szUpdateParent[m_cchUpdateParent++] = '/'; m_szUpdateParent[m_cchUpdateParent] = '\0'; Assert(m_cchUpdateParent < sizeof(m_szUpdateParent)); + Log2(("updateCallbackHandleOutOfOrder: m_szUpdateParent='%s' m_cchUpdateParent=%u (%u)\n", m_szUpdateParent, m_cchUpdateParent, __LINE__)); if (!pNode->cChildren) { @@ -1570,6 +1602,7 @@ m_szUpdateParent[m_cchUpdateParent] = '\0'; m_pUpdateParent = pNode->pParent; m_iUpdateChild = pNode->iSelf; + Log2(("updateCallbackHandleOutOfOrder: m_szUpdateParent='%s' m_cchUpdateParent=%u (%u)\n", m_szUpdateParent, m_cchUpdateParent, __LINE__)); return pNode; } diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Devices/Audio/alsaaudio.c virtualbox-4.1.44-dfsg/src/VBox/Devices/Audio/alsaaudio.c --- virtualbox-4.1.12-dfsg/src/VBox/Devices/Audio/alsaaudio.c 2012-04-02 13:28:20.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Devices/Audio/alsaaudio.c 2015-11-11 15:08:06.000000000 +0000 @@ -29,14 +29,16 @@ #include #endif +#ifdef VBOX +# include "alsa_stubs.h" +# include "alsa_mangling.h" +#endif + #include #include "VBoxDD.h" #include "vl_vbox.h" #include "audio.h" -#ifdef VBOX -#include "alsa_stubs.h" -#endif #include #define AUDIO_CAP "alsa" diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Devices/Audio/alsa_mangling.h virtualbox-4.1.44-dfsg/src/VBox/Devices/Audio/alsa_mangling.h --- virtualbox-4.1.12-dfsg/src/VBox/Devices/Audio/alsa_mangling.h 1970-01-01 00:00:00.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Devices/Audio/alsa_mangling.h 2015-11-11 15:08:06.000000000 +0000 @@ -0,0 +1,55 @@ +/** @file + * + * Mangle libasound symbols. This is necessary on hosts which don't + * support the -fvisibility gcc switch. + */ + +/* + * Copyright (C) 2013 Oracle Corporation + * + * This file is part of VirtualBox Open Source Edition (OSE), as + * available from http://www.virtualbox.org. This file is free software; + * you can redistribute it and/or modify it under the terms of the GNU + * General Public License (GPL) as published by the Free Software + * Foundation, in version 2 as it comes in the "COPYING" file of the + * VirtualBox OSE distribution. VirtualBox OSE is distributed in the + * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind. + */ + +#ifndef AUDIO_ALSA_MANGLING_H +#define AUDIO_ALSA_MANGLING_H + +#define ALSA_MANGLER(symbol) VBox_##symbol + +#define snd_pcm_hw_params_any ALSA_MANGLER(snd_pcm_hw_params_any) +#define snd_pcm_close ALSA_MANGLER(snd_pcm_close) +#define snd_pcm_avail_update ALSA_MANGLER(snd_pcm_avail_update) +#define snd_pcm_hw_params_set_channels_near ALSA_MANGLER(snd_pcm_hw_params_set_channels_near) +#define snd_pcm_hw_params_set_period_time_near ALSA_MANGLER(snd_pcm_hw_params_set_period_time_near) +#define snd_pcm_prepare ALSA_MANGLER(snd_pcm_prepare) +#define snd_pcm_sw_params_sizeof ALSA_MANGLER(snd_pcm_sw_params_sizeof) +#define snd_pcm_hw_params_set_period_size_near ALSA_MANGLER(snd_pcm_hw_params_set_period_size_near) +#define snd_pcm_hw_params_get_period_size ALSA_MANGLER(snd_pcm_hw_params_get_period_size) +#define snd_pcm_hw_params ALSA_MANGLER(snd_pcm_hw_params) +#define snd_pcm_hw_params_sizeof ALSA_MANGLER(snd_pcm_hw_params_sizeof) +#define snd_pcm_state ALSA_MANGLER(snd_pcm_state) +#define snd_pcm_open ALSA_MANGLER(snd_pcm_open) +#define snd_lib_error_set_handler ALSA_MANGLER(snd_lib_error_set_handler) +#define snd_pcm_sw_params ALSA_MANGLER(snd_pcm_sw_params) +#define snd_pcm_hw_params_get_period_size_min ALSA_MANGLER(snd_pcm_hw_params_get_period_size_min) +#define snd_pcm_writei ALSA_MANGLER(snd_pcm_writei) +#define snd_pcm_readi ALSA_MANGLER(snd_pcm_readi) +#define snd_strerror ALSA_MANGLER(snd_strerror) +#define snd_pcm_drop ALSA_MANGLER(snd_pcm_drop) +#define snd_pcm_resume ALSA_MANGLER(snd_pcm_resume) +#define snd_pcm_hw_params_get_buffer_size ALSA_MANGLER(snd_pcm_hw_params_get_buffer_size) +#define snd_pcm_hw_params_set_rate_near ALSA_MANGLER(snd_pcm_hw_params_set_rate_near) +#define snd_pcm_hw_params_set_access ALSA_MANGLER(snd_pcm_hw_params_set_access) +#define snd_pcm_hw_params_set_buffer_time_near ALSA_MANGLER(snd_pcm_hw_params_set_buffer_time_near) +#define snd_pcm_hw_params_set_buffer_size_near ALSA_MANGLER(snd_pcm_hw_params_set_buffer_size_near) +#define snd_pcm_hw_params_get_buffer_size_min ALSA_MANGLER(snd_pcm_hw_params_get_buffer_size_min) +#define snd_pcm_hw_params_set_format ALSA_MANGLER(snd_pcm_hw_params_set_format) +#define snd_pcm_sw_params_current ALSA_MANGLER(snd_pcm_sw_params_current) +#define snd_pcm_sw_params_set_start_threshold ALSA_MANGLER(snd_pcm_sw_params_set_start_threshold) + +#endif /* !AUDIO_ALSA_MANGLING_H */ diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Devices/Audio/alsa_stubs.c virtualbox-4.1.44-dfsg/src/VBox/Devices/Audio/alsa_stubs.c --- virtualbox-4.1.12-dfsg/src/VBox/Devices/Audio/alsa_stubs.c 2012-04-02 13:28:20.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Devices/Audio/alsa_stubs.c 2015-11-11 15:08:06.000000000 +0000 @@ -30,7 +30,8 @@ #define PROXY_STUB(function, rettype, signature, shortsig) \ static rettype (*pfn_ ## function) signature; \ \ - rettype function signature \ + rettype VBox_##function signature; \ + rettype VBox_##function signature \ { \ return pfn_ ## function shortsig; \ } diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Devices/Audio/pulseaudio.c virtualbox-4.1.44-dfsg/src/VBox/Devices/Audio/pulseaudio.c --- virtualbox-4.1.12-dfsg/src/VBox/Devices/Audio/pulseaudio.c 2012-04-02 13:28:20.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Devices/Audio/pulseaudio.c 2015-11-11 15:08:07.000000000 +0000 @@ -23,8 +23,9 @@ #include #include -#include +#include "pulse_mangling.h" #include "pulse_stubs.h" +#include #include "vl_vbox.h" #include "audio.h" diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Devices/Audio/pulse_mangling.h virtualbox-4.1.44-dfsg/src/VBox/Devices/Audio/pulse_mangling.h --- virtualbox-4.1.12-dfsg/src/VBox/Devices/Audio/pulse_mangling.h 1970-01-01 00:00:00.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Devices/Audio/pulse_mangling.h 2015-11-11 15:08:07.000000000 +0000 @@ -0,0 +1,69 @@ +/** @file + * + * Mangle libpulse symbols. This is necessary on hosts which don't + * support the -fvisibility gcc switch. + */ + +/* + * Copyright (C) 2013 Oracle Corporation + * + * This file is part of VirtualBox Open Source Edition (OSE), as + * available from http://www.virtualbox.org. This file is free software; + * you can redistribute it and/or modify it under the terms of the GNU + * General Public License (GPL) as published by the Free Software + * Foundation, in version 2 as it comes in the "COPYING" file of the + * VirtualBox OSE distribution. VirtualBox OSE is distributed in the + * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind. + */ + +#ifndef AUDIO_PULSE_MANGLING_H +#define AUDIO_PULSE_MANGLING_H + +#define PULSE_MANGLER(symbol) VBox_##symbol + +#define pa_stream_connect_playback PULSE_MANGLER(pa_stream_connect_playback) +#define pa_stream_connect_record PULSE_MANGLER(pa_stream_connect_record) +#define pa_stream_disconnect PULSE_MANGLER(pa_stream_disconnect) +#define pa_stream_get_sample_spec PULSE_MANGLER(pa_stream_get_sample_spec) +#define pa_stream_set_latency_update_callback PULSE_MANGLER(pa_stream_set_latency_update_callback) +#define pa_stream_write PULSE_MANGLER(pa_stream_write) +#define pa_stream_unref PULSE_MANGLER(pa_stream_unref) +#define pa_stream_get_state PULSE_MANGLER(pa_stream_get_state) +#define pa_stream_set_state_callback PULSE_MANGLER(pa_stream_set_state_callback) +#define pa_stream_flush PULSE_MANGLER(pa_stream_flush) +#define pa_stream_drain PULSE_MANGLER(pa_stream_drain) +#define pa_stream_trigger PULSE_MANGLER(pa_stream_trigger) +#define pa_stream_new PULSE_MANGLER(pa_stream_new) +#define pa_stream_get_buffer_attr PULSE_MANGLER(pa_stream_get_buffer_attr) +#define pa_stream_peek PULSE_MANGLER(pa_stream_peek) +#define pa_stream_cork PULSE_MANGLER(pa_stream_cork) +#define pa_stream_drop PULSE_MANGLER(pa_stream_drop) +#define pa_stream_writable_size PULSE_MANGLER(pa_stream_writable_size) +#define pa_context_connect PULSE_MANGLER(pa_context_connect) +#define pa_context_disconnect PULSE_MANGLER(pa_context_disconnect) +#define pa_context_get_state PULSE_MANGLER(pa_context_get_state) +#define pa_context_unref PULSE_MANGLER(pa_context_unref) +#define pa_context_errno PULSE_MANGLER(pa_context_errno) +#define pa_context_new PULSE_MANGLER(pa_context_new) +#define pa_context_set_state_callback PULSE_MANGLER(pa_context_set_state_callback) +#define pa_threaded_mainloop_stop PULSE_MANGLER(pa_threaded_mainloop_stop) +#define pa_threaded_mainloop_get_api PULSE_MANGLER(pa_threaded_mainloop_get_api) +#define pa_threaded_mainloop_free PULSE_MANGLER(pa_threaded_mainloop_free) +#define pa_threaded_mainloop_signal PULSE_MANGLER(pa_threaded_mainloop_signal) +#define pa_threaded_mainloop_unlock PULSE_MANGLER(pa_threaded_mainloop_unlock) +#define pa_threaded_mainloop_new PULSE_MANGLER(pa_threaded_mainloop_new) +#define pa_threaded_mainloop_wait PULSE_MANGLER(pa_threaded_mainloop_wait) +#define pa_threaded_mainloop_start PULSE_MANGLER(pa_threaded_mainloop_start) +#define pa_threaded_mainloop_lock PULSE_MANGLER(pa_threaded_mainloop_lock) +#define pa_bytes_per_second PULSE_MANGLER(pa_bytes_per_second) +#define pa_frame_size PULSE_MANGLER(pa_frame_size) +#define pa_sample_format_to_string PULSE_MANGLER(pa_sample_format_to_string) +#define pa_sample_spec_valid PULSE_MANGLER(pa_sample_spec_valid) +#define pa_channel_map_init_auto PULSE_MANGLER(pa_channel_map_init_auto) +#define pa_operation_unref PULSE_MANGLER(pa_operation_unref) +#define pa_operation_get_state PULSE_MANGLER(pa_operation_get_state) +#define pa_operation_cancel PULSE_MANGLER(pa_operation_cancel) +#define pa_strerror PULSE_MANGLER(pa_strerror) +#define pa_stream_readable_size PULSE_MANGLER(pa_stream_readable_size) + +#endif /* !AUDIO_PULSE_MANGLING_H */ diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Devices/Audio/pulse_stubs.c virtualbox-4.1.44-dfsg/src/VBox/Devices/Audio/pulse_stubs.c --- virtualbox-4.1.12-dfsg/src/VBox/Devices/Audio/pulse_stubs.c 2012-04-02 13:28:20.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Devices/Audio/pulse_stubs.c 2015-11-11 15:08:07.000000000 +0000 @@ -30,7 +30,8 @@ #define PROXY_STUB(function, rettype, signature, shortsig) \ static rettype (*g_pfn_ ## function) signature; \ \ - rettype function signature \ + rettype VBox_##function signature; \ + rettype VBox_##function signature \ { \ return g_pfn_ ## function shortsig; \ } @@ -38,7 +39,8 @@ #define PROXY_STUB_VOID(function, signature, shortsig) \ static void (*g_pfn_ ## function) signature; \ \ - void function signature \ + void VBox_##function signature; \ + void VBox_##function signature \ { \ g_pfn_ ## function shortsig; \ } diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Devices/EFI/DevEFI.cpp virtualbox-4.1.44-dfsg/src/VBox/Devices/EFI/DevEFI.cpp --- virtualbox-4.1.12-dfsg/src/VBox/Devices/EFI/DevEFI.cpp 2012-04-02 13:28:21.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Devices/EFI/DevEFI.cpp 2015-11-11 15:08:07.000000000 +0000 @@ -570,6 +570,7 @@ if (pFfsFile->Type == FileType) { *pcbFile = FFS_SIZE(pFfsFile); + LogFunc(("Found %RTuuid of type:%d\n", &pFfsFile->Name, FileType)); return pFfsFile; } pFfsFile = (EFI_FFS_FILE_HEADER *)((uintptr_t)pFfsFile + RT_ALIGN(FFS_SIZE(pFfsFile), 8)); @@ -577,7 +578,7 @@ return NULL; } -static int efiFindEntryPoint(EFI_FFS_FILE_HEADER const *pFfsFile, uint32_t cbFfsFile, RTGCPHYS *pImageBase, uint8_t **ppbImage) +static int efiFindRelativeAddressOfEPAndBaseAddressOfModule(EFI_FFS_FILE_HEADER const *pFfsFile, uint32_t cbFfsFile, RTGCPHYS *pImageBase, uint8_t **ppbImage) { /* * Sections headers are lays at the beginning of block it describes, @@ -636,6 +637,8 @@ && pHdr->Nt32.FileHeader.SizeOfOptionalHeader == sizeof(pHdr->Nt64.OptionalHeader)), ("%x / %x\n", pHdr->Nt32.FileHeader.Machine, pHdr->Nt32.FileHeader.SizeOfOptionalHeader), VERR_LDR_ARCH_MISMATCH); + EFI_IMAGE_SECTION_HEADER *pSectionsHeaders = NULL; + int cSectionsHeaders = 0; if (pHdr->Nt32.FileHeader.Machine == EFI_IMAGE_FILE_MACHINE_I386) { Log2(("EFI: PE32/i386\n")); @@ -644,21 +647,38 @@ VERR_BAD_EXE_FORMAT); ImageBase = pHdr->Nt32.OptionalHeader.ImageBase; EpRVA = pHdr->Nt32.OptionalHeader.AddressOfEntryPoint; + EpRVA -= pHdr->Nt32.OptionalHeader.BaseOfCode; AssertLogRelMsgReturn(EpRVA < pHdr->Nt32.OptionalHeader.SizeOfImage, ("%#RGp / %#x\n", EpRVA, pHdr->Nt32.OptionalHeader.SizeOfImage), VERR_BAD_EXE_FORMAT); + pSectionsHeaders = (EFI_IMAGE_SECTION_HEADER *)((uint8_t *)&pHdr->Nt32.OptionalHeader + pHdr->Nt32.FileHeader.SizeOfOptionalHeader); + cSectionsHeaders = pHdr->Nt32.FileHeader.NumberOfSections; } else { - Log2(("EFI: PE+/AMD64\n")); + Log2(("EFI: PE+/AMD64 %RX16\n", pHdr->Nt32.FileHeader.Machine)); AssertLogRelMsgReturn(pHdr->Nt64.OptionalHeader.SizeOfImage < cbFfsFile, ("%#x / %#x\n", pHdr->Nt64.OptionalHeader.SizeOfImage, cbFfsFile), VERR_BAD_EXE_FORMAT); ImageBase = pHdr->Nt64.OptionalHeader.ImageBase; EpRVA = pHdr->Nt64.OptionalHeader.AddressOfEntryPoint; + EpRVA -= pHdr->Nt64.OptionalHeader.BaseOfCode; AssertLogRelMsgReturn(EpRVA < pHdr->Nt64.OptionalHeader.SizeOfImage, ("%#RGp / %#x\n", EpRVA, pHdr->Nt64.OptionalHeader.SizeOfImage), VERR_BAD_EXE_FORMAT); + pSectionsHeaders = (EFI_IMAGE_SECTION_HEADER *)((uint8_t *)&pHdr->Nt64.OptionalHeader + pHdr->Nt64.FileHeader.SizeOfOptionalHeader); + cSectionsHeaders = pHdr->Nt64.FileHeader.NumberOfSections; + } + AssertPtrReturn(pSectionsHeaders, VERR_BAD_EXE_FORMAT); + int idxSection = 0; + for (; idxSection < cSectionsHeaders; ++idxSection) + { + EFI_IMAGE_SECTION_HEADER *pSection = &pSectionsHeaders[idxSection]; + if (!RTStrCmp((const char *)&pSection->Name[0], ".text")) + { + EpRVA += pSection->PointerToRawData; + break; + } } } else if (pHdr->Te.Signature == RT_MAKE_U16('V', 'Z')) @@ -683,7 +703,7 @@ *pImageBase = ImageBase; if (ppbImage != NULL) *ppbImage = (uint8_t *)pbImage; - return ImageBase + EpRVA; + return (EpRVA); } /** @@ -727,14 +747,17 @@ pFfsFile = efiFwVolFindFileByType(pFfsFile, pbFwVolEnd, EFI_FV_FILETYPE_SECURITY_CORE, &cbFfsFile); AssertLogRelMsgReturn(pFfsFile, ("No SECURITY_CORE found in the firmware volume\n"), VERR_FILE_NOT_FOUND); - RTGCPHYS ImageBase; - uint8_t *pbImage; - pThis->GCEntryPoint0 = efiFindEntryPoint(pFfsFile, cbFfsFile, &ImageBase, &pbImage); - + RTGCPHYS ImageBase = NIL_RTGCPHYS; + uint8_t *pbImage = NULL; + pThis->GCEntryPoint0 = efiFindRelativeAddressOfEPAndBaseAddressOfModule(pFfsFile, cbFfsFile, &ImageBase, &pbImage); + pThis->GCEntryPoint0 += pbImage - pThis->pu8EfiRom; + Assert(pThis->pu8EfiRom <= pbImage); + Assert(pbImage < pThis->pu8EfiRom + pThis->cbEfiRom); /* * Calc the firmware load address from the image base and validate it. */ pThis->GCLoadAddress = ImageBase - (pbImage - pThis->pu8EfiRom); + pThis->GCEntryPoint0 += pThis->GCLoadAddress; AssertLogRelMsgReturn(~(pThis->GCLoadAddress & PAGE_OFFSET_MASK), ("%RGp\n", pThis->GCLoadAddress), VERR_INVALID_PARAMETER); @@ -750,7 +773,9 @@ pThis->GCLoadAddress, ImageBase, pThis->GCEntryPoint0)); pFfsFile = efiFwVolFindFileByType(pFfsFile, pbFwVolEnd, EFI_FV_FILETYPE_PEI_CORE, &cbFfsFile); - pThis->GCEntryPoint1 = efiFindEntryPoint(pFfsFile, cbFfsFile, NULL, NULL); + pThis->GCEntryPoint1 = efiFindRelativeAddressOfEPAndBaseAddressOfModule(pFfsFile, cbFfsFile, NULL, &pbImage); + pThis->GCEntryPoint1 += pThis->GCLoadAddress; + pThis->GCEntryPoint1 += pbImage - pThis->pu8EfiRom; LogRel(("EFI: Firmware volume loading at %RGp, PEI CORE at with EP at %RGp\n", pThis->GCLoadAddress, pThis->GCEntryPoint1)); return VINF_SUCCESS; @@ -804,8 +829,9 @@ cbQuart, PGMPHYS_ROM_FLAGS_SHADOWED | PGMPHYS_ROM_FLAGS_PERMANENT_BINARY, "EFI Firmware Volume"); - if (RT_FAILURE(rc)) - return rc; + AssertRCReturn(rc, rc); + rc = PDMDevHlpROMProtectShadow(pThis->pDevIns, pThis->GCLoadAddress, (uint32_t)cbQuart, PGMROMPROT_READ_RAM_WRITE_IGNORE); + AssertRCReturn(rc, rc); rc = PDMDevHlpROMRegister(pThis->pDevIns, pThis->GCLoadAddress + cbQuart, cbQuart, diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Devices/EFI/Firmware2/VBoxPkg/env.cmd virtualbox-4.1.44-dfsg/src/VBox/Devices/EFI/Firmware2/VBoxPkg/env.cmd --- virtualbox-4.1.12-dfsg/src/VBox/Devices/EFI/Firmware2/VBoxPkg/env.cmd 2012-04-02 13:28:25.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Devices/EFI/Firmware2/VBoxPkg/env.cmd 2015-11-11 15:08:10.000000000 +0000 @@ -6,16 +6,16 @@ REM */ REM /* -REM Copyright (C) 2009 Oracle Corporation -REM -REM This file is part of VirtualBox Open Source Edition (OSE), as -REM available from http://www.virtualbox.org. This file is free software; -REM you can redistribute it and/or modify it under the terms of the GNU -REM General Public License (GPL) as published by the Free Software -REM Foundation, in version 2 as it comes in the "COPYING" file of the -REM VirtualBox OSE distribution. VirtualBox OSE is distributed in the -REM hope that it will be useful, but WITHOUT ANY WARRANTY of any kind. -REM +REM Copyright (C) 2009 Oracle Corporation +REM +REM This file is part of VirtualBox Open Source Edition (OSE), as +REM available from http://www.virtualbox.org. This file is free software; +REM you can redistribute it and/or modify it under the terms of the GNU +REM General Public License (GPL) as published by the Free Software +REM Foundation, in version 2 as it comes in the "COPYING" file of the +REM VirtualBox OSE distribution. VirtualBox OSE is distributed in the +REM hope that it will be useful, but WITHOUT ANY WARRANTY of any kind. +REM REM */ rem Binary files /tmp/_RuVdsxfi6/virtualbox-4.1.12-dfsg/src/VBox/Devices/EFI/FirmwareBin/VBoxEFI32.fd and /tmp/SOL6sj7OaT/virtualbox-4.1.44-dfsg/src/VBox/Devices/EFI/FirmwareBin/VBoxEFI32.fd differ Binary files /tmp/_RuVdsxfi6/virtualbox-4.1.12-dfsg/src/VBox/Devices/EFI/FirmwareBin/VBoxEFI64.fd and /tmp/SOL6sj7OaT/virtualbox-4.1.44-dfsg/src/VBox/Devices/EFI/FirmwareBin/VBoxEFI64.fd differ diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Devices/Graphics/BIOS/Makefile.kmk virtualbox-4.1.44-dfsg/src/VBox/Devices/Graphics/BIOS/Makefile.kmk --- virtualbox-4.1.12-dfsg/src/VBox/Devices/Graphics/BIOS/Makefile.kmk 2012-04-02 13:28:25.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Devices/Graphics/BIOS/Makefile.kmk 2015-11-11 15:08:10.000000000 +0000 @@ -27,7 +27,7 @@ # Build program for calculating the VGA BIOS checksums. # BLDPROGS += vbetables-gen -vbetables-gen_TEMPLATE = VBOXBLDPROG +vbetables-gen_TEMPLATE = VBoxBldProg vbetables-gen_SOURCES = vbetables-gen.c # diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Devices/Graphics/BIOS/vgabios.c virtualbox-4.1.44-dfsg/src/VBox/Devices/Graphics/BIOS/vgabios.c --- virtualbox-4.1.12-dfsg/src/VBox/Devices/Graphics/BIOS/vgabios.c 2012-04-02 13:28:26.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Devices/Graphics/BIOS/vgabios.c 2015-11-11 15:08:11.000000000 +0000 @@ -1747,8 +1747,13 @@ push bx push cx push dx + push ds + mov dx, # BIOSMEM_SEG + mov ds, dx mov dx, # VGAREG_ACTL_RESET in al, dx + cmp byte ptr [ BIOSMEM_CURRENT_MODE ], #0x03 + jbe set_border_done mov dx, # VGAREG_ACTL_ADDRESS mov al, #0x00 out dx, al @@ -1774,12 +1779,14 @@ inc cl cmp cl, #0x04 jne set_intensity_loop +set_border_done: mov al, #0x20 out dx, al #ifdef VBOX mov dx, # VGAREG_ACTL_RESET in al, dx #endif /* VBOX */ + pop ds pop dx pop cx pop bx diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Devices/Graphics/DevVGA.cpp virtualbox-4.1.44-dfsg/src/VBox/Devices/Graphics/DevVGA.cpp --- virtualbox-4.1.12-dfsg/src/VBox/Devices/Graphics/DevVGA.cpp 2012-04-02 13:28:26.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Devices/Graphics/DevVGA.cpp 2015-11-11 15:08:11.000000000 +0000 @@ -1219,7 +1219,7 @@ ret = s->CTX_SUFF(vram_ptr)[off]; } else { /* standard VGA latched access */ - VERIFY_VRAM_READ_OFF_RETURN(s, addr, *prc); + VERIFY_VRAM_READ_OFF_RETURN(s, addr * 4 + 3, *prc); s->latch = ((uint32_t *)s->CTX_SUFF(vram_ptr))[addr]; if (!(s->gr[5] & 0x08)) { @@ -1795,7 +1795,7 @@ cx_max_upd = -1; cx_min_upd = width; - for(cy = 0; cy < height; cy = cy + (1 << dscan)) { + for(cy = 0; cy < (height - dscan); cy = cy + (1 << dscan)) { d1 = dest; src = s1; cx_min = width; @@ -3042,7 +3042,7 @@ } } else if (pThis->gr[5] & 0x10) { /* odd/even mode (aka text mode mapping) */ - VERIFY_VRAM_WRITE_OFF_RETURN(pThis, GCPhysAddr * 2 + cItems * cbItem - 1); + VERIFY_VRAM_WRITE_OFF_RETURN(pThis, (GCPhysAddr + cItems * cbItem) * 4 - 1); while (cItems-- > 0) for (i = 0; i < cbItem; i++) { @@ -3056,7 +3056,7 @@ } } else { /* standard VGA latched access */ - VERIFY_VRAM_WRITE_OFF_RETURN(pThis, GCPhysAddr + cItems * cbItem - 1); + VERIFY_VRAM_WRITE_OFF_RETURN(pThis, (GCPhysAddr + cItems * cbItem) * 4 - 1); switch(pThis->gr[5] & 3) { default: diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Devices/Graphics/DevVGA_VBVA.cpp virtualbox-4.1.44-dfsg/src/VBox/Devices/Graphics/DevVGA_VBVA.cpp --- virtualbox-4.1.12-dfsg/src/VBox/Devices/Graphics/DevVGA_VBVA.cpp 2012-04-02 13:28:26.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Devices/Graphics/DevVGA_VBVA.cpp 2015-11-11 15:08:11.000000000 +0000 @@ -376,6 +376,9 @@ LOGVBVABUFFER(("cbCmd = %d, x=%d, y=%d, w=%d, h=%d\n", cbCmd, phdr->x, phdr->y, phdr->w, phdr->h)); + LogRel3(("%s: update command cbCmd = %d, x=%d, y=%d, w=%d, h=%d\n", + __PRETTY_FUNCTION__, cbCmd, phdr->x, phdr->y, phdr->w, + phdr->h)); /* Collect all rects into one. */ if (fDirtyEmpty) @@ -419,6 +422,10 @@ { if (dirtyRect.xRight - dirtyRect.xLeft) { + LogRel3(("%s: sending update screen=%d, x=%d, y=%d, w=%d, h=%d\n", + __PRETTY_FUNCTION__, uScreenId, dirtyRect.xLeft, + dirtyRect.yTop, dirtyRect.xRight - dirtyRect.xLeft, + dirtyRect.yBottom - dirtyRect.yTop)); pVGAState->pDrv->pfnVBVAUpdateEnd (pVGAState->pDrv, uScreenId, dirtyRect.xLeft, dirtyRect.yTop, dirtyRect.xRight - dirtyRect.xLeft, dirtyRect.yBottom - dirtyRect.yTop); } @@ -613,6 +620,13 @@ if (fShape) { + if (pShape->u32Width > 8192 || pShape->u32Height > 8192) + { + Log(("vbvaMousePointerShape: unsupported size %ux%u\n", + pShape->u32Width, pShape->u32Height)); + return VERR_INVALID_PARAMETER; + } + cbPointerData = ((((pShape->u32Width + 7) / 8) * pShape->u32Height + 3) & ~3) + pShape->u32Width * 4 * pShape->u32Height; } @@ -1754,25 +1768,27 @@ } /* Guest submits an array of VBVAINFOVIEW structures. */ - VBVAINFOVIEW *pView = (VBVAINFOVIEW *)pvBuffer; + VBVAINFOVIEW *pVw = (VBVAINFOVIEW *)pvBuffer; for (; cbBuffer >= sizeof (VBVAINFOVIEW); - pView++, cbBuffer -= sizeof (VBVAINFOVIEW)) + pVw++, cbBuffer -= sizeof (VBVAINFOVIEW)) { + VBVAINFOVIEW View = *pVw; + LogFlowFunc(("VBVA_INFO_VIEW: index %d, offset 0x%x, size 0x%x, max screen size 0x%x\n", - pView->u32ViewIndex, pView->u32ViewOffset, pView->u32ViewSize, pView->u32MaxScreenSize)); + View.u32ViewIndex, View.u32ViewOffset, View.u32ViewSize, View.u32MaxScreenSize)); /* @todo verify view data. */ - if (pView->u32ViewIndex >= pCtx->cViews) + if (View.u32ViewIndex >= pCtx->cViews) { Log(("View index too large %d!!!\n", - pView->u32ViewIndex)); + View.u32ViewIndex)); rc = VERR_INVALID_PARAMETER; break; } - pCtx->aViews[pView->u32ViewIndex].view = *pView; + pCtx->aViews[View.u32ViewIndex].view = View; } } break; @@ -1814,37 +1830,38 @@ break; } - VBVAINFOSCREEN *pScreen = (VBVAINFOSCREEN *)pvBuffer; - VBVAINFOVIEW *pView = &pCtx->aViews[pScreen->u32ViewIndex].view; + VBVAINFOSCREEN *pScr = (VBVAINFOSCREEN *)pvBuffer; + VBVAINFOSCREEN Screen = *pScr; + VBVAINFOVIEW *pView = &pCtx->aViews[Screen.u32ViewIndex].view; /* Calculate the offset of the end of the screen so we can make * sure it is inside the view. I assume that screen rollover is not * implemented. */ - int64_t offEnd = (int64_t)pScreen->u32Height * pScreen->u32LineSize - + pScreen->u32Width + pScreen->u32StartOffset; - LogFlowFunc(("VBVA_INFO_SCREEN: [%d] @%d,%d %dx%d, line 0x%x, BPP %d, flags 0x%x\n", - pScreen->u32ViewIndex, pScreen->i32OriginX, pScreen->i32OriginY, - pScreen->u32Width, pScreen->u32Height, - pScreen->u32LineSize, pScreen->u16BitsPerPixel, pScreen->u16Flags)); - - if ( pScreen->u32ViewIndex < RT_ELEMENTS (pCtx->aViews) - && pScreen->u16BitsPerPixel <= 32 - && pScreen->u32Width <= UINT16_MAX - && pScreen->u32Height <= UINT16_MAX - && pScreen->u32LineSize <= UINT16_MAX * 4 + int64_t offEnd = (int64_t)Screen.u32Height * Screen.u32LineSize + + Screen.u32Width + Screen.u32StartOffset; + LogRel(("VBVA_INFO_SCREEN: [%d] @%d,%d %dx%d, line 0x%x, BPP %d, flags 0x%x\n", + Screen.u32ViewIndex, Screen.i32OriginX, Screen.i32OriginY, + Screen.u32Width, Screen.u32Height, + Screen.u32LineSize, Screen.u16BitsPerPixel, Screen.u16Flags)); + + if ( Screen.u32ViewIndex < RT_ELEMENTS (pCtx->aViews) + && Screen.u16BitsPerPixel <= 32 + && Screen.u32Width <= UINT16_MAX + && Screen.u32Height <= UINT16_MAX + && Screen.u32LineSize <= UINT16_MAX * 4 && offEnd < pView->u32MaxScreenSize) { - vbvaResize (pVGAState, &pCtx->aViews[pScreen->u32ViewIndex], pScreen); + vbvaResize (pVGAState, &pCtx->aViews[Screen.u32ViewIndex], &Screen); } else { - Log(("VBVA_INFO_SCREEN [%lu]: bad data: %lux%lu, line 0x%lx, BPP %u, start offset %lu, max screen size %lu\n", - (unsigned long)pScreen->u32ViewIndex, - (unsigned long)pScreen->u32Width, - (unsigned long)pScreen->u32Height, - (unsigned long)pScreen->u32LineSize, - (unsigned long)pScreen->u16BitsPerPixel, - (unsigned long)pScreen->u32StartOffset, - (unsigned long)pView->u32MaxScreenSize)); + LogRelFlow(("VBVA_INFO_SCREEN [%lu]: bad data: %lux%lu, line 0x%lx, BPP %u, start offset %lu, max screen size %lu\n", + (unsigned long)Screen.u32ViewIndex, + (unsigned long)Screen.u32Width, + (unsigned long)Screen.u32Height, + (unsigned long)Screen.u32LineSize, + (unsigned long)Screen.u16BitsPerPixel, + (unsigned long)Screen.u32StartOffset, + (unsigned long)pView->u32MaxScreenSize)); rc = VERR_INVALID_PARAMETER; } } break; diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Devices/Graphics/DevVGA_VDMA.cpp virtualbox-4.1.44-dfsg/src/VBox/Devices/Graphics/DevVGA_VDMA.cpp --- virtualbox-4.1.12-dfsg/src/VBox/Devices/Graphics/DevVGA_VDMA.cpp 2012-04-02 13:28:26.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Devices/Graphics/DevVGA_VDMA.cpp 2015-11-11 15:08:11.000000000 +0000 @@ -158,7 +158,8 @@ static int vboxVDMACrCtlPostAsync (PVGASTATE pVGAState, PVBOXVDMACMD_CHROMIUM_CTL pCmd, uint32_t cbCmd, PFNVBOXVDMACRCTL_CALLBACK pfnCompletion, void *pvCompletion) { - if (pVGAState->pDrv->pfnCrHgsmiControlProcess) + if ( pVGAState->pDrv + && pVGAState->pDrv->pfnCrHgsmiControlProcess) { PVBOXVDMACMD_CHROMIUM_CTL_PRIVATE pHdr = VBOXVDMACMD_CHROMIUM_CTL_PRIVATE_FROM_CTL(pCmd); pHdr->pfnCompletion = pfnCompletion; diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Devices/Input/DevPS2.cpp virtualbox-4.1.44-dfsg/src/VBox/Devices/Input/DevPS2.cpp --- virtualbox-4.1.12-dfsg/src/VBox/Devices/Input/DevPS2.cpp 2012-04-02 13:28:26.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Devices/Input/DevPS2.cpp 2015-11-11 15:08:11.000000000 +0000 @@ -543,6 +543,7 @@ #ifndef IN_RING3 rc = VINF_IOM_HC_IOPORT_WRITE; #else /* IN_RING3 */ + LogRel(("Reset initiated by keyboard controller\n")); rc = PDMDevHlpVMReset(s->CTX_SUFF(pDevIns)); #endif /* !IN_RING3 */ break; diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Devices/Input/UsbMouse.cpp virtualbox-4.1.44-dfsg/src/VBox/Devices/Input/UsbMouse.cpp --- virtualbox-4.1.12-dfsg/src/VBox/Devices/Input/UsbMouse.cpp 2012-04-02 13:28:26.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Devices/Input/UsbMouse.cpp 2015-11-11 15:08:11.000000000 +0000 @@ -146,12 +146,13 @@ /** Signalled when adding an URB to the done queue and fHaveDoneQueueWaiter * is set. */ RTSEMEVENT hEvtDoneQueue; + /** Someone is waiting on the done queue. */ bool fHaveDoneQueueWaiter; - + /** If device has pending changes. */ + bool fHasPendingChanges; /** Is this an absolute pointing device (tablet)? Relative (mouse) otherwise. */ bool isAbsolute; - /** Tablet coordinate shift factor for old and broken operating systems. */ uint8_t u8CoordShift; @@ -201,6 +202,15 @@ uint16_t cy; } USBHIDT_REPORT, *PUSBHIDT_REPORT; +/** + * The combined USB HID report union for relative and absolute device. + */ +typedef union USBHIDTM_REPORT +{ + USBHIDT_REPORT t; + USBHIDM_REPORT m; +} USBHIDTM_REPORT, *PUSBHIDTM_REPORT; + /******************************************************************************* * Global Variables * *******************************************************************************/ @@ -668,6 +678,7 @@ * Reset the device state. */ pThis->enmState = USBHIDREQSTATE_READY; + pThis->fHasPendingChanges = false; for (unsigned i = 0; i < RT_ELEMENTS(pThis->aEps); i++) pThis->aEps[i].fHalted = false; @@ -690,6 +701,73 @@ return VINF_SUCCESS; } +static int8_t clamp_i8(int32_t val) +{ + if (val > 127) { + val = 127; + } else if (val < -127) { + val = -127; + } + return val; +} + +/** + * Create a USB HID report report based on the currently accumulated data. + */ +static size_t usbHidFillReport(PUSBHIDTM_REPORT pReport, PUSBHIDM_ACCUM pAccumulated, bool isAbsolute) +{ + size_t cbCopy; + + if (isAbsolute) + { + pReport->t.btn = pAccumulated->btn; + pReport->t.cx = pAccumulated->dX; + pReport->t.cy = pAccumulated->dY; + pReport->t.dz = clamp_i8(pAccumulated->dZ); + + cbCopy = sizeof(pReport->t); +// LogRel(("Abs movement, X=%d, Y=%d, dZ=%d, btn=%02x, report size %d\n", pReport->t.cx, pReport->t.cy, pReport->t.dz, pReport->t.btn, cbCopy)); + } + else + { + pReport->m.btn = pAccumulated->btn; + pReport->m.dx = clamp_i8(pAccumulated->dX); + pReport->m.dy = clamp_i8(pAccumulated->dY); + pReport->m.dz = clamp_i8(pAccumulated->dZ); + + cbCopy = sizeof(pReport->m); +// LogRel(("Rel movement, dX=%d, dY=%d, dZ=%d, btn=%02x, report size %d\n", pReport->m.dx, pReport->m.dy, pReport->m.dz, pReport->m.btn, cbCopy)); + } + + /* Clear the accumulated movement. */ + RT_ZERO(*pAccumulated); + + return cbCopy; +} + +/** + * Sends a state report to the host if there is a pending URB. + */ +static int usbHidSendReport(PUSBHID pThis) +{ + PVUSBURB pUrb = usbHidQueueRemoveHead(&pThis->ToHostQueue); + + if (pUrb) + { + PUSBHIDTM_REPORT pReport = (PUSBHIDTM_REPORT)&pUrb->abData[0]; + size_t cbCopy; + + cbCopy = usbHidFillReport(pReport, &pThis->PtrDelta, pThis->isAbsolute); + pThis->fHasPendingChanges = false; + return usbHidCompleteOk(pThis, pUrb, cbCopy); + } + else + { + Log2(("No available URB for USB mouse\n")); + pThis->fHasPendingChanges = true; + } + return VINF_EOF; +} /** * @interface_method_impl{PDMIBASE,pfnQueryInterface} @@ -702,16 +780,6 @@ return NULL; } -static int8_t clamp_i8(int32_t val) -{ - if (val > 127) { - val = 127; - } else if (val < -127) { - val = -127; - } - return val; -} - /** * Relative mouse event handler. * @@ -726,12 +794,7 @@ static DECLCALLBACK(int) usbHidMousePutEvent(PPDMIMOUSEPORT pInterface, int32_t i32DeltaX, int32_t i32DeltaY, int32_t i32DeltaZ, int32_t i32DeltaW, uint32_t fButtonStates) { PUSBHID pThis = RT_FROM_MEMBER(pInterface, USBHID, Lun0.IPort); -// int rc = PDMCritSectEnter(&pThis->CritSect, VERR_SEM_BUSY); -// AssertReleaseRC(rc); - - /* If we aren't in the expected mode, switch. This should only really need to be done once. */ -// if (pThis->isAbsolute) -// pThis->Lun0.pDrv->pfnAbsModeChange(pThis->Lun0.pDrv, pThis->isAbsolute); + RTCritSectEnter(&pThis->CritSect); /* Accumulate movement - the events from the front end may arrive * at a much higher rate than USB can handle. @@ -741,32 +804,10 @@ pThis->PtrDelta.dY += i32DeltaY; pThis->PtrDelta.dZ -= i32DeltaZ; /* Inverted! */ - /* Check if there's a URB waiting. If so, send a report. - */ - PVUSBURB pUrb = usbHidQueueRemoveHead(&pThis->ToHostQueue); - if (pUrb) - { - size_t cbCopy; - USBHIDM_REPORT report; - - //@todo: fix/extend - report.btn = pThis->PtrDelta.btn; - report.dx = clamp_i8(pThis->PtrDelta.dX); - report.dy = clamp_i8(pThis->PtrDelta.dY); - report.dz = clamp_i8(pThis->PtrDelta.dZ); - - cbCopy = sizeof(report); - memcpy(&pUrb->abData[0], &report, cbCopy); - - /* Clear the accumulated movement. */ - pThis->PtrDelta.dX = pThis->PtrDelta.dY = pThis->PtrDelta.dZ = 0; + /* Send a report if possible. */ + usbHidSendReport(pThis); - /* Complete the URB. */ - usbHidCompleteOk(pThis, pUrb, cbCopy); -// LogRel(("Rel movement, dX=%d, dY=%d, dZ=%d, btn=%02x, report size %d\n", report.dx, report.dy, report.dz, report.btn, cbCopy)); - } - -// PDMCritSectLeave(&pThis->CritSect); + RTCritSectLeave(&pThis->CritSect); return VINF_SUCCESS; } @@ -784,43 +825,24 @@ static DECLCALLBACK(int) usbHidMousePutEventAbs(PPDMIMOUSEPORT pInterface, uint32_t u32X, uint32_t u32Y, int32_t i32DeltaZ, int32_t i32DeltaW, uint32_t fButtonStates) { PUSBHID pThis = RT_FROM_MEMBER(pInterface, USBHID, Lun0.IPort); -// int rc = PDMCritSectEnter(&pThis->CritSect, VERR_SEM_BUSY); -// AssertReleaseRC(rc); + RTCritSectEnter(&pThis->CritSect); Assert(pThis->isAbsolute); /* Accumulate movement - the events from the front end may arrive * at a much higher rate than USB can handle. Probably not a real issue - * when only the Z axis is relative. + * when only the Z axis is relative (X/Y movement isn't technically + * accumulated and only the last value is used). */ pThis->PtrDelta.btn = fButtonStates; + pThis->PtrDelta.dX = u32X >> pThis->u8CoordShift; + pThis->PtrDelta.dY = u32Y >> pThis->u8CoordShift; pThis->PtrDelta.dZ -= i32DeltaZ; /* Inverted! */ - /* Check if there's a URB waiting. If so, send a report. - */ - PVUSBURB pUrb = usbHidQueueRemoveHead(&pThis->ToHostQueue); - if (pUrb) - { - size_t cbCopy; - USBHIDT_REPORT report; - - report.btn = pThis->PtrDelta.btn; - report.cx = u32X >> pThis->u8CoordShift; - report.cy = u32Y >> pThis->u8CoordShift; - report.dz = clamp_i8(pThis->PtrDelta.dZ); - - cbCopy = sizeof(report); - memcpy(&pUrb->abData[0], &report, cbCopy); + /* Send a report if possible. */ + usbHidSendReport(pThis); - /* Clear the accumulated movement. */ - pThis->PtrDelta.dZ = 0; - - /* Complete the URB. */ - usbHidCompleteOk(pThis, pUrb, cbCopy); -// LogRel(("Abs movement, X=%d, Y=%d, dZ=%d, btn=%02x, report size %d\n", report.cx, report.cy, report.dz, report.btn, cbCopy)); - } - -// PDMCritSectLeave(&pThis->CritSect); + RTCritSectLeave(&pThis->CritSect); return VINF_SUCCESS; } @@ -918,6 +940,9 @@ case USBHIDREQSTATE_READY: usbHidQueueAddTail(&pThis->ToHostQueue, pUrb); + /* If a report is pending, send it right away. */ + if (pThis->fHasPendingChanges) + usbHidSendReport(pThis); LogFlow(("usbHidHandleIntrDevToHost: Added %p:%s to the queue\n", pUrb, pUrb->pszDesc)); return VINF_SUCCESS; diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Devices/Makefile.kmk virtualbox-4.1.44-dfsg/src/VBox/Devices/Makefile.kmk --- virtualbox-4.1.12-dfsg/src/VBox/Devices/Makefile.kmk 2012-04-02 13:28:26.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Devices/Makefile.kmk 2015-11-11 15:08:11.000000000 +0000 @@ -493,6 +493,7 @@ $(DevicesR3_0_OUTDIR)/vboxaml.hex \ $(DevicesR3_0_OUTDIR)/vboxssdt-standard.hex \ $(DevicesR3_0_OUTDIR)/vboxssdt-cpuhotplug.hex + PC/ACPI/VBoxAcpi.cpp_INTERMEDIATES = $(PC/ACPI/VBoxAcpi.cpp_DEPS) $$(DevicesR3_0_OUTDIR)/vboxaml.hex: $(PATH_SUB_CURRENT)/PC/vbox.dsl | $$(dir $$@) $(call MSG_TOOL,iasl,DevicesR3,$<,$@) @@ -1174,8 +1175,19 @@ # Internal Networking - Ring-3 Testcase for the Ring-0 code (a bit hackish). # ifdef VBOX_WITH_TESTCASES - PROGRAMS += tstIntNet-1 + if defined(VBOX_WITH_HARDENING) && "$(KBUILD_TARGET)" == "win" + PROGRAMS += tstIntNetHardened-1 + tstIntNetHardened-1_TEMPLATE = VBoxR3HardenedTstExe + tstIntNetHardened-1_NAME = tstIntNet-1 + tstIntNetHardened-1_DEFS = PROGRAM_NAME_STR=\"tstIntNet-1\" + tstIntNetHardened-1_SOURCES = ../HostDrivers/Support/SUPR3HardenedMainTemplate.cpp + + DLLS += tstIntNet-1 + tstIntNet-1_TEMPLATE = VBoxR3TstDll + else + PROGRAMS += tstIntNet-1 tstIntNet-1_TEMPLATE = VBOXR3TSTEXE + endif tstIntNet-1_SOURCES = \ Network/testcase/tstIntNet-1.cpp \ Network/Pcap.cpp diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Devices/Network/DevE1000.cpp virtualbox-4.1.44-dfsg/src/VBox/Devices/Network/DevE1000.cpp --- virtualbox-4.1.12-dfsg/src/VBox/Devices/Network/DevE1000.cpp 2012-04-02 13:28:26.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Devices/Network/DevE1000.cpp 2015-11-11 15:08:11.000000000 +0000 @@ -2014,17 +2014,22 @@ Assert(cb <= E1K_MAX_RX_PKT_SIZE); memcpy(rxPacket, pvBuf, cb); + + size_t cbMax = ((RCTL & RCTL_LPE) ? E1K_MAX_RX_PKT_SIZE - 4 : 1518) - (status.fVP ? 0 : 4); + E1kLog3(("%s Max RX packet size is %u\n", INSTANCE(pState), cbMax)); + /* Pad short packets */ if (cb < 60) { memset(rxPacket + cb, 0, 60 - cb); cb = 60; } - if (!(RCTL & RCTL_SECRC)) + if (!(RCTL & RCTL_SECRC) && cb <= cbMax) { /* Add FCS if CRC stripping is not enabled */ *(uint32_t*)(rxPacket + cb) = RTCrc32(rxPacket, cb); cb += sizeof(uint32_t); + E1kLog3(("%s Added FCS (cb=%u)\n", INSTANCE(pState), cb)); } /* Compute checksum of complete packet */ uint16_t checksum = e1kCSum16(rxPacket + GET_BITS(RXCSUM, PCSS), cb); diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Devices/Network/DevPCNet.cpp virtualbox-4.1.44-dfsg/src/VBox/Devices/Network/DevPCNet.cpp --- virtualbox-4.1.12-dfsg/src/VBox/Devices/Network/DevPCNet.cpp 2012-04-02 13:28:26.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Devices/Network/DevPCNet.cpp 2015-11-11 15:08:11.000000000 +0000 @@ -1820,7 +1820,7 @@ /** * Write data into guest receive buffers. */ -static void pcnetReceiveNoSync(PCNetState *pThis, const uint8_t *buf, size_t cbToRecv) +static void pcnetReceiveNoSync(PCNetState *pThis, const uint8_t *buf, size_t cbToRecv, bool fAddFCS) { PPDMDEVINS pDevIns = PCNETSTATE_2_DEVINS(pThis); int is_padr = 0, is_bcast = 0, is_ladr = 0; @@ -1891,12 +1891,15 @@ while (cbToRecv < 60) src[cbToRecv++] = 0; - while (p != &src[cbToRecv]) - CRC(fcs, *p++); - ((uint32_t *)&src[cbToRecv])[0] = htonl(fcs); - /* FCS at end of packet */ + if (fAddFCS) + { + while (p != &src[cbToRecv]) + CRC(fcs, *p++); + ((uint32_t *)&src[cbToRecv])[0] = htonl(fcs); + /* FCS at end of packet */ + cbToRecv += 4; + } } - cbToRecv += 4; cbPacket = (int)cbToRecv; Assert((size_t)cbPacket == cbToRecv); #ifdef PCNET_DEBUG_MATCH @@ -2153,7 +2156,7 @@ if (HOST_IS_OWNER(CSR_CRST(pThis))) pcnetRdtePoll(pThis); - pcnetReceiveNoSync(pThis, pThis->abLoopBuf, pSgBuf->cbUsed); + pcnetReceiveNoSync(pThis, pThis->abLoopBuf, pSgBuf->cbUsed, true /* fAddFCS */); pThis->Led.Actual.s.fReading = 0; rc = VINF_SUCCESS; } @@ -4653,16 +4656,19 @@ /* * Check for the max ethernet frame size, taking the IEEE 802.1Q (VLAN) tag into - * account. Note that we are *not* expecting the CRC Checksum. - * Ethernet frames consists of a 14-byte header [+ 4-byte vlan tag] + a 1500-byte body. + * account. Note that the CRC Checksum is optional. + * Ethernet frames consist of a 14-byte header [+ 4-byte vlan tag] + a 1500-byte body [+ 4-byte CRC]. */ - if (RT_LIKELY( cb <= 1514 - || ( cb <= 1518 + if (RT_LIKELY( cb <= 1518 + || ( cb <= 1522 && ((PCRTNETETHERHDR)pvBuf)->EtherType == RT_H2BE_U16_C(RTNET_ETHERTYPE_VLAN)))) { + bool fAddFCS = cb <= 1514 + || ( cb <= 1518 + && ((PCRTNETETHERHDR)pvBuf)->EtherType == RT_H2BE_U16_C(RTNET_ETHERTYPE_VLAN)); if (cb > 70) /* unqualified guess */ pThis->Led.Asserted.s.fReading = pThis->Led.Actual.s.fReading = 1; - pcnetReceiveNoSync(pThis, (const uint8_t *)pvBuf, cb); + pcnetReceiveNoSync(pThis, (const uint8_t *)pvBuf, cb, fAddFCS); pThis->Led.Actual.s.fReading = 0; } #ifdef LOG_ENABLED @@ -4670,7 +4676,7 @@ { static bool s_fFirstBigFrameLoss = true; unsigned cbMaxFrame = ((PCRTNETETHERHDR)pvBuf)->EtherType == RT_H2BE_U16_C(RTNET_ETHERTYPE_VLAN) - ? 1518 : 1514; + ? 1522 : 1518; if (s_fFirstBigFrameLoss) { s_fFirstBigFrameLoss = false; diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Devices/Network/DevVirtioNet.cpp virtualbox-4.1.44-dfsg/src/VBox/Devices/Network/DevVirtioNet.cpp --- virtualbox-4.1.12-dfsg/src/VBox/Devices/Network/DevVirtioNet.cpp 2012-04-02 13:28:26.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Devices/Network/DevVirtioNet.cpp 2015-11-11 15:08:11.000000000 +0000 @@ -65,8 +65,8 @@ #endif /* VBOX_DEVICE_STRUCT_TESTCASE */ -#define VNET_TX_DELAY 150 /* 150 microseconds */ -#define VNET_MAX_FRAME_SIZE 65536 // TODO: Is it the right limit? +#define VNET_TX_DELAY 150 /**< 150 microseconds */ +#define VNET_MAX_FRAME_SIZE 65535 + 18 /**< Max IP packet size + Ethernet header with VLAN tag */ #define VNET_MAC_FILTER_LEN 32 #define VNET_MAX_VID (1 << 12) @@ -313,7 +313,48 @@ #endif } +/** + * Print features given in uFeatures to debug log. + * + * @param pState The device state structure. + * @param uFeatures Descriptions of which features to print. + * @param pcszText A string to print before the list of features. + */ +DECLINLINE(void) vnetPrintFeatures(PVNETSTATE pState, uint32_t uFeatures, const char *pcszText) +{ +#ifdef DEBUG + static struct + { + uint32_t uMask; + const char *pcszDesc; + } aFeatures[] = { + { VNET_F_CSUM, "host handles pkts w/ partial csum" }, + { VNET_F_GUEST_CSUM, "guest handles pkts w/ partial csum" }, + { VNET_F_MAC, "host has given MAC address" }, + { VNET_F_GSO, "host handles pkts w/ any GSO type" }, + { VNET_F_GUEST_TSO4, "guest can handle TSOv4 in" }, + { VNET_F_GUEST_TSO6, "guest can handle TSOv6 in" }, + { VNET_F_GUEST_ECN, "guest can handle TSO[6] w/ ECN in" }, + { VNET_F_GUEST_UFO, "guest can handle UFO in" }, + { VNET_F_HOST_TSO4, "host can handle TSOv4 in" }, + { VNET_F_HOST_TSO6, "host can handle TSOv6 in" }, + { VNET_F_HOST_ECN, "host can handle TSO[6] w/ ECN in" }, + { VNET_F_HOST_UFO, "host can handle UFO in" }, + { VNET_F_MRG_RXBUF, "host can merge receive buffers" }, + { VNET_F_STATUS, "virtio_net_config.status available" }, + { VNET_F_CTRL_VQ, "control channel available" }, + { VNET_F_CTRL_RX, "control channel RX mode support" }, + { VNET_F_CTRL_VLAN, "control channel VLAN filtering" } + }; + Log3(("%s %s:\n", INSTANCE(pState), pcszText)); + for (unsigned i = 0; i < RT_ELEMENTS(aFeatures); ++i) + { + if (aFeatures[i].uMask & uFeatures) + Log3(("%s --> %s\n", INSTANCE(pState), aFeatures[i].pcszDesc)); + } +#endif /* DEBUG */ +} PDMBOTHCBDECL(uint32_t) vnetGetHostFeatures(void *pvState) { @@ -335,6 +376,9 @@ | VNET_F_HOST_TSO4 | VNET_F_HOST_TSO6 /* | VNET_F_HOST_UFO UDP fragmentation offloading was broken prior 4.2 (#5846) */ + | VNET_F_GUEST_TSO4 + | VNET_F_GUEST_TSO6 + | VNET_F_GUEST_UFO #endif #ifdef VNET_WITH_MERGEABLE_RX_BUFS | VNET_F_MRG_RXBUF @@ -352,6 +396,7 @@ // TODO: Nothing to do here yet VNETSTATE *pState = (VNETSTATE *)pvState; LogFlow(("%s vnetSetHostFeatures: uFeatures=%x\n", INSTANCE(pState), uFeatures)); + vnetPrintFeatures(pState, uFeatures, "The guest negotiated the following features"); } PDMBOTHCBDECL(int) vnetGetConfig(void *pvState, uint32_t port, uint32_t cb, void *data) @@ -852,6 +897,34 @@ { VNETSTATE *pState = RT_FROM_MEMBER(pInterface, VNETSTATE, INetworkDown); + if (pGso) + { + uint32_t uFeatures = pState->VPCI.uGuestFeatures; + + switch (pGso->u8Type) + { + case PDMNETWORKGSOTYPE_IPV4_TCP: + uFeatures &= VNET_F_GUEST_TSO4; + break; + case PDMNETWORKGSOTYPE_IPV6_TCP: + uFeatures &= VNET_F_GUEST_TSO6; + break; + case PDMNETWORKGSOTYPE_IPV4_UDP: + case PDMNETWORKGSOTYPE_IPV6_UDP: + uFeatures &= VNET_F_GUEST_UFO; + break; + default: + uFeatures = 0; + break; + } + if (!uFeatures) + { + Log2(("%s vnetNetworkDown_ReceiveGso: GSO type (0x%x) not supported\n", + INSTANCE(pState), pGso->u8Type)); + return VERR_NOT_SUPPORTED; + } + } + Log2(("%s vnetNetworkDown_ReceiveGso: pvBuf=%p cb=%u pGso=%p\n", INSTANCE(pState), pvBuf, cb, pGso)); int rc = vnetCanReceive(pState); @@ -1082,6 +1155,8 @@ /* Compute total frame size. */ for (unsigned int i = 1; i < elem.nOut; i++) uSize += elem.aSegsOut[i].cb; + Log5(("%s vnetTransmitPendingPackets: complete frame is %u bytes.\n", + INSTANCE(pState), uSize)); Assert(uSize <= VNET_MAX_FRAME_SIZE); if (pState->pDrv) { @@ -1946,6 +2021,9 @@ return PDMDEV_SET_ERROR(pDevIns, rc, N_("Configuration error: Failed to get the value of 'CableConnected'")); + + vnetPrintFeatures(pState, vnetGetHostFeatures(pState), "Device supports the following features"); + /* Initialize PCI config space */ memcpy(pState->config.mac.au8, pState->macConfigured.au8, sizeof(pState->config.mac.au8)); pState->config.uStatus = 0; @@ -2043,8 +2121,8 @@ rc = vnetReset(pState); AssertRC(rc); - PDMDevHlpSTAMRegisterF(pDevIns, &pState->StatReceiveBytes, STAMTYPE_COUNTER, STAMVISIBILITY_ALWAYS, STAMUNIT_BYTES, "Amount of data received", "/Devices/VNet%d/Bytes/Receive", iInstance); - PDMDevHlpSTAMRegisterF(pDevIns, &pState->StatTransmitBytes, STAMTYPE_COUNTER, STAMVISIBILITY_ALWAYS, STAMUNIT_BYTES, "Amount of data transmitted", "/Devices/VNet%d/Bytes/Transmit", iInstance); + PDMDevHlpSTAMRegisterF(pDevIns, &pState->StatReceiveBytes, STAMTYPE_COUNTER, STAMVISIBILITY_ALWAYS, STAMUNIT_BYTES, "Amount of data received", "/Devices/VNet%d/ReceiveBytes", iInstance); + PDMDevHlpSTAMRegisterF(pDevIns, &pState->StatTransmitBytes, STAMTYPE_COUNTER, STAMVISIBILITY_ALWAYS, STAMUNIT_BYTES, "Amount of data transmitted", "/Devices/VNet%d/TransmitBytes", iInstance); PDMDevHlpSTAMRegisterF(pDevIns, &pState->StatReceiveGSO, STAMTYPE_COUNTER, STAMVISIBILITY_ALWAYS, STAMUNIT_COUNT, "Number of received GSO packets", "/Devices/VNet%d/Packets/ReceiveGSO", iInstance); PDMDevHlpSTAMRegisterF(pDevIns, &pState->StatTransmitPackets, STAMTYPE_COUNTER, STAMVISIBILITY_ALWAYS, STAMUNIT_COUNT, "Number of sent packets", "/Devices/VNet%d/Packets/Transmit", iInstance); PDMDevHlpSTAMRegisterF(pDevIns, &pState->StatTransmitGSO, STAMTYPE_COUNTER, STAMVISIBILITY_ALWAYS, STAMUNIT_COUNT, "Number of sent GSO packets", "/Devices/VNet%d/Packets/Transmit-Gso", iInstance); diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Devices/Network/DrvIntNet.cpp virtualbox-4.1.44-dfsg/src/VBox/Devices/Network/DrvIntNet.cpp --- virtualbox-4.1.12-dfsg/src/VBox/Devices/Network/DrvIntNet.cpp 2012-04-02 13:28:26.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Devices/Network/DrvIntNet.cpp 2015-11-11 15:08:11.000000000 +0000 @@ -462,12 +462,12 @@ #endif Assert(pSgBuf->fFlags == (PDMSCATTERGATHER_FLAGS_MAGIC | PDMSCATTERGATHER_FLAGS_OWNER_1)); Assert(pSgBuf->cbUsed <= pSgBuf->cbAvailable); - Assert( pHdr->u16Type == INTNETHDR_TYPE_FRAME - || pHdr->u16Type == INTNETHDR_TYPE_GSO); + Assert( pHdr->u8Type == INTNETHDR_TYPE_FRAME + || pHdr->u8Type == INTNETHDR_TYPE_GSO); Assert(PDMCritSectIsOwner(&pThis->XmitLock)); /** @todo LATER: try unalloc the frame. */ - pHdr->u16Type = INTNETHDR_TYPE_PADDING; + pHdr->u8Type = INTNETHDR_TYPE_PADDING; IntNetRingCommitFrame(&pThis->CTX_SUFF(pBuf)->Send, pHdr); #ifdef IN_RING3 @@ -702,9 +702,9 @@ } Log2(("pHdr=%p offRead=%#x: %.8Rhxs\n", pHdr, pRingBuf->offReadX, pHdr)); - uint16_t u16Type = pHdr->u16Type; - if ( ( u16Type == INTNETHDR_TYPE_FRAME - || u16Type == INTNETHDR_TYPE_GSO) + uint8_t u8Type = pHdr->u8Type; + if ( ( u8Type == INTNETHDR_TYPE_FRAME + || u8Type == INTNETHDR_TYPE_GSO) && !pThis->fLinkDown) { /* @@ -714,7 +714,7 @@ int rc = pThis->pIAboveNet->pfnWaitReceiveAvail(pThis->pIAboveNet, 0); if (rc == VINF_SUCCESS) { - if (u16Type == INTNETHDR_TYPE_FRAME) + if (u8Type == INTNETHDR_TYPE_FRAME) { /* * Normal frame. @@ -813,7 +813,7 @@ /* * NIC is going down, likely because the VM is being reset. Skip the frame. */ - AssertMsg(IntNetIsValidFrameType(pHdr->u16Type), ("Unknown frame type %RX16! offRead=%#x\n", pHdr->u16Type, pRingBuf->offReadX)); + AssertMsg(IntNetIsValidFrameType(pHdr->u8Type), ("Unknown frame type %RX16! offRead=%#x\n", pHdr->u8Type, pRingBuf->offReadX)); IntNetRingSkipFrame(pRingBuf); } else @@ -830,7 +830,7 @@ /* * Link down or unknown frame - skip to the next frame. */ - AssertMsg(IntNetIsValidFrameType(pHdr->u16Type), ("Unknown frame type %RX16! offRead=%#x\n", pHdr->u16Type, pRingBuf->offReadX)); + AssertMsg(IntNetIsValidFrameType(pHdr->u8Type), ("Unknown frame type %RX16! offRead=%#x\n", pHdr->u8Type, pRingBuf->offReadX)); IntNetRingSkipFrame(pRingBuf); STAM_REL_COUNTER_INC(&pBuf->cStatBadFrames); } diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Devices/Network/DrvNAT.cpp virtualbox-4.1.44-dfsg/src/VBox/Devices/Network/DrvNAT.cpp --- virtualbox-4.1.12-dfsg/src/VBox/Devices/Network/DrvNAT.cpp 2012-04-02 13:28:26.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Devices/Network/DrvNAT.cpp 2015-11-11 15:08:11.000000000 +0000 @@ -60,6 +60,8 @@ * Defined Constants And Macros * *******************************************************************************/ +#define DRVNAT_MAXFRAMESIZE (16 * 1024) + /** * @todo: This is a bad hack to prevent freezing the guest during high network * activity. Windows host only. This needs to be fixed properly. @@ -468,6 +470,16 @@ return VERR_NO_MEMORY; if (!pGso) { + /* + * Drop the frame if it is too big. + */ + if (cbMin >= DRVNAT_MAXFRAMESIZE) + { + Log(("drvNATNetowrkUp_AllocBuf: drops over-sized frame (%u bytes), returns VERR_INVALID_PARAMETER\n", + cbMin)); + return VERR_INVALID_PARAMETER; + } + pSgBuf->pvUser = NULL; pSgBuf->pvAllocator = slirp_ext_m_get(pThis->pNATState, cbMin, &pSgBuf->aSegs[0].pvSeg, &pSgBuf->aSegs[0].cbSeg); @@ -479,6 +491,16 @@ } else { + /* + * Drop the frame if its segment is too big. + */ + if (pGso->cbHdrs + pGso->cbMaxSeg >= DRVNAT_MAXFRAMESIZE) + { + Log(("drvNATNetowrkUp_AllocBuf: drops over-sized frame (%u bytes), returns VERR_INVALID_PARAMETER\n", + pGso->cbHdrs + pGso->cbMaxSeg)); + return VERR_INVALID_PARAMETER; + } + pSgBuf->pvUser = RTMemDup(pGso, sizeof(*pGso)); pSgBuf->pvAllocator = NULL; pSgBuf->aSegs[0].cbSeg = RT_ALIGN_Z(cbMin, 16); diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Devices/Network/slirp/bsd/amd64/in_cksum.c virtualbox-4.1.44-dfsg/src/VBox/Devices/Network/slirp/bsd/amd64/in_cksum.c --- virtualbox-4.1.12-dfsg/src/VBox/Devices/Network/slirp/bsd/amd64/in_cksum.c 2012-04-02 13:28:29.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Devices/Network/slirp/bsd/amd64/in_cksum.c 2015-11-11 15:08:14.000000000 +0000 @@ -110,7 +110,7 @@ if ((offset = 3 & (long) lw) != 0) { const u_int32_t *masks = in_masks + (offset << 2); - lw = (u_int32_t *) (((long) lw) - offset); + lw = (u_int32_t *) (((RTHCUINTPTR) lw) - offset); sum = *lw++ & masks[len >= 3 ? 3 : len]; len -= 4 - offset; if (len <= 0) { diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Devices/Network/slirp/bsd/i386/in_cksum.c virtualbox-4.1.44-dfsg/src/VBox/Devices/Network/slirp/bsd/i386/in_cksum.c --- virtualbox-4.1.12-dfsg/src/VBox/Devices/Network/slirp/bsd/i386/in_cksum.c 2012-04-02 13:28:29.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Devices/Network/slirp/bsd/i386/in_cksum.c 2015-11-11 15:08:14.000000000 +0000 @@ -118,7 +118,7 @@ if ((offset = 3 & (long) lw) != 0) { const u_int32_t *masks = in_masks + (offset << 2); - lw = (u_int32_t *) (((long) lw) - offset); + lw = (u_int32_t *) (((RTHCUINTPTR) lw) - offset); sum = *lw++ & masks[len >= 3 ? 3 : len]; len -= 4 - offset; if (len <= 0) { diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Devices/Network/slirp/ip_icmp.c virtualbox-4.1.44-dfsg/src/VBox/Devices/Network/slirp/ip_icmp.c --- virtualbox-4.1.12-dfsg/src/VBox/Devices/Network/slirp/ip_icmp.c 2012-04-02 13:28:29.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Devices/Network/slirp/ip_icmp.c 2015-11-11 15:08:15.000000000 +0000 @@ -56,8 +56,9 @@ #include "slirp.h" #include "ip_icmp.h" #ifdef RT_OS_WINDOWS -#include -#include +# include +# include +# include #endif /* The message sent when emulating PING */ @@ -115,54 +116,52 @@ } fd_nonblock(pData->icmp_socket.s); NSOCK_INC(); + #else /* RT_OS_WINDOWS */ - pData->hmIcmpLibrary = LoadLibrary("Iphlpapi.dll"); - if (pData->hmIcmpLibrary != NULL) + /* Resolve symbols we need. */ { - pData->pfIcmpParseReplies = (long (WINAPI *)(void *, long)) - GetProcAddress(pData->hmIcmpLibrary, "IcmpParseReplies"); - pData->pfIcmpCloseHandle = (BOOL (WINAPI *)(HANDLE)) - GetProcAddress(pData->hmIcmpLibrary, "IcmpCloseHandle"); - pData->pfGetAdaptersAddresses = (ULONG (WINAPI *)(ULONG, ULONG, PVOID, PIP_ADAPTER_ADDRESSES, PULONG)) - GetProcAddress(pData->hmIcmpLibrary, "GetAdaptersAddresses"); - if (pData->pfGetAdaptersAddresses == NULL) + RTLDRMOD hLdrMod; + int rc = RTLdrLoadSystem("Iphlpapi.dll", true /*fNoUnload*/, &hLdrMod); + if (RT_SUCCESS(rc)) { - LogRel(("NAT: Can't find GetAdapterAddresses in Iphlpapi.dll\n")); + pData->pfIcmpParseReplies = (long (WINAPI *)(void *, long))RTLdrGetFunction(hLdrMod, "IcmpParseReplies"); + pData->pfIcmpCloseHandle = (BOOL (WINAPI *)(HANDLE))RTLdrGetFunction(hLdrMod, "IcmpCloseHandle"); + rc = RTLdrGetSymbol(hLdrMod, "GetAdaptersAddresses", (void **)&pData->pfGetAdaptersAddresses); + if (RT_FAILURE(rc)) + LogRel(("NAT: Can't find GetAdapterAddresses in Iphlpapi.dll\n")); + RTLdrClose(hLdrMod); } - } - if (pData->pfIcmpParseReplies == NULL) - { - if(pData->pfGetAdaptersAddresses == NULL) - FreeLibrary(pData->hmIcmpLibrary); - pData->hmIcmpLibrary = LoadLibrary("Icmp.dll"); - if (pData->hmIcmpLibrary == NULL) + if (pData->pfIcmpParseReplies == NULL) { - LogRel(("NAT: Icmp.dll could not be loaded\n")); - return 1; + int rc = RTLdrLoadSystem("Icmp.dll", true /*fNoUnload*/, &hLdrMod); + if (RT_FAILURE(rc)) + { + LogRel(("NAT: Icmp.dll could not be loaded: %Rrc\n", rc)); + return 1; + } + pData->pfIcmpParseReplies = (long (WINAPI *)(void *, long))RTLdrGetFunction(hLdrMod, "IcmpParseReplies"); + pData->pfIcmpCloseHandle = (BOOL (WINAPI *)(HANDLE))RTLdrGetFunction(hLdrMod, "IcmpCloseHandle"); + RTLdrClose(hLdrMod); } - pData->pfIcmpParseReplies = (long (WINAPI *)(void *, long)) - GetProcAddress(pData->hmIcmpLibrary, "IcmpParseReplies"); - pData->pfIcmpCloseHandle = (BOOL (WINAPI *)(HANDLE)) - GetProcAddress(pData->hmIcmpLibrary, "IcmpCloseHandle"); } if (pData->pfIcmpParseReplies == NULL) { LogRel(("NAT: Can't find IcmpParseReplies symbol\n")); - FreeLibrary(pData->hmIcmpLibrary); return 1; } if (pData->pfIcmpCloseHandle == NULL) { LogRel(("NAT: Can't find IcmpCloseHandle symbol\n")); - FreeLibrary(pData->hmIcmpLibrary); return 1; } + pData->icmp_socket.sh = IcmpCreateFile(); pData->phEvents[VBOX_ICMP_EVENT_INDEX] = CreateEvent(NULL, FALSE, FALSE, NULL); - pData->szIcmpBuffer = sizeof(ICMP_ECHO_REPLY) * 10; - pData->pvIcmpBuffer = RTMemAlloc(pData->szIcmpBuffer); + pData->cbIcmpBuffer = sizeof(ICMP_ECHO_REPLY) * 10; + pData->pvIcmpBuffer = RTMemAlloc(pData->cbIcmpBuffer); #endif /* RT_OS_WINDOWS */ + LIST_INIT(&pData->icmp_msg_head); return 0; } @@ -176,7 +175,6 @@ icmp_cache_clean(pData, -1); #ifdef RT_OS_WINDOWS pData->pfIcmpCloseHandle(pData->icmp_socket.sh); - FreeLibrary(pData->hmIcmpLibrary); RTMemFree(pData->pvIcmpBuffer); #else closesocket(pData->icmp_socket.s); @@ -529,7 +527,7 @@ icmplen - ICMP_MINLEN /*=RequestSize*/, &ipopt /*=RequestOptions*/, pData->pvIcmpBuffer /*=ReplyBuffer*/, - pData->szIcmpBuffer /*=ReplySize*/, + pData->cbIcmpBuffer /*=ReplySize*/, 1 /*=Timeout in ms*/); error = GetLastError(); if ( status != 0 @@ -615,6 +613,7 @@ register struct ip *ip; register struct icmp *icp; register struct mbuf *m; + int new_ip_size = 0; int new_m_size = 0; int size = 0; @@ -657,7 +656,8 @@ goto end_error; } - new_m_size = sizeof(struct ip) + ICMP_MINLEN + msrc->m_len + ICMP_MAXDATALEN; + new_ip_size = sizeof(struct ip) + ICMP_MINLEN + ICMP_MAXDATALEN; + new_m_size = if_maxlinkhdr + new_ip_size; if (new_m_size < MSIZE) size = MCLBYTES; else if (new_m_size < MCLBYTES) @@ -675,8 +675,8 @@ m->m_data += if_maxlinkhdr; m->m_pkthdr.header = mtod(m, void *); - memcpy(m->m_data, msrc->m_data, msrc->m_len); - m->m_len = msrc->m_len; /* copy msrc to m */ + m->m_len = msrc->m_len < new_ip_size ? msrc->m_len : new_ip_size; + memcpy(m->m_data, msrc->m_data, m->m_len); /* copy msrc to m */ /* make the header of the reply packet */ ip = mtod(m, struct ip *); @@ -712,13 +712,13 @@ if (message) { /* DEBUG : append message to ICMP packet */ - int message_len; + size_t message_len; char *cpnt; message_len = strlen(message); if (message_len > ICMP_MAXDATALEN) message_len = ICMP_MAXDATALEN; cpnt = (char *)m->m_data+m->m_len; - m_append(pData, m, message_len, message); + m_append(pData, m, (int)message_len, message); } #endif diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Devices/Network/slirp/libalias/alias_db.c virtualbox-4.1.44-dfsg/src/VBox/Devices/Network/slirp/libalias/alias_db.c --- virtualbox-4.1.12-dfsg/src/VBox/Devices/Network/slirp/libalias/alias_db.c 2012-04-02 13:28:29.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Devices/Network/slirp/libalias/alias_db.c 2015-11-11 15:08:15.000000000 +0000 @@ -778,7 +778,9 @@ memset(&sock_addr, 0, sizeof(struct sockaddr_in)); sock_addr.sin_family = AF_INET; sock_addr.sin_addr.s_addr = htonl(INADDR_ANY); +#if 0 sock_addr.sin_port = htons(port_net); +#endif #ifdef RT_OS_DARWIN sock_addr.sin_len = sizeof(struct sockaddr_in); #endif @@ -800,12 +802,38 @@ RTMemFree(so); return 0; } + so->so_laddr.s_addr = la->aliasAddress.s_addr; + so->so_lport = htons(port_net); + so->so_faddr.s_addr = la->true_addr.s_addr; + so->so_fport = la->true_port; so->so_hlport = ((struct sockaddr_in *)&sa_addr)->sin_port; so->so_hladdr.s_addr = ((struct sockaddr_in *)&sa_addr)->sin_addr.s_addr; NSOCK_INC_EX(la); if (link_type == LINK_TCP) - insque(la->pData, so, &la->tcb); + { + int ret = 0; + struct sockaddr_in sin; + RT_ZERO(sin); + sin.sin_family = AF_INET; + sin.sin_addr.s_addr = so->so_faddr.s_addr; + sin.sin_port = so->so_fport; + ret = connect(so->s, (struct sockaddr *)&sin, sizeof(sin)); + if ( ret < 0 + && errno != EINPROGRESS + && errno != EAGAIN + && errno != EWOULDBLOCK) + { + closesocket(so->s); + RTMemFree(so); + return 0; + } + so->so_state = SS_ISFCONNECTING; /* slirp happy??? */ + tcp_attach(la->pData, so); + /* tcp_{snd,rcv}space -> pData->tcp_{snd,rcv}space */ + sbreserve(la->pData, &so->so_snd, la->tcp_sndspace); + sbreserve(la->pData, &so->so_rcv, la->tcp_rcvspace); + } else if (link_type == LINK_UDP) insque(la->pData, so, &la->udb); else @@ -979,6 +1007,7 @@ { struct libalias *la = lnk->la; la->sockCount--; + lnk->pSo->so_pvLnk = NULL; /* forget me, please ! */ lnk->pSo = NULL; } } diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Devices/Network/slirp/misc.c virtualbox-4.1.44-dfsg/src/VBox/Devices/Network/slirp/misc.c --- virtualbox-4.1.12-dfsg/src/VBox/Devices/Network/slirp/misc.c 2012-04-02 13:28:29.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Devices/Network/slirp/misc.c 2015-11-11 15:08:15.000000000 +0000 @@ -472,8 +472,7 @@ { RTCritSectEnter(&zone->csZone); LogRel(("NAT: zone(nm:%s, used:%d)\n", zone->name, zone->cur_items)); - if (zone->master_zone) - RTMemFree(zone->area); + RTMemFree(zone->area); RTCritSectLeave(&zone->csZone); RTCritSectDelete(&zone->csZone); RTMemFree(zone); @@ -487,6 +486,7 @@ zone_destroy(pData->zone_jumbop); zone_destroy(pData->zone_jumbo9); zone_destroy(pData->zone_jumbo16); + zone_destroy(pData->zone_ext_refcnt); /** @todo do finalize here.*/ } diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Devices/Network/slirp/slirp.c virtualbox-4.1.44-dfsg/src/VBox/Devices/Network/slirp/slirp.c --- virtualbox-4.1.12-dfsg/src/VBox/Devices/Network/slirp/slirp.c 2012-04-02 13:28:29.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Devices/Network/slirp/slirp.c 2015-11-11 15:08:15.000000000 +0000 @@ -271,6 +271,26 @@ 0x0, 0x0, 0x0, 0x0, 0x0, 0x0 }; +/** + * This helper routine do the checks in descriptions to + * ''fUnderPolling'' and ''fShouldBeRemoved'' flags + * @returns 1 if socket removed and 0 if no changes was made. + */ +static int slirpVerifyAndFreeSocket(PNATState pData, struct socket *pSocket) +{ + AssertPtrReturn(pData, 0); + AssertPtrReturn(pSocket, 0); + AssertReturn(pSocket->fUnderPolling, 0); + if (pSocket->fShouldBeRemoved) + { + pSocket->fUnderPolling = 0; + sofree(pData, pSocket); + /* pSocket is PHANTOM, now */ + return 1; + } + return 0; +} + #ifdef RT_OS_WINDOWS static int get_dns_addr_domain(PNATState pData, bool fVerbose, struct in_addr *pdns_addr, @@ -505,7 +525,19 @@ pDns->de_addr.s_addr = tmp_addr.s_addr; if ((pDns->de_addr.s_addr & RT_H2N_U32_C(IN_CLASSA_NET)) == RT_N2H_U32_C(INADDR_LOOPBACK & IN_CLASSA_NET)) { - pDns->de_addr.s_addr = RT_H2N_U32(RT_N2H_U32(pData->special_addr.s_addr) | CTL_ALIAS); + if ((pDns->de_addr.s_addr) == RT_N2H_U32_C(INADDR_LOOPBACK)) + pDns->de_addr.s_addr = RT_H2N_U32(RT_N2H_U32(pData->special_addr.s_addr) | CTL_ALIAS); + else + { + /* Modern Ubuntu register 127.0.1.1 as DNS server */ + LogRel(("NAT: DNS server %RTnaipv4 registration detected, switching to the host resolver.\n", + pDns->de_addr.s_addr)); + RTMemFree(pDns); + /* Releasing fetched DNS information. */ + slirp_release_dns_list(pData); + pData->fUseHostResolver = 1; + return VINF_SUCCESS; + } } TAILQ_INSERT_HEAD(&pData->pDnsList, pDns, de_list); cNameserversFound++; @@ -1056,6 +1088,11 @@ } +/** + * This function do Connection or sending tcp sequence to. + * @returns if true operation completed + * @note: functions call tcp_input that potentially could lead to tcp_drop + */ static bool slirpConnectOrWrite(PNATState pData, struct socket *so, bool fConnectOnly) { int ret; @@ -1218,6 +1255,8 @@ if (so->so_state & SS_NOFDREF || so->s == -1) CONTINUE(tcp); + Assert(!so->fUnderPolling); + so->fUnderPolling = 1; POLL_TCP_EVENTS(rc, error, so, &NetworkEvents); LOG_NAT_SOCK(so, TCP, &NetworkEvents, readfds, writefds, xfds); @@ -1246,6 +1285,8 @@ ) { sorecvoob(pData, so); + if (slirpVerifyAndFreeSocket(pData, so)) + CONTINUE(tcp); } /* @@ -1262,6 +1303,8 @@ /* should we ignore return value? */ bool fRet = slirpConnectOrWrite(pData, so, true); LogFunc(("fRet:%RTbool\n", fRet)); + if (slirpVerifyAndFreeSocket(pData, so)) + CONTINUE(tcp); } #endif /* @@ -1270,14 +1313,24 @@ if (so->so_state & SS_FACCEPTCONN) { TCP_CONNECT(pData, so); + if (slirpVerifyAndFreeSocket(pData, so)) + CONTINUE(tcp); if (!CHECK_FD_SET(so, NetworkEvents, closefds)) + { + so->fUnderPolling = 0; CONTINUE(tcp); + } } ret = soread(pData, so); + if (slirpVerifyAndFreeSocket(pData, so)) + CONTINUE(tcp); /* Output it if we read something */ if (RT_LIKELY(ret > 0)) TCP_OUTPUT(pData, sototcpcb(so)); + + if (slirpVerifyAndFreeSocket(pData, so)) + CONTINUE(tcp); } /* @@ -1290,25 +1343,36 @@ /* * drain the socket */ - for (;;) + for (; so_next->so_prev == so + && !slirpVerifyAndFreeSocket(pData, so);) { ret = soread(pData, so); + if (slirpVerifyAndFreeSocket(pData, so)) + break; + if (ret > 0) TCP_OUTPUT(pData, sototcpcb(so)); - else + else if (so_next->so_prev == so) { Log2(("%R[natsock] errno %d (%s)\n", so, errno, strerror(errno))); break; } } - /* mark the socket for termination _after_ it was drained */ - so->so_close = 1; - /* No idea about Windows but on Posix, POLLHUP means that we can't send more. - * Actually in the specific error scenario, POLLERR is set as well. */ + + /* if socket freed ''so'' is PHANTOM and next socket isn't points on it */ + if (so_next->so_prev == so) + { + /* mark the socket for termination _after_ it was drained */ + so->so_close = 1; + /* No idea about Windows but on Posix, POLLHUP means that we can't send more. + * Actually in the specific error scenario, POLLERR is set as well. */ #ifndef RT_OS_WINDOWS - if (CHECK_FD_SET(so, NetworkEvents, rderr)) - sofcantsendmore(so); + if (CHECK_FD_SET(so, NetworkEvents, rderr)) + sofcantsendmore(so); #endif + } + if (so_next->so_prev == so) + so->fUnderPolling = 0; CONTINUE(tcp); } @@ -1321,8 +1385,18 @@ #endif ) { - if(!slirpConnectOrWrite(pData, so, false)) + int fConnectOrWriteSuccess = slirpConnectOrWrite(pData, so, false); + /* slirpConnectOrWrite could return true even if tcp_input called tcp_drop, + * so we should be ready to such situations. + */ + if (slirpVerifyAndFreeSocket(pData, so)) CONTINUE(tcp); + else if (!fConnectOrWriteSuccess) + { + so->fUnderPolling = 0; + CONTINUE(tcp); + } + /* slirpConnectionOrWrite succeeded and socket wasn't dropped */ } /* @@ -1373,6 +1447,8 @@ TCP_INPUT((struct mbuf *)NULL, sizeof(struct ip),so); } /* SS_ISFCONNECTING */ #endif + if (!slirpVerifyAndFreeSocket(pData, so)) + so->fUnderPolling = 0; LOOP_LABEL(tcp, so, so_next); } diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Devices/Network/slirp/slirp_state.h virtualbox-4.1.44-dfsg/src/VBox/Devices/Network/slirp/slirp_state.h --- virtualbox-4.1.12-dfsg/src/VBox/Devices/Network/slirp/slirp_state.h 2012-04-02 13:28:29.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Devices/Network/slirp/slirp_state.h 2015-11-11 15:08:15.000000000 +0000 @@ -217,13 +217,12 @@ int iIcmpCacheLimit; # ifdef RT_OS_WINDOWS void *pvIcmpBuffer; - size_t szIcmpBuffer; - /* Accordin MSDN specification IcmpParseReplies - * function should be detected in runtime + uint32_t cbIcmpBuffer; + /* According MSDN specification IcmpParseReplies + * function should be detected at runtime. */ long (WINAPI * pfIcmpParseReplies)(void *, long); BOOL (WINAPI * pfIcmpCloseHandle)(HANDLE); - HMODULE hmIcmpLibrary; # endif #if defined(RT_OS_WINDOWS) # define VBOX_SOCKET_EVENT (pData->phEvents[VBOX_SOCKET_EVENT_INDEX]) diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Devices/Network/slirp/socket.c virtualbox-4.1.44-dfsg/src/VBox/Devices/Network/slirp/socket.c --- virtualbox-4.1.12-dfsg/src/VBox/Devices/Network/slirp/socket.c 2012-04-02 13:28:29.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Devices/Network/slirp/socket.c 2015-11-11 15:08:16.000000000 +0000 @@ -98,19 +98,34 @@ void sofree(PNATState pData, struct socket *so) { - struct socket *so_prev = NULL; + LogFlowFunc(("ENTER:%R[natsock]\n", so)); + /* + * We should not remove socket when polling routine do the polling + * instead we mark it for deletion. + */ + if (so->fUnderPolling) + { + so->fShouldBeRemoved = 1; + LogFlowFunc(("LEAVE:%R[natsock] postponed deletion\n", so)); + return; + } if (so == tcp_last_so) tcp_last_so = &tcb; else if (so == udp_last_so) udp_last_so = &udb; + +#ifndef VBOX_WITH_SLIRP_MT + /* libalias notification */ if (so->so_pvLnk) slirpDeleteLinkSocket(so->so_pvLnk); - /* check if mbuf haven't been already freed */ if (so->so_m != NULL) + { m_freem(pData, so->so_m); -#ifndef VBOX_WITH_SLIRP_MT + so->so_m = NULL; + } + if (so->so_next && so->so_prev) { remque(pData, so); /* crashes if so is not in a queue */ @@ -121,6 +136,7 @@ #else so->so_deleted = 1; #endif + LogFlowFuncLeave(); } #ifdef VBOX_WITH_SLIRP_MT @@ -1257,7 +1273,13 @@ } m = icm->im_m; - Assert(m != NULL); + if (!m) + { + LogFunc(("%R[natsock] hasn't stored it's mbuf on sent\n", icm->im_so)); + LIST_REMOVE(icm, im_list); + RTMemFree(icm); + return; + } src = addr->sin_addr.s_addr; if (type == ICMP_ECHOREPLY) @@ -1365,7 +1387,7 @@ int out_len; int size; - len = pData->pfIcmpParseReplies(pData->pvIcmpBuffer, pData->szIcmpBuffer); + len = pData->pfIcmpParseReplies(pData->pvIcmpBuffer, pData->cbIcmpBuffer); if (len < 0) { LogRel(("NAT: Error (%d) occurred on ICMP receiving\n", GetLastError())); diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Devices/Network/slirp/socket.h virtualbox-4.1.44-dfsg/src/VBox/Devices/Network/slirp/socket.h --- virtualbox-4.1.12-dfsg/src/VBox/Devices/Network/slirp/socket.h 2012-04-02 13:28:29.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Devices/Network/slirp/socket.h 2015-11-11 15:08:16.000000000 +0000 @@ -107,6 +107,28 @@ struct libalias *so_la; /* libalias might attach the socket and we want to notify libalias we're freeing it */ void *so_pvLnk; + /** These flags (''fUnderPolling'' and ''fShouldBeRemoved'') introduced to + * to let polling routine gain control over freeing socket whatever level of + * TCP/IP initiated socket releasing. + * So polling routine when start processing socket alter it's state to + * ''fUnderPolling'' to 1, and clean (set to 0) when it finish. + * When polling routine calls functions it should be ensure on return, + * whether ''fShouldBeRemoved'' set or not, and depending on state call + * ''sofree'' or continue socket processing. + * On ''fShouldBeRemoved'' equal to 1, polling routine should call ''sofree'', + * clearing ''fUnderPolling'' to do real freeng of the socket and removing from + * the queue. + * @todo: perhaps, to simplefy the things we need some helper function. + * @note: it's used like a bool, I use 'int' to avoid compiler warnings + * appearing if [-Wc++-compat] used. + */ + int fUnderPolling; + /** This flag used by ''sofree'' function in following manner + * + * fUnderPolling = 1, then we don't remove socket from the queue, just + * alter value ''fShouldBeRemoved'' to 1, else we do removal. + */ + int fShouldBeRemoved; }; /* this function inform libalias about socket close */ diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Devices/Network/SrvIntNetR0.cpp virtualbox-4.1.44-dfsg/src/VBox/Devices/Network/SrvIntNetR0.cpp --- virtualbox-4.1.12-dfsg/src/VBox/Devices/Network/SrvIntNetR0.cpp 2012-04-02 13:28:26.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Devices/Network/SrvIntNetR0.cpp 2015-11-11 15:08:12.000000000 +0000 @@ -157,27 +157,6 @@ /** Pointer to a const destination table. */ typedef INTNETDSTTAB const *PCINTNETDSTTAB; - -/** Network layer address type. */ -typedef enum INTNETADDRTYPE -{ - /** The invalid 0 entry. */ - kIntNetAddrType_Invalid = 0, - /** IP version 4. */ - kIntNetAddrType_IPv4, - /** IP version 6. */ - kIntNetAddrType_IPv6, - /** IPX. */ - kIntNetAddrType_IPX, - /** The end of the valid values. */ - kIntNetAddrType_End, - /** The usual 32-bit hack. */ - kIntNetAddrType_32BitHack = 0x7fffffff -} INTNETADDRTYPE; -/** Pointer to a network layer address type. */ -typedef INTNETADDRTYPE *PINTNETADDRTYPE; - - /** * Address and type. */ @@ -350,13 +329,17 @@ * This is protected by the INTNET::hMtxCreateOpenDestroy. */ struct INTNETNETWORK *pNext; - /** The spinlock protecting MacTab and INTNETTRUNKIF::aAddrCache. + /** The spinlock protecting MacTab, aAddrBlacklist and INTNETIF::aAddrCache. * Interrupt safe. */ RTSPINLOCK hAddrSpinlock; /** MAC address table. * This doubles as interface collection. */ INTNETMACTAB MacTab; + /** The network layer address cache. (Indexed by type, 0 entry isn't used. + * Contains host addresses. We don't let guests spoof them. */ + INTNETADDRCACHE aAddrBlacklist[kIntNetAddrType_End]; + /** Wait for an interface to stop being busy so it can be removed or have its * destination table replaced. We have to wait upon this while owning the * network mutex. Will only ever have one waiter because of the big mutex. */ @@ -1124,20 +1107,42 @@ * @param cbAddr The address size (optimization). * @param pszMsg Log message. */ -DECLINLINE(void) intnetR0NetworkAddrCacheDelete(PINTNETNETWORK pNetwork, PCRTNETADDRU pAddr, INTNETADDRTYPE const enmType, - uint8_t const cbAddr, const char *pszMsg) +DECLINLINE(void) intnetR0NetworkAddrCacheDeleteLocked(PINTNETNETWORK pNetwork, + PCRTNETADDRU pAddr, INTNETADDRTYPE enmType, + uint8_t const cbAddr, + const char *pszMsg) { - RTSPINLOCKTMP Tmp = RTSPINLOCKTMP_INITIALIZER; - RTSpinlockAcquireNoInts(pNetwork->hAddrSpinlock, &Tmp); - uint32_t iIf = pNetwork->MacTab.cEntries; while (iIf--) { PINTNETIF pIf = pNetwork->MacTab.paEntries[iIf].pIf; + int i = intnetR0IfAddrCacheLookup(&pIf->aAddrCache[enmType], pAddr, cbAddr); if (RT_UNLIKELY(i >= 0)) intnetR0IfAddrCacheDeleteIt(pIf, &pIf->aAddrCache[enmType], i, pszMsg); } +} + + +/** + * Deletes the address from all the interface caches. + * + * This is used to remove stale entries that has been reassigned to + * other machines on the network. + * + * @param pNetwork The network. + * @param pAddr The address. + * @param enmType The address type. + * @param cbAddr The address size (optimization). + * @param pszMsg Log message. + */ +DECLINLINE(void) intnetR0NetworkAddrCacheDelete(PINTNETNETWORK pNetwork, PCRTNETADDRU pAddr, INTNETADDRTYPE const enmType, + uint8_t const cbAddr, const char *pszMsg) +{ + RTSPINLOCKTMP Tmp = RTSPINLOCKTMP_INITIALIZER; + RTSpinlockAcquireNoInts(pNetwork->hAddrSpinlock, &Tmp); + + intnetR0NetworkAddrCacheDeleteLocked(pNetwork, pAddr, enmType, cbAddr, pszMsg); RTSpinlockReleaseNoInts(pNetwork->hAddrSpinlock, &Tmp); } @@ -1212,6 +1217,114 @@ /** + * Look up specified address in the network's blacklist. + * + * @param pNetwork The network. + * @param enmType The address type. + * @param pAddr The address. + */ +static bool intnetR0NetworkBlacklistLookup(PINTNETNETWORK pNetwork, + PCRTNETADDRU pAddr, INTNETADDRTYPE enmType) +{ + PINTNETADDRCACHE pCache = &pNetwork->aAddrBlacklist[enmType]; + + if (RT_UNLIKELY(pCache->cEntriesAlloc == 0)) + return false; + + const uint8_t cbAddr = pCache->cbAddress; + Assert(cbAddr == intnetR0AddrSize(enmType)); + + for (unsigned i = 0; i < pCache->cEntries; ++i) + { + uint8_t *pbEntry = pCache->pbEntries + pCache->cbEntry * i; + if (intnetR0AddrUIsEqualEx((PCRTNETADDRU)pbEntry, pAddr, cbAddr)) + return true; + } + + return false; +} + + +/** + * Deletes specified address from network's blacklist. + * + * @param pNetwork The network. + * @param enmType The address type. + * @param pAddr The address. + */ +static void intnetR0NetworkBlacklistDelete(PINTNETNETWORK pNetwork, + PCRTNETADDRU pAddr, INTNETADDRTYPE enmType) +{ + PINTNETADDRCACHE pCache = &pNetwork->aAddrBlacklist[enmType]; + + if (RT_UNLIKELY(pCache->cEntriesAlloc == 0)) + return; + + const uint8_t cbAddr = pCache->cbAddress; + Assert(cbAddr == intnetR0AddrSize(enmType)); + + for (unsigned i = 0; i < pCache->cEntries; ++i) + { + uint8_t *pbEntry = pCache->pbEntries + pCache->cbEntry * i; + if (!intnetR0AddrUIsEqualEx((PCRTNETADDRU)pbEntry, pAddr, cbAddr)) + continue; + + --pCache->cEntries; + memmove(pCache->pbEntries + i * pCache->cbEntry, + pCache->pbEntries + (i + 1) * pCache->cbEntry, + (pCache->cEntries - i) * pCache->cbEntry); + return; + } +} + + +/** + * Adds specified address from network's blacklist. + * + * @param pNetwork The network. + * @param enmType The address type. + * @param pAddr The address. + */ +static void intnetR0NetworkBlacklistAdd(PINTNETNETWORK pNetwork, + PCRTNETADDRU pAddr, INTNETADDRTYPE enmType) +{ + PINTNETADDRCACHE pCache = &pNetwork->aAddrBlacklist[enmType]; + + if (RT_UNLIKELY(pCache->cEntriesAlloc == 0)) + return; + + const uint8_t cbAddr = pCache->cbAddress; + Assert(cbAddr == intnetR0AddrSize(enmType)); + + /* lookup */ + for (unsigned i = 0; i < pCache->cEntries; ++i) + { + uint8_t *pbEntry = pCache->pbEntries + pCache->cbEntry * i; + if (RT_UNLIKELY(intnetR0AddrUIsEqualEx((PCRTNETADDRU)pbEntry, pAddr, cbAddr))) + return; /* already exists */ + } + + if (pCache->cEntries >= pCache->cEntriesAlloc) + { + /* shift */ + memmove(pCache->pbEntries, pCache->pbEntries + pCache->cbEntry, + pCache->cbEntry * (pCache->cEntries - 1)); + --pCache->cEntries; + } + + Assert(pCache->cEntries < pCache->cEntriesAlloc); + + /* push */ + uint8_t *pbEntry = pCache->pbEntries + pCache->cEntries * pCache->cbEntry; + memcpy(pbEntry, pAddr, cbAddr); + memset(pbEntry + pCache->cbAddress, '\0', pCache->cbEntry - cbAddr); + ++pCache->cEntries; + + Assert(pCache->cEntries <= pCache->cEntriesAlloc); +} + + +/** * Adds an address to the cache, the caller is responsible for making sure it's * not already in the cache. * @@ -1222,13 +1335,45 @@ * @param pAddr The address. * @param pszMsg log message. */ -static void intnetR0IfAddrCacheAddIt(PINTNETIF pIf, PINTNETADDRCACHE pCache, PCRTNETADDRU pAddr, const char *pszMsg) +static void intnetR0IfAddrCacheAddIt(PINTNETIF pIf, INTNETADDRTYPE enmAddrType, PCRTNETADDRU pAddr, + const char *pszMsg) { PINTNETNETWORK pNetwork = pIf->pNetwork; AssertReturnVoid(pNetwork); + + PINTNETADDRCACHE pCache = &pIf->aAddrCache[enmAddrType]; + + const uint8_t cbAddr = pCache->cbAddress; + Assert(cbAddr == intnetR0AddrSize(enmAddrType)); + RTSPINLOCKTMP Tmp = RTSPINLOCKTMP_INITIALIZER; RTSpinlockAcquireNoInts(pNetwork->hAddrSpinlock, &Tmp); + bool fBlacklisted = intnetR0NetworkBlacklistLookup(pNetwork, pAddr, enmAddrType); + if (fBlacklisted) + { + RTSpinlockReleaseNoInts(pNetwork->hAddrSpinlock, &Tmp); + +#ifdef LOG_ENABLED + switch (enmAddrType) + { + case kIntNetAddrType_IPv4: + Log(("%s: spoofing attempt for %RTnaipv4\n", + __FUNCTION__, pAddr->IPv4)); + break; + case kIntNetAddrType_IPv6: + Log(("%s: spoofing attempt for %RTnaipv6\n", + __FUNCTION__, &pAddr->IPv6)); + break; + default: + Log(("%s: spoofing attempt for %.*Rhxs (type %d)\n", + __FUNCTION__, cbAddr, pAddr, enmAddrType)); + break; + } +#endif + return; + } + if (RT_UNLIKELY(!pCache->cEntriesAlloc)) { /* This shouldn't happen*/ @@ -1252,8 +1397,8 @@ uint8_t *pbEntry = pCache->pbEntries + pCache->cEntries * pCache->cbEntry; memcpy(pbEntry, pAddr, pCache->cbAddress); memset(pbEntry + pCache->cbAddress, '\0', pCache->cbEntry - pCache->cbAddress); + #ifdef LOG_ENABLED - INTNETADDRTYPE enmAddrType = (INTNETADDRTYPE)(uintptr_t)(pCache - &pIf->aAddrCache[0]); switch (enmAddrType) { case kIntNetAddrType_IPv4: @@ -1282,8 +1427,14 @@ * @param cbAddr The size of the address (optimization). * @param pszMsg Log message. */ -static void intnetR0IfAddrCacheAddSlow(PINTNETIF pIf, PINTNETADDRCACHE pCache, PCRTNETADDRU pAddr, uint8_t const cbAddr, const char *pszMsg) +static void intnetR0IfAddrCacheAddSlow(PINTNETIF pIf, INTNETADDRTYPE enmAddrType, PCRTNETADDRU pAddr, + const char *pszMsg) { + PINTNETADDRCACHE pCache = &pIf->aAddrCache[enmAddrType]; + + const uint8_t cbAddr = pCache->cbAddress; + Assert(cbAddr == intnetR0AddrSize(enmAddrType)); + /* * Check all but the first and last entries, the caller * has already checked those. @@ -1301,7 +1452,7 @@ /* * Not found, add it. */ - intnetR0IfAddrCacheAddIt(pIf, pCache, pAddr, pszMsg); + intnetR0IfAddrCacheAddIt(pIf, enmAddrType, pAddr, pszMsg); } @@ -1316,10 +1467,13 @@ * @param cbAddr The size of the address (optimization). * @param pszMsg Log message. */ -DECLINLINE(void) intnetR0IfAddrCacheAdd(PINTNETIF pIf, PINTNETADDRCACHE pCache, PCRTNETADDRU pAddr, - uint8_t const cbAddr, const char *pszMsg) +DECLINLINE(void) intnetR0IfAddrCacheAdd(PINTNETIF pIf, INTNETADDRTYPE enmAddrType, PCRTNETADDRU pAddr, + const char *pszMsg) { - Assert(pCache->cbAddress == cbAddr); + PINTNETADDRCACHE pCache = &pIf->aAddrCache[enmAddrType]; + + const uint8_t cbAddr = pCache->cbAddress; + Assert(cbAddr == intnetR0AddrSize(enmAddrType)); /* * The optimized case is when the address the first or last cache entry. @@ -1328,9 +1482,10 @@ if (RT_LIKELY( i > 0 && ( intnetR0AddrUIsEqualEx((PCRTNETADDRU)pCache->pbEntries, pAddr, cbAddr) || (i > 1 - && intnetR0AddrUIsEqualEx((PCRTNETADDRU)(pCache->pbEntries + pCache->cbEntry * i), pAddr, cbAddr))) )) + && intnetR0AddrUIsEqualEx((PCRTNETADDRU)(pCache->pbEntries + pCache->cbEntry * (i-1)), pAddr, cbAddr))) )) return; - intnetR0IfAddrCacheAddSlow(pIf, pCache, pAddr, cbAddr, pszMsg); + + intnetR0IfAddrCacheAddSlow(pIf, enmAddrType, pAddr, pszMsg); } @@ -2125,8 +2280,8 @@ if (pMatchingIf) { - intnetR0IfAddrCacheAdd(pMatchingIf, &pMatchingIf->aAddrCache[kIntNetAddrType_IPv4], - (PCRTNETADDRU)&pDhcp->bp_yiaddr, sizeof(RTNETADDRIPV4), "DHCP_MT_ACK"); + intnetR0IfAddrCacheAdd(pMatchingIf, kIntNetAddrType_IPv4, + (PCRTNETADDRU)&pDhcp->bp_yiaddr, "DHCP_MT_ACK"); intnetR0BusyDecIf(pMatchingIf); } } @@ -2415,7 +2570,8 @@ Log(("intnetR0IfSnoopIPv4SourceAddr: bad ip header\n")); return; } - intnetR0IfAddrCacheAddIt(pIf, &pIf->aAddrCache[kIntNetAddrType_IPv4], &Addr, "if/ipv4"); + + intnetR0IfAddrCacheAddIt(pIf, kIntNetAddrType_IPv4, &Addr, "if/ipv4"); fValidatedIpHdr = true; } @@ -2491,8 +2647,9 @@ if ( !memcmp(&pArpIPv4->ar_sha, &pIf->MacAddr, sizeof(RTMAC)) && intnetR0IPv4AddrIsGood(pArpIPv4->ar_spa)) - intnetR0IfAddrCacheAdd(pIf, &pIf->aAddrCache[kIntNetAddrType_IPv4], - (PCRTNETADDRU)&pArpIPv4->ar_spa, sizeof(RTNETADDRIPV4), "if/arp"); + { + intnetR0IfAddrCacheAdd(pIf, kIntNetAddrType_IPv4, (PCRTNETADDRU)&pArpIPv4->ar_spa, "if/arp"); + } } @@ -2664,6 +2821,11 @@ } u; /* + * @todo: We have to adjust MSS so it does not exceed the value configured + * for the host's interface. + */ + + /* * Carve out the frame segments with the header and frame in different * scatter / gather segments. */ @@ -3507,8 +3669,8 @@ PINTNETHDR pHdr; while ((pHdr = IntNetRingGetNextFrameToRead(&pIf->pIntBuf->Send)) != NULL) { - uint16_t const u16Type = pHdr->u16Type; - if (u16Type == INTNETHDR_TYPE_FRAME) + uint8_t const u8Type = pHdr->u8Type; + if (u8Type == INTNETHDR_TYPE_FRAME) { /* Send regular frame. */ void *pvCurFrame = IntNetHdrGetFramePtr(pHdr, pIf->pIntBuf); @@ -3517,7 +3679,7 @@ intnetR0IfSnoopAddr(pIf, (uint8_t *)pvCurFrame, pHdr->cbFrame, false /*fGso*/, (uint16_t *)&Sg.fFlags); enmSwDecision = intnetR0NetworkSend(pNetwork, pIf, 0 /*fSrc*/, &Sg, pDstTab); } - else if (u16Type == INTNETHDR_TYPE_GSO) + else if (u8Type == INTNETHDR_TYPE_GSO) { /* Send GSO frame if sane. */ PPDMNETWORKGSO pGso = IntNetHdrGetGsoContext(pHdr, pIf->pIntBuf); @@ -3539,7 +3701,7 @@ /* Unless it's a padding frame, we're getting babble from the producer. */ else { - if (u16Type != INTNETHDR_TYPE_PADDING) + if (u8Type != INTNETHDR_TYPE_PADDING) STAM_REL_COUNTER_INC(&pIf->pIntBuf->cStatBadFrames); /* ignore */ enmSwDecision = INTNETSWDECISION_DROP; } @@ -4932,6 +5094,55 @@ } +/** @copydoc INTNETTRUNKSWPORT::pfnNotifyHostAddress */ +static DECLCALLBACK(void) intnetR0NetworkNotifyHostAddress(PINTNETTRUNKSWPORT pSwitchPort, + bool fAdded, + INTNETADDRTYPE enmType, const void *pvAddr) +{ + PINTNETTRUNKIF pTrunkIf = INTNET_SWITCHPORT_2_TRUNKIF(pSwitchPort); + PINTNETNETWORK pNetwork = pTrunkIf->pNetwork; + PCRTNETADDRU pAddr = (PCRTNETADDRU)pvAddr; + uint8_t cbAddr; + + if (enmType == kIntNetAddrType_IPv4) + { + Log(("%s: %s %RTnaipv4\n", + __FUNCTION__, (fAdded ? "add" : "del"), + pAddr->IPv4)); + cbAddr = 4; + } + else if (enmType == kIntNetAddrType_IPv6) + { + Log(("%s: %s %RTnaipv6\n", + __FUNCTION__, (fAdded ? "add" : "del"), + pAddr)); + cbAddr = 16; + } + else + { + Log(("%s: unexpected address type %d\n", __FUNCTION__, enmType)); + return; + } + + RTSPINLOCKTMP Tmp = RTSPINLOCKTMP_INITIALIZER; + RTSpinlockAcquireNoInts(pNetwork->hAddrSpinlock, &Tmp); + if (fAdded) /* one of host interfaces got a new address */ + { + /* blacklist it to prevent spoofing by guests */ + intnetR0NetworkBlacklistAdd(pNetwork, pAddr, enmType); + + /* kick out any guest that uses it */ + intnetR0NetworkAddrCacheDeleteLocked(pNetwork, pAddr, enmType, cbAddr, "tif/host"); + } + else /* address deleted from one of host interfaces */ + { + /* stop blacklisting it, guests may use it now */ + intnetR0NetworkBlacklistDelete(pNetwork, pAddr, enmType); + } + RTSpinlockReleaseNoInts(pNetwork->hAddrSpinlock, &Tmp); +} + + /** * Retain the trunk interface. * @@ -5118,6 +5329,8 @@ pTrunk->SwitchPort.pfnReportPromiscuousMode = intnetR0TrunkIfPortReportPromiscuousMode; pTrunk->SwitchPort.pfnReportGsoCapabilities = intnetR0TrunkIfPortReportGsoCapabilities; pTrunk->SwitchPort.pfnReportNoPreemptDsts = intnetR0TrunkIfPortReportNoPreemptDsts; + if (pNetwork->fFlags & INTNET_OPEN_FLAGS_SHARED_MAC_ON_WIRE) + pTrunk->SwitchPort.pfnNotifyHostAddress = intnetR0NetworkNotifyHostAddress; pTrunk->SwitchPort.u32VersionEnd = INTNETTRUNKSWPORT_VERSION; //pTrunk->pIfPort = NULL; pTrunk->pNetwork = pNetwork; @@ -5327,6 +5540,8 @@ pNetwork->hAddrSpinlock = NIL_RTSPINLOCK; RTMemFree(pNetwork->MacTab.paEntries); pNetwork->MacTab.paEntries = NULL; + for (int i = kIntNetAddrType_Invalid + 1; i < kIntNetAddrType_End; i++) + intnetR0IfAddrCacheDestroy(&pNetwork->aAddrBlacklist[i]); RTMemFree(pNetwork); /* Release the create/destroy sem. */ @@ -5701,6 +5916,12 @@ } if (RT_SUCCESS(rc)) { + for (int i = kIntNetAddrType_Invalid + 1; i < kIntNetAddrType_End && RT_SUCCESS(rc); i++) + rc = intnetR0IfAddrCacheInit(&pNetwork->aAddrBlacklist[i], (INTNETADDRTYPE)i, + !!(pNetwork->fFlags & INTNET_OPEN_FLAGS_SHARED_MAC_ON_WIRE)); + } + if (RT_SUCCESS(rc)) + { /* * Register the object in the current session and link it into the network list. */ diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Devices/Network/testcase/tstIntNet-1.cpp virtualbox-4.1.44-dfsg/src/VBox/Devices/Network/testcase/tstIntNet-1.cpp --- virtualbox-4.1.12-dfsg/src/VBox/Devices/Network/testcase/tstIntNet-1.cpp 2012-04-02 13:28:30.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Devices/Network/testcase/tstIntNet-1.cpp 2015-11-11 15:08:16.000000000 +0000 @@ -462,7 +462,7 @@ PINTNETHDR pHdr; while ((pHdr = IntNetRingGetNextFrameToRead(pRingBuf))) { - if (pHdr->u16Type == INTNETHDR_TYPE_FRAME) + if (pHdr->u8Type == INTNETHDR_TYPE_FRAME) { size_t cbFrame = pHdr->cbFrame; const void *pvFrame = IntNetHdrGetFramePtr(pHdr, pBuf); @@ -539,7 +539,7 @@ } } } - else if (pHdr->u16Type == INTNETHDR_TYPE_GSO) + else if (pHdr->u8Type == INTNETHDR_TYPE_GSO) { PCPDMNETWORKGSO pGso = IntNetHdrGetGsoContext(pHdr, pBuf); size_t cbFrame = pHdr->cbFrame; @@ -567,9 +567,9 @@ g_cErrors++; } } - else if (pHdr->u16Type != INTNETHDR_TYPE_PADDING) + else if (pHdr->u8Type != INTNETHDR_TYPE_PADDING) { - RTPrintf("tstIntNet-1: Unknown frame type %d\n", pHdr->u16Type); + RTPrintf("tstIntNet-1: Unknown frame type %d\n", pHdr->u8Type); STAM_REL_COUNTER_INC(&pBuf->cStatBadFrames); g_cErrors++; } @@ -596,7 +596,10 @@ } -int main(int argc, char **argv) +/** + * Entry point. + */ +extern "C" DECLEXPORT(int) TrustedMain(int argc, char **argv, char **envp) { /* * Init the runtime and parse the arguments. @@ -749,7 +752,7 @@ return 1; case 'V': - RTPrintf("$Revision: 70854 $\n"); + RTPrintf("$Revision: 94953 $\n"); return 0; default: @@ -938,3 +941,14 @@ return !!g_cErrors; } + +#if !defined(VBOX_WITH_HARDENING) || !defined(RT_OS_WINDOWS) +/** + * Main entry point. + */ +int main(int argc, char **argv, char **envp) +{ + return TrustedMain(argc, argv, envp); +} +#endif + diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Devices/PC/BIOS/rombios.c virtualbox-4.1.44-dfsg/src/VBox/Devices/PC/BIOS/rombios.c --- virtualbox-4.1.12-dfsg/src/VBox/Devices/PC/BIOS/rombios.c 2012-04-02 13:28:30.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Devices/PC/BIOS/rombios.c 2015-11-11 15:08:16.000000000 +0000 @@ -248,7 +248,7 @@ // undef enables PCIBIOS when at least one PCI device is found // i440FX is emulated by Bochs and QEMU #define PCI_FIXED_HOST_BRIDGE_1 0x12378086 ;; i440FX PCI bridge -#define PCI_FIXED_HOST_BRIDGE_2 0x244e8086 ;; ICH9 PCI bridge +#define PCI_FIXED_HOST_BRIDGE_2 0x24488086 ;; ICH9 PCI bridge // #20 is dec 20 // #$20 is hex 20 = 32 @@ -9996,8 +9996,16 @@ #endif #ifdef PCI_FIXED_HOST_BRIDGE_2 - /* 0x1e << 11 */ - mov eax, #0x8000f000 + /* 0x18 << 11 */ + mov eax, #0x8000c000 + mov dx, #0x0cf8 + out dx, eax + mov dx, #0x0cfc + in eax, dx + cmp eax, #PCI_FIXED_HOST_BRIDGE_2 + je device_ok + /* 0x19 << 11 */ + mov eax, #0x8000c800 mov dx, #0x0cf8 out dx, eax mov dx, #0x0cfc @@ -10196,8 +10204,16 @@ #endif #ifdef PCI_FIXED_HOST_BRIDGE_2 - /* 0x1e << 11 */ - mov eax, #0x8000f000 + /* 0x18 << 11 */ + mov eax, #0x8000c000 + mov dx, #0x0cf8 + out dx, eax + mov dx, #0x0cfc + in eax, dx + cmp eax, #PCI_FIXED_HOST_BRIDGE_2 + je pci_present + /* 0x19 << 11 */ + mov eax, #0x8000c800 mov dx, #0x0cf8 out dx, eax mov dx, #0x0cfc @@ -11367,6 +11383,8 @@ ret pmode_exit: + mov ax, #0x28 + mov ds, ax mov eax, cr0 and al, #0xfe mov cr0, eax @@ -11519,7 +11537,7 @@ memory_cleared: mov es, bx xor di, di - mov cx, #0x3f00 + mov cx, #0x3ffc rep stosd xor bx, bx diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Devices/PC/DevACPI.cpp virtualbox-4.1.44-dfsg/src/VBox/Devices/PC/DevACPI.cpp --- virtualbox-4.1.12-dfsg/src/VBox/Devices/PC/DevACPI.cpp 2012-04-02 13:28:30.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Devices/PC/DevACPI.cpp 2015-11-11 15:08:16.000000000 +0000 @@ -1719,7 +1719,10 @@ /* No state locking required. */ int rc = VINF_SUCCESS; if (u32 == ACPI_RESET_REG_VAL) + { + LogRel(("Reset initiated by ACPI\n")); rc = PDMDevHlpVMReset(pDevIns); + } else Log(("acpiResetWrite: %#x <- unknown value\n", u32)); diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Devices/PC/DevAPIC.cpp virtualbox-4.1.44-dfsg/src/VBox/Devices/PC/DevAPIC.cpp --- virtualbox-4.1.12-dfsg/src/VBox/Devices/PC/DevAPIC.cpp 2012-04-02 13:28:30.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Devices/PC/DevAPIC.cpp 2015-11-11 15:08:16.000000000 +0000 @@ -58,11 +58,9 @@ /******************************************************************************* * Defined Constants And Macros * *******************************************************************************/ -#define MSR_IA32_APICBASE 0x1b -#define MSR_IA32_APICBASE_BSP (1<<8) #define MSR_IA32_APICBASE_ENABLE (1<<11) #define MSR_IA32_APICBASE_X2ENABLE (1<<10) -#define MSR_IA32_APICBASE_BASE (0xfffff<<12) +#define MSR_IA32_APICBASE_BASE (0xfffff<<12) /** @todo r=bird: This is not correct according to current specs! */ #ifdef _MSC_VER # pragma warning(disable:4244) @@ -711,7 +709,7 @@ return VERR_EM_INTERPRETER; /** @todo tell the caller to raise hell (\#GP(0)). */ APICState *pApic = getLapicById(pDev, idCpu); - uint32_t iReg = (u32Reg - MSR_IA32_APIC_START) & 0xff; + uint32_t iReg = (u32Reg - MSR_IA32_X2APIC_START) & 0xff; return apicWriteRegister(pDev, pApic, iReg, u64Value, VINF_SUCCESS /*rcBusy*/, true /*fMsr*/); } @@ -727,7 +725,7 @@ if (pDev->enmVersion < PDMAPICVERSION_X2APIC) return VERR_EM_INTERPRETER; - uint32_t index = (u32Reg - MSR_IA32_APIC_START) & 0xff; + uint32_t index = (u32Reg - MSR_IA32_X2APIC_START) & 0xff; APICState *apic = getLapicById(pDev, idCpu); uint64_t val = 0; int rc = VINF_SUCCESS; diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Devices/PC/DevHPET.cpp virtualbox-4.1.44-dfsg/src/VBox/Devices/PC/DevHPET.cpp --- virtualbox-4.1.12-dfsg/src/VBox/Devices/PC/DevHPET.cpp 2012-04-02 13:28:30.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Devices/PC/DevHPET.cpp 2015-11-11 15:08:16.000000000 +0000 @@ -1,6 +1,6 @@ /* $Id: DevHPET.cpp $ */ /** @file - * HPET virtual device - high precision event timer emulation + * HPET virtual device - High Precision Event Timer emulation */ /* @@ -15,6 +15,10 @@ * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind. */ +/* This implementation is based on the (generic) Intel IA-PC HPET specification + * and the Intel ICH9 datasheet. + */ + /******************************************************************************* * Header Files * *******************************************************************************/ @@ -41,10 +45,17 @@ */ /** Base address for MMIO. */ +/* On ICH9, it is 0xFED0x000 where 'x' is 0-3, default 0. We do not support + * relocation as the platform firmware is responsible for configuring the + * HPET base address and the OS isn't expected to move it. + * WARNING: This has to match the ACPI tables! */ #define HPET_BASE 0xfed00000 +/* HPET reserves a 1K range. */ +#define HPET_BAR_SIZE 0x1000 + /** The number of timers for PIIX4 / PIIX3. */ -#define HPET_NUM_TIMERS_PIIX 3 +#define HPET_NUM_TIMERS_PIIX 3 /* Minimal implementation. */ /** The number of timers for ICH9. */ #define HPET_NUM_TIMERS_ICH9 4 @@ -59,7 +70,7 @@ #define HPET_CLK_PERIOD_ICH9 UINT32_C(69841279) /* - * Femptosecods in nanosecond + * Femtosecods in a nanosecond */ #define FS_PER_NS 1000000 @@ -70,10 +81,8 @@ #define HPET_TIMER_TYPE_EDGE 0 /* Delivery mode */ -/* Via APIC */ -#define HPET_TIMER_DELIVERY_APIC 0 -/* Via FSB */ -#define HPET_TIMER_DELIVERY_FSB 1 +#define HPET_TIMER_DELIVERY_APIC 0 /* Delivery through APIC. */ +#define HPET_TIMER_DELIVERY_FSB 1 /* Delivery through FSB. */ #define HPET_TIMER_CAP_FSB_INT_DEL (1 << 15) #define HPET_TIMER_CAP_PER_INT (1 << 4) @@ -81,32 +90,36 @@ #define HPET_CFG_ENABLE 0x001 /* ENABLE_CNF */ #define HPET_CFG_LEGACY 0x002 /* LEG_RT_CNF */ -#define HPET_ID 0x000 -#define HPET_PERIOD 0x004 -#define HPET_CFG 0x010 -#define HPET_STATUS 0x020 -#define HPET_COUNTER 0x0f0 -#define HPET_TN_CFG 0x000 -#define HPET_TN_CMP 0x008 -#define HPET_TN_ROUTE 0x010 +/* Register offsets in HPET space. */ +#define HPET_ID 0x000 /* Device ID. */ +#define HPET_PERIOD 0x004 /* Clock period in femtoseconds. */ +#define HPET_CFG 0x010 /* Configuration register. */ +#define HPET_STATUS 0x020 /* Status register. */ +#define HPET_COUNTER 0x0f0 /* Main HPET counter. */ + +/* Timer N offsets (within each timer's space). */ +#define HPET_TN_CFG 0x000 /* Timer N configuration. */ +#define HPET_TN_CMP 0x008 /* Timer N comparator. */ +#define HPET_TN_ROUTE 0x010 /* Timer N interrupt route. */ + #define HPET_CFG_WRITE_MASK 0x3 -#define HPET_TN_INT_TYPE RT_BIT_64(1) -#define HPET_TN_ENABLE RT_BIT_64(2) -#define HPET_TN_PERIODIC RT_BIT_64(3) -#define HPET_TN_PERIODIC_CAP RT_BIT_64(4) -#define HPET_TN_SIZE_CAP RT_BIT_64(5) -#define HPET_TN_SETVAL RT_BIT_64(6) -#define HPET_TN_32BIT RT_BIT_64(8) -#define HPET_TN_INT_ROUTE_MASK UINT64_C(0x3e00) -#define HPET_TN_CFG_WRITE_MASK UINT64_C(0x3e46) -#define HPET_TN_INT_ROUTE_SHIFT 9 -#define HPET_TN_INT_ROUTE_CAP_SHIFT 32 +#define HPET_TN_INT_TYPE RT_BIT_64(1) +#define HPET_TN_ENABLE RT_BIT_64(2) +#define HPET_TN_PERIODIC RT_BIT_64(3) +#define HPET_TN_PERIODIC_CAP RT_BIT_64(4) +#define HPET_TN_SIZE_CAP RT_BIT_64(5) +#define HPET_TN_SETVAL RT_BIT_64(6) +#define HPET_TN_32BIT RT_BIT_64(8) +#define HPET_TN_INT_ROUTE_MASK UINT64_C(0x3e00) +#define HPET_TN_CFG_WRITE_MASK UINT64_C(0x3e46) +#define HPET_TN_INT_ROUTE_SHIFT 9 +#define HPET_TN_INT_ROUTE_CAP_SHIFT 32 + #define HPET_TN_CFG_BITS_READONLY_OR_RESERVED 0xffff80b1U -/** Extract the timer count from the capabilities. - * @todo Check if the mask is correct. */ -#define HPET_CAP_GET_TIMERS(a_u32) ( ((a_u32) >> 8) & 0xf ) +/** Extract the timer count from the capabilities. */ +#define HPET_CAP_GET_TIMERS(a_u32) ( ((a_u32) >> 8) & 0x1f ) /** The version of the saved state. */ #define HPET_SAVED_STATE_VERSION 2 @@ -244,7 +257,7 @@ /** Global device lock. */ PDMCRITSECT csLock; - /** If we emulate ICH9 HPET (different frequency & timer count). */ + /** Whether we emulate ICH9 HPET (different frequency & timer count). */ bool fIch9; uint8_t padding0[7]; } HpetState; @@ -265,16 +278,6 @@ return hpet32bitTimer(pHpetTimer) ? UINT32_MAX : UINT64_MAX; } -DECLINLINE(uint32_t) hpetTimeAfter32(uint64_t a, uint64_t b) -{ - return ((int32_t)(b) - (int32_t)(a) <= 0); -} - -DECLINLINE(uint32_t) hpetTimeAfter64(uint64_t a, uint64_t b) -{ - return ((int64_t)(b) - (int64_t)(a) <= 0); -} - DECLINLINE(uint64_t) hpetTicksToNs(HpetState *pThis, uint64_t value) { return ASMMultU64ByU32DivByU32(value, pThis->u32Period, FS_PER_NS); @@ -346,22 +349,14 @@ static void hpetAdjustComparator(HpetTimer *pHpetTimer, uint64_t u64Now) { - uint64_t u64Period = pHpetTimer->u64Period; - if ( (pHpetTimer->u64Config & HPET_TN_PERIODIC) - && u64Period != 0) - { - /* While loop is suboptimal */ - if (hpet32bitTimer(pHpetTimer)) - { - while (hpetTimeAfter32(u64Now, pHpetTimer->u64Cmp)) - pHpetTimer->u64Cmp = (uint32_t)(pHpetTimer->u64Cmp + u64Period); - } - else - { - while (hpetTimeAfter64(u64Now, pHpetTimer->u64Cmp)) - pHpetTimer->u64Cmp += u64Period; - } - } + uint64_t u64Period = pHpetTimer->u64Period; + + if ((pHpetTimer->u64Config & HPET_TN_PERIODIC) && u64Period) + { + uint64_t cPeriods = (u64Now - pHpetTimer->u64Cmp) / u64Period; + + pHpetTimer->u64Cmp += (cPeriods + 1) * u64Period; + } } @@ -436,14 +431,15 @@ * @param iTimerReg The index of the timer register to read. * @param pu32Value Where to return the register value. * - * @remarks ASSUMES the caller does holds the HPET lock. + * @remarks ASSUMES the caller holds the HPET lock. */ static int hpetTimerRegRead32(HpetState const *pThis, uint32_t iTimerNo, uint32_t iTimerReg, uint32_t *pu32Value) { Assert(PDMCritSectIsOwner(&pThis->csLock)); - if (iTimerNo >= HPET_CAP_GET_TIMERS(pThis->u32Capabilities)) - { + if ( iTimerNo >= HPET_CAP_GET_TIMERS(pThis->u32Capabilities) /* The second check is only to satisfy Parfait; */ + || iTimerNo >= RT_ELEMENTS(pThis->aTimers) ) /* in practice, the number of configured timers */ + { /* will always be <= aTimers elements. */ static unsigned s_cOccurences = 0; if (s_cOccurences++ < 10) LogRel(("HPET: using timer above configured range: %d\n", iTimerNo)); @@ -510,7 +506,8 @@ { Assert(!PDMCritSectIsOwner(&pThis->csLock) || TMTimerIsLockOwner(pThis->aTimers[0].CTX_SUFF(pTimer))); - if (iTimerNo >= HPET_CAP_GET_TIMERS(pThis->u32Capabilities)) + if ( iTimerNo >= HPET_CAP_GET_TIMERS(pThis->u32Capabilities) + || iTimerNo >= RT_ELEMENTS(pThis->aTimers) ) /* Parfait - see above. */ { static unsigned s_cOccurences = 0; if (s_cOccurences++ < 10) @@ -524,10 +521,9 @@ case HPET_TN_CFG: { DEVHPET_LOCK_RETURN(pThis, VINF_IOM_HC_MMIO_WRITE); - Log(("write HPET_TN_CFG: %d: %x\n", iTimerNo, u32NewValue)); - uint64_t const iOldValue = (uint32_t)pHpetTimer->u64Config; + uint64_t u64Mask = HPET_TN_CFG_WRITE_MASK; - uint64_t u64Mask = HPET_TN_CFG_WRITE_MASK; + Log(("write HPET_TN_CFG: %d: %x\n", iTimerNo, u32NewValue)); if (pHpetTimer->u64Config & HPET_TN_PERIODIC_CAP) u64Mask |= HPET_TN_PERIODIC; @@ -551,12 +547,12 @@ } /* We only care about lower 32-bits so far */ - pHpetTimer->u64Config = hpetUpdateMasked(u32NewValue, iOldValue, u64Mask); + pHpetTimer->u64Config = hpetUpdateMasked(u32NewValue, pHpetTimer->u64Config, u64Mask); DEVHPET_UNLOCK(pThis); break; } - case HPET_TN_CFG + 4: /* Interrupt capabilities */ + case HPET_TN_CFG + 4: /* Interrupt capabilities - read only. */ { Log(("write HPET_TN_CFG + 4, useless\n")); break; @@ -568,11 +564,8 @@ Log(("write HPET_TN_CMP on %d: %#x\n", iTimerNo, u32NewValue)); if (pHpetTimer->u64Config & HPET_TN_PERIODIC) - { - u32NewValue &= hpetInvalidValue(pHpetTimer) >> 1; /** @todo check this in the docs and add a not why? */ - pHpetTimer->u64Period = RT_MAKE_U64(u32NewValue, pHpetTimer->u64Period); - } - pHpetTimer->u64Cmp = RT_MAKE_U64(u32NewValue, pHpetTimer->u64Cmp); + pHpetTimer->u64Period = RT_MAKE_U64(u32NewValue, RT_HI_U32(pHpetTimer->u64Period)); + pHpetTimer->u64Cmp = RT_MAKE_U64(u32NewValue, RT_HI_U32(pHpetTimer->u64Cmp)); pHpetTimer->u64Config &= ~HPET_TN_SETVAL; Log2(("after HPET_TN_CMP cmp=%#llx per=%#llx\n", pHpetTimer->u64Cmp, pHpetTimer->u64Period)); @@ -589,8 +582,8 @@ if (!hpet32bitTimer(pHpetTimer)) { if (pHpetTimer->u64Config & HPET_TN_PERIODIC) - pHpetTimer->u64Period = RT_MAKE_U64(pHpetTimer->u64Period, u32NewValue); - pHpetTimer->u64Cmp = RT_MAKE_U64(pHpetTimer->u64Cmp, u32NewValue); + pHpetTimer->u64Period = RT_MAKE_U64(RT_LO_U32(pHpetTimer->u64Period), u32NewValue); + pHpetTimer->u64Cmp = RT_MAKE_U64(RT_LO_U32(pHpetTimer->u64Cmp), u32NewValue); Log2(("after HPET_TN_CMP+4 cmp=%llx per=%llx tmr=%d\n", pHpetTimer->u64Cmp, pHpetTimer->u64Period, iTimerNo)); @@ -826,7 +819,7 @@ case HPET_COUNTER: { DEVHPET_LOCK_RETURN(pThis, VINF_IOM_HC_MMIO_WRITE); - pThis->u64HpetCounter = RT_MAKE_U64(u32NewValue, pThis->u64HpetCounter); + pThis->u64HpetCounter = RT_MAKE_U64(u32NewValue, RT_HI_U32(pThis->u64HpetCounter)); Log(("write HPET_COUNTER: %#x -> %llx\n", u32NewValue, pThis->u64HpetCounter)); DEVHPET_UNLOCK(pThis); break; @@ -835,7 +828,7 @@ case HPET_COUNTER + 4: { DEVHPET_LOCK_RETURN(pThis, VINF_IOM_HC_MMIO_WRITE); - pThis->u64HpetCounter = RT_MAKE_U64(pThis->u64HpetCounter, u32NewValue); + pThis->u64HpetCounter = RT_MAKE_U64(RT_LO_U32(pThis->u64HpetCounter), u32NewValue); Log(("write HPET_COUNTER + 4: %#x -> %llx\n", u32NewValue, pThis->u64HpetCounter)); DEVHPET_UNLOCK(pThis); break; @@ -1028,7 +1021,7 @@ static uint32_t hpetTimerCbGetIrq(struct HpetTimer const *pHpetTimer) { /* - * Per spec, in legacy mode HPET timers wired as: + * Per spec, in legacy mode the HPET timers are wired as follows: * timer 0: IRQ0 for PIC and IRQ2 for APIC * timer 1: IRQ8 for both PIC and APIC * @@ -1087,18 +1080,20 @@ uint64_t u64CurTick = hpetGetTicks(pThis); uint64_t u64Diff; - if ((pHpetTimer->u64Config & HPET_TN_PERIODIC) && (u64Period != 0)) + if (pHpetTimer->u64Config & HPET_TN_PERIODIC) { - hpetAdjustComparator(pHpetTimer, u64CurTick); - - u64Diff = hpetComputeDiff(pHpetTimer, u64CurTick); - - Log4(("HPET: periodical: next in %llu\n", hpetTicksToNs(pThis, u64Diff))); - TMTimerSetNano(pTimer, hpetTicksToNs(pThis, u64Diff)); + if (u64Period) { + hpetAdjustComparator(pHpetTimer, u64CurTick); + + u64Diff = hpetComputeDiff(pHpetTimer, u64CurTick); + + Log4(("HPET: periodic: next in %llu\n", hpetTicksToNs(pThis, u64Diff))); + TMTimerSetNano(pTimer, hpetTicksToNs(pThis, u64Diff)); + } } - else if ( hpet32bitTimer(pHpetTimer) - && !(pHpetTimer->u64Config & HPET_TN_PERIODIC)) + else if (hpet32bitTimer(pHpetTimer)) { + /* For 32-bit non-periodic timers, generate wrap-around interrupts. */ if (pHpetTimer->u8Wrap) { u64Diff = hpetComputeDiff(pHpetTimer, u64CurTick); @@ -1437,14 +1432,14 @@ * Register the MMIO range, PDM API requests page aligned * addresses and sizes. */ - rc = PDMDevHlpMMIORegister(pDevIns, HPET_BASE, 0x1000, pThis, + rc = PDMDevHlpMMIORegister(pDevIns, HPET_BASE, HPET_BAR_SIZE, pThis, IOMMMIO_FLAGS_READ_PASSTHRU | IOMMMIO_FLAGS_WRITE_PASSTHRU, hpetMMIOWrite, hpetMMIORead, "HPET Memory"); AssertRCReturn(rc, rc); if (fRCEnabled) { - rc = PDMDevHlpMMIORegisterRC(pDevIns, HPET_BASE, 0x1000, NIL_RTRCPTR /*pvUser*/, "hpetMMIOWrite", "hpetMMIORead"); + rc = PDMDevHlpMMIORegisterRC(pDevIns, HPET_BASE, HPET_BAR_SIZE, NIL_RTRCPTR /*pvUser*/, "hpetMMIOWrite", "hpetMMIORead"); AssertRCReturn(rc, rc); pThis->pHpetHlpRC = pThis->pHpetHlpR3->pfnGetRCHelpers(pDevIns); @@ -1453,7 +1448,7 @@ if (fR0Enabled) { - rc = PDMDevHlpMMIORegisterR0(pDevIns, HPET_BASE, 0x1000, NIL_RTR0PTR /*pvUser*/, + rc = PDMDevHlpMMIORegisterR0(pDevIns, HPET_BASE, HPET_BAR_SIZE, NIL_RTR0PTR /*pvUser*/, "hpetMMIOWrite", "hpetMMIORead"); AssertRCReturn(rc, rc); diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Devices/PC/DevPcArch.c virtualbox-4.1.44-dfsg/src/VBox/Devices/PC/DevPcArch.c --- virtualbox-4.1.12-dfsg/src/VBox/Devices/PC/DevPcArch.c 2012-04-02 13:28:30.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Devices/PC/DevPcArch.c 2015-11-11 15:08:16.000000000 +0000 @@ -197,7 +197,10 @@ * Fast reset? */ if (u32 & 1) + { + LogRel(("Reset initiated by system port A\n")); return PDMDevHlpVMReset(pDevIns); + } /* * A20 is the only thing we care about of the other stuff. diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Devices/PC/DevRTC.cpp virtualbox-4.1.44-dfsg/src/VBox/Devices/PC/DevRTC.cpp --- virtualbox-4.1.12-dfsg/src/VBox/Devices/PC/DevRTC.cpp 2012-04-02 13:28:30.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Devices/PC/DevRTC.cpp 2015-11-11 15:08:17.000000000 +0000 @@ -110,6 +110,7 @@ #define REG_B_AIE 0x20 #define REG_B_UIE 0x10 +#define CMOS_BANK_SIZE 0x80 /** The saved state version. */ #define RTC_SAVED_STATE_VERSION 4 @@ -374,7 +375,7 @@ uint32_t bank = (Port >> 1) & 1; if ((Port & 1) == 0) { - pThis->cmos_index[bank] = (u32 & 0x7f) + (bank * 128); + pThis->cmos_index[bank] = (u32 & 0x7f) + (bank * CMOS_BANK_SIZE); } else { @@ -691,7 +692,7 @@ rtcLiveExec(pDevIns, pSSM, SSM_PASS_FINAL); /* The state. */ - SSMR3PutMem(pSSM, pThis->cmos_data, 128); + SSMR3PutMem(pSSM, pThis->cmos_data, CMOS_BANK_SIZE); SSMR3PutU8(pSSM, pThis->cmos_index[0]); SSMR3PutS32(pSSM, pThis->current_tm.tm_sec); @@ -712,7 +713,7 @@ SSMR3PutBool(pSSM, pThis->fDisabledByHpet); - SSMR3PutMem(pSSM, &pThis->cmos_data[128], 128); + SSMR3PutMem(pSSM, &pThis->cmos_data[CMOS_BANK_SIZE], CMOS_BANK_SIZE); return SSMR3PutU8(pSSM, pThis->cmos_index[1]); } @@ -754,7 +755,7 @@ return VINF_SUCCESS; /* The state. */ - SSMR3GetMem(pSSM, pThis->cmos_data, 128); + SSMR3GetMem(pSSM, pThis->cmos_data, CMOS_BANK_SIZE); SSMR3GetU8(pSSM, &pThis->cmos_index[0]); SSMR3GetS32(pSSM, &pThis->current_tm.tm_sec); @@ -779,7 +780,7 @@ if (uVersion > RTC_SAVED_STATE_VERSION_VBOX_32PRE) { /* Second CMOS bank. */ - SSMR3GetMem(pSSM, &pThis->cmos_data[128], 128); + SSMR3GetMem(pSSM, &pThis->cmos_data[CMOS_BANK_SIZE], CMOS_BANK_SIZE); SSMR3GetU8(pSSM, &pThis->cmos_index[1]); } @@ -955,7 +956,7 @@ rtcCalcCRC(pThis); Log(("CMOS bank 0: \n%16.128Rhxd\n", &pThis->cmos_data[0])); - Log(("CMOS bank 1: \n%16.128Rhxd\n", &pThis->cmos_data[128])); + Log(("CMOS bank 1: \n%16.128Rhxd\n", &pThis->cmos_data[CMOS_BANK_SIZE])); return VINF_SUCCESS; } @@ -989,6 +990,35 @@ /** + * @copydoc + */ +static DECLCALLBACK(void) rtcReset(PPDMDEVINS pDevIns) +{ + RTCState *pThis = PDMINS_2_DATA(pDevIns, RTCState *); + + /* If shutdown status is non-zero, log its value. */ + if (pThis->cmos_data[0xF]) + { + LogRel(("CMOS shutdown status byte is %02X\n", pThis->cmos_data[0xF])); + +#if 0 /* It would be nice to log the warm reboot vector but alas, we already trashed it. */ + uint32_t u32WarmVector; + int rc; + rc = PDMDevHlpPhysRead(pDevIns, 0x467, &u32WarmVector, sizeof(u32WarmVector)); + AssertRC(rc); + LogRel((", 40:67 contains %04X:%04X\n", u32WarmVector >> 16, u32WarmVector & 0xFFFF)); +#endif + /* If we're going to trash the VM's memory, we also have to clear this. */ + pThis->cmos_data[0xF] = 0; + } + + /* Reset index values (important for second bank). */ + pThis->cmos_index[0] = 0; + pThis->cmos_index[1] = CMOS_BANK_SIZE; /* Point to start of second bank. */ +} + + +/** * @interface_method_impl{PDMDEVREG,pfnConstruct} */ static DECLCALLBACK(int) rtcConstruct(PPDMDEVINS pDevIns, int iInstance, PCFGMNODE pCfg) @@ -1055,6 +1085,8 @@ pThis->RtcReg.pfnRead = rtcCMOSRead; pThis->RtcReg.pfnWrite = rtcCMOSWrite; pThis->fDisabledByHpet = false; + pThis->cmos_index[1] = CMOS_BANK_SIZE; /* Point to start of second bank. */ + /* IBase */ pDevIns->IBase.pfnQueryInterface = rtcQueryInterface; @@ -1176,7 +1208,7 @@ /* pfnPowerOn */ NULL, /* pfnReset */ - NULL, + rtcReset, /* pfnSuspend */ NULL, /* pfnResume */ diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Devices/PC/DevSMC.cpp virtualbox-4.1.44-dfsg/src/VBox/Devices/PC/DevSMC.cpp --- virtualbox-4.1.12-dfsg/src/VBox/Devices/PC/DevSMC.cpp 2012-04-02 13:28:30.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Devices/PC/DevSMC.cpp 2015-11-11 15:08:17.000000000 +0000 @@ -236,15 +236,14 @@ * RTOnce callback that initializes g_fHaveOsk, g_abOsk0 and g_abOsk1. * * @returns VINF_SUCCESS. - * @param pvUser1Ignored Ignored. - * @param pvUser2Ignored Ignored. + * @param pvUserIgnored Ignored. */ -static DECLCALLBACK(int) devR0SmcInitOnce(void *pvUser1Ignored, void *pvUser2Ignored) +static DECLCALLBACK(int) devR0SmcInitOnce(void *pvUserIgnored) { g_fHaveOsk = devR0SmcQueryHostKey("OSK0", &g_abOsk0[0], sizeof(g_abOsk0)) && devR0SmcQueryHostKey("OSK1", &g_abOsk1[0], sizeof(g_abOsk1)); - NOREF(pvUser1Ignored); NOREF(pvUser2Ignored); + NOREF(pvUserIgnored); return VINF_SUCCESS; } @@ -258,7 +257,7 @@ if (uOperation == SMC_CALLR0_READ_OSK) { - rc = RTOnce(&g_SmcR0Once, devR0SmcInitOnce, NULL, NULL); + rc = RTOnce(&g_SmcR0Once, devR0SmcInitOnce, NULL); if ( RT_SUCCESS(rc) && g_fHaveOsk) { diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Devices/PC/Etherboot-src/Makefile.kmk virtualbox-4.1.44-dfsg/src/VBox/Devices/PC/Etherboot-src/Makefile.kmk --- virtualbox-4.1.12-dfsg/src/VBox/Devices/PC/Etherboot-src/Makefile.kmk 2012-04-02 13:28:30.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Devices/PC/Etherboot-src/Makefile.kmk 2015-11-11 15:08:17.000000000 +0000 @@ -93,11 +93,11 @@ $(PATH_TARGET)/bootlib.a -nrv2b_TEMPLATE = VBOXBLDPROG +nrv2b_TEMPLATE = VBoxBldProg nrv2b_SOURCES = util/nrv2b.c nrv2b_DEFS = ENCODE DECODE MAIN VERBOSE NDEBUG BITSIZE=32 ENDIAN=0 -makerom_TEMPLATE = VBOXBLDPROG +makerom_TEMPLATE = VBoxBldProg makerom_SOURCES = util/makerom.c makerom_SOURCES.win = util/getopt.c makerom_INCS.win = util diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Devices/Storage/DevAHCI.cpp virtualbox-4.1.44-dfsg/src/VBox/Devices/Storage/DevAHCI.cpp --- virtualbox-4.1.12-dfsg/src/VBox/Devices/Storage/DevAHCI.cpp 2012-04-02 13:28:34.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Devices/Storage/DevAHCI.cpp 2015-11-11 15:08:21.000000000 +0000 @@ -1262,7 +1262,7 @@ */ static int PortCmd_r(PAHCI ahci, PAHCIPort pAhciPort, uint32_t iReg, uint32_t *pu32Value) { - ahciLog(("%s: read regCMD=%#010x\n", __FUNCTION__, pAhciPort->regCMD)); + ahciLog(("%s: read regCMD=%#010x\n", __FUNCTION__, pAhciPort->regCMD | AHCI_PORT_CMD_CCS_SHIFT(pAhciPort->u32CurrentCommandSlot))); ahciLog(("%s: ICC=%d ASP=%d ALPE=%d DLAE=%d ATAPI=%d CPD=%d ISP=%d HPCP=%d PMA=%d CPS=%d CR=%d FR=%d ISS=%d CCS=%d FRE=%d CLO=%d POD=%d SUD=%d ST=%d\n", __FUNCTION__, (pAhciPort->regCMD & AHCI_PORT_CMD_ICC) >> 28, (pAhciPort->regCMD & AHCI_PORT_CMD_ASP) >> 27, (pAhciPort->regCMD & AHCI_PORT_CMD_ALPE) >> 26, (pAhciPort->regCMD & AHCI_PORT_CMD_DLAE) >> 25, @@ -1297,6 +1297,9 @@ (u32Value & AHCI_PORT_CMD_POD) >> 2, (u32Value & AHCI_PORT_CMD_SUD) >> 1, (u32Value & AHCI_PORT_CMD_ST))); + /* The PxCMD.CCS bits are R/O and maintained separately. */ + u32Value &= ~AHCI_PORT_CMD_CCS; + if (pAhciPort->fPoweredOn && pAhciPort->fSpunUp) { if (u32Value & AHCI_PORT_CMD_CLO) @@ -2432,6 +2435,8 @@ rc = ahciRegisterRead(pAhci, pAhci->regIdx, pu32, cb); if (rc == VINF_IOM_HC_MMIO_READ) rc = VINF_IOM_HC_IOPORT_READ; + else if (rc == VINF_IOM_MMIO_UNUSED_00) + rc = VERR_IOM_IOPORT_UNUSED; } } else @@ -3848,7 +3853,7 @@ /** * Sets the given media track type. */ -static uint32_t ataMediumTypeSet(PAHCIPort pAhciPort, uint32_t MediaTrackType) +static uint32_t ahciMediumTypeSet(PAHCIPort pAhciPort, uint32_t MediaTrackType) { return ASMAtomicXchgU32(&pAhciPort->MediaTrackType, MediaTrackType); } @@ -4012,13 +4017,15 @@ ataSCSIPadStr((uint8_t *)pAhciPortTaskState->pSGListHead[0].pvSeg + 16, "CD-ROM", 16); ataSCSIPadStr((uint8_t *)pAhciPortTaskState->pSGListHead[0].pvSeg + 32, "1.0", 4); } - else if (pAhciPortTaskState->aATAPICmd[0] == SCSI_READ_TOC_PMA_ATIP) + else if ( pAhciPortTaskState->aATAPICmd[0] == SCSI_READ_TOC_PMA_ATIP + && (pAhciPortTaskState->aATAPICmd[2] & 0xf) != 0x05 + && pAhciPortTaskState->aATAPICmd[6] != 0xaa) { /* Set the media type if we can detect it. */ uint8_t *pbBuf = (uint8_t *)pAhciPortTaskState->pSGListHead[0].pvSeg; /** @todo: Implemented only for formatted TOC now. */ - if ( (pAhciPortTaskState->aATAPICmd[1] & 0xf) == 0 + if ( (pAhciPortTaskState->aATAPICmd[2] & 0xf) == 0 && cbTransfer >= 6) { uint32_t NewMediaType; @@ -4029,7 +4036,7 @@ else NewMediaType = ATA_MEDIA_TYPE_CDDA; - OldMediaType = ataMediumTypeSet(pAhciPort, NewMediaType); + OldMediaType = ahciMediumTypeSet(pAhciPort, NewMediaType); if (OldMediaType != NewMediaType) LogRel(("AHCI: LUN#%d: CD-ROM passthrough, detected %s CD\n", @@ -4039,7 +4046,7 @@ : "audio")); } else /* Play safe and set to unknown. */ - ataMediumTypeSet(pAhciPort, ATA_MEDIA_TYPE_UNKNOWN); + ahciMediumTypeSet(pAhciPort, ATA_MEDIA_TYPE_UNKNOWN); } if (cbTransfer) Log3(("ATAPI PT data read (%d): %.*Rhxs\n", cbTransfer, cbTransfer, (uint8_t *)pAhciPortTaskState->pSGListHead[0].pvSeg)); @@ -6125,8 +6132,6 @@ &pAhciPortTaskState->cmdHdr, sizeof(CmdHdr)); } - /* Add the task to the cache. */ - ASMAtomicWritePtr(&pAhciPort->aCachedTasks[pAhciPortTaskState->uTag], pAhciPortTaskState); ASMAtomicDecU32(&pAhciPort->cTasksActive); if (!fRedo) @@ -6623,6 +6628,7 @@ pAhciPortTaskState = (PAHCIPORTTASKSTATE)RTMemAllocZ(sizeof(AHCIPORTTASKSTATE)); AssertMsg(pAhciPortTaskState, ("%s: Cannot allocate task state memory!\n")); pAhciPortTaskState->enmTxState = AHCITXSTATE_FREE; + pAhciPort->aCachedTasks[idx] = pAhciPortTaskState; } else pAhciPortTaskState = pAhciPort->aCachedTasks[idx]; @@ -6657,7 +6663,6 @@ ahciLog(("%s: Setting device into reset state\n", __FUNCTION__)); pAhciPort->fResetDevice = true; ahciSendD2HFis(pAhciPort, pAhciPortTaskState, pAhciPortTaskState->cmdFis, true); - pAhciPort->aCachedTasks[idx] = pAhciPortTaskState; ASMAtomicCmpXchgSize(&pAhciPortTaskState->enmTxState, AHCITXSTATE_FREE, AHCITXSTATE_ACTIVE, fXchg); AssertMsg(fXchg, ("Task is not active\n")); @@ -6666,7 +6671,6 @@ else if (pAhciPort->fResetDevice) /* The bit is not set and we are in a reset state. */ { ahciFinishStorageDeviceReset(pAhciPort, pAhciPortTaskState); - pAhciPort->aCachedTasks[idx] = pAhciPortTaskState; ASMAtomicCmpXchgSize(&pAhciPortTaskState->enmTxState, AHCITXSTATE_FREE, AHCITXSTATE_ACTIVE, fXchg); AssertMsg(fXchg, ("Task is not active\n")); @@ -7672,7 +7676,7 @@ if (pAhciPort->cNotifiedMediaChange < 2) pAhciPort->cNotifiedMediaChange = 2; ahciMediumInserted(pAhciPort); - ataMediumTypeSet(pAhciPort, ATA_MEDIA_TYPE_UNKNOWN); + ahciMediumTypeSet(pAhciPort, ATA_MEDIA_TYPE_UNKNOWN); } else AssertMsgFailed(("Hard disks don't have a mount interface!\n")); @@ -7699,7 +7703,7 @@ */ pAhciPort->cNotifiedMediaChange = 4; ahciMediumRemoved(pAhciPort); - ataMediumTypeSet(pAhciPort, ATA_MEDIA_TYPE_UNKNOWN); + ahciMediumTypeSet(pAhciPort, ATA_MEDIA_TYPE_UNKNOWN); } else AssertMsgFailed(("Hard disks don't have a mount interface!\n")); @@ -8114,7 +8118,15 @@ */ rc = PDMDevHlpDriverAttach(pDevIns, pAhciPort->iLUN, &pAhciPort->IBase, &pAhciPort->pDrvBase, NULL); if (RT_SUCCESS(rc)) + { rc = ahciR3ConfigureLUN(pDevIns, pAhciPort); + + /* + * In case there is a medium inserted. + */ + ahciMediumInserted(pAhciPort); + ahciMediumTypeSet(pAhciPort, ATA_MEDIA_TYPE_UNKNOWN); + } else AssertMsgFailed(("Failed to attach LUN#%d. rc=%Rrc\n", pAhciPort->iLUN, rc)); @@ -8781,7 +8793,8 @@ "Intel AHCI controller.\n", /* fFlags */ PDM_DEVREG_FLAGS_DEFAULT_BITS | PDM_DEVREG_FLAGS_RC | PDM_DEVREG_FLAGS_R0 | - PDM_DEVREG_FLAGS_FIRST_SUSPEND_NOTIFICATION | PDM_DEVREG_FLAGS_FIRST_POWEROFF_NOTIFICATION, + PDM_DEVREG_FLAGS_FIRST_SUSPEND_NOTIFICATION | PDM_DEVREG_FLAGS_FIRST_POWEROFF_NOTIFICATION | + PDM_DEVREG_FLAGS_FIRST_RESET_NOTIFICATION, /* fClass */ PDM_DEVREG_CLASS_STORAGE, /* cMaxInstances */ diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Devices/Storage/DevATA.cpp virtualbox-4.1.44-dfsg/src/VBox/Devices/Storage/DevATA.cpp --- virtualbox-4.1.12-dfsg/src/VBox/Devices/Storage/DevATA.cpp 2012-04-02 13:28:34.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Devices/Storage/DevATA.cpp 2015-11-11 15:08:21.000000000 +0000 @@ -4,7 +4,7 @@ */ /* - * Copyright (C) 2006-2011 Oracle Corporation + * Copyright (C) 2006-2012 Oracle Corporation * * This file is part of VirtualBox Open Source Edition (OSE), as * available from http://www.virtualbox.org. This file is free software; @@ -2068,13 +2068,15 @@ ataSCSIPadStr(s->CTX_SUFF(pbIOBuffer) + 16, "CD-ROM", 16); ataSCSIPadStr(s->CTX_SUFF(pbIOBuffer) + 32, "1.0", 4); } - else if (s->aATAPICmd[0] == SCSI_READ_TOC_PMA_ATIP) + else if ( s->aATAPICmd[0] == SCSI_READ_TOC_PMA_ATIP + && (s->aATAPICmd[2] & 0xf) != 0x05 + && s->aATAPICmd[6] != 0xaa) { /* Set the media type if we can detect it. */ uint8_t *pbBuf = s->CTX_SUFF(pbIOBuffer); /** @todo: Implemented only for formatted TOC now. */ - if ( (s->aATAPICmd[1] & 0xf) == 0 + if ( (s->aATAPICmd[2] & 0xf) == 0 && cbTransfer >= 6) { uint32_t NewMediaType; @@ -4531,60 +4533,128 @@ #endif /* IN_RING3 */ -static int ataDataWrite(PATACONTROLLER pCtl, uint32_t addr, uint32_t cbSize, const uint8_t *pbBuf) +/** + * Fallback for ataCopyPioData124 that handles unaligned and out of bounds cases. + * + * @param pIf The device interface to work with. + * @param pbDst The destination buffer. + * @param pbSrc The source buffer. + * @param cbCopy The number of bytes to copy, either 1, 2 or 4 bytes. + */ +DECL_NO_INLINE(static, void) ataCopyPioData124Slow(ATADevState *pIf, uint8_t *pbDst, const uint8_t *pbSrc, uint32_t cbCopy) +{ + uint32_t const offStart = pIf->iIOBufferPIODataStart; + uint32_t const offNext = offStart + cbCopy; + + if (offStart + cbCopy > pIf->cbIOBuffer) + { + Log(("%s: cbCopy=%#x offStart=%#x cbIOBuffer=%#x offNext=%#x (iIOBufferPIODataEnd=%#x)\n", + __FUNCTION__, cbCopy, offStart, pIf->cbIOBuffer, offNext, pIf->iIOBufferPIODataEnd)); + if (offStart < pIf->cbIOBuffer) + cbCopy = pIf->cbIOBuffer - offStart; + else + cbCopy = 0; + } + + switch (cbCopy) + { + case 4: pbDst[3] = pbSrc[3]; /* fall thru */ + case 3: pbDst[2] = pbSrc[2]; /* fall thru */ + case 2: pbDst[1] = pbSrc[1]; /* fall thru */ + case 1: pbDst[0] = pbSrc[0]; /* fall thru */ + case 0: break; + default: AssertFailed(); /* impossible */ + } + + pIf->iIOBufferPIODataStart = offNext; + +} + + +/** + * Work for ataDataWrite & ataDataRead that copies data without using memcpy. + * + * This also updates pIf->iIOBufferPIODataStart. + * + * The two buffers are either stack (32-bit aligned) or somewhere within + * pIf->pbIOBuffer. + * + * @param pIf The device interface to work with. + * @param pbDst The destination buffer. + * @param pbSrc The source buffer. + * @param cbCopy The number of bytes to copy, either 1, 2 or 4 bytes. + */ +DECLINLINE(void) ataCopyPioData124(ATADevState *pIf, uint8_t *pbDst, const uint8_t *pbSrc, uint32_t cbCopy) +{ + /* + * Quick bounds checking can be done by checking that the pbIOBuffer offset + * (iIOBufferPIODataStart) is aligned at the transfer size (which is ASSUMED + * to be 1, 2 or 4). However, since we're paranoid and don't currently + * trust iIOBufferPIODataEnd to be within bounds, we current check against the + * IO buffer size too. + */ + Assert(cbCopy == 1 || cbCopy == 2 || cbCopy == 4); + uint32_t const offStart = pIf->iIOBufferPIODataStart; + if (RT_LIKELY( !(offStart & (cbCopy - 1)) + && offStart + cbCopy <= pIf->cbIOBuffer)) + { + switch (cbCopy) + { + case 4: *(uint32_t *)pbDst = *(uint32_t const *)pbSrc; break; + case 2: *(uint16_t *)pbDst = *(uint16_t const *)pbSrc; break; + case 1: *pbDst = *pbSrc; break; + } + pIf->iIOBufferPIODataStart = offStart + cbCopy; + } + else + ataCopyPioData124Slow(pIf, pbDst, pbSrc, cbCopy); +} + +static int ataDataWrite(PATACONTROLLER pCtl, uint32_t addr, uint32_t cbSize, const uint8_t *pbSrc) { ATADevState *s = &pCtl->aIfs[pCtl->iSelectedIf]; - uint8_t *p; if (s->iIOBufferPIODataStart < s->iIOBufferPIODataEnd) { + uint8_t *pbDst = s->CTX_SUFF(pbIOBuffer) + s->iIOBufferPIODataStart; + Assert(s->uTxDir == PDMBLOCKTXDIR_TO_DEVICE); - p = s->CTX_SUFF(pbIOBuffer) + s->iIOBufferPIODataStart; #ifndef IN_RING3 /* All but the last transfer unit is simple enough for GC, but * sending a request to the async IO thread is too complicated. */ if (s->iIOBufferPIODataStart + cbSize < s->iIOBufferPIODataEnd) - { - memcpy(p, pbBuf, cbSize); - s->iIOBufferPIODataStart += cbSize; - } + ataCopyPioData124(s, pbDst, pbSrc, cbSize); else return VINF_IOM_HC_IOPORT_WRITE; #else /* IN_RING3 */ - memcpy(p, pbBuf, cbSize); - s->iIOBufferPIODataStart += cbSize; + ataCopyPioData124(s, pbDst, pbSrc, cbSize); if (s->iIOBufferPIODataStart >= s->iIOBufferPIODataEnd) ataPIOTransferFinish(pCtl, s); #endif /* !IN_RING3 */ } else Log2(("%s: DUMMY data\n", __FUNCTION__)); - Log3(("%s: addr=%#x val=%.*Rhxs\n", __FUNCTION__, addr, cbSize, pbBuf)); + Log3(("%s: addr=%#x val=%.*Rhxs\n", __FUNCTION__, addr, cbSize, pbSrc)); return VINF_SUCCESS; } -static int ataDataRead(PATACONTROLLER pCtl, uint32_t addr, uint32_t cbSize, uint8_t *pbBuf) +static int ataDataRead(PATACONTROLLER pCtl, uint32_t addr, uint32_t cbSize, uint8_t *pbDst) { ATADevState *s = &pCtl->aIfs[pCtl->iSelectedIf]; - uint8_t *p; if (s->iIOBufferPIODataStart < s->iIOBufferPIODataEnd) { Assert(s->uTxDir == PDMBLOCKTXDIR_FROM_DEVICE); - p = s->CTX_SUFF(pbIOBuffer) + s->iIOBufferPIODataStart; + uint8_t const *pbSrc = s->CTX_SUFF(pbIOBuffer) + s->iIOBufferPIODataStart; #ifndef IN_RING3 /* All but the last transfer unit is simple enough for GC, but * sending a request to the async IO thread is too complicated. */ if (s->iIOBufferPIODataStart + cbSize < s->iIOBufferPIODataEnd) - { - memcpy(pbBuf, p, cbSize); - s->iIOBufferPIODataStart += cbSize; - } + ataCopyPioData124(s, pbDst, pbSrc, cbSize); else return VINF_IOM_HC_IOPORT_READ; #else /* IN_RING3 */ - memcpy(pbBuf, p, cbSize); - s->iIOBufferPIODataStart += cbSize; + ataCopyPioData124(s, pbDst, pbSrc, cbSize); if (s->iIOBufferPIODataStart >= s->iIOBufferPIODataEnd) ataPIOTransferFinish(pCtl, s); #endif /* !IN_RING3 */ @@ -4592,9 +4662,9 @@ else { Log2(("%s: DUMMY data\n", __FUNCTION__)); - memset(pbBuf, '\xff', cbSize); + memset(pbDst, '\xff', cbSize); } - Log3(("%s: addr=%#x val=%.*Rhxs\n", __FUNCTION__, addr, cbSize, pbBuf)); + Log3(("%s: addr=%#x val=%.*Rhxs\n", __FUNCTION__, addr, cbSize, pbDst)); return VINF_SUCCESS; } @@ -7327,7 +7397,8 @@ " LUN #999 is the LED/Status connector.", /* fFlags */ PDM_DEVREG_FLAGS_DEFAULT_BITS | PDM_DEVREG_FLAGS_RC | PDM_DEVREG_FLAGS_R0 | - PDM_DEVREG_FLAGS_FIRST_SUSPEND_NOTIFICATION | PDM_DEVREG_FLAGS_FIRST_POWEROFF_NOTIFICATION, + PDM_DEVREG_FLAGS_FIRST_SUSPEND_NOTIFICATION | PDM_DEVREG_FLAGS_FIRST_POWEROFF_NOTIFICATION | + PDM_DEVREG_FLAGS_FIRST_RESET_NOTIFICATION, /* fClass */ PDM_DEVREG_CLASS_STORAGE, /* cMaxInstances */ diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Devices/Storage/DevBusLogic.cpp virtualbox-4.1.44-dfsg/src/VBox/Devices/Storage/DevBusLogic.cpp --- virtualbox-4.1.12-dfsg/src/VBox/Devices/Storage/DevBusLogic.cpp 2012-04-02 13:28:34.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Devices/Storage/DevBusLogic.cpp 2015-11-11 15:08:21.000000000 +0000 @@ -4,7 +4,7 @@ */ /* - * Copyright (C) 2006-2009 Oracle Corporation + * Copyright (C) 2006-2012 Oracle Corporation * * This file is part of VirtualBox Open Source Edition (OSE), as * available from http://www.virtualbox.org. This file is free software; @@ -3102,7 +3102,7 @@ if (fBootable) { /* Register I/O port space in ISA region for BIOS access. */ - rc = PDMDevHlpIOPortRegister(pDevIns, BUSLOGIC_ISA_IO_PORT, 3, NULL, + rc = PDMDevHlpIOPortRegister(pDevIns, BUSLOGIC_ISA_IO_PORT, 4, NULL, buslogicIsaIOPortWrite, buslogicIsaIOPortRead, buslogicIsaIOPortWriteStr, buslogicIsaIOPortReadStr, "BusLogic BIOS"); @@ -3216,7 +3216,8 @@ "BusLogic BT-958 SCSI host adapter.\n", /* fFlags */ PDM_DEVREG_FLAGS_DEFAULT_BITS | PDM_DEVREG_FLAGS_RC | PDM_DEVREG_FLAGS_R0 | - PDM_DEVREG_FLAGS_FIRST_SUSPEND_NOTIFICATION | PDM_DEVREG_FLAGS_FIRST_POWEROFF_NOTIFICATION, + PDM_DEVREG_FLAGS_FIRST_SUSPEND_NOTIFICATION | PDM_DEVREG_FLAGS_FIRST_POWEROFF_NOTIFICATION | + PDM_DEVREG_FLAGS_FIRST_RESET_NOTIFICATION, /* fClass */ PDM_DEVREG_CLASS_STORAGE, /* cMaxInstances */ diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Devices/Storage/DevLsiLogicSCSI.cpp virtualbox-4.1.44-dfsg/src/VBox/Devices/Storage/DevLsiLogicSCSI.cpp --- virtualbox-4.1.12-dfsg/src/VBox/Devices/Storage/DevLsiLogicSCSI.cpp 2012-04-02 13:28:34.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Devices/Storage/DevLsiLogicSCSI.cpp 2015-11-11 15:08:21.000000000 +0000 @@ -4,7 +4,7 @@ */ /* - * Copyright (C) 2006-2009 Oracle Corporation + * Copyright (C) 2006-2012 Oracle Corporation * * This file is part of VirtualBox Open Source Edition (OSE), as * available from http://www.virtualbox.org. This file is free software; @@ -5229,12 +5229,12 @@ if (fBootable) { if (pThis->enmCtrlType == LSILOGICCTRLTYPE_SCSI_SPI) - rc = PDMDevHlpIOPortRegister(pDevIns, LSILOGIC_ISA_IO_PORT, 3, NULL, + rc = PDMDevHlpIOPortRegister(pDevIns, LSILOGIC_ISA_IO_PORT, 4, NULL, lsilogicIsaIOPortWrite, lsilogicIsaIOPortRead, lsilogicIsaIOPortWriteStr, lsilogicIsaIOPortReadStr, "LsiLogic BIOS"); else if (pThis->enmCtrlType == LSILOGICCTRLTYPE_SCSI_SAS) - rc = PDMDevHlpIOPortRegister(pDevIns, LSILOGIC_SAS_ISA_IO_PORT, 3, NULL, + rc = PDMDevHlpIOPortRegister(pDevIns, LSILOGIC_SAS_ISA_IO_PORT, 4, NULL, lsilogicIsaIOPortWrite, lsilogicIsaIOPortRead, lsilogicIsaIOPortWriteStr, lsilogicIsaIOPortReadStr, "LsiLogic SAS BIOS"); @@ -5345,7 +5345,8 @@ "LSI Logic SAS1068 controller.\n", /* fFlags */ PDM_DEVREG_FLAGS_DEFAULT_BITS | PDM_DEVREG_FLAGS_RC | PDM_DEVREG_FLAGS_R0 | - PDM_DEVREG_FLAGS_FIRST_SUSPEND_NOTIFICATION | PDM_DEVREG_FLAGS_FIRST_POWEROFF_NOTIFICATION, + PDM_DEVREG_FLAGS_FIRST_SUSPEND_NOTIFICATION | PDM_DEVREG_FLAGS_FIRST_POWEROFF_NOTIFICATION | + PDM_DEVREG_FLAGS_FIRST_RESET_NOTIFICATION, /* fClass */ PDM_DEVREG_CLASS_STORAGE, /* cMaxInstances */ diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Devices/Storage/DrvVD.cpp virtualbox-4.1.44-dfsg/src/VBox/Devices/Storage/DrvVD.cpp --- virtualbox-4.1.12-dfsg/src/VBox/Devices/Storage/DrvVD.cpp 2012-04-02 13:28:34.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Devices/Storage/DrvVD.cpp 2015-11-11 15:08:21.000000000 +0000 @@ -2122,6 +2122,7 @@ bool fHostIP = false; bool fUseNewIo = false; bool fUseBlockCache = false; + bool fInformAboutZeroBlocks = false; unsigned iLevel = 0; PCFGMNODE pCurNode = pCfg; VDTYPE enmType = VDTYPE_HDD; @@ -2139,7 +2140,7 @@ "ReadOnly\0MaybeReadOnly\0TempReadOnly\0Shareable\0HonorZeroWrites\0" "HostIPStack\0UseNewIo\0BootAcceleration\0BootAccelerationBuffer\0" "SetupMerge\0MergeSource\0MergeTarget\0BwGroup\0Type\0BlockCache\0" - "CachePath\0CacheFormat\0"); + "CachePath\0CacheFormat\0InformAboutZeroBlocks\0"); } else { @@ -2261,6 +2262,13 @@ } else rc = VINF_SUCCESS; + rc = CFGMR3QueryBoolDef(pCurNode, "InformAboutZeroBlocks", &fInformAboutZeroBlocks, false); + if (RT_FAILURE(rc)) + { + rc = PDMDRV_SET_ERROR(pDrvIns, rc, + N_("DrvVD: Configuration error: Querying \"InformAboutZeroBlocks\" as boolean failed")); + break; + } char *psz; rc = CFGMR3QueryStringAlloc(pCfg, "Type", &psz); @@ -2569,6 +2577,8 @@ uOpenFlags |= VD_OPEN_FLAGS_ASYNC_IO; if (pThis->fShareable) uOpenFlags |= VD_OPEN_FLAGS_SHAREABLE; + if (fInformAboutZeroBlocks) + uOpenFlags |= VD_OPEN_FLAGS_INFORM_ABOUT_ZERO_BLOCKS; /* Try to open backend in async I/O mode first. */ rc = VDOpen(pThis->pDisk, pszFormat, pszName, uOpenFlags, pImage->pVDIfsImage); diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Devices/Storage/fdc.c virtualbox-4.1.44-dfsg/src/VBox/Devices/Storage/fdc.c --- virtualbox-4.1.12-dfsg/src/VBox/Devices/Storage/fdc.c 2012-04-02 13:28:34.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Devices/Storage/fdc.c 2015-11-11 15:08:21.000000000 +0000 @@ -1514,7 +1514,7 @@ FLOPPY_ERROR("controller not ready for reading\n"); return 0; } - pos = fdctrl->data_pos; + pos = fdctrl->data_pos % FD_SECTOR_LEN; if (fdctrl->msr & FD_MSR_NONDMA) { pos %= FD_SECTOR_LEN; if (pos == 0) { @@ -1736,7 +1736,7 @@ { fdrive_t *cur_drv = get_cur_drv(fdctrl); - /* XXX: should set main status register to busy */ + fdctrl->msr &= ~FD_MSR_RQM; cur_drv->head = (fdctrl->fifo[1] >> 2) & 1; #ifdef VBOX TMTimerSetMillies(fdctrl->result_timer, 1000 / 50); @@ -1897,22 +1897,25 @@ { fdrive_t *cur_drv = get_cur_drv(fdctrl); - if (fdctrl->fifo[fdctrl->data_pos - 1] & 0x80) { + /* This command takes a variable number of parameters. It can be terminated + * at any time if the high bit of a parameter is set. Once there are 6 bytes + * in the FIFO (command + 5 parameter bytes), data_len/data_pos will be 7. + */ + if (fdctrl->data_len == 7 || (fdctrl->fifo[fdctrl->data_pos - 1] & 0x80)) { + /* Command parameters done */ if (fdctrl->fifo[fdctrl->data_pos - 1] & 0x40) { - fdctrl->fifo[0] = fdctrl->fifo[1]; + /* Data is echoed, but not stored! */ + fdctrl->fifo[0] = fdctrl->data_len > 2 ? fdctrl->fifo[1] : 0; + fdctrl->fifo[1] = fdctrl->data_len > 3 ? fdctrl->fifo[2] : 0; fdctrl->fifo[2] = 0; fdctrl->fifo[3] = 0; fdctrl_set_fifo(fdctrl, 4, 0); } else { fdctrl_reset_fifo(fdctrl); } - } else if (fdctrl->data_len > 7) { - /* ERROR */ - fdctrl->fifo[0] = 0x80 | - (cur_drv->head << 2) | GET_CUR_DRV(fdctrl); - fdctrl_set_fifo(fdctrl, 1, 0); - } + } else + fdctrl->data_len++; /* Wait for another byte. */ } static void fdctrl_handle_relative_seek_out(fdctrl_t *fdctrl, int direction) @@ -1977,7 +1980,7 @@ { FD_CMD_CONFIGURE, 0xff, "CONFIGURE", 3, fdctrl_handle_configure }, { FD_CMD_POWERDOWN_MODE, 0xff, "POWERDOWN MODE", 2, fdctrl_handle_powerdown_mode }, { FD_CMD_OPTION, 0xff, "OPTION", 1, fdctrl_handle_option }, - { FD_CMD_DRIVE_SPECIFICATION_COMMAND, 0xff, "DRIVE SPECIFICATION COMMAND", 5, fdctrl_handle_drive_specification_command }, + { FD_CMD_DRIVE_SPECIFICATION_COMMAND, 0xff, "DRIVE SPECIFICATION COMMAND", 1, fdctrl_handle_drive_specification_command }, { FD_CMD_RELATIVE_SEEK_OUT, 0xff, "RELATIVE SEEK OUT", 2, fdctrl_handle_relative_seek_out }, { FD_CMD_FORMAT_AND_WRITE, 0xff, "FORMAT AND WRITE", 10, fdctrl_unimplemented }, { FD_CMD_RELATIVE_SEEK_IN, 0xff, "RELATIVE SEEK IN", 2, fdctrl_handle_relative_seek_in }, @@ -2038,7 +2041,7 @@ } FLOPPY_DPRINTF("%s: %02x\n", __func__, value); - fdctrl->fifo[fdctrl->data_pos++] = value; + fdctrl->fifo[fdctrl->data_pos++ % FD_SECTOR_LEN] = value; if (fdctrl->data_pos == fdctrl->data_len) { /* We now have all parameters * and will be able to treat the command diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Devices/USB/darwin/USBProxyDevice-darwin.cpp virtualbox-4.1.44-dfsg/src/VBox/Devices/USB/darwin/USBProxyDevice-darwin.cpp --- virtualbox-4.1.12-dfsg/src/VBox/Devices/USB/darwin/USBProxyDevice-darwin.cpp 2012-04-02 13:28:34.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Devices/USB/darwin/USBProxyDevice-darwin.cpp 2015-11-11 15:08:22.000000000 +0000 @@ -255,7 +255,7 @@ * @param pvUser1 NULL, ignored. * @param pvUser2 NULL, ignored. */ -static DECLCALLBACK(int32_t) usbProxyDarwinInitOnce(void *pvUser1, void *pvUser2) +static DECLCALLBACK(int32_t) usbProxyDarwinInitOnce(void *pvUser1) { int rc; kern_return_t krc = IOMasterPort(MACH_PORT_NULL, &g_MasterPort); @@ -1009,7 +1009,7 @@ /* * Init globals once. */ - vrc = RTOnce(&g_usbProxyDarwinOnce, usbProxyDarwinInitOnce, NULL, NULL); + vrc = RTOnce(&g_usbProxyDarwinOnce, usbProxyDarwinInitOnce, NULL); AssertRCReturn(vrc, vrc); /* diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Devices/VMMDev/VMMDev.cpp virtualbox-4.1.44-dfsg/src/VBox/Devices/VMMDev/VMMDev.cpp --- virtualbox-4.1.12-dfsg/src/VBox/Devices/VMMDev/VMMDev.cpp 2012-04-02 13:28:35.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Devices/VMMDev/VMMDev.cpp 2015-11-11 15:08:22.000000000 +0000 @@ -535,6 +535,9 @@ if (pThis->pDrv && pThis->pDrv->pfnUpdateGuestInfo2) pThis->pDrv->pfnUpdateGuestInfo2(pThis->pDrv, uFullVersion, pszName, pInfo2->additionsRevision, pInfo2->additionsFeatures); + /* Clear our IRQ in case it was high for whatever reason. */ + PDMDevHlpPCISetIrqNoWait (pThis->pDevIns, 0, 0); + return VINF_SUCCESS; } @@ -795,6 +798,20 @@ #endif /* VBOX_WITH_PAGE_SHARING */ +static int vmmdevVerifyPointerShape(VMMDevReqMousePointer *pReq) +{ + /* Should be enough for most mouse pointers. */ + if (pReq->width > 8192 || pReq->height > 8192) + return VERR_INVALID_PARAMETER; + + uint32_t cbShape = (pReq->width + 7) / 8 * pReq->height; /* size of the AND mask */ + cbShape = ((cbShape + 3) & ~3) + pReq->width * 4 * pReq->height; /* + gap + size of the XOR mask */ + if (RT_UOFFSETOF(VMMDevReqMousePointer, pointerData) + cbShape > pReq->header.size) + return VERR_INVALID_PARAMETER; + + return VINF_SUCCESS; +} + /** * Port I/O Handler for the generic request interface * @see FNIOMIOPORTOUT for details. @@ -922,7 +939,11 @@ } if (pThis->fu32AdditionsOk) + { pRequestHeader->rc = VINF_SUCCESS; + /* Clear our IRQ in case it was high for whatever reason. */ + PDMDevHlpPCISetIrqNoWait (pThis->pDevIns, 0, 0); + } else pRequestHeader->rc = VERR_VERSION_MISMATCH; break; @@ -1163,6 +1184,10 @@ /* forward call to driver */ if (fShape) { + pRequestHeader->rc = vmmdevVerifyPointerShape(pointerShape); + if (RT_FAILURE(pRequestHeader->rc)) + break; + pThis->pDrv->pfnUpdatePointerShape(pThis->pDrv, fVisible, fAlpha, diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Devices/VMMDev/VMMDevHGCM.cpp virtualbox-4.1.44-dfsg/src/VBox/Devices/VMMDev/VMMDevHGCM.cpp --- virtualbox-4.1.12-dfsg/src/VBox/Devices/VMMDev/VMMDevHGCM.cpp 2012-04-02 13:28:35.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Devices/VMMDev/VMMDevHGCM.cpp 2015-11-11 15:08:22.000000000 +0000 @@ -97,6 +97,9 @@ */ VBOXHGCMSVCPARM *paHostParms; + /* Number of elements in paHostParms */ + uint32_t cHostParms; + /* Linear pointer parameters information. */ int cLinPtrs; @@ -250,8 +253,6 @@ { int rc = VINF_SUCCESS; - AssertRelease (u32Size > 0); - VBOXHGCMLINPTR *pLinPtr = &paLinPtrs[iLinPtr]; /* Take the offset into the current page also into account! */ @@ -294,8 +295,6 @@ GCPtr += PAGE_SIZE; } - AssertRelease (iPage == cPages); - return rc; } @@ -310,7 +309,7 @@ VBOXHGCMLINPTR *pLinPtr = &paLinPtrs[iLinPtr]; - AssertRelease (u32Size > 0 && iParm == (uint32_t)pLinPtr->iParm); + AssertLogRelReturn(u32Size > 0 && iParm == (uint32_t)pLinPtr->iParm, VERR_INVALID_PARAMETER); RTGCPHYS GCPhysDst = pLinPtr->paPages[0] + pLinPtr->offFirstPage; uint8_t *pu8Src = (uint8_t *)pvHost; @@ -332,12 +331,17 @@ if (cbWrite >= u32Size) { - PDMDevHlpPhysWrite(pDevIns, GCPhysDst, pu8Src, u32Size); + rc = PDMDevHlpPhysWrite(pDevIns, GCPhysDst, pu8Src, u32Size); + if (RT_FAILURE(rc)) + break; + u32Size = 0; break; } PDMDevHlpPhysWrite(pDevIns, GCPhysDst, pu8Src, cbWrite); + if (RT_FAILURE(rc)) + break; /* next */ u32Size -= cbWrite; @@ -346,8 +350,10 @@ GCPhysDst = pLinPtr->paPages[iPage]; } - AssertRelease (iPage == pLinPtr->cPages); - Assert(u32Size == 0); + if (RT_SUCCESS(rc)) + { + AssertLogRelReturn(iPage == pLinPtr->cPages, VERR_INVALID_PARAMETER); + } return rc; } @@ -498,6 +504,9 @@ pHGCMConnectCopy->loc.type = VMMDevHGCMLoc_LocalHost_Existing; rc = pVMMDevState->pHGCMDrv->pfnConnect (pVMMDevState->pHGCMDrv, pCmd, &pHGCMConnectCopy->loc, &pHGCMConnectCopy->u32ClientID); + + if (RT_FAILURE(rc)) + vmmdevHGCMRemoveCommand(pVMMDevState, pCmd); } else { @@ -537,6 +546,8 @@ { *pfHGCMCalled = true; } + /* else + * ... the caller will also execute vmmdevHGCMRemoveCommand() for us */ } else { @@ -563,6 +574,9 @@ pCmd->paLinPtrs = NULL; rc = pVMMDevState->pHGCMDrv->pfnDisconnect (pVMMDevState->pHGCMDrv, pCmd, pHGCMDisconnect->u32ClientID); + + if (RT_FAILURE(rc)) + vmmdevHGCMRemoveCommand(pVMMDevState, pCmd); } else { @@ -597,6 +611,8 @@ { *pfHGCMCalled = true; } + /* else + * ... the caller will also execute vmmdevHGCMRemoveCommand() for us */ } else { @@ -623,6 +639,20 @@ Log(("vmmdevHGCMCall: cParms = %d\n", cParms)); /* + * Sane upper limit. + */ + if (cParms > VMMDEV_MAX_HGCM_PARMS) + { + static int s_cRelWarn; + if (s_cRelWarn < 50) + { + s_cRelWarn++; + LogRel(("VMMDev: request packet with too many parameters (%d). Refusing operation.\n", cParms)); + } + return VERR_INVALID_PARAMETER; + } + + /* * Compute size of required memory buffer. */ @@ -654,6 +684,12 @@ if (pGuestParm->u.Pointer.size > 0) { /* Only pointers with some actual data are counted. */ + if (pGuestParm->u.Pointer.size > VMMDEV_MAX_HGCM_DATA_SIZE - cbCmdSize) + { + rc = VERR_INVALID_PARAMETER; + break; + } + cbCmdSize += pGuestParm->u.Pointer.size; cLinPtrs++; @@ -667,6 +703,12 @@ case VMMDevHGCMParmType_PageList: { + if (pGuestParm->u.PageList.size > VMMDEV_MAX_HGCM_DATA_SIZE - cbCmdSize) + { + rc = VERR_INVALID_PARAMETER; + break; + } + cbCmdSize += pGuestParm->u.PageList.size; Log(("vmmdevHGCMCall: pagelist size = %d\n", pGuestParm->u.PageList.size)); } break; @@ -706,6 +748,12 @@ if (pGuestParm->u.Pointer.size > 0) { /* Only pointers with some actual data are counted. */ + if (pGuestParm->u.Pointer.size > VMMDEV_MAX_HGCM_DATA_SIZE - cbCmdSize) + { + rc = VERR_INVALID_PARAMETER; + break; + } + cbCmdSize += pGuestParm->u.Pointer.size; cLinPtrs++; @@ -719,6 +767,12 @@ case VMMDevHGCMParmType_PageList: { + if (pGuestParm->u.PageList.size > VMMDEV_MAX_HGCM_DATA_SIZE - cbCmdSize) + { + rc = VERR_INVALID_PARAMETER; + break; + } + cbCmdSize += pGuestParm->u.PageList.size; Log(("vmmdevHGCMCall: pagelist size = %d\n", pGuestParm->u.PageList.size)); } break; @@ -743,23 +797,21 @@ return rc; } - PVBOXHGCMCMD pCmd = (PVBOXHGCMCMD)RTMemAlloc (cbCmdSize); + PVBOXHGCMCMD pCmd = (PVBOXHGCMCMD)RTMemAllocZ(cbCmdSize); if (pCmd == NULL) { return VERR_NO_MEMORY; } - memset (pCmd, 0, sizeof (*pCmd)); - pCmd->paHostParms = NULL; pCmd->cLinPtrs = cLinPtrs; pCmd->cLinPtrPages = cLinPtrPages; if (cLinPtrs > 0) { - pCmd->paLinPtrs = (VBOXHGCMLINPTR *)RTMemAlloc ( sizeof (VBOXHGCMLINPTR) * cLinPtrs - + sizeof (RTGCPHYS) * cLinPtrPages); + pCmd->paLinPtrs = (VBOXHGCMLINPTR *)RTMemAllocZ( sizeof (VBOXHGCMLINPTR) * cLinPtrs + + sizeof (RTGCPHYS) * cLinPtrPages); if (pCmd->paLinPtrs == NULL) { @@ -787,6 +839,7 @@ uint8_t *pcBuf = (uint8_t *)pHostParm + cParms * sizeof (VBOXHGCMSVCPARM); pCmd->paHostParms = pHostParm; + pCmd->cHostParms = cParms; uint32_t iLinPtr = 0; RTGCPHYS *pPages = (RTGCPHYS *)((uint8_t *)pCmd->paLinPtrs + sizeof (VBOXHGCMLINPTR) *cLinPtrs); @@ -1135,6 +1188,20 @@ Log(("vmmdevHGCMCall: cParms = %d\n", cParms)); /* + * Sane upper limit. + */ + if (cParms > VMMDEV_MAX_HGCM_PARMS) + { + static int s_cRelWarn; + if (s_cRelWarn < 50) + { + s_cRelWarn++; + LogRel(("VMMDev: request packet with too many parameters (%d). Refusing operation.\n", cParms)); + } + return VERR_INVALID_PARAMETER; + } + + /* * Compute size of required memory buffer. */ @@ -1289,6 +1356,7 @@ uint8_t *pu8Buf = (uint8_t *)pHostParm + cParms * sizeof (VBOXHGCMSVCPARM); pCmd->paHostParms = pHostParm; + pCmd->cHostParms = cParms; uint32_t iParm; int iLinPtr = 0; @@ -1664,6 +1732,8 @@ { *pfHGCMCalled = true; } + /* else + * ... the caller will also execute vmmdevHGCMRemoveCommand() for us */ } return rc; @@ -1758,6 +1828,88 @@ return VERR_INVALID_PARAMETER; } +#ifdef VBOX_WITH_64_BITS_GUESTS +static int vmmdevHGCMParmVerify64(HGCMFunctionParameter64 *pGuestParm, VBOXHGCMSVCPARM *pHostParm) +{ + int rc = VERR_INVALID_PARAMETER; + + switch (pGuestParm->type) + { + case VMMDevHGCMParmType_32bit: + if (pHostParm->type == VBOX_HGCM_SVC_PARM_32BIT) + rc = VINF_SUCCESS; + break; + + case VMMDevHGCMParmType_64bit: + if (pHostParm->type == VBOX_HGCM_SVC_PARM_64BIT) + rc = VINF_SUCCESS; + break; + + case VMMDevHGCMParmType_LinAddr_In: /* In (read) */ + case VMMDevHGCMParmType_LinAddr_Out: /* Out (write) */ + case VMMDevHGCMParmType_LinAddr: /* In & Out */ + if ( pHostParm->type == VBOX_HGCM_SVC_PARM_PTR + && pGuestParm->u.Pointer.size >= pHostParm->u.pointer.size) + rc = VINF_SUCCESS; + break; + + case VMMDevHGCMParmType_PageList: + if ( pHostParm->type == VBOX_HGCM_SVC_PARM_PTR + && pGuestParm->u.PageList.size >= pHostParm->u.pointer.size) + rc = VINF_SUCCESS; + break; + + default: + AssertLogRelMsgFailed(("hgcmCompleted: invalid parameter type %08X\n", pGuestParm->type)); + break; + } + + return rc; +} +#endif /* VBOX_WITH_64_BITS_GUESTS */ + +#ifdef VBOX_WITH_64_BITS_GUESTS +static int vmmdevHGCMParmVerify32(HGCMFunctionParameter32 *pGuestParm, VBOXHGCMSVCPARM *pHostParm) +#else +static int vmmdevHGCMParmVerify32(HGCMFunctionParameter *pGuestParm, VBOXHGCMSVCPARM *pHostParm) +#endif +{ + int rc = VERR_INVALID_PARAMETER; + + switch (pGuestParm->type) + { + case VMMDevHGCMParmType_32bit: + if (pHostParm->type == VBOX_HGCM_SVC_PARM_32BIT) + rc = VINF_SUCCESS; + break; + + case VMMDevHGCMParmType_64bit: + if (pHostParm->type == VBOX_HGCM_SVC_PARM_64BIT) + rc = VINF_SUCCESS; + break; + + case VMMDevHGCMParmType_LinAddr_In: /* In (read) */ + case VMMDevHGCMParmType_LinAddr_Out: /* Out (write) */ + case VMMDevHGCMParmType_LinAddr: /* In & Out */ + if ( pHostParm->type == VBOX_HGCM_SVC_PARM_PTR + && pGuestParm->u.Pointer.size >= pHostParm->u.pointer.size) + rc = VINF_SUCCESS; + break; + + case VMMDevHGCMParmType_PageList: + if ( pHostParm->type == VBOX_HGCM_SVC_PARM_PTR + && pGuestParm->u.PageList.size >= pHostParm->u.pointer.size) + rc = VINF_SUCCESS; + break; + + default: + AssertLogRelMsgFailed(("hgcmCompleted: invalid parameter type %08X\n", pGuestParm->type)); + break; + } + + return rc; +} + #define PDMIHGCMPORT_2_VMMDEVSTATE(pInterface) ( (VMMDevState *) ((uintptr_t)pInterface - RT_OFFSETOF(VMMDevState, IHGCMPort)) ) DECLCALLBACK(void) hgcmCompletedWorker (PPDMIHGCMPORT pInterface, int32_t result, PVBOXHGCMCMD pCmd) @@ -1858,6 +2010,8 @@ VMMDevHGCMCall *pHGCMCall = (VMMDevHGCMCall *)pHeader; uint32_t cParms = pHGCMCall->cParms; + if (cParms != pCmd->cHostParms) + rc = VERR_INVALID_PARAMETER; VBOXHGCMSVCPARM *pHostParm = pCmd->paHostParms; @@ -1866,8 +2020,12 @@ HGCMFunctionParameter64 *pGuestParm = VMMDEV_HGCM_CALL_PARMS64(pHGCMCall); - for (i = 0; i < cParms; i++, pGuestParm++, pHostParm++) + for (i = 0; i < cParms && RT_SUCCESS(rc); i++, pGuestParm++, pHostParm++) { + rc = vmmdevHGCMParmVerify64(pGuestParm, pHostParm); + if (RT_FAILURE(rc)) + break; + switch (pGuestParm->type) { case VMMDevHGCMParmType_32bit: @@ -1894,7 +2052,6 @@ /* Use the saved page list to write data back to the guest RAM. */ rc = vmmdevHGCMWriteLinPtr (pVMMDevState->pDevIns, i, pHostParm->u.pointer.addr, size, iLinPtr, pCmd->paLinPtrs); - AssertReleaseRC(rc); } /* All linptrs with size > 0 were saved. Advance the index to the next linptr. */ @@ -1945,7 +2102,8 @@ default: { /* This indicates that the guest request memory was corrupted. */ - AssertReleaseMsgFailed(("hgcmCompleted: invalid parameter type %08X\n", pGuestParm->type)); + rc = VERR_INVALID_PARAMETER; + break; } } } @@ -1961,6 +2119,8 @@ VMMDevHGCMCall *pHGCMCall = (VMMDevHGCMCall *)pHeader; uint32_t cParms = pHGCMCall->cParms; + if (cParms != pCmd->cHostParms) + rc = VERR_INVALID_PARAMETER; VBOXHGCMSVCPARM *pHostParm = pCmd->paHostParms; @@ -1969,8 +2129,12 @@ HGCMFunctionParameter32 *pGuestParm = VMMDEV_HGCM_CALL_PARMS32(pHGCMCall); - for (i = 0; i < cParms; i++, pGuestParm++, pHostParm++) + for (i = 0; i < cParms && RT_SUCCESS(rc); i++, pGuestParm++, pHostParm++) { + rc = vmmdevHGCMParmVerify32(pGuestParm, pHostParm); + if (RT_FAILURE(rc)) + break; + switch (pGuestParm->type) { case VMMDevHGCMParmType_32bit: @@ -1996,7 +2160,6 @@ { /* Use the saved page list to write data back to the guest RAM. */ rc = vmmdevHGCMWriteLinPtr (pVMMDevState->pDevIns, i, pHostParm->u.pointer.addr, size, iLinPtr, pCmd->paLinPtrs); - AssertReleaseRC(rc); } /* All linptrs with size > 0 were saved. Advance the index to the next linptr. */ @@ -2047,7 +2210,8 @@ default: { /* This indicates that the guest request memory was corrupted. */ - AssertReleaseMsgFailed(("hgcmCompleted: invalid parameter type %08X\n", pGuestParm->type)); + rc = VERR_INVALID_PARAMETER; + break; } } } @@ -2063,6 +2227,8 @@ VMMDevHGCMCall *pHGCMCall = (VMMDevHGCMCall *)pHeader; uint32_t cParms = pHGCMCall->cParms; + if (cParms != pCmd->cHostParms) + rc = VERR_INVALID_PARAMETER; VBOXHGCMSVCPARM *pHostParm = pCmd->paHostParms; @@ -2071,8 +2237,12 @@ HGCMFunctionParameter *pGuestParm = VMMDEV_HGCM_CALL_PARMS(pHGCMCall); - for (i = 0; i < cParms; i++, pGuestParm++, pHostParm++) + for (i = 0; i < cParms && RT_SUCCESS(rc); i++, pGuestParm++, pHostParm++) { + rc = vmmdevHGCMParmVerify32(pGuestParm, pHostParm); + if (RT_FAILURE(rc)) + break; + switch (pGuestParm->type) { case VMMDevHGCMParmType_32bit: @@ -2098,7 +2268,6 @@ { /* Use the saved page list to write data back to the guest RAM. */ rc = vmmdevHGCMWriteLinPtr (pVMMDevState->pDevIns, i, pHostParm->u.pointer.addr, size, iLinPtr, pCmd->paLinPtrs); - AssertReleaseRC(rc); } /* All linptrs with size > 0 were saved. Advance the index to the next linptr. */ @@ -2149,7 +2318,8 @@ default: { /* This indicates that the guest request memory was corrupted. */ - AssertReleaseMsgFailed(("hgcmCompleted: invalid parameter type %08X\n", pGuestParm->type)); + rc = VERR_INVALID_PARAMETER; + break; } } } @@ -2175,10 +2345,11 @@ break; } } - else + + if (RT_FAILURE(rc)) { - /* Command type is wrong. Return error to the guest. */ - pHeader->header.rc = rc; + /* Command is wrong. Return HGCM error result to the guest. */ + pHeader->result = rc; } /* Mark request as processed. */ diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Disassembler/DisasmCore.cpp virtualbox-4.1.44-dfsg/src/VBox/Disassembler/DisasmCore.cpp --- virtualbox-4.1.12-dfsg/src/VBox/Disassembler/DisasmCore.cpp 2012-04-02 13:28:35.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Disassembler/DisasmCore.cpp 2015-11-11 15:08:23.000000000 +0000 @@ -110,7 +110,8 @@ ParseImmByteSX, ParseImmZ, ParseThreeByteEsc4, - ParseThreeByteEsc5 + ParseThreeByteEsc5, + ParseImmAddrF }; PFNDISPARSE pfnCalcSize[IDX_ParseMax] = @@ -154,7 +155,8 @@ ParseImmByteSX_SizeOnly, ParseImmZ_SizeOnly, ParseThreeByteEsc4, - ParseThreeByteEsc5 + ParseThreeByteEsc5, + ParseImmAddrF_SizeOnly }; /** @@ -273,7 +275,7 @@ pCpu->opmode = pCpu->mode; } -#ifdef IN_RING3 +#if defined(IN_RING3) && !defined(IN_SUP_HARDENED_R3) # ifndef __L4ENV__ /* Unfortunately, we have no exception handling in l4env */ try # else @@ -374,7 +376,7 @@ unsigned uIdx = iByte; iByte += sizeof(uint8_t); //first opcode byte - pCpu->opaddr = InstructionAddr + uIdx; + pCpu->opaddr = InstructionAddr; pCpu->opcode = codebyte; cbInc = ParseInstruction(InstructionAddr + iByte, &paOneByteMap[pCpu->opcode], pCpu); @@ -382,7 +384,7 @@ break; } } -#ifdef IN_RING3 +#if defined(IN_RING3) && !defined(IN_SUP_HARDENED_R3) # ifndef __L4ENV__ catch(...) # else @@ -1554,6 +1556,55 @@ } //***************************************************************************** //***************************************************************************** +unsigned ParseImmAddrF(RTUINTPTR lpszCodeBlock, PCOPCODE pOp, POP_PARAMETER pParam, PDISCPUSTATE pCpu) +{ + disasmGetPtrString(pCpu, pOp, pParam); + // immediate far pointers - only 16:16 or 16:32; determined by operand, *not* address size! + Assert(pCpu->opmode == CPUMODE_16BIT || pCpu->opmode == CPUMODE_32BIT); + Assert(OP_PARM_VSUBTYPE(pParam->param) == OP_PARM_p); + if (pCpu->opmode == CPUMODE_32BIT) + { + // far 16:32 pointer + pParam->parval = DISReadDWord(pCpu, lpszCodeBlock); + *((uint32_t*)&pParam->parval+1) = DISReadWord(pCpu, lpszCodeBlock+sizeof(uint32_t)); + pParam->flags |= USE_IMMEDIATE_ADDR_16_32; + pParam->size = sizeof(uint16_t) + sizeof(uint32_t); + + disasmAddStringF2(pParam->szParam, "0%04X:0%08Xh", (uint32_t)(pParam->parval>>32), (uint32_t)pParam->parval); + return sizeof(uint32_t) + sizeof(uint16_t); + } + else + { + // far 16:16 pointer + pParam->parval = DISReadDWord(pCpu, lpszCodeBlock); + pParam->flags |= USE_IMMEDIATE_ADDR_16_16; + pParam->size = 2*sizeof(uint16_t); + + disasmAddStringF2(pParam->szParam, "0%04X:0%04Xh", (uint32_t)(pParam->parval>>16), (uint16_t)pParam->parval ); + return sizeof(uint32_t); + } +} +//***************************************************************************** +//***************************************************************************** +unsigned ParseImmAddrF_SizeOnly(RTUINTPTR lpszCodeBlock, PCOPCODE pOp, POP_PARAMETER pParam, PDISCPUSTATE pCpu) +{ + NOREF(lpszCodeBlock); NOREF(pOp); + // immediate far pointers - only 16:16 or 16:32 + Assert(pCpu->opmode == CPUMODE_16BIT || pCpu->opmode == CPUMODE_32BIT); + Assert(OP_PARM_VSUBTYPE(pParam->param) == OP_PARM_p); + if (pCpu->opmode == CPUMODE_32BIT) + { + // far 16:32 pointer + return sizeof(uint32_t) + sizeof(uint16_t); + } + else + { + // far 16:16 pointer + return sizeof(uint32_t); + } +} +//***************************************************************************** +//***************************************************************************** unsigned ParseFixedReg(RTUINTPTR lpszCodeBlock, PCOPCODE pOp, POP_PARAMETER pParam, PDISCPUSTATE pCpu) { /* @@ -2369,7 +2420,7 @@ break; default: -#ifdef IN_RING3 +#if defined(IN_RING3) && !defined(IN_SUP_HARDENED_R3) Log(("disasmModRMReg %x:%x failed!!\n", type, subtype)); DIS_THROW(ExceptionInvalidModRM); #else @@ -2398,7 +2449,7 @@ #if 0 //def DEBUG_Sander AssertMsg(idx < RT_ELEMENTS(szModRMSegReg), ("idx=%d\n", idx)); #endif -#ifdef IN_RING3 +#if defined(IN_RING3) && !defined(IN_SUP_HARDENED_R3) if (idx >= RT_ELEMENTS(szModRMSegReg)) { Log(("disasmModRMSReg %d failed!!\n", idx)); diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Disassembler/DisasmInternal.h virtualbox-4.1.44-dfsg/src/VBox/Disassembler/DisasmInternal.h --- virtualbox-4.1.12-dfsg/src/VBox/Disassembler/DisasmInternal.h 2012-04-02 13:28:35.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Disassembler/DisasmInternal.h 2015-11-11 15:08:23.000000000 +0000 @@ -67,9 +67,10 @@ #define IDX_ParseImmZ 37 #define IDX_ParseThreeByteEsc4 38 #define IDX_ParseThreeByteEsc5 39 -#define IDX_ParseMax (IDX_ParseThreeByteEsc5+1) +#define IDX_ParseImmAddrF 40 +#define IDX_ParseMax (IDX_ParseImmAddrF+1) -#if defined(IN_RING0) || defined(IN_RC) +#if defined(IN_RING0) || defined(IN_RC) || defined(IN_SUP_HARDENED_R3) #define DIS_THROW(a) /* Not available. */ #elif __L4ENV__ #define DIS_THROW(a) longjmp(*pCpu->pJumpBuffer, a) @@ -105,6 +106,8 @@ unsigned ParseImmAddr(RTUINTPTR pu8CodeBlock, PCOPCODE pOp, POP_PARAMETER pParam, PDISCPUSTATE pCpu); unsigned ParseImmAddr_SizeOnly(RTUINTPTR pu8CodeBlock, PCOPCODE pOp, POP_PARAMETER pParam, PDISCPUSTATE pCpu); +unsigned ParseImmAddrF(RTUINTPTR pu8CodeBlock, PCOPCODE pOp, POP_PARAMETER pParam, PDISCPUSTATE pCpu); +unsigned ParseImmAddrF_SizeOnly(RTUINTPTR pu8CodeBlock, PCOPCODE pOp, POP_PARAMETER pParam, PDISCPUSTATE pCpu); unsigned ParseFixedReg(RTUINTPTR pu8CodeBlock, PCOPCODE pOp, POP_PARAMETER pParam, PDISCPUSTATE pCpu); unsigned ParseImmUlong(RTUINTPTR pu8CodeBlock, PCOPCODE pOp, POP_PARAMETER pParam, PDISCPUSTATE pCpu); unsigned ParseImmUlong_SizeOnly(RTUINTPTR pu8CodeBlock, PCOPCODE pOp, POP_PARAMETER pParam, PDISCPUSTATE pCpu); diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Disassembler/DisasmTables.cpp virtualbox-4.1.44-dfsg/src/VBox/Disassembler/DisasmTables.cpp --- virtualbox-4.1.12-dfsg/src/VBox/Disassembler/DisasmTables.cpp 2012-04-02 13:28:35.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Disassembler/DisasmTables.cpp 2015-11-11 15:08:23.000000000 +0000 @@ -259,7 +259,7 @@ OP("xchg %eDI,%eAX", IDX_ParseFixedReg, IDX_ParseFixedReg, 0, OP_XCHG, OP_PARM_REG_EDI, OP_PARM_REG_EAX, OP_PARM_NONE, OPTYPE_HARMLESS | OPTYPE_REXB_EXTENDS_OPREG), OP("cbw", 0, 0, 0, OP_CBW, OP_PARM_NONE, OP_PARM_NONE, OP_PARM_NONE, OPTYPE_HARMLESS), OP("cwd", 0, 0, 0, OP_CWD, OP_PARM_NONE, OP_PARM_NONE, OP_PARM_NONE, OPTYPE_HARMLESS), - OP("call %Ap", IDX_ParseImmAddr, 0, 0, OP_CALL, OP_PARM_Ap, OP_PARM_NONE, OP_PARM_NONE, OPTYPE_CONTROLFLOW | OPTYPE_INVALID_64), + OP("call %Ap", IDX_ParseImmAddrF, 0, 0, OP_CALL, OP_PARM_Ap, OP_PARM_NONE, OP_PARM_NONE, OPTYPE_CONTROLFLOW | OPTYPE_INVALID_64), OP("wait", 0, 0, 0, OP_WAIT, OP_PARM_NONE, OP_PARM_NONE, OP_PARM_NONE, OPTYPE_HARMLESS), OP("pushf %Fv", 0, 0, 0, OP_PUSHF, OP_PARM_Fv, OP_PARM_NONE, OP_PARM_NONE, OPTYPE_POTENTIALLY_DANGEROUS | OPTYPE_DEFAULT_64_OP_SIZE), OP("popf %Fv", 0, 0, 0, OP_POPF, OP_PARM_Fv, OP_PARM_NONE, OP_PARM_NONE, OPTYPE_POTENTIALLY_DANGEROUS | OPTYPE_DEFAULT_64_OP_SIZE), @@ -354,7 +354,7 @@ OP("out %Ib,%eAX", IDX_ParseImmByte, IDX_ParseFixedReg, 0, OP_OUT, OP_PARM_Ib, OP_PARM_REG_EAX,OP_PARM_NONE, OPTYPE_PORTIO | OPTYPE_PRIVILEGED | OPTYPE_PORTIO_WRITE), OP("call %Jv", IDX_ParseImmVRel, 0, 0, OP_CALL, OP_PARM_Jv, OP_PARM_NONE, OP_PARM_NONE, OPTYPE_CONTROLFLOW | OPTYPE_RELATIVE_CONTROLFLOW | OPTYPE_FORCED_64_OP_SIZE), OP("jmp %Jv", IDX_ParseImmVRel, 0, 0, OP_JMP, OP_PARM_Jv, OP_PARM_NONE, OP_PARM_NONE, OPTYPE_CONTROLFLOW | OPTYPE_UNCOND_CONTROLFLOW | OPTYPE_FORCED_64_OP_SIZE), - OP("jmp %Ap", IDX_ParseImmAddr, 0, 0, OP_JMP, OP_PARM_Ap, OP_PARM_NONE, OP_PARM_NONE, OPTYPE_CONTROLFLOW | OPTYPE_UNCOND_CONTROLFLOW | OPTYPE_INVALID_64), + OP("jmp %Ap", IDX_ParseImmAddrF, 0, 0, OP_JMP, OP_PARM_Ap, OP_PARM_NONE, OP_PARM_NONE, OPTYPE_CONTROLFLOW | OPTYPE_UNCOND_CONTROLFLOW | OPTYPE_INVALID_64), OP("jmp %Jb", IDX_ParseImmBRel, 0, 0, OP_JMP, OP_PARM_Jb, OP_PARM_NONE, OP_PARM_NONE, OPTYPE_CONTROLFLOW | OPTYPE_UNCOND_CONTROLFLOW | OPTYPE_RELATIVE_CONTROLFLOW | OPTYPE_FORCED_64_OP_SIZE), OP("in AL,DX", IDX_ParseFixedReg, IDX_ParseFixedReg, 0, OP_IN, OP_PARM_REG_AL, OP_PARM_REG_DX, OP_PARM_NONE, OPTYPE_PORTIO | OPTYPE_PRIVILEGED | OPTYPE_PORTIO_READ), OP("in %eAX,DX", IDX_ParseFixedReg, IDX_ParseFixedReg, 0, OP_IN, OP_PARM_REG_EAX, OP_PARM_REG_DX, OP_PARM_NONE, OPTYPE_PORTIO | OPTYPE_PRIVILEGED | OPTYPE_PORTIO_READ), diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Disassembler/Makefile.kmk virtualbox-4.1.44-dfsg/src/VBox/Disassembler/Makefile.kmk --- virtualbox-4.1.12-dfsg/src/VBox/Disassembler/Makefile.kmk 2012-04-02 13:28:35.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Disassembler/Makefile.kmk 2015-11-11 15:08:23.000000000 +0000 @@ -36,6 +36,10 @@ DisasmFormatBytes.cpp \ DisasmFormatYasm.cpp +LIBRARIES += DisasmBldProg +DisasmBldProg_TEMPLATE = VBoxBldProg +DisasmBldProg_EXTENDS = DisasmR3 + LIBRARIES += DisasmCoreR3 DisasmCoreR3_TEMPLATE = VBOXR3 DisasmCoreR3_DEFS = IN_DIS DIS_CORE_ONLY diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Frontends/Common/VBoxKeyboard/xkbtoscan.h virtualbox-4.1.44-dfsg/src/VBox/Frontends/Common/VBoxKeyboard/xkbtoscan.h --- virtualbox-4.1.12-dfsg/src/VBox/Frontends/Common/VBoxKeyboard/xkbtoscan.h 2012-04-02 13:28:36.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Frontends/Common/VBoxKeyboard/xkbtoscan.h 2015-11-11 15:08:24.000000000 +0000 @@ -87,6 +87,7 @@ { "AC09", 0x26 }, { "AC10", 0x27 }, { "AC11", 0x28 }, + { "AC12", 0x2b }, { "TLDE", 0x29 }, /* { "LFSH", 0x2a }, */ { "BKSL", 0x2b }, @@ -130,6 +131,7 @@ { "KP3", 0x51 }, { "KP0", 0x52 }, { "KPDL", 0x53 }, + { "KPPT", 0x7e }, { "LVL3", 0x138 }, */ { "LSGT", 0x56 }, /* { "FK11", 0x57 }, @@ -140,12 +142,14 @@ { "HENK", 0x79 }, { "HKTG", 0x70 }, { "MUHE", 0x7b }, + { "HZTG", 0x29 }, { "JPCM", 0x0 }, { "KPEN", 0x11c }, { "RCTL", 0x11d }, { "KPDV", 0x135 }, { "PRSC", 0x137 }, { "RALT", 0x138 }, + { "ALGR", 0x138 }, { "LNFD", 0x0 }, { "HOME", 0x147 }, { "UP", 0x148 }, @@ -167,12 +171,16 @@ { "PAUS", 0x45 }, { "I128", 0x0 }, { "I129", 0x7e }, + { "KPPT", 0x7e }, { "HNGL", 0xf2 }, { "HJCV", 0xf1 }, */ { "AE13", 0x7d }, /* { "LWIN", 0x15b }, + { "LMTA", 0x15b }, { "RWIN", 0x15c }, + { "RMTA", 0x15c }, { "COMP", 0x15d }, + { "MENU", 0x15d }, { "STOP", 0x168 }, { "AGAI", 0x105 }, { "PROP", 0x106 }, diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Frontends/VBoxBalloonCtrl/VBoxBalloonCtrl.cpp virtualbox-4.1.44-dfsg/src/VBox/Frontends/VBoxBalloonCtrl/VBoxBalloonCtrl.cpp --- virtualbox-4.1.12-dfsg/src/VBox/Frontends/VBoxBalloonCtrl/VBoxBalloonCtrl.cpp 2012-04-02 13:28:37.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Frontends/VBoxBalloonCtrl/VBoxBalloonCtrl.cpp 2015-11-11 15:08:24.000000000 +0000 @@ -4,7 +4,7 @@ */ /* - * Copyright (C) 2011 Oracle Corporation + * Copyright (C) 2011-2013 Oracle Corporation * * This file is part of VirtualBox Open Source Edition (OSE), as * available from http://www.virtualbox.org. This file is free software; @@ -27,7 +27,7 @@ # include # include -# include +# include # include # include #endif /* !VBOX_ONLY_DOCS */ @@ -134,7 +134,7 @@ # ifdef VBOX_BALLOONCTRL_GLOBAL_PERFCOL static ComPtr g_pPerfCollector = NULL; # endif -static EventQueue *g_pEventQ = NULL; +static NativeEventQueue *g_pEventQ = NULL; /** A machine's internal entry. */ typedef struct VBOXBALLOONCTRL_MACHINE @@ -984,7 +984,7 @@ int vrc = VINF_SUCCESS; /* Initialize global weak references. */ - g_pEventQ = com::EventQueue::getMainEventQueue(); + g_pEventQ = com::NativeEventQueue::getMainEventQueue(); RTCritSectInit(&g_MapCritSect); @@ -1121,6 +1121,7 @@ vrc = RTSystemQueryOSInfo(RTSYSOSINFO_VERSION, szTmp, sizeof(szTmp)); if (RT_SUCCESS(vrc) || vrc == VERR_BUFFER_OVERFLOW) pfnLog(pLoggerRelease, "OS Version: %s\n", szTmp); + vrc = RTSystemQueryOSInfo(RTSYSOSINFO_SERVICE_PACK, szTmp, sizeof(szTmp)); if (RT_SUCCESS(vrc) || vrc == VERR_BUFFER_OVERFLOW) pfnLog(pLoggerRelease, "OS Service Pack: %s\n", szTmp); @@ -1429,6 +1430,15 @@ */ using namespace com; HRESULT hrc = com::Initialize(); +# ifdef VBOX_WITH_XPCOM + if (hrc == NS_ERROR_FILE_ACCESS_DENIED) + { + char szHome[RTPATH_MAX] = ""; + com::GetVBoxUserHomeDirectory(szHome, sizeof(szHome)); + return RTMsgErrorExit(RTEXITCODE_FAILURE, + "Failed to initialize COM because the global settings directory '%s' is not accessible!", szHome); + } +# endif if (FAILED(hrc)) return RTMsgErrorExit(RTEXITCODE_FAILURE, "Failed to initialize COM!"); @@ -1454,7 +1464,7 @@ HandlerArg handlerArg = { argc, argv }; RTEXITCODE rcExit = balloonCtrlMain(&handlerArg); - EventQueue::getMainEventQueue()->processEventQueue(0); + NativeEventQueue::getMainEventQueue()->processEventQueue(0); deleteGlobalObjects(); diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Frontends/VBoxHeadless/FramebufferVNC.cpp virtualbox-4.1.44-dfsg/src/VBox/Frontends/VBoxHeadless/FramebufferVNC.cpp --- virtualbox-4.1.12-dfsg/src/VBox/Frontends/VBoxHeadless/FramebufferVNC.cpp 2012-04-02 13:28:37.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Frontends/VBoxHeadless/FramebufferVNC.cpp 2015-11-11 15:08:24.000000000 +0000 @@ -8,7 +8,7 @@ /* * Contributed by Ivo Smits * - * Copyright (C) 2006-2007 Oracle Corporation + * Copyright (C) 2006-2012 Oracle Corporation * * This file is part of VirtualBox Open Source Edition (OSE), as * available from http://www.virtualbox.org. This file is free software; @@ -89,7 +89,12 @@ vncServer = rfbGetScreen(0, NULL, mWidth, mHeight, 8, 3, 1); vncServer->screenData = (void*)this; if (mVncPort) + { vncServer->port = mVncPort; +#ifdef LIBVNCSERVER_IPv6 + vncServer->ipv6port = mVncPort; +#endif + } char *pszDesktopName; rc = RTStrAPrintf(&pszDesktopName, "%s - VirtualBox", pszName); if (rc >= 0) diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Frontends/VBoxHeadless/Makefile.kmk virtualbox-4.1.44-dfsg/src/VBox/Frontends/VBoxHeadless/Makefile.kmk --- virtualbox-4.1.12-dfsg/src/VBox/Frontends/VBoxHeadless/Makefile.kmk 2012-04-02 13:28:37.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Frontends/VBoxHeadless/Makefile.kmk 2015-11-11 15:08:24.000000000 +0000 @@ -39,6 +39,7 @@ # VBoxHeadlessHardened_TEMPLATE = VBOXR3HARDENEDEXE VBoxHeadlessHardened_SOURCES = VBoxHeadlessHardened.cpp +VBoxHeadlessHardened_SOURCES.win = $(VBoxHeadless_0_OUTDIR)/VBoxHeadless-icon.rc VBoxHeadlessHardened_NAME = VBoxHeadless @@ -61,5 +62,12 @@ VBoxHeadless_LIBS += vncserver endif +# Icon include file. +VBoxHeadless_SOURCES.win += $(VBoxHeadless_0_OUTDIR)/VBoxHeadless-icon.rc +VBoxHeadless_CLEAN.win += $(VBoxHeadless_0_OUTDIR)/VBoxHeadless-icon.rc +$$(VBoxHeadless_0_OUTDIR)/VBoxHeadless-icon.rc: $(VBOX_WINDOWS_ICON_FILE) $$(VBoxHeadless_DEFPATH)/Makefile.kmk | $$(dir $$@) + $(RM) -f $@ + $(APPEND) $@ 'IDI_VIRTUALBOX ICON DISCARDABLE "$(subst /,\\,$(VBOX_WINDOWS_ICON_FILE))"' + include $(KBUILD_PATH)/subfooter.kmk diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Frontends/VBoxHeadless/VBoxHeadless.cpp virtualbox-4.1.44-dfsg/src/VBox/Frontends/VBoxHeadless/VBoxHeadless.cpp --- virtualbox-4.1.12-dfsg/src/VBox/Frontends/VBoxHeadless/VBoxHeadless.cpp 2012-04-02 13:28:37.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Frontends/VBoxHeadless/VBoxHeadless.cpp 2015-11-11 15:08:24.000000000 +0000 @@ -4,7 +4,7 @@ */ /* - * Copyright (C) 2006-2011 Oracle Corporation + * Copyright (C) 2006-2015 Oracle Corporation * * This file is part of VirtualBox Open Source Edition (OSE), as * available from http://www.virtualbox.org. This file is free software; @@ -21,7 +21,7 @@ #include #include #include -#include +#include #include #include @@ -76,7 +76,7 @@ /* global weak references (for event handlers) */ static IConsole *gConsole = NULL; -static EventQueue *gEventQ = NULL; +static NativeEventQueue *gEventQ = NULL; /* flag whether frontend should terminate */ static volatile bool g_fTerminateFE = false; @@ -142,134 +142,6 @@ }; /** - * Handler for global events. - */ -class VirtualBoxEventListener -{ -public: - VirtualBoxEventListener() - { - mfNoLoggedInUsers = true; - } - - virtual ~VirtualBoxEventListener() - { - } - - HRESULT init() - { - return S_OK; - } - - void uninit() - { - } - - STDMETHOD(HandleEvent)(VBoxEventType_T aType, IEvent *aEvent) - { - switch (aType) - { - case VBoxEventType_OnGuestPropertyChanged: - { - ComPtr gpcev = aEvent; - Assert(gpcev); - - Bstr aKey; - gpcev->COMGETTER(Name)(aKey.asOutParam()); - - if (aKey == Bstr("/VirtualBox/GuestInfo/OS/NoLoggedInUsers")) - { - /* Check if this is our machine and the "disconnect on logout feature" is enabled. */ - BOOL fProcessDisconnectOnGuestLogout = FALSE; - ComPtr machine; - HRESULT hrc = S_OK; - - if (gConsole) - { - hrc = gConsole->COMGETTER(Machine)(machine.asOutParam()); - if (SUCCEEDED(hrc) && machine) - { - Bstr id, machineId; - hrc = machine->COMGETTER(Id)(id.asOutParam()); - gpcev->COMGETTER(MachineId)(machineId.asOutParam()); - if (id == machineId) - { - Bstr value1; - hrc = machine->GetExtraData(Bstr("VRDP/DisconnectOnGuestLogout").raw(), - value1.asOutParam()); - if (SUCCEEDED(hrc) && value1 == "1") - { - fProcessDisconnectOnGuestLogout = TRUE; - } - } - } - } - - if (fProcessDisconnectOnGuestLogout) - { - bool fDropConnection = false; - - Bstr value; - gpcev->COMGETTER(Value)(value.asOutParam()); - Utf8Str utf8Value = value; - - if (!mfNoLoggedInUsers) /* Only if the property really changes. */ - { - if ( utf8Value == "true" - /* Guest property got deleted due to reset, - * so it has no value anymore. */ - || utf8Value.isEmpty()) - { - mfNoLoggedInUsers = true; - fDropConnection = true; - } - } - else if (utf8Value == "false") - mfNoLoggedInUsers = false; - /* Guest property got deleted due to reset, - * take the shortcut without touching the mfNoLoggedInUsers - * state. */ - else if (utf8Value.isEmpty()) - fDropConnection = true; - - if (fDropConnection) - { - /* If there is a connection, drop it. */ - ComPtr info; - hrc = gConsole->COMGETTER(VRDEServerInfo)(info.asOutParam()); - if (SUCCEEDED(hrc) && info) - { - ULONG cClients = 0; - hrc = info->COMGETTER(NumberOfClients)(&cClients); - if (SUCCEEDED(hrc) && cClients > 0) - { - ComPtr vrdeServer; - hrc = machine->COMGETTER(VRDEServer)(vrdeServer.asOutParam()); - if (SUCCEEDED(hrc) && vrdeServer) - { - LogRel(("VRDE: the guest user has logged out, disconnecting remote clients.\n")); - vrdeServer->COMSETTER(Enabled)(FALSE); - vrdeServer->COMSETTER(Enabled)(TRUE); - } - } - } - } - } - } - break; - } - default: - AssertFailed(); - } - - return S_OK; - } - -private: - bool mfNoLoggedInUsers; -}; - -/** * Handler for machine events. */ class ConsoleEventListener @@ -277,7 +149,8 @@ public: ConsoleEventListener() : mLastVRDEPort(-1), - m_fIgnorePowerOffEvents(false) + m_fIgnorePowerOffEvents(false), + m_fNoLoggedInUsers(true) { } @@ -302,7 +175,7 @@ { ComPtr mccev = aEvent; - Assert(mccev); + Assert(!mccev.isNull()); BOOL fSupportsAbsolute = false; mccev->COMGETTER(SupportsAbsolute)(&fSupportsAbsolute); @@ -317,10 +190,6 @@ mouse->PutMouseEventAbsolute(-1, -1, 0, 0 /* Horizontal wheel */, 0); } } -#ifdef VBOX_WITH_VNC - if (g_pFramebufferVNC) - g_pFramebufferVNC->enableAbsMouse(fSupportsAbsolute); -#endif break; } case VBoxEventType_OnStateChanged: @@ -383,6 +252,123 @@ swev->COMSETTER(WinId)(0); break; } + case VBoxEventType_OnGuestPropertyChanged: + { + ComPtr pChangedEvent = aEvent; + Assert(pChangedEvent); + + HRESULT hrc; + + ComPtr pMachine; + if (gConsole) + { + hrc = gConsole->COMGETTER(Machine)(pMachine.asOutParam()); + if (FAILED(hrc) || !pMachine) + hrc = VBOX_E_OBJECT_NOT_FOUND; + } + else + hrc = VBOX_E_INVALID_VM_STATE; + + if (SUCCEEDED(hrc)) + { + Bstr strKey; + hrc = pChangedEvent->COMGETTER(Name)(strKey.asOutParam()); + AssertComRC(hrc); + + Bstr strValue; + hrc = pChangedEvent->COMGETTER(Value)(strValue.asOutParam()); + AssertComRC(hrc); + + Utf8Str utf8Key = strKey; + Utf8Str utf8Value = strValue; + LogRelFlow(("Guest property \"%s\" has been changed to \"%s\"\n", + utf8Key.c_str(), utf8Value.c_str())); + + if (utf8Key.equals("/VirtualBox/GuestInfo/OS/NoLoggedInUsers")) + { + LogRelFlow(("Guest indicates that there %s logged in users\n", + utf8Value.equals("true") ? "are no" : "are")); + + /* Check if this is our machine and the "disconnect on logout feature" is enabled. */ + BOOL fProcessDisconnectOnGuestLogout = FALSE; + + /* Does the machine handle VRDP disconnects? */ + Bstr strDiscon; + hrc = pMachine->GetExtraData(Bstr("VRDP/DisconnectOnGuestLogout").raw(), + strDiscon.asOutParam()); + if (SUCCEEDED(hrc)) + { + Utf8Str utf8Discon = strDiscon; + fProcessDisconnectOnGuestLogout = utf8Discon.equals("1") + ? TRUE : FALSE; + } + + LogRelFlow(("VRDE: hrc=%Rhrc: Host %s disconnecting clients (current host state known: %s)\n", + hrc, fProcessDisconnectOnGuestLogout ? "will handle" : "does not handle", + m_fNoLoggedInUsers ? "No users logged in" : "Users logged in")); + + if (fProcessDisconnectOnGuestLogout) + { + bool fDropConnection = false; + if (!m_fNoLoggedInUsers) /* Only if the property really changes. */ + { + if ( utf8Value == "true" + /* Guest property got deleted due to reset, + * so it has no value anymore. */ + || utf8Value.isEmpty()) + { + m_fNoLoggedInUsers = true; + fDropConnection = true; + } + } + else if (utf8Value == "false") + m_fNoLoggedInUsers = false; + /* Guest property got deleted due to reset, + * take the shortcut without touching the m_fNoLoggedInUsers + * state. */ + else if (utf8Value.isEmpty()) + fDropConnection = true; + + LogRelFlow(("VRDE: szNoLoggedInUsers=%s, m_fNoLoggedInUsers=%RTbool, fDropConnection=%RTbool\n", + utf8Value.c_str(), m_fNoLoggedInUsers, fDropConnection)); + + if (fDropConnection) + { + /* If there is a connection, drop it. */ + ComPtr info; + hrc = gConsole->COMGETTER(VRDEServerInfo)(info.asOutParam()); + if (SUCCEEDED(hrc) && info) + { + ULONG cClients = 0; + hrc = info->COMGETTER(NumberOfClients)(&cClients); + + LogRelFlow(("VRDE: connected clients=%RU32\n", cClients)); + if (SUCCEEDED(hrc) && cClients > 0) + { + ComPtr vrdeServer; + hrc = pMachine->COMGETTER(VRDEServer)(vrdeServer.asOutParam()); + if (SUCCEEDED(hrc) && vrdeServer) + { + LogRel(("VRDE: the guest user has logged out, disconnecting remote clients.\n")); + hrc = vrdeServer->COMSETTER(Enabled)(FALSE); + AssertComRC(hrc); + HRESULT hrc2 = vrdeServer->COMSETTER(Enabled)(TRUE); + if (SUCCEEDED(hrc)) + hrc = hrc2; + } + } + } + } + } + } + + if (FAILED(hrc)) + LogRelFlow(("VRDE: returned error=%Rhrc\n", hrc)); + } + + break; + } + default: AssertFailed(); } @@ -398,14 +384,13 @@ long mLastVRDEPort; bool m_fIgnorePowerOffEvents; + bool m_fNoLoggedInUsers; }; typedef ListenerImpl VirtualBoxClientEventListenerImpl; -typedef ListenerImpl VirtualBoxEventListenerImpl; typedef ListenerImpl ConsoleEventListenerImpl; VBOX_LISTENER_DECLARE(VirtualBoxClientEventListenerImpl) -VBOX_LISTENER_DECLARE(VirtualBoxEventListenerImpl) VBOX_LISTENER_DECLARE(ConsoleEventListenerImpl) #ifdef VBOX_WITH_SAVESTATE_ON_SIGNAL @@ -791,6 +776,15 @@ HRESULT rc; rc = com::Initialize(); +#ifdef VBOX_WITH_XPCOM + if (rc == NS_ERROR_FILE_ACCESS_DENIED) + { + char szHome[RTPATH_MAX] = ""; + com::GetVBoxUserHomeDirectory(szHome, sizeof(szHome)); + RTPrintf("Failed to initialize COM because the global settings directory '%s' is not accessible!", szHome); + return 1; + } +#endif if (FAILED(rc)) { RTPrintf("VBoxHeadless: ERROR: failed to initialize COM!\n"); @@ -1034,7 +1028,7 @@ /* initialize global references */ gConsole = console; - gEventQ = com::EventQueue::getMainEventQueue(); + gEventQ = com::NativeEventQueue::getMainEventQueue(); /* VirtualBoxClient events registration. */ { @@ -1061,6 +1055,7 @@ eventTypes.push_back(VBoxEventType_OnVRDEServerInfoChanged); eventTypes.push_back(VBoxEventType_OnCanShowWindow); eventTypes.push_back(VBoxEventType_OnShowWindow); + eventTypes.push_back(VBoxEventType_OnGuestPropertyChanged); CHECK_ERROR(es, RegisterListener(consoleListener, ComSafeArrayAsInParam(eventTypes), true)); } @@ -1208,19 +1203,6 @@ } } - /* VirtualBox events registration. */ - { - ComPtr es; - CHECK_ERROR(virtualBox, COMGETTER(EventSource)(es.asOutParam())); - ComObjPtr listener; - listener.createObject(); - listener->init(new VirtualBoxEventListener()); - vboxListener = listener; - com::SafeArray eventTypes; - eventTypes.push_back(VBoxEventType_OnGuestPropertyChanged); - CHECK_ERROR(es, RegisterListener(vboxListener, ComSafeArrayAsInParam(eventTypes), true)); - } - #ifdef VBOX_WITH_SAVESTATE_ON_SIGNAL signal(SIGINT, SaveState); signal(SIGTERM, SaveState); diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Frontends/VBoxManage/Makefile.kmk virtualbox-4.1.44-dfsg/src/VBox/Frontends/VBoxManage/Makefile.kmk --- virtualbox-4.1.12-dfsg/src/VBox/Frontends/VBoxManage/Makefile.kmk 2012-04-02 13:28:37.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Frontends/VBoxManage/Makefile.kmk 2015-11-11 15:08:25.000000000 +0000 @@ -74,7 +74,8 @@ $(if $(VBOX_WITH_VBOXSDL), VBOX_WITH_VBOXSDL) \ $(if $(VBOX_WITH_VIDEOHWACCEL), VBOX_WITH_VIDEOHWACCEL) \ $(if $(VBOX_WITH_VIRTIO),VBOX_WITH_VIRTIO) \ - $(if $(VBOX_WITH_PCI_PASSTHROUGH),VBOX_WITH_PCI_PASSTHROUGH) + $(if $(VBOX_WITH_USB_CARDREADER),VBOX_WITH_USB_CARDREADER) \ + $(if $(VBOX_WITH_PCI_PASSTHROUGH),VBOX_WITH_PCI_PASSTHROUGH) ifneq ($(KBUILD_TARGET),win) # Workaround for buggy gcc-4.3 compilers, see diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Frontends/VBoxManage/VBoxManageControlVM.cpp virtualbox-4.1.44-dfsg/src/VBox/Frontends/VBoxManage/VBoxManageControlVM.cpp --- virtualbox-4.1.12-dfsg/src/VBox/Frontends/VBoxManage/VBoxManageControlVM.cpp 2012-04-02 13:28:37.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Frontends/VBoxManage/VBoxManageControlVM.cpp 2015-11-11 15:08:25.000000000 +0000 @@ -180,9 +180,11 @@ else if (!strcmp(a->argv[1], "savestate")) { /* first pause so we don't trigger a live save which needs more time/resources */ + bool fPaused = false; rc = console->Pause(); if (FAILED(rc)) { + bool fError = true; if (rc == VBOX_E_INVALID_VM_STATE) { /* check if we are already paused */ @@ -195,15 +197,22 @@ RTMsgError("Machine in invalid state %d -- %s\n", machineState, machineStateToName(machineState, false)); } + else + { + fError = false; + fPaused = true; + } } - break; + if (fError) + break; } ComPtr progress; CHECK_ERROR(console, SaveState(progress.asOutParam())); if (FAILED(rc)) { - console->Resume(); + if (!fPaused) + console->Resume(); break; } @@ -215,7 +224,8 @@ RTMsgError("Failed to save machine state. Error message: %lS", info.getText().raw()); else RTMsgError("Failed to save machine state. No error message available!"); - console->Resume(); + if (!fPaused) + console->Resume(); } } else if (!strcmp(a->argv[1], "acpipowerbutton")) @@ -1131,6 +1141,12 @@ } ComPtr pDisplay; CHECK_ERROR_BREAK(console, COMGETTER(Display)(pDisplay.asOutParam())); + if (!pDisplay) + { + RTMsgError("Cannot take a screenshot without a display"); + rc = E_FAIL; + break; + } ULONG width, height, bpp; CHECK_ERROR_BREAK(pDisplay, GetScreenResolution(displayIdx, &width, &height, &bpp)); com::SafeArray saScreenshot; diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Frontends/VBoxManage/VBoxManage.cpp virtualbox-4.1.44-dfsg/src/VBox/Frontends/VBoxManage/VBoxManage.cpp --- virtualbox-4.1.12-dfsg/src/VBox/Frontends/VBoxManage/VBoxManage.cpp 2012-04-02 13:28:37.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Frontends/VBoxManage/VBoxManage.cpp 2015-11-11 15:08:25.000000000 +0000 @@ -4,7 +4,7 @@ */ /* - * Copyright (C) 2006-2010 Oracle Corporation + * Copyright (C) 2006-2013 Oracle Corporation * * This file is part of VirtualBox Open Source Edition (OSE), as * available from http://www.virtualbox.org. This file is free software; @@ -26,7 +26,7 @@ # include # include # include -# include +# include # include #endif /* !VBOX_ONLY_DOCS */ @@ -37,6 +37,7 @@ #include #include #include +#include #include #include @@ -88,7 +89,7 @@ ULONG ulLastOperation = (ULONG)-1; Bstr bstrOperationDescription; - EventQueue::getMainEventQueue()->processEventQueue(0); + NativeEventQueue::getMainEventQueue()->processEventQueue(0); ULONG cOperations = 1; HRESULT hrc = progress->COMGETTER(OperationCount)(&cOperations); @@ -189,7 +190,7 @@ /* make sure the loop is not too tight */ progress->WaitForCompletion(100); - EventQueue::getMainEventQueue()->processEventQueue(0); + NativeEventQueue::getMainEventQueue()->processEventQueue(0); hrc = progress->COMGETTER(Completed(&fCompleted)); } @@ -326,6 +327,15 @@ */ using namespace com; HRESULT hrc = com::Initialize(); +# ifdef VBOX_WITH_XPCOM + if (hrc == NS_ERROR_FILE_ACCESS_DENIED) + { + char szHome[RTPATH_MAX] = ""; + com::GetVBoxUserHomeDirectory(szHome, sizeof(szHome)); + return RTMsgErrorExit(RTEXITCODE_FAILURE, + "Failed to initialize COM because the global settings directory '%s' is not accessible!", szHome); + } +# endif if (FAILED(hrc)) return RTMsgErrorExit(RTEXITCODE_FAILURE, "Failed to initialize COM!"); @@ -491,7 +501,7 @@ * state file (if the machine was in the Saved state before). */ session->UnlockMachine(); - EventQueue::getMainEventQueue()->processEventQueue(0); + NativeEventQueue::getMainEventQueue()->processEventQueue(0); // end "all-stuff" scope /////////////////////////////////////////////////////////////////////////// diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Frontends/VBoxManage/VBoxManageDisk.cpp virtualbox-4.1.44-dfsg/src/VBox/Frontends/VBoxManage/VBoxManageDisk.cpp --- virtualbox-4.1.12-dfsg/src/VBox/Frontends/VBoxManage/VBoxManageDisk.cpp 2012-04-02 13:28:37.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Frontends/VBoxManage/VBoxManageDisk.cpp 2015-11-11 15:08:25.000000000 +0000 @@ -444,7 +444,7 @@ if (!FilenameOrUuid) FilenameOrUuid = ValueUnion.psz; else - return errorSyntax(USAGE_CREATEHD, "Invalid parameter '%s'", ValueUnion.psz); + return errorSyntax(USAGE_MODIFYHD, "Invalid parameter '%s'", ValueUnion.psz); break; default: @@ -741,14 +741,15 @@ break; case 'm': // --variant - MediumVariant_T DiskVariant; + { + MediumVariant_T DiskVariant = MediumVariant_Standard; rc = parseDiskVariant(ValueUnion.psz, &DiskVariant); if (RT_FAILURE(rc)) return errorArgument("Invalid hard disk variant '%s'", ValueUnion.psz); /// @todo cleaner solution than assuming 1:1 mapping? uImageFlags = (unsigned)DiskVariant; break; - + } case VINF_GETOPT_NOT_OPTION: if (!srcfilename) { diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Frontends/VBoxManage/VBoxManageGuestCtrl.cpp virtualbox-4.1.44-dfsg/src/VBox/Frontends/VBoxManage/VBoxManageGuestCtrl.cpp --- virtualbox-4.1.12-dfsg/src/VBox/Frontends/VBoxManage/VBoxManageGuestCtrl.cpp 2012-04-02 13:28:37.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Frontends/VBoxManage/VBoxManageGuestCtrl.cpp 2015-11-11 15:08:25.000000000 +0000 @@ -4,7 +4,7 @@ */ /* - * Copyright (C) 2010-2011 Oracle Corporation + * Copyright (C) 2010-2013 Oracle Corporation * * This file is part of VirtualBox Open Source Edition (OSE), as * available from http://www.virtualbox.org. This file is free software; @@ -29,7 +29,7 @@ #include #include #include -#include +#include #include #include @@ -856,6 +856,9 @@ progress->Cancel(); break; } + + NativeEventQueue::getMainEventQueue()->processEventQueue(0); + } /* while */ /* Undo signal handling */ diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Frontends/VBoxManage/VBoxManageHelp.cpp virtualbox-4.1.44-dfsg/src/VBox/Frontends/VBoxManage/VBoxManageHelp.cpp --- virtualbox-4.1.12-dfsg/src/VBox/Frontends/VBoxManage/VBoxManageHelp.cpp 2012-04-02 13:28:37.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Frontends/VBoxManage/VBoxManageHelp.cpp 2015-11-11 15:08:25.000000000 +0000 @@ -328,6 +328,9 @@ " [--faulttolerancesyncinterval ]\n" " [--faulttolerancepassword ]\n" #endif +#ifdef VBOX_WITH_USB_CARDREADER + " [--usbcardreader on|off]\n" +#endif "\n"); } diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Frontends/VBoxManage/VBoxManageHostonly.cpp virtualbox-4.1.44-dfsg/src/VBox/Frontends/VBoxManage/VBoxManageHostonly.cpp --- virtualbox-4.1.12-dfsg/src/VBox/Frontends/VBoxManage/VBoxManageHostonly.cpp 2012-04-02 13:28:37.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Frontends/VBoxManage/VBoxManageHostonly.cpp 2015-11-11 15:08:25.000000000 +0000 @@ -56,12 +56,12 @@ // index++; ComPtr host; - CHECK_ERROR(a->virtualBox, COMGETTER(Host)(host.asOutParam())); + CHECK_ERROR_RET(a->virtualBox, COMGETTER(Host)(host.asOutParam()), 1); ComPtr hif; ComPtr progress; - CHECK_ERROR(host, CreateHostOnlyNetworkInterface (hif.asOutParam(), progress.asOutParam())); + CHECK_ERROR_RET(host, CreateHostOnlyNetworkInterface (hif.asOutParam(), progress.asOutParam()), 1); rc = showProgress(progress); *pcProcessed = index - iStart; diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Frontends/VBoxManage/VBoxManageInfo.cpp virtualbox-4.1.44-dfsg/src/VBox/Frontends/VBoxManage/VBoxManageInfo.cpp --- virtualbox-4.1.12-dfsg/src/VBox/Frontends/VBoxManage/VBoxManageInfo.cpp 2012-04-02 13:28:37.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Frontends/VBoxManage/VBoxManageInfo.cpp 2015-11-11 15:08:25.000000000 +0000 @@ -1124,6 +1124,8 @@ RTPrintf("macaddress%d=\"%lS\"\n", currentNIC + 1, strMACAddress.raw()); RTPrintf("cableconnected%d=\"%s\"\n", currentNIC + 1, fConnected ? "on" : "off"); RTPrintf("nic%d=\"%s\"\n", currentNIC + 1, strAttachment.c_str()); + RTPrintf("nictype%d=\"%s\"\n", currentNIC + 1, pszNICType); + RTPrintf("nicspeed%d=\"%d\"\n", currentNIC + 1, ulLineSpeed); } else RTPrintf("NIC %u: MAC: %lS, Attachment: %s, Cable connected: %s, Trace: %s (file: %lS), Type: %s, Reported speed: %d Mbps, Boot priority: %d, Promisc Policy: %s\n", diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Frontends/VBoxManage/VBoxManageModifyVM.cpp virtualbox-4.1.44-dfsg/src/VBox/Frontends/VBoxManage/VBoxManageModifyVM.cpp --- virtualbox-4.1.12-dfsg/src/VBox/Frontends/VBoxManage/VBoxManageModifyVM.cpp 2012-04-02 13:28:37.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Frontends/VBoxManage/VBoxManageModifyVM.cpp 2015-11-11 15:08:25.000000000 +0000 @@ -176,6 +176,9 @@ MODIFYVM_ATTACH_PCI, MODIFYVM_DETACH_PCI, #endif +#ifdef VBOX_WITH_USB_CARDREADER + MODIFYVM_USBCARDREADER, +#endif MODIFYVM_CHIPSET }; @@ -308,6 +311,9 @@ { "--pciattach", MODIFYVM_ATTACH_PCI, RTGETOPT_REQ_STRING }, { "--pcidetach", MODIFYVM_DETACH_PCI, RTGETOPT_REQ_STRING }, #endif +#ifdef VBOX_WITH_USB_CARDREADER + { "--usbcardreader", MODIFYVM_USBCARDREADER, RTGETOPT_REQ_BOOL_ONOFF }, +#endif }; static void vrdeWarningDeprecatedOption(const char *pszOption) @@ -2325,6 +2331,14 @@ break; } #endif +#ifdef VBOX_WITH_USB_CARDREADER + case MODIFYVM_USBCARDREADER: + { + CHECK_ERROR(machine, COMSETTER(EmulatedUSBCardReaderEnabled)(ValueUnion.f)); + break; + } +#endif /* VBOX_WITH_USB_CARDREADER */ + default: { errorGetOpt(USAGE_MODIFYVM, c, &ValueUnion); diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Frontends/VBoxManage/VBoxManageSnapshot.cpp virtualbox-4.1.44-dfsg/src/VBox/Frontends/VBoxManage/VBoxManageSnapshot.cpp --- virtualbox-4.1.12-dfsg/src/VBox/Frontends/VBoxManage/VBoxManageSnapshot.cpp 2012-04-02 13:28:37.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Frontends/VBoxManage/VBoxManageSnapshot.cpp 2015-11-11 15:08:25.000000000 +0000 @@ -189,12 +189,17 @@ /* See showVMInfo. */ ComPtr ptrSnapshot; - CHECK_ERROR2_RET(rptrMachine, FindSnapshot(Bstr().raw(), ptrSnapshot.asOutParam()), RTEXITCODE_FAILURE); + HRESULT hrc = rptrMachine->FindSnapshot(Bstr().raw(), ptrSnapshot.asOutParam()); + if (FAILED(hrc)) + { + RTPrintf("This machine does not have any snapshots\n"); + return RTEXITCODE_FAILURE; + } if (ptrSnapshot) { ComPtr ptrCurrentSnapshot; CHECK_ERROR2_RET(rptrMachine,COMGETTER(CurrentSnapshot)(ptrCurrentSnapshot.asOutParam()), RTEXITCODE_FAILURE); - HRESULT hrc = showSnapshots(ptrSnapshot, ptrCurrentSnapshot, enmDetails); + hrc = showSnapshots(ptrSnapshot, ptrCurrentSnapshot, enmDetails); if (FAILED(hrc)) return RTEXITCODE_FAILURE; } diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Frontends/VBoxSDL/Makefile.kmk virtualbox-4.1.44-dfsg/src/VBox/Frontends/VBoxSDL/Makefile.kmk --- virtualbox-4.1.12-dfsg/src/VBox/Frontends/VBoxSDL/Makefile.kmk 2012-04-02 13:28:37.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Frontends/VBoxSDL/Makefile.kmk 2015-11-11 15:08:25.000000000 +0000 @@ -36,6 +36,7 @@ # VBoxSDLHardened_TEMPLATE = VBOXR3HARDENEDEXE VBoxSDLHardened_SOURCES = VBoxSDLHardened.cpp +VBoxSDLHardened_SOURCES.win = $(VBoxSDL_0_OUTDIR)/VBoxSDL-icon.rc VBoxSDLHardened_NAME = VBoxSDL diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Frontends/VBoxSDL/VBoxSDL.cpp virtualbox-4.1.44-dfsg/src/VBox/Frontends/VBoxSDL/VBoxSDL.cpp --- virtualbox-4.1.12-dfsg/src/VBox/Frontends/VBoxSDL/VBoxSDL.cpp 2012-04-02 13:28:37.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Frontends/VBoxSDL/VBoxSDL.cpp 2015-11-11 15:08:25.000000000 +0000 @@ -4,7 +4,7 @@ */ /* - * Copyright (C) 2006-2011 Oracle Corporation + * Copyright (C) 2006-2013 Oracle Corporation * * This file is part of VirtualBox Open Source Edition (OSE), as * available from http://www.virtualbox.org. This file is free software; @@ -27,7 +27,7 @@ #include #include -#include +#include #include using namespace com; @@ -725,6 +725,10 @@ extern "C" DECLEXPORT(int) TrustedMain(int argc, char **argv, char **envp) { +#ifdef Q_WS_X11 + if (!XInitThreads()) + return 1; +#endif #ifdef VBOXSDL_WITH_X11 /* * Lock keys on SDL behave different from normal keys: A KeyPress event is generated @@ -1318,6 +1322,15 @@ } rc = com::Initialize(); +#ifdef VBOX_WITH_XPCOM + if (rc == NS_ERROR_FILE_ACCESS_DENIED) + { + char szHome[RTPATH_MAX] = ""; + com::GetVBoxUserHomeDirectory(szHome, sizeof(szHome)); + RTPrintf("Failed to initialize COM because the global settings directory '%s' is not accessible!\n", szHome); + return 1; + } +#endif if (FAILED(rc)) { RTPrintf("Error: COM initialization failed (rc=%Rhrc)!\n", rc); @@ -1335,7 +1348,7 @@ ComPtr pVirtualBox; ComPtr pSession; bool sessionOpened = false; - EventQueue* eventQ = com::EventQueue::getMainEventQueue(); + NativeEventQueue* eventQ = com::NativeEventQueue::getMainEventQueue(); ComPtr pMachine; @@ -2908,6 +2921,10 @@ */ int main(int argc, char **argv) { +#ifdef Q_WS_X11 + if (!XInitThreads()) + return 1; +#endif /* * Before we do *anything*, we initialize the runtime. */ diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Frontends/VBoxShell/vboxinfo.vbs virtualbox-4.1.44-dfsg/src/VBox/Frontends/VBoxShell/vboxinfo.vbs --- virtualbox-4.1.12-dfsg/src/VBox/Frontends/VBoxShell/vboxinfo.vbs 2012-04-02 13:28:38.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Frontends/VBoxShell/vboxinfo.vbs 2015-11-11 15:08:25.000000000 +0000 @@ -1,14 +1,14 @@ ' -' Copyright (C) 2009 Oracle Corporation -' -' This file is part of VirtualBox Open Source Edition (OSE), as -' available from http://www.virtualbox.org. This file is free software; -' you can redistribute it and/or modify it under the terms of the GNU -' General Public License (GPL) as published by the Free Software -' Foundation, in version 2 as it comes in the "COPYING" file of the -' VirtualBox OSE distribution. VirtualBox OSE is distributed in the -' hope that it will be useful, but WITHOUT ANY WARRANTY of any kind. -' +' Copyright (C) 2009 Oracle Corporation +' +' This file is part of VirtualBox Open Source Edition (OSE), as +' available from http://www.virtualbox.org. This file is free software; +' you can redistribute it and/or modify it under the terms of the GNU +' General Public License (GPL) as published by the Free Software +' Foundation, in version 2 as it comes in the "COPYING" file of the +' VirtualBox OSE distribution. VirtualBox OSE is distributed in the +' hope that it will be useful, but WITHOUT ANY WARRANTY of any kind. +' Sub Print(str) Wscript.Echo str diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Frontends/VirtualBox/Makefile.kmk virtualbox-4.1.44-dfsg/src/VBox/Frontends/VirtualBox/Makefile.kmk --- virtualbox-4.1.12-dfsg/src/VBox/Frontends/VirtualBox/Makefile.kmk 2012-04-02 13:28:38.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Frontends/VirtualBox/Makefile.kmk 2015-11-11 15:08:25.000000000 +0000 @@ -68,8 +68,12 @@ # VirtualBoxHardened_TEMPLATE = VBOXR3HARDENEDEXE VirtualBoxHardened_SOURCES = src/hardenedmain.cpp +VirtualBoxHardened_SOURCES.win = src/platform/win/VirtualBoxHardened.rc VirtualBoxHardened_NAME = VirtualBox VirtualBoxHardened_INST.darwin = $(INST_BIN)VirtualBox $(INST_BIN)VirtualBoxVM +VirtualBoxHardened_LDFLAGS.win = /SUBSYSTEM:$(if-expr "$(KBUILD_TYPE)" != "release",console,windows) +src/platform/win/VirtualBoxHardened.rc_INCS = $(VirtualBox_0_OUTDIR) +src/platform/win/VirtualBoxHardened.rc_DEPS = $(VirtualBox_0_OUTDIR)/VirtualBox-icon.rc # @@ -131,6 +135,7 @@ $(if $(VBOX_WITH_UDPTUNNEL),VBOX_WITH_UDPTUNNEL) \ $(if $(VBOX_WITH_EXTPACK),VBOX_WITH_EXTPACK) \ $(if $(VBOX_WITH_EHCI),VBOX_WITH_EHCI) \ + $(if $(VBOX_WITH_HARDENING),VBOXR3_HARDENED_DLL) \ $(if $(VBOX_GUI_WITH_PIDFILE),VBOX_GUI_WITH_PIDFILE) \ $(if $(VBOX_GUI_WITH_KEYS_RESET_HANDLER),VBOX_GUI_WITH_KEYS_RESET_HANDLER) \ $(if $(VBOX_GUI_WITH_CUSTOMIZATIONS1),VBOX_GUI_WITH_CUSTOMIZATIONS1) @@ -170,6 +175,7 @@ endif + VBOX_GUI_INC_DIRS = \ ./src \ ./src/globals \ @@ -208,6 +214,10 @@ # Necessary for the hdd backend enumeration VirtualBox_LIBS = $(LIB_DDU) +if1of ($(KBUILD_TARGET), linux freebsd netbsd openbsd) + VirtualBox_LIBS += dl +endif + # This library is required for multi-monitor support VirtualBox_LIBS.linux += Xinerama VirtualBox_LIBS.solaris += Xinerama @@ -265,6 +275,10 @@ VirtualBox_LIBS.linux += GL VirtualBox_LIBS.freebsd += GL endif +ifdef VBOX_WITH_CROGL + VirtualBox_LIBS += $(PATH_STAGE_LIB)/VBoxOGLTest$(VBOX_SUFF_LIB) +endif + # Headers containing definitions of classes that use the Q_OBJECT macro. VirtualBox_QT_MOCHDRS = \ @@ -910,10 +924,10 @@ VirtualBoxVM.app_MODE = 644 VirtualBoxVM.app_SOURCES = \ src/platform/darwin/VM-PkgInfo=>PkgInfo \ - $(VirtualBoxVM.app_0_OUTDIR)/VM-Info.plist=>Info.plist + $(VirtualBoxVM.app_0_OUTDIR)/VM-Info.plist=>Info.plist \ + $(foreach mysrc,$(VirtualBox.app_SOURCES),$(if-expr $(pos =>Resources/,$(mysrc)) > 0,$(mysrc),)) VirtualBoxVM.app_SYMLINKS = \ - MacOS=>../../../MacOS/ \ - Resources=>../../../Resources/ + MacOS=>../../../MacOS/ $$(VirtualBoxVM.app_0_OUTDIR)/VM-Info.plist: $(PATH_SUB_CURRENT)/src/platform/darwin/VM-Info.plist $(VBOX_VERSION_MK) | $$(@D)/ $(call MSG_GENERATE,VirtualBoxVM.app,$<,$@) @@ -939,10 +953,10 @@ vmstarter.app_MODE = 644 vmstarter.app_SOURCES = \ src/platform/darwin/vmstarter-PkgInfo=>PkgInfo \ - $(vmstarter.app_0_OUTDIR)/vmstarter-Info.plist=>Info.plist + $(vmstarter.app_0_OUTDIR)/vmstarter-Info.plist=>Info.plist \ + $(foreach mysrc,$(VirtualBox.app_SOURCES),$(if-expr $(pos =>Resources/,$(mysrc)) > 0,$(mysrc),)) vmstarter.app_SYMLINKS = \ - MacOS=>../../../MacOS \ - Resources=>../../../Resources + MacOS=>../../../MacOS \ $$(vmstarter.app_0_OUTDIR)/vmstarter-Info.plist: $(PATH_SUB_CURRENT)/src/platform/darwin/vmstarter-Info.plist $(VBOX_VERSION_MK) | $$(@D)/ $(call MSG_GENERATE,vmstarter.app,$<,$@) diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Frontends/VirtualBox/nls/qt_id.ts virtualbox-4.1.44-dfsg/src/VBox/Frontends/VirtualBox/nls/qt_id.ts --- virtualbox-4.1.12-dfsg/src/VBox/Frontends/VirtualBox/nls/qt_id.ts 2012-04-02 13:28:41.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Frontends/VirtualBox/nls/qt_id.ts 2015-11-11 15:08:28.000000000 +0000 @@ -1,77 +1,77 @@ - + MAC_APPLICATION_MENU Services - + Layanan Hide %1 - + Sembunyikan %1 Hide Others - + Sembunyikan Lainnya Show All - + Tampilkan Semua Preferences... - + Preferensi... Quit %1 - + Keluar %1 About %1 - + Tentang %1 AudioOutput <html>The audio playback device <b>%1</b> does not work.<br/>Falling back to <b>%2</b>.</html> - + <html>Perangkat pemutar audio <b>%1</b> tak bekerja.<br/>Beralih ke cadangan <b>%2</b>.</html> <html>Switching to the audio playback device <b>%1</b><br/>which just became available and has higher preference.</html> - + <html>Bertukar ke perangkat pemutar audio <b>%1</b><br/>yang baru saja jadi tersedia dan memiliki preferensi lebih tinggi.</html> Revert back to device '%1' - + Kembali ke perangkat '%1' Phonon:: Notifications - + Pemberitahuan Music - + Musik Video - + Video Communication - + Komunikasi Games - + Permainan Accessibility - + Aksesibilitas @@ -79,12 +79,14 @@ Warning: You do not seem to have the package gstreamer0.10-plugins-good installed. Some video features have been disabled. - + Peringatan: Sepertinya Anda belum memasang paket gstreamer0.10-plugins-good. + Beberapa fitur video telah dimatikan. Warning: You do not seem to have the base GStreamer plugins installed. All audio and video support has been disabled - + Peringatan: Sepertinya Anda belum memasang plugin GStreamer dasar. + Semua dukungan audio dan video telah dimatikan @@ -94,319 +96,324 @@ Check your Gstreamer installation and make sure you have libgstreamer-plugins-base installed. - + Tak bisa mulai memutar. + +Periksa instalasi Gstreamer Anda dan pastikan bahwa +libgstreamer-plugins-base telah terpasang. A required codec is missing. You need to install the following codec(s) to play this content: %0 - - + + Sebuah codec yang diperlukan hilang. Anda perlu memasang codec berikut untuk memainkannya: %0 Could not open media source. - + Tak bisa membuka sumber media. Invalid source type. - + Tipe sumber tak valid. Could not locate media source. - + Tak bisa menemukan sumber media. Could not open audio device. The device is already in use. - + Tak bisa membuka perangkat audio. Perangkat telah dipakai. Could not decode media source. - + Tak bisa men-decode sumber media. Phonon::VolumeSlider Volume: %1% - + Volume: %1% Use this slider to adjust the volume. The leftmost position is 0%, the rightmost is %1% - + Gunakan penggeser ini untuk mengatur keras suara. Posisi paling kiri adalah 0%, paling kanan %1% Q3Accel %1, %2 not defined - + %1, %2 tak didefinisikan Ambiguous %1 not handled - + %1 ambigu tak ditangani Q3DataTable True - + Benar False - + Salah Insert - + Sisipkan Update - + Perbarui Delete - + Hapus Q3FileDialog Copy or Move a File - + Salin atau Pindah sebuah File Read: %1 - + Baca: %1 Write: %1 - + Tulis: %1 Cancel - + Batal All Files (*) - + Semua File (*) Name - + Nama Size - + Ukuran Type - + Tipe Date - + Tanggal Attributes - + Atribut &OK - + &OK Look &in: - + Lihat d&i: File &name: - + &Nama file: File &type: - + &Tipe file: Back - + Mundur One directory up - + Naik satu direktori Create New Folder - + Buat Folder Baru List View - + Tilikan Daftar Detail View - + Tilikan Rinci Preview File Info - + Pratinjau Info File Preview File Contents - + Pratinjau Isi File Read-write - + Baca-tulis Read-only - + Baca-saja Write-only - + Tulis-saja Inaccessible - + Tak dapat diakses Symlink to File - + Symlink ke File Symlink to Directory - + Symlink ke Direktori Symlink to Special - + Symlink ke Spesial File - + File Dir - + Dir Special - + Spesial Open - + Buka Save As - + Simpan Sebagai &Open - + &Buka &Save - + &Simpan &Rename - + &Ubah Nama &Delete - + Hapu&s R&eload - + Muat &Ulang Sort by &Name - + Urut &Nama Sort by &Size - + Urut &Ukuran Sort by &Date - + Urut &Tanggal &Unsorted - + T&ak Diurutkan Sort - + Urutkan Show &hidden files - + &Tampilkan file tersembunyi the file - + file the directory - + direktori the symlink - + symlink Delete %1 - + Hapus %1 <qt>Are you sure you wish to delete %1 "%2"?</qt> - + <qt>Anda yakin hendak menghapus %1 "%2"?</qt> &Yes - + &Ya &No - + &Tidak New Folder 1 - + Folder Baru 1 New Folder - + Folder Baru New Folder %1 - + Folder Baru %1 Find Directory - + Cari Direktori Directories - + Direktori Directory: - + Direktori: Error - + Kesalahan %1 File not found. Check path and filename. - + %1 +File tak ditemukan. +Periksa path dan nama file. @@ -414,376 +421,384 @@ Could not read directory %1 - + Tak bisa membaca direktori +%1 Could not create directory %1 - + Tak bisa membuat direktori +%1 Could not remove file or directory %1 - + Tak bisa menghapus file atau direktori +%1 Could not rename %1 to %2 - + Tak bisa mengubah nama +%1 +menjadi +%2 Could not open %1 - + Tak bisa membuka +%1 Could not write %1 - + Tak bisa menulis +%1 Q3MainWindow Line up - + Bariskan Customize... - + Gubah... Q3NetworkProtocol Operation stopped by the user - + Operasi dihentikan oleh pengguna Q3ProgressDialog Cancel - + Batal Q3TabDialog OK - + OK Apply - + Terapkan Help - + Bantuan Defaults - + Bawaan Cancel - + Batal Q3TextEdit &Undo - + &Batalkan &Redo - + &Jadi Lagi Cu&t - + Po&tong &Copy - + &Salin &Paste - + Tem&pel Clear - + Bersihkan Select All - + Pilih Semua Q3TitleBar System - + Sistem Restore up - + Kembali naik Minimize - + Minimalkan Restore down - + Kembali turun Maximize - + Maksimalkan Close - + Tutup Contains commands to manipulate the window - + Memuat perintah untuk memanipulasi window Puts a minimized back to normal - + Mengembalikan yang terminimumkan ke normal Moves the window out of the way - + Memindah window agar tak menghalangi Puts a maximized window back to normal - + Mengembalikan yang termaksimumkan ke normal Makes the window full screen - + Membuat window memenuhi layar Closes the window - + Menutup window Displays the name of the window and contains controls to manipulate it - + Menampilkan nama window dan mewadahi kendali untuk memanipulasikannya Q3ToolBar More... - + Lebih... Q3UrlOperator The protocol `%1' is not supported - + Protokol '%1' tak didukung The protocol `%1' does not support listing directories - + Protokol '%1' tak mendukung daftar direktori The protocol `%1' does not support creating new directories - + Protokol '%1' tak mendukung pembuatan direktori baru The protocol `%1' does not support removing files or directories - + Protokol '%1' tak mendukung penghapusan file atau direktori The protocol `%1' does not support renaming files or directories - + Protokol '%1' tak mendukung pengubahan nama file atau direktori The protocol `%1' does not support getting files - + Protokol '%1' tak mendukung pengambilan file The protocol `%1' does not support putting files - + Protokol '%1' tak mendukung peletakan file The protocol `%1' does not support copying or moving files or directories - + Protokol '%1' tak mendukung penyalinan atau pemindahan file atau direktori (unknown) - + (tak dikenal) Q3Wizard &Cancel - + &Batal < &Back - + < Kem&bali &Next > - + La&njut > &Finish - + &Selesai &Help - + &Bantuan QAbstractSocket Host not found - + Host tak ditemukan Connection refused - + Koneksi ditolak Socket operation timed out - + Operasi soket habis waktu Socket is not connected - + Soket tak terhubung QAbstractSpinBox &Step up - + &Naikkan Step &down - + &Turunkan &Select All - + Pilih &Semua QApplication Activate - + Aktifkan Executable '%1' requires Qt %2, found Qt %3. - + Executable '%1 memerlukan Qt %2, menemukan Qt %3. Incompatible Qt Library Error - + Kesalahan Pustaka Qt Yang Tak Kompatibel QT_LAYOUT_DIRECTION Translate this string to the string 'LTR' in left-to-right languages or to 'RTL' in right-to-left languages (such as Hebrew and Arabic) to get proper widget layout. - + LTR Activates the program's main window - + Aktifkan window utama program QCheckBox Uncheck - + Hapus contreng Check - + Contreng Toggle - + Jungkitkan QColorDialog Hu&e: - + Hu&e: &Sat: - + &Sat: &Val: - + &Val: &Red: - + Me&rah: &Green: - + &Hijau: Bl&ue: - + Bir&u: A&lpha channel: - + Kanal a&lfa: &Basic colors - + Warna &dasar &Custom colors - + Warna &gubahan &Add to Custom Colors - + T&ambahkan ke Warna Gubahan Select color - + Pilih warna QComboBox Open - + Buka False - + Salah True - + Benar Close - + Tutup @@ -791,4502 +806,4519 @@ %1: permission denied QSystemSemaphore - + %1: ijin ditolak %1: already exists QSystemSemaphore - + %1: telah ada %1: doesn't exists QSystemSemaphore - + %1: tidak ada %1: out of resources QSystemSemaphore - + %1: kehabisan sumber daya %1: unknown error %2 QSystemSemaphore - + %1: kesalahan tak dikenal %2 %1: key is empty QSystemSemaphore - + %1: kunci kosong %1: unable to make key QSystemSemaphore - + %1: tak bisa membuat kunci %1: ftok failed QSystemSemaphore - + %1: ftok gagal QDB2Driver Unable to connect - + Tak bisa menyambung Unable to commit transaction - + Tak bisa commit transaksi Unable to rollback transaction - + Tak bisa rollback transaksi Unable to set autocommit - + Tak bisa menata autocommit QDB2Result Unable to execute statement - + Tak bisa mengeksekusi pernyataan Unable to prepare statement - + Tak bisa menyiapkan pernyataan Unable to bind variable - + Tak bisa mem-bind variabel Unable to fetch record %1 - + Tak bisa mengambil record %1 Unable to fetch next - + Tak bisa mengambil berikutnya Unable to fetch first - + Tak bisa mengambil yang pertama QDateTimeEdit AM - + AM am - + am PM - + PM pm - + pm QDial QDial - + QDial SpeedoMeter - + SpeedoMeter SliderHandle - + SliderHandle QDialog What's This? - + Apa Ini? Done - + Selesai QDialogButtonBox OK - + OK Save - + Simpan Open - + Buka Cancel - + Batal Close - + Tutup Apply - + Terapkan Reset - + Reset Help - + Bantuan Don't Save - + Jangan Simpan Discard - + Buang &Yes - + &Ya Yes to &All - + Ya untuk Semu&a &No - + &Tidak N&o to All - + T&idak untuk Semua Save All - + Simpan Semua Abort - + Gugurkan Retry - + Coba Lagi Ignore - + Abaikan Restore Defaults - + Kembalikan Bawaan Close without Saving - + Tutup tanpa Menyimpan &OK - + &OK QDirModel Name - + Nama Size - + Ukuran Kind Match OS X Finder - + Jenis Type All other platforms - + Tipe Date Modified - + Tanggal Diubah QDockWidget Close - + Tutup Dock - + Dok Float - + Ambangkan QDoubleSpinBox More - + Lebih Less - + Kurang QErrorMessage Debug Message: - + Pesan Debug: Warning: - + Peringatan: Fatal Error: - + Kesalahan Fatal: &Show this message again - + Tampilkan lagi pe&san ini &OK - + &OK QFileDialog All Files (*) - + Semua File (*) Directories - + Direktori &Open - + &Buka &Save - + &Simpan Open - + Buka %1 already exists. Do you want to replace it? - + %1 telah ada. +Anda ingin menggantikannya? %1 File not found. Please verify the correct file name was given. - + %1 +File tak ditemukan. +Mohon periksa bahwa nama file yang diberikan benar. My Computer - + Komputerku &Rename - + &Ubah Nama &Delete - + Hapu&s Show &hidden files - + &Tampilkan file tersembunyi Back - + Mundur Parent Directory - + Direktori Induk List View - + Tilikan Daftar Detail View - + Tilikan Rinci Files of type: - + File dengan tipe: Directory: - + Direktori: %1 Directory not found. Please verify the correct directory name was given. - + %1 +Direktori tak ditemukan. +Mohon periksa bahwa nama direktori yang diberikan benar. '%1' is write protected. Do you want to delete it anyway? - + %1 terlindung-tulis. +Anda tetap ingin menghapusnya? Are sure you want to delete '%1'? - + Anda yakin hendak menghapus '%1'? Could not delete directory. - + Tak bisa menghapus direktori. Save As - + Simpan Sebagai Drive - + Drive File - + File Unknown - + Tak Dikenal Find Directory - + Cari Direktori Show - + Tampilkan Forward - + Maju New Folder - + Folder Baru &New Folder - + Folder &Baru &Choose - + &Pilih Remove - + Hapus File &name: - + &Nama file: Look in: - + Lihat di: Create New Folder - + Buat Folder Baru QFileSystemModel Invalid filename - + Nama file tak valid <b>The name "%1" can not be used.</b><p>Try using another name, with fewer characters or no punctuations marks. - + <b>Nama "%1" tak bisa dipakai.</b><p>Cobalah memakai nama lain, dengan lebih sedikit karakter atau tanpa tanda pungtuasi. Name - + Nama Size - + Ukuran Kind Match OS X Finder - + Jenis Type All other platforms - + Tipe Date Modified - + Tanggal Diubah My Computer - + Komputerku Computer - + Komputer %1 TB - + %1 TB %1 GB - + %1 GB %1 MB - + %1 MB %1 KB - + %1 kB %1 bytes - + %1 byte QFontDatabase Normal - + Normal Bold - + Tebal Demi Bold - + Demi Bold Black - + Hitam Demi - + Demi Light - + Ringan Italic - + Miring Oblique - + Oblique Any - + Apapun Latin - + Latin Greek - + Yunani Cyrillic - + Sirilik Armenian - + Armenia Hebrew - + Ibrani Arabic - + Arab Syriac - + Siria Thaana - + Thaana Devanagari - + Devanagri Bengali - + Bengal Gurmukhi - + Gurmukhi Gujarati - + Gujarat Oriya - + Oriya Tamil - + Tamil Telugu - + Telugu Kannada - + Kannada Malayalam - + Malayalam Sinhala - + Sinhala Thai - + Thailand Lao - + Laos Tibetan - + Tibet Myanmar - + Burma Georgian - + Georgia Khmer - + Khmer Simplified Chinese - + Cina Disederhanakan Traditional Chinese - + Cina Tradisional Japanese - + Jepang Korean - + Korea Vietnamese - + Vietnam Symbol - + Simbol Ogham - + Ogham Runic - + Runik QFontDialog &Font - + &Font Font st&yle - + Ga&ya font &Size - + &Ukuran Effects - + Efek Stri&keout - + Di&coret &Underline - + &Garis bawah Sample - + Contoh Wr&iting System - + Sistem Menul&is Select Font - + Pilih Font QFtp Not connected - + Tak terhubung Host %1 not found - + Host %1 tak ditemukan Connection refused to host %1 - + Sambungan ditolak ke host %1 Connected to host %1 - + Tersambung ke host %1 Connection refused for data connection - + Sambungan ditolak untuk koneksi data Unknown error - + Kesalahan tak dikenal Connecting to host failed: %1 - + Menyambung ke host gagal: %1 Login failed: %1 - + Login gagal: +%1 Listing directory failed: %1 - + Mendaftar direktori gagal: +%1 Changing directory failed: %1 - + Berpindah direktori gagal: +%1 Downloading file failed: %1 - + Mengunduh file gagal: +%1 Uploading file failed: %1 - + Mengunggah file gagal: +%1 Removing file failed: %1 - + Menghapus file gagal: +%1 Creating directory failed: %1 - + Membuat direktori gagal: +%1 Removing directory failed: %1 - + Menghapus direktori gagal: +%1 Connection closed - + Sambungan ditutup Host %1 found - + Host %1 ditemukan Connection to %1 closed - + Sambungan ke %1 ditutup Host found - + Host ditemukan Connected to host - + Tersambung ke host QHostInfo Unknown error - + Kesalahan tak dikenal QHostInfoAgent Host not found - + Host tak ditemukan Unknown address type - + Tipe alamat tak dikenal Unknown error - + Kesalahan tak dikenal QHttp Unknown error - + Kesalahan tak dikenal Request aborted - + Permintaan digugurkan No server set to connect to - + Server untuk dihubungi tak ditata Wrong content length - + Panjang isi salah Server closed connection unexpectedly - + Server menutup koneksi tak terduga Connection refused - + Sambungan ditolak Host %1 not found - + Host %1 tak ditemukan HTTP request failed - + Permintaan HTTP gagal Invalid HTTP response header - + Header respon HTTP tak valid Invalid HTTP chunked body - + Body chunked HTTP tak valid Host %1 found - + Host %1 ditemukan Connected to host %1 - + Tersambung ke host %1 Connection to %1 closed - + Sambungan ke %1 ditutup Host found - + Host ditemukan Connected to host - + Tersambung ke host Connection closed - + Sambungan ditutup Proxy authentication required - + Otentikasi proksi diperlukan Authentication required - + Otentikasi diperlukan HTTPS connection requested but SSL support not compiled in - + Koneksi HTTPS diminta tapi dukungan SSL tak disertakan saat kompail Connection refused (or timed out) - + Sambungan ditolak (atau habis waktu) Proxy requires authentication - + Proksi memerlukan otentikasi Host requires authentication - + Host memerlukan otentikasi Data corrupted - + Data terkorupsi Unknown protocol specified - + Protokol tak dikenal dinyatakan SSL handshake failed - + Handshake SSL gagal QHttpSocketEngine Authentication required - + Otentikasi diperlukan QIBaseDriver Error opening database - + Kesalahan saat membuka database Could not start transaction - + Tak bisa memulai transaksi Unable to commit transaction - + Tak bisa commit transaksi Unable to rollback transaction - + Tak bisa rollback transaksi QIBaseResult Unable to create BLOB - + Tak bisa membuat BLOB Unable to write BLOB - + Tak bisa menulis BLOB Unable to open BLOB - + Tak bisa membuka BLOB Unable to read BLOB - + Tak bisa membaca BLOB Could not find array - + Tak bisa temukan array Could not get array data - + Tak bisa mendapat data array Could not get query info - + Tak bisa mendapat info query Could not start transaction - + Tak bisa memulai transaksi Unable to commit transaction - + Tak bisa commit transaksi Could not allocate statement - + Tak bisa mengalokasikan pernyataan Could not prepare statement - + Tak bisa menyiapkan pernyataan Could not describe input statement - + Tak bisa menjelaskan pernyataan masukan Could not describe statement - + Tak bisa menjelaskan pernyataan Unable to close statement - + Tak bisa menutup pernyataan Unable to execute query - + Tak bisa mengeksekusi query Could not fetch next item - + Tak bisa mengambil butir berikutnya Could not get statement info - + Tak bisa mendapat info pernyataan QIODevice Permission denied - + Ijin ditolak Too many open files - + Terlalu banyak file terbuka No such file or directory - + File atau direktori tak ada No space left on device - + Tak ada ruang tersisa pada perangkat Unknown error - + Kesalahan tak dikenal QInputContext XIM - + XIM XIM input method - + Metoda masukan XIM Windows input method - + Metoda masukan Windows Mac OS X input method - + Metoda masuka Mac OS X QLibrary QLibrary::load_sys: Cannot load %1 (%2) - + QLibrary::load_sys: Tak bisa memuat %1 (%2) QLibrary::unload_sys: Cannot unload %1 (%2) - + QLibrary::unload_sys: Tak bisa membongkar %1 (%2) QLibrary::resolve_sys: Symbol "%1" undefined in %2 (%3) - + QLibrary::resolve_sys: Simbol "%1" tak terdefinisi dalam %2 (%3) Could not mmap '%1': %2 - + Tak bisa mmap '%1': %2 Plugin verification data mismatch in '%1' - + Data verifikasi plugin tak cocok dalam '%1' Could not unmap '%1': %2 - + Tak bisa unmap '%1': %2 The plugin '%1' uses incompatible Qt library. (%2.%3.%4) [%5] - + Plugin '%1' memakai pustaka Qt yang tak kompatibel. (%2.%3.%4) [%5] The plugin '%1' uses incompatible Qt library. Expected build key "%2", got "%3" - + Plugin '%1' memakai pustaka Qt yang tak kompatibel. Mengharapkan kunci build "%2", mendapat "%3" Unknown error - + Kesalahan tak dikenal The shared library was not found. - + Pustaka bersama tak ditemukan. The file '%1' is not a valid Qt plugin. - + File '%1' bukan plugin Qt yang valid. The plugin '%1' uses incompatible Qt library. (Cannot mix debug and release libraries.) - + Plugin '%1' memakai pustaka Qt yang tak kompatibel. (Tak bisa mencampur pustaka debug dan rilis.) QLineEdit &Undo - + &Batalkan &Redo - + &Jadi Lagi Cu&t - + Po&tong &Copy - + &Salin &Paste - + Tem&pel Delete - + Hapus Select All - + Pilih Semua QLocalServer %1: Name error - + %1: Kesalahan nama %1: Permission denied - + %1: Ijin ditolak %1: Address in use - + %1: Alamat dipakai %1: Unknown error %2 - + %1: Kesalahan tak dikenal %2 QLocalSocket %1: Connection refused - + %1: Koneksi ditolak %1: Remote closed - + %1: Remote ditutup %1: Invalid name - + %1: Nama tak valid %1: Socket access error - + %1: Kesalahan akses soket %1: Socket resource error - + %1: Kesalahan sumber daya soket %1: Socket operation timed out - + %1: Operasi soket habis waktu %1: Datagram too large - + %1: Datagram terlalu besar %1: Connection error - + %1: Kesalahan koneksi %1: The socket operation is not supported - + %1: Operasi soket tak didukung %1: Unknown error %2 - + %1: Kesalahan tak dikenal %2 QMYSQLDriver Unable to open database ' - + Tak bisa membuka database ' Unable to connect - + Tak bisa menyambung Unable to begin transaction - + Tak bisa memulai transaksi Unable to commit transaction - + Tak bisa commit transaksi Unable to rollback transaction - + Tak bisa rollback transaksi QMYSQLResult Unable to fetch data - + Tak bisa mengambil data Unable to execute query - + Tak bisa mengeksekusi query Unable to store result - + Tak bisa menyimpan hasil Unable to prepare statement - + Tak bisa menyiapkan pernyataan Unable to reset statement - + Tak bisa mereset pernyataan Unable to bind value - + Tak bisa mem-bind nilai Unable to execute statement - + Tak bisa mengeksekusi pernyataan Unable to bind outvalues - + Tak bisa mem-bind outvalue Unable to store statement results - + Tak bisa menyimpan hasil pernyataan Unable to execute next query - + Tak bisa mengeksekusi query berikutnya Unable to store next result - + Tak bisa menyimpan hasil berikutnya QMdiArea (Untitled) - + (Tanpa judul) QMdiSubWindow %1 - [%2] - + %1 - [%2] Close - + Tutup Minimize - + Minimalkan Restore Down - + Kembali Turun &Restore - + &Kembalikan &Move - + &Pindahkan &Size - + &Ukuran Mi&nimize - + Mi&nimalkan Ma&ximize - + Ma&ksimalkan Stay on &Top - + &Tetap di Atas &Close - + Tutu&p - [%1] - + - [%1] Maximize - + Maksimalkan Unshade - + Hapus Bayang Shade - + Berbayang Restore - + Kembalikan Help - + Bantuan Menu - + Menu QMenu Close - + Tutup Open - + Buka Execute - + Jalankan QMessageBox Help - + Bantuan OK - + OK About Qt - + Tentang Qt <p>This program uses Qt version %1.</p> - + <p>Program ini memakai Qt versi %1.</p> Show Details... - + Tampilkan Rincian... Hide Details... - + Sembunyikan Rincian... <p>This program uses Qt Open Source Edition version %1.</p><p>Qt Open Source Edition is intended for the development of Open Source applications. You need a commercial Qt license for development of proprietary (closed source) applications.</p><p>Please see <a href="http://www.trolltech.com/company/model/">www.trolltech.com/company/model/</a> for an overview of Qt licensing.</p> - + <p>Program ini memakai Qt Open Source Edition versi %1.</p><p>Qt Open Source Edition ditujukan bagi pengembangan aplikasi Open Source. Anda perlu lisensi komersial Qt bagi pengembangan aplikasi proprietary (closed source).</p><p>Silakan lihat <a href="http://www.trolltech.com/company/model/">www.trolltech.com/company/model/</a> untuk ringkasan tentang masalah lisensi Qt.</p> <h3>About Qt</h3>%1<p>Qt is a C++ toolkit for cross-platform application development.</p><p>Qt provides single-source portability across MS&nbsp;Windows, Mac&nbsp;OS&nbsp;X, Linux, and all major commercial Unix variants. Qt is also available for embedded devices as Qt for Embedded Linux and Qt for Windows CE.</p><p>Qt is a Nokia product. See <a href="http://www.trolltech.com/qt/">www.trolltech.com/qt/</a> for more information.</p> - + <h3>Tentang Qt</h3>%1<p>Qt adalah toolkit C++ untuk pengembangan aplikasi lintas platform.</p><p>Qt menyediakan portabilitas sumber tunggal mencakup MS&nbsp;Windows, Mac&nbsp;OS&nbsp;X, Linux, dan semua varian Unix komersial utama. Qt juga tersedia bagi device embedded sebagai Qt for Embedded Linux dan Qt for Windows CE.</p><p>Qt adalah sebuah produk Nokia. Lihat <a href="http://www.trolltech.com/qt/">www.trolltech.com/qt/</a> untuk informasi lebih lanjut.</p> QMultiInputContext Select IM - + Pilih IM QMultiInputContextPlugin Multiple input method switcher - + Penukar metoda masukan berganda Multiple input method switcher that uses the context menu of the text widgets - + Penukar metoda masukan berganda yang memakai menu konteks dari widget teks QNativeSocketEngine The remote host closed the connection - + Host remote menutup koneksi Network operation timed out - + Operasi jaringan habis waktu Out of resources - + Kehabisan sumber daya Unsupported socket operation - + Operasi soket yang tak didukung Protocol type not supported - + Tipe protokol tak didukung Invalid socket descriptor - + Descriptor soket tak valid Network unreachable - + Jaringan tak dapat dicapai Permission denied - + Ijin ditolak Connection timed out - + Koneksi habis waktu Connection refused - + Koneksi ditolak The bound address is already in use - + Alamat yang di-bind telah dipakai The address is not available - + Alamat tak tersedia The address is protected - + Alamat terproteksi Unable to send a message - + Tak bisa mengirim pesan Unable to receive a message - + Tak bisa menerima pesan Unable to write - + Tak bisa menulis Network error - + Kesalahan jaringan Another socket is already listening on the same port - + Soket lain telah mendengarkan pada port yang sama Unable to initialize non-blocking socket - + Tak bisa menginisialisasi soket non-blocking Unable to initialize broadcast socket - + Tak bisa menginisialisasi soket broadcast Attempt to use IPv6 socket on a platform with no IPv6 support - + Percobaan memakai soket IPv6 pada sebuah platform tanpa dukungan IPv6 Host unreachable - + Host tak dapat dicapai Datagram was too large to send - + Datagram terlalu besar untuk dikirim Operation on non-socket - + Operasi pada bukan soket Unknown error - + Kesalahan tak dikenal The proxy type is invalid for this operation - + Tipe proksi tak valid bagi operasi ini QNetworkAccessFileBackend Request for opening non-local file %1 - + Meminta membuka file non-lokal %1 Error opening %1: %2 - + Kesalahan saat membuka %1: %2 Write error writing to %1: %2 - + Kesalahan saat menulis ke %1: %2 Cannot open %1: Path is a directory - + Tak bisa membuka %1: Path adalah direktori Read error reading from %1: %2 - + Kesalahan saat membaca dari %1: %2 QNetworkAccessFtpBackend Cannot open %1: is a directory - + Tak bisa membuka %1: itu adalah direktori Logging in to %1 failed: authentication required - + Login ke %1 gagal: otentikasi diperlukan Error while downloading %1: %2 - + Kesalahan ketika mengunduh %1: %2 Error while uploading %1: %2 - + Kesalahan ketika mengunggah %1: %2 QNetworkReply Error downloading %1 - server replied: %2 - + Kesalahan mendownload %1 - server menjawab: %2 Protocol "%1" is unknown - + Protokol "%1" tak dikenal QNetworkReplyImpl Operation canceled - + Operasi dibatalkan QOCIDriver Unable to logon - + Tak bisa logon Unable to initialize QOCIDriver - + Tak bisa menginisialisasi Unable to begin transaction - + Tak bisa memulai transaksi Unable to commit transaction - + Tak bisa commit transaksi Unable to rollback transaction - + Tak bisa rollback transaksi QOCIResult Unable to bind column for batch execute - + Tak bisa mem-bind kolom untuk eksekusi batch Unable to execute batch statement - + Tak bisa mengeksekusi pernyataan batch Unable to goto next - + Tak bisa goto next Unable to alloc statement - + Tak bisa alloc pernyataan Unable to prepare statement - + Tak bisa menyiapkan pernyataan Unable to bind value - + Tak bisa mem-bind nilai Unable to execute select statement - + Tak bisa mengeksekusi pernyataan select Unable to execute statement - + Tak bisa mengeksekusi pernyataan QODBCDriver Unable to connect - + Tak bisa menyambung Unable to connect - Driver doesn't support all needed functionality - + Tak bisa menyambung - Driver tak mendukung semua fungsionalitas yang diperlukan Unable to disable autocommit - + Tak bisa mematikan autocommit Unable to commit transaction - + Tak bisa commit transaksi Unable to rollback transaction - + Tak bisa rollback transaksi Unable to enable autocommit - + Tak bisa menghidupkan autocommit QODBCResult QODBCResult::reset: Unable to set 'SQL_CURSOR_STATIC' as statement attribute. Please check your ODBC driver configuration - + QODBCResult::reset: Tak bisa menata 'SQL_CURSOR_STATIC' sebagai atribut pernyataan. Mohon periksa konfigurasi driver ODBC Anda Unable to execute statement - + Tak bisa mengeksekusi pernyataan Unable to fetch next - + Tak bisa mengambil berikutnya Unable to prepare statement - + Tak bisa menyiapkan pernyataan Unable to bind variable - + Tak bisa mem-bind variabel Unable to fetch last - + Tak bisa mengambil yang terakhir Unable to fetch - + Tak bisa mengambil Unable to fetch first - + Tak bisa mengambil yang pertama Unable to fetch previous - + Tak bisa mengambil sebelumnya QObject Operation not supported on %1 - + Operasi tak didukung pada %1 Invalid URI: %1 - + URI tak valid: %1 Write error writing to %1: %2 - + Kesalahan saat menulis ke %1: %2 Read error reading from %1: %2 - + Kesalahan saat membaca dari %1: %2 Socket error on %1: %2 - + Kesalahan soket pada %1: %2 Remote host closed the connection prematurely on %1 - + Host remote menutup koneksi secara dini pada %1 Protocol error: packet of size 0 received - + Kesalahan protokol: paket berukuran 0 diterima QPPDOptionsModel Name - + Nama Value - + Nilai QPSQLDriver Unable to connect - + Tak bisa menyambung Could not begin transaction - + Tak bisa memulai transaksi Could not commit transaction - + Tak bisa commit transaksi Could not rollback transaction - + Tak bisa rollback transaksi Unable to subscribe - + Tak bisa berlangganan Unable to unsubscribe - + Tak bisa berhenti berlangganan QPSQLResult Unable to create query - + Tak bisa membuat query Unable to prepare statement - + Tak bisa menyiapkan pernyataan QPageSetupWidget Centimeters (cm) - + Sentimeter (cm) Millimeters (mm) - + Milimeter (mm) Inches (in) - + Inci (in) Points (pt) - + Poin (pt) Form - + Form Paper - + Kertas Page size: - + Ukuran halaman: Width: - + Lebar: Height: - + Tinggi: Paper source: - + Sumber kertas: Orientation - + Orientasi Portrait - + Potret Landscape - + Landscape Reverse landscape - + Landscape terbalik Reverse portrait - + Potret terbalik Margins - + Batas top margin - + batas atas left margin - + batas kiri right margin - + batas kanan bottom margin - + batas bawah QPluginLoader Unknown error - + Kesalahan tak dikenal The plugin was not loaded. - + Plugin tak dimuat. QPrintDialog locally connected - + tersambung secara lokal Aliases: %1 - + Alias: %1 unknown - + tak dikenal Print To File ... - + Cetak Ke File ... File %1 is not writable. Please choose a different file name. - + File %1 tak dapat ditulisi. +Silakan pilih nama file lain. %1 already exists. Do you want to overwrite it? - + %1 telah ada. +Apakah Anda hendak menimpanya? %1 is a directory. Please choose a different file name. - + %1 adalah direktori. +Silakan pilih nama file lain. A0 - + A0 A1 - + A1 A2 - + A2 A3 - + A3 A4 - + A4 A5 - + A5 A6 - + A6 A7 - + A7 A8 - + A8 A9 - + A9 B0 - + B0 B1 - + B1 B2 - + B2 B3 - + B3 B4 - + B4 B5 - + B5 B6 - + B6 B7 - + B7 B8 - + B8 B9 - + B9 B10 - + B10 C5E - + C5E DLE - + DLE Executive - + Eksekutif Folio - + Folio Ledger - + Ledger Legal - + Legal Letter - + Letter Tabloid - + Tabloid US Common #10 Envelope - + Amplop Biasa #10 AS Custom - + Gubahan &Options >> - + &Opsi >> &Print - + &Cetak &Options << - + &Opsi << Print to File (PDF) - + Cetak ke File (PDF) Print to File (Postscript) - + Cetak ke File (Postscript) Local file - + File lokal Write %1 file - + Tulis file %1 QPrintPreviewDialog Page Setup - + Penyiapan Halaman Print Preview - + Pratinjau Cetak Next page - + Halaman berikutnya Previous page - + Halaman sebelumnya First page - + Halaman pertama Last page - + Halaman terakhir Fit width - + Pas lebar Fit page - + Pas halaman Zoom in - + Zum perbesar Zoom out - + Zum perkecil Portrait - + Potret Landscape - + Landscape Show single page - + Tampilkan halaman tunggal Show facing pages - + Tampilkan halaman berhadapan Show overview of all pages - + Tampilkan ringkasan semua halaman Print - + Cetak Page setup - + Penyiapan halaman Close - + Tutup QPrintPropertiesWidget Form - + Form Page - + Halaman Advanced - + Tingkat lanjut QPrintSettingsOutput Form - + Form Copies - + Salinan Print range - + Jangkauan cetak Print all - + Cetak semua Pages from - + Halaman dari to - + sampai Selection - + Pilihan Output Settings - + Pengaturan Keluaran Copies: - + Salinan: Collate - + Kolasi Reverse - + Balik Options - + Opsi Color Mode - + Mode Warna Color - + Warna Grayscale - + Grayscale Duplex Printing - + Pencetakan Dupleks None - + Nihil Long side - + Sisi panjang Short side - + Sisi pendek QPrintWidget Form - + Form Printer - + Printer &Name: - + &Nama: P&roperties - + P&roperti Location: - + Lokasi: Preview - + Pratinjau Type: - + Tipe: Output &file: - + &File keluaran: ... - + ... QProgressDialog Cancel - + Batal QPushButton Open - + Buka QRadioButton Check - + Periksa QRegExp no error occurred - + tak terjadi kesalahan disabled feature used - + fitur yang dimatikan dipakai bad char class syntax - + sintaks kelas karakter buruk bad lookahead syntax - + sintaks lookahead buruk bad repetition syntax - + sintaks pengulangan buruk invalid octal value - + nilai oktal tak valid missing left delim - + delim kiri hilang unexpected end - + akhir tak diharapkan met internal limit - + mencapai batas internal QSQLite2Driver Error to open database - + Kesalahan membuka database Unable to begin transaction - + Tak bisa memulai transaksi Unable to commit transaction - + Tak bisa commit transaksi Unable to rollback Transaction - + Tak bisa rollback transaksi QSQLite2Result Unable to fetch results - + Tak bisa mengambil hasil Unable to execute statement - + Tak bisa mengeksekusi pernyataan QSQLiteDriver Error opening database - + Kesalahan saat membuka database Error closing database - + Kesalahan saat menutup database Unable to begin transaction - + Tak bisa memulai transaksi Unable to commit transaction - + Tak bisa commit transaksi Unable to rollback transaction - + Tak bisa rollback transaksi QSQLiteResult Unable to fetch row - + Tak bisa mengambil baris Unable to execute statement - + Tak bisa mengeksekusi pernyataan Unable to reset statement - + Tak bisa mereset pernyataan Unable to bind parameters - + Tak bisa mem-bind parameter Parameter count mismatch - + Cacah parameter tak cocok No query - + Tak ada query QScrollBar Scroll here - + Gulung ke sini Left edge - + Tepi kiri Top - + Puncak Right edge - + Tepi kanan Bottom - + Dasar Page left - + Halaman kiri Page up - + Halaman naik Page right - + Halaman kanan Page down - + Halaman turun Scroll left - + Gulung kiri Scroll up - + Gulung atas Scroll right - + Gulung kanan Scroll down - + Gulung bawah Line up - + Baris naik Position - + Posisi Line down - + Baris turun QSharedMemory %1: unable to set key on lock - + %1: tak bisa menata kunci pada gembok %1: create size is less then 0 - + %1: ukuran pembuatan kurang dari 0 %1: unable to lock - + %1: tak bisa mengunci %1: unable to unlock - + %1: tak bisa membuka kunci %1: permission denied - + %1: ijin ditolak %1: already exists - + %1: telah ada %1: doesn't exists - + %1: tidak ada %1: out of resources - + %1: kehabisan sumber daya %1: unknown error %2 - + %1: kesalahan tak dikenal %2 %1: key is empty - + %1: kunci kosong %1: unix key file doesn't exists - + %1: file kunci unix tak ada %1: ftok failed - + %1: ftok gagal %1: unable to make key - + %1: tak bisa membuat kunci %1: system-imposed size restrictions - + %1: pembatasan ukuran dari sistem %1: not attached - + %1: tak tercantol QShortcut Space - + Spasi Esc - + Esc Tab - + Tab Backtab - + Backtab Backspace - + Backspace Return - + Return Enter - + Enter Ins - + Ins Del - + Del Pause - + Pause Print - + Print SysReq - + SysReq Home - + Home End - + End Left - + Kiri Up - + Naik Right - + Kanan Down - + Turun PgUp - + PgUp PgDown - + PgDown CapsLock - + CapsLock NumLock - + NumLock ScrollLock - + ScrollLock Menu - + Menu Help - + Bantuan Back - + Mundur Forward - + Maju Stop - + Stop Refresh - + Segarkan Volume Down - + Volume Turun Volume Mute - + Volume Bisu Volume Up - + Volume Naik Bass Boost - + Dorong Bas Bass Up - + Bas Naik Bass Down - + Bas Turun Treble Up - + Treble Naik Treble Down - + Treble Turun Media Play - + Mainkan Media Media Stop - + Stop Media Media Previous - + Media Sebelumnya Media Next - + Media Selanjutnya Media Record - + Rekam Media Favorites - + Favorit Search - + Cari Standby - + Standby Open URL - + Buka URL Launch Mail - + Luncurkan Mail Launch Media - + Luncurkan Media Launch (0) - + Luncurkan (0) Launch (1) - + Luncurkan (1) Launch (2) - + Luncurkan (2) Launch (3) - + Luncurkan (3) Launch (4) - + Luncurkan (4) Launch (5) - + Luncurkan (5) Launch (6) - + Luncurkan (6) Launch (7) - + Luncurkan (7) Launch (8) - + Luncurkan (8) Launch (9) - + Luncurkan (9) Launch (A) - + Luncurkan (A) Launch (B) - + Luncurkan (B) Launch (C) - + Luncurkan (C) Launch (D) - + Luncurkan (D) Launch (E) - + Luncurkan (E) Launch (F) - + Luncurkan (F) Print Screen - + Cetak Layar Page Up - + Halaman Naik Page Down - + Halaman Turun Caps Lock - + Caps Lock Num Lock - + Num Lock Number Lock - + Kunci Angka Scroll Lock - + Scroll Lock Insert - + Sisipkan Delete - + Hapus Escape - + Escape System Request - + Permintaan Sistem Select - + Pilih Yes - + Ya No - + Tidak Context1 - + Konteks1 Context2 - + Konteks2 Context3 - + Konteks3 Context4 - + Konteks4 Call - + Panggil Hangup - + Putuskan Flip - + Balikkan Ctrl - + Ctrl Shift - + Shift Alt - + Alt Meta - + Meta + - + + F%1 - + F%1 Home Page - + Halaman Rumah QSlider Page left - + Halaman kiri Page up - + Halaman naik Position - + Posisi Page right - + Halaman kanan Page down - + Halaman turun QSocks5SocketEngine Socks5 timeout error connecting to socks server - + Kesalahan habis waktu socks5 saat menyambung ke server socks Network operation timed out - + Operasi jaringan habis waktu QSpinBox More - + Lebih Less - + Kurang QSql Delete - + Hapus Delete this record? - + Hapus record ini? Yes - + Ya No - + Tidak Insert - + Sisipkan Update - + Perbarui Save edits? - + Simpan edit? Cancel - + Batal Confirm - + Konfirmasi Cancel your edits? - + Batalkan edit Anda? QSslSocket Unable to write data: %1 - + Tak bisa menulis data: %1 Error while reading: %1 - + Kesalahan saat membaca: %1 Error during SSL handshake: %1 - + Kesalahan ketika handshake SSL: %1 Error creating SSL context (%1) - + Kesalahan saat membuat konteks SSL (%1) Invalid or empty cipher list (%1) - + Daftar cipher tak valid atau kosong (%1) Error creating SSL session, %1 - + Kesalahan saat membuat sesi SSL, %1 Error creating SSL session: %1 - + Kesalahan saat membuat sesi SSL: %1 Cannot provide a certificate with no key, %1 - + Tak bisa menyediakan sebuah sertifikat tanpa kunci, %1 Error loading local certificate, %1 - + Kesalahan saat memuat sertifikat lokal, %1 Error loading private key, %1 - + Kesalahan saat memuat kunci privat, %1 Private key does not certificate public key, %1 - + Kunci privat tak mensertifikasi kunci publik, %1 QTDSDriver Unable to open connection - + Tak bisa membuka koneksi Unable to use database - + Tak bisa memakai database QTabBar Scroll Left - + Gulung Kiri Scroll Right - + Gulung Kanan QTextControl &Undo - + &Batalkan &Redo - + &Jadi Lagi Cu&t - + Po&tong &Copy - + &Salin Copy &Link Location - + Salin &Lokasi Taut &Paste - + Tem&pel Delete - + Hapus Select All - + Pilih Semua QToolButton Press - + Tekan Open - + Buka QUdpSocket This platform does not support IPv6 - + Platform ini tak mendukung IPv6 QUndoGroup Undo - + Batalkan Redo - + Jadi lagi QUndoModel <empty> - + <kosong> QUndoStack Undo - + Batalkan Redo - + Jadi lagi QUnicodeControlCharacterMenu LRM Left-to-right mark - + LRM Left-to-right mark RLM Right-to-left mark - + RLM Right-to-left mark ZWJ Zero width joiner - + ZWJ Zero width joiner ZWNJ Zero width non-joiner - + ZWNJ Zero width non-joiner ZWSP Zero width space - + ZWSP Zero width space LRE Start of left-to-right embedding - + LRE Start of left-to-right embedding RLE Start of right-to-left embedding - + RLE Start of right-to-left embedding LRO Start of left-to-right override - + LRO Start of left-to-right override RLO Start of right-to-left override - + RLO Start of right-to-left override PDF Pop directional formatting - + PDF Pop directional formatting Insert Unicode control character - + Sisipkan karakter kendali Unicode QWebFrame Request cancelled - + Permintaan dibatalkan Request blocked - + Permintaan diblok Cannot show URL - + Tak bisa menampilkan URL Frame load interruped by policy change - + Pemuatan frame diinterupsi oleh perubahan kebijakan Cannot show mimetype - + Tak bisa menampilkan mimetype File does not exist - + File tak ada QWebPage Bad HTTP request - + Permintaan HTTP buruk Submit default label for Submit buttons in forms on web pages - + Submit Submit Submit (input element) alt text for <input> elements with no alt, title, or value - + Submit Reset default label for Reset buttons in forms on web pages - + Reset This is a searchable index. Enter search keywords: text that appears at the start of nearly-obsolete web pages in the form of a 'searchable index' - + Ini adalah indeks yang dapat dicari. Masukkan kata kunci pencarian: Choose File title for file button used in HTML forms - + Pilih File No file selected text to display in file button used in HTML forms when no file is selected - + Tak ada file yang dipilih Open in New Window Open in New Window context menu item - + Buka di Window Baru Save Link... Download Linked File context menu item - + Simpan Taut... Copy Link Copy Link context menu item - + Salin Taut Open Image Open Image in New Window context menu item - + Buka Citra Save Image Download Image context menu item - + Simpan Citra Copy Image Copy Link context menu item - + Salin Citra Open Frame Open Frame in New Window context menu item - + Buka Frame Copy Copy context menu item - + Salin Go Back Back context menu item - + Mundur Go Forward Forward context menu item - + Maju Stop Stop context menu item - + Stop Reload Reload context menu item - + Muat Ulang Cut Cut context menu item - + Potong Paste Paste context menu item - + Tempel No Guesses Found No Guesses Found context menu item - + Tebakan Tak Ditemukan Ignore Ignore Spelling context menu item - + Abaikan Add To Dictionary Learn Spelling context menu item - + Tambahkan Ke Kamus Search The Web Search The Web context menu item - + Cari Di Web Look Up In Dictionary Look Up in Dictionary context menu item - + Lihat Di Kamus Open Link Open Link context menu item - + Buka Taut Ignore Ignore Grammar context menu item - + Abaikan Spelling Spelling and Grammar context sub-menu item - + Ejaan Show Spelling and Grammar menu item title - + Tampilkan Ejaan dan Tata Bahasa Hide Spelling and Grammar menu item title - + Sembunyikan Ejaan dan Tata Bahasa Check Spelling Check spelling context menu item - + Periksa Ejaan Check Spelling While Typing Check spelling while typing context menu item - + Periksa Ejaan Ketika Mengetik Check Grammar With Spelling Check grammar with spelling context menu item - + Periksa Tata Bahasa Ketika Mengetik Fonts Font context sub-menu item - + Font Bold Bold context menu item - + Tebal Italic Italic context menu item - + Miring Underline Underline context menu item - + Garis Bawah Outline Outline context menu item - + Outline Direction Writing direction context sub-menu item - + Arah Default Default writing direction context menu item - + Bawaan LTR Left to Right context menu item - + LTR RTL Right to Left context menu item - + RTL Inspect Inspect Element context menu item - + Periksa No recent searches Label for only item in menu that appears when clicking on the search field image, when no searches have been performed - + Tak ada pencarian terkini Recent searches label for first item in the menu that appears when clicking on the search field image, used as embedded menu title - + Pencarian terkini Clear recent searches menu item in Recent Searches menu that empties menu's contents - + Bersihkan pencarian terkini Unknown Unknown filesize FTP directory listing item - + Tak Dikenal %1 (%2x%3 pixels) Title string for images - + %1 (%2x%3 piksel) Web Inspector - %2 - + Web Inspector - %2 QWhatsThisAction What's This? - + Apa Ini? QWidget * - + * QWizard Go Back - + Mundur Continue - + Lanjutkan Commit - + Commit Done - + Selesai Quit - + Keluar Help - + Bantuan < &Back - + < Kem&bali &Finish - + &Selesai Cancel - + Batal &Help - + &Bantuan &Next - + La&njut &Next > - + La&njut > QWorkspace &Restore - + &Kembalikan &Move - + &Pindahkan &Size - + &Ukuran Mi&nimize - + Mi&nimalkan Ma&ximize - + Ma&ksimalkan &Close - + Tutu&p Stay on &Top - + &Tetap di Atas Sh&ade - + Berb&ayang %1 - [%2] - + %1 - [%2] Minimize - + Minimalkan Restore Down - + Kembali Turun Close - + Tutup &Unshade - + Hap&us Bayang QXml no error occurred - + tak terjadi kesalahan error triggered by consumer - + kesalahan dipicu oleh konsumer unexpected end of file - + akhir file yang tak diharapkan more than one document type definition - + lebih dari satu definisi tipe dokumen error occurred while parsing element - + terjadi kesalahan saat mengurai elemen tag mismatch - + tag tak cocok error occurred while parsing content - + terjadi kesalahan saat mengurai isi unexpected character - + karakter tak diharapkan invalid name for processing instruction - + nama tak valid bagi instruksi pemrosesan version expected while reading the XML declaration - + versi diharapkan saat membaca deklarasi XML wrong value for standalone declaration - + nilai yang salah bagi deklarasi standalone encoding declaration or standalone declaration expected while reading the XML declaration - + deklarasi encoding atau deklarasi standalone diharapkan saat membaca deklarasi XML standalone declaration expected while reading the XML declaration - + deklarasi standalone diharapkan saat membaca deklarasi XML error occurred while parsing document type definition - + terjadi kesalahan saat mengurai definisi tipe dokumen letter is expected - + diharapkan huruf error occurred while parsing comment - + terjadi kesalahan saat mengurai komentar error occurred while parsing reference - + terjadi kesalahan saat mengurai acuan internal general entity reference not allowed in DTD - + acuan entitas umum internal tak diijinkan dalam DTD external parsed general entity reference not allowed in attribute value - + acuan entitas umum terurai eksternal tak diijinkan dalam nilai atribut external parsed general entity reference not allowed in DTD - + acuan entitas umum terurai eksternal tak diijinkan dalam DTD unparsed entity reference in wrong context - + acuan entitas tak diurai dalam konteks yang salah recursive entities - + entitas rekursif error in the text declaration of an external entity - + kesalahan dalam deklarasi teks dari entitas eksternal QXmlStream Extra content at end of document. - + Isi ekstra di akhir dokumen. Invalid entity value. - + Nila entitas tak valid. Invalid XML character. - + Karakter XML tak valid. Sequence ']]>' not allowed in content. - + Urutan ']]>' tak diijinkan dalam isi. Namespace prefix '%1' not declared - + Prefiks namespace '%1' tak dideklarasikan Attribute redefined. - + Atribut didefinisikan ulang. Unexpected character '%1' in public id literal. - + Karakter tak diharapkan '%1' dalam literal id publik. Invalid XML version string. - + String versi XML tak valid. Unsupported XML version. - + Versi XML tak didukung. %1 is an invalid encoding name. - + %1 adalah nama encoding yang tak valid. Encoding %1 is unsupported - + Encoding %1 tak didukung Standalone accepts only yes or no. - + Standalone hanya menerima yes atau no. Invalid attribute in XML declaration. - + Atribut tak valid dalam deklarasi XML. Premature end of document. - + Akhir dokumen prematur. Invalid document. - + Dokumen tak valid. Expected - + Berharap , but got ' - + , tapi memperoleh ' Unexpected ' - + Tak berharap ' Expected character data. - + Diharapkan data karakter. Recursive entity detected. - + Entitas rekursif terdeteksi. Start tag expected. - + Tag awal diharapkan. XML declaration not at start of document. - + Deklarasi XML bukan di awal dokumen. NDATA in parameter entity declaration. - + NDATA dalam deklarasi entitas parameter. %1 is an invalid processing instruction name. - + %1 adalah nama instruksi pemrosesan yang tak valid. Invalid processing instruction name. - + Nama instruksi pemrosesan yang tak valid. Illegal namespace declaration. - + Deklarasi namespace yang tak legal. Invalid XML name. - + Nama XML tak valid. Opening and ending tag mismatch. - + Tag pembuka dan penutup tak cocok. Reference to unparsed entity '%1'. - + Acuan ke entitas tak diurai '%1'. Entity '%1' not declared. - + Entitas '%1' tak dideklarasikan. Reference to external entity '%1' in attribute value. - + Acuan ke entitas eksternal '%1' dalam nilai atribut. Invalid character reference. - + Acuan karakter tak valid. Encountered incorrectly encoded content. - + Menemui isi ter-encode secara tak benar. The standalone pseudo attribute must appear after the encoding. - + Atribut pseudo standalone mesti muncul setelah encoding. %1 is an invalid PUBLIC identifier. - + %1 adalah identifier PUBLIC yang tak valid. QtXmlPatterns An %1-attribute with value %2 has already been declared. - + Suatu atribut %1 dengan nilai %2 telah dideklarasikan. An %1-attribute must have a valid %2 as value, which %3 isn't. - + Suatu atribut %1 mesti memiliki %2 yang valid sebagai nilai, sedangkan %3 tidak. Network timeout. - + Habis waktu jaringan. Element %1 can't be serialized because it appears outside the document element. - + Elemen %1 tak dapat diserialisasi karena muncul di luar elemen dokumen. Attribute %1 can't be serialized because it appears at the top level. - + Atribut %1 tak dapat diserialisasi karena muncul di level puncak. Year %1 is invalid because it begins with %2. - + Tahun %1 tak valid karena dimulai dengan %2. Day %1 is outside the range %2..%3. - + Tanggal %1 di luar jangkauan %2..%3. Month %1 is outside the range %2..%3. - + Bulan %1 di luar jangkauan %2..%3. Overflow: Can't represent date %1. - + Overflow: Tak bisa merepresentasikan tanggal %1. Day %1 is invalid for month %2. - + Tanggal %1 tak valid bagi bulan %2. Time 24:%1:%2.%3 is invalid. Hour is 24, but minutes, seconds, and milliseconds are not all 0; - + Waktu 24:%1:%2.%3 tak valid. Jam 24, tapi menit, detik, dan milidetik semua bukan 0; Time %1:%2:%3.%4 is invalid. - + Waktu %1:%2:%3.%4 tak valid. Overflow: Date can't be represented. - + Overflow: Tanggal tak bisa direpresentasikan. At least one component must be present. - + Paling tidak mesti ada satu komponen. At least one time component must appear after the %1-delimiter. - + Paling tidak satu komponen waktu mesti ada setelah delimiter %1. No operand in an integer division, %1, can be %2. - + Tidak ada operand dalam pembagian bilangan bulat, %1, bisa jadi %2. The first operand in an integer division, %1, cannot be infinity (%2). - + Operand pertama dalam pembagian bilangan bulat, %1, tak boleh tak hingga (%2). The second operand in a division, %1, cannot be zero (%2). - + Operand kedua dalam suatu pembagian, %1, tak boleh nol (%2). %1 is not a valid value of type %2. - + %1 bukan nilai yang valid dari tipe %2. When casting to %1 from %2, the source value cannot be %3. - + Saat casting ke %1 dari %2, nilai sumber tak boleh %3. Integer division (%1) by zero (%2) is undefined. - + Pembagian bilangan bulat (%1) oleh nol (%2) tak terdefinisi. Division (%1) by zero (%2) is undefined. - + Pembagian (%1) oleh nol (%2) tak terdefinisi. Modulus division (%1) by zero (%2) is undefined. - + Pembagian modulus (%1) oleh nol (%2) tak terdefinisi. Dividing a value of type %1 by %2 (not-a-number) is not allowed. - + Membagi suatu nilai bertipe %1 dengan %2 (bukan sebuah bilangan) tak diijinkan. Dividing a value of type %1 by %2 or %3 (plus or minus zero) is not allowed. - + Membagi suatu nilai bertipe %1 dengan %2 atau %3 (plus atau minus nol) tak diijinkan. Multiplication of a value of type %1 by %2 or %3 (plus or minus infinity) is not allowed. - + Perkalian atas suatu nilai bertipe %1 dengan %2 atau %3 (plus atau minus tak hingga) tak diijinkan. A value of type %1 cannot have an Effective Boolean Value. - + Suatu nilai bertipe %1 tak bisa memiliki Effective Boolean Value. Effective Boolean Value cannot be calculated for a sequence containing two or more atomic values. - + Effective Booelan Value tak bisa dihitung bagi urutan yang memuat dua atau lebih nilai atomik. Value %1 of type %2 exceeds maximum (%3). - + Nilai %1 bertipe %2 melebihi maksimum (%3). Value %1 of type %2 is below minimum (%3). - + Nilai %1 bertipe %2 kurang dari minimum (%3). A value of type %1 must contain an even number of digits. The value %2 does not. - + Sebuah nilai bertipe %1 mesti memuat suatu jumlah digit genap. Nilai %2 tidak. %1 is not valid as a value of type %2. - + %1 tak valid sebagai sebuah nilai bertipe %2. Operator %1 cannot be used on type %2. - + Operator %1 tak dapat dipakai pada tipe %2. Operator %1 cannot be used on atomic values of type %2 and %3. - + Operator %1 tak dapat dipakai pada nilai atomik bertipe %2 dan %3. The namespace URI in the name for a computed attribute cannot be %1. - + URI namespace dalam nama bagi suatu atribut yang dihitung tak boleh %1. The name for a computed attribute cannot have the namespace URI %1 with the local name %2. - + Nama bagi atribut yang dihitung tak boleh memiliki URI namespace %1 dengan nama lokal %2. Type error in cast, expected %1, received %2. - + Kesalahan tipe dalam cast, diharapkan %1, diterima %2. When casting to %1 or types derived from it, the source value must be of the same type, or it must be a string literal. Type %2 is not allowed. - + Ketika casting ke %1 atau tipe turunannya, nilai sumber mesti bertipe sama, atau berupa literal string. Tipe %2 tak diijinkan. No casting is possible with %1 as the target type. - + Tak ada casting yang mungkin untuk tipe target %1. It is not possible to cast from %1 to %2. - + Tak mungkin cast dari %1 ke %2. Casting to %1 is not possible because it is an abstract type, and can therefore never be instantiated. - + Casting ke %1 tak mungkin karena itu adalah tipe abstrak, sehingga tak pernah bisa di-instantiasi. It's not possible to cast the value %1 of type %2 to %3 - + Tak mungkin cast nilai %1 bertipe %2 ke %3 Failure when casting from %1 to %2: %3 - + Kegagalan saat casting dari %1 ke %2:%3 A comment cannot contain %1 - + Komentar tak bisa memuat %1 A comment cannot end with a %1. - + Komentar tak bisa diakhiri dengan %1. No comparisons can be done involving the type %1. - + Tak ada perbandingan yang dapat dilakukan yang melibatkan tipe %1. Operator %1 is not available between atomic values of type %2 and %3. - + Operator %1 tak tersedia antara nilai atomik bertipa %2 dan %3. An attribute node cannot be a child of a document node. Therefore, the attribute %1 is out of place. - + Sebuah node atribut tak bisa menjadi anak dari suatu node dokumen. Maka, atribut %1 tidak pada tempatnya. A library module cannot be evaluated directly. It must be imported from a main module. - + Sebuah modul pustaka tak bisa dievaluasi secara langsung. Itu harus diimpor dari suatu modul utama. A value of type %1 cannot be a predicate. A predicate must have either a numeric type or an Effective Boolean Value type. - + Sebuah nilai bertipe %1 tak bisa berupa predikat. Suatu predikat mesti memiliki tipe numerik atau bertipe Effective Boolean Value. A positional predicate must evaluate to a single numeric value. - + Sebuah predikat posisional harus mengevaluasi ke suau nilai numerik tunggal. The target name in a processing instruction cannot be %1 in any combination of upper and lower case. Therefore, is %2 invalid. - + Nama target dalam sebuah instruksi pemrosesan tak bisa %1 dalam kombinasi huruf besar dan kecil. Maka %2 tak valid. %1 is not a valid target name in a processing instruction. It must be a %2 value, e.g. %3. - + %1 bukan nama target yang valid dalam suatu instruksi pemrosesan. Itu harus berupa nilai %2, mis. %3. The last step in a path must contain either nodes or atomic values. It cannot be a mixture between the two. - + Langkah terakhir dalam suatu path mesti memuat nilai node atau atomik. Itu tak bisa berupa campuran antara keduanya. The data of a processing instruction cannot contain the string %1 - + Data dari instruksi pemrosesan tak boleh memuat string %1 No namespace binding exists for the prefix %1 - + Tidak ada binding namespace bagi prefiks %1 No namespace binding exists for the prefix %1 in %2 - + Tidak ada binding namespace bagi prefiks %1 dalam %2 %1 is an invalid %2 - + %1 adalah %2 yang tak valid %1 takes at most %n argument(s). %2 is therefore invalid. - - + + %1 menerima paling banyak %n argumen. Maka %2 tak valid. %1 requires at least %n argument(s). %2 is therefore invalid. - - + + %1 menerima paling sedikit %n argumen. Maka %2 tak valid. The first argument to %1 cannot be of type %2. It must be a numeric type, xs:yearMonthDuration or xs:dayTimeDuration. - + Argumen pertama bagi %1 tak boleh bertipe %2. Itu harus berupa tipe numerik, xs:yearMonthDuration, atau xs:dayTimeDuration. The first argument to %1 cannot be of type %2. It must be of type %3, %4, or %5. - + Argumen pertama bagi %1 tak boleh bertipe %2. Itu harus bertipe %3, %4, atau %5. The second argument to %1 cannot be of type %2. It must be of type %3, %4, or %5. - + Argumen kedua bagi %1 tak boleh bertipe %2. Itu harus bertipe %3, %4, atau %5. %1 is not a valid XML 1.0 character. - + %1 bukan karakter XML 1.0 yang valid. The first argument to %1 cannot be of type %2. - + Argumen pertama ke %1 tak boleh bertipe %2. If both values have zone offsets, they must have the same zone offset. %1 and %2 are not the same. - + Bila kedua nilai memiliki ofset zone, mereka mesti memiliki ofset zone yang sama. %1 dan %2 tak sama. %1 was called. - + %1 dipanggil. %1 must be followed by %2 or %3, not at the end of the replacement string. - + %1 mesti diikuti oleh %2 atau %3, bukan di akhir string pengganti. In the replacement string, %1 must be followed by at least one digit when not escaped. - + Dalam string pengganti, %1 mesti diikuti oleh paling tidak satu digit ketika tidak di-escape. In the replacement string, %1 can only be used to escape itself or %2, not %3 - + Dalam string pengganti, %1 hanya dapat dipakai untuk meng-escape dirinya sendiri atau %2, bukan %3 %1 matches newline characters - + %1 cocok dengan karakter baris baru %1 and %2 match the start and end of a line. - + %1 dan %2 cocok dengan awal dan akhir dari suatu baris. Matches are case insensitive - + Kecocokan peka huruf besar kecil Whitespace characters are removed, except when they appear in character classes - + Karakter whitespace dihapus, kecuali ketika muncul dalam kelas karakter %1 is an invalid regular expression pattern: %2 - + %1 adalah pola ekspresi reguler yang tak valid: %2 %1 is an invalid flag for regular expressions. Valid flags are: - + %1 adalah flag yang tak valid bagi ekspres reguler. Flag yang valid adalah: If the first argument is the empty sequence or a zero-length string (no namespace), a prefix cannot be specified. Prefix %1 was specified. - + Bila argumen pertama adalah urutan kosong atau string panjang nol (tanpa namespace), suatu prefiks tak dapat dinyatakan. Prefiks %1 telah dinyatakan. It will not be possible to retrieve %1. - + Tak akan mungkin mengambil %1. The root node of the second argument to function %1 must be a document node. %2 is not a document node. - + Node akar dari argumen kedia ke fungsi %1 mesti berupa suatu node dokumen. %2 bukan node dokumen. The default collection is undefined - + Koleksi baku tak didefinisikan %1 cannot be retrieved - + %1 tak dapat diambil The normalization form %1 is unsupported. The supported forms are %2, %3, %4, and %5, and none, i.e. the empty string (no normalization). - + Bentuk normalisasi %1 tak didukung. Bentuk yang didukung adalah %2, %3, %4, dan %5, serta nihil, yaitu string kosong (tanpa normalisasi). A zone offset must be in the range %1..%2 inclusive. %3 is out of range. - + Ofset zone mesti dalam jangkauan %1..%2. %3 di luar jangkauan. %1 is not a whole number of minutes. - + %1 bukan angka menit yang bulat. Required cardinality is %1; got cardinality %2. - + Kardinalitas yang diperlukan adalah %1; kardinalitas yang didapat %2. The item %1 did not match the required type %2. - + Butir %1 tak cocok dengan tipe %2 yang diperlukan. %1 is an unknown schema type. - + %1 adalah tipe skema yang tak dikenal. Only one %1 declaration can occur in the query prolog. - + Hanya satu deklarasi %1 yang dapat terjadi dalam prolog query. The initialization of variable %1 depends on itself - + Inisialisasi variabel %1 bergantung kepada dirinya sendiri No variable by name %1 exists - + Tak ada variabel bernama %1 The variable %1 is unused - + Variabe %1 tak dipakai Version %1 is not supported. The supported XQuery version is 1.0. - + Versi %1 tak didukung. Versi XQuery yang didukung adalah 1.0. The encoding %1 is invalid. It must contain Latin characters only, must not contain whitespace, and must match the regular expression %2. - + Pengkodean %1 tak valid. Itu mesti memuat hanya karakter Latin, tak boleh memuat whitespace, dan mesti cocok dengan ekspresi regular %2. No function with signature %1 is available - + Tak ada fungsi dengan tanda tangan %1 yang tersedia A default namespace declaration must occur before function, variable, and option declarations. - + Deklarasi namespace baku mesti terjadi sebelum deklarasi fungsi, variabel, dan opsi. Namespace declarations must occur before function, variable, and option declarations. - + Deklarasi namespace mesti terjadi sebelum deklarasi fungsi, variabel, dan opsi. Module imports must occur before function, variable, and option declarations. - + Impor modul mesti terjadi sebelum deklarasi fungsi, variabel, dan opsi. It is not possible to redeclare prefix %1. - + Tak mungkin mendeklarasi ulang prefiks %1. Only the prefix %1 can be declared to bind the namespace %2. By default, it is already bound to the prefix %1. - + Hanya prefiks %1 dapat dideklarasikan untuk bind namespace %2. Secara baku, ia telah di-bind ke prefix %1. Prefix %1 is already declared in the prolog. - + Prefiks %1 telah dideklarasikan dalam prolog. The name of an option must have a prefix. There is no default namespace for options. - + Nama dari suatu opsi mesti memiliki prefiks. Tak ada namespace baku bagi opsi. The Schema Import feature is not supported, and therefore %1 declarations cannot occur. - + Fitur Impor Skema tak didukung, sehingga deklarasi %1 tak bisa muncul. The target namespace of a %1 cannot be empty. - + Namespace tujuan dari %1 tak boleh kosong. The module import feature is not supported - + Fitur impor modul tak didukung A variable by name %1 has already been declared in the prolog. - + Variabel bernama %1 telah dideklarasikan dalam prolog. No value is available for the external variable by name %1. - + Tak ada nilai yang tersedia bagi variabel eksternal berdasarkan nama %1. The namespace for a user defined function cannot be empty (try the predefined prefix %1 which exists for cases like this) - + Namespace bagi fungsi yang didefinisikan oleh pengguna tak boleh kosong (coba prefiks terpradefinisi %1 yang ada untuk kasus-kasus seperti ini) The namespace %1 is reserved; therefore user defined functions may not use it. Try the predefined prefix %2, which exists for these cases. - + Namespace %1 dicadangkan; maka fungsi yang didefinisikan oleh pengguna tak boleh memakainya. Cobalah prefiks terpradefinisi %2, yang ada untuk kasus-kasus tersebut. The namespace of a user defined function in a library module must be equivalent to the module namespace. In other words, it should be %1 instead of %2 - + Namespace dari suatu fungsi yang didefinisikan oleh pengguna dalam sebuah modul pustaka mesti ekuivalen dengan namespace modul. Dengan kata lain, itu mesti %1 dan bukan %2 A function already exists with the signature %1. - + Telah ada fungsi dengan tanda tangan %1. No external functions are supported. All supported functions can be used directly, without first declaring them as external - + Tak ada fungsi eksternal yang didukung. Semua fungsi yang didukung dapat langsung dipakai, tanpa perlu mendeklarasikan mereka sebelumnya sebagai eksternal An argument by name %1 has already been declared. Every argument name must be unique. - + Sebuah argumen bernama %1 telah dideklarasikan. Setiap nama argumen mesti unik. The name of a variable bound in a for-expression must be different from the positional variable. Hence, the two variables named %1 collide. - + Nama dari suatu variabel yang di-bind bagi ekspresi-for mesti berbeda dengan variable posisional. Maka, dua variabel bernam %1 bertabrakan. The Schema Validation Feature is not supported. Hence, %1-expressions may not be used. - + Fitur Validasi Skema tak didukung. Maka ekspresi %1 tak boleh dipakai. None of the pragma expressions are supported. Therefore, a fallback expression must be present - + Tak satupun dari ekspresi pragman didukung. Maka, ekspresi fallback mesti ada The %1-axis is unsupported in XQuery - + Sumbu %1 tak didukung dalam XQuery %1 is not a valid numeric literal. - + %1 bukan literal numerik yang valid. No function by name %1 is available. - + Tak ada fungsi dengan nama %1 yang tersedia. The namespace URI cannot be the empty string when binding to a prefix, %1. - + URI namespace tak boleh berupa string kosong ketika mem-bind ke suatu prefiks, %1. %1 is an invalid namespace URI. - + %1 adalah URI namespace yang tak valid. It is not possible to bind to the prefix %1 - + Tak mungkin bind ke prefiks %1 Namespace %1 can only be bound to %2 (and it is, in either case, pre-declared). - + Namespace %1 hanya dapat di-bind ke %2 (dan itu, pada kasus manapun, di pradeklarasikan). Prefix %1 can only be bound to %2 (and it is, in either case, pre-declared). - + Prefiks %1 hanya dapat di-bind ke %2 (dan itu, pada kasus manapun, di pradeklarasikan). Two namespace declaration attributes have the same name: %1. - + Dua atribut deklarasi namespace memiliki nama yang sama: %1. The namespace URI must be a constant and cannot use enclosed expressions. - + URI namespace mesti berupa konstanta dan tak boleh memakai ekspresi yang di-enclose. An attribute by name %1 has already appeared on this element. - + Sebuah atribut bernama %1 telah muncul pada elemen ini. A direct element constructor is not well-formed. %1 is ended with %2. - + Susunan sebuah konstruktor elemen langsung tidak baik. %1 diakhiri dengan %2. The name %1 does not refer to any schema type. - + Nama %1 tak mengacu ke tipe skema apapun. %1 is an complex type. Casting to complex types is not possible. However, casting to atomic types such as %2 works. - + %1 adahal suatu tipe kompleks. Casting ke tipe kompleks tidak mungkin. Namun casting ke tipe atomik seperti %2 bisa. %1 is not an atomic type. Casting is only possible to atomic types. - + %1 bukan tipe atomik. Casting hanya mungkin bagi tipe atomik. %1 is not a valid name for a processing-instruction. Therefore this name test will never match. - + %1 bukan nama yang valid bagi sebuah instruksi pemrosesan. Maka uji nama ini tak akan pernah cocok. %1 is not in the in-scope attribute declarations. Note that the schema import feature is not supported. - + %1 tak di dalam deklarasi atribu in-scope. Perhatikan bahwa fitur impor skema tak didukung. The name of an extension expression must be in a namespace. - + Nama dari ekspresi ekstensi mesti dalam suatu namespace. empty - + kosong zero or one - + nol atau satu exactly one - + tepat satu one or more - + satu atau lebih zero or more - + nol atau lebih Required type is %1, but %2 was found. - + Tipe yang diperlukan adalah %1, tapi yang ditemukan %2. Promoting %1 to %2 may cause loss of precision. - + Mempromosikan %1 ke %2 dapat menyebabkan kehilangan presisi. The focus is undefined. - + Fokus tak terdefinisi. It's not possible to add attributes after any other kind of node. - + Tak mungkin menambah atribut setelah sebarang jenis node lain. An attribute by name %1 has already been created. - + Sebuah atribut bernama %1 telah dibuat. Only the Unicode Codepoint Collation is supported(%1). %2 is unsupported. - + Hanya Unicode Codepoint Collation yang didukung(%1). %2 tak didukung. VolumeSlider Muted - + Hening Volume: %1% - + Volume: %1% WebCore::PlatformScrollbar Scroll here - + Gulung ke sini Left edge - + Tepi kiri Top - + Puncak Right edge - + Tepi kanan Bottom - + Dasar Page left - + Halaman kiri Page up - + Halaman naik Page right - + Halaman kanan Page down - + Halaman turun Scroll left - + Gulung kiri Scroll up - + Gulung atas Scroll right - + Gulung kanan Scroll down - + Gulung bawah diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Frontends/VirtualBox/nls/qt_nl.ts virtualbox-4.1.44-dfsg/src/VBox/Frontends/VirtualBox/nls/qt_nl.ts --- virtualbox-4.1.12-dfsg/src/VBox/Frontends/VirtualBox/nls/qt_nl.ts 2012-04-02 13:28:41.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Frontends/VirtualBox/nls/qt_nl.ts 2015-11-11 15:08:28.000000000 +0000 @@ -1,11 +1,11 @@ - + MAC_APPLICATION_MENU Services - + Services Hide %1 @@ -36,11 +36,11 @@ AudioOutput <html>The audio playback device <b>%1</b> does not work.<br/>Falling back to <b>%2</b>.</html> - <html>Het apparaat <b>%1</b> , dat geluid afspeelt, werkt niet.<br/>In plaats daarvan wordt <b>%2</b> gebruikt.</html> + <html>Het apparaat <b>%1</b> dat geluid zou moeten afspelen werkt niet.<br/>Teruggevallen wordt op <b>%2</b>.</html> <html>Switching to the audio playback device <b>%1</b><br/>which just became available and has higher preference.</html> - <html>Stappen over op het geluidsafspeel apparaat <b>%1</b><br/>deze is net beschikbaar gekomen en verdient de voorkeur.</html> + <html>Switchen naar geluidafspeelapparaat <b>%1</b><br/> die net beschikbaar is gekomen en de voorkeur verdient.</html> Revert back to device '%1' @@ -51,7 +51,7 @@ Phonon:: Notifications - mededeling + Mededelingen Music @@ -63,11 +63,11 @@ Communication - communicatie + Communicatie Games - Spelletjes + Games Accessibility @@ -79,14 +79,16 @@ Warning: You do not seem to have the package gstreamer0.10-plugins-good installed. Some video features have been disabled. - Waarschuwing: Het pakker "gstreamer0.10 plugins" is niet goed geïnstalleerd. - Sommige video mogelijkheden zijn gedeactiveerd. + RL - gstreamer0.10 plugins-good zijn aanvullende codecs voor gstreamer + Waarschuwing: Het pakket "gstreamer0.10 plugins-good" is niet geïnstalleerd. + Sommige videomogelijkheden zijn gedeactiveerd. Warning: You do not seem to have the base GStreamer plugins installed. All audio and video support has been disabled - Waarschuwing: De "GStreamer plugins" blijken niet geïnstalleerd. - Alle audio en video ondersteuning is gedeactiveerd + RL - basis GStreamer plugins leveren de basis codecs om mediabestanden te kunnen afspelen + Waarschuwing: De basis GStreamer plugins blijken niet geïnstalleerd. + Alle audio en video ondersteuning is gedeactiveerd @@ -97,18 +99,21 @@ Check your Gstreamer installation and make sure you have libgstreamer-plugins-base installed. Kan het afspelen niet starten. -Controleer de installatie van "Gstreamer" en zorg ervoor dat de "libgstreamer plugins basis is geïnstalleer. + +Controleer de installatie van Gstreamer en zorg ervoor +dat libgstreamer-plugins-base is geïnstalleerd. A required codec is missing. You need to install the following codec(s) to play this content: %0 + RL - kan nog niet goed vertaald worden omdat %n als single/plural place marker niet in source is opgenomen. Ticket #10400 aangemaakt bij virtualbox, afwachten tot bug hersteld is. RL - Ticket gesloten - is string van derde (Phonon) in Qt source, geen VirtualBox issue. - Een noodzakelijke codec mist. U moet de volgende codec installeren om deze inhoud af te spelen: %0 - De noodzakelijke codecs missen. U moet de volgende codecs installeren om deze inhoud af te spelen: %0 + Een noodzakelijke codec ontbreekt. U moet de volgende codec installeren om dit bestand af te kunnen spelen: %0 + Noodzakelijke codecs ontbreken. U moet de volgende codecs installeren om dit bestand af te kunnen spelen: %0 Could not open media source. - Kan de media bron niet openen. + Kan de mediabron niet openen. Invalid source type. @@ -116,15 +121,15 @@ Could not locate media source. - Kan de media bron niet vinden. + Kan mediabron niet vinden. Could not open audio device. The device is already in use. - Kan het audio apparaat niet openen. Het apparaat wordt al gebruikt. + Kan het audio-apparaat niet openen. Het apparaat wordt al gebruikt. Could not decode media source. - Kan de media bron niet decoderen. + Kan de mediabron niet decoderen. @@ -228,7 +233,7 @@ File &type: - &Soort bestands: + &Bestandstype: Back @@ -264,27 +269,28 @@ Read-only - Alleen lezen + Alleen-lezen Write-only - Alleen schrijven + Alleen-schrijven Inaccessible - niet toegankelijk + Niet toegankelijk Symlink to File - Snelkoppeling naar het bestand + Snelkoppeling naar bestand Symlink to Directory - Snelkoppeling naar de map + Snelkoppeling naar map Symlink to Special - Snelkoppeling naar iets speciaals + RL - naar de map 'Speciaal', als die map van naam verandert, deze string ook aanpassen + Snelkoppeling naar Speciaal File @@ -332,7 +338,7 @@ Sort by &Size - size kan ook zijn omvang + EG - size kan ook zijn omvang RL - verschil? Op grootte &sorteren @@ -353,15 +359,18 @@ the file - Het bestand + RL - kleine 'h' bij 'het' (deze string is %1 bij andere string) + het bestand the directory - De map + RL - kleine 'd' bij 'de' (deze string is %1 bij andere string) + de map the symlink - De snelkoppeling + RL - kleine 'd' bij 'de' (deze string is %1 bij andere string) + de snelkoppeling Delete %1 @@ -421,7 +430,7 @@ Could not read directory %1 - Kan de map niet lezen + Kon deze map niet lezen %1 @@ -449,8 +458,8 @@ Could not open %1 - Kan: -%1 niet openen + Kan niet openen: +%1 Could not write @@ -474,7 +483,7 @@ Q3NetworkProtocol Operation stopped by the user - Actie gestopd door de gebruiker + Actie gestopt door gebruiker @@ -488,7 +497,7 @@ Q3TabDialog OK - Ok + OK Apply @@ -496,7 +505,8 @@ Help - Help + RL - eng 'Help' wordt bij Moz/KDe/GNOME/Ubuntu/Fedora/Windows/Mac standaard vertaald in Nederlands als 'Hulp' + Hulp Defaults @@ -608,31 +618,31 @@ The protocol `%1' does not support listing directories - Het protocol `%1' ondersteund geen opname in een lijst van mappen + Het protocol `%1' ondersteunt geen opsomming van mappen The protocol `%1' does not support creating new directories - Het protocol `%1' ondersteund niet het aanmaken van nieuwe mappen + Het protocol `%1' ondersteunt niet het aanmaken van nieuwe mappen The protocol `%1' does not support removing files or directories - Het protocol `%1' ondersteund niet het verwijderen van bestanden of mappen + Het protocol `%1' ondersteunt niet het verwijderen van bestanden of mappen The protocol `%1' does not support renaming files or directories - Het protocol `%1' ondersteund niet het herbenoemen van bestanden of mappen + Het protocol `%1' ondersteunt niet het herbenoemen van bestanden of mappen The protocol `%1' does not support getting files - Het protocol `%1' ondersteund niet het ophalen van bestanden + Het protocol `%1' ondersteunt niet het ophalen van bestanden The protocol `%1' does not support putting files - Het protocol `%1' ondersteund niet het wegzetten van bestanden + Het protocol `%1' ondersteunt niet het wegzetten van bestanden The protocol `%1' does not support copying or moving files or directories - Het protocol `%1' ondersteund niet het kopiëren van bestanden of mappen + Het protocol `%1' ondersteunt niet het kopiëren van bestanden of mappen (unknown) @@ -659,14 +669,15 @@ &Help - &Help + RL - eng 'Help' wordt bij Moz/KDe/GNOME/Ubuntu/Fedora/Windows/Mac standaard vertaald in Nederlands als 'Hulp' + &Hulp QAbstractSocket Host not found - Gastheer niet gevonden + Host niet gevonden Connection refused @@ -674,7 +685,7 @@ Socket operation timed out - Tijdslimiet verstreken voor de actie op de socket + Tijdslimiet voor actie op socket verstreken Socket is not connected @@ -685,13 +696,13 @@ QAbstractSpinBox &Step up - nakijken - &ophogen?? + EG - nakijken RL - tja.... + &Stap omhoog Step &down - Nakijken - &Afnemen?? + EG - Nakijken RL - tja.. + &Stap omlaag &Select All @@ -701,9 +712,8 @@ QApplication - QT_LAYOUT_DIRECTION - Translate this string to the string 'LTR' in left-to-right languages or to 'RTL' in right-to-left languages (such as Hebrew and Arabic) to get proper widget layout. - LTR + Activate + Activeren Executable '%1' requires Qt %2, found Qt %3. @@ -714,8 +724,9 @@ Qt bibliotheek is niet compatibel - Activate - Activeren + QT_LAYOUT_DIRECTION + Translate this string to the string 'LTR' in left-to-right languages or to 'RTL' in right-to-left languages (such as Hebrew and Arabic) to get proper widget layout. + LTR Activates the program's main window @@ -769,7 +780,7 @@ &Basic colors - &Basis kleuren + &Basiskleuren &Custom colors @@ -808,7 +819,7 @@ %1: permission denied QSystemSemaphore - %1: geen toestemming + %1: toestemming geweigerd %1: already exists @@ -854,7 +865,7 @@ Unable to commit transaction - Kan de transactie niet bevestigen + Kan de transactie niet toepassen Unable to rollback transaction @@ -862,7 +873,8 @@ Unable to set autocommit - Kan het automatisch bevestigen niet instellen + RL - autocommit is techterm + Kan automatisch toepassen (autocommit) niet instellen @@ -881,7 +893,7 @@ Unable to fetch record %1 - Kan het record %1 niet ophalen + Kan record %1 niet ophalen Unable to fetch next @@ -900,7 +912,7 @@ am - NM + vm PM @@ -919,7 +931,7 @@ SpeedoMeter - Tachometer + SpeedoMeter SliderHandle @@ -941,7 +953,7 @@ QDialogButtonBox OK - Ok + OK Save @@ -969,7 +981,8 @@ Help - Help + RL - eng 'Help' wordt bij Moz/KDe/GNOME/Ubuntu/Fedora/Windows/Mac standaard vertaald in Nederlands als 'Hulp' + Hulp Don't Save @@ -985,7 +998,7 @@ Yes to &All - Ja, &alles + Ja op &alles &No @@ -993,7 +1006,7 @@ N&o to All - Nee voor &alles + Nee op &alles Save All @@ -1032,7 +1045,7 @@ Size - Omvang + Grootte Kind @@ -1078,16 +1091,9 @@ QErrorMessage - &Show this message again - &Geef dit bericht opnieuw weer - - - &OK - &OK - - Debug Message: - Test bericht: + RL - debug als bekende term laten staan + Debug bericht: Warning: @@ -1097,6 +1103,14 @@ Fatal Error: Fatale fout: + + &Show this message again + &Geef dit bericht opnieuw weer + + + &OK + &OK + QFileDialog @@ -1105,36 +1119,38 @@ Alle bestanden (*) - Back - Terug - - - List View - Lijst weergave + Directories + Mappen - Detail View - Detail weergave + &Open + &Openen - File - Bestand + &Save + &Opslaan Open Openen - Save As - Opslaan als + %1 already exists. +Do you want to replace it? + %1 Bestaat al. +Wilt u deze vervangen? - &Open - &Openen + %1 +File not found. +Please verify the correct file name was given. + %1 +Bestand niet gevonden. +Controleer of de juiste bestandnaam is opgegeven. - &Save - &Opslaan + My Computer + Mijn computer &Rename @@ -1149,48 +1165,30 @@ &Geef verborgen bestanden weer - New Folder - Nieuwe map - - - Find Directory - Zoek een map - - - Directories - Mappen - - - Directory: - Map: - - - %1 already exists. -Do you want to replace it? - %1 Bestaat al. -Wilt u deze vervangen? + Back + Terug - %1 -File not found. -Please verify the correct file name was given. - %1 -Bestand niet gevonden. -Controleer of de juiste bestandnaam is opgegeven. + Parent Directory + Bovenliggende map - My Computer - Mijn computer + List View + Lijst weergave - Parent Directory - Bovenliggende map + Detail View + Detail weergave Files of type: Bestanden van het type: + Directory: + Map: + + %1 Directory not found. Please verify the correct directory name was given. @@ -1213,22 +1211,38 @@ Kan de map niet verwijderen. + Save As + Opslaan als + + Drive Station + File + Bestand + + Unknown Onbekend + Find Directory + Zoek een map + + Show - Weergeven + Toon Forward Vooruit + New Folder + Nieuwe map + + &New Folder &Nieuwe map @@ -1256,26 +1270,6 @@ QFileSystemModel - %1 TB - %1 TB - - - %1 GB - %1 GB - - - %1 MB - %1 MB - - - %1 KB - %1 KB - - - %1 bytes - %1 bytes - - Invalid filename Ongeldige bestandsnaam @@ -1289,7 +1283,7 @@ Size - Omvang + Grootte Kind @@ -1313,6 +1307,26 @@ Computer Computer + + %1 TB + %1 TB + + + %1 GB + %1 GB + + + %1 MB + %1 MB + + + %1 KB + %1 KB + + + %1 bytes + %1 bytes + QFontDatabase @@ -1338,7 +1352,7 @@ Light - licht + Licht Italic @@ -1354,7 +1368,7 @@ Latin - Latijns + Latijn Greek @@ -1366,7 +1380,7 @@ Armenian - Armekaans + Armeens Hebrew @@ -1493,7 +1507,7 @@ &Size - &Omvang + &Grootte Effects @@ -1512,47 +1526,35 @@ Voorbeeld - Select Font - Selecteer lettertype - - Wr&iting System &Schrijfsysteem + + Select Font + Selecteer lettertype + QFtp - Host %1 found - Gastheer %1 gevonden - - - Host found - Gastheer gevonden - - - Connected to host %1 - Verbonden met de gastheer %1 - - - Connected to host - Verbonden met de gastheer + Not connected + Geen verbinding - Connection to %1 closed - Verbinding met %1 afgesloten + Host %1 not found + Host %1 niet gevonden - Connection closed - Verbinding afgesloten + Connection refused to host %1 + Verbinding met host %1 geweigerd - Host %1 not found - Gastheer %1 niet gevonden + Connected to host %1 + Verbonden met host %1 - Connection refused to host %1 - Verbinding met %1 geweigerd + Connection refused for data connection + Verbinding geweigerd voor dataconnectie Unknown error @@ -1561,7 +1563,7 @@ Connecting to host failed: %1 - Verbinding met gastheer mislukt: + Verbinding met host mislukt: %1 @@ -1579,7 +1581,7 @@ Changing directory failed: %1 - veranderen van map is misluktl: + Veranderen van map is misluktl: %1 @@ -1613,12 +1615,25 @@ %1 - Not connected - Geen verbinding + Connection closed + Verbinding afgesloten - Connection refused for data connection - Verbinding voor gegevens verbinding geweigerd + Host %1 found + Host %1 gevonden + + + Connection to %1 closed + Verbinding met %1 afgesloten + + + Host found + RL - 'host' als host vertalen, voorkomt 'gast' en 'gastheer' verwarring in VirtualBox (gebruikerswens) + Host gevonden + + + Connected to host + Verbonden met host @@ -1632,11 +1647,11 @@ QHostInfoAgent Host not found - gastheer niet gevonden + Host niet gevonden Unknown address type - Onbekend soort adres + Onbekend adrestype Unknown error @@ -1646,104 +1661,104 @@ QHttp - Connection refused - Verbinding geweigerd + Unknown error + Onbekende fout - Host %1 not found - Gastheer %1 niet gevonden + Request aborted + Verzoek afgebroken + + + No server set to connect to + Geen server aangewezen om mee te verbinden Wrong content length Lengte van de inhoud is verkeerd + Server closed connection unexpectedly + Server heeft de verbinding onverwacht verbroken + + + Connection refused + Verbinding geweigerd + + + Host %1 not found + Host %1 niet gevonden + + HTTP request failed HTTP verzoek is mislukt - Host %1 found - Gastheer %1 gevonden + Invalid HTTP response header + Ongeldige HTTP antwoord (header) - Host found - Gastheer gevonden + Invalid HTTP chunked body + Ongeldige HTTP afgebroken body - Connected to host %1 - Verbonden met de gastheer %1 + Host %1 found + Host %1 gevonden - Connected to host - Verbonden met de gastheer + Connected to host %1 + Verbonden met host %1 Connection to %1 closed Verbinding met %1 afgesloten - Connection closed - Verbinding afgesloten + Host found + Host gevonden - Unknown error - Onbekende fout + Connected to host + Verbonden met host - Request aborted - verzoek afgebroken + Connection closed + Verbinding afgesloten - No server set to connect to - Geen server aangewezen om mee te verbinden - - - Server closed connection unexpectedly - Server heeft de verbinding onverwacht verbroken - - - Invalid HTTP response header - Ongeldige HTTP antwoord (header) - - - Invalid HTTP chunked body - Ongeldige HTTP gebroken body - - - Proxy authentication required - Proxy authentcatie vereist + Proxy authentication required + Proxy authentcatie vereist Authentication required Authenticatie vereist + Connection refused (or timed out) + Verbinding geweigerd (tijdslimiet verstreken) + + Proxy requires authentication De proxy vereist authenticatie Host requires authentication - De gastheer vereist authenticatie + Host vereist authenticatie Data corrupted - gegevens zijn onbetrouwbaar - - - SSL handshake failed - SSL handdruk is mislukt + Data gecorrumpeerd Unknown protocol specified Onbekend protocol gespecificeerd - Connection refused (or timed out) - Verbinding geweigerd (tijdslimiet verstreken) + SSL handshake failed + SSL handdruk is mislukt HTTPS connection requested but SSL support not compiled in - HTTPS verginding vereist maar SSL ondersteuning niet opgenomen + HTTPS verbinding vereist maar SSL ondersteuning niet meegecompileerd @@ -1765,7 +1780,7 @@ Unable to commit transaction - Kan de transactie niet bevestigen + Kan de transactie niet toepassen Unable to rollback transaction @@ -1808,7 +1823,7 @@ Unable to commit transaction - Kan de transactie niet bevestigen + Kan de transactie niet toepassen Could not allocate statement @@ -1820,7 +1835,7 @@ Could not describe input statement - Kan de invoer instructie niet beschrijven + Kan de invoerinstructie niet beschrijven Could not describe statement @@ -1847,7 +1862,7 @@ QIODevice Permission denied - Geen toestemming + Toestemming geweigerd Too many open files @@ -1874,15 +1889,15 @@ XIM input method - XIM invoer methode + XIM invoermethode Windows input method - Windows invoer methode + Windows invoermethode Mac OS X input method - Mac OS X invoer methode + Mac OS X invoermethode @@ -1901,25 +1916,26 @@ Could not mmap '%1': %2 - wat is mmap - Kan '%1': %2 niet mmappen?? + EG - wat is mmap RL - mmap is (op unix en -----x familie) een system call dat bestanden of apparaten mapt naar het geheugen (map/unmap), dus gewoon vertalen als 'mmappen' + Kan '%1': %2 niet mmappen Plugin verification data mismatch in '%1' - Plugin controle gegevens komen niet overeen in '%1 + Plugin controle-gegevens komen niet overeen in '%1 Could not unmap '%1': %2 - wat is unmap - kan '%1': %2 niet unmappen?? + EG - wat is unmap...RL - mmap is (op unix en -----x familie) een system call dat bestanden of apparaten mapt naar het geheugen (map/unmap), dus gewoon vertalen als 'unmappen' + kan '%1': %2 niet unmappen The plugin '%1' uses incompatible Qt library. (%2.%3.%4) [%5] - Plugin '%1' gebruikt een QT biblitheek, (%2.%3.%4) [%5], die niet compatibel is + Plugin '%1' gebruikt een Qt bibliotheek, (%2.%3.%4) [%5], die niet compatibel is The plugin '%1' uses incompatible Qt library. Expected build key "%2", got "%3" - Plugin '%1' gebruikt een QT biblitheek die niet compatibel is. Verwacht bouw sleutel "%2" maar kreeg "%3" + RL - build key onvertaald laten + Plugin '%1' gebruikt een Qt bibliotheek die niet compatibel is. Verwacht build key "%2" maar kreeg "%3" Unknown error @@ -1935,16 +1951,12 @@ The plugin '%1' uses incompatible Qt library. (Cannot mix debug and release libraries.) - Plugin '%1' gebruikt een QT bibliotheek die niet compatibel is. (kan geen test en productie biblitheek doorelkaar gebruiken.) + Plugin '%1' gebruikt een Qt bibliotheek die niet compatibel is. (een test en productie bibliotheek kunnen niet door elkaar gebruikt worden.) QLineEdit - Select All - Alles selecteren - - &Undo &Ongedaan maken @@ -1968,6 +1980,10 @@ Delete Verwijderen + + Select All + Alles selecteren + QLocalServer @@ -1977,7 +1993,7 @@ %1: Permission denied - %1: geen toestemming + %1: Toestemming geweigerd %1: Address in use @@ -2020,7 +2036,7 @@ %1: Connection error - %1: Fout in de verbinding + %1: Verbindingsfout %1: The socket operation is not supported @@ -2047,7 +2063,7 @@ Unable to commit transaction - Kan de transactie niet bevestigen + Kan de transactie niet toepassen Unable to rollback transaction @@ -2086,7 +2102,8 @@ Unable to bind outvalues - Kan geen overwaarde binden + RL - was vertaald 'overwaarde', maar betekent 'een hogere waarde hebbende dan' Wordt door bv Microsoft in Nederlands nooit vertaald + Kan geen outvalues binden Unable to store statement results @@ -2098,14 +2115,15 @@ Unable to store next result - Kan het volgene resultaat niet opslaan + Kan het volgende resultaat niet opslaan QMdiArea (Untitled) - (Zonder titel) + RL - opmaak, niet vertalen Zie virtualbox.org wikki translating + (Untitled) @@ -2148,13 +2166,17 @@ Stay on &Top - Op de &Voorgrond blijven + Op &Voorgrond blijven &Close Sl&uiten + - [%1] + - [%1] + + Maximize Maximaliseren @@ -2172,16 +2194,13 @@ Help - Help + RL - eng 'Help' wordt bij Moz/KDe/GNOME/Ubuntu/Fedora/Windows/Mac standaard vertaald in Nederlands als 'Hulp' + Hulp Menu Menu - - - [%1] - - [%1] - QMenu @@ -2201,6 +2220,11 @@ QMessageBox + Help + RL - eng 'Help' wordt bij Moz/KDe/GNOME/Ubuntu/Fedora/Windows/Mac standaard vertaald in Nederlands als 'Hulp' + Hulp + + OK OK @@ -2209,10 +2233,6 @@ Info over Qt - Help - Help - - <p>This program uses Qt version %1.</p> <p>Dit programma gebruikt Qt versie %1.</p> @@ -2226,18 +2246,18 @@ <p>This program uses Qt Open Source Edition version %1.</p><p>Qt Open Source Edition is intended for the development of Open Source applications. You need a commercial Qt license for development of proprietary (closed source) applications.</p><p>Please see <a href="http://www.trolltech.com/company/model/">www.trolltech.com/company/model/</a> for an overview of Qt licensing.</p> - <p>Dit programma gebruikt Qt Open Source editie versie %1.</p><p>Qt Open Source editie is bedoeld voor het ontwikkelen van Open Source applicaties. U heeft een commerciële Qt license nodig voor het ontwikkelen van proprietary (closed source) applicaties.</p><p>Kijk bij <a href="http://www.trolltech.com/company/model/">www.trolltech.com/company/model/</a> voor een overzicht van Qt licenties.</p> + <p>Dit programma gebruikt Qt Open Source editie versie %1.</p><p>Qt Open Source editie is bedoeld voor het ontwikkelen van Open Source applicaties. U hebt een commerciële Qt license nodig voor het ontwikkelen van proprietary (closed source) applicaties.</p><p>Kijk bij <a href="http://www.trolltech.com/company/model/">www.trolltech.com/company/model/</a> voor een overzicht van Qt licenties.</p> <h3>About Qt</h3>%1<p>Qt is a C++ toolkit for cross-platform application development.</p><p>Qt provides single-source portability across MS&nbsp;Windows, Mac&nbsp;OS&nbsp;X, Linux, and all major commercial Unix variants. Qt is also available for embedded devices as Qt for Embedded Linux and Qt for Windows CE.</p><p>Qt is a Nokia product. See <a href="http://www.trolltech.com/qt/">www.trolltech.com/qt/</a> for more information.</p> - <h3>Info over Qt</h3>%1<p>Qt is een C++ gereedschapskist voor applicatie ontwikkeling over platformen heen.</p><p>Qt levert één enkele bron overdraagbaarheid met MS&nbsp;Windows, Mac&nbsp;OS&nbsp;X, Linux en alle belangrijke commerciële Unix variantenn. Qt is ook beschikbaar voor ingebouw apparaten zoals Qt voor inbouw Linux en Qt voor Windows CE.</p><p>Qt is een Nokia product. Kijk bij <a href="http://www.trolltech.com/qt/">www.trolltech.com/qt/</a> voor meer informatie.</p> + <h3>Info over Qt</h3>%1<p>Qt is een C++ gereedschapskist voor applicatie-ontwikkeling over platformen heen.</p><p>Qt levert één enkele bron overdraagbaarheid met MS&nbsp;Windows, Mac&nbsp;OS&nbsp;X, Linux en alle belangrijke commerciële Unix varianten. Qt is ook beschikbaar voor ingebouwde apparaten zoals Qt Embedded Linux en Qt voor Windows CE.</p><p>Qt is een Nokia product. Kijk bij <a href="http://www.trolltech.com/qt/">www.trolltech.com/qt/</a> voor meer informatie.</p> QMultiInputContext Select IM - wat is IM + EG - wat is IM RL - Ik weet het ook niet zeker, maar het zou zomaar kunnen dat hier -gezien de context- 'Input Method' wordt afgekort Selecteer IM @@ -2245,18 +2265,18 @@ QMultiInputContextPlugin Multiple input method switcher - Schakelaar tussen invoer methodes + Schakelaar tussen invoermethodes Multiple input method switcher that uses the context menu of the text widgets - Schakelaar tussen invoer methodes die gebruik maakt van het context menu of de tekst widgets + Schakelaar tussen invoermethodes die gebruik maakt van het context menu of de tekst-widgets QNativeSocketEngine The remote host closed the connection - De gastheer op afstand heeft de verbinding verbroken + Host op afstand heeft de verbinding verbroken Network operation timed out @@ -2276,16 +2296,16 @@ Invalid socket descriptor - Wat is een descriptor - Ongeldige socket deskriptor + EG - Wat is een descriptor RL - Heel kort door de bocht: een beschrijver (zoals sockfd) hoe de socket moet worden benaderd. Techterm, onvertaald laten + Ongeldige socket descriptor Network unreachable - Netwerk is niet te bereiken + Netwerk onbereikbaar Permission denied - Geen toestemming + Toestemming geweigerd Connection timed out @@ -2325,31 +2345,33 @@ Another socket is already listening on the same port - Eenn andere socket luisterd al op dezelfde poort + Eenn andere socket luistert al op dezelfde poort Unable to initialize non-blocking socket - Kan het, niet blokkerende, socket niet initialiseren + RL - non blocking socket: techterm, niet vertalen + Kan non-blocking-socket niet initialiseren Unable to initialize broadcast socket - Kan het, rondstrooiende , socket niet initialiseren + RL - broadcast socket: techterm, niet vertalen + Kan broadcast socket niet initialiseren Attempt to use IPv6 socket on a platform with no IPv6 support - Probeert IPv socket te gebruiken op een platform die IPv6 niet ondersteund + Poging IPv6 socket te gebruiken op een platform dat IPv6 niet ondersteund Host unreachable - Gastheer niet te bereiken + Host onbereikbaar Datagram was too large to send - Datagram is te groot om te verzenden + Datagram was te groot om te verzenden Operation on non-socket - Operatie op een niet-socket + Operatie op een non-socket Unknown error @@ -2357,30 +2379,30 @@ The proxy type is invalid for this operation - De operatie is niet geldig voor dit soort proxy + Het proxytype is ongeldig voor deze operatie QNetworkAccessFileBackend Request for opening non-local file %1 - Verzoek om bestand %1 te openen, dat niet locaal staat + Verzoek om niet lokaal bestand %1 te openen Error opening %1: %2 - Openen van %1: %2 gaat fout + Fout bij openen van %1: %2 Write error writing to %1: %2 - Schrijf fout bij het schrijven naar %1: %2 + Schrijffout bij het schrijven naar %1: %2 Cannot open %1: Path is a directory - Kan %1 niet openen: Het pad is map + Kan %1 niet openen: Het pad is een map Read error reading from %1: %2 - Lees fout bij het lezen van %1: %2 + Leesfout bij het lezen van %1: %2 @@ -2391,26 +2413,26 @@ Logging in to %1 failed: authentication required - Logboek bij houden in %1 is mislukt: authenticatie is nodig + Logboek bij houden in %1 is mislukt: authenticatie is vereist Error while downloading %1: %2 - Fout tijdens het downloaden%1: %2 + Fout tijdens het downloaden %1: %2 Error while uploading %1: %2 - Fout tijdens het uploaden%1: %2 + Fout tijdens het uploaden %1: %2 QNetworkReply Error downloading %1 - server replied: %2 - Fout tijdens het downloaden%1 - server antwoorde: %2 + Fout tijdens het downloaden %1 - server antwoordde: %2 Protocol "%1" is unknown - Protocol "%1" is onbekend + Protocol "%1" is onbekend @@ -2424,7 +2446,7 @@ QOCIDriver Unable to logon - Kan u niet aanmelden + Niet in staat in te loggen Unable to initialize @@ -2433,11 +2455,11 @@ Unable to begin transaction - Kan niet beginnen met de transactie + Kan niet met transactie beginnen Unable to commit transaction - Kan de transactie niet bevestigen + Kan de transactie niet toepassen Unable to rollback transaction @@ -2448,7 +2470,7 @@ QOCIResult Unable to bind column for batch execute - Kan de kolom niet binden voor een batch uitvoering + Kan kolom niet binden voor een batch uitvoering Unable to execute batch statement @@ -2472,7 +2494,7 @@ Unable to execute select statement - Kan de "select" instructie niet uitvoeren + Kan de select-instructie niet uitvoeren Unable to execute statement @@ -2487,15 +2509,15 @@ Unable to connect - Driver doesn't support all needed functionality - Kan geen verbinding maken - Stuurprogramma ondersteund niet alle benodigde functionaliteit + Kan geen verbinding maken - Stuurprogramma ondersteunt niet alle benodigde functionaliteiten Unable to disable autocommit - Kan het automatisch bevestigen niet deactiveren + Kan automatisch toepassen (autocommit) niet deactiveren Unable to commit transaction - Kan de transactie niet bevestigen + Kan de transactie niet toepassen Unable to rollback transaction @@ -2503,14 +2525,14 @@ Unable to enable autocommit - Kan het automatisch bevestigen niet activeren + Kan het automatisch toepassen (autocommit) niet activeren QODBCResult QODBCResult::reset: Unable to set 'SQL_CURSOR_STATIC' as statement attribute. Please check your ODBC driver configuration - QODBCResult::terugzetten: 'SQL_CURSOR_STATIC' kan niet als een attribuut van instructie meegeven. controleer de configuratie van het ODBC stuurprogramma + QODBCResult::terugzetten: kan 'SQL_CURSOR_STATIC' niet als instructie-attribuut meegeven. Controleer configuratie ODBC-stuurprogramma Unable to execute statement @@ -2526,7 +2548,7 @@ Unable to bind variable - Kan geen variabele binden + Kan de variabele niet binden Unable to fetch last @@ -2534,7 +2556,7 @@ Unable to fetch - Kan niets ophalen + Kan niet ophalen Unable to fetch first @@ -2557,11 +2579,11 @@ Write error writing to %1: %2 - Schrijf fout bij het schrijven naar %1: %2 + Schrijffout bij het schrijven naar %1: %2 Read error reading from %1: %2 - Lees fout bij het lezen van %1: %2 + Leesfout bij het lezen van %1: %2 Socket error on %1: %2 @@ -2569,11 +2591,11 @@ Remote host closed the connection prematurely on %1 - De gastheer op afstand heeft de verbinding voortijdig verbroken op %1 + Host op afstand heeft de verbinding voortijdig verbroken op %1 Protocol error: packet of size 0 received - Protocol fout:Een leeg gegevenspakket ontvangen + Protocolfout:pakket met grootte van 0 ontvangen @@ -2599,7 +2621,7 @@ Could not commit transaction - Kan de transactie niet bevestigen + Kan de transactie niet toepassen Could not rollback transaction @@ -2633,7 +2655,7 @@ Millimeters (mm) - Millimeter (mm) + Millimeters (mm) Inches (in) @@ -2669,7 +2691,7 @@ Orientation - Ligging + Oriëntatie Portrait @@ -2689,19 +2711,19 @@ Margins - Marges + Kantlijnen top margin - Bovenmarge + bovenmarge left margin - Linkermarge + linkermarge right margin - Rechtermarge + rechtermarge bottom margin @@ -2727,7 +2749,7 @@ Aliases: %1 - Alias: %1 + Aliases: %1 unknown @@ -2735,7 +2757,7 @@ Print To File ... - Afdrukken naar een bestand ... + Afdrukken naar bestand ... File %1 is not writable. @@ -2884,16 +2906,20 @@ &Opties >> + &Print + &Printen + + &Options << &Opties << Print to File (PDF) - Afdrukken naar een bestand (PDF) + Afdrukken naar bestand (PDF) Print to File (Postscript) - Afdrukken naar een bestand (Postscript) + Afdrukken naar bestand (Postscript) Local file @@ -2903,16 +2929,16 @@ Write %1 file Schrijf %1 bestand - - &Print - &Printen - QPrintPreviewDialog + Page Setup + Pagina Instelling + + Print Preview - Print voorbeeld + Afdrukvoorbeeld Next page @@ -2932,11 +2958,11 @@ Fit width - Breedte aanpassen + Breedte passend Fit page - Pagina aanpassen + Pagina passend Zoom in @@ -2960,7 +2986,7 @@ Show facing pages - Geef gespiegelde pagina's weer + Geef tegenoverliggende pagina's weer Show overview of all pages @@ -2968,7 +2994,7 @@ Print - Print + Afdrukken Page setup @@ -2978,10 +3004,6 @@ Close Sluiten - - Page Setup - Pagina instelling - QPrintPropertiesWidget @@ -3002,8 +3024,8 @@ QPrintSettingsOutput Form - of Vorm - Formulier + EG - Formulier of Vorm RL - Even gechecked, het moet 'Papierformaat' zijn, A4, Letter, Legal en zo... + Papierformaat Copies @@ -3011,7 +3033,7 @@ Print range - Print bereik + Afdrukbereik Print all @@ -3031,7 +3053,7 @@ Output Settings - Uitvoer instellingen + Uitvoerinstellingen Copies: @@ -3082,7 +3104,7 @@ QPrintWidget Form - Formulier + Papierformaat Printer @@ -3189,7 +3211,7 @@ Unable to commit transaction - Kan de transactie niet bevestigen + Kan de transactie niet toepassen Unable to rollback Transaction @@ -3223,7 +3245,7 @@ Unable to commit transaction - Kan de transactie niet bevestigen + Kan de transactie niet toepassen Unable to rollback transaction @@ -3269,7 +3291,7 @@ Top - boven + Bovenkant Right edge @@ -3277,7 +3299,7 @@ Bottom - Onder + Onderkant Page left @@ -3313,7 +3335,7 @@ Line up - Rangschikken + Regel naar boven Position @@ -3321,26 +3343,30 @@ Line down - Lijn onder?? + Regel naar beneden QSharedMemory + %1: unable to set key on lock + %1: kan geen sleutel op het slot zetten + + %1: create size is less then 0 %1: aanmaakgrote is kleiner dan 0 %1: unable to lock - %1: kan niet sluiten + %1: kan niet vergrendelen %1: unable to unlock - %1: kan niet openen + %1: kan niet ontgrendelen %1: permission denied - %1: geen toestemming + %1: toestemming geweigerd %1: already exists @@ -3382,10 +3408,6 @@ %1: not attached %1: niet gekoppeld - - %1: unable to set key on lock - %1: kan geen sleutel op het slot zetten - QShortcut @@ -3487,7 +3509,8 @@ Help - Help + RL - eng 'Help' wordt bij Moz/KDe/GNOME/Ubuntu/Fedora/Windows/Mac standaard vertaald in Nederlands als 'Hulp' + Hulp Back @@ -3691,7 +3714,7 @@ Select - selecteren + Selecteren Yes @@ -3719,7 +3742,7 @@ Call - Aanroep + Bellen Hangup @@ -3785,11 +3808,11 @@ QSocks5SocketEngine Socks5 timeout error connecting to socks server - Socks5 tijdslimiet verlopen tijdens verdinging zoeken met de socks server + Socks5 tijdslimiet verlopen tijdens verbinding zoeken met de socks server Network operation timed out - Tijdslimiet verlopen bij de netwerk operatie + Tijdslimiet verlopen bij netwerk operatie @@ -3882,7 +3905,7 @@ Error loading local certificate, %1 - Fout bij het laden van het locale certificaat, %1 + Fout bij het laden van lokaal certificaat, %1 Error loading private key, %1 @@ -3890,14 +3913,14 @@ Private key does not certificate public key, %1 - Prive sleutel certificeerd geen publieke sleutel, %1 + Prive sleutel certificeert geen publieke sleutel, %1 QTDSDriver Unable to open connection - Kan de verbinding niet openen ' + Kan verbinding niet openen Unable to use database @@ -3947,7 +3970,7 @@ Select All - Alles selecteren + Selecteer Alles @@ -3965,7 +3988,7 @@ QUdpSocket This platform does not support IPv6 - Dit platform ondersteund geen IPv6 + Dit platform ondersteunt geen IPv6 @@ -3976,7 +3999,7 @@ Redo - Opnieuw + Opnieuw doen @@ -3994,7 +4017,7 @@ Redo - Opnieuw + Opnieuw doen @@ -4009,26 +4032,26 @@ ZWJ Zero width joiner - nog vertalen - ZWJ Koppelaar zonder breedte + EG nog vertalen RL - Techterm + ZWJ Zero width joiner ZWNJ Zero width non-joiner - nog vertalen - ZWNJ Niet-koppelaar zonder breedte + EG nog vertalen RL - Techterm + ZWNJ Zero width non-joiner ZWSP Zero width space - nog vertalen - ZWSP Spatie zonder breedte + EG nog vertalen RL - Techterm + ZWSP Zero width space LRE Start of left-to-right embedding - LRE Start van links-naar-rechts imbedding + LRE Start van links-naar-rechts embedding RLE Start of right-to-left embedding - RLE Start van rechts-naar-links imbedding + RLE Start van rechts-naar-links embedding LRO Start of left-to-right override @@ -4040,12 +4063,12 @@ PDF Pop directional formatting - nog vertalen - PDF Pop richtingsformattering + EG nog vertalen RL - Techterm + PDF Pop directional formatting Insert Unicode control character - Voeg een unicode controle teken toe + Voeg een Unicode controle teken toe @@ -4056,19 +4079,19 @@ Request blocked - verzoek geblokkeerd + Verzoek geblokkeerd Cannot show URL - Der URL kann nicht angezeigt werden + Kan URL niet tonen Frame load interruped by policy change - Laden van het frame onderbroken door een wijziging in het beleid + Laden van het frame onderbroken door een policywijziging Cannot show mimetype - Kan het mime type niet weergeven + Kan het mime-type niet weergeven File does not exist @@ -4078,14 +4101,18 @@ QWebPage + Bad HTTP request + Ongeldig HTTP verzoek + + Submit default label for Submit buttons in forms on web pages - Voorleggen + Indienen Submit Submit (input element) alt text for <input> elements with no alt, title, or value - Voorleggen + Indienen Reset @@ -4093,6 +4120,11 @@ Terugzetten + This is a searchable index. Enter search keywords: + text that appears at the start of nearly-obsolete web pages in the form of a 'searchable index' + Deze index is te doorzoeken. Geef trefwoorden op: + + Choose File title for file button used in HTML forms Kies bestand @@ -4120,17 +4152,18 @@ Open Image Open Image in New Window context menu item - Plaatje openen + RL - Liever 'afbeelding' dan 'plaatje' + Afbeelding openen Save Image Download Image context menu item - Plaatje opslaan + Afbeelding opslaan Copy Image Copy Link context menu item - Kopiëer plaatje + Kopiëer afbeelding Open Frame @@ -4185,7 +4218,7 @@ Add To Dictionary Learn Spelling context menu item - Aan de map toevoegen + Aan woordenboek toevoegen Search The Web @@ -4195,7 +4228,7 @@ Look Up In Dictionary Look Up in Dictionary context menu item - In het woordenboek opzoeken + In woordenboek opzoeken Open Link @@ -4308,22 +4341,13 @@ Onbekend - Web Inspector - %2 - Web Inspecteur - %2 - - %1 (%2x%3 pixels) Title string for images %1 (%2x%3 pixels) - Bad HTTP request - Ongeldig HTTP verzoek - - - This is a searchable index. Enter search keywords: - text that appears at the start of nearly-obsolete web pages in the form of a 'searchable index' - Deze index is te doorzoeken.Geef trefwoorden op: + Web Inspector - %2 + Web Inspector - %2 @@ -4343,44 +4367,46 @@ QWizard - Cancel - Annuleren + Go Back + Vorige - Help - Help + Continue + Doorgaan - < &Back - < &Terug + Commit + Toepassen - &Finish - &Klaar + Done + Klaar - &Help - &Help + Quit + Stoppen - Go Back - Vorige + Help + RL - eng 'Help' wordt bij Moz/KDe/GNOME/Ubuntu/Fedora/Windows/Mac standaard vertaald in Nederlands als 'Hulp' + Hulp - Continue - Doorgaan + < &Back + < &Terug - Commit - Anwenden + &Finish + &Klaar - Done - Klaar + Cancel + Annuleren - Quit - Stoppen + &Help + RL - eng 'Help' wordt bij Moz/KDe/GNOME/Ubuntu/Fedora/Windows/Mac standaard vertaald in Nederlands als 'Hulp' + &Hulp &Next @@ -4403,7 +4429,7 @@ &Size - &Omvang + &Grootte Mi&nimize @@ -4419,7 +4445,15 @@ Stay on &Top - Op de &Voorgrond blijven + Op &voorgrond blijven + + + Sh&ade + Sh&ade + + + %1 - [%2] + %1 - [%2] Minimize @@ -4427,22 +4461,14 @@ Restore Down - nog vertalen - Restore Down + Eg - nog vertalen RL - Dit is de actie verbonden aan het raam-icoontje rechtsboven op titelbalk van venster (middelste van de drie), bij aanklikken gaat venster naar maximaal, nog eens aanklikken naar oude grootte. Wordt in Fedora vertaald als 'venster herstellen'. + Venster herstellen Close Sluiten - Sh&ade - Sh&ade - - - %1 - [%2] - %1 - [%2] - - &Unshade &Unshade @@ -4459,15 +4485,16 @@ unexpected end of file - Onverwachts einde van het bestand + Onverwacht einde van het bestand more than one document type definition - Meerdere definities van het soort document + Meer dan één document type definitie error occurred while parsing element - Fout bij het ontleden van het element + RL - parsen is nl werkwoord, betekent analyseren van info, Techterm + Fout bij het parsen van element tag mismatch @@ -4475,7 +4502,7 @@ error occurred while parsing content - Fout opgetreden bij het ontleden van de inhoud + Fout opgetreden bij parsen van inhoud unexpected character @@ -4491,23 +4518,32 @@ wrong value for standalone declaration - Verkeerde waarde voor een op zichzelf staande declaratie + Verkeerde waarde voor een standalone declaratie + + + encoding declaration or standalone declaration expected while reading the XML declaration + Bij het lezen van de XML declaratie wordt een coderende declaratie of op zichzelf staande declaratie verwacht + + + standalone declaration expected while reading the XML declaration + op zichzelf staande declaratie verwacht bij het lezen een XML declaratie error occurred while parsing document type definition - fout opgetreden bij het ontleden van het document type definitie + fout opgetreden bij het parsen van document type definitie letter is expected - Een letter wordt verwacht + RL - letter als papierformaat, zoals A4 bv + letter wordt verwacht error occurred while parsing comment - Fout opgetreden bij het ontleden van het commentaar + Fout opgetreden bij parsen van commentaar error occurred while parsing reference - Fout bij het ontleden van de referentie + Fout bij parsen van referentie internal general entity reference not allowed in DTD @@ -4533,14 +4569,6 @@ error in the text declaration of an external entity Fout in de tekst declaratie van een externe entiteit - - encoding declaration or standalone declaration expected while reading the XML declaration - Bij het lezen van de XML declaratie wordt een coderende declaratie of op zichzelf staande declaratie verwacht - - - standalone declaration expected while reading the XML declaration - op zichzelf staande declaratie verwacht bij het lezen een XML declaratie - QXmlStream @@ -4558,11 +4586,12 @@ Sequence ']]>' not allowed in content. - De volgorde ']]>' is niet toegestaan in de inhoud. + De volgorde ']]>' is niet toegestaan in inhoud. Namespace prefix '%1' not declared - De naamruimte voorvoegsel '%1' is niet declareerd + gewoon prefix + Naamruimte prefix '%1' is niet declareerd Attribute redefined. @@ -4570,8 +4599,7 @@ Unexpected character '%1' in public id literal. - Literal? - '%1' wordt niet verwacht in een publieke id literal. + Teken '%1' wordt niet verwacht in een publieke identificator literaal. Invalid XML version string. @@ -4591,7 +4619,7 @@ Standalone accepts only yes or no. - Op zichzelf staand accepteerd alleen ja of nee. + Standalone accepteert alleen ja of nee. Invalid attribute in XML declaration. @@ -4619,7 +4647,7 @@ Expected character data. - Verwacht een teken als gegeven. + Verwacht teken als data. Recursive entity detected. @@ -4631,11 +4659,11 @@ XML declaration not at start of document. - De XML declaratie staat niet aan heb begin van het document. + De XML declaratie staat niet aan het begin van het document. NDATA in parameter entity declaration. - NDATA in de parameter entiteit declaratie. + NDATA in parameter entiteit declaratie. %1 is an invalid processing instruction name. @@ -4655,11 +4683,11 @@ Opening and ending tag mismatch. - Opening en afsluit tag komen niet overeen. + Openings- en sluittag komen niet overeen. Reference to unparsed entity '%1'. - Referentie naar niet ontlede entiteit '%1'. + Referentie naar ongeparste entiteit '%1'. Entity '%1' not declared. @@ -4667,7 +4695,7 @@ Reference to external entity '%1' in attribute value. - Verwijzing naar externe entiteit '%1' in de attribuut waarde. + Verwijzing naar externe entiteit '%1' in de attribuutwaarde. Invalid character reference. @@ -4675,608 +4703,625 @@ Encountered incorrectly encoded content. - Niet correct gecodeerde inhoud ontdekt. + Niet correct gecodeerde inhoud tegengekomen. The standalone pseudo attribute must appear after the encoding. - Het op zichzelf staande pseudo attribuut moet na de codering volgen. + Standalone pseudo attribuut moet komen na de codering. %1 is an invalid PUBLIC identifier. - %1 is een ongeldige PUBLIEKE id. + %1 is een ongeldige PUBLIEKE identificator. QtXmlPatterns - At least one component must be present. - Tenminste één component moet aanwezig zijn. + An %1-attribute with value %2 has already been declared. + Een %1 attribuut met de waarde %2 is al gedeclareerd. - No operand in an integer division, %1, can be %2. - Geen operand bij deling %1, van gehele getallen, kan een %2 zijin. + An %1-attribute must have a valid %2 as value, which %3 isn't. + Een %1 attribuut moet een geldige %2 als waarde hebben en dat heeft %3 niet. - %1 is not a valid value of type %2. - %1 is een ongeldige waarde van het soort %2. + Network timeout. + Netwerk timeout. - When casting to %1 from %2, the source value cannot be %3. - Bij het overgaan van %1 uit %2 kan %3 geen brond zijn. + Element %1 can't be serialized because it appears outside the document element. + EG - xml serialization = geserialiseerd + Element %1 kan niet geserialiseerd worden omdat buiten het document element voorkomt. - Effective Boolean Value cannot be calculated for a sequence containing two or more atomic values. - Een effectieve boolsche waarde kan niet worden berekend voor een serrie die meer dan twee zeer kleine waarden bevat. + Year %1 is invalid because it begins with %2. + Jaar %1 is ongeldig omdat het begint met %2. - Operator %1 is not available between atomic values of type %2 and %3. - Operator %1 is niet beschikbaar voor zeer kleine waarden van het soort %2 en %3. + Day %1 is outside the range %2..%3. + Dag %1 valt buiten de reeks %2..%3. - It is not possible to cast from %1 to %2. - Het is niet mogelijk om %1 over te laten gaan vanuit %2. + Month %1 is outside the range %2..%3. + De maand %1 valt buiten de reeks %2..%3. - Casting to %1 is not possible because it is an abstract type, and can therefore never be instantiated. - Overgaan naar %1 is niet mogelijk omdat dit een abstracte soort is en kan daarom nooit geconcretiseerd worden. + Overflow: Can't represent date %1. + RL - Foutmelding dus Overflow onvertaald vermelden ivm foutopsporing op internet + Kan datum %1 niet weergeven (Overflow). - It's not possible to cast the value %1 of type %2 to %3 - Het is niet mogelijk om de waarde %1 van soort %2 over te laten gaan naar %3 + Day %1 is invalid for month %2. + Dag %1 is ongeldig voor maand %2. - Failure when casting from %1 to %2: %3 - De overgang van %1 naar %2 is mislukt: %3 + Time 24:%1:%2.%3 is invalid. Hour is 24, but minutes, seconds, and milliseconds are not all 0; + 24 uurs tijd:%1:%2.%3 zijn ongeldig. Het uur is 24 maar de minuten, seconden en milliseconden zijn niet allemaal 0; - No comparisons can be done involving the type %1. - Met soort %1 zijn geen vergelijkingen uit te voeren. + Time %1:%2:%3.%4 is invalid. + Tijd %1:%2:%3.%4 is ongeldig. - The data of a processing instruction cannot contain the string %1 - De gegevens van een proces instructie kunnen niet de reeks %1 bevatten + Overflow: Date can't be represented. + RL - Foutmelding dus Overflow onvertaald vermelden ivm foutopsporing op internet + Kan de datum niet weergeven (Overflow). - %1 is an invalid %2 - %1 is ongeldig %2 + At least one component must be present. + Tenminste één component moet aanwezig zijn. - %1 is not a valid XML 1.0 character. - %1 is een ongeldig XML 1.0 teken. + At least one time component must appear after the %1-delimiter. + Tenminste één tijdscomponent moet voorkomen na de %1 begrenzer. - The first argument to %1 cannot be of type %2. - Het eerste argument van %1 kan niet van het soort %2 zijn. + No operand in an integer division, %1, can be %2. + Geen operand bij deling %1, van gehele getallen, kan een %2 zijn. - %1 was called. - %1 was aangeroepen. + The first operand in an integer division, %1, cannot be infinity (%2). + De eerste operand in een deling met gehele getallen, %1, kan niet oneindig zijn (%2). - In the replacement string, %1 must be followed by at least one digit when not escaped. - In de vervangende reeks moet %1 gevolgd worden door tenminste één cijfer als deze niet door een escape teken wordt gedekt. + The second operand in a division, %1, cannot be zero (%2). + De tweede operand in een deling, %1 kan niet nul zijn (%2). - In the replacement string, %1 can only be used to escape itself or %2, not %3 - In de vervangende reeks kan %1 alleen worden gebruikt om zichzelf in te dekken of %2 maar niet %3 + %1 is not a valid value of type %2. + %1 is een ongeldige waarde van het soort %2. - %1 matches newline characters - %1 komt overeen met tekens voor nieuwe regels + When casting to %1 from %2, the source value cannot be %3. + Bij het omzetten naar %1 vanuit %2 kan %3 geen bron zijn. - Matches are case insensitive - Overeenkomsten zijn niet hoofdletter gevoelig + Integer division (%1) by zero (%2) is undefined. + De deling met gehele getallen (%1) door nul (%2) is niet gedefinieerd. - %1 is an invalid regular expression pattern: %2 - %1 is een ongeldige reguliere expressie patroon: %2 + Division (%1) by zero (%2) is undefined. + Deling (%1) door nul (%2) is niet gedefinieerd. - It will not be possible to retrieve %1. - het is niet mogelijk om %1 terug te halen. + Modulus division (%1) by zero (%2) is undefined. + De modulus deling (%1) door nul (%2) is niet gedefinieerd. - The default collection is undefined - De standaard verzameling is niet gedefinieerd + Dividing a value of type %1 by %2 (not-a-number) is not allowed. + Delen van een waarde van het soort %1 door %2 (geen getal) is niet toegestaan. - %1 cannot be retrieved - %1 kan niet terug gehaald worden + Dividing a value of type %1 by %2 or %3 (plus or minus zero) is not allowed. + Delen van een waarde van het soort %1 door %2 of %3 (plus of min nul) is niet toegestaan. - The item %1 did not match the required type %2. - Het item %1 komt niet overeen met het vereiste soort %2. + Multiplication of a value of type %1 by %2 or %3 (plus or minus infinity) is not allowed. + Vermenigvuldigen van een waarde van het soort %1 met %2 of %3 (plus of min oneindig) is niet toegestaan. - %1 is an unknown schema type. - %1 is een onbekend soort schema. + A value of type %1 cannot have an Effective Boolean Value. + RL - EBV: Waarde van George Boole, wiskundige. Wordt in Nederland wisselend niet vertaald (Boolean) en wel (Booleaans) + Een waarde van het soort %1 kan geen Effectieve Booleaanse Waarde hebben. - Only one %1 declaration can occur in the query prolog. - Maar één %1 declaratie kan voorkomen in de inleiding van een zoekvraag. + Effective Boolean Value cannot be calculated for a sequence containing two or more atomic values. + RL - EBV: Waarde van George Boole, wiskundige. Wordt in Nederland wisselend niet vertaald (Boolean) en wel (Booleaans) +RL - een attribuut is atomair indien het maar één enkele waarde kan bevatten + Een Effectieve Booleaanse Waarde kan niet worden berekend voor een serie die twee of meer atomaire waarden bevat. - The initialization of variable %1 depends on itself - De initialisering van variabele %1 hangt van zichzelf af + Value %1 of type %2 exceeds maximum (%3). + Waarde %1 van het soort %2 overschrijdt het maximum (%3). - The variable %1 is unused - De variabele %1 wordt niet gebruikt + Value %1 of type %2 is below minimum (%3). + Waarde %1 van het soort %2 overschrijdt het minimum (%3). - Version %1 is not supported. The supported XQuery version is 1.0. - Versie %1 wordt niet ondersteund. De ondersteunde Xquery versie is 1.0. + A value of type %1 must contain an even number of digits. The value %2 does not. + Een waarde van het type %1 moet een even aantal getallen bevatten. De waarde %2 heeft dat niet. - No function with signature %1 is available - Geen functie beschikbaar met handtekening %1 + %1 is not valid as a value of type %2. + %1 is niet geldig als een waarde van het type %2. - It is not possible to redeclare prefix %1. - Het is niet mogelijk om voorvoegsel %1 opnieuw te declareren. + Operator %1 cannot be used on type %2. + Operator %1 kan niet worden gebruikt bij type %2. - Prefix %1 is already declared in the prolog. - Voorvoegsel %1 is al gedeclareerd in de inleiding. + Operator %1 cannot be used on atomic values of type %2 and %3. + RL - een attribuut is atomair indien het maar één enkele waarde kan bevatten + Operator %1 kan niet gebruikt worden op atomaire waarden van type %2 en %3. - The name of an option must have a prefix. There is no default namespace for options. - De naam van een optie moet een voorvoegsel hebben. Er bestaat geen standaard naamruimte voor opties. + The namespace URI in the name for a computed attribute cannot be %1. + De naamruimte URI in de naam voor berekend attribuut kan geen %1 zijn. - The Schema Import feature is not supported, and therefore %1 declarations cannot occur. - De import kenmerken, voor het schema, wordt niet ondersteund en daarom kunnen declaraties %1 niet voorkomen. - - - The target namespace of a %1 cannot be empty. - De doel naamruimte van een %1 kan niet leeg zijn. + The name for a computed attribute cannot have the namespace URI %1 with the local name %2. + De naam voor een berekend attribuut kan niet de naamruimte URI %1 hebben met de lokale naam %2. - The module import feature is not supported - Het kenmerk "import module" wordt niet ondersteund + Type error in cast, expected %1, received %2. + Typefout bij omzetten, verwachtte %1 maar %2 ontvangen. - A variable by name %1 has already been declared in the prolog. - Een variabele met de naam %1 is al gedeclareerd in de inleiding. + When casting to %1 or types derived from it, the source value must be of the same type, or it must be a string literal. Type %2 is not allowed. + RL - literaal: constante die in een programmeertaal, als absolute rekengrootheid, vergelijkingswaarde of vast uitvoergegeven wordt weergegeven + Bij omzetten van %1 of typen daarvan afgeleid moet de bronwaarde van hetzelfde type zijn of moet het een literale reeks zijn. Soort %2 is niet toegestaan. - No value is available for the external variable by name %1. - Voor de externe variabele met de naam %1 is geen waarde beschikbaar. + No casting is possible with %1 as the target type. + Een omzetting is niet mogelijk met %1 als doeltype. - The namespace of a user defined function in a library module must be equivalent to the module namespace. In other words, it should be %1 instead of %2 - De naamruimte van een zelf gedefinieerde functie, in een biblitheek module, moet overeenkomen met de module naamruimte. Met andere woorden: het moet %1 zijn in plaats van %2 + It is not possible to cast from %1 to %2. + RL - To cast hier is eigenlijk 'omgieten' bv van SQL-vorm naar Xml of andersom + Het is niet mogelijk om %1 om te zetten %2. - A function already exists with the signature %1. - Een functie met handtekening %1 bestaat al. + Casting to %1 is not possible because it is an abstract type, and can therefore never be instantiated. + Omzetten naar %1 is niet mogelijk omdat dit een abstract type is en daarom nooit geconcretiseerd kan worden. - No external functions are supported. All supported functions can be used directly, without first declaring them as external - Externe funkties worden niet ondersteund. Alle ondersteunde functies kunnen direct worden gebruikt zonder deze als extern te declareren + It's not possible to cast the value %1 of type %2 to %3 + Het is niet mogelijk om waarde %1 van soort %2 om te zetten in %3 - An argument by name %1 has already been declared. Every argument name must be unique. - Een argument met de naam %1 is al gedeclareerd. Elke naam van een argument moet uniek zijn. + Failure when casting from %1 to %2: %3 + Omzetting van %1 naar %2 is mislukt: %3 - The %1-axis is unsupported in XQuery - De %1 as wordt niet ondersteund in een XQuery + A comment cannot contain %1 + Een commentaar kan geen %1 bevatten - No variable by name %1 exists - Een variabele met naam %1 betaat niet + A comment cannot end with a %1. + Een commentaar kan niet op %1 eindigen. - No function by name %1 is available. - Een functie met naam %1 is niet beschikbaar. + No comparisons can be done involving the type %1. + Met type %1 zijn geen vergelijkingen uit te voeren. - The namespace URI cannot be the empty string when binding to a prefix, %1. - De naamruimte URI kan niet een lege reeks zijn als deze gebonden wordt aan voorvoegsel %1. + Operator %1 is not available between atomic values of type %2 and %3. + RL - een attribuut is atomair indien het maar één enkele waarde kan bevatten + Operator %1 is niet beschikbaar tussen atomaire waarden van type %2 en %3. - %1 is an invalid namespace URI. - %1 is een ongeldige naamruimte URI. + An attribute node cannot be a child of a document node. Therefore, the attribute %1 is out of place. + Een attribuutnode kan geen kind zijn van een documentnode. Daarom is het attribuut %1 niet op zijn plaats. - It is not possible to bind to the prefix %1 - Het is niet mogelijk om voorvoegsel %1 opnieuw te binden + A library module cannot be evaluated directly. It must be imported from a main module. + Een bibliotheekmodule kan niet direct geëvalueerd worden. Deze moet via een hoofdmodule geïmporteerd worden. - Two namespace declaration attributes have the same name: %1. - Twee attributen voor een naamruimte declaratie hebben dezelfde naam: %1. + A value of type %1 cannot be a predicate. A predicate must have either a numeric type or an Effective Boolean Value type. + RL - Waarde van George Boole, wiskundige. Wordt in Nederland wisselend niet vertaald (Boolean) en wel (Booleaans) + Een waarde van het soort %1 kan geen predikaat zijn. Een predikaat moet of een numeriek type of een Effectieve Booleaanse Waarde type hebben. - The namespace URI must be a constant and cannot use enclosed expressions. - Een naamruimte URI moet een constante zijn en kan geen ingesloten expressie zijn. + A positional predicate must evaluate to a single numeric value. + Een positioneel predikaat moet evalueren naar een enkele numerieke waarde. - An attribute by name %1 has already appeared on this element. - Een attribuut met de naam %1 is al voorgekomen op dit element. + The target name in a processing instruction cannot be %1 in any combination of upper and lower case. Therefore, is %2 invalid. + De doelnaam in een procesinstructie kan geen %1 zijn, in welke combinatie van hoofd- of kleine letters dan ook. Daarom is %2 ongeldig. - %1 is not a valid name for a processing-instruction. Therefore this name test will never match. - %1 is geen geldige naam voor een proces instructie. Daarom zal deze naam test nooit werken. + %1 is not a valid target name in a processing instruction. It must be a %2 value, e.g. %3. + %1 is geen geldige doelnaam in een procesinstructie. Deze moet een %2 waarde zijn, bijvoorbeeld %3. - %1 is not in the in-scope attribute declarations. Note that the schema import feature is not supported. - %1 valt niet in het bereik van de attribuut declaraties. Let op: het kenmerk "schema import" wordt niet ondersteund. + The last step in a path must contain either nodes or atomic values. It cannot be a mixture between the two. + RL - een attribuut is atomair indien het maar één enkele waarde kan bevatten + De laatste stap in een pad moet of nodes of atomaire waarden bevatten. Een combinatie van beide kan niet. - empty - leeg + The data of a processing instruction cannot contain the string %1 + De gegevens van een procesinstructie kunnen niet de reeks %1 bevatten - zero or one - nul of één + No namespace binding exists for the prefix %1 + Een naamruimtebinding bestaat niet voor prefix %1 - exactly one - -precies één + No namespace binding exists for the prefix %1 in %2 + Een naamruimtebinding bestaat niet voor prefix %1 in %2 - one or more - één of meer + %1 is an invalid %2 + %1 is een ongeldig %2 - - zero or more - nul of meer + + %1 takes at most %n argument(s). %2 is therefore invalid. + enkel en meervoud string, nieuwe format + + %1 accepteert ten hoogste %n argument. %2 is daarom ongeldig. + %1 accepteert ten hoogste %n argumenten. %2 is daarom ongeldig. + - - The focus is undefined. - De focus in niet gedefinieerd. + + %1 requires at least %n argument(s). %2 is therefore invalid. + + %1 vereist tenminste %n argument %2 is daarom ongeldig. + %1 vereist tenminste %n argumenten %2 is daarom ongeldig. + - An attribute by name %1 has already been created. - Een attribuut met de naam %1 is al aangemaakt. + The first argument to %1 cannot be of type %2. It must be a numeric type, xs:yearMonthDuration or xs:dayTimeDuration. + Het eerste argument van %1 kan niet van het type %2 zijn. Het moet numeriek, xs:jaarMaandDuur of xs:dagTijdDuur zijn. - Network timeout. - Tijdslimiet van het netwerk is verlopen. + The first argument to %1 cannot be of type %2. It must be of type %3, %4, or %5. + Het eerste argument van %1 kan niet van het type %2 zijn. Het moet van het type %3, %4 of %5 zijn. - Element %1 can't be serialized because it appears outside the document element. - Element %1 kan niet geserialiseerd worden omdat buiten het document element voorkomt. + The second argument to %1 cannot be of type %2. It must be of type %3, %4, or %5. + Het tweede argument van %1 kan niet van het type %2 zijn. Het moet van het type %3, %4 of %5 zijn. - Year %1 is invalid because it begins with %2. - Jaar %1 is ongeldig omdat het begint met %2. + %1 is not a valid XML 1.0 character. + %1 is een ongeldig XML 1.0 teken. - Day %1 is outside the range %2..%3. - Dag %1 valt buiten de reeks %2..%3. + The first argument to %1 cannot be of type %2. + Het eerste argument van %1 kan niet van het type %2 zijn. - Month %1 is outside the range %2..%3. - De maand %1 valt buiten de reeks %2..%3. + If both values have zone offsets, they must have the same zone offset. %1 and %2 are not the same. + Hebben beide waarden zone offsets, dan moeten ze dezelfde zone offset hebben. %1 en %2 zijn niet hetzelfde. - Overflow: Can't represent date %1. - Kan datum %1 niet weergeven (loopt over). + %1 was called. + %1 was aangeroepen. - Day %1 is invalid for month %2. - Dag %1 is ongeldig voor maand %2. + %1 must be followed by %2 or %3, not at the end of the replacement string. + %1 moet gevolgd worden door %2 of %3; maar niet aan het einde van een vervangende reeks. - Time 24:%1:%2.%3 is invalid. Hour is 24, but minutes, seconds, and milliseconds are not all 0; - 24 uurs tijd:%1:%2.%3 zijn ongeldig. Het uur is 24 maar de minuten, seconden en milliseconden zijn niet allemaal 0. + In the replacement string, %1 must be followed by at least one digit when not escaped. + In de vervangende reeks moet %1 gevolgd worden door tenminste één cijfer als deze niet door een escape teken wordt gedekt. - Time %1:%2:%3.%4 is invalid. - Tijd %1:%2:%3.%4 is ongeldig. + In the replacement string, %1 can only be used to escape itself or %2, not %3 + In de vervangende reeks kan %1 alleen worden gebruikt om zichzelf in te dekken of %2, maar niet %3 - Overflow: Date can't be represented. - Kan de datum niet weergeven (loopt over). + %1 matches newline characters + %1 komt overeen met tekens voor een nieuwe tekstregel - At least one time component must appear after the %1-delimiter. - Tenminste één tijd component moet voorkomen na de %1 begrenzer. + %1 and %2 match the start and end of a line. + %1 en %2 betekenen allebei begin en het einde van een regel. - Dividing a value of type %1 by %2 (not-a-number) is not allowed. - Delen van een waarde van het soort %1 door %2 (geen getal) is niet toegestaan. + Matches are case insensitive + Overeenkomsten zijn niet hoofdletter gevoelig - Dividing a value of type %1 by %2 or %3 (plus or minus zero) is not allowed. - Delen van een waarde van het soort %1 door %2 of %3 (plus of min nul) is niet toegestaan. + Whitespace characters are removed, except when they appear in character classes + Witruimte-tekens worden verwijderd, behalve wanneer deze voorkomen in tekenklassen - Multiplication of a value of type %1 by %2 or %3 (plus or minus infinity) is not allowed. - Vermenigvuldigen van een waarde van het soort %1 met %2 of %3 (plus of min oneindig) is niet toegestaan. + %1 is an invalid regular expression pattern: %2 + %1 is een ongeldige reguliere expressie patroon: %2 - A value of type %1 cannot have an Effective Boolean Value. - En waarde van het soort %1 kan geen effectieve booleanse waarde hebben. + %1 is an invalid flag for regular expressions. Valid flags are: + %1 is een ongeldige vlag voor een reguliere expressie. Geldige vlaggen zijn: - Value %1 of type %2 exceeds maximum (%3). - Waarde %1 van het soort %2 overschreidt het maximum (%3). + If the first argument is the empty sequence or a zero-length string (no namespace), a prefix cannot be specified. Prefix %1 was specified. + Is het eerste argument een lege reeks (empty sequence) of een reeks met lengte nul (geen naamruimte), dan kan geen prefix worden meegegeven. Prefix %1 was meegegeven. - Value %1 of type %2 is below minimum (%3). - Waarde %1 van het soort %2 overschreidt het minimum (%3). + It will not be possible to retrieve %1. + Het is niet mogelijk om %1 terug te halen. - A value of type %1 must contain an even number of digits. The value %2 does not. - Een waarde van het soort %1 moet een even aantal getallen bevatten. De waarde %2 heeft dat niet. + The root node of the second argument to function %1 must be a document node. %2 is not a document node. + RL - root node is Techterm + De root node van het tweede argument voor functie %1 moet een document node zijn. %2 is geen document node. - %1 is not valid as a value of type %2. - %1 is niet geldig als een waarde van het soort %2. + The default collection is undefined + De standaardverzameling is niet gedefinieerd - Operator %1 cannot be used on type %2. - Operator %1 kan niet worden gebruikt bij soort %2. + %1 cannot be retrieved + %1 kan niet terug gehaald worden - Operator %1 cannot be used on atomic values of type %2 and %3. - Operator %1 kan niet gebruikt worden op zeer kleine waarden van de soorent %2 en %3. + The normalization form %1 is unsupported. The supported forms are %2, %3, %4, and %5, and none, i.e. the empty string (no normalization). + De normalisatie vorm %1 wordt niet ondersteund. De ondersteunde vormen zijn %2, %3, %4, %5 ,en "geen" d.w.z. de lege reeks (geen normalisatie). - The namespace URI in the name for a computed attribute cannot be %1. - De naamruimte URI inde naam voor berekende attribuut kan geen %1 zijn. + A zone offset must be in the range %1..%2 inclusive. %3 is out of range. + Een zone offset moet binnen de reeks %1..%2 (inclusief) vallen. %3 valt buiten het bereik. - The name for a computed attribute cannot have the namespace URI %1 with the local name %2. - De naam voor een berekend attribuut kan niet de naamruimte URI %1 hebben met de locale naam %2. + %1 is not a whole number of minutes. + %1 is geen geheel getal in minuten. - Type error in cast, expected %1, received %2. - Foute in het soort bij de overgang, verwacht %1 maar %2 ontvangen. + Required cardinality is %1; got cardinality %2. + Het vereiste hoofdtelwoord is %1 maar kreeg %2. - When casting to %1 or types derived from it, the source value must be of the same type, or it must be a string literal. Type %2 is not allowed. - Bij het overgaan van %1 of soorten daaraan afgeleidt, moet de bronwaarde van hetzelfde soort zijn of moet het een literal reeks zijn. Soort %2 is niet toegestaan. + The item %1 did not match the required type %2. + Het item %1 komt niet overeen met het vereiste type %2. - A comment cannot contain %1 - Een commentaar kan geen %1 bevatten + %1 is an unknown schema type. + %1 is een onbekend schematype. - A comment cannot end with a %1. - Een commentaar kan niet op %1 eindigen. + Only one %1 declaration can occur in the query prolog. + Maar één %1 declaratie kan voorkomen in de inleiding van een zoekopdracht. - An attribute node cannot be a child of a document node. Therefore, the attribute %1 is out of place. - Een attribuut node kan geen kind zijn van een document node. Daarom is het attribuut %1 niet op zijn plaats. + The initialization of variable %1 depends on itself + De initialisering van variabele %1 hangt van zichzelf af - A library module cannot be evaluated directly. It must be imported from a main module. - Een bibliotheek module kan niet direct geëvalueerd worden. Deze moet via een hoofd module geïmporteerd worden. + No variable by name %1 exists + Een variabele met naam %1 bestaat niet - A value of type %1 cannot be a predicate. A predicate must have either a numeric type or an Effective Boolean Value type. - Een waarde van het soort %1 kan geen gezegde zijn. Een gezegde moet of een numerieke soort of een effectieve booleanse waarde soort hebben. + The variable %1 is unused + De variabele %1 wordt niet gebruikt - A positional predicate must evaluate to a single numeric value. - Een positioneel gezegde moet evalueren naar een enkele numerieke waarde. + Version %1 is not supported. The supported XQuery version is 1.0. + Versie %1 wordt niet ondersteund. De ondersteunde XQuery-versie is 1.0. - %1 is not a valid target name in a processing instruction. It must be a %2 value, e.g. %3. - %1 is geen geldige doelnaam in een proces instructie. Deze moet %2 waarde zijn, bijvoorbeeld %3. + The encoding %1 is invalid. It must contain Latin characters only, must not contain whitespace, and must match the regular expression %2. + RL - Latin is karaktertype + De codering %1 is ongeldig. Deze mag alleen Latin tekens bevatten, geen witruimte en moet overeenkomen met de reguliere expressie %2. - The last step in a path must contain either nodes or atomic values. It cannot be a mixture between the two. - De laatste stap in een pad moet of nodes of zeer kleine waarden bevatten. En combinatie van de twee kan niet. + No function with signature %1 is available + Geen functie beschikbaar met handtekening %1 - No namespace binding exists for the prefix %1 - Een naamruimte binding bestaat niet voor het voorvoegsel %1 + A default namespace declaration must occur before function, variable, and option declarations. + Een standaard naamruimte declaratie moet aanwezig zijn vóór functie, variabele en optie-declaraties. - No namespace binding exists for the prefix %1 in %2 - Een naamruimte binding bestaat niet voor het voorvoegsel %1 in %2 + Namespace declarations must occur before function, variable, and option declarations. + Naamruimte declaraties moeten aanwezig zijn vóór functie, variabele en optie declaraties. - The first argument to %1 cannot be of type %2. It must be a numeric type, xs:yearMonthDuration or xs:dayTimeDuration. - Het eerste argument van %1 kan niet van het soort %2 zijn. Het moet numeriek, xs:jaarMaandDuur of xs:dagTijdDuur, zijn. + Module imports must occur before function, variable, and option declarations. + Module imports moeten aanwezig zijn vóór functie, variabele en optie declaraties. - The first argument to %1 cannot be of type %2. It must be of type %3, %4, or %5. - Het eerste argument van %1 kan niet van het soort %2 zijn. Het moet van het soort %3, %4 of %5 zijn. + It is not possible to redeclare prefix %1. + Het is niet mogelijk om prefix %1 opnieuw te declareren. - The second argument to %1 cannot be of type %2. It must be of type %3, %4, or %5. - Het tweede argument van %1 kan niet van het soort %2 zijn. Het moet van het soort %3, %4 of %5 zijn. + Only the prefix %1 can be declared to bind the namespace %2. By default, it is already bound to the prefix %1. + Alleen prefixl %1 kan gedeclareerd worden om te binden met naamruimte %2. Standaard is deze al gebonden met prefix %1. - If both values have zone offsets, they must have the same zone offset. %1 and %2 are not the same. - Hebben beide waarden zone uitlopers, dan moeten ze dezelfde zone uitloper hebben. %1 en %2 zijn niet hetzelfde. + Prefix %1 is already declared in the prolog. + Prefix %1 is al gedeclareerd in de inleiding. - %1 must be followed by %2 or %3, not at the end of the replacement string. - %1 moet gevolgd worden door %2 of %3; maar niet aan het einde van een vervangende reeks. + The name of an option must have a prefix. There is no default namespace for options. + De naam van een optie moet een prefix hebben. Er bestaat geen standaardnaamruimte voor opties. - %1 and %2 match the start and end of a line. - %1 en %2 komen aan het begin en het einde van de regel overeen. + The Schema Import feature is not supported, and therefore %1 declarations cannot occur. + De faciliteit Schema Import wordt niet ondersteund en daarom kunnen declaraties %1 niet voorkomen. - Whitespace characters are removed, except when they appear in character classes - Witruimte tekens zijn verplaatst, behalve wanneer deze voorkomen in teken klassen + The target namespace of a %1 cannot be empty. + De doelnaamruimte van een %1 kan niet leeg zijn. - %1 is an invalid flag for regular expressions. Valid flags are: - %1 is een ongeldige vlag voor een reguliere expressie. Geldige vlaggen zijn: + The module import feature is not supported + De import-module faciliteit wordt niet ondersteund - If the first argument is the empty sequence or a zero-length string (no namespace), a prefix cannot be specified. Prefix %1 was specified. - Is het eerste argument lege volgorde of een reeks met lengte nul (geen naamruimte), dan kan geen voorvoegsel worden gespecificeerd. Voorvoegsel %1 is gespecificeerd. + A variable by name %1 has already been declared in the prolog. + Een variabele met de naam %1 is al gedeclareerd in de inleiding. - The normalization form %1 is unsupported. The supported forms are %2, %3, %4, and %5, and none, i.e. the empty string (no normalization). - De normalisatie vorm %1 wordt niet ondersteund. De ondersteunde vormen zijn %2, %3, %4, %5 ,en "geen", dus de lege reeks (geen normalisatie). + No value is available for the external variable by name %1. + Voor de externe variabele met de naam %1 is geen waarde beschikbaar. - A zone offset must be in the range %1..%2 inclusive. %3 is out of range. - Een zone uitloper moet binnen de reeks %1..%2 (inklusief) vallen. %3 valt buiten het bereik. + The namespace %1 is reserved; therefore user defined functions may not use it. Try the predefined prefix %2, which exists for these cases. + De naamruimte %1 is gereserveerd. Daarom mogen eigen gedefineerde functies deze niet gebruiken. Probeer het voorgedefinieerde prefix %2, dat al bestaat voor dit soort gevallen. - Required cardinality is %1; got cardinality %2. - Het vereiste hoofdtelwoord is %1 maar kreeg %2. + The namespace of a user defined function in a library module must be equivalent to the module namespace. In other words, it should be %1 instead of %2 + De naamruimte van een zelf gedefinieerde functie in een bibliotheek module moet overeenkomen met de module naamruimte. Met andere woorden: het zou %1 moeten zijn in plaats van %2 - The encoding %1 is invalid. It must contain Latin characters only, must not contain whitespace, and must match the regular expression %2. - De codering %1 is ongeldig. Deze mag alleen latijnse tekens bevatten, geen witruimte en moet overeenkomen met de reguliere expressie %2. + A function already exists with the signature %1. + Een functie met handtekening %1 bestaat al. - Only the prefix %1 can be declared to bind the namespace %2. By default, it is already bound to the prefix %1. - Alleen voorvoegsel %1 kan gedeclareerd worden om te binden met naamruimte %2. Standaard is deze al gebonden met voorvoegsel %1. + No external functions are supported. All supported functions can be used directly, without first declaring them as external + Externe functies worden niet ondersteund. Alle ondersteunde functies kunnen direct worden gebruikt zonder deze als extern te declareren - The namespace %1 is reserved; therefore user defined functions may not use it. Try the predefined prefix %2, which exists for these cases. - De naamruimte %1 is gereserveerd. Daarom kunnen eigen gedefineerde functies niet worden gebruikt. Probeer het voorgedefinieerde voorvoegsel %2) deze bestaat voor dit soort gevallen. + An argument by name %1 has already been declared. Every argument name must be unique. + Een argument met de naam %1 is al gedeclareerd. Elke naam van een argument moet uniek zijn. The name of a variable bound in a for-expression must be different from the positional variable. Hence, the two variables named %1 collide. - De naam van de variabele, gebonden in een "for" expressie moet verschillen van de positionele variabele. Daarom botsen de twee variabelen genaamd %1. + De naam van de variabele gebonden in een "for" expressie moet verschillen van de positionele variabele. Daarom botsen de twee variabelen genaamd %1. The Schema Validation Feature is not supported. Hence, %1-expressions may not be used. - Het kenmerk "schema validatie" wordt niet ondersteund. Daarom mogen %1 expressies niet worden gebruikt. + Schema Validatie faciliteit wordt niet ondersteund. Daarom mogen %1 expressies niet worden gebruikt. None of the pragma expressions are supported. Therefore, a fallback expression must be present - Geen van de pragmatische expressies worden ondersteund. Daarom moet een terugval expressie aanwezig zijn + Geen van de pragmatische expressies wordt ondersteund. Daarom moet een terugval expressie aanwezig zijn - %1 is not a valid numeric literal. - %1 is geen geldige numerike literal. + The %1-axis is unsupported in XQuery + De %1 as wordt niet ondersteund in een XQuery - Namespace %1 can only be bound to %2 (and it is, in either case, pre-declared). - Naamruimte %1 kan alleen gebonden worden aan %2 (en is in elk geval voorgedeclareerd). + %1 is not a valid numeric literal. + %1 is geen geldige numerieke literaal. - Prefix %1 can only be bound to %2 (and it is, in either case, pre-declared). - Voorvoegsel %1 kan alleen gebonden worden aan %2 (en is in elk geval voorgedeclareerd). + No function by name %1 is available. + Een functie met naam %1 is niet beschikbaar. - A direct element constructor is not well-formed. %1 is ended with %2. - Een directe element constructor is niet goed gevormeerd. %1 eindigt met %2. + The namespace URI cannot be the empty string when binding to a prefix, %1. + De naamruimte URI kan niet een lege reeks zijn als deze gebonden wordt aan een prefix, %1. - The name %1 does not refer to any schema type. - De naam %1 heeft verwijst niet naar enig soort schema. + %1 is an invalid namespace URI. + %1 is een ongeldige naamruimte URI. - %1 is an complex type. Casting to complex types is not possible. However, casting to atomic types such as %2 works. - %1 is een complex soort. Overgaan naar een complex soort is niet mogelijk. Hoewel overgaan van zeer kleine soorten zoals %2 werkt. + It is not possible to bind to the prefix %1 + Het is niet mogelijk om prefix %1 opnieuw te binden - %1 is not an atomic type. Casting is only possible to atomic types. - %1 is geen zeer kleine soort. Overgaan is alleen mogeijk naar zeer kleine soorten. + Namespace %1 can only be bound to %2 (and it is, in either case, pre-declared). + Naamruimte %1 kan alleen gebonden worden aan %2 (en is in elk geval voorgedeclareerd). - The name of an extension expression must be in a namespace. - De naam van een aanvullende expressie moet in de naamruimte aanwezig zijn. + Prefix %1 can only be bound to %2 (and it is, in either case, pre-declared). + Prefix %1 kan alleen gebonden worden aan %2 (en is in elk geval voorgedeclareerd). - Required type is %1, but %2 was found. - Het vereiste soort is %1 maar %2 is gevonden. + Two namespace declaration attributes have the same name: %1. + Twee attributen voor een naamruimtedeclaratie hebben dezelfde naam: %1. - Promoting %1 to %2 may cause loss of precision. - Het opwaarderen van %1 maar %2 kan verlies van de nauwkeurigheid veroorzaken. + The namespace URI must be a constant and cannot use enclosed expressions. + Een naamruimte URI moet een constante zijn en kan geen ingesloten expressie zijn. - It's not possible to add attributes after any other kind of node. - Het is niet mogelijk om attributen toe te voegen na enig ander soort node. + An attribute by name %1 has already appeared on this element. + Een attribuut met de naam %1 is al voorgekomen op dit element. - Only the Unicode Codepoint Collation is supported(%1). %2 is unsupported. - Alleen de Unicode codepunt samenwerking wordt ondersteund (%1). %2 wordt niet ondersteund. + A direct element constructor is not well-formed. %1 is ended with %2. + Een direct element constructor is niet goed opgezet. %1 eindigt met %2. - An %1-attribute with value %2 has already been declared. - Een %1 attribuut met de waarde %2 is al gedeclareerd. + The name %1 does not refer to any schema type. + De naam %1 verwijst naar geen enkel schematype. - An %1-attribute must have a valid %2 as value, which %3 isn't. - Een %1 attribuut moest een geldige %2 als waarde hebben en dat is niet %3. + %1 is an complex type. Casting to complex types is not possible. However, casting to atomic types such as %2 works. + RL - een attribuut is atomair indien het maar één enkele waarde kan bevatten + %1 is een complex type. Overgaan naar complexe typen is niet mogelijk. Echter, omzetten naar atomaire typen zoals %2 werkt. - The first operand in an integer division, %1, cannot be infinity (%2). - De eerste operand in een deling met gehele getallen, %1, kan niet oneindig zijn (%2). + %1 is not an atomic type. Casting is only possible to atomic types. + RL - een attribuut is atomair indien het maar één enkele waarde kan bevatten + %1 is geen atomair type. Overgaan is alleen mogeijk naar atomaire typen. - The second operand in a division, %1, cannot be zero (%2). - De tweede operand in een deling, %1 kan niet null zijn (%2). + %1 is not a valid name for a processing-instruction. Therefore this name test will never match. + %1 is geen geldige naam voor een procesinstructie. Daarom zal deze naamtest nooit werken. - Integer division (%1) by zero (%2) is undefined. - De deling met gehele getallen (%1) door nul (%2) is niet gedefinieerd. + %1 is not in the in-scope attribute declarations. Note that the schema import feature is not supported. + %1 valt niet in het bereik van de attribuutdeclaraties. Weet dat schema-import faciliteit niet wordt ondersteund. - Division (%1) by zero (%2) is undefined. - De deling (%1) door nul (%2) is niet gedefinieerd. + The name of an extension expression must be in a namespace. + De naam van een aanvullende expressie moet in een naamruimte staan. - Modulus division (%1) by zero (%2) is undefined. - De modulo deling (%1) door nul (%2) is niet gedefinieerd. + empty + leeg - No casting is possible with %1 as the target type. - Een overgang is niet mogelijk met %1 als doel soort. + zero or one + nul of één - The target name in a processing instruction cannot be %1 in any combination of upper and lower case. Therefore, is %2 invalid. - De doelnaam, in een proces instructie, kan geen %1 zijn, in enige combinatie van hoofd- of kleine letters. Daarom is %2 ongeldig. + exactly one + precies één - - %1 takes at most %n argument(s). %2 is therefore invalid. - - %1 heeft ten hoogste %n argument(en). %2 is daarom ongeldig. - %1 heeft ten hoogste %n argument(en). %2 is daarom ongeldig. - + + one or more + één of meer - - %1 requires at least %n argument(s). %2 is therefore invalid. - - %1 vereist tenminste %n argument(en) %2 is daarom ongeldig. - %1 vereist tenminste %n argument(en) %2 is daarom ongeldig. - + + zero or more + nul of meer - The root node of the second argument to function %1 must be a document node. %2 is not a document node. - De wortel node van het tweede argument voor functie %1 moet een document node zijn. %2 is geen document node. + Required type is %1, but %2 was found. + Het vereiste type is %1 maar %2 is gevonden. - The namespace for a user defined function cannot be empty (try the predefined prefix %1 which exists for cases like this) - De naamruimte for een eige gedefinieerde functie kan niet leeg zijn (probeer een voorgedefinieerd voorvoegsel %1 die voor dit soort zaken bestaat) + Promoting %1 to %2 may cause loss of precision. + Het opwaarderen van %1 maar %2 kan verlies van nauwkeurigheid tot gevolg hebben. - A default namespace declaration must occur before function, variable, and option declarations. - Een standaard naamruimte declaratie moet bestaan voor een functie, variabele en optie declaraties. + The focus is undefined. + De focus in niet gedefinieerd. - Namespace declarations must occur before function, variable, and option declarations. - Naamruimte declaaraties moet voorkomen voor functie, variabele en optie declaraties. + It's not possible to add attributes after any other kind of node. + Het is niet mogelijk om attributen toe te voegen na enig ander soort node. - Module imports must occur before function, variable, and option declarations. - Module import moet voorkomen voor functie, variabele en optie declaraties. + An attribute by name %1 has already been created. + Een attribuut met de naam %1 is al aangemaakt. - %1 is not a whole number of minutes. - %1 is geen geheel getal voor minuten. + Only the Unicode Codepoint Collation is supported(%1). %2 is unsupported. + RL - Unicode Codepoint Collation niet vertalen + Alleen Unicode Codepoint Collation wordt ondersteund (%1). %2 wordt niet ondersteund. Attribute %1 can't be serialized because it appears at the top level. - Attribuut %1 kan niet geserialiseerd worden omdat deze op het hoogste niveau voortkomt. + Attribuut %1 kan niet geserialiseerd worden omdat deze op het hoogste niveau optreedt. + + + The namespace for a user defined function cannot be empty (try the predefined prefix %1 which exists for cases like this) + De naamruimte for een eigen gedefinieerde functie kan niet leeg zijn (probeer een voorgedefinieerd prefix %1 dat voor dit soort gevallen bestaat) VolumeSlider Muted - Gedemp + Gedempd Volume: %1% @@ -5295,7 +5340,7 @@ Top - boven + Boven Right edge diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Frontends/VirtualBox/nls/VirtualBox_ar.ts virtualbox-4.1.44-dfsg/src/VBox/Frontends/VirtualBox/nls/VirtualBox_ar.ts --- virtualbox-4.1.12-dfsg/src/VBox/Frontends/VirtualBox/nls/VirtualBox_ar.ts 2012-04-02 13:28:40.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Frontends/VirtualBox/nls/VirtualBox_ar.ts 2015-11-11 15:08:27.000000000 +0000 @@ -4414,12 +4414,6 @@ Failed to detach the floppy device (<nobr><b>%1</b></nobr>) from the slot <i>%2</i> of the machine <b>%3</b>. - - <p>The virtual machine(s) <b>%1</b> are currently in a saved state.</p><p>If you continue the runtime state of the exported machine(s) will be discarded. Note that the existing machine(s) are not changed.</p> - - - - Failed to update Guest Additions. The Guest Additions installation image will be mounted to provide a manual installation. @@ -4648,6 +4642,17 @@ extension pack + + <p>Failed to initialize COM because the VirtualBox global configuration directory <b><nobr>%1</nobr></b> is not accessible. Please check the permissions of this directory and of its parent directory.</p><p>The application will now terminate.</p> + + + + <p>The %n following virtual machine(s) are currently in a saved state: <b>%1</b></p><p>If you continue the runtime state of the exported machine(s) will be discarded. The other machine(s) will not be changed.</p> + This text is never used with n == 0. Feel free to drop the %n where possible, we only included it because of problems with Qt Linguist (but the user can see how many machines are in the list and doesn't need to be told). + + + + UIMiniProcessWidgetAdditions @@ -6905,10 +6910,6 @@ - and - - - MB size suffix MBytes=1024KBytes diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Frontends/VirtualBox/nls/VirtualBox_bg.ts virtualbox-4.1.44-dfsg/src/VBox/Frontends/VirtualBox/nls/VirtualBox_bg.ts --- virtualbox-4.1.12-dfsg/src/VBox/Frontends/VirtualBox/nls/VirtualBox_bg.ts 2012-04-02 13:28:40.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Frontends/VirtualBox/nls/VirtualBox_bg.ts 2015-11-11 15:08:27.000000000 +0000 @@ -5548,8 +5548,8 @@ <p>Виртуалните Добавки на VirtualBox за тази виртуална машина изглежда не са достъпни, а споделените папки не могат да се използват без тях. За да използвате споделени папки във виртуалната машина, моля, инсталирайте Виртуалните Добавки, ако не са инсталирани, или ги преинсталирайте, ако не работят правилно, като изберете <b>Инсталиране на Виртуални Добавки</b> от менюто <b>Машина</b>. Ако те са инсталирани, но машината все още не е заредила напълно, споделените папки ще станат достъпни, когато машината зареди.</p> - <p>The virtual machine(s) <b>%1</b> are currently in a saved state.</p><p>If you continue the runtime state of the exported machine(s) will be discarded. Note that the existing machine(s) are not changed.</p> - + <p>The %n following virtual machine(s) are currently in a saved state: <b>%1</b></p><p>If you continue the runtime state of the exported machine(s) will be discarded. The other machine(s) will not be changed.</p> + <p>Виртуалната машина <b>%1</b> текущо е в запомнено състояние.</p><p>Ако продължите, текущото състояние на изнесената машина ще бъде отхвърлено. Имайте предвид, че съществуващата машина не е променена.</p> <p>Виртуалните машини <b>%1</b> текущо са в запомнено състояние.</p><p>Ако продължите, текущото състояние на изнесените машини ще бъде отхвърлено. Имайте предвид, че съществуващите машини не са променени.</p> @@ -5794,6 +5794,18 @@ extension pack + + <p>Failed to initialize COM because the VirtualBox global configuration directory <b><nobr>%1</nobr></b> is not accessible. Please check the permissions of this directory and of its parent directory.</p><p>The application will now terminate.</p> + + + + <p>The %n following virtual machine(s) are currently in a saved state: <b>%1</b></p><p>If you continue the runtime state of the exported machine(s) will be discarded. The other machine(s) will not be changed.</p> + This text is never used with n == 0. Feel free to drop the %n where possible, we only included it because of problems with Qt Linguist (but the user can see how many machines are in the list and doesn't need to be told). + + <p>Виртуалната машина <b>%1</b> текущо е в запомнено състояние.</p><p>Ако продължите, текущото състояние на изнесената машина ще бъде отхвърлено. Имайте предвид, че съществуващата машина не е променена.</p> + <p>Виртуалните машини <b>%1</b> текущо са в запомнено състояние.</p><p>Ако продължите, текущото състояние на изнесените машини ще бъде отхвърлено. Имайте предвид, че съществуващите машини не са променени.</p> + + UIMiniProcessWidgetAdditions @@ -9092,7 +9104,7 @@ and - и + и MB diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Frontends/VirtualBox/nls/VirtualBox_ca.ts virtualbox-4.1.44-dfsg/src/VBox/Frontends/VirtualBox/nls/VirtualBox_ca.ts --- virtualbox-4.1.12-dfsg/src/VBox/Frontends/VirtualBox/nls/VirtualBox_ca.ts 2012-04-02 13:28:40.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Frontends/VirtualBox/nls/VirtualBox_ca.ts 2015-11-11 15:08:27.000000000 +0000 @@ -6000,8 +6000,8 @@ <p>Sembla que les Guest Additions del VirtualBox no estan disponibles en aquesta màquina i les carpetes compartides no es poden fer servir sense elles. Per fer servir carpetes compartides a la màquina virtual, instal·leu les Guest Additions si no es troben instal·lades o torneu a instal·lar-les si no estan funcionant correctament seleccionant <b>Instal·la les Guest Additions</b> al menú <b>Màquina</b>. Si es troben instal·lades però la màquina no s'ha iniciat completament, aleshores estaran disponibles una vegada estigui iniciada.</p> - <p>The virtual machine(s) <b>%1</b> are currently in a saved state.</p><p>If you continue the runtime state of the exported machine(s) will be discarded. Note that the existing machine(s) are not changed.</p> - + <p>The %n following virtual machine(s) are currently in a saved state: <b>%1</b></p><p>If you continue the runtime state of the exported machine(s) will be discarded. The other machine(s) will not be changed.</p> + <p>La màquina virtual <b>%1</b> es troba en un estat desat.</p><p>Si continueu, es descartarà l'estat en temps d'execució de la màquina virtual exportada. Tingueu en compte que la màquina existent no canviarà.</p> <p>Les màquines virtuals <b>%1</b> es troben en un estat desat.</p><p>Si continueu, es descartaran els estat en temps d'execució de les màquines virtuals exportades. Tingueu en compte que les màquines existents no canviaran.</p> <p>Les màquines virtuals <b>%1</b> es troben en un estat desat.</p><p>Si continueu, es descartaran els estat en temps d'execució de les màquines virtuals exportades. Tingueu en compte que les màquines existents no canviaran.</p> @@ -6247,6 +6247,19 @@ extension pack + + <p>Failed to initialize COM because the VirtualBox global configuration directory <b><nobr>%1</nobr></b> is not accessible. Please check the permissions of this directory and of its parent directory.</p><p>The application will now terminate.</p> + + + + <p>The %n following virtual machine(s) are currently in a saved state: <b>%1</b></p><p>If you continue the runtime state of the exported machine(s) will be discarded. The other machine(s) will not be changed.</p> + This text is never used with n == 0. Feel free to drop the %n where possible, we only included it because of problems with Qt Linguist (but the user can see how many machines are in the list and doesn't need to be told). + + <p>La màquina virtual <b>%1</b> es troba en un estat desat.</p><p>Si continueu, es descartarà l'estat en temps d'execució de la màquina virtual exportada. Tingueu en compte que la màquina existent no canviarà.</p> + <p>Les màquines virtuals <b>%1</b> es troben en un estat desat.</p><p>Si continueu, es descartaran els estat en temps d'execució de les màquines virtuals exportades. Tingueu en compte que les màquines existents no canviaran.</p> + <p>Les màquines virtuals <b>%1</b> es troben en un estat desat.</p><p>Si continueu, es descartaran els estat en temps d'execució de les màquines virtuals exportades. Tingueu en compte que les màquines existents no canviaran.</p> + + UIMiniProcessWidgetAdditions @@ -10414,7 +10427,7 @@ and - i + i MB diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Frontends/VirtualBox/nls/VirtualBox_ca_VA.ts virtualbox-4.1.44-dfsg/src/VBox/Frontends/VirtualBox/nls/VirtualBox_ca_VA.ts --- virtualbox-4.1.12-dfsg/src/VBox/Frontends/VirtualBox/nls/VirtualBox_ca_VA.ts 2012-04-02 13:28:40.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Frontends/VirtualBox/nls/VirtualBox_ca_VA.ts 2015-11-11 15:08:27.000000000 +0000 @@ -6000,8 +6000,8 @@ <p>Pareix que les Guest Additions del VirtualBox no estan disponibles en esta màquina i les carpetes compartides no es poden fer servir sense elles. Per fer servir carpetes compartides a la màquina virtual, instal·leu les Guest Additions si no es troben instal·lades o torneu a instal·lar-les si no estan funcionant correctament seleccionant <b>Instal·la les Guest Additions</b> al menú <b>Màquina</b>. Si es troben instal·lades però la màquina no s'ha iniciat completament, aleshores estaran disponibles una vegada estiga iniciada.</p> - <p>The virtual machine(s) <b>%1</b> are currently in a saved state.</p><p>If you continue the runtime state of the exported machine(s) will be discarded. Note that the existing machine(s) are not changed.</p> - + <p>The %n following virtual machine(s) are currently in a saved state: <b>%1</b></p><p>If you continue the runtime state of the exported machine(s) will be discarded. The other machine(s) will not be changed.</p> + <p>La màquina virtual <b>%1</b> es troba en un estat alçat.</p><p>Si continueu, es descartarà l'estat en temps d'execució de la màquina virtual exportada. Tingueu en compte que la màquina existent no canviarà.</p> <p>Les màquines virtuals <b>%1</b> es troben en un estat alçat.</p><p>Si continueu, es descartaran els estat en temps d'execució de les màquines virtuals exportades. Tingueu en compte que les màquines existents no canviaran.</p> <p>Les màquines virtuals <b>%1</b> es troben en un estat alçat.</p><p>Si continueu, es descartaran els estat en temps d'execució de les màquines virtuals exportades. Tingueu en compte que les màquines existents no canviaran.</p> @@ -6247,6 +6247,19 @@ extension pack + + <p>Failed to initialize COM because the VirtualBox global configuration directory <b><nobr>%1</nobr></b> is not accessible. Please check the permissions of this directory and of its parent directory.</p><p>The application will now terminate.</p> + + + + <p>The %n following virtual machine(s) are currently in a saved state: <b>%1</b></p><p>If you continue the runtime state of the exported machine(s) will be discarded. The other machine(s) will not be changed.</p> + This text is never used with n == 0. Feel free to drop the %n where possible, we only included it because of problems with Qt Linguist (but the user can see how many machines are in the list and doesn't need to be told). + + <p>La màquina virtual <b>%1</b> es troba en un estat alçat.</p><p>Si continueu, es descartarà l'estat en temps d'execució de la màquina virtual exportada. Tingueu en compte que la màquina existent no canviarà.</p> + <p>Les màquines virtuals <b>%1</b> es troben en un estat alçat.</p><p>Si continueu, es descartaran els estat en temps d'execució de les màquines virtuals exportades. Tingueu en compte que les màquines existents no canviaran.</p> + <p>Les màquines virtuals <b>%1</b> es troben en un estat alçat.</p><p>Si continueu, es descartaran els estat en temps d'execució de les màquines virtuals exportades. Tingueu en compte que les màquines existents no canviaran.</p> + + UIMiniProcessWidgetAdditions @@ -10410,7 +10423,7 @@ and - i + i MB diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Frontends/VirtualBox/nls/VirtualBox_cs.ts virtualbox-4.1.44-dfsg/src/VBox/Frontends/VirtualBox/nls/VirtualBox_cs.ts --- virtualbox-4.1.12-dfsg/src/VBox/Frontends/VirtualBox/nls/VirtualBox_cs.ts 2012-04-02 13:28:40.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Frontends/VirtualBox/nls/VirtualBox_cs.ts 2015-11-11 15:08:28.000000000 +0000 @@ -185,11 +185,11 @@ QIHttp Connection timed out - Spojení vypršelo + Spojení vypršelo Could not locate the file on the server (response: %1) - Nelze najít soubor na serveru (odpověd: %1) + Nelze najít soubor na serveru (odpověd: %1) @@ -344,7 +344,7 @@ &Insert Ctrl-Alt-Backspace - Vlož&it Ctrl-Alt-Backspace + Vlož&it Ctrl-Alt-Backspace Send the Ctrl-Alt-Backspace sequence to the virtual machine @@ -352,7 +352,7 @@ Take &Snapshot... - Sejmout &snímek... + Sejmout &snímek... Take a snapshot of the virtual machine @@ -550,6 +550,213 @@ Session I&nformation... &Informace o sezení... + + &Preferences... + global settings + &Předvolby... + + + Display the global settings dialog + Zobrazí globalní nastavení + + + E&xit + U&končit + + + Close application + Zavře aplikaci + + + &New... + &Nový... + + + New + Nový + + + Discard + Zahodit + + + Discard the saved state of the selected virtual machine + Zruší uložený stav vybraného virtuálního počítače + + + Refresh the accessibility state of the selected virtual machine + Obnoví stav dostupnosti vybraného virtuálního počítače + + + S&how + &Zobrazit + + + Switch to the window of the selected virtual machine + Přepne do okna virtuálního počítače + + + S&tart + &Spustit + + + Start the selected virtual machine + Spustí vybraný virtuální počítač + + + Show &Log... + Zobrazit &záznam... + + + Show the log files of the selected virtual machine + Zobrazí soubory se záznamy vybraného virtuálního počítače + + + &Import Appliance... + &Importovat applianci... + + + Import an appliance into VirtualBox + Importuje applianci do aplikace VirtualBox + + + &Export Appliance... + &Exportovat applianci... + + + Export one or more VirtualBox virtual machines as an appliance + Exportuje applianci virtálních počítačů z aplikace VirtualBox + + + Re&fresh + &Aktualizovat + + + &Virtual Media Manager... + Správce virtuálních &medií... + + + Display the Virtual Media Manager dialog + Zobrazí dialog Správce virtuálních médií + + + &File + Mac OS X version + &Soubor + + + &File + Non Mac OS X version + &Soubor + + + &Add... + &Přidat... + + + Add an existing virtual machine + Přidá existující virtuální počítač + + + &Remove + &Odstranit + + + Remove the selected virtual machine + Odstraní vybraný virtuální počítač + + + Show in Finder + Zobrazit ve Finderu + + + Show the VirtualBox Machine Definition file in Finder. + Zobrazí konfigurační soubory virtuálního počítače ve Finderu. + + + Create Alias on Desktop + Vytvořit alias na ploše + + + Creates an Alias file to the VirtualBox Machine Definition file on your Desktop. + Vytvoří alias pro definici virtuálního počítače na vaší ploše. + + + Show in Explorer + Zobrazit v průzkumníkovi + + + Show the VirtualBox Machine Definition file in Explorer. + Zobrazí definici pro virtuální počítač v průzkumníkovi. + + + Create Shortcut on Desktop + Vytvořit zástupce na ploše + + + Creates an Shortcut file to the VirtualBox Machine Definition file on your Desktop. + Pro konfigurační soubory virtuálního počítače.vytvoří zástupce na pracovní ploše. + + + Show in File Manager + Zobrazit se správci souborů + + + Show the VirtualBox Machine Definition file in the File Manager + Zobrazí konfigurační soubor pro virtuální počítač ve správci souborů + + + Cl&one... + &Klonovat... + + + Clone the selected virtual machine + Naklonuje vybraný virtuální počítač + + + D&iscard Saved State + &Zahodit uložený stav + + + Create a new virtual machine + Vytvoří nový virtuální počítač + + + Take Sn&apshot... + Sejmout &snímek... + + + Take Screensh&ot... + Sejmout ob&razovku... + + + Take a screenshot of the virtual machine + Sejme obrazovku virtuálního počítače + + + Ins&ert Ctrl-Alt-Backspace + Vlož&it Ctrl-Alt-Backspace + + + Sort List + Setřídit seznam + + + Sort the VM list alphabetically (Shift for descending order) + Setřídí seznam virtuálních strojů podle abecedy (Shift klávesa pro sestupný seznam) + + + &Close + &Zavřít + + + Po&wer Off + &Vypnout + + + Power off the virtual machine + Ukončí činnost virtuálního počítače + UIApplianceEditorWidget @@ -725,85 +932,317 @@ Vítejte v průvodci klonováním virtuálního počítače - %1 Clone - Klon %1 + %1 Clone + Klon %1 + + + When checked a new unique MAC address will be assigned to all configured network cards. + Je-li zatrženo, bude všem nastavovaným síťovým kartám přidělena nová unikátní MAC adresa. + + + + UICloneVMWizardPage2 + + Cloning Configuration + Konfigurace pro klonování + + + Full Clone + Plný klon + + + Linked Clone + Propojený klon + + + <p>Please select the type of the clone.</p><p>If you choose <b>Full Clone</b> an exact copy (including all virtual disk images) of the original VM will be created. If you select <b>Linked Clone</b>, a new VM will be created, but the virtual disk images will point to the virtual disk images of original VM.</p> + <p>Vyberte prosím typ klonu.</p><p>Pokud vyberete <b>Plný klon</b> bude vytvořena plná kopie (včetně všech virtuálních disků) originálního virtuálního počítače. Pokud vyberete <b>Propojený klon</b> bude vytvořen nový virtuální počítač, ale virtuální pevné disky budou odkazovat na virtuální disky původního virtuálního počítače.</p> + + + <p>Note that a new snapshot within the source VM is created in case you select <b>Linked Clone</b>.</p> + <p>Pamatujte, že po volbě <b>Projený klon</b> bude vytvořen nový snímek ze zdroje virtuálního počítače.</p> + + + + UICloneVMWizardPage3 + + Current machine state + Aktuální stav počítače + + + Current machine and all child states + Aktuální stav počítae včetně všech odvozených stavů + + + All states + Všechny stavy + + + Cloning Configuration + Konfigurace klonu + + + Please choose which parts of the virtual machine should be cloned. + Zvolte prosím která část virtuálního počítače bude klonována. + + + If you select <b>Current machine state</b>, only the current state of the virtual machine is cloned. + Pokud zvolíte <b>Aktuální stav počítače</b>, bude klonován pouze aktuální stav počítače. + + + If you select <b>Current machine and all child states</b> the current state of the virtual machine and any states of child snapshots are cloned. + Pokud zvolíte <b>Aktuální stav počítae včetně všech odvozených stavů</b> bude klonován aktuální stav počítače včetně všech stavů odvozených snímků. + + + If you select <b>All states</b>, the current machine state and all snapshots are cloned. + Pokud zvolíte <b>Všechny stavy</b>, bude klonován aktuální stav včetně všech snímků. + + + + UIDescriptionPagePrivate + + No description. Press the Edit button below to add it. + Bez popisu. Stiskněte tlačítko Upravit pro přidání. + + + Edit + Upravit + + + Edit (Ctrl+E) + Upravit (Ctrl+E) + + + + UIDetailsBlock + + Name + details report + Název + + + OS Type + details report + Typ OS + + + Information inaccessible + details report + Informace je nedostupná + + + Base Memory + details report + Operační paměť + + + <nobr>%1 MB</nobr> + details report + <nobr>%1 MB</nobr> + + + Processors + details report + Procesory + + + <nobr>%1</nobr> + details report + <nobr>%1</nobr> + + + Execution Cap + details report + Omezení procesoru + + + <nobr>%1%</nobr> + details report + <nobr>%1%</nobr> + + + Boot Order + details report + Pořadí při bootování + + + ACPI + details report + ACPI + + + IO APIC + details report + IO APIC + + + BIOS + details report + BIOS + + + VT-x/AMD-V + details report + VT-x/AMD-V + + + Nested Paging + details report + Přímý přístup k hardware + + + PAE/NX + details report + PAE/NX + + + Acceleration + details report + Akcelerace + + + Video Memory + details report + Video paměť + + + Screens + details report + Obrazovky + + + 2D Video + details report + 2D Video + + + 3D + details report + 3D + + + Remote Desktop Server Port + details report (VRDE Server) + Port vzdáleného serveru + + + Remote Desktop Server + details report (VRDE Server) + Vzdálený server + + + Disabled + details report (VRDE Server) + Zakázán + + + (CD/DVD) + (CD/DVD) + + + Not Attached + details report (Storage) + Nepřipojeno + + + Host Driver + details report (audio) + Ovladač hostitele + + + Controller + details report (audio) + Řadič + + + Disabled + details report (audio) + Zakázán - When checked a new unique MAC address will be assigned to all configured network cards. - Je-li zatrženo, bude všem nastavovaným síťovým kartám přidělena nová unikátní MAC adresa. + Bridged adapter, %1 + details report (network) + Karta použitá v síťovém mostu, %1 - - - UICloneVMWizardPage2 - Cloning Configuration - Konfigurace pro klonování + Internal network, '%1' + details report (network) + Interní síť, '%1' - Full Clone - Plný klon + Host-only adapter, '%1' + details report (network) + Síť pouze s hostem,'%1' - Linked Clone - Propojený klon + Generic driver, '%1' + details report (network) + Obecný ovladač, '%1' - <p>Please select the type of the clone.</p><p>If you choose <b>Full Clone</b> an exact copy (including all virtual disk images) of the original VM will be created. If you select <b>Linked Clone</b>, a new VM will be created, but the virtual disk images will point to the virtual disk images of original VM.</p> - <p>Vyberte prosím typ klonu.</p><p>Pokud vyberete <b>Plný klon</b> bude vytvořena plná kopie (včetně všech virtuálních disků) originálního virtuálního počítače. Pokud vyberete <b>Propojený klon</b> bude vytvořen nový virtuální počítač, ale virtuální pevné disky budou odkazovat na virtuální disky původního virtuálního počítače.</p> + Generic driver, '%1' {&nbsp;%2&nbsp;} + details report (network) + Obecný ovladač, '%1' {&nbsp;%2&nbsp;} - <p>Note that a new snapshot within the source VM is created in case you select <b>Linked Clone</b>.</p> - <p>Pamatujte, že po volbě <b>Projený klon</b> bude vytvořen nový snímek ze zdroje virtuálního počítače.</p> + Adapter %1 + details report (network) + Karta %1 - - - UICloneVMWizardPage3 - Current machine state - Aktuální stav počítače + Disabled + details report (network) + Zakázána - Current machine and all child states - Aktuální stav počítae včetně všech odvozených stavů + Port %1 + details report (serial ports) + Port %1 - All states - Všechny stavy + Disabled + details report (serial ports) + Zakázán - Cloning Configuration - Konfigurace klonu + Port %1 + details report (parallel ports) + Port %1 - Please choose which parts of the virtual machine should be cloned. - Zvolte prosím která část virtuálního počítače bude klonována. + Disabled + details report (parallel ports) + Zakázán - If you select <b>Current machine state</b>, only the current state of the virtual machine is cloned. - Pokud zvolíte <b>Aktuální stav počítače</b>, bude klonován pouze aktuální stav počítače. + Device Filters + details report (USB) + Filtry zařízení - If you select <b>Current machine and all child states</b> the current state of the virtual machine and any states of child snapshots are cloned. - Pokud zvolíte <b>Aktuální stav počítae včetně všech odvozených stavů</b> bude klonován aktuální stav počítače včetně všech stavů odvozených snímků. + %1 (%2 active) + details report (USB) + %1 (%2 aktivní) - If you select <b>All states</b>, the current machine state and all snapshots are cloned. - Pokud zvolíte <b>Všechny stavy</b>, bude klonován aktuální stav včetně všech snímků. + Disabled + details report (USB) + Zakázáno - - - UIDescriptionPagePrivate - No description. Press the Edit button below to add it. - Bez popisu. Stiskněte tlačítko Upravit pro přidání. + Shared Folders + details report (shared folders) + Sdílené složky - Edit - Upravit + None + details report (shared folders) + Žádné - Edit (Ctrl+E) - Upravit (Ctrl+E) + None + details report (description) + Žádný @@ -811,146 +1250,146 @@ Name details report - Název + Název OS Type details report - Typ OS + Typ OS Base Memory details report - Operační paměť + Operační paměť <nobr>%1 MB</nobr> details report - <nobr>%1 MB</nobr> + <nobr>%1 MB</nobr> Processors details report - Procesory + Procesory <nobr>%1</nobr> details report - <nobr>%1</nobr> + <nobr>%1</nobr> Boot Order details report - Pořadí při bootování + Pořadí při bootování ACPI details report - ACPI + ACPI IO APIC details report - IO APIC + IO APIC BIOS details report - BIOS + BIOS VT-x/AMD-V details report - VT-x/AMD-V + VT-x/AMD-V Nested Paging details report - Přímý přístup k hardware + Přímý přístup k hardware PAE/NX details report - PAE/NX + PAE/NX Acceleration details report - Akcelerace + Akcelerace Video Memory details report - Video paměť + Video paměť Screens details report - Obrazovky + Obrazovky 2D Video details report - 2D Video + 2D Video 3D details report - 3D + 3D Remote Desktop Server Port details report (VRDE Server) - Port vzdáleného serveru + Port vzdáleného serveru Remote Desktop Server details report (VRDE Server) - Vzdálený server + Vzdálený server Disabled details report (VRDE Server) - Zakázán + Zakázán (CD/DVD) - CD/DVD + CD/DVD Not Attached details report (Storage) - Nepřipojena + Nepřipojena Host Driver details report (audio) - Ovladač hostitele + Ovladač hostitele Controller details report (audio) - Řadič + Řadič Disabled details report (audio) - Zakázán + Zakázán Bridged adapter, %1 details report (network) - Karta použitá v síťovém mostu, %1 + Karta použitá v síťovém mostu, %1 Internal network, '%1' details report (network) - Interní síť, '%1' + Interní síť, '%1' Host-only adapter, '%1' details report (network) - Síť pouze s hostem,'%1' + Síť pouze s hostem,'%1' VDE network, '%1' @@ -960,62 +1399,62 @@ Adapter %1 details report (network) - Karta %1 + Karta %1 Disabled details report (network) - Zakázána + Zakázána Port %1 details report (serial ports) - Port %1 + Port %1 Disabled details report (serial ports) - Zakázán + Zakázán Port %1 details report (parallel ports) - Port %1 + Port %1 Disabled details report (parallel ports) - Zakázán + Zakázán Device Filters details report (USB) - Filtry zařízení + Filtry zařízení %1 (%2 active) details report (USB) - %1 (%2 aktivní) + %1 (%2 aktivní) Disabled details report (USB) - Zakázány + Zakázány Shared Folders details report (shared folders) - Sdílené složky + Sdílené složky None details report (shared folders) - Žádné + Žádné None details report (description) - Žádný + Žádný The selected virtual machine is <i>inaccessible</i>. Please inspect the error message shown below and press the <b>Refresh</b> button if you want to repeat the accessibility check: @@ -1082,24 +1521,24 @@ Popis - Execution Cap - details report - Omezení procesoru - - <nobr>%1%</nobr> details report - <nobr>%1%</nobr> + <nobr>%1%</nobr> Generic driver, '%1' details report (network) - Obecný ovladač, '%1' + Obecný ovladač, '%1' Generic driver, '%1' {&nbsp;%2&nbsp;} details report (network) - Obecný ovladač, '%1' {&nbsp;%2&nbsp;} + Obecný ovladač, '%1' {&nbsp;%2&nbsp;} + + + Execution Cap + details report + Omezení procesoru @@ -1152,6 +1591,14 @@ The download process has been canceled by the user. Proces stahovaní byl zrušen uživatelem. + + Looking for %1... + Vyhledávám %1... + + + Downloading %1... + Stahuji %1... + UIDownloaderAdditions @@ -1175,6 +1622,10 @@ Select folder to save Guest Additions image to Vyberte složku pro uložení ISO obrazu Přídavků pro hosta + + VirtualBox Guest Additions + Přídavky pro hosta + UIDownloaderExtensionPack @@ -1182,6 +1633,10 @@ Select folder to save %1 to Vyberte složku pro uložení %1 + + VirtualBox Extension Pack + Balíčky s rozšířením pro VirtualBox + UIDownloaderUserManual @@ -1189,6 +1644,10 @@ Select folder to save User Manual to Zvolte složku pro uložení uživatelského manuálu + + VirtualBox User Manual + Uživatelský návod pro VirtualBox + UIExportApplianceWzd @@ -1734,6 +2193,56 @@ + UIGlobalSettingsDisplay + + Maximum Guest Screen &Size: + Ma&ximální velikost obrazovky hosta: + + + &Width: + Šíř&ka: + + + Specifies the maximum width which we would like the guest to use. + Určuje maximální šířku obrazovky, kterou bude možné host využívat. + + + &Height: + &Výška: + + + Specifies the maximum height which we would like the guest to use. + Určuje maximální výšku obrazovky, kterou bude možné host využívat. + + + Automatic + Maximum Guest Screen Size + Automaticky + + + Suggest a reasonable maximum screen size to the guest. The guest will only see this suggestion when guest additions are installed. + Doporučená rozumní maximální velikost okna pro hosta. Pokud budou nainstalovány přídavky pro hosta, host uvidí tuto doporučenou velikost. + + + None + Maximum Guest Screen Size + Žádná + + + Do not attempt to limit the size of the guest screen. + Velikost obrazovky pro hosta nebude omezena. + + + Hint + Maximum Guest Screen Size + Detekovat + + + Suggest a maximum screen size to the guest. The guest will only see this suggestion when guest additions are installed. + Doporučená maximální velikost okna pro hosta. Pokud budou nainstalovány přídavky pro hosta, host uvidí tuto doporučenou velikost. + + + UIGlobalSettingsExtension &Extension Packages: @@ -2657,6 +3166,10 @@ No supported devices connected to the host PC K hostitelskému PC není připojeno žádné podporované zařízení + + Select a filename for the screenshot ... + Vyberte soubor pro uložení snímku obrazovky... + UIMachineSettingsAudio @@ -2809,7 +3322,7 @@ you enabled 3D acceleration. However, 3D acceleration is not working on the current host setup so you will not be able to start the VM. - + povolili jsmte 3D akceleraci. Bohužel 3D akcelerace v aktuálním nastavení hosta nefunguje a nebude tak možné virtuální počítač spustit. @@ -5016,7 +5529,7 @@ <p>Failed to download the VirtualBox Guest Additions CD image from <nobr><a href="%1">%2</a>.</nobr></p><p>%3</p> - <p>Nepodařilo se stáhnout obraz CD Přídavků pro hosta VirtualBoxu z <nobr><a href="%1">%2</a>.</nobr></p><p>%3</p> + <p>Nepodařilo se stáhnout obraz CD Přídavků pro hosta VirtualBoxu z <nobr><a href="%1">%2</a>.</nobr></p><p>%3</p> <p>Are you sure you want to download the VirtualBox Guest Additions CD image from <nobr><a href="%1">%2</a></nobr> (size %3 bytes)?</p> @@ -5487,7 +6000,7 @@ <p>Unable to obtain the new version information due to the following error:</p><p><b>%1</b></p> - <p>Nelze získat informace o nové verzi z důvodu následující chyby: </p><p><b>%1</b></p> + <p>Nelze získat informace o nové verzi z důvodu následující chyby: </p><p><b>%1</b></p> <p>One or more virtual hard disks, CD/DVD or floppy media are not currently accessible. As a result, you will not be able to operate virtual machines that use these media until they become accessible later.</p><p>Press <b>Check</b> to open the Virtual Media Manager window and see what media are inaccessible, or press <b>Ignore</b> to ignore this message.</p> @@ -5753,7 +6266,7 @@ <p>Failed to download the VirtualBox User Manual from <nobr><a href="%1">%2</a>.</nobr></p><p>%3</p> - <p>Stažení uživatelského manuálu pro VirtualBox z <nobr><a href="%1">%2</a></nobr> selhalo.</p><p>%3</p> + <p>Stažení uživatelského manuálu pro VirtualBox z <nobr><a href="%1">%2</a></nobr> selhalo.</p><p>%3</p> <p>The VirtualBox User Manual has been successfully downloaded from <nobr><a href="%1">%2</a></nobr> and saved locally as <nobr><b>%3</b>.</nobr></p> @@ -5773,11 +6286,11 @@ <p>You are about to remove the virtual machine <b>%1</b> from the machine list.</p><p>Would you like to delete the files containing the virtual machine from your hard disk as well?</p> - <p>Chystáte se odstranit virtuální počítač <b>%1</b> ze seznamu. </p><p>Chcete také zároveň smazat z disku soubory obsahující virtuální počítače?</p> + <p>Chystáte se odstranit virtuální počítač <b>%1</b> ze seznamu. </p><p>Chcete také zároveň smazat z disku soubory obsahující virtuální počítače?</p> <p>You are about to remove the virtual machine <b>%1</b> from the machine list.</p><p>Would you like to delete the files containing the virtual machine from your hard disk as well? Doing this will also remove the files containing the machine's virtual hard disks if they are not in use by another machine.</p> - <p>Chystáte se odstranit virtuální počítač <b>%1</b> ze seznamu.</p><p>Chcete také současně odstranit soubory obsahující virtuální počítač z pevného disku? Odstraněním se také smažou všechny soubory obsahující virtuální pevný disk pokud nejsou používány jiným virtuálním počítačem.</p> + <p>Chystáte se odstranit virtuální počítač <b>%1</b> ze seznamu.</p><p>Chcete také současně odstranit soubory obsahující virtuální počítač z pevného disku? Odstraněním se také smažou všechny soubory obsahující virtuální pevný disk pokud nejsou používány jiným virtuálním počítačem.</p> Delete all files @@ -5789,7 +6302,7 @@ You are about to remove the inaccessible virtual machine <b>%1</b> from the machine list. Do you wish to proceed? - Chystáte se odstranit nedostupný virtuální počítač <b>%1</b> ze seznamu. Chcete pokračovat? + Chystáte se odstranit nedostupný virtuální počítač <b>%1</b> ze seznamu. Chcete pokračovat? Remove @@ -5841,7 +6354,7 @@ <p>The virtual machine(s) <b>%1</b> are currently in a saved state.</p><p>If you continue the runtime state of the exported machine(s) will be discarded. Note that the existing machine(s) are not changed.</p> - + <p>Virtuální počítač <b>%1</b> je nyní v uloženém stavu.</p><p>Pokud budete pokračovat v exportu virtuálního počítače, bude aktuální stav ztracen. Existující virtuální počítač nebude změněn.</p> <p>Virtuální počítače <b>%1</b> jsou nyní v uloženém stavu.</p><p>Pokud budete pokračovat v exportu virtuálních počítačů, bude aktuální stav ztracen. Existující virtuální počítače nebudou změněny.</p> <p>Virtuální počítače <b>%1</b> jsou nyní v uloženém stavu.</p><p>Pokud budete pokračovat v exportu virtuálních počítačů, bude aktuální stav ztracen. Existující virtuální počítače nebudou změněny.</p> @@ -6064,17 +6577,88 @@ <p>Failed to download the <b><nobr>%1</nobr></b> from <nobr><a href="%2">%2</a>.</nobr></p><p>%3</p> - <p>Stažení souboru <b><nobr>%1</nobr></b> z <nobr><a href="%2">%2</a> selhalo.</nobr></p><p>%3</p> + <p>Stažení souboru <b><nobr>%1</nobr></b> z <nobr><a href="%2">%2</a> selhalo.</nobr></p><p>%3</p> + + + Network Operations Manager... + Správce síťových operací... + + + Show Network Operations Manager + Zobrazí správce síťových operací + + + <p>You are about to remove following inaccessible virtual machines from the machine list:</p><p>%1</p><p>Do you wish to proceed?</p> + <p>Chystáte se odstranit nedostupný virtuální počítač <b>%1</b> ze seznamu. Chcete pokračovat?</p> + + + <p>You are about to remove following virtual machines from the machine list:</p><p>%1</p><p>Would you like to delete the files containing the virtual machine from your hard disk as well? Doing this will also remove the files containing the machine's virtual hard disks if they are not in use by another machine.</p> + <p>Chystáte se odstranit virtuální počítač <b>%1</b> ze seznamu.</p><p>Chcete také současně odstranit soubory obsahující virtuální počítač z pevného disku? Odstraněním se také smažou všechny soubory obsahující virtuální pevný disk pokud nejsou používány jiným virtuálním počítačem.</p> + + + <p>You are about to remove following virtual machines from the machine list:</p><p>%1</p><p>Would you like to delete the files containing the virtual machine from your hard disk as well?</p> + <p>Chystáte se odstranit virtuální počítač <b>%1</b> ze seznamu. </p><p>Chcete také zároveň smazat z disku soubory obsahující virtuální počítače?</p> <p>You have version %1 of the <b><nobr>%2</nobr></b> installed.</p><p>You should download and install version %3 of this extension pack from Oracle!</p> - + <p>Máte pro <b><nobr>%2</nobr></b> instalovanou starou verzi (%1). Doporučujeme stáhnout aktuální verzi %3 rozšíření z webu Oracle!</p> Ok extension pack + OK + + + Do you wish to cancel all current network operations? + Chcete nyní přerušit všechny síťové operace? + + + Do you wish to cancel all current network operations or leave them running in the background? + Chcete nyní přerušit všechny síťové operace nebo je nechat běžet na pozadí? + + + Cancel All + Přerušit vše + + + Leave in Background + Nechat na pozadí + + + <p>Do you really want to send an ACPI shutdown signal to the virtual machine?</p> + <p>Opravdu chcete virtuálnímu počítači poslat signál pro ACPI vypnutí?</p> + + + ACPI Shutdown + machine + ACPI vypnutí + + + <p>Do you really want to power off the virtual machine?</p><p>This will cause any unsaved data in applications running inside it to be lost.</p> + <p>Opravdu chcete vypnout virtuální počítač?</p><p>Pokud virtuální počítač neuložená data z běžících aplikací, budou vypnutím ztracena.</p> + + + Power Off + machine + Vypnout + + + Failed to drop data. + Selhalo uložení dat. + + + <p>Failed to initialize COM because the VirtualBox global configuration directory <b><nobr>%1</nobr></b> is not accessible. Please check the permissions of this directory and of its parent directory.</p><p>The application will now terminate.</p> + + <p>The %n following virtual machine(s) are currently in a saved state: <b>%1</b></p><p>If you continue the runtime state of the exported machine(s) will be discarded. The other machine(s) will not be changed.</p> + This text is never used with n == 0. Feel free to drop the %n where possible, we only included it because of problems with Qt Linguist (but the user can see how many machines are in the list and doesn't need to be told). + + + + + + UIMiniProcessWidgetAdditions @@ -6144,6 +6728,41 @@ + UINetworkManager + + Network Operation + Síťová operace + + + Restart network operation + Restartovat síťovou operaci + + + Cancel network operation + Zrušit síťovou operaci + + + Error: %1. + Chyba: %1. + + + Network Operations Manager + Správce síťových operací + + + There are no active network operations. + Nemáte aktivní žádnou síťovou operaci. + + + &Cancel All + &Přerušit vše + + + Cancel all active network operations + Přeruší všechny aktivní síťové operace + + + UINewHDWizard Create New Virtual Disk @@ -6425,8 +7044,8 @@ Zvolte prosím zda má být soubor s novým virtuálním diskem zvětšován postupně podle potřeby nebo vytvořen o pevně dané velikosti. - <p>A <b>dynamically allocated</b> virtual disk file will only use space on your physical hard disk as it fills up, although it will not shrink again automatically when space on it is freed.</p> - <p><b>Dynamicky alokovaný</b> virtuální disk bude zabírat na fyzickém disku místo tak jak bude zaplněn, ale nebude automaticky zmenšen pokud se v něm místo uvolní.</p> + <p>A <b>dynamically allocated</b> virtual disk file will only use space on your physical hard disk as it fills up (up to a <b>fixed maximum size</b>), although it will not shrink again automatically when space on it is freed.</p> + <p><b>Dynamicky alokovaný</b> virtuální disk bude zabírat na fyzickém disku místo tak jak bude zaplněn (do definované <b>maximální velikosti</b>), ale nebude automaticky zmenšen pokud se v něm místo uvolní.</p> <p>A <b>fixed size</b> virtual disk file may take longer to create on some systems but is often faster to use.</p> @@ -6506,6 +7125,10 @@ &QCOW (QEMU Copy-On-Write) &QCOW (QEMU Copy-On-Write) + + <p>A <b>dynamically allocated</b> virtual disk file will only use space on your physical hard disk as it fills up, although it will not shrink again automatically when space on it is freed.</p> + + UINewHDWizardPageFormat @@ -7095,26 +7718,54 @@ zbývá %1 vteřin(y) - A few seconds remaining - Zbývá několik vteřin + A few seconds remaining + Zbývá několik vteřin + + + Canceling... + Přerušuji... + + + Cancel the current operation + Zruší aktuální operaci + + + %1, %2 remaining + You may wish to translate this more like "Time remaining: %1, %2" + Zbývající čas: %1, %2 + + + %1 remaining + You may wish to translate this more like "Time remaining: %1" + Zbývající čas: %1 + + + + UISelectorWindow + + Show Toolbar + Zobrazit nástrojovou lištu + + + Show Statusbar + Zobrazit stavovou lištu - Canceling... - Přerušuji... + Select a virtual machine file + Vybere soubor s virtuálním počítačem - Cancel the current operation - Zruší aktuální operaci + Virtual machine files (%1) + Soubory virtuálního počítače (%1) - %1, %2 remaining - You may wish to translate this more like "Time remaining: %1, %2" - Zbývající čas: %1, %2 + <h3>Welcome to VirtualBox!</h3><p>The left part of this window is a list of all virtual machines on your computer. The list is empty now because you haven't created any virtual machines yet.<img src=:/welcome.png align=right/></p><p>In order to create a new virtual machine, press the <b>New</b> button in the main tool bar located at the top of the window.</p><p>You can press the <b>%1</b> key to get instant help, or visit <a href=http://www.virtualbox.org>www.virtualbox.org</a> for the latest information and news.</p> + <h3>Vítejte ve VirtualBoxu!</h3><p>Levá část tohoto okna je určena pro zobrazení seznamu všech virtuálních počítačů na vašem počítači. Seznam je teď prázdný, protože jste ještě žádný nevytvořili.<img src=:/welcome.png align=right/></p><p>Pro vytvoření nového virtuálního počítače stiskněte tlačítko <b>Nový</b> v horní části hlavního okna.</p><p>Pro okamžitou nápovědu stiskněte klávesu <b>%1</b> nebo navštivte stránky <a href=http://www.virtualbox.org>www.virtualbox.org</a> pro aktuální informace a novinky.</p> - %1 remaining - You may wish to translate this more like "Time remaining: %1" - Zbývající čas: %1 + Manager + Note: main window title which is pretended by the product name. + Správce @@ -7185,6 +7836,10 @@ Proxy Proxy + + Display + Obrazovka + UISettingsDialogMachine @@ -7388,6 +8043,13 @@ + UIUpdateStepVirtualBox + + Checking for a new VirtualBox version... + Vyhledávám novou verzi aplikace VirtualBox... + + + UIVMCloseDialog Close Virtual Machine @@ -7495,6 +8157,85 @@ + UIVMLogViewer + + Log Viewer + Prohlížeč záznamu + + + &Save + &Uložit + + + &Refresh + &Aktualizovat + + + &Close + &Zavřít + + + %1 - VirtualBox Log Viewer + %1 - Prohlížeč záznamu VirtualBoxu + + + <p>No log files found. Press the <b>Refresh</b> button to rescan the log folder <nobr><b>%1</b></nobr>.</p> + <p>Žádný soubor se záznamem nenalezen. Stiskněte tlačítko <b>Aktualizovat</b> pro opětovné prozkoumání složky se záznamy <nobr><b>%1</b></nobr>.</p> + + + Save VirtualBox Log As + Uložit záznam VirtualBoxu jako + + + Help + Nápověda + + + &Find + &Hledat + + + Close + Zavřít + + + Close the search panel + Zavřít panel hledání + + + Enter a search string here + Sem napište hledaný řetězec + + + &Previous + &Předchozí + + + Search for the previous occurrence of the string + Hledat předchozí výskyt řetězce + + + &Next + &Další + + + Search for the next occurrence of the string + Hledat další výskyt řetězce + + + C&ase Sensitive + Rozlišov&at velikost písmen + + + Perform case sensitive search (when checked) + Provede vyhledávání s ohledem na velikost písmen (je-li zatrženo) + + + String not found + Řetězec nenalezen + + + UIVMPreviewWindow Update Disabled @@ -10148,7 +10889,7 @@ and - a + a MB @@ -10525,43 +11266,43 @@ VBoxLogSearchPanel Close the search panel - Zavřít panel hledání + Zavřít panel hledání Find - Hledat + Enter a search string here - Sem napište hledaný řetězec + Sem napište hledaný řetězec &Previous - &Předchozí + &Předchozí Search for the previous occurrence of the string - Hledat předchozí výskyt řetězce + Hledat předchozí výskyt řetězce &Next - &Další + &Další Search for the next occurrence of the string - Hledat další výskyt řetězce + Hledat další výskyt řetězce C&ase Sensitive - Rozlišov&at velikost písmen + Rozlišov&at velikost písmen Perform case sensitive search (when checked) - Provede vyhledávání s ohledem na velikost písmen (je-li zatrženo) + Provede vyhledávání s ohledem na velikost písmen (je-li zatrženo) String not found - Řetězec nenalezen + Řetězec nenalezen @@ -11042,37 +11783,12 @@ Zobrazí Správce virtuálních disků - &Preferences... - global settings - &Předvolby... - - - Display the global settings dialog - Zobrazí globalní nastavení - - - E&xit - U&končit - - - Close application - Zavře aplikaci - - - &New... - &Nový... - - - New - Nový - - Create a new virtual machine - Vytvoří nový virtuální počítač + Vytvoří nový virtuální počítač &Settings... - Nas&tavení... + Nas&tavení... Settings @@ -11080,7 +11796,7 @@ Configure the selected virtual machine - Nastaví vybraný virtuální počítač + Nastaví vybraný virtuální počítač &Delete @@ -11099,14 +11815,6 @@ Zruš&it - Discard - Zahodit - - - Discard the saved state of the selected virtual machine - Zruší uložený stav vybraného virtuálního počítače - - &Refresh &Aktualizovat @@ -11115,10 +11823,6 @@ Aktualizovat - Refresh the accessibility state of the selected virtual machine - Obnoví stav dostupnosti vybraného virtuálního počítače - - &Contents... &Obsah... @@ -11171,46 +11875,22 @@ &Popis * - S&how - &Zobrazit - - Show Zobrazit - Switch to the window of the selected virtual machine - Přepne do okna virtuálního počítače - - - S&tart - &Spustit - - Start Spustit - Start the selected virtual machine - Spustí vybraný virtuální počítač - - &Machine - &Počítač - - - Show &Log... - Zobrazit &záznam... + &Počítač Show Log... Zobrazit záznam... - Show the log files of the selected virtual machine - Zobrazí soubory se záznamy vybraného virtuálního počítače - - R&egister VirtualBox... R&egistrovat VirtualBox... @@ -11224,151 +11904,208 @@ Resume the execution of the virtual machine - Obnoví chod virtuálního počítače + Obnoví chod virtuálního počítače &Pause - &Pauza + &Pauza - &Import Appliance... - &Importovat applianci... + Suspend the execution of the virtual machine + Pozastaví chod virtuálního počítače - Import an appliance into VirtualBox - Importuje applianci do aplikace VirtualBox + <h3>Welcome to VirtualBox!</h3><p>The left part of this window is a list of all virtual machines on your computer. The list is empty now because you haven't created any virtual machines yet.<img src=:/welcome.png align=right/></p><p>In order to create a new virtual machine, press the <b>New</b> button in the main tool bar located at the top of the window.</p><p>You can press the <b>%1</b> key to get instant help, or visit <a href=http://www.virtualbox.org>www.virtualbox.org</a> for the latest information and news.</p> + <h3>Vítejte ve VirtualBoxu!</h3><p>Levá část tohoto okna je určena pro zobrazení seznamu všech virtuálních počítačů na vašem počítači. Seznam je teď prázdný, protože jste ještě žádný nevytvořili.<img src=:/welcome.png align=right/></p><p>Pro vytvoření nového virtuálního počítače stiskněte tlačítko <b>Nový</b> v horní části hlavního okna.</p><p>Pro okamžitou nápovědu stiskněte klávesu <b>%1</b> nebo navštivte stránky <a href=http://www.virtualbox.org>www.virtualbox.org</a> pro aktuální informace a novinky.</p> - &Export Appliance... - &Exportovat applianci... + Log + icon text + Log - Export one or more VirtualBox virtual machines as an appliance - Exportuje applianci virtálních počítačů z aplikace VirtualBox + Select a virtual machine file + Vybere soubor s virtuálním počítačem - Suspend the execution of the virtual machine - Pozastaví chod virtuálního počítače + Virtual machine files (%1) + Soubory virtuálního počítače (%1) - Re&fresh - &Aktualizovat + Manager + Note: main window title which is pretended by the product name. + Správce - <h3>Welcome to VirtualBox!</h3><p>The left part of this window is a list of all virtual machines on your computer. The list is empty now because you haven't created any virtual machines yet.<img src=:/welcome.png align=right/></p><p>In order to create a new virtual machine, press the <b>New</b> button in the main tool bar located at the top of the window.</p><p>You can press the <b>%1</b> key to get instant help, or visit <a href=http://www.virtualbox.org>www.virtualbox.org</a> for the latest information and news.</p> - <h3>Vítejte ve VirtualBoxu!</h3><p>Levá část tohoto okna je určena pro zobrazení seznamu všech virtuálních počítačů na vašem počítači. Seznam je teď prázdný, protože jste ještě žádný nevytvořili.<img src=:/welcome.png align=right/></p><p>Pro vytvoření nového virtuálního počítače stiskněte tlačítko <b>Nový</b> v horní části hlavního okna.</p><p>Pro okamžitou nápovědu stiskněte klávesu <b>%1</b> nebo navštivte stránky <a href=http://www.virtualbox.org>www.virtualbox.org</a> pro aktuální informace a novinky.</p> + Show Toolbar + Zobrazit nástrojovou lištu + + + Show Statusbar + Zobrazit stavovou lištu &Virtual Media Manager... - Správce virtuálních &medií... + Správce virtuálních &medií... Display the Virtual Media Manager dialog - Zobrazí dialog Správce virtuálních médií + Zobrazí dialog Správce virtuálních médií - Log - icon text - Log + &Import Appliance... + &Importovat applianci... - &File - Mac OS X version - &Soubor + Import an appliance into VirtualBox + Importuje applianci do aplikace VirtualBox - &File - Non Mac OS X version - &Soubor + &Export Appliance... + &Exportovat applianci... - Select a virtual machine file - Vybere soubor s virtuálním počítačem + Export one or more VirtualBox virtual machines as an appliance + Exportuje applianci virtálních počítačů z aplikace VirtualBox - Virtual machine files (%1) - Soubory virtuálního počítače (%1) + &Preferences... + global settings + &Předvolby... - Manager - Note: main window title which is pretended by the product name. - Správce + Display the global settings dialog + Zobrazí globalní nastavení + + + E&xit + U&končit + + + Close application + Zavře aplikaci + + + &New... + &Nový... &Add... - &Přidat... + &Přidat... Add an existing virtual machine - Přidá existující virtuální počítač + Přidá existující virtuální počítač + + + Cl&one... + &Klonovat... + + + Clone the selected virtual machine + Naklonuje vybraný virtuální počítač &Remove - &Odstranit + &Odstranit Remove the selected virtual machine - Odstraní vybraný virtuální počítač + Odstraní vybraný virtuální počítač + + + Discard + + + + D&iscard Saved State + &Zahodit uložený stav + + + Discard the saved state of the selected virtual machine + Zruší uložený stav vybraného virtuálního počítače + + + Re&fresh + &Aktualizovat + + + Refresh the accessibility state of the selected virtual machine + Obnoví stav dostupnosti vybraného virtuálního počítače + + + Show &Log... + Zobrazit &záznam... + + + Show the log files of the selected virtual machine + Zobrazí soubory se záznamy vybraného virtuálního počítače Show in Finder - Zobrazit ve Finderu + Zobrazit ve Finderu Show the VirtualBox Machine Definition file in Finder. - Zobrazí konfigurační soubory virtuálního počítače ve Finderu. + Zobrazí konfigurační soubory virtuálního počítače ve Finderu. Create Alias on Desktop - Vytvořit alias na ploše + Vytvořit alias na ploše Creates an Alias file to the VirtualBox Machine Definition file on your Desktop. - Vytvoří alias pro definici virtuálního počítače na vaší ploše. + Vytvoří alias pro definici virtuálního počítače na vaší ploše. Show in Explorer - Zobrazit v průzkumníkovi + Zobrazit v průzkumníkovi Show the VirtualBox Machine Definition file in Explorer. - Zobrazí definici pro virtuální počítač v průzkumníkovi. + Zobrazí definici pro virtuální počítač v průzkumníkovi. Create Shortcut on Desktop - Vytvořit zástupce na ploše + Vytvořit zástupce na ploše Creates an Shortcut file to the VirtualBox Machine Definition file on your Desktop. - Pro konfigurační soubory virtuálního počítače.vytvoří zástupce na pracovní ploše. + Pro konfigurační soubory virtuálního počítače.vytvoří zástupce na pracovní ploše. Show in File Manager - Zobrazit se správci souborů + Zobrazit se správci souborů Show the VirtualBox Machine Definition file in the File Manager - Zobrazí konfigurační soubor pro virtuální počítač ve správci souborů + Zobrazí konfigurační soubor pro virtuální počítač ve správci souborů - Show Toolbar - Zobrazit nástrojovou lištu + &File + Mac OS X version + &Soubor - Show Statusbar - Zobrazit stavovou lištu + &File + Non Mac OS X version + &Soubor - Cl&one... - &Klonovat... + S&tart + &Spustit - Clone the selected virtual machine - Naklonuje vybraný virtuální počítač + Start the selected virtual machine + Spustí vybraný virtuální počítač - D&iscard Saved State - &Zahodit uložený stav + S&how + &Zobrazit + + + Switch to the window of the selected virtual machine + @@ -12148,43 +12885,35 @@ VBoxVMLogViewer Log Viewer - Prohlížeč záznamu - - - &Save - &Uložit + Prohlížeč záznamu - &Refresh - &Aktualizovat + <p>No log files found. Press the <b>Refresh</b> button to rescan the log folder <nobr><b>%1</b></nobr>.</p> + <p>Žádný soubor se záznamem nenalezen. Stiskněte tlačítko <b>Aktualizovat</b> pro opětovné prozkoumání složky se záznamy <nobr><b>%1</b></nobr>.</p> - &Close - &Zavřít + Save VirtualBox Log As + Uložit záznam VirtualBoxu jako %1 - VirtualBox Log Viewer - %1 - Prohlížeč záznamu VirtualBoxu - - - <p>No log files found. Press the <b>Refresh</b> button to rescan the log folder <nobr><b>%1</b></nobr>.</p> - <p>Žádný soubor se záznamem nenalezen. Stiskněte tlačítko <b>Aktualizovat</b> pro opětovné prozkoumání složky se záznamy <nobr><b>%1</b></nobr>.</p> + %1 - Prohlížeč záznamu VirtualBoxu - Save VirtualBox Log As - Uložit záznam VirtualBoxu jako + &Find + &Hledat - Help - Nápověda + &Refresh + &Aktualizovat - &Find - &Hledat + &Save + &Uložit Close - Zavřít + Zavřít diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Frontends/VirtualBox/nls/VirtualBox_da.ts virtualbox-4.1.44-dfsg/src/VBox/Frontends/VirtualBox/nls/VirtualBox_da.ts --- virtualbox-4.1.12-dfsg/src/VBox/Frontends/VirtualBox/nls/VirtualBox_da.ts 2012-04-02 13:28:40.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Frontends/VirtualBox/nls/VirtualBox_da.ts 2015-11-11 15:08:28.000000000 +0000 @@ -5385,8 +5385,8 @@ <p>VirtualBox Gæstetilføjelser er vist ikke tilgængelige på denne virtuelle maskine og delte mapper fungerer ikke uden. For at kunne anvende delte mapper i den virtuelle maskine, skal du installere gæstetilføjelserne, hvis de ikke er installeret eller geninstallere, hvis de ikke fungerer korrekt ved at vælge <b>Installér gæstetilføjelser</b> fra menuen <b>Enheder</b>. Delte mapper vil først være tilgængelige, når maskinen er startet helt op.</p> - <p>The virtual machine(s) <b>%1</b> are currently in a saved state.</p><p>If you continue the runtime state of the exported machine(s) will be discarded. Note that the existing machine(s) are not changed.</p> - + <p>The %n following virtual machine(s) are currently in a saved state: <b>%1</b></p><p>If you continue the runtime state of the exported machine(s) will be discarded. The other machine(s) will not be changed.</p> + <p>De virtuelle maskiner <b>%1</b> har gemte tilstande.</p><p>Hvis du fortsætter vil kørselstilstanden af de eksporterede maskiner blive kasseret. Bemærk at de nuværende maskiner ikke ændres.</p> @@ -5632,6 +5632,18 @@ extension pack + + <p>Failed to initialize COM because the VirtualBox global configuration directory <b><nobr>%1</nobr></b> is not accessible. Please check the permissions of this directory and of its parent directory.</p><p>The application will now terminate.</p> + + + + <p>The %n following virtual machine(s) are currently in a saved state: <b>%1</b></p><p>If you continue the runtime state of the exported machine(s) will be discarded. The other machine(s) will not be changed.</p> + This text is never used with n == 0. Feel free to drop the %n where possible, we only included it because of problems with Qt Linguist (but the user can see how many machines are in the list and doesn't need to be told). + + <p>De virtuelle maskiner <b>%1</b> har gemte tilstande.</p><p>Hvis du fortsætter vil kørselstilstanden af de eksporterede maskiner blive kasseret. Bemærk at de nuværende maskiner ikke ændres.</p> + + + UIMiniProcessWidgetAdditions @@ -8898,7 +8910,7 @@ and - og + og MB diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Frontends/VirtualBox/nls/VirtualBox_de.ts virtualbox-4.1.44-dfsg/src/VBox/Frontends/VirtualBox/nls/VirtualBox_de.ts --- virtualbox-4.1.12-dfsg/src/VBox/Frontends/VirtualBox/nls/VirtualBox_de.ts 2012-04-02 13:28:40.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Frontends/VirtualBox/nls/VirtualBox_de.ts 2015-11-11 15:08:28.000000000 +0000 @@ -192,7 +192,7 @@ QIWizardPage Use the <b>%1</b> button to go to the next page of the wizard and the <b>%2</b> button to return to the previous page. You can also press <b>%3</b> if you want to cancel the execution of this wizard.</p> - Wählen Sie <b>%1</b>, um auf die nächste Seite zu gelangen oder <b>%2</b>, um auf die vorherige Seite zurückzukehren. Wählen Sie <b>%3</b>, um den Assistenten zu beenden.</p> + Wählen Sie <b>%1</b>, um auf die nächste Seite zu gelangen, oder <b>%2</b>, um auf die vorherige Seite zurückzukehren. Wählen Sie <b>%3</b>, um den Assistenten zu beenden.</p> @@ -2124,7 +2124,7 @@ you enabled 3D acceleration. However, 3D acceleration is not working on the current host setup so you will not be able to start the VM. - haben Sie die 3D-Unterstützung aktiviert. Allderings funktioniert die 3D-Hardwarebeschleunigung nicht auf dem Host, und daher die VM kann nicht gestartet werden. + haben Sie die 3D-Unterstützung aktiviert. Allderings funktioniert die 3D-Hardwarebeschleunigung nicht auf dem Host, daher kann die VM nicht gestartet werden. @@ -2267,7 +2267,7 @@ Displays the MAC address of this adapter. It contains exactly 12 characters chosen from {0-9,A-F}. Note that the second character must be an even digit. - Zeigt die MAC-Adresse dieses Adapters. Sie besteht aus genau 12 Zeichen aus dem Zeichenvorrat {0-9,A-F}. Das zweite Zeichen muss eine gerate Zahl sein. + Zeigt die MAC-Adresse dieses Adapters. Sie besteht aus genau 12 Zeichen aus dem Zeichenvorrat {0-9,A-F}. Das zweite Zeichen muss eine gerade Zahl sein. Generates a new random MAC address. @@ -3108,7 +3108,7 @@ Limits the amount of time that each virtual CPU is allowed to run for. Each virtual CPU will be allowed to use up to this percentage of the processing time available on one physical CPU. The execution cap can be disabled by setting it to 100%. Setting the cap too low can make the machine feel slow to respond. - Begrenzt die jeder virtuellen CPU zur Verfügung stehenden Zeit. Jede virtuelle CPU darf nicht länger als dieser Prozentsatz der verfügbaren Zeit auf einer physischen CPU laufen. Durch Setzen dieses Wertes auf 100% wird diese Begrenzung aufgehoben. Wird dieser Wert zu tief gewählt, kann sich dies negativ auf das Zeitverhalten der VM auswirken. + Begrenzt die jeder virtuellen CPU zur Verfügung stehende Zeit. Jede virtuelle CPU darf nicht länger als dieser Prozentsatz der verfügbaren Zeit auf einer physischen CPU laufen. Durch Setzen dieses Wertes auf 100% wird diese Begrenzung aufgehoben. Wird dieser Wert zu tief gewählt, kann sich dies negativ auf das Zeitverhalten der VM auswirken. you have set the processor execution cap to a low value. This can make the machine feel slow to respond. @@ -4181,13 +4181,6 @@ <p>You are about to add a new floppy drive to controller <b>%1</b>.</p><p>Would you like to choose a virtual floppy disk to put in the drive or to leave it empty for now?</p> <p>Sie sind dabei, ein neues virtuelles Diskettenlaufwerk an den Controller <b>%1</b> anzuschließen.</p><p>Möchten Sie ein existierendes Medium an das Laufwerk binden oder soll das Laufwerk jetzt kein Medium enthalten?</p> - - <p>The virtual machine(s) <b>%1</b> are currently in a saved state.</p><p>If you continue the runtime state of the exported machine(s) will be discarded. Note that the existing machine(s) are not changed.</p> - - <p>Die virtuelle Maschine(n) <b>%1</b> haben momentan ihren Zustand auf der Festplatte gesichert.</p><p>Falls Sie fortfahren, wird dieser Zustand nicht mit exportiert. Der Zustand der existierenden virtuellen Maschinen wird nicht verändert.</p> - - - Failed to update Guest Additions. The Guest Additions installation image will be mounted to provide a manual installation. Die Gasterweiterungen konnten nicht aktualisiert werden. Das ISO-Abbild mit den Erweiterungen wird jetzt für eine manuelle gemountet. @@ -4307,7 +4300,7 @@ Create a snapshot of the current machine state - Erzeugt einen Sicherungspunkt der aktuellen virtuellen Maschine + Sicherungspunkt des aktuellen VM-Zustands erstellen <p>Are you sure you want to restore snapshot <b>%1</b>?</p> @@ -4420,6 +4413,18 @@ extension pack + + <p>Failed to initialize COM because the VirtualBox global configuration directory <b><nobr>%1</nobr></b> is not accessible. Please check the permissions of this directory and of its parent directory.</p><p>The application will now terminate.</p> + <p>Das COM-Subsystem konnte nicht gestartet werden, weil auf das Verzeichnis <b><nobr>%1</nobr></b> nicht zugegriffen werden kann. Bitte überprüfen Sie die Zugriffsrechte für dieses Verzeichnis und das Verzeichnis darüber.</p><p>Die Anwendung wird nun geschlossen.</p> + + + <p>The %n following virtual machine(s) are currently in a saved state: <b>%1</b></p><p>If you continue the runtime state of the exported machine(s) will be discarded. The other machine(s) will not be changed.</p> + This text is never used with n == 0. Feel free to drop the %n where possible, we only included it because of problems with Qt Linguist (but the user can see how many machines are in the list and doesn't need to be told). + + <p>Die virtuelle Maschine <b>%1</b> hat momentan ihren Zustand auf der Festplatte gesichert.</p><p>Falls Sie fortfahren, wird dieser Zustand nicht mit exportiert. Der Zustand der existierenden virtuellen Maschine wird nicht verändert.</p> + <p>Die %n virtuellen Maschinen <b>%1</b> haben momentan ihren Zustand auf der Festplatte gesichert.</p><p>Falls Sie fortfahren, wird dieser Zustand nicht mit exportiert. Der Zustand der existierenden virtuellen Maschinen wird nicht verändert.</p> + + UIMiniProcessWidgetUserManual @@ -5600,7 +5605,7 @@ Bidirectional ClipboardType - Bidirektional + bidirektional Port %1 @@ -6368,10 +6373,6 @@ ICH9 - and - und - - Deny NetworkAdapterPromiscModePolicyType verweigern (deny) @@ -6384,7 +6385,7 @@ Allow All NetworkAdapterPromiscModePolicyType - erlauben für allen VMs und den Host + erlauben für alle VMs und den Host Dynamically allocated storage @@ -7040,7 +7041,7 @@ Take a snapshot of the current virtual machine state - Erzeugt einen Sicherungspunkt der aktuellen virtuellen Maschine + Sicherungspunkt des aktuellen VM-Zustands erstellen Show the details of the selected snapshot diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Frontends/VirtualBox/nls/VirtualBox_el.ts virtualbox-4.1.44-dfsg/src/VBox/Frontends/VirtualBox/nls/VirtualBox_el.ts --- virtualbox-4.1.12-dfsg/src/VBox/Frontends/VirtualBox/nls/VirtualBox_el.ts 2012-04-02 13:28:40.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Frontends/VirtualBox/nls/VirtualBox_el.ts 2015-11-11 15:08:28.000000000 +0000 @@ -4185,13 +4185,6 @@ Failed to detach the floppy device (<nobr><b>%1</b></nobr>) from the slot <i>%2</i> of the machine <b>%3</b>. - - <p>The virtual machine(s) <b>%1</b> are currently in a saved state.</p><p>If you continue the runtime state of the exported machine(s) will be discarded. Note that the existing machine(s) are not changed.</p> - - - - - Failed to update Guest Additions. The Guest Additions installation image will be mounted to provide a manual installation. @@ -4420,6 +4413,18 @@ extension pack + + <p>Failed to initialize COM because the VirtualBox global configuration directory <b><nobr>%1</nobr></b> is not accessible. Please check the permissions of this directory and of its parent directory.</p><p>The application will now terminate.</p> + + + + <p>The %n following virtual machine(s) are currently in a saved state: <b>%1</b></p><p>If you continue the runtime state of the exported machine(s) will be discarded. The other machine(s) will not be changed.</p> + This text is never used with n == 0. Feel free to drop the %n where possible, we only included it because of problems with Qt Linguist (but the user can see how many machines are in the list and doesn't need to be told). + + + + + UIMiniProcessWidgetUserManual @@ -6353,10 +6358,6 @@ - and - - - MB size suffix MBytes=1024KBytes diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Frontends/VirtualBox/nls/VirtualBox_en.ts virtualbox-4.1.44-dfsg/src/VBox/Frontends/VirtualBox/nls/VirtualBox_en.ts --- virtualbox-4.1.12-dfsg/src/VBox/Frontends/VirtualBox/nls/VirtualBox_en.ts 2012-04-02 13:28:40.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Frontends/VirtualBox/nls/VirtualBox_en.ts 2015-11-11 15:08:28.000000000 +0000 @@ -4,9 +4,17 @@ UIMessageCenter - - <p>The virtual machine(s) <b>%1</b> are currently in a saved state.</p><p>If you continue the runtime state of the exported machine(s) will be discarded. Note that the existing machine(s) are not changed.</p> - + <p>The %n following virtual machine(s) are currently in a saved state: <b>%1</b></p><p>If you continue the runtime state of the exported machine(s) will be discarded. The other machine(s) will not be changed.</p> + + <p>The virtual machine <b>%1</b> is currently in a saved state.</p><p>If you continue the runtime state of the exported machine will be discarded. Note that the existing machine is not changed.</p> + <p>The virtual machines <b>%1</b> are currently in a saved state.</p><p>If you continue the runtime state of the exported machines will be discarded. Note that the existing machines are not changed.</p> + + + + + <p>The %n following virtual machine(s) are currently in a saved state: <b>%1</b></p><p>If you continue the runtime state of the exported machine(s) will be discarded. The other machine(s) will not be changed.</p> + This text is never used with n == 0. Feel free to drop the %n where possible, we only included it because of problems with Qt Linguist (but the user can see how many machines are in the list and doesn't need to be told). + <p>The virtual machine <b>%1</b> is currently in a saved state.</p><p>If you continue the runtime state of the exported machine will be discarded. Note that the existing machine is not changed.</p> <p>The virtual machines <b>%1</b> are currently in a saved state.</p><p>If you continue the runtime state of the exported machines will be discarded. Note that the existing machines are not changed.</p> diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Frontends/VirtualBox/nls/VirtualBox_es.ts virtualbox-4.1.44-dfsg/src/VBox/Frontends/VirtualBox/nls/VirtualBox_es.ts --- virtualbox-4.1.12-dfsg/src/VBox/Frontends/VirtualBox/nls/VirtualBox_es.ts 2012-04-02 13:28:40.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Frontends/VirtualBox/nls/VirtualBox_es.ts 2015-11-11 15:08:28.000000000 +0000 @@ -5806,8 +5806,8 @@ <p>Las «Guest Additions» de VirtualBox no parece que estén disponibles en esta máquina virtual y las carpetas compartidas no pueden ser usadas sin ellas. Para usar las carpetas compartidas dentro de la máquina virtual instale las «Guest Additions» si no están instaladas o reinstalelas si no están funcionando correctamente, seleccionando <b>Instalar «Guest Additions»</b> del menú <b>Máquina</b>. Si están instaladas pero la máquina no está todavía completamente iniciada entonces las carpetas compartidas estarán disponibles una vez lo esté.</p> - <p>The virtual machine(s) <b>%1</b> are currently in a saved state.</p><p>If you continue the runtime state of the exported machine(s) will be discarded. Note that the existing machine(s) are not changed.</p> - + <p>The %n following virtual machine(s) are currently in a saved state: <b>%1</b></p><p>If you continue the runtime state of the exported machine(s) will be discarded. The other machine(s) will not be changed.</p> + <p>La máquina virtual <b>%1</b> está actualmente en un estado guardado.</p><p>Si continua, el estado de ejecución de la máquina exportada será descartado. Esto no afectará a las máquina existentes.</p> <p>Las máquinas virtuales <b>%1</b> están actualmente en un estado guardado.</p><p>Si continua, los estados de ejecución de las máquinas exportadas serán descartados. Esto no afectará a las máquinas existentes.</p> @@ -6052,6 +6052,18 @@ extension pack + + <p>Failed to initialize COM because the VirtualBox global configuration directory <b><nobr>%1</nobr></b> is not accessible. Please check the permissions of this directory and of its parent directory.</p><p>The application will now terminate.</p> + + + + <p>The %n following virtual machine(s) are currently in a saved state: <b>%1</b></p><p>If you continue the runtime state of the exported machine(s) will be discarded. The other machine(s) will not be changed.</p> + This text is never used with n == 0. Feel free to drop the %n where possible, we only included it because of problems with Qt Linguist (but the user can see how many machines are in the list and doesn't need to be told). + + <p>La máquina virtual <b>%1</b> está actualmente en un estado guardado.</p><p>Si continua, el estado de ejecución de la máquina exportada será descartado. Esto no afectará a las máquina existentes.</p> + <p>Las máquinas virtuales <b>%1</b> están actualmente en un estado guardado.</p><p>Si continua, los estados de ejecución de las máquinas exportadas serán descartados. Esto no afectará a las máquinas existentes.</p> + + UIMiniProcessWidgetAdditions @@ -6426,7 +6438,7 @@ <p>A <b>dynamically allocated</b> virtual disk file will only use space on your physical hard disk as it fills up, although it will not shrink again automatically when space on it is freed.</p> - <p>Un archivo de disco virtual <b>reservado dinámcamente</b> solo usa espacio en su disco duro físico según se llena, sin embargo no se reducirá de nuevo automáticamente cuando el espacio en él sea liberado.</p> + <p>Un archivo de disco virtual <b>reservado dinámicamente</b> solo usa espacio en su disco duro físico según se llena, sin embargo no se reducirá de nuevo automáticamente cuando el espacio en él sea liberado.</p> <p>A <b>fixed size</b> virtual disk file may take longer to create on some systems but is often faster to use.</p> @@ -6438,7 +6450,7 @@ &Dynamically allocated - Reservado &dinámcamente + Reservado &dinámicamente &Fixed size @@ -10335,7 +10347,7 @@ and - y + y MB diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Frontends/VirtualBox/nls/VirtualBox_eu.ts virtualbox-4.1.44-dfsg/src/VBox/Frontends/VirtualBox/nls/VirtualBox_eu.ts --- virtualbox-4.1.12-dfsg/src/VBox/Frontends/VirtualBox/nls/VirtualBox_eu.ts 2012-04-02 13:28:40.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Frontends/VirtualBox/nls/VirtualBox_eu.ts 2015-11-11 15:08:28.000000000 +0000 @@ -4929,12 +4929,6 @@ Failed to detach the floppy device (<nobr><b>%1</b></nobr>) from the slot <i>%2</i> of the machine <b>%3</b>. - - <p>The virtual machine(s) <b>%1</b> are currently in a saved state.</p><p>If you continue the runtime state of the exported machine(s) will be discarded. Note that the existing machine(s) are not changed.</p> - - - - Failed to update Guest Additions. The Guest Additions installation image will be mounted to provide a manual installation. @@ -5163,6 +5157,17 @@ extension pack + + <p>Failed to initialize COM because the VirtualBox global configuration directory <b><nobr>%1</nobr></b> is not accessible. Please check the permissions of this directory and of its parent directory.</p><p>The application will now terminate.</p> + + + + <p>The %n following virtual machine(s) are currently in a saved state: <b>%1</b></p><p>If you continue the runtime state of the exported machine(s) will be discarded. The other machine(s) will not be changed.</p> + This text is never used with n == 0. Feel free to drop the %n where possible, we only included it because of problems with Qt Linguist (but the user can see how many machines are in the list and doesn't need to be told). + + + + UIMiniProcessWidgetAdditions @@ -8587,10 +8592,6 @@ - and - - - MB size suffix MBytes=1024KBytes MB diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Frontends/VirtualBox/nls/VirtualBox_fi.ts virtualbox-4.1.44-dfsg/src/VBox/Frontends/VirtualBox/nls/VirtualBox_fi.ts --- virtualbox-4.1.12-dfsg/src/VBox/Frontends/VirtualBox/nls/VirtualBox_fi.ts 2012-04-02 13:28:40.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Frontends/VirtualBox/nls/VirtualBox_fi.ts 2015-11-11 15:08:28.000000000 +0000 @@ -5491,13 +5491,6 @@ Failed to detach the floppy device (<nobr><b>%1</b></nobr>) from the slot <i>%2</i> of the machine <b>%3</b>. - - <p>The virtual machine(s) <b>%1</b> are currently in a saved state.</p><p>If you continue the runtime state of the exported machine(s) will be discarded. Note that the existing machine(s) are not changed.</p> - - - - - Failed to update Guest Additions. The Guest Additions installation image will be mounted to provide a manual installation. @@ -5726,6 +5719,18 @@ extension pack + + <p>Failed to initialize COM because the VirtualBox global configuration directory <b><nobr>%1</nobr></b> is not accessible. Please check the permissions of this directory and of its parent directory.</p><p>The application will now terminate.</p> + + + + <p>The %n following virtual machine(s) are currently in a saved state: <b>%1</b></p><p>If you continue the runtime state of the exported machine(s) will be discarded. The other machine(s) will not be changed.</p> + This text is never used with n == 0. Feel free to drop the %n where possible, we only included it because of problems with Qt Linguist (but the user can see how many machines are in the list and doesn't need to be told). + + + + + UIMiniProcessWidgetAdditions @@ -9418,10 +9423,6 @@ ICH9 - and - - - MB size suffix MBytes=1024KBytes MB diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Frontends/VirtualBox/nls/VirtualBox_fr.ts virtualbox-4.1.44-dfsg/src/VBox/Frontends/VirtualBox/nls/VirtualBox_fr.ts --- virtualbox-4.1.12-dfsg/src/VBox/Frontends/VirtualBox/nls/VirtualBox_fr.ts 2012-04-02 13:28:40.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Frontends/VirtualBox/nls/VirtualBox_fr.ts 2015-11-11 15:08:28.000000000 +0000 @@ -4952,8 +4952,8 @@ Impossible de détacher le lecteur disquettes (<nobr><b>%1</b></nobr>) de l'emplacement <i>%2</i> de la machine <b>%3</b>. - <p>The virtual machine(s) <b>%1</b> are currently in a saved state.</p><p>If you continue the runtime state of the exported machine(s) will be discarded. Note that the existing machine(s) are not changed.</p> - + <p>The %n following virtual machine(s) are currently in a saved state: <b>%1</b></p><p>If you continue the runtime state of the exported machine(s) will be discarded. The other machine(s) will not be changed.</p> + <p>La machine virtuelle <b>%1</b> est actuellement dans l'état sauvegardé.</p><p>Si vous continuez l'état d'exécution de la machine sera rejeté. Aucune autre machine ne sera modifiée.</p> <p>Les machines virtuelles <b>%1</b> sont actuellement dans l'état sauvegardé.</p><p>Si vous continuez l'état d'exécution des machines sera rejeté. Aucune autre machine ne sera modifiée.</p> @@ -5194,6 +5194,18 @@ extension pack + + <p>Failed to initialize COM because the VirtualBox global configuration directory <b><nobr>%1</nobr></b> is not accessible. Please check the permissions of this directory and of its parent directory.</p><p>The application will now terminate.</p> + + + + <p>The %n following virtual machine(s) are currently in a saved state: <b>%1</b></p><p>If you continue the runtime state of the exported machine(s) will be discarded. The other machine(s) will not be changed.</p> + This text is never used with n == 0. Feel free to drop the %n where possible, we only included it because of problems with Qt Linguist (but the user can see how many machines are in the list and doesn't need to be told). + + <p>La machine virtuelle <b>%1</b> est actuellement dans l'état sauvegardé.</p><p>Si vous continuez l'état d'exécution de la machine sera rejeté. Aucune autre machine ne sera modifiée.</p> + <p>Les machines virtuelles <b>%1</b> sont actuellement dans l'état sauvegardé.</p><p>Si vous continuez l'état d'exécution des machines sera rejeté. Aucune autre machine ne sera modifiée.</p> + + UIMiniProcessWidgetAdditions @@ -7612,7 +7624,7 @@ and - et + et MB diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Frontends/VirtualBox/nls/VirtualBox_gl_ES.ts virtualbox-4.1.44-dfsg/src/VBox/Frontends/VirtualBox/nls/VirtualBox_gl_ES.ts --- virtualbox-4.1.12-dfsg/src/VBox/Frontends/VirtualBox/nls/VirtualBox_gl_ES.ts 2012-04-02 13:28:40.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Frontends/VirtualBox/nls/VirtualBox_gl_ES.ts 2015-11-11 15:08:28.000000000 +0000 @@ -5183,13 +5183,6 @@ Failed to detach the floppy device (<nobr><b>%1</b></nobr>) from the slot <i>%2</i> of the machine <b>%3</b>. - - <p>The virtual machine(s) <b>%1</b> are currently in a saved state.</p><p>If you continue the runtime state of the exported machine(s) will be discarded. Note that the existing machine(s) are not changed.</p> - - - - - Failed to update Guest Additions. The Guest Additions installation image will be mounted to provide a manual installation. @@ -5418,6 +5411,18 @@ extension pack + + <p>Failed to initialize COM because the VirtualBox global configuration directory <b><nobr>%1</nobr></b> is not accessible. Please check the permissions of this directory and of its parent directory.</p><p>The application will now terminate.</p> + + + + <p>The %n following virtual machine(s) are currently in a saved state: <b>%1</b></p><p>If you continue the runtime state of the exported machine(s) will be discarded. The other machine(s) will not be changed.</p> + This text is never used with n == 0. Feel free to drop the %n where possible, we only included it because of problems with Qt Linguist (but the user can see how many machines are in the list and doesn't need to be told). + + + + + UIMiniProcessWidgetAdditions @@ -8429,10 +8434,6 @@ ICH9 - and - - - MB size suffix MBytes=1024KBytes MB diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Frontends/VirtualBox/nls/VirtualBox_hu.ts virtualbox-4.1.44-dfsg/src/VBox/Frontends/VirtualBox/nls/VirtualBox_hu.ts --- virtualbox-4.1.12-dfsg/src/VBox/Frontends/VirtualBox/nls/VirtualBox_hu.ts 2012-04-02 13:28:40.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Frontends/VirtualBox/nls/VirtualBox_hu.ts 2015-11-11 15:08:28.000000000 +0000 @@ -5786,8 +5786,8 @@ <p>Úgy tűnik a VirtualBox Integrációs szolgáltatások nem érhetők el a virtuális gépen, és nélküle a megosztott mappák nem használhatók. A virtuális gépen belüli megosztott mappák használatához telepítsd fel az Integrációs szolgáltatásokat, ha nincsenek telepítve, vagy ha csak nem működnek helyesen, az <b>Eszközök</b> menüben az <b>Integrációs szolgáltatások telepítése...</b> választásával. Ha telepítve vannak, de a gép nem teljesen indult még el, a megosztott mappák elérhetők lesznek.</p> - <p>The virtual machine(s) <b>%1</b> are currently in a saved state.</p><p>If you continue the runtime state of the exported machine(s) will be discarded. Note that the existing machine(s) are not changed.</p> - + <p>The %n following virtual machine(s) are currently in a saved state: <b>%1</b></p><p>If you continue the runtime state of the exported machine(s) will be discarded. The other machine(s) will not be changed.</p> + <p>A virtuális gép jelenleg mentett állapotban van: <b>%1</b>.</p><p>Ha folytatod, az exportált gép állapota elveszik. A létező gépek nem módosulnak.</p> @@ -6031,6 +6031,17 @@ extension pack + + <p>Failed to initialize COM because the VirtualBox global configuration directory <b><nobr>%1</nobr></b> is not accessible. Please check the permissions of this directory and of its parent directory.</p><p>The application will now terminate.</p> + + + + <p>The %n following virtual machine(s) are currently in a saved state: <b>%1</b></p><p>If you continue the runtime state of the exported machine(s) will be discarded. The other machine(s) will not be changed.</p> + This text is never used with n == 0. Feel free to drop the %n where possible, we only included it because of problems with Qt Linguist (but the user can see how many machines are in the list and doesn't need to be told). + + <p>A virtuális gép jelenleg mentett állapotban van: <b>%1</b>.</p><p>Ha folytatod, az exportált gép állapota elveszik. A létező gépek nem módosulnak.</p> + + UIMiniProcessWidgetAdditions @@ -10171,7 +10182,7 @@ and - és + és MB diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Frontends/VirtualBox/nls/VirtualBox_id.ts virtualbox-4.1.44-dfsg/src/VBox/Frontends/VirtualBox/nls/VirtualBox_id.ts --- virtualbox-4.1.12-dfsg/src/VBox/Frontends/VirtualBox/nls/VirtualBox_id.ts 2012-04-02 13:28:40.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Frontends/VirtualBox/nls/VirtualBox_id.ts 2015-11-11 15:08:28.000000000 +0000 @@ -1,6 +1,6 @@ - + @@@ @@ -26,7 +26,7 @@ Oracle Corporation Comma-separated list of translators - David Yacobus <david_yacobus@yahoo.com> + David Yacobus <david_yacobus@yahoo.com>, Andika Triwidada <andika@gmail.com> @@ -97,73 +97,73 @@ VirtualBox - Error In %1 - + VirtualBox - Kesalahan Di %1 <html><b>%1 (rc=%2)</b><br/><br/> - + <html><b>%1 (rc=%2)</b><br/><br/> Please try reinstalling VirtualBox. - + Coba instal ulang VirtualBox. Make sure the kernel module has been loaded successfully. - + Pastikan bahwa modul kernel telah sukses dimuat. VirtualBox - Runtime Error - + VirtualBox - Kesalahan Runtime <b>Cannot access the kernel driver!</b><br/><br/> - + <b>Tak bisa mengakses driver kernel!</b><br/><br/> Unknown error %2 during initialization of the Runtime - + Kesalahan %2 yang tak dikenal saat inisialisasi Runtime Kernel driver not accessible - + Driver kernel tak bisa diakses The VirtualBox kernel modules do not match this version of VirtualBox. The installation of VirtualBox was apparently not successful. Please try completely uninstalling and reinstalling VirtualBox. - + Modul kernel VirtualBox tak cocok dengan versi VirtualBox ini. Instalasi VirtualBox sepertinya tak sukses. Silakan coba membongkar seluruhnya dan menginstal ulang VirtualBox. The VirtualBox kernel modules do not match this version of VirtualBox. The installation of VirtualBox was apparently not successful. Executing<br/><br/> <font color=blue>'/etc/init.d/vboxdrv setup'</font><br/><br/>may correct this. Make sure that you do not mix the OSE version and the PUEL version of VirtualBox. - + Modul kernel VirtualBox tak cocok dengan versi VirtualBox ini. Instalasi VirtualBox sepertinya tak sukses. Menjalankan <br/><br/> <font color=blue>'/etc/init.d/vboxdrv setup'</font><br/><br/>mungkin memperbaiki hal ini. Pastikan bahwa Anda tak mencampur VirtualBox versi OSE dan versi PUEL. This error means that the kernel driver was either not able to allocate enough memory or that some mapping operation failed. - + Kesalahan ini berarti driver kernel tak dapat mengalokasikan memori yang cukup atau beberapa operasi pemetaan gagal. The VirtualBox Linux kernel driver (vboxdrv) is either not loaded or there is a permission problem with /dev/vboxdrv. Please reinstall the kernel module by executing<br/><br/> <font color=blue>'/etc/init.d/vboxdrv setup'</font><br/><br/>as root. If it is available in your distribution, you should install the DKMS package first. This package keeps track of Linux kernel changes and recompiles the vboxdrv kernel module if necessary. - + Driver VirtualBox untuk kernel Linux (vboxdrv) mungkin tak dimuat atau ada masalah ijin dengan /dev/vboxdrv. Silakan instal ulang modul kernel dengan menjalankan<br/><br/> <font color=blue>'/etc/init.d/vboxdrv setup'</font><br/><br/>sebagai root. Bila tersedia untuk distribusi Anda, Anda mesti terlebih dahulu memasang paket DKMS. Paket ini mencatat perubahan kernel Linux dan mengkompail ulang modul kernel vboxdrv bila diperlukan. QIArrowSplitter &Back - + Kem&bali &Next - La&njut + La&njut QIFileDialog Select a directory - Pilih sebuah direktori + Pilih sebuah direktori Select a file - Pilih sebuah file + Pilih sebuah file @@ -177,25 +177,25 @@ QIHttp Connection timed out - + Koneksi time out Could not locate the file on the server (response: %1) - + Tidak dapat menemukan file tersebut pada server (respon: %1) QILabel &Copy - + &Salin QIMessageBox OK - Baik + Ok Yes @@ -215,19 +215,19 @@ &Details - &Detail + &Rincian &Details (%1 of %2) - + &Rincian (%1 dari %2) Copy all errors to the clipboard - + Salin semua error ke clipboard Copy - + Salin @@ -262,7 +262,7 @@ QIWizardPage Use the <b>%1</b> button to go to the next page of the wizard and the <b>%2</b> button to return to the previous page. You can also press <b>%3</b> if you want to cancel the execution of this wizard.</p> - + Pakai tombol <b>%1</b> untuk menuju halaman wizard berikutnya dan tombol <b>%2</b> untuk kembali ke halaman sebelumnya. Anda juga dapat menekan <b>%3</b> bila Anda ingin membatalkan eksekusi wizard ini.</p> @@ -289,7 +289,7 @@ Auto-resize &Guest Display - Auto-resize Tampilan &Guest + Otomatis Ubah Ukuran Tampilan &Guest Automatically resize the guest display when the window is resized (requires Guest Additions) @@ -480,143 +480,143 @@ Enable remote desktop (RDP) connections to this machine - + Aktifkan koneksi remote desktop (RDP) ke mesin ini Enable &Logging... debug action - + Aktifkan &Logging... Switch to &Fullscreen - + Beralih ke &Fullscreen Switch between normal and fullscreen mode - + Bertukar antara mode normal dan fullscreen Switch to Seam&less Mode - + Beralih ke Mode Seam&less Switch between normal and seamless desktop integration mode - + Bertukar antara mode normal dan integrasi desktop mulus Switch to &Scale Mode - + Beralih ke Mode &Skala Switch between normal and scale mode - + Bertukar antara mode normal dan skala Enable R&emote Display - + Aktifkan Tampilan R&emote &Settings... - &Setting... + &Pengaturan... Manage the virtual machine settings - + Kelola pengaturan mesin virtual Session I&nformation... - + I&nformasi Sesi... UIApplianceEditorWidget Virtual System %1 - + Sistem Virtual %1 Name - Nama + Nama Product - + Produk Product-URL - + URL-Produk Vendor - + Vendor Vendor-URL - + URL-Vendor Version - + Versi Description - + Deskripsi License - + Lisensi Guest OS Type - Tipe Sistem Operasi Guest + Tipe OS Guest CPU - + CPU RAM - + RAM Hard Disk Controller (IDE) - + Pengendali Hard Disk (IDE) Hard Disk Controller (SATA) - + Pengendali Hard Disk (SATA) Hard Disk Controller (SCSI) - + Pengendali Hard Disk (SCSI) DVD - + DVD Floppy - Floppy + Floppy Network Adapter - + Adaptor Jaringan USB Controller - + Pengendali USB Sound Card - + Kartu Suara Virtual Disk Image - Image Disk Virtual + Image Disk Virtual Unknown Hardware Item - + Item Hardware Tak Dikenal MB @@ -624,15 +624,15 @@ <b>Original Value:</b> %1 - + <b>Nilai Asli:</b> %1 Configuration - + Konfigurasi Warnings: - + Peringatan: MB @@ -646,141 +646,141 @@ Hard Disk Controller (SAS) - + Pengendali Hard Disk (SAS) When checked a new unique MAC address will assigned to all configured network cards. - + Bila ditandai, sebuah alamat MAC unik yang baru akan diberikan ke semua kartu jaringan yang dikonfigurasi. &Reinitialize the MAC address of all network cards - + Inisialisasi ulang alamat MAC dari semua kartu ja&ringan UIApplianceImportEditorWidget Importing Appliance ... - + Mengimpor Appliance ... Reading Appliance ... - + Membaca Appliance ... UICloneVMWizard Clone a virtual machine - + Klon suatu mesin virtual Clone - + Klon Linked Base for %1 and %2 - + Basis Tertaut bagi %1 dan %2 UICloneVMWizardPage1 <p>This wizard will help you to create a clone of your virtual machine.</p> - + <p>Wizard ini akan membantu Anda menciptakan sebuah klon bagi mesin virtual Anda.</p> <p>Please choose a name for the new virtual machine:</p> - + <p>Silakan pilih sebuah nama bagi mesin virtual baru:</p> &Reinitialize the MAC address of all network cards - + Inisialisasi ulang alamat MAC dari semua kar&tu jaringan Welcome to the virtual machine clone wizard - + Selamat datang ke wizard klon mesin virtual %1 Clone - + Klon %1 When checked a new unique MAC address will be assigned to all configured network cards. - + Saat ditandai, suatu alamat MAC unik yang baru akan diberikan ke semua kartu jaringan yang terkonfigurasi. UICloneVMWizardPage2 Cloning Configuration - + Konfigurasi Klon Full Clone - + Klon Penuh Linked Clone - + Klon Tertaut <p>Please select the type of the clone.</p><p>If you choose <b>Full Clone</b> an exact copy (including all virtual disk images) of the original VM will be created. If you select <b>Linked Clone</b>, a new VM will be created, but the virtual disk images will point to the virtual disk images of original VM.</p> - + <p>Silakan pilih tipe klon.</p><b>Bila Anda memilih <b>Klon Penuh</b> maka salinan eksak (termasuk semua image disk virtual) dari VM asli akan diciptakan. Bila Anda memilih <b>Klon Tertaut</b>, maka suatu VM baru akan diciptakan, tapi image disk virtual akan mengacu ke image disk virtual VM asli.</p> <p>Note that a new snapshot within the source VM is created in case you select <b>Linked Clone</b>.</p> - + <p>Perhatikan bahwa suatu snapshot baru dalam VM sumber diciptakan bila Anda memilih <b>Klon Tertaut</b>.</p> UICloneVMWizardPage3 Current machine state - + Keadaan mesin kini Current machine and all child states - + Keadaan mesin dan semua anak kini All states - + Semua keadaan Cloning Configuration - + Konfigurasi Klon Please choose which parts of the virtual machine should be cloned. - + Silakan pilih bagian mana dari mesin virtual yang mesti diklon. If you select <b>Current machine state</b>, only the current state of the virtual machine is cloned. - + Bila Anda memilih <b>Keadaan mesin kini</b>, hanya keadaan kini dari mesin virtual yang diklon. If you select <b>Current machine and all child states</b> the current state of the virtual machine and any states of child snapshots are cloned. - + Bila Anda memilih <b>Keadaan mesin dan semua anak kini</b> keadaan kini dari mesin virtual dan sebarang keadaan dari snapshot anak akan diklon. If you select <b>All states</b>, the current machine state and all snapshots are cloned. - + Bila Anda memilih <b>Semua keadaan</b>, keadaan mesin kini dan semua snapshot akan diklon. UIDescriptionPagePrivate No description. Press the Edit button below to add it. - Tidak ada deskripsi. Tekan tombol Edit dibawah untuk menambahkan. + Tidak ada deskripsi. Tekan tombol Edit dibawah untuk menambahkan. Edit - Edit + Edit Edit (Ctrl+E) - Edit (Ctrl+E) + Edit (Ctrl+E) @@ -788,290 +788,290 @@ Name details report - Nama + Nama OS Type details report - Tipe Sistem Operasi + Tipe OS Base Memory details report - Memori Dasar + Memori Dasar <nobr>%1 MB</nobr> details report - <nobr>%4 MB</nobr> {1 ?} + <nobr>%1 MB</nobr> Processors details report - + Prosesor <nobr>%1</nobr> details report - + <nobr>%1</nobr> Boot Order details report - Urutan Boot + Urutan Boot ACPI details report - ACPI + ACPI IO APIC details report - IO APIC + IO APIC BIOS details report - + BIOS VT-x/AMD-V details report - VT-x/AMD-V + VT-x/AMD-V Nested Paging details report - + Paging Bertingkat PAE/NX details report - PAE/NX + PAE/NX Acceleration details report - + Akselerasi Video Memory details report - Memori Video + Memori Video Screens details report - + Layar 2D Video details report - + Video 2D 3D details report - 3D + 3D Remote Desktop Server Port details report (VRDE Server) - + Port Server Remote Desktop Remote Desktop Server details report (VRDE Server) - + Server Remote Desktop Disabled details report (VRDE Server) - Mati + Dimatikan (CD/DVD) - + (CD/DVD) Not Attached details report (Storage) - Tidak Terpasang + Tidak Terpasang Host Driver details report (audio) - Driver Host + Driver Host Controller details report (audio) - Pengendali + Pengendali Disabled details report (audio) - Mati + Dimatikan Bridged adapter, %1 details report (network) - + Adaptor ter-bridge, %1 Internal network, '%1' details report (network) - + Jaringan internal, '%1' Host-only adapter, '%1' details report (network) - + Adaptor hanya-host, '%1' Adapter %1 details report (network) - Adapter %1 + Adaptor %1 Disabled details report (network) - Mati + Dimatikan Port %1 details report (serial ports) - Port %1 + Port %1 Disabled details report (serial ports) - Mati + Dimatikan Port %1 details report (parallel ports) - Port %1 + Port %1 Disabled details report (parallel ports) - Mati + Dimatikan Device Filters details report (USB) - Filter Device + Filter Device %1 (%2 active) details report (USB) - %1 (%2 aktif) + %1 (%2 aktif) Disabled details report (USB) - Mati + Dimatikan Shared Folders details report (shared folders) - Folder yang di Share + Folder yang di Share None details report (shared folders) - Tidak Ada + Tidak Ada None details report (description) - Tidak Ada + Tidak Ada The selected virtual machine is <i>inaccessible</i>. Please inspect the error message shown below and press the <b>Refresh</b> button if you want to repeat the accessibility check: - Mesin virtual terpilih <i>tidak dapat diakses</i>. Mohon periksa pesan kesalahan yang ditunjukkan di bawah ini dan tekan tombol <b>Refresh</b> bila anda ingin mengulang pemeriksaan aksesibilitas: + Mesin virtual yang dipilih <i>tidak dapat diakses</i>. Mohon periksa pesan kesalahan yang ditunjukkan di bawah ini dan tekan tombol <b>Refresh</b> bila Anda ingin mengulang pemeriksaan aksesibilitas: General details report - Garis Besar + Umum System details report - + Sistem Preview details report - + Pratinjau Display details report - + Tampilan Storage details report - + Penyimpanan Audio details report - Suara + Suara Network details report - Jaringan + Jaringan Serial Ports details report - Port Serial + Port Serial Parallel Ports details report - Port Paralel + Port Paralel USB details report - USB + USB Shared Folders details report - Folder yang di Share + Folder yang di Share Description details report - + Deskripsi Execution Cap details report - + Cap Eksekusi <nobr>%1%</nobr> details report - + <nobr>%1</nobr> Generic driver, '%1' details report (network) - + Driver generik, '%1' Generic driver, '%1' {&nbsp;%2&nbsp;} details report (network) - + Driver generik, '%1' {&nbsp;%2&nbsp;} @@ -1129,28 +1129,28 @@ Select folder to save Guest Additions image to - Pilih folder untuk menyimpan image Guest Additions + Pilih folder untuk menyimpan image Guest Additions UIDownloaderExtensionPack Select folder to save %1 to - + Pilih folder untuk menyimpan %1 UIDownloaderUserManual Select folder to save User Manual to - + Pilih folder untuk menyimpan Manual Pengguna UIExportApplianceWzd Appliance Export Wizard - + Wizard Ekspor Appliance Cancel @@ -1158,139 +1158,139 @@ Restore Defaults - + Kembalikan Default Export - + Ekspor UIExportApplianceWzdPage1 Welcome to the Appliance Export Wizard! - + Selamat Datang di Wizard Ekspor Appliance! <p>This wizard will guide you through the process of exporting an appliance.</p><p>%1</p><p>Please select the virtual machines that should be added to the appliance. You can select more than one. Please note that these machines have to be turned off before they can be exported.</p> - + <p>Wizard ini akan menuntun Anda melalui proses pengeksporan appliance.</p><p>%1</p><p>Silakan pilih mesin virtual yang mesti ditambahkan ke appliance. Anda dapat memilih lebih dari satu. Mohon dicatat bahwa mesin-mesin ini mesti dimatikan sebelum dapat diekspor.</p> UIExportApplianceWzdPage2 Appliance Export Settings - + Pengaturan Ekspor Appliance Please specify the target for the OVF export. You can choose between a local file system export, uploading the OVF to the Sun Cloud service or an S3 storage server. - + Silakan nyatakan target bagi ekspor OVF. Anda dapat memilih antara ekspor sistem berkas lokal, mengupload OVF ke layanan Cloud Sun, atau server penyimpanan S3. &Local Filesystem - + Sistem File &Lokal Sun &Cloud - + &Cloud Sun &Simple Storage System (S3) - + &Simple Storage System (S3) UIExportApplianceWzdPage3 Appliance Export Settings - + Pengaturan Ekspor Appliance &Username: - + Nama pengg&una: &Password: - + &Password: &Hostname: - + Nama &host: &Bucket: - + &Bucket: &File: - + &File: Write in legacy OVF 0.9 format for compatibility with other virtualization products. - + Tulis dalam format legacy OVF 0.9 untuk kompatibilitas dengan produk virtualisasi lain. &Write legacy OVF 0.9 - + &Tulis OVF 0.9 legacy Create a Manifest file for automatic data integrity checks on import. - + Buat file Manifest untuk pemeriksaan integritas data otomatis saat impor. Write &Manifest file - + Tulis file &Manifest Appliance - + Appliance Select a file to export into - + Pilih file tujuan ekspor Open Virtualization Format Archive (%1) - + Arsip Open Virtualization Format (%1) Open Virtualization Format (%1) - + Open Virtualization Format (%1) Please choose a filename to export the OVF/OVA to. If you use an <i>ova</i> file name extension, then all the files will be combined into one Open Virtualization Format Archive. If you use an <i>ovf</i> extension, several files will be written separately. Other extensions are not allowed. - + Silakan pilih nama file tujuan ekspor OVF/OVA. Bila Anda memakai ekstensi nama file <i>ova</i>, maka semua file akan digabungkan ke dalam satu Arsip Open Virtualization Format. Bila Anda memakai ekstensi <i>ovf</i>, beberapa file akan ditulis secara terpisah. Ekstensi lain tak diijinkan. Please complete the additional fields like the username, password and the bucket, and provide a filename for the OVF target. - + Silakan lengkapi field tambahan seperti nama pengguna, password, dan bucket, dan berikan nama file bagi target OVF. Please complete the additional fields like the username, password, hostname and the bucket, and provide a filename for the OVF target. - + Silakan lengkapi field tambahan seperti nama pengguna, password, nama host, dan bucket, dan berikan nama file bagi target OVF. UIExportApplianceWzdPage4 Appliance Export Settings - + Pengaturan Ekspor Appliance Checking files ... - + Memeriksa file ... Removing files ... - + Menghapus file ... Exporting Appliance ... - + Mengekspor Appliance ... Here you can change additional configuration values of the selected virtual machines. You can modify most of the properties shown by double-clicking on the items. - + Di sini Anda dapat mengubah nilai konfigurasi tambahan dari mesin virtual yang dipilih. Anda dapat mengubah kebanyakan properti yang ditunjukkan dengan klik ganda pada item. @@ -1401,121 +1401,121 @@ Start - Mulai + Mulai UIFirstRunWzdPage1 Welcome to the First Run Wizard! - Selamat Datang di First Run Wizard! + Selamat datang di First Run Wizard! <p>You have started a newly created virtual machine for the first time. This wizard will help you to perform the steps necessary for installing an operating system of your choice onto this virtual machine.</p><p>%1</p> - + <p>Anda telah memulai mesin virtual yang baru dibuat untuk pertama kali. Wizard ini akan membantu Anda melaksanakan langkah-langkah yang diperlukan untuk memasang sistem operasi pilihan Anda pada mesin virtual ini.</p><p>%1</p> <p>You have started a newly created virtual machine for the first time. This wizard will help you to perform the steps necessary for booting an operating system of your choice on the virtual machine.</p><p>Note that you will not be able to install an operating system into this virtual machine right now because you did not attach any hard disk to it. If this is not what you want, you can cancel the execution of this wizard, select <b>Settings</b> from the <b>Machine</b> menu of the main VirtualBox window to access the settings dialog of this machine and change the hard disk configuration.</p><p>%1</p> - + <p>Anda telah memulai mesin virtual yang baru dibuat untuk pertama kali. Wizard ini akan membantu Anda melaksanakan langkah-langkah yang diperlukan untuk memasang sistem operasi pilihan Anda pada mesin virtual ini.</p><p>Perhatikan bahwa Anda tidak akan dapat memasang sistem operasi ke dalam mesin virtual ini saat ini karena Anda belum menempelkan sebarang hard disk kepadanya. Bila ini bukan yang Anda mau, Anda dapat membatalkan eksekusi wizard ini, pilih <b>Tatanan</b> dari menu <b>Mesin</b> dari window utama VirtualBox untuk mengakses dialog penataan dari mesin ini dan ubah konfigurasi hard disk.</p><p>%1</p> UIFirstRunWzdPage2 <p>Select the media which contains the setup program of the operating system you want to install. This media must be bootable, otherwise the setup program will not be able to start.</p> - <p>Pilih media yang berisi program setup dari sistem operasi yang ingin anda instal. Media ini harus dapat di-boot, atau program setup tidak akan dapat memulai.</p> + <p>Pilih media yang berisi program setup dari sistem operasi yang ingin anda instal. Media ini harus dapat di-boot, atau program setup tidak akan dapat memulai.</p> <p>Select the media that contains the operating system you want to work with. This media must be bootable, otherwise the operating system will not be able to start.</p> - <p>Pilih media yang berisi sistem operasi yang ingin anda gunakan untuk bekerja. Media ini harus dapat di-boot, atau sistem operasi tidak akan dapat memulai.</p> + <p>Pilih media yang berisi sistem operasi yang ingin anda gunakan untuk bekerja. Media ini harus dapat di-boot, atau sistem operasi tidak akan dapat memulai.</p> Media Source - Source Media + Sumber Media Select Installation Media - Pilih Media Instalasi + Pilih Media Instalasi UIFirstRunWzdPage3 <p>You have selected the following media to boot from:</p> - <p>Anda telah memilih media berikut untuk mem-boot dari:</p> + <p>Anda telah memilih media berikut untuk mem-boot darinya:</p> <p>You have selected the following media to boot an operating system from:</p> - <p>Anda telah memilih media berikut untuk mem-boot sebuah sistem operasi dari:</p> + <p>Anda telah memilih media berikut untuk mem-boot sebuah sistem operasi darinya:</p> <p>If the above is correct, press the <b>Finish</b> button. Once you press it, the selected media will be temporarily mounted on the virtual machine and the machine will start execution.</p><p>Please note that when you close the virtual machine, the specified media will be automatically unmounted and the boot device will be set back to the first hard disk.</p><p>Depending on the type of the setup program, you may need to manually unmount (eject) the media after the setup program reboots the virtual machine, to prevent the installation process from starting again. You can do this by selecting the corresponding <b>Unmount...</b> action in the <b>Devices</b> menu.</p> - <p>Bila yang ditampilkan di atas sudah tepat, tekan tombol <b>Selesai</b>. Setelah anda menekannya, media yang terpilih akan terpasang sementara pada mesin virtual dan mesin tersebut akan memulai eksekusi.</p><p>Mohon perhatikan bahwa saat anda menutup mesin virtual, media tersebut akan secara otomatis terlepas dan device boot akan di-set kembali pada hard disk awal.</p><p?BErgantung pada program setup, anda mungkin perlu melepas (eject) media tersebut setelah program set-up me-reboot mesin virtual, untuk mencegah agar proses instalasi tidak berjalan kembali. Anda dapat melakukan ini dengan memilih tindakan <b>Lepas...</b> yang bersangkutan pada menu <b>Device</b>.</p> + <p>Bila yang ditampilkan di atas sudah tepat, tekan tombol <b>Selesai</b>. Setelah Anda menekannya, media yang dipilih akan dipasang sementara pada mesin virtual dan mesin tersebut akan memulai eksekusi.</p><p>Mohon perhatikan bahwa saat Anda menutup mesin virtual, media tersebut akan secara otomatis terlepas dan device boot akan ditata kembali ke hard disk pertama.</p><p>Bergantung pada tipe program setup, Anda mungkin perlu melepas (eject) media tersebut setelah program setup me-reboot mesin virtual, untuk mencegah agar proses instalasi tidak dimulai kembali. Anda dapat melakukan ini dengan memilih tindakan <b>Lepas...</b> yang bersangkutan pada menu <b>Device</b>.</p> <p>If the above is correct, press the <b>Finish</b> button. Once you press it, the selected media will be mounted on the virtual machine and the machine will start execution.</p> - <p>Bila yang ditampilkan di atas sudah tepat, tekan tombol <b>Selesai</b>. Setelah anda menekannya, media yang terpilih akan terpasang pada mesin virtual dan mesin tersebut akan memulai eksekusi.</p> + <p>Bila yang ditampilkan di atas sudah tepat, tekan tombol <b>Selesai</b>. Setelah Anda menekannya, media yang dipilih akan dipasang pada mesin virtual dan mesin tersebut akan memulai eksekusi.</p> Summary - Risalah + Ringkasan CD/DVD-ROM Device - Device CD/DVD-ROM + Device CD/DVD-ROM Type summary - + Tipe Source summary - + Sumber UIGlobalSettingsExtension &Extension Packages: - + Paket &Ekstensi: Lists all installed packages. - + Tampilkan semua paket terinstall. Active - + Aktif Name - Nama + Nama Version - + Versi Add package - + Tambah paket Remove package - + Hapus paket Select an extension package file - + Pilih sebuah file paket ekstensi Extension package files (%1) - + File paket ekstensi (%1) Extensions - + Ekstensi @@ -1526,66 +1526,66 @@ Displays the path to the default virtual machine folder. This folder is used, if not explicitly specified otherwise, when creating new virtual machines. - Menampilkan path ke folder default mesin virtual. Folder ini digunakan, bila tidak disebutkan sebaliknya secara eksplisit, saat menambahkan atau menciptakan mesin virtual baru. + Tampilkan path ke folder default mesin virtual. Folder ini digunakan, bila nilai lain tidak dinyatakan secara eksplisit, saat menciptakan mesin virtual baru. Displays the path to the library that provides authentication for Remote Display (VRDP) clients. - Menampilkan path menuju library yang menyediakan otentikasi untuk klien Remote Display (VRDP). + Tampilkan path ke library yang menyediakan otentikasi untuk klien Remote Display (VRDP). Default &Machine Folder: - + Folder Default &Mesin: V&RDP Authentication Library: - + Library Otentikasi V&RDP: When checked, the application will provide an icon with the context menu in the system tray. - + Bila ditandai, aplikasi akan menyediakan sebuah ikon dengan menu konteks dalam baki sistem. &Show System Tray Icon - + Tampilkan Ikon Baki &Sistem &Auto show Dock and Menubar in fullscreen - + Tampilkan otom&atis Dock dan Menubar dalam fullscreen When checked, the host screen saver will be disabled whenever a virtual machine is running. - + Saat ditandai, screen saver host akan dimatikan ketika sebuah mesin virtual sedang berjalan. Disable Host &ScreenSaver - + Matikan &ScreenSaver Host UIGlobalSettingsInput Host &Key: - + &Tombol Host: Displays the key used as a Host Key in the VM window. Activate the entry field and press a new Host Key. Note that alphanumeric, cursor movement and editing keys cannot be used. - Menunjukkan tombol yang digunakan sebagai tombol Host dalam window Mesin Virtual. Aktifkan firld entry dan tekan Tombol Host baru. Perhatikan bahwa alfanumerik, perpindahan kursor dan tombol untuk mengedit tidak dapat digunakan sebagai Tombol Host. + Tunjukkan tombol yang digunakan sebagai tombol Host dalam window VM. Aktifkan field entry dan tekan Tombol Host baru. Perhatikan bahwa tombol alfanumerik, perpindahan kursor dan tombol untuk mengedit tidak dapat digunakan sebagai Tombol Host. When checked, the keyboard is automatically captured every time the VM window is activated. When the keyboard is captured, all keystrokes (including system ones like Alt-Tab) are directed to the VM. - Saat tertandai, keyboard secara otomatis tertangkap setiap kali window Mesin VIrtual diaktifkan. Saat keyboard ditangkap, semua tekanan tombol (termasuk untuk sistem seperti Alt+Tab) ditujukan ke Mesin Virtual. + Saat tertandai, keyboard secara otomatis tertangkap setiap kali window VM diaktifkan. Saat keyboard ditangkap, semua tekanan tombol (termasuk untuk sistem seperti Alt+Tab) diarahkan ke VM. &Auto Capture Keyboard - + Otom&atis Tangkap Keyboard Reset host combination - + Reset kombinasi host Resets the key combination used as the host combination in the VM window. - + Reset kombinasi tombol yang dipakai sebagai kombinasi host dalam window VM. @@ -1593,397 +1593,397 @@ (built-in) Language - (built-in) + (built-in) <unavailable> Language - <tidak tersedia> + <tidak tersedia> <unknown> Author(s) - <tidak diketahui> + <tidak diketahui> Default Language - Nilai awal + Default Language: - Bahasa: + Bahasa: &Interface Language: - + Bahasa &Antar Muka: Lists all available user interface languages. The effective language is written in <b>bold</b>. Select <i>Default</i> to reset to the system default language. - + Menampilkan daftar semua bahasa antarmuka yang tersedia. Bahasa yang efektif dicetak <b>tebal</b>. Pilih <i>Default</i> untuk me-reset ke bahasa default sistem. Name - Nama + Nama Id - + Id Language - Bahasa + Bahasa Author - + Pencipta Author(s): - Pencipta: + Pencipta: UIGlobalSettingsNetwork host IPv4 address of <b>%1</b> is wrong - + alamat IPv4 host <b>%1</b> salah host IPv4 network mask of <b>%1</b> is wrong - + mask jaringan IPv4 host <b>%1</b> salah host IPv6 address of <b>%1</b> is wrong - + alamat IPv6 host <b>%1</b> salah DHCP server address of <b>%1</b> is wrong - + alamat server DHCP <b>%1</b> salah DHCP server network mask of <b>%1</b> is wrong - + mask jaringan server DHCP <b>%1</b> salah DHCP lower address bound of <b>%1</b> is wrong - + batas bawah alamat DHCP <b>%1</b> salah DHCP upper address bound of <b>%1</b> is wrong - + batas atas alamat DHCP <b>%1</b> salah Adapter - Adapter + Adaptor Automatically configured interface - + Otomatis dikonfigurasi Manually configured interface - + Dikonfigurasi secara manual IPv4 Address - + Alamat IPv4 Not set address - + Tak ditata IPv4 Network Mask - + Mask Jaringan IPv4 Not set mask - + Tak ditata IPv6 Address - + Alamat IPv6 IPv6 Network Mask Length - + Panjang Mask Jaringan IPv6 Not set length - + Tak ditata DHCP Server - + Server DHCP Enabled server - Menyala + Diaktifkan Disabled server - Mati + Dimatikan Address - + Alamat Network Mask - + Mask Jaringan Lower Bound - + Batas Bawah Not set bound - + Tak ditata Upper Bound - + Batas Atas &Add host-only network - + T&ambahkan jaringan hanya-host &Remove host-only network - + &Hapus jaringan hanya-host &Edit host-only network - + &Edit jaringan hanya-host &Host-only Networks: - + Jaringan &Hanya-host: Lists all available host-only networks. - + Tampilkan semua jaringan hanya-host yang tersedia. Name - Nama + Nama Networking - + Jaringan UIGlobalSettingsNetworkDetails Host-only Network Details - + Rincian Jaringan Hanya-host &Adapter - + &Adaptor Manual &Configuration - + &Konfigurasi Manual Use manual configuration for this host-only network adapter. - + Gunakan konfigurasi manual bagi adaptor jaringan hanya-host ini. &IPv4 Address: - + Alamat &IPv4: Displays the host IPv4 address for this adapter. - + Tampilkan alamat IPv4 host bagi adaptor ini. IPv4 Network &Mask: - + &Mask Jaringan IPv4: Displays the host IPv4 network mask for this adapter. - + Tampilkan mask jaringan IPv4 host bagi adaptor ini. I&Pv6 Address: - + Alamat I&Pv6: Displays the host IPv6 address for this adapter if IPv6 is supported. - + Tampilkan alamat IPv6 host bagi adaptor ini bila IPv6 didukung. IPv6 Network Mask &Length: - + &Panjang Mask Jaringan IPv6: Displays the host IPv6 network mask prefix length for this adapter if IPv6 is supported. - + Tampilkan panjang prefiks mask jaringan IPv6 host bagi adaptor ini bila IPv6 didukung. &DHCP Server - + Server &DHCP &Enable Server - + Aktifkan S&erver Indicates whether the DHCP Server is enabled on machine startup or not. - + Menandakan apakah Server DHCP diaktifkan saat startup mesin atau tidak. Server Add&ress: - + Alamat Se&rver: Displays the address of the DHCP server servicing the network associated with this host-only adapter. - + Tampilkan alamat server DHCP yang melayani jaringan yang diasosiasikan dengan adaptor hanya-host ini. Server &Mask: - + &Mask Server: Displays the network mask of the DHCP server servicing the network associated with this host-only adapter. - + Tampilkan mask jaringan dari server DHCP yang melayani jaringan yang diasosiasikan dengan adaptor hanya-host ini. &Lower Address Bound: - + Batas Bawah A&lamat: Displays the lower address bound offered by the DHCP server servicing the network associated with this host-only adapter. - + Tampilkan batas bawah alamat yang ditawarkan oleh server DHCP yang melayani jaringan yang diasosiasikan dengan adaptor hanya-host ini. &Upper Address Bound: - + Batas &Atas Alamat: Displays the upper address bound offered by the DHCP server servicing the network associated with this host-only adapter. - + Tampilkan batas atas alamat yang ditawarkan oleh server DHCP yang melayani jaringan yang diasosiasikan dengan adaptor hanya-host ini. UIGlobalSettingsProxy When checked, VirtualBox will use the proxy settings supplied for tasks like downloading Guest Additions from the network or checking for updates. - + Bila ditandai, VirtualBox akan memakai pengaturan proksi yang diberikan untuk tugas seperti men-download Guest Addition dari jaringan atau memeriksa update. &Enable proxy - + &Nyalakan proksi Ho&st: - + Ho&st: Changes the proxy host. - + Ubah host proksi. &Port: - + &Port: Changes the proxy port. - + Ubah port proksi. When checked the authentication supplied will be used with the proxy server. - + Bila ditandai, otentikasi yang diberikan akan dipakai dengan server proksi. &Use authentication - + G&unakan otentikasi User &name: - + &Nama pengguna: Changes the user name used for authentication. - + Ubah nama pengguna yang dipakai untuk otentikasi. Pass&word: - + &Password: Changes the password used for authentication. - + Ubah password yang dipakai untuk otentikasi. UIGlobalSettingsUpdate When checked, the application will periodically connect to the VirtualBox website and check whether a new VirtualBox version is available. - + Bila ditandai, aplikasi akan menyambung secara periodik ke situs web VirtualBox dan memeriksa apakah sebuah versi baru VirtualBox telah tersedia. &Check for updates - + &Periksa update &Once per: - + &Sekali setiap: Specifies how often the new version check should be performed. Note that if you want to completely disable this check, just clear the above check box. - + Nyatakan seberapa sering pemeriksaan versi baru mesti dilakukan. Perhatikan bahwa bila Anda ingin mematikan pemeriksaan ini sepenuhnya, kosongkan saja kotak contreng di atas. Next Check: - + Pemeriksaan Berikutnya: Check for: - + Memeriksa keberadaan: <p>Choose this if you only wish to be notified about stable updates to VirtualBox.</p> - + <p>Pilih ini bila Anda hanya menghendaki untuk diberitahu tentang update stabil atas VirtualBox.</p> &Stable release versions - + Versi rilis &stabil <p>Choose this if you wish to be notified about all new VirtualBox releases.</p> - + <p>Pilih ini bila Anda menghendaki untuk diberitahu tentang semua rilis baru VirtualBox.</p> &All new releases - + Semu&a rilis baru <p>Choose this to be notified about all new VirtualBox releases and pre-release versions of VirtualBox.</p> - + <p>Pilih ini untuk diberitahu tentang semua rilis baru VirtualBox dan versi prarilis dari VirtualBox.</p> All new releases and &pre-releases - + Semua rilis baru dan &prarilis UIHelpButton &Help - &Bantuan + &Bantuan @@ -1998,23 +1998,23 @@ Left Shift - Shift Kiri + Shift Kiri Right Shift - Shift Kanan + Shift Kanan Left Ctrl - Ctrl Kiri + Ctrl Kiri Right Ctrl - Ctrl Kanan + Ctrl Kanan Left Alt - Alt Kiri + Alt Kiri Right Alt @@ -2166,14 +2166,14 @@ None - Tidak Ada + Tidak Ada UIImportApplianceWzd Appliance Import Wizard - + Wizard Impor Appliance Cancel @@ -2181,76 +2181,76 @@ Restore Defaults - + Kembalikan Default Import - + Impor UIImportApplianceWzdPage1 Select an appliance to import - + Pilih appliance untuk diimpor Open Virtualization Format (%1) - + Format Open Virtualization (%1) Welcome to the Appliance Import Wizard! - + Selamat Datang di Wizard Impor Appliance! <p>This wizard will guide you through importing an appliance.</p><p>%1</p><p>VirtualBox currently supports importing appliances saved in the Open Virtualization Format (OVF). To continue, select the file to import below:</p> - + <p>Wizard ini akan membimbing Anda melakukan pengimporan appliance.</p><p>%1</p><p>VirtualBox kini mendukung pengimporan appliance yang disimpan dalam Open Virtualization Format (OVF). Untuk melanjutkan, pilih file yang akan diimpor di bawah:</p> UIImportApplianceWzdPage2 These are the virtual machines contained in the appliance and the suggested settings of the imported VirtualBox machines. You can change many of the properties shown by double-clicking on the items and disable others using the check boxes below. - + Ini adalah mesin virtual yang dimuat di dalam appliance dan tatanan yang disarankan dari mesin VirtualBox yang diimpor. Anda dapat mengubah berbagai properti yang ditampilkan dengan melakukan klik ganda pada butir dan mematikan lainnya dengan memakai check box di bawah. Appliance Import Settings - + Pengaturan Impor Appliance UIImportLicenseViewer <b>The virtual system "%1" requires that you agree to the terms and conditions of the software license agreement shown below.</b><br /><br />Click <b>Agree</b> to continue or click <b>Disagree</b> to cancel the import. - + <b>Sistem virtual "%1" menuntut Anda setuju dengan syarat dan ketentuan dari persetujuan lisensi software yang ditunjukkan di bawah.</b><br /><br />Klik <b>Setuju</b> untuk melanjutkan atau klik <b>Tidak Setuju</b> untuk membatalkan impor. Software License Agreement - + Persetujuan Lisensi Software &Disagree - + Ti&dak Setuju &Agree - + &Setuju &Print... - + &Cetak... &Save... - + &Simpan... Text (*.txt) - + Teks (*.txt) Save license to file... - + Simpan lisensi ke file... @@ -2258,27 +2258,27 @@ <p style='white-space:pre'><nobr>Indicates the activity of the virtual hard disks:</nobr>%1</p> HDD tooltip - + <p style='white-space:pre'><nobr>Mengindikasikan aktifitas media hard disk virtual:</nobr>%1</p> <p style='white-space:pre'><nobr>Indicates the activity of the CD/DVD devices:</nobr>%1</p> CD/DVD tooltip - + <p style='white-space:pre'><nobr>Mengindikasikan aktifitas media CD/DVD:</nobr>%1</p> <p style='white-space:pre'><nobr>Indicates the activity of the floppy devices:</nobr>%1</p> FD tooltip - + <p style='white-space:pre'><nobr>Mengindikasikan aktifitas media floppy:</nobr>%1</p> <p style='white-space:pre'><nobr>Indicates the activity of the network interfaces:</nobr>%1</p> Network adapters tooltip - + <p style='white-space:pre'><nobr>Mengindikasikan aktifitas antarmuka jaringan:</nobr>%1</p> <br><nobr><b>Adapter %1 (%2)</b>: %3 cable %4</nobr> Network adapters tooltip - + <br><nobr><b>Adapter %1 (%2)</b>: %3 kabel %4</nobr> connected @@ -2298,7 +2298,7 @@ <p style='white-space:pre'><nobr>Indicates the activity of the attached USB devices:</nobr>%1</p> USB device tooltip - + <p style='white-space:pre'><nobr>Mengindikasikan aktifitas device USB terpasang:</nobr>%1</p> <br><nobr><b>No USB devices attached</b></nobr> @@ -2313,7 +2313,7 @@ <p style='white-space:pre'><nobr>Indicates the activity of the machine's shared folders:</nobr>%1</p> Shared folders tooltip - + <p style='white-space:pre'><nobr>Mengindikasikan aktifitas folder yang dishare:</nobr>%1</p> <br><nobr><b>No shared folders</b></nobr> @@ -2331,31 +2331,31 @@ Indicates whether the host mouse pointer is captured by the guest OS:<br><nobr><img src=:/mouse_disabled_16px.png/>&nbsp;&nbsp;pointer is not captured</nobr><br><nobr><img src=:/mouse_16px.png/>&nbsp;&nbsp;pointer is captured</nobr><br><nobr><img src=:/mouse_seamless_16px.png/>&nbsp;&nbsp;mouse integration (MI) is On</nobr><br><nobr><img src=:/mouse_can_seamless_16px.png/>&nbsp;&nbsp;MI is Off, pointer is captured</nobr><br><nobr><img src=:/mouse_can_seamless_uncaptured_16px.png/>&nbsp;&nbsp;MI is Off, pointer is not captured</nobr><br>Note that the mouse integration feature requires Guest Additions to be installed in the guest OS. - + Mengindikasikan apakah mouse pointer host tertangkap oleh sistem operasi guest:<br><nobr><img src=:/mouse_disabled_16px.png/>&nbsp;&nbsp;pointer tidak tertangkap</nobr><br><nobr><img src=:/mouse_16px.png/>&nbsp;&nbsp;pointer tertangkap</nobr><br><nobr><img src=:/mouse_seamless_16px.png/>&nbsp;&nbsp;integrasi mouse (MI) Menyala</nobr><br><nobr><img src=:/mouse_can_seamless_16px.png/>&nbsp;&nbsp;MI Mati, pointer tertangkap</nobr><br><nobr><img src=:/mouse_can_seamless_uncaptured_16px.png/>&nbsp;&nbsp;MI Mati, pointer tidak tertangkap</nobr><br>Perhatikan bahwa fitur integrasi mouse membutuhkan Guest Additions terinstall pada Sistem Operasi guest. Indicates whether the keyboard is captured by the guest OS (<img src=:/hostkey_captured_16px.png/>) or not (<img src=:/hostkey_16px.png/>). - + Mengindikasikan apakah keyboard tertangkap oleh Sistem Operasi guest (<img src=:/hostkey_captured_16px.png/>) atau tidak (<img src=:/hostkey_16px.png/>). Indicates whether the Remote Desktop Server is enabled (<img src=:/vrdp_16px.png/>) or not (<img src=:/vrdp_disabled_16px.png/>). - + Mengindikasikan apakah Remote Display (VRDP Server) dinyalakan (<img src=:/vrdp_16px.png/>) atau tidak (<img src=:/vrdp_disabled_16px.png/>). <hr>The Remote Desktop Server is listening on port %1 - + <hr>Server Remote Desktop mendengarkan pada port %1 Indicates the status of different features used by this virtual machine:<br><nobr><b>%1:</b>&nbsp;%2</nobr><br><nobr><b>%3:</b>&nbsp;%4</nobr><br><nobr><b>%5:</b>&nbsp;%6%</nobr> Virtualization Stuff LED - + Mengindikasikan status dari berbagai fitur yang dipakai oleh mesin virtual ini:<br><nobr><b>%1:</b>&nbsp;%2</nobr><br><nobr><b>%3:</b>&nbsp;%4</nobr><br><nobr><b>%5:</b>&nbsp;%6%</nobr> UILineTextEdit &Edit - + &Edit @@ -2366,11 +2366,11 @@ EXPERIMENTAL build %1r%2 - %3 - + build EXPERIMENTAL %1r%2 - %3 Preview Monitor %1 - + Pratinjau Monitor %1 Snapshot %1 @@ -2378,23 +2378,23 @@ No CD/DVD Devices Attached - + Tidak Ada Device CD/DVD Terpasang No CD/DVD devices attached to that VM - + Tidak ada device CD/DVD yang terpasang ke VM tersebut No Floppy Devices Attached - + Tidak Ada Device Floppy Terpasang No floppy devices attached to that VM - + Tidak ada device floppy yang tersambung ke VM tersebut No USB Devices Connected - + Tidak Ada Device USB Tersambung No supported devices connected to the host PC @@ -2405,146 +2405,146 @@ UIMachineSettingsAudio When checked, a virtual PCI audio card will be plugged into the virtual machine and will communicate with the host audio system using the specified driver. - Saat tertandai, Kartu suara PCI virtual akan tertancap pada mesin virtual yang menggunakan driver yang dijelaskan untuk berkomunikan pada kartu suara host. + Saat tertandai, kartu suara PCI virtual akan ditancapkan ke mesin virtual dan akan berkomunikasi dengan sistem audio host menggunakan driver yang dinyatakan. Enable &Audio - + &Nyalakan Suara Host Audio &Driver: - + &Driver Suara Host: Controls the audio output driver. The <b>Null Audio Driver</b> makes the guest see an audio card, however every access to it will be ignored. - + Mengendalikan driver keluaran suara. <b>Null Audio Driver</b> membuat guest dapat melihat sebuah kartu suara, namuan semua akses kepadanya akan diabaikan. Audio &Controller: - + &Pengendali Audio: Selects the type of the virtual sound card. Depending on this value, VirtualBox will provide different audio hardware to the virtual machine. - Memilih tipe kartu suara virtual. Bergantung pada nilai ini, VirtualBox akan menyediakan hardware suara yang berbeda pada mesin virtual. + Pilih tipe kartu suara virtual. Bergantung pada nilai ini, VirtualBox akan menyediakan hardware suara yang berbeda ke mesin virtual. UIMachineSettingsDisplay you have assigned less than <b>%1</b> of video memory which is the minimum amount required to switch the virtual machine to fullscreen or seamless mode. - + Anda telah memberikan memori video kurang dari <b>%1</b> yang merupakan besaran minimum yang diperlukan untuk menukar mesin virtual ke mode fullscreen atau seamless. <qt>%1&nbsp;MB</qt> - <qt>%1&nbsp;MB</qt> + <qt>%1&nbsp;MB</qt> &Video - + &Video Video &Memory: - + &Memori Video: Controls the amount of video memory provided to the virtual machine. - Mengendalikan jumlah memori video yang tersedia bagi mesin virtual. + Mengendalikan banyaknya memori video yang disediakan bagi mesin virtual. MB - MB + MB Extended Features: - + Fitur Tambahan: When checked, the virtual machine will be given access to the 3D graphics capabilities available on the host. - + Bila ditandai, mesin virtual akan diberi akses ke kapabilitas grafis 3D yang tersedia di host. Enable &3D Acceleration - + Aktifkan Akselerasi &3D &Remote Display - + Tampilan &Remote When checked, the VM will act as a Remote Desktop Protocol (RDP) server, allowing remote clients to connect and operate the VM (when it is running) using a standard RDP client. - Saat tertandai, mesin virtual akan bertindak sebagai server Remote Desktop Protocol (RDP), mengijinkan client jarak jauh untuk terhubung dan mengendalikan mesin virtual (saat berjalan) menggunakan client RDP standar. + Saat tertandai, VM akan bertindak sebagai server Remote Desktop Protocol (RDP), mengijinkan client jarak jauh untuk terhubung dan mengendalikan VM (saat berjalan) menggunakan client RDP standar. &Enable Server - + Aktifkan S&erver Server &Port: - + &Port Server: Authentication &Method: - + &Metode Otentikasi: Defines the VRDP authentication method. - Mendefinisikan metode otentikasi VRDP. + Menentukan metode otentikasi VRDP. Authentication &Timeout: - + &Timeout Otentikasi: Specifies the timeout for guest authentication, in milliseconds. - Menetapkan timeout untuk otentikasi guest, dalam milidetik. + Menyatakan timeout untuk otentikasi guest, dalam milidetik. you have assigned less than <b>%1</b> of video memory which is the minimum amount required for HD Video to be played efficiently. - + Anda telah memberikan memori video kurang dari <b>%1</b> yang merupakan besaran minimum yang diperlukan agar Video HD dimainkan secara efisien. When checked, the virtual machine will be given access to the Video Acceleration capabilities available on the host. - + Bila ditandai, mesin virtual akan diberi akses ke kapabilitas Akselerasi Video yang tersedia di host. Enable &2D Video Acceleration - + Aktifkan Akselerasi Video &2D The VRDP Server port number. You may specify <tt>0</tt> (zero), to select port 3389, the standard port for RDP. - + Nomor port Server VRDP. Anda boleh menyatakan <tt>0</tt> (nol), untuk memilih port 3389, port standar bagi RDP. Mo&nitor Count: - + Cacah Mo&nitor: Controls the amount of virtual monitors provided to the virtual machine. - + Mengendalikan banyaknya monitor virtual yang disediakan bagi mesin virtual. <qt>%1</qt> - + <qt>%1</qt> Specifies whether multiple simultaneous connections to the VM are permitted. - + Menyatakan apakah beberapa koneksi simultan ke VM diijinkan. &Allow Multiple Connections - + Ijink&an Koneksi Berganda you have 3D Acceleration enabled for a operation system which uses the WDDM video driver. For maximal performance set the guest VRAM to at least <b>%1</b>. - + Anda telah mengaktifkan Akselerasi 3D untuk sistem operasi yang memakai driver vide WDDM. Untuk kinerja maksimal aturlah VRAM guest paling tidak <b>%1</b>. you have 2D Video Acceleration enabled. As 2D Video Acceleration is supported for Windows guests only, this feature will be disabled. - + Anda telah mengaktifkan Akselerasi Video 2D. Karena Akselerasi Video 2D hanya didukung bagi guest Windows, fitur ini akan dimatikan. you enabled 3D acceleration. However, 3D acceleration is not working on the current host setup so you will not be able to start the VM. - + Anda telah mengaktifkan akselerasi 3D. Namun, akselerasi 3D tak bekerja pada setup host saat ini sehingga Anda tidak akan dapat memulai VM. @@ -2555,19 +2555,19 @@ Displays the path where snapshots of this virtual machine will be stored. Be aware that snapshots can take quite a lot of disk space. - Menampilkan path dimana snapshot dari mesin virtual akan disimpan. Perhatikan bahwa snapshot dapat menghabiskan banyak ruang disk. + Tampilkan path dimana snapshot dari mesin virtual akan disimpan. Sadari bahwa snapshot dapat menghabiskan banyak ruang disk. &Basic - &Dasar + &Dasar &Name: - + &Nama: Displays the name of the virtual machine. - Tampilkan nama dari mesin virtual. + Tampilkan nama dari mesin virtual. Displays the operating system type that you plan to install into this virtual machine (called a guest operating system). @@ -2603,7 +2603,7 @@ &Advanced - &Mendalam + Tingkat L&anjut Defines the boot device order. Use the checkboxes on the left to enable or disable individual boot devices. Move items up and down to change the device order. @@ -2639,11 +2639,11 @@ &Shared Clipboard: - + Clipboard yang di-&Share: Selects which clipboard data will be copied between the guest and the host OS. This feature requires Guest Additions to be installed in the guest OS. - Mendefinisikan mode sharing untuk clipboard diantara sistem operasi guest dan host. Perhatikan bahwa fitur ini membutuhkan Guest Additions terinstall pada sistem operasi guest. + Memilih data clipboard mana yang akan disalin diantara OS guest dan host. Fitur ini membutuhkan Guest Additions terinstall pada OS guest. Defines the type of the virtual IDE controller. Depending on this value, VirtualBox will provide different virtual IDE hardware devices to the guest OS. @@ -2651,51 +2651,51 @@ S&napshot Folder: - + Folder S&napshot: &Description - &Deskripsi + &Deskripsi Displays the description of the virtual machine. The description field is useful for commenting on configuration details of the installed guest OS. - Menampilkan deskripsi mesin virtual. Field deskripsi berguna untuk memberikan komentar pada detail konfigurasi dari Sistem Operasi guest terinstal. + Menampilkan deskripsi mesin virtual. Field deskripsi berguna untuk memberikan komentar pada detail konfigurasi dari OS guest terinstal. If checked, any change to mounted CD/DVD or Floppy media performed during machine execution will be saved in the settings file in order to preserve the configuration of mounted media between runs. - Saat tertandai, perubahan apapun pada media CD/DVD atau Floppy terpasang yang dilakukan saat eksekusi mesin akan disimpan dalam file setting guna menjaga konfigurasi media termuat diantara penjalanan. + Saat tertandai, perubahan apapun pada media CD/DVD atau Floppy terpasang yang dilakukan saat eksekusi mesin akan disimpan dalam file setting guna menjaga konfigurasi media termuat diantara penjalanan. Removable Media: - + Media Removable: &Remember Runtime Changes - + Ingat Perubahan &Runtime Mini ToolBar: - + ToolBar Mini: If checked, show the Mini ToolBar in Fullscreen and Seamless modes. - + Bila ditandai, menampilkan ToolBar Mini dalam mode Fullscreen dan Seamless. Show In &Fullscreen/Seamless - + Tampilkan Dalam &Fullscreen/Seamless If checked, show the Mini ToolBar at the top of the screen, rather than in its default position at the bottom of the screen. - + Bila ditandai, menampilkan ToolBar Mini di puncak layar, bukan di posisi default di dasar layar. Show At &Top Of Screen - + &Tampilkan Di Puncak Layar you have selected a 64-bit guest OS type for this VM. As such guests require hardware virtualization (VT-x/AMD-V), this feature will be enabled automatically. - + Anda telah memilih tipe OS guest 64-bit bagi VM ini. Karena guest seperti itu memerlukan virtualisasi hardware (VT-x/AMD-V), maka fitur ini akan otomatis diaktifkan. @@ -2710,23 +2710,23 @@ When checked, plugs this virtual network adapter into the virtual machine. - Saat ditandai, tancapkan adapter jaringan virtual ini ke mesin virtual. + Saat ditandai, menancapkan adaptor jaringan virtual ini ke mesin virtual. &Enable Network Adapter - &Nyalakan Adapter Jaringan + &Aktifkan Adaptor Jaringan Selects the type of the virtual network adapter. Depending on this value, VirtualBox will provide different network hardware to the virtual machine. - Memilih tipe adapter jaringan virtual. Bergantung pada nilai tersebut, VirtualBox akan menyediakan hardware jaringan yang berbeda pada mesin virtual. + Memilih tipe adaptor jaringan virtual. Bergantung pada nilai tersebut, VirtualBox akan menyediakan hardware jaringan yang berbeda bagi mesin virtual. &Attached to: - + Terp&asang pada: Controls how this virtual adapter is attached to the real network of the Host OS. - Mengendalikan cara adapter virtual ini terpasang pada jaringan Sistem Operasi Host yang sesungguhnya. + Mengendalikan cara adaptor virtual ini dipasangkan pada jaringan OS Host yang sesungguhnya. Displays the name of the internal network selected for this adapter. @@ -2734,11 +2734,11 @@ Displays the MAC address of this adapter. It contains exactly 12 characters chosen from {0-9,A-F}. Note that the second character must be an even digit. - Menampilkan alamat MAC dari adapter ini. Ia berisi tepat 12 karakter dipilih dari {0-9,A-F}. Perhatikan bahwa karakter kedua harus digit genap. + Menampilkan alamat MAC dari adaptor ini. Ia berisi tepat 12 karakter dipilih dari {0-9,A-F}. Perhatikan bahwa karakter kedua harus digit genap. Generates a new random MAC address. - Hasilkan alamat MAC baru secara acak. + Hasilkan alamat MAC baru secara acak. &Generate @@ -2746,7 +2746,7 @@ Indicates whether the virtual network cable is plugged in on machine startup or not. - Menunjukkan apakah kabel jaringan virtual tertancap saat mesin mulai menyala atau tidak. + Menunjukkan apakah kabel jaringan virtual tertancap saat mesin mulai menyala atau tidak. Ca&ble Connected @@ -2788,88 +2788,88 @@ Adapter &Type: - + &Tipe Adaptor: no bridged network adapter is selected - + tak ada adaptor jaringan ter-bridge yang dipilih no internal network name is specified - + nama jaringan internal tidak dinyatakan no host-only network adapter is selected - + tidak ada adaptor jaringan hanya-host yang dipilih Not selected network adapter name - + Tidak dipilih &Name: - + &Nama: A&dvanced - + Tingkat L&anjut Shows or hides additional network adapter options. - + Tampilkan atau sembunyikan opsi adaptor jaringan tambahan. &Mac Address: - + Alamat &MAC: &Cable connected - + Ka&bel terhubung Opens dialog to manage port forwarding rules. - + Buka dialog untuk mengelola aturan penerusan port. &Port Forwarding - + Penerusan &Port &Promiscuous Mode: - + Mode &Promiscuous: Selects the promiscuous mode policy of the network adapter when attached to an internal network, host only network or a bridge. - + Pilih kebijakan mode promiscuous dari adaptor jaringan ketika disambung ke jaringan internal, jaringan hanya-host, atau suatu bridge. Generic Properties: - + Properti Generik: Enter any configuration settings here for the network attachment driver you will be using. The settings should be of the form <b>name=value</b> and will depend on the driver. Use <b>shift-enter</b> to add a new entry. - + Masukkan pengaturan konfigurasi di sini bagi driver sambungan jaringan yang akan Anda pakai. Pengaturan mesti dalam bentuk <b>nama=nilai</b> dan akan bergantung kepada driver. Gunakan <b>shift-enter</b> untuk menambah entri baru. no generic driver is selected - + tidak ada driver generik yang dipilih Selects the network adapter on the host system that traffic to and from this network card will go through. - + Pilih adaptor jaringan pada sistem host yang akan dilalui oleh lalu lintas dari dan ke kartu jaringan ini. Enter the name of the internal network that this network card will be connected to. You can create a new internal network by choosing a name which is not used by any other network cards in this virtual machine or others. - + Masukkan nama jaringan internal yang akan disambung ke kartu jaringan ini. Anda dapat membuat suatu jaringan internal baru dengan memilih nama yang tak dipakai oleh kartu jaringan lainnya di mesin virtual ini dan lainnya. Selects the virtual network adapter on the host system that traffic to and from this network card will go through. You can create and remove adapters using the global network settings in the virtual machine manager window. - + Pilih adaptor jaringan virtual pada sistem host yang akan dilalui oleh lalu lintas dari dan ke kartu jaringan ini. Anda dapat membuat dan menghapus adaptor memakai pengaturan jaringan global dalam window manajer mesin virtual. Selects the driver to be used with this network card. - + Pilih driver yang akan dipakai untuk kartu jaringan ini. @@ -2903,27 +2903,27 @@ Port %1 parallel ports - Port %1 + Port %1 When checked, enables the given parallel port of the virtual machine. - Saat ditandai, menyalakan port paralel yang diberikan pada mesin virtual. + Saat ditandai, menyalakan port paralel yang diberikan pada mesin virtual. &Enable Parallel Port - Nyalakan Port Paral&el + Nyalakan Port Paral&el Port &Number: - + &Nomor Port: Displays the parallel port number. You can choose one of the standard parallel ports or select <b>User-defined</b> and specify port parameters manually. - Menampilkan nomor port paralel. Anda dapat memilih satu dari port paralel standar atau pilih <b>Didefinisikan Pengguna</b> dan tentukan parameter port secara manual. + Tampilkan nomor port paralel. Anda dapat memilih satu dari port paralel standar atau pilih <b>Didefinisikan pengguna</b> dan menyatakan parameter port secara manual. &IRQ: - + &IRQ: Displays the IRQ number of this parallel port. Valid values are integer numbers in range from <tt>0</tt> to <tt>255</tt>. Values greater than <tt>15</tt> may only be used if the <b>IO APIC</b> is enabled for this virtual machine. @@ -2931,7 +2931,7 @@ I/O Po&rt: - + Po&rt I/O: Displays the base I/O port address of this parallel port. This should be a whole number between <tt>0</tt> and <tt>0xFFFF</tt>. @@ -2939,187 +2939,187 @@ Port &Path: - + &Path Port: Displays the host parallel device name. - Menampilkan nama host paralel device. + Tampilkan nama device paralel milik host. Displays the IRQ number of this parallel port. This should be a whole number between <tt>0</tt> and <tt>255</tt>. Values greater than <tt>15</tt> may only be used if the <b>IO APIC</b> setting is enabled for this virtual machine. - + Tampilkan nomor IRQ dari port paralel ini. Ini mesti berupa bilangan bulat antara <tt>0</tt> dan <tt>255</tt>. Nilai lebih dari <tt>15</tt> hanya bisa digunakan bila pengaturan <b>IO APIC</b> dinyalakan untuk mesin virtual ini. Displays the base I/O port address of this parallel port. Valid values are integer numbers in range from <tt>0</tt> to <tt>0xFFFF</tt>. - + Tampilkan alamat dasar port I/O dari port paralel ini. Nilai yang valid adalah bilangan bulat dalam jangkauan <tt>0</tt> hingga <tt>0xFFFF</tt>. UIMachineSettingsParallelPage Duplicate port number selected - Nomor port ganda terpilih + Nomor port duplikat dipilih Port path not specified - Path port tidak dijelaskan + Path port tidak dinyatakan Duplicate port path entered - Path port ganda dimasukkan + Path port duplikat dimasukkan UIMachineSettingsPortForwardingDlg Port Forwarding Rules - + Aturan Penerusan Port This table contains a list of port forwarding rules. - + Tabel ini memuat daftar aturan penerusan port. Insert new rule - + Sisipkan aturan baru Copy selected rule - + Salin aturan yang dipilih Delete selected rule - + Hapus aturan yang dipilih This button adds new port forwarding rule. - + Tombol ini menambahkan aturan baru penerusan port. This button deletes selected port forwarding rule. - + Tombol ini menghapus aturan penerusan port yang dipilih. UIMachineSettingsSF Adds a new shared folder definition. - Menambahkan sebuah definisi baru folder yang di share. + Menambahkan sebuah definisi baru folder yang di share. Edits the selected shared folder definition. - Edit definisi folder yang di share terpilih. + Edit definisi folder yang di share yang dipilih. Removes the selected shared folder definition. - Hapus definisi folder yang di share terpilih. + Hapus definisi folder yang di share yang dipilih. Machine Folders - Folder Mesin + Folder Mesin Transient Folders - Folder Transient + Folder Transien Full - Penuh + Penuh Read-only - Baca saja + Baca saja Lists all shared folders accessible to this machine. Use 'net use x: \\vboxsvr\share' to access a shared folder named <i>share</i> from a DOS-like OS, or 'mount -t vboxsf share mount_point' to access it from a Linux OS. This feature requires Guest Additions. - + Tampilkan daftar semua folder yang di share yang dapat diakses oleh mesin ini. Gunakan 'net use x: \\vboxsvr\share' untuk mengakses sebuah folder yang di share bernama <i>share</i> dari OS serupa DOS atau 'mount -t vboxsf share titik_mount_point' dari OS Linux. Fitur ini membutuhkan Guest Additions. Name - Nama + Nama Path - Path + Path Access - Akses + Akses &Add Shared Folder - + T&ambah Folder Yang Di-Share &Edit Shared Folder - + &Edit Folder Yang Di-Share &Remove Shared Folder - + Hapus Folde&r Yang Di-Share &Folders List - + Daftar &Folder Auto-Mount - + Mount Otomatis Yes - Ya + Ya UIMachineSettingsSFDetails Add Share - Tambahkan Share + Tambahkan Share Edit Share - Edit Share + Edit Share Dialog - + Dialog Folder Path: - + Path Folder: Folder Name: - + Nama Folder: Displays the name of the shared folder (as it will be seen by the guest OS). - Tampilkan nama dari folder yang di share (sebagaimana terlihat oleh Sistem Operasi guest). + Tampilkan nama dari folder yang di share (sebagaimana terlihat oleh OS guest). When checked, the guest OS will not be able to write to the specified shared folder. - Saat ditandai, Operating System guest tidak akan dapat menulis pada folder yang dishare yang telah ditetapkan. + Saat ditandai, OS guest tidak akan dapat menulis ke folder yang di-share yang dinyatakan. &Read-only - Baca sa&ja + Baca sa&ja &Make Permanent - Jadikan Per&manen + Jadikan Per&manen When checked, the guest OS will try to automatically mount the shared folder on startup. - + Saat ditandai, OS guest akan mencoba me-mount secara otomatis, folder yang di-share, saat startup. &Auto-mount - + Mount otom&atis If checked, this shared folder will be permanent. - + Bila ditandai, folder yang di-share ini akan permanen. @@ -3127,27 +3127,27 @@ Port %1 serial ports - Port %1 + Port %1 When checked, enables the given serial port of the virtual machine. - Saat ditandai, nyalakan port serial yang diberikan pada mesin virtual. + Saat ditandai, nyalakan port serial yang diberikan pada mesin virtual. &Enable Serial Port - Nyalakan Port S&erial + Nyalakan Port S&erial Port &Number: - + &Nomor Port: Displays the serial port number. You can choose one of the standard serial ports or select <b>User-defined</b> and specify port parameters manually. - Menampilkan nomor port serial. Anda dapat memilih satu dari port serial standar atau pilih <b>Didefinisikan oleh Pengguna</b> dan sebutkan parameter port secara manual. + Tampilkan nomor port serial. Anda dapat memilih satu dari port serial standar atau pilih <b>Didefinisikan oleh pengguna</b> dan menyatakan parameter port secara manual. &IRQ: - + &IRQ: Displays the IRQ number of this serial port. Valid values are integer numbers in range from <tt>0</tt> to <tt>255</tt>. Values greater than <tt>15</tt> may only be used if the <b>IO APIC</b> is enabled for this virtual machine. @@ -3155,7 +3155,7 @@ I/O Po&rt: - + Po&rt I/O: Displays the base I/O port address of this serial port. This should be a whole number between <tt>0</tt> and <tt>0xFFFF</tt>. @@ -3163,50 +3163,50 @@ Port &Mode: - + &Mode Port: Controls the working mode of this serial port. If you select <b>Disconnected</b>, the guest OS will detect the serial port but will not be able to operate it. - Mengendalikan mode kerja dari serial port ini. Bila anda memilih <b>Terputus</b>, Sistem Operasi Guest akan mendeteksi port serial tapi tidak akan dapat mengoperasikannya. + Mengendalikan mode kerja dari serial port ini. Bila Anda memilih <b>Terputus</b>, OS guest akan mendeteksi port serial tapi tidak akan dapat mengoperasikannya. If checked, the pipe specified in the <b>Port Path</b> field will be created by the virtual machine when it starts. Otherwise, the virtual machine will assume that the pipe exists and try to use it. - BIla ditandai, pipa yang disebutkan dalam field <b>Path Port</b> akan diciptakan oleh mesin virtual saat ia mulai menyala, Atau mesin virtual akan mencoba menggunakan pipa yang sudah ada. + BIla ditandai, pipa yang disebutkan dalam field <b>Path Port</b> akan diciptakan oleh mesin virtual saat ia mulai menyala. Jika tidak, mesin virtual akan menganggap pipa ada dan mencoba menggunakannya. &Create Pipe - &Ciptakan Pipa + &Ciptakan Pipa Displays the path to the serial port's pipe on the host when the port is working in <b>Host Pipe</b> mode, or the host serial device name when the port is working in <b>Host Device</b> mode. - Menampilkan path menuju pipa port serial dalam host saat port bekerja pada mode <b>Pipa Host</a>, atau nama device serial host saat port bekerja pada mode <b>Device Host</b>. + Tampilkan path ke pipa port serial pada host saat port bekerja pada mode <b>Pipa Host</a>, atau nama device serial host saat port bekerja pada mode <b>Device Host</b>. Port/File &Path: - + &Path Port/File: Displays the IRQ number of this serial port. This should be a whole number between <tt>0</tt> and <tt>255</tt>. Values greater than <tt>15</tt> may only be used if the <b>IO APIC</b> setting is enabled for this virtual machine. - + Tampilkan nomor IRQ dari port serial ini. Ini mesti berupa bilangan bulat antara <tt>0</tt> dan <tt>255</tt>. Nilai lebih dari <tt>15</tt> hanya bisa digunakan bila pengaturan <b>IO APIC</b> dinyalakan untuk mesin virtual ini. Displays the base I/O port address of this serial port. Valid values are integer numbers in range from <tt>0</tt> to <tt>0xFFFF</tt>. - + Tampilkan alamat dasar port I/O dari port paralel ini. Nilai yang valid adalah bilangan bulat dalam jangkauan <tt>0</tt> hingga <tt>0xFFFF</tt>. UIMachineSettingsSerialPage Duplicate port number selected - Nomor port ganda terpilih + Nomor port duplikat dipilih Port path not specified - Path port tidak dijelaskan + Path port tidak dinyatakan Duplicate port path entered - Path port ganda dimasukkan + Path port duplikat dimasukkan @@ -3241,640 +3241,640 @@ <nobr><b>%1</b></nobr><br><nobr>Bus:&nbsp;&nbsp;%2</nobr><br><nobr>Type:&nbsp;&nbsp;%3</nobr> - + <nobr><b>%1</b></nobr><br><nobr>Bus:&nbsp;&nbsp;%2</nobr><br><nobr>Tipe:&nbsp;&nbsp;%3</nobr> <nobr>Expand/Collapse&nbsp;Item</nobr> - + <nobr>Kembangkan/Ringkaskan&nbsp:Item</nobr> <nobr>Add&nbsp;Hard&nbsp;Disk</nobr> - + <nobr>Tambah&nbsp;Hard&nbsp;Disk</nobr> <nobr>Add&nbsp;CD/DVD&nbsp;Device</nobr> - + <nobr>Tambah&nbsp;Device&nbsp;CD/DVD</nobr> <nobr>Add&nbsp;Floppy&nbsp;Device</nobr> - + <nobr>Tambah&nbsp;Device&nbsp;Floppy</nobr> <i>%1</i> uses a medium that is already attached to <i>%2</i>. - + <i>%1</i> memakai sebuah medium yang telah tercantol ke <i>%2</i>. Add Controller - + Tambah Pengendali Add IDE Controller - + Tambah Pengendali IDE Add SATA Controller - + Tambah Pengendali SATA Add SCSI Controller - + Tambah Pengendali SCSI Add Floppy Controller - + Tambah Pengendali Floppy Remove Controller - + Hapus Pengendali Add Attachment - Tambahkan Pemasangan + Tambah Cantolan Add Hard Disk - + Tambah Hard Disk Add CD/DVD Device - + Tambah Device CD/DVD Add Floppy Device - + Tambah Device Floppy Remove Attachment - Hapus Pemasangan + Hapus Cantolan Adds a new controller to the end of the Storage Tree. - + Tambahkan sebuah pengendali baru di akhir Pohon Penyimpanan. Removes the controller highlighted in the Storage Tree. - + Hapus pengendali yang di-highlight pada Pohon Penyimpanan. Adds a new attachment to the Storage Tree using currently selected controller as parent. - + Tambahkan cantolan baru ke Pohon Penyimpanan memakai pengendali yang kini dipilih sebagai induk. Removes the attachment highlighted in the Storage Tree. - + Hapus cantolan yang di-highlight dalam Pohon Penyimpanan. IDE Controller - + Pengendali IDE SATA Controller - + Pengendali SATA SCSI Controller - + Pengendali SCSI Floppy Controller - + Pengendali Floppy Hard &Disk: - + Hard &Disk: &Storage Tree - + &Pohon Penyimpanan Contains all storage controllers for this machine and the virtual images and host drives attached to them. - + Memuat semua pengendali penyimpanan bagi mesin ini dan image virtual serta drive host ditancapkan ke mereka. Information - + Informasi The Storage Tree can contain several controllers of different types. This machine currently has no controllers. - + Pohon Penyimpanan dapat memuat beberapa pengendali dengan tipe berbeda. Mesin ini kini tak memiliki pengendali. Attributes - + Atribut &Name: - + &Nama: Changes the name of the storage controller currently selected in the Storage Tree. - + Ubah nama pengendali penyimpanan yang sedang dipilih di Pohon Penyimpanan. &Type: - + &Tipe: Selects the sub-type of the storage controller currently selected in the Storage Tree. - + Pilih sub-tipe pengendali penyimpanan yang kini dipilih pada Pohon Penyimpanan. Selects the slot on the storage controller used by this attachment. The available slots depend on the type of the controller and other attachments on it. - + Pilih slot pada pengendali penyimpanan yang dipakai oleh cantolan ini. Slot yang tersedia bergantung kepada tipe pengendali dan cantolan lain padanya. When checked, allows the guest to send ATAPI commands directly to the host-drive which makes it possible to use CD/DVD writers connected to the host inside the VM. Note that writing audio CD inside the VM is not yet supported. - + Bila ditandai, mengijinkan guest untuk mengirim perintah ATAPI secara langsung ke drive-host yang memungkinkannya untuk memakai pembakar CD/DVD yang tersambung ke host di dalam VM. Perhatikan bahwa menulis CD audio di dalam VM belum didukung. &Passthrough - + &Passthrough Virtual Size: - + Ukuran Virtual: Actual Size: - + Ukuran Aktual: Size: - + Ukuran: Location: - + Lokasi: Type (Format): - + Tipe (Format): Attached To: - + Terpasang Pada: Allows to use host I/O caching capabilities. - + Mengijinkan pemakaian kapabilitas caching I/O host. Use host I/O cache - + Gunakan cache I/O host Add SAS Controller - + Tambah Pengendali SAS SAS Controller - + Pengendali SAS Type: - + Tipe: Host Drive - Drive Host + Drive Host Image - Image + Image Choose or create a virtual hard disk file. The virtual machine will see the data in the file as the contents of the virtual hard disk. - + Pilih atau ciptakan file hard disk virtual. Mesin virtual akan melihat data dalam file sebagai isi hard disk virtual. Set up the virtual hard disk - + Set up hard disk virtual CD/DVD &Drive: - + &Drive CD/DVD: Choose a virtual CD/DVD disk or a physical drive to use with the virtual drive. The virtual machine will see a disk inserted into the drive with the data in the file or on the disk in the physical drive as its contents. - + Pilih disk CD/DVD virtual atau drive fisik untuk dipakai dengan drive virtual. Mesin virtual akan melihat suatu disk disisipkan ke dalam drive dengan data dalam file atau pada disk dalam drive fisik sebagai isinya. Set up the virtual CD/DVD drive - + Set up drive CD/DVD virtual Floppy &Drive: - + &Drive Floppy: Choose a virtual floppy disk or a physical drive to use with the virtual drive. The virtual machine will see a disk inserted into the drive with the data in the file or on the disk in the physical drive as its contents. - + Pilih disk floppy virtual atau drive fisik untuk dipakai dengan drive virtual. Mesin virtual akan melihat suatu disk disisipkan ke dalam drive dengan data dalam file atau pada disk dalam drive fisik sebagai isinya. Set up the virtual floppy drive - + Set up drive floppy virtual Create a new hard disk... - + Ciptakan sebuah hard disk baru... Choose a virtual hard disk file... - + Pilih file hard disk virtual... Choose a virtual CD/DVD disk file... - + Pilih sebuah file CD/DVD virtual... Remove disk from virtual drive - + Singkirkan disk dari drive virtual Choose a virtual floppy disk file... - + Pilih sebuah file floppy virtual... When checked the virtual disk will not be removed when the guest system ejects it. - + Saat ditandai, disk virtual tidak akan dihapus ketika sistem guest mengeluarkannya. &Live CD/DVD - + CD/DVD &Live When checked the guest system will see the virtual disk as a solid state device. - + Saat ditandai, sistem guest akan melihat disk virtual sebagai device solid state. &Solid-state drive - + Drive &solid-state Details: - + Rincian: no name specified for controller at position <b>%1</b>. - + nama tak dinyatakan bagi pengendali pada posisi <b>%1</b>. controller at position <b>%1</b> uses the name that is already used by controller at position <b>%2</b>. - + pengendali pada posisi <b>%1</b> memakai nama yang telah dipakai oleh pengendali pada posisi <b>%2</b>. no hard disk is selected for <i>%1</i>. - + tak ada hard disk yang dipilih bagi <i>%1</i>. at most one supported controller - + paling banyak satu yang didukung up to %1 supported controllers - + sampai dengan %1 yang didukung you are currently using more storage controllers than a %1 chipset supports. Please change the chipset type on the System settings page or reduce the number of the following storage controllers on the Storage settings page: %2. - + Anda kini memakai pengendali penyimpanan lebih banyak daripada yang didukung oleh chipset %1. Silakan ubah tipe chipset pada halaman pengaturan Sistem atau kurang cacah pengendali penyimpanan berikut pada halaman pengaturan Penyimpanan: %2. &Port Count: - + Cacah &Port: Selects the port count of the SATA storage controller currently selected in the Storage Tree. This must be at least one more than the highest port number you need to use. - + Pilih cacah port dari pengendali penyimpanan SATA yang kini dipilih dalam Pohon Penyimpanan. Ini mesti paling tidak lebih satu daripada nomor port tertinggi yang Anda perlu pergunakan. UIMachineSettingsSystem you have assigned more than <b>%1%</b> of your computer's memory (<b>%2</b>) to the virtual machine. Not enough memory is left for your host operating system. Please select a smaller amount. - + Anda telah memberikan lebih dari <b>%1%</b> dari memori komputer Anda (<b>%2</b> ke mesin virtual. Tak cukup memori tersisa bagi sistem operasi host Anda. Silakan pilih nilai lebih kecil. you have assigned more than <b>%1%</b> of your computer's memory (<b>%2</b>) to the virtual machine. There might not be enough memory left for your host operating system. Continue at your own risk. - + Anda telah memberikan lebih dari <b>%1%</b> dari memori komputer Anda (<b>%2</b> ke mesin virtual. Mungkin tak cukup memori tersisa bagi sistem operasi host Anda. Lanjutkan dan tanggung sendiri resikonya. for performance reasons, the number of virtual CPUs attached to the virtual machine may not be more than twice the number of physical CPUs on the host (<b>%1</b>). Please reduce the number of virtual CPUs. - + untuk alasan kinerja, cacah CPU virtual yang disambungkan ke mesin virtual tak boleh lebih dari dua kali cacah CPU fisik pada host (<b>%1</b>). Silakan kurangi cacah CPU virtual. you have assigned more virtual CPUs to the virtual machine than the number of physical CPUs on your host system (<b>%1</b>). This is likely to degrade the performance of your virtual machine. Please consider reducing the number of virtual CPUs. - + Anda telah memberikan lebih banyak CPU virtual ke mesin virtual daripada cacah CPU fisik pada sistem host Anda <b>%1</b>. Ini mungkin menurunkan kinerja dari mesin virtual Anda. Mohon pertimbangkan untuk mengurangi cacah CPU virtual. you have assigned more than one virtual CPU to this VM. This will not work unless the IO-APIC feature is also enabled. This will be done automatically when you accept the VM Settings by pressing the OK button. - + Anda telah meng-assign lebih dari satu CPU virtual ke VM ini. Ini tidak akan bekerja kecuali fitur IO-APIC juga diaktifkan. Ini akan dikerjakan secara otomatis ketika Anda menerima Pengaturan VM dengan menekan tombol OK. you have assigned more than one virtual CPU to this VM. This will not work unless hardware virtualization (VT-x/AMD-V) is also enabled. This will be done automatically when you accept the VM Settings by pressing the OK button. - + Anda telah meng-assign lebih dari satu CPU virtual ke VM ini. Ini tidak akan bekerja kecuali virtualisasi hardware (VT-x/AMD-V) juga diaktifkan. Ini akan dikerjakan secara otomatis ketika Anda menerima Pengaturan VM dengan menekan tombol OK. <qt>%1&nbsp;MB</qt> - <qt>%1&nbsp;MB</qt> + <qt>%1&nbsp;MB</qt> <qt>%1&nbsp;CPU</qt> %1 is 1 for now - + <qt>%1&nbsp;CPU</qt> &Motherboard - + &Motherboard Base &Memory: - + &Memori Dasar: Controls the amount of memory provided to the virtual machine. If you assign too much, the machine might not start. - Mengendalikan jumlah memori yang tersedia bagi mesin virtual. Bila anda menempatkan terlalu banyak, mesin tersebut bisa saja tidak mau menyala. + Mengendalikan banyaknya memori yang disediakan bagi mesin virtual. Bila Anda memberikan terlalu banyak, mesin bisa saja tidak mau menyala. MB - MB + MB &Boot Order: - + Urutan &Boot: Defines the boot device order. Use the checkboxes on the left to enable or disable individual boot devices. Move items up and down to change the device order. - Pilih urutan boot device. Gunakan checkbox yang tersedia di sebelah kiri untuk menyalakan atau mematikan boot device secara individual. Naikkan atau turunkan pilihan yang ada untuk mengubah urutan device. + Menentukan urutan boot device. Gunakan checkbox yang tersedia di sebelah kiri untuk menyalakan atau mematikan boot device secara individual. Naikkan atau turunkan item untuk mengubah urutan device. Move Down (Ctrl-Down) - Turunkan (Ctrl+Bawah) + Turunkan (Ctrl+Bawah) Moves the selected boot device down. - Turunkan boot device terpilih. + Turunkan boot device yang dipilih. Move Up (Ctrl-Up) - Naikkan (Ctrl+Atas) + Naikkan (Ctrl+Atas) Moves the selected boot device up. - Naikkan boot device terpilih. + Naikkan boot device yang dipilih. Extended Features: - + Fitur Tambahan: When checked, the virtual machine will support the Input Output APIC (IO APIC), which may slightly decrease performance. <b>Note:</b> don't disable this feature after having installed a Windows guest operating system! - + Saat tertandai, mesin virtual akan mendukung Input Output APIC (IO APIC), yang bisa saja sedikit menurunkan kinerja mesin. <b>Catatan:</b> jangan matikan fitur ini setelah menginstal sebuah sistem operasi guest Windows! Enable &IO APIC - + Aktifkan &IO APIC &Processor - + &Prosesor &Processor(s): - + &Prosesor: When checked, the Physical Address Extension (PAE) feature of the host CPU will be exposed to the virtual machine. - + Bila ditandai, fitur Physical Address Extension (PAE) dari CPU host akan dipaparkan ke mesin virtual. Enable PA&E/NX - Menyalakan PA&E/NX + Aktifkan PA&E/NX Acce&leration - + Akse&lerasi Hardware Virtualization: - + Virtualisasi Hardware: When checked, the virtual machine will try to make use of the host CPU's hardware virtualization extensions such as Intel VT-x and AMD-V. - + Bila ditandai, mesin virtual akan mencoba memakai ekstensi virtualisasi hardware milik CPU host seperti misalnya Intel VT-x dan AMD-V. Enable &VT-x/AMD-V - + Aktifkan &VT-x/AMD-V When checked, the virtual machine will try to make use of the nested paging extension of Intel VT-x and AMD-V. - + Bila ditandai, mesin virtual akan mencoba memakai ekstensi paging bertingkat dari Intel VT-x dan AMD-V. Enable Nested Pa&ging - + Aktifkan Pa&ging Bertingkat <qt>%1&nbsp;CPUs</qt> %1 is host cpu count * 2 for now - + <qt>%1&nbsp;CPUs</qt> When checked, the guest will support the Extended Firmware Interface (EFI), which is required to boot certain guest OSes. Non-EFI aware OSes will not be able to boot if this option is activated. - + Bila ditandai, guest akan mendukung Extended Firmware Interface (EFI), yang diperlukan untuk mem-boot beberapa OS guest. OS yang tak kenal EFI tak akan bisa di-boot bila opsi ini diaktifkan. Enable &EFI (special OSes only) - + Aktifkan &EFI (hanya OS khusus) If checked, the RTC device will report the time in UTC, otherwise in local (host) time. Unix usually expects the hardware clock to be set to UTC. - + Bila ditandai, device RTC akan melaporkan waktu dalam UTC, bila tidak, dalam waktu lokal (host). Unix biasanya mengharapkan jam hardware ditata ke UTC. Hardware clock in &UTC time - + Jam hardware dalam waktu &UTC Controls the number of virtual CPUs in the virtual machine. You need hardware virtualization support on your host system to use more than one virtual CPU. - + Mengendalikan cacah CPU virtual dalam mesin virtual. Anda perlu dukungan virtualisasi hardware pada sistem host Anda untuk memakai lebih dari satu CPU virtual. If checked, an absolute pointing device (a USB tablet) will be supported. Otherwise, only a standard PS/2 mouse will be emulated. - + Bila diaktifkan, device penunjuk absolut (suatu tablet USB) akan didukung. Bila tidak, hanya mouse standar PS/2 yang akan diemulasikan. Enable &absolute pointing device - + Aktifkan device penunjuk &absolut &Chipset: - + &Chipset: Selects the chipset to be emulated in this virtual machine. Note that the ICH9 chipset emulation is experimental and not recommended except for guest systems (such as Mac OS X) which require it. - + Memilih chipset yang akan diemulasi dalam mesin virtual ini. Perhatikan bahwa emulasi chipset ICH9 masih dalam percobaan dan tidak disarankan kecuali bagi sistem guest (seperti Mac OS X) yang memerlukannya. &Execution Cap: - + Cap &Eksekusi: Limits the amount of time that each virtual CPU is allowed to run for. Each virtual CPU will be allowed to use up to this percentage of the processing time available on one physical CPU. The execution cap can be disabled by setting it to 100%. Setting the cap too low can make the machine feel slow to respond. - + Membatasi lama waktu setiap CPU virtual diijinkan berjalan. Setiap CPU virtual akan diijinkan memakai sampai dengan persentase ini dari waktu pemrosesan yang tersedia pada satu CPU fisik. Cap eksekusi dapat dimatikan dengan menatanya ke 100%. Menata cap terlalu rendah dapat membuat mesin terasa lambat merespon. you have set the processor execution cap to a low value. This can make the machine feel slow to respond. - + Anda telah menata cap eksekusi prosesor ke suatu nilai rendah. Ini dapat membuat mesin terasa lambat merespon. you have enabled a USB HID (Human Interface Device). This will not work unless USB emulation is also enabled. This will be done automatically when you accept the VM Settings by pressing the OK button. - + Anda telah mengaktifkan sebuah HID (Human Interface Device) USB. Ini tidak akan bekerja kecuali bila emulasi USB juga diaktifkan. Ini akan dikerjakan secara otomatis ketika Anda menerima Pengaturan VM dengan menekan tombol OK. <qt>%1%</qt> Min CPU execution cap in % - + <qt>%1%</qt> <qt>%1%</qt> Max CPU execution cap in % - + <qt>%1%</qt> you have assigned ICH9 chipset type to this VM. It will not work properly unless the IO-APIC feature is also enabled. This will be done automatically when you accept the VM Settings by pressing the OK button. - + Anda telah meng-assign tipe chipset ICH9 ke VM ini. Ini tak akan bekerja dengan benar kecuali bila fitur IO-APIC juga diaktifkan. Ini akan dilakukan secara otomatis ketika Anda menerika Pengaturan VM dengan menekan tombol OK. UIMachineSettingsUSB &Add Empty Filter - T&ambahkan Filter Kosong + T&ambahkan Filter Kosong A&dd Filter From Device - Tambahkan Filter &dari Device + Tambahkan Filter &Dari Device &Edit Filter - + &Edit Filter &Remove Filter - Hapus Filte&r + Hapus Filte&r &Move Filter Up - &Naikkan Filter + &Naikkan Filter M&ove Filter Down - T&urunkan Filter + T&urunkan Filter Adds a new USB filter with all fields initially set to empty strings. Note that such a filter will match any attached USB device. - + Menambahkan sebuah filter USB baru dengan semua field awal ditata sebagai string kosong. Perhatikan bahwa filter seperti itu akan cocok dengan device USB apapun yang terpasang. Adds a new USB filter with all fields set to the values of the selected USB device attached to the host PC. - Menambahkan sebuah filter USB baru dengan semua field ditetapkan sebagai nilai dari device USB terpilih terpasang pada PC host. + Menambahkan sebuah filter USB baru dengan semua field ditata sebagai nilai dari device USB terpilih terpasang pada PC host. Edits the selected USB filter. - + Edit filter USB yang dipilih. Removes the selected USB filter. - Hapus filter USB terpilih. + Hapus filter USB yang dipilih. Moves the selected USB filter up. - Naikkan filter USB terpilih ke atas. + Pindahkan filter USB yang dipilih ke atas. Moves the selected USB filter down. - Turunkan filter USB terpilih ke bawah. + Pindahkan filter USB yang dipilih ke bawah. New Filter %1 usb - Filter Baru %1 + Filter Baru %1 When checked, enables the virtual USB controller of this machine. - Saat ditandai, menyalakan kontroler USB virtual mesin ini. + Saat ditandai, mengaktifkan pengendali USB mesin ini. Enable &USB Controller - Nyalakan Pengendali &USB + Aktifkan Pengendali &USB When checked, enables the virtual USB EHCI controller of this machine. The USB EHCI controller provides USB 2.0 support. - Saat tertandai, menyalakan pengendali EHCI USB virtual pada mesin ini. Pengendali EHCI USB menyediakan dukungan USB 2.0. + Saat tertandai, menyalakan pengendali EHCI USB virtual pada mesin ini. Pengendali EHCI USB menyediakan dukungan USB 2.0. Enable USB 2.0 (E&HCI) Controller - + Aktifkan Pengendali USB 2.0 (E&HCI) USB Device &Filters - &Filter Device USB + &Filter Device USB Lists all USB filters of this machine. The checkbox to the left defines whether the particular filter is enabled or not. Use the context menu or buttons to the right to add or remove USB filters. - + Menampilkan semua filter USB dari mesin ini. Checkbox di kiri menentukan apakah filter tertentu diaktifkan atau tidak. Gunakan menu konteks atau tombol di kanan untuk menambah atau menghapus filter USB. [filter] - + [filter] <nobr>Vendor ID: %1</nobr> USB filter tooltip - + <nobr>ID Vendor: %1</nobr> <nobr>Product ID: %2</nobr> USB filter tooltip - + <nobr>ID Produk: %2</nobr> <nobr>Revision: %3</nobr> USB filter tooltip - + <nobr>Revisi: %3</nobr> <nobr>Product: %4</nobr> USB filter tooltip - + <nobr>Produk: %4</nobr> <nobr>Manufacturer: %5</nobr> USB filter tooltip - + <nobr>Pabrikan: %5</nobr> <nobr>Serial No.: %1</nobr> USB filter tooltip - + <nobr>No. Seri: %1</nobr> <nobr>Port: %1</nobr> USB filter tooltip - + <nobr>Port: %1</nobr> <nobr>State: %1</nobr> USB filter tooltip - + <nobr>Keadaan: %1</nobr> USB 2.0 is currently enabled for this virtual machine. However, this requires the <b>%1</b> to be installed. Please install the Extension Pack from the VirtualBox download site. After this you will be able to re-enable USB 2.0. It will be disabled in the meantime unless you cancel the current settings changes. - + USB 2.0 kini diaktifkan bagi mesin virtual ini. Namun, ini memerlukan instalasi <b>%1</b>. Silakan instal Extension Pack dari situs download VirtualBox. Setelah ini Anda akan dapat mengaktifkan ulang USB 2.0. Ini akan dimatikan sementara kecuali Anda membatalkan perubahan pengaturan kini. @@ -3882,123 +3882,123 @@ Any remote - Apa saja + Apa saja Yes remote - Ya + Ya No remote - Tidak + Tidak &Name: - + &Nama: Displays the filter name. - Tampilkan nama filter. + Tampilkan nama filter. &Vendor ID: - + ID &Vendor: Defines the vendor ID filter. The <i>exact match</i> string format is <tt>XXXX</tt> where <tt>X</tt> is a hexadecimal digit. An empty string will match any value. - + Mendefinisikan filter ID vendor. Format string <i>cocok eksak</i> adalah <tt>XXXX</tt> dimana <tt>X</tt> adalah digit heksadesimal. String kosong akan cocok dengan sebarang nilai. &Product ID: - + ID &Produk: Defines the product ID filter. The <i>exact match</i> string format is <tt>XXXX</tt> where <tt>X</tt> is a hexadecimal digit. An empty string will match any value. - + Mendefinisikan filter ID produk. Format string <i>cocok eksak</i> adalah <tt>XXXX</tt> dimana <tt>X</tt> adalah digit heksadesimal. String kosong akan cocok dengan sebarang nilai. &Revision: - + &Revisi: Defines the revision number filter. The <i>exact match</i> string format is <tt>IIFF</tt> where <tt>I</tt> is a decimal digit of the integer part and <tt>F</tt> is a decimal digit of the fractional part. An empty string will match any value. - + Mendefinisikan filter nomor revisi. Format string <i>cocok eksak</i> adalah <tt>IIFF</tt> dimana <tt>I</tt> adalah digit desimal dari bagian integer dan <tt>F</tt> adalah digit desimal dari bagian pecahan. String kosong akan cocok dengan sebarang nilai. &Manufacturer: - + Pabrika&n: Defines the manufacturer filter as an <i>exact match</i> string. An empty string will match any value. - + Mendefinisikan filter pabrikan sebagai suatu string <i>cocok eksak</i>. String kosong akan cocok dengan sebarang nilai. Pro&duct: - + Pro&duk: Defines the product name filter as an <i>exact match</i> string. An empty string will match any value. - + Mendefinisikan filter nama produk sebagai suatu string <i>cocok eksak</i>. String kosong akan cocok dengan sebarang nilai. &Serial No.: - + No. &Seri: Defines the serial number filter as an <i>exact match</i> string. An empty string will match any value. - + Mendefinisikan filter nomor seri sebagai suatu string <i>cocok eksak</i>. String kosong akan cocok dengan sebarang nilai. Por&t: - + Por&t: Defines the host USB port filter as an <i>exact match</i> string. An empty string will match any value. - + Mendefinisikan filter port USB sebagai suatu string <i>cocok eksak</i>. String kosong akan cocok dengan sebarang nilai. R&emote: - + R&emote: Defines whether this filter applies to USB devices attached locally to the host computer (<i>No</i>), to a VRDP client's computer (<i>Yes</i>), or both (<i>Any</i>). - + Menentukan apakah filter ini diterapkan ke device USB yang tersambung secara lokal ke komputer host (<i>Tidak</i>), ke klien VRDP komputer (<i>Ya</i>), atau keduanya (<i>Apa saja</a>). &Action: - + Tind&akan: Defines an action performed by the host computer when a matching device is attached: give it up to the host OS (<i>Ignore</i>) or grab it for later usage by virtual machines (<i>Hold</i>). - + Menentukan tindakan yang dilakukan oleh komputer host ketika device yang cocok disambungkan: menyerahkannya ke OS host (<i>Abaikan</i>) atau menangkapnya untuk dipakai nanti oleh mesin virtual (<i>Tahan</i>). USB Filter Details - + Rincian Filter USB UIMachineWindowNormal Shows the currently assigned Host key.<br>This key, when pressed alone, toggles the keyboard and mouse capture state. It can also be used in combination with other keys to quickly perform actions from the main menu. - + Tunjukkan tombol Host yang sedang ditugaskan.<br>Tombol ini, saat ditekan sendirian, menjungkit keadaan penangkapan keyboard dan mouse. Ia juga dapat digunakan dalam kombinasi dengan kunci lain untuk melakukan tindakan dari dalam menu utama secara cepat. UIMediumTypeChangeDialog Modify medium attributes - + Ubah atribut medium <p>You are about to change the attributes of the virtual disk located in <b>%1</b>.</p><p>Please choose one of the following medium types and press <b>%2</b> to proceed or <b>%3</b> otherwise.</p> - + Choose medium type: - + Pilih tipe medium: @@ -4035,7 +4035,7 @@ Failed to open <tt>%1</tt>. Make sure your desktop environment can properly handle URLs of this type. - Gagal membuka <tt>%1</tt>. Pastikan lingkungan desktop anda mampu meng-handle tipr URL seperti ini. + Gagal membuka <tt>%1</tt>. Pastikan lingkungan desktop Anda mampu menangani URL bertipe ini secara benar. <p>Failed to initialize COM or to find the VirtualBox COM server. Most likely, the VirtualBox server is not running or failed to start.</p><p>The application will now terminate.</p> @@ -4055,7 +4055,7 @@ Failed to set global VirtualBox properties. - Gagal menetapkan properti global VirtualBox. + Gagal menata properti global VirtualBox. Failed to access the USB subsystem. @@ -4071,7 +4071,7 @@ Failed to apply the settings to the virtual machine <b>%1</b>. - Gagal menambahkan setting pada mesin virtual <b>%1</b>. + Gagal menerapkan pengaturan pada mesin virtual <b>%1</b>. Failed to save the settings of the virtual machine <b>%1</b>. @@ -4087,7 +4087,7 @@ Failed to pause the execution of the virtual machine <b>%1</b>. - Gagal mem-pause eksekusi mesin virtual <b>%1</b>. + Gagal mengistirahatkan eksekusi mesin virtual <b>%1</b>. Failed to resume the execution of the virtual machine <b>%1</b>. @@ -4111,7 +4111,7 @@ Failed to discard the saved state of the virtual machine <b>%1</b>. - Gagal mengabaikan keadaan tersimpan pada mesin virtual <b>%1</b>. + Gagal membuang keadaan tersimpan pada mesin virtual <b>%1</b>. Failed to discard the snapshot <b>%1</b> of the virtual machine <b>%2</b>. @@ -4127,7 +4127,7 @@ There is no virtual machine named <b>%1</b>. - Tidak ada mesin virtual dengan nama <b>%1</b>. + Tidak ada mesin virtual bernama <b>%1</b>. <p>Are you sure you want to permanently delete the virtual machine <b>%1</b>?</p><p>This operation cannot be undone.</p> @@ -4139,7 +4139,7 @@ <p>Are you sure you want to discard the saved state of the virtual machine <b>%1</b>?</p><p>This operation is equivalent to resetting or powering off the machine without doing a proper shutdown of the guest OS.</p> - <p>Apakah anda yakin anda ingin mengabaikan keadaan tersimpan dari mesin virtual <b>%1</b>?</p><p>Tindakan ini setara dengan me-reset atau mematikan power pada mesin tanpa melakukan shutdown yang seharusnya pada Sistem Operasi guest.</p> + <p>Apakah Anda yakin ingin membuang keadaan tersimpan dari mesin virtual <b>%1</b>?</p><p>Tindakan ini setara dengan me-reset atau mematikan power pada mesin tanpa melakukan shutdown yang seharusnya pada OS guest.</p> <p>Releasing this media image will detach it from the following virtual machine(s): <b>%1</b>.</p><p>Continue?</p> @@ -4211,7 +4211,7 @@ Failed to remove the host network interface <b>%1</b>. - Gagal menghapus antar muka jaringan pada host <b>%1</b>. + Gagal menghapus antar muka jaringan <b>%1</b> pada host. Failed to attach the USB device <b>%1</b> to the virtual machine <b>%2</b>. @@ -4575,19 +4575,19 @@ You are already running the most recent version of VirtualBox. - + Anda telah menjalankan versi VirtualBox paling baru. <p>You have <b>clicked the mouse</b> inside the Virtual Machine display or pressed the <b>host key</b>. This will cause the Virtual Machine to <b>capture</b> the host mouse pointer (only if the mouse pointer integration is not currently supported by the guest OS) and the keyboard, which will make them unavailable to other applications running on your host machine.</p><p>You can press the <b>host key</b> at any time to <b>uncapture</b> the keyboard and mouse (if it is captured) and return them to normal operation. The currently assigned host key is shown on the status bar at the bottom of the Virtual Machine window, next to the&nbsp;<img src=:/hostkey_16px.png/>&nbsp;icon. This icon, together with the mouse icon placed nearby, indicate the current keyboard and mouse capture state.</p> - <p>Anda telah <b>meng-klik mouse</b> dalam tampilan Mesin Virtual Machine atau menekan <b> tombol host </b>. Hal ini akan menyebabkan Mesin Virtual Machine untuk <b>menangkap</b> pointer mouse host (hanya bila integrasi pointer mouse tidak sedang didukung oleh Sistem Operasi guest saat ini) dan keyboard, yang akan membuat mereka tidak tersedia pada aplikasi lain yang berjalan pada mesin host.</p><p>Anda dapat menekan <b>tombol host</b> kapanpun untuk <b>membebaskan</b> keyboard dan mouse (bila tertangkap) dan mengembalikan mereka pada operasi normal. Tombol host yang ditugaskan saat ini ditunjukkan pada status bar di bawah window Mesin Virtual, disebelah ikon&nbsp;<img src=:/hostkey_16px.png/>&nbsp;. Ikon ini, bersama dengan ikon mouse yang ditempatkan didekatnya, menunjukkan keadaan tangkapan keyboard dan mouse saat ini.</p> + <p>Anda telah <b>mengklik mouse</b> di dalam tampilan Mesin Virtual atau menekan <b>tombol host</b>. Hal ini akan menyebabkan Mesin Virtual <b>menangkap</b> pointer mouse host (hanya bila integrasi pointer mouse tidak sedang didukung oleh Sistem Operasi guest saat ini) dan keyboard, yang akan membuat mereka tidak tersedia pada aplikasi lain yang berjalan pada mesin host.</p><p>Anda dapat menekan <b>tombol host</b> kapanpun untuk <b>membebaskan</b> keyboard dan mouse (bila tertangkap) dan mengembalikan mereka pada operasi normal. Tombol host yang ditugaskan saat ini ditunjukkan pada status bar di bawah window Mesin Virtual, di sebelah ikon&nbsp;<img src=:/hostkey_16px.png/>&nbsp;. Ikon ini, bersama dengan ikon mouse yang ditempatkan di dekatnya, menunjukkan keadaan tangkapan keyboard dan mouse saat ini.</p> <p>You have the <b>Auto capture keyboard</b> option turned on. This will cause the Virtual Machine to automatically <b>capture</b> the keyboard every time the VM window is activated and make it unavailable to other applications running on your host machine: when the keyboard is captured, all keystrokes (including system ones like Alt-Tab) will be directed to the VM.</p><p>You can press the <b>host key</b> at any time to <b>uncapture</b> the keyboard and mouse (if it is captured) and return them to normal operation. The currently assigned host key is shown on the status bar at the bottom of the Virtual Machine window, next to the&nbsp;<img src=:/hostkey_16px.png/>&nbsp;icon. This icon, together with the mouse icon placed nearby, indicate the current keyboard and mouse capture state.</p> - <p>Anda telah menyalakan tombol pilihan <b>Auto capture keyboard</b>. Hal ini akan menyebabkan mesin virtual untuk secara otomatis <b>meng-capture</b> keyboard setiap kali jendela Mesin Virtual diaktifkan dan membuatnya tidak tersedia bagi aplikasi lain yang berjalan pada mesin host anda: Saat keyboard di-capture, semua tombol yang ditekan (termasuk sistem seperti Alt+Tab) akan ditujukan pada Mesin Virtual.</p><p>Anda dapat menekan <b>tombol host</b> kapan saja untuk <b>membebaskan</b> keyboard dan mouse (bila mereka tertangkap) dan mengembalikan mereka pada operasi normal. Tombol host yang sedang ditugaskan saat ini ditunjukkan pada status bar di bawah jendela Mesin Virtual, disebelah ikon&nbsp;<img src=:/hostkey_16px.png/>&nbsp;. Ikon ini, bersama dengan ikon mouse yang terletak didekatnya, menunjukkan keadaan capture keyboard dan mouse saat ini.</p> + <p>Anda telah mengaktifkan pilihan <b>Tangkap otomatis keyboard</b>. Hal ini akan menyebabkan Mesin Virtual secara otomatis <b>menangkap</b> keyboard setiap kali jendela VM diaktifkan dan membuatnya tidak tersedia bagi aplikasi lain yang berjalan pada mesin host Anda: Saat keyboard ditangkap, semua tombol yang ditekan (termasuk sistem seperti Alt+Tab) akan diarahkan ke VM.</p><p>Anda dapat menekan <b>tombol host</b> kapan saja untuk <b>membebaskan</b> keyboard dan mouse (bila mereka tertangkap) dan mengembalikan mereka pada operasi normal. Tombol host yang sedang ditugaskan saat ini ditunjukkan pada status bar di bawah jendela Mesin Virtual, di sebelah ikon&nbsp;<img src=:/hostkey_16px.png/>&nbsp;. Ikon ini, bersama dengan ikon mouse yang terletak di dekatnya, menunjukkan keadaan capture keyboard dan mouse saat ini.</p> <p>The Virtual Machine reports that the guest OS supports <b>mouse pointer integration</b>. This means that you do not need to <i>capture</i> the mouse pointer to be able to use it in your guest OS -- all mouse actions you perform when the mouse pointer is over the Virtual Machine's display are directly sent to the guest OS. If the mouse is currently captured, it will be automatically uncaptured.</p><p>The mouse icon on the status bar will look like&nbsp;<img src=:/mouse_seamless_16px.png/>&nbsp;to inform you that mouse pointer integration is supported by the guest OS and is currently turned on.</p><p><b>Note</b>: Some applications may behave incorrectly in mouse pointer integration mode. You can always disable it for the current session (and enable it again) by selecting the corresponding action from the menu bar.</p> - <p>Mesin Virtual melaporkan bahwa OS guest mendukung <b>integrasi pointer mouse</b>. Hal ini menunjukkan bahwa anda tidak perlu <i>meng-capture</i> pointer mouse untuk dapat menggunakannya pada OS guest -- semua tindakan mouse yang anda lakukan saat pointer mouse berada pada tampilan Mesin Virtual akan langsung dikirim pada OS guest. Bila mouse sedang ter-capture, ia akan secara otomatis terbebas.</p><p>Ikon mouse pada status bar akan terlihat seperti&nbsp;<img src=:/mouse_seamless_16px.png/>&nbsp;untuk menunjukkan anda bahwa integrasi pointer mouse didukung oleh OS guest dan saat ini sedang menyala.</p><p><b>Catatan</b>: Beberapa aplikasi mungkin berperilaku tidak semestinya pada mode integrasi pointer mouse. Anda dapat selalu mematikannya pada sesi tersebut (dan menyalakannya lagi) dengan memilih tindakan yang sesuai dari menu bar.</p> + <p>Mesin Virtual melaporkan bahwa OS guest mendukung <b>integrasi pointer mouse</b>. Ini berarti bahwa Anda tidak perlu <i>menangkap</i> pointer mouse untuk dapat menggunakannya pada OS guest -- semua tindakan mouse yang Anda lakukan saat pointer mouse berada pada tampilan Mesin Virtual akan langsung dikirim ke OS guest. Bila mouse sedang tertangkap, ia akan secara otomatis terbebas.</p><p>Ikon mouse pada status bar akan terlihat seperti&nbsp;<img src=:/mouse_seamless_16px.png/>&nbsp;untuk menunjukkan anda bahwa integrasi pointer mouse didukung oleh OS guest dan saat ini sedang menyala.</p><p><b>Catatan</b>: Beberapa aplikasi mungkin berperilaku tidak semestinya pada mode integrasi pointer mouse. Anda dapat selalu mematikannya pada sesi tersebut (dan menyalakannya lagi) dengan memilih tindakan yang sesuai dari menu bar.</p> <p>The virtual machine window will be now switched to <b>fullscreen</b> mode. You can go back to windowed mode at any time by pressing <b>%1</b>. Note that the <i>Host</i> key is currently defined as <b>%2</b>.</p><p>Note that the main menu bar is hidden in fullscreen mode. You can access it by pressing <b>Host+Home</b>.</p> @@ -4599,131 +4599,131 @@ &Contents... - &Isi... + &Isi... Show the online help contents - Tampilkan isi bantuan online + Tampilkan isi bantuan online &VirtualBox Web Site... - Website &VirtualBox... + Website &VirtualBox... Open the browser and go to the VirtualBox product web site - Buka browser dan pergi ke website produk VirtualBox + Buka browser dan pergi ke website produk VirtualBox &Reset All Warnings - &Reset Semua Peringatan + &Reset Semua Peringatan Go back to showing all suppressed warnings and messages - Menyebabkan semua peringatan dan pesan yang disembunyikan agar ditampilkan kembali + Kembali menampilkan semua peringatan dan pesan yang disembunyikan R&egister VirtualBox... - R&egister VirtualBox... + R&egister VirtualBox... Open VirtualBox registration form - Buka formulir registrasi VirtualBox + Buka formulir registrasi VirtualBox C&heck for Updates... - + &Periksa Update... Check for a new VirtualBox version - + Periksa keberadaan versi baru VirtualBox &About VirtualBox... - + Tent&ang VirtualBox... Show a dialog with product information - Tunjukkan dialog dengan informasi produk + Tunjukkan dialog dengan informasi produk <p>A new version of VirtualBox has been released! Version <b>%1</b> is available at <a href="http://www.virtualbox.org/">virtualbox.org</a>.</p><p>You can download this version using the link:</p><p><a href=%2>%3</a></p> - + <p>Sebuah versi baru VirtualBox telah dirlis! Versi <b>%1</b> tersedia di <a href="http://www.virtualbox.org/">virtualbox.org</a>.</p><p>Anda dapat mendownload versi ini memakai taut:</p><p><a href=%2>%3</a></p> <p>Are you sure you want to release the %1 <nobr><b>%2</b></nobr>?</p><p>This will detach it from the following virtual machine(s): <b>%3</b>.</p> - + <p>Apakah Anda yakin ingin merilis %1 <nobr><b>%2</b></nobr>?</p><p>Ini akan melepaskannya dari mesin virtual berikut: <b>%3</b>.</p> Release detach medium - Lepas + Lepas <p>Are you sure you want to remove the %1 <nobr><b>%2</b></nobr> from the list of known media?</p> - + <p>Apakah Anda yakin ingin menghapus %1 <nobr><b>%2</b></nobr> dari daftar media yang dikenal?</p> Note that as this hard disk is inaccessible its storage unit cannot be deleted right now. - + Perhatikan bahwa karena hard disk ini tak dapat diakses, unit penyimpanannya saat ini tak dapat dihapus. The next dialog will let you choose whether you also want to delete the storage unit of this hard disk or keep it for later usage. - + Dialog selanjutnya akan memungkinkan Anda memilih apakah juga ingin menghapus unit penyimpanan dari hard disk ini atau mempertahankannya untuk dipakai nanti. Remove medium - Hapus + Hapus <p>The hard disk storage unit at location <b>%1</b> already exists. You cannot create a new virtual hard disk that uses this location because it can be already used by another virtual hard disk.</p><p>Please specify a different location.</p> - + <p>Unit penyimpanan hard disk di lokasi <b>%1</b> telah ada. Anda tak dapat menciptakan sebuah hard disk virtual baru yang memakai lokasi ini karena bisa telah dipakai oleh hard disk virtual lain.</p><p>Silakan nyatakan lokasi lain.</p> <p>Do you want to delete the storage unit of the hard disk <nobr><b>%1</b></nobr>?</p><p>If you select <b>Delete</b> then the specified storage unit will be permanently deleted. This operation <b>cannot be undone</b>.</p><p>If you select <b>Keep</b> then the hard disk will be only removed from the list of known hard disks, but the storage unit will be left untouched which makes it possible to add this hard disk to the list later again.</p> - + <p>Apakah Anda ingin menghapus unit penyimpanan hard disk <nobr><b>%1</b> ini?</nobr></p><p>Bila Anda memilih <b>Hapus</b> maka unit penyimpanan yang dinyatakan akan dihapus secara permanen. Tindakan ini <b>tidak dapat dibatalkan</b>.</p><p>Bila Anda memilih <b>Pertahankan</b> maka hard disk hanya akan dihapus dari daftar hard disk yang dikenal, tapi unit penyimpanan akan dibiarkan tak tersentuh yang membuat jadi mungkin untuk menambahkan hard disk ini ke daftar lagi nanti.</p> Delete hard disk storage - Hapus + Hapus Keep hard disk storage - + Pertahankan Failed to delete the storage unit of the hard disk <b>%1</b>. - + Gagal menghapus unit penyimpanan hard disk <b>%1</b>. Failed to create the hard disk storage <nobr><b>%1</b>.</nobr> - + Gagal menciptakan unit penyimpanan hard disk <nobr><b>%1</b>.</nobr> Failed to open the %1 <nobr><b>%2</b></nobr>. - + Gagal membuka %1 <nobr><b>%2</b></nobr>. Failed to close the %1 <nobr><b>%2</b></nobr>. - + Gagal menutup %1 <nobr><b>%2</b></nobr>. Failed to determine the accessibility state of the medium <nobr><b>%1</b></nobr>. - + Gagal menentukan keadaan aksesibilitas dari medium <nobr><b>%1</b></nobr>. <p>Failed to connect to the VirtualBox online registration service due to the following error:</p><p><b>%1</b></p> - + <p>Gagal menyambung ke layanan registrasi online VirtualBox karena kesalahan berikut:</p><p><b>%1</b></p> <p>Unable to obtain the new version information due to the following error:</p><p><b>%1</b></p> - + <p>Tak bisa memperoleh informasi versi baru karena error berikut:</p><p><b>%1</b></p> <p>One or more virtual hard disks, CD/DVD or floppy media are not currently accessible. As a result, you will not be able to operate virtual machines that use these media until they become accessible later.</p><p>Press <b>Check</b> to open the Virtual Media Manager window and see what media are inaccessible, or press <b>Ignore</b> to ignore this message.</p> - + <p>Satu atau lebih hard disk virtual, CD/DVD, atau media floppy kini tak dapat diakses. Akibatnya, Anda tak akan bisa mengoperasikan mesin virtual yang memakai media tersebut sampai mereka menjadi bisa diakses nanti.</p><p>Tekan <b>Periksa</b> untuk membuka window Manajer Media Virtual dan melihat media apa yang tak dapat diakses, atau tekan <b>Abaikan</b> untuk mengabaikan pesan ini.</p> E&xit @@ -4732,7 +4732,7 @@ <p>A critical error has occurred while running the virtual machine and the machine execution has been stopped.</p><p>For help, please see the Community section on <a href=http://www.virtualbox.org>http://www.virtualbox.org</a> or your support contract. Please provide the contents of the log file <tt>VBox.log</tt> and the image file <tt>VBox.png</tt>, which you can find in the <nobr><b>%1</b></nobr> directory, as well as a description of what you were doing when this error happened. Note that you can also access the above files by selecting <b>Show Log</b> from the <b>Machine</b> menu of the main VirtualBox window.</p><p>Press <b>OK</b> if you want to power off the machine or press <b>Ignore</b> if you want to leave it as is for debugging. Please note that debugging requires special knowledge and tools, so it is recommended to press <b>OK</b> now.</p> - + <p>Kesalahan kritikal telah terjadi saat menjalankan mesin virtual dan eksekusi mesin telah dihentikan.</p><p>Untuk bantuan, silakan kunjungi bagian Community pada <a href=http://www.virtualbox.org>http://www.virtualbox.org</a> atau kontrak pendukung Anda. Mohon sediakan isi dari file log <tt>VBox.log</tt> dan file image <tt>VBox.png</tt>, yang dapat Anda temukan pada direktori <nobr><b>%1</b></nobr>, demikian juga dengan deskripsi tentang apa yang Anda lakukan saat kesalahan ini terjadi. Perhatikan bahwa Anda juga dapat mengakses file di atas dengan memilih <b>Tampilkan Log</b> dari menu <b>Mesin</b> dalam jendela utama VirtualBox.</p><p>Tekan <b>OK</b> bila Anda ingin mematikan mesin atau tekan <b>Abaikan</b> bila Anda ingin membiarkannya untuk debugging. Mohon perhatikan bahwa debugging membutuhkan pengetahuan dan alat khusus, sehingga dianjurkan untuk menekan <b>OK</b> sekarang.</p> hard disk @@ -4751,27 +4751,27 @@ The following files already exist:<br /><br />%1<br /><br />Are you sure you want to replace them? Replacing them will overwrite their contents. - + File berikut telah ada:<br /><br />%1<br /><br />Apakah Anda yakin hendak menimpanya? Menggantikan mereka akan menimpa isinya. You are running a prerelease version of VirtualBox. This version is not suitable for production use. - + Anda sedang menjalankan versi prarilis dari VirtualBox. Versi ini tidak cocok untuk pemakaian produksi. You are trying to shut down the guest with the ACPI power button. This is currently not possible because the guest does not support software shutdown. - + Anda mencoba mematikan guest dengan tombol daya ACPI. Hal ini sekarang tak mungkin karena guest tak mendukung shutdown software. <p>VT-x/AMD-V hardware acceleration has been enabled, but is not operational. Your 64-bit guest will fail to detect a 64-bit CPU and will not be able to boot.</p><p>Please ensure that you have enabled VT-x/AMD-V properly in the BIOS of your host computer.</p> - + <p>Akselerasi hardware VT-x/AMD-V telah diaktifkan, tapi tidak operasional. Guest 64-bit Anda akan gagal mendeteksi suatu CPU 64-bit dan tak akan bisa di-boot.</p><p>Silakan pastikan bahwa Anda telah mengaktifkan VT-x/AMD-V dengan benar pada BIOS komputer host Anda.</p> Close VM - + Tutup VM Continue - Lanjutkan + Lanjutkan Discard @@ -4779,7 +4779,7 @@ Cancel - Batal + Batal <p>Do you want to remove the selected host network interface <nobr><b>%1</b>?</nobr></p><p><b>Note:</b> This interface may be in use by one or more network adapters of this or another VM. After it is removed, these adapters will no longer work until you correct their settings by either choosing a different interface name or a different adapter attachment type.</p> @@ -4787,95 +4787,96 @@ Failed to create the host-only network interface. - + Gagal menciptakan antarmuka jaringan hanya-host. <p>Your existing VirtualBox settings files will be automatically converted from the old format to a new format required by the new version of VirtualBox.</p><p>Press <b>OK</b> to start VirtualBox now or press <b>Exit</b> if you want to terminate the VirtualBox application without any further actions.</p> - + <p>File pengaturan VirtualBox Anda yang telah ada akan otomatis dikonversi dari format lama ke format baru yang diperlukan oleh versi baru VirtualBox.</p><p>Tekan <b>OK</b> untuk memulai VirtualBox sekarang atau tekan <b>Keluar</b> bila Anda hendak mengakhiri aplikasi VirtualBox tanpa tindakan lain</p> Failed to open appliance. - + Gagal membuka appliance. Failed to open/interpret appliance <b>%1</b>. - + Gagal membuka/menginterpretasi appliance <b>%1</b>. Failed to import appliance <b>%1</b>. - + Gagal mengimpor appliance <b>%1</b>. Failed to create appliance. - + Gagal menciptakan appliance. Failed to prepare the export of the appliance <b>%1</b>. - + Gagal menyiapkan ekspor appliance <b>%1</b>. Failed to create an appliance. - + Gagal menciptakan sebuah appliance. Failed to export appliance <b>%1</b>. - + Gagal mengekspor appliance <b>%1</b>. <p>Deleting this host-only network will remove the host-only interface this network is based on. Do you want to remove the (host-only network) interface <nobr><b>%1</b>?</nobr></p><p><b>Note:</b> this interface may be in use by one or more virtual network adapters belonging to one of your VMs. After it is removed, these adapters will no longer be usable until you correct their settings by either choosing a different interface name or a different adapter attachment type.</p> - + <p>Menghapus jaringan hanya-host ini akan menghapus antarmuka hanya-host yang mendasari jaringan ini. Apakah Anda ingin menghapus antarmuka (jaringan hanya-host) <nobr><b>%1</b>?</nobr></p><p><b>Catatan:</b> antarmuka ini mungkin dipakai oleh satu atau lebih adaptor jaringan virtual milik salah satu VM Anda. Setelah dibuang, adaptor tersebut tak akan dapat dipakai lagi sampai Anda memperbaiki pengaturannya dengan memilih nama antarmuka lain atau tipe pencantolan adaptor yang berbeda.</p> A file named <b>%1</b> already exists. Are you sure you want to replace it?<br /><br />Replacing it will overwrite its contents. - + File bernama <b>%1</b> telah ada. Apakah Anda yakin hendak menggantikannya<br /><br />Menggantikannya akan menimpa isinya. <p>VT-x/AMD-V hardware acceleration has been enabled, but is not operational. Certain guests (e.g. OS/2 and QNX) require this feature.</p><p>Please ensure that you have enabled VT-x/AMD-V properly in the BIOS of your host computer.</p> - + <p>Akselerasi hardware VT-x/AMD-V telah diaktifkan, tapi tidak operasional. Beberapa guest (mis. OS/2 dan QNX) memerlukan fitur ini.</p><p>Silakan pastikan bahwa Anda telah mengaktifkan VT-x/AMD-V dengan benar dalam BIOS komputer host Anda.</p> <p>Invalid e-mail address or password specified.</p> - + <p>Alamat email atau password yang dinyatakan tidak valid.</p> <p>Failed to register the VirtualBox product.</p><p>%1</p> - + <p>Gagal mendaftar produk VirtualBox.</p><p>%1</p> Failed to check files. - + Gagal memeriksa file. Failed to remove file. - + Gagal menghapus file. You seem to have the USBFS filesystem mounted at /sys/bus/usb/drivers. We strongly recommend that you change this, as it is a severe mis-configuration of your system which could cause USB devices to fail in unexpected ways. - + Sepertinya sistem file USBFS di-mount pada /sys/bus/usb/drivers. Kami sangat sarankan agar Anda mengubahnya, karena ini adalah miskonfigurasi sistem yang sangat parah yang dapat menyebabkan device USB gagal dengan cara yang tak disangka-sangka. You are running an EXPERIMENTAL build of VirtualBox. This version is not suitable for production use. - + Anda menjalankan versi PERCOBAAN dari VirtualBox. Versi ini tidak cocok untuk penggunaan produksi. Restore - + Kembalikan + <p>Deleting the snapshot will cause the state information saved in it to be lost, and disk data spread over several image files that VirtualBox has created together with the snapshot will be merged into one file. This can be a lengthy process, and the information in the snapshot cannot be recovered.</p></p>Are you sure you want to delete the selected snapshot <b>%1</b>?</p> - + <p>Menghapus snapshot akan menyebabkan informasi keadaan yang disimpan di dalamnya hilang, dan data disk yang disebar ke beberapa file image yang telah dibuat oleh VirtualBox, bersama dengan snapshot akan digabung ke dalam satu file. Proses ini bisa makan waktu lama, dan informasi di dalam snapshot tidak dapat diambil kembali.</p><p>Apakah Anda yakin hendak menghapus snapshot <b>%1</b>yang dipilih?</p> Delete - Hapus + Hapus Failed to restore the snapshot <b>%1</b> of the virtual machine <b>%2</b>. - + Gagal mengembalikan snapshot <b>%1</b> dari mesin virtual <b>%2</b>. Failed to delete the snapshot <b>%1</b> of the virtual machine <b>%2</b>. - + Gagal menghapus snapshot <b>%1</b> dari mesin virtual <b>%2</b>. &Create @@ -4889,61 +4890,61 @@ Unable to mount the %1 <nobr><b>%2</b></nobr> on the machine <b>%3</b>. - + Tak bisa mount %1 <nobr><b>%2</b></nobr> pada mesin <b>%3</b>. Would you like to force mounting of this medium? - + Apakah Anda hendak memaksa me-mount medium ini? Unable to unmount the %1 <nobr><b>%2</b></nobr> from the machine <b>%3</b>. - + Tak bisa unmount %1 <nobr><b>%2</b></nobr> pada mesin <b>%3</b>. Would you like to force unmounting of this medium? - + Apakah Anda hendak memaksa me-unmount medium ini? Force Unmount - + Paksa Unmount <p>Could not insert the VirtualBox Guest Additions installer CD image into the virtual machine <b>%1</b>, as the machine has no CD/DVD-ROM drives. Please add a drive using the storage page of the virtual machine settings dialog.</p> - + <b>Tak bisa menyisipkan image CD installer VirtualBox Guest Additions ke dalam mesin virtual <b>%1</b>, karena mesin tak memiliki drive CD/DVD-ROM. Silakan tambahkan sebuah drive memakai halaman penyimpanan dari dialog pengaturan mesin virtual.</p> E&xit warnAboutSettingsAutoConversion message box - &Keluar + &Keluar <p>The following VirtualBox settings files will be automatically converted from the old format to a new format required by the new version of VirtualBox.</p><p>Press <b>OK</b> to start VirtualBox now or press <b>Exit</b> if you want to terminate the VirtualBox application without any further actions.</p> - + <p>File pengaturan VirtualBox berikut akan otomatis dikonversi dari format lama ke format baru yang diperlukan oleh versi baru VirtualBox.</p><p>Tekan <b>OK</b> untuk memulai VirtualBox sekarang atau tekan <b>Keluar</b> bila Anda hendak mengakhiri aplikasi VirtualBox tanpa tindakan lain</p> hard disk failed to mount ... - hard disk + hard disk CD/DVD failed to mount ... host-drive - + CD/DVD CD/DVD image failed to mount ... - image CD/DVD + image CD/DVD floppy failed to mount ... host-drive - + floppy floppy image failed to mount ... - image floppy + image floppy hard disk @@ -4952,369 +4953,376 @@ <p>Are you sure you want to delete the CD/DVD-ROM device?</p><p>You will not be able to mount any CDs or ISO images or install the Guest Additions without it!</p> - + <p>Apakah Anda yakin hendak menghapus device CD/DVD-ROM?</p><p>Anda tak akan bisa me-mount image CD atau ISO atau menginstall Guest Addition tanpanya!</p> &Remove medium - + &Hapus <p>VT-x/AMD-V hardware acceleration is not available on your system. Your 64-bit guest will fail to detect a 64-bit CPU and will not be able to boot. - + <p>Akselerasi hardware VT-x/AMD-V tak tersedia pada sistem Anda. Guest 64-bit Anda akan gagal mendeteksi CPU 64-bit dan tak akan bisa boot. <p>VT-x/AMD-V hardware acceleration is not available on your system. Certain guests (e.g. OS/2 and QNX) require this feature and will fail to boot without it.</p> - + <p>Akselerasi hardware VT-x/AMD-V tak tersedia pada sistem Anda. Beberapa guest (mis. OS/2 dan QNX) memerlukan fitur ini dan tak akan bisa boot tanpanya.</p> <p>Deleting the snapshot %1 will temporarily need more disk space. In the worst case the size of image %2 will grow by %3, however on this filesystem there is only %4 free.</p><p>Running out of disk space during the merge operation can result in corruption of the image and the VM configuration, i.e. loss of the VM and its data.</p><p>You may continue with deleting the snapshot at your own risk.</p> - + <p>Menghapus snapshot %1 akan perlu lebih banyak ruang disk untuk sementara. Pada kasus terburuk ukurang image %2 akan bertambah %3, namun pada sistem file ini hanya ada ruang bebas %4.</p><p>Kehabisan ruang disk selama operasi penggabungan akan menghasilkan kerusakan image dan konfigurasi VM, yaitu hilangnya VM dan datanya.</p><p>Anda dapat melanjutkan penghapusan snapshot dengan risiko yang Anda tanggung sendiri.</p> <p>Could not change the guest screen to this host screen due to insufficient guest video memory.</p><p>You should configure the virtual machine to have at least <b>%1</b> of video memory.</p> - + <p>Tak dapat mengubah layar guest ke layar host ini karena memori video guest tak cukup.</p><p>Anda mesti menata mesin virtual agar memakai memori video paling tidak <b>%1</b>.</p> <p>Could not change the guest screen to this host screen due to insufficient guest video memory.</p><p>You should configure the virtual machine to have at least <b>%1</b> of video memory.</p><p>Press <b>Ignore</b> to switch the screen anyway or press <b>Cancel</b> to cancel the operation.</p> - + <p>Tak dapat mengubah layar guest ke layar host ini karena memori video guest tak cukup.</p><p>Anda mesti menata mesin virtual agar memakai memori video paling tidak <b>%1</b>.</p><p>Tekan <b>Abaikan</p> untuk tetap berpindah ke layar atau tekan <b>Batal</b> untuk membatalkan operasi.</p> <p>Can not switch the guest display to fullscreen mode. You have more virtual screens configured than physical screens are attached to your host.</p><p>Please either lower the virtual screens in your VM configuration or attach additional screens to your host.</p> - + <p>Tak bisa menukar tampilan guest ke mode fullscreen. Anda memiliki lebih banyak layar virtual yang tertata daripada layar fisik yang tercantol ke host Anda.</p><p>Silakan turunkan cacah layar virtual dalam konfigurasi VM Anda atau cantolkan layar tambahan ke host Anda.</p> <p>Can not switch the guest display to seamless mode. You have more virtual screens configured than physical screens are attached to your host.</p><p>Please either lower the virtual screens in your VM configuration or attach additional screens to your host.</p> - + <p>Tak bisa menukar tampilan guest ke mode seamless. Anda memiliki lebih banyak layar virtual yang tertata daripada layar fisik yang tercantol ke host Anda.</p><p>Silakan turunkan cacah layar virtual dalam konfigurasi VM Anda atau cantolkan layar tambahan ke host Anda.</p> <p>Could not find the VirtualBox User Manual <nobr><b>%1</b>.</nobr></p><p>Do you wish to download this file from the Internet?</p> - + <p>Tak bisa temukan Manual Pengguna VirtualBox <nobr><b>%1</b>.</nobr></p><p>Apakah Anda hendak mendownload file ini dari Internet?</p> <p>Are you sure you want to download the VirtualBox User Manual from <nobr><a href="%1">%2</a></nobr> (size %3 bytes)?</p> - + <p>Apakah Anda yakin hendak mendownload Manual Pengguna VirtualBox dari <nobr><a href="%1">%2</a></nobr> (ukuran %3 byte)?</p> <p>Failed to download the VirtualBox User Manual from <nobr><a href="%1">%2</a>.</nobr></p><p>%3</p> - + <p>Gagal mendownload Manual Pengguna VirtualBox dari <nobr><a href="%1">%2</a>.</nobr></p><p>%3</p> <p>The VirtualBox User Manual has been successfully downloaded from <nobr><a href="%1">%2</a></nobr> and saved locally as <nobr><b>%3</b>.</nobr></p> - + <p>Manual Pengguna VirtualBox telah sukses didownload dari <nobr><a href="%1">%2</a></nobr> dan disimpan secara lokal sebagai <nobr><b>%3</b>.</nobr></p> <p>The VirtualBox User Manual has been successfully downloaded from <nobr><a href="%1">%2</a></nobr> but can't be saved locally as <nobr><b>%3</b>.</nobr></p><p>Please choose another location for that file.</p> - + <p>Manual Pengguna VirtualBox telah sukses didownload dari <nobr><a href="%1">%2</a></nobr> namu tak dapat disimpan secara lokal sebagai <nobr><b>%3</b>.</nobr></p><p>Silakan pilih lokasi lain bagi file itu.</p> Failed to open virtual machine located in %1. - + Gagal membuka mesin virtual yang terletak di %1. Failed to add virtual machine <b>%1</b> located in <i>%2</i> because its already present. - + Gagal menambahkan mesin virtual <b>%1</b> yang terletak di <i>%2</i> karena telah ada. <p>You are about to remove the virtual machine <b>%1</b> from the machine list.</p><p>Would you like to delete the files containing the virtual machine from your hard disk as well?</p> - + <p>Anda akan menghapus mesin virtual <b>%1</b> dari daftar mesin.</p><p>Apakah Anda juga hendak menghapus file yang memuat mesin virtual dari hard disk Anda?</p> <p>You are about to remove the virtual machine <b>%1</b> from the machine list.</p><p>Would you like to delete the files containing the virtual machine from your hard disk as well? Doing this will also remove the files containing the machine's virtual hard disks if they are not in use by another machine.</p> - + <p>Anda akan menghapus mesin virtual <b>%1</b> dari daftar mesin.</p><p>Apakah Anda juga hendak menghapus file yang memuat mesin virtual dari hard disk Anda? Melakukan hal itu juga akan menghapus file yang memuat hard disk virtual mesin bila mereka tidak dipakai oleh mesin lain.</p> Delete all files - + Hapus semua file + Remove only - + Hanya hapus You are about to remove the inaccessible virtual machine <b>%1</b> from the machine list. Do you wish to proceed? - + Anda akan menghapus mesin virtual <b>%1</b> yang tak dapat diakses dari daftar mesin. Apakah Anda hendak melanjutkan? Remove - Hapus + Hapus <p>You are about to add a virtual hard disk to controller <b>%1</b>.</p><p>Would you like to create a new, empty file to hold the disk contents or select an existing one?</p> - + <p>Anda akan menambahkan sebuah hard disk virtual ke pengendali <b>%1</b>.</p><p>Apakah Anda ingin membuat suatu file baru yang kosong untuk menampung isi disk atau memilih yang telah ada?</p> Create &new disk add attachment routine - + Ciptakan disk &baru &Choose existing disk add attachment routine - + &Pilih disk yang telah ada <p>You are about to add a new CD/DVD drive to controller <b>%1</b>.</p><p>Would you like to choose a virtual CD/DVD disk to put in the drive or to leave it empty for now?</p> - + <p>Anda akan menambahkan sebuah drive CD/DVD baru ke pengendali <b>%1</b>.</p><p>Apakah Anda ingin memilih suatu disk CD/DVD virtual untuk diletakkan di dalam drive atau membiarkannya kosong untuk saat ini?</p> &Choose disk add attachment routine - + &Pilih disk Leave &empty add attachment routine - + Biarkan &kosong <p>You are about to add a new floppy drive to controller <b>%1</b>.</p><p>Would you like to choose a virtual floppy disk to put in the drive or to leave it empty for now?</p> - + <p>Anda akan menambahkan sebuah drive floppy baru ke pengendali <b>%1</b>.</p><p>Apakah Anda ingin memilih suatu disk floppy virtual untuk diletakkan di dalam drive atau membiarkannya kosong untuk saat ini?</p> Failed to detach the hard disk (<nobr><b>%1</b></nobr>) from the slot <i>%2</i> of the machine <b>%3</b>. - + Gagal mencopot hard disk (<nobr><b>%1</b></nobr>) dari slot <i>%2</i> mesin <b>%3</b>. Failed to detach the CD/DVD device (<nobr><b>%1</b></nobr>) from the slot <i>%2</i> of the machine <b>%3</b>. - + Gagal mencopot device CD/DVD (<nobr><b>%1</b></nobr>) dari slot <i>%2</i> mesin <b>%3</b>. Failed to detach the floppy device (<nobr><b>%1</b></nobr>) from the slot <i>%2</i> of the machine <b>%3</b>. - - - - <p>The virtual machine(s) <b>%1</b> are currently in a saved state.</p><p>If you continue the runtime state of the exported machine(s) will be discarded. Note that the existing machine(s) are not changed.</p> - - - + Gagal mencopot device floppy (<nobr><b>%1</b></nobr>) dari slot <i>%2</i> mesin <b>%3</b>. Failed to update Guest Additions. The Guest Additions installation image will be mounted to provide a manual installation. - + Gagal mengupdate Guest Addition. Image instalasi Guest Addition akan di-mount untuk menyediakan instalasi manual. Failed to install the Extension Pack <b>%1</b>. - + Gagal menginstall Extension Pack <b>%1</b>. Failed to uninstall the Extension Pack <b>%1</b>. - + Gagal uninstall Extension Pack <b>%1</b>. &Remove - + &Hapus The current port forwarding rules are not valid. None of the host or guest port values may be set to zero. - + Aturan penerusan port saat ini tidak valid. Nilai port guest atau host tak boleh nol. <p>There are unsaved changes in the port forwarding configuration.</p><p>If you proceed your changes will be discarded.</p> - + <p>Ada perubahan yang belum disimpan dalam konfigurasi penerusan port.</p><p>Bila Anda melanjutkan maka perubahan Anda akan dibuang.</p> Failed to attach the hard disk (<nobr><b>%1</b></nobr>) to the slot <i>%2</i> of the machine <b>%3</b>. - + Gagal mencantol hard disk (<nobr><b>%1</b></nobr>) ke slot <i>%2</i> mesin <b>%3</b>. Failed to attach the CD/DVD device (<nobr><b>%1</b></nobr>) to the slot <i>%2</i> of the machine <b>%3</b>. - + Gagal mencantol device CD/DVD (<nobr><b>%1</b></nobr>) ke slot <i>%2</i> mesin <b>%3</b>. Failed to attach the floppy device (<nobr><b>%1</b></nobr>) to the slot <i>%2</i> of the machine <b>%3</b>. - + Gagal mencantol device floppy (<nobr><b>%1</b></nobr>) ke slot <i>%2</i> mesin <b>%3</b>. <p>Note that the storage unit of this medium will not be deleted and that it will be possible to use it later again.</p> - + <p>Perhatikan bahwa unit penyimpanan medium ini tidak akan dihapus dan dapat dipakai lagi nanti.</p> <p>The VirtualBox Guest Additions do not appear to be available on this virtual machine, and shared folders cannot be used without them. To use shared folders inside the virtual machine, please install the Guest Additions if they are not installed, or re-install them if they are not working correctly, by selecting <b>Install Guest Additions</b> from the <b>Devices</b> menu. If they are installed but the machine is not yet fully started then shared folders will be available once it is.</p> - + <p>VirtualBox Guest Addition sepertinya tak tak tersedia pada mesin virtual ini, dan folder shared tak dapat dipakai tanpanya. Untuk memakai shared folder di dalam mesin virtual, silakan install Guest Addition bila belum dipasang, atau install ulang bila tidak bekerja dengan benar, dengan memilih <b>Install Guest Addition</b> dari menu <b>Device</b>. Bila sudah dipasang tapi mesin belum dimulai secara penuh maka shared folder akan tersedia setelah proses startup selesai</p> <p>The virtual machine window will be now switched to <b>fullscreen</b> mode. You can go back to windowed mode at any time by pressing <b>%1</b>.</p><p>Note that the <i>Host</i> key is currently defined as <b>%2</b>.</p><p>Note that the main menu bar is hidden in fullscreen mode. You can access it by pressing <b>Host+Home</b>.</p> - + <p>Window mesin virtual akan ditukar ke mode <b>Fullscreen</b>. Anda dapat kembali ke mode windowed kapanpun dengan menekan <b>%1</b>.</p><p>Perhatikan bahwa tombol <i>Host</i> kini didefinisikan sebagai <b>%2</b>.</p><p>Perhatikan bahwa bar manu utama tersembunyi dalam mode fullscreen. Anda dapat mengaksesnya dengan menekan <b>Host+Home</b>.</p> + <p>The virtual machine window will be now switched to <b>Seamless</b> mode. You can go back to windowed mode at any time by pressing <b>%1</b>.</p><p>Note that the <i>Host</i> key is currently defined as <b>%2</b>.</p><p>Note that the main menu bar is hidden in seamless mode. You can access it by pressing <b>Host+Home</b>.</p> - + <p>Window mesin virtual akan ditukar ke mode <b>Seamless</b>. Anda dapat kembali ke mode windowed kapanpun dengan menekan <b>%1</b>.</p><p>Perhatikan bahwa tombol <i>Host</i> kini didefinisikan sebagai <b>%2</b>.</p><p>Perhatikan bahwa bar manu utama tersembunyi dalam mode fullscreen. Anda dapat mengaksesnya dengan menekan <b>Host+Home</b>.</p> <p>The virtual machine window will be now switched to <b>Scale</b> mode. You can go back to windowed mode at any time by pressing <b>%1</b>.</p><p>Note that the <i>Host</i> key is currently defined as <b>%2</b>.</p><p>Note that the main menu bar is hidden in scale mode. You can access it by pressing <b>Host+Home</b>.</p> - + <p>Window mesin virtual akan ditukar ke mode <b>Skala</b>. Anda dapat kembali ke mode windowed kapanpun dengan menekan <b>%1</b>.</p><p>Perhatikan bahwa tombol <i>Host</i> kini didefinisikan sebagai <b>%2</b>.</p><p>Perhatikan bahwa bar manu utama tersembunyi dalam mode fullscreen. Anda dapat mengaksesnya dengan menekan <b>Host+Home</b>.</p> Switch scale - Beralih + Beralih Failed to open the Extension Pack <b>%1</b>. - + Gagal membuka Extension Pack <b>%1</b>. <p>You are about to install a VirtualBox extension pack. Extension packs complement the functionality of VirtualBox and can contain system level software that could be potentially harmful to your system. Please review the description below and only proceed if you have obtained the extension pack from a trusted source.</p><p><table cellpadding=0 cellspacing=0><tr><td><b>Name:&nbsp;&nbsp;</b></td><td>%1</td></tr><tr><td><b>Version:&nbsp;&nbsp;</b></td><td>%2</td></tr><tr><td><b>Description:&nbsp;&nbsp;</b></td><td>%3</td></tr></table></p> - + <p>Anda akan menginstal sebuah extension pack VirtualBox. Extension pack melengkapi fungsionalitas VirtualBox dan dapat memuat software level sistem yang berpotensi meruksa sistem Anda. Silakan tinjau deskripsi di bawah dan hanya melanjutkan bila Anda memperoleh extension pack dari suatu sumber yang terpercaya.</p><p><table cellpadding=0 cellspacing=0><tr><td><b>Nama:&nbsp;&nbsp;</b></td><td>%1</td></tr><tr><td><b>Versi:&nbsp;&nbsp;</b></td><td>%2</td></tr><tr><td><b>Deskripsi:&nbsp;&nbsp;</b></td><td>%3</td></tr></table></p> &Install - + &Instal Extension packs complement the functionality of VirtualBox and can contain system level software that could be potentially harmful to your system. Please review the description below and only proceed if you have obtained the extension pack from a trusted source. - + Extension pack melengkapi fungsionalitas VirtualBox dan dapat memuat software level sistem yang berpotensi meruksa sistem Anda. Silakan tinjau deskripsi di bawah dan hanya melanjutkan bila Anda memperoleh extension pack dari suatu sumber yang terpercaya. <p>An older version of the extension pack is already installed, would you like to upgrade? <p>%1</p><p><table cellpadding=0 cellspacing=0><tr><td><b>Name:&nbsp;&nbsp;</b></td><td>%2</td></tr><tr><td><b>New Version:&nbsp;&nbsp;</b></td><td>%3</td></tr><tr><td><b>Current Version:&nbsp;&nbsp;</b></td><td>%4</td></tr><tr><td><b>Description:&nbsp;&nbsp;</b></td><td>%5</td></tr></table></p> - + <p>Extension pack dengan versi lebih tua telah diinstal, Apakah Anda mau meng-upgrade? <p>%1</p><p><table cellpadding=0 cellspacing=0><tr><td><b>Nama:&nbsp;&nbsp;</b></td><td>%2</td></tr><tr><td><b>Versi Baru:&nbsp;&nbsp;</b></td><td>%3</td></tr><tr><td><b>Versi Kini:&nbsp;&nbsp;</b></td><td>%4</td></tr><tr><td><b>Deskripsi:&nbsp;&nbsp;</b></td><td>%5</td></tr></table></p> &Upgrade - + &Upgrade <p>An newer version of the extension pack is already installed, would you like to downgrade? <p>%1</p><p><table cellpadding=0 cellspacing=0><tr><td><b>Name:&nbsp;&nbsp;</b></td><td>%2</td></tr><tr><td><b>New Version:&nbsp;&nbsp;</b></td><td>%3</td></tr><tr><td><b>Current Version:&nbsp;&nbsp;</b></td><td>%4</td></tr><tr><td><b>Description:&nbsp;&nbsp;</b></td><td>%5</td></tr></table></p> - + <p>Extension pack dengan versi lebih baru telah diinstal, Apakah Anda mau men-downgrade? <p>%1</p><p><table cellpadding=0 cellspacing=0><tr><td><b>Nama:&nbsp;&nbsp;</b></td><td>%2</td></tr><tr><td><b>Versi Baru:&nbsp;&nbsp;</b></td><td>%3</td></tr><tr><td><b>Versi Kini:&nbsp;&nbsp;</b></td><td>%4</td></tr><tr><td><b>Deskripsi:&nbsp;&nbsp;</b></td><td>%5</td></tr></table></p> &Downgrade - + &Downgrade <p>The extension pack is already installed with the same version, would you like reinstall it? <p>%1</p><p><table cellpadding=0 cellspacing=0><tr><td><b>Name:&nbsp;&nbsp;</b></td><td>%2</td></tr><tr><td><b>Version:&nbsp;&nbsp;</b></td><td>%3</td></tr><tr><td><b>Description:&nbsp;&nbsp;</b></td><td>%4</td></tr></table></p> - + <p>Extension pack dengan versi yang sama telah diinstal, Apakah Anda mau menginstal ulang? <p>%1</p><p><table cellpadding=0 cellspacing=0><tr><td><b>Nama:&nbsp;&nbsp;</b></td><td>%2</td></tr><tr><td><b>Versi:&nbsp;&nbsp;</b></td><td>%3</td></tr><tr><td><b>Deskripsi:&nbsp;&nbsp;</b></td><td>%4</td></tr></table></p> &Reinstall - + &Instal ulang <p>You are about to remove the VirtualBox extension pack <b>%1</b>.</p><p>Are you sure you want to proceed?</p> - + <p>Anda akan menghapus extension pack <b>%1</b> VirtualBox.</p><p>Apakah Anda yakin ingin melanjutkan?</p> The extension pack <br><nobr><b>%1</b><nobr><br> was installed successfully. - + Extension pack <br><nobr><b>%1</b><nobr><br> sukses diinstal. <p>Cannot create the machine folder <b>%1</b> in the parent folder <nobr><b>%2</b>.</nobr></p><p>Please check that the parent really exists and that you have permissions to create the machine folder.</p> - + <p>Tak bisa membuat folder mesin <b>%1</b> dalam folder induk <nobr><b>%2</b>.</nobr></p><p>Silakan periksa bahwa induknya memang ada dan Anda memiliki hak untuk membuat folder mesin.</p> Failed to register the virtual machine <b>%1</b>. - + Gagal mendaftarkan mesin virtual <b>%1</b>. <p>The machine settings were changed while you were editing them. You currently have unsaved setting changes.</p><p>Would you like to reload the changed settings or to keep your own changes?</p> - + <p>Pengaturan mesin berubah ketika Anda sedang mengeditnya. Kini Anda memiliki perubahan pengaturan yang belum disimpan.</p><p>Apakah Anda hendak memuat ulang pengaturan yang diubah atau mempertahankan perubahan Anda?</p> Reload settings - + Muat ulang pengaturan Keep changes - + Pertahankan perubahan The virtual machine that you are changing has been started. Only certain settings can be changed while a machine is running. All other changes will be lost if you close this window now. - + Mesin virtual yang sedang Anda ubah telah dimulai. Hanya pengaturan tertentu yang dapat diubah ketika mesin sedang berjalan. Semua perubahan lain akan hilang bila Anda menutup jendela ini sekarang. Failed to clone the virtual machine <b>%1</b>. - + Gagal mengklon mesin virtual <b>%1</b>. <p>You are about to restore snapshot <b>%1</b>.</p><p>You can create a snapshot of the current state of the virtual machine first by checking the box below; if you do not do this the current state will be permanently lost. Do you wish to proceed?</p> - + <p>Anda akan mengembalikan snapshot <b>%1</b>.</p><p>Anda dapat terlebih dahulu mencipta sebuah snapshot dari keadaan mesin virtual saat ini dengan mencontreng kotak di bawah, bila Anda tidak melakukan ini maka keadaan sekarang akan hilang selamanya. Apakah Anda hendak melanjutkan?</p> Create a snapshot of the current machine state - + Buat sebuah snapshot atas keadaan mesin sekarang <p>Are you sure you want to restore snapshot <b>%1</b>?</p> - + <p>Apakah Anda yakin hendak mengembalikan snapshot <b>%1</b>?</p> <p>Error changing medium type from <b>%1</b> to <b>%2</b>.</p> - + <p>Kesalahan mengubah tipe medium dari <b>%1</b> ke <b>%2</b>.</p> Sorry, some generic error happens. - + Maaf, terjadi kesalahan generik. <p>USB 2.0 is currently enabled for this virtual machine. However, this requires the <b><nobr>%1</nobr></b> to be installed.</p><p>Please install the Extension Pack from the VirtualBox download site. After this you will be able to re-enable USB 2.0. It will be disabled in the meantime unless you cancel the current settings changes.</p> - + <p>USB 2.0 kini diaktifkan bagi mesin virtual ini. Namun, ini memerlukan instalasi <b><nobr>%1</nobr></b>. Silakan instal Extension Pack dari situs download VirtualBox. Setelah ini Anda akan dapat mengaktifkan ulang USB 2.0. Ini akan dimatikan sementara kecuali Anda membatalkan perubahan pengaturan kini.</p> Could not load the Host USB Proxy Service (VERR_FILE_NOT_FOUND). The service might not be installed on the host computer - + Tak bisa memuat Layanan Proksi USB Host (VERR_FILE_NOT_FOUND). Layanan mungkin tak terinstal pada komputer host VirtualBox is not currently allowed to access USB devices. You can change this by adding your user to the 'vboxusers' group. Please see the user manual for a more detailed explanation - + VirtualBox kini tak diijinkan mengakses device USB. Anda dapat mengubah ini dengan cara menambahkan pengguna Anda ke grup 'vboxusers'. Silakan lihat manual pengguna untuk penjelasan lebih terinci VirtualBox is not currently allowed to access USB devices. You can change this by allowing your user to access the 'usbfs' folder and files. Please see the user manual for a more detailed explanation - + VirtualBox kini tak diijinkan mengakses device USB. Anda dapat mengubah ini dengan cara mengijinkan pengguna Anda untuk mengakses folder dan file 'usbfs'. Silakan lihat manual pengguna untuk penjelasan lebih terinci The USB Proxy Service has not yet been ported to this host - + Layanan Proksi USB belum di-port ke host ini Could not load the Host USB Proxy service - + Tak bisa memuat layanan Proksi USB Host Can't find snapshot named <b>%1</b>. - + Tak bisa menemukan snapshot bernama <b>%1</b>. <p>Failed to save the downloaded file as <nobr><b>%1</b>.</nobr></p> - <p>Gagal menyimpan file terdownload sebagai <nobr><b>%1</b>.</nobr></p> + <p>Gagal menyimpan file terdownload sebagai <nobr><b>%1</b>.</nobr></p> <p>You have an old version (%1) of the <b><nobr>%2</nobr></b> installed.</p><p>Do you wish to download latest one from the Internet?</p> - + <p>Anda memiliki <b><nobr>%2</nobr></b> versi lama (%1).</p><p>Apakah Anda hendak mendownload yang terbaru dari Internet?</p> Download extension pack - Download + Download <p>Are you sure you want to download the <b><nobr>%1</nobr></b> from <nobr><a href="%2">%2</a></nobr> (size %3 bytes)?</p> - + <p>Apakah Anda yakin hendak mendownload <b><nobr>%1</nobr></b> dari <nobr><a href="%2">%2</a></nobr> (ukuran %3 byte)?</p> <p>The <b><nobr>%1</nobr></b> has been successfully downloaded from <nobr><a href="%2">%2</a></nobr> and saved locally as <nobr><b>%3</b>.</nobr></p><p>Do you wish to install this extension pack?</p> - + <p><b><nobr>%1</nobr></b> telah sukses didownload dari <nobr><a href="%2">%2</a></nobr> dan disimpan secara lokal sebagai <nobr><b>%3</b>.</nobr></p><p>Apakah Anda hendak menginstal extension pack ini?</p> Install extension pack - + Instal <p>The <b><nobr>%1</nobr></b> has been successfully downloaded from <nobr><a href="%2">%2</a></nobr> but can't be saved locally as <nobr><b>%3</b>.</nobr></p><p>Please choose another location for that file.</p> - + <p><b><nobr>%1</nobr></b> telah sukses didownload dari <nobr><a href="%2">%2</a></nobr> tapi tak bisa disimpan secara lokal sebagai <nobr><b>%3</b>.</nobr></p><p>Silakan pilih lokasi lain bagi file itu.</p> <p>Failed to download the <b><nobr>%1</nobr></b> from <nobr><a href="%2">%2</a>.</nobr></p><p>%3</p> - + <p>Gagal mendownload <b><nobr>%1</nobr></b> dari <nobr><a href="%2">%2</a>.</nobr></p><p>%3</p> <p>You have version %1 of the <b><nobr>%2</nobr></b> installed.</p><p>You should download and install version %3 of this extension pack from Oracle!</p> - + <p>Anda memiliki <b><nobr>%2</nobr></b> versi %1.</p><p>Anda mesti mendownload dan menginstall versi %3 extension pack ini dari Oracle!</p> Ok extension pack + Ok + + + <p>The %n following virtual machine(s) are currently in a saved state: <b>%1</b></p><p>If you continue the runtime state of the exported machine(s) will be discarded. The other machine(s) will not be changed.</p> + This text is never used with n == 0. Feel free to drop the %n where possible, we only included it because of problems with Qt Linguist (but the user can see how many machines are in the list and doesn't need to be told). + + <p>%n mesin virtual berikut kini dalam keadaan disimpan: <b>%1</b></p><p>Bila Anda meneruskan, keadaan runtime dari mesin yang diekspor akan dibuang. Mesin lain tidak akan diubah.</p> + + + + <p>Failed to initialize COM because the VirtualBox global configuration directory <b><nobr>%1</nobr></b> is not accessible. Please check the permissions of this directory and of its parent directory.</p><p>The application will now terminate.</p> @@ -5341,48 +5349,48 @@ Cancel the VirtualBox User Manual download - + Batalkan download Manual Pengguna VirtualBox Downloading the VirtualBox User Manual - + Mendownload Manual Pengguna VirtualBox Downloading the VirtualBox User Manual <nobr><b>%1</b>...</nobr> - + Mendownload Manual Pengguna VirtualBox <nobr><b>%1</b>...</nobr> UIMiniProgressWidgetAdditions Cancel the VirtualBox Guest Additions CD image download - Batalkan download image CD VirtualBox Guest Additions + Batalkan download image CD VirtualBox Guest Additions Downloading the VirtualBox Guest Additions CD image from <nobr><b>%1</b>...</nobr> - Mendownload image CD VirtualBox Guest Additions dari <nobr><b>%1</b>...</nobr> + Mendownload image CD VirtualBox Guest Additions dari <nobr><b>%1</b>...</nobr> UIMiniProgressWidgetExtension Cancel the <nobr><b>%1</b></nobr> download - + Batalkan download <nobr><b>%1</b></nobr> Downloading the <nobr><b>%1</b></nobr> from <nobr><b>%2</b>...</nobr> - + Mendownload <nobr><b>%1</b></nobr> dari <nobr><b>%2</b>...</nobr> UIMultiScreenLayout Virtual Screen %1 - + Layar Virtual %1 Use Host Screen %1 - + Gunakan Layar Host %1 @@ -5475,7 +5483,7 @@ Summary - Risalah + Ringkasan <nobr>%1 Bytes</nobr> @@ -5491,7 +5499,7 @@ Select a file for the new hard disk image file - Pilih sebuah file untuk file image hard disk baru + Pilih sebuah file untuk file image hard disk baru <p>Select the type of virtual hard disk image you want to create.</p> @@ -5512,12 +5520,12 @@ Location summary - Lokasi + Lokasi Size summary - Ukuran + Ukuran Cancel @@ -5530,178 +5538,179 @@ %1_copy copied virtual disk name - + salinan_%1 Create - + Buat Copy Virtual Disk - + Salin Disk Virtual Copy - + Salin Welcome to the virtual disk copying wizard - + Selamat datang di wizard penyalinan disk virtual <p>This wizard will help you to copy a virtual disk.</p> - + <p>Wizard ini akan membantu Anda menyalin disk virtual.</p> Please select the virtual disk which you would like to copy if it is not already selected. You can either choose one from the list or use the folder icon beside the list to select a virtual disk file. - + Silakan pilih disk virtual yang ingin Anda salin bila belum dipilih. Anda dapat memilih dari daftar atau memakai ikon folder di samping daftar untuk memilih file disk virtual. &VDI (VirtualBox Disk Image) - + &VDI (VirtualBox Disk Image) V&MDK (Virtual Machine Disk) - + V&MDK (Virtual Machine Disk) V&HD (Virtual Hard Disk) - + V&HD (Virtual Hard Disk) Welcome to the virtual disk creation wizard - + Selamat datang di wizard penciptaan disk virtual <p>This wizard will help you to create a new virtual disk for your virtual machine.</p> - + <p>Wizard ini akan membantu Anda menciptakan disk virtual baru bagi mesin virtual Anda.</p> <p>Please choose the type of file that you would like to use for the new virtual disk. If you do not need to use it with other virtualization software you can leave this setting unchanged.</p> - + <p>Silakan pilih tipe file yang ingin Anda pakai untuk disk virtual baru. Bila Anda tak perlu memakainya dengan software virtualisasi lain Anda dapat membiarkan setting ini tak diubah.</p> Virtual disk file type - + Tipe file disk virtual Please choose the type of file that you would like to use for the new virtual disk. If you do not need to use it with other virtualization software you can leave this setting unchanged. - + Silakan pilih tipe file yang ingin Anda pakai untuk disk virtual baru. Bila Anda tak perlu memakainya dengan software virtualisasi lain Anda dapat membiarkan setting ini tak diubah. Virtual disk storage details - + Rincian penyimpanan disk virtual Please choose whether the new virtual disk file should be allocated as it is used or if it should be created fully allocated. - + Silakan pilih apakah file disk virtual baru mesti dialokasikan ketika dipakai atau mesti diciptakan teralokasi penuh. <p>A <b>dynamically allocated</b> virtual disk file will only use space on your physical hard disk as it fills up, although it will not shrink again automatically when space on it is freed.</p> - + <p>File disk virtual <b>yang dialokasikan secara dinamis</b> hanya akan memakai ruang pada hard disk fisik Anda ketika terisi, walaupun mereka tak akan mengecil lagi secara otomatis ketika ruang di dalamnya dibebaskan.</p> <p>A <b>fixed size</b> virtual disk file may take longer to create on some systems but is often faster to use.</p> - + <p>File disk virtual <b>berukuran tetap</b> mungkin makan waktu lebih lama untuk diciptakan pada beberapa sistem tapi seringkali lebih cepat dipakainya.</p> <p>You can also choose to <b>split</b> the virtual disk into several files of up to two gigabytes each. This is mainly useful if you wish to store the virtual machine on removable USB devices or old systems, some of which cannot handle very large files. - + <p>Anda juga dapat memilih untuk <b>memecah</b> disk virtual ke dalam beberapa file yang masing-masing berukuran sampai dengan dua giga byte. Ini terutama berguna bila Anda hendak menyimpan mesin virtual pada device USB removable atau sistem lama, yang mungkin tak bisa menangani file sangat besar. &Dynamically allocated - + &Dialokasikan secara dinamis &Fixed size - + Ukuran &tetap &Split into files of less than 2GB - + &Pecah ke dalam file kurang dari 2GB Virtual disk file location and size - + Lokasi dan ukuran disk virtual Select the size of the virtual disk in megabytes. This size will be reported to the Guest OS as the maximum size of this virtual disk. - + Pilih ukuran disk virtual dalam megabyte. Ukuran ini akan dilaporkan ke Guest OS sebagai ukuran maksimum dari disk virtual ini. Virtual disk file location - + Lokasi dan disk virtual Please type the name of the new virtual disk file into the box below or click on the folder icon to select a different folder to create the file in. - + Silakan ketik nama file disk virtual baru ke kotak di bawah atau klik pada ikon folder untuk memilih folder lain tempat mencipta file. <nobr>%1 (%2 B)</nobr> - + <nobr>%1 (%2 B)</nobr> You are going to create a new virtual disk with the following parameters: - + Anda akan menciptakan disk virtual baru dengan parameter berikut: You are going to create a copied virtual disk with the following parameters: - + Anda akan menciptakan disk virtual hasil penyalinan dengan parameter berikut: If the above settings are correct, press the <b>%1</b> button. Once you press it the new virtual disk file will be created. - + Bila setting di atas sudah benar, tekan tombol <b>%1</b>. Setelah Anda menekannya, sebuah file disk virtual baru akan tercipta. %1 B - + %1 B File type summary - + Tipe file Details summary - + Rincian H&DD (Parallels Hard Disk) - + H&DD (Hard Disk Parallels) Q&ED (QEMU enhanced disk) - + Q&ED (QEMU enhanced disk) &QCOW (QEMU Copy-On-Write) - + &QCOW (QEMU Copy-On-Write) UINewHDWizardPageFormat File type - + Tipe file UINewHDWizardPageOptions &Location - + &Ukuran + &Lokasi &Size - + UINewHDWizardPageVariant Storage details - + Rincian penyimpanan @@ -5712,11 +5721,11 @@ Virtual disk to copy - + Disk virtual untuk disalin Choose a virtual hard disk file... - + Pilih file hard disk virtual... @@ -5947,60 +5956,60 @@ Create - + Buat UINewVMWzdPage1 Welcome to the New Virtual Machine Wizard! - Selamat Datang di Wizard Mesin Virtual Baru! + Selamat Datang di Wizard Mesin Virtual Baru! <p>This wizard will guide you through the steps that are necessary to create a new virtual machine for VirtualBox.</p><p>%1</p> - + <p>Wizard ini akan membimbing Anda melewati langkah-langkah yang diperlukan untuk membuat suatu mesin virtual baru bagi VirtualBox.</p><p>%1</p> UINewVMWzdPage2 <p>Enter a name for the new virtual machine and select the type of the guest operating system you plan to install onto the virtual machine.</p><p>The name of the virtual machine usually indicates its software and hardware configuration. It will be used by all VirtualBox components to identify your virtual machine.</p> - + <p>Masukkan sebuah nama untuk mesin virtual yang baru dan pilih tipe sistem operasi guest yang akan Anda install pada mesin virtual.</p><p>Nama dari mesin virtual biasanya mengindikasikan konfigurasi software dan hardwarenya. Hal tersebut akan digunakan oleh semua komponen VirtualBox untuk mengidentifikasi mesin virtual Anda.</p> N&ame - N&ama + N&ama OS &Type - + &Tipe OS VM Name and OS Type - Nama Mesin Virtual dan Tipe Sistem Operasi + Nama VM dan Tipe OS UINewVMWzdPage3 <p>Select the amount of base memory (RAM) in megabytes to be allocated to the virtual machine.</p> - <p>Pilih jumlah memori dasar (RAM) dalam megabytes untuk dialokasikan pada mesin virtual.</p> + <p>Pilih banyaknya memori dasar (RAM) dalam megabyte untuk dialokasikan bagi mesin virtual.</p> Base &Memory Size - Ukuran &Memori Dasar + Ukuran &Memori Dasar MB - MB + MB Memory - Memori + Memori The recommended base memory size is <b>%1</b> MB. - Ukuran memori dasar yang disarankan adalah <b>%1</b> MB. + Ukuran memori dasar yang disarankan adalah <b>%1</b> MB. MB @@ -6012,15 +6021,15 @@ UINewVMWzdPage4 &Create new hard disk - + &Ciptakan hard disk baru &Use existing hard disk - + G&unakan hard disk yang telah ada Virtual Hard Disk - Hard Disk Virtual + Hard Disk Virtual The recommended size of the start-up disk is <b>%1</b> MB. @@ -6028,45 +6037,45 @@ Start-up &Disk - + &Disk Start-up <p>If you wish you can now add a start-up disk to the new machine. You can either create a new virtual disk or select one from the list or from another location using the folder icon.</p><p>If you need a more complex virtual disk setup you can skip this step and make the changes to the machine settings once the machine is created.</p> - + <p>Bila Anda menghendaki, Anda kini dapat menambahkan disk start-up ke mesin baru. Anda dapat membuat disk virtual baru atau memilih satu dari daftar atau dari lokasi lain memakai ikon folder.</p><p>Bila Anda memerlukan setup disk virtual yang lebih kompleks, Anda dapat melewati ini dan membuat perubahan ke pengaturan mesin setelah mesin diciptakan.</p> Choose a virtual hard disk file... - + Pilih sebuah file hard disk virtual... The recommended size of the start-up disk is <b>%1</b>. - + Ukuran disk start-up yang disarankan adalah <b>%1</b>. UINewVMWzdPage5 <p>You are going to create a new virtual machine with the following parameters:</p> - + <p>Anda akan menciptakan sebuah mesin virtual baru dengan parameter berikut:</p> Summary - Risalah + Ringkasan Name summary - Nama + Nama OS Type summary - Tipe Sistem Operasi + Tipe OS Base Memory summary - Memori Dasar + Memori Dasar MB @@ -6076,257 +6085,257 @@ Start-up Disk summary - + Disk Start-up <p>If the above is correct press the <b>%1</b> button. Once you press it, a new virtual machine will be created. </p><p>Note that you can alter these and all other setting of the created virtual machine at any time using the <b>Settings</b> dialog accessible through the menu of the main window.</p> - + <p>Bila yang di atas benar, tekan tombol <b>%1</b>. Setelah Anda menekannya, suatu mesti virtual baru akan diciptakan. </p><p>Perhatikan bahwa Anda dapat mengubah pengaturan ini dan semua lainnya atas mesin virtual yang diciptakan kapanpun memakai dialog <p>Pengaturan</b> yang dapat diakses melalui menu dari window utama.</p> UIPortForwardingModel Name - Nama + Nama Protocol - + Protokol Host IP - + IP Host Host Port - + Port Host Guest IP - + IP Guest Guest Port - + Port Guest UIProgressDialog A few seconds remaining - + Tersisa beberapa detik Canceling... - + Membatalkan... &Cancel - + &Batal Cancel the current operation - + Batalkan operasi saat ini %1, %2 remaining You may wish to translate this more like "Time remaining: %1, %2" - + %1, tersisa %2 %1 remaining You may wish to translate this more like "Time remaining: %1" - + Tersisa %1 UISession Install - + Instal UISettingsDialog <i>Select a settings category from the list on the left-hand side and move the mouse over a settings item to get more information.</i> - + <i>Pilih kategori setting dari daftar pada sisi kiri dan gerakkan mouse di atas sebuah pilihan setting untuk memperoleh informasi tambahan.</i> On the <b>%1</b> page, %2 - + Pada halaman <b>%1</b>, %2 Invalid settings detected - Setting yang tidak sesuai terdeteksi + Setting yang tidak valid terdeteksi Non-optimal settings detected - + Setting yang tidak optimal terdeteksi Settings - Setting + Setting UISettingsDialogGlobal General - Garis Besar + Umum Input - + Masukan Update - + Update Language - Bahasa + Bahasa USB - USB + USB Network - Jaringan + Jaringan Extensions - + Ekstensi VirtualBox - %1 - + VirtualBox - %1 Proxy - + Proksi UISettingsDialogMachine General - Garis Besar + Umum System - + Sistem Display - + Display Storage - + Penyimpanan Audio - Suara + Suara Network - Jaringan + Jaringan Ports - + Port Serial Ports - Port Serial + Port Serial Parallel Ports - Port Paralel + Port Paralel USB - USB + USB Shared Folders - Folder yang di Share + Folder yang di Share %1 - %2 - + %1 - %2 UITextEditor Edit text - + Edit teks &Replace... - + &Ganti... Replaces the current text with the content of a file. - + Ganti teks sekarang dengan isi dari suatu file. Text (*.txt);;All (*.*) - + Teks (*.txt);;Semua (*.*) Select a file to open... - + Pilih sebuah file untuk dibuka... UIUpdateManager 1 day - + 1 hari 2 days - + 2 hari 3 days - + 3 hari 4 days - + 4 hari 5 days - + 5 hari 6 days - + 6 hari 1 week - + 1 minggu 2 weeks - + 2 minggu 3 weeks - + 3 minggu 1 month - + 1 bulan Never - + Tak pernah Connection timed out. @@ -6349,75 +6358,75 @@ UIVMCloseDialog Close Virtual Machine - Tutup Mesin Virtual + Tutup Mesin Virtual You want to: - Anda ingin: + Anda ingin: <p>Saves the current execution state of the virtual machine to the physical hard disk of the host PC.</p><p>Next time this machine is started, it will be restored from the saved state and continue execution from the same place you saved it at, which will let you continue your work immediately.</p><p>Note that saving the machine state may take a long time, depending on the guest operating system type and the amount of memory you assigned to the virtual machine.</p> - + <p>Menyimpan keadaan eksekusi mesin virtual pada hard disk fisik dari PC host.</p><p>Saat waktu berikutnya mesin ini dinyalakan, akan dikembalikan dari keadaan yang tersimpan dan melanjutkan eksekusi dari tempat dimana Anda menyimpannya, yang akan memungkinkan Anda melanjutkan pekerjaan Anda seketika.</p><p>Perhatikan bahwa menyimpan keadaan mesin dapat membutuhkan waktu lama, bergantung pada tipe sistem operasi guest dan banyaknya memori yang Anda tempatkan pada mesin virtual.</p> &Save the machine state - &Simpan keadaan mesin + &Simpan keadaan mesin <p>Sends the ACPI Power Button press event to the virtual machine.</p><p>Normally, the guest operating system running inside the virtual machine will detect this event and perform a clean shutdown procedure. This is a recommended way to turn off the virtual machine because all applications running inside it will get a chance to save their data and state.</p><p>If the machine doesn't respond to this action then the guest operating system may be misconfigured or doesn't understand ACPI Power Button events at all. In this case you should select the <b>Power off the machine</b> action to stop virtual machine execution.</p> - + <p>Kirim peristiwa penekanan Tombol Power ACPI ke mesin virtual.</p><p>Pada umumnya, sistem operasi guest yang sedang berjalan dalam mesin virtual akan mendeteksi kejadian ini dan melakukan prosedur clean shutdown. Ini adalah cara yang direkomendasikan untuk mematikan mesin virtual karena semua aplikasi yang sedang berjalan didalamnya akan mendapat kesempatan untuk menyimpan data dan keadaan mereka.</p><p>Bila mesin tidak merespon pada tindakan ini maka pada sistem operasi guest telah terjadi miskonfigurasi atau tidak memahami peristiwa Tombol Power ACPI sama sekali. Pada kasus ini Anda harus memilih tindakan <b>Matikan mesin</b> untuk menghentikan eksekusi mesin virtual.</p> S&end the shutdown signal - &Kirim sinyal shutdown + &Kirim sinyal shutdown <p>Turns off the virtual machine.</p><p>Note that this action will stop machine execution immediately so that the guest operating system running inside it will not be able to perform a clean shutdown procedure which may result in <i>data loss</i> inside the virtual machine. Selecting this action is recommended only if the virtual machine does not respond to the <b>Send the shutdown signal</b> action.</p> - + <p>Matikan mesin virtual.</p><p>Perhatikan bahwa tindakan ini akan seketika menghentikan eksekusi mesin sehingga sistem operasi guest yang sedang berjalan di dalamnya tidak akan mampu melakukan prosedur clean shutdown yang dapat mengakibatkan <i>data hilang</i> dalam mesin virtual. Memilih tindakan ini hanya disarankan bila mesin virtual tidak merespon pada tindakan<b>Kirim sinyal shutdown</b>.</p> &Power off the machine - &Matikan mesin + &Matikan mesin Restore the machine state stored in the current snapshot - + Kembalikan keadaan mesin pada keadaan snapshot saat ini <p>When checked, the machine will be returned to the state stored in the current snapshot after it is turned off. This is useful if you are sure that you want to discard the results of your last sessions and start again at that snapshot.</p> - <p>Saat ditandai, keadaan mesin akan dikembalikan dari keadaan yang tersimpan dalam snapshot saat ini segera setelah dimatikan. Hal ini berguna bila anda yakin bahwa anda ingin mengabaikan hasil dari sesi terakhir dan kembali pada snapshot saat ini.</p> + <p>Saat ditandai, keadaan mesin akan dikembalikan dari keadaan yang tersimpan dalam snapshot saat ini segera setelah dimatikan. Hal ini berguna bila Anda yakin bahwa Anda ingin mengabaikan hasil dari sesi terakhir dan kembali pada snapshot saat ini.</p> &Restore current snapshot '%1' - + &Kembali pada snapshot saat ini '%1' UIVMDesktop &Details - &Detail + &Rincian &Snapshots - &Snapshot + &Snapshot UIVMListView Inaccessible - Tidak dapat diakses + Tidak dapat diakses <nobr>%1<br></nobr><nobr>%2 since %3</nobr><br><nobr>Session %4</nobr> VM tooltip (name, last state change, session state) - <nobr>%1<br></nobr><nobr>%2 sejak %3</nobr><br><nobr>Sesi %4</nobr> + <nobr>%1<br></nobr><nobr>%2 sejak %3</nobr><br><nobr>Sesi %4</nobr> <nobr><b>%1</b><br></nobr><nobr>Inaccessible since %2</nobr> Inaccessible VM tooltip (name, last state change) - <nobr><b>%1</b><br></nobr><nobr>Tidak dapat diakses sejak %2</nobr> + <nobr><b>%1</b><br></nobr><nobr>Tidak dapat diakses sejak %2</nobr> S&how @@ -6456,38 +6465,38 @@ UIVMPreviewWindow Update Disabled - + Update Dimatikan Every 0.5 s - + Setiap 0,5 d Every 1 s - + Setiap 1 d Every 2 s - + Setiap 2 d Every 5 s - + Setiap 5 d Every 10 s - + Setiap 10 d No Preview - + Tiada Pratinjau VBoxAboutDlg VirtualBox - About - VirtualBox - Keterangan + Tentang VirtualBox <qt>VirtualBox Graphical User Interface Version %1<br> @@ -6497,11 +6506,11 @@ VirtualBox Graphical User Interface - + Antarmuka Pengguna Grafik VirtualBox Version %1 - Versi %1 + Versi %1 @@ -7394,62 +7403,62 @@ VBoxEmptyFileSelector &Choose... - + &Pilih... VBoxFilePathSelectorWidget <reset to default> - + <reset ke default> The actual default path value will be displayed after accepting the changes and opening this dialog again. - + Nila path default sebenarnya akan ditampilkan setelah menerima perubahan dan membuka dialog ini lagi. <not selected> - <tidak terpilih> + <tidak dipilih> Please use the <b>Other...</b> item from the drop-down list to select a path. - + Silakan pakai item <b>Lainnya...</b> dari daftar drop-down untuk memilih suatu path. Other... - + Lainnya... Reset - Reset + Reset Opens a dialog to select a different folder. - + Buka dialog untuk memilih folder lain. Resets the folder path to the default value. - + Reset path folder ke nilai default. Opens a dialog to select a different file. - + Buka dialog untuk memilih file lain. Resets the file path to the default value. - + Reset path file ke nilai default. &Copy - + &Salin Please type the folder path here. - + Silakan ketik path folder di sini. Please type the file path here. - + Silakan ketik path file di sini. @@ -7701,7 +7710,7 @@ Powered Off MachineState - Matikan Power + Dimatikan Saved @@ -7711,7 +7720,7 @@ Aborted MachineState - Dibatalkan + Digugurkan Running @@ -7721,7 +7730,7 @@ Paused MachineState - Pause + Diistirahatkan Starting @@ -7731,7 +7740,7 @@ Stopping MachineState - Menghentikan + Menuju Berhenti Saving @@ -7761,7 +7770,7 @@ Spawning SessionState - Memulai + Melahirkan Closing @@ -8219,42 +8228,42 @@ <nobr>Vendor ID: %1</nobr> USB filter tooltip - + <nobr>ID Vendor: %1</nobr> <nobr>Product ID: %2</nobr> USB filter tooltip - + <nobr>ID Produk: %2</nobr> <nobr>Revision: %3</nobr> USB filter tooltip - + <nobr>Revisi: %3</nobr> <nobr>Product: %4</nobr> USB filter tooltip - + <nobr>Produk: %4</nobr> <nobr>Manufacturer: %5</nobr> USB filter tooltip - + <nobr>Pabrikan: %5</nobr> <nobr>Serial No.: %1</nobr> USB filter tooltip - + <nobr>No. Seri %1</nobr> <nobr>Port: %1</nobr> USB filter tooltip - + <nobr>Port: %1</nobr> <nobr>State: %1</nobr> USB filter tooltip - + <nobr>Keadaan: %1</nobr> Adapter %1 @@ -8269,137 +8278,137 @@ Checking... medium - + Memeriksa... Inaccessible medium - Tidak dapat diakses + Tidak dapat diakses 3D Acceleration details report - + Akselerasi 3D Enabled details report (3D Acceleration) - Menyala + Diaktifkan Disabled details report (3D Acceleration) - Mati + Dimatikan Setting Up MachineState - + Menata Differencing DiskType - Pembeda + Memroses perbedaan Nested Paging details report - + Paging Bertingkat Enabled details report (Nested Paging) - Menyala + Diaktifkan Disabled details report (Nested Paging) - Mati + Dimatikan Internal network, '%1' details report (network) - + Jaringan internal, '%1' SCSI StorageBus - + SCSI PIIX3 StorageControllerType - PIIX3 + PIIX3 PIIX4 StorageControllerType - PIIX4 + PIIX4 ICH6 StorageControllerType - + ICH6 AHCI StorageControllerType - + AHCI Lsilogic StorageControllerType - + Lsilogic BusLogic StorageControllerType - + BusLogic Bridged adapter, %1 details report (network) - + Adaptor ter-bridge, %1 Host-only adapter, '%1' details report (network) - + Adaptor hanya-host, '%1' Intel PRO/1000 MT Server (82545EM) NetworkAdapterType - + Intel PRO/1000 MT Server (82545EM) Bridged Adapter NetworkAttachmentType - + Adaptor Ter-bridge Host-only Adapter NetworkAttachmentType - + Adaptor Hanya-host <nobr>%1 MB</nobr> details report - <nobr>%4 MB</nobr> {1 ?} + <nobr>%1 MB</nobr> Processor(s) details report - + Prosesor <nobr>%1</nobr> details report - + <nobr>%1</nobr> System details report - + Sistem Disabled @@ -8409,495 +8418,491 @@ Display details report - + Display Raw File PortMode - + File Raw Enabled details report (2D Video Acceleration) - Menyala + Diaktifkan Disabled details report (2D Video Acceleration) - Mati + Dimatikan 2D Video Acceleration details report - + Akselerasi Video 2D Not Attached details report (Storage) - Tidak Terpasang + Tidak Disambung Storage details report - + Penyimpanan Teleported MachineState - + Di-teleport Guru Meditation MachineState - + Guru Bermeditasi Teleporting MachineState - + Meneleport Taking Live Snapshot MachineState - + Mengambil Snapshot Live Teleporting Paused VM MachineState - + Meneleport VM Istirahat Restoring Snapshot MachineState - + Mengembalikan Snapshot Deleting Snapshot MachineState - + Menghapus Snapshot Floppy StorageBus - Floppy + Floppy Device %1 StorageBusDevice - + Device %1 IDE Primary Master New Storage UI : Slot Name - + IDE Master Primer IDE Primary Slave New Storage UI : Slot Name - + IDE Slave Primer IDE Secondary Master New Storage UI : Slot Name - + IDE Master Sekunder IDE Secondary Slave New Storage UI : Slot Name - + IDE Slave Sekunder SATA Port %1 New Storage UI : Slot Name - + SATA Port %1 SCSI Port %1 New Storage UI : Slot Name - + SCSI Port %1 Floppy Device %1 New Storage UI : Slot Name - + Device Floppy %1 Paravirtualized Network (virtio-net) NetworkAdapterType - + Jaringan Ter-paravirtualisasi (virtio-net) I82078 StorageControllerType - + I82078 Empty medium - + Kosong Host Drive '%1' medium - + Drive Host '%1' Host Drive %1 (%2) medium - + Drive Host %1 (%2) <p style=white-space:pre>Type (Format): %1 (%2)</p> medium - + <p style=white-space:pre>Tipe (Format): %1 (%2)</p> <p>Attached to: %1</p> image - + <p>Terpasang pada: %1</p> <i>Not Attached</i> image - + <i>Tidak Terpasang</i> <i>Checking accessibility...</i> medium - + <i>Memeriksa aksesibilitas...</i> Failed to check media accessibility. medium - + Gagal memeriksa aksesibilitas media. <b>No medium selected</b> medium - + <b>Tak ada medium yang dipilih</b> You can also change this while the machine is running. - + Anda juga dapat mengubah ini ketika mesin berjalan. <b>No media available</b> medium - + <b>Tak ada media yang tersedia</b> You can create media images using the virtual media manager. - + Anda dapat mencipta image media memakai manajer media virtual. Attaching this hard disk will be performed indirectly using a newly created differencing hard disk. medium - + Pencantolan hard disk ini akan dilakukan secara tidak langsung menggunakan hard disk pembeda yang baru dibuat. Some of the media in this hard disk chain are inaccessible. Please use the Virtual Media Manager in <b>Show Differencing Hard Disks</b> mode to inspect these media. medium - + Beberapa media dalam rangkaian hard disk ini tak dapat diakses. Silakan pakai Manajer Media Virtual dalam mode <b>Tampilkan Hard Disk Pembeda</b> untuk memeriksa media tersebut. This base hard disk is indirectly attached using the following differencing hard disk: medium - + Hard disk dasar ini dicantolkan secara tidak langsung memakai hard disk pembeda berikut: %n year(s) - - + + %n tahun %n month(s) - - + + %n bulan %n day(s) - - + + %n hari %n hour(s) - - + + %n jam %n minute(s) - - + + %n menit %n second(s) - - + + %n detik (CD/DVD) - + CD/DVD Screens details report - + Layar SAS StorageBus - + SAS LsiLogic SAS StorageControllerType - + LsiLogic SAS B size suffix Bytes - + B KB size suffix KBytes=1024 Bytes - + KB MB size suffix MBytes=1024 KBytes - MB + MB GB size suffix GBytes=1024 MBytes - + GB TB size suffix TBytes=1024 GBytes - + TB PB size suffix PBytes=1024 TBytes - + PB Enabled nested paging - Menyala + Diaktifkan Disabled nested paging - Mati + Dimatikan Nested Paging - + Paging Bertingkat Shareable DiskType - + Dapat Di-share Unknown device USB device details - + Device tidak dikenal SAS Port %1 New Storage UI : Slot Name - + SAS Port %1 Remote Desktop Server Port details report (VRDE Server) - + Port Server Remote Desktop Remote Desktop Server details report (VRDE Server) - + Server Remote Desktop Disabled details report (VRDE Server) - Mati + Dimatikan Choose a virtual hard disk file - + Pilih sebuah file hard disk virtual hard disk - hard disk + hard disk Choose a virtual CD/DVD disk file - + Pilih sebuah file CD/DVD virtual CD/DVD-ROM disk - + Disk CD/DVD-ROM Choose a virtual floppy disk file - + Pilih sebuah file floppy virtual floppy disk - + disk floppy All %1 images (%2) - + Semua image %1 (%2) All files (*) - + Semua file (*) Fault Tolerant Syncing MachineState - + Penyelarasan Fault Tolerant Unlocked SessionState - + Tak Terkunci Locked SessionState - + Terkunci Unlocking SessionState - + Membuka Kunci Null AuthType - Kosong + Null External AuthType - Eksternal + Eksternal Guest AuthType - Guest + Guest Intel HD Audio AudioControllerType - + Audio HD Intel UDP NATProtocolType - + UDP TCP NATProtocolType - + TCP PIIX3 ChipsetType - PIIX3 + PIIX3 ICH9 ChipsetType - - - - and - + ICH9 MB size suffix MBytes=1024KBytes - MB + MB Readonly DiskType - + Baca-saja Multi-attach DiskType - + Multi-cantol Dynamically allocated storage - + Penyimpanan yang dialokasikan secara dinamis Fixed size storage - + Penyimpanan ukuran tetap Dynamically allocated storage split into files of less than 2GB - + Penyimpanan yang dialokasikan secara dinamis memecah ke file berukuran kurang dari 2GB Fixed size storage split into files of less than 2GB - + Penyimpanan ukuran tetap memecah file berukuran kurang dari 2GB Execution Cap details report - + Cap Eksekusi <nobr>%1%</nobr> details report - + <nobr>%1</nobr> Generic, '%1' details report (network) - + Generik, '%1' Generic Driver NetworkAttachmentType - + Driver Generik Deny NetworkAdapterPromiscModePolicyType - + Tolak Allow VMs NetworkAdapterPromiscModePolicyType - + Ijinkan VM Allow All NetworkAdapterPromiscModePolicyType - + Ijinkan Semua Adapter %1 - Adapter %1 + Adaptor %1 @@ -8916,7 +8921,7 @@ '%1' is an invalid host-combination code-sequence. - + '%1' adalah urutan kode kombinasi host yang tak valid. @@ -9487,15 +9492,15 @@ VBoxLicenseViewer I &Agree - S&aya Setuju + S&aya Setuju I &Disagree - Saya Ti&dak Setuju + Saya Ti&dak Setuju VirtualBox License - + Lisensi VirtualBox @@ -9556,47 +9561,47 @@ VBoxMediaManagerDlg &Actions - Tind&akan + Tind&akan &New... - &Baru... + &Baru... &Add... - T&ambah... + T&ambah... R&emove - &Hapus + &Hapus Re&lease - &Lepas + &Lepas Re&fresh - Re&fresh + Re&fresh Create a new virtual hard disk - Ciptakan hard disk virtual baru + Ciptakan sebuah hard disk virtual baru Add an existing medium - + Tambahkan sebuah medium yang telah ada Remove the selected medium - + Hapus medium yang dipilih Release the selected medium by detaching it from the machines - + Lepas medium yang dipilih dengan mencopotnya dari mesin Refresh the media list - Refresh daftar media + Refresh daftar media Location @@ -9608,19 +9613,19 @@ Checking accessibility - Cek aksesibilitas + Memeriksa aksesibilitas &Select - &Pilih + &Pilih All files (*) - + Semua file (*) Select a hard disk image file - Pilih file image hard disk + Pilih file image hard disk CD/DVD-ROM images (*.iso);;All files (*) @@ -9628,7 +9633,7 @@ Select a CD/DVD-ROM disk image file - Pilih file image CD/DVD-ROM + Pilih file image CD/DVD-ROM Floppy images (*.img);;All files (*) @@ -9636,48 +9641,48 @@ Select a floppy disk image file - Pilih file image floppy disk + Pilih file image floppy disk <i>Not&nbsp;Attached</i> - + <i>Tidak&nbsp;Terpasang</i> -- no info - -- + -- Virtual Media Manager - + Manajer Media Virtual Hard &Disks - + Hard &Disk Name - Nama + Nama Virtual Size - Ukuran Virtual + Ukuran Virtual Actual Size - Ukuran Aktual + Ukuran Aktual &CD/DVD Images - Image &CD/DVD-ROM + Image &CD/DVD Size - Ukuran + Ukuran &Floppy Images - Image &Floppy + Image &Floppy Attached to @@ -9696,78 +9701,78 @@ CD/DVD-ROM disk - + Disk CD/DVD-ROM hard disk - hard disk + hard disk floppy disk - + disk floppy All %1 images (%2) - + Semua image %1 (%2) Type: - + Tipe: Location: - + Lokasi: Format: - + Format: Storage details: - + Rincian penyimpanan: Attached to: - + Terpasang pada: &Copy... - + &Salin... &Modify... - + &Ubah... Copy an existing medium - + Salin media yang ada Modify the attributes of the selected medium - + Ubah atribut medium yang dipilih C&lose - + &Tutup VBoxMiniToolBar Always show the toolbar - + Selalu tampilkan toolbar Exit Full Screen or Seamless Mode - + Keluar Mode Fullscreen atau Seamless Close VM - + Tutup VM Minimize Window - + Minimalkan Window @@ -9801,19 +9806,19 @@ VBoxOSTypeSelectorWidget Operating &System: - + &Sistem Operasi: Displays the operating system family that you plan to install into this virtual machine. - + Tampilkan keluarga sistem operasi yang Anda rencanakan untuk diinstal ke mesin virtual ini. Displays the operating system type that you plan to install into this virtual machine (called a guest operating system). - Menampilkan tipe sistem operasi yang anda rencanakan untuk diinstall pada mesin virtual ini (disebut sebagai sebuah sistem operasi guest). + Tampilkan tipe sistem operasi yang Anda rencanakan untuk diinstal pada mesin virtual ini (disebut sebagai sebuah sistem operasi guest). &Version: - + &Versi: @@ -9906,15 +9911,15 @@ VBoxScreenshotViewer Screenshot of %1 (%2) - + Cuplikan layar %1 (%2) Click to view non-scaled screenshot. - + Klik untuk melihat cuplikan layar ukuran sebenarnya. Click to view scaled screenshot. - + Klik untuk melihat cuplikan layar dengan ukuran disesuaikan. @@ -10018,7 +10023,7 @@ Discard - Abaikan + Abaikan Discard the saved state of the selected virtual machine @@ -10178,139 +10183,139 @@ <h3>Welcome to VirtualBox!</h3><p>The left part of this window is a list of all virtual machines on your computer. The list is empty now because you haven't created any virtual machines yet.<img src=:/welcome.png align=right/></p><p>In order to create a new virtual machine, press the <b>New</b> button in the main tool bar located at the top of the window.</p><p>You can press the <b>%1</b> key to get instant help, or visit <a href=http://www.virtualbox.org>www.virtualbox.org</a> for the latest information and news.</p> - <h3>Selamat datang di VirtualBox!</h3><p>Bagian kiri dari jendela ini ditujukan untuk menampilkan daftar dari semua mesin virtual dalam komputer anda. Daftar ini saat ini kosong karena anda belum menciptakan mesin virtual apapun.<img src=:/welcome.png align=right/></p><p>Untuk menciptakan mesin virtual baru, tekan tombol <b>Baru</b> pada toolbar utama yang terletak di bagian atas jendela.</p><p>Anda dapat menekan tombol <b>%1</b> untuk memperoleh bantuan langsung, atau kunjungi <a href=http://www.virtualbox.org>www.virtualbox.org</a> untuk informasi dan berita terbaru.</p> + <h3>Selamat datang di VirtualBox!</h3><p>Bagian kiri dari jendela ini ditujukan untuk menampilkan daftar dari semua mesin virtual dalam komputer Anda. Daftar ini saat ini kosong karena Anda belum menciptakan mesin virtual apapun.<img src=:/welcome.png align=right/></p><p>Untuk menciptakan mesin virtual baru, tekan tombol <b>Baru</b> pada toolbar utama yang terletak di bagian atas jendela.</p><p>Anda dapat menekan tombol <b>%1</b> untuk memperoleh bantuan langsung, atau kunjungi <a href=http://www.virtualbox.org>www.virtualbox.org</a> untuk informasi dan berita terbaru.</p> &Virtual Media Manager... - + Manajer Media &Virtual... Display the Virtual Media Manager dialog - + Menampilkan dialog Manajer Disk Virtual Log icon text - + Log &Import Appliance... - + &Impor Appliance... Import an appliance into VirtualBox - + Mengimpor suatu appliance ke dalam VirtualBox &Export Appliance... - + &Ekspor Appliance... Export one or more VirtualBox virtual machines as an appliance - + Mengekspor satu atau lebih mesin virtual VirtualBox sebagai appliance Re&fresh - Re&fresh + Re&fresh &File Mac OS X version - &File + &File &File Non Mac OS X version - &File + &File Select a virtual machine file - + Pilih suatu file mesin virtual Virtual machine files (%1) - + File mesin virtual (%1) Manager Note: main window title which is pretended by the product name. - + - Manajer &Add... - T&ambah... + T&ambah... Add an existing virtual machine - + Tambahkan mesin virtual yang telah ada &Remove - + &Hapus Remove the selected virtual machine - + Hapus mesin virtual yang dipilih Show in Finder - + Tampilkan di Finder Show the VirtualBox Machine Definition file in Finder. - + Menampilkan file Definisi Mesin VirtualBox di dalam Finder. Create Alias on Desktop - + Buat Alias pada Desktop Creates an Alias file to the VirtualBox Machine Definition file on your Desktop. - + Buat file Alias ke file Definisi Mesin VirtualBox pada Desktop Anda. Show in Explorer - + Tampilkan di Explorer Show the VirtualBox Machine Definition file in Explorer. - + Menampilkan file Definisi Mesin VirtualBox di dalam Explorer. Create Shortcut on Desktop - + Buat Shortcut pada Desktop Creates an Shortcut file to the VirtualBox Machine Definition file on your Desktop. - + Buat file Shortcut ke file Definisi Mesin VirtualBox pada Desktop Anda. Show in File Manager - + Tampilkan di Manajer Berkas Show the VirtualBox Machine Definition file in the File Manager - + Menampilkan file Definisi Mesin VirtualBox di dalam Manajer Berkas Show Toolbar - + Tampilkan Toolbar Show Statusbar - + Tampilkan Statusbar Cl&one... - + K&lon... Clone the selected virtual machine - + Buat klon dari mesin virtual yang dipilih D&iscard Saved State - + Aba&ikan Keadaan Tersimpan @@ -10470,23 +10475,23 @@ Click to enlarge the screenshot. - + Klik untuk memperbesar screenshot. &Name: - + &Nama: Taken: - + Diambil: &Description: - + &Deskripsi: D&etails: - + &Rincian: @@ -10525,7 +10530,7 @@ Take &Snapshot - Ambil &Snapshot + Ambil &Snapshot Discard Current Snapshot and State @@ -10541,7 +10546,7 @@ S&how Details - Ta&mpilkan Detail + Ta&mpilkan Rincian Space @@ -10609,7 +10614,7 @@ Take a snapshot of the current virtual machine state - Ambil snapshot keadaan mesin virtual saat ini + Ambil snapshot keadaan mesin virtual saat ini Revert to Current Snapshot @@ -10637,7 +10642,7 @@ Show the details of the selected snapshot - Tunjukkan detail pada snapshot terpilih + Tunjukkan rincian dari snapshot yang dipilih Ctrl+Space @@ -10645,35 +10650,35 @@ (%1) - + (%1) &Restore Snapshot - + &Kembalikan Snapshot &Delete Snapshot - + &Hapus Snapshot Restore the selected snapshot of the virtual machine - + Kembalikan snapshot dari mesin virtual yang dipilih Delete the selected snapshot of the virtual machine - + Hapus snapshot dari mesin virtual yang dipilih (%1 ago) - + (%1 yang lalu) &Clone... - + &Klon... Clone the selected virtual machine - + Buat klon dari mesin virtual yang dipilih @@ -10723,8 +10728,8 @@ Warning: You are taking a snapshot of a running machine which has %n immutable image(s) attached to it. As long as you are working from this snapshot the immutable image(s) will not be reset to avoid loss of data. - - + + Peringatan: Anda sedang mengambil snapshot dari mesin yang sedang berjalan yang ditempeli %n image tak dapat diubah. Selama Anda bekerja dari snapshot ini, image yang tak dapat diubah tak akan di-reset untuk menghindari kehilangan data. @@ -11039,24 +11044,24 @@ VBoxVMInformationDlg - + VBoxVMInformationDlg Storage Statistics - + Statistik Penyimpanan No Storage Devices - + Tidak Ada Device Penyimpanan Network Statistics - + Statistik Jaringan Not Available details report (VRDE server port) - + Tidak Tersedia diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Frontends/VirtualBox/nls/VirtualBox_it.ts virtualbox-4.1.44-dfsg/src/VBox/Frontends/VirtualBox/nls/VirtualBox_it.ts --- virtualbox-4.1.12-dfsg/src/VBox/Frontends/VirtualBox/nls/VirtualBox_it.ts 2012-04-02 13:28:40.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Frontends/VirtualBox/nls/VirtualBox_it.ts 2015-11-11 15:08:28.000000000 +0000 @@ -1,6 +1,6 @@ - + @@@ @@ -108,14 +108,6 @@ Potrebbe essere necessario reinstallare VirtualBox. - This error means that the kernel driver was either not able to allocate enough memory or that some mapping operation failed.<br/><br/>There are known problems with Linux 2.6.29. If you are running such a kernel, please edit /usr/src/vboxdrv-*/Makefile and enable <i>VBOX_USE_INSERT_PAGE = 1</i>. After that, re-compile the kernel module by executing<br/><br/> <font color=blue>'/etc/init.d/vboxdrv setup'</font><br/><br/>as root. - Questo errore indica che il driver del kernel non è in grado di allocare memoria sufficiente o che l'operazione di mappatura non è riuscita.<br/><br/>Ci sono problemi noti con Linux 2.6.29. Se stai eseguendo questo kernel, modifica /usr/src/vboxdrv-*/Makefile e abilita <i>VBOX_USE_INSERT_PAGE = 1</i>. Ricompila poi il modulo del kernel eseguendo <br/><br/> <font color=blue>'/etc/init.d/vboxdrv setup'</font><br/><br/>come root. - - - The VirtualBox Linux kernel driver (vboxdrv) is either not loaded or there is a permission problem with /dev/vboxdrv. Please reinstall the kernel module by executing<br/><br/> <font color=blue>'/etc/init.d/vboxdrv setup'</font><br/><br/>as root. Users of Ubuntu, Fedora or Mandriva should install the DKMS package first. This package keeps track of Linux kernel changes and recompiles the vboxdrv kernel module if necessary. - Il driver del kernel Linux di VirtualBox (vboxdrv) potrebbe non essere caricato o potrebbe esserci un problema di permessi con /dev/vboxdrv. Riconfigura il modulo del kernel eseguendo <br/><br/> <font color=blue>'/etc/init.d/vboxdrv setup'</font><br/><br/>come root. Gli utenti di Ubuntu, Fedora o Mandriva dovrebbero installare prima il pacchetto DKMS. Questo pacchetto tiene traccia delle modifiche del kernel e ricompila il modulo vboxdrv se necessario. - - Make sure the kernel module has been loaded successfully. Assicurati che il modulo del kernel sia stato caricato correttamente. @@ -149,7 +141,15 @@ The VirtualBox Linux kernel driver (vboxdrv) is either not loaded or there is a permission problem with /dev/vboxdrv. Please reinstall the kernel module by executing<br/><br/> <font color=blue>'/etc/init.d/vboxdrv setup'</font><br/><br/>as root. If it is available in your distribution, you should install the DKMS package first. This package keeps track of Linux kernel changes and recompiles the vboxdrv kernel module if necessary. - Il driver del kernel Linux di VirtualBox (vboxdrv) potrebbe non essere caricato o potrebbe esserci un problema di permessi con /dev/vboxdrv. Installa nuovamente il modulo del kernel eseguendo <br/><br/> <font color=blue>'/etc/init.d/vboxdrv setup'</font><br/><br/>come root. Se è disponibile nella tua distribuzione dovresti installare prima il pacchetto DKMS. Questo pacchetto tiene traccia delle modifiche del kernel e ricompila il modulo vboxdrv se necessario. + Il driver del kernel Linux di VirtualBox (vboxdrv) non è stato caricato o esiste un problema di permessi con /dev/vboxdrv. Installa nuovamente il modulo del kernel eseguendo<br/><br/> <font color=blue>'/etc/init.d/vboxdrv setup'</font><br/><br/>come root. Se è disponibile nella tua distribuzione, dovresti installare prima il pacchetto DKMS. Questo pacchetto tiene traccia dei cambiamenti del kernel Linux e ricompila il modulo vboxdrv se necessario. + + + This error means that the kernel driver was either not able to allocate enough memory or that some mapping operation failed.<br/><br/>There are known problems with Linux 2.6.29. If you are running such a kernel, please edit /usr/src/vboxdrv-*/Makefile and enable <i>VBOX_USE_INSERT_PAGE = 1</i>. After that, re-compile the kernel module by executing<br/><br/> <font color=blue>'/etc/init.d/vboxdrv setup'</font><br/><br/>as root. + Questo errore indica che il driver del kernel non è in grado di allocare memoria sufficiente o che l'operazione di mappatura non è riuscita.<br/><br/>Ci sono problemi noti con Linux 2.6.29. Se stai eseguendo questo kernel, modifica /usr/src/vboxdrv-*/Makefile e abilita <i>VBOX_USE_INSERT_PAGE = 1</i>. Ricompila poi il modulo del kernel eseguendo <br/><br/> <font color=blue>'/etc/init.d/vboxdrv setup'</font><br/><br/>come root. + + + The VirtualBox Linux kernel driver (vboxdrv) is either not loaded or there is a permission problem with /dev/vboxdrv. Please reinstall the kernel module by executing<br/><br/> <font color=blue>'/etc/init.d/vboxdrv setup'</font><br/><br/>as root. Users of Ubuntu, Fedora or Mandriva should install the DKMS package first. This package keeps track of Linux kernel changes and recompiles the vboxdrv kernel module if necessary. + Il driver del kernel Linux di VirtualBox (vboxdrv) potrebbe non essere caricato o potrebbe esserci un problema di permessi con /dev/vboxdrv. Riconfigura il modulo del kernel eseguendo <br/><br/> <font color=blue>'/etc/init.d/vboxdrv setup'</font><br/><br/>come root. Gli utenti di Ubuntu, Fedora o Mandriva dovrebbero installare prima il pacchetto DKMS. Questo pacchetto tiene traccia delle modifiche del kernel e ricompila il modulo vboxdrv se necessario. @@ -185,11 +185,11 @@ QIHttp Connection timed out - Connessione scaduta + Connessione scaduta Could not locate the file on the server (response: %1) - Impossibile trovare il file sul server (risposta: %1) + Impossibile trovare il file sul server (risposta: %1) @@ -287,26 +287,6 @@ &Macchina - &Fullscreen Mode - Modalità &schermo intero - - - Switch to fullscreen mode - Passa alla modalità a schermo intero - - - Seam&less Mode - Moda&lità trasparente - - - Switch to seamless desktop integration mode - Passa alla modalità di integrazione trasparente - - - Auto-resize &Guest Display - Ridimensiona automaticamente lo schermo del &Guest - - Automatically resize the guest display when the window is resized (requires Guest Additions) Ridimensiona automaticamente lo schermo Guest quando la finestra viene ridimensionata (richiede le Guest Additions) @@ -327,14 +307,6 @@ Disabilita temporaneamente l'integrazione con il puntatore del mouse - Enable &Mouse Integration - Abilita l'integrazione &mouse - - - Enable temporarily disabled host mouse pointer integration - Riabilita l'integrazione mouse temporaneamente disabilitata - - &Insert Ctrl-Alt-Del &Invia Ctrl-Alt-Canc @@ -344,7 +316,7 @@ &Insert Ctrl-Alt-Backspace - &Invia Ctrl-Alt-Backspace + &Invia Ctrl-Alt-Backspace Send the Ctrl-Alt-Backspace sequence to the virtual machine @@ -352,15 +324,11 @@ Take &Snapshot... - Cattura i&stantanea... + Crea i&stantanea... Take a snapshot of the virtual machine - Cattura un'istantanea della macchina virtuale - - - Session I&nformation Dialog - Finestra I&nformazioni di sessione + Crea un'istantanea della macchina virtuale Show Session Information Dialog @@ -375,14 +343,6 @@ Sospendi l'esecuzione della macchina virtuale - R&esume - Ripr&endi - - - Resume the execution of the virtual machine - Riprendi l'esecuzione della macchina virtuale - - &Reset &Reset @@ -395,10 +355,6 @@ Sh&utdown ACPI - ACPI S&hutdown - S&hutdown ACPI - - Send the ACPI Power Button press event to the virtual machine Invia l'evento ACPI Power Button press alla macchina virtuale @@ -447,14 +403,6 @@ Apri la finestra per gestire le cartelle condivise - &Remote Display - Sche&rmo remoto - - - Enable or disable remote desktop (RDP) connections to this machine - Abilita o disabilita le connessioni di desktop remoto (RDP) a questa macchina - - &Install Guest Additions... &Installa Guest Additions... @@ -477,11 +425,6 @@ Riga di &comando... - &Logging... - debug action - &Registrazione... - - &Help &Aiuto @@ -498,6 +441,112 @@ Mostra icona dell'applicazione + Enable remote desktop (RDP) connections to this machine + Abilita le connessioni di desktop remoto (RDP) a questa macchina + + + Enable &Logging... + debug action + Abilita &la registrazione... + + + Switch to &Fullscreen + Passa a sc&hermo intero + + + Switch between normal and fullscreen mode + Passa da schermo normale a schermo intero + + + Switch to Seam&less Mode + Passa a&lla modalità trasparente + + + Switch between normal and seamless desktop integration mode + Passa dalla modalità normale alla modalità di integrazione trasparente + + + Switch to &Scale Mode + Passa alla modalità &scalata + + + Switch between normal and scale mode + Passa dalla modalità normale a quella scalata + + + Auto-resize &Guest Display + Ridimensiona automaticamente lo schermo del &Guest + + + Enable R&emote Display + Abilita sch&ermo remoto + + + &Settings... + Impo&stazioni... + + + Manage the virtual machine settings + Gestisci le impostazioni della macchina virtuale + + + Session I&nformation... + I&nformazioni di sessione... + + + &Fullscreen Mode + Modalità &schermo intero + + + Switch to fullscreen mode + Passa alla modalità a schermo intero + + + Seam&less Mode + Moda&lità trasparente + + + Switch to seamless desktop integration mode + Passa alla modalità di integrazione trasparente + + + Enable &Mouse Integration + Abilita l'integrazione &mouse + + + Enable temporarily disabled host mouse pointer integration + Riabilita l'integrazione mouse temporaneamente disabilitata + + + Session I&nformation Dialog + Finestra I&nformazioni di sessione + + + R&esume + Ripr&endi + + + Resume the execution of the virtual machine + Riprendi l'esecuzione della macchina virtuale + + + ACPI S&hutdown + S&hutdown ACPI + + + &Remote Display + Sche&rmo remoto + + + Enable or disable remote desktop (RDP) connections to this machine + Abilita o disabilita le connessioni di desktop remoto (RDP) a questa macchina + + + &Logging... + debug action + &Registrazione... + + Enter &Fullscreen Mode Entra nella modalità a sc&hermo intero @@ -534,10 +583,6 @@ Abilita lo sch&ermo remoto - Enable remote desktop (RDP) connections to this machine - Abilita le connessioni di desktop remoto (RDP) a questa macchina - - &Disable Remote Display &Disabilita lo schermo remoto @@ -546,263 +591,218 @@ Disabilita le connessioni di desktop remoto (RDP) a questa macchina - Enable &Logging... - debug action - Abilita &la registrazione... - - Disable &Logging... debug action Disabilita &la registrazione... - Switch to &Fullscreen - Passa a sc&hermo intero - - - Switch between normal and fullscreen mode - Passa da schermo normale a schermo intero - - - Switch to Seam&less Mode - Passa a&lla modalità trasparente - - - Switch between normal and seamless desktop integration mode - Passa dalla modalità normale alla modalità di integrazione trasparente - - - Switch to &Scale Mode - Passa alla modalità &scalata - - - Switch between normal and scale mode - Passa dalla modalità normale a quella scalata - - Session I&nformation I&nformazioni di sessione - Enable R&emote Display - Abilita sch&ermo remoto - - - &Settings... - Impo&stazioni... - - - Manage the virtual machine settings - Gestisci le impostazioni della macchina virtuale - - - Session I&nformation... - I&nformazioni di sessione... - - &File Mac OS X version &File - &File + &File &File Non Mac OS X version &File - &File + &File &Virtual Media Manager... - Gestore supporti &virtuali... + Gestore supporti &virtuali... Display the Virtual Media Manager dialog - Visualizza la finestra del gestore supporti virtuali + Visualizza la finestra del gestore supporti virtuali &Import Appliance... - &Importa applicazione virtuale... + &Importa applicazione virtuale... Import an appliance into VirtualBox - Importa un'applicazione virtuale in VirtualBox + Importa un'applicazione virtuale in VirtualBox &Export Appliance... - &Esporta applicazione virtuale... + &Esporta applicazione virtuale... Export one or more VirtualBox virtual machines as an appliance - Esporta un'applicazione virtuale da VirtualBox + Esporta un'applicazione virtuale da VirtualBox &Preferences... global settings - Im&postazioni... + Im&postazioni... Display the global settings dialog - Mostra la finestra delle impostazioni + Mostra la finestra delle impostazioni E&xit - &Esci + &Esci Close application - Chiudi l'applicazione + Chiudi l'applicazione &New... - &Nuova... + &Nuova... Create a new virtual machine - Crea una nuova macchina virtuale + Crea una nuova macchina virtuale &Add... - &Aggiungi... + &Aggiungi... Add an existing virtual machine - Aggiungi una macchina virtuale esistente + Aggiungi una macchina virtuale esistente Cl&one... - Cl&ona... + Cl&ona... Clone the selected virtual machine - Clona la macchina virtuale selezionata + Clona la macchina virtuale selezionata &Remove - &Rimuovi + &Rimuovi Remove the selected virtual machine - Rimuovi la macchina virtuale selezionata + Rimuovi la macchina virtuale selezionata S&tart - A&vvia + A&vvia Start the selected virtual machine - Avvia la macchina virtuale selezionata + Avvia la macchina virtuale selezionata S&how - &Mostra + &Mostra Switch to the window of the selected virtual machine - Passa alla finestra della macchina virtuale selezionata + Passa alla finestra della macchina virtuale selezionata Discard - Scarta + Scarta D&iscard Saved State - Scarta l&o stato salvato + Scarta l&o stato salvato Discard the saved state of the selected virtual machine - Scarta lo stato salvato della macchina virtuale + Scarta lo stato salvato della macchina virtuale Re&fresh - A&ggiorna + A&ggiorna Refresh the accessibility state of the selected virtual machine - Aggiorna lo stato di accessibilità della macchina virtuale selezionata + Aggiorna lo stato di accessibilità della macchina virtuale selezionata Show &Log... - Visualizza &log... + Visualizza &log... Show the log files of the selected virtual machine - Visualizza il file di log della macchina virtuale selezionata + Visualizza il file di log della macchina virtuale selezionata Show in Finder - Mostra in Finder + Mostra in Finder Show the VirtualBox Machine Definition file in Finder. - Mostra il file di definizione della macchina di VirtualBox in Finder. + Mostra il file di definizione della macchina di VirtualBox in Finder. Show in Explorer - Mostra in Explorer + Mostra in Explorer Show the VirtualBox Machine Definition file in Explorer. - Mostra il file di definizione della macchina di VirtualBox in Explorer. + Mostra il file di definizione della macchina di VirtualBox in Explorer. Show in File Manager - Mostra nel gestore file + Mostra nel gestore file Show the VirtualBox Machine Definition file in the File Manager - Mostra il file di definizione della macchina di VirtualBox nel gestore file + Mostra il file di definizione della macchina di VirtualBox nel gestore file Create Alias on Desktop - Crea un alias sul desktop + Crea un alias sul desktop Creates an Alias file to the VirtualBox Machine Definition file on your Desktop. - Crea un alias per il file di definizione della macchina virtuale di VirtualBox sul desktop. + Crea un alias per il file di definizione della macchina virtuale di VirtualBox sul desktop. Create Shortcut on Desktop - Crea una scorciatoria sul desktop + Crea una scorciatoria sul desktop Creates an Shortcut file to the VirtualBox Machine Definition file on your Desktop. - Crea una scorciatoia al file di definizione della macchina virtuale di VirtualBox sul desktop. + Crea una scorciatoia al file di definizione della macchina virtuale di VirtualBox sul desktop. Take Sn&apshot... - Crea ist&antanea... + Cre&a istantanea... Take Screensh&ot... - Cattura sc&hermata... + Catt&ura schermata... Take a screenshot of the virtual machine - Cattura una schermata della macchina virtuale + Cattura una schermata della macchina virtuale Ins&ert Ctrl-Alt-Backspace - Invia Ctrl-Alt-D&el + Invia Ctrl-Alt-Backspac&e Sort List - Ordina elenco + Ordina l'elenco Sort the VM list alphabetically (Shift for descending order) - Ordina alfabeticamente l'elenco della MV (Maiusc per cambiare direzione) + Ordina l'elenco delle MV alfabeticamente (Maiusc per l'ordine decrescente) &Close - &Chiudi + &Chiudi Po&wer Off - Spe&gni + Spe&gni Power off the virtual machine - Spegni la macchina virtuale + Spegni la macchina virtuale @@ -896,10 +896,6 @@ Elemento hardware sconosciuto - MB - MB - - <b>Original Value:</b> %1 <b>Valore originale:</b> %1 @@ -923,6 +919,10 @@ &Reinitialize the MAC address of all network cards Inizializza nuovamente l'indi&rizzo MAC di tutte le schede di rete + + MB + MB + UIApplianceImportEditorWidget @@ -961,10 +961,6 @@ <p>Scegli un nome per la nuova macchina virtuale:</p> - When checked a new unique MAC address will assigned to all configured network cards. - Se marcata, sarà assegnato un indirizzo MAC nuovo e unico a tutte le schede di rete configurate. - - &Reinitialize the MAC address of all network cards Inizializza nuovamente l'indi&rizzo MAC di tutte le schede di rete @@ -980,10 +976,34 @@ When checked a new unique MAC address will be assigned to all configured network cards. Se marcata, un indirizzo MAC nuovo e unico sarà assegnato a tutte le schede di rete configurate. + + When checked a new unique MAC address will assigned to all configured network cards. + Se marcata, sarà assegnato un indirizzo MAC nuovo e unico a tutte le schede di rete configurate. + UICloneVMWizardPage2 + Cloning Configuration + Configurazione clonazione + + + Full Clone + Clone completo + + + Linked Clone + Clone collegato + + + <p>Please select the type of the clone.</p><p>If you choose <b>Full Clone</b> an exact copy (including all virtual disk images) of the original VM will be created. If you select <b>Linked Clone</b>, a new VM will be created, but the virtual disk images will point to the virtual disk images of original VM.</p> + <p>Seleziona il tipo del clone.</p><p>Se scegli <b>Clone completo</b> sarà creata una copia esatta (incluse tutte le immagini dei dischi virtuali) della MV originale. Se selezioni <b>Clone collegato</b>, sarà creata una nuova MV, ma le immagini dei dischi virtuali punteranno alle immagini dei dischi virtuali della MV originale.</p> + + + <p>Note that a new snapshot within the source VM is created in case you select <b>Linked Clone</b>.</p> + <p>Nota che in caso di selezione di <b>Clone collegato</b> sarà creata una nuova istantanea all'interno della MV di origine.</p> + + Current machine state Stato corrente della macchina @@ -996,10 +1016,6 @@ Tutti gli stati - Cloning Configuration - Configurazione clonazione - - Please choose which parts of the virtual machine should be cloned. Scegli quali parti della macchina virtuale saranno clonate. @@ -1015,22 +1031,6 @@ If you select <b>All states</b>, the current machine state and all snapshots are cloned. Se selezioni <b>Tutti gli stati</b>, saranno clonati sia lo stato corrente della macchina che quello di tutte le istantanee. - - Full Clone - Clone completo - - - Linked Clone - Clone collegato - - - <p>Please select the type of the clone.</p><p>If you choose <b>Full Clone</b> an exact copy (including all virtual disk images) of the original VM will be created. If you select <b>Linked Clone</b>, a new VM will be created, but the virtual disk images will point to the virtual disk images of original VM.</p> - <p>Seleziona il tipo del clone.</p><p>Se scegli <b>Clone completo</b> sarà creata una copia esatta (incluse tutte le immagini dei dischi virtuali) della MV originale. Se selezioni <b>Clone collegato</b>, sarà creata una nuova MV, ma le immagini dei dischi virtuali punteranno alle immagini dei dischi virtuali della MV originale.</p> - - - <p>Note that a new snapshot within the source VM is created in case you select <b>Linked Clone</b>.</p> - <p>Nota che in caso di selezione di <b>Clone collegato</b> sarà creata una nuova istantanea all'interno della MV di origine.</p> - UICloneVMWizardPage3 @@ -1087,231 +1087,231 @@ Name details report - Nome + Nome OS Type details report - Sistema operativo + Sistema operativo Information inaccessible details report - Informazioni non disponibile + Informazione non accessibile Base Memory details report - Memoria di base + Memoria di base <nobr>%1 MB</nobr> details report - <nobr>%1 MB</nobr> + <nobr>%1 MB</nobr> Processors details report - Processori + Processori <nobr>%1</nobr> details report - <nobr>%1</nobr> + <nobr>%1</nobr> Execution Cap details report - Execution Cap + Execution Cap <nobr>%1%</nobr> details report - <nobr>%1%</nobr> + <nobr>%1%</nobr> Boot Order details report - Ordine di avvio + Ordine di avvio ACPI details report - ACPI + ACPI IO APIC details report - IO APIC + IO APIC BIOS details report - BIOS + BIOS VT-x/AMD-V details report - VT-x/AMD-V + VT-x/AMD-V Nested Paging details report - Paginazione nidificata + Paginazione nidificata PAE/NX details report - PAE/NX + PAE/NX Acceleration details report - Accelerazione + Accelerazione Video Memory details report - Memoria video + Memoria video Screens details report - Schermi + Schermi 2D Video details report - Video 2D + Video 2D 3D details report - 3D + 3D Remote Desktop Server Port details report (VRDE Server) - Porta del server di desktop remoto + Porta del server di desktop remoto Remote Desktop Server details report (VRDE Server) - Server di desktop remoto + Server di desktop remoto Disabled details report (VRDE Server) - Disabilitato + Disabilitato (CD/DVD) - (CD/DVD) + (CD/DVD) Not Attached details report (Storage) - Non collegato + Non collegato Host Driver details report (audio) - Driver host + Driver host Controller details report (audio) - Controller + Controller Disabled details report (audio) - Disabilitato + Disabilitato Bridged adapter, %1 details report (network) - Scheda con bridge, %1 + Scheda con bridge, %1 Internal network, '%1' details report (network) - Rete interna, '%1' + Rete interna, '%1' Host-only adapter, '%1' details report (network) - Scheda solo host, '%1' + Scheda solo host, '%1' Generic driver, '%1' details report (network) - Driver generico, '%1' + Driver generico, '%1' Generic driver, '%1' {&nbsp;%2&nbsp;} details report (network) - Driver generico, '%1' {&nbsp;%2&nbsp;} + Driver generico, '%1' {&nbsp;%2&nbsp;} Adapter %1 details report (network) - Scheda %1 + Scheda %1 Disabled details report (network) - Disabilitata + Disabilitata Port %1 details report (serial ports) - Porta %1 + Porta %1 Disabled details report (serial ports) - Disabilitate + Disabilitate Port %1 details report (parallel ports) - Porta %1 + Porta %1 Disabled details report (parallel ports) - Disabilitate + Disabilitate Device Filters details report (USB) - Filtri dispositivi + Filtri dispositivi %1 (%2 active) details report (USB) - %1 (%2 attivo) + %1 (%2 attivo) Disabled details report (USB) - Disabilitato + Disabilitato Shared Folders details report (shared folders) - Cartelle condivise + Cartelle condivise None details report (shared folders) - Nessuna + Nessuna None details report (description) - Nessuna + Nessuna @@ -1319,211 +1319,206 @@ Name details report - Nome + Nome OS Type details report - Sistema operativo + Sistema operativo Base Memory details report - Memoria di base + Memoria di base <nobr>%1 MB</nobr> details report - <nobr>%1 MB</nobr> + <nobr>%1 MB</nobr> Processors details report - Processori + Processori <nobr>%1</nobr> details report - <nobr>%1</nobr> + <nobr>%1</nobr> Boot Order details report - Ordine di avvio + Ordine di avvio ACPI details report - ACPI + ACPI IO APIC details report - IO APIC + IO APIC BIOS details report - BIOS + BIOS VT-x/AMD-V details report - VT-x/AMD-V + VT-x/AMD-V Nested Paging details report - Paginazione nidificata + Paginazione nidificata PAE/NX details report - PAE/NX + PAE/NX Acceleration details report - Accelerazione + Accelerazione Video Memory details report - Memoria video + Memoria video Screens details report - Schermi + Schermi 2D Video details report - Video 2D + Video 2D 3D details report - 3D + 3D Remote Desktop Server Port details report (VRDE Server) - Porta del server di desktop remoto + Porta del server di desktop remoto Remote Desktop Server details report (VRDE Server) - Server di desktop remoto + Server di desktop remoto Disabled details report (VRDE Server) - Disabilitato + Disabilitato (CD/DVD) - (CD/DVD) + (CD/DVD) Not Attached details report (Storage) - Non collegato + Non collegato Host Driver details report (audio) - Driver dell'host + Driver dell'host Controller details report (audio) - Controller + Controller Disabled details report (audio) - Disabilitato + Disabilitato Bridged adapter, %1 details report (network) - Scheda con bridge, %1 + Scheda con bridge, %1 Internal network, '%1' details report (network) - Rete interna, '%1' + Rete interna, '%1' Host-only adapter, '%1' details report (network) - Scheda solo host, '%1' - - - VDE network, '%1' - details report (network) - Rete VDE. '%1' + Scheda solo host, '%1' Adapter %1 details report (network) - Scheda %1 + Scheda %1 Disabled details report (network) - Disabilitata + Disabilitata Port %1 details report (serial ports) - Porta %1 + Porta %1 Disabled details report (serial ports) - Disabilitata + Disabilitata Port %1 details report (parallel ports) - Porta %1 + Porta %1 Disabled details report (parallel ports) - Disabilitata + Disabilitata Device Filters details report (USB) - Filtri dispositivi + Filtri dispositivi %1 (%2 active) details report (USB) - %1 (%2 attivo) + %1 (%2 attivo) Disabled details report (USB) - Disabilitato + Disabilitato Shared Folders details report (shared folders) - Cartelle condivise + Cartelle condivise None details report (shared folders) - Nessuna + Nessuna None details report (description) - Nessuna + Nessuna The selected virtual machine is <i>inaccessible</i>. Please inspect the error message shown below and press the <b>Refresh</b> button if you want to repeat the accessibility check: @@ -1592,28 +1587,33 @@ Execution Cap details report - Execution Cap + Execution Cap <nobr>%1%</nobr> details report - <nobr>%1%</nobr> + <nobr>%1%</nobr> Generic driver, '%1' details report (network) - Driver generico, '%1' + Driver generico, '%1' Generic driver, '%1' {&nbsp;%2&nbsp;} details report (network) - Driver generico, '%1' {&nbsp;%2&nbsp;} + Driver generico, '%1' {&nbsp;%2&nbsp;} - - - UIDownloader - Cancel + VDE network, '%1' + details report (network) + Rete VDE. '%1' + + + + UIDownloader + + Cancel Annulla @@ -1662,16 +1662,20 @@ Looking for %1... - Ricerca di %1 in corso... + Ricerca di %1 in corso... Downloading %1... - Scaricamento di %1 in corso... + Scaricamento di %1 in corso... UIDownloaderAdditions + Select folder to save Guest Additions image to + Selezionare la cartella dove salvare l'immagine di Guest Additions + + Cancel Annulla @@ -1688,12 +1692,8 @@ <p>Impossibile salvare il file scaricato come <nobr><b>%1</b>.</nobr></p> - Select folder to save Guest Additions image to - Selezionare la cartella dove salvare l'immagine di Guest Additions - - VirtualBox Guest Additions - + VirtualBox Guest Additions @@ -1704,7 +1704,7 @@ VirtualBox Extension Pack - + VirtualBox Extension Pack @@ -1715,12 +1715,24 @@ VirtualBox User Manual - Manuale utente di VirtualBox + Manuale utente di VirtualBox UIExportApplianceWzd + Appliance Export Wizard + Procedura guidata di esportazione applicazione virtuale + + + Restore Defaults + Ripristina predefiniti + + + Export + Esporta + + Select a file to export into Seleziona un file per l'esportazione @@ -1737,10 +1749,6 @@ Esportazione applicazione virtuale... - Appliance Export Wizard - Procedura guidata di esportazione applicazione virtuale - - Welcome to the Appliance Export Wizard! Benvenuti nella procedura guidata di esportazione applicazione virtuale! @@ -1765,10 +1773,6 @@ Qui puoi cambiare valori di configurazione aggiuntivi per le macchine virtuali selezionate. Puoi modificare la maggior parte delle proprietà mostrate facendo doppio clic sugli elementi. - Restore Defaults - Ripristina predefiniti - - Please specify a filename into which the appliance information will be written. Currently VirtualBox supports the Open Virtualization Format (OVF). Specifica il nome del file nel quale le informazioni dell'applicazione virtuale saranno scritte. Attualmente VirtualBox supporta il formato aperto di virtualizzazione (OVF). @@ -1836,10 +1840,6 @@ &Hostname: Nome &host: - - Export - Esporta - UIExportApplianceWzdPage1 @@ -1855,12 +1855,8 @@ UIExportApplianceWzdPage2 - Here you can change additional configuration values of the selected virtual machines. You can modify most of the properties shown by double-clicking on the items. - Qui puoi cambiare valori di configurazione aggiuntivi per le macchine virtuali selezionate. Puoi modificare la maggior parte delle proprietà mostrate facendo doppio clic sugli elementi. - - Appliance Export Settings - Impostazioni di esportazione applicazioni + Impostazioni di esportazione applicazione virtuale Please specify the target for the OVF export. You can choose between a local file system export, uploading the OVF to the Sun Cloud service or an S3 storage server. @@ -1878,24 +1874,16 @@ &Simple Storage System (S3) &Simple Storage System (S3) + + Here you can change additional configuration values of the selected virtual machines. You can modify most of the properties shown by double-clicking on the items. + Qui puoi cambiare valori di configurazione aggiuntivi per le macchine virtuali selezionate. Puoi modificare la maggior parte delle proprietà mostrate facendo doppio clic sugli elementi. + UIExportApplianceWzdPage3 - Please specify the target for the OVF export. You can choose between a local file system export, uploading the OVF to the Sun Cloud service or an S3 storage server. - Specifica la destinazione per l'esportazione OVF. Puoi scegliere tra un'esportazione sul fie system locale, l'invio dell'OVF al servizio Sun Cloud o un server di archiviazione S3. - - - &Local Filesystem - Filesystem &locale - - - Sun &Cloud - Sun &Cloud - - Appliance Export Settings - Impostazioni di esportazione applicazioni + Impostazioni di esportazione applicazioni virtuali &Username: @@ -1961,10 +1949,42 @@ Please complete the additional fields like the username, password, hostname and the bucket, and provide a filename for the OVF target. Completa i campi aggiuntivi come nome utente, password, nome host e il bucket. Infine devi fornire un nome per il file OVF di destinazione. + + Please specify the target for the OVF export. You can choose between a local file system export, uploading the OVF to the Sun Cloud service or an S3 storage server. + Specifica la destinazione per l'esportazione OVF. Puoi scegliere tra un'esportazione sul fie system locale, l'invio dell'OVF al servizio Sun Cloud o un server di archiviazione S3. + + + &Local Filesystem + Filesystem &locale + + + Sun &Cloud + Sun &Cloud + UIExportApplianceWzdPage4 + Appliance Export Settings + Impostazioni di esportazione applicazioni + + + Checking files ... + Verifica dei file... + + + Removing files ... + Rimozione dei file... + + + Exporting Appliance ... + Esportazione applicazione virtuale... + + + Here you can change additional configuration values of the selected virtual machines. You can modify most of the properties shown by double-clicking on the items. + Qui puoi cambiare valori di configurazione aggiuntivi per le macchine virtuali selezionate. Puoi modificare la maggior parte delle proprietà mostrate facendo doppio clic sugli elementi. + + &Username: Nome &utente: @@ -1989,10 +2009,6 @@ Scri&vi vecchio OVF 0.9 - Appliance Export Settings - Impostazioni di esportazione applicazioni - - Appliance Applicazione @@ -2016,22 +2032,6 @@ Please complete the additional fields like the username, password, hostname and the bucket, and provide a filename for the OVF target. Completa i campi aggiuntivi come nome utente, password, nome host e il bucket. Infine, devi fornire un nome file per l'OVF di destinazione. - - Checking files ... - Verifica dei file... - - - Removing files ... - Rimozione dei file... - - - Exporting Appliance ... - Esportazione applicazione virtuale... - - - Here you can change additional configuration values of the selected virtual machines. You can modify most of the properties shown by double-clicking on the items. - Qui puoi cambiare valori di configurazione aggiuntivi per le macchine virtuali selezionate. Puoi modificare la maggior parte delle proprietà mostrate facendo doppio clic sugli elementi. - UIFirstRunWzd @@ -2040,6 +2040,10 @@ Assistente di primo avvio + Start + Avvia + + <p>You have started a newly created virtual machine for the first time. This wizard will help you to perform the steps necessary for installing an operating system of your choice onto this virtual machine.</p><p>Use the <b>Next</b> button to go to the next page of the wizard and the <b>Back</b> button to return to the previous page. You can also press <b>Cancel</b> if you want to cancel the execution of this wizard.</p> <p>Hai lanciato per la prima volta una macchina virtuale appena creata. Questa procedura guidata ti aiuterà nei passi necessari per installare il sistema operativo di tua scelta nella macchina virtuale.</p><p>Usa il pulsante <b>Avanti</b> per passare alla pagina successiva, e il pulsante <b>Indietro</b> per tornare alla pagina precedente. Puoi anche premere <b>Annulla</b> se vuoi annullare l'esecuzione di questa procedura.</p> @@ -2191,10 +2195,6 @@ Cancel Annulla - - Start - Avvia - UIFirstRunWzdPage1 @@ -2271,50 +2271,50 @@ UIGlobalSettingsDisplay Maximum Guest Screen &Size: - Dimen&sione massima dello schermo &Guest: + Dimen&sione massima dello schermo del guest: &Width: - &Larghezza: + &Larghezza: Specifies the maximum width which we would like the guest to use. - Specifica la larghezza massima che vogliamo utilizzare per il guest. + Specifica la larghezza massima che vogliamo utilizzare per il guest. &Height: - &Altezza: + &Altezza: Specifies the maximum height which we would like the guest to use. - Specifica l'altezza massima che vogliamo utilizzare per il guest. + Specifica l'altezza massima che vogliamo utilizzare per il guest. Automatic Maximum Guest Screen Size - Automatica + Automatica Suggest a reasonable maximum screen size to the guest. The guest will only see this suggestion when guest additions are installed. - Suggerisci una dimensione massima dello schermo ragionevole al guest. Il guest vedrà questo suggerimento solo dopo l'installazione delle Guest Additions. + Suggerisci un dimensione massima dello schermo ragionevole al guest. Il guest vedrà questo suggerimento solo dopo l'installazione delle guest additions. None Maximum Guest Screen Size - Nessuna + Nessuna Do not attempt to limit the size of the guest screen. - Non provare a limitare la dimensione dello schermo del guest. + Non provare a limitare la dimensione dello schermo del guest. Hint Maximum Guest Screen Size - Consigliata + Consigliata Suggest a maximum screen size to the guest. The guest will only see this suggestion when guest additions are installed. - Suggerisci una dimensione massima dello schermo al guest. Il guest vedrà questo suggerimento solo dopo l'installazione delle Guest Additions. + Suggerisci una dimensione dello schermo al guest. Il guest vedrà questo suggerimento solo dopo l'installazione delle guest additions. @@ -2363,10 +2363,6 @@ UIGlobalSettingsGeneral - Displays the path to the default VDI folder. This folder is used, if not explicitly specified otherwise, when adding existing or creating new virtual hard disks. - Visualizza il percorso della cartella predefinita per le VDI. Questa cartella viene utilizzata, se non diversamente specificato, quando vengono aggiunti o creati hard disk virtuali. - - Displays the path to the default virtual machine folder. This folder is used, if not explicitly specified otherwise, when creating new virtual machines. Visualizza il percorso della cartella predefinita per le macchine virtuali. Questa cartella è utilizzata, se non diversamente specificato, quando vengono aggiunti o creati dischi fissi virtuali. @@ -2375,10 +2371,6 @@ Visualizza il percorso della libreria per l'autenticazione dei client VRDP (schermo remoto). - Default &Hard Disk Folder: - Cartella predefinita &dischi fissi: - - Default &Machine Folder: Cartella predefinita &macchine: @@ -2387,10 +2379,6 @@ Lib&reria di autenticazione VRDP: - Displays the path to the default hard disk folder. This folder is used, if not explicitly specified otherwise, when adding existing or creating new virtual hard disks. - Visualizza il percorso alla cartella predefinita dei dischi fissi. Questa cartella è utilizzata, se non specificato altrimenti esplicitamente, quando si aggiungono o creano nuovi dischi virtuali. - - When checked, the application will provide an icon with the context menu in the system tray. Se marcata, l'applicazione fornirà un'icona con menu contestuale nel vassoio di sistema. @@ -2399,14 +2387,6 @@ Mo&stra icona nel vassoio di sistema - When checked, the Dock Icon will reflect the VM window content in realtime. - Se marcata, l'icona del pannello rifletterà il contenuto della finestra della MV in tempo reale. - - - &Dock Icon Realtime Preview - Anteprima in tempo reale &dell'icona del pannello - - &Auto show Dock and Menubar in fullscreen Mostr&a automaticamente il pannello e la barra dei menu a schermo intero @@ -2418,6 +2398,26 @@ Disable Host &ScreenSaver Disabilita il &salvaschermo dell'host + + Displays the path to the default VDI folder. This folder is used, if not explicitly specified otherwise, when adding existing or creating new virtual hard disks. + Visualizza il percorso della cartella predefinita per le VDI. Questa cartella viene utilizzata, se non diversamente specificato, quando vengono aggiunti o creati hard disk virtuali. + + + Default &Hard Disk Folder: + Cartella predefinita &dischi fissi: + + + Displays the path to the default hard disk folder. This folder is used, if not explicitly specified otherwise, when adding existing or creating new virtual hard disks. + Visualizza il percorso alla cartella predefinita dei dischi fissi. Questa cartella è utilizzata, se non specificato altrimenti esplicitamente, quando si aggiungono o creano nuovi dischi virtuali. + + + When checked, the Dock Icon will reflect the VM window content in realtime. + Se marcata, l'icona del pannello rifletterà il contenuto della finestra della MV in tempo reale. + + + &Dock Icon Realtime Preview + Anteprima in tempo reale &dell'icona del pannello + UIGlobalSettingsInput @@ -2430,14 +2430,6 @@ Visualizza il tasto usato come tasto Host nella finestra della MV. Attiva il campo e premi un nuovo tasto Host. Nota che tasti alfanumerici, movimenti del cursore e tasti di modifica non possono essere utilizzati. - Reset Host Key - Reimposta il tasto host - - - Resets the key used as a Host Key in the VM window. - Reimposta il tasto utilizzato come tasto host nella finestra della MV. - - When checked, the keyboard is automatically captured every time the VM window is activated. When the keyboard is captured, all keystrokes (including system ones like Alt-Tab) are directed to the VM. Se marcata, la tastiera è acquisita automaticamente ogni volta che la finestra della MV è attivata. Una volta che la tastiera è acquisita, tutte le combinazioni di tasti (incluse quelle di sistema come Alt-Tab) sono dirette alla MV. @@ -2453,6 +2445,14 @@ Resets the key combination used as the host combination in the VM window. Ripristina la comuinazione di tasti utilizzata per la combinazione host nella finestra della MV. + + Reset Host Key + Reimposta il tasto host + + + Resets the key used as a Host Key in the VM window. + Reimposta il tasto utilizzato come tasto host nella finestra della MV. + UIGlobalSettingsLanguage @@ -2512,11 +2512,6 @@ UIGlobalSettingsNetwork - %1 network - <adapter name> network - rete %1 - - host IPv4 address of <b>%1</b> is wrong l'indirizzo host IPv4 di <b>%1</b> è errato @@ -2637,11 +2632,6 @@ &Modifica rete solo-host - Performing - creating/removing host-only network - Esecuzione - - &Host-only Networks: Reti solo-&host: @@ -2654,13 +2644,23 @@ Nome - New Host-Only Interface - Nuova interfaccia solo host - - Networking Rete + + %1 network + <adapter name> network + rete %1 + + + Performing + creating/removing host-only network + Esecuzione + + + New Host-Only Interface + Nuova interfaccia solo host + UIGlobalSettingsNetworkDetails @@ -2877,26 +2877,6 @@ Destra - Left Shift - Maiusc sinistro - - - Right Shift - Maiusc destro - - - Left Ctrl - Ctrl sinistro - - - Right Ctrl - Ctrl destro - - - Left Alt - Alt sinistro - - Right Alt Alt destro @@ -2929,6 +2909,30 @@ <key_%1> + None + Nessuno + + + Left Shift + Maiusc sinistro + + + Right Shift + Maiusc destro + + + Left Ctrl + Ctrl sinistro + + + Right Ctrl + Ctrl destro + + + Left Alt + Alt sinistro + + Pause Pausa @@ -3044,14 +3048,22 @@ Back Indietro - - None - Nessuno - UIImportApplianceWzd + Appliance Import Wizard + Procedura guidata di importazione applicazione virtuale + + + Restore Defaults + Ripristina predefiniti + + + Import + Importa + + Select an appliance to import Seleziona un'applicazione virtuale da importare @@ -3060,10 +3072,6 @@ Formato aperto di virtualizzazione (OVF) (%1) - Appliance Import Wizard - Procedura guidata di importazione applicazione virtuale - - Welcome to the Appliance Import Wizard! Benvenuti nella procedura guidata di importazione applicazione virtuale! @@ -3104,17 +3112,9 @@ Queste sono le macchine virtuali descritte nell'applicazione virtuale con le associazioni proposte per l'importazione in VirtualBox. Puoi cambiare molte delle proprietà mostrare facendo un doppio clic sugli elementi e disabilitarne altre utilizzando le caselle di selezione che seguono. - Restore Defaults - Ripristina predefiniti - - &Import > &Importa > - - Import - Importa - UIImportApplianceWzdPage1 @@ -3128,7 +3128,7 @@ Welcome to the Appliance Import Wizard! - Benvenuti nella procedura di importazione applicazioni! + Benvenuti nella procedura di importazione applicazioni virtuali! <p>This wizard will guide you through importing an appliance.</p><p>%1</p><p>VirtualBox currently supports importing appliances saved in the Open Virtualization Format (OVF). To continue, select the file to import below:</p> @@ -3186,7 +3186,7 @@ <p style='white-space:pre'><nobr>Indicates the activity of the virtual hard disks:</nobr>%1</p> HDD tooltip - + <p style='white-space:pre'><nobr>Indica l'attività dei dischi fissi virtuali:</nobr>%1</p> <p style='white-space:pre'><nobr>Indicates the activity of the CD/DVD devices:</nobr>%1</p> @@ -3249,15 +3249,6 @@ <b><nobr><b>Nessuna cartella condivisa</b></nobr> - <hr>The VRDP Server is listening on port %1 - <hr>Il server VRDP è in ascolto sulla porta %1 - - - Indicates the status of the hardware virtualization features used by this virtual machine:<br><nobr><b>%1:</b>&nbsp;%2</nobr><br><nobr><b>%3:</b>&nbsp;%4</nobr> - Virtualization Stuff LED - Indica lo stato delle funzionalità di virtualizzazione hardware utilizzate da questa macchina virtuale:<br><nobr><b>%1:</b>&nbsp;%2</nobr><br><nobr><b>%3:</b>&nbsp;%4</nobr> - - <br><nobr><b>%1:</b>&nbsp;%2</nobr> Virtualization Stuff LED <br><nobr><b>%1:</b>&nbsp;%2</nobr> @@ -3283,6 +3274,15 @@ Virtualization Stuff LED Indica lo stato di diverse funzionalità utilizzate dalla macchina virtuale:<br><nobr><b>%1:</b>&nbsp;%2</nobr><br><nobr><b>%3:</b>&nbsp;%4</nobr><br><nobr><b>%5:</b>&nbsp;%6%</nobr> + + <hr>The VRDP Server is listening on port %1 + <hr>Il server VRDP è in ascolto sulla porta %1 + + + Indicates the status of the hardware virtualization features used by this virtual machine:<br><nobr><b>%1:</b>&nbsp;%2</nobr><br><nobr><b>%3:</b>&nbsp;%4</nobr> + Virtualization Stuff LED + Indica lo stato delle funzionalità di virtualizzazione hardware utilizzate da questa macchina virtuale:<br><nobr><b>%1:</b>&nbsp;%2</nobr><br><nobr><b>%3:</b>&nbsp;%4</nobr> + UILineTextEdit @@ -3306,22 +3306,6 @@ Istantanea %1 - More CD/DVD Images... - Altre immagini CD/DVD... - - - Unmount CD/DVD Device - Smonta dispositivo CD/DVD - - - More Floppy Images... - Altre immagini floppy... - - - Unmount Floppy Device - Smonta dispositivo floppy - - No CD/DVD Devices Attached Nessun dispositivo CD/DVD collegato @@ -3343,11 +3327,27 @@ No supported devices connected to the host PC - + Nessun dispositivo supportato è connesso al PC host + + + More CD/DVD Images... + Altre immagini CD/DVD... + + + Unmount CD/DVD Device + Smonta dispositivo CD/DVD + + + More Floppy Images... + Altre immagini floppy... + + + Unmount Floppy Device + Smonta dispositivo floppy Select a filename for the screenshot ... - Seleziona il nome del file della schermata... + Seleziona un nome per la schermata... @@ -3432,10 +3432,6 @@ &Porta del server: - Displays the VRDP Server port number. You may specify <tt>0</tt> (zero) to reset the port to the default value. - Visualizza il numero di porta del server VRDP. Puoi specificare <tt>0</tt> (zero) per ripristinare il numero di porta al valore predefinito. - - Authentication &Method: &Metodo di autenticazione: @@ -3488,10 +3484,6 @@ C&onsenti connessioni multiple - You have 3D Acceleration enabled for a operation system which uses the WDDM video driver. For maximal performance set the guest VRAM to at least <b>%1</b>. - Hai abilitato l'accelerazione 3D per un sistema operativo che utilizza il driver video WDDM. Per massimizzare le prestazioni imposta la VRAM del Guest almeno a <b>%1</b>. - - you have 3D Acceleration enabled for a operation system which uses the WDDM video driver. For maximal performance set the guest VRAM to at least <b>%1</b>. hai l'accelerazione 3D abilitata per un sistema operativo che utilizza il driver video WDDM. Per ottenere il massimo delle prestazioni, imposta la VRAM del guest almeno a <b>%1</b>. @@ -3501,16 +3493,20 @@ you enabled 3D acceleration. However, 3D acceleration is not working on the current host setup so you will not be able to start the VM. - hai abilitato l'accelerazione 3D. In ogni caso, l'accelerazione 3D non funziona con la configurazione attuale dell'host. Non potrai avviare la MV. + hai abilitato l'accelerazione 3D. In ogni caso, l'accelerazione non funziona con la configurazione attuale dell'host per cui non potrai avviare la MV. + + + Displays the VRDP Server port number. You may specify <tt>0</tt> (zero) to reset the port to the default value. + Visualizza il numero di porta del server VRDP. Puoi specificare <tt>0</tt> (zero) per ripristinare il numero di porta al valore predefinito. + + + You have 3D Acceleration enabled for a operation system which uses the WDDM video driver. For maximal performance set the guest VRAM to at least <b>%1</b>. + Hai abilitato l'accelerazione 3D per un sistema operativo che utilizza il driver video WDDM. Per massimizzare le prestazioni imposta la VRAM del Guest almeno a <b>%1</b>. UIMachineSettingsGeneral - <qt>%1&nbsp;MB</qt> - <qt>%1&nbsp;MB</qt> - - Displays the path where snapshots of this virtual machine will be stored. Be aware that snapshots can take quite a lot of disk space. Visualizza il percorso dove saranno archiviate le istantanee di questa macchina virtuale. Nota che le istantanee possono occupare molto spazio. @@ -3519,10 +3515,6 @@ &Base - Identification - Identificazione - - &Name: &Nome: @@ -3531,6 +3523,74 @@ Mostra il nome della macchina virtuale. + &Advanced + &Avanzate + + + &Shared Clipboard: + Appunti condivi&si: + + + Selects which clipboard data will be copied between the guest and the host OS. This feature requires Guest Additions to be installed in the guest OS. + Definisce la modalità di condivisione degli appunti tra il sistema guest e quello host. Nota che questa caratteristica richiede che le Guest Additions siano installate nel sistema guest. + + + S&napshot Folder: + Cartella ista&ntanee: + + + &Description + &Descrizione + + + Displays the description of the virtual machine. The description field is useful for commenting on configuration details of the installed guest OS. + Visualizza la descrizione della macchina virtuale. Il campo descrizione è utile per commentare dettagli di configurazione del sistema guest installato. + + + If checked, any change to mounted CD/DVD or Floppy media performed during machine execution will be saved in the settings file in order to preserve the configuration of mounted media between runs. + Se marcata, ogni modifica ai supporti CD/DVD o floppy montati effettuata durante l'esecuzione della macchina sarà salvata nel file delle impostazioni per preservare la configurazione dei supporti tra i diversi avvii della macchina. + + + Removable Media: + Supporto rimovibile: + + + &Remember Runtime Changes + Memo&rizza le modifiche in esecuzione + + + Mini ToolBar: + Barra degli strumenti piccola: + + + If checked, show the Mini ToolBar in Fullscreen and Seamless modes. + Se marcata, mostra la barra degli strumenti piccola nelle modalità a schermo intero e trasparente. + + + Show In &Fullscreen/Seamless + Mostra a scher&mo intero/trasparente + + + If checked, show the Mini ToolBar at the top of the screen, rather than in its default position at the bottom of the screen. + Se selezionata, mostra la barra degli strumenti piccola nella parte superiore dello schermo, invece che nella posizione predefinita (in basso). + + + Show At &Top Of Screen + Most&ra nella parte alta dello schermo + + + you have selected a 64-bit guest OS type for this VM. As such guests require hardware virtualization (VT-x/AMD-V), this feature will be enabled automatically. + hai selezionato un SO guest a 64 bit per questa MV. Poiché questo tipo di guest richiede la virtualizzazione hardware (VT-x/AMD-V), questa funzionalità sarà abilitata automaticamente. + + + <qt>%1&nbsp;MB</qt> + <qt>%1&nbsp;MB</qt> + + + Identification + Identificazione + + Displays the operating system type that you plan to install into this virtual machine (called a guest operating system). Visualizza il tipo di sistema operativo che intendi installare in questa macchina virtuale (chiamato sistema operativo Guest). @@ -3563,10 +3623,6 @@ Controlla la quantità di memoria video fornita alla macchina virtuale. - &Advanced - &Avanzate - - Boo&t Order: Or&dine di avvio: @@ -3631,14 +3687,6 @@ Abilita PA&E/NX - &Shared Clipboard: - Appunti condivi&si: - - - Selects which clipboard data will be copied between the guest and the host OS. This feature requires Guest Additions to be installed in the guest OS. - Definisce la modalità di condivisione degli appunti tra il sistema guest e quello host. Nota che questa caratteristica richiede che le Guest Additions siano installate nel sistema guest. - - Defines the type of the virtual IDE controller. Depending on this value, VirtualBox will provide different virtual IDE hardware devices to the guest OS. Definisce il tipo di controller IDE virtuale. A seconda di questo valore, VirtualBox fornirà hardware IDE virtuale diverso al sistema guest. @@ -3647,26 +3695,10 @@ Tipo di controller &IDE: - S&napshot Folder: - Cartella ista&ntanee: - - - &Description - &Descrizione - - - Displays the description of the virtual machine. The description field is useful for commenting on configuration details of the installed guest OS. - Visualizza la descrizione della macchina virtuale. Il campo descrizione è utile per commentare dettagli di configurazione del sistema guest installato. - - &Other &Altro - If checked, any change to mounted CD/DVD or Floppy media performed during machine execution will be saved in the settings file in order to preserve the configuration of mounted media between runs. - Se marcata, ogni modifica ai supporti CD/DVD o floppy montati effettuata durante l'esecuzione della macchina sarà salvata nel file delle impostazioni per preservare la configurazione dei supporti tra i diversi avvii della macchina. - - &Remember Mounted Media &Ricorda i supporti montati @@ -3714,50 +3746,10 @@ Enable Nested Pa&ging Abilita pa&ginazione nidificata - - Removable Media: - Supporto rimovibile: - - - &Remember Runtime Changes - Memo&rizza le modifiche in esecuzione - - - Mini ToolBar: - Barra degli strumenti piccola: - - - If checked, show the Mini ToolBar in Fullscreen and Seamless modes. - Se marcata, mostra la barra degli strumenti piccola nelle modalità a schermo intero e trasparente. - - - Show In &Fullscreen/Seamless - Mostra a scher&mo intero/trasparente - - - If checked, show the Mini ToolBar at the top of the screen, rather than in its default position at the bottom of the screen. - Se selezionata, mostra la barra degli strumenti piccola nella parte superiore dello schermo, invece che nella posizione predefinita (in basso). - - - Show At &Top Of Screen - Most&ra nella parte alta dello schermo - - - you have selected a 64-bit guest OS type for this VM. As such guests require hardware virtualization (VT-x/AMD-V), this feature will be enabled automatically. - hai selezionato un SO guest a 64 bit per questa MV. Poiché questo tipo di guest richiede la virtualizzazione hardware (VT-x/AMD-V), questa funzionalità sarà abilitata automaticamente. - UIMachineSettingsNetwork - Select TAP setup application - Seleziona l'applicazione d'installazione del TAP - - - Select TAP terminate application - Seleziona l'applicazione di rimozione del TAP - - When checked, plugs this virtual network adapter into the virtual machine. Se marcata, connette questa scheda di rete virtuale alla macchina virtuale. @@ -3766,10 +3758,6 @@ Abilita sch&eda di rete - A&dapter Type: - Tipo di sche&da: - - Selects the type of the virtual network adapter. Depending on this value, VirtualBox will provide different network hardware to the virtual machine. Seleziona il tipo della scheda di rete virtuale. A seconda di questo valore, VirtualBox fornirà hardware di rete diverso alla macchina virtuale. @@ -3782,19 +3770,44 @@ Controlla il modo in cui questa scheda di rete virtuale è collegata alla rete reale del sistema host. - &Network Name: - &Nome della rete: + Adapter &Type: + &Tipo di scheda: - Displays the name of the internal network selected for this adapter. - Visualizza il nome della rete interna selezionata per questa scheda. + no bridged network adapter is selected + non è selezionata alcuna scheda di rete con bridge - &MAC Address: - Indirizzo &MAC: + no internal network name is specified + non è specificato alcun nome di rete - Displays the MAC address of this adapter. It contains exactly 12 characters chosen from {0-9,A-F}. Note that the second character must be an even digit. + no host-only network adapter is selected + non è selezionata alcuna scheda di rete solo host + + + Not selected + network adapter name + Non selezionata + + + &Name: + &Nome: + + + A&dvanced + A&vanzate + + + Shows or hides additional network adapter options. + Mostra o nasconde le opzioni aggiuntive della scheda di rete. + + + &Mac Address: + Indirizzo &MAC: + + + Displays the MAC address of this adapter. It contains exactly 12 characters chosen from {0-9,A-F}. Note that the second character must be an even digit. Visualizza l'indirizzo MAC di questa scheda. Contiene esattamente 12 caratteri scelti tra {0-9,A-F}. Nota che il secondo carattere deve essere una cifra pari. @@ -3802,14 +3815,86 @@ Genera un nuovo indirizzo MAC casuale. - &Generate - &Genera - - Indicates whether the virtual network cable is plugged in on machine startup or not. Indica se il cavo di rete virtuale è collegato all'avvio della macchina o meno. + &Cable connected + &Cavo connesso + + + Opens dialog to manage port forwarding rules. + Apre una finestra per la gestione delle regole di inoltro delle porte. + + + &Port Forwarding + Inoltro delle &porte + + + &Promiscuous Mode: + Modalità &promiscua: + + + Selects the promiscuous mode policy of the network adapter when attached to an internal network, host only network or a bridge. + Seleziona la modalità promiscua della scheda di rete quando è collegata a una rete interna, solo host o bridge. + + + Generic Properties: + Proprietà generali: + + + Enter any configuration settings here for the network attachment driver you will be using. The settings should be of the form <b>name=value</b> and will depend on the driver. Use <b>shift-enter</b> to add a new entry. + Inserisci qui ogni impostazione di configurazione del driver del collegamentoJ di rete che utilizzerai. Le impostazioni dovrebbero essere nella forma <b>nome=valore</b> e dipenderanno dal driver. Utilizza <b>maiusc-invio</b> per aggiungere una nuova voce. + + + no generic driver is selected + non è selezionato alcun driver generico + + + Selects the network adapter on the host system that traffic to and from this network card will go through. + Seleziona la scheda di rete sul sistema host sulla quale transiterà il traffico verso e da questa scheda di rete. + + + Enter the name of the internal network that this network card will be connected to. You can create a new internal network by choosing a name which is not used by any other network cards in this virtual machine or others. + Inserisci il nome della rete interna alla quale questa scheda di rete sarà collegata. Puoi creare una nuova rete interna scegliendo un nome che non è utilizzato da un'altra scheda di rete in questa macchina virtuale o in altre. + + + Selects the virtual network adapter on the host system that traffic to and from this network card will go through. You can create and remove adapters using the global network settings in the virtual machine manager window. + Seleziona la scheda di rete virtuale sul sistema host attraverso la quale il traffico verso e da questa scheda di rete transiterà. Puoi creare e rimuovere le schede utilizzando le impostazioni di rete generali nella finestra del gestore della macchina virtuale. + + + Selects the driver to be used with this network card. + Seleziona il driver da utilizzare per questa scheda di rete. + + + Select TAP setup application + Seleziona l'applicazione d'installazione del TAP + + + Select TAP terminate application + Seleziona l'applicazione di rimozione del TAP + + + A&dapter Type: + Tipo di sche&da: + + + &Network Name: + &Nome della rete: + + + Displays the name of the internal network selected for this adapter. + Visualizza il nome della rete interna selezionata per questa scheda. + + + &MAC Address: + Indirizzo &MAC: + + + &Generate + &Genera + + Ca&ble Connected Ca&vo connesso @@ -3893,102 +3978,17 @@ Non connesso - Adapter &Type: - &Tipo di scheda: - - Open extended settings dialog for current attachment type. Apri la finestra delle impostazioni estese per il tipo di collegamento corrente. - no bridged network adapter is selected - non è selezionata alcuna scheda di rete con bridge - - - no internal network name is specified - non è specificato alcun nome di rete - - - no host-only network adapter is selected - non è selezionata alcuna scheda di rete solo host - - - Not selected - network adapter name - Non selezionata - - Open additional options dialog for current attachment type. Apri la finestra delle opzioni aggiuntive per il tipo di collegamento corrente. - &Name: - &Nome: - - Selects the name of the network adapter for <b>Bridged Adapter</b> or <b>Host-only Adapter</b> attachments and the name of the network <b>Internal Network</b> attachments. Seleziona il nome della scheda di rete se il tipo di collegamento è <b>Scheda con bridge</b> o <b>Scheda solo host</b> e il nome della rete interna se il tipo di collegamento è uguale a <b>Rete interna</b>. - - A&dvanced - A&vanzate - - - Shows or hides additional network adapter options. - Mostra o nasconde le opzioni aggiuntive della scheda di rete. - - - &Mac Address: - Indirizzo &MAC: - - - &Cable connected - &Cavo connesso - - - Opens dialog to manage port forwarding rules. - Apre una finestra per la gestione delle regole di inoltro delle porte. - - - &Port Forwarding - Inoltro delle &porte - - - &Promiscuous Mode: - Modalità &promiscua: - - - Selects the promiscuous mode policy of the network adapter when attached to an internal network, host only network or a bridge. - Seleziona la modalità promiscua della scheda di rete quando è collegata a una rete interna, solo host o bridge. - - - Generic Properties: - Proprietà generali: - - - Enter any configuration settings here for the network attachment driver you will be using. The settings should be of the form <b>name=value</b> and will depend on the driver. Use <b>shift-enter</b> to add a new entry. - Inserisci qui ogni impostazione di configurazione del driver del collegamentoJ di rete che utilizzerai. Le impostazioni dovrebbero essere nella forma <b>nome=valore</b> e dipenderanno dal driver. Utilizza <b>maiusc-invio</b> per aggiungere una nuova voce. - - - no generic driver is selected - non è selezionato alcun driver generico - - - Selects the network adapter on the host system that traffic to and from this network card will go through. - Seleziona la scheda di rete sul sistema host sulla quale transiterà il traffico verso e da questa scheda di rete. - - - Enter the name of the internal network that this network card will be connected to. You can create a new internal network by choosing a name which is not used by any other network cards in this virtual machine or others. - Inserisci il nome della rete interna alla quale questa scheda di rete sarà collegata. Puoi creare una nuova rete interna scegliendo un nome che non è utilizzato da un'altra scheda di rete in questa macchina virtuale o in altre. - - - Selects the virtual network adapter on the host system that traffic to and from this network card will go through. You can create and remove adapters using the global network settings in the virtual machine manager window. - Seleziona la scheda di rete virtuale sul sistema host attraverso la quale il traffico verso e da questa scheda di rete transiterà. Puoi creare e rimuovere le schede utilizzando le impostazioni di rete generali nella finestra del gestore della macchina virtuale. - - - Selects the driver to be used with this network card. - Seleziona il driver da utilizzare per questa scheda di rete. - UIMachineSettingsNetworkDetails @@ -4120,18 +4120,10 @@ &IRQ: - Displays the IRQ number of this parallel port. Valid values are integer numbers in range from <tt>0</tt> to <tt>255</tt>. Values greater than <tt>15</tt> may only be used if the <b>IO APIC</b> is enabled for this virtual machine. - Visualizza il numero IRQ di questa porta parallela. Valori validi sono numeri interi nell'intervallo <tt>0</tt>-<tt>255</tt>. Valori più grandi di <tt>15</tt> possono essere usati solo se è abilitato <b>IO APIC</b> su questa macchina virtuale. - - I/O Po&rt: Po&rta I/O: - Displays the base I/O port address of this parallel port. This should be a whole number between <tt>0</tt> and <tt>0xFFFF</tt>. - Visualizza l'indirizzo I/O base di questa porta parallela. Valori validi sono numeri interi nell'intervallo <tt>0</tt>-<tt>0xFFFF</tt>. - - Port &Path: &Percorso porta: @@ -4147,6 +4139,14 @@ Displays the base I/O port address of this parallel port. Valid values are integer numbers in range from <tt>0</tt> to <tt>0xFFFF</tt>. Visualizza l'indirizzo base della porta di I/O della porta parallela. Valori validi sono numeri interi nell'intervallo compreso tra <tt>0</tt> e <tt>0xFFFF</tt>. + + Displays the IRQ number of this parallel port. Valid values are integer numbers in range from <tt>0</tt> to <tt>255</tt>. Values greater than <tt>15</tt> may only be used if the <b>IO APIC</b> is enabled for this virtual machine. + Visualizza il numero IRQ di questa porta parallela. Valori validi sono numeri interi nell'intervallo <tt>0</tt>-<tt>255</tt>. Valori più grandi di <tt>15</tt> possono essere usati solo se è abilitato <b>IO APIC</b> su questa macchina virtuale. + + + Displays the base I/O port address of this parallel port. This should be a whole number between <tt>0</tt> and <tt>0xFFFF</tt>. + Visualizza l'indirizzo I/O base di questa porta parallela. Valori validi sono numeri interi nell'intervallo <tt>0</tt>-<tt>0xFFFF</tt>. + UIMachineSettingsParallelPage @@ -4197,18 +4197,6 @@ UIMachineSettingsSF - &Add New Shared Folder - &Aggiungi nuova cartella condivisa - - - &Edit Selected Shared Folder - &Modifica la cartella condivisa selezionata - - - &Remove Selected Shared Folder - &Rimuovi cartella condivisa selezionata - - Adds a new shared folder definition. Aggiunge una nuova definizione di cartella condivisa. @@ -4253,10 +4241,6 @@ Accesso - Global Folders - Cartelle globali - - &Add Shared Folder &Aggiungi cartella condivisa @@ -4280,6 +4264,22 @@ Yes + + &Add New Shared Folder + &Aggiungi nuova cartella condivisa + + + &Edit Selected Shared Folder + &Modifica la cartella condivisa selezionata + + + &Remove Selected Shared Folder + &Rimuovi cartella condivisa selezionata + + + Global Folders + Cartelle globali + UIMachineSettingsSFDetails @@ -4360,18 +4360,10 @@ &IRQ: - Displays the IRQ number of this serial port. Valid values are integer numbers in range from <tt>0</tt> to <tt>255</tt>. Values greater than <tt>15</tt> may only be used if the <b>IO APIC</b> is enabled for this virtual machine. - Visualizza il numero IRQ di questa porta seriale. Valori validi sono numeri interi nell'intervallo compreso tra <tt>0</tt> e <tt>255</tt>. Valori più grandi di <tt>15</tt> possono essere utilizzati solo se è abilitato <b>IO APIC</b> per questa macchina virtuale. - - I/O Po&rt: Po&rta I/O: - Displays the base I/O port address of this serial port. This should be a whole number between <tt>0</tt> and <tt>0xFFFF</tt>. - Visualizza l'indirizzo base della porta I/O di questa porta seriale. Valori validi sono numeri interi nell'intervallo compreso tra <tt>0</tt> e <tt>0xFFFF</tt>. - - Port &Mode: &Modalità porta: @@ -4388,10 +4380,6 @@ &Crea pipe - Port &Path: - &Percorso porta: - - Displays the path to the serial port's pipe on the host when the port is working in <b>Host Pipe</b> mode, or the host serial device name when the port is working in <b>Host Device</b> mode. Visualizza il percorso della pipe per la porta seriale nel sistema host quando la porta lavora in modalità <b>Pipe host</b>, o il nome del dispositivo seriale dell'host quando la porta è in modalità <b>Dispositivo host</b>. @@ -4407,96 +4395,36 @@ Displays the base I/O port address of this serial port. Valid values are integer numbers in range from <tt>0</tt> to <tt>0xFFFF</tt>. Visualizza l'indirizzo base della porta di I/O della porta seriale. Valori validi sono numeri interi nell'intervallo compreso tra <tt>0</tt> e <tt>0xFFFF</tt>. - - - UIMachineSettingsSerialPage - Duplicate port number selected - È stato selezionato un numero di porta duplicato + Displays the IRQ number of this serial port. Valid values are integer numbers in range from <tt>0</tt> to <tt>255</tt>. Values greater than <tt>15</tt> may only be used if the <b>IO APIC</b> is enabled for this virtual machine. + Visualizza il numero IRQ di questa porta seriale. Valori validi sono numeri interi nell'intervallo compreso tra <tt>0</tt> e <tt>255</tt>. Valori più grandi di <tt>15</tt> possono essere utilizzati solo se è abilitato <b>IO APIC</b> per questa macchina virtuale. - Port path not specified - Il percorso della porta non è specificato + Displays the base I/O port address of this serial port. This should be a whole number between <tt>0</tt> and <tt>0xFFFF</tt>. + Visualizza l'indirizzo base della porta I/O di questa porta seriale. Valori validi sono numeri interi nell'intervallo compreso tra <tt>0</tt> e <tt>0xFFFF</tt>. - Duplicate port path entered - È stato immesso un percorso di porta duplicato + Port &Path: + &Percorso porta: - UIMachineSettingsStorage - - No hard disk is selected for <i>%1</i> - Nessun disco fisso selezionato per <i>%1</i> - - - <i>%1</i> uses the hard disk that is already attached to <i>%2</i> - <i>%1</i> usa il disco fisso già connesso a <i>%2</i> - - - &Add Attachment - &Aggiungi connessione - - - &Remove Attachment - &Rimuovi connessione - - - &Select Hard Disk - &Seleziona disco fisso - - - Adds a new hard disk attachment. - Aggiunge il collegamento a un nuovo disco fisso. - - - Removes the highlighted hard disk attachment. - Rimuove il collegamento al disco fisso evidenziato. - - - When checked, enables the virtual SATA controller of this machine. Note that you cannot attach hard disks to SATA ports when the virtual SATA controller is disabled. - Se abilitata, abilita il controller SATA di questa macchina. Nota che non puoi collegare dischi fissi alle porte SATA quando il controller SATA è disabilitato. - - - &Enable SATA Controller - Abilita controll&er SATA - - - &Attachments - &Connessioni - - - Lists all hard disks attached to this machine. Use a mouse click or the <tt>Space</tt> key on the highlighted item to activate the drop-down list and choose the desired value. Use the context menu or buttons to the right to add or remove hard disk attachments. - Elenca tutti i dischi fissi collegati a questa macchina. Utilizza un clic del mouse o la <tt>barra spaziatrice</tt> sull'elemento selezionato per attivare l'elenco a tendina e scegliere il valore desiderato. Utilizza il menu contestuale o i pulsanti sulla destra per aggiungere o rimuovere i dischi fissi collegati. - - - Invokes the Virtual Media Manager to select a hard disk to attach to the currently highlighted slot. - Invoca il gestore supporti virtuali per selezionare un disco fisso da collegare allo slot attualmente evidenziato. - - - If checked, shows the differencing hard disks that are attached to slots rather than their base hard disks (shown for indirect attachments) and allows explicit attaching of differencing hard disks. Check this only if you need a complex hard disk setup. - Se marcata, mostrerà i dischi differenziali attualmente collegati agli slot al posto dei dischi base (mostrati in caso di collegamenti indiretti) e permetterà inoltre di collegare altri dischi differenziali esplicitamente. Marcala solo se necessiti di una configurazione complessa di dischi fissi. - - - &Show Differencing Hard Disks - Mo&stra dischi fissi differenziali - - - When checked, enables an additional virtual controller (either SATA or SCSI) of this machine. - Se marcata, abilita un controller virtuale aggiuntivo (SATA o SCSI) su questa macchina. - + UIMachineSettingsSerialPage - &Enable Additional Controller - Abilita controll&er aggiuntivo + Duplicate port number selected + È stato selezionato un numero di porta duplicato - IDE &Controller Type - Tipo di &controller IDE + Port path not specified + Il percorso della porta non è specificato - Defines the type of the virtual IDE controller. Depending on this value, VirtualBox will provide different virtual IDE hardware devices to the guest OS. - Specifica il tipo di controller IDE virtuale. A seconda di questo valore, VirtualBox fornirà dispositivi hardware IDE virtuali diversi al sistema operativo guest. + Duplicate port path entered + È stato immesso un percorso di porta duplicato + + + UIMachineSettingsStorage <nobr><b>%1</b></nobr><br><nobr>Bus:&nbsp;&nbsp;%2</nobr><br><nobr>Type:&nbsp;&nbsp;%3</nobr> <nobr><b>%1</b></nobr><br><nobr>Bus:&nbsp;&nbsp;%2</nobr><br><nobr>Tipo:&nbsp;&nbsp;%3</nobr> @@ -4518,10 +4446,6 @@ <nobr>Aggiungi&nbsp;dispositivo&nbsp;floppy</nobr> - No hard disk is selected for <i>%1</i>. - Nessun disco fisso selezionato per <i>%1</i>. - - <i>%1</i> uses a medium that is already attached to <i>%2</i>. <i>%1</i> utilizza un supporto già collegato a <i>%2</i>. @@ -4606,14 +4530,6 @@ &Disco fisso: - &CD/DVD Device: - Dispositivo &CD/DVD: - - - &Floppy Device: - Dispositivo &floppy: - - &Storage Tree Albero di archivia&zione @@ -4650,30 +4566,10 @@ Seleziona il sottotipo del controller di archiviazione attualmente selezionato nell'albero di archiviazione. - S&lot: - S&lot: - - Selects the slot on the storage controller used by this attachment. The available slots depend on the type of the controller and other attachments on it. Seleziona lo slot sul controller di archiviazione utilizzato da questo collegamento. Gli slot disponibili dipendono dal tipo di controller e dagli altri collegamenti. - Selects the virtual disk image or the host drive used by this attachment. - Seleziona l'immagine del disco vituale o il lettore dell'host utilizzato da questo collegamento. - - - Opens the Virtual Media Manager to select a virtual image for this attachment. - Apre il gestore supporti virtuali per selezionare un'immagine virtuale per il collegamento. - - - Open Virtual Media Manager - Apri il gestore supporti virtuali - - - D&ifferencing Disks - D&ischi differenziali - - When checked, allows the guest to send ATAPI commands directly to the host-drive which makes it possible to use CD/DVD writers connected to the host inside the VM. Note that writing audio CD inside the VM is not yet supported. Se selezionata, consente al guest di inviare comandi ATAPI direttamente al lettore dell'host che rende possibile l'utilizzo nella MV di masterizzatori CD/DVD collegati all'host. Nota che la scrittura di CD audio nella MV non è ancora supportata. @@ -4722,14 +4618,6 @@ Controller SAS - Storage Controller - Controller di archiviazione - - - Storage Controller 1 - Controller di archiviazione 1 - - Type: Tipo: @@ -4847,6 +4735,118 @@ Selects the port count of the SATA storage controller currently selected in the Storage Tree. This must be at least one more than the highest port number you need to use. Seleziona il numero delle porte del controller di archiviazione SATA selezionato nell'albero di archiviazione. Questo valore deve eccedere almeno di uno il numero di porte necessarie. + + No hard disk is selected for <i>%1</i> + Nessun disco fisso selezionato per <i>%1</i> + + + <i>%1</i> uses the hard disk that is already attached to <i>%2</i> + <i>%1</i> usa il disco fisso già connesso a <i>%2</i> + + + &Add Attachment + &Aggiungi connessione + + + &Remove Attachment + &Rimuovi connessione + + + &Select Hard Disk + &Seleziona disco fisso + + + Adds a new hard disk attachment. + Aggiunge il collegamento a un nuovo disco fisso. + + + Removes the highlighted hard disk attachment. + Rimuove il collegamento al disco fisso evidenziato. + + + When checked, enables the virtual SATA controller of this machine. Note that you cannot attach hard disks to SATA ports when the virtual SATA controller is disabled. + Se abilitata, abilita il controller SATA di questa macchina. Nota che non puoi collegare dischi fissi alle porte SATA quando il controller SATA è disabilitato. + + + &Enable SATA Controller + Abilita controll&er SATA + + + &Attachments + &Connessioni + + + Lists all hard disks attached to this machine. Use a mouse click or the <tt>Space</tt> key on the highlighted item to activate the drop-down list and choose the desired value. Use the context menu or buttons to the right to add or remove hard disk attachments. + Elenca tutti i dischi fissi collegati a questa macchina. Utilizza un clic del mouse o la <tt>barra spaziatrice</tt> sull'elemento selezionato per attivare l'elenco a tendina e scegliere il valore desiderato. Utilizza il menu contestuale o i pulsanti sulla destra per aggiungere o rimuovere i dischi fissi collegati. + + + Invokes the Virtual Media Manager to select a hard disk to attach to the currently highlighted slot. + Invoca il gestore supporti virtuali per selezionare un disco fisso da collegare allo slot attualmente evidenziato. + + + If checked, shows the differencing hard disks that are attached to slots rather than their base hard disks (shown for indirect attachments) and allows explicit attaching of differencing hard disks. Check this only if you need a complex hard disk setup. + Se marcata, mostrerà i dischi differenziali attualmente collegati agli slot al posto dei dischi base (mostrati in caso di collegamenti indiretti) e permetterà inoltre di collegare altri dischi differenziali esplicitamente. Marcala solo se necessiti di una configurazione complessa di dischi fissi. + + + &Show Differencing Hard Disks + Mo&stra dischi fissi differenziali + + + When checked, enables an additional virtual controller (either SATA or SCSI) of this machine. + Se marcata, abilita un controller virtuale aggiuntivo (SATA o SCSI) su questa macchina. + + + &Enable Additional Controller + Abilita controll&er aggiuntivo + + + IDE &Controller Type + Tipo di &controller IDE + + + Defines the type of the virtual IDE controller. Depending on this value, VirtualBox will provide different virtual IDE hardware devices to the guest OS. + Specifica il tipo di controller IDE virtuale. A seconda di questo valore, VirtualBox fornirà dispositivi hardware IDE virtuali diversi al sistema operativo guest. + + + No hard disk is selected for <i>%1</i>. + Nessun disco fisso selezionato per <i>%1</i>. + + + &CD/DVD Device: + Dispositivo &CD/DVD: + + + &Floppy Device: + Dispositivo &floppy: + + + S&lot: + S&lot: + + + Selects the virtual disk image or the host drive used by this attachment. + Seleziona l'immagine del disco vituale o il lettore dell'host utilizzato da questo collegamento. + + + Opens the Virtual Media Manager to select a virtual image for this attachment. + Apre il gestore supporti virtuali per selezionare un'immagine virtuale per il collegamento. + + + Open Virtual Media Manager + Apri il gestore supporti virtuali + + + D&ifferencing Disks + D&ischi differenziali + + + Storage Controller + Controller di archiviazione + + + Storage Controller 1 + Controller di archiviazione 1 + UIMachineSettingsSystem @@ -4884,11 +4884,6 @@ <qt>%1&nbsp;CPU</qt> - <qt>%1&nbsp;CPUs</qt> - %1 is 32 for now - <qt>%1&nbsp;CPU</qt> - - &Motherboard Scheda &madre @@ -4933,14 +4928,6 @@ Funzionalità estese: - When checked, the virtual machine will support the Advanced Configuration and Power Management Interface (ACPI). <b>Note:</b> don't disable this feature after having installed a Windows guest operating system! - Se marcata, la macchina virtuale supporterà la configurazione avanzata e l'interfaccia di gestione energetica (ACPI). <b>Nota:</b> non disabilitare questa funzionalità dopo aver installato un sistema operativo guest Windows! - - - Enable &ACPI - Abilita &ACPI - - When checked, the virtual machine will support the Input Output APIC (IO APIC), which may slightly decrease performance. <b>Note:</b> don't disable this feature after having installed a Windows guest operating system! Se marcata, la macchina virtuale supporterà l'Input Output APIC (IO APIC), che potrebbe leggermente ridurre le prestazioni della macchina virtuale. <b>Nota:</b> non disabilitare questa funzionalità dopo aver installato un sistema operativo guest Windows! @@ -4957,10 +4944,6 @@ &Processore(i): - Controls the number of virtual CPUs in the virtual machine. - Controlla il numero di CPU virtuali di questa macchina virtuale. - - When checked, the Physical Address Extension (PAE) feature of the host CPU will be exposed to the virtual machine. Se marcata, la funzionalità di estensione dell'indirizzo fisico (PAE) della CPU dell'host sarà esposta alla macchina virtuale. @@ -5034,10 +5017,6 @@ Definisce il tipo di chipset che deve essere emulato dalla macchina virtuale. Nota che l'emulazione del chipset ICH9 è sperimentale e non consigliato, ad eccezione dei sistemi guest (come Mac OS X) che lo richiedono. - you have selected emulation of an ICH9 chipset in this machine. This requires the IO-APIC feature to be enabled. This will be done automatically when you accept the VM Settings by pressing the OK button. - hai assegnato il tipo di chipset ICH9 a questa macchina virtuale. Funzionerà correttamente solo se anche la funzionalità IO-APIC è abilitata. Ciò avverrà automaticamente quando accetti le impostazioni della MV, premendo il pulsante OK. - - &Execution Cap: &Execution Cap: @@ -5067,6 +5046,27 @@ you have assigned ICH9 chipset type to this VM. It will not work properly unless the IO-APIC feature is also enabled. This will be done automatically when you accept the VM Settings by pressing the OK button. hai assegnato il tipo di chipset ICH9 a questa MV. Funzionerà correttamente solo se anche la funzionalità IO-APIC è abilitata. Ciò avverrà automaticamente quando accetti le impostazioni della MV, premendo il pulsante OK. + + <qt>%1&nbsp;CPUs</qt> + %1 is 32 for now + <qt>%1&nbsp;CPU</qt> + + + When checked, the virtual machine will support the Advanced Configuration and Power Management Interface (ACPI). <b>Note:</b> don't disable this feature after having installed a Windows guest operating system! + Se marcata, la macchina virtuale supporterà la configurazione avanzata e l'interfaccia di gestione energetica (ACPI). <b>Nota:</b> non disabilitare questa funzionalità dopo aver installato un sistema operativo guest Windows! + + + Enable &ACPI + Abilita &ACPI + + + Controls the number of virtual CPUs in the virtual machine. + Controlla il numero di CPU virtuali di questa macchina virtuale. + + + you have selected emulation of an ICH9 chipset in this machine. This requires the IO-APIC feature to be enabled. This will be done automatically when you accept the VM Settings by pressing the OK button. + hai assegnato il tipo di chipset ICH9 a questa macchina virtuale. Funzionerà correttamente solo se anche la funzionalità IO-APIC è abilitata. Ciò avverrà automaticamente quando accetti le impostazioni della MV, premendo il pulsante OK. + UIMachineSettingsUSB @@ -5192,13 +5192,13 @@ <nobr>Stato: %1</nobr> - USB 2.0 is currently enabled for this virtual machine. However this requires the <b>%1</b> to be installed. Please install the Extension Pack from the VirtualBox download site. After this you will be able to re-enable USB 2.0. It will be disabled in the meantime unless you cancel the current settings changes. - USB 2.0 è attualmente abilitato per questa macchina virtuale. In ogni caso, ciò richiede che <b>%1</b> sia installato. Installa l'Extension Pack dal sito di VirtualBox. Una volta installato, sarà possibile ri-abilitare USB 2.0. Nel frattempo sarà disabilitato a meno che annulli le modifiche correnti alle impostazioni. - - USB 2.0 is currently enabled for this virtual machine. However, this requires the <b>%1</b> to be installed. Please install the Extension Pack from the VirtualBox download site. After this you will be able to re-enable USB 2.0. It will be disabled in the meantime unless you cancel the current settings changes. USB 2.0 è attualmente abilitato per questa macchina virtuale. In ogni caso, ciò richiede che <b>%1</b> sia installato. Installa l'Extension Pack dal sito di VirtualBox. Dopo potrai riabilitare l'USB 2.0. Nel frattempo, sarà disabilitato a meno che tu non annulli le modifiche correnti. + + USB 2.0 is currently enabled for this virtual machine. However this requires the <b>%1</b> to be installed. Please install the Extension Pack from the VirtualBox download site. After this you will be able to re-enable USB 2.0. It will be disabled in the meantime unless you cancel the current settings changes. + USB 2.0 è attualmente abilitato per questa macchina virtuale. In ogni caso, ciò richiede che <b>%1</b> sia installato. Installa l'Extension Pack dal sito di VirtualBox. Una volta installato, sarà possibile ri-abilitare USB 2.0. Nel frattempo sarà disabilitato a meno che annulli le modifiche correnti alle impostazioni. + UIMachineSettingsUSBFilterDetails @@ -5349,7 +5349,7 @@ VirtualBox - Critical Error msg box title - VirtualBox - Errore Critico + VirtualBox - Errore grave Do not show this message again @@ -5369,14 +5369,6 @@ <p>Creazione dell'oggetto COM VirtualBox non riuscita.</p><p>L'applicazione sarà chiusa immediatamente.</p> - <p>Failed to load the global GUI configuration.</p><p>The application will now terminate.</p> - <p>Fallimento nel caricamento della configurazione globale della GUI.</p><p>L'applicazione verrà ora chiusa.</p> - - - <p>Failed to save the global GUI configuration.<p> - <p>Fallimento nel salvataggio della configurazione globale della GUI.<p> - - Failed to set global VirtualBox properties. Impostazione delle proprietà globali di VirtualBox non riuscita. @@ -5397,14 +5389,6 @@ Applicazione delle impostazioni alla macchina virtuale <b>%1</b> non riuscita. - Failed to save the settings of the virtual machine <b>%1</b>. - Salvataggio delle impostazioni della Macchina Virtuale <b>%1</b> non riuscito. - - - Failed to load the settings of the virtual machine <b>%1</b>. - Caricamento delle impostazioni della Macchina Virtuale <b>%1</b> non riuscito. - - Failed to start the virtual machine <b>%1</b>. Accensione della macchina virtuale <b>%1</b> non riuscita. @@ -5437,107 +5421,22 @@ Scarto dello stato salvato per la macchina virtuale <b>%1</b> non riuscito. - Failed to discard the snapshot <b>%1</b> of the virtual machine <b>%2</b>. - Scarto dell'istantanea <b>%1</b> della Macchina Virtuale <b>%2</b> non riuscito. - - - Failed to discard the current state of the virtual machine <b>%1</b>. - Scarto dello stato attuale della Macchina Virtuale <b>%1</b> non riuscito. - - - Failed to discard the current snapshot and the current state of the virtual machine <b>%1</b>. - Scarto dell'istantanea corrente e dello stato corrente della Macchina Virtuale <b>%1</b> non riuscito. - - There is no virtual machine named <b>%1</b>. Non esiste una macchina virtuale chiamata <b>%1</b>. - <p>Are you sure you want to permanently delete the virtual machine <b>%1</b>?</p><p>This operation cannot be undone.</p> - <p>Sei sicuro di voler eliminare definitivamente la Macchina Virtuale <b>%1</b>?</p><p>Questa operazione non può essere annullata.</p> - - - <p>Are you sure you want to unregister the inaccessible virtual machine <b>%1</b>?</p><p>You will not be able to register it again from GUI.</p> - <p>Sei sicuro di voler deregistrare la Macchina Virtuale <b>%1</b> inaccessibile?</p><p>Non potrai registrarla nuovamente dalla GUI.</p> - - <p>Are you sure you want to discard the saved state of the virtual machine <b>%1</b>?</p><p>This operation is equivalent to resetting or powering off the machine without doing a proper shutdown of the guest OS.</p> <p>Sei sicuro di voler scartare lo stato salvato della macchina virtuale <b>%1</b>?</p><p>Questa operazione è equivalente al reset o allo spegnimento della macchina senza uno spegnimento corretto, dal punto di vista del sistema guest.</p> - <p>Releasing this media image will detach it from the following virtual machine(s): <b>%1</b>.</p><p>Continue?</p> - <p>Il rilascio di questa immagine lo scollegherà dalle seguenti Macchine Virtuali: -<b>%1</b>.</p><p>Continuare?</p> - - - <p>The image file <b>%1</b> already exists. You cannot create a new virtual hard disk that uses this file, because it can be already used by another virtual hard disk.</p><p>Please specify a different image file name.</p> - <p>Il file immagine <b>%1</b> esiste già. Non puoi creare un nuovo hard disk virtuale che utilizzi questo file, perché potrebbe già essere usato da un altro hard disk virtuale.</p><p>Specifica un nome file diverso.</p> - - - <p>Do you want to delete this hard disk's image file <nobr><b>%1</b>?</nobr></p><p>If you select <b>No</b> then the virtual hard disk will be unregistered and removed from the collection, but the image file will be left on your physical disk.</p><p>If you select <b>Yes</b> then the image file will be permanently deleted after unregistering the hard disk. This operation cannot be undone.</p> - <p>Vuoi eliminare il file immagine di questo hard disk <nobr><b>%1</b>?</nobr></p><p>Se scegli <b>No</b> l'hard disk virtuale sarà deregistrato e rimosso dall'elenco, ma il file immagine sarà lasciato nel tuo disco fisico.</p><p>Se scegli <b>Sì</b> il file immagine sarà rimosso definitivamente dopo la deregistrazione dell'hard disk. Questa operazione non può essere annullata.</p> - - - Failed to delete the virtual hard disk image <b>%1</b>. - Rilevazione dell'immagine hard disk virtuale <b>%1</b> non riuscita. - - - <p>Do you want to remove (unregister) the virtual hard disk <nobr><b>%1</b>?</nobr></p> - <p>Vuoi rimuovere (deregistrare) l'hard disk virtuale <nobr><b>%1</b>?</nobr></p> - - - Failed to create the virtual hard disk image <nobr><b>%1</b>.</nobr> - Creazione dell'immagine hard disk virtuale <nobr><b>%1</b> non riuscita.</nobr> - - - Failed to attach a hard disk image with UUID %1 to the device slot %2 of the controller %3 of the machine <b>%4</b>. - Collegamento di un'immagine hard disk con UUID %1 allo slot dispositivo %2 del controller %3 della macchina <b>%4</b> non riuscito. - - - Failed to detach a hard disk image from the device slot %1 of the controller %2 of the machine <b>%3</b>. - Disconnessione di un'immagine hard disk dallo slot dispositivo %1 del controller %2 della macchina <b>%3</b> non riuscita. - - - hard disk - hard disk - - - CD/DVD image - immagine CD/DVD - - - floppy image - immagine floppy - - - Failed to register the %1 <nobr><b>%2</b></nobr>. - Registrazione del %1 <nobr><b>%2</b></nobr> non riuscita. - - - Failed to unregister the %1 <nobr><b>%2</b></nobr>. - Deregistrazione del %1 <nobr><b>%2</b></nobr> non riuscita. - - Failed to create a new session. Creazione di una nuova sessione non riuscita. - Failed to open a session for a virtual machine with UUID <b>%1</b>. - Apertura di una sessione per la Macchina Virtuale con UUID <b>%1</b> non riuscita. - - Failed to open a session for the virtual machine <b>%1</b>. Apertura di una sessione per la Macchina Virtuale <b>%1</b> non riuscita. - Failed to determine the accessibility state of the media <nobr><b>%1</b></nobr>. Some of the registered media may become inaccessible. - Recupero dello stato di accessibilità del media <nobr><b>%1</b></nobr> non riuscito. Alcuni dei media registrati potrebbero diventare inaccessibili. - - - Failed to create the host network interface <b>%1</b>. - Creazione dell'interfaccia di rete host <b>%1</b> non riuscita. - - Failed to remove the host network interface <b>%1</b>. Rimozione dell'interfaccia di rete host <b>%1</b> non riuscita. @@ -5566,14 +5465,6 @@ <p>La macchina virtuale è attualmente in stato di <b>Pausa</b> e pertanto non accetta comandi da tastiera o mouse. Se vuoi continuare il tuo lavoro all'interno della MV, devi ripristinarla selezionando l'azione corrispondente dal menu azioni.</p> - <p>One or more of the registered virtual hard disks, CD/DVD or floppy media are not currently accessible. As a result, you will not be able to operate virtual machines that use these media until they become accessible later.</p><p>Press <b>OK</b> to open the Virtual Disk Manager window and see what media are inaccessible, or press <b>Ignore</b> to ignore this message.</p> - <p>Uno o più hard disk virtuali, CD/DVD o floppy registrati non sono attualmente accessibili. Come risultato, non potrai utilizzare Macchine Virtuali che sfruttino tali media finché non siano nuovamente accessibili.</p><p>Premi <b>OK</b> per aprire il Gestore di dischi virtuali e vedere quali sono i media inaccessbili, o premi <b>Ignora</b> per ignorare questo messaggio.</p> - - - <p>The virtual machine window will be now switched to <b>fullscreen</b> mode. You can go back to windowed mode at any time by pressing <b>%1</b>. Note that the <i>Host</i> key is currently defined as <b>%1</b>.</p> - <p>La finestra della macchina virtuale verrà ora commutata alla modalità <b>schermo intero</b>. Puoi tornare indietro alla modalità finestra in qualsiasi momento premendo <b>%1</b>. Nota che la <i>host key</i> è definita attualmente come <b>%1</b>.</p> - - <p>Cannot run VirtualBox in <i>VM Selector</i> mode due to local restrictions.</p><p>The application will now terminate.</p> <p>Impossibile eseguire VirtualBox in modalità <i>Selettore MV</i> a causa di restrizioni locali.</p><p>L'applicazione sarà chiusa immediatamente.</p> @@ -5648,26 +5539,6 @@ <p>Impossibile caricare il file della lingua <b><nobr>%1</nobr></b>.<p>La lingua sarà temporaneamente reimpostata a Inglese (built-in). Apri la finestra delle <b>Impostazioni</b> dal menu <b>File</b> della finestra principale di VirtualBox, e scegli una delle lingue esistenti nella pagina <b>Lingua</b>.</p> - <p>The VirtualBox Guest Additions installed in the Guest OS are too old: the installed version is %1, the expected version is %2. Some features that require Guest Additions (mouse integration, guest display auto-resize) will most likely stop working properly.</p><p>Please update the Guest Additions to the current version by choosing <b>Install Guest Additions</b> from the <b>Devices</b> menu.</p> - <p>Le Guest Additions installate nel sistema Guest sono obsolete: la versione installata è %1, quella attesa è %2. Alcune funzionalità che richiedono Guest Additions (Integrazione mouse, auto-ridimensionamento dello schermo) probabilmente smetteranno di funzionare correttamente.</p><p>Aggiorna le Guest Additions alla versione attuale scegliendo <b>Installa Guest Additions</b> dal menu <b>Dispositivi</b>.</p> - - - <p>The VirtualBox Guest Additions installed in the Guest OS are outdated: the installed version is %1, the expected version is %2. Some features that require Guest Additions (mouse integration, guest display auto-resize) may not work as expected.</p><p>It is recommended to update the Guest Additions to the current version by choosing <b>Install Guest Additions</b> from the <b>Devices</b> menu.</p> - <p>Le Guest Additions installate nel sistema Guest non sono aggiornate: la versione installata è %1, quella attesa è %2. Alcune funzionalità che richiedono Guest Additions (Integrazione Mouse, auto-ridimensionamento dello schermo) potrebbero non funzionare come ci si aspetta.</p><p>Si consiglia di aggiornare le Guest Additions alla versione attuale scegliendo <b>Installa Guest Additions</b> dal menu <b>Dispositivi</b>.</p> - - - <p>The VirtualBox Guest Additions installed in the Guest OS are too recent for this version of VirtualBox: the installed version is %1, the expected version is %2.</p><p>Using a newer version of Additions with an older version of VirtualBox is not supported. Please install the current version of the Guest Additions by choosing <b>Install Guest Additions</b> from the <b>Devices</b> menu.</p> - <p>Le Guest Additions installate nel sistema Guest sono troppo recenti per questa versione di VirtualBox: la versione installata è %1, quella attesa è %2.</p><p>L'utilizzo di una versione di Additions più recente di VirtualBox non è supportato. Installa la versione corrente di Guest Additions scegliendo <b>Installa Guest Additions</b> dal menu <b>Dispositivi</b>.</p> - - - Failed to change the snapshot folder path of the virtual machine <b>%1<b> to <nobr><b>%2</b></nobr>. - Impossibile modificare il percorso della cartella per le istantanee della macchina virtuale <b>%1<b> al valore <nobr><b>%2</b></nobr>. - - - <p>Could not enter seamless mode due to insufficient guest video memory.</p><p>You should configure the VM to have at least <b>%1</b> of video memory.</p> - <p>Impossibile entrare in modalità trasparente per memoria video del sistema guest insufficente.</p><p>È necessario configurare la MV per avere almeno <b>%1</b> di memoria video.</p> - - <p>Failed to remove the shared folder <b>%1</b> (pointing to <nobr><b>%2</b></nobr>) from the virtual machine <b>%3</b>.</p><p>Please close all programs in the guest OS that may be using this shared folder and try again.</p> <p>Impossibile rimuovere la cartella condivisa <b>%1</b> (che punta a <nobr><b>%2</b></nobr>) dalla macchina virtuale <b>%3</b>.</p><p>Chiudere tutti i programmi nel sistema Guest che potrebbero utilizzare la cartella condivisa e provare nuovamente.</p> @@ -5677,7 +5548,7 @@ <p>Failed to download the VirtualBox Guest Additions CD image from <nobr><a href="%1">%2</a>.</nobr></p><p>%3</p> - <p>Impossibile scaricare l'immagine CD di VirtualBox Guest Additions da <nobr><a href="%1">%2</a>.</nobr></p><p>%3</p> + <p>Impossibile scaricare l'immagine CD di VirtualBox Guest Additions da <nobr><a href="%1">%2</a>.</nobr></p><p>%3</p> <p>Are you sure you want to download the VirtualBox Guest Additions CD image from <nobr><a href="%1">%2</a></nobr> (size %3 bytes)?</p> @@ -5688,22 +5559,10 @@ <p>L'immagine CD di VirtualBox Guest Additions è stata scaricata con successo da <nobr><a href="%1">%2</a></nobr> e salvata localmente come <nobr><b>%3</b>.</nobr></p><p>Si vuole registrare quest'immagine CD e montarla nel drive CD/DVD virtuale?</p> - <p>The virtual machine window will be now switched to <b>fullscreen</b> mode. You can go back to windowed mode at any time by pressing <b>%1</b>. Note that the <i>Host</i> key is currently defined as <b>%1</b>.</p><p>Note that the main menu bar is hidden in fullscreen mode. You can access it by pressing <b>Host+Home</b>.</p> - <p>La finestra della macchina virtuale verrà ora portata in modalità <b>pieno schermo</b>. È possibile tornare alla modalità finestra in un qualsiasi momento premendo <b>%1</b>. Il tasto <i>Host</i> è definito attualmente come <b>%2</b>.</p><p>Il menu principale viene nascosto in modalità pieno schermo. È possibile accedervi premendo <b>Host+Home</b>.</p> - - - <p>The virtual machine window will be now switched to <b>Seamless</b> mode. You can go back to windowed mode at any time by pressing <b>%1</b>. Note that the <i>Host</i> key is currently defined as <b>%1</b>.</p><p>Note that the main menu bar is hidden in seamless mode. You can access it by pressing <b>Host+Home</b>.</p> - <p>La finestra della macchina virtuale verrà ora portata in modalità <b>trasparente</b>. È possibile tornare alla modalità finestra in un qualsiasi momento premendo <b>%1</b>. Il tasto <i>Host</i> è definito attualmente come <b>%2</b>.</p><p>Il menu principale viene nascosto in modalità trasparente. È possibile accedervi premendo <b>Host+Home</b>.</p> - - <p>The virtual machine window is optimized to work in <b>%1&nbsp;bit</b> color mode but the virtual display is currently set to <b>%2&nbsp;bit</b>.</p><p>Please open the display properties dialog of the guest OS and select a <b>%3&nbsp;bit</b> color mode, if it is available, for best possible performance of the virtual video subsystem.</p><p><b>Note</b>. Some operating systems, like OS/2, may actually work in 32&nbsp;bit mode but report it as 24&nbsp;bit (16 million colors). You may try to select a different color mode to see if this message disappears or you can simply disable the message now if you are sure the required color mode (%4&nbsp;bit) is not available in the guest OS.</p> <p>La finestra della macchina virtuale è ottimizzata per lavorare in modalità colore a <b>%1&nbsp;bit</b>, ma la qualità del colore dello schermo virtuale è impostata attualmente a <b>%2&nbsp;bit</b>.</p><p>Apri la finestra delle proprietà dello schermo nel sistema guest e scegli una modalità di colore a <b>%3&nbsp;bit</b>, se disponibile, per ottenere le migliori prestazioni dal sottosistema video virtuale.</p><p><b>Nota</b>: alcuni sistemi operativi, come OS/2, possono lavorare effettivamente in modalità 32&nbsp;bit, ma la segnalano come 24&nbsp;bit (16 milioni di colori). Puoi provare a selezionare una qualità di colore diversa per vedere se questo messaggio scompare, oppure semplicemente disabilitare il messaggio ora se sei sicuro che la qualità di colore richiesta (%4&nbsp;bit) non sia disponibile nel sistema guest.</p> - <p>A critical error has occurred while running the virtual machine and the machine execution has been stopped.</p><p>For help, please see the Community section on <a href=http://www.virtualbox.org>http://www.virtualbox.org</a> or your support contract. Please provide the contents of the log file <tt>VBox.log</tt> and the image file <tt>VBox.png</tt>, which you can find in the <nobr><b>%1</b></nobr> directory, as well as a description of what you were doing when this error happened. Note that you can also access the above files by selecting <b>Show Log</b> from the <b>Machine</b> menu of the main VirualBox window.</p><p>Press <b>OK</b> if you want to power off the machine or press <b>Ignore</b> if you want to leave it as is for debugging. Please note that debugging requires special knowledge and tools, so it is recommended to press <b>OK</b> now.</p> - <p>È avvenuto un errore critico durante l'esecuzione della macchina virtuale e quest'ultima è stata perciò fermata.</p><p>Per ottenere aiuto, si rimanda alla sezione Community su <a href=http://www.virtualbox.org>http://www.virtualbox.org</a> o al vostro contratto di supporto. Si prega di fornire i contenuti del file di log <tt>VBox.log</tt> e il file immagine <tt>VBox.png</tt>, che potete trovare nella directory <nobr><b>%1</b></nobr>, assieme alla descrizione di quello che si stava facendo quando è stato visualizzato il presente errore. Si noti che è possibile accedere ai file suindicati anche scegliendo <b>Visualizza log</b> dal menu <b>Macchina</b> o dalla finestra principale di VirtualBox.</p><p>Premere <b>OK</b> per spegnere la macchina o premere <b>Ignora</b> se si vuole lasciarla com'è per il debugging. Notare che il debugging richiede particolari conoscenze e strumenti, quindi è raccomandato premere <b>OK</b> in questo momento.</p> - - <p>You didn't attach a hard disk to the new virtual machine. The machine will not be able to boot unless you attach a hard disk with a guest operating system or some other bootable media to it later using the machine settings dialog or the First Run Wizard.</p><p>Do you wish to continue?</p> <p>Non è stato connesso un disco fisso alla nuova macchina virtuale. La macchina non sarà in grado di avviarsi a meno che non si connetta in seguito (attraverso la finestra delle impostazioni o l'Assistente di primo avvio) un disco fisso con un sistema operativo guest o qualche altro supporto avviabile.</p><p>Vuoi continuare?</p> @@ -5720,22 +5579,10 @@ Impossibile inviare l'evento ACPI Power Button Press alla macchina virtuale <b>%1</b>. - <p>Failed to connect to the VirtualBox online registration service.</p><p>%1</p> - <p>Impossibile connettersi al servizio di registrazione online di VirtualBox.</p><p>%1</p> - - <p>Congratulations! You have been successfully registered as a user of VirtualBox.</p><p>Thank you for finding time to fill out the registration form!</p> <p>Congratulazioni! Vi siete registrati con successo come utente di VirtualBox.</p><p>Grazie per aver dedicato qualche minuto alla compilazione del modulo di registrazione!</p> - <p>Failed to register the VirtualBox product</p><p>%1</p> - <p>Impossibile registrare il prodotto VirtualBox</p><p>%1</p> - - - <p>Failed to save the global VirtualBox settings to <b><nobr>%1</nobr></b>.</p> - <p>Impossibile salvare le impostazioni globali di VirtualBox su <b><nobr>%1</nobr></b>.</p> - - <p>Failed to load the global GUI configuration from <b><nobr>%1</nobr></b>.</p><p>The application will now terminate.</p> <p>Impossibile caricare la configurazione GUI globale da <b><nobr>%1</nobr></b>.</p><p>L'applicazione verrà ora chiusa.</p> @@ -5752,57 +5599,11 @@ Impossibile caricare le impostazioni della macchina virtuale <b>%1</b> su <b><nobr>%2</nobr></b>. - Delete - machine - Rimuovi - - - Unregister - machine - De-registra - - Discard saved state Scarta - Continue - detach image - Continua - - - <p>Do you want to delete this hard disk's image file <nobr><b>%1</b>?</nobr></p><p>If you select <b>Delete</b> then the image file will be permanently deleted after unregistering the hard disk. This operation cannot be undone.</p><p>If you select <b>Unregister</b> then the virtual hard disk will be unregistered and removed from the collection, but the image file will be left on your physical disk.</p> - <p>Vuoi eliminare il file immagine per questo disco rigido virtuale <nobr><b>%1</b>?</nobr></p><p>Se scegli <b>Elimina</b> il file immagine sarà cancellato permanentemente dopo la de-registrazione del disco rigido. Questa operazione non può essere annullata.</p><p>Se scegli <b>De-registra</b> il disco rigido virtuale sarà de-registrato e rimosso dall'elenco, ma il file immagine verrà lasciato nel tuo disco fisico.</p> - - - Delete - hard disk - Rimuovi - - - Unregister - hard disk - De-registra - - - <p>There are hard disks attached to SATA ports of this virtual machine. If you disable the SATA controller, all these hard disks will be automatically detached.</p><p>Are you sure that you want to disable the SATA controller?</p> - <p>Ci sono dischi rigidi collegari alle porte SATA di questa macchina virtuale. Se disabiliti il controller SATA, tutti questi dischi rigidi virtuali saranno disconnessi automaticamente.</p><p>Sei sicuro di voler disabilitare il controller SATA?</p> - - - Disable - hard disk - Disabilita - - - Failed to attach a hard disk image with UUID %1 to device slot %2 on channel %3 of the %4 bus of the machine <b>%5</b>. - Impossibile connettere un'immagine disco con UUID %1 allo slot %2 sul canale %3 del bus %4 della macchina <b>%5</b>. - - - Failed to detach a hard disk image from device slot %1 on channel %2 of the %3 bus of the machine <b>%4</b>. - Impossibile disconnettere un'immagine disco dallo slot %1 sul canale %2 del bus %3 della macchina <b>%4</b>. - - Download additions Scarica @@ -5823,34 +5624,11 @@ Cattura - <p>One or more of the registered virtual hard disks, CD/DVD or floppy media are not currently accessible. As a result, you will not be able to operate virtual machines that use these media until they become accessible later.</p><p>Press <b>Check</b> to open the Virtual Disk Manager window and see what media are inaccessible, or press <b>Ignore</b> to ignore this message.</p> - <p>Uno o più dischi virtuali registrati, CD/DVD o floppy non sono attualmente accessibili. Come risultato, non sarai in grado di utilizzare machcine virtuali che sfruttino questi media fintantoché non ritornino accessibili.</p><p>Premi <b>Controlla</b> per aprire la finestra del Gestore di dischi virtuali e vedere quale media è inaccessibile, o premi <b>Ignora</b> per ignorare questo messaggio.</p> - - Check inaccessible media message box Controlla - <p>The following VirtualBox settings files have been automatically converted to the new settings file format version <b>%1</b>.</p><p>However, the results of the conversion were not saved back to disk yet. Please press:</p><ul><li><b>Save</b> to save all auto-converted files now (it will not be possible to use these settings files with an older version of VirtualBox in the future);</li><li><b>Backup</b> to create backup copies of the settings files in the old format before saving them in the new format;</li><li><b>Cancel</b> to not save the auto-converted settings files now.<li></ul><p>Note that if you select <b>Cancel</b>, the auto-converted settings files will be implicitly saved in the new format anyway once you change a setting or start a virtual machine, but <b>no</b> backup copies will be created in this case.</p> - <p>I seguenti file di impostazioni di VirtualBox sono stati convertiti automaticamente alla nuova versione <b>%1</b>.</p><p>Il risultato della conversione non è stato tuttavia ancora salvato su disco. Premi:</p><ul><li><b>Salva</b> per salvare tutti i file auto-convertiti in questo momento (non sarà possibile usare questi file di impostazioni con versioni più vecchie di VirtualBox);</li><li><b>Backup</b> per creare copie di backup dei file nel vecchio formato prima di salvarli in quello nuovo;</li><li><b>Annulla</b> per non salvare i file auto-convertiti.</li></ul><p>Nota che se selezionerai <b>Annulla</b>, i file di impostazioni auto-convertiti saranno implicitamente salvati nel nuovo formato appena modificherai un'impostazione o lancerai una macchina virtuale, ma <b>nessuna</b> copia di backup verrà creata in questo caso.</p> - - - &Save - warnAboutAutoConvertedSettings message box - &Salva - - - &Backup - warnAboutAutoConvertedSettings message box - &Backup - - - Cancel - warnAboutAutoConvertedSettings message box - Annulla - - Switch fullscreen Schermo intero @@ -5880,24 +5658,6 @@ Torna indietro - Failed to copy file <b><nobr>%1</nobr></b> to <b><nobr>%2</nobr></b> (%3). - Impossibile copiare il file <b><nobr>%1</nobr></b> su <b><nobr>%2</nobr></b> (%3). - - - <p>There are no unused hard disks available for the newly created attachment.</p><p>Press the <b>Create</b> button to start the <i>New Virtual Disk</i> wizard and create a new hard disk, or press the <b>Select</b> if you wish to open the <i>Virtual Disk Manager</i>.</p> - <p>Non ci sono dischi rigidi inutilizzati disponibili per la connessione appena creata.</p><p>Premi il bottone <b>Crea</b> per lanciare l'Assistente <i>Nuovo Disco Virtuale</i> e creare un nuovo disco rigido, o premi il bottone <b>Seleziona</b> per aprire il <i>Gestore di Dischi Virtuali</i> e decidere il da farsi.</p> - - - &Create - hard disk - &Crea - - - Select - hard disk - Seleziona - - <p>Could not enter seamless mode due to insufficient guest video memory.</p><p>You should configure the virtual machine to have at least <b>%1</b> of video memory.</p> <p>Impossibile abilitare la modalità trasparente per memoria video insufficiente nel sistema guest.</p><p>È necessario configurare la macchina virtuale assegnandole almeno <b>%1</b> di memoria video.</p> @@ -5922,14 +5682,6 @@ <p>La macchina virtuale segnala che il sistema guest supporta <b>integrazione del puntatore del mouse</b>. Ciò significa che non è necessario <i>acquisire</i> il puntatore del mouse per poterlo utilizzare nel sistema guest -- tutte le azioni del mouse eseguite quando il puntatore si trova sullo schermo della macchina virtuale sono inviate direttamente al sistema guest. Se è il mouse è stato acquisito, sarà automaticamente liberato.</p><p>L'icona del mouse nella barra di stato apparirà come &nbsp;<img src=:/mouse_seamless_16px.png/>&nbsp; per informarti che l'integrazione del puntatore del mouse è supportata dal sistema guest ed è attiva.</p><p><b>Nota</b>: alcune applicazioni potrebbero non funzionare correttamente nella modalità di integrazione del puntatore del mouse. Puoi sempre disabilitarla per la sessione corrente (per poi riabilitarla) selezionando l'azione corrispondente nella barra dei menu.</p> - <p>The virtual machine window will be now switched to <b>fullscreen</b> mode. You can go back to windowed mode at any time by pressing <b>%1</b>. Note that the <i>Host</i> key is currently defined as <b>%2</b>.</p><p>Note that the main menu bar is hidden in fullscreen mode. You can access it by pressing <b>Host+Home</b>.</p> - <p>La finestra della macchina virtuale passerà ora in modalità a <b>schermo intero</b>. È possibile tornare alla modalità finestra in un qualsiasi momento premendo <b>%1</b>. Nota che il tasto <i>Host</i> è definito attualmente come <b>%2</b>.</p><p>Il menu principale viene nascosto in modalità a schermo intero. È possibile accedervi premendo <b>Host+Home</b>.</p> - - - <p>The virtual machine window will be now switched to <b>Seamless</b> mode. You can go back to windowed mode at any time by pressing <b>%1</b>. Note that the <i>Host</i> key is currently defined as <b>%2</b>.</p><p>Note that the main menu bar is hidden in seamless mode. You can access it by pressing <b>Host+Home</b>.</p> - <p>La finestra della macchina virtuale passerà ora portata in modalità <b>trasparente</b>. È possibile tornare alla modalità finestra in un qualsiasi momento premendo <b>%1</b>. Nota che il tasto <i>Host</i> è definito attualmente come <b>%2</b>.</p><p>Il menu principale viene nascosto in modalità trasparente. È possibile accedervi premendo <b>Host+Home</b>.</p> - - &Contents... &Contenuti... @@ -6003,10 +5755,6 @@ La finestra successiva ti consentirà di scegliere se eliminare l'unità di archiviazione del disco fisso o mantenerla per usi futuri. - <p>Note that the storage unit of this medium will not be deleted and that it will be possible to add it to the list later again.</p> - <p>Nota che l'unità di archiviazione di questo supporto non sarà eliminata e, per questo motivo, sarà possibile aggiungerla nuovamente all'elenco.</p> - - Remove medium Rimuovi @@ -6034,30 +5782,10 @@ Eliminazione dell'unità di archiviazione del disco fisso <b>%1</b> non riuscita. - <p>There are no unused hard disks available for the newly created attachment.</p><p>Press the <b>Create</b> button to start the <i>New Virtual Disk</i> wizard and create a new hard disk, or press the <b>Select</b> if you wish to open the <i>Virtual Media Manager</i>.</p> - <p>Non ci sono dischi fissi inutilizzati per il collegamento appena creato.</p><p>Premi il pulsante <b>Crea</b> per iniziare la procedura guidata <i>Nuovo disco virtuale</i> e crea un nuovo disco fisso, o premi il pulsante <b>Seleziona</b> per aprire il <i>Gestore supporti virtuali</i> e scegliere cosa fare.</p> - - Failed to create the hard disk storage <nobr><b>%1</b>.</nobr> Creazione non riuscita del disco fisso <nobr><b>%1</b>.</nobr> - Failed to attach the hard disk <nobr><b>%1</b></nobr> to slot <i>%2</i> of the machine <b>%3</b>. - Collegamento non riuscito del disco fisso <nobr><b>%1</b></nobr> allo slot <i>%2</i> della macchina <b>%3</b>. - - - Failed to detach the hard disk <nobr><b>%1</b></nobr> from slot <i>%2</i> of the machine <b>%3</b>. - Rimozione del collegamento non riuscita per il disco fisso <nobr><b>%1</b></nobr> dallo slot <i>%2</i> della macchina <b>%3</b>. - - - Failed to mount the %1 <nobr><b>%2</b></nobr> on the machine <b>%3</b>. - Impossibile montare il %1 <nobr><b>%2</b></nobr> sulla macchina <b>%3</b>. - - - Failed to unmount the %1 <nobr><b>%2</b></nobr> from the machine <b>%3</b>. - Impossibile smontare il %1 <nobr><b>%2</b></nobr> dalla macchina <b>%3</b>. - - Failed to open the %1 <nobr><b>%2</b></nobr>. Apertura non riuscita del %1 <nobr><b>%2</b></nobr>. @@ -6075,79 +5803,25 @@ <p>Unable to obtain the new version information due to the following error:</p><p><b>%1</b></p> - <p>Impossibile ottenere informazioni sulla nuova versione a causa del seguente errore:</p><p><b>%1</b></p> + <p>Impossibile ottenere informazioni sulla nuova versione a causa del seguente errore:</p><p><b>%1</b></p> <p>One or more virtual hard disks, CD/DVD or floppy media are not currently accessible. As a result, you will not be able to operate virtual machines that use these media until they become accessible later.</p><p>Press <b>Check</b> to open the Virtual Media Manager window and see what media are inaccessible, or press <b>Ignore</b> to ignore this message.</p> <p>Uno o più dischi fissi virtuali, CD/DVD o floppy non sono la momento accessibili. Ciò significa che non sarai in grado di operare con le macchine virtuali che utilizzano questi supporti fino a quando non ritorneranno accessibili.</p><p>Premi <b>Controlla</b> per aprire la finestra del gestore supporti virtuali e vedere quali supporti non sono accessibili, o premi <b>Ignora</b> per ignorare questo messaggio.</p> - <p>Your existing VirtualBox settings files were automatically converted from the old format to a new format required by the new version of VirtualBox.</p><p>Press <b>OK</b> to start VirtualBox now or press <b>More</b> if you want to get more information about what files were converted and access additional actions.</p><p>Press <b>Exit</b> to terminate the VirtualBox application without saving the results of the conversion to disk.</p> - <p>I file delle impostazioni di VirtualBox sono stati convertiti automaticamente dal vecchio formato al nuovo richiesto dalla nuova versione di VirtualBox.</p><p>Premi <b>OK</b> per avviare VirtualBox o premi <b>Altro</b> se desideri maggiori informazioni su quali file sono stati convertiti e accedere ad azioni aggiuntive.</p><p>Premi <b>Esci</b> per terminare VirtualBox senza salvare i risultati della conversione su disco.</p> - - - &More - warnAboutAutoConvertedSettings message box - &Altro - - - E&xit - warnAboutAutoConvertedSettings message box - &Esci - - - <p>The following VirtualBox settings files have been automatically converted to the new settings file format version <b>%1</b>.</p><p>However, the results of the conversion were not saved back to disk yet. Please press:</p><ul><li><b>Backup</b> to create backup copies of the settings files in the old format before saving them in the new format;</li><li><b>Overwrite</b> to save all auto-converted files without creating backup copies (it will not be possible to use these settings files with an older version of VirtualBox afterwards);</li>%2</ul><p>It is recommended to always select <b>Backup</b> because in this case it will be possible to go back to the previous version of VirtualBox (if necessary) without losing your current settings. See the VirtualBox Manual for more information about downgrading.</p> - <p>I seguenti file delle impostazioni di VirtualBox sono stati convertiti automaticamente al nuovo formato della versione <b>%1</b>.</p><p>Comunque, i risultati della conversione non sono ancora stati salvati su disco. Premi: </p><ul><li><b>Backup</b> per creare delle copie di sicurezza dei file delle impostazioni nel vecchio formato prima di salvarli nel nuovo formato;</li><li><b>Sovrascrivi</b> per salvare tutti i file convertiti senza creare copie di sicurezza (dopo non sarà possibile utilizzare questi file con una versione più datata di VirtualBox);</li>%2</ul><p>È consigliato selezionare sempre <b>Backup</b> perché in questo caso sarà possibile tornare alla vecchia versione di VirtualBox (se necessario) senza perdere le impostazioni correnti. Vedi il manuale di VirtualBox per ulteriori informazioni sull'operazione di downgrade.</p> - - - <li><b>Exit</b> to terminate VirtualBox without saving the results of the conversion to disk.</li> - <li><b>Esci</b> per terminare VirtualBox senza salvare il risultato della conversione su disco.</li> - - - O&verwrite - warnAboutAutoConvertedSettings message box - So&vrascrivi - - <p>A critical error has occurred while running the virtual machine and the machine execution has been stopped.</p><p>For help, please see the Community section on <a href=http://www.virtualbox.org>http://www.virtualbox.org</a> or your support contract. Please provide the contents of the log file <tt>VBox.log</tt> and the image file <tt>VBox.png</tt>, which you can find in the <nobr><b>%1</b></nobr> directory, as well as a description of what you were doing when this error happened. Note that you can also access the above files by selecting <b>Show Log</b> from the <b>Machine</b> menu of the main VirtualBox window.</p><p>Press <b>OK</b> if you want to power off the machine or press <b>Ignore</b> if you want to leave it as is for debugging. Please note that debugging requires special knowledge and tools, so it is recommended to press <b>OK</b> now.</p> <p>Si è verificato un errore critico durante il funzionamento della macchina virtuale e l'esecuzione della macchina è stata fermata.</p><p>Per ottenere aiuto, vedi la sezione Community su <a href=http://www.virtualbox.org>http://www.virtualbox.org</a> o il contratto di supporto. Fornisci il contenuto del file di log <tt>VBox.log</tt> e il file immagine <tt>VBox.png</tt>, che puoi trovare nella cartella <nobr><b>%1</b></nobr>, così come una descrizione di cosa stavi facendo quando si è verificato l'errore. Nota che puoi anche accedere ai suddetti file selezionando <b>Mostra log</b> dal menu <b>Macchina</b> della finestra principale di VirtualBox. </p><p>Premi <b>OK</b> se vuoi spegnere la macchina o <b>Ignora</b> se desideri lasciarla così com'è per debug. Nota che il debug richiede conoscenza particolare e strumenti, perciò è consigliato premere <b>OK</b> subito.</p> - hard disk - failed to close ... - disco fisso - - - CD/DVD image - failed to close ... - immagine CD/DVD - - - floppy image - failed to close ... - immagine floppy - - - A file named <b>%1</b> already exists. Are you sure you want to replace it?<br /><br />The file already exists in "%2". Replacing it will overwrite its contents. - Un file con nome <b>%1</b> esiste già. Sei sicuro di volerlo sostituire?<br /><br /> Il file esiste in "%2". Sostituendolo sovrascriverai il suo contenuto. - - The following files already exist:<br /><br />%1<br /><br />Are you sure you want to replace them? Replacing them will overwrite their contents. I seguenti file esistono già:<br /><br />%1<br /><br />Sei sicuro di volerli sostituire? Sostituendoli sovrascriverai il loro contenuto. - Failed to remove the file <b>%1</b>.<br /><br />Please try to remove the file yourself and try again. - Rimozione del file <b>%1</b> non riuscita.<br /><br />Prova a rimuovere manualmente il file e prova ancora. - - You are running a prerelease version of VirtualBox. This version is not suitable for production use. Stai eseguendo una versione di VirtualBox che precede il rilascio finale. Questa versione non è appropriata per un uso di produzione. - Could not access USB on the host system, because neither the USB file system (usbfs) nor the DBus and hal services are currently available. If you wish to use host USB devices inside guest systems, you must correct this and restart VirtualBox. - Impossibile accedere all'USB del sistema host, poiché né il file system USB (usbfs) né i servizi hal e DBus sono attualmente disponibili. Se desideri utilizzare dispositivi USB nei sistemi guest, devi apportare le dovute modifiche e riavviare VirtualBox. - - You are trying to shut down the guest with the ACPI power button. This is currently not possible because the guest does not support software shutdown. Stai cercando di spegnere il guest con il pulsante di alimentazione ACPI. Al momento non è possibile perché il guest non usa il sottosistema ACPI. @@ -6164,35 +5838,10 @@ Continua - <p>Are you sure you wish to delete the selected snapshot and saved state?</p> - <p>Sei sicuro di voler eliminare l'istantanea selezionata e lo stato salvato?</p> - - - Discard - Scarta - - Cancel Annulla - <p>There are hard disks attached to ports of the additional controller. If you disable the additional controller, all these hard disks will be automatically detached.</p><p>Are you sure you want to disable the additional controller?</p> - <p>Ci sono dischi fissi collegati a porte di un controller aggiuntivo. Se disabiliti il controller aggiuntivo, tutti questi dischi saranno scollegati automaticamente.</p><p>Sei sicuro di voler disabilitare il controller aggiuntivo?</p> - - - <p>There are hard disks attached to ports of the additional controller. If you change the additional controller, all these hard disks will be automatically detached.</p><p>Are you sure you want to change the additional controller?</p> - <p>Ci sono dischi fissi collegati a porte di un controller aggiuntivo. Se modifichi il controller aggiuntivo, tutti questi dischi saranno scollegati automaticamente.</p><p>Sei sicuro di voler modificare il controller aggiuntivo?</p> - - - Change - hard disk - Cambia - - - <p>Do you want to remove the selected host network interface <nobr><b>%1</b>?</nobr></p><p><b>Note:</b> This interface may be in use by one or more network adapters of this or another VM. After it is removed, these adapters will no longer work until you correct their settings by either choosing a different interface name or a different adapter attachment type.</p> - <p>Vuoi rimuovere l'interfaccia di rete host <nobr><b>%1</b> selezionata?</nobr></p><p><b>Nota:</b> Questa interfaccia potrebbe essere utilizzata da una o più schede di rete di questa o di un'altra MV. Dopo la sua rimozione, queste schede non funzioneranno fino alla correzione delle impostazioni con la scelta di un nome diverso per l'interfaccia o con un tipo di collegamento diverso della scheda.</p> - - Failed to create the host-only network interface. Creazione dell'interfaccia di rete solo-host non riuscita. @@ -6265,10 +5914,6 @@ Stai utilizzando una versione SPERIMENTALE di VirtualBox. Questa versione non è appropriata per un uso in produzione. - <p>Are you sure you want to restore snapshot <b>%1</b>? This will cause you to lose your current machine state, which cannot be recovered.</p> - <p>Sei sicuro di voler ripristinare l'istantanea <b>%1</b>? Ciò causerà la perdita dello stato attuale della macchina, che non può essere ripristinato.</p> - - Restore Ripristina @@ -6289,28 +5934,6 @@ Eliminazione dell'istantanea <b>%1</b> della macchina virtuale <b>%2</b> non riuscita. - &Create - medium - &Crea - - - &Select - medium - &Seleziona - - - <p>There are no unused media available for the newly created attachment.</p><p>Press the <b>Select</b> if you wish to open the <i>Virtual Media Manager</i>.</p> - <p>Non ci sono supporti inutilizzati disponibile per il collegamento appena creato.</p><p>Premi <b>Seleziona</b> se desideri aprire il <i>Gestore supporti virtuali</i>.</p> - - - Failed to attach the %1 to slot <i>%2</i> of the machine <b>%3</b>. - Collegamento del %1 allo slot <i>%2</i> della macchina <b>%3</b>. - - - Failed to detach the %1 from slot <i>%2</i> of the machine <b>%3</b>. - Scollegamento del %1 dallo slot <i>%2</i> della macchina <b>%3</b>. - - Unable to mount the %1 <nobr><b>%2</b></nobr> on the machine <b>%3</b>. Impossibile montare il %1 <nobr><b>%2</b></nobr> sulla macchina <b>%3</b>. @@ -6331,12 +5954,8 @@ Forza la rimozione - Failed to eject the disk from the virtual drive. The drive may be locked by the guest operating system. Please check this and try again. - Espulsione del disco dal lettore virtuale non riuscito. Il lettore potrebbe essere bloccato dal sistema operativo guest. Controlla e prova ancora. - - <p>Could not insert the VirtualBox Guest Additions installer CD image into the virtual machine <b>%1</b>, as the machine has no CD/DVD-ROM drives. Please add a drive using the storage page of the virtual machine settings dialog.</p> - + <p>Impossibile inserire l'immagine del CD di installazione delle Guest Additions di VirtualBox nella macchina virtuale<b>%1</b>, poiché la macchina non ha alcun lettore CD/DVD-ROM. Aggiungi un lettore dalla pagina di archiviazione della finestra delle impostazioni della macchina virtuale.</p> E&xit @@ -6373,21 +5992,6 @@ immagine floppy - hard disk - failed to attach ... - disco fisso - - - CD/DVD device - failed to attach ... - dispositivo CD/DVD - - - floppy device - failed to close ... - dispositivo floppy - - <p>Are you sure you want to delete the CD/DVD-ROM device?</p><p>You will not be able to mount any CDs or ISO images or install the Guest Additions without it!</p> <p>Sei sicuro di voler eliminare il dispositivo CD/DVD-ROM?</p><p>Senza non potrai montare alcun CD o immagine ISO o installare le Guest Additions!</p> @@ -6434,7 +6038,7 @@ <p>Failed to download the VirtualBox User Manual from <nobr><a href="%1">%2</a>.</nobr></p><p>%3</p> - <p>Impossibile scaricare il manuale utente di VirtualBox da <nobr><a href="%1">%2</a>.</nobr></p><p>%3</p> + <p>Impossibile scaricare il manuale utente di VirtualBox da <nobr><a href="%1">%2</a>.</nobr></p><p>%3</p> <p>The VirtualBox User Manual has been successfully downloaded from <nobr><a href="%1">%2</a></nobr> and saved locally as <nobr><b>%3</b>.</nobr></p> @@ -6454,11 +6058,11 @@ <p>You are about to remove the virtual machine <b>%1</b> from the machine list.</p><p>Would you like to delete the files containing the virtual machine from your hard disk as well?</p> - <p>Stai per rimuovere la macchina virtuale <b>%1</b> dall'elenco.</p><p>Vuoi eliminare anche i file contenenti la macchina virtuale dal disco fisso?<p> + <p>Stai per rimuovere la macchina virtuale <b>%1</b> dall'elenco.</p><p>Vuoi eliminare anche i file contenenti la macchina virtuale dal disco fisso?<p> <p>You are about to remove the virtual machine <b>%1</b> from the machine list.</p><p>Would you like to delete the files containing the virtual machine from your hard disk as well? Doing this will also remove the files containing the machine's virtual hard disks if they are not in use by another machine.</p> - <p>Stai per rimuovere la macchina virtuale inaccessibile <b>%1</b> dall'elenco.</p><p>Vuoi eliminare anche i file contenenti la macchina virtuale dal disco fisso? Questa operazione rimuoverà anche i file che contengono i dischi fissi virtuali della macchina se non sono utilizzati da un'altra macchina.</p> + <p>Stai per rimuovere la macchina virtuale inaccessibile <b>%1</b> dall'elenco.</p><p>Vuoi eliminare anche i file contenenti la macchina virtuale dal disco fisso? Questa operazione rimuoverà anche i file che contengono i dischi fissi virtuali della macchina se non sono utilizzati da un'altra macchina.</p> Delete all files @@ -6470,7 +6074,7 @@ You are about to remove the inaccessible virtual machine <b>%1</b> from the machine list. Do you wish to proceed? - Stai per rimuovere la macchina virtuale inaccessibile <b>%1</b> dall'elenco. Desideri procedere? + Stai per rimuovere la macchina virtuale inaccessibile <b>%1</b> dall'elenco. Desideri procedere? Remove @@ -6520,13 +6124,9 @@ Failed to detach the floppy device (<nobr><b>%1</b></nobr>) from the slot <i>%2</i> of the machine <b>%3</b>. Scollegamento del dispositivo floppy (<nobr><b>%1</b></nobr>) allo slot <i>%2</i> della macchina <b>%3</b> non riuscito. - - <p>The VirtualBox Guest Additions do not appear to be available on this virtual machine, and shared folders cannot be used without them. To use shared folders inside the virtual machine, please install the Guest Additions if they are not installed, or re-install them if they are not working correctly, by selecting <b>Install Guest Additions</b> from the <b>Machine</b> menu. If they are installed but the machine is not yet fully started then shared folders will be available once it is.</p> - <p>Le Guest Additions di VirtualBox non sembrano essere disponibile nella macchina virtuale, e le cartelle condivise non possono essere utilizzate senza di esse. Per utilizzare le cartelle condivise nella macchina virtuale, installa le Guest Additions se non sono installate, o installale nuovamente se non funzionano correttamente, selezionando <b>Installa Guest Additions</b> dal menu <b>Macchina</b>. Se sono installate, ma la macchina non è completamente avviata, le cartelle condivise saranno disponibili solo ad avvio completato.</p> - - <p>The virtual machine(s) <b>%1</b> are currently in a saved state.</p><p>If you continue the runtime state of the exported machine(s) will be discarded. Note that the existing machine(s) are not changed.</p> - + <p>The %n following virtual machine(s) are currently in a saved state: <b>%1</b></p><p>If you continue the runtime state of the exported machine(s) will be discarded. The other machine(s) will not be changed.</p> + <p>La macchina virtuale <b>%1</b> è attualmente in uno stato salvato.</p><p>Se continui, lo stato di esecuzione della macchina esportata sarà scartato. Nota che la macchina esistente non viene modificata.</p> <p>Le macchine virtuali <b>%1</b> sono attualmente in uno stato salvato.</p><p>Se continui, lo stato di esecuzione delle macchine esportate sarà scartato. Nota che le macchine esistenti non sono modificate.</p> @@ -6544,10 +6144,6 @@ Disinstallazione dell'Extension Pack <b>%1</b> non riuscita. - You are about to remove the Extension Pack <b>%1</b>. Are you sure you want to do that? - Stai per rimuovere l'Extension Pack <b>%1</b>. Sei sicuro di volerlo fare? - - &Remove &Rimuovi @@ -6560,10 +6156,6 @@ <p>Ci sono modifiche non salvate nella configurazione di inoltro delle porte.</p><p>Se procedi, tali modifiche saranno scartate.</p> - Sorry, some generic error happens. - Spiacenti, si sono verificati alcuni errori generici. - - Failed to attach the hard disk (<nobr><b>%1</b></nobr>) to the slot <i>%2</i> of the machine <b>%3</b>. Collegamento del disco fisso (<nobr><b>%1</b></nobr>) allo slot <i>%2</i> della macchina <b>%3</b> non riuscito. @@ -6649,18 +6241,10 @@ Il pacchetto di estensione <br><nobr><b>%1</b><nobr><br> è stato installato correttamente. - Deletion of all files belonging to the VM is currently disabled on Windows/x64 to prevent a crash. That will be fixed in the next release. - L'eliminazione di tutti i file che appartengono alla MV è attualmente disabilitata su Windows/x64 per evitare una chiusura inattesa. Il problema sarà corretto nella prossima versione. - - <p>Cannot create the machine folder <b>%1</b> in the parent folder <nobr><b>%2</b>.</nobr></p><p>Please check that the parent really exists and that you have permissions to create the machine folder.</p> <p>Impossibile creare la cartella della macchina <b>%1</b> nella cartella superiore <nobr><b>%2</b>.</nobr></p><p>Controlla che tale cartella esista davvero e di avere i permessi per creare la cartella della macchina.</p> - <p>USB 2.0 is currently enabled for this virtual machine. However this requires the <b><nobr>%1</nobr></b> to be installed.</p><p>Please install the Extension Pack from the VirtualBox download site. After this you will be able to re-enable USB 2.0. It will be disabled in the meantime unless you cancel the current settings changes.</p> - <p>USB 2.0 è attualmente abilitato per questa macchina virtuale. In ogni caso, ciò richiede che <b><nobr>%1</nobr></b> sia installato. Installa l'Extension Pack dal sito di VirtualBox. Una volta installato, sarà possibile ri-abilitare USB 2.0. Nel frattempo sarà disabilitato a meno che annulli le modifiche correnti alle impostazioni.</p> - - Failed to register the virtual machine <b>%1</b>. La registrazione della macchina virtuale <b>%1</b> non è riuscita. @@ -6701,6 +6285,10 @@ <p>Errore durante il cambiamento del tipo di supporto da <b>%1</b> a <b>%2</b>.</p> + Sorry, some generic error happens. + Spiacenti, si sono verificati alcuni errori generici. + + <p>USB 2.0 is currently enabled for this virtual machine. However, this requires the <b><nobr>%1</nobr></b> to be installed.</p><p>Please install the Extension Pack from the VirtualBox download site. After this you will be able to re-enable USB 2.0. It will be disabled in the meantime unless you cancel the current settings changes.</p> <p>USB 2.0 è attualmente abilitato per questa macchina virtuale. In ogni caso, ciò richiede che <b><nobr>%1</nobr></b> sia installato.</p><p>Installa l'Extension Pack dal sito di VirtualBox. Dopo potrai riabilitare l'USB 2.0. Nel frattempo, sarà disabilitato a meno che tu non annulli le modifiche correnti.</p> @@ -6760,4095 +6348,4208 @@ <p>Failed to download the <b><nobr>%1</nobr></b> from <nobr><a href="%2">%2</a>.</nobr></p><p>%3</p> - <p>Scaricamento del <b><nobr>%1</nobr></b> non riuscita da <nobr><a href="%2">%2</a>.</nobr></p><p>%3</p> + <p>Scaricamento del <b><nobr>%1</nobr></b> non riuscita da <nobr><a href="%2">%2</a>.</nobr></p><p>%3</p> - Network Operations Manager... - Gestore delle operazioni di rete... + <p>You have version %1 of the <b><nobr>%2</nobr></b> installed.</p><p>You should download and install version %3 of this extension pack from Oracle!</p> + <p>La versione installata del <b><nobr>%2</nobr></b> è la %1.</p><p>Dovresti scaricare e installare la versione %3 di questo pacchetto di estensione da Oracle!</p> - Show Network Operations Manager - Mostra il gestore delle operazioni di rete + Ok + extension pack + - <p>You are about to remove following inaccessible virtual machines from the machine list:</p><p>%1</p><p>Do you wish to proceed?</p> - <p>Stai per rimuovere le seguenti macchine virtuali non accessibili dall'elenco:</p><p>%1</p><p>Vuoi continuare?</p> + <p>Failed to load the global GUI configuration.</p><p>The application will now terminate.</p> + <p>Fallimento nel caricamento della configurazione globale della GUI.</p><p>L'applicazione verrà ora chiusa.</p> - <p>You are about to remove following virtual machines from the machine list:</p><p>%1</p><p>Would you like to delete the files containing the virtual machine from your hard disk as well? Doing this will also remove the files containing the machine's virtual hard disks if they are not in use by another machine.</p> - <p>Stai per rimuovere le seguenti macchine virtuali dall'elenco: </p><p>%1</p><p>Vuoi eliminare anche i file contenenti la macchina virtuale dal disco fisso? Questa operazione rimuoverà anche i file che contengono i dischi fissi virtuali della macchina se non sono utilizzati da un'altra macchina.</p> + <p>Failed to save the global GUI configuration.<p> + <p>Fallimento nel salvataggio della configurazione globale della GUI.<p> - <p>You are about to remove following virtual machines from the machine list:</p><p>%1</p><p>Would you like to delete the files containing the virtual machine from your hard disk as well?</p> - <p>Stai per rimuovere la seguente macchina virtuale dall'elenco:</p><p>%1</p><p>Vuoi eliminare anche i file contenenti la macchina virtuale dal disco fisso?<p> + Failed to save the settings of the virtual machine <b>%1</b>. + Salvataggio delle impostazioni della Macchina Virtuale <b>%1</b> non riuscito. - <p>You have version %1 of the <b><nobr>%2</nobr></b> installed.</p><p>You should download and install version %3 of this extension pack from Oracle!</p> - <p>È installata la versione %1 di <b><nobr>%2</nobr></b>.</p><p>Dovresti scaricare e installare la versione %3 dell'extension pack da Oracle!</p> + Failed to load the settings of the virtual machine <b>%1</b>. + Caricamento delle impostazioni della Macchina Virtuale <b>%1</b> non riuscito. - Ok - extension pack - Ok + Failed to discard the snapshot <b>%1</b> of the virtual machine <b>%2</b>. + Scarto dell'istantanea <b>%1</b> della Macchina Virtuale <b>%2</b> non riuscito. - Do you wish to cancel all current network operations? - Vuoi annullare tutte le operazioni di rete correnti? + Failed to discard the current state of the virtual machine <b>%1</b>. + Scarto dello stato attuale della Macchina Virtuale <b>%1</b> non riuscito. - Do you wish to cancel all current network operations or leave them running in the background? - Vuoi annullare tutte le operazioni di rete correnti o lasciarle in esecuzione sullo sfondo? + Failed to discard the current snapshot and the current state of the virtual machine <b>%1</b>. + Scarto dell'istantanea corrente e dello stato corrente della Macchina Virtuale <b>%1</b> non riuscito. - Cancel All - Annulla tutto + <p>Are you sure you want to permanently delete the virtual machine <b>%1</b>?</p><p>This operation cannot be undone.</p> + <p>Sei sicuro di voler eliminare definitivamente la Macchina Virtuale <b>%1</b>?</p><p>Questa operazione non può essere annullata.</p> - Leave in Background - Esecuzione sullo sfondo + <p>Are you sure you want to unregister the inaccessible virtual machine <b>%1</b>?</p><p>You will not be able to register it again from GUI.</p> + <p>Sei sicuro di voler deregistrare la Macchina Virtuale <b>%1</b> inaccessibile?</p><p>Non potrai registrarla nuovamente dalla GUI.</p> - <p>Do you really want to send an ACPI shutdown signal to the virtual machine?</p> - <p>Vuoi davvero inviare un segnale ACPI di shutdown alla macchina virtuale?</p> + <p>Releasing this media image will detach it from the following virtual machine(s): <b>%1</b>.</p><p>Continue?</p> + <p>Il rilascio di questa immagine lo scollegherà dalle seguenti Macchine Virtuali: +<b>%1</b>.</p><p>Continuare?</p> - ACPI Shutdown - machine - Shutdown ACPI + <p>The image file <b>%1</b> already exists. You cannot create a new virtual hard disk that uses this file, because it can be already used by another virtual hard disk.</p><p>Please specify a different image file name.</p> + <p>Il file immagine <b>%1</b> esiste già. Non puoi creare un nuovo hard disk virtuale che utilizzi questo file, perché potrebbe già essere usato da un altro hard disk virtuale.</p><p>Specifica un nome file diverso.</p> - <p>Do you really want to power off the virtual machine?</p><p>This will cause any unsaved data in applications running inside it to be lost.</p> - <p>Vuoi davvero spegnere la macchina virtuale?</p><p>Tutti i dati non salvati di tutte le applicazioni in esecuzione saranno persi.</p> + <p>Do you want to delete this hard disk's image file <nobr><b>%1</b>?</nobr></p><p>If you select <b>No</b> then the virtual hard disk will be unregistered and removed from the collection, but the image file will be left on your physical disk.</p><p>If you select <b>Yes</b> then the image file will be permanently deleted after unregistering the hard disk. This operation cannot be undone.</p> + <p>Vuoi eliminare il file immagine di questo hard disk <nobr><b>%1</b>?</nobr></p><p>Se scegli <b>No</b> l'hard disk virtuale sarà deregistrato e rimosso dall'elenco, ma il file immagine sarà lasciato nel tuo disco fisico.</p><p>Se scegli <b>Sì</b> il file immagine sarà rimosso definitivamente dopo la deregistrazione dell'hard disk. Questa operazione non può essere annullata.</p> - Power Off - machine - Spegni + Failed to delete the virtual hard disk image <b>%1</b>. + Rilevazione dell'immagine hard disk virtuale <b>%1</b> non riuscita. - Failed to drop data. - Eliminazione dati non riuscita. + <p>Do you want to remove (unregister) the virtual hard disk <nobr><b>%1</b>?</nobr></p> + <p>Vuoi rimuovere (deregistrare) l'hard disk virtuale <nobr><b>%1</b>?</nobr></p> - - - UIMiniProcessWidgetAdditions - Cancel - Annulla + Failed to create the virtual hard disk image <nobr><b>%1</b>.</nobr> + Creazione dell'immagine hard disk virtuale <nobr><b>%1</b> non riuscita.</nobr> - Cancel the VirtualBox Guest Additions CD image download - Annulla lo scaricamento dell'immagine CD di VirtualBox Guest Additions + Failed to attach a hard disk image with UUID %1 to the device slot %2 of the controller %3 of the machine <b>%4</b>. + Collegamento di un'immagine hard disk con UUID %1 allo slot dispositivo %2 del controller %3 della macchina <b>%4</b> non riuscito. - Downloading the VirtualBox Guest Additions CD image from <nobr><b>%1</b>...</nobr> - Sto scaricando l'immagine CD di VirtualBox Guest Additions da <nobr><b>%1</b>...</nobr> + Failed to detach a hard disk image from the device slot %1 of the controller %2 of the machine <b>%3</b>. + Disconnessione di un'immagine hard disk dallo slot dispositivo %1 del controller %2 della macchina <b>%3</b> non riuscita. - - - UIMiniProcessWidgetUserManual - Cancel - Annulla + hard disk + hard disk - Cancel the VirtualBox User Manual download - Annulla lo scaricamento del manuale utente di VirtualBox + CD/DVD image + immagine CD/DVD - Downloading the VirtualBox User Manual - Sto scaricando il manuale utente di VirtualBox + floppy image + immagine floppy - Downloading the VirtualBox User Manual <nobr><b>%1</b>...</nobr> - Sto scaricando il manuale utente di VirtualBox da <nobr><b>%1</b>...</nobr> + Failed to register the %1 <nobr><b>%2</b></nobr>. + Registrazione del %1 <nobr><b>%2</b></nobr> non riuscita. - - - UIMiniProgressWidgetAdditions - Cancel the VirtualBox Guest Additions CD image download - Annulla lo scaricamento dell'immagine del CD delle Guest Additions di VirtualBox + Failed to unregister the %1 <nobr><b>%2</b></nobr>. + Deregistrazione del %1 <nobr><b>%2</b></nobr> non riuscita. - Downloading the VirtualBox Guest Additions CD image from <nobr><b>%1</b>...</nobr> - Scaricamento dell'immagine del CD delle Guest Additions di VirtualBox da <nobr><b>%1</b>...</nobr> + Failed to open a session for a virtual machine with UUID <b>%1</b>. + Apertura di una sessione per la Macchina Virtuale con UUID <b>%1</b> non riuscita. - - - UIMiniProgressWidgetExtension - Cancel the <nobr><b>%1</b></nobr> download - Annulla lo scaricamento di <nobr><b>%1</b></nobr> + Failed to determine the accessibility state of the media <nobr><b>%1</b></nobr>. Some of the registered media may become inaccessible. + Recupero dello stato di accessibilità del media <nobr><b>%1</b></nobr> non riuscito. Alcuni dei media registrati potrebbero diventare inaccessibili. - Downloading the <nobr><b>%1</b></nobr> from <nobr><b>%2</b>...</nobr> - Scaricamento di <nobr><b>%1</b></nobr> da <nobr><b>%2</b> in corso...</nobr> + Failed to create the host network interface <b>%1</b>. + Creazione dell'interfaccia di rete host <b>%1</b> non riuscita. - - - UIMultiScreenLayout - Virtual Screen %1 - Schermo virtuale %1 + <p>One or more of the registered virtual hard disks, CD/DVD or floppy media are not currently accessible. As a result, you will not be able to operate virtual machines that use these media until they become accessible later.</p><p>Press <b>OK</b> to open the Virtual Disk Manager window and see what media are inaccessible, or press <b>Ignore</b> to ignore this message.</p> + <p>Uno o più hard disk virtuali, CD/DVD o floppy registrati non sono attualmente accessibili. Come risultato, non potrai utilizzare Macchine Virtuali che sfruttino tali media finché non siano nuovamente accessibili.</p><p>Premi <b>OK</b> per aprire il Gestore di dischi virtuali e vedere quali sono i media inaccessbili, o premi <b>Ignora</b> per ignorare questo messaggio.</p> - Use Host Screen %1 - Usa schermo %1 dell'host + <p>The virtual machine window will be now switched to <b>fullscreen</b> mode. You can go back to windowed mode at any time by pressing <b>%1</b>. Note that the <i>Host</i> key is currently defined as <b>%1</b>.</p> + <p>La finestra della macchina virtuale verrà ora commutata alla modalità <b>schermo intero</b>. Puoi tornare indietro alla modalità finestra in qualsiasi momento premendo <b>%1</b>. Nota che la <i>host key</i> è definita attualmente come <b>%1</b>.</p> - - - UINetworkManager - Network Operation - Operazione di rete + <p>The VirtualBox Guest Additions installed in the Guest OS are too old: the installed version is %1, the expected version is %2. Some features that require Guest Additions (mouse integration, guest display auto-resize) will most likely stop working properly.</p><p>Please update the Guest Additions to the current version by choosing <b>Install Guest Additions</b> from the <b>Devices</b> menu.</p> + <p>Le Guest Additions installate nel sistema Guest sono obsolete: la versione installata è %1, quella attesa è %2. Alcune funzionalità che richiedono Guest Additions (Integrazione mouse, auto-ridimensionamento dello schermo) probabilmente smetteranno di funzionare correttamente.</p><p>Aggiorna le Guest Additions alla versione attuale scegliendo <b>Installa Guest Additions</b> dal menu <b>Dispositivi</b>.</p> - Restart network operation - Riavvia l'operazione di rete + <p>The VirtualBox Guest Additions installed in the Guest OS are outdated: the installed version is %1, the expected version is %2. Some features that require Guest Additions (mouse integration, guest display auto-resize) may not work as expected.</p><p>It is recommended to update the Guest Additions to the current version by choosing <b>Install Guest Additions</b> from the <b>Devices</b> menu.</p> + <p>Le Guest Additions installate nel sistema Guest non sono aggiornate: la versione installata è %1, quella attesa è %2. Alcune funzionalità che richiedono Guest Additions (Integrazione Mouse, auto-ridimensionamento dello schermo) potrebbero non funzionare come ci si aspetta.</p><p>Si consiglia di aggiornare le Guest Additions alla versione attuale scegliendo <b>Installa Guest Additions</b> dal menu <b>Dispositivi</b>.</p> - Cancel network operation - Annulla l'operazione di rete + <p>The VirtualBox Guest Additions installed in the Guest OS are too recent for this version of VirtualBox: the installed version is %1, the expected version is %2.</p><p>Using a newer version of Additions with an older version of VirtualBox is not supported. Please install the current version of the Guest Additions by choosing <b>Install Guest Additions</b> from the <b>Devices</b> menu.</p> + <p>Le Guest Additions installate nel sistema Guest sono troppo recenti per questa versione di VirtualBox: la versione installata è %1, quella attesa è %2.</p><p>L'utilizzo di una versione di Additions più recente di VirtualBox non è supportato. Installa la versione corrente di Guest Additions scegliendo <b>Installa Guest Additions</b> dal menu <b>Dispositivi</b>.</p> - Error: %1. - Errore: %1. + Failed to change the snapshot folder path of the virtual machine <b>%1<b> to <nobr><b>%2</b></nobr>. + Impossibile modificare il percorso della cartella per le istantanee della macchina virtuale <b>%1<b> al valore <nobr><b>%2</b></nobr>. - Network Operations Manager - Gestore delle operazioni di rete + <p>Could not enter seamless mode due to insufficient guest video memory.</p><p>You should configure the VM to have at least <b>%1</b> of video memory.</p> + <p>Impossibile entrare in modalità trasparente per memoria video del sistema guest insufficente.</p><p>È necessario configurare la MV per avere almeno <b>%1</b> di memoria video.</p> - There are no active network operations. - Non ci sono operazioni di rete attive. + <p>The virtual machine window will be now switched to <b>fullscreen</b> mode. You can go back to windowed mode at any time by pressing <b>%1</b>. Note that the <i>Host</i> key is currently defined as <b>%1</b>.</p><p>Note that the main menu bar is hidden in fullscreen mode. You can access it by pressing <b>Host+Home</b>.</p> + <p>La finestra della macchina virtuale verrà ora portata in modalità <b>pieno schermo</b>. È possibile tornare alla modalità finestra in un qualsiasi momento premendo <b>%1</b>. Il tasto <i>Host</i> è definito attualmente come <b>%2</b>.</p><p>Il menu principale viene nascosto in modalità pieno schermo. È possibile accedervi premendo <b>Host+Home</b>.</p> - &Cancel All - A&nnulla tutto + <p>The virtual machine window will be now switched to <b>Seamless</b> mode. You can go back to windowed mode at any time by pressing <b>%1</b>. Note that the <i>Host</i> key is currently defined as <b>%1</b>.</p><p>Note that the main menu bar is hidden in seamless mode. You can access it by pressing <b>Host+Home</b>.</p> + <p>La finestra della macchina virtuale verrà ora portata in modalità <b>trasparente</b>. È possibile tornare alla modalità finestra in un qualsiasi momento premendo <b>%1</b>. Il tasto <i>Host</i> è definito attualmente come <b>%2</b>.</p><p>Il menu principale viene nascosto in modalità trasparente. È possibile accedervi premendo <b>Host+Home</b>.</p> - Cancel all active network operations - Annulla tutte le operazioni di rete + <p>A critical error has occurred while running the virtual machine and the machine execution has been stopped.</p><p>For help, please see the Community section on <a href=http://www.virtualbox.org>http://www.virtualbox.org</a> or your support contract. Please provide the contents of the log file <tt>VBox.log</tt> and the image file <tt>VBox.png</tt>, which you can find in the <nobr><b>%1</b></nobr> directory, as well as a description of what you were doing when this error happened. Note that you can also access the above files by selecting <b>Show Log</b> from the <b>Machine</b> menu of the main VirualBox window.</p><p>Press <b>OK</b> if you want to power off the machine or press <b>Ignore</b> if you want to leave it as is for debugging. Please note that debugging requires special knowledge and tools, so it is recommended to press <b>OK</b> now.</p> + <p>È avvenuto un errore critico durante l'esecuzione della macchina virtuale e quest'ultima è stata perciò fermata.</p><p>Per ottenere aiuto, si rimanda alla sezione Community su <a href=http://www.virtualbox.org>http://www.virtualbox.org</a> o al vostro contratto di supporto. Si prega di fornire i contenuti del file di log <tt>VBox.log</tt> e il file immagine <tt>VBox.png</tt>, che potete trovare nella directory <nobr><b>%1</b></nobr>, assieme alla descrizione di quello che si stava facendo quando è stato visualizzato il presente errore. Si noti che è possibile accedere ai file suindicati anche scegliendo <b>Visualizza log</b> dal menu <b>Macchina</b> o dalla finestra principale di VirtualBox.</p><p>Premere <b>OK</b> per spegnere la macchina o premere <b>Ignora</b> se si vuole lasciarla com'è per il debugging. Notare che il debugging richiede particolari conoscenze e strumenti, quindi è raccomandato premere <b>OK</b> in questo momento.</p> - - - UINewHDWizard - Create New Virtual Disk - Crea un nuovo disco virtuale + <p>Failed to connect to the VirtualBox online registration service.</p><p>%1</p> + <p>Impossibile connettersi al servizio di registrazione online di VirtualBox.</p><p>%1</p> - <p>This wizard will help you to create a new virtual hard disk image for your virtual machine.</p> -<p>Use the <b>Next</b> button to go to the next page of the wizard -and the <b>Back</b> button to return to the previous page.</p> - <p>Questa procedura guidata ti aiuterà a creare una nuova immagine disco virtuale per la tua macchina virtuale.</p> -<p>Usa il pulsante <b>Avanti</b> per passare alla pagina successiva della procedura guidata -e il pulsante <b>Indietro</b> per tornare a quella precedente.</p> + <p>Failed to register the VirtualBox product</p><p>%1</p> + <p>Impossibile registrare il prodotto VirtualBox</p><p>%1</p> - Welcome to the Create New Virtual Disk Wizard! - Benvenuto nella procedura guidata per la creazione di un nuovo disco virtuale! + <p>Failed to save the global VirtualBox settings to <b><nobr>%1</nobr></b>.</p> + <p>Impossibile salvare le impostazioni globali di VirtualBox su <b><nobr>%1</nobr></b>.</p> - <p>Select the type of virtual hard disk image you want to create.</p> -<p>A <b>dynamically expanding image</b> initially occupies a very small amount -of space on your physical hard disk. It will grow dynamically (up to -the size specified) as the Guest OS claims disk space.</p> -<p>A <b>fixed-size image</b> does not grow. It is stored in a file of approximately -the same size as the size of the virtual hard disk.</p> - <p>Scegli il tipo di immagine di disco virtuale che vuoi creare.</p> -<p>Un'immagine <b>ad espansione dinamica</b> occupa inizialmente -molto poco spazio nel disco fisico. Crescerà in maniera dinamica (fino alla -dimensione specificata), con il suo utilizzo da parte del sistema Guest.</p> -<p>Un'immagine <b>a dimensione fissa</b> non cresce. Viene creato -invece un file approssimativamente della stessa dimensione del disco -virtuale.</p> + Delete + machine + Rimuovi - Image Type - Tipo di immagine + Unregister + machine + De-registra - &Dynamically expanding image - Ad espansione &dinamica + Continue + detach image + Continua - Alt+D - Alt+D + <p>Do you want to delete this hard disk's image file <nobr><b>%1</b>?</nobr></p><p>If you select <b>Delete</b> then the image file will be permanently deleted after unregistering the hard disk. This operation cannot be undone.</p><p>If you select <b>Unregister</b> then the virtual hard disk will be unregistered and removed from the collection, but the image file will be left on your physical disk.</p> + <p>Vuoi eliminare il file immagine per questo disco rigido virtuale <nobr><b>%1</b>?</nobr></p><p>Se scegli <b>Elimina</b> il file immagine sarà cancellato permanentemente dopo la de-registrazione del disco rigido. Questa operazione non può essere annullata.</p><p>Se scegli <b>De-registra</b> il disco rigido virtuale sarà de-registrato e rimosso dall'elenco, ma il file immagine verrà lasciato nel tuo disco fisico.</p> - &Fixed-size image - A dimensione &fissa + Delete + hard disk + Rimuovi - Alt+F - Alt+F + Unregister + hard disk + De-registra - Virtual Disk Image Type - Tipo di immagine del disco virtuale + <p>There are hard disks attached to SATA ports of this virtual machine. If you disable the SATA controller, all these hard disks will be automatically detached.</p><p>Are you sure that you want to disable the SATA controller?</p> + <p>Ci sono dischi rigidi collegari alle porte SATA di questa macchina virtuale. Se disabiliti il controller SATA, tutti questi dischi rigidi virtuali saranno disconnessi automaticamente.</p><p>Sei sicuro di voler disabilitare il controller SATA?</p> - <p>Press the <b>Select</b> button to select the location and name of the file -to store the virtual hard disk image or type a file name in the entry field.</p> - <p>Premi il pulsante <b>Seleziona</b> per scegliere la posizione e il nome del -file in cui memorizzare l'immagine del disco virtuale o inserisci il nome del file nel campo.</p> + Disable + hard disk + Disabilita - &Image File Name - Nome del file &immagine + Failed to attach a hard disk image with UUID %1 to device slot %2 on channel %3 of the %4 bus of the machine <b>%5</b>. + Impossibile connettere un'immagine disco con UUID %1 allo slot %2 sul canale %3 del bus %4 della macchina <b>%5</b>. - Select - Seleziona + Failed to detach a hard disk image from device slot %1 on channel %2 of the %3 bus of the machine <b>%4</b>. + Impossibile disconnettere un'immagine disco dallo slot %1 sul canale %2 del bus %3 della macchina <b>%4</b>. - <p>Select the size of the virtual hard disk image in megabytes. This size will be reported to the Guest OS -as the size of the virtual hard disk.</p> - <p>Seleziona la dimensione dell'hard disk virtuale in megabyte. Questa dimensione sarà riportata al sistema Guest -come dimensione dell'hard disk virtuale.</p> + <p>One or more of the registered virtual hard disks, CD/DVD or floppy media are not currently accessible. As a result, you will not be able to operate virtual machines that use these media until they become accessible later.</p><p>Press <b>Check</b> to open the Virtual Disk Manager window and see what media are inaccessible, or press <b>Ignore</b> to ignore this message.</p> + <p>Uno o più dischi virtuali registrati, CD/DVD o floppy non sono attualmente accessibili. Come risultato, non sarai in grado di utilizzare machcine virtuali che sfruttino questi media fintantoché non ritornino accessibili.</p><p>Premi <b>Controlla</b> per aprire la finestra del Gestore di dischi virtuali e vedere quale media è inaccessibile, o premi <b>Ignora</b> per ignorare questo messaggio.</p> - Image &Size - Dimen&sione dell'immagine + <p>The following VirtualBox settings files have been automatically converted to the new settings file format version <b>%1</b>.</p><p>However, the results of the conversion were not saved back to disk yet. Please press:</p><ul><li><b>Save</b> to save all auto-converted files now (it will not be possible to use these settings files with an older version of VirtualBox in the future);</li><li><b>Backup</b> to create backup copies of the settings files in the old format before saving them in the new format;</li><li><b>Cancel</b> to not save the auto-converted settings files now.<li></ul><p>Note that if you select <b>Cancel</b>, the auto-converted settings files will be implicitly saved in the new format anyway once you change a setting or start a virtual machine, but <b>no</b> backup copies will be created in this case.</p> + <p>I seguenti file di impostazioni di VirtualBox sono stati convertiti automaticamente alla nuova versione <b>%1</b>.</p><p>Il risultato della conversione non è stato tuttavia ancora salvato su disco. Premi:</p><ul><li><b>Salva</b> per salvare tutti i file auto-convertiti in questo momento (non sarà possibile usare questi file di impostazioni con versioni più vecchie di VirtualBox);</li><li><b>Backup</b> per creare copie di backup dei file nel vecchio formato prima di salvarli in quello nuovo;</li><li><b>Annulla</b> per non salvare i file auto-convertiti.</li></ul><p>Nota che se selezionerai <b>Annulla</b>, i file di impostazioni auto-convertiti saranno implicitamente salvati nel nuovo formato appena modificherai un'impostazione o lancerai una macchina virtuale, ma <b>nessuna</b> copia di backup verrà creata in questo caso.</p> - Virtual Disk Location and Size - Posizione e dimensione del disco virtuale + &Save + warnAboutAutoConvertedSettings message box + &Salva - You are going to create a new virtual hard disk image with the following parameters: - Stai per creare una nuova immagine hard disk con i seguenti parametri: + &Backup + warnAboutAutoConvertedSettings message box + &Backup - If the above settings are correct, press the <b>Finish</b> button. - Once you press it, a new hard disk image will be created. - - Se le impostazioni sono corrette, premi il pulsante <b>Fine</b>. - Una volta premuto, verrà creata una nuova immagine del disco. - + Cancel + warnAboutAutoConvertedSettings message box + Annulla - Summary - Riepilogo + Failed to copy file <b><nobr>%1</nobr></b> to <b><nobr>%2</nobr></b> (%3). + Impossibile copiare il file <b><nobr>%1</nobr></b> su <b><nobr>%2</nobr></b> (%3). - <nobr>%1 Bytes</nobr> - <nobr>%1 byte</nobr> + <p>There are no unused hard disks available for the newly created attachment.</p><p>Press the <b>Create</b> button to start the <i>New Virtual Disk</i> wizard and create a new hard disk, or press the <b>Select</b> if you wish to open the <i>Virtual Disk Manager</i>.</p> + <p>Non ci sono dischi rigidi inutilizzati disponibili per la connessione appena creata.</p><p>Premi il bottone <b>Crea</b> per lanciare l'Assistente <i>Nuovo Disco Virtuale</i> e creare un nuovo disco rigido, o premi il bottone <b>Seleziona</b> per aprire il <i>Gestore di Dischi Virtuali</i> e decidere il da farsi.</p> - <table><tr><td>Type:</td><td>%1</td></tr><tr><td>Location:</td><td>%2</td></tr><tr><td>Size:</td><td>%3&nbsp;(%4&nbsp;Bytes)</td></tr></table> - <table><tr><td>Tipo:</td><td>%1</td></tr><tr><td>Posizione:</td><td>%2</td></tr><tr><td>Dimensione:</td><td>%3&nbsp;(%4&nbsp;Byte)</td></tr></table> + &Create + hard disk + &Crea - Hard disk images (*.vdi) - Immagini disco fisso (*.vdi) + Select + hard disk + Seleziona - Select a file for the new hard disk image file - Seleziona un file per la nuova immagine di disco fisso + <p>The virtual machine window will be now switched to <b>fullscreen</b> mode. You can go back to windowed mode at any time by pressing <b>%1</b>. Note that the <i>Host</i> key is currently defined as <b>%2</b>.</p><p>Note that the main menu bar is hidden in fullscreen mode. You can access it by pressing <b>Host+Home</b>.</p> + <p>La finestra della macchina virtuale passerà ora in modalità a <b>schermo intero</b>. È possibile tornare alla modalità finestra in un qualsiasi momento premendo <b>%1</b>. Nota che il tasto <i>Host</i> è definito attualmente come <b>%2</b>.</p><p>Il menu principale viene nascosto in modalità a schermo intero. È possibile accedervi premendo <b>Host+Home</b>.</p> - <p>Select the type of virtual hard disk image you want to create.</p> -<p>A <b>dynamically expanding image</b> initially occupies a very small amount -of space on your physical hard disk. It will grow dynamically (up to -the size specified) as the Guest OS claims disk space.</p> -<p>A <b>fixed-size image</b> does not grow. It is stored in a file of approximately -the same size as the size of the virtual hard disk. The creation of a fixed-size image may take a long -time depending on the image size and the write performance of your harddisk.</p> - <p>Scegli il tipo di immagine virtuale di disco rigido che vuoi creare.</p> -<p>Una <b>immagine ad espansione dinamica</b> occuperà inizialmente molto poco -spazio sul tuo disco rigido fisico. Crescerà dinamicamente (fino alla dimensione specificata) -secondo le richieste del sistema Guest.</p> -<p>Una <b>immagine a dimensione fissa</b> non crescerà. Verrà mantenuta in un file -grande approssimativamente quanto l'immagine stessa. La creazione di un'immagine a -dimensione fissa può richiedere diverso tempo, a seconda delle dimensioni dell'immagine e -alla velocità di scrittura del tuo disco rigido.</p> + <p>The virtual machine window will be now switched to <b>Seamless</b> mode. You can go back to windowed mode at any time by pressing <b>%1</b>. Note that the <i>Host</i> key is currently defined as <b>%2</b>.</p><p>Note that the main menu bar is hidden in seamless mode. You can access it by pressing <b>Host+Home</b>.</p> + <p>La finestra della macchina virtuale passerà ora portata in modalità <b>trasparente</b>. È possibile tornare alla modalità finestra in un qualsiasi momento premendo <b>%1</b>. Nota che il tasto <i>Host</i> è definito attualmente come <b>%2</b>.</p><p>Il menu principale viene nascosto in modalità trasparente. È possibile accedervi premendo <b>Host+Home</b>.</p> - < &Back - < &Indietro + <p>Note that the storage unit of this medium will not be deleted and that it will be possible to add it to the list later again.</p> + <p>Nota che l'unità di archiviazione di questo supporto non sarà eliminata e, per questo motivo, sarà possibile aggiungerla nuovamente all'elenco.</p> - &Next > - &Avanti > + <p>There are no unused hard disks available for the newly created attachment.</p><p>Press the <b>Create</b> button to start the <i>New Virtual Disk</i> wizard and create a new hard disk, or press the <b>Select</b> if you wish to open the <i>Virtual Media Manager</i>.</p> + <p>Non ci sono dischi fissi inutilizzati per il collegamento appena creato.</p><p>Premi il pulsante <b>Crea</b> per iniziare la procedura guidata <i>Nuovo disco virtuale</i> e crea un nuovo disco fisso, o premi il pulsante <b>Seleziona</b> per aprire il <i>Gestore supporti virtuali</i> e scegliere cosa fare.</p> - &Finish - &Fine + Failed to attach the hard disk <nobr><b>%1</b></nobr> to slot <i>%2</i> of the machine <b>%3</b>. + Collegamento non riuscito del disco fisso <nobr><b>%1</b></nobr> allo slot <i>%2</i> della macchina <b>%3</b>. - Type - summary - Tipo + Failed to detach the hard disk <nobr><b>%1</b></nobr> from slot <i>%2</i> of the machine <b>%3</b>. + Rimozione del collegamento non riuscita per il disco fisso <nobr><b>%1</b></nobr> dallo slot <i>%2</i> della macchina <b>%3</b>. - Location - summary - Posizione + Failed to mount the %1 <nobr><b>%2</b></nobr> on the machine <b>%3</b>. + Impossibile montare il %1 <nobr><b>%2</b></nobr> sulla macchina <b>%3</b>. - Size - summary - Dimensione + Failed to unmount the %1 <nobr><b>%2</b></nobr> from the machine <b>%3</b>. + Impossibile smontare il %1 <nobr><b>%2</b></nobr> dalla macchina <b>%3</b>. - Bytes - summary - Byte + <p>Your existing VirtualBox settings files were automatically converted from the old format to a new format required by the new version of VirtualBox.</p><p>Press <b>OK</b> to start VirtualBox now or press <b>More</b> if you want to get more information about what files were converted and access additional actions.</p><p>Press <b>Exit</b> to terminate the VirtualBox application without saving the results of the conversion to disk.</p> + <p>I file delle impostazioni di VirtualBox sono stati convertiti automaticamente dal vecchio formato al nuovo richiesto dalla nuova versione di VirtualBox.</p><p>Premi <b>OK</b> per avviare VirtualBox o premi <b>Altro</b> se desideri maggiori informazioni su quali file sono stati convertiti e accedere ad azioni aggiuntive.</p><p>Premi <b>Esci</b> per terminare VirtualBox senza salvare i risultati della conversione su disco.</p> - Cancel - Annulla + &More + warnAboutAutoConvertedSettings message box + &Altro - <p>This wizard will help you to create a new virtual hard disk for your virtual machine.</p><p>Use the <b>Next</b> button to go to the next page of the wizard and the <b>Back</b> button to return to the previous page.</p> - <p>Questa procedura guidata ti aiuterà a creare un nuovo disco virtuale per la macchina virtuale.</p><p>Premi il pulsante <b>Avanti</b> per spostarti alla pagina successiva della procedura guidata e il pulsante <b>Indietro</b> per tornare alla precedente.</p> + E&xit + warnAboutAutoConvertedSettings message box + &Esci - Hard Disk Storage Type - Tipo di archiviazione disco fisso + <p>The following VirtualBox settings files have been automatically converted to the new settings file format version <b>%1</b>.</p><p>However, the results of the conversion were not saved back to disk yet. Please press:</p><ul><li><b>Backup</b> to create backup copies of the settings files in the old format before saving them in the new format;</li><li><b>Overwrite</b> to save all auto-converted files without creating backup copies (it will not be possible to use these settings files with an older version of VirtualBox afterwards);</li>%2</ul><p>It is recommended to always select <b>Backup</b> because in this case it will be possible to go back to the previous version of VirtualBox (if necessary) without losing your current settings. See the VirtualBox Manual for more information about downgrading.</p> + <p>I seguenti file delle impostazioni di VirtualBox sono stati convertiti automaticamente al nuovo formato della versione <b>%1</b>.</p><p>Comunque, i risultati della conversione non sono ancora stati salvati su disco. Premi: </p><ul><li><b>Backup</b> per creare delle copie di sicurezza dei file delle impostazioni nel vecchio formato prima di salvarli nel nuovo formato;</li><li><b>Sovrascrivi</b> per salvare tutti i file convertiti senza creare copie di sicurezza (dopo non sarà possibile utilizzare questi file con una versione più datata di VirtualBox);</li>%2</ul><p>È consigliato selezionare sempre <b>Backup</b> perché in questo caso sarà possibile tornare alla vecchia versione di VirtualBox (se necessario) senza perdere le impostazioni correnti. Vedi il manuale di VirtualBox per ulteriori informazioni sull'operazione di downgrade.</p> - <p>Select the type of virtual hard disk you want to create.</p><p>A <b>dynamically expanding storage</b> initially occupies a very small amount of space on your physical hard disk. It will grow dynamically (up to the size specified) as the Guest OS claims disk space.</p><p>A <b>fixed-size storage</b> does not grow. It is stored in a file of approximately the same size as the size of the virtual hard disk. The creation of a fixed-size storage may take a long time depending on the storage size and the write performance of your harddisk.</p> - <p>Seleziona il tipo di disco fisso virtuale che vuoi creare.</p><p>Un'unità di <b>archiviazione a espansione dinamica</b> occupa inizialmente una quantità molto piccola di spazio sul disco fisico, che crescerà in modo dinamico (fino alla dimensione specificata) in base alla richiesta di spazio su disco del sistema guest.</p><p>Un'unità di <b>archiviazione a dimensione fissa</b> non cresce. Sarà conservata in un file con dimensioni molto vicine a quelle del disco fisso virtuale. La creazione di un'unità di archiviazione a dimensione fissa potrebbe richiedere molto tempo a seconda della dimensione scelta e delle prestazioni del disco fisso fisico.</p> + <li><b>Exit</b> to terminate VirtualBox without saving the results of the conversion to disk.</li> + <li><b>Esci</b> per terminare VirtualBox senza salvare il risultato della conversione su disco.</li> - Storage Type - Tipo di archiviazione + O&verwrite + warnAboutAutoConvertedSettings message box + So&vrascrivi - &Dynamically expanding storage - Archiviazione a espansione &dinamica + hard disk + failed to close ... + disco fisso - &Fixed-size storage - Archiviazione a dimensione &fissa + CD/DVD image + failed to close ... + immagine CD/DVD - <p>Press the <b>Select</b> button to select the location of a file to store the hard disk data or type a file name in the entry field.</p> - <p>Premi il pulsante <b>Seleziona</b> per selezionare la posizione di un file per memorizzare i dati del disco fisso o digita un nome file nel campo di inserimento.</p> + floppy image + failed to close ... + immagine floppy - &Location - &Posizione + A file named <b>%1</b> already exists. Are you sure you want to replace it?<br /><br />The file already exists in "%2". Replacing it will overwrite its contents. + Un file con nome <b>%1</b> esiste già. Sei sicuro di volerlo sostituire?<br /><br /> Il file esiste in "%2". Sostituendolo sovrascriverai il suo contenuto. - <p>Select the size of the virtual hard disk in megabytes. This size will be reported to the Guest OS as the maximum size of this hard disk.</p> - <p>Seleziona la dimensione del disco fisso virtuale in megabyte. Questa dimensione sarà riportata nel sistema Guest come dimensione massima del disco fisso.</p> + Failed to remove the file <b>%1</b>.<br /><br />Please try to remove the file yourself and try again. + Rimozione del file <b>%1</b> non riuscita.<br /><br />Prova a rimuovere manualmente il file e prova ancora. - &Size - &Dimensione + Could not access USB on the host system, because neither the USB file system (usbfs) nor the DBus and hal services are currently available. If you wish to use host USB devices inside guest systems, you must correct this and restart VirtualBox. + Impossibile accedere all'USB del sistema host, poiché né il file system USB (usbfs) né i servizi hal e DBus sono attualmente disponibili. Se desideri utilizzare dispositivi USB nei sistemi guest, devi apportare le dovute modifiche e riavviare VirtualBox. - You are going to create a new virtual hard disk with the following parameters: - Stai per creare un nuovo disco fisso virtuale con i seguenti parametri: + <p>Are you sure you wish to delete the selected snapshot and saved state?</p> + <p>Sei sicuro di voler eliminare l'istantanea selezionata e lo stato salvato?</p> - If the above settings are correct, press the <b>Finish</b> button. Once you press it, a new hard disk will be created. - Se le precedenti impostazioni sono corrette, premi il pulsante <b>Fine</b>. Una volta premuto, sarà creato un nuovo disco fisso. + Discard + Scarta - %1_copy - copied virtual disk name - %1_copia + <p>There are hard disks attached to ports of the additional controller. If you disable the additional controller, all these hard disks will be automatically detached.</p><p>Are you sure you want to disable the additional controller?</p> + <p>Ci sono dischi fissi collegati a porte di un controller aggiuntivo. Se disabiliti il controller aggiuntivo, tutti questi dischi saranno scollegati automaticamente.</p><p>Sei sicuro di voler disabilitare il controller aggiuntivo?</p> - Create - Crea + <p>There are hard disks attached to ports of the additional controller. If you change the additional controller, all these hard disks will be automatically detached.</p><p>Are you sure you want to change the additional controller?</p> + <p>Ci sono dischi fissi collegati a porte di un controller aggiuntivo. Se modifichi il controller aggiuntivo, tutti questi dischi saranno scollegati automaticamente.</p><p>Sei sicuro di voler modificare il controller aggiuntivo?</p> - Copy Virtual Disk - Copia disco virtuale + Change + hard disk + Cambia - Copy - Copia + <p>Do you want to remove the selected host network interface <nobr><b>%1</b>?</nobr></p><p><b>Note:</b> This interface may be in use by one or more network adapters of this or another VM. After it is removed, these adapters will no longer work until you correct their settings by either choosing a different interface name or a different adapter attachment type.</p> + <p>Vuoi rimuovere l'interfaccia di rete host <nobr><b>%1</b> selezionata?</nobr></p><p><b>Nota:</b> Questa interfaccia potrebbe essere utilizzata da una o più schede di rete di questa o di un'altra MV. Dopo la sua rimozione, queste schede non funzioneranno fino alla correzione delle impostazioni con la scelta di un nome diverso per l'interfaccia o con un tipo di collegamento diverso della scheda.</p> - Welcome to the virtual disk copying wizard - Benvenuti nella procedura guidata di copia di un disco virtuale + <p>Are you sure you want to restore snapshot <b>%1</b>? This will cause you to lose your current machine state, which cannot be recovered.</p> + <p>Sei sicuro di voler ripristinare l'istantanea <b>%1</b>? Ciò causerà la perdita dello stato attuale della macchina, che non può essere ripristinato.</p> - <p>This wizard will help you to copy a virtual disk.</p> - <p>Questa procedurà ti aiuterà a copiare un disco virtuale.</p> + &Create + medium + &Crea - Please select the virtual disk which you would like to copy if it is not already selected. You can either choose one from the list or use the folder icon beside the list to select a virtual disk file. - Seleziona il disco virtuale che desideri copiare se non è ancora selezionato. Puoi sceglierne uno dall'elenco o utilizzare l'icona della cartella accanto all'elenco per selezionare il file di disco virtuale. + &Select + medium + &Seleziona - &VDI (VirtualBox Disk Image) - &VDI (VirtualBox Disk Image) + <p>There are no unused media available for the newly created attachment.</p><p>Press the <b>Select</b> if you wish to open the <i>Virtual Media Manager</i>.</p> + <p>Non ci sono supporti inutilizzati disponibile per il collegamento appena creato.</p><p>Premi <b>Seleziona</b> se desideri aprire il <i>Gestore supporti virtuali</i>.</p> - V&MDK (Virtual Machine Disk) - V&MDK (Virtual Machine Disk) + Failed to attach the %1 to slot <i>%2</i> of the machine <b>%3</b>. + Collegamento del %1 allo slot <i>%2</i> della macchina <b>%3</b>. - V&HD (Virtual Hard Disk) - V&HD (Virtual Hard Disk) + Failed to detach the %1 from slot <i>%2</i> of the machine <b>%3</b>. + Scollegamento del %1 dallo slot <i>%2</i> della macchina <b>%3</b>. - Welcome to the virtual disk creation wizard - Benvenuti nella procedura guidata di creazione di un nuovo disco virtuale + Failed to eject the disk from the virtual drive. The drive may be locked by the guest operating system. Please check this and try again. + Espulsione del disco dal lettore virtuale non riuscito. Il lettore potrebbe essere bloccato dal sistema operativo guest. Controlla e prova ancora. - <p>This wizard will help you to create a new virtual disk for your virtual machine.</p> - <p>Questa procedura ti aiuterà a creare un nuovo disco fisso per la macchina virtuale.</p> + hard disk + failed to attach ... + disco fisso - <p>Please choose the type of file that you would like to use for the new virtual disk. If you do not need to use it with other virtualization software you can leave this setting unchanged.</p> - <p>Scegli il tipo del file che desideri utilizzare per il nuovo disco virtuale. Se non pensi di utilizzarlo con altri programmi di virtualizzazione, puoi lasciare inalterata questa opzione.</p> + CD/DVD device + failed to attach ... + dispositivo CD/DVD - Virtual disk file type - Tipo di file del disco virtuale + floppy device + failed to close ... + dispositivo floppy - Please choose the type of file that you would like to use for the new virtual disk. If you do not need to use it with other virtualization software you can leave this setting unchanged. - Scegli il tipo del file che desideri utilizzare per il nuovo disco virtuale. Se non pensi di utilizzarlo con altri programmi di virtualizzazione, puoi lasciare inalterata questa impostazione. + <p>The VirtualBox Guest Additions do not appear to be available on this virtual machine, and shared folders cannot be used without them. To use shared folders inside the virtual machine, please install the Guest Additions if they are not installed, or re-install them if they are not working correctly, by selecting <b>Install Guest Additions</b> from the <b>Machine</b> menu. If they are installed but the machine is not yet fully started then shared folders will be available once it is.</p> + <p>Le Guest Additions di VirtualBox non sembrano essere disponibile nella macchina virtuale, e le cartelle condivise non possono essere utilizzate senza di esse. Per utilizzare le cartelle condivise nella macchina virtuale, installa le Guest Additions se non sono installate, o installale nuovamente se non funzionano correttamente, selezionando <b>Installa Guest Additions</b> dal menu <b>Macchina</b>. Se sono installate, ma la macchina non è completamente avviata, le cartelle condivise saranno disponibili solo ad avvio completato.</p> - Virtual disk storage details - Dettagli di archiviazione del disco virtuale + You are about to remove the Extension Pack <b>%1</b>. Are you sure you want to do that? + Stai per rimuovere l'Extension Pack <b>%1</b>. Sei sicuro di volerlo fare? - Please choose whether the new virtual disk file should be allocated as it is used or if it should be created fully allocated. - Scegli se il file del nuovo disco virtuale deve essere allocato al momento del suo utilizzo o se deve essere allocato completamente in fase di creazione. + Deletion of all files belonging to the VM is currently disabled on Windows/x64 to prevent a crash. That will be fixed in the next release. + L'eliminazione di tutti i file che appartengono alla MV è attualmente disabilitata su Windows/x64 per evitare una chiusura inattesa. Il problema sarà corretto nella prossima versione. - <p>A <b>dynamically allocated</b> virtual disk file will only use space on your physical hard disk as it fills up (up to a <b>fixed maximum size</b>), although it will not shrink again automatically when space on it is freed.</p> - <p>Un disco virtuale <b>allocato dinamicamente</b> utilizzerà solo lo spazio del disco fisico che si riempe (fino alla <b>dimensione massima specificata</b>, ma non si ridurrà automaticamente se lo spazio su di esso viene liberato.</p> + <p>USB 2.0 is currently enabled for this virtual machine. However this requires the <b><nobr>%1</nobr></b> to be installed.</p><p>Please install the Extension Pack from the VirtualBox download site. After this you will be able to re-enable USB 2.0. It will be disabled in the meantime unless you cancel the current settings changes.</p> + <p>USB 2.0 è attualmente abilitato per questa macchina virtuale. In ogni caso, ciò richiede che <b><nobr>%1</nobr></b> sia installato. Installa l'Extension Pack dal sito di VirtualBox. Una volta installato, sarà possibile ri-abilitare USB 2.0. Nel frattempo sarà disabilitato a meno che annulli le modifiche correnti alle impostazioni.</p> - <p>A <b>fixed size</b> virtual disk file may take longer to create on some systems but is often faster to use.</p> - <p>Un file di disco virtuale a <b>dimensione fissa</b> richiede normalmente più tempo per la creazione, ma è più veloce nell'utilizzo.</p> + Network Operations Manager... + Gestore delle operazione di rete... - <p>You can also choose to <b>split</b> the virtual disk into several files of up to two gigabytes each. This is mainly useful if you wish to store the virtual machine on removable USB devices or old systems, some of which cannot handle very large files. - <p>Puoi scegliere anche di <b>dividere</b> il disco virtuale in diversi file, ognuno della dimensione massima di due gygabyte. È utile principalmente se desideri archiviare la macchina virtuale su dispositivi USB o sistemi datati, alcuni dei quali non sono in grado di gestire file molto grandi. + Show Network Operations Manager + Mostra il gestore delle operazioni di rete - &Dynamically allocated - Allocato &dinamicamente + <p>You are about to remove following inaccessible virtual machines from the machine list:</p><p>%1</p><p>Do you wish to proceed?</p> + <p>Stai per rimuovere le seguenti macchine virtuali dall'elenco: </p><p>%1</p><p>Vuoi continuare?</p> - &Fixed size - Dimensione &fissa + <p>You are about to remove following virtual machines from the machine list:</p><p>%1</p><p>Would you like to delete the files containing the virtual machine from your hard disk as well? Doing this will also remove the files containing the machine's virtual hard disks if they are not in use by another machine.</p> + <p>Stai per rimuovere le seguenti macchine virtuali dall'elenco:</p><p>%1</p><p>Vuoi eliminare anche i file contenenti la macchina virtuale dal disco fisso? Questa operazione rimuoverà anche i file che contengono i dischi fissi virtuali della macchina se non sono utilizzati da un'altra macchina.</p> - &Split into files of less than 2GB - Dividi in file di dimen&sione inferiore a 2GB + <p>You are about to remove following virtual machines from the machine list:</p><p>%1</p><p>Would you like to delete the files containing the virtual machine from your hard disk as well?</p> + <p>Stai per rimuovere le macchine virtuali dall'elenco:</p><p>%1</p><p>Vuoi eliminare anche i file contenenti la macchina virtuale dal disco fisso?<p> - Virtual disk file location and size - Posizione e dimensione del file del disco virtuale + Do you wish to cancel all current network operations? + Vuoi annullare tutte le operazioni di rete correnti? - Select the size of the virtual disk in megabytes. This size will be reported to the Guest OS as the maximum size of this virtual disk. - Seleziona la dimensione del disco virtuale in megabyte. Tale dimensione sarà presentata al sistema operativo guest come dimensione massima del disco virtuale. + Do you wish to cancel all current network operations or leave them running in the background? + Vuoi annullare tutte le operazioni di rete correnti o lasciarle in esecuzione sullo sfondo? - Virtual disk file location - Posizione del file del disco virtuale + Cancel All + Annulla tutto - Please type the name of the new virtual disk file into the box below or click on the folder icon to select a different folder to create the file in. - Digita il nome del nuovo disco virtuale nella casella seguente o fai clic sull'icona della cartella per selezionare una cartella di destinazione diversa. + Leave in Background + Esegui sullo sfondo - <nobr>%1 (%2 B)</nobr> - <nobr>%1 (%2 B)</nobr> + <p>Do you really want to send an ACPI shutdown signal to the virtual machine?</p> + <p>Vuoi inviare un segnale di shutdown ACPI alla macchina virtuale?</p> - You are going to create a new virtual disk with the following parameters: - Stai per creare un nuovo disco virtuale con i seguenti parametri: + ACPI Shutdown + machine + Shutdown ACPI - You are going to create a copied virtual disk with the following parameters: - Stai per creare la copia di un disco virtuale con i seguenti parametri: + <p>Do you really want to power off the virtual machine?</p><p>This will cause any unsaved data in applications running inside it to be lost.</p> + Vuoi davvero spegnere la macchina virtuale?</p><p>Tutti i dati delle applicazioni in esecuzione su di essa, non ancora salvati, saranno persi.</p> - If the above settings are correct, press the <b>%1</b> button. Once you press it the new virtual disk file will be created. - Se le impostazioni precedenti sono corrette, premi il pulsante <b>%1</b>. Una volta premuto, il file del disco virtuale sarà creato. + Power Off + machine + Spegni - %1 B - %1 B + Failed to drop data. + Rimozione dei dati non riuscita. - File type - summary - Tipo di file + <p>Failed to initialize COM because the VirtualBox global configuration directory <b><nobr>%1</nobr></b> is not accessible. Please check the permissions of this directory and of its parent directory.</p><p>The application will now terminate.</p> + - - Details - summary - Dettagli + + <p>The %n following virtual machine(s) are currently in a saved state: <b>%1</b></p><p>If you continue the runtime state of the exported machine(s) will be discarded. The other machine(s) will not be changed.</p> + This text is never used with n == 0. Feel free to drop the %n where possible, we only included it because of problems with Qt Linguist (but the user can see how many machines are in the list and doesn't need to be told). + + <p>La macchina virtuale <b>%1</b> è attualmente in uno stato salvato.</p><p>Se continui, lo stato di esecuzione della macchina esportata sarà scartato. Nota che la macchina esistente non viene modificata.</p> + <p>Le macchine virtuali <b>%1</b> sono attualmente in uno stato salvato.</p><p>Se continui, lo stato di esecuzione delle macchine esportate sarà scartato. Nota che le macchine esistenti non sono modificate.</p> + + + + UIMiniProcessWidgetAdditions - H&DD (Parallels Hard Disk) - H&DD (Disco fisso di Parallels) + Cancel + Annulla - Q&ED (QEMU enhanced disk) - Q&ED (disco migliorato di QEMU) + Cancel the VirtualBox Guest Additions CD image download + Annulla lo scaricamento dell'immagine CD di VirtualBox Guest Additions - &QCOW (QEMU Copy-On-Write) - &QCOW (Copy-On-Write di QEMU) + Downloading the VirtualBox Guest Additions CD image from <nobr><b>%1</b>...</nobr> + Sto scaricando l'immagine CD di VirtualBox Guest Additions da <nobr><b>%1</b>...</nobr> - UINewHDWizardPageFormat + UIMiniProcessWidgetUserManual - File type - Tipo di file + Cancel the VirtualBox User Manual download + Annulla lo scaricamento del manuale utente di VirtualBox - - - UINewHDWizardPageOptions - &Location - &Posizione + Downloading the VirtualBox User Manual + Sto scaricando il manuale utente di VirtualBox - &Size - Dimen&sione + Downloading the VirtualBox User Manual <nobr><b>%1</b>...</nobr> + Sto scaricando il manuale utente di VirtualBox da <nobr><b>%1</b>...</nobr> - - - UINewHDWizardPageVariant - Storage details - Dettagli di archiviazione + Cancel + Annulla - UINewHDWizardPageWelcome + UIMiniProgressWidgetAdditions - Welcome to the Create New Virtual Disk Wizard! - Benvenuti nella procedura di creazione di un nuovo disco virtuale! + Cancel the VirtualBox Guest Additions CD image download + Annulla lo scaricamento dell'immagine del CD delle Guest Additions di VirtualBox - <p>This wizard will help you to create a new virtual hard disk for your virtual machine.</p><p>%1</p> - <p>Questa procedura guidata ti aiuterà a creare un nuovo disco fisso per la macchina virtuale.</p><p>%1</p> + Downloading the VirtualBox Guest Additions CD image from <nobr><b>%1</b>...</nobr> + Scaricamento dell'immagine del CD delle Guest Additions di VirtualBox da <nobr><b>%1</b>...</nobr> + + + UIMiniProgressWidgetExtension - Virtual disk to copy - Disco virtuale da copiare + Cancel the <nobr><b>%1</b></nobr> download + Annulla lo scaricamento di <nobr><b>%1</b></nobr> - Choose a virtual hard disk file... - Scegli un file di disco fisso virtuale... + Downloading the <nobr><b>%1</b></nobr> from <nobr><b>%2</b>...</nobr> + Scaricamento di <nobr><b>%1</b></nobr> da <nobr><b>%2</b> in corso...</nobr> - UINewHDWzdPage2 + UIMultiScreenLayout - <p>Select the type of virtual hard disk you want to create.</p><p>A <b>dynamically expanding storage</b> initially occupies a very small amount of space on your physical hard disk. It will grow dynamically (up to the size specified) as the Guest OS claims disk space.</p><p>A <b>fixed-size storage</b> does not grow. It is stored in a file of approximately the same size as the size of the virtual hard disk. The creation of a fixed-size storage may take a long time depending on the storage size and the write performance of your harddisk.</p> - <p>Seleziona il tipo di disco fisso virtuale che vuoi creare.</p><p>Un'unità di <b>archiviazione a espansione dinamica</b> occupa inizialmente una quantità molto piccola di spazio sul disco fisico, che crescerà in modo dinamico (fino alla dimensione specificata) in base alla richiesta di spazio su disco del sistema guest.</p><p>Un'unità di <b>archiviazione a dimensione fissa</b> non cresce. Sarà conservata in un file con dimensioni molto vicine a quelle del disco fisso virtuale. La creazione di un'unità di archiviazione a dimensione fissa potrebbe richiedere molto tempo, a seconda della dimensione scelta e delle prestazioni in scrittura del disco fisso fisico.</p> + Virtual Screen %1 + Schermo virtuale %1 - Storage Type - Tipo di archiviazione + Use Host Screen %1 + Usa schermo %1 dell'host + + + UINetworkManager - &Dynamically expanding storage - Archiviazione a espansione &dinamica + Network Operation + Operazione di rete - &Fixed-size storage - Archiviazione a dimensione &fissa + Restart network operation + Riavvia operazione di rete - Hard Disk Storage Type - Tipo di archiviazione disco fisso + Cancel network operation + Annulla operazione di rete - - - UINewHDWzdPage3 - <p>Press the <b>Select</b> button to select the location of a file to store the hard disk data or type a file name in the entry field.</p> - <p>Premi il pulsante <b>Seleziona</b> per selezionare la posizione di un file per memorizzare i dati del disco fisso o digita un nome file nel campo di inserimento.</p> + Error: %1. + Errore: %1. - &Location - &Posizione + Network Operations Manager + Gestore delle operazioni di rete - <p>Select the size of the virtual hard disk in megabytes. This size will be reported to the Guest OS as the maximum size of this hard disk.</p> - <p>Seleziona la dimensione del disco fisso virtuale in megabyte. Questa dimensione sarà riportata nel sistema Guest come dimensione massima del disco fisso.</p> + There are no active network operations. + Non ci sono operazioni di rete attive. - &Size - &Dimensione + &Cancel All + A&nnulla tutto - Virtual Disk Location and Size - Posizione e dimensione del disco virtuale + Cancel all active network operations + Annulla tutte le operazioni di rete attive + + + UINewHDWizard - Select a file for the new hard disk image file - Seleziona un file per la nuova immagine di disco fisso + Create New Virtual Disk + Crea un nuovo disco virtuale - Hard disk images (*.vdi) - Immagini disco fisso (*.vdi) + %1_copy + copied virtual disk name + %1_copia - <nobr>%1 (%2 B)</nobr> - <nobr>%1 (%2 B)</nobr> + Create + Crea - - - UINewHDWzdPage4 - You are going to create a new virtual hard disk with the following parameters: - Stai per creare un nuovo disco fisso virtuale con i seguenti parametri: + Copy Virtual Disk + Copia disco virtuale - Summary - Riepilogo + Copy + Copia - Type - summary - Tipo + Welcome to the virtual disk copying wizard + Benvenuti nella procedura guidata di copia di un disco virtuale - Location - summary - Posizione + <p>This wizard will help you to copy a virtual disk.</p> + <p>Questa procedurà ti aiuterà a copiare un disco virtuale.</p> - Size - summary - Dimensione + Please select the virtual disk which you would like to copy if it is not already selected. You can either choose one from the list or use the folder icon beside the list to select a virtual disk file. + Seleziona il disco virtuale che desideri copiare se non è ancora selezionato. Puoi sceglierne uno dall'elenco o utilizzare l'icona della cartella accanto all'elenco per selezionare il file di disco virtuale. - If the above settings are correct, press the <b>%1</b> button. Once you press it, a new hard disk will be created. - Se le precedenti impostazioni sono corrette, premi il pulsante <b>%1</b>. Una volta premuto, sarà creato un nuovo disco fisso. + &VDI (VirtualBox Disk Image) + &VDI (VirtualBox Disk Image) - - - UINewVMWzd - Create New Virtual Machine - Crea una nuova macchina virtuale + V&MDK (Virtual Machine Disk) + V&MDK (Virtual Machine Disk) - <p>This wizard will guide you through the steps that are necessary to create -a new virtual machine for VirtualBox.</p> -<p>Use the <b>Next</b> button to go the next page of the wizard -and the <b>Back</b> button to return to the previous page.</p> - <p>Questa procedura ti guiderà attraverso i passi necessari per creare una -nuova macchina virtuale per VirtualBox.</p> -<p>Usa il pulsante <b>Avanti</b> per passare alla pagina successiva della procedura guidata -e il pulsante <b>Indietro</b> per tornare a quella precedente.</p> + V&HD (Virtual Hard Disk) + V&HD (Virtual Hard Disk) - Welcome to the New Virtual Machine Wizard! - Benvenuto alla procedura guidata per la creazione di una nuova macchina virtuale! + Welcome to the virtual disk creation wizard + Benvenuti nella procedura guidata di creazione di un nuovo disco virtuale - <p>Enter a name for the new virtual machine and select the type of the guest operating -system you plan to install onto the virtual machine.</p> -<p>The name of the virtual machine usually indicates its software and hardware configuration. -It will be used by all VirtualBox components to identify your virtual machine.</p> - <p>Inserisci un nome per la nuova macchina virtuale e scegli un tipo di sistema -operativo da installare nella macchina.</p> -<p>Il nome della macchina solitamente indica la propria configurazione hardware e software. -Verrà utilizzato da tutti i componenti di VirtualBox per identificare la macchina virtuale.</p> + <p>This wizard will help you to create a new virtual disk for your virtual machine.</p> + <p>Questa procedura ti aiuterà a creare un nuovo disco fisso per la macchina virtuale.</p> - N&ame - N&ome + <p>Please choose the type of file that you would like to use for the new virtual disk. If you do not need to use it with other virtualization software you can leave this setting unchanged.</p> + <p>Scegli il tipo del file che desideri utilizzare per il nuovo disco virtuale. Se non pensi di utilizzarlo con altri programmi di virtualizzazione, puoi lasciare inalterata questa opzione.</p> - OS &Type - Sis&tema operativo + Virtual disk file type + Tipo di file del disco virtuale - VM Name and OS Type - Nome della MV e tipo di sistema operativo + Please choose the type of file that you would like to use for the new virtual disk. If you do not need to use it with other virtualization software you can leave this setting unchanged. + Scegli il tipo del file che desideri utilizzare per il nuovo disco virtuale. Se non pensi di utilizzarlo con altri programmi di virtualizzazione, puoi lasciare inalterata questa impostazione. - <p>Select the amount of base memory (RAM) in megabytes to be allocated to the virtual machine.</p> - <p>Seleziona l'ammontare della memoria di base (RAM) in megabyte da allocare per la macchina virtuale.</p> + Virtual disk storage details + Dettagli di archiviazione del disco virtuale - Base &Memory Size - Dimensione della &memoria di base + Please choose whether the new virtual disk file should be allocated as it is used or if it should be created fully allocated. + Scegli se il file del nuovo disco virtuale deve essere allocato al momento del suo utilizzo o se deve essere allocato completamente in fase di creazione. - < - < + <p>A <b>dynamically allocated</b> virtual disk file will only use space on your physical hard disk as it fills up, although it will not shrink again automatically when space on it is freed.</p> + <p>Un disco virtuale <b>allocato dinamicamente</b> utilizzerà solo lo spazio del disco fisico che si riempe, ma non si ridurrà automaticamente se lo spazio viene liberato.</p> - = - = + <p>A <b>fixed size</b> virtual disk file may take longer to create on some systems but is often faster to use.</p> + <p>Un file di disco virtuale a <b>dimensione fissa</b> richiede normalmente più tempo per la creazione, ma è più veloce nell'utilizzo.</p> - > - > + <p>You can also choose to <b>split</b> the virtual disk into several files of up to two gigabytes each. This is mainly useful if you wish to store the virtual machine on removable USB devices or old systems, some of which cannot handle very large files. + <p>Puoi scegliere anche di <b>dividere</b> il disco virtuale in diversi file, ognuno della dimensione massima di due gygabyte. È utile principalmente se desideri archiviare la macchina virtuale su dispositivi USB o sistemi datati, alcuni dei quali non sono in grado di gestire file molto grandi. - MB - MB + &Dynamically allocated + Allocato &dinamicamente - Memory - Memoria + &Fixed size + Dimensione &fissa - <p>Select a hard disk image to be used -as the boot hard disk of the virtual machine. You can either create a new hard -disk using the <b>New</b> button or select an existing hard disk -image from the drop-down list or by pressing the <b>Existing</b> -button (to invoke the Virtual Disk Manager dialog).</p> -<p>If you need a more complicated hard disk setup, you can also skip this -step and attach hard disks later using the VM Settings dialog.</p> - <p>Scegli un'immagine di hard disk virtual da usare -come hard disk di avvio della Macchina Virtuale. Puoi creare un nuovo hard -disk usando il pulsante <b>Nuovo</b> o selezionare un'immagine esistente -dal menu a tendina o facendo clic sul pulsante <b>Esistente</b> (per lanciare -il gestore di dischi virtuali).</p> -<p>Se hai bisogno di impostazioni avanzate per l'hard disk, puoi anche saltare -questo passo e collegare hard disk più tardi tramite Impostazioni della MV.</p> + &Split into files of less than 2GB + Dividi in file di dimen&sione inferiore a 2GB - B&oot Hard Disk (Primary Master) - Hard disk di avvi&o (Primary Master) + Virtual disk file location and size + Posizione e dimensione del file del disco virtuale - N&ew... - N&uovo... + Select the size of the virtual disk in megabytes. This size will be reported to the Guest OS as the maximum size of this virtual disk. + Seleziona la dimensione del disco virtuale in megabyte. Tale dimensione sarà presentata al sistema operativo guest come dimensione massima del disco virtuale. - E&xisting... - E&sistente... + Virtual disk file location + Posizione del file del disco virtuale - Virtual Hard Disk - Disco fisso virtuale + Please type the name of the new virtual disk file into the box below or click on the folder icon to select a different folder to create the file in. + Digita il nome del nuovo disco virtuale nella casella seguente o fai clic sull'icona della cartella per selezionare una cartella di destinazione diversa. - - <p> - You are going to create a new virtual machine - with the following parameters: - </p> - - - <p> - Stai per creare una nuova macchina virtuale - con i seguenti parametri: - </p> - + Select a file for the new hard disk image file + Seleziona un file per la nuova immagine di disco fisso - - <p> - If the above is correct press the <b>Finish</b> button. - Once you press it, a new virtual machine will be created. - </p><p> - Note that you can alter these and all other setting of the - created virtual machine at any time using the - <b>Settings</b> dialog accessible through - the menu of the main window. - </p> - - - <p> - Se le impostazioni sono corrette premi il pulsante <b>Fine</b>. - Una volta premuto, la Macchina Virtuale sarà creata. - </p><p> - Nota che puoi modificare queste e altre impostazioni della - Macchina Virtuale in un qualsiasi momento con la finestra - <b>Impostazioni</b> accessibile dal menu della finestra - principale. - </p> - + <nobr>%1 (%2 B)</nobr> + <nobr>%1 (%2 B)</nobr> Summary - Riassunto + Riepilogo - <qt>%1&nbsp;MB</qt> - <qt>%1&nbsp;MB</qt> + You are going to create a new virtual disk with the following parameters: + Stai per creare un nuovo disco virtuale con i seguenti parametri: - <tr><td>Name:</td><td>%1</td></tr><tr><td>OS Type:</td><td>%2</td></tr><tr><td>Base Memory:</td><td>%3&nbsp;MB</td></tr> - <tr><td>Nome:</td><td>%1</td></tr><tr><td>Sistema operativo:</td><td>%2</td></tr><tr><td>Memoria di base:</td><td>%3&nbsp;MB</td></tr> + You are going to create a copied virtual disk with the following parameters: + Stai per creare la copia di un disco virtuale con i seguenti parametri: - <tr><td>Start-up Disk:</td><td>%4</td></tr> - <tr><td>Hard disk di avvio:</td><td>%4</td></tr> + If the above settings are correct, press the <b>%1</b> button. Once you press it the new virtual disk file will be created. + Se le impostazioni precedenti sono corrette, premi il pulsante <b>%1</b>. Una volta premuto, il file del disco virtuale sarà creato. - The recommended base memory size is <b>%1</b> MB. - La dimensione consigliata per la memoria di base è <b>%1</b> MB. + %1 B + %1 B - The recommended size of the start-up disk is <b>%1</b> MB. - La dimensione consigliata per il disco fisso di avvio è <b>%1</b> MB. + File type + summary + Tipo di file - <p>This wizard will guide you through the steps that are necessary to create a new virtual machine for VirtualBox.</p><p>Use the <b>Next</b> button to go the next page of the wizard and the <b>Back</b> button to return to the previous page.</p> - <p>Questa procedura ti guiderà attraverso le fasi necessarie per creare una nuova macchina virtuale di VirtualBox.</p><p>Utilizza il pulsante <b>Avanti</b> per spostarti alla pagina successiva della procedura guidata e il pulsante <b>Indietro</b> per tornare alla pagina precedente.</p> + Details + summary + Dettagli - < &Back - < &Indietro + Location + summary + Posizione - &Next > - &Avanti > + Size + summary + Dimensione - <p>Enter a name for the new virtual machine and select the type of the guest operating system you plan to install onto the virtual machine.</p><p>The name of the virtual machine usually indicates its software and hardware configuration. It will be used by all VirtualBox components to identify your virtual machine.</p> - <p>Inserisci un nome per la nuova macchina virtuale e seleziona il tipo di sistema operativo che desideri installare.</p><p>Il nome della macchina virtuale indica normalmente la sua configurazione software e hardware. Sarà utilizzato da tutti i componenti di VirtualBox per identificare la macchina virtuale.</p> + H&DD (Parallels Hard Disk) + H&DD (Disco fisso di Parallels) - <p>You are going to create a new virtual machine with the following parameters:</p> - <p>Stai per creare una nuova macchina virtuale con i seguenti parametri:</p> + Q&ED (QEMU enhanced disk) + Q&ED (disco migliorato di QEMU) - <p>If the above is correct press the <b>Finish</b> button. Once you press it, a new virtual machine will be created. </p><p>Note that you can alter these and all other setting of the created virtual machine at any time using the <b>Settings</b> dialog accessible through the menu of the main window.</p> - <p>Se le informazioni precedenti sono corrette, premi il pulsante <b>Fine</b>. Una volta premuto, sarà creata una nuova macchina virtuale. </p><p>Nota che puoi modificare queste e tutte le altre impostazioni della macchina virtuale creata in ogni momento utilizzando la finestra <b>Impostazioni</b> dal menu della finestra principale.</p> + &QCOW (QEMU Copy-On-Write) + &QCOW (Copy-On-Write di QEMU) - &Finish - &Fine + <p>This wizard will help you to create a new virtual hard disk image for your virtual machine.</p> +<p>Use the <b>Next</b> button to go to the next page of the wizard +and the <b>Back</b> button to return to the previous page.</p> + <p>Questa procedura guidata ti aiuterà a creare una nuova immagine disco virtuale per la tua macchina virtuale.</p> +<p>Usa il pulsante <b>Avanti</b> per passare alla pagina successiva della procedura guidata +e il pulsante <b>Indietro</b> per tornare a quella precedente.</p> - MB - megabytes - MB + Welcome to the Create New Virtual Disk Wizard! + Benvenuto nella procedura guidata per la creazione di un nuovo disco virtuale! - Name - summary - Nome + <p>Select the type of virtual hard disk image you want to create.</p> +<p>A <b>dynamically expanding image</b> initially occupies a very small amount +of space on your physical hard disk. It will grow dynamically (up to +the size specified) as the Guest OS claims disk space.</p> +<p>A <b>fixed-size image</b> does not grow. It is stored in a file of approximately +the same size as the size of the virtual hard disk.</p> + <p>Scegli il tipo di immagine di disco virtuale che vuoi creare.</p> +<p>Un'immagine <b>ad espansione dinamica</b> occupa inizialmente +molto poco spazio nel disco fisico. Crescerà in maniera dinamica (fino alla +dimensione specificata), con il suo utilizzo da parte del sistema Guest.</p> +<p>Un'immagine <b>a dimensione fissa</b> non cresce. Viene creato +invece un file approssimativamente della stessa dimensione del disco +virtuale.</p> - OS Type - summary - Sistema operativo + Image Type + Tipo di immagine - Base Memory - summary - Memoria di base + &Dynamically expanding image + Ad espansione &dinamica - Start-up Disk - summary - Disco fisso di avvio + Alt+D + Alt+D - Cancel - Annulla + &Fixed-size image + A dimensione &fissa - <p>Select a hard disk image to be used as the boot hard disk of the virtual machine. You can either create a new hard disk using the <b>New</b> button or select an existing hard disk image from the drop-down list or by pressing the <b>Existing</b> button (to invoke the Virtual Media Manager dialog).</p><p>If you need a more complex virtual disk setup you can skip this step and make the changes to the machine settings once the machine is created.</p> - <p>Seleziona un'immagine di disco fisso da utilizzare come disco fisso di avvio della macchina virtuale. Puoi creare un nuovo disco fisso utilizzando il pulsante <b>Nuovo</b> o selezionare un'immagine esistente dell'elenco a tendina premendo il pulsante <b>Esistente</b> (per richiamare la finestra del gestore supporti virtuali).</p><p>Se necessiti di una configurazione più complessa dei dischi fissi, puoi anche saltare questa fase e collegare successivamente dischi fissi utilizzando la finestra Impostazioni VM.</p> + Alt+F + Alt+F - Start-up &Disk (Primary Master) - &Disco fisso di avvio (Master primario) + Virtual Disk Image Type + Tipo di immagine del disco virtuale - &Create new hard disk - &Crea un nuovo disco fisso + <p>Press the <b>Select</b> button to select the location and name of the file +to store the virtual hard disk image or type a file name in the entry field.</p> + <p>Premi il pulsante <b>Seleziona</b> per scegliere la posizione e il nome del +file in cui memorizzare l'immagine del disco virtuale o inserisci il nome del file nel campo.</p> - &Use existing hard disk - &Usa un disco fisso esistente + &Image File Name + Nome del file &immagine - Create - Crea + Select + Seleziona - - - UINewVMWzdPage1 - Welcome to the New Virtual Machine Wizard! - Benvenuti nella procedura di creazione di una nuova macchina virtuale! + <p>Select the size of the virtual hard disk image in megabytes. This size will be reported to the Guest OS +as the size of the virtual hard disk.</p> + <p>Seleziona la dimensione dell'hard disk virtuale in megabyte. Questa dimensione sarà riportata al sistema Guest +come dimensione dell'hard disk virtuale.</p> - <p>This wizard will guide you through the steps that are necessary to create a new virtual machine for VirtualBox.</p><p>%1</p> - <p>Questa procedura ti guiderà attraverso i passi necessari per creare una nuova macchina virtuale in VirtualBox.</p><p>%1</p> + Image &Size + Dimen&sione dell'immagine - - - UINewVMWzdPage2 - <p>Enter a name for the new virtual machine and select the type of the guest operating system you plan to install onto the virtual machine.</p><p>The name of the virtual machine usually indicates its software and hardware configuration. It will be used by all VirtualBox components to identify your virtual machine.</p> - <p>Inserisci un nome per la nuova macchina virtuale e seleziona il tipo di sistema operativo che desideri installare.</p><p>Il nome della macchina virtuale indica normalmente la sua configurazione software e hardware. Sarà utilizzato da tutti i componenti di VirtualBox per identificare la macchina virtuale.</p> + Virtual Disk Location and Size + Posizione e dimensione del disco virtuale - N&ame - N&ome + You are going to create a new virtual hard disk image with the following parameters: + Stai per creare una nuova immagine hard disk con i seguenti parametri: - OS &Type - Sis&tema operativo + If the above settings are correct, press the <b>Finish</b> button. + Once you press it, a new hard disk image will be created. + + Se le impostazioni sono corrette, premi il pulsante <b>Fine</b>. + Una volta premuto, verrà creata una nuova immagine del disco. + - VM Name and OS Type - Nome MV e sistema operativo + <nobr>%1 Bytes</nobr> + <nobr>%1 byte</nobr> - - - UINewVMWzdPage3 - <p>Select the amount of base memory (RAM) in megabytes to be allocated to the virtual machine.</p> - <p>Seleziona l'ammontare della memoria di base (RAM) in megabyte da allocare per la macchina virtuale.</p> + <table><tr><td>Type:</td><td>%1</td></tr><tr><td>Location:</td><td>%2</td></tr><tr><td>Size:</td><td>%3&nbsp;(%4&nbsp;Bytes)</td></tr></table> + <table><tr><td>Tipo:</td><td>%1</td></tr><tr><td>Posizione:</td><td>%2</td></tr><tr><td>Dimensione:</td><td>%3&nbsp;(%4&nbsp;Byte)</td></tr></table> - Base &Memory Size - Dimensione della &memoria di base + Hard disk images (*.vdi) + Immagini disco fisso (*.vdi) - MB - + <p>Select the type of virtual hard disk image you want to create.</p> +<p>A <b>dynamically expanding image</b> initially occupies a very small amount +of space on your physical hard disk. It will grow dynamically (up to +the size specified) as the Guest OS claims disk space.</p> +<p>A <b>fixed-size image</b> does not grow. It is stored in a file of approximately +the same size as the size of the virtual hard disk. The creation of a fixed-size image may take a long +time depending on the image size and the write performance of your harddisk.</p> + <p>Scegli il tipo di immagine virtuale di disco rigido che vuoi creare.</p> +<p>Una <b>immagine ad espansione dinamica</b> occuperà inizialmente molto poco +spazio sul tuo disco rigido fisico. Crescerà dinamicamente (fino alla dimensione specificata) +secondo le richieste del sistema Guest.</p> +<p>Una <b>immagine a dimensione fissa</b> non crescerà. Verrà mantenuta in un file +grande approssimativamente quanto l'immagine stessa. La creazione di un'immagine a +dimensione fissa può richiedere diverso tempo, a seconda delle dimensioni dell'immagine e +alla velocità di scrittura del tuo disco rigido.</p> - Memory - Memoria + < &Back + < &Indietro - The recommended base memory size is <b>%1</b> MB. - La dimensione consigliata della memoria di base è <b>%1</b> MB. + &Next > + &Avanti > - - - UINewVMWzdPage4 - <p>Select a hard disk image to be used as the boot hard disk of the virtual machine. You can either create a new hard disk using the <b>New</b> button or select an existing hard disk image from the drop-down list or by pressing the <b>Existing</b> button (to invoke the Virtual Media Manager dialog).</p><p>If you need a more complex virtual disk setup you can skip this step and make the changes to the machine settings once the machine is created.</p> - <p>Seleziona un'immagine di disco fisso da utilizzare come disco di avvio della macchina virtuale. Puoi creare un nuovo disco fisso utilizzando il pulsante <b>Nuovo</b> o selezionare un'immagine esistente dell'elenco a tendina, premendo il pulsante <b>Esistente</b> (per richiamare la finestra del gestore supporti virtuali).</p><p>Se necessiti di una configurazione avanzata dei dischi fissi, puoi anche saltare questa fase e collegare successivamente dischi fissi utilizzando la finestra Impostazioni MV.</p> + &Finish + &Fine - Start-up &Disk (Primary Master) - &Disco fisso di avvio (Master primario) + Type + summary + Tipo - &Create new hard disk - &Crea un nuovo disco fisso + Bytes + summary + Byte - &Use existing hard disk - &Usa un disco fisso esistente + Cancel + Annulla - Virtual Hard Disk - Disco fisso virtuale + <p>This wizard will help you to create a new virtual hard disk for your virtual machine.</p><p>Use the <b>Next</b> button to go to the next page of the wizard and the <b>Back</b> button to return to the previous page.</p> + <p>Questa procedura guidata ti aiuterà a creare un nuovo disco virtuale per la macchina virtuale.</p><p>Premi il pulsante <b>Avanti</b> per spostarti alla pagina successiva della procedura guidata e il pulsante <b>Indietro</b> per tornare alla precedente.</p> - The recommended size of the start-up disk is <b>%1</b> MB. - La dimensione consigliata per il disco fisso di avvio è <b>%1</b> MB. + Hard Disk Storage Type + Tipo di archiviazione disco fisso - Start-up &Disk - &Disco d'avvio + <p>Select the type of virtual hard disk you want to create.</p><p>A <b>dynamically expanding storage</b> initially occupies a very small amount of space on your physical hard disk. It will grow dynamically (up to the size specified) as the Guest OS claims disk space.</p><p>A <b>fixed-size storage</b> does not grow. It is stored in a file of approximately the same size as the size of the virtual hard disk. The creation of a fixed-size storage may take a long time depending on the storage size and the write performance of your harddisk.</p> + <p>Seleziona il tipo di disco fisso virtuale che vuoi creare.</p><p>Un'unità di <b>archiviazione a espansione dinamica</b> occupa inizialmente una quantità molto piccola di spazio sul disco fisico, che crescerà in modo dinamico (fino alla dimensione specificata) in base alla richiesta di spazio su disco del sistema guest.</p><p>Un'unità di <b>archiviazione a dimensione fissa</b> non cresce. Sarà conservata in un file con dimensioni molto vicine a quelle del disco fisso virtuale. La creazione di un'unità di archiviazione a dimensione fissa potrebbe richiedere molto tempo a seconda della dimensione scelta e delle prestazioni del disco fisso fisico.</p> - <p>If you wish you can now add a start-up disk to the new machine. You can either create a new virtual disk or select one from the list or from another location using the folder icon.</p><p>If you need a more complex virtual disk setup you can skip this step and make the changes to the machine settings once the machine is created.</p> - <p>Se lo desideri, ora puoi aggiungere un disco di avvio alla macchina virtuale. Puoi creare un nuovo disco virtuale o selezionarne uno dall'elenco o da un'altra posizione premendo il pulsante con l'icona di una cartella.</p><p>Se necessiti di una configurazione più complessa dei dischi virtuali, puoi anche saltare questa fase e apportare le modifiche alle impostazioni della macchina una volta creata.</p> + Storage Type + Tipo di archiviazione - Choose a virtual hard disk file... - Scegli un file di disco fisso virtuale... + &Dynamically expanding storage + Archiviazione a espansione &dinamica - The recommended size of the start-up disk is <b>%1</b>. - La dimensione consigliata del disco di avvio è <b>%1</b>. + &Fixed-size storage + Archiviazione a dimensione &fissa - - - UINewVMWzdPage5 - <p>You are going to create a new virtual machine with the following parameters:</p> - <p>Stai per creare una nuova macchina virtuale con i seguenti parametri:</p> + <p>Press the <b>Select</b> button to select the location of a file to store the hard disk data or type a file name in the entry field.</p> + <p>Premi il pulsante <b>Seleziona</b> per selezionare la posizione di un file per memorizzare i dati del disco fisso o digita un nome file nel campo di inserimento.</p> - Summary - Riepilogo + &Location + &Posizione - Name - summary - Nome + <p>Select the size of the virtual hard disk in megabytes. This size will be reported to the Guest OS as the maximum size of this hard disk.</p> + <p>Seleziona la dimensione del disco fisso virtuale in megabyte. Questa dimensione sarà riportata nel sistema Guest come dimensione massima del disco fisso.</p> - OS Type - summary - Sistema operativo + &Size + &Dimensione - Base Memory - summary - Memoria di base + You are going to create a new virtual hard disk with the following parameters: + Stai per creare un nuovo disco fisso virtuale con i seguenti parametri: - Start-up Disk - summary - Disco di avvio + If the above settings are correct, press the <b>Finish</b> button. Once you press it, a new hard disk will be created. + Se le precedenti impostazioni sono corrette, premi il pulsante <b>Fine</b>. Una volta premuto, sarà creato un nuovo disco fisso. - <p>If the above is correct press the <b>%1</b> button. Once you press it, a new virtual machine will be created. </p><p>Note that you can alter these and all other setting of the created virtual machine at any time using the <b>Settings</b> dialog accessible through the menu of the main window.</p> - <p>Se le informazioni precedenti sono corrette, premi il pulsante <b>%1</b>. Una volta premuto, sarà creata una nuova macchina virtuale. </p><p>Nota che puoi modificare queste e tutte le altre impostazioni della macchina virtuale creata in ogni momento utilizzando la finestra <b>Impostazioni</b> accessibile dal menu della finestra principale.</p> + <p>A <b>dynamically allocated</b> virtual disk file will only use space on your physical hard disk as it fills up (up to a <b>fixed maximum size</b>), although it will not shrink again automatically when space on it is freed.</p> + <p>Un disco virtuale <b>allocato dinamicamente</b> utilizzerà solo lo spazio del disco fisico che si riempe (fino alla <b>dimensione massima specificata</b>, ma non si ridurrà automaticamente se lo spazio viene liberato.</p> - UIPortForwardingModel + UINewHDWizardPageFormat - Name - Nome - - - Protocol - Protocollo - - - Host IP - IP dell'host - - - Host Port - Porta dell'host - - - Guest IP - IP del Guest - - - Guest Port - Porta del Guest + File type + Tipo di file - UIProgressDialog + UINewHDWizardPageOptions - &Cancel - A&nnulla + &Location + &Posizione - Time remaining: %1 - Tempo rimanente. %1 + &Size + Dimen&sione + + + UINewHDWizardPageVariant - %1 days, %2 hours remaining - %1 giorni, %2 ore rimanenti + Storage details + Dettagli di archiviazione + + + UINewHDWizardPageWelcome - %1 days, %2 minutes remaining - %1 giorni, %2 minuti rimanenti + Virtual disk to copy + Disco virtuale da copiare - %1 days remaining - %1 giorni rimanenti + Choose a virtual hard disk file... + Scegli un file di disco fisso virtuale... - 1 day, %1 hours remaining - 1 giorno, %1 ore rimanenti + Welcome to the Create New Virtual Disk Wizard! + Benvenuti nella procedura di creazione di un nuovo disco virtuale! - 1 day, %1 minutes remaining - 1 giorno, %1 minuti rimanenti + <p>This wizard will help you to create a new virtual hard disk for your virtual machine.</p><p>%1</p> + <p>Questa procedura guidata ti aiuterà a creare un nuovo disco fisso per la macchina virtuale.</p><p>%1</p> + + + UINewHDWzdPage2 - 1 day remaining - 1 giorno rimanente + <p>Select the type of virtual hard disk you want to create.</p><p>A <b>dynamically expanding storage</b> initially occupies a very small amount of space on your physical hard disk. It will grow dynamically (up to the size specified) as the Guest OS claims disk space.</p><p>A <b>fixed-size storage</b> does not grow. It is stored in a file of approximately the same size as the size of the virtual hard disk. The creation of a fixed-size storage may take a long time depending on the storage size and the write performance of your harddisk.</p> + <p>Seleziona il tipo di disco fisso virtuale che vuoi creare.</p><p>Un'unità di <b>archiviazione a espansione dinamica</b> occupa inizialmente una quantità molto piccola di spazio sul disco fisico, che crescerà in modo dinamico (fino alla dimensione specificata) in base alla richiesta di spazio su disco del sistema guest.</p><p>Un'unità di <b>archiviazione a dimensione fissa</b> non cresce. Sarà conservata in un file con dimensioni molto vicine a quelle del disco fisso virtuale. La creazione di un'unità di archiviazione a dimensione fissa potrebbe richiedere molto tempo, a seconda della dimensione scelta e delle prestazioni in scrittura del disco fisso fisico.</p> - %1 hours, %2 minutes remaining - %1 ore, %2 minuti rimanenti + Storage Type + Tipo di archiviazione - 1 hour, %1 minutes remaining - 1 ora, %1 minuti rimanenti + &Dynamically expanding storage + Archiviazione a espansione &dinamica - 1 hour remaining - 1 ora rimanente + &Fixed-size storage + Archiviazione a dimensione &fissa - %1 minutes remaining - %1 minuti rimanenti + Hard Disk Storage Type + Tipo di archiviazione disco fisso + + + UINewHDWzdPage3 - 1 minute, %2 seconds remaining - 1 minuto, %2 secondi rimanenti + <p>Press the <b>Select</b> button to select the location of a file to store the hard disk data or type a file name in the entry field.</p> + <p>Premi il pulsante <b>Seleziona</b> per selezionare la posizione di un file per memorizzare i dati del disco fisso o digita un nome file nel campo di inserimento.</p> - 1 minute remaining - 1 minuto rimanente + &Location + &Posizione - %1 seconds remaining - %1 secondi rimanenti + <p>Select the size of the virtual hard disk in megabytes. This size will be reported to the Guest OS as the maximum size of this hard disk.</p> + <p>Seleziona la dimensione del disco fisso virtuale in megabyte. Questa dimensione sarà riportata nel sistema Guest come dimensione massima del disco fisso.</p> - A few seconds remaining - Pochi secondi rimanenti + &Size + &Dimensione - Canceling... - Annullamento in corso... + Virtual Disk Location and Size + Posizione e dimensione del disco virtuale - Cancel the current operation - Annulla l'operazione corrente + Select a file for the new hard disk image file + Seleziona un file per la nuova immagine di disco fisso - %1, %2 remaining - You may wish to translate this more like "Time remaining: %1, %2" - %1, %2 rimanente + Hard disk images (*.vdi) + Immagini disco fisso (*.vdi) - %1 remaining - You may wish to translate this more like "Time remaining: %1" - %1 rimanente + <nobr>%1 (%2 B)</nobr> + <nobr>%1 (%2 B)</nobr> - UISelectorWindow + UINewHDWzdPage4 - Show Toolbar - Mostra la barra degli strumenti + You are going to create a new virtual hard disk with the following parameters: + Stai per creare un nuovo disco fisso virtuale con i seguenti parametri: - Show Statusbar - Mostra la barra di stato + Summary + Riepilogo - Select a virtual machine file - Seleziona un file di macchina virtuale + Type + summary + Tipo - Virtual machine files (%1) - File di macchina virtuale (%1) + Location + summary + Posizione - <h3>Welcome to VirtualBox!</h3><p>The left part of this window is a list of all virtual machines on your computer. The list is empty now because you haven't created any virtual machines yet.<img src=:/welcome.png align=right/></p><p>In order to create a new virtual machine, press the <b>New</b> button in the main tool bar located at the top of the window.</p><p>You can press the <b>%1</b> key to get instant help, or visit <a href=http://www.virtualbox.org>www.virtualbox.org</a> for the latest information and news.</p> - <h3>Benvenuti in VirtualBox!</h3><p>La parte sinistra di questa finestra visualizza un elenco delle macchine virtuali sul tuo computer. L'elenco al momento è vuoto perché non sono ancora state create macchine virtuali.<img src=:/welcome.png align=right/></p><p>Per creare una nuova macchina virtuale, premere il pulsante <b>Nuova</b> nella barra degli strumenti principale posizionata nella parte alta della finestra.</p><p>Premere il tasto <b>%1</b> per ottenere aiuto immediatamente, o visitare <a href=http://www.virtualbox.org>www.virtualbox.org</a> per le ultime notizie e informazioni.</p> + Size + summary + Dimensione - Manager - Note: main window title which is pretended by the product name. - Gestore + If the above settings are correct, press the <b>%1</b> button. Once you press it, a new hard disk will be created. + Se le precedenti impostazioni sono corrette, premi il pulsante <b>%1</b>. Una volta premuto, sarà creato un nuovo disco fisso. - UISession + UINewVMWzd - Install - Installa + Create New Virtual Machine + Crea una nuova macchina virtuale - - - UISettingsDialog - <i>Select a settings category from the list on the left-hand side and move the mouse over a settings item to get more information.</i> - <i>Seleziona una categoria di impostazioni dall'elenco sul lato sinistro e sposta il puntatore del mouse su un elemento delle impostazioni per ottenere ulteriori informazioni.</i> + Create + Crea - On the <b>%1</b> page, %2 - Sulla pagina <b>%1</b>, %2 + <p>This wizard will guide you through the steps that are necessary to create +a new virtual machine for VirtualBox.</p> +<p>Use the <b>Next</b> button to go the next page of the wizard +and the <b>Back</b> button to return to the previous page.</p> + <p>Questa procedura ti guiderà attraverso i passi necessari per creare una +nuova macchina virtuale per VirtualBox.</p> +<p>Usa il pulsante <b>Avanti</b> per passare alla pagina successiva della procedura guidata +e il pulsante <b>Indietro</b> per tornare a quella precedente.</p> - Invalid settings detected - Rilevate impostazioni non valide + Welcome to the New Virtual Machine Wizard! + Benvenuto alla procedura guidata per la creazione di una nuova macchina virtuale! - Non-optimal settings detected - Rilevate impostazioni non ottimali + <p>Enter a name for the new virtual machine and select the type of the guest operating +system you plan to install onto the virtual machine.</p> +<p>The name of the virtual machine usually indicates its software and hardware configuration. +It will be used by all VirtualBox components to identify your virtual machine.</p> + <p>Inserisci un nome per la nuova macchina virtuale e scegli un tipo di sistema +operativo da installare nella macchina.</p> +<p>Il nome della macchina solitamente indica la propria configurazione hardware e software. +Verrà utilizzato da tutti i componenti di VirtualBox per identificare la macchina virtuale.</p> - Settings - Impostazioni + N&ame + N&ome - - - UISettingsDialogGlobal - General - Generale + OS &Type + Sis&tema operativo - Input - Inserimento + VM Name and OS Type + Nome della MV e tipo di sistema operativo - Update - Aggiornamento + <p>Select the amount of base memory (RAM) in megabytes to be allocated to the virtual machine.</p> + <p>Seleziona l'ammontare della memoria di base (RAM) in megabyte da allocare per la macchina virtuale.</p> - Language - Lingua + Base &Memory Size + Dimensione della &memoria di base - USB - USB + < + < - Network - Rete + = + = - Extensions - Estensioni + > + > - VirtualBox - %1 - VirtualBox - %1 + MB + MB - Proxy - Proxy + Memory + Memoria - Display - Schermo + <p>Select a hard disk image to be used +as the boot hard disk of the virtual machine. You can either create a new hard +disk using the <b>New</b> button or select an existing hard disk +image from the drop-down list or by pressing the <b>Existing</b> +button (to invoke the Virtual Disk Manager dialog).</p> +<p>If you need a more complicated hard disk setup, you can also skip this +step and attach hard disks later using the VM Settings dialog.</p> + <p>Scegli un'immagine di hard disk virtual da usare +come hard disk di avvio della Macchina Virtuale. Puoi creare un nuovo hard +disk usando il pulsante <b>Nuovo</b> o selezionare un'immagine esistente +dal menu a tendina o facendo clic sul pulsante <b>Esistente</b> (per lanciare +il gestore di dischi virtuali).</p> +<p>Se hai bisogno di impostazioni avanzate per l'hard disk, puoi anche saltare +questo passo e collegare hard disk più tardi tramite Impostazioni della MV.</p> - - - UISettingsDialogMachine - General - Generale + B&oot Hard Disk (Primary Master) + Hard disk di avvi&o (Primary Master) - System - Sistema + N&ew... + N&uovo... - Display - Schermo + E&xisting... + E&sistente... - Storage - Archiviazione + Virtual Hard Disk + Disco fisso virtuale - Audio - Audio + + <p> + You are going to create a new virtual machine + with the following parameters: + </p> + + + <p> + Stai per creare una nuova macchina virtuale + con i seguenti parametri: + </p> + - Network - Rete + + <p> + If the above is correct press the <b>Finish</b> button. + Once you press it, a new virtual machine will be created. + </p><p> + Note that you can alter these and all other setting of the + created virtual machine at any time using the + <b>Settings</b> dialog accessible through + the menu of the main window. + </p> + + + <p> + Se le impostazioni sono corrette premi il pulsante <b>Fine</b>. + Una volta premuto, la Macchina Virtuale sarà creata. + </p><p> + Nota che puoi modificare queste e altre impostazioni della + Macchina Virtuale in un qualsiasi momento con la finestra + <b>Impostazioni</b> accessibile dal menu della finestra + principale. + </p> + - Ports - Porte + Summary + Riassunto - Serial Ports - Porte seriali + <qt>%1&nbsp;MB</qt> + <qt>%1&nbsp;MB</qt> - Parallel Ports - Porte parallele + <tr><td>Name:</td><td>%1</td></tr><tr><td>OS Type:</td><td>%2</td></tr><tr><td>Base Memory:</td><td>%3&nbsp;MB</td></tr> + <tr><td>Nome:</td><td>%1</td></tr><tr><td>Sistema operativo:</td><td>%2</td></tr><tr><td>Memoria di base:</td><td>%3&nbsp;MB</td></tr> - USB - USB + <tr><td>Start-up Disk:</td><td>%4</td></tr> + <tr><td>Hard disk di avvio:</td><td>%4</td></tr> - Shared Folders - Cartelle condivise + The recommended base memory size is <b>%1</b> MB. + La dimensione consigliata per la memoria di base è <b>%1</b> MB. - %1 - %2 - %1 - %2 + The recommended size of the start-up disk is <b>%1</b> MB. + La dimensione consigliata per il disco fisso di avvio è <b>%1</b> MB. - you have selected a 64-bit guest OS type for this VM. As such guests require hardware virtualization (VT-x/AMD-V), this feature will be enabled automatically. - hai selezionato un sistema operativo guest a 64 bit per questa MV. Poiché questo tipo di guest richiede la virtualizzazione hardware (VT-x/AMD-V), questa funzionalità sarà abilitata automaticamente. + <p>This wizard will guide you through the steps that are necessary to create a new virtual machine for VirtualBox.</p><p>Use the <b>Next</b> button to go the next page of the wizard and the <b>Back</b> button to return to the previous page.</p> + <p>Questa procedura ti guiderà attraverso le fasi necessarie per creare una nuova macchina virtuale di VirtualBox.</p><p>Utilizza il pulsante <b>Avanti</b> per spostarti alla pagina successiva della procedura guidata e il pulsante <b>Indietro</b> per tornare alla pagina precedente.</p> - you have 2D Video Acceleration enabled. As 2D Video Acceleration is supported for Windows guests only, this feature will be disabled. - hai l'accelerazione video 2D abilitata. Poiché l'accelerazione 2D è supportata dai soli guest Windows, questa funzionalità sarà disabilitata. + < &Back + < &Indietro - you have enabled a USB HID (Human Interface Device). This will not work unless USB emulation is also enabled. This will be done automatically when you accept the VM Settings by pressing the OK button. - hai abilitato un HID USB (dispositivo di interfaccia umana). Non funzionerà se l'emulazione USB non è abilitata. Ciò avviene automaticamente quando accetti le impostazione della MV, premendo il pulsante OK. + &Next > + &Avanti > - at most one supported - al massimo uno supportato + <p>Enter a name for the new virtual machine and select the type of the guest operating system you plan to install onto the virtual machine.</p><p>The name of the virtual machine usually indicates its software and hardware configuration. It will be used by all VirtualBox components to identify your virtual machine.</p> + <p>Inserisci un nome per la nuova macchina virtuale e seleziona il tipo di sistema operativo che desideri installare.</p><p>Il nome della macchina virtuale indica normalmente la sua configurazione software e hardware. Sarà utilizzato da tutti i componenti di VirtualBox per identificare la macchina virtuale.</p> - up to %1 supported - fino a %1 supportati + <p>You are going to create a new virtual machine with the following parameters:</p> + <p>Stai per creare una nuova macchina virtuale con i seguenti parametri:</p> - you are currently using more storage controllers than a %1 chipset supports. Please change the chipset type on the System settings page or reduce the number of the following storage controllers on the Storage settings page: %2. - stai attualmente utilizzando più controller di archiviazione di quanti un chipset %1 supporti. Cambia il tipo di chipset nella pagina delle impostazioni Sistema o riduci il numero dei seguenti controller di archiviazione nella pagina delle impostazioni Archiviazione: %2. + <p>If the above is correct press the <b>Finish</b> button. Once you press it, a new virtual machine will be created. </p><p>Note that you can alter these and all other setting of the created virtual machine at any time using the <b>Settings</b> dialog accessible through the menu of the main window.</p> + <p>Se le informazioni precedenti sono corrette, premi il pulsante <b>Fine</b>. Una volta premuto, sarà creata una nuova macchina virtuale. </p><p>Nota che puoi modificare queste e tutte le altre impostazioni della macchina virtuale creata in ogni momento utilizzando la finestra <b>Impostazioni</b> dal menu della finestra principale.</p> - - - UITextEditor - Edit text - Modifica testo + &Finish + &Fine - &Replace... - &Sostituisci... + MB + megabytes + MB - Replaces the current text with the content of a file. - Sostituisce il testo attuale con il contenuto di un file specificato. + Name + summary + Nome - Text (*.txt);;All (*.*) - Testo (*.txt);;Tutti (*.*) + OS Type + summary + Sistema operativo - Select a file to open... - Seleziona un file da aprire... + Base Memory + summary + Memoria di base - - - UIUpdateManager - 1 day - 1 giorno + Start-up Disk + summary + Disco fisso di avvio - 2 days - 2 giorni + Cancel + Annulla - 3 days - 3 giorni + <p>Select a hard disk image to be used as the boot hard disk of the virtual machine. You can either create a new hard disk using the <b>New</b> button or select an existing hard disk image from the drop-down list or by pressing the <b>Existing</b> button (to invoke the Virtual Media Manager dialog).</p><p>If you need a more complex virtual disk setup you can skip this step and make the changes to the machine settings once the machine is created.</p> + <p>Seleziona un'immagine di disco fisso da utilizzare come disco fisso di avvio della macchina virtuale. Puoi creare un nuovo disco fisso utilizzando il pulsante <b>Nuovo</b> o selezionare un'immagine esistente dell'elenco a tendina premendo il pulsante <b>Esistente</b> (per richiamare la finestra del gestore supporti virtuali).</p><p>Se necessiti di una configurazione più complessa dei dischi fissi, puoi anche saltare questa fase e collegare successivamente dischi fissi utilizzando la finestra Impostazioni VM.</p> - 4 days - 4 giorni + Start-up &Disk (Primary Master) + &Disco fisso di avvio (Master primario) - 5 days - 5 giorni + &Create new hard disk + &Crea un nuovo disco fisso - 6 days - 6 giorni + &Use existing hard disk + &Usa un disco fisso esistente + + + UINewVMWzdPage1 - 1 week - 1 settimana + Welcome to the New Virtual Machine Wizard! + Benvenuti nella procedura di creazione di una nuova macchina virtuale! - 2 weeks - 2 settimane + <p>This wizard will guide you through the steps that are necessary to create a new virtual machine for VirtualBox.</p><p>%1</p> + <p>Questa procedura ti guiderà attraverso i passi necessari per creare una nuova macchina virtuale in VirtualBox.</p><p>%1</p> + + + UINewVMWzdPage2 - 3 weeks - 3 settimane + <p>Enter a name for the new virtual machine and select the type of the guest operating system you plan to install onto the virtual machine.</p><p>The name of the virtual machine usually indicates its software and hardware configuration. It will be used by all VirtualBox components to identify your virtual machine.</p> + <p>Inserisci un nome per la nuova macchina virtuale e seleziona il tipo di sistema operativo che desideri installare.</p><p>Il nome della macchina virtuale indica normalmente la sua configurazione software e hardware. Sarà utilizzato da tutti i componenti di VirtualBox per identificare la macchina virtuale.</p> - 1 month - 1 mese + N&ame + N&ome - Never - Mai + OS &Type + Sis&tema operativo - Connection timed out. - Timeout della connessione. + VM Name and OS Type + Nome MV e sistema operativo + + + UINewVMWzdPage3 - Chec&k - &Controlla + <p>Select the amount of base memory (RAM) in megabytes to be allocated to the virtual machine.</p> + <p>Seleziona l'ammontare della memoria di base (RAM) in megabyte da allocare per la macchina virtuale.</p> - &Close - &Chiudi + Base &Memory Size + Dimensione della &memoria di base - VirtualBox Update Wizard - Procedura di aggiornamento di VirtualBox + MB + - Check for Updates - Controlla aggiornamenti + Memory + Memoria - Cancel - Annulla + The recommended base memory size is <b>%1</b> MB. + La dimensione consigliata della memoria di base è <b>%1</b> MB. + + + UINewVMWzdPage4 - Summary - Riepilogo + &Create new hard disk + &Crea un nuovo disco fisso - <p>A new version of VirtualBox has been released! Version <b>%1</b> is available at <a href="http://www.virtualbox.org/">virtualbox.org</a>.</p><p>You can download this version using the link:</p><p><a href=%2>%3</a></p> - <p>Una nuova versione di VirtualBox è stata rilasciata! La versione <b>%1</b> è disponibile presso <a href="http://www.virtualbox.org/">virtualbox.org</a>.</p><p>Puoi scaricare questa versione da questo collegamento diretto:</p><p><a href=%2>%3</a></p> + &Use existing hard disk + &Usa un disco fisso esistente - <p>Unable to obtain the new version information due to the following network error:</p><p><b>%1</b></p> - <p>Impossibile ottenere informazioni sulla nuova versione a causa del seguente errore:</p><p><b>%1</b></p> + Virtual Hard Disk + Disco fisso virtuale - You are already running the most recent version of VirtualBox. - Hai già installato l'ultima versione di VirtualBox. Ripeti il controllo tra qualche tempo. + Start-up &Disk + &Disco d'avvio - <p>This wizard will connect to the VirtualBox web-site and check if a newer version of VirtualBox is available.</p><p>Use the <b>Check</b> button to check for a new version now or the <b>Cancel</b> button if you do not want to perform this check.</p><p>You can run this wizard at any time by choosing <b>Check for Updates...</b> from the <b>Help</b> menu.</p> - <p>Questa procedura guidata si collegherà al sito web di VirtualBox e controllerà la disponibilità di una versione di VirtualBox.</p><p>Utilizza il pulsante <b>Controlla</b> per verificare subito la presenza di una nuova versione o il pulsante <b>Annulla</b> se non vuoi eseguire il controllo.</p><p>Puoi eseguire questa procedura guidata in qualunque momento scegliendo <b>Controllo aggiornamenti...</b> dal menu <b>Aiuto</b>.</p> + <p>If you wish you can now add a start-up disk to the new machine. You can either create a new virtual disk or select one from the list or from another location using the folder icon.</p><p>If you need a more complex virtual disk setup you can skip this step and make the changes to the machine settings once the machine is created.</p> + <p>Se lo desideri, ora puoi aggiungere un disco di avvio alla macchina virtuale. Puoi creare un nuovo disco virtuale o selezionarne uno dall'elenco o da un'altra posizione premendo il pulsante con l'icona di una cartella.</p><p>Se necessiti di una configurazione più complessa dei dischi virtuali, puoi anche saltare questa fase e apportare le modifiche alle impostazioni della macchina una volta creata.</p> - - - UIUpdateStepVirtualBox - Checking for a new VirtualBox version... - Verifica della disponibilità di una nuova versione di VirtualBox in corso... + Choose a virtual hard disk file... + Scegli un file di disco fisso virtuale... - - - UIVMCloseDialog - Close Virtual Machine - Chiudi la macchina virtuale + The recommended size of the start-up disk is <b>%1</b>. + La dimensione consigliata del disco di avvio è <b>%1</b>. - You want to: - Vuoi: + <p>Select a hard disk image to be used as the boot hard disk of the virtual machine. You can either create a new hard disk using the <b>New</b> button or select an existing hard disk image from the drop-down list or by pressing the <b>Existing</b> button (to invoke the Virtual Media Manager dialog).</p><p>If you need a more complex virtual disk setup you can skip this step and make the changes to the machine settings once the machine is created.</p> + <p>Seleziona un'immagine di disco fisso da utilizzare come disco di avvio della macchina virtuale. Puoi creare un nuovo disco fisso utilizzando il pulsante <b>Nuovo</b> o selezionare un'immagine esistente dell'elenco a tendina, premendo il pulsante <b>Esistente</b> (per richiamare la finestra del gestore supporti virtuali).</p><p>Se necessiti di una configurazione avanzata dei dischi fissi, puoi anche saltare questa fase e collegare successivamente dischi fissi utilizzando la finestra Impostazioni MV.</p> - <p>Saves the current execution state of the virtual machine to the physical hard disk of the host PC.</p><p>Next time this machine is started, it will be restored from the saved state and continue execution from the same place you saved it at, which will let you continue your work immediately.</p><p>Note that saving the machine state may take a long time, depending on the guest operating system type and the amount of memory you assigned to the virtual machine.</p> - <p>Salva lo stato di esecuzione corrente della macchina virtuale sul disco fisico del PC host.</p><p>Al prossimo riavvio della macchina, sarà ripristinato dallo stato salvato e continuerà l'esecuzione dallo stesso punto in cui lo hai salvato, permettendoti di continuare immediatamente il tuo lavoro.</p><p>Nota che il salvataggio dello stato della macchina potrebbe richiedere del tempo, a seconda del tipo di sistema operativo guest e del quantitativo di memoria assegnata alla macchina virtuale.</p> + Start-up &Disk (Primary Master) + &Disco fisso di avvio (Master primario) - &Save the machine state - &Salvare lo stato della macchina + The recommended size of the start-up disk is <b>%1</b> MB. + La dimensione consigliata per il disco fisso di avvio è <b>%1</b> MB. + + + UINewVMWzdPage5 - <p>Sends the ACPI Power Button press event to the virtual machine.</p><p>Normally, the guest operating system running inside the virtual machine will detect this event and perform a clean shutdown procedure. This is a recommended way to turn off the virtual machine because all applications running inside it will get a chance to save their data and state.</p><p>If the machine doesn't respond to this action then the guest operating system may be misconfigured or doesn't understand ACPI Power Button events at all. In this case you should select the <b>Power off the machine</b> action to stop virtual machine execution.</p> - <p>Invia l'evento ACPI di pressione del pulsante di accensione alla macchina virtuale.</p><p>Di solito, il sistema operativo guest in esecuzione sulla macchina virtuale rileverà questo evento ed eseguirà una corretta procedura di spegnimento. Questo è un modo consigliato di spegnere la macchina virtuale poiché sarà possibile salvare i dati e lo stato delle applicazione in esecuzione.</p><p>Se la macchina non risponde a questo tipo di azione, il sistema operativo guest potrebbe essere mal configurato o non intercettare eventi ACPI del pulsante di accensione. In questo caso dovresti selezionare l'azione <b>Spegni la macchina</b> per fermare l'esecuzione della macchina virtuale.</p> + <p>You are going to create a new virtual machine with the following parameters:</p> + <p>Stai per creare una nuova macchina virtuale con i seguenti parametri:</p> - S&end the shutdown signal - Invia il s&egnale di arresto + Summary + Riepilogo - <p>Turns off the virtual machine.</p><p>Note that this action will stop machine execution immediately so that the guest operating system running inside it will not be able to perform a clean shutdown procedure which may result in <i>data loss</i> inside the virtual machine. Selecting this action is recommended only if the virtual machine does not respond to the <b>Send the shutdown signal</b> action.</p> - <p>Spegne la macchina virtuale.</p><p>Nota che questa azione fermerà immediatamente l'esecuzione della macchina e il sistema operativo guest non sarà in grado di effettuare una procedura corretta di spegnimento che potrebbe produrre <i>perdite di dati</i> della macchina virtuale. La selezione di questa azione è consigliata solo se la macchina virtuale non risponde all'azione <b>Invia segnale di spegnimento</b>.</p> + Name + summary + Nome - &Power off the machine - S&pegni la macchina + OS Type + summary + Sistema operativo - Restore the machine state stored in the current snapshot - Ripristina lo stato della macchina memorizzato nell'istantanea corrente + Base Memory + summary + Memoria di base - <p>When checked, the machine will be returned to the state stored in the current snapshot after it is turned off. This is useful if you are sure that you want to discard the results of your last sessions and start again at that snapshot.</p> - <p>Se marcata, lo stato della macchina sarà ripristinato dallo stato memorizzato nell'istantanea corrente immediatamente dopo lo spegnimento. Tale funzionalità è utile se volete scartare i risultati delle ultime sessioni e tornare all'istantanea corrente.</p> + Start-up Disk + summary + Disco di avvio - &Restore current snapshot '%1' - &Ripristina l'istantanea corrente '%1' + <p>If the above is correct press the <b>%1</b> button. Once you press it, a new virtual machine will be created. </p><p>Note that you can alter these and all other setting of the created virtual machine at any time using the <b>Settings</b> dialog accessible through the menu of the main window.</p> + <p>Se le informazioni precedenti sono corrette, premi il pulsante <b>%1</b>. Una volta premuto, sarà creata una nuova macchina virtuale. </p><p>Nota che puoi modificare queste e tutte le altre impostazioni della macchina virtuale creata in ogni momento utilizzando la finestra <b>Impostazioni</b> accessibile dal menu della finestra principale.</p> - UIVMDesktop + UIPortForwardingModel - &Details - &Dettagli + Name + Nome - &Snapshots - I&stantanee + Protocol + Protocollo - - - UIVMListView - Inaccessible - Inaccessibile + Host IP + IP dell'host - <nobr>%1<br></nobr><nobr>%2 since %3</nobr><br><nobr>Session %4</nobr> - VM tooltip (name, last state change, session state) - <nobr>%1<br></nobr><nobr>%2 da %3</nobr><br><nobr>Sessione %4</nobr> + Host Port + Porta dell'host - <nobr><b>%1</b><br></nobr><nobr>Inaccessible since %2</nobr> - Inaccessible VM tooltip (name, last state change) - <nobr><b>%1</b><br></nobr><nobr>Inaccessibile da %2</nobr> + Guest IP + IP del Guest - S&how - &Mostra + Guest Port + Porta del Guest + + + UIProgressDialog - Switch to the window of the selected virtual machine - Passa alla finestra della macchina virtuale selezionata + A few seconds remaining + Pochi secondi rimanenti - S&tart - A&vvia + Canceling... + Annullamento in corso... - Start the selected virtual machine - Avvia la macchina virtuale selezionata + &Cancel + A&nnulla - R&esume - Ripr&endi + Cancel the current operation + Annulla l'operazione corrente - Resume the execution of the virtual machine - Riprendi l'esecuzione della macchina virtuale + %1, %2 remaining + You may wish to translate this more like "Time remaining: %1, %2" + %1, %2 rimanente - &Pause - &Pausa + %1 remaining + You may wish to translate this more like "Time remaining: %1" + %1 rimanente - Suspend the execution of the virtual machine - Sospendi l'esecuzione della macchina virtuale + Time remaining: %1 + Tempo rimanente. %1 - - - UIVMLogViewer - Log Viewer - Visualizzatore di log + %1 days, %2 hours remaining + %1 giorni, %2 ore rimanenti - &Save - &Salva + %1 days, %2 minutes remaining + %1 giorni, %2 minuti rimanenti - Alt+S - Alt+S + %1 days remaining + %1 giorni rimanenti - &Refresh - Aggio&rna + 1 day, %1 hours remaining + 1 giorno, %1 ore rimanenti - Alt+R - Alt+R + 1 day, %1 minutes remaining + 1 giorno, %1 minuti rimanenti - &Close - &Chiudi + 1 day remaining + 1 giorno rimanente - Alt+C - Alt+C + %1 hours, %2 minutes remaining + %1 ore, %2 minuti rimanenti - %1 - VirtualBox Log Viewer - %1 - Visualizzatore Log di VirtualBox + 1 hour, %1 minutes remaining + 1 ora, %1 minuti rimanenti - <p>No log files found. Press the <b>Refresh</b> button to rescan the log folder <nobr><b>%1</b></nobr>.</p> - <p>Nessun file di log trovato. Premi il pulsante <b>Aggiorna</b> per analizzare nuovamente la cartella dei log <nobr><b>%1</b></nobr>.</p> + 1 hour remaining + 1 ora rimanente - Save VirtualBox Log As - Salva log di VirtualBox come + %1 minutes remaining + %1 minuti rimanenti - Help - Aiuto + 1 minute, %2 seconds remaining + 1 minuto, %2 secondi rimanenti - F1 - F1 + 1 minute remaining + 1 minuto rimanente - &Find - &Cerca + %1 seconds remaining + %1 secondi rimanenti + + + UISelectorWindow - Alt+F - Alt+C + Show Toolbar + Mostra la barra degli strumenti - Close - Chiudi + Show Statusbar + Mostra la barra di stato - Close the search panel - Chiudi il pannello di ricerca + Select a virtual machine file + Seleziona un file di macchina virtuale - Enter a search string here - Inserisci una parola da cercare + Virtual machine files (%1) + File di macchina virtuale (%1) - &Previous - &Precedente + <h3>Welcome to VirtualBox!</h3><p>The left part of this window is a list of all virtual machines on your computer. The list is empty now because you haven't created any virtual machines yet.<img src=:/welcome.png align=right/></p><p>In order to create a new virtual machine, press the <b>New</b> button in the main tool bar located at the top of the window.</p><p>You can press the <b>%1</b> key to get instant help, or visit <a href=http://www.virtualbox.org>www.virtualbox.org</a> for the latest information and news.</p> + <h3>Benvenuti in VirtualBox!</h3><p>La parte sinistra di questa finestra visualizza un elenco delle macchine virtuali sul tuo computer. L'elenco al momento è vuoto perché non sono ancora state create macchine virtuali.<img src=:/welcome.png align=right/></p><p>Per creare una nuova macchina virtuale, premi il pulsante <b>Nuova</b> nella barra degli strumenti principale posizionata nella parte alta della finestra.</p><p>Premi il tasto <b>%1</b> per ottenere aiuto immediatamente, o visita <a href=http://www.virtualbox.org>www.virtualbox.org</a> per le ultime notizie e informazioni.</p> - Search for the previous occurrence of the string - Cerca l'occorrenza precedente + Manager + Note: main window title which is pretended by the product name. + Gestore + + + UISession - &Next - Segue&nte + Install + Installa + + + UISettingsDialog - Search for the next occurrence of the string - Cerca l'occorrenza successiva + <i>Select a settings category from the list on the left-hand side and move the mouse over a settings item to get more information.</i> + <i>Seleziona una categoria di impostazioni dall'elenco sul lato sinistro e sposta il puntatore del mouse su un elemento delle impostazioni per ottenere ulteriori informazioni.</i> - C&ase Sensitive - M&aiuscole/minuscole + On the <b>%1</b> page, %2 + Sulla pagina <b>%1</b>, %2 - Perform case sensitive search (when checked) - Abilita la ricerca confrontando maiuscole e minuscole (se marcata) + Invalid settings detected + Rilevate impostazioni non valide - String not found - Nessuna occorrenza + Non-optimal settings detected + Rilevate impostazioni non ottimali - - - UIVMPreviewWindow - Update Disabled - Aggiornamento disabilitato + Settings + Impostazioni + + + UISettingsDialogGlobal - Every 0.5 s - Ogni 0.5 s + General + Generale - Every 1 s - Ogni 1 s + Input + Inserimento - Every 2 s - Ogni 2 s + Update + Aggiornamento - Every 5 s - Ogni 5 s + Language + Lingua - Every 10 s - Ogni 10 s + USB + USB - No Preview - Nessuna anteprima + Network + Rete - - - VBoxAboutDlg - VirtualBox - About - Informazioni su VirtualBox + Extensions + Estensioni - <qt>VirtualBox Graphical User Interface Version %1<br> -%2</qt> - <qt>VirtualBox Graphical User Interface, versione %1<br> -%2</qt> + VirtualBox - %1 + VirtualBox - %1 - VirtualBox Graphical User Interface - Interfaccia grafica utente di VirtualBox + Proxy + Proxy - Version %1 - Versione %1 + Display + Schermo - VBoxAboutNonOSEDlg + UISettingsDialogMachine - VirtualBox - About - Informazioni su VirtualBox + General + Generale - VirtualBox Graphical User Interface -Version %1 - Interfaccia Grafica di VirtualBox -Versione %1 + System + Sistema - - - VBoxAddNIDialog - Add Host Interface - Aggiungi interfaccia host + Display + Schermo - Interface Name - Nome dell'interfaccia + Storage + Archiviazione - Descriptive name of the new network interface - Descrizione della nuova interfaccia di rete + Audio + Audio - &OK - &OK + Network + Rete - Cancel - Annulla + Ports + Porte - - - VBoxAddSFDialog - Add Share - Aggiungi condivisione + Serial Ports + Porte seriali - Edit Share - Modifica condivisione + Parallel Ports + Porte parallele - Select a folder to share - Scegli una cartella da condividere + USB + USB - Folder Path - Percorso cartella + Shared Folders + Cartelle condivise - Folder Name - Nome cartella + %1 - %2 + %1 - %2 - Displays the path to an existing folder on the host PC. - Visualizza il percorso di una cartella esistente nel PC Host. + you have selected a 64-bit guest OS type for this VM. As such guests require hardware virtualization (VT-x/AMD-V), this feature will be enabled automatically. + hai selezionato un sistema operativo guest a 64 bit per questa MV. Poiché questo tipo di guest richiede la virtualizzazione hardware (VT-x/AMD-V), questa funzionalità sarà abilitata automaticamente. - Displays the name of the shared folder (as it will be seen by the guest OS). - Visualizza il nome della cartella condivisa (come sarà vista dal sistema Guest). + you have 2D Video Acceleration enabled. As 2D Video Acceleration is supported for Windows guests only, this feature will be disabled. + hai l'accelerazione video 2D abilitata. Poiché l'accelerazione 2D è supportata dai soli guest Windows, questa funzionalità sarà disabilitata. - Opens the dialog to select a folder. - Apre la finestra di selezione cartella. + you have enabled a USB HID (Human Interface Device). This will not work unless USB emulation is also enabled. This will be done automatically when you accept the VM Settings by pressing the OK button. + hai abilitato un HID USB (dispositivo di interfaccia umana). Non funzionerà se l'emulazione USB non è abilitata. Ciò avviene automaticamente quando accetti le impostazione della MV, premendo il pulsante OK. - OK - OK + at most one supported + al massimo uno supportato - Cancel - Annulla + up to %1 supported + fino a %1 supportati - &OK - &OK + you are currently using more storage controllers than a %1 chipset supports. Please change the chipset type on the System settings page or reduce the number of the following storage controllers on the Storage settings page: %2. + stai attualmente utilizzando più controller di archiviazione di quanti un chipset %1 supporti. Cambia il tipo di chipset nella pagina delle impostazioni Sistema o riduci il numero dei seguenti controller di archiviazione nella pagina delle impostazioni Archiviazione: %2. + + + UITextEditor - &Make Permanent - Rendi per&manente + Edit text + Modifica testo - &Read-only - Sola lettu&ra + &Replace... + &Sostituisci... - When checked, the guest OS will not be able to write to the specified shared folder. - Se selezionato, il sistema Guest non sarà in grado di scrivere nella cartella specificata. + Replaces the current text with the content of a file. + Sostituisce il testo attuale con il contenuto di un file specificato. - - - VBoxCloseVMDlg - Close Virtual Machine - Chiudi la macchina virtuale + Text (*.txt);;All (*.*) + Testo (*.txt);;Tutti (*.*) - You want to: - Vuoi: + Select a file to open... + Seleziona un file da aprire... + + + UIUpdateManager - &Save the machine state - &Salvare lo stato della macchina + 1 day + 1 giorno - Alt+S - Alt+S + 2 days + 2 giorni - &Power off the machine - S&pegnere la macchina + 3 days + 3 giorni - Alt+P - Alt+P + 4 days + 4 giorni - &Revert to the current snapshot - &Ripristinare l'istantanea corrente + 5 days + 5 giorni - Alt+R - Alt+R + 6 days + 6 giorni - Revert the machine state to the state stored in the current snapshot - Ripristinare lo stato della macchina a quello memorizzato nell'istantanea corrente + 1 week + 1 settimana - Help - Aiuto + 2 weeks + 2 settimane - F1 - F1 + 3 weeks + 3 settimane - &OK - &OK + 1 month + 1 mese - Alt+O - Alt+O + Never + Mai - Cancel - Annulla + Connection timed out. + Timeout della connessione. - <p>Saves the current execution state of the virtual machine to the physical hard disk of the host PC.</p> -<p>Next time this machine is started, it will be restored from the saved state and continue execution from the same place you saved it at, which will let you continue your work immediately.</p> -<p>Note that saving the machine state may take a long time, depending on the guest operating system type and the amount of memory you assigned to the virtual machine.</p> - <p>Salva lo stato d'esecuzione attuale della macchina virtuale nel disco rigido del sistema Host.</p> -<p>La prossima volta che questa macchina verrà avviata sarà ripristinata dallo stato salvato e continuerà l'esecuzione dallo stesso momento in cui l'avete salvata, il che vi permetterà di continuare il vostro lavoro immediatamente.</p> -<p>Notate che salvare lo stato della macchina può occupare diverso tempo, a seconda del sistema Guest e dell'ammontare di memoria che avete assegnato alla macchina virtuale.</p> + Chec&k + &Controlla - S&end the shutdown signal - Invia il s&egnale di arresto + &Close + &Chiudi - <p>Sends the ACPI Power Button press event to the virtual machine.</p> -<p>Normally, the guest operating system running inside the virtual machine will detect this event and perform a clean shutdown procedure. This is a recommended way to turn off the virtual machine because all applications running inside it will get a chance to save their data and state.</p> -<p>If the machine doesn't respond to this action then the guest operating system may be misconfigured or doesn't understand ACPI Power Button events at all. In this case you should select the <b>Power off the machine</b> action to stop virtual machine execution.</p> - <p>Invia l'evento ACPI Power Button Press alla macchina virtuale.</p> -<p>Normalmente il sistema Guest che gira nella macchina virtuale individuerà tale evento e procederà ad una corretta procedura di arresto. Questo è il sistema raccomandato per spegnere la macchina virtuale poiché tutte le applicazioni che girano all'interno avranno la possibilità di salvare i propri dati e il proprio stato.</p> -<p>Se la macchina non risponde a quest'azione, il sistema operativo Guest potrebbe essere mal configurato oppure non riconoscere gli eventi ACPI Power Button. In questo caso dovreste selezionare l'azione <b>Spegnere la macchina</b> per fermare l'esecuzione della macchina virtuale.</p> + VirtualBox Update Wizard + Procedura di aggiornamento di VirtualBox - <p>Turns off the virtual machine.</p> -<p>Note that this action will stop machine execution immediately so that the guest operating system running inside it will not be able to perform a clean shutdown procedure which may result in <i>data loss</i> inside the virtual machine. Selecting this action is recommended only if the virtual machine does not respond to the <b>Send the shutdown signal</b> action.</p> - <p>Spegne la macchina virtuale.</p> -<p>Notate che questa azione fermerà l'esecuzione della macchina immediatamente, e il sistema Guest in esecuzione non riuscirà a fare una procedura di shutdown pulita, il che può risultare in <i>perdite di dati</i> all'interno della macchina virtuale. Selezionare quest'azione è raccomandato solo se la macchina virtuale non risponde all'azione <b>Invia il segnale di arresto</b>.</p> + Check for Updates + Controlla aggiornamenti - <p>When checked, the machine will be returned to the state stored in the current snapshot after it is turned off. This is useful if you are sure that you want to discard the results of your last sessions and start again at that snapshot.</p> - <p>Se marcata, lo stato della macchina sarà ripristinato dallo stato memorizzato nell'istantanea corrente immediatamente dopo lo spegnimento. Tale funzionalità è utile se volete scartare i risultati delle ultime sessioni e tornare all'istantanea corrente.</p> + Cancel + Annulla - <p>Saves the current execution state of the virtual machine to the physical hard disk of the host PC.</p><p>Next time this machine is started, it will be restored from the saved state and continue execution from the same place you saved it at, which will let you continue your work immediately.</p><p>Note that saving the machine state may take a long time, depending on the guest operating system type and the amount of memory you assigned to the virtual machine.</p> - <p>Salva lo stato di esecuzione corrente della macchina virtuale sul disco fisico del PC host.</p><p>Al prossimo riavvio della macchina, sarà ripristinato dallo stato salvato e continuerà l'esecuzione dallo stesso punto in cui lo hai salvato, permettendoti di continuare immediatamente il tuo lavoro.</p><p>Nota che il salvataggio dello stato della macchina potrebbe richiedere del tempo, a seconda del tipo di sistema operativo guest e del quantitativo di memoria assegnata alla macchina virtuale.</p> + Summary + Riepilogo - <p>Sends the ACPI Power Button press event to the virtual machine.</p><p>Normally, the guest operating system running inside the virtual machine will detect this event and perform a clean shutdown procedure. This is a recommended way to turn off the virtual machine because all applications running inside it will get a chance to save their data and state.</p><p>If the machine doesn't respond to this action then the guest operating system may be misconfigured or doesn't understand ACPI Power Button events at all. In this case you should select the <b>Power off the machine</b> action to stop virtual machine execution.</p> - <p>Invia l'evento ACPI di pressione del pulsante di accensione alla macchina virtuale.</p><p>Di solito, il sistema operativo guest in esecuzione sulla macchina virtuale rileverà questo evento ed eseguirà una corretta procedura di spegnimento. Questo è un modo consigliato di spegnere la macchina virtuale poiché sarà possibile salvare i dati e lo stato delle applicazione in esecuzione.</p><p>Se la macchina non risponde a questo tipo di azione, il sistema operativo guest potrebbe essere mal configurato o non intercettare eventi ACPI del pulsante di accensione. In questo caso dovresti selezionare l'azione <b>Spegni la macchina</b> per fermare l'esecuzione della macchina virtuale.</p> + <p>A new version of VirtualBox has been released! Version <b>%1</b> is available at <a href="http://www.virtualbox.org/">virtualbox.org</a>.</p><p>You can download this version using the link:</p><p><a href=%2>%3</a></p> + <p>Una nuova versione di VirtualBox è stata rilasciata! La versione <b>%1</b> è disponibile presso <a href="http://www.virtualbox.org/">virtualbox.org</a>.</p><p>Puoi scaricare questa versione da questo collegamento diretto:</p><p><a href=%2>%3</a></p> - <p>Turns off the virtual machine.</p><p>Note that this action will stop machine execution immediately so that the guest operating system running inside it will not be able to perform a clean shutdown procedure which may result in <i>data loss</i> inside the virtual machine. Selecting this action is recommended only if the virtual machine does not respond to the <b>Send the shutdown signal</b> action.</p> - <p>Spegne la macchina virtuale.</p><p>Nota che questa azione fermerà immediatamente l'esecuzione della macchina e il sistema operativo guest non sarà in grado di effettuare una procedura corretta di spegnimento che potrebbe risultare in <i>perdite di dati</i> della macchina virtuale. La selezione di questa azione è consigliata solo se la macchina virtuale non risponde all'azione <b>Invia segnale di spegnimento</b>.</p> + <p>Unable to obtain the new version information due to the following network error:</p><p><b>%1</b></p> + <p>Impossibile ottenere informazioni sulla nuova versione a causa del seguente errore:</p><p><b>%1</b></p> - Restore the machine state stored in the current snapshot - Ripristina lo stato della macchina memorizzato nell'istantea corrente + You are already running the most recent version of VirtualBox. + Hai già installato l'ultima versione di VirtualBox. Ripeti il controllo tra qualche tempo. - &Restore current snapshot '%1' - &Ripristina l'istantanea corrente '%1' + <p>This wizard will connect to the VirtualBox web-site and check if a newer version of VirtualBox is available.</p><p>Use the <b>Check</b> button to check for a new version now or the <b>Cancel</b> button if you do not want to perform this check.</p><p>You can run this wizard at any time by choosing <b>Check for Updates...</b> from the <b>Help</b> menu.</p> + <p>Questa procedura guidata si collegherà al sito web di VirtualBox e controllerà la disponibilità di una versione di VirtualBox.</p><p>Utilizza il pulsante <b>Controlla</b> per verificare subito la presenza di una nuova versione o il pulsante <b>Annulla</b> se non vuoi eseguire il controllo.</p><p>Puoi eseguire questa procedura guidata in qualunque momento scegliendo <b>Controllo aggiornamenti...</b> dal menu <b>Aiuto</b>.</p> - VBoxConsoleWnd + UIUpdateStepVirtualBox - <qt>Indicates&nbsp;the&nbsp;activity&nbsp;of&nbsp;attached&nbsp;USB&nbsp;devices<br>%1</qt> - USB device indicator - <qt>Indica&nbsp;lo&nbsp;stato&nbsp;di&nbsp;attività&nbsp;dei&nbsp;dispositivi&nbsp;USB&nbsp;connessi<br>%1</qt> + Checking for a new VirtualBox version... + Verifica la presenza di una nuova versione di VirtualBox... + + + UIVMCloseDialog - <nobr>[<b>not attached</b>]</nobr> - USB device indicator - <nobr>[<b>non connesso</b>]</nobr> + Close Virtual Machine + Chiudi la macchina virtuale - <nobr>[<b>USB Controller is disabled</b>]</nobr> - USB device indicator - <nobr>[<b>Il controller USB è disabilitato</b>]</nobr> + You want to: + Vuoi: - VirtualBox OSE - VirtualBox OSE + <p>Saves the current execution state of the virtual machine to the physical hard disk of the host PC.</p><p>Next time this machine is started, it will be restored from the saved state and continue execution from the same place you saved it at, which will let you continue your work immediately.</p><p>Note that saving the machine state may take a long time, depending on the guest operating system type and the amount of memory you assigned to the virtual machine.</p> + <p>Salva lo stato di esecuzione corrente della macchina virtuale sul disco fisico del PC host.</p><p>Al prossimo riavvio della macchina, sarà ripristinato dallo stato salvato e continuerà l'esecuzione dallo stesso punto in cui lo hai salvato, permettendoti di continuare immediatamente il tuo lavoro.</p><p>Nota che il salvataggio dello stato della macchina potrebbe richiedere del tempo, a seconda del tipo di sistema operativo guest e del quantitativo di memoria assegnata alla macchina virtuale.</p> - innotek VirtualBox - innotek VirtualBox + &Save the machine state + &Salvare lo stato della macchina - &Fullscreen Mode - Modalità &schermo intero + <p>Sends the ACPI Power Button press event to the virtual machine.</p><p>Normally, the guest operating system running inside the virtual machine will detect this event and perform a clean shutdown procedure. This is a recommended way to turn off the virtual machine because all applications running inside it will get a chance to save their data and state.</p><p>If the machine doesn't respond to this action then the guest operating system may be misconfigured or doesn't understand ACPI Power Button events at all. In this case you should select the <b>Power off the machine</b> action to stop virtual machine execution.</p> + <p>Invia l'evento ACPI di pressione del pulsante di accensione alla macchina virtuale.</p><p>Di solito, il sistema operativo guest in esecuzione sulla macchina virtuale rileverà questo evento ed eseguirà una corretta procedura di spegnimento. Questo è un modo consigliato di spegnere la macchina virtuale poiché sarà possibile salvare i dati e lo stato delle applicazione in esecuzione.</p><p>Se la macchina non risponde a questo tipo di azione, il sistema operativo guest potrebbe essere mal configurato o non intercettare eventi ACPI del pulsante di accensione. In questo caso dovresti selezionare l'azione <b>Spegni la macchina</b> per fermare l'esecuzione della macchina virtuale.</p> - Switch to fullscreen mode - Passa alla modalità a schermo intero + S&end the shutdown signal + Invia il s&egnale di arresto - Mouse Integration - enable/disable... - Integrazione mouse + <p>Turns off the virtual machine.</p><p>Note that this action will stop machine execution immediately so that the guest operating system running inside it will not be able to perform a clean shutdown procedure which may result in <i>data loss</i> inside the virtual machine. Selecting this action is recommended only if the virtual machine does not respond to the <b>Send the shutdown signal</b> action.</p> + <p>Spegne la macchina virtuale.</p><p>Nota che questa azione fermerà immediatamente l'esecuzione della macchina e il sistema operativo guest non sarà in grado di effettuare una procedura corretta di spegnimento che potrebbe produrre <i>perdite di dati</i> della macchina virtuale. La selezione di questa azione è consigliata solo se la macchina virtuale non risponde all'azione <b>Invia segnale di spegnimento</b>.</p> - Auto-resize Guest Display - enable/disable... - Ridimensiona automaticamente la finestra Guest + &Power off the machine + S&pegni la macchina - Auto-resize &Guest Display - Ridimensiona automaticamente la finestra &Guest + Restore the machine state stored in the current snapshot + Ripristina lo stato della macchina memorizzato nell'istantanea corrente - Automatically resize the guest display when the window is resized (requires Guest Additions) - Ridimensiona automaticamente lo schermo Guest quando la finestra viene ridimensionata (richiede le Guest Additions) + <p>When checked, the machine will be returned to the state stored in the current snapshot after it is turned off. This is useful if you are sure that you want to discard the results of your last sessions and start again at that snapshot.</p> + <p>Se marcata, lo stato della macchina sarà ripristinato dallo stato memorizzato nell'istantanea corrente immediatamente dopo lo spegnimento. Tale funzionalità è utile se volete scartare i risultati delle ultime sessioni e tornare all'istantanea corrente.</p> - &Adjust Window Size - &Adatta la dimensione della finestra + &Restore current snapshot '%1' + &Ripristina l'istantanea corrente '%1' + + + UIVMDesktop - Adjust window size and position to best fit the guest display - Adatta la dimensione e posizione della finestra a seconda dello schermo Guest - - - &Insert Ctrl-Alt-Del - &Invia Ctrl-Alt-Canc + &Details + &Dettagli - Send the Ctrl-Alt-Del sequence to the virtual machine - Invia la sequenza Ctrl-Alt-Canc alla macchina virtuale + &Snapshots + I&stantanee + + + UIVMListView - &Insert Ctrl-Alt-Backspace - &Invia Ctrl-Alt-Backspace + Inaccessible + Inaccessibile - Send the Ctrl-Alt-Backspace sequence to the virtual machine - Invia la sequenza Ctrl-Alt-Backspace alla macchina virtuale + <nobr>%1<br></nobr><nobr>%2 since %3</nobr><br><nobr>Session %4</nobr> + VM tooltip (name, last state change, session state) + <nobr>%1<br></nobr><nobr>%2 da %3</nobr><br><nobr>Sessione %4</nobr> - &Reset - &Reset + <nobr><b>%1</b><br></nobr><nobr>Inaccessible since %2</nobr> + Inaccessible VM tooltip (name, last state change) + <nobr><b>%1</b><br></nobr><nobr>Inaccessibile da %2</nobr> - Reset the virtual machine - Ripristina la macchina virtuale + S&how + &Mostra - ACPI S&hutdown - S&hutdown ACPI + Switch to the window of the selected virtual machine + Passa alla finestra della macchina virtuale selezionata - Send the ACPI Power Button press event to the virtual machine - Invia l'evento ACPI Power Button press alla macchina virtuale + S&tart + A&vvia - &Close... - &Chiudi... + Start the selected virtual machine + Avvia la macchina virtuale selezionata - Close the virtual machine - Chiudi la macchina virtuale + R&esume + Ripr&endi - Take &Snapshot... - Cattura i&stantanea... + Resume the execution of the virtual machine + Riprendi l'esecuzione della macchina virtuale - Take a snapshot of the virtual machine - Cattura un'istantanea della macchina virtuale + &Pause + &Pausa - &Floppy Image... - Immagine &floppy... + Suspend the execution of the virtual machine + Sospendi l'esecuzione della macchina virtuale + + + UIVMLogViewer - Mount a floppy image file - Monta un file immagine per il floppy disk + Log Viewer + Visualizzatore di log - Unmount F&loppy - Smonta f&loppy + &Save + &Salva - Unmount the currently mounted floppy media - Smonta il floppy attualmente montato + Alt+S + Alt+S - &CD/DVD-ROM Image... - Immagine &CD/DVD-ROM... + &Refresh + Aggio&rna - Mount a CD/DVD-ROM image file - Monta un file immagine CD/DVD-ROM + Alt+R + Alt+R - Unmount C&D/DVD-ROM - Smonta C&D/DVD-ROM + &Close + &Chiudi - Unmount the currently mounted CD/DVD-ROM media - Smonta l'immagine CD/DVD-ROM attualmente montata + Alt+C + Alt+C - Remote Desktop (RDP) Server - enable/disable... - Server Desktop Remoto (RDP) + %1 - VirtualBox Log Viewer + %1 - Visualizzatore Log di VirtualBox - Remote Dis&play - Dis&play remoto + <p>No log files found. Press the <b>Refresh</b> button to rescan the log folder <nobr><b>%1</b></nobr>.</p> + <p>Nessun file di log trovato. Premi il pulsante <b>Aggiorna</b> per analizzare nuovamente la cartella dei log <nobr><b>%1</b></nobr>.</p> - Enable or disable remote desktop (RDP) connections to this machine - Abilita o disabilita le connessioni di desktop remoto (RDP) a questa macchina + Save VirtualBox Log As + Salva log di VirtualBox come - Open - Apri + Help + Aiuto - &Shared Folders... - Cartelle condivi&se... + F1 + F1 - Create or modify shared folders - Apri la finestra per gestire le cartelle condivise + &Find + &Cerca - &Install Guest Additions... - &Installa Guest Additions... + Alt+F + Alt+C - Mount the Guest Additions installation image - Monta l'immagine per l'installazione delle Guest Additions + Close + Chiudi - &Statistics... - &Statistiche... + Close the search panel + Chiudi il pannello di ricerca - &Command line... - Riga di &comando... + Enter a search string here + Inserisci una parola da cercare - &VirtualBox Web Site... - Sito web di &VirtualBox... + &Previous + &Precedente - Open the browser and go to the VirtualBox product web site - Apri il browser al sito web di VirtualBox + Search for the previous occurrence of the string + Cerca l'occorrenza precedente - &About VirtualBox... - Inform&azioni su VirtualBox... + &Next + Segue&nte - Show a dialog with product information - Mostra una finestra con le informazioni sul prodotto + Search for the next occurrence of the string + Cerca l'occorrenza successiva - &Reset All Warnings - &Ripristina tutti gli avvisi + C&ase Sensitive + M&aiuscole/minuscole - Go back to showing all suppressed warnings and messages - Mostra nuovamente tutti i messaggi e gli avvisi soppressi + Perform case sensitive search (when checked) + Abilita la ricerca confrontando maiuscole e minuscole (se marcata) - Mount &Floppy - Monta &floppy + String not found + Nessuna occorrenza + + + UIVMPreviewWindow - Mount &CD/DVD-ROM - Monta &CD-DVD-ROM + Update Disabled + Aggiornamento disabilitato - &USB Devices - Dispositivi &USB + Every 0.5 s + Ogni 0.5 s - &Devices - &Dispositivi + Every 1 s + Ogni 1 s - De&bug - De&bug + Every 2 s + Ogni 2 s - &Help - &Aiuto + Every 5 s + Ogni 5 s - Shows the currently assigned Host key.<br>This key, when pressed alone, toggles the the keyboard and mouse capture state. It can also be used in combination with other keys to quickly perform actions from the main menu. - Mostra la combinazione di tasti Host attuale.<br>Tale combinazione, se premuta da sola, commuta lo stato di acquisizione di mouse e tastiera. Può anche essere usata in combinazione con altri tasti come scorciatoia per le azioni del menu principale. + Every 10 s + Ogni 10 s - Provides quick access to shared folders (by a right mouse button click).<br>Note that the shared folders feature requires Guest Additions to be installed in the guest OS. - Fornisce accesso rapido alle cartelle condivise (facendo clic con il tasto destro del mouse).<br>Nota che la funzionalità di cartelle condivise richiede che le Guest Additions siano installate sul sistema Guest. + No Preview + Nessuna anteprima + + + VBoxAboutDlg - <qt>Indicates&nbsp;the&nbsp;activity&nbsp;of&nbsp;the&nbsp;floppy&nbsp;media<br>[<b>%1</b>]</qt> - <qt>Indica&nbsp;l'attività&nbsp;del&nbsp;floppy<br>[<b>%1</b>]</qt> + VirtualBox - About + Informazioni su VirtualBox - Host&nbsp;Drive&nbsp; - Floppy tooltip - Drive&nbsp;dell'host&nbsp; + VirtualBox Graphical User Interface + Interfaccia grafica utente di VirtualBox - not&nbsp;mounted - Floppy tooltip - non&nbsp;montato + Version %1 + Versione %1 - <qt>Indicates&nbsp;the&nbsp;activity&nbsp;of&nbsp;the&nbsp;CD/DVD-ROM&nbsp;media<br>[<b>%1</b>]</qt> - <qt>Indica&nbsp;l'attività&nbsp;del&nbsp;CD/DVD-ROM<br>[<b>%1</b>]</qt> + <qt>VirtualBox Graphical User Interface Version %1<br> +%2</qt> + <qt>VirtualBox Graphical User Interface, versione %1<br> +%2</qt> + + + VBoxAboutNonOSEDlg - Host&nbsp;Drive&nbsp; - DVD-ROM tooltip - Drive&nbsp;dell'host&nbsp; + VirtualBox - About + Informazioni su VirtualBox - not&nbsp;mounted - DVD-ROM tooltip - non&nbsp;montato + VirtualBox Graphical User Interface +Version %1 + Interfaccia Grafica di VirtualBox +Versione %1 + + + VBoxAddNIDialog - <qt>Indicates&nbsp;the&nbsp;activity&nbsp;of&nbsp;virtual&nbsp;hard&nbsp;disks - <qt>Indica&nbsp;l'attività&nbsp;degli&nbsp;hard&nbsp;disk&nbsp;virtuali + Add Host Interface + Aggiungi interfaccia host - <br>[<b>not attached</b>] - HDD tooltip - <br>[<b>non collegato</b>] + Interface Name + Nome dell'interfaccia - <hr>The VRDP Server is listening on port %1 - <hr>Il server VRDP è in ascolto sulla porta %1 + Descriptive name of the new network interface + Descrizione della nuova interfaccia di rete - &Pause - &Pausa + &OK + &OK - Suspend the execution of the virtual machine - Sospendi l'esecuzione della macchina virtuale + Cancel + Annulla + + + VBoxAddSFDialog - R&esume - Ripr&endi + Add Share + Aggiungi condivisione - Resume the execution of the virtual machine - Riprendi l'esecuzione della macchina virtuale + Edit Share + Modifica condivisione - Disable &Mouse Integration - Disabilita l'integrazione &mouse (MI) + Select a folder to share + Scegli una cartella da condividere - Temporarily disable host mouse pointer integration - Disabilita temporaneamente l'integrazione con il puntatore del mouse + Folder Path + Percorso cartella - Enable &Mouse Integration - Abilita l'integrazione &mouse + Folder Name + Nome cartella - Enable temporarily disabled host mouse pointer integration - Riabilita l'integrazione mouse temporaneamente disabilitata + Displays the path to an existing folder on the host PC. + Visualizza il percorso di una cartella esistente nel PC Host. - Snapshot %1 - Istantanea %1 + Displays the name of the shared folder (as it will be seen by the guest OS). + Visualizza il nome della cartella condivisa (come sarà vista dal sistema Guest). - <p>Failed to find the VirtualBox Guest Additions CD image <nobr><b>%1</b></nobr> or <nobr><b>%2</b></nobr></p> - <p>Non è stato possibile trovare l'immagine CD di VirtualBox Guest Additions <nobr><b>%1</b></nobr> or <nobr><b>%2</b></nobr></p> + Opens the dialog to select a folder. + Apre la finestra di selezione cartella. - Host Drive - Drive host + OK + OK - &Machine - &Macchina + Cancel + Annulla - <qt>Indicates&nbsp;the&nbsp;activity&nbsp;of&nbsp;the&nbsp;network&nbsp;interfaces - Network adapters indicator - <qt>Indica&nbsp;l'attività&nbsp;delle&nbsp;interfacce&nbsp;di&nbsp;rete + &OK + &OK - <br><nobr><b>Adapter %1 (%2)</b>: cable %3</nobr> - Network adapters indicator - <br><nobr><b>Driver%1 (%2)</b>: cavo %3</nobr> + &Make Permanent + Rendi per&manente - connected - Network adapters indicator - connesso + &Read-only + Sola lettu&ra - disconnected - Network adapters indicator - non connesso + When checked, the guest OS will not be able to write to the specified shared folder. + Se selezionato, il sistema Guest non sarà in grado di scrivere nella cartella specificata. + + + VBoxCloseVMDlg - <br><nobr><b>All network adapters are disabled</b></nobr> - Network adapters indicator - <br><nobr><b>Tutte le schede di rete sono disabilitate</b></nobr> + Close Virtual Machine + Chiudi la macchina virtuale - &Network Adapters - &Schede di rete + You want to: + Vuoi: - Adapter %1 - network - Scheda %1 + &Save the machine state + &Salvare lo stato della macchina - Mount the selected physical drive of the host PC - Floppy tip - Monta il lettore fisico selezionato del PC host + Alt+S + Alt+S - Mount the selected physical drive of the host PC - CD/DVD tip - Monta il lettore fisico selezionato del PC host + &Power off the machine + S&pegnere la macchina - Disconnect the cable from the selected virtual network adapter - Disconnetti il cavo dalla scheda di rete virtuale selezionata + Alt+P + Alt+P - Connect the cable to the selected virtual network adapter - Connetti il cavo alla scheda di rete virtuale selezionata + &Revert to the current snapshot + &Ripristinare l'istantanea corrente - Seam&less Mode - Moda&lità trasparente + Alt+R + Alt+R - Switch to seamless desktop integration mode - Passa alla modalità di integrazione trasparente + Revert the machine state to the state stored in the current snapshot + Ripristinare lo stato della macchina a quello memorizzato nell'istantanea corrente - <qt><nobr>Indicates the activity of the floppy media:</nobr>%1</qt> - Floppy tooltip - <qt><nobr>indica l'attività del floppy:</nobr>%1</qt> + Help + Aiuto - <br><nobr><b>Host Drive</b>: %1</nobr> - Floppy tooltip - <br><nobr><b>Drive dell'host</b>: %1</nobr> + F1 + F1 - <br><nobr><b>Image</b>: %1</nobr> - Floppy tooltip - <b><nobr><b>Immagine</b>: %1</nobr> + &OK + &OK - <br><nobr><b>No media mounted</b></nobr> - Floppy tooltip - <b><nobr><b>Nessun media montato</b></nobr> + Alt+O + Alt+O - <qt><nobr>Indicates the activity of the CD/DVD-ROM media:</nobr>%1</qt> - DVD-ROM tooltip - <qt><nobr>Indica l'attività del CD/DVD-ROM:</nobr>%1</qt> + Cancel + Annulla - <br><nobr><b>Host Drive</b>: %1</nobr> - DVD-ROM tooltip - <br><nobr><b>Drive dell'host</b>: %1</nobr> + <p>Saves the current execution state of the virtual machine to the physical hard disk of the host PC.</p> +<p>Next time this machine is started, it will be restored from the saved state and continue execution from the same place you saved it at, which will let you continue your work immediately.</p> +<p>Note that saving the machine state may take a long time, depending on the guest operating system type and the amount of memory you assigned to the virtual machine.</p> + <p>Salva lo stato d'esecuzione attuale della macchina virtuale nel disco rigido del sistema Host.</p> +<p>La prossima volta che questa macchina verrà avviata sarà ripristinata dallo stato salvato e continuerà l'esecuzione dallo stesso momento in cui l'avete salvata, il che vi permetterà di continuare il vostro lavoro immediatamente.</p> +<p>Notate che salvare lo stato della macchina può occupare diverso tempo, a seconda del sistema Guest e dell'ammontare di memoria che avete assegnato alla macchina virtuale.</p> - <br><nobr><b>Image</b>: %1</nobr> - DVD-ROM tooltip - <b><nobr><b>Immagine</b>: %1</nobr> + S&end the shutdown signal + Invia il s&egnale di arresto - <br><nobr><b>No media mounted</b></nobr> - DVD-ROM tooltip - <b><nobr><b>Nessun media montato</b></nobr> + <p>Sends the ACPI Power Button press event to the virtual machine.</p> +<p>Normally, the guest operating system running inside the virtual machine will detect this event and perform a clean shutdown procedure. This is a recommended way to turn off the virtual machine because all applications running inside it will get a chance to save their data and state.</p> +<p>If the machine doesn't respond to this action then the guest operating system may be misconfigured or doesn't understand ACPI Power Button events at all. In this case you should select the <b>Power off the machine</b> action to stop virtual machine execution.</p> + <p>Invia l'evento ACPI Power Button Press alla macchina virtuale.</p> +<p>Normalmente il sistema Guest che gira nella macchina virtuale individuerà tale evento e procederà ad una corretta procedura di arresto. Questo è il sistema raccomandato per spegnere la macchina virtuale poiché tutte le applicazioni che girano all'interno avranno la possibilità di salvare i propri dati e il proprio stato.</p> +<p>Se la macchina non risponde a quest'azione, il sistema operativo Guest potrebbe essere mal configurato oppure non riconoscere gli eventi ACPI Power Button. In questo caso dovreste selezionare l'azione <b>Spegnere la macchina</b> per fermare l'esecuzione della macchina virtuale.</p> - <qt><nobr>Indicates activity on the the virtual hard disks:</nobr>%1</qt> - HDD tooltip - <qt><nobr>Indica l'attività dei dischi rigidi virtuali:</nobr>%1</qt> + <p>Turns off the virtual machine.</p> +<p>Note that this action will stop machine execution immediately so that the guest operating system running inside it will not be able to perform a clean shutdown procedure which may result in <i>data loss</i> inside the virtual machine. Selecting this action is recommended only if the virtual machine does not respond to the <b>Send the shutdown signal</b> action.</p> + <p>Spegne la macchina virtuale.</p> +<p>Notate che questa azione fermerà l'esecuzione della macchina immediatamente, e il sistema Guest in esecuzione non riuscirà a fare una procedura di shutdown pulita, il che può risultare in <i>perdite di dati</i> all'interno della macchina virtuale. Selezionare quest'azione è raccomandato solo se la macchina virtuale non risponde all'azione <b>Invia il segnale di arresto</b>.</p> - <br><nobr><b>No hard disks attached</b></nobr> - HDD tooltip - <br><nobr><b>Nessun disco fisso collegato</b></nobr> + <p>When checked, the machine will be returned to the state stored in the current snapshot after it is turned off. This is useful if you are sure that you want to discard the results of your last sessions and start again at that snapshot.</p> + <p>Se marcata, lo stato della macchina sarà ripristinato dallo stato memorizzato nell'istantanea corrente immediatamente dopo lo spegnimento. Tale funzionalità è utile se volete scartare i risultati delle ultime sessioni e tornare all'istantanea corrente.</p> - <qt><nobr>Indicates the activity of the network interfaces:</nobr>%1</qt> - Network adapters tooltip - <qt><nobr>Indica l'attività delle interfacce di rete:</nobr>%1</qt> + <p>Saves the current execution state of the virtual machine to the physical hard disk of the host PC.</p><p>Next time this machine is started, it will be restored from the saved state and continue execution from the same place you saved it at, which will let you continue your work immediately.</p><p>Note that saving the machine state may take a long time, depending on the guest operating system type and the amount of memory you assigned to the virtual machine.</p> + <p>Salva lo stato di esecuzione corrente della macchina virtuale sul disco fisico del PC host.</p><p>Al prossimo riavvio della macchina, sarà ripristinato dallo stato salvato e continuerà l'esecuzione dallo stesso punto in cui lo hai salvato, permettendoti di continuare immediatamente il tuo lavoro.</p><p>Nota che il salvataggio dello stato della macchina potrebbe richiedere del tempo, a seconda del tipo di sistema operativo guest e del quantitativo di memoria assegnata alla macchina virtuale.</p> - <br><nobr><b>Adapter %1 (%2)</b>: cable %3</nobr> - Network adapters tooltip - <br><nobr><b>Scheda %1 (%2)</b>: cavo %3</nobr> + <p>Sends the ACPI Power Button press event to the virtual machine.</p><p>Normally, the guest operating system running inside the virtual machine will detect this event and perform a clean shutdown procedure. This is a recommended way to turn off the virtual machine because all applications running inside it will get a chance to save their data and state.</p><p>If the machine doesn't respond to this action then the guest operating system may be misconfigured or doesn't understand ACPI Power Button events at all. In this case you should select the <b>Power off the machine</b> action to stop virtual machine execution.</p> + <p>Invia l'evento ACPI di pressione del pulsante di accensione alla macchina virtuale.</p><p>Di solito, il sistema operativo guest in esecuzione sulla macchina virtuale rileverà questo evento ed eseguirà una corretta procedura di spegnimento. Questo è un modo consigliato di spegnere la macchina virtuale poiché sarà possibile salvare i dati e lo stato delle applicazione in esecuzione.</p><p>Se la macchina non risponde a questo tipo di azione, il sistema operativo guest potrebbe essere mal configurato o non intercettare eventi ACPI del pulsante di accensione. In questo caso dovresti selezionare l'azione <b>Spegni la macchina</b> per fermare l'esecuzione della macchina virtuale.</p> - connected - Network adapters tooltip - connesso + <p>Turns off the virtual machine.</p><p>Note that this action will stop machine execution immediately so that the guest operating system running inside it will not be able to perform a clean shutdown procedure which may result in <i>data loss</i> inside the virtual machine. Selecting this action is recommended only if the virtual machine does not respond to the <b>Send the shutdown signal</b> action.</p> + <p>Spegne la macchina virtuale.</p><p>Nota che questa azione fermerà immediatamente l'esecuzione della macchina e il sistema operativo guest non sarà in grado di effettuare una procedura corretta di spegnimento che potrebbe risultare in <i>perdite di dati</i> della macchina virtuale. La selezione di questa azione è consigliata solo se la macchina virtuale non risponde all'azione <b>Invia segnale di spegnimento</b>.</p> - disconnected - Network adapters tooltip - non connesso + Restore the machine state stored in the current snapshot + Ripristina lo stato della macchina memorizzato nell'istantea corrente - <br><nobr><b>All network adapters are disabled</b></nobr> - Network adapters tooltip - <br><nobr><b>Tutte le schede di rete sono disabilitate</b></nobr> + &Restore current snapshot '%1' + &Ripristina l'istantanea corrente '%1' + + + VBoxConsoleWnd - <qt><nobr>Indicates the activity of the attached USB devices:</nobr>%1</qt> - USB device tooltip - <qt><nobr>Indica l'attività dei dispositivi USB connessi:</nobr>%1</qt> + <qt>Indicates&nbsp;the&nbsp;activity&nbsp;of&nbsp;attached&nbsp;USB&nbsp;devices<br>%1</qt> + USB device indicator + <qt>Indica&nbsp;lo&nbsp;stato&nbsp;di&nbsp;attività&nbsp;dei&nbsp;dispositivi&nbsp;USB&nbsp;connessi<br>%1</qt> - <br><nobr><b>No USB devices attached</b></nobr> - USB device tooltip - <br><nobr><b>Nessun dispositivo USB connesso</b></nobr> + <nobr>[<b>not attached</b>]</nobr> + USB device indicator + <nobr>[<b>non connesso</b>]</nobr> - <br><nobr><b>USB Controller is disabled</b></nobr> - USB device tooltip - <br><nobr><b>Il controller USB è disabilitato</b></nobr> + <nobr>[<b>USB Controller is disabled</b>]</nobr> + USB device indicator + <nobr>[<b>Il controller USB è disabilitato</b>]</nobr> - Indicates whether the Remote Display (VRDP Server) is enabled (<img src=:/vrdp_16px.png/>) or not (<img src=:/vrdp_disabled_16px.png/>). - Indica se il Display Remoto (Server VRDP) è abilitato (<img src=:/vrdp_16px.png/>) o meno (<img src=:/vrdp_disabled_16px.png/>). + VirtualBox OSE + VirtualBox OSE - <qt><nobr>Indicates the activity of the machineof the machine'sapos;s shared folders: shared folders:</nobr>%1</qt> - Shared folders tooltip - <qt><nobr>indica l'attività delle cartelle condivise:</nobr>%1</qt> + innotek VirtualBox + innotek VirtualBox - <br><nobr><b>No shared folders</b></nobr> - Shared folders tooltip - <b><nobr><b>Nessuna cartella condivisa</b></nobr> + &Fullscreen Mode + Modalità &schermo intero - &Contents... - &Contenuti... + Switch to fullscreen mode + Passa alla modalità a schermo intero - F1 - F1 + Mouse Integration + enable/disable... + Integrazione mouse - Show the online help contents - Mostra i contenuti dell'aiuto in linea + Auto-resize Guest Display + enable/disable... + Ridimensiona automaticamente la finestra Guest - R&egister VirtualBox... - R&egistra VirtualBox... + Auto-resize &Guest Display + Ridimensiona automaticamente la finestra &Guest - Open VirtualBox registration form - Apri il modulo di registrazione di VirtualBox + Automatically resize the guest display when the window is resized (requires Guest Additions) + Ridimensiona automaticamente lo schermo Guest quando la finestra viene ridimensionata (richiede le Guest Additions) - Session I&nformation Dialog - Finestra I&nformazioni di sessione + &Adjust Window Size + &Adatta la dimensione della finestra - Show Session Information Dialog - Visualizza la finestra Informazioni di sessione + Adjust window size and position to best fit the guest display + Adatta la dimensione e posizione della finestra a seconda dello schermo Guest - &Statistics... - debug action - &Statistiche... + &Insert Ctrl-Alt-Del + &Invia Ctrl-Alt-Canc - &Command Line... - debug action - Riga di &comando... + Send the Ctrl-Alt-Del sequence to the virtual machine + Invia la sequenza Ctrl-Alt-Canc alla macchina virtuale - &Logging... - debug action - &Registrazione... + &Insert Ctrl-Alt-Backspace + &Invia Ctrl-Alt-Backspace - Shows the currently assigned Host key.<br>This key, when pressed alone, toggles the keyboard and mouse capture state. It can also be used in combination with other keys to quickly perform actions from the main menu. - Mostra il tasto host attualmente assegnato.<br>Questo tasto, se premuto da solo, commuta lo stato di acquisizione di mouse e tastiera. Può essere utilizzato anche in combinazione con altri tasti per eseguire rapidamente azioni dal menu principale. + Send the Ctrl-Alt-Backspace sequence to the virtual machine + Invia la sequenza Ctrl-Alt-Backspace alla macchina virtuale - <qt>Indicates the status of the hardware virtualization features used by this virtual machine:<br><nobr><b>%1:</b>&nbsp;%2</nobr><br><nobr><b>%3:</b>&nbsp;%4</nobr></qt> - <qt>Indica lo stato delle funzionalità di virtualizzazione dell'hardware utilizzate da questa macchina virtuale:<br><nobr><b>%1:</b>&nbsp;%2</nobr><br><nobr><b>%3:</b>&nbsp;%4</nobr></qt> + &Reset + &Reset - Indicates the status of the hardware virtualization features used by this virtual machine:<br><nobr><b>%1:</b>&nbsp;%2</nobr><br><nobr><b>%3:</b>&nbsp;%4</nobr> - Virtualization Stuff LED - Indica lo stato delle funzionalità di virtualizzazione hardware utilizzate da questa macchina virtuale:<br><nobr><b>%1:</b>&nbsp;%2</nobr><br><nobr><b>%3:</b>&nbsp;%4</nobr> + Reset the virtual machine + Ripristina la macchina virtuale - <br><nobr><b>%1:</b>&nbsp;%2</nobr> - Virtualization Stuff LED - <br><nobr><b>%1:</b>&nbsp;%2</nobr> + ACPI S&hutdown + S&hutdown ACPI - EXPERIMENTAL build %1r%2 - %3 - Versione SPERIMENTALE %1r%2 - %3 + Send the ACPI Power Button press event to the virtual machine + Invia l'evento ACPI Power Button press alla macchina virtuale - &CD/DVD Devices - Dispositivi &CD/DVD + &Close... + &Chiudi... - &Floppy Devices - Dispositivi &floppy + Close the virtual machine + Chiudi la macchina virtuale - &Network Adapters... - Sc&hede di rete... + Take &Snapshot... + Cattura i&stantanea... - Change the settings of network adapters - Cambia le impostazioni delle schede di rete + Take a snapshot of the virtual machine + Cattura un'istantanea della macchina virtuale - &Remote Display - Sche&rmo remoto + &Floppy Image... + Immagine &floppy... - More CD/DVD Images... - Altre immagini CD/DVD... + Mount a floppy image file + Monta un file immagine per il floppy disk - Unmount CD/DVD Device - Smonta dispositivo CD/DVD + Unmount F&loppy + Smonta f&loppy - More Floppy Images... - Altre immagini floppy... + Unmount the currently mounted floppy media + Smonta il floppy attualmente montato - Unmount Floppy Device - Smonta dispositivo floppy + &CD/DVD-ROM Image... + Immagine &CD/DVD-ROM... - No CD/DVD Devices Attached - Nessun dispositivo CD/DVD collegato + Mount a CD/DVD-ROM image file + Monta un file immagine CD/DVD-ROM - No Floppy Devices Attached - Nessun dispositivo floppy collegato + Unmount C&D/DVD-ROM + Smonta C&D/DVD-ROM - <p style='white-space:pre'><nobr>Indicates the activity of the CD/DVD devices:</nobr>%1</p> - CD/DVD tooltip - <p style='white-space:pre'><nobr>Indica l'attività dei dispositivi CD/DVD:</nobr>%1</p> + Unmount the currently mounted CD/DVD-ROM media + Smonta l'immagine CD/DVD-ROM attualmente montata - <br><nobr><b>No CD/DVD devices attached</b></nobr> - CD/DVD tooltip - <br><nobr><b>Nessun dispositivo CD/DVD collegato</b></nobr> + Remote Desktop (RDP) Server + enable/disable... + Server Desktop Remoto (RDP) - <p style='white-space:pre'><nobr>Indicates the activity of the floppy devices:</nobr>%1</p> - FD tooltip - <p style='white-space:pre'><nobr>Indica l'attività dei dispositivi floppy:</nobr>%1</p> + Remote Dis&play + Dis&play remoto - <br><nobr><b>No floppy devices attached</b></nobr> - FD tooltip - <br><nobr><b>Nessun dispositivo floppy collegato</b></nobr> + Enable or disable remote desktop (RDP) connections to this machine + Abilita o disabilita le connessioni di desktop remoto (RDP) a questa macchina - <p style='white-space:pre'><nobr>Indicates the activity of the network interfaces:</nobr>%1</p> - Network adapters tooltip - <p style='white-space:pre'><nobr>Indica l'attività delle interfacce di rete:</nobr>%1</p> + Open + Apri - <p style='white-space:pre'><nobr>Indicates the activity of the attached USB devices:</nobr>%1</p> - USB device tooltip - <p style='white-space:pre'><nobr>Indica l'attività dei dispositivi USB collegati:</nobr>%1</p> + &Shared Folders... + Cartelle condivi&se... - <p style='white-space:pre'><nobr>Indicates the activity of the machine's shared folders:</nobr>%1</p> - Shared folders tooltip - <p style='white-space:pre'><nobr>Indica l'attività delle cartelle condivise della macchina:</nobr>%1</p> + Create or modify shared folders + Apri la finestra per gestire le cartelle condivise - Dock Icon - Icona del pannello + &Install Guest Additions... + &Installa Guest Additions... - Show Application Icon - Mostra icona dell'applicazione + Mount the Guest Additions installation image + Monta l'immagine per l'installazione delle Guest Additions - Show Monitor Preview - Mostra anteprima monitor + &Statistics... + &Statistiche... - <br><nobr><b>Adapter %1 (%2)</b>: %3 cable %4</nobr> - Network adapters tooltip - <br><nobr><b>Scheda %1 (%2)</b>: %3 cavo %4</nobr> + &Command line... + Riga di &comando... - ACPI Sh&utdown - Sh&utdown ACPI + &VirtualBox Web Site... + Sito web di &VirtualBox... - &View - &Visualizza + Open the browser and go to the VirtualBox product web site + Apri il browser al sito web di VirtualBox - Preview Monitor %1 - Anteprima monitor %1 + &About VirtualBox... + Inform&azioni su VirtualBox... - No CD/DVD devices attached to that VM - Nessun dispositivo CD/DVD collegato alla MV + Show a dialog with product information + Mostra una finestra con le informazioni sul prodotto - No floppy devices attached to that VM - Nessun dispositivo floppy collegato alla MV + &Reset All Warnings + &Ripristina tutti gli avvisi - No USB Devices Connected - Nessun dispositivo USB connesso + Go back to showing all suppressed warnings and messages + Mostra nuovamente tutti i messaggi e gli avvisi soppressi - No supported devices connected to the host PC - Nessun dispositivo supportato connesso al sistema host + Mount &Floppy + Monta &floppy - - - VBoxDiskImageManagerDlg - Name - Nome + Mount &CD/DVD-ROM + Monta &CD-DVD-ROM - Virtual Size - Dimensione virtuale + &USB Devices + Dispositivi &USB - Actual Size - Dimensione effettiva + &Devices + &Dispositivi - Size - Dimensione + De&bug + De&bug - Virtual Disk Manager - Gestore dei dischi virtuali + &Help + &Aiuto - &Hard Disks - &Hard disk + Shows the currently assigned Host key.<br>This key, when pressed alone, toggles the the keyboard and mouse capture state. It can also be used in combination with other keys to quickly perform actions from the main menu. + Mostra la combinazione di tasti Host attuale.<br>Tale combinazione, se premuta da sola, commuta lo stato di acquisizione di mouse e tastiera. Può anche essere usata in combinazione con altri tasti come scorciatoia per le azioni del menu principale. - &CD/DVD Images - Immagini &CD/DVD + Provides quick access to shared folders (by a right mouse button click).<br>Note that the shared folders feature requires Guest Additions to be installed in the guest OS. + Fornisce accesso rapido alle cartelle condivise (facendo clic con il tasto destro del mouse).<br>Nota che la funzionalità di cartelle condivise richiede che le Guest Additions siano installate sul sistema Guest. - &Floppy Images - Immagini &Floppy + <qt>Indicates&nbsp;the&nbsp;activity&nbsp;of&nbsp;the&nbsp;floppy&nbsp;media<br>[<b>%1</b>]</qt> + <qt>Indica&nbsp;l'attività&nbsp;del&nbsp;floppy<br>[<b>%1</b>]</qt> - Help - Aiuto + Host&nbsp;Drive&nbsp; + Floppy tooltip + Drive&nbsp;dell'host&nbsp; - F1 - F1 + not&nbsp;mounted + Floppy tooltip + non&nbsp;montato - Invoke dialog's help - Apre la finestra di aiuto + <qt>Indicates&nbsp;the&nbsp;activity&nbsp;of&nbsp;the&nbsp;CD/DVD-ROM&nbsp;media<br>[<b>%1</b>]</qt> + <qt>Indica&nbsp;l'attività&nbsp;del&nbsp;CD/DVD-ROM<br>[<b>%1</b>]</qt> - &OK - &OK + Host&nbsp;Drive&nbsp; + DVD-ROM tooltip + Drive&nbsp;dell'host&nbsp; - Alt+O - Alt+O + not&nbsp;mounted + DVD-ROM tooltip + non&nbsp;montato - Accept dialog - Finestra di conferma + <qt>Indicates&nbsp;the&nbsp;activity&nbsp;of&nbsp;virtual&nbsp;hard&nbsp;disks + <qt>Indica&nbsp;l'attività&nbsp;degli&nbsp;hard&nbsp;disk&nbsp;virtuali - Cancel - Annulla + <br>[<b>not attached</b>] + HDD tooltip + <br>[<b>non collegato</b>] - Cancel dialog - Finestra di annullamento + <hr>The VRDP Server is listening on port %1 + <hr>Il server VRDP è in ascolto sulla porta %1 - -- - no info - -- + &Pause + &Pausa - &New... - &Nuovo... + Suspend the execution of the virtual machine + Sospendi l'esecuzione della macchina virtuale - &Add... - &Aggiungi... + R&esume + Ripr&endi - R&emove - R&imuovi + Resume the execution of the virtual machine + Riprendi l'esecuzione della macchina virtuale - Re&lease - Ri&lascia + Disable &Mouse Integration + Disabilita l'integrazione &mouse (MI) - Re&fresh - A&ggiorna + Temporarily disable host mouse pointer integration + Disabilita temporaneamente l'integrazione con il puntatore del mouse - New - Nuovo + Enable &Mouse Integration + Abilita l'integrazione &mouse - Add - Aggiungi + Enable temporarily disabled host mouse pointer integration + Riabilita l'integrazione mouse temporaneamente disabilitata - Remove - Rimuovi + Snapshot %1 + Istantanea %1 - Release - Rilascia + <p>Failed to find the VirtualBox Guest Additions CD image <nobr><b>%1</b></nobr> or <nobr><b>%2</b></nobr></p> + <p>Non è stato possibile trovare l'immagine CD di VirtualBox Guest Additions <nobr><b>%1</b></nobr> or <nobr><b>%2</b></nobr></p> - Refresh - Aggiorna + Host Drive + Drive host - Ctrl+N - Ctrl+N + &Machine + &Macchina - Ctrl+A - Ctrl+A + <qt>Indicates&nbsp;the&nbsp;activity&nbsp;of&nbsp;the&nbsp;network&nbsp;interfaces + Network adapters indicator + <qt>Indica&nbsp;l'attività&nbsp;delle&nbsp;interfacce&nbsp;di&nbsp;rete - Ctrl+D - Ctrl+I + <br><nobr><b>Adapter %1 (%2)</b>: cable %3</nobr> + Network adapters indicator + <br><nobr><b>Driver%1 (%2)</b>: cavo %3</nobr> - Ctrl+L - Ctrl+L + connected + Network adapters indicator + connesso - Ctrl+R - Ctrl+G + disconnected + Network adapters indicator + non connesso - &Actions - &Azioni + <br><nobr><b>All network adapters are disabled</b></nobr> + Network adapters indicator + <br><nobr><b>Tutte le schede di rete sono disabilitate</b></nobr> - Location - Posizione + &Network Adapters + &Schede di rete - Disk Type - Tipo di disco + Adapter %1 + network + Scheda %1 - Storage Type - Tipo di storage + Mount the selected physical drive of the host PC + Floppy tip + Monta il lettore fisico selezionato del PC host - Attached to - Connesso a + Mount the selected physical drive of the host PC + CD/DVD tip + Monta il lettore fisico selezionato del PC host - Snapshot - Snapshot + Disconnect the cable from the selected virtual network adapter + Disconnetti il cavo dalla scheda di rete virtuale selezionata - Checking accessibility - Controllo accessibilità + Connect the cable to the selected virtual network adapter + Connetti il cavo alla scheda di rete virtuale selezionata - <nobr><b>%1</b></nobr><br>Checking accessibility... - HDD - <nobr><b>%1</b></nobr><br>Controllo l'accessibilità... + Seam&less Mode + Moda&lità trasparente - <nobr><b>%1</b></nobr><br><nobr>Disk type:&nbsp;&nbsp;%2</nobr><br><nobr>Storage type:&nbsp;&nbsp;%3</nobr> - <nobr><b>%1</b></nobr><br><nobr>Tipo disco:&nbsp;&nbsp;%2</nobr><br><nobr>Tipo storage:&nbsp;&nbsp;%3</nobr> + Switch to seamless desktop integration mode + Passa alla modalità di integrazione trasparente - <br><nobr>Attached to:&nbsp;&nbsp;%1</nobr> - HDD - <br><nobr>Connesso a:&nbsp;&nbsp;%1</nobr> + <qt><nobr>Indicates the activity of the floppy media:</nobr>%1</qt> + Floppy tooltip + <qt><nobr>indica l'attività del floppy:</nobr>%1</qt> - <br><nobr>Snapshot:&nbsp;&nbsp;%5</nobr> - HDD - <br><nobr>Snapshot:&nbsp;&nbsp;%5</nobr> + <br><nobr><b>Host Drive</b>: %1</nobr> + Floppy tooltip + <br><nobr><b>Drive dell'host</b>: %1</nobr> - <nobr><b>%1</b></nobr><br>Error checking media accessibility - HDD - <nobr><b>%1</b></nobr><br>Errore nel controllo dell'accessibilità del media + <br><nobr><b>Image</b>: %1</nobr> + Floppy tooltip + <b><nobr><b>Immagine</b>: %1</nobr> - <nobr><b>%1</b></nobr><br>%2 - HDD - <nobr><b>%1</b></nobr><br>%2 + <br><nobr><b>No media mounted</b></nobr> + Floppy tooltip + <b><nobr><b>Nessun media montato</b></nobr> - <nobr><b>%1</b></nobr><br>Checking accessibility... - CD/DVD/Floppy - <nobr><b>%1</b></nobr><br>Controllo l'accessibilità... + <qt><nobr>Indicates the activity of the CD/DVD-ROM media:</nobr>%1</qt> + DVD-ROM tooltip + <qt><nobr>Indica l'attività del CD/DVD-ROM:</nobr>%1</qt> - <nobr><b>%1</b></nobr> - CD/DVD/Floppy - <nobr><b>%1</b></nobr> + <br><nobr><b>Host Drive</b>: %1</nobr> + DVD-ROM tooltip + <br><nobr><b>Drive dell'host</b>: %1</nobr> - <br><nobr>Attached to:&nbsp;&nbsp;%1</nobr> - CD/DVD/Floppy - <br><nobr>Connesso a:&nbsp;&nbsp;%1</nobr> + <br><nobr><b>Image</b>: %1</nobr> + DVD-ROM tooltip + <b><nobr><b>Immagine</b>: %1</nobr> - <nobr><b>%1</b></nobr><br>Error checking media accessibility - CD/DVD/Floppy - <nobr><b>%1</b></nobr><br>Errore nel controllo dell'accessibilità del media + <br><nobr><b>No media mounted</b></nobr> + DVD-ROM tooltip + <b><nobr><b>Nessun media montato</b></nobr> - <nobr><b>%1</b></nobr><br>%2 - <nobr><b>%1</b></nobr><br>%2 + <qt><nobr>Indicates activity on the the virtual hard disks:</nobr>%1</qt> + HDD tooltip + <qt><nobr>Indica l'attività dei dischi rigidi virtuali:</nobr>%1</qt> - The image file is not accessible - CD/DVD/Floppy - Il file immagine non è accessibile + <br><nobr><b>No hard disks attached</b></nobr> + HDD tooltip + <br><nobr><b>Nessun disco fisso collegato</b></nobr> - &Select - &Seleziona + <qt><nobr>Indicates the activity of the network interfaces:</nobr>%1</qt> + Network adapters tooltip + <qt><nobr>Indica l'attività delle interfacce di rete:</nobr>%1</qt> - All hard disk images (*.vdi; *.vmdk);;Virtual Disk images (*.vdi);;VMDK images (*.vmdk);;All files (*) - Tutte le immagini disco (*.vdi; *.vmdk);;Immagini Virtual Disk (*.vdi);;Immagini VMDK (*.vmdk);;Tutti i file (*) + <br><nobr><b>Adapter %1 (%2)</b>: cable %3</nobr> + Network adapters tooltip + <br><nobr><b>Scheda %1 (%2)</b>: cavo %3</nobr> - Select a hard disk image file - Seleziona un file immagine di hard disk + connected + Network adapters tooltip + connesso - Select a CD/DVD-ROM disk image file - Seleziona un file immagine di CD/DVD-ROM + disconnected + Network adapters tooltip + non connesso - Select a floppy disk image file - Seleziona un file immagine di floppy disk + <br><nobr><b>All network adapters are disabled</b></nobr> + Network adapters tooltip + <br><nobr><b>Tutte le schede di rete sono disabilitate</b></nobr> - Create a new virtual hard disk - Crea un nuovo hard disk virtuale + <qt><nobr>Indicates the activity of the attached USB devices:</nobr>%1</qt> + USB device tooltip + <qt><nobr>Indica l'attività dei dispositivi USB connessi:</nobr>%1</qt> - Add (register) an existing image file - Aggiungi (registra) un file immagine esistente + <br><nobr><b>No USB devices attached</b></nobr> + USB device tooltip + <br><nobr><b>Nessun dispositivo USB connesso</b></nobr> - Remove (unregister) the selected media - Rimuovi (deregistra) il media selezionato + <br><nobr><b>USB Controller is disabled</b></nobr> + USB device tooltip + <br><nobr><b>Il controller USB è disabilitato</b></nobr> - Release the selected media by detaching it from the machine - Rilascia il media selezionato sconnettendolo dalla macchina + Indicates whether the Remote Display (VRDP Server) is enabled (<img src=:/vrdp_16px.png/>) or not (<img src=:/vrdp_disabled_16px.png/>). + Indica se il Display Remoto (Server VRDP) è abilitato (<img src=:/vrdp_16px.png/>) o meno (<img src=:/vrdp_disabled_16px.png/>). - Refresh the media list - Aggiorna la lista dei media + <qt><nobr>Indicates the activity of the machineof the machine'sapos;s shared folders: shared folders:</nobr>%1</qt> + Shared folders tooltip + <qt><nobr>indica l'attività delle cartelle condivise:</nobr>%1</qt> - CD/DVD-ROM images (*.iso);;All files (*) - Immagini CD/DVD-ROM (*.iso);;Tutti i file (*) + <br><nobr><b>No shared folders</b></nobr> + Shared folders tooltip + <b><nobr><b>Nessuna cartella condivisa</b></nobr> - Floppy images (*.img);;All files (*) - Immagini floppy (*.img);;Tutti i file (*) + &Contents... + &Contenuti... - - - VBoxEmptyFileSelector - &Choose... - S&cegli... + F1 + F1 - - - VBoxFilePathSelectorWidget - <reset to default> - <ripristina valori predefiniti> + Show the online help contents + Mostra i contenuti dell'aiuto in linea - The actual default path value will be displayed after accepting the changes and opening this dialog again. - Il valore attuale del percorso predefinito sarà visualizzato dopo aver accettato le modifiche e riaperto nuovamente la finestra. + R&egister VirtualBox... + R&egistra VirtualBox... - <not selected> - <non selezionato> + Open VirtualBox registration form + Apri il modulo di registrazione di VirtualBox - Please use the <b>Other...</b> item from the drop-down list to select a path. - Utilizzare l'elemento <b>Altro...</b> dall'elenco a tendina per selezionare il percorso desiderato. + Session I&nformation Dialog + Finestra I&nformazioni di sessione - Other... - Altro... + Show Session Information Dialog + Visualizza la finestra Informazioni di sessione - Reset - Ripristina + &Statistics... + debug action + &Statistiche... - Opens a dialog to select a different folder. - Apre una finestra per selezionare una cartella diversa. + &Command Line... + debug action + Riga di &comando... - Resets the folder path to the default value. - Ripristina il percorso della cartella al valore predefinito. + &Logging... + debug action + &Registrazione... - Opens a dialog to select a different file. - Apre una finestra per selezionare un file differente. + Shows the currently assigned Host key.<br>This key, when pressed alone, toggles the keyboard and mouse capture state. It can also be used in combination with other keys to quickly perform actions from the main menu. + Mostra il tasto host attualmente assegnato.<br>Questo tasto, se premuto da solo, commuta lo stato di acquisizione di mouse e tastiera. Può essere utilizzato anche in combinazione con altri tasti per eseguire rapidamente azioni dal menu principale. - Resets the file path to the default value. - Ripristina il percorso del file al valore predefinito. + <qt>Indicates the status of the hardware virtualization features used by this virtual machine:<br><nobr><b>%1:</b>&nbsp;%2</nobr><br><nobr><b>%3:</b>&nbsp;%4</nobr></qt> + <qt>Indica lo stato delle funzionalità di virtualizzazione dell'hardware utilizzate da questa macchina virtuale:<br><nobr><b>%1:</b>&nbsp;%2</nobr><br><nobr><b>%3:</b>&nbsp;%4</nobr></qt> - &Copy - &Copia + Indicates the status of the hardware virtualization features used by this virtual machine:<br><nobr><b>%1:</b>&nbsp;%2</nobr><br><nobr><b>%3:</b>&nbsp;%4</nobr> + Virtualization Stuff LED + Indica lo stato delle funzionalità di virtualizzazione hardware utilizzate da questa macchina virtuale:<br><nobr><b>%1:</b>&nbsp;%2</nobr><br><nobr><b>%3:</b>&nbsp;%4</nobr> - Please type the folder path here. - Digita qui il percorso alla cartella desiderata. + <br><nobr><b>%1:</b>&nbsp;%2</nobr> + Virtualization Stuff LED + <br><nobr><b>%1:</b>&nbsp;%2</nobr> - Please type the file path here. - Digita qui il percorso al file desiderato. + EXPERIMENTAL build %1r%2 - %3 + Versione SPERIMENTALE %1r%2 - %3 - - - VBoxGLSettingsDlg - General - Generale + &CD/DVD Devices + Dispositivi &CD/DVD - Input - Inserimento + &Floppy Devices + Dispositivi &floppy - Update - Aggiornamento + &Network Adapters... + Sc&hede di rete... - Language - Lingua + Change the settings of network adapters + Cambia le impostazioni delle schede di rete - USB - USB + &Remote Display + Sche&rmo remoto - VirtualBox - %1 - VirtualBox - %1 + More CD/DVD Images... + Altre immagini CD/DVD... - Network - Rete + Unmount CD/DVD Device + Smonta dispositivo CD/DVD - - - VBoxGLSettingsInput - Host &Key: - Tasto &host: + More Floppy Images... + Altre immagini floppy... - Displays the key used as a Host Key in the VM window. Activate the entry field and press a new Host Key. Note that alphanumeric, cursor movement and editing keys cannot be used. - Visualizza la combinazione di tasti usata come tasto Host nella finestra della MV. Attiva il campo e premi un nuovo tasto Host. Nota che tasti alfanumerici, movimenti del cursore e tasti di modifica non possono essere usati come tasto Host. + Unmount Floppy Device + Smonta dispositivo floppy - When checked, the keyboard is automatically captured every time the VM window is activated. When the keyboard is captured, all keystrokes (including system ones like Alt-Tab) are directed to the VM. - Se selezionato, la tastiera viene acquisita automaticamente ogni volta che la finestra della MV è attivata. Una volta che la tastiera è acquisita, tutte le combinazioni di tasti (incluse quelle di sistema come Alt-Tab) sono dirette alla MV. + No CD/DVD Devices Attached + Nessun dispositivo CD/DVD collegato - &Auto Capture Keyboard - &Acquisizione automatica della tastiera + No Floppy Devices Attached + Nessun dispositivo floppy collegato - Reset Host Key - Reimposta il tasto host + <p style='white-space:pre'><nobr>Indicates the activity of the CD/DVD devices:</nobr>%1</p> + CD/DVD tooltip + <p style='white-space:pre'><nobr>Indica l'attività dei dispositivi CD/DVD:</nobr>%1</p> - Resets the key used as a Host Key in the VM window. - Reimposta il tasto utilizzato per il tasto host nella finestra. + <br><nobr><b>No CD/DVD devices attached</b></nobr> + CD/DVD tooltip + <br><nobr><b>Nessun dispositivo CD/DVD collegato</b></nobr> - - - VBoxGlobal - Differencing - hard disk - Differenziale + <p style='white-space:pre'><nobr>Indicates the activity of the floppy devices:</nobr>%1</p> + FD tooltip + <p style='white-space:pre'><nobr>Indica l'attività dei dispositivi floppy:</nobr>%1</p> - Unknown device %1:%2 - USB device details - Dispositivo sconosciuto %1:%2 + <br><nobr><b>No floppy devices attached</b></nobr> + FD tooltip + <br><nobr><b>Nessun dispositivo floppy collegato</b></nobr> - <nobr>Vendor ID: %1</nobr><br><nobr>Product ID: %2</nobr><br><nobr>Revision: %3</nobr> - USB device tooltip - <nobr>ID venditore: %1</nobr><br><nobr>ID prodotto: %2</nobr><br><nobr>Revisione: %3</nobr> + <p style='white-space:pre'><nobr>Indicates the activity of the network interfaces:</nobr>%1</p> + Network adapters tooltip + <p style='white-space:pre'><nobr>Indica l'attività delle interfacce di rete:</nobr>%1</p> - <br><nobr>Serial No. %1</nobr> + <p style='white-space:pre'><nobr>Indicates the activity of the attached USB devices:</nobr>%1</p> USB device tooltip - <br><nobr>N. seriale %1</nobr> + <p style='white-space:pre'><nobr>Indica l'attività dei dispositivi USB collegati:</nobr>%1</p> - <br><nobr>State: %1</nobr> - USB device tooltip - <br><nobr>Stato: %1</nobr> + <p style='white-space:pre'><nobr>Indicates the activity of the machine's shared folders:</nobr>%1</p> + Shared folders tooltip + <p style='white-space:pre'><nobr>Indica l'attività delle cartelle condivise della macchina:</nobr>%1</p> - Name - details report - Nome + Dock Icon + Icona del pannello - OS Type - details report - Sistema operativo + Show Application Icon + Mostra icona dell'applicazione - Base Memory - details report - Memoria di base + Show Monitor Preview + Mostra anteprima monitor - <nobr>%3 MB</nobr> - details report - <nobr>%3 MB</nobr> + <br><nobr><b>Adapter %1 (%2)</b>: %3 cable %4</nobr> + Network adapters tooltip + <br><nobr><b>Scheda %1 (%2)</b>: %3 cavo %4</nobr> - General - details report - Generale + ACPI Sh&utdown + Sh&utdown ACPI - Video Memory - details report - Memoria video + &View + &Visualizza - <nobr>%4 MB</nobr> - details report - <nobr>%4 MB</nobr> + Preview Monitor %1 + Anteprima monitor %1 - Boot Order - details report - Ordine di avvio + No CD/DVD devices attached to that VM + Nessun dispositivo CD/DVD collegato alla MV - ACPI - details report - ACPI + No floppy devices attached to that VM + Nessun dispositivo floppy collegato alla MV - IO APIC - details report - IO APIC + No USB Devices Connected + Nessun dispositivo USB connesso - Not Attached - details report (HDDs) - Non connesso + No supported devices connected to the host PC + Nessun dispositivo supportato connesso al sistema host + + + VBoxDiskImageManagerDlg - Hard Disks - details report - Dischi fissi + Name + Nome - Enabled - details report (ACPI) - Abilitato + Virtual Size + Dimensione virtuale - Disabled - details report (ACPI) - Disabilitato + Actual Size + Dimensione effettiva - Enabled - details report (IO APIC) - Abilitato + Size + Dimensione - Disabled - details report (IO APIC) - Disabilitato + Virtual Disk Manager + Gestore dei dischi virtuali - Not mounted - details report (floppy) - Non montato + &Hard Disks + &Hard disk - Image - details report (floppy) - Immagine + &CD/DVD Images + Immagini &CD/DVD - Host Drive - details report (floppy) - Lettore dell'host + &Floppy Images + Immagini &Floppy - Floppy - details report - Floppy + Help + Aiuto - Not mounted - details report (DVD) - Non montato + F1 + F1 - Image - details report (DVD) - Immagine + Invoke dialog's help + Apre la finestra di aiuto - Host Drive - details report (DVD) - Lettore dell'host + &OK + &OK - CD/DVD-ROM - details report - CD/DVD-ROM + Alt+O + Alt+O - Adapter - details report (audio) - Driver + Accept dialog + Finestra di conferma - Disabled - details report (audio) - Disabilitato + Cancel + Annulla - Audio - details report - Audio + Cancel dialog + Finestra di annullamento - Adapter %1 - details report (network) - Driver %1 + -- + no info + -- - Disabled - details report (network) - Disabilitato + &New... + &Nuovo... - Network - details report - Rete + &Add... + &Aggiungi... - Device Filters - details report (USB) - Filtri dispositivi + R&emove + R&imuovi - %1 (%2 active) - details report (USB) - %1 (%2 attivo) + Re&lease + Ri&lascia - Disabled - details report (USB) - Disabilitato - - - USB Controller - details report - Controller USB + Re&fresh + A&ggiorna - VRDP Server Port - details report (VRDP) - Porta del server VRDP + New + Nuovo - %1 - details report (VRDP) - %1 + Add + Aggiungi - Disabled - details report (VRDP) - Disabilitato + Remove + Rimuovi - Remote Display - details report - Schermo remoto + Release + Rilascia - Opening URLs is not implemented yet. - L'apertura delle URL non è attualmente implementata. + Refresh + Aggiorna - Powered Off - MachineState - Spenta + Ctrl+N + Ctrl+N - Saved - MachineState - Salvata + Ctrl+A + Ctrl+A - Aborted - MachineState - Interrotta + Ctrl+D + Ctrl+I - Running - MachineState - In esecuzione + Ctrl+L + Ctrl+L - Paused - MachineState - In pausa + Ctrl+R + Ctrl+G - Starting - MachineState - In avvio + &Actions + &Azioni - Stopping - MachineState - In chiusura + Location + Posizione - Saving - MachineState - In salvataggio + Disk Type + Tipo di disco - Restoring - MachineState - In ripristino + Storage Type + Tipo di storage - Discarding - MachineState - In scarto + Attached to + Connesso a - Closed - SessionState - Chiusa + Snapshot + Snapshot - Open - SessionState - Aperta + Checking accessibility + Controllo accessibilità - Spawning - SessionState - Inizializzazione + <nobr><b>%1</b></nobr><br>Checking accessibility... + HDD + <nobr><b>%1</b></nobr><br>Controllo l'accessibilità... - Closing - SessionState - In chiusura + <nobr><b>%1</b></nobr><br><nobr>Disk type:&nbsp;&nbsp;%2</nobr><br><nobr>Storage type:&nbsp;&nbsp;%3</nobr> + <nobr><b>%1</b></nobr><br><nobr>Tipo disco:&nbsp;&nbsp;%2</nobr><br><nobr>Tipo storage:&nbsp;&nbsp;%3</nobr> - None - DeviceType - Nessuno + <br><nobr>Attached to:&nbsp;&nbsp;%1</nobr> + HDD + <br><nobr>Connesso a:&nbsp;&nbsp;%1</nobr> - Floppy - DeviceType - Floppy + <br><nobr>Snapshot:&nbsp;&nbsp;%5</nobr> + HDD + <br><nobr>Snapshot:&nbsp;&nbsp;%5</nobr> - CD/DVD-ROM - DeviceType - CD/DVD-ROM + <nobr><b>%1</b></nobr><br>Error checking media accessibility + HDD + <nobr><b>%1</b></nobr><br>Errore nel controllo dell'accessibilità del media - Hard Disk - DeviceType - Disco fisso + <nobr><b>%1</b></nobr><br>%2 + HDD + <nobr><b>%1</b></nobr><br>%2 - Network - DeviceType - Rete + <nobr><b>%1</b></nobr><br>Checking accessibility... + CD/DVD/Floppy + <nobr><b>%1</b></nobr><br>Controllo l'accessibilità... - Primary - DiskControllerType - Primario + <nobr><b>%1</b></nobr> + CD/DVD/Floppy + <nobr><b>%1</b></nobr> - Secondary - DiskControllerType - Secondario + <br><nobr>Attached to:&nbsp;&nbsp;%1</nobr> + CD/DVD/Floppy + <br><nobr>Connesso a:&nbsp;&nbsp;%1</nobr> - Normal - DiskType - Normale + <nobr><b>%1</b></nobr><br>Error checking media accessibility + CD/DVD/Floppy + <nobr><b>%1</b></nobr><br>Errore nel controllo dell'accessibilità del media - Immutable - DiskType - Invariabile + <nobr><b>%1</b></nobr><br>%2 + <nobr><b>%1</b></nobr><br>%2 - Writethrough - DiskType - Writethrough + The image file is not accessible + CD/DVD/Floppy + Il file immagine non è accessibile - Virtual Disk Image - DiskStorageType - Immagine Disco Virtuale + &Select + &Seleziona - iSCSI - DiskStorageType - iSCSI + All hard disk images (*.vdi; *.vmdk);;Virtual Disk images (*.vdi);;VMDK images (*.vmdk);;All files (*) + Tutte le immagini disco (*.vdi; *.vmdk);;Immagini Virtual Disk (*.vdi);;Immagini VMDK (*.vmdk);;Tutti i file (*) - VMDK Image - DiskStorageType - Immagine VMDK + Select a hard disk image file + Seleziona un file immagine di hard disk - Null - VRDPAuthType - Null + Select a CD/DVD-ROM disk image file + Seleziona un file immagine di CD/DVD-ROM - External - VRDPAuthType - Esterna + Select a floppy disk image file + Seleziona un file immagine di floppy disk - Guest - VRDPAuthType - Guest + Create a new virtual hard disk + Crea un nuovo hard disk virtuale - Ignore - USBFilterActionType - Ignora + Add (register) an existing image file + Aggiungi (registra) un file immagine esistente - Hold - USBFilterActionType - Trattieni + Remove (unregister) the selected media + Rimuovi (deregistra) il media selezionato - Master - DiskControllerDevice - Master + Release the selected media by detaching it from the machine + Rilascia il media selezionato sconnettendolo dalla macchina - Slave - DiskControllerDevice - Slave + Refresh the media list + Aggiorna la lista dei media - Device&nbsp;%1 - DiskControllerDevice - Dispositivo&nbsp;%1 + CD/DVD-ROM images (*.iso);;All files (*) + Immagini CD/DVD-ROM (*.iso);;Tutti i file (*) - Null Audio Driver - AudioDriverType - Driver audio Null + Floppy images (*.img);;All files (*) + Immagini floppy (*.img);;Tutti i file (*) + + + VBoxEmptyFileSelector - Windows Multimedia - AudioDriverType - Windows Multimedia + &Choose... + S&cegli... + + + VBoxFilePathSelectorWidget - OSS Audio Driver - AudioDriverType - Driver Audio OSS + <reset to default> + <ripristina valori predefiniti> - ALSA Audio Driver - AudioDriverType - Driver Audio ALSA + The actual default path value will be displayed after accepting the changes and opening this dialog again. + Il valore attuale del percorso predefinito sarà visualizzato dopo aver accettato le modifiche e riaperto nuovamente la finestra. - Windows DirectSound - AudioDriverType - Windows DirectSound + <not selected> + <non selezionato> - CoreAudio - AudioDriverType - CoreAudio + Please use the <b>Other...</b> item from the drop-down list to select a path. + Utilizzare l'elemento <b>Altro...</b> dall'elenco a tendina per selezionare il percorso desiderato. - Not attached - NetworkAttachmentType - Non connesso + Other... + Altro... - NAT - NetworkAttachmentType - NAT + Reset + Ripristina - Host Interface - NetworkAttachmentType - Interfaccia Host + Opens a dialog to select a different folder. + Apre una finestra per selezionare una cartella diversa. - Internal Network - NetworkAttachmentType - Rete interna + Resets the folder path to the default value. + Ripristina il percorso della cartella al valore predefinito. - Not supported - USBDeviceState - Non supportato + Opens a dialog to select a different file. + Apre una finestra per selezionare un file differente. - Unavailable - USBDeviceState - Non disponibile + Resets the file path to the default value. + Ripristina il percorso del file al valore predefinito. - Busy - USBDeviceState - Occupato + &Copy + &Copia - Available - USBDeviceState - Disponibile + Please type the folder path here. + Digita qui il percorso alla cartella desiderata. - Held - USBDeviceState - Mantenuta + Please type the file path here. + Digita qui il percorso al file desiderato. + + + VBoxGLSettingsDlg - Captured - USBDeviceState - Catturato + General + Generale - <i>Checking...</i> - hard disk - <i>Controllo...</i> + Input + Inserimento - <i>Inaccessible</i> - hard disk - <i>Non accessibile</i> + Update + Aggiornamento - Disabled - ClipboardType - Disabilitato + Language + Lingua - Host To Guest - ClipboardType - Da host a guest + USB + USB - Guest To Host - ClipboardType - Da Guest a Host + VirtualBox - %1 + VirtualBox - %1 - Bidirectional - ClipboardType - Bidirezionale + Network + Rete + + + VBoxGLSettingsInput - Select a directory - Seleziona una cartella + Host &Key: + Tasto &host: - Select a file - Seleziona un file + Displays the key used as a Host Key in the VM window. Activate the entry field and press a new Host Key. Note that alphanumeric, cursor movement and editing keys cannot be used. + Visualizza la combinazione di tasti usata come tasto Host nella finestra della MV. Attiva il campo e premi un nuovo tasto Host. Nota che tasti alfanumerici, movimenti del cursore e tasti di modifica non possono essere usati come tasto Host. - Port %1 - details report (serial ports) - Porta %1 + When checked, the keyboard is automatically captured every time the VM window is activated. When the keyboard is captured, all keystrokes (including system ones like Alt-Tab) are directed to the VM. + Se selezionato, la tastiera viene acquisita automaticamente ogni volta che la finestra della MV è attivata. Una volta che la tastiera è acquisita, tutte le combinazioni di tasti (incluse quelle di sistema come Alt-Tab) sono dirette alla MV. - Disabled - details report (serial ports) - Disabilitate + &Auto Capture Keyboard + &Acquisizione automatica della tastiera - Serial Ports - details report - Porte seriali + Reset Host Key + Reimposta il tasto host - USB - details report - USB + Resets the key used as a Host Key in the VM window. + Reimposta il tasto utilizzato per il tasto host nella finestra. + + + VBoxGlobal - Shared Folders - details report (shared folders) - Cartelle condivise + Unknown device %1:%2 + USB device details + Dispositivo sconosciuto %1:%2 - %1 - details report (shadef folders) - %1 + <nobr>Vendor ID: %1</nobr><br><nobr>Product ID: %2</nobr><br><nobr>Revision: %3</nobr> + USB device tooltip + <nobr>ID venditore: %1</nobr><br><nobr>ID prodotto: %2</nobr><br><nobr>Revisione: %3</nobr> - None - details report (shared folders) - Nessuna + <br><nobr>Serial No. %1</nobr> + USB device tooltip + <br><nobr>N. seriale %1</nobr> - Shared Folders - details report - Cartelle condivise + <br><nobr>State: %1</nobr> + USB device tooltip + <br><nobr>Stato: %1</nobr> - Stuck - MachineState - Bloccata + Name + details report + Nome - Disconnected - PortMode - Non connessa + OS Type + details report + Sistema operativo - Host Pipe - PortMode - Pipe host + Base Memory + details report + Memoria di base - Host Device - PortMode - Dispositivo host + General + details report + Generale - User-defined - serial port - Definita dall'utente + Video Memory + details report + Memoria video - Custom Hard Disk - DiskStorageType - Disco rigido personalizzato + Boot Order + details report + Ordine di avvio - VT-x/AMD-V + ACPI details report - VT-x/AMD-V + ACPI - PAE/NX + IO APIC details report - PAE/NX + IO APIC Enabled - details report (VT-x/AMD-V) + details report (ACPI) Abilitato Disabled - details report (VT-x/AMD-V) + details report (ACPI) Disabilitato Enabled - details report (PAE/NX) + details report (IO APIC) Abilitato Disabled - details report (PAE/NX) + details report (IO APIC) Disabilitato - Host Driver + Disabled details report (audio) - Driver del sistema host + Disabilitato - Controller - details report (audio) - Controller + Audio + details report + Audio - Port %1 - details report (parallel ports) - Porta %1 + Adapter %1 + details report (network) + Driver %1 Disabled - details report (parallel ports) + details report (network) Disabilitato - Parallel Ports + Network details report - Porte parallele + Rete - USB - DeviceType - USB + Device Filters + details report (USB) + Filtri dispositivi - Shared Folder - DeviceType - Cartella condivisa + %1 (%2 active) + details report (USB) + %1 (%2 attivo) - IDE - StorageBus - IDE + Disabled + details report (USB) + Disabilitato - SATA - StorageBus - SATA + Powered Off + MachineState + Spenta - Primary - StorageBusChannel - Primario + Saved + MachineState + Salvata - Secondary - StorageBusChannel - Secondario + Aborted + MachineState + Interrotta - Master - StorageBusDevice - Master + Running + MachineState + In esecuzione - Slave - StorageBusDevice - Slave - - - Port %1 - StorageBusChannel - Porta %1 + Paused + MachineState + In pausa - VHD Image - DiskStorageType - Immagine VHD + Starting + MachineState + In avvio - Solaris Audio - AudioDriverType - Audio Solaris + Stopping + MachineState + In chiusura - PulseAudio - AudioDriverType - PulseAudio + Saving + MachineState + In salvataggio - ICH AC97 - AudioControllerType - ICH AC97 + Restoring + MachineState + In ripristino - SoundBlaster 16 - AudioControllerType - SoundBlaster 16 + Spawning + SessionState + Inizializzazione - PCnet-PCI II (Am79C970A) - NetworkAdapterType - PCnet-PCI II (Am79C970A) + None + DeviceType + Nessuno - PCnet-FAST III (Am79C973) - NetworkAdapterType - PCnet-FAST III (Am79C973) + Floppy + DeviceType + Floppy - Intel PRO/1000 MT Desktop (82540EM) - NetworkAdapterType - Intel PRO/1000 MT Desktop (82540EM) + CD/DVD-ROM + DeviceType + CD/DVD-ROM - PIIX3 - IDEControllerType - PIIX3 + Hard Disk + DeviceType + Disco fisso - PIIX4 - IDEControllerType - PIIX4 + Network + DeviceType + Rete - Intel PRO/1000 T Server (82543GC) - NetworkAdapterType - Intel PRO/1000 T Server (82543GC) + Normal + DiskType + Normale - <nobr>Vendor ID: %1</nobr> - USB filter tooltip - <nobr>ID venditore: %1</nobr> + Immutable + DiskType + Invariabile - <nobr>Product ID: %2</nobr> - USB filter tooltip - <nobr>ID prodotto: %2</nobr> + Writethrough + DiskType + Writethrough - <nobr>Revision: %3</nobr> - USB filter tooltip - <nobr>Revisione: %3</nobr> + Ignore + USBFilterActionType + Ignora - <nobr>Product: %4</nobr> - USB filter tooltip - <nobr>Prodotto: %4</nobr> + Hold + USBFilterActionType + Trattieni - <nobr>Manufacturer: %5</nobr> - USB filter tooltip - <nobr>Produttore: %5</nobr> + Null Audio Driver + AudioDriverType + Driver audio Null - <nobr>Serial No.: %1</nobr> - USB filter tooltip - <nobr>Num. seriale: %1</nobr> + Windows Multimedia + AudioDriverType + Windows Multimedia - <nobr>Port: %1</nobr> - USB filter tooltip - <nobr>Porta: %1</nobr> + OSS Audio Driver + AudioDriverType + Driver Audio OSS - <nobr>State: %1</nobr> - USB filter tooltip - <nobr>Stato: %1</nobr> + ALSA Audio Driver + AudioDriverType + Driver Audio ALSA - host interface, %1 - details report (network) - interfaccia host, %1 + Windows DirectSound + AudioDriverType + Windows DirectSound - internal network, '%1' - details report (network) - rete interna, '%1' + CoreAudio + AudioDriverType + CoreAudio - Adapter %1 - network - Scheda %1 + Not attached + NetworkAttachmentType + Non connesso - <br><nobr>Type&nbsp;(Format):&nbsp;&nbsp;%2&nbsp;(%3)</nobr> - hard disk - <br><nobr>Tipo&nbsp;(Formato):&nbsp;&nbsp;%2&nbsp;(%3)</nobr> + NAT + NetworkAttachmentType + NAT - <br><nobr>Attached to:&nbsp;&nbsp;%1</nobr> - medium - <br><nobr>Connesso a:&nbsp;&nbsp;%1</nobr> + Internal Network + NetworkAttachmentType + Rete interna - <i>Not&nbsp;Attached</i> - medium - <i>Non&nbsp;connesso</i> + Not supported + USBDeviceState + Non supportato - <br><i>Checking accessibility...</i> - medium - <br><i>Controllo accessibilità...</i> + Unavailable + USBDeviceState + Non disponibile - <hr>Failed to check media accessibility.<br>%1. - medium - <hr>Controllo di accessibilità del supporto non riuscito.<br>%1. + Busy + USBDeviceState + Occupato - <hr><img src=%1/>&nbsp;Attaching this hard disk will be performed indirectly using a newly created differencing hard disk. - medium - <hr><img src=%1/>&nbsp;Il collegamento di questo disco fisso sarà eseguito indirettamente utilizzando un nuovo disco differenziale. + Available + USBDeviceState + Disponibile - Checking... - medium - Controllo in corso... + Held + USBDeviceState + Mantenuta - Inaccessible - medium - Inaccessibile + Captured + USBDeviceState + Catturato - <hr>Some of the media in this hard disk chain are inaccessible. Please use the Virtual Media Manager in <b>Show Differencing Hard Disks</b> mode to inspect these media. - <hr>Alcuni supporti in questa catena di dischi sono inaccessibili. Utilizzare il gestore supporti virtuali in modalità <b>Mostra dischi fissi differenziali</b> per rilevare questi supporti. + Disabled + ClipboardType + Disabilitato - %1<hr>This base hard disk is indirectly attached using the following differencing hard disk:<br>%2%3 - %1<hr>Questo disco fisso di base è collegato indirettamente utilizzando il seguente disco fisso differenziale:<br>%2%3 + Host To Guest + ClipboardType + Da host a guest - 3D Acceleration - details report - Accelerazione 3D + Guest To Host + ClipboardType + Da Guest a Host - Enabled - details report (3D Acceleration) - Abilitata + Bidirectional + ClipboardType + Bidirezionale - Disabled - details report (3D Acceleration) - Disabilitata + Port %1 + details report (serial ports) + Porta %1 - Setting Up - MachineState - Configurazione + Disabled + details report (serial ports) + Disabilitate - Differencing - DiskType - Differenziale + Serial Ports + details report + Porte seriali - Nested Paging + USB details report - Paginazione nidificata + USB - Enabled - details report (Nested Paging) - Abilitata + Shared Folders + details report (shared folders) + Cartelle condivise - Disabled - details report (Nested Paging) - Disabilitata + None + details report (shared folders) + Nessuna - Bridged network, %1 - details report (network) - Rete con bridge, %1 + Shared Folders + details report + Cartelle condivise - Internal network, '%1' - details report (network) - Rete interna, '%1' + Disconnected + PortMode + Non connessa - Host-only network, '%1' - details report (network) - Rete solo-host, '%1' - - - SCSI - StorageBus - + Host Pipe + PortMode + Pipe host - Bridged Network - NetworkAttachmentType - Rete con bridge + Host Device + PortMode + Dispositivo host - Host-only Network - NetworkAttachmentType - Rete solo-host + User-defined + serial port + Definita dall'utente - PIIX3 - StorageControllerType - PIIX3 + VT-x/AMD-V + details report + VT-x/AMD-V - PIIX4 - StorageControllerType - PIIX4 + PAE/NX + details report + PAE/NX - ICH6 - StorageControllerType - + Enabled + details report (VT-x/AMD-V) + Abilitato - AHCI - StorageControllerType - + Disabled + details report (VT-x/AMD-V) + Disabilitato - Lsilogic - StorageControllerType - + Enabled + details report (PAE/NX) + Abilitato - BusLogic - StorageControllerType - + Disabled + details report (PAE/NX) + Disabilitato - Bridged adapter, %1 - details report (network) - Scheda con bridge, %1 + Host Driver + details report (audio) + Driver del sistema host - Host-only adapter, '%1' - details report (network) - Scheda solo host, '%1' + Controller + details report (audio) + Controller - Intel PRO/1000 MT Server (82545EM) - NetworkAdapterType - + Port %1 + details report (parallel ports) + Porta %1 - Bridged Adapter - NetworkAttachmentType - Scheda con bridge + Disabled + details report (parallel ports) + Disabilitato - Host-only Adapter - NetworkAttachmentType - Scheda solo host + Parallel Ports + details report + Porte parallele - <nobr>%1 MB</nobr> - details report - <nobr>%1 MB</nobr> + USB + DeviceType + USB - Processor(s) - details report - Processore(i) + Shared Folder + DeviceType + Cartella condivisa - <nobr>%1</nobr> - details report - <nobr>%1</nobr> + IDE + StorageBus + IDE - System - details report - Sistema + SATA + StorageBus + SATA - Remote Display Server Port - details report (VRDP Server) - Porta del server di schermo remoto + Primary + StorageBusChannel + Primario - Remote Display Server - details report (VRDP Server) - Server di schermo remoto + Secondary + StorageBusChannel + Secondario - Disabled - details report (VRDP Server) - Disabilitato + Master + StorageBusDevice + Master - Display - details report - Schermo + Slave + StorageBusDevice + Slave - Raw File - PortMode - File raw + Port %1 + StorageBusChannel + Porta %1 - Enabled - details report (2D Video Acceleration) - Abilitata + Solaris Audio + AudioDriverType + Audio Solaris - Disabled - details report (2D Video Acceleration) - Disabilitata + PulseAudio + AudioDriverType + PulseAudio - 2D Video Acceleration - details report - Accelerazione video 2D + ICH AC97 + AudioControllerType + ICH AC97 - Not Attached - details report (Storage) - Non collegato + SoundBlaster 16 + AudioControllerType + SoundBlaster 16 - Storage - details report - Archiviazione + PCnet-PCI II (Am79C970A) + NetworkAdapterType + PCnet-PCI II (Am79C970A) - Teleported - MachineState - Migrata + PCnet-FAST III (Am79C973) + NetworkAdapterType + PCnet-FAST III (Am79C973) - Guru Meditation - MachineState - Meditazione del Guru + Intel PRO/1000 MT Desktop (82540EM) + NetworkAdapterType + Intel PRO/1000 MT Desktop (82540EM) - Teleporting - MachineState - Migrazione in corso + Intel PRO/1000 T Server (82543GC) + NetworkAdapterType + Intel PRO/1000 T Server (82543GC) - Taking Live Snapshot - MachineState - Acquisizione istantanea a caldo + <nobr>Vendor ID: %1</nobr> + USB filter tooltip + <nobr>ID venditore: %1</nobr> - Teleporting Paused VM - MachineState - Migrazione MV in pausa + <nobr>Product ID: %2</nobr> + USB filter tooltip + <nobr>ID prodotto: %2</nobr> - Restoring Snapshot - MachineState - Ripristino istantanea + <nobr>Revision: %3</nobr> + USB filter tooltip + <nobr>Revisione: %3</nobr> - Deleting Snapshot - MachineState - Eliminazione istantanea + <nobr>Product: %4</nobr> + USB filter tooltip + <nobr>Prodotto: %4</nobr> - Floppy - StorageBus - Floppy + <nobr>Manufacturer: %5</nobr> + USB filter tooltip + <nobr>Produttore: %5</nobr> - Device %1 - StorageBusDevice - Dispositivo %1 + <nobr>Serial No.: %1</nobr> + USB filter tooltip + <nobr>Num. seriale: %1</nobr> - IDE Primary Master - New Storage UI : Slot Name - IDE master primario + <nobr>Port: %1</nobr> + USB filter tooltip + <nobr>Porta: %1</nobr> - IDE Primary Slave - New Storage UI : Slot Name - IDE slave primario + <nobr>State: %1</nobr> + USB filter tooltip + <nobr>Stato: %1</nobr> - IDE Secondary Master - New Storage UI : Slot Name - IDE master secondario + Checking... + medium + Controllo in corso... - IDE Secondary Slave - New Storage UI : Slot Name - IDE slave secondario + Inaccessible + medium + Inaccessibile - SATA Port %1 - New Storage UI : Slot Name - Porta SATA %1 + 3D Acceleration + details report + Accelerazione 3D + + + Enabled + details report (3D Acceleration) + Abilitata + + + Disabled + details report (3D Acceleration) + Disabilitata + + + Setting Up + MachineState + Configurazione + + + Differencing + DiskType + Differenziale + + + Nested Paging + details report + Paginazione nidificata + + + Enabled + details report (Nested Paging) + Abilitata + + + Disabled + details report (Nested Paging) + Disabilitata + + + Internal network, '%1' + details report (network) + Rete interna, '%1' + + + SCSI + StorageBus + + + + PIIX3 + StorageControllerType + PIIX3 + + + PIIX4 + StorageControllerType + PIIX4 + + + ICH6 + StorageControllerType + + + + AHCI + StorageControllerType + + + + Lsilogic + StorageControllerType + + + + BusLogic + StorageControllerType + + + + Bridged adapter, %1 + details report (network) + Scheda con bridge, %1 + + + Host-only adapter, '%1' + details report (network) + Scheda solo host, '%1' + + + Intel PRO/1000 MT Server (82545EM) + NetworkAdapterType + + + + Bridged Adapter + NetworkAttachmentType + Scheda con bridge + + + Host-only Adapter + NetworkAttachmentType + Scheda solo host + + + <nobr>%1 MB</nobr> + details report + <nobr>%1 MB</nobr> + + + Processor(s) + details report + Processore(i) + + + <nobr>%1</nobr> + details report + <nobr>%1</nobr> + + + System + details report + Sistema + + + Display + details report + Schermo + + + Raw File + PortMode + File raw + + + Enabled + details report (2D Video Acceleration) + Abilitata + + + Disabled + details report (2D Video Acceleration) + Disabilitata + + + 2D Video Acceleration + details report + Accelerazione video 2D + + + Not Attached + details report (Storage) + Non collegato + + + Storage + details report + Archiviazione + + + Teleported + MachineState + Migrata + + + Guru Meditation + MachineState + Meditazione del Guru + + + Teleporting + MachineState + Migrazione in corso + + + Taking Live Snapshot + MachineState + Acquisizione istantanea a caldo + + + Teleporting Paused VM + MachineState + Migrazione MV in pausa + + + Restoring Snapshot + MachineState + Ripristino istantanea + + + Deleting Snapshot + MachineState + Eliminazione istantanea + + + Floppy + StorageBus + Floppy + + + Device %1 + StorageBusDevice + Dispositivo %1 + + + IDE Primary Master + New Storage UI : Slot Name + IDE master primario + + + IDE Primary Slave + New Storage UI : Slot Name + IDE slave primario + + + IDE Secondary Master + New Storage UI : Slot Name + IDE master secondario + + + IDE Secondary Slave + New Storage UI : Slot Name + IDE slave secondario + + + SATA Port %1 + New Storage UI : Slot Name + Porta SATA %1 SCSI Port %1 @@ -10995,31 +10696,16 @@ Schermi - VDE network, '%1' - details report (network) - Rete VDE. '%1' - - SAS StorageBus SAS - VDE Adapter - NetworkAttachmentType - Scheda VDE - - LsiLogic SAS StorageControllerType LsiLogic SAS - ^(?:(?:(\d+)(?:\s?(B|KB|MB|GB|TB|PB))?)|(?:(\d*)%1(\d{1,2})(?:\s?(KB|MB|GB|TB|PB))))$ - regexp for matching ####[.##] B|KB|MB|GB|TB|PB, %1=decimal point - ^(?:(?:(\d+)(?:\s?(B|KB|MB|GB|TB|PB))?)|(?:(\d*)%1(\d{1,2})(?:\s?(KB|MB|GB|TB|PB))))$ - - B size suffix Bytes @@ -11064,6 +10750,11 @@ Paginazione nidificata + Shareable + DiskType + Condivisibile + + Unknown device USB device details Dispositivo sconosciuto @@ -11074,11 +10765,6 @@ Porta SAS %1 - Shareable - DiskType - Condivisibile - - Remote Desktop Server Port details report (VRDE Server) Porta del server di desktop remoto @@ -11146,127 +10832,453 @@ Sblocco in corso - Null - AuthType - Null + Null + AuthType + Null + + + External + AuthType + Esterna + + + Guest + AuthType + Guest + + + Intel HD Audio + AudioControllerType + + + + UDP + NATProtocolType + + + + TCP + NATProtocolType + + + + PIIX3 + ChipsetType + PIIX3 + + + ICH9 + ChipsetType + + + + and + e + + + MB + size suffix MBytes=1024KBytes + MB + + + Readonly + DiskType + Sola lettura + + + Multi-attach + DiskType + Collegamento multiplo + + + Dynamically allocated storage + Archiviazione allocata dinamicamente + + + Fixed size storage + Archiviazione a dimensione fissa + + + Dynamically allocated storage split into files of less than 2GB + Archiviazione allocata dinamicamente divisa in file di dimensione inferiore a 2GB + + + Fixed size storage split into files of less than 2GB + Archiviazione a dimensione fissa divisa in file di dimensione inferiore a 2GB + + + Execution Cap + details report + Execution Cap + + + <nobr>%1%</nobr> + details report + <nobr>%1%</nobr> + + + Generic, '%1' + details report (network) + Generico, '%1' + + + Generic Driver + NetworkAttachmentType + Driver generico + + + Deny + NetworkAdapterPromiscModePolicyType + Nega + + + Allow VMs + NetworkAdapterPromiscModePolicyType + Permetti MV + + + Allow All + NetworkAdapterPromiscModePolicyType + Permetti tutto + + + Adapter %1 + Scheda %1 + + + Differencing + hard disk + Differenziale + + + <nobr>%3 MB</nobr> + details report + <nobr>%3 MB</nobr> + + + <nobr>%4 MB</nobr> + details report + <nobr>%4 MB</nobr> + + + Not Attached + details report (HDDs) + Non connesso + + + Hard Disks + details report + Dischi fissi + + + Not mounted + details report (floppy) + Non montato + + + Image + details report (floppy) + Immagine + + + Host Drive + details report (floppy) + Lettore dell'host + + + Floppy + details report + Floppy + + + Not mounted + details report (DVD) + Non montato + + + Image + details report (DVD) + Immagine + + + Host Drive + details report (DVD) + Lettore dell'host + + + CD/DVD-ROM + details report + CD/DVD-ROM + + + Adapter + details report (audio) + Driver + + + USB Controller + details report + Controller USB + + + VRDP Server Port + details report (VRDP) + Porta del server VRDP + + + %1 + details report (VRDP) + %1 + + + Disabled + details report (VRDP) + Disabilitato + + + Remote Display + details report + Schermo remoto + + + Opening URLs is not implemented yet. + L'apertura delle URL non è attualmente implementata. + + + Discarding + MachineState + In scarto + + + Closed + SessionState + Chiusa + + + Open + SessionState + Aperta + + + Closing + SessionState + In chiusura + + + Primary + DiskControllerType + Primario + + + Secondary + DiskControllerType + Secondario + + + Virtual Disk Image + DiskStorageType + Immagine Disco Virtuale + + + iSCSI + DiskStorageType + iSCSI + + + VMDK Image + DiskStorageType + Immagine VMDK + + + Null + VRDPAuthType + Null + + + External + VRDPAuthType + Esterna + + + Guest + VRDPAuthType + Guest + + + Master + DiskControllerDevice + Master + + + Slave + DiskControllerDevice + Slave + + + Device&nbsp;%1 + DiskControllerDevice + Dispositivo&nbsp;%1 + + + Host Interface + NetworkAttachmentType + Interfaccia Host + + + <i>Checking...</i> + hard disk + <i>Controllo...</i> + + + <i>Inaccessible</i> + hard disk + <i>Non accessibile</i> + + + Select a directory + Seleziona una cartella + + + Select a file + Seleziona un file + + + %1 + details report (shadef folders) + %1 + + + Stuck + MachineState + Bloccata + + + Custom Hard Disk + DiskStorageType + Disco rigido personalizzato + + + VHD Image + DiskStorageType + Immagine VHD - External - AuthType - Esterna + PIIX3 + IDEControllerType + PIIX3 - Guest - AuthType - Guest + PIIX4 + IDEControllerType + PIIX4 - Intel HD Audio - AudioControllerType - + host interface, %1 + details report (network) + interfaccia host, %1 - UDP - NATProtocolType - + internal network, '%1' + details report (network) + rete interna, '%1' - TCP - NATProtocolType - + Adapter %1 + network + Scheda %1 - PIIX3 - ChipsetType - PIIX3 + <br><nobr>Type&nbsp;(Format):&nbsp;&nbsp;%2&nbsp;(%3)</nobr> + hard disk + <br><nobr>Tipo&nbsp;(Formato):&nbsp;&nbsp;%2&nbsp;(%3)</nobr> - ICH9 - ChipsetType - + <br><nobr>Attached to:&nbsp;&nbsp;%1</nobr> + medium + <br><nobr>Connesso a:&nbsp;&nbsp;%1</nobr> - and - e + <i>Not&nbsp;Attached</i> + medium + <i>Non&nbsp;connesso</i> - MB - size suffix MBytes=1024KBytes - MB + <br><i>Checking accessibility...</i> + medium + <br><i>Controllo accessibilità...</i> - Readonly - DiskType - Sola lettura + <hr>Failed to check media accessibility.<br>%1. + medium + <hr>Controllo di accessibilità del supporto non riuscito.<br>%1. - Multi-attach - DiskType - Collegamento multiplo + <hr><img src=%1/>&nbsp;Attaching this hard disk will be performed indirectly using a newly created differencing hard disk. + medium + <hr><img src=%1/>&nbsp;Il collegamento di questo disco fisso sarà eseguito indirettamente utilizzando un nuovo disco differenziale. - Dynamically allocated storage - Archiviazione allocata dinamicamente + <hr>Some of the media in this hard disk chain are inaccessible. Please use the Virtual Media Manager in <b>Show Differencing Hard Disks</b> mode to inspect these media. + <hr>Alcuni supporti in questa catena di dischi sono inaccessibili. Utilizzare il gestore supporti virtuali in modalità <b>Mostra dischi fissi differenziali</b> per rilevare questi supporti. - Fixed size storage - Archiviazione a dimensione fissa + %1<hr>This base hard disk is indirectly attached using the following differencing hard disk:<br>%2%3 + %1<hr>Questo disco fisso di base è collegato indirettamente utilizzando il seguente disco fisso differenziale:<br>%2%3 - Dynamically allocated storage split into files of less than 2GB - Archiviazione allocata dinamicamente divisa in file di dimensione inferiore a 2GB + Bridged network, %1 + details report (network) + Rete con bridge, %1 - Fixed size storage split into files of less than 2GB - Archiviazione a dimensione fissa divisa in file di dimensione inferiore a 2GB + Host-only network, '%1' + details report (network) + Rete solo-host, '%1' - Execution Cap - details report - Execution Cap + Bridged Network + NetworkAttachmentType + Rete con bridge - <nobr>%1%</nobr> - details report - <nobr>%1%</nobr> + Host-only Network + NetworkAttachmentType + Rete solo-host - Generic, '%1' - details report (network) - Generico, '%1' + Remote Display Server Port + details report (VRDP Server) + Porta del server di schermo remoto - Generic Driver - NetworkAttachmentType - Driver generico + Remote Display Server + details report (VRDP Server) + Server di schermo remoto - Deny - NetworkAdapterPromiscModePolicyType - Nega + Disabled + details report (VRDP Server) + Disabilitato - Allow VMs - NetworkAdapterPromiscModePolicyType - Permetti MV + VDE network, '%1' + details report (network) + Rete VDE. '%1' - Allow All - NetworkAdapterPromiscModePolicyType - Permetti tutto + VDE Adapter + NetworkAttachmentType + Scheda VDE - Adapter %1 - Scheda %1 + ^(?:(?:(\d+)(?:\s?(B|KB|MB|GB|TB|PB))?)|(?:(\d*)%1(\d{1,2})(?:\s?(KB|MB|GB|TB|PB))))$ + regexp for matching ####[.##] B|KB|MB|GB|TB|PB, %1=decimal point + ^(?:(?:(\d+)(?:\s?(B|KB|MB|GB|TB|PB))?)|(?:(\d*)%1(\d{1,2})(?:\s?(KB|MB|GB|TB|PB))))$ VBoxGlobalSettings - '%1 (0x%2)' is an invalid host key code. - '%1 (0x%2)' non è un codice host key valido. - - The value '%1' of the key '%2' doesn't match the regexp constraint '%3'. Il valore '%1' della chiave '%2' non valida l'espressione regolare '%3'. @@ -11278,6 +11290,10 @@ '%1' is an invalid host-combination code-sequence. '%1' è una sequenza non valida di combinazione host. + + '%1 (0x%2)' is an invalid host key code. + '%1 (0x%2)' non è un codice host key valido. + VBoxGlobalSettingsDlg @@ -11842,6 +11858,10 @@ VBoxLicenseViewer + VirtualBox License + Licenza di VirtualBox + + I &Agree &Accetto @@ -11849,14 +11869,50 @@ I &Disagree &Rifiuto - - VirtualBox License - Licenza di VirtualBox - VBoxLogSearchPanel + Close the search panel + Chiudi il pannello di ricerca + + + Find + Trova + + + Enter a search string here + Inserisci qui una stringa di ricerca + + + &Previous + &Precedente + + + Search for the previous occurrence of the string + Cerca l'occorrenza precedente della stringa + + + &Next + &Successiva + + + Search for the next occurrence of the string + Cerca l'occorrenza successiva della stringa + + + C&ase Sensitive + Distingui le m&aiuscole + + + Perform case sensitive search (when checked) + Esegui una ricerca distinguendo le maiscole (se marcata) + + + String not found + Stringa non trovata + + Alt+P Alt+P @@ -11931,18 +11987,6 @@ Aggiorna la lista dei supporti - Location - Posizione - - - Type (Format) - Tipo (Formato) - - - Attached to - Connesso a - - Checking accessibility Controllo accessibilità @@ -11951,10 +11995,6 @@ &Seleziona - All hard disk images (%1) - Tutte le immagini di dischi fissi (%1) - - All files (*) Tutti i file (*) @@ -11963,18 +12003,10 @@ Seleziona un file immagine di disco fisso - CD/DVD-ROM images (*.iso);;All files (*) - Immagini CD/DVD-ROM (*.iso);;Tutti i file (*) - - Select a CD/DVD-ROM disk image file Seleziona un file immagine di CD/DVD-ROM - Floppy images (*.img);;All files (*) - Immagini floppy (*.img);;Tutti i file (*) - - Select a floppy disk image file Seleziona un file immagine di disco floppy @@ -12020,21 +12052,6 @@ Immagini &floppy - Attached to - VMM: Virtual Disk - Collegato a - - - Attached to - VMM: CD/DVD Image - Collegata a - - - Attached to - VMM: Floppy Image - Collegata a - - CD/DVD-ROM disk disco CD/DVD-ROM @@ -12067,28 +12084,67 @@ Dettagli di archiviazione: - Attached to: - Collegato a: + Attached to: + Collegato a: + + + &Copy... + &Copia... + + + &Modify... + &Modifica... + + + Copy an existing medium + Copia un supporto esistente + + + Modify the attributes of the selected medium + Modifica gli attributi del supporto selezionato + + + C&lose + C&hiudi + + + Location + Posizione + + + Type (Format) + Tipo (Formato) + + + Attached to + Connesso a + + + All hard disk images (%1) + Tutte le immagini di dischi fissi (%1) - &Copy... - &Copia... + CD/DVD-ROM images (*.iso);;All files (*) + Immagini CD/DVD-ROM (*.iso);;Tutti i file (*) - &Modify... - &Modifica... + Floppy images (*.img);;All files (*) + Immagini floppy (*.img);;Tutti i file (*) - Copy an existing medium - Copia un supporto esistente + Attached to + VMM: Virtual Disk + Collegato a - Modify the attributes of the selected medium - Modifica gli attributi del supporto selezionato + Attached to + VMM: CD/DVD Image + Collegata a - C&lose - C&hiudi + Attached to + VMM: Floppy Image + Collegata a @@ -12163,10 +12219,6 @@ Visualizza la famiglia del sistema operativo che si vuole installare nella macchina virtuale. - V&ersion: - V&ersione: - - Displays the operating system type that you plan to install into this virtual machine (called a guest operating system). Visualizza il tipo di sistema operativo che intendi installare in questa macchina virtuale (chiamato sistema operativo guest). @@ -12174,6 +12226,10 @@ &Version: &Versione: + + V&ersion: + V&ersione: + VBoxRegistrationDlg @@ -12294,54 +12350,275 @@ P&assword: - Co&nfirm Password: - Co&nferma password: + Co&nfirm Password: + Co&nferma password: + + + &Register + &Registra + + + + VBoxSFDialog + + Shared Folders + Cartelle condivise + + + OK + OK + + + Cancel + Annulla + + + Help + Aiuto + + + &OK + &OK + + + + VBoxScreenshotViewer + + Screenshot of %1 (%2) + Schermata di %1 (%2) + + + Click to view non-scaled screenshot. + Fai clic per visualizzare una schermata non scalata. + + + Click to view scaled screenshot. + Fai clic per visualizzare una schermata scalata. + + + + VBoxSelectorWnd + + &Preferences... + global settings + &Preferenze... + + + Display the global settings dialog + Visualizza la finestra delle impostazioni globali + + + E&xit + E&sci + + + Close application + Chiudi l'applicazione + + + &New... + &Nuova... + + + Create a new virtual machine + Crea una nuova macchina virtuale + + + &Settings... + Impo&stazioni... + + + Configure the selected virtual machine + Configura la macchina virtuale selezionata + + + Discard the saved state of the selected virtual machine + Scarta lo stato salvato della macchina virtuale selezionata + + + Refresh the accessibility state of the selected virtual machine + Aggiorna lo stato di accessibilità della macchina virtuale selezionata + + + S&how + &Mostra + + + Switch to the window of the selected virtual machine + Passa alla finestra della macchina virtuale selezionata + + + S&tart + A&vvia + + + Start the selected virtual machine + Avvia la macchina virtuale selezionata + + + &Machine + &Macchina + + + Show &Log... + Mostra &log... + + + Show the log files of the selected virtual machine + Mostra i file di log della macchina virtuale selezionata + + + Resume the execution of the virtual machine + Riprendi l'esecuzione della macchina virtuale + + + &Pause + &Pausa + + + Suspend the execution of the virtual machine + Sospendi l'esecuzione della macchina virtuale + + + <h3>Welcome to VirtualBox!</h3><p>The left part of this window is a list of all virtual machines on your computer. The list is empty now because you haven't created any virtual machines yet.<img src=:/welcome.png align=right/></p><p>In order to create a new virtual machine, press the <b>New</b> button in the main tool bar located at the top of the window.</p><p>You can press the <b>%1</b> key to get instant help, or visit <a href=http://www.virtualbox.org>www.virtualbox.org</a> for the latest information and news.</p> + <h3>Benvenuti in VirtualBox!</h3><p>La parte sinistra di questa finestra visualizza un elenco delle macchine virtuali sul tuo computer. L'elenco al momento è vuoto perché non sono ancora state create macchine virtuali.<img src=:/welcome.png align=right/></p><p>Per creare una nuova macchina virtuale, premere il pulsante <b>Nuova</b> nella barra degli strumenti principale posizionata nella parte alta della finestra.</p><p>Premere il tasto <b>%1</b> per ottenere aiuto immediatamente, o visitare <a href=http://www.virtualbox.org>www.virtualbox.org</a> per le ultime notizie e informazioni.</p> + + + &Virtual Media Manager... + Gestore supporti &virtuali... + + + Display the Virtual Media Manager dialog + Visualizza la finestra del gestore dei supporti virtuali + + + Log + icon text + Registro + + + &Import Appliance... + &Importa applicazione virtuale... + + + Import an appliance into VirtualBox + Importa un'applicazione virtuale in VirtualBox + + + &Export Appliance... + &Esporta applicazione... + + + Export one or more VirtualBox virtual machines as an appliance + Esporta una o più macchine virtuali di VirtualBox come un'applicazione virtuale + + + Re&fresh + A&ggiorna + + + &File + Mac OS X version + + + + &File + Non Mac OS X version + + + + Select a virtual machine file + Seleziona un file di macchina virtuale + + + Virtual machine files (%1) + File di macchina virtuale (%1) + + + Manager + Note: main window title which is pretended by the product name. + Gestore + + + &Add... + &Aggiungi... + + + Add an existing virtual machine + Aggiungi una macchina virtuale esistente + + + &Remove + &Rimuovi + + + Remove the selected virtual machine + Rimuovi la macchina virtuale selezionata + + + Show in Finder + Mostra in Finder + + + Show the VirtualBox Machine Definition file in Finder. + Mostra il file di definizione della macchina di VirtualBox in Finder. + + + Create Alias on Desktop + Crea un alias sul desktop + + + Creates an Alias file to the VirtualBox Machine Definition file on your Desktop. + Crea un alias per il file di definizione della macchina virtuale di VirtualBox sul desktop. + + + Show in Explorer + Mostra in Explorer + + + Show the VirtualBox Machine Definition file in Explorer. + Mostra il file di definizione della macchina di VirtualBox in Explorer. + + + Create Shortcut on Desktop + Crea una scorciatoria sul desktop - &Register - &Registra + Creates an Shortcut file to the VirtualBox Machine Definition file on your Desktop. + Crea una scorciatoia al file di definizione della macchina virtuale di VirtualBox sul desktop. - - - VBoxSFDialog - Shared Folders - Cartelle condivise + Show in File Manager + Mostra nel gestore file - OK - OK + Show the VirtualBox Machine Definition file in the File Manager + Mostra il file di definizione della macchina di VirtualBox nel gestore file - Cancel - Annulla + Show Toolbar + Mostra la barra degli strumenti - Help - Aiuto + Show Statusbar + Mostra la barra di stato - &OK - &OK + Cl&one... + Cl&ona... - - - VBoxScreenshotViewer - Screenshot of %1 (%2) - Schermata di %1 (%2) + Clone the selected virtual machine + Clona la macchina virtuale selezionata - Click to view non-scaled screenshot. - Fai clic per visualizzare una schermata non scalata. + Discard + Scarta - Click to view scaled screenshot. - Fai clic per visualizzare una schermata scalata. + D&iscard Saved State + Scarta l&o stato salvato - - - VBoxSelectorWnd VirtualBox OSE VirtualBox OSE @@ -12383,10 +12660,6 @@ Ctrl+N - &Settings... - Impo&stazioni... - - Settings Impostazioni @@ -12395,10 +12668,6 @@ Ctrl+S - Configure the selected virtual machine - Configura la macchina virtuale selezionata - - &Delete &Rimuovi @@ -12491,10 +12760,6 @@ Avvia - &Machine - &Macchina - - Show Log... Visualizza log... @@ -12523,51 +12788,9 @@ Ctrl+P - Resume the execution of the virtual machine - Riprendi l'esecuzione della macchina virtuale - - - &Pause - &Pausa - - Pause Pausa - - Suspend the execution of the virtual machine - Sospendi l'esecuzione della macchina virtuale - - - <h3>Welcome to VirtualBox!</h3><p>The left part of this window is a list of all virtual machines on your computer. The list is empty now because you haven't created any virtual machines yet.<img src=:/welcome.png align=right/></p><p>In order to create a new virtual machine, press the <b>New</b> button in the main tool bar located at the top of the window.</p><p>You can press the <b>%1</b> key to get instant help, or visit <a href=http://www.virtualbox.org>www.virtualbox.org</a> for the latest information and news.</p> - <h3>Benvenuti in VirtualBox!</h3><p>La parte sinistra di questa finestra visualizza un elenco delle macchine virtuali sul tuo computer. L'elenco al momento è vuoto perché non sono ancora state create macchine virtuali.<img src=:/welcome.png align=right/></p><p>Per creare una nuova macchina virtuale, premere il pulsante <b>Nuova</b> nella barra degli strumenti principale posizionata nella parte alta della finestra.</p><p>Premere il tasto <b>%1</b> per ottenere aiuto immediatamente, o visitare <a href=http://www.virtualbox.org>www.virtualbox.org</a> per le ultime notizie e informazioni.</p> - - - Log - icon text - Registro - - - Select a virtual machine file - Seleziona un file di macchina virtuale - - - Virtual machine files (%1) - File di macchina virtuale (%1) - - - Manager - Note: main window title which is pretended by the product name. - Gestore - - - Show Toolbar - Mostra la barra degli strumenti - - - Show Statusbar - Mostra la barra di stato - VBoxSettingsDialog @@ -12726,6 +12949,30 @@ VBoxSnapshotDetailsDlg + Details of %1 (%2) + Dettagli di %1 (%2) + + + Click to enlarge the screenshot. + Fai clic per ingrandire la schermata. + + + &Name: + &Nome: + + + Taken: + Acquisita: + + + &Description: + &Descrizione: + + + D&etails: + D&ettagli: + + VBoxSnapshotDetailsDlg VBoxSnapshotDetailsDlg @@ -12766,163 +13013,179 @@ Annulla - Details of %1 (%2) - Dettagli di %1 (%2) - - Snapshot Details Dettagli istantanea + + + VBoxSnapshotsWgt - Click to enlarge the screenshot. - Fai clic per ingrandire la schermata. - - - &Name: - &Nome: + VBoxSnapshotsWgt + VBoxSnapshotsWgt - Taken: - Acquisita: + Current State (changed) + Current State (Modified) + Stato attuale (modificato) - &Description: - &Descrizione: + Current State + Current State (Unmodified) + Stato attuale - D&etails: - D&ettagli: + The current state differs from the state stored in the current snapshot + Lo stato attuale differisce da quello memorizzato nell'istantanea attuale - - - VBoxSnapshotsWgt - [snapshot] - [istantanea] + The current state is identical to the state stored in the current snapshot + Lo stato attuale è identico a quello memorizzato nell'istantanea attuale - VBoxSnapshotsWgt - VBoxSnapshotsWgt + (current, + Snapshot details + (attuale, - snapshotActionGroup - snapshotActionGroup + online) + Snapshot details + in linea) - Discard Snapshot - Scarta snapshot + offline) + Snapshot details + non in linea) - &Discard Snapshot - &Scarta istantanea + Taken at %1 + Snapshot (time) + Presa alle %1 - Ctrl+Shift+D - Ctrl+Shift+S + Taken on %1 + Snapshot (date + time) + Presa il %1 - curStateActionGroup - curStateActionGroup + %1 since %2 + Current State (time or date + time) + %1 da %2 - Take Snapshot - Snapshot + Snapshot %1 + Istantanea %1 Take &Snapshot Crea i&stantanea - Ctrl+Alt+S - Ctrl+Alt+S + S&how Details + &Mostra dettagli - Discard Current State - Scarta stato attuale + Take a snapshot of the current virtual machine state + Cattura un'istantanea dello stato corrente della macchina virtuale - D&iscard Current State - Sca&rta stato attuale + Show the details of the selected snapshot + Visualizza i dettagli dell'istantanea selezionata - Ctrl+Alt+D - Ctrl+Alt+I + (%1) + (%1) - Discard Current Snapshot and State - Scarta lo stato e lo snapshot attuali + &Restore Snapshot + &Ripristina istantanea - D&iscard Current Snapshot and State - Scarta l'&istantanea e lo stato attuale + &Delete Snapshot + &Elimina istantanea - Ctrl+Alt+Shift+D - Ctrl+Alt+Shift+D + Restore the selected snapshot of the virtual machine + Ripristina l'istantanea selezionata della macchina virtuale - Show Details - Mostra dettagli + Delete the selected snapshot of the virtual machine + Elimina l'istantanea selezionata della macchina virtuale - S&how Details - &Mostra dettagli + (%1 ago) + (%1 fa) - Space - Spazio + &Clone... + &Clona... + + + Clone the selected virtual machine + Clona la macchina virtuale selezionata + + + [snapshot] + [istantanea] + + + snapshotActionGroup + snapshotActionGroup + + + Discard Snapshot + Scarta snapshot + + + &Discard Snapshot + &Scarta istantanea + + + Ctrl+Shift+D + Ctrl+Shift+S - Current State (changed) - Current State (Modified) - Stato attuale (modificato) + curStateActionGroup + curStateActionGroup - Current State - Current State (Unmodified) - Stato attuale + Take Snapshot + Snapshot - The current state differs from the state stored in the current snapshot - Lo stato attuale differisce da quello memorizzato nell'istantanea attuale + Ctrl+Alt+S + Ctrl+Alt+S - The current state is identical to the state stored in the current snapshot - Lo stato attuale è identico a quello memorizzato nell'istantanea attuale + Discard Current State + Scarta stato attuale - (current, - Snapshot details - (attuale, + D&iscard Current State + Sca&rta stato attuale - online) - Snapshot details - in linea) + Ctrl+Alt+D + Ctrl+Alt+I - offline) - Snapshot details - non in linea) + Discard Current Snapshot and State + Scarta lo stato e lo snapshot attuali - Taken at %1 - Snapshot (time) - Presa alle %1 + D&iscard Current Snapshot and State + Scarta l'&istantanea e lo stato attuale - Taken on %1 - Snapshot (date + time) - Presa il %1 + Ctrl+Alt+Shift+D + Ctrl+Alt+Shift+D - %1 since %2 - Current State (time or date + time) - %1 da %2 + Show Details + Mostra dettagli - Snapshot %1 - Istantanea %1 + Space + Spazio Discard the selected snapshot of the virtual machine @@ -12933,10 +13196,6 @@ Ctrl+Shift+S - Take a snapshot of the current virtual machine state - Cattura un'istantanea dello stato corrente della macchina virtuale - - Revert to Current Snapshot Ripristina lo snapshot attuale @@ -12961,10 +13220,6 @@ Scarta l'istantanea corrente e ripristina la macchina allo stato precedente la cattura dello istantanea - Show the details of the selected snapshot - Visualizza i dettagli dell'istantanea selezionata - - Ctrl+Space Ctrl+Spazio @@ -12976,66 +13231,34 @@ Merges the snapshot into the parent snapshot or disk image and then deletes the now redundant snapshot file. Unisce l'istantanea all'istantanea di origine o all'immagine del disco e poi elimina il file ridondante. - - (%1) - (%1) - (%n day(s) ago) (%n giorno fa) - (%n giorni fa) + (%n hour(s) ago) (%n ora fa) - (%n ore fa) + (%n minute(s) ago) (%n minuto fa) - (%n minuti fa) + (%n second(s) ago) (%n secondo fa) - (%n secondi fa) + - - &Restore Snapshot - &Ripristina istantanea - - - &Delete Snapshot - &Elimina istantanea - - - Restore the selected snapshot of the virtual machine - Ripristina l'istantanea selezionata della macchina virtuale - - - Delete the selected snapshot of the virtual machine - Elimina l'istantanea selezionata della macchina virtuale - - - (%1 ago) - (%1 fa) - - - &Clone... - &Clona... - - - Clone the selected virtual machine - Clona la macchina virtuale selezionata - VBoxSwitchMenu @@ -13066,6 +13289,13 @@ Snapshot &Description &Descrizione dello snapshot + + Warning: You are taking a snapshot of a running machine which has %n immutable image(s) attached to it. As long as you are working from this snapshot the immutable image(s) will not be reset to avoid loss of data. + + Avviso: stai acquisendo un'istantanea di una macchina in esecuzione che ha un'immagine non modificabile collegata. Fino a quando lavorerari con questa istantanea, l'immagine non modificabile non sarà ripristinata per evitare perdite di dati. + Avviso: stai acquisendo un'istantanea di una macchina in esecuzione che ha %n immagini non modificabili collegate. Fino a quando lavorerari con questa istantanea, le immagini non modificabili non saranno ripristinate per evitare perdite di dati. + + Help Aiuto @@ -13086,13 +13316,6 @@ Cancel Annulla - - Warning: You are taking a snapshot of a running machine which has %n immutable image(s) attached to it. As long as you are working from this snapshot the immutable image(s) will not be reset to avoid loss of data. - - Avviso: stai acquisendo un'istantanea di una macchina in esecuzione che ha un'immagine non modificabile collegata. Fino a quando lavorerari con questa istantanea, l'immagine non modificabile non sarà ripristinata per evitare perdite di dati. - Avviso: stai acquisendo un'istantanea di una macchina in esecuzione che ha %n immagini non modificabili collegate. Fino a quando lavorerari con questa istantanea, le immagini non modificabili non saranno ripristinate per evitare perdite di dati. - - VBoxTrayIcon @@ -13306,14 +13529,6 @@ VBoxVMInformationDlg - Session Information Dialog - Finestra di Informazioni di Sessione - - - &Close - &Chiudi - - %1 - Session Information %1 - Informazione di sessione @@ -13350,14 +13565,6 @@ Dati ricevuti - Enabled - Abilitato - - - Disabled - Disabilitato - - Runtime Attributes Attributi di runtime @@ -13366,6 +13573,65 @@ Risoluzione dello schermo + Not Detected + guest additions + Non rilevate + + + Not Detected + guest os type + Non rilevato + + + Guest Additions + Guest Additions + + + Guest OS Type + Sistema operativo guest + + + No Network Adapters + Nessuna scheda di rete + + + VBoxVMInformationDlg + VBoxVMInformationDlg + + + Storage Statistics + Statistiche di archiviazione + + + No Storage Devices + Nessun dispositivo di archiviazione + + + Network Statistics + Statistiche di rete + + + Not Available + details report (VRDE server port) + Non disponibile + + + Session Information Dialog + Finestra di Informazioni di Sessione + + + &Close + &Chiudi + + + Enabled + Abilitato + + + Disabled + Disabilitato + + Hardware Virtualization Virtualizzazione hardware @@ -13427,24 +13693,6 @@ Versione %1.%2 - Not Detected - guest additions - Non rilevate - - - Not Detected - guest os type - Non rilevato - - - Guest Additions - Guest Additions - - - Guest OS Type - Sistema operativo guest - - Hard Disk Statistics Statistiche sul disco fisso @@ -13453,10 +13701,6 @@ Nessun disco fisso - No Network Adapters - Nessuna scheda di rete - - Enabled nested paging Abilitata @@ -13471,36 +13715,15 @@ Paginazione nidificata - VBoxVMInformationDlg - VBoxVMInformationDlg - - Not Available details report (VRDP server port) Non disponibile - Storage Statistics - Statistiche di archiviazione - - - No Storage Devices - Nessun dispositivo di archiviazione - - - Network Statistics - Statistiche di rete - - Nested Paging details report Paginazione nidificata - - Not Available - details report (VRDE server port) - Non disponibile - VBoxVMListBox @@ -13520,6 +13743,41 @@ + VBoxVMLogViewer + + Log Viewer + Visualizzatore log + + + &Save + &Salva + + + &Refresh + Aggio&rna + + + %1 - VirtualBox Log Viewer + %1 - Visualizzatore log di VirtualBox + + + <p>No log files found. Press the <b>Refresh</b> button to rescan the log folder <nobr><b>%1</b></nobr>.</p> + <p>Nessun file di log trovato. Premi il pulsante <b>Aggiorna</b> per una nuova scansione della cartella dei log <nobr><b>%1</b></nobr>.</p> + + + Save VirtualBox Log As + Salva log di VirtualBox come + + + &Find + &Trova + + + Close + Chiudi + + + VBoxVMNetworkSettings VBoxVMNetworkSettings diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Frontends/VirtualBox/nls/VirtualBox_ja.ts virtualbox-4.1.44-dfsg/src/VBox/Frontends/VirtualBox/nls/VirtualBox_ja.ts --- virtualbox-4.1.12-dfsg/src/VBox/Frontends/VirtualBox/nls/VirtualBox_ja.ts 2012-04-02 13:28:40.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Frontends/VirtualBox/nls/VirtualBox_ja.ts 2015-11-11 15:08:28.000000000 +0000 @@ -4,31 +4,31 @@ @@@ - + English Native language name 日本語 - + -- Native language country name (empty if this language is for all countries) - + English Language name, in English Japanese - + -- Language country name, in English (empty if native country name is empty) - + Oracle Corporation Comma-separated list of translators Toshimitsu Tanaka @@ -103,12 +103,12 @@ 互換性のないQtライブラリエラー - + VirtualBox - Error In %1 VirtualBox - %1 のエラー - + <html><b>%1 (rc=%2)</b><br/><br/> <html><b>%1 (rc=%2)</b><br/><br/> @@ -136,17 +136,17 @@ VirtualBox - ランタイムエラー - + <b>Cannot access the kernel driver!</b><br/><br/> <b>カーネルドライバにアクセスできません!</b><br/><br/> - + Unknown error %2 during initialization of the Runtime ランタイムの初期化中に予期しないエラー(%2) - + Kernel driver not accessible カーネルドライバにアクセスできない @@ -5652,117 +5652,122 @@ + <p>Failed to initialize COM because the VirtualBox global configuration directory <b><nobr>%1</nobr></b> is not accessible. Please check the permissions of this directory and of its parent directory.</p><p>The application will now terminate.</p> + + + + <p>Failed to create the VirtualBox COM object.</p><p>The application will now terminate.</p> <p>VirtualBox COMオブジェクトの作成に失敗しました。</p><p>アプリケーションを終了します。</p> - + Failed to set global VirtualBox properties. グローバルなVirtualBoxのプロパティの設定に失敗しました。 - + Failed to access the USB subsystem. USBサブシステムのアクセスに失敗しました。 - + Failed to create a new virtual machine. 新規仮想マシンの作成に失敗しました。 - + Failed to create a new virtual machine <b>%1</b>. 新規仮想マシン<b>"%1"</b>の作成に失敗しました。 - + Failed to open virtual machine located in %1. 仮想マシン<b>"%1"</b>を開けませんでした。 - + Failed to register the virtual machine <b>%1</b>. - + Failed to add virtual machine <b>%1</b> located in <i>%2</i> because its already present. 仮想マシン<b>"%1"</b>(<i>"%2"</i>)の追加に失敗しました。すでに存在します。 - + Failed to apply the settings to the virtual machine <b>%1</b>. 仮想マシン<b>"%1"</b>の設定の適用に失敗しました。 - + <p>The machine settings were changed while you were editing them. You currently have unsaved setting changes.</p><p>Would you like to reload the changed settings or to keep your own changes?</p> - + Reload settings - + Keep changes - + The virtual machine that you are changing has been started. Only certain settings can be changed while a machine is running. All other changes will be lost if you close this window now. - - + + Failed to start the virtual machine <b>%1</b>. 仮想マシン<b>"%1"</b>の起動に失敗しました。 - + Failed to pause the execution of the virtual machine <b>%1</b>. 仮想マシン<b>"%1"</b>の一時停止に失敗しました。 - + Failed to resume the execution of the virtual machine <b>%1</b>. 仮想マシン<b>"%1"</b>の再開に失敗しました。 - - + + Failed to save the state of the virtual machine <b>%1</b>. 仮想マシン<b>"%1"</b>の状態の保存に失敗しました。 - - + + Failed to clone the virtual machine <b>%1</b>. - - + + Failed to create a snapshot of the virtual machine <b>%1</b>. 仮想マシン<b>"%1"</b>のスナップショット作成に失敗しました。 - - + + Failed to stop the virtual machine <b>%1</b>. 仮想マシン<b>"%1"</b>の停止に失敗しました。 - - + + Failed to remove the virtual machine <b>%1</b>. 仮想マシン<b>"%1"</b>の除去に失敗しました。 - + Failed to discard the saved state of the virtual machine <b>%1</b>. 仮想マシン<b>"%1"</b>の保存された状態の破棄に失敗しました。 @@ -5779,7 +5784,7 @@ 仮想マシン<b>"%1"</b>の最新のスナップショットと状態の破棄に失敗しました。 - + There is no virtual machine named <b>%1</b>. 仮想マシン<b>"%1"</b>がありません。 @@ -5793,7 +5798,7 @@ - + <p>Are you sure you want to discard the saved state of the virtual machine <b>%1</b>?</p><p>This operation is equivalent to resetting or powering off the machine without doing a proper shutdown of the guest OS.</p> <p>仮想マシン<b>"%1"</b>の保存された状態を破棄しますか?</p><p>この操作はゲストOSを適切にシャットダウンせずにリセットまたは電源をオフにすることと同等です。</p> @@ -5839,12 +5844,12 @@ %1 <nobr><b>%2</b></nobr>の登録解除に失敗しました。 - + Failed to create a new session. 新規セッションの作成に失敗しました。 - + Failed to open a session for the virtual machine <b>%1</b>. 仮想マシン<b>"%1"</b>のセッションを開けませんでした。 @@ -5857,61 +5862,61 @@ ホスト ネットワーク インターフェース<b>"%1"</b>の作成に失敗しました。 - - + + Failed to remove the host network interface <b>%1</b>. ホスト ネットワーク インターフェース<b>"%1"</b>を取り除けませんでした。 - - + + Failed to attach the USB device <b>%1</b> to the virtual machine <b>%2</b>. USB デバイス<b>"%1"</b>の仮想マシン<b>"%2"</b>への割り当てに失敗しました。 - - + + Failed to detach the USB device <b>%1</b> from the virtual machine <b>%2</b>. USB デバイス<b>"%1"</b>の仮想マシン<b>"%2"</b>からの割り当て解除に失敗しました。 - - + + Failed to create the shared folder <b>%1</b> (pointing to <nobr><b>%2</b></nobr>) for the virtual machine <b>%3</b>. 仮想マシン<b>"%3"</b>の共有フォルダ<b>"%1"</b>(参照先 <nobr><b>%2</b></nobr>)の作成に失敗しました。 - + Failed to remove the shared folder <b>%1</b> (pointing to <nobr><b>%2</b></nobr>) from the virtual machine <b>%3</b>. 仮想マシン<b>"%3"</b>の共有フォルダ<b>"%1"</b>(参照先 <nobr><b>%2</b></nobr>)の除去に失敗しました。 - + <p>The Virtual Machine reports that the guest OS does not support <b>mouse pointer integration</b> in the current video mode. You need to capture the mouse (by clicking over the VM display or pressing the host key) in order to use the mouse inside the guest OS.</p> <p>現在のビデオモードではゲストOSで<b>マウス統合</b>機能がサポートされません。ゲストOSでマウスを使用するためにはマウスをキャプチャ(仮想マシンの画面をクリックするか、またはホストキーを押す)する必要があります。</p> - + <p>The Virtual Machine is currently in the <b>Paused</b> state and not able to see any keyboard or mouse input. If you want to continue to work inside the VM, you need to resume it by selecting the corresponding action from the menu bar.</p> <p>仮想マシンは現在<b>"一時停止"</b>状態のため、キーボードとマウス操作を受け付けません。仮想マシンでの作業を続けたい場合は、メニューバーから対応する動作を選択して、仮想マシンを再開する必要があります。</p> - + <p>Cannot run VirtualBox in <i>VM Selector</i> mode due to local restrictions.</p><p>The application will now terminate.</p> <p>ローカルの制限のため、 <i>VM Selector</i>モードでVirtualBoxを実行できません。</p><p>アプリケーションを終了します。</p> - + Failed to update Guest Additions. The Guest Additions installation image will be mounted to provide a manual installation. Guest Additionsの更新に失敗しました。Guest Additionsのインストールイメージは手動インストールのためマウントされます。 - + Failed to install the Extension Pack <b>%1</b>. 機能拡張パッケージ<b>"%1"</b>のインストールに失敗しました。 - + Failed to uninstall the Extension Pack <b>%1</b>. 機能拡張パッケージ<b>"%1"</b>のアンインストールに失敗しました。 @@ -5920,82 +5925,82 @@ 機能拡張パッケージ<b>"%1"</b>を除去します。本当に除去しますか? - + &Remove 除去(&R) - + The current port forwarding rules are not valid. None of the host or guest port values may be set to zero. 現在のポートフォワーディングルールは無効です。 ホストまたはゲストポートの値にゼロが設定されています。 - + <p>There are unsaved changes in the port forwarding configuration.</p><p>If you proceed your changes will be discarded.</p> <p>ポートフォワーディング設定の変更が保存されていません。</p><p>続行すると変更は破棄されます。</p> - + <nobr>Fatal Error</nobr> runtime error info <nobr>致命的なエラー</nobr> - + <nobr>Non-Fatal Error</nobr> runtime error info <nobr>致命的でないエラー</nobr> - + <nobr>Warning</nobr> runtime error info <nobr>警告</nobr> - + <nobr>Error ID: </nobr> runtime error info <nobr>エラーID: </nobr> - + Severity: runtime error info 重要度: - + <p>A fatal error has occurred during virtual machine execution! The virtual machine will be powered off. Please copy the following error message using the clipboard to help diagnose the problem:</p> <p>仮想マシンの実行中に致命的なエラーが発生しました!仮想マシンの電源をオフにします。調査のために以下のエラーメッセージをクリップボードにコピーして使用してください:</p> - + <p>An error has occurred during virtual machine execution! The error details are shown below. You may try to correct the error and resume the virtual machine execution.</p> <p>仮想マシンの実行中にエラーが発生しました!エラーの詳細を以下に示します。説明されたエラーを修正し、仮想マシンの再実行することができます。</p> - + <p>The virtual machine execution may run into an error condition as described below. We suggest that you take an appropriate action to avert the error.</p> <p>仮想マシンの実行中、以下で説明されるエラーが発生するかもしれません。このメッセージは無視できますが、動作を確実にするために、説明された誤りを対策することが推奨されます。</p> - + Sorry, some generic error happens. 申し訳ありません。不明なエラーが発生しました。 - + Failed to attach the hard disk (<nobr><b>%1</b></nobr>) to the slot <i>%2</i> of the machine <b>%3</b>. ハードディスク(<nobr><b>%1</b></nobr>)の、仮想マシン<b>"%3"</b>のスロット<i>"%2"</i> への割り当てに失敗しました。 - + Failed to attach the CD/DVD device (<nobr><b>%1</b></nobr>) to the slot <i>%2</i> of the machine <b>%3</b>. CD/DVDデバイス(<nobr><b>%1</b></nobr>)の、仮想マシン<b>"%3"</b>のスロット<i>"%2"</i> への割り当てに失敗しました。 - + Failed to attach the floppy device (<nobr><b>%1</b></nobr>) to the slot <i>%2</i> of the machine <b>%3</b>. フロッピーデバイス(<nobr><b>%1</b></nobr>)の、仮想マシン<b>"%3"</b>のスロット<i>"%2"</i> への割り当てに失敗しました。 @@ -6004,31 +6009,31 @@ <p>この仮想マシンでUSB 2.0を有効化するには<b><nobr>%1</nobr></b>のインストールが必要です。VirtualBoxのダウンロードサイトから機能拡張パッケージをダウンロードし、インストールしてください。機能拡張パッケージをインストールすると、USB 2.0を有効化することができます。現在の設定をキャンセルしない場合、USB 2.0は無効化されます。</p> - + Result&nbsp;Code: error info 終了コード&nbsp;: - + Component: error info コンポーネント: - + Interface: error info インターフェース: - + Callee: error info 呼び出し先: - + Callee&nbsp;RC: error info 呼び出し先&nbsp;RC: @@ -6060,27 +6065,27 @@ 仮想マシン<b>%1<b>のスナップショット保存フォルダのパスを<nobr><b>%2</b></nobr>に変更できませんでした。 - + <p>Failed to remove the shared folder <b>%1</b> (pointing to <nobr><b>%2</b></nobr>) from the virtual machine <b>%3</b>.</p><p>Please close all programs in the guest OS that may be using this shared folder and try again.</p> <p>仮想マシン<b>%3</b>の共有フォルダ<b>%1</b>(参照先:<nobr><b>%2</b></nobr>)の削除に失敗しました。</p><p>この共有フォルダを使用しているゲストOSのすべてのプログラムを終了し、再実行してください。</p> - + <p>Could not find the VirtualBox Guest Additions CD image file <nobr><b>%1</b></nobr> or <nobr><b>%2</b>.</nobr></p><p>Do you wish to download this CD image from the Internet?</p> <p>VirtualBox Guest Additions CDイメージファイル<nobr><b>%1</b></nobr>または<nobr><b>%2</b>が見つかりません。</nobr></p><p>インターネットからCDイメージをダウンロードしますか?</p> - + <p>Failed to download the VirtualBox Guest Additions CD image from <nobr><a href="%1">%2</a>.</nobr></p><p>%3</p> <p><nobr><a href="%1">%2</a>からVirtualBox Guest Additions CDイメージをダウンロードできません。</nobr></p><p>%3</p> - + <p>Are you sure you want to download the VirtualBox Guest Additions CD image from <nobr><a href="%1">%2</a></nobr> (size %3 bytes)?</p> <p>VirtualBox Guest Additions CDイメージを<nobr><a href="%1">%2</a></nobr> (サイズ %3バイト)からダウンロードしますか?</p> - + <p>The VirtualBox Guest Additions CD image has been successfully downloaded from <nobr><a href="%1">%2</a></nobr> and saved locally as <nobr><b>%3</b>.</nobr></p><p>Do you wish to register this CD image and mount it on the virtual CD/DVD drive?</p> <p>VirtualBox Guest Additions CDイメージを<nobr><a href="%1">%2</a></nobr>からダウンロードし、<nobr><b>%3</b>に保存しました。</nobr></p><p>CDイメージを登録し、仮想CD/DVDドライブにマウントしますか?</p> @@ -6094,7 +6099,7 @@ <p>仮想マシンのウィンドウを"シームレス"モードに切り替えます。<b>%1</b>キーを押すといつでもウィンドウ表示に戻ることができます。注:ホストキーは現在<b>%2</b>に割り当てられています。</p><p>注:シームレスモードではメインメニューバーは表示されません。メニューバーにアクセスするには <b>Host+Home</b>キーを押してください。</p> - + <p>The virtual machine window is optimized to work in <b>%1&nbsp;bit</b> color mode but the virtual display is currently set to <b>%2&nbsp;bit</b>.</p><p>Please open the display properties dialog of the guest OS and select a <b>%3&nbsp;bit</b> color mode, if it is available, for best possible performance of the virtual video subsystem.</p><p><b>Note</b>. Some operating systems, like OS/2, may actually work in 32&nbsp;bit mode but report it as 24&nbsp;bit (16 million colors). You may try to select a different color mode to see if this message disappears or you can simply disable the message now if you are sure the required color mode (%4&nbsp;bit) is not available in the guest OS.</p> <p>仮想マシンウィンドウは<b>%1&nbsp;ビット</b>カラーモードに最適化されますが、現在仮想ディスプレイは<b>%2&nbsp;ビット</b>に設定されています。</p><p>最良の仮想ビデオサブシステム性能を得るため、利用可能であるならばゲストOSの画面設定ダイアログを開き、<b>%3&nbsp;ビット</b>カラーモードを選択してください。</p><p><b>注:OS/2など、いくつかのオペレーティングシステムは32&nbsp;ビットモードの動作を24&nbsp;ビット(約1600万色)として報告します。 このメッセージが消えるか、またはゲストOSで必要な色深度(%4&nbsp;ビット) が利用できないことが分かっているならば、単にメッセージを無効にできるか確認するために異なった色深度を選択することができます。</p> @@ -6103,7 +6108,7 @@ <p>仮想マシン実行中に重大なエラーが発生したため、仮想マシンは停止しました。</p><p>問題の解決のため、<a href=http://www.virtualbox.org>http://www.virtualbox.org</a>のCommunityセクションを参照するか、サポート契約を締結してください。あなたがエラー発生時に行った操作と共に、<nobr><b>%1</b></nobr>ディレクトリに格納されているログファイル(<tt>VBox.log</tt>)とイメージファイル(<tt>VBox.png</tt>)を提供してください。注:VirualBoxメインウィンドウの<b>[仮想マシン]</b>メニューから[ログを参照]を選択して、上記ファイルにアクセスすることができます。</p><p>仮想マシンを電源オフするには<b>[OK]</b>ボタンをクリックしてください。このままデバッグを行うには<b>[無視]</b>ボタンをクリックしてください。デバッグには特別な知識とツールを必要とするため、<b>[OK]</b>ボタンをクリックすることを推奨します。</p> - + <p>You didn't attach a hard disk to the new virtual machine. The machine will not be able to boot unless you attach a hard disk with a guest operating system or some other bootable media to it later using the machine settings dialog or the First Run Wizard.</p><p>Do you wish to continue?</p> <p>新規仮想マシンにハードディスクが割り当てられていません。仮想マシン設定ダイアログか初回起動ウィザードを使用してゲストOSをインストールしたハードディスクまたは他の起動可能なメディアを割り当てないと仮想マシンは起動しません。</p><p>続行しますか?</p> @@ -6118,7 +6123,7 @@ ライセンスファイル<nobr><b>"%1"</b></nobr>が開けません。ファイルのパーミッションを確認してください。 - + Failed to send the ACPI Power Button press event to the virtual machine <b>%1</b>. 仮想マシン<b>"%1"</b>への電源ボタン オフのACPIイベント送信に失敗しました。 @@ -6127,7 +6132,7 @@ <p>VirtualBox オンライン登録サービスへの接続に失敗しました。</p><p>%1</p> - + <p>Congratulations! You have been successfully registered as a user of VirtualBox.</p><p>Thank you for finding time to fill out the registration form!</p> <p>VirtualBox のユーザー登録が完了しました。</p><p>登録フォームに書き込む時間を割いてくださり、ありがとうございました!</p> @@ -6140,24 +6145,24 @@ <p>グローバルなVirtualBox設定の<b><nobr>"%1"</nobr></b>への保存に失敗しました。</p> - + <p>Failed to load the global GUI configuration from <b><nobr>%1</nobr></b>.</p><p>The application will now terminate.</p> <p>グローバルなGUI構成の<b><nobr>"%1"</nobr></b>からの読み込みに失敗しました。</p> <p>アプリケーションを終了します。</p> - + <p>Failed to save the global GUI configuration to <b><nobr>%1</nobr></b>.</p><p>The application will now terminate.</p> <p>グローバルなGUI構成の<b><nobr>"%1"</nobr></b>への保存に失敗しました。</p> <p>アプリケーションを終了します。</p> - + Failed to save the settings of the virtual machine <b>%1</b> to <b><nobr>%2</nobr></b>. 仮想マシン<b>"%1"</b>の設定の<b><nobr>"%2"</nobr></b>への保存に失敗しました。 - + Failed to load the settings of the virtual machine <b>%1</b> from <b><nobr>%2</nobr></b>. 仮想マシン<b>"%1"</b>の設定の<b><nobr>"%2”</nobr></b>からの読み込みに失敗しました。 @@ -6172,7 +6177,7 @@ 登録解除 - + Discard saved state 破棄 @@ -6217,28 +6222,28 @@ ハードディスクイメージの、仮想マシン<b>"%4"</b>のバス %3 のチャンネル %2 のデバイススロット %1 からの割り当て解除に失敗しました。 - - - + + + Download additions ダウンロード - + Mount additions マウント - - + + <p>The host key is currently defined as <b>%1</b>.</p> additional message box paragraph <p>現在ホストキーは<b>%1</b>に割り当てられています。</p> - + Capture do input capture キャプチャ @@ -6249,7 +6254,7 @@ <p><b>[確認]</b>ボタンをクリックして仮想ディスクマネージャを起動し、どのメディアにアクセスできないのか確認してください。または<b>[無視]</b>ボタンをクリックして、このメッセージを無視してください。</p> - + Check inaccessible media message box 確認 @@ -6279,36 +6284,36 @@ キャンセル - + Switch fullscreen 切り替え - + Switch seamless 切り替え - + <p>Do you really want to reset the virtual machine?</p><p>This will cause any unsaved data in applications running inside it to be lost.</p> <p>仮想マシンを本当にリセットしますか?</p><p>仮想マシンをリセットすると、その中で稼動中のすべてのアプリケーションの保存されていないデータは失われます。</p> - + Reset machine リセット - + Continue no hard disk attached 続ける - + Go Back no hard disk attached 戻る @@ -6333,12 +6338,12 @@ 選択 - + <p>Could not enter seamless mode due to insufficient guest video memory.</p><p>You should configure the virtual machine to have at least <b>%1</b> of video memory.</p> <p>ゲストOSのビデオメモリ不足のため、シームレスモードに切り替えできません。</p><p>仮想マシンの設定でビデオメモリを <b>%1</b>以上に設定してください。</p> - + <p>Could not switch the guest display to fullscreen mode due to insufficient guest video memory.</p><p>You should configure the virtual machine to have at least <b>%1</b> of video memory.</p><p>Press <b>Ignore</b> to switch to fullscreen mode anyway or press <b>Cancel</b> to cancel the operation.</p> <p>ゲストOSのビデオメモリ不足のため、ゲスト画面をフルスクリーンモードに切り替えできません。</p><p>仮想マシンの設定でビデオメモリを <b>%1</b>以上に設定してください。</p><p><b>[無視]</b>ボタンをクリックしてフルスクリーンモードに切り換えるか、<b>[キャンセル]</b>ボタンをクリックして操作を取り消してください。</p> @@ -6347,22 +6352,22 @@ <p>ネットワークエラーのため、新しいバージョン情報を取得できません:</p><p><b>%1</b></p> - + You are already running the most recent version of VirtualBox. 最新バージョンのVirtualBoxがインストールされています。 後でバージョン確認を行ってください。 - + <p>You have <b>clicked the mouse</b> inside the Virtual Machine display or pressed the <b>host key</b>. This will cause the Virtual Machine to <b>capture</b> the host mouse pointer (only if the mouse pointer integration is not currently supported by the guest OS) and the keyboard, which will make them unavailable to other applications running on your host machine.</p><p>You can press the <b>host key</b> at any time to <b>uncapture</b> the keyboard and mouse (if it is captured) and return them to normal operation. The currently assigned host key is shown on the status bar at the bottom of the Virtual Machine window, next to the&nbsp;<img src=:/hostkey_16px.png/>&nbsp;icon. This icon, together with the mouse icon placed nearby, indicate the current keyboard and mouse capture state.</p> <p>仮想マシンの画面を<b>マウスクリック</b>するか、または<b>ホストキー</b>を押すと、仮想マシンはマウスポインタ(マウス統合機能がゲストOSでサポートされていないときだけ)とキーボードを<b>キャプチャ</b>します。仮想マシンにキーボードとマウスがキャプチャされるとホストマシンで動作する他のアプリケーションは利用できません。</p><p></p><p><b>ホストキー</b>を押すと、キーボードとマウス(キャプチャされているとき)は<b>キャプチャ解除</b>され、通常の操作に戻ることができます。現在割り当てられているホストキーは仮想マシンのウィンドウ下部のステータスバーに&nbsp;<img src=:/hostkey_16px.png/>&nbsp;アイコンで表示されます。このアイコンはマウスアイコンと共に現在のキーボ−ドとマウスのキャプチャ状態を表示します。</p> - + <p>You have the <b>Auto capture keyboard</b> option turned on. This will cause the Virtual Machine to automatically <b>capture</b> the keyboard every time the VM window is activated and make it unavailable to other applications running on your host machine: when the keyboard is captured, all keystrokes (including system ones like Alt-Tab) will be directed to the VM.</p><p>You can press the <b>host key</b> at any time to <b>uncapture</b> the keyboard and mouse (if it is captured) and return them to normal operation. The currently assigned host key is shown on the status bar at the bottom of the Virtual Machine window, next to the&nbsp;<img src=:/hostkey_16px.png/>&nbsp;icon. This icon, together with the mouse icon placed nearby, indicate the current keyboard and mouse capture state.</p> <p><b>キーボードの自動キャプチャ</b>機能が有効です。仮想マシンのウィンドウがアクティブのとき、仮想マシンはキーボードを自動的に<b>キャプチャ</b>します。キーボードがキャプチャされると、すべてのキーストローク(Alt-Tabなどを含む)が仮想マシンに送られるため、ホストマシンで動作する他のアプリケーションは利用できません。</p><p><b>ホストキー</b>を押すと、キーボードとマウス(キャプチャされているとき)は<b>キャプチャ解除</b>され、通常の操作に戻ることができます。現在割り当てられているホストキーは仮想マシンのウィンドウ下部のステータスバーに&nbsp;<img src=:/hostkey_16px.png/>&nbsp;アイコンで表示されます。このアイコンはマウスアイコンと共に現在のキーボ−ドとマウスのキャプチャ状態を表示します。</p> - + <p>The Virtual Machine reports that the guest OS supports <b>mouse pointer integration</b>. This means that you do not need to <i>capture</i> the mouse pointer to be able to use it in your guest OS -- all mouse actions you perform when the mouse pointer is over the Virtual Machine's display are directly sent to the guest OS. If the mouse is currently captured, it will be automatically uncaptured.</p><p>The mouse icon on the status bar will look like&nbsp;<img src=:/mouse_seamless_16px.png/>&nbsp;to inform you that mouse pointer integration is supported by the guest OS and is currently turned on.</p><p><b>Note</b>: Some applications may behave incorrectly in mouse pointer integration mode. You can always disable it for the current session (and enable it again) by selecting the corresponding action from the menu bar.</p> <p>ゲストOSで<b>マウス統合</b>機能がサポートされています。ゲストOSでマウスポインタを<i>キャプチャ</i>することなく使用できます。仮想マシンの画面上にマウスポインタがあるとき、すべてのマウスの動作は直接ゲストOSに送られます。現在マウスがキャプチャされているときは、自動的にキャプチャ解除されます。ステータスバーのマウスアイコンは、マウス統合機能がゲストOSでサポートされ、現在有効であることを示すため&nbsp;<img src=:/mouse_seamless_16px.png/>&nbsp;のように表示されます。 </p><p><b>注</b>: マウス統合機能が有効なとき、いくつかのアプリケーションの動作が不正になるかもしれません。メニューバーから対応する動作を選択して現在のセッションのマウス統合機能を無効化(または有効化)することができます。</p> @@ -6435,63 +6440,63 @@ 製品情報ダイアログを表示 - + <p>A new version of VirtualBox has been released! Version <b>%1</b> is available at <a href="http://www.virtualbox.org/">virtualbox.org</a>.</p><p>You can download this version using the link:</p><p><a href=%2>%3</a></p> <p>VirtualBoxの新しいバージョンがリリースされました! バージョン <b>%1</b>は<a href="http://www.virtualbox.org/">virtualbox.org</a>から入手できます。</p><p>このリンクから最新バージョンをダウンロードできます。: </p><p><a href=%2>%3</a></p> - + <p>Are you sure you want to release the %1 <nobr><b>%2</b></nobr>?</p><p>This will detach it from the following virtual machine(s): <b>%3</b>.</p> <p>"%1 <nobr><b>%2</b></nobr>"を解放しますか?</p><p>以下の仮想マシンから解放されます: <b>%3</b></p> - + <p>You are about to remove the virtual machine <b>%1</b> from the machine list.</p><p>Would you like to delete the files containing the virtual machine from your hard disk as well?</p> <p>仮想マシン<b>"%1"</b>をリストから除去します。</p><p>仮想マシンを構成するファイルをハードディスクから削除しますか?</p> - + <p>You are about to remove the virtual machine <b>%1</b> from the machine list.</p><p>Would you like to delete the files containing the virtual machine from your hard disk as well? Doing this will also remove the files containing the machine's virtual hard disks if they are not in use by another machine.</p> <p>仮想マシン<b>"%1"</b>をリストから除去します。</p><p>仮想マシンを構成するファイルをハードディスクから削除しますか?他の仮想マシンで使用されていない仮想ハードディスクは削除されます。</p> - + Delete all files すべてのファイルを削除 - + Remove only 除去のみ - + You are about to remove the inaccessible virtual machine <b>%1</b> from the machine list. Do you wish to proceed? アクセスできない仮想マシン<b>"%1"</b>をリストから除去します。続行しますか? - + Remove 除去 - + Release detach medium 解放 - + <p>Are you sure you want to remove the %1 <nobr><b>%2</b></nobr> from the list of known media?</p> <p>メディアのリストから"%1 <nobr><b>%2</b></nobr>"を除去しますか?</p> - + Note that as this hard disk is inaccessible its storage unit cannot be deleted right now. 注:このハードディスクにアクセスできないため、現在ストレージ 装置を削除できません。 - + The next dialog will let you choose whether you also want to delete the storage unit of this hard disk or keep it for later usage. 次のダイアログで、このハードディスクのストレージ装置を削除するか、後で使用するため保持するかを選択できます。 @@ -6500,35 +6505,35 @@ <p>注:このメディアのストレージ装置は削除されません。後でリストに再度追加することが可能です。</p> - + Remove medium 除去 - + <p>The hard disk storage unit at location <b>%1</b> already exists. You cannot create a new virtual hard disk that uses this location because it can be already used by another virtual hard disk.</p><p>Please specify a different location.</p> <p>ハードディスク ストレージ装置の場所 <b>"%1"</b>はすでに存在します。別の仮想ハードディスクが使用しているため、この場所に新規仮想ハードディスクを作成できません。</p><p>別の場所を指定してください。</p> - + <p>Do you want to delete the storage unit of the hard disk <nobr><b>%1</b></nobr>?</p><p>If you select <b>Delete</b> then the specified storage unit will be permanently deleted. This operation <b>cannot be undone</b>.</p><p>If you select <b>Keep</b> then the hard disk will be only removed from the list of known hard disks, but the storage unit will be left untouched which makes it possible to add this hard disk to the list later again.</p> <p>ハードディスク<nobr><b>"%1"</b></nobr>のストレージ装置を削除しますか?</p><p><b>[削除]</b>を選択すると、指定されたストレージ装置は永久に削除されます。この操作は<b>元に戻せません</b>。</p><p><b>[保持]</b>を選択すると、ハードディスクはリストから取り除かれますが、ストレージ装置は後でリストに再度追加できるように、そのまま置かれます。</p> - + Delete hard disk storage 削除 - + Keep hard disk storage 保持 - + Failed to delete the storage unit of the hard disk <b>%1</b>. ハードディスク ストレージ装置<b>"%1"</b>の削除に失敗しました。 @@ -6537,7 +6542,7 @@ <p>新規の割り当てに利用できる未使用のハードディスクがありません。</p><p><b>[作成]</b>ボタンをクリックし、<i>新規仮想ディスク作成ウィザード</i>を起動して新規ハードディスクイメージを作成するか、<b>[選択]</b>ボタンをクリックして、<i>仮想メディアマネージャ</i>を開き、動作を選択してください。</p> - + Failed to create the hard disk storage <nobr><b>%1</b>.</nobr> ハードディスク ストレージ<nobr><b>"%1"</b>の作成に失敗しました。</nobr> @@ -6558,32 +6563,32 @@ "%1 <nobr><b>%2</b></nobr>"の、仮想マシン<b>"%3"</b>からのマウント解除に失敗しかました。 - + Failed to open the %1 <nobr><b>%2</b></nobr>. "%1 <nobr><b>%2</b></nobr>"のオープンに失敗しました。 - + Failed to close the %1 <nobr><b>%2</b></nobr>. "%1 <nobr><b>%2</b></nobr>"のクローズに失敗しました。 - + Failed to determine the accessibility state of the medium <nobr><b>%1</b></nobr>. メディア<nobr><b>"%1"</b></nobr>のアクセス可否状態の取得に失敗しました。 - + <p>Failed to connect to the VirtualBox online registration service due to the following error:</p><p><b>%1</b></p> <p>VirtualBoxのオンライン登録サービスに接続できません。エラー:</p><p><b>%1</b></p> - + <p>Unable to obtain the new version information due to the following error:</p><p><b>%1</b></p> <p>新しいバージョンの情報を取得できません。エラー:</p><p><b>%1</b></p> - + <p>One or more virtual hard disks, CD/DVD or floppy media are not currently accessible. As a result, you will not be able to operate virtual machines that use these media until they become accessible later.</p><p>Press <b>Check</b> to open the Virtual Media Manager window and see what media are inaccessible, or press <b>Ignore</b> to ignore this message.</p> <p>一つ以上の仮想ハードディスク、CD/DVDまたはフロッピーメディアのに現在アクセスできません。アクセス可能になるまでこれらのメディアを使用する仮想マシンを操作できません。</p><p><b>[確認]</b>ボタンをクリックして仮想メディアマネージャを起動し、どのメディアにアクセスできないのか確認してください。または<b>[無視]</b>ボタンをクリックして、このメッセージを無視してください。</p> @@ -6615,7 +6620,7 @@ 上書き(&V) - + <p>A critical error has occurred while running the virtual machine and the machine execution has been stopped.</p><p>For help, please see the Community section on <a href=http://www.virtualbox.org>http://www.virtualbox.org</a> or your support contract. Please provide the contents of the log file <tt>VBox.log</tt> and the image file <tt>VBox.png</tt>, which you can find in the <nobr><b>%1</b></nobr> directory, as well as a description of what you were doing when this error happened. Note that you can also access the above files by selecting <b>Show Log</b> from the <b>Machine</b> menu of the main VirtualBox window.</p><p>Press <b>OK</b> if you want to power off the machine or press <b>Ignore</b> if you want to leave it as is for debugging. Please note that debugging requires special knowledge and tools, so it is recommended to press <b>OK</b> now.</p> <p>仮想マシン実行中に重大なエラーが発生したため、仮想マシンは停止しました。</p><p>問題の解決のため、<a href=http://www.virtualbox.org>http://www.virtualbox.org</a>のCommunityセクションを参照するか、サポートに連絡してください。あなたがエラー発生時に行った操作と共に、<nobr><b>%1</b></nobr>ディレクトリに格納されているログファイル(<tt>VBox.log</tt>)とイメージファイル(<tt>VBox.png</tt>)を提供してください。注:VirualBoxメインウィンドウの<b>[仮想マシン]</b>メニューから[ログを参照]を選択して、上記ファイルにアクセスすることができます。</p><p>仮想マシンを電源オフするには<b>[OK]</b>ボタンをクリックしてください。このままデバッグを行うには<b>[無視]</b>ボタンをクリックしてください。デバッグには特別な知識とツールを必要とするため、<b>[OK]</b>ボタンをクリックすることを推奨します。</p> @@ -6657,29 +6662,29 @@ USBファイルシステム(usbfs)もDBusとhalサービスも利用できないため、ホストシステムでUSBにアクセスできませんでした。 ゲストOSでホストUSB デバイスを使用するには、これを修正してVirtualBoxを再起動してください。 - + You are trying to shut down the guest with the ACPI power button. This is currently not possible because the guest does not support software shutdown. 電源ボタン オフのACPIイベントでゲストOSをシャットダウンしようとしています。ゲストOSがACPIサブシステムを使用しないためシャットダウンできません。 - + <p>VT-x/AMD-V hardware acceleration has been enabled, but is not operational. Your 64-bit guest will fail to detect a 64-bit CPU and will not be able to boot.</p><p>Please ensure that you have enabled VT-x/AMD-V properly in the BIOS of your host computer.</p> <p>仮想化支援機能(VT-x/AMD-V)を有効化できません。64ビット ゲストOSは64ビットCPUを検出できず、起動できません。</p><p>ホストマシンのBIOS設定でVT-x/AMD-Vを有効化してください。</p> - - - - + + + + Close VM 仮想マシンを閉じる - - - - - + + + + + Continue 続ける @@ -6692,11 +6697,11 @@ 破棄 - - - - - + + + + + Cancel キャンセル @@ -6718,99 +6723,99 @@ <p>選択したホスト ネットワーク インターフェース ;<nobr><b>"%1"</b>を除去しますか?</nobr></p><p><b>注:</b> このインターフェースは複数の仮想マシンの1つ以上のネットワーク アタプタで使用中かもしれません。除去すると、他のインターフェース名を選ぶか、別の割り当て方法を正しく設定するまでそれらのアダプタは動作しません。</p> - - + + Failed to create the host-only network interface. ホストオンリー ネットワーク インターフェースの作成に失敗しました。 - + <p>Your existing VirtualBox settings files will be automatically converted from the old format to a new format required by the new version of VirtualBox.</p><p>Press <b>OK</b> to start VirtualBox now or press <b>Exit</b> if you want to terminate the VirtualBox application without any further actions.</p> <p>既存のVirtualBox設定ファイルは古い形式からVirtualBoxの新バージョンに必要な形式に自動変換されます。</p><p>すぐにVirtualBoxを起動するには<b>[OK]</b>ボタンをクリックしてください。変換結果を保存せずにVirtualBoxアプリケーションを終了するには<b>[終了]</b>ボタンをクリックしてください。</p> - + <p>You are about to restore snapshot <b>%1</b>.</p><p>You can create a snapshot of the current state of the virtual machine first by checking the box below; if you do not do this the current state will be permanently lost. Do you wish to proceed?</p> - + Create a snapshot of the current machine state - + <p>Are you sure you want to restore snapshot <b>%1</b>?</p> - + Can't find snapshot named <b>%1</b>. - + <p>Error changing medium type from <b>%1</b> to <b>%2</b>.</p> - + <p>Note that the storage unit of this medium will not be deleted and that it will be possible to use it later again.</p> <p>注:このメディアの記憶装置は削除されません。再度利用することができます。</p> - + <p>You are about to add a virtual hard disk to controller <b>%1</b>.</p><p>Would you like to create a new, empty file to hold the disk contents or select an existing one?</p> <p>仮想ハードディスクをコントローラ<b>"%1"</b>に追加します。</p><p>空の仮想ハードディスクを新規作成しますか?既存の仮想ハードディスクを選択しますか?</p> - + Create &new disk add attachment routine 新規ディスクの作成(&N) - + &Choose existing disk add attachment routine 既存のディスクを選択(&C) - + <p>You are about to add a new CD/DVD drive to controller <b>%1</b>.</p><p>Would you like to choose a virtual CD/DVD disk to put in the drive or to leave it empty for now?</p> <p>CD/DVDドライブをコントローラ<b>"%1"</b>に追加します。</p><p>仮想CD/DVDディスクをドライブに割り当てますか?空のドライブだけ割り当てますか?</p> - - + + &Choose disk add attachment routine ディスクを選択(&C) - - + + Leave &empty add attachment routine 空のドライブ(&E) - + <p>You are about to add a new floppy drive to controller <b>%1</b>.</p><p>Would you like to choose a virtual floppy disk to put in the drive or to leave it empty for now?</p> <p>フロッピードライブをコントローラ<b>"%1"</b>に追加します。</p><p>仮想フロッピーディスクをドライブに割り当てますか?空のドライブだけ割り当てますか?</p> - + Failed to detach the hard disk (<nobr><b>%1</b></nobr>) from the slot <i>%2</i> of the machine <b>%3</b>. ハードディスク(<nobr><b>%1</b></nobr>)の、仮想マシン<b>"%3"</b>のスロット<i>"%2"</i> への割り当て解除に失敗しました。 - + Failed to detach the CD/DVD device (<nobr><b>%1</b></nobr>) from the slot <i>%2</i> of the machine <b>%3</b>. CD/DVDデバイス(<nobr><b>%1</b></nobr>)の、仮想マシン<b>"%3"</b>のスロット<i>"%2"</i> への割り当て解除に失敗しました。 - + Failed to detach the floppy device (<nobr><b>%1</b></nobr>) from the slot <i>%2</i> of the machine <b>%3</b>. フロッピーデバイス(<nobr><b>%1</b></nobr>)の、仮想マシン<b>"%3"</b>のスロット<i>"%2"</i> への割り当て解除に失敗しました。 @@ -6819,50 +6824,49 @@ <p>VirtualBox Guest Additionsがインストールされていないため、共有フォルダは利用できません。共有フォルダを使用するには<b>[デバイス]</b>メニューから<b>[Guest Additions のインストール]</b>を選びGuest Additionsをインストールまたは再インストールしてください。インストール後、仮想マシンを再起動すると共有フォルダが利用できます。</p> - + Failed to open appliance. 仮想アプライアンスのオープンに失敗しました。 - + Failed to open/interpret appliance <b>%1</b>. 仮想アプライアンス<b>"%1"</b>のオープンまたは解析に失敗しました。 - + Failed to import appliance <b>%1</b>. 仮想アプライアンス<b>"%1"</b>のインポートに失敗しました。 - - <p>The virtual machine(s) <b>%1</b> are currently in a saved state.</p><p>If you continue the runtime state of the exported machine(s) will be discarded. Note that the existing machine(s) are not changed.</p> - + <p>The %n following virtual machine(s) are currently in a saved state: <b>%1</b></p><p>If you continue the runtime state of the exported machine(s) will be discarded. The other machine(s) will not be changed.</p> + <p>仮想マシン<b>"%1"</b>は状態の保存中です。</p><p>続行するとエクスポートした仮想マシンのランタイム状態は破棄されます。注:既存の仮想マシンは変更されません。</p> - + Failed to create appliance. 仮想アプライアンスの作成に失敗しました。 - - + + Failed to prepare the export of the appliance <b>%1</b>. 仮想アプライアンス<b>"%1"</b>のエクスポートの前処理に失敗しました。 - + Failed to create an appliance. 仮想アプライアンスの作成に失敗しました。 - + Failed to export appliance <b>%1</b>. 仮想アプライアンス<b>"%1"</b>のエクスポートに失敗しました。 - + <p>Deleting this host-only network will remove the host-only interface this network is based on. Do you want to remove the (host-only network) interface <nobr><b>%1</b>?</nobr></p><p><b>Note:</b> this interface may be in use by one or more virtual network adapters belonging to one of your VMs. After it is removed, these adapters will no longer be usable until you correct their settings by either choosing a different interface name or a different adapter attachment type.</p> <p>このインタフェースを削除すると、このインターフェースが基づいているホストオンリー ネットワーク インタフェースが削除されます。ホストオンリー ネットワーク インタフェース<nobr><b>%1</b></nobr>を削除しますか?</p><p><b>注:</b>このインタフェースは他の仮想ネットワーク アダプタで使用しているかもしれません。削除した場合、それらのアダプタは、他のインタフェース名を選ぶか、別のアダプタ タイプを選んで設定を変更するまで使用できません。</p> @@ -6872,32 +6876,32 @@ ファイル名<b>"%1"</b>はすでに使われています。ファイルを置き換えますか?<br /><br />ファイルの内容は上書きされます。 - + <p>VT-x/AMD-V hardware acceleration has been enabled, but is not operational. Certain guests (e.g. OS/2 and QNX) require this feature.</p><p>Please ensure that you have enabled VT-x/AMD-V properly in the BIOS of your host computer.</p> <p>仮想化支援機能(VT-x/AMD-V)が有効化されましたが使用できません。いくつかのゲストOS(OS/2やQNXなど))は本機能を必要とします。</p><p>ホストマシンのBIOS設定でVT-x/AMD-Vを有効化してください。</p> - + <p>The VirtualBox Guest Additions do not appear to be available on this virtual machine, and shared folders cannot be used without them. To use shared folders inside the virtual machine, please install the Guest Additions if they are not installed, or re-install them if they are not working correctly, by selecting <b>Install Guest Additions</b> from the <b>Devices</b> menu. If they are installed but the machine is not yet fully started then shared folders will be available once it is.</p> <p>VirtualBox Guest Additionsがインストールされていないため、共有フォルダは利用できません。共有フォルダを使用するには<b>[デバイス]</b>メニューから<b>[Guest Additions のインストール]</b>を選びGuest Additionsをインストールまたは再インストールしてください。インストール後、仮想マシンを再起動すると共有フォルダが利用できます。</p> - + <p>Invalid e-mail address or password specified.</p> <p>無効なメールアドレスまたはパスワードが指定されました。</p> - + <p>Failed to register the VirtualBox product.</p><p>%1</p> <p>VirtualBoxの登録に失敗しました。</p><p>%1</p> - + Failed to check files. ファイルの確認に失敗しました。 - + Failed to remove file. ファイルの除去中に失敗しました。 @@ -6912,12 +6916,12 @@ これはVirtualBoxの試験的ビルドです。このバージョンは実務作業には適していません。 - + <p>VT-x/AMD-V hardware acceleration is not available on your system. Your 64-bit guest will fail to detect a 64-bit CPU and will not be able to boot. <p>ホストマシンの仮想化支援機能(VT-x/AMD-V)が使用できません。64ビット ゲストOSは64ビットCPUを検出できず、起動できません。 - + <p>VT-x/AMD-V hardware acceleration is not available on your system. Certain guests (e.g. OS/2 and QNX) require this feature and will fail to boot without it.</p> <p>ホストマシンの仮想化支援機能(VT-x/AMD-V)が使用できません。本機能を必要とするいくつかのゲストOS(OS/2やQNXなど)は起動できません。</p> @@ -6926,56 +6930,56 @@ <p>スナップショット<b>"%1"</b>に復元しますか?現在の仮想マシンの状態は失われ、それを回復することはできません。</p> - - + + Restore 復元 - + <p>Deleting the snapshot will cause the state information saved in it to be lost, and disk data spread over several image files that VirtualBox has created together with the snapshot will be merged into one file. This can be a lengthy process, and the information in the snapshot cannot be recovered.</p></p>Are you sure you want to delete the selected snapshot <b>%1</b>?</p> <p>スナップショットを削除すると、スナップショットに格納されている情報は失われ、VirtualBoxがスナップショットと共に作成した複数のディスク データはひとつのファイルにマージされます。これには長い時間がかかるかもしれません。そしてスナップショットの情報を回復することはできません。</p><p>スナップショット<b>"%1"</b>を削除しますか?。</p> - - + + Delete 削除 - + <p>Deleting the snapshot %1 will temporarily need more disk space. In the worst case the size of image %2 will grow by %3, however on this filesystem there is only %4 free.</p><p>Running out of disk space during the merge operation can result in corruption of the image and the VM configuration, i.e. loss of the VM and its data.</p><p>You may continue with deleting the snapshot at your own risk.</p> <p>スナップショット %1の削除には多くのディスク容量を必要とします。ディスクイメージファイル %2のサイズは最大で%3まで増加します。しかし、ディスクの空き容量は%4しかありません。</p><p>マージ作業中にディスク容量が不足すると、仮想マシンのデータを失う可能性があります。</p><p>スナップショットの削除を自己責任で続行できます。</p> - - + + Failed to restore the snapshot <b>%1</b> of the virtual machine <b>%2</b>. 仮想マシン<b>"%2"</b>のスナップショット<b>"%1"</b>への復元に失敗しました。 - - + + Failed to delete the snapshot <b>%1</b> of the virtual machine <b>%2</b>. 仮想マシン<b>"%2"</b>のスナップショット<b>"%1"</b>の削除に失敗しました。 - + <p>Could not change the guest screen to this host screen due to insufficient guest video memory.</p><p>You should configure the virtual machine to have at least <b>%1</b> of video memory.</p> <p>ビデオメモリ不足のため、ゲスト スクリーンをこのホスト スクリーンに変更できません。</p><p>仮想マシンの構成で<b>%1</b>以上のビデオメモリを指定してください。</p> - + <p>Could not change the guest screen to this host screen due to insufficient guest video memory.</p><p>You should configure the virtual machine to have at least <b>%1</b> of video memory.</p><p>Press <b>Ignore</b> to switch the screen anyway or press <b>Cancel</b> to cancel the operation.</p> <p>ビデオメモリ不足のため、ゲスト スクリーンをこのホスト スクリーンに変更できません。</p><p>仮想マシンの構成で<b>%1</b>以上のビデオメモリを指定してください。</p><p><b>[無視]</b>ボタンをクリックしするとスクリーンを強制的に切り換えます。<b>[キャンセル]</b>ボタンをクリックすると操作は取り消されます。</p> - + <p>Can not switch the guest display to fullscreen mode. You have more virtual screens configured than physical screens are attached to your host.</p><p>Please either lower the virtual screens in your VM configuration or attach additional screens to your host.</p> <p>ゲスト ディスプレイをフルスクリーンモードに変更できません。ホストマシンに接続されている実ディスプレイよりも多くの仮想ディスプレイが割り当てられています。</p><p>仮想ディスプレイの数を減らすか、ホストマシンにディスプレイを追加してください。</p> - + <p>Can not switch the guest display to seamless mode. You have more virtual screens configured than physical screens are attached to your host.</p><p>Please either lower the virtual screens in your VM configuration or attach additional screens to your host.</p> <p>ゲスト ディスプレイをシームレスモードに変更できません。ホストマシンに接続されている実ディスプレイよりも多くの仮想ディスプレイが割り当てられています。</p><p>仮想ディスプレイの数を減らすか、ホストマシンにディスプレイを追加してください。</p> @@ -6998,12 +7002,12 @@ <p>新規の割り当てに利用できる未使用のメディアがありません。</p><p><b>[選択]</b>ボタンをクリックして、<i>仮想メディアマネージャ</i>を開いてください。</p> - + <p>Are you sure you want to delete the CD/DVD-ROM device?</p><p>You will not be able to mount any CDs or ISO images or install the Guest Additions without it!</p> <p>CD/DVD-ROM デバイスを削除しますか?</p><p>デバイスがない場合、CD/DVDメディアやISOイメージファイルのマウントおよびGuest Additions のインストールはできません!</p> - + &Remove medium 除去(&R) @@ -7017,27 +7021,27 @@ "%1"の仮想マシン<b>"%3"</b>のスロット<i>"%2"</i>への割り当て解除に失敗しました。 - + Unable to mount the %1 <nobr><b>%2</b></nobr> on the machine <b>%3</b>. %1 <nobr><b>%2</b></nobr>を仮想マシン<b>"%3"</b>にマウントできません。 - + Would you like to force mounting of this medium? メディアを強制マウントしますか? - + Unable to unmount the %1 <nobr><b>%2</b></nobr> from the machine <b>%3</b>. %1 <nobr><b>%2</b></nobr>を仮想マシン<b>"%3"</b>からマウント解除できません。 - + Would you like to force unmounting of this medium? メディアを強制マウント解除しますか? - + Force Unmount 強制マウント解除 @@ -7046,245 +7050,253 @@ 仮想ドライブのディスクの取り出しに失敗しました。このドライブはゲストOSによってロックされています。確認後、再実行してください。 - + <p>Could not insert the VirtualBox Guest Additions installer CD image into the virtual machine <b>%1</b>, as the machine has no CD/DVD-ROM drives. Please add a drive using the storage page of the virtual machine settings dialog.</p> <p>仮想マシン<b>"%1"</b>がCD/DVD-ROMドライブを持たないため、VirtualBox Guest AdditionsのインストールCDイメージを仮想マシンにインサートできません。 仮想マシン設定ダイアログの[ストレージ]ページでドライブを追加してください。</p> - + <p>Failed to save the downloaded file as <nobr><b>%1</b>.</nobr></p> <p>ダウンロードしたファイル(<nobr><b>%1</b></nobr>)の保存に失敗しました。</p> - + <p>Could not find the VirtualBox User Manual <nobr><b>%1</b>.</nobr></p><p>Do you wish to download this file from the Internet?</p> <p>VirtualBox ユーザーマニュアル <nobr><b>%1</b></nobr>が見つかりません。</p><p>ユーザーマニュアルをダウンロードしますか?</p> - + <p>Are you sure you want to download the VirtualBox User Manual from <nobr><a href="%1">%2</a></nobr> (size %3 bytes)?</p> <p>VirtualBox ユーザーマニュアルを<nobr><a href="%1">%2</a></nobr> (サイズ %3バイト)からダウンロードしますか?</p> - + <p>Failed to download the VirtualBox User Manual from <nobr><a href="%1">%2</a>.</nobr></p><p>%3</p> <p><nobr><a href="%1">%2</a>からVirtualBox ユーザーマニュアルをダウンロードできません。</nobr></p><p>%3</p> - + <p>The VirtualBox User Manual has been successfully downloaded from <nobr><a href="%1">%2</a></nobr> and saved locally as <nobr><b>%3</b>.</nobr></p> <p>VirtualBox ユーザーマニュアルを<nobr><a href="%1">%2</a></nobr>からダウンロードし、<nobr><b>%3</b></nobr>に保存しました。</p> - + <p>The VirtualBox User Manual has been successfully downloaded from <nobr><a href="%1">%2</a></nobr> but can't be saved locally as <nobr><b>%3</b>.</nobr></p><p>Please choose another location for that file.</p> <p>VirtualBox ユーザーマニュアルを<nobr><a href="%1">%2</a></nobr>からダウンロードしましたが、<nobr><b>%3</b></nobr>に保存できません。</p><p>他の保存場所を選択してください。</p> - + <p>You have an old version (%1) of the <b><nobr>%2</nobr></b> installed.</p><p>Do you wish to download latest one from the Internet?</p> - - + + Download extension pack ダウンロード - + <p>You have version %1 of the <b><nobr>%2</nobr></b> installed.</p><p>You should download and install version %3 of this extension pack from Oracle!</p> - + Ok extension pack - + <p>Are you sure you want to download the <b><nobr>%1</nobr></b> from <nobr><a href="%2">%2</a></nobr> (size %3 bytes)?</p> - + <p>The <b><nobr>%1</nobr></b> has been successfully downloaded from <nobr><a href="%2">%2</a></nobr> and saved locally as <nobr><b>%3</b>.</nobr></p><p>Do you wish to install this extension pack?</p> - + Install extension pack インストール - + <p>The <b><nobr>%1</nobr></b> has been successfully downloaded from <nobr><a href="%2">%2</a></nobr> but can't be saved locally as <nobr><b>%3</b>.</nobr></p><p>Please choose another location for that file.</p> - + <p>Failed to download the <b><nobr>%1</nobr></b> from <nobr><a href="%2">%2</a>.</nobr></p><p>%3</p> - - + + E&xit warnAboutSettingsAutoConversion message box 終了(&X) - + <p>The following VirtualBox settings files will be automatically converted from the old format to a new format required by the new version of VirtualBox.</p><p>Press <b>OK</b> to start VirtualBox now or press <b>Exit</b> if you want to terminate the VirtualBox application without any further actions.</p> <p>次のVirtualBox設定ファイルは古い形式から新バージョンのVirtualBoxBoxが必要とする新しい形式に自動的に変更されます。</p><p><b>[OK]</b>ボタンをクリックしてVirtualBoxを起動するか、設定ファイルの変更を行わずにVirtualBoxアプリケーションを終了させたいなら<b>[終了]</b>ボタンをクリックしてください。</p> - + <p>The virtual machine window will be now switched to <b>fullscreen</b> mode. You can go back to windowed mode at any time by pressing <b>%1</b>.</p><p>Note that the <i>Host</i> key is currently defined as <b>%2</b>.</p><p>Note that the main menu bar is hidden in fullscreen mode. You can access it by pressing <b>Host+Home</b>.</p> <p>仮想マシンのウィンドウを"フルスクリーン"モードに切り替えます。<b>%1</b>キーを押すといつでもウィンドウモードに戻ることができます。</p><p>注:<i>ホスト</i>キーは現在<b>%2</b>に割り当てられています。</p><p>注:フルスクリーンモードではメインメニューバーは表示されません。メニューバーにアクセスするには <b>ホスト+Home</b>キーを押してください。</p> - + <p>The virtual machine window will be now switched to <b>Seamless</b> mode. You can go back to windowed mode at any time by pressing <b>%1</b>.</p><p>Note that the <i>Host</i> key is currently defined as <b>%2</b>.</p><p>Note that the main menu bar is hidden in seamless mode. You can access it by pressing <b>Host+Home</b>.</p> <p>仮想マシンのウィンドウを"シームレス"モードに切り替えます。<b>%1</b>キーを押すといつでもウィンドウ表示に戻ることができます。</p><p>注:<i>ホスト</i>キーは現在<b>%2</b>に割り当てられています。</p><p>注:シームレスモードではメインメニューバーは表示されません。メニューバーにアクセスするには <b>ホスト+Home</b>キーを押してください。</p> - + <p>The virtual machine window will be now switched to <b>Scale</b> mode. You can go back to windowed mode at any time by pressing <b>%1</b>.</p><p>Note that the <i>Host</i> key is currently defined as <b>%2</b>.</p><p>Note that the main menu bar is hidden in scale mode. You can access it by pressing <b>Host+Home</b>.</p> <p>仮想マシンのウィンドウを"スケール"モードに切り替えます。<b>%1</b>キーを押すといつでもウィンドウ表示に戻ることができます。</p><p>注:<i>ホスト</i>キーは現在<b>%2</b>に割り当てられています。</p><p>注:スケールモードではメインメニューバーは表示されません。メニューバーにアクセスするには <b>ホスト+Home</b>キーを押してください。</p> - + Switch scale 切り替え - + <p>Cannot create the machine folder <b>%1</b> in the parent folder <nobr><b>%2</b>.</nobr></p><p>Please check that the parent really exists and that you have permissions to create the machine folder.</p> <p>仮想マシン フォルダ<b>%1</b>を親フォルダ<nobr><b>%2</b>に作成できません。</nobr></p><p>親フォルダの存在と、フォルダ作成に必要な権限の有無を確認してください。</p> + + + <p>The %n following virtual machine(s) are currently in a saved state: <b>%1</b></p><p>If you continue the runtime state of the exported machine(s) will be discarded. The other machine(s) will not be changed.</p> + This text is never used with n == 0. Feel free to drop the %n where possible, we only included it because of problems with Qt Linguist (but the user can see how many machines are in the list and doesn't need to be told). + + <p>仮想マシン<b>"%1"</b>は状態の保存中です。</p><p>続行するとエクスポートした仮想マシンのランタイム状態は破棄されます。注:既存の仮想マシンは変更されません。</p> + + - + Failed to open the Extension Pack <b>%1</b>. 機能拡張パッケージ<b>"%1"</b>のオープンに失敗しました。 - + <p>You are about to install a VirtualBox extension pack. Extension packs complement the functionality of VirtualBox and can contain system level software that could be potentially harmful to your system. Please review the description below and only proceed if you have obtained the extension pack from a trusted source.</p><p><table cellpadding=0 cellspacing=0><tr><td><b>Name:&nbsp;&nbsp;</b></td><td>%1</td></tr><tr><td><b>Version:&nbsp;&nbsp;</b></td><td>%2</td></tr><tr><td><b>Description:&nbsp;&nbsp;</b></td><td>%3</td></tr></table></p> <p>VirtualBox 機能拡張パッケージをインストールします。機能拡張パッケージはVirtualBoxに機能を追加しますが、システムに危害を与えるシステムレベルのソフトウェアを含むこともできます。信頼できる発行元から機能拡張パッケージを入手した場合に限り、以下の内容を確認して、処理を続行してください。</p><p><table cellpadding=0 cellspacing=0><tr><td><b>名前:&nbsp;&nbsp;</b></td><td>%1</td></tr><tr><td><b>バージョン:&nbsp;&nbsp;</b></td><td>%2</td></tr><tr><td><b>説明:&nbsp;&nbsp;</b></td><td>%3</td></tr></table></p> - + &Install インストール(&I) - + Extension packs complement the functionality of VirtualBox and can contain system level software that could be potentially harmful to your system. Please review the description below and only proceed if you have obtained the extension pack from a trusted source. 機能拡張パッケージはVirtualBoxに機能を追加しますが、システムに危害を与えるシステムレベルのソフトウェアを含むこともできます。信頼できる発行元から機能拡張パッケージを入手した場合に限り、以下の内容を確認して、処理を続行してください。 - + <p>An older version of the extension pack is already installed, would you like to upgrade? <p>%1</p><p><table cellpadding=0 cellspacing=0><tr><td><b>Name:&nbsp;&nbsp;</b></td><td>%2</td></tr><tr><td><b>New Version:&nbsp;&nbsp;</b></td><td>%3</td></tr><tr><td><b>Current Version:&nbsp;&nbsp;</b></td><td>%4</td></tr><tr><td><b>Description:&nbsp;&nbsp;</b></td><td>%5</td></tr></table></p> <p>古いバージョンの機能拡張パッケージがインストールされています。アップグレードしますか?<p>%1</p><p><table cellpadding=0 cellspacing=0><tr><td><b>名前:&nbsp;&nbsp;</b></td><td>%2</td></tr><tr><td><b>バージョン:&nbsp;&nbsp;</b></td><td>%3</td></tr><tr><td><b>現在のバージョン:&nbsp;&nbsp;</b></td><td>%4</td></tr><tr><td><b>説明:&nbsp;&nbsp;</b></td><td>%5</td></tr></table></p> - + &Upgrade アップグレード(&U) - + <p>An newer version of the extension pack is already installed, would you like to downgrade? <p>%1</p><p><table cellpadding=0 cellspacing=0><tr><td><b>Name:&nbsp;&nbsp;</b></td><td>%2</td></tr><tr><td><b>New Version:&nbsp;&nbsp;</b></td><td>%3</td></tr><tr><td><b>Current Version:&nbsp;&nbsp;</b></td><td>%4</td></tr><tr><td><b>Description:&nbsp;&nbsp;</b></td><td>%5</td></tr></table></p> <p>新しいバージョンの機能拡張パッケージがインストールされています。ダウングレードしますか?<p>%1</p><p><table cellpadding=0 cellspacing=0><tr><td><b>名前:&nbsp;&nbsp;</b></td><td>%2</td></tr><tr><td><b>バージョン:&nbsp;&nbsp;</b></td><td>%3</td></tr><tr><td><b>現在のバージョン:&nbsp;&nbsp;</b></td><td>%4</td></tr><tr><td><b>説明:&nbsp;&nbsp;</b></td><td>%5</td></tr></table></p> - + &Downgrade ダウングレード(&D) - + <p>The extension pack is already installed with the same version, would you like reinstall it? <p>%1</p><p><table cellpadding=0 cellspacing=0><tr><td><b>Name:&nbsp;&nbsp;</b></td><td>%2</td></tr><tr><td><b>Version:&nbsp;&nbsp;</b></td><td>%3</td></tr><tr><td><b>Description:&nbsp;&nbsp;</b></td><td>%4</td></tr></table></p> <p>同じバージョンの機能拡張パッケージがインストールされています。再インストールしますか?<p>%1</p><p><table cellpadding=0 cellspacing=0><tr><td><b>名前:&nbsp;&nbsp;</b></td><td>%2</td></tr><tr><td><b>バージョン:&nbsp;&nbsp;</b></td><td>%3</td></tr><tr><td><b>説明:&nbsp;&nbsp;</b></td><td>%4</td></tr></table></p> - + &Reinstall 再インストール(&R) - + <p>You are about to remove the VirtualBox extension pack <b>%1</b>.</p><p>Are you sure you want to proceed?</p> <p> VirtualBox 機能拡張パッケージ"<b>%1</b>"を除去します。</p><p>続行しますか?</p> - + The extension pack <br><nobr><b>%1</b><nobr><br> was installed successfully. 機能拡張パッケージ<br><nobr><b>%1</b><nobr><br>のインストールに成功しました。 - + hard disk failed to mount ... ハードディスク - + CD/DVD failed to mount ... host-drive CD/DVD - + CD/DVD image failed to mount ... CD/DVD イメージ - + floppy failed to mount ... host-drive フロッピー - + floppy image failed to mount ... フロッピー イメージ - + <p>USB 2.0 is currently enabled for this virtual machine. However, this requires the <b><nobr>%1</nobr></b> to be installed.</p><p>Please install the Extension Pack from the VirtualBox download site. After this you will be able to re-enable USB 2.0. It will be disabled in the meantime unless you cancel the current settings changes.</p> - + Could not load the Host USB Proxy Service (VERR_FILE_NOT_FOUND). The service might not be installed on the host computer - + VirtualBox is not currently allowed to access USB devices. You can change this by adding your user to the 'vboxusers' group. Please see the user manual for a more detailed explanation - + VirtualBox is not currently allowed to access USB devices. You can change this by allowing your user to access the 'usbfs' folder and files. Please see the user manual for a more detailed explanation - + The USB Proxy Service has not yet been ported to this host - + Could not load the Host USB Proxy service @@ -10137,43 +10149,43 @@ 差分 - + Unknown device %1:%2 USB device details 不明なデバイス %1:%2 - + <nobr>Vendor ID: %1</nobr><br><nobr>Product ID: %2</nobr><br><nobr>Revision: %3</nobr> USB device tooltip <nobr>ベンダID: %1</nobr><br><nobr>プロダクトID: %2</nobr><br><nobr>リビジョン: %3</nobr> - + <br><nobr>Serial No. %1</nobr> USB device tooltip <br><nobr>シリアルNo. %1</nobr> - + <br><nobr>State: %1</nobr> USB device tooltip <br><nobr>状態: %1</nobr> - + Name details report 名前 - + OS Type details report OSタイプ - + Base Memory details report メインメモリ @@ -10184,13 +10196,13 @@ <nobr>%3 MB</nobr> - + General details report 一般 - + Video Memory details report ビデオメモリ @@ -10201,19 +10213,19 @@ <nobr>%4 MB</nobr> - + Boot Order details report 起動順序 - + ACPI details report ACPI - + IO APIC details report IO APIC @@ -10229,25 +10241,25 @@ ハードディスク - + Enabled details report (ACPI) 有効 - + Disabled details report (ACPI) 無効 - + Enabled details report (IO APIC) 有効 - + Disabled details report (IO APIC) 無効 @@ -10293,50 +10305,50 @@ CD/DVD-ROM - + Disabled details report (audio) 無効 - + Audio details report オーディオ - + Adapter %1 details report (network) アダプタ %1 - + Disabled details report (network) 無効 - + Network details report ネットワーク - + Device Filters details report (USB) デバイス フィルタ - + %1 (%2 active) details report (USB) %1 (%2 アクティブ) - + Disabled details report (USB) 無効 @@ -10366,55 +10378,55 @@ "URLを開く"はまだ実装されていません。 - + Powered Off MachineState 電源オフ - + Saved MachineState 保存 - + Aborted MachineState 中断 - + Running MachineState 実行中 - + Paused MachineState 一時停止 - + Starting MachineState 起動中 - + Stopping MachineState 停止中 - + Saving MachineState 保存中 - + Restoring MachineState 復元中 @@ -10435,7 +10447,7 @@ オープン - + Spawning SessionState 生成中 @@ -10446,49 +10458,49 @@ 閉鎖中 - + None DeviceType なし - + Floppy DeviceType フロッピー - + CD/DVD-ROM DeviceType CD/DVD-ROM - + Hard Disk DeviceType ハードディスク - + Network DeviceType ネットワーク - + Normal DiskType 標準 - + Immutable DiskType 変更不可 - + Writethrough DiskType ライトスルー @@ -10524,61 +10536,61 @@ ゲスト - + Ignore USBFilterActionType 無視 - + Hold USBFilterActionType 保持 - + Null Audio Driver AudioDriverType Null Audio Driver - + Windows Multimedia AudioDriverType Windows マルチメディア - + OSS Audio Driver AudioDriverType OSS オーディオ ドライバ - + ALSA Audio Driver AudioDriverType ALSA オーディオ ドライバ - + Windows DirectSound AudioDriverType Windows DirectSound - + CoreAudio AudioDriverType CoreAudio - + Not attached NetworkAttachmentType 未割り当て - + NAT NetworkAttachmentType NAT @@ -10589,73 +10601,73 @@ ホスト インターフェース - + Internal Network NetworkAttachmentType 内部ネットワーク - + Generic Driver NetworkAttachmentType - + Deny NetworkAdapterPromiscModePolicyType - + Allow VMs NetworkAdapterPromiscModePolicyType - + Allow All NetworkAdapterPromiscModePolicyType - + LsiLogic SAS StorageControllerType LsiLogic SAS - + Not supported USBDeviceState 未サポート - + Unavailable USBDeviceState 利用不可 - + Busy USBDeviceState ビジー - + Available USBDeviceState 利用可能 - + Held USBDeviceState 保持 - + Captured USBDeviceState キャプチャ @@ -10671,25 +10683,25 @@ <i>アクセス不可</i> - + Disabled ClipboardType 無効 - + Host To Guest ClipboardType ホストOSからゲストOSへ - + Guest To Host ClipboardType ゲストOSからホストOSへ - + Bidirectional ClipboardType 双方向 @@ -10703,31 +10715,31 @@ ファイルを選択 - + Port %1 details report (serial ports) ポート %1 - + Disabled details report (serial ports) 無効 - + Serial Ports details report シリアルポート - + USB details report USB - + Shared Folders details report (shared folders) 共有フォルダ @@ -10738,13 +10750,13 @@ %1 - + None details report (shared folders) なし - + Shared Folders details report 共有フォルダ @@ -10755,37 +10767,37 @@ スタック - + Disconnected PortMode 切断 - + Host Pipe PortMode ホストにパイプ - + Host Device PortMode ホスト デバイス - + PIIX3 ChipsetType PIIX3 - + ICH9 ChipsetType ICH9 - + User-defined serial port ユーザー定義 @@ -10797,21 +10809,21 @@ - + VT-x/AMD-V details report VT-x/AMD-V - + PAE/NX details report PAE/NX - + Enabled details report (VT-x/AMD-V) @@ -10819,7 +10831,7 @@ - + Disabled details report (VT-x/AMD-V) @@ -10827,122 +10839,122 @@ - + Remote Desktop Server Port details report (VRDE Server) リモートデスクトップ サーバー ポート - + Enabled details report (PAE/NX) 有効 - + Disabled details report (PAE/NX) 無効 - + Execution Cap details report - + <nobr>%1%</nobr> details report - + Host Driver details report (audio) ホスト ドライバ - + Controller details report (audio) コントローラ - + Generic, '%1' details report (network) - + Port %1 details report (parallel ports) ポート %1 - + Disabled details report (parallel ports) 無効 - + Parallel Ports details report パラレルポート - + USB DeviceType USB - + Shared Folder DeviceType 共有フォルダ - + IDE StorageBus IDE - + SATA StorageBus SATA - + Primary StorageBusChannel プライマリ - + Secondary StorageBusChannel セカンダリ - + Master StorageBusDevice マスター - + Slave StorageBusDevice スレーブ - + Port %1 StorageBusChannel ポート %1 @@ -10953,43 +10965,43 @@ VHDイメージ - + Solaris Audio AudioDriverType Solaris オーディオ - + PulseAudio AudioDriverType PulseAudio - + ICH AC97 AudioControllerType ICH AC97 - + SoundBlaster 16 AudioControllerType SoundBlaster 16 - + PCnet-PCI II (Am79C970A) NetworkAdapterType PCnet-PCI II (Am79C970A) - + PCnet-FAST III (Am79C973) NetworkAdapterType PCnet-FAST III (Am79C973) - + Intel PRO/1000 MT Desktop (82540EM) NetworkAdapterType Intel PRO/1000 MT Desktop (82540EM) @@ -11005,55 +11017,55 @@ PIIX4 - + Intel PRO/1000 T Server (82543GC) NetworkAdapterType Intel PRO/1000 T Server (82543GC) - + <nobr>Vendor ID: %1</nobr> USB filter tooltip <nobr>ベンダID: %1</nobr> - + <nobr>Product ID: %2</nobr> USB filter tooltip <nobr>プロダクトID: %2</nobr> - + <nobr>Revision: %3</nobr> USB filter tooltip <nobr>リビジョン: %3</nobr> - + <nobr>Product: %4</nobr> USB filter tooltip <nobr>製品: %4</nobr> - + <nobr>Manufacturer: %5</nobr> USB filter tooltip <nobr>メーカー: %5</nobr> - + <nobr>Serial No.: %1</nobr> USB filter tooltip <nobr>シリアルNo.: %1</nobr> - + <nobr>Port: %1</nobr> USB filter tooltip <nobr>ポート: %1</nobr> - + <nobr>State: %1</nobr> USB filter tooltip <nobr>状態: %1</nobr> @@ -11124,52 +11136,52 @@ %1<hr>このベース ハードディスクは以下の差分ハードディスクを使用して間接的に割り当てられます:<br>%2%3 - + 3D Acceleration details report 3Dアクセラレーション - + Enabled details report (3D Acceleration) 有効 - + Disabled details report (3D Acceleration) 無効 - + Setting Up MachineState セットアップ - + Differencing DiskType 差分 - + Nested Paging details report ネステッドページング - + Enabled details report (Nested Paging) 有効 - + Disabled details report (Nested Paging) 無効 @@ -11180,7 +11192,7 @@ ブリッジ ネットワーク, '%1' - + Internal network, '%1' details report (network) 内部ネットワーク, '%1' @@ -11191,7 +11203,7 @@ ホストオンリー ネットワーク, '%1' - + SCSI StorageBus SCSI @@ -11207,93 +11219,93 @@ ホストオンリー ネットワーク - + PIIX3 StorageControllerType PIIX3 - + PIIX4 StorageControllerType PIIX4 - + ICH6 StorageControllerType ICH6 - + AHCI StorageControllerType AHCI - + Lsilogic StorageControllerType Lsilogic - + BusLogic StorageControllerType BusLogic - + Bridged adapter, %1 details report (network) ブリッジ アダプタ, '%1' - + Host-only adapter, '%1' details report (network) ホストオンリー アダプタ, '%1' - + Intel PRO/1000 MT Server (82545EM) NetworkAdapterType Intel PRO/1000 MT Server (82545EM) - + Bridged Adapter NetworkAttachmentType ブリッジ アダプタ - + Host-only Adapter NetworkAttachmentType ホストオンリー アダプタ - - + + <nobr>%1 MB</nobr> details report <nobr>%1 MB</nobr> - + Processor(s) details report プロセッサ数 - + <nobr>%1</nobr> details report <nobr>%1</nobr> - + System details report システム @@ -11314,92 +11326,92 @@ 無効 - + Display details report ディスプレイ - + Raw File PortMode Rawファイル - + Enabled details report (2D Video Acceleration) 有効 - + Dynamically allocated storage - + Fixed size storage - + Dynamically allocated storage split into files of less than 2GB - + Fixed size storage split into files of less than 2GB - + Unknown device USB device details - + Screens details report スクリーン - + Disabled details report (2D Video Acceleration) 無効 - + 2D Video Acceleration details report 2Dビデオ アクセラレーション - + Remote Desktop Server details report (VRDE Server) リモートデスクトップ サーバー - + Disabled details report (VRDE Server) 無効 - + (CD/DVD) (CD/DVD) - + Not Attached details report (Storage) 未割り当て - + Storage details report ストレージ @@ -11410,224 +11422,224 @@ VDE ネットワーク, '%1' - + Choose a virtual hard disk file 仮想ハードディスクファイルの選択 - + hard disk ハードディスク - + Choose a virtual CD/DVD disk file 仮想CD/DVDディスクファイルの選択 - + CD/DVD-ROM disk CD/DVD-ROMディスク - + Choose a virtual floppy disk file 仮想フロッピーディスクファイルの選択 - + floppy disk フロッピーディスク - + All %1 images (%2) すべての%1イメージ(%2) - + All files (*) すべてのファイル(*) - + Teleported MachineState テレポーテーション - + Guru Meditation MachineState 瞑想中(システムエラー) - - + + Teleporting MachineState テレポーテーション中 - + Taking Live Snapshot MachineState スナップショットの作成中 - + Teleporting Paused VM MachineState 仮想マシンのテレポーテーションを中断 - + Restoring Snapshot MachineState スナップショットに復元中 - - + + Deleting Snapshot MachineState スナップショットを削除中 - + Fault Tolerant Syncing MachineState フォールトトレラントの同期中 - + Unlocked SessionState アンロック - + Locked SessionState ロック - + Unlocking SessionState アンロック中 - + Floppy StorageBus フロッピー - + SAS StorageBus SAS - + Device %1 StorageBusDevice デバイス %1 - + IDE Primary Master New Storage UI : Slot Name IDE プライマリ マスター - + IDE Primary Slave New Storage UI : Slot Name IDE プライマリ スレーブ - + IDE Secondary Master New Storage UI : Slot Name IDE セカンダリ マスター - + IDE Secondary Slave New Storage UI : Slot Name IDE セカンダリ スレーブ - + SATA Port %1 New Storage UI : Slot Name SATA ポート %1 - + SCSI Port %1 New Storage UI : Slot Name SCSI ポート %1 - + SAS Port %1 New Storage UI : Slot Name SAS ポート %1 - + Floppy Device %1 New Storage UI : Slot Name フロッピー デバイス %1 - + Shareable DiskType 共有可能 - + Readonly DiskType 読み込み専用 - + Multi-attach DiskType 複数割り当て - + Null AuthType Null - + External AuthType 外部 - + Guest AuthType ゲスト - + Intel HD Audio AudioControllerType Intel HD オーディオ - + Paravirtualized Network (virtio-net) NetworkAdapterType 準仮想化ネットワーク (virtio-net) @@ -11638,27 +11650,26 @@ VDE アダプタ - + UDP NATProtocolType UDP - + TCP NATProtocolType TCP - + I82078 StorageControllerType I82078 - and - and + and ^(?:(?:(\d+)(?:\s?(B|KB|MB|GB|TB|PB))?)|(?:(\d*)%1(\d{1,2})(?:\s?(KB|MB|GB|TB|PB))))$ @@ -11666,25 +11677,25 @@ ^(?:(?:(\d+)(?:\s?(B|KB|MB|GB|TB|PB))?)|(?:(\d*)%1(\d{1,2})(?:\s?(KB|MB|GB|TB|PB))))$ - - - + + + B size suffix Bytes B - - - + + + KB size suffix KBytes=1024 Bytes KB - - - + + + @@ -11694,25 +11705,25 @@ MB - - - + + + GB size suffix GBytes=1024 MBytes GB - - - + + + TB size suffix TBytes=1024 GBytes TB - - - + + + PB size suffix PBytes=1024 TBytes PB @@ -13833,12 +13844,12 @@ VBoxSwitchMenu - + Disable 無効 - + Enable 有効 @@ -14056,13 +14067,13 @@ VBoxUSBMenu - + <no devices available> USB devices <利用できるデバイスがありません> - + No supported devices connected to the host PC USB device tooltip ホストマシンに接続されたデバイスはサポートされていません diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Frontends/VirtualBox/nls/VirtualBox_km_KH.ts virtualbox-4.1.44-dfsg/src/VBox/Frontends/VirtualBox/nls/VirtualBox_km_KH.ts --- virtualbox-4.1.12-dfsg/src/VBox/Frontends/VirtualBox/nls/VirtualBox_km_KH.ts 2012-04-02 13:28:40.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Frontends/VirtualBox/nls/VirtualBox_km_KH.ts 2015-11-11 15:08:28.000000000 +0000 @@ -5206,12 +5206,6 @@ Failed to detach the floppy device (<nobr><b>%1</b></nobr>) from the slot <i>%2</i> of the machine <b>%3</b>. - - <p>The virtual machine(s) <b>%1</b> are currently in a saved state.</p><p>If you continue the runtime state of the exported machine(s) will be discarded. Note that the existing machine(s) are not changed.</p> - - - - Failed to update Guest Additions. The Guest Additions installation image will be mounted to provide a manual installation. @@ -5440,6 +5434,17 @@ extension pack + + <p>Failed to initialize COM because the VirtualBox global configuration directory <b><nobr>%1</nobr></b> is not accessible. Please check the permissions of this directory and of its parent directory.</p><p>The application will now terminate.</p> + + + + <p>The %n following virtual machine(s) are currently in a saved state: <b>%1</b></p><p>If you continue the runtime state of the exported machine(s) will be discarded. The other machine(s) will not be changed.</p> + This text is never used with n == 0. Feel free to drop the %n where possible, we only included it because of problems with Qt Linguist (but the user can see how many machines are in the list and doesn't need to be told). + + + + UIMiniProcessWidgetAdditions @@ -8928,10 +8933,6 @@ ICH9 - and - - - MB size suffix MBytes=1024KBytes មេកាបៃ diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Frontends/VirtualBox/nls/VirtualBox_ko.ts virtualbox-4.1.44-dfsg/src/VBox/Frontends/VirtualBox/nls/VirtualBox_ko.ts --- virtualbox-4.1.12-dfsg/src/VBox/Frontends/VirtualBox/nls/VirtualBox_ko.ts 2012-04-02 13:28:40.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Frontends/VirtualBox/nls/VirtualBox_ko.ts 2015-11-11 15:08:28.000000000 +0000 @@ -5634,8 +5634,8 @@ <p>현재 가상 머신에서 VirtualBox 게스트 확장을 사용할 수 없는 것 같으며, 공유 폴더를 사용하려면 이 기능이 필요합니다. 가상 머신에서 공유 폴더를 사용하려면, 게스트 확장이 설치되어 있지 않으면 우선 설치하시고, 작동하지 않으면 <b>머신</b> 메뉴의 <b>게스트 확장 설치</b> 항목을 선택하셔서 다시 설치하십시오. 게스트 확장이 설치되어 있으나 가상 머신이 시작하는 중일 때에는 공유 폴더 기능이 작동하지 않습니다.</p> - <p>The virtual machine(s) <b>%1</b> are currently in a saved state.</p><p>If you continue the runtime state of the exported machine(s) will be discarded. Note that the existing machine(s) are not changed.</p> - + <p>The %n following virtual machine(s) are currently in a saved state: <b>%1</b></p><p>If you continue the runtime state of the exported machine(s) will be discarded. The other machine(s) will not be changed.</p> + <p>가상 머신 <b>%1</b>의 실행 상태가 저장되어 있습니다.</p><p>머신을 내보내더라도 저장된 실행 상태는 내보내지 않을 것입니다. 기존 머신의 실행 상태는 변경되지 않습니다.</p> @@ -5879,6 +5879,17 @@ extension pack + + <p>Failed to initialize COM because the VirtualBox global configuration directory <b><nobr>%1</nobr></b> is not accessible. Please check the permissions of this directory and of its parent directory.</p><p>The application will now terminate.</p> + + + + <p>The %n following virtual machine(s) are currently in a saved state: <b>%1</b></p><p>If you continue the runtime state of the exported machine(s) will be discarded. The other machine(s) will not be changed.</p> + This text is never used with n == 0. Feel free to drop the %n where possible, we only included it because of problems with Qt Linguist (but the user can see how many machines are in the list and doesn't need to be told). + + <p>가상 머신 <b>%1</b>의 실행 상태가 저장되어 있습니다.</p><p>머신을 내보내더라도 저장된 실행 상태는 내보내지 않을 것입니다. 기존 머신의 실행 상태는 변경되지 않습니다.</p> + + UIMiniProcessWidgetAdditions @@ -9158,7 +9169,7 @@ and - 그리고 + 그리고 MB diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Frontends/VirtualBox/nls/VirtualBox_lt.ts virtualbox-4.1.44-dfsg/src/VBox/Frontends/VirtualBox/nls/VirtualBox_lt.ts --- virtualbox-4.1.12-dfsg/src/VBox/Frontends/VirtualBox/nls/VirtualBox_lt.ts 2012-04-02 13:28:40.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Frontends/VirtualBox/nls/VirtualBox_lt.ts 2015-11-11 15:08:28.000000000 +0000 @@ -16,17 +16,17 @@ Oracle Corporation Comma-separated list of translators - Mindaugas Baranauskas + Mindaugas Baranauskas, Algimantas Margevičius -- Native language country name (empty if this language is for all countries) - + Lietuvių -- Language country name, in English (empty if native country name is empty) - + Lithuanian @@ -89,7 +89,7 @@ The VirtualBox Linux kernel driver (vboxdrv) is either not loaded or there is a permission problem with /dev/vboxdrv. Please reinstall the kernel module by executing<br/><br/> <font color=blue>'/etc/init.d/vboxdrv setup'</font><br/><br/>as root. If it is available in your distribution, you should install the DKMS package first. This package keeps track of Linux kernel changes and recompiles the vboxdrv kernel module if necessary. - + VirtualBox Linux branduolio modulis (vboxdrv) arba nėra įkeltas, arba nepakanka leidimų dirbti su /dev/vboxdrv. Iš naujo įdiekite branduolio modulį root teisėmis įvykdydami <br/><br/><font color=blue>'/etc/init.d/vboxdrv setup'</font><br/><br/>. Jei įmanoma pirma turite įsidiegti DKMS paketą. Šis paketas seka Linux branduolio pakeitimus ir, jei reikia, perkompiliuoja vboxdrv branduolio modulį. @@ -118,11 +118,11 @@ QIHttp Connection timed out - Bandymui prisijungti laikas baigėsi + Laikas skirtas prisijungti baigėsi Could not locate the file on the server (response: %1) - Serveryje nepavyksta rasti rinkmenos (atsakas: %1) + Rasti rinkmenos serveryje nepavyksta (atsakas: %1) @@ -521,6 +521,209 @@ Session I&nformation... Sesijos i&nformacija... + + &File + Mac OS X version + &Rinkmena + + + &File + Non Mac OS X version + &Rinkmena + + + &Virtual Media Manager... + &Virtualių laikmenų tvarkytuvė... + + + Display the Virtual Media Manager dialog + Atveria virtualių laikmenų tvarkytuvę + + + &Import Appliance... + &Importuoti virtualią mašiną... + + + Import an appliance into VirtualBox + Importuoja mašiną į VirtualBox + + + &Export Appliance... + &Eksportuoti virtualią mašiną... + + + Export one or more VirtualBox virtual machines as an appliance + Eksportuoja vieną ar kelias VirtualBox virtualias mašinas + + + &Preferences... + global settings + &Nuostatos... + + + Display the global settings dialog + Keisti bendras nuostatas + + + E&xit + &Baigti + + + Close application + Užverti VirtualBox + + + &New... + &Nauja... + + + Create a new virtual machine + Sukurti naują virtualią mašiną + + + &Add... + &Pridėti... + + + Add an existing virtual machine + Pridėti esamą virtualią mašiną + + + Cl&one... + &Klonuoti... + + + Clone the selected virtual machine + Klonuoti pasirinktą virtualią mašiną + + + &Remove + Pašalin&ti + + + Remove the selected virtual machine + Pašalinti pasirinktą virtualią mašiną + + + S&tart + &Paleisti + + + Start the selected virtual machine + Paleisti pasirinktą virtualią mašiną + + + S&how + &Rodyti + + + Switch to the window of the selected virtual machine + Pereiti į pasirinktos virtualios mašinos langą + + + Discard + Atmesti + + + D&iscard Saved State + &Nebesaugoti būsenos + + + Discard the saved state of the selected virtual machine + Panaikinti išsaugotą pasirinktos virtualios mašinos būvį + + + Re&fresh + &Atnaujinti + + + Refresh the accessibility state of the selected virtual machine + Atnaujinti pasirinktos virtualios mašinos pasiekiamumo būseną + + + Show &Log... + Peržiūrėti ž&urnalus... + + + Show the log files of the selected virtual machine + Rodyti pasirinktos virtualios mašinos žurnalus + + + Show in Finder + Atverti su Finder + + + Show the VirtualBox Machine Definition file in Finder. + VirtualBox mašinos apibrėžties rinkmeną atverti su Finder. + + + Show in Explorer + Atverti su Explorer + + + Show the VirtualBox Machine Definition file in Explorer. + VirtualBox mašinos apibrėžties rinkmeną atverti su Explorer. + + + Show in File Manager + Atverti su rinkmenų tvarkytuve + + + Show the VirtualBox Machine Definition file in the File Manager + VirtualBox mašinos apibrėžties rinkmeną atverti su rinkmenų tvarkytuve + + + Create Alias on Desktop + Sukurti nuorodą darbalaukyje + + + Creates an Alias file to the VirtualBox Machine Definition file on your Desktop. + Darbalaukyje sukuriama nuorodos rinkmena į VirtualBox mašinos apibrėžties rinkmeną. + + + Create Shortcut on Desktop + Sukurti šaukinį darbalaukyje + + + Creates an Shortcut file to the VirtualBox Machine Definition file on your Desktop. + Darbalaukyje sukuriama šaukinio rinkmena į VirtualBox mašinos apibrėžties rinkmeną. + + + Take Sn&apshot... + &Išsaugoti dabartinio būvio kopiją... + + + Take Screensh&ot... + Padaryti &ekravaizdį... + + + Take a screenshot of the virtual machine + Padaryti virtualios mašinos ekranvaizdį + + + Ins&ert Ctrl-Alt-Backspace + Į&terpti Ctrl-Alt-Backspace + + + Sort List + Rikiuoti sąrašą + + + Sort the VM list alphabetically (Shift for descending order) + Rikiuoti VM sąrašą pagal abėcėlę(Shift jei reikia mažėjančia tvarka) + + + &Close + &Užverti + + + Po&wer Off + &Išjungti + + + Power off the virtual machine + Išjungti virtualią mašiną + UIApplianceEditorWidget @@ -666,7 +869,7 @@ Linked Base for %1 and %2 - + Susieta bazė %1 ir %2 @@ -715,78 +918,310 @@ Visos būsenos - Cloning Configuration - Klonavimo konfigūracija + Cloning Configuration + Klonavimo konfigūracija + + + Please choose which parts of the virtual machine should be cloned. + Pasirinkite virtualios mašinos klonuotinas dalis. + + + Full Clone + Visiškas klonas + + + Linked Clone + Susietas klonas + + + <p>Please select the type of the clone.</p><p>If you choose <b>Full Clone</b> an exact copy (including all virtual disk images) of the original VM will be created. If you select <b>Linked Clone</b>, a new VM will be created, but the virtual disk images will point to the virtual disk images of original VM.</p> + <p>Pasirinkite klono tipą.</p><p>Jei pasirinksite <b>Pilnas klonas</b> bus sukurta ideali(įskaitant visus virtualius diskus) originalios VM kopija. Jei pasirinksite <b>Susieta klonas</b>, bus sukurta nauja VM, bet virtualūs diskų atvaizdžiai bus nukreipti į originalią VM.</p> + + + <p>Note that a new snapshot within the source VM is created in case you select <b>Linked Clone</b>.</p> + <p>Turėkite omeny jog jei pasirinksite <b>Susietas klonas</b> bus sukurtas naujas momentinis būvis.</p> + + + + UICloneVMWizardPage3 + + Current machine state + Dabartinė mašinos būsena + + + Current machine and all child states + Dabartinė būsena ir paveldėtos būsenos + + + All states + Visos būsenos + + + Cloning Configuration + Klonavimo konfigūracija + + + Please choose which parts of the virtual machine should be cloned. + Pasirinkite virtualios mašinos klonuotinas dalis. + + + If you select <b>Current machine state</b>, only the current state of the virtual machine is cloned. + Jei pasirinksite <b>Dabartinė mašinos būsena</b>, bus klonuota tik dabartinė virtualios mašinos būsena. + + + If you select <b>Current machine and all child states</b> the current state of the virtual machine and any states of child snapshots are cloned. + Jei pasirinksite <b>Dabartinė mašina ir visos vaikinės būsenos</b> bus klonuota visos būsenos įskaitant ir vaikines. + + + If you select <b>All states</b>, the current machine state and all snapshots are cloned. + Jei pasirinksite <b>Visos būsenos</b> bus klonuota visos būsenos. + + + + UIDescriptionPagePrivate + + No description. Press the Edit button below to add it. + Aprašo nėra. Norėdami pridėti aprašą, spauskite mygtuką „Keisti“. + + + Edit + Keisti + + + Edit (Ctrl+E) + Keisti (Vald+E) + + + + UIDetailsBlock + + Name + details report + Pavadinimas + + + OS Type + details report + OS tipas + + + Information inaccessible + details report + Informacija neprieinama + + + Base Memory + details report + Pagrindinė atmintis + + + <nobr>%1 MB</nobr> + details report + <nobr>%1 MB</nobr> + + + Processors + details report + Procesoriai + + + <nobr>%1</nobr> + details report + <nobr>%1</nobr> + + + Execution Cap + details report + Vykdymo riba + + + <nobr>%1%</nobr> + details report + <nobr>%1%</nobr> + + + Boot Order + details report + Krovimo tvarka + + + ACPI + details report + ACPI + + + IO APIC + details report + IO APIC + + + BIOS + details report + BIOS + + + VT-x/AMD-V + details report + VT-x/AMD-V + + + Nested Paging + details report + Lizdinis puslapiavimas + + + PAE/NX + details report + PAE/NX + + + Acceleration + details report + Spartinimas + + + Video Memory + details report + Vaizdo atmintis + + + Screens + details report + Ekranai + + + 2D Video + details report + 2D vaizdas + + + 3D + details report + 3D + + + Remote Desktop Server Port + details report (VRDE Server) + Nuotolinio ekrano serverio prievadas + + + Remote Desktop Server + details report (VRDE Server) + Nuotolinio ekrano serveris + + + Disabled + details report (VRDE Server) + Uždrausta + + + (CD/DVD) + (CD/DVD) + + + Not Attached + details report (Storage) + Neprijungta + + + Host Driver + details report (audio) + Pagr. kompiuterio tvarkyklė + + + Controller + details report (audio) + Valdiklis + + + Disabled + details report (audio) + Uždrausta + + + Bridged adapter, %1 + details report (network) + Tinklų tiltas, %1 - Please choose which parts of the virtual machine should be cloned. - Pasirinkite virtualios mašinos klonuotinas dalis. + Internal network, '%1' + details report (network) + Vidinis tinklas, „%1“ - Full Clone - Visiškas klonas + Host-only adapter, '%1' + details report (network) + Plokštė prisijungimui tik prie pagrindinio kompiuterio, „%1“ - Linked Clone - Susietas klonas + Generic driver, '%1' + details report (network) + Pagrindinė tvarkyklė, „%1“ - <p>Please select the type of the clone.</p><p>If you choose <b>Full Clone</b> an exact copy (including all virtual disk images) of the original VM will be created. If you select <b>Linked Clone</b>, a new VM will be created, but the virtual disk images will point to the virtual disk images of original VM.</p> - + Generic driver, '%1' {&nbsp;%2&nbsp;} + details report (network) + Pagrindinė tvarkyklė, „%1“ {&nbsp;%2&nbsp;} - <p>Note that a new snapshot within the source VM is created in case you select <b>Linked Clone</b>.</p> - + Adapter %1 + details report (network) + %1 plokštė - - - UICloneVMWizardPage3 - Current machine state - Dabartinė mašinos būsena + Disabled + details report (network) + Uždrausta - Current machine and all child states - Dabartinė būsena ir paveldėtos būsenos + Port %1 + details report (serial ports) + %1 prievadas - All states - Visos būsenos + Disabled + details report (serial ports) + Uždrausta - Cloning Configuration - Klonavimo konfigūracija + Port %1 + details report (parallel ports) + %1 prievadas - Please choose which parts of the virtual machine should be cloned. - Pasirinkite virtualios mašinos klonuotinas dalis. + Disabled + details report (parallel ports) + Uždrausta - If you select <b>Current machine state</b>, only the current state of the virtual machine is cloned. - + Device Filters + details report (USB) + Įtaisų filtrai - If you select <b>Current machine and all child states</b> the current state of the virtual machine and any states of child snapshots are cloned. - + %1 (%2 active) + details report (USB) + %1 (%2 įgalinta) - If you select <b>All states</b>, the current machine state and all snapshots are cloned. - + Disabled + details report (USB) + Uždrausta - - - UIDescriptionPagePrivate - No description. Press the Edit button below to add it. - Aprašo nėra. Norėdami pridėti aprašą, spauskite mygtuką „Keisti“. + Shared Folders + details report (shared folders) + Bendrieji aplankai - Edit - Keisti + None + details report (shared folders) + Nieko - Edit (Ctrl+E) - Keisti (Vald+E) + None + details report (description) + Nieko @@ -824,7 +1259,7 @@ Boot Order details report - Paleidimo eiliškumas + Krovimo tvarka ACPI @@ -847,11 +1282,6 @@ VT-x/AMD-V - Nested Paging - details report - - - PAE/NX details report PAE/NX @@ -884,17 +1314,17 @@ Remote Desktop Server Port details report (VRDE Server) - Nuotolinio ekrano serverio prievadas + Nuotolinio darbastalio serverio prievadas Remote Desktop Server details report (VRDE Server) - Nuotolinio ekrano serveris + Nuotolinio darbastalio serveris Disabled details report (VRDE Server) - Uždrausta + Išjungta (CD/DVD) @@ -918,7 +1348,7 @@ Disabled details report (audio) - Uždrausta + Išjungta Bridged adapter, %1 @@ -1065,24 +1495,29 @@ Aprašas + <nobr>%1%</nobr> + details report + <nobr>%1%</nobr> + + Execution Cap details report - + Vykdymo riba - <nobr>%1%</nobr> + Nested Paging details report - <nobr>%1%</nobr> + Lizdinis puslapiavimas Generic driver, '%1' details report (network) - + Pagrindinė tvarkyklė, „%1“ Generic driver, '%1' {&nbsp;%2&nbsp;} details report (network) - + Pagrindinė tvarkyklė, „%1“ {&nbsp;%2&nbsp;} @@ -1091,6 +1526,14 @@ The download process has been canceled by the user. Parsiuntimą nutraukė naudotojas. + + Looking for %1... + Ieškoma %1... + + + Downloading %1... + Parsiunčiama %1... + UIDownloaderAdditions @@ -1102,6 +1545,10 @@ Select folder to save Guest Additions image to Nurodykite aplanką, kuriame bus įrašyta „svečio papildinių“ atvaizdis + + VirtualBox Guest Additions + VirtualBox svečio papildiniai + UIDownloaderExtensionPack @@ -1109,6 +1556,10 @@ Select folder to save %1 to Pasirinkite aplanką, į kurį įrašyti %1 + + VirtualBox Extension Pack + VirtualBox plėtinių paketas + UIDownloaderUserManual @@ -1116,6 +1567,10 @@ Select folder to save User Manual to Nurodykite aplanką, kuriame bus įrašytas naudotojo žinynas + + VirtualBox User Manual + VirtualBox naudotojo žinynas + UIExportApplianceWzd @@ -1206,7 +1661,7 @@ &Bucket: - + Pro&duktas: &File: @@ -1222,11 +1677,11 @@ Create a Manifest file for automatic data integrity checks on import. - + Sukurti Manifest failą, automatiniam duomenų vientisumo tikrinimui importuojant. Write &Manifest file - + Įrašyti &Manifest failą Appliance @@ -1250,11 +1705,11 @@ Please complete the additional fields like the username, password and the bucket, and provide a filename for the OVF target. - + Užpildykite papildomus laukus, tokius kaip naudotojo vardas, slaptažodis ir produktas, taipogi nurodykite OVF paskirties failo vardą. Please complete the additional fields like the username, password, hostname and the bucket, and provide a filename for the OVF target. - + Užpildykite papildomus laukus, tokius kaip naudotojo vardas, slaptažodis, kompiuterio vardas ir produktas, taipogi nurodykite OVF paskirties failo vardą. @@ -1824,7 +2279,7 @@ UIGlobalSettingsProxy When checked, VirtualBox will use the proxy settings supplied for tasks like downloading Guest Additions from the network or checking for updates. - + Kai pažymėta, VirtualBox užduotims tokioms kaip svečio papildinių parsiuntimas ar atnaujinimų tikrinimas, naudos tarpinio serverio nustatymus. &Enable proxy @@ -1848,7 +2303,7 @@ When checked the authentication supplied will be used with the proxy server. - + Kai pažymėta, tarpniam serveriui bus naudojamas tapatybės patirkinimas. &Use authentication @@ -2596,7 +3051,7 @@ you enabled 3D acceleration. However, 3D acceleration is not working on the current host setup so you will not be able to start the VM. - + jūs įjungėte 3D spartinimą. Nepaisant to dabartinio kompiuterio sąrankoj 3D spartinimas neveikia, todėl jūs negalėsite paleisti VM. @@ -2767,15 +3222,15 @@ &Promiscuous Mode: - + &Mišrus režimas: Selects the promiscuous mode policy of the network adapter when attached to an internal network, host only network or a bridge. - + Pasirenka mišrų tiklo plokštės veikimo režimą, kai prisijungta prie vidinio tinklo, tik pagrindiniam kompiuteriui ar tiltui. Generic Properties: - + Bendros savybės: Enter any configuration settings here for the network attachment driver you will be using. The settings should be of the form <b>name=value</b> and will depend on the driver. Use <b>shift-enter</b> to add a new entry. @@ -3361,7 +3816,7 @@ When checked the virtual disk will not be removed when the guest system ejects it. - + Kai pažymėta, virtualūs diskai nebus išimti kai svečio sitema juos išstums. &Live CD/DVD @@ -3369,7 +3824,7 @@ When checked the guest system will see the virtual disk as a solid state device. - + Kai pažymėta, svečio sitema matys virtualų diską kaip kietos būsenos įrenginį. &Solid-state drive @@ -3381,11 +3836,11 @@ no name specified for controller at position <b>%1</b>. - + valdikliui pozicijoje <b>%1</b> nenurodytas vardas. controller at position <b>%1</b> uses the name that is already used by controller at position <b>%2</b>. - + valdiklis pozicijoje <b>%1</b> naudoja vcardą kuris jau naudojamas valdiklio <b>%2</b>. no hard disk is selected for <i>%1</i>. @@ -3407,7 +3862,7 @@ &Port Count: - + &Prievadų skaičius: Selects the port count of the SATA storage controller currently selected in the Storage Tree. This must be at least one more than the highest port number you need to use. @@ -3462,7 +3917,7 @@ Selects the chipset to be emulated in this virtual machine. Note that the ICH9 chipset emulation is experimental and not recommended except for guest systems (such as Mac OS X) which require it. - Nurodo šios VM lustų sistemos tipą. + Nurodo šios VM lustų sistemos tipą. Turėkite omeny jog ICH9 lusto tipas eksperimentinis ir nerekomenduojamas išskyrus svečio sistemoms (tokioms kaip Mac OS X). Extended Features: @@ -3542,7 +3997,7 @@ Enable Nested Pa&ging - + Įgalinti &lizdinį puslapiavimą you have assigned more than <b>%1%</b> of your computer's memory (<b>%2</b>) to the virtual machine. Not enough memory is left for your host operating system. Please select a smaller amount. @@ -3588,7 +4043,7 @@ &Execution Cap: - + &Vykdymo riba: Limits the amount of time that each virtual CPU is allowed to run for. Each virtual CPU will be allowed to use up to this percentage of the processing time available on one physical CPU. The execution cap can be disabled by setting it to 100%. Setting the cap too low can make the machine feel slow to respond. @@ -4945,14 +5400,6 @@ no hard disk attached Atgal - - <p>The virtual machine(s) <b>%1</b> are currently in a saved state.</p><p>If you continue the runtime state of the exported machine(s) will be discarded. Note that the existing machine(s) are not changed.</p> - - - - - - Failed to update Guest Additions. The Guest Additions installation image will be mounted to provide a manual installation. Nepavyko atnaujinti svečio papildinių. Svečio papildinių diegimo atvaizdis bus prijungtas tam, kad įdiegtumėte patys rankiniu būdu. @@ -5165,7 +5612,7 @@ The virtual machine that you are changing has been started. Only certain settings can be changed while a machine is running. All other changes will be lost if you close this window now. - Šiuo metu tvarkomos virtualios mašinos būsena pasikeitė. Nuspaudus mygtuką „gerai“ bus įrašytos tik šiame dialoge matomos nuostatos. Visi kiti pakeitimai bus prarasti. + Keičiama mašina buvo paleista. Kol mašina veikia galima keisti tik kaikuriuos nustatymus. Jei dabar užversite langą, visi kiti pakeitimai bus prarasti. Failed to clone the virtual machine <b>%1</b>. @@ -5226,7 +5673,7 @@ Download extension pack - Parsiųsti + Parsiųsti <p>Are you sure you want to download the <b><nobr>%1</nobr></b> from <nobr><a href="%2">%2</a></nobr> (size %3 bytes)?</p> @@ -5256,6 +5703,19 @@ Ok extension pack + Gerai + + + <p>The %n following virtual machine(s) are currently in a saved state: <b>%1</b></p><p>If you continue the runtime state of the exported machine(s) will be discarded. The other machine(s) will not be changed.</p> + This text is never used with n == 0. Feel free to drop the %n where possible, we only included it because of problems with Qt Linguist (but the user can see how many machines are in the list and doesn't need to be told). + + + + + + + + <p>Failed to initialize COM because the VirtualBox global configuration directory <b><nobr>%1</nobr></b> is not accessible. Please check the permissions of this directory and of its parent directory.</p><p>The application will now terminate.</p> @@ -5402,8 +5862,8 @@ - <p>A <b>dynamically allocated</b> virtual disk file will only use space on your physical hard disk as it fills up, although it will not shrink again automatically when space on it is freed.</p> - <p><b>Dinaminio dydžio</b> virtualaus disko rinkmena naudos tik tiek fizinio disko vietos, kad tilptų disko atvaizdis; tačiau virtualiame diske atlaisvinus vietos, atvaizdžio rinkmena nesumažės.</p> + <p>A <b>dynamically allocated</b> virtual disk file will only use space on your physical hard disk as it fills up (up to a <b>fixed maximum size</b>), although it will not shrink again automatically when space on it is freed.</p> + <p><b>Dinaminio dydžio</b> virtualaus disko rinkmena naudos tik tiek fizinio disko vietos, kad tilptų disko atvaizdis; tačiau virtualiame diske atlaisvinus vietos, atvaizdžio rinkmena nesumažės.</p> <p>A <b>fixed size</b> virtual disk file may take longer to create on some systems but is often faster to use.</p> @@ -5439,7 +5899,7 @@ Please type the name of the new virtual disk file into the box below or click on the folder icon to select a different folder to create the file in. - Norėdami nurodyti rinkmenos, kurioje bus laikomi virtualaus disko duomenys, vietą, spauskite <b>Pasirinkti</b> arba įveskite rinkmenos pavadinimą laukelyje. + Norėdami nurodyti rinkmenos, kurioje bus laikomi virtualaus disko duomenys, vietą, spauskite <b>Pasirinkti</b> arba įveskite rinkmenos pavadinimą laukelyje. Select a file for the new hard disk image file @@ -5501,6 +5961,10 @@ &QCOW (QEMU Copy-On-Write) + + <p>A <b>dynamically allocated</b> virtual disk file will only use space on your physical hard disk as it fills up, although it will not shrink again automatically when space on it is freed.</p> + + UINewHDWizardPageFormat @@ -5887,6 +6351,34 @@ + UISelectorWindow + + Show Toolbar + Rodyti įrankių juostą + + + Show Statusbar + Rodyti būsenos juostą + + + Select a virtual machine file + Pasirinkite virtualios mašinos rinkmeną + + + Virtual machine files (%1) + Virtualių mašinų rinkmenos (%1) + + + <h3>Welcome to VirtualBox!</h3><p>The left part of this window is a list of all virtual machines on your computer. The list is empty now because you haven't created any virtual machines yet.<img src=:/welcome.png align=right/></p><p>In order to create a new virtual machine, press the <b>New</b> button in the main tool bar located at the top of the window.</p><p>You can press the <b>%1</b> key to get instant help, or visit <a href=http://www.virtualbox.org>www.virtualbox.org</a> for the latest information and news.</p> + <h3>Jus sveikina VirtualBox!</h3><p>Kairėje lango pusėje pateikiamas visų Jūsų virtualių mašinų sąrašas. Kol kas šis sąrašas tuščias, kadangi dar nesukūrėte nei vienos virtualios mašinos.<img src=:/welcome.png align=right/></p><p>Norėdami sukurti naują VM, spauskite mygtuką <b>Nauja</b>, kuris yra pagrindinėje įrankių juostoje lango viršuje.</p><p>Trumpą pagalbą gausite nuspaudę <b>%1</b>. <a href=http://www.virtualbox.org>Naujausią informaciją rasite apsilankę svetainėje</p>.</p> + + + Manager + Note: main window title which is pretended by the product name. + Tvarkyklė + + + UISession Install @@ -5954,6 +6446,10 @@ Proxy Įgaliotasis serveris + + Display + Ekranas + UISettingsDialogMachine @@ -6141,6 +6637,13 @@ + UIUpdateStepVirtualBox + + Checking for a new VirtualBox version... + Ieškoma naujos VirtualBox versijos... + + + UIVMCloseDialog Close Virtual Machine @@ -6225,38 +6728,109 @@ Pereiti į pasirinktos virtualios mašinos langą - S&tart - &Paleisti + S&tart + &Paleisti + + + Start the selected virtual machine + Paleisti pasirinktą virtualią mašiną + + + R&esume + &Tęsti + + + Resume the execution of the virtual machine + Tęsti pristabdytos virtualios mašinos darbą + + + &Pause + &Pristabdyti + + + Suspend the execution of the virtual machine + Sustabdyti virtualią mašiną jos būseną išsaugant diske + + + <nobr>%1<br></nobr><nobr>%2 since %3</nobr><br><nobr>Session %4</nobr> + VM tooltip (name, last state change, session state) + <nobr>%1<br></nobr><nobr>%2 nuo %3</nobr><br><nobr>Sesija %4</nobr> + + + <nobr><b>%1</b><br></nobr><nobr>Inaccessible since %2</nobr> + Inaccessible VM tooltip (name, last state change) + <nobr><b>%1</b><br></nobr><nobr>neprienama nuo %2</nobr> + + + + UIVMLogViewer + + Log Viewer + Žurnalų peržiūra + + + &Save + Į&rašyti + + + &Refresh + &Atnaujinti + + + %1 - VirtualBox Log Viewer + %1 - VirtualBox žurnalų peržiūra + + + <p>No log files found. Press the <b>Refresh</b> button to rescan the log folder <nobr><b>%1</b></nobr>.</p> + <p>Žurnalų nėra. Norėdami iš naujo nuskaityti žurnalų aplanką <nobr><b>%1</b></nobr>, spauskite <b>Atnaujinti</b>.</p> + + + Save VirtualBox Log As + VirtualBox žurnalą įrašyti kaip + + + &Find + &Ieškoti + + + Close + Užverti + + + Close the search panel + Užverti paieškos skydelį + + + Enter a search string here + Įveskite paieškos reiškinį - Start the selected virtual machine - Paleisti pasirinktą virtualią mašiną + &Previous + &Ankstesnis - R&esume - &Tęsti + Search for the previous occurrence of the string + Ieškoti ankstesnių paieškos reiškinių - Resume the execution of the virtual machine - Tęsti pristabdytos virtualios mašinos darbą + &Next + &Toliau - &Pause - &Pristabdyti + Search for the next occurrence of the string + Ieškoti tolesnių paieškos reiškinių - Suspend the execution of the virtual machine - Sustabdyti virtualią mašiną jos būseną išsaugant diske + C&ase Sensitive + &Skirti raidžių dydį - <nobr>%1<br></nobr><nobr>%2 since %3</nobr><br><nobr>Session %4</nobr> - VM tooltip (name, last state change, session state) - <nobr>%1<br></nobr><nobr>%2 nuo %3</nobr><br><nobr>Sesija %4</nobr> + Perform case sensitive search (when checked) + Skirti raidžių dydį (jei pasirinkta) - <nobr><b>%1</b><br></nobr><nobr>Inaccessible since %2</nobr> - Inaccessible VM tooltip (name, last state change) - <nobr><b>%1</b><br></nobr><nobr>neprienama nuo %2</nobr> + String not found + Nerasta @@ -7143,7 +7717,7 @@ Writethrough DiskType Writetrough disk images allow read and write operations to be performed on the disk image. When virtual machine is powered off or reset, however, the state of disk image is not saved, thereby reverting to its original state next timethe virtual machine starts. - + Įrašyti tiesiogiai Null @@ -7619,7 +8193,7 @@ Nested Paging details report - + Lizdinis puslapiavimas Enabled @@ -7810,7 +8384,7 @@ Taking Live Snapshot MachineState - + Daromas gyvas momentinis būvis Teleporting Paused VM @@ -8103,7 +8677,7 @@ Nested Paging - + Lizdinis puslapiavimas Shareable @@ -8620,7 +9194,7 @@ Fault Tolerant Syncing MachineState - + Klaidų toleravimo sinchronizavimas Unlocked @@ -9019,7 +9593,7 @@ and - ir + ir Adapter %1 @@ -9049,7 +9623,7 @@ Multi-attach DiskType - + Prijungta keli Dynamically allocated storage @@ -9070,7 +9644,7 @@ Execution Cap details report - + Vykdymo riba <nobr>%1%</nobr> @@ -9080,12 +9654,12 @@ Generic, '%1' details report (network) - + Bendras, „%1“ Generic Driver NetworkAttachmentType - + Pagrindinė tvarkyklė Deny @@ -9160,7 +9734,7 @@ Enter a search string here - Įveskite paieškos reiškinį + Įveskite ko ieškoti &Previous @@ -9168,7 +9742,7 @@ Search for the previous occurrence of the string - Ieškoti ankstesnių paieškos reiškinių + Ieškoti ankstesnių paieškos atitikmenų &Next @@ -9176,7 +9750,7 @@ Search for the next occurrence of the string - Ieškoti tolesnių paieškos reiškinių + Ieškoti tolesnių paieškos atitikmenų C&ase Sensitive @@ -9188,7 +9762,7 @@ String not found - Nerasta + Frazė nerasta @@ -9537,26 +10111,6 @@ Nuos&tatos... - Display the global settings dialog - Keisti bendras nuostatas - - - E&xit - &Baigti - - - Close application - Užverti VirtualBox - - - &New... - &Nauja... - - - Create a new virtual machine - Sukurti naują virtualią mašiną - - &Settings... Nuo&statos... @@ -9577,14 +10131,6 @@ At&mesti - Discard the saved state of the selected virtual machine - Panaikinti išsaugotą pasirinktos virtualios mašinos būvį - - - Refresh the accessibility state of the selected virtual machine - Atnaujinti pasirinktos virtualios mašinos pasiekiamumo būseną - - &Help &Pagalba @@ -9601,34 +10147,10 @@ &Aprašymas * - S&how - &Rodyti - - - Switch to the window of the selected virtual machine - Pereiti į pasirinktos virtualios mašinos langą - - - S&tart - &Paleisti - - - Start the selected virtual machine - Paleisti pasirinktą virtualią mašiną - - &Machine &Mašina - Show &Log... - Peržiūrėti ž&urnalus... - - - Show the log files of the selected virtual machine - Rodyti pasirinktos virtualios mašinos žurnalus - - R&esume &Tęsti @@ -9649,40 +10171,12 @@ <h3>Jus sveikina VirtualBox!</h3><p>Kairėje lango pusėje pateikiamas visų Jūsų virtualių mašinų sąrašas. Kol kas šis sąrašas tuščias, kadangi dar nesukūrėte nei vienos virtualios mašinos.<img src=:/welcome.png align=right/></p><p>Norėdami sukurti naują VM, spauskite mygtuką <b>Nauja</b>, kuris yra pagrindinėje įrankių juostoje lango viršuje.</p><p>Trumpą pagalbą gausite nuspaudę <b>%1</b>. Naujausią informaciją rasite apsilankę svetainėje<a href=http://www.virtualbox.org>www.virtualbox.org</a>.</p> - &Virtual Media Manager... - &Virtualių laikmenų tvarkytuvė... - - - Display the Virtual Media Manager dialog - Atveria virtualių laikmenų tvarkytuvę - - Log icon text Žurnalas - &Import Appliance... - &Importuoti virtualią mašiną... - - - Import an appliance into VirtualBox - Importuoja mašiną į VirtualBox - - - &Export Appliance... - &Eksportuoti virtualią mašiną... - - - Export one or more VirtualBox virtual machines as an appliance - Eksportuoja vieną ar kelias VirtualBox virtualias mašinas - - - Re&fresh - &Atnaujinti - - &File Mac OS X version @@ -9708,11 +10202,68 @@ Tvarkytuvė + Log + icon text + Žurnalas + + + Show Toolbar + Rodyti mygtukų juostą + + + Show Statusbar + Rodyti būsenos juostą + + + &Virtual Media Manager... + &Virtualių laikmenų tvarkytuvė... + + + Display the Virtual Media Manager dialog + Atveria virtualių laikmenų tvarkytuvę + + + &Import Appliance... + &Importuoti virtualią mašiną... + + + Import an appliance into VirtualBox + Importuoja mašiną į VirtualBox + + + &Export Appliance... + &Eksportuoti virtualią mašiną... + + + Export one or more VirtualBox virtual machines as an appliance + Eksportuoja vieną ar kelias VirtualBox virtualias mašinas + + &Preferences... global settings &Nuostatos... + Display the global settings dialog + Keisti bendras nuostatas + + + E&xit + &Baigti + + + Close application + Užverti VirtualBox + + + &New... + &Nauja... + + + Create a new virtual machine + Sukurti naują virtualią mašiną + + &Add... &Pridėti... @@ -9721,6 +10272,14 @@ Pridėti esamą virtualią mašiną + Cl&one... + &Klonuoti... + + + Clone the selected virtual machine + Klonuoti pasirinktą virtualią mašiną + + &Remove Pašalin&ti @@ -9729,9 +10288,32 @@ Pašalinti pasirinktą virtualią mašiną - Log - icon text - Žurnalas + Discard + Atmesti + + + D&iscard Saved State + &Nebesaugoti būsenos + + + Discard the saved state of the selected virtual machine + Panaikinti išsaugotą pasirinktos virtualios mašinos būvį + + + Re&fresh + &Atnaujinti + + + Refresh the accessibility state of the selected virtual machine + Atnaujinti pasirinktos virtualios mašinos pasiekiamumo būseną + + + Show &Log... + Peržiūrėti ž&urnalus... + + + Show the log files of the selected virtual machine + Rodyti pasirinktos virtualios mašinos žurnalus Show in Finder @@ -9759,15 +10341,15 @@ Create Shortcut on Desktop - Sukurti šaukinį darbalaukyje + Sukurti nuorodą darbalaukyje Creates an Shortcut file to the VirtualBox Machine Definition file on your Desktop. - Darbalaukyje sukuriama šaukinio rinkmena į VirtualBox mašinos apibrėžties rinkmeną. + Darbalaukyje sukuriama nuorodos rinkmena į VirtualBox mašinos apibrėžties rinkmeną. Show in File Manager - Atverti su rinkmenų tvarkytuve + Rodyti rinkmenų tvarkytuve Show the VirtualBox Machine Definition file in the File Manager @@ -9784,28 +10366,20 @@ &Rinkmena - Show Toolbar - Rodyti mygtukų juostą - - - Show Statusbar - Rodyti būsenos juostą - - - Cl&one... - &Klonuoti... + S&tart + &Paleisti - Clone the selected virtual machine - Klonuoti pasirinktą virtualią mašiną + Start the selected virtual machine + Paleisti pasirinktą virtualią mašiną - Discard - Atmesti + S&how + &Rodyti - D&iscard Saved State - &Nebesaugoti būsenos + Switch to the window of the selected virtual machine + Pereiti į pasirinktos virtualios mašinos langą @@ -10235,28 +10809,28 @@ Žurnalų peržiūra - &Save - Į&rašyti + <p>No log files found. Press the <b>Refresh</b> button to rescan the log folder <nobr><b>%1</b></nobr>.</p> + <p>Žurnalų nėra. Norėdami iš naujo nuskaityti žurnalų aplanką <nobr><b>%1</b></nobr>, spauskite <b>Atnaujinti</b>.</p> - &Refresh - &Atnaujinti + Save VirtualBox Log As + VirtualBox žurnalą įrašyti kaip %1 - VirtualBox Log Viewer %1 - VirtualBox žurnalų peržiūra - <p>No log files found. Press the <b>Refresh</b> button to rescan the log folder <nobr><b>%1</b></nobr>.</p> - <p>Žurnalų nėra. Norėdami iš naujo nuskaityti žurnalų aplanką <nobr><b>%1</b></nobr>, spauskite <b>Atnaujinti</b>.</p> + &Find + &Ieškoti - Save VirtualBox Log As - VirtualBox žurnalą įrašyti kaip + &Refresh + &Atnaujinti - &Find - &Ieškoti + &Save + Į&rašyti Close diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Frontends/VirtualBox/nls/VirtualBox_nl.ts virtualbox-4.1.44-dfsg/src/VBox/Frontends/VirtualBox/nls/VirtualBox_nl.ts --- virtualbox-4.1.12-dfsg/src/VBox/Frontends/VirtualBox/nls/VirtualBox_nl.ts 2012-04-02 13:28:40.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Frontends/VirtualBox/nls/VirtualBox_nl.ts 2015-11-11 15:08:28.000000000 +0000 @@ -1,6 +1,6 @@ - + @@@ @@ -11,37 +11,23 @@ -- Native language country name (empty if this language is for all countries) - + Nederland English Language name, in English - Nederlands + Dutch -- Language country name, in English (empty if native country name is empty) - + The Netherlands Oracle Corporation Comma-separated list of translators - Ebel Geertsema, Alexander L. de Goeij - - - - AttachmentsModel - - Double-click to add a new attachment - Dubbelklik om een nieuwe bijlage toe te voegen - - - Hard Disk - Harde schijf - - - Slot - Slot + EG - AdG - RL + Ebel Geertsema, Alexander L. de Goeij, Richard E. van der Luit @@ -52,11 +38,11 @@ Incompatible Qt Library Error - Qt-Bibliothek niet te combineren + Qt-Bibliotheek Incompatibiliteitsfout VirtualBox - Error In %1 - VirtualBox - fout in %1 + VirtualBox - Fout in %1 <html><b>%1 (rc=%2)</b><br/><br/> @@ -64,19 +50,11 @@ Please try reinstalling VirtualBox. - VirtualBox opnieuw installeren kan helpen. - - - This error means that the kernel driver was either not able to allocate enough memory or that some mapping operation failed.<br/><br/>There are known problems with Linux 2.6.29. If you are running such a kernel, please edit /usr/src/vboxdrv-*/Makefile and enable <i>VBOX_USE_INSERT_PAGE = 1</i>. After that, re-compile the kernel module by executing<br/><br/> <font color=blue>'/etc/init.d/vboxdrv setup'</font><br/><br/>as root. - Deze fout betekend dat de kernel stuurprogramma niet genoeg geheugen kan reserveren of dat een Mapping-Operatie mislukte.<br/><br/>Het is bekend dat Linux 2.6.29 een aantal problemen heef. Gebruikt u deze kernel, pas dan /usr/src/vboxdrv-*/Makefile aan en activeer <i>VBOX_USE_INSERT_PAGE = 1</i>. Hercompileer hierna de kernel module door<br/><br/> <font color=blue>'/etc/init.d/vboxdrv setup'</font><br/><br/> als root uit te voeren. - - - The VirtualBox Linux kernel driver (vboxdrv) is either not loaded or there is a permission problem with /dev/vboxdrv. Please reinstall the kernel module by executing<br/><br/> <font color=blue>'/etc/init.d/vboxdrv setup'</font><br/><br/>as root. Users of Ubuntu, Fedora or Mandriva should install the DKMS package first. This package keeps track of Linux kernel changes and recompiles the vboxdrv kernel module if necessary. - De VirtualBox Linux kernel stuurprogramma (vboxdrv) is of niet geladen of er is een probleem met de toegangsrechten van /dev/vboxdrv.Zet de kernel module opnieuw op door<br/><br/><font color=blue>'/etc/init.d/vboxdrv setup'</font><br/><br/> uit te voeren als Root. Gebruikers van Ubuntu, Fedora of Mandriva moeten het DKMS pakket als eerste installeren. Dit pakket houd de aanpassingen aan de Linux kernel bij en hercompileert de vboxdrv kernel module zo nodig. + Probeer VirtualBox opnieuw te installeren. Make sure the kernel module has been loaded successfully. - Controleer of de kernel module daadwerkelijk succesvol is geladen. + Controleer of de kernelmodule daadwerkelijk met succes is geladen. VirtualBox - Runtime Error @@ -84,31 +62,31 @@ <b>Cannot access the kernel driver!</b><br/><br/> - <b>Kan de kernel stuurprogramma niet benaderen!</b><br/><br/> + <b>Kan het kernelstuurprogramma niet benaderen!</b><br/><br/> Unknown error %2 during initialization of the Runtime - Onbekende fout %2 tijdens de initialiseren voor het uitvoeren + Onbekende fout %2 tijdens het initialiseren van de Runtime Kernel driver not accessible - Kernel stuurprogramma niet toegankelijk + Kernelstuurprogramma niet toegankelijk The VirtualBox kernel modules do not match this version of VirtualBox. The installation of VirtualBox was apparently not successful. Please try completely uninstalling and reinstalling VirtualBox. - De VirtualBox kernel modules passen niet bij deze versie van VirtualBox. De installatie van VirtualBox is klaarblijkelijk niet een succes. Het kan helpen om de installatie volledig ongedaan te maken en VirtualBox opnieuw te installeren. + De VirtualBox kernelmodules passen niet bij deze versie van VirtualBox. De installatie van VirtualBox is kennelijk niet goed gelukt. Deïnstalleer VirtualBox eerst volledig en installeer VirtualBox daarna opnieuw. The VirtualBox kernel modules do not match this version of VirtualBox. The installation of VirtualBox was apparently not successful. Executing<br/><br/> <font color=blue>'/etc/init.d/vboxdrv setup'</font><br/><br/>may correct this. Make sure that you do not mix the OSE version and the PUEL version of VirtualBox. - De VirtualBox kernel modules passen niet bij deze versie van VirtualBox. De installatie van VirtualBox is klaarblijkelijk niet een succes. Voer <br/><br/><font color=blue>'/etc/init.d/vboxdrv setup'</font><br/><br/> uit, dit moet het probleem verhelpen. Controleer of u de OSE versie en de PUEL versie niet hebt verwisseld. + De VirtualBox kernelmodules passen niet bij deze versie van VirtualBox. De installatie van VirtualBox is kennelijk niet goed gelukt. Uitvoeren van <br/><br/><font color=blue>'/etc/init.d/vboxdrv setup'</font><br/><br/> zou dit kunnen corrigeren. Controleer of u de OSE versie en de PUEL versie van VirtualBox niet hebt vermengd. This error means that the kernel driver was either not able to allocate enough memory or that some mapping operation failed. - Deze fout betekent dat de kernel driver of teweinig geheugen kan reserveren of dat een koppeling mislukt is. + Deze fout betekent dat de kerneldriver of te weinig geheugen kan reserveren of dat uitvoeren van mapping mislukt is. The VirtualBox Linux kernel driver (vboxdrv) is either not loaded or there is a permission problem with /dev/vboxdrv. Please reinstall the kernel module by executing<br/><br/> <font color=blue>'/etc/init.d/vboxdrv setup'</font><br/><br/>as root. If it is available in your distribution, you should install the DKMS package first. This package keeps track of Linux kernel changes and recompiles the vboxdrv kernel module if necessary. - + De VirtualBox Linux-kerneldriver (vboxdrv) is niet geladen of er is een permissie-probleem met /dev/vboxdrv. Herinstalleer de kernelmodule door <br/></br>..<font color=blue>'/etc/init.d/vboxdrv setup' </font><br/><br/>als root uit te voeren. Indien in uw distributie aanwezig, installeer dan eerst het DKMS pakket. Dit pakket houdt Linux kernelveranderingen bij en hercompileert indien nodig de vboxdrv-kernelmodule. @@ -126,7 +104,7 @@ QIFileDialog Select a directory - Selecteer een directorie + Selecteer een map Select a file @@ -134,13 +112,6 @@ - QIHelpButton - - &Help - &Help - - - QIHttp Connection timed out @@ -159,13 +130,6 @@ - QILabelPrivate - - &Copy - &Kopiëren - - - QIMessageBox OK @@ -197,11 +161,11 @@ Copy all errors to the clipboard - + Kopieer alle fouten naar het klembord Copy - + Kopieer @@ -209,12 +173,12 @@ not complete value state - Niet compleet + niet compleet invalid value state - Ongeldig + ongeldig <qt>The value of the <b>%1</b> field on the <b>%2</b> page is %3.</qt> @@ -222,14 +186,14 @@ <qt>One of the values on the <b>%1</b> page is %2.</qt> - <qt>Een van de waarden op pagina<b>%1</b> is %2.</qt> + <qt>Eén van de waarden op pagina<b>%1</b> is %2.</qt> QIWizardPage Use the <b>%1</b> button to go to the next page of the wizard and the <b>%2</b> button to return to the previous page. You can also press <b>%3</b> if you want to cancel the execution of this wizard.</p> - Gebruik de <b>%1</b> knop om naar de volgende pagina van de assistent te gaan en de<b>%2</b> knop om terug te keren naar de vorige. U kunt ook op <b>%3</b> drukken als u de deze assistent wilt stoppen.</p> + Gebruik de <b>%1</b> knop om naar de volgende pagina van de assistent te gaan en de <b>%2</b> knop om terug te keren naar de vorige. U kunt ook op <b>%3</b> klikken als u deze assistent wilt stoppen.</p> @@ -239,52 +203,25 @@ &Machine - &Fullscreen Mode - Modus &Schermvullend - - - Switch to fullscreen mode - Schakel over op de modus schermvullend - - - Seam&less Mode - Modus naad&loos - - - Switch to seamless desktop integration mode - Schakel over op de naadloze bureaublad integratie modus (Het venster van de gast wordt naadloos in het bureablad van de gastheer geïntegreerd) - - - Auto-resize &Guest Display - Grote van het &gast scherm automatisch aanpassen - - Automatically resize the guest display when the window is resized (requires Guest Additions) - Pas de grote van het gast scherm automatisch aan wanneer het venster van grote veranderd (vereist de gast uitbreiding) + Guest Additions als naam laten staan + Pas de grootte van het gastscherm automatisch aan wanneer het venster van grootte veranderd (vereist Guest Additions) &Adjust Window Size - Venstergrote &aanpassen + Venstergrootte &aanpassen Adjust window size and position to best fit the guest display - Pas de venstergrote aan en plaats het gast scherm op de beste plek + Pas de venstergrootte aan en plaats het gastscherm op de meest geschikte plek Disable &Mouse Integration - &Muis integratie deactiveren + &Muis-integratie uitschakelen Temporarily disable host mouse pointer integration - Tijdelijk de integratie van de muis met de host deactiveren - - - Enable &Mouse Integration - &Muis integratie activeren - - - Enable temporarily disabled host mouse pointer integration - Activeer de tijdelijk uitgeschakede muis integratie + Tijdelijk de integratie van muis met host uitschakelen &Insert Ctrl-Alt-Del @@ -308,15 +245,11 @@ Take a snapshot of the virtual machine - Maak een momentopname van de virtuelen Machine - - - Session I&nformation Dialog - Sessie i&nformatie dialoog + Maak een momentopname van de virtuele machine Show Session Information Dialog - Geef de sessie informatie dialoog weer + Toon Sessie-informatiedialoog &Pause @@ -324,31 +257,23 @@ Suspend the execution of the virtual machine - - - - R&esume - &Hervatten + Onderbreek tijdelijk de uitvoering van de virtuele machine &Reset - &Opnieuw instellen + &Resetten Reset the virtual machine - Stel de virtuele machine opnieuw in + De virtuele machine resetten ACPI Sh&utdown &Uitzetten via ACPI - ACPI S&hutdown - &Uitzetten via ACPI - - Send the ACPI Power Button press event to the virtual machine - Stuur het ACPI startknop gebeurtenis naar de virtuele machine + Stuur ACPI startknop-indrukken gebeurtenis naar de virtuele machine &Close... @@ -380,11 +305,11 @@ &Network Adapters... - &Netwerk adapters... + &Netwerkadapters... Change the settings of network adapters - Pas de instellingen van de netwerk adapters aan + Instellingen van netwerkadapters aanpassen &Shared Folders... @@ -392,23 +317,16 @@ Create or modify shared folders - Open de dialoog om met de gedeelde mappen te bewerken - - - &Remote Display - &Beeldscherm op afstand - - - Enable or disable remote desktop (RDP) connections to this machine - Activeren of deactiverenvan het beeldscherm op afstand (remote desktop protocol, RDP) verbindingen naar deze virtuele machine + Aaanmaken of bewerken gedeelde mappen &Install Guest Additions... - &Gast uitbreidingen installeren... + Guest Additions als naam laten staan + &Installeren Guest Additions... Mount the Guest Additions installation image - Koppel de gast uitbreidingen installatie image aan + Koppel Guest Additions installatie-image aan De&bug @@ -425,73 +343,24 @@ &Commandoregel... - &Logging... - debug action - &Loggen... - - &Help - &Help + &Hulp Dock Icon - Dok Iioon + Dock Icoon Show Monitor Preview - Geef monitor voorvertoning weer + Toon Monitor Preview Show Application Icon - Geef applicatie icoon weer - - - Enter &Fullscreen Mode - Begin &schermvullende modus - - - Exit &Fullscreen Mode - &Schermvullende modus verlaten - - - Switch to normal mode - Schakel over naar normale modus - - - Enter Seam&less Mode - Begin naad&lose modus - - - Exit Seam&less Mode - Verlaat naad&lose modus - - - Enable &Guest Display Auto-resize - Activeer automatisch aanpassen &gast scherm - - - Disable &Guest Display Auto-resize - Deactiveer automatisch aanpassen &gast scherm - - - Disable automatic resize of the guest display when the window is resized - De-activeer automatische aanpassing van het gast scherm als het venster veranderd van grote - - - &Enable Remote Display - &Activeer beeldscherm op afstand + Toon applicatie-icoon Enable remote desktop (RDP) connections to this machine - Activeer beeldscherm op afstand (remote desktop protocol, RDP) verbindingen naar deze machine - - - &Disable Remote Display - &Deactiveer beeldscherm op afstand - - - Disable remote desktop (RDP) connections to this machine - Deactiveer beeldscherm op afstand (remote desktop protocol, RDP) verbindingen naar deze machine + Sta Beeldscherm-op-Afstand (remote desktop protocol, RDP) verbindingen naar deze machine toe Enable &Logging... @@ -499,13 +368,8 @@ Activeer &loggen... - Disable &Logging... - debug action - Deactiveer &loggen... - - Switch to &Fullscreen - Schakel over op de &schermvullend + Schakel over op &schermvullend Switch between normal and fullscreen mode @@ -513,11 +377,11 @@ Switch to Seam&less Mode - Schakel over naar naad&lose modus + Schakel over naar naad&loze modus Switch between normal and seamless desktop integration mode - Schakel tussen normale en naadloze modus + Schakel tussen normale en naadloze modus (scherm van gast wordt naadloos in hostbureaublad geïntegreerd) Switch to &Scale Mode @@ -525,27 +389,27 @@ Switch between normal and scale mode - Schakel tussen normale en Schaal modus + Schakel tussen normale en schaal modus - Session I&nformation - Sessie i&nformatie + Auto-resize &Guest Display + Autoschalen &Gastscherm Enable R&emote Display - Activeer b&eeldscherm op afstand + B&eeldscherm op Afstand inschakelen &Settings... - In&stellingen... + In&stellingen... Manage the virtual machine settings - + Beheer instellingen virtuele machine Session I&nformation... - + Sessie I&nformatie... @@ -560,11 +424,11 @@ Product - Produkt + Product Product-URL - Produkt-URL + Product-URL Vendor @@ -580,7 +444,7 @@ Description - Omschrijving + Beschrijving License @@ -588,7 +452,7 @@ Guest OS Type - OS soort gast + Gast OS-type CPU @@ -620,7 +484,7 @@ Network Adapter - Netzwerk adapter + Netwerkadapter USB Controller @@ -632,20 +496,16 @@ Virtual Disk Image - het woord 'Disk image' is lastig, suggesties: schijf afbeelding, ... - Virtuele schijf + EG - het woord 'Disk image' is lastig, suggesties: schijf afbeelding, ..RL - Ik zou gewoon image laten staan, als begrip + Virtueel schijf-image Unknown Hardware Item - Onbekende hardware - - - MB - MB + Onbekende Hardware <b>Original Value:</b> %1 - <b>Oospronkelijke waarde:</b> %1 + <b>Oorspronkelijke waarde:</b> %1 Configuration @@ -656,144 +516,136 @@ Waarschuwingen: - MB - size suffix MBytes=1024 KBytes - MB - - - MB - size suffix MBytes=1024KBytes - MB - - Hard Disk Controller (SAS) Harde schijf controller (SAS) When checked a new unique MAC address will assigned to all configured network cards. - + Wanneer aangevinkt zal een nieuw, uniek MAC-adres worden toegewezen aan alle geconfigureerde netwerkkaarten. &Reinitialize the MAC address of all network cards - + He&rinitialiseren MAC-adres van alle netwerkkaarten UIApplianceImportEditorWidget Importing Appliance ... - Hulpmiddel importeren ... + EG - RL - Appliance laat zich niet goed vertalen, voorlopig maar als begrip onvertaald laten...suggesties? In Duits ook Appliance + Appliance importeren ... Reading Appliance ... - Hulpmiddel lezen ... + Appliance lezen ... UICloneVMWizard Clone a virtual machine - + Kloon een virtuele machine Clone - + Kloon Linked Base for %1 and %2 - + Gekoppelde Basis voor %1 en %2 UICloneVMWizardPage1 <p>This wizard will help you to create a clone of your virtual machine.</p> - + <p>Deze assistent zal u helpen een kloon te maken van uw virtuele machine </p> <p>Please choose a name for the new virtual machine:</p> - - - - &Reinitialize the MAC address of all network cards - + <p>Kies een naam voor de nieuwe virtuele machine:</p> Welcome to the virtual machine clone wizard - + Aanmaken virtuele machine kloon %1 Clone - + %1 Kloon + + + &Reinitialize the MAC address of all network cards + He&rinitialiseer het MAC-adres van alle netwerkkaarten When checked a new unique MAC address will be assigned to all configured network cards. - + Aangevinkt zal een nieuw, uniek MAC-adres worden toegewezen aan alle geconfigureerde netwerkkaarten. UICloneVMWizardPage2 Cloning Configuration - + Configuratie Klonen Full Clone - + Zelfstandige Kloon Linked Clone - + Gekoppelde Kloon <p>Please select the type of the clone.</p><p>If you choose <b>Full Clone</b> an exact copy (including all virtual disk images) of the original VM will be created. If you select <b>Linked Clone</b>, a new VM will be created, but the virtual disk images will point to the virtual disk images of original VM.</p> - + <p>Selecteer het type kloon.</p><p>Indien u <b>zelfstandige kloon</b> kiest, zal er een exacte kopie (inclusief alle virtuele schijf-images) van de originele VM worden aangemaakt. Indien u kiest voor <b>gekoppelde kloon</b> zal er een nieuwe VM worden aangemaakt, maar de virtuele schijf-images zullen wijzen naar de virtuele schijf-images van de originele virtuele machine.</p> <p>Note that a new snapshot within the source VM is created in case you select <b>Linked Clone</b>.</p> - + <p>Realiseer dat een nieuwe momentopname van de bron-VM zal worden aangemaakt wanneer u kiest voor <b>gekoppelde kloon</b>.</p> UICloneVMWizardPage3 Current machine state - + Huidige staat machine Current machine and all child states - + Huidige staat machine en van alle kinderen All states - + Alle Staten Cloning Configuration - + Configuratie Klonen Please choose which parts of the virtual machine should be cloned. - + Kies welke delen van de virtuele machine moeten worden gekloond. If you select <b>Current machine state</b>, only the current state of the virtual machine is cloned. - + Indien u kiest voor <b>huidige staat machine</b> zal alleen de huidige staat van de virtuele machine worden gekloond. If you select <b>Current machine and all child states</b> the current state of the virtual machine and any states of child snapshots are cloned. - + Indien u kiest voor <b>huidige staat machine en van alle kinderen</b> zullen de huidige staat van de virtuele machine en elke staat van kind-momentopnamen worden gekloond. If you select <b>All states</b>, the current machine state and all snapshots are cloned. - + 'virtuele' ontbreekt in bron, maar consequent zijn is mooier + Indien u kiest voor <b>alle staten</b> zullen de huidige staat van de virtuele machine en alle momentopnamen worden gekloond. UIDescriptionPagePrivate No description. Press the Edit button below to add it. - Geen beschrijving. Druk hieronder op de knop wijzigen om een beschrijving toe te voegen. + Geen beschrijving. Druk hieronder op de knop Wijzigen om een beschrijving toe te voegen. Edit @@ -814,12 +666,12 @@ OS Type details report - Soort besturingssystem + Type besturingssysteem Base Memory details report - Geheugen + Basisgeheugen <nobr>%1 MB</nobr> @@ -829,7 +681,7 @@ Processors details report - + Processoren <nobr>%1</nobr> @@ -839,7 +691,7 @@ Boot Order details report - Opstart volgorde + Opstartvolgorde ACPI @@ -854,7 +706,7 @@ BIOS details report - + BIOS VT-x/AMD-V @@ -864,7 +716,7 @@ Nested Paging details report - Geneste Paginering + Geneste Paging PAE/NX @@ -879,12 +731,12 @@ Video Memory details report - Video geheugen + Videogeheugen Screens details report - Schermen + Beeldschermen 2D Video @@ -897,21 +749,6 @@ 3D - Remote Desktop Server Port - details report (VRDE Server) - Server poort voor het werkplek op afstand - - - Remote Desktop Server - details report (VRDE Server) - Server voor werkplek op afstand - - - Disabled - details report (VRDE Server) - Gedeactiveerd - - (CD/DVD) (CD/DVD) @@ -933,12 +770,12 @@ Disabled details report (audio) - Gedeactiveerd + Uitgeschakeld Bridged adapter, %1 details report (network) - Netwerk bridge adapter, %1 + Bridged adapter, %1 Internal network, '%1' @@ -951,11 +788,6 @@ Host-only adapter, '%1' - VDE network, '%1' - details report (network) - VDE netwerk, '%1' - - Adapter %1 details report (network) Adapter %1 @@ -963,7 +795,7 @@ Disabled details report (network) - Gedeactiveerd + Uitgeschakeld Port %1 @@ -973,7 +805,7 @@ Disabled details report (serial ports) - Gedeactiveerd + Uitgeschakeld Port %1 @@ -983,12 +815,12 @@ Disabled details report (parallel ports) - Gedeactiveerd + Uitgeschakeld Device Filters details report (USB) - Apparaat filters + Apparaatfilters %1 (%2 active) @@ -998,7 +830,7 @@ Disabled details report (USB) - Gedeactiveerd + Uitgeschakeld Shared Folders @@ -1017,7 +849,7 @@ The selected virtual machine is <i>inaccessible</i>. Please inspect the error message shown below and press the <b>Refresh</b> button if you want to repeat the accessibility check: - De geselecteerde virtuele machine is <i>niet te benaderen</i>. Onderzoek de foutboodschap hieronder en druk op de knop <b>verversen</b> als u de toegangscontrole wilt herhalen: + De geselecteerde virtuele machine is <i>niet te benaderen</i>. Onderzoek de foutboodschap hieronder en druk op de knop <b>Verversen</b> als u de benaderingscontrole wilt herhalen: General @@ -1032,7 +864,8 @@ Preview details report - Voorvertoning + preview is algemeen ingeburgerde term + Preview Display @@ -1077,68 +910,56 @@ Description details report - Omschrijving + Beschrijving + + + Remote Desktop Server Port + details report (VRDE Server) + Remote Desktop Server Poort + + + Remote Desktop Server + details report (VRDE Server) + Remote Desktop Server + + + Disabled + details report (VRDE Server) + Uitgeschakeld Execution Cap details report - + CPU-Begrenzing <nobr>%1%</nobr> details report - + <nobr>%1%</nobr> Generic driver, '%1' details report (network) - + Generiek Stuurprogramma, '%1' Generic driver, '%1' {&nbsp;%2&nbsp;} details report (network) - - - - - UIDownloader - - The download process has been cancelled by the user. - Het download proces is gestopt door de gebruiker. - - - The download process has been canceled by the user. - Het download proces is geannuleerd door de gebruiker. + Generiek Stuurprogramma, '%1' {&nbsp;%2&nbsp;} UIDownloaderAdditions - Cancel - Annuleren - - - Downloading the VirtualBox Guest Additions CD image from <nobr><b>%1</b>...</nobr> - Download de virtuele CD, met de VirtualBox gast uitbreidingen bij <nobr><b>%1</b>...</nobr> - - - Cancel the VirtualBox Guest Additions CD image download - Annuleer de download van de virtuele CD, met de VirtualBox gast uitbreidingen - - - <p>Failed to save the downloaded file as <nobr><b>%1</b>.</nobr></p> - <p>Het is niet gelukt het gedownloade bestand als <nobr><b>%1</b> op te slaan.</nobr></p> - - Select folder to save Guest Additions image to - selecteer een map om de gast uitbreidingsCD op te slaan + Selecteer een map om de Guest Additions in op te slaan UIDownloaderExtensionPack Select folder to save %1 to - + Selecteer map om %1 in op te slaan @@ -1151,166 +972,38 @@ UIExportApplianceWzd - Select a file to export into - Selecteer een bestand om naar te exporteren - - - Open Virtualization Format (%1) - Open Virtualisatie Formaat (%1) - - - Appliance - Appliance - - - Exporting Appliance ... - Appliance wordt geëxporteerd... - - Appliance Export Wizard - Assistent voor het exporteren van een appliance - - - Welcome to the Appliance Export Wizard! - Welkom bij de assistent voor het exporteren van Appliances! - - - < &Back - < &Terug - - - &Next > - &Volgende > - - - Cancel - Annuleren - - - Appliance Export Settings - Export instellingen voor Appliance - - - &Export > - &Exporteren > - - - <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> -<html><head><meta name="qrichtext" content="1" /><style type="text/css"> -p, li { white-space: pre-wrap; } -</style></head><body> -<p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">This wizard will guide you through the process of exporting an appliance. </p> -<p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Use the <span style=" font-weight:600;">Next</span> button to go the next page of the wizard and the <span style=" font-weight:600;">Back</span> button to return to the previous page.</p> -<p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Please select the virtual machines that you wish to the appliance. You can select more than one. Please note that these machines have to be turned off before they can be exported.</p></body></html> - <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> -<html><head><meta name="qrichtext" content="1" /><style type="text/css"> -p, li { white-space: pre-wrap; } -</style></head><body> -<p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Deze assistent helpt bij het exporteren van een Appliance. </p> -<p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Gebruik de knop <span style=" font-weight:600;">Volgende</span>, om naar de volgende pagina van de assistent te gaan en de knop <span style=" font-weight:600;">Terug</span>, om terug te keren naar de vorige pagina.</p> -<p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Selecteer de virtuele machine die geëxpoteerd moet worden naar een Appliance.U kunt meerde virtuele systemen selecteren. Let op deze machines moet uit staan voordat ze geëxporteerd kunnen worden.</p></body></html> - - - Here you can change additional configuration values of the selected virtual machines. You can modify most of the properties shown by double-clicking on the items. - Hier kunt u aanvullende instellingen, van de geselecteerde virtuele machines, aanpassen. U kunt merendeel van de weergegeven eigenschappen aanpassen door daarop te dubbelklikken. + Appliance Exportassistent Restore Defaults Standaard instellingen terugzetten - Write in legacy OVF 0.9 format for compatibility with other virtualization products. - Wegschrijven in het oudere OVF 0.9 formaat om compatibel te blijven met andere virtualisatie producten. - - - &Write legacy OVF 0.9 - &Schrijf weg in OVF 0.9 - - - Please choose a filename to export the OVF to. - Kies een bestandsnaam voor de export van OVF. - - - Please complete the additional fields like the username, password and the bucket, and provide a filename for the OVF target. - Vul de aanvullende velden, zoals gebruikersnaam, wachtwoord en de emmer, in. Ten slotte moet u een bestandsnaam opgeven voor de OVF bestemming. - - - Please complete the additional fields like the username, password, hostname and the bucket, and provide a filename for the OVF target. - Vul de aanvullende velden, zoals gebruikersnaam, wachtwoord, hostnaam en de emmer, in. Ten slotte moet u een bestandsnaam opgeven voor de OVF bestemming. - - - Checking files ... - Bestanden controleren ... - - - Removing files ... - Bestanden verwijderen ... - - - Please specify the target for the OVF export. You can choose between a local file system export, uploading the OVF to the Sun Cloud service or an S3 storage server. - Geef een bestemming op voor de OVF export. U kunt kiezen tussen een lokaal bestandssysteem, het uploaden van de OVF naar de Sun Cloud server of een S3 opslagserver. - - - &Local Filesystem - &Lokaal bestandssysteem - - - Sun &Cloud - Sun &Cloud - - - &Simple Storage System (S3) - &Eenvoudig opslag systeem (S3) - - - &Username: - &Gebruikersnaam: - - - &Password: - &Wachtwoord: - - - &File: - &Bestand: - - - &Bucket: - &Emmer: - - - &Hostname: - &Hostnaam: - - Export - + Exporteren UIExportApplianceWzdPage1 Welcome to the Appliance Export Wizard! - Welkom bij de assistent voor het exporteren van Appliances! + Appliance exporteren <p>This wizard will guide you through the process of exporting an appliance.</p><p>%1</p><p>Please select the virtual machines that should be added to the appliance. You can select more than one. Please note that these machines have to be turned off before they can be exported.</p> - <p>Deze assistent help u bij het exporteren van een appliance.</p><p>%1</p><p>Selecteer aub de virtuale machines die toegevoegd zullen worden aan de appliance. U kun meer dan één selecteren. Let op deze machines moeten uit staan voordat deze geexporteerd kunnen worden.</p> + <p>Deze assistent help u bij het exporteren van een appliance.</p><p>%1</p><p>Selecteer de virtuele machines die toegevoegd moeten worden aan de appliance. U kunt er meer dan één selecteren. Let wel op: de machines moeten uit staan voordat deze geëxporteerd kunnen worden.</p> UIExportApplianceWzdPage2 - Here you can change additional configuration values of the selected virtual machines. You can modify most of the properties shown by double-clicking on the items. - Hier kunt u aanvullende instellingen, van de geselecteerde virtuele machines, aanpassen. U kunt merendeel van de weergegeven eigenschappen aanpassen door daarop te dubbelklikken. - - Appliance Export Settings - Export instellingen voor Appliance + Exportinstellingen voor Appliance Please specify the target for the OVF export. You can choose between a local file system export, uploading the OVF to the Sun Cloud service or an S3 storage server. - Geef een bestemming op voor de OVF export. U kunt kiezen tussen een lokaal bestandssysteem, het uploaden van de OVF naar de Sun Cloud server of een S3 opslagserver. + Geef een bestemming op voor de OVF-export. U kunt kiezen tussen een lokaal bestandssysteem, het uploaden van de OVF naar de Sun Cloud server of een S3 opslagserver. &Local Filesystem @@ -1322,30 +1015,14 @@ &Simple Storage System (S3) - &Eenvoudig opslag systeem (S3) + &Simple Storage System (S3) UIExportApplianceWzdPage3 - Please specify the target for the OVF export. You can choose between a local file system export, uploading the OVF to the Sun Cloud service or an S3 storage server. - Geef een bestemming op voor de OVF export. U kunt kiezen tussen een lokaal bestandssysteem, het uploaden van de OVF naar de Sun Cloud server of een S3 opslagserver. - - - &Local Filesystem - &Lokaal bestandssysteem - - - Sun &Cloud - Sun &Cloud - - - &Simple Storage System (S3) - &Eenvoudig opslag systeem (S3) - - Appliance Export Settings - Export instellingen voor Appliance + Exportinstellingen voor Appliance &Username: @@ -1361,7 +1038,7 @@ &Bucket: - &Emmer: + &Bucket: &File: @@ -1369,7 +1046,7 @@ Write in legacy OVF 0.9 format for compatibility with other virtualization products. - Wegschrijven in het oudere OVF 0.9 formaat om compatibel te blijven met andere virtualisatie producten. + Wegschrijven in het oudere OVF 0.9 formaat om compatibel te blijven met andere virtualisatieproducten. &Write legacy OVF 0.9 @@ -1377,7 +1054,7 @@ Create a Manifest file for automatic data integrity checks on import. - Maak een manifestbestand aan voor automatische integriteitscontroles bij import. + Maak een manifestbestand aan ten behoeve van automatische integriteitscontroles bij import. Write &Manifest file @@ -1401,82 +1078,30 @@ Please choose a filename to export the OVF/OVA to. If you use an <i>ova</i> file name extension, then all the files will be combined into one Open Virtualization Format Archive. If you use an <i>ovf</i> extension, several files will be written separately. Other extensions are not allowed. - Kies een bestandsnaam voor de export van de OVF/OVA. Gebruikt u een <i>ova</i> bestands extentie, dan worden alle bestanden tot één Open Virtualizatie Archief Formaat gecombineerd. Gebruikt u een <i>ovf</i> extentie, dan worden verschillende bestanden afzonderlijk weggeschreven. Andere extensies zijn niet tegestaan. + Kies een bestandsnaam voor de export van de OVF/OVA. Gebruikt u een <i>ova</i>-bestandsextentie, dan worden alle bestanden tot één Open Virtualizatie Archief Formaat gecombineerd. Gebruikt u een <i>ovf</i>-extentie, dan worden verschillende bestanden afzonderlijk weggeschreven. Andere extensies zijn niet tegestaan. Please complete the additional fields like the username, password and the bucket, and provide a filename for the OVF target. - Vul de aanvullende velden, zoals gebruikersnaam, wachtwoord en de emmer, in. Ten slotte moet u een bestandsnaam opgeven voor de OVF bestemming. + Vul aanvullende velden zoals gebruikersnaam, wachtwoord en bucket in. Geef vervolgens een bestandsnaam op voor het OVF doelbestand. Please complete the additional fields like the username, password, hostname and the bucket, and provide a filename for the OVF target. - Vul de aanvullende velden, zoals gebruikersnaam, wachtwoord, hostnaam en de emmer, in. Ten slotte moet u een bestandsnaam opgeven voor de OVF bestemming. + Vul de aanvullende velden zoals gebruikersnaam, wachtwoord, hostnaam en bucket in. Geef vervolgens een bestandsnaam op voor het OVF doelbestand. UIExportApplianceWzdPage4 - &Username: - &Gebruikersnaam: + Appliance Export Settings + Appliance Exportinstellingen - &Password: - &Wachtwoord: + Checking files ... + Bestanden controleren ... - &Hostname: - &Hostnaam: - - - &Bucket: - &Emmer: - - - &File: - &Bestand: - - - Write in legacy OVF 0.9 format for compatibility with other virtualization products. - Wegschrijven in het oudere OVF 0.9 formaat om compatibel te blijven met andere virtualisatie producten. - - - &Write legacy OVF 0.9 - &Schrijf weg in OVF 0.9 - - - Appliance Export Settings - Export instellingen voor Appliance - - - Appliance - Appliance - - - Select a file to export into - Selecteer een bestand om naar te exporteren - - - Open Virtualization Format (%1) - Open Virtualisatie Formaat (%1) - - - Please choose a filename to export the OVF to. - Kies een bestandsnaam voor de export van OVF. - - - Please complete the additional fields like the username, password and the bucket, and provide a filename for the OVF target. - Vul de aanvullende velden, zoals gebruikersnaam, wachtwoord en de emmer, in. Ten slotte moet u een bestandsnaam opgeven voor de OVF bestemming. - - - Please complete the additional fields like the username, password, hostname and the bucket, and provide a filename for the OVF target. - Vul de aanvullende velden, zoals gebruikersnaam, wachtwoord, hostnaam en de emmer, in. Ten slotte moet u een bestandsnaam opgeven voor de OVF bestemming. - - - Checking files ... - Bestanden controleren ... - - - Removing files ... - Bestanden verwijderen ... + Removing files ... + Bestanden verwijderen ... Exporting Appliance ... @@ -1484,224 +1109,96 @@ Here you can change additional configuration values of the selected virtual machines. You can modify most of the properties shown by double-clicking on the items. - Hier kunt u aanvullende instellingen, van de geselecteerde virtuele machines, aanpassen. U kunt merendeel van de weergegeven eigenschappen aanpassen door daarop te dubbelklikken. + Hier kunt u aanvullende instellingen van de geselecteerde virtuele machines aanpassen. U kunt het merendeel van de weergegeven eigenschappen aanpassen door op het item te dubbelklikken. UIFirstRunWzd First Run Wizard - Start eerst de assistent - - - <p>You have started a newly created virtual machine for the first time. This wizard will help you to perform the steps necessary for installing an operating system of your choice onto this virtual machine.</p><p>Use the <b>Next</b> button to go to the next page of the wizard and the <b>Back</b> button to return to the previous page. You can also press <b>Cancel</b> if you want to cancel the execution of this wizard.</p> - <p>U heeft een nieuw aangemaakte virtuele machine voor de eerste keer opgestart. Deze assistent zal u helpen met de stappen die noodzakelijk zijn voor het installeren van het besturingssysteem van uw keuze, op deze virtuele machine.</p><p>Gebruik de knop <b>Volgende</b> om naar de volgende pagina van de assistent te gaan en de knop <b>Terug</b> om terug te keren naar de vorige pagina. U kunt ook op <b>Annuleren</b> klikken om de assistent direct te stoppen.</p> - - - Welcome to the First Run Wizard! - Welkom bij de startassistent! - - - <p>Select the type of media you would like to use for installation.</p> - <p>Selecteer, hieronder, het type media die u wilt gebruiken voor de installatie.</p> - - - Media Type - Media Type - - - &CD/DVD-ROM Device - &CD/DVD-Rom station - - - &Floppy Device - &Diskette station - - - <p>Select the media which contains the setup program of the operating system you want to install. This media must be bootable, otherwise the setup program will not be able to start.</p> - <p>Selecteer de media die het setup programma bevat met het besturingssysteem die u wilt installeren. Dit moet een opstartbaar medium zijn, anders kan het setup programma niet opstarten.</p> - - - Media Source - Media bron - - - &Host Drive - &Gastheer station - - - &Image File - &Image bestand - - - Select Installation Media - Selecteer installatie media - - - <p>You have selected the following media to boot from:</p> - <p>U heeft de volgende media, om op te starten, geselecteerd:</p> - - - Summary - Samenvatting - - - CD/DVD-ROM Device - CD/DVD-Rom station - - - Floppy Device - Diskette station - - - Host Drive %1 - Gastheer station %1 - - - <p>You have started a newly created virtual machine for the first time. This wizard will help you to perform the steps necessary for booting an operating system of your choice on the virtual machine.</p><p>Note that you will not be able to install an operating system into this virtual machine right now because you did not attach any hard disk to it. If this is not what you want, you can cancel the execution of this wizard, select <b>Settings</b> from the <b>Machine</b> menu of the main VirtualBox window to access the settings dialog of this machine and change the hard disk configuration.</p><p>Use the <b>Next</b> button to go to the next page of the wizard and the <b>Back</b> button to return to the previous page. You can also press <b>Cancel</b> if you want to cancel the execution of this wizard.</p> - <p>U heeft een nieuw aangemaakte virtuele machine voor de eerste keer opgestart. Deze assistent zal u helpen met de stappen die noodzakelijk zijn voor het opstarten van een besturingssysteem van uw keuze, op deze virtuele machine.</p><p>Let op: U kunt op dit moment geen besturingssysteem installeren op deze virtuele machine omdat u hieraan (nog) geen harde schijf hebt gekoppeld. Is dit niet wat u wilt dan kunt u de assistent annuleren. Selecteer <b>Instellingen</b> uit het <b>machine</b> menu in het hoofd venster van VirtualBox om naar de instellingen dialoog te gaan en configuratie van de harde schijf aan te passen.</p><p>Gebruik de knop <b>Volgende</b> om naar de volgende pagina van de assistent te gaan en de knop <b>Terug</b> om terug te keren naar de vorige pagina. U kunt ook op <b>Annuleren</b> klikken om de assistent direct te stoppen.</p> - - - <p>Select the type of media you would like to use for booting an operating system.</p> - <p>Selecteer het type media die u voor het opstarten van het besturingssysteem wilt gebruiken.</p> - - - <p>Select the media that contains the operating system you want to work with. This media must be bootable, otherwise the operating system will not be able to start.</p> - <p>Selecteer de media die het besturingssysteem bevat waarmee u wilt gaan werken. Deze media moet opstartbaar zijn, anders kan het besturingssysteem niet opstarten.</p> - - - <p>You have selected the following media to boot an operating system from:</p> - <p>U heeft de volgende media geselecteerd om het besturingssysteem te starten:</p> - - - <p>If the above is correct, press the <b>Finish</b> button. Once you press it, the selected media will be mounted on the virtual machine and the machine will start execution.</p> - <p>Is het bovenstaande correct? KLik op de knop <b>Klaar</b>. Zodra u hierop klikt wordt de geselecteerde media gekoppeld aan de virtuele machine en machine zal starten met de uitvoering.</p> - - - < &Back - < &Terug - - - &Next > - &Volgende > - - - <html><head><meta name="qrichtext" content="1" /><style type="text/css"> -p, li { white-space: pre-wrap; } -</style></head><body style=" font-family:'Arial'; font-size:9pt; font-weight:400; font-style:normal;"> -<p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">If the above is correct, press the <span style=" font-weight:600;">Finish</span> button. Once you press it, the selected media will be temporarily mounted on the virtual machine and the machine will start execution.</p> -<p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Please note that when you close the virtual machine, the specified media will be automatically unmounted and the boot device will be set back to the first hard disk.</p> -<p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Depending on the type of the setup program, you may need to manually unmount (eject) the media after the setup program reboots the virtual machine, to prevent the installation process from starting again. You can do this by selecting the corresponding <span style=" font-weight:600;">Unmount...</span> action in the <span style=" font-weight:600;">Devices</span> menu<span style=" font-weight:600;">.</span></p></body></html> - <html><head><meta name="qrichtext" content="1"/><style type="text/css"> -p, li {white-space: pre-wrap; } -</style></head><body style="font-family:'Arial'; font-size:9pt; font-weight:400; font-style:normal;"> -<p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Is het bovenstaande correct? KLik op de knop <span style="font-weight:600;">Klaar</span>. Zodra u hierop klikt wordt de geselecteerde media gekoppeld aan de virtuele machine en machine zal starten met de uitvoering.</p> -<p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Let op: Sluit u de virtuele machine af dan wordt de gespecificeerde media automatisch ontkoppeld en de eerste harde schijf is het nu de opstart schijf.</p> -<p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Afhankelijk van het soort installatie programmma kan het zijn dat u handmatig de media moet ontkoppelen (uitwerpen), nadat het programma de virtuele machine opstart. Dit om te voorkomen dat het installatie proces opnieuw van voren afaan begint. U kunt dit doen door de overeenkomstige <span style=" font-weight:600;">ontkoppel...</span> actie het <span style=" font-weight:600;">Apparaten</span> menu<span style=" font-weight:600;">.</span> te selecteren.</p></body></html> - - - &Finish - &Klaar - - - Type - summary - Type - - - Source - summary - Bron - - - Cancel - Annuleren - - - <p>If the above is correct, press the <b>Finish</b> button. Once you press it, the selected media will be temporarily mounted on the virtual machine and the machine will start execution.</p><p>Please note that when you close the virtual machine, the specified media will be automatically unmounted and the boot device will be set back to the first hard disk.</p><p>Depending on the type of the setup program, you may need to manually unmount (eject) the media after the setup program reboots the virtual machine, to prevent the installation process from starting again. You can do this by selecting the corresponding <b>Unmount...</b> action in the <b>Devices</b> menu.</p> - <p>Is het bovenstaande correct, druk dan op de knop <b>Klaar</b>. Zodra u die indrukt, wordt de geselecteerde media, tijdelijk, gekoppeld aan de virtuele machine en zal uitgevoerd worden.</p><p>Let op, sluit u de virtuele machine, dan wordt de geselecteerde media automatisch ontkoppeld en het opstarten zal vanaf de eerste harde schij plaatsvinden.</p><p>Afhankelijk van het soort setup programma kan het zijn dat u zelf de media moet ontkoppelen (uitwerpen) nadat het setup programma de virtuele machine opnieuw heeft gestart. Om te voorkomen dat het installatie proces opnieuw begint kunt u de overeenkomstige <b>Ontkoppel...</b> actie selecteren in het menu <b>Apparaten</b>.</p> + Startassistent Start - + Start UIFirstRunWzdPage1 Welcome to the First Run Wizard! - Welkom bij de startassistent! + Startassistent <p>You have started a newly created virtual machine for the first time. This wizard will help you to perform the steps necessary for installing an operating system of your choice onto this virtual machine.</p><p>%1</p> - <p>U heeft een nieuw aangemaakte virtuale machine voor de eerste keer gestart. Deze assistent helpt u met noodzakelijke stappen om het besturingssyteem, van uw keuze, op deze virtuale machine te installeren.</p><p>%1</p> + <p>U hebt een nieuw aangemaakte virtuele machine voor de eerste keer opgestart. Deze assistent zal u helpen met de stappen die nodig zijn om het besturingssyteem van uw keuze op deze virtuele machine te installeren.</p><p>%1</p> <p>You have started a newly created virtual machine for the first time. This wizard will help you to perform the steps necessary for booting an operating system of your choice on the virtual machine.</p><p>Note that you will not be able to install an operating system into this virtual machine right now because you did not attach any hard disk to it. If this is not what you want, you can cancel the execution of this wizard, select <b>Settings</b> from the <b>Machine</b> menu of the main VirtualBox window to access the settings dialog of this machine and change the hard disk configuration.</p><p>%1</p> - <p>U hebt een nieuw aangemaakte virtuale machine voor de eerste keer gestart. Deze assistent helpt u met de noodzakeliljke stappen bij het inrichten van een besturingsysteem van uw keuze op de virtuale machine.</p><p>Let op, u kunt nu geen besturingsysteem installeren virtuale machine omdat u hieraan nog geen harde schijf hebt gekoppeld. Is dit niet wat u wilt, dan kunt u de uitvoering van deze assistent annuleren, selecteer <b>Instellingen</b> uit het<b>Machine</b> menu in het hoofdvenster van VirtualBox om de dialoog, voor instellingen van deze machine, te benaderen en de harde schijf configuratie te wijzigen.</p><p>%1</p> + <p>U hebt een nieuw aangemaakte virtuele machine voor de eerste keer opgestart. Deze assistent zal u helpen met de stappen die nodig zijn voor het opstarten van een door u gekozen besturingsysteem voor deze virtuele machine.</p><p>Merk op dat u nu nog geen besturingsysteem op deze virtuele machine kunt installeren, omdat hieraan nog geen harde schijf is gekoppeld. Is dit niet wat u wilt, dan kunt u de uitvoering van deze assistent annuleren. Selecteer vervolgens <b>Instellingen</b> uit het<b>Machine</b> menu in het hoofdvenster van VirtualBox om de dialoog voor instellingen van deze machine te benaderen. Verander daar de configuratie van de harde schijf.</p><p>%1</p> UIFirstRunWzdPage2 <p>Select the media which contains the setup program of the operating system you want to install. This media must be bootable, otherwise the setup program will not be able to start.</p> - <p>Selecteer de media die het setup programma bevat met het besturingssysteem die u wilt installeren. Dit moet een opstartbaar medium zijn, anders kan het setup programma niet opstarten.</p> + <p>Selecteer het medium dat het setup-programma bevat van het besturingssysteem dat u wilt installeren. Dit moet een opstartbaar medium zijn, anders kan het setup-programma niet opstarten.</p> <p>Select the media that contains the operating system you want to work with. This media must be bootable, otherwise the operating system will not be able to start.</p> - <p>Selecteer de media die het besturingssysteem bevat waarmee u wilt gaan werken. Deze media moet opstartbaar zijn, anders kan het besturingssysteem niet opstarten.</p> + <p>Selecteer het medium dat het besturingssysteem bevat waarmee u wilt gaan werken. Dit medium moet opstartbaar zijn, anders kan het besturingssysteem niet opstarten.</p> Media Source - Media bron + Mediumbron Select Installation Media - Selecteer installatie media + Selecteer Installatiemedium UIFirstRunWzdPage3 <p>You have selected the following media to boot from:</p> - <p>U heeft de volgende media, om op te starten, geselecteerd:</p> + <p>U hebt het volgende medium om van op te starten (booten) geselecteerd:</p> <p>You have selected the following media to boot an operating system from:</p> - <p>U heeft de volgende media geselecteerd om het besturingssysteem te starten:</p> + <p>U hebt het volgende medium om een besturingssysteem van op te starten geselecteerd:</p> <p>If the above is correct, press the <b>Finish</b> button. Once you press it, the selected media will be temporarily mounted on the virtual machine and the machine will start execution.</p><p>Please note that when you close the virtual machine, the specified media will be automatically unmounted and the boot device will be set back to the first hard disk.</p><p>Depending on the type of the setup program, you may need to manually unmount (eject) the media after the setup program reboots the virtual machine, to prevent the installation process from starting again. You can do this by selecting the corresponding <b>Unmount...</b> action in the <b>Devices</b> menu.</p> - <p>Is het bovenstaande correct, druk dan op de knop <b>Klaar</b>. Zodra u die indrukt, wordt de geselecteerde media, tijdelijk, gekoppeld aan de virtuele machine en zal uitgevoerd worden.</p><p>Let op, sluit u de virtuele machine, dan wordt de geselecteerde media automatisch ontkoppeld en het opstarten zal vanaf de eerste harde schij plaatsvinden.</p><p>Afhankelijk van het soort setup programma kan het zijn dat u zelf de media moet ontkoppelen (uitwerpen) nadat het setup programma de virtuele machine opnieuw heeft gestart. Om te voorkomen dat het installatie proces opnieuw begint kunt u de overeenkomstige <b>Ontkoppel...</b> actie selecteren in het menu <b>Apparaten</b>.</p> + <p>Indien het bovenstaande correct is, druk dan op de knop <b>klaar</b>. Zodra u die indrukt zal het geselecteerde medium tijdelijk gekoppeld worden aan de virtuele machine en worden uitgevoerd.</p><p>Let op: sluit u de virtuele machine, dan wordt het geselecteerde medium automatisch ontkoppeld en het opstarten zal daarna vanaf de eerste harde schijf plaatsvinden.</p><p>Afhankelijk van het soort setup-programma kan het zijn dat u zelf het medium moet ontkoppelen (uitwerpen) nadat het setup-programma de virtuele machine laat herstarten. Om te voorkomen dat het installatieproces opnieuw begint kunt u de overeenkomstige <b>Ontkoppel...</b> actie selecteren in het menu <b>Apparaten</b>.</p> <p>If the above is correct, press the <b>Finish</b> button. Once you press it, the selected media will be mounted on the virtual machine and the machine will start execution.</p> - <p>Is het bovenstaande correct? KLik op de knop <b>Klaar</b>. Zodra u hierop klikt wordt de geselecteerde media gekoppeld aan de virtuele machine en machine zal starten met de uitvoering.</p> + <p>Is het bovenstaande correct? Klik op de knop <b>klaar</b>. Zodra u hierop klikt wordt het geselecteerde medium gekoppeld aan de virtuele machine en zal de machine starten met uitvoeren.</p> Summary Samenvatting - CD/DVD-ROM Device - CD/DVD-Rom station - - Type summary - Soort + Type Source summary Bron + + CD/DVD-ROM Device + CD/DVD-ROM station + UIGlobalSettingsExtension &Extension Packages: - &Extensie Pakketten: + &Extensiepakketten: Lists all installed packages. @@ -1729,11 +1226,11 @@ Select an extension package file - Selecteer een extentie pakketbestand + Selecteer een extentie-pakketbestand Extension package files (%1) - Extensie pakketbestand (%1) + Extensie-pakketbestand (%1) Extensions @@ -1751,10 +1248,6 @@ Geeft het pad weer naar de bibliotheek die de authenticatie levert voor beeldschermen op afstand (Remote Display clients VRDP). - Default &Hard Disk Folder: - Standaardmap voor de &Harde schijf: - - Default &Machine Folder: Standaardmap voor Virtuele &machines: @@ -1763,72 +1256,51 @@ V&RDP Authenticatie bibliotheek: - Displays the path to the default hard disk folder. This folder is used, if not explicitly specified otherwise, when adding existing or creating new virtual hard disks. - Geeft het pad weer naar de standaardmap voor harde schijven. Deze map wordt gebruikt bij het toeveogen of aanmaken van nieuwe harde schijven, tenzij deze uitdrukkelijk wordt aangepast. - - When checked, the application will provide an icon with the context menu in the system tray. - Is deze aangevinkt dan zal het programma een ikoon, voor het contekst menu, in de systeem tray neerzetten. + Aangevinkt zal het programma een icoon met contextmenu in het systeemvak plaatsen. &Show System Tray Icon - &Geef het systeem tray ikoon weer - - - When checked, the Dock Icon will reflect the VM window content in realtime. - wat is een Dock icon - Is deze aangevinkt dan zal het Dock ikoon de actuele inhoud van het VM venster laten zien. - - - &Dock Icon Realtime Preview - Actueel voorbeeld &Dock ikoon + &Toon Systeemvakicoon &Auto show Dock and Menubar in fullscreen - &Automatische Dock laten zien && Menubarlk bij schermvullend + Toon &automatisch Dok en Menubalk bij schermvullend When checked, the host screen saver will be disabled whenever a virtual machine is running. - Is deze optie aangevinkt dan wordt de schermbeveiliging van de gastheer gedeactiveerd zodra een virtuele machine draait. + Aangevinkt wordt de schermbeveiliging van de host uitgeschakeld zodra een virtuele machine draait. Disable Host &ScreenSaver - &Deactiveer schermbeveiliging van de gastheer + Uitschakelen &schermbeveiliging host UIGlobalSettingsInput Host &Key: - Gastheer &toets: + &Hosttoets: Displays the key used as a Host Key in the VM window. Activate the entry field and press a new Host Key. Note that alphanumeric, cursor movement and editing keys cannot be used. - Geeft de toets weer, in het VM venster, die als gastheer toets wordt gebruikt. Activeer het opgave veld en druk op een nieuwe gastheer toets. Let op dat alfanumerieke, cursor, wijzigings toetsen niet gebruikt kunnen worden als gastheer toets. - - - Reset Host Key - Zet gastheer toets terug - - - Resets the key used as a Host Key in the VM window. - Zet de toets terug die als gastheer toets wordt gebruikt in het VM scherm. + Toont de toets die als Hosttoets wordt gebruikt in het VM-scherm. Activeer het invoerveld en druk op een nieuwe Hosttoets. Let op dat alfanumerieke toetsen, cursortoetsen en bewerkingstoetsen niet gebruikt kunnen worden als Hosttoets. When checked, the keyboard is automatically captured every time the VM window is activated. When the keyboard is captured, all keystrokes (including system ones like Alt-Tab) are directed to the VM. - Is deze aangevinkt dan wordt het toetsenbord automatisch gevangen zodra het VM venster is geactiveerd. Is het toetsenbord gevangen dan worden alle toetsaanslagen (inclusief de syteemeigen zoals Alt-Tab) doorgesluist naar de virtuele machine. + Aangevinkt wordt het toetsenbord automatisch gevangen zodra het VM-venster is geactiveerd. Wanneer het toetsenbord is gevangen worden alle toetsaanslagen (inclusief systeemeigen zoals Alt-Tab) doorgeleid naar de virtuele machine. &Auto Capture Keyboard - &Automatische toetsenbord vangen + &Automatisch toetsenbord vangen Reset host combination - Zet de gastheer combinatie terug + Reset hostcombinatie Resets the key combination used as the host combination in the VM window. - Zet de toetscombinatie terug die als gastheer toets wordt gebruikt in het VM scherm. + Reset de toetscombinatie die als hostcombinatie wordt gebruikt in het VM-scherm. @@ -1859,11 +1331,11 @@ &Interface Language: - &Taal van de interface: + &Taal Interface: Lists all available user interface languages. The effective language is written in <b>bold</b>. Select <i>Default</i> to reset to the system default language. - geeft alle beschikbare gebruikerstalen weer. De actuele taal is <b>vetgedrukt</b>weergegeven. Selecteer <i>standaard</i> om de standaard taal van het systeem terug te zetten. + Geeft alle beschikbare gebruikerstalen weer. De actuele taal is <b>vetgedrukt</b> weergegeven. Selecteer <i>Standaard</i> om naar de standaardtaal van het systeem terug te keren. Name @@ -1889,37 +1361,32 @@ UIGlobalSettingsNetwork - %1 network - <adapter name> network - %1-Netwerk - - host IPv4 address of <b>%1</b> is wrong - Het host IPv4 adres van <b>%1</b> is foutief + host-IPv4-adres van <b>%1</b> is foutief host IPv4 network mask of <b>%1</b> is wrong - Het host-IPv4 netmasker van <b>%1</b> is foutief + host-IPv4-netmasker van <b>%1</b> is foutief host IPv6 address of <b>%1</b> is wrong - Het host-IPv6 adres van <b>%1</b> is foutief + host-IPv6-adres van <b>%1</b> is foutief DHCP server address of <b>%1</b> is wrong - Het DHCP server adres van <b>%1</b> is foutief + DHCP-serveradres van <b>%1</b> is foutief DHCP server network mask of <b>%1</b> is wrong - Het DHCP server netmasker van <b>%1</b> is foutief + DHCP-server netmasker van <b>%1</b> is foutief DHCP lower address bound of <b>%1</b> is wrong - Het laagste IP adres voor de DHCP server van <b>%1</b> is foutief + Grens laagste IP-adres voor de DHCP-server van <b>%1</b> is foutief DHCP upper address bound of <b>%1</b> is wrong - Het hoogste IP adres voor de DHCP server van <b>%1</b> is foutief + Grens hoogste IP-adres voor de DHCP-server van <b>%1</b> is foutief Adapter @@ -1937,48 +1404,48 @@ IPv4 Address - IPv4 adres + IPv4-adres Not set address - Niet gezet + Niet ingesteld IPv4 Network Mask - IPv4 netmasker + IPv4-netmasker Not set mask - Niet gezet + Niet ingesteld IPv6 Address - IPv6 adres + IPv6-adres IPv6 Network Mask Length - Lengte IPv6 netmasker + Lengte IPv6-netmasker Not set length - Niet gezet + Niet ingesteld DHCP Server - DHCP server + DHCP-server Enabled server - geactiveerd + Ingeschakeld Disabled server - Gedeactiveerd + Uitgeschakeld Address @@ -1995,7 +1462,7 @@ Not set bound - Niet gezet + Niet ingesteld Upper Bound @@ -2014,27 +1481,18 @@ Host-only netwerk &Wijzigen - Performing - creating/removing host-only network - Uitvoeren - - &Host-only Networks: &Host-only netwerken: Lists all available host-only networks. - Geef alle beschikbare host-only netwerken weer. + Toon alle beschikbare host-only netwerken. Name Naam - New Host-Only Interface - Nieuwe Host-Only interface - - Networking Netwerken @@ -2043,7 +1501,7 @@ UIGlobalSettingsNetworkDetails Host-only Network Details - Details van het host-only netwerk + Details host-only netwerk &Adapter @@ -2055,67 +1513,67 @@ Use manual configuration for this host-only network adapter. - Gebruik de handmatige configuratie voor deze host-only netwerk adapter. + Gebruik handmatige configuratie voor deze host-only netwerkadapter. &IPv4 Address: - &IPv4 adres: + &IPv4-adres: Displays the host IPv4 address for this adapter. - Geef het host IPv4 adres voor deze adapter weer. + Toont het host-IPv4-adres voor deze adapter. IPv4 Network &Mask: - IPv4 net&masker: + IPv4-net&masker: Displays the host IPv4 network mask for this adapter. - Geef het host IPv4 netmasker voor deze adapter. + Toont het host-IPv4-netmasker voor deze adapter. I&Pv6 Address: - I&Pv6 adres: + I&Pv6-adres: Displays the host IPv6 address for this adapter if IPv6 is supported. - Geef het host IPv6 adres voor deze adapter weer als IPv6 ondersteund wordt. + Toont het host-IPv6-adres voor deze adapter indien IPv6 ondersteund wordt. IPv6 Network Mask &Length: - &Lengte IPv6 netmasker: + &Lengte IPv6-netmasker: Displays the host IPv6 network mask prefix length for this adapter if IPv6 is supported. - geeft het host IPv6 netmasker voorvoegsel weer voor deze adapter als IPv6 ondersteund wordt. + Toont de prefixlengte van het host-IPv6-netmasker voor deze adapter indien IPv6 ondersteund wordt. &DHCP Server - &DHCP server + &DHCP-server &Enable Server - Server &activeren + Server insch&akelen Indicates whether the DHCP Server is enabled on machine startup or not. - Geeft aan of de DHCP server is geactiveerd zodra de machine opstart of niet. + Geeft aan of de DHCP-server wordt ingeschakeld bij het opstarten van de machine of niet. Server Add&ress: - Server a&dres: + Servera&dres: Displays the address of the DHCP server servicing the network associated with this host-only adapter. - Geeft het adres vand e DHCP servers weer, die het netwerk bedient van deze host-only adapter. + Toont het adres van de DHCP-server die het netwerk van deze host-only adapter bedient. Server &Mask: - Server &masker: + Server&masker: Displays the network mask of the DHCP server servicing the network associated with this host-only adapter. - Geeft het netwerk masker weer van de DHCP server die het netwerk bedient van deze host-only adapter. + Toont het netwerkmasker van de DHCP-server die het netwerk van deze host-only adapter bedient. &Lower Address Bound: @@ -2123,7 +1581,7 @@ Displays the lower address bound offered by the DHCP server servicing the network associated with this host-only adapter. - Geeft het laagste IP adres weer, die door de DHCP server die het netwerk bedient van deze host-only adapter. + Toont het laagste IP-adres dat kan worden aangeboden door de DHCP-server geassocieerd met het netwerk van deze host-only adapter. &Upper Address Bound: @@ -2131,69 +1589,69 @@ Displays the upper address bound offered by the DHCP server servicing the network associated with this host-only adapter. - Geeft het hoogste IP adres weer, die door de DHCP server die het netwerk bedient van deze host-only adapter. + Toont het hoogste IP-adres dat kan worden aangeboden door de DHCP-server geassocieerd met het netwerk van deze host-only adapter. UIGlobalSettingsProxy When checked, VirtualBox will use the proxy settings supplied for tasks like downloading Guest Additions from the network or checking for updates. - + Aangevinkt zal VirtualBox de proxy-instellingen gebruiken voor taken als downloaden van de Guest Additions van het netwerk of controleren op updates. &Enable proxy - + Proxy insch&akelen Ho&st: - + Ho&st: Changes the proxy host. - + Verandert de proxyhost. &Port: - + &Poort: Changes the proxy port. - + Verandert de proxypoort. When checked the authentication supplied will be used with the proxy server. - + Aangevinkt zal de opgegeven authenticatie gebruikt worden met de proxyserver. &Use authentication - + Gebruik a&uthenticatie User &name: - + Gebruikers&naam: Changes the user name used for authentication. - + Verandert de gebruikersnaam voor authenticatie. Pass&word: - + Wacht&woord: Changes the password used for authentication. - + Verandert het wachtwoord gebruikt bij authenticatie. UIGlobalSettingsUpdate When checked, the application will periodically connect to the VirtualBox website and check whether a new VirtualBox version is available. - Is deze aangevinkt dan zal het programma verbinding zoeken met de VirtualBox wesite en controleren of een nieuweversie van VirtualBox beschikbaar is. + Aangevinkt zal het programma verbinding zoeken met de VirtualBox-website en controleren of een nieuwe versie van VirtualBox beschikbaar is. &Check for updates - &Controleer op nieuwe versie + &Controleer op updates &Once per: @@ -2201,7 +1659,7 @@ Specifies how often the new version check should be performed. Note that if you want to completely disable this check, just clear the above check box. - Geeft aan hoe vaak de controle op nieuwe versies moet plaatsvinden. Let op wilt u deze controle niet laten plaatsvinden verwijder het vinkje in het keuzevakje. + Geeft aan hoe vaak de controle op nieuwe versies moet plaatsvinden. Let op: wilt u deze controle niet laten plaatsvinden verwijder eenvoudigweg het vinkje in het keuzevakje. Next Check: @@ -2217,35 +1675,40 @@ &Stable release versions - &Stabiele vrijgegeven versies + release is algemeen geaccepteerde nederlandse term + &Stabiele release-versies <p>Choose this if you wish to be notified about all new VirtualBox releases.</p> - <p>Kies hiervoor als op de hoogte wilt blijven van alle VirtualBox uitgaven.</p> + <p>Kies hiervoor als op de hoogte wilt blijven van alle nieuwe VirtualBox-releases.</p> &All new releases - &Alle nieuwe uitgaven + &Alle nieuwe releases <p>Choose this to be notified about all new VirtualBox releases and pre-release versions of VirtualBox.</p> - <p>Kies hiervoor als op de hoogte wilt blijven van alle nieuwe VirtualBox uitgaven en voor-uitgegeven versies van VirtualBox.</p> + <p>Kies hiervoor als op de hoogte wilt blijven van alle nieuwe VirtualBox-releases en van pre-release versies van VirtualBox.</p> All new releases and &pre-releases - Alle nieuwe uitgaven en &voor-uitgaves + Alle nieuwe releases en &pre-releases UIHelpButton &Help - &Help + &Hulp UIHotKeyEditor + <key_%1> + <Toets_%1> + + Left Links @@ -2254,36 +1717,16 @@ Rechts - Left Shift - Linker Shift - - - Right Shift - Rechter Shift - - - Left Ctrl - Linker Ctrl - - - Right Ctrl - Rechter Ctrl - - - Left Alt - Linker Alt - - Right Alt - Rechter Alt + Alt Rechts Left WinKey - Linker Windowstoets + Win Links Right WinKey - Rechter Windowstoets + Win Rechts Menu key @@ -2291,7 +1734,7 @@ Alt Gr - Alt Gr + AltGr Caps Lock @@ -2302,198 +1745,43 @@ Scroll Lock - <key_%1> - <Toets_%1> - - - Pause - Pause - - - Print Screen - Print Screen - - - F1 - F1 - - - F2 - F2 - - - F3 - F3 - - - F4 - F4 - - - F5 - F5 - - - F6 - F6 - - - F7 - F7 - - - F8 - F8 - - - F9 - F9 - - - F10 - F10 - - - F11 - F11 - - - F12 - F12 - - - F13 - F13 - - - F14 - F14 - - - F15 - F15 - - - F16 - F16 - - - F17 - F17 - - - F18 - F18 - - - F19 - F19 - - - F20 - F20 - - - F21 - F21 - - - F22 - F22 - - - F23 - F23 + None + Geen - F24 - F24 + Left Shift + Shift Links - Num Lock - Num + Right Shift + Shift Rechts - Forward - Is dit een toets of ... - Naar voren + Left Ctrl + Ctrl Links - Back - Is dit een toets of ... - Terug + Right Ctrl + Ctrl Rechts - None - Geen + Left Alt + Alt Links UIImportApplianceWzd - Select an appliance to import - Appliance is hulpmiddel maar ook toestel, gereedschap, uitrusting, apparaat, werktuig, - Selecteer een appliance om te importeren - - - Open Virtualization Format (%1) - Open virtualisatie formaat (%1) - - Appliance Import Wizard - Assistent voor het importeren van een appliance - - - Welcome to the Appliance Import Wizard! - Welkom bij de assistent voor het importeren van Appliances! - - - <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> -<html><head><meta name="qrichtext" content="1" /><style type="text/css"> -p, li { white-space: pre-wrap; } -</style></head><body> -<p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">This wizard will guide you through importing an appliance. </p> -<p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Use the <span style=" font-weight:600;">Next</span> button to go the next page of the wizard and the <span style=" font-weight:600;">Back</span> button to return to the previous page.</p> -<p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">VirtualBox currently supports importing appliances saved in the Open Virtualization Format (OVF). To continue, select the file to import below:</p></body></html> - <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> -<html><head><meta name="qrichtext" content="1" /><style type="text/css"> -p, li { white-space: pre-wrap; } -</style></head><body> -<p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Deze assistent begeleid u bij het importeren van een hulpmiddel. </p> -<p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Gebruikt de knop <span style=" font-weight:600;">Volgende</span>, om naar de volgende pagina van de assistent te gaan en knop <span style=" font-weight:600;">Terug</span>, om terug te keren naar de vorige pagina.</p> -<p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">U moet eerst een bestand selecteren die het hulpmiddel beschijft, voordat u deze kunt importeren. VirtualBox ondersteunt op dit moment het Open Virtualisatie Formaat (OVF). Selecteer het te importen bestand om verder te gaan:</p></body></html> - - - < &Back - < &Terug - - - &Next > - &Volgende > - - - Cancel - Annuleren - - - Appliance Import Settings - Import instellingen voor Appliance - - - These are the virtual machines contained in the appliance and the suggested settings of the imported VirtualBox machines. You can change many of the properties shown by double-clicking on the items and disable others using the check boxes below. - Dit zijn de virtuele machines zoals beschreven in het hulpmiddel, met hun voorstellen voor mappings naar VirtuelBox. U kun veel van de weergegeven eigenschappen aanpassen door hierop te dubbelklikken of keuze, van de onderstaande keuzevakjes, te wijzigen. + Appliance importeren Restore Defaults - Standaard instellingen terugplaatsen - - - &Import > - &Importeren > + Standaardinstellingen herstellen Import - + Importeren @@ -2508,33 +1796,33 @@ Welcome to the Appliance Import Wizard! - Welkom bij de assistent voor het importeren van Appliances! + Appliance importeren <p>This wizard will guide you through importing an appliance.</p><p>%1</p><p>VirtualBox currently supports importing appliances saved in the Open Virtualization Format (OVF). To continue, select the file to import below:</p> - <p>Deze assistent helpt u bij het importeren van een appliance.</p><p>%1</p><p>VirtualBox ondersteund, op dit moment, appliances opgeslagen het Open Virtualisatie Formaat (OVF). Om verder te gaan selecteer, hier onder, het bestand om te importeren:</p> + <p>Deze assistent helpt u bij het importeren van een appliance.</p><p>%1</p><p>VirtualBox ondersteunt op dit moment appliances opgeslagen het Open Virtualisatie Formaat (OVF). Om door te gaan, selecteer hieronder het bestand dat u wilt importeren:</p> UIImportApplianceWzdPage2 These are the virtual machines contained in the appliance and the suggested settings of the imported VirtualBox machines. You can change many of the properties shown by double-clicking on the items and disable others using the check boxes below. - Dit zijn de virtuele machines zoals beschreven in het hulpmiddel, met hun voorstellen voor mappings naar VirtuelBox. U kun veel van de weergegeven eigenschappen aanpassen door hierop te dubbelklikken of keuze, van de onderstaande keuzevakjes, te wijzigen. + Dit zijn de virtuele machines vervat in de appliance en voorgestelde instellingen voor de geïmporteerde VirtuelBox machines. U kun veel van de weergegeven eigenschappen aanpassen door op de items te dubbelklikken of andere uit te schakelen door middel van onderstaande keuzevakjes. Appliance Import Settings - Import instellingen voor Appliance + Importinstellingen voor Appliance UIImportLicenseViewer <b>The virtual system "%1" requires that you agree to the terms and conditions of the software license agreement shown below.</b><br /><br />Click <b>Agree</b> to continue or click <b>Disagree</b> to cancel the import. - <b>Het virtuele systeem "%1" verlangt dat u akkoord gaat met de bepalingen en condities uit de software licentie overeenkomst zoals hieronder weergegeven.<b><br/><br/>Klik op <b>Akkoord</b>, om door te gaan of klik op <b>Niet akkoord</b>, om het importeren te annuleren. + <b>Het virtuele systeem "%1" verlangt dat u akkoord gaat met de bepalingen en condities in de softwarelicentieovereenkomst zoals hieronder weergegeven.<b><br/><br/>Klik op <b>akkoord</b> om door te gaan of klik op <b>niet akkoord</b> om het importeren te annuleren. Software License Agreement - Software licentie overeenkomst + Software Licentie Overeenkomst &Disagree @@ -2558,7 +1846,7 @@ Save license to file... - Bewaar licentie in het bestand... + Sla licentie op in bestand... @@ -2566,7 +1854,7 @@ <p style='white-space:pre'><nobr>Indicates the activity of the virtual hard disks:</nobr>%1</p> HDD tooltip - <p style='white-space:pre'><nobr>Geeft de activiteit van de virtuale harde schijf weer:</nobr>%1</p> + <p style='white-space:pre'><nobr>Geeft de activiteit van de virtuele harde schijf weer:</nobr>%1</p> <p style='white-space:pre'><nobr>Indicates the activity of the CD/DVD devices:</nobr>%1</p> @@ -2576,17 +1864,17 @@ <p style='white-space:pre'><nobr>Indicates the activity of the floppy devices:</nobr>%1</p> FD tooltip - <p style='white-space:pre'><nobr>Geeft de activiteit van de diskette apparaten weer:</nobr>%1</p> + <p style='white-space:pre'><nobr>Geeft de activiteit van de diskette-apparaten weer:</nobr>%1</p> <p style='white-space:pre'><nobr>Indicates the activity of the network interfaces:</nobr>%1</p> Network adapters tooltip - <p style='white-space:pre'><nobr>Geeft de activiteit van de netwerk interfaces weer:</nobr>%1</p> + <p style='white-space:pre'><nobr>Geeft de activiteit van de netwerkinterfaces weer:</nobr>%1</p> <br><nobr><b>Adapter %1 (%2)</b>: %3 cable %4</nobr> Network adapters tooltip - <br><nobr><b>Adapter %1 (%2)</b>: %3 cabel %4</nobr> + <br><nobr><b>Adapter %1 (%2)</b>: %3 kabel %4</nobr> connected @@ -2596,32 +1884,32 @@ disconnected Network adapters tooltip - los gemaakt + niet verbonden <br><nobr><b>All network adapters are disabled</b></nobr> Network adapters tooltip - <br><nobr><b>Alle Netwerkadapters zijn gedeactiveerd</b></nobr> + <br><nobr><b>Alle netwerkadapters zijn uitgeschakeld</b></nobr> <p style='white-space:pre'><nobr>Indicates the activity of the attached USB devices:</nobr>%1</p> USB device tooltip - <p style='white-space:pre'><nobr>Geeft de activiteit van de gekoppelde USB apparaten weer:</nobr>%1</p> + <p style='white-space:pre'><nobr>Geeft de activiteit van gekoppelde USB-apparaten weer:</nobr>%1</p> <br><nobr><b>No USB devices attached</b></nobr> USB device tooltip - <br><nobr><b>Geen USB apparaat aangesloten</b></nobr> + <br><nobr><b>Geen USB-apparaten aangesloten</b></nobr> <br><nobr><b>USB Controller is disabled</b></nobr> USB device tooltip - <br><nobr><b>USB controller is gedeactiveerd</b></nobr> + <br><nobr><b>USB-controller is uitgeschakeld</b></nobr> <p style='white-space:pre'><nobr>Indicates the activity of the machine's shared folders:</nobr>%1</p> Shared folders tooltip - <p style='white-space:pre'><nobr>Geeft de activiteit van de gedeelde mappen van de machine weer:</nobr>%1</p> + <p style='white-space:pre'><nobr>Toont activiteit van de gedeelde mappen van de machine:</nobr>%1</p> <br><nobr><b>No shared folders</b></nobr> @@ -2629,43 +1917,31 @@ <br><nobr><b>Geen gedeelde mappen</b></nobr> - Indicates whether the Remote Display (VRDP Server) is enabled (<img src=:/vrdp_16px.png/>) or not (<img src=:/vrdp_disabled_16px.png/>). - Geeft aan of het beeldscherm op afstand (VRDP server) geactiveerd is (<img src=:/vrdp_16px.png/>) of niet (<img src=:/vrdp_disabled_16px.png/>). - - - <hr>The VRDP Server is listening on port %1 - <hr>VRDP server luistert op poort %1 - - - Indicates the status of the hardware virtualization features used by this virtual machine:<br><nobr><b>%1:</b>&nbsp;%2</nobr><br><nobr><b>%3:</b>&nbsp;%4</nobr> - Virtualization Stuff LED - Geeft de status van de hardware virtualisatie functies weer die gebruikt worden door de virtuele machine:<br><nobr><b>%1:</b>&nbsp;%2</nobr><br><nobr><b>%3:</b>&nbsp;%4</nobr> - - <br><nobr><b>%1:</b>&nbsp;%2</nobr> Virtualization Stuff LED <br><nobr><b>%1:</b>&nbsp;%2</nobr> Indicates whether the host mouse pointer is captured by the guest OS:<br><nobr><img src=:/mouse_disabled_16px.png/>&nbsp;&nbsp;pointer is not captured</nobr><br><nobr><img src=:/mouse_16px.png/>&nbsp;&nbsp;pointer is captured</nobr><br><nobr><img src=:/mouse_seamless_16px.png/>&nbsp;&nbsp;mouse integration (MI) is On</nobr><br><nobr><img src=:/mouse_can_seamless_16px.png/>&nbsp;&nbsp;MI is Off, pointer is captured</nobr><br><nobr><img src=:/mouse_can_seamless_uncaptured_16px.png/>&nbsp;&nbsp;MI is Off, pointer is not captured</nobr><br>Note that the mouse integration feature requires Guest Additions to be installed in the guest OS. - Geeft aan of de muis, van de gastheer, is gevangen door het gast besturingssysteem:<br><nobr><img src=:/mouse_disabled_16px.png/>&nbsp;&nbsp;Muis is niet gevangen</nobr><br><nobr><img src=:/mouse_16px.png/>&nbsp;&nbsp;Muis is gevangen</nobr><br><nobr><img src=:/mouse_seamless_16px.png/>&nbsp;&nbsp;Muis integratie (MI) staat aan</nobr><br><nobr><img src=:/mouse_can_seamless_16px.png/>&nbsp;&nbsp;MI staat uit, muis is gevangen</nobr><br><nobr><img src=:/mouse_can_seamless_uncaptured_16px.png/>&nbsp;&nbsp;MI staat uit, muis is niet gevangen</nobr><br>Let op Muis integratie werkt alleen als de gast uitbreidingen zijn geïnstalleerd op de het gast besturingssysteem. + tja, muis is gevangen....arm dier ;) + Geeft aan of de muis van de host wordt gebruikt door het gastbesturingssysteem:<br><nobr><img src=:/mouse_disabled_16px.png/>&nbsp;&nbsp;Muis is niet gevangen</nobr><br><nobr><img src=:/mouse_16px.png/>&nbsp;&nbsp;Muis is gevangen</nobr><br><nobr><img src=:/mouse_seamless_16px.png/>&nbsp;&nbsp;Muis integratie (MI) staat aan</nobr><br><nobr><img src=:/mouse_can_seamless_16px.png/>&nbsp;&nbsp;MI staat uit, muis is gevangen</nobr><br><nobr><img src=:/mouse_can_seamless_uncaptured_16px.png/>&nbsp;&nbsp;MI staat uit, muis is niet gevangen</nobr><br>Let op Muis Integratie werkt alleen als Guest Additions op het gastbesturingssysteem is geïnstalleerd. Indicates whether the keyboard is captured by the guest OS (<img src=:/hostkey_captured_16px.png/>) or not (<img src=:/hostkey_16px.png/>). - Geeft aan of het toetsenbord, van de gastheer, is gevangen door het gast besturingssysteem (<img src=:/hostkey_captured_16px.png/>) of niet (<img src=:/hostkey_16px.png/>). + Geeft aan of het toetsenbord van de host is gevangen door het gastbesturingssysteem (<img src=:/hostkey_captured_16px.png/>) of niet (<img src=:/hostkey_16px.png/>). Indicates whether the Remote Desktop Server is enabled (<img src=:/vrdp_16px.png/>) or not (<img src=:/vrdp_disabled_16px.png/>). - Geeft aan of de werkplek op afstand geactiveerd is (<img src=:/vrdp_16px.png/>) of niet (<img src=:/vrdp_disabled_16px.png/>). + Geeft aan of de Remote Desktop Server is ingeschakeld (<img src=:/vrdp_16px.png/>) of niet (<img src=:/vrdp_disabled_16px.png/>). <hr>The Remote Desktop Server is listening on port %1 - <hr>De werkplek op afstand luisterd op poort %1 + <hr>De Remote Desktop Server luistert op poort %1 Indicates the status of different features used by this virtual machine:<br><nobr><b>%1:</b>&nbsp;%2</nobr><br><nobr><b>%3:</b>&nbsp;%4</nobr><br><nobr><b>%5:</b>&nbsp;%6%</nobr> Virtualization Stuff LED - + Toont de status van verscheidene features die door deze virtuele machine worden gebruikt:<br><nobr><b>%1:</b>&nbsp;%2</nobr><br><nobr><b>%3:</b>&nbsp;%4</nobr><br><nobr><b>%5:</b>&nbsp;%6%</nobr> @@ -2678,40 +1954,20 @@ UIMachineLogic - VirtualBox OSE - VirtualBox OSE - - EXPERIMENTAL build %1r%2 - %3 - PROEF constructie %1r%2 - %3 + EXPERIMENTELE build %1r%2 - %3 Preview Monitor %1 - Voorvertoon monitor %1 + Preview Monitor %1 Snapshot %1 Momentopname %1 - More CD/DVD Images... - Meer CD/DVD images... - - - Unmount CD/DVD Device - ontkoppel CD/DVD apparaat - - - More Floppy Images... - Meer diskette images... - - - Unmount Floppy Device - ontkoppel diskette apparaat - - - No CD/DVD Devices Attached - Geen CD/DVD apparaten gekoppeld + No CD/DVD Devices Attached + Geen CD/DVD apparaten gekoppeld No CD/DVD devices attached to that VM @@ -2719,53 +1975,53 @@ No Floppy Devices Attached - Geen diskette apparaten gekoppeld + Geen diskette-apparaten gekoppeld No floppy devices attached to that VM - Geen diskette apparaten gekoppeld aan die VM + Geen diskette-apparaten gekoppeld aan die VM No USB Devices Connected - Geen USB apparaten gekoppeld + Geen USB-apparaten gekoppeld No supported devices connected to the host PC - Geen ondersteunde apparaten zijn aan de gastheer PC verbonden + Er zijn geen ondersteunde apparaten aan de host-PC verbonden UIMachineSettingsAudio When checked, a virtual PCI audio card will be plugged into the virtual machine and will communicate with the host audio system using the specified driver. - Is deze aangevinkt dan is de virtuelle PCI audio kaart aangesloten op de virtuele machine die het specifieke stuurprogramma gebruikt om het de audio kaart van de gastheer te communiceren. + Aangevinkt zal de virtuele PCI-audiokaart aangesloten worden op de virtuele machine en zal het gespecificeerde stuurprogramma gebruikt worden om met de audiokaart van de host te communiceren. Enable &Audio - Audio &activeren + &Audio inschakelen Host Audio &Driver: - Gastheer audio &stuurprogramma: + Host audio&stuurprogramma: Controls the audio output driver. The <b>Null Audio Driver</b> makes the guest see an audio card, however every access to it will be ignored. - Controleert het audio stuurprogramma voor uitvoer. Het <b>Null audio stuurprogramma</b> zorgt dat de gast de audio kaart wel ziet, maar daar geen toegang tot heeft. + Beheert het audiostuurprogramma voor uitvoer. Het <b>Null audiostuurprogramma</b> zorgt dat de gast de audiokaart wel ziet, maar daar geen toegang tot zal hebben. Audio &Controller: - Audio &controller: + Audio&controller: Selects the type of the virtual sound card. Depending on this value, VirtualBox will provide different audio hardware to the virtual machine. - Selecteerd het type virtuele geluidskaart. Afhankelijk van deze waarde zal VirtualBox andere audio hardware aan de virtuele machine leveren. + Selecteert het type virtuele geluidskaart. Afhankelijk van deze waarde zal VirtualBox andere audiohardware aan de virtuele machine leveren. UIMachineSettingsDisplay you have assigned less than <b>%1</b> of video memory which is the minimum amount required to switch the virtual machine to fullscreen or seamless mode. - u heeft minder dan <b>%1</b> aan video geheugen toegewezen, dit is het minimum wat nodig is om de virtuele machine over te schakelen op schermvullende of naadloze modus. + u hebt minder dan <b>%1</b> aan videogeheugen toegewezen, deze hoeveelheid is echter het minimum dat nodig is om de virtuele machine over te kunnen laten schakelen op schermvullende of naadloze modus. <qt>%1&nbsp;MB</qt> @@ -2777,11 +2033,11 @@ Video &Memory: - Video &geheugen: + Video&geheugen: Controls the amount of video memory provided to the virtual machine. - Controleert de hoeveelheid video geheugen toegewezen aan de virtuele machine. + Beheert de hoeveelheid videogeheugen toegewezen aan de virtuele machine. MB @@ -2793,43 +2049,39 @@ When checked, the virtual machine will be given access to the 3D graphics capabilities available on the host. - Is deze optie aangevinkt dan krijgt de virtuele machine toegang tot de 3D grafische kapaciteiten die beschikbaar zijn op de gastheer. + Aangevinkt krijgt de virtuele machine toegang tot de 3D-grafische capaciteiten die beschikbaar zijn op de host. Enable &3D Acceleration - &3D acceleratie activeren + &3D-acceleratie inschakelen &Remote Display - &Beeldscherm op afstand + &Beeldscherm op Afstand When checked, the VM will act as a Remote Desktop Protocol (RDP) server, allowing remote clients to connect and operate the VM (when it is running) using a standard RDP client. - Is deze optie aangevinkt dan zal de virtuele machine optreden als een server voor beeld scherm op afstand (RDP: Remote Desktop Protocol), hiermee kunnen systemen, met een RDP client, op afstand de virtuele machine bedienen. + Aangevinkt zal de virtuele machine optreden als een server voor Beeldscherm op Afstand (RDP: Remote Desktop Protocol), hiermee kunnen systemen met een RDP client op afstand de virtuele machine bedienen. &Enable Server - Server &activeren + Server insch&akelen Server &Port: - Server &poort: - - - Displays the VRDP Server port number. You may specify <tt>0</tt> (zero) to reset the port to the default value. - Geeft de het poortnummer van de VRDP server weer. U kunt <tt>0</tt> (nul) opgeven om de poort terug te zetten naar de standaard waarde. + Server&poort: Authentication &Method: - Authenticatie &methode: + Authenticatie&methode: Defines the VRDP authentication method. - Definieert de VRDP authenticatiemethode. + Definieert de VRDP-authenticatiemethode. Authentication &Timeout: - &Tijdslimiet authenticatie verstreken: + Authenticatie &Timeout: Specifies the timeout for guest authentication, in milliseconds. @@ -2837,27 +2089,27 @@ you have assigned less than <b>%1</b> of video memory which is the minimum amount required for HD Video to be played efficiently. - u heeft minder dan <b>%1</b> video geheugen toegewezen, dit is de minimum hoeveelheid nodig om voor HD Videoom om effectief af te spelen. + u hebt minder dan <b>%1</b> videogeheugen toegewezen, deze hoeveelheid is echter het minimum dat nodig is om HD-Video efficient af te spelen. When checked, the virtual machine will be given access to the Video Acceleration capabilities available on the host. - Is deze optie aangevinkt dan zal de virtuele machine toegang krijgen tot de video versnellings mogelijkheden, beschikbaar op de gastheer. + Aangevinkt zal de virtuele machine toegang krijgen tot de video-versnellingsmogelijkheden van de host. Enable &2D Video Acceleration - Activeer &2D video versnelling + &2D-videoversnelling inschakelen The VRDP Server port number. You may specify <tt>0</tt> (zero), to select port 3389, the standard port for RDP. - De VRDP server poort nummer. U mag <tt>0</tt> (nul) opgeven,om poort 3389 te selecteren, de standaard poort voor RDP. + Het VRDP-serverpoortnummer. U mag <tt>0</tt> (nul) opgeven om poort 3389 te selecteren, de standaardpoort voor RDP. Mo&nitor Count: - Antal Mo&nitoren: + Aantal Mo&nitoren: Controls the amount of virtual monitors provided to the virtual machine. - Controleert het aantal virtuale monitors van deze virtuale machine. + Beheert het aantal virtuele monitoren van deze virtuele machine. <qt>%1</qt> @@ -2865,34 +2117,30 @@ Specifies whether multiple simultaneous connections to the VM are permitted. - Geeft aan of meerdere gelijktijdige verbindingen met de VM zijn toegestaan. + Specificeert of meerdere gelijktijdige verbindingen met de VM zijn toegestaan. &Allow Multiple Connections St&a meerdere verbindingen toe - You have 3D Acceleration enabled for a operation system which uses the WDDM video driver. For maximal performance set the guest VRAM to at least <b>%1</b>. - U heeft 3D acceleratie geactiveerd voor een besturingssysteem die een WDDM video driver gebruikt. Voor een maximale performance zet het gast VRAM op tenminste <b>%1</b>. - - you have 3D Acceleration enabled for a operation system which uses the WDDM video driver. For maximal performance set the guest VRAM to at least <b>%1</b>. - + U hebt 3D-acceleratie ingeschakeld voor een besturingssysteem dat de WDDM-videodriver gebruikt. Zet voor maximale prestaties het gast-VRAM op minstens <b>%1</b>. you have 2D Video Acceleration enabled. As 2D Video Acceleration is supported for Windows guests only, this feature will be disabled. - U hebt 2D video versnelling geactiveerd. Omdat 2D video versnelling alleen door Windows wordt ondersteund, wordt deze mogelijkheid gedeactiveerd. + U hebt 2D-videoversnelling ingeschakeld. Omdat 2D-videoversnelling alleen voor Windowsgasten wordt ondersteund, zal deze mogelijkheid worden uitgeschakeld. you enabled 3D acceleration. However, 3D acceleration is not working on the current host setup so you will not be able to start the VM. - + U hebt 3D-acceleratie ingeschakeld bij de gast,.maar 3D-acceleratie werkt momenteel niet op de host. Het zal daarom niet mogelijk zijn de VM te starten. UIMachineSettingsGeneral Displays the path where snapshots of this virtual machine will be stored. Be aware that snapshots can take quite a lot of disk space. - Geeft het pad weer waar momentopnames, van deze virtuele machine, worden opgeslagen. Let op: momentopnames kunnen veel ruimte op de harde schijf innemen. + Geeft het pad weer waar momentopnamen van deze virtuele machine worden opgeslagen. Wees ervan bewust dat momentopnamen erg veel ruimte op de harde schijf kunnen innemen. &Basic @@ -2904,7 +2152,7 @@ Displays the name of the virtual machine. - Geeft de naam weer van de virtuele machine. + Toont de naam van de virtuele machine. &Advanced @@ -2916,23 +2164,23 @@ Selects which clipboard data will be copied between the guest and the host OS. This feature requires Guest Additions to be installed in the guest OS. - Definieert de modus voor het delen van het klembord, tussen de gast en het besturingssysteem van de gastheer. Let op: deze optie vereist dat de gast uitbreidingen zijn geïnstalleerd bij het gast besturingssysteem. + Definieert de modus voor het delen van het klembord tussen de gast en het host-OS. Let op: deze optie vereist dat Guest Additions op het gastbesturingssysteem is geïnstalleerd. S&napshot Folder: - &Momentopname map: + &Map Momentopname: &Description - &Omschrijving + &Beschrijving Displays the description of the virtual machine. The description field is useful for commenting on configuration details of the installed guest OS. - Geeft de omschrijving van de virtuele machine weer. Het veld voor omschrijving is handig voor commentaar op de configuratie van het geïnstallerde besturingssysteem. + Toont de beschrijving van de virtuele machine. Het veld voor beschrijving is handig voor opmerkingen over de configuratie van het geïnstalleerde besturingssysteem. If checked, any change to mounted CD/DVD or Floppy media performed during machine execution will be saved in the settings file in order to preserve the configuration of mounted media between runs. - Is deze optie aangevinkt dan wordt iedere verandering aan de CD/DVD of het diskette media, tijdens het draaien van de virtuele machine, opgeslagen in het bestand met instellingen. Dit om de configuratie van de aangekoppelde media te bewaren tussen verschillende uitvoeringen. + Aangevinkt wordt iedere verandering bij aangekoppelde CD/DVD/diskette media aangebracht tijdens het draaien van de virtuele machine opgeslagen in het instellingenbestand om de configuratie van aangekoppelde media te behouden tussen runs. Removable Media: @@ -2940,31 +2188,31 @@ &Remember Runtime Changes - &Onthoudt wijzigingen bij uitvoering + &Onthoud runtime wijzigingen Mini ToolBar: - Mini werkbalk: + Miniwerkbalk: If checked, show the Mini ToolBar in Fullscreen and Seamless modes. - Is deze optie aangevinkt dan wordt een mini werkbalk schermvullend en in naadloze modus weergegeven. + Aangevinkt wordt de miniwerkbalk getoont in schermvullende en naadloze modi. Show In &Fullscreen/Seamless - Geef weer in &Schermvullend en naadloos + Toon in &Schermvullend/Naadloos If checked, show the Mini ToolBar at the top of the screen, rather than in its default position at the bottom of the screen. - Is deze optie aangevinkt dan wordt een mini werkbalk bovenin het scherm weergegeven in plaats van de standaard positie onder aan het scherm. + Aangevinkt wordt de miniwerkbalk boven in het scherm weergegeven in plaats van de standaardpositie onder aan het scherm. Show At &Top Of Screen - Geef &bovenin het scherm weer + Geef &boven in het scherm weer you have selected a 64-bit guest OS type for this VM. As such guests require hardware virtualization (VT-x/AMD-V), this feature will be enabled automatically. - U heeft een 64-Bit gastbesturingssysteem, voor deze VM, geselecteerd. Daarom is hardware virtualisering (VT-x/AMD-V) vereist voor de gast, deze optie wordt automatische geactiveerd. + U hebt een 64-Bit gastbesturingssysteem voor deze VM geselecteerd. Daardoor is hardware-virtualisering (VT-x/AMD-V) voor de gast vereist, deze optie wordt automatische ingeschakeld. @@ -2988,15 +2236,15 @@ When checked, plugs this virtual network adapter into the virtual machine. - Is deze optie aangevinkt dan wordt deze virtuele netwerk adapter in de virtuele machine geplaatst. + Aangevinkt wordt deze virtuele netwerkadapter in de virtuele machine geplaatst. &Enable Network Adapter - Netwerkadapter &activeren + Netwerkadapter insch&akelen Selects the type of the virtual network adapter. Depending on this value, VirtualBox will provide different network hardware to the virtual machine. - Selecteerd het soort virtuele netwerk adapter. Afhankelijk van deze waarde zal VirtualBox een andere netwerk adapter leveren aan de virtuele netwerk adapter. + Selecteert het type virtuele netwerkadapter. Afhankelijk van deze waarde zal VirtualBox een andere netwerkadapter aan de virtuele machine leveren. &Attached to: @@ -3004,23 +2252,15 @@ Controls how this virtual adapter is attached to the real network of the Host OS. - Controleert hoe deze virtuele adapter is gekoppeld aan het werkelijke netwerk van het gastheer besturingssysteem. - - - Open additional options dialog for current attachment type. - Opent de extra opties dialoog voor het huidige bijlage soort. + Beheert hoe deze virtuele adapter is gekoppeld aan het werkelijke netwerk van het host OS. &Name: &Naam: - Selects the name of the network adapter for <b>Bridged Adapter</b> or <b>Host-only Adapter</b> attachments and the name of the network <b>Internal Network</b> attachments. - Selecteert de naam van de netwerk adapter als het soort bijlage gelijk is aan de <b>bridge adapter</b> of een <b>host-only adapter</b> en de naam van het interne netwerk als de soort bijlage gelijk is aan het <b>interne netwerk</b>. - - Adapter &Type: - &Soort adapter: + Adapter &Type: A&dvanced @@ -3028,7 +2268,7 @@ Shows or hides additional network adapter options. - Geeft de extra opties van de netwerk adapter weer of verbergt deze. + Toont of verbergt extra opties voor de netwerkadapter. &Mac Address: @@ -3036,15 +2276,15 @@ Displays the MAC address of this adapter. It contains exactly 12 characters chosen from {0-9,A-F}. Note that the second character must be an even digit. - Geeft het MAC adres van deze adapter weer. Deze bevat precies 12 tekens van {0-9,A-F}. Let op: dat het tweede teken een even getal moet zijn. + Toont het MAC adres van deze adapter. Deze bevat precies 12 tekens van {0-9,A-F}. Let op: het tweede teken moet een even getal zijn. Generates a new random MAC address. - Maakt een willekeurig MAC adres aan. + Genereert een nieuw, willekeurig MAC adres. Indicates whether the virtual network cable is plugged in on machine startup or not. - Geeft aan of de kabel van het virtuele netwerk aangesloten is tijdens het opstarten of niet. + Geeft aan of de kabel van het virtuele netwerk tijdens het opstarten van de machine is aangesloten of niet. &Cable connected @@ -3052,7 +2292,7 @@ Opens dialog to manage port forwarding rules. - Opent een dialoog om doorverwijsregel van de poort te beheren. + Opent een dialoog om doorverwijsregels van de poort te beheren. &Port Forwarding @@ -3060,66 +2300,39 @@ &Promiscuous Mode: - + &Promiscuous Modus: Selects the promiscuous mode policy of the network adapter when attached to an internal network, host only network or a bridge. - + Selecteert het promiscuous-modus beleid van de netwerkadapter wanneer deze wordt gekoppeld aan een intern netwerk, host-only netwerk of een bridge. Generic Properties: - + Generieke Eigenschappen: Enter any configuration settings here for the network attachment driver you will be using. The settings should be of the form <b>name=value</b> and will depend on the driver. Use <b>shift-enter</b> to add a new entry. - + Vul hier configuratie instellingen in voor de netwerkkoppelingsdriver die u zal gebruiken. De instellingen moeten in de vorm zijn <b>naam=waarde</b> en zijn driver afhankelijk. Gebruik <b>shift-enter</b> voor een nieuwe toevoeging. no generic driver is selected - + er is geen generieke driver geselecteerd Selects the network adapter on the host system that traffic to and from this network card will go through. - + Selecteert de netwerkadapter op het gastsysteem waar verkeer van deze netwerkkaart doorheen gaat en waar doorheen verkeer terugkomt. Enter the name of the internal network that this network card will be connected to. You can create a new internal network by choosing a name which is not used by any other network cards in this virtual machine or others. - + Vul de naam in van het interne netwerk waaraan deze netwerkkaart zal worden aangesloten. U kunt een nieuw intern netwerk aanmaken door een naam te kiezen die nog niet door een andere netwerkkaart in deze virtuele machine of door andere machines gebruikt wordt. Selects the virtual network adapter on the host system that traffic to and from this network card will go through. You can create and remove adapters using the global network settings in the virtual machine manager window. - + Selecteert de virtuele netwerkadapter op het hostsysteem waar verkeer van deze netwerkkaart doorheen gaat en waar doorheen verkeer terugkomt. U kunt adapters aanmaken en verwijderen via de algemene netwerkinstellingen in het virtuele machine manager scherm. Selects the driver to be used with this network card. - - - - - UIMachineSettingsNetworkDetails - - Additional Options - Extra opties - - - Guest &MAC Address: - Gast-&MAC adres: - - - Displays the MAC address of this adapter. It contains exactly 12 characters chosen from {0-9,A-F}. Note that the second character must be an even digit. - Geeft het MAC adres van deze adapter weer. Deze bevat precies 12 tekens van {0-9,A-F}. Let op: dat het tweede teken een even getal moet zijn. - - - Generates a new random MAC address. - Maakt een willekeurig MAC adres aan. - - - &Cable connected - &Kabel aangesloten - - - Indicates whether the virtual network cable is plugged in on machine startup or not. - Geeft aan of de kabel van het virtuele netwerk aangesloten is tijdens het opstarten of niet. + Selecteert de met deze netwerkkaart te gebruiken driver. @@ -3131,11 +2344,11 @@ When checked, enables the given parallel port of the virtual machine. - Is deze optie aangevinkt dan wordt de gegeven parallelle poort, van de virtuele machine, geactiveerd. + Aangevinkt wordt de gegeven parallelle poort van de virtuele machine ingeschakeld. &Enable Parallel Port - &Parallelle poort activeren + &Parallelle poort inschakelen Port &Number: @@ -3143,46 +2356,38 @@ Displays the parallel port number. You can choose one of the standard parallel ports or select <b>User-defined</b> and specify port parameters manually. - Geeft het poortnummer weer van de parallelle poort. U kunt een van de standaart parallelle poorten of een door de <b>gebruiker gedefinieerde</b> en specificeer de poort parameters handmatig. + Geeft het poortnummer weer van de parallelle poort. U kunt één van de standaard parallelle poorten kiezen of kies <b>Gebruiker Gedefinieerd</b> en specificeer de poortparameters handmatig. &IRQ: &IRQ: - Displays the IRQ number of this parallel port. Valid values are integer numbers in range from <tt>0</tt> to <tt>255</tt>. Values greater than <tt>15</tt> may only be used if the <b>IO APIC</b> is enabled for this virtual machine. - Geeft het IRQ nummer van deze parallelle poort weer. Geldige waarden zijn gehele getallen tussen <tt>0</tt> en <tt>255</tt>. Waarden groter dan <tt>15</tt> kunnen alleen dan gebruikt worden als <b>I/O APIC</b>, voor deze virtuele machine is geactiveerd. - - I/O Po&rt: I/O Poo&rt: - Displays the base I/O port address of this parallel port. This should be a whole number between <tt>0</tt> and <tt>0xFFFF</tt>. - Geeft het basis I/O poort adres, van deze parallelle poort weer. Geldige waarden zijn gehele getallen tussen <tt>0</tt> en <tt>0xFFFF</tt>. - - Port &Path: - Poort &pad: + Poort&pad: Displays the host parallel device name. - Geeft de naam, van het parallelle apparaat, weer van de gastheer. + Toont de naam van het host parallelle-apparaat. Displays the IRQ number of this parallel port. This should be a whole number between <tt>0</tt> and <tt>255</tt>. Values greater than <tt>15</tt> may only be used if the <b>IO APIC</b> setting is enabled for this virtual machine. - Geeft het IRQ nummer van deze parallelle poort weer. Dit moet een geheel getal zijn tussen <tt>0</tt> en <tt>255</tt>. Waarden groter dan <tt>15</tt> mogen alleen worden gebruikt als de <b>IO APIC</b> instelling aan staat voor deze virtuele machine. + Toont het IRQ nummer van deze parallelle poort. Dit nummer moet een geheel getal zijn tussen <tt>0</tt> en <tt>255</tt>. Waarden groter dan <tt>15</tt> mogen alleen worden gebruikt als de <b>IO APIC</b> instelling voor deze virtuele machine aan staat. Displays the base I/O port address of this parallel port. Valid values are integer numbers in range from <tt>0</tt> to <tt>0xFFFF</tt>. - Geeft het basis I/O poort adres van deze parallelle poort weer. Geldige waarden zijn gehele getallen in de reeks van <tt>0</tt> tot <tt>0xFFFF</tt>. + Toont het basis I/O poortadres van deze parallelle poort. Geldige waarden zijn gehele getallen in de reeks van <tt>0</tt> tot <tt>0xFFFF</tt>. UIMachineSettingsParallelPage Duplicate port number selected - dubbel poortnummer geselecteerd + Dubbel poortnummer geselecteerd Port path not specified @@ -3190,7 +2395,7 @@ Duplicate port path entered - dubbel poortnummer is opgegeven + Er is een dubbel poortnummer opgegeven @@ -3221,24 +2426,12 @@ This button deletes selected port forwarding rule. - Deze knop verwijderd de geselecteerde doorverwijsregel. + Deze knop verwijdert de geselecteerde doorverwijsregel. UIMachineSettingsSF - &Add New Shared Folder - &Voeg een nieuwe gedeelde map toe - - - &Edit Selected Shared Folder - &Wijzig geselecteerde gedeelde map - - - &Remove Selected Shared Folder - &Verwijder geselecteerde gedeelde map - - Adds a new shared folder definition. Voegt een nieuwe definitie van een gedeelde map toe. @@ -3248,15 +2441,15 @@ Removes the selected shared folder definition. - Verwijderd de definitie van een gedeelde map. + Verwijdert de definitie van een gedeelde map. Machine Folders - map voor virtuele machines + Machinemappen Transient Folders - tijdelijke mappen + Tijdelijke mappen Full @@ -3264,11 +2457,11 @@ Read-only - Alleen lezen + Alleen-lezen Lists all shared folders accessible to this machine. Use 'net use x: \\vboxsvr\share' to access a shared folder named <i>share</i> from a DOS-like OS, or 'mount -t vboxsf share mount_point' to access it from a Linux OS. This feature requires Guest Additions. - Geeft een lijst met alle gedeelde mappen, die toegankelijk zijn voor deze machine. Gebruikt 'net use x: \\vboxsvr\share' om de gedeelde map genaamd <i>share</i> te benaderen in een op MS-DOS gebaseert besturingssysteem (zoals Windows).Gebruikt 'mount -t vboxsf share mount_point' om deze gedeelde map in een Linux omgeving te benaderen. De optie vereist de gast toevoegingen. + Toont een lijst met alle gedeelde mappen die toegankelijk zijn voor deze machine. Gebruik 'net use x: \\vboxsvr\share' om de gedeelde map genaamd <i>share</i> te benaderen in een op MS-DOS gebaseert besturingssysteem (zoals Windows). Gebruik 'mount -t vboxsf share mount_point' om deze gedeelde map in een Linux-omgeving te benaderen. Deze optie vereist de Guest Additions. Name @@ -3283,10 +2476,6 @@ Toegang - Global Folders - Globale mappen - - &Add Shared Folder &Voeg gedeelde map toe @@ -3327,23 +2516,23 @@ Folder Path: - Pad naar de map: + Pad naar map: Folder Name: - naam van de map: + Naam van map: Displays the name of the shared folder (as it will be seen by the guest OS). - Geeft de namen weer van de gedeelde map (zoals deze door het gast besturingssysteem wordt gezien). + Geeft de naam weer van de gedeelde map (zoals deze door het gastbesturingssysteem wordt gezien). When checked, the guest OS will not be able to write to the specified shared folder. - Is deze optie aangevinkt dan kan het gast besturingssysteem niet op de gespecificeerde gedeelde map schrijven. + Aangevinkt kan het gastbesturingssysteem niet naar de gespecificeerde gedeelde map schrijven. &Read-only - Alleen &lezen + Alleen-&lezen &Make Permanent @@ -3351,7 +2540,7 @@ When checked, the guest OS will try to automatically mount the shared folder on startup. - Is deze optie aangevinkt dan zal het gast besturingssysteem de gedeelde folder automatisch proberen te koppelen. + Aangevinkt zal het gastbesturingssysteem de gedeelde folder automatisch proberen te koppelen bij opstarten. &Auto-mount @@ -3359,7 +2548,7 @@ If checked, this shared folder will be permanent. - Is deze optie aangevinkt, dan zal deze gedeelde map permanent worden. + Aangevinkt zal deze gedeelde map permanent worden. @@ -3371,11 +2560,11 @@ When checked, enables the given serial port of the virtual machine. - Is deze optie aangevinkt dan wordt de gegeven seriële poort geactiveerd voor deze virtuele machine. + Aangevinkt wordt de gegeven seriële poort voor deze virtuele machine ingeschakeld. &Enable Serial Port - &Seriële poort activeren + &Seriële poort inschakelen Port &Number: @@ -3383,145 +2572,73 @@ Displays the serial port number. You can choose one of the standard serial ports or select <b>User-defined</b> and specify port parameters manually. - Geeft de seriële poortnummers weer. U kunt één van de standaard seriële poorten kiezen of selecteer een door de <b>gebruiker gedefinieerde</b> en specificeer de poort parameters handmatig. + Toont de seriële poortnummers. U kunt één van de standaard seriële poorten kiezen of selecteer <b>Gebruiker Gedefinieerd</b> en specificeer de poortparameters handmatig. &IRQ: &IRQ: - Displays the IRQ number of this serial port. Valid values are integer numbers in range from <tt>0</tt> to <tt>255</tt>. Values greater than <tt>15</tt> may only be used if the <b>IO APIC</b> is enabled for this virtual machine. - Geeft het IRQ nummer van deze seriële poort weer. Geldige waarden zijn gehele getallen tussen <tt>0</tt> en <tt>255</tt>. Waarden groter dan <tt>15</tt> kunnen alleen gebruikt worden als <b>I/O APIC</b> geactiveerd is voor deze virtuele machine. - - I/O Po&rt: I/O poo&rt: - Displays the base I/O port address of this serial port. This should be a whole number between <tt>0</tt> and <tt>0xFFFF</tt>. - Geeft het basis I/O poort adres weer van deze seriële poort. Geldige waarden zijn gehele getallen tussen <tt>0</tt> tot <tt>0xFFFF</tt>. - - Port &Mode: Poort&modus: Controls the working mode of this serial port. If you select <b>Disconnected</b>, the guest OS will detect the serial port but will not be able to operate it. - Controleert de status van deze seriële poort. Selecteert u <b>niet verbonden</b> dan zal het gast besturingssysteem de seriële poort wel detecteren maar is niet in staat ermee te werken. + Beheert de status van deze seriële poort. Selecteert u <b>Niet verbonden</b> dan zal het gastbesturingssysteem de seriële poort wel detecteren maar zal niet in staat zijn ermee te werken. If checked, the pipe specified in the <b>Port Path</b> field will be created by the virtual machine when it starts. Otherwise, the virtual machine will assume that the pipe exists and try to use it. - Is deze optie aangevinkt dan zal de pijp, gespecificeerd in het <b>pad voor de poort</b>, aangemaakt worden door de virtuele machine zodra deze opstart. Anders zal de virtuele machine een bestaande pijp proberen te gebruiken. + Aangevinkt zal de pijp gespecificeerd in het <b>Poort/bestandspad</b>-veld door de virtuele machine worden aangemaakt zodra deze opstart. Niet aangevinkt zal de virtuele machine een bestaande pijp proberen te gebruiken. &Create Pipe - Maak &Pijp aan + Maak &pijp aan Displays the path to the serial port's pipe on the host when the port is working in <b>Host Pipe</b> mode, or the host serial device name when the port is working in <b>Host Device</b> mode. - Geeft het pad weer naar de seriële poort op de gastheer, als de poort in <b>Host pijp</b> modus werkt, of de gastheer seriële apparaat naam, als de poort in <b>Host appparaat</b>modus werkt. + Toont het pad naar de seriële poort op de host indien de poort in <b>Host pijp</b>-modus werkt; en de naam van het host seriële-apparaat als de poort in <b>Host apparaat</b>-modus werkt. Port/File &Path: - Poort-/bestands&Pad: + &Poort/bestandspad: Displays the IRQ number of this serial port. This should be a whole number between <tt>0</tt> and <tt>255</tt>. Values greater than <tt>15</tt> may only be used if the <b>IO APIC</b> setting is enabled for this virtual machine. - Geeft het IRQ nummer van deze seriële poort weer. Dit moet een geheel getal zijn tussen <tt>0</tt> en <tt>255</tt>. Waarden groter dan <tt>15</tt> mogen alleen worden gebruikt als de <b>IO APIC</b> instelling aan staat voor deze virtuele machine. + Toont het IRQ-nummer van deze seriële poort. Dit nummer moet een geheel getal zijn tussen <tt>0</tt> en <tt>255</tt>. Waarden groter dan <tt>15</tt> mogen alleen worden gebruikt als de <b>IO APIC</b> instelling voor deze virtuele machine aan staat. Displays the base I/O port address of this serial port. Valid values are integer numbers in range from <tt>0</tt> to <tt>0xFFFF</tt>. - Geeft het basis I/O poort adres van deze seriële poort weer. Geldige waarden zijn gehele getallen in de reeks van <tt>0</tt> tot <tt>0xFFFF</tt>. + Geeft het basis I/O poortadres van deze seriële poort weer. Geldige waarden zijn gehele getallen in de reeks van <tt>0</tt> tot <tt>0xFFFF</tt>. UIMachineSettingsSerialPage Duplicate port number selected - Dubbel poortnummer gelecteerd + Dubbel poortnummer geselecteerd Port path not specified - pad naar de poort is niet gespecificeerd + Pad naar de poort is niet gespecificeerd Duplicate port path entered - Dubbel pad is opgegeven voor de poort + Er is een dubbel poortpad opgegeven UIMachineSettingsStorage - No hard disk is selected for <i>%1</i> - Geen harde schijf geselecteerd voor <i>%1</i> - - - <i>%1</i> uses the hard disk that is already attached to <i>%2</i> - <i>%1</i> gebruikt de harde schijf die al is gekoppeld aan <i>%2</i> - - - &Add Attachment - &Bijlage toevoegen - - - &Remove Attachment - Bijlage &verwijderen - - - &Select Hard Disk - &Selecteer harde schijf - - - Adds a new hard disk attachment. - Voegt een nieuwe harde schijf bijlage toe. - - - Removes the highlighted hard disk attachment. - Verwijderd en opgelichte harde schijf bijlage. - - - &Attachments - &Bijlagen - - - Lists all hard disks attached to this machine. Use a mouse click or the <tt>Space</tt> key on the highlighted item to activate the drop-down list and choose the desired value. Use the context menu or buttons to the right to add or remove hard disk attachments. - Geeft alle harde schijven, gekoppeld aan deze machine, weer. Klik met de muis of druk op de <tt>sSpatiebalk</tt> op een opgelicht item om een keuzelijst te activeren en kies de gewenste waarde. Gebruikt het context menu of de knoppen aan de rechterkant om een harde schijf toe te voegen of te verwijderen. - - - Invokes the Virtual Media Manager to select a hard disk to attach to the currently highlighted slot. - Roept de virtuele media manager aan om een harde schrijf te selecteren om deze vervolgens aan het opgelichte slot te koppelen. - - - If checked, shows the differencing hard disks that are attached to slots rather than their base hard disks (shown for indirect attachments) and allows explicit attaching of differencing hard disks. Check this only if you need a complex hard disk setup. - Is deze optie aangevinkt, dan worden de bijzondere harde schijven weergegeven, die nu gekoppeld zijn aan de slots, inplaats van basis harde schijven (weergegeven in het geval van indirecte koppeling) en zal ook andere onderscheiden harde schijven expliciet laten koppelen. Vink deze optie alleen aan als u een complexe opzet van harde schijven nodig hebt. - - - &Show Differencing Hard Disks - &Geef onderscheiden harde schijven weer - - - When checked, enables an additional virtual controller (either SATA or SCSI) of this machine. - Is deze optie aangevinkt dan wordt een extra virtuele controler ( of SATA of SCSI) geactiveerd voor deze machine. - - - &Enable Additional Controller - &activeer extra controler - - - IDE &Controller Type - Soort &IDE controller - - - Defines the type of the virtual IDE controller. Depending on this value, VirtualBox will provide different virtual IDE hardware devices to the guest OS. - Definieert het soort IDE controler. Afhankelijk van deze waarde zal VirtualBox andere virtuele IDE hardware leveren aan het gast besturingssysteem. - - <nobr><b>%1</b></nobr><br><nobr>Bus:&nbsp;&nbsp;%2</nobr><br><nobr>Type:&nbsp;&nbsp;%3</nobr> <nobr><b>%1</b></nobr><br><nobr>Bus:&nbsp;&nbsp;%2</nobr><br><nobr>Type:&nbsp;&nbsp;%3</nobr> <nobr>Expand/Collapse&nbsp;Item</nobr> - <nobr>Item&nbsp;uUitklappen/inklappen</nobr> + <nobr>Item&nbsp;Uitklappen/Inklappen</nobr> <nobr>Add&nbsp;Hard&nbsp;Disk</nobr> @@ -3529,19 +2646,15 @@ <nobr>Add&nbsp;CD/DVD&nbsp;Device</nobr> - <nobr>Voeg&nbsp;CD/DVD&nbsp;apparaat&nbsp;toe</nobr> + <nobr>Voeg&nbsp;CD/DVD&nbsp;speler&nbsp;toe</nobr> <nobr>Add&nbsp;Floppy&nbsp;Device</nobr> - <nobr>Voeg&nbsp;diskette&nbsp;apparaat&nbsp;toe</nobr> - - - No hard disk is selected for <i>%1</i>. - Geen harde schijf geselecteerd voor <i>%1</i>. + <nobr>Voeg&nbsp;diskette&nbsp;station&nbsp;toe</nobr> <i>%1</i> uses a medium that is already attached to <i>%2</i>. - <i>%1</i> gebruikt een medium die al is gekoppeld aan <i>%2</i>. + <i>%1</i> gebruikt een medium dat al is gekoppeld aan <i>%2</i>. Add Controller @@ -3569,7 +2682,7 @@ Add Attachment - Voeg bijlage toe + Voeg aansluiting toe Add Hard Disk @@ -3577,31 +2690,31 @@ Add CD/DVD Device - Voeg CD/DVD apparaat toe + Voeg CD/DVD speler toe Add Floppy Device - Voer diskette apparaat toe + Voeg diskette station toe Remove Attachment - Verwijder bijlage + Verwijder aansluiting Adds a new controller to the end of the Storage Tree. - Voeg een nieuwe controller toe aan einde van de opslagboom. + Voegt een nieuwe controller toe aan einde van Opslagstructuur. Removes the controller highlighted in the Storage Tree. - Verwijder de controller die oplicht in de opslagboom. + Verwijdert de controller die geselecteerd is in Opslagstructuur. Adds a new attachment to the Storage Tree using currently selected controller as parent. - Voeg een nieuwe bijlage toe aan de opslagboom en gebruik de geselecteerde controller als ouder. + Voegt een nieuwe aansluiting toe aan Opslagstructuur en gebruikt de geselecteerde controller als ouder. Removes the attachment highlighted in the Storage Tree. - Verwijderd de bijlage die oplicht in de opslagboom. + Verwijdert de aansluiting die geselecteerd is in Opslagstructuur. IDE Controller @@ -3624,20 +2737,13 @@ Harde &schijf: - &CD/DVD Device: - &CD/DVD apparaat: - - - &Floppy Device: - &Diskette apparaat: - - &Storage Tree - &Opslagboom + Opslagboom wordt niet gebruikt in nl, wel opslag structuur (met spatie, maar dat is MicroSoft) + &Opslagstructuur Contains all storage controllers for this machine and the virtual images and host drives attached to them. - Bevat alle opslag controllers voor deze machine en de virtuele images en de gastheer stations die aan gesloten zijn. + Bevat alle opslagcontrollers voor deze machine, de virtuele images en de hoststations die aangesloten zijn. Information @@ -3645,7 +2751,7 @@ The Storage Tree can contain several controllers of different types. This machine currently has no controllers. - De opslagboom kan verschillende controllers, ook andere soorten, bevatten. De machine heeft nu geen controllers. + Opslagstructuur kan verschillende controllers van verscheidene types bevatten. Deze machine heeft momenteel geen controllers. Attributes @@ -3657,60 +2763,41 @@ Changes the name of the storage controller currently selected in the Storage Tree. - Wijzigt de naam van de opslag controller die nu geselecteerd is in de opslagboom. + Wijzigt de naam van de opslagcontroller die momenteel geselecteerd is in Opslagstructuur. &Type: - &Soort: + &Type: Selects the sub-type of the storage controller currently selected in the Storage Tree. - Selecteert het soort opslag controller die nu is geselecteerd in de opslagboom. - - - S&lot: - S&lot: + Selecteert het sub-type van de opslagcontroller die momenteel is geselecteerd in Opslagstructuur. Selects the slot on the storage controller used by this attachment. The available slots depend on the type of the controller and other attachments on it. - nakijken wat de vertaling van attachment moet zijn in deze context - Selecteerd het slot van de opslag controller in gebruik bij deze bijlage. De beschikbaarheid van de slots hangt af van het soort controller verbindingen hier mee. - - - Selects the virtual disk image or the host drive used by this attachment. - Selecteerd de virtuele schijf image van het gastheer station in gebruik door deze bijlage. - - - Opens the Virtual Media Manager to select a virtual image for this attachment. - Opent de Virtuele media manager om een virtuele image te selecteren voor deze bijlage. - - - Open Virtual Media Manager - open de Virtuele media manager - - - D&ifferencing Disks - B&ijzondere schijven + EG - nakijken wat de vertaling van attachment moet zijn in deze context RL - 'aansluiting' lijkt mij correcter dan eerdere vertaling 'bijlage' + Selecteert het slot op de opslagcontroller dat gebruikt zal worden door deze aansluiting. De beschikbare de slots hangen af van het type controller en andere bestaande aansluitingen daarop. When checked, allows the guest to send ATAPI commands directly to the host-drive which makes it possible to use CD/DVD writers connected to the host inside the VM. Note that writing audio CD inside the VM is not yet supported. - Is de optie aangevinkt dan wordt toegestaan dat de gast direct ATAPI opdrachten verstuurt naar het station van de gastheer. Dit maakt het mogelijk om CD/DVD schrijf stations aan te sluiten op de virtuele machine. Let op het beschrijven van een audio CD is nog niet ondersteund. + Aangevinkt wordt toegestaan dat de gast direct ATAPI opdrachten verstuurt naar het station van de host. Dit maakt het mogelijk om CD/DVD-schrijfstations op de virtuele machine aan te sluiten. Let op: het beschrijven van een audio-CD wordt nog niet ondersteund. &Passthrough - &Doorgeven + &Passthrough als begrip laten staan + &Passthrough Virtual Size: - Virtuele grote: + Virtuele grootte: Actual Size: - Actuele grote: + Actuele grootte: Size: - Grote: + Grootte: Location: @@ -3726,27 +2813,19 @@ Allows to use host I/O caching capabilities. - Staat toe om de gastheer I/O caching mogelijkheden te gebruiken. + Staat toe host I/O caching-mogelijkheden te gebruiken. Use host I/O cache - Gebruik gastheer I/O cache + Gebruik host I/O cache Add SAS Controller - Voeg SAS controlertoe + Voeg SAS controller toe SAS Controller - SAS controler - - - Storage Controller - Opslag controler - - - Storage Controller 1 - Opslag controler 1 + SAS controller Type: @@ -3754,7 +2833,7 @@ Host Drive - Host station + Hoststation Image @@ -3774,23 +2853,23 @@ Choose a virtual CD/DVD disk or a physical drive to use with the virtual drive. The virtual machine will see a disk inserted into the drive with the data in the file or on the disk in the physical drive as its contents. - Kies een virtuele CD/DVD schijf of een fysiek station om te gebruiken voor het virtuele station. De virtuele machine zal een schijf, ingebracht in het station, met gegevens in het bestand of op de schijf in het fysieke station, beschouwen als zijn inhoud. + Kies een virtuele CD/DVD-schijf of een fysiek station om met het virtuele station te gebruiken. De virtuele machine zal een schijf ingebracht in het station, met de gegevens in het bestand of op de schijf in het fysieke station, beschouwen als haar inhoud. Set up the virtual CD/DVD drive - Zet een virtueel CD/DVD station op + Zet een virtueel CD/DVD-station op Floppy &Drive: - &Diskette station: + &Diskette-station: Choose a virtual floppy disk or a physical drive to use with the virtual drive. The virtual machine will see a disk inserted into the drive with the data in the file or on the disk in the physical drive as its contents. - Kies een virtuele diskette of een fysiek station om te gebruiken voor het virtuele station. De virtuele machine zal een schijf, ingebracht in het station, met gegevens in het bestand of op de schijf in het fysieke station, beschouwen als zijn inhoud. + Kies een virtuele diskette of een fysiek station om te gebruiken met het virtuele station. De virtuele machine zal een schijf ingebracht in het station, met de gegevens in het bestand of op de schijf in het fysieke station, beschouwen als haar inhoud. Set up the virtual floppy drive - Zet een virtueel diskette station op + Zet een virtueel diskette-station op Create a new hard disk... @@ -3798,100 +2877,101 @@ Choose a virtual hard disk file... - kies een virtueel harde schijf bestand... + Kies een virtueel harde schijf bestand... Choose a virtual CD/DVD disk file... - Kies een virtueel CD/DVD bestand... + Kies een virtueel CD/DVD-schijfbestand... Remove disk from virtual drive - Verwijder schijf van het virtuele station + Verwijder schijf van virtuele station Choose a virtual floppy disk file... - Kies een virtueel diskette bestand... + Kies een virtueel diskettebestand... When checked the virtual disk will not be removed when the guest system ejects it. - + Aangevinkt zal de virtuele disk niet worden verwijderd wanneer het gastsysteem het uitwerpt. &Live CD/DVD - + &Live CD/DVD When checked the guest system will see the virtual disk as a solid state device. - + Aangevinkt zal het gastsysteem de virtuele disk beschouwen als een solid-state apparaat. &Solid-state drive - + &Solid-state station Details: - + Details: no name specified for controller at position <b>%1</b>. - + geen naam opgegeven voor controller op positie <b>%1</b>. controller at position <b>%1</b> uses the name that is already used by controller at position <b>%2</b>. - + controller op positie <b>%1</b> gebruikt een naam die al wordt gebruikt door controller op positie <b>%2</b>. no hard disk is selected for <i>%1</i>. - + er is geen harde schijf geselecteerd voor <i>%1</i>. at most one supported controller - Op zijn minst één ondersteund + op zijn minst één ondersteund up to %1 supported controllers - tot %1 ondersteund + tot %1 ondersteund you are currently using more storage controllers than a %1 chipset supports. Please change the chipset type on the System settings page or reduce the number of the following storage controllers on the Storage settings page: %2. - u gebruikt nu meer opslagcontrolers dan een %1 chipset ondersteund. Wijzig aub het type chipset bij de pagina met systeeminstellingen of verminder het volgende aantal opslagcontrolers bij de pagina met opslaginstellingen: %2. + u gebruikt nu meer opslagcontrolers dan een %1-chipset ondersteunt. Wijzig aub het type chipset bij pagina Systeeminstellingen of verminder het aantal van de volgende opslagcontrolers op de pagina Opslaginstellingen: %2. &Port Count: - + Aantal &Poorten: Selects the port count of the SATA storage controller currently selected in the Storage Tree. This must be at least one more than the highest port number you need to use. - + number is hier aantal + Selecteert het aantal poorten van de SATA-opslagcontroller die momenteel geselecteerd is in Opslagstructuur. Deze moet op zijn minst staan op één meer dan het hoogste aantal poorten dat u nodig hebt om te gebruiken. UIMachineSettingsSystem you have assigned more than <b>%1%</b> of your computer's memory (<b>%2</b>) to the virtual machine. Not enough memory is left for your host operating system. Please select a smaller amount. - u heeft meer dan <b>%1%</b> van u geheugen in fysieke computer (<b>%2</b>) aan de virtuele machin toegewezen. Er blijft onvoldoende geheugen over voor uw gastheer besturingssysteem. Kies voor een lager aantal. + U hebt meer dan <b>%1%</b> van het geheugen van uw fysieke computer (<b>%2</b>) aan de virtuele machine toegewezen. Er blijft zo onvoldoende geheugen voor uw hostbesturingssysteem over. Kies alstublieft een lagere hoeveelheid. you have assigned more than <b>%1%</b> of your computer's memory (<b>%2</b>) to the virtual machine. There might not be enough memory left for your host operating system. Continue at your own risk. - u heeft meer dan <b>%1%</b> van u geheugen in fysieke computer (<b>%2</b>) aan de virtuele machin toegewezen. Er blijft onvoldoende geheugen over voor uw gastheer besturingssysteem. Doorgaan is op eigen risico . + U hebt meer dan <b>%1%</b> van het geheugen van uw fysieke computer (<b>%2</b>) aan de virtuele machine toegewezen. Er blijft zo onvoldoende geheugen over voor uw hostbesturingssysteem. Doorgaan is geheel op eigen risico. for performance reasons, the number of virtual CPUs attached to the virtual machine may not be more than twice the number of physical CPUs on the host (<b>%1</b>). Please reduce the number of virtual CPUs. - Voor een goede prestatatie, mag het aantal virtuele CPU's, gekoppeld aan de virtuele machine, niet groter zijn dan twee keer het aantal fysieke CPU's van de gastheer (<b>%1</b>). Verlaag het aantal virtuele CPU's. + Voor een goede prestatatie mag het aantal virtuele CPU's gekoppeld aan de virtuele machine niet groter zijn dan twee keer het aantal fysieke CPU's van de host (<b>%1</b>). Verlaag alstublieft het aantal virtuele CPU's. you have assigned more virtual CPUs to the virtual machine than the number of physical CPUs on your host system (<b>%1</b>). This is likely to degrade the performance of your virtual machine. Please consider reducing the number of virtual CPUs. - u heeft meer virtuele CPU's toegewezen aan de virtuele machine dan het aantal fysieke CPU's in uw gastheer computer (<b>%1</b>). Dit verlaagt de prestaties van uw virtuele machine. Overweeg het aantal virtuele CPU's te verlagen. + U hebt meer virtuele CPU's toegewezen aan de virtuele machine dan het aantal fysieke CPU's in uw hostcomputer (<b>%1</b>). Dit verlaagt de prestaties van uw virtuele machine. Overweeg gerust het aantal virtuele CPU's te verlagen. Ik zou het doen. you have assigned more than one virtual CPU to this VM. This will not work unless the IO-APIC feature is also enabled. This will be done automatically when you accept the VM Settings by pressing the OK button. - u heeft meer dan één virtuele CPU toegewezen aan deze virtuele machine. Dit zal niet eerder werken totdat de IO-APIC optie ook is geactiveerd. Dit gebeurt automatisch als u de VM instellingen accepteerd en op de Ok knop drukt. + U hebt meer dan één virtuele CPU toegewezen aan deze virtuele machine. Dit zal niet eerder werken totdat de IO-APIC optie ook is ingeschakeld. Dit gebeurt automatisch als u de VM instellingen accepteert door op de OK-knop te klikken. you have assigned more than one virtual CPU to this VM. This will not work unless hardware virtualization (VT-x/AMD-V) is also enabled. This will be done automatically when you accept the VM Settings by pressing the OK button. - u heeft meer dan één virtuele CPU toegewezen aan deze virtuele machine. Dit zal niet eerder werken totdat de hardware virtualisering (VT-x/AMD-V) ook is geactiveerd. Dit gebeurt automatisch als u de VM instellingen accepteerd en op de Ok knop drukt. + U hebt meer dan één virtuele CPU toegewezen aan deze virtuele machine. Dit zal niet eerder werken totdat de hardware virtualisering (VT-x/AMD-V) ook is ingeschakeld. Dit gebeurt automatisch als u de VM instellingen accepteert door op de OK-knop te klikken. <qt>%1&nbsp;MB</qt> @@ -3903,21 +2983,16 @@ <qt>%1&nbsp;CPU</qt> - <qt>%1&nbsp;CPUs</qt> - %1 is 32 for now - <qt>%1&nbsp;CPU's</qt> - - &Motherboard &Moederbord Base &Memory: - &Basis geheugen: + &Basisgeheugen: Controls the amount of memory provided to the virtual machine. If you assign too much, the machine might not start. - Controleert de hoeveelheid geheugen geleverd aan de virtuele machine. Wijst u teveel toe dan kan het zijn dat de machine niet opstart. + Beheert de hoeveelheid geheugen geleverd aan de virtuele machine. Wijst u teveel toe, dan kan het zijn dat de machine niet opstart. MB @@ -3925,47 +3000,39 @@ &Boot Order: - &Opstart volgorde: + &Opstartvolgorde: Defines the boot device order. Use the checkboxes on the left to enable or disable individual boot devices. Move items up and down to change the device order. - Legt de opstart volgorde vast. Gebruik de keuzevakjes aan de linker zijde om individuele opstart apparaten te activeren of te deactiveren. Verplaats items naar boven of beneden om de opstart volgorde te wijzigen. + Definieert de opstartvolgorde. Gebruik de keuzevakjes aan de linker zijde om individuele opstartapparaten te activeren of te deactiveren. Verplaats items naar boven of beneden om de opstartvolgorde te wijzigen. Move Down (Ctrl-Down) - Naarbeneden (Ctrl-neer) + Naar beneden (Ctrl-Down) Moves the selected boot device down. - Verplaats het geselecteerde opstart apparaat naar beneden. + Verplaats het geselecteerde opstartapparaat naar beneden. Move Up (Ctrl-Up) - Naar boven (Ctrl+op) + Naar boven (Ctrl+Up) Moves the selected boot device up. - Verplaats het geselecteerde opstart apparaat naar boven. + Verplaats het geselecteerde opstartapparaat naar boven. Extended Features: Uitgebreide mogelijkheden: - When checked, the virtual machine will support the Advanced Configuration and Power Management Interface (ACPI). <b>Note:</b> don't disable this feature after having installed a Windows guest operating system! - Is deze optie aangevinkt dan zal de virtuele machine de geavanceerde configuratie voor de stroom management interface (ACPI) ondersteunen. <b>Let op:</b> deactiveer deze optie niet nadat u het gast besturingssysteem heeft geïnstalleerd! - - - Enable &ACPI - &ACPI activeren - - When checked, the virtual machine will support the Input Output APIC (IO APIC), which may slightly decrease performance. <b>Note:</b> don't disable this feature after having installed a Windows guest operating system! - Is deze optie aangevinkt dan zal de virtuele machine de invoer/uitvoer APIC (IO APIC) ondersteunen, dit de prestatie negatief beïnvloeden. <b>Let op:</b> deactiveer deze optie niet nadat u het gast besturingssysteem heeft geïnstalleerd! + Aangevinkt zal de virtuele machine de Invoer/Uitvoer APIC (IO APIC) ondersteunen. Dit zal de prestatie negatief beïnvloeden. <b>Let op:</b> schakel deze optie niet uit nadat u het gastbesturingssysteem hebt geïnstalleerd! Enable &IO APIC - &IO APIC activeren + &IO APIC inschakelen &Processor @@ -3976,16 +3043,12 @@ &Processor(en): - Controls the number of virtual CPUs in the virtual machine. - Controleert het aantal virtuele CPU in de virtuele machine. - - When checked, the Physical Address Extension (PAE) feature of the host CPU will be exposed to the virtual machine. - Is deze optie aangevinkt dan zal de fysieke adres uitbreiding (PAE) optie van de fysieke CPU zichtbaar worden voor de virtuele machine. + Aangevinkt zal de fysieke adresuitbreiding (PAE) optie van de fysieke CPU voor de virtuele machine zichtbaar worden. Enable PA&E/NX - PA&E/NX activeren + PA&E/NX inschakelen Acce&leration @@ -3997,19 +3060,19 @@ When checked, the virtual machine will try to make use of the host CPU's hardware virtualization extensions such as Intel VT-x and AMD-V. - Is deze optie aangevinkt dan zal de virtuele machine proberen gebruikt te maken van de hardware virtualiserings uitbreiding, zoals Intel VT-x en AMD-V. + Aangevinkt zal de virtuele machine proberen gebruik te maken van hardware virtualiseringsextenties, zoals Intel VT-x en AMD-V. Enable &VT-x/AMD-V - &VT-x/AMD-V activeren + &VT-x/AMD-V inschakelen When checked, the virtual machine will try to make use of the nested paging extension of Intel VT-x and AMD-V. - Is deze optie aangevinkt dan zal de virtuele machine proberen gebruikt te maken van de geneste paging uitbreiding van VT-x of AMD-V. + Aangevinkt zal de virtuele machine proberen gebruik te maken van geneste-pagingextenties van VT-x of AMD-V. Enable Nested Pa&ging - &Geneste Paging activeren + &Geneste Paging inschakelen <qt>%1&nbsp;CPUs</qt> @@ -4018,7 +3081,7 @@ When checked, the guest will support the Extended Firmware Interface (EFI), which is required to boot certain guest OSes. Non-EFI aware OSes will not be able to boot if this option is activated. - Is deze optie aangevinkt dan zal de gast de Extended Firmware Interface (EFI) ondersteunen, deze is verplicht om bepaalde gast besturingssystemen te kunnen opstarten. Besturingssystemen die EFI niet ondersteunen kunnen niet opstarten als deze optie aan staat. + Aangevinkt zal de gast de Extended Firmware Interface (EFI) ondersteunen. Deze is verplicht om bepaalde gastbesturingssystemen te kunnen opstarten. Besturingssystemen die EFI niet ondersteunen kunnen niet opstarten als deze optie aan staat. Enable &EFI (special OSes only) @@ -4026,7 +3089,7 @@ If checked, the RTC device will report the time in UTC, otherwise in local (host) time. Unix usually expects the hardware clock to be set to UTC. - Is deze optie aangevinkt dan zal het RTC apparaat de tijd in UTC formaat rapporteren, anders in locale (gastheer) tijd. Unix verwachte normaal gesproken dat de klok op UTC staat. + Aangevinkt zal het RTC apparaat de tijd in UTC formaat rapporteren; anders in locale (host) tijd. Unix verwacht normaal gesproken dat de klok op UTC staat. Hardware clock in &UTC time @@ -4034,11 +3097,11 @@ Controls the number of virtual CPUs in the virtual machine. You need hardware virtualization support on your host system to use more than one virtual CPU. - Controleert het aantal virtuale CPUs in de virtuale machine. U hebt hardware virtualisatie ondersteuningn nodig op uw gastheersysteem om meer dan één virtuale CPU te gebruiken. + Beheert het aantal virtuele CPUs in de virtuele machine. U hebt hardware virtualisatie ondersteuning nodig op uw hostsysteem om meer dan één virtuele CPU te kunnen gebruiken. If checked, an absolute pointing device (a USB tablet) will be supported. Otherwise, only a standard PS/2 mouse will be emulated. - Is deze optie aangevinkt dan wordt een USB tablet ondersteund. Anders wordt alleen een standaard PS/2 muis geëmulateerd. + Aangevinkt wordt een USB tablet ondersteund. Anders wordt alleen een standaard PS/2 muis geëmuleerd. Enable &absolute pointing device @@ -4050,41 +3113,39 @@ Selects the chipset to be emulated in this virtual machine. Note that the ICH9 chipset emulation is experimental and not recommended except for guest systems (such as Mac OS X) which require it. - Bepaals welke soort chipset door deze VM wordt gebruikt. - - - you have selected emulation of an ICH9 chipset in this machine. This requires the IO-APIC feature to be enabled. This will be done automatically when you accept the VM Settings by pressing the OK button. - u heeft een ICH9 chipset type toegekend aan deze VM. Deze zal niet goed werken tenzij de IO-APIC optie is geactiveerd. Dit wordt automatisch uitgevoerd als u de VM instellingen accpeteerd door op OK te klikken. + Selecteert de chipset die in deze VM moet worden geëmuleerd. Besef dat de ICH9 chipset-emulatie experimenteel is en niet wordt aangeraden, behalve voor gastsystemen (zoals Mac OS X) die niet zonder kunnen. &Execution Cap: - + RL: in de lijn van processor capacity /onvertaald laten lijkt me, wordt uitgelegd in de volgende string + &Execution Cap: Limits the amount of time that each virtual CPU is allowed to run for. Each virtual CPU will be allowed to use up to this percentage of the processing time available on one physical CPU. The execution cap can be disabled by setting it to 100%. Setting the cap too low can make the machine feel slow to respond. - + timeslicing dus + Beperkt de tijdsduur waarbinnen instructies door elke virtuele CPU kunnen worden uitgevoerd. Elke virtuele CPU zal dit percentage van de beschikbare processortijd worden toegestaan op één fysieke CPU. De execution cap kan worden uitgeschakeld door deze in te stellen op 100%. De cap te laag zetten kan de indruk wekken dat de machine langzaam reageert. you have set the processor execution cap to a low value. This can make the machine feel slow to respond. - + U hebt de processor execution cap op een te lage waarde ingesteld. Dit kan de indruk wekken dat de machine langzaam reageert. you have enabled a USB HID (Human Interface Device). This will not work unless USB emulation is also enabled. This will be done automatically when you accept the VM Settings by pressing the OK button. - U hebt een USB HID (Human Interface Device) geactiveerd. Deze zal niet werken zolang de USB emulatie niet is geactiveerd. Dit wordt automatisch gedaan als u de VM instellingen accepteerd door op de Ok knop te klikken. + U hebt een USB HID (Human Interface Device) ingeschakeld. Deze zal niet werken zolang de USB-emulatie niet is ingeschakeld. Dit wordt automatisch gedaan als u de VM instellingen accepteert door op de OK-knop te klikken. <qt>%1%</qt> Min CPU execution cap in % - + <qt>%1%</qt> <qt>%1%</qt> Max CPU execution cap in % - + <qt>%1%</qt> you have assigned ICH9 chipset type to this VM. It will not work properly unless the IO-APIC feature is also enabled. This will be done automatically when you accept the VM Settings by pressing the OK button. - + U hebt het ICH9 chipset type aan deze VM toegewezen. Dit zal niet eerder naar behoren werken totdat de IO-APIC feature eveneens is ingeschakeld. Dit gebeurt automatisch als u de VM instellingen accepteert door op de OK knop te klikken. @@ -4107,7 +3168,7 @@ &Move Filter Up - Verplaats filter &Omhoog + Verplaats filter o&mhoog M&ove Filter Down @@ -4119,7 +3180,7 @@ Adds a new USB filter with all fields set to the values of the selected USB device attached to the host PC. - Voegt een nieuw USB filter toe waarbij de velden de waarden van het geselecteerde USB apparaat, aangesloten op de fysieke PC, overnemen. + Voegt een nieuw USB filter toe waarbij de velden de waarden van het geselecteerde USB apparaat aangesloten op de fysieke PC overnemen. Edits the selected USB filter. @@ -4127,15 +3188,15 @@ Removes the selected USB filter. - Verwijderd geselecteerde USB filter. + Verwijdert geselecteerd USB filter. Moves the selected USB filter up. - Verplaatst geselecteerde USB filter omhoog. + Verplaatst geselecteerd USB filter omhoog. Moves the selected USB filter down. - Verplaats geselecteerde USB filter naar beneden. + Verplaats geselecteerd USB filter naar beneden. New Filter %1 @@ -4144,19 +3205,19 @@ When checked, enables the virtual USB controller of this machine. - Is deze optie aangevinkt dan wordt de virtuele USB controler, op deze machine, geactiveerd. + Aangevinkt wordt de virtuele USB-controller van deze machine ingeschakeld. Enable &USB Controller - &USB controler activeren + &USB controller inschakelen When checked, enables the virtual USB EHCI controller of this machine. The USB EHCI controller provides USB 2.0 support. - Is deze optie aangevinkt dan zal de virtuele USB EHCI controler, van deze machine, geactiveerd worden. De USB EHCI controler levert ondersteuning voor USB 2.0. + Aangevinkt zal de virtuele USB EHCI controller van deze machine worden ingeschakeld. De USB EHCI controller levert ondersteuning voor USB 2.0. Enable USB 2.0 (E&HCI) Controller - USB &2.0 controler activeren + USB &2.0 controller inschakelen USB Device &Filters @@ -4164,7 +3225,7 @@ Lists all USB filters of this machine. The checkbox to the left defines whether the particular filter is enabled or not. Use the context menu or buttons to the right to add or remove USB filters. - Geeft een lijst weer met alle USB filters op deze machine. Het keuzevakje aan de linkerkant bepaald of het specifieke filter geactiveerd is of niet. Gebruik het context menu of de knoppen aan de rechterzijde om USB filters toe te voegen of te verwijderen. + Toont een lijst met alle USB filters van deze machine. Het keuzevakje aan de linkerkant bepaalt of het specifieke filter ingeschakeld is of niet. Gebruik het contextmenu of de knoppen aan de rechterzijde om USB filters toe te voegen of te verwijderen. [filter] @@ -4208,15 +3269,12 @@ <nobr>State: %1</nobr> USB filter tooltip - <nobr>Status: %1</nobr> - - - USB 2.0 is currently enabled for this virtual machine. However this requires the <b>%1</b> to be installed. Please install the Extension Pack from the VirtualBox download site. After this you will be able to re-enable USB 2.0. It will be disabled in the meantime unless you cancel the current settings changes. - USB 2.0 is momenteel geactiveerd voor deze virtuele machine. Maar dit vereist installatie van <b>%1</b>. Installeer het uitbreidingspakket beschikbaar op de VirtualBox download site. Hierna ben u instaat om de USB 2.0 opnieuw te activeren. In de tussentijn blijft deze inactief tenzij u de huidige instelling wijzigd. + <nobr>Staat: %1</nobr> USB 2.0 is currently enabled for this virtual machine. However, this requires the <b>%1</b> to be installed. Please install the Extension Pack from the VirtualBox download site. After this you will be able to re-enable USB 2.0. It will be disabled in the meantime unless you cancel the current settings changes. - + laatste voor de duidelijkheid er zelf bij gezet, dichtersvrijheid ;) + USB 2.0 is voor deze virtuele machine momenteel ingeschakeld. Dit vereist echter dat <b>%1</b> wordt geïnstalleerd. Installeer het Extention Pack van de VirtualBox-downloadsite. Na installatie zult u in staat zijn USB 2.0 weer in te schakelen. In de tussentijd zal USB 2.0 zijn uitgeschakeld, tenzij u de verandering van deze instelling annuleert (en daarmee dus niet kiest voor USB 2.0). @@ -4224,6 +3282,7 @@ Any remote + EG - zie strings hieronder: 'any' betekent hier zowel de fysieke als de virtuele kant Beide @@ -4250,7 +3309,7 @@ Defines the vendor ID filter. The <i>exact match</i> string format is <tt>XXXX</tt> where <tt>X</tt> is a hexadecimal digit. An empty string will match any value. - Bepaald het filter voor het ID van de leverancier. Het <i>precieze</i> formaat is<tt>XXXX</tt> waarbij <tt>X</tt> een hexadecimaal getal is. Een leeg veld zal met elke waarde overeenkomen. + Bepaalt het filter voor het ID van de leverancier. Het <i>precieze</i> formaat is<tt>XXXX</tt> waarbij <tt>X</tt> een hexadecimaal getal is. Een leeg veld zal met elke waarde overeenkomen. &Product ID: @@ -4258,7 +3317,7 @@ Defines the product ID filter. The <i>exact match</i> string format is <tt>XXXX</tt> where <tt>X</tt> is a hexadecimal digit. An empty string will match any value. - Bepaald het filter voor het ID van de product. Het <i>precieze</i> formaat is<tt>XXXX</tt> waarbij <tt>X</tt> een hexadecimaal getal is. Een leeg veld zal met elke waarde overeenkomen. + Bepaalt het filter voor het ID van het product. Het <i>precieze</i> formaat is<tt>XXXX</tt> waarbij <tt>X</tt> een hexadecimaal getal is. Een leeg veld zal met elke waarde overeenkomen. &Revision: @@ -4266,7 +3325,7 @@ Defines the revision number filter. The <i>exact match</i> string format is <tt>IIFF</tt> where <tt>I</tt> is a decimal digit of the integer part and <tt>F</tt> is a decimal digit of the fractional part. An empty string will match any value. - Bepaald het filter voor het revisie nummer. Het <i>precieze</i> formaat is<tt>IIFF</</tt> waarbij <tt>I</tt> een geheel getal is en <tt>F</tt> is getal achter de komma. Een leeg veld zal met elke waarde overeenkomen. + Bepaalt het filter voor het revisienummer. Het <i>precieze</i> formaat is<tt>IIFF</</tt> waarbij <tt>I</tt> een geheel getal is en <tt>F</tt> een getal achter de komma. Een leeg veld zal met elke waarde overeenkomen. &Manufacturer: @@ -4274,7 +3333,7 @@ Defines the manufacturer filter as an <i>exact match</i> string. An empty string will match any value. - Bepaald het filter voor de fabrikant als een <i>exacte overeenkomst</i>. Een leeg veld zal met elke waarde overeenkomen. + Bepaalt het filter voor de fabrikant als een <i>exacte overeenkomst</i>. Een leeg veld zal met elke waarde overeenkomen. Pro&duct: @@ -4282,7 +3341,7 @@ Defines the product name filter as an <i>exact match</i> string. An empty string will match any value. - Bepaald het filter voor de productnaam als een <i>exacte overeenkomst</i>. Een leeg veld zal met elke waarde overeenkomen. + Bepaalt het filter voor de productnaam als een <i>exacte overeenkomst</i>. Een leeg veld zal met elke waarde overeenkomen. &Serial No.: @@ -4290,7 +3349,7 @@ Defines the serial number filter as an <i>exact match</i> string. An empty string will match any value. - Bepaald het filter voor het serienummer als een <i>exacte overeenkomst</i>. Een leeg veld zal met elke waarde overeenkomen. + Bepaalt het filter voor het serienummer als een <i>exacte overeenkomst</i>. Een leeg veld zal met elke waarde overeenkomen. Por&t: @@ -4298,7 +3357,7 @@ Defines the host USB port filter as an <i>exact match</i> string. An empty string will match any value. - Bepaald het filter voor de fysieke USB poort als een <i>exacte overeenkomst</i>. Een leeg veld zal met elke waarde overeenkomen. + Bepaalt het filter voor de fysieke USB poort als een <i>exacte overeenkomst</i>. Een leeg veld zal met elke waarde overeenkomen. R&emote: @@ -4306,7 +3365,7 @@ Defines whether this filter applies to USB devices attached locally to the host computer (<i>No</i>), to a VRDP client's computer (<i>Yes</i>), or both (<i>Any</i>). - Bepaald of dit filter werkt voor USB apparaten lokaal gekoppeld aan de fysieke computer. (<i>Nee</i>) voor een VRDP computer (<i>Ja</i>) of beide (<i>Beide</i>). + Bepaalt of dit filter werkt voor USB apparaten die lokaal gekoppeld zijn aan: de fysieke computer. (<i>Nee</i>), een VRDP computer (<i>Ja</i>) of beide (<i>Beide</i>). &Action: @@ -4314,7 +3373,7 @@ Defines an action performed by the host computer when a matching device is attached: give it up to the host OS (<i>Ignore</i>) or grab it for later usage by virtual machines (<i>Hold</i>). - Bepaald de actie die de gastheer computer uitvoert als een overeenkomstig apparaat wordt aangesloten: geef het aan het gastheer besturingssysteem (<i>negeren</i>) of pak het op voor toekomstig gebruik door virtuele machines (<i>Vasthouden</i>). + Bepaalt de actie die de hostcomputer uitvoert als een passend apparaat wordt aangesloten: geef het door aan het hostbesturingssysteem (<i>Negeren</i>) of pak het op voor eventueel later gebruik door virtuele machines (<i>Vasthouden</i>). USB Filter Details @@ -4325,22 +3384,22 @@ UIMachineWindowNormal Shows the currently assigned Host key.<br>This key, when pressed alone, toggles the keyboard and mouse capture state. It can also be used in combination with other keys to quickly perform actions from the main menu. - Geeft de nu toegekende gastheer toets weer.<br>Door alleen deze toets aan te raken wordt de status van het toetsenbord en de muis omgewisseld.De toets wordt ook in combinatie met andere toetsen gebruikt om snel acties uit het hoofdmenu uit te voeren. + Toont de huidige Hosttoets.<br>Door alleen deze toets in te drukken wordt de status van het toetsenbord en de muis omgewisseld.De toets wordt ook in combinatie met andere toetsen gebruikt om snelacties uit het hoofdmenu uit te voeren. UIMediumTypeChangeDialog Modify medium attributes - + Bewerk medium attributen <p>You are about to change the attributes of the virtual disk located in <b>%1</b>.</p><p>Please choose one of the following medium types and press <b>%2</b> to proceed or <b>%3</b> otherwise.</p> - + <p>U staat op het punt de attributen van de virtuele schijf op plek <b>%1</b> te veranderen.</p><p>Kies één van de volgende media medium types en druk op <b>%2</b> om door te gaan of <b>%3</b> anders.</p> Choose medium type: - + Kies medium type: @@ -4353,7 +3412,7 @@ VirtualBox - Question msg box title - VirtualBox -vraag + VirtualBox -Vraag VirtualBox - Warning @@ -4373,11 +3432,11 @@ Do not show this message again msg box flag - Geef deze boodschap niet opnieuw weer + Geef deze boodschap niet opnieuw The following files already exist:<br /><br />%1<br /><br />Are you sure you want to replace them? Replacing them will overwrite their contents. - De volgende bestanden bestaal al: <br/><br/>%1<br/><br/>Weet u zeker dat u deze wil vervangen? Door deze te vervangen overschrijft u de inhoud. + De volgende bestanden bestaan al: <br/><br/>%1<br/><br/>Weet u zeker dat u deze wilt vervangen? Door deze te vervangen overschrijft u de inhoud. You are running a prerelease version of VirtualBox. This version is not suitable for production use. @@ -4385,11 +3444,11 @@ Failed to open <tt>%1</tt>. Make sure your desktop environment can properly handle URLs of this type. - Het is niet gelukt <tt>%1</tt> te openen. Verzeker u ervan dat uw bureaublad omgeving op een goede wijze met URL's van dit soort om kan gaan. + Het is niet gelukt <tt>%1</tt> te openen. Zorg ervoor dat uw bureaubladomgeving op een goede wijze met URL's van dit soort kan omgaan. <p>Failed to initialize COM or to find the VirtualBox COM server. Most likely, the VirtualBox server is not running or failed to start.</p><p>The application will now terminate.</p> - <p>Het is niet gelukt de COM op te zetten of de VirtualBox COM server is niet gevonden. Waarschijnlijk draait de VirtualBox server niet of lukt het niet deze op te starten.</p><p>Het programma wordt nu afgesloten.</p> + <p>Het is niet gelukt COM te initialiseren of de VirtualBox COM-server is niet gevonden. Waarschijnlijk draait de VirtualBox-server niet of lukt het niet deze op te starten.</p><p>Het programma wordt nu afgesloten.</p> <p>Failed to create the VirtualBox COM object.</p><p>The application will now terminate.</p> @@ -4401,7 +3460,7 @@ Failed to access the USB subsystem. - Het is niet gelukt om toegang naar het USB subsysteem te krijgen. + Het is niet gelukt om toegang tot het USB subsysteem te krijgen. Failed to create a new virtual machine. @@ -4413,7 +3472,7 @@ Failed to apply the settings to the virtual machine <b>%1</b>. - Het is niet gelukt de eigenschappen aan virtuele machine <b>%1</b> toe te kennen. + Het is niet gelukt de instellingen aan virtuele machine <b>%1</b> toe te kennen. Failed to start the virtual machine <b>%1</b>. @@ -4421,7 +3480,7 @@ Failed to pause the execution of the virtual machine <b>%1</b>. - Het is niet gelukt virtuele machine<b>%1</b> te pauseren. + Het is niet gelukt virtuele machine <b>%1</b> te pauzeren. Failed to resume the execution of the virtual machine <b>%1</b>. @@ -4429,7 +3488,7 @@ Failed to save the state of the virtual machine <b>%1</b>. - Het is niet gelukt de status van virtuele machine <b>%1</b> op te slaan. + Het is niet gelukt de staat van virtuele machine <b>%1</b> op te slaan. Failed to create a snapshot of the virtual machine <b>%1</b>. @@ -4437,7 +3496,7 @@ Failed to stop the virtual machine <b>%1</b>. - Het is niet gelukt virtuele machine<b>%1</b> te stoppen. + Het is niet gelukt virtuele machine <b>%1</b> te stoppen. Failed to remove the virtual machine <b>%1</b>. @@ -4445,47 +3504,19 @@ Failed to discard the saved state of the virtual machine <b>%1</b>. - Het is niet gelukt de opgeslagen status van virtuele machine <b>%1</b> weg te gooien. + Het is niet gelukt de opgeslagen staat van virtuele machine <b>%1</b> weg te gooien. <p>VT-x/AMD-V hardware acceleration has been enabled, but is not operational. Your 64-bit guest will fail to detect a 64-bit CPU and will not be able to boot.</p><p>Please ensure that you have enabled VT-x/AMD-V properly in the BIOS of your host computer.</p> - <p>De VT-x/AMD-V hardware versnelling is geactiveerd maar niet operationeel. Uw 64-Bit gast kan de 64 Bit CPU niet herkennen en zal dus niet opstarten.</p><p>Verzeker u ervan dat de VT-x/AMD-V instelling correct is aangezet in de BIOS van uw fysieke computer.</p> - - - Failed to discard the snapshot <b>%1</b> of the virtual machine <b>%2</b>. - Het is niet gelukt de momentopame <b>%1</b> van virtuele machine <b>%2</b> weg te gooien. - - - Failed to discard the current state of the virtual machine <b>%1</b>. - Het is niet gelukt de huidige status van virtuele machine <b>%1</b> weg te gooien. - - - Failed to discard the current snapshot and the current state of the virtual machine <b>%1</b>. - Het is niet gelukt de huidige momentopname en de huidige status van virtuele machine <b>%1</b> weg te gooien. + <p>De VT-x/AMD-V hardwareversnelling is ingeschakeld maar niet operationeel. Uw 64-Bit gast kan de 64 Bit CPU niet herkennen en zal dus niet opstarten.</p><p>Zorg er voor dat de VT-x/AMD-V instelling in de BIOS van uw fysieke computer correct is aangezet.</p> There is no virtual machine named <b>%1</b>. - Een virtuele machine met deze naam bestaat niet <b>%1</b>. - - - <p>Are you sure you want to permanently delete the virtual machine <b>%1</b>?</p><p>This operation cannot be undone.</p> - <p>Weet u zeker dat u virtuele machine <b>%1</b> voorgoed wil verwijderen?</p><p>Deze actie kan niet teruggedraaid worden.</p> - - - <p>Are you sure you want to unregister the inaccessible virtual machine <b>%1</b>?</p><p>You will not be able to register it again from GUI.</p> - <p>Weet u zeker dat u, de niet te benaderen, virtuele machine <b>%1</b> wilt uitschrijven?</p><p>U kunt deze dan niet meer via de GUI registreren.</p> + Een virtuele machine met de naam <b>%1</b> bestaat niet. <p>Are you sure you want to discard the saved state of the virtual machine <b>%1</b>?</p><p>This operation is equivalent to resetting or powering off the machine without doing a proper shutdown of the guest OS.</p> - <p>Weet u zeker dat u de opgeslagen status van virtuele machine <b>%1</b> wilt weggooien?</p><p>Deze actie staat gelijk aan het uitzetten van de machine zonder het gast besturingssysteem netjes af te sluiten.</p> - - - <p>There are hard disks attached to ports of the additional controller. If you disable the additional controller, all these hard disks will be automatically detached.</p><p>Are you sure you want to disable the additional controller?</p> - <p>Aan de poorten van de extra controler zijn harde schijven gekoppeld. Zet u deze controler uit dan zullen al deze harde schijven automatisch ontkoppeld worden.</p><p>Weet u het zeker dat deze controler wilt deactiveren?</p> - - - <p>There are hard disks attached to ports of the additional controller. If you change the additional controller, all these hard disks will be automatically detached.</p><p>Are you sure you want to change the additional controller?</p> - <p>Aan de poorten van de extra controler zijn harde schijven gekoppeld. Past u deze controler aan dan zullen al deze harde schijven automatisch ontkoppeld worden.</p><p>Weet u het zeker dat u deze controler uit wilt zetten?</p> + <p>Weet u zeker dat u de opgeslagen staat van virtuele machine <b>%1</b> wilt weggooien?</p><p>Deze actie staat gelijk aan het uitzetten van de machine zonder het gastbesturingssysteem netjes af te sluiten.</p> Failed to create a new session. @@ -4493,11 +3524,11 @@ Failed to open a session for the virtual machine <b>%1</b>. - Het is niet gelukt een sessie aan te maken voor virtuele machine <b>%1</b>. + Het is niet gelukt een sessie te openen voor virtuele machine <b>%1</b>. <p>Deleting this host-only network will remove the host-only interface this network is based on. Do you want to remove the (host-only network) interface <nobr><b>%1</b>?</nobr></p><p><b>Note:</b> this interface may be in use by one or more virtual network adapters belonging to one of your VMs. After it is removed, these adapters will no longer be usable until you correct their settings by either choosing a different interface name or a different adapter attachment type.</p> - <p>Verwijderen van dit host-only netwerk zal leiden tot het verwijderen van de host only interface waarop dit netwerk is gebaseerd. Wilt u deze (host-only netwerk) interface <nobr><b>%1</b></nobr> verwijderen?</p><p><b>Let op:</b> Deze interface wordt mogelijk door meerdere virtuele netwerk adapters, van uw virtuele machines, gebruikt. Nadat deze interface is verwijderd zullen de adapters niet meer bruikbaar zijn, tenzij u de instellingen corrigeert door of een andere interface naam of een andere soort adapter te kiezen.</p> + <p>Verwijderen van dit host-only netwerk zal leiden tot het verwijderen van de host-only interface waarop dit netwerk is gebaseerd. Wilt u deze (host-only netwerk) interface <nobr><b>%1</b></nobr> verwijderen?</p><p><b>Let op:</b> Deze interface wordt mogelijk door meerdere virtuele netwerkadapters van uw virtuele machines gebruikt. Nadat deze interface is verwijderd zullen de adapters niet meer bruikbaar zijn, tenzij u de instellingen corrigeert door hetzij een andere interfacenaam hetzij een andere soort adapter te kiezen.</p> Failed to remove the host network interface <b>%1</b>. @@ -4513,37 +3544,37 @@ Failed to create the shared folder <b>%1</b> (pointing to <nobr><b>%2</b></nobr>) for the virtual machine <b>%3</b>. - Het is niet gelukt om gedeelde map <b>%1</b> (die verwijst naar <nobr><b>%2</b></nobr>) aan te maken voor virtuale machine <b>%3</b>. + Het is niet gelukt om gedeelde map <b>%1</b> (verwijzend naar <nobr><b>%2</b></nobr>) aan te maken voor virtuele machine <b>%3</b>. Failed to remove the shared folder <b>%1</b> (pointing to <nobr><b>%2</b></nobr>) from the virtual machine <b>%3</b>. - Het is niet gelukt om gedeelde map <b>%1</b> (die verwijst naar <nobr><b>%2</b></nobr>) te verwijderen van virtuale machine <b>%3</b>. + Het is niet gelukt om gedeelde map <b>%1</b> (verwijzend naar <nobr><b>%2</b></nobr>) te verwijderen van virtuele machine <b>%3</b>. <p>The Virtual Machine reports that the guest OS does not support <b>mouse pointer integration</b> in the current video mode. You need to capture the mouse (by clicking over the VM display or pressing the host key) in order to use the mouse inside the guest OS.</p> - <p>De virtuale machine rapporteert dat het gast besturingssysteem geen <b>muis integraten</b> ondersteunt in de huidige video modus. U moet de muis vangen, door te klikken in het venster van de virtuale machine of door te drukken op de gastheer toets, om deze te kunnen gebruiken in het gast besturingssyteem.</p> + <p>De virtuele machine rapporteert dat het gastbesturingssysteem geen <b>muisintegratie</b> ondersteunt in de huidige videomodus. U moet de muis (in)vangen door te klikken in het venster van de virtuele machine of door te drukken op de Hosttoets om de muis te kunnen gebruiken in het gastbesturingssysteem.</p> <p>The Virtual Machine is currently in the <b>Paused</b> state and not able to see any keyboard or mouse input. If you want to continue to work inside the VM, you need to resume it by selecting the corresponding action from the menu bar.</p> - <p>De virtuale machine is nu in de <b>gepauseerde</b> toestand en accepteert daarom geen invoer van het toetsenbord of de muis. Wilt u doorgaan met werken in deze virtuale machine dan moet u deze activeren via de overeenkomstige actie in de menubalk.</p> + <p>De virtuele machine is nu in <b>Pauze</b> stand en accepteert daarom geen invoer van toetsenbord of muis. Indien u wilt doorgaan met werken binnen deze virtuele machine moet u deze machine activeren via de checkbox menu-optie hiervoor in de menubalk.</p> <p>Cannot run VirtualBox in <i>VM Selector</i> mode due to local restrictions.</p><p>The application will now terminate.</p> - <p>VirtualBox kan niet draaien in <i>VM Selector modus</i> door locake restricties.</p><p>Het programma sluit zich af.</p> + <p>VirtualBox kan niet draaien in <i>VM Selector modus</i> door lokale restricties.</p><p>Het programma sluit zich nu af.</p> Failed to create appliance. - Het is niet gelukt om een appliance aan te maken. + Appliance aanmaken mislukt. <nobr>Fatal Error</nobr> runtime error info - <nobr>Fatale fout</nobr> + <nobr>Fatale Fout</nobr> <nobr>Non-Fatal Error</nobr> runtime error info - <nobr>Normale fout</nobr> + <nobr>Niet-fatale Fout</nobr> <nobr>Warning</nobr> @@ -4558,24 +3589,24 @@ Severity: runtime error info - nauwgezetheid: + Ernst: <p>A fatal error has occurred during virtual machine execution! The virtual machine will be powered off. Please copy the following error message using the clipboard to help diagnose the problem:</p> - <p>Een fatale fout is opgetreden tijdens de werking van de virtuale machine! De virtuale machine wordt uitgezet. Het is zinvol om de volgende foutboodschap te kopieren, wat helpt bij het nader onderzoeken van het probleem:</p> + <p>Een fatale fout is opgetreden tijdens de werking van de virtuele machine! De virtuele machine zal worden uitgezet. Het is zinvol om de volgende foutboodschap naar het klembord te kopieren, wat helpt bij diagnose van het probleem:</p> <p>An error has occurred during virtual machine execution! The error details are shown below. You may try to correct the error and resume the virtual machine execution.</p> - <p>een fout is opgetreden tijdens de werking van de virtuale machine! De details van de fout worden hieronder weergegeven. U kunt proberen de beschreven fout te herstellen en de uitvoering van de virtuale machine.voort te zetten.</p> + <p>Een fout is opgetreden tijdens de werking van de virtuele machine! De details van de fout worden hieronder weergegeven. U kunt proberen de beschreven fout te herstellen en de uitvoering van de virtuele machine vervolgens.voort te zetten.</p> <p>The virtual machine execution may run into an error condition as described below. We suggest that you take an appropriate action to avert the error.</p> - <p>De uitvoering van de virtuale machine.kan tegen de onderstaande foutsituatie aanlopen. U kunt de boodschap negeren maar het is verstandig om een geschikte actie te ondernemen om er zeker van te zijn deze fout niet zal optreden. </p> + <p>De uitvoering van de virtuele machine kan tegen de onderstaande foutsituatie aanlopen. U kunt de boodschap negeren maar het is verstandig om een geschikte actie te ondernemen om er zeker van te zijn dat deze fout niet zal optreden.</p> Result&nbsp;Code: error info - Resultaat&nbsp;code: + Resultaat&nbsp;Code: Component: @@ -4590,92 +3621,66 @@ Callee: error info - ? + Eigenlijk: Aangeroepene: proces/functie e.d.dat wordt aangeroepen, callee laten staan voor probleemoplossing via internet Callee: Callee&nbsp;RC: error info - / - Callee&nbsp;RC: + Eigenlijk: Aangeroepene: proces/functie e.d.dat wordt aangeroepen, callee laten staan voor probleemoplossing via internet + Callee&nbsp;RC: <p>Could not find a language file for the language <b>%1</b> in the directory <b><nobr>%2</nobr></b>.</p><p>The language will be temporarily reset to the system default language. Please go to the <b>Preferences</b> dialog which you can open from the <b>File</b> menu of the main VirtualBox window, and select one of the existing languages on the <b>Language</b> page.</p> - <p>Kan geen taalbestand vinden voor de taal <b>%1</b> in de folder <b><nobr>%2</nobr></b>.</p><p>De taal wordt tijdelijk terug gezet op de systeem standaard. Ga naar de <b>voorkeuren</b> dialoog, deze is te bereiken via het menu in het VirtualBox hoofdscherm, en selecteer een van de bestaande talen uit de pagina <b>talen</b>.</p> + <p>Kan geen taalbestand vinden voor de taal <b>%1</b> in de map <b><nobr>%2</nobr></b>.</p><p>De taal wordt tijdelijk teruggezet op de systeemstandaard. Ga naar <b>Voorkeuren</b> dialoog, deze is te bereiken via het menu in het VirtualBox hoofdscherm. Selecteer één van de aanwezige talen op de pagina <b>Talen</b>.</p> <p>Could not load the language file <b><nobr>%1</nobr></b>. <p>The language will be temporarily reset to English (built-in). Please go to the <b>Preferences</b> dialog which you can open from the <b>File</b> menu of the main VirtualBox window, and select one of the existing languages on the <b>Language</b> page.</p> - <p>Kan het taalbestand <b><nobr>%1</nobr></b> niet laden.<p>De taal wordt tijdelijk terug gezet naar Engels (ingebouwd). Ga naar de <b>voorkeuren</b> dialoog, deze is te bereiken via het menu in het VirtualBox hoofdscherm, en selecteer een van de bestaande talen uit de pagina <b>talen</b>.</p> - - - <p>The VirtualBox Guest Additions installed in the Guest OS are too old: the installed version is %1, the expected version is %2. Some features that require Guest Additions (mouse integration, guest display auto-resize) will most likely stop working properly.</p><p>Please update the Guest Additions to the current version by choosing <b>Install Guest Additions</b> from the <b>Devices</b> menu.</p> - <p>De gast uitbreidingen, geïnstalleerd in de het gast besturingssysteem, zijn te oud: versie %1 is geïnstalleerd, terwijl versie %2 wordt verwacht. Een aantal onderdelen die afhankelijk zijn van de gast uitbreiding (muis integratie, automatisch scherm aanpassen) zullen niet goed werken .</p><p>Werk de gast uitbreiding bij door te kiezen voor <b>gast uitbreiding installatie</b> in het menu <b>apparaten</b>.</p> - - - <p>The VirtualBox Guest Additions installed in the Guest OS are outdated: the installed version is %1, the expected version is %2. Some features that require Guest Additions (mouse integration, guest display auto-resize) may not work as expected.</p><p>It is recommended to update the Guest Additions to the current version by choosing <b>Install Guest Additions</b> from the <b>Devices</b> menu.</p> - <p>De gast uitbreidingen, geïnstalleerd in de het gast besturingssysteem, zijn verouderd: versie %1 is geïnstalleerd, terwijl versie %2 wordt verwacht. Een aantal onderdelen die afhankelijk zijn van de gast uitbreiding (muis integratie, automatisch scherm aanpassen) zullen niet goed werken.</p><p>Werk de gast uitbreiding bij door te kiezen voor <b>gast uitbreiding installatie</b> in het menu <b>apparaten</b>.</p> - - - <p>The VirtualBox Guest Additions installed in the Guest OS are too recent for this version of VirtualBox: the installed version is %1, the expected version is %2.</p><p>Using a newer version of Additions with an older version of VirtualBox is not supported. Please install the current version of the Guest Additions by choosing <b>Install Guest Additions</b> from the <b>Devices</b> menu.</p> - <p>De gast uitbreidingen, geïnstalleerd in de het gast besturingssysteem, zijn te nieuw: versie %1 is geïnstalleerd, terwijl versie %2.</p><p>wordt verwacht. Een te nieuwe versie gebruiken bij een oudere versie van VirtualBox wordt niet ondersteunt. Installeer de huidige versie van |de gast uitbreiding door te kiezen voor <b>gast uitbreiding installatie</b> in het menu <b>apparaten</b>.</p> - - - Failed to change the snapshot folder path of the virtual machine <b>%1<b> to <nobr><b>%2</b></nobr>. - Het is niet gelukt om het pad naar de map voor de momentopname, van virtuele machine <b>%1</b>, te wijzigen naar <nobr>%2</b></nobr>. + <p>Kan het taalbestand <b><nobr>%1</nobr></b> niet laden.<p>De taal wordt tijdelijk teruggezet naar Engels (ingebouwd). Ga naar <b>Voorkeuren</b> dialoog, deze is te bereiken via het menu in het VirtualBox hoofdscherm. Selecteer een van de aanwezige talen op de pagina <b>Talen</b>.</p> <p>Failed to remove the shared folder <b>%1</b> (pointing to <nobr><b>%2</b></nobr>) from the virtual machine <b>%3</b>.</p><p>Please close all programs in the guest OS that may be using this shared folder and try again.</p> - <p>Het is niet gelukt om de gedeeld map <b>%1</b> (die verwijst naar <nobr><b>%2</b></nobr>) te verwijderen van virtuele machine <b>%3</b>.</p><p>Sluit alle programma's af, in het gast besturginssysteem, die deze map mogen gebruiken en probeer het opnieuw.</p> + <p>Het is niet gelukt om de gedeeld map <b>%1</b> (die verwijst naar <nobr><b>%2</b></nobr>) te verwijderen van virtuele machine <b>%3</b>.</p><p>Sluit alle programma's af in het gastbesturingssysteem die deze map mogen gebruiken en probeer het opnieuw.</p> <p>Could not find the VirtualBox Guest Additions CD image file <nobr><b>%1</b></nobr> or <nobr><b>%2</b>.</nobr></p><p>Do you wish to download this CD image from the Internet?</p> - <p>De CD image bestand <nobr><b>%1</b></nobr> of <nobr><b>%2</b></nobr> , met daarop de gast uitbreidingen, is niet te vinden.</p><p>Wilt u deze downloaden van het internet?</p> + <p>Het VirtualBox Guest Additions CD image bestand <nobr><b>%1</b></nobr> of <nobr><b>%2</b></nobr> is niet te vinden.</p><p>Wilt u deze downloaden van het internet?</p> <p>Failed to download the VirtualBox Guest Additions CD image from <nobr><a href="%1">%2</a>.</nobr></p><p>%3</p> - <p>Het is niet gelukt om het CD image bestand, met daarop de gast uitbreidingen, bij <nobr><a href="%1">%2</a></nobr> te downloaden.</p><p>%3</p> + <p>Het is niet gelukt het VirtualBox Guest Additions CD-image van <nobr><a href="%1">%2</a></nobr> te downloaden.</p><p>%3</p> <p>Are you sure you want to download the VirtualBox Guest Additions CD image from <nobr><a href="%1">%2</a></nobr> (size %3 bytes)?</p> - <p>Weet u het zeker dat u het CD image bestand, met daarop de gast uitbreidingen, bij <nobr><a href="%1">%2</a></nobr> (omvang %3 bytes) wil downladen?</p> + <p>Weet u het zeker dat u het VirtualBox Guest Additions CD image bestand van <nobr><a href="%1">%2</a></nobr> (omvang %3 bytes) wil downladen?</p> <p>The VirtualBox Guest Additions CD image has been successfully downloaded from <nobr><a href="%1">%2</a></nobr> and saved locally as <nobr><b>%3</b>.</nobr></p><p>Do you wish to register this CD image and mount it on the virtual CD/DVD drive?</p> - <p>Het CD image bestand, met daarop de gast uitbreidingen, is succesvol gedownload bij <nobr><a href="%1">%2</a></nobr> en locaal opgeslagen als <nobr><b>%3</b></nobr>.</p><p>wilt u de CD image registreren en koppelen aan het virtuele CD/DVD station?</p> + <p>Het VirtualBox Guest Additions CD image bestand is met succes gedownload van <nobr><a href="%1">%2</a></nobr> en lokaal opgeslagen als <nobr><b>%3</b></nobr>.</p><p>wilt u het CD image registreren en koppelen aan het virtuele CD/DVD station?</p> <p>The virtual machine window is optimized to work in <b>%1&nbsp;bit</b> color mode but the virtual display is currently set to <b>%2&nbsp;bit</b>.</p><p>Please open the display properties dialog of the guest OS and select a <b>%3&nbsp;bit</b> color mode, if it is available, for best possible performance of the virtual video subsystem.</p><p><b>Note</b>. Some operating systems, like OS/2, may actually work in 32&nbsp;bit mode but report it as 24&nbsp;bit (16 million colors). You may try to select a different color mode to see if this message disappears or you can simply disable the message now if you are sure the required color mode (%4&nbsp;bit) is not available in the guest OS.</p> - <p>Het venster van de virtuale machine is geöptimaliseerd om te werken in <b>%1 bits</b> kleurenmodus, echter de kleurkwaliteit van het virtuele beeldscherm staat op <b>%2&nbsp;bit</b>.</p><p>Open de beeldscherm eigenschappen in het gast besturingssysteem en selecteer <b>%3 bits</b>kleurenmodus,mits beschikbaar, voor de beste prestatie van het video subsysteem.</p><p><b>Let op</b>: Sommige besturingssystemen (zoals OS/2) werken in 32 bits kleurenmodus maar melden dit als 24 bits kleurenmodus (16 miljoen kleuren).U kunt proberen een andere kleur kwaliteit te selecteren om de boodschap weg te krijgen of u kunt de boodschap nu uitzetten, als u zeker weet dat de vereist kleur kwaliteit (%4&nbsp; bit) niet beschikbaar is in het besturingssysteem.</p> + <p>Het venster van de virtuele machine is geöptimaliseerd om te werken in <b>%1 bits</b> kleurenmodus, echter de kleurkwaliteit van het virtuele beeldscherm staat op <b>%2&nbsp;bit</b>.</p><p>Open de beeldscherm-eigenschappen in het gastbesturingssysteem en selecteer indien beschikbaar <b>%3 bits</b>kleurenmodus voor de beste prestatie van het video-subsysteem.</p><p><b>Let op:</b> Sommige besturingssystemen (zoals OS/2) werken in 32 bits kleurenmodus maar melden dit als 24 bits kleurenmodus (16 miljoen kleuren).U kunt proberen een andere kleurkwaliteit te selecteren om deze boodschap weg te krijgen of u kunt de boodschap gewoon nu uitzetten indien u zeker weet dat de vereiste kleurkwaliteit (%4&nbsp; bit) niet beschikbaar is op het gastbesturingssysteem.</p> <p>You didn't attach a hard disk to the new virtual machine. The machine will not be able to boot unless you attach a hard disk with a guest operating system or some other bootable media to it later using the machine settings dialog or the First Run Wizard.</p><p>Do you wish to continue?</p> - <p>U heeft geen harde schijf gekoppeld aan de nieuwe virtuele machine. De machine kan niet eerder opstarten dan nadat u een harde schijf, met een gast besturingssysteem of een andere opstartbaar medium, hebt gekoppeld. U kunt dit doen via de machine instellingen dialoog of door de assistent op te starten.</p><p>Wilt u doorgaan?</p> + <p>U hebt geen harde schijf aan de nieuwe virtuele machine gekoppeld. De machine kan niet eerder opstarten dan nadat u eerst een harde schijf met een gastbesturingssysteem of een andere opstartbaar medium hebt aangekoppeld. U kunt dit doen via het dialoog Machine-instellingen of door de Start Assistent op te starten.</p><p>Wilt u doorgaan?</p> Failed to find license files in <nobr><b>%1</b></nobr>. - Het is niet gelukt om het licentie bestand in <nobr><b>%1</b></nobr> te vinden. + Het is niet gelukt het licentiebestand in <nobr><b>%1</b></nobr> te vinden. Failed to open the license file <nobr><b>%1</b></nobr>. Check file permissions. - Het is niet gelukt om het licentie bestand <nobr><b>%1</b></nobr> te openen. Controleer de toegangsrechten. + Het is niet gelukt het licentiebestand <nobr><b>%1</b></nobr> te openen. Controleer de toegangsrechten. Failed to send the ACPI Power Button press event to the virtual machine <b>%1</b>. - Het is niet gelukt om de ACPI startknop gebeurtenis naar virtuele machine <b>%1</b> te sturen. + Het is niet gelukt de ACPI startknopgebeurtenis naar virtuele machine <b>%1</b> te sturen. <p>Congratulations! You have been successfully registered as a user of VirtualBox.</p><p>Thank you for finding time to fill out the registration form!</p> - <p>Gefeliciteerd! u bent met succes geregistreerd als gebuiker van VirtualBox.</p><p>Bedankt dat u de moeite nam om het registratieformulier in te vullen!</p> - - - Delete - machine - Verwijder - - - Unregister - machine - Uitschrijven + <p>Gefeliciteerd! U bent met succes geregistreerd als gebuiker van VirtualBox.</p><p>Bedankt dat u de moeite nam om het registratieformulier in te vullen!</p> Discard @@ -4690,16 +3695,17 @@ Mount additions - aankoppelen + Aankoppelen <p>The host key is currently defined as <b>%1</b>.</p> additional message box paragraph - <p>De gasheer toets is op dit moment als <b>%1</b> gedefineerd.</p> + <p>De Hosttoets is op dit moment gedefineerd als <b>%1</b>.</p> Capture do input capture + RL - Of Opvangen, Afvangen - heeft te maken met opvangen input volgens dev com Vangen @@ -4710,21 +3716,21 @@ Switch fullscreen - Overschakelen + Switchen Switch seamless - Overschakelen + Switchen <p>Do you really want to reset the virtual machine?</p><p>This will cause any unsaved data in applications running inside it to be lost.</p> - <p>Weet u zeker dat u de virtuele machine wilt resetten?</p><p>Wordt de machine gereset dan gaan alle, niet opgeslagen, gegevens van alle draaiende programma's verloren.</p> + <p>Weet u zeker dat u de virtuele machine wilt resetten?</p><p>Wordt de machine gereset dan gaan alle niet opgeslagen gegevens van alle draaiende programma's verloren.</p> Reset machine - Terugzetten + Reset Continue @@ -4734,83 +3740,48 @@ Go Back no hard disk attached - Terug gaan - - - <p>Failed to save the global VirtualBox settings to <b><nobr>%1</nobr></b>.</p> - <p>Het is niet gelukt om instellingen van de VirtualBox naar<b><nobr>%1</nobr></b> op te slaan.</p> + Teruggaan <p>Failed to load the global GUI configuration from <b><nobr>%1</nobr></b>.</p><p>The application will now terminate.</p> - <p>Het is niet gelukt om de algemene GUI configuratie te laden vanuit <b><nobr>%1</nobr></b>.</p><p>Het programma wordt nu afgesloten.</p> + <p>Het is niet gelukt de algemene GUI-configuratie te laden vanuit <b><nobr>%1</nobr></b>.</p><p>Het programma wordt nu afgesloten.</p> <p>Failed to save the global GUI configuration to <b><nobr>%1</nobr></b>.</p><p>The application will now terminate.</p> - <p>Het is niet gelukt om de algemene GUI configuratie op te slaan in <b><nobr>%1</nobr></b>.</p><p>Het programma wordt nu afgesloten.</p> + <p>Het is niet gelukt de algemene GUI-configuratie op te slaan in <b><nobr>%1</nobr></b>.</p><p>Het programma wordt nu afgesloten.</p> Failed to save the settings of the virtual machine <b>%1</b> to <b><nobr>%2</nobr></b>. - Het is niet gelukt om de instellingen van virtuele machine <b>%1</b> op te slaan in <b><nobr>%2</nobr></b>. + Het is niet gelukt de instellingen van virtuele machine <b>%1</b> op te slaan in <b><nobr>%2</nobr></b>. Failed to load the settings of the virtual machine <b>%1</b> from <b><nobr>%2</nobr></b>. - Het is niet gelukt om de instellingen van virtuele machine <b>%1</b> vanuit <b><nobr>%2</nobr></b> te laden. - - - Disable - hard disk - Deactiveren - - - &Backup - warnAboutAutoConvertedSettings message box - &Back-up - - - Failed to copy file <b><nobr>%1</nobr></b> to <b><nobr>%2</nobr></b> (%3). - Het is niet mogelijk om bestand <b><nobr>%1</nobr></b> te kopiëren naar <b><nobr>%2</nobr></b> (%3). - - - &Create - hard disk - &Aanmaken - - - Select - hard disk - Selecteer + Het is niet gelukt de instellingen van virtuele machine <b>%1</b> vanuit <b><nobr>%2</nobr></b> te laden. <p>Could not enter seamless mode due to insufficient guest video memory.</p><p>You should configure the virtual machine to have at least <b>%1</b> of video memory.</p> - <p>Kan de naadloze modus niet binnengaan omdat de gast onvoldoende video geheugen heeft.</p><p>U moet, bij de configuratie, de virtuele machine minimaal <b>%1</b> video geheugen meegeven.</p> + <p>Kan de naadloze modus niet binnengaan omdat de gast onvoldoende videogeheugen heeft.</p><p>U moet bij de configuratie de virtuele machine minimaal <b>%1</b> videogeheugen meegeven.</p> <p>Could not switch the guest display to fullscreen mode due to insufficient guest video memory.</p><p>You should configure the virtual machine to have at least <b>%1</b> of video memory.</p><p>Press <b>Ignore</b> to switch to fullscreen mode anyway or press <b>Cancel</b> to cancel the operation.</p> - <p>Kan de gast scherm niet laten overschakelen op schermvullend omdat de gast te weinig video geheugen heeft.</p><p>U moet, bij de configuratie, de virtuele machine minimaal <b>%1</b> video geheugen meegeven.</p><p>klik op <b>Negeren</b> om toch op volledig beeld over te schakelen of klik op<b>Annuleren</b> om niets te doen.</p> + <p>Kan het gastscherm niet laten overschakelen op schermvullend omdat de gast te weinig videogeheugen heeft.</p><p>U moet bij de configuratie de virtuele machine minimaal <b>%1</b> videogeheugen meegeven.</p><p>Klik op <b>Negeren</b> om toch op volledig beeld over te schakelen of klik op<b>Annuleren</b> om niets te doen.</p> You are already running the most recent version of VirtualBox. - U heeft reeds de laatste versie van VirtualBox geïnstalleerd. + Tekst zo ivm uitvullen in mededelingschermpje, is terugmelding als je handmatig controleert op updates + U hebt de meest recente versie van VirtualBox. <p>You have <b>clicked the mouse</b> inside the Virtual Machine display or pressed the <b>host key</b>. This will cause the Virtual Machine to <b>capture</b> the host mouse pointer (only if the mouse pointer integration is not currently supported by the guest OS) and the keyboard, which will make them unavailable to other applications running on your host machine.</p><p>You can press the <b>host key</b> at any time to <b>uncapture</b> the keyboard and mouse (if it is captured) and return them to normal operation. The currently assigned host key is shown on the status bar at the bottom of the Virtual Machine window, next to the&nbsp;<img src=:/hostkey_16px.png/>&nbsp;icon. This icon, together with the mouse icon placed nearby, indicate the current keyboard and mouse capture state.</p> - <p>U heeft op <b>de muis geklikt</b>in het scherm van de virtuele machine of op <b>gastheer toets</b> gedrukt.Dit zorgt ervoor dat de virtuele machine de muis <b>vangt</b> (dit treed alleen op als de muis integratie niet ondersteund wordt door het gast besturingssysteem) en het toetsenbord. Deze twee zijn dan niet meer beschikbaar voor andere applicaties die draaien op de gastheer machine.</p><p>U kunt op ieder moment op de <b>gastheer toets</b> drukken omhet toetsenbord en de muis (als deze gevangen is) weer <b>vrij te geven</b>. De huidige gastheer toets word weergegeven in de statusbalk onderin het venster van de virtuele machine, naast het&nbsp;<img src=:/hostkey_16px.png/>&nbsp;ikoon. Dit ikoon, samen met het muis ikoon, geven de huidige status weer, gevangen of vrij.</p> + <p>U hebt op <b>de muis geklikt</b> in het scherm van de virtuele machine of op <b>Hosttoets</b> geklikt. Dit zorgt ervoor dat de virtuele machine de muis <b>vangt</b> (dit gebeurt alleen als muisintegratie door het gastbesturingssysteem niet ondersteund wordt) en daarmee ook het toetsenbord. Deze twee zijn dan niet meer beschikbaar voor andere applicaties die draaien op de hostmachine.</p><p>U kunt op ieder moment op de <b>Hosttoets</b> drukken om het toetsenbord en de muis (als deze gevangen is) weer <b>vrij te geven</b>. De huidige Hosttoets wordt weergegeven in de statusbalk onder in het venster van de virtuele machine, naast het&nbsp;<img src=:/hostkey_16px.png/>&nbsp;icoon. Dit icoon geeft samen met het muis-icoon de huidige status weer, te weten gevangen of vrij.</p> <p>You have the <b>Auto capture keyboard</b> option turned on. This will cause the Virtual Machine to automatically <b>capture</b> the keyboard every time the VM window is activated and make it unavailable to other applications running on your host machine: when the keyboard is captured, all keystrokes (including system ones like Alt-Tab) will be directed to the VM.</p><p>You can press the <b>host key</b> at any time to <b>uncapture</b> the keyboard and mouse (if it is captured) and return them to normal operation. The currently assigned host key is shown on the status bar at the bottom of the Virtual Machine window, next to the&nbsp;<img src=:/hostkey_16px.png/>&nbsp;icon. This icon, together with the mouse icon placed nearby, indicate the current keyboard and mouse capture state.</p> - <p>U heeft de modus <b>automatisch toetsenbord vangen</b> aangezet. Dit zorgt ervoor dat de virtuele machine automatisch het toetsenbord <b>vangt</b> iedere keer dat het VM venster wordt geactiveerd en maakt het toetsenbaar, voor andere applicaties, niet beschikbaar. Is het toestenbord gevangen dan worden alle toets aanslagen (inclusief de speciale zoals Alt-Tab) doorgegeven aan de VM.<p></p>U kunt ieder moment op de <b>gastheer toets</b> drukken om het toetsenbord en de muis (als deze gevangen is) weer <b>vrij te geven</b>. De huidige gastheer toets word weergegeven in de statusbalk onderin het venster van de virtuele machine, naast het&nbsp;<img src=:/hostkey_16px.png/>&nbsp;ikoon. Dit ikoon, samen met het muis ikoon, geven de huidige status weer, gevangen of vrij</p> + <p>U hebt de modus <b>Automatisch toetsenbord vangen</b> aangezet. Dit zorgt ervoor dat de Virtuele Machine automatisch het toetsenbord <b>vangt</b> iedere keer dat het VM venster wordt geactiveerd en maakt daarmee het toetsenbaar voor andere applicaties onbeschikbaar. Eenmaal het toestenbord gevangen worden alle toetsaanslagen (inclusief de speciale zoals Alt-Tab) doorgegeven aan de virtuele machine.<p></p>U kunt ieder moment op de <b>Hosttoets</b> drukken om het toetsenbord en de muis (als deze gevangen is) weer <b>vrij te geven</b>. De huidige Hosttoets wordt weergegeven in de statusbalk onder in het venster van de virtuele machine, naast het&nbsp;<img src=:/hostkey_16px.png/>&nbsp;icoon. Dit icoon geeft samen met het muis-icoon de huidige status weer, te weten gevangen of vrij</p> <p>The Virtual Machine reports that the guest OS supports <b>mouse pointer integration</b>. This means that you do not need to <i>capture</i> the mouse pointer to be able to use it in your guest OS -- all mouse actions you perform when the mouse pointer is over the Virtual Machine's display are directly sent to the guest OS. If the mouse is currently captured, it will be automatically uncaptured.</p><p>The mouse icon on the status bar will look like&nbsp;<img src=:/mouse_seamless_16px.png/>&nbsp;to inform you that mouse pointer integration is supported by the guest OS and is currently turned on.</p><p><b>Note</b>: Some applications may behave incorrectly in mouse pointer integration mode. You can always disable it for the current session (and enable it again) by selecting the corresponding action from the menu bar.</p> - <p>De virtuele machine meldt dat het gast besturingssysteem <b>muis integratie</b> ondersteund. Dit betekend dat u niet de muis hoeft te <i>vangen</i> om deze in het gast besturingssysteem te gebruiken. Bevindt de muis zich op het venster van de virtuele machnie dan zullen alle acties naar het gast besturingssysteem worden gestuurd. Is de muis nu gevangen dan wordt deze automatisch vrijgegeven.</p><p>Het ikoon van de muis op statusbalk lijkt hierop:&nbsp;<img src=:/mouse_seamless_16px.png/>&nbsp; dit maakt duidelijk dat muis integratie wordt ondersteund en nu geactiveerd is.</p><p><b>Let op:</b> bepaalde applicaties kunnen zich vreem gedragen in deze modus. U kunt dit altijd deactiveren voor de huidige sessie (en later weer activeren) door de overeenkomstige actie in de menubalk te selecteren.</p> - - - <p>The virtual machine window will be now switched to <b>fullscreen</b> mode. You can go back to windowed mode at any time by pressing <b>%1</b>. Note that the <i>Host</i> key is currently defined as <b>%2</b>.</p><p>Note that the main menu bar is hidden in fullscreen mode. You can access it by pressing <b>Host+Home</b>.</p> - <p>De virtuale machine schakelt nu over op de <b>schermvullende</b> modus. U kunt ieder moment terug keren door op <b>%1</b> te drukken. Let op: de <i>gastheer toets</i> is op dit moment <b>%2</b>.</p><p>Let op: het hoofdmenu is verborgen bij volledig scherm. U kunt dit menu benaderen door op de <b>gastheer toets+Home</b> te drukken.</p> - - - <p>The virtual machine window will be now switched to <b>Seamless</b> mode. You can go back to windowed mode at any time by pressing <b>%1</b>. Note that the <i>Host</i> key is currently defined as <b>%2</b>.</p><p>Note that the main menu bar is hidden in seamless mode. You can access it by pressing <b>Host+Home</b>.</p> - <p>De virtuale machine schakelt nu over op de <b>naadloze</b> modus. U kunt ieder moment terug keren door op <b>%1</b> te drukken. Let op: de gastheer toets</i> is op dit moment <b>%2</b>.</p><p>Let op: het hoofdmenu is verborgen in naadloze modus. U kunt dit menu benaderen door op de <b>gastheer toets+Home</b> te drukken.</p> + <p>De virtuele machine meldt dat het gastbesturingssysteem <b>muisintegratie</b> ondersteunt. Dit betekent dat u niet de muis hoeft te <i>vangen</i> om deze binnen het gastbesturingssysteem te kunnen gebruiken. Bevindt de muis zich op het venster van de virtuele machine dan zullen alle acties naar het gastbesturingssysteem worden gestuurd. Is de muis op dat moment gevangen dan wordt deze automatisch vrijgegeven.</p><p>Het icoon van de muis op statusbalk lijkt op:&nbsp;<img src=:/mouse_seamless_16px.png/>&nbsp; dit maakt duidelijk dat muisintegratie wordt ondersteund en momenteel geactiveerd is.</p><p><b>Let op:</b> bepaalde applicaties kunnen zich vreemd gedragen in deze modus. U kunt muisintegratie altijd deactiveren voor de huidige sessie (en later weer activeren) door de overeenkomstige actie in de menubalk te selecteren.</p> &Contents... @@ -4818,7 +3789,7 @@ Show the online help contents - Geef de online help inhoud weer + Toon inhoud online hulp &VirtualBox Web Site... @@ -4826,7 +3797,7 @@ Open the browser and go to the VirtualBox product web site - open de browser en ga naar de website van VirtualBox + Open de browser en ga naar de website van VirtualBox &Reset All Warnings @@ -4858,7 +3829,7 @@ Show a dialog with product information - Geef de produkt informatie weer + Toon produktinformatie <p>A new version of VirtualBox has been released! Version <b>%1</b> is available at <a href="http://www.virtualbox.org/">virtualbox.org</a>.</p><p>You can download this version using the link:</p><p><a href=%2>%3</a></p> @@ -4866,12 +3837,12 @@ <p>Are you sure you want to release the %1 <nobr><b>%2</b></nobr>?</p><p>This will detach it from the following virtual machine(s): <b>%3</b>.</p> - <p>Weet u zeker dat u %1 <nobr><b>%2</b></nobr> wilt vrijgeven?</p><p>Hierdoor worden deze ontkoppeld van de volgende virtuele machines: <b>%3</b>.</p> + <p>Weet u zeker dat u %1 <nobr><b>%2</b></nobr> wilt vrijgeven?</p><p>Hierdoor wordt deze ontkoppeld van de volgende virtuele machines: <b>%3</b>.</p> Release detach medium - Vrijgeven + Release <p>Are you sure you want to remove the %1 <nobr><b>%2</b></nobr> from the list of known media?</p> @@ -4879,15 +3850,11 @@ Note that as this hard disk is inaccessible its storage unit cannot be deleted right now. - Let op: deze harde schijf is niet te benaderen, dus kan zijn opslag eenheid nu niet verwijderd worden. + Let op: deze harde schijf is niet te benaderen, dus zijn opslageenheid kan nu niet verwijderd worden. The next dialog will let you choose whether you also want to delete the storage unit of this hard disk or keep it for later usage. - De volgende dialoog laat u kiezen of u ook de opslag eenheid wilt verwijderen of dat u deze harde schijf wilt bewaren voor later gebruik. - - - <p>Note that the storage unit of this medium will not be deleted and that it will be possible to add it to the list later again.</p> - <p>Let op: de opslag eenheid van dit medium wordt niet verwijderd en dus is het mogelijk deze later opnieuw aan de lijst toe te voegen.</p> + Volgend dialoog laat u kiezen of u ook de opslageenheid wilt verwijderen of dat u deze harde schijf wilt bewaren voor later gebruik. Remove @@ -4896,11 +3863,11 @@ <p>The hard disk storage unit at location <b>%1</b> already exists. You cannot create a new virtual hard disk that uses this location because it can be already used by another virtual hard disk.</p><p>Please specify a different location.</p> - <p>De opslag eenheid van de harde schijf, op locatie <b>%1</b>, bestaat al. U kunt geen nieuwe virtuele harde schijf aanmaken op deze locatie omdat deze mogelijk door een andere virtuele harde schijf wordt gebruikt.</p><p>Geef een andere locatie op.</p> + <p>De opslageenheid van de harde schijf op locatie <b>%1</b> bestaat al. U kunt geen nieuwe virtuele harde schijf aanmaken op deze locatie omdat deze mogelijk door een andere virtuele harde schijf wordt gebruikt.</p><p>Geef een andere locatie op.</p> <p>Do you want to delete the storage unit of the hard disk <nobr><b>%1</b></nobr>?</p><p>If you select <b>Delete</b> then the specified storage unit will be permanently deleted. This operation <b>cannot be undone</b>.</p><p>If you select <b>Keep</b> then the hard disk will be only removed from the list of known hard disks, but the storage unit will be left untouched which makes it possible to add this hard disk to the list later again.</p> - <p>Wilt u de opslag eenheid van harde schijf <nobr><b>%1</b></nobr> verwijderen?</p><p>Selecteert u <b>Verwijderen</b> dan wordt de opslag eenheid permanent verijderd.Deze actie <b>kan niet</b> terug gedraaid worden.<p><p>Selecteert u <b>Behouden</b> dan wordt de harde schijf alleen uit de lijst met bekende harde schijven gehaald maar de opslag eendheid wordt niet onaangetast, zodat het mogelijk is om de harde schijf op een later moment weer op de lijst te zetten.</p> + <p>Wilt u de opslageenheid van harde schijf <nobr><b>%1</b></nobr> verwijderen?</p><p>Selecteert u <b>Verwijderen</b> dan wordt de opslageenheid permanent verwijderd.Deze actie <b>kan niet</b> teruggedraaid worden.<p><p>Selecteert u <b>Behouden</b> dan wordt de harde schijf alleen uit de lijst met bekende harde schijven gehaald maar de opslageendheid blijft onaangetast, waardoor het mogelijk is om de harde schijf op een later moment weer op de lijst te zetten.</p> Delete @@ -4914,47 +3881,27 @@ Failed to delete the storage unit of the hard disk <b>%1</b>. - Het is niet gelukt om de opslag eenheid van harde schijf <b>%1</b> te verwijderen. - - - <p>There are no unused hard disks available for the newly created attachment.</p><p>Press the <b>Create</b> button to start the <i>New Virtual Disk</i> wizard and create a new hard disk, or press the <b>Select</b> if you wish to open the <i>Virtual Media Manager</i>.</p> - <p>Voor de nieuw aangemaakte bijlage is geen, ongebruikte, harde schijf beschikbaar.</p><p>Druk op de knop <b>Aanmaken</b> om de assistent voor een <i>nieuwe virtuele schijf/i> op te starten en daarmee een nieuwe harde schijf aan te maken. Of druk op de knop <b>Selecteer</b> om de <i>manager voor virtuele media</i> te openen.</p> + Het is niet gelukt de opslageenheid van harde schijf <b>%1</b> te verwijderen. Failed to create the hard disk storage <nobr><b>%1</b>.</nobr> - Het is niet gelukt om de harde schijf opslag <nobr><b>%1</b></nobr> aan te maken. - - - Failed to attach the hard disk <nobr><b>%1</b></nobr> to slot <i>%2</i> of the machine <b>%3</b>. - Het is niet gelukt om harde schijf<nobr><b>%1</b></nobr> te koppelen aan het slot <i>%2</i> van virtuele machine <b>%3</b>. - - - Failed to detach the hard disk <nobr><b>%1</b></nobr> from slot <i>%2</i> of the machine <b>%3</b>. - Het is niet gelukt om harde schijf <nobr><b>%1</b></nobr> los te koppelen van het slot <i>%2</i> van virtuele machine <b>%3</b>. - - - Failed to mount the %1 <nobr><b>%2</b></nobr> on the machine <b>%3</b>. - Het is niet gelukt om %1 <nobr><b>%2</b></nobr> te koppelen aan de virtuele machine <b>%3</b>. - - - Failed to unmount the %1 <nobr><b>%2</b></nobr> from the machine <b>%3</b>. - Het is niet gelukt om %1 <nobr><b>%2</b></nobr> los te koppel van virtuele machine <b>%3</b>. + Het is niet gelukt de harde schijf opslag <nobr><b>%1</b></nobr> aan te maken Failed to open the %1 <nobr><b>%2</b></nobr>. - Het is niet gelukt om %1 <nobr><b>%2</b></nobr> te openen. + Het is niet gelukt %1 <nobr><b>%2</b></nobr> te openen. Failed to close the %1 <nobr><b>%2</b></nobr>. - Het is niet gelukt om %1 <nobr><b>%2</b></nobr> te sluiten. + Het is niet gelukt %1 <nobr><b>%2</b></nobr> te sluiten. Failed to determine the accessibility state of the medium <nobr><b>%1</b></nobr>. - Het is niet gelukt om de toegankelijkheids status van medium <nobr><b>%1</b></nobr> op te halen. + Het is niet gelukt de toegankelijkheidsstatus van medium <nobr><b>%1</b></nobr> op te halen. <p>Failed to connect to the VirtualBox online registration service due to the following error:</p><p><b>%1</b></p> - <p>Het is niet gelukt om een verbinding te krijgen met de VirtualBox online registratie service vanwege de volgende fout:</p><p><b>%1</b></p> + <p>Het is niet gelukt verbinding te krijgen met de VirtualBox online registratie service vanwege de volgende fout:</p><p><b>%1</b></p> <p>Unable to obtain the new version information due to the following error:</p><p><b>%1</b></p> @@ -4962,61 +3909,15 @@ <p>One or more virtual hard disks, CD/DVD or floppy media are not currently accessible. As a result, you will not be able to operate virtual machines that use these media until they become accessible later.</p><p>Press <b>Check</b> to open the Virtual Media Manager window and see what media are inaccessible, or press <b>Ignore</b> to ignore this message.</p> - <p>Een of meer virtuele harde schijven, CD/DVD-Rom's of de diskette zijn nu niet te benaderen.Hierdoor kunt u niet met de virtuele machines werken die deze media gebruiken, totdat de media later wel weer benaderbaar zijn.</p><p>Druk op de knop <b>Controleren</b> om de manager voor virtuele media te openen om na te gaan welke media niet te benaderen is, of drukt opde knop <b>Nogeren</b> om dir berichte te negeren.</p> - - - <p>Your existing VirtualBox settings files were automatically converted from the old format to a new format required by the new version of VirtualBox.</p><p>Press <b>OK</b> to start VirtualBox now or press <b>More</b> if you want to get more information about what files were converted and access additional actions.</p><p>Press <b>Exit</b> to terminate the VirtualBox application without saving the results of the conversion to disk.</p> - <p>De bestaande bestanden, met VirtualBox instellingen, zijn automatisch van het oude formaat in het nieuwe formaat overgezet, dit was nodig voor de nieuwe versie van VirtualBox.</p><p>Klik op <b>Ok</b> om VirtualBox op te starten of klik op<b>Meer</b> voor extra informatie over welke bestanden overgezet zijn en toegang te krijgen naar aanvullende acties.</p><p>Klik op <b>Afsluiten</b> om VirtualBox af te sluiten zonder dat de resultaten van het overzetten op schijf te bewaren.</p> - - - &More - warnAboutAutoConvertedSettings message box - &Meer - - - E&xit - warnAboutAutoConvertedSettings message box - &Afsluiten - - - <p>The following VirtualBox settings files have been automatically converted to the new settings file format version <b>%1</b>.</p><p>However, the results of the conversion were not saved back to disk yet. Please press:</p><ul><li><b>Backup</b> to create backup copies of the settings files in the old format before saving them in the new format;</li><li><b>Overwrite</b> to save all auto-converted files without creating backup copies (it will not be possible to use these settings files with an older version of VirtualBox afterwards);</li>%2</ul><p>It is recommended to always select <b>Backup</b> because in this case it will be possible to go back to the previous version of VirtualBox (if necessary) without losing your current settings. See the VirtualBox Manual for more information about downgrading.</p> - <p>De volgende bestanden, met VirtualBox instellingen, zijn automatisch overgezet naar het nieuwe formaat <b>%1</b>.</p><p>De resultaten zijn nog niet op schijf op geslagen. Klik op <p><ul><li><b>Back-up</b> om back-up kopiën te maken van de bestanden met instellingen in het oude formaat, voordat de bestanden met het nieuwe formaat worden overschreven.</li><li><b>Overschrijven</b> om alle bestanden in het nieuwe formaat op te slaan. Het daarna niet meer mogelijk deze bestanden, met instellingen, voor oudere versies van VirtualBox te gebruiken. </li><li>%2</ul><p>Het verdient aanbeveling om altijd voor <b>Back-up</b> te keizen omdat dan de mogelijkheid aanwezig blijft om, indien nodig, terug te keren naar de voorgaande versie van VirtualBox. Kijk in het VirtualBox handboek voor meer informatie over dit onderwerp.</p> - - - <li><b>Exit</b> to terminate VirtualBox without saving the results of the conversion to disk.</li> - <li><b>Afsluiten</b> om VirtualBox te stoppen zonder de resultaten van het overzetten op schijf te bewaren.</li> - - - O&verwrite - warnAboutAutoConvertedSettings message box - &Overschrijven + <p>Eén of meer virtuele harde schijven, CD/DVD-Rom's of de diskette zijn nu niet te benaderen. Hierdoor kunt u niet met de virtuele machines werken die deze media gebruiken, totdat dit medium of deze media weer benaderbaar zijn.</p><p>Druk op de knop <b>Controleren</b> om de Virtuele Media Manager te openen om na te gaan welk medium niet te benaderen is, of druk op de knop <b>Negeren</b> om dit bericht te negeren.</p> <p>A critical error has occurred while running the virtual machine and the machine execution has been stopped.</p><p>For help, please see the Community section on <a href=http://www.virtualbox.org>http://www.virtualbox.org</a> or your support contract. Please provide the contents of the log file <tt>VBox.log</tt> and the image file <tt>VBox.png</tt>, which you can find in the <nobr><b>%1</b></nobr> directory, as well as a description of what you were doing when this error happened. Note that you can also access the above files by selecting <b>Show Log</b> from the <b>Machine</b> menu of the main VirtualBox window.</p><p>Press <b>OK</b> if you want to power off the machine or press <b>Ignore</b> if you want to leave it as is for debugging. Please note that debugging requires special knowledge and tools, so it is recommended to press <b>OK</b> now.</p> - <p>Een fatale fout is opgetreden terwijl de virtuele machine draaide en de machine is gestopt.</p><p>Kijk voor ondersteuning op de community sectie van <a href=http://www.virtualbox.org>http://www.virtualbox.org</a> of u contact voor ondersteuning. Lever aub de inhoud van het logbestand <tt>VBox.log</tt> en het image bestand <tt>VBox.png</tt> deze kunt u terugvinden in de <nobr><b>%1</b></nobr> folder, samen met een beschrijving van wat u deed op het moment dat de fout optrad. Let op; u kunt genoemde bestanden ook benaderen via <b>Toon Log</b> in het <b>machine</b> menu van de hoofdvenster van VirtualBox.</p><p>Klik op <b>Ok</b> als u de machine uit wilt zetten of klik op <b>Negeren</b> als u alles zo wilt laten staan voor nader onderzoek. Let op: nader onderzoek vereist specifieke kennis en hulpmiddelen, het is wenselijker om op <b>Ok</b> te klikken.</p> - - - hard disk - failed to close ... - harde schijf - - - CD/DVD image - failed to close ... - CD/DVD image - - - floppy image - failed to close ... - diskette image - - - Could not access USB on the host system, because neither the USB file system (usbfs) nor the DBus and hal services are currently available. If you wish to use host USB devices inside guest systems, you must correct this and restart VirtualBox. - Het is niet mogelijk om de USB op het gastheer systeem te benaderen omdat nog het USB bestandssysteem (usbfs) nog de DBus en HAL services nu beschikbaar zijn. Wilt u het met USB op het gast systeem werken moet eea corrigeren en VirtuaBox herstarten. + <p>Een fatale fout is opgetreden terwijl de virtuele machine draaide waardoor de machine nu is gestopt.</p><p>Kijk voor ondersteuning op de community sectie van <a href=http://www.virtualbox.org>http://www.virtualbox.org</a> of raadpleeg uw eigen ondersteuningscontact. Stel alstublieft de inhoud van het logbestand <tt>VBox.log</tt> en het imagebestand <tt>VBox.png</tt> ter beschikking. Deze kunt u terugvinden in de <nobr><b>%1</b></nobr> map, en geef daarbij een beschrijving van wat u deed op het moment dat de fout optrad. Let op: u kunt genoemde bestanden ook benaderen via <b>Toon Log</b> in het <b>Machine</b> menu van het hoofdvenster van VirtualBox.</p><p>Klik op <b>OK</b> als u de machine wilt uitzetten of klik op <b>Negeren</b> als u alles zo wilt laten staan voor nader onderzoek. Let nogmaals op: nader onderzoek vereist specifieke kennis en hulpmiddelen, het wordt aangeraden om op <b>OK</b> te klikken.</p> You are trying to shut down the guest with the ACPI power button. This is currently not possible because the guest does not support software shutdown. - U probeert de gast af te sluiten via de ACPI startknop. Dit is op dit moment niet mogelijk omdat de gast geen ACPI subsysteem gebruikt. + U probeert de gast af te sluiten via de ACPI startknop. Dat is op dit moment niet mogelijk omdat de gast geen softwarematige afsluiting ondersteunt. Close VM @@ -5027,49 +3928,32 @@ Doorgaan - Change - hard disk - Aanpassen - - Failed to create the host-only network interface. - Het is niet gelukt om de host only interface aan te maken. + Het is niet gelukt de host-only interface aan te maken. Failed to open appliance. - Het is niet gelukt om de appliance te openen. + Het is niet gelukt de appliance te openen. Failed to open/interpret appliance <b>%1</b>. - Het is niet gelukt om appliance <b>%1</b> te openen of interpreteren. + Het is niet gelukt appliance <b>%1</b> te openen of te interpreteren. Failed to import appliance <b>%1</b>. - Het is niet gelukt om appliance <b>%1</b> te importeren. + Het is niet gelukt appliance <b>%1</b> te importeren. Failed to create an appliance. - Het is niet gelukt om een appliance aan te maken. + Het is niet gelukt een appliance aan te maken. Failed to prepare the export of the appliance <b>%1</b>. - Het is niet gelukt om de export van appliance <b>%1</b> voor te bereiden. + Het is niet gelukt de export van appliance <b>%1</b> voor te bereiden. Failed to export appliance <b>%1</b>. - Het is niet gelukt om appliance <b>%1</b> te exporteren. - - - Failed to remove the file <b>%1</b>.<br /><br />Please try to remove the file yourself and try again. - Het is niet gelukt om bestand <b>%1</b> te verwijderen.<br/><br/>Probeer zelf het bestand te verwijderen en probeer het dan opnieuw. - - - <p>Are you sure you wish to delete the selected snapshot and saved state?</p> - <p>Weet u zeker dat u de geselecteerde momentopname en opgeslagen status wilt verwijderen?</p> - - - Discard - Verwerpen + Het is niet gelukt appliance <b>%1</b> te exporteren. Cancel @@ -5077,43 +3961,39 @@ <p>Your existing VirtualBox settings files will be automatically converted from the old format to a new format required by the new version of VirtualBox.</p><p>Press <b>OK</b> to start VirtualBox now or press <b>Exit</b> if you want to terminate the VirtualBox application without any further actions.</p> - <p>De bestaande bestanden, met VirtualBox instellingen, zijn automatisch van het oude formaat in het nieuwe formaat overgezet, dit was nodig voor de nieuwe versie van VirtualBox.</p><p>Klik op <b>Ok</b> om nu VirtualBox te starten of <b>Afsluiten</b> om VirtualBox, zonder verdere acties af te sluiten.</p> + <p>De bestaande bestanden met VirtualBox-instellingen zijn automatisch van het oude formaat in het nieuwe formaat omgezet, hetgeen nodig was voor deze nieuwe versie van VirtualBox.</p><p>Klik op <b>OK</b> om VirtualBox nu te starten of op <b>Afsluiten</b> om VirtualBox zonder verdere acties af te sluiten.</p> A file named <b>%1</b> already exists. Are you sure you want to replace it?<br /><br />Replacing it will overwrite its contents. - Een bestand met de naam <b>%1</b> bestaat al. Weet u het zeker dat deze wilt vervangen?<br/><br/>Vervangen betekend overschrijven van de inhoud. + Een bestand met de naam <b>%1</b> bestaat al. Weet u het zeker dat deze wilt vervangen?<br/><br/>Vervangen betekent overschrijven van de inhoud. <p>VT-x/AMD-V hardware acceleration has been enabled, but is not operational. Certain guests (e.g. OS/2 and QNX) require this feature.</p><p>Please ensure that you have enabled VT-x/AMD-V properly in the BIOS of your host computer.</p> - <p>De hardware versnelling VT-X/AMD-V is geactiveerd maar is niet operationeel. Bepaalde gasten (zoals OS/2 en QNX) hebben deze functie nodig.</p><p>Controleer aub of de VT-x/AMD-V correct in de BIOS van uw fysieke computer is geconfigureerd.</p> + <p>De hardwareversnelling VT-X/AMD-V is ingeschakeld maar is niet operationeel. Bepaalde gasten (zoals OS/2 en QNX) hebben deze functie nodig.</p><p>Controleer alstublieft of de VT-x/AMD-V correct in de BIOS van uw fysieke computer is geconfigureerd.</p> <p>Invalid e-mail address or password specified.</p> - <p>Ongeldig e-mai adres of wachtwoord opgegeven.</p> + <p>Ongeldig emailadres of wachtwoord opgegeven.</p> <p>Failed to register the VirtualBox product.</p><p>%1</p> - <p>Het is niet geluk om VirtualBox te registreren.</p><p>%1</p> + <p>Het is niet gelukt VirtualBox te registreren.</p><p>%1</p> Failed to check files. - Het is niet gelukt om de bestanden te controleren. + Het is niet gelukt de bestanden te controleren. Failed to remove file. - Het is niet gelukt om het bestand te verwijderen. + Het is niet gelukt het bestand te verwijderen. You seem to have the USBFS filesystem mounted at /sys/bus/usb/drivers. We strongly recommend that you change this, as it is a severe mis-configuration of your system which could cause USB devices to fail in unexpected ways. - U lijkt een USBFS bestandssysteem gekoppeld te hebben aan /sys/bus/usb/drivers. We adviseren u met klem dit te wijzigen, omdat dit een ernstige mis-configuratie van uw systeem is. Dit kan ervoor zorgen dat uw USB apparaten op onverwachte momenten storing geven. + U lijkt een USBFS bestandssysteem gekoppeld te hebben aan /sys/bus/usb/drivers. Wij adviseren u met klem dit te wijzigen omdat dit een ernstige mis-configuratie van uw systeem is, met als resultaat dat uw USB apparaten op willekeurige wijze zullen falen. You are running an EXPERIMENTAL build of VirtualBox. This version is not suitable for production use. - U draait een PROEF constructie van VirtualBox. Deze versie is niet geschikt voor productie. - - - <p>Are you sure you want to restore snapshot <b>%1</b>? This will cause you to lose your current machine state, which cannot be recovered.</p> - <p>Bent u er zeker van dat u de momentopname <b>%1</b> wilt terugzetten? Hierdoor verliest u de huidige status van de machine en dit is niet te herstellen.</p> + U draait een EXPERIMENTELE build van VirtualBox. Deze versie is niet geschikt voor productie. Restore @@ -5121,7 +4001,7 @@ <p>Deleting the snapshot will cause the state information saved in it to be lost, and disk data spread over several image files that VirtualBox has created together with the snapshot will be merged into one file. This can be a lengthy process, and the information in the snapshot cannot be recovered.</p></p>Are you sure you want to delete the selected snapshot <b>%1</b>?</p> - <p>Door het verwijderen van een momentopname wordt de status informatie opgeslagen in de momentopname weg gegooid. En de schijf gegevens, verspreidt over verschillende image bestanden, die VirtualBox heeft aangemaakt tesamen met de momentopname, worden samengevoegd in één bestand. Dit kan een langdurig proces zijn en de informatie in de momentopname kan niet hersteld worden.</p></p>Bent u er zeker van dat u de geselecteerde momentopname <b>%1</b> wilt verwijderen?</p> + <p>Door het verwijderen van een momentopname wordt ook de informatie over de staat -opgeslagen in de momentopname- weggegooid. De schijfgegevens die VirtualBox heeft aangemaakt -en verspreid zijn over verschillende image bestanden- worden met de momentopname samengevoegd in één bestand. Dit kan een langdurig proces zijn. De informatie in de momentopname kan niet hersteld worden.</p></p>Bent u er zeker van dat u de geselecteerde momentopname <b>%1</b> wilt verwijderen?</p> Delete @@ -5129,37 +4009,11 @@ Failed to restore the snapshot <b>%1</b> of the virtual machine <b>%2</b>. - Kan de momentopname <b>%1</b>, virtuale machine <b>%2</b>.niet terugzetten. + Kan momentopname <b>%1</b> van virtuele machine <b>%2</b>.niet terugzetten. Failed to delete the snapshot <b>%1</b> of the virtual machine <b>%2</b>. - Kan de momentopname <b>%1</b>, virtuale machine <b>%2</b>.niet verwijderen. - - - <p>There are no unused media available for the newly created attachment.</p><p>Press the <b>Create</b> button to start the <i>New Virtual Disk</i> wizard and create a new medium, or press the <b>Select</b> if you wish to open the <i>Virtual Media Manager</i>.</p> - <p>Voor de nieuw aangemaakte bijlage is geen ongebruikte media beschikbaar.</p><p>Druk op de <b>Aanmaak</b> knop om de assistent <i>Nieuwe virtuale schijfk</i> te starten en maak een nieuw medium aan of druk op <b>Selecteer</b> als u de <i>Virtuale media manager</i> wilt openen.</p> - - - &Create - medium - &Aanmaken - - - &Select - medium - &Selecteer - - - <p>There are no unused media available for the newly created attachment.</p><p>Press the <b>Select</b> if you wish to open the <i>Virtual Media Manager</i>.</p> - <p>Voor de nieuw aangemaakte bijlage is geen ongebruikte media beschikbaar.</p><p>Druk op <b>Selecteer</b> als u de <i>Virtuale media manager</i> wilt opene.</p> - - - Failed to attach the %1 to slot <i>%2</i> of the machine <b>%3</b>. - Aansluiten van de %1 aan slot <i>%2</i> van machine <b>%3</b> mislukt. - - - Failed to detach the %1 from slot <i>%2</i> of the machine <b>%3</b>. - Afsluiten van de %1 aan slot <i>%2</i> van machine <b>%3</b> mislukt. + Kan momentopname <b>%1</b> van virtuele machine <b>%2</b>.niet verwijderen. Unable to mount the %1 <nobr><b>%2</b></nobr> on the machine <b>%3</b>. @@ -5179,15 +4033,12 @@ Force Unmount - Geforceerde afkoppeling - - - Failed to eject the disk from the virtual drive. The drive may be locked by the guest operating system. Please check this and try again. - Het uitwerpen van de schijf, uit het virtuele station, is mislukt. Het station kan vergrendeld zijn door het besturingssysteem van de gast. Controleer dit a.u.b. en probeer het opnieuw. + knoptekst (?) + Forceer Afkoppeling <p>Could not insert the VirtualBox Guest Additions installer CD image into the virtual machine <b>%1</b>, as the machine has no CD/DVD-ROM drives. Please add a drive using the storage page of the virtual machine settings dialog.</p> - <p>Kan de VirtualBox Gast toevoegingen installatie CD image niet plaatsten in de virtuele machine <b>%1</b>, omdat de machine geen CD/DVD-ROM station heeft. Voeg a.u.b. een station toe via de opslag pagina bij de instellingen van de virtuele machine.</p> + <p>Kan de VirtualBox Guest Additions installatie-CD image niet plaatsten in de virtuele machine <b>%1</b> omdat de machine geen CD/DVD-ROM station heeft. Voeg een station toe via de Opslagpagina bij de instellingen van de virtuele machine.</p> E&xit @@ -5196,7 +4047,7 @@ <p>The following VirtualBox settings files will be automatically converted from the old format to a new format required by the new version of VirtualBox.</p><p>Press <b>OK</b> to start VirtualBox now or press <b>Exit</b> if you want to terminate the VirtualBox application without any further actions.</p> - <p>De volgende bestanden met VirtualBox instellingen zullen automatisch omgezet worden van het oude formaat naar het nieuwe formaat, dat is nodig voor de nieuwe versie van VirtualBox.</p><p>Druk op <b>OK</b> om VirtualBox nu te starten of druk op <b>Afsluiten</b> als u de VirtualBox applicatie witl beëindigen zonder verdere acties.</p> + <p>De volgende bestanden met VirtualBox-instellingen zullen automatisch worden omgezet van het oude formaat naar het nieuwe formaat, hetgeen nodig is voor deze nieuwe versie van VirtualBox.</p><p>Druk op <b>OK</b> om VirtualBox nu te starten of druk op <b>Afsluiten</b> als u de VirtualBox-applicatie wilt beëindigen zonder verdere acties.</p> hard disk @@ -5216,7 +4067,7 @@ floppy failed to mount ... host-drive - Diskette + diskette floppy image @@ -5224,23 +4075,8 @@ diskette image - hard disk - failed to attach ... - harde schijf - - - CD/DVD device - failed to attach ... - CD/DVD apparaat - - - floppy device - failed to close ... - diskette apparaat - - <p>Are you sure you want to delete the CD/DVD-ROM device?</p><p>You will not be able to mount any CDs or ISO images or install the Guest Additions without it!</p> - <p>Weet u zeker dat u de CD/DVD-ROM apparaat wilt verwijderen?</p><p>Het is daarna niet meer mogelijk om enige CD of ISO images to koppelen of de Gastuitbreidingen te installeren!</p> + <p>Weet u zeker dat u het CD/DVD-ROM apparaat wilt verwijderen?</p><p>Het is daarna niet meer mogelijk om CD's of ISO images te koppelen of de Guest Additions te installeren!</p> &Remove @@ -5249,31 +4085,31 @@ <p>VT-x/AMD-V hardware acceleration is not available on your system. Your 64-bit guest will fail to detect a 64-bit CPU and will not be able to boot. - <p>VT-x/AMD-V hardware versnelling is niet beschikbaar op uw systeem. Uw 64-bit gast will zal geen 64-bit CPU detecteren en kan niet opstareten. + <p>VT-x/AMD-V hardwareversnelling is niet beschikbaar op uw systeem. Uw 64-bit gast zal geen 64-bit CPU detecteren en niet in staat zijn op te starten. <p>VT-x/AMD-V hardware acceleration is not available on your system. Certain guests (e.g. OS/2 and QNX) require this feature and will fail to boot without it.</p> - <p>VT-x/AMD-V hardware versnelling is niet beschikbaar op uw systeem. Bepaalde gastsystemen (bv. OS/2 en QNX) Hebben deze mogelijkheid nodig en kunnen anders niet opstarten.</p> + <p>VT-x/AMD-V hardwareversnelling is niet beschikbaar op uw systeem. Bepaalde gastsystemen (bv. OS/2 en QNX) hebben deze mogelijkheid nodig en kunnen zonder niet opstarten.</p> <p>Deleting the snapshot %1 will temporarily need more disk space. In the worst case the size of image %2 will grow by %3, however on this filesystem there is only %4 free.</p><p>Running out of disk space during the merge operation can result in corruption of the image and the VM configuration, i.e. loss of the VM and its data.</p><p>You may continue with deleting the snapshot at your own risk.</p> - <p>Het verwijderen van momentopname %1 kost tijdelijk meer schijfruimte. In het ergste geval zal de omvang van image %2 groeien met %3, echter er is maar %4 vrij.</p><p>Door de schijfruimte heen raken tijdens een samenvoeg operatie kan resluteren in het corrupt raken van de de image en de VM configuratie, dus het verlies van de VM en zijn gegevens.</p><p>U mag op eigen risico doorgaan met het verwijderen van de momentopname.</p> + <p>Het verwijderen van momentopname %1 kost tijdelijk meer schijfruimte. In het ergste geval zal de omvang van image %2 groeien met %3, echter er is maar %4 vrij.</p><p>Geen schijfruimte meer hebben tijdens de samenvoegoperatie kan als gevolg hebben dat de image en de VM-configuratie corrupt raken, dat betekent onherstelbaar verlies van VM en haar gegevens.</p><p>U mag natuurlijk op eigen risico doorgaan met het verwijderen van de momentopname.</p> <p>Could not change the guest screen to this host screen due to insufficient guest video memory.</p><p>You should configure the virtual machine to have at least <b>%1</b> of video memory.</p> - <p>Kan het gastscherm niet veranderen in het gastheerscherm omdat er onvoldoende videogeheugen is voor gast.</p><p>U moet de virtuale machine zo configureren dat deze tenminste <b>%1</b> aan video memory heeft.</p> + <p>Kan het gastscherm niet wisselen naar het hostscherm wegens onvoldoende gastvideogeheugen.</p><p>U moet de virtuele machine zo configureren dat deze tenminste <b>%1</b> aan videomemory heeft.</p> <p>Could not change the guest screen to this host screen due to insufficient guest video memory.</p><p>You should configure the virtual machine to have at least <b>%1</b> of video memory.</p><p>Press <b>Ignore</b> to switch the screen anyway or press <b>Cancel</b> to cancel the operation.</p> - <p>Kan het gastscherm niet veranderen in het gastheerscherm omdat er onvoldoende videogeheugen is voor gast.</p><p>U moet de virtuale machine zo configureren dat deze tenminste <b>%1</b> aan video memory heeft.</p><p>Druk op <b>Negeren</b> om toch te wisselen of druk op <b>Annuleren</b> om de operatie te stoppen.</p> + <p>Kan het gastscherm niet wisselen naar het hostscherm wegens onvoldoende gastvideogeheugen.</p><p>U moet de virtuele machine zo configureren dat deze tenminste <b>%1</b> aan videomemory heeft.</p><p>Klik op <b>Negeren</b> om toch te wisselen of klik op <b>Annuleren</b> om de operatie te stoppen.</p> <p>Can not switch the guest display to fullscreen mode. You have more virtual screens configured than physical screens are attached to your host.</p><p>Please either lower the virtual screens in your VM configuration or attach additional screens to your host.</p> - <p>Kan het gastscherm niet omzetten naar volledigscherm. U hebt meer virtuale schermen geconfigureerd dan dat er fysieke schermen zijn aangesloten.</p><p>Verminder het aantal virtuale schermen in u VM configuratie of sluit meer schermen aan.</p> + <p>Kan het gastscherm niet omzetten naar volledig scherm. U hebt meer virtuele schermen geconfigureerd dan dat er fysieke schermen zijn aangesloten.</p><p>Verminder het aantal virtuele schermen in uw VM configuratie of sluit meer schermen aan.</p> <p>Can not switch the guest display to seamless mode. You have more virtual screens configured than physical screens are attached to your host.</p><p>Please either lower the virtual screens in your VM configuration or attach additional screens to your host.</p> - <p>Kan het gastscherm niet omzetten naar naadloze modus. U hebt meer virtuale schermen geconfigureerd dan dat er fysieke schermen zijn aangesloten.</p><p>Verminder het aantal virtuale schermen in u VM configuratie of sluit meer schermen aan.</p> + <p>Kan het gastscherm niet omzetten naar naadloze modus. U hebt meer virtuele schermen geconfigureerd dan dat er fysieke schermen zijn aangesloten.</p><p>Verminder het aantal virtuele schermen in uw VM configuratie of sluit meer schermen aan.</p> <p>Could not find the VirtualBox User Manual <nobr><b>%1</b>.</nobr></p><p>Do you wish to download this file from the Internet?</p> @@ -5281,7 +4117,7 @@ <p>Are you sure you want to download the VirtualBox User Manual from <nobr><a href="%1">%2</a></nobr> (size %3 bytes)?</p> - <p>Weet u het zeker dat u gebruikershandleiding van VirtualBox wilt downloaden bij <nobr><a href="%1">%2</a></nobr> (omvang %3 bytes)?</p> + <p>Weet u het zeker dat u de gebruikershandleiding van VirtualBox wilt downloaden van <nobr><a href="%1">%2</a></nobr> (omvang %3 bytes)?</p> <p>Failed to download the VirtualBox User Manual from <nobr><a href="%1">%2</a>.</nobr></p><p>%3</p> @@ -5289,19 +4125,19 @@ <p>The VirtualBox User Manual has been successfully downloaded from <nobr><a href="%1">%2</a></nobr> and saved locally as <nobr><b>%3</b>.</nobr></p> - <p>De gebruikershandleiding van VirtualBox is succesvol gedownload bij <nobr><a href="%1">%2</a></nobr> en lokaal opgeslagen als <nobr><b>%3</b>.</nobr></p> + <p>De gebruikershandleiding van VirtualBox is succesvol gedownload van <nobr><a href="%1">%2</a></nobr> en lokaal opgeslagen als <nobr><b>%3</b>.</nobr></p> <p>The VirtualBox User Manual has been successfully downloaded from <nobr><a href="%1">%2</a></nobr> but can't be saved locally as <nobr><b>%3</b>.</nobr></p><p>Please choose another location for that file.</p> - <p>De gebruikershandleiding van VirtualBox is succesvol gedownload bij <nobr><a href="%1">%2</a></nobr> maar kan lokaal niet worden opgeslagen als <nobr><b>%3</b>.</nobr></p><p>Kies aub een andere locatie voor dit bestand.</p> + <p>De gebruikershandleiding van VirtualBox is met succes gedownload van <nobr><a href="%1">%2</a></nobr> maar kan lokaal niet worden opgeslagen als <nobr><b>%3</b>.</nobr></p><p>Kies aub een andere locatie voor dit bestand.</p> Failed to open virtual machine located in %1. - + Het is niet gelukt virtuele machine aanwezig in %1 te openen. Failed to add virtual machine <b>%1</b> located in <i>%2</i> because its already present. - + Het is niet gelukt virtuele machine <b>%1<b> aanwezig in <i>%2</i> toe te voegen, omdat deze al toegevoegd is. <p>You are about to remove the virtual machine <b>%1</b> from the machine list.</p><p>Would you like to delete the files containing the virtual machine from your hard disk as well?</p> @@ -5329,7 +4165,7 @@ <p>You are about to add a virtual hard disk to controller <b>%1</b>.</p><p>Would you like to create a new, empty file to hold the disk contents or select an existing one?</p> - <p>U staat op het punt om een virtuele harde schijf aan controler <b>%1</b> toe te voegen.</p><p>Wilt u een nieuw leeg bestand maken, die schijfinhoud bevat of een bestaande selecteren?</p> + <p>U staat op het punt een virtuele harde schijf aan controller <b>%1</b> toe te voegen.</p><p>Wilt u een nieuw, leeg bestand aanmaken voor de schijfinhoud, of een bestaande selecteren?</p> Create &new disk @@ -5343,7 +4179,7 @@ <p>You are about to add a new CD/DVD drive to controller <b>%1</b>.</p><p>Would you like to choose a virtual CD/DVD disk to put in the drive or to leave it empty for now?</p> - <p>U staat op het punt om een nieuw CD/DVD station aan controler <b>%1</b> toe te voegen.</p><p>Wilt u een virtuale CD/DVD schijf in het station plaatsen of voor nu leeg laten?</p> + <p>U staat op het punt een nieuw CD/DVD station aan controller <b>%1</b> toe te voegen.</p><p>Wilt u een virtuele CD/DVD schijf in het station plaatsen of vooralsnog leeg laten?</p> &Choose disk @@ -5357,46 +4193,40 @@ <p>You are about to add a new floppy drive to controller <b>%1</b>.</p><p>Would you like to choose a virtual floppy disk to put in the drive or to leave it empty for now?</p> - <p>U staat op het punt om een nieuw diskette station aan controler <b>%1</b> toe te voegen.</p><p>Wilt u een virtuale diskette in het station plaatsen of voor nu leeg laten?</p> + <p>U staat op het punt een nieuw diskette-station aan controller <b>%1</b> toe te voegen.</p><p>Wilt u een virtuele diskette in het station plaatsen of vooralsnog leeg laten?</p> Failed to detach the hard disk (<nobr><b>%1</b></nobr>) from the slot <i>%2</i> of the machine <b>%3</b>. - Het is niet gelukt om harde schijf <nobr><b>%1</b></nobr> los te koppelen van het slot <i>%2</i> van virtuele machine <b>%3</b>. + Het is niet gelukt harde schijf <nobr><b>%1</b></nobr> los te koppelen van het slot <i>%2</i> van virtuele machine <b>%3</b>. Failed to detach the CD/DVD device (<nobr><b>%1</b></nobr>) from the slot <i>%2</i> of the machine <b>%3</b>. - Het is niet gelukt om CD/DVD station <nobr><b>%1</b></nobr> los te koppelen van het slot <i>%2</i> van virtuele machine <b>%3</b>. + Het is niet gelukt CD/DVD station <nobr><b>%1</b></nobr> los te koppelen van het slot <i>%2</i> van virtuele machine <b>%3</b>. Failed to detach the floppy device (<nobr><b>%1</b></nobr>) from the slot <i>%2</i> of the machine <b>%3</b>. - Het is niet gelukt om diskette station <nobr><b>%1</b></nobr> los te koppelen van het slot <i>%2</i> van virtuele machine <b>%3</b>. - - - <p>The VirtualBox Guest Additions do not appear to be available on this virtual machine, and shared folders cannot be used without them. To use shared folders inside the virtual machine, please install the Guest Additions if they are not installed, or re-install them if they are not working correctly, by selecting <b>Install Guest Additions</b> from the <b>Machine</b> menu. If they are installed but the machine is not yet fully started then shared folders will be available once it is.</p> - <p>De VirtualBox gast aanvullingen lijken niet beschikbaar op deze virtuale machine en gedeelde mappen kunnen dan niet worden gebruikt. Om gedeelde mappen te gebruiken binnen de virtuele machine installeer de gast aanvullingen als deze nog niet zijn geïnstalleerd, of herisntalleer deze als ze niet goed werken. Selecteer <b>Installeer gast aanvullingen</b> uit het menu <b>Machine</b>. Zijn deze geïnstalleer maar is de machine nog niet helemaal gestart dan komen de gedeelde mappen beschikbaar zo dadelijk bechikbaar.</p> + Het is niet gelukt diskette station <nobr><b>%1</b></nobr> los te koppelen van het slot <i>%2</i> van virtuele machine <b>%3</b>. - <p>The virtual machine(s) <b>%1</b> are currently in a saved state.</p><p>If you continue the runtime state of the exported machine(s) will be discarded. Note that the existing machine(s) are not changed.</p> - - <p>De virtuale machine(s) <b>%1</b> is(zijn) nu in een veilige staat.</p><p>Als u verder gaat wordt de status "Uitvoeren", van de te exportern machine(s), genegeerd. Let op, de bestaande machine(s) worden niet gewijzigd.</p> - + <p>The %n following virtual machine(s) are currently in a saved state: <b>%1</b></p><p>If you continue the runtime state of the exported machine(s) will be discarded. The other machine(s) will not be changed.</p> + RL - Noodzakelijke %n place marker ontbreekt, old format - Bij ticket #10400 virtualbox.org gezet, afwachten (02.04.2012) + + <p>De virtuele machine <b>%1</b> bevindt zich momenteel in opgeslagen staat.</p><p>Indien u doorgaat wordt de runtime staat van de geëxporteerde machine weggegooid. Weet dat de bestaande machine niet worden veranderd.</p> + <p>De virtuele machines <b>%1</b> bevinden zich momenteel in opgeslagen staat.</p><p>Indien u doorgaat wordt de runtime staat van de geëxporteerde machines weggegooid. Weet dat de bestaande machines niet worden veranderd.</p> Failed to update Guest Additions. The Guest Additions installation image will be mounted to provide a manual installation. - Het is niet gelukt om de Gast aanvullingen bij te werken. De Gast aanvullings installatie image wordt gekoppeld voor een handmatige installatie. + Het is niet gelukt de Guest Additions bij te werken. Het Guest Additions installatie-image wordt gekoppeld voor een handmatige installatie. Failed to install the Extension Pack <b>%1</b>. - Het is niet gelukt om het uitbreidingspakket <b>%1</b> te installeren. + Extention Pack als naam laten staan, net als Guest Additions + Het is niet gelukt het Extention Pack <b>%1</b> te installeren. Failed to uninstall the Extension Pack <b>%1</b>. - Het is niet gelukt om het uitbreidingspakket <b>%1</b> te deïnstalleren. - - - You are about to remove the Extension Pack <b>%1</b>. Are you sure you want to do that? - U staat op het punt om het uitbreidingspakket <b>%1</b> te verwijderen. Weet u dit zeker? + Het is niet gelukt het Extention Pack <b>%1</b> te deïnstalleren. &Remove @@ -5404,47 +4234,47 @@ The current port forwarding rules are not valid. None of the host or guest port values may be set to zero. - De huidige regel voor het doorverwijzen van poorten zijn niet geldig. Geen van de poorten, nog van de gastheer nog van de gast, mogen op nul staan. + De huidige regels voor het doorverwijzen van poorten zijn niet geldig. Geen van de poorten, noch van de host noch van de gast, mogen op nul staan. <p>There are unsaved changes in the port forwarding configuration.</p><p>If you proceed your changes will be discarded.</p> - <p>De poort doorverwijzings configuratie heeft nog niet bewaarde wijzigingen.</p><p>Gaat u verder dan gaan uw wijzigingen verloren.</p> + <p>De poort doorverwijzings configuratie heeft nog niet-opgeslagen wijzigingen.</p><p>Doorgaan betekent dat deze wijzigingen verloren gaan.</p> Sorry, some generic error happens. - Excusses een algemene fout is opgetreden. + Excuses, een algemene fout is opgetreden. Failed to attach the hard disk (<nobr><b>%1</b></nobr>) to the slot <i>%2</i> of the machine <b>%3</b>. - Het is niet gelukt om harde schijf<nobr><b>%1</b></nobr> te koppelen aan het slot <i>%2</i> van de machine <b>%3</b>. + Het is niet gelukt harde schijf<nobr><b>%1</b></nobr> te koppelen aan het slot <i>%2</i> van de machine <b>%3</b>. Failed to attach the CD/DVD device (<nobr><b>%1</b></nobr>) to the slot <i>%2</i> of the machine <b>%3</b>. - Het is niet gelukt om CD/DVD station <nobr><b>%1</b></nobr> te koppelen aan het slot <i>%2</i> van de machine <b>%3</b>. + Het is niet gelukt CD/DVD station <nobr><b>%1</b></nobr> te koppelen aan het slot <i>%2</i> van de machine <b>%3</b>. Failed to attach the floppy device (<nobr><b>%1</b></nobr>) to the slot <i>%2</i> of the machine <b>%3</b>. - Het is niet gelukt om diskette station <nobr><b>%1</b></nobr> te koppelen aan het slot <i>%2</i> van de machine <b>%3</b>. + Het is niet gelukt diskette station <nobr><b>%1</b></nobr> te koppelen aan het slot <i>%2</i> van de machine <b>%3</b>. <p>Note that the storage unit of this medium will not be deleted and that it will be possible to use it later again.</p> - <p>Let op: de opslag eenheid van dit medium wordt niet verwijderd en dus is het mogelijk deze later opnieuw aan de lijst toe te voegen.</p> + <p>Weet dat de opslageenheid van dit medium niet wordt verwijderd en het dus mogelijk is deze later opnieuw te gebruiken.</p> <p>The VirtualBox Guest Additions do not appear to be available on this virtual machine, and shared folders cannot be used without them. To use shared folders inside the virtual machine, please install the Guest Additions if they are not installed, or re-install them if they are not working correctly, by selecting <b>Install Guest Additions</b> from the <b>Devices</b> menu. If they are installed but the machine is not yet fully started then shared folders will be available once it is.</p> - <p>De VirtualBox gast aanvullingen lijken niet beschikbaar op deze virtuale machine en gedeelde mappen kunnen dan niet worden gebruikt. Om gedeelde mappen te gebruiken binnen de virtuele machine installeer de gast aanvullingen als deze nog niet zijn geïnstalleerd, of herisntalleer deze als ze niet goed werken. Selecteer <b>Installeer gast aanvullingen</b> uit het menu <b>Machine</b>. Zijn deze geïnstalleer maar is de machine nog niet helemaal gestart dan komen de gedeelde mappen beschikbaar zo dadelijk bechikbaar.</p> + <p>De VirtualBox Guest Additions lijken niet beschikbaar op deze virtuele machine. Gedeelde mappen kunnen dan niet worden gebruikt. Om gedeelde mappen te kunnen gebruiken binnen de virtuele machine installeert u de Guest Additions indien deze nog niet zijn geïnstalleerd. Indien wel, moet u deze herinstalleren. Selecteer <b>Installeer Guest Additions</b> uit het menu <b>Machine</b>. Zijn de Guest Additions wel goed geïnstalleerd maar is de machine nog niet helemaal gestart dan komen de gedeelde mappen waarschijnlijk beschikbaar zodra de machine wel volledig is opgestart.</p> <p>The virtual machine window will be now switched to <b>fullscreen</b> mode. You can go back to windowed mode at any time by pressing <b>%1</b>.</p><p>Note that the <i>Host</i> key is currently defined as <b>%2</b>.</p><p>Note that the main menu bar is hidden in fullscreen mode. You can access it by pressing <b>Host+Home</b>.</p> - <p>De virtuale machine schakelt nu over op de <b>schermvullende</b> modus. U kunt ieder moment terug keren door op <b>%1</b> te drukken. Let op: de <i>gastheer toets</i> is op dit moment <b>%2</b>.</p><p>Let op: het hoofdmenu is verborgen bij volledig scherm. U kunt dit menu benaderen door op de <b>gastheer toets+Home</b> te drukken.</p> + <p>De virtuele machine schakelt nu over op de <b>schermvullende</b> modus. U kunt ieder moment terugkeren door op <b>%1</b> te drukken. Let op: de <i>Hosttoets</i> is op dit moment <b>%2</b>.</p><p>Besef dat het hoofdmenu verborgen is bij volledig scherm. U kunt dit menu benaderen door op de <b>Hosttoets+Home</b> te drukken.</p> <p>The virtual machine window will be now switched to <b>Seamless</b> mode. You can go back to windowed mode at any time by pressing <b>%1</b>.</p><p>Note that the <i>Host</i> key is currently defined as <b>%2</b>.</p><p>Note that the main menu bar is hidden in seamless mode. You can access it by pressing <b>Host+Home</b>.</p> - <p>De virtuale machine schakelt nu over op de <b>naadloze</b> modus. U kunt ieder moment terug keren door op <b>%1</b> te drukken. Let op: de gastheer toets</i> is op dit moment <b>%2</b>.</p><p>Let op: het hoofdmenu is verborgen in naadloze modus. U kunt dit menu benaderen door op de <b>gastheer toets+Home</b> te drukken.</p> + <p>De virtuele machine schakelt nu over op de <b>naadloze</b> modus. U kunt ieder moment terugkeren door op <b>%1</b> te drukken. Let op: de <i>Hosttoets</i> is op dit moment <b>%2</b>.</p><p>Besef dat het hoofdmenu is verborgen in naadloze modus. U kunt dit menu benaderen door op de <b>Hosttoets+Home</b> te drukken.</p> <p>The virtual machine window will be now switched to <b>Scale</b> mode. You can go back to windowed mode at any time by pressing <b>%1</b>.</p><p>Note that the <i>Host</i> key is currently defined as <b>%2</b>.</p><p>Note that the main menu bar is hidden in scale mode. You can access it by pressing <b>Host+Home</b>.</p> - <p>De virtuale machine schakelt nu over op de <b>schaalbare</b> modus. U kunt ieder moment terug keren door op <b>%1</b> te drukken. Let op: de gastheer toets</i> is op dit moment <b>%2</b>.</p><p>Let op: het hoofdmenu is verborgen in schaalbare modus. U kunt dit menu benaderen door op de <b>gastheer toets+Home</b> te drukken.</p> + <p>De virtuele machine schakelt nu over op de <b>schaalbare</b> modus. U kunt ieder moment terugkeren door op <b>%1</b> te drukken. Let op: de <i>Hosttoets</i> is op dit moment <b>%2</b>.</p><p>Besf dat het hoofdmenu is verborgen in schaalbare modus. U kunt dit menu benaderen door op de <b>Hosttoets+Home</b> te drukken.</p> Switch @@ -5453,11 +4283,11 @@ Failed to open the Extension Pack <b>%1</b>. - Het is niet gelukt om het uitbreidingspakket <b>%1</b> te installeren. + Het is niet gelukt het Extention Pack <b>%1</b> te installeren. <p>You are about to install a VirtualBox extension pack. Extension packs complement the functionality of VirtualBox and can contain system level software that could be potentially harmful to your system. Please review the description below and only proceed if you have obtained the extension pack from a trusted source.</p><p><table cellpadding=0 cellspacing=0><tr><td><b>Name:&nbsp;&nbsp;</b></td><td>%1</td></tr><tr><td><b>Version:&nbsp;&nbsp;</b></td><td>%2</td></tr><tr><td><b>Description:&nbsp;&nbsp;</b></td><td>%3</td></tr></table></p> - <p>U staat op het punt om het uitbreidingspakket voor VirtualBox te installeren. Uitbreidingspakketten vullen de functionaliteit van VirtualBox aan en kan software op systeem niveau bevatten die mogelijk schadelijk is voor uw systeem. Bekijkt de omschrijving hieronder aub. en ga alleen verder als u een uitbreidingspakket van een betrouwbare bron hebt ontvangen.</p><p><table cellpadding=0 cellspacing=0><tr><td><b>Naam:&nbsp;&nbsp;</b></td><td>%1</td></tr><tr><td><b>Versie:&nbsp;&nbsp;</b></td><td>%2</td></tr><tr><td><b>Omschrijving:&nbsp;&nbsp;</b></td><td>%3</td></tr></table></p> + <p>U staat op het punt een Extention Pack voor VirtualBox te installeren. Uitbreidingspakketten vullen de functionaliteit van VirtualBox aan en kan software op systeemniveau bevatten dat mogelijk schadelijk is voor uw systeem. Bekijk de beschrijving hieronder alstublieft en ga alleen verder als u een uitbreidingspakket van een betrouwbare bron hebt ontvangen.</p><p><table cellpadding=0 cellspacing=0><tr><td><b>Naam:&nbsp;&nbsp;</b></td><td>%1</td></tr><tr><td><b>Versie:&nbsp;&nbsp;</b></td><td>%2</td></tr><tr><td><b>Beschrijving:&nbsp;&nbsp;</b></td><td>%3</td></tr></table></p> &Install @@ -5465,19 +4295,19 @@ Extension packs complement the functionality of VirtualBox and can contain system level software that could be potentially harmful to your system. Please review the description below and only proceed if you have obtained the extension pack from a trusted source. - Uitbreidingspakketten vullen de functionaliteit van VirtualBox aan en kan software op systeem niveau bevatten die mogelijk schadelijk is voor uw systeem. Bekijkt de omschrijving hieronder aub. en ga alleen verder als u een uitbreidingspakket van een betrouwbare bron hebt ontvangen. + Uitbreidingspakketten vullen de functionaliteit van VirtualBox aan en kan software op systeemniveau bevatten dat mogelijk schadelijk is voor uw systeem. Bekijk de beschrijving hieronder alstublieft en ga alleen verder als u een uitbreidingspakket van een betrouwbare bron hebt ontvangen. <p>An older version of the extension pack is already installed, would you like to upgrade? <p>%1</p><p><table cellpadding=0 cellspacing=0><tr><td><b>Name:&nbsp;&nbsp;</b></td><td>%2</td></tr><tr><td><b>New Version:&nbsp;&nbsp;</b></td><td>%3</td></tr><tr><td><b>Current Version:&nbsp;&nbsp;</b></td><td>%4</td></tr><tr><td><b>Description:&nbsp;&nbsp;</b></td><td>%5</td></tr></table></p> - <p>Een oudere versie van het uitbreidingspakket is al geïnstalleerd, wilt u deze opwaarderen? <p>%1</p><p><table cellpadding=0 cellspacing=0><tr><td><b>Naam:&nbsp;&nbsp;</b></td><td>%2</td></tr><tr><td><b>Nieuwe Versie:&nbsp;&nbsp;</b></td><td>%3</td></tr><tr><td><b>Huidige Versie:&nbsp;&nbsp;</b></td><td>%4</td></tr><tr><td><b>Omscrijving:&nbsp;&nbsp;</b></td><td>%5</td></tr></table></p> + <p>Een oudere versie van het uitbreidingspakket is al geïnstalleerd, wilt u deze opwaarderen? <p>%1</p><p><table cellpadding=0 cellspacing=0><tr><td><b>Naam:&nbsp;&nbsp;</b></td><td>%2</td></tr><tr><td><b>Nieuwe Versie:&nbsp;&nbsp;</b></td><td>%3</td></tr><tr><td><b>Huidige Versie:&nbsp;&nbsp;</b></td><td>%4</td></tr><tr><td><b>Beschrijving:&nbsp;&nbsp;</b></td><td>%5</td></tr></table></p> &Upgrade - &Opwaarderen + &Upgrade <p>An newer version of the extension pack is already installed, would you like to downgrade? <p>%1</p><p><table cellpadding=0 cellspacing=0><tr><td><b>Name:&nbsp;&nbsp;</b></td><td>%2</td></tr><tr><td><b>New Version:&nbsp;&nbsp;</b></td><td>%3</td></tr><tr><td><b>Current Version:&nbsp;&nbsp;</b></td><td>%4</td></tr><tr><td><b>Description:&nbsp;&nbsp;</b></td><td>%5</td></tr></table></p> - <p>Een nieuwere versie van het uitbreidingspakket is al geïnstalleerd, wilt u naar de lagere versie? <p>%1</p><p><table cellpadding=0 cellspacing=0><tr><td><b>Naam:&nbsp;&nbsp;</b></td><td>%2</td></tr><tr><td><b>Nieuwe Versie:&nbsp;&nbsp;</b></td><td>%3</td></tr><tr><td><b>huidige Versie:&nbsp;&nbsp;</b></td><td>%4</td></tr><tr><td><b>Omschrijving:&nbsp;&nbsp;</b></td><td>%5</td></tr></table></p> + <p>Een nieuwere versie van het uitbreidingspakket is al geïnstalleerd, wilt u naar de lagere versie? <p>%1</p><p><table cellpadding=0 cellspacing=0><tr><td><b>Naam:&nbsp;&nbsp;</b></td><td>%2</td></tr><tr><td><b>Nieuwe Versie:&nbsp;&nbsp;</b></td><td>%3</td></tr><tr><td><b>huidige Versie:&nbsp;&nbsp;</b></td><td>%4</td></tr><tr><td><b>Beschrijving:&nbsp;&nbsp;</b></td><td>%5</td></tr></table></p> &Downgrade @@ -5485,7 +4315,7 @@ <p>The extension pack is already installed with the same version, would you like reinstall it? <p>%1</p><p><table cellpadding=0 cellspacing=0><tr><td><b>Name:&nbsp;&nbsp;</b></td><td>%2</td></tr><tr><td><b>Version:&nbsp;&nbsp;</b></td><td>%3</td></tr><tr><td><b>Description:&nbsp;&nbsp;</b></td><td>%4</td></tr></table></p> - <p>Het uitbreidingspakket is al geïnstalleerd met dezelfde versie, wilt u deze opnieuw installeren? <p>%1</p><p><table cellpadding=0 cellspacing=0><tr><td><b>Naam:&nbsp;&nbsp;</b></td><td>%2</td></tr><tr><td><b>Versie:&nbsp;&nbsp;</b></td><td>%3</td></tr><tr><td><b>Omschrijving:&nbsp;&nbsp;</b></td><td>%4</td></tr></table></p> + <p>Er is al een uitbreidingspakket geïnstalleerd met dezelfde versie, wilt u deze opnieuw installeren? <p>%1</p><p><table cellpadding=0 cellspacing=0><tr><td><b>Naam:&nbsp;&nbsp;</b></td><td>%2</td></tr><tr><td><b>Versie:&nbsp;&nbsp;</b></td><td>%3</td></tr><tr><td><b>Beschrijving:&nbsp;&nbsp;</b></td><td>%4</td></tr></table></p> &Reinstall @@ -5493,160 +4323,147 @@ <p>You are about to remove the VirtualBox extension pack <b>%1</b>.</p><p>Are you sure you want to proceed?</p> - <p>U staat op het punt om het uitbreidingspakket <b>%1</b> te verwijderen. Weet u dit zeker?</p> + <p>U staat op het punt het uitbreidingspakket <b>%1</b> te verwijderen. Weet u dit zeker?</p> The extension pack <br><nobr><b>%1</b><nobr><br> was installed successfully. - Het uitbreidingspakket <br><nobr><b>%1</b><nobr><br> was succesvo geïnstalleerd. - - - Deletion of all files belonging to the VM is currently disabled on Windows/x64 to prevent a crash. That will be fixed in the next release. - Verwijderen van alle bestanden die bij de VM horen is nu inactief op Windows/x64 om een crash te voorkomen. Dit wordt in de volgende versie opgelost. + Het uitbreidingspakket <br><nobr><b>%1</b><nobr><br> is met succes geïnstalleerd. <p>Cannot create the machine folder <b>%1</b> in the parent folder <nobr><b>%2</b>.</nobr></p><p>Please check that the parent really exists and that you have permissions to create the machine folder.</p> - <p>Kan de map <b>%1</b> voor de machine niet aanmaken in de bovenligende map <nobr><b>%2</b>.</nobr></p><p>Controleer of de bovenliggende map bestaat en dan u rechten heeft om de machine map aan te maken.</p> - - - <p>USB 2.0 is currently enabled for this virtual machine. However this requires the <b><nobr>%1</nobr></b> to be installed.</p><p>Please install the Extension Pack from the VirtualBox download site. After this you will be able to re-enable USB 2.0. It will be disabled in the meantime unless you cancel the current settings changes.</p> - <p>USB 2.0 is momenteel geactiveerd voor deze virtuele machine. Maar dit vereist installatie van <b><nobr>%1</nobr></b>.</p><p>Installeer het uitbreidingspakket beschikbaar op de VirtualBox download site. Hierna ben u instaat om de USB 2.0 opnieuw te activeren. In de tussentijn blijft deze inactief tenzij u de huidige instelling wijzigd.</p> + <p>Kan de map <b>%1</b> voor de machine niet aanmaken in de bovenliggende map <nobr><b>%2</b>.</nobr></p><p>Controleer of de bovenliggende map bestaat en dat u voldoende rechten hebt om de machinemap aan te maken.</p> Failed to register the virtual machine <b>%1</b>. - + Het is niet gelukt de virtuele machine <b>%1</b> te registreren. <p>The machine settings were changed while you were editing them. You currently have unsaved setting changes.</p><p>Would you like to reload the changed settings or to keep your own changes?</p> - + <p>De machine-instellingen werden veranderd terwijl u deze aan het bewerken was. U hebt momenteel niet-opgeslagen veranderingen.</p><p> Wilt u de veranderde instellingen herladen of uw eigen veranderingen houden?</p> Reload settings - + Instellingen herladen Keep changes - + Behoud veranderingen The virtual machine that you are changing has been started. Only certain settings can be changed while a machine is running. All other changes will be lost if you close this window now. - + De virtuele machine die u aan het veranderen bent werd opgestart. Slechts bepaalde instellingen kunnen worden veranderd wanneer een machine draait. Alle andere veranderingen gaan verloren bij het afsluiten van dit venster. Failed to clone the virtual machine <b>%1</b>. - + Het is niet gelukt virtuele machine <b>%1<b/> te klonen. <p>You are about to restore snapshot <b>%1</b>.</p><p>You can create a snapshot of the current state of the virtual machine first by checking the box below; if you do not do this the current state will be permanently lost. Do you wish to proceed?</p> - + <p>U staat op het punt momentopname <b>%1</b>.</p><p> te herstellen. U kunt eerst een momentopname aanmaken van de huidige staat van de virtuele machine door het hokje beneden aan te vinken; indien u dit niet doet zal de huidige staat permanent verloren gaan. Wilt u doorgaan?</p> Create a snapshot of the current machine state - + Maak een momentopname van de huidige machinestaat <p>Are you sure you want to restore snapshot <b>%1</b>?</p> - + <p>Weet u zeker dat u momentopname <b>%1</b> wilt terugzetten?</p> <p>Error changing medium type from <b>%1</b> to <b>%2</b>.</p> - + <p>Fout bij veranderen medium type van <b>%1</b> in <b>%2</b>.</p> <p>USB 2.0 is currently enabled for this virtual machine. However, this requires the <b><nobr>%1</nobr></b> to be installed.</p><p>Please install the Extension Pack from the VirtualBox download site. After this you will be able to re-enable USB 2.0. It will be disabled in the meantime unless you cancel the current settings changes.</p> - + <p>USB 2.0 staat momenteel aan voor deze virtuele machine. Echter, dit vereist dat <b><nobr>%1</nobr></b> is geïnstalleerd.</p><p>Installeer het Extension Pack van de VirtualBox downloadsite. Na installatie kunt u USB 2.0 weer inschakelen. In de tussentijd zal USB 2.0 worden uitgeschakeld, tenzij u de huidige verandering van instelling annuleert.</p> Could not load the Host USB Proxy Service (VERR_FILE_NOT_FOUND). The service might not be installed on the host computer - + Kon de Host USB Proxy Service (VERR_FILE_NOT_FOUND) niet laden. De service is mogelijk niet geïnstalleerd op de host computer VirtualBox is not currently allowed to access USB devices. You can change this by adding your user to the 'vboxusers' group. Please see the user manual for a more detailed explanation - + VirtualBox wordt momenteel niet toegestaan USB-apparaten te benaderen. U kunt dit veranderen door uw gebruiker toe te voegen aan de 'vboxusers' groep. Lees de gebruikershandleiding voor een meer gedetailleerde uitleg VirtualBox is not currently allowed to access USB devices. You can change this by allowing your user to access the 'usbfs' folder and files. Please see the user manual for a more detailed explanation - + VirtualBox wordt momenteel niet toegestaan USB-apparaten te benaderen. U kunt dit veranderen door uw gebruiker toegang te verlenen tot de 'usbfs' map en haar bestanden. Lees de gebruikershandleiding voor een meer gedetailleerde uitleg The USB Proxy Service has not yet been ported to this host - + De USB Proxy Service is nog niet gepoort naar deze host Could not load the Host USB Proxy service - + Kon de Host USB Proxy service niet laden Can't find snapshot named <b>%1</b>. - + Kan momentopname met de naam <b>%1</b> niet vinden. <p>Failed to save the downloaded file as <nobr><b>%1</b>.</nobr></p> - <p>Het is niet gelukt het gedownloade bestand als <nobr><b>%1</b> op te slaan.</nobr></p> + <p>Het is niet gelukt het gedownloade bestand als <nobr><b>%1</b> op te slaan.</nobr></p> <p>You have an old version (%1) of the <b><nobr>%2</nobr></b> installed.</p><p>Do you wish to download latest one from the Internet?</p> - + <p>U hebt een oude versie (%1) van <b><nobr>%2</nobr></b> geïnstalleerd staan.</p><p>Wilt u de nieuwste versie downloaden van het internet?</p> Download extension pack - Download + Download <p>Are you sure you want to download the <b><nobr>%1</nobr></b> from <nobr><a href="%2">%2</a></nobr> (size %3 bytes)?</p> - + <p>Weet u zeker dat u de <b><nobr>%1</nobr></b> van <nobr><a href="%2">%2</a></nobr> wilt downloaden (size %3 bytes)?</p> <p>The <b><nobr>%1</nobr></b> has been successfully downloaded from <nobr><a href="%2">%2</a></nobr> and saved locally as <nobr><b>%3</b>.</nobr></p><p>Do you wish to install this extension pack?</p> - + RL - lidwoord en werkwoord in eerste deel weggelaten, niet zeker van enkelvoud/meervoud in de naam van het extentiepakket, maar zo kan het ook ;) + <p><b><nobr>%1</nobr></b> met succes gedownload van <nobr><a href="%2">%2</a></nobr> en lokaal opgeslagen als <nobr><b>%3</b>.</nobr></p><p>Wilt u dit uitbreidingspakket installeren?</p> Install extension pack - Installeer + Installeer <p>The <b><nobr>%1</nobr></b> has been successfully downloaded from <nobr><a href="%2">%2</a></nobr> but can't be saved locally as <nobr><b>%3</b>.</nobr></p><p>Please choose another location for that file.</p> - - - - <p>Failed to download the <b><nobr>%1</nobr></b> from <nobr><a href="%2">%2</a>.</nobr></p><p>%3</p> - + RL - lidwoord en werkwoord in eerste deel weggelaten, niet zeker van enkelvoud/meervoud in de naam van het extentiepakket, maar zo kan het ook + <p><b><nobr>%1</nobr></b> met succes gedownload van <nobr><a href="%2">%2</a></nobr> en maar kan lokaal niet worden opgeslagen als <nobr><b>%3</b>.</nobr></p><p>Kies een andere locatie voor dat bestand.</p> <p>You have version %1 of the <b><nobr>%2</nobr></b> installed.</p><p>You should download and install version %3 of this extension pack from Oracle!</p> - + <p>U hebt versie %1 van <b><nobr>%2</nobr></b> geïnstalleerd staan.</p><p>U zou versie %3 van dit uitbreidingspakket van Oracle moeten downloaden en installeren!</p> Ok extension pack - + OK - - - UIMiniProcessWidgetAdditions - Cancel - Annuleren + <p>Failed to download the <b><nobr>%1</nobr></b> from <nobr><a href="%2">%2</a>.</nobr></p><p>%3</p> + <p>Het <b><nobr>%1</nobr><b> kon niet van <nobr><a href="%2">%2</a></nobr> worden gedownload</p><p>%3</p> - Cancel the VirtualBox Guest Additions CD image download - Annuleer de download van de virtuele CD, met de VirtualBox gast uitbreidingen + <p>Failed to initialize COM because the VirtualBox global configuration directory <b><nobr>%1</nobr></b> is not accessible. Please check the permissions of this directory and of its parent directory.</p><p>The application will now terminate.</p> + <p>Initialisatie COM is mislukt omdat de VirtualBox algemene configuratiemap <b><nobr>%1</nobr></b> niet toegankelijk is. Controleer de rechten op deze map en op die van bovenliggende mappen.</p><p>Het programma zal nu afsluiten.</p> - - Downloading the VirtualBox Guest Additions CD image from <nobr><b>%1</b>...</nobr> - Download de virtuele CD, met de VirtualBox gast uitbreidingen bij <nobr><b>%1</b>...</nobr> + + <p>The %n following virtual machine(s) are currently in a saved state: <b>%1</b></p><p>If you continue the runtime state of the exported machine(s) will be discarded. The other machine(s) will not be changed.</p> + This text is never used with n == 0. Feel free to drop the %n where possible, we only included it because of problems with Qt Linguist (but the user can see how many machines are in the list and doesn't need to be told). + + <p>De volgende virtuele machine bevindt zich momenteel in opgeslagen staat: <b>%1</b></p><p>Indien u doorgaat wordt de runtime staat van de geëxporteerde machine weggegooid. Weet dat de bestaande machine niet wordt veranderd.</p> + <p>De volgende virtuele machines bevinden zich momenteel in opgeslagen staat: <b>%1</b></p><p>Indien u doorgaat wordt de runtime staat van de geëxporteerde machines weggegooid. Weet dat de bestaande machines niet worden veranderd.</p> + UIMiniProcessWidgetUserManual - Cancel - Annuleren - - Cancel the VirtualBox User Manual download - Annuleer de download van het VirtualBox gebruikershandboek + Annuleer download van VirtualBox gebruikershandboek Downloading the VirtualBox User Manual @@ -5661,33 +4478,33 @@ UIMiniProgressWidgetAdditions Cancel the VirtualBox Guest Additions CD image download - Annuleer de download van de virtuele CD, met de VirtualBox gast uitbreidingen + Annuleer download VirtualBox Guest Additions CD image Downloading the VirtualBox Guest Additions CD image from <nobr><b>%1</b>...</nobr> - Download de virtuele CD, met de VirtualBox gast uitbreidingen bij <nobr><b>%1</b>...</nobr> + Download VirtualBox Guest Additions CD image van <nobr><b>%1</b>...</nobr> UIMiniProgressWidgetExtension Cancel the <nobr><b>%1</b></nobr> download - + Annuleer de <nobr><b>%1</b></nobr> download Downloading the <nobr><b>%1</b></nobr> from <nobr><b>%2</b>...</nobr> - + Downloaden <nobr><b>%1</b></nobr> van <nobr><b>%2</b>...</nobr> UIMultiScreenLayout Virtual Screen %1 - Virtual Scherm %1 + Virtueel Scherm %1 Use Host Screen %1 - Gebruik scherm gastheer %1 + Gebruik Host Scherm %1 @@ -5697,399 +4514,209 @@ Maak een nieuwe virtuele schijf - Welcome to the Create New Virtual Disk Wizard! - Welkom bij de assistent voor het aanmaken van een nieuwe virtuele schijf! - - - Virtual Disk Location and Size - Locatie en omvang van de vrituele schijf - - - Summary - Samenvatting - - - <nobr>%1 Bytes</nobr> - <nobr>%1 Bytes</nobr> - - - Hard disk images (*.vdi) - Harde schijf image (*.vdi) - - - Select a file for the new hard disk image file - Selecteer een bestand voor de nieuwe harde schijf image - - - < &Back - < &Terug - - - &Next > - &Volgende > - - - &Finish - &Klaar - - - Type - summary - Soort - - - Location - summary - Locatie - - - Size - summary - Omvang - - - Bytes - summary - Bytes - - - Cancel - Annuleren - - - <p>This wizard will help you to create a new virtual hard disk for your virtual machine.</p><p>Use the <b>Next</b> button to go to the next page of the wizard and the <b>Back</b> button to return to the previous page.</p> - <p>Deze assistent helpt u met het aanmaken van een nieuwe harde schrijf voor uw virtuele machine.</p><p>Gebruik de knop <b>Volgende</b> om naar de volgende pagina van de assistent te gaan en de knop <b>Terug</b> om terug te keren naar de vorige pagina.</p> - - - Hard Disk Storage Type - Soort opslag voor de harde schijf - - - <p>Select the type of virtual hard disk you want to create.</p><p>A <b>dynamically expanding storage</b> initially occupies a very small amount of space on your physical hard disk. It will grow dynamically (up to the size specified) as the Guest OS claims disk space.</p><p>A <b>fixed-size storage</b> does not grow. It is stored in a file of approximately the same size as the size of the virtual hard disk. The creation of a fixed-size storage may take a long time depending on the storage size and the write performance of your harddisk.</p> - <p>Selecteer het soort opslag voor de harde schijf die wilt aanmaken.</p><p>Een <b>dynamisch uit te breiden opslag</b> neemt in het begin een kleine hoeveelheid ruimte van uw fysieke harde schijf in beslag. Maar zal dynamisch groeien (tot aan de vastgestelde grote) zodra het gast besturingssysteem ruimte nodig heeft.</p><p>Een <b>opslag met een vaste omvang</b> groeit niet. Deze is opgeslagen in een bestand met ongeveer dezelfde grote als de virtuele harde schijf. Het aanmaken van een opslag met vaste omvang kan lang duren, dit hangt af van de omvang van de opslag en de schrijfsnelheid van uw fysieke harde schijf.</p> - - - Storage Type - Soort opslag - - - &Dynamically expanding storage - &Dynamisch uit te breiden opslag - - - &Fixed-size storage - &Opslag met een vaste omvang - - - <p>Press the <b>Select</b> button to select the location of a file to store the hard disk data or type a file name in the entry field.</p> - <p>Druk op de knop <b>Selecteer</b>, om de locatie van een bestand te selecteren waarin de harde schijf gegevens worden opgeslagen of typ een bestandsnaam in het invoerveld.</p> - - - &Location - &Locatie - - - <p>Select the size of the virtual hard disk in megabytes. This size will be reported to the Guest OS as the maximum size of this hard disk.</p> - <p>Selecteer de omvang van de virtuele harde schijf in megabytes. Deze omvang wordt gerapporteerd aan het gast besturingssysteem als de maximale omvang van deze harde schijf.</p> - - - &Size - &Omvang - - - You are going to create a new virtual hard disk with the following parameters: - U staat op het punt een nieuwe virtuele harde schijf aan te maken met de onderstaande parameters: - - - If the above settings are correct, press the <b>Finish</b> button. Once you press it, a new hard disk will be created. - Zijn de bovenstaande instellingen correct? Druk dan op de knop <b>Klaar</b>. Zodra u op de knop drukt wordt de nieuwe harde schijf aan gemaakt. - - %1_copy copied virtual disk name - + %1_copy Create - + Aanmaken Copy Virtual Disk - + Kopieer Virtuele Schijf Copy - + Kopieer Welcome to the virtual disk copying wizard - + Kopiëren virtuele schijf <p>This wizard will help you to copy a virtual disk.</p> - + <p>Deze assistent zal u helpen een kopie te maken van uw virtuele schijf </p> Please select the virtual disk which you would like to copy if it is not already selected. You can either choose one from the list or use the folder icon beside the list to select a virtual disk file. - + Kies een virtuele schijf om te kopiëren als u deze nog niet geselecteerd hebt. U kunt een schijf kiezen uit de lijst of door op de mappenicoon naast de lijst te klikken en daar een schijfbestand te kiezen. &VDI (VirtualBox Disk Image) - + &VDI (VirtualBox Disk Image V&MDK (Virtual Machine Disk) - + V&MDK (Virtual Machine Disk) V&HD (Virtual Hard Disk) - + V&HD (Virtual Hard Disk) Welcome to the virtual disk creation wizard - + Aanmaken virtuele schijf <p>This wizard will help you to create a new virtual disk for your virtual machine.</p> - + <p>Deze assistent helpt u bij het aanmaken van een nieuwe virtuele harde schijf voor uw virtuele machine.</p> <p>Please choose the type of file that you would like to use for the new virtual disk. If you do not need to use it with other virtualization software you can leave this setting unchanged.</p> - + <p>Kies het bestandstype dat u wilt gebruiken voor deze nieuwe virtuele schijf. Indien u niet van plan bent deze virtuele schijf met andersoortige virtualisatiesoftware te gebruiken kunt u deze instelling onveranderd laten.</p> Virtual disk file type - + Bestandstype virtuele schijf Please choose the type of file that you would like to use for the new virtual disk. If you do not need to use it with other virtualization software you can leave this setting unchanged. - + Kies het bestandstype dat u wilt gebruiken voor deze nieuwe virtuele schijf. Indien u niet van plan bent deze virtuele schijf met andersoortige virtualisatiesoftware te gebruiken kunt u deze instelling onveranderd laten. Virtual disk storage details - + Opslagdetails virtuele schijf Please choose whether the new virtual disk file should be allocated as it is used or if it should be created fully allocated. - + Kies of het nieuwe virtueel schijfbestand gealloceerd moet worden tijdens gebruik of dat het volledig gealloceerd aangemaakt moet worden. <p>A <b>dynamically allocated</b> virtual disk file will only use space on your physical hard disk as it fills up, although it will not shrink again automatically when space on it is freed.</p> - + <p>Een <b>dynamisch gealloceerd</b> virtueel schijfbestand zal tijdens gebruik groeien tot de aangegeven maximale grootte en zo in het begin minder ruimte op uw fysieke harde schijf innemen, hoewel het schijfbestand niet automatisch zal krimpen wanneer ruimte wordt vrijgemaakt.</p> <p>A <b>fixed size</b> virtual disk file may take longer to create on some systems but is often faster to use.</p> - + <p>Aanmaken van een virtueel schijfbestand van <b>gefixeerde grootte</b> kan op sommige systemen langer duren maar is vaak sneller in het gebruik.</p> <p>You can also choose to <b>split</b> the virtual disk into several files of up to two gigabytes each. This is mainly useful if you wish to store the virtual machine on removable USB devices or old systems, some of which cannot handle very large files. - + <p>U kunt er ook voor kiezen het virtueel schijfbestand <b>te splitsen</b> in meerdere bestanden van maximaal twee gigabytes elk. Dit is hoofdzakelijk handig indien u de virtuele machine wilt opslaan op verwijderbare USB-apparaten of op oudere systemen, waarvan sommige niet kunnen omgaan met erg grote bestanden. &Dynamically allocated - + &Dynamisch gealloceerd &Fixed size - + &Vaste grootte &Split into files of less than 2GB - + &splits in bestanden minder groot dan 2GB Virtual disk file location and size - + Locatie en Grootte virtuele schijf Select the size of the virtual disk in megabytes. This size will be reported to the Guest OS as the maximum size of this virtual disk. - + Selecteer de grootte van de virtuele schijf in megabytes. Deze grootte zal aan het gast-OS worden gemeld als de maximale grootte van deze virtuele schijf. Virtual disk file location - + Locatie virtuele schijf Please type the name of the new virtual disk file into the box below or click on the folder icon to select a different folder to create the file in. - + Typ de naam van de nieuwe virtuele schijf in de ruimte beneden of klik op het mapicoontje, kies een andere map en maak daar het bestand in aan. + + + Select a file for the new hard disk image file + Selecteer een bestand voor de nieuwe harde schijf image <nobr>%1 (%2 B)</nobr> - <nobr>%1 (%2 B)</nobr> + <nobr>%1 (%2 B)</nobr> + + + Summary + Samenvatting You are going to create a new virtual disk with the following parameters: - + U staat op het punt een nieuwe virtuele harde schijf aan te maken met de volgende parameters: You are going to create a copied virtual disk with the following parameters: - + U staat op het punt een gekopieerde virtuele harde schijf aan te maken met de volgende parameters: If the above settings are correct, press the <b>%1</b> button. Once you press it the new virtual disk file will be created. - + Indien bovenstaande instellingen correct zijn, klik op de <b>%1<b/> knop. Eenmaal aangeklikt zal de nieuwe virtuele schijf worden aangemaakt. %1 B - %1 B + %1 B File type summary - + Bestandstype Details summary - + Details + + + Location + summary + Locatie + + + Size + summary + Grootte H&DD (Parallels Hard Disk) - + H&DD (Parallels Hard Disk) Q&ED (QEMU enhanced disk) - + Q&ED (QEMU enhanced disk) &QCOW (QEMU Copy-On-Write) - + &QCOW (QEMU Copy-On-Write) UINewHDWizardPageFormat File type - + Bestandstype UINewHDWizardPageOptions &Location - &Locatie + &Locatie &Size - &Omvang + Gr&ootte UINewHDWizardPageVariant Storage details - + Opslagdetails UINewHDWizardPageWelcome - Welcome to the Create New Virtual Disk Wizard! - Welkom bij de assistent voor het aanmaken van een nieuwe virtuele schijf! - - - <p>This wizard will help you to create a new virtual hard disk for your virtual machine.</p><p>%1</p> - <p>Deze assistent help u bij het aanmaken van een nieuwe virtuele harde schijf voor uw virtuale machine.</p><p>%1</p> - - Virtual disk to copy - + Virtuele schijf te kopiëren Choose a virtual hard disk file... - kies een virtueel harde schijf bestand... - - - - UINewHDWzdPage2 - - <p>Select the type of virtual hard disk you want to create.</p><p>A <b>dynamically expanding storage</b> initially occupies a very small amount of space on your physical hard disk. It will grow dynamically (up to the size specified) as the Guest OS claims disk space.</p><p>A <b>fixed-size storage</b> does not grow. It is stored in a file of approximately the same size as the size of the virtual hard disk. The creation of a fixed-size storage may take a long time depending on the storage size and the write performance of your harddisk.</p> - <p>Selecteer het soort opslag voor de harde schijf die wilt aanmaken.</p><p>Een <b>dynamisch uit te breiden opslag</b> neemt in het begin een kleine hoeveelheid ruimte van uw fysieke harde schijf in beslag. Maar zal dynamisch groeien (tot aan de vastgestelde grote) zodra het gast besturingssysteem ruimte nodig heeft.</p><p>Een <b>opslag met een vaste omvang</b> groeit niet. Deze is opgeslagen in een bestand met ongeveer dezelfde grote als de virtuele harde schijf. Het aanmaken van een opslag met vaste omvang kan lang duren, dit hangt af van de omvang van de opslag en de schrijfsnelheid van uw fysieke harde schijf.</p> - - - Storage Type - Soort opslag - - - &Dynamically expanding storage - &Dynamisch uit te breiden opslag - - - &Fixed-size storage - &Opslag met een vaste omvang - - - Hard Disk Storage Type - Soort opslag voor de harde schijf - - - - UINewHDWzdPage3 - - <p>Press the <b>Select</b> button to select the location of a file to store the hard disk data or type a file name in the entry field.</p> - <p>Druk op de knop <b>Selecteer</b>, om de locatie van een bestand te selecteren waarin de harde schijf gegevens worden opgeslagen of typ een bestandsnaam in het invoerveld.</p> - - - &Location - &Locatie - - - <p>Select the size of the virtual hard disk in megabytes. This size will be reported to the Guest OS as the maximum size of this hard disk.</p> - <p>Selecteer de omvang van de virtuele harde schijf in megabytes. Deze omvang wordt gerapporteerd aan het gast besturingssysteem als de maximale omvang van deze harde schijf.</p> - - - &Size - &Omvang - - - Virtual Disk Location and Size - Locatie en omvang van de vrituele schijf - - - Select a file for the new hard disk image file - Selecteer een bestand voor de nieuwe harde schijf image - - - Hard disk images (*.vdi) - Harde schijf image (*.vdi) - - - <nobr>%1 (%2 B)</nobr> - <nobr>%1 (%2 B)</nobr> - - - - UINewHDWzdPage4 - - You are going to create a new virtual hard disk with the following parameters: - U staat op het punt een nieuwe virtuele harde schijf aan te maken met de onderstaande parameters: - - - Summary - Samenvatting - - - %1 B - %1 B - - - Type - summary - Soort - - - Location - summary - Locatie - - - Size - summary - Omvang - - - If the above settings are correct, press the <b>%1</b> button. Once you press it, a new hard disk will be created. - Druk op de <b>%1</b> knop als de bovenstaande instellingen juist zijn. Zodra u de knop indrukt wordt de nieuwe harde schijf aangemaakt. + Kies een virtueel harde schijf bestand... @@ -6099,138 +4726,26 @@ Maak een nieuwe virtuele machine - Welcome to the New Virtual Machine Wizard! - Welkom bij de assistent voor het aanmaken van een nieuwe virtuele machine! - - - N&ame - N&aam - - - OS &Type - &Soort besturingssysteem - - - VM Name and OS Type - VM naam en soort besturingssysteem - - - <p>Select the amount of base memory (RAM) in megabytes to be allocated to the virtual machine.</p> - <p>Selecteer de hoeveelheid hoofdgeheugen (RAM) in megabytes, die aan de virtuele machine wordt toegewezen.</p> - - - Base &Memory Size - Hoeveelheid &Hoofdgeheugen - - - Memory - Geheugen - - - Virtual Hard Disk - Virtuele harde schijf - - - Summary - Samenvatting - - - The recommended base memory size is <b>%1</b> MB. - De aanbevolen hoeveelheid geheugen bedraagt <b>%1</b> MB. - - - The recommended size of the start-up disk is <b>%1</b> MB. - De aanbevolen grote van de opstartschijf bedraagt <b>%1</b> MB. - - - <p>This wizard will guide you through the steps that are necessary to create a new virtual machine for VirtualBox.</p><p>Use the <b>Next</b> button to go the next page of the wizard and the <b>Back</b> button to return to the previous page.</p> - <p>Deze assistent helpt u met de stappen die nodig zijn voor het aanmaken van een virtuele machine in VirtualBox.</p><p>Gebruik de knop <b>Volgende</b>, om naar de volgende pagina van de assistent te gaan en de knop <b>Terug</b>,om terug te keren naar de vorige pagina.</p> - - - < &Back - < &Terug - - - &Next > - &Volgende > - - - <p>Enter a name for the new virtual machine and select the type of the guest operating system you plan to install onto the virtual machine.</p><p>The name of the virtual machine usually indicates its software and hardware configuration. It will be used by all VirtualBox components to identify your virtual machine.</p> - <p>Geef een naam op voor de nieuwe virtuele machine en selecteer het soort besturingssysteem die u van plan bent te installeren op de virtuele machine.</p><p>De naam van de virtuele machine geeft over het algemeen aan welke soft- en hardware wordt gebruikt. Deze naam wordt door alle VirtualBox componenten gebruikt om uw virtuele machine te identificeren.</p> - - - <p>You are going to create a new virtual machine with the following parameters:</p> - <p>U staat op het punt een nieuwe virtuele machine aan te maken met de onderstaande parameters::</p> - - - <p>If the above is correct press the <b>Finish</b> button. Once you press it, a new virtual machine will be created. </p><p>Note that you can alter these and all other setting of the created virtual machine at any time using the <b>Settings</b> dialog accessible through the menu of the main window.</p> - <p>Zijn de bovenstaande instellingen correct? Druk dan op de knop <b>Klaar</b>. Zodra u op de knop drukt wordt de nieuwe machine aan gemaakt..</p></p>Let op, u kunt deze en andere instellingen, van de virtuele machine, op elk moment aanpassen door gebruik te maken van de <b>Instellingen</b> dialoog, deze is beschikbaar via het menu in het hoofd venster.</p> - - - &Finish - &Klaar - - - Name - summary - Naam - - - OS Type - summary - Soort besturingssystem - - - Base Memory - summary - Geheugen - - - Start-up Disk - summary - Opstartschijf - - - Cancel - Annuleren - - - <p>Select a hard disk image to be used as the boot hard disk of the virtual machine. You can either create a new hard disk using the <b>New</b> button or select an existing hard disk image from the drop-down list or by pressing the <b>Existing</b> button (to invoke the Virtual Media Manager dialog).</p><p>If you need a more complex virtual disk setup you can skip this step and make the changes to the machine settings once the machine is created.</p> - <p>Selecteer een harde schijf image die als opstartschijf, voor uw virtuele machine, gebruikt gaat worden. U kunt nieuwe harde schijf aanmaken met behulp van de knop <b>Nieuw</b> of een bestaande harde schijf image selecteren uit de keuzelijst of door op de knop <b>Bestaande</b> drukken (dit start de manager virtuele media).</p><p>Heeft u een complexe opzet nodig van de harde schijf, dan kunt u deze stap overslaan en op een later tijdstip de harde schijf aankoppelen. Dit gaat dan via het VM instellingen dialoog.</p> - - - Start-up &Disk (Primary Master) - &Opstartschijf (Primaire master) - - - &Create new hard disk - &Maak een nieuwe harde schijf aan - - - &Use existing hard disk - &Gebruikt een bestaande harde schijf - - Create - + Aanmaken UINewVMWzdPage1 Welcome to the New Virtual Machine Wizard! - Welkom bij de assistent voor het aanmaken van een nieuwe virtuele machine! + Aanmaken nieuwe virtuele machine <p>This wizard will guide you through the steps that are necessary to create a new virtual machine for VirtualBox.</p><p>%1</p> - <p>Deze assistent help u bij het aanmaken van een nieuwe virtuele machine in VirtualBox.</p><p>%1</p> + <p>Deze assistent help u bij het aanmaken van een nieuwe virtuele machine voor VirtualBox.</p><p>%1</p> UINewVMWzdPage2 <p>Enter a name for the new virtual machine and select the type of the guest operating system you plan to install onto the virtual machine.</p><p>The name of the virtual machine usually indicates its software and hardware configuration. It will be used by all VirtualBox components to identify your virtual machine.</p> - <p>Geef een naam op voor de nieuwe virtuele machine en selecteer het soort besturingssysteem die u van plan bent te installeren op de virtuele machine.</p><p>De naam van de virtuele machine geeft over het algemeen aan welke soft- en hardware wordt gebruikt. Deze naam wordt door alle VirtualBox componenten gebruikt om uw virtuele machine te identificeren.</p> + <p>Geef een naam op voor de nieuwe virtuele machine en selecteer het soort besturingssysteem dat u van plan bent op deze virtuele machine te installeren.</p><p>De naam van de virtuele machine geeft over het algemeen aan welke soft- en hardware wordt gebruikt. Deze naam wordt door alle VirtualBox-componenten gebruikt om uw virtuele machine te identificeren.</p> N&ame @@ -6242,18 +4757,18 @@ VM Name and OS Type - VM naam en soort besturingssysteem + VM-naam en soort besturingssysteem UINewVMWzdPage3 <p>Select the amount of base memory (RAM) in megabytes to be allocated to the virtual machine.</p> - <p>Selecteer de hoeveelheid hoofdgeheugen (RAM) in megabytes, die aan de virtuele machine wordt toegewezen.</p> + <p>Selecteer de hoeveelheid basisgeheugen (RAM) in megabytes die aan de virtuele machine moet worden toegewezen.</p> Base &Memory Size - Hoeveelheid &Hoofdgeheugen + Grootte &Basisgeheugen MB @@ -6265,25 +4780,12 @@ The recommended base memory size is <b>%1</b> MB. - De aanbevolen hoeveelheid geheugen bedraagt <b>%1</b> MB. - - - MB - size suffix MBytes=1024 KBytes - MB + De aanbevolen hoeveelheid basisgeheugen bedraagt <b>%1</b> MB. UINewVMWzdPage4 - <p>Select a hard disk image to be used as the boot hard disk of the virtual machine. You can either create a new hard disk using the <b>New</b> button or select an existing hard disk image from the drop-down list or by pressing the <b>Existing</b> button (to invoke the Virtual Media Manager dialog).</p><p>If you need a more complex virtual disk setup you can skip this step and make the changes to the machine settings once the machine is created.</p> - <p>Selecteer een harde schijf image die als opstartschijf, voor uw virtuele machine, gebruikt gaat worden. U kunt nieuwe harde schijf aanmaken met behulp van de knop <b>Nieuw</b> of een bestaande harde schijf image selecteren uit de keuzelijst of door op de knop <b>Bestaande</b> drukken (dit start de manager virtuele media).</p><p>Heeft u een complexe opzet nodig van de harde schijf, dan kunt u deze stap overslaan en op een later tijdstip de harde schijf aankoppelen. Dit gaat dan via het VM instellingen dialoog.</p> - - - Start-up &Disk (Primary Master) - &Opstartschijf (Primaire master) - - &Create new hard disk &Maak een nieuwe harde schijf aan @@ -6296,31 +4798,27 @@ Virtuele harde schijf - The recommended size of the start-up disk is <b>%1</b> MB. - De aanbevolen grote van de opstartschijf bedraagt <b>%1</b> MB. - - Start-up &Disk - Opstart harde &schijf + Opstart harde &schijf <p>If you wish you can now add a start-up disk to the new machine. You can either create a new virtual disk or select one from the list or from another location using the folder icon.</p><p>If you need a more complex virtual disk setup you can skip this step and make the changes to the machine settings once the machine is created.</p> - <p>Selecteer een harde schijf die als opstartschijf dient voor de virtuele machine. U kunt of een nieuwe harde schijf aanmaken of een bestaande kiezen uit de keuzelijst of op de overeenkomstige knop te klikken (om het bestand-open venster op te roepen). </p><p>Heeft u een complexe opzet nodig van de harde schijf, dan kunt u deze stap overslaan en op een later tijdstip de harde schijf koppelen. Dit gaat dan via het VM instellingen dialoog.</p> + <p>Selecteer een harde schijf die als opstartschijf zal dienen voor deze nieuwe machine. U kunt of een nieuwe harde schijf aanmaken, of een bestaande kiezen uit de keuzelijst, of een schijf kiezen van een andere locatie door op de map-icoon te klikken. </p><p>Hebt u een meer complexe instelling van de harde schijf nodig, dan kunt u deze stap overslaan en instellingen van de machine wijzigen als de machine eenmaal is aangemaakt.</p> Choose a virtual hard disk file... - kies een virtueel harde schijf bestand... + Kies een virtueel harde schijf bestand... The recommended size of the start-up disk is <b>%1</b>. - De aanbevolen grote van de opstart harde schijf is <b>%1</b>. + De aanbevolen grootte van de opstart harde schijf is <b>%1</b>. UINewVMWzdPage5 <p>You are going to create a new virtual machine with the following parameters:</p> - <p>U staat op het punt een nieuwe virtuele machine aan te maken met de onderstaande parameters::</p> + <p>U staat op het punt een nieuwe virtuele machine aan te maken met de volgende parameters:</p> Summary @@ -6334,7 +4832,7 @@ OS Type summary - Soort besturingssystem + OS Type Base Memory @@ -6342,18 +4840,13 @@ Geheugen - MB - size suffix MBytes=1024KBytes - MB - - Start-up Disk summary - Opstartschijf + Opstartschijf <p>If the above is correct press the <b>%1</b> button. Once you press it, a new virtual machine will be created. </p><p>Note that you can alter these and all other setting of the created virtual machine at any time using the <b>Settings</b> dialog accessible through the menu of the main window.</p> - <p>Is het bovenstaande juist? Druk op de <b>%1</b> knop. Zodra u de knop indrukt wordt de nieuwe virtuale machine aangemaakt. </p><p>Let op, u kunt deze en andere instellingen, van deze virtule machine, op elk moment wijzigen via het dialoog <b>Instellingen</b> uit het menu in het hoofdscherm.</p> + <p>Is het bovenstaande juist? Klik op de <b>%1</b> knop. Zodra u de knop aanklikt wordt de nieuwe virtuele machine aangemaakt. </p><p>Weet dat u deze en andere instellingen van deze virtuele machine op elk moment kunt wijzigen via de dialoog <b>Instellingen</b> uit het menu in het hoofdscherm.</p> @@ -6386,81 +4879,25 @@ UIProgressDialog - Time remaining: %1 - Tijd nog te gaan: %1 + A few seconds remaining + Een paar seconden resteren - %1 days, %2 hours remaining - %1 dagen, %2 uren resteren + Canceling... + Annuleren... - %1 days, %2 minutes remaining - %1 dagen, %2 minuten resteren + &Cancel + &Annuleren - %1 days remaining - %1 dagen resteren + Cancel the current operation + Annuleer de huidige operatie - 1 day, %1 hours remaining - 1 dag, %1 uren resteren - - - 1 day, %1 minutes remaining - 1 dag, %1 minuten resteren - - - 1 day remaining - 1 dag resteert - - - %1 hours, %2 minutes remaining - %1 uren, %2 minuten resteren - - - 1 hour, %1 minutes remaining - 1 uur, %1 minuten resteren - - - 1 hour remaining - 1 uur resteert - - - %1 minutes remaining - %1 minuten resteren - - - 1 minute, %2 seconds remaining - 1 minuut, %2 seconden resteren - - - 1 minute remaining - 1 minuut resteert - - - %1 seconds remaining - %1 seconden resteren - - - A few seconds remaining - Een paar seconden resteren - - - Canceling... - Annuleren... - - - &Cancel - &Annuleren - - - Cancel the current operation - Annuleer de huidige operatie - - - %1, %2 remaining - You may wish to translate this more like "Time remaining: %1, %2" - %1, %2 resterend + %1, %2 remaining + You may wish to translate this more like "Time remaining: %1, %2" + %1, %2 resterend %1 remaining @@ -6479,7 +4916,7 @@ UISettingsDialog <i>Select a settings category from the list on the left-hand side and move the mouse over a settings item to get more information.</i> - <i>Selecteer een categorie instellingen uit de lijst aan de linkerkant en beweeg de muis over de instelling voor meer informatie.</i> + <i>Selecteer een categorie instellingen uit de lijst aan de linkerkant en beweeg de muis over een instellingsmogelijkheid voor meer informatie.</i> On the <b>%1</b> page, %2 @@ -6534,7 +4971,7 @@ Proxy - + Proxy @@ -6587,30 +5024,6 @@ %1 - %2 %1 - %2 - - you have selected a 64-bit guest OS type for this VM. As such guests require hardware virtualization (VT-x/AMD-V), this feature will be enabled automatically. - U heeft een 64-Bit gastbesturingssysteem, voor deze VM, geselecteerd. Daarom is hardware virtualisering (VT-x/AMD-V) vereist voor de gast, deze optie wordt automatische geactiveerd. - - - you have 2D Video Acceleration enabled. As 2D Video Acceleration is supported for Windows guests only, this feature will be disabled. - U hebt 2D video versnelling geactiveerd. Omdat 2D video versnelling alleen door Windows wordt ondersteund, wordt deze mogelijkheid gedeactiveerd. - - - you have enabled a USB HID (Human Interface Device). This will not work unless USB emulation is also enabled. This will be done automatically when you accept the VM Settings by pressing the OK button. - U hebt een USB HID (Human Interface Device) geactiveerd. Deze zal niet werken zolang de USB emulatie niet is geactiveerd. Dit wordt automatisch gedaan als u de VM instellingen accepteerd door op de Ok knop te klikken. - - - at most one supported - Op zijn minst één ondersteund - - - up to %1 supported - tot %1 ondersteund - - - you are currently using more storage controllers than a %1 chipset supports. Please change the chipset type on the System settings page or reduce the number of the following storage controllers on the Storage settings page: %2. - u gebruikt nu meer opslagcontrolers dan een %1 chipset ondersteund. Wijzig aub het type chipset bij de pagina met systeeminstellingen of verminder het volgende aantal opslagcontrolers bij de pagina met opslaginstellingen: %2. - UITextEditor @@ -6624,7 +5037,7 @@ Replaces the current text with the content of a file. - Vervangt de bestaande tekst met de inhoud van het opgegeven bestand. + Vervangt de bestaande tekst met de inhoud van een opgegeven bestand. Text (*.txt);;All (*.*) @@ -6681,52 +5094,12 @@ Never Nooit - - Chec&k - &Controleer - - - &Close - &Sluiten - - - VirtualBox Update Wizard - VirtualBox bijwerken - - - Check for Updates - Controleer op nieuwe versies - - - Cancel - Annuleren - - - Summary - Samenvatting - - - <p>A new version of VirtualBox has been released! Version <b>%1</b> is available at <a href="http://www.virtualbox.org/">virtualbox.org</a>.</p><p>You can download this version using the link:</p><p><a href=%2>%3</a></p> - <p>Een nieuwe versie van VirtualBox is vrijgegeven! Versie <b>%1</b> is beschikbaar via <a href="http://www.virtualbox.org/">virtualbox.org</a>.</p><p>U kunt deze versie direkt downloaden via deze link:</p><p><a href=%2>%3</a></p> - - - <p>Unable to obtain the new version information due to the following network error:</p><p><b>%1</b></p> - <p>Het is niet mogelijk de nieuwe versie op te halen vanwege de volgende netwerkfout:</p><p><b>%1</b></p> - - - You are already running the most recent version of VirtualBox. - U heeft al de nieuwste versie van VirtualBox geïnstalleerd. - - - <p>This wizard will connect to the VirtualBox web-site and check if a newer version of VirtualBox is available.</p><p>Use the <b>Check</b> button to check for a new version now or the <b>Cancel</b> button if you do not want to perform this check.</p><p>You can run this wizard at any time by choosing <b>Check for Updates...</b> from the <b>Help</b> menu.</p> - <p>Deze assistent maakt verbinding met de VirtualBox website en controleert of een nieuwere versie van VirtualBox beschikbaar is.</p><p>Gebruik de knop <b>Controleer</b> om nu te controloren op een nieuwere versie of de knop <b>Annuleren</b> als u deze controle niet wilt uitvoeren.</p><p>U kunt deze assistent op ieder moment uitvoeren. door te kiezen voor <b>Controleer op nieuwe versie...</b> uit het <b>Help</b> menu.</p> - UIVMCloseDialog Close Virtual Machine - Sluit de virtuele machine af + Sluit virtuele machine af You want to: @@ -6734,23 +5107,23 @@ <p>Saves the current execution state of the virtual machine to the physical hard disk of the host PC.</p><p>Next time this machine is started, it will be restored from the saved state and continue execution from the same place you saved it at, which will let you continue your work immediately.</p><p>Note that saving the machine state may take a long time, depending on the guest operating system type and the amount of memory you assigned to the virtual machine.</p> - <p>Bewaart de huidige uitvoeringsstatus van de virtuele machine op de harde schijf van de gastheer PCs.</p><p>De volgende keer dan deze machine wordt gestart zal deze teruggeplaatst worden vanuit de opgeslagen status en doorgaan met de uitvoering vanaf dezelfde plaats op het moment van opslaan.</p><p>Let er op dat het opslaan van de status van de machine enige tijd duurt, afhankelijk van het soort besturingssysteem van de gast en de hoeveelheid geheugen die aan de virtuele machine is toegewezen.</p> + <p>Bewaart de huidige uitvoeringsstatus van de virtuele machine op de fysieke harde schijf van de host-PC.</p><p>De volgende keer als deze machine wordt gestart wordt de opgeslagen staat hersteld en doorgegaan vanaf hetzelfde punt waarop u het hebt opgeslagen; hierdoor kunt u direct doorgaan met waar u mee bezig was.</p><p>Wees bewust dat het opslaan van de staat van de machine enige tijd kan duren, afhankelijk van het soort besturingssysteem van de gast en de hoeveelheid geheugen die aan de virtuele machine is toegewezen.</p> &Save the machine state - De status van de machine &opslaan + De staat van de machine &opslaan <p>Sends the ACPI Power Button press event to the virtual machine.</p><p>Normally, the guest operating system running inside the virtual machine will detect this event and perform a clean shutdown procedure. This is a recommended way to turn off the virtual machine because all applications running inside it will get a chance to save their data and state.</p><p>If the machine doesn't respond to this action then the guest operating system may be misconfigured or doesn't understand ACPI Power Button events at all. In this case you should select the <b>Power off the machine</b> action to stop virtual machine execution.</p> - <p>Stuurt een ACPI startknop gebeurtenis naar de virtuele machine.</p><p>Normaal gesproken zal het besturingssysteem van de gast in de virtuele machine deze gebeurtenis opmerken en een nette afsluit procedure uitvoeren. Dit is de aan te bevelen manier om een virtuele machine uit te zetten omdat alle programma's, die daarop uitgevoerd worden, de kans krijgen om hun gegevens en hun status op te slaan.</p><p>Reageert de machine niet op deze actie, dan kan het besturingssteem van de gast verkeerd geconfigureerd zijn of begrijpt deze de ACPI startknop gebeurtenis niet. Selecteer in dat geval de<b>machine uitzetten</b>actie om virtuele machine daadwerkelijk te stoppen.</p> + <p>Stuurt een ACPI startknopgebeurtenis naar de virtuele machine.</p><p>Normaal gesproken zal het besturingssysteem van de gast in de virtuele machine deze gebeurtenis opmerken en een nette afsluitprocedure uitvoeren. Dit is de aan te bevelen manier om een virtuele machine uit te zetten omdat alle programma's, die daarop uitgevoerd worden, de kans krijgen om hun gegevens en hun status op te slaan.</p><p>Reageert de machine niet op deze actie, is het mogelijk dat het besturingssteem van de gast verkeerd geconfigureerd is of dat het gastbesturingssysteem de ACPI startknopgebeurtenis niet begrijpt. Selecteer in dat geval de<b>Machine uitzetten</b>actie om virtuele machine daadwerkelijk te stoppen.</p> S&end the shutdown signal - S&tuur het signaal uitzetten + S&tuur het shutdown signaal <p>Turns off the virtual machine.</p><p>Note that this action will stop machine execution immediately so that the guest operating system running inside it will not be able to perform a clean shutdown procedure which may result in <i>data loss</i> inside the virtual machine. Selecting this action is recommended only if the virtual machine does not respond to the <b>Send the shutdown signal</b> action.</p> - <p>Schakelt de virtuele machine uit.</p><p>Let er op dat deze actie de machine direct stop zet en dus het besturingssysteem van de gast niet in de gelegenheid stelt om een nette afsluitprocedure uit te voeren. Dit kan lijden tot verlies van <i>gegevens</i> in de virtuele machine. Het selecteren van deze actie is alleen aan te bevelen als de virtuele machine niet reageert op het <b>signaal voor het uitschakelen</b>.</p> + <p>Schakelt de virtuele machine uit.</p><p>Let er op dat deze actie de machine direct stopzet en dus het besturingssysteem van de gast niet in de gelegenheid stelt een nette afsluitprocedure uit te voeren. Dit kan lijden tot <i>verlies van gegevens</i> binnen de virtuele machine. Het selecteren van deze actie is alleen aan te bevelen als de virtuele machine niet reageert op het <b>Stuur het shutdown signaal</b>.</p> &Power off the machine @@ -6758,15 +5131,15 @@ Restore the machine state stored in the current snapshot - Zet de status van de machine terug zoals opgeslagen in het huidge momentopname + Zet de staat van de machine terug zoals opgeslagen in de huidige momentopname <p>When checked, the machine will be returned to the state stored in the current snapshot after it is turned off. This is useful if you are sure that you want to discard the results of your last sessions and start again at that snapshot.</p> - <p>Is deze optie aangevinkt dan zal de status van de machine, nadat deze is uitgezet, teruggeplaatst worden naar de status zoals in de huidige momentopname is vastgelegd. Dit is handig als u er zeker van bent dat u de resultaten van uw laatste sessie niet wil bewaren en dus terug wilt gaan naar de huidige momentopname.</p> + <p>Aangevinkt zal de staat van de machine nadat deze is uitgezet teruggezet worden naar de staat zoals deze in de huidige momentopname is vastgelegd. Dit is handig als u er zeker van bent dat u de resultaten van uw laatste sessie niet wilt bewaren en de volgende keer wilt beginnen vanaf de huidige momentopname.</p> &Restore current snapshot '%1' - &zet de huidige momentopname terug '%1' + &Terugzetten huidige momentopname '%1' @@ -6794,71 +5167,38 @@ <nobr><b>%1</b><br></nobr><nobr>Inaccessible since %2</nobr> Inaccessible VM tooltip (name, last state change) - <nobr><b>%1</b><br></nobr><nobr>Niet benaderbaar sindst %2</nobr> - - - S&how - &Weergeven - - - Switch to the window of the selected virtual machine - Schakel over naar het venster van de geselecteerde virtuele machine - - - S&tart - &Starten - - - Start the selected virtual machine - Start de geselecteerde virtuele machine - - - R&esume - hervatten - &Hervatten - - - Resume the execution of the virtual machine - Hervat de uitvoering van de virtuele machine - - - &Pause - &Pauze - - - Suspend the execution of the virtual machine - Onderbreek de uitvoering van de virtuele machine + <nobr><b>%1</b><br></nobr><nobr>Niet benaderbaar sinds %2</nobr> UIVMPreviewWindow Update Disabled - + Update uitgeschakeld Every 0.5 s - + Elke 0,5 s Every 1 s - + Elke 1 s Every 2 s - + Elke 2 s Every 5 s - + Elke 5 s Every 10 s - + Elke 10 s No Preview - + Geen Preview @@ -6877,982 +5217,238 @@ - VBoxCloseVMDlg + VBoxEmptyFileSelector - Close Virtual Machine - Sluit de virtuele machine af + &Choose... + &Kiezen... + + + VBoxFilePathSelectorWidget - You want to: - U wilt: + <reset to default> + <standaard terugzetten> - &Save the machine state - De status van de machine &opslaan + The actual default path value will be displayed after accepting the changes and opening this dialog again. + De daadwerkelijke waarde van het standaardpad wordt pas weergegeven na acceptatie van de wijzigingen en het opnieuw openen van dit dialoog. - &Power off the machine - De machine &uitzetten + <not selected> + <niet geselecteerd> - &Revert to the current snapshot - &Terugkeren naar de huidige momentopname + Please use the <b>Other...</b> item from the drop-down list to select a path. + Gebruik het <b>Andere...</b> item uit de keuzelijst om het gewenste pad te selecteren. - Revert the machine state to the state stored in the current snapshot - Brengt de machine status terug naar de status van de huidige momentopname + Other... + Andere... - S&end the shutdown signal - S&tuur het signaal uitzetten + Reset + Terugzetten - <p>When checked, the machine will be returned to the state stored in the current snapshot after it is turned off. This is useful if you are sure that you want to discard the results of your last sessions and start again at that snapshot.</p> - <p>Is deze optie aangevinkt dan zal de status van de machine, nadat deze is uitgezet, teruggeplaatst worden naar de status zoals in de huidige momentopname is vastgelegd. Dit is handig als u er zeker van bent dat u de resultaten van uw laatste sessie niet wil bewaren en dus terug wilt gaan naar de huidige momentopname.</p> + Opens a dialog to select a different folder. + Opent een dialoog om een andere map te selecteren. - <p>Saves the current execution state of the virtual machine to the physical hard disk of the host PC.</p><p>Next time this machine is started, it will be restored from the saved state and continue execution from the same place you saved it at, which will let you continue your work immediately.</p><p>Note that saving the machine state may take a long time, depending on the guest operating system type and the amount of memory you assigned to the virtual machine.</p> - <p>Bewaart de huidige uitvoeringsstatus van de virtuele machine op de harde schijf van de gastheer PCs.</p><p>De volgende keer dan deze machine wordt gestart zal deze teruggeplaatst worden vanuit de opgeslagen status en doorgaan met de uitvoering vanaf dezelfde plaats op het moment van opslaan.</p><p>Let er op dat het opslaan van de status van de machine enige tijd duurt, afhankelijk van het soort besturingssysteem van de gast en de hoeveelheid geheugen die aan de virtuele machine is toegewezen.</p> + Resets the folder path to the default value. + Zet het pad naar de map terug op de standaardwaarde. - <p>Sends the ACPI Power Button press event to the virtual machine.</p><p>Normally, the guest operating system running inside the virtual machine will detect this event and perform a clean shutdown procedure. This is a recommended way to turn off the virtual machine because all applications running inside it will get a chance to save their data and state.</p><p>If the machine doesn't respond to this action then the guest operating system may be misconfigured or doesn't understand ACPI Power Button events at all. In this case you should select the <b>Power off the machine</b> action to stop virtual machine execution.</p> - <p>Stuurt een ACPI startknop gebeurtenis naar de virtuele machine.</p><p>Normaal gesproken zal het besturingssysteem van de gast in de virtuele machine deze gebeurtenis opmerken en een nette afsluit procedure uitvoeren. Dit is de aan te bevelen manier om een virtuele machine uit te zetten omdat alle programma's, die daarop uitgevoerd worden, de kans krijgen om hun gegevens en hun status op te slaan.</p><p>Reageert de machine niet op deze actie, dan kan het besturingssteem van de gast verkeerd geconfigureerd zijn of begrijpt deze de ACPI startknop gebeurtenis niet. Selecteer in dat geval de<b>machine uitzetten</b>actie om virtuele machine daadwerkelijk te stoppen.</p> + Opens a dialog to select a different file. + Opent een dialoog om een ander bestand te selecteren. - <p>Turns off the virtual machine.</p><p>Note that this action will stop machine execution immediately so that the guest operating system running inside it will not be able to perform a clean shutdown procedure which may result in <i>data loss</i> inside the virtual machine. Selecting this action is recommended only if the virtual machine does not respond to the <b>Send the shutdown signal</b> action.</p> - <p>Schakelt de virtuele machine uit.</p><p>Let er op dat deze actie de machine direct stop zet en dus het besturingssysteem van de gast niet in de gelegenheid stelt om een nette afsluitprocedure uit te voeren. Dit kan lijden tot verlies van <i>gegevens</i> in de virtuele machine. Het selecteren van deze actie is alleen aan te bevelen als de virtuele machine niet reageert op het <b>signaal voor het uitschakelen</b>.</p> + Resets the file path to the default value. + Zet het pad naar het bestand terug op de standaardwaarde. - Restore the machine state stored in the current snapshot - Zet de status van de machine terug zoals opgeslagen in het huidge momentopname + &Copy + &Kopiëren - &Restore current snapshot '%1' - &zet de huidige momentopname terug '%1' + Please type the folder path here. + Geef hier het gewenste pad naar de map op. + + + Please type the file path here. + Geef hier het gewenste pad naar het bestand op. - VBoxConsoleWnd + VBoxGlobal - VirtualBox OSE - VirtualBox OSE + Unknown device %1:%2 + USB device details + Onbekend apparaat %1:%2 - &Fullscreen Mode - Modus &Schermvullend + <nobr>Vendor ID: %1</nobr><br><nobr>Product ID: %2</nobr><br><nobr>Revision: %3</nobr> + USB device tooltip + <nobr>Leveranciers ID: %1</nobr><br><nobr>Product ID: %2</nobr><br><nobr>Revisie: %3</nobr> - Switch to fullscreen mode - Schakel over op de modus schermvullend + <br><nobr>Serial No. %1</nobr> + USB device tooltip + <br><nobr>Serienr. %1</nobr> - Mouse Integration - enable/disable... - Muis integratie + <br><nobr>State: %1</nobr> + USB device tooltip + <br><nobr>Status: %1</nobr> - Auto-resize Guest Display - enable/disable... - Grote van het gast scherm automatisch aanpassen + Name + details report + Naam - Auto-resize &Guest Display - Grote van het &gast scherm automatisch aanpassen + OS Type + details report + Soort besturingssystem - Automatically resize the guest display when the window is resized (requires Guest Additions) - Pas de grote van het gast scherm automatisch aan wanneer het venster van grote veranderd (vereist de gast uitbreiding) + Base Memory + details report + Basisgeheugen - &Adjust Window Size - Venstergrote &aanpassen + General + details report + Algemeen - Adjust window size and position to best fit the guest display - Pas de venstergrote aan en plaats het gast scherm op de beste plek + Video Memory + details report + Videogeheugen - Send the Ctrl-Alt-Del sequence to the virtual machine - Stuur Ctrl-Alt-Del combinatie naar de virtuele machine + Boot Order + details report + Opstartvolgorde - &Insert Ctrl-Alt-Backspace - &Invoegen van Ctrl-Alt-Backspace + ACPI + details report + ACPI - Send the Ctrl-Alt-Backspace sequence to the virtual machine - Stuur de Ctrl-Alt-Backspace combinatie naar de virtuele machine + IO APIC + details report + IO APIC - &Reset - &Opnieuw instellen + Enabled + details report (ACPI) + Ingeschakeld - Reset the virtual machine - Stel de virtuele machine opnieuw in + Disabled + details report (ACPI) + Uitgeschakeld - ACPI S&hutdown - &Uitzetten via ACPI + Enabled + details report (IO APIC) + Ingeschakeld - Send the ACPI Power Button press event to the virtual machine - Stuur het ACPI startknop gebeurtenis naar de virtuele machine + Disabled + details report (IO APIC) + Uitgeschakeld - &Close... - &Sluiten... + Disabled + details report (audio) + Uitgeschakeld - Close the virtual machine - Sluit de virtuele machine af + Audio + details report + Audio - Take &Snapshot... - Maak een &momentopname... + Adapter %1 + details report (network) + Adapter %1 - Take a snapshot of the virtual machine - Maak een momentopname van de virtuelen Machine + Disabled + details report (network) + Uitgeschakeld - &Floppy Image... - &Diskette-image... + Network + details report + Netwerk - Mount a floppy image file - Koppel een diskette-image bestand aan + Device Filters + details report (USB) + Apparaatfilters - Unmount F&loppy - &Diskette afkoppelen + %1 (%2 active) + details report (USB) + %1 (%2 actief) - Unmount the currently mounted floppy media - Koppel de nu gekoppelde diskette af + Disabled + details report (USB) + Uitgeschakeld - &CD/DVD-ROM Image... - &CD/DVD-ROM-image... + Powered Off + MachineState + Uitgeschakeld - Mount a CD/DVD-ROM image file - Koppel een CD/DVD-ROM-image bestand aan + Saved + MachineState + Opgeslagen - Unmount C&D/DVD-ROM - &CD/DVD-ROM afkoppelen + Aborted + MachineState + Gestopt - Unmount the currently mounted CD/DVD-ROM media - Koppel de nu gekoppelde CD/DVD-ROM af + Running + MachineState + Draaiend - Remote Dis&play - &Beeldscherm op afstand + Paused + MachineState + Gepauzeerd - Enable or disable remote desktop (RDP) connections to this machine - Activeren of deactiverenvan het beeldscherm op afstand (remote desktop protocol, RDP) verbindingen naar deze virtuele machine + Starting + MachineState + Starten - &Shared Folders... - &Gedeelde mappen... + Stopping + MachineState + Stoppen - Create or modify shared folders - Open de dialoog om met de gedeelde mappen te bewerken + Saving + MachineState + Opslaan - &Install Guest Additions... - &Gast uitbreidingen installeren... + Restoring + MachineState + Terugzetten - Mount the Guest Additions installation image - Koppel de gast uitbreidingen installatie image aan - - - Mount &Floppy - Koppel &Diskette aan - - - Mount &CD/DVD-ROM - Koppel &CD/DVD-ROM aan - - - &USB Devices - &USB-apparaten - - - &Devices - &Apparaten - - - De&bug - De&bug - - - &Help - &Help - - - <hr>The VRDP Server is listening on port %1 - <hr>VRDP server luistert op poort %1 - - - &Pause - &Pauze - - - Suspend the execution of the virtual machine - Stel de uitvoering van de virtuele machine uit - Suspendiert die Ausführung der virtuellen Maschine - - - R&esume - &Hervatten - - - Resume the execution of the virtual machine - Hervat de uitvoering van de virtuele machine - - - Disable &Mouse Integration - &Muis integratie deactiveren - - - Temporarily disable host mouse pointer integration - Tijdelijk de integratie van de muis met de host deactiveren - - - Enable &Mouse Integration - &Muis integratie activeren - - - Enable temporarily disabled host mouse pointer integration - Activeer de tijdelijk uitgeschakede muis integratie - - - Snapshot %1 - Momentopname %1 - - - Host Drive - Station van de gastheer - - - &Insert Ctrl-Alt-Del - &Invoegen van Ctrl-Alt-Del - - - &Machine - &Machine - - - &Network Adapters - &Netwerkadapter - - - Adapter %1 - network - Adapter %1 - - - Mount the selected physical drive of the host PC - Floppy tip - koppel het geselecteerde fysieke station, van de host PC, aan - - - Mount the selected physical drive of the host PC - CD/DVD tip - koppel het geselecteerde fysieke station, van de host PC, aan - - - Disconnect the cable from the selected virtual network adapter - Maak de kabel los van de geselecteerde virtuele netwerkadapter - - - Connect the cable to the selected virtual network adapter - Verbind de kabel met de geselecteerde netwerkadapter - - - Seam&less Mode - Modus naad&loos - - - Switch to seamless desktop integration mode - Schakel over op de naadloze bureaublad integratie modus (Het venster van de gast wordt naadloos in het bureablad van de gastheer geïntegreerd) - - - <qt><nobr>Indicates the activity of the floppy media:</nobr>%1</qt> - Floppy tooltip - <qt><nobr>Geeft de activiteit van de diskette weer:<nobr>%1</qt> - - - <br><nobr><b>Host Drive</b>: %1</nobr> - Floppy tooltip - <br><nobr><b>Station gastheer</b>: %1</nobr> - - - <br><nobr><b>Image</b>: %1</nobr> - Floppy tooltip - <br><nobr><b>Image</b>: %1</nobr> - - - <br><nobr><b>No media mounted</b></nobr> - Floppy tooltip - <br><nobr><b>Geen media gekoppeld</b></nobr> - - - <qt><nobr>Indicates the activity of the CD/DVD-ROM media:</nobr>%1</qt> - DVD-ROM tooltip - <qt><nobr>Geeft de activiteit van de CD/DVD-ROM weer:</nobr>%1</qt> - - - <br><nobr><b>Host Drive</b>: %1</nobr> - DVD-ROM tooltip - <br><nobr><b>Station gastheer</b>: %1</nobr> - - - <br><nobr><b>Image</b>: %1</nobr> - DVD-ROM tooltip - <br><nobr><b>Image</b>: %1</nobr> - - - <br><nobr><b>No media mounted</b></nobr> - DVD-ROM tooltip - <br><nobr><b>Geen media gekoppeld</b></nobr> - - - <qt><nobr>Indicates activity on the the virtual hard disks:</nobr>%1</qt> - HDD tooltip - <qt><nobr>Geeft de activiteit van de viruele harde schijf weer:</nobr>%1</qt> - - - <br><nobr><b>No hard disks attached</b></nobr> - HDD tooltip - <br><nobr><b>Geen harde schijven aangesloten</b></nobr> - - - <qt><nobr>Indicates the activity of the network interfaces:</nobr>%1</qt> - Network adapters tooltip - <qt><nobr>Geeft de activiteit van de netwerk interfaces weer:</nobr>%1</qt> - - - <br><nobr><b>Adapter %1 (%2)</b>: cable %3</nobr> - Network adapters tooltip - <br><nobr><b>Adapter %1 (%2)</b>: Kabel %3</nobr> - - - connected - Network adapters tooltip - verbonden - - - disconnected - Network adapters tooltip - los gemaakt - - - <br><nobr><b>All network adapters are disabled</b></nobr> - Network adapters tooltip - <br><nobr><b>Alle Netwerkadapters zijn gedeactiveerd</b></nobr> - - - <qt><nobr>Indicates the activity of the attached USB devices:</nobr>%1</qt> - USB device tooltip - <qt><nobr>Geeft de activiteit van de aangesloten USB apparaten weer:</nobr>%1</qt> - - - <br><nobr><b>No USB devices attached</b></nobr> - USB device tooltip - <br><nobr><b>Geen USB apparaat aangesloten</b></nobr> - - - <br><nobr><b>USB Controller is disabled</b></nobr> - USB device tooltip - <br><nobr><b>USB controller is gedeactiveerd</b></nobr> - - - <qt><nobr>Indicates the activity of the machineof the machine'sapos;s shared folders: shared folders:</nobr>%1</qt> - Shared folders tooltip - <qt><nobr>Geeft de activiteit van de gedeelde mappen weer:</nobr>%1</qt> - - - <br><nobr><b>No shared folders</b></nobr> - Shared folders tooltip - <br><nobr><b>Geen gedeelde mappen</b></nobr> - - - Session I&nformation Dialog - Sessie i&nformatie dialoog - - - Show Session Information Dialog - Geef de sessie informatie dialoog weer - - - &Statistics... - debug action - &Statistieken... - - - &Command Line... - debug action - &Commandoregel... - - - Indicates whether the guest display auto-resize function is On (<img src=:/auto_resize_on_16px.png/>) or Off (<img src=:/auto_resize_off_16px.png/>). Note that this function requires Guest Additions to be installed in the guest OS. - Geeft aan of de automatische aanpassing van de grote, van het gast scherm, aan staat (<img src=:/auto_resize_on_16px.png/>) of uit (<img src=:/auto_resize_off_16px.png/>). Let op deze functie werkt alleen als de gast uitbreidingen zijn geïnstalleerd op de het gast besturingssysteem. - - - Indicates whether the host mouse pointer is captured by the guest OS:<br><nobr><img src=:/mouse_disabled_16px.png/>&nbsp;&nbsp;pointer is not captured</nobr><br><nobr><img src=:/mouse_16px.png/>&nbsp;&nbsp;pointer is captured</nobr><br><nobr><img src=:/mouse_seamless_16px.png/>&nbsp;&nbsp;mouse integration (MI) is On</nobr><br><nobr><img src=:/mouse_can_seamless_16px.png/>&nbsp;&nbsp;MI is Off, pointer is captured</nobr><br><nobr><img src=:/mouse_can_seamless_uncaptured_16px.png/>&nbsp;&nbsp;MI is Off, pointer is not captured</nobr><br>Note that the mouse integration feature requires Guest Additions to be installed in the guest OS. - Geeft aan of de muis, van de gastheer, is gevangen door het gast besturingssysteem:<br><nobr><img src=:/mouse_disabled_16px.png/>&nbsp;&nbsp;Muis is niet gevangen</nobr><br><nobr><img src=:/mouse_16px.png/>&nbsp;&nbsp;Muis is gevangen</nobr><br><nobr><img src=:/mouse_seamless_16px.png/>&nbsp;&nbsp;Muis integratie (MI) staat aan</nobr><br><nobr><img src=:/mouse_can_seamless_16px.png/>&nbsp;&nbsp;MI staat uit, muis is gevangen</nobr><br><nobr><img src=:/mouse_can_seamless_uncaptured_16px.png/>&nbsp;&nbsp;MI staat uit, muis is niet gevangen</nobr><br>Let op Muis integratie werkt alleen als de gast uitbreidingen zijn geïnstalleerd op de het gast besturingssysteem. - - - Indicates whether the keyboard is captured by the guest OS (<img src=:/hostkey_captured_16px.png/>) or not (<img src=:/hostkey_16px.png/>). - Geeft aan of het toetsenbord, van de gastheer, is gevangen door het gast besturingssysteem (<img src=:/hostkey_captured_16px.png/>) of niet (<img src=:/hostkey_16px.png/>). - - - Indicates whether the Remote Display (VRDP Server) is enabled (<img src=:/vrdp_16px.png/>) or not (<img src=:/vrdp_disabled_16px.png/>). - Geeft aan of het beeldscherm op afstand (VRDP server) geactiveerd is (<img src=:/vrdp_16px.png/>) of niet (<img src=:/vrdp_disabled_16px.png/>). - - - &Logging... - debug action - &Loggen... - - - Shows the currently assigned Host key.<br>This key, when pressed alone, toggles the keyboard and mouse capture state. It can also be used in combination with other keys to quickly perform actions from the main menu. - Geeft de nu toegekende gastheer toets weer.<br>Door alleen deze toets aan te raken wordt de status van het toetsenbord en de muis omgewisseld.De toets wordt ook in combinatie met andere toetsen gebruikt om snel acties uit het hoofdmenu uit te voeren. - - - Sun VirtualBox - Sun VirtualBox - - - Indicates the status of the hardware virtualization features used by this virtual machine:<br><nobr><b>%1:</b>&nbsp;%2</nobr><br><nobr><b>%3:</b>&nbsp;%4</nobr> - Virtualization Stuff LED - Geeft de status van de hardware virtualisatie functies weer die gebruikt worden door de virtuele machine:<br><nobr><b>%1:</b>&nbsp;%2</nobr><br><nobr><b>%3:</b>&nbsp;%4</nobr> - - - <br><nobr><b>%1:</b>&nbsp;%2</nobr> - Virtualization Stuff LED - <br><nobr><b>%1:</b>&nbsp;%2</nobr> - - - EXPERIMENTAL build %1r%2 - %3 - PROEF constructie %1r%2 - %3 - - - &CD/DVD Devices - &CD/DVD apparaten - - - &Floppy Devices - &Diskette apparaten - - - &Network Adapters... - &Netwerk adapters... - - - Change the settings of network adapters - Pas de instellingen van de netwerk adapters aan - - - &Remote Display - &Beeldscherm op afstand - - - Remote Desktop (RDP) Server - enable/disable... - Server voor werkplek op afstand (RDP) - - - More CD/DVD Images... - Meer CD/DVD images... - - - Unmount CD/DVD Device - ontkoppel CD/DVD apparaat - - - More Floppy Images... - Meer diskette images... - - - Unmount Floppy Device - ontkoppel diskette apparaat - - - No CD/DVD Devices Attached - Geen CD/DVD apparaten gekoppeld - - - No Floppy Devices Attached - Geen diskette apparaten gekoppeld - - - <p style='white-space:pre'><nobr>Indicates the activity of the virtual hard disks:</nobr>%1</p> - HDD tooltip - <p style='white-space:pre'><nobr>Geeft de activiteit van de virtuale harde schijf weer:</nobr>%1</p> - - - <p style='white-space:pre'><nobr>Indicates the activity of the CD/DVD devices:</nobr>%1</p> - CD/DVD tooltip - <p style='white-space:pre'><nobr>Geeft de activiteit van de CD/DVD apparaten weer:</nobr>%1</p> - - - <br><nobr><b>No CD/DVD devices attached</b></nobr> - CD/DVD tooltip - <br><nobr><b>Geen CD/DVD apparaat gekoppeld</b></nobr> - - - <p style='white-space:pre'><nobr>Indicates the activity of the floppy devices:</nobr>%1</p> - FD tooltip - <p style='white-space:pre'><nobr>Geeft de activiteit van de diskette apparaten weer:</nobr>%1</p> - - - <br><nobr><b>No floppy devices attached</b></nobr> - FD tooltip - <br><nobr><b>Geen diskette apparaten gekoppeld</b></nobr> - - - <p style='white-space:pre'><nobr>Indicates the activity of the network interfaces:</nobr>%1</p> - Network adapters tooltip - <p style='white-space:pre'><nobr>Geeft de activiteit van de netwerk interfaces weer:</nobr>%1</p> - - - <p style='white-space:pre'><nobr>Indicates the activity of the attached USB devices:</nobr>%1</p> - USB device tooltip - <p style='white-space:pre'><nobr>Geeft de activiteit van de gekoppelde USB apparaten weer:</nobr>%1</p> - - - <p style='white-space:pre'><nobr>Indicates the activity of the machine's shared folders:</nobr>%1</p> - Shared folders tooltip - <p style='white-space:pre'><nobr>Geeft de activiteit van de gedeelde mappen van de machine weer:</nobr>%1</p> - - - Dock Icon - Dok Iioon - - - Show Application Icon - Geef applicatie icoon weer - - - Show Monitor Preview - Geef monitor voorvertoning weer - - - <br><nobr><b>Adapter %1 (%2)</b>: %3 cable %4</nobr> - Network adapters tooltip - <br><nobr><b>Adapter %1 (%2)</b>: %3 cabel %4</nobr> - - - ACPI Sh&utdown - &Uitzetten via ACPI - - - &View - &Weergeven - - - Preview Monitor %1 - Voorvertoon monitor %1 - - - No CD/DVD devices attached to that VM - Geen CD/DVD apparaten gekoppeld aan die VM - - - No floppy devices attached to that VM - Geen diskette apparaten gekoppeld aan die VM - - - No USB Devices Connected - Geen USB apparaten gekoppeld - - - No supported devices connected to the host PC - Geen ondersteunde apparaten zijn aan de gastheer PC verbonden - - - - VBoxEmptyFileSelector - - &Choose... - &Kiezen... - - - - VBoxFilePathSelectorWidget - - <reset to default> - <de standaard terugzetten> - - - The actual default path value will be displayed after accepting the changes and opening this dialog again. - Het actuele waarde van het standaard pad wordt weergegeven na acceptatie van de wijzigingen en het opnieuw openen van deze dialoog. - - - <not selected> - <niet geselecteerd> - - - Please use the <b>Other...</b> item from the drop-down list to select a path. - Gebruik het <b>andere...</b> item uit de keuzelijst om het gewenste pad te selecteren. - - - Other... - andere... - - - Reset - Terugzetten - - - Opens a dialog to select a different folder. - Opent een dialoog om een andere map te selecteren. - - - Resets the folder path to the default value. - Zet het pad naar de map terug op de standaard waarde. - - - Opens a dialog to select a different file. - Opent een dialoog om een ander bestand te selecteren. - - - Resets the file path to the default value. - Zet het pad naar het bestand terug op de standaard waarde. - - - &Copy - &Kopiëren - - - Please type the folder path here. - Geef hier het gewenste pad naar de map op. - - - Please type the file path here. - Geef hier het gewenste pad naar het bestand op. - - - - VBoxGLSettingsDlg - - General - Algemeen - - - Input - Invoer - - - Update - Bijwerken - - - Language - Taal - - - USB - USB - - - Network - Netwerk - - - - VBoxGLSettingsInput - - Host &Key: - Gastheer &toets: - - - Displays the key used as a Host Key in the VM window. Activate the entry field and press a new Host Key. Note that alphanumeric, cursor movement and editing keys cannot be used. - Geeft de toets weer, in het VM venster, die als gastheer toets wordt gebruikt. Activeer het opgave veld en druk op een nieuwe gastheer toets. Let op dat alfanumerieke, cursor, wijzigings toetsen niet gebruikt kunnen worden als gastheer toets. - - - When checked, the keyboard is automatically captured every time the VM window is activated. When the keyboard is captured, all keystrokes (including system ones like Alt-Tab) are directed to the VM. - Is deze aangevinkt dan wordt het toetsenbord automatisch gevangen zodra het VM venster is geactiveerd. Is het toetsenbord gevangen dan worden alle toetsaanslagen (inclusief de syteemeigen zoals Alt-Tab) doorgesluist naar de virtuele machine. - - - &Auto Capture Keyboard - &Automatische toetsenbord vangen - - - Reset Host Key - Zet gastheer toets terug - - - Resets the key used as a Host Key in the VM window. - Zet de toets terug die als gastheer toets wordt gebruikt in het VM scherm. - - - - VBoxGlobal - - Unknown device %1:%2 - USB device details - Onbekend apparaat %1:%2 - - - <nobr>Vendor ID: %1</nobr><br><nobr>Product ID: %2</nobr><br><nobr>Revision: %3</nobr> - USB device tooltip - <nobr>Leveranciers ID: %1</nobr><br><nobr>Product ID: %2</nobr><br><nobr>Revisen: %3</nobr> - - - <br><nobr>Serial No. %1</nobr> - USB device tooltip - <br><nobr>Serienr. %1</nobr> - - - <br><nobr>State: %1</nobr> - USB device tooltip - <br><nobr>Status: %1</nobr> - - - Name - details report - Naam - - - OS Type - details report - Soort besturingssystem - - - Base Memory - details report - Geheugen - - - General - details report - Algemeen - - - Video Memory - details report - Video geheugen - - - Boot Order - details report - Opstart volgorde - - - ACPI - details report - ACPI - - - IO APIC - details report - IO APIC - - - Not Attached - details report (HDDs) - Niet aangesloten - - - Hard Disks - details report - Harde schijven - - - Enabled - details report (ACPI) - Geactiveerd - - - Disabled - details report (ACPI) - Gedeactiveerd - - - Enabled - details report (IO APIC) - Geactiveerd - - - Disabled - details report (IO APIC) - Gedeactiveerd - - - Not mounted - details report (floppy) - niet aangekoppeld - - - Image - details report (floppy) - afbeelding - Image - - - Host Drive - details report (floppy) - Host station - - - Floppy - details report - Diskettestation - - - Not mounted - details report (DVD) - niet aangekoppeld - - - Image - details report (DVD) - afbeelding - Image - - - Host Drive - details report (DVD) - Host station - - - CD/DVD-ROM - details report - CD/DVD-ROM - - - Host Driver - details report (audio) - Host stuurprogramma - - - Disabled - details report (audio) - Gedeactiveerd - - - Audio - details report - Audio - - - Bridged adapter, %1 - details report (network) - Netwerk bridge adepter, %1 - - - Host-only adapter, '%1' - details report (network) - Host-only adapter, '%1' - - - Adapter %1 - details report (network) - Adapter %1 - - - Disabled - details report (network) - Gedeactiveerd - - - Network - details report - Netwerk - - - Device Filters - details report (USB) - Apparaat filters - - - %1 (%2 active) - details report (USB) - %1 (%2 actief) - - - Disabled - details report (USB) - Gedeactiveerd - - - Powered Off - MachineState - Uitgeschakeld - - - Saved - MachineState - Opgeslagen - - - Aborted - MachineState - Gestopt - - - Running - MachineState - draaiend - - - Paused - MachineState - Gepauseerd - - - Starting - MachineState - Starten - - - Stopping - MachineState - Stoppen - - - Saving - MachineState - Opslaan - - - Restoring - MachineState - Terugzetten - - - Discarding - MachineState - Verwerpen - - - Closed - SessionState - Gesloten - - - Open - SessionState - Open - - - Spawning - SessionState - Opkomen - - - Closing - SessionState - Afsluiten + Spawning + SessionState + Opkomen None @@ -7887,27 +5483,13 @@ Immutable DiskType - Niet te veranderen + Onveranderbaar Writethrough DiskType - Doorschrijven - - - Null - VRDPAuthType - Nul - - - External - VRDPAuthType - Extern - - - Guest - VRDPAuthType - Gast + begrip + Writethrough Ignore @@ -7957,12 +5539,7 @@ NAT NetworkAttachmentType - - - - Bridged Adapter - NetworkAttachmentType - Netwerk bridge adapter + NAT Internal Network @@ -7970,11 +5547,6 @@ Intern netwerk - Host-only Adapter - NetworkAttachmentType - Host-only adapter - - Not supported USBDeviceState Niet ondersteund @@ -7997,27 +5569,28 @@ Held USBDeviceState - Vast gehouden + Vastgehouden Captured USBDeviceState - gevangen + Niet beschikbaar dus + Geclaimt Disabled ClipboardType - Gedeactiveerd + Uitgeschakeld Host To Guest ClipboardType - Gastheer naar gast + Host naar gast Guest To Host ClipboardType - Gast naar gastheer + Gast naar Host Bidirectional @@ -8032,7 +5605,7 @@ Disabled details report (serial ports) - Gedeactiveerd + Uitgeschakeld Serial Ports @@ -8060,11 +5633,6 @@ Gedeelde mappen - Stuck - MachineState - Hangt - - Disconnected PortMode Niet verbonden @@ -8082,7 +5650,7 @@ User-defined serial port - Door de gebruiker gedefineerd + Gebruiker Gedefineerd VT-x/AMD-V @@ -8090,64 +5658,54 @@ VT-x/AMD-V + PAE/NX + details report + PAE/NX + + Enabled details report (VT-x/AMD-V) - Geactiveerd + Ingeschakeld Disabled details report (VT-x/AMD-V) - Gedeactiveerd - - - Controller - details report (audio) - Controller + Uitgeschakeld - Port %1 - details report (parallel ports) - Poort %1 + Enabled + details report (PAE/NX) + Ingeschakeld Disabled - details report (parallel ports) - Gedeactiveerd - - - Parallel Ports - details report - Parallelle porten - - - PulseAudio - AudioDriverType - PulseAudio + details report (PAE/NX) + Uitgeschakeld - ICH AC97 - AudioControllerType - ICH AC97 + Host Driver + details report (audio) + Host stuurprogramma - SoundBlaster 16 - AudioControllerType - SoundBlaster 16 + Controller + details report (audio) + Controller - PAE/NX - details report - + Port %1 + details report (parallel ports) + Poort %1 - Enabled - details report (PAE/NX) - Geactiveerd + Disabled + details report (parallel ports) + Uitgeschakeld - Disabled - details report (PAE/NX) - Gedeactiveerd + Parallel Ports + details report + Parallelle poorten USB @@ -8162,12 +5720,12 @@ IDE StorageBus - + IDE SATA StorageBus - + SATA Primary @@ -8200,6 +5758,21 @@ Solaris Audio + PulseAudio + AudioDriverType + PulseAudio + + + ICH AC97 + AudioControllerType + ICH AC97 + + + SoundBlaster 16 + AudioControllerType + SoundBlaster 16 + + PCnet-PCI II (Am79C970A) NetworkAdapterType PCnet-PCI II (Am79C970A) @@ -8242,7 +5815,7 @@ <nobr>Manufacturer: %5</nobr> USB filter tooltip - <nobr>Leverancier: %5</nobr> + <nobr>Fabrikant: %5</nobr> <nobr>Serial No.: %1</nobr> @@ -8260,42 +5833,6 @@ <nobr>Status: %1</nobr> - Adapter %1 - network - Adapter %1 - - - <br><nobr>Type&nbsp;(Format):&nbsp;&nbsp;%2&nbsp;(%3)</nobr> - hard disk - <br><nobr>Soort&nbsp;(formaat):&nbsp;&nbsp;%2&nbsp;(%3)</nobr> - - - <br><nobr>Attached to:&nbsp;&nbsp;%1</nobr> - medium - <br><nobr>aangesloten aan:&nbsp;&nbsp;%1</nobr> - - - <i>Not&nbsp;Attached</i> - medium - <i>Not&nbsp;aangesloten</i> - - - <br><i>Checking accessibility...</i> - medium - <br><i>Controleert de toegankelijkheid...</i> - - - <hr>Failed to check media accessibility.<br>%1. - medium - <hr>De controle op toegankelijkheid van de media is mislukt.<br>%1. - - - <hr><img src=%1/>&nbsp;Attaching this hard disk will be performed indirectly using a newly created differencing hard disk. - medium - Het is mij nog niet duidelijk wat bedoeld wordt - <hr><img src=%1/>&nbsp;Deze harde schijf wordt indirect aangekoppeld doormiddel van een nieuwe afwijkende harde schijf. - - Checking... medium Controleren... @@ -8306,15 +5843,6 @@ Niet benaderbaar - <hr>Some of the media in this hard disk chain are inaccessible. Please use the Virtual Media Manager in <b>Show Differencing Hard Disks</b> mode to inspect these media. - <hr>Somige media in deze ketting van harde schijven zijn niet toegankelijk. Gebruik de manager voor virtuele media en daarin de modus <b>geef afwijkende harde schijven weer</b> om hiermee deze media te inspecteren. - - - %1<hr>This base hard disk is indirectly attached using the following differencing hard disk:<br>%2%3 - ??? - %1<hr>Deze basis harde schijf is indirect aangekoppeld met behulp van de volgende afwijkende harde schijf:<br>%2%3 - - 3D Acceleration details report 3D acceleratie @@ -8322,38 +5850,38 @@ Enabled details report (3D Acceleration) - Geactiveerd + Ingeschakeld Disabled details report (3D Acceleration) - Gedeactiveerd + Uitgeschakeld Setting Up MachineState - Opstellen + Opzetten Differencing DiskType - Bijzondere + RL - Definitie: "A differencing disk is a virtual hard disk you use to isolate changes to a virtual hard disk or the guest operating system by storing them in a separate file." Een techterm dus. Niet vertalen. + Differencing Nested Paging details report - Geneste paging - Nested Paging + Geneste paging Enabled details report (Nested Paging) - Geactiveerd + Ingeschakeld Disabled details report (Nested Paging) - Gedeactiveerd + Uitgeschakeld Internal network, '%1' @@ -8396,11 +5924,31 @@ BusLogic + Bridged adapter, %1 + details report (network) + Netwerk bridge adepter, %1 + + + Host-only adapter, '%1' + details report (network) + Host-only adapter, '%1' + + Intel PRO/1000 MT Server (82545EM) NetworkAdapterType Intel PRO/1000 MT Server (82545EM) + Bridged Adapter + NetworkAttachmentType + Netwerk bridge adapter + + + Host-only Adapter + NetworkAttachmentType + Host-only adapter + + <nobr>%1 MB</nobr> details report <nobr>%1 MB</nobr> @@ -8421,21 +5969,6 @@ Systeem - Remote Display Server Port - details report (VRDP Server) - Server poort voor het beeldscherm op afstand - - - Remote Display Server - details report (VRDP Server) - Server voor het beeldscherm op afstand - - - Disabled - details report (VRDP Server) - Gedeactiveerd - - Display details report Beeldscherm @@ -8448,12 +5981,12 @@ Enabled details report (2D Video Acceleration) - Activeer + Ingeschakeld Disabled details report (2D Video Acceleration) - Gedeactiveerd + Uitgeschakeld 2D Video Acceleration @@ -8478,7 +6011,8 @@ Guru Meditation MachineState - Meditatie door een specialist + Guru hier maar laten staan + Guru Meditatie Teleporting @@ -8488,7 +6022,7 @@ Taking Live Snapshot MachineState - Maakt een momentopname tijdens het werk + Maakt een Live momentopname Teleporting Paused VM @@ -8498,7 +6032,7 @@ Restoring Snapshot MachineState - Terugzetten van de momentopname + Terugzetten van momentopname Deleting Snapshot @@ -8548,7 +6082,7 @@ Floppy Device %1 New Storage UI : Slot Name - Diskette apparaat %1 + Diskette station %1 Paravirtualized Network (virtio-net) @@ -8568,12 +6102,12 @@ Host Drive '%1' medium - Station van de gastheer '%1' + Host Station '%1' Host Drive %1 (%2) medium - Station van de gastheer %1 (%2) + Host Station %1 (%2) <p style=white-space:pre>Type (Format): %1 (%2)</p> @@ -8593,7 +6127,7 @@ <i>Checking accessibility...</i> medium - <i>Controleert de toegankelijkheid...</i> + <i>Controleren toegankelijkheid...</i> Failed to check media accessibility. @@ -8607,7 +6141,7 @@ You can also change this while the machine is running. - U kunt dit niet aanpassen terwijl de machine draait. + U kunt dit ook aanpassen terwijl de machine draait. <b>No media available</b> @@ -8616,28 +6150,30 @@ You can create media images using the virtual media manager. - U kunt media aanmaken via de virtuale media manager. + U kunt media images aanmaken met behulp van de Virtuele Media Manager. Attaching this hard disk will be performed indirectly using a newly created differencing hard disk. medium - Deze harde schijf wordt indirect aangekoppeld doormiddel van een nieuwe bijzondere harde schijf. + RL - Definitie: "A differencing disk is a virtual hard disk you use to isolate changes to a virtual hard disk or the guest operating system by storing them in a separate file." Een techterm dus. Niet vertalen. + Aankoppelen van deze harde schijf wordt indirect uitgevoerd bij gebruik van een nieuw aangemaakte differencing harde schijf. Some of the media in this hard disk chain are inaccessible. Please use the Virtual Media Manager in <b>Show Differencing Hard Disks</b> mode to inspect these media. medium - Enkele media in deze keten van harde schijven zijn niet te benaderen. Gebruik, a.u.b. de Virtuele media manager <b>Geef bijzonder harde schijven weer</b> modus om deze media te inspecteren. + Enkele media in deze keten van harde schijven zijn niet te benaderen. Gebruik de Virtuele Media Manager in <b>Geef differencing harde schijven weer</b> modus om deze media te inspecteren. This base hard disk is indirectly attached using the following differencing hard disk: medium - Deze basis harde schijf is indirect gekoppeld via de volgende bijzondere harde schijf: + Deze basis harde schijf wordt indirect gekoppeld wanneer de volgende differencing harde schijf wordt gebruikt: %n year(s) + RL - wij gebruiken 'jaar' bij zowel 1 jaar als bv 15 jaar %n jaar - %n jaren + %n jaar @@ -8656,9 +6192,10 @@ %n hour(s) + uur is bij ons ook meervoud bij opsomming %n uur - %n uren + %n uur @@ -8682,12 +6219,7 @@ Screens details report - Schermen - - - VDE network, '%1' - details report (network) - VDE netwerk, '%1' + Beeldschermen SAS @@ -8695,21 +6227,11 @@ SAS - VDE Adapter - NetworkAttachmentType - VDE adapter - - LsiLogic SAS StorageControllerType LsiLogic SAS - ^(?:(?:(\d+)(?:\s?(B|KB|MB|GB|TB|PB))?)|(?:(\d*)%1(\d{1,2})(?:\s?(KB|MB|GB|TB|PB))))$ - regexp for matching ####[.##] B|KB|MB|GB|TB|PB, %1=decimal point - ^(?:(?:(\d+)(?:\s?(B|KB|MB|GB|TB|PB))?)|(?:(\d*)%1(\d{1,2})(?:\s?(KB|MB|GB|TB|PB))))$ - - B size suffix Bytes B @@ -8742,16 +6264,16 @@ Enabled nested paging - Geactiveerd + Ingeschakeld Disabled nested paging - Gedeactiveerd + Uitgeschakeld Nested Paging - Nested Paging + Geneste Paging Shareable @@ -8771,17 +6293,17 @@ Remote Desktop Server Port details report (VRDE Server) - Server poort voor het werkplek op afstand + Server poort voor Werkplek op Afstand Remote Desktop Server details report (VRDE Server) - Server voor werkplek op afstand + Server voor Werkplek op Afstand Disabled details report (VRDE Server) - Gedeactiveerd + Uitgeschakeld Choose a virtual hard disk file @@ -8818,17 +6340,17 @@ Fault Tolerant Syncing MachineState - Fout bestendig synchroniseren + Fout tolerant synchroniseren Unlocked SessionState - Ontsluiten + Onvergrendeld Locked SessionState - Gesloten + Vergrendeld Unlocking @@ -8877,7 +6399,7 @@ and - en + en MB @@ -8887,93 +6409,83 @@ Readonly DiskType - Alleen lezen + Alleen-lezen Multi-attach DiskType - Meerdere aangesloten + Multi-aansluitbaar Dynamically allocated storage - + Dynamisch gealloceerde opslag Fixed size storage - + Opslag van gefixeerde grootte Dynamically allocated storage split into files of less than 2GB - + Dynamisch gealloceerde opslag opgesplitst in bestanden van maximaal 2GB Fixed size storage split into files of less than 2GB - + Opslag van gefixeerde grootte opgesplitst in bestanden van maximaal 2GB Execution Cap details report - + RL - heeft te maken met rechten op processerCAPaciteit, onvertaald laten lijkt me.. + Execution Cap <nobr>%1%</nobr> details report - + <nobr>%1%</nobr> Generic, '%1' details report (network) - + Generiek, '%1' Generic Driver NetworkAttachmentType - + Generiek Stuurprogramma Deny NetworkAdapterPromiscModePolicyType - + Afwijzen Allow VMs NetworkAdapterPromiscModePolicyType - + VM's toestaan Allow All NetworkAdapterPromiscModePolicyType - + Alle toestaan Adapter %1 - Adapter %1 + Adapter %1 VBoxGlobalSettings - '%1 (0x%2)' is an invalid host key code. - '%1 (0x%2)' is geen geldige code voor de gastheer toets. - - The value '%1' of the key '%2' doesn't match the regexp constraint '%3'. - De waarde '%1' van de sleutel/toets '%2' komt niet overeen met de beperking van de reguliere expressie '%3'. + De waarde '%1' van toets '%2' komt niet overeen met de beperking van de reguliere expressie '%3'. Cannot delete the key '%1'. - De Sleutel/toets '%1' kan niet verwijderd worden. + Kan toets '%1' niet verwijderen. '%1' is an invalid host-combination code-sequence. - '%1' is een ongeldige gastheer-combinatie code volgorde. - - - - VBoxHelpButton - - &Help - &Help + '%1' is een ongeldige host-combinatie code-sequentie. @@ -8988,22 +6500,22 @@ I &Disagree - I ga &niet akkoord + Ik ga &niet akkoord VBoxLogSearchPanel Close the search panel - Sluit het zoek paneel + Sluit het zoekpaneel Find - zoeken + Zoek Enter a search string here - Geef de zoeken tekst op + Geef een zoektekst op &Previous @@ -9011,7 +6523,7 @@ Search for the previous occurrence of the string - Zoek achteruit naar de zoektekst + Zoek achteruit naar zoektekst &Next @@ -9019,15 +6531,15 @@ Search for the next occurrence of the string - Zoek vooruit naar de zoektekst + Zoek vooruit naar zoektekst C&ase Sensitive - Onderscheidt &Hoofd- en kleineletters + Onderscheid &Hoofd- en kleine letters Perform case sensitive search (when checked) - Houdt rekening met hoofd- en kleineletters (mits aangevinkt) bij het zoeken + Houd rekening met hoofd- en kleine letters (mits aangevinkt) String not found @@ -9035,17 +6547,6 @@ - VBoxMediaComboBox - - No media available. Use the Virtual Media Manager to add media of the corresponding type. - Geen media beschikbaar. Gebruik de manager voor virtuele media om een overeenkomstig soort media toe te voegen. - - - <no media> - <geen media> - - - VBoxMediaManagerDlg &Actions @@ -9092,56 +6593,32 @@ Ververs de lijst met media - Location - Locatie - - - Type (Format) - Soort (formaat) - - - Attached to - Aangesloten aan - - Checking accessibility - Controleer de toegankelijkheid + Controleren toegankelijkheid &Select &Selecteer - All hard disk images (%1) - alle harde schijf images (%1) - - All files (*) Alle bestanden (*) Select a hard disk image file - Selecteer een bestand met een harde schijf - - - CD/DVD-ROM images (*.iso);;All files (*) - CD/DVD-ROM images (*.iso);;Alle bestanden (*) + Selecteer een harde schijf bestand Select a CD/DVD-ROM disk image file - Selecter een CD/DVD-ROM bestand - - - Floppy images (*.img);;All files (*) - Diskette image (*.img);;Alle bestanden (*) + Selecter een CD/DVD-ROM schijf image bestand Select a floppy disk image file - Selecteer een diskette bestand + Selecteer een diskette schijf image bestand <i>Not&nbsp;Attached</i> - <i>niet&nbsp;aangesloten</i> + <i>Niet&nbsp;aangesloten</i> -- @@ -9150,7 +6627,7 @@ Virtual Media Manager - Manager voor virtuele media + Virtuele Media Manager Hard &Disks @@ -9162,11 +6639,11 @@ Virtual Size - Virtuele grote + Virtuele grootte Actual Size - Actuele grote + Ware grootte &CD/DVD Images @@ -9174,28 +6651,13 @@ Size - Omvang + Grootte &Floppy Images &Diskette images - Attached to - VMM: Virtual Disk - Aangesloten aan - - - Attached to - VMM: CD/DVD Image - Aangesloten aan - - - Attached to - VMM: Floppy Image - Aangesloten aan - - CD/DVD-ROM disk CD/DVD-ROM schijf @@ -9213,43 +6675,43 @@ Type: - Type: + Type: Location: - Locatie: + Locatie: Format: - + Formaat: Storage details: - + Opslagdetails: Attached to: - + Aangesloten aan: &Copy... - + &Kopiëren... &Modify... - + &Aanpassen... Copy an existing medium - + Kopieer een bestaand medium Modify the attributes of the selected medium - + Pas de attributen van het geselecteerde medium aan C&lose - + S&luiten @@ -9272,13 +6734,6 @@ - VBoxNetworkDialog - - Network Adapters - Netwerk adapters - - - VBoxOSTypeSelectorWidget Operating &System: @@ -9286,11 +6741,11 @@ Displays the operating system family that you plan to install into this virtual machine. - Geef het besturingssysteem familie weer die u van plan bent te installeren op deze virtuele machine. + Toont de familie van het besturingssysteem dat u van plan bent op deze virtuele machine te installeren. Displays the operating system type that you plan to install into this virtual machine (called a guest operating system). - Geef het soort besturingssysteem weer die u van plan bent te installeren op deze virtuele machine (gast besturingssysteem genaamd). + Toont het type besturingssysteem dat u van plan bent op deze virtuele machine te installeren (dit wordt het gastbesturingssysteem genoemd). &Version: @@ -9298,97 +6753,6 @@ - VBoxRegistrationDlg - - VirtualBox Registration Dialog - VirtualBox registratie - - - Enter your full name using Latin characters. - Geef uw volledige naam op. - - - Enter your e-mail address. Please use a valid address here. - Geef een geldig e-mail adres op. - - - Welcome to the VirtualBox Registration Form! - Welkom bij hetVirtualBox registratieformulier! - - - Could not perform connection handshake. - handshake? - Dan de ... verbinding niet uitvoeren. - - - Cancel - Annuleren - - - <p>Please fill out this registration form to let us know that you use VirtualBox and, optionally, to keep you informed about VirtualBox news and updates.</p><p>Please use Latin characters only to fill in the fields below. Sun Microsystems will use this information only to gather product usage statistics and to send you VirtualBox newsletters. In particular, Sun Microsystems will never pass your data to third parties. Detailed information about how we use your personal data can be found in the <b>Privacy Policy</b> section of the VirtualBox Manual or on the <a href=http://www.virtualbox.org/wiki/PrivacyPolicy>Privacy Policy</a> page of the VirtualBox web-site.</p> - <p>Vul aub het registratieformulier in en laat ons daarmee weten dat u VirtualBox gebruikt. We kunnen u dan, als u dat wenst, op de hoogte houden van nieuws en bijgewerkte versies.<p><p>Gebruikt aub Latijnse letterschrift voor de onderstaande velden. Let op: Sun Microsystems gebruikt deze informatie alleen voor statistische doeleinden over dit product en stuurt u VirtualBox nieuwsbrieven. In geen geval zal Sun Microsystems uw gegeven doorgeven aan derde partijen. Nadere informatie over hoe we uw persoonlijke gegeven gebruiken is te vinden in de <b>Privacy Policy</b> sectie van het VirtualBox handboek of bijr <a href=http://www.virtualbox.org/wiki/PrivacyPolicy>Privacy Policy</a> pagina van de VirtualBox website.</p> - - - I &already have a Sun Online account: - Ik &heb al een online Sun account: - - - &E-mail: - &E-mail: - - - &Password: - &Wachtwoord: - - - I &would like to create a new Sun Online account: - Ik &wil me graag registreren en een nieuw online Sun account aanmaken: - - - &First Name: - &Voornaam: - - - &Last Name: - &Achternaam: - - - &Company: - &Bedrijf: - - - Co&untry: - &Land: - - - E-&mail: - E-&mail: - - - P&assword: - W&achtwoord: - - - Co&nfirm Password: - Wa&chtwoord bevestigen: - - - &Register - &Registreren - - - Select Country/Territory - Kies het land/gebied - - - - VBoxSFDialog - - Shared Folders - Gedeelde mappen - - - VBoxScreenshotViewer Screenshot of %1 (%2) @@ -9397,32 +6761,24 @@ Click to view non-scaled screenshot. non-scaled - Klik om een niet geschaalde schermafdruk te bekijken. + Klik om een niet geschaald schermafdruk te bekijken. Click to view scaled screenshot. scaled - Klik om een geschaalde schermafdruk te bekijken. + Klik om een geschaald schermafdruk te bekijken. VBoxSelectorWnd - VirtualBox OSE - VirtualBox OSE - - - &Details - &Details - - &Preferences... global settings &Voorkeuren... Display the global settings dialog - Geef de algemene instellingen weer + Toon de dialoog Algemene Instellingen E&xit @@ -9441,56 +6797,16 @@ Maak een nieuwe virtuele machine aan - &Settings... - In&stellingen... - - - Configure the selected virtual machine - Configureer de geselecteerde virtule machine - - - &Delete - &Verwijderen - - - Delete the selected virtual machine - Verwijder de geselecteerde virtuele machine - - - D&iscard - &Verwerpen - - Discard the saved state of the selected virtual machine - Werp de opgeslagen status van de geselecteerde virtuele machine weg + Verwerp de opgeslagen staat van de geselecteerde virtuele machine Refresh the accessibility state of the selected virtual machine - Actualiseer de status over de toegankelijkheid van de geselecteerde virtuele machine - - - &File - &Bestand - - - &Help - &Help - - - &Snapshots - &Momentopnamen - - - D&escription - &Omschrijving - - - D&escription * - &Omschrijving * + Actualiseer de toegankelijkheidsstatus van de geselecteerde virtuele machine S&how - &Weergeven + &Toon Switch to the window of the selected virtual machine @@ -9505,49 +6821,20 @@ Start de geselecteerde virtuele machine - &Machine - &Machine - - Show &Log... - Geef &Log weer... + Toon &Log... Show the log files of the selected virtual machine - Geef de logbestanden weer van de geselecteerde virtuele machine - - - R&esume - &Hervatten - - - Resume the execution of the virtual machine - Hervat de uitvoering van de geselecteerde virtuele machine - - - &Pause - &Pauze - - - Suspend the execution of the virtual machine - Onderbreek de uitvoering van de geselecteerde virtuele machine - - - <h3>Welcome to VirtualBox!</h3><p>The left part of this window is a list of all virtual machines on your computer. The list is empty now because you haven't created any virtual machines yet.<img src=:/welcome.png align=right/></p><p>In order to create a new virtual machine, press the <b>New</b> button in the main tool bar located at the top of the window.</p><p>You can press the <b>%1</b> key to get instant help, or visit <a href=http://www.virtualbox.org>www.virtualbox.org</a> for the latest information and news.</p> - <h3>Welkom bij VirtualBox!</h3><p>Het linker deel van dit venster is bedoeld om alle virtuele machines, op uw compter, weer te geven. De lijst is nu leeg omdat u nog geen virtuele machines heeft aangemaakt.<img src=:/welcome.png align=right/></p><p>Om een nieuwe virtuele machine aan te maken drukt u op de knop <b>Nieuw</b> in de werkbalk boven in het venster.</p><p>De toets <b>%1</b> opent een helpscherm, bezoek <a href=http://www.virtualbox.org>www.virtualbox.org</a> voor de laatste informatie en nieuws.</p> + Toon de logbestanden van de geselecteerde virtuele machine &Virtual Media Manager... - Manager voor &virtuele media... + &Virtuele Media Manager... Display the Virtual Media Manager dialog - Geef de dialoog weer voor de virtuale media manager - - - Log - icon text - Loggen + Toon de dialoog Virtuele Media Manager &Import Appliance... @@ -9563,38 +6850,21 @@ Export one or more VirtualBox virtual machines as an appliance - Exporteert een appliance uit VirtualBox - - - Sun VirtualBox - Sun VirtualBox + Exporteert één of meerdere VirtualBox virtuele machines als een appliance Re&fresh &Verversen - &File - Mac OS X version - &Bestand - - - &File - Non Mac OS X version - &Bestand - - - Select a virtual machine file - Selecteer een bestand met een virtuele machine - - - Virtual machine files (%1) - Bestanden met virtuale machine (%1) + &File + Mac OS X version + &Bestand - Manager - Note: main window title which is pretended by the product name. - Manager + &File + Non Mac OS X version + &Bestand &Add... @@ -9602,7 +6872,7 @@ Add an existing virtual machine - Voet een bestaande virtuele machine toe + Voeg een bestaande virtuele machine toe &Remove @@ -9614,117 +6884,120 @@ Show in Finder - Geef weer in het zoekscherm + Toon in zoekscherm Show the VirtualBox Machine Definition file in Finder. - Toon het VirtualBox machine definitiebestand in het zoekscherm. + Toon het VirtualBox Machine Definitiebestand in het zoekscherm. Create Alias on Desktop - Maak een alias op het bureaublad + Maak Alias op bureaublad Creates an Alias file to the VirtualBox Machine Definition file on your Desktop. - Maakt een aliasbestand, van het VirtualBox machine definitiebestand, op het bureaublad. + Maakt een aliasbestand naar het VirtualBox Machine Definitiebestand op uw bureaublad. Show in Explorer - Toon in de verkenner + Toon in Explorer Show the VirtualBox Machine Definition file in Explorer. - Toon het VirtualBox machine definitiebestand in de verkenner. + Toon het VirtualBox Machine Definitiebestand in Explorer. Create Shortcut on Desktop - Maak een snelkoppeling op het bureaublad + Maak een snelkoppeling op bureaublad Creates an Shortcut file to the VirtualBox Machine Definition file on your Desktop. - Maakt een snelkoppeling, van het VirtualBox machine definitiebestand, op het bureaublad. + Maakt een snelkoppeling naar het VirtualBox Machine Definitiebestand op het bureaublad. Show in File Manager - Toon in de bestandsmanager + Toon in Bestandsmanager Show the VirtualBox Machine Definition file in the File Manager - Toon het VirtualBox machine definitiebestand in de bestandsmanager - - - Show Toolbar - Geef de werkbalk weer - - - Show Statusbar - Geeft de statusbalk weer + Toon het VirtualBox Machine Definitiebestand in Bestandsmanager Cl&one... - + Kl&oon... Clone the selected virtual machine - + Kloon de geselecteerde virtuele machine Discard - + Verwerp D&iscard Saved State - + Ver&werp Opgeslagen Staat - - - VBoxSettingsDialog - <i>Select a settings category from the list on the left-hand side and move the mouse over a settings item to get more information</i>. - <i>Selecteer een categorie instellingen uit de lijst aan de linkerkant, en beweeg met de muis over de een instelling om meer informatie te verkrijgen</i>. + Select a virtual machine file + Selecteer een virtuele machine bestand - Invalid settings detected - Ongeldige instellingen ontdekt + Virtual machine files (%1) + Bestanden virtuele machine (%1) - Settings - Instellingen + Manager + Note: main window title which is pretended by the product name. + Manager - Non-optimal settings detected - Een aantal instellingen zijn niet optimaal + &Settings... + In&stellingen... - On the <b>%1</b> page, %2 - Op de <b>%1</b> pagina, %2 + Configure the selected virtual machine + De geselecteerde virtuele machine instellen - - - VBoxSnapshotDetailsDlg - VBoxSnapshotDetailsDlg - VBoxSnapshotDetailsDlg + &Pause + &Pauze - &Name - &Naam + Suspend the execution of the virtual machine + Onderbreek tijdelijk de uitvoering van de virtuele machine - &Description - &Omschrijving + Log + icon text + Loggen - &Machine Details - &Machine details + &Machine + &Machine - Details of %1 (%2) - Details van %1 (%2) + Resume the execution of the virtual machine + Hervat de uitvoering van de geselecteerde virtuele machine + + + <h3>Welcome to VirtualBox!</h3><p>The left part of this window is a list of all virtual machines on your computer. The list is empty now because you haven't created any virtual machines yet.<img src=:/welcome.png align=right/></p><p>In order to create a new virtual machine, press the <b>New</b> button in the main tool bar located at the top of the window.</p><p>You can press the <b>%1</b> key to get instant help, or visit <a href=http://www.virtualbox.org>www.virtualbox.org</a> for the latest information and news.</p> + <h3>Welkom bij VirtualBox!</h3><p>Het linker deel van dit venster is bedoeld om alle virtuele machines die op uw compter staan weer te geven. De lijst is nu leeg omdat u nog geen virtuele machines hebt aangemaakt.<img src=:/welcome.png align=right/></p><p>Om een nieuwe virtuele machine aan te maken klikt u op de knop <b>Nieuw</b> in de werkbalk boven in het venster.</p><p>De toets <b>%1</b> opent een helpscherm, of bezoek <a href=http://www.virtualbox.org>www.virtualbox.org</a> voor de laatste informatie en nieuws.</p> + + + Show Toolbar + Toon werkbalk + + + Show Statusbar + Toon statusbalk + + + VBoxSnapshotDetailsDlg - Snapshot Details - Momentopname details + Details of %1 (%2) + Details van %1 (%2) Click to enlarge the screenshot. @@ -9736,11 +7009,12 @@ Taken: - Gepakt: + als in 'foto nemen' + Genomen: &Description: - &Omschrijving: + &Beschrijving: D&etails: @@ -9750,35 +7024,31 @@ VBoxSnapshotsWgt - [snapshot] - [momentopname] - - VBoxSnapshotsWgt VBoxSnapshotsWgt Current State (changed) Current State (Modified) - Huidige status (gewijzigd) + Huidige staat (gewijzigd) Current State Current State (Unmodified) - Huidige status (ongewijzigd) + Huidige staat (ongewijzigd) The current state differs from the state stored in the current snapshot - De huidige status verschilt van de status zoals opgeslagen in de huidge momentopname + De huidige staat verschilt van de staat zoals deze is opgeslagen in de huidge momentopname The current state is identical to the state stored in the current snapshot - De huidige status is gelijk aan de status zoals opgeslagen in de huidge momentopname + De huidige staat is gelijk aan de staat zoals deze opgeslagen is in de huidge momentopname (current, Snapshot details - (huidige, + (huidige, online) @@ -9793,12 +7063,12 @@ Taken at %1 Snapshot (time) - genomen om %1 + Genomen om %1 Taken on %1 Snapshot (date + time) - genomen op %1 + Genomen op %1 %1 since %2 @@ -9810,81 +7080,25 @@ Momentopname %1 - &Discard Snapshot - Momentopname &wegwerpen - - Take &Snapshot - Maak een &momentopname - - - &Revert to Current Snapshot - &Terugkeren naar de huidige momentopname - - - D&iscard Current Snapshot and State - Huidige momentopname en stauts &wegwerpen + Maak &momentopname S&how Details - &Geef details weer - - - Discard the selected snapshot of the virtual machine - Werp de geselecteerde momentopname de virtuele machine weg + &Toon details Take a snapshot of the current virtual machine state - Maak een momentopname van de huidige status van de virtuele machine - - - Restore the virtual machine state from the state stored in the current snapshot - Brengt de machine status terug naar de status opgeslagen in de huidige momentopname - - - Discard the current snapshot and revert the machine to the state it had before the snapshot was taken - Werp de huidige momentopname weg en brengt de machine terug naar de status voordat de momentopname werd gemaakt + Maak een momentopname van de huidige staat van de virtuele machine Show the details of the selected snapshot - Geef de details van de geselecteerde momentopname - - - &Merge Snapshot with Parent - Überführe den Snapshot in den Parent + Toon details van geselecteerde momentopname (%1) (%1) - - (%n day(s) ago) - - (%n dag(en) geleden) - - - - - (%n hour(s) ago) - - (%n ur(en) geleden) - - - - - (%n minute(s) ago) - - (%n minu(u)t(en) geleden) - - - - - (%n second(s) ago) - - (%n second(en) geleden) - - - &Restore Snapshot Momentopname te&rugzetten @@ -9895,7 +7109,7 @@ Restore the selected snapshot of the virtual machine - Zet de geselecteerde momentopname, van de virtuele machine, terug + Zet de geselecteerde momentopname van de virtuele machine terug Delete the selected snapshot of the virtual machine @@ -9907,104 +7121,57 @@ &Clone... - + &Kloon... Clone the selected virtual machine - + Kloon geselecteerde virtuele machine VBoxSwitchMenu Disable - Deactiveren + Inschakelen Enable - Activeren + Uitschakelen VBoxTakeSnapshotDlg Take Snapshot of Virtual Machine - Maak een momentopname van de virtuele machine + Maak momentopname van de virtuele machine Snapshot &Name - &Naam van de momentopname + &Naam momentopname Snapshot &Description - &Omschrijving van de momentopname + &Beschrijving momentopname Warning: You are taking a snapshot of a running machine which has %n immutable image(s) attached to it. As long as you are working from this snapshot the immutable image(s) will not be reset to avoid loss of data. - Waarschuwing: U maakt een momentopname van de werkende machine die %n niet te wijzigen images gekoppeld heeft. Zolang u werkt vanaf deze momentopname zullen de niet te wijzigen images niet gereset worden om gegevens verlies te voorkomen. - + Waarschuwing: U maakt een momentopname van een draaiende machine die %n niet te wijzigen image gekoppeld heeft. Zolang u werkt vanaf deze momentopname zal het niet te wijzigen image niet gereset worden om gegevensverlies te voorkomen. + Waarschuwing: U maakt een momentopname van een draaiende machine die %n niet te wijzigen images gekoppeld heeft. Zolang u werkt vanaf deze momentopname zullen de niet te wijzigen images niet gereset worden om gegevensverlies te voorkomen. - VBoxTrayIcon - - Show Selector Window - Selektor venster weergeven - - - Show the selector window assigned to this menu - keuzeschakelaar - Geef het selektor venter weer dan aan het menu is gekoppeld - - - Hide Tray Icon - verberg het ikoon - - - Remove this icon from the system tray - Verwijder het ikoon uit de systeem - - - &Other Machines... - tray menu - &Andere maschines... - - - VBoxUSBMenu <no devices available> USB devices - <keine Beschikbare apparaten> + <geen apparaten beschikbaar> No supported devices connected to the host PC USB device tooltip - Geen ondersteunde apparaten zijn aan de gastheer PC verbonden - - - - VBoxVMDescriptionPage - - No description. Press the Edit button below to add it. - Geen beschrijving. Druk hieronder op de knop wijzigen om een beschrijving toe te voegen. - - - Edit - Bewerken - - - Edit (Ctrl+E) - Bewerken (Ctrl+E) - - - - VBoxVMDetailsView - - The selected virtual machine is <i>inaccessible</i>. Please inspect the error message shown below and press the <b>Refresh</b> button if you want to repeat the accessibility check: - De geselecteerde virtuele machine is <i>niet te benaderen</i>. Onderzoek de foutboodschap hieronder en druk op de knop <b>verversen</b> als u de toegangscontrole wilt herhalen: + Er zijn geen ondersteunde apparaten aan de host-PC verbonden @@ -10019,7 +7186,7 @@ &Runtime - &Looptijd + &Runtime DMA Transfers @@ -10031,40 +7198,27 @@ Data Read - Gelezen gevens + Gelezen data Data Written - Opgeschreven gegevens + Geschreven data Data Transmitted - Verzonden gegevens + Verzonden data Data Received - Ontvangen gegevens + Ontvangen data Runtime Attributes - Attributen voor de looptijd + Runtime attributen Screen Resolution - Scherm resolutie - - - CD/DVD-ROM Statistics - CD/DVD-Rom statestieken - - - Network Adapter Statistics - Netwerkadapter statestieken - - - Version %1.%2 - guest additions - Versie %1.%2 + Schermresolutie Not Detected @@ -10078,58 +7232,32 @@ Guest Additions - Gast uitbreidingen + als begrip niet vertalen + Guest Additions Guest OS Type - Soort gast besturingssysteem - - - Hard Disk Statistics - Harde schijf statestieken - - - No Hard Disks - Geen harde schijven + Gast OS-type No Network Adapters Geen netwerkadapters - Enabled - nested paging - Geactiveerd - - - Disabled - nested paging - Gedeactiveerd - - - Nested Paging - Geneste Paginering - - VBoxVMInformationDlg VBoxVMInformationDlg - Not Available - details report (VRDP server port) - Niet beschikbaar - - Storage Statistics - Opslag statestieken + Opslagstatistieken No Storage Devices - Geen opslag apparaten + Geen opslagapparaten Network Statistics - Netwerk statestieken + Netwerkstatistieken Not Available @@ -10141,8 +7269,7 @@ VBoxVMLogViewer Log Viewer - mooi woord voor viewer - Log Viewer + Log viewer &Save @@ -10158,11 +7285,11 @@ <p>No log files found. Press the <b>Refresh</b> button to rescan the log folder <nobr><b>%1</b></nobr>.</p> - <p>Geen logbestanden gevonden. Kliken op de knop <b>Verversen</b> om de map <nobr><b>%1</b></nobr> met logs opnieuw te scannen.</p> + <p>Geen logbestanden gevonden. Klik op de knop <b>verversen</b> om de map <nobr><b>%1</b></nobr> met logs opnieuw te scannen.</p> Save VirtualBox Log As - Sla de VirtualBox Log op als + Sla VirtualBox Log op als &Find @@ -10173,185 +7300,4 @@ Sluiten - - VBoxVMSettingsCD - - Host CD/DVD drive is not selected - CD/DVD station is niet geselecteerd - - - CD/DVD image file is not selected - CD/DVD image bestand is niet geselecteerd - - - When checked, mounts the specified media to the CD/DVD drive of the virtual machine. Note that the CD/DVD drive is always connected to the Secondary Master IDE controller of the machine. - Is deze optie aangevinkt dan wordt de gespecificeerde media gekoppeld aan het CD/DVD station van de virtuele machine.Let op: het CD/DVD station is altijd verbonden met de tweede Master IDE controler van de machine. - - - &Mount CD/DVD Drive - &Koppel CD/DVD station aan - - - Mounts the specified CD/DVD drive to the virtual CD/DVD drive. - Koppelt het gespecificeerde CD/DVD station aan het virtuele CD/DVD station. - - - Host CD/DVD &Drive - &CD/DVD station van de gastheer - - - Lists host CD/DVD drives available to mount to the virtual machine. - Geeft de CD/DVD stations, van de gastheer, weer die beschikbaar zijn om aan te koppelen. - - - When checked, allows the guest to send ATAPI commands directly to the host drive which makes it possible to use CD/DVD writers connected to the host inside the VM. Note that writing audio CD inside the VM is not yet supported. - Is deze optie aangevinkt dan is het mogelijk voor de gast om ATAPI opdrachten, direct, naar het gastheer station te sturen. Dit maakt het mogelijk om CD/DVD schrijf apparatuur in de virtuele machine te gebruiken. Let op: het schrijven van een audio-CD wordt (nog) niet ondersteund. - - - Enable &Passthrough - &Doorgeven activeren - - - Mounts the specified CD/DVD image to the virtual CD/DVD drive. - Koppeld de gespecificeerde CD/DVD image aan het virtuele CD/DVD station. - - - &ISO Image File - &ISO image bestand - - - Displays the image file to mount to the virtual CD/DVD drive and allows to quickly select a different image. - Geeft het image bestand weer om kunnen gekoppelen aan het virtuele CD/DVD station en biedt de mogelijkheid om snel van image te veranderen. - - - Invokes the Virtual Media Manager to select a CD/DVD image to mount. - Roept de virtuele media manager aan om een CD/DVD image te selecteren voor het aankoppelen. - - - - VBoxVMSettingsDlg - - General - Algemeen - - - Storage - Opslag - - - Hard Disks - Harde schijven - - - CD/DVD-ROM - CD/DVD-Rom - - - Floppy - Diskette - - - Audio - Audio - - - Network - Netwerk - - - Ports - Poorten - - - Serial Ports - Seriële poorten - - - Parallel Ports - Parallelle porten - - - USB - USB - - - Shared Folders - Gedeelde mappen - - - %1 - %2 - %1 - %2 - - - System - Systeem - - - Display - scherm - - - you have selected a 64-bit guest OS type for this VM. As such guests require hardware virtualization (VT-x/AMD-V), this feature will be enabled automatically. - U heeft een 64-Bit gastbesturingssysteem, voor deze VM, geselecteerd. Daarom is hardware virtualisering (VT-x/AMD-V) vereist voor de gast, deze optie wordt automatische geactiveerd. - - - you have selected a 64-bit guest OS type for this VM. VirtualBox does not currently support more than one virtual CPU for 64-bit guests executed on 32-bit hosts. - U heeft een 64-Bit gastbesturingssysteem, voor deze VM, geselecteerd. VirtualBox ondersteunt nu maar één virtuele CPU voor 64-Bit gasten op een 32-Bit gastheer. - - - you have 2D Video Acceleration enabled. As 2D Video Acceleration is supported for Windows guests only, this feature will be disabled. - U hebt 2D video versnelling geactiveerd. Omdat 2D video versnelling alleen door Windows wordt ondersteund, wordt deze mogelijkheid gedeactiveerd. - - - you have enabled a USB HID (Human Interface Device). This will not work unless USB emulation is also enabled. This will be done automatically when you accept the VM Settings by pressing the OK button. - U hebt een USB HID (Human Interface Device) geactiveerd. Deze zal niet werken zolang de USB emulatie niet is geactiveerd. Dit wordt automatisch gedaan als u de VM instellingen accepteerd door op de Ok knop te klikken. - - - - VBoxVMSettingsFD - - Host floppy drive is not selected - Diskette station, van de gastheer, is niet geselecteerd - - - Floppy image file is not selected - Diskette image bestand is niet geselecteerd - - - When checked, mounts the specified media to the Floppy drive of the virtual machine. - Is deze optie aangevinkt dan wordt de gespecificeerde media gekoppeld aan het diskettestation van de virtuele machine. - - - &Mount Floppy Drive - Koppel &Diskettestation aan - - - Mounts the specified host Floppy drive to the virtual Floppy drive. - Koppelt het gespecificeerde diskettestation aan de virtuele machine. - - - Host Floppy &Drive - &Diskette station van de gastheer - - - Lists host Floppy drives available to mount to the virtual machine. - Geeft een lijst met beschikbare diskettestations weer die beschikbaar zijn voor het koppelen aan de virtuele machine. - - - Mounts the specified Floppy image to the virtual Floppy drive. - Koppelt het gespecificeerde diskettestation image aan het virtuele diskettestation. - - - &Image File - &Image bestand - - - Displays the image file to mount to the virtual Floppy drive and allows to quickly select a different image. - Geeft het image bestand weer om te koppelen aan het virtuele diskette station en staat toe snel een ander image te selecteren. - - - Invokes the Virtual Media Manager to select a Floppy image to mount. - Roept de virtuele media manager aan om een diskette image te selecteren voor het koppelen. - - diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Frontends/VirtualBox/nls/VirtualBox_pl.ts virtualbox-4.1.44-dfsg/src/VBox/Frontends/VirtualBox/nls/VirtualBox_pl.ts --- virtualbox-4.1.12-dfsg/src/VBox/Frontends/VirtualBox/nls/VirtualBox_pl.ts 2012-04-02 13:28:40.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Frontends/VirtualBox/nls/VirtualBox_pl.ts 2015-11-11 15:08:28.000000000 +0000 @@ -5942,14 +5942,6 @@ Failed to detach the floppy device (<nobr><b>%1</b></nobr>) from the slot <i>%2</i> of the machine <b>%3</b>. - - <p>The virtual machine(s) <b>%1</b> are currently in a saved state.</p><p>If you continue the runtime state of the exported machine(s) will be discarded. Note that the existing machine(s) are not changed.</p> - - - - - - Failed to update Guest Additions. The Guest Additions installation image will be mounted to provide a manual installation. @@ -6178,6 +6170,19 @@ extension pack + + <p>Failed to initialize COM because the VirtualBox global configuration directory <b><nobr>%1</nobr></b> is not accessible. Please check the permissions of this directory and of its parent directory.</p><p>The application will now terminate.</p> + + + + <p>The %n following virtual machine(s) are currently in a saved state: <b>%1</b></p><p>If you continue the runtime state of the exported machine(s) will be discarded. The other machine(s) will not be changed.</p> + This text is never used with n == 0. Feel free to drop the %n where possible, we only included it because of problems with Qt Linguist (but the user can see how many machines are in the list and doesn't need to be told). + + + + + + UIMiniProcessWidgetAdditions @@ -10314,10 +10319,6 @@ ICH9 - and - - - MB size suffix MBytes=1024KBytes MB diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Frontends/VirtualBox/nls/VirtualBox_pt_BR.ts virtualbox-4.1.44-dfsg/src/VBox/Frontends/VirtualBox/nls/VirtualBox_pt_BR.ts --- virtualbox-4.1.12-dfsg/src/VBox/Frontends/VirtualBox/nls/VirtualBox_pt_BR.ts 2012-04-02 13:28:40.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Frontends/VirtualBox/nls/VirtualBox_pt_BR.ts 2015-11-11 15:08:28.000000000 +0000 @@ -185,11 +185,11 @@ QIHttp Connection timed out - Tempo esgotado para a conexão + Tempo esgotado para a conexão Could not locate the file on the server (response: %1) - Não foi possível localizar o arquivo no servidor (resposta: %1) + Não foi possível localizar o arquivo no servidor (resposta: %1) @@ -344,7 +344,7 @@ &Insert Ctrl-Alt-Backspace - &Inserir Ctrl-Alt-Backspace + &Inserir Ctrl-Alt-Backspace Send the Ctrl-Alt-Backspace sequence to the virtual machine @@ -352,7 +352,7 @@ Take &Snapshot... - Criar &Snapshot... + Criar &Snapshot... Take a snapshot of the virtual machine @@ -602,205 +602,205 @@ &File Mac OS X version - Arquivo (&F) + Arquivo (&F) &File Non Mac OS X version - Arquivo (&F) + Arquivo (&F) &Virtual Media Manager... - Gerenciador de &Discos Virtuais... + Gerenciador de &Discos Virtuais... Display the Virtual Media Manager dialog - Exibir o Gerenciador de Mídias Virtuais + Exibir o Gerenciador de Mídias Virtuais &Import Appliance... - &Importar Appliance... + &Importar Appliance... Import an appliance into VirtualBox - Importa um <i>appliance</i> no VirtualBox + Importa um <i>appliance</i> no VirtualBox &Export Appliance... - &Exportar Appliance... + &Exportar Appliance... Export one or more VirtualBox virtual machines as an appliance - Exporta um <i>appliance</i> a partir de uma ou mais VMs do VirtualBox + Exporta um <i>appliance</i> a partir de uma ou mais VMs do VirtualBox &Preferences... global settings - &Preferências... + &Preferências... Display the global settings dialog - Mostrar o diálogo de configurações globais + Mostrar o diálogo de configurações globais E&xit - Sair (&x) + Sair (&x) Close application - Fechar a aplicação + Fechar a aplicação &New... - &Novo... + &Novo... Create a new virtual machine - Criar uma nova máquina virtual + Criar uma nova máquina virtual &Add... - &Acrescentar... + &Acrescentar... Add an existing virtual machine - Acrescentar uma máquina virtual existente + Acrescentar uma máquina virtual existente Cl&one... - Cl&onar... + Cl&onar... Clone the selected virtual machine - Clona a máquina virtual selecionada + Clona a máquina virtual selecionada &Remove - &Remover + &Remover Remove the selected virtual machine - Apaga a máquina virtual selecionada + Apaga a máquina virtual selecionada S&tart - Iniciar (&T) + Iniciar (&T) Start the selected virtual machine - Iniciar a máquina virtual selecionada + Iniciar a máquina virtual selecionada S&how - Mostrar (&h) + Mostrar (&h) Switch to the window of the selected virtual machine - Alterna para a janela da máquina virtual selecionada + Alterna para a janela da máquina virtual selecionada Discard - Descartar + Descartar D&iscard Saved State - Descartar o Estado Salvo (&I) + Descartar o Estado Salvo (&I) Discard the saved state of the selected virtual machine - Descartar o estado salvo da máquina virtual selecionada + Descartar o estado salvo da máquina virtual selecionada Re&fresh - Atualizar (&F) + Atualizar (&F) Refresh the accessibility state of the selected virtual machine - Atualizar o estado de acessibilidade da máquina virtual selecionada + Atualizar o estado de acessibilidade da máquina virtual selecionada Show &Log... - Exibir &Log... + Exibir &Log... Show the log files of the selected virtual machine - Exibe os arquivos de log para a máquina virtual selecionada + Exibe os arquivos de log para a máquina virtual selecionada Show in Finder - Exibir no Finder + Exibir no Finder Show the VirtualBox Machine Definition file in Finder. - Exibe o arquivo de definição da máquina do VirtualBox no Finder. + Exibe o arquivo de definição da máquina do VirtualBox no Finder. Show in Explorer - Exibir no Explorer + Exibir no Explorer Show the VirtualBox Machine Definition file in Explorer. - Exibe o arquivo de definição da máquina do VirtualBox no Explorer. + Exibe o arquivo de definição da máquina do VirtualBox no Explorer. Show in File Manager - Exibir no Gerenciador de Arquivos + Exibir no Gerenciador de Arquivos Show the VirtualBox Machine Definition file in the File Manager - Exibe o arquivo de definição da máquina do VirtualBox no Gerenciador de Arquivos + Exibe o arquivo de definição da máquina do VirtualBox no Gerenciador de Arquivos Create Alias on Desktop - Criar Alias no Desktop + Criar Alias no Desktop Creates an Alias file to the VirtualBox Machine Definition file on your Desktop. - Cria um alias apontando para o arquivo de definição de máquina virtual do VirtualBox no seu Desktop. + Cria um alias apontando para o arquivo de definição de máquina virtual do VirtualBox no seu Desktop. Create Shortcut on Desktop - Criar Atalho na Área de Trabalho + Criar Atalho na Área de Trabalho Creates an Shortcut file to the VirtualBox Machine Definition file on your Desktop. - Cria um atalho apontando para o arquivo de definição de máquina virtual do VirtualBox em sua Área de Trabalho. + Cria um atalho apontando para o arquivo de definição de máquina virtual do VirtualBox em sua Área de Trabalho. Take Sn&apshot... - Criar &Snapshot... + Criar &Snapshot... Take Screensh&ot... - Capturar Tela (&O)... + Capturar Tela (&O)... Take a screenshot of the virtual machine - Captura uma imagem da tela exibida na máquina virtual + Captura uma imagem da tela exibida na máquina virtual Ins&ert Ctrl-Alt-Backspace - &Enviar Ctrl-Alt-Backspace + &Enviar Ctrl-Alt-Backspace Sort List - Organizar Lista + Organizar Lista Sort the VM list alphabetically (Shift for descending order) - Organiza a lista de VMs em ordem alfabética (segure Shift para ordem descendente) + Organiza a lista de VMs em ordem alfabética (segure Shift para ordem descendente) &Close - Fe&char + Fe&char Po&wer Off - Desligar (&W) + Desligar (&W) Power off the virtual machine - Desliga a máquina virtual + Desliga a máquina virtual @@ -1097,231 +1097,231 @@ Name details report - Nome + Nome OS Type details report - Tipo de Sistema + Tipo de Sistema Information inaccessible details report - Informação indisponível + Informação indisponível Base Memory details report - Memória Principal + Memória Principal <nobr>%1 MB</nobr> details report - <nobr>%1 MB</nobr> + <nobr>%1 MB</nobr> Processors details report - Processadores + Processadores <nobr>%1</nobr> details report - <nobr>%1</nobr> + <nobr>%1</nobr> Execution Cap details report - Restrição de execução + Restrição de execução <nobr>%1%</nobr> details report - <nobr>%1%</nobr> + <nobr>%1%</nobr> Boot Order details report - Ordem de Boot + Ordem de Boot ACPI details report - ACPI + ACPI IO APIC details report - IO APIC + IO APIC BIOS details report - BIOS + BIOS VT-x/AMD-V details report - VT-x/AMD-V + VT-x/AMD-V Nested Paging details report - Paginação Aninhada + Paginação Aninhada PAE/NX details report - PAE/NX + PAE/NX Acceleration details report - Aceleração + Aceleração Video Memory details report - Memória de Vídeo + Memória de Vídeo Screens details report - Telas + Telas 2D Video details report - Vídeo 2D + Vídeo 2D 3D details report - 3D + 3D Remote Desktop Server Port details report (VRDE Server) - Porta para Servidor de Desktop Remoto + Porta para Servidor de Desktop Remoto Remote Desktop Server details report (VRDE Server) - Servidor de Desktop Remoto + Servidor de Desktop Remoto Disabled details report (VRDE Server) - Desabilitado + Desabilitado (CD/DVD) - (CD/DVD) + (CD/DVD) Not Attached details report (Storage) - Não Conectado + Não Conectado Host Driver details report (audio) - Driver do Hospedeiro + Driver do Hospedeiro Controller details report (audio) - Controladora + Controladora Disabled details report (audio) - Desabilitado + Desabilitado Bridged adapter, %1 details report (network) - Placa em modo Bridge, %1 + Placa em modo Bridge, %1 Internal network, '%1' details report (network) - Rede interna, '%1' + Rede interna, '%1' Host-only adapter, '%1' details report (network) - Placa de rede exclusiva de hospedeiro (host-only), '%1' + Placa de rede exclusiva de hospedeiro (host-only), '%1' Generic driver, '%1' details report (network) - Driver genérico, '%1' + Driver genérico, '%1' Generic driver, '%1' {&nbsp;%2&nbsp;} details report (network) - Driver genérico, '%1' {&nbsp;%2&nbsp;} + Driver genérico, '%1' {&nbsp;%2&nbsp;} Adapter %1 details report (network) - Adaptador %1 + Adaptador %1 Disabled details report (network) - Desabilitada + Desabilitada Port %1 details report (serial ports) - Porta %1 + Porta %1 Disabled details report (serial ports) - Desabilitadas + Desabilitadas Port %1 details report (parallel ports) - Porta %1 + Porta %1 Disabled details report (parallel ports) - Desabilitada + Desabilitada Device Filters details report (USB) - Filtros de Dispositivo + Filtros de Dispositivo %1 (%2 active) details report (USB) - %1 (%2 ativos) + %1 (%2 ativos) Disabled details report (USB) - Desabilitado + Desabilitado Shared Folders details report (shared folders) - Pastas Compartilhadas + Pastas Compartilhadas None details report (shared folders) - Nenhum + Nenhum None details report (description) - Nenhum + Nenhum @@ -1329,146 +1329,146 @@ Name details report - Nome + Nome OS Type details report - Tipo de Sistema + Tipo de Sistema Base Memory details report - Memória Principal + Memória Principal <nobr>%1 MB</nobr> details report - <nobr>%1 MB</nobr> + <nobr>%1 MB</nobr> Processors details report - Processadores + Processadores <nobr>%1</nobr> details report - <nobr>%1</nobr> + <nobr>%1</nobr> Boot Order details report - Ordem de Boot + Ordem de Boot ACPI details report - ACPI + ACPI IO APIC details report - IO APIC + IO APIC BIOS details report - BIOS + BIOS VT-x/AMD-V details report - VT-x/AMD-V + VT-x/AMD-V Nested Paging details report - Paginação Aninhada + Paginação Aninhada PAE/NX details report - PAE/NX + PAE/NX Acceleration details report - Aceleração + Aceleração Video Memory details report - Memória de Vídeo + Memória de Vídeo Screens details report - Telas + Telas 2D Video details report - Vídeo 2D + Vídeo 2D 3D details report - 3D + 3D Remote Desktop Server Port details report (VRDE Server) - Porta para Desktop Remoto + Porta para Desktop Remoto Remote Desktop Server details report (VRDE Server) - Servidor de Desktop Remoto + Servidor de Desktop Remoto Disabled details report (VRDE Server) - Desabilitado + Desabilitado (CD/DVD) - (CD/DVD) + (CD/DVD) Not Attached details report (Storage) - Não Conectado + Não Conectado Host Driver details report (audio) - Driver do Hospedeiro + Driver do Hospedeiro Controller details report (audio) - Controladora + Controladora Disabled details report (audio) - Desabilitado + Desabilitado Bridged adapter, %1 details report (network) - Placa em modo Bridge, %1 + Placa em modo Bridge, %1 Internal network, '%1' details report (network) - Rede interna, '%1' + Rede interna, '%1' Host-only adapter, '%1' details report (network) - Placa de rede exclusiva de hospedeiro (host-only), '%1' + Placa de rede exclusiva de hospedeiro (host-only), '%1' VDE network, '%1' @@ -1478,62 +1478,62 @@ Adapter %1 details report (network) - Adaptador %1 + Adaptador %1 Disabled details report (network) - Desabilitada + Desabilitada Port %1 details report (serial ports) - Porta %1 + Porta %1 Disabled details report (serial ports) - Desabilitadas + Desabilitadas Port %1 details report (parallel ports) - Porta %1 + Porta %1 Disabled details report (parallel ports) - Desabilitadas + Desabilitadas Device Filters details report (USB) - Filtros de Dispositivo + Filtros de Dispositivo %1 (%2 active) details report (USB) - %1 (%2 ativos) + %1 (%2 ativos) Disabled details report (USB) - Desabilitado + Desabilitado Shared Folders details report (shared folders) - Pastas Compartilhadas + Pastas Compartilhadas None details report (shared folders) - Nenhum + Nenhuma None details report (description) - Nenhum + Nenhuma The selected virtual machine is <i>inaccessible</i>. Please inspect the error message shown below and press the <b>Refresh</b> button if you want to repeat the accessibility check: @@ -1602,22 +1602,22 @@ Execution Cap details report - Restrição de execução + Restrição de execução <nobr>%1%</nobr> details report - <nobr>%1%</nobr> + <nobr>%1%</nobr> Generic driver, '%1' details report (network) - Driver genérico, '%1' + Driver genérico, '%1' Generic driver, '%1' {&nbsp;%2&nbsp;} details report (network) - Driver genérico, '%1' {&nbsp;%2&nbsp;} + Driver genérico, '%1' {&nbsp;%2&nbsp;} @@ -1672,11 +1672,11 @@ Looking for %1... - Procurando por %1... + Procurando por %1... Downloading %1... - Baixando %1... + Baixando %1... @@ -1703,7 +1703,7 @@ VirtualBox Guest Additions - Adicionais para Convidado do VirtualBox + Adicionais para Convidado do VirtualBox @@ -1714,7 +1714,7 @@ VirtualBox Extension Pack - Pacote de Extensões do VirtualBox + Pacote de Extensões do VirtualBox @@ -1725,7 +1725,7 @@ VirtualBox User Manual - Manual do Usuário do VirtualBox + Manual do Usuário do VirtualBox @@ -2309,50 +2309,50 @@ UIGlobalSettingsDisplay Maximum Guest Screen &Size: - Tamanho Máximo da Tela do &Sistema Convidado: + Tamanho Máximo da Tela do &Sistema Convidado: &Width: - Largura (&W): + Largura (&W): Specifies the maximum width which we would like the guest to use. - Especifica a largura máxima que a tela do sistema convidado poderá ter. + Especifica a largura máxima que a tela do sistema convidado poderá ter. &Height: - Altura (&H): + Altura (&H): Specifies the maximum height which we would like the guest to use. - Especifica a altura máxima que a tela do sistema convidado poderá ter. + Especifica a altura máxima que a tela do sistema convidado poderá ter. Automatic Maximum Guest Screen Size - Automático + Automático Suggest a reasonable maximum screen size to the guest. The guest will only see this suggestion when guest additions are installed. - Sugerir um tamanho máximo de tela razoável para o sistema convidado. O sistema convidado somente saberá desta informação se os adicionais para convidado estiverem instalados. + Sugerir um tamanho máximo de tela razoável para o sistema convidado. O sistema convidado somente saberá desta informação se os adicionais para convidado estiverem instalados. None Maximum Guest Screen Size - Nenhum + Nenhum Do not attempt to limit the size of the guest screen. - Não tentar limitar o tamanho da tela do sistema convidado. + Não tentar limitar o tamanho da tela do sistema convidado. Hint Maximum Guest Screen Size - Sugerir + Sugerir Suggest a maximum screen size to the guest. The guest will only see this suggestion when guest additions are installed. - Sugere um tamanho máximo para a tela do sistema convidado. O sistema convidado irá ver esta informação quando os adicionais para convidado estiverem instalados. + Sugere um tamanho máximo para a tela do sistema convidado. O sistema convidado irá ver esta informação quando os adicionais para convidado estiverem instalados. @@ -3389,7 +3389,7 @@ Select a filename for the screenshot ... - Selecione um nome para a imagem capturada... + Selecione um nome para a imagem capturada... @@ -5375,6 +5375,17 @@ + UIMenuHelper + + &Window + Janela (&W) + + + Minimize + Minimizar + + + UIMessageCenter VirtualBox - Information @@ -5726,7 +5737,7 @@ <p>Failed to download the VirtualBox Guest Additions CD image from <nobr><a href="%1">%2</a>.</nobr></p><p>%3</p> - <p>Falha ao tentar baixar a imagem de CD dos Adicionais para Convidado do VirtualBox a partir de <nobr><a href="%1">%2</a>.</nobr></p><p>%3</p> + <p>Falha ao tentar baixar a imagem de CD dos Adicionais para Convidado do VirtualBox a partir de <nobr><a href="%1">%2</a>.</nobr></p><p>%3</p> <p>Are you sure you want to download the VirtualBox Guest Additions CD image from <nobr><a href="%1">%2</a></nobr> (size %3 bytes)?</p> @@ -6128,7 +6139,7 @@ <p>Unable to obtain the new version information due to the following error:</p><p><b>%1</b></p> - <p>Não foi possível obter informações de versão devido ao seguinte erro:</p><p><b>%1</b></p> + <p>Não foi possível obter informações de versão devido ao seguinte erro:</p><p><b>%1</b></p> <p>One or more virtual hard disks, CD/DVD or floppy media are not currently accessible. As a result, you will not be able to operate virtual machines that use these media until they become accessible later.</p><p>Press <b>Check</b> to open the Virtual Media Manager window and see what media are inaccessible, or press <b>Ignore</b> to ignore this message.</p> @@ -6491,7 +6502,7 @@ <p>Failed to download the VirtualBox User Manual from <nobr><a href="%1">%2</a>.</nobr></p><p>%3</p> - <p>Falha ao tentar baixar o Manual do Usuário do VirtualBox a partir de <nobr><a href="%1">%2</a>.</nobr></p><p>%3</p> + <p>Falha ao tentar baixar o Manual do Usuário do VirtualBox a partir de <nobr><a href="%1">%2</a>.</nobr></p><p>%3</p> <p>The VirtualBox User Manual has been successfully downloaded from <nobr><a href="%1">%2</a></nobr> and saved locally as <nobr><b>%3</b>.</nobr></p> @@ -6511,11 +6522,11 @@ <p>You are about to remove the virtual machine <b>%1</b> from the machine list.</p><p>Would you like to delete the files containing the virtual machine from your hard disk as well?</p> - <p>Você está prestes a remover a máquina virtual <b>%1</b> da lista de máquinas conhecidas.</p><p>Gostaria de remover também os arquivos físicos que contém esta máquina virtual em seu disco?</p> + <p>Você está prestes a remover a máquina virtual <b>%1</b> da lista de máquinas conhecidas.</p><p>Gostaria de remover também os arquivos físicos que contém esta máquina virtual em seu disco?</p> <p>You are about to remove the virtual machine <b>%1</b> from the machine list.</p><p>Would you like to delete the files containing the virtual machine from your hard disk as well? Doing this will also remove the files containing the machine's virtual hard disks if they are not in use by another machine.</p> - <p>Você está prestes a remover a máquina virtual <b>%1</b> da lista de máquinas conhecidas.</p><p>Você gostaria de apagar os arquivos que contém a máquina virtual selecionada de seu disco rígido? Ao fazer isto, os arquivos contendo os discos rígidos virtuais desta máquina virtual serão apagados, caso não estejam em uso por outra máquina virtual.</p> + <p>Você está prestes a remover a máquina virtual <b>%1</b> da lista de máquinas conhecidas.</p><p>Você gostaria de apagar os arquivos que contém a máquina virtual selecionada de seu disco rígido? Ao fazer isto, os arquivos contendo os discos rígidos virtuais desta máquina virtual serão apagados, caso não estejam em uso por outra máquina virtual.</p> Delete all files @@ -6527,7 +6538,7 @@ You are about to remove the inaccessible virtual machine <b>%1</b> from the machine list. Do you wish to proceed? - Você está prestes a remover a máquina virtual inacessível <b>%1</b> da lista de máquinas conhecidas. Deseja continuar? + Você está prestes a remover a máquina virtual inacessível <b>%1</b> da lista de máquinas conhecidas. Deseja continuar? Remove @@ -6582,8 +6593,8 @@ <p>Os Adicionais para Convidado não estão disponíveis nesta máquina virtual, e portanto não é possível utilizar o recurso de pastas compartilhadas. Para utilizar pastas compartilhadas dentro da máquina virtual, instale os Adicionais para Convidado, ou instale-os novamente caso não estejam funcionando corretamente. Para fazer isto, selecione a opção <b>Instalar Adicionais para Convidado</b> no menu <b>Máquina</b>. Caso já esteja instalado mas a máquina esteja em processo de inicialização, aguarde até que esteja totalmente ativa e a opção de pastas compartilhadas estará disponível.</p> - <p>The virtual machine(s) <b>%1</b> are currently in a saved state.</p><p>If you continue the runtime state of the exported machine(s) will be discarded. Note that the existing machine(s) are not changed.</p> - + <p>The %n following virtual machine(s) are currently in a saved state: <b>%1</b></p><p>If you continue the runtime state of the exported machine(s) will be discarded. The other machine(s) will not be changed.</p> + <p>As máquinas virtuais <b>%1</b> possuem estado de execução salvo. </p><p>Se você continuar, o estado atual de execução destas máquinas será descartado. As máquinas existentes não serão afetadas.</p> @@ -6813,27 +6824,27 @@ <p>Failed to download the <b><nobr>%1</nobr></b> from <nobr><a href="%2">%2</a>.</nobr></p><p>%3</p> - <p>Falha ao baixar o arquivo <b><nobr>%1</nobr></b> de <nobr><a href="%2">%2</a>.</nobr></p><p>%3</p> + <p>Falha ao baixar o arquivo <b><nobr>%1</nobr></b> de <nobr><a href="%2">%2</a>.</nobr></p><p>%3</p> Network Operations Manager... - Gerenciador de Operações de Rede... + Gerenciador de Operações de Rede... Show Network Operations Manager - Exibir o Gerenciador de Operações de Rede + Exibir o Gerenciador de Operações de Rede <p>You are about to remove following inaccessible virtual machines from the machine list:</p><p>%1</p><p>Do you wish to proceed?</p> - <p>Você está prestes a remover as seguintes máquinas virtuais inacessíveis da lista:</p><p>%1</p><p>Deseja continuar?</p> + <p>Você está prestes a remover as seguintes máquinas virtuais inacessíveis da lista:</p><p>%1</p><p>Deseja continuar?</p> <p>You are about to remove following virtual machines from the machine list:</p><p>%1</p><p>Would you like to delete the files containing the virtual machine from your hard disk as well? Doing this will also remove the files containing the machine's virtual hard disks if they are not in use by another machine.</p> - <p>Você está prestes a remover as seguintes máquinas virtuais da lista: </p><p>%1</p><p>Você também gostaria de apagar os arquivos que contém as máquinas virtuais selecionadas de seu disco rígido? Ao fazer isto, os arquivos contendo os discos rígidos virtuais destas máquinas serão apagados, caso não estejam em uso por outra máquina virtual.</p> + <p>Você está prestes a remover as seguintes máquinas virtuais da lista: </p><p>%1</p><p>Você também gostaria de apagar os arquivos que contém as máquinas virtuais selecionadas de seu disco rígido? Ao fazer isto, os arquivos contendo os discos rígidos virtuais destas máquinas serão apagados, caso não estejam em uso por outra máquina virtual.</p> <p>You are about to remove following virtual machines from the machine list:</p><p>%1</p><p>Would you like to delete the files containing the virtual machine from your hard disk as well?</p> - <p>Você está prestes a remover as seguintes máquinas virtuais da lista: </p><p>%1</p><p>Gostaria de remover também os arquivos físicos que contém as máquinas virtuais em seu disco?</p> + <p>Você está prestes a remover as seguintes máquinas virtuais da lista: </p><p>%1</p><p>Gostaria de remover também os arquivos físicos que contém as máquinas virtuais em seu disco?</p> <p>You have version %1 of the <b><nobr>%2</nobr></b> installed.</p><p>You should download and install version %3 of this extension pack from Oracle!</p> @@ -6846,41 +6857,57 @@ Do you wish to cancel all current network operations? - Deseja cancelar todas as operações de rede atuais? + Deseja cancelar todas as operações de rede atuais? Do you wish to cancel all current network operations or leave them running in the background? - Deseja cancelar todas as operações de rede atuais ou quer deixá-las executando em background? + Deseja cancelar todas as operações de rede atuais ou quer deixá-las executando em background? Cancel All - Cancelar Todas + Cancelar Todas Leave in Background - Deixar em Background + Deixar em Background <p>Do you really want to send an ACPI shutdown signal to the virtual machine?</p> - <p>Você realmente deseja enviar um sinal de desligamento via ACPI para a máquina virtual?</p> + <p>Você realmente deseja enviar um sinal de desligamento via ACPI para a máquina virtual?</p> ACPI Shutdown machine - Desligamento via ACPI + Desligamento via ACPI <p>Do you really want to power off the virtual machine?</p><p>This will cause any unsaved data in applications running inside it to be lost.</p> - <p>Você realmente deseja desligar a máquina virtual?</p><p>Isto fará com que quaisquer dados não salvos nas aplicações em execução nesta VM sejam perdidos.</p> + <p>Você realmente deseja desligar a máquina virtual?</p><p>Isto fará com que quaisquer dados não salvos nas aplicações em execução nesta VM sejam perdidos.</p> Power Off machine - Desligar + Desligar Failed to drop data. - Falha ao descartar dados. + Falha ao descartar dados. + + + &Network Operations Manager... + Gerenciador de Operações de Rede (&N)... + + + <p>Failed to initialize COM because the VirtualBox global configuration directory <b><nobr>%1</nobr></b> is not accessible. Please check the permissions of this directory and of its parent directory.</p><p>The application will now terminate.</p> + + + + <p>The %n following virtual machine(s) are currently in a saved state: <b>%1</b></p><p>If you continue the runtime state of the exported machine(s) will be discarded. The other machine(s) will not be changed.</p> + This text is never used with n == 0. Feel free to drop the %n where possible, we only included it because of problems with Qt Linguist (but the user can see how many machines are in the list and doesn't need to be told). + + <p>As máquinas virtuais <b>%1</b> possuem estado de execução salvo. </p><p>Se você continuar, o estado atual de execução destas máquinas será descartado. As máquinas existentes não serão afetadas.</p> + + @@ -6954,35 +6981,35 @@ UINetworkManager Network Operation - Operação de Rede + Operação de Rede Restart network operation - Reiniciar operação de rede + Reiniciar operação de rede Cancel network operation - Cancelar operação de rede + Cancelar operação de rede Error: %1. - Erro: %1. + Erro: %1. Network Operations Manager - Gerenciador de Operações de Rede + Gerenciador de Operações de Rede There are no active network operations. - Não existem operações de rede ativas. + Não existem operações de rede ativas. &Cancel All - &Cancelar Todas + &Cancelar Todas Cancel all active network operations - Cancela todas as operações de rede ativas + Cancela todas as operações de rede ativas @@ -7292,7 +7319,7 @@ <p>A <b>dynamically allocated</b> virtual disk file will only use space on your physical hard disk as it fills up (up to a <b>fixed maximum size</b>), although it will not shrink again automatically when space on it is freed.</p> - <p>Um arquivo de disco virtual <b>dinamicamente alocado</b> irá utilizar espaço em seu disco rígido físico à medida em que for sendo utilizado (até um <b>tamanho máximo pré-definido</b>), mas não irá encolher caso seja liberado espaço nele.</p> + <p>Um arquivo de disco virtual <b>dinamicamente alocado</b> irá utilizar espaço em seu disco rígido físico à medida em que for sendo utilizado (até um <b>tamanho máximo pré-definido</b>), mas não irá encolher caso seja liberado espaço nele.</p> <p>A <b>fixed size</b> virtual disk file may take longer to create on some systems but is often faster to use.</p> @@ -7372,6 +7399,10 @@ &QCOW (QEMU Copy-On-Write) &QCOW (QEMU Copy-On-Write) + + <p>A <b>dynamically allocated</b> virtual disk file will only use space on your physical hard disk as it fills up, although it will not shrink again automatically when space on it is freed.</p> + <p>Um arquivo de disco virtual <b>dinamicamente alocado</b> irá utilizar espaço em seu disco rígido físico à medida em que for sendo utilizado (até um <b>tamanho máximo pré-definido</b>), mas não irá encolher caso seja liberado espaço nele.</p> + UINewHDWizardPageFormat @@ -8014,28 +8045,28 @@ UISelectorWindow Show Toolbar - Exibir Barra de Ferramentas + Exibir Barra de Ferramentas Show Statusbar - Exibir Barra de Status + Exibir Barra de Status Select a virtual machine file - Selecione um arquivo de máquina virtual + Selecione um arquivo de máquina virtual Virtual machine files (%1) - Arquivos de máquina virtual (%1) + Arquivos de máquina virtual (%1) <h3>Welcome to VirtualBox!</h3><p>The left part of this window is a list of all virtual machines on your computer. The list is empty now because you haven't created any virtual machines yet.<img src=:/welcome.png align=right/></p><p>In order to create a new virtual machine, press the <b>New</b> button in the main tool bar located at the top of the window.</p><p>You can press the <b>%1</b> key to get instant help, or visit <a href=http://www.virtualbox.org>www.virtualbox.org</a> for the latest information and news.</p> - <h3>Bem-Vindo ao VirtualBox!</h3><p>A parte esquerda desta janela mostra uma lista de todas as máquinas virtuais disponíveis em seu computador. A lista está vazia agora porque você ainda não criou nenhuma máquina virtual ainda.<img src=:/welcome.png align=right/></p><p>Para criar uma nova máquina virtual, pressione o botão <b>Novo</b> na barra de ferramentas principal, localizada no topo da janela.</p><p>Você pode pressionar <b>%1</b> para obter ajuda instantânea, ou visitar <a href=http://www.virtualbox.org>www.virtualbox.org</a> para obter informações e notícias sobre o VirtualBox.</p> + <h3>Bem-Vindo ao VirtualBox!</h3><p>A parte esquerda desta janela mostra uma lista de todas as máquinas virtuais disponíveis em seu computador. A lista está vazia agora porque você ainda não criou nenhuma máquina virtual ainda.<img src=:/welcome.png align=right/></p><p>Para criar uma nova máquina virtual, pressione o botão <b>Novo</b> na barra de ferramentas principal, localizada no topo da janela.</p><p>Você pode pressionar <b>%1</b> para obter ajuda instantânea, ou visitar <a href=http://www.virtualbox.org>www.virtualbox.org</a> para obter informações e notícias sobre o VirtualBox.</p> Manager Note: main window title which is pretended by the product name. - Gerenciador + Gerenciador @@ -8108,7 +8139,7 @@ Display - Tela + Tela @@ -8316,7 +8347,7 @@ UIUpdateStepVirtualBox Checking for a new VirtualBox version... - Verificando se existe uma nova versão do VirtualBox... + Verificando se existe uma nova versão do VirtualBox... @@ -8407,7 +8438,7 @@ Start the selected virtual machine - Iniciar a máquina virtual selecionada + Inicia a máquina virtual selecionada R&esume @@ -8415,7 +8446,7 @@ Resume the execution of the virtual machine - Continuar a execução da máquina virtual + Continua a execução da máquina virtual &Pause @@ -8423,7 +8454,7 @@ Suspend the execution of the virtual machine - Suspender a execução da máquina virtual + Suspende a execução da máquina virtual @@ -8434,7 +8465,7 @@ &Save - &Salvar + &Salvar Alt+S @@ -8442,7 +8473,7 @@ &Refresh - Atualiza&r + Atualiza&r Alt+R @@ -8458,15 +8489,15 @@ %1 - VirtualBox Log Viewer - %1 - Visualizador de Log do VirtualBox + %1 - Visualizador de Log do VirtualBox <p>No log files found. Press the <b>Refresh</b> button to rescan the log folder <nobr><b>%1</b></nobr>.</p> - <p>Nenhum arquivo de log encontrado. Pressione o botão <b>Atualizar</b> para ler novamente a pasta de logs em <nobr><b>%1</b></nobr>.</p> + <p>Nenhum arquivo de log encontrado. Pressione o botão <b>Atualizar</b> para ler novamente a pasta de logs em <nobr><b>%1</b></nobr>.</p> Save VirtualBox Log As - Salvar Log do VirtualBox Como + Salvar Log do VirtualBox Como Help @@ -8478,7 +8509,7 @@ &Find - Procurar(&F) + Procurar(&F) Alt+F @@ -8486,43 +8517,43 @@ Close - Fechar + Fechar Close the search panel - Fecha o painel de busca + Fecha o painel de busca Enter a search string here - Entre o termo de busca aqui + Entre o termo de busca aqui &Previous - Anterior(&P) + Anterior(&P) Search for the previous occurrence of the string - Procura pela ocorrência anterior da frase + Procura pela ocorrência anterior da frase &Next - Próximo(&N) + Próximo(&N) Search for the next occurrence of the string - Procura pela próxima ocorrência da frase + Procura pela próxima ocorrência da frase C&ase Sensitive - Sensível à C&aixa + Sensível à C&aixa Perform case sensitive search (when checked) - Realiza uma busca sensível à caixa (quando marcado) + Realiza uma busca sensível à caixa (quando marcado) String not found - Frase não encontrada + Frase não encontrada @@ -11343,7 +11374,7 @@ and - e + e MB @@ -12021,6 +12052,46 @@ Alt+N Alt+N + + Close the search panel + Fecha o painel de busca + + + Find + Procurar + + + Enter a search string here + Entre o termo de busca aqui + + + &Previous + Anterior(&P) + + + Search for the previous occurrence of the string + Procura pela ocorrência anterior da frase + + + &Next + Próximo(&N) + + + Search for the next occurrence of the string + Procura pela próxima ocorrência da frase + + + C&ase Sensitive + Sensível à C&aixa + + + Perform case sensitive search (when checked) + Realiza uma busca sensível à caixa (quando marcado) + + + String not found + Frase não encontrada + VBoxMediaComboBox @@ -12541,7 +12612,7 @@ &Settings... - Configuraçõe&s... + Configuraçõe&s... Settings @@ -12553,7 +12624,7 @@ Configure the selected virtual machine - Configurar a máquina virtual selecionada + Configurar a máquina virtual selecionada &Delete @@ -12649,7 +12720,7 @@ &Machine - &Máquina + &Máquina Show Log... @@ -12681,11 +12752,11 @@ Resume the execution of the virtual machine - Continuar a execução da máquina virtual + Continuar a execução da máquina virtual &Pause - &Pausar + &Pausar Pause @@ -12693,16 +12764,16 @@ Suspend the execution of the virtual machine - Suspender a execução da máquina virtual + Suspender a execução da máquina virtual <h3>Welcome to VirtualBox!</h3><p>The left part of this window is a list of all virtual machines on your computer. The list is empty now because you haven't created any virtual machines yet.<img src=:/welcome.png align=right/></p><p>In order to create a new virtual machine, press the <b>New</b> button in the main tool bar located at the top of the window.</p><p>You can press the <b>%1</b> key to get instant help, or visit <a href=http://www.virtualbox.org>www.virtualbox.org</a> for the latest information and news.</p> - <h3>Bem-Vindo ao VirtualBox!</h3><p>A parte esquerda desta janela mostra uma lista de todas as máquinas virtuais disponíveis em seu computador. A lista está vazia agora porque você ainda não criou nenhuma máquina virtual ainda.<img src=:/welcome.png align=right/></p><p>Para criar uma nova máquina virtual, pressione o botão <b>Novo</b> na barra de ferramentas principal, localizada no topo da janela.</p><p>Você pode pressionar <b>%1</b> para obter ajuda instantânea, ou visitar <a href=http://www.virtualbox.org>www.virtualbox.org</a> para obter informações e notícias sobre o VirtualBox.</p> + <h3>Bem-Vindo ao VirtualBox!</h3><p>A parte esquerda desta janela mostra uma lista de todas as máquinas virtuais disponíveis em seu computador. A lista está vazia agora porque você ainda não criou nenhuma máquina virtual ainda.<img src=:/welcome.png align=right/></p><p>Para criar uma nova máquina virtual, pressione o botão <b>Novo</b> na barra de ferramentas principal, localizada no topo da janela.</p><p>Você pode pressionar <b>%1</b> para obter ajuda instantânea, ou visitar <a href=http://www.virtualbox.org>www.virtualbox.org</a> para obter informações e notícias sobre o VirtualBox.</p> Log icon text - Log + Log Sun VirtualBox @@ -12710,24 +12781,191 @@ Select a virtual machine file - Selecione um arquivo de máquina virtual + Selecione um arquivo de máquina virtual Virtual machine files (%1) - Arquivos de máquina virtual (%1) + Arquivos de máquina virtual (%1) Manager Note: main window title which is pretended by the product name. - Gerenciador + Gerenciador Show Toolbar - Exibir Barra de Ferramentas + Exibir Barra de Ferramentas Show Statusbar - Exibir Barra de Status + Exibir Barra de Status + + + &Virtual Media Manager... + Gerenciador de Mídias &Virtuais... + + + Display the Virtual Media Manager dialog + Exibir o Gerenciador de Mídias Virtuais + + + &Import Appliance... + &Importar Appliance... + + + Import an appliance into VirtualBox + Importa um <i>appliance</i> no VirtualBox + + + &Export Appliance... + &Exportar Appliance... + + + Export one or more VirtualBox virtual machines as an appliance + Exporta um <i>appliance</i> a partir de uma ou mais VMs do VirtualBox + + + &Preferences... + global settings + &Preferências... + + + Display the global settings dialog + Mostrar o diálogo de configurações globais + + + E&xit + Sair (&X) + + + Close application + Fechar a aplicação + + + &New... + &Nova... + + + Create a new virtual machine + Criar uma nova máquina virtual + + + &Add... + &Acrescentar... + + + Add an existing virtual machine + Acrescentar uma máquina virtual existente + + + Cl&one... + Cl&onar... + + + Clone the selected virtual machine + Clona a máquina virtual selecionada + + + &Remove + &Remover + + + Remove the selected virtual machine + Apaga a máquina virtual selecionada + + + Discard + Descartar + + + D&iscard Saved State + Descartar o Estado Salvo (&I) + + + Discard the saved state of the selected virtual machine + Descartar o estado salvo da máquina virtual selecionada + + + Re&fresh + Atualizar (&F) + + + Refresh the accessibility state of the selected virtual machine + Atualizar o estado de acessibilidade da máquina virtual selecionada + + + Show &Log... + Exibir &Log... + + + Show the log files of the selected virtual machine + Exibe os arquivos de log para a máquina virtual selecionada + + + Show in Finder + Exibir no Finder + + + Show the VirtualBox Machine Definition file in Finder. + Exibe o arquivo de definição da máquina do VirtualBox no Finder. + + + Create Alias on Desktop + Criar Alias no Desktop + + + Creates an Alias file to the VirtualBox Machine Definition file on your Desktop. + Cria um alias apontando para o arquivo de definição de máquina virtual do VirtualBox no seu Desktop. + + + Show in Explorer + Exibir no Explorer + + + Show the VirtualBox Machine Definition file in Explorer. + Exibe o arquivo de definição da máquina do VirtualBox no Explorer. + + + Create Shortcut on Desktop + Criar Atalho na Área de Trabalho + + + Creates an Shortcut file to the VirtualBox Machine Definition file on your Desktop. + Cria um atalho apontando para o arquivo de definição de máquina virtual do VirtualBox em sua Área de Trabalho. + + + Show in File Manager + Exibir no Gerenciador de Arquivos + + + Show the VirtualBox Machine Definition file in the File Manager + Exibe o arquivo de definição da máquina do VirtualBox no Gerenciador de Arquivos + + + &File + Mac OS X version + Arquivo (&F) + + + &File + Non Mac OS X version + Arquivo (&F) + + + S&tart + Iniciar (&T) + + + Start the selected virtual machine + Inicia a máquina virtual selecionada + + + S&how + Mostrar (&H) + + + Switch to the window of the selected virtual machine + Alterna para a janela da máquina virtual selecionada @@ -13666,6 +13904,41 @@ + VBoxVMLogViewer + + Log Viewer + Visualizador de Log + + + <p>No log files found. Press the <b>Refresh</b> button to rescan the log folder <nobr><b>%1</b></nobr>.</p> + <p>Nenhum arquivo de log encontrado. Pressione o botão <b>Atualizar</b> para ler novamente a pasta de logs em <nobr><b>%1</b></nobr>.</p> + + + Save VirtualBox Log As + Salvar Log do VirtualBox Como + + + %1 - VirtualBox Log Viewer + %1 - Visualizador de Log do VirtualBox + + + &Find + Procurar(&F) + + + &Refresh + Atualiza&r + + + &Save + &Salvar + + + Close + Fechar + + + VBoxVMNetworkSettings VBoxVMNetworkSettings diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Frontends/VirtualBox/nls/VirtualBox_pt.ts virtualbox-4.1.44-dfsg/src/VBox/Frontends/VirtualBox/nls/VirtualBox_pt.ts --- virtualbox-4.1.12-dfsg/src/VBox/Frontends/VirtualBox/nls/VirtualBox_pt.ts 2012-04-02 13:28:40.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Frontends/VirtualBox/nls/VirtualBox_pt.ts 2015-11-11 15:08:28.000000000 +0000 @@ -5343,13 +5343,6 @@ Failed to detach the floppy device (<nobr><b>%1</b></nobr>) from the slot <i>%2</i> of the machine <b>%3</b>. - - <p>The virtual machine(s) <b>%1</b> are currently in a saved state.</p><p>If you continue the runtime state of the exported machine(s) will be discarded. Note that the existing machine(s) are not changed.</p> - - - - - Failed to update Guest Additions. The Guest Additions installation image will be mounted to provide a manual installation. @@ -5578,6 +5571,18 @@ extension pack + + <p>Failed to initialize COM because the VirtualBox global configuration directory <b><nobr>%1</nobr></b> is not accessible. Please check the permissions of this directory and of its parent directory.</p><p>The application will now terminate.</p> + + + + <p>The %n following virtual machine(s) are currently in a saved state: <b>%1</b></p><p>If you continue the runtime state of the exported machine(s) will be discarded. The other machine(s) will not be changed.</p> + This text is never used with n == 0. Feel free to drop the %n where possible, we only included it because of problems with Qt Linguist (but the user can see how many machines are in the list and doesn't need to be told). + + + + + UIMiniProcessWidgetAdditions @@ -9424,7 +9429,7 @@ and - e + e MB diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Frontends/VirtualBox/nls/VirtualBox_ro.ts virtualbox-4.1.44-dfsg/src/VBox/Frontends/VirtualBox/nls/VirtualBox_ro.ts --- virtualbox-4.1.12-dfsg/src/VBox/Frontends/VirtualBox/nls/VirtualBox_ro.ts 2012-04-02 13:28:40.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Frontends/VirtualBox/nls/VirtualBox_ro.ts 2015-11-11 15:08:28.000000000 +0000 @@ -5663,14 +5663,6 @@ Failed to detach the floppy device (<nobr><b>%1</b></nobr>) from the slot <i>%2</i> of the machine <b>%3</b>. - - <p>The virtual machine(s) <b>%1</b> are currently in a saved state.</p><p>If you continue the runtime state of the exported machine(s) will be discarded. Note that the existing machine(s) are not changed.</p> - - - - - - Failed to update Guest Additions. The Guest Additions installation image will be mounted to provide a manual installation. @@ -5899,6 +5891,19 @@ extension pack + + <p>Failed to initialize COM because the VirtualBox global configuration directory <b><nobr>%1</nobr></b> is not accessible. Please check the permissions of this directory and of its parent directory.</p><p>The application will now terminate.</p> + + + + <p>The %n following virtual machine(s) are currently in a saved state: <b>%1</b></p><p>If you continue the runtime state of the exported machine(s) will be discarded. The other machine(s) will not be changed.</p> + This text is never used with n == 0. Feel free to drop the %n where possible, we only included it because of problems with Qt Linguist (but the user can see how many machines are in the list and doesn't need to be told). + + + + + + UIMiniProcessWidgetAdditions @@ -10117,10 +10122,6 @@ ICH9 - and - - - MB size suffix MBytes=1024KBytes MO diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Frontends/VirtualBox/nls/VirtualBox_ru.ts virtualbox-4.1.44-dfsg/src/VBox/Frontends/VirtualBox/nls/VirtualBox_ru.ts --- virtualbox-4.1.12-dfsg/src/VBox/Frontends/VirtualBox/nls/VirtualBox_ru.ts 2012-04-02 13:28:40.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Frontends/VirtualBox/nls/VirtualBox_ru.ts 2015-11-11 15:08:28.000000000 +0000 @@ -5753,8 +5753,8 @@ Не удалось отсоединить привод гибких дисков <nobr><b>%1</b></nobr> от слота <i>%2</i> машины <b>%3</b>. - <p>The virtual machine(s) <b>%1</b> are currently in a saved state.</p><p>If you continue the runtime state of the exported machine(s) will be discarded. Note that the existing machine(s) are not changed.</p> - + <p>The %n following virtual machine(s) are currently in a saved state: <b>%1</b></p><p>If you continue the runtime state of the exported machine(s) will be discarded. The other machine(s) will not be changed.</p> + <p>Виртуальная машина <b>%1</b> в данный момент находится в сохранённом состоянии.</p><p>Если Вы продолжите, рабочее состояние экспортируемой машины будет сброшено. Учтите, что существующие машины не будут изменены.</p> <p>Виртуальные машины <b>%1</b> в данный момент находятся в сохранённом состоянии.</p><p>Если Вы продолжите, рабочее состояние экспортируемых машины будет сброшено. Учтите, что существующие машины не будут изменены.</p> <p>Виртуальные машины <b>%1</b> в данный момент находятся в сохранённом состоянии.</p><p>Если Вы продолжите, рабочее состояние экспортируемых машины будет сброшено. Учтите, что существующие машины не будут изменены.</p> @@ -5996,6 +5996,19 @@ extension pack + + <p>Failed to initialize COM because the VirtualBox global configuration directory <b><nobr>%1</nobr></b> is not accessible. Please check the permissions of this directory and of its parent directory.</p><p>The application will now terminate.</p> + + + + <p>The %n following virtual machine(s) are currently in a saved state: <b>%1</b></p><p>If you continue the runtime state of the exported machine(s) will be discarded. The other machine(s) will not be changed.</p> + This text is never used with n == 0. Feel free to drop the %n where possible, we only included it because of problems with Qt Linguist (but the user can see how many machines are in the list and doesn't need to be told). + + <p>Виртуальная машина <b>%1</b> в данный момент находится в сохранённом состоянии.</p><p>Если Вы продолжите, рабочее состояние экспортируемой машины будет сброшено. Учтите, что существующие машины не будут изменены.</p> + <p>Виртуальные машины <b>%1</b> в данный момент находятся в сохранённом состоянии.</p><p>Если Вы продолжите, рабочее состояние экспортируемых машины будет сброшено. Учтите, что существующие машины не будут изменены.</p> + <p>Виртуальные машины <b>%1</b> в данный момент находятся в сохранённом состоянии.</p><p>Если Вы продолжите, рабочее состояние экспортируемых машины будет сброшено. Учтите, что существующие машины не будут изменены.</p> + + UIMiniProcessWidgetAdditions @@ -9376,7 +9389,7 @@ and - и + и MB diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Frontends/VirtualBox/nls/VirtualBox_sk.ts virtualbox-4.1.44-dfsg/src/VBox/Frontends/VirtualBox/nls/VirtualBox_sk.ts --- virtualbox-4.1.12-dfsg/src/VBox/Frontends/VirtualBox/nls/VirtualBox_sk.ts 2012-04-02 13:28:40.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Frontends/VirtualBox/nls/VirtualBox_sk.ts 2015-11-11 15:08:28.000000000 +0000 @@ -5227,14 +5227,6 @@ Failed to detach the floppy device (<nobr><b>%1</b></nobr>) from the slot <i>%2</i> of the machine <b>%3</b>. - - <p>The virtual machine(s) <b>%1</b> are currently in a saved state.</p><p>If you continue the runtime state of the exported machine(s) will be discarded. Note that the existing machine(s) are not changed.</p> - - - - - - Failed to update Guest Additions. The Guest Additions installation image will be mounted to provide a manual installation. @@ -5463,6 +5455,19 @@ extension pack + + <p>Failed to initialize COM because the VirtualBox global configuration directory <b><nobr>%1</nobr></b> is not accessible. Please check the permissions of this directory and of its parent directory.</p><p>The application will now terminate.</p> + + + + <p>The %n following virtual machine(s) are currently in a saved state: <b>%1</b></p><p>If you continue the runtime state of the exported machine(s) will be discarded. The other machine(s) will not be changed.</p> + This text is never used with n == 0. Feel free to drop the %n where possible, we only included it because of problems with Qt Linguist (but the user can see how many machines are in the list and doesn't need to be told). + + + + + + UIMiniProcessWidgetAdditions @@ -9368,7 +9373,7 @@ and - a + a MB diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Frontends/VirtualBox/nls/VirtualBox_sr.ts virtualbox-4.1.44-dfsg/src/VBox/Frontends/VirtualBox/nls/VirtualBox_sr.ts --- virtualbox-4.1.12-dfsg/src/VBox/Frontends/VirtualBox/nls/VirtualBox_sr.ts 2012-04-02 13:28:40.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Frontends/VirtualBox/nls/VirtualBox_sr.ts 2015-11-11 15:08:28.000000000 +0000 @@ -5478,8 +5478,8 @@ Неуспешан одвој флопи уређаја (<nobr><b>%1</b></nobr>) са слота <i>%2</i> од машине <b>%3</b>. - <p>The virtual machine(s) <b>%1</b> are currently in a saved state.</p><p>If you continue the runtime state of the exported machine(s) will be discarded. Note that the existing machine(s) are not changed.</p> - + <p>The %n following virtual machine(s) are currently in a saved state: <b>%1</b></p><p>If you continue the runtime state of the exported machine(s) will be discarded. The other machine(s) will not be changed.</p> + <p>Машина <b>%1</b> је у статусу сачувавања.</p><p>Ако наставите, статус извежене мажине ће бити одбачен. Постојећа машина неће бити промењена.</p> <p>Машине <b>%1</b> су у статусу сачувавања.</p><p>Ако наставите, статус извежених мажина ће бити одбачен. Постојеће машине неће бити промењене.</p> <p>Машине <b>%1</b> су у статусу сачувавања.</p><p>Ако наставите, статус извежених мажина ће бити одбачен. Постојеће машине неће бити промењене.</p> @@ -5713,6 +5713,19 @@ extension pack + + <p>Failed to initialize COM because the VirtualBox global configuration directory <b><nobr>%1</nobr></b> is not accessible. Please check the permissions of this directory and of its parent directory.</p><p>The application will now terminate.</p> + + + + <p>The %n following virtual machine(s) are currently in a saved state: <b>%1</b></p><p>If you continue the runtime state of the exported machine(s) will be discarded. The other machine(s) will not be changed.</p> + This text is never used with n == 0. Feel free to drop the %n where possible, we only included it because of problems with Qt Linguist (but the user can see how many machines are in the list and doesn't need to be told). + + <p>Машина <b>%1</b> је у статусу сачувавања.</p><p>Ако наставите, статус извежене мажине ће бити одбачен. Постојећа машина неће бити промењена.</p> + <p>Машине <b>%1</b> су у статусу сачувавања.</p><p>Ако наставите, статус извежених мажина ће бити одбачен. Постојеће машине неће бити промењене.</p> + <p>Машине <b>%1</b> су у статусу сачувавања.</p><p>Ако наставите, статус извежених мажина ће бити одбачен. Постојеће машине неће бити промењене.</p> + + UIMiniProcessWidgetAdditions @@ -8991,7 +9004,7 @@ and - и + и MB diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Frontends/VirtualBox/nls/VirtualBox_sv.ts virtualbox-4.1.44-dfsg/src/VBox/Frontends/VirtualBox/nls/VirtualBox_sv.ts --- virtualbox-4.1.12-dfsg/src/VBox/Frontends/VirtualBox/nls/VirtualBox_sv.ts 2012-04-02 13:28:40.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Frontends/VirtualBox/nls/VirtualBox_sv.ts 2015-11-11 15:08:28.000000000 +0000 @@ -159,11 +159,11 @@ QIHttp Connection timed out - Tidsgränsen för anslutningen överstegs + Tidsgränsen för anslutningen överstegs Could not locate the file on the server (response: %1) - Kunde inte hitta filen på servern (svar: %1) + Kunde inte hitta filen på servern (svar: %1) @@ -311,7 +311,7 @@ &Insert Ctrl-Alt-Backspace - &Infoga Ctrl-Alt-Backsteg + &Infoga Ctrl-Alt-Backsteg Send the Ctrl-Alt-Backspace sequence to the virtual machine @@ -319,7 +319,7 @@ Take &Snapshot... - Spara &ögonblicksbild... + Spara &ögonblicksbild... Take a snapshot of the virtual machine @@ -569,205 +569,205 @@ &File Mac OS X version - &Arkiv + &Arkiv &File Non Mac OS X version - &Arkiv + &Arkiv &Virtual Media Manager... - Hanterare för virtuella &media... + Hanterare för virtuella &media... Display the Virtual Media Manager dialog - Visa Hanterare för virtuella media + Visa Hanterare för virtuella media &Import Appliance... - &Importera appliance... + &Importera appliance... Import an appliance into VirtualBox - Importera en appliance till VirtualBox + Importera en appliance till VirtualBox &Export Appliance... - &Exportera appliance... + &Exportera appliance... Export one or more VirtualBox virtual machines as an appliance - Exportera en appliance från virtuella maskiner från VirtualBox + Exportera en appliance från virtuella maskiner från VirtualBox &Preferences... global settings - &Inställningar... + &Inställningar... Display the global settings dialog - Visa allmänna inställningar + Visa allmänna inställningar E&xit - A&vsluta + A&vsluta Close application - Stäng programmet + Stäng programmet &New... - &Ny... + &Ny... Create a new virtual machine - Skapa en ny virtuell maskin + Skapa en ny virtuell maskin &Add... - &Lägg till... + &Lägg till... Add an existing virtual machine - Lägg till en befintlig virtuell maskin + Lägg till en befintlig virtuell maskin Cl&one... - Kl&ona... + Kl&ona... Clone the selected virtual machine - Klona den markerade virtuella maskinen + Klona den markerade virtuella maskinen &Remove - &Ta bort + &Ta bort Remove the selected virtual machine - Ta bort markerad virtuell maskin + Ta bort markerad virtuell maskin S&tart - St&arta + St&arta Start the selected virtual machine - Starta den markerade virtuella maskinen + Starta den markerade virtuella maskinen S&how - V&isa + V&isa Switch to the window of the selected virtual machine - Växla till fönstret för den markerade virtuella maskinen + Växla till fönstret för den markerade virtuella maskinen Discard - Förkasta + Förkasta D&iscard Saved State - För&kasta sparat tillstånd + För&kasta sparat tillstånd Discard the saved state of the selected virtual machine - Förkasta det sparade tillståndet för den markerade virtuella maskinen + Förkasta det sparade tillståndet för den markerade virtuella maskinen Re&fresh - &Uppdatera + &Uppdatera Refresh the accessibility state of the selected virtual machine - Uppdatera tillgänglighetstillståndet för den markerade virtuella maskinen + Uppdatera tillgänglighetstillståndet för den markerade virtuella maskinen Show &Log... - Visa lo&gg... + Visa lo&gg... Show the log files of the selected virtual machine - Visa loggfilerna för den markerade virtuella maskinen + Visa loggfilerna för den markerade virtuella maskinen Show in Finder - Visa i Finder + Visa i Finder Show the VirtualBox Machine Definition file in Finder. - Visa VirtualBox Machine Definition-fil i Finder. + Visa VirtualBox Machine Definition-fil i Finder. Show in Explorer - Visa i Utforskaren + Visa i Utforskaren Show the VirtualBox Machine Definition file in Explorer. - Visa VirtualBox Machine Definition-filen i Utforskaren. + Visa VirtualBox Machine Definition-filen i Utforskaren. Show in File Manager - Visa i filhanterare + Visa i filhanterare Show the VirtualBox Machine Definition file in the File Manager - Visa VirtualBox Machine Definition-filen i filhanteraren + Visa VirtualBox Machine Definition-filen i filhanteraren Create Alias on Desktop - Skapa alias på skrivbordet + Skapa alias på skrivbordet Creates an Alias file to the VirtualBox Machine Definition file on your Desktop. - Skapar en aliasfil till VirtualBox Machine Definition-filen på ditt skrivbord. + Skapar en aliasfil till VirtualBox Machine Definition-filen på ditt skrivbord. Create Shortcut on Desktop - Skapa genväg på skrivbordet + Skapa genväg på skrivbordet Creates an Shortcut file to the VirtualBox Machine Definition file on your Desktop. - Skapar en genvägsfil till VirtualBox Machine Definition-filen på ditt skrivbord. + Skapar en genvägsfil till VirtualBox Machine Definition-filen på ditt skrivbord. Take Sn&apshot... - Ta ö&gonblicksbild... + Ta ö&gonblicksbild... Take Screensh&ot... - Ta skärmbil&d... + Ta skärmbil&d... Take a screenshot of the virtual machine - Ta en skärmbild av den virtuella maskinen + Ta en skärmbild av den virtuella maskinen Ins&ert Ctrl-Alt-Backspace - Info&ga Ctrl-Alt-Backsteg + Info&ga Ctrl-Alt-Backsteg Sort List - Sortera lista + Sortera lista Sort the VM list alphabetically (Shift for descending order) - Sortera listan över virtuella maskiner alfabetiskt (Skift för fallande ordning) + Sortera listan över virtuella maskiner alfabetiskt (Skift för fallande ordning) &Close - S&täng + S&täng Po&wer Off - Stäng a&v + Stäng a&v Power off the virtual machine - Stäng av den virtuella maskinen + Stäng av den virtuella maskinen @@ -1062,231 +1062,231 @@ Name details report - Namn + Namn OS Type details report - Typ av operativsystem + Typ av operativsystem Information inaccessible details report - Informationen är inte nåbar + Informationen är inte nåbar Base Memory details report - Basminne + Basminne <nobr>%1 MB</nobr> details report - <nobr>%1 MB</nobr> + <nobr>%1 MB</nobr> Processors details report - Processorer + Processorer <nobr>%1</nobr> details report - <nobr>%1</nobr> + <nobr>%1</nobr> Execution Cap details report - Exekveringsgräns + Exekveringsgräns <nobr>%1%</nobr> details report - <nobr>%1%</nobr> + <nobr>%1%</nobr> Boot Order details report - Uppstartsordning + Uppstartsordning ACPI details report - ACPI + ACPI IO APIC details report - IO APIC + IO APIC BIOS details report - BIOS + BIOS VT-x/AMD-V details report - VT-x/AMD-V + VT-x/AMD-V Nested Paging details report - Nested Paging + Nested Paging PAE/NX details report - PAE/NX + PAE/NX Acceleration details report - Acceleration + Acceleration Video Memory details report - Grafikminne + Grafikminne Screens details report - Skärmar + Skärmar 2D Video details report - 2D-grafik + 2D-grafik 3D details report - 3D + 3D Remote Desktop Server Port details report (VRDE Server) - Port för fjärrskrivbordsserver + Port för fjärrskrivbordsserver Remote Desktop Server details report (VRDE Server) - Fjärrskrivbordsserver + Fjärrskrivbordsserver Disabled details report (VRDE Server) - Inaktiverad + Inaktiverad (CD/DVD) - (CD/DVD) + (CD/DVD) Not Attached details report (Storage) - Inte ansluten + Inte ansluten Host Driver details report (audio) - Värddrivrutin + Värddrivrutin Controller details report (audio) - Styrkort + Styrkort Disabled details report (audio) - Inaktiverad + Inaktiverad Bridged adapter, %1 details report (network) - Bryggat kort, %1 + Bryggat kort, %1 Internal network, '%1' details report (network) - Internt nätverk, "%1" + Internt nätverk, "%1" Host-only adapter, '%1' details report (network) - Endast värd-kort, "%1" + Endast värd-kort, "%1" Generic driver, '%1' details report (network) - Allmän drivrutin, "%1" + Allmän drivrutin, "%1" Generic driver, '%1' {&nbsp;%2&nbsp;} details report (network) - Allmän drivrutin, "%1" {&nbsp;%2&nbsp;} + Allmän drivrutin, "%1" {&nbsp;%2&nbsp;} Adapter %1 details report (network) - Adapter %1 + Adapter %1 Disabled details report (network) - Inaktiverad + Inaktiverad Port %1 details report (serial ports) - Port %1 + Port %1 Disabled details report (serial ports) - Inaktiverad + Inaktiverad Port %1 details report (parallel ports) - Port %1 + Port %1 Disabled details report (parallel ports) - Inaktiverad + Inaktiverad Device Filters details report (USB) - Enhetsfilter + Enhetsfilter %1 (%2 active) details report (USB) - %1 (%2 aktiv) + %1 (%2 aktiv) Disabled details report (USB) - Inaktiverad + Inaktiverad Shared Folders details report (shared folders) - Delade mappar + Delade mappar None details report (shared folders) - Ingen + Ingen None details report (description) - Ingen + Ingen @@ -1294,146 +1294,146 @@ Name details report - Namn + Namn OS Type details report - Operativsystem + Operativsystem Base Memory details report - Basminne + Basminne <nobr>%1 MB</nobr> details report - <nobr>%1 MB</nobr> + <nobr>%1 MB</nobr> Processors details report - Processorer + Processorer <nobr>%1</nobr> details report - <nobr>%1</nobr> + <nobr>%1</nobr> Boot Order details report - Uppstartsordning + Uppstartsordning ACPI details report - ACPI + ACPI IO APIC details report - IO APIC + IO APIC BIOS details report - BIOS + BIOS VT-x/AMD-V details report - VT-x/AMD-V + VT-x/AMD-V Nested Paging details report - Nested Paging + Nested Paging PAE/NX details report - PAE/NX + PAE/NX Acceleration details report - Acceleration + Acceleration Video Memory details report - Grafikminne + Grafikminne Screens details report - Skärmar + Skärmar 2D Video details report - 2D-video + 2D-video 3D details report - 3D + 3D Remote Desktop Server Port details report (VRDE Server) - Port för fjärrskrivbordsserver + Port för fjärrskrivbordsserver Remote Desktop Server details report (VRDE Server) - Fjärrskrivbordsserver + Fjärrskrivbordsserver Disabled details report (VRDE Server) - Inaktiverad + Inaktiverad (CD/DVD) - (CD/DVD) + (CD/DVD) Not Attached details report (Storage) - Inte ansluten + Inte ansluten Host Driver details report (audio) - Värddrivrutin + Värddrivrutin Controller details report (audio) - Styrkort + Styrkort Disabled details report (audio) - Inaktiverad + Inaktiverad Bridged adapter, %1 details report (network) - Bryggat kort, %1 + Bryggat kort, %1 Internal network, '%1' details report (network) - Internt nätverk, "%1" + Internt nätverk, "%1" Host-only adapter, '%1' details report (network) - Endast värd-kort, "%1" + Endast värd-kort, "%1" VDE network, '%1' @@ -1443,62 +1443,62 @@ Adapter %1 details report (network) - Adapter %1 + Adapter %1 Disabled details report (network) - Inaktiverat + Inaktiverat Port %1 details report (serial ports) - Port %1 + Port %1 Disabled details report (serial ports) - Inaktiverad + Inaktiverad Port %1 details report (parallel ports) - Port %1 + Port %1 Disabled details report (parallel ports) - Inaktiverad + Inaktiverad Device Filters details report (USB) - Enhetsfilter + Enhetsfilter %1 (%2 active) details report (USB) - %1 (%2 aktiv) + %1 (%2 aktiv) Disabled details report (USB) - Inaktiverad + Inaktiverad Shared Folders details report (shared folders) - Delade mappar + Delade mappar None details report (shared folders) - Inga + Inga None details report (description) - Ingen + Ingen The selected virtual machine is <i>inaccessible</i>. Please inspect the error message shown below and press the <b>Refresh</b> button if you want to repeat the accessibility check: @@ -1567,22 +1567,22 @@ Execution Cap details report - Exekveringsgräns + Exekveringsgräns <nobr>%1%</nobr> details report - <nobr>%1%</nobr> + <nobr>%1%</nobr> Generic driver, '%1' details report (network) - Allmän drivrutin, "%1" + Allmän drivrutin, "%1" Generic driver, '%1' {&nbsp;%2&nbsp;} details report (network) - Allmän drivrutin, "%1" {&nbsp;%2&nbsp;} + Allmän drivrutin, "%1" {&nbsp;%2&nbsp;} @@ -1625,11 +1625,11 @@ Looking for %1... - Letar efter %1... + Letar efter %1... Downloading %1... - Hämtar %1... + Hämtar %1... @@ -1656,7 +1656,7 @@ VirtualBox Guest Additions - VirtualBox Gästtillägg + VirtualBox Gästtillägg @@ -1667,7 +1667,7 @@ VirtualBox Extension Pack - VirtualBox tilläggspaket + VirtualBox tilläggspaket @@ -1678,7 +1678,7 @@ VirtualBox User Manual - Handbok för VirtualBox + Handbok för VirtualBox @@ -2238,50 +2238,50 @@ UIGlobalSettingsDisplay Maximum Guest Screen &Size: - Maximal storlek för gästs&kärm: + Maximal storlek för gästs&kärm: &Width: - &Bredd: + &Bredd: Specifies the maximum width which we would like the guest to use. - Anger maximal bredd som vi vill använda för gästskärmen. + Anger maximal bredd som vi vill använda för gästskärmen. &Height: - &Höjd: + &Höjd: Specifies the maximum height which we would like the guest to use. - Anger maximal höjd som vi vill använda för gästskärmen. + Anger maximal höjd som vi vill använda för gästskärmen. Automatic Maximum Guest Screen Size - Automatiskt + Automatiskt Suggest a reasonable maximum screen size to the guest. The guest will only see this suggestion when guest additions are installed. - Föreslå en rimlig maximal skärmstorlek för gästen. Gästen kommer endast att se detta förslag när gästtillägg har installerats. + Föreslå en rimlig maximal skärmstorlek för gästen. Gästen kommer endast att se detta förslag när gästtillägg har installerats. None Maximum Guest Screen Size - Ingen + Ingen Do not attempt to limit the size of the guest screen. - Försök inte att begränsa storleken för gästskärmen. + Försök inte att begränsa storleken för gästskärmen. Hint Maximum Guest Screen Size - Tips + Tips Suggest a maximum screen size to the guest. The guest will only see this suggestion when guest additions are installed. - Föreslå en maximal skärmstorlek för gästen. Gästen kommer endast att se detta förslag när gästtillägg har installerats. + Föreslå en maximal skärmstorlek för gästen. Gästen kommer endast att se detta förslag när gästtillägg har installerats. @@ -3322,7 +3322,7 @@ Select a filename for the screenshot ... - Välj ett filnamn för skärmbilden ... + Välj ett filnamn för skärmbilden ... @@ -5635,7 +5635,7 @@ <p>Failed to download the VirtualBox Guest Additions CD image from <nobr><a href="%1">%2</a>.</nobr></p><p>%3</p> - <p>Misslyckades med att hämta ner cd-avbildningen för VirtualBox Gästtillägg från <nobr><a href="%1">%2</a>.</nobr></p><p>%3</p> + <p>Misslyckades med att hämta ner cd-avbildningen för VirtualBox Gästtillägg från <nobr><a href="%1">%2</a>.</nobr></p><p>%3</p> <p>Are you sure you want to download the VirtualBox Guest Additions CD image from <nobr><a href="%1">%2</a></nobr> (size %3 bytes)?</p> @@ -6029,7 +6029,7 @@ <p>Unable to obtain the new version information due to the following error:</p><p><b>%1</b></p> - <p>Kunde inte hämta information om ny version på grund av följande fel:</p><p><b>%1</b></p> + <p>Kunde inte hämta information om ny version på grund av följande fel:</p><p><b>%1</b></p> <p>One or more virtual hard disks, CD/DVD or floppy media are not currently accessible. As a result, you will not be able to operate virtual machines that use these media until they become accessible later.</p><p>Press <b>Check</b> to open the Virtual Media Manager window and see what media are inaccessible, or press <b>Ignore</b> to ignore this message.</p> @@ -6392,7 +6392,7 @@ <p>Failed to download the VirtualBox User Manual from <nobr><a href="%1">%2</a>.</nobr></p><p>%3</p> - <p>Misslyckades med att hämta användarhandboken för VirtualBox från <nobr><a href="%1">%2</a>.</nobr></p><p>%3</p> + <p>Misslyckades med att hämta användarhandboken för VirtualBox från <nobr><a href="%1">%2</a>.</nobr></p><p>%3</p> <p>The VirtualBox User Manual has been successfully downloaded from <nobr><a href="%1">%2</a></nobr> and saved locally as <nobr><b>%3</b>.</nobr></p> @@ -6412,11 +6412,11 @@ <p>You are about to remove the virtual machine <b>%1</b> from the machine list.</p><p>Would you like to delete the files containing the virtual machine from your hard disk as well?</p> - <p>Du är på väg att ta bort den virtuella maskinen <b>%1</b> från maskinlistan.</p><p>Vill du även ta bort filerna som innehåller den virtuella maskinen från din hårddisk?</p> + <p>Du är på väg att ta bort den virtuella maskinen <b>%1</b> från maskinlistan.</p><p>Vill du även ta bort filerna som innehåller den virtuella maskinen från din hårddisk?</p> <p>You are about to remove the virtual machine <b>%1</b> from the machine list.</p><p>Would you like to delete the files containing the virtual machine from your hard disk as well? Doing this will also remove the files containing the machine's virtual hard disks if they are not in use by another machine.</p> - <p>Du är på väg att ta bort den virtuella maskinen <b>%1</b> från maskinlistan.</p><p>Vill du även ta bort filerna som innehåller den virtuella maskinen från din hårddisk? Om du gör det så kommer även filerna som innehåller maskinens virtuella hårddiskar att tas bort såvida de inte används av någon annan maskin.</p> + <p>Du är på väg att ta bort den virtuella maskinen <b>%1</b> från maskinlistan.</p><p>Vill du även ta bort filerna som innehåller den virtuella maskinen från din hårddisk? Om du gör det så kommer även filerna som innehåller maskinens virtuella hårddiskar att tas bort såvida de inte används av någon annan maskin.</p> Delete all files @@ -6428,7 +6428,7 @@ You are about to remove the inaccessible virtual machine <b>%1</b> from the machine list. Do you wish to proceed? - Du är på väg att ta bort den oåtkomliga virtuella maskinen <b>%1</b> från maskinlistan. Vill du fortsätta? + Du är på väg att ta bort den oåtkomliga virtuella maskinen <b>%1</b> från maskinlistan. Vill du fortsätta? Remove @@ -6479,8 +6479,8 @@ Misslyckades med att koppla från diskettenheten (<nobr><b>%1</b></nobr>) från platsen <i>%2</i> för maskinen <b>%3</b>. - <p>The virtual machine(s) <b>%1</b> are currently in a saved state.</p><p>If you continue the runtime state of the exported machine(s) will be discarded. Note that the existing machine(s) are not changed.</p> - + <p>The %n following virtual machine(s) are currently in a saved state: <b>%1</b></p><p>If you continue the runtime state of the exported machine(s) will be discarded. The other machine(s) will not be changed.</p> + <p>Virtuella maskinen <b>%1</b> befinner sig i ett sparat tillstånd.</p><p>Om du fortsätter så kommer körtidstillståndet för de exporterade maskinerna att förkastas. Observera att de befintliga maskinerna inte kommer att ändras.</p> <p>Virtuella maskinerna <b>%1</b> befinner sig i ett sparat tillstånd.</p><p>Om du fortsätter så kommer körtidstillståndet för de exporterade maskinerna att förkastas. Observera att de befintliga maskinerna inte kommer att ändras.</p> @@ -6714,23 +6714,23 @@ Network Operations Manager... - Hanterare för nätverksåtgärder... + Hanterare för nätverksåtgärder... Show Network Operations Manager - Visa Hanterare för nätverksåtgärder + Visa Hanterare för nätverksåtgärder <p>You are about to remove following inaccessible virtual machines from the machine list:</p><p>%1</p><p>Do you wish to proceed?</p> - <p>Du är på väg att ta bort följande oåtkomliga virtuella maskiner från maskinlistan:</p><p>%1</p><p>Vill du fortsätta?</p> + <p>Du är på väg att ta bort följande oåtkomliga virtuella maskiner från maskinlistan:</p><p>%1</p><p>Vill du fortsätta?</p> <p>You are about to remove following virtual machines from the machine list:</p><p>%1</p><p>Would you like to delete the files containing the virtual machine from your hard disk as well? Doing this will also remove the files containing the machine's virtual hard disks if they are not in use by another machine.</p> - <p>Du är på väg att ta bort följande virtuella maskiner från maskinlistan:</p><p>%1</p><p>Vill du även ta bort filerna som innehåller den virtuella maskinen från din hårddisk? Genom att göra det så tas även filerna bort som innehåller maskinens virtuella hårddiskar, om de inte används av en annan maskin.</p> + <p>Du är på väg att ta bort följande virtuella maskiner från maskinlistan:</p><p>%1</p><p>Vill du även ta bort filerna som innehåller den virtuella maskinen från din hårddisk? Genom att göra det så tas även filerna bort som innehåller maskinens virtuella hårddiskar, om de inte används av en annan maskin.</p> <p>You are about to remove following virtual machines from the machine list:</p><p>%1</p><p>Would you like to delete the files containing the virtual machine from your hard disk as well?</p> - <p>Du är på väg att ta bort följande virtuella maskiner från maskinlistan:</p><p>%1</p><p>Vill du även ta bort filerna som innehåller den virtuella maskinen från din hårddisk?</p> + <p>Du är på väg att ta bort följande virtuella maskiner från maskinlistan:</p><p>%1</p><p>Vill du även ta bort filerna som innehåller den virtuella maskinen från din hårddisk?</p> <p>You have version %1 of the <b><nobr>%2</nobr></b> installed.</p><p>You should download and install version %3 of this extension pack from Oracle!</p> @@ -6743,41 +6743,57 @@ Do you wish to cancel all current network operations? - Vill du avbryta alla aktuella nätverksåtgärder? + Vill du avbryta alla aktuella nätverksåtgärder? Do you wish to cancel all current network operations or leave them running in the background? - Vill du avbryta alla aktuella nätverksåtgärder eller lämna dem körande i bakgrunden? + Vill du avbryta alla aktuella nätverksåtgärder eller lämna dem körande i bakgrunden? Cancel All - Avbryt alla + Avbryt alla Leave in Background - Lämna i bakgrunden + Lämna i bakgrunden <p>Do you really want to send an ACPI shutdown signal to the virtual machine?</p> - <p>Vill du verkligen skicka en ACPI Stäng av-signal till den virtuella maskinen?</p> + <p>Vill du verkligen skicka en ACPI Stäng av-signal till den virtuella maskinen?</p> ACPI Shutdown machine - ACPI Stäng av + ACPI Stäng av <p>Do you really want to power off the virtual machine?</p><p>This will cause any unsaved data in applications running inside it to be lost.</p> - <p>Vill du verkligen stänga av den virtuella maskinen?</p><p>Detta gör att allt osparat data i program som körs inuti den kommer att gå förlorat.</p> + <p>Vill du verkligen stänga av den virtuella maskinen?</p><p>Detta gör att allt osparat data i program som körs inuti den kommer att gå förlorat.</p> Power Off machine - Stäng av + Stäng av Failed to drop data. - Misslyckades med att släppa data. + Misslyckades med att släppa data. + + + <p>Failed to download the <b><nobr>%1</nobr></b> from <nobr><a href="%2">%2</a>.</nobr></p><p>%3</p> + + + + <p>Failed to initialize COM because the VirtualBox global configuration directory <b><nobr>%1</nobr></b> is not accessible. Please check the permissions of this directory and of its parent directory.</p><p>The application will now terminate.</p> + + + + <p>The %n following virtual machine(s) are currently in a saved state: <b>%1</b></p><p>If you continue the runtime state of the exported machine(s) will be discarded. The other machine(s) will not be changed.</p> + This text is never used with n == 0. Feel free to drop the %n where possible, we only included it because of problems with Qt Linguist (but the user can see how many machines are in the list and doesn't need to be told). + + <p>Virtuella maskinen <b>%1</b> befinner sig i ett sparat tillstånd.</p><p>Om du fortsätter så kommer körtidstillståndet för de exporterade maskinerna att förkastas. Observera att de befintliga maskinerna inte kommer att ändras.</p> + <p>Virtuella maskinerna <b>%1</b> befinner sig i ett sparat tillstånd.</p><p>Om du fortsätter så kommer körtidstillståndet för de exporterade maskinerna att förkastas. Observera att de befintliga maskinerna inte kommer att ändras.</p> + @@ -6851,35 +6867,35 @@ UINetworkManager Network Operation - Nätverksåtgärd + Nätverksåtgärd Restart network operation - Starta om nätverksåtgärd + Starta om nätverksåtgärd Cancel network operation - Avbryt nätverksåtgärd + Avbryt nätverksåtgärd Error: %1. - Fel: %1. + Fel: %1. Network Operations Manager - Hanterare för nätverksåtgärder + Hanterare för nätverksåtgärder There are no active network operations. - Det finns inga aktiva nätverksåtgärder. + Det finns inga aktiva nätverksåtgärder. &Cancel All - A&vbryt alla + A&vbryt alla Cancel all active network operations - Avbryt alla aktiva nätverksåtgärder + Avbryt alla aktiva nätverksåtgärder @@ -7115,7 +7131,7 @@ <p>A <b>dynamically allocated</b> virtual disk file will only use space on your physical hard disk as it fills up (up to a <b>fixed maximum size</b>), although it will not shrink again automatically when space on it is freed.</p> - <p>En <b>dynamiskt allokerad</b> virtuell diskfil kommer endast att använda utrymme på din fysiska hårddisk när den fylls upp (upp till en <b>fast maximal storlek</b>), dock kommer den inte att minska automatiskt när utrymme frigörs.</p> + <p>En <b>dynamiskt allokerad</b> virtuell diskfil kommer endast att använda utrymme på din fysiska hårddisk när den fylls upp (upp till en <b>fast maximal storlek</b>), dock kommer den inte att minska automatiskt när utrymme frigörs.</p> <p>A <b>fixed size</b> virtual disk file may take longer to create on some systems but is often faster to use.</p> @@ -7199,6 +7215,10 @@ &QCOW (QEMU Copy-On-Write) &QCOW (QEMU Copy-On-Write) + + <p>A <b>dynamically allocated</b> virtual disk file will only use space on your physical hard disk as it fills up, although it will not shrink again automatically when space on it is freed.</p> + + UINewHDWizardPageFormat @@ -7758,28 +7778,28 @@ UISelectorWindow Show Toolbar - Visa verktygsrad + Visa verktygsrad Show Statusbar - Visa statusrad + Visa statusrad Select a virtual machine file - Välj en virtuell maskin-fil + Välj en virtuell maskin-fil Virtual machine files (%1) - Virtuella maskin-filer (%1) + Virtuella maskin-filer (%1) <h3>Welcome to VirtualBox!</h3><p>The left part of this window is a list of all virtual machines on your computer. The list is empty now because you haven't created any virtual machines yet.<img src=:/welcome.png align=right/></p><p>In order to create a new virtual machine, press the <b>New</b> button in the main tool bar located at the top of the window.</p><p>You can press the <b>%1</b> key to get instant help, or visit <a href=http://www.virtualbox.org>www.virtualbox.org</a> for the latest information and news.</p> - <h3>Välkommen till VirtualBox!</h3><p>På den vänstra sidan av detta fönster finns en lista över alla virtuella maskiner på din dator. Listan är tom just nu därför att du inte har skapat några virtuella maskiner än.<img src=:/welcome.png align=right/></p><p>Tryck på knappen <b>Ny</b> i huvudverktygsraden i överkanten av fönstret för att skapa en ny virtuell maskin.</p><p>Du kan trycka på tangenten <b>%1</b> för att få hjälp eller besöka <a href=http://www.virtualbox.org>www.virtualbox.org</a> för senaste information och nyheter.</p> + <h3>Välkommen till VirtualBox!</h3><p>På den vänstra sidan av detta fönster finns en lista över alla virtuella maskiner på din dator. Listan är tom just nu därför att du inte har skapat några virtuella maskiner än.<img src=:/welcome.png align=right/></p><p>Tryck på knappen <b>Ny</b> i huvudverktygsraden i överkanten av fönstret för att skapa en ny virtuell maskin.</p><p>Du kan trycka på tangenten <b>%1</b> för att få hjälp eller besöka <a href=http://www.virtualbox.org>www.virtualbox.org</a> för senaste information och nyheter.</p> Manager Note: main window title which is pretended by the product name. - Hanterare + Hanterare @@ -7852,7 +7872,7 @@ Display - Skärm + Skärm @@ -8060,7 +8080,7 @@ UIUpdateStepVirtualBox Checking for a new VirtualBox version... - Letar efter en ny version av VirtualBox... + Letar efter en ny version av VirtualBox... @@ -8178,67 +8198,67 @@ &Save - S&para + S&para &Refresh - &Uppdatera + &Uppdatera %1 - VirtualBox Log Viewer - %1 - VirtualBox loggvisare + %1 - VirtualBox loggvisare <p>No log files found. Press the <b>Refresh</b> button to rescan the log folder <nobr><b>%1</b></nobr>.</p> - <p>Inga loggfiler hittades. Tryck på knappen <b>Uppdatera</b> för att söka igenom loggmappen <nobr><b>%1</b></nobr> igen.</p> + <p>Inga loggfiler hittades. Tryck på knappen <b>Uppdatera</b> för att söka igenom loggmappen <nobr><b>%1</b></nobr> igen.</p> Save VirtualBox Log As - Spara VirtualBox-logg som + Spara VirtualBox-logg som &Find - &Sök + &Sök Close - Stäng + Stäng Close the search panel - Stäng sökpanelen + Stäng sökpanelen Enter a search string here - Ange en söksträng här + Ange en söksträng här &Previous - &Föregående + &Föregående Search for the previous occurrence of the string - Sök efter föregående förekomst av strängen + Sök efter föregående förekomst av strängen &Next - &Nästa + &Nästa Search for the next occurrence of the string - Sök efter nästa förekomst av strängen + Sök efter nästa förekomst av strängen C&ase Sensitive - Skiftläges&känslig + Skiftläges&känslig Perform case sensitive search (when checked) - Genomför skiftlägeskänslig sökning (om kryssad) + Genomför skiftlägeskänslig sökning (om kryssad) String not found - Strängen hittades inte + Strängen hittades inte @@ -10619,7 +10639,7 @@ and - och + och MB @@ -10734,6 +10754,49 @@ + VBoxLogSearchPanel + + Close the search panel + Stäng sökpanelen + + + Find + + + + Enter a search string here + Ange en söksträng här + + + &Previous + &Föregående + + + Search for the previous occurrence of the string + Sök efter föregående förekomst av strängen + + + &Next + &Nästa + + + Search for the next occurrence of the string + Sök efter nästa förekomst av strängen + + + C&ase Sensitive + Skiftläges&känslig + + + Perform case sensitive search (when checked) + Genomför skiftlägeskänslig sökning (om kryssad) + + + String not found + Strängen hittades inte + + + VBoxMediaComboBox <no hard disk> @@ -11200,11 +11263,11 @@ &Settings... - &Inställningar... + &Inställningar... Configure the selected virtual machine - Konfigurera den markerade virtuella maskinen + Konfigurera den markerade virtuella maskinen &Delete @@ -11244,7 +11307,7 @@ &Machine - &Maskin + &Maskin R&esume @@ -11252,24 +11315,24 @@ Resume the execution of the virtual machine - Återuppta körningen av den virtuella maskinen + Återuppta körningen av den virtuella maskinen &Pause - Gör &paus + Gör &paus Suspend the execution of the virtual machine - Pausa körningen av den virtuella maskinen + Pausa körningen av den virtuella maskinen <h3>Welcome to VirtualBox!</h3><p>The left part of this window is a list of all virtual machines on your computer. The list is empty now because you haven't created any virtual machines yet.<img src=:/welcome.png align=right/></p><p>In order to create a new virtual machine, press the <b>New</b> button in the main tool bar located at the top of the window.</p><p>You can press the <b>%1</b> key to get instant help, or visit <a href=http://www.virtualbox.org>www.virtualbox.org</a> for the latest information and news.</p> - <h3>Välkommen till VirtualBox!</h3><p>Den vänstra sidan av detta fönster är tänkt att visa en lista över alla virtuella maskiner på din dator. Listan är tom just nu därför att du inte har skapat några virtuella maskiner än.<img src=:/welcome.png align=right/></p><p>Tryck på knappen <b>Ny</b> i huvudverktygsraden i överkanten av fönstret för att skapa en ny virtuell maskin.</p><p>Du kan trycka på tangenten <b>%1</b> för att få hjälp eller besöka <a href=http://www.virtualbox.org>www.virtualbox.org</a> för senaste information och nyheter.</p> + <h3>Välkommen till VirtualBox!</h3><p>Den vänstra sidan av detta fönster är tänkt att visa en lista över alla virtuella maskiner på din dator. Listan är tom just nu därför att du inte har skapat några virtuella maskiner än.<img src=:/welcome.png align=right/></p><p>Tryck på knappen <b>Ny</b> i huvudverktygsraden i överkanten av fönstret för att skapa en ny virtuell maskin.</p><p>Du kan trycka på tangenten <b>%1</b> för att få hjälp eller besöka <a href=http://www.virtualbox.org>www.virtualbox.org</a> för senaste information och nyheter.</p> Log icon text - Logg + Logg Sun VirtualBox @@ -11277,24 +11340,191 @@ Select a virtual machine file - Välj en virtuell maskin-fil + Välj en virtuell maskin-fil Virtual machine files (%1) - Virtuella maskin-filer (%1) + Virtuella maskin-filer (%1) Manager Note: main window title which is pretended by the product name. - Hanterare + Hanterare Show Toolbar - Visa verktygsrad + Visa verktygsrad Show Statusbar - Visa statusrad + Visa statusrad + + + &Virtual Media Manager... + Hanterare för virtuella &media... + + + Display the Virtual Media Manager dialog + Visa Hanterare för virtuella media + + + &Import Appliance... + &Importera appliance... + + + Import an appliance into VirtualBox + Importera en appliance till VirtualBox + + + &Export Appliance... + &Exportera appliance... + + + Export one or more VirtualBox virtual machines as an appliance + Exportera en appliance från virtuella maskiner från VirtualBox + + + &Preferences... + global settings + &Inställningar... + + + Display the global settings dialog + Visa allmänna inställningar + + + E&xit + A&vsluta + + + Close application + Stäng programmet + + + &New... + &Ny... + + + Create a new virtual machine + Skapa en ny virtuell maskin + + + &Add... + &Lägg till... + + + Add an existing virtual machine + Lägg till en befintlig virtuell maskin + + + Cl&one... + Kl&ona... + + + Clone the selected virtual machine + Klona den markerade virtuella maskinen + + + &Remove + &Ta bort + + + Remove the selected virtual machine + Ta bort markerad virtuell maskin + + + Discard + Förkasta + + + D&iscard Saved State + För&kasta sparat tillstånd + + + Discard the saved state of the selected virtual machine + Förkasta det sparade tillståndet för den markerade virtuella maskinen + + + Re&fresh + &Uppdatera + + + Refresh the accessibility state of the selected virtual machine + Uppdatera tillgänglighetstillståndet för den markerade virtuella maskinen + + + Show &Log... + Visa lo&gg... + + + Show the log files of the selected virtual machine + Visa loggfilerna för den markerade virtuella maskinen + + + Show in Finder + Visa i Finder + + + Show the VirtualBox Machine Definition file in Finder. + Visa VirtualBox Machine Definition-fil i Finder. + + + Create Alias on Desktop + Skapa alias på skrivbordet + + + Creates an Alias file to the VirtualBox Machine Definition file on your Desktop. + Skapar en aliasfil till VirtualBox Machine Definition-filen på ditt skrivbord. + + + Show in Explorer + Visa i Utforskaren + + + Show the VirtualBox Machine Definition file in Explorer. + Visa VirtualBox Machine Definition-filen i Utforskaren. + + + Create Shortcut on Desktop + Skapa genväg på skrivbordet + + + Creates an Shortcut file to the VirtualBox Machine Definition file on your Desktop. + Skapar en genvägsfil till VirtualBox Machine Definition-filen på ditt skrivbord. + + + Show in File Manager + Visa i filhanterare + + + Show the VirtualBox Machine Definition file in the File Manager + Visa VirtualBox Machine Definition-filen i filhanteraren + + + &File + Mac OS X version + &Arkiv + + + &File + Non Mac OS X version + &Arkiv + + + S&tart + + + + Start the selected virtual machine + Starta den markerade virtuella maskinen + + + S&how + V&isa + + + Switch to the window of the selected virtual machine + Växla till fönstret för den markerade virtuella maskinen @@ -11766,6 +11996,41 @@ + VBoxVMLogViewer + + Log Viewer + Loggvisare + + + <p>No log files found. Press the <b>Refresh</b> button to rescan the log folder <nobr><b>%1</b></nobr>.</p> + <p>Inga loggfiler hittades. Tryck på knappen <b>Uppdatera</b> för att söka igenom loggmappen <nobr><b>%1</b></nobr> igen.</p> + + + Save VirtualBox Log As + Spara VirtualBox-logg som + + + %1 - VirtualBox Log Viewer + %1 - VirtualBox loggvisare + + + &Find + &Sök + + + &Refresh + &Uppdatera + + + &Save + + + + Close + Stäng + + + VBoxVMSettingsCD Host CD/DVD drive is not selected diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Frontends/VirtualBox/nls/VirtualBox_tr.ts virtualbox-4.1.44-dfsg/src/VBox/Frontends/VirtualBox/nls/VirtualBox_tr.ts --- virtualbox-4.1.12-dfsg/src/VBox/Frontends/VirtualBox/nls/VirtualBox_tr.ts 2012-04-02 13:28:40.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Frontends/VirtualBox/nls/VirtualBox_tr.ts 2015-11-11 15:08:28.000000000 +0000 @@ -5174,12 +5174,6 @@ Failed to detach the floppy device (<nobr><b>%1</b></nobr>) from the slot <i>%2</i> of the machine <b>%3</b>. - - <p>The virtual machine(s) <b>%1</b> are currently in a saved state.</p><p>If you continue the runtime state of the exported machine(s) will be discarded. Note that the existing machine(s) are not changed.</p> - - - - Failed to update Guest Additions. The Guest Additions installation image will be mounted to provide a manual installation. @@ -5408,6 +5402,17 @@ extension pack + + <p>Failed to initialize COM because the VirtualBox global configuration directory <b><nobr>%1</nobr></b> is not accessible. Please check the permissions of this directory and of its parent directory.</p><p>The application will now terminate.</p> + + + + <p>The %n following virtual machine(s) are currently in a saved state: <b>%1</b></p><p>If you continue the runtime state of the exported machine(s) will be discarded. The other machine(s) will not be changed.</p> + This text is never used with n == 0. Feel free to drop the %n where possible, we only included it because of problems with Qt Linguist (but the user can see how many machines are in the list and doesn't need to be told). + + + + UIMiniProcessWidgetAdditions @@ -9094,10 +9099,6 @@ - and - - - MB size suffix MBytes=1024KBytes MB diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Frontends/VirtualBox/nls/VirtualBox_uk.ts virtualbox-4.1.44-dfsg/src/VBox/Frontends/VirtualBox/nls/VirtualBox_uk.ts --- virtualbox-4.1.12-dfsg/src/VBox/Frontends/VirtualBox/nls/VirtualBox_uk.ts 2012-04-02 13:28:40.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Frontends/VirtualBox/nls/VirtualBox_uk.ts 2015-11-11 15:08:28.000000000 +0000 @@ -108,7 +108,7 @@ The VirtualBox Linux kernel driver (vboxdrv) is either not loaded or there is a permission problem with /dev/vboxdrv. Please reinstall the kernel module by executing<br/><br/> <font color=blue>'/etc/init.d/vboxdrv setup'</font><br/><br/>as root. If it is available in your distribution, you should install the DKMS package first. This package keeps track of Linux kernel changes and recompiles the vboxdrv kernel module if necessary. - + Драйвер ядра VirtualBox для Linux (vboxdrv) або не завантажено, або проблема з доступом до /dev/vboxdrv. Перевстановіть модуль ядра, виконавши<br/><br/> <font color=blue>'/etc/init.d/vboxdrv setup'</font><br/><br/>з-під адміністратора, якщо це можливо у вашому дистрибутиві, споачтку слід установити пакунок DKMS. Цей пакунок слідкує за змінами у ядрі й перезбирує модуль ядра vboxdrv, якщо в цьому є потреба. @@ -539,6 +539,209 @@ Session I&nformation... &Інформація про сеанс… + + &File + Mac OS X version + &Файл + + + &File + Non Mac OS X version + &Файл + + + &Virtual Media Manager... + &Керування віртуальними носіями... + + + Display the Virtual Media Manager dialog + Показати вікно керування віртуального носія + + + &Import Appliance... + &Імпортувати образу віртуальної машини… + + + Import an appliance into VirtualBox + Імпортувати образу віртуальної машини у VirtualBox + + + &Export Appliance... + &Експортувати образу віртуальної машини… + + + Export one or more VirtualBox virtual machines as an appliance + Експортувати образу віртуальної машини з VirtualBox + + + &Preferences... + global settings + &Налаштування... + + + Display the global settings dialog + Показати вікно загальних налаштувань + + + E&xit + Ви&йти + + + Close application + Закрити програму + + + &New... + &Створити… + + + Create a new virtual machine + Створити нову віртуальну машину + + + &Add... + &Додати... + + + Add an existing virtual machine + Додати наявну віртуальну машину + + + Cl&one... + К&лонувати… + + + Clone the selected virtual machine + Клонувати вибрану віртуальну машину + + + &Remove + &Вилучити + + + Remove the selected virtual machine + Вилучити вибрану віртуальну машину + + + S&tart + З&апуск + + + Start the selected virtual machine + Запустити вибрану віртуальну машину + + + S&how + По&казати + + + Switch to the window of the selected virtual machine + Перемкнутись до вікна вибраної віртуальної машини + + + Discard + Відкинути + + + D&iscard Saved State + Ві&дкинути збережений стан + + + Discard the saved state of the selected virtual machine + Відкинути збережений стан вибраної віртуальної машини + + + Re&fresh + &Оновити + + + Refresh the accessibility state of the selected virtual machine + Оновити доступність стану вибраної віртуальної машини + + + Show &Log... + Показати &журнал... + + + Show the log files of the selected virtual machine + Показати файли журналу вибраної віртуальної машини + + + Show in Finder + Показувати в пошуку + + + Show the VirtualBox Machine Definition file in Finder. + Показати значення файла віртуальної машини в пошуку. + + + Show in Explorer + Показувати в переглядачі + + + Show the VirtualBox Machine Definition file in Explorer. + Показати визначення файла віртуальної машин у переглядачі. + + + Show in File Manager + Показувати у файловому менеджері + + + Show the VirtualBox Machine Definition file in the File Manager + Показувати визначення файла віртуальної машин у файловому менеджері + + + Create Alias on Desktop + Створити назву на стільниці + + + Creates an Alias file to the VirtualBox Machine Definition file on your Desktop. + Створює назву файла для визначення файла віртуальної машини на стільниці. + + + Create Shortcut on Desktop + Створити скорочення на стільниці + + + Creates an Shortcut file to the VirtualBox Machine Definition file on your Desktop. + Створює файл скорочення визначення файла віртуальної машин на стільниці. + + + Take Sn&apshot... + Зробити з&різ… + + + Take Screensh&ot... + Зробити З&німок… + + + Take a screenshot of the virtual machine + Зробити знімок віртуальної машини + + + Ins&ert Ctrl-Alt-Backspace + Вс&тавити Ctrl-Alt-Backspace + + + Sort List + Упорядкувати список + + + Sort the VM list alphabetically (Shift for descending order) + Упорядкувати список машин за алфавітом (Shift для спадного порядку) + + + &Close + &Закрити + + + Po&wer Off + &Вимкнути + + + Power off the virtual machine + Вимкнути віртуальну машину + UIApplianceEditorWidget @@ -828,6 +1031,238 @@ + UIDetailsBlock + + Name + details report + Назва + + + OS Type + details report + Тип операційної системи + + + Information inaccessible + details report + Інформація недоступна + + + Base Memory + details report + Основна пам'ять + + + <nobr>%1 MB</nobr> + details report + <nobr>%1 МБ</nobr> + + + Processors + details report + Процесори + + + <nobr>%1</nobr> + details report + <nobr>%1</nobr> + + + Execution Cap + details report + Виконавча шапка + + + <nobr>%1%</nobr> + details report + <nobr>%1%</nobr> + + + Boot Order + details report + Порядок завантаження + + + ACPI + details report + ACPI + + + IO APIC + details report + APIC В/В + + + BIOS + details report + BIOS + + + VT-x/AMD-V + details report + VT-x/AMD-V + + + Nested Paging + details report + Вкладене заміщення сторінок + + + PAE/NX + details report + PAE/NX + + + Acceleration + details report + Прискорення + + + Video Memory + details report + Відеопам'ять + + + Screens + details report + Екрани + + + 2D Video + details report + Двовимірне відео + + + 3D + details report + Просторове + + + Remote Desktop Server Port + details report (VRDE Server) + Порт віддаленого стільничного сервера + + + Remote Desktop Server + details report (VRDE Server) + Віддалений стільничний сервер + + + Disabled + details report (VRDE Server) + Вимкнено + + + (CD/DVD) + (CD/DVD) + + + Not Attached + details report (Storage) + Не під'єднано + + + Host Driver + details report (audio) + Головний драйвер + + + Controller + details report (audio) + Контролер + + + Disabled + details report (audio) + Вимкнено + + + Bridged adapter, %1 + details report (network) + Проміжний адаптер, %1 + + + Internal network, '%1' + details report (network) + Внутрішня мережа, «%1» + + + Host-only adapter, '%1' + details report (network) + Лише головний адаптер, «%1» + + + Generic driver, '%1' + details report (network) + Загальний драйвер, «%1» + + + Generic driver, '%1' {&nbsp;%2&nbsp;} + details report (network) + Загальний драйвер, «%1» {&nbsp;%2&nbsp;} + + + Adapter %1 + details report (network) + Адаптер %1 + + + Disabled + details report (network) + Вимкнено + + + Port %1 + details report (serial ports) + Порт %1 + + + Disabled + details report (serial ports) + Вимкнено + + + Port %1 + details report (parallel ports) + Порт %1 + + + Disabled + details report (parallel ports) + Вимкнено + + + Device Filters + details report (USB) + Фільтр пристроїв + + + %1 (%2 active) + details report (USB) + %1 (%2 активно) + + + Disabled + details report (USB) + Вимкнено + + + Shared Folders + details report (shared folders) + Спільні теки + + + None + details report (shared folders) + Немає + + + None + details report (description) + Немає + + + UIDetailsPagePrivate Name @@ -1133,6 +1568,14 @@ The download process has been canceled by the user. Звантаження скасовано користувачем. + + Looking for %1... + Пошук %1… + + + Downloading %1... + Звантаження %1… + UIDownloaderAdditions @@ -1156,6 +1599,10 @@ Select folder to save Guest Additions image to Вибрати теку, щоб зберегти образ гостьових доповнень + + VirtualBox Guest Additions + Гостьові доповнення VirtualBox + UIDownloaderExtensionPack @@ -1163,6 +1610,10 @@ Select folder to save %1 to Вибрати теку для збереженя в неї %1 + + VirtualBox Extension Pack + Пакунок розширень VirtualBox + UIDownloaderUserManual @@ -1170,6 +1621,10 @@ Select folder to save User Manual to Виберіть теку для збереження посібника користувача + + VirtualBox User Manual + Посібник користувача VirtualBox + UIExportApplianceWzd @@ -1716,6 +2171,52 @@ + UIGlobalSettingsDisplay + + Maximum Guest Screen &Size: + Максимальний &розмір гостьового екрана: + + + &Width: + &Ширина: + + + &Height: + &Висота: + + + Specifies the maximum height which we would like the guest to use. + Вказує максимальну висоту, яку слід використоувати у гостьовій системі. + + + Automatic + Maximum Guest Screen Size + Автоматично + + + Suggest a reasonable maximum screen size to the guest. The guest will only see this suggestion when guest additions are installed. + Радить поміркований максимальний розмір для гостьового екрана. Це можна побачити лише, коли встановлено гостьові доповнення. + + + None + Maximum Guest Screen Size + Немає + + + Do not attempt to limit the size of the guest screen. + Не намагатись обмежити розмір гостьового екрана. + + + Hint + Maximum Guest Screen Size + Натяк + + + Suggest a maximum screen size to the guest. The guest will only see this suggestion when guest additions are installed. + Радить максимальний розмір для гостьового екрана. Це можна побачити лише, коли встановлено гостьові доповнення. + + + UIGlobalSettingsExtension &Extension Packages: @@ -2747,6 +3248,10 @@ No supported devices connected to the host PC Нема підтримки пристроїв, які під'єднанні до головного комп'ютера + + Select a filename for the screenshot ... + Вибрати назву для файла змінку… + UIMachineSettingsAudio @@ -2899,7 +3404,7 @@ you enabled 3D acceleration. However, 3D acceleration is not working on the current host setup so you will not be able to start the VM. - + ви ввімкнули просторове прискорення. Однак, воно не працює на цих параметрах комп'ютера, тож неможливо запустити віртуальну машину. @@ -5188,7 +5693,7 @@ <p>Unable to obtain the new version information due to the following error:</p><p><b>%1</b></p> - <p>Неможливо отримати нову інформацію про версію через таку помилку:</p><p><b>%1</b></p> + <p>Неможливо одержати нову інформацію про версію через таку помилку:</p><p><b>%1</b></p> <p>One or more virtual hard disks, CD/DVD or floppy media are not currently accessible. As a result, you will not be able to operate virtual machines that use these media until they become accessible later.</p><p>Press <b>Check</b> to open the Virtual Media Manager window and see what media are inaccessible, or press <b>Ignore</b> to ignore this message.</p> @@ -5567,11 +6072,11 @@ <p>You are about to remove the virtual machine <b>%1</b> from the machine list.</p><p>Would you like to delete the files containing the virtual machine from your hard disk as well?</p> - <p>Ви збираєтесь вилучити віртуальну машину <b>%1</b> зі списку.</p><p>Бажаєте вилучити файли, які містять віртуальну машину, з вашого жорсткого диска також?</p> + <p>Ви збираєтесь вилучити віртуальну машину <b>%1</b> зі списку.</p><p>Також вилучити файли, які містять віртуальну машину, з вашого жорсткого диска?</p> <p>You are about to remove the virtual machine <b>%1</b> from the machine list.</p><p>Would you like to delete the files containing the virtual machine from your hard disk as well? Doing this will also remove the files containing the machine's virtual hard disks if they are not in use by another machine.</p> - <p>Ви збираєтесь вилучити віртуальну машину <b>%1</b> зі списку.</p><p>Бажаєте вилучити файли, які містять віртуальну машину, з вашого жорсткого диска також? Це спричинить також вилучення файлів, які містять віртуальні жорсткі диски, якщо вони не використовується іншими машинами.</p> + <p>Ви збираєтесь вилучити віртуальну машину <b>%1</b> зі списку.</p><p>Також вилучити файли, які містять віртуальну машину, з вашого жорсткого диска? Це теж вилучить файли, які містять віртуальні жорсткі диски, якщо вони не використовується іншими машинами.</p> Delete all files @@ -5638,8 +6143,8 @@ <p>Гостьові доповнення VirtualBox не з'явились доступними на віртуальній машині, і без них неможливо використовувати спільні теки. Щоб використовувати їх усередині віртуальної машини, будь ласка, встановіть гостьові доповнення, якщо вони все ще не встановлені, або перевстановіть, якщо вони працюють некоректно, вибравши <b>Встановити гостьові доповнення</b> з меню <b>Машина</b>. Якщо вони встановлені, але машина поки що неповністю запущена, то потрібно зачекати поки вона запуститься до кінця.</p> - <p>The virtual machine(s) <b>%1</b> are currently in a saved state.</p><p>If you continue the runtime state of the exported machine(s) will be discarded. Note that the existing machine(s) are not changed.</p> - + <p>The %n following virtual machine(s) are currently in a saved state: <b>%1</b></p><p>If you continue the runtime state of the exported machine(s) will be discarded. The other machine(s) will not be changed.</p> + <p>Віртуальна машина <b>%1</b> у збереженому стані.</p><p>Якщо ви покинете цей стан, то експортування машини буде відкинуто. Майте на увазі, наявну машину не змінено.</p> <p>Віртуальні машини <b>%1</b> у збереженому стані.</p><p>Якщо ви покинете цей стан, то експортування машин буде відкинуто. Майте на увазі, наявні машини не змінено.</p> <p>Віртуальні машини <b>%1</b> у збереженому стані.</p><p>Якщо ви покинете цей стан, то експортування машин буде відкинуто. Майте на увазі, наявні машини не змінено.</p> @@ -5877,14 +6382,85 @@ <p>Не вдалось звантажити <b><nobr>%1</nobr></b> з <nobr><a href="%2">%2</a>.</nobr></p><p>%3</p> + Network Operations Manager... + Менеджер операцій мережі… + + + Show Network Operations Manager + Показати менеджера операцій мережі + + + <p>You are about to remove following inaccessible virtual machines from the machine list:</p><p>%1</p><p>Do you wish to proceed?</p> + <p>Ви намагаєтесь вилучити такі недоступні віртуальні машини зі списку машин:</p><p>%1</p><p>Продовжити?</p> + + + <p>You are about to remove following virtual machines from the machine list:</p><p>%1</p><p>Would you like to delete the files containing the virtual machine from your hard disk as well? Doing this will also remove the files containing the machine's virtual hard disks if they are not in use by another machine.</p> + <p>Ви намагаєтесь вилучити такі недоступні віртуальні машини зі списку машин:</p><p>%1</p><p>Також вилучити файли, що містять віртуальну машину, з жорсткого диска? Це теж вилучить файли, що містять жорсткі диски віртуальних машин, якщо вони не використовуються іншими машинами.</p> + + + <p>You are about to remove following virtual machines from the machine list:</p><p>%1</p><p>Would you like to delete the files containing the virtual machine from your hard disk as well?</p> + <p>Ви намагаєтесь вилучити такі недоступні віртуальні машини зі списку машин:</p><p>%1</p><p>Також вилучити файли, що містять віртуальну машину, з жорсткого диска?</p> + + <p>You have version %1 of the <b><nobr>%2</nobr></b> installed.</p><p>You should download and install version %3 of this extension pack from Oracle!</p> - + <p>Встановлено версію %1 <b><nobr>%2</nobr></b>.</p><p>Слід звантажити і встановити версію %3 пакунка розширень від Oracle!</p> Ok extension pack + Гаразд + + + Do you wish to cancel all current network operations? + Скасувати всі теперіші операції мережі? + + + Do you wish to cancel all current network operations or leave them running in the background? + Скасувати всі теперішні операції мережі чи залишити їх запущеними на тлі? + + + Cancel All + Скасувати все + + + Leave in Background + Залишити на тлі + + + <p>Do you really want to send an ACPI shutdown signal to the virtual machine?</p> + <p>Надіслати сигнал вимкнення ACPI віртуальній машині?</p> + + + ACPI Shutdown + machine + Вимкнення ACPI + + + <p>Do you really want to power off the virtual machine?</p><p>This will cause any unsaved data in applications running inside it to be lost.</p> + <p>Вимкнути віртуальну машину?</p><p>Усі незбережені дані в запущених програмах буде втрачено.</p> + + + Power Off + machine + Вимкнути + + + Failed to drop data. + Не вдалось відкинути дані. + + + <p>Failed to initialize COM because the VirtualBox global configuration directory <b><nobr>%1</nobr></b> is not accessible. Please check the permissions of this directory and of its parent directory.</p><p>The application will now terminate.</p> + + <p>The %n following virtual machine(s) are currently in a saved state: <b>%1</b></p><p>If you continue the runtime state of the exported machine(s) will be discarded. The other machine(s) will not be changed.</p> + This text is never used with n == 0. Feel free to drop the %n where possible, we only included it because of problems with Qt Linguist (but the user can see how many machines are in the list and doesn't need to be told). + + <p>Віртуальна машина <b>%1</b> у збереженому стані.</p><p>Якщо ви покинете цей стан, то експортування машини буде відкинуто. Майте на увазі, наявну машину не змінено.</p> + <p>Віртуальні машини <b>%1</b> у збереженому стані.</p><p>Якщо ви покинете цей стан, то експортування машин буде відкинуто. Майте на увазі, наявні машини не змінено.</p> + <p>Віртуальні машини <b>%1</b> у збереженому стані.</p><p>Якщо ви покинете цей стан, то експортування машин буде відкинуто. Майте на увазі, наявні машини не змінено.</p> + + UIMiniProcessWidgetAdditions @@ -5954,6 +6530,41 @@ + UINetworkManager + + Network Operation + Операції мережі + + + Restart network operation + Перезапустити операції мережі + + + Cancel network operation + Скасувати операції мережі + + + Error: %1. + Помилка: %1. + + + Network Operations Manager + Менеджер операцій мережі + + + There are no active network operations. + Немає запущених операцій мережі. + + + &Cancel All + &Скасувати все + + + Cancel all active network operations + Скасувати усі запущені операції мережі + + + UINewHDWizard Create New Virtual Disk @@ -6138,8 +6749,8 @@ Будь ласка, виберіть, чи файл нового віртуального диска повиннен визначатись, чи його слід створити повністю визначеним. - <p>A <b>dynamically allocated</b> virtual disk file will only use space on your physical hard disk as it fills up, although it will not shrink again automatically when space on it is freed.</p> - <p><b>Динамічно визначений</b> файл віртуального диска лише займає на фізичному жорсткому диску в міру його заповнення, хоча воно не зменшується назад автоматично, коли звільнилось місце.</p> + <p>A <b>dynamically allocated</b> virtual disk file will only use space on your physical hard disk as it fills up (up to a <b>fixed maximum size</b>), although it will not shrink again automatically when space on it is freed.</p> + <p><b>Динамічно визначений</b> файл віртуального диска лише займає на фізичному жорсткому диску в міру його заповнення, хоча воно не зменшується назад автоматично, коли звільнилось місце.</p> <p>A <b>fixed size</b> virtual disk file may take longer to create on some systems but is often faster to use.</p> @@ -6219,6 +6830,10 @@ &QCOW (QEMU Copy-On-Write) &QCOW (копія на запис QEMU) + + <p>A <b>dynamically allocated</b> virtual disk file will only use space on your physical hard disk as it fills up, although it will not shrink again automatically when space on it is freed.</p> + <p><b>Динамічно розміщений</b> файл віртуального диска буде використовувати простір тільки на вашому фізичному жорсткому диску.в міру його наповнення, хоча воно не щезне знову, якщо простір на ньому буде звільнено.</p> + UINewHDWizardPageFormat @@ -6750,6 +7365,34 @@ + UISelectorWindow + + Show Toolbar + Показувати панель інструментів + + + Show Statusbar + Показувати смужку стану + + + Select a virtual machine file + Вибрати файл віртуальної машини + + + Virtual machine files (%1) + Файли віртуальної машини (%1) + + + <h3>Welcome to VirtualBox!</h3><p>The left part of this window is a list of all virtual machines on your computer. The list is empty now because you haven't created any virtual machines yet.<img src=:/welcome.png align=right/></p><p>In order to create a new virtual machine, press the <b>New</b> button in the main tool bar located at the top of the window.</p><p>You can press the <b>%1</b> key to get instant help, or visit <a href=http://www.virtualbox.org>www.virtualbox.org</a> for the latest information and news.</p> + <h3>Ласкаво просимо до VirtualBox!</h3><p>У лівій частині цього вікна показується список віртуальних машин на вашому комп'ютері. Зараз список порожній, оскільки, поки що, ви не маєте створених віртуальних машин.<img src=:/welcome.png align=right/></p><p>Для того, щоб створити нову віртуальну машину, натисніть <b>Створити</b> в головному меню панелі інструментів, які розміщено зверху вікна.</p><p>Ви можете натиснути <b>%1</b>, щоб одержати миттєву довідку, або відвідайте <a href=http://www.virtualbox.org>www.virtualbox.org</a> щодо останніх новин.</p> + + + Manager + Note: main window title which is pretended by the product name. + Менеджер + + + UISession Install @@ -6817,6 +7460,10 @@ Proxy Проксі + + Display + Екран + UISettingsDialogMachine @@ -7004,6 +7651,13 @@ + UIUpdateStepVirtualBox + + Checking for a new VirtualBox version... + Перевіряння на нову версію VirtualBox… + + + UIVMCloseDialog Close Virtual Machine @@ -7111,6 +7765,77 @@ + UIVMLogViewer + + Log Viewer + Переглядач журналу + + + &Save + &Зберегти + + + &Refresh + &Оновити + + + %1 - VirtualBox Log Viewer + %1 — Переглядач журналу VirtualBox + + + <p>No log files found. Press the <b>Refresh</b> button to rescan the log folder <nobr><b>%1</b></nobr>.</p> + <p>Файли журналу не знайдені. Натисніть клавішу <b>Оновити</b> для повторного перегляду теки журналу <nobr><b>%1</b></nobr>.</p> + + + Save VirtualBox Log As + Зберегти журнал VirtualBox як + + + &Find + З&найти + + + Close + Закрити + + + Close the search panel + Закрити пошукову панель + + + Enter a search string here + Введіть пошуковий рядок сюди + + + &Previous + &Попередній + + + Search for the previous occurrence of the string + Шукати за попереднім екземпляром рядка + + + &Next + &Наступний + + + Search for the next occurrence of the string + Шукати за наступним екземпляром рядка + + + C&ase Sensitive + &Чутливий до змін + + + Perform case sensitive search (when checked) + Виконувати з чутливим до змін пошуком (коли стоїть мітка) + + + String not found + Рядок не знайдено + + + UIVMPreviewWindow Update Disabled @@ -9219,7 +9944,7 @@ and - і + і MB @@ -9341,7 +10066,7 @@ Find - Знайти + Знайти Enter a search string here @@ -9818,33 +10543,8 @@ &Подробиці - &Preferences... - global settings - &Налаштування... - - - Display the global settings dialog - Показати вікно загальних налаштувань - - - E&xit - Ви&йти - - - Close application - Закрити програму - - - &New... - &Створити… - - - Create a new virtual machine - Створити нову віртуальну машину - - &Settings... - &Параметри... + &Параметри… Configure the selected virtual machine @@ -9863,18 +10563,10 @@ Ві&дкинути - Discard the saved state of the selected virtual machine - Відкинути збережений стан вибраної віртуальної машини - - &Refresh &Оновити - Refresh the accessibility state of the selected virtual machine - Оновити доступність стану вибраної віртуальної машини - - &File &Файл @@ -9895,34 +10587,10 @@ Оп&ис * - S&how - По&казати - - - Switch to the window of the selected virtual machine - Перемкнутись до вікна вибраної віртуальної машини - - - S&tart - З&апуск - - - Start the selected virtual machine - Запустити вибрану віртуальну машину - - &Machine &Машина - Show &Log... - Показати &журнал... - - - Show the log files of the selected virtual machine - Показати файли журналу вибраної віртуальної машини - - Sun xVM VirtualBox Sun xVM VirtualBox @@ -9947,14 +10615,6 @@ <h3>Ласкаво просимо до програми VirtualBox!</h3><p>Ліва частина цього вікна призначена для показу списку всіх віртуальних машин на вашому комп'ютері. Цей список зараз порожній, бо ви ще не створили жодної віртуальної машини.<img src=:/welcome.png align=right/></p><p>Щоб створити нову віртуальну машину, натисніть кнопку <b>Створити</b> на головній панелі інструментів, який знаходиться зверху вікна.</p><p>Ви можете натиснути клавішу <b>F1</b> для отримання миттєвої допомоги, або відвідайте <a href=http://www.virtualbox.org>www.virtualbox.org</a>, щоб дізнатися останню інформацію та новини.</p> - &Virtual Media Manager... - &Керування віртуальними носіями... - - - Display the Virtual Media Manager dialog - Показати вікно керування віртуального носія - - Log icon text Журнал @@ -9964,61 +10624,96 @@ Sun VirtualBox + <h3>Welcome to VirtualBox!</h3><p>The left part of this window is a list of all virtual machines on your computer. The list is empty now because you haven't created any virtual machines yet.<img src=:/welcome.png align=right/></p><p>In order to create a new virtual machine, press the <b>New</b> button in the main tool bar located at the top of the window.</p><p>You can press the <b>%1</b> key to get instant help, or visit <a href=http://www.virtualbox.org>www.virtualbox.org</a> for the latest information and news.</p> + <h3>Ласкаво просимо до VirtualBox!</h3><p>У лівій частині цього вікна показується список віртуальних машин на вашому комп'ютері. Зараз список порожній, оскільки, поки що, ви не маєте створених віртуальних машин.<img src=:/welcome.png align=right/></p><p>Для того, щоб створити нову віртуальну машину, натисніть <b>Створити</b> в головному меню панелі інструментів, які розміщено зверху вікна.</p><p>Ви можете натиснути <b>%1</b>, щоб одержати миттєву довідку, або відвідайте <a href=http://www.virtualbox.org>www.virtualbox.org</a> щодо останніх новин.</p> + + + Select a virtual machine file + Вибрати файл віртуальної машини + + + Virtual machine files (%1) + Файли віртуальної машини (%1) + + + Manager + Note: main window title which is pretended by the product name. + Менеджер + + + Show Toolbar + Показувати панель інструментів + + + Show Statusbar + Показувати смужку стану + + + &Virtual Media Manager... + &Керування віртуальними носіями… + + + Display the Virtual Media Manager dialog + Показати вікно керування віртуальним носієм + + &Import Appliance... - &Імпортувати образу віртуальної машини… + &Імпортувати образ віртуальної машини… Import an appliance into VirtualBox - Імпортувати образу віртуальної машини у VirtualBox + Імпортувати образ віртуальної машини у VirtualBox &Export Appliance... - &Експортувати образу віртуальної машини… + &Експортувати образ віртуальної машини… Export one or more VirtualBox virtual machines as an appliance - Експортувати образу віртуальної машини з VirtualBox - - - Re&fresh - &Оновити + Експортувати образ віртуальної машини з VirtualBox - <h3>Welcome to VirtualBox!</h3><p>The left part of this window is a list of all virtual machines on your computer. The list is empty now because you haven't created any virtual machines yet.<img src=:/welcome.png align=right/></p><p>In order to create a new virtual machine, press the <b>New</b> button in the main tool bar located at the top of the window.</p><p>You can press the <b>%1</b> key to get instant help, or visit <a href=http://www.virtualbox.org>www.virtualbox.org</a> for the latest information and news.</p> - <h3>Ласкаво просимо до VirtualBox!</h3><p>У лівій частині цього вікна показується список віртуальних машин на вашому комп'ютері. Зараз список порожній, оскільки, поки що, ви не маєте створених віртуальних машин.<img src=:/welcome.png align=right/></p><p>Для того, щоб створити нову віртуальну машину, натисніть <b>Створити</b> в головному меню панелі інструментів , які знаходяться зверху вікна.</p><p>Ви можете натиснути <b>%1</b>, щоб отримати миттєву довідку, або відвідайте <a href=http://www.virtualbox.org>www.virtualbox.org</a> щодо останніх новин.</p> + &Preferences... + global settings + &Параметри… - &File - Mac OS X version - &Файл + Display the global settings dialog + Показати вікно загальних параметрів - &File - Non Mac OS X version - &Файл + E&xit + В&ийти - Select a virtual machine file - Вибрати файл віртуальної машини + Close application + Закрити програму - Virtual machine files (%1) - Файли віртуальної машини (%1) + &New... + &Створити… - Manager - Note: main window title which is pretended by the product name. - Керування + Create a new virtual machine + Створити нову віртуальну машину &Add... - &Додати... + &Додати… Add an existing virtual machine Додати наявну віртуальну машину + Cl&one... + К&лонувати… + + + Clone the selected virtual machine + Клонувати вибрану віртуальну машину + + &Remove &Вилучити @@ -10027,6 +10722,34 @@ Вилучити вибрану віртуальну машину + Discard + Відкинути + + + D&iscard Saved State + Ві&дкинути збережений стан + + + Discard the saved state of the selected virtual machine + Відкинути збережений стан вибраної віртуальної машини + + + Re&fresh + &Оновити + + + Refresh the accessibility state of the selected virtual machine + Оновити доступність стану вибраної віртуальної машини + + + Show &Log... + Показати &журнал… + + + Show the log files of the selected virtual machine + Показати файли журналу вибраної віртуальної машини + + Show in Finder Показувати в пошуку @@ -10067,28 +10790,30 @@ Показувати визначення файла віртуальної машин у файловому менеджері - Show Toolbar - Показувати панель інструментів + &File + Mac OS X version + &Файл - Show Statusbar - Показувати смужку стану + &File + Non Mac OS X version + &Файл - Cl&one... - К&лонувати… + S&tart + &Запустити - Clone the selected virtual machine - Клонувати вибрану віртуальну машину + Start the selected virtual machine + Запустити вибрану віртуальну машину - Discard - Відкинути + S&how + По&казати - D&iscard Saved State - Ві&дкинути збережений стан + Switch to the window of the selected virtual machine + Перемкнутись до вікна вибраної віртуальної машини @@ -10563,28 +11288,28 @@ Переглядач журналу - &Save - &Зберегти + <p>No log files found. Press the <b>Refresh</b> button to rescan the log folder <nobr><b>%1</b></nobr>.</p> + <p>Файли журналу не знайдені. Натисніть клавішу <b>Оновити</b> для повторного перегляду теки журналу <nobr><b>%1</b></nobr>.</p> - &Refresh - &Оновити + Save VirtualBox Log As + Зберегти журнал VirtualBox як %1 - VirtualBox Log Viewer %1 — Переглядач журналу VirtualBox - <p>No log files found. Press the <b>Refresh</b> button to rescan the log folder <nobr><b>%1</b></nobr>.</p> - <p>Файли журналу не знайдені. Натисніть клавішу <b>Оновити</b> для повторного перегляду теки журналу <nobr><b>%1</b></nobr>.</p> + &Find + З&найти - Save VirtualBox Log As - Зберегти журнал VirtualBox як + &Refresh + &Оновити - &Find - З&найти + &Save + &Зберегти Close diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Frontends/VirtualBox/nls/VirtualBox_xx_YY.ts virtualbox-4.1.44-dfsg/src/VBox/Frontends/VirtualBox/nls/VirtualBox_xx_YY.ts --- virtualbox-4.1.12-dfsg/src/VBox/Frontends/VirtualBox/nls/VirtualBox_xx_YY.ts 2012-04-02 13:28:40.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Frontends/VirtualBox/nls/VirtualBox_xx_YY.ts 2015-11-11 15:08:28.000000000 +0000 @@ -199,161 +199,161 @@ UIActionPool &Machine - + Automatically resize the guest display when the window is resized (requires Guest Additions) - + &Adjust Window Size - + Adjust window size and position to best fit the guest display - + Disable &Mouse Integration - + Temporarily disable host mouse pointer integration - + &Insert Ctrl-Alt-Del - + Send the Ctrl-Alt-Del sequence to the virtual machine - + &Insert Ctrl-Alt-Backspace - + Send the Ctrl-Alt-Backspace sequence to the virtual machine - + Take &Snapshot... - + Take a snapshot of the virtual machine - + Show Session Information Dialog - + &Pause - + Suspend the execution of the virtual machine - + &Reset - + Reset the virtual machine - + ACPI Sh&utdown - + Send the ACPI Power Button press event to the virtual machine - + &Close... - + Close the virtual machine - + &View - + &Devices - + &CD/DVD Devices - + &Floppy Devices - + &USB Devices - + &Network Adapters... - + Change the settings of network adapters - + &Shared Folders... - + Create or modify shared folders - + &Install Guest Additions... - + Mount the Guest Additions installation image - + De&bug - + &Statistics... debug action - + &Command Line... debug action - + &Help - + Dock Icon - + Show Monitor Preview - + Show Application Icon - + Enable remote desktop (RDP) connections to this machine @@ -1846,80 +1846,80 @@ <p style='white-space:pre'><nobr>Indicates the activity of the virtual hard disks:</nobr>%1</p> HDD tooltip - + <p style='white-space:pre'><nobr>Indicates the activity of the CD/DVD devices:</nobr>%1</p> CD/DVD tooltip - + <p style='white-space:pre'><nobr>Indicates the activity of the floppy devices:</nobr>%1</p> FD tooltip - + <p style='white-space:pre'><nobr>Indicates the activity of the network interfaces:</nobr>%1</p> Network adapters tooltip - + <br><nobr><b>Adapter %1 (%2)</b>: %3 cable %4</nobr> Network adapters tooltip - + connected Network adapters tooltip - + disconnected Network adapters tooltip - + <br><nobr><b>All network adapters are disabled</b></nobr> Network adapters tooltip - + <p style='white-space:pre'><nobr>Indicates the activity of the attached USB devices:</nobr>%1</p> USB device tooltip - + <br><nobr><b>No USB devices attached</b></nobr> USB device tooltip - + <br><nobr><b>USB Controller is disabled</b></nobr> USB device tooltip - + <p style='white-space:pre'><nobr>Indicates the activity of the machine's shared folders:</nobr>%1</p> Shared folders tooltip - + <br><nobr><b>No shared folders</b></nobr> Shared folders tooltip - + <br><nobr><b>%1:</b>&nbsp;%2</nobr> Virtualization Stuff LED - + Indicates whether the host mouse pointer is captured by the guest OS:<br><nobr><img src=:/mouse_disabled_16px.png/>&nbsp;&nbsp;pointer is not captured</nobr><br><nobr><img src=:/mouse_16px.png/>&nbsp;&nbsp;pointer is captured</nobr><br><nobr><img src=:/mouse_seamless_16px.png/>&nbsp;&nbsp;mouse integration (MI) is On</nobr><br><nobr><img src=:/mouse_can_seamless_16px.png/>&nbsp;&nbsp;MI is Off, pointer is captured</nobr><br><nobr><img src=:/mouse_can_seamless_uncaptured_16px.png/>&nbsp;&nbsp;MI is Off, pointer is not captured</nobr><br>Note that the mouse integration feature requires Guest Additions to be installed in the guest OS. - + Indicates whether the keyboard is captured by the guest OS (<img src=:/hostkey_captured_16px.png/>) or not (<img src=:/hostkey_16px.png/>). - + Indicates whether the Remote Desktop Server is enabled (<img src=:/vrdp_16px.png/>) or not (<img src=:/vrdp_disabled_16px.png/>). @@ -1946,39 +1946,39 @@ UIMachineLogic EXPERIMENTAL build %1r%2 - %3 - + Preview Monitor %1 - + Snapshot %1 - + No CD/DVD Devices Attached - + No CD/DVD devices attached to that VM - + No Floppy Devices Attached - + No floppy devices attached to that VM - + No USB Devices Connected - + No supported devices connected to the host PC - + @@ -3367,7 +3367,7 @@ UIMachineWindowNormal Shows the currently assigned Host key.<br>This key, when pressed alone, toggles the keyboard and mouse capture state. It can also be used in combination with other keys to quickly perform actions from the main menu. - + @@ -4185,12 +4185,6 @@ Failed to detach the floppy device (<nobr><b>%1</b></nobr>) from the slot <i>%2</i> of the machine <b>%3</b>. - - <p>The virtual machine(s) <b>%1</b> are currently in a saved state.</p><p>If you continue the runtime state of the exported machine(s) will be discarded. Note that the existing machine(s) are not changed.</p> - - - - Failed to update Guest Additions. The Guest Additions installation image will be mounted to provide a manual installation. @@ -4419,6 +4413,17 @@ extension pack + + <p>Failed to initialize COM because the VirtualBox global configuration directory <b><nobr>%1</nobr></b> is not accessible. Please check the permissions of this directory and of its parent directory.</p><p>The application will now terminate.</p> + + + + <p>The %n following virtual machine(s) are currently in a saved state: <b>%1</b></p><p>If you continue the runtime state of the exported machine(s) will be discarded. The other machine(s) will not be changed.</p> + This text is never used with n == 0. Feel free to drop the %n where possible, we only included it because of problems with Qt Linguist (but the user can see how many machines are in the list and doesn't need to be told). + + + + UIMiniProcessWidgetUserManual @@ -6346,10 +6351,6 @@ - and - - - MB size suffix MBytes=1024KBytes diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Frontends/VirtualBox/nls/VirtualBox_zh_CN.ts virtualbox-4.1.44-dfsg/src/VBox/Frontends/VirtualBox/nls/VirtualBox_zh_CN.ts --- virtualbox-4.1.12-dfsg/src/VBox/Frontends/VirtualBox/nls/VirtualBox_zh_CN.ts 2012-04-02 13:28:40.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Frontends/VirtualBox/nls/VirtualBox_zh_CN.ts 2015-11-11 15:08:28.000000000 +0000 @@ -53,7 +53,7 @@ The VirtualBox Linux kernel driver (vboxdrv) is either not loaded or there is a permission problem with /dev/vboxdrv. Please reinstall the kernel module by executing<br/><br/> <font color=blue>'/etc/init.d/vboxdrv setup'</font><br/><br/>as root. Users of Ubuntu, Fedora or Mandriva should install the DKMS package first. This package keeps track of Linux kernel changes and recompiles the vboxdrv kernel module if necessary. - VirtualBox Linux 内核驱动程序 (vboxdrv) 没有加载,或 /dev/vboxdrv 有权限问题。请以 root 权限执行<br/><br/><font color=blue>“/etc/init.d/vboxdrv setup”</font><br/><br/>,以便重新安装核心模块。Ubuntu、Fedora 或 Mandriva 的用户应该首先安装 DKMS 软件包。此程序包跟踪 Linux 内核的更改,并在必要时重新编译 vboxdrv 内核模块。 + VirtualBox Linux 内核驱动程序 (vboxdrv) 没有加载,或 /dev/vboxdrv 有权限问题。请以 root 权限执行<br/><br/><font color=blue>“/etc/init.d/vboxdrv setup”</font><br/><br/>,以便重新安装核心模块。Ubuntu、Fedora 或 Mandriva 的用户应该首先安装 DKMS 软件包。此程序包跟踪 Linux 内核的更改,并在必要时重新编译 vboxdrv 内核模块。 Make sure the kernel module has been loaded successfully. @@ -87,6 +87,10 @@ This error means that the kernel driver was either not able to allocate enough memory or that some mapping operation failed. 该错误意味着当前的内核驱动模块无法分配足够的内存或某些映射操作失败. + + The VirtualBox Linux kernel driver (vboxdrv) is either not loaded or there is a permission problem with /dev/vboxdrv. Please reinstall the kernel module by executing<br/><br/> <font color=blue>'/etc/init.d/vboxdrv setup'</font><br/><br/>as root. If it is available in your distribution, you should install the DKMS package first. This package keeps track of Linux kernel changes and recompiles the vboxdrv kernel module if necessary. + VirtualBox Linux 内核驱动程序 (vboxdrv) 没有加载,或 /dev/vboxdrv 有权限问题。请以 root 权限执行<br/><br/><font color=blue>“/etc/init.d/vboxdrv setup”</font><br/><br/>,以便重新安装内核模块。如果你所用的发行版bs有DKMS软件包,你应该首先安装之。此程序包跟踪 Linux 内核的更改,并在必要时重新编译 vboxdrv 内核模块。 + QIArrowSplitter @@ -2129,6 +2133,11 @@ you have 2D Video Acceleration enabled. As 2D Video Acceleration is supported for Windows guests only, this feature will be disabled. 您已启用了2D视频加速。但该功能目前只能用于虚拟电脑内的Windows系统,因此该特性将被禁用。 + + you enabled 3D acceleration. However, 3D acceleration is not working on the current host setup so you will not be able to start the VM. + TODO + 3D加速已启用。但是当前主机的配置并不支持3D加速,因此你将不能启动虚拟电脑。 + UIMachineSettingsGeneral @@ -2954,7 +2963,7 @@ for performance reasons, the number of virtual CPUs attached to the virtual machine may not be more than twice the number of physical CPUs on the host (<b>%1</b>). Please reduce the number of virtual CPUs. - 为了获得更好的性能,分配给虚拟电脑的虚拟CPU数量不应超过电脑上实际CPU数量 (<b>%1</b>) 的两倍,因此请减少为该虚拟电脑所分配的虚拟CPU的数量。 + 为了获得更好的性能,分配给虚拟电脑的虚拟处理器的数量不应超过电脑上实际的处理器数量 (<b>%1</b>) 的两倍,因此请减少为该虚拟电脑所分配的虚拟处理器的数量。 you have assigned more virtual CPUs to the virtual machine than the number of physical CPUs on your host system (<b>%1</b>). This is likely to degrade the performance of your virtual machine. Please consider reducing the number of virtual CPUs. @@ -2975,7 +2984,7 @@ <qt>%1&nbsp;CPU</qt> %1 is 1 for now - <qt>%1&nbsp;CPU</qt> + <qt>%1&nbsp;个</qt> &Motherboard @@ -3035,7 +3044,7 @@ &Processor(s): - CPU数量(&P): + 处理器数量(&P): When checked, the Physical Address Extension (PAE) feature of the host CPU will be exposed to the virtual machine. @@ -3055,7 +3064,7 @@ When checked, the virtual machine will try to make use of the host CPU's hardware virtualization extensions such as Intel VT-x and AMD-V. - 选中,虚拟电脑将尝试利用CPU上的硬件加速扩展. + 选中,虚拟电脑将尝试利用主机处理器上的硬件加速扩展. Enable &VT-x/AMD-V @@ -3063,7 +3072,7 @@ When checked, the virtual machine will try to make use of the nested paging extension of Intel VT-x and AMD-V. - 选中,虚拟电脑将尝试利用Intel VT-x或AMD-V等CPU上具备的嵌套分页扩展特性。 + 选中,虚拟电脑将尝试利用Intel VT-x或AMD-V等具备的嵌套分页扩展特性。 Enable Nested Pa&ging @@ -3072,7 +3081,7 @@ <qt>%1&nbsp;CPUs</qt> %1 is host cpu count * 2 for now - <qt>%1&nbsp;CPUs</qt> + <qt>%1&nbsp;个</qt> When checked, the guest will support the Extended Firmware Interface (EFI), which is required to boot certain guest OSes. Non-EFI aware OSes will not be able to boot if this option is activated. @@ -3897,7 +3906,7 @@ <p>VT-x/AMD-V hardware acceleration has been enabled, but is not operational. Your 64-bit guest will fail to detect a 64-bit CPU and will not be able to boot.</p><p>Please ensure that you have enabled VT-x/AMD-V properly in the BIOS of your host computer.</p> - <p>VT-x/AMD-V 硬件加速已被启用, 但当前处于无效状态. 您虚拟电脑内的操作系统将无法检测到64位的CPU,因此也将无法启动.</p><p>请确认在您电脑的BIOS中已启用 VT-x/AMD-V 支持.</p> + <p>VT-x/AMD-V 硬件加速已被启用, 但当前处于无效状态. 您虚拟电脑内的操作系统将无法检测到64位的处理器,因此也将无法启动.</p><p>请确认在您电脑的BIOS中已启用 VT-x/AMD-V 支持.</p> Close VM @@ -4072,7 +4081,7 @@ <p>VT-x/AMD-V hardware acceleration is not available on your system. Your 64-bit guest will fail to detect a 64-bit CPU and will not be able to boot. - <p>VT-x/AMD-V 硬件加速在您的系统中不可用。您的 64-位虚拟机将无法检测到 64-位 CPU,从而无法启动。 + <p>VT-x/AMD-V 硬件加速在您的系统中不可用。您的 64-位虚拟机将无法检测到 64-位处理器,从而无法启动。 <p>VT-x/AMD-V hardware acceleration is not available on your system. Certain guests (e.g. OS/2 and QNX) require this feature and will fail to boot without it.</p> @@ -4196,9 +4205,9 @@ 从虚拟机 <b>%3</b> 的插槽 <i>%2</i> 分离软驱 (<nobr><b>%1</b></nobr>) 失败。 - <p>The virtual machine(s) <b>%1</b> are currently in a saved state.</p><p>If you continue the runtime state of the exported machine(s) will be discarded. Note that the existing machine(s) are not changed.</p> + <p>The %n following virtual machine(s) are currently in a saved state: <b>%1</b></p><p>If you continue the runtime state of the exported machine(s) will be discarded. The other machine(s) will not be changed.</p> TODO - + <p>虚拟机 <b>%1</b> 当前处于保存状态。</p><p>如果您继续,将放弃已导出虚拟机的运行时状态。注意,现有的虚拟机不会更改。</p> @@ -4422,6 +4431,26 @@ <p>Failed to download the <b><nobr>%1</nobr></b> from <nobr><a href="%2">%2</a>.</nobr></p><p>%3</p> <p>从 <nobr><a href="%2">%2</a></nobr> 下载 <b><nobr>%1</nobr></b> 失败。</p><p>%3</p> + + <p>You have version %1 of the <b><nobr>%2</nobr></b> installed.</p><p>You should download and install version %3 of this extension pack from Oracle!</p> + <p>您已安装的 <b><nobr>%2</nobr></b> 是旧版本 (%1)。</p><p>您应从Oracle网站下载此扩展包的最新版 %3!</p> + + + Ok + extension pack + 确定 + + + <p>Failed to initialize COM because the VirtualBox global configuration directory <b><nobr>%1</nobr></b> is not accessible. Please check the permissions of this directory and of its parent directory.</p><p>The application will now terminate.</p> + + + + <p>The %n following virtual machine(s) are currently in a saved state: <b>%1</b></p><p>If you continue the runtime state of the exported machine(s) will be discarded. The other machine(s) will not be changed.</p> + This text is never used with n == 0. Feel free to drop the %n where possible, we only included it because of problems with Qt Linguist (but the user can see how many machines are in the list and doesn't need to be told). + + <p>虚拟机 <b>%1</b> 当前处于保存状态。</p><p>如果您继续,将放弃已导出虚拟机的运行时状态。注意,现有的虚拟机不会更改。</p> + + UIMiniProcessWidgetUserManual @@ -4548,7 +4577,7 @@ <p>A <b>dynamically allocated</b> virtual disk file will only use space on your physical hard disk as it fills up (up to a <b>fixed maximum size</b>), although it will not shrink again automatically when space on it is freed.</p> - <p><b>动态分配</b>的虚拟磁盘只是逐渐占用物理硬盘的空间 (直至达到 <b>分配的大小</b>), 不过当其内部空间不用时不会自动缩减占用的物理硬盘空间。</p> + <p><b>动态分配</b>的虚拟磁盘只是逐渐占用物理硬盘的空间 (直至达到 <b>分配的大小</b>), 不过当其内部空间不用时不会自动缩减占用的物理硬盘空间。</p> <p>A <b>fixed size</b> virtual disk file may take longer to create on some systems but is often faster to use.</p> @@ -4646,6 +4675,10 @@ &QCOW (QEMU Copy-On-Write) QCOW (QEMU 写入时复制)(&Q) + + <p>A <b>dynamically allocated</b> virtual disk file will only use space on your physical hard disk as it fills up, although it will not shrink again automatically when space on it is freed.</p> + <p><b>动态分配</b>的虚拟磁盘只是逐渐占用物理硬盘的空间, 不过当其内部空间不用时不会自动缩减占用的物理硬盘空间。</p> + UINewHDWizardPageFormat @@ -6355,7 +6388,7 @@ and - + MB @@ -6459,6 +6492,49 @@ + VBoxLogSearchPanel + + Close the search panel + 关闭搜索面板 + + + Find + 查找 + + + Enter a search string here + 输入搜索字符串 + + + &Previous + 向前(&P) + + + Search for the previous occurrence of the string + 向前搜索该字符串 + + + &Next + 向后(&N) + + + Search for the next occurrence of the string + 向后搜索该字符串 + + + C&ase Sensitive + 区分大小写(&A) + + + Perform case sensitive search (when checked) + 区分大小写进行搜索(选中时) + + + String not found + 字符串未找到 + + + VBoxMediaManagerDlg &Actions @@ -7217,47 +7293,4 @@ 关闭 - - VBoxLogSearchPanel - - Close the search panel - 关闭搜索面板 - - - Find - 查找 - - - Enter a search string here - 输入搜索字符串 - - - &Previous - 向前(&P) - - - Search for the previous occurrence of the string - 向前搜索该字符串 - - - &Next - 向后(&N) - - - Search for the next occurrence of the string - 向后搜索该字符串 - - - C&ase Sensitive - 区分大小写(&A) - - - Perform case sensitive search (when checked) - 区分大小写进行搜索(选中时) - - - String not found - 字符串未找到 - - diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Frontends/VirtualBox/nls/VirtualBox_zh_TW.ts virtualbox-4.1.44-dfsg/src/VBox/Frontends/VirtualBox/nls/VirtualBox_zh_TW.ts --- virtualbox-4.1.12-dfsg/src/VBox/Frontends/VirtualBox/nls/VirtualBox_zh_TW.ts 2012-04-02 13:28:40.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Frontends/VirtualBox/nls/VirtualBox_zh_TW.ts 2015-11-11 15:08:28.000000000 +0000 @@ -4190,8 +4190,8 @@ 從機器 <b>%3</b> 的插槽 <i>%2</i> 分離軟碟裝置 (<nobr><b>%1</b></nobr>) 失敗。 - <p>The virtual machine(s) <b>%1</b> are currently in a saved state.</p><p>If you continue the runtime state of the exported machine(s) will be discarded. Note that the existing machine(s) are not changed.</p> - + <p>The %n following virtual machine(s) are currently in a saved state: <b>%1</b></p><p>If you continue the runtime state of the exported machine(s) will be discarded. The other machine(s) will not be changed.</p> + <p>虛擬機器 <b>%1</b> 目前在儲存的狀態。</p><p>如果您繼續,匯出機器的執行階段狀態將捨棄。 請注意,現有的機器未變更。</p> @@ -4423,6 +4423,17 @@ extension pack + + <p>Failed to initialize COM because the VirtualBox global configuration directory <b><nobr>%1</nobr></b> is not accessible. Please check the permissions of this directory and of its parent directory.</p><p>The application will now terminate.</p> + + + + <p>The %n following virtual machine(s) are currently in a saved state: <b>%1</b></p><p>If you continue the runtime state of the exported machine(s) will be discarded. The other machine(s) will not be changed.</p> + This text is never used with n == 0. Feel free to drop the %n where possible, we only included it because of problems with Qt Linguist (but the user can see how many machines are in the list and doesn't need to be told). + + <p>虛擬機器 <b>%1</b> 目前在儲存的狀態。</p><p>如果您繼續,匯出機器的執行階段狀態將捨棄。 請注意,現有的機器未變更。</p> + + UIMiniProcessWidgetUserManual @@ -6391,7 +6402,7 @@ and - + MB diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Frontends/VirtualBox/src/extensions/QILineEdit.cpp virtualbox-4.1.44-dfsg/src/VBox/Frontends/VirtualBox/src/extensions/QILineEdit.cpp --- virtualbox-4.1.12-dfsg/src/VBox/Frontends/VirtualBox/src/extensions/QILineEdit.cpp 2012-04-02 13:28:41.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Frontends/VirtualBox/src/extensions/QILineEdit.cpp 2015-11-11 15:08:29.000000000 +0000 @@ -1,12 +1,10 @@ /* $Id: QILineEdit.cpp $ */ /** @file - * - * VBox frontends: Qt GUI ("VirtualBox"): - * QILineEdit class implementation + * VirtualBox Qt GUI - QILineEdit class implementation. */ /* - * Copyright (C) 2008 Oracle Corporation + * Copyright (C) 2008-2013 Oracle Corporation * * This file is part of VirtualBox Open Source Edition (OSE), as * available from http://www.virtualbox.org. This file is free software; @@ -23,8 +21,12 @@ #include #if defined (Q_WS_WIN32) -#include -#include +# include +# include +#endif +#if defined (Q_WS_WIN32) +# include +# include "iprt/ldr.h" #endif void QILineEdit::setMinimumWidthByText (const QString &aText) @@ -61,10 +63,13 @@ { /* Check if l&f style theme is really active else painting performed by * Windows Classic theme and there is no such shifting error. */ - typedef bool (*IsAppThemedFunction)(); - IsAppThemedFunction isAppThemed = - (IsAppThemedFunction) QLibrary::resolve ("uxtheme", "IsAppThemed"); - if (isAppThemed && isAppThemed()) sa -= QSize (23, 0); + typedef BOOL (WINAPI *PFNISAPPTHEMED)(VOID); + static PFNISAPPTHEMED s_pfnIsAppThemed = (PFNISAPPTHEMED)~(uintptr_t)0; + if (s_pfnIsAppThemed == (PFNISAPPTHEMED)~(uintptr_t)0 ) + s_pfnIsAppThemed = (PFNISAPPTHEMED)RTLdrGetSystemSymbol("uxtheme.dll", "IsAppThemed"); + + if (s_pfnIsAppThemed && s_pfnIsAppThemed()) + sa -= QSize(23, 0); } #endif diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Frontends/VirtualBox/src/globals/UIMessageCenter.cpp virtualbox-4.1.44-dfsg/src/VBox/Frontends/VirtualBox/src/globals/UIMessageCenter.cpp --- virtualbox-4.1.12-dfsg/src/VBox/Frontends/VirtualBox/src/globals/UIMessageCenter.cpp 2012-04-02 13:28:42.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Frontends/VirtualBox/src/globals/UIMessageCenter.cpp 2015-11-11 15:08:30.000000000 +0000 @@ -579,6 +579,17 @@ formatErrorInfo(COMErrorInfo(), rc)); } +void UIMessageCenter::cannotInitUserHome(const QString &strUserHome) +{ + message(0, Critical, + tr("

Failed to initialize COM because the VirtualBox global " + "configuration directory %1 is not accessible. " + "Please check the permissions of this directory and of its parent " + "directory.

" + "

The application will now terminate.

").arg(strUserHome), + formatErrorInfo(COMErrorInfo())); +} + void UIMessageCenter::cannotCreateVirtualBox(const CVirtualBox &vbox) { message(0, Critical, @@ -2342,10 +2353,9 @@ QWidget *pParent /* = NULL */) const { return messageOkCancel(pParent ? pParent : mainWindowShown(), Warning, - tr("

The virtual machine(s) %1 are currently in a saved state.

" + tr("

The %n following virtual machine(s) are currently in a saved state: %1

" "

If you continue the runtime state of the exported machine(s) " - "will be discarded. Note that the existing machine(s) are not " - "changed.

", "", + "will be discarded. The other machine(s) will not be changed.

", "This text is never used with n == 0. Feel free to drop the %n where possible, we only included it because of problems with Qt Linguist (but the user can see how many machines are in the list and doesn't need to be told).", strMachineNames.size()).arg(VBoxGlobal::toHumanReadableList(strMachineNames)), 0 /* pcszAutoConfirmId */, tr("Continue"), tr("Cancel")); diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Frontends/VirtualBox/src/globals/UIMessageCenter.h virtualbox-4.1.44-dfsg/src/VBox/Frontends/VirtualBox/src/globals/UIMessageCenter.h --- virtualbox-4.1.12-dfsg/src/VBox/Frontends/VirtualBox/src/globals/UIMessageCenter.h 2012-04-02 13:28:42.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Frontends/VirtualBox/src/globals/UIMessageCenter.h 2015-11-11 15:08:30.000000000 +0000 @@ -178,6 +178,7 @@ void cannotLoadLanguage(const QString &strLangFile); void cannotInitCOM(HRESULT rc); + void cannotInitUserHome(const QString &strUserHome); void cannotCreateVirtualBox(const CVirtualBox &vbox); void cannotLoadGlobalConfig(const CVirtualBox &vbox, const QString &strError); diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Frontends/VirtualBox/src/globals/VBoxGlobal.cpp virtualbox-4.1.44-dfsg/src/VBox/Frontends/VirtualBox/src/globals/VBoxGlobal.cpp --- virtualbox-4.1.12-dfsg/src/VBox/Frontends/VirtualBox/src/globals/VBoxGlobal.cpp 2012-04-02 13:28:42.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Frontends/VirtualBox/src/globals/VBoxGlobal.cpp 2015-11-11 15:08:30.000000000 +0000 @@ -133,6 +133,8 @@ #include #endif +#include + //#define VBOX_WITH_FULL_DETAILS_REPORT /* hidden for now */ //#warning "port me: check this" @@ -2467,13 +2469,28 @@ void VBoxGlobal::reloadProxySettings() { UIProxyManager proxyManager(settings().proxySettings()); + if (proxyManager.authEnabled()) + { + proxyManager.setAuthEnabled(false); + proxyManager.setAuthLogin(QString()); + proxyManager.setAuthPassword(QString()); + VBoxGlobalSettings globalSettings = settings(); + globalSettings.setProxySettings(proxyManager.toString()); + vboxGlobal().setSettings(globalSettings); + } if (proxyManager.proxyEnabled()) { +#if 0 QNetworkProxy::setApplicationProxy(QNetworkProxy(QNetworkProxy::HttpProxy, proxyManager.proxyHost(), proxyManager.proxyPort().toInt(), proxyManager.authEnabled() ? proxyManager.authLogin() : QString(), proxyManager.authEnabled() ? proxyManager.authPassword() : QString())); +#else + QNetworkProxy::setApplicationProxy(QNetworkProxy(QNetworkProxy::HttpProxy, + proxyManager.proxyHost(), + proxyManager.proxyPort().toInt())); +#endif } else { @@ -3671,17 +3688,11 @@ QString VBoxGlobal::toHumanReadableList(const QStringList &list) { QString strList; - if (list.size() == 1) - strList = list.at(0); - else if (list.size() > 1) + for (int i = 0; i < list.size(); ++i) { - for (int i = 0; i < list.size() - 1; ++i) - { - strList += list.at(i); - if (i < list.size() - 2) - strList += + ", "; - } - strList += " " + tr("and") + " " + list.at(list.size() - 1); + strList += list.at(i); + if (i < list.size() - 1) + strList += + " "; } return strList; } @@ -4781,7 +4792,16 @@ HRESULT rc = COMBase::InitializeCOM(true); if (FAILED (rc)) { - msgCenter().cannotInitCOM (rc); +#ifdef VBOX_WITH_XPCOM + if (rc == NS_ERROR_FILE_ACCESS_DENIED) + { + char szHome[RTPATH_MAX] = ""; + com::GetVBoxUserHomeDirectory(szHome, sizeof(szHome)); + msgCenter().cannotInitUserHome(QString(szHome)); + } + else +#endif + msgCenter().cannotInitCOM(rc); return; } @@ -4792,7 +4812,11 @@ return; } mHost = virtualBox().GetHost(); - m3DAvailable = mHost.GetAcceleration3DAvailable(); +#ifdef VBOX_WITH_CROGL + m3DAvailable = VBoxOglIs3DAccelerationSupported(); +#else + m3DAvailable = false; +#endif /* create default non-null global settings */ gset = VBoxGlobalSettings (false); diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Frontends/VirtualBox/src/hardenedmain.cpp virtualbox-4.1.44-dfsg/src/VBox/Frontends/VirtualBox/src/hardenedmain.cpp --- virtualbox-4.1.12-dfsg/src/VBox/Frontends/VirtualBox/src/hardenedmain.cpp 2012-04-02 13:28:42.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Frontends/VirtualBox/src/hardenedmain.cpp 2015-11-11 15:08:30.000000000 +0000 @@ -36,6 +36,6 @@ break; } - return SUPR3HardenedMain("VirtualBox", fFlags, argc, argv, envp); + return SUPR3HardenedMain("VirtualBox", fFlags | SUPSECMAIN_FLAGS_TRUSTED_ERROR, argc, argv, envp); } diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Frontends/VirtualBox/src/main.cpp virtualbox-4.1.44-dfsg/src/VBox/Frontends/VirtualBox/src/main.cpp --- virtualbox-4.1.12-dfsg/src/VBox/Frontends/VirtualBox/src/main.cpp 2012-04-02 13:28:42.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Frontends/VirtualBox/src/main.cpp 2015-11-11 15:08:30.000000000 +0000 @@ -44,9 +44,11 @@ #ifdef Q_WS_X11 # include +# include #endif #include +#include #include #include #include @@ -294,6 +296,21 @@ /** @todo Show this as a dialog on windows. */ } +#ifdef Q_WS_X11 +/** This is a workaround for a bug on old libX11 versions, fixed in commit + * 941f02ede63baa46f93ed8abccebe76fb29c0789 and released in version 1.1. */ +Status VBoxXInitThreads(void) +{ + void *pvProcess = dlopen(NULL, RTLD_GLOBAL | RTLD_LAZY); + Status rc = 1; + if (pvProcess && dlsym(pvProcess, "xcb_connect")) + rc = XInitThreads(); + if (pvProcess) + dlclose(pvProcess); + return rc; +} +#endif + extern "C" DECLEXPORT(int) TrustedMain (int argc, char **argv, char ** /*envp*/) { LogFlowFuncEnter(); @@ -301,6 +318,11 @@ ShutUpAppKit(); # endif +#ifdef Q_WS_X11 + if (!VBoxXInitThreads()) + return 1; +#endif + for (int i=0; iCannot access the kernel driver!

"); # ifdef RT_OS_LINUX @@ -633,80 +665,127 @@ #else /* VBOX_WITH_HARDENING */ /** - * Hardened main failed, report the error without any unnecessary fuzz. + * Special entrypoint used by the hardening code when something goes south. + * + * Display an error dialog to the user. * - * @remarks Do not call IPRT here unless really required, it might not be - * initialized. + * @param pszWhere Indicates where the error occured. + * @param enmWhat Indicates what init operation was going on at the time. + * @param rc The VBox status code corresponding to the error. + * @param pszMsgFmt The message format string. + * @param va Format arguments. */ -extern "C" DECLEXPORT(void) TrustedError (const char *pszWhere, SUPINITOP enmWhat, int rc, const char *pszMsgFmt, va_list va) +extern "C" DECLEXPORT(void) TrustedError(const char *pszWhere, SUPINITOP enmWhat, int rc, const char *pszMsgFmt, va_list va) { # if defined(RT_OS_DARWIN) ShutUpAppKit(); # endif + char szMsgBuf[_16K]; /* - * Init the Qt application object. This is a bit hackish as we - * don't have the argument vector handy. + * We have to create QApplication anyway just to show the only one error-message. + * This is a bit hackish as we don't have the argument vector handy. */ int argc = 0; char *argv[2] = { NULL, NULL }; QApplication a (argc, &argv[0]); /* - * Compose and show the error message. + * The details starts off a properly formatted rc and where/what, we use + * the szMsgBuf for this, thus this have to come before the actual message + * formatting. */ - QString msgTitle = QApplication::tr ("VirtualBox - Error In %1").arg (pszWhere); + RTStrPrintf(szMsgBuf, sizeof(szMsgBuf), + "" + "where: %s\n" + "what: %d\n" + "%Rra\n", + pszWhere, enmWhat, rc); + QString strDetails = szMsgBuf; - char msgBuf[1024]; - vsprintf (msgBuf, pszMsgFmt, va); + /* + * Format the error message. Take whatever comes after a double new line as + * something better off in the details section. + */ + RTStrPrintfV(szMsgBuf, sizeof(szMsgBuf), pszMsgFmt, va); - QString msgText = QApplication::tr ( - "%1 (rc=%2)

").arg (msgBuf).arg (rc); + char *pszDetails = strstr(szMsgBuf, "\n\n"); + if (pszDetails) + { + while (RT_C_IS_SPACE(*pszDetails)) + *pszDetails++ = '\0'; + if (*pszDetails) + { + strDetails += "\n"; + strDetails += pszDetails; + } + RTStrStripR(szMsgBuf); + } + + QString strText = QApplication::tr("%1 (rc=%2)

").arg(szMsgBuf).arg(rc); + strText.replace(QString("\n"), QString("
")); + + /* + * Append possibly helpful hints to the error message. + */ switch (enmWhat) { case kSupInitOp_Driver: # ifdef RT_OS_LINUX - msgText += g_QStrHintLinuxNoDriver; + strText += g_QStrHintLinuxNoDriver; # else - msgText += g_QStrHintOtherNoDriver; + strText += g_QStrHintOtherNoDriver; # endif break; # ifdef RT_OS_LINUX case kSupInitOp_IPRT: + case kSupInitOp_Misc: if (rc == VERR_NO_MEMORY) - msgText += g_QStrHintLinuxNoMemory; + strText += g_QStrHintLinuxNoMemory; else # endif if (rc == VERR_VM_DRIVER_VERSION_MISMATCH) # ifdef RT_OS_LINUX - msgText += g_QStrHintLinuxWrongDriverVersion; + strText += g_QStrHintLinuxWrongDriverVersion; # else - msgText += g_QStrHintOtherWrongDriverVersion; + strText += g_QStrHintOtherWrongDriverVersion; # endif else - msgText += g_QStrHintReinstall; + strText += g_QStrHintReinstall; break; case kSupInitOp_Integrity: case kSupInitOp_RootCheck: - msgText += g_QStrHintReinstall; + strText += g_QStrHintReinstall; break; default: /* no hints here */ break; } - msgText += ""; + + strText += ""; + # ifdef RT_OS_LINUX + /* + * We have to to make sure that we display the error-message + * after the parent displayed its own message. + */ sleep(2); # endif - QMessageBox::critical ( - 0, /* parent */ - msgTitle, /* title */ - msgText, /* text */ - QMessageBox::Abort, /* button0 */ - 0); /* button1 */ - qFatal ("%s", msgText.toAscii().constData()); + + /* + * Create the message box and show it. + */ + QString strTitle = QApplication::tr("VirtualBox - Error In %1").arg(pszWhere); + QIMessageBox msgBox(strTitle, strText, QIMessageBox::Critical, QIMessageBox::Ok | QIMessageBox::Default); + if (!strDetails.isEmpty()) + msgBox.setDetailsText(strDetails); + + msgBox.exec(); + + qFatal("%s", strText.toAscii().constData()); } #endif /* VBOX_WITH_HARDENING */ + diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Frontends/VirtualBox/src/platform/win/VirtualBoxHardened.rc virtualbox-4.1.44-dfsg/src/VBox/Frontends/VirtualBox/src/platform/win/VirtualBoxHardened.rc --- virtualbox-4.1.12-dfsg/src/VBox/Frontends/VirtualBox/src/platform/win/VirtualBoxHardened.rc 1970-01-01 00:00:00.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Frontends/VirtualBox/src/platform/win/VirtualBoxHardened.rc 2015-11-11 15:08:31.000000000 +0000 @@ -0,0 +1,58 @@ +/* $Id: VirtualBoxHardened.rc $ */ +/** @file + * Windows resource file for the Hardened VirtualBox.exe. + */ + +/* + * Copyright (C) 2006-2014 Oracle Corporation + * + * This file is part of VirtualBox Open Source Edition (OSE), as + * available from http://www.virtualbox.org. This file is free software; + * you can redistribute it and/or modify it under the terms of the GNU + * General Public License (GPL) as published by the Free Software + * Foundation, in version 2 as it comes in the "COPYING" file of the + * VirtualBox OSE distribution. VirtualBox OSE is distributed in the + * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind. + */ + +#include +#include + +#if 0 /* Causes more DLLs to be loaded, don't enable it! */ +VS_VERSION_INFO VERSIONINFO + FILEVERSION VBOX_VERSION_MAJOR_NR,VBOX_VERSION_MINOR_NR,VBOX_VERSION_BUILD_NR,0 + PRODUCTVERSION VBOX_VERSION_MAJOR_NR,VBOX_VERSION_MINOR_NR,VBOX_VERSION_BUILD_NR,0 + FILEFLAGSMASK VS_FFI_FILEFLAGSMASK +#ifdef _DEBUG + FILEFLAGS VS_FF_DEBUG|VS_FF_PRIVATEBUILD|VS_FF_PRERELEASE +#else + FILEFLAGS 0 // final version +#endif + FILEOS VOS_NT_WINDOWS32 + FILETYPE VFT_APP + FILESUBTYPE 0 // not used +BEGIN + BLOCK "StringFileInfo" + BEGIN + BLOCK "040904E4" // Lang=US English, CharSet=Windows Multilingual + BEGIN + VALUE "CompanyName", VBOX_RC_COMPANY_NAME + VALUE "FileDescription", VBOX_PRODUCT " Manager\0" + VALUE "FileVersion", VBOX_VERSION_MAJOR "." VBOX_VERSION_MINOR "." VBOX_VERSION_BUILD "." VBOX_SVN_REV "\0" + VALUE "InternalName", "VirtualBox.exe\0" + VALUE "LegalCopyright", VBOX_RC_LEGAL_COPYRIGHT + VALUE "OriginalFilename","VirtualBox.exe\0" + VALUE "ProductName", VBOX_PRODUCT "\0" + VALUE "ProductVersion", VBOX_VERSION_MAJOR "." VBOX_VERSION_MINOR "." VBOX_VERSION_BUILD ".r" VBOX_SVN_REV "\0" + END + END + BLOCK "VarFileInfo" + BEGIN + VALUE "Translation", 0x409, 1252 + END +END +#endif + +/* Creates the application icon. */ +#include "VirtualBox-icon.rc" + diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Frontends/VirtualBox/src/platform/win/VirtualBox.rc virtualbox-4.1.44-dfsg/src/VBox/Frontends/VirtualBox/src/platform/win/VirtualBox.rc --- virtualbox-4.1.12-dfsg/src/VBox/Frontends/VirtualBox/src/platform/win/VirtualBox.rc 2012-04-02 13:28:43.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Frontends/VirtualBox/src/platform/win/VirtualBox.rc 2015-11-11 15:08:31.000000000 +0000 @@ -4,7 +4,7 @@ */ /* - * Copyright (C) 2006-2010 Oracle Corporation + * Copyright (C) 2006-2014 Oracle Corporation * * This file is part of VirtualBox Open Source Edition (OSE), as * available from http://www.virtualbox.org. This file is free software; @@ -27,8 +27,12 @@ #else FILEFLAGS 0 // final version #endif - FILEOS VOS__WINDOWS32 + FILEOS VOS_NT_WINDOWS32 +#ifdef VBOXR3_HARDENED_DLL FILETYPE VFT_APP +#else + FILETYPE VFT_DLL +#endif FILESUBTYPE 0 // not used BEGIN BLOCK "StringFileInfo" @@ -38,9 +42,17 @@ VALUE "CompanyName", VBOX_RC_COMPANY_NAME VALUE "FileDescription", VBOX_PRODUCT " Manager\0" VALUE "FileVersion", VBOX_VERSION_MAJOR "." VBOX_VERSION_MINOR "." VBOX_VERSION_BUILD "." VBOX_SVN_REV "\0" +#ifdef VBOXR3_HARDENED_DLL + VALUE "InternalName", "VirtualBox\0" +#else VALUE "InternalName", "VirtualBox.exe\0" +#endif VALUE "LegalCopyright", VBOX_RC_LEGAL_COPYRIGHT +#ifdef VBOXR3_HARDENED_DLL + VALUE "OriginalFilename","VirtualBox.dll\0" +#else VALUE "OriginalFilename","VirtualBox.exe\0" +#endif VALUE "ProductName", VBOX_PRODUCT "\0" VALUE "ProductVersion", VBOX_VERSION_MAJOR "." VBOX_VERSION_MINOR "." VBOX_VERSION_BUILD ".r" VBOX_SVN_REV "\0" END diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Frontends/VirtualBox/src/runtime/UIFrameBuffer.cpp virtualbox-4.1.44-dfsg/src/VBox/Frontends/VirtualBox/src/runtime/UIFrameBuffer.cpp --- virtualbox-4.1.12-dfsg/src/VBox/Frontends/VirtualBox/src/runtime/UIFrameBuffer.cpp 2012-04-02 13:28:43.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Frontends/VirtualBox/src/runtime/UIFrameBuffer.cpp 2015-11-11 15:08:31.000000000 +0000 @@ -158,11 +158,19 @@ return E_FAIL; NOREF(uScreenId); - QApplication::postEvent (m_pMachineView, - new UIResizeEvent(uPixelFormat, pVRAM, uBitsPerPixel, - uBytesPerLine, uWidth, uHeight)); - *pbFinished = FALSE; + lock(); /* See comment in setView(). */ + if (m_pMachineView) + QApplication::postEvent(m_pMachineView, + new UIResizeEvent(uPixelFormat, pVRAM, + uBitsPerPixel, uBytesPerLine, + uWidth, uHeight)); + else + /* Report to the VM thread that we finished resizing and rely on the + * synchronisation when the new view is attached. */ + *pbFinished = TRUE; + unlock(); + return S_OK; } @@ -183,7 +191,12 @@ if (!pbSupported) return E_POINTER; *pbSupported = TRUE; - QSize screen = m_pMachineView->desktopGeometry(); + + lock(); /* See comment in setView(). */ + QSize screen; + if (m_pMachineView) + screen = m_pMachineView->desktopGeometry(); + unlock(); if ((screen.width() != 0) && (uWidth > (ULONG)screen.width())) *pbSupported = FALSE; if ((screen.height() != 0) && (uHeight > (ULONG)screen.height())) @@ -225,7 +238,10 @@ reg += rect; ++ rects; } - QApplication::postEvent(m_pMachineView, new UISetRegionEvent(reg)); + lock(); /* See comment in setView(). */ + if (m_pMachineView) + QApplication::postEvent(m_pMachineView, new UISetRegionEvent(reg)); + unlock(); return S_OK; } @@ -246,7 +262,13 @@ void UIFrameBuffer::setView(UIMachineView * pView) { + /* We are not supposed to use locking for things which are done + * on the GUI thread. Unfortunately I am not clever enough to + * understand the original author's wise synchronisation logic + * so I will do it anyway. */ + lock(); m_pMachineView = pView; m_WinId = (m_pMachineView && m_pMachineView->viewport()) ? (LONG64)m_pMachineView->viewport()->winId() : 0; + unlock(); } #endif diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Frontends/VirtualBox/src/settings/global/UIGlobalSettingsProxy.cpp virtualbox-4.1.44-dfsg/src/VBox/Frontends/VirtualBox/src/settings/global/UIGlobalSettingsProxy.cpp --- virtualbox-4.1.12-dfsg/src/VBox/Frontends/VirtualBox/src/settings/global/UIGlobalSettingsProxy.cpp 2012-04-02 13:28:44.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Frontends/VirtualBox/src/settings/global/UIGlobalSettingsProxy.cpp 2015-11-11 15:08:33.000000000 +0000 @@ -6,7 +6,7 @@ */ /* - * Copyright (C) 2011 Oracle Corporation + * Copyright (C) 2011-2012 Oracle Corporation * * This file is part of VirtualBox Open Source Edition (OSE), as * available from http://www.virtualbox.org. This file is free software; @@ -36,12 +36,23 @@ m_pPortEditor->setFixedWidthByText(QString().fill('0', 6)); m_pHostEditor->setValidator(new QRegExpValidator(QRegExp("\\S+"), m_pHostEditor)); m_pPortEditor->setValidator(new QRegExpValidator(QRegExp("\\d+"), m_pPortEditor)); +#if 0 m_pLoginEditor->setValidator(new QRegExpValidator(QRegExp("\\S+"), m_pLoginEditor)); m_pPasswordEditor->setValidator(new QRegExpValidator(QRegExp("\\S+"), m_pPasswordEditor)); +#else + m_pLoginLabel->hide(); + m_pLoginEditor->hide(); + m_pPasswordLabel->hide(); + m_pPasswordEditor->hide(); +#endif /* Setup connections: */ connect(m_pProxyCheckbox, SIGNAL(stateChanged(int)), this, SLOT(sltProxyToggled())); +#if 0 connect(m_pAuthCheckbox, SIGNAL(stateChanged(int)), this, SLOT(sltAuthToggled())); +#else + m_pAuthCheckbox->hide(); +#endif /* Apply language settings: */ retranslateUi(); @@ -59,9 +70,11 @@ m_cache.m_fProxyEnabled = proxyManager.proxyEnabled(); m_cache.m_strProxyHost = proxyManager.proxyHost(); m_cache.m_strProxyPort = proxyManager.proxyPort(); +#if 0 m_cache.m_fAuthEnabled = proxyManager.authEnabled(); m_cache.m_strAuthLogin = proxyManager.authLogin(); m_cache.m_strAuthPassword = proxyManager.authPassword(); +#endif /* Upload properties & settings to data: */ UISettingsPageGlobal::uploadData(data); @@ -75,9 +88,11 @@ m_pProxyCheckbox->setChecked(m_cache.m_fProxyEnabled); m_pHostEditor->setText(m_cache.m_strProxyHost); m_pPortEditor->setText(m_cache.m_strProxyPort); +#if 0 m_pAuthCheckbox->setChecked(m_cache.m_fAuthEnabled); m_pLoginEditor->setText(m_cache.m_strAuthLogin); m_pPasswordEditor->setText(m_cache.m_strAuthPassword); +#endif sltProxyToggled(); } @@ -89,9 +104,11 @@ m_cache.m_fProxyEnabled = m_pProxyCheckbox->isChecked(); m_cache.m_strProxyHost = m_pHostEditor->text(); m_cache.m_strProxyPort = m_pPortEditor->text(); +#if 0 m_cache.m_fAuthEnabled = m_pAuthCheckbox->isChecked(); m_cache.m_strAuthLogin = m_pLoginEditor->text(); m_cache.m_strAuthPassword = m_pPasswordEditor->text(); +#endif } /* Save data from cache to corresponding external object(s), @@ -105,9 +122,11 @@ proxyManager.setProxyEnabled(m_cache.m_fProxyEnabled); proxyManager.setProxyHost(m_cache.m_strProxyHost); proxyManager.setProxyPort(m_cache.m_strProxyPort); +#if 0 proxyManager.setAuthEnabled(m_cache.m_fAuthEnabled); proxyManager.setAuthLogin(m_cache.m_strAuthLogin); proxyManager.setAuthPassword(m_cache.m_strAuthPassword); +#endif m_settings.setProxySettings(proxyManager.toString()); /* Upload properties & settings to data: */ @@ -126,9 +145,11 @@ setTabOrder(pWidget, m_pProxyCheckbox); setTabOrder(m_pProxyCheckbox, m_pHostEditor); setTabOrder(m_pHostEditor, m_pPortEditor); +#if 0 setTabOrder(m_pPortEditor, m_pAuthCheckbox); setTabOrder(m_pAuthCheckbox, m_pLoginEditor); setTabOrder(m_pLoginEditor, m_pPasswordEditor); +#endif } /* Translation stuff: */ @@ -145,12 +166,19 @@ m_pHostEditor->setEnabled(m_pProxyCheckbox->isChecked()); m_pPortLabel->setEnabled(m_pProxyCheckbox->isChecked()); m_pPortEditor->setEnabled(m_pProxyCheckbox->isChecked()); +#if 0 m_pAuthCheckbox->setEnabled(m_pProxyCheckbox->isChecked()); /* Update auth widgets also: */ sltAuthToggled(); +#endif + + /* Revalidate if possible: */ + if (m_pValidator) + m_pValidator->revalidate(); } +#if 0 void UIGlobalSettingsProxy::sltAuthToggled() { /* Update widgets availability: */ @@ -158,9 +186,6 @@ m_pLoginEditor->setEnabled(m_pProxyCheckbox->isChecked() && m_pAuthCheckbox->isChecked()); m_pPasswordLabel->setEnabled(m_pProxyCheckbox->isChecked() && m_pAuthCheckbox->isChecked()); m_pPasswordEditor->setEnabled(m_pProxyCheckbox->isChecked() && m_pAuthCheckbox->isChecked()); - - /* Revalidate if possible: */ - if (m_pValidator) - m_pValidator->revalidate(); } +#endif diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Frontends/VirtualBox/src/settings/global/UIGlobalSettingsProxy.h virtualbox-4.1.44-dfsg/src/VBox/Frontends/VirtualBox/src/settings/global/UIGlobalSettingsProxy.h --- virtualbox-4.1.12-dfsg/src/VBox/Frontends/VirtualBox/src/settings/global/UIGlobalSettingsProxy.h 2012-04-02 13:28:44.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Frontends/VirtualBox/src/settings/global/UIGlobalSettingsProxy.h 2015-11-11 15:08:33.000000000 +0000 @@ -5,7 +5,7 @@ */ /* - * Copyright (C) 2011 Oracle Corporation + * Copyright (C) 2011-2012 Oracle Corporation * * This file is part of VirtualBox Open Source Edition (OSE), as * available from http://www.virtualbox.org. This file is free software; @@ -26,13 +26,20 @@ /* Global settings / Proxy page / Cache: */ struct UISettingsCacheGlobalProxy { - UISettingsCacheGlobalProxy() : m_fProxyEnabled(false), m_fAuthEnabled(false) {} + UISettingsCacheGlobalProxy() + : m_fProxyEnabled(false) +#if 0 + , m_fAuthEnabled(false) +#endif + {} bool m_fProxyEnabled; QString m_strProxyHost; QString m_strProxyPort; +#if 0 bool m_fAuthEnabled; QString m_strAuthLogin; QString m_strAuthPassword; +#endif }; /* Global settings / Proxy page: */ @@ -73,7 +80,9 @@ private slots: void sltProxyToggled(); +#if 0 void sltAuthToggled(); +#endif private: diff -Nru virtualbox-4.1.12-dfsg/src/VBox/GuestHost/OpenGL/Makefile.kmk virtualbox-4.1.44-dfsg/src/VBox/GuestHost/OpenGL/Makefile.kmk --- virtualbox-4.1.12-dfsg/src/VBox/GuestHost/OpenGL/Makefile.kmk 2012-04-02 13:28:45.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/GuestHost/OpenGL/Makefile.kmk 2015-11-11 15:08:35.000000000 +0000 @@ -43,7 +43,7 @@ if defined(VBOX_SIGNING_MODE) && defined(VBOX_WITH_WDDM) VBoxOGLcrutil_NOINST.win = true endif -VBoxOGLcrutil_SDKS.win = DXSDK +VBoxOGLcrutil_SDKS.win = $(VBOX_WINPSDK) $(VBOX_WINDDK) VBoxOGLcrutil_INTERMEDIATES = $(VBOX_PATH_CROGL_GENFILES)/cr_opcodes.h if1of ($(KBUILD_TARGET), linux solaris freebsd) VBoxOGLcrutil_INCS += \ @@ -81,11 +81,17 @@ util/util.def \ util/util.rc VBoxOGLcrutil_LIBS.win = \ - $(PATH_SDK_DXSDK_LIB)/ddraw.lib \ - $(PATH_SDK_DXSDK_LIB)/dxguid.lib + $(PATH_SDK_W2K3DDK_LIB)/ddraw.lib \ + $(PATH_SDK_W2K3DDK_LIB)/dxguid.lib \ + $(PATH_SDK_W2K3DDK_LIB)/shlwapi.lib VBoxOGLcrutil_LIBS = \ $(VBOX_LIB_IPRT_GUEST_R3_SHARED) \ $(VBOX_LIB_VBGL_R3_SHARED) + +# Needed by GDEbuger +ifdef CR_NO_GL_SYSTEM_PATH +VBoxOGLcrutil_DEFS += CR_NO_GL_SYSTEM_PATH +endif ifdef VBOX_WITH_CRHGSMI VBoxOGLcrutil_DEFS.win += VBOX_WITH_CRHGSMI VBoxOGLcrutil_LIBS.win += $(VBOX_PATH_ADDITIONS_LIB)/VBoxCrHgsmi$(VBOX_SUFF_LIB) @@ -97,7 +103,7 @@ VBoxOGLcrutil_pixel.c_CFLAGS.win.x86 += -Od VBoxOGLhostcrutil_pixel.c_CFLAGS.win.x86 += -Od -if defined(VBOX_WITH_WDDM) && !defined(VBOX_WITHOUT_ADDITIONS) +if defined(VBOX_WITH_WDDM) && defined(VBOX_WITH_ADDITIONS) # # VBoxOGLcrutil-x86 - x86 VBoxOGLcrutil version built for amd64 build # @@ -108,8 +114,8 @@ VBoxOGLcrutil-x86_LIBS = $(VBOX_LIB_IPRT_GUEST_R3_SHARED_X86) \ $(VBOX_LIB_VBGL_R3_SHARED_X86) VBoxOGLcrutil-x86_LIBS.win = \ - $(PATH_SDK_DXSDK_LIB.x86)/ddraw.lib \ - $(PATH_SDK_DXSDK_LIB.x86)/dxguid.lib + $(PATH_SDK_W2K3DDK_LIB.x86)/ddraw.lib \ + $(PATH_SDK_W2K3DDK_LIB.x86)/dxguid.lib ifdef VBOX_WITH_CRHGSMI # VBOX_WITH_CRHGSMI define is inherited from VBoxOGLcrutil VBoxOGLcrutil-x86_LIBS.win += $(VBOX_PATH_ADDITIONS_LIB)/VBoxCrHgsmi-x86$(VBOX_SUFF_LIB) @@ -241,7 +247,7 @@ $(VBOX_PATH_CROGL_GENFILES)/cr_opcodes.h \ $(VBOX_PATH_CROGL_GENFILES)/state/cr_currentpointers.h -if defined(VBOX_WITH_WDDM) && !defined(VBOX_WITHOUT_ADDITIONS) +if defined(VBOX_WITH_WDDM) && defined(VBOX_WITH_ADDITIONS) # # VBoxOGLcrpacker-x86 - x86 VBoxOGLcrpacker version built for amd64 build # @@ -320,7 +326,7 @@ $(VBOX_PATH_CROGL_GENFILES)/spu_dispatch_table.h -if defined(VBOX_WITH_WDDM) && !defined(VBOX_WITHOUT_ADDITIONS) +if defined(VBOX_WITH_WDDM) && defined(VBOX_WITH_ADDITIONS) # # VBoxOGLspuload-x86 - x86 VBoxOGLspuload version built for amd64 build # @@ -449,7 +455,7 @@ endif -if defined(VBOX_WITH_WDDM) && !defined(VBOX_WITHOUT_ADDITIONS) +if defined(VBOX_WITH_WDDM) && defined(VBOX_WITH_ADDITIONS) # # VBoxOGLcrstate-x86 - x86 VBoxOGLcrstate version built for amd64 build # @@ -570,7 +576,7 @@ VBoxOGLerrorspu_LIBS = \ $(VBOX_LIB_OGL_CRUTIL) -if defined(VBOX_WITH_WDDM) && !defined(VBOX_WITHOUT_ADDITIONS) +if defined(VBOX_WITH_WDDM) && defined(VBOX_WITH_ADDITIONS) # # VBoxOGLerrorspu-x86 - x86 VBoxOGLerrorspu version built for amd64 build # diff -Nru virtualbox-4.1.12-dfsg/src/VBox/GuestHost/OpenGL/packer/pack_framebuffer.c virtualbox-4.1.44-dfsg/src/VBox/GuestHost/OpenGL/packer/pack_framebuffer.c --- virtualbox-4.1.12-dfsg/src/VBox/GuestHost/OpenGL/packer/pack_framebuffer.c 2012-04-02 13:28:45.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/GuestHost/OpenGL/packer/pack_framebuffer.c 2015-11-11 15:08:37.000000000 +0000 @@ -47,7 +47,7 @@ return; data_ptr = (unsigned char *) crPackAlloc(packet_length); - WRITE_DATA(0, GLenum, CR_DELETERENDERBUFFERSEXT_EXTEND_OPCODE); + WRITE_DATA(0, GLenum, CR_DELETEFRAMEBUFFERSEXT_EXTEND_OPCODE); WRITE_DATA(4, GLsizei, n); crMemcpy(data_ptr + 8, framebuffers, n* sizeof(*framebuffers)); crHugePacket(CR_EXTEND_OPCODE, data_ptr); diff -Nru virtualbox-4.1.12-dfsg/src/VBox/GuestHost/OpenGL/spu_loader/glloader.py virtualbox-4.1.44-dfsg/src/VBox/GuestHost/OpenGL/spu_loader/glloader.py --- virtualbox-4.1.12-dfsg/src/VBox/GuestHost/OpenGL/spu_loader/glloader.py 2012-04-02 13:28:46.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/GuestHost/OpenGL/spu_loader/glloader.py 2015-11-11 15:08:37.000000000 +0000 @@ -65,10 +65,6 @@ #define GLLOADER_APIENTRY #endif -#if defined(WINDOWS) && (defined(DEBUG_leo) || defined(DEBUG_ll158262) || defined(DEBUG_misha)) -# define CR_NO_GL_SYSTEM_PATH 1 -#endif - /* * Add an entry to the SPUNamedFunctionTable */ diff -Nru virtualbox-4.1.12-dfsg/src/VBox/GuestHost/OpenGL/util/dll.c virtualbox-4.1.44-dfsg/src/VBox/GuestHost/OpenGL/util/dll.c --- virtualbox-4.1.12-dfsg/src/VBox/GuestHost/OpenGL/util/dll.c 2012-04-02 13:28:46.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/GuestHost/OpenGL/util/dll.c 2015-11-11 15:08:39.000000000 +0000 @@ -18,6 +18,10 @@ #include #endif +#ifdef WINDOWS +#include +#endif + #ifdef DARWIN #include @@ -147,7 +151,6 @@ #endif - /* * Open the named shared library. * If resolveGlobal is non-zero, unresolved symbols can be satisfied by @@ -162,14 +165,53 @@ { CRDLL *dll; char *dll_err; +#if defined(WINDOWS) + char szPath[MAX_PATH]; + + (void) resolveGlobal; + +# ifndef CR_NO_GL_SYSTEM_PATH + if (PathIsRelative(dllname)) + { + size_t cbName = strlen(dllname) + 1; +# ifdef IN_GUEST + UINT cchPath = GetSystemDirectoryA(szPath, sizeof(szPath)); +# else + UINT cchPath = GetModuleFileNameA(NULL, szPath, sizeof(szPath)); + if (cchPath != 0 && cchPath <= sizeof(szPath)) + { + char * pszSlashFile = strrchr(szPath, '\\'); + if (pszSlashFile) + { + cchPath = pszSlashFile - szPath; + } + } +# endif + + if (cchPath + 1 + cbName > sizeof(szPath)) + { + crError("invalid path specified"); + SetLastError(ERROR_FILENAME_EXCED_RANGE); + return NULL; + } + szPath[cchPath] = '\\'; + memcpy(&szPath[cchPath + 1], dllname, cbName); + + dllname = szPath; + } +# endif // CR_NO_GL_SYSTEM_PATH +#endif dll = (CRDLL *) crAlloc( sizeof( CRDLL ) ); dll->name = crStrdup( dllname ); #if defined(WINDOWS) - (void) resolveGlobal; - dll->hinstLib = LoadLibrary( dllname ); - dll_err = NULL; + dll->hinstLib = LoadLibrary( dllname ); + if (!dll->hinstLib) + { + crError("failed to load dll %s", dllname); + } + dll_err = NULL; #elif defined(DARWIN) /* XXX \todo Get better error handling in here */ dll->type = get_dll_type( dllname ); diff -Nru virtualbox-4.1.12-dfsg/src/VBox/GuestHost/OpenGL/util/net.c virtualbox-4.1.44-dfsg/src/VBox/GuestHost/OpenGL/util/net.c --- virtualbox-4.1.12-dfsg/src/VBox/GuestHost/OpenGL/util/net.c 2012-04-02 13:28:46.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/GuestHost/OpenGL/util/net.c 2015-11-11 15:08:39.000000000 +0000 @@ -957,7 +957,7 @@ conn->InstantReclaim( conn, (CRMessage *) msg ); } - +#ifdef IN_GUEST /** * Called by the main receive function when we get a CR_MESSAGE_WRITEBACK * message. Writeback is used to implement glGet*() functions. @@ -990,7 +990,7 @@ (*writeback)--; crMemcpy( dest_ptr, ((char *)rb) + sizeof(*rb), payload_len ); } - +#endif /** * This is used by the SPUs that do packing (such as Pack, Tilesort and @@ -1068,13 +1068,21 @@ } break; case CR_MESSAGE_READ_PIXELS: - crError( "Can't handle read pixels" ); + crWarning( "Can't handle read pixels" ); return; case CR_MESSAGE_WRITEBACK: +#ifdef IN_GUEST crNetRecvWriteback( &(pRealMsg->writeback) ); +#else + crWarning("CR_MESSAGE_WRITEBACK not expected\n"); +#endif return; case CR_MESSAGE_READBACK: +#ifdef IN_GUEST crNetRecvReadback( &(pRealMsg->readback), len ); +#else + crWarning("CR_MESSAGE_READBACK not expected\n"); +#endif return; case CR_MESSAGE_CRUT: /* nothing */ @@ -1092,7 +1100,7 @@ { char string[128]; crBytesToString( string, sizeof(string), msg, len ); - crError("crNetDefaultRecv: received a bad message: type=%d buf=[%s]\n" + crWarning("crNetDefaultRecv: received a bad message: type=%d buf=[%s]\n" "Did you add a new message type and forget to tell " "crNetDefaultRecv() about it?\n", msg->header.type, string ); diff -Nru virtualbox-4.1.12-dfsg/src/VBox/GuestHost/OpenGL/util/vboxhgcm.c virtualbox-4.1.44-dfsg/src/VBox/GuestHost/OpenGL/util/vboxhgcm.c --- virtualbox-4.1.12-dfsg/src/VBox/GuestHost/OpenGL/util/vboxhgcm.c 2012-04-02 13:28:46.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/GuestHost/OpenGL/util/vboxhgcm.c 2015-11-11 15:08:39.000000000 +0000 @@ -2022,7 +2022,6 @@ rc = pClient->pHgsmi->pfnBufferCreate(pClient->pHgsmi, CRVBOXHGSMI_PAGE_ALIGN(cbWriteback), VBOXUHGSMI_SYNCHOBJECT_TYPE_NONE, NULL, &pClient->pHGBuffer); AssertRC(rc); - CRASSERT(RT_SUCCESS(rc)); if (RT_SUCCESS(rc)) { rc = pOldBuf->pfnDestroy(pOldBuf); diff -Nru virtualbox-4.1.12-dfsg/src/VBox/HostDrivers/linux/export_modules virtualbox-4.1.44-dfsg/src/VBox/HostDrivers/linux/export_modules --- virtualbox-4.1.12-dfsg/src/VBox/HostDrivers/linux/export_modules 2012-04-02 13:28:49.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/HostDrivers/linux/export_modules 2015-11-11 15:08:44.000000000 +0000 @@ -90,7 +90,6 @@ done sed -e "s;_VERSION_;$VBOX_VERSION_STRING;g" < $PATH_LINUX/build_in_tmp > $PATH_TMP/vboxdrv/build_in_tmp chmod 0755 $PATH_TMP/vboxdrv/build_in_tmp -sed -e "s;_VERSION_;$VBOX_VERSION_STRING;g" < $PATH_VBOXDRV/linux/dkms.conf > $PATH_TMP/vboxdrv/dkms.conf if [ -n "$VBOX_WITH_HARDENING" ]; then cat $PATH_VBOXDRV/linux/Makefile > $PATH_TMP/vboxdrv/Makefile else @@ -104,7 +103,6 @@ done sed -e "s;_VERSION_;$VBOX_VERSION_STRING;g" < $PATH_LINUX/build_in_tmp > $PATH_TMP/vboxnetflt/build_in_tmp chmod 0755 $PATH_TMP/vboxnetflt/build_in_tmp -sed -e "s;_VERSION_;$VBOX_VERSION_STRING;g" < $PATH_VBOXNET/linux/dkms.conf > $PATH_TMP/vboxnetflt/dkms.conf if [ -n "$VBOX_WITH_HARDENING" ]; then cat $PATH_VBOXNET/linux/Makefile > $PATH_TMP/vboxnetflt/Makefile else @@ -118,7 +116,6 @@ done sed -e "s;_VERSION_;$VBOX_VERSION_STRING;g" < $PATH_LINUX/build_in_tmp > $PATH_TMP/vboxnetadp/build_in_tmp chmod 0755 $PATH_TMP/vboxnetadp/build_in_tmp -sed -e "s;_VERSION_;$VBOX_VERSION_STRING;g" < $PATH_VBOXADP/linux/dkms.conf > $PATH_TMP/vboxnetadp/dkms.conf if [ -n "$VBOX_WITH_HARDENING" ]; then cat $PATH_VBOXADP/linux/Makefile > $PATH_TMP/vboxnetadp/Makefile else @@ -132,7 +129,6 @@ done sed -e "s;_VERSION_;$VBOX_VERSION_STRING;g" < $PATH_LINUX/build_in_tmp > $PATH_TMP/vboxpci/build_in_tmp chmod 0755 $PATH_TMP/vboxpci/build_in_tmp -sed -e "s;_VERSION_;$VBOX_VERSION_STRING;g" < $PATH_VBOXPCI/linux/dkms.conf > $PATH_TMP/vboxpci/dkms.conf if [ -n "$VBOX_WITH_HARDENING" ]; then cat $PATH_VBOXPCI/linux/Makefile > $PATH_TMP/vboxpci/Makefile else diff -Nru virtualbox-4.1.12-dfsg/src/VBox/HostDrivers/Support/darwin/SUPDrv-darwin.cpp virtualbox-4.1.44-dfsg/src/VBox/HostDrivers/Support/darwin/SUPDrv-darwin.cpp --- virtualbox-4.1.12-dfsg/src/VBox/HostDrivers/Support/darwin/SUPDrv-darwin.cpp 2012-04-02 13:28:47.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/HostDrivers/Support/darwin/SUPDrv-darwin.cpp 2015-11-11 15:08:40.000000000 +0000 @@ -338,8 +338,10 @@ /** * Device open. Called on open /dev/vboxdrv * - * @param pInode Pointer to inode info structure. - * @param pFilp Associated file pointer. + * @param Dev The device number. + * @param fFlags ???. + * @param fDevType ???. + * @param pProcess The process issuing this request. */ static int VBoxDrvDarwinOpen(dev_t Dev, int fFlags, int fDevType, struct proc *pProcess) { @@ -351,10 +353,24 @@ #endif /* + * Only two minor devices numbers are allowed. + */ + if (minor(Dev) != 0 && minor(Dev) != 1) + return EACCES; + + /* + * The process issuing the request must be the current process. + */ + RTPROCESS Process = RTProcSelf(); + if ((pid_t)Process != proc_pid(pProcess)) + return EIO; + + /* * Find the session created by org_virtualbox_SupDrvClient, fail * if no such session, and mark it as opened. We set the uid & gid * here too, since that is more straight forward at this point. */ + const bool fUnrestricted = minor(Dev) == 0; int rc = VINF_SUCCESS; PSUPDRVSESSION pSession = NULL; kauth_cred_t pCred = kauth_cred_proc_ref(pProcess); @@ -367,22 +383,19 @@ RTUID Uid = pCred->cr_ruid; RTGID Gid = pCred->cr_rgid; #endif - RTPROCESS Process = RTProcSelf(); unsigned iHash = SESSION_HASH(Process); RTSPINLOCKTMP Tmp = RTSPINLOCKTMP_INITIALIZER; RTSpinlockAcquireNoInts(g_Spinlock, &Tmp); pSession = g_apSessionHashTab[iHash]; - if (pSession && pSession->Process != Process) - { - do pSession = pSession->pNextHash; - while (pSession && pSession->Process != Process); - } + while (pSession && pSession->Process != Process) + pSession = pSession->pNextHash; if (pSession) { if (!pSession->fOpened) { pSession->fOpened = true; + pSession->fUnrestricted = fUnrestricted; pSession->Uid = Uid; pSession->Gid = Gid; } @@ -441,6 +454,7 @@ */ static int VBoxDrvDarwinIOCtl(dev_t Dev, u_long iCmd, caddr_t pData, int fFlags, struct proc *pProcess) { + const bool fUnrestricted = minor(Dev) == 0; RTSPINLOCKTMP Tmp = RTSPINLOCKTMP_INITIALIZER; const RTPROCESS Process = proc_pid(pProcess); const unsigned iHash = SESSION_HASH(Process); @@ -451,13 +465,14 @@ */ RTSpinlockAcquireNoInts(g_Spinlock, &Tmp); pSession = g_apSessionHashTab[iHash]; - if (pSession && pSession->Process != Process) - { - do pSession = pSession->pNextHash; - while (pSession && pSession->Process != Process); - } + while (pSession && (pSession->Process != Process || pSession->fUnrestricted != fUnrestricted || !pSession->fOpened)) + pSession = pSession->pNextHash; + + if (RT_LIKELY(pSession)) + supdrvSessionRetain(pSession); + RTSpinlockReleaseNoInts(g_Spinlock, &Tmp); - if (!pSession) + if (RT_UNLIKELY(!pSession)) { OSDBGPRINT(("VBoxDrvDarwinIOCtl: WHAT?!? pSession == NULL! This must be a mistake... pid=%d iCmd=%#lx\n", (int)Process, iCmd)); @@ -468,11 +483,17 @@ * Deal with the two high-speed IOCtl that takes it's arguments from * the session and iCmd, and only returns a VBox status code. */ - if ( iCmd == SUP_IOCTL_FAST_DO_RAW_RUN - || iCmd == SUP_IOCTL_FAST_DO_HWACC_RUN - || iCmd == SUP_IOCTL_FAST_DO_NOP) - return supdrvIOCtlFast(iCmd, *(uint32_t *)pData, &g_DevExt, pSession); - return VBoxDrvDarwinIOCtlSlow(pSession, iCmd, pData, pProcess); + int rc; + if ( ( iCmd == SUP_IOCTL_FAST_DO_RAW_RUN + || iCmd == SUP_IOCTL_FAST_DO_HWACC_RUN + || iCmd == SUP_IOCTL_FAST_DO_NOP) + && fUnrestricted) + rc = supdrvIOCtlFast(iCmd, *(uint32_t *)pData, &g_DevExt, pSession); + else + rc = VBoxDrvDarwinIOCtlSlow(pSession, iCmd, pData, pProcess); + + supdrvSessionRelease(pSession); + return rc; } @@ -568,6 +589,8 @@ RTMemTmpFree(pHdr); return rc; } + if (Hdr.cbIn < cbReq) + RT_BZERO((uint8_t *)pHdr + Hdr.cbIn, cbReq - Hdr.cbIn); } else { @@ -578,7 +601,7 @@ /* * Process the IOCtl. */ - int rc = supdrvIOCtl(iCmd, &g_DevExt, pSession, pHdr); + int rc = supdrvIOCtl(iCmd, &g_DevExt, pSession, pHdr, cbReq); if (RT_LIKELY(!rc)) { /* @@ -633,7 +656,7 @@ * @param iReq The request code. * @param pReq The request. */ -int VBOXCALL SUPDrvDarwinIDC(uint32_t uReq, PSUPDRVIDCREQHDR pReq) +DECLEXPORT(int) VBOXCALL SUPDrvDarwinIDC(uint32_t uReq, PSUPDRVIDCREQHDR pReq) { PSUPDRVSESSION pSession; @@ -661,6 +684,25 @@ } +void VBOXCALL supdrvOSCleanupSession(PSUPDRVDEVEXT pDevExt, PSUPDRVSESSION pSession) +{ + NOREF(pDevExt); + NOREF(pSession); +} + + +void VBOXCALL supdrvOSSessionHashTabInserted(PSUPDRVDEVEXT pDevExt, PSUPDRVSESSION pSession, void *pvUser) +{ + NOREF(pDevExt); NOREF(pSession); NOREF(pvUser); +} + + +void VBOXCALL supdrvOSSessionHashTabRemoved(PSUPDRVDEVEXT pDevExt, PSUPDRVSESSION pSession, void *pvUser) +{ + NOREF(pDevExt); NOREF(pSession); NOREF(pvUser); +} + + /** * Initializes any OS specific object creator fields. */ @@ -970,7 +1012,7 @@ /* * Create a new session. */ - int rc = supdrvCreateSession(&g_DevExt, true /* fUser */, &m_pSession); + int rc = supdrvCreateSession(&g_DevExt, true /* fUser */, true /* fUnrestricted */, &m_pSession); if (RT_SUCCESS(rc)) { m_pSession->fOpened = false; @@ -978,18 +1020,15 @@ /* * Insert it into the hash table, checking that there isn't - * already one for this process first. + * already one for this process first. (One session per proc!) */ unsigned iHash = SESSION_HASH(m_pSession->Process); RTSPINLOCKTMP Tmp = RTSPINLOCKTMP_INITIALIZER; RTSpinlockAcquireNoInts(g_Spinlock, &Tmp); PSUPDRVSESSION pCur = g_apSessionHashTab[iHash]; - if (pCur && pCur->Process != m_pSession->Process) - { - do pCur = pCur->pNextHash; - while (pCur && pCur->Process != m_pSession->Process); - } + while (pCur && pCur->Process != m_pSession->Process) + pCur = pCur->pNextHash; if (!pCur) { m_pSession->pNextHash = g_apSessionHashTab[iHash]; @@ -1009,7 +1048,7 @@ } LogFlow(("org_virtualbox_SupDrvClient::start: already got a session for this process (%p)\n", pCur)); - supdrvCloseSession(&g_DevExt, m_pSession); + supdrvSessionRelease(m_pSession); } m_pSession = NULL; @@ -1024,13 +1063,14 @@ /** * Common worker for clientClose and VBoxDrvDarwinClose. - * - * It will */ /* static */ void org_virtualbox_SupDrvClient::sessionClose(RTPROCESS Process) { /* - * Look for the session. + * Find the session and remove it from the hash table. + * + * Note! Only one session per process. (Both start() and + * VBoxDrvDarwinOpen makes sure this is so.) */ const unsigned iHash = SESSION_HASH(Process); RTSPINLOCKTMP Tmp = RTSPINLOCKTMP_INITIALIZER; @@ -1085,7 +1125,7 @@ /* * Close the session. */ - supdrvCloseSession(&g_DevExt, pSession); + supdrvSessionRelease(pSession); } diff -Nru virtualbox-4.1.12-dfsg/src/VBox/HostDrivers/Support/darwin/SUPLib-darwin.cpp virtualbox-4.1.44-dfsg/src/VBox/HostDrivers/Support/darwin/SUPLib-darwin.cpp --- virtualbox-4.1.12-dfsg/src/VBox/HostDrivers/Support/darwin/SUPLib-darwin.cpp 2012-04-02 13:28:47.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/HostDrivers/Support/darwin/SUPLib-darwin.cpp 2015-11-11 15:08:40.000000000 +0000 @@ -182,8 +182,10 @@ } -int suplibOsInit(PSUPLIBDATA pThis, bool fPreInited) +int suplibOsInit(PSUPLIBDATA pThis, bool fPreInited, bool fUnrestricted, SUPINITOP *penmWhat, PRTERRINFO pErrInfo) { + Assert(fUnrestricted); + /* * Nothing to do if pre-inited. */ diff -Nru virtualbox-4.1.12-dfsg/src/VBox/HostDrivers/Support/freebsd/SUPDrv-freebsd.c virtualbox-4.1.44-dfsg/src/VBox/HostDrivers/Support/freebsd/SUPDrv-freebsd.c --- virtualbox-4.1.12-dfsg/src/VBox/HostDrivers/Support/freebsd/SUPDrv-freebsd.c 2012-04-02 13:28:47.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/HostDrivers/Support/freebsd/SUPDrv-freebsd.c 2015-11-11 15:08:40.000000000 +0000 @@ -320,7 +320,7 @@ /* * Create a new session. */ - rc = supdrvCreateSession(&g_VBoxDrvFreeBSDDevExt, true /* fUser */, &pSession); + rc = supdrvCreateSession(&g_VBoxDrvFreeBSDDevExt, true /* fUser */, true /* fUnrestricted */, &pSession); if (RT_SUCCESS(rc)) { /** @todo get (r)uid and (r)gid. @@ -363,7 +363,7 @@ */ if (VALID_PTR(pSession)) { - supdrvCloseSession(&g_VBoxDrvFreeBSDDevExt, pSession); + supdrvSessionRelease(pSession); if (!ASMAtomicCmpXchgPtr(&pDev->si_drv1, NULL, pSession)) OSDBGPRINT(("VBoxDrvFreeBSDClose: si_drv1=%p expected %p!\n", pDev->si_drv1, pSession)); ASMAtomicDecU32(&g_cUsers); @@ -398,9 +398,10 @@ /* * Deal with the fast ioctl path first. */ - if ( ulCmd == SUP_IOCTL_FAST_DO_RAW_RUN - || ulCmd == SUP_IOCTL_FAST_DO_HWACC_RUN - || ulCmd == SUP_IOCTL_FAST_DO_NOP) + if ( ( ulCmd == SUP_IOCTL_FAST_DO_RAW_RUN + || ulCmd == SUP_IOCTL_FAST_DO_HWACC_RUN + || ulCmd == SUP_IOCTL_FAST_DO_NOP) + && pSession->fUnrestricted == true) return supdrvIOCtlFast(ulCmd, *(uint32_t *)pvData, &g_VBoxDrvFreeBSDDevExt, pSession); return VBoxDrvFreeBSDIOCtlSlow(pSession, ulCmd, pvData, pTd); @@ -493,6 +494,8 @@ RTMemTmpFree(pHdr); return rc; } + if (Hdr.cbIn < cbReq) + RT_BZERO((uint8_t *)pHdr + Hdr.cbIn, cbReq - Hdr.cbIn); } else { @@ -503,7 +506,7 @@ /* * Process the IOCtl. */ - int rc = supdrvIOCtl(ulCmd, &g_VBoxDrvFreeBSDDevExt, pSession, pHdr); + int rc = supdrvIOCtl(ulCmd, &g_VBoxDrvFreeBSDDevExt, pSession, pHdr, cbReq); if (RT_LIKELY(!rc)) { /* @@ -578,6 +581,25 @@ } +void VBOXCALL supdrvOSCleanupSession(PSUPDRVDEVEXT pDevExt, PSUPDRVSESSION pSession) +{ + NOREF(pDevExt); + NOREF(pSession); +} + + +void VBOXCALL supdrvOSSessionHashTabInserted(PSUPDRVDEVEXT pDevExt, PSUPDRVSESSION pSession, void *pvUser) +{ + NOREF(pDevExt); NOREF(pSession); NOREF(pvUser); +} + + +void VBOXCALL supdrvOSSessionHashTabRemoved(PSUPDRVDEVEXT pDevExt, PSUPDRVSESSION pSession, void *pvUser) +{ + NOREF(pDevExt); NOREF(pSession); NOREF(pvUser); +} + + void VBOXCALL supdrvOSObjInitCreator(PSUPDRVOBJ pObj, PSUPDRVSESSION pSession) { NOREF(pObj); diff -Nru virtualbox-4.1.12-dfsg/src/VBox/HostDrivers/Support/freebsd/SUPLib-freebsd.cpp virtualbox-4.1.44-dfsg/src/VBox/HostDrivers/Support/freebsd/SUPLib-freebsd.cpp --- virtualbox-4.1.12-dfsg/src/VBox/HostDrivers/Support/freebsd/SUPLib-freebsd.cpp 2012-04-02 13:28:47.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/HostDrivers/Support/freebsd/SUPLib-freebsd.cpp 2015-11-11 15:08:40.000000000 +0000 @@ -65,8 +65,10 @@ -int suplibOsInit(PSUPLIBDATA pThis, bool fPreInited) +int suplibOsInit(PSUPLIBDATA pThis, bool fPreInited, bool fUnrestricted, SUPINITOP *penmWhat, PRTERRINFO pErrInfo) { + Assert(fUnrestricted); + /* * Nothing to do if pre-inited. */ diff -Nru virtualbox-4.1.12-dfsg/src/VBox/HostDrivers/Support/linux/dkms.conf virtualbox-4.1.44-dfsg/src/VBox/HostDrivers/Support/linux/dkms.conf --- virtualbox-4.1.12-dfsg/src/VBox/HostDrivers/Support/linux/dkms.conf 2012-04-02 13:28:47.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/HostDrivers/Support/linux/dkms.conf 1970-01-01 00:00:00.000000000 +0000 @@ -1,6 +0,0 @@ -BUILT_MODULE_NAME=vboxdrv -DEST_MODULE_LOCATION=/kernel/misc -PACKAGE_NAME=vboxdrv -PACKAGE_VERSION=_VERSION_ -AUTOINSTALL=yes -POST_BUILD="do_Module.symvers vboxdrv save $dkms_tree/$module/$module_version/build/Module.symvers" diff -Nru virtualbox-4.1.12-dfsg/src/VBox/HostDrivers/Support/linux/SUPDrv-linux.c virtualbox-4.1.44-dfsg/src/VBox/HostDrivers/Support/linux/SUPDrv-linux.c --- virtualbox-4.1.12-dfsg/src/VBox/HostDrivers/Support/linux/SUPDrv-linux.c 2012-04-02 13:28:47.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/HostDrivers/Support/linux/SUPDrv-linux.c 2015-11-11 15:08:40.000000000 +0000 @@ -1,4 +1,4 @@ -/* $Rev: 74561 $ */ +/* $Rev: 103362 $ */ /** @file * VBoxDrv - The VirtualBox Support Driver - Linux specifics. */ @@ -84,6 +84,10 @@ # error "CONFIG_X86_HIGH_ENTRY is not supported by VBoxDrv at this time." #endif +#ifdef CONFIG_X86_SMAP +# error "CONFIG_X86_SMAP is only supported by 4.3 and higher. Please upgrade VirtualBox." +#endif + /* to include the version number of VirtualBox into kernel backtraces */ #define VBoxDrvLinuxVersion RT_CONCAT3(RT_CONCAT(VBOX_VERSION_MAJOR, _), \ RT_CONCAT(VBOX_VERSION_MINOR, _), \ @@ -102,7 +106,7 @@ #else static int VBoxDrvLinuxIOCtl(struct inode *pInode, struct file *pFilp, unsigned int uCmd, unsigned long ulArg); #endif -static int VBoxDrvLinuxIOCtlSlow(struct file *pFilp, unsigned int uCmd, unsigned long ulArg); +static int VBoxDrvLinuxIOCtlSlow(struct file *pFilp, unsigned int uCmd, unsigned long ulArg, PSUPDRVSESSION pSession); static int VBoxDrvLinuxErr2LinuxErr(int); #ifdef VBOX_WITH_SUSPEND_NOTIFICATION static int VBoxDrvProbe(struct platform_device *pDev); @@ -223,7 +227,11 @@ DECLINLINE(RTUID) vboxdrvLinuxUid(void) { #if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 29) +# if LINUX_VERSION_CODE >= KERNEL_VERSION(3, 5, 0) + return from_kuid(current_user_ns(), current->cred->uid); +# else return current->cred->uid; +# endif #else return current->uid; #endif @@ -232,7 +240,11 @@ DECLINLINE(RTGID) vboxdrvLinuxGid(void) { #if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 29) +# if LINUX_VERSION_CODE >= KERNEL_VERSION(3, 5, 0) + return from_kgid(current_user_ns(), current->cred->gid); +# else return current->cred->gid; +# endif #else return current->gid; #endif @@ -241,7 +253,11 @@ DECLINLINE(RTUID) vboxdrvLinuxEuid(void) { #if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 29) +# if LINUX_VERSION_CODE >= KERNEL_VERSION(3, 5, 0) + return from_kuid(current_user_ns(), current->cred->euid); +# else return current->cred->euid; +# endif #else return current->euid; #endif @@ -308,13 +324,9 @@ rc = RTR0Init(0); if (RT_SUCCESS(rc)) { -#ifdef RT_ARCH_AMD64 -# ifdef CONFIG_DEBUG_SET_MODULE_RONX - rc = RTR0MemExecInit(1572864 /* 1.5MB */); -# else +#if defined(RT_ARCH_AMD64) && LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 23) rc = RTR0MemExecDonate(&g_abExecMemory[0], sizeof(g_abExecMemory)); printk(KERN_DEBUG "VBoxDrv: dbg - g_abExecMemory=%p\n", (void *)&g_abExecMemory[0]); -# endif #endif Log(("VBoxDrv::ModuleInit\n")); @@ -439,7 +451,7 @@ /* * Call common code for the rest. */ - rc = supdrvCreateSession(&g_DevExt, true /* fUser */, &pSession); + rc = supdrvCreateSession(&g_DevExt, true /* fUser */, true /* fUnrestricted */, &pSession); if (!rc) { pSession->Uid = vboxdrvLinuxUid(); @@ -465,7 +477,7 @@ { Log(("VBoxDrvLinuxClose: pFilp=%p pSession=%p pid=%d/%d %s\n", pFilp, pFilp->private_data, RTProcSelf(), current->pid, current->comm)); - supdrvCloseSession(&g_DevExt, (PSUPDRVSESSION)pFilp->private_data); + supdrvSessionRelease((PSUPDRVSESSION)pFilp->private_data); pFilp->private_data = NULL; return 0; } @@ -537,27 +549,31 @@ static int VBoxDrvLinuxIOCtl(struct inode *pInode, struct file *pFilp, unsigned int uCmd, unsigned long ulArg) #endif { + PSUPDRVSESSION pSession = (PSUPDRVSESSION)pFilp->private_data; + /* * Deal with the two high-speed IOCtl that takes it's arguments from * the session and iCmd, and only returns a VBox status code. */ #ifdef HAVE_UNLOCKED_IOCTL - if (RT_LIKELY( uCmd == SUP_IOCTL_FAST_DO_RAW_RUN - || uCmd == SUP_IOCTL_FAST_DO_HWACC_RUN - || uCmd == SUP_IOCTL_FAST_DO_NOP)) - return supdrvIOCtlFast(uCmd, ulArg, &g_DevExt, (PSUPDRVSESSION)pFilp->private_data); - return VBoxDrvLinuxIOCtlSlow(pFilp, uCmd, ulArg); + if (RT_LIKELY( ( uCmd == SUP_IOCTL_FAST_DO_RAW_RUN + || uCmd == SUP_IOCTL_FAST_DO_HWACC_RUN + || uCmd == SUP_IOCTL_FAST_DO_NOP) + && pSession->fUnrestricted == true)) + return supdrvIOCtlFast(uCmd, ulArg, &g_DevExt, pSession); + return VBoxDrvLinuxIOCtlSlow(pFilp, uCmd, ulArg, pSession); #else /* !HAVE_UNLOCKED_IOCTL */ int rc; unlock_kernel(); - if (RT_LIKELY( uCmd == SUP_IOCTL_FAST_DO_RAW_RUN - || uCmd == SUP_IOCTL_FAST_DO_HWACC_RUN - || uCmd == SUP_IOCTL_FAST_DO_NOP)) - rc = supdrvIOCtlFast(uCmd, ulArg, &g_DevExt, (PSUPDRVSESSION)pFilp->private_data); + if (RT_LIKELY( ( uCmd == SUP_IOCTL_FAST_DO_RAW_RUN + || uCmd == SUP_IOCTL_FAST_DO_HWACC_RUN + || uCmd == SUP_IOCTL_FAST_DO_NOP) + && pSession->fUnrestricted == true)) + rc = supdrvIOCtlFast(uCmd, ulArg, &g_DevExt, pSession); else - rc = VBoxDrvLinuxIOCtlSlow(pFilp, uCmd, ulArg); + rc = VBoxDrvLinuxIOCtlSlow(pFilp, uCmd, ulArg, pSession); lock_kernel(); return rc; #endif /* !HAVE_UNLOCKED_IOCTL */ @@ -570,8 +586,9 @@ * @param pFilp Associated file pointer. * @param uCmd The function specified to ioctl(). * @param ulArg The argument specified to ioctl(). + * @param pSession The session instance. */ -static int VBoxDrvLinuxIOCtlSlow(struct file *pFilp, unsigned int uCmd, unsigned long ulArg) +static int VBoxDrvLinuxIOCtlSlow(struct file *pFilp, unsigned int uCmd, unsigned long ulArg, PSUPDRVSESSION pSession) { int rc; SUPREQHDR Hdr; @@ -603,7 +620,7 @@ Log(("VBoxDrvLinuxIOCtl: too big cbBuf=%#x; uCmd=%#x\n", cbBuf, uCmd)); return -E2BIG; } - if (RT_UNLIKELY(cbBuf != _IOC_SIZE(uCmd) && _IOC_SIZE(uCmd))) + if (RT_UNLIKELY(_IOC_SIZE(uCmd) ? cbBuf != _IOC_SIZE(uCmd) : Hdr.cbIn < sizeof(Hdr))) { Log(("VBoxDrvLinuxIOCtl: bad ioctl cbBuf=%#x _IOC_SIZE=%#x; uCmd=%#x.\n", cbBuf, _IOC_SIZE(uCmd), uCmd)); return -EINVAL; @@ -620,11 +637,13 @@ RTMemFree(pHdr); return -EFAULT; } + if (Hdr.cbIn < cbBuf) + RT_BZERO((uint8_t *)pHdr + Hdr.cbIn, cbBuf - Hdr.cbIn); /* * Process the IOCtl. */ - rc = supdrvIOCtl(uCmd, &g_DevExt, (PSUPDRVSESSION)pFilp->private_data, pHdr); + rc = supdrvIOCtl(uCmd, &g_DevExt, pSession, pHdr, cbBuf); /* * Copy ioctl data and output buffer back to user space. @@ -693,6 +712,25 @@ EXPORT_SYMBOL(SUPDrvLinuxIDC); +void VBOXCALL supdrvOSCleanupSession(PSUPDRVDEVEXT pDevExt, PSUPDRVSESSION pSession) +{ + NOREF(pDevExt); + NOREF(pSession); +} + + +void VBOXCALL supdrvOSSessionHashTabInserted(PSUPDRVDEVEXT pDevExt, PSUPDRVSESSION pSession, void *pvUser) +{ + NOREF(pDevExt); NOREF(pSession); NOREF(pvUser); +} + + +void VBOXCALL supdrvOSSessionHashTabRemoved(PSUPDRVDEVEXT pDevExt, PSUPDRVSESSION pSession, void *pvUser) +{ + NOREF(pDevExt); NOREF(pSession); NOREF(pvUser); +} + + /** * Initializes any OS specific object creator fields. */ diff -Nru virtualbox-4.1.12-dfsg/src/VBox/HostDrivers/Support/linux/SUPLib-linux.cpp virtualbox-4.1.44-dfsg/src/VBox/HostDrivers/Support/linux/SUPLib-linux.cpp --- virtualbox-4.1.12-dfsg/src/VBox/HostDrivers/Support/linux/SUPLib-linux.cpp 2012-04-02 13:28:47.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/HostDrivers/Support/linux/SUPLib-linux.cpp 2015-11-11 15:08:40.000000000 +0000 @@ -71,8 +71,10 @@ -int suplibOsInit(PSUPLIBDATA pThis, bool fPreInited) +int suplibOsInit(PSUPLIBDATA pThis, bool fPreInited, bool fUnrestricted, SUPINITOP *penmWhat, PRTERRINFO pErrInfo) { + Assert(fUnrestricted); + /* * Nothing to do if pre-inited. */ diff -Nru virtualbox-4.1.12-dfsg/src/VBox/HostDrivers/Support/Makefile.kmk virtualbox-4.1.44-dfsg/src/VBox/HostDrivers/Support/Makefile.kmk --- virtualbox-4.1.12-dfsg/src/VBox/HostDrivers/Support/Makefile.kmk 2012-04-02 13:28:47.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/HostDrivers/Support/Makefile.kmk 2015-11-11 15:08:39.000000000 +0000 @@ -30,7 +30,11 @@ # # Targets # -LIBRARIES += SUPR3 SUPR3Static SUPR3HardenedStatic +LIBRARIES += SUPR3 SUPR3Static +ifdef VBOX_WITH_HARDENING + LIBRARIES += SUPR3HardenedStatic +endif +DLLS.win += VBoxSupLib ifndef VBOX_ONLY_DOCS if1of ($(VBOX_LDR_FMT), pe lx) LIBRARIES += SUPR0 @@ -69,21 +73,81 @@ endif endif # !VBOX_ONLY_DOCS && !VBOX_ONLY_EXTPACKS && !VBOX_ONLY_TESTSUITE - # -# The Ring-3 Support Library (this is linked into the IPRT dll, VBoxRT). +# Authenticode related trust anchors and certificates -> .cpp # -ifneq ($(filter l4%,$(KBUILD_TARGET) $(BUILD_TARGET_SUB)),) - # L4 has trouble with -pedantic. It also make trouble when inlining is not enabled. - SUPR3_TEMPLATE = VBOXR3NP +VBOX_SUP_WIN_CERTS_FILE = $(SUPR3_0_OUTDIR)/TrustAnchorsAndCerts.cpp +VBOX_SUP_WIN_CERTS := \ + SpcRootMicrosoft0=SpcRoot-MicrosoftAuthenticodeTmRootAuthority-01.taf \ + SpcRootMicrosoft1=SpcRoot-MicrosoftRootAuthority-00c1008b3c3c8811d13ef663ecdf40.taf \ + SpcRootMicrosoft2=SpcRoot-MicrosoftRootCertificateAuthority-79ad16a14aa0a5ad4c7358f407132e65.taf \ + SpcRootMicrosoft3=SpcRoot-MicrosoftRootCertificateAuthority2010-28cc3a25bfba44ac449a9b586b4339aa.taf \ + SpcRootMicrosoft4=SpcRoot-MicrosoftRootCertificateAuthority2011-3f8bc8b5fc9fb29643b569d66c42e144.taf \ + SpcRootMicrosoft5=SpcRoot-MicrosoftDigitalMediaAuthority2005-6eff330eb6e7569740680870104baaba.taf \ + SpcRootMicrosoft6=SpcRoot-MicrosoftDevelopmentRootCertificateAuthority2014-078f0a9d03df119e434e4fec1bf0235a.taf \ + NtRootMicrosoft7=NtRoot-MicrosoftCodeVerificationRoot-729404101f3e0ca347837fca175a8438.taf \ + TimeRootMicrosoft0=Timestamp-CopyrightC1997MicrosoftCorp-01.taf \ + TrustedCertVBox0=Trusted-OracleCorporationVirtualBox-51ca009816fdbd80f120e015ee75823e.taf +VBOX_SUP_WIN_CERT_NAMES := $(foreach cert,$(VBOX_SUP_WIN_CERTS),$(firstword $(subst =,$(SPACE) ,$(cert)))) +VBOX_PATH_SUPR3_CERTIFICATES := $(PATH_SUB_CURRENT)/win/Certificates + +# 1=name, 2=filter, 3=buildcert?. +if "$(KBUILD_TARGET)" == "win" && defined(VBOX_WITH_HARDENING) + VBOX_SUP_GEN_CERT_MACRO = 'SUPTAENTRY const g_aSUP$(1)TAs[] =' '{' \ + $(if-expr "$(3)" == "",,' SUPTAENTRY_GEN(g_abSUPBuildCert),') \ + $(foreach certnm,$(filter $(2),$(VBOX_SUP_WIN_CERT_NAMES)), ' SUPTAENTRY_GEN(g_abSUP$(certnm)),') \ + '};' 'unsigned const g_cSUP$(1)TAs = RT_ELEMENTS(g_aSUP$(1)TAs);' '' '' else - SUPR3_TEMPLATE = VBOXR3 + VBOX_SUP_GEN_CERT_MACRO = 'SUPTAENTRY const g_aSUP$(1)TAs[] =' '{' \ + $(foreach certnm,$(filter $(2),$(VBOX_SUP_WIN_CERT_NAMES)), ' SUPTAENTRY_GEN(g_abSUP$(certnm)),') \ + '};' 'unsigned const g_cSUP$(1)TAs = RT_ELEMENTS(g_aSUP$(1)TAs);' '' '' +endif + +$$(VBOX_SUP_WIN_CERTS_FILE): $(MAKEFILE_CURRENT) \ + $(foreach cert,$(VBOX_SUP_WIN_CERTS),$(VBOX_PATH_SUPR3_CERTIFICATES)/$(lastword $(subst =,$(SPACE) ,$(cert)))) \ + $(VBOX_BIN2C) \ + $(if-expr "$(KBUILD_TARGET)" == "win" && defined(VBOX_WITH_HARDENING),$(VBOX_RTSIGNTOOL)) \ + | $$(dir $$@) + $(QUIET)$(RM) -f -- $@ $@.cer + $(QUIET)$(APPEND) -n "$@" \ + '' \ + '#include ' \ + '' + $(foreach cert,$(VBOX_SUP_WIN_CERTS), $(NLTAB)$(VBOX_BIN2C) -ascii --append \ + "SUP$(firstword $(subst =,$(SP) ,$(cert)))" \ + "$(VBOX_PATH_SUPR3_CERTIFICATES)/$(lastword $(subst =,$(SP) ,$(cert)))" \ + "$@") +# The build certificate. +if "$(KBUILD_TARGET)" == "win" && defined(VBOX_WITH_HARDENING) && defined(VBOX_SIGNING_MODE) + $(VBOX_RTSIGNTOOL) extract-exe-signer-cert --exe $(VBOX_RTSIGNTOOL) --output "$@.cer" --der + $(VBOX_BIN2C) -ascii --append SUPBuildCert "$@.cer" $@ + $(QUIET)$(RM) -f -- $@.cer endif +# Generate certificate lists. + $(QUIET)$(APPEND) -n "$@" '' \ + $(call VBOX_SUP_GEN_CERT_MACRO,All,%,build) \ + $(call VBOX_SUP_GEN_CERT_MACRO,SpcRoot,SpcRoot%) \ + $(call VBOX_SUP_GEN_CERT_MACRO,NtKernelRoot,NtRoot%) \ + $(call VBOX_SUP_GEN_CERT_MACRO,Timestamp,TimeRoot%) \ + $(call VBOX_SUP_GEN_CERT_MACRO,Trusted,TrustedCert%,build) + +tst: $(VBOX_SUP_WIN_CERTS_FILE) + + +# +# The Ring-3 Support Library (this is linked into the IPRT dll, VBoxRT). +# +SUPR3_TEMPLATE = VBOXR3 SUPR3_DEFS = \ IN_SUP_R3 IN_RT_R3 \ $(if $(VBOX_WITH_SUPSVC),VBOX_WITH_SUPSVC) \ $(if $(VBOX_WITH_MAIN),VBOX_WITH_MAIN,) \ - $(if $(VBOX_WITH_RAW_MODE),VBOX_WITH_RAW_MODE,) + $(if $(VBOX_WITH_RAW_MODE),VBOX_WITH_RAW_MODE,) \ + VBOX_PERMIT_MORE \ + VBOX_PERMIT_EVEN_MORE +ifdef VBOX_WITH_HARDENING + SUPR3_SDKS.win = VBoxPsdk200702 +endif SUPR3_INCS := $(PATH_SUB_CURRENT) SUPR3_INCS.l4 = $(L4_INCDIR) SUPR3_SOURCES = \ @@ -91,28 +155,270 @@ SUPLibSem.cpp \ SUPR3HardenedIPRT.cpp \ SUPR3HardenedVerify.cpp \ - $(KBUILD_TARGET)/SUPLib-$(KBUILD_TARGET).cpp + $(KBUILD_TARGET)/SUPLib-$(KBUILD_TARGET).cpp \ + $(VBOX_SUP_WIN_CERTS_FILE) +ifdef VBOX_WITH_HARDENING + SUPR3_SOURCES.win = \ + win/SUPHardenedVerifyImage-win.cpp +endif # -# Static version of SUPR3. +# Static version of SUPR3. This is more of a stub than anything else in a +# hardened build, at least on windows. # SUPR3Static_TEMPLATE = VBOXR3STATIC SUPR3Static_EXTENDS = SUPR3 +SUPR3Static_DEFS = $(SUPR3_DEFS) IN_SUP_R3_STATIC +SUPR3Static_SOURCES.win = $(filter-out win/SUPHardenedVerifyImage-win.cpp, $(SUPR3_SOURCES.win)) + # # The static part of the hardened support library (ring-3). # +VBOX_PATH_RUNTIME_SRC ?= $(PATH_ROOT)/src/VBox/Runtime SUPR3HardenedStatic_TEMPLATE = VBOXR3HARDENEDLIB SUPR3HardenedStatic_DEFS = IN_SUP_HARDENED_R3 SUPR3HardenedStatic_DEFS += \ $(if $(VBOX_WITH_SUPSVC),VBOX_WITH_SUPSVC,) \ $(if $(VBOX_WITH_MAIN),VBOX_WITH_MAIN,) \ - $(if $(VBOX_WITH_RAW_MODE),VBOX_WITH_RAW_MODE,) + $(if $(VBOX_WITH_RAW_MODE),VBOX_WITH_RAW_MODE,) \ + $(if $(VBOX_WITHOUT_DEBUGGER_CHECKS),VBOX_WITHOUT_DEBUGGER_CHECKS,) \ + $(if $(VBOX_PERMIT_VISUAL_STUDIO_PROFILING),VBOX_PERMIT_VISUAL_STUDIO_PROFILING,) \ + VBOX_PERMIT_MORE \ + VBOX_PERMIT_EVEN_MORE +ifdef VBOX_WITH_VISTA_NO_SP + SUPR3HardenedStatic_DEFS.win += VBOX_WITH_VISTA_NO_SP +endif SUPR3HardenedStatic_INCS = . SUPR3HardenedStatic_SOURCES = \ SUPR3HardenedMain.cpp \ SUPR3HardenedVerify.cpp \ + SUPR3HardenedNoCrt.cpp \ $(KBUILD_TARGET)/SUPLib-$(KBUILD_TARGET).cpp +SUPR3HardenedStatic_SOURCES.win = \ + win/SUPR3HardenedMain-win.cpp \ + win/SUPR3HardenedMainA-win.asm \ + win/SUPR3HardenedMainImports-win.cpp \ + win/SUPHardenedVerifyProcess-win.cpp \ + win/SUPHardenedVerifyImage-win.cpp \ + $(VBOX_SUP_WIN_CERTS_FILE) + +if "$(KBUILD_TARGET)" == "win" && defined(VBOX_WITH_HARDENING) ## @todo some of this move up. + SUPR3HardenedStatic_DEFS += \ + IN_RT \ + IN_RT_R3 \ + IN_RT_STATIC \ + IN_DIS \ + DIS_CORE_ONLY \ + IPRT_NO_CRT \ + RT_WITH_NOCRT_ALIASES \ + LOG_DISABLED \ + IPRT_NO_ERROR_DATA + SUPR3HardenedStatic_DEFS.win += LDR_ONLY_PE __STRALIGN_H_ + + SUPR3HardenedStatic_INCS += $(PATH_ROOT)/include/iprt/nocrt $(VBOX_PATH_RUNTIME_SRC)/include + + SUPR3HardenedStatic_SOURCES += \ + $(VBOX_PATH_RUNTIME_SRC)/common/ldr/ldr.cpp \ + $(VBOX_PATH_RUNTIME_SRC)/common/ldr/ldrEx.cpp \ + $(VBOX_PATH_RUNTIME_SRC)/common/ldr/ldrPE.cpp \ + $(VBOX_PATH_RUNTIME_SRC)/common/alloc/heapsimple.cpp \ + $(VBOX_PATH_RUNTIME_SRC)/common/asn1/asn1-basics.cpp \ + $(VBOX_PATH_RUNTIME_SRC)/common/asn1/asn1-cursor.cpp \ + $(VBOX_PATH_RUNTIME_SRC)/common/asn1/asn1-default-allocator.cpp \ + $(VBOX_PATH_RUNTIME_SRC)/common/asn1/asn1-dump.cpp \ + $(VBOX_PATH_RUNTIME_SRC)/common/asn1/asn1-encode.cpp \ + $(VBOX_PATH_RUNTIME_SRC)/common/asn1/asn1-ut-bitstring.cpp \ + $(VBOX_PATH_RUNTIME_SRC)/common/asn1/asn1-ut-bitstring-decode.cpp \ + $(VBOX_PATH_RUNTIME_SRC)/common/asn1/asn1-ut-boolean.cpp \ + $(VBOX_PATH_RUNTIME_SRC)/common/asn1/asn1-ut-boolean-decode.cpp \ + $(VBOX_PATH_RUNTIME_SRC)/common/asn1/asn1-ut-core.cpp \ + $(VBOX_PATH_RUNTIME_SRC)/common/asn1/asn1-ut-core-decode.cpp \ + $(VBOX_PATH_RUNTIME_SRC)/common/asn1/asn1-ut-dyntype.cpp \ + $(VBOX_PATH_RUNTIME_SRC)/common/asn1/asn1-ut-dyntype-decode.cpp \ + $(VBOX_PATH_RUNTIME_SRC)/common/asn1/asn1-ut-integer.cpp \ + $(VBOX_PATH_RUNTIME_SRC)/common/asn1/asn1-ut-integer-decode.cpp \ + $(VBOX_PATH_RUNTIME_SRC)/common/asn1/asn1-ut-null.cpp \ + $(VBOX_PATH_RUNTIME_SRC)/common/asn1/asn1-ut-null-decode.cpp \ + $(VBOX_PATH_RUNTIME_SRC)/common/asn1/asn1-ut-objid.cpp \ + $(VBOX_PATH_RUNTIME_SRC)/common/asn1/asn1-ut-objid-decode.cpp \ + $(VBOX_PATH_RUNTIME_SRC)/common/asn1/asn1-ut-octetstring.cpp \ + $(VBOX_PATH_RUNTIME_SRC)/common/asn1/asn1-ut-octetstring-decode.cpp \ + $(VBOX_PATH_RUNTIME_SRC)/common/asn1/asn1-ut-string.cpp \ + $(VBOX_PATH_RUNTIME_SRC)/common/asn1/asn1-ut-string-decode.cpp \ + $(VBOX_PATH_RUNTIME_SRC)/common/asn1/asn1-ut-time.cpp \ + $(VBOX_PATH_RUNTIME_SRC)/common/asn1/asn1-ut-time-decode.cpp \ + $(VBOX_PATH_RUNTIME_SRC)/common/crypto/digest-core.cpp \ + $(VBOX_PATH_RUNTIME_SRC)/common/crypto/digest-builtin.cpp \ + $(VBOX_PATH_RUNTIME_SRC)/common/crypto/pkcs7-asn1-decoder.cpp \ + $(VBOX_PATH_RUNTIME_SRC)/common/crypto/pkcs7-core.cpp \ + $(VBOX_PATH_RUNTIME_SRC)/common/crypto/pkcs7-init.cpp \ + $(VBOX_PATH_RUNTIME_SRC)/common/crypto/pkcs7-sanity.cpp \ + $(VBOX_PATH_RUNTIME_SRC)/common/crypto/pkcs7-verify.cpp \ + $(VBOX_PATH_RUNTIME_SRC)/common/crypto/pkix-signature-builtin.cpp \ + $(VBOX_PATH_RUNTIME_SRC)/common/crypto/pkix-signature-core.cpp \ + $(VBOX_PATH_RUNTIME_SRC)/common/crypto/pkix-signature-rsa.cpp \ + $(VBOX_PATH_RUNTIME_SRC)/common/crypto/pkix-verify.cpp \ + $(VBOX_PATH_RUNTIME_SRC)/common/crypto/pkix-util.cpp \ + $(VBOX_PATH_RUNTIME_SRC)/common/crypto/rsa-asn1-decoder.cpp \ + $(VBOX_PATH_RUNTIME_SRC)/common/crypto/rsa-core.cpp \ + $(VBOX_PATH_RUNTIME_SRC)/common/crypto/rsa-init.cpp \ + $(VBOX_PATH_RUNTIME_SRC)/common/crypto/rsa-sanity.cpp \ + $(VBOX_PATH_RUNTIME_SRC)/common/crypto/spc-asn1-decoder.cpp \ + $(VBOX_PATH_RUNTIME_SRC)/common/crypto/spc-core.cpp \ + $(VBOX_PATH_RUNTIME_SRC)/common/crypto/spc-init.cpp \ + $(VBOX_PATH_RUNTIME_SRC)/common/crypto/spc-sanity.cpp \ + $(VBOX_PATH_RUNTIME_SRC)/common/crypto/x509-asn1-decoder.cpp \ + $(VBOX_PATH_RUNTIME_SRC)/common/crypto/x509-certpaths.cpp \ + $(VBOX_PATH_RUNTIME_SRC)/common/crypto/x509-core.cpp \ + $(VBOX_PATH_RUNTIME_SRC)/common/crypto/x509-init.cpp \ + $(VBOX_PATH_RUNTIME_SRC)/common/crypto/x509-sanity.cpp \ + $(VBOX_PATH_RUNTIME_SRC)/common/crypto/x509-verify.cpp \ + $(VBOX_PATH_RUNTIME_SRC)/common/crypto/store.cpp \ + $(VBOX_PATH_RUNTIME_SRC)/common/crypto/store-inmem.cpp \ + $(VBOX_PATH_RUNTIME_SRC)/common/crypto/taf-asn1-decoder.cpp \ + $(VBOX_PATH_RUNTIME_SRC)/common/crypto/taf-core.cpp \ + $(VBOX_PATH_RUNTIME_SRC)/common/crypto/taf-init.cpp \ + $(VBOX_PATH_RUNTIME_SRC)/common/crypto/taf-sanity.cpp \ + $(VBOX_PATH_RUNTIME_SRC)/common/crypto/tsp-asn1-decoder.cpp \ + $(VBOX_PATH_RUNTIME_SRC)/common/crypto/tsp-core.cpp \ + $(VBOX_PATH_RUNTIME_SRC)/common/crypto/tsp-init.cpp \ + $(VBOX_PATH_RUNTIME_SRC)/common/crypto/tsp-sanity.cpp \ + $(VBOX_PATH_RUNTIME_SRC)/common/checksum/alt-md2.cpp \ + $(VBOX_PATH_RUNTIME_SRC)/common/checksum/alt-md5.cpp \ + $(VBOX_PATH_RUNTIME_SRC)/common/checksum/alt-sha1.cpp \ + $(VBOX_PATH_RUNTIME_SRC)/common/checksum/alt-sha256.cpp \ + $(VBOX_PATH_RUNTIME_SRC)/common/checksum/alt-sha512.cpp \ + $(VBOX_PATH_RUNTIME_SRC)/common/checksum/md2str.cpp \ + $(VBOX_PATH_RUNTIME_SRC)/common/checksum/md5str.cpp \ + $(VBOX_PATH_RUNTIME_SRC)/common/checksum/sha1str.cpp \ + $(VBOX_PATH_RUNTIME_SRC)/common/checksum/sha256str.cpp \ + $(VBOX_PATH_RUNTIME_SRC)/common/checksum/sha512str.cpp \ + $(VBOX_PATH_RUNTIME_SRC)/common/err/errinfo.cpp \ + $(VBOX_PATH_RUNTIME_SRC)/common/path/RTPathChangeToUnixSlashes.cpp \ + $(VBOX_PATH_RUNTIME_SRC)/common/path/RTPathExt.cpp \ + $(VBOX_PATH_RUNTIME_SRC)/common/string/RTStrPrintHexBytes.cpp \ + $(VBOX_PATH_RUNTIME_SRC)/common/string/RTUtf16PrintHexBytes.cpp \ + $(VBOX_PATH_RUNTIME_SRC)/common/string/RTUtf16ICmpAscii.cpp \ + $(VBOX_PATH_RUNTIME_SRC)/common/string/RTUtf16CatAscii.cpp \ + $(VBOX_PATH_RUNTIME_SRC)/common/string/RTUtf16CopyAscii.cpp \ + $(VBOX_PATH_RUNTIME_SRC)/common/string/RTUtf16End.cpp \ + $(VBOX_PATH_RUNTIME_SRC)/common/string/strstrip.cpp \ + \ + $(VBOX_PATH_RUNTIME_SRC)/common/err/errmsg.cpp \ + $(VBOX_PATH_RUNTIME_SRC)/common/math/bignum.cpp \ + $(VBOX_PATH_RUNTIME_SRC)/common/math/bignum-amd64-x86.asm \ + $(VBOX_PATH_RUNTIME_SRC)/common/misc/RTAssertMsg1Weak.cpp \ + $(VBOX_PATH_RUNTIME_SRC)/common/misc/RTAssertMsg2.cpp \ + $(VBOX_PATH_RUNTIME_SRC)/common/misc/RTAssertMsg2Weak.cpp \ + $(VBOX_PATH_RUNTIME_SRC)/common/misc/RTAssertMsg2WeakV.cpp \ + $(VBOX_PATH_RUNTIME_SRC)/common/misc/zero.asm \ + $(VBOX_PATH_RUNTIME_SRC)/common/path/RTPathFilename.cpp \ + $(VBOX_PATH_RUNTIME_SRC)/common/string/memchr.asm \ + $(VBOX_PATH_RUNTIME_SRC)/common/string/memcmp.asm \ + $(VBOX_PATH_RUNTIME_SRC)/common/string/memcpy.asm \ + $(VBOX_PATH_RUNTIME_SRC)/common/string/memmove.asm \ + $(VBOX_PATH_RUNTIME_SRC)/common/string/mempcpy.asm \ + $(VBOX_PATH_RUNTIME_SRC)/common/string/memset.asm \ + $(VBOX_PATH_RUNTIME_SRC)/common/string/RTStrCat.cpp \ + $(VBOX_PATH_RUNTIME_SRC)/common/string/RTStrCmp.cpp \ + $(VBOX_PATH_RUNTIME_SRC)/common/string/RTStrCopy.cpp \ + $(VBOX_PATH_RUNTIME_SRC)/common/string/RTStrNCmp.cpp \ + $(VBOX_PATH_RUNTIME_SRC)/common/string/RTStrNLen.cpp \ + $(VBOX_PATH_RUNTIME_SRC)/common/string/RTUtf16NLenEx.cpp \ + $(VBOX_PATH_RUNTIME_SRC)/common/string/strchr.asm \ + $(VBOX_PATH_RUNTIME_SRC)/common/string/strcmp.asm \ + $(VBOX_PATH_RUNTIME_SRC)/common/string/strcpy.asm \ + $(VBOX_PATH_RUNTIME_SRC)/common/string/strformat.cpp \ + $(VBOX_PATH_RUNTIME_SRC)/common/string/strformatrt.cpp \ + $(VBOX_PATH_RUNTIME_SRC)/common/string/strformattype.cpp \ + $(VBOX_PATH_RUNTIME_SRC)/common/string/stringalloc.cpp \ + $(VBOX_PATH_RUNTIME_SRC)/common/string/strlen.asm \ + $(VBOX_PATH_RUNTIME_SRC)/common/string/strncmp.asm \ + $(VBOX_PATH_RUNTIME_SRC)/common/string/strncpy.asm \ + $(VBOX_PATH_RUNTIME_SRC)/common/string/strprintf.cpp \ + $(VBOX_PATH_RUNTIME_SRC)/common/string/strstr.cpp \ + $(VBOX_PATH_RUNTIME_SRC)/common/string/strtonum.cpp \ + $(VBOX_PATH_RUNTIME_SRC)/common/string/utf-16.cpp \ + $(VBOX_PATH_RUNTIME_SRC)/common/string/utf-8.cpp \ + $(VBOX_PATH_RUNTIME_SRC)/common/string/utf-8-case.cpp \ + $(VBOX_PATH_RUNTIME_SRC)/common/string/unidata-upper.cpp \ + $(VBOX_PATH_RUNTIME_SRC)/common/string/unidata-lower.cpp \ + $(VBOX_PATH_RUNTIME_SRC)/common/time/time.cpp \ + $(VBOX_PATH_RUNTIME_SRC)/generic/RTAssertShouldPanic-generic.cpp \ + $(VBOX_PATH_RUNTIME_SRC)/generic/RTPathAbs-generic.cpp \ + $(VBOX_PATH_RUNTIME_SRC)/generic/RTPathGetCurrentDrive-generic.cpp \ + $(VBOX_PATH_RUNTIME_SRC)/generic/RTPathGetCurrentOnDrive-generic.cpp \ + $(VBOX_PATH_RUNTIME_SRC)/generic/memsafer-generic.cpp \ + $(VBOX_PATH_RUNTIME_SRC)/generic/uuid-generic.cpp \ + $(VBOX_PATH_RUNTIME_SRC)/r3/win/utf8-win.cpp \ + \ + ../../Disassembler/DisasmCore.cpp \ + ../../Disassembler/DisasmTables.cpp \ + ../../Disassembler/DisasmTablesX64.cpp \ + ../../Disassembler/DisasmReg.cpp + + SUPR3HardenedStatic_SOURCES.amd64 += \ + $(VBOX_PATH_RUNTIME_SRC)/common/math/RTUInt128MulByU64.asm + + SUPR3HardenedStatic_SOURCES.win += \ + win/SUPR3HardenedNoCrt-win.cpp \ + $(VBOX_PATH_RUNTIME_SRC)/nt/RTErrConvertFromNtStatus.cpp \ + $(VBOX_PATH_RUNTIME_SRC)/r3/nt/pathint-nt.cpp \ + $(VBOX_PATH_RUNTIME_SRC)/win/RTErrConvertFromWin32.cpp \ + $(VBOX_PATH_RUNTIME_SRC)/win/errmsgwin.cpp + + # Add necessary compiler specific files from libcmt.lib and the lib dir. + ifeq ($(KBUILD_TARGET),win) + SUPR3HardenedStatic_VBOX_LIBC_OBJS = chkstk.obj + ifeq ($(KBUILD_TARGET_ARCH),x86) + SUPR3HardenedStatic_VBOX_LIBC_OBJS += \ + ulldiv.obj \ + ulldvrm.obj \ + ullrem.obj \ + ullshr.obj \ + lldiv.obj \ + lldvrm.obj \ + llmul.obj \ + llrem.obj \ + llshl.obj \ + llshr.obj \ + rotl.obj \ + rotr.obj + ifndef VBOX_USE_VCC70 + SUPR3HardenedStatic_VBOX_LIBC_OBJS += alloca16.obj + endif + endif + SUPR3HardenedStatic_SOURCES.win += $(addprefix $(SUPR3HardenedStatic_0_OUTDIR)/,$(SUPR3HardenedStatic_VBOX_LIBC_OBJS)) + + $(addprefix $$(SUPR3HardenedStatic_0_OUTDIR)/,$(SUPR3HardenedStatic_VBOX_LIBC_OBJS)): \ + $$(PATH_TOOL_$(TEMPLATE_VBOXR3EXE_TOOL.win.$(KBUILD_TARGET_ARCH))_LIB)/libcmt.lib | $$(dir $$@) + $(TOOL_$(TEMPLATE_VBOXR3HARDENEDEXE_TOOL.win.$(KBUILD_TARGET_ARCH))_AR) "$<" \ + /EXTRACT:`$(TOOL_$(TEMPLATE_VBOXR3HARDENEDEXE_TOOL.win.$(KBUILD_TARGET_ARCH))_AR) "$<" /LIST \ + | $(SED_EXT) -n -e '/[\\/:]$(notdir $@)/p'` \ + "/OUT:$@" + endif +endif + +SUPR3HardenedMain.cpp_DEFS = VBOX_SVN_REV=$(VBOX_SVN_REV) + + +# +# VBoxSupLib - Windows DLL for catching thread creation and termination. +# +VBoxSupLib_TEMPLATE = $(if-expr "$(KBUILD_TARGET)" == "win" && defined(VBOX_WITH_HARDENING),VBOXR3HARDENEDLIB,VBOXR3) +VBoxSupLib_SDKS.win = VBOX_NTDLL +VBoxSupLib_LDFLAGS.win.amd64 = -Entry:DllMainEntrypoint +VBoxSupLib_LDFLAGS.win.x86 = -Entry:DllMainEntrypoint +VBoxSupLib_DEFS = \ + $(if $(VBOX_WITHOUT_DEBUGGER_CHECKS),VBOX_WITHOUT_DEBUGGER_CHECKS,) +VBoxSupLib_SOURCES = \ + $(KBUILD_TARGET)/VBoxSupLib-$(KBUILD_TARGET).cpp +VBoxSupLib_LIBS.win.x86 = \ + $(PATH_TOOL_$(TEMPLATE_VBOXR3STATIC_TOOL.win.x86)_LIB)/libcmt$(VBOX_VCC_CRT_TYPE).lib # for __chkstk +VBoxSupLib_LIBS.win.amd64 = \ + $(PATH_TOOL_$(TEMPLATE_VBOXR3STATIC_TOOL.win.amd64)_LIB)/libcmt$(VBOX_VCC_CRT_TYPE).lib # for __chkstk + # # VBoxSupSvc - The system wide service/daemon. @@ -188,7 +494,21 @@ ifdef VBOX_WITH_VMMR0_DISABLE_PREEMPTION VBoxDrv_DEFS += VBOX_WITH_VMMR0_DISABLE_PREEMPTION endif -VBoxDrv_SDKS = W2K3DDK WINPSDKINCS +ifdef VBOX_WITHOUT_DEBUGGER_CHECKS + VBoxDrv_DEFS += VBOX_WITHOUT_DEBUGGER_CHECKS +endif +ifdef VBOX_PERMIT_VISUAL_STUDIO_PROFILING + VBoxDrv_DEFS += VBOX_PERMIT_VISUAL_STUDIO_PROFILING +endif +ifdef VBOX_WITH_VISTA_NO_SP + VBoxDrv_DEFS += VBOX_WITH_VISTA_NO_SP +endif +ifdef VBOX_WITH_HARDENING + VBoxDrv_ASDEFS += VBOX_WITH_HARDENING +endif +VBoxDrv_DEFS += VBOX_PERMIT_MORE + +VBoxDrv_SDKS = WINDDK W2K3DDK WINPSDKINCS VBoxDrv_INCS := $(PATH_SUB_CURRENT) VBoxDrv_SOURCES = \ win/SUPDrv-win.cpp \ @@ -196,12 +516,18 @@ SUPDrv.c \ SUPDrvSem.c \ win/VBoxDrv.rc +ifdef VBOX_WITH_HARDENING + VBoxDrv_SOURCES.win += \ + win/SUPHardenedVerifyImage-win.cpp \ + win/SUPHardenedVerifyProcess-win.cpp \ + $(VBOX_SUP_WIN_CERTS_FILE) +endif VBoxDrv_LDFLAGS.x86 = -Entry:DriverEntry@8 VBoxDrv_LDFLAGS.amd64 = -Entry:DriverEntry VBoxDrv_LIBS = \ + $(PATH_STAGE_LIB)/RuntimeR0Drv$(VBOX_SUFF_LIB) \ $(PATH_SDK_W2K3DDK_LIB)/ntoskrnl.lib \ - $(PATH_SDK_W2K3DDK_LIB)/hal.lib \ - $(PATH_STAGE_LIB)/RuntimeR0Drv$(VBOX_SUFF_LIB) + $(PATH_SDK_W2K3DDK_LIB)/hal.lib INSTALLS += VBoxDrv-inf diff -Nru virtualbox-4.1.12-dfsg/src/VBox/HostDrivers/Support/os2/SUPDrv-os2.cpp virtualbox-4.1.44-dfsg/src/VBox/HostDrivers/Support/os2/SUPDrv-os2.cpp --- virtualbox-4.1.12-dfsg/src/VBox/HostDrivers/Support/os2/SUPDrv-os2.cpp 2012-04-02 13:28:47.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/HostDrivers/Support/os2/SUPDrv-os2.cpp 2015-11-11 15:08:40.000000000 +0000 @@ -150,7 +150,7 @@ /* * Create a new session. */ - rc = supdrvCreateSession(&g_DevExt, true /* fUser */, &pSession); + rc = supdrvCreateSession(&g_DevExt, true /* fUser */, true /* fUnrestricted */, &pSession); if (RT_SUCCESS(rc)) { pSession->sfn = sfn; @@ -223,7 +223,7 @@ /* * Close the session. */ - supdrvCloseSession(&g_DevExt, pSession); + supdrvSessionRelease(pSession); return 0; } @@ -246,6 +246,9 @@ while ( pSession && ( pSession->sfn != sfn || pSession->Process != Process)); + + if (RT_LIKELY(pSession)) + supdrvSessionRetain(pSession); } RTSpinlockReleaseNoInts(g_Spinlock, &Tmp); if (RT_UNLIKELY(!pSession)) @@ -258,6 +261,7 @@ * Dispatch the fast IOCtl. */ supdrvIOCtlFast(iFunction, 0, &g_DevExt, pSession); + supdrvSessionRelease(pSession); return 0; } @@ -280,6 +284,9 @@ while ( pSession && ( pSession->sfn != sfn || pSession->Process != Process)); + + if (RT_LIKELY(pSession)) + supdrvSessionRetain(pSession); } RTSpinlockReleaseNoInts(g_Spinlock, &Tmp); if (!pSession) @@ -331,7 +338,7 @@ /* * Process the IOCtl. */ - rc = supdrvIOCtl(iFunction, &g_DevExt, pSession, pHdr); + rc = supdrvIOCtl(iFunction, &g_DevExt, pSession, pHdr, cbReq); } else { @@ -349,12 +356,34 @@ * Unlock and return. */ int rc2 = KernVMUnlock(&Lock); - AssertMsg(!rc2, ("rc2=%d\n", rc2)); NOREF(rc2); - - Log2(("VBoxDrvIOCtl: returns %d\n", rc)); - return rc; + AssertMsg(!rc2, ("rc2=%d\n", rc2)); NOREF(rc2);s } - return VERR_NOT_SUPPORTED; + else + rc = VERR_NOT_SUPPORTED; + + supdrvSessionRelease(pSession); + + Log2(("VBoxDrvIOCtl: returns %d\n", rc)); + return rc; +} + + +void VBOXCALL supdrvOSCleanupSession(PSUPDRVDEVEXT pDevExt, PSUPDRVSESSION pSession) +{ + NOREF(pDevExt); + NOREF(pSession); +} + + +void VBOXCALL supdrvOSSessionHashTabInserted(PSUPDRVDEVEXT pDevExt, PSUPDRVSESSION pSession, void *pvUser) +{ + NOREF(pDevExt); NOREF(pSession); NOREF(pvUser); +} + + +void VBOXCALL supdrvOSSessionHashTabRemoved(PSUPDRVDEVEXT pDevExt, PSUPDRVSESSION pSession, void *pvUser) +{ + NOREF(pDevExt); NOREF(pSession); NOREF(pvUser); } diff -Nru virtualbox-4.1.12-dfsg/src/VBox/HostDrivers/Support/os2/SUPLib-os2.cpp virtualbox-4.1.44-dfsg/src/VBox/HostDrivers/Support/os2/SUPLib-os2.cpp --- virtualbox-4.1.12-dfsg/src/VBox/HostDrivers/Support/os2/SUPLib-os2.cpp 2012-04-02 13:28:47.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/HostDrivers/Support/os2/SUPLib-os2.cpp 2015-11-11 15:08:40.000000000 +0000 @@ -65,8 +65,10 @@ -int suplibOsInit(PSUPLIBDATA pThis, bool fPreInited) +int suplibOsInit(PSUPLIBDATA pThis, bool fPreInited, bool fUnrestricted, SUPINITOP *penmWhat, PRTERRINFO pErrInfo) { + Assert(fUnrestricted); + /* * Nothing to do if pre-inited. */ diff -Nru virtualbox-4.1.12-dfsg/src/VBox/HostDrivers/Support/solaris/SUPDrv-solaris.c virtualbox-4.1.44-dfsg/src/VBox/HostDrivers/Support/solaris/SUPDrv-solaris.c --- virtualbox-4.1.12-dfsg/src/VBox/HostDrivers/Support/solaris/SUPDrv-solaris.c 2012-04-02 13:28:47.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/HostDrivers/Support/solaris/SUPDrv-solaris.c 2015-11-11 15:08:40.000000000 +0000 @@ -453,7 +453,7 @@ /* * Create a new session. */ - rc = supdrvCreateSession(&g_DevExt, true /* fUser */, &pSession); + rc = supdrvCreateSession(&g_DevExt, true /* fUser */, true /* fUnrestricted */, &pSession); if (RT_SUCCESS(rc)) { pSession->Uid = crgetruid(pCred); @@ -475,7 +475,7 @@ * Sessions in Solaris driver are mostly useless. It's however needed * in VBoxDrvSolarisIOCtlSlow() while calling supdrvIOCtl() */ - rc = supdrvCreateSession(&g_DevExt, true /* fUser */, &pSession); + rc = supdrvCreateSession(&g_DevExt, true /* fUser */, true /* fUnrestricted */, &pSession); if (RT_SUCCESS(rc)) { RTSPINLOCKTMP Tmp = RTSPINLOCKTMP_INITIALIZER; @@ -592,7 +592,7 @@ /* * Close the session. */ - supdrvCloseSession(&g_DevExt, pSession); + supdrvSessionRelease(pSession); return 0; } @@ -647,17 +647,15 @@ const RTPROCESS Process = RTProcSelf(); const unsigned iHash = SESSION_HASH(Process); PSUPDRVSESSION pSession; + const bool fUnrestricted = getminor(Dev) == 0; /* * Find the session. */ RTSpinlockAcquireNoInts(g_Spinlock, &Tmp); pSession = g_apSessionHashTab[iHash]; - if (pSession && pSession->Process != Process) - { - do pSession = pSession->pNextHash; - while (pSession && pSession->Process != Process); - } + while (pSession && pSession->Process != Process && pSession->fUnrestricted == fUnrestricted); + pSession = pSession->pNextHash; RTSpinlockReleaseNoInts(g_Spinlock, &Tmp); if (!pSession) { @@ -671,9 +669,10 @@ * Deal with the two high-speed IOCtl that takes it's arguments from * the session and iCmd, and only returns a VBox status code. */ - if ( Cmd == SUP_IOCTL_FAST_DO_RAW_RUN - || Cmd == SUP_IOCTL_FAST_DO_HWACC_RUN - || Cmd == SUP_IOCTL_FAST_DO_NOP) + if ( ( Cmd == SUP_IOCTL_FAST_DO_RAW_RUN + || Cmd == SUP_IOCTL_FAST_DO_HWACC_RUN + || Cmd == SUP_IOCTL_FAST_DO_NOP) + && pSession->fUnrestricted) { *pVal = supdrvIOCtlFast(Cmd, pArgs, &g_DevExt, pSession); return 0; @@ -768,7 +767,7 @@ /* * Process the IOCtl. */ - rc = supdrvIOCtl(iCmd, &g_DevExt, pSession, pHdr); + rc = supdrvIOCtl(iCmd, &g_DevExt, pSession, pHdr, cbBuf); /* * Copy ioctl data and output buffer back to user space. @@ -859,6 +858,25 @@ } +void VBOXCALL supdrvOSCleanupSession(PSUPDRVDEVEXT pDevExt, PSUPDRVSESSION pSession) +{ + NOREF(pDevExt); + NOREF(pSession); +} + + +void VBOXCALL supdrvOSSessionHashTabInserted(PSUPDRVDEVEXT pDevExt, PSUPDRVSESSION pSession, void *pvUser) +{ + NOREF(pDevExt); NOREF(pSession); NOREF(pvUser); +} + + +void VBOXCALL supdrvOSSessionHashTabRemoved(PSUPDRVDEVEXT pDevExt, PSUPDRVSESSION pSession, void *pvUser) +{ + NOREF(pDevExt); NOREF(pSession); NOREF(pvUser); +} + + /** * Initializes any OS specific object creator fields. */ diff -Nru virtualbox-4.1.12-dfsg/src/VBox/HostDrivers/Support/solaris/SUPLib-solaris.cpp virtualbox-4.1.44-dfsg/src/VBox/HostDrivers/Support/solaris/SUPLib-solaris.cpp --- virtualbox-4.1.12-dfsg/src/VBox/HostDrivers/Support/solaris/SUPLib-solaris.cpp 2012-04-02 13:28:47.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/HostDrivers/Support/solaris/SUPLib-solaris.cpp 2015-11-11 15:08:40.000000000 +0000 @@ -69,8 +69,10 @@ -int suplibOsInit(PSUPLIBDATA pThis, bool fPreInited) +int suplibOsInit(PSUPLIBDATA pThis, bool fPreInited, bool fUnrestricted, SUPINITOP *penmWhat, PRTERRINFO pErrInfo) { + Assert(fUnrestricted); + /* * Nothing to do if pre-inited. */ diff -Nru virtualbox-4.1.12-dfsg/src/VBox/HostDrivers/Support/SUPDrv.c virtualbox-4.1.44-dfsg/src/VBox/HostDrivers/Support/SUPDrv.c --- virtualbox-4.1.12-dfsg/src/VBox/HostDrivers/Support/SUPDrv.c 2012-04-02 13:28:47.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/HostDrivers/Support/SUPDrv.c 2015-11-11 15:08:40.000000000 +0000 @@ -1,4 +1,4 @@ -/* $Revision: 73339 $ */ +/* $Revision: 95893 $ */ /** @file * VBoxDrv - The VirtualBox Support Driver - Common code. */ @@ -439,110 +439,116 @@ /* * Initialize it. */ - memset(pDevExt, 0, sizeof(*pDevExt)); + memset(pDevExt, 0, sizeof(*pDevExt)); /* Does not wipe OS specific tail section of the structure. */ + pDevExt->Spinlock = NIL_RTSPINLOCK; + pDevExt->hSessionHashTabSpinlock = NIL_RTSPINLOCK; rc = RTSpinlockCreate(&pDevExt->Spinlock); if (RT_SUCCESS(rc)) - { + rc = RTSpinlockCreate(&pDevExt->hSessionHashTabSpinlock); + if (RT_SUCCESS(rc)) #ifdef SUPDRV_USE_MUTEX_FOR_LDR rc = RTSemMutexCreate(&pDevExt->mtxLdr); #else rc = RTSemFastMutexCreate(&pDevExt->mtxLdr); #endif + if (RT_SUCCESS(rc)) + { + rc = RTSemFastMutexCreate(&pDevExt->mtxComponentFactory); if (RT_SUCCESS(rc)) { - rc = RTSemFastMutexCreate(&pDevExt->mtxComponentFactory); - if (RT_SUCCESS(rc)) - { -#ifdef SUPDRV_USE_MUTEX_FOR_LDR - rc = RTSemMutexCreate(&pDevExt->mtxGip); +#ifdef SUPDRV_USE_MUTEX_FOR_GIP + rc = RTSemMutexCreate(&pDevExt->mtxGip); #else - rc = RTSemFastMutexCreate(&pDevExt->mtxGip); + rc = RTSemFastMutexCreate(&pDevExt->mtxGip); #endif + if (RT_SUCCESS(rc)) + { + rc = supdrvGipCreate(pDevExt); if (RT_SUCCESS(rc)) { - rc = supdrvGipCreate(pDevExt); - if (RT_SUCCESS(rc)) - { - pDevExt->u32Cookie = BIRD; /** @todo make this random? */ - pDevExt->cbSession = (uint32_t)cbSession; + pDevExt->u32Cookie = BIRD; /** @todo make this random? */ + pDevExt->cbSession = (uint32_t)cbSession; - /* - * Fixup the absolute symbols. - * - * Because of the table indexing assumptions we'll have a little #ifdef orgy - * here rather than distributing this to OS specific files. At least for now. - */ + /* + * Fixup the absolute symbols. + * + * Because of the table indexing assumptions we'll have a little #ifdef orgy + * here rather than distributing this to OS specific files. At least for now. + */ #ifdef RT_OS_DARWIN # if ARCH_BITS == 32 - if (SUPR0GetPagingMode() >= SUPPAGINGMODE_AMD64) - { - g_aFunctions[0].pfn = (void *)1; /* SUPR0AbsIs64bit */ - g_aFunctions[1].pfn = (void *)0x80; /* SUPR0Abs64bitKernelCS - KERNEL64_CS, seg.h */ - g_aFunctions[2].pfn = (void *)0x88; /* SUPR0Abs64bitKernelSS - KERNEL64_SS, seg.h */ - g_aFunctions[3].pfn = (void *)0x88; /* SUPR0Abs64bitKernelDS - KERNEL64_SS, seg.h */ - } - else - g_aFunctions[0].pfn = g_aFunctions[1].pfn = g_aFunctions[2].pfn = g_aFunctions[4].pfn = (void *)0; - g_aFunctions[4].pfn = (void *)0x08; /* SUPR0AbsKernelCS - KERNEL_CS, seg.h */ - g_aFunctions[5].pfn = (void *)0x10; /* SUPR0AbsKernelSS - KERNEL_DS, seg.h */ - g_aFunctions[6].pfn = (void *)0x10; /* SUPR0AbsKernelDS - KERNEL_DS, seg.h */ - g_aFunctions[7].pfn = (void *)0x10; /* SUPR0AbsKernelES - KERNEL_DS, seg.h */ - g_aFunctions[8].pfn = (void *)0x10; /* SUPR0AbsKernelFS - KERNEL_DS, seg.h */ - g_aFunctions[9].pfn = (void *)0x48; /* SUPR0AbsKernelGS - CPU_DATA_GS, seg.h */ + if (SUPR0GetPagingMode() >= SUPPAGINGMODE_AMD64) + { + g_aFunctions[0].pfn = (void *)1; /* SUPR0AbsIs64bit */ + g_aFunctions[1].pfn = (void *)0x80; /* SUPR0Abs64bitKernelCS - KERNEL64_CS, seg.h */ + g_aFunctions[2].pfn = (void *)0x88; /* SUPR0Abs64bitKernelSS - KERNEL64_SS, seg.h */ + g_aFunctions[3].pfn = (void *)0x88; /* SUPR0Abs64bitKernelDS - KERNEL64_SS, seg.h */ + } + else + g_aFunctions[0].pfn = g_aFunctions[1].pfn = g_aFunctions[2].pfn = g_aFunctions[4].pfn = (void *)0; + g_aFunctions[4].pfn = (void *)0x08; /* SUPR0AbsKernelCS - KERNEL_CS, seg.h */ + g_aFunctions[5].pfn = (void *)0x10; /* SUPR0AbsKernelSS - KERNEL_DS, seg.h */ + g_aFunctions[6].pfn = (void *)0x10; /* SUPR0AbsKernelDS - KERNEL_DS, seg.h */ + g_aFunctions[7].pfn = (void *)0x10; /* SUPR0AbsKernelES - KERNEL_DS, seg.h */ + g_aFunctions[8].pfn = (void *)0x10; /* SUPR0AbsKernelFS - KERNEL_DS, seg.h */ + g_aFunctions[9].pfn = (void *)0x48; /* SUPR0AbsKernelGS - CPU_DATA_GS, seg.h */ # else /* 64-bit darwin: */ - g_aFunctions[0].pfn = (void *)1; /* SUPR0AbsIs64bit */ - g_aFunctions[1].pfn = (void *)(uintptr_t)ASMGetCS(); /* SUPR0Abs64bitKernelCS */ - g_aFunctions[2].pfn = (void *)(uintptr_t)ASMGetSS(); /* SUPR0Abs64bitKernelSS */ - g_aFunctions[3].pfn = (void *)0; /* SUPR0Abs64bitKernelDS */ - g_aFunctions[4].pfn = (void *)(uintptr_t)ASMGetCS(); /* SUPR0AbsKernelCS */ - g_aFunctions[5].pfn = (void *)(uintptr_t)ASMGetSS(); /* SUPR0AbsKernelSS */ - g_aFunctions[6].pfn = (void *)0; /* SUPR0AbsKernelDS */ - g_aFunctions[7].pfn = (void *)0; /* SUPR0AbsKernelES */ - g_aFunctions[8].pfn = (void *)0; /* SUPR0AbsKernelFS */ - g_aFunctions[9].pfn = (void *)0; /* SUPR0AbsKernelGS */ + g_aFunctions[0].pfn = (void *)1; /* SUPR0AbsIs64bit */ + g_aFunctions[1].pfn = (void *)(uintptr_t)ASMGetCS(); /* SUPR0Abs64bitKernelCS */ + g_aFunctions[2].pfn = (void *)(uintptr_t)ASMGetSS(); /* SUPR0Abs64bitKernelSS */ + g_aFunctions[3].pfn = (void *)0; /* SUPR0Abs64bitKernelDS */ + g_aFunctions[4].pfn = (void *)(uintptr_t)ASMGetCS(); /* SUPR0AbsKernelCS */ + g_aFunctions[5].pfn = (void *)(uintptr_t)ASMGetSS(); /* SUPR0AbsKernelSS */ + g_aFunctions[6].pfn = (void *)0; /* SUPR0AbsKernelDS */ + g_aFunctions[7].pfn = (void *)0; /* SUPR0AbsKernelES */ + g_aFunctions[8].pfn = (void *)0; /* SUPR0AbsKernelFS */ + g_aFunctions[9].pfn = (void *)0; /* SUPR0AbsKernelGS */ # endif #else /* !RT_OS_DARWIN */ # if ARCH_BITS == 64 - g_aFunctions[0].pfn = (void *)1; /* SUPR0AbsIs64bit */ - g_aFunctions[1].pfn = (void *)(uintptr_t)ASMGetCS(); /* SUPR0Abs64bitKernelCS */ - g_aFunctions[2].pfn = (void *)(uintptr_t)ASMGetSS(); /* SUPR0Abs64bitKernelSS */ - g_aFunctions[3].pfn = (void *)(uintptr_t)ASMGetDS(); /* SUPR0Abs64bitKernelDS */ + g_aFunctions[0].pfn = (void *)1; /* SUPR0AbsIs64bit */ + g_aFunctions[1].pfn = (void *)(uintptr_t)ASMGetCS(); /* SUPR0Abs64bitKernelCS */ + g_aFunctions[2].pfn = (void *)(uintptr_t)ASMGetSS(); /* SUPR0Abs64bitKernelSS */ + g_aFunctions[3].pfn = (void *)(uintptr_t)ASMGetDS(); /* SUPR0Abs64bitKernelDS */ # else - g_aFunctions[0].pfn = g_aFunctions[1].pfn = g_aFunctions[2].pfn = g_aFunctions[4].pfn = (void *)0; + g_aFunctions[0].pfn = g_aFunctions[1].pfn = g_aFunctions[2].pfn = g_aFunctions[4].pfn = (void *)0; # endif - g_aFunctions[4].pfn = (void *)(uintptr_t)ASMGetCS(); /* SUPR0AbsKernelCS */ - g_aFunctions[5].pfn = (void *)(uintptr_t)ASMGetSS(); /* SUPR0AbsKernelSS */ - g_aFunctions[6].pfn = (void *)(uintptr_t)ASMGetDS(); /* SUPR0AbsKernelDS */ - g_aFunctions[7].pfn = (void *)(uintptr_t)ASMGetES(); /* SUPR0AbsKernelES */ - g_aFunctions[8].pfn = (void *)(uintptr_t)ASMGetFS(); /* SUPR0AbsKernelFS */ - g_aFunctions[9].pfn = (void *)(uintptr_t)ASMGetGS(); /* SUPR0AbsKernelGS */ + g_aFunctions[4].pfn = (void *)(uintptr_t)ASMGetCS(); /* SUPR0AbsKernelCS */ + g_aFunctions[5].pfn = (void *)(uintptr_t)ASMGetSS(); /* SUPR0AbsKernelSS */ + g_aFunctions[6].pfn = (void *)(uintptr_t)ASMGetDS(); /* SUPR0AbsKernelDS */ + g_aFunctions[7].pfn = (void *)(uintptr_t)ASMGetES(); /* SUPR0AbsKernelES */ + g_aFunctions[8].pfn = (void *)(uintptr_t)ASMGetFS(); /* SUPR0AbsKernelFS */ + g_aFunctions[9].pfn = (void *)(uintptr_t)ASMGetGS(); /* SUPR0AbsKernelGS */ #endif /* !RT_OS_DARWIN */ - return VINF_SUCCESS; - } + return VINF_SUCCESS; + } #ifdef SUPDRV_USE_MUTEX_FOR_GIP - RTSemMutexDestroy(pDevExt->mtxGip); - pDevExt->mtxGip = NIL_RTSEMMUTEX; + RTSemMutexDestroy(pDevExt->mtxGip); + pDevExt->mtxGip = NIL_RTSEMMUTEX; #else - RTSemFastMutexDestroy(pDevExt->mtxGip); - pDevExt->mtxGip = NIL_RTSEMFASTMUTEX; + RTSemFastMutexDestroy(pDevExt->mtxGip); + pDevExt->mtxGip = NIL_RTSEMFASTMUTEX; #endif - } - RTSemFastMutexDestroy(pDevExt->mtxComponentFactory); - pDevExt->mtxComponentFactory = NIL_RTSEMFASTMUTEX; } + RTSemFastMutexDestroy(pDevExt->mtxComponentFactory); + pDevExt->mtxComponentFactory = NIL_RTSEMFASTMUTEX; + } #ifdef SUPDRV_USE_MUTEX_FOR_LDR - RTSemMutexDestroy(pDevExt->mtxLdr); - pDevExt->mtxLdr = NIL_RTSEMMUTEX; + RTSemMutexDestroy(pDevExt->mtxLdr); + pDevExt->mtxLdr = NIL_RTSEMMUTEX; #else - RTSemFastMutexDestroy(pDevExt->mtxLdr); - pDevExt->mtxLdr = NIL_RTSEMFASTMUTEX; + RTSemFastMutexDestroy(pDevExt->mtxLdr); + pDevExt->mtxLdr = NIL_RTSEMFASTMUTEX; #endif - } - RTSpinlockDestroy(pDevExt->Spinlock); - pDevExt->Spinlock = NIL_RTSPINLOCK; } + + RTSpinlockDestroy(pDevExt->Spinlock); + pDevExt->Spinlock = NIL_RTSPINLOCK; + RTSpinlockDestroy(pDevExt->hSessionHashTabSpinlock); + pDevExt->hSessionHashTabSpinlock = NIL_RTSPINLOCK; + #ifdef SUPDRV_WITH_RELEASE_LOGGER RTLogDestroy(RTLogRelSetDefaultInstance(NULL)); RTLogDestroy(RTLogSetDefaultInstance(NULL)); @@ -583,6 +589,8 @@ pDevExt->Spinlock = NIL_RTSPINLOCK; RTSemFastMutexDestroy(pDevExt->mtxComponentFactory); pDevExt->mtxComponentFactory = NIL_RTSEMFASTMUTEX; + RTSpinlockDestroy(pDevExt->hSessionHashTabSpinlock); + pDevExt->hSessionHashTabSpinlock = NIL_RTSPINLOCK; /* * Free lists. @@ -623,17 +631,25 @@ * Create session. * * @returns IPRT status code. - * @param pDevExt Device extension. - * @param fUser Flag indicating whether this is a user or kernel session. - * @param ppSession Where to store the pointer to the session data. + * @param pDevExt Device extension. + * @param fUser Flag indicating whether this is a user or kernel + * session. + * @param fUnrestricted Unrestricted access (system) or restricted access + * (user)? + * @param ppSession Where to store the pointer to the session data. */ -int VBOXCALL supdrvCreateSession(PSUPDRVDEVEXT pDevExt, bool fUser, PSUPDRVSESSION *ppSession) +int VBOXCALL supdrvCreateSession(PSUPDRVDEVEXT pDevExt, bool fUser, bool fUnrestricted, PSUPDRVSESSION *ppSession) { + int rc; + PSUPDRVSESSION pSession; + + if (!SUP_IS_DEVEXT_VALID(pDevExt)) + return VERR_INVALID_PARAMETER; + /* * Allocate memory for the session data. */ - int rc; - PSUPDRVSESSION pSession = *ppSession = (PSUPDRVSESSION)RTMemAllocZ(pDevExt->cbSession); + pSession = *ppSession = (PSUPDRVSESSION)RTMemAllocZ(pDevExt->cbSession); if (pSession) { /* Initialize session data. */ @@ -648,14 +664,11 @@ Assert(pSession->Spinlock != NIL_RTSPINLOCK); pSession->pDevExt = pDevExt; pSession->u32Cookie = BIRD_INV; - /*pSession->pLdrUsage = NULL; - pSession->pVM = NULL; - pSession->pUsage = NULL; - pSession->pGip = NULL; - pSession->fGipReferenced = false; - pSession->Bundle.cUsed = 0; */ - pSession->Uid = NIL_RTUID; - pSession->Gid = NIL_RTGID; + pSession->fUnrestricted = fUnrestricted; + /*pSession->fInHashTable = false; */ + pSession->cRefs = 1; + /*pSession->pCommonNextHash = NULL; + pSession->ppOsSessionPtr = NULL; */ if (fUser) { pSession->Process = RTProcSelf(); @@ -666,6 +679,14 @@ pSession->Process = NIL_RTPROCESS; pSession->R0Process = NIL_RTR0PROCESS; } + /*pSession->pLdrUsage = NULL; + pSession->pVM = NULL; + pSession->pUsage = NULL; + pSession->pGip = NULL; + pSession->fGipReferenced = false; + pSession->Bundle.cUsed = 0; */ + pSession->Uid = NIL_RTUID; + pSession->Gid = NIL_RTGID; VBOXDRV_SUPDRV_SESSION_CREATE(pSession, fUser); LogFlow(("Created session %p initial cookie=%#x\n", pSession, pSession->u32Cookie)); @@ -686,48 +707,28 @@ /** - * Shared code for cleaning up a session. - * - * @param pDevExt Device extension. - * @param pSession Session data. - * This data will be freed by this routine. - */ -void VBOXCALL supdrvCloseSession(PSUPDRVDEVEXT pDevExt, PSUPDRVSESSION pSession) -{ - VBOXDRV_SUPDRV_SESSION_CLOSE(pSession); - - /* - * Cleanup the session first. - */ - supdrvCleanupSession(pDevExt, pSession); - - /* - * Free the rest of the session stuff. - */ - RTSpinlockDestroy(pSession->Spinlock); - pSession->Spinlock = NIL_RTSPINLOCK; - pSession->pDevExt = NULL; - RTMemFree(pSession); - LogFlow(("supdrvCloseSession: returns\n")); -} - - -/** - * Shared code for cleaning up a session (but not quite freeing it). + * Cleans up the session in the context of the process to which it belongs, the + * caller will free the session and the session spinlock. * - * This is primarily intended for MAC OS X where we have to clean up the memory - * stuff before the file handle is closed. + * This should normally occur when the session is closed or as the process + * exits. Careful reference counting in the OS specfic code makes sure that + * there cannot be any races between process/handle cleanup callbacks and + * threads doing I/O control calls. * - * @param pDevExt Device extension. + * @param pDevExt The device extension. * @param pSession Session data. - * This data will be freed by this routine. */ -void VBOXCALL supdrvCleanupSession(PSUPDRVDEVEXT pDevExt, PSUPDRVSESSION pSession) +static void supdrvCleanupSession(PSUPDRVDEVEXT pDevExt, PSUPDRVSESSION pSession) { int rc; PSUPDRVBUNDLE pBundle; LogFlow(("supdrvCleanupSession: pSession=%p\n", pSession)); + Assert(!pSession->fInHashTable); + Assert(!pSession->ppOsSessionPtr); + AssertReleaseMsg(pSession->R0Process == RTR0ProcHandleSelf() || pSession->R0Process == NIL_RTR0PROCESS, + ("R0Process=%p cur=%p; Process=%u curpid=%u\n", RTR0ProcHandleSelf(), RTProcSelf())); + /* * Remove logger instances related to this session. */ @@ -925,6 +926,328 @@ /** + * Common code for freeing a session when the reference count reaches zero. + * + * @param pDevExt Device extension. + * @param pSession Session data. + * This data will be freed by this routine. + */ +static void supdrvDestroySession(PSUPDRVDEVEXT pDevExt, PSUPDRVSESSION pSession) +{ + /* + * Cleanup the session first. + */ + supdrvCleanupSession(pDevExt, pSession); + supdrvOSCleanupSession(pDevExt, pSession); + + /* + * Free the rest of the session stuff. + */ + RTSpinlockDestroy(pSession->Spinlock); + pSession->Spinlock = NIL_RTSPINLOCK; + pSession->pDevExt = NULL; + RTMemFree(pSession); + LogFlow(("supdrvDestroySession: returns\n")); +} + + +/** + * Inserts the session into the global hash table. + * + * @retval VINF_SUCCESS on success. + * @retval VERR_WRONG_ORDER if the session was already inserted (asserted). + * @retval VERR_INVALID_PARAMETER if the session handle is invalid or a ring-0 + * session (asserted). + * @retval VERR_DUPLICATE if there is already a session for that pid. + * + * @param pDevExt The device extension. + * @param pSession The session. + * @param ppOsSessionPtr Pointer to the OS session pointer, if any is + * available and used. This will set to point to the + * session while under the protection of the session + * hash table spinlock. It will also be kept in + * PSUPDRVSESSION::ppOsSessionPtr for lookup and + * cleanup use. + * @param pvUser Argument for supdrvOSSessionHashTabInserted. + */ +int VBOXCALL supdrvSessionHashTabInsert(PSUPDRVDEVEXT pDevExt, PSUPDRVSESSION pSession, PSUPDRVSESSION *ppOsSessionPtr, + void *pvUser) +{ + RTSPINLOCKTMP Tmp = RTSPINLOCKTMP_INITIALIZER; + PSUPDRVSESSION pCur; + unsigned iHash; + + /* + * Validate input. + */ + AssertReturn(SUP_IS_SESSION_VALID(pSession), VERR_INVALID_PARAMETER); + AssertReturn(pSession->R0Process != NIL_RTR0PROCESS, VERR_INVALID_PARAMETER); + + /* + * Calculate the hash table index and acquire the spinlock. + */ + iHash = SUPDRV_SESSION_HASH(pSession->Process); + + RTSpinlockAcquireNoInts(pDevExt->hSessionHashTabSpinlock, &Tmp); + + /* + * If there are a collisions, we need to carefully check if we got a + * duplicate. There can only be one open session per process. + */ + pCur = pDevExt->apSessionHashTab[iHash]; + if (pCur) + { + while (pCur && pCur->Process != pSession->Process) + pCur = pCur->pCommonNextHash; + + if (pCur) + { + RTSpinlockReleaseNoInts(pDevExt->hSessionHashTabSpinlock, &Tmp); + if (pCur == pSession) + { + Assert(pSession->fInHashTable); + AssertFailed(); + return VERR_WRONG_ORDER; + } + Assert(!pSession->fInHashTable); + if (pCur->R0Process == pSession->R0Process) + return VERR_RESOURCE_IN_USE; + return VERR_DUPLICATE; + } + } + Assert(!pSession->fInHashTable); + Assert(!pSession->ppOsSessionPtr); + + /* + * Insert it, doing a callout to the OS specific code in case it has + * anything it wishes to do while we're holding the spinlock. + */ + pSession->pCommonNextHash = pDevExt->apSessionHashTab[iHash]; + pDevExt->apSessionHashTab[iHash] = pSession; + pSession->fInHashTable = true; + ASMAtomicIncS32(&pDevExt->cSessions); + + pSession->ppOsSessionPtr = ppOsSessionPtr; + if (ppOsSessionPtr) + ASMAtomicWritePtr(ppOsSessionPtr, pSession); + + supdrvOSSessionHashTabInserted(pDevExt, pSession, pvUser); + + /* + * Retain a reference for the pointer in the session table. + */ + ASMAtomicIncU32(&pSession->cRefs); + + RTSpinlockReleaseNoInts(pDevExt->hSessionHashTabSpinlock, &Tmp); + return VINF_SUCCESS; +} + + +/** + * Removes the session from the global hash table. + * + * @retval VINF_SUCCESS on success. + * @retval VERR_NOT_FOUND if the session was already removed (asserted). + * @retval VERR_INVALID_PARAMETER if the session handle is invalid or a ring-0 + * session (asserted). + * + * @param pDevExt The device extension. + * @param pSession The session. The caller is expected to have a reference + * to this so it won't croak on us when we release the hash + * table reference. + * @param pvUser OS specific context value for the + * supdrvOSSessionHashTabInserted callback. + */ +int VBOXCALL supdrvSessionHashTabRemove(PSUPDRVDEVEXT pDevExt, PSUPDRVSESSION pSession, void *pvUser) +{ + RTSPINLOCKTMP Tmp = RTSPINLOCKTMP_INITIALIZER; + PSUPDRVSESSION pCur; + unsigned iHash; + int32_t cRefs; + + /* + * Validate input. + */ + AssertReturn(SUP_IS_SESSION_VALID(pSession), VERR_INVALID_PARAMETER); + AssertReturn(pSession->R0Process != NIL_RTR0PROCESS, VERR_INVALID_PARAMETER); + + /* + * Calculate the hash table index and acquire the spinlock. + */ + iHash = SUPDRV_SESSION_HASH(pSession->Process); + + RTSpinlockAcquireNoInts(pDevExt->hSessionHashTabSpinlock, &Tmp); + + /* + * Unlink it. + */ + pCur = pDevExt->apSessionHashTab[iHash]; + if (pCur == pSession) + pDevExt->apSessionHashTab[iHash] = pSession->pCommonNextHash; + else + { + PSUPDRVSESSION pPrev = pCur; + while (pCur && pCur != pSession) + { + pPrev = pCur; + pCur = pCur->pCommonNextHash; + } + if (pCur) + pPrev->pCommonNextHash = pCur->pCommonNextHash; + else + { + Assert(!pSession->fInHashTable); + RTSpinlockReleaseNoInts(pDevExt->hSessionHashTabSpinlock, &Tmp); + return VERR_NOT_FOUND; + } + } + + pSession->pCommonNextHash = NULL; + pSession->fInHashTable = false; + + ASMAtomicDecU32(&pDevExt->cSessions); + + /* + * Clear OS specific session pointer if available and do the OS callback. + */ + if (pSession->ppOsSessionPtr) + { + ASMAtomicCmpXchgPtr(pSession->ppOsSessionPtr, NULL, pSession); + pSession->ppOsSessionPtr = NULL; + } + + supdrvOSSessionHashTabRemoved(pDevExt, pSession, pvUser); + + RTSpinlockReleaseNoInts(pDevExt->hSessionHashTabSpinlock, &Tmp); + + /* + * Drop the reference the hash table had to the session. This shouldn't + * be the last reference! + */ + cRefs = ASMAtomicDecU32(&pSession->cRefs); + Assert(cRefs > 0 && cRefs < _1M); + if (cRefs == 0) + supdrvDestroySession(pDevExt, pSession); + + return VINF_SUCCESS; +} + + +/** + * Looks up the session for the current process in the global hash table or in + * OS specific pointer. + * + * @returns Pointer to the session with a reference that the caller must + * release. If no valid session was found, NULL is returned. + * + * @param pDevExt The device extension. + * @param Process The process ID. + * @param R0Process The ring-0 process handle. + * @param ppOsSessionPtr The OS session pointer if available. If not NULL, + * this is used instead of the hash table. For + * additional safety it must then be equal to the + * SUPDRVSESSION::ppOsSessionPtr member. + * This can be NULL even if the OS has a session + * pointer. + */ +PSUPDRVSESSION VBOXCALL supdrvSessionHashTabLookup(PSUPDRVDEVEXT pDevExt, RTPROCESS Process, RTR0PROCESS R0Process, + PSUPDRVSESSION *ppOsSessionPtr) +{ + RTSPINLOCKTMP Tmp = RTSPINLOCKTMP_INITIALIZER; + PSUPDRVSESSION pCur; + unsigned iHash; + + /* + * Validate input. + */ + AssertReturn(R0Process != NIL_RTR0PROCESS, NULL); + + /* + * Calculate the hash table index and acquire the spinlock. + */ + iHash = SUPDRV_SESSION_HASH(Process); + + RTSpinlockAcquireNoInts(pDevExt->hSessionHashTabSpinlock, &Tmp); + + /* + * If an OS session pointer is provided, always use it. + */ + if (ppOsSessionPtr) + { + pCur = *ppOsSessionPtr; + if ( pCur + && ( pCur->ppOsSessionPtr != ppOsSessionPtr + || pCur->Process != Process + || pCur->R0Process != R0Process) ) + pCur = NULL; + } + else + { + /* + * Otherwise, do the hash table lookup. + */ + pCur = pDevExt->apSessionHashTab[iHash]; + while ( pCur + && ( pCur->Process != Process + || pCur->R0Process != R0Process) ) + pCur = pCur->pCommonNextHash; + } + + /* + * Retain the session. + */ + if (pCur) + { + uint32_t cRefs = ASMAtomicIncU32(&pCur->cRefs); + NOREF(cRefs); + Assert(cRefs > 1 && cRefs < _1M); + } + + RTSpinlockReleaseNoInts(pDevExt->hSessionHashTabSpinlock, &Tmp); + + return pCur; +} + + +/** + * Retain a session to make sure it doesn't go away while it is in use. + * + * @returns New reference count on success, UINT32_MAX on failure. + * @param pSession Session data. + */ +uint32_t VBOXCALL supdrvSessionRetain(PSUPDRVSESSION pSession) +{ + uint32_t cRefs; + AssertPtrReturn(pSession, UINT32_MAX); + AssertReturn(SUP_IS_SESSION_VALID(pSession), UINT32_MAX); + + cRefs = ASMAtomicIncU32(&pSession->cRefs); + AssertMsg(cRefs > 1 && cRefs < _1M, ("%#x %p\n", cRefs, pSession)); + return cRefs; +} + + +/** + * Releases a given session. + * + * @returns New reference count on success (0 if closed), UINT32_MAX on failure. + * @param pSession Session data. + */ +uint32_t VBOXCALL supdrvSessionRelease(PSUPDRVSESSION pSession) +{ + uint32_t cRefs; + AssertPtrReturn(pSession, UINT32_MAX); + AssertReturn(SUP_IS_SESSION_VALID(pSession), UINT32_MAX); + + cRefs = ASMAtomicDecU32(&pSession->cRefs); + AssertMsg(cRefs < _1M, ("%#x %p\n", cRefs, pSession)); + if (cRefs == 0) + supdrvDestroySession(pSession->pDevExt, pSession); + return cRefs; +} + + +/** * RTHandleTableDestroy callback used by supdrvCleanupSession. * * @returns IPRT status code, see SUPR0ObjAddRef. @@ -1033,7 +1356,7 @@ * @param pSession Session data. * @param pReqHdr The request header. */ -int VBOXCALL supdrvIOCtl(uintptr_t uIOCtl, PSUPDRVDEVEXT pDevExt, PSUPDRVSESSION pSession, PSUPREQHDR pReqHdr) +static int supdrvIOCtlInnerUnrestricted(uintptr_t uIOCtl, PSUPDRVDEVEXT pDevExt, PSUPDRVSESSION pSession, PSUPREQHDR pReqHdr) { VBOXDRV_SUPDRV_IOCTL_ENTRY(pSession, uIOCtl, pReqHdr); @@ -1781,7 +2104,6 @@ /* validate */ PSUPVTCAPS pReq = (PSUPVTCAPS)pReqHdr; REQ_CHECK_SIZES(SUP_IOCTL_VT_CAPS); - REQ_CHECK_EXPR(SUP_IOCTL_VT_CAPS, pReq->Hdr.cbIn <= SUP_IOCTL_VT_CAPS_SIZE_IN); /* execute */ pReq->Hdr.rc = SUPR0QueryVTCaps(pSession, &pReq->u.Out.Caps); @@ -1801,6 +2123,156 @@ /** + * I/O Control inner worker for the restricted operations. + * + * @returns IPRT status code. + * @retval VERR_INVALID_PARAMETER if the request is invalid. + * + * @param uIOCtl Function number. + * @param pDevExt Device extention. + * @param pSession Session data. + * @param pReqHdr The request header. + */ +static int supdrvIOCtlInnerRestricted(uintptr_t uIOCtl, PSUPDRVDEVEXT pDevExt, PSUPDRVSESSION pSession, PSUPREQHDR pReqHdr) +{ + /* + * The switch. + */ + switch (SUP_CTL_CODE_NO_SIZE(uIOCtl)) + { + case SUP_CTL_CODE_NO_SIZE(SUP_IOCTL_COOKIE): + { + PSUPCOOKIE pReq = (PSUPCOOKIE)pReqHdr; + REQ_CHECK_SIZES(SUP_IOCTL_COOKIE); + if (strncmp(pReq->u.In.szMagic, SUPCOOKIE_MAGIC, sizeof(pReq->u.In.szMagic))) + { + OSDBGPRINT(("SUP_IOCTL_COOKIE: invalid magic %.16s\n", pReq->u.In.szMagic)); + pReq->Hdr.rc = VERR_INVALID_MAGIC; + return 0; + } + + /* + * Match the version. + * The current logic is very simple, match the major interface version. + */ + if ( pReq->u.In.u32MinVersion > SUPDRV_IOC_VERSION + || (pReq->u.In.u32MinVersion & 0xffff0000) != (SUPDRV_IOC_VERSION & 0xffff0000)) + { + OSDBGPRINT(("SUP_IOCTL_COOKIE: Version mismatch. Requested: %#x Min: %#x Current: %#x\n", + pReq->u.In.u32ReqVersion, pReq->u.In.u32MinVersion, SUPDRV_IOC_VERSION)); + pReq->u.Out.u32Cookie = 0xffffffff; + pReq->u.Out.u32SessionCookie = 0xffffffff; + pReq->u.Out.u32SessionVersion = 0xffffffff; + pReq->u.Out.u32DriverVersion = SUPDRV_IOC_VERSION; + pReq->u.Out.pSession = NULL; + pReq->u.Out.cFunctions = 0; + pReq->Hdr.rc = VERR_VERSION_MISMATCH; + return 0; + } + + /* + * Fill in return data and be gone. + * N.B. The first one to change SUPDRV_IOC_VERSION shall makes sure that + * u32SessionVersion <= u32ReqVersion! + */ + /** @todo Somehow validate the client and negotiate a secure cookie... */ + pReq->u.Out.u32Cookie = pDevExt->u32Cookie; + pReq->u.Out.u32SessionCookie = pSession->u32Cookie; + pReq->u.Out.u32SessionVersion = SUPDRV_IOC_VERSION; + pReq->u.Out.u32DriverVersion = SUPDRV_IOC_VERSION; + pReq->u.Out.pSession = pSession; + pReq->u.Out.cFunctions = 0; + pReq->Hdr.rc = VINF_SUCCESS; + return 0; + } + + case SUP_CTL_CODE_NO_SIZE(SUP_IOCTL_VT_CAPS): + { + /* validate */ + PSUPVTCAPS pReq = (PSUPVTCAPS)pReqHdr; + REQ_CHECK_SIZES(SUP_IOCTL_VT_CAPS); + + /* execute */ + pReq->Hdr.rc = SUPR0QueryVTCaps(pSession, &pReq->u.Out.Caps); + if (RT_FAILURE(pReq->Hdr.rc)) + pReq->Hdr.cbOut = sizeof(pReq->Hdr); + return 0; + } + + default: + Log(("Unknown IOCTL %#lx\n", (long)uIOCtl)); + break; + } + return VERR_GENERAL_FAILURE; +} + + +/** + * I/O Control worker. + * + * @returns IPRT status code. + * @retval VERR_INVALID_PARAMETER if the request is invalid. + * + * @param uIOCtl Function number. + * @param pDevExt Device extention. + * @param pSession Session data. + * @param pReqHdr The request header. + */ +int VBOXCALL supdrvIOCtl(uintptr_t uIOCtl, PSUPDRVDEVEXT pDevExt, PSUPDRVSESSION pSession, PSUPREQHDR pReqHdr, size_t cbReq) +{ + int rc; + + /* + * Validate the request. + */ + if (RT_UNLIKELY(cbReq < sizeof(*pReqHdr))) + { + OSDBGPRINT(("vboxdrv: Bad ioctl request size; cbReq=%#lx\n", (long)cbReq)); + return VERR_INVALID_PARAMETER; + } + if (RT_UNLIKELY( (pReqHdr->fFlags & SUPREQHDR_FLAGS_MAGIC_MASK) != SUPREQHDR_FLAGS_MAGIC + || pReqHdr->cbIn < sizeof(*pReqHdr) + || pReqHdr->cbIn > cbReq + || pReqHdr->cbOut < sizeof(*pReqHdr) + || pReqHdr->cbOut > cbReq)) + { + OSDBGPRINT(("vboxdrv: Bad ioctl request header; cbIn=%#lx cbOut=%#lx fFlags=%#lx\n", + (long)pReqHdr->cbIn, (long)pReqHdr->cbOut, (long)pReqHdr->fFlags)); + return VERR_INVALID_PARAMETER; + } + if (RT_UNLIKELY(!RT_VALID_PTR(pSession))) + { + OSDBGPRINT(("vboxdrv: Invalid pSession valud %p (ioctl=%p)\n", pSession, (void *)uIOCtl)); + return VERR_INVALID_PARAMETER; + } + if (RT_UNLIKELY(uIOCtl == SUP_IOCTL_COOKIE)) + { + if (pReqHdr->u32Cookie != SUPCOOKIE_INITIAL_COOKIE) + { + OSDBGPRINT(("SUP_IOCTL_COOKIE: bad cookie %#lx\n", (long)pReqHdr->u32Cookie)); + return VERR_INVALID_PARAMETER; + } + } + else if (RT_UNLIKELY( pReqHdr->u32Cookie != pDevExt->u32Cookie + || pReqHdr->u32SessionCookie != pSession->u32Cookie)) + { + OSDBGPRINT(("vboxdrv: bad cookie %#lx / %#lx.\n", (long)pReqHdr->u32Cookie, (long)pReqHdr->u32SessionCookie)); + return VERR_INVALID_PARAMETER; + } + + /* + * Hand it to an inner function to avoid lots of unnecessary return tracepoints. + */ + if (pSession->fUnrestricted) + rc = supdrvIOCtlInnerUnrestricted(uIOCtl, pDevExt, pSession, pReqHdr); + else + rc = supdrvIOCtlInnerRestricted(uIOCtl, pDevExt, pSession, pReqHdr); + + return rc; +} + + +/** * Inter-Driver Communication (IDC) worker. * * @returns VBox status code. @@ -1895,7 +2367,7 @@ pReq->u.Out.uDriverVersion = SUPDRV_IDC_VERSION; pReq->u.Out.uDriverRevision = VBOX_SVN_REV; - pReq->Hdr.rc = supdrvCreateSession(pDevExt, false /* fUser */, &pSession); + pReq->Hdr.rc = supdrvCreateSession(pDevExt, false /* fUser */, true /*fUnrestricted*/, &pSession); if (RT_FAILURE(pReq->Hdr.rc)) { OSDBGPRINT(("SUPDRV_IDC_REQ_CONNECT: failed to create session, rc=%d\n", pReq->Hdr.rc)); @@ -1912,7 +2384,7 @@ { REQ_CHECK_IDC_SIZE(SUPDRV_IDC_REQ_DISCONNECT, sizeof(*pReqHdr)); - supdrvCloseSession(pDevExt, pSession); + supdrvSessionRelease(pSession); return pReqHdr->rc = VINF_SUCCESS; } @@ -3089,9 +3561,27 @@ } -/** @todo document me */ +/** + * Queries the AMD-V and VT-x capabilities of the calling CPU. + * + * @returns VBox status code. + * @retval VERR_VMX_NO_VMX + * @retval VERR_VMX_MSR_SMX_VMXON_DISABLED + * @retval VERR_VMX_MSR_VMXON_DISABLED + * @retval VERR_VMX_MSR_LOCKING_FAILED + * @retval VERR_SVM_NO_SVM + * @retval VERR_SVM_DISABLED + * @retval VERR_UNSUPPORTED_CPU if not identifiable as an AMD, Intel or VIA + * (centaur) CPU. + * + * @param pSession The session handle. + * @param pfCaps Where to store the capabilities. + */ SUPR0DECL(int) SUPR0QueryVTCaps(PSUPDRVSESSION pSession, uint32_t *pfCaps) { + int rc = VERR_UNSUPPORTED_CPU; + RTTHREADPREEMPTSTATE PreemptState = RTTHREADPREEMPTSTATE_INITIALIZER; + /* * Input validation. */ @@ -3099,39 +3589,72 @@ AssertPtrReturn(pfCaps, VERR_INVALID_POINTER); *pfCaps = 0; - + /* We may modify MSRs and re-read them, disable preemption so we make sure we don't migrate CPUs. */ + RTThreadPreemptDisable(&PreemptState); if (ASMHasCpuId()) { - uint32_t u32FeaturesECX; - uint32_t u32Dummy; - uint32_t u32FeaturesEDX; - uint32_t u32VendorEBX, u32VendorECX, u32VendorEDX, u32AMDFeatureEDX, u32AMDFeatureECX; - uint64_t val; - - ASMCpuId(0, &u32Dummy, &u32VendorEBX, &u32VendorECX, &u32VendorEDX); - ASMCpuId(1, &u32Dummy, &u32Dummy, &u32FeaturesECX, &u32FeaturesEDX); - /* Query AMD features. */ - ASMCpuId(0x80000001, &u32Dummy, &u32Dummy, &u32AMDFeatureECX, &u32AMDFeatureEDX); - - if ( u32VendorEBX == X86_CPUID_VENDOR_INTEL_EBX - && u32VendorECX == X86_CPUID_VENDOR_INTEL_ECX - && u32VendorEDX == X86_CPUID_VENDOR_INTEL_EDX + uint32_t fFeaturesECX, fFeaturesEDX, uDummy; + uint32_t uMaxId, uVendorEBX, uVendorECX, uVendorEDX; + uint64_t u64FeatMsr; + + ASMCpuId(0, &uMaxId, &uVendorEBX, &uVendorECX, &uVendorEDX); + ASMCpuId(1, &uDummy, &uDummy, &fFeaturesECX, &fFeaturesEDX); + + if ( ASMIsValidStdRange(uMaxId) + && ( ASMIsIntelCpuEx( uVendorEBX, uVendorECX, uVendorEDX) + || ASMIsViaCentaurCpuEx(uVendorEBX, uVendorECX, uVendorEDX) ) ) { - if ( (u32FeaturesECX & X86_CPUID_FEATURE_ECX_VMX) - && (u32FeaturesEDX & X86_CPUID_FEATURE_EDX_MSR) - && (u32FeaturesEDX & X86_CPUID_FEATURE_EDX_FXSR) + if ( (fFeaturesECX & X86_CPUID_FEATURE_ECX_VMX) + && (fFeaturesEDX & X86_CPUID_FEATURE_EDX_MSR) + && (fFeaturesEDX & X86_CPUID_FEATURE_EDX_FXSR) ) { - val = ASMRdMsr(MSR_IA32_FEATURE_CONTROL); - /* - * Both the LOCK and VMXON bit must be set; otherwise VMXON will generate a #GP. - * Once the lock bit is set, this MSR can no longer be modified. - */ - if ( (val & (MSR_IA32_FEATURE_CONTROL_VMXON|MSR_IA32_FEATURE_CONTROL_LOCK)) - == (MSR_IA32_FEATURE_CONTROL_VMXON|MSR_IA32_FEATURE_CONTROL_LOCK) /* enabled and locked */ - || !(val & MSR_IA32_FEATURE_CONTROL_LOCK) /* not enabled, but not locked either */ - ) + /** @todo Unify code with hmR0InitIntelCpu(). */ + uint64_t u64FeatMsr = ASMRdMsr(MSR_IA32_FEATURE_CONTROL); + bool const fInSmxMode = RT_BOOL(ASMGetCR4() & X86_CR4_SMXE); + bool fMsrLocked = RT_BOOL(u64FeatMsr & MSR_IA32_FEATURE_CONTROL_LOCK); + bool fSmxVmxAllowed = RT_BOOL(u64FeatMsr & MSR_IA32_FEATURE_CONTROL_SMX_VMXON); + bool fVmxAllowed = RT_BOOL(u64FeatMsr & MSR_IA32_FEATURE_CONTROL_VMXON); + + /* Check if the LOCK bit is set but excludes the required VMXON bit. */ + if (fMsrLocked) + { + if (fInSmxMode && !fSmxVmxAllowed) + rc = VERR_VMX_MSR_SMX_VMXON_DISABLED; + else if (!fInSmxMode && !fVmxAllowed) + rc = VERR_VMX_MSR_VMXON_DISABLED; + else + rc = VINF_SUCCESS; + } + else + { + /* + * MSR is not yet locked; we can change it ourselves here. + * Once the lock bit is set, this MSR can no longer be modified. + */ + bool fAllowed; + u64FeatMsr |= MSR_IA32_FEATURE_CONTROL_LOCK; + if (fInSmxMode) + u64FeatMsr |= MSR_IA32_FEATURE_CONTROL_SMX_VMXON; + else + u64FeatMsr |= MSR_IA32_FEATURE_CONTROL_VMXON; + + ASMWrMsr(MSR_IA32_FEATURE_CONTROL, u64FeatMsr); + + /* Verify. */ + u64FeatMsr = ASMRdMsr(MSR_IA32_FEATURE_CONTROL); + fMsrLocked = RT_BOOL(u64FeatMsr & MSR_IA32_FEATURE_CONTROL_LOCK); + fSmxVmxAllowed = fMsrLocked && RT_BOOL(u64FeatMsr & MSR_IA32_FEATURE_CONTROL_SMX_VMXON); + fVmxAllowed = fMsrLocked && RT_BOOL(u64FeatMsr & MSR_IA32_FEATURE_CONTROL_VMXON); + fAllowed = fInSmxMode ? fSmxVmxAllowed : fVmxAllowed; + if (fAllowed) + rc = VINF_SUCCESS; + else + rc = VERR_VMX_MSR_LOCKING_FAILED; + } + + if (rc == VINF_SUCCESS) { VMX_CAPABILITY vtCaps; @@ -3144,44 +3667,48 @@ if (vtCaps.n.allowed1 & VMX_VMCS_CTRL_PROC_EXEC2_EPT) *pfCaps |= SUPVTCAPS_NESTED_PAGING; } - return VINF_SUCCESS; } - return VERR_VMX_MSR_LOCKED_OR_DISABLED; } - return VERR_VMX_NO_VMX; + else + rc = VERR_VMX_NO_VMX; } - - if ( u32VendorEBX == X86_CPUID_VENDOR_AMD_EBX - && u32VendorECX == X86_CPUID_VENDOR_AMD_ECX - && u32VendorEDX == X86_CPUID_VENDOR_AMD_EDX - ) + else if ( ASMIsAmdCpuEx(uVendorEBX, uVendorECX, uVendorEDX) + && ASMIsValidStdRange(uMaxId)) { - if ( (u32AMDFeatureECX & X86_CPUID_AMD_FEATURE_ECX_SVM) - && (u32FeaturesEDX & X86_CPUID_FEATURE_EDX_MSR) - && (u32FeaturesEDX & X86_CPUID_FEATURE_EDX_FXSR) + uint32_t fExtFeaturesEcx, uExtMaxId; + ASMCpuId(0x80000000, &uExtMaxId, &uDummy, &uDummy, &uDummy); + ASMCpuId(0x80000001, &uDummy, &uDummy, &fExtFeaturesEcx, &uDummy); + if ( ASMIsValidExtRange(uExtMaxId) + && uExtMaxId >= 0x8000000a + && (fExtFeaturesEcx & X86_CPUID_AMD_FEATURE_ECX_SVM) + && (fFeaturesEDX & X86_CPUID_FEATURE_EDX_MSR) + && (fFeaturesEDX & X86_CPUID_FEATURE_EDX_FXSR) ) { /* Check if SVM is disabled */ - val = ASMRdMsr(MSR_K8_VM_CR); - if (!(val & MSR_K8_VM_CR_SVM_DISABLE)) + u64FeatMsr = ASMRdMsr(MSR_K8_VM_CR); + if (!(u64FeatMsr & MSR_K8_VM_CR_SVM_DISABLE)) { + uint32_t fSvmFeatures; *pfCaps |= SUPVTCAPS_AMD_V; - /* Query AMD features. */ - ASMCpuId(0x8000000A, &u32Dummy, &u32Dummy, &u32Dummy, &u32FeaturesEDX); - - if (u32FeaturesEDX & AMD_CPUID_SVM_FEATURE_EDX_NESTED_PAGING) + /* Query AMD-V features. */ + ASMCpuId(0x8000000a, &uDummy, &uDummy, &uDummy, &fSvmFeatures); + if (fSvmFeatures & AMD_CPUID_SVM_FEATURE_EDX_NESTED_PAGING) *pfCaps |= SUPVTCAPS_NESTED_PAGING; - return VINF_SUCCESS; + rc = VINF_SUCCESS; } - return VERR_SVM_DISABLED; + else + rc = VERR_SVM_DISABLED; } - return VERR_SVM_NO_SVM; + else + rc = VERR_SVM_NO_SVM; } } - return VERR_UNSUPPORTED_CPU; + RTThreadPreemptRestore(&PreemptState); + return rc; } @@ -3804,14 +4331,20 @@ if ( pImage->szName[cchName] == '\0' && !memcmp(pImage->szName, pReq->u.In.szName, cchName)) { - /** @todo check cbImageBits and cbImageWithTabs here, if they differs that indicates that the images are different. */ - pImage->cUsage++; - pReq->u.Out.pvImageBase = pImage->pvImage; - pReq->u.Out.fNeedsLoading = pImage->uState == SUP_IOCTL_LDR_OPEN; - pReq->u.Out.fNativeLoader = pImage->fNative; - supdrvLdrAddUsage(pSession, pImage); + if (RT_LIKELY(pImage->cUsage < UINT32_MAX / 2U)) + { + /** @todo check cbImageBits and cbImageWithTabs here, if they differs that indicates that the images are different. */ + pImage->cUsage++; + pReq->u.Out.pvImageBase = pImage->pvImage; + pReq->u.Out.fNeedsLoading = pImage->uState == SUP_IOCTL_LDR_OPEN; + pReq->u.Out.fNativeLoader = pImage->fNative; + supdrvLdrAddUsage(pSession, pImage); + supdrvLdrUnlock(pDevExt); + return VINF_SUCCESS; + } supdrvLdrUnlock(pDevExt); - return VINF_SUCCESS; + Log(("supdrvIOCtl_LdrOpen: To many existing references to '%s'!\n", pReq->u.In.szName)); + return VERR_INTERNAL_ERROR_3; /** @todo add VERR_TOO_MANY_REFERENCES */ } } /* (not found - add it!) */ @@ -4865,7 +5398,7 @@ } } if (pGip->u32Mode != SUPGIPMODE_ASYNC_TSC) - rc = RTTimerCreateEx(&pDevExt->pGipTimer, u32Interval, 0, supdrvGipSyncTimer, pDevExt); + rc = RTTimerCreateEx(&pDevExt->pGipTimer, u32Interval, 0 /* fFlags */, supdrvGipSyncTimer, pDevExt); if (RT_SUCCESS(rc)) { rc = RTMpNotificationRegister(supdrvGipMpEvent, pDevExt); diff -Nru virtualbox-4.1.12-dfsg/src/VBox/HostDrivers/Support/SUPDrvInternal.h virtualbox-4.1.44-dfsg/src/VBox/HostDrivers/Support/SUPDrvInternal.h --- virtualbox-4.1.12-dfsg/src/VBox/HostDrivers/Support/SUPDrvInternal.h 2012-04-02 13:28:47.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/HostDrivers/Support/SUPDrvInternal.h 2015-11-11 15:08:40.000000000 +0000 @@ -1,4 +1,4 @@ -/* $Revision: 71971 $ */ +/* $Revision: 97657 $ */ /** @file * VirtualBox Support Driver - Internal header. */ @@ -56,7 +56,7 @@ # define _interlockedbittestandset64 _interlockedbittestandset64_StupidDDKVsCompilerCrap # define _interlockedbittestandreset64 _interlockedbittestandreset64_StupidDDKVsCompilerCrap # pragma warning(disable : 4163) -# include +# include # pragma warning(default : 4163) # undef _InterlockedExchange # undef _InterlockedExchangeAdd @@ -67,16 +67,14 @@ # undef _interlockedbittestandset64 # undef _interlockedbittestandreset64 # else -# include +# include # endif # include -# define memcmp(a,b,c) mymemcmp(a,b,c) - int VBOXCALL mymemcmp(const void *, const void *, size_t); RT_C_DECLS_END #elif defined(RT_OS_LINUX) # include -# if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,33) +# if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 33) # include # else # ifndef AUTOCONF_INCLUDED @@ -175,6 +173,13 @@ */ #define OSDBGPRINT(a) SUPR0Printf a +/** Debug printf macro shared with the ring-3 part. */ +#ifdef DEBUG_bird +# define SUP_DPRINTF(a) SUPR0Printf a +#else +# define SUP_DPRINTF(a) do { } while (0) +#endif + /** @name Context values for the per-session handle tables. * The context value is used to distinguish between the different kinds of @@ -197,6 +202,16 @@ ( VALID_PTR(pSession) \ && pSession->u32Cookie == BIRD_INV) +/** + * Validates a device extension pointer. + * + * @returns true/false accordingly. + * @param pDevExt The device extension. + */ +#define SUP_IS_DEVEXT_VALID(pDevExt) \ + ( VALID_PTR(pDevExt)\ + && pDevExt->u32Cookie == BIRD) + /******************************************************************************* * Structures and Typedefs * @@ -374,9 +389,9 @@ } SUPDRVOBJ, *PSUPDRVOBJ; /** Magic number for SUPDRVOBJ::u32Magic. (Dame Agatha Mary Clarissa Christie). */ -#define SUPDRVOBJ_MAGIC 0x18900915 +#define SUPDRVOBJ_MAGIC UINT32_C(0x18900915) /** Dead number magic for SUPDRVOBJ::u32Magic. */ -#define SUPDRVOBJ_MAGIC_DEAD 0x19760112 +#define SUPDRVOBJ_MAGIC_DEAD UINT32_C(0x19760112) /** * The per-session object usage record. @@ -402,16 +417,37 @@ PSUPDRVDEVEXT pDevExt; /** Session Cookie. */ uint32_t u32Cookie; + /** Set if is an unrestricted session, clear if restricted. */ + bool fUnrestricted; + + /** Set if we're in the hash table, clear if not. Protected by the hash + * table spinlock. */ + bool fInHashTable; + /** Reference counter. */ + uint32_t volatile cRefs; + /** Pointer to the next session with the same hash (common hash table). + * Protected by the hash table spinlock. */ + PSUPDRVSESSION pCommonNextHash; + /** Pointer to the OS specific session pointer, if available and in use. + * This is atomically set and cleared as the session is inserted and removed + * from the hash table (protected by the session hash table spinlock). */ + PSUPDRVSESSION *ppOsSessionPtr; + /** The process (id) of the session. */ + RTPROCESS Process; + /** Which process this session is associated with. + * This is NIL_RTR0PROCESS for kernel sessions and valid for user ones. */ + RTR0PROCESS R0Process; /** The VM associated with the session. */ PVM pVM; - /** Handle table for IPRT semaphore wrapper APIs. - * Programmable from R0 and R3. */ + /** Handle table for IPRT semaphore wrapper APIs. */ RTHANDLETABLE hHandleTable; /** Load usage records. (protected by SUPDRVDEVEXT::mtxLdr) */ PSUPDRVLDRUSAGE volatile pLdrUsage; - /** Spinlock protecting the bundles and the GIP members. */ + /** Spinlock protecting the bundles, the GIP members and the + * fProcessCleanupDone flag. It continues to be valid until the last + * reference to the session is released. */ RTSPINLOCK Spinlock; /** The ring-3 mapping of the GIP (readonly). */ RTR0MEMOBJ GipMapObjR3; @@ -426,11 +462,6 @@ RTUID Uid; /** The group id of the session. (Set by the OS part.) */ RTGID Gid; - /** The process (id) of the session. */ - RTPROCESS Process; - /** Which process this session is associated with. - * This is NIL_RTR0PROCESS for kernel sessions and valid for user ones. */ - RTR0PROCESS R0Process; #ifndef SUPDRV_AGNOSTIC # if defined(RT_OS_DARWIN) /** Pointer to the associated org_virtualbox_SupDrvClient object. */ @@ -447,6 +478,10 @@ /** Pointer to the next session with the same hash. */ PSUPDRVSESSION pNextHash; # endif +# if defined(RT_OS_WINDOWS) && defined(VBOX_WITH_HARDENING) + /** Pointer to the process protection structure for this session. */ + struct SUPDRVNTPROTECT *pNtProtect; +# endif #endif /* !SUPDRV_AGNOSTIC */ } SUPDRVSESSION; @@ -456,7 +491,15 @@ */ typedef struct SUPDRVDEVEXT { - /** Spinlock to serialize the initialization, usage counting and objects. */ + /** Global cookie. */ + uint32_t u32Cookie; + /** The actual size of SUPDRVSESSION. (SUPDRV_AGNOSTIC) */ + uint32_t cbSession; + + /** Spinlock to serialize the initialization, usage counting and objects. + * This is IRQ safe because we want to be able signal semaphores from the + * special HM context (and later maybe interrupt handlers), so we must be able + * to reference and dereference handles when IRQs are disabled. */ RTSPINLOCK Spinlock; /** List of registered objects. Protected by the spinlock. */ @@ -464,11 +507,6 @@ /** List of free object usage records. */ PSUPDRVUSAGE volatile pUsageFree; - /** Global cookie. */ - uint32_t u32Cookie; - /** The actual size of SUPDRVSESSION. (SUPDRV_AGNOSTIC) */ - uint32_t cbSession; - /** Loader mutex. * This protects pvVMMR0, pvVMMR0Entry, pImages and SUPDRVSESSION::pLdrUsage. */ #ifdef SUPDRV_USE_MUTEX_FOR_LDR @@ -521,6 +559,22 @@ /** The head of the list of registered component factories. */ PSUPDRVFACTORYREG pComponentFactoryHead; + /** @name Session Handle Table. + * @{ */ + /** Spinlock protecting apSessionHashTab, cSessions, + * SUPDRVSESSION::ppOsSessionPtr, SUPDRVSESSION::pCommonNextHash, and possibly + * others depending on the OS. */ + RTSPINLOCK hSessionHashTabSpinlock; + /** Session hash table hash table. The size of this table must make sense in + * comparison to GVMM_MAX_HANDLES. */ + PSUPDRVSESSION apSessionHashTab[HC_ARCH_BITS == 64 ? 8191 : 127]; + /** The number of open sessions. */ + int32_t cSessions; + /** @} */ + + /* + * Note! The non-agnostic bits must be at the very end of the structure! + */ #ifndef SUPDRV_AGNOSTIC # ifdef RT_OS_WINDOWS /* Callback object returned by ExCreateCallback. */ @@ -531,12 +585,43 @@ #endif } SUPDRVDEVEXT; +/** Calculates the index into g_apSessionHashTab.*/ +#define SUPDRV_SESSION_HASH(a_pid) ( (a_pid) % RT_ELEMENTS(((SUPDRVDEVEXT *)NULL)->apSessionHashTab) ) + RT_C_DECLS_BEGIN /******************************************************************************* * OS Specific Functions * *******************************************************************************/ +/** + * Called to clean up the session structure before it's freed. + * + * @param pDevExt The device globals. + * @param pSession The session that's being cleaned up. + */ +void VBOXCALL supdrvOSCleanupSession(PSUPDRVDEVEXT pDevExt, PSUPDRVSESSION pSession); + +/** + * Called to let the OS specfic code perform additional insertion work while + * still under the protection of the hash table spinlock. + * + * @param pDevExt The device globals. + * @param pSession The session that was inserted. + * @param pvUser User context specified to the insert call. + */ +void VBOXCALL supdrvOSSessionHashTabInserted(PSUPDRVDEVEXT pDevExt, PSUPDRVSESSION pSession, void *pvUser); + +/** + * Called to let the OS specfic code perform additional removal work while still + * under the protection of the hash table spinlock. + * + * @param pDevExt The device globals. + * @param pSession The session that was removed. + * @param pvUser User context specified to the remove call. + */ +void VBOXCALL supdrvOSSessionHashTabRemoved(PSUPDRVDEVEXT pDevExt, PSUPDRVSESSION pSession, void *pvUser); + void VBOXCALL supdrvOSObjInitCreator(PSUPDRVOBJ pObj, PSUPDRVSESSION pSession); bool VBOXCALL supdrvOSObjCanAccess(PSUPDRVOBJ pObj, PSUPDRVSESSION pSession, const char *pszObjName, int *prc); bool VBOXCALL supdrvOSGetForcedAsyncTscMode(PSUPDRVDEVEXT pDevExt); @@ -598,14 +683,18 @@ * Shared Functions * *******************************************************************************/ /* SUPDrv.c */ -int VBOXCALL supdrvIOCtl(uintptr_t uIOCtl, PSUPDRVDEVEXT pDevExt, PSUPDRVSESSION pSession, PSUPREQHDR pReqHdr); +int VBOXCALL supdrvIOCtl(uintptr_t uIOCtl, PSUPDRVDEVEXT pDevExt, PSUPDRVSESSION pSession, PSUPREQHDR pReqHdr, size_t cbReq); int VBOXCALL supdrvIOCtlFast(uintptr_t uIOCtl, VMCPUID idCpu, PSUPDRVDEVEXT pDevExt, PSUPDRVSESSION pSession); int VBOXCALL supdrvIDC(uintptr_t uIOCtl, PSUPDRVDEVEXT pDevExt, PSUPDRVSESSION pSession, PSUPDRVIDCREQHDR pReqHdr); int VBOXCALL supdrvInitDevExt(PSUPDRVDEVEXT pDevExt, size_t cbSession); void VBOXCALL supdrvDeleteDevExt(PSUPDRVDEVEXT pDevExt); -int VBOXCALL supdrvCreateSession(PSUPDRVDEVEXT pDevExt, bool fUser, PSUPDRVSESSION *ppSession); -void VBOXCALL supdrvCloseSession(PSUPDRVDEVEXT pDevExt, PSUPDRVSESSION pSession); -void VBOXCALL supdrvCleanupSession(PSUPDRVDEVEXT pDevExt, PSUPDRVSESSION pSession); +int VBOXCALL supdrvCreateSession(PSUPDRVDEVEXT pDevExt, bool fUser, bool fUnrestricted, PSUPDRVSESSION *ppSession); +int VBOXCALL supdrvSessionHashTabInsert(PSUPDRVDEVEXT pDevExt, PSUPDRVSESSION pSession, PSUPDRVSESSION *ppOsSessionPtr, void *pvUser); +int VBOXCALL supdrvSessionHashTabRemove(PSUPDRVDEVEXT pDevExt, PSUPDRVSESSION pSession, void *pvUser); +PSUPDRVSESSION VBOXCALL supdrvSessionHashTabLookup(PSUPDRVDEVEXT pDevExt, RTPROCESS Process, RTR0PROCESS R0Process, + PSUPDRVSESSION *ppOsSessionPtr); +uint32_t VBOXCALL supdrvSessionRetain(PSUPDRVSESSION pSession); +uint32_t VBOXCALL supdrvSessionRelease(PSUPDRVSESSION pSession); RT_C_DECLS_END diff -Nru virtualbox-4.1.12-dfsg/src/VBox/HostDrivers/Support/SUPDrvIOC.h virtualbox-4.1.44-dfsg/src/VBox/HostDrivers/Support/SUPDrvIOC.h --- virtualbox-4.1.12-dfsg/src/VBox/HostDrivers/Support/SUPDrvIOC.h 2012-04-02 13:28:47.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/HostDrivers/Support/SUPDrvIOC.h 2015-11-11 15:08:40.000000000 +0000 @@ -1,4 +1,4 @@ -/* $Revision: 72437 $ */ +/* $Revision: 97658 $ */ /** @file * VirtualBox Support Driver - IOCtl definitions. */ @@ -56,6 +56,23 @@ # define SUP_CTL_CODE_FAST(Function) CTL_CODE(FILE_DEVICE_UNKNOWN, (Function) | SUP_IOCTL_FLAG, METHOD_NEITHER, FILE_WRITE_ACCESS) # define SUP_CTL_CODE_NO_SIZE(uIOCtl) (uIOCtl) +# define SUP_NT_STATUS_BASE UINT32_C(0xe9860000) /**< STATUS_SEVERITY_ERROR + C-bit + facility 0x986. */ +# define SUP_NT_STATUS_IS_VBOX(a_rcNt) ( ((uint32_t)(a_rcNt) & 0xffff0000) == SUP_NT_STATUS_BASE ) +# define SUP_NT_STATUS_TO_VBOX(a_rcNt) ( (int)((uint32_t)(a_rcNt) | UINT32_C(0xffff0000)) ) + +/** NT device name for system access. */ +# define SUPDRV_NT_DEVICE_NAME_SYS L"\\Device\\VBoxDrv" +/** NT device name for user access. */ +# define SUPDRV_NT_DEVICE_NAME_USR L"\\Device\\VBoxDrvU" +# ifdef VBOX_WITH_HARDENING +/** NT device name for hardened stub access. */ +# define SUPDRV_NT_DEVICE_NAME_STUB L"\\Device\\VBoxDrvStub" +/** NT device name for getting error information for failed VBoxDrv or + * VBoxDrvStub open. */ +# define SUPDRV_NT_DEVICE_NAME_ERROR_INFO L"\\Device\\VBoxDrvErrorInfo" +# endif + + #elif defined(RT_OS_SOLARIS) /* No automatic buffering, size limited to 255 bytes. */ # include @@ -192,7 +209,7 @@ * @todo Pending work on next major version change: * - None. */ -#define SUPDRV_IOC_VERSION 0x00190000 +#define SUPDRV_IOC_VERSION 0x00190001 /** SUP_IOCTL_COOKIE. */ typedef struct SUPCOOKIE diff -Nru virtualbox-4.1.12-dfsg/src/VBox/HostDrivers/Support/SUPLib.cpp virtualbox-4.1.44-dfsg/src/VBox/HostDrivers/Support/SUPLib.cpp --- virtualbox-4.1.12-dfsg/src/VBox/HostDrivers/Support/SUPLib.cpp 2012-04-02 13:28:47.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/HostDrivers/Support/SUPLib.cpp 2015-11-11 15:08:40.000000000 +0000 @@ -96,11 +96,12 @@ * via the pre-init mechanism from the hardened executable stub. */ SUPLIBDATA g_supLibData = { - SUP_HDEVICE_NIL + SUP_HDEVICE_NIL, + /*.fUnrestricted = */ true #if defined(RT_OS_DARWIN) - , NULL + ,/* .uConnection = */ NULL #elif defined(RT_OS_LINUX) - , false + ,/* .fSysMadviseWorks = */ false #endif }; @@ -210,6 +211,8 @@ SUPR3DECL(int) SUPR3Init(PSUPDRVSESSION *ppSession) { + bool const fUnrestricted = true; + /* * Perform some sanity checks. * (Got some trouble with compile time member alignment assertions.) @@ -227,7 +230,18 @@ if (ppSession) *ppSession = g_pSession; if (g_cInits++ > 0) + { +#if 0 + if (fUnrestricted && !g_supLibData.fUnrestricted) + { + g_cInits--; + if (ppSession) + *ppSession = NIL_RTR0PTR; + return VERR_VM_DRIVER_NOT_ACCESSIBLE; /** @todo different status code? */ + } +#endif return VINF_SUCCESS; + } /* * Check for fake mode. @@ -250,7 +264,8 @@ /* * Open the support driver. */ - int rc = suplibOsInit(&g_supLibData, g_fPreInited); + SUPINITOP enmWhat = kSupInitOp_Driver; + int rc = suplibOsInit(&g_supLibData, g_fPreInited, fUnrestricted, &enmWhat, NULL); if (RT_SUCCESS(rc)) { /* @@ -266,8 +281,8 @@ CookieReq.Hdr.rc = VERR_INTERNAL_ERROR; strcpy(CookieReq.u.In.szMagic, SUPCOOKIE_MAGIC); CookieReq.u.In.u32ReqVersion = SUPDRV_IOC_VERSION; - const uint32_t uMinVersion = (SUPDRV_IOC_VERSION & 0xffff0000) == 0x00170000 - ? 0x00170002 + const uint32_t uMinVersion = (SUPDRV_IOC_VERSION & 0xffff0000) == 0x00190000 + ? 0x00190001 : SUPDRV_IOC_VERSION & 0xffff0000; CookieReq.u.In.u32MinVersion = uMinVersion; rc = suplibOsIOCtl(&g_supLibData, SUP_IOCTL_COOKIE, &CookieReq, SUP_IOCTL_COOKIE_SIZE); @@ -1436,6 +1451,26 @@ } +SUPR3DECL(int) SUPR3HardenedVerifyInit(void) +{ +#ifdef RT_OS_WINDOWS + if (g_cInits == 0) + return suplibOsHardenedVerifyInit(); +#endif + return VINF_SUCCESS; +} + + +SUPR3DECL(int) SUPR3HardenedVerifyTerm(void) +{ +#ifdef RT_OS_WINDOWS + if (g_cInits == 0) + return suplibOsHardenedVerifyTerm(); +#endif + return VINF_SUCCESS; +} + + SUPR3DECL(int) SUPR3HardenedVerifyFile(const char *pszFilename, const char *pszMsg, PRTFILE phFile) { /* @@ -1511,7 +1546,7 @@ /* * Verify that the image file and parent directories are sane. */ - rc = supR3HardenedVerifyFile(szExecPath, RTHCUINTPTR_MAX, pErrInfo); + rc = supR3HardenedVerifyFile(szExecPath, RTHCUINTPTR_MAX, false /*fMaybe3rdParty*/, pErrInfo); if (RT_FAILURE(rc)) return rc; #endif @@ -1554,7 +1589,7 @@ * Only do the actual check in hardened builds. */ #ifdef VBOX_WITH_HARDENING - int rc = supR3HardenedVerifyFile(pszFilename, RTHCUINTPTR_MAX, pErrInfo); + int rc = supR3HardenedVerifyFile(pszFilename, RTHCUINTPTR_MAX, true /*fMaybe3rdParty*/, pErrInfo); if (RT_FAILURE(rc) && !RTErrInfoIsSet(pErrInfo)) LogRel(("supR3HardenedVerifyFile: Verification of \"%s\" failed, rc=%Rrc\n", pszFilename, rc)); return rc; @@ -1574,7 +1609,7 @@ { rc = supLoadModule(pszFilename, pszModule, NULL, ppvImageBase); if (RT_FAILURE(rc)) - RTErrInfoSetF(pErrInfo, rc, "supLoadModule returned %Rrc", rc); + RTErrInfoSetF(pErrInfo, rc, "SUPR3LoadModule: supLoadModule returned %Rrc", rc); } return rc; } @@ -1822,7 +1857,10 @@ RTLDRMOD hLdrMod; rc = RTLdrOpen(pszFilename, 0, RTLDRARCH_HOST, &hLdrMod); if (!RT_SUCCESS(rc)) + { + LogRel(("SUP: RTLdrOpen failed for %s (%s)\n", pszModule, pszFilename, rc)); return rc; + } SUPLDRCALCSIZEARGS CalcArgs; CalcArgs.cbStrings = 0; @@ -1890,21 +1928,27 @@ RTUINTPTR ModuleTerm = 0; if (fIsVMMR0) { - rc = RTLdrGetSymbolEx(hLdrMod, &pLoadReq->u.In.abImage[0], (uintptr_t)OpenReq.u.Out.pvImageBase, "VMMR0EntryInt", &VMMR0EntryInt); + rc = RTLdrGetSymbolEx(hLdrMod, &pLoadReq->u.In.abImage[0], (uintptr_t)OpenReq.u.Out.pvImageBase, + UINT32_MAX, "VMMR0EntryInt", &VMMR0EntryInt); if (RT_SUCCESS(rc)) - rc = RTLdrGetSymbolEx(hLdrMod, &pLoadReq->u.In.abImage[0], (uintptr_t)OpenReq.u.Out.pvImageBase, "VMMR0EntryFast", &VMMR0EntryFast); + rc = RTLdrGetSymbolEx(hLdrMod, &pLoadReq->u.In.abImage[0], (uintptr_t)OpenReq.u.Out.pvImageBase, + UINT32_MAX, "VMMR0EntryFast", &VMMR0EntryFast); if (RT_SUCCESS(rc)) - rc = RTLdrGetSymbolEx(hLdrMod, &pLoadReq->u.In.abImage[0], (uintptr_t)OpenReq.u.Out.pvImageBase, "VMMR0EntryEx", &VMMR0EntryEx); + rc = RTLdrGetSymbolEx(hLdrMod, &pLoadReq->u.In.abImage[0], (uintptr_t)OpenReq.u.Out.pvImageBase, + UINT32_MAX, "VMMR0EntryEx", &VMMR0EntryEx); } else if (pszSrvReqHandler) - rc = RTLdrGetSymbolEx(hLdrMod, &pLoadReq->u.In.abImage[0], (uintptr_t)OpenReq.u.Out.pvImageBase, pszSrvReqHandler, &SrvReqHandler); + rc = RTLdrGetSymbolEx(hLdrMod, &pLoadReq->u.In.abImage[0], (uintptr_t)OpenReq.u.Out.pvImageBase, + UINT32_MAX, pszSrvReqHandler, &SrvReqHandler); if (RT_SUCCESS(rc)) { - int rc2 = RTLdrGetSymbolEx(hLdrMod, &pLoadReq->u.In.abImage[0], (uintptr_t)OpenReq.u.Out.pvImageBase, "ModuleInit", &ModuleInit); + int rc2 = RTLdrGetSymbolEx(hLdrMod, &pLoadReq->u.In.abImage[0], (uintptr_t)OpenReq.u.Out.pvImageBase, + UINT32_MAX, "ModuleInit", &ModuleInit); if (RT_FAILURE(rc2)) ModuleInit = 0; - rc2 = RTLdrGetSymbolEx(hLdrMod, &pLoadReq->u.In.abImage[0], (uintptr_t)OpenReq.u.Out.pvImageBase, "ModuleTerm", &ModuleTerm); + rc2 = RTLdrGetSymbolEx(hLdrMod, &pLoadReq->u.In.abImage[0], (uintptr_t)OpenReq.u.Out.pvImageBase, + UINT32_MAX, "ModuleTerm", &ModuleTerm); if (RT_FAILURE(rc2)) ModuleTerm = 0; } @@ -1967,6 +2011,8 @@ rc = suplibOsIOCtl(&g_supLibData, SUP_IOCTL_LDR_LOAD, pLoadReq, SUP_IOCTL_LDR_LOAD_SIZE(cbImageWithTabs)); if (RT_SUCCESS(rc)) rc = pLoadReq->Hdr.rc; + else + LogRel(("SUP: SUP_IOCTL_LDR_LOAD ioctl for %s (%s) failed rc=%Rrc\n", pszModule, pszFilename, rc)); } else rc = VINF_SUCCESS; @@ -1991,9 +2037,17 @@ RTLdrClose(hLdrMod); return VINF_SUCCESS; } + else + LogRel(("SUP: Loading failed for %s (%s) rc=%Rrc\n", pszModule, pszFilename, rc)); } + else + LogRel(("SUP: RTLdrEnumSymbols failed for %s (%s) rc=%Rrc\n", pszModule, pszFilename, rc)); } + else + LogRel(("SUP: Failed to get entry points for %s (%s) rc=%Rrc\n", pszModule, pszFilename, rc)); } + else + LogRel(("SUP: RTLdrGetBits failed for %s (%s). rc=%Rrc\n", pszModule, pszFilename, rc)); RTMemTmpFree(pLoadReq); } else @@ -2125,7 +2179,9 @@ /* * Verify the image file. */ - int rc = supR3HardenedVerifyFixedFile(pszFilename, false /* fFatal */); + int rc = SUPR3HardenedVerifyInit(); + if (RT_FAILURE(rc)) + rc = supR3HardenedVerifyFixedFile(pszFilename, false /* fFatal */); if (RT_FAILURE(rc)) { LogRel(("supR3HardenedLdrLoadIt: Verification of \"%s\" failed, rc=%Rrc\n", pszFilename, rc)); @@ -2231,8 +2287,6 @@ SUPR3DECL(int) SUPR3HardenedLdrLoadPlugIn(const char *pszFilename, PRTLDRMOD phLdrMod, PRTERRINFO pErrInfo) { - int rc; - /* * Validate input. */ @@ -2246,7 +2300,7 @@ /* * Verify the image file. */ - rc = supR3HardenedVerifyFile(pszFilename, RTHCUINTPTR_MAX, pErrInfo); + int rc = supR3HardenedVerifyFile(pszFilename, RTHCUINTPTR_MAX, true /*fMaybe3rdParty*/, pErrInfo); if (RT_FAILURE(rc)) { if (!RTErrInfoIsSet(pErrInfo)) diff -Nru virtualbox-4.1.12-dfsg/src/VBox/HostDrivers/Support/SUPLibInternal.h virtualbox-4.1.44-dfsg/src/VBox/HostDrivers/Support/SUPLibInternal.h --- virtualbox-4.1.12-dfsg/src/VBox/HostDrivers/Support/SUPLibInternal.h 2012-04-02 13:28:47.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/HostDrivers/Support/SUPLibInternal.h 2015-11-11 15:08:40.000000000 +0000 @@ -88,6 +88,10 @@ # define supR3HardenedFatalMsg supR3HardenedStaticFatalMsg # define supR3HardenedErrorV supR3HardenedStaticErrorV # define supR3HardenedError supR3HardenedStaticError +# define supR3HardenedOpenLog supR3HardenedStaticOpenLog +# define supR3HardenedLogV supR3HardenedStaticLogV +# define supR3HardenedLog supR3HardenedStaticLog +# define supR3HardenedLogFlush supR3HardenedStaticLogFlush # define supR3HardenedVerifyAll supR3HardenedStaticVerifyAll # define supR3HardenedVerifyFixedDir supR3HardenedStaticVerifyFixedDir # define supR3HardenedVerifyFixedFile supR3HardenedStaticVerifyFixedFile @@ -99,6 +103,52 @@ #endif /* IN_SUP_HARDENED_R3 */ +/** @name CRT function mappings (not using CRT on Windows). + * @{ + */ +#if defined(IN_SUP_HARDENED_R3) && defined(RT_OS_WINDOWS) +# define SUP_HARDENED_NEED_CRT_FUNCTIONS +DECLHIDDEN(int) suplibHardenedMemComp(void const *pvDst, const void *pvSrc, size_t cbToComp); +DECLHIDDEN(void *) suplibHardenedMemCopy(void *pvDst, const void *pvSrc, size_t cbToCopy); +DECLHIDDEN(void *) suplibHardenedMemSet(void *pvDst, int ch, size_t cbToSet); +DECLHIDDEN(char *) suplibHardenedStrCopy(char *pszDst, const char *pszSrc); +DECLHIDDEN(size_t) suplibHardenedStrLen(const char *psz); +DECLHIDDEN(char *) suplibHardenedStrCat(char *pszDst, const char *pszSrc); +DECLHIDDEN(int) suplibHardenedStrCmp(const char *psz1, const char *psz2); +DECLHIDDEN(int) suplibHardenedStrNCmp(const char *psz1, const char *psz2, size_t cchMax); +#else +# undef SUP_HARDENED_NEED_CRT_FUNCTIONS +# define suplibHardenedMemComp memcmp +# define suplibHardenedMemCopy memcpy +# define suplibHardenedMemSet memset +# define suplibHardenedStrCopy strcpy +# define suplibHardenedStrLen strlen +# define suplibHardenedStrCat strcat +# define suplibHardenedStrCmp strcmp +# define suplibHardenedStrNCmp strncmp +#endif +DECLNORETURN(void) suplibHardenedExit(RTEXITCODE rcExit); +DECLHIDDEN(void) suplibHardenedPrintF(const char *pszFormat, ...); +DECLHIDDEN(void) suplibHardenedPrintFV(const char *pszFormat, va_list va); + +/** @} */ + +/** Debug output macro. */ +#ifdef IN_SUP_HARDENED_R3 +# if defined(DEBUG_bird) && defined(RT_OS_WINDOWS) +# define SUP_DPRINTF(a) do { supR3HardenedStaticLog a; suplibHardenedPrintF a; } while (0) +# else +# define SUP_DPRINTF(a) do { supR3HardenedStaticLog a; } while (0) +# endif +#else +# if defined(DEBUG_bird) && defined(RT_OS_WINDOWS) +# define SUP_DPRINTF(a) RTLogPrintf a +# else +# define SUP_DPRINTF(a) do { } while (0) +# endif +#endif + + /******************************************************************************* * Structures and Typedefs * *******************************************************************************/ @@ -110,9 +160,12 @@ kSupIFT_Invalid = 0, kSupIFT_Exe, kSupIFT_Dll, + kSupIFT_Rc, kSupIFT_Sys, kSupIFT_Script, kSupIFT_Data, + kSupIFT_TestExe, + kSupIFT_TestDll, kSupIFT_End } SUPINSTFILETYPE; @@ -128,6 +181,7 @@ kSupID_AppPrivArch, kSupID_AppPrivArchComp, kSupID_AppPrivNoArch, + kSupID_Testcase, kSupID_End } SUPINSTDIR; @@ -157,6 +211,10 @@ intptr_t hFile; /** Whether the file has been validated. */ bool fValidated; +#ifdef RT_OS_WINDOWS + /** Whether we've checked the signature of the file. */ + bool fCheckedSignature; +#endif } SUPVERIFIEDFILE; typedef SUPVERIFIEDFILE *PSUPVERIFIEDFILE; typedef SUPVERIFIEDFILE const *PCSUPVERIFIEDFILE; @@ -189,6 +247,9 @@ #else int hDevice; #endif + /** Indicates whether we have unrestricted (true) or restricted access to the + * support device. */ + bool fUnrestricted; #if defined(RT_OS_DARWIN) /** The connection to the VBoxSupDrv service. */ uintptr_t uConnection; @@ -248,6 +309,25 @@ /** Pointer to supR3PreInit. */ typedef FNSUPR3PREINIT *PFNSUPR3PREINIT; +/** The current SUPR3HardenedMain state / location. */ +typedef enum SUPR3HARDENEDMAINSTATE +{ + SUPR3HARDENEDMAINSTATE_NOT_YET_CALLED = 0, + SUPR3HARDENEDMAINSTATE_WIN_EARLY_INIT_CALLED, + SUPR3HARDENEDMAINSTATE_WIN_EARLY_IMPORTS_RESOLVED, + SUPR3HARDENEDMAINSTATE_WIN_EARLY_DEVICE_OPENED, + SUPR3HARDENEDMAINSTATE_WIN_EP_CALLED, + SUPR3HARDENEDMAINSTATE_WIN_IMPORTS_RESOLVED, + SUPR3HARDENEDMAINSTATE_WIN_VERSION_INITIALIZED, + SUPR3HARDENEDMAINSTATE_WIN_VERIFY_TRUST_READY, + SUPR3HARDENEDMAINSTATE_HARDENED_MAIN_CALLED, + SUPR3HARDENEDMAINSTATE_INIT_RUNTIME, + SUPR3HARDENEDMAINSTATE_GET_TRUSTED_MAIN, + SUPR3HARDENEDMAINSTATE_CALLED_TRUSTED_MAIN, + SUPR3HARDENEDMAINSTATE_END, + SUPR3HARDENEDMAINSTATE_32BIT_HACK = 0x7fffffff +} SUPR3HARDENEDMAINSTATE; + /******************************************************************************* * Global Variables * @@ -255,6 +335,10 @@ extern DECLHIDDEN(uint32_t) g_u32Cookie; extern DECLHIDDEN(uint32_t) g_u32SessionCookie; extern DECLHIDDEN(SUPLIBDATA) g_supLibData; +extern DECLHIDDEN(SUPR3HARDENEDMAINSTATE) g_enmSupR3HardenedMainState; +#ifdef RT_OS_WINDOWS +extern DECLHIDDEN(bool) g_fSupEarlyProcessInit; +#endif /******************************************************************************* @@ -263,8 +347,10 @@ RT_C_DECLS_BEGIN int suplibOsInstall(void); int suplibOsUninstall(void); -int suplibOsInit(PSUPLIBDATA pThis, bool fPreInited); +int suplibOsInit(PSUPLIBDATA pThis, bool fPreInited, bool fUnrestricted, SUPINITOP *penmWhat, PRTERRINFO pErrInfo); int suplibOsTerm(PSUPLIBDATA pThis); +int suplibOsHardenedVerifyInit(void); +int suplibOsHardenedVerifyTerm(void); int suplibOsIOCtl(PSUPLIBDATA pThis, uintptr_t uFunction, void *pvReq, size_t cbReq); int suplibOsIOCtlFast(PSUPLIBDATA pThis, uintptr_t uFunction, uintptr_t idCpu); int suplibOsPageAlloc(PSUPLIBDATA pThis, size_t cPages, void **ppvPages); @@ -327,14 +413,68 @@ * Display an error which may or may not be fatal. */ DECLHIDDEN(int) supR3HardenedError(int rc, bool fFatal, const char *pszFormat, ...); -DECLHIDDEN(int) supR3HardenedVerifyAll(bool fFatal, bool fLeaveFilesOpen, const char *pszProgName); + +/** + * Open any startup log file specified in the argument. + */ +DECLHIDDEN(void) supR3HardenedOpenLog(int *pcArgs, char **papszArgs); + +/** + * Write to the startup log file. + */ +DECLHIDDEN(void) supR3HardenedLogV(const char *pszFormat, va_list va); + +/** + * Write to the startup log file. + */ +DECLHIDDEN(void) supR3HardenedLog(const char *pszFormat, ...); + +/** + * Flushes the log file. + */ +DECLHIDDEN(void) supR3HardenedLogFlush(void); + + +DECLHIDDEN(int) supR3HardenedVerifyAll(bool fFatal, const char *pszProgName); DECLHIDDEN(int) supR3HardenedVerifyFixedDir(SUPINSTDIR enmDir, bool fFatal); DECLHIDDEN(int) supR3HardenedVerifyFixedFile(const char *pszFilename, bool fFatal); DECLHIDDEN(int) supR3HardenedVerifyDir(const char *pszDirPath, bool fRecursive, bool fCheckFiles, PRTERRINFO pErrInfo); -DECLHIDDEN(int) supR3HardenedVerifyFile(const char *pszFilename, RTHCUINTPTR hNativeFile, PRTERRINFO pErrInfo); +DECLHIDDEN(int) supR3HardenedVerifyFile(const char *pszFilename, RTHCUINTPTR hNativeFile, bool fMaybe3rdParty, + PRTERRINFO pErrInfo); DECLHIDDEN(void) supR3HardenedGetPreInitData(PSUPPREINITDATA pPreInitData); DECLHIDDEN(int) supR3HardenedRecvPreInitData(PCSUPPREINITDATA pPreInitData); +#ifdef RT_OS_WINDOWS +DECLHIDDEN(void) supR3HardenedWinInit(uint32_t fFlags, bool fAvastKludge); +DECLHIDDEN(void) supR3HardenedWinInitVersion(void); +DECLHIDDEN(void) supR3HardenedWinInitImports(void); +# ifdef ___iprt_nt_nt_h___ +DECLHIDDEN(void) supR3HardenedWinGetVeryEarlyImports(uintptr_t uNtDllAddr, + PFNNTWAITFORSINGLEOBJECT *ppfnNtWaitForSingleObject, + PFNNTSETEVENT *ppfnNtSetEvent); +# endif +DECLHIDDEN(void) supR3HardenedWinInitImportsEarly(uintptr_t uNtDllAddr); +DECLHIDDEN(void) supR3HardenedWinInitSyscalls(bool fReportErrors); +DECLHIDDEN(PFNRT) supR3HardenedWinGetRealDllSymbol(const char *pszDll, const char *pszProcedure); +DECLHIDDEN(void) supR3HardenedWinEnableThreadCreation(void); +DECLHIDDEN(void) supR3HardenedWinResolveVerifyTrustApiAndHookThreadCreation(const char *pszProgName); +DECLHIDDEN(void) supR3HardenedWinFlushLoaderCache(); +DECLHIDDEN(bool) supR3HardenedWinIsReSpawnNeeded(int iWhich, int cArgs, char **papszArgs); +DECLHIDDEN(int) supR3HardenedWinReSpawn(int iWhich); +# ifdef _WINDEF_ +DECLHIDDEN(void) supR3HardenedWinCreateParentWatcherThread(HMODULE hVBoxRT); +# endif +DECLHIDDEN(void *) supR3HardenedWinLoadLibrary(const char *pszName, bool fSystem32Only); +extern RTUTF16 g_wszSupLibHardenedExePath[1024]; +# ifdef RTPATH_MAX +extern char g_szSupLibHardenedExePath[RTPATH_MAX]; +# endif +DECLHIDDEN(void) supR3HardenedWinCompactHeaps(void); +DECLHIDDEN(void) supR3HardenedMainOpenDevice(void); +DECLHIDDEN(char *) supR3HardenedWinReadErrorInfoDevice(char *pszErrorInfo, size_t cbErrorInfo, const char *pszPrefix); +DECLHIDDEN(void) supR3HardenedWinReportErrorToParent(const char *pszWhere, SUPINITOP enmWhat, int rc, + const char *pszFormat, va_list va); +#endif SUPR3DECL(int) supR3PageLock(void *pvStart, size_t cPages, PSUPPAGE paPages); SUPR3DECL(int) supR3PageUnlock(void *pvStart); diff -Nru virtualbox-4.1.12-dfsg/src/VBox/HostDrivers/Support/SUPR3HardenedMain.cpp virtualbox-4.1.44-dfsg/src/VBox/HostDrivers/Support/SUPR3HardenedMain.cpp --- virtualbox-4.1.12-dfsg/src/VBox/HostDrivers/Support/SUPR3HardenedMain.cpp 2012-04-02 13:28:47.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/HostDrivers/Support/SUPR3HardenedMain.cpp 2015-11-11 15:08:40.000000000 +0000 @@ -4,7 +4,7 @@ */ /* - * Copyright (C) 2006-2010 Oracle Corporation + * Copyright (C) 2006-2014 Oracle Corporation * * This file is part of VirtualBox Open Source Edition (OSE), as * available from http://www.virtualbox.org. This file is free software; @@ -34,10 +34,10 @@ # include # include # include +# include #elif RT_OS_WINDOWS -# include -# include +# include #else /* UNIXes */ # include /* stdint fun on darwin. */ @@ -50,7 +50,6 @@ # include # include # include -# include # include # if defined(RT_OS_LINUX) # undef USE_LIB_PCAP /* don't depend on libcap as we had to depend on either @@ -78,6 +77,10 @@ #include #include +#ifdef RT_OS_WINDOWS +# include +#endif +#include #include #include @@ -113,30 +116,60 @@ typedef DECLCALLBACK(int) FNRTR3INITEX(uint32_t iVersion, const char *pszProgramPath, bool fInitSUPLib); typedef FNRTR3INITEX *PFNRTR3INITEX; +/** @see RTLogRelPrintf */ +typedef DECLCALLBACK(void) FNRTLOGRELPRINTF(const char *pszFormat, ...); +typedef FNRTLOGRELPRINTF *PFNRTLOGRELPRINTF; + /******************************************************************************* * Global Variables * *******************************************************************************/ /** The pre-init data we pass on to SUPR3 (residing in VBoxRT). */ -static SUPPREINITDATA g_SupPreInitData; +static SUPPREINITDATA g_SupPreInitData; /** The program executable path. */ -static char g_szSupLibHardenedExePath[RTPATH_MAX]; +#ifndef RT_OS_WINDOWS +static +#endif +char g_szSupLibHardenedExePath[RTPATH_MAX]; /** The program directory path. */ -static char g_szSupLibHardenedDirPath[RTPATH_MAX]; +static char g_szSupLibHardenedDirPath[RTPATH_MAX]; /** The program name. */ -static const char *g_pszSupLibHardenedProgName; +static const char *g_pszSupLibHardenedProgName; +/** The flags passed to SUPR3HardenedMain. */ +static uint32_t g_fSupHardenedMain; #ifdef SUP_HARDENED_SUID /** The real UID at startup. */ -static uid_t g_uid; +static uid_t g_uid; /** The real GID at startup. */ -static gid_t g_gid; +static gid_t g_gid; # ifdef RT_OS_LINUX -static uint32_t g_uCaps; +static uint32_t g_uCaps; # endif #endif +/** The startup log file. */ +#ifdef RT_OS_WINDOWS +static HANDLE g_hStartupLog = NULL; +#else +static int g_hStartupLog = -1; +#endif +/** The number of bytes we've written to the startup log. */ +static uint32_t volatile g_cbStartupLog = 0; + +/** The current SUPR3HardenedMain state / location. */ +SUPR3HARDENEDMAINSTATE g_enmSupR3HardenedMainState = SUPR3HARDENEDMAINSTATE_NOT_YET_CALLED; +AssertCompileSize(g_enmSupR3HardenedMainState, sizeof(uint32_t)); + +#ifdef RT_OS_WINDOWS +/** Pointer to VBoxRT's RTLogRelPrintf function so we can write errors to the + * release log at runtime. */ +static PFNRTLOGRELPRINTF g_pfnRTLogRelPrintf = NULL; +/** Log volume name (for attempting volume flush). */ +static RTUTF16 g_wszStartupLogVol[16]; +#endif + /******************************************************************************* * Internal Functions * @@ -148,6 +181,517 @@ /** + * Safely copy one or more strings into the given buffer. + * + * @returns VINF_SUCCESS or VERR_BUFFER_OVERFLOW. + * @param pszDst The destionation buffer. + * @param cbDst The size of the destination buffer. + * @param ... One or more zero terminated strings, ending with + * a NULL. + */ +static int suplibHardenedStrCopyEx(char *pszDst, size_t cbDst, ...) +{ + int rc = VINF_SUCCESS; + + if (cbDst == 0) + return VERR_BUFFER_OVERFLOW; + + va_list va; + va_start(va, cbDst); + for (;;) + { + const char *pszSrc = va_arg(va, const char *); + if (!pszSrc) + break; + + size_t cchSrc = suplibHardenedStrLen(pszSrc); + if (cchSrc < cbDst) + { + suplibHardenedMemCopy(pszDst, pszSrc, cchSrc); + pszDst += cchSrc; + cbDst -= cchSrc; + } + else + { + rc = VERR_BUFFER_OVERFLOW; + if (cbDst > 1) + { + suplibHardenedMemCopy(pszDst, pszSrc, cbDst - 1); + pszDst += cbDst - 1; + cbDst = 1; + } + } + *pszDst = '\0'; + } + va_end(va); + + return rc; +} + + +/** + * Exit current process in the quickest possible fashion. + * + * @param rcExit The exit code. + */ +DECLNORETURN(void) suplibHardenedExit(RTEXITCODE rcExit) +{ + for (;;) + { +#ifdef RT_OS_WINDOWS + if (g_enmSupR3HardenedMainState >= SUPR3HARDENEDMAINSTATE_WIN_IMPORTS_RESOLVED) + ExitProcess(rcExit); + if (RtlExitUserProcess != NULL) + RtlExitUserProcess(rcExit); + NtTerminateProcess(NtCurrentProcess(), rcExit); +#else + _Exit(rcExit); +#endif + } +} + + +/** + * Writes a substring to standard error. + * + * @param pch The start of the substring. + * @param cch The length of the substring. + */ +static void suplibHardenedPrintStrN(const char *pch, size_t cch) +{ +#ifdef RT_OS_WINDOWS + HANDLE hStdOut = NtCurrentPeb()->ProcessParameters->StandardOutput; + if (hStdOut != NULL) + { + if (g_enmSupR3HardenedMainState >= SUPR3HARDENEDMAINSTATE_WIN_IMPORTS_RESOLVED) + { + DWORD cbWritten; + WriteFile(hStdOut, pch, (DWORD)cch, &cbWritten, NULL); + } + /* Windows 7 and earlier uses fake handles, with the last two bits set ((hStdOut & 3) == 3). */ + else if (NtWriteFile != NULL && ((uintptr_t)hStdOut & 3) == 0) + { + IO_STATUS_BLOCK Ios = RTNT_IO_STATUS_BLOCK_INITIALIZER; + NtWriteFile(hStdOut, NULL /*Event*/, NULL /*ApcRoutine*/, NULL /*ApcContext*/, + &Ios, (PVOID)pch, (ULONG)cch, NULL /*ByteOffset*/, NULL /*Key*/); + } + } +#else + (void)write(2, pch, cch); +#endif +} + + +/** + * Writes a string to standard error. + * + * @param psz The string. + */ +static void suplibHardenedPrintStr(const char *psz) +{ + suplibHardenedPrintStrN(psz, suplibHardenedStrLen(psz)); +} + + +/** + * Writes a char to standard error. + * + * @param ch The character value to write. + */ +static void suplibHardenedPrintChr(char ch) +{ + suplibHardenedPrintStrN(&ch, 1); +} + + +/** + * Writes a decimal number to stdard error. + * + * @param uValue The value. + */ +static void suplibHardenedPrintDecimal(uint64_t uValue) +{ + char szBuf[64]; + char *pszEnd = &szBuf[sizeof(szBuf) - 1]; + char *psz = pszEnd; + + *psz-- = '\0'; + + do + { + *psz-- = '0' + (uValue % 10); + uValue /= 10; + } while (uValue > 0); + + psz++; + suplibHardenedPrintStrN(psz, pszEnd - psz); +} + + +/** + * Writes a hexadecimal or octal number to standard error. + * + * @param uValue The value. + * @param uBase The base (16 or 8). + * @param fFlags Format flags. + */ +static void suplibHardenedPrintHexOctal(uint64_t uValue, unsigned uBase, uint32_t fFlags) +{ + static char const s_achDigitsLower[17] = "0123456789abcdef"; + static char const s_achDigitsUpper[17] = "0123456789ABCDEF"; + const char *pchDigits = !(fFlags & RTSTR_F_CAPITAL) ? s_achDigitsLower : s_achDigitsUpper; + unsigned cShift = uBase == 16 ? 4 : 3; + unsigned fDigitMask = uBase == 16 ? 0xf : 7; + char szBuf[64]; + char *pszEnd = &szBuf[sizeof(szBuf) - 1]; + char *psz = pszEnd; + + *psz-- = '\0'; + + do + { + *psz-- = pchDigits[uValue & fDigitMask]; + uValue >>= cShift; + } while (uValue > 0); + + if ((fFlags & RTSTR_F_SPECIAL) && uBase == 16) + { + *psz-- = !(fFlags & RTSTR_F_CAPITAL) ? 'x' : 'X'; + *psz-- = '0'; + } + + psz++; + suplibHardenedPrintStrN(psz, pszEnd - psz); +} + + +/** + * Writes a wide character string to standard error. + * + * @param pwsz The string. + */ +static void suplibHardenedPrintWideStr(PCRTUTF16 pwsz) +{ + for (;;) + { + RTUTF16 wc = *pwsz++; + if (!wc) + return; + if ( (wc < 0x7f && wc >= 0x20) + || wc == '\n' + || wc == '\r') + suplibHardenedPrintChr((char)wc); + else + { + suplibHardenedPrintStrN(RT_STR_TUPLE("\\x")); + suplibHardenedPrintHexOctal(wc, 16, 0); + } + } +} + +#ifdef IPRT_NO_CRT + +/** Buffer structure used by suplibHardenedOutput. */ +struct SUPLIBHARDENEDOUTPUTBUF +{ + size_t off; + char szBuf[2048]; +}; + +/** Callback for RTStrFormatV, see FNRTSTROUTPUT. */ +static DECLCALLBACK(size_t) suplibHardenedOutput(void *pvArg, const char *pachChars, size_t cbChars) +{ + SUPLIBHARDENEDOUTPUTBUF *pBuf = (SUPLIBHARDENEDOUTPUTBUF *)pvArg; + size_t cbTodo = cbChars; + for (;;) + { + size_t cbSpace = sizeof(pBuf->szBuf) - pBuf->off - 1; + + /* Flush the buffer? */ + if ( cbSpace == 0 + || (cbTodo == 0 && pBuf->off)) + { + suplibHardenedPrintStrN(pBuf->szBuf, pBuf->off); +# ifdef RT_OS_WINDOWS + if (g_enmSupR3HardenedMainState >= SUPR3HARDENEDMAINSTATE_WIN_IMPORTS_RESOLVED) + OutputDebugString(pBuf->szBuf); +# endif + pBuf->off = 0; + cbSpace = sizeof(pBuf->szBuf) - 1; + } + + /* Copy the string into the buffer. */ + if (cbTodo == 1) + { + pBuf->szBuf[pBuf->off++] = *pachChars; + break; + } + if (cbSpace >= cbTodo) + { + memcpy(&pBuf->szBuf[pBuf->off], pachChars, cbTodo); + pBuf->off += cbTodo; + break; + } + memcpy(&pBuf->szBuf[pBuf->off], pachChars, cbSpace); + pBuf->off += cbSpace; + cbTodo -= cbSpace; + } + pBuf->szBuf[pBuf->off] = '\0'; + + return cbChars; +} + +#endif /* IPRT_NO_CRT */ + +/** + * Simple printf to standard error. + * + * @param pszFormat The format string. + * @param va Arguments to format. + */ +DECLHIDDEN(void) suplibHardenedPrintFV(const char *pszFormat, va_list va) +{ +#ifdef IPRT_NO_CRT + /* + * Use buffered output here to avoid character mixing on the windows + * console and to enable us to use OutputDebugString. + */ + SUPLIBHARDENEDOUTPUTBUF Buf; + Buf.off = 0; + Buf.szBuf[0] = '\0'; + RTStrFormatV(suplibHardenedOutput, &Buf, NULL, NULL, pszFormat, va); + +#else /* !IPRT_NO_CRT */ + /* + * Format loop. + */ + char ch; + const char *pszLast = pszFormat; + for (;;) + { + ch = *pszFormat; + if (!ch) + break; + pszFormat++; + + if (ch == '%') + { + /* + * Format argument. + */ + + /* Flush unwritten bits. */ + if (pszLast != pszFormat - 1) + suplibHardenedPrintStrN(pszLast, pszFormat - pszLast - 1); + pszLast = pszFormat; + ch = *pszFormat++; + + /* flags. */ + uint32_t fFlags = 0; + for (;;) + { + if (ch == '#') fFlags |= RTSTR_F_SPECIAL; + else if (ch == '-') fFlags |= RTSTR_F_LEFT; + else if (ch == '+') fFlags |= RTSTR_F_PLUS; + else if (ch == ' ') fFlags |= RTSTR_F_BLANK; + else if (ch == '0') fFlags |= RTSTR_F_ZEROPAD; + else if (ch == '\'') fFlags |= RTSTR_F_THOUSAND_SEP; + else break; + ch = *pszFormat++; + } + + /* Width and precision - ignored. */ + while (RT_C_IS_DIGIT(ch)) + ch = *pszFormat++; + if (ch == '*') + va_arg(va, int); + if (ch == '.') + { + do ch = *pszFormat++; + while (RT_C_IS_DIGIT(ch)); + if (ch == '*') + va_arg(va, int); + } + + /* Size. */ + char chArgSize = 0; + switch (ch) + { + case 'z': + case 'L': + case 'j': + case 't': + chArgSize = ch; + ch = *pszFormat++; + break; + + case 'l': + chArgSize = ch; + ch = *pszFormat++; + if (ch == 'l') + { + chArgSize = 'L'; + ch = *pszFormat++; + } + break; + + case 'h': + chArgSize = ch; + ch = *pszFormat++; + if (ch == 'h') + { + chArgSize = 'H'; + ch = *pszFormat++; + } + break; + } + + /* + * Do type specific formatting. + */ + switch (ch) + { + case 'c': + ch = (char)va_arg(va, int); + suplibHardenedPrintChr(ch); + break; + + case 's': + if (chArgSize == 'l') + { + PCRTUTF16 pwszStr = va_arg(va, PCRTUTF16 ); + if (RT_VALID_PTR(pwszStr)) + suplibHardenedPrintWideStr(pwszStr); + else + suplibHardenedPrintStr(""); + } + else + { + const char *pszStr = va_arg(va, const char *); + if (!RT_VALID_PTR(pszStr)) + pszStr = ""; + suplibHardenedPrintStr(pszStr); + } + break; + + case 'd': + case 'i': + { + int64_t iValue; + if (chArgSize == 'L' || chArgSize == 'j') + iValue = va_arg(va, int64_t); + else if (chArgSize == 'l') + iValue = va_arg(va, signed long); + else if (chArgSize == 'z' || chArgSize == 't') + iValue = va_arg(va, intptr_t); + else + iValue = va_arg(va, signed int); + if (iValue < 0) + { + suplibHardenedPrintChr('-'); + iValue = -iValue; + } + suplibHardenedPrintDecimal(iValue); + break; + } + + case 'p': + case 'x': + case 'X': + case 'u': + case 'o': + { + unsigned uBase = 10; + uint64_t uValue; + + switch (ch) + { + case 'p': + fFlags |= RTSTR_F_ZEROPAD; /* Note not standard behaviour (but I like it this way!) */ + uBase = 16; + break; + case 'X': + fFlags |= RTSTR_F_CAPITAL; + case 'x': + uBase = 16; + break; + case 'u': + uBase = 10; + break; + case 'o': + uBase = 8; + break; + } + + if (ch == 'p' || chArgSize == 'z' || chArgSize == 't') + uValue = va_arg(va, uintptr_t); + else if (chArgSize == 'L' || chArgSize == 'j') + uValue = va_arg(va, uint64_t); + else if (chArgSize == 'l') + uValue = va_arg(va, unsigned long); + else + uValue = va_arg(va, unsigned int); + + if (uBase == 10) + suplibHardenedPrintDecimal(uValue); + else + suplibHardenedPrintHexOctal(uValue, uBase, fFlags); + break; + } + + case 'R': + if (pszFormat[0] == 'r' && pszFormat[1] == 'c') + { + int iValue = va_arg(va, int); + if (iValue < 0) + { + suplibHardenedPrintChr('-'); + iValue = -iValue; + } + suplibHardenedPrintDecimal(iValue); + pszFormat += 2; + break; + } + /* fall thru */ + + /* + * Custom format. + */ + default: + suplibHardenedPrintStr("[bad format: "); + suplibHardenedPrintStrN(pszLast, pszFormat - pszLast); + suplibHardenedPrintChr(']'); + break; + } + + /* continue */ + pszLast = pszFormat; + } + } + + /* Flush the last bits of the string. */ + if (pszLast != pszFormat) + suplibHardenedPrintStrN(pszLast, pszFormat - pszLast); +#endif /* !IPRT_NO_CRT */ +} + + +/** + * Prints to standard error. + * + * @param pszFormat The format string. + * @param ... Arguments to format. + */ +DECLHIDDEN(void) suplibHardenedPrintF(const char *pszFormat, ...) +{ + va_list va; + va_start(va, pszFormat); + suplibHardenedPrintFV(pszFormat, va); + va_end(va); +} + + +/** * @copydoc RTPathStripFilename. */ static void suplibHardenedPathStripFilename(char *pszPath) @@ -227,11 +771,10 @@ { #if !defined(RT_OS_WINDOWS) && defined(RTPATH_APP_PRIVATE) const char *pszSrcPath = RTPATH_APP_PRIVATE; - size_t cchPathPrivateNoArch = strlen(pszSrcPath); + size_t cchPathPrivateNoArch = suplibHardenedStrLen(pszSrcPath); if (cchPathPrivateNoArch >= cchPath) - supR3HardenedFatal("supR3HardenedPathAppPrivateNoArch: Buffer overflow, %lu >= %lu\n", - (unsigned long)cchPathPrivateNoArch, (unsigned long)cchPath); - memcpy(pszPath, pszSrcPath, cchPathPrivateNoArch + 1); + supR3HardenedFatal("supR3HardenedPathAppPrivateNoArch: Buffer overflow, %zu >= %zu\n", cchPathPrivateNoArch, cchPath); + suplibHardenedMemCopy(pszPath, pszSrcPath, cchPathPrivateNoArch + 1); return VINF_SUCCESS; #else @@ -247,11 +790,10 @@ { #if !defined(RT_OS_WINDOWS) && defined(RTPATH_APP_PRIVATE_ARCH) const char *pszSrcPath = RTPATH_APP_PRIVATE_ARCH; - size_t cchPathPrivateArch = strlen(pszSrcPath); + size_t cchPathPrivateArch = suplibHardenedStrLen(pszSrcPath); if (cchPathPrivateArch >= cchPath) - supR3HardenedFatal("supR3HardenedPathAppPrivateArch: Buffer overflow, %lu >= %lu\n", - (unsigned long)cchPathPrivateArch, (unsigned long)cchPath); - memcpy(pszPath, pszSrcPath, cchPathPrivateArch + 1); + supR3HardenedFatal("supR3HardenedPathAppPrivateArch: Buffer overflow, %zu >= %zu\n", cchPathPrivateArch, cchPath); + suplibHardenedMemCopy(pszPath, pszSrcPath, cchPathPrivateArch + 1); return VINF_SUCCESS; #else @@ -267,11 +809,10 @@ { #if !defined(RT_OS_WINDOWS) && defined(RTPATH_SHARED_LIBS) const char *pszSrcPath = RTPATH_SHARED_LIBS; - size_t cchPathSharedLibs = strlen(pszSrcPath); + size_t cchPathSharedLibs = suplibHardenedStrLen(pszSrcPath); if (cchPathSharedLibs >= cchPath) - supR3HardenedFatal("supR3HardenedPathSharedLibs: Buffer overflow, %lu >= %lu\n", - (unsigned long)cchPathSharedLibs, (unsigned long)cchPath); - memcpy(pszPath, pszSrcPath, cchPathSharedLibs + 1); + supR3HardenedFatal("supR3HardenedPathSharedLibs: Buffer overflow, %zu >= %zu\n", cchPathSharedLibs, cchPath); + suplibHardenedMemCopy(pszPath, pszSrcPath, cchPathSharedLibs + 1); return VINF_SUCCESS; #else @@ -287,11 +828,10 @@ { #if !defined(RT_OS_WINDOWS) && defined(RTPATH_APP_DOCS) const char *pszSrcPath = RTPATH_APP_DOCS; - size_t cchPathAppDocs = strlen(pszSrcPath); + size_t cchPathAppDocs = suplibHardenedStrLen(pszSrcPath); if (cchPathAppDocs >= cchPath) - supR3HardenedFatal("supR3HardenedPathAppDocs: Buffer overflow, %lu >= %lu\n", - (unsigned long)cchPathAppDocs, (unsigned long)cchPath); - memcpy(pszPath, pszSrcPath, cchPathAppDocs + 1); + supR3HardenedFatal("supR3HardenedPathAppDocs: Buffer overflow, %zu >= %zu\n", cchPathAppDocs, cchPath); + suplibHardenedMemCopy(pszPath, pszSrcPath, cchPathAppDocs + 1); return VINF_SUCCESS; #else @@ -338,7 +878,7 @@ if (sysctl(aiName, RT_ELEMENTS(aiName), g_szSupLibHardenedExePath, &cbPath, NULL, 0) < 0) supR3HardenedFatal("supR3HardenedExecDir: sysctl failed\n"); g_szSupLibHardenedExePath[sizeof(g_szSupLibHardenedExePath) - 1] = '\0'; - int cchLink = strlen(g_szSupLibHardenedExePath); /* paranoid? can't we use cbPath? */ + int cchLink = suplibHardenedStrLen(g_szSupLibHardenedExePath); /* paranoid? can't we use cbPath? */ # endif if (cchLink < 0 || cchLink == sizeof(g_szSupLibHardenedExePath) - 1) @@ -353,15 +893,16 @@ const char *pszImageName = _dyld_get_image_name(0); if (!pszImageName) supR3HardenedFatal("supR3HardenedExecDir: _dyld_get_image_name(0) failed\n"); - size_t cchImageName = strlen(pszImageName); + size_t cchImageName = suplibHardenedStrLen(pszImageName); if (!cchImageName || cchImageName >= sizeof(g_szSupLibHardenedExePath)) supR3HardenedFatal("supR3HardenedExecDir: _dyld_get_image_name(0) failed, cchImageName=%d\n", cchImageName); - memcpy(g_szSupLibHardenedExePath, pszImageName, cchImageName + 1); + suplibHardenedMemCopy(g_szSupLibHardenedExePath, pszImageName, cchImageName + 1); #elif defined(RT_OS_WINDOWS) - HMODULE hExe = GetModuleHandle(NULL); - if (!GetModuleFileName(hExe, &g_szSupLibHardenedExePath[0], sizeof(g_szSupLibHardenedExePath))) - supR3HardenedFatal("supR3HardenedExecDir: GetModuleFileName failed, rc=%d\n", GetLastError()); + char *pszDst = g_szSupLibHardenedExePath; + int rc = RTUtf16ToUtf8Ex(g_wszSupLibHardenedExePath, RTSTR_MAX, &pszDst, sizeof(g_szSupLibHardenedExePath), NULL); + if (RT_FAILURE(rc)) + supR3HardenedFatal("supR3HardenedExecDir: RTUtf16ToUtf8Ex failed, rc=%Rrc\n", rc); #else # error needs porting. #endif @@ -369,7 +910,7 @@ /* * Strip off the filename part (RTPathStripFilename()). */ - strcpy(g_szSupLibHardenedDirPath, g_szSupLibHardenedExePath); + suplibHardenedStrCopy(g_szSupLibHardenedDirPath, g_szSupLibHardenedExePath); suplibHardenedPathStripFilename(g_szSupLibHardenedDirPath); } @@ -407,10 +948,10 @@ /* * Calc the length and check if there is space before copying. */ - size_t cch = strlen(g_szSupLibHardenedDirPath) + 1; + size_t cch = suplibHardenedStrLen(g_szSupLibHardenedDirPath) + 1; if (cch <= cchPath) { - memcpy(pszPath, g_szSupLibHardenedDirPath, cch + 1); + suplibHardenedMemCopy(pszPath, g_szSupLibHardenedDirPath, cch + 1); return VINF_SUCCESS; } @@ -419,35 +960,243 @@ } +#ifdef RT_OS_WINDOWS +extern "C" uint32_t g_uNtVerCombined; +#endif + +DECLHIDDEN(void) supR3HardenedOpenLog(int *pcArgs, char **papszArgs) +{ + static const char s_szLogOption[] = "--sup-hardening-log="; + + /* + * Scan the argument vector. + */ + int cArgs = *pcArgs; + for (int iArg = 1; iArg < cArgs; iArg++) + if (strncmp(papszArgs[iArg], s_szLogOption, sizeof(s_szLogOption) - 1) == 0) + { + const char *pszLogFile = &papszArgs[iArg][sizeof(s_szLogOption) - 1]; + + /* + * Drop the argument from the vector (has trailing NULL entry). + */ + memmove(&papszArgs[iArg], &papszArgs[iArg + 1], (cArgs - iArg) * sizeof(papszArgs[0])); + *pcArgs -= 1; + cArgs -= 1; + + /* + * Open the log file, unless we've already opened one. + * First argument takes precedence + */ +#ifdef RT_OS_WINDOWS + if (g_hStartupLog == NULL) + { + int rc = RTNtPathOpen(pszLogFile, + GENERIC_WRITE | SYNCHRONIZE, + FILE_ATTRIBUTE_NORMAL, + FILE_SHARE_READ | FILE_SHARE_WRITE, + FILE_OPEN_IF, + FILE_NON_DIRECTORY_FILE | FILE_SYNCHRONOUS_IO_NONALERT, + OBJ_CASE_INSENSITIVE, + &g_hStartupLog, + NULL); + if (RT_SUCCESS(rc)) + { + SUP_DPRINTF(("Log file opened: " VBOX_VERSION_STRING "r%u g_hStartupLog=%p g_uNtVerCombined=%#x\n", + VBOX_SVN_REV, g_hStartupLog, g_uNtVerCombined)); + + /* + * If the path contains a drive volume, save it so we can + * use it to flush the volume containing the log file. + */ + if (RT_C_IS_ALPHA(pszLogFile[0]) && pszLogFile[1] == ':') + { + RTUtf16CopyAscii(g_wszStartupLogVol, RT_ELEMENTS(g_wszStartupLogVol), "\\??\\"); + g_wszStartupLogVol[sizeof("\\??\\") - 1] = RT_C_TO_UPPER(pszLogFile[0]); + g_wszStartupLogVol[sizeof("\\??\\") + 0] = ':'; + g_wszStartupLogVol[sizeof("\\??\\") + 1] = '\0'; + } + } + else + g_hStartupLog = NULL; + } +#else + //g_hStartupLog = open() +#endif + } +} + + +DECLHIDDEN(void) supR3HardenedLogV(const char *pszFormat, va_list va) +{ +#ifdef RT_OS_WINDOWS + if ( g_hStartupLog != NULL + && g_cbStartupLog < 16*_1M) + { + char szBuf[5120]; + PCLIENT_ID pSelfId = &((PTEB)NtCurrentTeb())->ClientId; + size_t cchPrefix = RTStrPrintf(szBuf, sizeof(szBuf), "%x.%x: ", pSelfId->UniqueProcess, pSelfId->UniqueThread); + size_t cch = RTStrPrintfV(&szBuf[cchPrefix], sizeof(szBuf) - cchPrefix, pszFormat, va) + cchPrefix; + + if ((size_t)cch >= sizeof(szBuf)) + cch = sizeof(szBuf) - 1; + + if (!cch || szBuf[cch - 1] != '\n') + szBuf[cch++] = '\n'; + + ASMAtomicAddU32(&g_cbStartupLog, (uint32_t)cch); + + IO_STATUS_BLOCK Ios = RTNT_IO_STATUS_BLOCK_INITIALIZER; + LARGE_INTEGER Offset; + Offset.QuadPart = -1; /* Write to end of file. */ + NtWriteFile(g_hStartupLog, NULL /*Event*/, NULL /*ApcRoutine*/, NULL /*ApcContext*/, + &Ios, szBuf, (ULONG)cch, &Offset, NULL /*Key*/); + } +#else + /* later */ +#endif +} + + +DECLHIDDEN(void) supR3HardenedLog(const char *pszFormat, ...) +{ + va_list va; + va_start(va, pszFormat); + supR3HardenedLogV(pszFormat, va); + va_end(va); +} + + +DECLHIDDEN(void) supR3HardenedLogFlush(void) +{ +#ifdef RT_OS_WINDOWS + if ( g_hStartupLog != NULL + && g_cbStartupLog < 16*_1M) + { + IO_STATUS_BLOCK Ios = RTNT_IO_STATUS_BLOCK_INITIALIZER; + NTSTATUS rcNt = NtFlushBuffersFile(g_hStartupLog, &Ios); + + /* + * Try flush the volume containing the log file too. + */ + if (g_wszStartupLogVol[0]) + { + HANDLE hLogVol = RTNT_INVALID_HANDLE_VALUE; + UNICODE_STRING NtName; + NtName.Buffer = g_wszStartupLogVol; + NtName.Length = (USHORT)(RTUtf16Len(g_wszStartupLogVol) * sizeof(RTUTF16)); + NtName.MaximumLength = NtName.Length + 1; + OBJECT_ATTRIBUTES ObjAttr; + InitializeObjectAttributes(&ObjAttr, &NtName, OBJ_CASE_INSENSITIVE, NULL /*hRootDir*/, NULL /*pSecDesc*/); + RTNT_IO_STATUS_BLOCK_REINIT(&Ios); + rcNt = NtCreateFile(&hLogVol, + GENERIC_WRITE | GENERIC_READ | SYNCHRONIZE | FILE_READ_ATTRIBUTES, + &ObjAttr, + &Ios, + NULL /* Allocation Size*/, + 0 /*FileAttributes*/, + FILE_SHARE_READ | FILE_SHARE_WRITE | FILE_SHARE_DELETE, + FILE_OPEN, + FILE_NON_DIRECTORY_FILE | FILE_SYNCHRONOUS_IO_NONALERT, + NULL /*EaBuffer*/, + 0 /*EaLength*/); + if (NT_SUCCESS(rcNt)) + rcNt = Ios.Status; + if (NT_SUCCESS(rcNt)) + { + RTNT_IO_STATUS_BLOCK_REINIT(&Ios); + rcNt = NtFlushBuffersFile(hLogVol, &Ios); + NtClose(hLogVol); + } + else + { + /* This may have sideeffects similar to what we want... */ + hLogVol = RTNT_INVALID_HANDLE_VALUE; + RTNT_IO_STATUS_BLOCK_REINIT(&Ios); + rcNt = NtCreateFile(&hLogVol, + GENERIC_READ | SYNCHRONIZE | FILE_READ_ATTRIBUTES, + &ObjAttr, + &Ios, + NULL /* Allocation Size*/, + 0 /*FileAttributes*/, + FILE_SHARE_READ | FILE_SHARE_WRITE | FILE_SHARE_DELETE, + FILE_OPEN, + FILE_NON_DIRECTORY_FILE | FILE_SYNCHRONOUS_IO_NONALERT, + NULL /*EaBuffer*/, + 0 /*EaLength*/); + if (NT_SUCCESS(rcNt) && NT_SUCCESS(Ios.Status)) + NtClose(hLogVol); + } + } + } +#else + /* later */ +#endif +} + + +/** + * Prints the message prefix. + */ +static void suplibHardenedPrintPrefix(void) +{ + if (g_pszSupLibHardenedProgName) + suplibHardenedPrintStr(g_pszSupLibHardenedProgName); + suplibHardenedPrintStr(": "); +} + + DECLHIDDEN(void) supR3HardenedFatalMsgV(const char *pszWhere, SUPINITOP enmWhat, int rc, const char *pszMsgFmt, va_list va) { /* - * To the console first, like supR3HardenedFatalV. + * First to the log. */ - fprintf(stderr, "%s: Error %d in %s!\n", g_pszSupLibHardenedProgName, rc, pszWhere); - fprintf(stderr, "%s: ", g_pszSupLibHardenedProgName); + supR3HardenedLog("Error %d in %s! (enmWhat=%d)\n", rc, pszWhere, enmWhat); va_list vaCopy; va_copy(vaCopy, va); - vfprintf(stderr, pszMsgFmt, vaCopy); + supR3HardenedLogV(pszMsgFmt, vaCopy); va_end(vaCopy); - fprintf(stderr, "\n"); + +#ifdef RT_OS_WINDOWS + /* + * The release log. + */ + if (g_pfnRTLogRelPrintf) + { + va_copy(vaCopy, va); + g_pfnRTLogRelPrintf("supR3HardenedFatalMsgV: %s enmWhat=%d rc=%Rrc (%#x)\n", pszWhere, enmWhat, rc); + g_pfnRTLogRelPrintf("supR3HardenedFatalMsgV: %N\n", pszMsgFmt, &vaCopy); + va_end(vaCopy); + } +#endif + + /* + * Then to the console. + */ + suplibHardenedPrintPrefix(); + suplibHardenedPrintF("Error %d in %s!\n", rc, pszWhere); + + suplibHardenedPrintPrefix(); + va_copy(vaCopy, va); + suplibHardenedPrintFV(pszMsgFmt, vaCopy); + va_end(vaCopy); + suplibHardenedPrintChr('\n'); switch (enmWhat) { case kSupInitOp_Driver: - fprintf(stderr, - "\n" - "%s: Tip! Make sure the kernel module is loaded. It may also help to reinstall VirtualBox.\n", - g_pszSupLibHardenedProgName); + suplibHardenedPrintChr('\n'); + suplibHardenedPrintPrefix(); + suplibHardenedPrintStr("Tip! Make sure the kernel module is loaded. It may also help to reinstall VirtualBox.\n"); break; + case kSupInitOp_Misc: case kSupInitOp_IPRT: case kSupInitOp_Integrity: case kSupInitOp_RootCheck: - fprintf(stderr, - "\n" - "%s: Tip! It may help to reinstall VirtualBox.\n", - g_pszSupLibHardenedProgName); + suplibHardenedPrintChr('\n'); + suplibHardenedPrintPrefix(); + suplibHardenedPrintStr("Tip! It may help to reinstall VirtualBox.\n"); break; default: @@ -455,39 +1204,56 @@ break; } -#ifdef SUP_HARDENED_SUID /* - * Drop any root privileges we might be holding, this won't return - * if it fails but end up calling supR3HardenedFatal[V]. + * Finally, TrustedError if appropriate. */ - supR3HardenedMainDropPrivileges(); -#endif /* SUP_HARDENED_SUID */ + if (g_enmSupR3HardenedMainState >= SUPR3HARDENEDMAINSTATE_WIN_IMPORTS_RESOLVED) + { +#ifdef SUP_HARDENED_SUID + /* + * Drop any root privileges we might be holding, this won't return + * if it fails but end up calling supR3HardenedFatal[V]. + */ + supR3HardenedMainDropPrivileges(); +#endif - /* - * Now try resolve and call the TrustedError entry point if we can - * find it. We'll fork before we attempt this because that way the - * session management in main will see us exiting immediately (if - * it's involved with us). - */ + /* + * Now try resolve and call the TrustedError entry point if we can + * find it. We'll fork before we attempt this because that way the + * session management in main will see us exiting immediately (if + * it's involved with us). + */ #if !defined(RT_OS_WINDOWS) && !defined(RT_OS_OS2) - int pid = fork(); - if (pid <= 0) + int pid = fork(); + if (pid <= 0) #endif - { - PFNSUPTRUSTEDERROR pfnTrustedError = supR3HardenedMainGetTrustedError(g_pszSupLibHardenedProgName); - if (pfnTrustedError) - pfnTrustedError(pszWhere, enmWhat, rc, pszMsgFmt, va); + { + static volatile bool s_fRecursive = false; /* Loader hooks may cause recursion. */ + if (!s_fRecursive) + { + s_fRecursive = true; + + PFNSUPTRUSTEDERROR pfnTrustedError = supR3HardenedMainGetTrustedError(g_pszSupLibHardenedProgName); + if (pfnTrustedError) + pfnTrustedError(pszWhere, enmWhat, rc, pszMsgFmt, va); + + s_fRecursive = false; + } + } } +#if defined(RT_OS_WINDOWS) + /* + * Report the error to the parent if this happens during early VM init. + */ + else if ( g_enmSupR3HardenedMainState < SUPR3HARDENEDMAINSTATE_WIN_IMPORTS_RESOLVED + && g_enmSupR3HardenedMainState != SUPR3HARDENEDMAINSTATE_NOT_YET_CALLED) + supR3HardenedWinReportErrorToParent(pszWhere, enmWhat, rc, pszMsgFmt, va); +#endif /* * Quit */ - for (;;) -#ifdef _MSC_VER - exit(1); -#else - _Exit(1); -#endif + suplibHardenedExit(RTEXITCODE_FAILURE); } @@ -502,14 +1268,36 @@ DECLHIDDEN(void) supR3HardenedFatalV(const char *pszFormat, va_list va) { - fprintf(stderr, "%s: ", g_pszSupLibHardenedProgName); - vfprintf(stderr, pszFormat, va); - for (;;) -#ifdef _MSC_VER - exit(1); -#else - _Exit(1); + supR3HardenedLog("Fatal error:\n"); + va_list vaCopy; + va_copy(vaCopy, va); + supR3HardenedLogV(pszFormat, vaCopy); + va_end(vaCopy); + +#if defined(RT_OS_WINDOWS) + /* + * Report the error to the parent if this happens during early VM init. + */ + if ( g_enmSupR3HardenedMainState < SUPR3HARDENEDMAINSTATE_WIN_IMPORTS_RESOLVED + && g_enmSupR3HardenedMainState != SUPR3HARDENEDMAINSTATE_NOT_YET_CALLED) + supR3HardenedWinReportErrorToParent(NULL, kSupInitOp_Invalid, VERR_INTERNAL_ERROR, pszFormat, va); + else #endif + { +#ifdef RT_OS_WINDOWS + if (g_pfnRTLogRelPrintf) + { + va_copy(vaCopy, va); + g_pfnRTLogRelPrintf("supR3HardenedFatalV: %N", pszFormat, &vaCopy); + va_end(vaCopy); + } +#endif + + suplibHardenedPrintPrefix(); + suplibHardenedPrintFV(pszFormat, va); + } + + suplibHardenedExit(RTEXITCODE_FAILURE); } @@ -527,8 +1315,24 @@ if (fFatal) supR3HardenedFatalV(pszFormat, va); - fprintf(stderr, "%s: ", g_pszSupLibHardenedProgName); - vfprintf(stderr, pszFormat, va); + supR3HardenedLog("Error (rc=%d):\n", rc); + va_list vaCopy; + va_copy(vaCopy, va); + supR3HardenedLogV(pszFormat, vaCopy); + va_end(vaCopy); + +#ifdef RT_OS_WINDOWS + if (g_pfnRTLogRelPrintf) + { + va_copy(vaCopy, va); + g_pfnRTLogRelPrintf("supR3HardenedErrorV: %N", pszFormat, &vaCopy); + va_end(vaCopy); + } +#endif + + suplibHardenedPrintPrefix(); + suplibHardenedPrintFV(pszFormat, va); + return rc; } @@ -543,69 +1347,51 @@ } -/** - * Wrapper around snprintf which will throw a fatal error on buffer overflow. - * - * @returns Number of chars in the result string. - * @param pszDst The destination buffer. - * @param cchDst The size of the buffer. - * @param pszFormat The format string. - * @param ... Format arguments. - */ -static size_t supR3HardenedStrPrintf(char *pszDst, size_t cchDst, const char *pszFormat, ...) -{ - va_list va; - va_start(va, pszFormat); -#ifdef _MSC_VER - int cch = _vsnprintf(pszDst, cchDst, pszFormat, va); -#else - int cch = vsnprintf(pszDst, cchDst, pszFormat, va); -#endif - va_end(va); - if ((unsigned)cch >= cchDst || cch < 0) - supR3HardenedFatal("supR3HardenedStrPrintf: buffer overflow, %d >= %lu\n", cch, (long)cchDst); - return cch; -} - /** * Attempts to open /dev/vboxdrv (or equvivalent). * * @remarks This function will not return on failure. */ -static void supR3HardenedMainOpenDevice(void) +DECLHIDDEN(void) supR3HardenedMainOpenDevice(void) { - int rc = suplibOsInit(&g_SupPreInitData.Data, false); + RTERRINFOSTATIC ErrInfo; + SUPINITOP enmWhat = kSupInitOp_Driver; + int rc = suplibOsInit(&g_SupPreInitData.Data, false /*fPreInit*/, true /*fUnrestricted*/, + &enmWhat, RTErrInfoInitStatic(&ErrInfo)); if (RT_SUCCESS(rc)) return; + if (RTErrInfoIsSet(&ErrInfo.Core)) + supR3HardenedFatalMsg("suplibOsInit", enmWhat, rc, "%s", ErrInfo.szMsg); + switch (rc) { /** @todo better messages! */ case VERR_VM_DRIVER_NOT_INSTALLED: - supR3HardenedFatalMsg("suplibOsInit", kSupInitOp_Driver, rc, - "Kernel driver not installed"); + supR3HardenedFatalMsg("suplibOsInit", kSupInitOp_Driver, rc, "Kernel driver not installed"); case VERR_VM_DRIVER_NOT_ACCESSIBLE: - supR3HardenedFatalMsg("suplibOsInit", kSupInitOp_Driver, rc, - "Kernel driver not accessible"); + supR3HardenedFatalMsg("suplibOsInit", kSupInitOp_Driver, rc, "Kernel driver not accessible"); case VERR_VM_DRIVER_LOAD_ERROR: - supR3HardenedFatalMsg("suplibOsInit", kSupInitOp_Driver, rc, - "VERR_VM_DRIVER_LOAD_ERROR"); + supR3HardenedFatalMsg("suplibOsInit", kSupInitOp_Driver, rc, "VERR_VM_DRIVER_LOAD_ERROR"); case VERR_VM_DRIVER_OPEN_ERROR: - supR3HardenedFatalMsg("suplibOsInit", kSupInitOp_Driver, rc, - "VERR_VM_DRIVER_OPEN_ERROR"); + supR3HardenedFatalMsg("suplibOsInit", kSupInitOp_Driver, rc, "VERR_VM_DRIVER_OPEN_ERROR"); case VERR_VM_DRIVER_VERSION_MISMATCH: - supR3HardenedFatalMsg("suplibOsInit", kSupInitOp_Driver, rc, - "Kernel driver version mismatch"); + supR3HardenedFatalMsg("suplibOsInit", kSupInitOp_Driver, rc, "Kernel driver version mismatch"); case VERR_ACCESS_DENIED: - supR3HardenedFatalMsg("suplibOsInit", kSupInitOp_Driver, rc, - "VERR_ACCESS_DENIED"); + supR3HardenedFatalMsg("suplibOsInit", kSupInitOp_Driver, rc, "VERR_ACCESS_DENIED"); case VERR_NO_MEMORY: - supR3HardenedFatalMsg("suplibOsInit", kSupInitOp_Driver, rc, - "Kernel memory allocation/mapping failed"); + supR3HardenedFatalMsg("suplibOsInit", kSupInitOp_Driver, rc, "Kernel memory allocation/mapping failed"); + case VERR_SUPDRV_HARDENING_EVIL_HANDLE: + supR3HardenedFatalMsg("suplibOsInit", kSupInitOp_Integrity, rc, "VERR_SUPDRV_HARDENING_EVIL_HANDLE"); + case VERR_SUPLIB_NT_PROCESS_UNTRUSTED_0: + supR3HardenedFatalMsg("suplibOsInit", kSupInitOp_Integrity, rc, "VERR_SUPLIB_NT_PROCESS_UNTRUSTED_0"); + case VERR_SUPLIB_NT_PROCESS_UNTRUSTED_1: + supR3HardenedFatalMsg("suplibOsInit", kSupInitOp_Integrity, rc, "VERR_SUPLIB_NT_PROCESS_UNTRUSTED_1"); + case VERR_SUPLIB_NT_PROCESS_UNTRUSTED_2: + supR3HardenedFatalMsg("suplibOsInit", kSupInitOp_Integrity, rc, "VERR_SUPLIB_NT_PROCESS_UNTRUSTED_2"); default: - supR3HardenedFatalMsg("suplibOsInit", kSupInitOp_Driver, rc, - "Unknown rc=%d", rc); + supR3HardenedFatalMsg("suplibOsInit", kSupInitOp_Driver, rc, "Unknown rc=%d (%Rrc)", rc, rc); } } @@ -840,29 +1626,31 @@ */ char szPath[RTPATH_MAX]; supR3HardenedPathSharedLibs(szPath, sizeof(szPath) - sizeof("/VBoxRT" SUPLIB_DLL_SUFF)); - strcat(szPath, "/VBoxRT" SUPLIB_DLL_SUFF); + suplibHardenedStrCat(szPath, "/VBoxRT" SUPLIB_DLL_SUFF); /* * Open it and resolve the symbols. */ #if defined(RT_OS_WINDOWS) - /** @todo consider using LOAD_WITH_ALTERED_SEARCH_PATH here! */ - HMODULE hMod = LoadLibraryEx(szPath, NULL /*hFile*/, 0 /* dwFlags */); + HMODULE hMod = (HMODULE)supR3HardenedWinLoadLibrary(szPath, false /*fSystem32Only*/); if (!hMod) supR3HardenedFatalMsg("supR3HardenedMainInitRuntime", kSupInitOp_IPRT, VERR_MODULE_NOT_FOUND, - "LoadLibraryEx(\"%s\",,) failed (rc=%d)", - szPath, GetLastError()); + "LoadLibrary \"%s\" failed (rc=%d)", + szPath, RtlGetLastWin32Error()); PFNRTR3INITEX pfnRTInitEx = (PFNRTR3INITEX)GetProcAddress(hMod, SUP_HARDENED_SYM("RTR3InitEx")); if (!pfnRTInitEx) supR3HardenedFatalMsg("supR3HardenedMainInitRuntime", kSupInitOp_IPRT, VERR_SYMBOL_NOT_FOUND, "Entrypoint \"RTR3InitEx\" not found in \"%s\" (rc=%d)", - szPath, GetLastError()); + szPath, RtlGetLastWin32Error()); PFNSUPR3PREINIT pfnSUPPreInit = (PFNSUPR3PREINIT)GetProcAddress(hMod, SUP_HARDENED_SYM("supR3PreInit")); if (!pfnSUPPreInit) supR3HardenedFatalMsg("supR3HardenedMainInitRuntime", kSupInitOp_IPRT, VERR_SYMBOL_NOT_FOUND, "Entrypoint \"supR3PreInit\" not found in \"%s\" (rc=%d)", - szPath, GetLastError()); + szPath, RtlGetLastWin32Error()); + + g_pfnRTLogRelPrintf = (PFNRTLOGRELPRINTF)GetProcAddress(hMod, SUP_HARDENED_SYM("RTLogRelPrintf")); + Assert(g_pfnRTLogRelPrintf); /* Not fatal in non-strict builds. */ #else /* the dlopen crowd */ @@ -900,6 +1688,15 @@ if (RT_FAILURE(rc)) supR3HardenedFatalMsg("supR3HardenedMainInitRuntime", kSupInitOp_IPRT, rc, "RTR3Init failed with rc=%d", rc); + +#if defined(RT_OS_WINDOWS) + /* + * Windows: Create thread that terminates the process when the parent stub + * process terminates (VBoxNetDHCP, Ctrl-C, etc). + */ + if (!(fFlags & SUPSECMAIN_FLAGS_DONT_OPEN_DEV)) + supR3HardenedWinCreateParentWatcherThread(hMod); +#endif } @@ -916,19 +1713,27 @@ static PFNSUPTRUSTEDERROR supR3HardenedMainGetTrustedError(const char *pszProgName) { /* + * Don't bother if the main() function didn't advertise any TrustedError + * export. It's both a waste of time and may trigger additional problems, + * confusing or obscuring the original issue. + */ + if (!(g_fSupHardenedMain & SUPSECMAIN_FLAGS_TRUSTED_ERROR)) + return NULL; + + /* * Construct the name. */ char szPath[RTPATH_MAX]; supR3HardenedPathAppPrivateArch(szPath, sizeof(szPath) - 10); - size_t cch = strlen(szPath); - supR3HardenedStrPrintf(&szPath[cch], sizeof(szPath) - cch, "/%s%s", pszProgName, SUPLIB_DLL_SUFF); + size_t cch = suplibHardenedStrLen(szPath); + suplibHardenedStrCopyEx(&szPath[cch], sizeof(szPath) - cch, "/", pszProgName, SUPLIB_DLL_SUFF, NULL); /* * Open it and resolve the symbol. */ #if defined(RT_OS_WINDOWS) - /** @todo consider using LOAD_WITH_ALTERED_SEARCH_PATH here! */ - HMODULE hMod = LoadLibraryEx(szPath, NULL /*hFile*/, 0 /* dwFlags */); + supR3HardenedWinEnableThreadCreation(); + HMODULE hMod = (HMODULE)supR3HardenedWinLoadLibrary(szPath, false /*fSystem32Only*/); if (!hMod) return NULL; FARPROC pfn = GetProcAddress(hMod, SUP_HARDENED_SYM("TrustedError")); @@ -964,22 +1769,21 @@ */ char szPath[RTPATH_MAX]; supR3HardenedPathAppPrivateArch(szPath, sizeof(szPath) - 10); - size_t cch = strlen(szPath); - supR3HardenedStrPrintf(&szPath[cch], sizeof(szPath) - cch, "/%s%s", pszProgName, SUPLIB_DLL_SUFF); + size_t cch = suplibHardenedStrLen(szPath); + suplibHardenedStrCopyEx(&szPath[cch], sizeof(szPath) - cch, "/", pszProgName, SUPLIB_DLL_SUFF, NULL); /* * Open it and resolve the symbol. */ #if defined(RT_OS_WINDOWS) - /** @todo consider using LOAD_WITH_ALTERED_SEARCH_PATH here! */ - HMODULE hMod = LoadLibraryEx(szPath, NULL /*hFile*/, 0 /* dwFlags */); + HMODULE hMod = (HMODULE)supR3HardenedWinLoadLibrary(szPath, false /*fSystem32Only*/); if (!hMod) - supR3HardenedFatal("supR3HardenedMainGetTrustedMain: LoadLibraryEx(\"%s\",,) failed, rc=%d\n", - szPath, GetLastError()); + supR3HardenedFatal("supR3HardenedMainGetTrustedMain: LoadLibrary \"%s\" failed, rc=%d\n", + szPath, RtlGetLastWin32Error()); FARPROC pfn = GetProcAddress(hMod, SUP_HARDENED_SYM("TrustedMain")); if (!pfn) supR3HardenedFatal("supR3HardenedMainGetTrustedMain: Entrypoint \"TrustedMain\" not found in \"%s\" (rc=%d)\n", - szPath, GetLastError()); + szPath, RtlGetLastWin32Error()); return (PFNSUPTRUSTEDMAIN)pfn; #else @@ -1019,14 +1823,21 @@ */ DECLHIDDEN(int) SUPR3HardenedMain(const char *pszProgName, uint32_t fFlags, int argc, char **argv, char **envp) { + SUP_DPRINTF(("SUPR3HardenedMain: pszProgName=%s fFlags=%#x\n", pszProgName, fFlags)); + g_enmSupR3HardenedMainState = SUPR3HARDENEDMAINSTATE_HARDENED_MAIN_CALLED; + /* * Note! At this point there is no IPRT, so we will have to stick * to basic CRT functions that everyone agree upon. */ - g_pszSupLibHardenedProgName = pszProgName; + g_pszSupLibHardenedProgName = pszProgName; + g_fSupHardenedMain = fFlags; g_SupPreInitData.u32Magic = SUPPREINITDATA_MAGIC; - g_SupPreInitData.Data.hDevice = SUP_HDEVICE_NIL; g_SupPreInitData.u32EndMagic = SUPPREINITDATA_MAGIC; +#ifdef RT_OS_WINDOWS + if (!g_fSupEarlyProcessInit) +#endif + g_SupPreInitData.Data.hDevice = SUP_HDEVICE_NIL; #ifdef SUP_HARDENED_SUID # ifdef RT_OS_LINUX @@ -1035,7 +1846,6 @@ * *might* not be able to access /proc/self/exe after the seteuid call. */ supR3HardenedGetFullExePath(); - # endif /* @@ -1052,24 +1862,82 @@ supR3HardenedFatalMsg("SUPR3HardenedMain", kSupInitOp_RootCheck, VERR_PERMISSION_DENIED, "Effective UID is not root (euid=%d egid=%d uid=%d gid=%d)", geteuid(), getegid(), g_uid, g_gid); -#endif +#endif /* SUP_HARDENED_SUID */ + +#ifdef RT_OS_WINDOWS + /* + * Windows: First respawn. On Windows we will respawn the process twice to establish + * something we can put some kind of reliable trust in. The first respawning aims + * at dropping compatibility layers and process "security" solutions. + */ + if ( !g_fSupEarlyProcessInit + && !(fFlags & SUPSECMAIN_FLAGS_DONT_OPEN_DEV) + && supR3HardenedWinIsReSpawnNeeded(1 /*iWhich*/, argc, argv)) + { + SUP_DPRINTF(("SUPR3HardenedMain: Respawn #1\n")); + supR3HardenedWinInit(SUPSECMAIN_FLAGS_DONT_OPEN_DEV, false /*fAvastKludge*/); + supR3HardenedVerifyAll(true /* fFatal */, pszProgName); + return supR3HardenedWinReSpawn(1 /*iWhich*/); + } + + /* + * Windows: Initialize the image verification global data so we can verify the + * signature of the process image and hook the core of the DLL loader API so we + * can check the signature of all DLLs mapped into the process. (Already done + * by early VM process init.) + */ + if (!g_fSupEarlyProcessInit) + supR3HardenedWinInit(fFlags, true /*fAvastKludge*/); +#endif /* RT_OS_WINDOWS */ /* * Validate the installation. */ - supR3HardenedVerifyAll(true /* fFatal */, false /* fLeaveFilesOpen */, pszProgName); + supR3HardenedVerifyAll(true /* fFatal */, pszProgName); /* - * Open the vboxdrv device. + * The next steps are only taken if we actually need to access the support + * driver. (Already done by early process init.) */ if (!(fFlags & SUPSECMAIN_FLAGS_DONT_OPEN_DEV)) + { +#ifdef RT_OS_WINDOWS + /* + * Windows: Must have done early process init if we get here. + */ + if (!g_fSupEarlyProcessInit) + supR3HardenedFatalMsg("SUPR3HardenedMain", kSupInitOp_Integrity, VERR_WRONG_ORDER, + "Early process init was somehow skipped."); + + /* + * Windows: The second respawn. This time we make a special arrangement + * with vboxdrv to monitor access to the new process from its inception. + */ + if (supR3HardenedWinIsReSpawnNeeded(2 /* iWhich*/, argc, argv)) + { + SUP_DPRINTF(("SUPR3HardenedMain: Respawn #2\n")); + return supR3HardenedWinReSpawn(2 /* iWhich*/); + } + SUP_DPRINTF(("SUPR3HardenedMain: Final process, opening VBoxDrv...\n")); + supR3HardenedWinFlushLoaderCache(); + +#else + /* + * Open the vboxdrv device. + */ supR3HardenedMainOpenDevice(); +#endif /* !RT_OS_WINDOWS */ + } +#ifdef RT_OS_WINDOWS /* - * Open the root service connection. + * Windows: Enable the use of windows APIs to verify images at load time. */ - //if (!(fFlags & SUPSECMAIN_FLAGS_DONT_OPEN_SVC)) - //supR3HardenedMainOpenService(&g_SupPreInitData, true /* fFatal */); + supR3HardenedWinEnableThreadCreation(); + supR3HardenedWinFlushLoaderCache(); + supR3HardenedWinResolveVerifyTrustApiAndHookThreadCreation(g_pszSupLibHardenedProgName); + g_enmSupR3HardenedMainState = SUPR3HARDENEDMAINSTATE_WIN_VERIFY_TRUST_READY; +#endif #ifdef SUP_HARDENED_SUID /* @@ -1087,13 +1955,20 @@ * Load the IPRT, hand the SUPLib part the open driver and * call RTR3Init. */ + SUP_DPRINTF(("SUPR3HardenedMain: Load Runtime...\n")); + g_enmSupR3HardenedMainState = SUPR3HARDENEDMAINSTATE_INIT_RUNTIME; supR3HardenedMainInitRuntime(fFlags); /* * Load the DLL/SO/DYLIB containing the actual program * and pass control to it. */ + SUP_DPRINTF(("SUPR3HardenedMain: Load TrustedMain...\n")); + g_enmSupR3HardenedMainState = SUPR3HARDENEDMAINSTATE_GET_TRUSTED_MAIN; PFNSUPTRUSTEDMAIN pfnTrustedMain = supR3HardenedMainGetTrustedMain(pszProgName); + + SUP_DPRINTF(("SUPR3HardenedMain: Calling TrustedMain (%p)...\n", pfnTrustedMain)); + g_enmSupR3HardenedMainState = SUPR3HARDENEDMAINSTATE_CALLED_TRUSTED_MAIN; return pfnTrustedMain(argc, argv, envp); } diff -Nru virtualbox-4.1.12-dfsg/src/VBox/HostDrivers/Support/SUPR3HardenedMainTemplate.cpp virtualbox-4.1.44-dfsg/src/VBox/HostDrivers/Support/SUPR3HardenedMainTemplate.cpp --- virtualbox-4.1.12-dfsg/src/VBox/HostDrivers/Support/SUPR3HardenedMainTemplate.cpp 1970-01-01 00:00:00.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/HostDrivers/Support/SUPR3HardenedMainTemplate.cpp 2015-11-11 15:08:40.000000000 +0000 @@ -0,0 +1,34 @@ +/* $Id: SUPR3HardenedMainTemplate.cpp $ */ +/** @file + * Hardened main() template. + */ + +/* + * Copyright (C) 2008-2014 Oracle Corporation + * + * This file is part of VirtualBox Open Source Edition (OSE), as + * available from http://www.virtualbox.org. This file is free software; + * you can redistribute it and/or modify it under the terms of the GNU + * General Public License (GPL) as published by the Free Software + * Foundation, in version 2 as it comes in the "COPYING" file of the + * VirtualBox OSE distribution. VirtualBox OSE is distributed in the + * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind. + * + * The contents of this file may alternatively be used under the terms + * of the Common Development and Distribution License Version 1.0 + * (CDDL) only, as it comes in the "COPYING.CDDL" file of the + * VirtualBox OSE distribution, in which case the provisions of the + * CDDL are applicable instead of those of the GPL. + * + * You may elect to license modified versions of this file under the + * terms and conditions of either the GPL or the CDDL or both. + */ + +#include + + +int main(int argc, char **argv, char **envp) +{ + return SUPR3HardenedMain(PROGRAM_NAME_STR, 0, argc, argv, envp); +} + diff -Nru virtualbox-4.1.12-dfsg/src/VBox/HostDrivers/Support/SUPR3HardenedNoCrt.cpp virtualbox-4.1.44-dfsg/src/VBox/HostDrivers/Support/SUPR3HardenedNoCrt.cpp --- virtualbox-4.1.12-dfsg/src/VBox/HostDrivers/Support/SUPR3HardenedNoCrt.cpp 1970-01-01 00:00:00.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/HostDrivers/Support/SUPR3HardenedNoCrt.cpp 2015-11-11 15:08:40.000000000 +0000 @@ -0,0 +1,178 @@ +/* $Id: SUPR3HardenedNoCrt.cpp $ */ +/** @file + * VirtualBox Support Library - Hardened main() no-crt routines. + */ + +/* + * Copyright (C) 2006-2014 Oracle Corporation + * + * This file is part of VirtualBox Open Source Edition (OSE), as + * available from http://www.virtualbox.org. This file is free software; + * you can redistribute it and/or modify it under the terms of the GNU + * General Public License (GPL) as published by the Free Software + * Foundation, in version 2 as it comes in the "COPYING" file of the + * VirtualBox OSE distribution. VirtualBox OSE is distributed in the + * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind. + * + * The contents of this file may alternatively be used under the terms + * of the Common Development and Distribution License Version 1.0 + * (CDDL) only, as it comes in the "COPYING.CDDL" file of the + * VirtualBox OSE distribution, in which case the provisions of the + * CDDL are applicable instead of those of the GPL. + * + * You may elect to license modified versions of this file under the + * terms and conditions of either the GPL or the CDDL or both. + */ + +/******************************************************************************* +* Header Files * +*******************************************************************************/ +#ifdef RT_OS_WINDOWS +# include +#endif + +#include + +#include "SUPLibInternal.h" + + +#ifdef SUP_HARDENED_NEED_CRT_FUNCTIONS /** @todo this crap is obsolete. */ + +/** memcmp */ +DECLHIDDEN(int) suplibHardenedMemComp(void const *pvDst, const void *pvSrc, size_t cbToComp) +{ + size_t const *puDst = (size_t const *)pvDst; + size_t const *puSrc = (size_t const *)pvSrc; + while (cbToComp >= sizeof(size_t)) + { + if (*puDst != *puSrc) + break; + puDst++; + puSrc++; + cbToComp -= sizeof(size_t); + } + + uint8_t const *pbDst = (uint8_t const *)puDst; + uint8_t const *pbSrc = (uint8_t const *)puSrc; + while (cbToComp > 0) + { + if (*pbDst != *pbSrc) + { + if (*pbDst < *pbSrc) + return -1; + return 1; + } + + pbDst++; + pbSrc++; + cbToComp--; + } + + return 0; +} + + +/** memcpy */ +DECLHIDDEN(void *) suplibHardenedMemCopy(void *pvDst, const void *pvSrc, size_t cbToCopy) +{ + size_t *puDst = (size_t *)pvDst; + size_t const *puSrc = (size_t const *)pvSrc; + while (cbToCopy >= sizeof(size_t)) + { + *puDst++ = *puSrc++; + cbToCopy -= sizeof(size_t); + } + + uint8_t *pbDst = (uint8_t *)puDst; + uint8_t const *pbSrc = (uint8_t const *)puSrc; + while (cbToCopy > 0) + { + *pbDst++ = *pbSrc++; + cbToCopy--; + } + + return pvDst; +} + + +/** memset */ +DECLHIDDEN(void *) suplibHardenedMemSet(void *pvDst, int ch, size_t cbToSet) +{ + uint8_t *pbDst = (uint8_t *)pvDst; + while (cbToSet > 0) + { + *pbDst++ = (uint8_t)ch; + cbToSet--; + } + + return pvDst; +} + + +/** strcpy */ +DECLHIDDEN(char *) suplibHardenedStrCopy(char *pszDst, const char *pszSrc) +{ + char *pszRet = pszDst; + char ch; + do + { + ch = *pszSrc++; + *pszDst++ = ch; + } while (ch); + return pszRet; +} + + +/** strlen */ +DECLHIDDEN(size_t) suplibHardenedStrLen(const char *psz) +{ + const char *pszStart = psz; + while (*psz) + psz++; + return psz - pszStart; +} + + +/** strcat */ +DECLHIDDEN(char *) suplibHardenedStrCat(char *pszDst, const char *pszSrc) +{ + char *pszRet = pszDst; + while (*pszDst) + pszDst++; + suplibHardenedStrCopy(pszDst, pszSrc); + return pszRet; +} + + +/** strcmp */ +DECLHIDDEN(int) suplibHardenedStrCmp(const char *psz1, const char *psz2) +{ + for (;;) + { + char ch1 = *psz1++; + char ch2 = *psz2++; + if (ch1 != ch2) + return ch1 < ch2 ? -1 : 1; + if (ch1 == 0) + return 0; + } +} + + +/** strncmp */ +DECLHIDDEN(int) suplibHardenedStrNCmp(const char *psz1, const char *psz2, size_t cchMax) +{ + while (cchMax-- > 0) + { + char ch1 = *psz1++; + char ch2 = *psz2++; + if (ch1 != ch2) + return ch1 < ch2 ? -1 : 1; + if (ch1 == 0) + break; + } + return 0; +} + +#endif /* SUP_HARDENED_NEED_CRT_FUNCTIONS */ + diff -Nru virtualbox-4.1.12-dfsg/src/VBox/HostDrivers/Support/SUPR3HardenedVerify.cpp virtualbox-4.1.44-dfsg/src/VBox/HostDrivers/Support/SUPR3HardenedVerify.cpp --- virtualbox-4.1.12-dfsg/src/VBox/HostDrivers/Support/SUPR3HardenedVerify.cpp 2012-04-02 13:28:47.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/HostDrivers/Support/SUPR3HardenedVerify.cpp 2015-11-11 15:08:40.000000000 +0000 @@ -39,8 +39,10 @@ # include #elif defined(RT_OS_WINDOWS) -# include -# include +# include +# ifndef IN_SUP_HARDENED_R3 +# include +# endif #else /* UNIXes */ # include @@ -55,7 +57,6 @@ # include # include # include -# include # include # ifdef RT_OS_DARWIN # include @@ -72,6 +73,10 @@ #include #include "SUPLibInternal.h" +#if defined(RT_OS_WINDOWS) && defined(VBOX_WITH_HARDENING) +# define SUPHNTVI_NO_NT_STUFF +# include "win/SUPHardenedVerify-win.h" +#endif /******************************************************************************* @@ -84,6 +89,13 @@ # define dirfd(d) ((d)->d_fd) #endif +/** Compare table file names with externally supplied names. */ +#if defined(RT_OS_WINDOWS) || defined(RT_OS_OS2) +# define SUP_COMP_FILENAME RTStrICmp +#else +# define SUP_COMP_FILENAME suplibHardenedStrCmp +#endif + /******************************************************************************* * Global Variables * @@ -105,9 +117,9 @@ { kSupIFT_Dll, kSupID_AppPrivArch, false, "VBoxDD2R0.r0" }, #ifdef VBOX_WITH_RAW_MODE - { kSupIFT_Dll, kSupID_AppPrivArch, false, "VMMGC.gc" }, - { kSupIFT_Dll, kSupID_AppPrivArch, false, "VBoxDDGC.gc" }, - { kSupIFT_Dll, kSupID_AppPrivArch, false, "VBoxDD2GC.gc" }, + { kSupIFT_Rc, kSupID_AppPrivArch, false, "VMMGC.gc" }, + { kSupIFT_Rc, kSupID_AppPrivArch, false, "VBoxDDGC.gc" }, + { kSupIFT_Rc, kSupID_AppPrivArch, false, "VBoxDD2GC.gc" }, #endif { kSupIFT_Dll, kSupID_SharedLib, false, "VBoxRT" SUPLIB_DLL_SUFF }, @@ -148,7 +160,7 @@ #ifdef VBOX_WITH_MAIN { kSupIFT_Exe, kSupID_AppBin, false, "VBoxSVC" SUPLIB_EXE_SUFF }, #ifdef RT_OS_WINDOWS - { kSupIFT_Dll, kSupID_AppPrivArchComp, false, "VBoxC" SUPLIB_DLL_SUFF }, + { kSupIFT_Dll, kSupID_SharedLib, false, "VBoxC" SUPLIB_DLL_SUFF }, #else { kSupIFT_Exe, kSupID_AppPrivArch, false, "VBoxXPCOMIPCD" SUPLIB_EXE_SUFF }, { kSupIFT_Dll, kSupID_SharedLib, false, "VBoxXPCOM" SUPLIB_DLL_SUFF }, @@ -199,6 +211,27 @@ { kSupIFT_Exe, kSupID_AppBin, true, "VBoxNetDHCP" SUPLIB_EXE_SUFF }, { kSupIFT_Dll, kSupID_AppPrivArch, true, "VBoxNetDHCP" SUPLIB_DLL_SUFF }, //#endif +#if defined(VBOX_WITH_HARDENING) && defined(RT_OS_WINDOWS) +# define HARDENED_TESTCASE_BIN_ENTRY(a_szName) \ + { kSupIFT_TestExe, kSupID_AppBin, true, a_szName SUPLIB_EXE_SUFF }, \ + { kSupIFT_TestDll, kSupID_AppBin, true, a_szName SUPLIB_DLL_SUFF } + HARDENED_TESTCASE_BIN_ENTRY("tstMicro"), + HARDENED_TESTCASE_BIN_ENTRY("tstPDMAsyncCompletion"), + HARDENED_TESTCASE_BIN_ENTRY("tstPDMAsyncCompletionStress"), + HARDENED_TESTCASE_BIN_ENTRY("tstVMM"), + HARDENED_TESTCASE_BIN_ENTRY("tstVMREQ"), +# define HARDENED_TESTCASE_ENTRY(a_szName) \ + { kSupIFT_TestExe, kSupID_Testcase, true, a_szName SUPLIB_EXE_SUFF }, \ + { kSupIFT_TestDll, kSupID_Testcase, true, a_szName SUPLIB_DLL_SUFF } + HARDENED_TESTCASE_ENTRY("tstCFGM"), + HARDENED_TESTCASE_ENTRY("tstIntNet-1"), + HARDENED_TESTCASE_ENTRY("tstMMHyperHeap"), + HARDENED_TESTCASE_ENTRY("tstR0ThreadPreemptionDriver"), + HARDENED_TESTCASE_ENTRY("tstRTR0MemUserKernelDriver"), + HARDENED_TESTCASE_ENTRY("tstRTR0SemMutexDriver"), + HARDENED_TESTCASE_ENTRY("tstRTR0TimerDriver"), + HARDENED_TESTCASE_ENTRY("tstSSM"), +#endif }; @@ -239,9 +272,9 @@ rc = supR3HardenedPathAppPrivateArch(pszDst, cchDst); if (RT_SUCCESS(rc)) { - size_t off = strlen(pszDst); + size_t off = suplibHardenedStrLen(pszDst); if (cchDst - off >= sizeof("/components")) - memcpy(&pszDst[off], "/components", sizeof("/components")); + suplibHardenedMemCopy(&pszDst[off], "/components", sizeof("/components")); else rc = VERR_BUFFER_OVERFLOW; } @@ -249,6 +282,17 @@ case kSupID_AppPrivNoArch: rc = supR3HardenedPathAppPrivateNoArch(pszDst, cchDst); break; + case kSupID_Testcase: + rc = supR3HardenedPathExecDir(pszDst, cchDst); + if (RT_SUCCESS(rc)) + { + size_t off = suplibHardenedStrLen(pszDst); + if (cchDst - off >= sizeof("/testcase")) + suplibHardenedMemCopy(&pszDst[off], "/testcase", sizeof("/testcase")); + else + rc = VERR_BUFFER_OVERFLOW; + } + break; default: return supR3HardenedError(VERR_INTERNAL_ERROR, fFatal, "supR3HardenedMakePath: enmDir=%d\n", enmDir); @@ -281,12 +325,12 @@ int rc = supR3HardenedMakePath(pFile->enmDir, pszDst, cchDst, fFatal); if (RT_SUCCESS(rc) && fWithFilename) { - size_t cchFile = strlen(pFile->pszFile); - size_t off = strlen(pszDst); + size_t cchFile = suplibHardenedStrLen(pFile->pszFile); + size_t off = suplibHardenedStrLen(pszDst); if (cchDst - off >= cchFile + 2) { pszDst[off++] = '/'; - memcpy(&pszDst[off], pFile->pszFile, cchFile + 1); + suplibHardenedMemCopy(&pszDst[off], pFile->pszFile, cchFile + 1); } else rc = supR3HardenedError(VERR_BUFFER_OVERFLOW, fFatal, @@ -337,27 +381,42 @@ if (RT_SUCCESS(rc)) { #if defined(RT_OS_WINDOWS) - HANDLE hDir = CreateFile(szPath, - GENERIC_READ, - FILE_SHARE_READ | FILE_SHARE_DELETE | FILE_SHARE_WRITE, - NULL, - OPEN_ALWAYS, - FILE_ATTRIBUTE_NORMAL | FILE_FLAG_BACKUP_SEMANTICS, - NULL); - if (hDir != INVALID_HANDLE_VALUE) + PRTUTF16 pwszPath; + rc = RTStrToUtf16(szPath, &pwszPath); + if (RT_SUCCESS(rc)) { - /** @todo check the type */ - /* That's all on windows, for now at least... */ - g_aSupVerifiedDirs[enmDir].hDir = (intptr_t)hDir; - g_aSupVerifiedDirs[enmDir].fValidated = true; + HANDLE hDir = CreateFileW(pwszPath, + GENERIC_READ, + FILE_SHARE_READ | FILE_SHARE_DELETE | FILE_SHARE_WRITE, + NULL, + OPEN_EXISTING, + FILE_ATTRIBUTE_NORMAL | FILE_FLAG_BACKUP_SEMANTICS, + NULL); + if (hDir != INVALID_HANDLE_VALUE) + { + /** @todo check the type */ + /* That's all on windows, for now at least... */ + g_aSupVerifiedDirs[enmDir].hDir = (intptr_t)hDir; + g_aSupVerifiedDirs[enmDir].fValidated = true; + } + else if (enmDir == kSupID_Testcase) + { + g_aSupVerifiedDirs[enmDir].fValidated = true; + rc = VINF_SUCCESS; /* Optional directory, ignore if missing. */ + } + else + { + int err = RtlGetLastWin32Error(); + rc = supR3HardenedError(VERR_PATH_NOT_FOUND, fFatal, + "supR3HardenedVerifyDir: Failed to open \"%s\": err=%d\n", + szPath, err); + } + RTUtf16Free(pwszPath); } else - { - int err = GetLastError(); - rc = supR3HardenedError(VERR_PATH_NOT_FOUND, fFatal, - "supR3HardenedVerifyDir: Failed to open \"%s\": err=%d\n", - szPath, err); - } + rc = supR3HardenedError(rc, fFatal, + "supR3HardenedVerifyDir: Failed to convert \"%s\" to UTF-16: err=%d\n", szPath, rc); + #else /* UNIXY */ int fd = open(szPath, O_RDONLY, 0); if (fd >= 0) @@ -403,6 +462,11 @@ close(fd); } } + else if (enmDir == kSupID_Testcase) + { + g_aSupVerifiedDirs[enmDir].fValidated = true; + rc = VINF_SUCCESS; /* Optional directory, ignore if missing. */ + } else { int err = errno; @@ -417,6 +481,135 @@ } +#ifdef RT_OS_WINDOWS +/** + * Opens the file for verification. + * + * @returns VINF_SUCCESS on success. On failure, an error code is returned if + * fFatal is clear and if it's set the function wont return. + * @param pFile The file entry. + * @param fFatal Whether validation failures should be treated as + * kl fatal (true) or not (false). + * @param phFile The file handle, set to -1 if we failed to open + * the file. The function may return VINF_SUCCESS + * and a -1 handle if the file is optional. + */ +static int supR3HardenedVerifyFileOpen(PCSUPINSTFILE pFile, bool fFatal, intptr_t *phFile) +{ + *phFile = -1; + + char szPath[RTPATH_MAX]; + int rc = supR3HardenedMakeFilePath(pFile, szPath, sizeof(szPath), true /*fWithFilename*/, fFatal); + if (RT_SUCCESS(rc)) + { + PRTUTF16 pwszPath; + rc = RTStrToUtf16(szPath, &pwszPath); + if (RT_SUCCESS(rc)) + { + HANDLE hFile = CreateFileW(pwszPath, + GENERIC_READ, + FILE_SHARE_READ, + NULL, + OPEN_EXISTING, + FILE_ATTRIBUTE_NORMAL, + NULL); + if (hFile != INVALID_HANDLE_VALUE) + { + *phFile = (intptr_t)hFile; + rc = VINF_SUCCESS; + } + else + { + int err = RtlGetLastWin32Error(); + if ( !pFile->fOptional + || ( err != ERROR_FILE_NOT_FOUND + && (err != ERROR_PATH_NOT_FOUND || pFile->enmDir != kSupID_Testcase) ) ) + rc = supR3HardenedError(VERR_PATH_NOT_FOUND, fFatal, + "supR3HardenedVerifyFileInternal: Failed to open '%s': err=%d\n", szPath, err); + } + RTUtf16Free(pwszPath); + } + else + rc = supR3HardenedError(rc, fFatal, "supR3HardenedVerifyFileInternal: Failed to convert '%s' to UTF-16: %Rrc\n", + szPath, rc); + } + return rc; +} + + +/** + * Worker for supR3HardenedVerifyFileInternal. + * + * @returns VINF_SUCCESS on success. On failure, an error code is returned if + * fFatal is clear and if it's set the function wont return. + * @param pFile The file entry. + * @param pVerified The verification record. + * @param fFatal Whether validation failures should be treated as + * fatal (true) or not (false). + * @param fLeaveFileOpen Whether the file should be left open. + */ +static int supR3HardenedVerifyFileSignature(PCSUPINSTFILE pFile, PSUPVERIFIEDFILE pVerified, bool fFatal, bool fLeaveFileOpen) +{ +# if defined(VBOX_WITH_HARDENING) && !defined(IN_SUP_R3_STATIC) /* Latter: Not in VBoxCpuReport and friends. */ + + /* + * Open the file if we have to. + */ + int rc; + intptr_t hFileOpened; + intptr_t hFile = pVerified->hFile; + if (hFile != -1) + hFileOpened = -1; + else + { + rc = supR3HardenedVerifyFileOpen(pFile, fFatal, &hFileOpened); + if (RT_FAILURE(rc)) + return rc; + hFile = hFileOpened; + } + + /* + * Verify the signature. + */ + char szErr[1024]; + RTERRINFO ErrInfo; + RTErrInfoInit(&ErrInfo, szErr, sizeof(szErr)); + + uint32_t fFlags = SUPHNTVI_F_REQUIRE_BUILD_CERT; + if (pFile->enmType == kSupIFT_Rc) + fFlags |= SUPHNTVI_F_RC_IMAGE; + + rc = supHardenedWinVerifyImageByHandleNoName((HANDLE)hFile, fFlags, &ErrInfo); + if (RT_SUCCESS(rc)) + pVerified->fCheckedSignature = true; + else + { + pVerified->fCheckedSignature = false; + rc = supR3HardenedError(rc, fFatal, "supR3HardenedVerifyFileInternal: '%s': Image verify error rc=%Rrc: %s\n", + pFile->pszFile, rc, szErr); + + } + + /* + * Close the handle if we opened the file and we should close it. + */ + if (hFileOpened != -1) + { + if (fLeaveFileOpen && RT_SUCCESS(rc)) + pVerified->hFile = hFileOpened; + else + NtClose((HANDLE)hFileOpened); + } + + return rc; + +# else /* Not checking signatures. */ + return VINF_SUCCESS; +# endif /* Not checking signatures. */ +} +#endif + + /** * Verifies a file entry. * @@ -427,17 +620,26 @@ * @param fFatal Whether validation failures should be treated as * fatal (true) or not (false). * @param fLeaveFileOpen Whether the file should be left open. + * @param fVerifyAll Set if this is an verify all call and we will + * postpone signature checking. */ -static int supR3HardenedVerifyFileInternal(int iFile, bool fFatal, bool fLeaveFileOpen) +static int supR3HardenedVerifyFileInternal(int iFile, bool fFatal, bool fLeaveFileOpen, bool fVerifyAll) { PCSUPINSTFILE pFile = &g_aSupInstallFiles[iFile]; PSUPVERIFIEDFILE pVerified = &g_aSupVerifiedFiles[iFile]; /* - * Already done? + * Already done validation? Do signature validation if we haven't yet. */ if (pVerified->fValidated) - return VINF_SUCCESS; /** @todo revalidate? */ + { + /** @todo revalidate? Check that the file hasn't been replace or similar. */ +#ifdef RT_OS_WINDOWS + if (!pVerified->fCheckedSignature && !fVerifyAll) + return supR3HardenedVerifyFileSignature(pFile, pVerified, fFatal, fLeaveFileOpen); +#endif + return VINF_SUCCESS; + } /* initialize the entry. */ @@ -447,6 +649,9 @@ (void *)pVerified->hFile, pFile->pszFile); pVerified->hFile = -1; pVerified->fValidated = false; +#ifdef RT_OS_WINDOWS + pVerified->fCheckedSignature = false; +#endif /* * Verify the directory then proceed to open it. @@ -456,44 +661,32 @@ int rc = supR3HardenedVerifyFixedDir(pFile->enmDir, fFatal); if (RT_SUCCESS(rc)) { - char szPath[RTPATH_MAX]; - rc = supR3HardenedMakeFilePath(pFile, szPath, sizeof(szPath), true /*fWithFilename*/, fFatal); +#if defined(RT_OS_WINDOWS) + rc = supR3HardenedVerifyFileOpen(pFile, fFatal, &pVerified->hFile); if (RT_SUCCESS(rc)) { -#if defined(RT_OS_WINDOWS) - HANDLE hFile = CreateFile(szPath, - GENERIC_READ, - FILE_SHARE_READ, - NULL, - OPEN_ALWAYS, - FILE_ATTRIBUTE_NORMAL, - NULL); - if (hFile != INVALID_HANDLE_VALUE) + if (!fVerifyAll) + rc = supR3HardenedVerifyFileSignature(pFile, pVerified, fFatal, fLeaveFileOpen); + if (RT_SUCCESS(rc)) { - /** @todo Check the type, and verify the signature (separate function so we can skip it). */ + pVerified->fValidated = true; + if (!fLeaveFileOpen) { - /* it's valid. */ - if (fLeaveFileOpen) - pVerified->hFile = (intptr_t)hFile; - else - CloseHandle(hFile); - pVerified->fValidated = true; + NtClose((HANDLE)pVerified->hFile); + pVerified->hFile = -1; } } - else - { - int err = GetLastError(); - if (!pFile->fOptional || err != ERROR_FILE_NOT_FOUND) - rc = supR3HardenedError(VERR_PATH_NOT_FOUND, fFatal, - "supR3HardenedVerifyFileInternal: Failed to open \"%s\": err=%d\n", - szPath, err); - } -#else /* UNIXY */ + } +#else /* !RT_OS_WINDOWS */ + char szPath[RTPATH_MAX]; + rc = supR3HardenedMakeFilePath(pFile, szPath, sizeof(szPath), true /*fWithFilename*/, fFatal); + if (RT_SUCCESS(rc)) + { int fd = open(szPath, O_RDONLY, 0); if (fd >= 0) { /* - * On unixy systems we'll make sure the directory is owned by root + * On unixy systems we'll make sure the file is owned by root * and not writable by the group and user. */ struct stat st; @@ -544,8 +737,8 @@ "supR3HardenedVerifyFileInternal: Failed to open \"%s\": %s (%d)\n", szPath, strerror(err), err); } -#endif /* UNIXY */ } +#endif /* !RT_OS_WINDOWS */ } return rc; @@ -575,11 +768,7 @@ int rc = supR3HardenedMakeFilePath(pFile, szName, sizeof(szName), true /*fWithFilename*/, fFatal); if (RT_FAILURE(rc)) return rc; -#if defined(RT_OS_WINDOWS) || defined(RT_OS_OS2) - if (stricmp(szName, pszFilename)) -#else - if (strcmp(szName, pszFilename)) -#endif + if (SUP_COMP_FILENAME(szName, pszFilename)) { /* * Normalize the two paths and compare again. @@ -587,17 +776,17 @@ rc = VERR_NOT_SAME_DEVICE; #if defined(RT_OS_WINDOWS) LPSTR pszIgnored; - char szName2[RTPATH_MAX]; + char szName2[RTPATH_MAX]; /** @todo Must use UTF-16 here! Code is mixing UTF-8 and native. */ if ( GetFullPathName(szName, RT_ELEMENTS(szName2), &szName2[0], &pszIgnored) && GetFullPathName(pszFilename, RT_ELEMENTS(szName), &szName[0], &pszIgnored)) - if (!stricmp(szName2, szName)) + if (!SUP_COMP_FILENAME(szName2, szName)) rc = VINF_SUCCESS; #else AssertCompile(RTPATH_MAX >= PATH_MAX); char szName2[RTPATH_MAX]; if ( realpath(szName, szName2) != NULL && realpath(pszFilename, szName) != NULL) - if (!strcmp(szName2, szName)) + if (!SUP_COMP_FILENAME(szName2, szName)) rc = VINF_SUCCESS; #endif @@ -639,11 +828,11 @@ */ const char *pszName = supR3HardenedPathFilename(pszFilename); for (unsigned iFile = 0; iFile < RT_ELEMENTS(g_aSupInstallFiles); iFile++) - if (!strcmp(pszName, g_aSupInstallFiles[iFile].pszFile)) + if (!SUP_COMP_FILENAME(pszName, g_aSupInstallFiles[iFile].pszFile)) { int rc = supR3HardenedVerifySameFile(iFile, pszFilename, fFatal); if (RT_SUCCESS(rc)) - rc = supR3HardenedVerifyFileInternal(iFile, fFatal, false /* fLeaveFileOpen */); + rc = supR3HardenedVerifyFileInternal(iFile, fFatal, false /* fLeaveFileOpen */, false /* fVerifyAll */); return rc; } @@ -657,8 +846,10 @@ * @returns See supR3HardenedVerifyAll. * @param pszProgName See supR3HardenedVerifyAll. * @param fFatal See supR3HardenedVerifyAll. + * @param fLeaveOpen The leave open setting used by + * supR3HardenedVerifyAll. */ -static int supR3HardenedVerifyProgram(const char *pszProgName, bool fFatal) +static int supR3HardenedVerifyProgram(const char *pszProgName, bool fFatal, bool fLeaveOpen) { /* * Search the table looking for the executable and the DLL/DYLIB/SO. @@ -666,34 +857,41 @@ int rc = VINF_SUCCESS; bool fExe = false; bool fDll = false; - size_t const cchProgName = strlen(pszProgName); + size_t const cchProgName = suplibHardenedStrLen(pszProgName); for (unsigned iFile = 0; iFile < RT_ELEMENTS(g_aSupInstallFiles); iFile++) - if (!strncmp(pszProgName, g_aSupInstallFiles[iFile].pszFile, cchProgName)) + if (!suplibHardenedStrNCmp(pszProgName, g_aSupInstallFiles[iFile].pszFile, cchProgName)) { - if ( g_aSupInstallFiles[iFile].enmType == kSupIFT_Dll - && !strcmp(&g_aSupInstallFiles[iFile].pszFile[cchProgName], SUPLIB_DLL_SUFF)) + if ( ( g_aSupInstallFiles[iFile].enmType == kSupIFT_Dll + || g_aSupInstallFiles[iFile].enmType == kSupIFT_TestDll) + && !suplibHardenedStrCmp(&g_aSupInstallFiles[iFile].pszFile[cchProgName], SUPLIB_DLL_SUFF)) { /* This only has to be found (once). */ if (fDll) rc = supR3HardenedError(VERR_INTERNAL_ERROR, fFatal, "supR3HardenedVerifyProgram: duplicate DLL entry for \"%s\"\n", pszProgName); + else + rc = supR3HardenedVerifyFileInternal(iFile, fFatal, fLeaveOpen, + true /* fVerifyAll - check sign later, only final process need check it on load. */); fDll = true; } - else if ( g_aSupInstallFiles[iFile].enmType == kSupIFT_Exe - && !strcmp(&g_aSupInstallFiles[iFile].pszFile[cchProgName], SUPLIB_EXE_SUFF)) + else if ( ( g_aSupInstallFiles[iFile].enmType == kSupIFT_Exe + || g_aSupInstallFiles[iFile].enmType == kSupIFT_TestExe) + && !suplibHardenedStrCmp(&g_aSupInstallFiles[iFile].pszFile[cchProgName], SUPLIB_EXE_SUFF)) { /* Here we'll have to check that the specific program is the same as the entry. */ if (fExe) rc = supR3HardenedError(VERR_INTERNAL_ERROR, fFatal, "supR3HardenedVerifyProgram: duplicate EXE entry for \"%s\"\n", pszProgName); + else + rc = supR3HardenedVerifyFileInternal(iFile, fFatal, fLeaveOpen, false /* fVerifyAll */); fExe = true; char szFilename[RTPATH_MAX]; int rc2 = supR3HardenedPathExecDir(szFilename, sizeof(szFilename) - cchProgName - sizeof(SUPLIB_EXE_SUFF)); if (RT_SUCCESS(rc2)) { - strcat(szFilename, "/"); - strcat(szFilename, g_aSupInstallFiles[iFile].pszFile); + suplibHardenedStrCat(szFilename, "/"); + suplibHardenedStrCat(szFilename, g_aSupInstallFiles[iFile].pszFile); supR3HardenedVerifySameFile(iFile, szFilename, fFatal); } else @@ -705,21 +903,24 @@ /* * Check the findings. */ - if (!fDll && !fExe) - rc = supR3HardenedError(VERR_NOT_FOUND, fFatal, - "supR3HardenedVerifyProgram: Couldn't find the program \"%s\"\n", pszProgName); - else if (!fExe) - rc = supR3HardenedError(VERR_NOT_FOUND, fFatal, - "supR3HardenedVerifyProgram: Couldn't find the EXE entry for \"%s\"\n", pszProgName); - else if (!fDll) - rc = supR3HardenedError(VERR_NOT_FOUND, fFatal, - "supR3HardenedVerifyProgram: Couldn't find the DLL entry for \"%s\"\n", pszProgName); + if (RT_SUCCESS(rc)) + { + if (!fDll && !fExe) + rc = supR3HardenedError(VERR_NOT_FOUND, fFatal, + "supR3HardenedVerifyProgram: Couldn't find the program \"%s\"\n", pszProgName); + else if (!fExe) + rc = supR3HardenedError(VERR_NOT_FOUND, fFatal, + "supR3HardenedVerifyProgram: Couldn't find the EXE entry for \"%s\"\n", pszProgName); + else if (!fDll) + rc = supR3HardenedError(VERR_NOT_FOUND, fFatal, + "supR3HardenedVerifyProgram: Couldn't find the DLL entry for \"%s\"\n", pszProgName); + } return rc; } /** - * Verifies all the known files. + * Verifies all the known files (called from SUPR3HardenedMain). * * @returns VINF_SUCCESS on success. * On verification failure, an error code will be returned when fFatal is clear, @@ -727,34 +928,40 @@ * * @param fFatal Whether validation failures should be treated as * fatal (true) or not (false). - * @param fLeaveFilesOpen If set, all the verified files are left open. - * @param pszProgName Optional program name. This is used by SUPR3HardenedMain - * to verify that both the executable and corresponding + * @param pszProgName The program name. This is used to verify that + * both the executable and corresponding * DLL/DYLIB/SO are valid. */ -DECLHIDDEN(int) supR3HardenedVerifyAll(bool fFatal, bool fLeaveFilesOpen, const char *pszProgName) +DECLHIDDEN(int) supR3HardenedVerifyAll(bool fFatal, const char *pszProgName) { /* + * On windows + */ +#if defined(RT_OS_WINDOWS) + bool fLeaveOpen = true; +#else + bool fLeaveOpen = false; +#endif + + /* * The verify all the files. */ int rc = VINF_SUCCESS; for (unsigned iFile = 0; iFile < RT_ELEMENTS(g_aSupInstallFiles); iFile++) { - int rc2 = supR3HardenedVerifyFileInternal(iFile, fFatal, fLeaveFilesOpen); + int rc2 = supR3HardenedVerifyFileInternal(iFile, fFatal, fLeaveOpen, true /* fVerifyAll */); if (RT_FAILURE(rc2) && RT_SUCCESS(rc)) rc = rc2; } /* - * Verify the program name if specified, that is to say, just check that - * it's in the table (=> we've already verified it). - */ - if (pszProgName) - { - int rc2 = supR3HardenedVerifyProgram(pszProgName, fFatal); - if (RT_FAILURE(rc2) && RT_SUCCESS(rc)) - rc2 = rc; - } + * Verify the program name, that is to say, check that it's in the table + * (thus verified above) and verify the signature on platforms where we + * sign things. + */ + int rc2 = supR3HardenedVerifyProgram(pszProgName, fFatal, fLeaveOpen); + if (RT_FAILURE(rc2) && RT_SUCCESS(rc)) + rc2 = rc; return rc; } @@ -781,10 +988,10 @@ while (cMsgs-- > 0 && cbErr > 0) { const char *pszMsg = va_arg(va, const char *); - size_t cchMsg = VALID_PTR(pszMsg) ? strlen(pszMsg) : 0; + size_t cchMsg = VALID_PTR(pszMsg) ? suplibHardenedStrLen(pszMsg) : 0; if (cchMsg >= cbErr) cchMsg = cbErr - 1; - memcpy(pszErr, pszMsg, cchMsg); + suplibHardenedMemCopy(pszErr, pszMsg, cchMsg); pszErr[cchMsg] = '\0'; pszErr += cchMsg; cbErr -= cchMsg; @@ -898,7 +1105,7 @@ * Check that it's an absolute path and copy the volume/root specifier. */ #if defined(RT_OS_WINDOWS) || defined(RT_OS_OS2) - if ( RT_C_IS_ALPHA(pszSrc[0]) + if ( !RT_C_IS_ALPHA(pszSrc[0]) || pszSrc[1] != ':' || !RTPATH_IS_SLASH(pszSrc[2])) return supR3HardenedSetError3(VERR_SUPLIB_PATH_NOT_ABSOLUTE, pErrInfo, "The path is not absolute: '", pszPath, "'"); @@ -1192,7 +1399,7 @@ full access. So, to work around we relax the hardening a bit and permit grand parents and beyond to be group writable by admin. */ /** @todo dynamically resolve the admin group? */ - bool fBad = !fRelaxed || pFsObjState->Stat.st_gid != 80 /*admin*/ || strcmp(pszPath, "/Applications"); + bool fBad = !fRelaxed || pFsObjState->Stat.st_gid != 80 /*admin*/ || suplibHardenedStrCmp(pszPath, "/Applications"); #elif defined(RT_OS_FREEBSD) /* HACK ALERT: PC-BSD 9 has group-writable /usr/pib directory which is @@ -1200,7 +1407,7 @@ On FreeBSD root is normally the only member of this group, on PC-BSD the default user is a member. */ /** @todo dynamically resolve the operator group? */ - bool fBad = !fRelaxed || pFsObjState->Stat.st_gid != 5 /*operator*/ || strcmp(pszPath, "/usr/pbi"); + bool fBad = !fRelaxed || pFsObjState->Stat.st_gid != 5 /*operator*/ || suplibHardenedStrCmp(pszPath, "/usr/pbi"); NOREF(fRelaxed); #else NOREF(fRelaxed); @@ -1208,7 +1415,8 @@ #endif if (fBad) return supR3HardenedSetError3(VERR_SUPLIB_WRITE_NON_SYS_GROUP, pErrInfo, - "The group is not a system group and it has write access to '", pszPath, "'"); + "An unknown (and thus untrusted) group has write access to '", pszPath, + "' and we therefore cannot trust the directory content or that of any subdirectory"); } /* @@ -1332,14 +1540,14 @@ * Check the length and copy it into the path buffer so it can be * stat()'ed. */ - size_t cchName = strlen(pEntry->d_name); + size_t cchName = suplibHardenedStrLen(pEntry->d_name); if (cchName + cchDirPath > SUPR3HARDENED_MAX_PATH) { rc = supR3HardenedSetErrorN(VERR_SUPLIB_PATH_TOO_LONG, pErrInfo, 4, "Path grew too long during recursion: '", pszDirPath, pEntry->d_name, "'"); break; } - memcpy(&pszDirPath[cchName], pEntry->d_name, cchName + 1); + suplibHardenedMemCopy(&pszDirPath[cchName], pEntry->d_name, cchName + 1); /* * Query the information about the entry and verify it. @@ -1359,8 +1567,8 @@ */ if ( fRecursive && S_ISDIR(pFsObjState->Stat.st_mode) - && strcmp(pEntry->d_name, ".") - && strcmp(pEntry->d_name, "..")) + && suplibHardenedStrCmp(pEntry->d_name, ".") + && suplibHardenedStrCmp(pEntry->d_name, "..")) { pszDirPath[cchDirPath + cchName] = RTPATH_SLASH; pszDirPath[cchDirPath + cchName + 1] = '\0'; @@ -1437,10 +1645,14 @@ * @param hNativeFile Handle to the file, verify that it's the same * as we ended up with when verifying the path. * RTHCUINTPTR_MAX means NIL here. + * @param fMaybe3rdParty Set if the file is could be a supplied by a + * third party. Different validation rules may + * apply to 3rd party code on some platforms. * @param pErrInfo Where to return extended error information. * Optional. */ -DECLHIDDEN(int) supR3HardenedVerifyFile(const char *pszFilename, RTHCUINTPTR hNativeFile, PRTERRINFO pErrInfo) +DECLHIDDEN(int) supR3HardenedVerifyFile(const char *pszFilename, RTHCUINTPTR hNativeFile, + bool fMaybe3rdParty, PRTERRINFO pErrInfo) { /* * Validate the input path and parse it. @@ -1472,10 +1684,67 @@ } /* - * Verify the file. + * Verify the file handle against the last component, if specified. */ if (hNativeFile != RTHCUINTPTR_MAX) - return supR3HardenedVerifySameFsObject(hNativeFile, &FsObjState, Info.szPath, pErrInfo); + { + rc = supR3HardenedVerifySameFsObject(hNativeFile, &FsObjState, Info.szPath, pErrInfo); + if (RT_FAILURE(rc)) + return rc; + } + +#ifdef RT_OS_WINDOWS + /* + * The files shall be signed on windows, verify that. + */ + rc = VINF_SUCCESS; + HANDLE hVerify; + if (hNativeFile == RTHCUINTPTR_MAX) + { + PRTUTF16 pwszPath; + rc = RTStrToUtf16(pszFilename, &pwszPath); + if (RT_SUCCESS(rc)) + { + hVerify = CreateFileW(pwszPath, GENERIC_READ, FILE_SHARE_READ, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL); + RTUtf16Free(pwszPath); + } + else + rc = RTErrInfoSetF(pErrInfo, rc, "Error converting '%s' to UTF-16: %Rrc", pszFilename, rc); + } + else + { + NTSTATUS rcNt = NtDuplicateObject(NtCurrentProcess(), (HANDLE)hNativeFile, NtCurrentProcess(), &hVerify, + GENERIC_READ, 0 /*HandleAttributes*/, 0 /*Options*/); + if (!NT_SUCCESS(rcNt)) + hVerify = INVALID_HANDLE_VALUE; + } + if (hVerify != INVALID_HANDLE_VALUE) + { +# ifdef VBOX_WITH_HARDENING + uint32_t fFlags = SUPHNTVI_F_REQUIRE_KERNEL_CODE_SIGNING; + if (!fMaybe3rdParty) + fFlags = SUPHNTVI_F_REQUIRE_BUILD_CERT; + const char *pszSuffix = RTPathExt(pszFilename); + if ( pszSuffix + && pszSuffix[0] == '.' + && ( RT_C_TO_LOWER(pszSuffix[1]) == 'r' + || RT_C_TO_LOWER(pszSuffix[1]) == 'g') + && RT_C_TO_LOWER(pszSuffix[2]) == 'c' + && pszSuffix[3] == '\0' ) + fFlags |= SUPHNTVI_F_RC_IMAGE; +# ifndef IN_SUP_R3_STATIC /* Not in VBoxCpuReport and friends. */ + rc = supHardenedWinVerifyImageByHandleNoName(hVerify, fFlags, pErrInfo); +# endif +# endif + NtClose(hVerify); + } + else if (RT_SUCCESS(rc)) + rc = RTErrInfoSetF(pErrInfo, RTErrConvertFromWin32(RtlGetLastWin32Error()), + "Error %u trying to open (or duplicate handle for) '%s'", RtlGetLastWin32Error(), pszFilename); + if (RT_FAILURE(rc)) + return rc; +#endif + return VINF_SUCCESS; } @@ -1524,7 +1793,7 @@ if ( g_aSupInstallFiles[iFile].enmDir != paInstallFiles[iFile].enmDir || g_aSupInstallFiles[iFile].enmType != paInstallFiles[iFile].enmType || g_aSupInstallFiles[iFile].fOptional != paInstallFiles[iFile].fOptional - || strcmp(g_aSupInstallFiles[iFile].pszFile, paInstallFiles[iFile].pszFile)) + || suplibHardenedStrCmp(g_aSupInstallFiles[iFile].pszFile, paInstallFiles[iFile].pszFile)) return VERR_VERSION_MISMATCH; /* @@ -1538,7 +1807,7 @@ /* * Copy the verification data over. */ - memcpy(&g_aSupVerifiedFiles[0], pPreInitData->paVerifiedFiles, sizeof(g_aSupVerifiedFiles)); - memcpy(&g_aSupVerifiedDirs[0], pPreInitData->paVerifiedDirs, sizeof(g_aSupVerifiedDirs)); + suplibHardenedMemCopy(&g_aSupVerifiedFiles[0], pPreInitData->paVerifiedFiles, sizeof(g_aSupVerifiedFiles)); + suplibHardenedMemCopy(&g_aSupVerifiedDirs[0], pPreInitData->paVerifiedDirs, sizeof(g_aSupVerifiedDirs)); return VINF_SUCCESS; } diff -Nru virtualbox-4.1.12-dfsg/src/VBox/HostDrivers/Support/testcase/Makefile.kmk virtualbox-4.1.44-dfsg/src/VBox/HostDrivers/Support/testcase/Makefile.kmk --- virtualbox-4.1.12-dfsg/src/VBox/HostDrivers/Support/testcase/Makefile.kmk 2012-04-02 13:28:47.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/HostDrivers/Support/testcase/Makefile.kmk 2015-11-11 15:08:41.000000000 +0000 @@ -4,7 +4,7 @@ # # -# Copyright (C) 2006-2009 Oracle Corporation +# Copyright (C) 2006-2014 Oracle Corporation # # This file is part of VirtualBox Open Source Edition (OSE), as # available from http://www.virtualbox.org. This file is free software; @@ -32,6 +32,7 @@ SUPUninstall \ SUPLoggerCtl ifdef VBOX_WITH_TESTCASES + if !defined(VBOX_WITH_HARDENING) || "$(KBUILD_TARGET)" != "win" PROGRAMS += \ tstPage \ tstContiguous \ @@ -44,6 +45,9 @@ tstSupLoadModule \ tstSupSem \ tstSupSem-Zombie + endif +PROGRAMS.win += \ + tstNtQueryStuff endif # VBOX_WITH_TESTCASES SUPInstall_TEMPLATE = VBOXR3EXE @@ -71,6 +75,10 @@ tstLow_TEMPLATE = VBOXR3TSTEXE tstLow_SOURCES = tstLow.cpp +tstNtQueryStuff_TEMPLATE = VBOXR3TSTEXE +tstNtQueryStuff_SDKS = VBOX_NTDLL +tstNtQueryStuff_SOURCES = tstNtQueryStuff.cpp + tstPin_TEMPLATE = VBOXR3TSTEXE tstPin_SOURCES = tstPin.cpp diff -Nru virtualbox-4.1.12-dfsg/src/VBox/HostDrivers/Support/testcase/SUPInstall.cpp virtualbox-4.1.44-dfsg/src/VBox/HostDrivers/Support/testcase/SUPInstall.cpp --- virtualbox-4.1.12-dfsg/src/VBox/HostDrivers/Support/testcase/SUPInstall.cpp 2012-04-02 13:28:47.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/HostDrivers/Support/testcase/SUPInstall.cpp 2015-11-11 15:08:41.000000000 +0000 @@ -31,7 +31,7 @@ #include #include #include -#include +#include int main(int argc, char **argv) @@ -40,10 +40,17 @@ int rc = SUPR3Install(); if (RT_SUCCESS(rc)) { - RTPrintf("installed successfully\n"); - return 0; + if (rc == VINF_SUCCESS) + RTMsgInfo("Installed successfully!"); + else if (rc == VINF_ALREADY_INITIALIZED) + RTMsgInfo("Already loaded."); + else if (rc == VWRN_ALREADY_EXISTS) + RTMsgInfo("Service already existed; started successfully."); + else + RTMsgInfo("Unexpected status: %Rrc", rc); + return RTEXITCODE_SUCCESS; } - RTPrintf("installation failed. rc=%Rrc\n", rc); + RTMsgError("installation failed. rc=%Rrc\n", rc); return 1; } diff -Nru virtualbox-4.1.12-dfsg/src/VBox/HostDrivers/Support/testcase/tstNtQueryStuff.cpp virtualbox-4.1.44-dfsg/src/VBox/HostDrivers/Support/testcase/tstNtQueryStuff.cpp --- virtualbox-4.1.12-dfsg/src/VBox/HostDrivers/Support/testcase/tstNtQueryStuff.cpp 1970-01-01 00:00:00.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/HostDrivers/Support/testcase/tstNtQueryStuff.cpp 2015-11-11 15:08:41.000000000 +0000 @@ -0,0 +1,430 @@ +/* $Id: tstNtQueryStuff.cpp $ */ +/** @file + * SUP Testcase - Exploring some NT Query APIs. + */ + +/* + * Copyright (C) 2006-2014 Oracle Corporation + * + * This file is part of VirtualBox Open Source Edition (OSE), as + * available from http://www.virtualbox.org. This file is free software; + * you can redistribute it and/or modify it under the terms of the GNU + * General Public License (GPL) as published by the Free Software + * Foundation, in version 2 as it comes in the "COPYING" file of the + * VirtualBox OSE distribution. VirtualBox OSE is distributed in the + * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind. + * + * The contents of this file may alternatively be used under the terms + * of the Common Development and Distribution License Version 1.0 + * (CDDL) only, as it comes in the "COPYING.CDDL" file of the + * VirtualBox OSE distribution, in which case the provisions of the + * CDDL are applicable instead of those of the GPL. + * + * You may elect to license modified versions of this file under the + * terms and conditions of either the GPL or the CDDL or both. + */ + + +/******************************************************************************* +* Header Files * +*******************************************************************************/ +#include +#include +#include + + +/******************************************************************************* +* Structures and Typedefs * +*******************************************************************************/ +typedef struct FLAGDESC +{ + ULONG f; + const char *psz; +} FLAGDESC; +typedef const FLAGDESC *PCFLAGDESC; + + + +/******************************************************************************* +* Global Variables * +*******************************************************************************/ +static RTTEST g_hTest = NIL_RTTEST; +static HANDLE g_hProcess = NULL; + + +static char *stringifyAppend(char *pszBuf, size_t *pcbBuf, const char *pszAppend, bool fWithSpace) +{ + size_t cchAppend = strlen(pszAppend); + if (cchAppend + 1 + fWithSpace <= *pcbBuf) + { + if (fWithSpace) + { + *pszBuf++ = ' '; + *pcbBuf += 1; + } + memcpy(pszBuf, pszAppend, cchAppend + 1); + *pcbBuf -= cchAppend; + pszBuf += cchAppend; + } + + return pszBuf; +} + + +static char *stringifyAppendUnknownFlags(uint32_t fFlags, char *pszBuf, size_t *pcbBuf, bool fWithSpace) +{ + for (unsigned iBit = 0; iBit < 32; iBit++) + if (fFlags & RT_BIT_32(iBit)) + { + char szTmp[32]; /* lazy bird */ + RTStrPrintf(szTmp, sizeof(szTmp), "BIT(%d)", iBit); + pszBuf = stringifyAppend(pszBuf, pcbBuf, szTmp, fWithSpace); + fWithSpace = true; + } + + return pszBuf; +} + + +static char *stringifyFlags(uint32_t fFlags, char *pszBuf, size_t cbBuf, PCFLAGDESC paFlagDesc, size_t cFlagDesc) +{ + char *pszBufStart = pszBuf; + if (fFlags) + { + for (size_t i = 0; i < cFlagDesc; i++) + { + if (fFlags & paFlagDesc[i].f) + { + fFlags &= ~paFlagDesc[i].f; + pszBuf = stringifyAppend(pszBuf, &cbBuf, paFlagDesc[i].psz, pszBuf != pszBufStart); + } + } + + if (fFlags) + stringifyAppendUnknownFlags(fFlags, pszBuf, &cbBuf, pszBuf != pszBufStart); + } + else + { + pszBuf[0] = '0'; + pszBuf[1] = '\0'; + } + return pszBufStart; +} + + +static char *stringifyMemType(uint32_t fType, char *pszBuf, size_t cbBuf) +{ + static const FLAGDESC s_aMemTypes[] = + { + { MEM_PRIVATE, "PRIVATE" }, + { MEM_MAPPED, "MAPPED" }, + { MEM_IMAGE, "IMAGE" }, + }; + return stringifyFlags(fType, pszBuf, cbBuf, s_aMemTypes, RT_ELEMENTS(s_aMemTypes)); +} + + +static char *stringifyMemState(uint32_t fState, char *pszBuf, size_t cbBuf) +{ + static const FLAGDESC s_aMemStates[] = + { + { MEM_FREE, "FREE" }, + { MEM_COMMIT, "COMMIT" }, + { MEM_RESERVE, "RESERVE" }, + { MEM_DECOMMIT, "DECOMMMIT" }, + }; + return stringifyFlags(fState, pszBuf, cbBuf, s_aMemStates, RT_ELEMENTS(s_aMemStates)); +} + + +static char *stringifyMemProt(uint32_t fProt, char *pszBuf, size_t cbBuf) +{ + static const FLAGDESC s_aProtections[] = + { + { PAGE_NOACCESS, "NOACCESS" }, + { PAGE_READONLY, "READONLY" }, + { PAGE_READWRITE, "READWRITE" }, + { PAGE_WRITECOPY, "WRITECOPY" }, + { PAGE_EXECUTE, "EXECUTE" }, + { PAGE_EXECUTE_READ, "EXECUTE_READ" }, + { PAGE_EXECUTE_READWRITE, "EXECUTE_READWRITE" }, + { PAGE_EXECUTE_WRITECOPY, "EXECUTE_WRITECOPY" }, + { PAGE_GUARD, "GUARD" }, + { PAGE_NOCACHE, "NOCACHE" }, + { PAGE_WRITECOMBINE, "WRITECOMBINE" }, + + }; + return stringifyFlags(fProt, pszBuf, cbBuf, s_aProtections, RT_ELEMENTS(s_aProtections)); +} + + + +static void tstQueryVirtualMemory(void) +{ + RTTestISub("NtQueryVirtualMemory"); + + uintptr_t cbAdvance = 0; + uintptr_t uPtrWhere = 0; + for (;;) + { + SIZE_T cbActual = 0; + MEMORY_BASIC_INFORMATION MemInfo = { 0, 0, 0, 0, 0, 0, 0 }; + NTSTATUS rcNt = NtQueryVirtualMemory(g_hProcess, + (void const *)uPtrWhere, + MemoryBasicInformation, + &MemInfo, + sizeof(MemInfo), + &cbActual); + if (!NT_SUCCESS(rcNt)) + { + RTTestIPrintf(RTTESTLVL_ALWAYS, "%p: rcNt=%#x\n", uPtrWhere, rcNt); + break; + } + + /* stringify the memory state. */ + char szMemType[1024]; + char szMemState[1024]; + char szMemProt[1024]; + char szAllocProt[1024]; + + if ( MemInfo.AllocationBase != NULL + && MemInfo.AllocationBase == MemInfo.BaseAddress + && MemInfo.Protect != MemInfo.AllocationProtect) + RTTestIPrintf(RTTESTLVL_ALWAYS, "\n"); + + RTTestIPrintf(RTTESTLVL_ALWAYS, "%p-%p %-8s %-8s %-12s", + MemInfo.BaseAddress, (uintptr_t)MemInfo.BaseAddress + MemInfo.RegionSize - 1, + stringifyMemType(MemInfo.Type, szMemType, sizeof(szMemType)), + stringifyMemState(MemInfo.State, szMemState, sizeof(szMemState)), + stringifyMemProt(MemInfo.Protect, szMemProt, sizeof(szMemProt)) + ); + if ((uintptr_t)MemInfo.AllocationBase != 0) + { + if (MemInfo.AllocationBase != MemInfo.BaseAddress) + RTTestIPrintf(RTTESTLVL_ALWAYS, " %p", MemInfo.AllocationBase); + else + RTTestIPrintf(RTTESTLVL_ALWAYS, " %s", stringifyMemProt(MemInfo.AllocationProtect, szAllocProt, sizeof(szAllocProt))); + } + RTTestIPrintf(RTTESTLVL_ALWAYS, "\n"); + + if ((uintptr_t)MemInfo.BaseAddress != uPtrWhere) + RTTestIPrintf(RTTESTLVL_ALWAYS, " !Warning! Queried %p got BaseAddress=%p!\n", + uPtrWhere, MemInfo.BaseAddress); + + /* Image or mapped, then try get a file name. */ + if (MemInfo.Type == MEM_IMAGE || MemInfo.Type == MEM_MAPPED) + { + union + { + MEMORY_SECTION_NAME Core; + WCHAR awcPadding[UNICODE_STRING_MAX_CHARS + (sizeof(UNICODE_STRING_MAX_CHARS) + 1) / sizeof(WCHAR)]; + } uBuf; + RT_ZERO(uBuf); + uBuf.Core.SectionFileName.Length = UNICODE_STRING_MAX_CHARS * 2; + uBuf.Core.SectionFileName.MaximumLength = UNICODE_STRING_MAX_CHARS * 2; + uBuf.Core.SectionFileName.Buffer = &uBuf.Core.NameBuffer[0]; + + cbActual = 0; + rcNt = NtQueryVirtualMemory(g_hProcess, + (void const *)uPtrWhere, + MemorySectionName, + &uBuf, + sizeof(uBuf), + &cbActual); + if (NT_SUCCESS(rcNt)) + RTTestIPrintf(RTTESTLVL_ALWAYS, " %.*ls\n", + uBuf.Core.SectionFileName.Length / 2, uBuf.Core.SectionFileName.Buffer); + else + { + RTTestIPrintf(RTTESTLVL_ALWAYS, "%p: MemorySectionName - rcNt=%#x\n", uPtrWhere, rcNt); + RTTESTI_CHECK(rcNt == STATUS_FILE_INVALID && MemInfo.Type == MEM_MAPPED); + } + } + + /* Advance. */ + cbAdvance = MemInfo.RegionSize; + //cbAdvance = 0; + if (uPtrWhere + cbAdvance <= uPtrWhere) + break; + uPtrWhere += MemInfo.RegionSize; + } +} + + +static void tstQueryInformationProcess(void) +{ + RTTestISub("NtQueryInformationProcess"); + + NTSTATUS rcNt; + + /* Basic info */ + PROCESS_BASIC_INFORMATION BasicInfo; + RT_ZERO(BasicInfo); + DWORD cbActual = 0; + rcNt = NtQueryInformationProcess(g_hProcess, + ProcessBasicInformation, + &BasicInfo, sizeof(BasicInfo), &cbActual); + RTTESTI_CHECK_MSG(NT_SUCCESS(rcNt), ("rcNt=%#x\n", rcNt)); + if (NT_SUCCESS(rcNt)) + RTTestIPrintf(RTTESTLVL_ALWAYS, "BasicInfo:\n" + " UniqueProcessId = %#x (%6d)\n" + " InheritedFromUniqueProcessId = %#x (%6d)\n" + " ExitStatus = %#x\n" + " PebBaseAddress = %p\n" + " AffinityMask = %#zx\n" + " BasePriority = %#zx\n" + , + BasicInfo.UniqueProcessId, BasicInfo.UniqueProcessId, + BasicInfo.InheritedFromUniqueProcessId, BasicInfo.InheritedFromUniqueProcessId, + BasicInfo.ExitStatus, + BasicInfo.PebBaseAddress, + BasicInfo.AffinityMask, + BasicInfo.BasePriority + ); + + /* Debugger present? */ + DWORD_PTR uPtr = ~(DWORD_PTR)0; + cbActual = 0; + rcNt = NtQueryInformationProcess(g_hProcess, + ProcessDebugPort, + &uPtr, sizeof(uPtr), &cbActual); + RTTESTI_CHECK_MSG(NT_SUCCESS(rcNt), ("rcNt=%#x\n", rcNt)); + if (NT_SUCCESS(rcNt)) + RTTestIPrintf(RTTESTLVL_ALWAYS, "ProcessDebugPort: %p\n", uPtr); + + /* Debug object handle, whatever that is... */ + uPtr = ~(DWORD_PTR)0; + cbActual = 0; + rcNt = NtQueryInformationProcess(g_hProcess, + ProcessDebugObjectHandle, + &uPtr, sizeof(uPtr), &cbActual); + if (NT_SUCCESS(rcNt)) + RTTestIPrintf(RTTESTLVL_ALWAYS, "ProcessDebugObjectHandle: %p\n", uPtr); + else if (rcNt == STATUS_PORT_NOT_SET) + RTTestIPrintf(RTTESTLVL_ALWAYS, "ProcessDebugObjectHandle: rcNt=%#x (STATUS_PORT_NOT_SET)\n", uPtr); + else + RTTESTI_CHECK_MSG(NT_SUCCESS(rcNt), ("rcNt=%#x\n", rcNt)); + + /* 32-bit app on 64-bit host? */ + uPtr = ~(DWORD_PTR)0; + cbActual = 0; + rcNt = NtQueryInformationProcess(g_hProcess, + ProcessWow64Information, + &uPtr, sizeof(uPtr), &cbActual); + RTTESTI_CHECK_MSG(NT_SUCCESS(rcNt), ("rcNt=%#x\n", rcNt)); + if (NT_SUCCESS(rcNt)) + RTTestIPrintf(RTTESTLVL_ALWAYS, "ProcessWow64Information: %p\n", uPtr); + + /* Process image name (NT). */ + struct + { + UNICODE_STRING UniStr; + WCHAR awBuffer[UNICODE_STRING_MAX_CHARS]; + } StrBuf; + RT_ZERO(StrBuf); + StrBuf.UniStr.Length = UNICODE_STRING_MAX_CHARS * 2; + StrBuf.UniStr.MaximumLength = UNICODE_STRING_MAX_CHARS * 2; + StrBuf.UniStr.Buffer = &StrBuf.awBuffer[0]; + cbActual = 0; + rcNt = NtQueryInformationProcess(g_hProcess, + ProcessImageFileName, + &StrBuf, sizeof(StrBuf), &cbActual); + RTTESTI_CHECK_MSG(NT_SUCCESS(rcNt), ("rcNt=%#x\n", rcNt)); + if (NT_SUCCESS(rcNt)) + RTTestIPrintf(RTTESTLVL_ALWAYS, "ProcessImageFileName: len=%u\n %.*ls\n", + StrBuf.UniStr.Length, StrBuf.UniStr.Length, StrBuf.UniStr.Buffer); + + /* Process image name (Win32) - Not available on Windows 2003. */ + RT_ZERO(StrBuf); + StrBuf.UniStr.Length = UNICODE_STRING_MAX_CHARS * 2; + StrBuf.UniStr.MaximumLength = UNICODE_STRING_MAX_CHARS * 2; + StrBuf.UniStr.Buffer = &StrBuf.awBuffer[0]; + cbActual = 0; + rcNt = NtQueryInformationProcess(g_hProcess, + ProcessImageFileNameWin32, + &StrBuf, sizeof(StrBuf), &cbActual); + if (rcNt != STATUS_INVALID_INFO_CLASS) + { + RTTESTI_CHECK_MSG(NT_SUCCESS(rcNt), ("rcNt=%#x\n", rcNt)); + if (NT_SUCCESS(rcNt)) + RTTestIPrintf(RTTESTLVL_ALWAYS, "ProcessImageFileNameWin32: len=%u\n %.*ls\n", + StrBuf.UniStr.Length, StrBuf.UniStr.Length, StrBuf.UniStr.Buffer); + } + else + RTTestIPrintf(RTTESTLVL_ALWAYS, "ProcessImageFileNameWin32: Not supported (STATUS_INVALID_INFO_CLASS).\n"); + + /* Process image mapping - Not available on Windows 2003. */ + uPtr = ~(DWORD_PTR)0; + cbActual = 0; + rcNt = NtQueryInformationProcess(g_hProcess, + ProcessImageFileMapping, + &uPtr, sizeof(uPtr), &cbActual); + if (NT_SUCCESS(rcNt)) + RTTestIPrintf(RTTESTLVL_ALWAYS, "ProcessImageFileMapping: %p\n", uPtr); + else if (rcNt == STATUS_OBJECT_TYPE_MISMATCH) + RTTestIPrintf(RTTESTLVL_ALWAYS, "ProcessImageFileMapping: rcNt=%#x (STATUS_OBJECT_TYPE_MISMATCH)\n", rcNt); + else if (rcNt == STATUS_INVALID_INFO_CLASS) + RTTestIPrintf(RTTESTLVL_ALWAYS, "ProcessImageFileMapping: Not supported (STATUS_INVALID_INFO_CLASS).\n"); + else + RTTestIFailed("ProcessImageFileMapping: rcNt=%#x\n", rcNt); + + + /* Handles. Broken for 64-bit input. */ + uint32_t u32 = UINT32_MAX; + cbActual = 0; + rcNt = NtQueryInformationProcess(g_hProcess, + ProcessHandleCount, + &u32, sizeof(u32), &cbActual); + if (NT_SUCCESS(rcNt)) + RTTestIPrintf(RTTESTLVL_ALWAYS, "ProcessHandleCount: %#x (%d)\n", u32, u32); + else + RTTestIFailed("ProcessHandleCount: rcNt=%#x\n", rcNt); + + /* Execute flags. */ +#if 0 /* fails... wrong process handle? */ + u32 = ~(DWORD_PTR)0; + cbActual = 0; + rcNt = NtQueryInformationProcess(g_hProcess, + ProcessExecuteFlags, + &u32, sizeof(u32), &cbActual); + if (NT_SUCCESS(rcNt)) + RTTestIPrintf(RTTESTLVL_ALWAYS, "ProcessExecuteFlags: %#p\n", u32); + else + RTTestIFailed("ProcessExecuteFlags: rcNt=%#x\n", rcNt); +#endif + + /** @todo ProcessImageInformation */ +} + + +int main(int argc, char **argv) +{ + RTEXITCODE rcExit = RTTestInitAndCreate("tstNtQueryStuff", &g_hTest); + if (rcExit != RTEXITCODE_SUCCESS) + return rcExit; + RTTestBanner(g_hTest); + + g_hProcess = GetCurrentProcess(); + if (argc >= 2 && argv[1][0] != '-') + { + const char *pszPid = argv[1]; + uint32_t idPid = RTStrToInt32(pszPid); + + uint32_t fAccess = PROCESS_QUERY_INFORMATION; + if (argc >= 3) + fAccess = RTStrToInt32(argv[2]); + + g_hProcess = OpenProcess(fAccess, FALSE, idPid); + if (g_hProcess == NULL) + { + RTTestIFailed("Error %u opening process %u (%s)\n", GetLastError(), idPid, pszPid); + return RTTestSummaryAndDestroy(g_hTest); + } + } + + tstQueryVirtualMemory(); + tstQueryInformationProcess(); + + return RTTestSummaryAndDestroy(g_hTest); +} + Binary files /tmp/_RuVdsxfi6/virtualbox-4.1.12-dfsg/src/VBox/HostDrivers/Support/win/Certificates/NtRoot-MicrosoftCodeVerificationRoot-729404101f3e0ca347837fca175a8438.taf and /tmp/SOL6sj7OaT/virtualbox-4.1.44-dfsg/src/VBox/HostDrivers/Support/win/Certificates/NtRoot-MicrosoftCodeVerificationRoot-729404101f3e0ca347837fca175a8438.taf differ Binary files /tmp/_RuVdsxfi6/virtualbox-4.1.12-dfsg/src/VBox/HostDrivers/Support/win/Certificates/SpcRoot-MicrosoftAuthenticodeTmRootAuthority-01.taf and /tmp/SOL6sj7OaT/virtualbox-4.1.44-dfsg/src/VBox/HostDrivers/Support/win/Certificates/SpcRoot-MicrosoftAuthenticodeTmRootAuthority-01.taf differ Binary files /tmp/_RuVdsxfi6/virtualbox-4.1.12-dfsg/src/VBox/HostDrivers/Support/win/Certificates/SpcRoot-MicrosoftDevelopmentRootCertificateAuthority2014-078f0a9d03df119e434e4fec1bf0235a.taf and /tmp/SOL6sj7OaT/virtualbox-4.1.44-dfsg/src/VBox/HostDrivers/Support/win/Certificates/SpcRoot-MicrosoftDevelopmentRootCertificateAuthority2014-078f0a9d03df119e434e4fec1bf0235a.taf differ Binary files /tmp/_RuVdsxfi6/virtualbox-4.1.12-dfsg/src/VBox/HostDrivers/Support/win/Certificates/SpcRoot-MicrosoftDigitalMediaAuthority2005-6eff330eb6e7569740680870104baaba.taf and /tmp/SOL6sj7OaT/virtualbox-4.1.44-dfsg/src/VBox/HostDrivers/Support/win/Certificates/SpcRoot-MicrosoftDigitalMediaAuthority2005-6eff330eb6e7569740680870104baaba.taf differ Binary files /tmp/_RuVdsxfi6/virtualbox-4.1.12-dfsg/src/VBox/HostDrivers/Support/win/Certificates/SpcRoot-MicrosoftRootAuthority-00c1008b3c3c8811d13ef663ecdf40.taf and /tmp/SOL6sj7OaT/virtualbox-4.1.44-dfsg/src/VBox/HostDrivers/Support/win/Certificates/SpcRoot-MicrosoftRootAuthority-00c1008b3c3c8811d13ef663ecdf40.taf differ Binary files /tmp/_RuVdsxfi6/virtualbox-4.1.12-dfsg/src/VBox/HostDrivers/Support/win/Certificates/SpcRoot-MicrosoftRootCertificateAuthority2010-28cc3a25bfba44ac449a9b586b4339aa.taf and /tmp/SOL6sj7OaT/virtualbox-4.1.44-dfsg/src/VBox/HostDrivers/Support/win/Certificates/SpcRoot-MicrosoftRootCertificateAuthority2010-28cc3a25bfba44ac449a9b586b4339aa.taf differ Binary files /tmp/_RuVdsxfi6/virtualbox-4.1.12-dfsg/src/VBox/HostDrivers/Support/win/Certificates/SpcRoot-MicrosoftRootCertificateAuthority2011-3f8bc8b5fc9fb29643b569d66c42e144.taf and /tmp/SOL6sj7OaT/virtualbox-4.1.44-dfsg/src/VBox/HostDrivers/Support/win/Certificates/SpcRoot-MicrosoftRootCertificateAuthority2011-3f8bc8b5fc9fb29643b569d66c42e144.taf differ Binary files /tmp/_RuVdsxfi6/virtualbox-4.1.12-dfsg/src/VBox/HostDrivers/Support/win/Certificates/SpcRoot-MicrosoftRootCertificateAuthority-79ad16a14aa0a5ad4c7358f407132e65.taf and /tmp/SOL6sj7OaT/virtualbox-4.1.44-dfsg/src/VBox/HostDrivers/Support/win/Certificates/SpcRoot-MicrosoftRootCertificateAuthority-79ad16a14aa0a5ad4c7358f407132e65.taf differ Binary files /tmp/_RuVdsxfi6/virtualbox-4.1.12-dfsg/src/VBox/HostDrivers/Support/win/Certificates/Timestamp-CopyrightC1997MicrosoftCorp-01.taf and /tmp/SOL6sj7OaT/virtualbox-4.1.44-dfsg/src/VBox/HostDrivers/Support/win/Certificates/Timestamp-CopyrightC1997MicrosoftCorp-01.taf differ Binary files /tmp/_RuVdsxfi6/virtualbox-4.1.12-dfsg/src/VBox/HostDrivers/Support/win/Certificates/Trusted-OracleCorporationVirtualBox-51ca009816fdbd80f120e015ee75823e.cer and /tmp/SOL6sj7OaT/virtualbox-4.1.44-dfsg/src/VBox/HostDrivers/Support/win/Certificates/Trusted-OracleCorporationVirtualBox-51ca009816fdbd80f120e015ee75823e.cer differ Binary files /tmp/_RuVdsxfi6/virtualbox-4.1.12-dfsg/src/VBox/HostDrivers/Support/win/Certificates/Trusted-OracleCorporationVirtualBox-51ca009816fdbd80f120e015ee75823e.taf and /tmp/SOL6sj7OaT/virtualbox-4.1.44-dfsg/src/VBox/HostDrivers/Support/win/Certificates/Trusted-OracleCorporationVirtualBox-51ca009816fdbd80f120e015ee75823e.taf differ diff -Nru virtualbox-4.1.12-dfsg/src/VBox/HostDrivers/Support/win/import-template-kernel32.h virtualbox-4.1.44-dfsg/src/VBox/HostDrivers/Support/win/import-template-kernel32.h --- virtualbox-4.1.12-dfsg/src/VBox/HostDrivers/Support/win/import-template-kernel32.h 1970-01-01 00:00:00.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/HostDrivers/Support/win/import-template-kernel32.h 2015-11-11 15:08:41.000000000 +0000 @@ -0,0 +1,21 @@ +SUPHARNT_IMPORT_STDCALL(CreateFileW, 28) +SUPHARNT_IMPORT_STDCALL(CreateProcessW, 40) +SUPHARNT_IMPORT_STDCALL(ExitProcess, 4) +SUPHARNT_IMPORT_STDCALL(GetFullPathNameA, 16) +SUPHARNT_IMPORT_STDCALL(GetFullPathNameW, 16) +SUPHARNT_IMPORT_STDCALL(GetCurrentDirectoryW, 8) +SUPHARNT_IMPORT_STDCALL(GetLongPathNameW, 12) +SUPHARNT_IMPORT_STDCALL(GetModuleFileNameW, 12) +SUPHARNT_IMPORT_STDCALL(GetModuleHandleA, 4) +SUPHARNT_IMPORT_STDCALL(GetModuleHandleW, 4) +SUPHARNT_IMPORT_STDCALL(GetProcAddress, 8) +SUPHARNT_IMPORT_STDCALL(GetProcessHeap, 0) +SUPHARNT_IMPORT_STDCALL(GetSystemDirectoryW, 8) +SUPHARNT_IMPORT_STDCALL(GetTickCount, 0) +SUPHARNT_IMPORT_STDCALL(LoadLibraryExW, 12) +SUPHARNT_IMPORT_STDCALL(OutputDebugStringA, 4) +SUPHARNT_IMPORT_STDCALL(TlsAlloc, 0) +SUPHARNT_IMPORT_STDCALL(TlsGetValue, 4) +SUPHARNT_IMPORT_STDCALL(TlsSetValue, 8) +SUPHARNT_IMPORT_STDCALL(WriteFile, 20) + diff -Nru virtualbox-4.1.12-dfsg/src/VBox/HostDrivers/Support/win/import-template-ntdll.h virtualbox-4.1.44-dfsg/src/VBox/HostDrivers/Support/win/import-template-ntdll.h --- virtualbox-4.1.12-dfsg/src/VBox/HostDrivers/Support/win/import-template-ntdll.h 1970-01-01 00:00:00.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/HostDrivers/Support/win/import-template-ntdll.h 2015-11-11 15:08:41.000000000 +0000 @@ -0,0 +1,97 @@ +SUPHARNT_IMPORT_SYSCALL(NtAllocateVirtualMemory, 24) +SUPHARNT_IMPORT_SYSCALL(NtClearEvent, 4) +SUPHARNT_IMPORT_SYSCALL(NtClose, 4) +SUPHARNT_IMPORT_SYSCALL(NtCreateEvent, 20) +SUPHARNT_IMPORT_SYSCALL(NtCreateFile, 44) +SUPHARNT_IMPORT_SYSCALL(NtCreateSymbolicLinkObject, 16) +SUPHARNT_IMPORT_SYSCALL(NtDelayExecution, 8) +SUPHARNT_IMPORT_SYSCALL(NtDeviceIoControlFile, 40) +SUPHARNT_IMPORT_SYSCALL(NtDuplicateObject, 28) +SUPHARNT_IMPORT_SYSCALL(NtFlushBuffersFile, 8) +SUPHARNT_IMPORT_SYSCALL(NtFreeVirtualMemory, 16) +SUPHARNT_IMPORT_SYSCALL(NtGetContextThread, 8) +SUPHARNT_IMPORT_SYSCALL(NtMapViewOfSection, 40) +SUPHARNT_IMPORT_SYSCALL(NtOpenDirectoryObject, 12) +SUPHARNT_IMPORT_SYSCALL(NtOpenEvent, 12) +SUPHARNT_IMPORT_SYSCALL(NtOpenKey, 12) +SUPHARNT_IMPORT_SYSCALL(NtOpenProcess, 16) +SUPHARNT_IMPORT_SYSCALL(NtOpenProcessToken, 12) +SUPHARNT_IMPORT_SYSCALL(NtOpenSymbolicLinkObject, 12) +SUPHARNT_IMPORT_SYSCALL(NtOpenThread, 16) +SUPHARNT_IMPORT_SYSCALL(NtOpenThreadToken, 16) +SUPHARNT_IMPORT_SYSCALL(NtProtectVirtualMemory, 20) +SUPHARNT_IMPORT_SYSCALL(NtQueryDirectoryFile, 44) +SUPHARNT_IMPORT_SYSCALL(NtQueryDirectoryObject, 28) +SUPHARNT_IMPORT_SYSCALL(NtQueryEvent, 20) +SUPHARNT_IMPORT_SYSCALL(NtQueryInformationFile, 20) +SUPHARNT_IMPORT_SYSCALL(NtQueryInformationProcess, 20) +SUPHARNT_IMPORT_SYSCALL(NtQueryInformationThread, 20) +SUPHARNT_IMPORT_SYSCALL(NtQueryInformationToken, 20) +SUPHARNT_IMPORT_SYSCALL(NtQueryObject, 20) +SUPHARNT_IMPORT_SYSCALL(NtQuerySecurityObject, 20) +SUPHARNT_IMPORT_SYSCALL(NtQuerySymbolicLinkObject, 12) +SUPHARNT_IMPORT_SYSCALL(NtQuerySystemInformation, 16) +SUPHARNT_IMPORT_SYSCALL(NtQueryTimerResolution, 12) +SUPHARNT_IMPORT_SYSCALL(NtQueryValueKey, 24) +SUPHARNT_IMPORT_SYSCALL(NtQueryVirtualMemory, 24) +SUPHARNT_IMPORT_SYSCALL(NtReadFile, 36) +SUPHARNT_IMPORT_SYSCALL(NtReadVirtualMemory, 20) +SUPHARNT_IMPORT_SYSCALL(NtResetEvent, 8) +SUPHARNT_IMPORT_SYSCALL(NtResumeProcess, 4) +SUPHARNT_IMPORT_SYSCALL(NtResumeThread, 8) +SUPHARNT_IMPORT_SYSCALL(NtSetContextThread, 8) +SUPHARNT_IMPORT_SYSCALL(NtSetEvent, 8) +SUPHARNT_IMPORT_SYSCALL(NtSetInformationFile, 20) +SUPHARNT_IMPORT_SYSCALL(NtSetInformationObject, 16) +SUPHARNT_IMPORT_SYSCALL(NtSetInformationProcess, 16) +SUPHARNT_IMPORT_SYSCALL(NtSetInformationThread, 16) +SUPHARNT_IMPORT_SYSCALL(NtSetTimerResolution, 12) +SUPHARNT_IMPORT_SYSCALL(NtSuspendProcess, 4) +SUPHARNT_IMPORT_SYSCALL(NtSuspendThread, 8) +SUPHARNT_IMPORT_SYSCALL(NtTerminateProcess, 8) +SUPHARNT_IMPORT_SYSCALL(NtTerminateThread, 8) +SUPHARNT_IMPORT_SYSCALL(NtUnmapViewOfSection, 8) +SUPHARNT_IMPORT_SYSCALL(NtWaitForMultipleObjects, 20) +SUPHARNT_IMPORT_SYSCALL(NtWaitForSingleObject, 12) +SUPHARNT_IMPORT_SYSCALL(NtWriteFile, 36) +SUPHARNT_IMPORT_SYSCALL(NtWriteVirtualMemory, 20) +SUPHARNT_IMPORT_SYSCALL(NtYieldExecution, 0) +SUPHARNT_IMPORT_SYSCALL(NtCreateSection, 28) +SUPHARNT_IMPORT_SYSCALL(NtQueryVolumeInformationFile, 20) + +SUPHARNT_IMPORT_STDCALL_EARLY(LdrInitializeThunk, 12) +SUPHARNT_IMPORT_STDCALL_EARLY_OPTIONAL(LdrRegisterDllNotification, 16) +SUPHARNT_IMPORT_STDCALL_EARLY(LdrGetDllHandle, 16) + +SUPHARNT_IMPORT_STDCALL(RtlAddAccessAllowedAce, 16) +SUPHARNT_IMPORT_STDCALL(RtlAddAccessDeniedAce, 16) +SUPHARNT_IMPORT_STDCALL(RtlAllocateHeap, 12) +SUPHARNT_IMPORT_STDCALL(RtlCompactHeap, 8) +SUPHARNT_IMPORT_STDCALL(RtlCopySid, 12) +SUPHARNT_IMPORT_STDCALL(RtlCreateAcl, 12) +SUPHARNT_IMPORT_STDCALL(RtlCreateHeap, 24) +SUPHARNT_IMPORT_STDCALL(RtlCreateProcessParameters, 40) +SUPHARNT_IMPORT_STDCALL(RtlCreateSecurityDescriptor, 8) +SUPHARNT_IMPORT_STDCALL(RtlCreateUserProcess, 40) +SUPHARNT_IMPORT_STDCALL(RtlCreateUserThread, 40) +SUPHARNT_IMPORT_STDCALL(RtlDestroyProcessParameters, 4) +SUPHARNT_IMPORT_STDCALL_EARLY(RtlDosApplyFileIsolationRedirection_Ustr, 36) +SUPHARNT_IMPORT_STDCALL_EARLY(RtlEqualSid, 8) +SUPHARNT_IMPORT_STDCALL_EARLY_OPTIONAL(RtlExitUserProcess, 4) +SUPHARNT_IMPORT_STDCALL_EARLY(RtlExitUserThread, 4) +SUPHARNT_IMPORT_STDCALL(RtlExpandEnvironmentStrings_U, 16) +SUPHARNT_IMPORT_STDCALL(RtlFreeHeap, 12) +SUPHARNT_IMPORT_STDCALL_EARLY(RtlFreeUnicodeString, 4) +SUPHARNT_IMPORT_STDCALL_EARLY(RtlGetLastNtStatus, 0) +SUPHARNT_IMPORT_STDCALL_EARLY(RtlGetLastWin32Error, 0) +SUPHARNT_IMPORT_STDCALL_EARLY(RtlGetVersion, 4) +SUPHARNT_IMPORT_STDCALL_EARLY(RtlInitializeSid, 12) +SUPHARNT_IMPORT_STDCALL_EARLY(RtlNtStatusToDosError, 4) +SUPHARNT_IMPORT_STDCALL_EARLY(RtlReAllocateHeap, 16) +SUPHARNT_IMPORT_STDCALL_EARLY(RtlRestoreLastWin32Error, 4) +SUPHARNT_IMPORT_STDCALL(RtlSetDaclSecurityDescriptor, 16) +SUPHARNT_IMPORT_STDCALL_EARLY(RtlSetLastWin32Error, 4) +SUPHARNT_IMPORT_STDCALL_EARLY(RtlSetLastWin32ErrorAndNtStatusFromNtStatus, 4) +SUPHARNT_IMPORT_STDCALL(RtlSizeHeap, 12) +SUPHARNT_IMPORT_STDCALL_EARLY(RtlSubAuthoritySid, 8) + diff -Nru virtualbox-4.1.12-dfsg/src/VBox/HostDrivers/Support/win/SUPDrvA-win.asm virtualbox-4.1.44-dfsg/src/VBox/HostDrivers/Support/win/SUPDrvA-win.asm --- virtualbox-4.1.12-dfsg/src/VBox/HostDrivers/Support/win/SUPDrvA-win.asm 2012-04-02 13:28:48.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/HostDrivers/Support/win/SUPDrvA-win.asm 2015-11-11 15:08:41.000000000 +0000 @@ -4,7 +4,7 @@ ; ; -; Copyright (C) 2006-2009 Oracle Corporation +; Copyright (C) 2006-2014 Oracle Corporation ; ; This file is part of VirtualBox Open Source Edition (OSE), as ; available from http://www.virtualbox.org. This file is free software; @@ -44,3 +44,80 @@ ENDPROC SUPR0Printf %endif + +%ifdef VBOX_WITH_HARDENING + + %ifdef RT_ARCH_X86 +; +; Faking up ZwQueryVirtualMemory on XP and W2K3 where it's not exported. +; Using ZwOpenFile as a helper as it has the name number of parameters. +; +extern IMPNAME(ZwOpenFile@24) + +BEGINPROC supdrvNtQueryVirtualMemory_Xxx + %macro NtQueryVirtualMemorySyscall 1 + GLOBALNAME supdrvNtQueryVirtualMemory_ %+ %1 + mov eax, %1 + jmp supdrvNtQueryVirtualMemory_Jump + %endm + NtQueryVirtualMemorySyscall 0xAF + NtQueryVirtualMemorySyscall 0xB0 + NtQueryVirtualMemorySyscall 0xB1 + NtQueryVirtualMemorySyscall 0xB2 + NtQueryVirtualMemorySyscall 0xB3 + NtQueryVirtualMemorySyscall 0xB4 + NtQueryVirtualMemorySyscall 0xB5 + NtQueryVirtualMemorySyscall 0xB6 + NtQueryVirtualMemorySyscall 0xB7 + NtQueryVirtualMemorySyscall 0xB8 + NtQueryVirtualMemorySyscall 0xB9 + NtQueryVirtualMemorySyscall 0xBA + NtQueryVirtualMemorySyscall 0xBB + NtQueryVirtualMemorySyscall 0xBC + NtQueryVirtualMemorySyscall 0xBD + NtQueryVirtualMemorySyscall 0xBE + +supdrvNtQueryVirtualMemory_Jump: + mov edx, IMP2(ZwOpenFile@24) + lea edx, [edx + 5] + jmp edx +ENDPROC supdrvNtQueryVirtualMemory_Xxx + + %endif + + %ifdef RT_ARCH_AMD64 +; +; Faking up ZwQueryVirtualMemory on XP64 and W2K3-64 where it's not exported. +; The C code locates and verifies the essentials in ZwRequestWaitReplyPort. +; +extern NAME(g_pfnKiServiceLinkage) +extern NAME(g_pfnKiServiceInternal) +BEGINPROC supdrvNtQueryVirtualMemory_Xxx + %macro NtQueryVirtualMemorySyscall 1 + GLOBALNAME supdrvNtQueryVirtualMemory_ %+ %1 + mov eax, %1 + jmp supdrvNtQueryVirtualMemory_Jump + %endm + + NtQueryVirtualMemorySyscall 0x1F + NtQueryVirtualMemorySyscall 0x20 + NtQueryVirtualMemorySyscall 0x21 + NtQueryVirtualMemorySyscall 0x22 + NtQueryVirtualMemorySyscall 0x23 + +supdrvNtQueryVirtualMemory_Jump: + cli + mov r10, rsp ; save call frame pointer. + mov r11, [NAME(g_pfnKiServiceLinkage) wrt rip] + push 0 + push 0 + push r10 ; call frame pointer (incoming rsp). + pushfq + push 10h + push r11 ; r11 = KiServiceLinkage (ret w/ unwind info) + jmp qword [NAME(g_pfnKiServiceInternal) wrt rip] +ENDPROC supdrvNtQueryVirtualMemory_Xxx + %endif + +%endif ; VBOX_WITH_HARDENING + diff -Nru virtualbox-4.1.12-dfsg/src/VBox/HostDrivers/Support/win/SUPDrv-win.cpp virtualbox-4.1.44-dfsg/src/VBox/HostDrivers/Support/win/SUPDrv-win.cpp --- virtualbox-4.1.12-dfsg/src/VBox/HostDrivers/Support/win/SUPDrv-win.cpp 2012-04-02 13:28:48.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/HostDrivers/Support/win/SUPDrv-win.cpp 2015-11-11 15:08:41.000000000 +0000 @@ -27,18 +27,41 @@ /******************************************************************************* * Header Files * *******************************************************************************/ +#ifdef VBOX_WITH_HARDENING +# undef _WIN32_WINNT +# define _WIN32_WINNT 0x0600 +# undef WINVER +# define WINVER 0x0600 +# undef NTDDI_VERSION +# define NTDDI_VERSION NTDDI_VISTASP1 +#endif + +#define IPRT_NT_MAP_TO_ZW #define LOG_GROUP LOG_GROUP_SUP_DRV #include "../SUPDrvInternal.h" #include #include #include +#include +#include #include +#include #include #include #include +#include +#include +#include #include #include +#include + +#include + +#ifdef VBOX_WITH_HARDENING +# include "SUPHardenedVerify-win.h" +#endif /******************************************************************************* @@ -46,27 +69,217 @@ *******************************************************************************/ /** The support service name. */ #define SERVICE_NAME "VBoxDrv" -/** Win32 Device name. */ -#define DEVICE_NAME "\\\\.\\VBoxDrv" -/** NT Device name. */ -#define DEVICE_NAME_NT L"\\Device\\VBoxDrv" -/** Win Symlink name. */ -#define DEVICE_NAME_DOS L"\\DosDevices\\VBoxDrv" /** The Pool tag (VBox). */ #define SUPDRV_NT_POOL_TAG 'xoBV' +/** NT device name for user access. */ +#define DEVICE_NAME_NT_USR L"\\Device\\VBoxDrvU" +#ifdef VBOX_WITH_HARDENING +/** Macro for checking for deflecting calls to the stub device. */ +# define VBOXDRV_COMPLETE_IRP_AND_RETURN_IF_STUB_DEV(a_pDevObj, a_pIrp) \ + do { if ((a_pDevObj) == g_pDevObjStub) \ + return supdrvNtCompleteRequest(STATUS_ACCESS_DENIED, a_pIrp); \ + } while (0) +/** Macro for checking for deflecting calls to the stub and error info + * devices. */ +# define VBOXDRV_COMPLETE_IRP_AND_RETURN_IF_STUB_OR_ERROR_INFO_DEV(a_pDevObj, a_pIrp) \ + do { if ((a_pDevObj) == g_pDevObjStub || (a_pDevObj) == g_pDevObjErrorInfo) \ + return supdrvNtCompleteRequest(STATUS_ACCESS_DENIED, a_pIrp); \ + } while (0) +#else +# define VBOXDRV_COMPLETE_IRP_AND_RETURN_IF_STUB_DEV(a_pDevObj, a_pIrp) do {} while (0) +# define VBOXDRV_COMPLETE_IRP_AND_RETURN_IF_STUB_OR_ERROR_INFO_DEV(a_pDevObj, a_pIrp) do {} while (0) +#endif + +/** Enables the fast I/O control code path. */ +#define VBOXDRV_WITH_FAST_IO + /******************************************************************************* * Structures and Typedefs * *******************************************************************************/ -#if 0 //def RT_ARCH_AMD64 -typedef struct SUPDRVEXECMEM +/** + * Device extension used by VBoxDrvU. + */ +typedef struct SUPDRVDEVEXTUSR { - PMDL pMdl; - void *pvMapping; - void *pvAllocation; -} SUPDRVEXECMEM, *PSUPDRVEXECMEM; -#endif + /** Global cookie (same location as in SUPDRVDEVEXT, different value). */ + uint32_t u32Cookie; + /** Pointer to the main driver extension. */ + PSUPDRVDEVEXT pMainDrvExt; +} SUPDRVDEVEXTUSR; +AssertCompileMembersAtSameOffset(SUPDRVDEVEXT, u32Cookie, SUPDRVDEVEXTUSR, u32Cookie); +/** Pointer to the VBoxDrvU device extension. */ +typedef SUPDRVDEVEXTUSR *PSUPDRVDEVEXTUSR; +/** Value of SUPDRVDEVEXTUSR::u32Cookie. */ +#define SUPDRVDEVEXTUSR_COOKIE UINT32_C(0x12345678) + +/** Get the main device extension. */ +#define SUPDRVNT_GET_DEVEXT(pDevObj) \ + ( pDevObj != g_pDevObjUsr \ + ? (PSUPDRVDEVEXT)pDevObj->DeviceExtension \ + : ((PSUPDRVDEVEXTUSR)pDevObj->DeviceExtension)->pMainDrvExt ) + +#ifdef VBOX_WITH_HARDENING + +/** + * Device extension used by VBoxDrvStub. + */ +typedef struct SUPDRVDEVEXTSTUB +{ + /** Common header. */ + SUPDRVDEVEXTUSR Common; +} SUPDRVDEVEXTSTUB; +/** Pointer to the VBoxDrvStub device extension. */ +typedef SUPDRVDEVEXTSTUB *PSUPDRVDEVEXTSTUB; +/** Value of SUPDRVDEVEXTSTUB::Common.u32Cookie. */ +#define SUPDRVDEVEXTSTUB_COOKIE UINT32_C(0x90abcdef) + + +/** + * Device extension used by VBoxDrvErrorInfo. + */ +typedef struct SUPDRVDEVEXTERRORINFO +{ + /** Common header. */ + SUPDRVDEVEXTUSR Common; +} SUPDRVDEVEXTERRORINFO; +/** Pointer to the VBoxDrvErrorInfo device extension. */ +typedef SUPDRVDEVEXTERRORINFO *PSUPDRVDEVEXTERRORINFO; +/** Value of SUPDRVDEVEXTERRORINFO::Common.u32Cookie. */ +#define SUPDRVDEVEXTERRORINFO_COOKIE UINT32_C(0xBadC0ca0) + +/** + * Error info for a failed VBoxDrv or VBoxDrvStub open attempt. + */ +typedef struct SUPDRVNTERRORINFO +{ + /** The list entry (in g_ErrorInfoHead). */ + RTLISTNODE ListEntry; + /** The ID of the process this error info belongs to. */ + HANDLE hProcessId; + /** The ID of the thread owning this info. */ + HANDLE hThreadId; + /** Milliseconds createion timestamp (for cleaning up). */ + uint64_t uCreatedMsTs; + /** Number of bytes of valid info. */ + uint32_t cchErrorInfo; + /** The error info. */ + char szErrorInfo[16384 - sizeof(RTLISTNODE) - sizeof(HANDLE)*2 - sizeof(uint64_t) - sizeof(uint32_t) - 0x20]; +} SUPDRVNTERRORINFO; +/** Pointer to error info. */ +typedef SUPDRVNTERRORINFO *PSUPDRVNTERRORINFO; + + +/** + * The kind of process we're protecting. + */ +typedef enum SUPDRVNTPROTECTKIND +{ + kSupDrvNtProtectKind_Invalid = 0, + + /** Stub process protection while performing process verification. + * Next: StubSpawning (or free) */ + kSupDrvNtProtectKind_StubUnverified, + /** Stub process protection before it creates the VM process. + * Next: StubParent, StubDead. */ + kSupDrvNtProtectKind_StubSpawning, + /** Stub process protection while having a VM process as child. + * Next: StubDead */ + kSupDrvNtProtectKind_StubParent, + /** Dead stub process. */ + kSupDrvNtProtectKind_StubDead, + + /** Potential VM process. + * Next: VmProcessConfirmed, VmProcessDead. */ + kSupDrvNtProtectKind_VmProcessUnconfirmed, + /** Confirmed VM process. + * Next: VmProcessDead. */ + kSupDrvNtProtectKind_VmProcessConfirmed, + /** Dead VM process. */ + kSupDrvNtProtectKind_VmProcessDead, + + /** End of valid protection kinds. */ + kSupDrvNtProtectKind_End +} SUPDRVNTPROTECTKIND; + +/** + * A NT process protection structure. + */ +typedef struct SUPDRVNTPROTECT +{ + /** The AVL node core structure. The process ID is the pid. */ + AVLPVNODECORE AvlCore; + /** Magic value (SUPDRVNTPROTECT_MAGIC). */ + uint32_t volatile u32Magic; + /** Reference counter. */ + uint32_t volatile cRefs; + /** The kind of process we're protecting. */ + SUPDRVNTPROTECTKIND volatile enmProcessKind; + /** Whether this structure is in the tree. */ + bool fInTree : 1; + /** 7,: Hack to allow the supid themes service duplicate handle privileges to + * our process. */ + bool fThemesFirstProcessCreateHandle : 1; + /** Vista, 7 & 8: Hack to allow more rights to the handle returned by + * NtCreateUserProcess. Only applicable to VmProcessUnconfirmed. */ + bool fFirstProcessCreateHandle : 1; + /** Vista, 7 & 8: Hack to allow more rights to the handle returned by + * NtCreateUserProcess. Only applicable to VmProcessUnconfirmed. */ + bool fFirstThreadCreateHandle : 1; + /** 8.1: Hack to allow more rights to the handle returned by + * NtCreateUserProcess. Only applicable to VmProcessUnconfirmed. */ + bool fCsrssFirstProcessCreateHandle : 1; + /** Vista, 7 & 8: Hack to allow more rights to the handle duplicated by CSRSS + * during process creation. Only applicable to VmProcessUnconfirmed. On + * 32-bit systems we allow two as ZoneAlarm's system call hooks has been + * observed to do some seemingly unnecessary duplication work. */ + int32_t volatile cCsrssFirstProcessDuplicateHandle; + + /** The parent PID for VM processes, otherwise NULL. */ + HANDLE hParentPid; + /** The TID of the thread opening VBoxDrv or VBoxDrvStub, NULL if not opened. */ + HANDLE hOpenTid; + /** The PID of the CSRSS process associated with this process. */ + HANDLE hCsrssPid; + /** Pointer to the CSRSS process structure (referenced). */ + PEPROCESS pCsrssProcess; + /** State dependent data. */ + union + { + /** A stub process in the StubParent state will keep a reference to a child + * while it's in the VmProcessUnconfirmed state so that it can be cleaned up + * correctly if things doesn't work out. */ + struct SUPDRVNTPROTECT *pChild; + /** A process in the VmProcessUnconfirmed state will keep a weak + * reference to the parent's protection structure so it can clean up the pChild + * reference the parent has to it. */ + struct SUPDRVNTPROTECT *pParent; + } u; +} SUPDRVNTPROTECT; +/** Pointer to a NT process protection record. */ +typedef SUPDRVNTPROTECT *PSUPDRVNTPROTECT; +/** The SUPDRVNTPROTECT::u32Magic value (Robert A. Heinlein). */ +# define SUPDRVNTPROTECT_MAGIC UINT32_C(0x19070707) +/** The SUPDRVNTPROTECT::u32Magic value of a dead structure. */ +# define SUPDRVNTPROTECT_MAGIC_DEAD UINT32_C(0x19880508) + +/** Pointer to ObGetObjectType. */ +typedef POBJECT_TYPE (NTAPI *PFNOBGETOBJECTTYPE)(PVOID); +/** Pointer to ObRegisterCallbacks. */ +typedef NTSTATUS (NTAPI *PFNOBREGISTERCALLBACKS)(POB_CALLBACK_REGISTRATION, PVOID *); +/** Pointer to ObUnregisterCallbacks. */ +typedef VOID (NTAPI *PFNOBUNREGISTERCALLBACKS)(PVOID); +/** Pointer to PsSetCreateProcessNotifyRoutineEx. */ +typedef NTSTATUS (NTAPI *PFNPSSETCREATEPROCESSNOTIFYROUTINEEX)(PCREATE_PROCESS_NOTIFY_ROUTINE_EX, BOOLEAN); +/** Pointer to PsReferenceProcessFilePointer. */ +typedef NTSTATUS (NTAPI *PFNPSREFERENCEPROCESSFILEPOINTER)(PEPROCESS, PFILE_OBJECT *); +/** Pointer to PsIsProtectedProcessLight. */ +typedef BOOLEAN (NTAPI *PFNPSISPROTECTEDPROCESSLIGHT)(PEPROCESS); +/** Pointer to ZwAlpcCreatePort. */ +typedef NTSTATUS (NTAPI *PFNZWALPCCREATEPORT)(PHANDLE, POBJECT_ATTRIBUTES, struct _ALPC_PORT_ATTRIBUTES *); + +#endif /* VBOX_WITH_HARDENINIG */ /******************************************************************************* @@ -76,12 +289,32 @@ static NTSTATUS _stdcall VBoxDrvNtCreate(PDEVICE_OBJECT pDevObj, PIRP pIrp); static NTSTATUS _stdcall VBoxDrvNtCleanup(PDEVICE_OBJECT pDevObj, PIRP pIrp); static NTSTATUS _stdcall VBoxDrvNtClose(PDEVICE_OBJECT pDevObj, PIRP pIrp); +#ifdef VBOXDRV_WITH_FAST_IO +static BOOLEAN _stdcall VBoxDrvNtFastIoDeviceControl(PFILE_OBJECT pFileObj, BOOLEAN fWait, PVOID pvInput, ULONG cbInput, + PVOID pvOutput, ULONG cbOutput, ULONG uCmd, + PIO_STATUS_BLOCK pIoStatus, PDEVICE_OBJECT pDevObj); +#endif static NTSTATUS _stdcall VBoxDrvNtDeviceControl(PDEVICE_OBJECT pDevObj, PIRP pIrp); static int VBoxDrvNtDeviceControlSlow(PSUPDRVDEVEXT pDevExt, PSUPDRVSESSION pSession, PIRP pIrp, PIO_STACK_LOCATION pStack); static NTSTATUS _stdcall VBoxDrvNtInternalDeviceControl(PDEVICE_OBJECT pDevObj, PIRP pIrp); static VOID _stdcall VBoxPowerDispatchCallback(PVOID pCallbackContext, PVOID pArgument1, PVOID pArgument2); +static NTSTATUS _stdcall VBoxDrvNtRead(PDEVICE_OBJECT pDevObj, PIRP pIrp); static NTSTATUS _stdcall VBoxDrvNtNotSupportedStub(PDEVICE_OBJECT pDevObj, PIRP pIrp); static NTSTATUS VBoxDrvNtErr2NtStatus(int rc); +#ifdef VBOX_WITH_HARDENING +static NTSTATUS supdrvNtProtectInit(void); +static void supdrvNtProtectTerm(void); +static int supdrvNtProtectCreate(PSUPDRVNTPROTECT *ppNtProtect, HANDLE hPid, + SUPDRVNTPROTECTKIND enmProcessKind, bool fLink); +static void supdrvNtProtectRelease(PSUPDRVNTPROTECT pNtProtect); +static PSUPDRVNTPROTECT supdrvNtProtectLookup(HANDLE hPid); +static int supdrvNtProtectFindAssociatedCsrss(PSUPDRVNTPROTECT pNtProtect); +static int supdrvNtProtectVerifyProcess(PSUPDRVNTPROTECT pNtProtect); + +static bool supdrvNtIsDebuggerAttached(void); +static void supdrvNtErrorInfoCleanupProcess(HANDLE hProcessId); + +#endif /******************************************************************************* @@ -92,6 +325,219 @@ RT_C_DECLS_END +/******************************************************************************* +* Global Variables * +*******************************************************************************/ +/** Pointer to the system device instance. */ +static PDEVICE_OBJECT g_pDevObjSys = NULL; +/** Pointer to the user device instance. */ +static PDEVICE_OBJECT g_pDevObjUsr = NULL; +#ifdef VBOXDRV_WITH_FAST_IO +/** Fast I/O dispatch table. */ +static FAST_IO_DISPATCH const g_VBoxDrvFastIoDispatch = +{ + /* .SizeOfFastIoDispatch = */ sizeof(g_VBoxDrvFastIoDispatch), + /* .FastIoCheckIfPossible = */ NULL, + /* .FastIoRead = */ NULL, + /* .FastIoWrite = */ NULL, + /* .FastIoQueryBasicInfo = */ NULL, + /* .FastIoQueryStandardInfo = */ NULL, + /* .FastIoLock = */ NULL, + /* .FastIoUnlockSingle = */ NULL, + /* .FastIoUnlockAll = */ NULL, + /* .FastIoUnlockAllByKey = */ NULL, + /* .FastIoDeviceControl = */ VBoxDrvNtFastIoDeviceControl, + /* .AcquireFileForNtCreateSection = */ NULL, + /* .ReleaseFileForNtCreateSection = */ NULL, + /* .FastIoDetachDevice = */ NULL, + /* .FastIoQueryNetworkOpenInfo = */ NULL, + /* .AcquireForModWrite = */ NULL, + /* .MdlRead = */ NULL, + /* .MdlReadComplete = */ NULL, + /* .PrepareMdlWrite = */ NULL, + /* .MdlWriteComplete = */ NULL, + /* .FastIoReadCompressed = */ NULL, + /* .FastIoWriteCompressed = */ NULL, + /* .MdlReadCompleteCompressed = */ NULL, + /* .MdlWriteCompleteCompressed = */ NULL, + /* .FastIoQueryOpen = */ NULL, + /* .ReleaseForModWrite = */ NULL, + /* .AcquireForCcFlush = */ NULL, + /* .ReleaseForCcFlush = */ NULL, +}; +#endif /* VBOXDRV_WITH_FAST_IO */ + +#ifdef VBOX_WITH_HARDENING +/** Pointer to the stub device instance. */ +static PDEVICE_OBJECT g_pDevObjStub = NULL; +/** Spinlock protecting g_NtProtectTree as well as the releasing of protection + * structures. */ +static RTSPINLOCK g_hNtProtectLock = NIL_RTSPINLOCK; +/** AVL tree of SUPDRVNTPROTECT structures. */ +static AVLPVTREE g_NtProtectTree = NULL; +/** Cookie returned by ObRegisterCallbacks for the callbacks. */ +static PVOID g_pvObCallbacksCookie = NULL; +/** Combined windows NT version number. See SUP_MAKE_NT_VER_COMBINED. */ +uint32_t g_uNtVerCombined = 0; +/** Pointer to ObGetObjectType if available.. */ +static PFNOBGETOBJECTTYPE g_pfnObGetObjectType = NULL; +/** Pointer to ObRegisterCallbacks if available.. */ +static PFNOBREGISTERCALLBACKS g_pfnObRegisterCallbacks = NULL; +/** Pointer to ObUnregisterCallbacks if available.. */ +static PFNOBUNREGISTERCALLBACKS g_pfnObUnRegisterCallbacks = NULL; +/** Pointer to PsSetCreateProcessNotifyRoutineEx if available.. */ +static PFNPSSETCREATEPROCESSNOTIFYROUTINEEX g_pfnPsSetCreateProcessNotifyRoutineEx = NULL; +/** Pointer to PsReferenceProcessFilePointer if available. */ +static PFNPSREFERENCEPROCESSFILEPOINTER g_pfnPsReferenceProcessFilePointer = NULL; +/** Pointer to PsIsProtectedProcessLight. */ +static PFNPSISPROTECTEDPROCESSLIGHT g_pfnPsIsProtectedProcessLight = NULL; +/** Pointer to ZwAlpcCreatePort. */ +static PFNZWALPCCREATEPORT g_pfnZwAlpcCreatePort = NULL; + +# ifdef RT_ARCH_AMD64 +extern "C" { +/** Pointer to KiServiceLinkage (used to fake missing ZwQueryVirtualMemory on + * XP64 / W2K3-64). */ +PFNRT g_pfnKiServiceLinkage = NULL; +/** Pointer to KiServiceInternal (used to fake missing ZwQueryVirtualMemory on + * XP64 / W2K3-64) */ +PFNRT g_pfnKiServiceInternal = NULL; +} +# endif +/** The primary ALPC port object type. (LpcPortObjectType at init time.) */ +static POBJECT_TYPE g_pAlpcPortObjectType1 = NULL; +/** The secondary ALPC port object type. (Sampled at runtime.) */ +static POBJECT_TYPE volatile g_pAlpcPortObjectType2 = NULL; + +/** Pointer to the error information device instance. */ +static PDEVICE_OBJECT g_pDevObjErrorInfo = NULL; +/** Fast mutex semaphore protecting the error info list. */ +static RTSEMMUTEX g_hErrorInfoLock = NIL_RTSEMMUTEX; +/** Head of the error info (SUPDRVNTERRORINFO). */ +static RTLISTANCHOR g_ErrorInfoHead; + +#endif + + +/** + * Takes care of creating the devices and their symbolic links. + * + * @returns NT status code. + * @param pDrvObj Pointer to driver object. + */ +static NTSTATUS vboxdrvNtCreateDevices(PDRIVER_OBJECT pDrvObj) +{ + /* + * System device. + */ + UNICODE_STRING DevName; + RtlInitUnicodeString(&DevName, SUPDRV_NT_DEVICE_NAME_SYS); + NTSTATUS rcNt = IoCreateDevice(pDrvObj, sizeof(SUPDRVDEVEXT), &DevName, FILE_DEVICE_UNKNOWN, 0, FALSE, &g_pDevObjSys); + if (NT_SUCCESS(rcNt)) + { + /* + * User device. + */ + RtlInitUnicodeString(&DevName, SUPDRV_NT_DEVICE_NAME_USR); + rcNt = IoCreateDevice(pDrvObj, sizeof(SUPDRVDEVEXTUSR), &DevName, FILE_DEVICE_UNKNOWN, 0, FALSE, &g_pDevObjUsr); + if (NT_SUCCESS(rcNt)) + { + PSUPDRVDEVEXTUSR pDevExtUsr = (PSUPDRVDEVEXTUSR)g_pDevObjUsr->DeviceExtension; + pDevExtUsr->pMainDrvExt = (PSUPDRVDEVEXT)g_pDevObjSys->DeviceExtension; + pDevExtUsr->u32Cookie = SUPDRVDEVEXTUSR_COOKIE; + +#ifdef VBOX_WITH_HARDENING + /* + * Hardened stub device. + */ + RtlInitUnicodeString(&DevName, SUPDRV_NT_DEVICE_NAME_STUB); + rcNt = IoCreateDevice(pDrvObj, sizeof(SUPDRVDEVEXTSTUB), &DevName, FILE_DEVICE_UNKNOWN, 0, FALSE, &g_pDevObjStub); + if (NT_SUCCESS(rcNt)) + { + if (NT_SUCCESS(rcNt)) + { + PSUPDRVDEVEXTSTUB pDevExtStub = (PSUPDRVDEVEXTSTUB)g_pDevObjStub->DeviceExtension; + pDevExtStub->Common.pMainDrvExt = (PSUPDRVDEVEXT)g_pDevObjSys->DeviceExtension; + pDevExtStub->Common.u32Cookie = SUPDRVDEVEXTSTUB_COOKIE; + + /* + * Hardened error information device. + */ + RtlInitUnicodeString(&DevName, SUPDRV_NT_DEVICE_NAME_ERROR_INFO); + rcNt = IoCreateDevice(pDrvObj, sizeof(SUPDRVDEVEXTERRORINFO), &DevName, FILE_DEVICE_UNKNOWN, 0, FALSE, + &g_pDevObjErrorInfo); + if (NT_SUCCESS(rcNt)) + { + g_pDevObjErrorInfo->Flags |= DO_BUFFERED_IO; + + if (NT_SUCCESS(rcNt)) + { + PSUPDRVDEVEXTERRORINFO pDevExtStub = (PSUPDRVDEVEXTERRORINFO)g_pDevObjStub->DeviceExtension; + pDevExtStub->Common.pMainDrvExt = (PSUPDRVDEVEXT)g_pDevObjSys->DeviceExtension; + pDevExtStub->Common.u32Cookie = SUPDRVDEVEXTERRORINFO_COOKIE; + +#endif + /* Done. */ + return rcNt; +#ifdef VBOX_WITH_HARDENING + } + + /* Bail out. */ + IoDeleteDevice(g_pDevObjErrorInfo); + g_pDevObjErrorInfo = NULL; + } + } + + /* Bail out. */ + IoDeleteDevice(g_pDevObjStub); + g_pDevObjUsr = NULL; + } +#endif + IoDeleteDevice(g_pDevObjUsr); + g_pDevObjUsr = NULL; + } + IoDeleteDevice(g_pDevObjSys); + g_pDevObjSys = NULL; + } + return rcNt; +} + +/** + * Destroys the devices and links created by vboxdrvNtCreateDevices. + */ +static void vboxdrvNtDestroyDevices(void) +{ + if (g_pDevObjUsr) + { + PSUPDRVDEVEXTUSR pDevExtUsr = (PSUPDRVDEVEXTUSR)g_pDevObjUsr->DeviceExtension; + pDevExtUsr->pMainDrvExt = NULL; + } +#ifdef VBOX_WITH_HARDENING + if (g_pDevObjStub) + { + PSUPDRVDEVEXTSTUB pDevExtStub = (PSUPDRVDEVEXTSTUB)g_pDevObjStub->DeviceExtension; + pDevExtStub->Common.pMainDrvExt = NULL; + } + if (g_pDevObjErrorInfo) + { + PSUPDRVDEVEXTERRORINFO pDevExtErrorInfo = (PSUPDRVDEVEXTERRORINFO)g_pDevObjStub->DeviceExtension; + pDevExtErrorInfo->Common.pMainDrvExt = NULL; + } +#endif + +#ifdef VBOX_WITH_HARDENING + IoDeleteDevice(g_pDevObjErrorInfo); + g_pDevObjErrorInfo = NULL; + IoDeleteDevice(g_pDevObjStub); + g_pDevObjStub = NULL; +#endif + IoDeleteDevice(g_pDevObjUsr); + g_pDevObjUsr = NULL; + IoDeleteDevice(g_pDevObjSys); + g_pDevObjSys = NULL; +} + + /** * Driver entry point. * @@ -101,33 +547,47 @@ */ ULONG _stdcall DriverEntry(PDRIVER_OBJECT pDrvObj, PUNICODE_STRING pRegPath) { - NTSTATUS rc; + /* + * Sanity checks. + */ +#ifdef VBOXDRV_WITH_FAST_IO + if (g_VBoxDrvFastIoDispatch.FastIoDeviceControl != VBoxDrvNtFastIoDeviceControl) + { + DbgPrint("VBoxDrv: FastIoDeviceControl=%p instead of %p\n", + g_VBoxDrvFastIoDispatch.FastIoDeviceControl, VBoxDrvNtFastIoDeviceControl); + return STATUS_INTERNAL_ERROR; + } +#endif /* - * Create device. - * (That means creating a device object and a symbolic link so the DOS - * subsystems (OS/2, win32, ++) can access the device.) + * Initialize the runtime (IPRT). */ - UNICODE_STRING DevName; - RtlInitUnicodeString(&DevName, DEVICE_NAME_NT); - PDEVICE_OBJECT pDevObj; - rc = IoCreateDevice(pDrvObj, sizeof(SUPDRVDEVEXT), &DevName, FILE_DEVICE_UNKNOWN, 0, FALSE, &pDevObj); - if (NT_SUCCESS(rc)) + NTSTATUS rcNt; + int vrc = RTR0Init(0); + if (RT_SUCCESS(vrc)) { - UNICODE_STRING DosName; - RtlInitUnicodeString(&DosName, DEVICE_NAME_DOS); - rc = IoCreateSymbolicLink(&DosName, &DevName); - if (NT_SUCCESS(rc)) + Log(("VBoxDrv::DriverEntry\n")); + +#ifdef VBOX_WITH_HARDENING + /* + * Initialize process protection. + */ + rcNt = supdrvNtProtectInit(); + if (NT_SUCCESS(rcNt)) +#endif { - int vrc = RTR0Init(0); - if (RT_SUCCESS(vrc)) + /* + * Create device. + * (That means creating a device object and a symbolic link so the DOS + * subsystems (OS/2, win32, ++) can access the device.) + */ + rcNt = vboxdrvNtCreateDevices(pDrvObj); + if (NT_SUCCESS(rcNt)) { - Log(("VBoxDrv::DriverEntry\n")); - /* * Initialize the device extension. */ - PSUPDRVDEVEXT pDevExt = (PSUPDRVDEVEXT)pDevObj->DeviceExtension; + PSUPDRVDEVEXT pDevExt = (PSUPDRVDEVEXT)g_pDevObjSys->DeviceExtension; memset(pDevExt, 0, sizeof(*pDevExt)); vrc = supdrvInitDevExt(pDevExt, sizeof(SUPDRVSESSION)); @@ -142,50 +602,58 @@ pDrvObj->MajorFunction[IRP_MJ_CLOSE] = VBoxDrvNtClose; pDrvObj->MajorFunction[IRP_MJ_DEVICE_CONTROL] = VBoxDrvNtDeviceControl; pDrvObj->MajorFunction[IRP_MJ_INTERNAL_DEVICE_CONTROL] = VBoxDrvNtInternalDeviceControl; - pDrvObj->MajorFunction[IRP_MJ_READ] = VBoxDrvNtNotSupportedStub; + pDrvObj->MajorFunction[IRP_MJ_READ] = VBoxDrvNtRead; pDrvObj->MajorFunction[IRP_MJ_WRITE] = VBoxDrvNtNotSupportedStub; - /* more? */ +#ifdef VBOXDRV_WITH_FAST_IO + /* Fast I/O to speed up guest execution roundtrips. */ + pDrvObj->FastIoDispatch = (PFAST_IO_DISPATCH)&g_VBoxDrvFastIoDispatch; +#endif - /* Register ourselves for power state changes. */ + /* + * Register ourselves for power state changes. We don't + * currently care if this fails. + */ UNICODE_STRING CallbackName; - OBJECT_ATTRIBUTES Attr; - RtlInitUnicodeString(&CallbackName, L"\\Callback\\PowerState"); + + OBJECT_ATTRIBUTES Attr; InitializeObjectAttributes(&Attr, &CallbackName, OBJ_CASE_INSENSITIVE, NULL, NULL); - rc = ExCreateCallback(&pDevExt->pObjPowerCallback, &Attr, TRUE, TRUE); - if (rc == STATUS_SUCCESS) - pDevExt->hPowerCallback = ExRegisterCallback(pDevExt->pObjPowerCallback, VBoxPowerDispatchCallback, pDevObj); + rcNt = ExCreateCallback(&pDevExt->pObjPowerCallback, &Attr, TRUE, TRUE); + if (rcNt == STATUS_SUCCESS) + pDevExt->hPowerCallback = ExRegisterCallback(pDevExt->pObjPowerCallback, + VBoxPowerDispatchCallback, + g_pDevObjSys); + /* + * Done! Returning success! + */ Log(("VBoxDrv::DriverEntry returning STATUS_SUCCESS\n")); return STATUS_SUCCESS; } Log(("supdrvInitDevExit failed with vrc=%d!\n", vrc)); - rc = VBoxDrvNtErr2NtStatus(vrc); + rcNt = VBoxDrvNtErr2NtStatus(vrc); - IoDeleteSymbolicLink(&DosName); - RTR0Term(); - } - else - { - Log(("RTR0Init failed with vrc=%d!\n", vrc)); - rc = VBoxDrvNtErr2NtStatus(vrc); + vboxdrvNtDestroyDevices(); } +#ifdef VBOX_WITH_HARDENING + supdrvNtProtectTerm(); +#endif } - else - Log(("IoCreateSymbolicLink failed with rc=%#x!\n", rc)); - IoDeleteDevice(pDevObj); + RTTermRunCallbacks(RTTERMREASON_UNLOAD, 0); + RTR0Term(); } else - Log(("IoCreateDevice failed with rc=%#x!\n", rc)); - - if (NT_SUCCESS(rc)) - rc = STATUS_INVALID_PARAMETER; - Log(("VBoxDrv::DriverEntry returning %#x\n", rc)); - return rc; + { + Log(("RTR0Init failed with vrc=%d!\n", vrc)); + rcNt = VBoxDrvNtErr2NtStatus(vrc); + } + if (NT_SUCCESS(rcNt)) + rcNt = STATUS_INVALID_PARAMETER; + return rcNt; } @@ -196,7 +664,7 @@ */ void _stdcall VBoxDrvNtUnload(PDRIVER_OBJECT pDrvObj) { - PSUPDRVDEVEXT pDevExt = (PSUPDRVDEVEXT)pDrvObj->DeviceObject->DeviceExtension; + PSUPDRVDEVEXT pDevExt = (PSUPDRVDEVEXT)g_pDevObjSys->DeviceExtension; Log(("VBoxDrvNtUnload at irql %d\n", KeGetCurrentIrql())); @@ -208,18 +676,47 @@ /* * We ASSUME that it's not possible to unload a driver with open handles. - * Start by deleting the symbolic link - */ - UNICODE_STRING DosName; - RtlInitUnicodeString(&DosName, DEVICE_NAME_DOS); - NTSTATUS rc = IoDeleteSymbolicLink(&DosName); - - /* - * Terminate the GIP page and delete the device extension. */ supdrvDeleteDevExt(pDevExt); +#ifdef VBOX_WITH_HARDENING + supdrvNtProtectTerm(); +#endif + RTTermRunCallbacks(RTTERMREASON_UNLOAD, 0); RTR0Term(); - IoDeleteDevice(pDrvObj->DeviceObject); + vboxdrvNtDestroyDevices(); + + NOREF(pDrvObj); +} + + +/** + * For simplifying request completion into a simple return statement, extended + * version. + * + * @returns rcNt + * @param rcNt The status code. + * @param uInfo Extra info value. + * @param pIrp The IRP. + */ +DECLINLINE(NTSTATUS) supdrvNtCompleteRequestEx(NTSTATUS rcNt, ULONG_PTR uInfo, PIRP pIrp) +{ + pIrp->IoStatus.Status = rcNt; + pIrp->IoStatus.Information = uInfo; + IoCompleteRequest(pIrp, IO_NO_INCREMENT); + return rcNt; +} + + +/** + * For simplifying request completion into a simple return statement. + * + * @returns rcNt + * @param rcNt The status code. + * @param pIrp The IRP. + */ +DECLINLINE(NTSTATUS) supdrvNtCompleteRequest(NTSTATUS rcNt, PIRP pIrp) +{ + return supdrvNtCompleteRequestEx(rcNt, 0 /*uInfo*/, pIrp); } @@ -232,48 +729,191 @@ NTSTATUS _stdcall VBoxDrvNtCreate(PDEVICE_OBJECT pDevObj, PIRP pIrp) { Log(("VBoxDrvNtCreate: RequestorMode=%d\n", pIrp->RequestorMode)); - PIO_STACK_LOCATION pStack = IoGetCurrentIrpStackLocation(pIrp); + PIO_STACK_LOCATION pStack = IoGetCurrentIrpStackLocation(pIrp); PFILE_OBJECT pFileObj = pStack->FileObject; - PSUPDRVDEVEXT pDevExt = (PSUPDRVDEVEXT)pDevObj->DeviceExtension; + PSUPDRVDEVEXT pDevExt = SUPDRVNT_GET_DEVEXT(pDevObj); /* * We are not remotely similar to a directory... * (But this is possible.) */ if (pStack->Parameters.Create.Options & FILE_DIRECTORY_FILE) - { - pIrp->IoStatus.Status = STATUS_NOT_A_DIRECTORY; - pIrp->IoStatus.Information = 0; - IoCompleteRequest(pIrp, IO_NO_INCREMENT); - return STATUS_NOT_A_DIRECTORY; - } + return supdrvNtCompleteRequest(STATUS_NOT_A_DIRECTORY, pIrp); /* - * Don't create a session for kernel clients, they'll close the handle - * immediately and work with the file object via - * VBoxDrvNtInternalDeviceControl. The first request will there be one - * to create a session. + * Don't create a session for kernel clients, they'll close the handle + * immediately and work with the file object via + * VBoxDrvNtInternalDeviceControl. The first request will be one to + * create a session. */ NTSTATUS rcNt; if (pIrp->RequestorMode == KernelMode) - rcNt = STATUS_SUCCESS; + { + if (pDevObj == g_pDevObjSys) + return supdrvNtCompleteRequestEx(STATUS_SUCCESS, FILE_OPENED, pIrp); + + rcNt = STATUS_ACCESS_DENIED; + } +#ifdef VBOX_WITH_HARDENING + /* + * Anyone can open the error device. + */ + else if (pDevObj == g_pDevObjErrorInfo) + { + pFileObj->FsContext = NULL; + return supdrvNtCompleteRequestEx(STATUS_SUCCESS, FILE_OPENED, pIrp); + } +#endif else { +#if defined(VBOX_WITH_HARDENING) && !defined(VBOX_WITHOUT_DEBUGGER_CHECKS) /* - * Call common code for the rest. + * Make sure no debuggers are attached to non-user processes. */ - pFileObj->FsContext = NULL; - PSUPDRVSESSION pSession; - int rc = supdrvCreateSession(pDevExt, true /*fUser*/, &pSession); - if (!rc) - pFileObj->FsContext = pSession; - rcNt = pIrp->IoStatus.Status = VBoxDrvNtErr2NtStatus(rc); - } + if ( pDevObj != g_pDevObjUsr + && supdrvNtIsDebuggerAttached()) + { + LogRel(("vboxdrv: Process %p is being debugged, access to vboxdrv / vboxdrvu declined.\n", + PsGetProcessId(PsGetCurrentProcess()))); + rcNt = STATUS_TRUST_FAILURE; + } + else +#endif + { + int rc = VINF_SUCCESS; - pIrp->IoStatus.Information = 0; - IoCompleteRequest(pIrp, IO_NO_INCREMENT); +#ifdef VBOX_WITH_HARDENING + /* + * Access to the stub device is only granted to processes which + * passes verification. + * + * Note! The stub device has no need for a SUPDRVSESSION structure, + * so the it uses the SUPDRVNTPROTECT directly instead. + */ + if (pDevObj == g_pDevObjStub) + { + PSUPDRVNTPROTECT pNtProtect = NULL; + rc = supdrvNtProtectCreate(&pNtProtect, PsGetProcessId(PsGetCurrentProcess()), + kSupDrvNtProtectKind_StubUnverified, true /*fLink*/); + if (RT_SUCCESS(rc)) + { + rc = supdrvNtProtectFindAssociatedCsrss(pNtProtect); + if (RT_SUCCESS(rc)) + rc = supdrvNtProtectVerifyProcess(pNtProtect); + if (RT_SUCCESS(rc)) + { + pFileObj->FsContext = pNtProtect; /* Keeps reference. */ + return supdrvNtCompleteRequestEx(STATUS_SUCCESS, FILE_OPENED, pIrp); + } - return rcNt; + supdrvNtProtectRelease(pNtProtect); + } + LogRel(("vboxdrv: Declined %p access to VBoxDrvStub: rc=%d\n", PsGetProcessId(PsGetCurrentProcess()), rc)); + } + /* + * Unrestricted access is only granted to a process in the + * VmProcessUnconfirmed state that checks out correctly and is + * allowed to transition to VmProcessConfirmed. Again, only one + * session per process. + */ + else if (pDevObj != g_pDevObjUsr) + { + PSUPDRVNTPROTECT pNtProtect = supdrvNtProtectLookup(PsGetProcessId(PsGetCurrentProcess())); + if (pNtProtect) + { + if (pNtProtect->enmProcessKind == kSupDrvNtProtectKind_VmProcessUnconfirmed) + { + rc = supdrvNtProtectVerifyProcess(pNtProtect); + if (RT_SUCCESS(rc)) + { + /* Create a session. */ + PSUPDRVSESSION pSession; + rc = supdrvCreateSession(pDevExt, true /*fUser*/, pDevObj == g_pDevObjSys /*fUnrestricted*/, + &pSession); + if (RT_SUCCESS(rc)) + { + rc = supdrvSessionHashTabInsert(pDevExt, pSession, (PSUPDRVSESSION *)&pFileObj->FsContext, NULL); + supdrvSessionRelease(pSession); + if (RT_SUCCESS(rc)) + { + pSession->pNtProtect = pNtProtect; /* Keeps reference. */ + return supdrvNtCompleteRequestEx(STATUS_SUCCESS, FILE_OPENED, pIrp); + } + } + + /* No second attempt. */ + RTSPINLOCKTMP Tmp = RTSPINLOCKTMP_INITIALIZER; + RTSpinlockAcquire(g_hNtProtectLock, &Tmp); + if (pNtProtect->enmProcessKind == kSupDrvNtProtectKind_VmProcessConfirmed) + pNtProtect->enmProcessKind = kSupDrvNtProtectKind_VmProcessDead; + RTSpinlockRelease(g_hNtProtectLock, &Tmp); + + LogRel(("vboxdrv: supdrvCreateSession failed for process %p: rc=%d.\n", + PsGetProcessId(PsGetCurrentProcess()), rc)); + } + else + LogRel(("vboxdrv: Process %p failed process verification: rc=%d.\n", + PsGetProcessId(PsGetCurrentProcess()), rc)); + } + else + { + LogRel(("vboxdrv: %p is not a budding VM process (enmProcessKind=%d).\n", + PsGetProcessId(PsGetCurrentProcess()), pNtProtect->enmProcessKind)); + rc = VERR_SUPDRV_NOT_BUDDING_VM_PROCESS_2; + } + supdrvNtProtectRelease(pNtProtect); + } + else + { + LogRel(("vboxdrv: %p is not a budding VM process.\n", PsGetProcessId(PsGetCurrentProcess()))); + rc = VERR_SUPDRV_NOT_BUDDING_VM_PROCESS_1; + } + } + /* + * Call common code to create an unprivileged session. + */ + else + { + PSUPDRVSESSION pSession; + rc = supdrvCreateSession(pDevExt, true /*fUser*/, false /*fUnrestricted*/, &pSession); + if (RT_SUCCESS(rc)) + { + rc = supdrvSessionHashTabInsert(pDevExt, pSession, (PSUPDRVSESSION *)&pFileObj->FsContext, NULL); + supdrvSessionRelease(pSession); + if (RT_SUCCESS(rc)) + { + pFileObj->FsContext = pSession; /* Keeps reference. No race. */ + pSession->pNtProtect = NULL; + return supdrvNtCompleteRequestEx(STATUS_SUCCESS, FILE_OPENED, pIrp); + } + } + } + +#else /* !VBOX_WITH_HARDENING */ + /* + * Call common code to create a session. + */ + pFileObj->FsContext = NULL; + PSUPDRVSESSION pSession; + rc = supdrvCreateSession(pDevExt, true /*fUser*/, pDevObj == g_pDevObjSys /*fUnrestricted*/, &pSession); + if (RT_SUCCESS(rc)) + { + rc = supdrvSessionHashTabInsert(pDevExt, pSession, (PSUPDRVSESSION *)&pFileObj->FsContext, NULL); + supdrvSessionRelease(pSession); + if (RT_SUCCESS(rc)) + return supdrvNtCompleteRequestEx(STATUS_SUCCESS, FILE_OPENED, pIrp); + + } +#endif /* !VBOX_WITH_HARDENING */ + + /* bail out */ + rcNt = VBoxDrvNtErr2NtStatus(rc); + } + } + + Assert(!NT_SUCCESS(rcNt)); + pFileObj->FsContext = NULL; + return supdrvNtCompleteRequest(rcNt, pIrp); /* Note. the IoStatus is completely ignored on error. */ } @@ -285,23 +925,37 @@ */ NTSTATUS _stdcall VBoxDrvNtCleanup(PDEVICE_OBJECT pDevObj, PIRP pIrp) { - PSUPDRVDEVEXT pDevExt = (PSUPDRVDEVEXT)pDevObj->DeviceExtension; + PSUPDRVDEVEXT pDevExt = SUPDRVNT_GET_DEVEXT(pDevObj); PIO_STACK_LOCATION pStack = IoGetCurrentIrpStackLocation(pIrp); PFILE_OBJECT pFileObj = pStack->FileObject; - PSUPDRVSESSION pSession = (PSUPDRVSESSION)pFileObj->FsContext; - Log(("VBoxDrvNtCleanup: pDevExt=%p pFileObj=%p pSession=%p\n", pDevExt, pFileObj, pSession)); - if (pSession) +#ifdef VBOX_WITH_HARDENING + if (pDevObj == g_pDevObjStub) { - supdrvCloseSession(pDevExt, (PSUPDRVSESSION)pFileObj->FsContext); - pFileObj->FsContext = NULL; + PSUPDRVNTPROTECT pNtProtect = (PSUPDRVNTPROTECT)pFileObj->FsContext; + Log(("VBoxDrvNtCleanup: pDevExt=%p pFileObj=%p pNtProtect=%p\n", pDevExt, pFileObj, pNtProtect)); + if (pNtProtect) + { + supdrvNtProtectRelease(pNtProtect); + pFileObj->FsContext = NULL; + } + } + else if (pDevObj == g_pDevObjErrorInfo) + supdrvNtErrorInfoCleanupProcess(PsGetCurrentProcessId()); + else +#endif + { + PSUPDRVSESSION pSession = supdrvSessionHashTabLookup(pDevExt, RTProcSelf(), RTR0ProcHandleSelf(), + (PSUPDRVSESSION *)&pFileObj->FsContext); + Log(("VBoxDrvNtCleanup: pDevExt=%p pFileObj=%p pSession=%p\n", pDevExt, pFileObj, pSession)); + if (pSession) + { + supdrvSessionHashTabRemove(pDevExt, pSession, NULL); + supdrvSessionRelease(pSession); /* Drops the reference from supdrvSessionHashTabLookup. */ + } } - pIrp->IoStatus.Information = 0; - pIrp->IoStatus.Status = STATUS_SUCCESS; - IoCompleteRequest(pIrp, IO_NO_INCREMENT); - - return STATUS_SUCCESS; + return supdrvNtCompleteRequest(STATUS_SUCCESS, pIrp); } @@ -313,66 +967,306 @@ */ NTSTATUS _stdcall VBoxDrvNtClose(PDEVICE_OBJECT pDevObj, PIRP pIrp) { - PSUPDRVDEVEXT pDevExt = (PSUPDRVDEVEXT)pDevObj->DeviceExtension; + PSUPDRVDEVEXT pDevExt = SUPDRVNT_GET_DEVEXT(pDevObj); PIO_STACK_LOCATION pStack = IoGetCurrentIrpStackLocation(pIrp); PFILE_OBJECT pFileObj = pStack->FileObject; - PSUPDRVSESSION pSession = (PSUPDRVSESSION)pFileObj->FsContext; - Log(("VBoxDrvNtClose: pDevExt=%p pFileObj=%p pSession=%p\n", pDevExt, pFileObj, pSession)); - if (pSession) +#ifdef VBOX_WITH_HARDENING + if (pDevObj == g_pDevObjStub) { - supdrvCloseSession(pDevExt, (PSUPDRVSESSION)pFileObj->FsContext); - pFileObj->FsContext = NULL; + PSUPDRVNTPROTECT pNtProtect = (PSUPDRVNTPROTECT)pFileObj->FsContext; + Log(("VBoxDrvNtClose: pDevExt=%p pFileObj=%p pNtProtect=%p\n", pDevExt, pFileObj, pNtProtect)); + if (pNtProtect) + { + supdrvNtProtectRelease(pNtProtect); + pFileObj->FsContext = NULL; + } + } + else if (pDevObj == g_pDevObjErrorInfo) + supdrvNtErrorInfoCleanupProcess(PsGetCurrentProcessId()); + else +#endif + { + PSUPDRVSESSION pSession = supdrvSessionHashTabLookup(pDevExt, RTProcSelf(), RTR0ProcHandleSelf(), + (PSUPDRVSESSION *)&pFileObj->FsContext); + Log(("VBoxDrvNtCleanup: pDevExt=%p pFileObj=%p pSession=%p\n", pDevExt, pFileObj, pSession)); + if (pSession) + { + supdrvSessionHashTabRemove(pDevExt, pSession, NULL); + supdrvSessionRelease(pSession); /* Drops the reference from supdrvSessionHashTabLookup. */ + } } - pIrp->IoStatus.Information = 0; - pIrp->IoStatus.Status = STATUS_SUCCESS; - IoCompleteRequest(pIrp, IO_NO_INCREMENT); - - return STATUS_SUCCESS; + return supdrvNtCompleteRequest(STATUS_SUCCESS, pIrp); } +#ifdef VBOXDRV_WITH_FAST_IO /** - * Device I/O Control entry point. + * Fast I/O device control callback. * - * @param pDevObj Device object. - * @param pIrp Request packet. + * This performs no buffering, neither on the way in or out. + * + * @returns TRUE if handled, FALSE if the normal I/O control routine should be + * called. + * @param pFileObj The file object. + * @param fWait Whether it's a blocking call + * @param pvInput The input buffer as specified by the user. + * @param cbInput The size of the input buffer. + * @param pvOutput The output buffer as specfied by the user. + * @param cbOutput The size of the output buffer. + * @param uFunction The function. + * @param pIoStatus Where to return the status of the operation. + * @param pDevObj The device object.. */ -NTSTATUS _stdcall VBoxDrvNtDeviceControl(PDEVICE_OBJECT pDevObj, PIRP pIrp) +static BOOLEAN _stdcall VBoxDrvNtFastIoDeviceControl(PFILE_OBJECT pFileObj, BOOLEAN fWait, PVOID pvInput, ULONG cbInput, + PVOID pvOutput, ULONG cbOutput, ULONG uCmd, + PIO_STATUS_BLOCK pIoStatus, PDEVICE_OBJECT pDevObj) { - PSUPDRVDEVEXT pDevExt = (PSUPDRVDEVEXT)pDevObj->DeviceExtension; - PIO_STACK_LOCATION pStack = IoGetCurrentIrpStackLocation(pIrp); - PSUPDRVSESSION pSession = (PSUPDRVSESSION)pStack->FileObject->FsContext; - - /* - * Deal with the two high-speed IOCtl that takes it's arguments from - * the session and iCmd, and only returns a VBox status code. - * - * Note: The previous method of returning the rc prior to IOC version - * 7.4 has been abandond, we're no longer compatible with that - * interface. - */ - ULONG ulCmd = pStack->Parameters.DeviceIoControl.IoControlCode; - if ( ulCmd == SUP_IOCTL_FAST_DO_RAW_RUN - || ulCmd == SUP_IOCTL_FAST_DO_HWACC_RUN - || ulCmd == SUP_IOCTL_FAST_DO_NOP) + /* + * Only the normal devices, not the stub or error info ones. + */ + if (pDevObj != g_pDevObjSys && pDevObj != g_pDevObjUsr) { -#ifdef VBOX_WITH_VMMR0_DISABLE_PREEMPTION - int rc = supdrvIOCtlFast(ulCmd, (unsigned)(uintptr_t)pIrp->UserBuffer /* VMCPU id */, pDevExt, pSession); -#else - /* Raise the IRQL to DISPATCH_LEVEL to prevent Windows from rescheduling us to another CPU/core. */ - Assert(KeGetCurrentIrql() <= DISPATCH_LEVEL); - KIRQL oldIrql; - KeRaiseIrql(DISPATCH_LEVEL, &oldIrql); - int rc = supdrvIOCtlFast(ulCmd, (unsigned)(uintptr_t)pIrp->UserBuffer /* VMCPU id */, pDevExt, pSession); - KeLowerIrql(oldIrql); -#endif + pIoStatus->Status = STATUS_NOT_SUPPORTED; + pIoStatus->Information = 0; + return TRUE; + } - /* Complete the I/O request. */ - NTSTATUS rcNt = pIrp->IoStatus.Status = RT_SUCCESS(rc) ? STATUS_SUCCESS : STATUS_INVALID_PARAMETER; - IoCompleteRequest(pIrp, IO_NO_INCREMENT); - return rcNt; + /* + * Check the input a little bit and get a the session references. + */ + PSUPDRVDEVEXT pDevExt = SUPDRVNT_GET_DEVEXT(pDevObj); + PSUPDRVSESSION pSession = supdrvSessionHashTabLookup(pDevExt, RTProcSelf(), RTR0ProcHandleSelf(), + (PSUPDRVSESSION *)&pFileObj->FsContext); + if (!pSession) + { + pIoStatus->Status = STATUS_TRUST_FAILURE; + pIoStatus->Information = 0; + return TRUE; + } + + if (pSession->fUnrestricted) + { +#if defined(VBOX_WITH_HARDENING) && !defined(VBOX_WITHOUT_DEBUGGER_CHECKS) + if (supdrvNtIsDebuggerAttached()) + { + pIoStatus->Status = STATUS_TRUST_FAILURE; + pIoStatus->Information = 0; + supdrvSessionRelease(pSession); + return TRUE; + } +#endif + + /* + * Deal with the 2-3 high-speed IOCtl that takes their arguments from + * the session and iCmd, and does not return anything. + */ + if ( uCmd == SUP_IOCTL_FAST_DO_RAW_RUN + || uCmd == SUP_IOCTL_FAST_DO_HWACC_RUN + || uCmd == SUP_IOCTL_FAST_DO_NOP) + { + int rc = supdrvIOCtlFast(uCmd, (unsigned)(uintptr_t)pvOutput/* VMCPU id */, pDevExt, pSession); + pIoStatus->Status = RT_SUCCESS(rc) ? STATUS_SUCCESS : STATUS_INVALID_PARAMETER; + pIoStatus->Information = 0; /* Could be used to pass rc if we liked. */ + supdrvSessionRelease(pSession); + return TRUE; + } + } + + /* + * The normal path. + */ + NTSTATUS rcNt; + unsigned cbOut = 0; + int rc = 0; + Log2(("VBoxDrvNtFastIoDeviceControl(%p): ioctl=%#x pvIn=%p cbIn=%#x pvOut=%p cbOut=%#x pSession=%p\n", + pDevExt, uCmd, pvInput, cbInput, pvOutput, cbOutput, pSession)); + +# ifdef RT_ARCH_AMD64 + /* Don't allow 32-bit processes to do any I/O controls. */ + if (!IoIs32bitProcess(NULL)) +# endif + { + /* + * In this fast I/O device control path we have to do our own buffering. + */ + /* Verify that the I/O control function matches our pattern. */ + if ((uCmd & 0x3) == METHOD_BUFFERED) + { + /* Get the header so we can validate it a little bit against the + parameters before allocating any memory kernel for the reqest. */ + SUPREQHDR Hdr; + if (cbInput >= sizeof(Hdr) && cbOutput >= sizeof(Hdr)) + { + __try + { + RtlCopyMemory(&Hdr, pvInput, sizeof(Hdr)); + rcNt = STATUS_SUCCESS; + } + __except(EXCEPTION_EXECUTE_HANDLER) + { + rcNt = GetExceptionCode(); + } + } + else + rcNt = STATUS_INVALID_PARAMETER; + if (NT_SUCCESS(rcNt)) + { + /* Verify that the sizes in the request header are correct. */ + ULONG cbBuf = RT_MAX(cbInput, cbOutput); + if ( cbInput == Hdr.cbIn + && cbOutput == Hdr.cbOut + && cbBuf < _1M*16) + { + /* Allocate a buffer and copy all the input into it. */ + PSUPREQHDR pHdr = (PSUPREQHDR)ExAllocatePoolWithTag(NonPagedPool, cbBuf, 'VBox'); + if (pHdr) + { + __try + { + RtlCopyMemory(pHdr, pvInput, cbInput); + if (cbInput < cbBuf) + RtlZeroMemory((uint8_t *)pHdr + cbInput, cbBuf - cbInput); + if (!memcmp(pHdr, &Hdr, sizeof(Hdr))) + rcNt = STATUS_SUCCESS; + else + rcNt = STATUS_INVALID_PARAMETER; + } + __except(EXCEPTION_EXECUTE_HANDLER) + { + rcNt = GetExceptionCode(); + } + if (NT_SUCCESS(rcNt)) + { + /* + * Now call the common code to do the real work. + */ + rc = supdrvIOCtl(uCmd, pDevExt, pSession, pHdr, cbBuf); + if (RT_SUCCESS(rc)) + { + /* + * Copy back the result. + */ + cbOut = pHdr->cbOut; + if (cbOut > cbOutput) + { + cbOut = cbOutput; + OSDBGPRINT(("VBoxDrvNtFastIoDeviceControl: too much output! %#x > %#x; uCmd=%#x!\n", + pHdr->cbOut, cbOut, uCmd)); + } + if (cbOut) + { + __try + { + RtlCopyMemory(pvOutput, pHdr, cbOut); + rcNt = STATUS_SUCCESS; + } + __except(EXCEPTION_EXECUTE_HANDLER) + { + rcNt = GetExceptionCode(); + } + } + else + rcNt = STATUS_SUCCESS; + } + else if (rc == VERR_INVALID_PARAMETER) + rcNt = STATUS_INVALID_PARAMETER; + else + rcNt = STATUS_NOT_SUPPORTED; + Log2(("VBoxDrvNtFastIoDeviceControl: returns %#x cbOut=%d rc=%#x\n", rcNt, cbOut, rc)); + } + else + Log(("VBoxDrvNtFastIoDeviceControl: Error reading %u bytes of user memory at %p (uCmd=%#x)\n", + cbInput, pvInput, uCmd)); + ExFreePoolWithTag(pHdr, 'VBox'); + } + else + rcNt = STATUS_NO_MEMORY; + } + else + { + Log(("VBoxDrvNtFastIoDeviceControl: Mismatching sizes (%#x) - Hdr=%#lx/%#lx Irp=%#lx/%#lx!\n", + uCmd, Hdr.cbIn, Hdr.cbOut, cbInput, cbOutput)); + rcNt = STATUS_INVALID_PARAMETER; + } + } + } + else + { + Log(("VBoxDrvNtFastIoDeviceControl: not buffered request (%#x) - not supported\n", uCmd)); + rcNt = STATUS_NOT_SUPPORTED; + } + } +# ifdef RT_ARCH_AMD64 + else + { + Log(("VBoxDrvNtFastIoDeviceControl: WOW64 req - not supported\n")); + rcNt = STATUS_NOT_SUPPORTED; + } +# endif + + /* complete the request. */ + pIoStatus->Status = rcNt; + pIoStatus->Information = cbOut; + supdrvSessionRelease(pSession); + return TRUE; /* handled. */ +} +#endif /* VBOXDRV_WITH_FAST_IO */ + + +/** + * Device I/O Control entry point. + * + * @param pDevObj Device object. + * @param pIrp Request packet. + */ +NTSTATUS _stdcall VBoxDrvNtDeviceControl(PDEVICE_OBJECT pDevObj, PIRP pIrp) +{ + VBOXDRV_COMPLETE_IRP_AND_RETURN_IF_STUB_OR_ERROR_INFO_DEV(pDevObj, pIrp); + + PSUPDRVDEVEXT pDevExt = SUPDRVNT_GET_DEVEXT(pDevObj); + PIO_STACK_LOCATION pStack = IoGetCurrentIrpStackLocation(pIrp); + PSUPDRVSESSION pSession = supdrvSessionHashTabLookup(pDevExt, RTProcSelf(), RTR0ProcHandleSelf(), + (PSUPDRVSESSION *)&pStack->FileObject->FsContext); + + if (!RT_VALID_PTR(pSession)) + return supdrvNtCompleteRequest(STATUS_TRUST_FAILURE, pIrp); + + /* + * Deal with the 2-3 high-speed IOCtl that takes their arguments from + * the session and iCmd, and does not return anything. + */ + if (pSession->fUnrestricted) + { +#if defined(VBOX_WITH_HARDENING) && !defined(VBOX_WITHOUT_DEBUGGER_CHECKS) + if (supdrvNtIsDebuggerAttached()) + { + supdrvSessionRelease(pSession); + return supdrvNtCompleteRequest(STATUS_TRUST_FAILURE, pIrp); + } +#endif + + ULONG ulCmd = pStack->Parameters.DeviceIoControl.IoControlCode; + if ( ulCmd == SUP_IOCTL_FAST_DO_RAW_RUN + || ulCmd == SUP_IOCTL_FAST_DO_HWACC_RUN + || ulCmd == SUP_IOCTL_FAST_DO_NOP) + { +#ifdef VBOX_WITH_VMMR0_DISABLE_PREEMPTION + int rc = supdrvIOCtlFast(ulCmd, (unsigned)(uintptr_t)pIrp->UserBuffer /* VMCPU id */, pDevExt, pSession); +#else + /* Raise the IRQL to DISPATCH_LEVEL to prevent Windows from rescheduling us to another CPU/core. */ + Assert(KeGetCurrentIrql() <= DISPATCH_LEVEL); + KIRQL oldIrql; + KeRaiseIrql(DISPATCH_LEVEL, &oldIrql); + int rc = supdrvIOCtlFast(ulCmd, (unsigned)(uintptr_t)pIrp->UserBuffer /* VMCPU id */, pDevExt, pSession); + KeLowerIrql(oldIrql); +#endif + + /* Complete the I/O request. */ + supdrvSessionRelease(pSession); + return supdrvNtCompleteRequest(RT_SUCCESS(rc) ? STATUS_SUCCESS : STATUS_INVALID_PARAMETER, pIrp); + } } return VBoxDrvNtDeviceControlSlow(pDevExt, pSession, pIrp, pStack); @@ -413,10 +1307,15 @@ && pStack->Parameters.DeviceIoControl.InputBufferLength == pHdr->cbIn && pStack->Parameters.DeviceIoControl.OutputBufferLength == pHdr->cbOut) { + /* Zero extra output bytes to make sure we don't leak anything. */ + if (pHdr->cbIn < pHdr->cbOut) + RtlZeroMemory((uint8_t *)pHdr + pHdr->cbIn, pHdr->cbOut - pHdr->cbIn); + /* * Do the job. */ - rc = supdrvIOCtl(pStack->Parameters.DeviceIoControl.IoControlCode, pDevExt, pSession, pHdr); + rc = supdrvIOCtl(pStack->Parameters.DeviceIoControl.IoControlCode, pDevExt, pSession, pHdr, + RT_MAX(pHdr->cbIn, pHdr->cbOut)); if (!rc) { rcNt = STATUS_SUCCESS; @@ -461,6 +1360,7 @@ /* complete the request. */ pIrp->IoStatus.Status = rcNt; pIrp->IoStatus.Information = cbOut; + supdrvSessionRelease(pSession); IoCompleteRequest(pIrp, IO_NO_INCREMENT); return rcNt; } @@ -474,8 +1374,10 @@ */ NTSTATUS _stdcall VBoxDrvNtInternalDeviceControl(PDEVICE_OBJECT pDevObj, PIRP pIrp) { - PSUPDRVDEVEXT pDevExt = (PSUPDRVDEVEXT)pDevObj->DeviceExtension; - PIO_STACK_LOCATION pStack = IoGetCurrentIrpStackLocation(pIrp); + VBOXDRV_COMPLETE_IRP_AND_RETURN_IF_STUB_OR_ERROR_INFO_DEV(pDevObj, pIrp); + + PSUPDRVDEVEXT pDevExt = SUPDRVNT_GET_DEVEXT(pDevObj); + PIO_STACK_LOCATION pStack = IoGetCurrentIrpStackLocation(pIrp); PFILE_OBJECT pFileObj = pStack ? pStack->FileObject : NULL; PSUPDRVSESSION pSession = pFileObj ? (PSUPDRVSESSION)pFileObj->FsContext : NULL; NTSTATUS rcNt; @@ -556,6 +1458,123 @@ /** + * Implementation of the read major function for VBoxDrvErrorInfo. + * + * This is a stub function for the other devices. + * + * @returns NT status code. + * @param pDevObj The device object. + * @param pIrp The I/O request packet. + */ +NTSTATUS _stdcall VBoxDrvNtRead(PDEVICE_OBJECT pDevObj, PIRP pIrp) +{ + Log(("VBoxDrvNtRead\n")); + + NTSTATUS rcNt; + pIrp->IoStatus.Information = 0; + +#ifdef VBOX_WITH_HARDENING + /* + * VBoxDrvErrorInfo? + */ + if (pDevObj == g_pDevObjErrorInfo) + { + PIO_STACK_LOCATION pStack = IoGetCurrentIrpStackLocation(pIrp); + if ( pStack + && (pIrp->Flags & IRP_BUFFERED_IO)) + { + /* + * Look up the process error information. + */ + HANDLE hCurThreadId = PsGetCurrentThreadId(); + HANDLE hCurProcessId = PsGetCurrentProcessId(); + int rc = RTSemMutexRequestNoResume(g_hErrorInfoLock, RT_INDEFINITE_WAIT); + if (RT_SUCCESS(rc)) + { + PSUPDRVNTERRORINFO pCur; + RTListForEach(&g_ErrorInfoHead, pCur, SUPDRVNTERRORINFO, ListEntry) + { + if ( pCur->hProcessId == hCurProcessId + && pCur->hThreadId == hCurThreadId) + break; + } + + /* + * Did we find error info and is the caller requesting data within it? + * If so, check the destination buffer and copy the data into it. + */ + if ( pCur + && pStack->Parameters.Read.ByteOffset.QuadPart < pCur->cchErrorInfo + && pStack->Parameters.Read.ByteOffset.QuadPart >= 0) + { + PVOID pvDstBuf = pIrp->AssociatedIrp.SystemBuffer; + if (pvDstBuf) + { + uint32_t offRead = (uint32_t)pStack->Parameters.Read.ByteOffset.QuadPart; + uint32_t cbToRead = pCur->cchErrorInfo - offRead; + if (cbToRead < pStack->Parameters.Read.Length) + RT_BZERO((uint8_t *)pvDstBuf + cbToRead, pStack->Parameters.Read.Length - cbToRead); + else + cbToRead = pStack->Parameters.Read.Length; + memcpy(pvDstBuf, &pCur->szErrorInfo[offRead], cbToRead); + pIrp->IoStatus.Information = cbToRead; + + rcNt = STATUS_SUCCESS; + } + else + rcNt = STATUS_INVALID_ADDRESS; + } + /* + * End of file. Free the info. + */ + else if (pCur) + { + RTListNodeRemove(&pCur->ListEntry); + RTMemFree(pCur); + rcNt = STATUS_END_OF_FILE; + } + /* + * We found no error info. Return EOF. + */ + else + rcNt = STATUS_END_OF_FILE; + + RTSemMutexRelease(g_hErrorInfoLock); + } + else + rcNt = STATUS_UNSUCCESSFUL; + + /* Paranoia: Clear the buffer on failure. */ + if (!NT_SUCCESS(rcNt)) + { + PVOID pvDstBuf = pIrp->AssociatedIrp.SystemBuffer; + if ( pvDstBuf + && pStack->Parameters.Read.Length) + RT_BZERO(pvDstBuf, pStack->Parameters.Read.Length); + } + } + else + rcNt = STATUS_INVALID_PARAMETER; + } + else +#endif /* VBOX_WITH_HARDENING */ + { + /* + * Stub. + */ + rcNt = STATUS_NOT_SUPPORTED; + } + + /* + * Complete the request. + */ + pIrp->IoStatus.Status = rcNt; + IoCompleteRequest(pIrp, IO_NO_INCREMENT); + return rcNt; +} + + +/** * Stub function for functions we don't implemented. * * @returns STATUS_NOT_SUPPORTED @@ -565,7 +1584,7 @@ NTSTATUS _stdcall VBoxDrvNtNotSupportedStub(PDEVICE_OBJECT pDevObj, PIRP pIrp) { Log(("VBoxDrvNtNotSupportedStub\n")); - pDevObj = pDevObj; + NOREF(pDevObj); pIrp->IoStatus.Information = 0; pIrp->IoStatus.Status = STATUS_NOT_SUPPORTED; @@ -603,6 +1622,36 @@ /** + * Called to clean up the session structure before it's freed. + * + * @param pDevExt The device globals. + * @param pSession The session that's being cleaned up. + */ +void VBOXCALL supdrvOSCleanupSession(PSUPDRVDEVEXT pDevExt, PSUPDRVSESSION pSession) +{ +#ifdef VBOX_WITH_HARDENING + if (pSession->pNtProtect) + { + supdrvNtProtectRelease(pSession->pNtProtect); + pSession->pNtProtect = NULL; + } +#endif +} + + +void VBOXCALL supdrvOSSessionHashTabInserted(PSUPDRVDEVEXT pDevExt, PSUPDRVSESSION pSession, void *pvUser) +{ + NOREF(pDevExt); NOREF(pSession); NOREF(pvUser); +} + + +void VBOXCALL supdrvOSSessionHashTabRemoved(PSUPDRVDEVEXT pDevExt, PSUPDRVSESSION pSession, void *pvUser) +{ + NOREF(pDevExt); NOREF(pSession); NOREF(pvUser); +} + + +/** * Initializes any OS specific object creator fields. */ void VBOXCALL supdrvOSObjInitCreator(PSUPDRVOBJ pObj, PSUPDRVSESSION pSession) @@ -756,10 +1805,10 @@ case /* 0xC0000263 */ STATUS_DRIVER_ENTRYPOINT_NOT_FOUND: rc = VERR_LDR_IMPORTED_SYMBOL_NOT_FOUND; break; - case 0xC0000428 /* STATUS_INVALID_IMAGE_HASH */ : + case /* 0xC0000428 */ STATUS_INVALID_IMAGE_HASH: rc = VERR_LDR_IMAGE_HASH; break; - case 0xC000010E /* STATUS_IMAGE_ALREADY_LOADED */ : + case /* 0xC000010E */ STATUS_IMAGE_ALREADY_LOADED: Log(("WARNING: see #4853 for cause of this failure on Windows 7 x64\n")); rc = VERR_ALREADY_LOADED; break; @@ -828,25 +1877,44 @@ return VINF_SUCCESS; /* - * However, on Windows Server 2003 (sp2 x86) both import thunk tables - * are fixed up and we typically get a mismatch in the INIT section. + * On Windows 10 the ImageBase member of the optional header is sometimes + * updated with the actual load address and sometimes not. Try compare + * + */ + uint32_t const offNtHdrs = *(uint16_t *)pbImageBits == IMAGE_DOS_SIGNATURE + ? ((IMAGE_DOS_HEADER const *)pbImageBits)->e_lfanew + : 0; + AssertLogRelReturn(offNtHdrs + sizeof(IMAGE_NT_HEADERS) < pImage->cbImageBits, VERR_INTERNAL_ERROR_5); + IMAGE_NT_HEADERS const *pNtHdrsIprt = (IMAGE_NT_HEADERS const *)(pbImageBits + offNtHdrs); + IMAGE_NT_HEADERS const *pNtHdrsNtLd = (IMAGE_NT_HEADERS const *)((uintptr_t)pImage->pvImage + offNtHdrs); + + uint32_t const offImageBase = offNtHdrs + RT_OFFSETOF(IMAGE_NT_HEADERS, OptionalHeader.ImageBase); + uint32_t const cbImageBase = RT_SIZEOFMEMB(IMAGE_NT_HEADERS, OptionalHeader.ImageBase); + if ( pNtHdrsNtLd->OptionalHeader.ImageBase != pNtHdrsIprt->OptionalHeader.ImageBase + && ( pNtHdrsNtLd->OptionalHeader.ImageBase == (uintptr_t)pImage->pvImage + || pNtHdrsIprt->OptionalHeader.ImageBase == (uintptr_t)pImage->pvImage) + && pNtHdrsIprt->Signature == IMAGE_NT_SIGNATURE + && pNtHdrsIprt->OptionalHeader.Magic == IMAGE_NT_OPTIONAL_HDR_MAGIC + && !memcmp(pImage->pvImage, pbImageBits, offImageBase) + && !memcmp((uint8_t const *)pImage->pvImage + offImageBase + cbImageBase, + pbImageBits + offImageBase + cbImageBase, + pImage->cbImageBits - offImageBase - cbImageBase)) + return VINF_SUCCESS; + + /* + * On Windows Server 2003 (sp2 x86) both import thunk tables are fixed + * up and we typically get a mismatch in the INIT section. * * So, lets see if everything matches when excluding the - * OriginalFirstThunk tables. To make life simpler, set the max number - * of imports to 16 and just record and sort the locations that needs - * to be excluded from the comparison. - */ - IMAGE_NT_HEADERS const *pNtHdrs; - pNtHdrs = (IMAGE_NT_HEADERS const *)(pbImageBits - + ( *(uint16_t *)pbImageBits == IMAGE_DOS_SIGNATURE - ? ((IMAGE_DOS_HEADER const *)pbImageBits)->e_lfanew - : 0)); - if ( pNtHdrs->Signature == IMAGE_NT_SIGNATURE - && pNtHdrs->OptionalHeader.Magic == IMAGE_NT_OPTIONAL_HDR_MAGIC - && pNtHdrs->OptionalHeader.NumberOfRvaAndSizes > IMAGE_DIRECTORY_ENTRY_IMPORT - && pNtHdrs->OptionalHeader.DataDirectory[IMAGE_DIRECTORY_ENTRY_IMPORT].Size >= sizeof(IMAGE_IMPORT_DESCRIPTOR) - && pNtHdrs->OptionalHeader.DataDirectory[IMAGE_DIRECTORY_ENTRY_IMPORT].VirtualAddress > sizeof(IMAGE_NT_HEADERS) - && pNtHdrs->OptionalHeader.DataDirectory[IMAGE_DIRECTORY_ENTRY_IMPORT].VirtualAddress < pImage->cbImageBits + * OriginalFirstThunk tables and (maybe) the ImageBase member. + * For simplicity the max number of exclusion regions is set to 16. + */ + if ( pNtHdrsIprt->Signature == IMAGE_NT_SIGNATURE + && pNtHdrsIprt->OptionalHeader.Magic == IMAGE_NT_OPTIONAL_HDR_MAGIC + && pNtHdrsIprt->OptionalHeader.NumberOfRvaAndSizes > IMAGE_DIRECTORY_ENTRY_IMPORT + && pNtHdrsIprt->OptionalHeader.DataDirectory[IMAGE_DIRECTORY_ENTRY_IMPORT].Size >= sizeof(IMAGE_IMPORT_DESCRIPTOR) + && pNtHdrsIprt->OptionalHeader.DataDirectory[IMAGE_DIRECTORY_ENTRY_IMPORT].VirtualAddress > sizeof(IMAGE_NT_HEADERS) + && pNtHdrsIprt->OptionalHeader.DataDirectory[IMAGE_DIRECTORY_ENTRY_IMPORT].VirtualAddress < pImage->cbImageBits ) { struct MyRegion @@ -855,11 +1923,23 @@ uint32_t cb; } aExcludeRgns[16]; unsigned cExcludeRgns = 0; - uint32_t cImpsLeft = pNtHdrs->OptionalHeader.DataDirectory[IMAGE_DIRECTORY_ENTRY_IMPORT].Size + + /* ImageBase: */ + if ( pNtHdrsNtLd->OptionalHeader.ImageBase != pNtHdrsIprt->OptionalHeader.ImageBase + && ( pNtHdrsNtLd->OptionalHeader.ImageBase == (uintptr_t)pImage->pvImage + || pNtHdrsIprt->OptionalHeader.ImageBase == (uintptr_t)pImage->pvImage) ) + { + aExcludeRgns[cExcludeRgns].uRva = offImageBase; + aExcludeRgns[cExcludeRgns].cb = cbImageBase; + cExcludeRgns++; + } + + /* Imports: */ + uint32_t cImpsLeft = pNtHdrsIprt->OptionalHeader.DataDirectory[IMAGE_DIRECTORY_ENTRY_IMPORT].Size / sizeof(IMAGE_IMPORT_DESCRIPTOR); - IMAGE_IMPORT_DESCRIPTOR const *pImp; - pImp = (IMAGE_IMPORT_DESCRIPTOR const *)(pbImageBits - + pNtHdrs->OptionalHeader.DataDirectory[IMAGE_DIRECTORY_ENTRY_IMPORT].VirtualAddress); + uint32_t offImps = pNtHdrsIprt->OptionalHeader.DataDirectory[IMAGE_DIRECTORY_ENTRY_IMPORT].VirtualAddress; + AssertLogRelReturn(offImps + cImpsLeft * sizeof(IMAGE_IMPORT_DESCRIPTOR) <= pImage->cbImageBits, VERR_INTERNAL_ERROR_3); + IMAGE_IMPORT_DESCRIPTOR const *pImp = (IMAGE_IMPORT_DESCRIPTOR const *)(pbImageBits + offImps); while ( cImpsLeft-- > 0 && cExcludeRgns < RT_ELEMENTS(aExcludeRgns)) { @@ -957,23 +2037,15 @@ case VERR_VERSION_MISMATCH: return STATUS_REVISION_MISMATCH; } + if (rc < 0) + { + if (((uint32_t)rc & UINT32_C(0xffff0000)) == UINT32_C(0xffff0000)) + return (NTSTATUS)( ((uint32_t)rc & UINT32_C(0xffff)) | SUP_NT_STATUS_BASE ); + } return STATUS_UNSUCCESSFUL; } - -/** @todo use the nocrt stuff? */ -int VBOXCALL mymemcmp(const void *pv1, const void *pv2, size_t cb) -{ - const uint8_t *pb1 = (const uint8_t *)pv1; - const uint8_t *pb2 = (const uint8_t *)pv2; - for (; cb > 0; cb--, pb1++, pb2++) - if (*pb1 != *pb2) - return *pb1 - *pb2; - return 0; -} - - #if 0 /* See alternative in SUPDrvA-win.asm */ /** * Alternative version of SUPR0Printf for Windows. @@ -995,3 +2067,2354 @@ return 0; } #endif + + +#ifdef VBOX_WITH_HARDENING + +/** @name Identifying Special Processes: CSRSS.EXE + * @{ */ + + +/** + * Checks if the process is a system32 process by the given name. + * + * @returns true / false. + * @param pProcess The process to check. + * @param pszName The lower case process name (no path!). + */ +static bool supdrvNtProtectIsSystem32ProcessMatch(PEPROCESS pProcess, const char *pszName) +{ + Assert(strlen(pszName) < 16); /* see buffer below */ + + /* + * This test works on XP+. + */ + const char *pszImageFile = (const char *)PsGetProcessImageFileName(pProcess); + if (!pszImageFile) + return false; + + if (RTStrICmp(pszImageFile, pszName) != 0) + return false; + + /* + * This test requires a Vista+ API. + */ + if (g_pfnPsReferenceProcessFilePointer) + { + PFILE_OBJECT pFile = NULL; + NTSTATUS rcNt = g_pfnPsReferenceProcessFilePointer(pProcess, &pFile); + if (!NT_SUCCESS(rcNt)) + return false; + + union + { + OBJECT_NAME_INFORMATION Info; + uint8_t abBuffer[sizeof(g_System32NtPath) + 16 * sizeof(WCHAR)]; + } Buf; + ULONG cbIgn; + rcNt = ObQueryNameString(pFile, &Buf.Info, sizeof(Buf) - sizeof(WCHAR), &cbIgn); + ObDereferenceObject(pFile); + if (!NT_SUCCESS(rcNt)) + return false; + + /* Terminate the name. */ + PRTUTF16 pwszName = Buf.Info.Name.Buffer; + pwszName[Buf.Info.Name.Length / sizeof(RTUTF16)] = '\0'; + + /* Match the name against the system32 directory path. */ + uint32_t cbSystem32 = g_System32NtPath.UniStr.Length; + if (Buf.Info.Name.Length < cbSystem32) + return false; + if (memcmp(pwszName, g_System32NtPath.UniStr.Buffer, cbSystem32)) + return false; + pwszName += cbSystem32 / sizeof(RTUTF16); + if (*pwszName++ != '\\') + return false; + + /* Compare the name. */ + const char *pszRight = pszName; + for (;;) + { + WCHAR wchLeft = *pwszName++; + char chRight = *pszRight++; + Assert(chRight == RT_C_TO_LOWER(chRight)); + + if ( wchLeft != chRight + && RT_C_TO_LOWER(wchLeft) != chRight) + return false; + if (!chRight) + break; + } + } + + return true; +} + + +/** + * Checks if the current process is likely to be CSRSS. + * + * @returns true/false. + * @param pProcess The process. + */ +static bool supdrvNtProtectIsCsrssByProcess(PEPROCESS pProcess) +{ + /* + * On Windows 8.1 CSRSS.EXE is a protected process. + */ + if (g_pfnPsIsProtectedProcessLight) + { + if (!g_pfnPsIsProtectedProcessLight(pProcess)) + return false; + } + + /* + * The name tests. + */ + if (!supdrvNtProtectIsSystem32ProcessMatch(pProcess, "csrss.exe")) + return false; + + /** @todo Could extend the CSRSS.EXE check with that the TokenUser of the + * current process must be "NT AUTHORITY\SYSTEM" (S-1-5-18). */ + + return true; +} + + +/** + * Helper for supdrvNtProtectGetAlpcPortObjectType that tries out a name. + * + * @returns true if done, false if not. + * @param pwszPortNm The port path. + * @param ppObjType The object type return variable, updated when + * returning true. + */ +static bool supdrvNtProtectGetAlpcPortObjectType2(PCRTUTF16 pwszPortNm, POBJECT_TYPE *ppObjType) +{ + bool fDone = false; + + UNICODE_STRING UniStrPortNm; + UniStrPortNm.Buffer = (WCHAR *)pwszPortNm; + UniStrPortNm.Length = (USHORT)(RTUtf16Len(pwszPortNm) * sizeof(WCHAR)); + UniStrPortNm.MaximumLength = UniStrPortNm.Length + sizeof(WCHAR); + + OBJECT_ATTRIBUTES ObjAttr; + InitializeObjectAttributes(&ObjAttr, &UniStrPortNm, OBJ_CASE_INSENSITIVE | OBJ_KERNEL_HANDLE, NULL, NULL); + + HANDLE hPort; + NTSTATUS rcNt = g_pfnZwAlpcCreatePort(&hPort, &ObjAttr, NULL /*pPortAttribs*/); + if (NT_SUCCESS(rcNt)) + { + PVOID pvObject; + rcNt = ObReferenceObjectByHandle(hPort, 0 /*DesiredAccess*/, NULL /*pObjectType*/, + KernelMode, &pvObject, NULL /*pHandleInfo*/); + if (NT_SUCCESS(rcNt)) + { + POBJECT_TYPE pObjType = g_pfnObGetObjectType(pvObject); + if (pObjType) + { + SUPR0Printf("vboxdrv: ALPC Port Object Type %p (vs %p)\n", pObjType, *ppObjType); + *ppObjType = pObjType; + fDone = true; + } + ObDereferenceObject(pvObject); + } + NtClose(hPort); + } + return fDone; +} + + +/** + * Attempts to retrieve the ALPC Port object type. + * + * We've had at least three reports that using LpcPortObjectType when trying to + * get at the ApiPort object results in STATUS_OBJECT_TYPE_MISMATCH errors. + * It's not known who has modified LpcPortObjectType or AlpcPortObjectType (not + * exported) so that it differs from the actual ApiPort type, or maybe this + * unknown entity is intercepting our attempt to reference the port and + * tries to mislead us. The paranoid explanataion is of course that some evil + * root kit like software is messing with the OS, however, it's possible that + * this is valid kernel behavior that 99.8% of our users and 100% of the + * developers are not triggering for some reason. + * + * The code here creates an ALPC port object and gets it's type. It will cache + * the result in g_pAlpcPortObjectType2 on success. + * + * @returns Object type. + * @param uSessionId The session id. + * @param pszSessionId The session id formatted as a string. + */ +static POBJECT_TYPE supdrvNtProtectGetAlpcPortObjectType(uint32_t uSessionId, const char *pszSessionId) +{ + POBJECT_TYPE pObjType = *LpcPortObjectType; + + if ( g_pfnZwAlpcCreatePort + && g_pfnObGetObjectType) + { + int rc; + ssize_t cchTmp; NOREF(cchTmp); + char szTmp[16]; + RTUTF16 wszPortNm[128]; + size_t offRand; + + /* + * First attempt is in the session directory. + */ + rc = RTUtf16CopyAscii(wszPortNm, RT_ELEMENTS(wszPortNm), "\\Sessions\\"); + rc |= RTUtf16CatAscii(wszPortNm, RT_ELEMENTS(wszPortNm), pszSessionId); + rc |= RTUtf16CatAscii(wszPortNm, RT_ELEMENTS(wszPortNm), "\\VBoxDrv-"); + cchTmp = RTStrFormatU32(szTmp, sizeof(szTmp), (uint32_t)(uintptr_t)PsGetProcessId(PsGetCurrentProcess()), 16, 0, 0, 0); + Assert(cchTmp > 0); + rc |= RTUtf16CatAscii(wszPortNm, RT_ELEMENTS(wszPortNm), szTmp); + rc |= RTUtf16CatAscii(wszPortNm, RT_ELEMENTS(wszPortNm), "-"); + offRand = RTUtf16Len(wszPortNm); + cchTmp = RTStrFormatU32(szTmp, sizeof(szTmp), RTRandU32(), 16, 0, 0, 0); + Assert(cchTmp > 0); + rc |= RTUtf16CatAscii(wszPortNm, RT_ELEMENTS(wszPortNm), szTmp); + AssertRCSuccess(rc); + + bool fDone = supdrvNtProtectGetAlpcPortObjectType2(wszPortNm, &pObjType); + if (!fDone) + { + wszPortNm[offRand] = '\0'; + cchTmp = RTStrFormatU32(szTmp, sizeof(szTmp), RTRandU32(), 16, 0, 0, 0); Assert(cchTmp > 0); + rc |= RTUtf16CatAscii(wszPortNm, RT_ELEMENTS(wszPortNm), szTmp); + AssertRCSuccess(rc); + + fDone = supdrvNtProtectGetAlpcPortObjectType2(wszPortNm, &pObjType); + } + if (!fDone) + { + /* + * Try base names. + */ + if (uSessionId == 0) + rc = RTUtf16CopyAscii(wszPortNm, RT_ELEMENTS(wszPortNm), "\\BaseNamedObjects\\VBoxDrv-"); + else + { + rc = RTUtf16CopyAscii(wszPortNm, RT_ELEMENTS(wszPortNm), "\\Sessions\\"); + rc |= RTUtf16CatAscii(wszPortNm, RT_ELEMENTS(wszPortNm), pszSessionId); + rc |= RTUtf16CatAscii(wszPortNm, RT_ELEMENTS(wszPortNm), "\\BaseNamedObjects\\VBoxDrv-"); + } + cchTmp = RTStrFormatU32(szTmp, sizeof(szTmp), (uint32_t)(uintptr_t)PsGetProcessId(PsGetCurrentProcess()), 16, 0, 0, 0); + Assert(cchTmp > 0); + rc |= RTUtf16CatAscii(wszPortNm, RT_ELEMENTS(wszPortNm), szTmp); + rc |= RTUtf16CatAscii(wszPortNm, RT_ELEMENTS(wszPortNm), "-"); + offRand = RTUtf16Len(wszPortNm); + cchTmp = RTStrFormatU32(szTmp, sizeof(szTmp), RTRandU32(), 16, 0, 0, 0); + Assert(cchTmp > 0); + rc |= RTUtf16CatAscii(wszPortNm, RT_ELEMENTS(wszPortNm), szTmp); + AssertRCSuccess(rc); + + bool fDone = supdrvNtProtectGetAlpcPortObjectType2(wszPortNm, &pObjType); + if (!fDone) + { + wszPortNm[offRand] = '\0'; + cchTmp = RTStrFormatU32(szTmp, sizeof(szTmp), RTRandU32(), 16, 0, 0, 0); + Assert(cchTmp > 0); + rc |= RTUtf16CatAscii(wszPortNm, RT_ELEMENTS(wszPortNm), szTmp); + AssertRCSuccess(rc); + + fDone = supdrvNtProtectGetAlpcPortObjectType2(wszPortNm, &pObjType); + } + } + + /* Cache the result in g_pAlpcPortObjectType2. */ + if ( g_pAlpcPortObjectType2 == NULL + && pObjType != g_pAlpcPortObjectType1 + && fDone) + g_pAlpcPortObjectType2 = pObjType; + + } + + return pObjType; +} + + +/** + * Called in the context of VBoxDrvNtCreate to determin the CSRSS for the + * current process. + * + * The Client/Server Runtime Subsystem (CSRSS) process needs to be allowed some + * additional access right so we need to make 101% sure we correctly identify + * the CSRSS process a process is associated with. + * + * @returns IPRT status code. + * @param pNtProtect The NT protected process structure. The + * hCsrssPid member will be updated on success. + */ +static int supdrvNtProtectFindAssociatedCsrss(PSUPDRVNTPROTECT pNtProtect) +{ + Assert(pNtProtect->AvlCore.Key == PsGetCurrentProcessId()); + Assert(pNtProtect->pCsrssProcess == NULL); + Assert(pNtProtect->hCsrssPid == NULL); + + /* + * We'll try use the ApiPort LPC object for the session we're in to track + * down the CSRSS process. So, we start by constructing a path to it. + */ + int rc; + uint32_t uSessionId = PsGetProcessSessionId(PsGetCurrentProcess()); + char szSessionId[16]; + WCHAR wszApiPort[48]; + if (uSessionId == 0) + { + szSessionId[0] = '0'; + szSessionId[1] = '\0'; + rc = RTUtf16CopyAscii(wszApiPort, RT_ELEMENTS(wszApiPort), "\\Windows\\ApiPort"); + } + else + { + ssize_t cchTmp = RTStrFormatU32(szSessionId, sizeof(szSessionId), uSessionId, 10, 0, 0, 0); + AssertReturn(cchTmp > 0, (int)cchTmp); + rc = RTUtf16CopyAscii(wszApiPort, RT_ELEMENTS(wszApiPort), "\\Sessions\\"); + if (RT_SUCCESS(rc)) + rc = RTUtf16CatAscii(wszApiPort, RT_ELEMENTS(wszApiPort), szSessionId); + if (RT_SUCCESS(rc)) + rc = RTUtf16CatAscii(wszApiPort, RT_ELEMENTS(wszApiPort), "\\Windows\\ApiPort"); + } + AssertRCReturn(rc, rc); + + UNICODE_STRING ApiPortStr; + ApiPortStr.Buffer = wszApiPort; + ApiPortStr.Length = (USHORT)(RTUtf16Len(wszApiPort) * sizeof(RTUTF16)); + ApiPortStr.MaximumLength = ApiPortStr.Length + sizeof(RTUTF16); + + /* + * The object cannot be opened, but we can reference it by name. + */ + void *pvApiPortObj = NULL; + NTSTATUS rcNt = ObReferenceObjectByName(&ApiPortStr, + 0, + NULL /*pAccessState*/, + STANDARD_RIGHTS_READ, + g_pAlpcPortObjectType1, + KernelMode, + NULL /*pvParseContext*/, + &pvApiPortObj); + if ( rcNt == STATUS_OBJECT_TYPE_MISMATCH + && g_pAlpcPortObjectType2 != NULL) + rcNt = ObReferenceObjectByName(&ApiPortStr, + 0, + NULL /*pAccessState*/, + STANDARD_RIGHTS_READ, + g_pAlpcPortObjectType2, + KernelMode, + NULL /*pvParseContext*/, + &pvApiPortObj); + if ( rcNt == STATUS_OBJECT_TYPE_MISMATCH + && g_pfnObGetObjectType + && g_pfnZwAlpcCreatePort) + rcNt = ObReferenceObjectByName(&ApiPortStr, + 0, + NULL /*pAccessState*/, + STANDARD_RIGHTS_READ, + supdrvNtProtectGetAlpcPortObjectType(uSessionId, szSessionId), + KernelMode, + NULL /*pvParseContext*/, + &pvApiPortObj); + if (!NT_SUCCESS(rcNt)) + { + SUPR0Printf("vboxdrv: Error opening '%ls': %#x\n", wszApiPort, rcNt); + return rcNt == STATUS_OBJECT_TYPE_MISMATCH ? VERR_SUPDRV_APIPORT_OPEN_ERROR_TYPE : VERR_SUPDRV_APIPORT_OPEN_ERROR; + } + + /* + * Query the processes in the system so we can locate CSRSS.EXE candidates. + * Note! Attempts at using SystemSessionProcessInformation failed with + * STATUS_ACCESS_VIOLATION. + * Note! The 32 bytes on the size of to counteract the allocation header + * that rtR0MemAllocEx slaps on everything. + */ + ULONG cbNeeded = _64K - 32; + uint32_t cbBuf; + uint8_t *pbBuf = NULL; + do + { + cbBuf = RT_ALIGN(cbNeeded + _4K, _64K) - 32; + pbBuf = (uint8_t *)RTMemAlloc(cbBuf); + if (!pbBuf) + break; + + cbNeeded = 0; +#if 0 /* doesn't work. */ + SYSTEM_SESSION_PROCESS_INFORMATION Req; + Req.SessionId = uSessionId; + Req.BufferLength = cbBuf; + Req.Buffer = pbBuf; + rcNt = NtQuerySystemInformation(SystemSessionProcessInformation, &Req, sizeof(Req), &cbNeeded); +#else + rcNt = NtQuerySystemInformation(SystemProcessInformation, pbBuf, cbBuf, &cbNeeded); +#endif + if (NT_SUCCESS(rcNt)) + break; + + RTMemFree(pbBuf); + pbBuf = NULL; + } while ( rcNt == STATUS_INFO_LENGTH_MISMATCH + && cbNeeded > cbBuf + && cbNeeded < 32U*_1M); + + if ( pbBuf + && NT_SUCCESS(rcNt) + && cbNeeded >= sizeof(SYSTEM_PROCESS_INFORMATION)) + { + /* + * Walk the returned data and look for the process associated with the + * ApiPort object. The ApiPort object keeps the EPROCESS address of + * the owner process (i.e. CSRSS) relatively early in the structure. On + * 64-bit windows 8.1 it's at offset 0x18. So, obtain the EPROCESS + * pointer to likely CSRSS processes and check for a match in the first + * 0x40 bytes of the ApiPort object. + */ + rc = VERR_SUPDRV_CSRSS_NOT_FOUND; + for (uint32_t offBuf = 0; offBuf <= cbNeeded - sizeof(SYSTEM_PROCESS_INFORMATION);) + { + PRTNT_SYSTEM_PROCESS_INFORMATION pProcInfo = (PRTNT_SYSTEM_PROCESS_INFORMATION)&pbBuf[offBuf]; + if ( pProcInfo->ProcessName.Length == 9 * sizeof(WCHAR) + && pProcInfo->NumberOfThreads > 2 /* Very low guess. */ + && pProcInfo->HandleCount > 32 /* Very low guess, I hope. */ + && (uintptr_t)pProcInfo->ProcessName.Buffer - (uintptr_t)pbBuf < cbNeeded + && RT_C_TO_LOWER(pProcInfo->ProcessName.Buffer[0]) == 'c' + && RT_C_TO_LOWER(pProcInfo->ProcessName.Buffer[1]) == 's' + && RT_C_TO_LOWER(pProcInfo->ProcessName.Buffer[2]) == 'r' + && RT_C_TO_LOWER(pProcInfo->ProcessName.Buffer[3]) == 's' + && RT_C_TO_LOWER(pProcInfo->ProcessName.Buffer[4]) == 's' + && pProcInfo->ProcessName.Buffer[5] == '.' + && RT_C_TO_LOWER(pProcInfo->ProcessName.Buffer[6]) == 'e' + && RT_C_TO_LOWER(pProcInfo->ProcessName.Buffer[7]) == 'x' + && RT_C_TO_LOWER(pProcInfo->ProcessName.Buffer[8]) == 'e' ) + { + + /* Get the process structure and perform some more thorough + process checks. */ + PEPROCESS pProcess; + rcNt = PsLookupProcessByProcessId(pProcInfo->UniqueProcessId, &pProcess); + if (NT_SUCCESS(rcNt)) + { + if (supdrvNtProtectIsCsrssByProcess(pProcess)) + { + if (PsGetProcessSessionId(pProcess) == uSessionId) + { + /* Final test, check the ApiPort. + Note! The old LPC (pre Vista) objects has the PID + much earlier in the structure. Might be + worth looking for it instead. */ + bool fThatsIt = false; + __try + { + PEPROCESS *ppPortProc = (PEPROCESS *)pvApiPortObj; + uint32_t cTests = g_uNtVerCombined >= SUP_NT_VER_VISTA ? 16 : 38; /* ALPC since Vista. */ + do + { + fThatsIt = *ppPortProc == pProcess; + ppPortProc++; + } while (!fThatsIt && --cTests > 0); + } + __except(EXCEPTION_EXECUTE_HANDLER) + { + fThatsIt = false; + } + if (fThatsIt) + { + /* Ok, we found it! Keep the process structure + reference as well as the PID so we can + safely identify it later on. */ + pNtProtect->hCsrssPid = pProcInfo->UniqueProcessId; + pNtProtect->pCsrssProcess = pProcess; + rc = VINF_SUCCESS; + break; + } + } + } + + ObDereferenceObject(pProcess); + } + } + + /* Advance. */ + if (!pProcInfo->NextEntryOffset) + break; + offBuf += pProcInfo->NextEntryOffset; + } + } + else + rc = VERR_SUPDRV_SESSION_PROCESS_ENUM_ERROR; + RTMemFree(pbBuf); + ObDereferenceObject(pvApiPortObj); + return rc; +} + + +/** + * Checks that the given process is the CSRSS process associated with protected + * process. + * + * @returns true / false. + * @param pNtProtect The NT protection structure. + * @param pCsrss The process structure of the alleged CSRSS.EXE + * process. + */ +static bool supdrvNtProtectIsAssociatedCsrss(PSUPDRVNTPROTECT pNtProtect, PEPROCESS pCsrss) +{ + if (pNtProtect->pCsrssProcess == pCsrss) + { + if (pNtProtect->hCsrssPid == PsGetProcessId(pCsrss)) + { + return true; + } + } + return false; +} + + +/** + * Checks if the given process is the stupid themes service. + * + * The caller does some screening of access masks and what not. We do the rest. + * + * @returns true / false. + * @param pNtProtect The NT protection structure. + * @param pAnnoyingProcess The process structure of an process that might + * happen to be the annoying themes process. + */ +static bool supdrvNtProtectIsFrigginThemesService(PSUPDRVNTPROTECT pNtProtect, PEPROCESS pAnnoyingProcess) +{ + /* + * Check the process name. + */ + if (!supdrvNtProtectIsSystem32ProcessMatch(pAnnoyingProcess, "svchost.exe")) + return false; + + /** @todo Come up with more checks. */ + + return true; +} + + +#ifdef VBOX_WITHOUT_DEBUGGER_CHECKS +/** + * Checks if the given process is one of the whitelisted debuggers. + * + * @returns true / false. + * @param pProcess The process to check. + */ +static bool supdrvNtProtectIsWhitelistedDebugger(PEPROCESS pProcess) +{ + const char *pszImageFile = (const char *)PsGetProcessImageFileName(pProcess); + if (!pszImageFile) + return false; + + if (pszImageFile[0] == 'w' || pszImageFile[0] == 'W') + { + if (RTStrICmp(pszImageFile, "windbg.exe") == 0) + return true; + if (RTStrICmp(pszImageFile, "werfault.exe") == 0) + return true; + if (RTStrICmp(pszImageFile, "werfaultsecure.exe") == 0) + return true; + } + else if (pszImageFile[0] == 'd' || pszImageFile[0] == 'D') + { + if (RTStrICmp(pszImageFile, "drwtsn32.exe") == 0) + return true; + if (RTStrICmp(pszImageFile, "dwwin.exe") == 0) + return true; + } + + return false; +} +#endif /* VBOX_WITHOUT_DEBUGGER_CHECKS */ + + +/** @} */ + + +/** @name Process Creation Callbacks. + * @{ */ + + +/** + * Cleans up VBoxDrv or VBoxDrvStub error info not collected by the dead process. + * + * @param hProcessId The ID of the dead process. + */ +static void supdrvNtErrorInfoCleanupProcess(HANDLE hProcessId) +{ + int rc = RTSemMutexRequestNoResume(g_hErrorInfoLock, RT_INDEFINITE_WAIT); + if (RT_SUCCESS(rc)) + { + PSUPDRVNTERRORINFO pCur, pNext; + RTListForEachSafe(&g_ErrorInfoHead, pCur, pNext, SUPDRVNTERRORINFO, ListEntry) + { + if (pCur->hProcessId == hProcessId) + { + RTListNodeRemove(&pCur->ListEntry); + RTMemFree(pCur); + } + } + RTSemMutexRelease(g_hErrorInfoLock); + } +} + + +/** + * Common worker used by the process creation hooks as well as the process + * handle creation hooks to check if a VM process is being created. + * + * @returns true if likely to be a VM process, false if not. + * @param pNtStub The NT protection structure for the possible + * stub process. + * @param hParentPid The parent pid. + * @param hChildPid The child pid. + */ +static bool supdrvNtProtectIsSpawningStubProcess(PSUPDRVNTPROTECT pNtStub, HANDLE hParentPid, HANDLE hChildPid) +{ + bool fRc = false; + if (pNtStub->AvlCore.Key == hParentPid) /* paranoia */ + { + if (pNtStub->enmProcessKind == kSupDrvNtProtectKind_StubSpawning) + { + /* Compare short names. */ + PEPROCESS pStubProcess; + NTSTATUS rcNt = PsLookupProcessByProcessId(hParentPid, &pStubProcess); + if (NT_SUCCESS(rcNt)) + { + PEPROCESS pChildProcess; + rcNt = PsLookupProcessByProcessId(hChildPid, &pChildProcess); + if (NT_SUCCESS(rcNt)) + { + const char *pszStub = (const char *)PsGetProcessImageFileName(pStubProcess); + const char *pszChild = (const char *)PsGetProcessImageFileName(pChildProcess); + fRc = pszStub != NULL + && pszChild != NULL + && strcmp(pszStub, pszChild) == 0; + + /** @todo check that the full image names matches. */ + + ObDereferenceObject(pChildProcess); + } + ObDereferenceObject(pStubProcess); + } + } + } + return fRc; +} + + +/** + * Common code used by the notifies to protect a child process. + * + * @returns VBox status code. + * @param pNtStub The NT protect structure for the parent. + * @param hChildPid The child pid. + */ +static int supdrvNtProtectProtectNewStubChild(PSUPDRVNTPROTECT pNtParent, HANDLE hChildPid) +{ + /* + * Create a child protection struction. + */ + PSUPDRVNTPROTECT pNtChild; + int rc = supdrvNtProtectCreate(&pNtChild, hChildPid, kSupDrvNtProtectKind_VmProcessUnconfirmed, false /*fLink*/); + if (RT_SUCCESS(rc)) + { + pNtChild->fFirstProcessCreateHandle = true; + pNtChild->fFirstThreadCreateHandle = true; + pNtChild->fCsrssFirstProcessCreateHandle = true; + pNtChild->cCsrssFirstProcessDuplicateHandle = ARCH_BITS == 32 ? 2 : 1; + pNtChild->fThemesFirstProcessCreateHandle = true; + pNtChild->hParentPid = pNtParent->AvlCore.Key; + pNtChild->hCsrssPid = pNtParent->hCsrssPid; + pNtChild->pCsrssProcess = pNtParent->pCsrssProcess; + if (pNtChild->pCsrssProcess) + ObReferenceObject(pNtChild->pCsrssProcess); + + /* + * Take the spinlock, recheck parent conditions and link things. + */ + RTSPINLOCKTMP Tmp = RTSPINLOCKTMP_INITIALIZER; + RTSpinlockAcquire(g_hNtProtectLock, &Tmp); + if (pNtParent->enmProcessKind == kSupDrvNtProtectKind_StubSpawning) + { + bool fSuccess = RTAvlPVInsert(&g_NtProtectTree, &pNtChild->AvlCore); + if (fSuccess) + { + pNtChild->fInTree = true; + pNtParent->u.pChild = pNtChild; /* Parent keeps the initial reference. */ + pNtParent->enmProcessKind = kSupDrvNtProtectKind_StubParent; + pNtChild->u.pParent = pNtParent; + + RTSpinlockRelease(g_hNtProtectLock, &Tmp); + return VINF_SUCCESS; + } + + rc = VERR_INTERNAL_ERROR_2; + } + else + rc = VERR_WRONG_ORDER; + pNtChild->enmProcessKind = kSupDrvNtProtectKind_VmProcessDead; + RTSpinlockRelease(g_hNtProtectLock, &Tmp); + + supdrvNtProtectRelease(pNtChild); + } + return rc; +} + + +/** + * Common process termination code. + * + * Transitions protected process to the dead states, protecting against handle + * PID reuse (esp. with unconfirmed VM processes) and handle cleanup issues. + * + * @param hDeadPid The PID of the dead process. + */ +static void supdrvNtProtectUnprotectDeadProcess(HANDLE hDeadPid) +{ + PSUPDRVNTPROTECT pNtProtect = supdrvNtProtectLookup(hDeadPid); + if (pNtProtect) + { + PSUPDRVNTPROTECT pNtChild = NULL; + + RTSPINLOCKTMP Tmp = RTSPINLOCKTMP_INITIALIZER; + RTSpinlockAcquire(g_hNtProtectLock, &Tmp); + + /* + * If this is an unconfirmed VM process, we must release the reference + * the parent structure holds. + */ + if (pNtProtect->enmProcessKind == kSupDrvNtProtectKind_VmProcessUnconfirmed) + { + PSUPDRVNTPROTECT pNtParent = pNtProtect->u.pParent; + AssertRelease(pNtParent); AssertRelease(pNtParent->u.pChild == pNtProtect); + pNtParent->u.pChild = NULL; + pNtProtect->u.pParent = NULL; + pNtChild = pNtProtect; + } + /* + * If this is a stub exitting before the VM process gets confirmed, + * release the protection of the potential VM process as this is not + * the prescribed behavior. + */ + else if ( pNtProtect->enmProcessKind == kSupDrvNtProtectKind_StubParent + && pNtProtect->u.pChild) + { + pNtChild = pNtProtect->u.pChild; + pNtProtect->u.pChild = NULL; + pNtChild->u.pParent = NULL; + pNtChild->enmProcessKind = kSupDrvNtProtectKind_VmProcessDead; + } + + /* + * Transition it to the dead state to prevent it from opening the + * support driver again or be posthumously abused as a vm process parent. + */ + if ( pNtProtect->enmProcessKind == kSupDrvNtProtectKind_VmProcessUnconfirmed + || pNtProtect->enmProcessKind == kSupDrvNtProtectKind_VmProcessConfirmed) + pNtProtect->enmProcessKind = kSupDrvNtProtectKind_VmProcessDead; + else if ( pNtProtect->enmProcessKind == kSupDrvNtProtectKind_StubParent + || pNtProtect->enmProcessKind == kSupDrvNtProtectKind_StubSpawning + || pNtProtect->enmProcessKind == kSupDrvNtProtectKind_StubUnverified) + pNtProtect->enmProcessKind = kSupDrvNtProtectKind_StubDead; + + RTSpinlockRelease(g_hNtProtectLock, &Tmp); + + supdrvNtProtectRelease(pNtProtect); + supdrvNtProtectRelease(pNtChild); + + /* + * Do session cleanups. + */ + AssertReturnVoid((HANDLE)(uintptr_t)RTProcSelf() == hDeadPid); + if (g_pDevObjSys) + { + PSUPDRVDEVEXT pDevExt = (PSUPDRVDEVEXT)g_pDevObjSys->DeviceExtension; + PSUPDRVSESSION pSession = supdrvSessionHashTabLookup(pDevExt, (RTPROCESS)(uintptr_t)hDeadPid, + RTR0ProcHandleSelf(), NULL); + if (pSession) + { + supdrvSessionHashTabRemove(pDevExt, pSession, NULL); + supdrvSessionRelease(pSession); /* Drops the reference from supdrvSessionHashTabLookup. */ + } + } + } +} + + +/** + * Common worker for the process creation callback that verifies a new child + * being created by the handle creation callback code. + * + * @param pNtStub The parent. + * @param pNtVm The child. + * @param fCallerChecks The result of any additional tests the caller made. + * This is in order to avoid duplicating the failure + * path code. + */ +static void supdrvNtProtectVerifyNewChildProtection(PSUPDRVNTPROTECT pNtStub, PSUPDRVNTPROTECT pNtVm, bool fCallerChecks) +{ + if ( fCallerChecks + && pNtStub->enmProcessKind == kSupDrvNtProtectKind_StubParent + && pNtVm->enmProcessKind == kSupDrvNtProtectKind_VmProcessUnconfirmed + && pNtVm->u.pParent == pNtStub + && pNtStub->u.pChild == pNtVm) + { + /* Fine, reset the CSRSS hack (fixes ViRobot APT Shield 2.0 issue). */ + pNtVm->fFirstProcessCreateHandle = true; + return; + } + + LogRel(("vboxdrv: Misdetected vm stub; hParentPid=%p hChildPid=%p\n", pNtStub->AvlCore.Key, pNtVm->AvlCore.Key)); + if (pNtStub->enmProcessKind != kSupDrvNtProtectKind_VmProcessConfirmed) + supdrvNtProtectUnprotectDeadProcess(pNtVm->AvlCore.Key); +} + + +/** + * Old style callback (since forever). + * + * @param hParentPid The parent PID. + * @param hNewPid The PID of the new child. + * @param fCreated TRUE if it's a creation notification, + * FALSE if termination. + * @remarks ASSUMES this arrives before the handle creation callback. + */ +static VOID __stdcall +supdrvNtProtectCallback_ProcessCreateNotify(HANDLE hParentPid, HANDLE hNewPid, BOOLEAN fCreated) +{ + /* + * Is it a new process that needs protection? + */ + if (fCreated) + { + PSUPDRVNTPROTECT pNtStub = supdrvNtProtectLookup(hParentPid); + if (pNtStub) + { + PSUPDRVNTPROTECT pNtVm = supdrvNtProtectLookup(hNewPid); + if (!pNtVm) + { + if (supdrvNtProtectIsSpawningStubProcess(pNtStub, hParentPid, hNewPid)) + supdrvNtProtectProtectNewStubChild(pNtStub, hNewPid); + } + else + { + supdrvNtProtectVerifyNewChildProtection(pNtStub, pNtVm, true); + supdrvNtProtectRelease(pNtVm); + } + supdrvNtProtectRelease(pNtStub); + } + } + /* + * Process termination, do clean ups. + */ + else + { + supdrvNtProtectUnprotectDeadProcess(hNewPid); + supdrvNtErrorInfoCleanupProcess(hNewPid); + } +} + + +/** + * New style callback (Vista SP1+ / w2k8). + * + * @param pNewProcess The new process. + * @param hNewPid The PID of the new process. + * @param pInfo Process creation details. NULL if process + * termination notification. + * @remarks ASSUMES this arrives before the handle creation callback. + */ +static VOID __stdcall +supdrvNtProtectCallback_ProcessCreateNotifyEx(PEPROCESS pNewProcess, HANDLE hNewPid, PPS_CREATE_NOTIFY_INFO pInfo) +{ + /* + * Is it a new process that needs protection? + */ + if (pInfo) + { + PSUPDRVNTPROTECT pNtStub = supdrvNtProtectLookup(pInfo->CreatingThreadId.UniqueProcess); + + Log(("vboxdrv/NewProcessEx: ctx=%04zx/%p pid=%04zx ppid=%04zx ctor=%04zx/%04zx rcNt=%#x %.*ls\n", + PsGetProcessId(PsGetCurrentProcess()), PsGetCurrentProcess(), + hNewPid, pInfo->ParentProcessId, + pInfo->CreatingThreadId.UniqueProcess, pInfo->CreatingThreadId.UniqueThread, pInfo->CreationStatus, + pInfo->FileOpenNameAvailable && pInfo->ImageFileName ? (size_t)pInfo->ImageFileName->Length / 2 : 0, + pInfo->FileOpenNameAvailable && pInfo->ImageFileName ? pInfo->ImageFileName->Buffer : NULL)); + + if (pNtStub) + { + PSUPDRVNTPROTECT pNtVm = supdrvNtProtectLookup(hNewPid); + if (!pNtVm) + { + /* Parent must be creator. */ + if (pInfo->CreatingThreadId.UniqueProcess == pInfo->ParentProcessId) + { + if (supdrvNtProtectIsSpawningStubProcess(pNtStub, pInfo->ParentProcessId, hNewPid)) + supdrvNtProtectProtectNewStubChild(pNtStub, hNewPid); + } + } + else + { + /* Parent must be creator (as above). */ + supdrvNtProtectVerifyNewChildProtection(pNtStub, pNtVm, + pInfo->CreatingThreadId.UniqueProcess == pInfo->ParentProcessId); + supdrvNtProtectRelease(pNtVm); + } + supdrvNtProtectRelease(pNtStub); + } + } + /* + * Process termination, do clean ups. + */ + else + { + supdrvNtProtectUnprotectDeadProcess(hNewPid); + supdrvNtErrorInfoCleanupProcess(hNewPid); + } +} + +/** @} */ + + +/** @name Process Handle Callbacks. + * @{ */ + +/** Process rights that we allow for handles to stub and VM processes. */ +# define SUPDRV_NT_ALLOW_PROCESS_RIGHTS \ + ( PROCESS_TERMINATE \ + | PROCESS_VM_READ \ + | PROCESS_QUERY_INFORMATION \ + | PROCESS_QUERY_LIMITED_INFORMATION \ + | PROCESS_SUSPEND_RESUME \ + | DELETE \ + | READ_CONTROL \ + | SYNCHRONIZE) + +/** Evil process rights. */ +# define SUPDRV_NT_EVIL_PROCESS_RIGHTS \ + ( PROCESS_CREATE_THREAD \ + | PROCESS_SET_SESSIONID /*?*/ \ + | PROCESS_VM_OPERATION \ + | PROCESS_VM_WRITE \ + | PROCESS_DUP_HANDLE \ + | PROCESS_CREATE_PROCESS /*?*/ \ + | PROCESS_SET_QUOTA /*?*/ \ + | PROCESS_SET_INFORMATION \ + | PROCESS_SET_LIMITED_INFORMATION /*?*/ \ + | 0) +AssertCompile((SUPDRV_NT_ALLOW_PROCESS_RIGHTS & SUPDRV_NT_EVIL_PROCESS_RIGHTS) == 0); + + +static OB_PREOP_CALLBACK_STATUS __stdcall +supdrvNtProtectCallback_ProcessHandlePre(PVOID pvUser, POB_PRE_OPERATION_INFORMATION pOpInfo) +{ + Assert(pvUser == NULL); + Assert(pOpInfo->Operation == OB_OPERATION_HANDLE_CREATE || pOpInfo->Operation == OB_OPERATION_HANDLE_DUPLICATE); + Assert(pOpInfo->ObjectType == *PsProcessType); + + /* + * Protected? Kludge required for NtOpenProcess calls comming in before + * the create process hook triggers on Windows 8.1 (possibly others too). + */ + HANDLE hObjPid = PsGetProcessId((PEPROCESS)pOpInfo->Object); + PSUPDRVNTPROTECT pNtProtect = supdrvNtProtectLookup(hObjPid); + if (!pNtProtect) + { + HANDLE hParentPid = PsGetProcessInheritedFromUniqueProcessId((PEPROCESS)pOpInfo->Object); + PSUPDRVNTPROTECT pNtStub = supdrvNtProtectLookup(hParentPid); + if (pNtStub) + { + if (supdrvNtProtectIsSpawningStubProcess(pNtStub, hParentPid, hObjPid)) + { + supdrvNtProtectProtectNewStubChild(pNtStub, hObjPid); + pNtProtect = supdrvNtProtectLookup(hObjPid); + } + supdrvNtProtectRelease(pNtStub); + } + } + pOpInfo->CallContext = pNtProtect; /* Just for reference. */ + if (pNtProtect) + { + /* + * Ok, it's a protected process. Strip rights as required or possible. + */ + static ACCESS_MASK const s_fCsrssStupidDesires = 0x1fffff; + ACCESS_MASK fAllowedRights = SUPDRV_NT_ALLOW_PROCESS_RIGHTS; + + if (pOpInfo->Operation == OB_OPERATION_HANDLE_CREATE) + { + /* Don't restrict the process accessing itself. */ + if ((PEPROCESS)pOpInfo->Object == PsGetCurrentProcess()) + { + pOpInfo->CallContext = NULL; /* don't assert */ + pNtProtect->fFirstProcessCreateHandle = false; + + Log(("vboxdrv/ProcessHandlePre: %sctx=%04zx/%p wants %#x to %p in pid=%04zx [%d] %s\n", + pOpInfo->KernelHandle ? "k" : "", PsGetProcessId(PsGetCurrentProcess()), PsGetCurrentProcess(), + pOpInfo->Parameters->CreateHandleInformation.DesiredAccess, + pOpInfo->Object, pNtProtect->AvlCore.Key, pNtProtect->enmProcessKind, + PsGetProcessImageFileName(PsGetCurrentProcess()) )); + } +#ifdef VBOX_WITHOUT_DEBUGGER_CHECKS + /* Allow debuggers full access. */ + else if (supdrvNtProtectIsWhitelistedDebugger(PsGetCurrentProcess())) + { + pOpInfo->CallContext = NULL; /* don't assert */ + pNtProtect->fFirstProcessCreateHandle = false; + + Log(("vboxdrv/ProcessHandlePre: %sctx=%04zx/%p wants %#x to %p in pid=%04zx [%d] %s [debugger]\n", + pOpInfo->KernelHandle ? "k" : "", PsGetProcessId(PsGetCurrentProcess()), PsGetCurrentProcess(), + pOpInfo->Parameters->CreateHandleInformation.DesiredAccess, + pOpInfo->Object, pNtProtect->AvlCore.Key, pNtProtect->enmProcessKind, + PsGetProcessImageFileName(PsGetCurrentProcess()) )); + } +#endif + else + { + ACCESS_MASK const fDesiredAccess = pOpInfo->Parameters->CreateHandleInformation.DesiredAccess; + + /* Special case 1 on Vista, 7 & 8: + The CreateProcess code passes the handle over to CSRSS.EXE + and the code inBaseSrvCreateProcess will duplicate the + handle with 0x1fffff as access mask. NtDuplicateObject will + fail this call before it ever gets down here. + + Special case 2 on 8.1: + The CreateProcess code requires additional rights for + something, we'll drop these in the stub code. */ + if ( pNtProtect->enmProcessKind == kSupDrvNtProtectKind_VmProcessUnconfirmed + && pNtProtect->fFirstProcessCreateHandle + && pOpInfo->KernelHandle == 0 + && pNtProtect->hParentPid == PsGetProcessId(PsGetCurrentProcess()) + && ExGetPreviousMode() != KernelMode) + { + if ( !pOpInfo->KernelHandle + && fDesiredAccess == s_fCsrssStupidDesires) + { + if (g_uNtVerCombined < SUP_MAKE_NT_VER_SIMPLE(6, 3)) + fAllowedRights |= s_fCsrssStupidDesires; + else + fAllowedRights = fAllowedRights + | PROCESS_VM_OPERATION + | PROCESS_VM_WRITE + | PROCESS_SET_INFORMATION + | PROCESS_SET_LIMITED_INFORMATION + | 0; + pOpInfo->CallContext = NULL; /* don't assert this. */ + } + pNtProtect->fFirstProcessCreateHandle = false; + } + + /* Special case 3 on 8.1: + The interaction between the CreateProcess code and CSRSS.EXE + has changed to the better with Windows 8.1. CSRSS.EXE no + longer duplicates the process (thread too) handle, but opens + it, thus allowing us to do our job. */ + if ( g_uNtVerCombined >= SUP_MAKE_NT_VER_SIMPLE(6, 3) + && pNtProtect->enmProcessKind == kSupDrvNtProtectKind_VmProcessUnconfirmed + && pNtProtect->fCsrssFirstProcessCreateHandle + && pOpInfo->KernelHandle == 0 + && ExGetPreviousMode() == UserMode + && supdrvNtProtectIsAssociatedCsrss(pNtProtect, PsGetCurrentProcess()) ) + { + pNtProtect->fCsrssFirstProcessCreateHandle = false; + if (fDesiredAccess == s_fCsrssStupidDesires) + { + /* Not needed: PROCESS_CREATE_THREAD, PROCESS_SET_SESSIONID, + PROCESS_CREATE_PROCESS */ + fAllowedRights = fAllowedRights + | PROCESS_VM_OPERATION + | PROCESS_VM_WRITE + | PROCESS_DUP_HANDLE /* Needed for CreateProcess/VBoxTestOGL. */ + | 0; + pOpInfo->CallContext = NULL; /* don't assert this. */ + } + } + + /* Special case 4, Windows 7, Vista, possibly 8, but not 8.1: + The Themes service requires PROCESS_DUP_HANDLE access to our + process or we won't get any menus and dialogs will be half + unreadable. This is _very_ unfortunate and more work will + go into making this more secure. */ + if ( g_uNtVerCombined >= SUP_MAKE_NT_VER_SIMPLE(6, 0) + && g_uNtVerCombined < SUP_MAKE_NT_VER_SIMPLE(6, 2) + && fDesiredAccess == 0x1478 /* 6.1.7600.16385 (win7_rtm.090713-1255) */ + && pNtProtect->fThemesFirstProcessCreateHandle + && pOpInfo->KernelHandle == 0 + && ExGetPreviousMode() == UserMode + && supdrvNtProtectIsFrigginThemesService(pNtProtect, PsGetCurrentProcess()) ) + { + pNtProtect->fThemesFirstProcessCreateHandle = true; /* Only once! */ + fAllowedRights |= PROCESS_DUP_HANDLE; + pOpInfo->CallContext = NULL; /* don't assert this. */ + } + + /* Special case 6a, Windows 10+: AudioDG.exe opens the process with the + PROCESS_SET_LIMITED_INFORMATION right. It seems like it need it for + some myserious and weirdly placed cpu set management of our process. + I'd love to understand what that's all about... + Currently playing safe and only grand this right, however limited, to + audiodg.exe. */ + if ( g_uNtVerCombined >= SUP_MAKE_NT_VER_SIMPLE(10, 0) + && ( fDesiredAccess == PROCESS_SET_LIMITED_INFORMATION + || fDesiredAccess == (PROCESS_SET_LIMITED_INFORMATION | PROCESS_QUERY_LIMITED_INFORMATION) /* expected fix #1 */ + || fDesiredAccess == (PROCESS_SET_LIMITED_INFORMATION | PROCESS_QUERY_INFORMATION) /* expected fix #2 */ + ) + && pOpInfo->KernelHandle == 0 + && ExGetPreviousMode() == UserMode + && supdrvNtProtectIsSystem32ProcessMatch(PsGetCurrentProcess(), "audiodg.exe") ) + { + fAllowedRights |= PROCESS_SET_LIMITED_INFORMATION; + pOpInfo->CallContext = NULL; /* don't assert this. */ + } + + Log(("vboxdrv/ProcessHandlePre: %sctx=%04zx/%p wants %#x to %p/pid=%04zx [%d], allow %#x => %#x; %s [prev=%#x]\n", + pOpInfo->KernelHandle ? "k" : "", PsGetProcessId(PsGetCurrentProcess()), PsGetCurrentProcess(), + fDesiredAccess, pOpInfo->Object, pNtProtect->AvlCore.Key, pNtProtect->enmProcessKind, + fAllowedRights, fDesiredAccess & fAllowedRights, + PsGetProcessImageFileName(PsGetCurrentProcess()), ExGetPreviousMode() )); + + pOpInfo->Parameters->CreateHandleInformation.DesiredAccess &= fAllowedRights; + } + } + else + { + /* Don't restrict the process accessing itself. */ + if ( (PEPROCESS)pOpInfo->Object == PsGetCurrentProcess() + && pOpInfo->Parameters->DuplicateHandleInformation.TargetProcess == pOpInfo->Object) + { + Log(("vboxdrv/ProcessHandlePre: ctx=%04zx/%p[%p] dup from %04zx/%p with %#x to %p in pid=%04zx [%d] %s\n", + PsGetProcessId(PsGetCurrentProcess()), PsGetCurrentProcess(), + pOpInfo->Parameters->DuplicateHandleInformation.TargetProcess, + PsGetProcessId((PEPROCESS)pOpInfo->Parameters->DuplicateHandleInformation.SourceProcess), + pOpInfo->Parameters->DuplicateHandleInformation.SourceProcess, + pOpInfo->Parameters->DuplicateHandleInformation.DesiredAccess, + pOpInfo->Object, pNtProtect->AvlCore.Key, pNtProtect->enmProcessKind, + PsGetProcessImageFileName(PsGetCurrentProcess()) )); + + pOpInfo->CallContext = NULL; /* don't assert */ + } + else + { + ACCESS_MASK const fDesiredAccess = pOpInfo->Parameters->DuplicateHandleInformation.DesiredAccess; + + /* Special case 5 on Vista, 7 & 8: + This is the CSRSS.EXE end of special case #1. */ + if ( g_uNtVerCombined < SUP_MAKE_NT_VER_SIMPLE(6, 3) + && pNtProtect->enmProcessKind == kSupDrvNtProtectKind_VmProcessUnconfirmed + && pNtProtect->cCsrssFirstProcessDuplicateHandle > 0 + && pOpInfo->KernelHandle == 0 + && fDesiredAccess == s_fCsrssStupidDesires + && pNtProtect->hParentPid + == PsGetProcessId((PEPROCESS)pOpInfo->Parameters->DuplicateHandleInformation.SourceProcess) + && pOpInfo->Parameters->DuplicateHandleInformation.TargetProcess == PsGetCurrentProcess() + && ExGetPreviousMode() == UserMode + && supdrvNtProtectIsAssociatedCsrss(pNtProtect, PsGetCurrentProcess())) + { + if (ASMAtomicDecS32(&pNtProtect->cCsrssFirstProcessDuplicateHandle) >= 0) + { + /* Not needed: PROCESS_CREATE_THREAD, PROCESS_SET_SESSIONID, + PROCESS_CREATE_PROCESS, PROCESS_DUP_HANDLE */ + fAllowedRights = fAllowedRights + | PROCESS_VM_OPERATION + | PROCESS_VM_WRITE + | PROCESS_DUP_HANDLE /* Needed for launching VBoxTestOGL. */ + | 0; + pOpInfo->CallContext = NULL; /* don't assert this. */ + } + } + + /* Special case 6b, Windows 10+: AudioDG.exe duplicates the handle it opened above. */ + if ( g_uNtVerCombined >= SUP_MAKE_NT_VER_SIMPLE(10, 0) + && ( fDesiredAccess == PROCESS_SET_LIMITED_INFORMATION + || fDesiredAccess == (PROCESS_SET_LIMITED_INFORMATION | PROCESS_QUERY_LIMITED_INFORMATION) /* expected fix #1 */ + || fDesiredAccess == (PROCESS_SET_LIMITED_INFORMATION | PROCESS_QUERY_INFORMATION) /* expected fix #2 */ + ) + && pOpInfo->KernelHandle == 0 + && ExGetPreviousMode() == UserMode + && supdrvNtProtectIsSystem32ProcessMatch(PsGetCurrentProcess(), "audiodg.exe") ) + { + fAllowedRights |= PROCESS_SET_LIMITED_INFORMATION; + pOpInfo->CallContext = NULL; /* don't assert this. */ + } + + Log(("vboxdrv/ProcessHandlePre: %sctx=%04zx/%p[%p] dup from %04zx/%p with %#x to %p in pid=%04zx [%d] %s\n", + pOpInfo->KernelHandle ? "k" : "", PsGetProcessId(PsGetCurrentProcess()), PsGetCurrentProcess(), + pOpInfo->Parameters->DuplicateHandleInformation.TargetProcess, + PsGetProcessId((PEPROCESS)pOpInfo->Parameters->DuplicateHandleInformation.SourceProcess), + pOpInfo->Parameters->DuplicateHandleInformation.SourceProcess, + fDesiredAccess, + pOpInfo->Object, pNtProtect->AvlCore.Key, pNtProtect->enmProcessKind, + PsGetProcessImageFileName(PsGetCurrentProcess()) )); + + pOpInfo->Parameters->DuplicateHandleInformation.DesiredAccess &= fAllowedRights; + } + } + supdrvNtProtectRelease(pNtProtect); + } + + return OB_PREOP_SUCCESS; +} + + +static VOID __stdcall +supdrvNtProtectCallback_ProcessHandlePost(PVOID pvUser, POB_POST_OPERATION_INFORMATION pOpInfo) +{ + Assert(pvUser == NULL); + Assert(pOpInfo->Operation == OB_OPERATION_HANDLE_CREATE || pOpInfo->Operation == OB_OPERATION_HANDLE_DUPLICATE); + Assert(pOpInfo->ObjectType == *PsProcessType); + + if ( pOpInfo->CallContext + && NT_SUCCESS(pOpInfo->ReturnStatus)) + { + ACCESS_MASK const fGrantedAccess = pOpInfo->Operation == OB_OPERATION_HANDLE_CREATE + ? pOpInfo->Parameters->CreateHandleInformation.GrantedAccess + : pOpInfo->Parameters->DuplicateHandleInformation.GrantedAccess; + AssertReleaseMsg( !(fGrantedAccess & ~( SUPDRV_NT_ALLOW_PROCESS_RIGHTS + | WRITE_OWNER | WRITE_DAC /* these two might be forced upon us */ + | PROCESS_UNKNOWN_4000 /* Seen set on win 8.1 */ + /*| PROCESS_UNKNOWN_8000 */ ) ) + || pOpInfo->KernelHandle, + ("GrantedAccess=%#x - we allow %#x - we did not allow %#x\n", + fGrantedAccess, SUPDRV_NT_ALLOW_PROCESS_RIGHTS, fGrantedAccess & ~SUPDRV_NT_ALLOW_PROCESS_RIGHTS)); + } +} + +# undef SUPDRV_NT_ALLOW_PROCESS_RIGHTS + +/** @} */ + + +/** @name Thread Handle Callbacks + * @{ */ + +/* From ntifs.h */ +extern "C" NTKERNELAPI PEPROCESS __stdcall IoThreadToProcess(PETHREAD); + +/** Thread rights that we allow for handles to stub and VM processes. */ +# define SUPDRV_NT_ALLOWED_THREAD_RIGHTS \ + ( THREAD_TERMINATE \ + | THREAD_GET_CONTEXT \ + | THREAD_QUERY_INFORMATION \ + | THREAD_QUERY_LIMITED_INFORMATION \ + | DELETE \ + | READ_CONTROL \ + | SYNCHRONIZE) +/** @todo consider THREAD_SET_LIMITED_INFORMATION & THREAD_RESUME */ + +/** Evil thread rights. + * @remarks THREAD_RESUME is not included as it seems to be forced upon us by + * Windows 8.1, at least for some processes. We dont' actively + * allow it though, just tollerate it when forced to. */ +# define SUPDRV_NT_EVIL_THREAD_RIGHTS \ + ( THREAD_SUSPEND_RESUME \ + | THREAD_SET_CONTEXT \ + | THREAD_SET_INFORMATION \ + | THREAD_SET_LIMITED_INFORMATION /*?*/ \ + | THREAD_SET_THREAD_TOKEN /*?*/ \ + | THREAD_IMPERSONATE /*?*/ \ + | THREAD_DIRECT_IMPERSONATION /*?*/ \ + /*| THREAD_RESUME - see remarks. */ \ + | 0) +AssertCompile((SUPDRV_NT_EVIL_THREAD_RIGHTS & SUPDRV_NT_ALLOWED_THREAD_RIGHTS) == 0); + + +static OB_PREOP_CALLBACK_STATUS __stdcall +supdrvNtProtectCallback_ThreadHandlePre(PVOID pvUser, POB_PRE_OPERATION_INFORMATION pOpInfo) +{ + Assert(pvUser == NULL); + Assert(pOpInfo->Operation == OB_OPERATION_HANDLE_CREATE || pOpInfo->Operation == OB_OPERATION_HANDLE_DUPLICATE); + Assert(pOpInfo->ObjectType == *PsThreadType); + + PEPROCESS pProcess = IoThreadToProcess((PETHREAD)pOpInfo->Object); + PSUPDRVNTPROTECT pNtProtect = supdrvNtProtectLookup(PsGetProcessId(pProcess)); + pOpInfo->CallContext = pNtProtect; /* Just for reference. */ + if (pNtProtect) + { + static ACCESS_MASK const s_fCsrssStupidDesires = 0x1fffff; + ACCESS_MASK fAllowedRights = SUPDRV_NT_ALLOWED_THREAD_RIGHTS; + + if (pOpInfo->Operation == OB_OPERATION_HANDLE_CREATE) + { + /* Don't restrict the process accessing its own threads. */ + if (pProcess == PsGetCurrentProcess()) + { + Log(("vboxdrv/ThreadHandlePre: %sctx=%04zx/%p wants %#x to %p in pid=%04zx [%d] self\n", + pOpInfo->KernelHandle ? "k" : "", PsGetProcessId(PsGetCurrentProcess()), PsGetCurrentProcess(), + pOpInfo->Parameters->CreateHandleInformation.DesiredAccess, + pOpInfo->Object, pNtProtect->AvlCore.Key, pNtProtect->enmProcessKind)); + pOpInfo->CallContext = NULL; /* don't assert */ + pNtProtect->fFirstThreadCreateHandle = false; + } +#ifdef VBOX_WITHOUT_DEBUGGER_CHECKS + /* Allow debuggers full access. */ + else if (supdrvNtProtectIsWhitelistedDebugger(PsGetCurrentProcess())) + { + Log(("vboxdrv/ThreadHandlePre: %sctx=%04zx/%p wants %#x to %p in pid=%04zx [%d] %s [debugger]\n", + pOpInfo->KernelHandle ? "k" : "", PsGetProcessId(PsGetCurrentProcess()), PsGetCurrentProcess(), + pOpInfo->Parameters->CreateHandleInformation.DesiredAccess, + pOpInfo->Object, pNtProtect->AvlCore.Key, pNtProtect->enmProcessKind, + PsGetProcessImageFileName(PsGetCurrentProcess()) )); + pOpInfo->CallContext = NULL; /* don't assert */ + } +#endif + else + { + /* Special case 1 on Vista, 7, 8: + The CreateProcess code passes the handle over to CSRSS.EXE + and the code inBaseSrvCreateProcess will duplicate the + handle with 0x1fffff as access mask. NtDuplicateObject will + fail this call before it ever gets down here. */ + if ( g_uNtVerCombined < SUP_MAKE_NT_VER_SIMPLE(6, 3) + && pNtProtect->enmProcessKind == kSupDrvNtProtectKind_VmProcessUnconfirmed + && pNtProtect->fFirstThreadCreateHandle + && pOpInfo->KernelHandle == 0 + && ExGetPreviousMode() == UserMode + && pNtProtect->hParentPid == PsGetProcessId(PsGetCurrentProcess()) ) + { + if ( !pOpInfo->KernelHandle + && pOpInfo->Parameters->CreateHandleInformation.DesiredAccess == s_fCsrssStupidDesires) + { + fAllowedRights |= s_fCsrssStupidDesires; + pOpInfo->CallContext = NULL; /* don't assert this. */ + } + pNtProtect->fFirstThreadCreateHandle = false; + } + + /* Special case 2 on 8.1, possibly also Vista, 7, 8: + When creating a process like VBoxTestOGL from the VM process, + CSRSS.EXE will try talk to the calling thread and, it + appears, impersonate it. We unfortunately need to allow + this or there will be no 3D support. Typical DbgPrint: + "SXS: BasepCreateActCtx() Calling csrss server failed. Status = 0xc00000a5" */ + SUPDRVNTPROTECTKIND enmProcessKind; + if ( g_uNtVerCombined >= SUP_MAKE_NT_VER_COMBINED(6, 0, 0, 0, 0) + && ( (enmProcessKind = pNtProtect->enmProcessKind) == kSupDrvNtProtectKind_VmProcessConfirmed + || enmProcessKind == kSupDrvNtProtectKind_VmProcessUnconfirmed) + && pOpInfo->KernelHandle == 0 + && ExGetPreviousMode() == UserMode + && supdrvNtProtectIsAssociatedCsrss(pNtProtect, PsGetCurrentProcess()) ) + { + fAllowedRights |= THREAD_IMPERSONATE; + fAllowedRights |= THREAD_DIRECT_IMPERSONATION; + //fAllowedRights |= THREAD_SET_LIMITED_INFORMATION; - try without this one + pOpInfo->CallContext = NULL; /* don't assert this. */ + } + + Log(("vboxdrv/ThreadHandlePre: %sctx=%04zx/%p wants %#x to %p in pid=%04zx [%d], allow %#x => %#x; %s [prev=%#x]\n", + pOpInfo->KernelHandle ? "k" : "", PsGetProcessId(PsGetCurrentProcess()), PsGetCurrentProcess(), + pOpInfo->Parameters->CreateHandleInformation.DesiredAccess, + pOpInfo->Object, pNtProtect->AvlCore.Key, pNtProtect->enmProcessKind, fAllowedRights, + pOpInfo->Parameters->CreateHandleInformation.DesiredAccess & fAllowedRights, + PsGetProcessImageFileName(PsGetCurrentProcess()), ExGetPreviousMode())); + + pOpInfo->Parameters->CreateHandleInformation.DesiredAccess &= fAllowedRights; + } + } + else + { + /* Don't restrict the process accessing its own threads. */ + if ( pProcess == PsGetCurrentProcess() + && (PEPROCESS)pOpInfo->Parameters->DuplicateHandleInformation.TargetProcess == pProcess) + { + Log(("vboxdrv/ThreadHandlePre: %sctx=%04zx/%p[%p] dup from %04zx/%p with %#x to %p in pid=%04zx [%d] self\n", + pOpInfo->KernelHandle ? "k" : "", PsGetProcessId(PsGetCurrentProcess()), PsGetCurrentProcess(), + pOpInfo->Parameters->DuplicateHandleInformation.TargetProcess, + PsGetProcessId((PEPROCESS)pOpInfo->Parameters->DuplicateHandleInformation.SourceProcess), + pOpInfo->Parameters->DuplicateHandleInformation.SourceProcess, + pOpInfo->Parameters->DuplicateHandleInformation.DesiredAccess, + pOpInfo->Object, pNtProtect->AvlCore.Key, pNtProtect->enmProcessKind, + PsGetProcessImageFileName(PsGetCurrentProcess()) )); + pOpInfo->CallContext = NULL; /* don't assert */ + } + else + { + /* Special case 3 on Vista, 7, 8: + This is the follow up to special case 1. */ + SUPDRVNTPROTECTKIND enmProcessKind; + if ( g_uNtVerCombined >= SUP_MAKE_NT_VER_COMBINED(6, 0, 0, 0, 0) + && ( (enmProcessKind = pNtProtect->enmProcessKind) == kSupDrvNtProtectKind_VmProcessConfirmed + || enmProcessKind == kSupDrvNtProtectKind_VmProcessUnconfirmed) + && pOpInfo->Parameters->DuplicateHandleInformation.TargetProcess == PsGetCurrentProcess() + && pOpInfo->KernelHandle == 0 + && ExGetPreviousMode() == UserMode + && supdrvNtProtectIsAssociatedCsrss(pNtProtect, PsGetCurrentProcess()) ) + { + fAllowedRights |= THREAD_IMPERSONATE; + fAllowedRights |= THREAD_DIRECT_IMPERSONATION; + //fAllowedRights |= THREAD_SET_LIMITED_INFORMATION; - try without this one + pOpInfo->CallContext = NULL; /* don't assert this. */ + } + + Log(("vboxdrv/ThreadHandlePre: %sctx=%04zx/%p[%p] dup from %04zx/%p with %#x to %p in pid=%04zx [%d], allow %#x => %#x; %s\n", + pOpInfo->KernelHandle ? "k" : "", PsGetProcessId(PsGetCurrentProcess()), PsGetCurrentProcess(), + pOpInfo->Parameters->DuplicateHandleInformation.TargetProcess, + PsGetProcessId((PEPROCESS)pOpInfo->Parameters->DuplicateHandleInformation.SourceProcess), + pOpInfo->Parameters->DuplicateHandleInformation.SourceProcess, + pOpInfo->Parameters->DuplicateHandleInformation.DesiredAccess, + pOpInfo->Object, pNtProtect->AvlCore.Key, pNtProtect->enmProcessKind, fAllowedRights, + pOpInfo->Parameters->DuplicateHandleInformation.DesiredAccess & fAllowedRights, + PsGetProcessImageFileName(PsGetCurrentProcess()) )); + + pOpInfo->Parameters->DuplicateHandleInformation.DesiredAccess &= fAllowedRights; + } + } + + supdrvNtProtectRelease(pNtProtect); + } + + return OB_PREOP_SUCCESS; +} + + +static VOID __stdcall +supdrvNtProtectCallback_ThreadHandlePost(PVOID pvUser, POB_POST_OPERATION_INFORMATION pOpInfo) +{ + Assert(pvUser == NULL); + Assert(pOpInfo->Operation == OB_OPERATION_HANDLE_CREATE || pOpInfo->Operation == OB_OPERATION_HANDLE_DUPLICATE); + Assert(pOpInfo->ObjectType == *PsThreadType); + + if ( pOpInfo->CallContext + && NT_SUCCESS(pOpInfo->ReturnStatus)) + { + ACCESS_MASK const fGrantedAccess = pOpInfo->Parameters->CreateHandleInformation.GrantedAccess; + AssertReleaseMsg( !(fGrantedAccess & ~( SUPDRV_NT_ALLOWED_THREAD_RIGHTS + | WRITE_OWNER | WRITE_DAC /* these two might be forced upon us */ + | THREAD_RESUME /* This seems to be force upon us too with 8.1. */ + ) ) + || pOpInfo->KernelHandle, + ("GrantedAccess=%#x - we allow %#x - we did not allow %#x\n", + fGrantedAccess, SUPDRV_NT_ALLOWED_THREAD_RIGHTS, fGrantedAccess & ~SUPDRV_NT_ALLOWED_THREAD_RIGHTS)); + } +} + +# undef SUPDRV_NT_ALLOWED_THREAD_RIGHTS + +/** @} */ + + +/** + * Creates a new process protection structure. + * + * @returns VBox status code. + * @param ppNtProtect Where to return the pointer to the structure + * on success. + * @param hPid The process ID of the process to protect. + * @param enmProcessKind The kind of process we're protecting. + * @param fLink Whether to link the structure into the tree. + */ +static int supdrvNtProtectCreate(PSUPDRVNTPROTECT *ppNtProtect, HANDLE hPid, SUPDRVNTPROTECTKIND enmProcessKind, bool fLink) +{ + AssertReturn(g_hNtProtectLock != NIL_RTSPINLOCK, VERR_WRONG_ORDER); + + PSUPDRVNTPROTECT pNtProtect = (PSUPDRVNTPROTECT)RTMemAllocZ(sizeof(*pNtProtect)); + if (!pNtProtect) + return VERR_NO_MEMORY; + + pNtProtect->AvlCore.Key = hPid; + pNtProtect->u32Magic = SUPDRVNTPROTECT_MAGIC; + pNtProtect->cRefs = 1; + pNtProtect->enmProcessKind = enmProcessKind; + pNtProtect->hParentPid = NULL; + pNtProtect->hOpenTid = NULL; + pNtProtect->hCsrssPid = NULL; + pNtProtect->pCsrssProcess = NULL; + + if (fLink) + { + RTSPINLOCKTMP Tmp = RTSPINLOCKTMP_INITIALIZER; + RTSpinlockAcquire(g_hNtProtectLock, &Tmp); + bool fSuccess = RTAvlPVInsert(&g_NtProtectTree, &pNtProtect->AvlCore); + pNtProtect->fInTree = fSuccess; + RTSpinlockRelease(g_hNtProtectLock, &Tmp); + + if (!fSuccess) + { + /* Duplicate entry, fail. */ + pNtProtect->u32Magic = SUPDRVNTPROTECT_MAGIC_DEAD; + LogRel(("supdrvNtProtectCreate: Duplicate (%#x).\n", pNtProtect->AvlCore.Key)); + RTMemFree(pNtProtect); + return VERR_DUPLICATE; + } + } + + *ppNtProtect = pNtProtect; + return VINF_SUCCESS; +} + + +/** + * Releases a reference to a NT protection structure. + * + * @param pNtProtect The NT protection structure. + */ +static void supdrvNtProtectRelease(PSUPDRVNTPROTECT pNtProtect) +{ + if (!pNtProtect) + return; + AssertReturnVoid(pNtProtect->u32Magic == SUPDRVNTPROTECT_MAGIC); + + RTSPINLOCKTMP Tmp = RTSPINLOCKTMP_INITIALIZER; + RTSpinlockAcquire(g_hNtProtectLock, &Tmp); + uint32_t cRefs = ASMAtomicDecU32(&pNtProtect->cRefs); + if (cRefs != 0) + RTSpinlockRelease(g_hNtProtectLock, &Tmp); + else + { + /* + * That was the last reference. Remove it from the tree, invalidate it + * and free the resources associated with it. Also, release any + * child/parent references related to this protection structure. + */ + ASMAtomicWriteU32(&pNtProtect->u32Magic, SUPDRVNTPROTECT_MAGIC_DEAD); + if (pNtProtect->fInTree) + { + PSUPDRVNTPROTECT pRemoved = (PSUPDRVNTPROTECT)RTAvlPVRemove(&g_NtProtectTree, pNtProtect->AvlCore.Key); + Assert(pRemoved == pNtProtect); + pNtProtect->fInTree = false; + } + + PSUPDRVNTPROTECT pChild = NULL; + if (pNtProtect->enmProcessKind == kSupDrvNtProtectKind_StubParent) + { + pChild = pNtProtect->u.pChild; + if (pChild) + { + pNtProtect->u.pChild = NULL; + pChild->u.pParent = NULL; + pChild->enmProcessKind = kSupDrvNtProtectKind_VmProcessDead; + uint32_t cChildRefs = ASMAtomicDecU32(&pChild->cRefs); + if (!cChildRefs) + { + Assert(pChild->fInTree); + if (pChild->fInTree) + { + PSUPDRVNTPROTECT pRemovedChild = (PSUPDRVNTPROTECT)RTAvlPVRemove(&g_NtProtectTree, pChild->AvlCore.Key); + Assert(pRemovedChild == pChild); + pChild->fInTree = false; + } + } + else + pChild = NULL; + } + } + else + AssertRelease(pNtProtect->enmProcessKind != kSupDrvNtProtectKind_VmProcessUnconfirmed); + + RTSpinlockRelease(g_hNtProtectLock, &Tmp); + + if (pNtProtect->pCsrssProcess) + { + ObDereferenceObject(pNtProtect->pCsrssProcess); + pNtProtect->pCsrssProcess = NULL; + } + + RTMemFree(pNtProtect); + if (pChild) + RTMemFree(pChild); + } +} + + +/** + * Looks up a PID in the NT protect tree. + * + * @returns Pointer to a NT protection structure (with a referenced) on success, + * NULL if not found. + * @param hPid The process ID. + */ +static PSUPDRVNTPROTECT supdrvNtProtectLookup(HANDLE hPid) +{ + RTSPINLOCKTMP Tmp = RTSPINLOCKTMP_INITIALIZER; + RTSpinlockAcquire(g_hNtProtectLock, &Tmp); + PSUPDRVNTPROTECT pFound = (PSUPDRVNTPROTECT)RTAvlPVGet(&g_NtProtectTree, hPid); + if (pFound) + ASMAtomicIncU32(&pFound->cRefs); + RTSpinlockRelease(g_hNtProtectLock, &Tmp); + return pFound; +} + + +/** + * Validates a few facts about the stub process when the VM process opens + * vboxdrv. + * + * This makes sure the stub process is still around and that it has neither + * debugger nor extra threads in it. + * + * @returns VBox status code. + * @param pNtProtect The unconfirmed VM process currently trying to + * open vboxdrv. + * @param pErrInfo Additional error information. + */ +static int supdrvNtProtectVerifyStubForVmProcess(PSUPDRVNTPROTECT pNtProtect, PRTERRINFO pErrInfo) +{ + /* + * Grab a reference to the parent stub process. + */ + SUPDRVNTPROTECTKIND enmStub = kSupDrvNtProtectKind_Invalid; + PSUPDRVNTPROTECT pNtStub = NULL; + RTSPINLOCKTMP Tmp = RTSPINLOCKTMP_INITIALIZER; + RTSpinlockAcquire(g_hNtProtectLock, &Tmp); + if (pNtProtect->enmProcessKind == kSupDrvNtProtectKind_VmProcessUnconfirmed) + { + pNtStub = pNtProtect->u.pParent; /* weak reference. */ + if (pNtStub) + { + enmStub = pNtStub->enmProcessKind; + if (enmStub == kSupDrvNtProtectKind_StubParent) + { + uint32_t cRefs = ASMAtomicIncU32(&pNtStub->cRefs); + Assert(cRefs > 0 && cRefs < 1024); + } + else + pNtStub = NULL; + } + } + RTSpinlockRelease(g_hNtProtectLock, &Tmp); + + /* + * We require the stub process to be present. + */ + if (!pNtStub) + return RTErrInfoSetF(pErrInfo, VERR_SUP_VP_STUB_NOT_FOUND, "Missing stub process (enmStub=%d).", enmStub); + + /* + * Open the parent process and thread so we can check for debuggers and unwanted threads. + */ + int rc; + PEPROCESS pStubProcess; + NTSTATUS rcNt = PsLookupProcessByProcessId(pNtStub->AvlCore.Key, &pStubProcess); + if (NT_SUCCESS(rcNt)) + { + HANDLE hStubProcess; + rcNt = ObOpenObjectByPointer(pStubProcess, OBJ_KERNEL_HANDLE, NULL /*PassedAccessState*/, + 0 /*DesiredAccess*/, *PsProcessType, KernelMode, &hStubProcess); + if (NT_SUCCESS(rcNt)) + { + PETHREAD pStubThread; + rcNt = PsLookupThreadByThreadId(pNtStub->hOpenTid, &pStubThread); + if (NT_SUCCESS(rcNt)) + { + HANDLE hStubThread; + rcNt = ObOpenObjectByPointer(pStubThread, OBJ_KERNEL_HANDLE, NULL /*PassedAccessState*/, + 0 /*DesiredAccess*/, *PsThreadType, KernelMode, &hStubThread); + if (NT_SUCCESS(rcNt)) + { + /* + * Do some simple sanity checking. + */ + rc = supHardNtVpDebugger(hStubProcess, pErrInfo); + if (RT_SUCCESS(rc)) + rc = supHardNtVpThread(hStubProcess, hStubThread, pErrInfo); + + /* Clean up. */ + rcNt = NtClose(hStubThread); AssertMsg(NT_SUCCESS(rcNt), ("%#x\n", rcNt)); + } + else + rc = RTErrInfoSetF(pErrInfo, VERR_SUP_VP_STUB_THREAD_OPEN_ERROR, + "Error opening stub thread %p (tid %p, pid %p): %#x", + pStubThread, pNtStub->hOpenTid, pNtStub->AvlCore.Key, rcNt); + } + else + rc = RTErrInfoSetF(pErrInfo, VERR_SUP_VP_STUB_THREAD_NOT_FOUND, + "Failed to locate thread %p in %p: %#x", pNtStub->hOpenTid, pNtStub->AvlCore.Key, rcNt); + rcNt = NtClose(hStubProcess); AssertMsg(NT_SUCCESS(rcNt), ("%#x\n", rcNt)); + } + else + rc = RTErrInfoSetF(pErrInfo, VERR_SUP_VP_STUB_OPEN_ERROR, + "Error opening stub process %p (pid %p): %#x", pStubProcess, pNtStub->AvlCore.Key, rcNt); + ObDereferenceObject(pStubProcess); + } + else + rc = RTErrInfoSetF(pErrInfo, VERR_SUP_VP_STUB_NOT_FOUND, + "Failed to locate stub process %p: %#x", pNtStub->AvlCore.Key, rcNt); + + supdrvNtProtectRelease(pNtStub); + return rc; +} + + +/** + * Worker for supdrvNtProtectVerifyProcess that verifies the handles to a VM + * process and its thread. + * + * @returns VBox status code. + * @param pNtProtect The NT protect structure for getting information + * about special processes. + * @param pErrInfo Where to return additional error details. + */ +static int supdrvNtProtectRestrictHandlesToProcessAndThread(PSUPDRVNTPROTECT pNtProtect, PRTERRINFO pErrInfo) +{ + /* + * What to protect. + */ + PEPROCESS pProtectedProcess = PsGetCurrentProcess(); + HANDLE hProtectedPid = PsGetProcessId(pProtectedProcess); + PETHREAD pProtectedThread = PsGetCurrentThread(); + AssertReturn(pNtProtect->AvlCore.Key == hProtectedPid, VERR_INTERNAL_ERROR_5); + + /* + * Take a snapshot of all the handles in the system. + * Note! The 32 bytes on the size of to counteract the allocation header + * that rtR0MemAllocEx slaps on everything. + */ + uint32_t cbBuf = _256K - 32; + uint8_t *pbBuf = (uint8_t *)RTMemAlloc(cbBuf); + ULONG cbNeeded = cbBuf; + NTSTATUS rcNt = NtQuerySystemInformation(SystemExtendedHandleInformation, pbBuf, cbBuf, &cbNeeded); + if (!NT_SUCCESS(rcNt)) + { + while ( rcNt == STATUS_INFO_LENGTH_MISMATCH + && cbNeeded > cbBuf + && cbBuf <= 32U*_1M) + { + cbBuf = RT_ALIGN_32(cbNeeded + _4K, _64K) - 32; + RTMemFree(pbBuf); + pbBuf = (uint8_t *)RTMemAlloc(cbBuf); + if (!pbBuf) + return RTErrInfoSetF(pErrInfo, VERR_NO_MEMORY, "Error allocating %zu bytes for querying handles.", cbBuf); + rcNt = NtQuerySystemInformation(SystemExtendedHandleInformation, pbBuf, cbBuf, &cbNeeded); + } + if (!NT_SUCCESS(rcNt)) + { + RTMemFree(pbBuf); + return RTErrInfoSetF(pErrInfo, RTErrConvertFromNtStatus(rcNt), + "NtQuerySystemInformation/SystemExtendedHandleInformation failed: %#x\n", rcNt); + } + } + + /* + * Walk the information and look for handles to the two objects we're protecting. + */ + int rc = VINF_SUCCESS; +# ifdef VBOX_WITHOUT_DEBUGGER_CHECKS + HANDLE idLastDebugger = (HANDLE)~(uintptr_t)0; +# endif + + uint32_t cCsrssProcessHandles = 0; + uint32_t cSystemProcessHandles = 0; + uint32_t cEvilProcessHandles = 0; + uint32_t cBenignProcessHandles = 0; + + uint32_t cCsrssThreadHandles = 0; + uint32_t cEvilThreadHandles = 0; + uint32_t cBenignThreadHandles = 0; + + SYSTEM_HANDLE_INFORMATION_EX const *pInfo = (SYSTEM_HANDLE_INFORMATION_EX const *)pbBuf; + ULONG_PTR i = pInfo->NumberOfHandles; + AssertRelease(RT_OFFSETOF(SYSTEM_HANDLE_INFORMATION_EX, Handles[i]) == cbNeeded); + while (i-- > 0) + { + const char *pszType; + SYSTEM_HANDLE_ENTRY_INFO_EX const *pHandleInfo = &pInfo->Handles[i]; + if (pHandleInfo->Object == pProtectedProcess) + { + /* Handles within the protected process are fine. */ + if ( !(pHandleInfo->GrantedAccess & SUPDRV_NT_EVIL_PROCESS_RIGHTS) + || pHandleInfo->UniqueProcessId == hProtectedPid) + { + cBenignProcessHandles++; + continue; + } + + /* CSRSS is allowed to have one evil process handle. + See the special cases in the hook code. */ + if ( cCsrssProcessHandles < 1 + && pHandleInfo->UniqueProcessId == pNtProtect->hCsrssPid) + { + cCsrssProcessHandles++; + continue; + } + + /* The system process is allowed having two open process handle in + Windows 8.1 and later, and one in earlier. This is probably a + little overly paranoid as I think we can safely trust the + system process... */ + if ( cSystemProcessHandles < (g_uNtVerCombined >= SUP_MAKE_NT_VER_SIMPLE(6, 3) ? UINT32_C(2) : UINT32_C(1)) + && pHandleInfo->UniqueProcessId == PsGetProcessId(PsInitialSystemProcess)) + { + cSystemProcessHandles++; + continue; + } + + cEvilProcessHandles++; + pszType = "process"; + } + else if (pHandleInfo->Object == pProtectedThread) + { + /* Handles within the protected process is fine. */ + if ( !(pHandleInfo->GrantedAccess & SUPDRV_NT_EVIL_THREAD_RIGHTS) + || pHandleInfo->UniqueProcessId == hProtectedPid) + { + cBenignThreadHandles++; + continue; + } + + /* CSRSS is allowed to have one evil handle to the primary thread + for LPC purposes. See the hook for special case. */ + if ( cCsrssThreadHandles < 1 + && pHandleInfo->UniqueProcessId == pNtProtect->hCsrssPid) + { + cCsrssThreadHandles++; + continue; + } + + cEvilThreadHandles++; + pszType = "thread"; + } + else + continue; + +# ifdef VBOX_WITHOUT_DEBUGGER_CHECKS + /* Ignore whitelisted debuggers. */ + if (pHandleInfo->UniqueProcessId == idLastDebugger) + continue; + PEPROCESS pDbgProc; + NTSTATUS rcNt = PsLookupProcessByProcessId(pHandleInfo->UniqueProcessId, &pDbgProc); + if (NT_SUCCESS(rcNt)) + { + bool fIsDebugger = supdrvNtProtectIsWhitelistedDebugger(pDbgProc); + ObDereferenceObject(pDbgProc); + if (fIsDebugger) + { + idLastDebugger = pHandleInfo->UniqueProcessId; + continue; + } + } +# endif + + /* Found evil handle. Currently ignoring on pre-Vista. */ +# ifndef VBOX_WITH_VISTA_NO_SP + if ( g_uNtVerCombined >= SUP_NT_VER_VISTA +# else + if ( g_uNtVerCombined >= SUP_MAKE_NT_VER_COMBINED(6, 0, 6001, 0, 0) +# endif + || g_pfnObRegisterCallbacks) + { + LogRel(("vboxdrv: Found evil handle to budding VM process: pid=%p h=%p acc=%#x attr=%#x type=%s\n", + pHandleInfo->UniqueProcessId, pHandleInfo->HandleValue, + pHandleInfo->GrantedAccess, pHandleInfo->HandleAttributes, pszType)); + rc = RTErrInfoAddF(pErrInfo, VERR_SUPDRV_HARDENING_EVIL_HANDLE, + *pErrInfo->pszMsg + ? "\nFound evil handle to budding VM process: pid=%p h=%p acc=%#x attr=%#x type=%s" + : "Found evil handle to budding VM process: pid=%p h=%p acc=%#x attr=%#x type=%s", + pHandleInfo->UniqueProcessId, pHandleInfo->HandleValue, + pHandleInfo->GrantedAccess, pHandleInfo->HandleAttributes, pszType); + + /* Try add the process name. */ + PEPROCESS pOffendingProcess; + rcNt = PsLookupProcessByProcessId(pHandleInfo->UniqueProcessId, &pOffendingProcess); + if (NT_SUCCESS(rcNt)) + { + const char *pszName = (const char *)PsGetProcessImageFileName(pOffendingProcess); + if (pszName && *pszName) + rc = RTErrInfoAddF(pErrInfo, rc, " [%s]", pszName); + + ObDereferenceObject(pOffendingProcess); + } + } + } + + RTMemFree(pbBuf); + return rc; +} + + +/** + * Checks if the current process checks out as a VM process stub. + * + * @returns VBox status code. + * @param pNtProtect The NT protect structure. This is upgraded to a + * final protection kind (state) on success. + */ +static int supdrvNtProtectVerifyProcess(PSUPDRVNTPROTECT pNtProtect) +{ + AssertReturn(PsGetProcessId(PsGetCurrentProcess()) == pNtProtect->AvlCore.Key, VERR_INTERNAL_ERROR_3); + + /* + * Do the verification. The handle restriction checks are only preformed + * on VM processes. + */ + int rc = VINF_SUCCESS; + PSUPDRVNTERRORINFO pErrorInfo = (PSUPDRVNTERRORINFO)RTMemAllocZ(sizeof(*pErrorInfo)); + if (RT_SUCCESS(rc)) + { + pErrorInfo->hProcessId = PsGetCurrentProcessId(); + pErrorInfo->hThreadId = PsGetCurrentThreadId(); + RTERRINFO ErrInfo; + RTErrInfoInit(&ErrInfo, pErrorInfo->szErrorInfo, sizeof(pErrorInfo->szErrorInfo)); + + if (pNtProtect->enmProcessKind >= kSupDrvNtProtectKind_VmProcessUnconfirmed) + rc = supdrvNtProtectRestrictHandlesToProcessAndThread(pNtProtect, &ErrInfo); + if (RT_SUCCESS(rc)) + { + rc = supHardenedWinVerifyProcess(NtCurrentProcess(), NtCurrentThread(), SUPHARDNTVPKIND_VERIFY_ONLY, 0 /*fFlags*/, + NULL /*pcFixes*/, &ErrInfo); + if (RT_SUCCESS(rc) && pNtProtect->enmProcessKind >= kSupDrvNtProtectKind_VmProcessUnconfirmed) + rc = supdrvNtProtectVerifyStubForVmProcess(pNtProtect, &ErrInfo); + } + } + else + rc = VERR_NO_MEMORY; + + /* + * Upgrade and return. + */ + HANDLE hOpenTid = PsGetCurrentThreadId(); + RTSPINLOCKTMP Tmp = RTSPINLOCKTMP_INITIALIZER; + RTSpinlockAcquire(g_hNtProtectLock, &Tmp); + + /* Stub process verficiation is pretty much straight forward. */ + if (pNtProtect->enmProcessKind == kSupDrvNtProtectKind_StubUnverified) + { + pNtProtect->enmProcessKind = RT_SUCCESS(rc) ? kSupDrvNtProtectKind_StubSpawning : kSupDrvNtProtectKind_StubDead; + pNtProtect->hOpenTid = hOpenTid; + } + /* The VM process verification is a little bit more complicated + because we need to drop the parent process reference as well. */ + else if (pNtProtect->enmProcessKind == kSupDrvNtProtectKind_VmProcessUnconfirmed) + { + AssertRelease(pNtProtect->cRefs >= 2); /* Parent + Caller */ + PSUPDRVNTPROTECT pParent = pNtProtect->u.pParent; + AssertRelease(pParent); + AssertRelease(pParent->u.pParent == pNtProtect); + AssertRelease(pParent->enmProcessKind == kSupDrvNtProtectKind_StubParent); + pParent->u.pParent = NULL; + + pNtProtect->u.pParent = NULL; + ASMAtomicDecU32(&pNtProtect->cRefs); + + if (RT_SUCCESS(rc)) + { + pNtProtect->enmProcessKind = kSupDrvNtProtectKind_VmProcessConfirmed; + pNtProtect->hOpenTid = hOpenTid; + } + else + pNtProtect->enmProcessKind = kSupDrvNtProtectKind_VmProcessDead; + } + + /* Since the stub and VM processes are only supposed to have one thread, + we're not supposed to be subject to any races from within the processes. + + There is a race between VM process verification and the stub process + exiting, though. We require the stub process to be alive until the new + VM process has made it thru the validation. So, when the stub + terminates the notification handler will change the state of both stub + and VM process to dead. + + Also, I'm not entirely certain where the process + termination notification is triggered from, so that can theorically + create a race in both cases. */ + else + { + AssertReleaseMsg( pNtProtect->enmProcessKind == kSupDrvNtProtectKind_StubDead + || pNtProtect->enmProcessKind == kSupDrvNtProtectKind_VmProcessDead, + ("enmProcessKind=%d rc=%Rrc\n", pNtProtect->enmProcessKind, rc)); + if (RT_SUCCESS(rc)) + rc = VERR_INVALID_STATE; /* There should be no races here. */ + } + + RTSpinlockRelease(g_hNtProtectLock, &Tmp); + + /* + * Free error info on success, keep it on failure. + */ + if (RT_SUCCESS(rc)) + RTMemFree(pErrorInfo); + else if (pErrorInfo) + { + pErrorInfo->cchErrorInfo = (uint32_t)strlen(pErrorInfo->szErrorInfo); + if (!pErrorInfo->cchErrorInfo) + pErrorInfo->cchErrorInfo = (uint32_t)RTStrPrintf(pErrorInfo->szErrorInfo, sizeof(pErrorInfo->szErrorInfo), + "supdrvNtProtectVerifyProcess: rc=%d", rc); + RTLogWriteDebugger(pErrorInfo->szErrorInfo, pErrorInfo->cchErrorInfo); + + int rc2 = RTSemMutexRequest(g_hErrorInfoLock, RT_INDEFINITE_WAIT); + if (RT_SUCCESS(rc2)) + { + pErrorInfo->uCreatedMsTs = RTTimeMilliTS(); + + /* Free old entries. */ + PSUPDRVNTERRORINFO pCur; + while ( (pCur = RTListGetFirst(&g_ErrorInfoHead, SUPDRVNTERRORINFO, ListEntry)) != NULL + && (int64_t)(pErrorInfo->uCreatedMsTs - pCur->uCreatedMsTs) > 60000 /*60sec*/) + { + RTListNodeRemove(&pCur->ListEntry); + RTMemFree(pCur); + } + + /* Insert our new entry. */ + RTListAppend(&g_ErrorInfoHead, &pErrorInfo->ListEntry); + + RTSemMutexRelease(g_hErrorInfoLock); + } + else + RTMemFree(pErrorInfo); + } + + return rc; +} + + +# ifndef VBOX_WITHOUT_DEBUGGER_CHECKS + +/** + * Checks if the current process is being debugged. + * @return @c true if debugged, @c false if not. + */ +static bool supdrvNtIsDebuggerAttached(void) +{ + return PsIsProcessBeingDebugged(PsGetCurrentProcess()) != FALSE; +} + +# endif /* !VBOX_WITHOUT_DEBUGGER_CHECKS */ + + +/** + * Terminates the hardening bits. + */ +static void supdrvNtProtectTerm(void) +{ + /* + * Stop intercepting process and thread handle creation calls. + */ + if (g_pvObCallbacksCookie) + { + g_pfnObUnRegisterCallbacks(g_pvObCallbacksCookie); + g_pvObCallbacksCookie = NULL; + } + + /* + * Stop intercepting process creation and termination notifications. + */ + NTSTATUS rcNt; + if (g_pfnPsSetCreateProcessNotifyRoutineEx) + rcNt = g_pfnPsSetCreateProcessNotifyRoutineEx(supdrvNtProtectCallback_ProcessCreateNotifyEx, TRUE /*fRemove*/); + else + rcNt = PsSetCreateProcessNotifyRoutine(supdrvNtProtectCallback_ProcessCreateNotify, TRUE /*fRemove*/); + AssertMsg(NT_SUCCESS(rcNt), ("rcNt=%#x\n", rcNt)); + + Assert(g_NtProtectTree == NULL); + + /* + * Clean up globals. + */ + RTSpinlockDestroy(g_hNtProtectLock); + g_NtProtectTree = NIL_RTSPINLOCK; + + RTSemMutexDestroy(g_hErrorInfoLock); + g_hErrorInfoLock = NIL_RTSEMMUTEX; + + PSUPDRVNTERRORINFO pCur; + while ((pCur = RTListGetFirst(&g_ErrorInfoHead, SUPDRVNTERRORINFO, ListEntry)) != NULL) + { + RTListNodeRemove(&pCur->ListEntry); + RTMemFree(pCur); + } + + supHardenedWinTermImageVerifier(); +} + +# ifdef RT_ARCH_X86 +DECLASM(void) supdrvNtQueryVirtualMemory_0xAF(void); +DECLASM(void) supdrvNtQueryVirtualMemory_0xB0(void); +DECLASM(void) supdrvNtQueryVirtualMemory_0xB1(void); +DECLASM(void) supdrvNtQueryVirtualMemory_0xB2(void); +DECLASM(void) supdrvNtQueryVirtualMemory_0xB3(void); +DECLASM(void) supdrvNtQueryVirtualMemory_0xB4(void); +DECLASM(void) supdrvNtQueryVirtualMemory_0xB5(void); +DECLASM(void) supdrvNtQueryVirtualMemory_0xB6(void); +DECLASM(void) supdrvNtQueryVirtualMemory_0xB7(void); +DECLASM(void) supdrvNtQueryVirtualMemory_0xB8(void); +DECLASM(void) supdrvNtQueryVirtualMemory_0xB9(void); +DECLASM(void) supdrvNtQueryVirtualMemory_0xBA(void); +DECLASM(void) supdrvNtQueryVirtualMemory_0xBB(void); +DECLASM(void) supdrvNtQueryVirtualMemory_0xBC(void); +DECLASM(void) supdrvNtQueryVirtualMemory_0xBD(void); +DECLASM(void) supdrvNtQueryVirtualMemory_0xBE(void); +# elif defined(RT_ARCH_AMD64) +DECLASM(void) supdrvNtQueryVirtualMemory_0x1F(void); +DECLASM(void) supdrvNtQueryVirtualMemory_0x20(void); +DECLASM(void) supdrvNtQueryVirtualMemory_0x21(void); +DECLASM(void) supdrvNtQueryVirtualMemory_0x22(void); +DECLASM(void) supdrvNtQueryVirtualMemory_0x23(void); +extern "C" NTSYSAPI NTSTATUS NTAPI ZwRequestWaitReplyPort(HANDLE, PVOID, PVOID); +# endif + +/** + * Initalizes the hardening bits. + * + * @returns NT status code. + */ +static NTSTATUS supdrvNtProtectInit(void) +{ + /* + * Initialize the globals. + */ + + /* The NT version. */ + ULONG uMajor, uMinor, uBuild; + PsGetVersion(&uMajor, &uMinor, &uBuild, NULL); + g_uNtVerCombined = SUP_MAKE_NT_VER_COMBINED(uMajor, uMinor, uBuild, 0, 0); + + /* Resolve methods we want but isn't available everywhere. */ + UNICODE_STRING RoutineName; + + RtlInitUnicodeString(&RoutineName, L"ObGetObjectType"); + g_pfnObGetObjectType = (PFNOBGETOBJECTTYPE)MmGetSystemRoutineAddress(&RoutineName); + + RtlInitUnicodeString(&RoutineName, L"ObRegisterCallbacks"); + g_pfnObRegisterCallbacks = (PFNOBREGISTERCALLBACKS)MmGetSystemRoutineAddress(&RoutineName); + + RtlInitUnicodeString(&RoutineName, L"ObUnRegisterCallbacks"); + g_pfnObUnRegisterCallbacks = (PFNOBUNREGISTERCALLBACKS)MmGetSystemRoutineAddress(&RoutineName); + + RtlInitUnicodeString(&RoutineName, L"PsSetCreateProcessNotifyRoutineEx"); + g_pfnPsSetCreateProcessNotifyRoutineEx = (PFNPSSETCREATEPROCESSNOTIFYROUTINEEX)MmGetSystemRoutineAddress(&RoutineName); + + RtlInitUnicodeString(&RoutineName, L"PsReferenceProcessFilePointer"); + g_pfnPsReferenceProcessFilePointer = (PFNPSREFERENCEPROCESSFILEPOINTER)MmGetSystemRoutineAddress(&RoutineName); + + RtlInitUnicodeString(&RoutineName, L"PsIsProtectedProcessLight"); + g_pfnPsIsProtectedProcessLight = (PFNPSISPROTECTEDPROCESSLIGHT)MmGetSystemRoutineAddress(&RoutineName); + + RtlInitUnicodeString(&RoutineName, L"ZwAlpcCreatePort"); + g_pfnZwAlpcCreatePort = (PFNZWALPCCREATEPORT)MmGetSystemRoutineAddress(&RoutineName); + + RtlInitUnicodeString(&RoutineName, L"ZwQueryVirtualMemory"); /* Yes, using Zw version here. */ + g_pfnNtQueryVirtualMemory = (PFNNTQUERYVIRTUALMEMORY)MmGetSystemRoutineAddress(&RoutineName); + if (!g_pfnNtQueryVirtualMemory && g_uNtVerCombined < SUP_NT_VER_VISTA) + { + /* XP & W2K3 doesn't have this function exported, so we've cooked up a + few alternative in the assembly helper file that uses the code in + ZwReadFile with a different eax value. We figure the syscall number + by inspecting ZwQueryVolumeInformationFile as it's the next number. */ +# ifdef RT_ARCH_X86 + uint8_t const *pbCode = (uint8_t const *)(uintptr_t)ZwQueryVolumeInformationFile; + if (*pbCode == 0xb8) /* mov eax, dword */ + switch (*(uint32_t const *)&pbCode[1]) + { + case 0xb0: g_pfnNtQueryVirtualMemory = (PFNNTQUERYVIRTUALMEMORY)supdrvNtQueryVirtualMemory_0xAF; break; /* just in case */ + case 0xb1: g_pfnNtQueryVirtualMemory = (PFNNTQUERYVIRTUALMEMORY)supdrvNtQueryVirtualMemory_0xB0; break; /* just in case */ + case 0xb2: g_pfnNtQueryVirtualMemory = (PFNNTQUERYVIRTUALMEMORY)supdrvNtQueryVirtualMemory_0xB1; break; /* just in case */ + case 0xb3: g_pfnNtQueryVirtualMemory = (PFNNTQUERYVIRTUALMEMORY)supdrvNtQueryVirtualMemory_0xB2; break; /* XP SP3 */ + case 0xb4: g_pfnNtQueryVirtualMemory = (PFNNTQUERYVIRTUALMEMORY)supdrvNtQueryVirtualMemory_0xB2; break; /* just in case */ + case 0xb5: g_pfnNtQueryVirtualMemory = (PFNNTQUERYVIRTUALMEMORY)supdrvNtQueryVirtualMemory_0xB3; break; /* just in case */ + case 0xb6: g_pfnNtQueryVirtualMemory = (PFNNTQUERYVIRTUALMEMORY)supdrvNtQueryVirtualMemory_0xB4; break; /* just in case */ + case 0xb7: g_pfnNtQueryVirtualMemory = (PFNNTQUERYVIRTUALMEMORY)supdrvNtQueryVirtualMemory_0xB5; break; /* just in case */ + case 0xb8: g_pfnNtQueryVirtualMemory = (PFNNTQUERYVIRTUALMEMORY)supdrvNtQueryVirtualMemory_0xB6; break; /* just in case */ + case 0xb9: g_pfnNtQueryVirtualMemory = (PFNNTQUERYVIRTUALMEMORY)supdrvNtQueryVirtualMemory_0xB7; break; /* just in case */ + case 0xba: g_pfnNtQueryVirtualMemory = (PFNNTQUERYVIRTUALMEMORY)supdrvNtQueryVirtualMemory_0xB8; break; /* just in case */ + case 0xbb: g_pfnNtQueryVirtualMemory = (PFNNTQUERYVIRTUALMEMORY)supdrvNtQueryVirtualMemory_0xBA; break; /* W2K3 R2 SP2 */ + case 0xbc: g_pfnNtQueryVirtualMemory = (PFNNTQUERYVIRTUALMEMORY)supdrvNtQueryVirtualMemory_0xBB; break; /* just in case */ + case 0xbd: g_pfnNtQueryVirtualMemory = (PFNNTQUERYVIRTUALMEMORY)supdrvNtQueryVirtualMemory_0xBC; break; /* just in case */ + case 0xbe: g_pfnNtQueryVirtualMemory = (PFNNTQUERYVIRTUALMEMORY)supdrvNtQueryVirtualMemory_0xBD; break; /* just in case */ + case 0xbf: g_pfnNtQueryVirtualMemory = (PFNNTQUERYVIRTUALMEMORY)supdrvNtQueryVirtualMemory_0xBE; break; /* just in case */ + } +# elif defined(RT_ARCH_AMD64) + uint8_t const *pbCode = (uint8_t const *)(uintptr_t)ZwRequestWaitReplyPort; + if ( pbCode[ 0] == 0x48 /* mov rax, rsp */ + && pbCode[ 1] == 0x8b + && pbCode[ 2] == 0xc4 + && pbCode[ 3] == 0xfa /* cli */ + && pbCode[ 4] == 0x48 /* sub rsp, 10h */ + && pbCode[ 5] == 0x83 + && pbCode[ 6] == 0xec + && pbCode[ 7] == 0x10 + && pbCode[ 8] == 0x50 /* push rax */ + && pbCode[ 9] == 0x9c /* pushfq */ + && pbCode[10] == 0x6a /* push 10 */ + && pbCode[11] == 0x10 + && pbCode[12] == 0x48 /* lea rax, [nt!KiServiceLinkage] */ + && pbCode[13] == 0x8d + && pbCode[14] == 0x05 + && pbCode[19] == 0x50 /* push rax */ + && pbCode[20] == 0xb8 /* mov eax,1fh <- the syscall no. */ + /*&& pbCode[21] == 0x1f*/ + && pbCode[22] == 0x00 + && pbCode[23] == 0x00 + && pbCode[24] == 0x00 + && pbCode[25] == 0xe9 /* jmp KiServiceInternal */ + ) + { + uint8_t const *pbKiServiceInternal = &pbCode[30] + *(int32_t const *)&pbCode[26]; + uint8_t const *pbKiServiceLinkage = &pbCode[19] + *(int32_t const *)&pbCode[15]; + if (*pbKiServiceLinkage == 0xc3) + { + g_pfnKiServiceInternal = (PFNRT)pbKiServiceInternal; + g_pfnKiServiceLinkage = (PFNRT)pbKiServiceLinkage; + switch (pbCode[21]) + { + case 0x1e: g_pfnNtQueryVirtualMemory = (PFNNTQUERYVIRTUALMEMORY)supdrvNtQueryVirtualMemory_0x1F; break; + case 0x1f: g_pfnNtQueryVirtualMemory = (PFNNTQUERYVIRTUALMEMORY)supdrvNtQueryVirtualMemory_0x20; break; + case 0x20: g_pfnNtQueryVirtualMemory = (PFNNTQUERYVIRTUALMEMORY)supdrvNtQueryVirtualMemory_0x21; break; + case 0x21: g_pfnNtQueryVirtualMemory = (PFNNTQUERYVIRTUALMEMORY)supdrvNtQueryVirtualMemory_0x22; break; + case 0x22: g_pfnNtQueryVirtualMemory = (PFNNTQUERYVIRTUALMEMORY)supdrvNtQueryVirtualMemory_0x23; break; + } + } + } +# endif + } + if (!g_pfnNtQueryVirtualMemory) + { + LogRel(("vboxdrv: Cannot locate ZwQueryVirtualMemory in ntoskrnl, nor were we able to cook up a replacement.\n")); + return STATUS_PROCEDURE_NOT_FOUND; + } + +# ifdef VBOX_STRICT + if ( g_uNtVerCombined >= SUP_NT_VER_W70 + && ( g_pfnObGetObjectType == NULL + || g_pfnZwAlpcCreatePort == NULL) ) + { + LogRel(("vboxdrv: g_pfnObGetObjectType=%p g_pfnZwAlpcCreatePort=%p.\n", g_pfnObGetObjectType, g_pfnZwAlpcCreatePort)); + return STATUS_PROCEDURE_NOT_FOUND; + } +# endif + + /* LPC object type. */ + g_pAlpcPortObjectType1 = *LpcPortObjectType; + + /* The spinlock protecting our structures. */ + int rc = RTSpinlockCreate(&g_hNtProtectLock); + if (RT_FAILURE(rc)) + return VBoxDrvNtErr2NtStatus(rc); + g_NtProtectTree = NULL; + + NTSTATUS rcNt; + + /* The mutex protecting the error information. */ + RTListInit(&g_ErrorInfoHead); + rc = RTSemMutexCreate(&g_hErrorInfoLock); + if (RT_SUCCESS(rc)) + { + /* Image stuff + certificates. */ + rc = supHardenedWinInitImageVerifier(NULL); + if (RT_SUCCESS(rc)) + { + /* + * Intercept process creation and termination. + */ + if (g_pfnPsSetCreateProcessNotifyRoutineEx) + rcNt = g_pfnPsSetCreateProcessNotifyRoutineEx(supdrvNtProtectCallback_ProcessCreateNotifyEx, FALSE /*fRemove*/); + else + rcNt = PsSetCreateProcessNotifyRoutine(supdrvNtProtectCallback_ProcessCreateNotify, FALSE /*fRemove*/); + if (NT_SUCCESS(rcNt)) + { + /* + * Intercept process and thread handle creation calls. + * The preferred method is only available on Vista SP1+. + */ + if (g_pfnObRegisterCallbacks && g_pfnObUnRegisterCallbacks) + { + static OB_OPERATION_REGISTRATION s_aObOperations[] = + { + { + PsProcessType, + OB_OPERATION_HANDLE_CREATE | OB_OPERATION_HANDLE_DUPLICATE, + supdrvNtProtectCallback_ProcessHandlePre, + supdrvNtProtectCallback_ProcessHandlePost, + }, + { + PsThreadType, + OB_OPERATION_HANDLE_CREATE | OB_OPERATION_HANDLE_DUPLICATE, + supdrvNtProtectCallback_ThreadHandlePre, + supdrvNtProtectCallback_ThreadHandlePost, + }, + }; + static OB_CALLBACK_REGISTRATION s_ObCallbackReg = + { + /* .Version = */ OB_FLT_REGISTRATION_VERSION, + /* .OperationRegistrationCount = */ RT_ELEMENTS(s_aObOperations), + /* .Altitude.Length = */ 0, + /* .Altitude.MaximumLength = */ 0, + /* .Altitude.Buffer = */ NULL, + /* .RegistrationContext = */ NULL, + /* .OperationRegistration = */ &s_aObOperations[0] + }; + static WCHAR const *s_apwszAltitudes[] = /** @todo get a valid number */ + { + L"48596.98940", L"46935.19485", L"49739.39704", L"40334.74976", + L"66667.98940", L"69888.19485", L"69889.39704", L"60364.74976", + L"85780.98940", L"88978.19485", L"89939.39704", L"80320.74976", + L"329879.98940", L"326787.19485", L"328915.39704", L"320314.74976", + }; + + rcNt = STATUS_FLT_INSTANCE_ALTITUDE_COLLISION; + for (uint32_t i = 0; i < RT_ELEMENTS(s_apwszAltitudes) && rcNt == STATUS_FLT_INSTANCE_ALTITUDE_COLLISION; i++) + { + s_ObCallbackReg.Altitude.Buffer = (WCHAR *)s_apwszAltitudes[i]; + s_ObCallbackReg.Altitude.Length = (uint16_t)RTUtf16Len(s_apwszAltitudes[i]) * sizeof(WCHAR); + s_ObCallbackReg.Altitude.MaximumLength = s_ObCallbackReg.Altitude.Length + sizeof(WCHAR); + + rcNt = g_pfnObRegisterCallbacks(&s_ObCallbackReg, &g_pvObCallbacksCookie); + if (NT_SUCCESS(rcNt)) + { + /* + * Happy ending. + */ + return STATUS_SUCCESS; + } + } + LogRel(("vboxdrv: ObRegisterCallbacks failed with rcNt=%#x\n", rcNt)); + g_pvObCallbacksCookie = NULL; + } + else + { + /* + * For the time being, we do not implement extra process + * protection on pre-Vista-SP1 systems as they are lacking + * necessary KPIs. XP is end of life, we do not wish to + * spend more time on it, so we don't put up a fuss there. + * Vista users without SP1 can install SP1 (or later), darn it, + * so refuse to load. + */ + /** @todo Hack up an XP solution - will require hooking kernel APIs or doing bad + * stuff to a couple of object types. */ +# ifndef VBOX_WITH_VISTA_NO_SP + if (g_uNtVerCombined >= SUP_NT_VER_VISTA) +# else + if (g_uNtVerCombined >= SUP_MAKE_NT_VER_COMBINED(6, 0, 6001, 0, 0)) +# endif + { + DbgPrint("vboxdrv: ObRegisterCallbacks was not found. Please make sure you got the latest updates and service packs installed\n"); + rcNt = STATUS_SXS_VERSION_CONFLICT; + } + else + { + Log(("vboxdrv: ObRegisterCallbacks was not found; ignored pre-Vista\n")); + return rcNt = STATUS_SUCCESS; + } + g_pvObCallbacksCookie = NULL; + } + + /* + * Drop process create/term notifications. + */ + if (g_pfnPsSetCreateProcessNotifyRoutineEx) + g_pfnPsSetCreateProcessNotifyRoutineEx(supdrvNtProtectCallback_ProcessCreateNotifyEx, TRUE /*fRemove*/); + else + PsSetCreateProcessNotifyRoutine(supdrvNtProtectCallback_ProcessCreateNotify, TRUE /*fRemove*/); + } + else + LogRel(("vboxdrv: PsSetCreateProcessNotifyRoutine%s failed with rcNt=%#x\n", + g_pfnPsSetCreateProcessNotifyRoutineEx ? "Ex" : "", rcNt)); + supHardenedWinTermImageVerifier(); + } + else + rcNt = VBoxDrvNtErr2NtStatus(rc); + + RTSemMutexDestroy(g_hErrorInfoLock); + g_hErrorInfoLock = NIL_RTSEMMUTEX; + } + else + rcNt = VBoxDrvNtErr2NtStatus(rc); + + RTSpinlockDestroy(g_hNtProtectLock); + g_NtProtectTree = NIL_RTSPINLOCK; + return rcNt; +} + +#endif /* VBOX_WITH_HARDENING */ + diff -Nru virtualbox-4.1.12-dfsg/src/VBox/HostDrivers/Support/win/SUPHardenedVerifyImage-win.cpp virtualbox-4.1.44-dfsg/src/VBox/HostDrivers/Support/win/SUPHardenedVerifyImage-win.cpp --- virtualbox-4.1.12-dfsg/src/VBox/HostDrivers/Support/win/SUPHardenedVerifyImage-win.cpp 1970-01-01 00:00:00.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/HostDrivers/Support/win/SUPHardenedVerifyImage-win.cpp 2015-11-11 15:08:41.000000000 +0000 @@ -0,0 +1,2785 @@ +/* $Id: SUPHardenedVerifyImage-win.cpp $ */ +/** @file + * VirtualBox Support Library/Driver - Hardened Image Verification, Windows. + */ + +/* + * Copyright (C) 2006-2014 Oracle Corporation + * + * This file is part of VirtualBox Open Source Edition (OSE), as + * available from http://www.virtualbox.org. This file is free software; + * you can redistribute it and/or modify it under the terms of the GNU + * General Public License (GPL) as published by the Free Software + * Foundation, in version 2 as it comes in the "COPYING" file of the + * VirtualBox OSE distribution. VirtualBox OSE is distributed in the + * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind. + * + * The contents of this file may alternatively be used under the terms + * of the Common Development and Distribution License Version 1.0 + * (CDDL) only, as it comes in the "COPYING.CDDL" file of the + * VirtualBox OSE distribution, in which case the provisions of the + * CDDL are applicable instead of those of the GPL. + * + * You may elect to license modified versions of this file under the + * terms and conditions of either the GPL or the CDDL or both. + */ + +/******************************************************************************* +* Header Files * +*******************************************************************************/ +#ifdef IN_RING0 +# define IPRT_NT_MAP_TO_ZW +# include +# include +#else +# include +# include "Wintrust.h" +# include "Softpub.h" +# include "mscat.h" +# ifndef LOAD_LIBRARY_SEARCH_APPLICATION_DIR +# define LOAD_LIBRARY_SEARCH_SYSTEM32 0x800 +# endif +#endif + +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#ifdef IN_RING0 +# include "SUPDrvInternal.h" +#else +# include "SUPLibInternal.h" +#endif +#include "win/SUPHardenedVerify-win.h" + + +/******************************************************************************* +* Defined Constants And Macros * +*******************************************************************************/ +/** The size of static hash (output) buffers. + * Avoids dynamic allocations and cleanups for of small buffers as well as extra + * calls for getting the appropriate buffer size. The largest digest in regular + * use by current windows version is SHA-512, we double this and hope it's + * enough a good while. */ +#define SUPHARDNTVI_MAX_CAT_HASH_SIZE 128 + + +#if defined(VBOX_PERMIT_EVEN_MORE) && !defined(VBOX_PERMIT_MORE) +# error "VBOX_PERMIT_EVEN_MORE without VBOX_PERMIT_MORE!" +#endif + + +/******************************************************************************* +* Structures and Typedefs * +*******************************************************************************/ + +#ifdef IN_RING3 +typedef LONG (WINAPI * PFNWINVERIFYTRUST)(HWND hwnd, GUID const *pgActionID, PVOID pWVTData); +typedef BOOL (WINAPI * PFNCRYPTCATADMINACQUIRECONTEXT)(HCATADMIN *phCatAdmin, const GUID *pGuidSubsystem, DWORD dwFlags); +typedef BOOL (WINAPI * PFNCRYPTCATADMINACQUIRECONTEXT2)(HCATADMIN *phCatAdmin, const GUID *pGuidSubsystem, PCWSTR pwszHashAlgorithm, + struct _CERT_STRONG_SIGN_PARA const *pStrongHashPolicy, DWORD dwFlags); +typedef BOOL (WINAPI * PFNCRYPTCATADMINCALCHASHFROMFILEHANDLE)(HANDLE hFile, DWORD *pcbHash, BYTE *pbHash, DWORD dwFlags); +typedef BOOL (WINAPI * PFNCRYPTCATADMINCALCHASHFROMFILEHANDLE2)(HCATADMIN hCatAdmin, HANDLE hFile, DWORD *pcbHash, + BYTE *pbHash, DWORD dwFlags); +typedef HCATINFO (WINAPI *PFNCRYPTCATADMINENUMCATALOGFROMHASH)(HCATADMIN hCatAdmin, BYTE *pbHash, DWORD cbHash, + DWORD dwFlags, HCATINFO *phPrevCatInfo); +typedef BOOL (WINAPI * PFNCRYPTCATADMINRELEASECATALOGCONTEXT)(HCATADMIN hCatAdmin, HCATINFO hCatInfo, DWORD dwFlags); +typedef BOOL (WINAPI * PFNCRYPTCATDADMINRELEASECONTEXT)(HCATADMIN hCatAdmin, DWORD dwFlags); +typedef BOOL (WINAPI * PFNCRYPTCATCATALOGINFOFROMCONTEXT)(HCATINFO hCatInfo, CATALOG_INFO *psCatInfo, DWORD dwFlags); + +typedef ULONG_PTR HCRYPTPROV_LEGACY; +typedef HCERTSTORE (WINAPI *PFNCERTOPENSTORE)(PCSTR pszStoreProvider, DWORD dwEncodingType, HCRYPTPROV_LEGACY hCryptProv, + DWORD dwFlags, const void *pvParam); +typedef BOOL (WINAPI *PFNCERTCLOSESTORE)(HCERTSTORE hCertStore, DWORD dwFlags); +typedef PCCERT_CONTEXT (WINAPI *PFNCERTENUMCERTIFICATESINSTORE)(HCERTSTORE hCertStore, PCCERT_CONTEXT pPrevCertContext); + +# if 0 /* Disabled due to too old SDK. Not really essential. */ +typedef NTSTATUS (WINAPI *PFNBCRYPTOPENALGORTIHMPROVIDER)(BCRYPT_ALG_HANDLE *phAlgo, PCWSTR pwszAlgoId, + PCWSTR pwszImpl, DWORD dwFlags); +# endif +#endif + + +/******************************************************************************* +* Global Variables * +*******************************************************************************/ +/** The build certificate. */ +static RTCRX509CERTIFICATE g_BuildX509Cert; + +/** Store for root software publisher certificates. */ +static RTCRSTORE g_hSpcRootStore = NIL_RTCRSTORE; +/** Store for root NT kernel certificates. */ +static RTCRSTORE g_hNtKernelRootStore = NIL_RTCRSTORE; + +/** Store containing SPC, NT kernel signing, and timestamp root certificates. */ +static RTCRSTORE g_hSpcAndNtKernelRootStore = NIL_RTCRSTORE; +/** Store for supplemental certificates for use with + * g_hSpcAndNtKernelRootStore. */ +static RTCRSTORE g_hSpcAndNtKernelSuppStore = NIL_RTCRSTORE; + +/** The full \\SystemRoot\\System32 path. */ +SUPSYSROOTDIRBUF g_System32NtPath; +/** The full \\SystemRoot\\WinSxS path. */ +SUPSYSROOTDIRBUF g_WinSxSNtPath; +#if defined(IN_RING3) && !defined(VBOX_PERMIT_EVEN_MORE) +/** The full 'Program Files' path. */ +SUPSYSROOTDIRBUF g_ProgramFilesNtPath; +# ifdef RT_ARCH_AMD64 +/** The full 'Program Files (x86)' path. */ +SUPSYSROOTDIRBUF g_ProgramFilesX86NtPath; +# endif +/** The full 'Common Files' path. */ +SUPSYSROOTDIRBUF g_CommonFilesNtPath; +# ifdef RT_ARCH_AMD64 +/** The full 'Common Files (x86)' path. */ +SUPSYSROOTDIRBUF g_CommonFilesX86NtPath; +# endif +#endif /* IN_RING3 && !VBOX_PERMIT_MORE*/ + +static union +{ + SID Sid; + uint8_t abPadding[SECURITY_MAX_SID_SIZE]; +} +/** The TrustedInstaller SID (Vista+). */ + g_TrustedInstallerSid, +/** Local system ID (S-1-5-21). */ + g_LocalSystemSid, +/** Builtin Administrators group alias (S-1-5-32-544). */ + g_AdminsGroupSid; + + +/** Set after we've retrived other SPC root certificates from the system. */ +static bool g_fHaveOtherRoots = false; + +#if defined(IN_RING3) && !defined(IN_SUP_HARDENED_R3) +/** Combined windows NT version number. See SUP_MAKE_NT_VER_COMBINED and + * SUP_MAKE_NT_VER_SIMPLE. */ +uint32_t g_uNtVerCombined; +#endif + +#ifdef IN_RING3 +/** Timestamp hack working around issues with old DLLs that we ship. + * See supHardenedWinVerifyImageByHandle() for details. */ +static uint64_t g_uBuildTimestampHack = 0; +#endif + +#ifdef IN_RING3 +/** Pointer to WinVerifyTrust. */ +PFNWINVERIFYTRUST g_pfnWinVerifyTrust; +/** Pointer to CryptCATAdminAcquireContext. */ +PFNCRYPTCATADMINACQUIRECONTEXT g_pfnCryptCATAdminAcquireContext; +/** Pointer to CryptCATAdminAcquireContext2 if available. */ +PFNCRYPTCATADMINACQUIRECONTEXT2 g_pfnCryptCATAdminAcquireContext2; +/** Pointer to CryptCATAdminCalcHashFromFileHandle. */ +PFNCRYPTCATADMINCALCHASHFROMFILEHANDLE g_pfnCryptCATAdminCalcHashFromFileHandle; +/** Pointer to CryptCATAdminCalcHashFromFileHandle2. */ +PFNCRYPTCATADMINCALCHASHFROMFILEHANDLE2 g_pfnCryptCATAdminCalcHashFromFileHandle2; +/** Pointer to CryptCATAdminEnumCatalogFromHash. */ +PFNCRYPTCATADMINENUMCATALOGFROMHASH g_pfnCryptCATAdminEnumCatalogFromHash; +/** Pointer to CryptCATAdminReleaseCatalogContext. */ +PFNCRYPTCATADMINRELEASECATALOGCONTEXT g_pfnCryptCATAdminReleaseCatalogContext; +/** Pointer to CryptCATAdminReleaseContext. */ +PFNCRYPTCATDADMINRELEASECONTEXT g_pfnCryptCATAdminReleaseContext; +/** Pointer to CryptCATCatalogInfoFromContext. */ +PFNCRYPTCATCATALOGINFOFROMCONTEXT g_pfnCryptCATCatalogInfoFromContext; + +/** Where we store the TLS entry for detecting WinVerifyTrustRecursion. */ +static uint32_t g_iTlsWinVerifyTrustRecursion = UINT32_MAX; +/** Fallback WinVerifyTrust recursion protection. */ +static uint32_t volatile g_idActiveThread = UINT32_MAX; + +#endif + + +/******************************************************************************* +* Internal Functions * +*******************************************************************************/ +#ifdef IN_RING3 +static int supR3HardNtViCallWinVerifyTrust(HANDLE hFile, PCRTUTF16 pwszName, uint32_t fFlags, PRTERRINFO pErrInfo, + PFNWINVERIFYTRUST pfnWinVerifyTrust, HRESULT *phrcWinVerifyTrust); +static int supR3HardNtViCallWinVerifyTrustCatFile(HANDLE hFile, PCRTUTF16 pwszName, uint32_t fFlags, PRTERRINFO pErrInfo, + PFNWINVERIFYTRUST pfnWinVerifyTrust); +#endif + + + + +/** @copydoc RTLDRREADER::pfnRead */ +static DECLCALLBACK(int) supHardNtViRdrRead(PRTLDRREADER pReader, void *pvBuf, size_t cb, RTFOFF off) +{ + PSUPHNTVIRDR pNtViRdr = (PSUPHNTVIRDR)pReader; + Assert(pNtViRdr->Core.uMagic == RTLDRREADER_MAGIC); + NTSTATUS rcNt; + + /* Check for type overflow (paranoia). */ + if ((ULONG)cb != cb) + return VERR_OUT_OF_RANGE; + +#ifdef IN_RING3 + /* Make sure the event semaphore is reset (normally we don't use one). */ + if (pNtViRdr->hEvent) + { + rcNt = NtClearEvent(pNtViRdr->hEvent); + if (!NT_SUCCESS(rcNt)) + return RTErrConvertFromNtStatus(rcNt); + } +#endif + + /* Perform the read. */ + LARGE_INTEGER offNt; + offNt.QuadPart = off; + + IO_STATUS_BLOCK Ios = RTNT_IO_STATUS_BLOCK_INITIALIZER; + rcNt = NtReadFile(pNtViRdr->hFile, + pNtViRdr->hEvent, + NULL /*ApcRoutine*/, + NULL /*ApcContext*/, + &Ios, + pvBuf, + (ULONG)cb, + &offNt, + NULL); + +#ifdef IN_RING0 + /* In ring-0 the handles shall be synchronized and not alertable. */ + AssertMsg(rcNt == STATUS_SUCCESS || !NT_SUCCESS(rcNt), ("%#x\n", rcNt)); +#else + /* In ring-3 we like our handles synchronized and non-alertable, but we + sometimes have to take what we can get. So, deal with pending I/O as + best we can. */ + if (rcNt == STATUS_PENDING) + rcNt = NtWaitForSingleObject(pNtViRdr->hEvent ? pNtViRdr->hEvent : pNtViRdr->hFile, FALSE /*Alertable*/, NULL); +#endif + if (NT_SUCCESS(rcNt)) + rcNt = Ios.Status; + if (NT_SUCCESS(rcNt)) + { + /* We require the caller to not read beyond the end of the file since + we don't have any way to communicate that we've read less that + requested. */ + if (Ios.Information == cb) + { + pNtViRdr->off = off + cb; /* (just for show) */ + return VINF_SUCCESS; + } +#ifdef IN_RING3 + supR3HardenedError(VERR_READ_ERROR, false, + "supHardNtViRdrRead: Only got %#zx bytes when requesting %#zx bytes at %#llx in '%s'.\n", + Ios.Information, off, cb, pNtViRdr->szFilename); +#endif + } + pNtViRdr->off = -1; + return VERR_READ_ERROR; +} + + +/** @copydoc RTLDRREADER::pfnTell */ +static DECLCALLBACK(RTFOFF) supHardNtViRdrTell(PRTLDRREADER pReader) +{ + PSUPHNTVIRDR pNtViRdr = (PSUPHNTVIRDR)pReader; + Assert(pNtViRdr->Core.uMagic == RTLDRREADER_MAGIC); + return pNtViRdr->off; +} + + +/** @copydoc RTLDRREADER::pfnSize */ +static DECLCALLBACK(RTFOFF) supHardNtViRdrSize(PRTLDRREADER pReader) +{ + PSUPHNTVIRDR pNtViRdr = (PSUPHNTVIRDR)pReader; + Assert(pNtViRdr->Core.uMagic == RTLDRREADER_MAGIC); + return pNtViRdr->cbFile; +} + + +/** @copydoc RTLDRREADER::pfnLogName */ +static DECLCALLBACK(const char *) supHardNtViRdrLogName(PRTLDRREADER pReader) +{ + PSUPHNTVIRDR pNtViRdr = (PSUPHNTVIRDR)pReader; + return pNtViRdr->szFilename; +} + + +/** @copydoc RTLDRREADER::pfnMap */ +static DECLCALLBACK(int) supHardNtViRdrMap(PRTLDRREADER pReader, const void **ppvBits) +{ + return VERR_NOT_SUPPORTED; +} + + +/** @copydoc RTLDRREADER::pfnUnmap */ +static DECLCALLBACK(int) supHardNtViRdrUnmap(PRTLDRREADER pReader, const void *pvBits) +{ + return VERR_NOT_SUPPORTED; +} + + +/** @copydoc RTLDRREADER::pfnDestroy */ +static DECLCALLBACK(int) supHardNtViRdrDestroy(PRTLDRREADER pReader) +{ + PSUPHNTVIRDR pNtViRdr = (PSUPHNTVIRDR)pReader; + Assert(pNtViRdr->Core.uMagic == RTLDRREADER_MAGIC); + + pNtViRdr->Core.uMagic = ~RTLDRREADER_MAGIC; + pNtViRdr->hFile = NULL; +#ifdef IN_RING3 + if (pNtViRdr->hEvent) + { + NtClose(pNtViRdr->hEvent); + pNtViRdr->hEvent = NULL; + } +#endif + RTMemFree(pNtViRdr); + return VINF_SUCCESS; +} + + +/** + * Creates a loader reader instance for the given NT file handle. + * + * @returns iprt status code. + * @param hFile Native NT file handle. + * @param pwszName Optional file name. + * @param fFlags Flags, SUPHNTVI_F_XXX. + * @param ppNtViRdr Where to store the reader instance on success. + */ +DECLHIDDEN(int) supHardNtViRdrCreate(HANDLE hFile, PCRTUTF16 pwszName, uint32_t fFlags, PSUPHNTVIRDR *ppNtViRdr) +{ + /* + * Try determine the size of the file. + */ + IO_STATUS_BLOCK Ios = RTNT_IO_STATUS_BLOCK_INITIALIZER; + FILE_STANDARD_INFORMATION StdInfo; + NTSTATUS rcNt = NtQueryInformationFile(hFile, &Ios, &StdInfo, sizeof(StdInfo), FileStandardInformation); + if (!NT_SUCCESS(rcNt) || !NT_SUCCESS(Ios.Status)) + return VERR_LDRVI_FILE_LENGTH_ERROR; + + /* + * Figure the file mode so we can see whether we'll be needing an event + * semaphore for waiting on reads. This may happen in very unlikely + * NtCreateSection scenarios. + */ +#if defined(IN_RING3) || defined(VBOX_STRICT) + Ios.Status = STATUS_UNSUCCESSFUL; + ULONG fMode; + rcNt = NtQueryInformationFile(hFile, &Ios, &fMode, sizeof(fMode), FileModeInformation); + if (!NT_SUCCESS(rcNt) || !NT_SUCCESS(Ios.Status)) + return VERR_SUP_VP_FILE_MODE_ERROR; +#endif + + HANDLE hEvent = NULL; +#ifdef IN_RING3 + if (!(fMode & (FILE_SYNCHRONOUS_IO_NONALERT | FILE_SYNCHRONOUS_IO_ALERT))) + { + rcNt = NtCreateEvent(&hEvent, EVENT_ALL_ACCESS, NULL, NotificationEvent, FALSE); + if (!NT_SUCCESS(rcNt)) + return VERR_SUP_VP_CREATE_READ_EVT_SEM_FAILED; + } +#else + Assert(fMode & FILE_SYNCHRONOUS_IO_NONALERT); +#endif + + /* + * Calc the file name length and allocate memory for the reader instance. + */ + size_t cchFilename = 0; + if (pwszName) + cchFilename = RTUtf16CalcUtf8Len(pwszName); + + int rc = VERR_NO_MEMORY; + PSUPHNTVIRDR pNtViRdr = (PSUPHNTVIRDR)RTMemAllocZ(sizeof(*pNtViRdr) + cchFilename); + if (!pNtViRdr) + { +#ifdef IN_RING3 + if (hEvent != NULL) + NtClose(hEvent); +#endif + return VERR_NO_MEMORY; + } + + /* + * Initialize the structure. + */ + if (cchFilename) + { + char *pszName = &pNtViRdr->szFilename[0]; + rc = RTUtf16ToUtf8Ex(pwszName, RTSTR_MAX, &pszName, cchFilename + 1, NULL); + AssertStmt(RT_SUCCESS(rc), pNtViRdr->szFilename[0] = '\0'); + } + else + pNtViRdr->szFilename[0] = '\0'; + + pNtViRdr->Core.uMagic = RTLDRREADER_MAGIC; + pNtViRdr->Core.pfnRead = supHardNtViRdrRead; + pNtViRdr->Core.pfnTell = supHardNtViRdrTell; + pNtViRdr->Core.pfnSize = supHardNtViRdrSize; + pNtViRdr->Core.pfnLogName = supHardNtViRdrLogName; + pNtViRdr->Core.pfnMap = supHardNtViRdrMap; + pNtViRdr->Core.pfnUnmap = supHardNtViRdrUnmap; + pNtViRdr->Core.pfnDestroy = supHardNtViRdrDestroy; + pNtViRdr->hFile = hFile; + pNtViRdr->hEvent = hEvent; + pNtViRdr->off = 0; + pNtViRdr->cbFile = StdInfo.EndOfFile.QuadPart; + pNtViRdr->fFlags = fFlags; + *ppNtViRdr = pNtViRdr; + return VINF_SUCCESS; +} + + +/** + * Checks if the file is owned by TrustedInstaller (Vista+) or similar. + * + * @returns true if owned by TrustedInstaller of pre-Vista, false if not. + * + * @param hFile The handle to the file. + * @param pwszName The name of the file. + */ +static bool supHardNtViCheckIsOwnedByTrustedInstallerOrSimilar(HANDLE hFile, PCRTUTF16 pwszName) +{ + if (g_uNtVerCombined < SUP_NT_VER_VISTA) + return true; + + /* + * Get the ownership information. + */ + union + { + SECURITY_DESCRIPTOR_RELATIVE Rel; + SECURITY_DESCRIPTOR Abs; + uint8_t abView[256]; + } uBuf; + ULONG cbActual; + NTSTATUS rcNt = NtQuerySecurityObject(hFile, OWNER_SECURITY_INFORMATION, &uBuf.Abs, sizeof(uBuf), &cbActual); + if (!NT_SUCCESS(rcNt)) + { + SUP_DPRINTF(("NtQuerySecurityObject failed with rcNt=%#x on '%ls'\n", rcNt, pwszName)); + return false; + } + + /* + * Check the owner. + * + * Initially we wished to only allow TrustedInstaller. But a Windows CAPI + * plugin "Program Files\Tumbleweed\Desktop Validator\tmwdcapiclient.dll" + * turned up owned by the local system user, and we cannot operate without + * the plugin loaded once it's installed (WinVerityTrust fails). + * + * We'd like to avoid allowing Builtin\Administrators here since it's the + * default owner of anything an admin user creates (at least when elevated). + * Seems windows update or someone ends up installing or modifying system + * DLL ownership to this group, so for system32 and winsxs it's unavoidable. + * And, not surprise, a bunch of products, including AV, firewalls and similar + * ends up with their files installed with this group as owner. For instance + * if we wish to have NAT continue working, we need to allow this. + * + * Hopefully, we can limit the allowed files to these owners though, so + * we won't be subject to ordinary (non-admin, or not elevated) users + * downloading or be tricked into putting evil DLLs around the place... + */ + PSID pOwner = uBuf.Rel.Control & SE_SELF_RELATIVE ? &uBuf.abView[uBuf.Rel.Owner] : uBuf.Abs.Owner; + Assert((uintptr_t)pOwner - (uintptr_t)&uBuf < sizeof(uBuf) - sizeof(SID)); + if (RtlEqualSid(pOwner, &g_TrustedInstallerSid)) + return true; + if (RtlEqualSid(pOwner, &g_LocalSystemSid)) + return true; + if (RtlEqualSid(pOwner, &g_AdminsGroupSid)) + { + SUP_DPRINTF(("%ls: Owner is administrators group.\n", pwszName)); + return true; + } + + SUP_DPRINTF(("%ls: Owner is not trusted installer (%.*Rhxs)\n", + pwszName, ((uint8_t *)pOwner)[1] /*SubAuthorityCount*/ * sizeof(ULONG) + 8, pOwner)); + return false; +} + + +/** + * Simple case insensitive UTF-16 / ASCII path compare. + * + * @returns true if equal, false if not. + * @param pawcLeft The UTF-16 path string, not necessarily null + * terminated. + * @param cwcLeft The number of chars in the left string, + * RTSTR_MAX if unknown but terminated. + * @param pszRight The ascii string. + */ +DECLHIDDEN(bool) supHardViUtf16PathIsEqualEx(PCRTUTF16 pawcLeft, size_t cwcLeft, const char *pszRight) +{ + for (;;) + { + RTUTF16 wc; + if (cwcLeft-- > 0) + wc =*pawcLeft++; + else + wc = 0; + uint8_t b = *pszRight++; + if (b != wc) + { + if (wc >= 0x80) + return false; + wc = RT_C_TO_LOWER(wc); + if (wc != b) + { + b = RT_C_TO_LOWER(b); + if (wc != b) + { + if (wc == '/') + wc = '\\'; + if (b == '/') + b = '\\'; + if (wc != b) + return false; + } + } + } + if (!b) + return true; + } +} + + +/** + * Simple case insensitive UTF-16 / ASCII path compare. + * + * @returns true if equal, false if not. + * @param pwszLeft The UTF-16 path string. + * @param pszRight The ascii string. + */ +static bool supHardViUtf16PathIsEqual(PCRTUTF16 pwszLeft, const char *pszRight) +{ + return supHardViUtf16PathIsEqualEx(pwszLeft, RTSTR_MAX, pszRight); +} + + +/** + * Simple case insensitive UTF-16 / ASCII ends-with path predicate. + * + * @returns true if equal, false if not. + * @param pwsz The UTF-16 path string. + * @param pszSuffix The ascii suffix string. + */ +static bool supHardViUtf16PathEndsWith(PCRTUTF16 pwsz, const char *pszSuffix) +{ + size_t cwc = RTUtf16Len(pwsz); + size_t cchSuffix = strlen(pszSuffix); + if (cwc >= cchSuffix) + return supHardViUtf16PathIsEqual(pwsz + cwc - cchSuffix, pszSuffix); + return false; +} + + +/** + * Simple case insensitive UTF-16 / ASCII starts-with path predicate. + * + * @returns true if starts with given string, false if not. + * @param pwsz The UTF-16 path string. + * @param pszPrefix The ascii prefix string. + */ +static bool supHardViUtf16PathStartsWithAscii(PCRTUTF16 pwszLeft, const char *pszRight) +{ + for (;;) + { + RTUTF16 wc = *pwszLeft++; + uint8_t b = *pszRight++; + if (b != wc) + { + if (!b) + return true; + if (wc >= 0x80 || wc == 0) + return false; + wc = RT_C_TO_LOWER(wc); + if (wc != b) + { + b = RT_C_TO_LOWER(b); + if (wc != b) + { + if (wc == '/') + wc = '\\'; + if (b == '/') + b = '\\'; + if (wc != b) + return false; + } + } + } + } +} + + +/** + * Simple case insensitive UNICODE_STRING starts-with path predicate. + * + * @returns true if starts with given string, false if not. + * @param pwszLeft The path to check. + * @param cwcLeft The length of @a pwszLeft + * @param pwszRight The starts-with path. + * @param cwcRight The length of @a pwszRight. + * @param fCheckSlash Check for a slash following the prefix. + */ +DECLHIDDEN(bool) supHardViUtf16PathStartsWithEx(PCRTUTF16 pwszLeft, uint32_t cwcLeft, + PCRTUTF16 pwszRight, uint32_t cwcRight, bool fCheckSlash) +{ + if (cwcLeft < cwcRight || !cwcRight || !pwszRight) + return false; + + /* See if we can get away with a case sensitive compare first. */ + if (memcmp(pwszLeft, pwszRight, cwcRight * sizeof(RTUTF16)) == 0) + pwszLeft += cwcRight; + else + { + /* No luck, do a slow case insensitive comapre. */ + uint32_t cLeft = cwcRight; + while (cLeft-- > 0) + { + RTUTF16 wcLeft = *pwszLeft++; + RTUTF16 wcRight = *pwszRight++; + if (wcLeft != wcRight) + { + wcLeft = wcLeft < 0x80 ? wcLeft == '/' ? '\\' : RT_C_TO_LOWER(wcLeft) : wcLeft; + wcRight = wcRight < 0x80 ? wcRight == '/' ? '\\' : RT_C_TO_LOWER(wcRight) : wcRight; + if (wcLeft != wcRight) + return false; + } + } + } + + /* Check for slash following the prefix, if request. */ + if ( !fCheckSlash + || *pwszLeft == '\\' + || *pwszLeft == '/') + return true; + return false; +} + + +/** + * Simple case insensitive UNICODE_STRING starts-with path predicate. + * + * @returns true if starts with given string, false if not. + * @param pUniStrLeft The path to check. + * @param pUniStrRight The starts-with path. + * @param fCheckSlash Check for a slash following the prefix. + */ +DECLHIDDEN(bool) supHardViUniStrPathStartsWithUniStr(UNICODE_STRING const *pUniStrLeft, UNICODE_STRING const *pUniStrRight, + bool fCheckSlash) +{ + return supHardViUtf16PathStartsWithEx(pUniStrLeft->Buffer, pUniStrLeft->Length / sizeof(WCHAR), + pUniStrRight->Buffer, pUniStrRight->Length / sizeof(WCHAR), fCheckSlash); +} + + + +/** + * Counts slashes in the given UTF-8 path string. + * + * @returns Number of slashes. + * @param pwsz The UTF-16 path string. + */ +static uint32_t supHardViUtf16PathCountSlashes(PCRTUTF16 pwsz) +{ + uint32_t cSlashes = 0; + RTUTF16 wc; + while ((wc = *pwsz++) != '\0') + if (wc == '/' || wc == '\\') + cSlashes++; + return cSlashes; +} + + +#ifdef VBOX_PERMIT_MORE +/** + * Checks if the path goes into %windir%\apppatch\. + * + * @returns true if apppatch, false if not. + * @param pwszPath The path to examine. + */ +DECLHIDDEN(bool) supHardViIsAppPatchDir(PCRTUTF16 pwszPath, uint32_t cwcName) +{ + uint32_t cwcWinDir = (g_System32NtPath.UniStr.Length - sizeof(L"System32")) / sizeof(WCHAR); + + if (cwcName <= cwcWinDir + sizeof("AppPatch")) + return false; + + if (memcmp(pwszPath, g_System32NtPath.UniStr.Buffer, cwcWinDir * sizeof(WCHAR))) + return false; + + if (!supHardViUtf16PathStartsWithAscii(&pwszPath[cwcWinDir], "\\AppPatch\\")) + return false; + + return g_uNtVerCombined >= SUP_NT_VER_VISTA; +} +#else +# error should not get here.. +#endif + + + +/** + * Checks if the unsigned DLL is fine or not. + * + * @returns VINF_LDRVI_NOT_SIGNED or @a rc. + * @param hLdrMod The loader module handle. + * @param pwszName The NT name of the DLL/EXE. + * @param fFlags Flags. + * @param hFile The file handle. + * @param rc The status code.. + */ +static int supHardNtViCheckIfNotSignedOk(RTLDRMOD hLdrMod, PCRTUTF16 pwszName, uint32_t fFlags, HANDLE hFile, int rc) +{ + if (fFlags & (SUPHNTVI_F_REQUIRE_BUILD_CERT | SUPHNTVI_F_REQUIRE_KERNEL_CODE_SIGNING)) + return rc; + + /* + * Version macros. + */ + uint32_t const uNtVer = g_uNtVerCombined; +#define IS_XP() ( uNtVer >= SUP_MAKE_NT_VER_SIMPLE(5, 1) && uNtVer < SUP_MAKE_NT_VER_SIMPLE(5, 2) ) +#define IS_W2K3() ( uNtVer >= SUP_MAKE_NT_VER_SIMPLE(5, 2) && uNtVer < SUP_MAKE_NT_VER_SIMPLE(5, 3) ) +#define IS_VISTA() ( uNtVer >= SUP_MAKE_NT_VER_SIMPLE(6, 0) && uNtVer < SUP_MAKE_NT_VER_SIMPLE(6, 1) ) +#define IS_W70() ( uNtVer >= SUP_MAKE_NT_VER_SIMPLE(6, 1) && uNtVer < SUP_MAKE_NT_VER_SIMPLE(6, 2) ) +#define IS_W80() ( uNtVer >= SUP_MAKE_NT_VER_SIMPLE(6, 2) && uNtVer < SUP_MAKE_NT_VER_SIMPLE(6, 3) ) +#define IS_W81() ( uNtVer >= SUP_MAKE_NT_VER_SIMPLE(6, 3) && uNtVer < SUP_MAKE_NT_VER_SIMPLE(6, 4) ) + + /* + * The System32 directory. + * + * System32 is full of unsigned DLLs shipped by microsoft, graphics + * hardware vendors, input device/method vendors and whatnot else that + * actually needs to be loaded into a process for it to work correctly. + * We have to ASSUME that anything our process attempts to load from + * System32 is trustworthy and that the Windows system with the help of + * anti-virus software make sure there is nothing evil lurking in System32 + * or being loaded from it. + * + * A small measure of protection is to list DLLs we know should be signed + * and decline loading unsigned versions of them, assuming they have been + * replaced by an adversary with evil intentions. + */ + PCRTUTF16 pwsz; + uint32_t cwcName = (uint32_t)RTUtf16Len(pwszName); + uint32_t cwcOther = g_System32NtPath.UniStr.Length / sizeof(WCHAR); + if (supHardViUtf16PathStartsWithEx(pwszName, cwcName, g_System32NtPath.UniStr.Buffer, cwcOther, true /*fCheckSlash*/)) + { + pwsz = pwszName + cwcOther + 1; + + /* Must be owned by trusted installer. (This test is superfuous, thus no relaxation here.) */ + if ( !(fFlags & SUPHNTVI_F_TRUSTED_INSTALLER_OWNER) + && !supHardNtViCheckIsOwnedByTrustedInstallerOrSimilar(hFile, pwszName)) + return rc; + + /* Core DLLs. */ + if (supHardViUtf16PathIsEqual(pwsz, "ntdll.dll")) + return uNtVer < SUP_NT_VER_VISTA ? VINF_LDRVI_NOT_SIGNED : rc; + if (supHardViUtf16PathIsEqual(pwsz, "kernel32.dll")) + return uNtVer < SUP_NT_VER_W81 ? VINF_LDRVI_NOT_SIGNED : rc; + if (supHardViUtf16PathIsEqual(pwsz, "kernelbase.dll")) + return IS_W80() || IS_W70() ? VINF_LDRVI_NOT_SIGNED : rc; + if (supHardViUtf16PathIsEqual(pwsz, "apisetschema.dll")) + return IS_W70() ? VINF_LDRVI_NOT_SIGNED : rc; + if (supHardViUtf16PathIsEqual(pwsz, "apphelp.dll")) + return VINF_LDRVI_NOT_SIGNED; /* So far, never signed... */ +#ifdef VBOX_PERMIT_VERIFIER_DLL + if (supHardViUtf16PathIsEqual(pwsz, "verifier.dll")) + return uNtVer < SUP_NT_VER_W81 ? VINF_LDRVI_NOT_SIGNED : rc; +#endif +#ifdef VBOX_PERMIT_MORE + if (uNtVer >= SUP_NT_VER_W70) /* hard limit: user32.dll is unwanted prior to w7. */ + { + if (supHardViUtf16PathIsEqual(pwsz, "sfc.dll")) + return uNtVer < SUP_MAKE_NT_VER_SIMPLE(6, 4) ? VINF_LDRVI_NOT_SIGNED : rc; + if (supHardViUtf16PathIsEqual(pwsz, "sfc_os.dll")) + return uNtVer < SUP_MAKE_NT_VER_SIMPLE(6, 4) ? VINF_LDRVI_NOT_SIGNED : rc; + if (supHardViUtf16PathIsEqual(pwsz, "user32.dll")) + return uNtVer < SUP_NT_VER_W81 ? VINF_LDRVI_NOT_SIGNED : rc; + } +#endif + +#ifndef IN_RING0 + /* Check that this DLL isn't supposed to be signed on this windows + version. If it should, it's likely to be a fake. */ + /** @todo list of signed dlls for various windows versions. */ + return VINF_LDRVI_NOT_SIGNED; +#else + return rc; +#endif /* IN_RING0 */ + } + + +#ifndef IN_RING0 + /* + * The WinSxS white list. + * + * Just like with System32 there are potentially a number of DLLs that + * could be required from WinSxS. + */ + cwcOther = g_WinSxSNtPath.UniStr.Length / sizeof(WCHAR); + if (supHardViUtf16PathStartsWithEx(pwszName, cwcName, g_WinSxSNtPath.UniStr.Buffer, cwcOther, true /*fCheckSlash*/)) + { + pwsz = pwszName + cwcOther + 1; + cwcName -= cwcOther + 1; + + /* The WinSxS layout means everything worth loading is exactly one level down. */ + uint32_t cSlashes = supHardViUtf16PathCountSlashes(pwsz); + if (cSlashes != 1) + return rc; + + /* Must be owned by trusted installer. */ + if ( !(fFlags & SUPHNTVI_F_TRUSTED_INSTALLER_OWNER) + && !supHardNtViCheckIsOwnedByTrustedInstallerOrSimilar(hFile, pwszName)) + return rc; + return VINF_LDRVI_NOT_SIGNED; + } +#endif /* !IN_RING0 */ + + +#ifdef VBOX_PERMIT_MORE + /* + * AppPatch whitelist. + */ + if (supHardViIsAppPatchDir(pwszName, cwcName)) + { + cwcOther = g_System32NtPath.UniStr.Length / sizeof(WCHAR); /* ASSUMES System32 is called System32. */ + pwsz = pwszName + cwcOther + 1; + + if ( !(fFlags & SUPHNTVI_F_TRUSTED_INSTALLER_OWNER) + && !supHardNtViCheckIsOwnedByTrustedInstallerOrSimilar(hFile, pwszName)) + return rc; + +# ifndef VBOX_PERMIT_EVEN_MORE + if (supHardViUtf16PathIsEqual(pwsz, "acres.dll")) + return VINF_LDRVI_NOT_SIGNED; + +# ifdef RT_ARCH_AMD64 + if (supHardViUtf16PathIsEqual(pwsz, "AppPatch64\\AcGenral.dll")) + return VINF_LDRVI_NOT_SIGNED; +# elif defined(RT_ARCH_X86) + if (supHardViUtf16PathIsEqual(pwsz, "AcGenral.dll")) + return VINF_LDRVI_NOT_SIGNED; +# endif +# endif /* !VBOX_PERMIT_EVEN_MORE */ + +# ifdef IN_RING0 + return rc; +# else + return VINF_LDRVI_NOT_SIGNED; +# endif + } +#endif /* VBOX_PERMIT_MORE */ + + +#ifndef IN_RING0 +# if defined(VBOX_PERMIT_MORE) && !defined(VBOX_PERMIT_EVEN_MORE) + /* + * Program files and common files. + * Permit anything that's signed and correctly installed. + */ + if ( supHardViUtf16PathStartsWithEx(pwszName, cwcName, + g_ProgramFilesNtPath.UniStr.Buffer, g_ProgramFilesNtPath.UniStr.Length, + true /*fCheckSlash*/) + || supHardViUtf16PathStartsWithEx(pwszName, cwcName, + g_CommonFilesNtPath.UniStr.Buffer, g_CommonFilesNtPath.UniStr.Length, + true /*fCheckSlash*/) +# ifdef RT_ARCH_AMD64 + || supHardViUtf16PathStartsWithEx(pwszName, cwcName, + g_ProgramFilesX86NtPath.UniStr.Buffer, g_ProgramFilesX86NtPath.UniStr.Length, + true /*fCheckSlash*/) + || supHardViUtf16PathStartsWithEx(pwszName, cwcName, + g_CommonFilesX86NtPath.UniStr.Buffer, g_CommonFilesX86NtPath.UniStr.Length, + true /*fCheckSlash*/) +# endif + ) + { + if ( !(fFlags & SUPHNTVI_F_TRUSTED_INSTALLER_OWNER) + && !supHardNtViCheckIsOwnedByTrustedInstallerOrSimilar(hFile, pwszName)) + return rc; + return VINF_LDRVI_NOT_SIGNED; + } + +# elif defined(VBOX_PERMIT_MORE) && defined(VBOX_PERMIT_EVEN_MORE) + /* + * Anything that's owned by the trusted installer. + */ + if ( (fFlags & SUPHNTVI_F_TRUSTED_INSTALLER_OWNER) + || supHardNtViCheckIsOwnedByTrustedInstallerOrSimilar(hFile, pwszName)) + return VINF_LDRVI_NOT_SIGNED; + +# endif +#endif /* !IN_RING0 */ + + /* + * Not permitted. + */ + return rc; +} + + +/** + * @callback_method_impl{FNRTDUMPPRINTFV, Formats into RTERRINFO. } + */ +static DECLCALLBACK(void) supHardNtViAsn1DumpToErrInfo(void *pvUser, const char *pszFormat, va_list va) +{ + PRTERRINFO pErrInfo = (PRTERRINFO)pvUser; + RTErrInfoAddV(pErrInfo, pErrInfo->rc, pszFormat, va); +} + + +/** + * @callback_method_impl{FNRTCRPKCS7VERIFYCERTCALLBACK, + * Standard code signing. Use this for Microsoft SPC.} + */ +static DECLCALLBACK(int) supHardNtViCertVerifyCallback(PCRTCRX509CERTIFICATE pCert, RTCRX509CERTPATHS hCertPaths, + uint32_t fFlags, void *pvUser, PRTERRINFO pErrInfo) +{ + PSUPHNTVIRDR pNtViRdr = (PSUPHNTVIRDR)pvUser; + Assert(pNtViRdr->Core.uMagic == RTLDRREADER_MAGIC); + + /* + * If there is no certificate path build & validator associated with this + * callback, it must be because of the build certificate. We trust the + * build certificate without any second thoughts. + */ + if (hCertPaths == NIL_RTCRX509CERTPATHS) + { + if (RTCrX509Certificate_Compare(pCert, &g_BuildX509Cert) == 0) /* healthy paranoia */ + return VINF_SUCCESS; + int rc = RTErrInfoSetF(pErrInfo, VERR_SUP_VP_NOT_BUILD_CERT_IPE, "Not valid kernel code signature (fFlags=%#x).", fFlags); + if (pErrInfo) + { + RTErrInfoAdd(pErrInfo, rc, "\n\nExe cert:\n"); + RTAsn1Dump(&pCert->SeqCore.Asn1Core, 0 /*fFlags*/, 0 /*uLevel*/, supHardNtViAsn1DumpToErrInfo, pErrInfo); + RTErrInfoAdd(pErrInfo, rc, "\n\nBuild cert:\n"); + RTAsn1Dump(&g_BuildX509Cert.SeqCore.Asn1Core, 0 /*fFlags*/, 0 /*uLevel*/, supHardNtViAsn1DumpToErrInfo, pErrInfo); + } + return rc; + } + + /* + * Standard code signing capabilites required. + */ + int rc = RTCrPkcs7VerifyCertCallbackCodeSigning(pCert, hCertPaths, fFlags, NULL, pErrInfo); + if ( RT_SUCCESS(rc) + && (fFlags & RTCRPKCS7VCC_F_SIGNED_DATA)) + { + /* + * If kernel signing, a valid certificate path must be anchored by the + * microsoft kernel signing root certificate. + */ + if (pNtViRdr->fFlags & SUPHNTVI_F_REQUIRE_KERNEL_CODE_SIGNING) + { + uint32_t cPaths = RTCrX509CertPathsGetPathCount(hCertPaths); + uint32_t cFound = 0; + uint32_t cValid = 0; + for (uint32_t iPath = 0; iPath < cPaths; iPath++) + { + bool fTrusted; + PCRTCRX509NAME pSubject; + PCRTCRX509SUBJECTPUBLICKEYINFO pPublicKeyInfo; + int rcVerify; + rc = RTCrX509CertPathsQueryPathInfo(hCertPaths, iPath, &fTrusted, NULL /*pcNodes*/, &pSubject, &pPublicKeyInfo, + NULL, NULL /*pCertCtx*/, &rcVerify); + AssertRCBreak(rc); + + if (RT_SUCCESS(rcVerify)) + { + Assert(fTrusted); + cValid++; + + /* + * Search the kernel signing root store for a matching anchor. + */ + RTCRSTORECERTSEARCH Search; + rc = RTCrStoreCertFindBySubjectOrAltSubjectByRfc5280(g_hNtKernelRootStore, pSubject, &Search); + AssertRCBreak(rc); + + PCRTCRCERTCTX pCertCtx; + while ((pCertCtx = RTCrStoreCertSearchNext(g_hNtKernelRootStore, &Search)) != NULL) + { + PCRTCRX509SUBJECTPUBLICKEYINFO pCertPubKeyInfo = NULL; + if (pCertCtx->pCert) + pCertPubKeyInfo = &pCertCtx->pCert->TbsCertificate.SubjectPublicKeyInfo; + else if (pCertCtx->pTaInfo) + pCertPubKeyInfo = &pCertCtx->pTaInfo->PubKey; + else + pCertPubKeyInfo = NULL; + if ( pCertPubKeyInfo + && RTCrX509SubjectPublicKeyInfo_Compare(pCertPubKeyInfo, pPublicKeyInfo) == 0) + cFound++; + RTCrCertCtxRelease(pCertCtx); + } + + int rc2 = RTCrStoreCertSearchDestroy(g_hNtKernelRootStore, &Search); AssertRC(rc2); + } + } + if (RT_SUCCESS(rc) && cFound == 0) + rc = RTErrInfoSetF(pErrInfo, VERR_SUP_VP_NOT_VALID_KERNEL_CODE_SIGNATURE, "Not valid kernel code signature."); + if (RT_SUCCESS(rc) && cValid < 2 && g_fHaveOtherRoots) + rc = RTErrInfoSetF(pErrInfo, VERR_SUP_VP_UNEXPECTED_VALID_PATH_COUNT, + "Expected at least %u valid paths, not %u.", 2, cValid); + } + } + + /* + * More requirements? NT5 build lab? + */ + + return rc; +} + + +static DECLCALLBACK(int) supHardNtViCallback(RTLDRMOD hLdrMod, RTLDRSIGNATURETYPE enmSignature, + void const *pvSignature, size_t cbSignature, + PRTERRINFO pErrInfo, void *pvUser) +{ + /* + * Check out the input. + */ + PSUPHNTVIRDR pNtViRdr = (PSUPHNTVIRDR)pvUser; + Assert(pNtViRdr->Core.uMagic == RTLDRREADER_MAGIC); + + AssertReturn(cbSignature == sizeof(RTCRPKCS7CONTENTINFO), VERR_INTERNAL_ERROR_5); + PCRTCRPKCS7CONTENTINFO pContentInfo = (PCRTCRPKCS7CONTENTINFO)pvSignature; + AssertReturn(RTCrPkcs7ContentInfo_IsSignedData(pContentInfo), VERR_INTERNAL_ERROR_5); + AssertReturn(pContentInfo->u.pSignedData->SignerInfos.cItems == 1, VERR_INTERNAL_ERROR_5); + PCRTCRPKCS7SIGNERINFO pSignerInfo = &pContentInfo->u.pSignedData->SignerInfos.paItems[0]; + + /* + * If special certificate requirements, check them out before validating + * the signature. + */ + if (pNtViRdr->fFlags & SUPHNTVI_F_REQUIRE_BUILD_CERT) + { + if (!RTCrX509Certificate_MatchIssuerAndSerialNumber(&g_BuildX509Cert, + &pSignerInfo->IssuerAndSerialNumber.Name, + &pSignerInfo->IssuerAndSerialNumber.SerialNumber)) + return RTErrInfoSet(pErrInfo, VERR_SUP_VP_NOT_SIGNED_WITH_BUILD_CERT, "Not signed with the build certificate."); + } + + /* + * Verify the signature. We instruct the verifier to use the signing time + * counter signature present when present, falling back on the timestamp + * planted by the linker when absent. In ring-0 we don't have all the + * necessary timestamp server root certificate info, so we have to allow + * using counter signatures unverified there. Ditto for the early period + * of ring-3 hardened stub execution. + */ + RTTIMESPEC ValidationTime; + RTTimeSpecSetSeconds(&ValidationTime, pNtViRdr->uTimestamp); + + uint32_t fFlags = RTCRPKCS7VERIFY_SD_F_ALWAYS_USE_SIGNING_TIME_IF_PRESENT + | RTCRPKCS7VERIFY_SD_F_ALWAYS_USE_MS_TIMESTAMP_IF_PRESENT + | RTCRPKCS7VERIFY_SD_F_COUNTER_SIGNATURE_SIGNING_TIME_ONLY; +#ifndef IN_RING0 + if (!g_fHaveOtherRoots) +#endif + fFlags |= RTCRPKCS7VERIFY_SD_F_USE_SIGNING_TIME_UNVERIFIED | RTCRPKCS7VERIFY_SD_F_USE_MS_TIMESTAMP_UNVERIFIED; + return RTCrPkcs7VerifySignedData(pContentInfo, fFlags, g_hSpcAndNtKernelSuppStore, g_hSpcAndNtKernelRootStore, + &ValidationTime, supHardNtViCertVerifyCallback, pNtViRdr, pErrInfo); +} + + +/** + * Verifies the given loader image. + * + * @returns IPRT status code. + * @param hLdrMod File handle to the executable file. + * @param pwszName Full NT path to the DLL in question, used for + * dealing with unsigned system dlls as well as for + * error/logging. + * @param pNtViRdr The reader instance /w flags. + * @param fAvoidWinVerifyTrust Whether to avoid WinVerifyTrust because of + * deadlock or other loader related dangers. + * @param pfWinVerifyTrust Where to return whether WinVerifyTrust was used. + * @param pErrInfo Pointer to error info structure. Optional. + */ +DECLHIDDEN(int) supHardenedWinVerifyImageByLdrMod(RTLDRMOD hLdrMod, PCRTUTF16 pwszName, PSUPHNTVIRDR pNtViRdr, + bool fAvoidWinVerifyTrust, bool *pfWinVerifyTrust, PRTERRINFO pErrInfo) +{ + if (pfWinVerifyTrust) + *pfWinVerifyTrust = false; + +#ifdef IN_RING3 + /* Check that the caller has performed the necessary library initialization. */ + if (!RTCrX509Certificate_IsPresent(&g_BuildX509Cert)) + return RTErrInfoSet(pErrInfo, VERR_WRONG_ORDER, + "supHardenedWinVerifyImageByHandle: supHardenedWinInitImageVerifier was not called."); +#endif + + /* + * Check the trusted installer bit first, if requested as it's somewhat + * cheaper than the rest. + * + * We relax this for system32 and a little for WinSxS, like we used to, as + * there are apparently some systems out there where the user, admin, or + * someone has changed the ownership of core windows DLLs like user32.dll + * and comctl32.dll. Since we need user32.dll and will be checking it's + * digital signature, it's reasonably safe to let this thru. (The report + * was of SECURITY_BUILTIN_DOMAIN_RID + DOMAIN_ALIAS_RID_ADMINS + * owning user32.dll, see public ticket 13187, VBoxStartup.3.log.) + * + * We've also had problems with graphics driver components like ig75icd64.dll + * and atig6pxx.dll not being owned by TrustedInstaller, with the result + * that 3D got broken (mod by zero issue in test build 5). These were also + * SECURITY_BUILTIN_DOMAIN_RID + DOMAIN_ALIAS_RID_ADMINS. + * + * In one report by 'thor' the WinSxS resident comctl32.dll was owned by + * SECURITY_BUILTIN_DOMAIN_RID + DOMAIN_ALIAS_RID_ADMINS (with 4.3.16). + */ + /** @todo Since we're now allowing Builtin\Administrators after all, perhaps we + * could drop these system32 + winsxs hacks?? */ + if ( (pNtViRdr->fFlags & SUPHNTVI_F_TRUSTED_INSTALLER_OWNER) + && !supHardNtViCheckIsOwnedByTrustedInstallerOrSimilar(pNtViRdr->hFile, pwszName)) + { + if (supHardViUtf16PathStartsWithEx(pwszName, (uint32_t)RTUtf16Len(pwszName), + g_System32NtPath.UniStr.Buffer, g_System32NtPath.UniStr.Length / sizeof(WCHAR), + true /*fCheckSlash*/)) + SUP_DPRINTF(("%ls: Relaxing the TrustedInstaller requirement for this DLL (it's in system32).\n", pwszName)); + else if (supHardViUtf16PathStartsWithEx(pwszName, (uint32_t)RTUtf16Len(pwszName), + g_WinSxSNtPath.UniStr.Buffer, g_WinSxSNtPath.UniStr.Length / sizeof(WCHAR), + true /*fCheckSlash*/)) + SUP_DPRINTF(("%ls: Relaxing the TrustedInstaller requirement for this DLL (it's in WinSxS).\n", pwszName)); + else + return RTErrInfoSetF(pErrInfo, VERR_SUP_VP_NOT_OWNED_BY_TRUSTED_INSTALLER, + "supHardenedWinVerifyImageByHandle: TrustedInstaller is not the owner of '%ls'.", pwszName); + } + + /* + * Verify it. + * + * The PKCS #7 SignedData signature is checked in the callback. Any + * signing certificate restrictions are also enforced there. + * + * For the time being, we use the executable timestamp as the + * certificate validation date. We must query that first to avoid + * potential issues re-entering the loader code from the callback. + * + * Update: Save the first timestamp we validate with build cert and + * use this as a minimum timestamp for further build cert + * validations. This works around issues with old DLLs that + * we sign against with our certificate (crt, sdl, qt). + */ + int rc = RTLdrQueryProp(hLdrMod, RTLDRPROP_TIMESTAMP_SECONDS, &pNtViRdr->uTimestamp, sizeof(pNtViRdr->uTimestamp)); + if (RT_SUCCESS(rc)) + { +#ifdef IN_RING3 /* Hack alert! (see above) */ + if ( (pNtViRdr->fFlags & SUPHNTVI_F_REQUIRE_KERNEL_CODE_SIGNING) + && (pNtViRdr->fFlags & SUPHNTVI_F_REQUIRE_SIGNATURE_ENFORCEMENT) + && pNtViRdr->uTimestamp < g_uBuildTimestampHack) + pNtViRdr->uTimestamp = g_uBuildTimestampHack; +#endif + + rc = RTLdrVerifySignature(hLdrMod, supHardNtViCallback, pNtViRdr, pErrInfo); + +#ifdef IN_RING3 /* Hack alert! (see above) */ + if ((pNtViRdr->fFlags & SUPHNTVI_F_REQUIRE_BUILD_CERT) && g_uBuildTimestampHack == 0 && RT_SUCCESS(rc)) + g_uBuildTimestampHack = pNtViRdr->uTimestamp; +#endif + + /* + * Microsoft doesn't sign a whole bunch of DLLs, so we have to + * ASSUME that a bunch of system DLLs are fine. + */ + if (rc == VERR_LDRVI_NOT_SIGNED) + rc = supHardNtViCheckIfNotSignedOk(hLdrMod, pwszName, pNtViRdr->fFlags, pNtViRdr->hFile, rc); + if (RT_FAILURE(rc)) + RTErrInfoAddF(pErrInfo, rc, ": %ls", pwszName); + + /* + * Check for the signature checking enforcement, if requested to do so. + */ + if (RT_SUCCESS(rc) && (pNtViRdr->fFlags & SUPHNTVI_F_REQUIRE_SIGNATURE_ENFORCEMENT)) + { + bool fEnforced = false; + int rc2 = RTLdrQueryProp(hLdrMod, RTLDRPROP_SIGNATURE_CHECKS_ENFORCED, &fEnforced, sizeof(fEnforced)); + if (RT_FAILURE(rc2)) + rc = RTErrInfoSetF(pErrInfo, rc2, "Querying RTLDRPROP_SIGNATURE_CHECKS_ENFORCED failed on %ls: %Rrc.", + pwszName, rc2); + else if (!fEnforced) + rc = RTErrInfoSetF(pErrInfo, VERR_SUP_VP_SIGNATURE_CHECKS_NOT_ENFORCED, + "The image '%ls' was not linked with /IntegrityCheck.", pwszName); + } + } + else + RTErrInfoSetF(pErrInfo, rc, "RTLdrQueryProp/RTLDRPROP_TIMESTAMP_SECONDS failed on %ls: %Rrc", pwszName, rc); + +#ifdef IN_RING3 + /* + * Pass it thru WinVerifyTrust when possible. + */ + if (!fAvoidWinVerifyTrust) + rc = supHardenedWinVerifyImageTrust(pNtViRdr->hFile, pwszName, pNtViRdr->fFlags, rc, pfWinVerifyTrust, pErrInfo); +#endif + +#ifdef IN_SUP_HARDENED_R3 + /* + * Hook for the LdrLoadDll code to schedule scanning of imports. + */ + if (RT_SUCCESS(rc)) + supR3HardenedWinVerifyCacheScheduleImports(hLdrMod, pwszName); +#endif + + return rc; +} + + +/** + * Verifies the given executable image. + * + * @returns IPRT status code. + * @param hFile File handle to the executable file. + * @param pwszName Full NT path to the DLL in question, used for + * dealing with unsigned system dlls as well as for + * error/logging. + * @param fFlags Flags, SUPHNTVI_F_XXX. + * @param fAvoidWinVerifyTrust Whether to avoid WinVerifyTrust because of + * deadlock or other loader related dangers. + * @param pfWinVerifyTrust Where to return whether WinVerifyTrust was used. + * @param pErrInfo Pointer to error info structure. Optional. + */ +DECLHIDDEN(int) supHardenedWinVerifyImageByHandle(HANDLE hFile, PCRTUTF16 pwszName, uint32_t fFlags, bool fAvoidWinVerifyTrust, + bool *pfWinVerifyTrust, PRTERRINFO pErrInfo) +{ + /* + * Create a reader instance. + */ + PSUPHNTVIRDR pNtViRdr; + int rc = supHardNtViRdrCreate(hFile, pwszName, fFlags, &pNtViRdr); + if (RT_SUCCESS(rc)) + { + /* + * Open the image. + */ + RTLDRMOD hLdrMod; + RTLDRARCH enmArch = fFlags & SUPHNTVI_F_RC_IMAGE ? RTLDRARCH_X86_32 : RTLDRARCH_HOST; + uint32_t fLdrFlags = RTLDR_O_FOR_VALIDATION | RTLDR_O_IGNORE_ARCH_IF_NO_CODE; + if (fFlags & SUPHNTVI_F_IGNORE_ARCHITECTURE) + fLdrFlags |= RTLDR_O_IGNORE_ARCH_IF_NO_CODE; + rc = RTLdrOpenWithReader(&pNtViRdr->Core, fLdrFlags, enmArch, &hLdrMod, pErrInfo); + if (RT_SUCCESS(rc)) + { + /* + * Verify it. + */ + rc = supHardenedWinVerifyImageByLdrMod(hLdrMod, pwszName, pNtViRdr, fAvoidWinVerifyTrust, pfWinVerifyTrust, pErrInfo); + int rc2 = RTLdrClose(hLdrMod); AssertRC(rc2); + } + else + supHardNtViRdrDestroy(&pNtViRdr->Core); + } + SUP_DPRINTF(("supHardenedWinVerifyImageByHandle: -> %d (%ls)%s\n", + rc, pwszName, pfWinVerifyTrust && *pfWinVerifyTrust ? " WinVerifyTrust" : "")); + return rc; +} + + +#ifdef IN_RING3 +/** + * supHardenedWinVerifyImageByHandle version without the name. + * + * The name is derived from the handle. + * + * @returns IPRT status code. + * @param hFile File handle to the executable file. + * @param fFlags Flags, SUPHNTVI_F_XXX. + * @param pErrInfo Pointer to error info structure. Optional. + */ +DECLHIDDEN(int) supHardenedWinVerifyImageByHandleNoName(HANDLE hFile, uint32_t fFlags, PRTERRINFO pErrInfo) +{ + /* + * Determine the NT name and call the verification function. + */ + union + { + UNICODE_STRING UniStr; + uint8_t abBuffer[(MAX_PATH + 8 + 1) * 2]; + } uBuf; + + ULONG cbIgn; + NTSTATUS rcNt = NtQueryObject(hFile, + ObjectNameInformation, + &uBuf, + sizeof(uBuf) - sizeof(WCHAR), + &cbIgn); + if (NT_SUCCESS(rcNt)) + uBuf.UniStr.Buffer[uBuf.UniStr.Length / sizeof(WCHAR)] = '\0'; + else + uBuf.UniStr.Buffer = (WCHAR *)L"TODO3"; + + return supHardenedWinVerifyImageByHandle(hFile, uBuf.UniStr.Buffer, fFlags, false /*fAvoidWinVerifyTrust*/, + NULL /*pfWinVerifyTrust*/, pErrInfo); +} +#endif /* IN_RING3 */ + + +/** + * Retrieves the full official path to the system root or one of it's sub + * directories. + * + * This code is also used by the support driver. + * + * @returns VBox status code. + * @param pvBuf The output buffer. This will contain a + * UNICODE_STRING followed (at the kernel's + * discretion) the string buffer. + * @param cbBuf The size of the buffer @a pvBuf points to. + * @param enmDir Which directory under the system root we're + * interested in. + * @param pErrInfo Pointer to error info structure. Optional. + */ +DECLHIDDEN(int) supHardNtGetSystemRootDir(void *pvBuf, uint32_t cbBuf, SUPHARDNTSYSROOTDIR enmDir, PRTERRINFO pErrInfo) +{ + HANDLE hFile = RTNT_INVALID_HANDLE_VALUE; + IO_STATUS_BLOCK Ios = RTNT_IO_STATUS_BLOCK_INITIALIZER; + + UNICODE_STRING NtName; + switch (enmDir) + { + case kSupHardNtSysRootDir_System32: + { + static const WCHAR s_wszNameSystem32[] = L"\\SystemRoot\\System32\\"; + NtName.Buffer = (PWSTR)s_wszNameSystem32; + NtName.Length = sizeof(s_wszNameSystem32) - sizeof(WCHAR); + NtName.MaximumLength = sizeof(s_wszNameSystem32); + break; + } + case kSupHardNtSysRootDir_WinSxS: + { + static const WCHAR s_wszNameWinSxS[] = L"\\SystemRoot\\WinSxS\\"; + NtName.Buffer = (PWSTR)s_wszNameWinSxS; + NtName.Length = sizeof(s_wszNameWinSxS) - sizeof(WCHAR); + NtName.MaximumLength = sizeof(s_wszNameWinSxS); + break; + } + default: + AssertFailed(); + return VERR_INVALID_PARAMETER; + } + + OBJECT_ATTRIBUTES ObjAttr; + InitializeObjectAttributes(&ObjAttr, &NtName, OBJ_CASE_INSENSITIVE, NULL /*hRootDir*/, NULL /*pSecDesc*/); + + NTSTATUS rcNt = NtCreateFile(&hFile, + FILE_READ_DATA | SYNCHRONIZE, + &ObjAttr, + &Ios, + NULL /* Allocation Size*/, + FILE_ATTRIBUTE_NORMAL, + FILE_SHARE_READ | FILE_SHARE_WRITE, + FILE_OPEN, + FILE_DIRECTORY_FILE | FILE_OPEN_FOR_BACKUP_INTENT | FILE_SYNCHRONOUS_IO_NONALERT, + NULL /*EaBuffer*/, + 0 /*EaLength*/); + if (NT_SUCCESS(rcNt)) + rcNt = Ios.Status; + if (NT_SUCCESS(rcNt)) + { + ULONG cbIgn; + rcNt = NtQueryObject(hFile, + ObjectNameInformation, + pvBuf, + cbBuf - sizeof(WCHAR), + &cbIgn); + NtClose(hFile); + if (NT_SUCCESS(rcNt)) + { + PUNICODE_STRING pUniStr = (PUNICODE_STRING)pvBuf; + if (pUniStr->Length > 0) + { + /* Make sure it's terminated so it can safely be printed.*/ + pUniStr->Buffer[pUniStr->Length / sizeof(WCHAR)] = '\0'; + return VINF_SUCCESS; + } + + return RTErrInfoSetF(pErrInfo, VERR_SUP_VP_SYSTEM32_PATH, + "NtQueryObject returned an empty path for '%ls'", NtName.Buffer); + } + return RTErrInfoSetF(pErrInfo, VERR_SUP_VP_SYSTEM32_PATH, "NtQueryObject failed on '%ls' dir: %#x", NtName.Buffer, rcNt); + } + return RTErrInfoSetF(pErrInfo, VERR_SUP_VP_SYSTEM32_PATH, "Failure to open '%ls': %#x", NtName.Buffer, rcNt); +} + + +/** + * Initialize one certificate entry. + * + * @returns VBox status code. + * @param pCert The X.509 certificate representation to init. + * @param pabCert The raw DER encoded certificate. + * @param cbCert The size of the raw certificate. + * @param pErrInfo Where to return extended error info. Optional. + * @param pszErrorTag Error tag. + */ +static int supHardNtViCertInit(PRTCRX509CERTIFICATE pCert, unsigned char const *pabCert, unsigned cbCert, + PRTERRINFO pErrInfo, const char *pszErrorTag) +{ + AssertReturn(cbCert > 16 && cbCert < _128K, + RTErrInfoSetF(pErrInfo, VERR_INTERNAL_ERROR_3, "%s: cbCert=%#x out of range", pszErrorTag, cbCert)); + AssertReturn(!RTCrX509Certificate_IsPresent(pCert), + RTErrInfoSetF(pErrInfo, VERR_WRONG_ORDER, "%s: Certificate already decoded?", pszErrorTag)); + + RTASN1CURSORPRIMARY PrimaryCursor; + RTAsn1CursorInitPrimary(&PrimaryCursor, pabCert, cbCert, pErrInfo, &g_RTAsn1DefaultAllocator, RTASN1CURSOR_FLAGS_DER, NULL); + int rc = RTCrX509Certificate_DecodeAsn1(&PrimaryCursor.Cursor, 0, pCert, pszErrorTag); + if (RT_SUCCESS(rc)) + rc = RTCrX509Certificate_CheckSanity(pCert, 0, pErrInfo, pszErrorTag); + return rc; +} + + +static int supHardNtViCertStoreAddArray(RTCRSTORE hStore, PCSUPTAENTRY paCerts, unsigned cCerts, PRTERRINFO pErrInfo) +{ + for (uint32_t i = 0; i < cCerts; i++) + { + int rc = RTCrStoreCertAddEncoded(hStore, RTCRCERTCTX_F_ENC_TAF_DER, paCerts[i].pch, paCerts[i].cb, pErrInfo); + if (RT_FAILURE(rc)) + return rc; + } + return VINF_SUCCESS; +} + + +/** + * Initialize a certificate table. + * + * @param phStore Where to return the store pointer. + * @param paCerts1 Pointer to the first certificate table. + * @param cCerts1 Entries in the first certificate table. + * @param paCerts2 Pointer to the second certificate table. + * @param cCerts2 Entries in the second certificate table. + * @param paCerts3 Pointer to the third certificate table. + * @param cCerts3 Entries in the third certificate table. + * @param pErrInfo Where to return extended error info. Optional. + * @param pszErrorTag Error tag. + */ +static int supHardNtViCertStoreInit(PRTCRSTORE phStore, + PCSUPTAENTRY paCerts1, unsigned cCerts1, + PCSUPTAENTRY paCerts2, unsigned cCerts2, + PCSUPTAENTRY paCerts3, unsigned cCerts3, + PRTERRINFO pErrInfo, const char *pszErrorTag) +{ + AssertReturn(*phStore == NIL_RTCRSTORE, VERR_WRONG_ORDER); + + int rc = RTCrStoreCreateInMem(phStore, cCerts1 + cCerts2); + if (RT_FAILURE(rc)) + return RTErrInfoSetF(pErrInfo, rc, "RTCrStoreCreateMemoryStore failed: %Rrc", rc); + + rc = supHardNtViCertStoreAddArray(*phStore, paCerts1, cCerts1, pErrInfo); + if (RT_SUCCESS(rc)) + rc = supHardNtViCertStoreAddArray(*phStore, paCerts2, cCerts2, pErrInfo); + if (RT_SUCCESS(rc)) + rc = supHardNtViCertStoreAddArray(*phStore, paCerts3, cCerts3, pErrInfo); + return rc; +} + + +#if defined(IN_RING3) && !defined(VBOX_PERMIT_EVEN_MORE) +/** + * Initializes the windows paths. + */ +static void supHardenedWinInitImageVerifierWinPaths(void) +{ + /* + * Windows paths that we're interested in. + */ + static const struct + { + SUPSYSROOTDIRBUF *pNtPath; + WCHAR const *pwszRegValue; + const char *pszLogName; + } s_aPaths[] = + { + { &g_ProgramFilesNtPath, L"ProgramFilesDir", "ProgDir" }, + { &g_CommonFilesNtPath, L"CommonFilesDir", "ComDir" }, +# ifdef RT_ARCH_AMD64 + { &g_ProgramFilesX86NtPath, L"ProgramFilesDir (x86)", "ProgDir32" }, + { &g_CommonFilesX86NtPath, L"CommonFilesDir (x86)", "ComDir32" }, +# endif + }; + + /* + * Open the registry key containing the paths. + */ + UNICODE_STRING NtName = RTNT_CONSTANT_UNISTR(L"\\Registry\\Machine\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion"); + OBJECT_ATTRIBUTES ObjAttr; + InitializeObjectAttributes(&ObjAttr, &NtName, OBJ_CASE_INSENSITIVE, NULL /*hRootDir*/, NULL /*pSecDesc*/); + HANDLE hKey; + NTSTATUS rcNt = NtOpenKey(&hKey, KEY_QUERY_VALUE, &ObjAttr); + if (NT_SUCCESS(rcNt)) + { + /* + * Loop over the paths and resolve their NT paths. + */ + for (uint32_t i = 0; i < RT_ELEMENTS(s_aPaths); i++) + { + /* + * Query the value first. + */ + UNICODE_STRING ValueName; + ValueName.Buffer = (WCHAR *)s_aPaths[i].pwszRegValue; + ValueName.Length = (USHORT)(RTUtf16Len(s_aPaths[i].pwszRegValue) * sizeof(WCHAR)); + ValueName.MaximumLength = ValueName.Length + sizeof(WCHAR); + + union + { + KEY_VALUE_PARTIAL_INFORMATION PartialInfo; + uint8_t abPadding[sizeof(KEY_VALUE_PARTIAL_INFORMATION) + sizeof(WCHAR) * 128]; + uint64_t uAlign; + } uBuf; + + ULONG cbActual = 0; + rcNt = NtQueryValueKey(hKey, &ValueName, KeyValuePartialInformation, &uBuf, sizeof(uBuf) - sizeof(WCHAR), &cbActual); + if (NT_SUCCESS(rcNt)) + { + /* + * Must be a simple string value, terminate it. + */ + if ( uBuf.PartialInfo.Type == REG_EXPAND_SZ + || uBuf.PartialInfo.Type == REG_SZ) + { + /* + * Expand any environment variable references before opening it. + * We use the result buffer as storage for the expaneded path, + * reserving space for the windows name space prefix. + */ + UNICODE_STRING Src; + Src.Buffer = (WCHAR *)uBuf.PartialInfo.Data; + Src.Length = uBuf.PartialInfo.DataLength; + if (Src.Length >= sizeof(WCHAR) && Src.Buffer[Src.Length / sizeof(WCHAR) - 1] == '\0') + Src.Length -= sizeof(WCHAR); + Src.MaximumLength = Src.Length + sizeof(WCHAR); + Src.Buffer[uBuf.PartialInfo.DataLength / sizeof(WCHAR)] = '\0'; + + s_aPaths[i].pNtPath->awcBuffer[0] = '\\'; + s_aPaths[i].pNtPath->awcBuffer[1] = '?'; + s_aPaths[i].pNtPath->awcBuffer[2] = '?'; + s_aPaths[i].pNtPath->awcBuffer[3] = '\\'; + UNICODE_STRING Dst; + Dst.Buffer = &s_aPaths[i].pNtPath->awcBuffer[4]; + Dst.MaximumLength = sizeof(s_aPaths[i].pNtPath->awcBuffer) - sizeof(WCHAR) * 5; + Dst.Length = Dst.MaximumLength; + + if (uBuf.PartialInfo.Type == REG_EXPAND_SZ) + rcNt = RtlExpandEnvironmentStrings_U(NULL, &Src, &Dst, NULL); + else + { + memcpy(Dst.Buffer, Src.Buffer, Src.Length); + Dst.Length = Src.Length; + } + if (NT_SUCCESS(rcNt)) + { + Dst.Buffer[Dst.Length / sizeof(WCHAR)] = '\0'; + + /* + * Include the \\??\\ prefix in the result and open the path. + */ + Dst.Buffer -= 4; + Dst.Length += 4 * sizeof(WCHAR); + Dst.MaximumLength += 4 * sizeof(WCHAR); + InitializeObjectAttributes(&ObjAttr, &Dst, OBJ_CASE_INSENSITIVE, NULL /*hRootDir*/, NULL /*pSecDesc*/); + HANDLE hFile = INVALID_HANDLE_VALUE; + IO_STATUS_BLOCK Ios = RTNT_IO_STATUS_BLOCK_INITIALIZER; + NTSTATUS rcNt = NtCreateFile(&hFile, + FILE_READ_DATA | SYNCHRONIZE, + &ObjAttr, + &Ios, + NULL /* Allocation Size*/, + FILE_ATTRIBUTE_NORMAL, + FILE_SHARE_READ | FILE_SHARE_WRITE, + FILE_OPEN, + FILE_DIRECTORY_FILE | FILE_OPEN_FOR_BACKUP_INTENT + | FILE_SYNCHRONOUS_IO_NONALERT, + NULL /*EaBuffer*/, + 0 /*EaLength*/); + if (NT_SUCCESS(rcNt)) + rcNt = Ios.Status; + if (NT_SUCCESS(rcNt)) + { + /* + * Query the real NT name. + */ + ULONG cbIgn; + rcNt = NtQueryObject(hFile, + ObjectNameInformation, + s_aPaths[i].pNtPath, + sizeof(*s_aPaths[i].pNtPath) - sizeof(WCHAR), + &cbIgn); + if (NT_SUCCESS(rcNt)) + { + if (s_aPaths[i].pNtPath->UniStr.Length > 0) + { + /* Make sure it's terminated.*/ + s_aPaths[i].pNtPath->UniStr.Buffer[s_aPaths[i].pNtPath->UniStr.Length / sizeof(WCHAR)] = '\0'; + SUP_DPRINTF(("%s:%*s %ls\n", s_aPaths[i].pszLogName, 9 - strlen(s_aPaths[i].pszLogName), "", + s_aPaths[i].pNtPath->UniStr.Buffer)); + } + else + { + SUP_DPRINTF(("%s: NtQueryObject returned empty string\n", s_aPaths[i].pszLogName)); + rcNt = STATUS_INVALID_PARAMETER; + } + } + else + SUP_DPRINTF(("%s: NtQueryObject failed: %#x\n", s_aPaths[i].pszLogName, rcNt)); + NtClose(hFile); + } + else + SUP_DPRINTF(("%s: NtCreateFile failed: %#x (%ls)\n", + s_aPaths[i].pszLogName, rcNt, Dst.Buffer)); + } + else + SUP_DPRINTF(("%s: RtlExpandEnvironmentStrings_U failed: %#x (%ls)\n", + s_aPaths[i].pszLogName, rcNt, Src.Buffer)); + } + else + { + SUP_DPRINTF(("%s: type mismatch: %#x\n", s_aPaths[i].pszLogName, uBuf.PartialInfo.Type)); + rcNt = STATUS_INVALID_PARAMETER; + } + } + else + SUP_DPRINTF(("%s: NtQueryValueKey failed: %#x\n", s_aPaths[i].pszLogName, rcNt)); + + /* Stub the entry on failure. */ + if (!NT_SUCCESS(rcNt)) + { + s_aPaths[i].pNtPath->UniStr.Length = 0; + s_aPaths[i].pNtPath->UniStr.Buffer = NULL; + } + } + NtClose(hKey); + } + else + { + SUP_DPRINTF(("NtOpenKey(%ls) failed: %#x\n", NtName.Buffer, rcNt)); + + /* Stub all the entries on failure. */ + for (uint32_t i = 0; i < RT_ELEMENTS(s_aPaths); i++) + { + s_aPaths[i].pNtPath->UniStr.Length = 0; + s_aPaths[i].pNtPath->UniStr.Buffer = NULL; + } + } +} +#endif /* IN_RING3 && !VBOX_PERMIT_EVEN_MORE */ + + +/** + * This initializes the certificates globals so we don't have to reparse them + * every time we need to verify an image. + * + * @returns IPRT status code. + * @param pErrInfo Where to return extended error info. Optional. + */ +DECLHIDDEN(int) supHardenedWinInitImageVerifier(PRTERRINFO pErrInfo) +{ + AssertReturn(!RTCrX509Certificate_IsPresent(&g_BuildX509Cert), VERR_WRONG_ORDER); + + /* + * Get the system root paths. + */ + int rc = supHardNtGetSystemRootDir(&g_System32NtPath, sizeof(g_System32NtPath), kSupHardNtSysRootDir_System32, pErrInfo); + if (RT_SUCCESS(rc)) + rc = supHardNtGetSystemRootDir(&g_WinSxSNtPath, sizeof(g_WinSxSNtPath), kSupHardNtSysRootDir_WinSxS, pErrInfo); + if (RT_SUCCESS(rc)) + { + SUP_DPRINTF(("System32: %ls\n", g_System32NtPath.UniStr.Buffer)); + SUP_DPRINTF(("WinSxS: %ls\n", g_WinSxSNtPath.UniStr.Buffer)); +#if defined(IN_RING3) && !defined(VBOX_PERMIT_EVEN_MORE) + supHardenedWinInitImageVerifierWinPaths(); +#endif + + /* + * Initialize it, leaving the cleanup to the termination call. + */ + rc = supHardNtViCertInit(&g_BuildX509Cert, g_abSUPBuildCert, g_cbSUPBuildCert, pErrInfo, "BuildCertificate"); + if (RT_SUCCESS(rc)) + rc = supHardNtViCertStoreInit(&g_hSpcRootStore, g_aSUPSpcRootTAs, g_cSUPSpcRootTAs, + NULL, 0, NULL, 0, pErrInfo, "SpcRoot"); + if (RT_SUCCESS(rc)) + rc = supHardNtViCertStoreInit(&g_hNtKernelRootStore, g_aSUPNtKernelRootTAs, g_cSUPNtKernelRootTAs, + NULL, 0, NULL, 0, pErrInfo, "NtKernelRoot"); + if (RT_SUCCESS(rc)) + rc = supHardNtViCertStoreInit(&g_hSpcAndNtKernelRootStore, + g_aSUPSpcRootTAs, g_cSUPSpcRootTAs, + g_aSUPNtKernelRootTAs, g_cSUPNtKernelRootTAs, + g_aSUPTimestampTAs, g_cSUPTimestampTAs, + pErrInfo, "SpcAndNtKernelRoot"); + if (RT_SUCCESS(rc)) + rc = supHardNtViCertStoreInit(&g_hSpcAndNtKernelSuppStore, + NULL, 0, NULL, 0, NULL, 0, + pErrInfo, "SpcAndNtKernelSupplemental"); + +#if 0 /* For the time being, always trust the build certificate. It bypasses the timestamp issues of CRT and SDL. */ + /* If the build certificate is a test singing certificate, it must be a + trusted root or we'll fail to validate anything. */ + if ( RT_SUCCESS(rc) + && RTCrX509Name_Compare(&g_BuildX509Cert.TbsCertificate.Subject, &g_BuildX509Cert.TbsCertificate.Issuer) == 0) +#else + if (RT_SUCCESS(rc)) +#endif + rc = RTCrStoreCertAddEncoded(g_hSpcAndNtKernelRootStore, RTCRCERTCTX_F_ENC_X509_DER, + g_abSUPBuildCert, g_cbSUPBuildCert, pErrInfo); + + if (RT_SUCCESS(rc)) + { + /* + * Finally initialize known SIDs that we use. + */ + SID_IDENTIFIER_AUTHORITY s_NtAuth = SECURITY_NT_AUTHORITY; + NTSTATUS rcNt = RtlInitializeSid(&g_TrustedInstallerSid, &s_NtAuth, SECURITY_SERVICE_ID_RID_COUNT); + if (NT_SUCCESS(rcNt)) + { + *RtlSubAuthoritySid(&g_TrustedInstallerSid, 0) = SECURITY_SERVICE_ID_BASE_RID; + *RtlSubAuthoritySid(&g_TrustedInstallerSid, 1) = 956008885; + *RtlSubAuthoritySid(&g_TrustedInstallerSid, 2) = 3418522649; + *RtlSubAuthoritySid(&g_TrustedInstallerSid, 3) = 1831038044; + *RtlSubAuthoritySid(&g_TrustedInstallerSid, 4) = 1853292631; + *RtlSubAuthoritySid(&g_TrustedInstallerSid, 5) = 2271478464; + + rcNt = RtlInitializeSid(&g_LocalSystemSid, &s_NtAuth, 1); + if (NT_SUCCESS(rcNt)) + { + *RtlSubAuthoritySid(&g_LocalSystemSid, 0) = SECURITY_LOCAL_SYSTEM_RID; + + rcNt = RtlInitializeSid(&g_AdminsGroupSid, &s_NtAuth, 2); + if (NT_SUCCESS(rcNt)) + { + *RtlSubAuthoritySid(&g_AdminsGroupSid, 0) = SECURITY_BUILTIN_DOMAIN_RID; + *RtlSubAuthoritySid(&g_AdminsGroupSid, 1) = DOMAIN_ALIAS_RID_ADMINS; + return VINF_SUCCESS; + } + } + } + rc = RTErrConvertFromNtStatus(rcNt); + } + supHardenedWinTermImageVerifier(); + } + return rc; +} + + +/** + * Releases resources allocated by supHardenedWinInitImageVerifier. + */ +DECLHIDDEN(void) supHardenedWinTermImageVerifier(void) +{ + if (RTCrX509Certificate_IsPresent(&g_BuildX509Cert)) + RTAsn1VtDelete(&g_BuildX509Cert.SeqCore.Asn1Core); + + RTCrStoreRelease(g_hSpcAndNtKernelSuppStore); + g_hSpcAndNtKernelSuppStore = NIL_RTCRSTORE; + RTCrStoreRelease(g_hSpcAndNtKernelRootStore); + g_hSpcAndNtKernelRootStore = NIL_RTCRSTORE; + + RTCrStoreRelease(g_hNtKernelRootStore); + g_hNtKernelRootStore = NIL_RTCRSTORE; + RTCrStoreRelease(g_hSpcRootStore); + g_hSpcRootStore = NIL_RTCRSTORE; +} + +#ifdef IN_RING3 + +/** + * This is a hardcoded list of certificates we thing we might need. + * + * @returns true if wanted, false if not. + * @param pCert The certificate. + */ +static bool supR3HardenedWinIsDesiredRootCA(PCRTCRX509CERTIFICATE pCert) +{ + char szSubject[512]; + szSubject[sizeof(szSubject) - 1] = '\0'; + RTCrX509Name_FormatAsString(&pCert->TbsCertificate.Subject, szSubject, sizeof(szSubject) - 1, NULL); + + /* + * Check that it's a plausible root certificate. + */ + if (!RTCrX509Certificate_IsSelfSigned(pCert)) + { + SUP_DPRINTF(("supR3HardenedWinIsDesiredRootCA: skipping - not-self-signed: %s\n", szSubject)); + return false; + } + + if (RTAsn1Integer_UnsignedCompareWithU32(&pCert->TbsCertificate.T0.Version, 3) > 0) + { + if ( !(pCert->TbsCertificate.T3.fExtKeyUsage & RTCRX509CERT_KEY_USAGE_F_KEY_CERT_SIGN) + && (pCert->TbsCertificate.T3.fFlags & RTCRX509TBSCERTIFICATE_F_PRESENT_KEY_USAGE) ) + { + SUP_DPRINTF(("supR3HardenedWinIsDesiredRootCA: skipping - non-cert-sign: %s\n", szSubject)); + return false; + } + if ( pCert->TbsCertificate.T3.pBasicConstraints + && !pCert->TbsCertificate.T3.pBasicConstraints->CA.fValue) + { + SUP_DPRINTF(("supR3HardenedWinIsDesiredRootCA: skipping - non-CA: %s\n", szSubject)); + return false; + } + } + if (pCert->TbsCertificate.SubjectPublicKeyInfo.SubjectPublicKey.cBits < 256) /* mostly for u64KeyId reading. */ + { + SUP_DPRINTF(("supR3HardenedWinIsDesiredRootCA: skipping - key too small: %u bits %s\n", + pCert->TbsCertificate.SubjectPublicKeyInfo.SubjectPublicKey.cBits, szSubject)); + return false; + } + uint64_t const u64KeyId = pCert->TbsCertificate.SubjectPublicKeyInfo.SubjectPublicKey.uBits.pu64[1]; + +# if 0 + /* + * Whitelist - Array of names and key clues of the certificates we want. + */ + static struct + { + uint64_t u64KeyId; + const char *pszName; + } const s_aWanted[] = + { + /* SPC */ + { UINT64_C(0xffffffffffffffff), "C=US, O=VeriSign, Inc., OU=Class 3 Public Primary Certification Authority" }, + { UINT64_C(0xffffffffffffffff), "L=Internet, O=VeriSign, Inc., OU=VeriSign Commercial Software Publishers CA" }, + { UINT64_C(0x491857ead79dde00), "C=US, O=The Go Daddy Group, Inc., OU=Go Daddy Class 2 Certification Authority" }, + + /* TS */ + { UINT64_C(0xffffffffffffffff), "O=Microsoft Trust Network, OU=Microsoft Corporation, OU=Microsoft Time Stamping Service Root, OU=Copyright (c) 1997 Microsoft Corp." }, + { UINT64_C(0xffffffffffffffff), "O=VeriSign Trust Network, OU=VeriSign, Inc., OU=VeriSign Time Stamping Service Root, OU=NO LIABILITY ACCEPTED, (c)97 VeriSign, Inc." }, + { UINT64_C(0xffffffffffffffff), "C=ZA, ST=Western Cape, L=Durbanville, O=Thawte, OU=Thawte Certification, CN=Thawte Timestamping CA" }, + + /* Additional Windows 8.1 list: */ + { UINT64_C(0x5ad46780fa5df300), "DC=com, DC=microsoft, CN=Microsoft Root Certificate Authority" }, + { UINT64_C(0x3be670c1bd02a900), "OU=Copyright (c) 1997 Microsoft Corp., OU=Microsoft Corporation, CN=Microsoft Root Authority" }, + { UINT64_C(0x4d3835aa4180b200), "C=US, ST=Washington, L=Redmond, O=Microsoft Corporation, CN=Microsoft Root Certificate Authority 2011" }, + { UINT64_C(0x646e3fe3ba08df00), "C=US, O=MSFT, CN=Microsoft Authenticode(tm) Root Authority" }, + { UINT64_C(0xece4e4289e08b900), "C=US, ST=Washington, L=Redmond, O=Microsoft Corporation, CN=Microsoft Root Certificate Authority 2010" }, + { UINT64_C(0x59faf1086271bf00), "C=US, ST=Arizona, L=Scottsdale, O=GoDaddy.com, Inc., CN=Go Daddy Root Certificate Authority - G2" }, + { UINT64_C(0x3d98ab22bb04a300), "C=IE, O=Baltimore, OU=CyberTrust, CN=Baltimore CyberTrust Root" }, + { UINT64_C(0x91e3728b8b40d000), "C=GB, ST=Greater Manchester, L=Salford, O=COMODO CA Limited, CN=COMODO Certification Authority" }, + { UINT64_C(0x61a3a33f81aace00), "C=US, ST=UT, L=Salt Lake City, O=The USERTRUST Network, OU=http://www.usertrust.com, CN=UTN-USERFirst-Object" }, + { UINT64_C(0x9e5bc2d78b6a3636), "C=ZA, ST=Western Cape, L=Cape Town, O=Thawte Consulting cc, OU=Certification Services Division, CN=Thawte Premium Server CA, Email=premium-server@thawte.com" }, + { UINT64_C(0xf4fd306318ccda00), "C=US, O=GeoTrust Inc., CN=GeoTrust Global CA" }, + { UINT64_C(0xa0ee62086758b15d), "C=US, O=Equifax, OU=Equifax Secure Certificate Authority" }, + { UINT64_C(0x8ff6fc03c1edbd00), "C=US, ST=Arizona, L=Scottsdale, O=Starfield Technologies, Inc., CN=Starfield Root Certificate Authority - G2" }, + { UINT64_C(0xa3ce8d99e60eda00), "C=BE, O=GlobalSign nv-sa, OU=Root CA, CN=GlobalSign Root CA" }, + { UINT64_C(0xa671e9fec832b700), "C=US, O=Starfield Technologies, Inc., OU=Starfield Class 2 Certification Authority" }, + { UINT64_C(0xa8de7211e13be200), "C=US, O=DigiCert Inc, OU=www.digicert.com, CN=DigiCert Global Root CA" }, + { UINT64_C(0x0ff3891b54348328), "C=US, O=Entrust.net, OU=www.entrust.net/CPS incorp. by ref. (limits liab.), OU=(c) 1999 Entrust.net Limited, CN=Entrust.netSecure Server Certification Authority" }, + { UINT64_C(0x7ae89c50f0b6a00f), "C=US, O=GTE Corporation, OU=GTE CyberTrust Solutions, Inc., CN=GTE CyberTrust Global Root" }, + { UINT64_C(0xd45980fbf0a0ac00), "C=US, O=thawte, Inc., OU=Certification Services Division, OU=(c) 2006 thawte, Inc. - For authorized use only, CN=thawte Primary Root CA" }, + { UINT64_C(0x9e5bc2d78b6a3636), "C=ZA, ST=Western Cape, L=Cape Town, O=Thawte Consulting cc, OU=Certification Services Division, CN=Thawte Premium Server CA, Email=premium-server@thawte.com" }, + { UINT64_C(0x7c4fd32ec1b1ce00), "C=PL, O=Unizeto Sp. z o.o., CN=Certum CA" }, + { UINT64_C(0xd4fbe673e5ccc600), "C=US, O=DigiCert Inc, OU=www.digicert.com, CN=DigiCert High Assurance EV Root CA" }, + { UINT64_C(0x16e64d2a56ccf200), "C=US, ST=Arizona, L=Scottsdale, O=Starfield Technologies, Inc., OU=http://certificates.starfieldtech.com/repository/, CN=Starfield Services Root Certificate Authority" }, + { UINT64_C(0x6e2ba21058eedf00), "C=US, ST=UT, L=Salt Lake City, O=The USERTRUST Network, OU=http://www.usertrust.com, CN=UTN - DATACorp SGC" }, + { UINT64_C(0xb28612a94b4dad00), "O=Entrust.net, OU=www.entrust.net/CPS_2048 incorp. by ref. (limits liab.), OU=(c) 1999 Entrust.net Limited, CN=Entrust.netCertification Authority (2048)" }, + { UINT64_C(0x357a29080824af00), "C=US, O=VeriSign, Inc., OU=VeriSign Trust Network, OU=(c) 2006 VeriSign, Inc. - For authorized use only, CN=VeriSign Class3 Public Primary Certification Authority - G5" }, + { UINT64_C(0x466cbc09db88c100), "C=IL, O=StartCom Ltd., OU=Secure Digital Certificate Signing, CN=StartCom Certification Authority" }, + { UINT64_C(0x9259c8abe5ca713a), "L=ValiCert Validation Network, O=ValiCert, Inc., OU=ValiCert Class 2 Policy Validation Authority, CN=http://www.valicert.com/, Email=info@valicert.com" }, + { UINT64_C(0x1f78fc529cbacb00), "C=US, O=VeriSign, Inc., OU=VeriSign Trust Network, OU=(c) 1999 VeriSign, Inc. - For authorized use only, CN=VeriSign Class3 Public Primary Certification Authority - G3" }, + { UINT64_C(0x8043e4ce150ead00), "C=US, O=DigiCert Inc, OU=www.digicert.com, CN=DigiCert Assured ID Root CA" }, + { UINT64_C(0x00f2e6331af7b700), "C=SE, O=AddTrust AB, OU=AddTrust External TTP Network, CN=AddTrust External CA Root" }, + }; + + + uint32_t i = RT_ELEMENTS(s_aWanted); + while (i-- > 0) + if ( s_aWanted[i].u64KeyId == u64KeyId + || s_aWanted[i].u64KeyId == UINT64_MAX) + if (RTCrX509Name_MatchWithString(&pCert->TbsCertificate.Subject, s_aWanted[i].pszName)) + { + SUP_DPRINTF(("supR3HardenedWinIsDesiredRootCA: Adding %#llx %s\n", u64KeyId, szSubject)); + return true; + } + + SUP_DPRINTF(("supR3HardenedWinIsDesiredRootCA: skipping %#llx %s\n", u64KeyId, szSubject)); + return false; +# else + /* + * Blacklist approach. + */ + static struct + { + uint64_t u64KeyId; + const char *pszName; + } const s_aUnwanted[] = + { + { UINT64_C(0xffffffffffffffff), "C=US, O=U.S. Robots and Mechanical Men, Inc., OU=V.I.K.I." }, /* dummy entry */ + }; + + uint32_t i = RT_ELEMENTS(s_aUnwanted); + while (i-- > 0) + if ( s_aUnwanted[i].u64KeyId == u64KeyId + || s_aUnwanted[i].u64KeyId == UINT64_MAX) + if (RTCrX509Name_MatchWithString(&pCert->TbsCertificate.Subject, s_aUnwanted[i].pszName)) + { + SUP_DPRINTF(("supR3HardenedWinIsDesiredRootCA: skipping - blacklisted: %#llx %s\n", u64KeyId, szSubject)); + return false; + } + + SUP_DPRINTF(("supR3HardenedWinIsDesiredRootCA: Adding %#llx %s\n", u64KeyId, szSubject)); + return true; +# endif +} + + +/** + * Loads a module in the system32 directory. + * + * @returns Module handle on success. Won't return on failure if fMandatory = true. + * @param pszName The name of the DLL to load. + * @param fMandatory Whether the library is mandatory. + */ +DECLHIDDEN(HMODULE) supR3HardenedWinLoadSystem32Dll(const char *pszName, bool fMandatory) +{ + WCHAR wszName[200+60]; + UINT cwcDir = GetSystemDirectoryW(wszName, RT_ELEMENTS(wszName) - 60); + wszName[cwcDir] = '\\'; + RTUtf16CopyAscii(&wszName[cwcDir + 1], RT_ELEMENTS(wszName) - cwcDir, pszName); + + DWORD fFlags = 0; + if (g_uNtVerCombined >= SUP_MAKE_NT_VER_SIMPLE(6, 0)) + fFlags = LOAD_LIBRARY_SEARCH_SYSTEM32; + HMODULE hMod = LoadLibraryExW(wszName, NULL, fFlags); + if ( hMod == NULL + && fFlags + && g_uNtVerCombined < SUP_MAKE_NT_VER_SIMPLE(6, 2) + && RtlGetLastWin32Error() == ERROR_INVALID_PARAMETER) + { + fFlags = 0; + hMod = LoadLibraryExW(wszName, NULL, fFlags); + } + if ( hMod == NULL + && fMandatory) + supR3HardenedFatal("Error loading '%s': %u [%ls]", pszName, RtlGetLastWin32Error(), wszName); + return hMod; +} + + +/** + * Called by supR3HardenedWinResolveVerifyTrustApiAndHookThreadCreation to + * import selected root CAs from the system certificate store. + * + * These certificates permits us to correctly validate third party DLLs. + */ +static void supR3HardenedWinRetrieveTrustedRootCAs(void) +{ + uint32_t cAdded = 0; + + /* + * Load crypt32.dll and resolve the APIs we need. + */ + HMODULE hCrypt32 = supR3HardenedWinLoadSystem32Dll("crypt32.dll", true /*fMandatory*/); + +#define RESOLVE_CRYPT32_API(a_Name, a_pfnType) \ + a_pfnType pfn##a_Name = (a_pfnType)GetProcAddress(hCrypt32, #a_Name); \ + if (pfn##a_Name == NULL) supR3HardenedFatal("Error locating '" #a_Name "' in 'crypt32.dll': %u", RtlGetLastWin32Error()) + RESOLVE_CRYPT32_API(CertOpenStore, PFNCERTOPENSTORE); + RESOLVE_CRYPT32_API(CertCloseStore, PFNCERTCLOSESTORE); + RESOLVE_CRYPT32_API(CertEnumCertificatesInStore, PFNCERTENUMCERTIFICATESINSTORE); +#undef RESOLVE_CRYPT32_API + + /* + * Open the root store and look for the certificates we wish to use. + */ + DWORD fOpenStore = CERT_STORE_OPEN_EXISTING_FLAG | CERT_STORE_READONLY_FLAG; + HCERTSTORE hStore = pfnCertOpenStore(CERT_STORE_PROV_SYSTEM_W, PKCS_7_ASN_ENCODING | X509_ASN_ENCODING, + NULL /* hCryptProv = default */, CERT_SYSTEM_STORE_LOCAL_MACHINE | fOpenStore, L"Root"); + if (!hStore) + hStore = pfnCertOpenStore(CERT_STORE_PROV_SYSTEM_W, PKCS_7_ASN_ENCODING | X509_ASN_ENCODING, + NULL /* hCryptProv = default */, CERT_SYSTEM_STORE_CURRENT_USER | fOpenStore, L"Root"); + if (hStore) + { + PCCERT_CONTEXT pCurCtx = NULL; + while ((pCurCtx = pfnCertEnumCertificatesInStore(hStore, pCurCtx)) != NULL) + { + if (pCurCtx->dwCertEncodingType & X509_ASN_ENCODING) + { + RTERRINFOSTATIC StaticErrInfo; + RTASN1CURSORPRIMARY PrimaryCursor; + RTAsn1CursorInitPrimary(&PrimaryCursor, pCurCtx->pbCertEncoded, pCurCtx->cbCertEncoded, + RTErrInfoInitStatic(&StaticErrInfo), + &g_RTAsn1DefaultAllocator, RTASN1CURSOR_FLAGS_DER, "CurCtx"); + RTCRX509CERTIFICATE MyCert; + int rc = RTCrX509Certificate_DecodeAsn1(&PrimaryCursor.Cursor, 0, &MyCert, "Cert"); + if (RT_SUCCESS(rc)) + { + if (supR3HardenedWinIsDesiredRootCA(&MyCert)) + { + rc = RTCrStoreCertAddEncoded(g_hSpcRootStore, RTCRCERTCTX_F_ENC_X509_DER, + pCurCtx->pbCertEncoded, pCurCtx->cbCertEncoded, NULL /*pErrInfo*/); + AssertRC(rc); + + rc = RTCrStoreCertAddEncoded(g_hSpcAndNtKernelRootStore, RTCRCERTCTX_F_ENC_X509_DER, + pCurCtx->pbCertEncoded, pCurCtx->cbCertEncoded, NULL /*pErrInfo*/); + AssertRC(rc); + cAdded++; + } + + RTCrX509Certificate_Delete(&MyCert); + } + /* XP root certificate "C&W HKT SecureNet CA SGC Root" has non-standard validity + timestamps, the UTC formatting isn't Zulu time but specifies timezone offsets. + Ignore these failures and certificates. */ + else if (rc != VERR_ASN1_INVALID_UTC_TIME_ENCODING) + AssertMsgFailed(("RTCrX509Certificate_DecodeAsn1 failed: rc=%#x: %s\n", rc, StaticErrInfo.szMsg)); + } + } + pfnCertCloseStore(hStore, CERT_CLOSE_STORE_CHECK_FLAG); + g_fHaveOtherRoots = true; + } + SUP_DPRINTF(("supR3HardenedWinRetrieveTrustedRootCAs: cAdded=%u\n", cAdded)); +} + + +/** + * Resolves the WinVerifyTrust API after the process has been verified and + * installs a thread creation hook. + * + * The WinVerifyTrust API is used in addition our own Authenticode verification + * code. If the image has the IMAGE_DLLCHARACTERISTICS_FORCE_INTEGRITY flag + * set, it will be checked again by the kernel. All our image has this flag set + * and we require all VBox extensions to have it set as well. In effect, the + * authenticode signature will be checked two or three times. + * + * @param pszProgName The program name. + */ +DECLHIDDEN(void) supR3HardenedWinResolveVerifyTrustApiAndHookThreadCreation(const char *pszProgName) +{ +# ifdef IN_SUP_HARDENED_R3 + /* + * Load our the support library DLL that does the thread hooking as the + * security API may trigger the creation of COM worker threads (or + * whatever they are). + * + * The thread creation hook makes the threads very slippery to debuggers by + * irreversably disabling most (if not all) debug events for them. + */ + char szPath[RTPATH_MAX]; + supR3HardenedPathSharedLibs(szPath, sizeof(szPath) - sizeof("/VBoxSupLib.DLL")); + suplibHardenedStrCat(szPath, "/VBoxSupLib.DLL"); + HMODULE hSupLibMod = (HMODULE)supR3HardenedWinLoadLibrary(szPath, true /*fSystem32Only*/); + if (hSupLibMod == NULL) + supR3HardenedFatal("Error loading '%s': %u", szPath, RtlGetLastWin32Error()); +# endif + + /* + * Allocate TLS entry for WinVerifyTrust recursion prevention. + */ + DWORD iTls = TlsAlloc(); + if (iTls != TLS_OUT_OF_INDEXES) + g_iTlsWinVerifyTrustRecursion = iTls; + else + supR3HardenedError(RtlGetLastWin32Error(), false /*fFatal*/, "TlsAlloc failed"); + + /* + * Resolve the imports we need. + */ + HMODULE hWintrust = supR3HardenedWinLoadSystem32Dll("Wintrust.dll", true /*fMandatory*/); +#define RESOLVE_CRYPT_API(a_Name, a_pfnType, a_uMinWinVer) \ + do { \ + g_pfn##a_Name = (a_pfnType)GetProcAddress(hWintrust, #a_Name); \ + if (g_pfn##a_Name == NULL && (a_uMinWinVer) < g_uNtVerCombined) \ + supR3HardenedFatal("Error locating '" #a_Name "' in 'Wintrust.dll': %u", RtlGetLastWin32Error()); \ + } while (0) + + PFNWINVERIFYTRUST pfnWinVerifyTrust = (PFNWINVERIFYTRUST)GetProcAddress(hWintrust, "WinVerifyTrust"); + if (!pfnWinVerifyTrust) + supR3HardenedFatal("Error locating 'WinVerifyTrust' in 'Wintrust.dll': %u", RtlGetLastWin32Error()); + + RESOLVE_CRYPT_API(CryptCATAdminAcquireContext, PFNCRYPTCATADMINACQUIRECONTEXT, 0); + RESOLVE_CRYPT_API(CryptCATAdminCalcHashFromFileHandle, PFNCRYPTCATADMINCALCHASHFROMFILEHANDLE, 0); + RESOLVE_CRYPT_API(CryptCATAdminEnumCatalogFromHash, PFNCRYPTCATADMINENUMCATALOGFROMHASH, 0); + RESOLVE_CRYPT_API(CryptCATAdminReleaseCatalogContext, PFNCRYPTCATADMINRELEASECATALOGCONTEXT, 0); + RESOLVE_CRYPT_API(CryptCATAdminReleaseContext, PFNCRYPTCATDADMINRELEASECONTEXT, 0); + RESOLVE_CRYPT_API(CryptCATCatalogInfoFromContext, PFNCRYPTCATCATALOGINFOFROMCONTEXT, 0); + + RESOLVE_CRYPT_API(CryptCATAdminAcquireContext2, PFNCRYPTCATADMINACQUIRECONTEXT2, SUP_NT_VER_W80); + RESOLVE_CRYPT_API(CryptCATAdminCalcHashFromFileHandle2, PFNCRYPTCATADMINCALCHASHFROMFILEHANDLE2, SUP_NT_VER_W80); + +# ifdef IN_SUP_HARDENED_R3 +# if 0 /* Disabled due to too old SDK. Not really essential. */ + /* + * Load bcrypt.dll and instantiate a few hashing and signing providers to + * make sure the providers are cached for later us. Avoid recursion issues. + */ + HMODULE hBCrypt = supR3HardenedWinLoadSystem32Dll("bcrypt.dll", false /*fMandatory*/); + if (hBCrypt) + { + PFNBCRYPTOPENALGORTIHMPROVIDER pfnOpenAlgoProvider; + pfnOpenAlgoProvider = (PFNBCRYPTOPENALGORTIHMPROVIDER)GetProcAddress(hBCrypt, "BCryptOpenAlgorithmProvider"); + if (pfnOpenAlgoProvider) + { + SUP_DPRINTF(("bcrypt.dll loaded at %p, BCryptOpenAlgorithmProvider at %p, preloading providers:\n", + hBCrypt, pfnOpenAlgoProvider)); +# define PRELOAD_ALGO_PROVIDER(a_Name) \ + do { \ + BCRYPT_ALG_HANDLE hAlgo = NULL; \ + NTSTATUS rcNt = pfnOpenAlgoProvider(&hAlgo, a_Name, NULL, 0); \ + SUP_DPRINTF(("%sBCryptOpenAlgorithmProvider(,'%ls',0,0) -> %#x (hAlgo=%p)\n", \ + NT_SUCCESS(rcNt) ? " " : "warning: ", a_Name, rcNt, hAlgo)); \ + } while (0) + PRELOAD_ALGO_PROVIDER(BCRYPT_MD2_ALGORITHM); + PRELOAD_ALGO_PROVIDER(BCRYPT_MD4_ALGORITHM); + PRELOAD_ALGO_PROVIDER(BCRYPT_MD5_ALGORITHM); + PRELOAD_ALGO_PROVIDER(BCRYPT_SHA1_ALGORITHM); + PRELOAD_ALGO_PROVIDER(BCRYPT_SHA256_ALGORITHM); + PRELOAD_ALGO_PROVIDER(BCRYPT_SHA512_ALGORITHM); + PRELOAD_ALGO_PROVIDER(BCRYPT_RSA_ALGORITHM); + PRELOAD_ALGO_PROVIDER(BCRYPT_DSA_ALGORITHM); +# undef PRELOAD_ALGO_PROVIDER + } + else + SUP_DPRINTF(("Warning! Failed to find BCryptOpenAlgorithmProvider in bcrypt.dll\n")); + } + else + SUP_DPRINTF(("Warning! Failed to load bcrypt.dll\n")); +# endif /* disabled */ + + /* + * Call the verification API on ourselves and ntdll to make sure it works + * and loads more stuff it needs, preventing any recursive fun we'd run + * into after we set g_pfnWinVerifyTrust. + */ + RTERRINFOSTATIC ErrInfoStatic; + RTErrInfoInitStatic(&ErrInfoStatic); + int rc = supR3HardNtViCallWinVerifyTrust(NULL, g_SupLibHardenedExeNtPath.UniStr.Buffer, 0, + &ErrInfoStatic.Core, pfnWinVerifyTrust, NULL); + if (RT_FAILURE(rc)) + supR3HardenedFatalMsg(pszProgName, kSupInitOp_Integrity, rc, + "WinVerifyTrust failed on stub executable: %s", ErrInfoStatic.szMsg); +# endif + + if (g_uNtVerCombined >= SUP_MAKE_NT_VER_SIMPLE(6, 0)) /* ntdll isn't signed on XP, assuming this is the case on W2K3 for now. */ + supR3HardNtViCallWinVerifyTrust(NULL, L"\\SystemRoot\\System32\\ntdll.dll", 0, NULL, pfnWinVerifyTrust, NULL); + supR3HardNtViCallWinVerifyTrustCatFile(NULL, L"\\SystemRoot\\System32\\ntdll.dll", 0, NULL, pfnWinVerifyTrust); + + g_pfnWinVerifyTrust = pfnWinVerifyTrust; + SUP_DPRINTF(("g_pfnWinVerifyTrust=%p\n", pfnWinVerifyTrust)); + +# ifdef IN_SUP_HARDENED_R3 + /* + * Load some problematic DLLs into the verifier cache to prevent + * recursion trouble. + */ + supR3HardenedWinVerifyCachePreload(L"\\SystemRoot\\System32\\crypt32.dll"); + supR3HardenedWinVerifyCachePreload(L"\\SystemRoot\\System32\\Wintrust.dll"); +# endif + + /* + * Now, get trusted root CAs so we can verify a broader scope of signatures. + */ + supR3HardenedWinRetrieveTrustedRootCAs(); +} + + +static int supR3HardNtViNtToWinPath(PCRTUTF16 pwszNtName, PCRTUTF16 *ppwszWinPath, + PRTUTF16 pwszWinPathBuf, size_t cwcWinPathBuf) +{ + static const RTUTF16 s_wszPrefix[] = L"\\\\.\\GLOBALROOT"; + + if (*pwszNtName != '\\' && *pwszNtName != '/') + return VERR_PATH_DOES_NOT_START_WITH_ROOT; + + size_t cwcNtName = RTUtf16Len(pwszNtName); + if (RT_ELEMENTS(s_wszPrefix) + cwcNtName > cwcWinPathBuf) + return VERR_FILENAME_TOO_LONG; + + memcpy(pwszWinPathBuf, s_wszPrefix, sizeof(s_wszPrefix)); + memcpy(&pwszWinPathBuf[sizeof(s_wszPrefix) / sizeof(RTUTF16) - 1], pwszNtName, (cwcNtName + 1) * sizeof(RTUTF16)); + *ppwszWinPath = pwszWinPathBuf; + return VINF_SUCCESS; +} + + +/** + * Calls WinVerifyTrust to verify an PE image. + * + * @returns VBox status code. + * @param hFile File handle to the executable file. + * @param pwszName Full NT path to the DLL in question, used for + * dealing with unsigned system dlls as well as for + * error/logging. + * @param fFlags Flags, SUPHNTVI_F_XXX. + * @param pErrInfo Pointer to error info structure. Optional. + * @param pfnWinVerifyTrust Pointer to the API. + * @param phrcWinVerifyTrust Where to WinVerifyTrust error status on failure, + * optional. + */ +static int supR3HardNtViCallWinVerifyTrust(HANDLE hFile, PCRTUTF16 pwszName, uint32_t fFlags, PRTERRINFO pErrInfo, + PFNWINVERIFYTRUST pfnWinVerifyTrust, HRESULT *phrcWinVerifyTrust) +{ + if (phrcWinVerifyTrust) + *phrcWinVerifyTrust = S_OK; + + /* + * Convert the name into a Windows name. + */ + RTUTF16 wszWinPathBuf[MAX_PATH]; + PCRTUTF16 pwszWinPath; + int rc = supR3HardNtViNtToWinPath(pwszName, &pwszWinPath, wszWinPathBuf, RT_ELEMENTS(wszWinPathBuf)); + if (RT_FAILURE(rc)) + return RTErrInfoSetF(pErrInfo, rc, "Bad path passed to supR3HardNtViCallWinVerifyTrust: rc=%Rrc '%ls'", rc, pwszName); + + /* + * Construct input parameters and call the API. + */ + WINTRUST_FILE_INFO FileInfo; + RT_ZERO(FileInfo); + FileInfo.cbStruct = sizeof(FileInfo); + FileInfo.pcwszFilePath = pwszWinPath; + FileInfo.hFile = hFile; + + GUID PolicyActionGuid = WINTRUST_ACTION_GENERIC_VERIFY_V2; + + WINTRUST_DATA TrustData; + RT_ZERO(TrustData); + TrustData.cbStruct = sizeof(TrustData); + TrustData.fdwRevocationChecks = WTD_REVOKE_NONE; /* Keep simple for now. */ + TrustData.dwStateAction = WTD_STATEACTION_VERIFY; + TrustData.dwUIChoice = WTD_UI_NONE; + TrustData.dwProvFlags = 0; + if (g_uNtVerCombined >= SUP_MAKE_NT_VER_SIMPLE(6, 0)) + TrustData.dwProvFlags = WTD_CACHE_ONLY_URL_RETRIEVAL; + else + TrustData.dwProvFlags = WTD_REVOCATION_CHECK_NONE; + TrustData.dwUnionChoice = WTD_CHOICE_FILE; + TrustData.pFile = &FileInfo; + + HRESULT hrc = pfnWinVerifyTrust(NULL /*hwnd*/, &PolicyActionGuid, &TrustData); + if (hrc == S_OK) + rc = VINF_SUCCESS; + else + { + /* + * Failed. Format a nice error message. + */ +# ifdef DEBUG_bird + if (hrc != CERT_E_CHAINING /* Un-updated vistas, XPs, ++ */) + __debugbreak(); +# endif + const char *pszErrConst = NULL; + switch (hrc) + { + case TRUST_E_SYSTEM_ERROR: pszErrConst = "TRUST_E_SYSTEM_ERROR"; break; + case TRUST_E_NO_SIGNER_CERT: pszErrConst = "TRUST_E_NO_SIGNER_CERT"; break; + case TRUST_E_COUNTER_SIGNER: pszErrConst = "TRUST_E_COUNTER_SIGNER"; break; + case TRUST_E_CERT_SIGNATURE: pszErrConst = "TRUST_E_CERT_SIGNATURE"; break; + case TRUST_E_TIME_STAMP: pszErrConst = "TRUST_E_TIME_STAMP"; break; + case TRUST_E_BAD_DIGEST: pszErrConst = "TRUST_E_BAD_DIGEST"; break; + case TRUST_E_BASIC_CONSTRAINTS: pszErrConst = "TRUST_E_BASIC_CONSTRAINTS"; break; + case TRUST_E_FINANCIAL_CRITERIA: pszErrConst = "TRUST_E_FINANCIAL_CRITERIA"; break; + case TRUST_E_PROVIDER_UNKNOWN: pszErrConst = "TRUST_E_PROVIDER_UNKNOWN"; break; + case TRUST_E_ACTION_UNKNOWN: pszErrConst = "TRUST_E_ACTION_UNKNOWN"; break; + case TRUST_E_SUBJECT_FORM_UNKNOWN: pszErrConst = "TRUST_E_SUBJECT_FORM_UNKNOWN"; break; + case TRUST_E_SUBJECT_NOT_TRUSTED: pszErrConst = "TRUST_E_SUBJECT_NOT_TRUSTED"; break; + case TRUST_E_NOSIGNATURE: pszErrConst = "TRUST_E_NOSIGNATURE"; break; + case TRUST_E_FAIL: pszErrConst = "TRUST_E_FAIL"; break; + case TRUST_E_EXPLICIT_DISTRUST: pszErrConst = "TRUST_E_EXPLICIT_DISTRUST"; break; + case CERT_E_CHAINING: pszErrConst = "CERT_E_CHAINING"; break; + case CERT_E_REVOCATION_FAILURE: pszErrConst = "CERT_E_REVOCATION_FAILURE"; break; + case CRYPT_E_FILE_ERROR: pszErrConst = "CRYPT_E_FILE_ERROR"; break; + case CRYPT_E_REVOKED: pszErrConst = "CRYPT_E_REVOKED"; break; + } + if (pszErrConst) + rc = RTErrInfoSetF(pErrInfo, VERR_LDRVI_UNSUPPORTED_ARCH, + "WinVerifyTrust failed with hrc=%s on '%ls'", pszErrConst, pwszName); + else + rc = RTErrInfoSetF(pErrInfo, VERR_LDRVI_UNSUPPORTED_ARCH, + "WinVerifyTrust failed with hrc=%Rhrc on '%ls'", hrc, pwszName); + SUP_DPRINTF(("supR3HardNtViCallWinVerifyTrust: WinVerifyTrust failed with %#x (%s) on '%ls'\n", + hrc, pszErrConst, pwszName)); + if (phrcWinVerifyTrust) + *phrcWinVerifyTrust = hrc; + } + + /* clean up state data. */ + TrustData.dwStateAction = WTD_STATEACTION_CLOSE; + FileInfo.hFile = NULL; + hrc = pfnWinVerifyTrust(NULL /*hwnd*/, &PolicyActionGuid, &TrustData); + + return rc; +} + + +/** + * Calls WinVerifyTrust to verify an PE image via catalog files. + * + * @returns VBox status code. + * @param hFile File handle to the executable file. + * @param pwszName Full NT path to the DLL in question, used for + * dealing with unsigned system dlls as well as for + * error/logging. + * @param fFlags Flags, SUPHNTVI_F_XXX. + * @param pErrInfo Pointer to error info structure. Optional. + * @param pfnWinVerifyTrust Pointer to the API. + */ +static int supR3HardNtViCallWinVerifyTrustCatFile(HANDLE hFile, PCRTUTF16 pwszName, uint32_t fFlags, PRTERRINFO pErrInfo, + PFNWINVERIFYTRUST pfnWinVerifyTrust) +{ + SUP_DPRINTF(("supR3HardNtViCallWinVerifyTrustCatFile: hFile=%p pwszName=%ls\n", hFile, pwszName)); + + /* + * Convert the name into a Windows name. + */ + RTUTF16 wszWinPathBuf[MAX_PATH]; + PCRTUTF16 pwszWinPath; + int rc = supR3HardNtViNtToWinPath(pwszName, &pwszWinPath, wszWinPathBuf, RT_ELEMENTS(wszWinPathBuf)); + if (RT_FAILURE(rc)) + return RTErrInfoSetF(pErrInfo, rc, "Bad path passed to supR3HardNtViCallWinVerifyTrustCatFile: rc=%Rrc '%ls'", rc, pwszName); + + /* + * Open the file if we didn't get a handle. + */ + HANDLE hFileClose = NULL; + if (hFile == RTNT_INVALID_HANDLE_VALUE || hFile == NULL) + { + hFile = RTNT_INVALID_HANDLE_VALUE; + IO_STATUS_BLOCK Ios = RTNT_IO_STATUS_BLOCK_INITIALIZER; + + UNICODE_STRING NtName; + NtName.Buffer = (PWSTR)pwszName; + NtName.Length = (USHORT)(RTUtf16Len(pwszName) * sizeof(WCHAR)); + NtName.MaximumLength = NtName.Length + sizeof(WCHAR); + + OBJECT_ATTRIBUTES ObjAttr; + InitializeObjectAttributes(&ObjAttr, &NtName, OBJ_CASE_INSENSITIVE, NULL /*hRootDir*/, NULL /*pSecDesc*/); + + NTSTATUS rcNt = NtCreateFile(&hFile, + FILE_READ_DATA | READ_CONTROL | SYNCHRONIZE, + &ObjAttr, + &Ios, + NULL /* Allocation Size*/, + FILE_ATTRIBUTE_NORMAL, + FILE_SHARE_READ, + FILE_OPEN, + FILE_NON_DIRECTORY_FILE | FILE_SYNCHRONOUS_IO_NONALERT, + NULL /*EaBuffer*/, + 0 /*EaLength*/); + if (NT_SUCCESS(rcNt)) + rcNt = Ios.Status; + if (!NT_SUCCESS(rcNt)) + return RTErrInfoSetF(pErrInfo, RTErrConvertFromNtStatus(rcNt), + "NtCreateFile returned %#x opening '%ls'.", rcNt, pwszName); + hFileClose = hFile; + } + + /* + * On Windows 8.0 and later there are more than one digest choice. + */ + int fNoSignedCatalogFound = -1; + rc = VERR_LDRVI_NOT_SIGNED; + static struct + { + /** The digest algorithm name. */ + const WCHAR *pszAlgorithm; + /** Cached catalog admin handle. */ + HCATADMIN volatile hCachedCatAdmin; + } s_aHashes[] = + { + { NULL, NULL }, + { L"SHA256", NULL }, + }; + for (uint32_t i = 0; i < RT_ELEMENTS(s_aHashes); i++) + { + /* + * Another loop for dealing with different trust provider policies + * required for successfully validating different catalog signatures. + */ + bool fTryNextPolicy; + uint32_t iPolicy = 0; + static const GUID s_aPolicies[] = + { + DRIVER_ACTION_VERIFY, /* Works with microsoft bits. Most frequently used, thus first. */ + WINTRUST_ACTION_GENERIC_VERIFY_V2, /* Works with ATI and other SPC kernel-code signed stuff. */ + }; + do + { + /* + * Create a context. + */ + fTryNextPolicy = false; + bool fFreshContext = false; + BOOL fRc; + HCATADMIN hCatAdmin = ASMAtomicXchgPtr(&s_aHashes[i].hCachedCatAdmin, NULL); + if (hCatAdmin) + { + SUP_DPRINTF(("supR3HardNtViCallWinVerifyTrustCatFile: Cached context %p\n", hCatAdmin)); + fFreshContext = false; + fRc = TRUE; + } + else + { +l_fresh_context: + fFreshContext = true; + if (g_pfnCryptCATAdminAcquireContext2) + fRc = g_pfnCryptCATAdminAcquireContext2(&hCatAdmin, &s_aPolicies[iPolicy], s_aHashes[i].pszAlgorithm, + NULL /*pStrongHashPolicy*/, 0 /*dwFlags*/); + else + fRc = g_pfnCryptCATAdminAcquireContext(&hCatAdmin, &s_aPolicies[iPolicy], 0 /*dwFlags*/); + SUP_DPRINTF(("supR3HardNtViCallWinVerifyTrustCatFile: New context %p\n", hCatAdmin)); + } + if (fRc) + { + SUP_DPRINTF(("supR3HardNtViCallWinVerifyTrustCatFile: hCatAdmin=%p\n", hCatAdmin)); + + /* + * Hash the file. + */ + BYTE abHash[SUPHARDNTVI_MAX_CAT_HASH_SIZE]; + DWORD cbHash = sizeof(abHash); + if (g_pfnCryptCATAdminCalcHashFromFileHandle2) + fRc = g_pfnCryptCATAdminCalcHashFromFileHandle2(hCatAdmin, hFile, &cbHash, abHash, 0 /*dwFlags*/); + else + fRc = g_pfnCryptCATAdminCalcHashFromFileHandle(hFile, &cbHash, abHash, 0 /*dwFlags*/); + if (fRc) + { + /* Produce a string version of it that we can pass to WinVerifyTrust. */ + RTUTF16 wszDigest[SUPHARDNTVI_MAX_CAT_HASH_SIZE * 2 + 1]; + int rc2 = RTUtf16PrintHexBytes(wszDigest, RT_ELEMENTS(wszDigest), abHash, cbHash, RTSTRPRINTHEXBYTES_F_UPPER); + if (RT_SUCCESS(rc2)) + { + SUP_DPRINTF(("supR3HardNtViCallWinVerifyTrustCatFile: cbHash=%u wszDigest=%ls\n", cbHash, wszDigest)); + + /* + * Enumerate catalog information that matches the hash. + */ + uint32_t iCat = 0; + HCATINFO hCatInfoPrev = NULL; + do + { + /* Get the next match. */ + HCATINFO hCatInfo = g_pfnCryptCATAdminEnumCatalogFromHash(hCatAdmin, abHash, cbHash, 0, &hCatInfoPrev); + if (!hCatInfo) + { + if (!fFreshContext) + { + SUP_DPRINTF(("supR3HardNtViCallWinVerifyTrustCatFile: Retrying with fresh context (CryptCATAdminEnumCatalogFromHash -> %u; iCat=%#x)\n", RtlGetLastWin32Error(), iCat)); + if (hCatInfoPrev != NULL) + g_pfnCryptCATAdminReleaseCatalogContext(hCatAdmin, hCatInfoPrev, 0 /*dwFlags*/); + g_pfnCryptCATAdminReleaseContext(hCatAdmin, 0 /*dwFlags*/); + goto l_fresh_context; + } + ULONG ulErr = RtlGetLastWin32Error(); + fNoSignedCatalogFound = ulErr == ERROR_NOT_FOUND && fNoSignedCatalogFound != 0; + if (iCat == 0) + SUP_DPRINTF(("supR3HardNtViCallWinVerifyTrustCatFile: CryptCATAdminEnumCatalogFromHash failed ERRROR_NOT_FOUND (%u)\n", ulErr)); + else if (iCat == 0) + SUP_DPRINTF(("supR3HardNtViCallWinVerifyTrustCatFile: CryptCATAdminEnumCatalogFromHash failed %u\n", ulErr)); + break; + } + fNoSignedCatalogFound = 0; + Assert(hCatInfoPrev == NULL); + hCatInfoPrev = hCatInfo; + + /* + * Call WinVerifyTrust. + */ + CATALOG_INFO CatInfo; + CatInfo.cbStruct = sizeof(CatInfo); + CatInfo.wszCatalogFile[0] = '\0'; + if (g_pfnCryptCATCatalogInfoFromContext(hCatInfo, &CatInfo, 0 /*dwFlags*/)) + { + WINTRUST_CATALOG_INFO WtCatInfo; + RT_ZERO(WtCatInfo); + WtCatInfo.cbStruct = sizeof(WtCatInfo); + WtCatInfo.dwCatalogVersion = 0; + WtCatInfo.pcwszCatalogFilePath = CatInfo.wszCatalogFile; + WtCatInfo.pcwszMemberTag = wszDigest; + WtCatInfo.pcwszMemberFilePath = pwszWinPath; + WtCatInfo.pbCalculatedFileHash = abHash; + WtCatInfo.cbCalculatedFileHash = cbHash; + WtCatInfo.pcCatalogContext = NULL; + + WINTRUST_DATA TrustData; + RT_ZERO(TrustData); + TrustData.cbStruct = sizeof(TrustData); + TrustData.fdwRevocationChecks = WTD_REVOKE_NONE; /* Keep simple for now. */ + TrustData.dwStateAction = WTD_STATEACTION_VERIFY; + TrustData.dwUIChoice = WTD_UI_NONE; + TrustData.dwProvFlags = 0; + if (g_uNtVerCombined >= SUP_MAKE_NT_VER_SIMPLE(6, 0)) + TrustData.dwProvFlags = WTD_CACHE_ONLY_URL_RETRIEVAL; + else + TrustData.dwProvFlags = WTD_REVOCATION_CHECK_NONE; + TrustData.dwUnionChoice = WTD_CHOICE_CATALOG; + TrustData.pCatalog = &WtCatInfo; + + HRESULT hrc = pfnWinVerifyTrust(NULL /*hwnd*/, &s_aPolicies[iPolicy], &TrustData); + SUP_DPRINTF(("supR3HardNtViCallWinVerifyTrustCatFile: WinVerifyTrust => %#x; cat='%ls'; file='%ls'\n", + hrc, CatInfo.wszCatalogFile, pwszName)); + + if (SUCCEEDED(hrc)) + rc = VINF_SUCCESS; + else if (hrc == TRUST_E_NOSIGNATURE) + { /* ignore because it's useless. */ } + else if (hrc == ERROR_INVALID_PARAMETER) + { /* This is returned if the given file isn't found in the catalog, it seems. */ } + else + { + rc = RTErrInfoSetF(pErrInfo, VERR_SUP_VP_WINTRUST_CAT_FAILURE, + "WinVerifyTrust failed with hrc=%#x on '%ls' and .cat-file='%ls'.", + hrc, pwszWinPath, CatInfo.wszCatalogFile); + fTryNextPolicy |= (hrc == CERT_E_UNTRUSTEDROOT); + } + + /* clean up state data. */ + TrustData.dwStateAction = WTD_STATEACTION_CLOSE; + hrc = pfnWinVerifyTrust(NULL /*hwnd*/, &s_aPolicies[iPolicy], &TrustData); + Assert(SUCCEEDED(hrc)); + } + else + { + rc = RTErrInfoSetF(pErrInfo, RTErrConvertFromWin32(RtlGetLastWin32Error()), + "CryptCATCatalogInfoFromContext failed: %d [file=%s]", + RtlGetLastWin32Error(), pwszName); + SUP_DPRINTF(("supR3HardNtViCallWinVerifyTrustCatFile: CryptCATCatalogInfoFromContext failed\n")); + } + iCat++; + } while (rc == VERR_LDRVI_NOT_SIGNED && iCat < 128); + + if (hCatInfoPrev != NULL) + if (!g_pfnCryptCATAdminReleaseCatalogContext(hCatAdmin, hCatInfoPrev, 0 /*dwFlags*/)) + AssertFailed(); + } + else + rc = RTErrInfoSetF(pErrInfo, rc2, "RTUtf16PrintHexBytes failed: %Rrc", rc); + } + else + rc = RTErrInfoSetF(pErrInfo, RTErrConvertFromWin32(RtlGetLastWin32Error()), + "CryptCATAdminCalcHashFromFileHandle[2] failed: %d [file=%s]", RtlGetLastWin32Error(), pwszName); + + if (!ASMAtomicCmpXchgPtr(&s_aHashes[i].hCachedCatAdmin, hCatAdmin, NULL)) + if (!g_pfnCryptCATAdminReleaseContext(hCatAdmin, 0 /*dwFlags*/)) + AssertFailed(); + } + else + rc = RTErrInfoSetF(pErrInfo, RTErrConvertFromWin32(RtlGetLastWin32Error()), + "CryptCATAdminAcquireContext[2] failed: %d [file=%s]", RtlGetLastWin32Error(), pwszName); + iPolicy++; + } while ( fTryNextPolicy + && iPolicy < RT_ELEMENTS(s_aPolicies)); + + /* + * Only repeat if we've got g_pfnCryptCATAdminAcquireContext2 and can specify the hash algorithm. + */ + if (!g_pfnCryptCATAdminAcquireContext2) + break; + if (rc != VERR_LDRVI_NOT_SIGNED) + break; + } + + if (hFileClose != NULL) + NtClose(hFileClose); + + /* + * DLLs that are likely candidates for local modifications. + */ + if (rc == VERR_LDRVI_NOT_SIGNED) + { + bool fCoreSystemDll = false; + PCRTUTF16 pwsz; + uint32_t cwcName = (uint32_t)RTUtf16Len(pwszName); + uint32_t cwcOther = g_System32NtPath.UniStr.Length / sizeof(WCHAR); + if (supHardViUtf16PathStartsWithEx(pwszName, cwcName, g_System32NtPath.UniStr.Buffer, cwcOther, true /*fCheckSlash*/)) + { + pwsz = pwszName + cwcOther + 1; + if ( supHardViUtf16PathIsEqual(pwsz, "uxtheme.dll") + || supHardViUtf16PathIsEqual(pwsz, "user32.dll") + || supHardViUtf16PathIsEqual(pwsz, "gdi32.dll") + || supHardViUtf16PathIsEqual(pwsz, "opengl32.dll") + || (fCoreSystemDll = supHardViUtf16PathIsEqual(pwsz, "KernelBase.dll")) + || (fCoreSystemDll = supHardViUtf16PathIsEqual(pwsz, "kernel32.dll")) + || (fCoreSystemDll = supHardViUtf16PathIsEqual(pwsz, "ntdll.dll")) + ) + { + if (RTErrInfoIsSet(pErrInfo)) + RTErrInfoAdd(pErrInfo, rc, "\n"); + RTErrInfoAddF(pErrInfo, rc, "'%ls' is most likely modified.", pwszName); + } + } + + /* Kludge for ancient windows versions we don't want to support but + users still wants to use. Keep things as safe as possible without + unnecessary effort. Problem is that 3rd party catalog files cannot + easily be found. Showstopper for ATI users. */ + if ( fNoSignedCatalogFound == 1 + && g_uNtVerCombined < SUP_NT_VER_VISTA + && !fCoreSystemDll) + { + rc = VINF_LDRVI_NOT_SIGNED; + } + } + + return rc; +} + + +/** + * Verifies the given image using WinVerifyTrust in some way. + * + * This is used by supHardenedWinVerifyImageByLdrMod as well as + * supR3HardenedScreenImage. + * + * @returns IPRT status code. + * @param hFile Handle of the file to verify. + * @param pwszName Full NT path to the DLL in question, used for + * dealing with unsigned system dlls as well as for + * error/logging. + * @param pfWinVerifyTrust Where to return whether WinVerifyTrust was + * actually used. + * @param pErrInfo Pointer to error info structure. Optional. + */ +DECLHIDDEN(int) supHardenedWinVerifyImageTrust(HANDLE hFile, PCRTUTF16 pwszName, uint32_t fFlags, int rc, + bool *pfWinVerifyTrust, PRTERRINFO pErrInfo) +{ + if (pfWinVerifyTrust) + *pfWinVerifyTrust = false; + + /* + * Call the windows verify trust API if we've resolved it and aren't in + * some obvious recursion. + */ + if (g_pfnWinVerifyTrust != NULL) + { + uint32_t const idCurrentThread = RTNtCurrentThreadId(); + + /* Check if loader lock owner. */ + struct _RTL_CRITICAL_SECTION volatile *pLoaderLock = NtCurrentPeb()->LoaderLock; + bool fOwnsLoaderLock = pLoaderLock + && pLoaderLock->OwningThread == (HANDLE)(uintptr_t)idCurrentThread + && pLoaderLock->RecursionCount > 0; + if (!fOwnsLoaderLock) + { + /* Check for recursion. */ + bool fNoRecursion; + if (g_iTlsWinVerifyTrustRecursion != UINT32_MAX) + { + fNoRecursion = TlsGetValue(g_iTlsWinVerifyTrustRecursion) == 0; + if (fNoRecursion) + TlsSetValue(g_iTlsWinVerifyTrustRecursion, (void *)1); + } + else + fNoRecursion = ASMAtomicCmpXchgU32(&g_idActiveThread, idCurrentThread, UINT32_MAX); + + if (fNoRecursion && !fOwnsLoaderLock) + { + /* We can call WinVerifyTrust. */ + if (pfWinVerifyTrust) + *pfWinVerifyTrust = true; + + if (rc != VERR_LDRVI_NOT_SIGNED) + { + if (rc == VINF_LDRVI_NOT_SIGNED) + { + if (fFlags & SUPHNTVI_F_ALLOW_CAT_FILE_VERIFICATION) + { + int rc2 = supR3HardNtViCallWinVerifyTrustCatFile(hFile, pwszName, fFlags, pErrInfo, + g_pfnWinVerifyTrust); + SUP_DPRINTF(("supR3HardNtViCallWinVerifyTrustCatFile -> %d (org %d)\n", rc2, rc)); + rc = rc2; + } + else + { + AssertFailed(); + rc = VERR_LDRVI_NOT_SIGNED; + } + } + else if (RT_SUCCESS(rc)) + { + HRESULT hrcWinVerifyTrust; + rc = supR3HardNtViCallWinVerifyTrust(hFile, pwszName, fFlags, pErrInfo, g_pfnWinVerifyTrust, + &hrcWinVerifyTrust); + + /* DLLs signed with special roots, like "Microsoft Digital Media Authority 2005", + may fail here because the root cert is not in the normal certificate stores + (if any). Our verification code has the basics of these certificates included + and can verify them, which is why we end up here instead of in the + VINF_LDRVI_NOT_SIGNED case above. Current workaround is to do as above. + (Intel graphics driver DLLs, like igdusc64.dll. */ + if ( RT_FAILURE(rc) + && hrcWinVerifyTrust == CERT_E_CHAINING + && (fFlags & SUPHNTVI_F_ALLOW_CAT_FILE_VERIFICATION)) + { + rc = supR3HardNtViCallWinVerifyTrustCatFile(hFile, pwszName, fFlags, pErrInfo, g_pfnWinVerifyTrust); + SUP_DPRINTF(("supR3HardNtViCallWinVerifyTrustCatFile -> %d (was CERT_E_CHAINING)\n", rc)); + } + } + else + { + int rc2 = supR3HardNtViCallWinVerifyTrust(hFile, pwszName, fFlags, pErrInfo, g_pfnWinVerifyTrust, NULL); + AssertMsg(RT_FAILURE_NP(rc2), + ("rc=%Rrc, rc2=%Rrc %s", rc, rc2, pErrInfo ? pErrInfo->pszMsg : "")); + } + } + + /* Unwind recursion. */ + if (g_iTlsWinVerifyTrustRecursion != UINT32_MAX) + TlsSetValue(g_iTlsWinVerifyTrustRecursion, (void *)0); + else + ASMAtomicWriteU32(&g_idActiveThread, UINT32_MAX); + } + /* + * No can do. + */ + else + SUP_DPRINTF(("Detected WinVerifyTrust recursion: rc=%Rrc '%ls'.\n", rc, pwszName)); + } + else + SUP_DPRINTF(("Detected loader lock ownership: rc=%Rrc '%ls'.\n", rc, pwszName)); + } + return rc; +} + + +/** + * Checks if WinVerifyTrust is callable on the current thread. + * + * Used by the main code to figure whether it makes sense to try revalidate an + * image that hasn't passed thru WinVerifyTrust yet. + * + * @returns true if callable on current thread, false if not. + */ +DECLHIDDEN(bool) supHardenedWinIsWinVerifyTrustCallable(void) +{ + return g_pfnWinVerifyTrust != NULL + && ( g_iTlsWinVerifyTrustRecursion != UINT32_MAX + ? (uintptr_t)TlsGetValue(g_iTlsWinVerifyTrustRecursion) == 0 + : g_idActiveThread != RTNtCurrentThreadId() ); +} + + + +/** + * Initializes g_uNtVerCombined and g_NtVerInfo. + * Called from suplibHardenedWindowsMain and suplibOsInit. + */ +DECLHIDDEN(void) supR3HardenedWinInitVersion(void) +{ + /* + * Get the windows version. Use RtlGetVersion as GetVersionExW and + * GetVersion might not be telling the whole truth (8.0 on 8.1 depending on + * the application manifest). + */ + OSVERSIONINFOEXW NtVerInfo; + + RT_ZERO(NtVerInfo); + NtVerInfo.dwOSVersionInfoSize = sizeof(RTL_OSVERSIONINFOEXW); + if (!NT_SUCCESS(RtlGetVersion((PRTL_OSVERSIONINFOW)&NtVerInfo))) + { + RT_ZERO(NtVerInfo); + PPEB pPeb = NtCurrentPeb(); + NtVerInfo.dwMajorVersion = pPeb->OSMajorVersion; + NtVerInfo.dwMinorVersion = pPeb->OSMinorVersion; + NtVerInfo.dwBuildNumber = pPeb->OSPlatformId; + } + + g_uNtVerCombined = SUP_MAKE_NT_VER_COMBINED(NtVerInfo.dwMajorVersion, NtVerInfo.dwMinorVersion, NtVerInfo.dwBuildNumber, + NtVerInfo.wServicePackMajor, NtVerInfo.wServicePackMinor); +} + +#endif /* IN_RING3 */ + diff -Nru virtualbox-4.1.12-dfsg/src/VBox/HostDrivers/Support/win/SUPHardenedVerifyProcess-win.cpp virtualbox-4.1.44-dfsg/src/VBox/HostDrivers/Support/win/SUPHardenedVerifyProcess-win.cpp --- virtualbox-4.1.12-dfsg/src/VBox/HostDrivers/Support/win/SUPHardenedVerifyProcess-win.cpp 1970-01-01 00:00:00.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/HostDrivers/Support/win/SUPHardenedVerifyProcess-win.cpp 2015-11-11 15:08:41.000000000 +0000 @@ -0,0 +1,2590 @@ +/* $Id: SUPHardenedVerifyProcess-win.cpp $ */ +/** @file + * VirtualBox Support Library/Driver - Hardened Process Verification, Windows. + */ + +/* + * Copyright (C) 2006-2014 Oracle Corporation + * + * This file is part of VirtualBox Open Source Edition (OSE), as + * available from http://www.virtualbox.org. This file is free software; + * you can redistribute it and/or modify it under the terms of the GNU + * General Public License (GPL) as published by the Free Software + * Foundation, in version 2 as it comes in the "COPYING" file of the + * VirtualBox OSE distribution. VirtualBox OSE is distributed in the + * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind. + * + * The contents of this file may alternatively be used under the terms + * of the Common Development and Distribution License Version 1.0 + * (CDDL) only, as it comes in the "COPYING.CDDL" file of the + * VirtualBox OSE distribution, in which case the provisions of the + * CDDL are applicable instead of those of the GPL. + * + * You may elect to license modified versions of this file under the + * terms and conditions of either the GPL or the CDDL or both. + */ + +/******************************************************************************* +* Header Files * +*******************************************************************************/ +#ifdef IN_RING0 +# define IPRT_NT_MAP_TO_ZW +# include +# include +#else +# include +#endif + +#include +#include +#include +#include +#include +#include +#include + +#ifdef IN_RING0 +# include "SUPDrvInternal.h" +#else +# include "SUPLibInternal.h" +#endif +#include "win/SUPHardenedVerify-win.h" + + +/******************************************************************************* +* Structures and Typedefs * +*******************************************************************************/ +/** + * Virtual address space region. + */ +typedef struct SUPHNTVPREGION +{ + /** The RVA of the region. */ + uint32_t uRva; + /** The size of the region. */ + uint32_t cb; + /** The protection of the region. */ + uint32_t fProt; +} SUPHNTVPREGION; +/** Pointer to a virtual address space region. */ +typedef SUPHNTVPREGION *PSUPHNTVPREGION; + +/** + * Virtual address space image information. + */ +typedef struct SUPHNTVPIMAGE +{ + /** The base address of the image. */ + uintptr_t uImageBase; + /** The size of the image mapping. */ + uintptr_t cbImage; + + /** The name from the allowed lists. */ + const char *pszName; + /** Name structure for NtQueryVirtualMemory/MemorySectionName. */ + struct + { + /** The full unicode name. */ + UNICODE_STRING UniStr; + /** Buffer space. */ + WCHAR awcBuffer[260]; + } Name; + + /** The number of mapping regions. */ + uint32_t cRegions; + /** Mapping regions. */ + SUPHNTVPREGION aRegions[16]; + + /** The image characteristics from the FileHeader. */ + uint16_t fImageCharecteristics; + /** The DLL characteristics from the OptionalHeader. */ + uint16_t fDllCharecteristics; + + /** Set if this is the DLL. */ + bool fDll; + /** Set if the image is NTDLL an the verficiation code needs to watch out for + * the NtCreateSection patch. */ + bool fNtCreateSectionPatch; + /** Whether the API set schema hack needs to be applied when verifying memory + * content. The hack means that we only check if the 1st section is mapped. */ + bool fApiSetSchemaOnlySection1; + /** This may be a 32-bit resource DLL. */ + bool f32bitResourceDll; + + /** Pointer to the loader cache entry for the image. */ + PSUPHNTLDRCACHEENTRY pCacheEntry; +#ifdef IN_RING0 + /** In ring-0 we don't currently cache images, so put it here. */ + SUPHNTLDRCACHEENTRY CacheEntry; +#endif +} SUPHNTVPIMAGE; +/** Pointer to image info from the virtual address space scan. */ +typedef SUPHNTVPIMAGE *PSUPHNTVPIMAGE; + +/** + * Virtual address space scanning state. + */ +typedef struct SUPHNTVPSTATE +{ + /** Type of verification to perform. */ + SUPHARDNTVPKIND enmKind; + /** Combination of SUPHARDNTVP_F_XXX. */ + uint32_t fFlags; + /** The result. */ + int rcResult; + /** Number of fixes we've done. + * Only applicable in the purification modes. */ + uint32_t cFixes; + /** Number of images in aImages. */ + uint32_t cImages; + /** The index of the last image we looked up. */ + uint32_t iImageHint; + /** The process handle. */ + HANDLE hProcess; + /** Images found in the process. + * The array is large enough to hold the executable, all allowed DLLs, and one + * more so we can get the image name of the first unwanted DLL. */ + SUPHNTVPIMAGE aImages[1 + 6 + 1 +#ifdef VBOX_PERMIT_VERIFIER_DLL + + 1 +#endif +#ifdef VBOX_PERMIT_MORE + + 5 +#endif +#ifdef VBOX_PERMIT_VISUAL_STUDIO_PROFILING + + 16 +#endif + ]; + /** Memory compare scratch buffer.*/ + uint8_t abMemory[_4K]; + /** File compare scratch buffer.*/ + uint8_t abFile[_4K]; + /** Section headers for use when comparing file and loaded image. */ + IMAGE_SECTION_HEADER aSecHdrs[16]; + /** Pointer to the error info. */ + PRTERRINFO pErrInfo; +} SUPHNTVPSTATE; +/** Pointer to stat information of a virtual address space scan. */ +typedef SUPHNTVPSTATE *PSUPHNTVPSTATE; + + +/******************************************************************************* +* Global Variables * +*******************************************************************************/ +/** + * System DLLs allowed to be loaded into the process. + * @remarks supHardNtVpCheckDlls assumes these are lower case. + */ +static const char *g_apszSupNtVpAllowedDlls[] = +{ + "ntdll.dll", + "kernel32.dll", + "kernelbase.dll", + "apphelp.dll", + "apisetschema.dll", +#ifdef VBOX_PERMIT_VERIFIER_DLL + "verifier.dll", +#endif +#ifdef VBOX_PERMIT_MORE +# define VBOX_PERMIT_MORE_FIRST_IDX 5 + "sfc.dll", + "sfc_os.dll", + "user32.dll", + "acres.dll", + "acgenral.dll", +#endif +#ifdef VBOX_PERMIT_VISUAL_STUDIO_PROFILING + "psapi.dll", + "msvcrt.dll", + "advapi32.dll", + "sechost.dll", + "rpcrt4.dll", + "SamplingRuntime.dll", +#endif +}; + +/** + * VBox executables allowed to start VMs. + * @remarks Remember to keep in sync with SUPR3HardenedVerify.cpp. + */ +static const char *g_apszSupNtVpAllowedVmExes[] = +{ + "VBoxHeadless.exe", + "VirtualBox.exe", + "VBoxSDL.exe", + "VBoxNetDHCP.exe", + "VBoxNetNAT.exe", + + "tstMicro.exe", + "tstPDMAsyncCompletion.exe", + "tstPDMAsyncCompletionStress.exe", + "tstVMM.exe", + "tstVMREQ.exe", + "tstCFGM.exe", + "tstIntNet-1.exe", + "tstMMHyperHeap.exe", + "tstR0ThreadPreemptionDriver.exe", + "tstRTR0MemUserKernelDriver.exe", + "tstRTR0SemMutexDriver.exe", + "tstRTR0TimerDriver.exe", + "tstSSM.exe", +}; + +/** Pointer to NtQueryVirtualMemory. Initialized by SUPDrv-win.cpp in + * ring-0, in ring-3 it's just a slightly confusing define. */ +#ifdef IN_RING0 +PFNNTQUERYVIRTUALMEMORY g_pfnNtQueryVirtualMemory = NULL; +#else +# define g_pfnNtQueryVirtualMemory NtQueryVirtualMemory +#endif + +#ifdef IN_RING3 +/** The number of valid entries in the loader cache.. */ +static uint32_t g_cSupNtVpLdrCacheEntries = 0; +/** The loader cache entries. */ +static SUPHNTLDRCACHEENTRY g_aSupNtVpLdrCacheEntries[RT_ELEMENTS(g_apszSupNtVpAllowedDlls) + 1 + 3]; +#endif + + +/** + * Fills in error information. + * + * @returns @a rc. + * @param pErrInfo Pointer to the extended error info structure. + * Can be NULL. + * @param pszErr Where to return error details. + * @param cbErr Size of the buffer @a pszErr points to. + * @param rc The status to return. + * @param pszMsg The format string for the message. + * @param ... The arguments for the format string. + */ +static int supHardNtVpSetInfo1(PRTERRINFO pErrInfo, int rc, const char *pszMsg, ...) +{ + va_list va; +#ifdef IN_RING3 + va_start(va, pszMsg); + supR3HardenedError(rc, false /*fFatal*/, "%N\n", pszMsg, &va); + va_end(va); +#endif + + va_start(va, pszMsg); + RTErrInfoSetV(pErrInfo, rc, pszMsg, va); + va_end(va); + + return rc; +} + + +/** + * Fills in error information. + * + * @returns @a rc. + * @param pThis The process validator instance. + * @param pszErr Where to return error details. + * @param cbErr Size of the buffer @a pszErr points to. + * @param rc The status to return. + * @param pszMsg The format string for the message. + * @param ... The arguments for the format string. + */ +static int supHardNtVpSetInfo2(PSUPHNTVPSTATE pThis, int rc, const char *pszMsg, ...) +{ + va_list va; +#ifdef IN_RING3 + va_start(va, pszMsg); + supR3HardenedError(rc, false /*fFatal*/, "%N\n", pszMsg, &va); + va_end(va); +#endif + + va_start(va, pszMsg); +#ifdef IN_RING0 + RTErrInfoSetV(pThis->pErrInfo, rc, pszMsg, va); + pThis->rcResult = rc; +#else + if (RT_SUCCESS(pThis->rcResult)) + { + RTErrInfoSetV(pThis->pErrInfo, rc, pszMsg, va); + pThis->rcResult = rc; + } + else + { + RTErrInfoAddF(pThis->pErrInfo, rc, " \n[rc=%d] ", rc); + RTErrInfoAddV(pThis->pErrInfo, rc, pszMsg, va); + } +#endif + va_end(va); + + return pThis->rcResult; +} + + +static int supHardNtVpReadImage(PSUPHNTVPIMAGE pImage, uint64_t off, void *pvBuf, size_t cbRead) +{ + return pImage->pCacheEntry->pNtViRdr->Core.pfnRead(&pImage->pCacheEntry->pNtViRdr->Core, pvBuf, cbRead, off); +} + + +static NTSTATUS supHardNtVpReadMem(HANDLE hProcess, uintptr_t uPtr, void *pvBuf, size_t cbRead) +{ +#ifdef IN_RING0 + /* ASSUMES hProcess is the current process. */ + /** @todo use MmCopyVirtualMemory where available! */ + int rc = RTR0MemUserCopyFrom(pvBuf, uPtr, cbRead); + if (RT_SUCCESS(rc)) + return STATUS_SUCCESS; + return STATUS_ACCESS_DENIED; +#else + SIZE_T cbIgn; + NTSTATUS rcNt = NtReadVirtualMemory(hProcess, (PVOID)uPtr, pvBuf, cbRead, &cbIgn); + if (NT_SUCCESS(rcNt) && cbIgn != cbRead) + rcNt = STATUS_IO_DEVICE_ERROR; + return rcNt; +#endif +} + + +#ifdef IN_RING3 +static NTSTATUS supHardNtVpFileMemRestore(PSUPHNTVPSTATE pThis, PVOID pvRestoreAddr, uint8_t const *pbFile, uint32_t cbToRestore, + uint32_t fCorrectProtection) +{ + PVOID pvProt = pvRestoreAddr; + SIZE_T cbProt = cbToRestore; + ULONG fOldProt = 0; + NTSTATUS rcNt = NtProtectVirtualMemory(pThis->hProcess, &pvProt, &cbProt, PAGE_READWRITE, &fOldProt); + if (NT_SUCCESS(rcNt)) + { + SIZE_T cbIgnored; + rcNt = NtWriteVirtualMemory(pThis->hProcess, pvRestoreAddr, pbFile, cbToRestore, &cbIgnored); + + pvProt = pvRestoreAddr; + cbProt = cbToRestore; + NTSTATUS rcNt2 = NtProtectVirtualMemory(pThis->hProcess, &pvProt, &cbProt, fCorrectProtection, &fOldProt); + if (NT_SUCCESS(rcNt)) + rcNt = rcNt2; + } + pThis->cFixes++; + return rcNt; +} +#endif /* IN_RING3 */ + + +typedef struct SUPHNTVPSKIPAREA +{ + uint32_t uRva; + uint32_t cb; +} SUPHNTVPSKIPAREA; +typedef SUPHNTVPSKIPAREA *PSUPHNTVPSKIPAREA; + +static int supHardNtVpFileMemCompareSection(PSUPHNTVPSTATE pThis, PSUPHNTVPIMAGE pImage, + uint32_t uRva, uint32_t cb, const uint8_t *pbFile, + int32_t iSh, PSUPHNTVPSKIPAREA paSkipAreas, uint32_t cSkipAreas, + uint32_t fCorrectProtection) +{ + AssertCompileAdjacentMembers(SUPHNTVPSTATE, abMemory, abFile); /* Use both the memory and file buffers here. Parfait might hate me for this... */ + uint32_t const cbMemory = sizeof(pThis->abMemory) + sizeof(pThis->abFile); + uint8_t * const pbMemory = &pThis->abMemory[0]; + + while (cb > 0) + { + uint32_t cbThis = RT_MIN(cb, cbMemory); + + /* Clipping. */ + uint32_t uNextRva = uRva + cbThis; + if (cSkipAreas) + { + uint32_t uRvaEnd = uNextRva; + uint32_t i = cSkipAreas; + while (i-- > 0) + { + uint32_t uSkipEnd = paSkipAreas[i].uRva + paSkipAreas[i].cb; + if ( uRva < uSkipEnd + && uRvaEnd > paSkipAreas[i].uRva) + { + if (uRva < paSkipAreas[i].uRva) + { + cbThis = paSkipAreas[i].uRva - uRva; + uRvaEnd = paSkipAreas[i].uRva; + uNextRva = uSkipEnd; + } + else if (uRvaEnd >= uSkipEnd) + { + cbThis -= uSkipEnd - uRva; + pbFile += uSkipEnd - uRva; + uRva = uSkipEnd; + } + else + { + uNextRva = uSkipEnd; + cbThis = 0; + break; + } + } + } + } + + /* Read the memory. */ + NTSTATUS rcNt = supHardNtVpReadMem(pThis->hProcess, pImage->uImageBase + uRva, pbMemory, cbThis); + if (!NT_SUCCESS(rcNt)) + return supHardNtVpSetInfo2(pThis, VERR_SUP_VP_MEMORY_READ_ERROR, + "%s: Error reading %#x bytes at %p (rva %#x, #%u, %.8s) from memory: %#x", + pImage->pszName, cbThis, pImage->uImageBase + uRva, uRva, iSh + 1, + iSh >= 0 ? (char *)pThis->aSecHdrs[iSh].Name : "headers", rcNt); + + /* Do the compare. */ + if (memcmp(pbFile, pbMemory, cbThis) != 0) + { + const char *pachSectNm = iSh >= 0 ? (char *)pThis->aSecHdrs[iSh].Name : "headers"; + SUP_DPRINTF(("%s: Differences in section #%u (%s) between file and memory:\n", pImage->pszName, iSh + 1, pachSectNm)); + + uint32_t off = 0; + while (off < cbThis && pbFile[off] == pbMemory[off]) + off++; + SUP_DPRINTF((" %p / %#09x: %02x != %02x\n", + pImage->uImageBase + uRva + off, uRva + off, pbFile[off], pbMemory[off])); + uint32_t offLast = off; + uint32_t cDiffs = 1; + for (uint32_t off2 = off + 1; off2 < cbThis; off2++) + if (pbFile[off2] != pbMemory[off2]) + { + SUP_DPRINTF((" %p / %#09x: %02x != %02x\n", + pImage->uImageBase + uRva + off2, uRva + off2, pbFile[off2], pbMemory[off2])); + cDiffs++; + offLast = off2; + } + +#ifdef IN_RING3 + if ( pThis->enmKind == SUPHARDNTVPKIND_CHILD_PURIFICATION + || pThis->enmKind == SUPHARDNTVPKIND_SELF_PURIFICATION) + { + PVOID pvRestoreAddr = (uint8_t *)pImage->uImageBase + uRva; + rcNt = supHardNtVpFileMemRestore(pThis, pvRestoreAddr, pbFile, cbThis, fCorrectProtection); + if (NT_SUCCESS(rcNt)) + SUP_DPRINTF((" Restored %#x bytes of original file content at %p\n", cbThis, pvRestoreAddr)); + else + return supHardNtVpSetInfo2(pThis, VERR_SUP_VP_MEMORY_VS_FILE_MISMATCH, + "%s: Failed to restore %#x bytes at %p (%#x, #%u, %s): %#x (cDiffs=%#x, first=%#x)", + pImage->pszName, cbThis, pvRestoreAddr, uRva, iSh + 1, pachSectNm, rcNt, + cDiffs, uRva + off); + } + else +#endif /* IN_RING3 */ + return supHardNtVpSetInfo2(pThis, VERR_SUP_VP_MEMORY_VS_FILE_MISMATCH, + "%s: %u differences between %#x and %#x in #%u (%.8s), first: %02x != %02x", + pImage->pszName, cDiffs, uRva + off, uRva + offLast, iSh + 1, + pachSectNm, pbFile[off], pbMemory[off]); + } + + /* Advance. The clipping makes it a little bit complicated. */ + cbThis = uNextRva - uRva; + if (cbThis >= cb) + break; + cb -= cbThis; + pbFile += cbThis; + uRva = uNextRva; + } + return VINF_SUCCESS; +} + + + +static int supHardNtVpCheckSectionProtection(PSUPHNTVPSTATE pThis, PSUPHNTVPIMAGE pImage, + uint32_t uRva, uint32_t cb, uint32_t fProt) +{ + uint32_t const cbOrg = cb; + if (!cb) + return VINF_SUCCESS; + if ( pThis->enmKind == SUPHARDNTVPKIND_CHILD_PURIFICATION + || pThis->enmKind == SUPHARDNTVPKIND_SELF_PURIFICATION) + return VINF_SUCCESS; + + for (uint32_t i = 0; i < pImage->cRegions; i++) + { + uint32_t offRegion = uRva - pImage->aRegions[i].uRva; + if (offRegion < pImage->aRegions[i].cb) + { + uint32_t cbLeft = pImage->aRegions[i].cb - offRegion; + if ( pImage->aRegions[i].fProt != fProt + && ( fProt != PAGE_READWRITE + || pImage->aRegions[i].fProt != PAGE_WRITECOPY)) + return supHardNtVpSetInfo2(pThis, VERR_SUP_VP_SECTION_PROTECTION_MISMATCH, + "%s: RVA range %#x-%#x protection is %#x, expected %#x. (cb=%#x)", + pImage->pszName, uRva, uRva + cbLeft - 1, pImage->aRegions[i].fProt, fProt, cb); + if (cbLeft >= cb) + return VINF_SUCCESS; + cb -= cbLeft; + uRva += cbLeft; + +#if 0 /* This shouldn't ever be necessary. */ + if ( i + 1 < pImage->cRegions + && uRva < pImage->aRegions[i + 1].uRva) + { + cbLeft = pImage->aRegions[i + 1].uRva - uRva; + if (cbLeft >= cb) + return VINF_SUCCESS; + cb -= cbLeft; + uRva += cbLeft; + } +#endif + } + } + + return supHardNtVpSetInfo2(pThis, cbOrg == cb ? VERR_SUP_VP_SECTION_NOT_MAPPED : VERR_SUP_VP_SECTION_NOT_FULLY_MAPPED, + "%s: RVA range %#x-%#x is not mapped?", pImage->pszName, uRva, uRva + cb - 1); +} + + +static DECLINLINE(bool) supHardNtVpIsModuleNameMatch(PSUPHNTVPIMAGE pImage, const char *pszModule) +{ + if (pImage->fDll) + { + const char *pszImageNm = pImage->pszName; + for (;;) + { + char chLeft = *pszImageNm++; + char chRight = *pszModule++; + if (chLeft != chRight) + { + Assert(chLeft == RT_C_TO_LOWER(chLeft)); + if (chLeft != RT_C_TO_LOWER(chRight)) + { + if ( chRight == '\0' + && chLeft == '.' + && pszImageNm[0] == 'd' + && pszImageNm[1] == 'l' + && pszImageNm[2] == 'l' + && pszImageNm[3] == '\0') + return true; + break; + } + } + + if (chLeft == '\0') + return true; + } + } + + return false; +} + + +/** + * Worker for supHardNtVpGetImport that looks up a module in the module table. + * + * @returns Pointer to the module if found, NULL if not found. + * @param pThis The process validator instance. + * @param pszModule The name of the module we're looking for. + */ +static PSUPHNTVPIMAGE supHardNtVpFindModule(PSUPHNTVPSTATE pThis, const char *pszModule) +{ + /* + * Check out the hint first. + */ + if ( pThis->iImageHint < pThis->cImages + && supHardNtVpIsModuleNameMatch(&pThis->aImages[pThis->iImageHint], pszModule)) + return &pThis->aImages[pThis->iImageHint]; + + /* + * Linear array search next. + */ + uint32_t i = pThis->cImages; + while (i-- > 0) + if (supHardNtVpIsModuleNameMatch(&pThis->aImages[i], pszModule)) + { + pThis->iImageHint = i; + return &pThis->aImages[i]; + } + + /* No cigar. */ + return NULL; +} + + +/** + * @callback_method_impl{FNRTLDRIMPORT} + */ +static DECLCALLBACK(int) supHardNtVpGetImport(RTLDRMOD hLdrMod, const char *pszModule, const char *pszSymbol, unsigned uSymbol, + PRTLDRADDR pValue, void *pvUser) +{ + /*SUP_DPRINTF(("supHardNtVpGetImport: %s / %#x / %s.\n", pszModule, uSymbol, pszSymbol));*/ + PSUPHNTVPSTATE pThis = (PSUPHNTVPSTATE)pvUser; + + int rc = VERR_MODULE_NOT_FOUND; + PSUPHNTVPIMAGE pImage = supHardNtVpFindModule(pThis, pszModule); + if (pImage) + { + rc = RTLdrGetSymbolEx(pImage->pCacheEntry->hLdrMod, pImage->pCacheEntry->pbBits, + pImage->uImageBase, uSymbol, pszSymbol, pValue); + if (RT_SUCCESS(rc)) + return rc; + } + /* + * API set hacks. + */ + else if (!RTStrNICmp(pszModule, RT_STR_TUPLE("api-ms-win-"))) + { + static const char * const s_apszDlls[] = { "ntdll.dll", "kernelbase.dll", "kernel32.dll" }; + for (uint32_t i = 0; i < RT_ELEMENTS(s_apszDlls); i++) + { + pImage = supHardNtVpFindModule(pThis, s_apszDlls[i]); + if (pImage) + { + rc = RTLdrGetSymbolEx(pImage->pCacheEntry->hLdrMod, pImage->pCacheEntry->pbBits, + pImage->uImageBase, uSymbol, pszSymbol, pValue); + if (RT_SUCCESS(rc)) + return rc; + if (rc != VERR_SYMBOL_NOT_FOUND) + break; + } + } + } + + /* + * Deal with forwarders. + * ASSUMES no forwarders thru any api-ms-win-core-*.dll. + * ASSUMES forwarders are resolved after one redirection. + */ + if (rc == VERR_LDR_FORWARDER) + { + size_t cbInfo = RT_MIN((uint32_t)*pValue, sizeof(RTLDRIMPORTINFO) + 32); + PRTLDRIMPORTINFO pInfo = (PRTLDRIMPORTINFO)alloca(cbInfo); + rc = RTLdrQueryForwarderInfo(pImage->pCacheEntry->hLdrMod, pImage->pCacheEntry->pbBits, + uSymbol, pszSymbol, pInfo, cbInfo); + if (RT_SUCCESS(rc)) + { + rc = VERR_MODULE_NOT_FOUND; + pImage = supHardNtVpFindModule(pThis, pInfo->szModule); + if (pImage) + { + rc = RTLdrGetSymbolEx(pImage->pCacheEntry->hLdrMod, pImage->pCacheEntry->pbBits, + pImage->uImageBase, pInfo->iOrdinal, pInfo->pszSymbol, pValue); + if (RT_SUCCESS(rc)) + return rc; + + SUP_DPRINTF(("supHardNtVpGetImport: Failed to find symbol '%s' in '%s' (forwarded from %s / %s): %Rrc\n", + pInfo->pszSymbol, pInfo->szModule, pszModule, pszSymbol, rc)); + if (rc == VERR_LDR_FORWARDER) + rc = VERR_LDR_FORWARDER_CHAIN_TOO_LONG; + } + else + SUP_DPRINTF(("supHardNtVpGetImport: Failed to find forwarder module '%s' (%#x / %s; originally %s / %#x / %s): %Rrc\n", + pInfo->szModule, pInfo->iOrdinal, pInfo->pszSymbol, pszModule, uSymbol, pszSymbol, rc)); + } + else + SUP_DPRINTF(("supHardNtVpGetImport: RTLdrQueryForwarderInfo failed on symbol %#x/'%s' in '%s': %Rrc\n", + uSymbol, pszSymbol, pszModule, rc)); + } + else + SUP_DPRINTF(("supHardNtVpGetImport: Failed to find symbol %#x / '%s' in '%s': %Rrc\n", + uSymbol, pszSymbol, pszModule, rc)); + return rc; +} + + +/** + * Compares process memory with the disk content. + * + * @returns VBox status code. + * @param pThis The process scanning state structure (for the + * two scratch buffers). + * @param pImage The image data collected during the address + * space scan. + * @param hProcess Handle to the process. + * @param pErrInfo Pointer to error info structure. Optional. + */ +static int supHardNtVpVerifyImageMemoryCompare(PSUPHNTVPSTATE pThis, PSUPHNTVPIMAGE pImage, HANDLE hProcess, PRTERRINFO pErrInfo) +{ + /* + * Read and find the file headers. + */ + int rc = supHardNtVpReadImage(pImage, 0 /*off*/, pThis->abFile, sizeof(pThis->abFile)); + if (RT_FAILURE(rc)) + return supHardNtVpSetInfo2(pThis, VERR_SUP_VP_IMAGE_HDR_READ_ERROR, + "%s: Error reading image header: %Rrc", pImage->pszName, rc); + + uint32_t offNtHdrs = 0; + PIMAGE_DOS_HEADER pDosHdr = (PIMAGE_DOS_HEADER)&pThis->abFile[0]; + if (pDosHdr->e_magic == IMAGE_DOS_SIGNATURE) + { + offNtHdrs = pDosHdr->e_lfanew; + if (offNtHdrs > 512 || offNtHdrs < sizeof(*pDosHdr)) + return supHardNtVpSetInfo2(pThis, VERR_SUP_VP_BAD_MZ_OFFSET, + "%s: Unexpected e_lfanew value: %#x", pImage->pszName, offNtHdrs); + } + PIMAGE_NT_HEADERS pNtHdrs = (PIMAGE_NT_HEADERS)&pThis->abFile[offNtHdrs]; + PIMAGE_NT_HEADERS32 pNtHdrs32 = (PIMAGE_NT_HEADERS32)pNtHdrs; + if (pNtHdrs->Signature != IMAGE_NT_SIGNATURE) + return supHardNtVpSetInfo2(pThis, VERR_SUP_VP_BAD_IMAGE_SIGNATURE, + "%s: No PE signature at %#x: %#x", pImage->pszName, offNtHdrs, pNtHdrs->Signature); + + /* + * Do basic header validation. + */ +#ifdef RT_ARCH_AMD64 + if (pNtHdrs->FileHeader.Machine != IMAGE_FILE_MACHINE_AMD64 && !pImage->f32bitResourceDll) +#else + if (pNtHdrs->FileHeader.Machine != IMAGE_FILE_MACHINE_I386) +#endif + return supHardNtVpSetInfo2(pThis, VERR_SUP_VP_UNEXPECTED_IMAGE_MACHINE, + "%s: Unexpected machine: %#x", pImage->pszName, pNtHdrs->FileHeader.Machine); + bool const fIs32Bit = pNtHdrs->FileHeader.Machine == IMAGE_FILE_MACHINE_I386; + + if (pNtHdrs->FileHeader.SizeOfOptionalHeader != (fIs32Bit ? sizeof(IMAGE_OPTIONAL_HEADER32) : sizeof(IMAGE_OPTIONAL_HEADER64))) + return supHardNtVpSetInfo2(pThis, VERR_SUP_VP_BAD_OPTIONAL_HEADER, + "%s: Unexpected optional header size: %#x", + pImage->pszName, pNtHdrs->FileHeader.SizeOfOptionalHeader); + + if (pNtHdrs->OptionalHeader.Magic != (fIs32Bit ? IMAGE_NT_OPTIONAL_HDR32_MAGIC : IMAGE_NT_OPTIONAL_HDR64_MAGIC)) + return supHardNtVpSetInfo2(pThis, VERR_SUP_VP_BAD_OPTIONAL_HEADER, + "%s: Unexpected optional header magic: %#x", pImage->pszName, pNtHdrs->OptionalHeader.Magic); + + uint32_t cDirs = (fIs32Bit ? pNtHdrs32->OptionalHeader.NumberOfRvaAndSizes : pNtHdrs->OptionalHeader.NumberOfRvaAndSizes); + if (cDirs != IMAGE_NUMBEROF_DIRECTORY_ENTRIES) + return supHardNtVpSetInfo2(pThis, VERR_SUP_VP_BAD_OPTIONAL_HEADER, + "%s: Unexpected data dirs: %#x", pImage->pszName, cDirs); + + /* + * Before we start comparing things, store what we need to know from the headers. + */ + uint32_t const cSections = pNtHdrs->FileHeader.NumberOfSections; + if (cSections > RT_ELEMENTS(pThis->aSecHdrs)) + return supHardNtVpSetInfo2(pThis, VERR_SUP_VP_TOO_MANY_SECTIONS, + "%s: Too many section headers: %#x", pImage->pszName, cSections); + suplibHardenedMemCopy(pThis->aSecHdrs, (fIs32Bit ? (void *)(pNtHdrs32 + 1) : (void *)(pNtHdrs + 1)), + cSections * sizeof(IMAGE_SECTION_HEADER)); + + uintptr_t const uImageBase = fIs32Bit ? pNtHdrs32->OptionalHeader.ImageBase : pNtHdrs->OptionalHeader.ImageBase; + if (uImageBase & PAGE_OFFSET_MASK) + return supHardNtVpSetInfo2(pThis, VERR_SUP_VP_BAD_IMAGE_BASE, + "%s: Invalid image base: %p", pImage->pszName, uImageBase); + + uint32_t const cbImage = fIs32Bit ? pNtHdrs32->OptionalHeader.SizeOfImage : pNtHdrs->OptionalHeader.SizeOfImage; + if (RT_ALIGN_32(pImage->cbImage, PAGE_SIZE) != RT_ALIGN_32(cbImage, PAGE_SIZE) && !pImage->fApiSetSchemaOnlySection1) + return supHardNtVpSetInfo2(pThis, VERR_SUP_VP_BAD_IMAGE_SIZE, + "%s: SizeOfImage (%#x) isn't close enough to the mapping size (%#x)", + pImage->pszName, cbImage, pImage->cbImage); + if (cbImage != RTLdrSize(pImage->pCacheEntry->hLdrMod)) + return supHardNtVpSetInfo2(pThis, VERR_SUP_VP_BAD_IMAGE_SIZE, + "%s: SizeOfImage (%#x) differs from what RTLdrSize returns (%#zx)", + pImage->pszName, cbImage, RTLdrSize(pImage->pCacheEntry->hLdrMod)); + + uint32_t const cbSectAlign = fIs32Bit ? pNtHdrs32->OptionalHeader.SectionAlignment : pNtHdrs->OptionalHeader.SectionAlignment; + if ( !RT_IS_POWER_OF_TWO(cbSectAlign) + || cbSectAlign < PAGE_SIZE + || cbSectAlign > (pImage->fApiSetSchemaOnlySection1 ? _64K : (uint32_t)PAGE_SIZE) ) + return supHardNtVpSetInfo2(pThis, VERR_SUP_VP_BAD_SECTION_ALIGNMENT_VALUE, + "%s: Unexpected SectionAlignment value: %#x", pImage->pszName, cbSectAlign); + + uint32_t const cbFileAlign = fIs32Bit ? pNtHdrs32->OptionalHeader.FileAlignment : pNtHdrs->OptionalHeader.FileAlignment; + if (!RT_IS_POWER_OF_TWO(cbFileAlign) || cbFileAlign < 512 || cbFileAlign > PAGE_SIZE || cbFileAlign > cbSectAlign) + return supHardNtVpSetInfo2(pThis, VERR_SUP_VP_BAD_FILE_ALIGNMENT_VALUE, + "%s: Unexpected FileAlignment value: %#x (cbSectAlign=%#x)", + pImage->pszName, cbFileAlign, cbSectAlign); + + uint32_t const cbHeaders = fIs32Bit ? pNtHdrs32->OptionalHeader.SizeOfHeaders : pNtHdrs->OptionalHeader.SizeOfHeaders; + uint32_t const cbMinHdrs = offNtHdrs + (fIs32Bit ? sizeof(*pNtHdrs32) : sizeof(*pNtHdrs) ) + + sizeof(IMAGE_SECTION_HEADER) * cSections; + if (cbHeaders < cbMinHdrs) + return supHardNtVpSetInfo2(pThis, VERR_SUP_VP_BAD_SIZE_OF_HEADERS, + "%s: Headers are too small: %#x < %#x (cSections=%#x)", + pImage->pszName, cbHeaders, cbMinHdrs, cSections); + uint32_t const cbHdrsFile = RT_ALIGN_32(cbHeaders, cbFileAlign); + if (cbHdrsFile > sizeof(pThis->abFile)) + return supHardNtVpSetInfo2(pThis, VERR_SUP_VP_BAD_SIZE_OF_HEADERS, + "%s: Headers are larger than expected: %#x/%#x (expected max %zx)", + pImage->pszName, cbHeaders, cbHdrsFile, sizeof(pThis->abFile)); + + /* + * Save some header fields we might be using later on. + */ + pImage->fImageCharecteristics = pNtHdrs->FileHeader.Characteristics; + pImage->fDllCharecteristics = fIs32Bit ? pNtHdrs32->OptionalHeader.DllCharacteristics : pNtHdrs->OptionalHeader.DllCharacteristics; + + /* + * Correct the apisetschema image base, size and region rva. + */ + if (pImage->fApiSetSchemaOnlySection1) + { + pImage->uImageBase -= pThis->aSecHdrs[0].VirtualAddress; + pImage->cbImage += pThis->aSecHdrs[0].VirtualAddress; + pImage->aRegions[0].uRva = pThis->aSecHdrs[0].VirtualAddress; + } + + /* + * Get relocated bits. + */ + uint8_t *pbBits; + if (pThis->enmKind == SUPHARDNTVPKIND_CHILD_PURIFICATION) + rc = supHardNtLdrCacheEntryGetBits(pImage->pCacheEntry, &pbBits, pImage->uImageBase, NULL /*pfnGetImport*/, pThis, + pThis->pErrInfo); + else + rc = supHardNtLdrCacheEntryGetBits(pImage->pCacheEntry, &pbBits, pImage->uImageBase, supHardNtVpGetImport, pThis, + pThis->pErrInfo); + if (RT_FAILURE(rc)) + return rc; + + /* XP SP3 does not set ImageBase to load address. It fixes up the image on load time though. */ + if (g_uNtVerCombined >= SUP_NT_VER_VISTA) + { + if (fIs32Bit) + ((PIMAGE_NT_HEADERS32)&pbBits[offNtHdrs])->OptionalHeader.ImageBase = (uint32_t)pImage->uImageBase; + else + ((PIMAGE_NT_HEADERS)&pbBits[offNtHdrs])->OptionalHeader.ImageBase = pImage->uImageBase; + } + + /* + * Figure out areas we should skip during comparison. + */ + uint32_t cSkipAreas = 0; + SUPHNTVPSKIPAREA aSkipAreas[5]; + if (pImage->fNtCreateSectionPatch) + { + RTLDRADDR uValue; + if (pThis->enmKind == SUPHARDNTVPKIND_VERIFY_ONLY) + { + /* Ignore our NtCreateSection hack. */ + rc = RTLdrGetSymbolEx(pImage->pCacheEntry->hLdrMod, pbBits, 0, UINT32_MAX, "NtCreateSection", &uValue); + if (RT_FAILURE(rc)) + return supHardNtVpSetInfo2(pThis, rc, "%s: Failed to find 'NtCreateSection': %Rrc", pImage->pszName, rc); + aSkipAreas[cSkipAreas].uRva = (uint32_t)uValue; + aSkipAreas[cSkipAreas++].cb = ARCH_BITS == 32 ? 5 : 12; + + /* Ignore our LdrLoadDll hack. */ + rc = RTLdrGetSymbolEx(pImage->pCacheEntry->hLdrMod, pbBits, 0, UINT32_MAX, "LdrLoadDll", &uValue); + if (RT_FAILURE(rc)) + return supHardNtVpSetInfo2(pThis, rc, "%s: Failed to find 'LdrLoadDll': %Rrc", pImage->pszName, rc); + aSkipAreas[cSkipAreas].uRva = (uint32_t)uValue; + aSkipAreas[cSkipAreas++].cb = ARCH_BITS == 32 ? 5 : 12; + } + + /* Ignore our patched LdrInitializeThunk hack. */ + rc = RTLdrGetSymbolEx(pImage->pCacheEntry->hLdrMod, pbBits, 0, UINT32_MAX, "LdrInitializeThunk", &uValue); + if (RT_FAILURE(rc)) + return supHardNtVpSetInfo2(pThis, rc, "%s: Failed to find 'LdrInitializeThunk': %Rrc", pImage->pszName, rc); + aSkipAreas[cSkipAreas].uRva = (uint32_t)uValue; + aSkipAreas[cSkipAreas++].cb = 14; + + /* LdrSystemDllInitBlock is filled in by the kernel. It mainly contains addresses of 32-bit ntdll method for wow64. */ + rc = RTLdrGetSymbolEx(pImage->pCacheEntry->hLdrMod, pbBits, 0, UINT32_MAX, "LdrSystemDllInitBlock", &uValue); + if (RT_SUCCESS(rc)) + { + aSkipAreas[cSkipAreas].uRva = (uint32_t)uValue; + aSkipAreas[cSkipAreas++].cb = RT_MAX(pbBits[(uint32_t)uValue], 0x50); + } + + Assert(cSkipAreas <= RT_ELEMENTS(aSkipAreas)); + } + + /* + * Compare the file header with the loaded bits. The loader will fiddle + * with image base, changing it to the actual load address. + */ + if (!pImage->fApiSetSchemaOnlySection1) + { + rc = supHardNtVpFileMemCompareSection(pThis, pImage, 0 /*uRva*/, cbHdrsFile, pbBits, -1, NULL, 0, PAGE_READONLY); + if (RT_FAILURE(rc)) + return rc; + + rc = supHardNtVpCheckSectionProtection(pThis, pImage, 0 /*uRva*/, cbHdrsFile, PAGE_READONLY); + if (RT_FAILURE(rc)) + return rc; + } + + /* + * Validate sections: + * - Check them against the mapping regions. + * - Check section bits according to enmKind. + */ + uint32_t fPrevProt = PAGE_READONLY; + uint32_t uRva = cbHdrsFile; + for (uint32_t i = 0; i < cSections; i++) + { + /* Validate the section. */ + uint32_t uSectRva = pThis->aSecHdrs[i].VirtualAddress; + if (uSectRva < uRva || uSectRva > cbImage || RT_ALIGN_32(uSectRva, cbSectAlign) != uSectRva) + return supHardNtVpSetInfo2(pThis, VERR_SUP_VP_BAD_SECTION_RVA, + "%s: Section %u: Invalid virtual address: %#x (uRva=%#x, cbImage=%#x, cbSectAlign=%#x)", + pImage->pszName, i, uSectRva, uRva, cbImage, cbSectAlign); + uint32_t cbMap = pThis->aSecHdrs[i].Misc.VirtualSize; + if (cbMap > cbImage || uRva + cbMap > cbImage) + return supHardNtVpSetInfo2(pThis, VERR_SUP_VP_BAD_SECTION_VIRTUAL_SIZE, + "%s: Section %u: Invalid virtual size: %#x (uSectRva=%#x, uRva=%#x, cbImage=%#x)", + pImage->pszName, i, cbMap, uSectRva, uRva, cbImage); + uint32_t cbFile = pThis->aSecHdrs[i].SizeOfRawData; + if (cbFile != RT_ALIGN_32(cbFile, cbFileAlign) || cbFile > RT_ALIGN_32(cbMap, cbSectAlign)) + return supHardNtVpSetInfo2(pThis, VERR_SUP_VP_BAD_SECTION_FILE_SIZE, + "%s: Section %u: Invalid file size: %#x (cbMap=%#x, uSectRva=%#x)", + pImage->pszName, i, cbFile, cbMap, uSectRva); + + /* Validate the protection and bits. */ + if (!pImage->fApiSetSchemaOnlySection1 || i == 0) + { + uint32_t fProt; + switch (pThis->aSecHdrs[i].Characteristics & (IMAGE_SCN_MEM_EXECUTE | IMAGE_SCN_MEM_READ | IMAGE_SCN_MEM_WRITE)) + { + case IMAGE_SCN_MEM_READ: + fProt = PAGE_READONLY; + break; + case IMAGE_SCN_MEM_READ | IMAGE_SCN_MEM_WRITE: + fProt = PAGE_READWRITE; + if ( pThis->enmKind != SUPHARDNTVPKIND_VERIFY_ONLY + && pThis->enmKind != SUPHARDNTVPKIND_CHILD_PURIFICATION + && !suplibHardenedMemComp(pThis->aSecHdrs[i].Name, ".mrdata", 8)) /* w8.1, ntdll. Changed by proc init. */ + fProt = PAGE_READONLY; + break; + case IMAGE_SCN_MEM_READ | IMAGE_SCN_MEM_EXECUTE: + fProt = PAGE_EXECUTE_READ; + break; + case IMAGE_SCN_MEM_EXECUTE: + fProt = PAGE_EXECUTE; + break; + case IMAGE_SCN_MEM_EXECUTE | IMAGE_SCN_MEM_READ | IMAGE_SCN_MEM_WRITE: + /* Only the executable is allowed to have this section, + and it's protected after we're done patching. */ + if (!pImage->fDll) + { + if (pThis->enmKind == SUPHARDNTVPKIND_CHILD_PURIFICATION) + fProt = PAGE_EXECUTE_READWRITE; + else + fProt = PAGE_EXECUTE_READ; + break; + } + default: + return supHardNtVpSetInfo2(pThis, VERR_SUP_VP_UNEXPECTED_SECTION_FLAGS, + "%s: Section %u: Unexpected characteristics: %#x (uSectRva=%#x, cbMap=%#x)", + pImage->pszName, i, pThis->aSecHdrs[i].Characteristics, uSectRva, cbMap); + } + + /* The section bits. Child purification verifies all, normal + verification verifies all except where the executable is + concerned (due to opening vboxdrv during early process init). */ + if ( ( (pThis->aSecHdrs[i].Characteristics & (IMAGE_SCN_MEM_EXECUTE | IMAGE_SCN_CNT_CODE)) + && !(pThis->aSecHdrs[i].Characteristics & IMAGE_SCN_MEM_WRITE)) + || (pThis->aSecHdrs[i].Characteristics & (IMAGE_SCN_MEM_READ | IMAGE_SCN_MEM_WRITE)) == IMAGE_SCN_MEM_READ + || (pThis->enmKind == SUPHARDNTVPKIND_VERIFY_ONLY && pImage->fDll) + || pThis->enmKind == SUPHARDNTVPKIND_CHILD_PURIFICATION) + { + rc = VINF_SUCCESS; + if (uRva < uSectRva && !pImage->fApiSetSchemaOnlySection1) /* Any gap worth checking? */ + rc = supHardNtVpFileMemCompareSection(pThis, pImage, uRva, uSectRva - uRva, pbBits + uRva, + i - 1, NULL, 0, fPrevProt); + if (RT_SUCCESS(rc)) + rc = supHardNtVpFileMemCompareSection(pThis, pImage, uSectRva, cbMap, pbBits + uSectRva, + i, aSkipAreas, cSkipAreas, fProt); + if (RT_SUCCESS(rc)) + { + uint32_t cbMapAligned = i + 1 < cSections && !pImage->fApiSetSchemaOnlySection1 + ? RT_ALIGN_32(cbMap, cbSectAlign) : RT_ALIGN_32(cbMap, PAGE_SIZE); + if (cbMapAligned > cbMap) + rc = supHardNtVpFileMemCompareSection(pThis, pImage, uSectRva + cbMap, cbMapAligned - cbMap, + g_abRTZeroPage, i, NULL, 0, fProt); + } + if (RT_FAILURE(rc)) + return rc; + } + + /* The protection (must be checked afterwards!). */ + rc = supHardNtVpCheckSectionProtection(pThis, pImage, uSectRva, RT_ALIGN_32(cbMap, PAGE_SIZE), fProt); + if (RT_FAILURE(rc)) + return rc; + + fPrevProt = fProt; + } + + /* Advance the RVA. */ + uRva = uSectRva + RT_ALIGN_32(cbMap, cbSectAlign); + } + + return VINF_SUCCESS; +} + + +/** + * Verifies the signature of the given image on disk, then checks if the memory + * mapping matches what we verified. + * + * @returns VBox status code. + * @param pThis The process scanning state structure (for the + * two scratch buffers). + * @param pImage The image data collected during the address + * space scan. + * @param hProcess Handle to the process. + * @param hFile Handle to the image file. + */ +static int supHardNtVpVerifyImage(PSUPHNTVPSTATE pThis, PSUPHNTVPIMAGE pImage, HANDLE hProcess) +{ + /* + * Validate the file signature first, then do the memory compare. + */ + int rc; + if ( pImage->pCacheEntry != NULL + && pImage->pCacheEntry->hLdrMod != NIL_RTLDRMOD) + { + rc = supHardNtLdrCacheEntryVerify(pImage->pCacheEntry, pImage->Name.UniStr.Buffer, pThis->pErrInfo); + if (RT_SUCCESS(rc)) + rc = supHardNtVpVerifyImageMemoryCompare(pThis, pImage, hProcess, pThis->pErrInfo); + } + else + rc = supHardNtVpSetInfo2(pThis, VERR_OPEN_FAILED, "pCacheEntry/hLdrMod is NIL! Impossible!"); + return rc; +} + + +/** + * Verifies that there is only one thread in the process. + * + * @returns VBox status code. + * @param hProcess The process. + * @param hThread The thread. + * @param pErrInfo Pointer to error info structure. Optional. + */ +DECLHIDDEN(int) supHardNtVpThread(HANDLE hProcess, HANDLE hThread, PRTERRINFO pErrInfo) +{ + /* + * Use the ThreadAmILastThread request to check that there is only one + * thread in the process. + * Seems this isn't entirely reliable when hThread isn't the current thread? + */ + ULONG cbIgn = 0; + ULONG fAmI = 0; + NTSTATUS rcNt = NtQueryInformationThread(hThread, ThreadAmILastThread, &fAmI, sizeof(fAmI), &cbIgn); + if (!NT_SUCCESS(rcNt)) + return supHardNtVpSetInfo1(pErrInfo, VERR_SUP_VP_NT_QI_THREAD_ERROR, + "NtQueryInformationThread/ThreadAmILastThread -> %#x", rcNt); + if (!fAmI) + return supHardNtVpSetInfo1(pErrInfo, VERR_SUP_VP_THREAD_NOT_ALONE, + "More than one thread in process"); + + /** @todo Would be nice to verify the relation ship between hProcess and hThread + * as well... */ + return VINF_SUCCESS; +} + + +/** + * Verifies that there isn't a debugger attached to the process. + * + * @returns VBox status code. + * @param hProcess The process. + * @param pErrInfo Pointer to error info structure. Optional. + */ +DECLHIDDEN(int) supHardNtVpDebugger(HANDLE hProcess, PRTERRINFO pErrInfo) +{ +#ifndef VBOX_WITHOUT_DEBUGGER_CHECKS + /* + * Use the ProcessDebugPort request to check there is no debugger + * currently attached to the process. + */ + ULONG cbIgn = 0; + uintptr_t uPtr = ~(uintptr_t)0; + NTSTATUS rcNt = NtQueryInformationProcess(hProcess, + ProcessDebugPort, + &uPtr, sizeof(uPtr), &cbIgn); + if (!NT_SUCCESS(rcNt)) + return supHardNtVpSetInfo1(pErrInfo, VERR_SUP_VP_NT_QI_PROCESS_DBG_PORT_ERROR, + "NtQueryInformationProcess/ProcessDebugPort -> %#x", rcNt); + if (uPtr != 0) + return supHardNtVpSetInfo1(pErrInfo, VERR_SUP_VP_DEBUGGED, + "Debugger attached (%#zx)", uPtr); +#endif /* !VBOX_WITHOUT_DEBUGGER_CHECKS */ + return VINF_SUCCESS; +} + + +/** + * Checks whether the path could be containing alternative 8.3 names generated + * by NTFS, FAT, or other similar file systems. + * + * @returns Pointer to the first component that might be an 8.3 name, NULL if + * not 8.3 path. + * @param pwszPath The path to check. + * + * @remarks This is making bad ASSUMPTION wrt to the naming scheme of 8.3 names, + * however, non-tilde 8.3 aliases are probably rare enough to not be + * worth all the extra code necessary to open each path component and + * check if we've got the short name or not. + */ +DECLHIDDEN(PRTUTF16) supHardNtVpIsPossible8dot3Path(PCRTUTF16 pwszPath) +{ + PCRTUTF16 pwszName = pwszPath; + for (;;) + { + RTUTF16 wc = *pwszPath++; + if (wc == '~') + { + /* Could check more here before jumping to conclusions... */ + if (pwszPath - pwszName <= 8+1+3) + return (PRTUTF16)pwszName; + } + else if (wc == '\\' || wc == '/' || wc == ':') + pwszName = pwszPath; + else if (wc == 0) + break; + } + return NULL; +} + + +/** + * Fixes up a path possibly containing one or more alternative 8-dot-3 style + * components. + * + * The path is fixed up in place. Errors are ignored. + * + * @param pUniStr The path to fix up. MaximumLength is the max buffer + * length. + */ +DECLHIDDEN(void) supHardNtVpFix8dot3Path(PUNICODE_STRING pUniStr, bool fPathOnly) +{ + /* + * We could use FileNormalizedNameInformation here and slap the volume device + * path in front of the result, but it's only supported since windows 8.0 + * according to some docs... So we expand all supicious names. + */ + union fix8dot3tmp + { + FILE_BOTH_DIR_INFORMATION Info; + uint8_t abBuffer[sizeof(FILE_BOTH_DIR_INFORMATION) + 2048 * sizeof(WCHAR)]; + } *puBuf = NULL; + + + PRTUTF16 pwszFix = pUniStr->Buffer; + while (*pwszFix) + { + pwszFix = supHardNtVpIsPossible8dot3Path(pwszFix); + if (pwszFix == NULL) + break; + + RTUTF16 wc; + PRTUTF16 pwszFixEnd = pwszFix; + while ((wc = *pwszFixEnd) != '\0' && wc != '\\' && wc != '/') + pwszFixEnd++; + if (wc == '\0' && fPathOnly) + break; + + if (!puBuf) + { + puBuf = (union fix8dot3tmp *)RTMemAlloc(sizeof(*puBuf)); + if (!puBuf) + break; + } + + RTUTF16 const wcSaved = *pwszFix; + *pwszFix = '\0'; /* paranoia. */ + + UNICODE_STRING NtDir; + NtDir.Buffer = pUniStr->Buffer; + NtDir.Length = NtDir.MaximumLength = (USHORT)((pwszFix - pUniStr->Buffer) * sizeof(WCHAR)); + + HANDLE hDir = RTNT_INVALID_HANDLE_VALUE; + IO_STATUS_BLOCK Ios = RTNT_IO_STATUS_BLOCK_INITIALIZER; + + OBJECT_ATTRIBUTES ObjAttr; + InitializeObjectAttributes(&ObjAttr, &NtDir, OBJ_CASE_INSENSITIVE, NULL /*hRootDir*/, NULL /*pSecDesc*/); +#ifdef IN_RING0 + ObjAttr.Attributes |= OBJ_KERNEL_HANDLE; +#endif + + NTSTATUS rcNt = NtCreateFile(&hDir, + FILE_READ_DATA | SYNCHRONIZE, + &ObjAttr, + &Ios, + NULL /* Allocation Size*/, + FILE_ATTRIBUTE_NORMAL, + FILE_SHARE_READ | FILE_SHARE_WRITE | FILE_SHARE_DELETE, + FILE_OPEN, + FILE_DIRECTORY_FILE | FILE_OPEN_FOR_BACKUP_INTENT | FILE_SYNCHRONOUS_IO_NONALERT, + NULL /*EaBuffer*/, + 0 /*EaLength*/); + *pwszFix = wcSaved; + if (NT_SUCCESS(rcNt)) + { + RT_ZERO(*puBuf); + + IO_STATUS_BLOCK Ios = RTNT_IO_STATUS_BLOCK_INITIALIZER; + UNICODE_STRING NtFilterStr; + NtFilterStr.Buffer = pwszFix; + NtFilterStr.Length = (USHORT)((uintptr_t)pwszFixEnd - (uintptr_t)pwszFix); + NtFilterStr.MaximumLength = NtFilterStr.Length; + rcNt = NtQueryDirectoryFile(hDir, + NULL /* Event */, + NULL /* ApcRoutine */, + NULL /* ApcContext */, + &Ios, + puBuf, + sizeof(*puBuf) - sizeof(WCHAR), + FileBothDirectoryInformation, + FALSE /*ReturnSingleEntry*/, + &NtFilterStr, + FALSE /*RestartScan */); + if (NT_SUCCESS(rcNt) && puBuf->Info.NextEntryOffset == 0) /* There shall only be one entry matching... */ + { + uint32_t offName = puBuf->Info.FileNameLength / sizeof(WCHAR); + while (offName > 0 && puBuf->Info.FileName[offName - 1] != '\\' && puBuf->Info.FileName[offName - 1] != '/') + offName--; + uint32_t cwcNameNew = (puBuf->Info.FileNameLength / sizeof(WCHAR)) - offName; + uint32_t cwcNameOld = (uint32_t)(pwszFixEnd - pwszFix); + + if (cwcNameOld == cwcNameNew) + memcpy(pwszFix, &puBuf->Info.FileName[offName], cwcNameNew * sizeof(WCHAR)); + else if ( pUniStr->Length + cwcNameNew * sizeof(WCHAR) - cwcNameOld * sizeof(WCHAR) + sizeof(WCHAR) + <= pUniStr->MaximumLength) + { + size_t cwcLeft = pUniStr->Length - (pwszFixEnd - pUniStr->Buffer) * sizeof(WCHAR) + sizeof(WCHAR); + memmove(&pwszFix[cwcNameNew], pwszFixEnd, cwcLeft * sizeof(WCHAR)); + pUniStr->Length -= (USHORT)(cwcNameOld * sizeof(WCHAR)); + pUniStr->Length += (USHORT)(cwcNameNew * sizeof(WCHAR)); + pwszFixEnd -= cwcNameOld; + pwszFixEnd -= cwcNameNew; + memcpy(pwszFix, &puBuf->Info.FileName[offName], cwcNameNew * sizeof(WCHAR)); + } + /* else: ignore overflow. */ + } + /* else: ignore failure. */ + + NtClose(hDir); + } + + /* Advance */ + pwszFix = pwszFixEnd; + } + + if (puBuf) + RTMemFree(puBuf); +} + + + +/** + * Matches two UNICODE_STRING structures in a case sensitive fashion. + * + * @returns true if equal, false if not. + * @param pUniStr1 The first unicode string. + * @param pUniStr2 The first unicode string. + */ +static bool supHardNtVpAreUniStringsEqual(PCUNICODE_STRING pUniStr1, PCUNICODE_STRING pUniStr2) +{ + if (pUniStr1->Length != pUniStr2->Length) + return false; + return suplibHardenedMemComp(pUniStr1->Buffer, pUniStr2->Buffer, pUniStr1->Length) == 0; +} + + +/** + * Performs a case insensitive comparison of an ASCII and an UTF-16 file name. + * + * @returns true / false + * @param pszName1 The ASCII name. + * @param pwszName2 The UTF-16 name. + */ +static bool supHardNtVpAreNamesEqual(const char *pszName1, PCRTUTF16 pwszName2) +{ + for (;;) + { + char ch1 = *pszName1++; + RTUTF16 wc2 = *pwszName2++; + if (ch1 != wc2) + { + ch1 = RT_C_TO_LOWER(ch1); + wc2 = wc2 < 0x80 ? RT_C_TO_LOWER(wc2) : wc2; + if (ch1 != wc2) + return false; + } + if (!ch1) + return true; + } +} + + +/** + * Records an additional memory region for an image. + * + * May trash pThis->abMemory. + * + * @returns VBox status code. + * @retval VINF_OBJECT_DESTROYED if we've unmapped the image (child + * purification only). + * @param pThis The process scanning state structure. + * @param pImage The new image structure. Only the unicode name + * buffer is valid (it's zero-terminated). + * @param pMemInfo The memory information for the image. + */ +static int supHardNtVpNewImage(PSUPHNTVPSTATE pThis, PSUPHNTVPIMAGE pImage, PMEMORY_BASIC_INFORMATION pMemInfo) +{ + /* + * If the filename or path contains short names, we have to get the long + * path so that we will recognize the DLLs and their location. + */ + PUNICODE_STRING pLongName = &pImage->Name.UniStr; + if (supHardNtVpIsPossible8dot3Path(pLongName->Buffer)) + { + AssertCompile(sizeof(pThis->abMemory) > sizeof(pImage->Name)); + PUNICODE_STRING pTmp = (PUNICODE_STRING)pThis->abMemory; + pTmp->MaximumLength = (USHORT)RT_MIN(_64K - 1, sizeof(pThis->abMemory) - sizeof(*pTmp)) - sizeof(RTUTF16); + pTmp->Length = pImage->Name.UniStr.Length; + pTmp->Buffer = (PRTUTF16)(pTmp + 1); + memcpy(pTmp->Buffer, pLongName->Buffer, pLongName->Length + sizeof(RTUTF16)); + + supHardNtVpFix8dot3Path(pTmp, false /*fPathOnly*/); + Assert(pTmp->Buffer[pTmp->Length / sizeof(RTUTF16)] == '\0'); + + pLongName = pTmp; + } + + /* + * Extract the final component. + */ + RTUTF16 wc; + unsigned cwcDirName = pLongName->Length / sizeof(WCHAR); + PCRTUTF16 pwcDirName = &pLongName->Buffer[cwcDirName]; + PCRTUTF16 pwszFilename = &pLongName->Buffer[cwcDirName]; + while ( cwcDirName > 0 + && (wc = pwszFilename[-1]) != '\\' + && wc != '/' + && wc != ':') + { + pwszFilename--; + cwcDirName--; + } + if (!*pwszFilename) + return supHardNtVpSetInfo2(pThis, VERR_SUP_VP_NO_IMAGE_MAPPING_NAME, + "Empty filename (len=%u) for image at %p.", pLongName->Length, pMemInfo->BaseAddress); + + /* + * Drop trailing slashes from the directory name. + */ + while ( cwcDirName > 0 + && ( pLongName->Buffer[cwcDirName - 1] == '\\' + || pLongName->Buffer[cwcDirName - 1] == '/')) + cwcDirName--; + + /* + * Match it against known DLLs. + */ + pImage->pszName = NULL; + for (uint32_t i = 0; i < RT_ELEMENTS(g_apszSupNtVpAllowedDlls); i++) + if (supHardNtVpAreNamesEqual(g_apszSupNtVpAllowedDlls[i], pwszFilename)) + { + pImage->pszName = g_apszSupNtVpAllowedDlls[i]; + pImage->fDll = true; + +#ifndef VBOX_PERMIT_VISUAL_STUDIO_PROFILING + /* The directory name must match the one we've got for System32. */ + if ( ( cwcDirName * sizeof(WCHAR) != g_System32NtPath.UniStr.Length + || suplibHardenedMemComp(pLongName->Buffer, g_System32NtPath.UniStr.Buffer, cwcDirName * sizeof(WCHAR)) ) +# ifdef VBOX_PERMIT_MORE + && ( pImage->pszName[0] != 'a' + || pImage->pszName[1] != 'c' + || !supHardViIsAppPatchDir(pLongName->Buffer, pLongName->Length / sizeof(WCHAR)) ) +# endif + ) + return supHardNtVpSetInfo2(pThis, VERR_SUP_VP_NON_SYSTEM32_DLL, + "Expected %ls to be loaded from %ls.", + pLongName->Buffer, g_System32NtPath.UniStr.Buffer); +# ifdef VBOX_PERMIT_MORE + if (g_uNtVerCombined < SUP_NT_VER_W70 && i >= VBOX_PERMIT_MORE_FIRST_IDX) + pImage->pszName = NULL; /* hard limit: user32.dll is unwanted prior to w7. */ +# endif + +#endif /* VBOX_PERMIT_VISUAL_STUDIO_PROFILING */ + break; + } + if (!pImage->pszName) + { + /* + * Not a known DLL, is it a known executable? + */ + for (uint32_t i = 0; i < RT_ELEMENTS(g_apszSupNtVpAllowedVmExes); i++) + if (supHardNtVpAreNamesEqual(g_apszSupNtVpAllowedVmExes[i], pwszFilename)) + { + pImage->pszName = g_apszSupNtVpAllowedVmExes[i]; + pImage->fDll = false; + break; + } + } + if (!pImage->pszName) + { + /* + * Unknown image. + * + * If we're cleaning up a child process, we can unmap the offending + * DLL... Might have interesting side effects, or at least interesting + * as in "may you live in interesting times". + */ +#ifdef IN_RING3 + if ( pMemInfo->AllocationBase == pMemInfo->BaseAddress + && pThis->enmKind == SUPHARDNTVPKIND_CHILD_PURIFICATION) + { + SUP_DPRINTF(("supHardNtVpScanVirtualMemory: Unmapping image mem at %p (%p LB %#zx) - '%ls'\n", + pMemInfo->AllocationBase, pMemInfo->BaseAddress, pMemInfo->RegionSize, pwszFilename)); + NTSTATUS rcNt = NtUnmapViewOfSection(pThis->hProcess, pMemInfo->AllocationBase); + if (NT_SUCCESS(rcNt)) + return VINF_OBJECT_DESTROYED; + pThis->cFixes++; + SUP_DPRINTF(("supHardNtVpScanVirtualMemory: NtUnmapViewOfSection(,%p) failed: %#x\n", pMemInfo->AllocationBase, rcNt)); + } +#endif + /* + * Special error message if we can. + */ + if ( pMemInfo->AllocationBase == pMemInfo->BaseAddress + && ( supHardNtVpAreNamesEqual("sysfer.dll", pwszFilename) + || supHardNtVpAreNamesEqual("sysfer32.dll", pwszFilename) + || supHardNtVpAreNamesEqual("sysfer64.dll", pwszFilename) + || supHardNtVpAreNamesEqual("sysfrethunk.dll", pwszFilename)) ) + { + supHardNtVpSetInfo2(pThis, VERR_SUP_VP_SYSFER_DLL, + "Found %ls at %p - This is probably part of Symantec Endpoint Protection. \n" + "You or your admin need to add and exception to the Application and Device Control (ADC) " + "component (or disable it) to prevent ADC from injecting itself into the VirtualBox VM processes. " + "See http://www.symantec.com/connect/articles/creating-application-control-exclusions-symantec-endpoint-protection-121" + , pLongName->Buffer, pMemInfo->BaseAddress); + return pThis->rcResult = VERR_SUP_VP_SYSFER_DLL; /* Try make sure this is what the user sees first! */ + } + return supHardNtVpSetInfo2(pThis, VERR_SUP_VP_NOT_KNOWN_DLL_OR_EXE, + "Unknown image file %ls at %p.", pLongName->Buffer, pMemInfo->BaseAddress); + } + + /* + * Checks for multiple mappings of the same DLL but with different image file paths. + */ + uint32_t i = pThis->cImages; + while (i-- > 1) + if (pImage->pszName == pThis->aImages[i].pszName) + return supHardNtVpSetInfo2(pThis, VERR_SUP_VP_DUPLICATE_DLL_MAPPING, + "Duplicate image entries for %s: %ls and %ls", + pImage->pszName, pImage->Name.UniStr.Buffer, pThis->aImages[i].Name.UniStr.Buffer); + + /* + * Since it's a new image, we expect to be at the start of the mapping now. + */ + if (pMemInfo->AllocationBase != pMemInfo->BaseAddress) + return supHardNtVpSetInfo2(pThis, VERR_SUP_VP_IMAGE_MAPPING_BASE_ERROR, + "Invalid AllocationBase/BaseAddress for %s: %p vs %p.", + pImage->pszName, pMemInfo->AllocationBase, pMemInfo->BaseAddress); + + /* + * Check for size/rva overflow. + */ + if (pMemInfo->RegionSize >= _2G) + return supHardNtVpSetInfo2(pThis, VERR_SUP_VP_TOO_LARGE_REGION, + "Region 0 of image %s is too large: %p.", pImage->pszName, pMemInfo->RegionSize); + + /* + * Fill in details from the memory info. + */ + pImage->uImageBase = (uintptr_t)pMemInfo->AllocationBase; + pImage->cbImage = pMemInfo->RegionSize; + pImage->pCacheEntry= NULL; + pImage->cRegions = 1; + pImage->aRegions[0].uRva = 0; + pImage->aRegions[0].cb = (uint32_t)pMemInfo->RegionSize; + pImage->aRegions[0].fProt = pMemInfo->Protect; + + if (suplibHardenedStrCmp(pImage->pszName, "ntdll.dll") == 0) + pImage->fNtCreateSectionPatch = true; + else if (suplibHardenedStrCmp(pImage->pszName, "apisetschema.dll") == 0) + pImage->fApiSetSchemaOnlySection1 = true; /** @todo Check the ApiSetMap field in the PEB. */ +#ifdef VBOX_PERMIT_MORE + else if (suplibHardenedStrCmp(pImage->pszName, "acres.dll") == 0) + pImage->f32bitResourceDll = true; +#endif + + return VINF_SUCCESS; +} + + +/** + * Records an additional memory region for an image. + * + * @returns VBox status code. + * @param pThis The process scanning state structure. + * @param pImage The image. + * @param pMemInfo The memory information for the region. + */ +static int supHardNtVpAddRegion(PSUPHNTVPSTATE pThis, PSUPHNTVPIMAGE pImage, PMEMORY_BASIC_INFORMATION pMemInfo) +{ + /* + * Make sure the base address matches. + */ + if (pImage->uImageBase != (uintptr_t)pMemInfo->AllocationBase) + return supHardNtVpSetInfo2(pThis, VERR_SUPLIB_NT_PROCESS_UNTRUSTED_3, + "Base address mismatch for %s: have %p, found %p for region %p LB %#zx.", + pImage->pszName, pImage->uImageBase, pMemInfo->AllocationBase, + pMemInfo->BaseAddress, pMemInfo->RegionSize); + + /* + * Check for size and rva overflows. + */ + uintptr_t uRva = (uintptr_t)pMemInfo->BaseAddress - pImage->uImageBase; + if (pMemInfo->RegionSize >= _2G) + return supHardNtVpSetInfo2(pThis, VERR_SUP_VP_TOO_LARGE_REGION, + "Region %u of image %s is too large: %p/%p.", pImage->pszName, pMemInfo->RegionSize, uRva); + if (uRva >= _2G) + return supHardNtVpSetInfo2(pThis, VERR_SUP_VP_TOO_HIGH_REGION_RVA, + "Region %u of image %s is too high: %p/%p.", pImage->pszName, pMemInfo->RegionSize, uRva); + + + /* + * Record the region. + */ + uint32_t iRegion = pImage->cRegions; + if (iRegion + 1 >= RT_ELEMENTS(pImage->aRegions)) + return supHardNtVpSetInfo2(pThis, VERR_SUP_VP_TOO_MANY_IMAGE_REGIONS, + "Too many regions for %s.", pImage->pszName); + pImage->aRegions[iRegion].uRva = (uint32_t)uRva; + pImage->aRegions[iRegion].cb = (uint32_t)pMemInfo->RegionSize; + pImage->aRegions[iRegion].fProt = pMemInfo->Protect; + pImage->cbImage = pImage->aRegions[iRegion].uRva + pImage->aRegions[iRegion].cb; + pImage->cRegions++; + pImage->fApiSetSchemaOnlySection1 = false; + + return VINF_SUCCESS; +} + + +#ifdef IN_RING3 +/** + * Frees (or replaces) executable memory of allocation type private. + * + * @returns True if nothing really bad happen, false if to quit ASAP because we + * killed the process being scanned. + * @param pThis The process scanning state structure. Details + * about images are added to this. + * @param hProcess The process to verify. + * @param pMemInfo The information we've got on this private + * executable memory. + */ +static bool supHardNtVpFreeOrReplacePrivateExecMemory(PSUPHNTVPSTATE pThis, HANDLE hProcess, + MEMORY_BASIC_INFORMATION const *pMemInfo) +{ + NTSTATUS rcNt; + + /* + * Try figure if the entire allocation size. Free/Alloc may fail otherwise. + */ + PVOID pvFree = pMemInfo->AllocationBase; + SIZE_T cbFree = pMemInfo->RegionSize + ((uintptr_t)pMemInfo->BaseAddress - (uintptr_t)pMemInfo->AllocationBase); + for (;;) + { + SIZE_T cbActual = 0; + MEMORY_BASIC_INFORMATION MemInfo2 = { 0, 0, 0, 0, 0, 0, 0 }; + uintptr_t uPtrNext = (uintptr_t)pvFree + cbFree; + rcNt = g_pfnNtQueryVirtualMemory(hProcess, + (void const *)uPtrNext, + MemoryBasicInformation, + &MemInfo2, + sizeof(MemInfo2), + &cbActual); + if (!NT_SUCCESS(rcNt)) + break; + if (pMemInfo->AllocationBase != MemInfo2.AllocationBase) + break; + } + SUP_DPRINTF(("supHardNtVpFreeOrReplacePrivateExecMemory: %s exec mem at %p (LB %#zx, %p LB %#zx)\n", + pThis->fFlags & SUPHARDNTVP_F_EXEC_ALLOC_REPLACE_WITH_RW ? "Replacing" : "Freeing", + pvFree, cbFree, pMemInfo->BaseAddress, pMemInfo->RegionSize)); + + /* + * In the BSOD workaround mode, we need to make a copy of the memory before + * freeing it. + */ + uintptr_t uCopySrc = (uintptr_t)pvFree; + size_t cbCopy = 0; + void *pvCopy = NULL; + if (pThis->fFlags & SUPHARDNTVP_F_EXEC_ALLOC_REPLACE_WITH_RW) + { + cbCopy = cbFree; + pvCopy = RTMemAllocZ(cbCopy); + if (!pvCopy) + { + supHardNtVpSetInfo2(pThis, VERR_SUP_VP_REPLACE_VIRTUAL_MEMORY_FAILED, "RTMemAllocZ(%#zx) failed", cbCopy); + return true; + } + + rcNt = supHardNtVpReadMem(hProcess, uCopySrc, pvCopy, cbCopy); + if (!NT_SUCCESS(rcNt)) + supHardNtVpSetInfo2(pThis, VERR_SUP_VP_REPLACE_VIRTUAL_MEMORY_FAILED, + "Error reading data from original alloc: %#x (%p LB %#zx)", rcNt, uCopySrc, cbCopy, rcNt); + supR3HardenedLogFlush(); + } + + /* + * Free the memory. + */ + for (uint32_t i = 0; i < 10; i++) + { + PVOID pvFreeInOut = pvFree; + SIZE_T cbFreeInOut = 0; + rcNt = NtFreeVirtualMemory(hProcess, &pvFreeInOut, &cbFreeInOut, MEM_RELEASE); + if (NT_SUCCESS(rcNt)) + { + SUP_DPRINTF(("supHardNtVpFreeOrReplacePrivateExecMemory: Free attempt #1 succeeded: %#x [%p/%p LB 0/%#zx]\n", + rcNt, pvFree, pvFreeInOut, cbFreeInOut)); + supR3HardenedLogFlush(); + } + else + { + SUP_DPRINTF(("supHardNtVpFreeOrReplacePrivateExecMemory: Free attempt #1 failed: %#x [%p LB 0]\n", rcNt, pvFree)); + supR3HardenedLogFlush(); + pvFreeInOut = pvFree; + cbFreeInOut = cbFree; + rcNt = NtFreeVirtualMemory(hProcess, &pvFreeInOut, &cbFreeInOut, MEM_RELEASE); + if (NT_SUCCESS(rcNt)) + { + SUP_DPRINTF(("supHardNtVpFreeOrReplacePrivateExecMemory: Free attempt #2 succeeded: %#x [%p/%p LB %#zx/%#zx]\n", + rcNt, pvFree, pvFreeInOut, cbFree, cbFreeInOut)); + supR3HardenedLogFlush(); + } + else + { + SUP_DPRINTF(("supHardNtVpFreeOrReplacePrivateExecMemory: Free attempt #2 failed: %#x [%p LB %#zx]\n", + rcNt, pvFree, cbFree)); + supR3HardenedLogFlush(); + pvFreeInOut = pMemInfo->BaseAddress; + cbFreeInOut = pMemInfo->RegionSize; + rcNt = NtFreeVirtualMemory(hProcess, &pvFreeInOut, &cbFreeInOut, MEM_RELEASE); + if (NT_SUCCESS(rcNt)) + { + pvFree = pMemInfo->BaseAddress; + cbFree = pMemInfo->RegionSize; + SUP_DPRINTF(("supHardNtVpFreeOrReplacePrivateExecMemory: Free attempt #3 succeeded [%p LB %#zx]\n", + pvFree, cbFree)); + supR3HardenedLogFlush(); + } + else + supHardNtVpSetInfo2(pThis, VERR_SUP_VP_FREE_VIRTUAL_MEMORY_FAILED, + "NtFreeVirtualMemory [%p LB %#zx and %p LB %#zx] failed: %#x", + pvFree, cbFree, pMemInfo->BaseAddress, pMemInfo->RegionSize, rcNt); + } + } + + /* + * Query the region again, redo the free operation if there's still memory there. + */ + if (!NT_SUCCESS(rcNt)) + break; + SIZE_T cbActual = 0; + MEMORY_BASIC_INFORMATION MemInfo3 = { 0, 0, 0, 0, 0, 0, 0 }; + NTSTATUS rcNt2 = g_pfnNtQueryVirtualMemory(hProcess, pvFree, MemoryBasicInformation, + &MemInfo3, sizeof(MemInfo3), &cbActual); + if (!NT_SUCCESS(rcNt2)) + break; + SUP_DPRINTF(("supHardNtVpFreeOrReplacePrivateExecMemory: QVM after free %u: [%p]/%p LB %#zx s=%#x ap=%#x rp=%#p\n", + i, MemInfo3.AllocationBase, MemInfo3.BaseAddress, MemInfo3.RegionSize, MemInfo3.State, + MemInfo3.AllocationProtect, MemInfo3.Protect)); + supR3HardenedLogFlush(); + if (MemInfo3.State == MEM_FREE || !(pThis->fFlags & SUPHARDNTVP_F_EXEC_ALLOC_REPLACE_WITH_RW)) + break; + NtYieldExecution(); + SUP_DPRINTF(("supHardNtVpFreeOrReplacePrivateExecMemory: Retrying free...\n")); + supR3HardenedLogFlush(); + } + + /* + * Restore memory as non-executable - Kludge for Trend Micro sakfile.sys + * and Digital Guardian dgmaster.sys BSODs. + */ + if (NT_SUCCESS(rcNt) && (pThis->fFlags & SUPHARDNTVP_F_EXEC_ALLOC_REPLACE_WITH_RW)) + { + PVOID pvAlloc = pvFree; + SIZE_T cbAlloc = cbFree; + rcNt = NtAllocateVirtualMemory(hProcess, &pvAlloc, 0, &cbAlloc, MEM_COMMIT, PAGE_READWRITE); + if (!NT_SUCCESS(rcNt)) + { + supHardNtVpSetInfo2(pThis, VERR_SUP_VP_REPLACE_VIRTUAL_MEMORY_FAILED, + "NtAllocateVirtualMemory (%p LB %#zx) failed with rcNt=%#x allocating " + "replacement memory for working around buggy protection software. " + "See VBoxStartup.log for more details", + pvAlloc, cbFree, rcNt); + supR3HardenedLogFlush(); + NtTerminateProcess(hProcess, VERR_SUP_VP_REPLACE_VIRTUAL_MEMORY_FAILED); + return false; + } + + if ( (uintptr_t)pvFree < (uintptr_t)pvAlloc + || (uintptr_t)pvFree + cbFree > (uintptr_t)pvAlloc + cbFree) + { + supHardNtVpSetInfo2(pThis, VERR_SUP_VP_REPLACE_VIRTUAL_MEMORY_FAILED, + "We wanted NtAllocateVirtualMemory to get us %p LB %#zx, but it returned %p LB %#zx.", + pMemInfo->BaseAddress, pMemInfo->RegionSize, pvFree, cbFree, rcNt); + supR3HardenedLogFlush(); + NtTerminateProcess(hProcess, VERR_SUP_VP_REPLACE_VIRTUAL_MEMORY_FAILED); + return false; + } + + /* + * Copy what we can, considering the 2nd free attempt. + */ + uint8_t *pbDst = (uint8_t *)pvFree; + size_t cbDst = cbFree; + uint8_t *pbSrc = (uint8_t *)pvCopy; + size_t cbSrc = cbCopy; + if ((uintptr_t)pbDst != uCopySrc) + { + if ((uintptr_t)pbDst > uCopySrc) + { + uintptr_t cbAdj = (uintptr_t)pbDst - uCopySrc; + pbSrc += cbAdj; + cbSrc -= cbAdj; + } + else + { + uintptr_t cbAdj = uCopySrc - (uintptr_t)pbDst; + pbDst += cbAdj; + cbDst -= cbAdj; + } + } + if (cbSrc > cbDst) + cbSrc = cbDst; + + SIZE_T cbWritten; + rcNt = NtWriteVirtualMemory(hProcess, pbDst, pbSrc, cbSrc, &cbWritten); + if (NT_SUCCESS(rcNt)) + { + SUP_DPRINTF(("supHardNtVpFreeOrReplacePrivateExecMemory: Restored the exec memory as non-exec.\n")); + supR3HardenedLogFlush(); + } + else + { + supHardNtVpSetInfo2(pThis, VERR_SUP_VP_FREE_VIRTUAL_MEMORY_FAILED, + "NtWriteVirtualMemory (%p LB %#zx) failed: %#x", + pMemInfo->BaseAddress, pMemInfo->RegionSize, rcNt); + supR3HardenedLogFlush(); + NtTerminateProcess(hProcess, VERR_SUP_VP_REPLACE_VIRTUAL_MEMORY_FAILED); + return false; + } + } + if (pvCopy) + RTMemFree(pvCopy); + return true; +} +#endif /* IN_RING3 */ + + +/** + * Scans the virtual memory of the process. + * + * This collects the locations of DLLs and the EXE, and verifies that executable + * memory is only associated with these. May trash pThis->abMemory. + * + * @returns VBox status code. + * @param pThis The process scanning state structure. Details + * about images are added to this. + * @param hProcess The process to verify. + */ +static int supHardNtVpScanVirtualMemory(PSUPHNTVPSTATE pThis, HANDLE hProcess) +{ + SUP_DPRINTF(("supHardNtVpScanVirtualMemory: enmKind=%s\n", + pThis->enmKind == SUPHARDNTVPKIND_VERIFY_ONLY ? "VERIFY_ONLY" : + pThis->enmKind == SUPHARDNTVPKIND_CHILD_PURIFICATION ? "CHILD_PURIFICATION" : "SELF_PURIFICATION")); + + uint32_t cXpExceptions = 0; + uintptr_t cbAdvance = 0; + uintptr_t uPtrWhere = 0; +#ifdef VBOX_PERMIT_VERIFIER_DLL + for (uint32_t i = 0; i < 10240; i++) +#else + for (uint32_t i = 0; i < 1024; i++) +#endif + { + SIZE_T cbActual = 0; + MEMORY_BASIC_INFORMATION MemInfo = { 0, 0, 0, 0, 0, 0, 0 }; + NTSTATUS rcNt = g_pfnNtQueryVirtualMemory(hProcess, + (void const *)uPtrWhere, + MemoryBasicInformation, + &MemInfo, + sizeof(MemInfo), + &cbActual); + if (!NT_SUCCESS(rcNt)) + { + if (rcNt == STATUS_INVALID_PARAMETER) + return pThis->rcResult; + return supHardNtVpSetInfo2(pThis, VERR_SUP_VP_NT_QI_VIRTUAL_MEMORY_ERROR, + "NtQueryVirtualMemory failed for %p: %#x", uPtrWhere, rcNt); + } + + /* + * Record images. + */ + if ( MemInfo.Type == SEC_IMAGE + || MemInfo.Type == SEC_PROTECTED_IMAGE + || MemInfo.Type == (SEC_IMAGE | SEC_PROTECTED_IMAGE)) + { + uint32_t iImg = pThis->cImages; + rcNt = g_pfnNtQueryVirtualMemory(hProcess, + (void const *)uPtrWhere, + MemorySectionName, + &pThis->aImages[iImg].Name, + sizeof(pThis->aImages[iImg].Name) - sizeof(WCHAR), + &cbActual); + if (!NT_SUCCESS(rcNt)) + return supHardNtVpSetInfo2(pThis, VERR_SUP_VP_NT_QI_VIRTUAL_MEMORY_NM_ERROR, + "NtQueryVirtualMemory/MemorySectionName failed for %p: %#x", uPtrWhere, rcNt); + pThis->aImages[iImg].Name.UniStr.Buffer[pThis->aImages[iImg].Name.UniStr.Length / sizeof(WCHAR)] = '\0'; + SUP_DPRINTF((MemInfo.AllocationBase == MemInfo.BaseAddress + ? " *%p-%p %#06x/%#06x %#09x %ls\n" + : " %p-%p %#06x/%#06x %#09x %ls\n", + MemInfo.BaseAddress, (uintptr_t)MemInfo.BaseAddress + MemInfo.RegionSize - 1, MemInfo.Protect, + MemInfo.AllocationProtect, MemInfo.Type, pThis->aImages[iImg].Name.UniStr.Buffer)); + + /* New or existing image? */ + bool fNew = true; + uint32_t iSearch = iImg; + while (iSearch-- > 0) + if (supHardNtVpAreUniStringsEqual(&pThis->aImages[iSearch].Name.UniStr, &pThis->aImages[iImg].Name.UniStr)) + { + int rc = supHardNtVpAddRegion(pThis, &pThis->aImages[iSearch], &MemInfo); + if (RT_FAILURE(rc)) + return rc; + fNew = false; + break; + } + else if (pThis->aImages[iSearch].uImageBase == (uintptr_t)MemInfo.AllocationBase) + return supHardNtVpSetInfo2(pThis, VERR_SUP_VP_NT_MAPPING_NAME_CHANGED, + "Unexpected base address match"); + + if (fNew) + { + int rc = supHardNtVpNewImage(pThis, &pThis->aImages[iImg], &MemInfo); + if (RT_SUCCESS(rc)) + { + if (rc != VINF_OBJECT_DESTROYED) + { + pThis->cImages++; + if (pThis->cImages >= RT_ELEMENTS(pThis->aImages)) + return supHardNtVpSetInfo2(pThis, VERR_SUP_VP_TOO_MANY_DLLS_LOADED, + "Internal error: aImages is full.\n"); + } + } +#ifdef IN_RING3 /* Continue and add more information if unknown DLLs are found. */ + else if (rc != VERR_SUP_VP_NOT_KNOWN_DLL_OR_EXE && rc != VERR_SUP_VP_NON_SYSTEM32_DLL) + return rc; +#else + else + return rc; +#endif + } + } + /* + * XP, W2K3: Ignore the CSRSS read-only region as best we can. + */ + else if ( (MemInfo.Protect & (PAGE_EXECUTE | PAGE_EXECUTE_READ | PAGE_EXECUTE_READWRITE | PAGE_EXECUTE_WRITECOPY)) + == PAGE_EXECUTE_READ + && cXpExceptions == 0 + && (uintptr_t)MemInfo.BaseAddress >= UINT32_C(0x78000000) + /* && MemInfo.BaseAddress == pPeb->ReadOnlySharedMemoryBase */ + && g_uNtVerCombined < SUP_MAKE_NT_VER_SIMPLE(6, 0) ) + { + cXpExceptions++; + SUP_DPRINTF((" %p-%p %#06x/%#06x %#09x XP CSRSS read-only region\n", MemInfo.BaseAddress, + (uintptr_t)MemInfo.BaseAddress - MemInfo.RegionSize - 1, MemInfo.Protect, + MemInfo.AllocationProtect, MemInfo.Type)); + } + /* + * Executable memory? + */ +#ifndef VBOX_PERMIT_VISUAL_STUDIO_PROFILING + else if (MemInfo.Protect & (PAGE_EXECUTE | PAGE_EXECUTE_READ | PAGE_EXECUTE_READWRITE | PAGE_EXECUTE_WRITECOPY)) + { + SUP_DPRINTF((MemInfo.AllocationBase == MemInfo.BaseAddress + ? " *%p-%p %#06x/%#06x %#09x !!\n" + : " %p-%p %#06x/%#06x %#09x !!\n", + MemInfo.BaseAddress, (uintptr_t)MemInfo.BaseAddress - MemInfo.RegionSize - 1, + MemInfo.Protect, MemInfo.AllocationProtect, MemInfo.Type)); +# ifdef IN_RING3 + if (pThis->enmKind == SUPHARDNTVPKIND_CHILD_PURIFICATION) + { + /* + * Free any private executable memory (sysplant.sys allocates executable memory). + */ + if (MemInfo.Type == MEM_PRIVATE) + { + if (!supHardNtVpFreeOrReplacePrivateExecMemory(pThis, hProcess, &MemInfo)) + break; + } + /* + * Unmap mapped memory, failing that, drop exec privileges. + */ + else if (MemInfo.Type == MEM_MAPPED) + { + SUP_DPRINTF(("supHardNtVpScanVirtualMemory: Unmapping exec mem at %p (%p/%p LB %#zx)\n", + uPtrWhere, MemInfo.AllocationBase, MemInfo.BaseAddress, MemInfo.RegionSize)); + rcNt = NtUnmapViewOfSection(hProcess, MemInfo.AllocationBase); + if (!NT_SUCCESS(rcNt)) + { + PVOID pvCopy = MemInfo.BaseAddress; + SIZE_T cbCopy = MemInfo.RegionSize; + NTSTATUS rcNt2 = NtProtectVirtualMemory(hProcess, &pvCopy, &cbCopy, PAGE_NOACCESS, NULL); + if (!NT_SUCCESS(rcNt2)) + rcNt2 = NtProtectVirtualMemory(hProcess, &pvCopy, &cbCopy, PAGE_READONLY, NULL); + if (!NT_SUCCESS(rcNt2)) + supHardNtVpSetInfo2(pThis, VERR_SUP_VP_UNMAP_AND_PROTECT_FAILED, + "NtUnmapViewOfSection (%p/%p LB %#zx) failed: %#x (%#x)", + MemInfo.AllocationBase, MemInfo.BaseAddress, MemInfo.RegionSize, rcNt, rcNt2); + } + } + else + supHardNtVpSetInfo2(pThis, VERR_SUP_VP_UNKOWN_MEM_TYPE, + "Unknown executable memory type %#x at %p/%p LB %#zx", + MemInfo.Type, MemInfo.AllocationBase, MemInfo.BaseAddress, MemInfo.RegionSize); + pThis->cFixes++; + } + else +# endif /* IN_RING3 */ + supHardNtVpSetInfo2(pThis, VERR_SUP_VP_FOUND_EXEC_MEMORY, + "Found executable memory at %p (%p LB %#zx): type=%#x prot=%#x state=%#x aprot=%#x abase=%p", + uPtrWhere, MemInfo.BaseAddress, MemInfo.RegionSize, MemInfo.Type, MemInfo.Protect, + MemInfo.State, MemInfo.AllocationBase, MemInfo.AllocationProtect); + +# ifndef IN_RING3 + if (RT_FAILURE(pThis->rcResult)) + return pThis->rcResult; +# endif + /* Continue add more information about the problematic process. */ + } +#endif /* VBOX_PERMIT_VISUAL_STUDIO_PROFILING */ + else + SUP_DPRINTF((MemInfo.AllocationBase == MemInfo.BaseAddress + ? " *%p-%p %#06x/%#06x %#09x\n" + : " %p-%p %#06x/%#06x %#09x\n", + MemInfo.BaseAddress, (uintptr_t)MemInfo.BaseAddress - MemInfo.RegionSize - 1, + MemInfo.Protect, MemInfo.AllocationProtect, MemInfo.Type)); + + /* + * Advance. + */ + cbAdvance = MemInfo.RegionSize; + if (uPtrWhere + cbAdvance <= uPtrWhere) + return supHardNtVpSetInfo2(pThis, VERR_SUP_VP_EMPTY_REGION_TOO_LARGE, + "Empty region at %p.", uPtrWhere); + uPtrWhere += MemInfo.RegionSize; + } + + return supHardNtVpSetInfo2(pThis, VERR_SUP_VP_TOO_MANY_MEMORY_REGIONS, + "Too many virtual memory regions.\n"); +} + + +/** + * Verifies the loader image, i.e. check cryptographic signatures if present. + * + * @returns VBox status code. + * @param pEntry The loader cache entry. + * @param pwszName The filename to use in error messages. + * @param pErRInfo Where to return extened error information. + */ +DECLHIDDEN(int) supHardNtLdrCacheEntryVerify(PSUPHNTLDRCACHEENTRY pEntry, PCRTUTF16 pwszName, PRTERRINFO pErrInfo) +{ + int rc = VINF_SUCCESS; + if (!pEntry->fVerified) + { + rc = supHardenedWinVerifyImageByLdrMod(pEntry->hLdrMod, pwszName, pEntry->pNtViRdr, + false /*fAvoidWinVerifyTrust*/, NULL /*pfWinVerifyTrust*/, pErrInfo); + pEntry->fVerified = RT_SUCCESS(rc); + } + return rc; +} + + +/** + * Allocates a image bits buffer and calls RTLdrGetBits on them. + * + * An assumption here is that there won't ever be concurrent use of the cache. + * It's currently 104% single threaded, non-reentrant. Thus, we can't reuse the + * pbBits allocation. + * + * @returns VBox status code + * @param pEntry The loader cache entry. + * @param ppbBits Where to return the pointer to the allocation. + * @param uBaseAddress The image base address, see RTLdrGetBits. + * @param pfnGetImport Import getter, see RTLdrGetBits. + * @param pvUser The user argument for @a pfnGetImport. + * @param pErrInfo Where to return extened error information. + */ +DECLHIDDEN(int) supHardNtLdrCacheEntryGetBits(PSUPHNTLDRCACHEENTRY pEntry, uint8_t **ppbBits, + RTLDRADDR uBaseAddress, PFNRTLDRIMPORT pfnGetImport, void *pvUser, + PRTERRINFO pErrInfo) +{ + int rc; + + /* + * First time around we have to allocate memory before we can get the image bits. + */ + if (!pEntry->pbBits) + { + size_t cbBits = RTLdrSize(pEntry->hLdrMod); + if (cbBits >= _1M*32U) + return supHardNtVpSetInfo1(pErrInfo, VERR_SUP_VP_IMAGE_TOO_BIG, "Image %s is too large: %zu bytes (%#zx).", + pEntry->pszName, cbBits, cbBits); + + pEntry->pbBits = (uint8_t *)RTMemAllocZ(cbBits); + if (!pEntry->pbBits) + return supHardNtVpSetInfo1(pErrInfo, VERR_SUP_VP_NO_MEMORY, "Failed to allocate %zu bytes for image %s.", + cbBits, pEntry->pszName); + + pEntry->fValidBits = false; /* paranoia */ + + rc = RTLdrGetBits(pEntry->hLdrMod, pEntry->pbBits, uBaseAddress, pfnGetImport, pvUser); + if (RT_FAILURE(rc)) + return supHardNtVpSetInfo1(pErrInfo, VERR_SUP_VP_NO_MEMORY, "RTLdrGetBits failed on image %s: %Rrc", + pEntry->pszName, rc); + pEntry->uImageBase = uBaseAddress; + pEntry->fValidBits = pfnGetImport == NULL; + + } + /* + * Cache hit? No? + * + * Note! We cannot currently cache image bits for images with imports as we + * don't control the way they're resolved. Fortunately, NTDLL and + * the VM process images all have no imports. + */ + else if ( !pEntry->fValidBits + || pEntry->uImageBase != uBaseAddress + || pfnGetImport) + { + pEntry->fValidBits = false; + + rc = RTLdrGetBits(pEntry->hLdrMod, pEntry->pbBits, uBaseAddress, pfnGetImport, pvUser); + if (RT_FAILURE(rc)) + return supHardNtVpSetInfo1(pErrInfo, VERR_SUP_VP_NO_MEMORY, "RTLdrGetBits failed on image %s: %Rrc", + pEntry->pszName, rc); + pEntry->uImageBase = uBaseAddress; + pEntry->fValidBits = pfnGetImport == NULL; + } + + *ppbBits = pEntry->pbBits; + return VINF_SUCCESS; +} + + +/** + * Frees all resources associated with a cache entry and wipes the members + * clean. + * + * @param pEntry The entry to delete. + */ +static void supHardNTLdrCacheDeleteEntry(PSUPHNTLDRCACHEENTRY pEntry) +{ + if (pEntry->pbBits) + { + RTMemFree(pEntry->pbBits); + pEntry->pbBits = NULL; + } + + if (pEntry->hLdrMod != NIL_RTLDRMOD) + { + RTLdrClose(pEntry->hLdrMod); + pEntry->hLdrMod = NIL_RTLDRMOD; + pEntry->pNtViRdr = NULL; + } + else if (pEntry->pNtViRdr) + { + pEntry->pNtViRdr->Core.pfnDestroy(&pEntry->pNtViRdr->Core); + pEntry->pNtViRdr = NULL; + } + + if (pEntry->hFile) + { + NtClose(pEntry->hFile); + pEntry->hFile = NULL; + } + + pEntry->pszName = NULL; + pEntry->fVerified = false; + pEntry->fValidBits = false; + pEntry->uImageBase = 0; +} + +#ifdef IN_RING3 + +/** + * Flushes the cache. + * + * This is called from one of two points in the hardened main code, first is + * after respawning and the second is when we open the vboxdrv device for + * unrestricted access. + */ +DECLHIDDEN(void) supR3HardenedWinFlushLoaderCache(void) +{ + uint32_t i = g_cSupNtVpLdrCacheEntries; + while (i-- > 0) + supHardNTLdrCacheDeleteEntry(&g_aSupNtVpLdrCacheEntries[i]); + g_cSupNtVpLdrCacheEntries = 0; +} + + +/** + * Searches the cache for a loader image. + * + * @returns Pointer to the cache entry if found, NULL if not. + * @param pszName The name (from g_apszSupNtVpAllowedVmExes or + * g_apszSupNtVpAllowedDlls). + */ +static PSUPHNTLDRCACHEENTRY supHardNtLdrCacheLookupEntry(const char *pszName) +{ + /* + * Since the caller is supplying us a pszName from one of the two tables, + * we can dispense with string compare and simply compare string pointers. + */ + uint32_t i = g_cSupNtVpLdrCacheEntries; + while (i-- > 0) + if (g_aSupNtVpLdrCacheEntries[i].pszName == pszName) + return &g_aSupNtVpLdrCacheEntries[i]; + return NULL; +} + +#endif /* IN_RING3 */ + +static int supHardNtLdrCacheNewEntry(PSUPHNTLDRCACHEENTRY pEntry, const char *pszName, PUNICODE_STRING pUniStrPath, + bool fDll, bool f32bitResourceDll, PRTERRINFO pErrInfo) +{ + /* + * Open the image file. + */ + HANDLE hFile = RTNT_INVALID_HANDLE_VALUE; + IO_STATUS_BLOCK Ios = RTNT_IO_STATUS_BLOCK_INITIALIZER; + + OBJECT_ATTRIBUTES ObjAttr; + InitializeObjectAttributes(&ObjAttr, pUniStrPath, OBJ_CASE_INSENSITIVE, NULL /*hRootDir*/, NULL /*pSecDesc*/); +#ifdef IN_RING0 + ObjAttr.Attributes |= OBJ_KERNEL_HANDLE; +#endif + + NTSTATUS rcNt = NtCreateFile(&hFile, + GENERIC_READ | SYNCHRONIZE, + &ObjAttr, + &Ios, + NULL /* Allocation Size*/, + FILE_ATTRIBUTE_NORMAL, + FILE_SHARE_READ, + FILE_OPEN, + FILE_NON_DIRECTORY_FILE | FILE_SYNCHRONOUS_IO_NONALERT, + NULL /*EaBuffer*/, + 0 /*EaLength*/); + if (NT_SUCCESS(rcNt)) + rcNt = Ios.Status; + if (!NT_SUCCESS(rcNt)) + return supHardNtVpSetInfo1(pErrInfo, VERR_SUP_VP_IMAGE_FILE_OPEN_ERROR, + "Error opening image for scanning: %#x (name %ls)", rcNt, pUniStrPath->Buffer); + + /* + * Figure out validation flags we'll be using and create the reader + * for this image. + */ + uint32_t fFlags = fDll + ? SUPHNTVI_F_TRUSTED_INSTALLER_OWNER | SUPHNTVI_F_ALLOW_CAT_FILE_VERIFICATION + : SUPHNTVI_F_REQUIRE_BUILD_CERT; + if (f32bitResourceDll) + fFlags |= SUPHNTVI_F_IGNORE_ARCHITECTURE; + + PSUPHNTVIRDR pNtViRdr; + int rc = supHardNtViRdrCreate(hFile, pUniStrPath->Buffer, fFlags, &pNtViRdr); + if (RT_FAILURE(rc)) + { + NtClose(hFile); + return rc; + } + + /* + * Finally, open the image with the loader + */ + RTLDRMOD hLdrMod; + RTLDRARCH enmArch = fFlags & SUPHNTVI_F_RC_IMAGE ? RTLDRARCH_X86_32 : RTLDRARCH_HOST; + if (fFlags & SUPHNTVI_F_IGNORE_ARCHITECTURE) + enmArch = RTLDRARCH_WHATEVER; + rc = RTLdrOpenWithReader(&pNtViRdr->Core, RTLDR_O_FOR_VALIDATION, enmArch, &hLdrMod, pErrInfo); + if (RT_FAILURE(rc)) + return supHardNtVpSetInfo1(pErrInfo, rc, "RTLdrOpenWithReader failed: %Rrc (Image='%ls').", + rc, pUniStrPath->Buffer); + + /* + * Fill in the cache entry. + */ + pEntry->pszName = pszName; + pEntry->hLdrMod = hLdrMod; + pEntry->pNtViRdr = pNtViRdr; + pEntry->hFile = hFile; + pEntry->pbBits = NULL; + pEntry->fVerified = false; + pEntry->fValidBits = false; + pEntry->uImageBase = ~(uintptr_t)0; + +#ifdef IN_SUP_HARDENED_R3 + /* + * Log the image timestamp when in the hardened exe. + */ + uint64_t uTimestamp = 0; + rc = RTLdrQueryProp(hLdrMod, RTLDRPROP_TIMESTAMP_SECONDS, &uTimestamp, sizeof(uint64_t)); + SUP_DPRINTF(("%s: timestamp %#llx (rc=%Rrc)\n", pszName, uTimestamp, rc)); +#endif + + return VINF_SUCCESS; +} + +#ifdef IN_RING3 +/** + * Opens a loader cache entry. + * + * Currently this is only used by the import code for getting NTDLL. + * + * @returns VBox status code. + * @param pszName The DLL name. Must be one from the + * g_apszSupNtVpAllowedDlls array. + * @param ppEntry Where to return the entry we've opened/found. + */ +DECLHIDDEN(int) supHardNtLdrCacheOpen(const char *pszName, PSUPHNTLDRCACHEENTRY *ppEntry) +{ + /* + * Locate the dll. + */ + uint32_t i = 0; + while ( i < RT_ELEMENTS(g_apszSupNtVpAllowedDlls) + && strcmp(pszName, g_apszSupNtVpAllowedDlls[i])) + i++; + if (i >= RT_ELEMENTS(g_apszSupNtVpAllowedDlls)) + return VERR_FILE_NOT_FOUND; + pszName = g_apszSupNtVpAllowedDlls[i]; + + /* + * Try the cache. + */ + *ppEntry = supHardNtLdrCacheLookupEntry(pszName); + if (*ppEntry) + return VINF_SUCCESS; + + /* + * Not in the cache, so open it. + * Note! We cannot assume that g_System32NtPath has been initialized at this point. + */ + if (g_cSupNtVpLdrCacheEntries >= RT_ELEMENTS(g_aSupNtVpLdrCacheEntries)) + return VERR_INTERNAL_ERROR_3; + + static WCHAR s_wszSystem32[] = L"\\SystemRoot\\System32\\"; + WCHAR wszPath[64]; + memcpy(wszPath, s_wszSystem32, sizeof(s_wszSystem32)); + RTUtf16CatAscii(wszPath, sizeof(wszPath), pszName); + + UNICODE_STRING UniStr; + UniStr.Buffer = wszPath; + UniStr.Length = (USHORT)(RTUtf16Len(wszPath) * sizeof(WCHAR)); + UniStr.MaximumLength = UniStr.Length + sizeof(WCHAR); + + int rc = supHardNtLdrCacheNewEntry(&g_aSupNtVpLdrCacheEntries[g_cSupNtVpLdrCacheEntries], pszName, &UniStr, + true /*fDll*/, false /*f32bitResourceDll*/, NULL /*pErrInfo*/); + if (RT_SUCCESS(rc)) + { + *ppEntry = &g_aSupNtVpLdrCacheEntries[g_cSupNtVpLdrCacheEntries]; + g_cSupNtVpLdrCacheEntries++; + return VINF_SUCCESS; + } + return rc; +} +#endif /* IN_RING3 */ + + +/** + * Opens all the images with the IPRT loader, setting both, hFile, pNtViRdr and + * hLdrMod for each image. + * + * @returns VBox status code. + * @param pThis The process scanning state structure. + */ +static int supHardNtVpOpenImages(PSUPHNTVPSTATE pThis) +{ + unsigned i = pThis->cImages; + while (i-- > 0) + { + PSUPHNTVPIMAGE pImage = &pThis->aImages[i]; + +#ifdef IN_RING3 + /* + * Try the cache first. + */ + pImage->pCacheEntry = supHardNtLdrCacheLookupEntry(pImage->pszName); + if (pImage->pCacheEntry) + continue; + + /* + * Not in the cache, so load it into the cache. + */ + if (g_cSupNtVpLdrCacheEntries >= RT_ELEMENTS(g_aSupNtVpLdrCacheEntries)) + return supHardNtVpSetInfo2(pThis, VERR_INTERNAL_ERROR_3, "Loader cache overflow."); + pImage->pCacheEntry = &g_aSupNtVpLdrCacheEntries[g_cSupNtVpLdrCacheEntries]; +#else + /* + * In ring-0 we don't have a cache at the moment (resource reasons), so + * we have a static cache entry in each image structure that we use instead. + */ + pImage->pCacheEntry = &pImage->CacheEntry; +#endif + + int rc = supHardNtLdrCacheNewEntry(pImage->pCacheEntry, pImage->pszName, &pImage->Name.UniStr, + pImage->fDll, pImage->f32bitResourceDll, pThis->pErrInfo); + if (RT_FAILURE(rc)) + return rc; +#ifdef IN_RING3 + g_cSupNtVpLdrCacheEntries++; +#endif + } + + return VINF_SUCCESS; +} + + +/** + * Check the integrity of the executable of the process. + * + * @returns VBox status code. + * @param pThis The process scanning state structure. Details + * about images are added to this. + * @param hProcess The process to verify. + */ +static int supHardNtVpCheckExe(PSUPHNTVPSTATE pThis, HANDLE hProcess) +{ + /* + * Make sure there is exactly one executable image. + */ + unsigned cExecs = 0; + unsigned iExe = ~0U; + unsigned i = pThis->cImages; + while (i-- > 0) + { + if (!pThis->aImages[i].fDll) + { + cExecs++; + iExe = i; + } + } + if (cExecs == 0) + return supHardNtVpSetInfo2(pThis, VERR_SUP_VP_NO_FOUND_NO_EXE_MAPPING, + "No executable mapping found in the virtual address space."); + if (cExecs != 1) + return supHardNtVpSetInfo2(pThis, VERR_SUP_VP_FOUND_MORE_THAN_ONE_EXE_MAPPING, + "Found more than one executable mapping in the virtual address space."); + PSUPHNTVPIMAGE pImage = &pThis->aImages[iExe]; + + /* + * Check that it matches the executable image of the process. + */ + int rc; + ULONG cbUniStr = sizeof(UNICODE_STRING) + RTPATH_MAX * sizeof(RTUTF16); + PUNICODE_STRING pUniStr = (PUNICODE_STRING)RTMemAllocZ(cbUniStr); + if (!pUniStr) + return supHardNtVpSetInfo2(pThis, VERR_SUP_VP_NO_MEMORY, + "Error allocating %zu bytes for process name.", cbUniStr); + ULONG cbIgn = 0; + NTSTATUS rcNt = NtQueryInformationProcess(hProcess, ProcessImageFileName, pUniStr, cbUniStr - sizeof(WCHAR), &cbIgn); + if (NT_SUCCESS(rcNt)) + { + if (supHardNtVpAreUniStringsEqual(pUniStr, &pImage->Name.UniStr)) + rc = VINF_SUCCESS; + else + { + pUniStr->Buffer[pUniStr->Length / sizeof(WCHAR)] = '\0'; + rc = supHardNtVpSetInfo2(pThis, VERR_SUP_VP_EXE_VS_PROC_NAME_MISMATCH, + "Process image name does not match the exectuable we found: %ls vs %ls.", + pUniStr->Buffer, pImage->Name.UniStr.Buffer); + } + } + else + rc = supHardNtVpSetInfo2(pThis, VERR_SUP_VP_NT_QI_PROCESS_NM_ERROR, + "NtQueryInformationProcess/ProcessImageFileName failed: %#x", rcNt); + RTMemFree(pUniStr); + if (RT_FAILURE(rc)) + return rc; + + /* + * Validate the signing of the executable image. + * This will load the fDllCharecteristics and fImageCharecteristics members we use below. + */ + rc = supHardNtVpVerifyImage(pThis, pImage, hProcess); + if (RT_FAILURE(rc)) + return rc; + + /* + * Check linking requirements. + * This query is only available using the current process pseudo handle on + * older windows versions. The cut-off seems to be Vista. + */ + SECTION_IMAGE_INFORMATION ImageInfo; + rcNt = NtQueryInformationProcess(hProcess, ProcessImageInformation, &ImageInfo, sizeof(ImageInfo), NULL); + if (!NT_SUCCESS(rcNt)) + { + if ( rcNt == STATUS_INVALID_PARAMETER + && g_uNtVerCombined < SUP_NT_VER_VISTA + && hProcess != NtCurrentProcess() ) + return VINF_SUCCESS; + return supHardNtVpSetInfo2(pThis, VERR_SUP_VP_NT_QI_PROCESS_IMG_INFO_ERROR, + "NtQueryInformationProcess/ProcessImageInformation failed: %#x hProcess=%#x", rcNt, hProcess); + } + if ( !(ImageInfo.DllCharacteristics & IMAGE_DLLCHARACTERISTICS_FORCE_INTEGRITY)) + return supHardNtVpSetInfo2(pThis, VERR_SUP_VP_EXE_MISSING_FORCE_INTEGRITY, + "EXE DllCharacteristics=%#x, expected IMAGE_DLLCHARACTERISTICS_FORCE_INTEGRITY to be set.", + ImageInfo.DllCharacteristics); + if (!(ImageInfo.DllCharacteristics & IMAGE_DLLCHARACTERISTICS_DYNAMIC_BASE)) + return supHardNtVpSetInfo2(pThis, VERR_SUP_VP_EXE_MISSING_DYNAMIC_BASE, + "EXE DllCharacteristics=%#x, expected IMAGE_DLLCHARACTERISTICS_DYNAMIC_BASE to be set.", + ImageInfo.DllCharacteristics); + if (!(ImageInfo.DllCharacteristics & IMAGE_DLLCHARACTERISTICS_NX_COMPAT)) + return supHardNtVpSetInfo2(pThis, VERR_SUP_VP_EXE_MISSING_NX_COMPAT, + "EXE DllCharacteristics=%#x, expected IMAGE_DLLCHARACTERISTICS_NX_COMPAT to be set.", + ImageInfo.DllCharacteristics); + + if (pImage->fDllCharecteristics != ImageInfo.DllCharacteristics) + return supHardNtVpSetInfo2(pThis, VERR_SUP_VP_DLL_CHARECTERISTICS_MISMATCH, + "EXE Info.DllCharacteristics=%#x fDllCharecteristics=%#x.", + ImageInfo.DllCharacteristics, pImage->fDllCharecteristics); + + if (pImage->fImageCharecteristics != ImageInfo.ImageCharacteristics) + return supHardNtVpSetInfo2(pThis, VERR_SUP_VP_DLL_CHARECTERISTICS_MISMATCH, + "EXE Info.ImageCharacteristics=%#x fImageCharecteristics=%#x.", + ImageInfo.ImageCharacteristics, pImage->fImageCharecteristics); + + return VINF_SUCCESS; +} + + +/** + * Check the integrity of the DLLs found in the process. + * + * @returns VBox status code. + * @param pThis The process scanning state structure. Details + * about images are added to this. + * @param hProcess The process to verify. + */ +static int supHardNtVpCheckDlls(PSUPHNTVPSTATE pThis, HANDLE hProcess) +{ + /* + * Check for duplicate entries (paranoia). + */ + uint32_t i = pThis->cImages; + while (i-- > 1) + { + const char *pszName = pThis->aImages[i].pszName; + uint32_t j = i; + while (j-- > 0) + if (pThis->aImages[j].pszName == pszName) + return supHardNtVpSetInfo2(pThis, VERR_SUP_VP_DUPLICATE_DLL_MAPPING, + "Duplicate image entries for %s: %ls and %ls", + pszName, pThis->aImages[i].Name.UniStr.Buffer, pThis->aImages[j].Name.UniStr.Buffer); + } + + /* + * Check that both ntdll and kernel32 are present. + * ASSUMES the entries in g_apszSupNtVpAllowedDlls are all lower case. + */ + uint32_t iNtDll = UINT32_MAX; + uint32_t iKernel32 = UINT32_MAX; + i = pThis->cImages; + while (i-- > 0) + if (suplibHardenedStrCmp(pThis->aImages[i].pszName, "ntdll.dll") == 0) + iNtDll = i; + else if (suplibHardenedStrCmp(pThis->aImages[i].pszName, "kernel32.dll") == 0) + iKernel32 = i; + if (iNtDll == UINT32_MAX) + return supHardNtVpSetInfo2(pThis, VERR_SUP_VP_NO_NTDLL_MAPPING, + "The process has no NTDLL.DLL."); + if (iKernel32 == UINT32_MAX && pThis->enmKind == SUPHARDNTVPKIND_SELF_PURIFICATION) + return supHardNtVpSetInfo2(pThis, VERR_SUP_VP_NO_KERNEL32_MAPPING, + "The process has no KERNEL32.DLL."); + else if (iKernel32 != UINT32_MAX && pThis->enmKind == SUPHARDNTVPKIND_CHILD_PURIFICATION) + return supHardNtVpSetInfo2(pThis, VERR_SUP_VP_KERNEL32_ALREADY_MAPPED, + "The process already has KERNEL32.DLL loaded."); + + /* + * Verify that the DLLs are correctly signed (by MS). + */ + i = pThis->cImages; + while (i-- > 0) + { + int rc = supHardNtVpVerifyImage(pThis, &pThis->aImages[i], hProcess); + if (RT_FAILURE(rc)) + return rc; + } + + return VINF_SUCCESS; +} + + +/** + * Verifies the given process. + * + * The following requirements are checked: + * - The process only has one thread, the calling thread. + * - The process has no debugger attached. + * - The executable image of the process is verified to be signed with + * certificate known to this code at build time. + * - The executable image is one of a predefined set. + * - The process has only a very limited set of system DLLs loaded. + * - The system DLLs signatures check out fine. + * - The only executable memory in the process belongs to the system DLLs and + * the executable image. + * + * @returns VBox status code. + * @param hProcess The process to verify. + * @param hThread A thread in the process (the caller). + * @param enmKind The kind of process verification to perform. + * @param fFlags Valid combination of SUPHARDNTVP_F_XXX flags. + * @param pErrInfo Pointer to error info structure. Optional. + * @param pcFixes Where to return the number of fixes made during + * purification. Optional. + */ +DECLHIDDEN(int) supHardenedWinVerifyProcess(HANDLE hProcess, HANDLE hThread, SUPHARDNTVPKIND enmKind, uint32_t fFlags, + uint32_t *pcFixes, PRTERRINFO pErrInfo) +{ + if (pcFixes) + *pcFixes = 0; + + /* + * Some basic checks regarding threads and debuggers. We don't need + * allocate any state memory for these. + */ + int rc = VINF_SUCCESS; + if (enmKind != SUPHARDNTVPKIND_CHILD_PURIFICATION) + rc = supHardNtVpThread(hProcess, hThread, pErrInfo); + if (RT_SUCCESS(rc)) + rc = supHardNtVpDebugger(hProcess, pErrInfo); + if (RT_SUCCESS(rc)) + { + /* + * Allocate and initialize memory for the state. + */ + PSUPHNTVPSTATE pThis = (PSUPHNTVPSTATE)RTMemAllocZ(sizeof(*pThis)); + if (pThis) + { + pThis->enmKind = enmKind; + pThis->fFlags = fFlags; + pThis->rcResult = VINF_SUCCESS; + pThis->hProcess = hProcess; + pThis->pErrInfo = pErrInfo; + + /* + * Perform the verification. + */ + rc = supHardNtVpScanVirtualMemory(pThis, hProcess); + if (RT_SUCCESS(rc)) + rc = supHardNtVpOpenImages(pThis); + if (RT_SUCCESS(rc)) + rc = supHardNtVpCheckExe(pThis, hProcess); + if (RT_SUCCESS(rc)) + rc = supHardNtVpCheckDlls(pThis, hProcess); + + if (pcFixes) + *pcFixes = pThis->cFixes; + + /* + * Clean up the state. + */ +#ifdef IN_RING0 + for (uint32_t i = 0; i < pThis->cImages; i++) + supHardNTLdrCacheDeleteEntry(&pThis->aImages[i].CacheEntry); +#endif + RTMemFree(pThis); + } + else + rc = supHardNtVpSetInfo1(pErrInfo, VERR_SUP_VP_NO_MEMORY_STATE, + "Failed to allocate %zu bytes for state structures.", sizeof(*pThis)); + } + return rc; +} + diff -Nru virtualbox-4.1.12-dfsg/src/VBox/HostDrivers/Support/win/SUPHardenedVerify-win.h virtualbox-4.1.44-dfsg/src/VBox/HostDrivers/Support/win/SUPHardenedVerify-win.h --- virtualbox-4.1.12-dfsg/src/VBox/HostDrivers/Support/win/SUPHardenedVerify-win.h 1970-01-01 00:00:00.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/HostDrivers/Support/win/SUPHardenedVerify-win.h 2015-11-11 15:08:41.000000000 +0000 @@ -0,0 +1,279 @@ +/* $Id: SUPHardenedVerify-win.h $ */ +/** @file + * VirtualBox Support Library/Driver - Hardened Verification, Windows. + */ + +/* + * Copyright (C) 2006-2014 Oracle Corporation + * + * This file is part of VirtualBox Open Source Edition (OSE), as + * available from http://www.virtualbox.org. This file is free software; + * you can redistribute it and/or modify it under the terms of the GNU + * General Public License (GPL) as published by the Free Software + * Foundation, in version 2 as it comes in the "COPYING" file of the + * VirtualBox OSE distribution. VirtualBox OSE is distributed in the + * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind. + * + * The contents of this file may alternatively be used under the terms + * of the Common Development and Distribution License Version 1.0 + * (CDDL) only, as it comes in the "COPYING.CDDL" file of the + * VirtualBox OSE distribution, in which case the provisions of the + * CDDL are applicable instead of those of the GPL. + * + * You may elect to license modified versions of this file under the + * terms and conditions of either the GPL or the CDDL or both. + */ + +#ifndef ___win_SUPHardenedVerify_win_h +#define ___win_SUPHardenedVerify_win_h + +#include +#include +#ifndef SUP_CERTIFICATES_ONLY +# ifdef RT_OS_WINDOWS +# include +# endif +#endif + + +RT_C_DECLS_BEGIN + +#ifndef SUP_CERTIFICATES_ONLY +# ifdef RT_OS_WINDOWS +DECLHIDDEN(int) supHardenedWinInitImageVerifier(PRTERRINFO pErrInfo); +DECLHIDDEN(void) supHardenedWinTermImageVerifier(void); +DECLHIDDEN(void) supR3HardenedWinVerifyCacheScheduleImports(RTLDRMOD hLdrMod, PCRTUTF16 pwszName); +DECLHIDDEN(void) supR3HardenedWinVerifyCachePreload(PCRTUTF16 pwszName); + + +typedef enum SUPHARDNTVPKIND +{ + SUPHARDNTVPKIND_VERIFY_ONLY = 1, + SUPHARDNTVPKIND_CHILD_PURIFICATION, + SUPHARDNTVPKIND_SELF_PURIFICATION, + SUPHARDNTVPKIND_32BIT_HACK = 0x7fffffff +} SUPHARDNTVPKIND; +/** @name SUPHARDNTVP_F_XXX - Flags for supHardenedWinVerifyProcess + * @{ */ +/** Replace unwanted executable memory allocations with a new one that's filled + * with a safe read-write copy (default is just to free it). + * + * This is one way we attempt to work around buggy protection software that + * either result in host BSOD or VBox application malfunction. Here the current + * shit list: + * - Trend Micro's data protection software includes a buggy driver called + * sakfile.sys that has been observed crashing accessing user memory that we + * probably freed. I'd love to report this to Trend Micro, but unfortunately + * they doesn't advertise (or have?) an email address for reporting security + * vulnerabilities in the their software. Having wasted time looking and not + * very sorry for having to disclosing the bug here. + * - Maybe one more. + */ +#define SUPHARDNTVP_F_EXEC_ALLOC_REPLACE_WITH_RW RT_BIT_32(0) +/** @} */ +DECLHIDDEN(int) supHardenedWinVerifyProcess(HANDLE hProcess, HANDLE hThread, SUPHARDNTVPKIND enmKind, uint32_t fFlags, + uint32_t *pcFixes, PRTERRINFO pErrInfo); +DECLHIDDEN(int) supHardNtVpThread(HANDLE hProcess, HANDLE hThread, PRTERRINFO pErrInfo); +DECLHIDDEN(int) supHardNtVpDebugger(HANDLE hProcess, PRTERRINFO pErrInfo); +DECLHIDDEN(PRTUTF16) supHardNtVpIsPossible8dot3Path(PCRTUTF16 pwszPath); +DECLHIDDEN(void) supHardNtVpFix8dot3Path(PUNICODE_STRING pUniStr, bool fPathOnly); + +DECLHIDDEN(bool) supHardViUtf16PathIsEqualEx(PCRTUTF16 pawcLeft, size_t cwcLeft, const char *pszRight); +DECLHIDDEN(bool) supHardViUniStrPathStartsWithUniStr(UNICODE_STRING const *pUniStrLeft, + UNICODE_STRING const *pUniStrRight, bool fCheckSlash); +DECLHIDDEN(bool) supHardViUtf16PathStartsWithEx(PCRTUTF16 pwszLeft, uint32_t cwcLeft, + PCRTUTF16 pwszRight, uint32_t cwcRight, bool fCheckSlash); +DECLHIDDEN(bool) supHardViIsAppPatchDir(PCRTUTF16 pwszPath, uint32_t cwcName); + + +/** + * SUP image verifier loader reader instance. + */ +typedef struct SUPHNTVIRDR +{ + /** The core reader structure. */ + RTLDRREADER Core; + /** The file handle. */ + HANDLE hFile; + /** Handle to event sempahore in case we're force to deal with asynchronous + * I/O. */ + HANDLE hEvent; + /** Current file offset. */ + RTFOFF off; + /** The file size. */ + RTFOFF cbFile; + /** Flags for the verification callback, SUPHNTVI_F_XXX. */ + uint32_t fFlags; + /** The executable timstamp in second since unix epoch. */ + uint64_t uTimestamp; + /** Log name. */ + char szFilename[1]; +} SUPHNTVIRDR; +/** Pointer to an SUP image verifier loader reader instance. */ +typedef SUPHNTVIRDR *PSUPHNTVIRDR; +DECLHIDDEN(int) supHardNtViRdrCreate(HANDLE hFile, PCRTUTF16 pwszName, uint32_t fFlags, PSUPHNTVIRDR *ppNtViRdr); +DECLHIDDEN(bool) supHardenedWinIsWinVerifyTrustCallable(void); +DECLHIDDEN(int) supHardenedWinVerifyImageTrust(HANDLE hFile, PCRTUTF16 pwszName, uint32_t fFlags, int rc, + bool *pfWinVerifyTrust, PRTERRINFO pErrInfo); +DECLHIDDEN(int) supHardenedWinVerifyImageByHandle(HANDLE hFile, PCRTUTF16 pwszName, uint32_t fFlags, bool fAvoidWinVerifyTrust, + bool *pfWinVerifyTrust, PRTERRINFO pErrInfo); +DECLHIDDEN(int) supHardenedWinVerifyImageByHandleNoName(HANDLE hFile, uint32_t fFlags, PRTERRINFO pErrInfo); +DECLHIDDEN(int) supHardenedWinVerifyImageByLdrMod(RTLDRMOD hLdrMod, PCRTUTF16 pwszName, PSUPHNTVIRDR pNtViRdr, + bool fAvoidWinVerifyTrust, bool *pfWinVerifyTrust, PRTERRINFO pErrInfo); +/** @name SUPHNTVI_F_XXX - Flags for supHardenedWinVerifyImageByHandle. + * @{ */ +/** The signing certificate must be the same as the one the VirtualBox build + * was signed with. */ +# define SUPHNTVI_F_REQUIRE_BUILD_CERT RT_BIT(0) +/** Require kernel code signing level. */ +# define SUPHNTVI_F_REQUIRE_KERNEL_CODE_SIGNING RT_BIT(1) +/** Require the image to force the memory mapper to do signature checking. */ +# define SUPHNTVI_F_REQUIRE_SIGNATURE_ENFORCEMENT RT_BIT(2) +/** Whether to allow image verification by catalog file. */ +# define SUPHNTVI_F_ALLOW_CAT_FILE_VERIFICATION RT_BIT(3) +/** The file owner must be TrustedInstaller on Vista+. */ +# define SUPHNTVI_F_TRUSTED_INSTALLER_OWNER RT_BIT(4) +/** Ignore the image architecture (otherwise it must match the verification + * code). Used with resource images and such. */ +# define SUPHNTVI_F_IGNORE_ARCHITECTURE RT_BIT(30) +/** Raw-mode context image, always 32-bit. */ +# define SUPHNTVI_F_RC_IMAGE RT_BIT(31) +/** @} */ + +/** + * Loader cache entry. + * + * This is for avoiding loading and signature checking a file multiple times, + * due to multiple passes thru the process validation code (and syscall import + * code of NTDLL). + */ +typedef struct SUPHNTLDRCACHEENTRY +{ + /** The file name (from g_apszSupNtVpAllowedDlls or + * g_apszSupNtVpAllowedVmExes). */ + const char *pszName; + /** Load module associated with the image during content verfication. */ + RTLDRMOD hLdrMod; + /** The file reader. */ + PSUPHNTVIRDR pNtViRdr; + /** The module file handle, if we've opened it. + * (pNtviRdr does not close the file handle on destruction.) */ + HANDLE hFile; + /** Bits buffer. */ + uint8_t *pbBits; + /** Set if verified. */ + bool fVerified; + /** Whether we've got valid cacheable image bit.s */ + bool fValidBits; + /** The image base address. */ + uintptr_t uImageBase; +} SUPHNTLDRCACHEENTRY; +/** Pointer to a loader cache entry. */ +typedef SUPHNTLDRCACHEENTRY *PSUPHNTLDRCACHEENTRY; +DECLHIDDEN(int) supHardNtLdrCacheOpen(const char *pszName, PSUPHNTLDRCACHEENTRY *ppEntry); +DECLHIDDEN(int) supHardNtLdrCacheEntryVerify(PSUPHNTLDRCACHEENTRY pEntry, PCRTUTF16 pwszName, PRTERRINFO pErrInfo); +DECLHIDDEN(int) supHardNtLdrCacheEntryGetBits(PSUPHNTLDRCACHEENTRY pEntry, uint8_t **ppbBits, RTLDRADDR uBaseAddress, + PFNRTLDRIMPORT pfnGetImport, void *pvUser, PRTERRINFO pErrInfo); + + +/** Which directory under the system root to get. */ +typedef enum SUPHARDNTSYSROOTDIR +{ + kSupHardNtSysRootDir_System32 = 0, + kSupHardNtSysRootDir_WinSxS, +} SUPHARDNTSYSROOTDIR; + +DECLHIDDEN(int) supHardNtGetSystemRootDir(void *pvBuf, uint32_t cbBuf, SUPHARDNTSYSROOTDIR enmDir, PRTERRINFO pErrInfo); + +# ifndef SUPHNTVI_NO_NT_STUFF + +/** Typical system root directory buffer. */ +typedef struct SUPSYSROOTDIRBUF +{ + UNICODE_STRING UniStr; + WCHAR awcBuffer[260]; +} SUPSYSROOTDIRBUF; +extern SUPSYSROOTDIRBUF g_System32NtPath; +extern SUPSYSROOTDIRBUF g_WinSxSNtPath; +#if defined(IN_RING3) && !defined(VBOX_PERMIT_EVEN_MORE) +extern SUPSYSROOTDIRBUF g_ProgramFilesNtPath; +extern SUPSYSROOTDIRBUF g_CommonFilesNtPath; +# if ARCH_BITS == 64 +extern SUPSYSROOTDIRBUF g_ProgramFilesX86NtPath; +extern SUPSYSROOTDIRBUF g_CommonFilesX86NtPath; +# endif +#endif /* IN_RING3 && !VBOX_PERMIT_EVEN_MORE */ +extern SUPSYSROOTDIRBUF g_SupLibHardenedExeNtPath; +extern uint32_t g_offSupLibHardenedExeNtName; + +# ifdef IN_RING0 +/** Pointer to NtQueryVirtualMemory. */ +typedef NTSTATUS (NTAPI *PFNNTQUERYVIRTUALMEMORY)(HANDLE, void const *, MEMORY_INFORMATION_CLASS, PVOID, SIZE_T, PSIZE_T); +extern PFNNTQUERYVIRTUALMEMORY g_pfnNtQueryVirtualMemory; +# endif + +# endif /* SUPHNTVI_NO_NT_STUFF */ + +/** Creates a combined NT version number for simple comparisons. */ +#define SUP_MAKE_NT_VER_COMBINED(a_uMajor, a_uMinor, a_uBuild, a_uSpMajor, a_uSpMinor) \ + ( ((uint32_t)((a_uMajor) & UINT32_C(0xf)) << 28) \ + | ((uint32_t)((a_uMinor) & UINT32_C(0xf)) << 24) \ + | ((uint32_t)((a_uBuild) & UINT32_C(0xffff)) << 8) \ + | ((uint32_t)((a_uSpMajor) & UINT32_C(0xf)) << 4) \ + | RT_MIN((uint32_t)(a_uSpMinor), UINT32_C(0xf)) ) +/** Simple version of SUP_MAKE_NT_VER_COMBINED. */ +#define SUP_MAKE_NT_VER_SIMPLE(a_uMajor, a_uMinor) SUP_MAKE_NT_VER_COMBINED(a_uMajor, a_uMinor, 0, 0, 0) +extern uint32_t g_uNtVerCombined; + +/** @name NT version constants for less-than checks. + * @{ */ +/** Combined NT version number for XP. */ +#define SUP_NT_VER_XP SUP_MAKE_NT_VER_SIMPLE(5,1) +/** Combined NT version number for Windows server 2003 & XP64. */ +#define SUP_NT_VER_W2K3 SUP_MAKE_NT_VER_SIMPLE(5,2) +/** Combined NT version number for Vista. */ +#define SUP_NT_VER_VISTA SUP_MAKE_NT_VER_SIMPLE(6,0) +/** Combined NT version number for Vista with SP1. */ +#define SUP_NT_VER_VISTA_SP1 SUP_MAKE_NT_VER_COMBINED(6,0,6001,1,0) +/** Combined NT version number for Windows 7. */ +#define SUP_NT_VER_W70 SUP_MAKE_NT_VER_SIMPLE(6,1) +/** Combined NT version number for Windows 8.0. */ +#define SUP_NT_VER_W80 SUP_MAKE_NT_VER_SIMPLE(6,2) +/** Combined NT version number for Windows 8.1. */ +#define SUP_NT_VER_W81 SUP_MAKE_NT_VER_SIMPLE(6,3) +/** @} */ + +# endif + +# ifndef IN_SUP_HARDENED_R3 +# include +# include + +# define suplibHardenedMemComp memcmp +# define suplibHardenedMemCopy memcpy +# define suplibHardenedMemSet memset +# define suplibHardenedStrCopy strcpy +# define suplibHardenedStrLen strlen +# define suplibHardenedStrCat strcat +# define suplibHardenedStrCmp strcmp +# define suplibHardenedStrNCmp strncmp +# else /* IN_SUP_HARDENED_R3 */ +# include +# if 0 +# define memcmp suplibHardenedMemComp +# define memcpy suplibHardenedMemCopy +# define memset suplibHardenedMemSet +# define strcpy suplibHardenedStrCopy +# define strlen suplibHardenedStrLen +# define strcat suplibHardenedStrCat +# define strcmp suplibHardenedStrCmp +# define strncmp suplibHardenedStrNCmp +# endif +# endif /* IN_SUP_HARDENED_R3 */ + +#endif /* SUP_CERTIFICATES_ONLY */ + +RT_C_DECLS_END + +#endif + diff -Nru virtualbox-4.1.12-dfsg/src/VBox/HostDrivers/Support/win/SUPLib-win.cpp virtualbox-4.1.44-dfsg/src/VBox/HostDrivers/Support/win/SUPLib-win.cpp --- virtualbox-4.1.12-dfsg/src/VBox/HostDrivers/Support/win/SUPLib-win.cpp 2012-04-02 13:28:48.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/HostDrivers/Support/win/SUPLib-win.cpp 2015-11-11 15:08:41.000000000 +0000 @@ -30,6 +30,7 @@ #define LOG_GROUP LOG_GROUP_SUP #ifdef IN_SUP_HARDENED_R3 # undef DEBUG /* Warning: disables RT_STRICT */ +# undef LOG_DISABLED # define LOG_DISABLED /** @todo RTLOGREL_DISABLED */ # include @@ -37,7 +38,8 @@ # define LogRelIt(pvInst, fFlags, iGroup, fmtargs) do { } while (0) #endif -#include +#define USE_NT_DEVICE_IO_CONTROL_FILE +#include #include #include @@ -49,6 +51,9 @@ #include #include "../SUPLibInternal.h" #include "../SUPDrvIOC.h" +#ifdef VBOX_WITH_HARDENING +# include "win/SUPHardenedVerify-win.h" +#endif /******************************************************************************* @@ -56,90 +61,207 @@ *******************************************************************************/ /** The support service name. */ #define SERVICE_NAME "VBoxDrv" -/** Win32 Device name. */ -#define DEVICE_NAME "\\\\.\\VBoxDrv" -/** NT Device name. */ -#define DEVICE_NAME_NT L"\\Device\\VBoxDrv" -/** Win32 Symlink name. */ -#define DEVICE_NAME_DOS L"\\DosDevices\\VBoxDrv" /******************************************************************************* * Internal Functions * *******************************************************************************/ +#ifndef IN_SUP_HARDENED_R3 static int suplibOsCreateService(void); //unused: static int suplibOsUpdateService(void); static int suplibOsDeleteService(void); static int suplibOsStartService(void); static int suplibOsStopService(void); +#endif +#ifdef USE_NT_DEVICE_IO_CONTROL_FILE +static int suplibConvertNtStatus(NTSTATUS rcNt); +#else static int suplibConvertWin32Err(int); +#endif +/******************************************************************************* +* Global Variables * +*******************************************************************************/ +static bool g_fHardenedVerifyInited = false; +int suplibOsHardenedVerifyInit(void) +{ + if (!g_fHardenedVerifyInited) + { +#if defined(VBOX_WITH_HARDENING) && !defined(IN_SUP_HARDENED_R3) && !defined(IN_SUP_R3_STATIC) + supR3HardenedWinInitVersion(); + int rc = supHardenedWinInitImageVerifier(NULL); + if (RT_FAILURE(rc)) + return rc; + supR3HardenedWinResolveVerifyTrustApiAndHookThreadCreation(NULL); +#endif + g_fHardenedVerifyInited = true; + } + return VINF_SUCCESS; +} -int suplibOsInit(PSUPLIBDATA pThis, bool fPreInited) + +int suplibOsHardenedVerifyTerm(void) { + /** @todo free resources... */ + return VINF_SUCCESS; +} + + +int suplibOsInit(PSUPLIBDATA pThis, bool fPreInited, bool fUnrestricted, SUPINITOP *penmWhat, PRTERRINFO pErrInfo) +{ + Assert(fUnrestricted); + + /* + * Make sure the image verifier is fully initialized. + */ + int rc = suplibOsHardenedVerifyInit(); + if (RT_FAILURE(rc)) + return RTErrInfoSetF(pErrInfo, rc, "suplibOsHardenedVerifyInit failed: %Rrc", rc); + /* - * Nothing to do if pre-inited. + * Done if of pre-inited. */ if (fPreInited) + { +#if defined(VBOX_WITH_HARDENING) && !defined(IN_SUP_HARDENED_R3) +# ifdef IN_SUP_R3_STATIC + return VERR_NOT_SUPPORTED; +# else + return VINF_SUCCESS; +# endif +#else return VINF_SUCCESS; +#endif + } /* * Try open the device. */ - HANDLE hDevice = CreateFile(DEVICE_NAME, - GENERIC_READ | GENERIC_WRITE, FILE_SHARE_READ | FILE_SHARE_WRITE, - NULL, - OPEN_EXISTING, - FILE_ATTRIBUTE_NORMAL | FILE_FLAG_OVERLAPPED, - NULL); - if (hDevice == INVALID_HANDLE_VALUE) +#ifndef IN_SUP_HARDENED_R3 + uint32_t cTry = 0; +#endif + HANDLE hDevice; + for (;;) { + IO_STATUS_BLOCK Ios = RTNT_IO_STATUS_BLOCK_INITIALIZER; + + static const WCHAR s_wszName[] = L"\\Device\\VBoxDrvU"; + UNICODE_STRING NtName; + NtName.Buffer = (PWSTR)s_wszName; + NtName.Length = sizeof(s_wszName) - sizeof(WCHAR) * (fUnrestricted ? 2 : 1); + NtName.MaximumLength = NtName.Length; + + OBJECT_ATTRIBUTES ObjAttr; + InitializeObjectAttributes(&ObjAttr, &NtName, OBJ_CASE_INSENSITIVE, NULL /*hRootDir*/, NULL /*pSecDesc*/); + + hDevice = RTNT_INVALID_HANDLE_VALUE; + + NTSTATUS rcNt = NtCreateFile(&hDevice, + GENERIC_READ | GENERIC_WRITE, /* No SYNCHRONIZE. */ + &ObjAttr, + &Ios, + NULL /* Allocation Size*/, + FILE_ATTRIBUTE_NORMAL, + FILE_SHARE_READ | FILE_SHARE_WRITE, + FILE_OPEN, + FILE_NON_DIRECTORY_FILE, /* No FILE_SYNCHRONOUS_IO_NONALERT! */ + NULL /*EaBuffer*/, + 0 /*EaLength*/); + if (NT_SUCCESS(rcNt)) + rcNt = Ios.Status; + if (NT_SUCCESS(rcNt)) + { + /* + * We're good. + */ + pThis->hDevice = hDevice; + pThis->fUnrestricted = fUnrestricted; + return VINF_SUCCESS; + } + #ifndef IN_SUP_HARDENED_R3 /* - * Try start the service and retry opening it. + * Failed to open, try starting the service and reopen the device + * exactly once. */ - suplibOsStartService(); + if (cTry == 0 && !NT_SUCCESS(rcNt)) + { + cTry++; + suplibOsStartService(); + continue; + } +#endif - hDevice = CreateFile(DEVICE_NAME, - GENERIC_READ | GENERIC_WRITE, FILE_SHARE_READ | FILE_SHARE_WRITE, - NULL, - OPEN_EXISTING, - FILE_ATTRIBUTE_NORMAL | FILE_FLAG_OVERLAPPED, - NULL); - if (hDevice == INVALID_HANDLE_VALUE) -#endif /* !IN_SUP_HARDENED_R3 */ + /* + * Translate the error code. + */ + switch (rcNt) { - int rc = GetLastError(); - switch (rc) + /** @todo someone must test what is actually returned. */ + case STATUS_DEVICE_DOES_NOT_EXIST: + case STATUS_DEVICE_NOT_CONNECTED: + //case ERROR_BAD_DEVICE: + case STATUS_DEVICE_REMOVED: + //case ERROR_DEVICE_NOT_AVAILABLE: + rc = VERR_VM_DRIVER_LOAD_ERROR; + break; + case STATUS_OBJECT_PATH_NOT_FOUND: + case STATUS_NO_SUCH_DEVICE: + case STATUS_NO_SUCH_FILE: + case STATUS_OBJECT_NAME_NOT_FOUND: + rc = VERR_VM_DRIVER_NOT_INSTALLED; + break; + case STATUS_ACCESS_DENIED: + case STATUS_SHARING_VIOLATION: + rc = VERR_VM_DRIVER_NOT_ACCESSIBLE; + break; + case STATUS_UNSUCCESSFUL: + rc = VERR_SUPLIB_NT_PROCESS_UNTRUSTED_0; + break; + case STATUS_TRUST_FAILURE: + rc = VERR_SUPLIB_NT_PROCESS_UNTRUSTED_1; + break; + case STATUS_TOO_LATE: + rc = VERR_SUPDRV_HARDENING_EVIL_HANDLE; + break; + default: + if (SUP_NT_STATUS_IS_VBOX(rcNt)) /* See VBoxDrvNtErr2NtStatus. */ + rc = SUP_NT_STATUS_TO_VBOX(rcNt); + else + rc = VERR_VM_DRIVER_OPEN_ERROR; + break; + } + +#ifdef IN_SUP_HARDENED_R3 + /* + * Get more details from VBoxDrvErrorInfo if present. + */ + if (pErrInfo && pErrInfo->cbMsg > 32) + { + /* Prefix. */ + size_t cchPrefix; + const char *pszDefine = RTErrGetDefine(rc); + if (strncmp(pszDefine, RT_STR_TUPLE("Unknown"))) + cchPrefix = RTStrPrintf(pErrInfo->pszMsg, pErrInfo->cbMsg / 2, "Integrity error (%#x/%s): ", rcNt, pszDefine); + else + cchPrefix = RTStrPrintf(pErrInfo->pszMsg, pErrInfo->cbMsg / 2, "Integrity error (%#x/%d): ", rcNt, rc); + + /* Get error info. */ + supR3HardenedWinReadErrorInfoDevice(pErrInfo->pszMsg + cchPrefix, pErrInfo->cbMsg - cchPrefix, ""); + if (pErrInfo->pszMsg[cchPrefix] != '\0') { - /** @todo someone must test what is actually returned. */ - case ERROR_DEV_NOT_EXIST: - case ERROR_DEVICE_NOT_CONNECTED: - case ERROR_BAD_DEVICE: - case ERROR_DEVICE_REMOVED: - case ERROR_DEVICE_NOT_AVAILABLE: - return VERR_VM_DRIVER_LOAD_ERROR; - case ERROR_PATH_NOT_FOUND: - case ERROR_FILE_NOT_FOUND: - return VERR_VM_DRIVER_NOT_INSTALLED; - case ERROR_ACCESS_DENIED: - case ERROR_SHARING_VIOLATION: - return VERR_VM_DRIVER_NOT_ACCESSIBLE; - default: - return VERR_VM_DRIVER_OPEN_ERROR; + pErrInfo->fFlags |= RTERRINFO_FLAGS_SET; + pErrInfo->rc = rc; + *penmWhat = kSupInitOp_Integrity; } - - return -1 /** @todo define proper error codes for suplibOsInit failure. */; + else + pErrInfo->pszMsg[0] = '\0'; } +#endif + return rc; } - - /* - * We're done. - */ - pThis->hDevice = hDevice; - return VINF_SUCCESS; } @@ -147,14 +269,21 @@ int suplibOsInstall(void) { - return suplibOsCreateService(); + int rc = suplibOsCreateService(); + if (RT_SUCCESS(rc)) + { + int rc2 = suplibOsStartService(); + if (rc2 != VINF_SUCCESS) + rc = rc2; + } + return rc; } int suplibOsUninstall(void) { int rc = suplibOsStopService(); - if (!rc) + if (RT_SUCCESS(rc)) rc = suplibOsDeleteService(); return rc; } @@ -163,21 +292,22 @@ /** * Creates the service. * - * @returns 0 on success. - * @returns -1 on failure. + * @returns VBox status code. + * @retval VWRN_ALREADY_EXISTS if it already exists. */ static int suplibOsCreateService(void) { /* * Assume it didn't exist, so we'll create the service. */ - SC_HANDLE hSMgrCreate = OpenSCManager(NULL, NULL, SERVICE_CHANGE_CONFIG); - DWORD LastError = GetLastError(); NOREF(LastError); - AssertMsg(hSMgrCreate, ("OpenSCManager(,,create) failed rc=%d\n", LastError)); - if (hSMgrCreate) + int rc; + SC_HANDLE hSMgrCreate = OpenSCManager(NULL, NULL, SERVICE_CHANGE_CONFIG); + DWORD dwErr = GetLastError(); + AssertMsg(hSMgrCreate, ("OpenSCManager(,,create) failed dwErr=%d\n", dwErr)); + if (hSMgrCreate != NULL) { char szDriver[RTPATH_MAX]; - int rc = RTPathExecDir(szDriver, sizeof(szDriver) - sizeof("\\VBoxDrv.sys")); + rc = RTPathExecDir(szDriver, sizeof(szDriver) - sizeof("\\VBoxDrv.sys")); if (RT_SUCCESS(rc)) { strcat(szDriver, "\\VBoxDrv.sys"); @@ -190,34 +320,42 @@ SERVICE_ERROR_NORMAL, szDriver, NULL, NULL, NULL, NULL, NULL); - DWORD LastError = GetLastError(); NOREF(LastError); - AssertMsg(hService, ("CreateService failed! LastError=%Rwa szDriver=%s\n", LastError, szDriver)); - CloseServiceHandle(hService); - CloseServiceHandle(hSMgrCreate); - return hService ? 0 : -1; + dwErr = GetLastError(); + if (hService) + { + CloseServiceHandle(hService); + rc = VINF_SUCCESS; + } + else if (dwErr == ERROR_SERVICE_EXISTS) + rc = VWRN_ALREADY_EXISTS; + else + { + AssertMsgFailed(("CreateService failed! dwErr=%Rwa szDriver=%s\n", dwErr, szDriver)); + rc = RTErrConvertFromWin32(dwErr); + } } CloseServiceHandle(hSMgrCreate); - return rc; } - return -1; + else + rc = RTErrConvertFromWin32(GetLastError()); + return rc; } /** * Stops a possibly running service. * - * @returns 0 on success. - * @returns -1 on failure. + * @returns VBox status code. */ static int suplibOsStopService(void) { /* * Assume it didn't exist, so we'll create the service. */ - int rc = -1; + int rc; SC_HANDLE hSMgr = OpenSCManager(NULL, NULL, SERVICE_STOP | SERVICE_QUERY_STATUS); - DWORD LastError = GetLastError(); NOREF(LastError); - AssertMsg(hSMgr, ("OpenSCManager(,,delete) failed rc=%d\n", LastError)); + DWORD dwErr = GetLastError(); + AssertMsg(hSMgr, ("OpenSCManager(,,delete) failed dwErr=%d\n", dwErr)); if (hSMgr) { SC_HANDLE hService = OpenService(hSMgr, SERVICE_NAME, SERVICE_STOP | SERVICE_QUERY_STATUS); @@ -229,7 +367,7 @@ SERVICE_STATUS Status; QueryServiceStatus(hService, &Status); if (Status.dwCurrentState == SERVICE_STOPPED) - rc = 0; + rc = VINF_SUCCESS; else if (ControlService(hService, SERVICE_CONTROL_STOP, &Status)) { int iWait = 100; @@ -239,26 +377,36 @@ QueryServiceStatus(hService, &Status); } if (Status.dwCurrentState == SERVICE_STOPPED) - rc = 0; + rc = VINF_SUCCESS; else - AssertMsgFailed(("Failed to stop service. status=%d\n", Status.dwCurrentState)); + { + AssertMsgFailed(("Failed to stop service. status=%d\n", Status.dwCurrentState)); + rc = VERR_GENERAL_FAILURE; + } } else { - DWORD LastError = GetLastError(); NOREF(LastError); - AssertMsgFailed(("ControlService failed with LastError=%Rwa. status=%d\n", LastError, Status.dwCurrentState)); + dwErr = GetLastError(); + AssertMsgFailed(("ControlService failed with dwErr=%Rwa. status=%d\n", dwErr, Status.dwCurrentState)); + rc = RTErrConvertFromWin32(dwErr); } CloseServiceHandle(hService); } - else if (GetLastError() == ERROR_SERVICE_DOES_NOT_EXIST) - rc = 0; else { - DWORD LastError = GetLastError(); NOREF(LastError); - AssertMsgFailed(("OpenService failed LastError=%Rwa\n", LastError)); + dwErr = GetLastError(); + if (GetLastError() == ERROR_SERVICE_DOES_NOT_EXIST) + rc = VINF_SUCCESS; + else + { + AssertMsgFailed(("OpenService failed dwErr=%Rwa\n", dwErr)); + rc = RTErrConvertFromWin32(dwErr); + } } CloseServiceHandle(hSMgr); } + else + rc = RTErrConvertFromWin32(dwErr); return rc; } @@ -266,18 +414,17 @@ /** * Deletes the service. * - * @returns 0 on success. - * @returns -1 on failure. + * @returns VBox status code. */ int suplibOsDeleteService(void) { /* * Assume it didn't exist, so we'll create the service. */ - int rc = -1; + int rc; SC_HANDLE hSMgr = OpenSCManager(NULL, NULL, SERVICE_CHANGE_CONFIG); - DWORD LastError = GetLastError(); NOREF(LastError); - AssertMsg(hSMgr, ("OpenSCManager(,,delete) failed rc=%d\n", LastError)); + DWORD dwErr = GetLastError(); + AssertMsg(hSMgr, ("OpenSCManager(,,delete) failed rc=%d\n", dwErr)); if (hSMgr) { SC_HANDLE hService = OpenService(hSMgr, SERVICE_NAME, DELETE); @@ -287,20 +434,25 @@ * Delete the service. */ if (DeleteService(hService)) - rc = 0; + rc = VINF_SUCCESS; else { - DWORD LastError = GetLastError(); NOREF(LastError); - AssertMsgFailed(("DeleteService failed LastError=%Rwa\n", LastError)); + dwErr = GetLastError(); + AssertMsgFailed(("DeleteService failed dwErr=%Rwa\n", dwErr)); + rc = RTErrConvertFromWin32(dwErr); } CloseServiceHandle(hService); } - else if (GetLastError() == ERROR_SERVICE_DOES_NOT_EXIST) - rc = 0; else { - DWORD LastError = GetLastError(); NOREF(LastError); - AssertMsgFailed(("OpenService failed LastError=%Rwa\n", LastError)); + dwErr = GetLastError(); + if (dwErr == ERROR_SERVICE_DOES_NOT_EXIST) + rc = VINF_SUCCESS; + else + { + AssertMsgFailed(("OpenService failed dwErr=%Rwa\n", dwErr)); + rc = RTErrConvertFromWin32(dwErr); + } } CloseServiceHandle(hSMgr); } @@ -371,9 +523,7 @@ /** * Attempts to start the service, creating it if necessary. * - * @returns 0 on success. - * @returns -1 on failure. - * @param fRetry Indicates retry call. + * @returns VBox status code. */ static int suplibOsStartService(void) { @@ -383,8 +533,9 @@ SC_HANDLE hSMgr = OpenSCManager(NULL, NULL, SERVICE_QUERY_STATUS | SERVICE_START); if (hSMgr == NULL) { - AssertMsgFailed(("couldn't open service manager in SERVICE_QUERY_CONFIG | SERVICE_QUERY_STATUS mode!\n")); - return -1; + DWORD dwErr = GetLastError(); + AssertMsgFailed(("couldn't open service manager in SERVICE_QUERY_CONFIG | SERVICE_QUERY_STATUS mode! (dwErr=%d)\n", dwErr)); + return RTErrConvertFromWin32(dwErr); } /* @@ -397,7 +548,7 @@ * Create the service. */ int rc = suplibOsCreateService(); - if (rc) + if (RT_FAILURE(rc)) return rc; /* @@ -409,48 +560,60 @@ /* * Check if open and on demand create succeeded. */ - int rc = -1; + int rc; if (hService) { /* * Query service status to see if we need to start it or not. */ - SERVICE_STATUS Status; + SERVICE_STATUS Status; BOOL fRc = QueryServiceStatus(hService, &Status); Assert(fRc); - if ( Status.dwCurrentState != SERVICE_RUNNING - && Status.dwCurrentState != SERVICE_START_PENDING) + if (Status.dwCurrentState == SERVICE_RUNNING) + rc = VINF_ALREADY_INITIALIZED; + else { + if (Status.dwCurrentState == SERVICE_START_PENDING) + rc = VINF_SUCCESS; + else + { + /* + * Start it. + */ + if (StartService(hService, 0, NULL)) + rc = VINF_SUCCESS; + else + { + DWORD dwErr = GetLastError(); + AssertMsg(fRc, ("StartService failed with dwErr=%Rwa\n", dwErr)); + rc = RTErrConvertFromWin32(dwErr); + } + } + /* - * Start it. + * Wait for the service to finish starting. + * We'll wait for 10 seconds then we'll give up. */ - fRc = StartService(hService, 0, NULL); - DWORD LastError = GetLastError(); NOREF(LastError); - AssertMsg(fRc, ("StartService failed with LastError=%Rwa\n", LastError)); - } - - /* - * Wait for the service to finish starting. - * We'll wait for 10 seconds then we'll give up. - */ - QueryServiceStatus(hService, &Status); - if (Status.dwCurrentState == SERVICE_START_PENDING) - { - int iWait; - for (iWait = 100; iWait > 0 && Status.dwCurrentState == SERVICE_START_PENDING; iWait--) + QueryServiceStatus(hService, &Status); + if (Status.dwCurrentState == SERVICE_START_PENDING) { - Sleep(100); - QueryServiceStatus(hService, &Status); + int iWait; + for (iWait = 100; iWait > 0 && Status.dwCurrentState == SERVICE_START_PENDING; iWait--) + { + Sleep(100); + QueryServiceStatus(hService, &Status); + } + DWORD dwErr = GetLastError(); NOREF(dwErr); + AssertMsg(Status.dwCurrentState != SERVICE_RUNNING, + ("Failed to start. dwErr=%Rwa iWait=%d status=%d\n", dwErr, iWait, Status.dwCurrentState)); } - DWORD LastError = GetLastError(); NOREF(LastError); - AssertMsg(Status.dwCurrentState != SERVICE_RUNNING, - ("Failed to start. LastError=%Rwa iWait=%d status=%d\n", - LastError, iWait, Status.dwCurrentState)); - } - if (Status.dwCurrentState == SERVICE_RUNNING) - rc = 0; + if (Status.dwCurrentState == SERVICE_RUNNING) + rc = VINF_SUCCESS; + else if (RT_SUCCESS_NP(rc)) + rc = VERR_GENERAL_FAILURE; + } /* * Close open handles. @@ -459,8 +622,9 @@ } else { - DWORD LastError = GetLastError(); NOREF(LastError); - AssertMsgFailed(("OpenService failed! LastError=%Rwa\n", LastError)); + DWORD dwErr = GetLastError(); + AssertMsgFailed(("OpenService failed! LastError=%Rwa\n", dwErr)); + rc = RTErrConvertFromWin32(dwErr); } if (!CloseServiceHandle(hSMgr)) AssertFailed(); @@ -492,10 +656,28 @@ */ PSUPREQHDR pHdr = (PSUPREQHDR)pvReq; Assert(cbReq == RT_MAX(pHdr->cbIn, pHdr->cbOut)); +# ifdef USE_NT_DEVICE_IO_CONTROL_FILE + IO_STATUS_BLOCK Ios; + Ios.Status = -1; + Ios.Information = 0; + NTSTATUS rcNt = NtDeviceIoControlFile((HANDLE)pThis->hDevice, NULL /*hEvent*/, NULL /*pfnApc*/, NULL /*pvApcCtx*/, &Ios, + (ULONG)uFunction, + pvReq /*pvInput */, pHdr->cbIn /* cbInput */, + pvReq /*pvOutput*/, pHdr->cbOut /* cbOutput */); + if (NT_SUCCESS(rcNt)) + { + if (NT_SUCCESS(Ios.Status)) + return VINF_SUCCESS; + rcNt = Ios.Status; + } + return suplibConvertNtStatus(rcNt); + +# else DWORD cbReturned = (ULONG)pHdr->cbOut; if (DeviceIoControl((HANDLE)pThis->hDevice, uFunction, pvReq, pHdr->cbIn, pvReq, cbReturned, &cbReturned, NULL)) return 0; return suplibConvertWin32Err(GetLastError()); +# endif } @@ -504,10 +686,27 @@ /* * Issue device I/O control. */ +# ifdef USE_NT_DEVICE_IO_CONTROL_FILE + IO_STATUS_BLOCK Ios; + Ios.Status = -1; + Ios.Information = 0; + NTSTATUS rcNt = NtDeviceIoControlFile((HANDLE)pThis->hDevice, NULL /*hEvent*/, NULL /*pfnApc*/, NULL /*pvApcCtx*/, &Ios, + (ULONG)uFunction, + NULL /*pvInput */, 0 /* cbInput */, + (PVOID)idCpu /*pvOutput*/, 0 /* cbOutput */); + if (NT_SUCCESS(rcNt)) + { + if (NT_SUCCESS(Ios.Status)) + return VINF_SUCCESS; + rcNt = Ios.Status; + } + return suplibConvertNtStatus(rcNt); +# else DWORD cbReturned = 0; if (DeviceIoControl((HANDLE)pThis->hDevice, uFunction, NULL, 0, (LPVOID)idCpu, 0, &cbReturned, NULL)) return VINF_SUCCESS; return suplibConvertWin32Err(GetLastError()); +# endif } @@ -517,7 +716,7 @@ *ppvPages = VirtualAlloc(NULL, (size_t)cPages << PAGE_SHIFT, MEM_COMMIT, PAGE_EXECUTE_READWRITE); if (*ppvPages) return VINF_SUCCESS; - return suplibConvertWin32Err(GetLastError()); + return RTErrConvertFromWin32(GetLastError()); } @@ -526,10 +725,11 @@ NOREF(pThis); if (VirtualFree(pvPages, 0, MEM_RELEASE)) return VINF_SUCCESS; - return suplibConvertWin32Err(GetLastError()); + return RTErrConvertFromWin32(GetLastError()); } +# ifndef USE_NT_DEVICE_IO_CONTROL_FILE /** * Converts a supdrv win32 error code to an IPRT status code. * @@ -581,6 +781,36 @@ /* fall back on the default conversion. */ return RTErrConvertFromWin32(rc); } +# else +/** + * Reverse of VBoxDrvNtErr2NtStatus + * returns VBox status code. + * @param rcNt NT status code. + */ +static int suplibConvertNtStatus(NTSTATUS rcNt) +{ + switch (rcNt) + { + case STATUS_SUCCESS: return VINF_SUCCESS; + case STATUS_NOT_SUPPORTED: return VERR_GENERAL_FAILURE; + case STATUS_INVALID_PARAMETER: return VERR_INVALID_PARAMETER; + case STATUS_UNKNOWN_REVISION: return VERR_INVALID_MAGIC; + case STATUS_INVALID_HANDLE: return VERR_INVALID_HANDLE; + case STATUS_INVALID_ADDRESS: return VERR_INVALID_POINTER; + case STATUS_NOT_LOCKED: return VERR_LOCK_FAILED; + case STATUS_IMAGE_ALREADY_LOADED: return VERR_ALREADY_LOADED; + case STATUS_ACCESS_DENIED: return VERR_PERMISSION_DENIED; + case STATUS_REVISION_MISMATCH: return VERR_VERSION_MISMATCH; + } + + /* See VBoxDrvNtErr2NtStatus. */ + if (SUP_NT_STATUS_IS_VBOX(rcNt)) + return SUP_NT_STATUS_TO_VBOX(rcNt); + + /* Fall back on IPRT for the rest. */ + return RTErrConvertFromNtStatus(rcNt); +} +# endif #endif /* !IN_SUP_HARDENED_R3 */ diff -Nru virtualbox-4.1.12-dfsg/src/VBox/HostDrivers/Support/win/SUPR3HardenedMainA-win.asm virtualbox-4.1.44-dfsg/src/VBox/HostDrivers/Support/win/SUPR3HardenedMainA-win.asm --- virtualbox-4.1.12-dfsg/src/VBox/HostDrivers/Support/win/SUPR3HardenedMainA-win.asm 1970-01-01 00:00:00.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/HostDrivers/Support/win/SUPR3HardenedMainA-win.asm 2015-11-11 15:08:41.000000000 +0000 @@ -0,0 +1,225 @@ +; $Id: SUPR3HardenedMainA-win.asm $ +;; @file +; VirtualBox Support Library - Hardened main(), Windows assembly bits. +; + +; +; Copyright (C) 2012-2014 Oracle Corporation +; +; This file is part of VirtualBox Open Source Edition (OSE), as +; available from http://www.virtualbox.org. This file is free software; +; you can redistribute it and/or modify it under the terms of the GNU +; General Public License (GPL) as published by the Free Software +; Foundation, in version 2 as it comes in the "COPYING" file of the +; VirtualBox OSE distribution. VirtualBox OSE is distributed in the +; hope that it will be useful, but WITHOUT ANY WARRANTY of any kind. +; +; The contents of this file may alternatively be used under the terms +; of the Common Development and Distribution License Version 1.0 +; (CDDL) only, as it comes in the "COPYING.CDDL" file of the +; VirtualBox OSE distribution, in which case the provisions of the +; CDDL are applicable instead of those of the GPL. +; +; You may elect to license modified versions of this file under the +; terms and conditions of either the GPL or the CDDL or both. +; + +;******************************************************************************* +;* Header Files * +;******************************************************************************* +%define RT_ASM_WITH_SEH64 +%include "iprt/asmdefs.mac" + + +; External code. +extern NAME(supR3HardenedEarlyProcessInit) + + +BEGINCODE + + +;; +; Alternative code for LdrInitializeThunk that performs the early process startup +; for the Stub and VM processes. +; +; This does not concern itself with any arguments on stack or in registers that +; may be passed to the LdrIntializeThunk routine as we just save and restore +; them all before we restart the restored LdrInitializeThunk routine. +; +; @sa supR3HardenedEarlyProcessInit +; +BEGINPROC supR3HardenedEarlyProcessInitThunk + ; + ; Prologue. + ; + + ; Reserve space for the "return" address. + push 0 + + ; Create a stack frame, saving xBP. + push xBP + SEH64_PUSH_xBP + mov xBP, xSP + SEH64_SET_FRAME_xBP 0 ; probably wrong... + + ; Save all volatile registers. + push xAX + push xCX + push xDX +%ifdef RT_ARCH_AMD64 + push r8 + push r9 + push r10 + push r11 +%endif + + ; Reserve spill space and align the stack. + sub xSP, 20h + and xSP, ~0fh + SEH64_END_PROLOGUE + + ; + ; Call the C/C++ code that does the actual work. This returns the + ; resume address in xAX, which we put in the "return" stack position. + ; + call NAME(supR3HardenedEarlyProcessInit) + mov [xBP + xCB], xAX + + ; + ; Restore volatile registers. + ; + mov xAX, [xBP - xCB*1] + mov xCX, [xBP - xCB*2] + mov xDX, [xBP - xCB*3] +%ifdef RT_ARCH_AMD64 + mov r8, [xBP - xCB*4] + mov r9, [xBP - xCB*5] + mov r10, [xBP - xCB*6] + mov r11, [xBP - xCB*7] +%endif + ; + ; Use the leave instruction to restore xBP and set up xSP to point at + ; the resume address. Then use the 'ret' instruction to resume process + ; initializaton. + ; + leave + ret +ENDPROC supR3HardenedEarlyProcessInitThunk + + + +;; +; Composes a standard call name. +%ifdef RT_ARCH_X86 + %define SUPHNTIMP_STDCALL_NAME(a,b) _ %+ a %+ @ %+ b +%else + %define SUPHNTIMP_STDCALL_NAME(a,b) NAME(a) +%endif + +;; Concats two litterals. +%define SUPHNTIMP_CONCAT(a,b) a %+ b + + +;; +; Import data and code for an API call. +; +; @param 1 The plain API name. +; @param 2 The parameter frame size on x86. Multiple of dword. +; @param 3 Non-zero expression if system call. +; @param 4 Non-zero expression if early available call +; +%define SUPHNTIMP_SYSCALL 1 +%macro SupHardNtImport 4 + ; + ; The data. + ; +BEGINDATA +global __imp_ %+ SUPHNTIMP_STDCALL_NAME(%1,%2) ; The import name used via dllimport. +__imp_ %+ SUPHNTIMP_STDCALL_NAME(%1,%2): +GLOBALNAME g_pfn %+ %1 ; The name we like to refer to. + RTCCPTR_DEF 0 +%if %3 +GLOBALNAME g_uApiNo %+ %1 + RTCCPTR_DEF 0 +%endif + + ; + ; The code: First a call stub. + ; +BEGINCODE +global SUPHNTIMP_STDCALL_NAME(%1, %2) +SUPHNTIMP_STDCALL_NAME(%1, %2): + jmp RTCCPTR_PRE [NAME(g_pfn %+ %1) xWrtRIP] + +%if %3 + ; + ; Make system calls. + ; + %ifdef RT_ARCH_AMD64 +BEGINPROC %1 %+ _SyscallType1 + SEH64_END_PROLOGUE + mov eax, [NAME(g_uApiNo %+ %1) xWrtRIP] + mov r10, rcx + syscall + ret +ENDPROC %1 %+ _SyscallType1 +BEGINPROC %1 %+ _SyscallType2 ; Introduced with build 10525 + SEH64_END_PROLOGUE + mov eax, [NAME(g_uApiNo %+ %1) xWrtRIP] + test byte [07ffe0308h], 1 ; SharedUserData!Something + mov r10, rcx + jnz .int_alternative + syscall + ret +.int_alternative: + int 2eh + ret +ENDPROC %1 %+ _SyscallType2 + %else +BEGINPROC %1 %+ _SyscallType1 + mov edx, 07ffe0300h ; SharedUserData!SystemCallStub + mov eax, [NAME(g_uApiNo %+ %1) xWrtRIP] + call dword [edx] + ret %2 +ENDPROC %1 %+ _SyscallType1 +BEGINPROC %1 %+ _SyscallType2 + push .return + mov edx, esp + mov eax, [NAME(g_uApiNo %+ %1) xWrtRIP] + sysenter + add esp, 4 +.return: + ret %2 +ENDPROC %1 %+ _SyscallType2 + %endif +%endif + +%if %4 == 0 +global NAME(SUPHNTIMP_CONCAT(%1,_Early)) +NAME(SUPHNTIMP_CONCAT(%1,_Early)): + int3 + %ifdef RT_ARCH_AMD64 + ret + %else + ret %2 + %endif +%endif +%endmacro + +%define SUPHARNT_COMMENT(a_Comment) +%define SUPHARNT_IMPORT_SYSCALL(a_Name, a_cbParamsX86) SupHardNtImport a_Name, a_cbParamsX86, SUPHNTIMP_SYSCALL, 1 +%define SUPHARNT_IMPORT_STDCALL(a_Name, a_cbParamsX86) SupHardNtImport a_Name, a_cbParamsX86, 0, 0 +%define SUPHARNT_IMPORT_STDCALL_EARLY(a_Name, a_cbParamsX86) SupHardNtImport a_Name, a_cbParamsX86, 0, 1 +%define SUPHARNT_IMPORT_STDCALL_EARLY_OPTIONAL(a_Name, a_cbParamsX86) SUPHARNT_IMPORT_STDCALL_EARLY(a_Name, a_cbParamsX86) +%include "import-template-ntdll.h" +%include "import-template-kernel32.h" + + +; +; For simplified LdrLoadDll patching we define a special writable, readable and +; exectuable section of 4KB where we can put jump back code. +; +section .rwxpg bss execute read write align=4096 +GLOBALNAME g_abSupHardReadWriteExecPage + resb 4096 + diff -Nru virtualbox-4.1.12-dfsg/src/VBox/HostDrivers/Support/win/SUPR3HardenedMainImports-win.cpp virtualbox-4.1.44-dfsg/src/VBox/HostDrivers/Support/win/SUPR3HardenedMainImports-win.cpp --- virtualbox-4.1.12-dfsg/src/VBox/HostDrivers/Support/win/SUPR3HardenedMainImports-win.cpp 1970-01-01 00:00:00.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/HostDrivers/Support/win/SUPR3HardenedMainImports-win.cpp 2015-11-11 15:08:41.000000000 +0000 @@ -0,0 +1,847 @@ +/* $Id: SUPR3HardenedMainImports-win.cpp $ */ +/** @file + * VirtualBox Support Library - Hardened Main, Windows Import Trickery. + */ + +/* + * Copyright (C) 2006-2014 Oracle Corporation + * + * This file is part of VirtualBox Open Source Edition (OSE), as + * available from http://www.virtualbox.org. This file is free software; + * you can redistribute it and/or modify it under the terms of the GNU + * General Public License (GPL) as published by the Free Software + * Foundation, in version 2 as it comes in the "COPYING" file of the + * VirtualBox OSE distribution. VirtualBox OSE is distributed in the + * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind. + * + * The contents of this file may alternatively be used under the terms + * of the Common Development and Distribution License Version 1.0 + * (CDDL) only, as it comes in the "COPYING.CDDL" file of the + * VirtualBox OSE distribution, in which case the provisions of the + * CDDL are applicable instead of those of the GPL. + * + * You may elect to license modified versions of this file under the + * terms and conditions of either the GPL or the CDDL or both. + */ + +/******************************************************************************* +* Header Files * +*******************************************************************************/ +#include + +#include +#include +#include +#include +#include +#include + +#include "SUPLibInternal.h" +#include "SUPHardenedVerify-win.h" + + +/******************************************************************************* +* Defined Constants And Macros * +*******************************************************************************/ +#define SUPHARNT_COMMENT(a_Blah) /* nothing */ + +#define VBOX_HARDENED_STUB_WITHOUT_IMPORTS +#ifdef VBOX_HARDENED_STUB_WITHOUT_IMPORTS +# if 0 +# define SUPHNTIMP_ERROR(a_fReportErrors, a_id, a_szWhere, a_enmOp, a_rc, ...) \ + do { \ + if (a_fReportErrors) supR3HardenedFatalMsg(a_szWhere, a_enmOp, a_rc, __VA_ARGS__); \ + else { static const char s_szWhere[] = a_szWhere; *(char *)(uintptr_t)(a_id) += 1; __debugbreak(); } \ + } while (0) +# else +# define SUPHNTIMP_ERROR(a_fReportErrors, a_id, a_FatalErrorMsgArgs) \ + do { \ + if (a_fReportErrors) supR3HardenedFatalMsg a_FatalErrorMsgArgs; \ + else { *(char *)(uintptr_t)(a_id) += 1; __debugbreak(); } \ + } while (0) +# endif +#else +# define SUPHNTIMP_ERROR(a_fReportErrors, a_id, a_szWhere, a_enmOp, a_rc, ...) \ + supR3HardenedFatalMsg(a_szWhere, a_enmOp, a_rc, __VA_ARGS__) + +#endif + + +/******************************************************************************* +* Defined Constants And Macros * +*******************************************************************************/ +/** + * Import function entry. + */ +typedef struct SUPHNTIMPFUNC +{ + /** The name of the function we're importing. */ + const char *pszName; + /** Where to store the function address (think __imp_ApiName). */ + PFNRT *ppfnImport; + /** Pointer to an early dummy function for imports that aren't available + * during early process initialization. */ + PFNRT pfnEarlyDummy; + /** Indicates whether this is an optional import and failure to locate it + * should set it to NULL instead of freaking out. */ + bool fOptional; +} SUPHNTIMPFUNC; +/** Pointer to an import table entry. */ +typedef SUPHNTIMPFUNC const *PCSUPHNTIMPFUNC; + +/** + * Information for constructing a direct system call. + */ +typedef struct SUPHNTIMPSYSCALL +{ + /** Where to store the system call number. + * NULL if this import doesn't stupport direct system call. */ + uint32_t *puApiNo; + /** Assembly system call routine, type 1. */ + PFNRT pfnType1; + /** Assembly system call routine, type 2. */ + PFNRT pfnType2; +#ifdef RT_ARCH_X86 + /** The parameter size in bytes for a standard call. */ + uint32_t cbParams; +#endif +} SUPHNTIMPSYSCALL; +/** Pointer to a system call entry. */ +typedef SUPHNTIMPSYSCALL const *PCSUPHNTIMPSYSCALL; + +/** + * Import DLL. + * + * This contains both static (like name & imports) and runtime information (like + * load and export table locations). + */ +typedef struct SUPHNTIMPDLL +{ + /** @name Static data. + * @{ */ + const wchar_t *pwszName; + const char *pszName; + size_t cImports; + PCSUPHNTIMPFUNC paImports; + /** Array running parallel to paImports if present. */ + PCSUPHNTIMPSYSCALL paSyscalls; + /** @} */ + + + /** The image base. */ + uint8_t const *pbImageBase; + /** The NT headers. */ + PIMAGE_NT_HEADERS pNtHdrs; + /** The NT header offset/RVA. */ + uint32_t offNtHdrs; + /** The end of the section headers. */ + uint32_t offEndSectHdrs; + /** The end of the image. */ + uint32_t cbImage; + /** Offset of the export directory. */ + uint32_t offExportDir; + /** Size of the export directory. */ + uint32_t cbExportDir; + + /** Exported functions and data by ordinal (RVAs). */ + uint32_t const *paoffExports; + /** The number of exports. */ + uint32_t cExports; + /** The number of exported names. */ + uint32_t cNamedExports; + /** Pointer to the array of exported names (RVAs to strings). */ + uint32_t const *paoffNamedExports; + /** Array parallel to paoffNamedExports with the corresponding ordinals + * (indexes into paoffExports). */ + uint16_t const *pau16NameOrdinals; + + /** Number of patched export table entries. */ + uint32_t cPatchedExports; + +} SUPHNTIMPDLL; +/** Pointer to an import DLL entry. */ +typedef SUPHNTIMPDLL *PSUPHNTIMPDLL; + + + +/* + * Declare assembly symbols. + */ +#define SUPHARNT_IMPORT_STDCALL_EARLY(a_Name, a_cbParamsX86) \ + extern PFNRT RT_CONCAT(g_pfn, a_Name); +#define SUPHARNT_IMPORT_STDCALL_EARLY_OPTIONAL(a_Name, a_cbParamsX86) SUPHARNT_IMPORT_STDCALL_EARLY(a_Name, a_cbParamsX86) +#define SUPHARNT_IMPORT_SYSCALL(a_Name, a_cbParamsX86) \ + SUPHARNT_IMPORT_STDCALL_EARLY(a_Name, a_cbParamsX86) \ + extern uint32_t RT_CONCAT(g_uApiNo, a_Name); \ + extern FNRT RT_CONCAT(a_Name, _SyscallType1); \ + extern FNRT RT_CONCAT(a_Name, _SyscallType2); +#define SUPHARNT_IMPORT_STDCALL(a_Name, a_cbParamsX86) \ + extern PFNRT RT_CONCAT(g_pfn, a_Name); \ + extern FNRT RT_CONCAT(a_Name, _Early); + +RT_C_DECLS_BEGIN +#include "import-template-ntdll.h" +#include "import-template-kernel32.h" +RT_C_DECLS_END + +/* + * Import functions. + */ +#undef SUPHARNT_IMPORT_SYSCALL +#undef SUPHARNT_IMPORT_STDCALL_EARLY +#undef SUPHARNT_IMPORT_STDCALL_EARLY_OPTIONAL +#undef SUPHARNT_IMPORT_STDCALL +#define SUPHARNT_IMPORT_SYSCALL(a_Name, a_cbParamsX86) \ + { #a_Name, &RT_CONCAT(g_pfn, a_Name), NULL, false }, +#define SUPHARNT_IMPORT_STDCALL_EARLY(a_Name, a_cbParamsX86) \ + { #a_Name, &RT_CONCAT(g_pfn, a_Name), NULL, false }, +#define SUPHARNT_IMPORT_STDCALL_EARLY_OPTIONAL(a_Name, a_cbParamsX86) \ + { #a_Name, &RT_CONCAT(g_pfn, a_Name), NULL, true }, +#define SUPHARNT_IMPORT_STDCALL(a_Name, a_cbParamsX86) \ + { #a_Name, &RT_CONCAT(g_pfn, a_Name), RT_CONCAT(a_Name,_Early), false }, +static const SUPHNTIMPFUNC g_aSupNtImpNtDllFunctions[] = +{ +#include "import-template-ntdll.h" +}; + +static const SUPHNTIMPFUNC g_aSupNtImpKernel32Functions[] = +{ +#include "import-template-kernel32.h" +}; + + + +/* + * Syscalls in ntdll. + */ +#undef SUPHARNT_IMPORT_SYSCALL +#undef SUPHARNT_IMPORT_STDCALL +#undef SUPHARNT_IMPORT_STDCALL_EARLY +#undef SUPHARNT_IMPORT_STDCALL_EARLY_OPTIONAL +#ifdef RT_ARCH_AMD64 +# define SUPHARNT_IMPORT_STDCALL(a_Name, a_cbParamsX86) \ + { NULL, NULL }, +# define SUPHARNT_IMPORT_SYSCALL(a_Name, a_cbParamsX86) \ + { &RT_CONCAT(g_uApiNo, a_Name), &RT_CONCAT(a_Name, _SyscallType1), &RT_CONCAT(a_Name, _SyscallType2) }, +#elif defined(RT_ARCH_X86) +# define SUPHARNT_IMPORT_STDCALL(a_Name, a_cbParamsX86) \ + { NULL, NULL, NULL, 0 }, +# define SUPHARNT_IMPORT_SYSCALL(a_Name, a_cbParamsX86) \ + { &RT_CONCAT(g_uApiNo, a_Name), &RT_CONCAT(a_Name,_SyscallType1), &RT_CONCAT(a_Name, _SyscallType2), a_cbParamsX86 }, +#endif +#define SUPHARNT_IMPORT_STDCALL_EARLY(a_Name, a_cbParamsX86) SUPHARNT_IMPORT_STDCALL(a_Name, a_cbParamsX86) +#define SUPHARNT_IMPORT_STDCALL_EARLY_OPTIONAL(a_Name, a_cbParamsX86) SUPHARNT_IMPORT_STDCALL(a_Name, a_cbParamsX86) +static const SUPHNTIMPSYSCALL g_aSupNtImpNtDllSyscalls[] = +{ +#include "import-template-ntdll.h" +}; + + +/** + * All the DLLs we import from. + * @remarks Code ASSUMES that ntdll is the first entry. + */ +static SUPHNTIMPDLL g_aSupNtImpDlls[] = +{ + { L"ntdll.dll", "ntdll.dll", RT_ELEMENTS(g_aSupNtImpNtDllFunctions), g_aSupNtImpNtDllFunctions, g_aSupNtImpNtDllSyscalls }, + { L"kernelbase.dll", "kernelbase.dll", 0 /* optional module, forwarders only */, NULL, NULL }, + { L"kernel32.dll", "kernel32.dll", RT_ELEMENTS(g_aSupNtImpKernel32Functions), g_aSupNtImpKernel32Functions, NULL }, +}; + + +static void supR3HardenedFindOrLoadModule(PSUPHNTIMPDLL pDll) +{ +#ifdef VBOX_HARDENED_STUB_WITHOUT_IMPORTS + uint32_t const cbName = (uint32_t)RTUtf16Len(pDll->pwszName) * sizeof(WCHAR); + PPEB_LDR_DATA pLdrData = NtCurrentPeb()->Ldr; + LIST_ENTRY *pList = &pLdrData->InMemoryOrderModuleList; + LIST_ENTRY *pListEntry = pList->Flink; + uint32_t cLoops = 0; + while (pListEntry != pList && cLoops < 1024) + { + PLDR_DATA_TABLE_ENTRY pLdrEntry = RT_FROM_MEMBER(pListEntry, LDR_DATA_TABLE_ENTRY, InMemoryOrderLinks); + + if ( pLdrEntry->FullDllName.Length > cbName + sizeof(WCHAR) + && ( pLdrEntry->FullDllName.Buffer[(pLdrEntry->FullDllName.Length - cbName) / sizeof(WCHAR) - 1] == '\\' + || pLdrEntry->FullDllName.Buffer[(pLdrEntry->FullDllName.Length - cbName) / sizeof(WCHAR) - 1] == '/') + && RTUtf16ICmpAscii(&pLdrEntry->FullDllName.Buffer[(pLdrEntry->FullDllName.Length - cbName) / sizeof(WCHAR)], + pDll->pszName) == 0) + { + pDll->pbImageBase = (uint8_t *)pLdrEntry->DllBase; + return; + } + + pListEntry = pListEntry->Flink; + cLoops++; + } + + if (!pDll->cImports) + pDll->pbImageBase = NULL; /* optional */ + else + SUPHNTIMP_ERROR(false, 1, ("supR3HardenedFindOrLoadModule", kSupInitOp_Misc, VERR_MODULE_NOT_FOUND, + "Failed to locate %ls", pDll->pwszName)); +#else + HMODULE hmod = GetModuleHandleW(pDll->pwszName); + if (RT_UNLIKELY(!hmod && pDll->cImports)) + SUPHNTIMP_ERROR(true, 1, ("supR3HardenedWinInitImports", kSupInitOp_Misc, VERR_MODULE_NOT_FOUND, + "Failed to locate %ls", pDll->pwszName)); + pDll->pbImageBase = (uint8_t *)hmod; +#endif +} + + +static void supR3HardenedParseModule(PSUPHNTIMPDLL pDll) +{ + /* + * Locate the PE header, do some basic validations. + */ + IMAGE_DOS_HEADER const *pMzHdr = (IMAGE_DOS_HEADER const *)pDll->pbImageBase; + uint32_t offNtHdrs = 0; + PIMAGE_NT_HEADERS pNtHdrs; + if (pMzHdr->e_magic == IMAGE_DOS_SIGNATURE) + { + offNtHdrs = pMzHdr->e_lfanew; + if (offNtHdrs > _2K) + SUPHNTIMP_ERROR(false, 2, ("supR3HardenedParseModule", kSupInitOp_Misc, VERR_MODULE_NOT_FOUND, + "%ls: e_lfanew=%#x, expected a lower value", pDll->pwszName, offNtHdrs)); + } + pDll->pNtHdrs = pNtHdrs = (PIMAGE_NT_HEADERS)&pDll->pbImageBase[offNtHdrs]; + + if (pNtHdrs->Signature != IMAGE_NT_SIGNATURE) + SUPHNTIMP_ERROR(false, 3, ("supR3HardenedParseModule", kSupInitOp_Misc, VERR_INVALID_EXE_SIGNATURE, + "%ls: Invalid PE signature: %#x", pDll->pwszName, pNtHdrs->Signature)); + if (pNtHdrs->FileHeader.SizeOfOptionalHeader != sizeof(pNtHdrs->OptionalHeader)) + SUPHNTIMP_ERROR(false, 4, ("supR3HardenedParseModule", kSupInitOp_Misc, VERR_INVALID_EXE_SIGNATURE, + "%ls: Unexpected optional header size: %#x", pDll->pwszName, pNtHdrs->FileHeader.SizeOfOptionalHeader)); + if (pNtHdrs->OptionalHeader.Magic != RT_CONCAT3(IMAGE_NT_OPTIONAL_HDR,ARCH_BITS,_MAGIC)) + SUPHNTIMP_ERROR(false, 5, ("supR3HardenedParseModule", kSupInitOp_Misc, VERR_INVALID_EXE_SIGNATURE, + "%ls: Unexpected optional header magic: %#x", pDll->pwszName, pNtHdrs->OptionalHeader.Magic)); + if (pNtHdrs->OptionalHeader.NumberOfRvaAndSizes != IMAGE_NUMBEROF_DIRECTORY_ENTRIES) + SUPHNTIMP_ERROR(false, 6, ("supR3HardenedParseModule", kSupInitOp_Misc, VERR_INVALID_EXE_SIGNATURE, + "%ls: Unexpected number of RVA and sizes: %#x", pDll->pwszName, pNtHdrs->OptionalHeader.NumberOfRvaAndSizes)); + + pDll->offNtHdrs = offNtHdrs; + pDll->offEndSectHdrs = offNtHdrs + + sizeof(*pNtHdrs) + + pNtHdrs->FileHeader.NumberOfSections * sizeof(IMAGE_SECTION_HEADER); + pDll->cbImage = pNtHdrs->OptionalHeader.SizeOfImage; + + /* + * Find the export directory. + */ + IMAGE_DATA_DIRECTORY ExpDir = pNtHdrs->OptionalHeader.DataDirectory[IMAGE_DIRECTORY_ENTRY_EXPORT]; + if ( ExpDir.Size < sizeof(IMAGE_EXPORT_DIRECTORY) + || ExpDir.VirtualAddress < pDll->offEndSectHdrs + || ExpDir.VirtualAddress >= pNtHdrs->OptionalHeader.SizeOfImage + || ExpDir.VirtualAddress + ExpDir.Size > pNtHdrs->OptionalHeader.SizeOfImage) + SUPHNTIMP_ERROR(false, 7, ("supR3HardenedParseModule", kSupInitOp_Misc, VERR_INVALID_EXE_SIGNATURE, + "%ls: Missing or invalid export directory: %#lx LB %#x", pDll->pwszName, ExpDir.VirtualAddress, ExpDir.Size)); + pDll->offExportDir = ExpDir.VirtualAddress; + pDll->cbExportDir = ExpDir.Size; + + IMAGE_EXPORT_DIRECTORY const *pExpDir = (IMAGE_EXPORT_DIRECTORY const *)&pDll->pbImageBase[ExpDir.VirtualAddress]; + + if ( pExpDir->NumberOfFunctions >= _1M + || pExpDir->NumberOfFunctions < 1 + || pExpDir->NumberOfNames >= _1M + || pExpDir->NumberOfNames < 1) + SUPHNTIMP_ERROR(false, 8, ("supR3HardenedParseModule", kSupInitOp_Misc, VERR_INVALID_EXE_SIGNATURE, + "%ls: NumberOfNames or/and NumberOfFunctions are outside the expected range: nof=%#x non=%#x\n", + pDll->pwszName, pExpDir->NumberOfFunctions, pExpDir->NumberOfNames)); + pDll->cNamedExports = pExpDir->NumberOfNames; + pDll->cExports = RT_MAX(pExpDir->NumberOfNames, pExpDir->NumberOfFunctions); + + if ( pExpDir->AddressOfFunctions < pDll->offEndSectHdrs + || pExpDir->AddressOfFunctions >= pNtHdrs->OptionalHeader.SizeOfImage + || pExpDir->AddressOfFunctions + pDll->cExports * sizeof(uint32_t) > pNtHdrs->OptionalHeader.SizeOfImage) + SUPHNTIMP_ERROR(false, 9, ("supR3HardenedParseModule", kSupInitOp_Misc, VERR_INVALID_EXE_SIGNATURE, + "%ls: Bad AddressOfFunctions: %#x\n", pDll->pwszName, pExpDir->AddressOfFunctions)); + pDll->paoffExports = (uint32_t const *)&pDll->pbImageBase[pExpDir->AddressOfFunctions]; + + if ( pExpDir->AddressOfNames < pDll->offEndSectHdrs + || pExpDir->AddressOfNames >= pNtHdrs->OptionalHeader.SizeOfImage + || pExpDir->AddressOfNames + pExpDir->NumberOfNames * sizeof(uint32_t) > pNtHdrs->OptionalHeader.SizeOfImage) + SUPHNTIMP_ERROR(false, 10, ("supR3HardenedParseModule", kSupInitOp_Misc, VERR_INVALID_EXE_SIGNATURE, + "%ls: Bad AddressOfNames: %#x\n", pDll->pwszName, pExpDir->AddressOfNames)); + pDll->paoffNamedExports = (uint32_t const *)&pDll->pbImageBase[pExpDir->AddressOfNames]; + + if ( pExpDir->AddressOfNameOrdinals < pDll->offEndSectHdrs + || pExpDir->AddressOfNameOrdinals >= pNtHdrs->OptionalHeader.SizeOfImage + || pExpDir->AddressOfNameOrdinals + pExpDir->NumberOfNames * sizeof(uint32_t) > pNtHdrs->OptionalHeader.SizeOfImage) + SUPHNTIMP_ERROR(false, 11, ("supR3HardenedParseModule", kSupInitOp_Misc, VERR_INVALID_EXE_SIGNATURE, + "%ls: Bad AddressOfNameOrdinals: %#x\n", pDll->pwszName, pExpDir->AddressOfNameOrdinals)); + pDll->pau16NameOrdinals = (uint16_t const *)&pDll->pbImageBase[pExpDir->AddressOfNameOrdinals]; +} + + +static const char *supR3HardenedResolveImport(PSUPHNTIMPDLL pDll, PCSUPHNTIMPFUNC pImport, bool fReportErrors) +{ + /* + * Binary search. + */ + uint32_t iStart = 0; + uint32_t iEnd = pDll->cNamedExports; + while (iStart < iEnd) + { + uint32_t iCur = iStart + (iEnd - iStart) / 2; + uint32_t offExpName = pDll->paoffNamedExports[iCur]; + if (RT_UNLIKELY(offExpName < pDll->offEndSectHdrs || offExpName >= pDll->cbImage)) + SUPHNTIMP_ERROR(fReportErrors, 12, ("supR3HardenedResolveImport", kSupInitOp_Misc, VERR_SYMBOL_NOT_FOUND, + "%ls: Bad export name entry: %#x (iCur=%#x)", pDll->pwszName, offExpName, iCur)); + + const char *pszExpName = (const char *)&pDll->pbImageBase[offExpName]; + int iDiff = strcmp(pszExpName, pImport->pszName); + if (iDiff > 0) /* pszExpName > pszSymbol: search chunck before i */ + iEnd = iCur; + else if (iDiff < 0) /* pszExpName < pszSymbol: search chunk after i */ + iStart = iCur + 1; + else /* pszExpName == pszSymbol */ + { + uint16_t iExpOrdinal = pDll->pau16NameOrdinals[iCur]; + if (iExpOrdinal < pDll->cExports) + { + uint32_t offExport = pDll->paoffExports[iExpOrdinal]; + + /* detect export table patching. */ + if (offExport >= pDll->cbImage) + pDll->cPatchedExports++; + + if (offExport - pDll->offExportDir >= pDll->cbExportDir) + { + *pImport->ppfnImport = (PFNRT)&pDll->pbImageBase[offExport]; + return NULL; + } + + /* Forwarder. */ + return (const char *)&pDll->pbImageBase[offExport]; + } + SUPHNTIMP_ERROR(fReportErrors, 14, ("supR3HardenedResolveImport", kSupInitOp_Misc, VERR_BAD_EXE_FORMAT, + "%ls: Name ordinal for '%s' is out of bounds: %#x (max %#x)", + pDll->pwszName, iExpOrdinal, pDll->cExports)); + return NULL; + } + } + + if (!pImport->fOptional) + SUPHNTIMP_ERROR(fReportErrors, 15, ("supR3HardenedResolveImport", kSupInitOp_Misc, VERR_SYMBOL_NOT_FOUND, + "%ls: Failed to resolve '%s'.", pDll->pwszName, pImport->pszName)); + *pImport->ppfnImport = NULL; + return NULL; +} + + +static void supR3HardenedDirectSyscall(PSUPHNTIMPDLL pDll, PCSUPHNTIMPFUNC pImport, PCSUPHNTIMPSYSCALL pSyscall, + PSUPHNTLDRCACHEENTRY pLdrEntry, uint8_t *pbBits, bool fReportErrors) +{ + /* + * Skip non-syscall entries. + */ + if (!pSyscall->puApiNo) + return; + + /* + * Locate the virgin bits. + */ + RTLDRADDR uValue; + int rc = RTLdrGetSymbolEx(pLdrEntry->hLdrMod, pbBits, (uintptr_t)pDll->pbImageBase, UINT32_MAX, pImport->pszName, &uValue); + if (RT_FAILURE(rc)) + { + SUPHNTIMP_ERROR(fReportErrors, 16, ("supR3HardenedDirectSyscall", kSupInitOp_Misc, rc, + "%s: RTLdrGetSymbolEx failed on %s: %Rrc", pDll->pszName, pImport->pszName, rc)); + return; + } + uintptr_t offSymbol = (uintptr_t)uValue - (uintptr_t)pDll->pbImageBase; + uint8_t const *pbFunction = &pbBits[offSymbol]; + + /* + * Parse the code and extract the API call number. + */ +#ifdef RT_ARCH_AMD64 + /* Pattern #1: XP64/W2K3-64 thru Windows 10 build 10240. + 0:000> u ntdll!NtCreateSection + ntdll!NtCreateSection: + 00000000`779f1750 4c8bd1 mov r10,rcx + 00000000`779f1753 b847000000 mov eax,47h + 00000000`779f1758 0f05 syscall + 00000000`779f175a c3 ret + 00000000`779f175b 0f1f440000 nop dword ptr [rax+rax] + + Pattern #2: Windows 10 build 10525+. + 0:000> u ntdll_7ffc26300000!NtCreateSection + ntdll_7ffc26300000!ZwCreateSection: + 00007ffc`263943e0 4c8bd1 mov r10,rcx + 00007ffc`263943e3 b84a000000 mov eax,4Ah + 00007ffc`263943e8 f604250803fe7f01 test byte ptr [SharedUserData+0x308 (00000000`7ffe0308)],1 + 00007ffc`263943f0 7503 jne ntdll_7ffc26300000!ZwCreateSection+0x15 (00007ffc`263943f5) + 00007ffc`263943f2 0f05 syscall + 00007ffc`263943f4 c3 ret + 00007ffc`263943f5 cd2e int 2Eh + 00007ffc`263943f7 c3 ret + */ + if ( pbFunction[ 0] == 0x4c /* mov r10, rcx */ + && pbFunction[ 1] == 0x8b + && pbFunction[ 2] == 0xd1 + && pbFunction[ 3] == 0xb8 /* mov eax, 0000yyzzh */ + //&& pbFunction[ 4] == 0xZZ + //&& pbFunction[ 5] == 0xYY + && pbFunction[ 6] == 0x00 + && pbFunction[ 7] == 0x00) + { + if ( pbFunction[ 8] == 0x0f /* syscall */ + && pbFunction[ 9] == 0x05 + && pbFunction[10] == 0xc3 /* ret */ ) + { + *pSyscall->puApiNo = RT_MAKE_U16(pbFunction[4], pbFunction[5]); + *pImport->ppfnImport = pSyscall->pfnType1; + return; + } + if ( pbFunction[ 8] == 0xf6 /* test byte ptr [SharedUserData+0x308 (00000000`7ffe0308)],1 */ + && pbFunction[ 9] == 0x04 + && pbFunction[10] == 0x25 + && pbFunction[11] == 0x08 + && pbFunction[12] == 0x03 + && pbFunction[13] == 0xfe + && pbFunction[14] == 0x7f + && pbFunction[15] == 0x01 + && pbFunction[16] == 0x75 /* jnz +3 */ + && pbFunction[17] == 0x03 + && pbFunction[18] == 0x0f /* syscall*/ + && pbFunction[19] == 0x05 + && pbFunction[20] == 0xc3 /* ret */ + && pbFunction[21] == 0xcd /* int 2eh */ + && pbFunction[22] == 0x2e + && pbFunction[23] == 0xc3 /* ret */ ) + { + *pSyscall->puApiNo = RT_MAKE_U16(pbFunction[4], pbFunction[5]); + *pImport->ppfnImport = pSyscall->pfnType2; + return; + } + } +#else + /* Pattern #1: XP thru Windows 7 + kd> u ntdll!NtCreateSection + ntdll!NtCreateSection: + 7c90d160 b832000000 mov eax,32h + 7c90d165 ba0003fe7f mov edx,offset SharedUserData!SystemCallStub (7ffe0300) + 7c90d16a ff12 call dword ptr [edx] + 7c90d16c c21c00 ret 1Ch + 7c90d16f 90 nop + The variable bit is the value loaded into eax: XP=32h, W2K3=34h, Vista=4bh, W7=54h + + Pattern #2: Windows 8.1 + 0:000:x86> u ntdll_6a0f0000!NtCreateSection + ntdll_6a0f0000!NtCreateSection: + 6a15eabc b854010000 mov eax,154h + 6a15eac1 e803000000 call ntdll_6a0f0000!NtCreateSection+0xd (6a15eac9) + 6a15eac6 c21c00 ret 1Ch + 6a15eac9 8bd4 mov edx,esp + 6a15eacb 0f34 sysenter + 6a15eacd c3 ret + The variable bit is the value loaded into eax: W81=154h + Note! One nice thing here is that we can share code pattern #1. */ + + if ( pbFunction[ 0] == 0xb8 /* mov eax, 0000yyzzh*/ + //&& pbFunction[ 1] <= 0xZZ + //&& pbFunction[ 2] <= 0xYY + && pbFunction[ 3] == 0x00 + && pbFunction[ 4] == 0x00) + { + *pSyscall->puApiNo = RT_MAKE_U16(pbFunction[1], pbFunction[2]); + if ( pbFunction[5] == 0xba /* mov edx, offset SharedUserData!SystemCallStub */ + && pbFunction[ 6] == 0x00 + && pbFunction[ 7] == 0x03 + && pbFunction[ 8] == 0xfe + && pbFunction[ 9] == 0x7f + && pbFunction[10] == 0xff /* call [edx] */ + && pbFunction[11] == 0x12 + && ( ( pbFunction[12] == 0xc2 /* ret 1ch */ + && pbFunction[13] == pSyscall->cbParams + && pbFunction[14] == 0x00) + || ( pbFunction[12] == 0xc3 /* ret */ + && pSyscall->cbParams == 0) + ) + ) + { + *pImport->ppfnImport = pSyscall->pfnType1; + return; + } + + if ( pbFunction[ 5] == 0xe8 /* call [$+3] */ + && RT_ABS(*(int32_t *)&pbFunction[6]) < 0x10 + && ( ( pbFunction[10] == 0xc2 /* ret 1ch */ + && pbFunction[11] == pSyscall->cbParams + && pbFunction[12] == 0x00) + || ( pbFunction[10] == 0xc3 /* ret */ + && pSyscall->cbParams == 0) + ) + ) + { + *pImport->ppfnImport = pSyscall->pfnType2; + return; + } + } +#endif + + /* + * Failed to parse it. + */ + volatile uint8_t abCopy[16]; + memcpy((void *)&abCopy[0], pbFunction, sizeof(abCopy)); + SUPHNTIMP_ERROR(fReportErrors, 17, ("supR3HardenedWinInitImports", kSupInitOp_Misc, rc, + "%ls: supHardNtLdrCacheOpen failed: '%s': %.16Rhxs", + pDll->pwszName, pImport->pszName, &abCopy[0])); +} + + +/** + * Check out system calls and do the directly instead of via NtDll. + * + * We need to have access to the on disk NTDLL.DLL file as we do not trust the + * stuff we find in memory. Too early to verify signatures though. + * + * @param fReportErrors Whether we've got the machinery for reporting + * errors going already. + */ +DECLHIDDEN(void) supR3HardenedWinInitSyscalls(bool fReportErrors) +{ + for (uint32_t iDll = 0; iDll < RT_ELEMENTS(g_aSupNtImpDlls); iDll++) + if (g_aSupNtImpDlls[iDll].paSyscalls) + { + PSUPHNTLDRCACHEENTRY pLdrEntry; + int rc = supHardNtLdrCacheOpen(g_aSupNtImpDlls[iDll].pszName, &pLdrEntry); + if (RT_SUCCESS(rc)) + { + uint8_t *pbBits; + rc = supHardNtLdrCacheEntryGetBits(pLdrEntry, &pbBits, (uintptr_t)g_aSupNtImpDlls[iDll].pbImageBase, NULL, NULL, + NULL /*pErrInfo*/); + if (RT_SUCCESS(rc)) + { + for (uint32_t i = 0; i < g_aSupNtImpDlls[iDll].cImports; i++) + supR3HardenedDirectSyscall(&g_aSupNtImpDlls[iDll], &g_aSupNtImpDlls[iDll].paImports[i], + &g_aSupNtImpDlls[iDll].paSyscalls[i], pLdrEntry, pbBits, fReportErrors); + } + else + SUPHNTIMP_ERROR(fReportErrors, 20, ("supR3HardenedWinInitImports", kSupInitOp_Misc, rc, + "%ls: supHardNtLdrCacheEntryGetBits failed: %Rrc '%s'.", g_aSupNtImpDlls[iDll].pwszName, rc)); + } + else + SUPHNTIMP_ERROR(fReportErrors, 21, ("supR3HardenedWinInitImports", kSupInitOp_Misc, rc, + "%ls: supHardNtLdrCacheOpen failed: %Rrc '%s'.", g_aSupNtImpDlls[iDll].pwszName, rc)); + } +} + + +/** + * Resolves a few NtDll functions we need before child purification is executed. + * + * We must not permanently modify any global data here. + * + * @param uNtDllAddr The address of the NTDLL. + */ +DECLHIDDEN(void) supR3HardenedWinGetVeryEarlyImports(uintptr_t uNtDllAddr, + PFNNTWAITFORSINGLEOBJECT *ppfnNtWaitForSingleObject, + PFNNTSETEVENT *ppfnNtSetEvent) +{ + /* + * NTDLL is the first entry in the list. Save it and do the parsing. + */ + SUPHNTIMPDLL SavedDllEntry = g_aSupNtImpDlls[0]; + + g_aSupNtImpDlls[0].pbImageBase = (uint8_t const *)uNtDllAddr; + supR3HardenedParseModule(&g_aSupNtImpDlls[0]); + + /* + * Create a temporary import table for the requested APIs and resolve them. + */ + SUPHNTIMPFUNC aImports[] = + { + { "NtWaitForSingleObject", (PFNRT *)ppfnNtWaitForSingleObject, NULL, false }, + { "NtSetEvent", (PFNRT *)ppfnNtSetEvent, NULL, false }, + }; + + for (uint32_t i = 0; i < RT_ELEMENTS(aImports); i++) + { + const char *pszForwarder = supR3HardenedResolveImport(&g_aSupNtImpDlls[0], &aImports[i], false); + if (pszForwarder) + SUPHNTIMP_ERROR(false, 31, ("supR3HardenedWinGetVeryEarlyImports", kSupInitOp_Misc, VERR_MODULE_NOT_FOUND, + "ntdll: Failed to resolve forwarder '%s'.", pszForwarder)); + } + + /* + * Restore the NtDll entry. + */ + g_aSupNtImpDlls[0] = SavedDllEntry; +} + + +/** + * Resolves NtDll functions we can trust calling before process init. + * + * @param uNtDllAddr The address of the NTDLL. + */ +DECLHIDDEN(void) supR3HardenedWinInitImportsEarly(uintptr_t uNtDllAddr) +{ + /* + * NTDLL is the first entry in the list. + */ + g_aSupNtImpDlls[0].pbImageBase = (uint8_t const *)uNtDllAddr; + supR3HardenedParseModule(&g_aSupNtImpDlls[0]); + for (uint32_t i = 0; i < g_aSupNtImpDlls[0].cImports; i++) + if (!g_aSupNtImpDlls[0].paImports[i].pfnEarlyDummy) + { + const char *pszForwarder = supR3HardenedResolveImport(&g_aSupNtImpDlls[0], &g_aSupNtImpDlls[0].paImports[i], false); + if (pszForwarder) + SUPHNTIMP_ERROR(false, 32, ("supR3HardenedWinInitImports", kSupInitOp_Misc, VERR_MODULE_NOT_FOUND, + "ntdll: Failed to resolve forwarder '%s'.", pszForwarder)); + } + else + *g_aSupNtImpDlls[0].paImports[i].ppfnImport = g_aSupNtImpDlls[0].paImports[i].pfnEarlyDummy; + + /* + * Pointer the other imports at the early init stubs. + */ + for (uint32_t iDll = 1; iDll < RT_ELEMENTS(g_aSupNtImpDlls); iDll++) + for (uint32_t i = 0; i < g_aSupNtImpDlls[iDll].cImports; i++) + if (!g_aSupNtImpDlls[iDll].paImports[i].fOptional) + *g_aSupNtImpDlls[iDll].paImports[i].ppfnImport = g_aSupNtImpDlls[iDll].paImports[i].pfnEarlyDummy; + else + *g_aSupNtImpDlls[iDll].paImports[i].ppfnImport = NULL; +} + + +/** + * Resolves imported functions, esp. system calls from NTDLL. + * + * This crap is necessary because there are sandboxing products out there that + * will mess with system calls we make, just like any other wannabe userland + * rootkit. Kudos to microsoft for not providing a generic system call hook API + * in the kernel mode, which I guess is what forcing these kind of products to + * do ugly userland hacks that doesn't really hold water. + */ +DECLHIDDEN(void) supR3HardenedWinInitImports(void) +{ + /* + * Find the DLLs we will be needing first (forwarders). + */ + for (uint32_t iDll = 0; iDll < RT_ELEMENTS(g_aSupNtImpDlls); iDll++) + { + supR3HardenedFindOrLoadModule(&g_aSupNtImpDlls[iDll]); + if (g_aSupNtImpDlls[iDll].pbImageBase) + supR3HardenedParseModule(&g_aSupNtImpDlls[iDll]); + } + + /* + * Resolve the functions. + */ + for (uint32_t iDll = 0; iDll < RT_ELEMENTS(g_aSupNtImpDlls); iDll++) + for (uint32_t i = 0; i < g_aSupNtImpDlls[iDll].cImports; i++) + { + const char *pszForwarder = supR3HardenedResolveImport(&g_aSupNtImpDlls[iDll], &g_aSupNtImpDlls[iDll].paImports[i], + false); + if (pszForwarder) + { + const char *pszDot = strchr(pszForwarder, '.'); + size_t cchDllName = pszDot - pszForwarder; + SUPHNTIMPFUNC Tmp = g_aSupNtImpDlls[iDll].paImports[i]; + Tmp.pszName = pszDot + 1; + if (cchDllName == sizeof("ntdll") - 1 && RTStrNICmp(pszForwarder, RT_STR_TUPLE("ntdll")) == 0) + supR3HardenedResolveImport(&g_aSupNtImpDlls[0], &Tmp, false); + else if (cchDllName == sizeof("kernelbase") - 1 && RTStrNICmp(pszForwarder, RT_STR_TUPLE("kernelbase")) == 0) + supR3HardenedResolveImport(&g_aSupNtImpDlls[1], &Tmp, false); + else + SUPHNTIMP_ERROR(false, 18, ("supR3HardenedWinInitImports", kSupInitOp_Misc, VERR_MODULE_NOT_FOUND, + "%ls: Failed to resolve forwarder '%s'.", g_aSupNtImpDlls[iDll].pwszName, pszForwarder)); + } + } + + /* + * Do system calls directly. + */ + supR3HardenedWinInitSyscalls(false); + + /* + * Use the on disk image to avoid export table patching. Currently + * ignoring errors here as can live normally without this step. + */ + for (uint32_t iDll = 0; iDll < RT_ELEMENTS(g_aSupNtImpDlls); iDll++) + if (g_aSupNtImpDlls[iDll].cPatchedExports > 0) + { + PSUPHNTLDRCACHEENTRY pLdrEntry; + int rc = supHardNtLdrCacheOpen(g_aSupNtImpDlls[iDll].pszName, &pLdrEntry); + if (RT_SUCCESS(rc)) + { + uint8_t *pbBits; + rc = supHardNtLdrCacheEntryGetBits(pLdrEntry, &pbBits, (uintptr_t)g_aSupNtImpDlls[iDll].pbImageBase, NULL, NULL, + NULL /*pErrInfo*/); + if (RT_SUCCESS(rc)) + for (uint32_t i = 0; i < g_aSupNtImpDlls[iDll].cImports; i++) + { + RTLDRADDR uValue; + rc = RTLdrGetSymbolEx(pLdrEntry->hLdrMod, pbBits, (uintptr_t)g_aSupNtImpDlls[iDll].pbImageBase, + UINT32_MAX, g_aSupNtImpDlls[iDll].paImports[i].pszName, &uValue); + if (RT_SUCCESS(rc)) + *g_aSupNtImpDlls[iDll].paImports[i].ppfnImport = (PFNRT)(uintptr_t)uValue; + } + } + } + + +#if 0 /* Win7/32 ntdll!LdrpDebugFlags. */ + *(uint8_t *)&g_aSupNtImpDlls[0].pbImageBase[0xdd770] = 0x3; +#endif +} + + +/** + * Gets the address of a procedure in a DLL, ignoring our own syscall + * implementations. + * + * Currently restricted to NTDLL and KERNEL32 + * + * @returns The procedure address. + * @param pszDll The DLL name. + * @param pszProcedure The procedure name. + */ +DECLHIDDEN(PFNRT) supR3HardenedWinGetRealDllSymbol(const char *pszDll, const char *pszProcedure) +{ + /* + * Look the DLL up in the import DLL table. + */ + for (uint32_t iDll = 0; iDll < RT_ELEMENTS(g_aSupNtImpDlls); iDll++) + if (RTStrICmp(g_aSupNtImpDlls[iDll].pszName, pszDll) == 0) + { + + PSUPHNTLDRCACHEENTRY pLdrEntry; + int rc = supHardNtLdrCacheOpen(g_aSupNtImpDlls[iDll].pszName, &pLdrEntry); + if (RT_SUCCESS(rc)) + { + uint8_t *pbBits; + rc = supHardNtLdrCacheEntryGetBits(pLdrEntry, &pbBits, (uintptr_t)g_aSupNtImpDlls[iDll].pbImageBase, NULL, NULL, + NULL /*pErrInfo*/); + if (RT_SUCCESS(rc)) + { + RTLDRADDR uValue; + rc = RTLdrGetSymbolEx(pLdrEntry->hLdrMod, pbBits, (uintptr_t)g_aSupNtImpDlls[iDll].pbImageBase, + UINT32_MAX, pszProcedure, &uValue); + if (RT_SUCCESS(rc)) + return (PFNRT)(uintptr_t)uValue; + SUP_DPRINTF(("supR3HardenedWinGetRealDllSymbol: Error getting %s in %s -> %Rrc\n", pszProcedure, pszDll, rc)); + } + else + SUP_DPRINTF(("supR3HardenedWinGetRealDllSymbol: supHardNtLdrCacheEntryAllocBits failed on %s: %Rrc\n", + pszDll, rc)); + } + else + SUP_DPRINTF(("supR3HardenedWinGetRealDllSymbol: supHardNtLdrCacheOpen failed on %s: %Rrc\n", + pszDll, rc)); + + /* Complications, just call GetProcAddress. */ + if (g_enmSupR3HardenedMainState >= SUPR3HARDENEDMAINSTATE_WIN_IMPORTS_RESOLVED) + return (PFNRT)GetProcAddress(GetModuleHandleW(g_aSupNtImpDlls[iDll].pwszName), pszProcedure); + return NULL; + } + + supR3HardenedFatal("supR3HardenedWinGetRealDllSymbol: Unknown DLL %s (proc: %s)\n", pszDll, pszProcedure); + return NULL; +} + diff -Nru virtualbox-4.1.12-dfsg/src/VBox/HostDrivers/Support/win/SUPR3HardenedMain-win.cpp virtualbox-4.1.44-dfsg/src/VBox/HostDrivers/Support/win/SUPR3HardenedMain-win.cpp --- virtualbox-4.1.12-dfsg/src/VBox/HostDrivers/Support/win/SUPR3HardenedMain-win.cpp 1970-01-01 00:00:00.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/HostDrivers/Support/win/SUPR3HardenedMain-win.cpp 2015-11-11 15:08:41.000000000 +0000 @@ -0,0 +1,5632 @@ +/* $Id: SUPR3HardenedMain-win.cpp $ */ +/** @file + * VirtualBox Support Library - Hardened main(), windows bits. + */ + +/* + * Copyright (C) 2006-2014 Oracle Corporation + * + * This file is part of VirtualBox Open Source Edition (OSE), as + * available from http://www.virtualbox.org. This file is free software; + * you can redistribute it and/or modify it under the terms of the GNU + * General Public License (GPL) as published by the Free Software + * Foundation, in version 2 as it comes in the "COPYING" file of the + * VirtualBox OSE distribution. VirtualBox OSE is distributed in the + * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind. + * + * The contents of this file may alternatively be used under the terms + * of the Common Development and Distribution License Version 1.0 + * (CDDL) only, as it comes in the "COPYING.CDDL" file of the + * VirtualBox OSE distribution, in which case the provisions of the + * CDDL are applicable instead of those of the GPL. + * + * You may elect to license modified versions of this file under the + * terms and conditions of either the GPL or the CDDL or both. + */ + +/******************************************************************************* +* Header Files * +*******************************************************************************/ +#include +#include +#include +#ifndef PROCESS_SET_LIMITED_INFORMATION +# define PROCESS_SET_LIMITED_INFORMATION 0x2000 +#endif +#ifndef LOAD_LIBRARY_SEARCH_APPLICATION_DIR +# define LOAD_LIBRARY_SEARCH_APPLICATION_DIR 0x200 +# define LOAD_LIBRARY_SEARCH_SYSTEM32 0x800 +#endif + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include "SUPLibInternal.h" +#include "win/SUPHardenedVerify-win.h" +#include "../SUPDrvIOC.h" + +#ifndef IMAGE_SCN_TYPE_NOLOAD +# define IMAGE_SCN_TYPE_NOLOAD 0x00000002 +#endif + + +/******************************************************************************* +* Defined Constants And Macros * +*******************************************************************************/ +/** The first argument of a respawed stub when respawned for the first time. + * This just needs to be unique enough to avoid most confusion with real + * executable names, there are other checks in place to make sure we've respanwed. */ +#define SUPR3_RESPAWN_1_ARG0 "60eaff78-4bdd-042d-2e72-669728efd737-suplib-2ndchild" + +/** The first argument of a respawed stub when respawned for the second time. + * This just needs to be unique enough to avoid most confusion with real + * executable names, there are other checks in place to make sure we've respanwed. */ +#define SUPR3_RESPAWN_2_ARG0 "60eaff78-4bdd-042d-2e72-669728efd737-suplib-3rdchild" + +/** Unconditional assertion. */ +#define SUPR3HARDENED_ASSERT(a_Expr) \ + do { \ + if (!(a_Expr)) \ + supR3HardenedFatal("%s: %s\n", __FUNCTION__, #a_Expr); \ + } while (0) + +/** Unconditional assertion of NT_SUCCESS. */ +#define SUPR3HARDENED_ASSERT_NT_SUCCESS(a_Expr) \ + do { \ + NTSTATUS rcNtAssert = (a_Expr); \ + if (!NT_SUCCESS(rcNtAssert)) \ + supR3HardenedFatal("%s: %s -> %#x\n", __FUNCTION__, #a_Expr, rcNtAssert); \ + } while (0) + +/** Unconditional assertion of a WIN32 API returning non-FALSE. */ +#define SUPR3HARDENED_ASSERT_WIN32_SUCCESS(a_Expr) \ + do { \ + BOOL fRcAssert = (a_Expr); \ + if (fRcAssert == FALSE) \ + supR3HardenedFatal("%s: %s -> %#x\n", __FUNCTION__, #a_Expr, RtlGetLastWin32Error()); \ + } while (0) + + +/******************************************************************************* +* Structures and Typedefs * +*******************************************************************************/ +/** + * Security descriptor cleanup structure. + */ +typedef struct MYSECURITYCLEANUP +{ + union + { + SID Sid; + uint8_t abPadding[SECURITY_MAX_SID_SIZE]; + } Everyone, Owner, User, Login; + union + { + ACL AclHdr; + uint8_t abPadding[1024]; + } Acl; + PSECURITY_DESCRIPTOR pSecDesc; +} MYSECURITYCLEANUP; +/** Pointer to security cleanup structure. */ +typedef MYSECURITYCLEANUP *PMYSECURITYCLEANUP; + + +/** + * Image verifier cache entry. + */ +typedef struct VERIFIERCACHEENTRY +{ + /** Pointer to the next entry with the same hash value. */ + struct VERIFIERCACHEENTRY * volatile pNext; + /** Next entry in the WinVerifyTrust todo list. */ + struct VERIFIERCACHEENTRY * volatile pNextTodoWvt; + + /** The file handle. */ + HANDLE hFile; + /** If fIndexNumber is set, this is an file system internal file identifier. */ + LARGE_INTEGER IndexNumber; + /** The path hash value. */ + uint32_t uHash; + /** The verification result. */ + int rc; + /** Used for shutting up load and error messages after a while so they don't + * flood the the log file and fill up the disk. */ + uint32_t volatile cHits; + /** The validation flags (for WinVerifyTrust retry). */ + uint32_t fFlags; + /** Whether IndexNumber is valid */ + bool fIndexNumberValid; + /** Whether verified by WinVerifyTrust. */ + bool volatile fWinVerifyTrust; + /** cwcPath * sizeof(RTUTF16). */ + uint16_t cbPath; + /** The full path of this entry (variable size). */ + RTUTF16 wszPath[1]; +} VERIFIERCACHEENTRY; +/** Pointer to an image verifier path entry. */ +typedef VERIFIERCACHEENTRY *PVERIFIERCACHEENTRY; + + +/** + * Name of an import DLL that we need to check out. + */ +typedef struct VERIFIERCACHEIMPORT +{ + /** Pointer to the next DLL in the list. */ + struct VERIFIERCACHEIMPORT * volatile pNext; + /** The length of pwszAltSearchDir if available. */ + uint32_t cwcAltSearchDir; + /** This points the directory containing the DLL needing it, this will be + * NULL for a System32 DLL. */ + PWCHAR pwszAltSearchDir; + /** The name of the import DLL (variable length). */ + char szName[1]; +} VERIFIERCACHEIMPORT; +/** Pointer to a import DLL that needs checking out. */ +typedef VERIFIERCACHEIMPORT *PVERIFIERCACHEIMPORT; + + +/** + * Child requests. + */ +typedef enum SUPR3WINCHILDREQ +{ + /** Perform child purification and close full access handles (must be zero). */ + kSupR3WinChildReq_PurifyChildAndCloseHandles = 0, + /** Close the events, we're good on our own from here on. */ + kSupR3WinChildReq_CloseEvents, + /** Reporting error. */ + kSupR3WinChildReq_Error, + /** End of valid requests. */ + kSupR3WinChildReq_End +} SUPR3WINCHILDREQ; + +/** + * Child process parameters. + */ +typedef struct SUPR3WINPROCPARAMS +{ + /** The event semaphore the child will be waiting on. */ + HANDLE hEvtChild; + /** The event semaphore the parent will be waiting on. */ + HANDLE hEvtParent; + + /** The address of the NTDLL. This is only valid during the very early + * initialization as we abuse for thread creation protection. */ + uintptr_t uNtDllAddr; + + /** The requested operation (set by the child). */ + SUPR3WINCHILDREQ enmRequest; + /** The last status. */ + int32_t rc; + /** The init operation the error relates to if message, kSupInitOp_Invalid if + * not message. */ + SUPINITOP enmWhat; + /** Where if message. */ + char szWhere[80]; + /** Error message / path name string space. */ + char szErrorMsg[16384+1024]; +} SUPR3WINPROCPARAMS; + + +/** + * Child process data structure for use during child process init setup and + * purification. + */ +typedef struct SUPR3HARDNTCHILD +{ + /** Process handle. */ + HANDLE hProcess; + /** Primary thread handle. */ + HANDLE hThread; + /** Handle to the parent process, if we're the middle (stub) process. */ + HANDLE hParent; + /** The event semaphore the child will be waiting on. */ + HANDLE hEvtChild; + /** The event semaphore the parent will be waiting on. */ + HANDLE hEvtParent; + /** The address of NTDLL in the child. */ + uintptr_t uNtDllAddr; + /** The address of NTDLL in this process. */ + uintptr_t uNtDllParentAddr; + /** Which respawn number this is (1 = stub, 2 = VM). */ + int iWhich; + /** The basic process info. */ + PROCESS_BASIC_INFORMATION BasicInfo; + /** The probable size of the PEB. */ + size_t cbPeb; + /** The pristine process environment block. */ + PEB Peb; + /** The child process parameters. */ + SUPR3WINPROCPARAMS ProcParams; +} SUPR3HARDNTCHILD; +/** Pointer to a child process data structure. */ +typedef SUPR3HARDNTCHILD *PSUPR3HARDNTCHILD; + + +/******************************************************************************* +* Global Variables * +*******************************************************************************/ +/** Process parameters. Specified by parent if VM process, see + * supR3HardenedVmProcessInit. */ +static SUPR3WINPROCPARAMS g_ProcParams = { NULL, NULL, 0, (SUPR3WINCHILDREQ)0, 0 }; +/** Set if supR3HardenedEarlyProcessInit was invoked. */ +bool g_fSupEarlyProcessInit = false; +/** Set if the stub device has been opened (stub process only). */ +bool g_fSupStubOpened = false; + +/** @name Global variables initialized by suplibHardenedWindowsMain. + * @{ */ +/** Combined windows NT version number. See SUP_MAKE_NT_VER_COMBINED. */ +uint32_t g_uNtVerCombined = 0; +/** Count calls to the special main function for linking santity checks. */ +static uint32_t volatile g_cSuplibHardenedWindowsMainCalls; +/** The UTF-16 windows path to the executable. */ +RTUTF16 g_wszSupLibHardenedExePath[1024]; +/** The NT path of the executable. */ +SUPSYSROOTDIRBUF g_SupLibHardenedExeNtPath; +/** The offset into g_SupLibHardenedExeNtPath of the executable name (WCHAR, + * not byte). This also gives the length of the exectuable directory path, + * including a trailing slash. */ +uint32_t g_offSupLibHardenedExeNtName; +/** @} */ + +/** @name Hook related variables. + * @{ */ +/** Pointer to the bit of assembly code that will perform the original + * NtCreateSection operation. */ +static NTSTATUS (NTAPI * g_pfnNtCreateSectionReal)(PHANDLE, ACCESS_MASK, POBJECT_ATTRIBUTES, + PLARGE_INTEGER, ULONG, ULONG, HANDLE); +/** Pointer to the NtCreateSection function in NtDll (for patching purposes). */ +static uint8_t *g_pbNtCreateSection; +/** The patched NtCreateSection bytes (for restoring). */ +static uint8_t g_abNtCreateSectionPatch[16]; +/** Pointer to the bit of assembly code that will perform the original + * LdrLoadDll operation. */ +static NTSTATUS (NTAPI * g_pfnLdrLoadDllReal)(PWSTR, PULONG, PUNICODE_STRING, PHANDLE); +/** Pointer to the LdrLoadDll function in NtDll (for patching purposes). */ +static uint8_t *g_pbLdrLoadDll; +/** The patched LdrLoadDll bytes (for restoring). */ +static uint8_t g_abLdrLoadDllPatch[16]; + +/** The hash table of verifier cache . */ +static PVERIFIERCACHEENTRY volatile g_apVerifierCache[128]; +/** Queue of cached images which needs WinVerifyTrust to check them. */ +static PVERIFIERCACHEENTRY volatile g_pVerifierCacheTodoWvt = NULL; +/** Queue of cached images which needs their imports checked. */ +static PVERIFIERCACHEIMPORT volatile g_pVerifierCacheTodoImports = NULL; + +/** The windows path to dir \\SystemRoot\\System32 directory (technically + * this whatever \KnownDlls\KnownDllPath points to). */ +SUPSYSROOTDIRBUF g_System32WinPath; +/** @ */ + +/** Positive if the DLL notification callback has been registered, counts + * registration attempts as negative. */ +static int g_cDllNotificationRegistered = 0; +/** The registration cookie of the DLL notification callback. */ +static PVOID g_pvDllNotificationCookie = NULL; + +/** Static error info structure used during init. */ +static RTERRINFOSTATIC g_ErrInfoStatic; + +/** In the assembly file. */ +extern "C" uint8_t g_abSupHardReadWriteExecPage[PAGE_SIZE]; + +/** Whether we've patched our own LdrInitializeThunk or not. We do this to + * disable thread creation. */ +static bool g_fSupInitThunkSelfPatched; +/** The backup of our own LdrInitializeThunk code, for enabling and disabling + * thread creation in this process. */ +static uint8_t g_abLdrInitThunkSelfBackup[16]; + +/** Mask of adversaries that we've detected (SUPHARDNT_ADVERSARY_XXX). */ +static uint32_t g_fSupAdversaries = 0; +/** @name SUPHARDNT_ADVERSARY_XXX - Adversaries + * @{ */ +/** Symantec endpoint protection or similar including SysPlant.sys. */ +#define SUPHARDNT_ADVERSARY_SYMANTEC_SYSPLANT RT_BIT_32(0) +/** Symantec Norton 360. */ +#define SUPHARDNT_ADVERSARY_SYMANTEC_N360 RT_BIT_32(1) +/** Avast! */ +#define SUPHARDNT_ADVERSARY_AVAST RT_BIT_32(2) +/** TrendMicro OfficeScan and probably others. */ +#define SUPHARDNT_ADVERSARY_TRENDMICRO RT_BIT_32(3) +/** TrendMicro potentially buggy sakfile.sys. */ +#define SUPHARDNT_ADVERSARY_TRENDMICRO_SAKFILE RT_BIT_32(4) +/** McAfee. */ +#define SUPHARDNT_ADVERSARY_MCAFEE RT_BIT_32(5) +/** Kaspersky or OEMs of it. */ +#define SUPHARDNT_ADVERSARY_KASPERSKY RT_BIT_32(6) +/** Malwarebytes Anti-Malware (MBAM). */ +#define SUPHARDNT_ADVERSARY_MBAM RT_BIT_32(7) +/** AVG Internet Security. */ +#define SUPHARDNT_ADVERSARY_AVG RT_BIT_32(8) +/** Panda Security. */ +#define SUPHARDNT_ADVERSARY_PANDA RT_BIT_32(9) +/** Microsoft Security Essentials. */ +#define SUPHARDNT_ADVERSARY_MSE RT_BIT_32(10) +/** Comodo. */ +#define SUPHARDNT_ADVERSARY_COMODO RT_BIT_32(11) +/** Check Point's Zone Alarm (may include Kaspersky). */ +#define SUPHARDNT_ADVERSARY_ZONE_ALARM RT_BIT_32(12) +/** Digital guardian. */ +#define SUPHARDNT_ADVERSARY_DIGITAL_GUARDIAN RT_BIT_32(13) +/** Unknown adversary detected while waiting on child. */ +#define SUPHARDNT_ADVERSARY_UNKNOWN RT_BIT_32(31) +/** @} */ + + +/******************************************************************************* +* Internal Functions * +*******************************************************************************/ +static NTSTATUS supR3HardenedScreenImage(HANDLE hFile, bool fImage, bool fIgnoreArch, PULONG pfAccess, PULONG pfProtect, + bool *pfCallRealApi, const char *pszCaller, bool fAvoidWinVerifyTrust, + bool *pfQuiet); +static void supR3HardenedWinRegisterDllNotificationCallback(void); +static void supR3HardenedWinReInstallHooks(bool fFirst); +DECLASM(void) supR3HardenedEarlyProcessInitThunk(void); + + + +/** + * Simple wide char search routine. + * + * @returns Pointer to the first location of @a wcNeedle in @a pwszHaystack. + * NULL if not found. + * @param pwszHaystack Pointer to the string that should be searched. + * @param wcNeedle The character to search for. + */ +static PRTUTF16 suplibHardenedWStrChr(PCRTUTF16 pwszHaystack, RTUTF16 wcNeedle) +{ + for (;;) + { + RTUTF16 wcCur = *pwszHaystack; + if (wcCur == wcNeedle) + return (PRTUTF16)pwszHaystack; + if (wcCur == '\0') + return NULL; + pwszHaystack++; + } +} + + +/** + * Simple wide char string length routine. + * + * @returns The number of characters in the given string. (Excludes the + * terminator.) + * @param pwsz The string. + */ +static size_t suplibHardenedWStrLen(PCRTUTF16 pwsz) +{ + PCRTUTF16 pwszCur = pwsz; + while (*pwszCur != '\0') + pwszCur++; + return pwszCur - pwsz; +} + + +/** + * Our version of GetTickCount. + * @returns Millisecond timestamp. + */ +static uint64_t supR3HardenedWinGetMilliTS(void) +{ + PKUSER_SHARED_DATA pUserSharedData = (PKUSER_SHARED_DATA)(uintptr_t)0x7ffe0000; + + /* use interrupt time */ + LARGE_INTEGER Time; + do + { + Time.HighPart = pUserSharedData->InterruptTime.High1Time; + Time.LowPart = pUserSharedData->InterruptTime.LowPart; + } while (pUserSharedData->InterruptTime.High2Time != Time.HighPart); + + return (uint64_t)Time.QuadPart / 10000; +} + + + +/** + * Wrapper around LoadLibraryEx that deals with the UTF-8 to UTF-16 conversion + * and supplies the right flags. + * + * @returns Module handle on success, NULL on failure. + * @param pszName The full path to the DLL. + * @param fSystem32Only Whether to only look for imports in the system32 + * directory. If set to false, the application + * directory is also searched. + */ +DECLHIDDEN(void *) supR3HardenedWinLoadLibrary(const char *pszName, bool fSystem32Only) +{ + WCHAR wszPath[RTPATH_MAX]; + PRTUTF16 pwszPath = wszPath; + int rc = RTStrToUtf16Ex(pszName, RTSTR_MAX, &pwszPath, RT_ELEMENTS(wszPath), NULL); + if (RT_SUCCESS(rc)) + { + while (*pwszPath) + { + if (*pwszPath == '/') + *pwszPath = '\\'; + pwszPath++; + } + + DWORD fFlags = 0; + if (g_uNtVerCombined >= SUP_MAKE_NT_VER_SIMPLE(6, 0)) + { + fFlags |= LOAD_LIBRARY_SEARCH_SYSTEM32; + if (!fSystem32Only) + fFlags |= LOAD_LIBRARY_SEARCH_APPLICATION_DIR; + } + + void *pvRet = (void *)LoadLibraryExW(wszPath, NULL /*hFile*/, fFlags); + + /* Vista, W7, W2K8R might not work without KB2533623, so retry with no flags. */ + if ( !pvRet + && fFlags + && g_uNtVerCombined < SUP_MAKE_NT_VER_SIMPLE(6, 2) + && RtlGetLastWin32Error() == ERROR_INVALID_PARAMETER) + pvRet = (void *)LoadLibraryExW(wszPath, NULL /*hFile*/, 0); + + return pvRet; + } + supR3HardenedFatal("RTStrToUtf16Ex failed on '%s': %Rrc", pszName, rc); + return NULL; +} + + +/** + * Gets the internal index number of the file. + * + * @returns True if we got an index number, false if not. + * @param hFile The file in question. + * @param pIndexNumber where to return the index number. + */ +static bool supR3HardenedWinVerifyCacheGetIndexNumber(HANDLE hFile, PLARGE_INTEGER pIndexNumber) +{ + IO_STATUS_BLOCK Ios = RTNT_IO_STATUS_BLOCK_INITIALIZER; + NTSTATUS rcNt = NtQueryInformationFile(hFile, &Ios, pIndexNumber, sizeof(*pIndexNumber), FileInternalInformation); + if (NT_SUCCESS(rcNt)) + rcNt = Ios.Status; +#ifdef DEBUG_bird + if (!NT_SUCCESS(rcNt)) + __debugbreak(); +#endif + return NT_SUCCESS(rcNt) && pIndexNumber->QuadPart != 0; +} + + +/** + * Calculates the hash value for the given UTF-16 path string. + * + * @returns Hash value. + * @param pUniStr String to hash. + */ +static uint32_t supR3HardenedWinVerifyCacheHashPath(PCUNICODE_STRING pUniStr) +{ + uint32_t uHash = 0; + unsigned cwcLeft = pUniStr->Length / sizeof(WCHAR); + PRTUTF16 pwc = pUniStr->Buffer; + + while (cwcLeft-- > 0) + { + RTUTF16 wc = *pwc++; + if (wc < 0x80) + wc = wc != '/' ? RT_C_TO_LOWER(wc) : '\\'; + uHash = wc + (uHash << 6) + (uHash << 16) - uHash; + } + return uHash; +} + + +/** + * Calculates the hash value for a directory + filename combo as if they were + * one single string. + * + * @returns Hash value. + * @param pawcDir The directory name. + * @param cwcDir The length of the directory name. RTSTR_MAX if + * not available. + * @param pszName The import name (UTF-8). + */ +static uint32_t supR3HardenedWinVerifyCacheHashDirAndFile(PCRTUTF16 pawcDir, uint32_t cwcDir, const char *pszName) +{ + uint32_t uHash = 0; + while (cwcDir-- > 0) + { + RTUTF16 wc = *pawcDir++; + if (wc < 0x80) + wc = wc != '/' ? RT_C_TO_LOWER(wc) : '\\'; + uHash = wc + (uHash << 6) + (uHash << 16) - uHash; + } + + unsigned char ch = '\\'; + uHash = ch + (uHash << 6) + (uHash << 16) - uHash; + + while ((ch = *pszName++) != '\0') + { + ch = RT_C_TO_LOWER(ch); + uHash = ch + (uHash << 6) + (uHash << 16) - uHash; + } + + return uHash; +} + + +/** + * Verify string cache compare function. + * + * @returns true if the strings match, false if not. + * @param pawcLeft The left hand string. + * @param pawcRight The right hand string. + * @param cwcToCompare The number of chars to compare. + */ +static bool supR3HardenedWinVerifyCacheIsMatch(PCRTUTF16 pawcLeft, PCRTUTF16 pawcRight, uint32_t cwcToCompare) +{ + /* Try a quick memory compare first. */ + if (memcmp(pawcLeft, pawcRight, cwcToCompare * sizeof(RTUTF16)) == 0) + return true; + + /* Slow char by char compare. */ + while (cwcToCompare-- > 0) + { + RTUTF16 wcLeft = *pawcLeft++; + RTUTF16 wcRight = *pawcRight++; + if (wcLeft != wcRight) + { + wcLeft = wcLeft != '/' ? RT_C_TO_LOWER(wcLeft) : '\\'; + wcRight = wcRight != '/' ? RT_C_TO_LOWER(wcRight) : '\\'; + if (wcLeft != wcRight) + return false; + } + } + + return true; +} + + + +/** + * Inserts the given verifier result into the cache. + * + * @param pUniStr The full path of the image. + * @param hFile The file handle - must either be entered into + * the cache or closed. + * @param rc The verifier result. + * @param fWinVerifyTrust Whether verified by WinVerifyTrust or not. + * @param fFlags The image verification flags. + */ +static void supR3HardenedWinVerifyCacheInsert(PCUNICODE_STRING pUniStr, HANDLE hFile, int rc, + bool fWinVerifyTrust, uint32_t fFlags) +{ + /* + * Allocate and initalize a new entry. + */ + PVERIFIERCACHEENTRY pEntry = (PVERIFIERCACHEENTRY)RTMemAllocZ(sizeof(VERIFIERCACHEENTRY) + pUniStr->Length); + if (pEntry) + { + pEntry->pNext = NULL; + pEntry->pNextTodoWvt = NULL; + pEntry->hFile = hFile; + pEntry->uHash = supR3HardenedWinVerifyCacheHashPath(pUniStr); + pEntry->rc = rc; + pEntry->fFlags = fFlags; + pEntry->cHits = 0; + pEntry->fWinVerifyTrust = fWinVerifyTrust; + pEntry->cbPath = pUniStr->Length; + memcpy(pEntry->wszPath, pUniStr->Buffer, pUniStr->Length); + pEntry->wszPath[pUniStr->Length / sizeof(WCHAR)] = '\0'; + pEntry->fIndexNumberValid = supR3HardenedWinVerifyCacheGetIndexNumber(hFile, &pEntry->IndexNumber); + + /* + * Try insert it, careful with concurrent code as well as potential duplicates. + */ + uint32_t iHashTab = pEntry->uHash % RT_ELEMENTS(g_apVerifierCache); + VERIFIERCACHEENTRY * volatile *ppEntry = &g_apVerifierCache[iHashTab]; + for (;;) + { + if (ASMAtomicCmpXchgPtr(ppEntry, pEntry, NULL)) + { + if (!fWinVerifyTrust) + do + pEntry->pNextTodoWvt = g_pVerifierCacheTodoWvt; + while (!ASMAtomicCmpXchgPtr(&g_pVerifierCacheTodoWvt, pEntry, pEntry->pNextTodoWvt)); + + SUP_DPRINTF(("supR3HardenedWinVerifyCacheInsert: %ls\n", pUniStr->Buffer)); + return; + } + + PVERIFIERCACHEENTRY pOther = *ppEntry; + if (!pOther) + continue; + if ( pOther->uHash == pEntry->uHash + && pOther->cbPath == pEntry->cbPath + && supR3HardenedWinVerifyCacheIsMatch(pOther->wszPath, pEntry->wszPath, pEntry->cbPath / sizeof(RTUTF16))) + break; + ppEntry = &pOther->pNext; + } + + /* Duplicate entry (may happen due to races). */ + RTMemFree(pEntry); + } + NtClose(hFile); +} + + +/** + * Looks up an entry in the verifier hash table. + * + * @return Pointer to the entry on if found, NULL if not. + * @param pUniStr The full path of the image. + * @param hFile The file handle. + */ +static PVERIFIERCACHEENTRY supR3HardenedWinVerifyCacheLookup(PCUNICODE_STRING pUniStr, HANDLE hFile) +{ + PRTUTF16 const pwszPath = pUniStr->Buffer; + uint16_t const cbPath = pUniStr->Length; + uint32_t uHash = supR3HardenedWinVerifyCacheHashPath(pUniStr); + uint32_t iHashTab = uHash % RT_ELEMENTS(g_apVerifierCache); + PVERIFIERCACHEENTRY pCur = g_apVerifierCache[iHashTab]; + while (pCur) + { + if ( pCur->uHash == uHash + && pCur->cbPath == cbPath + && supR3HardenedWinVerifyCacheIsMatch(pCur->wszPath, pwszPath, cbPath / sizeof(RTUTF16))) + { + + if (!pCur->fIndexNumberValid) + return pCur; + LARGE_INTEGER IndexNumber; + bool fIndexNumberValid = supR3HardenedWinVerifyCacheGetIndexNumber(hFile, &IndexNumber); + if ( fIndexNumberValid + && IndexNumber.QuadPart == pCur->IndexNumber.QuadPart) + return pCur; +#ifdef DEBUG_bird + __debugbreak(); +#endif + } + pCur = pCur->pNext; + } + return NULL; +} + + +/** + * Looks up an import DLL in the verifier hash table. + * + * @return Pointer to the entry on if found, NULL if not. + * @param pawcDir The directory name. + * @param cwcDir The length of the directory name. + * @param pszName The import name (UTF-8). + */ +static PVERIFIERCACHEENTRY supR3HardenedWinVerifyCacheLookupImport(PCRTUTF16 pawcDir, uint32_t cwcDir, const char *pszName) +{ + uint32_t uHash = supR3HardenedWinVerifyCacheHashDirAndFile(pawcDir, cwcDir, pszName); + uint32_t iHashTab = uHash % RT_ELEMENTS(g_apVerifierCache); + uint32_t const cbPath = (uint32_t)((cwcDir + 1 + strlen(pszName)) * sizeof(RTUTF16)); + PVERIFIERCACHEENTRY pCur = g_apVerifierCache[iHashTab]; + while (pCur) + { + if ( pCur->uHash == uHash + && pCur->cbPath == cbPath) + { + if (supR3HardenedWinVerifyCacheIsMatch(pCur->wszPath, pawcDir, cwcDir)) + { + if (pCur->wszPath[cwcDir] == '\\' || pCur->wszPath[cwcDir] == '/') + { + if (RTUtf16ICmpAscii(&pCur->wszPath[cwcDir + 1], pszName)) + { + return pCur; + } + } + } + } + + pCur = pCur->pNext; + } + return NULL; +} + + +/** + * Schedules the import DLLs for verification and entry into the cache. + * + * @param hLdrMod The loader module which imports should be + * scheduled for verification. + * @param pwszName The full NT path of the module. + */ +DECLHIDDEN(void) supR3HardenedWinVerifyCacheScheduleImports(RTLDRMOD hLdrMod, PCRTUTF16 pwszName) +{ + /* + * Any imports? + */ + uint32_t cImports; + int rc = RTLdrQueryPropEx(hLdrMod, RTLDRPROP_IMPORT_COUNT, NULL /*pvBits*/, &cImports, sizeof(cImports), NULL); + if (RT_SUCCESS(rc)) + { + if (cImports) + { + /* + * Figure out the DLL directory from pwszName. + */ + PCRTUTF16 pawcDir = pwszName; + uint32_t cwcDir = 0; + uint32_t i = 0; + RTUTF16 wc; + while ((wc = pawcDir[i++]) != '\0') + if ((wc == '\\' || wc == '/' || wc == ':') && cwcDir + 2 != i) + cwcDir = i - 1; + if ( g_System32NtPath.UniStr.Length / sizeof(WCHAR) == cwcDir + && supR3HardenedWinVerifyCacheIsMatch(pawcDir, g_System32NtPath.UniStr.Buffer, cwcDir)) + pawcDir = NULL; + + /* + * Enumerate the imports. + */ + for (i = 0; i < cImports; i++) + { + union + { + char szName[256]; + uint32_t iImport; + } uBuf; + uBuf.iImport = i; + rc = RTLdrQueryPropEx(hLdrMod, RTLDRPROP_IMPORT_MODULE, NULL /*pvBits*/, &uBuf, sizeof(uBuf), NULL); + if (RT_SUCCESS(rc)) + { + /* + * Skip kernel32, ntdll and API set stuff. + */ + RTStrToLower(uBuf.szName); + if ( RTStrCmp(uBuf.szName, "kernel32.dll") == 0 + || RTStrCmp(uBuf.szName, "kernelbase.dll") == 0 + || RTStrCmp(uBuf.szName, "ntdll.dll") == 0 + || RTStrNCmp(uBuf.szName, RT_STR_TUPLE("api-ms-win-")) == 0 + || RTStrNCmp(uBuf.szName, RT_STR_TUPLE("ext-ms-win-")) == 0 + ) + { + continue; + } + + /* + * Skip to the next one if it's already in the cache. + */ + if (supR3HardenedWinVerifyCacheLookupImport(g_System32NtPath.UniStr.Buffer, + g_System32NtPath.UniStr.Length / sizeof(WCHAR), + uBuf.szName) != NULL) + { + SUP_DPRINTF(("supR3HardenedWinVerifyCacheScheduleImports: '%s' cached for system32\n", uBuf.szName)); + continue; + } + if (supR3HardenedWinVerifyCacheLookupImport(g_SupLibHardenedExeNtPath.UniStr.Buffer, + g_offSupLibHardenedExeNtName, + uBuf.szName) != NULL) + { + SUP_DPRINTF(("supR3HardenedWinVerifyCacheScheduleImports: '%s' cached for appdir\n", uBuf.szName)); + continue; + } + if (pawcDir && supR3HardenedWinVerifyCacheLookupImport(pawcDir, cwcDir, uBuf.szName) != NULL) + { + SUP_DPRINTF(("supR3HardenedWinVerifyCacheScheduleImports: '%s' cached for dll dir\n", uBuf.szName)); + continue; + } + + /* We could skip already scheduled modules, but that'll require serialization and extra work... */ + + /* + * Add it to the todo list. + */ + SUP_DPRINTF(("supR3HardenedWinVerifyCacheScheduleImports: Import todo: #%u '%s'.\n", i, uBuf.szName)); + uint32_t cbName = (uint32_t)strlen(uBuf.szName) + 1; + uint32_t cbNameAligned = RT_ALIGN_32(cbName, sizeof(RTUTF16)); + uint32_t cbNeeded = RT_OFFSETOF(VERIFIERCACHEIMPORT, szName[cbNameAligned]) + + (pawcDir ? (cwcDir + 1) * sizeof(RTUTF16) : 0); + PVERIFIERCACHEIMPORT pImport = (PVERIFIERCACHEIMPORT)RTMemAllocZ(cbNeeded); + if (pImport) + { + /* Init it. */ + memcpy(pImport->szName, uBuf.szName, cbName); + if (!pawcDir) + { + pImport->cwcAltSearchDir = 0; + pImport->pwszAltSearchDir = NULL; + } + else + { + pImport->cwcAltSearchDir = cwcDir; + pImport->pwszAltSearchDir = (PRTUTF16)&pImport->szName[cbNameAligned]; + memcpy(pImport->pwszAltSearchDir, pawcDir, cwcDir * sizeof(RTUTF16)); + pImport->pwszAltSearchDir[cwcDir] = '\0'; + } + + /* Insert it. */ + do + pImport->pNext = g_pVerifierCacheTodoImports; + while (!ASMAtomicCmpXchgPtr(&g_pVerifierCacheTodoImports, pImport, pImport->pNext)); + } + } + else + SUP_DPRINTF(("RTLDRPROP_IMPORT_MODULE failed with rc=%Rrc i=%#x on '%ls'\n", rc, i, pwszName)); + } + } + else + SUP_DPRINTF(("'%ls' has no imports\n", pwszName)); + } + else + SUP_DPRINTF(("RTLDRPROP_IMPORT_COUNT failed with rc=%Rrc on '%ls'\n", rc, pwszName)); +} + + +/** + * Processes the list of import todos. + */ +static void supR3HardenedWinVerifyCacheProcessImportTodos(void) +{ + /* + * Work until we've got nothing more todo. + */ + for (;;) + { + PVERIFIERCACHEIMPORT pTodo = ASMAtomicXchgPtrT(&g_pVerifierCacheTodoImports, NULL, PVERIFIERCACHEIMPORT); + if (!pTodo) + break; + do + { + PVERIFIERCACHEIMPORT pCur = pTodo; + pTodo = pTodo->pNext; + + /* + * Not in the cached already? + */ + if ( !supR3HardenedWinVerifyCacheLookupImport(g_System32NtPath.UniStr.Buffer, + g_System32NtPath.UniStr.Length / sizeof(WCHAR), + pCur->szName) + && !supR3HardenedWinVerifyCacheLookupImport(g_SupLibHardenedExeNtPath.UniStr.Buffer, + g_offSupLibHardenedExeNtName, + pCur->szName) + && ( pCur->cwcAltSearchDir == 0 + || !supR3HardenedWinVerifyCacheLookupImport(pCur->pwszAltSearchDir, pCur->cwcAltSearchDir, pCur->szName)) ) + { + /* + * Try locate the imported DLL and open it. + */ + SUP_DPRINTF(("supR3HardenedWinVerifyCacheProcessImportTodos: Processing '%s'...\n", pCur->szName)); + + NTSTATUS rcNt; + NTSTATUS rcNtRedir = 0x22222222; + HANDLE hFile = INVALID_HANDLE_VALUE; + RTUTF16 wszPath[260 + 260]; /* Assumes we've limited the import name length to 256. */ + AssertCompile(sizeof(wszPath) > sizeof(g_System32NtPath)); + + /* + * Check for DLL isolation / redirection / mapping. + */ + size_t cwcName = 260; + PRTUTF16 pwszName = &wszPath[0]; + int rc = RTStrToUtf16Ex(pCur->szName, RTSTR_MAX, &pwszName, cwcName, &cwcName); + if (RT_SUCCESS(rc)) + { + UNICODE_STRING UniStrName; + UniStrName.Buffer = wszPath; + UniStrName.Length = (USHORT)cwcName * sizeof(WCHAR); + UniStrName.MaximumLength = UniStrName.Length + sizeof(WCHAR); + + UNICODE_STRING UniStrStatic; + UniStrStatic.Buffer = &wszPath[cwcName + 1]; + UniStrStatic.Length = 0; + UniStrStatic.MaximumLength = (USHORT)(sizeof(wszPath) - cwcName * sizeof(WCHAR) - sizeof(WCHAR)); + + static UNICODE_STRING const s_DefaultSuffix = RTNT_CONSTANT_UNISTR(L".dll"); + UNICODE_STRING UniStrDynamic = { 0, 0, NULL }; + PUNICODE_STRING pUniStrResult = NULL; + + rcNtRedir = RtlDosApplyFileIsolationRedirection_Ustr(1 /*fFlags*/, + &UniStrName, + (PUNICODE_STRING)&s_DefaultSuffix, + &UniStrStatic, + &UniStrDynamic, + &pUniStrResult, + NULL /*pNewFlags*/, + NULL /*pcbFilename*/, + NULL /*pcbNeeded*/); + if (NT_SUCCESS(rcNtRedir)) + { + IO_STATUS_BLOCK Ios = RTNT_IO_STATUS_BLOCK_INITIALIZER; + OBJECT_ATTRIBUTES ObjAttr; + InitializeObjectAttributes(&ObjAttr, pUniStrResult, + OBJ_CASE_INSENSITIVE, NULL /*hRootDir*/, NULL /*pSecDesc*/); + rcNt = NtCreateFile(&hFile, + FILE_READ_DATA | READ_CONTROL | SYNCHRONIZE, + &ObjAttr, + &Ios, + NULL /* Allocation Size*/, + FILE_ATTRIBUTE_NORMAL, + FILE_SHARE_READ, + FILE_OPEN, + FILE_NON_DIRECTORY_FILE | FILE_SYNCHRONOUS_IO_NONALERT, + NULL /*EaBuffer*/, + 0 /*EaLength*/); + if (NT_SUCCESS(rcNt)) + rcNt = Ios.Status; + if (NT_SUCCESS(rcNt)) + { + /* For accurate logging. */ + size_t cwcCopy = RT_MIN(pUniStrResult->Length / sizeof(RTUTF16), RT_ELEMENTS(wszPath) - 1); + memcpy(wszPath, pUniStrResult->Buffer, cwcCopy * sizeof(RTUTF16)); + wszPath[cwcCopy] = '\0'; + } + else + hFile = INVALID_HANDLE_VALUE; + RtlFreeUnicodeString(&UniStrDynamic); + } + } + else + SUP_DPRINTF(("supR3HardenedWinVerifyCacheProcessImportTodos: RTStrToUtf16Ex #1 failed: %Rrc\n", rc)); + + /* + * If not something that gets remapped, do the half normal searching we need. + */ + if (hFile == INVALID_HANDLE_VALUE) + { + struct + { + PRTUTF16 pawcDir; + uint32_t cwcDir; + } Tmp, aDirs[] = + { + { g_System32NtPath.UniStr.Buffer, g_System32NtPath.UniStr.Length / sizeof(WCHAR) }, + { g_SupLibHardenedExeNtPath.UniStr.Buffer, g_offSupLibHardenedExeNtName - 1 }, + { pCur->pwszAltSearchDir, pCur->cwcAltSearchDir }, + }; + + /* Search System32 first, unless it's a 'V*' or 'm*' name, the latter for msvcrt. */ + if ( pCur->szName[0] == 'v' + || pCur->szName[0] == 'V' + || pCur->szName[0] == 'm' + || pCur->szName[0] == 'M') + { + Tmp = aDirs[0]; + aDirs[0] = aDirs[1]; + aDirs[1] = Tmp; + } + + for (uint32_t i = 0; i < RT_ELEMENTS(aDirs); i++) + { + if (aDirs[i].pawcDir && aDirs[i].cwcDir && aDirs[i].cwcDir < RT_ELEMENTS(wszPath) / 3 * 2) + { + memcpy(wszPath, aDirs[i].pawcDir, aDirs[i].cwcDir * sizeof(RTUTF16)); + uint32_t cwc = aDirs[i].cwcDir; + wszPath[cwc++] = '\\'; + cwcName = RT_ELEMENTS(wszPath) - cwc; + pwszName = &wszPath[cwc]; + rc = RTStrToUtf16Ex(pCur->szName, RTSTR_MAX, &pwszName, cwcName, &cwcName); + if (RT_SUCCESS(rc)) + { + IO_STATUS_BLOCK Ios = RTNT_IO_STATUS_BLOCK_INITIALIZER; + UNICODE_STRING NtName; + NtName.Buffer = wszPath; + NtName.Length = (USHORT)((cwc + cwcName) * sizeof(WCHAR)); + NtName.MaximumLength = NtName.Length + sizeof(WCHAR); + OBJECT_ATTRIBUTES ObjAttr; + InitializeObjectAttributes(&ObjAttr, &NtName, OBJ_CASE_INSENSITIVE, NULL /*hRootDir*/, NULL /*pSecDesc*/); + + rcNt = NtCreateFile(&hFile, + FILE_READ_DATA | READ_CONTROL | SYNCHRONIZE, + &ObjAttr, + &Ios, + NULL /* Allocation Size*/, + FILE_ATTRIBUTE_NORMAL, + FILE_SHARE_READ, + FILE_OPEN, + FILE_NON_DIRECTORY_FILE | FILE_SYNCHRONOUS_IO_NONALERT, + NULL /*EaBuffer*/, + 0 /*EaLength*/); + if (NT_SUCCESS(rcNt)) + rcNt = Ios.Status; + if (NT_SUCCESS(rcNt)) + break; + hFile = INVALID_HANDLE_VALUE; + } + else + SUP_DPRINTF(("supR3HardenedWinVerifyCacheProcessImportTodos: RTStrToUtf16Ex #2 failed: %Rrc\n", rc)); + } + } + } + + /* + * If we successfully opened it, verify it and cache the result. + */ + if (hFile != INVALID_HANDLE_VALUE) + { + SUP_DPRINTF(("supR3HardenedWinVerifyCacheProcessImportTodos: '%s' -> '%ls' [rcNtRedir=%#x]\n", + pCur->szName, wszPath, rcNtRedir)); + + ULONG fAccess = 0; + ULONG fProtect = 0; + bool fCallRealApi = false; + rcNt = supR3HardenedScreenImage(hFile, true /*fImage*/, false /*fIgnoreArch*/, &fAccess, &fProtect, + &fCallRealApi, "Imports", false /*fAvoidWinVerifyTrust*/, NULL /*pfQuiet*/); + NtClose(hFile); + } + else + SUP_DPRINTF(("supR3HardenedWinVerifyCacheProcessImportTodos: Failed to locate '%s'\n", pCur->szName)); + } + else + SUP_DPRINTF(("supR3HardenedWinVerifyCacheProcessImportTodos: '%s' is in the cache.\n", pCur->szName)); + + RTMemFree(pCur); + } while (pTodo); + } +} + + +/** + * Processes the list of WinVerifyTrust todos. + */ +static void supR3HardenedWinVerifyCacheProcessWvtTodos(void) +{ + PVERIFIERCACHEENTRY pReschedule = NULL; + PVERIFIERCACHEENTRY volatile *ppReschedLastNext = NULL; + + /* + * Work until we've got nothing more todo. + */ + for (;;) + { + if (!supHardenedWinIsWinVerifyTrustCallable()) + break; + PVERIFIERCACHEENTRY pTodo = ASMAtomicXchgPtrT(&g_pVerifierCacheTodoWvt, NULL, PVERIFIERCACHEENTRY); + if (!pTodo) + break; + do + { + PVERIFIERCACHEENTRY pCur = pTodo; + pTodo = pTodo->pNextTodoWvt; + pCur->pNextTodoWvt = NULL; + + if ( !pCur->fWinVerifyTrust + && RT_SUCCESS(pCur->rc)) + { + bool fWinVerifyTrust = false; + int rc = supHardenedWinVerifyImageTrust(pCur->hFile, pCur->wszPath, pCur->fFlags, pCur->rc, + &fWinVerifyTrust, NULL /* pErrInfo*/); + if (RT_FAILURE(rc) || fWinVerifyTrust) + { + SUP_DPRINTF(("supR3HardenedWinVerifyCacheProcessWvtTodos: %d (was %d) fWinVerifyTrust=%d for '%ls'\n", + rc, pCur->rc, fWinVerifyTrust, pCur->wszPath)); + pCur->fWinVerifyTrust = true; + pCur->rc = rc; + } + else + { + /* Retry it at a later time. */ + SUP_DPRINTF(("supR3HardenedWinVerifyCacheProcessWvtTodos: %d (was %d) fWinVerifyTrust=%d for '%ls' [rescheduled]\n", + rc, pCur->rc, fWinVerifyTrust, pCur->wszPath)); + if (!pReschedule) + ppReschedLastNext = &pCur->pNextTodoWvt; + pCur->pNextTodoWvt = pReschedule; + } + } + /* else: already processed. */ + } while (pTodo); + } + + /* + * Anything to reschedule. + */ + if (pReschedule) + { + do + *ppReschedLastNext = g_pVerifierCacheTodoWvt; + while (!ASMAtomicCmpXchgPtr(&g_pVerifierCacheTodoWvt, pReschedule, *ppReschedLastNext)); + } +} + + +/** + * Screens an image file or file mapped with execute access. + * + * @returns NT status code. + * @param hFile The file handle. + * @param fImage Set if image file mapping being made + * (NtCreateSection thing). + * @param fIgnoreArch Using the DONT_RESOLVE_DLL_REFERENCES flag, + * which also implies that DLL init / term code + * isn't called, so the architecture should be + * ignored. + * @param pfAccess Pointer to the NtCreateSection access flags, + * so we can modify them if necessary. + * @param pfProtect Pointer to the NtCreateSection protection + * flags, so we can modify them if necessary. + * @param pfCallRealApi Whether it's ok to go on to the real API. + * @param pszCaller Who is calling (for debugging / logging). + * @param fAvoidWinVerifyTrust Whether we should avoid WinVerifyTrust. + * @param pfQuiet Where to return whether to be quiet about + * this image in the log (i.e. we've seen it + * lots of times already). Optional. + */ +static NTSTATUS supR3HardenedScreenImage(HANDLE hFile, bool fImage, bool fIgnoreArch, PULONG pfAccess, PULONG pfProtect, + bool *pfCallRealApi, const char *pszCaller, bool fAvoidWinVerifyTrust, bool *pfQuiet) +{ + *pfCallRealApi = false; + if (pfQuiet) + *pfQuiet = false; + + /* + * Query the name of the file, making sure to zero terminator the + * string. (2nd half of buffer is used for error info, see below.) + */ + union + { + UNICODE_STRING UniStr; + uint8_t abBuffer[sizeof(UNICODE_STRING) + 2048 * sizeof(WCHAR)]; + } uBuf; + RT_ZERO(uBuf); + ULONG cbNameBuf; + NTSTATUS rcNt = NtQueryObject(hFile, ObjectNameInformation, &uBuf, sizeof(uBuf) - sizeof(WCHAR) - 128, &cbNameBuf); + if (!NT_SUCCESS(rcNt)) + { + supR3HardenedError(VINF_SUCCESS, false, + "supR3HardenedScreenImage/%s: NtQueryObject -> %#x (fImage=%d fProtect=%#x fAccess=%#x)\n", + pszCaller, fImage, *pfProtect, *pfAccess); + return rcNt; + } + + if (supHardNtVpIsPossible8dot3Path(uBuf.UniStr.Buffer)) + { + uBuf.UniStr.MaximumLength = sizeof(uBuf) - 128; + supHardNtVpFix8dot3Path(&uBuf.UniStr, true /*fPathOnly*/); + } + + /* + * Check the cache. + */ + PVERIFIERCACHEENTRY pCacheHit = supR3HardenedWinVerifyCacheLookup(&uBuf.UniStr, hFile); + if (pCacheHit) + { + /* Do hit accounting and figure whether we need to be quiet or not. */ + uint32_t cHits = ASMAtomicIncU32(&pCacheHit->cHits); + bool const fQuiet = cHits >= 8 && !RT_IS_POWER_OF_TWO(cHits); + if (pfQuiet) + *pfQuiet = fQuiet; + + /* If we haven't done the WinVerifyTrust thing, do it if we can. */ + if ( !pCacheHit->fWinVerifyTrust + && RT_SUCCESS(pCacheHit->rc) + && supHardenedWinIsWinVerifyTrustCallable() ) + { + if (!fAvoidWinVerifyTrust) + { + SUP_DPRINTF(("supR3HardenedScreenImage/%s: cache hit (%Rrc) on %ls [redoing WinVerifyTrust]\n", + pszCaller, pCacheHit->rc, pCacheHit->wszPath)); + + bool fWinVerifyTrust = false; + int rc = supHardenedWinVerifyImageTrust(pCacheHit->hFile, pCacheHit->wszPath, pCacheHit->fFlags, pCacheHit->rc, + &fWinVerifyTrust, NULL /* pErrInfo*/); + if (RT_FAILURE(rc) || fWinVerifyTrust) + { + SUP_DPRINTF(("supR3HardenedScreenImage/%s: %d (was %d) fWinVerifyTrust=%d for '%ls'\n", + pszCaller, rc, pCacheHit->rc, fWinVerifyTrust, pCacheHit->wszPath)); + pCacheHit->fWinVerifyTrust = true; + pCacheHit->rc = rc; + } + else + SUP_DPRINTF(("supR3HardenedScreenImage/%s: WinVerifyTrust not available, rescheduling %ls\n", + pszCaller, pCacheHit->wszPath)); + } + else + SUP_DPRINTF(("supR3HardenedScreenImage/%s: cache hit (%Rrc) on %ls [avoiding WinVerifyTrust]\n", + pszCaller, pCacheHit->rc, pCacheHit->wszPath)); + } + else if (!fQuiet || !pCacheHit->fWinVerifyTrust) + SUP_DPRINTF(("supR3HardenedScreenImage/%s: cache hit (%Rrc) on %ls%s\n", + pszCaller, pCacheHit->rc, pCacheHit->wszPath, pCacheHit->fWinVerifyTrust ? "" : " [lacks WinVerifyTrust]")); + + /* Return the cached value. */ + if (RT_SUCCESS(pCacheHit->rc)) + { + *pfCallRealApi = true; + return STATUS_SUCCESS; + } + + if (!fQuiet) + supR3HardenedError(VINF_SUCCESS, false, + "supR3HardenedScreenImage/%s: cached rc=%Rrc fImage=%d fProtect=%#x fAccess=%#x cHits=%u %ls\n", + pszCaller, pCacheHit->rc, fImage, *pfProtect, *pfAccess, cHits, uBuf.UniStr.Buffer); + return STATUS_TRUST_FAILURE; + } + + /* + * On XP the loader might hand us handles with just FILE_EXECUTE and + * SYNCHRONIZE, the means reading will fail later on. Also, we need + * READ_CONTROL access to check the file ownership later on, and non + * of the OS versions seems be giving us that. So, in effect we + * more or less always reopen the file here. + */ + HANDLE hMyFile = NULL; + rcNt = NtDuplicateObject(NtCurrentProcess(), hFile, NtCurrentProcess(), + &hMyFile, + FILE_READ_DATA | READ_CONTROL | SYNCHRONIZE, + 0 /* Handle attributes*/, 0 /* Options */); + if (!NT_SUCCESS(rcNt)) + { + if (rcNt == STATUS_ACCESS_DENIED) + { + IO_STATUS_BLOCK Ios = RTNT_IO_STATUS_BLOCK_INITIALIZER; + OBJECT_ATTRIBUTES ObjAttr; + InitializeObjectAttributes(&ObjAttr, &uBuf.UniStr, OBJ_CASE_INSENSITIVE, NULL /*hRootDir*/, NULL /*pSecDesc*/); + + rcNt = NtCreateFile(&hMyFile, + FILE_READ_DATA | READ_CONTROL | SYNCHRONIZE, + &ObjAttr, + &Ios, + NULL /* Allocation Size*/, + FILE_ATTRIBUTE_NORMAL, + FILE_SHARE_READ, + FILE_OPEN, + FILE_NON_DIRECTORY_FILE | FILE_SYNCHRONOUS_IO_NONALERT, + NULL /*EaBuffer*/, + 0 /*EaLength*/); + if (NT_SUCCESS(rcNt)) + rcNt = Ios.Status; + if (!NT_SUCCESS(rcNt)) + { + supR3HardenedError(VINF_SUCCESS, false, + "supR3HardenedScreenImage/%s: Failed to duplicate and open the file: rcNt=%#x hFile=%p %ls\n", + pszCaller, rcNt, hFile, uBuf.UniStr.Buffer); + return rcNt; + } + + /* Check that we've got the same file. */ + LARGE_INTEGER idMyFile, idInFile; + bool fMyValid = supR3HardenedWinVerifyCacheGetIndexNumber(hMyFile, &idMyFile); + bool fInValid = supR3HardenedWinVerifyCacheGetIndexNumber(hFile, &idInFile); + if ( fMyValid + && ( fMyValid != fInValid + || idMyFile.QuadPart != idInFile.QuadPart)) + { + supR3HardenedError(VINF_SUCCESS, false, + "supR3HardenedScreenImage/%s: Re-opened has different ID that input: %#llx vx %#llx (%ls)\n", + pszCaller, rcNt, idMyFile.QuadPart, idInFile.QuadPart, uBuf.UniStr.Buffer); + NtClose(hMyFile); + return STATUS_TRUST_FAILURE; + } + } + else + { + SUP_DPRINTF(("supR3HardenedScreenImage/%s: NtDuplicateObject -> %#x\n", pszCaller, rcNt)); +#ifdef DEBUG + + supR3HardenedError(VINF_SUCCESS, false, + "supR3HardenedScreenImage/%s: NtDuplicateObject(,%#x,) failed: %#x\n", pszCaller, hFile, rcNt); +#endif + hMyFile = hFile; + } + } + + /* + * Special Kludge for Windows XP and W2K3 and their stupid attempts + * at mapping a hidden XML file called c:\Windows\WindowsShell.Manifest + * with executable access. The image bit isn't set, fortunately. + */ + if ( !fImage + && uBuf.UniStr.Length > g_System32NtPath.UniStr.Length - sizeof(L"System32") + sizeof(WCHAR) + && memcmp(uBuf.UniStr.Buffer, g_System32NtPath.UniStr.Buffer, + g_System32NtPath.UniStr.Length - sizeof(L"System32") + sizeof(WCHAR)) == 0) + { + PRTUTF16 pwszName = &uBuf.UniStr.Buffer[(g_System32NtPath.UniStr.Length - sizeof(L"System32") + sizeof(WCHAR)) / sizeof(WCHAR)]; + if (RTUtf16ICmpAscii(pwszName, "WindowsShell.Manifest") == 0) + { + /* + * Drop all executable access to the mapping and let it continue. + */ + SUP_DPRINTF(("supR3HardenedScreenImage/%s: Applying the drop-exec-kludge for '%ls'\n", pszCaller, uBuf.UniStr.Buffer)); + if (*pfAccess & SECTION_MAP_EXECUTE) + *pfAccess = (*pfAccess & ~SECTION_MAP_EXECUTE) | SECTION_MAP_READ; + if (*pfProtect & PAGE_EXECUTE) + *pfProtect = (*pfProtect & ~PAGE_EXECUTE) | PAGE_READONLY; + *pfProtect = (*pfProtect & ~UINT32_C(0xf0)) | ((*pfProtect & UINT32_C(0xe0)) >> 4); + if (hMyFile != hFile) + NtClose(hMyFile); + *pfCallRealApi = true; + return STATUS_SUCCESS; + } + } + +#ifndef VBOX_PERMIT_EVEN_MORE + /* + * Check the path. We don't allow DLLs to be loaded from just anywhere: + * 1. System32 - normal code or cat signing, owner TrustedInstaller. + * 2. WinSxS - normal code or cat signing, owner TrustedInstaller. + * 3. VirtualBox - kernel code signing and integrity checks. + * 4. AppPatchDir - normal code or cat signing, owner TrustedInstaller. + * 5. Program Files - normal code or cat signing, owner TrustedInstaller. + * 6. Common Files - normal code or cat signing, owner TrustedInstaller. + * 7. x86 variations of 4 & 5 - ditto. + */ + Assert(g_SupLibHardenedExeNtPath.UniStr.Buffer[g_offSupLibHardenedExeNtName - 1] == '\\'); + uint32_t fFlags = 0; + if (supHardViUniStrPathStartsWithUniStr(&uBuf.UniStr, &g_System32NtPath.UniStr, true /*fCheckSlash*/)) + fFlags |= SUPHNTVI_F_ALLOW_CAT_FILE_VERIFICATION | SUPHNTVI_F_TRUSTED_INSTALLER_OWNER; + else if (supHardViUniStrPathStartsWithUniStr(&uBuf.UniStr, &g_WinSxSNtPath.UniStr, true /*fCheckSlash*/)) + fFlags |= SUPHNTVI_F_ALLOW_CAT_FILE_VERIFICATION | SUPHNTVI_F_TRUSTED_INSTALLER_OWNER; + else if (supHardViUtf16PathStartsWithEx(uBuf.UniStr.Buffer, uBuf.UniStr.Length / sizeof(WCHAR), + g_SupLibHardenedExeNtPath.UniStr.Buffer, + g_offSupLibHardenedExeNtName, false /*fCheckSlash*/)) + fFlags |= SUPHNTVI_F_REQUIRE_KERNEL_CODE_SIGNING | SUPHNTVI_F_REQUIRE_SIGNATURE_ENFORCEMENT; +# ifdef VBOX_PERMIT_MORE + else if (supHardViIsAppPatchDir(uBuf.UniStr.Buffer, uBuf.UniStr.Length / sizeof(WCHAR))) + fFlags |= SUPHNTVI_F_ALLOW_CAT_FILE_VERIFICATION | SUPHNTVI_F_TRUSTED_INSTALLER_OWNER; + else if (supHardViUniStrPathStartsWithUniStr(&uBuf.UniStr, &g_ProgramFilesNtPath.UniStr, true /*fCheckSlash*/)) + fFlags |= SUPHNTVI_F_ALLOW_CAT_FILE_VERIFICATION | SUPHNTVI_F_TRUSTED_INSTALLER_OWNER; + else if (supHardViUniStrPathStartsWithUniStr(&uBuf.UniStr, &g_CommonFilesNtPath.UniStr, true /*fCheckSlash*/)) + fFlags |= SUPHNTVI_F_ALLOW_CAT_FILE_VERIFICATION | SUPHNTVI_F_TRUSTED_INSTALLER_OWNER; +# ifdef RT_ARCH_AMD64 + else if (supHardViUniStrPathStartsWithUniStr(&uBuf.UniStr, &g_ProgramFilesX86NtPath.UniStr, true /*fCheckSlash*/)) + fFlags |= SUPHNTVI_F_ALLOW_CAT_FILE_VERIFICATION | SUPHNTVI_F_TRUSTED_INSTALLER_OWNER; + else if (supHardViUniStrPathStartsWithUniStr(&uBuf.UniStr, &g_CommonFilesX86NtPath.UniStr, true /*fCheckSlash*/)) + fFlags |= SUPHNTVI_F_ALLOW_CAT_FILE_VERIFICATION | SUPHNTVI_F_TRUSTED_INSTALLER_OWNER; +# endif +# endif +# ifdef VBOX_PERMIT_VISUAL_STUDIO_PROFILING + /* Hack to allow profiling our code with Visual Studio. */ + else if ( uBuf.UniStr.Length > sizeof(L"\\SamplingRuntime.dll") + && memcmp(uBuf.UniStr.Buffer + (uBuf.UniStr.Length - sizeof(L"\\SamplingRuntime.dll") + sizeof(WCHAR)) / sizeof(WCHAR), + L"\\SamplingRuntime.dll", sizeof(L"\\SamplingRuntime.dll") - sizeof(WCHAR)) == 0 ) + { + if (hMyFile != hFile) + NtClose(hMyFile); + *pfCallRealApi = true; + return STATUS_SUCCESS; + } +# endif + else + { + supR3HardenedError(VINF_SUCCESS, false, + "supR3HardenedScreenImage/%s: Not a trusted location: '%ls' (fImage=%d fProtect=%#x fAccess=%#x)\n", + pszCaller, uBuf.UniStr.Buffer, fImage, *pfAccess, *pfProtect); + if (hMyFile != hFile) + NtClose(hMyFile); + return STATUS_TRUST_FAILURE; + } + +#else /* VBOX_PERMIT_EVEN_MORE */ + /* + * Require trusted installer + some kind of signature on everything, except + * for the VBox bits where we require kernel code signing and special + * integrity checks. + */ + Assert(g_SupLibHardenedExeNtPath.UniStr.Buffer[g_offSupLibHardenedExeNtName - 1] == '\\'); + uint32_t fFlags = 0; + if (supHardViUtf16PathStartsWithEx(uBuf.UniStr.Buffer, uBuf.UniStr.Length / sizeof(WCHAR), + g_SupLibHardenedExeNtPath.UniStr.Buffer, + g_offSupLibHardenedExeNtName, false /*fCheckSlash*/)) + fFlags |= SUPHNTVI_F_REQUIRE_KERNEL_CODE_SIGNING | SUPHNTVI_F_REQUIRE_SIGNATURE_ENFORCEMENT; + else + fFlags |= SUPHNTVI_F_ALLOW_CAT_FILE_VERIFICATION | SUPHNTVI_F_TRUSTED_INSTALLER_OWNER; +#endif /* VBOX_PERMIT_EVEN_MORE */ + + /* + * Do the verification. For better error message we borrow what's + * left of the path buffer for an RTERRINFO buffer. + */ + if (fIgnoreArch) + fFlags |= SUPHNTVI_F_IGNORE_ARCHITECTURE; + RTERRINFO ErrInfo; + RTErrInfoInit(&ErrInfo, (char *)&uBuf.abBuffer[cbNameBuf], sizeof(uBuf) - cbNameBuf); + + int rc; + bool fWinVerifyTrust = false; + rc = supHardenedWinVerifyImageByHandle(hMyFile, uBuf.UniStr.Buffer, fFlags, fAvoidWinVerifyTrust, &fWinVerifyTrust, &ErrInfo); + if (RT_FAILURE(rc)) + { + supR3HardenedError(VINF_SUCCESS, false, + "supR3HardenedScreenImage/%s: rc=%Rrc fImage=%d fProtect=%#x fAccess=%#x %ls: %s\n", + pszCaller, rc, fImage, *pfAccess, *pfProtect, uBuf.UniStr.Buffer, ErrInfo.pszMsg); + if (hMyFile != hFile) + supR3HardenedWinVerifyCacheInsert(&uBuf.UniStr, hMyFile, rc, fWinVerifyTrust, fFlags); + return STATUS_TRUST_FAILURE; + } + + /* + * Insert into the cache. + */ + if (hMyFile != hFile) + supR3HardenedWinVerifyCacheInsert(&uBuf.UniStr, hMyFile, rc, fWinVerifyTrust, fFlags); + + *pfCallRealApi = true; + return STATUS_SUCCESS; +} + + +/** + * Preloads a file into the verify cache if possible. + * + * This is used to avoid known cyclic LoadLibrary issues with WinVerifyTrust. + * + * @param pwszName The name of the DLL to verify. + */ +DECLHIDDEN(void) supR3HardenedWinVerifyCachePreload(PCRTUTF16 pwszName) +{ + HANDLE hFile = RTNT_INVALID_HANDLE_VALUE; + IO_STATUS_BLOCK Ios = RTNT_IO_STATUS_BLOCK_INITIALIZER; + + UNICODE_STRING UniStr; + UniStr.Buffer = (PWCHAR)pwszName; + UniStr.Length = (USHORT)(RTUtf16Len(pwszName) * sizeof(WCHAR)); + UniStr.MaximumLength = UniStr.Length + sizeof(WCHAR); + + OBJECT_ATTRIBUTES ObjAttr; + InitializeObjectAttributes(&ObjAttr, &UniStr, OBJ_CASE_INSENSITIVE, NULL /*hRootDir*/, NULL /*pSecDesc*/); + + NTSTATUS rcNt = NtCreateFile(&hFile, + FILE_READ_DATA | READ_CONTROL | SYNCHRONIZE, + &ObjAttr, + &Ios, + NULL /* Allocation Size*/, + FILE_ATTRIBUTE_NORMAL, + FILE_SHARE_READ, + FILE_OPEN, + FILE_NON_DIRECTORY_FILE | FILE_SYNCHRONOUS_IO_NONALERT, + NULL /*EaBuffer*/, + 0 /*EaLength*/); + if (NT_SUCCESS(rcNt)) + rcNt = Ios.Status; + if (!NT_SUCCESS(rcNt)) + { + SUP_DPRINTF(("supR3HardenedWinVerifyCachePreload: Error %#x opening '%ls'.\n", rcNt, pwszName)); + return; + } + + ULONG fAccess = 0; + ULONG fProtect = 0; + bool fCallRealApi; + //SUP_DPRINTF(("supR3HardenedWinVerifyCachePreload: scanning %ls\n", pwszName)); + supR3HardenedScreenImage(hFile, false, false /*fIgnoreArch*/, &fAccess, &fProtect, &fCallRealApi, "preload", + false /*fAvoidWinVerifyTrust*/, NULL /*pfQuiet*/); + //SUP_DPRINTF(("supR3HardenedWinVerifyCachePreload: done %ls\n", pwszName)); + + NtClose(hFile); +} + + + +/** + * Hook that monitors NtCreateSection calls. + * + * @returns NT status code. + * @param phSection Where to return the section handle. + * @param fAccess The desired access. + * @param pObjAttribs The object attributes (optional). + * @param pcbSection The section size (optional). + * @param fProtect The max section protection. + * @param fAttribs The section attributes. + * @param hFile The file to create a section from (optional). + */ +static NTSTATUS NTAPI +supR3HardenedMonitor_NtCreateSection(PHANDLE phSection, ACCESS_MASK fAccess, POBJECT_ATTRIBUTES pObjAttribs, + PLARGE_INTEGER pcbSection, ULONG fProtect, ULONG fAttribs, HANDLE hFile) +{ + if ( hFile != NULL + && hFile != INVALID_HANDLE_VALUE) + { + bool const fImage = RT_BOOL(fAttribs & (SEC_IMAGE | SEC_PROTECTED_IMAGE)); + bool const fExecMap = RT_BOOL(fAccess & SECTION_MAP_EXECUTE); + bool const fExecProt = RT_BOOL(fProtect & (PAGE_EXECUTE | PAGE_EXECUTE_READ | PAGE_EXECUTE_WRITECOPY + | PAGE_EXECUTE_READWRITE)); + if (fImage || fExecMap || fExecProt) + { + DWORD dwSavedLastError = RtlGetLastWin32Error(); + + bool fCallRealApi; + //SUP_DPRINTF(("supR3HardenedMonitor_NtCreateSection: 1\n")); + NTSTATUS rcNt = supR3HardenedScreenImage(hFile, fImage, true /*fIgnoreArch*/, &fAccess, &fProtect, &fCallRealApi, + "NtCreateSection", true /*fAvoidWinVerifyTrust*/, NULL /*pfQuiet*/); + //SUP_DPRINTF(("supR3HardenedMonitor_NtCreateSection: 2 rcNt=%#x fCallRealApi=%#x\n", rcNt, fCallRealApi)); + + RtlRestoreLastWin32Error(dwSavedLastError); + + if (!NT_SUCCESS(rcNt)) + return rcNt; + Assert(fCallRealApi); + if (!fCallRealApi) + return STATUS_TRUST_FAILURE; + + } + } + + /* + * Call checked out OK, call the original. + */ + return g_pfnNtCreateSectionReal(phSection, fAccess, pObjAttribs, pcbSection, fProtect, fAttribs, hFile); +} + + +/** + * Helper for supR3HardenedMonitor_LdrLoadDll. + * + * @returns NT status code. + * @param pwszPath The path destination buffer. + * @param cwcPath The size of the path buffer. + * @param pUniStrResult The result string. + * @param pOrgName The orignal name (for errors). + * @param pcwc Where to return the actual length. + */ +static NTSTATUS supR3HardenedCopyRedirectionResult(WCHAR *pwszPath, size_t cwcPath, PUNICODE_STRING pUniStrResult, + PUNICODE_STRING pOrgName, UINT *pcwc) +{ + UINT cwc; + *pcwc = cwc = pUniStrResult->Length / sizeof(WCHAR); + if (pUniStrResult->Buffer == pwszPath) + pwszPath[cwc] = '\0'; + else + { + if (cwc > cwcPath - 1) + { + supR3HardenedError(VINF_SUCCESS, false, + "supR3HardenedMonitor_LdrLoadDll: Name too long: %.*ls -> %.*ls (RtlDosApplyFileIoslationRedirection_Ustr)\n", + pOrgName->Length / sizeof(WCHAR), pOrgName->Buffer, + pUniStrResult->Length / sizeof(WCHAR), pUniStrResult->Buffer); + return STATUS_NAME_TOO_LONG; + } + memcpy(&pwszPath[0], pUniStrResult->Buffer, pUniStrResult->Length); + pwszPath[cwc] = '\0'; + } + return STATUS_SUCCESS; +} + + +/** + * Hooks that intercepts LdrLoadDll calls. + * + * Two purposes: + * -# Enforce our own search path restrictions. + * -# Prevalidate DLLs about to be loaded so we don't upset the loader data + * by doing it from within the NtCreateSection hook (WinVerifyTrust + * seems to be doing harm there on W7/32). + * + * @returns + * @param pwszSearchPath The search path to use. + * @param pfFlags Flags on input. DLL characteristics or something + * on return? + * @param pName The name of the module. + * @param phMod Where the handle of the loaded DLL is to be + * returned to the caller. + */ +static NTSTATUS NTAPI +supR3HardenedMonitor_LdrLoadDll(PWSTR pwszSearchPath, PULONG pfFlags, PUNICODE_STRING pName, PHANDLE phMod) +{ + DWORD dwSavedLastError = RtlGetLastWin32Error(); + PUNICODE_STRING const pOrgName = pName; + NTSTATUS rcNt; + + /* + * Make sure the DLL notification callback is registered. If we could, we + * would've done this during early process init, but due to lack of heap + * and uninitialized loader lock, it's not possible that early on. + * + * The callback protects our NtDll hooks from getting unhooked by + * "friendly" fire from the AV crowd. + */ + supR3HardenedWinRegisterDllNotificationCallback(); + + /* + * Process WinVerifyTrust todo before and after. + */ + supR3HardenedWinVerifyCacheProcessWvtTodos(); + + /* + * Reject things we don't want to deal with. + */ + if (!pName || pName->Length == 0) + { + supR3HardenedError(VINF_SUCCESS, false, "supR3HardenedMonitor_LdrLoadDll: name is NULL or have a zero length.\n"); + SUP_DPRINTF(("supR3HardenedMonitor_LdrLoadDll: returns rcNt=%#x (pName=%p)\n", STATUS_INVALID_PARAMETER, pName)); + RtlRestoreLastWin32Error(dwSavedLastError); + return STATUS_INVALID_PARAMETER; + } + /*SUP_DPRINTF(("supR3HardenedMonitor_LdrLoadDll: pName=%.*ls *pfFlags=%#x pwszSearchPath=%p:%ls\n", + (unsigned)pName->Length / sizeof(WCHAR), pName->Buffer, pfFlags ? *pfFlags : UINT32_MAX, pwszSearchPath, + !((uintptr_t)pwszSearchPath & 1) && (uintptr_t)pwszSearchPath >= 0x2000U ? pwszSearchPath : L""));*/ + + /* + * Reject long paths that's close to the 260 limit without looking. + */ + if (pName->Length > 256 * sizeof(WCHAR)) + { + supR3HardenedError(VINF_SUCCESS, false, "supR3HardenedMonitor_LdrLoadDll: too long name: %#x bytes\n", pName->Length); + SUP_DPRINTF(("supR3HardenedMonitor_LdrLoadDll: returns rcNt=%#x\n", STATUS_NAME_TOO_LONG)); + RtlRestoreLastWin32Error(dwSavedLastError); + return STATUS_NAME_TOO_LONG; + } + + /* + * Absolute path? + */ + NTSTATUS rcNtResolve = STATUS_SUCCESS; + bool fSkipValidation = false; + bool fCheckIfLoaded = false; + WCHAR wszPath[260]; + static UNICODE_STRING const s_DefaultSuffix = RTNT_CONSTANT_UNISTR(L".dll"); + UNICODE_STRING UniStrStatic = { 0, (USHORT)sizeof(wszPath) - sizeof(WCHAR), wszPath }; + UNICODE_STRING UniStrDynamic = { 0, 0, NULL }; + PUNICODE_STRING pUniStrResult = NULL; + UNICODE_STRING ResolvedName; + + if ( ( pName->Length >= 4 * sizeof(WCHAR) + && RT_C_IS_ALPHA(pName->Buffer[0]) + && pName->Buffer[1] == ':' + && RTPATH_IS_SLASH(pName->Buffer[2]) ) + || ( pName->Length >= 1 * sizeof(WCHAR) + && RTPATH_IS_SLASH(pName->Buffer[1]) ) + ) + { + rcNtResolve = RtlDosApplyFileIsolationRedirection_Ustr(1 /*fFlags*/, + pName, + (PUNICODE_STRING)&s_DefaultSuffix, + &UniStrStatic, + &UniStrDynamic, + &pUniStrResult, + NULL /*pNewFlags*/, + NULL /*pcbFilename*/, + NULL /*pcbNeeded*/); + if (NT_SUCCESS(rcNtResolve)) + { + UINT cwc; + rcNt = supR3HardenedCopyRedirectionResult(wszPath, RT_ELEMENTS(wszPath), pUniStrResult, pName, &cwc); + RtlFreeUnicodeString(&UniStrDynamic); + if (!NT_SUCCESS(rcNt)) + { + SUP_DPRINTF(("supR3HardenedMonitor_LdrLoadDll: returns rcNt=%#x\n", rcNt)); + RtlRestoreLastWin32Error(dwSavedLastError); + return rcNt; + } + + ResolvedName.Buffer = wszPath; + ResolvedName.Length = (USHORT)(cwc * sizeof(WCHAR)); + ResolvedName.MaximumLength = ResolvedName.Length + sizeof(WCHAR); + + SUP_DPRINTF(("supR3HardenedMonitor_LdrLoadDll: '%.*ls' -> '%.*ls' [redir]\n", + (unsigned)pName->Length / sizeof(WCHAR), pName->Buffer, + ResolvedName.Length / sizeof(WCHAR), ResolvedName.Buffer, rcNt)); + pName = &ResolvedName; + } + else + { + memcpy(wszPath, pName->Buffer, pName->Length); + wszPath[pName->Length / sizeof(WCHAR)] = '\0'; + } + } + /* + * Not an absolute path. Check if it's one of those special API set DLLs + * or something we're known to use but should be taken from WinSxS. + */ + else if ( supHardViUtf16PathStartsWithEx(pName->Buffer, pName->Length / sizeof(WCHAR), + L"api-ms-win-", 11, false /*fCheckSlash*/) + || supHardViUtf16PathStartsWithEx(pName->Buffer, pName->Length / sizeof(WCHAR), + L"ext-ms-win-", 11, false /*fCheckSlash*/) + ) + { + memcpy(wszPath, pName->Buffer, pName->Length); + wszPath[pName->Length / sizeof(WCHAR)] = '\0'; + fSkipValidation = true; + } + /* + * Not an absolute path or special API set. There are two alternatives + * now, either there is no path at all or there is a relative path. We + * will resolve it to an absolute path in either case, failing the call + * if we can't. + */ + else + { + PCWCHAR pawcName = pName->Buffer; + uint32_t cwcName = pName->Length / sizeof(WCHAR); + uint32_t offLastSlash = UINT32_MAX; + uint32_t offLastDot = UINT32_MAX; + for (uint32_t i = 0; i < cwcName; i++) + switch (pawcName[i]) + { + case '\\': + case '/': + offLastSlash = i; + offLastDot = UINT32_MAX; + break; + case '.': + offLastDot = i; + break; + } + + bool const fNeedDllSuffix = offLastDot == UINT32_MAX && offLastSlash == UINT32_MAX; + + if (offLastDot != UINT32_MAX && offLastDot == cwcName - 1) + cwcName--; + + /* + * Reject relative paths for now as they might be breakout attempts. + */ + if (offLastSlash != UINT32_MAX) + { + supR3HardenedError(VINF_SUCCESS, false, + "supR3HardenedMonitor_LdrLoadDll: relative name not permitted: %.*ls\n", + cwcName, pawcName); + SUP_DPRINTF(("supR3HardenedMonitor_LdrLoadDll: returns rcNt=%#x\n", STATUS_OBJECT_NAME_INVALID)); + RtlRestoreLastWin32Error(dwSavedLastError); + return STATUS_OBJECT_NAME_INVALID; + } + + /* + * Perform dll redirection to WinSxS such. We using an undocumented + * API here, which as always is a bit risky... ASSUMES that the API + * returns a full DOS path. + */ + UINT cwc; + rcNtResolve = RtlDosApplyFileIsolationRedirection_Ustr(1 /*fFlags*/, + pName, + (PUNICODE_STRING)&s_DefaultSuffix, + &UniStrStatic, + &UniStrDynamic, + &pUniStrResult, + NULL /*pNewFlags*/, + NULL /*pcbFilename*/, + NULL /*pcbNeeded*/); + if (NT_SUCCESS(rcNtResolve)) + { + rcNt = supR3HardenedCopyRedirectionResult(wszPath, RT_ELEMENTS(wszPath), pUniStrResult, pName, &cwc); + RtlFreeUnicodeString(&UniStrDynamic); + if (!NT_SUCCESS(rcNt)) + { + SUP_DPRINTF(("supR3HardenedMonitor_LdrLoadDll: returns rcNt=%#x\n", rcNt)); + RtlRestoreLastWin32Error(dwSavedLastError); + return rcNt; + } + } + else + { + /* + * Search for the DLL. Only System32 is allowed as the target of + * a search on the API level, all VBox calls will have full paths. + * If the DLL is not in System32, we will resort to check if it's + * refering to an already loaded DLL (fCheckIfLoaded). + */ + AssertCompile(sizeof(g_System32WinPath.awcBuffer) <= sizeof(wszPath)); + cwc = g_System32WinPath.UniStr.Length / sizeof(RTUTF16); Assert(cwc > 2); + if (cwc + 1 + cwcName + fNeedDllSuffix * 4 >= RT_ELEMENTS(wszPath)) + { + supR3HardenedError(VINF_SUCCESS, false, + "supR3HardenedMonitor_LdrLoadDll: Name too long (system32): %.*ls\n", cwcName, pawcName); + SUP_DPRINTF(("supR3HardenedMonitor_LdrLoadDll: returns rcNt=%#x\n", STATUS_NAME_TOO_LONG)); + RtlRestoreLastWin32Error(dwSavedLastError); + return STATUS_NAME_TOO_LONG; + } + memcpy(wszPath, g_System32WinPath.UniStr.Buffer, cwc * sizeof(RTUTF16)); + wszPath[cwc++] = '\\'; + memcpy(&wszPath[cwc], pawcName, cwcName * sizeof(WCHAR)); + cwc += cwcName; + if (!fNeedDllSuffix) + wszPath[cwc] = '\0'; + else + { + memcpy(&wszPath[cwc], L".dll", 5 * sizeof(WCHAR)); + cwc += 4; + } + fCheckIfLoaded = true; + } + + ResolvedName.Buffer = wszPath; + ResolvedName.Length = (USHORT)(cwc * sizeof(WCHAR)); + ResolvedName.MaximumLength = ResolvedName.Length + sizeof(WCHAR); + pName = &ResolvedName; + } + + bool fQuiet = false; + if (!fSkipValidation) + { + /* + * Try open the file. If this fails, never mind, just pass it on to + * the real API as we've replaced any searchable name with a full name + * and the real API can come up with a fitting status code for it. + */ + HANDLE hRootDir; + UNICODE_STRING NtPathUniStr; + int rc = RTNtPathFromWinUtf16Ex(&NtPathUniStr, &hRootDir, wszPath, RTSTR_MAX); + if (RT_FAILURE(rc)) + { + supR3HardenedError(rc, false, + "supR3HardenedMonitor_LdrLoadDll: RTNtPathFromWinUtf16Ex failed on '%ls': %Rrc\n", wszPath, rc); + SUP_DPRINTF(("supR3HardenedMonitor_LdrLoadDll: returns rcNt=%#x\n", STATUS_OBJECT_NAME_INVALID)); + RtlRestoreLastWin32Error(dwSavedLastError); + return STATUS_OBJECT_NAME_INVALID; + } + + HANDLE hFile = RTNT_INVALID_HANDLE_VALUE; + IO_STATUS_BLOCK Ios = RTNT_IO_STATUS_BLOCK_INITIALIZER; + OBJECT_ATTRIBUTES ObjAttr; + InitializeObjectAttributes(&ObjAttr, &NtPathUniStr, OBJ_CASE_INSENSITIVE, hRootDir, NULL /*pSecDesc*/); + + rcNt = NtCreateFile(&hFile, + FILE_READ_DATA | READ_CONTROL | SYNCHRONIZE, + &ObjAttr, + &Ios, + NULL /* Allocation Size*/, + FILE_ATTRIBUTE_NORMAL, + FILE_SHARE_READ, + FILE_OPEN, + FILE_NON_DIRECTORY_FILE | FILE_SYNCHRONOUS_IO_NONALERT, + NULL /*EaBuffer*/, + 0 /*EaLength*/); + if (NT_SUCCESS(rcNt)) + rcNt = Ios.Status; + if (NT_SUCCESS(rcNt)) + { + ULONG fAccess = 0; + ULONG fProtect = 0; + bool fCallRealApi = false; + rcNt = supR3HardenedScreenImage(hFile, true /*fImage*/, RT_VALID_PTR(pfFlags) && (*pfFlags & 0x2) /*fIgnoreArch*/, + &fAccess, &fProtect, &fCallRealApi, + "LdrLoadDll", false /*fAvoidWinVerifyTrust*/, &fQuiet); + NtClose(hFile); + if (!NT_SUCCESS(rcNt)) + { + if (!fQuiet) + { + if (pOrgName != pName) + supR3HardenedError(VINF_SUCCESS, false, "supR3HardenedMonitor_LdrLoadDll: rejecting '%ls': rcNt=%#x\n", + wszPath, rcNt); + else + supR3HardenedError(VINF_SUCCESS, false, "supR3HardenedMonitor_LdrLoadDll: rejecting '%ls' (%.*ls): rcNt=%#x\n", + wszPath, pOrgName->Length / sizeof(WCHAR), pOrgName->Buffer, rcNt); + SUP_DPRINTF(("supR3HardenedMonitor_LdrLoadDll: returns rcNt=%#x '%ls'\n", rcNt, wszPath)); + } + RtlRestoreLastWin32Error(dwSavedLastError); + return rcNt; + } + + supR3HardenedWinVerifyCacheProcessImportTodos(); + } + else + { + DWORD dwErr = RtlGetLastWin32Error(); + + /* + * Deal with special case where the caller (first case was MS LifeCam) + * is using LoadLibrary instead of GetModuleHandle to find a loaded DLL. + */ + NTSTATUS rcNtGetDll = STATUS_SUCCESS; + if ( fCheckIfLoaded + && ( rcNt == STATUS_OBJECT_NAME_NOT_FOUND + || rcNt == STATUS_OBJECT_PATH_NOT_FOUND)) + { + rcNtGetDll = LdrGetDllHandle(NULL /*DllPath*/, NULL /*pfFlags*/, pOrgName, phMod); + if (NT_SUCCESS(rcNtGetDll)) + { + RtlRestoreLastWin32Error(dwSavedLastError); + return rcNtGetDll; + } + } + + SUP_DPRINTF(("supR3HardenedMonitor_LdrLoadDll: error opening '%ls': %u (NtPath=%.*ls; Input=%.*ls; rcNtGetDll=%#x\n", + wszPath, dwErr, NtPathUniStr.Length / sizeof(RTUTF16), NtPathUniStr.Buffer, + pOrgName->Length / sizeof(WCHAR), pOrgName->Buffer, rcNtGetDll)); + } + RTNtPathFree(&NtPathUniStr, &hRootDir); + } + + /* + * Screened successfully enough. Call the real thing. + */ + if (!fQuiet) + { + if (pOrgName != pName) + SUP_DPRINTF(("supR3HardenedMonitor_LdrLoadDll: pName=%.*ls (Input=%.*ls, rcNtResolve=%#x) *pfFlags=%#x pwszSearchPath=%p:%ls [calling]\n", + (unsigned)pName->Length / sizeof(WCHAR), pName->Buffer, + (unsigned)pOrgName->Length / sizeof(WCHAR), pOrgName->Buffer, rcNtResolve, + pfFlags ? *pfFlags : UINT32_MAX, pwszSearchPath, + !((uintptr_t)pwszSearchPath & 1) && (uintptr_t)pwszSearchPath >= 0x2000U ? pwszSearchPath : L"")); + else + SUP_DPRINTF(("supR3HardenedMonitor_LdrLoadDll: pName=%.*ls (rcNtResolve=%#x) *pfFlags=%#x pwszSearchPath=%p:%ls [calling]\n", + (unsigned)pName->Length / sizeof(WCHAR), pName->Buffer, rcNtResolve, + pfFlags ? *pfFlags : UINT32_MAX, pwszSearchPath, + !((uintptr_t)pwszSearchPath & 1) && (uintptr_t)pwszSearchPath >= 0x2000U ? pwszSearchPath : L"")); + } + + RtlRestoreLastWin32Error(dwSavedLastError); + rcNt = g_pfnLdrLoadDllReal(pwszSearchPath, pfFlags, pName, phMod); + + /* + * Log the result and process pending WinVerifyTrust work if we can. + */ + dwSavedLastError = RtlGetLastWin32Error(); + + if (NT_SUCCESS(rcNt) && phMod) + SUP_DPRINTF(("supR3HardenedMonitor_LdrLoadDll: returns rcNt=%#x hMod=%p '%ls'\n", rcNt, *phMod, wszPath)); + else if (!NT_SUCCESS(rcNt) || !fQuiet) + SUP_DPRINTF(("supR3HardenedMonitor_LdrLoadDll: returns rcNt=%#x '%ls'\n", rcNt, wszPath)); + + supR3HardenedWinVerifyCacheProcessWvtTodos(); + + RtlRestoreLastWin32Error(dwSavedLastError); + + return rcNt; +} + + +/** + * DLL load and unload notification callback. + * + * This is a safety against our LdrLoadDll hook being replaced by protection + * software. Though, we prefer the LdrLoadDll hook to this one as it allows us + * to call WinVerifyTrust more freely. + * + * @param ulReason The reason we're called, see + * LDR_DLL_NOTIFICATION_REASON_XXX. + * @param pData Reason specific data. (Format is currently the same for + * both load and unload.) + * @param pvUser User parameter (ignored). + * + * @remarks Vista and later. + * @remarks The loader lock is held when we're called, at least on Windows 7. + */ +static VOID CALLBACK supR3HardenedDllNotificationCallback(ULONG ulReason, PCLDR_DLL_NOTIFICATION_DATA pData, PVOID pvUser) +{ + NOREF(pvUser); + + /* + * Screen the image on load. We will normally get a verification cache + * hit here because of the LdrLoadDll and NtCreateSection hooks, so it + * should be relatively cheap to recheck. In case our NtDll patches + * got re + * + * This ASSUMES that we get informed after the fact as indicated by the + * available documentation. + */ + if (ulReason == LDR_DLL_NOTIFICATION_REASON_LOADED) + { + SUP_DPRINTF(("supR3HardenedDllNotificationCallback: load %p LB %#010x %.*ls [fFlags=%#x]\n", + pData->Loaded.DllBase, pData->Loaded.SizeOfImage, + pData->Loaded.FullDllName->Length / sizeof(WCHAR), pData->Loaded.FullDllName->Buffer, + pData->Loaded.Flags)); + + /* Convert the windows path to an NT path and open it. */ + HANDLE hRootDir; + UNICODE_STRING NtPathUniStr; + int rc = RTNtPathFromWinUtf16Ex(&NtPathUniStr, &hRootDir, pData->Loaded.FullDllName->Buffer, + pData->Loaded.FullDllName->Length / sizeof(WCHAR)); + if (RT_FAILURE(rc)) + { + supR3HardenedFatal("supR3HardenedDllNotificationCallback: RTNtPathFromWinUtf16Ex failed on '%.*ls': %Rrc\n", + pData->Loaded.FullDllName->Length / sizeof(WCHAR), pData->Loaded.FullDllName->Buffer, rc); + return; + } + + HANDLE hFile = RTNT_INVALID_HANDLE_VALUE; + IO_STATUS_BLOCK Ios = RTNT_IO_STATUS_BLOCK_INITIALIZER; + OBJECT_ATTRIBUTES ObjAttr; + InitializeObjectAttributes(&ObjAttr, &NtPathUniStr, OBJ_CASE_INSENSITIVE, hRootDir, NULL /*pSecDesc*/); + + NTSTATUS rcNt = NtCreateFile(&hFile, + FILE_READ_DATA | READ_CONTROL | SYNCHRONIZE, + &ObjAttr, + &Ios, + NULL /* Allocation Size*/, + FILE_ATTRIBUTE_NORMAL, + FILE_SHARE_READ, + FILE_OPEN, + FILE_NON_DIRECTORY_FILE | FILE_SYNCHRONOUS_IO_NONALERT, + NULL /*EaBuffer*/, + 0 /*EaLength*/); + if (NT_SUCCESS(rcNt)) + rcNt = Ios.Status; + if (!NT_SUCCESS(rcNt)) + { + supR3HardenedFatal("supR3HardenedDllNotificationCallback: NtCreateFile failed on '%.*ls' / '%.*ls': %#x\n", + pData->Loaded.FullDllName->Length / sizeof(WCHAR), pData->Loaded.FullDllName->Buffer, + NtPathUniStr.Length / sizeof(WCHAR), NtPathUniStr.Buffer, rcNt); + RTNtPathFree(&NtPathUniStr, &hRootDir); + return; + } + + /* Do the screening. */ + ULONG fAccess = 0; + ULONG fProtect = 0; + bool fCallRealApi = false; + bool fQuietFailure = false; + rcNt = supR3HardenedScreenImage(hFile, true /*fImage*/, true /*fIgnoreArch*/, &fAccess, &fProtect, &fCallRealApi, + "LdrLoadDll", true /*fAvoidWinVerifyTrust*/, &fQuietFailure); + NtClose(hFile); + if (!NT_SUCCESS(rcNt)) + { + supR3HardenedFatal("supR3HardenedDllNotificationCallback: supR3HardenedScreenImage failed on '%.*ls' / '%.*ls': %#x\n", + pData->Loaded.FullDllName->Length / sizeof(WCHAR), pData->Loaded.FullDllName->Buffer, + NtPathUniStr.Length / sizeof(WCHAR), NtPathUniStr.Buffer, rcNt); + RTNtPathFree(&NtPathUniStr, &hRootDir); + return; + } + RTNtPathFree(&NtPathUniStr, &hRootDir); + } + /* + * Log the unload call. + */ + else if (ulReason == LDR_DLL_NOTIFICATION_REASON_UNLOADED) + { + SUP_DPRINTF(("supR3HardenedDllNotificationCallback: Unload %p LB %#010x %.*ls [flags=%#x]\n", + pData->Unloaded.DllBase, pData->Unloaded.SizeOfImage, + pData->Unloaded.FullDllName->Length / sizeof(WCHAR), pData->Unloaded.FullDllName->Buffer, + pData->Unloaded.Flags)); + } + /* + * Just log things we don't know and then return without caching anything. + */ + else + { + static uint32_t s_cLogEntries = 0; + if (s_cLogEntries++ < 32) + SUP_DPRINTF(("supR3HardenedDllNotificationCallback: ulReason=%u pData=%p\n", ulReason, pData)); + return; + } + + /* + * Use this opportunity to make sure our NtDll patches are still in place, + * since they may be replaced by indecent protection software solutions. + */ + supR3HardenedWinReInstallHooks(false /*fFirstCall */); +} + + +/** + * Registers the DLL notification callback if it hasn't already been registered. + */ +static void supR3HardenedWinRegisterDllNotificationCallback(void) +{ + /* + * The notification API was added in Vista, so it's an optional (weak) import. + */ + if ( LdrRegisterDllNotification != NULL + && g_cDllNotificationRegistered <= 0 + && g_cDllNotificationRegistered > -32) + { + NTSTATUS rcNt = LdrRegisterDllNotification(0, supR3HardenedDllNotificationCallback, NULL, &g_pvDllNotificationCookie); + if (NT_SUCCESS(rcNt)) + { + SUP_DPRINTF(("Registered Dll notification callback with NTDLL.\n")); + g_cDllNotificationRegistered = 1; + } + else + { + supR3HardenedError(rcNt, false /*fFatal*/, "LdrRegisterDllNotification failed: %#x\n", rcNt); + g_cDllNotificationRegistered--; + } + } +} + + +static void supR3HardenedWinHookFailed(const char *pszWhich, uint8_t const *pbPrologue) +{ + supR3HardenedFatalMsg("supR3HardenedWinInstallHooks", kSupInitOp_Misc, VERR_NO_MEMORY, + "Failed to install %s monitor: %x %x %x %x %x %x %x %x %x %x %x %x %x %x %x %x\n " +#ifdef RT_ARCH_X86 + "(It is also possible you are running 32-bit VirtualBox under 64-bit windows.)\n" +#endif + , + pszWhich, + pbPrologue[0], pbPrologue[1], pbPrologue[2], pbPrologue[3], + pbPrologue[4], pbPrologue[5], pbPrologue[6], pbPrologue[7], + pbPrologue[8], pbPrologue[9], pbPrologue[10], pbPrologue[11], + pbPrologue[12], pbPrologue[13], pbPrologue[14], pbPrologue[15]); +} + + +/** + * IPRT thread that waits for the parent process to terminate and reacts by + * exiting the current process. + * + * @returns VINF_SUCCESS + * @param hSelf The current thread. Ignored. + * @param pvUser The handle of the parent process. + */ +static DECLCALLBACK(int) supR3HardenedWinParentWatcherThread(RTTHREAD hSelf, void *pvUser) +{ + HANDLE hProcWait = (HANDLE)pvUser; + NOREF(hSelf); + + /* + * Wait for the parent to terminate. + */ + NTSTATUS rcNt; + for (;;) + { + rcNt = NtWaitForSingleObject(hProcWait, TRUE /*Alertable*/, NULL /*pTimeout*/); + if ( rcNt == STATUS_WAIT_0 + || rcNt == STATUS_ABANDONED_WAIT_0) + break; + if ( rcNt != STATUS_TIMEOUT + && rcNt != STATUS_USER_APC + && rcNt != STATUS_ALERTED) + supR3HardenedFatal("NtWaitForSingleObject returned %#x\n", rcNt); + } + + /* + * Proxy the termination code of the child, if it exited already. + */ + PROCESS_BASIC_INFORMATION BasicInfo; + NTSTATUS rcNt2 = NtQueryInformationProcess(hProcWait, ProcessBasicInformation, &BasicInfo, sizeof(BasicInfo), NULL); + if ( !NT_SUCCESS(rcNt2) + || BasicInfo.ExitStatus == STATUS_PENDING) + BasicInfo.ExitStatus = RTEXITCODE_FAILURE; + + NtClose(hProcWait); + SUP_DPRINTF(("supR3HardenedWinParentWatcherThread: Quitting: ExitCode=%#x rcNt=%#x\n", BasicInfo.ExitStatus, rcNt)); + suplibHardenedExit((RTEXITCODE)BasicInfo.ExitStatus); + + return VINF_SUCCESS; /* won't be reached. */ +} + + +/** + * Creates the parent watcher thread that will make sure this process exits when + * the parent does. + * + * This is a necessary evil to make VBoxNetDhcp and VBoxNetNat termination from + * Main work without too much new magic. It also makes Ctrl-C or similar work + * in on the hardened processes in the windows console. + * + * @param hVBoxRT The VBoxRT.dll handle. We use RTThreadCreate to + * spawn the thread to avoid duplicating thread + * creation and thread naming code from IPRT. + */ +DECLHIDDEN(void) supR3HardenedWinCreateParentWatcherThread(HMODULE hVBoxRT) +{ + /* + * Resolve runtime methods that we need. + */ + PFNRTTHREADCREATE pfnRTThreadCreate = (PFNRTTHREADCREATE)GetProcAddress(hVBoxRT, "RTThreadCreate"); + SUPR3HARDENED_ASSERT(pfnRTThreadCreate != NULL); + + /* + * Find the parent process ID. + */ + PROCESS_BASIC_INFORMATION BasicInfo; + NTSTATUS rcNt = NtQueryInformationProcess(NtCurrentProcess(), ProcessBasicInformation, &BasicInfo, sizeof(BasicInfo), NULL); + if (!NT_SUCCESS(rcNt)) + supR3HardenedFatal("supR3HardenedWinCreateParentWatcherThread: NtQueryInformationProcess failed: %#x\n", rcNt); + + /* + * Open the parent process for waiting and exitcode query. + */ + OBJECT_ATTRIBUTES ObjAttr; + InitializeObjectAttributes(&ObjAttr, NULL, 0, NULL /*hRootDir*/, NULL /*pSecDesc*/); + + CLIENT_ID ClientId; + ClientId.UniqueProcess = (HANDLE)BasicInfo.InheritedFromUniqueProcessId; + ClientId.UniqueThread = NULL; + + HANDLE hParent; + rcNt = NtOpenProcess(&hParent, SYNCHRONIZE | PROCESS_QUERY_INFORMATION, &ObjAttr, &ClientId); + if (!NT_SUCCESS(rcNt)) + supR3HardenedFatalMsg("supR3HardenedWinCreateParentWatcherThread", kSupInitOp_Misc, VERR_GENERAL_FAILURE, + "NtOpenProcess(%p.0) failed: %#x\n", ClientId.UniqueProcess, rcNt); + + /* + * Create the thread that should do the waiting. + */ + int rc = pfnRTThreadCreate(NULL, supR3HardenedWinParentWatcherThread, hParent, _64K /* stack */, + RTTHREADTYPE_DEFAULT, 0 /*fFlags*/, "ParentWatcher"); + if (RT_FAILURE(rc)) + supR3HardenedFatal("supR3HardenedWinCreateParentWatcherThread: RTThreadCreate failed: %Rrc\n", rc); +} + + +/** + * Checks if the calling thread is the only one in the process. + * + * @returns true if we're positive we're alone, false if not. + */ +static bool supR3HardenedWinAmIAlone(void) +{ + ULONG fAmIAlone = 0; + ULONG cbIgn = 0; + NTSTATUS rcNt = NtQueryInformationThread(NtCurrentThread(), ThreadAmILastThread, &fAmIAlone, sizeof(fAmIAlone), &cbIgn); + Assert(NT_SUCCESS(rcNt)); + return NT_SUCCESS(rcNt) && fAmIAlone != 0; +} + + +/** + * Simplify NtProtectVirtualMemory interface. + * + * Modifies protection for the current process. Caller must know the current + * protection as it's not returned. + * + * @returns NT status code. + * @param pvMem The memory to change protection for. + * @param cbMem The amount of memory to change. + * @param fNewProt The new protection. + */ +static NTSTATUS supR3HardenedWinProtectMemory(PVOID pvMem, SIZE_T cbMem, ULONG fNewProt) +{ + ULONG fOldProt = 0; + return NtProtectVirtualMemory(NtCurrentProcess(), &pvMem, &cbMem, fNewProt, &fOldProt); +} + + +/** + * Installs or reinstalls the NTDLL patches. + */ +static void supR3HardenedWinReInstallHooks(bool fFirstCall) +{ + struct + { + size_t cbPatch; + uint8_t const *pabPatch; + uint8_t **ppbApi; + const char *pszName; + } const s_aPatches[] = + { + { sizeof(g_abNtCreateSectionPatch), g_abNtCreateSectionPatch, &g_pbNtCreateSection, "NtCreateSection" }, + { sizeof(g_abLdrLoadDllPatch), g_abLdrLoadDllPatch, &g_pbLdrLoadDll, "LdrLoadDll" }, + }; + + ULONG fAmIAlone = ~(ULONG)0; + + for (uint32_t i = 0; i < RT_ELEMENTS(s_aPatches); i++) + { + uint8_t *pbApi = *s_aPatches[i].ppbApi; + if (memcmp(pbApi, s_aPatches[i].pabPatch, s_aPatches[i].cbPatch) != 0) + { + /* + * Log the incident if it's not the initial call. + */ + static uint32_t volatile s_cTimes = 0; + if (!fFirstCall && s_cTimes < 128) + { + s_cTimes++; + SUP_DPRINTF(("supR3HardenedWinReInstallHooks: Reinstalling %s (%p: %.*Rhxs).\n", + s_aPatches[i].pszName, pbApi, s_aPatches[i].cbPatch, pbApi)); + } + + Assert(s_aPatches[i].cbPatch >= 4); + + SUPR3HARDENED_ASSERT_NT_SUCCESS(supR3HardenedWinProtectMemory(pbApi, s_aPatches[i].cbPatch, PAGE_EXECUTE_READWRITE)); + + /* + * If we're alone, just memcpy the patch in. + */ + + if (fAmIAlone == ~(ULONG)0) + fAmIAlone = supR3HardenedWinAmIAlone(); + if (fAmIAlone) + memcpy(pbApi, s_aPatches[i].pabPatch, s_aPatches[i].cbPatch); + else + { + /* + * Not alone. Start by injecting a JMP $-2, then waste some + * CPU cycles to get the other threads a good chance of getting + * out of the code before we replace it. + */ + RTUINT32U uJmpDollarMinus; + uJmpDollarMinus.au8[0] = 0xeb; + uJmpDollarMinus.au8[1] = 0xfe; + uJmpDollarMinus.au8[2] = pbApi[2]; + uJmpDollarMinus.au8[3] = pbApi[3]; + ASMAtomicXchgU32((uint32_t volatile *)pbApi, uJmpDollarMinus.u); + + NtYieldExecution(); + NtYieldExecution(); + + /* Copy in the tail bytes of the patch, then xchg the jmp $-2. */ + if (s_aPatches[i].cbPatch > 4) + memcpy(&pbApi[4], &s_aPatches[i].pabPatch[4], s_aPatches[i].cbPatch - 4); + ASMAtomicXchgU32((uint32_t volatile *)pbApi, *(uint32_t *)s_aPatches[i].pabPatch); + } + + SUPR3HARDENED_ASSERT_NT_SUCCESS(supR3HardenedWinProtectMemory(pbApi, s_aPatches[i].cbPatch, PAGE_EXECUTE_READ)); + } + } +} + + +/** + * Install hooks for intercepting calls dealing with mapping shared libraries + * into the process. + * + * This allows us to prevent undesirable shared libraries from being loaded. + * + * @remarks We assume we're alone in this process, so no seralizing trickery is + * necessary when installing the patch. + * + * @remarks We would normally just copy the prologue sequence somewhere and add + * a jump back at the end of it. But because we wish to avoid + * allocating executable memory, we need to have preprepared assembly + * "copies". This makes the non-system call patching a little tedious + * and inflexible. + */ +static void supR3HardenedWinInstallHooks(void) +{ + NTSTATUS rcNt; + + /* + * Disable hard error popups so we can quietly refuse images to be loaded. + */ + ULONG fHardErr = 0; + rcNt = NtQueryInformationProcess(NtCurrentProcess(), ProcessDefaultHardErrorMode, &fHardErr, sizeof(fHardErr), NULL); + if (!NT_SUCCESS(rcNt)) + supR3HardenedFatalMsg("supR3HardenedWinInstallHooks", kSupInitOp_Misc, VERR_GENERAL_FAILURE, + "NtQueryInformationProcess/ProcessDefaultHardErrorMode failed: %#x\n", rcNt); + if (fHardErr & PROCESS_HARDERR_CRITICAL_ERROR) + { + fHardErr &= ~PROCESS_HARDERR_CRITICAL_ERROR; + rcNt = NtSetInformationProcess(NtCurrentProcess(), ProcessDefaultHardErrorMode, &fHardErr, sizeof(fHardErr)); + if (!NT_SUCCESS(rcNt)) + supR3HardenedFatalMsg("supR3HardenedWinInstallHooks", kSupInitOp_Misc, VERR_GENERAL_FAILURE, + "NtSetInformationProcess/ProcessDefaultHardErrorMode failed: %#x\n", rcNt); + } + + /* + * Locate the routines first so we can allocate memory that's near enough. + */ + PFNRT pfnNtCreateSection = supR3HardenedWinGetRealDllSymbol("ntdll.dll", "NtCreateSection"); + SUPR3HARDENED_ASSERT(pfnNtCreateSection != NULL); + //SUPR3HARDENED_ASSERT(pfnNtCreateSection == (FARPROC)NtCreateSection); + + PFNRT pfnLdrLoadDll = supR3HardenedWinGetRealDllSymbol("ntdll.dll", "LdrLoadDll"); + SUPR3HARDENED_ASSERT(pfnLdrLoadDll != NULL); + //SUPR3HARDENED_ASSERT(pfnLdrLoadDll == (FARPROC)LdrLoadDll); + + /* + * Exec page setup & management. + */ + uint32_t offExecPage = 0; + memset(g_abSupHardReadWriteExecPage, 0xcc, PAGE_SIZE); + + /* + * Hook #1 - NtCreateSection. + * Purpose: Validate everything that can be mapped into the process before + * it's mapped and we still have a file handle to work with. + */ + uint8_t * const pbNtCreateSection = (uint8_t *)(uintptr_t)pfnNtCreateSection; + g_pbNtCreateSection = pbNtCreateSection; + memcpy(g_abNtCreateSectionPatch, pbNtCreateSection, sizeof(g_abNtCreateSectionPatch)); + + g_pfnNtCreateSectionReal = NtCreateSection; /* our direct syscall */ + +#ifdef RT_ARCH_AMD64 + /* + * Patch 64-bit hosts. + */ + /* Pattern #1: XP64/W2K3-64 thru Windows 8.1 + 0:000> u ntdll!NtCreateSection + ntdll!NtCreateSection: + 00000000`779f1750 4c8bd1 mov r10,rcx + 00000000`779f1753 b847000000 mov eax,47h + 00000000`779f1758 0f05 syscall + 00000000`779f175a c3 ret + 00000000`779f175b 0f1f440000 nop dword ptr [rax+rax] + The variant is the value loaded into eax: W2K3=??, Vista=47h?, W7=47h, W80=48h, W81=49h */ + + /* Assemble the patch. */ + g_abNtCreateSectionPatch[0] = 0x48; /* mov rax, qword */ + g_abNtCreateSectionPatch[1] = 0xb8; + *(uint64_t *)&g_abNtCreateSectionPatch[2] = (uint64_t)supR3HardenedMonitor_NtCreateSection; + g_abNtCreateSectionPatch[10] = 0xff; /* jmp rax */ + g_abNtCreateSectionPatch[11] = 0xe0; + +#else + /* + * Patch 32-bit hosts. + */ + /* Pattern #1: XP thru Windows 7 + kd> u ntdll!NtCreateSection + ntdll!NtCreateSection: + 7c90d160 b832000000 mov eax,32h + 7c90d165 ba0003fe7f mov edx,offset SharedUserData!SystemCallStub (7ffe0300) + 7c90d16a ff12 call dword ptr [edx] + 7c90d16c c21c00 ret 1Ch + 7c90d16f 90 nop + The variable bit is the value loaded into eax: XP=32h, W2K3=34h, Vista=4bh, W7=54h + + Pattern #2: Windows 8.1 + 0:000:x86> u ntdll_6a0f0000!NtCreateSection + ntdll_6a0f0000!NtCreateSection: + 6a15eabc b854010000 mov eax,154h + 6a15eac1 e803000000 call ntdll_6a0f0000!NtCreateSection+0xd (6a15eac9) + 6a15eac6 c21c00 ret 1Ch + 6a15eac9 8bd4 mov edx,esp + 6a15eacb 0f34 sysenter + 6a15eacd c3 ret + The variable bit is the value loaded into eax: W81=154h */ + + /* Assemble the patch. */ + g_abNtCreateSectionPatch[0] = 0xe9; /* jmp rel32 */ + *(uint32_t *)&g_abNtCreateSectionPatch[1] = (uintptr_t)supR3HardenedMonitor_NtCreateSection + - (uintptr_t)&pbNtCreateSection[1+4]; + +#endif + + /* + * Hook #2 - LdrLoadDll + * Purpose: (a) Enforce LdrLoadDll search path constraints, and (b) pre-validate + * DLLs so we can avoid calling WinVerifyTrust from the first hook, + * and thus avoiding messing up the loader data on some installations. + * + * This differs from the above function in that is no a system call and + * we're at the mercy of the compiler. + */ + uint8_t * const pbLdrLoadDll = (uint8_t *)(uintptr_t)pfnLdrLoadDll; + g_pbLdrLoadDll = pbLdrLoadDll; + memcpy(g_abLdrLoadDllPatch, pbLdrLoadDll, sizeof(g_abLdrLoadDllPatch)); + + uint32_t cbInstr; + uint32_t offJmpBack = 0; + DISCPUSTATE Dis; + RT_ZERO(Dis); + +#ifdef RT_ARCH_AMD64 + /* + * Patch 64-bit hosts. + */ + /* Just use the disassembler to skip 12 bytes or more. */ + Dis.mode = CPUMODE_64BIT; + while (offJmpBack < 12) + { + cbInstr = 1; + int rc = DISCoreOne(&Dis, (uintptr_t)pbLdrLoadDll + offJmpBack, &cbInstr); + if ( RT_FAILURE(rc) + || (Dis.pCurInstr->optype & (OPTYPE_CONTROLFLOW)) + || (Dis.ModRM.Bits.Mod == 0 && Dis.ModRM.Bits.Rm == 5 /* wrt RIP */) ) + supR3HardenedWinHookFailed("LdrLoadDll", pbLdrLoadDll); + offJmpBack += cbInstr; + } + + /* Assemble the code for resuming the call.*/ + *(PFNRT *)&g_pfnLdrLoadDllReal = (PFNRT)(uintptr_t)&g_abSupHardReadWriteExecPage[offExecPage]; + + memcpy(&g_abSupHardReadWriteExecPage[offExecPage], pbLdrLoadDll, offJmpBack); + offExecPage += offJmpBack; + + g_abSupHardReadWriteExecPage[offExecPage++] = 0xff; /* jmp qword [$+8 wrt RIP] */ + g_abSupHardReadWriteExecPage[offExecPage++] = 0x25; + *(uint32_t *)&g_abSupHardReadWriteExecPage[offExecPage] = RT_ALIGN_32(offExecPage + 4, 8) - (offExecPage + 4); + offExecPage = RT_ALIGN_32(offExecPage + 4, 8); + *(uint64_t *)&g_abSupHardReadWriteExecPage[offExecPage] = (uintptr_t)&pbLdrLoadDll[offJmpBack]; + offExecPage = RT_ALIGN_32(offJmpBack + 8, 16); + + /* Assemble the LdrLoadDll patch. */ + Assert(offJmpBack >= 12); + g_abLdrLoadDllPatch[0] = 0x48; /* mov rax, qword */ + g_abLdrLoadDllPatch[1] = 0xb8; + *(uint64_t *)&g_abLdrLoadDllPatch[2] = (uint64_t)supR3HardenedMonitor_LdrLoadDll; + g_abLdrLoadDllPatch[10] = 0xff; /* jmp rax */ + g_abLdrLoadDllPatch[11] = 0xe0; + +#else + /* + * Patch 32-bit hosts. + */ + /* Just use the disassembler to skip 5 bytes or more. */ + Dis.mode = CPUMODE_32BIT; + while (offJmpBack < 5) + { + cbInstr = 1; + int rc = DISCoreOne(&Dis, (uintptr_t)pbLdrLoadDll + offJmpBack, &cbInstr); + if ( RT_FAILURE(rc) + || (Dis.pCurInstr->optype & (OPTYPE_CONTROLFLOW)) ) + supR3HardenedWinHookFailed("LdrLoadDll", pbLdrLoadDll); + offJmpBack += cbInstr; + } + + /* Assemble the code for resuming the call.*/ + *(PFNRT *)&g_pfnLdrLoadDllReal = (PFNRT)(uintptr_t)&g_abSupHardReadWriteExecPage[offExecPage]; + + memcpy(&g_abSupHardReadWriteExecPage[offExecPage], pbLdrLoadDll, offJmpBack); + offExecPage += offJmpBack; + + g_abSupHardReadWriteExecPage[offExecPage++] = 0xe9; /* jmp rel32 */ + *(uint32_t *)&g_abSupHardReadWriteExecPage[offExecPage] = (uintptr_t)&pbLdrLoadDll[offJmpBack] + - (uintptr_t)&g_abSupHardReadWriteExecPage[offExecPage + 4]; + offExecPage = RT_ALIGN_32(offJmpBack + 4, 16); + + /* Assemble the LdrLoadDll patch. */ + memcpy(g_abLdrLoadDllPatch, pbLdrLoadDll, sizeof(g_abLdrLoadDllPatch)); + Assert(offJmpBack >= 5); + g_abLdrLoadDllPatch[0] = 0xe9; + *(uint32_t *)&g_abLdrLoadDllPatch[1] = (uintptr_t)supR3HardenedMonitor_LdrLoadDll - (uintptr_t)&pbLdrLoadDll[1+4]; +#endif + + /* + * Seal the rwx page. + */ + SUPR3HARDENED_ASSERT_NT_SUCCESS(supR3HardenedWinProtectMemory(g_abSupHardReadWriteExecPage, PAGE_SIZE, PAGE_EXECUTE_READ)); + + /* + * Install the patches. + */ + supR3HardenedWinReInstallHooks(true /*fFirstCall*/); +} + + + + + + +/* + * + * T h r e a d c r e a t i o n c o n t r o l + * T h r e a d c r e a t i o n c o n t r o l + * T h r e a d c r e a t i o n c o n t r o l + * + */ + + +/** + * Common code used for child and parent to make new threads exit immediately. + * + * This patches the LdrInitializeThunk code to call NtTerminateThread with + * STATUS_SUCCESS instead of doing the NTDLL initialization. + * + * @returns VBox status code. + * @param hProcess The process to do this to. + * @param pvLdrInitThunk The address of the LdrInitializeThunk code to + * override. + * @param pvNtTerminateThread The address of the NtTerminateThread function in + * the NTDLL instance we're patching. (Must be +/- + * 2GB from the thunk code.) + * @param pabBackup Where to back up the original instruction bytes + * at pvLdrInitThunk. + * @param cbBackup The size of the backup area. Must be 16 bytes. + * @param pErrInfo Where to return extended error information. + * Optional. + */ +static int supR3HardNtDisableThreadCreationEx(HANDLE hProcess, void *pvLdrInitThunk, void *pvNtTerminateThread, + uint8_t *pabBackup, size_t cbBackup, PRTERRINFO pErrInfo) +{ + SUP_DPRINTF(("supR3HardNtDisableThreadCreation: pvLdrInitThunk=%p pvNtTerminateThread=%p\n", pvLdrInitThunk, pvNtTerminateThread)); + SUPR3HARDENED_ASSERT(cbBackup == 16); + SUPR3HARDENED_ASSERT(RT_ABS((intptr_t)pvLdrInitThunk - (intptr_t)pvNtTerminateThread) < 16*_1M); + + /* + * Back up the thunk code. + */ + SIZE_T cbIgnored; + NTSTATUS rcNt = NtReadVirtualMemory(hProcess, pvLdrInitThunk, pabBackup, cbBackup, &cbIgnored); + if (!NT_SUCCESS(rcNt)) + return RTErrInfoSetF(pErrInfo, VERR_GENERAL_FAILURE, + "supR3HardNtDisableThreadCreation: NtReadVirtualMemory/LdrInitializeThunk failed: %#x", rcNt); + + /* + * Cook up replacement code that calls NtTerminateThread. + */ + uint8_t abReplacement[16]; + memcpy(abReplacement, pabBackup, sizeof(abReplacement)); + +#ifdef RT_ARCH_AMD64 + abReplacement[0] = 0x31; /* xor ecx, ecx */ + abReplacement[1] = 0xc9; + abReplacement[2] = 0x31; /* xor edx, edx */ + abReplacement[3] = 0xd2; + abReplacement[4] = 0xe8; /* call near NtTerminateThread */ + *(int32_t *)&abReplacement[5] = (int32_t)((uintptr_t)pvNtTerminateThread - ((uintptr_t)pvLdrInitThunk + 9)); + abReplacement[9] = 0xcc; /* int3 */ +#elif defined(RT_ARCH_X86) + abReplacement[0] = 0x6a; /* push 0 */ + abReplacement[1] = 0x00; + abReplacement[2] = 0x6a; /* push 0 */ + abReplacement[3] = 0x00; + abReplacement[4] = 0xe8; /* call near NtTerminateThread */ + *(int32_t *)&abReplacement[5] = (int32_t)((uintptr_t)pvNtTerminateThread - ((uintptr_t)pvLdrInitThunk + 9)); + abReplacement[9] = 0xcc; /* int3 */ +#else +# error "Unsupported arch." +#endif + + /* + * Install the replacment code. + */ + PVOID pvProt = pvLdrInitThunk; + SIZE_T cbProt = cbBackup; + ULONG fOldProt = 0; + rcNt = NtProtectVirtualMemory(hProcess, &pvProt, &cbProt, PAGE_EXECUTE_READWRITE, &fOldProt); + if (!NT_SUCCESS(rcNt)) + return RTErrInfoSetF(pErrInfo, VERR_GENERAL_FAILURE, + "supR3HardNtDisableThreadCreationEx: NtProtectVirtualMemory/LdrInitializeThunk failed: %#x", rcNt); + + rcNt = NtWriteVirtualMemory(hProcess, pvLdrInitThunk, abReplacement, sizeof(abReplacement), &cbIgnored); + if (!NT_SUCCESS(rcNt)) + return RTErrInfoSetF(pErrInfo, VERR_GENERAL_FAILURE, + "supR3HardNtDisableThreadCreationEx: NtWriteVirtualMemory/LdrInitializeThunk failed: %#x", rcNt); + + pvProt = pvLdrInitThunk; + cbProt = cbBackup; + rcNt = NtProtectVirtualMemory(hProcess, &pvProt, &cbProt, fOldProt, &fOldProt); + if (!NT_SUCCESS(rcNt)) + return RTErrInfoSetF(pErrInfo, VERR_GENERAL_FAILURE, + "supR3HardNtDisableThreadCreationEx: NtProtectVirtualMemory/LdrInitializeThunk/2 failed: %#x", rcNt); + + return VINF_SUCCESS; +} + + +/** + * Undo the effects of supR3HardNtDisableThreadCreationEx. + * + * @returns VBox status code. + * @param hProcess The process to do this to. + * @param pvLdrInitThunk The address of the LdrInitializeThunk code to + * override. + * @param pabBackup Where to back up the original instruction bytes + * at pvLdrInitThunk. + * @param cbBackup The size of the backup area. Must be 16 bytes. + * @param pErrInfo Where to return extended error information. + * Optional. + */ +static int supR3HardNtEnableThreadCreationEx(HANDLE hProcess, void *pvLdrInitThunk, uint8_t const *pabBackup, size_t cbBackup, + PRTERRINFO pErrInfo) +{ + SUP_DPRINTF(("supR3HardNtEnableThreadCreation:\n")); + SUPR3HARDENED_ASSERT(cbBackup == 16); + + PVOID pvProt = pvLdrInitThunk; + SIZE_T cbProt = cbBackup; + ULONG fOldProt = 0; + NTSTATUS rcNt = NtProtectVirtualMemory(hProcess, &pvProt, &cbProt, PAGE_EXECUTE_READWRITE, &fOldProt); + if (!NT_SUCCESS(rcNt)) + return RTErrInfoSetF(pErrInfo, VERR_GENERAL_FAILURE, + "supR3HardNtDisableThreadCreationEx: NtProtectVirtualMemory/LdrInitializeThunk failed: %#x", rcNt); + + SIZE_T cbIgnored; + rcNt = NtWriteVirtualMemory(hProcess, pvLdrInitThunk, pabBackup, cbBackup, &cbIgnored); + if (!NT_SUCCESS(rcNt)) + return RTErrInfoSetF(pErrInfo, VERR_GENERAL_FAILURE, + "supR3HardNtEnableThreadCreation: NtWriteVirtualMemory/LdrInitializeThunk[restore] failed: %#x", + rcNt); + + pvProt = pvLdrInitThunk; + cbProt = cbBackup; + rcNt = NtProtectVirtualMemory(hProcess, &pvProt, &cbProt, fOldProt, &fOldProt); + if (!NT_SUCCESS(rcNt)) + return RTErrInfoSetF(pErrInfo, VERR_GENERAL_FAILURE, + "supR3HardNtEnableThreadCreation: NtProtectVirtualMemory/LdrInitializeThunk[restore] failed: %#x", + rcNt); + + return VINF_SUCCESS; +} + + +/** + * Disable thread creation for the current process. + * + * @remarks Doesn't really disables it, just makes the threads exit immediately + * without executing any real code. + */ +static void supR3HardenedWinDisableThreadCreation(void) +{ + /* Cannot use the imported NtTerminateThread as it's pointing to our own + syscall assembly code. */ + static PFNRT s_pfnNtTerminateThread = NULL; + if (s_pfnNtTerminateThread == NULL) + s_pfnNtTerminateThread = supR3HardenedWinGetRealDllSymbol("ntdll.dll", "NtTerminateThread"); + SUPR3HARDENED_ASSERT(s_pfnNtTerminateThread); + + int rc = supR3HardNtDisableThreadCreationEx(NtCurrentProcess(), + (void *)(uintptr_t)&LdrInitializeThunk, + (void *)(uintptr_t)s_pfnNtTerminateThread, + g_abLdrInitThunkSelfBackup, sizeof(g_abLdrInitThunkSelfBackup), + NULL /* pErrInfo*/); + g_fSupInitThunkSelfPatched = RT_SUCCESS(rc); +} + + +/** + * Undoes the effects of supR3HardenedWinDisableThreadCreation. + */ +DECLHIDDEN(void) supR3HardenedWinEnableThreadCreation(void) +{ + if (g_fSupInitThunkSelfPatched) + { + int rc = supR3HardNtEnableThreadCreationEx(NtCurrentProcess(), + (void *)(uintptr_t)&LdrInitializeThunk, + g_abLdrInitThunkSelfBackup, sizeof(g_abLdrInitThunkSelfBackup), + RTErrInfoInitStatic(&g_ErrInfoStatic)); + if (RT_FAILURE(rc)) + supR3HardenedError(rc, true /*fFatal*/, "%s", g_ErrInfoStatic.szMsg); + g_fSupInitThunkSelfPatched = false; + } +} + + + + +/* + * + * R e s p a w n + * R e s p a w n + * R e s p a w n + * + */ + + +/** + * Gets the SID of the user associated with the process. + * + * @returns @c true if we've got a login SID, @c false if not. + * @param pSidUser Where to return the user SID. + * @param cbSidUser The size of the user SID buffer. + * @param pSidLogin Where to return the login SID. + * @param cbSidLogin The size of the login SID buffer. + */ +static bool supR3HardNtChildGetUserAndLogSids(PSID pSidUser, ULONG cbSidUser, PSID pSidLogin, ULONG cbSidLogin) +{ + HANDLE hToken; + SUPR3HARDENED_ASSERT_NT_SUCCESS(NtOpenProcessToken(NtCurrentProcess(), TOKEN_QUERY, &hToken)); + union + { + TOKEN_USER UserInfo; + TOKEN_GROUPS Groups; + uint8_t abPadding[4096]; + } uBuf; + ULONG cbRet = 0; + SUPR3HARDENED_ASSERT_NT_SUCCESS(NtQueryInformationToken(hToken, TokenUser, &uBuf, sizeof(uBuf), &cbRet)); + SUPR3HARDENED_ASSERT_NT_SUCCESS(RtlCopySid(cbSidUser, pSidUser, uBuf.UserInfo.User.Sid)); + + bool fLoginSid = false; + NTSTATUS rcNt = NtQueryInformationToken(hToken, TokenLogonSid, &uBuf, sizeof(uBuf), &cbRet); + if (NT_SUCCESS(rcNt)) + { + for (DWORD i = 0; i < uBuf.Groups.GroupCount; i++) + if ((uBuf.Groups.Groups[i].Attributes & SE_GROUP_LOGON_ID) == SE_GROUP_LOGON_ID) + { + SUPR3HARDENED_ASSERT_NT_SUCCESS(RtlCopySid(cbSidLogin, pSidLogin, uBuf.Groups.Groups[i].Sid)); + fLoginSid = true; + break; + } + } + + SUPR3HARDENED_ASSERT_NT_SUCCESS(NtClose(hToken)); + + return fLoginSid; +} + + +/** + * Build security attributes for the process or the primary thread (@a fProcess) + * + * Process DACLs can be bypassed using the SeDebugPrivilege (generally available + * to admins, i.e. normal windows users), or by taking ownership and/or + * modifying the DACL. However, it restricts + * + * @param pSecAttrs Where to return the security attributes. + * @param pCleanup Cleanup record. + * @param fProcess Set if it's for the process, clear if it's for + * the primary thread. + */ +static void supR3HardNtChildInitSecAttrs(PSECURITY_ATTRIBUTES pSecAttrs, PMYSECURITYCLEANUP pCleanup, bool fProcess) +{ + /* + * Safe return values. + */ + suplibHardenedMemSet(pCleanup, 0, sizeof(*pCleanup)); + + pSecAttrs->nLength = sizeof(*pSecAttrs); + pSecAttrs->bInheritHandle = FALSE; + pSecAttrs->lpSecurityDescriptor = NULL; + +/** @todo This isn't at all complete, just sketches... */ + + /* + * Create an ACL detailing the access of the above groups. + */ + SUPR3HARDENED_ASSERT_NT_SUCCESS(RtlCreateAcl(&pCleanup->Acl.AclHdr, sizeof(pCleanup->Acl), ACL_REVISION)); + + ULONG fDeny = DELETE | WRITE_DAC | WRITE_OWNER; + ULONG fAllow = SYNCHRONIZE | READ_CONTROL; + ULONG fAllowLogin = SYNCHRONIZE | READ_CONTROL; + if (fProcess) + { + fDeny |= PROCESS_CREATE_THREAD | PROCESS_SET_SESSIONID | PROCESS_VM_OPERATION | PROCESS_VM_WRITE + | PROCESS_CREATE_PROCESS | PROCESS_DUP_HANDLE | PROCESS_SET_QUOTA + | PROCESS_SET_INFORMATION | PROCESS_SUSPEND_RESUME; + fAllow |= PROCESS_TERMINATE | PROCESS_VM_READ | PROCESS_QUERY_INFORMATION; + fAllowLogin |= PROCESS_TERMINATE | PROCESS_VM_READ | PROCESS_QUERY_INFORMATION; + if (g_uNtVerCombined >= SUP_MAKE_NT_VER_SIMPLE(6, 0)) /* Introduced in Vista. */ + { + fAllow |= PROCESS_QUERY_LIMITED_INFORMATION; + fAllowLogin |= PROCESS_QUERY_LIMITED_INFORMATION; + } + if (g_uNtVerCombined >= SUP_MAKE_NT_VER_SIMPLE(6, 3)) /* Introduced in Windows 8.1. */ + fAllow |= PROCESS_SET_LIMITED_INFORMATION; + } + else + { + fDeny |= THREAD_SUSPEND_RESUME | THREAD_SET_CONTEXT | THREAD_SET_INFORMATION | THREAD_SET_THREAD_TOKEN + | THREAD_IMPERSONATE | THREAD_DIRECT_IMPERSONATION; + fAllow |= THREAD_GET_CONTEXT | THREAD_QUERY_INFORMATION; + fAllowLogin |= THREAD_GET_CONTEXT | THREAD_QUERY_INFORMATION; + if (g_uNtVerCombined >= SUP_MAKE_NT_VER_SIMPLE(6, 0)) /* Introduced in Vista. */ + { + fAllow |= THREAD_QUERY_LIMITED_INFORMATION | THREAD_SET_LIMITED_INFORMATION; + fAllowLogin |= THREAD_QUERY_LIMITED_INFORMATION; + } + + } + fDeny |= ~fAllow & (SPECIFIC_RIGHTS_ALL | STANDARD_RIGHTS_ALL); + + /* Deny everyone access to bad bits. */ +#if 1 + SID_IDENTIFIER_AUTHORITY SIDAuthWorld = SECURITY_WORLD_SID_AUTHORITY; + SUPR3HARDENED_ASSERT_NT_SUCCESS(RtlInitializeSid(&pCleanup->Everyone.Sid, &SIDAuthWorld, 1)); + *RtlSubAuthoritySid(&pCleanup->Everyone.Sid, 0) = SECURITY_WORLD_RID; + SUPR3HARDENED_ASSERT_NT_SUCCESS(RtlAddAccessDeniedAce(&pCleanup->Acl.AclHdr, ACL_REVISION, + fDeny, &pCleanup->Everyone.Sid)); +#endif + +#if 0 + /* Grant some access to the owner - doesn't work. */ + SID_IDENTIFIER_AUTHORITY SIDAuthCreator = SECURITY_CREATOR_SID_AUTHORITY; + SUPR3HARDENED_ASSERT_NT_SUCCESS(RtlInitializeSid(&pCleanup->Owner.Sid, &SIDAuthCreator, 1)); + *RtlSubAuthoritySid(&pCleanup->Owner.Sid, 0) = SECURITY_CREATOR_OWNER_RID; + + SUPR3HARDENED_ASSERT_NT_SUCCESS(RtlAddAccessDeniedAce(&pCleanup->Acl.AclHdr, ACL_REVISION, + fDeny, &pCleanup->Owner.Sid)); + SUPR3HARDENED_ASSERT_NT_SUCCESS(RtlAddAccessAllowedAce(&pCleanup->Acl.AclHdr, ACL_REVISION, + fAllow, &pCleanup->Owner.Sid)); +#endif + +#if 1 + bool fHasLoginSid = supR3HardNtChildGetUserAndLogSids(&pCleanup->User.Sid, sizeof(pCleanup->User), + &pCleanup->Login.Sid, sizeof(pCleanup->Login)); + +# if 1 + /* Grant minimal access to the user. */ + SUPR3HARDENED_ASSERT_NT_SUCCESS(RtlAddAccessDeniedAce(&pCleanup->Acl.AclHdr, ACL_REVISION, + fDeny, &pCleanup->User.Sid)); + SUPR3HARDENED_ASSERT_NT_SUCCESS(RtlAddAccessAllowedAce(&pCleanup->Acl.AclHdr, ACL_REVISION, + fAllow, &pCleanup->User.Sid)); +# endif + +# if 1 + /* Grant very limited access to the login sid. */ + if (fHasLoginSid) + { + SUPR3HARDENED_ASSERT_NT_SUCCESS(RtlAddAccessAllowedAce(&pCleanup->Acl.AclHdr, ACL_REVISION, + fAllowLogin, &pCleanup->Login.Sid)); + } +# endif + +#endif + + /* + * Create a security descriptor with the above ACL. + */ + PSECURITY_DESCRIPTOR pSecDesc = (PSECURITY_DESCRIPTOR)RTMemAllocZ(SECURITY_DESCRIPTOR_MIN_LENGTH); + pCleanup->pSecDesc = pSecDesc; + + SUPR3HARDENED_ASSERT_NT_SUCCESS(RtlCreateSecurityDescriptor(pSecDesc, SECURITY_DESCRIPTOR_REVISION)); + SUPR3HARDENED_ASSERT_NT_SUCCESS(RtlSetDaclSecurityDescriptor(pSecDesc, TRUE /*fDaclPresent*/, &pCleanup->Acl.AclHdr, + FALSE /*fDaclDefaulted*/)); + pSecAttrs->lpSecurityDescriptor = pSecDesc; +} + + +/** + * Predicate function which tests whether @a ch is a argument separator + * character. + * + * @returns True/false. + * @param ch The character to examine. + */ +DECLINLINE(bool) suplibCommandLineIsArgSeparator(int ch) +{ + return ch == ' ' + || ch == '\t' + || ch == '\n' + || ch == '\r'; +} + + +/** + * Construct the new command line. + * + * Since argc/argv are both derived from GetCommandLineW (see + * suplibHardenedWindowsMain), we skip the argument by argument UTF-8 -> UTF-16 + * conversion and quoting by going to the original source. + * + * The executable name, though, is replaced in case it's not a fullly + * qualified path. + * + * The re-spawn indicator is added immediately after the executable name + * so that we don't get tripped up missing close quote chars in the last + * argument. + * + * @returns Pointer to a command line string (heap). + * @param pUniStr Unicode string structure to initialize to the + * command line. Optional. + * @param iWhich Which respawn we're to check for, 1 being the first + * one, and 2 the second and final. + */ +static PRTUTF16 supR3HardNtChildConstructCmdLine(PUNICODE_STRING pString, int iWhich) +{ + SUPR3HARDENED_ASSERT(iWhich == 1 || iWhich == 2); + + /* + * Get the command line and skip the executable name. + */ + PUNICODE_STRING pCmdLineStr = &NtCurrentPeb()->ProcessParameters->CommandLine; + PCRTUTF16 pawcArgs = pCmdLineStr->Buffer; + uint32_t cwcArgs = pCmdLineStr->Length / sizeof(WCHAR); + + /* Skip leading space (shouldn't be any, but whatever). */ + while (cwcArgs > 0 && suplibCommandLineIsArgSeparator(*pawcArgs) ) + cwcArgs--, pawcArgs++; + SUPR3HARDENED_ASSERT(cwcArgs > 0 && *pawcArgs != '\0'); + + /* Walk to the end of it. */ + int fQuoted = false; + do + { + if (*pawcArgs == '"') + { + fQuoted = !fQuoted; + cwcArgs--; pawcArgs++; + } + else if (*pawcArgs != '\\' || (pawcArgs[1] != '\\' && pawcArgs[1] != '"')) + cwcArgs--, pawcArgs++; + else + { + unsigned cSlashes = 0; + do + { + cSlashes++; + cwcArgs--; + pawcArgs++; + } + while (cwcArgs > 0 && *pawcArgs == '\\'); + if (cwcArgs > 0 && *pawcArgs == '"' && (cSlashes & 1)) + cwcArgs--, pawcArgs++; /* odd number of slashes == escaped quote */ + } + } while (cwcArgs > 0 && (fQuoted || !suplibCommandLineIsArgSeparator(*pawcArgs))); + + /* Skip trailing spaces. */ + while (cwcArgs > 0 && suplibCommandLineIsArgSeparator(*pawcArgs)) + cwcArgs--, pawcArgs++; + + /* + * Allocate a new buffer. + */ + AssertCompile(sizeof(SUPR3_RESPAWN_1_ARG0) == sizeof(SUPR3_RESPAWN_2_ARG0)); + size_t cwcCmdLine = (sizeof(SUPR3_RESPAWN_1_ARG0) - 1) / sizeof(SUPR3_RESPAWN_1_ARG0[0]) /* Respawn exe name. */ + + !!cwcArgs + cwcArgs; /* if arguments present, add space + arguments. */ + if (cwcCmdLine * sizeof(WCHAR) >= 0xfff0) + supR3HardenedFatalMsg("supR3HardNtChildConstructCmdLine", kSupInitOp_Misc, VERR_OUT_OF_RANGE, + "Command line is too long (%u chars)!", cwcCmdLine); + + PRTUTF16 pwszCmdLine = (PRTUTF16)RTMemAlloc((cwcCmdLine + 1) * sizeof(RTUTF16)); + SUPR3HARDENED_ASSERT(pwszCmdLine != NULL); + + /* + * Construct the new command line. + */ + PRTUTF16 pwszDst = pwszCmdLine; + for (const char *pszSrc = iWhich == 1 ? SUPR3_RESPAWN_1_ARG0 : SUPR3_RESPAWN_2_ARG0; *pszSrc; pszSrc++) + *pwszDst++ = *pszSrc; + + if (cwcArgs) + { + *pwszDst++ = ' '; + suplibHardenedMemCopy(pwszDst, pawcArgs, cwcArgs * sizeof(RTUTF16)); + pwszDst += cwcArgs; + } + + *pwszDst = '\0'; + SUPR3HARDENED_ASSERT(pwszDst - pwszCmdLine == cwcCmdLine); + + if (pString) + { + pString->Buffer = pwszCmdLine; + pString->Length = (USHORT)(cwcCmdLine * sizeof(WCHAR)); + pString->MaximumLength = pString->Length + sizeof(WCHAR); + } + return pwszCmdLine; +} + + +/** + * Terminates the child process. + * + * @param hProcess The process handle. + * @param pszWhere Who's having child rasing troubles. + * @param rc The status code to report. + * @param pszFormat The message format string. + * @param ... Message format arguments. + */ +static void supR3HardenedWinKillChild(HANDLE hProcess, const char *pszWhere, int rc, const char *pszFormat, ...) +{ + /* + * Terminate the process ASAP and display error. + */ + NtTerminateProcess(hProcess, RTEXITCODE_FAILURE); + + va_list va; + va_start(va, pszFormat); + supR3HardenedErrorV(rc, false /*fFatal*/, pszFormat, va); + va_end(va); + + /* + * Wait for the process to really go away. + */ + PROCESS_BASIC_INFORMATION BasicInfo; + NTSTATUS rcNtExit = NtQueryInformationProcess(hProcess, ProcessBasicInformation, &BasicInfo, sizeof(BasicInfo), NULL); + bool fExitOk = NT_SUCCESS(rcNtExit) && BasicInfo.ExitStatus != STATUS_PENDING; + if (!fExitOk) + { + NTSTATUS rcNtWait; + uint64_t uMsTsStart = supR3HardenedWinGetMilliTS(); + do + { + NtTerminateProcess(hProcess, DBG_TERMINATE_PROCESS); + + LARGE_INTEGER Timeout; + Timeout.QuadPart = -20000000; /* 2 second */ + rcNtWait = NtWaitForSingleObject(hProcess, TRUE /*Alertable*/, &Timeout); + + rcNtExit = NtQueryInformationProcess(hProcess, ProcessBasicInformation, &BasicInfo, sizeof(BasicInfo), NULL); + fExitOk = NT_SUCCESS(rcNtExit) && BasicInfo.ExitStatus != STATUS_PENDING; + } while ( !fExitOk + && ( rcNtWait == STATUS_TIMEOUT + || rcNtWait == STATUS_USER_APC + || rcNtWait == STATUS_ALERTED) + && supR3HardenedWinGetMilliTS() - uMsTsStart < 60 * 1000); + if (fExitOk) + supR3HardenedError(rc, false /*fFatal*/, + "NtDuplicateObject failed and we failed to kill child: rc=%u (%#x) rcNtWait=%#x hProcess=%p\n", + rc, rc, rcNtWait, hProcess); + } + + /* + * Final error message. + */ + va_start(va, pszFormat); + supR3HardenedFatalMsgV(pszWhere, kSupInitOp_Misc, rc, pszFormat, va); + va_end(va); +} + + +/** + * Checks the child process when hEvtParent is signalled. + * + * This will read the request data from the child and check it against expected + * request. If an error is signalled, we'll raise it and make sure the child + * terminates before terminating the calling process. + * + * @param pThis The child process data structure. + * @param enmExpectedRequest The expected child request. + * @param pszWhat What we're waiting for. + */ +static void supR3HardNtChildProcessRequest(PSUPR3HARDNTCHILD pThis, SUPR3WINCHILDREQ enmExpectedRequest, const char *pszWhat) +{ + /* + * Read the process parameters from the child. + */ + uintptr_t uChildAddr = (uintptr_t)pThis->Peb.ImageBaseAddress + + ((uintptr_t)&g_ProcParams - (uintptr_t)NtCurrentPeb()->ImageBaseAddress); + SIZE_T cbIgnored = 0; + RT_ZERO(pThis->ProcParams); + NTSTATUS rcNt = NtReadVirtualMemory(pThis->hProcess, (PVOID)uChildAddr, + &pThis->ProcParams, sizeof(pThis->ProcParams), &cbIgnored); + if (!NT_SUCCESS(rcNt)) + supR3HardenedWinKillChild(pThis, "supR3HardNtChildProcessRequest", rcNt, + "NtReadVirtualMemory(,%p,) failed reading child process status: %#x\n", uChildAddr, rcNt); + + /* + * Is it the expected request? + */ + if (pThis->ProcParams.enmRequest == enmExpectedRequest) + return; + + /* + * No, not the expected request. If it's an error request, tell the child + * to terminate itself, otherwise we'll have to terminate it. + */ + pThis->ProcParams.szErrorMsg[sizeof(pThis->ProcParams.szErrorMsg) - 1] = '\0'; + pThis->ProcParams.szWhere[sizeof(pThis->ProcParams.szWhere) - 1] = '\0'; + SUP_DPRINTF(("supR3HardenedWinCheckChild: enmRequest=%d rc=%d enmWhat=%d %s: %s\n", + pThis->ProcParams.enmRequest, pThis->ProcParams.rc, pThis->ProcParams.enmWhat, + pThis->ProcParams.szWhere, pThis->ProcParams.szErrorMsg)); + + if (pThis->ProcParams.enmRequest != kSupR3WinChildReq_Error) + supR3HardenedWinKillChild(pThis, "supR3HardenedWinCheckChild", VERR_INVALID_PARAMETER, + "Unexpected child request #%d. Was expecting #%d (%s).\n", + pThis->ProcParams.enmRequest, enmExpectedRequest, pszWhat); + + rcNt = NtSetEvent(pThis->hEvtChild, NULL); + if (!NT_SUCCESS(rcNt)) + supR3HardenedWinKillChild(pThis, "supR3HardNtChildProcessRequest", rcNt, "NtSetEvent failed: %#x\n", rcNt); + + /* Wait for it to terminate. */ + LARGE_INTEGER Timeout; + Timeout.QuadPart = -50000000; /* 5 seconds */ + rcNt = NtWaitForSingleObject(pThis->hProcess, FALSE /*Alertable*/, &Timeout); + if (rcNt != STATUS_WAIT_0) + { + SUP_DPRINTF(("supR3HardNtChildProcessRequest: Child is taking too long to quit (rcWait=%#x), killing it...\n", rcNt)); + NtTerminateProcess(pThis->hProcess, DBG_TERMINATE_PROCESS); + } + + /* + * Report the error in the same way as it occured in the guest. + */ + if (pThis->ProcParams.enmWhat == kSupInitOp_Invalid) + supR3HardenedFatalMsg("supR3HardenedWinCheckChild", kSupInitOp_Misc, pThis->ProcParams.rc, + "%s", pThis->ProcParams.szErrorMsg); + else + supR3HardenedFatalMsg(pThis->ProcParams.szWhere, pThis->ProcParams.enmWhat, pThis->ProcParams.rc, + "%s", pThis->ProcParams.szErrorMsg); +} + + +/** + * Waits for the child to make a certain request or terminate. + * + * The stub process will also wait on it's parent to terminate. + * This call will only return if the child made the expected request. + * + * @param pThis The child process data structure. + * @param enmExpectedRequest The child request to wait for. + * @param cMsTimeout The number of milliseconds to wait (at least). + * @param pszWhat What we're waiting for. + */ +static void supR3HardNtChildWaitFor(PSUPR3HARDNTCHILD pThis, SUPR3WINCHILDREQ enmExpectedRequest, RTMSINTERVAL cMsTimeout, + const char *pszWhat) +{ + /* + * The wait loop. + * Will return when the expected request arrives. + * Will break out when one of the processes terminates. + */ + NTSTATUS rcNtWait; + LARGE_INTEGER Timeout; + uint64_t uMsTsStart = supR3HardenedWinGetMilliTS(); + uint64_t cMsElapsed = 0; + for (;;) + { + /* + * Assemble handles to wait for. + */ + ULONG cHandles = 1; + HANDLE ahHandles[3]; + ahHandles[0] = pThis->hProcess; + if (pThis->hEvtParent) + ahHandles[cHandles++] = pThis->hEvtParent; + if (pThis->hParent) + ahHandles[cHandles++] = pThis->hParent; + + /* + * Do the waiting according to the callers wishes. + */ + if ( enmExpectedRequest == kSupR3WinChildReq_End + || cMsTimeout == RT_INDEFINITE_WAIT) + rcNtWait = NtWaitForMultipleObjects(cHandles, &ahHandles[0], WaitAnyObject, TRUE /*Alertable*/, NULL /*Timeout*/); + else + { + Timeout.QuadPart = -(int64_t)(cMsTimeout - cMsElapsed) * 10000; + rcNtWait = NtWaitForMultipleObjects(cHandles, &ahHandles[0], WaitAnyObject, TRUE /*Alertable*/, &Timeout); + } + + /* + * Process child request. + */ + if (rcNtWait == STATUS_WAIT_0 + 1 && pThis->hEvtParent != NULL) + { + supR3HardNtChildProcessRequest(pThis, enmExpectedRequest, pszWhat); + SUP_DPRINTF(("supR3HardNtChildWaitFor: Found expected request %d (%s) after %llu ms.\n", + enmExpectedRequest, pszWhat, supR3HardenedWinGetMilliTS() - uMsTsStart)); + return; /* Expected request received. */ + } + + /* + * Process termination? + */ + if ( (ULONG)rcNtWait - (ULONG)STATUS_WAIT_0 < cHandles + || (ULONG)rcNtWait - (ULONG)STATUS_ABANDONED_WAIT_0 < cHandles) + break; + + /* + * Check sanity. + */ + if ( rcNtWait != STATUS_TIMEOUT + && rcNtWait != STATUS_USER_APC + && rcNtWait != STATUS_ALERTED) + supR3HardenedWinKillChild(pThis, "supR3HardNtChildWaitFor", rcNtWait, + "NtWaitForMultipleObjects returned %#x waiting for #%d (%s)\n", + rcNtWait, enmExpectedRequest, pszWhat); + + /* + * Calc elapsed time for the next timeout calculation, checking to see + * if we've timed out already. + */ + cMsElapsed = supR3HardenedWinGetMilliTS() - uMsTsStart; + if ( cMsElapsed > cMsTimeout + && cMsTimeout != RT_INDEFINITE_WAIT + && enmExpectedRequest != kSupR3WinChildReq_End) + { + if (rcNtWait == STATUS_USER_APC || rcNtWait == STATUS_ALERTED) + cMsElapsed = cMsTimeout - 1; /* try again */ + else + { + /* We timed out. */ + supR3HardenedWinKillChild(pThis, "supR3HardNtChildWaitFor", rcNtWait, + "Timed out after %llu ms waiting for child request #%d (%s).\n", + cMsElapsed, enmExpectedRequest, pszWhat); + } + } + } + + /* + * Proxy the termination code of the child, if it exited already. + */ + PROCESS_BASIC_INFORMATION BasicInfo; + NTSTATUS rcNt1 = NtQueryInformationProcess(pThis->hProcess, ProcessBasicInformation, &BasicInfo, sizeof(BasicInfo), NULL); + NTSTATUS rcNt2 = STATUS_PENDING; + NTSTATUS rcNt3 = STATUS_PENDING; + if ( !NT_SUCCESS(rcNt1) + || BasicInfo.ExitStatus == STATUS_PENDING) + { + rcNt2 = NtTerminateProcess(pThis->hProcess, RTEXITCODE_FAILURE); + Timeout.QuadPart = NT_SUCCESS(rcNt2) ? -20000000 /* 2 sec */ : -1280000 /* 128 ms */; + rcNt3 = NtWaitForSingleObject(pThis->hProcess, FALSE /*Alertable*/, NULL /*Timeout*/); + BasicInfo.ExitStatus = RTEXITCODE_FAILURE; + } + + SUP_DPRINTF(("supR3HardNtChildWaitFor[%d]: Quitting: ExitCode=%#x (rcNtWait=%#x, rcNt1=%#x, rcNt2=%#x, rcNt3=%#x, %llu ms, %s);\n", + pThis->iWhich, BasicInfo.ExitStatus, rcNtWait, rcNt1, rcNt2, rcNt3, + supR3HardenedWinGetMilliTS() - uMsTsStart, pszWhat)); + suplibHardenedExit((RTEXITCODE)BasicInfo.ExitStatus); +} + + +/** + * Closes full access child thread and process handles, making a harmless + * duplicate of the process handle first. + * + * The hProcess member of the child process data structure will be change to the + * harmless handle, while the hThread will be set to NULL. + * + * @param pThis The child process data structure. + */ +static void supR3HardNtChildCloseFullAccessHandles(PSUPR3HARDNTCHILD pThis) +{ + /* + * The thread handle. + */ + NTSTATUS rcNt = NtClose(pThis->hThread); + if (!NT_SUCCESS(rcNt)) + supR3HardenedWinKillChild(pThis, "supR3HardenedWinReSpawn", rcNt, "NtClose(hThread) failed: %#x", rcNt); + pThis->hThread = NULL; + + /* + * Duplicate the process handle into a harmless one. + */ + HANDLE hProcWait; + ULONG fRights = SYNCHRONIZE | PROCESS_TERMINATE | PROCESS_VM_READ; + if (g_uNtVerCombined >= SUP_MAKE_NT_VER_SIMPLE(6, 0)) /* Introduced in Vista. */ + fRights |= PROCESS_QUERY_LIMITED_INFORMATION; + else + fRights |= PROCESS_QUERY_INFORMATION; + rcNt = NtDuplicateObject(NtCurrentProcess(), pThis->hProcess, + NtCurrentProcess(), &hProcWait, + fRights, 0 /*HandleAttributes*/, 0); + if (rcNt == STATUS_ACCESS_DENIED) + { + supR3HardenedError(rcNt, false /*fFatal*/, + "supR3HardenedWinDoReSpawn: NtDuplicateObject(,,,,%#x,,) -> %#x, retrying with only %#x...\n", + fRights, rcNt, SYNCHRONIZE); + rcNt = NtDuplicateObject(NtCurrentProcess(), pThis->hProcess, + NtCurrentProcess(), &hProcWait, + SYNCHRONIZE, 0 /*HandleAttributes*/, 0); + } + if (!NT_SUCCESS(rcNt)) + supR3HardenedWinKillChild(pThis, "supR3HardenedWinReSpawn", rcNt, + "NtDuplicateObject failed on child process handle: %#x\n", rcNt); + /* + * Close the process handle and replace it with the harmless one. + */ + rcNt = NtClose(pThis->hProcess); + pThis->hProcess = hProcWait; + if (!NT_SUCCESS(rcNt)) + supR3HardenedWinKillChild(pThis, "supR3HardenedWinReSpawn", VERR_INVALID_NAME, + "NtClose failed on child process handle: %#x\n", rcNt); +} + + +/** + * This restores the child PEB and tweaks a couple of fields before we do the + * child purification and let the process run normally. + * + * @param pThis The child process data structure. + */ +static void supR3HardNtChildSanitizePeb(PSUPR3HARDNTCHILD pThis) +{ + /* + * Make a copy of the pre-execution PEB. + */ + PEB Peb = pThis->Peb; + +#if 0 + /* + * There should not be any activation context, so if there is, we scratch the memory associated with it. + */ + int rc = 0; + if (RT_SUCCESS(rc) && Peb.pShimData && !((uintptr_t)Peb.pShimData & PAGE_OFFSET_MASK)) + rc = supR3HardenedWinScratchChildMemory(hProcess, Peb.pShimData, PAGE_SIZE, "pShimData", pErrInfo); + if (RT_SUCCESS(rc) && Peb.ActivationContextData && !((uintptr_t)Peb.ActivationContextData & PAGE_OFFSET_MASK)) + rc = supR3HardenedWinScratchChildMemory(hProcess, Peb.ActivationContextData, PAGE_SIZE, "ActivationContextData", pErrInfo); + if (RT_SUCCESS(rc) && Peb.ProcessAssemblyStorageMap && !((uintptr_t)Peb.ProcessAssemblyStorageMap & PAGE_OFFSET_MASK)) + rc = supR3HardenedWinScratchChildMemory(hProcess, Peb.ProcessAssemblyStorageMap, PAGE_SIZE, "ProcessAssemblyStorageMap", pErrInfo); + if (RT_SUCCESS(rc) && Peb.SystemDefaultActivationContextData && !((uintptr_t)Peb.SystemDefaultActivationContextData & PAGE_OFFSET_MASK)) + rc = supR3HardenedWinScratchChildMemory(hProcess, Peb.ProcessAssemblyStorageMap, PAGE_SIZE, "SystemDefaultActivationContextData", pErrInfo); + if (RT_SUCCESS(rc) && Peb.SystemAssemblyStorageMap && !((uintptr_t)Peb.SystemAssemblyStorageMap & PAGE_OFFSET_MASK)) + rc = supR3HardenedWinScratchChildMemory(hProcess, Peb.SystemAssemblyStorageMap, PAGE_SIZE, "SystemAssemblyStorageMap", pErrInfo); + if (RT_FAILURE(rc)) + return rc; +#endif + + /* + * Clear compatibility and activation related fields. + */ + Peb.AppCompatFlags.QuadPart = 0; + Peb.AppCompatFlagsUser.QuadPart = 0; + Peb.pShimData = NULL; + Peb.AppCompatInfo = NULL; +#if 0 + Peb.ActivationContextData = NULL; + Peb.ProcessAssemblyStorageMap = NULL; + Peb.SystemDefaultActivationContextData = NULL; + Peb.SystemAssemblyStorageMap = NULL; + /*Peb.Diff0.W6.IsProtectedProcess = 1;*/ +#endif + + /* + * Write back the PEB. + */ + SIZE_T cbActualMem = pThis->cbPeb; + NTSTATUS rcNt = NtWriteVirtualMemory(pThis->hProcess, pThis->BasicInfo.PebBaseAddress, &Peb, pThis->cbPeb, &cbActualMem); + if (!NT_SUCCESS(rcNt)) + supR3HardenedWinKillChild(pThis, "supR3HardNtChildSanitizePeb", rcNt, + "NtWriteVirtualMemory/Peb failed: %#x", rcNt); + +} + + +/** + * Purifies the child process after very early init has been performed. + * + * @param pThis The child process data structure. + */ +static void supR3HardNtChildPurify(PSUPR3HARDNTCHILD pThis) +{ + /* + * We loop until we no longer make any fixes. This is similar to what + * we do (or used to do, really) in the fAvastKludge case of + * supR3HardenedWinInit. We might be up against asynchronous changes, + * which we fudge by waiting a short while before earch purification. This + * is arguably a fragile technique, but it's currently the best we've got. + * Fortunately, most AVs seems to either favor immediate action on initial + * load events or (much better for us) later events like kernel32. + */ + uint64_t uMsTsOuterStart = supR3HardenedWinGetMilliTS(); + uint32_t cMsFudge = g_fSupAdversaries ? 512 : 256; + uint32_t cTotalFixes = 0; + uint32_t cFixes; + for (uint32_t iLoop = 0; iLoop < 16; iLoop++) + { + /* + * Delay. + */ + uint32_t cSleeps = 0; + uint64_t uMsTsStart = supR3HardenedWinGetMilliTS(); + do + { + NtYieldExecution(); + LARGE_INTEGER Time; + Time.QuadPart = -8000000 / 100; /* 8ms in 100ns units, relative time. */ + NtDelayExecution(FALSE, &Time); + cSleeps++; + } while ( supR3HardenedWinGetMilliTS() - uMsTsStart <= cMsFudge + || cSleeps < 8); + SUP_DPRINTF(("supR3HardNtChildPurify: Startup delay kludge #1/%u: %u ms, %u sleeps\n", + iLoop, supR3HardenedWinGetMilliTS() - uMsTsStart, cSleeps)); + + /* + * Purify. + */ + cFixes = 0; + int rc = supHardenedWinVerifyProcess(pThis->hProcess, pThis->hThread, SUPHARDNTVPKIND_CHILD_PURIFICATION, + g_fSupAdversaries & ( SUPHARDNT_ADVERSARY_TRENDMICRO_SAKFILE + | SUPHARDNT_ADVERSARY_DIGITAL_GUARDIAN) + ? SUPHARDNTVP_F_EXEC_ALLOC_REPLACE_WITH_RW : 0, + &cFixes, RTErrInfoInitStatic(&g_ErrInfoStatic)); + if (RT_FAILURE(rc)) + supR3HardenedWinKillChild(pThis, "supR3HardNtChildPurify", rc, + "supHardenedWinVerifyProcess failed with %Rrc: %s", rc, g_ErrInfoStatic.szMsg); + if (cFixes == 0) + { + SUP_DPRINTF(("supR3HardNtChildPurify: Done after %llu ms and %u fixes (loop #%u).\n", + supR3HardenedWinGetMilliTS() - uMsTsOuterStart, cTotalFixes, iLoop)); + return; /* We're probably good. */ + } + cTotalFixes += cFixes; + + if (!g_fSupAdversaries) + g_fSupAdversaries |= SUPHARDNT_ADVERSARY_UNKNOWN; + cMsFudge = 512; + + /* + * Log the KiOpPrefetchPatchCount value if available, hoping it might + * sched some light on spider38's case. + */ + ULONG cPatchCount = 0; + NTSTATUS rcNt = NtQuerySystemInformation(SystemInformation_KiOpPrefetchPatchCount, + &cPatchCount, sizeof(cPatchCount), NULL); + if (NT_SUCCESS(rcNt)) + SUP_DPRINTF(("supR3HardNtChildPurify: cFixes=%u g_fSupAdversaries=%#x cPatchCount=%#u\n", + cFixes, g_fSupAdversaries, cPatchCount)); + else + SUP_DPRINTF(("supR3HardNtChildPurify: cFixes=%u g_fSupAdversaries=%#x\n", cFixes, g_fSupAdversaries)); + } + + /* + * We've given up fixing the child process. Probably fighting someone + * that monitors their patches or/and our activities. + */ + supR3HardenedWinKillChild(pThis, "supR3HardNtChildPurify", VERR_TRY_AGAIN, + "Unable to purify child process! After 16 tries over %llu ms, we still %u fix(es) in the last pass.", + supR3HardenedWinGetMilliTS() - uMsTsOuterStart, cFixes); +} + + + +/** + * Sets up the early process init. + * + * @param pThis The child process data structure. + */ +static void supR3HardNtChildSetUpChildInit(PSUPR3HARDNTCHILD pThis) +{ + uintptr_t const uChildExeAddr = (uintptr_t)pThis->Peb.ImageBaseAddress; + + /* + * Plant the process parameters. This ASSUMES the handle inheritance is + * performed when creating the child process. + */ + RT_ZERO(pThis->ProcParams); + pThis->ProcParams.hEvtChild = pThis->hEvtChild; + pThis->ProcParams.hEvtParent = pThis->hEvtParent; + pThis->ProcParams.uNtDllAddr = pThis->uNtDllAddr; + pThis->ProcParams.enmRequest = kSupR3WinChildReq_Error; + pThis->ProcParams.rc = VINF_SUCCESS; + + uintptr_t uChildAddr = uChildExeAddr + ((uintptr_t)&g_ProcParams - (uintptr_t)NtCurrentPeb()->ImageBaseAddress); + SIZE_T cbIgnored; + NTSTATUS rcNt = NtWriteVirtualMemory(pThis->hProcess, (PVOID)uChildAddr, &pThis->ProcParams, + sizeof(pThis->ProcParams), &cbIgnored); + if (!NT_SUCCESS(rcNt)) + supR3HardenedWinKillChild(pThis, "supR3HardenedWinSetupChildInit", rcNt, + "NtWriteVirtualMemory(,%p,) failed writing child process parameters: %#x\n", uChildAddr, rcNt); + + /* + * Locate the LdrInitializeThunk address in the child as well as pristine + * code bits for it. + */ + PSUPHNTLDRCACHEENTRY pLdrEntry; + int rc = supHardNtLdrCacheOpen("ntdll.dll", &pLdrEntry); + if (RT_FAILURE(rc)) + supR3HardenedWinKillChild(pThis, "supR3HardenedWinSetupChildInit", rc, + "supHardNtLdrCacheOpen failed on NTDLL: %Rrc\n", rc); + + uint8_t *pbChildNtDllBits; + rc = supHardNtLdrCacheEntryGetBits(pLdrEntry, &pbChildNtDllBits, pThis->uNtDllAddr, NULL, NULL, NULL /*pErrInfo*/); + if (RT_FAILURE(rc)) + supR3HardenedWinKillChild(pThis, "supR3HardenedWinSetupChildInit", rc, + "supHardNtLdrCacheEntryGetBits failed on NTDLL: %Rrc\n", rc); + + RTLDRADDR uLdrInitThunk; + rc = RTLdrGetSymbolEx(pLdrEntry->hLdrMod, pbChildNtDllBits, pThis->uNtDllAddr, UINT32_MAX, + "LdrInitializeThunk", &uLdrInitThunk); + if (RT_FAILURE(rc)) + supR3HardenedWinKillChild(pThis, "supR3HardenedWinSetupChildInit", rc, + "Error locating LdrInitializeThunk in NTDLL: %Rrc", rc); + PVOID pvLdrInitThunk = (PVOID)(uintptr_t)uLdrInitThunk; + SUP_DPRINTF(("supR3HardenedWinSetupChildInit: uLdrInitThunk=%p\n", (uintptr_t)uLdrInitThunk)); + + /* + * Calculate the address of our code in the child process. + */ + uintptr_t uEarlyProcInitEP = uChildExeAddr + ( (uintptr_t)&supR3HardenedEarlyProcessInitThunk + - (uintptr_t)NtCurrentPeb()->ImageBaseAddress); + + /* + * Compose the LdrInitializeThunk replacement bytes. + * Note! The amount of code we replace here must be less or equal to what + * the process verification code ignores. + */ + uint8_t abNew[16]; + memcpy(abNew, pbChildNtDllBits + ((uintptr_t)uLdrInitThunk - pThis->uNtDllAddr), sizeof(abNew)); +#ifdef RT_ARCH_AMD64 + abNew[0] = 0xff; + abNew[1] = 0x25; + *(uint32_t *)&abNew[2] = 0; + *(uint64_t *)&abNew[6] = uEarlyProcInitEP; +#elif defined(RT_ARCH_X86) + abNew[0] = 0xe9; + *(uint32_t *)&abNew[1] = uEarlyProcInitEP - ((uint32_t)uLdrInitThunk + 5); +#else +# error "Unsupported arch." +#endif + + /* + * Install the LdrInitializeThunk replacement code in the child process. + */ + PVOID pvProt = pvLdrInitThunk; + SIZE_T cbProt = sizeof(abNew); + ULONG fOldProt; + rcNt = NtProtectVirtualMemory(pThis->hProcess, &pvProt, &cbProt, PAGE_EXECUTE_READWRITE, &fOldProt); + if (!NT_SUCCESS(rcNt)) + supR3HardenedWinKillChild(pThis, "supR3HardenedWinSetupChildInit", rcNt, + "NtProtectVirtualMemory/LdrInitializeThunk failed: %#x", rcNt); + + rcNt = NtWriteVirtualMemory(pThis->hProcess, pvLdrInitThunk, abNew, sizeof(abNew), &cbIgnored); + if (!NT_SUCCESS(rcNt)) + supR3HardenedWinKillChild(pThis, "supR3HardenedWinSetupChildInit", rcNt, + "NtWriteVirtualMemory/LdrInitializeThunk failed: %#x", rcNt); + + pvProt = pvLdrInitThunk; + cbProt = sizeof(abNew); + rcNt = NtProtectVirtualMemory(pThis->hProcess, &pvProt, &cbProt, fOldProt, &fOldProt); + if (!NT_SUCCESS(rcNt)) + supR3HardenedWinKillChild(pThis, "supR3HardenedWinSetupChildInit", rcNt, + "NtProtectVirtualMemory/LdrInitializeThunk[restore] failed: %#x", rcNt); + + /* Caller starts child execution. */ + SUP_DPRINTF(("supR3HardenedWinSetupChildInit: Start child.\n")); +} + + + +/** + * This messes with the child PEB before we trigger the initial image events. + * + * @param pThis The child process data structure. + */ +static void supR3HardNtChildScrewUpPebForInitialImageEvents(PSUPR3HARDNTCHILD pThis) +{ + /* + * Not sure if any of the cracker software uses the PEB at this point, but + * just in case they do make some of the PEB fields a little less useful. + */ + PEB Peb = pThis->Peb; + + /* Make ImageBaseAddress useless. */ + Peb.ImageBaseAddress = (PVOID)((uintptr_t)Peb.ImageBaseAddress ^ UINT32_C(0x5f139000)); +#ifdef RT_ARCH_AMD64 + Peb.ImageBaseAddress = (PVOID)((uintptr_t)Peb.ImageBaseAddress | UINT64_C(0x0313000000000000)); +#endif + + /* + * Write the PEB. + */ + SIZE_T cbActualMem = pThis->cbPeb; + NTSTATUS rcNt = NtWriteVirtualMemory(pThis->hProcess, pThis->BasicInfo.PebBaseAddress, &Peb, pThis->cbPeb, &cbActualMem); + if (!NT_SUCCESS(rcNt)) + supR3HardenedWinKillChild(pThis, "supR3HardNtChildScrewUpPebForInitialImageEvents", rcNt, + "NtWriteVirtualMemory/Peb failed: %#x", rcNt); +} + + +/** + * Check if the zero terminated NT unicode string is the path to the given + * system32 DLL. + * + * @returns true if it is, false if not. + * @param pUniStr The zero terminated NT unicode string path. + * @param pszName The name of the system32 DLL. + */ +static bool supR3HardNtIsNamedSystem32Dll(PUNICODE_STRING pUniStr, const char *pszName) +{ + if (pUniStr->Length > g_System32NtPath.UniStr.Length) + { + if (memcmp(pUniStr->Buffer, g_System32NtPath.UniStr.Buffer, g_System32NtPath.UniStr.Length) == 0) + { + if (pUniStr->Buffer[g_System32NtPath.UniStr.Length / sizeof(WCHAR)] == '\\') + { + if (RTUtf16ICmpAscii(&pUniStr->Buffer[g_System32NtPath.UniStr.Length / sizeof(WCHAR) + 1], pszName) == 0) + return true; + } + } + } + + return false; +} + + +/** + * Worker for supR3HardNtChildGatherData that locates NTDLL in the child + * process. + * + * @param pThis The child process data structure. + */ +static void supR3HardNtChildFindNtdll(PSUPR3HARDNTCHILD pThis) +{ + /* + * Find NTDLL in this process first and take that as a starting point. + */ + pThis->uNtDllParentAddr = (uintptr_t)GetModuleHandleW(L"ntdll.dll"); + SUPR3HARDENED_ASSERT(pThis->uNtDllParentAddr != 0 && !(pThis->uNtDllParentAddr & PAGE_OFFSET_MASK)); + pThis->uNtDllAddr = pThis->uNtDllParentAddr; + + /* + * Scan the virtual memory of the child. + */ + uintptr_t cbAdvance = 0; + uintptr_t uPtrWhere = 0; + for (uint32_t i = 0; i < 1024; i++) + { + /* Query information. */ + SIZE_T cbActual = 0; + MEMORY_BASIC_INFORMATION MemInfo = { 0, 0, 0, 0, 0, 0, 0 }; + NTSTATUS rcNt = NtQueryVirtualMemory(pThis->hProcess, + (void const *)uPtrWhere, + MemoryBasicInformation, + &MemInfo, + sizeof(MemInfo), + &cbActual); + if (!NT_SUCCESS(rcNt)) + break; + + if ( MemInfo.Type == SEC_IMAGE + || MemInfo.Type == SEC_PROTECTED_IMAGE + || MemInfo.Type == (SEC_IMAGE | SEC_PROTECTED_IMAGE)) + { + if (MemInfo.BaseAddress == MemInfo.AllocationBase) + { + /* Get the image name. */ + union + { + UNICODE_STRING UniStr; + uint8_t abPadding[4096]; + } uBuf; + NTSTATUS rcNt = NtQueryVirtualMemory(pThis->hProcess, + MemInfo.BaseAddress, + MemorySectionName, + &uBuf, + sizeof(uBuf) - sizeof(WCHAR), + &cbActual); + if (NT_SUCCESS(rcNt)) + { + uBuf.UniStr.Buffer[uBuf.UniStr.Length / sizeof(WCHAR)] = '\0'; + if (supR3HardNtIsNamedSystem32Dll(&uBuf.UniStr, "ntdll.dll")) + { + pThis->uNtDllAddr = (uintptr_t)MemInfo.AllocationBase; + SUP_DPRINTF(("supR3HardNtPuChFindNtdll: uNtDllParentAddr=%p uNtDllChildAddr=%p\n", + pThis->uNtDllParentAddr, pThis->uNtDllAddr)); + return; + } + } + } + } + + /* + * Advance. + */ + cbAdvance = MemInfo.RegionSize; + if (uPtrWhere + cbAdvance <= uPtrWhere) + break; + uPtrWhere += MemInfo.RegionSize; + } + + supR3HardenedWinKillChild(pThis, "supR3HardNtChildFindNtdll", VERR_MODULE_NOT_FOUND, "ntdll.dll not found in child process."); +} + + +/** + * Gather child data. + * + * @param This The child process data structure. + */ +static void supR3HardNtChildGatherData(PSUPR3HARDNTCHILD pThis) +{ + /* + * Basic info. + */ + ULONG cbActual = 0; + NTSTATUS rcNt = NtQueryInformationProcess(pThis->hProcess, ProcessBasicInformation, + &pThis->BasicInfo, sizeof(pThis->BasicInfo), &cbActual); + if (!NT_SUCCESS(rcNt)) + supR3HardenedWinKillChild(pThis, "supR3HardNtChildGatherData", rcNt, + "NtQueryInformationProcess/ProcessBasicInformation failed: %#x", rcNt); + + /* + * If this is the middle (stub) process, we wish to wait for both child + * and parent. So open the parent process. Not fatal if we cannnot. + */ + if (pThis->iWhich > 1) + { + PROCESS_BASIC_INFORMATION SelfInfo; + rcNt = NtQueryInformationProcess(NtCurrentProcess(), ProcessBasicInformation, &SelfInfo, sizeof(SelfInfo), &cbActual); + if (NT_SUCCESS(rcNt)) + { + OBJECT_ATTRIBUTES ObjAttr; + InitializeObjectAttributes(&ObjAttr, NULL, 0, NULL /*hRootDir*/, NULL /*pSecDesc*/); + + CLIENT_ID ClientId; + ClientId.UniqueProcess = (HANDLE)SelfInfo.InheritedFromUniqueProcessId; + ClientId.UniqueThread = NULL; + + rcNt = NtOpenProcess(&pThis->hParent, SYNCHRONIZE | PROCESS_QUERY_INFORMATION, &ObjAttr, &ClientId); +#ifdef DEBUG + SUPR3HARDENED_ASSERT_NT_SUCCESS(rcNt); +#endif + if (!NT_SUCCESS(rcNt)) + { + pThis->hParent = NULL; + SUP_DPRINTF(("supR3HardNtChildGatherData: Failed to open parent process (%#p): %#x\n", ClientId.UniqueProcess, rcNt)); + } + } + + } + + /* + * Process environment block. + */ + if (g_uNtVerCombined < SUP_NT_VER_W2K3) + pThis->cbPeb = PEB_SIZE_W51; + else if (g_uNtVerCombined < SUP_NT_VER_VISTA) + pThis->cbPeb = PEB_SIZE_W52; + else if (g_uNtVerCombined < SUP_NT_VER_W70) + pThis->cbPeb = PEB_SIZE_W6; + else if (g_uNtVerCombined < SUP_NT_VER_W80) + pThis->cbPeb = PEB_SIZE_W7; + else if (g_uNtVerCombined < SUP_NT_VER_W81) + pThis->cbPeb = PEB_SIZE_W80; + else + pThis->cbPeb = PEB_SIZE_W81; + + SUP_DPRINTF(("supR3HardNtChildGatherData: PebBaseAddress=%p cbPeb=%#x\n", + pThis->BasicInfo.PebBaseAddress, pThis->cbPeb)); + + SIZE_T cbActualMem; + RT_ZERO(pThis->Peb); + rcNt = NtReadVirtualMemory(pThis->hProcess, pThis->BasicInfo.PebBaseAddress, &pThis->Peb, sizeof(pThis->Peb), &cbActualMem); + if (!NT_SUCCESS(rcNt)) + supR3HardenedWinKillChild(pThis, "supR3HardNtChildGatherData", rcNt, + "NtReadVirtualMemory/Peb failed: %#x", rcNt); + + /* + * Locate NtDll. + */ + supR3HardNtChildFindNtdll(pThis); +} + + +/** + * Does the actually respawning. + * + * @returns Never, will call exit or raise fatal error. + * @param iWhich Which respawn we're to check for, 1 being the + * first one, and 2 the second and final. + */ +static void supR3HardenedWinDoReSpawn(int iWhich) +{ + NTSTATUS rcNt; + PPEB pPeb = NtCurrentPeb(); + PRTL_USER_PROCESS_PARAMETERS pParentProcParams = pPeb->ProcessParameters; + + SUPR3HARDENED_ASSERT(g_cSuplibHardenedWindowsMainCalls == 1); + + /* + * Init the child process data structure, creating the child communication + * event sempahores. + */ + SUPR3HARDNTCHILD This; + RT_ZERO(This); + This.iWhich = iWhich; + + OBJECT_ATTRIBUTES ObjAttrs; + This.hEvtChild = NULL; + InitializeObjectAttributes(&ObjAttrs, NULL /*pName*/, OBJ_INHERIT, NULL /*hRootDir*/, NULL /*pSecDesc*/); + SUPR3HARDENED_ASSERT_NT_SUCCESS(NtCreateEvent(&This.hEvtChild, EVENT_ALL_ACCESS, &ObjAttrs, SynchronizationEvent, FALSE)); + + This.hEvtParent = NULL; + InitializeObjectAttributes(&ObjAttrs, NULL /*pName*/, OBJ_INHERIT, NULL /*hRootDir*/, NULL /*pSecDesc*/); + SUPR3HARDENED_ASSERT_NT_SUCCESS(NtCreateEvent(&This.hEvtParent, EVENT_ALL_ACCESS, &ObjAttrs, SynchronizationEvent, FALSE)); + + /* + * Set up security descriptors. + */ + SECURITY_ATTRIBUTES ProcessSecAttrs; + MYSECURITYCLEANUP ProcessSecAttrsCleanup; + supR3HardNtChildInitSecAttrs(&ProcessSecAttrs, &ProcessSecAttrsCleanup, true /*fProcess*/); + + SECURITY_ATTRIBUTES ThreadSecAttrs; + MYSECURITYCLEANUP ThreadSecAttrsCleanup; + supR3HardNtChildInitSecAttrs(&ThreadSecAttrs, &ThreadSecAttrsCleanup, false /*fProcess*/); + +#if 1 + /* + * Configure the startup info and creation flags. + */ + DWORD dwCreationFlags = CREATE_SUSPENDED; + + STARTUPINFOEXW SiEx; + suplibHardenedMemSet(&SiEx, 0, sizeof(SiEx)); + if (1) + SiEx.StartupInfo.cb = sizeof(SiEx.StartupInfo); + else + { + SiEx.StartupInfo.cb = sizeof(SiEx); + dwCreationFlags |= EXTENDED_STARTUPINFO_PRESENT; + /** @todo experiment with protected process stuff later on. */ + } + + SiEx.StartupInfo.dwFlags |= pParentProcParams->WindowFlags & STARTF_USESHOWWINDOW; + SiEx.StartupInfo.wShowWindow = (WORD)pParentProcParams->ShowWindowFlags; + + SiEx.StartupInfo.dwFlags |= STARTF_USESTDHANDLES; + SiEx.StartupInfo.hStdInput = pParentProcParams->StandardInput; + SiEx.StartupInfo.hStdOutput = pParentProcParams->StandardOutput; + SiEx.StartupInfo.hStdError = pParentProcParams->StandardError; + + /* + * Construct the command line and launch the process. + */ + PRTUTF16 pwszCmdLine = supR3HardNtChildConstructCmdLine(NULL, iWhich); + + supR3HardenedWinEnableThreadCreation(); + PROCESS_INFORMATION ProcessInfoW32; + if (!CreateProcessW(g_wszSupLibHardenedExePath, + pwszCmdLine, + &ProcessSecAttrs, + &ThreadSecAttrs, + TRUE /*fInheritHandles*/, + dwCreationFlags, + NULL /*pwszzEnvironment*/, + NULL /*pwszCurDir*/, + &SiEx.StartupInfo, + &ProcessInfoW32)) + supR3HardenedFatalMsg("supR3HardenedWinReSpawn", kSupInitOp_Misc, VERR_INVALID_NAME, + "Error relaunching VirtualBox VM process: %u\n" + "Command line: '%ls'", + RtlGetLastWin32Error(), pwszCmdLine); + supR3HardenedWinDisableThreadCreation(); + + SUP_DPRINTF(("supR3HardenedWinDoReSpawn(%d): New child %x.%x [kernel32].\n", + iWhich, ProcessInfoW32.dwProcessId, ProcessInfoW32.dwThreadId)); + This.hProcess = ProcessInfoW32.hProcess; + This.hThread = ProcessInfoW32.hThread; + +#else + + /* + * Construct the process parameters. + */ + UNICODE_STRING W32ImageName; + W32ImageName.Buffer = g_wszSupLibHardenedExePath; /* Yes the windows name for the process parameters. */ + W32ImageName.Length = (USHORT)RTUtf16Len(g_wszSupLibHardenedExePath) * sizeof(WCHAR); + W32ImageName.MaximumLength = W32ImageName.Length + sizeof(WCHAR); + + UNICODE_STRING CmdLine; + supR3HardNtChildConstructCmdLine(&CmdLine, iWhich); + + PRTL_USER_PROCESS_PARAMETERS pProcParams = NULL; + SUPR3HARDENED_ASSERT_NT_SUCCESS(RtlCreateProcessParameters(&pProcParams, + &W32ImageName, + NULL /* DllPath - inherit from this process */, + NULL /* CurrentDirectory - inherit from this process */, + &CmdLine, + NULL /* Environment - inherit from this process */, + NULL /* WindowsTitle - none */, + NULL /* DesktopTitle - none. */, + NULL /* ShellInfo - none. */, + NULL /* RuntimeInfo - none (byte array for MSVCRT file info) */) + ); + + /** @todo this doesn't work. :-( */ + pProcParams->ConsoleHandle = pParentProcParams->ConsoleHandle; + pProcParams->ConsoleFlags = pParentProcParams->ConsoleFlags; + pProcParams->StandardInput = pParentProcParams->StandardInput; + pProcParams->StandardOutput = pParentProcParams->StandardOutput; + pProcParams->StandardError = pParentProcParams->StandardError; + + RTL_USER_PROCESS_INFORMATION ProcessInfoNt = { sizeof(ProcessInfoNt) }; + rcNt = RtlCreateUserProcess(&g_SupLibHardenedExeNtPath.UniStr, + OBJ_INHERIT | OBJ_CASE_INSENSITIVE /*Attributes*/, + pProcParams, + NULL, //&ProcessSecAttrs, + NULL, //&ThreadSecAttrs, + NtCurrentProcess() /* ParentProcess */, + FALSE /*fInheritHandles*/, + NULL /* DebugPort */, + NULL /* ExceptionPort */, + &ProcessInfoNt); + if (!NT_SUCCESS(rcNt)) + supR3HardenedFatalMsg("supR3HardenedWinReSpawn", kSupInitOp_Misc, VERR_INVALID_NAME, + "Error relaunching VirtualBox VM process: %#x\n" + "Command line: '%ls'", + rcNt, CmdLine.Buffer); + + SUP_DPRINTF(("supR3HardenedWinDoReSpawn(%d): New child %x.%x [ntdll].\n", + iWhich, ProcessInfo.ClientId.UniqueProcess, ProcessInfo.ClientId.UniqueThread)); + RtlDestroyProcessParameters(pProcParams); + + This.hProcess = ProcessInfoNt.ProcessHandle; + This.hThread = ProcessInfoNt.ThreadHandle; +#endif + +#ifndef VBOX_WITHOUT_DEBUGGER_CHECKS + /* + * Apply anti debugger notification trick to the thread. (Also done in + * supR3HardenedWinInit.) This may fail with STATUS_ACCESS_DENIED and + * maybe other errors. (Unfortunately, recent (SEP 12.1) of symantec's + * sysplant.sys driver will cause process deadlocks and a shutdown/reboot + * denial of service problem if we hide the initial thread, so we postpone + * this action if we've detected SEP.) + */ + if (!(g_fSupAdversaries & (SUPHARDNT_ADVERSARY_SYMANTEC_SYSPLANT | SUPHARDNT_ADVERSARY_SYMANTEC_N360))) + { + rcNt = NtSetInformationThread(This.hThread, ThreadHideFromDebugger, NULL, 0); + if (!NT_SUCCESS(rcNt)) + SUP_DPRINTF(("supR3HardenedWinReSpawn: NtSetInformationThread/ThreadHideFromDebugger failed: %#x (harmless)\n", rcNt)); + } +#endif + + /* + * Perform very early child initialization. + */ + supR3HardNtChildGatherData(&This); + supR3HardNtChildScrewUpPebForInitialImageEvents(&This); + supR3HardNtChildSetUpChildInit(&This); + + ULONG cSuspendCount = 0; + rcNt = NtResumeThread(This.hThread, &cSuspendCount); + if (!NT_SUCCESS(rcNt)) + supR3HardenedWinKillChild(&This, "supR3HardenedWinDoReSpawn", rcNt, "NtResumeThread failed: %#x", rcNt); + + /* + * Santizie the pre-NTDLL child when it's ready. + * + * AV software and other things injecting themselves into the embryonic + * and budding process to intercept API calls and what not. Unfortunately + * this is also the behavior of viruses, malware and other unfriendly + * software, so we won't stand for it. AV software can scan our image + * as they are loaded via kernel hooks, that's sufficient. No need for + * patching half of NTDLL or messing with the import table of the + * process executable. + */ + supR3HardNtChildWaitFor(&This, kSupR3WinChildReq_PurifyChildAndCloseHandles, 2000 /*ms*/, "PurifyChildAndCloseHandles"); + supR3HardNtChildPurify(&This); + supR3HardNtChildSanitizePeb(&This); + + /* + * Close the unrestricted access handles. Since we need to wait on the + * child process, we'll reopen the process with limited access before doing + * away with the process handle returned by CreateProcess. + */ + supR3HardNtChildCloseFullAccessHandles(&This); + + /* + * Signal the child that we've closed the unrestricted handles and it can + * safely try open the driver. + */ + rcNt = NtSetEvent(This.hEvtChild, NULL); + if (!NT_SUCCESS(rcNt)) + supR3HardenedWinKillChild(&This, "supR3HardenedWinReSpawn", VERR_INVALID_NAME, + "NtSetEvent failed on child process handle: %#x\n", rcNt); + + /* + * Ditch the loader cache so we don't sit on too much memory while waiting. + */ + supR3HardenedWinFlushLoaderCache(); + supR3HardenedWinCompactHeaps(); + + /* + * Enable thread creation at this point so Ctrl-C and Ctrl-Break can be processed. + */ + supR3HardenedWinEnableThreadCreation(); + + /* + * Wait for the child to get to suplibHardenedWindowsMain so we can close the handles. + */ + supR3HardNtChildWaitFor(&This, kSupR3WinChildReq_CloseEvents, 60000 /*ms*/, "CloseEvents"); + + NtClose(This.hEvtChild); + NtClose(This.hEvtParent); + This.hEvtChild = NULL; + This.hEvtParent = NULL; + + /* + * Wait for the process to terminate. + */ + supR3HardNtChildWaitFor(&This, kSupR3WinChildReq_End, RT_INDEFINITE_WAIT, "the end"); + SUPR3HARDENED_ASSERT(false); /* We're not supposed to get here! */ +} + + +/** + * Logs the content of the given object directory. + * + * @returns true if it exists, false if not. + * @param pszDir The path of the directory to log (ASCII). + */ +static void supR3HardenedWinLogObjDir(const char *pszDir) +{ + /* + * Open the driver object directory. + */ + RTUTF16 wszDir[128]; + int rc = RTUtf16CopyAscii(wszDir, RT_ELEMENTS(wszDir), pszDir); + if (RT_FAILURE(rc)) + { + SUP_DPRINTF(("supR3HardenedWinLogObjDir: RTUtf16CopyAscii -> %Rrc on '%s'\n", rc, pszDir)); + return; + } + + UNICODE_STRING NtDirName; + NtDirName.Buffer = (WCHAR *)wszDir; + NtDirName.Length = (USHORT)(RTUtf16Len(wszDir) * sizeof(WCHAR)); + NtDirName.MaximumLength = NtDirName.Length + sizeof(WCHAR); + + OBJECT_ATTRIBUTES ObjAttr; + InitializeObjectAttributes(&ObjAttr, &NtDirName, OBJ_CASE_INSENSITIVE, NULL /*hRootDir*/, NULL /*pSecDesc*/); + + HANDLE hDir; + NTSTATUS rcNt = NtOpenDirectoryObject(&hDir, DIRECTORY_QUERY | FILE_LIST_DIRECTORY, &ObjAttr); + SUP_DPRINTF(("supR3HardenedWinLogObjDir: %ls => %#x\n", wszDir, rcNt)); + if (!NT_SUCCESS(rcNt)) + return; + + /* + * Enumerate it, looking for the driver. + */ + ULONG uObjDirCtx = 0; + for (;;) + { + uint32_t abBuffer[_64K + _1K]; + ULONG cbActual; + rcNt = NtQueryDirectoryObject(hDir, + abBuffer, + sizeof(abBuffer) - 4, /* minus four for string terminator space. */ + FALSE /*ReturnSingleEntry */, + FALSE /*RestartScan*/, + &uObjDirCtx, + &cbActual); + if (!NT_SUCCESS(rcNt) || cbActual < sizeof(OBJECT_DIRECTORY_INFORMATION)) + { + SUP_DPRINTF(("supR3HardenedWinLogObjDir: NtQueryDirectoryObject => rcNt=%#x cbActual=%#x\n", rcNt, cbActual)); + break; + } + + POBJECT_DIRECTORY_INFORMATION pObjDir = (POBJECT_DIRECTORY_INFORMATION)abBuffer; + while (pObjDir->Name.Length != 0) + { + WCHAR wcSaved = pObjDir->Name.Buffer[pObjDir->Name.Length / sizeof(WCHAR)]; + SUP_DPRINTF((" %.*ls %.*ls\n", + pObjDir->TypeName.Length / sizeof(WCHAR), pObjDir->TypeName.Buffer, + pObjDir->Name.Length / sizeof(WCHAR), pObjDir->Name.Buffer)); + + /* Next directory entry. */ + pObjDir++; + } + } + + /* + * Clean up and return. + */ + NtClose(hDir); +} + + +/** + * Tries to open VBoxDrvErrorInfo and read extra error info from it. + * + * @returns pszErrorInfo. + * @param pszErrorInfo The destination buffer. Will always be + * terminated. + * @param cbErrorInfo The size of the destination buffer. + * @param pszPrefix What to prefix the error info with, if we got + * anything. + */ +DECLHIDDEN(char *) supR3HardenedWinReadErrorInfoDevice(char *pszErrorInfo, size_t cbErrorInfo, const char *pszPrefix) +{ + RT_BZERO(pszErrorInfo, cbErrorInfo); + + /* + * Try open the device. + */ + HANDLE hFile = RTNT_INVALID_HANDLE_VALUE; + IO_STATUS_BLOCK Ios = RTNT_IO_STATUS_BLOCK_INITIALIZER; + UNICODE_STRING NtName = RTNT_CONSTANT_UNISTR(SUPDRV_NT_DEVICE_NAME_ERROR_INFO); + OBJECT_ATTRIBUTES ObjAttr; + InitializeObjectAttributes(&ObjAttr, &NtName, OBJ_CASE_INSENSITIVE, NULL /*hRootDir*/, NULL /*pSecDesc*/); + NTSTATUS rcNt = NtCreateFile(&hFile, + GENERIC_READ, /* No SYNCHRONIZE. */ + &ObjAttr, + &Ios, + NULL /* Allocation Size*/, + FILE_ATTRIBUTE_NORMAL, + FILE_SHARE_READ | FILE_SHARE_WRITE, + FILE_OPEN, + FILE_NON_DIRECTORY_FILE, /* No FILE_SYNCHRONOUS_IO_NONALERT. */ + NULL /*EaBuffer*/, + 0 /*EaLength*/); + if (NT_SUCCESS(rcNt)) + rcNt = Ios.Status; + if (NT_SUCCESS(rcNt)) + { + /* + * Try read error info. + */ + size_t cchPrefix = strlen(pszPrefix); + if (cchPrefix + 3 < cbErrorInfo) + { + LARGE_INTEGER offRead; + offRead.QuadPart = 0; + rcNt = NtReadFile(hFile, NULL /*hEvent*/, NULL /*ApcRoutine*/, NULL /*ApcContext*/, &Ios, + &pszErrorInfo[cchPrefix], (ULONG)(cbErrorInfo - cchPrefix - 1), &offRead, NULL); + if (NT_SUCCESS(rcNt) && NT_SUCCESS(Ios.Status) && Ios.Information > 0) + { + memcpy(pszErrorInfo, pszPrefix, cchPrefix); + pszErrorInfo[RT_MIN(cbErrorInfo - 1, Ios.Information)] = '\0'; + SUP_DPRINTF(("supR3HardenedWinReadErrorInfoDevice: '%s'", &pszErrorInfo[cchPrefix])); + } + else + { + *pszErrorInfo = '\0'; + if (rcNt != STATUS_END_OF_FILE || Ios.Status != STATUS_END_OF_FILE) + SUP_DPRINTF(("supR3HardenedWinReadErrorInfoDevice: NtReadFile -> %#x / %#x / %p\n", + rcNt, Ios.Status, Ios.Information)); + } + } + else + RTStrCopy(pszErrorInfo, cbErrorInfo, "error info buffer too small"); + NtClose(hFile); + } + else + SUP_DPRINTF(("supR3HardenedWinReadErrorInfoDevice: NtCreateFile -> %#x\n", rcNt)); + + return pszErrorInfo; +} + + + +/** + * Checks if the driver exists. + * + * This checks whether the driver is present in the /Driver object directory. + * Drivers being initialized or terminated will have an object there + * before/after their devices nodes are created/deleted. + * + * @returns true if it exists, false if not. + * @param pszDriver The driver name. + */ +static bool supR3HardenedWinDriverExists(const char *pszDriver) +{ + /* + * Open the driver object directory. + */ + UNICODE_STRING NtDirName = RTNT_CONSTANT_UNISTR(L"\\Driver"); + + OBJECT_ATTRIBUTES ObjAttr; + InitializeObjectAttributes(&ObjAttr, &NtDirName, OBJ_CASE_INSENSITIVE, NULL /*hRootDir*/, NULL /*pSecDesc*/); + + HANDLE hDir; + NTSTATUS rcNt = NtOpenDirectoryObject(&hDir, DIRECTORY_QUERY | FILE_LIST_DIRECTORY, &ObjAttr); +#ifdef VBOX_STRICT + SUPR3HARDENED_ASSERT_NT_SUCCESS(rcNt); +#endif + if (!NT_SUCCESS(rcNt)) + return true; + + /* + * Enumerate it, looking for the driver. + */ + bool fFound = true; + ULONG uObjDirCtx = 0; + do + { + uint32_t abBuffer[_64K + _1K]; + ULONG cbActual; + rcNt = NtQueryDirectoryObject(hDir, + abBuffer, + sizeof(abBuffer) - 4, /* minus four for string terminator space. */ + FALSE /*ReturnSingleEntry */, + FALSE /*RestartScan*/, + &uObjDirCtx, + &cbActual); + if (!NT_SUCCESS(rcNt) || cbActual < sizeof(OBJECT_DIRECTORY_INFORMATION)) + break; + + POBJECT_DIRECTORY_INFORMATION pObjDir = (POBJECT_DIRECTORY_INFORMATION)abBuffer; + while (pObjDir->Name.Length != 0) + { + WCHAR wcSaved = pObjDir->Name.Buffer[pObjDir->Name.Length / sizeof(WCHAR)]; + pObjDir->Name.Buffer[pObjDir->Name.Length / sizeof(WCHAR)] = '\0'; + if ( pObjDir->Name.Length > 1 + && RTUtf16ICmpAscii(pObjDir->Name.Buffer, pszDriver) == 0) + { + fFound = true; + break; + } + pObjDir->Name.Buffer[pObjDir->Name.Length / sizeof(WCHAR)] = wcSaved; + + /* Next directory entry. */ + pObjDir++; + } + } while (!fFound); + + /* + * Clean up and return. + */ + NtClose(hDir); + + return fFound; +} + + +/** + * Open the stub device before the 2nd respawn. + */ +static void supR3HardenedWinOpenStubDevice(void) +{ + if (g_fSupStubOpened) + return; + + /* + * Retry if we think driver might still be initializing (STATUS_NO_SUCH_DEVICE + \Drivers\VBoxDrv). + */ + static const WCHAR s_wszName[] = SUPDRV_NT_DEVICE_NAME_STUB; + uint64_t const uMsTsStart = supR3HardenedWinGetMilliTS(); + NTSTATUS rcNt; + uint32_t iTry; + + for (iTry = 0;; iTry++) + { + HANDLE hFile = RTNT_INVALID_HANDLE_VALUE; + IO_STATUS_BLOCK Ios = RTNT_IO_STATUS_BLOCK_INITIALIZER; + + UNICODE_STRING NtName; + NtName.Buffer = (PWSTR)s_wszName; + NtName.Length = sizeof(s_wszName) - sizeof(WCHAR); + NtName.MaximumLength = sizeof(s_wszName); + + OBJECT_ATTRIBUTES ObjAttr; + InitializeObjectAttributes(&ObjAttr, &NtName, OBJ_CASE_INSENSITIVE, NULL /*hRootDir*/, NULL /*pSecDesc*/); + + rcNt = NtCreateFile(&hFile, + GENERIC_READ | GENERIC_WRITE, /* No SYNCHRONIZE. */ + &ObjAttr, + &Ios, + NULL /* Allocation Size*/, + FILE_ATTRIBUTE_NORMAL, + FILE_SHARE_READ | FILE_SHARE_WRITE, + FILE_OPEN, + FILE_NON_DIRECTORY_FILE, /* No FILE_SYNCHRONOUS_IO_NONALERT. */ + NULL /*EaBuffer*/, + 0 /*EaLength*/); + if (NT_SUCCESS(rcNt)) + rcNt = Ios.Status; + + /* The STATUS_NO_SUCH_DEVICE might be returned if the device is not + completely initialized. Delay a little bit and try again. */ + if (rcNt != STATUS_NO_SUCH_DEVICE) + break; + if (iTry > 0 && supR3HardenedWinGetMilliTS() - uMsTsStart > 5000) /* 5 sec, at least two tries */ + break; + if (!supR3HardenedWinDriverExists("VBoxDrv")) + { + /** @todo Consider starting the VBoxdrv.sys service. Requires 2nd process + * though, rather complicated actually as CreateProcess causes all + * kind of things to happen to this process which would make it hard to + * pass the process verification tests... :-/ */ + break; + } + + LARGE_INTEGER Time; + if (iTry < 8) + Time.QuadPart = -1000000 / 100; /* 1ms in 100ns units, relative time. */ + else + Time.QuadPart = -32000000 / 100; /* 32ms in 100ns units, relative time. */ + NtDelayExecution(TRUE, &Time); + } + + if (NT_SUCCESS(rcNt)) + g_fSupStubOpened = true; + else + { + /* + * Report trouble (fatal). For some errors codes we try gather some + * extra information that goes into VBoxStartup.log so that we stand a + * better chance resolving the issue. + */ + char szErrorInfo[16384]; + int rc = VERR_OPEN_FAILED; + if (SUP_NT_STATUS_IS_VBOX(rcNt)) /* See VBoxDrvNtErr2NtStatus. */ + { + rc = SUP_NT_STATUS_TO_VBOX(rcNt); + + /* + * \Windows\ApiPort open trouble. So far only + * STATUS_OBJECT_TYPE_MISMATCH has been observed. + */ + if (rc == VERR_SUPDRV_APIPORT_OPEN_ERROR) + { + SUP_DPRINTF(("Error opening VBoxDrvStub: VERR_SUPDRV_APIPORT_OPEN_ERROR\n")); + + uint32_t uSessionId = NtCurrentPeb()->SessionId; + SUP_DPRINTF((" SessionID=%#x\n", uSessionId)); + char szDir[64]; + if (uSessionId == 0) + RTStrCopy(szDir, sizeof(szDir), "\\Windows"); + else + { + RTStrPrintf(szDir, sizeof(szDir), "\\Sessions\\%u\\Windows", uSessionId); + supR3HardenedWinLogObjDir(szDir); + } + supR3HardenedWinLogObjDir("\\Windows"); + supR3HardenedWinLogObjDir("\\Sessions"); + + supR3HardenedFatalMsg("supR3HardenedWinReSpawn", kSupInitOp_Misc, rc, + "NtCreateFile(%ls) failed: VERR_SUPDRV_APIPORT_OPEN_ERROR\n" + "\n" + "Error getting %s\\ApiPort in the driver from vboxdrv.\n" + "\n" + "Could be due to security software is redirecting access to it, so please include full " + "details of such software in a bug report. VBoxStartup.log may contain details important " + "to resolving the issue.%s" + , s_wszName, szDir, + supR3HardenedWinReadErrorInfoDevice(szErrorInfo, sizeof(szErrorInfo), + "\n\nVBoxDrvStub error: ")); + } + + /* + * Generic VBox failure message. + */ + supR3HardenedFatalMsg("supR3HardenedWinReSpawn", kSupInitOp_Driver, rc, + "NtCreateFile(%ls) failed: %Rrc (rcNt=%#x)%s", s_wszName, rc, rcNt, + supR3HardenedWinReadErrorInfoDevice(szErrorInfo, sizeof(szErrorInfo), + "\nVBoxDrvStub error: ")); + } + else + { + const char *pszDefine; + switch (rcNt) + { + case STATUS_NO_SUCH_DEVICE: pszDefine = " STATUS_NO_SUCH_DEVICE"; break; + case STATUS_OBJECT_NAME_NOT_FOUND: pszDefine = " STATUS_OBJECT_NAME_NOT_FOUND"; break; + case STATUS_ACCESS_DENIED: pszDefine = " STATUS_ACCESS_DENIED"; break; + case STATUS_TRUST_FAILURE: pszDefine = " STATUS_TRUST_FAILURE"; break; + default: pszDefine = ""; break; + } + + /* + * Problems opening the device is generally due to driver load/ + * unload issues. Check whether the driver is loaded and make + * suggestions accordingly. + */ +/** @todo don't fail during early init, wait till later and try load the driver if missing or at least query the service manager for additional information. */ + if ( rcNt == STATUS_NO_SUCH_DEVICE + || rcNt == STATUS_OBJECT_NAME_NOT_FOUND) + { + SUP_DPRINTF(("Error opening VBoxDrvStub: %s\n", pszDefine)); + if (supR3HardenedWinDriverExists("VBoxDrv")) + supR3HardenedFatalMsg("supR3HardenedWinReSpawn", kSupInitOp_Driver, VERR_OPEN_FAILED, + "NtCreateFile(%ls) failed: %#x%s (%u retries)\n" + "\n" + "Driver is probably stuck stopping/starting. Try 'sc.exe query vboxdrv' to get more " + "information about its state. Rebooting may actually help.%s" + , s_wszName, rcNt, pszDefine, iTry, + supR3HardenedWinReadErrorInfoDevice(szErrorInfo, sizeof(szErrorInfo), + "\nVBoxDrvStub error: ")); + else + supR3HardenedFatalMsg("supR3HardenedWinReSpawn", kSupInitOp_Driver, VERR_OPEN_FAILED, + "NtCreateFile(%ls) failed: %#x%s (%u retries)\n" + "\n" + "Driver is does not appear to be loaded. Try 'sc.exe start vboxdrv', reinstall " + "VirtualBox or reboot.%s" + , s_wszName, rcNt, pszDefine, iTry, + supR3HardenedWinReadErrorInfoDevice(szErrorInfo, sizeof(szErrorInfo), + "\nVBoxDrvStub error: ")); + } + + /* Generic NT failure message. */ + supR3HardenedFatalMsg("supR3HardenedWinReSpawn", kSupInitOp_Driver, VERR_OPEN_FAILED, + "NtCreateFile(%ls) failed: %#x%s (%u retries)%s", + s_wszName, rcNt, pszDefine, iTry, + supR3HardenedWinReadErrorInfoDevice(szErrorInfo, sizeof(szErrorInfo), + "\nVBoxDrvStub error: ")); + } + } +} + + +/** + * Called by the main code if supR3HardenedWinIsReSpawnNeeded returns @c true. + * + * @returns Program exit code. + */ +DECLHIDDEN(int) supR3HardenedWinReSpawn(int iWhich) +{ + /* + * Before the 2nd respawn we set up a child protection deal with the + * support driver via /Devices/VBoxDrvStub. (We tried to do this + * during the early init, but in case we had trouble accessing vboxdrv we + * retry it here where we have kernel32.dll and others to pull in for + * better diagnostics.) + */ + if (iWhich == 2) + supR3HardenedWinOpenStubDevice(); + + /* + * Make sure we're alone in the stub process before creating the VM process + * and that there isn't any debuggers attached. + */ + if (iWhich == 2) + { + int rc = supHardNtVpDebugger(NtCurrentProcess(), RTErrInfoInitStatic(&g_ErrInfoStatic)); + if (RT_SUCCESS(rc)) + rc = supHardNtVpThread(NtCurrentProcess(), NtCurrentThread(), RTErrInfoInitStatic(&g_ErrInfoStatic)); + if (RT_FAILURE(rc)) + supR3HardenedFatalMsg("supR3HardenedWinReSpawn", kSupInitOp_Integrity, rc, "%s", g_ErrInfoStatic.szMsg); + } + + + /* + * Respawn the process with kernel protection for the new process. + */ + supR3HardenedWinDoReSpawn(iWhich); + SUPR3HARDENED_ASSERT(false); /* We're not supposed to get here! */ + return RTEXITCODE_FAILURE; +} + + +/** + * Checks if re-spawning is required, replacing the respawn argument if not. + * + * @returns true if required, false if not. In the latter case, the first + * argument in the vector is replaced. + * @param iWhich Which respawn we're to check for, 1 being the + * first one, and 2 the second and final. + * @param cArgs The number of arguments. + * @param papszArgs Pointer to the argument vector. + */ +DECLHIDDEN(bool) supR3HardenedWinIsReSpawnNeeded(int iWhich, int cArgs, char **papszArgs) +{ + SUPR3HARDENED_ASSERT(g_cSuplibHardenedWindowsMainCalls == 1); + SUPR3HARDENED_ASSERT(iWhich == 1 || iWhich == 2); + + if (cArgs < 1) + return true; + + if (suplibHardenedStrCmp(papszArgs[0], SUPR3_RESPAWN_1_ARG0) == 0) + { + if (iWhich > 1) + return true; + } + else if (suplibHardenedStrCmp(papszArgs[0], SUPR3_RESPAWN_2_ARG0) == 0) + { + if (iWhich < 2) + return false; + } + else + return true; + + /* Replace the argument. */ + papszArgs[0] = g_szSupLibHardenedExePath; + return false; +} + + +/** + * Initializes the windows verficiation bits and other things we're better off + * doing after main() has passed on it's data. + * + * @param fFlags The main flags. + * @param fAvastKludge Whether to apply the avast kludge. + */ +DECLHIDDEN(void) supR3HardenedWinInit(uint32_t fFlags, bool fAvastKludge) +{ + NTSTATUS rcNt; + +#ifndef VBOX_WITHOUT_DEBUGGER_CHECKS + /* + * Install a anti debugging hack before we continue. This prevents most + * notifications from ending up in the debugger. (Also applied to the + * child process when respawning.) + */ + rcNt = NtSetInformationThread(NtCurrentThread(), ThreadHideFromDebugger, NULL, 0); + if (!NT_SUCCESS(rcNt)) + supR3HardenedFatalMsg("supR3HardenedWinInit", kSupInitOp_Misc, VERR_GENERAL_FAILURE, + "NtSetInformationThread/ThreadHideFromDebugger failed: %#x\n", rcNt); +#endif + + /* + * Init the verifier. + */ + RTErrInfoInitStatic(&g_ErrInfoStatic); + int rc = supHardenedWinInitImageVerifier(&g_ErrInfoStatic.Core); + if (RT_FAILURE(rc)) + supR3HardenedFatalMsg("supR3HardenedWinInit", kSupInitOp_Misc, rc, + "supHardenedWinInitImageVerifier failed: %s", g_ErrInfoStatic.szMsg); + + /* + * Get the windows system directory from the KnownDlls dir. + */ + HANDLE hSymlink = INVALID_HANDLE_VALUE; + UNICODE_STRING UniStr = RTNT_CONSTANT_UNISTR(L"\\KnownDlls\\KnownDllPath"); + OBJECT_ATTRIBUTES ObjAttrs; + InitializeObjectAttributes(&ObjAttrs, &UniStr, OBJ_CASE_INSENSITIVE, NULL /*hRootDir*/, NULL /*pSecDesc*/); + rcNt = NtOpenSymbolicLinkObject(&hSymlink, SYMBOLIC_LINK_QUERY, &ObjAttrs); + if (!NT_SUCCESS(rcNt)) + supR3HardenedFatalMsg("supR3HardenedWinInit", kSupInitOp_Misc, rcNt, "Error opening '%ls': %#x", UniStr.Buffer, rcNt); + + g_System32WinPath.UniStr.Buffer = g_System32WinPath.awcBuffer; + g_System32WinPath.UniStr.Length = 0; + g_System32WinPath.UniStr.MaximumLength = sizeof(g_System32WinPath.awcBuffer) - sizeof(RTUTF16); + rcNt = NtQuerySymbolicLinkObject(hSymlink, &g_System32WinPath.UniStr, NULL); + if (!NT_SUCCESS(rcNt)) + supR3HardenedFatalMsg("supR3HardenedWinInit", kSupInitOp_Misc, rcNt, "Error querying '%ls': %#x", UniStr.Buffer, rcNt); + g_System32WinPath.UniStr.Buffer[g_System32WinPath.UniStr.Length / sizeof(RTUTF16)] = '\0'; + + SUP_DPRINTF(("KnownDllPath: %ls\n", g_System32WinPath.UniStr.Buffer)); + NtClose(hSymlink); + + if (!(fFlags & SUPSECMAIN_FLAGS_DONT_OPEN_DEV)) + { + if (fAvastKludge) + { + /* + * Do a self purification to cure avast's weird NtOpenFile write-thru + * change in GetBinaryTypeW change in kernel32. Unfortunately, avast + * uses a system thread to perform the process modifications, which + * means it's hard to make sure it had the chance to make them... + * + * We have to resort to kludge doing yield and sleep fudging for a + * number of milliseconds and schedulings before we can hope that avast + * and similar products have done what they need to do. If we do any + * fixes, we wait for a while again and redo it until we're clean. + * + * This is unfortunately kind of fragile. + */ + uint32_t cMsFudge = g_fSupAdversaries ? 512 : 128; + uint32_t cFixes; + for (uint32_t iLoop = 0; iLoop < 16; iLoop++) + { + uint32_t cSleeps = 0; + uint64_t uMsTsStart = supR3HardenedWinGetMilliTS(); + do + { + NtYieldExecution(); + LARGE_INTEGER Time; + Time.QuadPart = -8000000 / 100; /* 8ms in 100ns units, relative time. */ + NtDelayExecution(FALSE, &Time); + cSleeps++; + } while ( supR3HardenedWinGetMilliTS() - uMsTsStart <= cMsFudge + || cSleeps < 8); + SUP_DPRINTF(("supR3HardenedWinInit: Startup delay kludge #2/%u: %u ms, %u sleeps\n", + iLoop, supR3HardenedWinGetMilliTS() - uMsTsStart, cSleeps)); + + cFixes = 0; + rc = supHardenedWinVerifyProcess(NtCurrentProcess(), NtCurrentThread(), SUPHARDNTVPKIND_SELF_PURIFICATION, + 0 /*fFlags*/, &cFixes, NULL /*pErrInfo*/); + if (RT_FAILURE(rc) || cFixes == 0) + break; + + if (!g_fSupAdversaries) + g_fSupAdversaries |= SUPHARDNT_ADVERSARY_UNKNOWN; + cMsFudge = 512; + + /* Log the KiOpPrefetchPatchCount value if available, hoping it might sched some light on spider38's case. */ + ULONG cPatchCount = 0; + rcNt = NtQuerySystemInformation(SystemInformation_KiOpPrefetchPatchCount, + &cPatchCount, sizeof(cPatchCount), NULL); + if (NT_SUCCESS(rcNt)) + SUP_DPRINTF(("supR3HardenedWinInit: cFixes=%u g_fSupAdversaries=%#x cPatchCount=%#u\n", + cFixes, g_fSupAdversaries, cPatchCount)); + else + SUP_DPRINTF(("supR3HardenedWinInit: cFixes=%u g_fSupAdversaries=%#x\n", cFixes, g_fSupAdversaries)); + } + } + + /* + * Install the hooks. + */ + supR3HardenedWinInstallHooks(); + } + +#ifndef VBOX_WITH_VISTA_NO_SP + /* + * Complain about Vista w/o service pack if we're launching a VM. + */ + if ( !(fFlags & SUPSECMAIN_FLAGS_DONT_OPEN_DEV) + && g_uNtVerCombined >= SUP_NT_VER_VISTA + && g_uNtVerCombined < SUP_MAKE_NT_VER_COMBINED(6, 0, 6001, 0, 0)) + supR3HardenedFatalMsg("supR3HardenedWinInit", kSupInitOp_Misc, VERR_NOT_SUPPORTED, + "Window Vista without any service pack installed is not supported. Please install the latest service pack."); +#endif +} + + +/** + * Converts the Windows command line string (UTF-16) to an array of UTF-8 + * arguments suitable for passing to main(). + * + * @returns Pointer to the argument array. + * @param pawcCmdLine The UTF-16 windows command line to parse. + * @param cwcCmdLine The length of the command line. + * @param pcArgs Where to return the number of arguments. + */ +static char **suplibCommandLineToArgvWStub(PCRTUTF16 pawcCmdLine, size_t cwcCmdLine, int *pcArgs) +{ + /* + * Convert the command line string to UTF-8. + */ + char *pszCmdLine = NULL; + SUPR3HARDENED_ASSERT(RT_SUCCESS(RTUtf16ToUtf8Ex(pawcCmdLine, cwcCmdLine, &pszCmdLine, 0, NULL))); + + /* + * Parse the command line, carving argument strings out of it. + */ + int cArgs = 0; + int cArgsAllocated = 4; + char **papszArgs = (char **)RTMemAllocZ(sizeof(char *) * cArgsAllocated); + char *pszSrc = pszCmdLine; + for (;;) + { + /* skip leading blanks. */ + char ch = *pszSrc; + while (suplibCommandLineIsArgSeparator(ch)) + ch = *++pszSrc; + if (!ch) + break; + + /* Add argument to the vector. */ + if (cArgs + 2 >= cArgsAllocated) + { + cArgsAllocated *= 2; + papszArgs = (char **)RTMemRealloc(papszArgs, sizeof(char *) * cArgsAllocated); + } + papszArgs[cArgs++] = pszSrc; + papszArgs[cArgs] = NULL; + + /* Unquote and unescape the string. */ + char *pszDst = pszSrc++; + bool fQuoted = false; + do + { + if (ch == '"') + fQuoted = !fQuoted; + else if (ch != '\\' || (*pszSrc != '\\' && *pszSrc != '"')) + *pszDst++ = ch; + else + { + unsigned cSlashes = 0; + while ((ch = *pszSrc++) == '\\') + cSlashes++; + if (ch == '"') + { + while (cSlashes >= 2) + { + cSlashes -= 2; + *pszDst++ = '\\'; + } + if (cSlashes) + *pszDst++ = '"'; + else + fQuoted = !fQuoted; + } + else + { + pszSrc--; + while (cSlashes-- > 0) + *pszDst++ = '\\'; + } + } + + ch = *pszSrc++; + } while (ch != '\0' && (fQuoted || !suplibCommandLineIsArgSeparator(ch))); + + /* Terminate the argument. */ + *pszDst = '\0'; + if (!ch) + break; + } + + *pcArgs = cArgs; + return papszArgs; +} + + +/** + * Logs information about a file from a protection product or from Windows. + * + * The purpose here is to better see which version of the product is installed + * and not needing to depend on the user supplying the correct information. + * + * @param pwszFile The NT path to the file. + * @param fAdversarial Set if from a protection product, false if + * system file. + */ +static void supR3HardenedLogFileInfo(PCRTUTF16 pwszFile, bool fAdversarial) +{ + /* + * Open the file. + */ + HANDLE hFile = RTNT_INVALID_HANDLE_VALUE; + IO_STATUS_BLOCK Ios = RTNT_IO_STATUS_BLOCK_INITIALIZER; + UNICODE_STRING UniStrName; + UniStrName.Buffer = (WCHAR *)pwszFile; + UniStrName.Length = (USHORT)(RTUtf16Len(pwszFile) * sizeof(WCHAR)); + UniStrName.MaximumLength = UniStrName.Length + sizeof(WCHAR); + OBJECT_ATTRIBUTES ObjAttr; + InitializeObjectAttributes(&ObjAttr, &UniStrName, OBJ_CASE_INSENSITIVE, NULL /*hRootDir*/, NULL /*pSecDesc*/); + NTSTATUS rcNt = NtCreateFile(&hFile, + GENERIC_READ | SYNCHRONIZE, + &ObjAttr, + &Ios, + NULL /* Allocation Size*/, + FILE_ATTRIBUTE_NORMAL, + FILE_SHARE_READ, + FILE_OPEN, + FILE_NON_DIRECTORY_FILE | FILE_SYNCHRONOUS_IO_NONALERT, + NULL /*EaBuffer*/, + 0 /*EaLength*/); + if (NT_SUCCESS(rcNt)) + rcNt = Ios.Status; + if (NT_SUCCESS(rcNt)) + { + SUP_DPRINTF(("%ls:\n", pwszFile)); + union + { + uint64_t u64AlignmentInsurance; + FILE_BASIC_INFORMATION BasicInfo; + FILE_STANDARD_INFORMATION StdInfo; + uint8_t abBuf[32768]; + RTUTF16 awcBuf[16384]; + IMAGE_DOS_HEADER MzHdr; + } u; + RTTIMESPEC TimeSpec; + char szTmp[64]; + + /* + * Print basic file information available via NtQueryInformationFile. + */ + IO_STATUS_BLOCK Ios = RTNT_IO_STATUS_BLOCK_INITIALIZER; + rcNt = NtQueryInformationFile(hFile, &Ios, &u.BasicInfo, sizeof(u.BasicInfo), FileBasicInformation); + if (NT_SUCCESS(rcNt) && NT_SUCCESS(Ios.Status)) + { + SUP_DPRINTF((" CreationTime: %s\n", RTTimeSpecToString(RTTimeSpecSetNtTime(&TimeSpec, u.BasicInfo.CreationTime.QuadPart), szTmp, sizeof(szTmp)))); + /*SUP_DPRINTF((" LastAccessTime: %s\n", RTTimeSpecToString(RTTimeSpecSetNtTime(&TimeSpec, u.BasicInfo.LastAccessTime.QuadPart), szTmp, sizeof(szTmp))));*/ + SUP_DPRINTF((" LastWriteTime: %s\n", RTTimeSpecToString(RTTimeSpecSetNtTime(&TimeSpec, u.BasicInfo.LastWriteTime.QuadPart), szTmp, sizeof(szTmp)))); + SUP_DPRINTF((" ChangeTime: %s\n", RTTimeSpecToString(RTTimeSpecSetNtTime(&TimeSpec, u.BasicInfo.ChangeTime.QuadPart), szTmp, sizeof(szTmp)))); + SUP_DPRINTF((" FileAttributes: %#x\n", u.BasicInfo.FileAttributes)); + } + else + SUP_DPRINTF((" FileBasicInformation -> %#x %#x\n", rcNt, Ios.Status)); + + rcNt = NtQueryInformationFile(hFile, &Ios, &u.StdInfo, sizeof(u.StdInfo), FileStandardInformation); + if (NT_SUCCESS(rcNt) && NT_SUCCESS(Ios.Status)) + SUP_DPRINTF((" Size: %#llx\n", u.StdInfo.EndOfFile.QuadPart)); + else + SUP_DPRINTF((" FileStandardInformation -> %#x %#x\n", rcNt, Ios.Status)); + + /* + * Read the image header and extract the timestamp and other useful info. + */ + RT_ZERO(u); + LARGE_INTEGER offRead; + offRead.QuadPart = 0; + rcNt = NtReadFile(hFile, NULL /*hEvent*/, NULL /*ApcRoutine*/, NULL /*ApcContext*/, &Ios, + &u, (ULONG)sizeof(u), &offRead, NULL); + if (NT_SUCCESS(rcNt) && NT_SUCCESS(Ios.Status)) + { + uint32_t offNtHdrs = 0; + if (u.MzHdr.e_magic == IMAGE_DOS_SIGNATURE) + offNtHdrs = u.MzHdr.e_lfanew; + if (offNtHdrs < sizeof(u) - sizeof(IMAGE_NT_HEADERS)) + { + PIMAGE_NT_HEADERS64 pNtHdrs64 = (PIMAGE_NT_HEADERS64)&u.abBuf[offNtHdrs]; + PIMAGE_NT_HEADERS32 pNtHdrs32 = (PIMAGE_NT_HEADERS32)&u.abBuf[offNtHdrs]; + if (pNtHdrs64->Signature == IMAGE_NT_SIGNATURE) + { + SUP_DPRINTF((" NT Headers: %#x\n", offNtHdrs)); + SUP_DPRINTF((" Timestamp: %#x\n", pNtHdrs64->FileHeader.TimeDateStamp)); + SUP_DPRINTF((" Machine: %#x%s\n", pNtHdrs64->FileHeader.Machine, + pNtHdrs64->FileHeader.Machine == IMAGE_FILE_MACHINE_I386 ? " - i386" + : pNtHdrs64->FileHeader.Machine == IMAGE_FILE_MACHINE_AMD64 ? " - amd64" : "")); + SUP_DPRINTF((" Timestamp: %#x\n", pNtHdrs64->FileHeader.TimeDateStamp)); + SUP_DPRINTF((" Image Version: %u.%u\n", + pNtHdrs64->OptionalHeader.MajorImageVersion, pNtHdrs64->OptionalHeader.MinorImageVersion)); + SUP_DPRINTF((" SizeOfImage: %#x (%u)\n", pNtHdrs64->OptionalHeader.SizeOfImage, pNtHdrs64->OptionalHeader.SizeOfImage)); + + /* + * Very crude way to extract info from the file version resource. + */ + PIMAGE_SECTION_HEADER paSectHdrs = (PIMAGE_SECTION_HEADER)( (uintptr_t)&pNtHdrs64->OptionalHeader + + pNtHdrs64->FileHeader.SizeOfOptionalHeader); + IMAGE_DATA_DIRECTORY RsrcDir = { 0, 0 }; + if ( pNtHdrs64->FileHeader.SizeOfOptionalHeader == sizeof(IMAGE_OPTIONAL_HEADER64) + && pNtHdrs64->OptionalHeader.NumberOfRvaAndSizes > IMAGE_DIRECTORY_ENTRY_RESOURCE) + RsrcDir = pNtHdrs64->OptionalHeader.DataDirectory[IMAGE_DIRECTORY_ENTRY_RESOURCE]; + else if ( pNtHdrs64->FileHeader.SizeOfOptionalHeader == sizeof(IMAGE_OPTIONAL_HEADER32) + && pNtHdrs32->OptionalHeader.NumberOfRvaAndSizes > IMAGE_DIRECTORY_ENTRY_RESOURCE) + RsrcDir = pNtHdrs32->OptionalHeader.DataDirectory[IMAGE_DIRECTORY_ENTRY_RESOURCE]; + SUP_DPRINTF((" Resource Dir: %#x LB %#x\n", RsrcDir.VirtualAddress, RsrcDir.Size)); + if ( RsrcDir.VirtualAddress > offNtHdrs + && RsrcDir.Size > 0 + && (uintptr_t)&u + sizeof(u) - (uintptr_t)paSectHdrs + >= pNtHdrs64->FileHeader.NumberOfSections * sizeof(IMAGE_SECTION_HEADER) ) + { + offRead.QuadPart = 0; + for (uint32_t i = 0; i < pNtHdrs64->FileHeader.NumberOfSections; i++) + if ( paSectHdrs[i].VirtualAddress - RsrcDir.VirtualAddress < paSectHdrs[i].SizeOfRawData + && paSectHdrs[i].PointerToRawData > offNtHdrs) + { + offRead.QuadPart = paSectHdrs[i].PointerToRawData + + (paSectHdrs[i].VirtualAddress - RsrcDir.VirtualAddress); + break; + } + if (offRead.QuadPart > 0) + { + RT_ZERO(u); + rcNt = NtReadFile(hFile, NULL /*hEvent*/, NULL /*ApcRoutine*/, NULL /*ApcContext*/, &Ios, + &u, (ULONG)sizeof(u), &offRead, NULL); + if (NT_SUCCESS(rcNt) && NT_SUCCESS(Ios.Status)) + { + static const struct { PCRTUTF16 pwsz; size_t cb; } s_abFields[] = + { +#define MY_WIDE_STR_TUPLE(a_sz) { L ## a_sz, sizeof(L ## a_sz) - sizeof(RTUTF16) } + MY_WIDE_STR_TUPLE("ProductName"), + MY_WIDE_STR_TUPLE("ProductVersion"), + MY_WIDE_STR_TUPLE("FileVersion"), + MY_WIDE_STR_TUPLE("SpecialBuild"), + MY_WIDE_STR_TUPLE("PrivateBuild"), + MY_WIDE_STR_TUPLE("FileDescription"), +#undef MY_WIDE_STR_TUPLE + }; + for (uint32_t i = 0; i < RT_ELEMENTS(s_abFields); i++) + { + size_t cwcLeft = (sizeof(u) - s_abFields[i].cb - 10) / sizeof(RTUTF16); + PCRTUTF16 pwc = u.awcBuf; + RTUTF16 const wcFirst = *s_abFields[i].pwsz; + while (cwcLeft-- > 0) + { + if ( pwc[0] == 1 /* wType == text */ + && pwc[1] == wcFirst) + { + if (memcmp(pwc + 1, s_abFields[i].pwsz, s_abFields[i].cb + sizeof(RTUTF16)) == 0) + { + size_t cwcField = s_abFields[i].cb / sizeof(RTUTF16); + pwc += cwcField + 2; + cwcLeft -= cwcField + 2; + for (uint32_t iPadding = 0; iPadding < 3; iPadding++, pwc++, cwcLeft--) + if (*pwc) + break; + int rc = RTUtf16ValidateEncodingEx(pwc, cwcLeft, + RTSTR_VALIDATE_ENCODING_ZERO_TERMINATED); + if (RT_SUCCESS(rc)) + SUP_DPRINTF((" %ls:%*s %ls", + s_abFields[i].pwsz, cwcField < 15 ? 15 - cwcField : 0, "", pwc)); + else + SUP_DPRINTF((" %ls:%*s rc=%Rrc", + s_abFields[i].pwsz, cwcField < 15 ? 15 - cwcField : 0, "", rc)); + + break; + } + } + pwc++; + } + } + } + else + SUP_DPRINTF((" NtReadFile @%#llx -> %#x %#x\n", offRead.QuadPart, rcNt, Ios.Status)); + } + else + SUP_DPRINTF((" Resource section not found.\n")); + } + } + else + SUP_DPRINTF((" Nt Headers @%#x: Invalid signature\n", offNtHdrs)); + } + else + SUP_DPRINTF((" Nt Headers @%#x: out side buffer\n", offNtHdrs)); + } + else + SUP_DPRINTF((" NtReadFile @0 -> %#x %#x\n", rcNt, Ios.Status)); + NtClose(hFile); + } +} + + +/** + * Scans the Driver directory for drivers which may invade our processes. + * + * @returns Mask of SUPHARDNT_ADVERSARY_XXX flags. + * + * @remarks The enumeration of \Driver normally requires administrator + * privileges. So, the detection we're doing here isn't always gonna + * work just based on that. + * + * @todo Find drivers in \FileSystems as well, then we could detect VrNsdDrv + * from ViRobot APT Shield 2.0. + */ +static uint32_t supR3HardenedWinFindAdversaries(void) +{ + static const struct + { + uint32_t fAdversary; + const char *pszDriver; + } s_aDrivers[] = + { + { SUPHARDNT_ADVERSARY_SYMANTEC_SYSPLANT, "SysPlant" }, + + { SUPHARDNT_ADVERSARY_SYMANTEC_N360, "SRTSPX" }, + { SUPHARDNT_ADVERSARY_SYMANTEC_N360, "SymDS" }, + { SUPHARDNT_ADVERSARY_SYMANTEC_N360, "SymEvent" }, + { SUPHARDNT_ADVERSARY_SYMANTEC_N360, "SymIRON" }, + { SUPHARDNT_ADVERSARY_SYMANTEC_N360, "SymNetS" }, + + { SUPHARDNT_ADVERSARY_AVAST, "aswHwid" }, + { SUPHARDNT_ADVERSARY_AVAST, "aswMonFlt" }, + { SUPHARDNT_ADVERSARY_AVAST, "aswRdr2" }, + { SUPHARDNT_ADVERSARY_AVAST, "aswRvrt" }, + { SUPHARDNT_ADVERSARY_AVAST, "aswSnx" }, + { SUPHARDNT_ADVERSARY_AVAST, "aswsp" }, + { SUPHARDNT_ADVERSARY_AVAST, "aswStm" }, + { SUPHARDNT_ADVERSARY_AVAST, "aswVmm" }, + + { SUPHARDNT_ADVERSARY_TRENDMICRO, "tmcomm" }, + { SUPHARDNT_ADVERSARY_TRENDMICRO, "tmactmon" }, + { SUPHARDNT_ADVERSARY_TRENDMICRO, "tmevtmgr" }, + { SUPHARDNT_ADVERSARY_TRENDMICRO, "tmtdi" }, + { SUPHARDNT_ADVERSARY_TRENDMICRO, "tmebc64" }, /* Titanium internet security, not officescan. */ + { SUPHARDNT_ADVERSARY_TRENDMICRO, "tmeevw" }, /* Titanium internet security, not officescan. */ + { SUPHARDNT_ADVERSARY_TRENDMICRO, "tmciesc" }, /* Titanium internet security, not officescan. */ + + { SUPHARDNT_ADVERSARY_MCAFEE, "cfwids" }, + { SUPHARDNT_ADVERSARY_MCAFEE, "McPvDrv" }, + { SUPHARDNT_ADVERSARY_MCAFEE, "mfeapfk" }, + { SUPHARDNT_ADVERSARY_MCAFEE, "mfeavfk" }, + { SUPHARDNT_ADVERSARY_MCAFEE, "mfefirek" }, + { SUPHARDNT_ADVERSARY_MCAFEE, "mfehidk" }, + { SUPHARDNT_ADVERSARY_MCAFEE, "mfencbdc" }, + { SUPHARDNT_ADVERSARY_MCAFEE, "mfewfpk" }, + + { SUPHARDNT_ADVERSARY_KASPERSKY, "kl1" }, + { SUPHARDNT_ADVERSARY_KASPERSKY, "klflt" }, + { SUPHARDNT_ADVERSARY_KASPERSKY, "klif" }, + { SUPHARDNT_ADVERSARY_KASPERSKY, "KLIM6" }, + { SUPHARDNT_ADVERSARY_KASPERSKY, "klkbdflt" }, + { SUPHARDNT_ADVERSARY_KASPERSKY, "klmouflt" }, + { SUPHARDNT_ADVERSARY_KASPERSKY, "kltdi" }, + { SUPHARDNT_ADVERSARY_KASPERSKY, "kneps" }, + + { SUPHARDNT_ADVERSARY_MBAM, "MBAMWebAccessControl" }, + { SUPHARDNT_ADVERSARY_MBAM, "mbam" }, + { SUPHARDNT_ADVERSARY_MBAM, "mbamchameleon" }, + { SUPHARDNT_ADVERSARY_MBAM, "mwav" }, + { SUPHARDNT_ADVERSARY_MBAM, "mbamswissarmy" }, + + { SUPHARDNT_ADVERSARY_AVG, "avgfwfd" }, + { SUPHARDNT_ADVERSARY_AVG, "avgtdia" }, + + { SUPHARDNT_ADVERSARY_PANDA, "PSINAflt" }, + { SUPHARDNT_ADVERSARY_PANDA, "PSINFile" }, + { SUPHARDNT_ADVERSARY_PANDA, "PSINKNC" }, + { SUPHARDNT_ADVERSARY_PANDA, "PSINProc" }, + { SUPHARDNT_ADVERSARY_PANDA, "PSINProt" }, + { SUPHARDNT_ADVERSARY_PANDA, "PSINReg" }, + { SUPHARDNT_ADVERSARY_PANDA, "PSKMAD" }, + { SUPHARDNT_ADVERSARY_PANDA, "NNSAlpc" }, + { SUPHARDNT_ADVERSARY_PANDA, "NNSHttp" }, + { SUPHARDNT_ADVERSARY_PANDA, "NNShttps" }, + { SUPHARDNT_ADVERSARY_PANDA, "NNSIds" }, + { SUPHARDNT_ADVERSARY_PANDA, "NNSNAHSL" }, + { SUPHARDNT_ADVERSARY_PANDA, "NNSpicc" }, + { SUPHARDNT_ADVERSARY_PANDA, "NNSPihsw" }, + { SUPHARDNT_ADVERSARY_PANDA, "NNSPop3" }, + { SUPHARDNT_ADVERSARY_PANDA, "NNSProt" }, + { SUPHARDNT_ADVERSARY_PANDA, "NNSPrv" }, + { SUPHARDNT_ADVERSARY_PANDA, "NNSSmtp" }, + { SUPHARDNT_ADVERSARY_PANDA, "NNSStrm" }, + { SUPHARDNT_ADVERSARY_PANDA, "NNStlsc" }, + + { SUPHARDNT_ADVERSARY_MSE, "NisDrv" }, + + /*{ SUPHARDNT_ADVERSARY_COMODO, "cmdguard" }, file system */ + { SUPHARDNT_ADVERSARY_COMODO, "inspect" }, + { SUPHARDNT_ADVERSARY_COMODO, "cmdHlp" }, + + { SUPHARDNT_ADVERSARY_DIGITAL_GUARDIAN, "dgmaster" }, /* Not verified. */ + }; + + static const struct + { + uint32_t fAdversary; + PCRTUTF16 pwszFile; + } s_aFiles[] = + { + { SUPHARDNT_ADVERSARY_SYMANTEC_SYSPLANT, L"\\SystemRoot\\System32\\drivers\\SysPlant.sys" }, + { SUPHARDNT_ADVERSARY_SYMANTEC_SYSPLANT, L"\\SystemRoot\\System32\\sysfer.dll" }, + { SUPHARDNT_ADVERSARY_SYMANTEC_SYSPLANT, L"\\SystemRoot\\System32\\sysferThunk.dll" }, + + { SUPHARDNT_ADVERSARY_SYMANTEC_N360, L"\\SystemRoot\\System32\\drivers\\N360x64\\1505000.013\\ccsetx64.sys" }, + { SUPHARDNT_ADVERSARY_SYMANTEC_N360, L"\\SystemRoot\\System32\\drivers\\N360x64\\1505000.013\\ironx64.sys" }, + { SUPHARDNT_ADVERSARY_SYMANTEC_N360, L"\\SystemRoot\\System32\\drivers\\N360x64\\1505000.013\\srtsp64.sys" }, + { SUPHARDNT_ADVERSARY_SYMANTEC_N360, L"\\SystemRoot\\System32\\drivers\\N360x64\\1505000.013\\srtspx64.sys" }, + { SUPHARDNT_ADVERSARY_SYMANTEC_N360, L"\\SystemRoot\\System32\\drivers\\N360x64\\1505000.013\\symds64.sys" }, + { SUPHARDNT_ADVERSARY_SYMANTEC_N360, L"\\SystemRoot\\System32\\drivers\\N360x64\\1505000.013\\symefa64.sys" }, + { SUPHARDNT_ADVERSARY_SYMANTEC_N360, L"\\SystemRoot\\System32\\drivers\\N360x64\\1505000.013\\symelam.sys" }, + { SUPHARDNT_ADVERSARY_SYMANTEC_N360, L"\\SystemRoot\\System32\\drivers\\N360x64\\1505000.013\\symnets.sys" }, + { SUPHARDNT_ADVERSARY_SYMANTEC_N360, L"\\SystemRoot\\System32\\drivers\\symevent64x86.sys" }, + + { SUPHARDNT_ADVERSARY_AVAST, L"\\SystemRoot\\System32\\drivers\\aswHwid.sys" }, + { SUPHARDNT_ADVERSARY_AVAST, L"\\SystemRoot\\System32\\drivers\\aswMonFlt.sys" }, + { SUPHARDNT_ADVERSARY_AVAST, L"\\SystemRoot\\System32\\drivers\\aswRdr2.sys" }, + { SUPHARDNT_ADVERSARY_AVAST, L"\\SystemRoot\\System32\\drivers\\aswRvrt.sys" }, + { SUPHARDNT_ADVERSARY_AVAST, L"\\SystemRoot\\System32\\drivers\\aswSnx.sys" }, + { SUPHARDNT_ADVERSARY_AVAST, L"\\SystemRoot\\System32\\drivers\\aswsp.sys" }, + { SUPHARDNT_ADVERSARY_AVAST, L"\\SystemRoot\\System32\\drivers\\aswStm.sys" }, + { SUPHARDNT_ADVERSARY_AVAST, L"\\SystemRoot\\System32\\drivers\\aswVmm.sys" }, + + { SUPHARDNT_ADVERSARY_TRENDMICRO, L"\\SystemRoot\\System32\\drivers\\tmcomm.sys" }, + { SUPHARDNT_ADVERSARY_TRENDMICRO, L"\\SystemRoot\\System32\\drivers\\tmactmon.sys" }, + { SUPHARDNT_ADVERSARY_TRENDMICRO, L"\\SystemRoot\\System32\\drivers\\tmevtmgr.sys" }, + { SUPHARDNT_ADVERSARY_TRENDMICRO, L"\\SystemRoot\\System32\\drivers\\tmtdi.sys" }, + { SUPHARDNT_ADVERSARY_TRENDMICRO, L"\\SystemRoot\\System32\\drivers\\tmebc64.sys" }, + { SUPHARDNT_ADVERSARY_TRENDMICRO, L"\\SystemRoot\\System32\\drivers\\tmeevw.sys" }, + { SUPHARDNT_ADVERSARY_TRENDMICRO, L"\\SystemRoot\\System32\\drivers\\tmciesc.sys" }, + { SUPHARDNT_ADVERSARY_TRENDMICRO_SAKFILE, L"\\SystemRoot\\System32\\drivers\\sakfile.sys" }, /* Data Loss Prevention, not officescan. */ + { SUPHARDNT_ADVERSARY_TRENDMICRO, L"\\SystemRoot\\System32\\drivers\\sakcd.sys" }, /* Data Loss Prevention, not officescan. */ + + + { SUPHARDNT_ADVERSARY_MCAFEE, L"\\SystemRoot\\System32\\drivers\\cfwids.sys" }, + { SUPHARDNT_ADVERSARY_MCAFEE, L"\\SystemRoot\\System32\\drivers\\McPvDrv.sys" }, + { SUPHARDNT_ADVERSARY_MCAFEE, L"\\SystemRoot\\System32\\drivers\\mfeapfk.sys" }, + { SUPHARDNT_ADVERSARY_MCAFEE, L"\\SystemRoot\\System32\\drivers\\mfeavfk.sys" }, + { SUPHARDNT_ADVERSARY_MCAFEE, L"\\SystemRoot\\System32\\drivers\\mfefirek.sys" }, + { SUPHARDNT_ADVERSARY_MCAFEE, L"\\SystemRoot\\System32\\drivers\\mfehidk.sys" }, + { SUPHARDNT_ADVERSARY_MCAFEE, L"\\SystemRoot\\System32\\drivers\\mfencbdc.sys" }, + { SUPHARDNT_ADVERSARY_MCAFEE, L"\\SystemRoot\\System32\\drivers\\mfewfpk.sys" }, + + { SUPHARDNT_ADVERSARY_KASPERSKY, L"\\SystemRoot\\System32\\drivers\\kl1.sys" }, + { SUPHARDNT_ADVERSARY_KASPERSKY, L"\\SystemRoot\\System32\\drivers\\klflt.sys" }, + { SUPHARDNT_ADVERSARY_KASPERSKY, L"\\SystemRoot\\System32\\drivers\\klif.sys" }, + { SUPHARDNT_ADVERSARY_KASPERSKY, L"\\SystemRoot\\System32\\drivers\\klim6.sys" }, + { SUPHARDNT_ADVERSARY_KASPERSKY, L"\\SystemRoot\\System32\\drivers\\klkbdflt.sys" }, + { SUPHARDNT_ADVERSARY_KASPERSKY, L"\\SystemRoot\\System32\\drivers\\klmouflt.sys" }, + { SUPHARDNT_ADVERSARY_KASPERSKY, L"\\SystemRoot\\System32\\drivers\\kltdi.sys" }, + { SUPHARDNT_ADVERSARY_KASPERSKY, L"\\SystemRoot\\System32\\drivers\\kneps.sys" }, + { SUPHARDNT_ADVERSARY_KASPERSKY, L"\\SystemRoot\\System32\\klfphc.dll" }, + + { SUPHARDNT_ADVERSARY_MBAM, L"\\SystemRoot\\System32\\drivers\\MBAMSwissArmy.sys" }, + { SUPHARDNT_ADVERSARY_MBAM, L"\\SystemRoot\\System32\\drivers\\mwac.sys" }, + { SUPHARDNT_ADVERSARY_MBAM, L"\\SystemRoot\\System32\\drivers\\mbamchameleon.sys" }, + { SUPHARDNT_ADVERSARY_MBAM, L"\\SystemRoot\\System32\\drivers\\mbam.sys" }, + + { SUPHARDNT_ADVERSARY_AVG, L"\\SystemRoot\\System32\\drivers\\avgrkx64.sys" }, + { SUPHARDNT_ADVERSARY_AVG, L"\\SystemRoot\\System32\\drivers\\avgmfx64.sys" }, + { SUPHARDNT_ADVERSARY_AVG, L"\\SystemRoot\\System32\\drivers\\avgidsdrivera.sys" }, + { SUPHARDNT_ADVERSARY_AVG, L"\\SystemRoot\\System32\\drivers\\avgidsha.sys" }, + { SUPHARDNT_ADVERSARY_AVG, L"\\SystemRoot\\System32\\drivers\\avgtdia.sys" }, + { SUPHARDNT_ADVERSARY_AVG, L"\\SystemRoot\\System32\\drivers\\avgloga.sys" }, + { SUPHARDNT_ADVERSARY_AVG, L"\\SystemRoot\\System32\\drivers\\avgldx64.sys" }, + { SUPHARDNT_ADVERSARY_AVG, L"\\SystemRoot\\System32\\drivers\\avgdiska.sys" }, + + { SUPHARDNT_ADVERSARY_PANDA, L"\\SystemRoot\\System32\\drivers\\PSINAflt.sys" }, + { SUPHARDNT_ADVERSARY_PANDA, L"\\SystemRoot\\System32\\drivers\\PSINFile.sys" }, + { SUPHARDNT_ADVERSARY_PANDA, L"\\SystemRoot\\System32\\drivers\\PSINKNC.sys" }, + { SUPHARDNT_ADVERSARY_PANDA, L"\\SystemRoot\\System32\\drivers\\PSINProc.sys" }, + { SUPHARDNT_ADVERSARY_PANDA, L"\\SystemRoot\\System32\\drivers\\PSINProt.sys" }, + { SUPHARDNT_ADVERSARY_PANDA, L"\\SystemRoot\\System32\\drivers\\PSINReg.sys" }, + { SUPHARDNT_ADVERSARY_PANDA, L"\\SystemRoot\\System32\\drivers\\PSKMAD.sys" }, + { SUPHARDNT_ADVERSARY_PANDA, L"\\SystemRoot\\System32\\drivers\\NNSAlpc.sys" }, + { SUPHARDNT_ADVERSARY_PANDA, L"\\SystemRoot\\System32\\drivers\\NNSHttp.sys" }, + { SUPHARDNT_ADVERSARY_PANDA, L"\\SystemRoot\\System32\\drivers\\NNShttps.sys" }, + { SUPHARDNT_ADVERSARY_PANDA, L"\\SystemRoot\\System32\\drivers\\NNSIds.sys" }, + { SUPHARDNT_ADVERSARY_PANDA, L"\\SystemRoot\\System32\\drivers\\NNSNAHSL.sys" }, + { SUPHARDNT_ADVERSARY_PANDA, L"\\SystemRoot\\System32\\drivers\\NNSpicc.sys" }, + { SUPHARDNT_ADVERSARY_PANDA, L"\\SystemRoot\\System32\\drivers\\NNSPihsw.sys" }, + { SUPHARDNT_ADVERSARY_PANDA, L"\\SystemRoot\\System32\\drivers\\NNSPop3.sys" }, + { SUPHARDNT_ADVERSARY_PANDA, L"\\SystemRoot\\System32\\drivers\\NNSProt.sys" }, + { SUPHARDNT_ADVERSARY_PANDA, L"\\SystemRoot\\System32\\drivers\\NNSPrv.sys" }, + { SUPHARDNT_ADVERSARY_PANDA, L"\\SystemRoot\\System32\\drivers\\NNSSmtp.sys" }, + { SUPHARDNT_ADVERSARY_PANDA, L"\\SystemRoot\\System32\\drivers\\NNSStrm.sys" }, + { SUPHARDNT_ADVERSARY_PANDA, L"\\SystemRoot\\System32\\drivers\\NNStlsc.sys" }, + + { SUPHARDNT_ADVERSARY_MSE, L"\\SystemRoot\\System32\\drivers\\MpFilter.sys" }, + { SUPHARDNT_ADVERSARY_MSE, L"\\SystemRoot\\System32\\drivers\\NisDrvWFP.sys" }, + + { SUPHARDNT_ADVERSARY_COMODO, L"\\SystemRoot\\System32\\drivers\\cmdguard.sys" }, + { SUPHARDNT_ADVERSARY_COMODO, L"\\SystemRoot\\System32\\drivers\\cmderd.sys" }, + { SUPHARDNT_ADVERSARY_COMODO, L"\\SystemRoot\\System32\\drivers\\inspect.sys" }, + { SUPHARDNT_ADVERSARY_COMODO, L"\\SystemRoot\\System32\\drivers\\cmdhlp.sys" }, + { SUPHARDNT_ADVERSARY_COMODO, L"\\SystemRoot\\System32\\drivers\\cfrmd.sys" }, + { SUPHARDNT_ADVERSARY_COMODO, L"\\SystemRoot\\System32\\drivers\\hmd.sys" }, + { SUPHARDNT_ADVERSARY_COMODO, L"\\SystemRoot\\System32\\guard64.dll" }, + { SUPHARDNT_ADVERSARY_COMODO, L"\\SystemRoot\\System32\\cmdvrt64.dll" }, + { SUPHARDNT_ADVERSARY_COMODO, L"\\SystemRoot\\System32\\cmdkbd64.dll" }, + { SUPHARDNT_ADVERSARY_COMODO, L"\\SystemRoot\\System32\\cmdcsr.dll" }, + + { SUPHARDNT_ADVERSARY_ZONE_ALARM, L"\\SystemRoot\\System32\\drivers\\vsdatant.sys" }, + { SUPHARDNT_ADVERSARY_ZONE_ALARM, L"\\SystemRoot\\System32\\AntiTheftCredentialProvider.dll" }, + + { SUPHARDNT_ADVERSARY_DIGITAL_GUARDIAN, L"\\SystemRoot\\System32\\drivers\\dgmaster.sys" }, + }; + + uint32_t fFound = 0; + + /* + * Open the driver object directory. + */ + UNICODE_STRING NtDirName = RTNT_CONSTANT_UNISTR(L"\\Driver"); + + OBJECT_ATTRIBUTES ObjAttr; + InitializeObjectAttributes(&ObjAttr, &NtDirName, OBJ_CASE_INSENSITIVE, NULL /*hRootDir*/, NULL /*pSecDesc*/); + + HANDLE hDir; + NTSTATUS rcNt = NtOpenDirectoryObject(&hDir, DIRECTORY_QUERY | FILE_LIST_DIRECTORY, &ObjAttr); +#ifdef VBOX_STRICT + SUPR3HARDENED_ASSERT_NT_SUCCESS(rcNt); +#endif + if (NT_SUCCESS(rcNt)) + { + /* + * Enumerate it, looking for the driver. + */ + ULONG uObjDirCtx = 0; + for (;;) + { + uint32_t abBuffer[_64K + _1K]; + ULONG cbActual; + rcNt = NtQueryDirectoryObject(hDir, + abBuffer, + sizeof(abBuffer) - 4, /* minus four for string terminator space. */ + FALSE /*ReturnSingleEntry */, + FALSE /*RestartScan*/, + &uObjDirCtx, + &cbActual); + if (!NT_SUCCESS(rcNt) || cbActual < sizeof(OBJECT_DIRECTORY_INFORMATION)) + break; + + POBJECT_DIRECTORY_INFORMATION pObjDir = (POBJECT_DIRECTORY_INFORMATION)abBuffer; + while (pObjDir->Name.Length != 0) + { + WCHAR wcSaved = pObjDir->Name.Buffer[pObjDir->Name.Length / sizeof(WCHAR)]; + pObjDir->Name.Buffer[pObjDir->Name.Length / sizeof(WCHAR)] = '\0'; + + for (uint32_t i = 0; i < RT_ELEMENTS(s_aDrivers); i++) + if (RTUtf16ICmpAscii(pObjDir->Name.Buffer, s_aDrivers[i].pszDriver) == 0) + { + fFound |= s_aDrivers[i].fAdversary; + SUP_DPRINTF(("Found driver %s (%#x)\n", s_aDrivers[i].pszDriver, s_aDrivers[i].fAdversary)); + break; + } + + pObjDir->Name.Buffer[pObjDir->Name.Length / sizeof(WCHAR)] = wcSaved; + + /* Next directory entry. */ + pObjDir++; + } + } + + NtClose(hDir); + } + else + SUP_DPRINTF(("NtOpenDirectoryObject failed on \\Driver: %#x\n", rcNt)); + + /* + * Look for files. + */ + for (uint32_t i = 0; i < RT_ELEMENTS(s_aFiles); i++) + { + HANDLE hFile = RTNT_INVALID_HANDLE_VALUE; + IO_STATUS_BLOCK Ios = RTNT_IO_STATUS_BLOCK_INITIALIZER; + UNICODE_STRING UniStrName; + UniStrName.Buffer = (WCHAR *)s_aFiles[i].pwszFile; + UniStrName.Length = (USHORT)(RTUtf16Len(s_aFiles[i].pwszFile) * sizeof(WCHAR)); + UniStrName.MaximumLength = UniStrName.Length + sizeof(WCHAR); + InitializeObjectAttributes(&ObjAttr, &UniStrName, OBJ_CASE_INSENSITIVE, NULL /*hRootDir*/, NULL /*pSecDesc*/); + rcNt = NtCreateFile(&hFile, GENERIC_READ | SYNCHRONIZE, &ObjAttr, &Ios, NULL /* Allocation Size*/, + FILE_ATTRIBUTE_NORMAL, FILE_SHARE_READ, FILE_OPEN, + FILE_NON_DIRECTORY_FILE | FILE_SYNCHRONOUS_IO_NONALERT, NULL /*EaBuffer*/, 0 /*EaLength*/); + if (NT_SUCCESS(rcNt) && NT_SUCCESS(Ios.Status)) + { + fFound |= s_aFiles[i].fAdversary; + NtClose(hFile); + } + } + + /* + * Log details. + */ + SUP_DPRINTF(("supR3HardenedWinFindAdversaries: %#x\n", fFound)); + for (uint32_t i = 0; i < RT_ELEMENTS(s_aFiles); i++) + if (fFound & s_aFiles[i].fAdversary) + supR3HardenedLogFileInfo(s_aFiles[i].pwszFile, true /* fAdversarial */); + + return fFound; +} + + +extern "C" int main(int argc, char **argv, char **envp); + +/** + * The executable entry point. + * + * This is normally taken care of by the C runtime library, but we don't want to + * get involved with anything as complicated like the CRT in this setup. So, we + * it everything ourselves, including parameter parsing. + */ +extern "C" void __stdcall suplibHardenedWindowsMain(void) +{ + RTEXITCODE rcExit = RTEXITCODE_FAILURE; + + g_cSuplibHardenedWindowsMainCalls++; + g_enmSupR3HardenedMainState = SUPR3HARDENEDMAINSTATE_WIN_EP_CALLED; + + /* + * Initialize the NTDLL API wrappers. This aims at bypassing patched NTDLL + * in all the processes leading up the VM process. + */ + supR3HardenedWinInitImports(); + g_enmSupR3HardenedMainState = SUPR3HARDENEDMAINSTATE_WIN_IMPORTS_RESOLVED; + + /* + * Notify the parent process that we're probably capable of reporting our + * own errors. + */ + if (g_ProcParams.hEvtParent || g_ProcParams.hEvtChild) + { + SUPR3HARDENED_ASSERT(g_fSupEarlyProcessInit); + + g_ProcParams.enmRequest = kSupR3WinChildReq_CloseEvents; + NtSetEvent(g_ProcParams.hEvtParent, NULL); + + NtClose(g_ProcParams.hEvtParent); + NtClose(g_ProcParams.hEvtChild); + g_ProcParams.hEvtParent = NULL; + g_ProcParams.hEvtChild = NULL; + } + else + SUPR3HARDENED_ASSERT(!g_fSupEarlyProcessInit); + + /* + * After having resolved imports we patch the LdrInitializeThunk code so + * that it's more difficult to invade our privacy by CreateRemoteThread. + * We'll re-enable this after opening the driver or temporarily while respawning. + */ + supR3HardenedWinDisableThreadCreation(); + + /* + * Init g_uNtVerCombined. (The code is shared with SUPR3.lib and lives in + * SUPHardenedVerfiyImage-win.cpp.) + */ + supR3HardenedWinInitVersion(); + g_enmSupR3HardenedMainState = SUPR3HARDENEDMAINSTATE_WIN_VERSION_INITIALIZED; + + /* + * Convert the arguments to UTF-8 and open the log file if specified. + * This must be done as early as possible since the code below may fail. + */ + PUNICODE_STRING pCmdLineStr = &NtCurrentPeb()->ProcessParameters->CommandLine; + int cArgs; + char **papszArgs = suplibCommandLineToArgvWStub(pCmdLineStr->Buffer, pCmdLineStr->Length / sizeof(WCHAR), &cArgs); + + supR3HardenedOpenLog(&cArgs, papszArgs); + + /* + * Log information about important system files. + */ + supR3HardenedLogFileInfo(L"\\SystemRoot\\System32\\ntdll.dll", false /* fAdversarial */); + supR3HardenedLogFileInfo(L"\\SystemRoot\\System32\\kernel32.dll", false /* fAdversarial */); + supR3HardenedLogFileInfo(L"\\SystemRoot\\System32\\KernelBase.dll", false /* fAdversarial */); + supR3HardenedLogFileInfo(L"\\SystemRoot\\System32\\apisetschema.dll", false /* fAdversarial */); + + /* + * Scan the system for adversaries, logging information about them. + */ + g_fSupAdversaries = supR3HardenedWinFindAdversaries(); + + /* + * Get the executable name, make sure it's the long version. + */ + DWORD cwcExecName = GetModuleFileNameW(GetModuleHandleW(NULL), g_wszSupLibHardenedExePath, + RT_ELEMENTS(g_wszSupLibHardenedExePath)); + if (cwcExecName >= RT_ELEMENTS(g_wszSupLibHardenedExePath)) + supR3HardenedFatalMsg("suplibHardenedWindowsMain", kSupInitOp_Integrity, VERR_BUFFER_OVERFLOW, + "The executable path is too long."); + + RTUTF16 wszLong[RT_ELEMENTS(g_wszSupLibHardenedExePath)]; + DWORD cwcLong = GetLongPathNameW(g_wszSupLibHardenedExePath, wszLong, RT_ELEMENTS(wszLong)); + if (cwcLong > 0) + { + memcpy(g_wszSupLibHardenedExePath, wszLong, (cwcLong + 1) * sizeof(RTUTF16)); + cwcExecName = cwcLong; + } + + /* The NT version of it. */ + HANDLE hFile = CreateFileW(g_wszSupLibHardenedExePath, GENERIC_READ, FILE_SHARE_READ, NULL /*pSecurityAttributes*/, + OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL /*hTemplateFile*/); + if (hFile == NULL || hFile == INVALID_HANDLE_VALUE) + supR3HardenedFatalMsg("suplibHardenedWindowsMain", kSupInitOp_Integrity, RTErrConvertFromWin32(RtlGetLastWin32Error()), + "Error opening the executable: %u (%ls).", RtlGetLastWin32Error()); + RT_ZERO(g_SupLibHardenedExeNtPath); + ULONG cbIgn; + NTSTATUS rcNt = NtQueryObject(hFile, ObjectNameInformation, &g_SupLibHardenedExeNtPath, + sizeof(g_SupLibHardenedExeNtPath) - sizeof(WCHAR), &cbIgn); + if (!NT_SUCCESS(rcNt)) + supR3HardenedFatalMsg("suplibHardenedWindowsMain", kSupInitOp_Integrity, RTErrConvertFromNtStatus(rcNt), + "NtQueryObject -> %#x (on %ls)\n", rcNt, g_wszSupLibHardenedExePath); + NtClose(hFile); + + /* The NT executable name offset / dir path length. */ + g_offSupLibHardenedExeNtName = g_SupLibHardenedExeNtPath.UniStr.Length / sizeof(WCHAR); + while ( g_offSupLibHardenedExeNtName > 1 + && g_SupLibHardenedExeNtPath.UniStr.Buffer[g_offSupLibHardenedExeNtName - 1] != '\\' ) + g_offSupLibHardenedExeNtName--; + + /* + * If we've done early init already, register the DLL load notification + * callback and reinstall the NtDll patches. + */ + if (g_fSupEarlyProcessInit) + { + supR3HardenedWinRegisterDllNotificationCallback(); + supR3HardenedWinReInstallHooks(false /*fFirstCall */); + } + + /* + * Call the C/C++ main function. + */ + SUP_DPRINTF(("Calling main()\n")); + rcExit = (RTEXITCODE)main(cArgs, papszArgs, NULL); + + /* + * Exit the process (never return). + */ + SUP_DPRINTF(("Terminating the normal way: rcExit=%d\n", rcExit)); + suplibHardenedExit(rcExit); +} + + +/** + * Reports an error to the parent process via the process parameter structure. + * + * @param pszWhere Where this error occured, if fatal message. NULL + * if not message. + * @param enmWhat Which init operation went wrong if fatal + * message. kSupInitOp_Invalid if not message. + * @param rc The status code to report. + * @param pszFormat The format string. + * @param va The format arguments. + */ +DECLHIDDEN(void) supR3HardenedWinReportErrorToParent(const char *pszWhere, SUPINITOP enmWhat, int rc, + const char *pszFormat, va_list va) +{ + if (pszWhere) + RTStrCopy(g_ProcParams.szWhere, sizeof(g_ProcParams.szWhere), pszWhere); + else + g_ProcParams.szWhere[0] = '\0'; + RTStrPrintfV(g_ProcParams.szErrorMsg, sizeof(g_ProcParams.szErrorMsg), pszFormat, va); + g_ProcParams.enmWhat = enmWhat; + g_ProcParams.rc = RT_SUCCESS(rc) ? VERR_INTERNAL_ERROR_2 : rc; + g_ProcParams.enmRequest = kSupR3WinChildReq_Error; + + NtClearEvent(g_ProcParams.hEvtChild); + NTSTATUS rcNt = NtSetEvent(g_ProcParams.hEvtParent, NULL); + if (NT_SUCCESS(rcNt)) + { + LARGE_INTEGER Timeout; + Timeout.QuadPart = -300000000; /* 30 second */ + NTSTATUS rcNt = NtWaitForSingleObject(g_ProcParams.hEvtChild, FALSE /*Alertable*/, &Timeout); + } +} + + +/** + * Routine called by the supR3HardenedEarlyProcessInitThunk assembly routine + * when LdrInitializeThunk is executed in during process initialization. + * + * This initializes the Stub and VM processes, hooking NTDLL APIs and opening + * the device driver before any other DLLs gets loaded into the process. This + * greately reduces and controls the trusted code base of the process compared + * to opening the driver from SUPR3HardenedMain. It also avoids issues with so + * call protection software that is in the habit of patching half of the ntdll + * and kernel32 APIs in the process, making it almost indistinguishable from + * software that is up to no good. Once we've opened vboxdrv, the process + * should be locked down so thighly that only kernel software and csrss can mess + * with the process. + */ +DECLASM(uintptr_t) supR3HardenedEarlyProcessInit(void) +{ + /* + * When the first thread gets here we wait for the parent to continue with + * the process purifications. The primary thread must execute for image + * load notifications to trigger, at least in more recent windows versions. + * The old trick of starting a different thread that terminates immediately + * thus doesn't work. + * + * We are not allowed to modify any data at this point because it will be + * reset by the child process purification the parent does when we stop. To + * sabotage thread creation during purification, and to avoid unnecessary + * work for the parent, we reset g_ProcParams before signalling the parent + * here. + */ + if (g_enmSupR3HardenedMainState != SUPR3HARDENEDMAINSTATE_NOT_YET_CALLED) + { + NtTerminateThread(0, 0); + return 0x22; /* crash */ + } + + /* Retrieve the data we need. */ + uintptr_t uNtDllAddr = ASMAtomicXchgPtrT(&g_ProcParams.uNtDllAddr, 0, uintptr_t); + if (!RT_VALID_PTR(uNtDllAddr)) + { + NtTerminateThread(0, 0); + return 0x23; /* crash */ + } + + HANDLE hEvtChild = g_ProcParams.hEvtChild; + HANDLE hEvtParent = g_ProcParams.hEvtParent; + if ( hEvtChild == NULL + || hEvtChild == RTNT_INVALID_HANDLE_VALUE + || hEvtParent == NULL + || hEvtParent == RTNT_INVALID_HANDLE_VALUE) + { + NtTerminateThread(0, 0); + return 0x24; /* crash */ + } + + /* Resolve the APIs we need. */ + PFNNTWAITFORSINGLEOBJECT pfnNtWaitForSingleObject; + PFNNTSETEVENT pfnNtSetEvent; + supR3HardenedWinGetVeryEarlyImports(uNtDllAddr, &pfnNtWaitForSingleObject, &pfnNtSetEvent); + + /* Signal the parent that we're ready for purification. */ + RT_ZERO(g_ProcParams); + g_ProcParams.enmRequest = kSupR3WinChildReq_PurifyChildAndCloseHandles; + NTSTATUS rcNt = pfnNtSetEvent(hEvtParent, NULL); + if (rcNt != STATUS_SUCCESS) + return 0x33; /* crash */ + + /* Wait up to 2 mins for the parent to exorcise evil. */ + LARGE_INTEGER Timeout; + Timeout.QuadPart = -1200000000; /* 120 second */ + rcNt = pfnNtWaitForSingleObject(hEvtChild, FALSE /*Alertable*/, &Timeout); + if (rcNt != STATUS_SUCCESS) + return 0x34; /* crash */ + + /* + * We're good to go, work global state and restore process parameters. + * Note that we will not restore uNtDllAddr since that is our first defence + * against unwanted threads (see above). + */ + g_enmSupR3HardenedMainState = SUPR3HARDENEDMAINSTATE_WIN_EARLY_INIT_CALLED; + g_fSupEarlyProcessInit = true; + + g_ProcParams.hEvtChild = hEvtChild; + g_ProcParams.hEvtParent = hEvtParent; + g_ProcParams.enmRequest = kSupR3WinChildReq_Error; + g_ProcParams.rc = VINF_SUCCESS; + + /* + * Initialize the NTDLL imports that we consider usable before the + * process has been initialized. + */ + supR3HardenedWinInitImportsEarly(uNtDllAddr); + g_enmSupR3HardenedMainState = SUPR3HARDENEDMAINSTATE_WIN_EARLY_IMPORTS_RESOLVED; + + /* + * Init g_uNtVerCombined as well as we can at this point. + */ + supR3HardenedWinInitVersion(); + + /* + * Convert the arguments to UTF-8 so we can open the log file if specified. + * We may have to normalize the pointer on older windows version (not w7/64 +). + * Note! This leaks memory at present. + */ + PRTL_USER_PROCESS_PARAMETERS pUserProcParams = NtCurrentPeb()->ProcessParameters; + UNICODE_STRING CmdLineStr = pUserProcParams->CommandLine; + if ( CmdLineStr.Buffer != NULL + && !(pUserProcParams->Flags & RTL_USER_PROCESS_PARAMS_FLAG_NORMALIZED) ) + CmdLineStr.Buffer = (WCHAR *)((uintptr_t)CmdLineStr.Buffer + (uintptr_t)pUserProcParams); + int cArgs; + char **papszArgs = suplibCommandLineToArgvWStub(CmdLineStr.Buffer, CmdLineStr.Length / sizeof(WCHAR), &cArgs); + supR3HardenedOpenLog(&cArgs, papszArgs); + SUP_DPRINTF(("supR3HardenedVmProcessInit: uNtDllAddr=%p\n", uNtDllAddr)); + + /* + * Set up the direct system calls so we can more easily hook NtCreateSection. + */ + supR3HardenedWinInitSyscalls(true /*fReportErrors*/); + + /* + * Determine the executable path and name. Will NOT determine the windows style + * executable path here as we don't need it. + */ + SIZE_T cbActual = 0; + rcNt = NtQueryVirtualMemory(NtCurrentProcess(), &g_ProcParams, MemorySectionName, &g_SupLibHardenedExeNtPath, + sizeof(g_SupLibHardenedExeNtPath) - sizeof(WCHAR), &cbActual); + if ( !NT_SUCCESS(rcNt) + || g_SupLibHardenedExeNtPath.UniStr.Length == 0 + || g_SupLibHardenedExeNtPath.UniStr.Length & 1) + supR3HardenedFatal("NtQueryVirtualMemory/MemorySectionName failed in supR3HardenedVmProcessInit: %#x\n", rcNt); + + /* The NT executable name offset / dir path length. */ + g_offSupLibHardenedExeNtName = g_SupLibHardenedExeNtPath.UniStr.Length / sizeof(WCHAR); + while ( g_offSupLibHardenedExeNtName > 1 + && g_SupLibHardenedExeNtPath.UniStr.Buffer[g_offSupLibHardenedExeNtName - 1] != '\\' ) + g_offSupLibHardenedExeNtName--; + + /* + * Initialize the image verification stuff (hooks LdrLoadDll and NtCreateSection). + */ + supR3HardenedWinInit(0, false /*fAvastKludge*/); + + /* + * Open the driver. + */ + if (cArgs >= 1 && suplibHardenedStrCmp(papszArgs[0], SUPR3_RESPAWN_1_ARG0) == 0) + { + SUP_DPRINTF(("supR3HardenedVmProcessInit: Opening vboxdrv stub...\n")); + supR3HardenedWinOpenStubDevice(); + } + else if (cArgs >= 1 && suplibHardenedStrCmp(papszArgs[0], SUPR3_RESPAWN_2_ARG0) == 0) + { + SUP_DPRINTF(("supR3HardenedVmProcessInit: Opening vboxdrv...\n")); + supR3HardenedMainOpenDevice(); + } + else + supR3HardenedFatal("Unexpected first argument '%s'!\n", papszArgs[0]); + g_enmSupR3HardenedMainState = SUPR3HARDENEDMAINSTATE_WIN_EARLY_DEVICE_OPENED; + + /* + * Reinstall the NtDll patches since there is a slight possibility that + * someone undid them while we where busy opening the device. + */ + supR3HardenedWinReInstallHooks(false /*fFirstCall */); + + /* + * Restore the LdrInitializeThunk code so we can initialize the process + * normally when we return. + */ + SUP_DPRINTF(("supR3HardenedVmProcessInit: Restoring LdrInitializeThunk...\n")); + PSUPHNTLDRCACHEENTRY pLdrEntry; + int rc = supHardNtLdrCacheOpen("ntdll.dll", &pLdrEntry); + if (RT_FAILURE(rc)) + supR3HardenedFatal("supR3HardenedVmProcessInit: supHardNtLdrCacheOpen failed on NTDLL: %Rrc\n", rc); + + uint8_t *pbBits; + rc = supHardNtLdrCacheEntryGetBits(pLdrEntry, &pbBits, uNtDllAddr, NULL, NULL, NULL /*pErrInfo*/); + if (RT_FAILURE(rc)) + supR3HardenedFatal("supR3HardenedVmProcessInit: supHardNtLdrCacheEntryGetBits failed on NTDLL: %Rrc\n", rc); + + RTLDRADDR uValue; + rc = RTLdrGetSymbolEx(pLdrEntry->hLdrMod, pbBits, uNtDllAddr, UINT32_MAX, "LdrInitializeThunk", &uValue); + if (RT_FAILURE(rc)) + supR3HardenedFatal("supR3HardenedVmProcessInit: Failed to find LdrInitializeThunk (%Rrc).\n", rc); + + PVOID pvLdrInitThunk = (PVOID)(uintptr_t)uValue; + SUPR3HARDENED_ASSERT_NT_SUCCESS(supR3HardenedWinProtectMemory(pvLdrInitThunk, 16, PAGE_EXECUTE_READWRITE)); + memcpy(pvLdrInitThunk, pbBits + ((uintptr_t)uValue - uNtDllAddr), 16); + SUPR3HARDENED_ASSERT_NT_SUCCESS(supR3HardenedWinProtectMemory(pvLdrInitThunk, 16, PAGE_EXECUTE_READ)); + + SUP_DPRINTF(("supR3HardenedVmProcessInit: Returning to LdrInitializeThunk...\n")); + return (uintptr_t)pvLdrInitThunk; +} + diff -Nru virtualbox-4.1.12-dfsg/src/VBox/HostDrivers/Support/win/SUPR3HardenedNoCrt-win.cpp virtualbox-4.1.44-dfsg/src/VBox/HostDrivers/Support/win/SUPR3HardenedNoCrt-win.cpp --- virtualbox-4.1.12-dfsg/src/VBox/HostDrivers/Support/win/SUPR3HardenedNoCrt-win.cpp 1970-01-01 00:00:00.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/HostDrivers/Support/win/SUPR3HardenedNoCrt-win.cpp 2015-11-11 15:08:41.000000000 +0000 @@ -0,0 +1,477 @@ +/* $Id: SUPR3HardenedNoCrt-win.cpp $ */ +/** @file + * VirtualBox Support Library - Hardened main(), windows bits. + */ + +/* + * Copyright (C) 2006-2014 Oracle Corporation + * + * This file is part of VirtualBox Open Source Edition (OSE), as + * available from http://www.virtualbox.org. This file is free software; + * you can redistribute it and/or modify it under the terms of the GNU + * General Public License (GPL) as published by the Free Software + * Foundation, in version 2 as it comes in the "COPYING" file of the + * VirtualBox OSE distribution. VirtualBox OSE is distributed in the + * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind. + * + * The contents of this file may alternatively be used under the terms + * of the Common Development and Distribution License Version 1.0 + * (CDDL) only, as it comes in the "COPYING.CDDL" file of the + * VirtualBox OSE distribution, in which case the provisions of the + * CDDL are applicable instead of those of the GPL. + * + * You may elect to license modified versions of this file under the + * terms and conditions of either the GPL or the CDDL or both. + */ + +/******************************************************************************* +* Header Files * +*******************************************************************************/ +#include +#include +#include +#ifndef PROCESS_SET_LIMITED_INFORMATION +# define PROCESS_SET_LIMITED_INFORMATION 0x2000 +#endif + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include "SUPLibInternal.h" +#include "win/SUPHardenedVerify-win.h" + + +/* + * assert.cpp + */ + +RTDATADECL(char) g_szRTAssertMsg1[1024]; +RTDATADECL(char) g_szRTAssertMsg2[4096]; +RTDATADECL(const char * volatile) g_pszRTAssertExpr; +RTDATADECL(const char * volatile) g_pszRTAssertFile; +RTDATADECL(uint32_t volatile) g_u32RTAssertLine; +RTDATADECL(const char * volatile) g_pszRTAssertFunction; + +RTDECL(bool) RTAssertMayPanic(void) +{ + return true; +} + + +RTDECL(void) RTAssertMsg1(const char *pszExpr, unsigned uLine, const char *pszFile, const char *pszFunction) +{ + /* + * Fill in the globals. + */ + g_pszRTAssertExpr = pszExpr; + g_pszRTAssertFile = pszFile; + g_pszRTAssertFunction = pszFunction; + g_u32RTAssertLine = uLine; + RTStrPrintf(g_szRTAssertMsg1, sizeof(g_szRTAssertMsg1), + "\n!!Assertion Failed!!\n" + "Expression: %s\n" + "Location : %s(%d) %s\n", + pszExpr, pszFile, uLine, pszFunction); +} + + +RTDECL(void) RTAssertMsg2V(const char *pszFormat, va_list va) +{ + RTStrPrintfV(g_szRTAssertMsg2, sizeof(g_szRTAssertMsg2), pszFormat, va); + if (g_enmSupR3HardenedMainState < SUPR3HARDENEDMAINSTATE_CALLED_TRUSTED_MAIN) + supR3HardenedFatalMsg(g_pszRTAssertExpr, kSupInitOp_Misc, VERR_INTERNAL_ERROR, + "%s%s", g_szRTAssertMsg1, g_szRTAssertMsg2); + else + supR3HardenedError(VERR_INTERNAL_ERROR, false/*fFatal*/, "%s%s", g_szRTAssertMsg1, g_szRTAssertMsg2); +} + + +/* + * Memory allocator. + */ + +/** The handle of the heap we're using. */ +static HANDLE g_hSupR3HardenedHeap = NULL; +/** Number of heaps used during early process init. */ +static uint32_t g_cSupR3HardenedEarlyHeaps = 0; +/** Early process init heaps. */ +static struct +{ + /** The heap handle. */ + RTHEAPSIMPLE hHeap; + /** The heap block pointer. */ + void *pvBlock; + /** The size of the heap block. */ + size_t cbBlock; + /** Number of active allocations on this heap. */ + size_t cAllocations; +} g_aSupR3HardenedEarlyHeaps[8]; + + +static uint32_t supR3HardenedEarlyFind(void *pv) +{ + uint32_t iHeap = g_cSupR3HardenedEarlyHeaps; + while (iHeap-- > 0) + if ((uintptr_t)pv - (uintptr_t)g_aSupR3HardenedEarlyHeaps[iHeap].pvBlock < g_aSupR3HardenedEarlyHeaps[iHeap].cbBlock) + return iHeap; + return UINT32_MAX; +} + + +static void supR3HardenedEarlyCompact(void) +{ + uint32_t iHeap = g_cSupR3HardenedEarlyHeaps; + while (iHeap-- > 0) + if (g_aSupR3HardenedEarlyHeaps[iHeap].cAllocations == 0) + { + PVOID pvMem = g_aSupR3HardenedEarlyHeaps[iHeap].pvBlock; + SIZE_T cbMem = g_aSupR3HardenedEarlyHeaps[iHeap].cbBlock; + if (iHeap + 1 < g_cSupR3HardenedEarlyHeaps) + g_aSupR3HardenedEarlyHeaps[iHeap] = g_aSupR3HardenedEarlyHeaps[g_cSupR3HardenedEarlyHeaps - 1]; + g_cSupR3HardenedEarlyHeaps--; + + NTSTATUS rcNt = NtFreeVirtualMemory(NtCurrentProcess(), &pvMem, &cbMem, MEM_RELEASE); + Assert(NT_SUCCESS(rcNt)); + SUP_DPRINTF(("supR3HardenedEarlyCompact: Removed heap %#u (%#p LB %#zx)\n", iHeap, pvMem, cbMem)); + } +} + + +static void *supR3HardenedEarlyAlloc(size_t cb, bool fZero) +{ + /* + * Try allocate on existing heaps. + */ + void *pv; + uint32_t iHeap = 0; + while (iHeap < g_cSupR3HardenedEarlyHeaps) + { + if (fZero) + pv = RTHeapSimpleAllocZ(g_aSupR3HardenedEarlyHeaps[iHeap].hHeap, cb, 0); + else + pv = RTHeapSimpleAlloc(g_aSupR3HardenedEarlyHeaps[iHeap].hHeap, cb, 0); + if (pv) + { + g_aSupR3HardenedEarlyHeaps[iHeap].cAllocations++; +#ifdef SUPR3HARDENED_EARLY_HEAP_TRACE + SUP_DPRINTF(("Early heap: %p LB %#zx - alloc\n", pv, cb)); +#endif + return pv; + } + iHeap++; + } + + /* + * Add another heap. + */ + if (iHeap == RT_ELEMENTS(g_aSupR3HardenedEarlyHeaps)) + supR3HardenedFatal("Early heap table is full (cb=%#zx).\n", cb); + SIZE_T cbBlock = iHeap == 0 ? _1M : g_aSupR3HardenedEarlyHeaps[iHeap - 1].cbBlock * 2; + while (cbBlock <= cb * 2) + cbBlock *= 2; + + PVOID pvBlock = NULL; + NTSTATUS rcNt = NtAllocateVirtualMemory(NtCurrentProcess(), &pvBlock, 0 /*ZeroBits*/, &cbBlock, MEM_COMMIT, PAGE_READWRITE); + if (!NT_SUCCESS(rcNt)) + supR3HardenedFatal("NtAllocateVirtualMemory(,,,%#zx,,) failed: rcNt=%#x\n", cbBlock, rcNt); + SUP_DPRINTF(("New simple heap: #%u %p LB %#zx (for %zu allocation)\n", iHeap, pvBlock, cbBlock, cb)); + + RTHEAPSIMPLE hHeap; + int rc = RTHeapSimpleInit(&hHeap, pvBlock, cbBlock); + if (RT_FAILURE(rc)) + supR3HardenedFatal("RTHeapSimpleInit(,%p,%#zx) failed: rc=%#x\n", pvBlock, cbBlock, rc); + + if (fZero) + pv = RTHeapSimpleAllocZ(hHeap, cb, 0); + else + pv = RTHeapSimpleAlloc(hHeap, cb, 0); + if (!pv) + supR3HardenedFatal("RTHeapSimpleAlloc[Z] failed allocating %#zx bytes on a %#zu heap.\n", cb, cbBlock); + + g_aSupR3HardenedEarlyHeaps[iHeap].pvBlock = pvBlock; + g_aSupR3HardenedEarlyHeaps[iHeap].cbBlock = cbBlock; + g_aSupR3HardenedEarlyHeaps[iHeap].cAllocations = 1; + g_aSupR3HardenedEarlyHeaps[iHeap].hHeap = hHeap; + + Assert(g_cSupR3HardenedEarlyHeaps == iHeap); + g_cSupR3HardenedEarlyHeaps = iHeap + 1; + +#ifdef SUPR3HARDENED_EARLY_HEAP_TRACE + SUP_DPRINTF(("Early heap: %p LB %#zx - alloc\n", pv, cb)); +#endif + return pv; +} + + +/** + * Lazy heap initialization function. + * + * @returns Heap handle. + */ +static HANDLE supR3HardenedHeapInit(void) +{ + Assert(g_enmSupR3HardenedMainState >= SUPR3HARDENEDMAINSTATE_WIN_EP_CALLED); + HANDLE hHeap = RtlCreateHeap(HEAP_GROWABLE | HEAP_CLASS_PRIVATE, NULL /*HeapBase*/, + 0 /*ReserveSize*/, 0 /*CommitSize*/, NULL /*Lock*/, NULL /*Parameters*/); + if (hHeap) + { + g_hSupR3HardenedHeap = hHeap; + return hHeap; + } + + supR3HardenedFatal("RtlCreateHeap failed.\n"); + return NULL; +} + + +/** + * Compacts the heaps before enter wait for parent/child. + */ +DECLHIDDEN(void) supR3HardenedWinCompactHeaps(void) +{ + if (g_hSupR3HardenedHeap) + RtlCompactHeap(g_hSupR3HardenedHeap, 0 /*dwFlags*/); + RtlCompactHeap(GetProcessHeap(), 0 /*dwFlags*/); + supR3HardenedEarlyCompact(); +} + + + +RTDECL(void *) RTMemTmpAllocTag(size_t cb, const char *pszTag) RT_NO_THROW +{ + return RTMemAllocTag(cb, pszTag); +} + + +RTDECL(void *) RTMemTmpAllocZTag(size_t cb, const char *pszTag) RT_NO_THROW +{ + return RTMemAllocZTag(cb, pszTag); +} + + +RTDECL(void) RTMemTmpFree(void *pv) RT_NO_THROW +{ + RTMemFree(pv); +} + + +RTDECL(void *) RTMemAllocTag(size_t cb, const char *pszTag) RT_NO_THROW +{ + HANDLE hHeap = g_hSupR3HardenedHeap; + if (!hHeap) + { + if ( g_fSupEarlyProcessInit + && g_enmSupR3HardenedMainState <= SUPR3HARDENEDMAINSTATE_WIN_EP_CALLED) + return supR3HardenedEarlyAlloc(cb, false /*fZero*/); + hHeap = supR3HardenedHeapInit(); + } + + void *pv = RtlAllocateHeap(hHeap, 0 /*fFlags*/, cb); + if (!pv) + supR3HardenedFatal("RtlAllocateHeap failed to allocate %zu bytes.\n", cb); + return pv; +} + + +RTDECL(void *) RTMemAllocZTag(size_t cb, const char *pszTag) RT_NO_THROW +{ + HANDLE hHeap = g_hSupR3HardenedHeap; + if (!hHeap) + { + if ( g_fSupEarlyProcessInit + && g_enmSupR3HardenedMainState <= SUPR3HARDENEDMAINSTATE_WIN_EP_CALLED) + return supR3HardenedEarlyAlloc(cb, true /*fZero*/); + hHeap = supR3HardenedHeapInit(); + } + + void *pv = RtlAllocateHeap(hHeap, HEAP_ZERO_MEMORY, cb); + if (!pv) + supR3HardenedFatal("RtlAllocateHeap failed to allocate %zu bytes.\n", cb); + return pv; +} + + +RTDECL(void *) RTMemAllocVarTag(size_t cbUnaligned, const char *pszTag) RT_NO_THROW +{ + size_t cbAligned; + if (cbUnaligned >= 16) + cbAligned = RT_ALIGN_Z(cbUnaligned, 16); + else + cbAligned = RT_ALIGN_Z(cbUnaligned, sizeof(void *)); + return RTMemAllocTag(cbAligned, pszTag); +} + + +RTDECL(void *) RTMemAllocZVarTag(size_t cbUnaligned, const char *pszTag) RT_NO_THROW +{ + size_t cbAligned; + if (cbUnaligned >= 16) + cbAligned = RT_ALIGN_Z(cbUnaligned, 16); + else + cbAligned = RT_ALIGN_Z(cbUnaligned, sizeof(void *)); + return RTMemAllocZTag(cbAligned, pszTag); +} + + +RTDECL(void *) RTMemReallocTag(void *pvOld, size_t cbNew, const char *pszTag) RT_NO_THROW +{ + if (!pvOld) + return RTMemAllocZTag(cbNew, pszTag); + + void *pv; + if (g_fSupEarlyProcessInit) + { + uint32_t iHeap = supR3HardenedEarlyFind(pvOld); + if (iHeap != UINT32_MAX) + { +#if 0 /* RTHeapSimpleRealloc is not implemented */ + /* If this is before we can use a regular heap, we try resize + within the simple heap. (There are a lot of array growing in + the ASN.1 code.) */ + if (g_enmSupR3HardenedMainState < SUPR3HARDENEDMAINSTATE_WIN_IMPORTS_RESOLVED) + { + pv = RTHeapSimpleRealloc(g_aSupR3HardenedEarlyHeaps[iHeap].hHeap, pvOld, cbNew, 0); + if (pv) + { +# ifdef SUPR3HARDENED_EARLY_HEAP_TRACE + SUP_DPRINTF(("Early heap: %p LB %#zx, was %p - realloc\n", pvNew, cbNew, pvOld)); +# endif + return pv; + } + } +#endif + + /* Either we can't reallocate it on the same simple heap, or we're + past hardened main and wish to migrate everything over on the + real heap. */ + size_t cbOld = RTHeapSimpleSize(g_aSupR3HardenedEarlyHeaps[iHeap].hHeap, pvOld); + pv = RTMemAllocTag(cbNew, pszTag); + if (pv) + { + memcpy(pv, pvOld, RT_MIN(cbOld, cbNew)); + RTHeapSimpleFree(g_aSupR3HardenedEarlyHeaps[iHeap].hHeap, pvOld); + if (g_aSupR3HardenedEarlyHeaps[iHeap].cAllocations) + g_aSupR3HardenedEarlyHeaps[iHeap].cAllocations--; + if ( !g_aSupR3HardenedEarlyHeaps[iHeap].cAllocations + && g_enmSupR3HardenedMainState >= SUPR3HARDENEDMAINSTATE_WIN_IMPORTS_RESOLVED) + supR3HardenedEarlyCompact(); + } +# ifdef SUPR3HARDENED_EARLY_HEAP_TRACE + SUP_DPRINTF(("Early heap: %p LB %#zx, was %p %LB %#zx - realloc\n", pv, cbNew, pvOld, cbOld)); +# endif + return pv; + } + Assert(g_enmSupR3HardenedMainState >= SUPR3HARDENEDMAINSTATE_WIN_IMPORTS_RESOLVED); + } + + /* Allocate from the regular heap. */ + HANDLE hHeap = g_hSupR3HardenedHeap; + Assert(hHeap != NULL); + pv = RtlReAllocateHeap(hHeap, 0 /*dwFlags*/, pvOld, cbNew); + if (!pv) + supR3HardenedFatal("RtlReAllocateHeap failed to allocate %zu bytes.\n", cbNew); + return pv; +} + + +RTDECL(void) RTMemFree(void *pv) RT_NO_THROW +{ + if (pv) + { + if (g_fSupEarlyProcessInit) + { + uint32_t iHeap = supR3HardenedEarlyFind(pv); + if (iHeap != UINT32_MAX) + { +#ifdef SUPR3HARDENED_EARLY_HEAP_TRACE + SUP_DPRINTF(("Early heap: %p - free\n", pv)); +#endif + RTHeapSimpleFree(g_aSupR3HardenedEarlyHeaps[iHeap].hHeap, pv); + if (g_aSupR3HardenedEarlyHeaps[iHeap].cAllocations) + g_aSupR3HardenedEarlyHeaps[iHeap].cAllocations--; + if ( !g_aSupR3HardenedEarlyHeaps[iHeap].cAllocations + && g_enmSupR3HardenedMainState >= SUPR3HARDENEDMAINSTATE_WIN_IMPORTS_RESOLVED) + supR3HardenedEarlyCompact(); + return; + } + Assert(g_enmSupR3HardenedMainState >= SUPR3HARDENEDMAINSTATE_WIN_IMPORTS_RESOLVED); + } + + HANDLE hHeap = g_hSupR3HardenedHeap; + Assert(hHeap != NULL); + RtlFreeHeap(hHeap, 0 /* dwFlags*/, pv); + } +} + + +/* + * Simplified version of RTMemWipeThoroughly that avoids dragging in the + * random number code. + */ + +RTDECL(void) RTMemWipeThoroughly(void *pv, size_t cb, size_t cMinPasses) RT_NO_THROW +{ + size_t cPasses = RT_MIN(cMinPasses, 6); + static const uint32_t s_aPatterns[] = { 0x00, 0xaa, 0x55, 0xff, 0xf0, 0x0f, 0xcc, 0x3c, 0xc3 }; + uint32_t iPattern = 0; + do + { + memset(pv, s_aPatterns[iPattern], cb); + iPattern = (iPattern + 1) % RT_ELEMENTS(s_aPatterns); + ASMMemoryFence(); + + memset(pv, s_aPatterns[iPattern], cb); + iPattern = (iPattern + 1) % RT_ELEMENTS(s_aPatterns); + ASMMemoryFence(); + + memset(pv, s_aPatterns[iPattern], cb); + iPattern = (iPattern + 1) % RT_ELEMENTS(s_aPatterns); + ASMMemoryFence(); + } while (cPasses-- > 0); + + memset(pv, 0xff, cb); + ASMMemoryFence(); +} + + + +/* + * path-win.cpp + */ + +RTDECL(int) RTPathGetCurrent(char *pszPath, size_t cbPath) +{ + int rc; + if (g_enmSupR3HardenedMainState < SUPR3HARDENEDMAINSTATE_WIN_IMPORTS_RESOLVED) +/** @todo Rainy day: improve this by checking the process parameter block + * (needs to be normalized). */ + rc = RTStrCopy(pszPath, cbPath, "C:\\"); + else + { + /* + * GetCurrentDirectory may in some cases omit the drive letter, according + * to MSDN, thus the GetFullPathName call. + */ + RTUTF16 wszCurPath[RTPATH_MAX]; + if (GetCurrentDirectoryW(RTPATH_MAX, wszCurPath)) + { + RTUTF16 wszFullPath[RTPATH_MAX]; + if (GetFullPathNameW(wszCurPath, RTPATH_MAX, wszFullPath, NULL)) + rc = RTUtf16ToUtf8Ex(&wszFullPath[0], RTSTR_MAX, &pszPath, cbPath, NULL); + else + rc = RTErrConvertFromWin32(RtlGetLastWin32Error()); + } + else + rc = RTErrConvertFromWin32(RtlGetLastWin32Error()); + } + return rc; +} + diff -Nru virtualbox-4.1.12-dfsg/src/VBox/HostDrivers/Support/win/VBoxDrv.inf virtualbox-4.1.44-dfsg/src/VBox/HostDrivers/Support/win/VBoxDrv.inf --- virtualbox-4.1.12-dfsg/src/VBox/HostDrivers/Support/win/VBoxDrv.inf 2012-04-02 13:28:48.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/HostDrivers/Support/win/VBoxDrv.inf 2015-11-11 15:08:41.000000000 +0000 @@ -4,25 +4,25 @@ ; ; -; Copyright (C) 2006-2007 Oracle Corporation -; -; This file is part of VirtualBox Open Source Edition (OSE), as -; available from http://www.virtualbox.org. This file is free software; -; you can redistribute it and/or modify it under the terms of the GNU -; General Public License (GPL) as published by the Free Software -; Foundation, in version 2 as it comes in the "COPYING" file of the -; VirtualBox OSE distribution. VirtualBox OSE is distributed in the -; hope that it will be useful, but WITHOUT ANY WARRANTY of any kind. -; -; The contents of this file may alternatively be used under the terms -; of the Common Development and Distribution License Version 1.0 -; (CDDL) only, as it comes in the "COPYING.CDDL" file of the -; VirtualBox OSE distribution, in which case the provisions of the -; CDDL are applicable instead of those of the GPL. -; -; You may elect to license modified versions of this file under the -; terms and conditions of either the GPL or the CDDL or both. -; +; Copyright (C) 2006-2007 Oracle Corporation +; +; This file is part of VirtualBox Open Source Edition (OSE), as +; available from http://www.virtualbox.org. This file is free software; +; you can redistribute it and/or modify it under the terms of the GNU +; General Public License (GPL) as published by the Free Software +; Foundation, in version 2 as it comes in the "COPYING" file of the +; VirtualBox OSE distribution. VirtualBox OSE is distributed in the +; hope that it will be useful, but WITHOUT ANY WARRANTY of any kind. +; +; The contents of this file may alternatively be used under the terms +; of the Common Development and Distribution License Version 1.0 +; (CDDL) only, as it comes in the "COPYING.CDDL" file of the +; VirtualBox OSE distribution, in which case the provisions of the +; CDDL are applicable instead of those of the GPL. +; +; You may elect to license modified versions of this file under the +; terms and conditions of either the GPL or the CDDL or both. +; [Version] Signature="$Windows NT$" diff -Nru virtualbox-4.1.12-dfsg/src/VBox/HostDrivers/Support/win/VBoxSupLib-win.cpp virtualbox-4.1.44-dfsg/src/VBox/HostDrivers/Support/win/VBoxSupLib-win.cpp --- virtualbox-4.1.12-dfsg/src/VBox/HostDrivers/Support/win/VBoxSupLib-win.cpp 1970-01-01 00:00:00.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/HostDrivers/Support/win/VBoxSupLib-win.cpp 2015-11-11 15:08:41.000000000 +0000 @@ -0,0 +1,96 @@ +/* $Id: VBoxSupLib-win.cpp $ */ +/** @file + * IPRT - VBoxSupLib.dll, Windows. + */ + +/* + * Copyright (C) 2006-2012 Oracle Corporation + * + * This file is part of VirtualBox Open Source Edition (OSE), as + * available from http://www.virtualbox.org. This file is free software; + * you can redistribute it and/or modify it under the terms of the GNU + * General Public License (GPL) as published by the Free Software + * Foundation, in version 2 as it comes in the "COPYING" file of the + * VirtualBox OSE distribution. VirtualBox OSE is distributed in the + * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind. + * + * The contents of this file may alternatively be used under the terms + * of the Common Development and Distribution License Version 1.0 + * (CDDL) only, as it comes in the "COPYING.CDDL" file of the + * VirtualBox OSE distribution, in which case the provisions of the + * CDDL are applicable instead of those of the GPL. + * + * You may elect to license modified versions of this file under the + * terms and conditions of either the GPL or the CDDL or both. + */ + + +/******************************************************************************* +* Header Files * +*******************************************************************************/ +#include + +#include + + +/** + * The Dll main entry point. + * @remarks The dllexport is for forcing the linker to generate an import + * library, so the the build system doesn't get confused. + */ +extern "C" __declspec(dllexport) +BOOL __stdcall DllMainEntrypoint(HANDLE hModule, DWORD dwReason, PVOID pvReserved) +{ + switch (dwReason) + { + /* + * Make sure the DLL isn't ever unloaded. + */ + case DLL_PROCESS_ATTACH: + { + WCHAR wszName[RTPATH_MAX]; + SetLastError(NO_ERROR); + if ( GetModuleFileNameW((HMODULE)hModule, wszName, RT_ELEMENTS(wszName)) > 0 + && RtlGetLastWin32Error() == NO_ERROR) + { + int cExtraLoads = 2; + while (cExtraLoads-- > 0) + LoadLibraryW(wszName); + } + break; + } + + case DLL_THREAD_ATTACH: + { +#ifdef VBOX_WITH_HARDENING +# ifndef VBOX_WITHOUT_DEBUGGER_CHECKS + /* + * Anti debugging hack that prevents most debug notifications from + * ending up in the debugger. + */ + NTSTATUS rcNt = NtSetInformationThread(GetCurrentThread(), ThreadHideFromDebugger, NULL, 0); + if (!NT_SUCCESS(rcNt)) + { + __debugbreak(); + return FALSE; + } +# endif +#endif + break; + } + + case DLL_THREAD_DETACH: + /* Nothing to do. */ + break; + + case DLL_PROCESS_DETACH: + /* Nothing to do. */ + break; + + default: + /* ignore */ + break; + } + return TRUE; +} + Binary files /tmp/_RuVdsxfi6/virtualbox-4.1.12-dfsg/src/VBox/HostDrivers/Support/win/winstub.com and /tmp/SOL6sj7OaT/virtualbox-4.1.44-dfsg/src/VBox/HostDrivers/Support/win/winstub.com differ diff -Nru virtualbox-4.1.12-dfsg/src/VBox/HostDrivers/VBoxNetAdp/linux/dkms.conf virtualbox-4.1.44-dfsg/src/VBox/HostDrivers/VBoxNetAdp/linux/dkms.conf --- virtualbox-4.1.12-dfsg/src/VBox/HostDrivers/VBoxNetAdp/linux/dkms.conf 2012-04-02 13:28:48.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/HostDrivers/VBoxNetAdp/linux/dkms.conf 1970-01-01 00:00:00.000000000 +0000 @@ -1,7 +0,0 @@ -BUILT_MODULE_NAME=vboxnetadp -DEST_MODULE_LOCATION=/kernel/misc -PACKAGE_NAME=vboxnetadp -PACKAGE_VERSION=_VERSION_ -AUTOINSTALL=yes -CLEAN="make -C $dkms_tree/$module/$module_version/build clean" -PRE_BUILD="do_Module.symvers vboxdrv restore $dkms_tree/$module/$module_version/build/Module.symvers" diff -Nru virtualbox-4.1.12-dfsg/src/VBox/HostDrivers/VBoxNetAdp/linux/VBoxNetAdp-linux.c virtualbox-4.1.44-dfsg/src/VBox/HostDrivers/VBoxNetAdp/linux/VBoxNetAdp-linux.c --- virtualbox-4.1.12-dfsg/src/VBox/HostDrivers/VBoxNetAdp/linux/VBoxNetAdp-linux.c 2012-04-02 13:28:48.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/HostDrivers/VBoxNetAdp/linux/VBoxNetAdp-linux.c 2015-11-11 15:08:42.000000000 +0000 @@ -183,6 +183,9 @@ /* No need for private data. */ pNetDev = alloc_netdev(sizeof(VBOXNETADPPRIV), pThis->szName[0] ? pThis->szName : VBOXNETADP_LINUX_NAME, +#if LINUX_VERSION_CODE >= KERNEL_VERSION(3, 17, 0) + NET_NAME_UNKNOWN, +#endif vboxNetAdpNetDevInit); if (pNetDev) { diff -Nru virtualbox-4.1.12-dfsg/src/VBox/HostDrivers/VBoxNetAdp/VBoxNetAdpInternal.h virtualbox-4.1.44-dfsg/src/VBox/HostDrivers/VBoxNetAdp/VBoxNetAdpInternal.h --- virtualbox-4.1.12-dfsg/src/VBox/HostDrivers/VBoxNetAdp/VBoxNetAdpInternal.h 2012-04-02 13:28:48.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/HostDrivers/VBoxNetAdp/VBoxNetAdpInternal.h 2015-11-11 15:08:41.000000000 +0000 @@ -29,7 +29,7 @@ /** Pointer to the globals. */ typedef struct VBOXNETADPGLOBALS *PVBOXNETADPGLOBALS; -#define VBOXNETADP_MAX_INSTANCES 8 +#define VBOXNETADP_MAX_INSTANCES 128 #define VBOXNETADP_MAX_UNITS 128 #define VBOXNETADP_NAME "vboxnet" #define VBOXNETADP_MAX_NAME_LEN 32 @@ -125,17 +125,7 @@ /** Union alignment to a pointer. */ void *pvAlign; /** Padding. */ -#if defined(RT_OS_WINDOWS) -# if defined(VBOX_NETFLT_ONDEMAND_BIND) - uint8_t abPadding[192]; -# else - uint8_t abPadding[1024]; -# endif -#elif defined(RT_OS_LINUX) uint8_t abPadding[64]; -#else - uint8_t abPadding[64]; -#endif } u; /** The interface name. */ char szName[VBOXNETADP_MAX_NAME_LEN]; diff -Nru virtualbox-4.1.12-dfsg/src/VBox/HostDrivers/VBoxNetFlt/darwin/VBoxNetFlt-darwin.cpp virtualbox-4.1.44-dfsg/src/VBox/HostDrivers/VBoxNetFlt/darwin/VBoxNetFlt-darwin.cpp --- virtualbox-4.1.12-dfsg/src/VBox/HostDrivers/VBoxNetFlt/darwin/VBoxNetFlt-darwin.cpp 2012-04-02 13:28:48.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/HostDrivers/VBoxNetFlt/darwin/VBoxNetFlt-darwin.cpp 2015-11-11 15:08:42.000000000 +0000 @@ -48,6 +48,7 @@ #include #include #include +#include #include #include #include @@ -58,7 +59,13 @@ #include #include RT_C_DECLS_END + +#include #include +#include +#include +#include +#include #define VBOXNETFLT_OS_SPECFIC 1 #include "../VBoxNetFltInternal.h" @@ -76,6 +83,11 @@ #define VBOXNETFLT_DARWIN_TEST_SEG_SIZE 14 #endif +/* XXX: hidden undef #ifdef __APPLE__ */ +#define VBOX_IN_LOOPBACK(addr) (((addr) & IN_CLASSA_NET) == 0x7f000000) +#define VBOX_IN_LINKLOCAL(addr) (((addr) & IN_CLASSB_NET) == 0xa9fe0000) + + /******************************************************************************* * Internal Functions * @@ -83,6 +95,8 @@ RT_C_DECLS_BEGIN static kern_return_t VBoxNetFltDarwinStart(struct kmod_info *pKModInfo, void *pvData); static kern_return_t VBoxNetFltDarwinStop(struct kmod_info *pKModInfo, void *pvData); + +static void vboxNetFltDarwinSysSockUpcall(socket_t pSysSock, void *pvData, int fWait); RT_C_DECLS_END @@ -1177,13 +1191,313 @@ if (pIfFilter) iflt_detach(pIfFilter); + + if (pThis->u.s.pSysSock != NULL) + { + sock_close(pThis->u.s.pSysSock); + pThis->u.s.pSysSock = NULL; + } } int vboxNetFltOsInitInstance(PVBOXNETFLTINS pThis, void *pvContext) { NOREF(pvContext); - return vboxNetFltDarwinAttachToInterface(pThis, false /* fRediscovery */); + + int rc = vboxNetFltDarwinAttachToInterface(pThis, false /* fRediscovery */); + if (RT_FAILURE(rc)) + return rc; + + if (pThis->pSwitchPort->pfnNotifyHostAddress == NULL) + return rc; + + /* + * XXX: uwe + * + * Learn host's IP addresses and set up notifications for changes. + * To avoid racing, set up notifications first. + * + * XXX: This should probably be global, since the only thing + * specific to ifnet here is its IPv6 link-local address. + */ + errno_t error; + + error = sock_socket(PF_SYSTEM, SOCK_RAW, SYSPROTO_EVENT, + vboxNetFltDarwinSysSockUpcall, pThis, + &pThis->u.s.pSysSock); + if (error != 0) + { + LogRel(("sock_socket(SYSPROTO_EVENT): error %d\n", error)); + return rc; + } + + int nbio = 1; + error = sock_ioctl(pThis->u.s.pSysSock, FIONBIO, &nbio); + if (error != 0) + { + LogRel(("FIONBIO: error %d\n", error)); + sock_close(pThis->u.s.pSysSock); + return rc; + } + + if (!sock_isnonblocking(pThis->u.s.pSysSock)) + { + LogRel(("FIONBIO ok, but socket is blocking?!\n")); + sock_close(pThis->u.s.pSysSock); + return rc; + } + + struct kev_request req; + req.vendor_code = KEV_VENDOR_APPLE; + req.kev_class = KEV_NETWORK_CLASS; + req.kev_subclass = KEV_ANY_SUBCLASS; /* need both INET and INET6, so have to request all */ + + error = sock_ioctl(pThis->u.s.pSysSock, SIOCSKEVFILT, &req); + if (error != 0) + { + LogRel(("SIOCSKEVFILT: error %d\n", error)); + sock_close(pThis->u.s.pSysSock); + return rc; + } + + ifnet_t pIfNet = pThis->u.s.pIfNet; /* already retained */ + + ifaddr_t *pIfAddrList; + error = ifnet_get_address_list(/* all interfaces*/ NULL, &pIfAddrList); + if (error != 0) + { + LogRel(("ifnet_get_address_list: error %d\n", error)); + return rc; + } + + for (ifaddr_t *pIfAddr = pIfAddrList; *pIfAddr != NULL; ++pIfAddr) + { + ifaddr_t ifa = *pIfAddr; + sa_family_t family = ifaddr_address_family(ifa); + struct sockaddr_storage ss; + + error = ifaddr_address(ifa, (struct sockaddr *)&ss, sizeof(ss)); + if (error != 0) + { + LogRel(("getting address family %d: error %d\n", family, error)); + continue; + } + + if (family == AF_INET) + { + struct sockaddr_in *sin = (struct sockaddr_in *)&ss; + u_int32_t u32Addr = ntohl(sin->sin_addr.s_addr); + + if (VBOX_IN_LOOPBACK(u32Addr)) + continue; + + if (ifaddr_ifnet(ifa) != pIfNet && VBOX_IN_LINKLOCAL(u32Addr)) + continue; + + Log(("> inet %RTnaipv4\n", sin->sin_addr.s_addr)); + pThis->pSwitchPort->pfnNotifyHostAddress(pThis->pSwitchPort, + /* :fAdded */ true, kIntNetAddrType_IPv4, &sin->sin_addr); + } + else if (family == AF_INET6) + { + struct sockaddr_in6 *sin6 = (struct sockaddr_in6 *)&ss; + + if (IN6_IS_ADDR_LOOPBACK(&sin6->sin6_addr)) + continue; + + /* link-local from other interfaces are out of scope */ + if (ifaddr_ifnet(ifa) != pIfNet && IN6_IS_ADDR_LINKLOCAL(&sin6->sin6_addr)) + continue; + + Log(("> inet6 %RTnaipv6\n", &sin6->sin6_addr)); + pThis->pSwitchPort->pfnNotifyHostAddress(pThis->pSwitchPort, + /* :fAdded */ true, kIntNetAddrType_IPv6, &sin6->sin6_addr); + } + } + + ifnet_free_address_list(pIfAddrList); + + /* + * Now that we've got current addresses, check for events that + * might have happened while we were working. + */ + vboxNetFltDarwinSysSockUpcall(pThis->u.s.pSysSock, pThis, MBUF_DONTWAIT); + + return rc; +} + + +static void vboxNetFltDarwinSysSockUpcall(socket_t pSysSock, void *pvData, int fWait) +{ + PVBOXNETFLTINS pThis = (PVBOXNETFLTINS)pvData; + errno_t error; + + NOREF(fWait); + + if (RT_UNLIKELY(pSysSock != pThis->u.s.pSysSock)) + { + Log(("vboxNetFltDarwinSysSockUpcall: %p != %p?\n", + pSysSock, pThis->u.s.pSysSock)); + return; + } + + struct net_event_data my_link; + ifnet_t pIfNet = pThis->u.s.pIfNet; /* XXX: retain? */ + ifnet_family_t if_family = ifnet_family(pIfNet); + u_int32_t if_unit = ifnet_unit(pIfNet); + + for (;;) { + mbuf_t m; + size_t len = sizeof(struct kern_event_msg) - sizeof(u_int32_t) + + sizeof(struct kev_in6_data); + + error = sock_receivembuf(pSysSock, NULL, &m, 0, &len); + if (error == EWOULDBLOCK) + { + Log(("vboxNetFltDarwinSysSockUpcall: EWOULDBLOCK - we are done\n")); + error = 0; + break; + } + else if (error != 0) + { + Log(("sock_receivembuf: error %d\n", error)); + break; + } + + if (len < sizeof(struct kern_event_msg) - sizeof(u_int32_t)) + { + Log(("vboxNetFltDarwinSysSockUpcall: %u bytes is too short\n", + (unsigned int)len)); + mbuf_freem(m); + return; + } + + struct kern_event_msg *msg = (struct kern_event_msg *)mbuf_data(m); + if (msg->kev_subclass == KEV_INET_SUBCLASS) + { + if (len - (sizeof(struct kern_event_msg) - sizeof(u_int32_t)) < sizeof(struct kev_in_data)) + { + Log(("vboxNetFltDarwinSysSockUpcall: %u bytes is too short for KEV_INET_SUBCLASS\n", + (unsigned int)len)); + mbuf_freem(m); + return; + } + + struct kev_in_data *iev = (struct kev_in_data *)msg->event_data; + struct net_event_data *link = &iev->link_data; + PCRTNETADDRU pAddr = (PCRTNETADDRU)&iev->ia_addr; + u_int32_t u32Addr = ntohl(pAddr->IPv4.u); + + if (VBOX_IN_LOOPBACK(u32Addr)) + { + mbuf_freem(m); + continue; + } + + if ( (link->if_family != if_family || link->if_unit != if_unit) + && VBOX_IN_LINKLOCAL(u32Addr)) + { + mbuf_freem(m); + continue; + } + + switch (msg->event_code) + { + case KEV_INET_NEW_ADDR: + Log(("KEV_INET_NEW_ADDR %.*s%d: %RTnaipv4\n", + IFNAMSIZ, link->if_name, link->if_unit, pAddr->IPv4.u)); + + pThis->pSwitchPort->pfnNotifyHostAddress(pThis->pSwitchPort, + /* :fAdded */ true, kIntNetAddrType_IPv4, pAddr); + break; + + case KEV_INET_ADDR_DELETED: + Log(("KEV_INET_ADDR_DELETED %.*s%d: %RTnaipv4\n", + IFNAMSIZ, link->if_name, link->if_unit, pAddr->IPv4.u)); + + pThis->pSwitchPort->pfnNotifyHostAddress(pThis->pSwitchPort, + /* :fAdded */ false, kIntNetAddrType_IPv4, pAddr); + break; + + default: + Log(("KEV INET event %u %.*s%d: addr %RTnaipv4\n", + msg->event_code, IFNAMSIZ, link->if_name, link->if_unit, pAddr->IPv4.u)); + break; + } + } + else if (msg->kev_subclass == KEV_INET6_SUBCLASS) + { + if (len - (sizeof(struct kern_event_msg) - sizeof(u_int32_t)) < sizeof(struct kev_in6_data)) + { + Log(("vboxNetFltDarwinSysSockUpcall: %u bytes is too short for KEV_INET6_SUBCLASS\n", + (unsigned int)len)); + mbuf_freem(m); + return; + } + + struct kev_in6_data *iev6 = (struct kev_in6_data *)msg->event_data; + struct net_event_data *link = &iev6->link_data; + PCRTNETADDRU pAddr = (PCRTNETADDRU)&iev6->ia_addr.sin6_addr; + + if (IN6_IS_ADDR_LOOPBACK(&iev6->ia_addr.sin6_addr)) + { + mbuf_freem(m); + continue; + } + + if ( (link->if_family != if_family || link->if_unit != if_unit) + && IN6_IS_ADDR_LINKLOCAL(&iev6->ia_addr.sin6_addr)) + { + mbuf_freem(m); + continue; + } + + + + switch (msg->event_code) + { + case KEV_INET6_NEW_USER_ADDR: + Log(("KEV_INET6_NEW_USER_ADDR %.*s%d: %RTnaipv6\n", + IFNAMSIZ, link->if_name, link->if_unit, pAddr)); + goto kev_inet6_new; + + case KEV_INET6_NEW_LL_ADDR: + Log(("KEV_INET6_NEW_LL_ADDR %.*s%d: %RTnaipv6\n", + IFNAMSIZ, link->if_name, link->if_unit, pAddr)); + goto kev_inet6_new; + + case KEV_INET6_NEW_RTADV_ADDR: + Log(("KEV_INET6_NEW_RTADV_ADDR %.*s%d: %RTnaipv6\n", + IFNAMSIZ, link->if_name, link->if_unit, pAddr)); + goto kev_inet6_new; + + kev_inet6_new: + pThis->pSwitchPort->pfnNotifyHostAddress(pThis->pSwitchPort, + /* :fAdded */ true, kIntNetAddrType_IPv6, pAddr); + break; + + case KEV_INET6_ADDR_DELETED: + Log(("KEV_INET6_ADDR_DELETED %.*s%d: %RTnaipv6\n", + IFNAMSIZ, link->if_name, link->if_unit, pAddr)); + + pThis->pSwitchPort->pfnNotifyHostAddress(pThis->pSwitchPort, + /* :fAdded */ false, kIntNetAddrType_IPv6, pAddr); + break; + + default: + Log(("KEV INET6 event %u %.*s%d: addr %RTnaipv6\n", + msg->event_code, IFNAMSIZ, link->if_name, link->if_unit, pAddr)); + break; + } + } + else + { + Log(("vboxNetFltDarwinSysSockUpcall: subclass %u ignored\n", + (unsigned)msg->kev_subclass)); + } + + mbuf_freem(m); + } } @@ -1197,6 +1511,7 @@ pThis->u.s.fSetPromiscuous = false; pThis->u.s.fNeedSetPromiscuous = false; //pThis->u.s.MacAddr = {0}; + pThis->u.s.pSysSock = NULL; return VINF_SUCCESS; } diff -Nru virtualbox-4.1.12-dfsg/src/VBox/HostDrivers/VBoxNetFlt/linux/dkms.conf virtualbox-4.1.44-dfsg/src/VBox/HostDrivers/VBoxNetFlt/linux/dkms.conf --- virtualbox-4.1.12-dfsg/src/VBox/HostDrivers/VBoxNetFlt/linux/dkms.conf 2012-04-02 13:28:48.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/HostDrivers/VBoxNetFlt/linux/dkms.conf 1970-01-01 00:00:00.000000000 +0000 @@ -1,7 +0,0 @@ -BUILT_MODULE_NAME=vboxnetflt -DEST_MODULE_LOCATION=/kernel/misc -PACKAGE_NAME=vboxnetflt -PACKAGE_VERSION=_VERSION_ -AUTOINSTALL=yes -CLEAN="make -C $dkms_tree/$module/$module_version/build clean" -PRE_BUILD="do_Module.symvers vboxdrv restore $dkms_tree/$module/$module_version/build/Module.symvers" diff -Nru virtualbox-4.1.12-dfsg/src/VBox/HostDrivers/VBoxNetFlt/linux/VBoxNetFlt-linux.c virtualbox-4.1.44-dfsg/src/VBox/HostDrivers/VBoxNetFlt/linux/VBoxNetFlt-linux.c --- virtualbox-4.1.12-dfsg/src/VBox/HostDrivers/VBoxNetFlt/linux/VBoxNetFlt-linux.c 2012-04-02 13:28:48.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/HostDrivers/VBoxNetFlt/linux/VBoxNetFlt-linux.c 2015-11-11 15:08:42.000000000 +0000 @@ -27,7 +27,12 @@ #include #include #include +#include +#include #include +#include +#include +#include #include #include @@ -58,6 +63,12 @@ # endif /* VBOXNETFLT_WITH_QDISC */ #endif +typedef struct VBOXNETFLTNOTIFIER { + struct notifier_block Notifier; + PVBOXNETFLTINS pThis; +} VBOXNETFLTNOTIFIER; +typedef struct VBOXNETFLTNOTIFIER *PVBOXNETFLTNOTIFIER; + /******************************************************************************* * Defined Constants And Macros * @@ -68,6 +79,26 @@ # define VBOX_FLT_XT_TO_INST(pXT) RT_FROM_MEMBER(pXT, VBOXNETFLTINS, u.s.XmitTask) #endif +#if LINUX_VERSION_CODE >= KERNEL_VERSION(3, 11, 0) +# define VBOX_NETDEV_NOTIFIER_INFO_TO_DEV(ptr) netdev_notifier_info_to_dev(ptr) +#else +# define VBOX_NETDEV_NOTIFIER_INFO_TO_DEV(ptr) ((struct net_device *)ptr) +#endif + +#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 34) +# define VBOX_NETDEV_NAME(dev) netdev_name(dev) +#else +# define VBOX_NETDEV_NAME(dev) ((dev)->reg_state != NETREG_REGISTERED ? "(unregistered net_device)" : (dev)->name) +#endif + +#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 25) +# define VBOX_IPV4_IS_LOOPBACK(addr) ipv4_is_loopback(addr) +# define VBOX_IPV4_IS_LINKLOCAL_169(addr) ipv4_is_linklocal_169(addr) +#else +# define VBOX_IPV4_IS_LOOPBACK(addr) ((addr & htonl(IN_CLASSA_NET)) == htonl(0x7f000000)) +# define VBOX_IPV4_IS_LINKLOCAL_169(addr) ((addr & htonl(IN_CLASSB_NET)) == htonl(0xa9fe0000)) +#endif + #if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 22) # define VBOX_SKB_RESET_NETWORK_HDR(skb) skb_reset_network_header(skb) # define VBOX_SKB_RESET_MAC_HDR(skb) skb_reset_mac_header(skb) @@ -1119,6 +1150,59 @@ /** + * Checks whether this SG list contains a GSO packet. + * + * @returns true / false accordingly. + * @param pSG The (scatter/)gather list. + */ +DECLINLINE(bool) vboxNetFltLinuxIsGso(PINTNETSG pSG) +{ +#if defined(VBOXNETFLT_WITH_GSO_XMIT_WIRE) || defined(VBOXNETFLT_WITH_GSO_XMIT_HOST) + return !((PDMNETWORKGSOTYPE)pSG->GsoCtx.u8Type == PDMNETWORKGSOTYPE_INVALID); +#else /* !VBOXNETFLT_WITH_GSO_XMIT_WIRE && !VBOXNETFLT_WITH_GSO_XMIT_HOST */ + return false; +#endif /* !VBOXNETFLT_WITH_GSO_XMIT_WIRE && !VBOXNETFLT_WITH_GSO_XMIT_HOST */ +} + + +/** + * Find out the frame size (of a single segment in case of GSO frames). + * + * @returns the frame size. + * @param pSG The (scatter/)gather list. + */ +DECLINLINE(uint32_t) vboxNetFltLinuxFrameSize(PINTNETSG pSG) +{ + uint16_t u16Type = 0; + uint32_t cbVlanTag = 0; + if (pSG->aSegs[0].cb >= sizeof(RTNETETHERHDR)) + u16Type = RT_BE2H_U16(((PCRTNETETHERHDR)pSG->aSegs[0].pv)->EtherType); + else if (pSG->cbTotal >= sizeof(RTNETETHERHDR)) + { + uint32_t off = RT_OFFSETOF(RTNETETHERHDR, EtherType); + uint32_t i; + for (i = 0; i < pSG->cSegsUsed; ++i) + { + if (off <= pSG->aSegs[i].cb) + { + if (off + sizeof(uint16_t) <= pSG->aSegs[i].cb) + u16Type = RT_BE2H_U16(*(uint16_t *)((uintptr_t)pSG->aSegs[i].pv + off)); + else if (i + 1 < pSG->cSegsUsed) + u16Type = RT_BE2H_U16( ((uint16_t)( ((uint8_t *)pSG->aSegs[i].pv)[off] ) << 8) + + *(uint8_t *)pSG->aSegs[i + 1].pv); /* ASSUMES no empty segments! */ + /* else: frame is too short. */ + break; + } + off -= pSG->aSegs[i].cb; + } + } + if (u16Type == RTNET_ETHERTYPE_VLAN) + cbVlanTag = 4; + return (vboxNetFltLinuxIsGso(pSG) ? (uint32_t)pSG->GsoCtx.cbMaxSeg + pSG->GsoCtx.cbHdrs : pSG->cbTotal) - cbVlanTag; +} + + +/** * Internal worker that create a linux sk_buff for a * (scatter/)gather list. * @@ -1138,6 +1222,17 @@ LogRel(("VBoxNetFlt: Dropped empty packet coming from internal network.\n")); return NULL; } + Log5(("VBoxNetFlt: Packet to %s of %d bytes (frame=%d).\n", fDstWire?"wire":"host", pSG->cbTotal, vboxNetFltLinuxFrameSize(pSG))); + if (fDstWire && (vboxNetFltLinuxFrameSize(pSG) > ASMAtomicReadU32(&pThis->u.s.cbMtu) + 14)) + { + static bool s_fOnce = true; + if (s_fOnce) + { + s_fOnce = false; + printk("VBoxNetFlt: Dropped over-sized packet (%d bytes) coming from internal network.\n", vboxNetFltLinuxFrameSize(pSG)); + } + return NULL; + } /** @todo We should use fragments mapping the SG buffers with large packets. * 256 bytes seems to be the a threshold used a lot for this. It @@ -1362,6 +1457,7 @@ if (pDev != pSkbDev) { Log(("vboxNetFltLinuxPacketHandler: Devices do not match, pThis may be wrong! pThis=%p\n", pThis)); + kfree_skb(pBuf); /* This is a failure, so we use kfree_skb instead of dev_kfree_skb. */ return 0; } @@ -1379,7 +1475,7 @@ * Get rid of fragmented packets, they cause too much trouble. */ struct sk_buff *pCopy = skb_copy(pBuf, GFP_ATOMIC); - kfree_skb(pBuf); + dev_kfree_skb(pBuf); if (!pCopy) { LogRel(("VBoxNetFlt: Failed to allocate packet buffer, dropping the packet.\n")); @@ -2056,6 +2152,8 @@ /* Get the mac address while we still have a valid net_device reference. */ memcpy(&pThis->u.s.MacAddr, pDev->dev_addr, sizeof(pThis->u.s.MacAddr)); + /* Initialize MTU */ + pThis->u.s.cbMtu = pDev->mtu; /* * Install a packet filter for this device with a protocol wildcard (ETH_P_ALL). @@ -2064,6 +2162,8 @@ pThis->u.s.PacketType.dev = pDev; pThis->u.s.PacketType.func = vboxNetFltLinuxPacketHandler; dev_add_pack(&pThis->u.s.PacketType); + ASMAtomicUoWriteBool(&pThis->u.s.fPacketHandler, true); + Log(("vboxNetFltLinuxAttachToInterface: this=%p: Packet handler installed.\n", pThis)); #ifdef VBOXNETFLT_WITH_FILTER_HOST2GUEST_SKBS_EXPERIMENT vboxNetFltLinuxHookDev(pThis, pDev); @@ -2091,7 +2191,6 @@ pDev = NULL; /* don't dereference it */ } RTSpinlockReleaseNoInts(pThis->hSpinlock, &Tmp); - Log(("vboxNetFltLinuxAttachToInterface: this=%p: Packet handler installed.\n", pThis)); /* * If the above succeeded report GSO capabilities, if not undo and @@ -2139,6 +2238,7 @@ static int vboxNetFltLinuxUnregisterDevice(PVBOXNETFLTINS pThis, struct net_device *pDev) { RTSPINLOCKTMP Tmp = RTSPINLOCKTMP_INITIALIZER; + bool fRegistered; Assert(!pThis->fDisconnectedFromHost); @@ -2149,26 +2249,37 @@ vboxNetFltLinuxQdiscRemove(pThis, pDev); #endif /* VBOXNETFLT_WITH_QDISC */ + if (ASMAtomicCmpXchgBool(&pThis->u.s.fPacketHandler, false, true)) + { + dev_remove_pack(&pThis->u.s.PacketType); + Log(("vboxNetFltLinuxUnregisterDevice: this=%p: packet handler removed.\n", pThis)); + } + RTSpinlockAcquireNoInts(pThis->hSpinlock, &Tmp); - ASMAtomicWriteBool(&pThis->u.s.fRegistered, false); - ASMAtomicWriteBool(&pThis->fDisconnectedFromHost, true); - ASMAtomicUoWriteNullPtr(&pThis->u.s.pDev); + fRegistered = ASMAtomicXchgBool(&pThis->u.s.fRegistered, false); + if (fRegistered) + { + ASMAtomicWriteBool(&pThis->fDisconnectedFromHost, true); + ASMAtomicUoWriteNullPtr(&pThis->u.s.pDev); + } RTSpinlockReleaseNoInts(pThis->hSpinlock, &Tmp); - dev_remove_pack(&pThis->u.s.PacketType); + if (fRegistered) + { #ifndef VBOXNETFLT_LINUX_NO_XMIT_QUEUE - skb_queue_purge(&pThis->u.s.XmitQueue); + skb_queue_purge(&pThis->u.s.XmitQueue); #endif - Log(("vboxNetFltLinuxUnregisterDevice: this=%p: Packet handler removed, xmit queue purged.\n", pThis)); - Log(("vboxNetFltLinuxUnregisterDevice: Device %p(%s) released. ref=%d\n", - pDev, pDev->name, + Log(("vboxNetFltLinuxUnregisterDevice: this=%p: xmit queue purged.\n", pThis)); + Log(("vboxNetFltLinuxUnregisterDevice: Device %p(%s) released. ref=%d\n", + pDev, pDev->name, #if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 37) - netdev_refcnt_read(pDev) + netdev_refcnt_read(pDev) #else - atomic_read(&pDev->refcnt) + atomic_read(&pDev->refcnt) #endif - )); - dev_put(pDev); + )); + dev_put(pDev); + } return NOTIFY_OK; } @@ -2204,6 +2315,24 @@ return NOTIFY_OK; } +/** + * Callback for listening to MTU change event. + * + * We need to track changes of host's inteface MTU to discard over-sized frames + * coming from the internal network as they may hang the TX queue of host's + * adapter. + * + * @returns NOTIFY_OK + * @param pThis The netfilter instance. + * @param pDev Pointer to device structure of host's interface. + */ +static int vboxNetFltLinuxDeviceMtuChange(PVBOXNETFLTINS pThis, struct net_device *pDev) +{ + ASMAtomicWriteU32(&pThis->u.s.cbMtu, pDev->mtu); + Log(("vboxNetFltLinuxDeviceMtuChange: set MTU for %s to %d\n", pThis->szName, pDev->mtu)); + return NOTIFY_OK; +} + #ifdef LOG_ENABLED /** Stringify the NETDEV_XXX constants. */ static const char *vboxNetFltLinuxGetNetDevEventName(unsigned long ulEventType) @@ -2245,11 +2374,13 @@ { PVBOXNETFLTINS pThis = VBOX_FLT_NB_TO_INST(self); - struct net_device *pDev = (struct net_device *)ptr; + struct net_device *pMyDev = ASMAtomicUoReadPtrT(&pThis->u.s.pDev, struct net_device *); + struct net_device *pDev = VBOX_NETDEV_NOTIFIER_INFO_TO_DEV(ptr); int rc = NOTIFY_OK; Log(("VBoxNetFlt: got event %s(0x%lx) on %s, pDev=%p pThis=%p pThis->u.s.pDev=%p\n", - vboxNetFltLinuxGetNetDevEventName(ulEventType), ulEventType, pDev->name, pDev, pThis, ASMAtomicUoReadPtrT(&pThis->u.s.pDev, struct net_device *))); + vboxNetFltLinuxGetNetDevEventName(ulEventType), ulEventType, pDev->name, pDev, pThis, pMyDev)); + if ( ulEventType == NETDEV_REGISTER && !strcmp(pDev->name, pThis->szName)) { @@ -2257,8 +2388,7 @@ } else { - pDev = ASMAtomicUoReadPtrT(&pThis->u.s.pDev, struct net_device *); - if (pDev == ptr) + if (pDev == pMyDev) { switch (ulEventType) { @@ -2271,6 +2401,9 @@ case NETDEV_GOING_DOWN: rc = vboxNetFltLinuxDeviceGoingDown(pThis, pDev); break; + case NETDEV_CHANGEMTU: + rc = vboxNetFltLinuxDeviceMtuChange(pThis, pDev); + break; case NETDEV_CHANGENAME: break; #ifdef NETDEV_FEAT_CHANGE @@ -2285,6 +2418,170 @@ return rc; } +/* + * Initial enumeration of netdevs. Called with NETDEV_REGISTER by + * register_netdevice_notifier() under rtnl lock. + */ +static int vboxNetFltLinuxEnumeratorCallback(struct notifier_block *self, unsigned long ulEventType, void *ptr) +{ + PVBOXNETFLTINS pThis = ((PVBOXNETFLTNOTIFIER)self)->pThis; + struct net_device *dev = VBOX_NETDEV_NOTIFIER_INFO_TO_DEV(ptr); + struct in_device *in_dev; + struct inet6_dev *in6_dev; + + if (ulEventType != NETDEV_REGISTER) + return NOTIFY_OK; + + if (RT_UNLIKELY(pThis->pSwitchPort->pfnNotifyHostAddress == NULL)) + return NOTIFY_OK; + + /* + * IPv4 + */ +#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 14) + in_dev = __in_dev_get_rtnl(dev); +#else + in_dev = __in_dev_get(dev); +#endif + if (in_dev != NULL) + { + for_ifa(in_dev) { + if (VBOX_IPV4_IS_LOOPBACK(ifa->ifa_address)) + return NOTIFY_OK; + + if ( dev != pThis->u.s.pDev + && VBOX_IPV4_IS_LINKLOCAL_169(ifa->ifa_address)) + continue; + + Log(("%s: %s: IPv4 addr %RTnaipv4 mask %RTnaipv4\n", + __FUNCTION__, VBOX_NETDEV_NAME(dev), + ifa->ifa_address, ifa->ifa_mask)); + + pThis->pSwitchPort->pfnNotifyHostAddress(pThis->pSwitchPort, + /* :fAdded */ true, kIntNetAddrType_IPv4, &ifa->ifa_address); + } endfor_ifa(in_dev); + } + + /* + * IPv6 + */ + in6_dev = __in6_dev_get(dev); + if (in6_dev != NULL) + { + struct inet6_ifaddr *ifa; + + read_lock_bh(&in6_dev->lock); +#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 35) + list_for_each_entry(ifa, &in6_dev->addr_list, if_list) +#else + for (ifa = in6_dev->addr_list; ifa != NULL; ifa = ifa->if_next) +#endif + { + if ( dev != pThis->u.s.pDev + && ipv6_addr_type(&ifa->addr) & (IPV6_ADDR_LINKLOCAL | IPV6_ADDR_LOOPBACK)) + continue; + + Log(("%s: %s: IPv6 addr %RTnaipv6/%u\n", + __FUNCTION__, VBOX_NETDEV_NAME(dev), + &ifa->addr, (unsigned)ifa->prefix_len)); + + pThis->pSwitchPort->pfnNotifyHostAddress(pThis->pSwitchPort, + /* :fAdded */ true, kIntNetAddrType_IPv6, &ifa->addr); + } + read_unlock_bh(&in6_dev->lock); + } + + return NOTIFY_OK; +} + + +static int vboxNetFltLinuxNotifierIPv4Callback(struct notifier_block *self, unsigned long ulEventType, void *ptr) +{ + PVBOXNETFLTINS pThis = RT_FROM_MEMBER(self, VBOXNETFLTINS, u.s.NotifierIPv4); + struct net_device *pDev, *pEventDev; + struct in_ifaddr *ifa = (struct in_ifaddr *)ptr; + bool fMyDev; + int rc = NOTIFY_OK; + + pDev = vboxNetFltLinuxRetainNetDev(pThis); + pEventDev = ifa->ifa_dev->dev; + fMyDev = (pDev == pEventDev); + Log(("VBoxNetFlt: %s: IPv4 event %s(0x%lx) %s: addr %RTnaipv4 mask %RTnaipv4\n", + pDev ? VBOX_NETDEV_NAME(pDev) : "", + vboxNetFltLinuxGetNetDevEventName(ulEventType), ulEventType, + pEventDev ? VBOX_NETDEV_NAME(pEventDev) : "", + ifa->ifa_address, ifa->ifa_mask)); + + if (pDev != NULL) + vboxNetFltLinuxReleaseNetDev(pThis, pDev); + + if (VBOX_IPV4_IS_LOOPBACK(ifa->ifa_address)) + return NOTIFY_OK; + + if ( !fMyDev + && VBOX_IPV4_IS_LINKLOCAL_169(ifa->ifa_address)) + return NOTIFY_OK; + + if (pThis->pSwitchPort->pfnNotifyHostAddress) + { + bool fAdded; + if (ulEventType == NETDEV_UP) + fAdded = true; + else if (ulEventType == NETDEV_DOWN) + fAdded = false; + else + return NOTIFY_OK; + + pThis->pSwitchPort->pfnNotifyHostAddress(pThis->pSwitchPort, fAdded, + kIntNetAddrType_IPv4, &ifa->ifa_local); + } + + return rc; +} + + +static int vboxNetFltLinuxNotifierIPv6Callback(struct notifier_block *self, unsigned long ulEventType, void *ptr) +{ + PVBOXNETFLTINS pThis = RT_FROM_MEMBER(self, VBOXNETFLTINS, u.s.NotifierIPv6); + struct net_device *pDev, *pEventDev; + struct inet6_ifaddr *ifa = (struct inet6_ifaddr *)ptr; + bool fMyDev; + int rc = NOTIFY_OK; + + pDev = vboxNetFltLinuxRetainNetDev(pThis); + pEventDev = ifa->idev->dev; + fMyDev = (pDev == pEventDev); + Log(("VBoxNetFlt: %s: IPv6 event %s(0x%lx) %s: %RTnaipv6\n", + pDev ? VBOX_NETDEV_NAME(pDev) : "", + vboxNetFltLinuxGetNetDevEventName(ulEventType), ulEventType, + pEventDev ? VBOX_NETDEV_NAME(pEventDev) : "", + &ifa->addr)); + + if (pDev != NULL) + vboxNetFltLinuxReleaseNetDev(pThis, pDev); + + if ( !fMyDev + && ipv6_addr_type(&ifa->addr) & (IPV6_ADDR_LINKLOCAL | IPV6_ADDR_LOOPBACK)) + return NOTIFY_OK; + + if (pThis->pSwitchPort->pfnNotifyHostAddress) + { + bool fAdded; + if (ulEventType == NETDEV_UP) + fAdded = true; + else if (ulEventType == NETDEV_DOWN) + fAdded = false; + else + return NOTIFY_OK; + + pThis->pSwitchPort->pfnNotifyHostAddress(pThis->pSwitchPort, fAdded, + kIntNetAddrType_IPv6, &ifa->addr); + } + + return rc; +} + + bool vboxNetFltOsMaybeRediscovered(PVBOXNETFLTINS pThis) { return !ASMAtomicUoReadBool(&pThis->fDisconnectedFromHost); @@ -2412,7 +2709,11 @@ * Remove packet handler when we get disconnected from internal switch as * we don't want the handler to forward packets to disconnected switch. */ - dev_remove_pack(&pThis->u.s.PacketType); + if (ASMAtomicCmpXchgBool(&pThis->u.s.fPacketHandler, false, true)) + { + dev_remove_pack(&pThis->u.s.PacketType); + Log(("vboxNetFltOsDisconnectIt: this=%p: Packet handler removed.\n", pThis)); + } return VINF_SUCCESS; } @@ -2459,7 +2760,7 @@ RTSpinlockAcquireNoInts(pThis->hSpinlock, &Tmp); pDev = ASMAtomicUoReadPtrT(&pThis->u.s.pDev, struct net_device *); - fRegistered = ASMAtomicUoReadBool(&pThis->u.s.fRegistered); + fRegistered = ASMAtomicXchgBool(&pThis->u.s.fRegistered, false); RTSpinlockReleaseNoInts(pThis->hSpinlock, &Tmp); if (fRegistered) @@ -2469,7 +2770,7 @@ #ifndef VBOXNETFLT_LINUX_NO_XMIT_QUEUE skb_queue_purge(&pThis->u.s.XmitQueue); #endif - Log(("vboxNetFltOsDeleteInstance: this=%p: Packet handler removed, xmit queue purged.\n", pThis)); + Log(("vboxNetFltOsDeleteInstance: this=%p: xmit queue purged.\n", pThis)); Log(("vboxNetFltOsDeleteInstance: Device %p(%s) released. ref=%d\n", pDev, pDev->name, #if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 37) @@ -2480,6 +2781,10 @@ )); dev_put(pDev); } + + unregister_inet6addr_notifier(&pThis->u.s.NotifierIPv6); + unregister_inetaddr_notifier(&pThis->u.s.NotifierIPv4); + Log(("vboxNetFltOsDeleteInstance: this=%p: Notifier removed.\n", pThis)); unregister_netdevice_notifier(&pThis->u.s.Notifier); module_put(THIS_MODULE); @@ -2507,6 +2812,43 @@ || !try_module_get(THIS_MODULE)) return VERR_INTNET_FLT_IF_FAILED; + if (pThis->pSwitchPort->pfnNotifyHostAddress) + { + VBOXNETFLTNOTIFIER Enumerator; + + /* + * register_inetaddr_notifier() and register_inet6addr_notifier() + * do not call the callback for existing devices. Enumerating + * all network devices explicitly is a bit of an ifdef mess, + * so co-opt register_netdevice_notifier() to do that for us. + */ + RT_ZERO(Enumerator); + Enumerator.Notifier.notifier_call = vboxNetFltLinuxEnumeratorCallback; + Enumerator.pThis = pThis; + + err = register_netdevice_notifier(&Enumerator.Notifier); + if (err) + { + LogRel(("%s: failed to enumerate network devices: error %d\n", + __FUNCTION__, err)); + return VINF_SUCCESS; + } + + unregister_netdevice_notifier(&Enumerator.Notifier); + + pThis->u.s.NotifierIPv4.notifier_call = vboxNetFltLinuxNotifierIPv4Callback; + err = register_inetaddr_notifier(&pThis->u.s.NotifierIPv4); + if (err) + LogRel(("%s: failed to register IPv4 notifier: error %d\n", + __FUNCTION__, err)); + + pThis->u.s.NotifierIPv6.notifier_call = vboxNetFltLinuxNotifierIPv6Callback; + err = register_inet6addr_notifier(&pThis->u.s.NotifierIPv6); + if (err) + LogRel(("%s: failed to register IPv6 notifier: error %d\n", + __FUNCTION__, err)); + } + return VINF_SUCCESS; } @@ -2516,8 +2858,9 @@ * Init the linux specific members. */ ASMAtomicUoWriteNullPtr(&pThis->u.s.pDev); - pThis->u.s.fRegistered = false; + pThis->u.s.fRegistered = false; pThis->u.s.fPromiscuousSet = false; + pThis->u.s.fPacketHandler = false; memset(&pThis->u.s.PacketType, 0, sizeof(pThis->u.s.PacketType)); #ifndef VBOXNETFLT_LINUX_NO_XMIT_QUEUE skb_queue_head_init(&pThis->u.s.XmitQueue); diff -Nru virtualbox-4.1.12-dfsg/src/VBox/HostDrivers/VBoxNetFlt/Makefile.kmk virtualbox-4.1.44-dfsg/src/VBox/HostDrivers/VBoxNetFlt/Makefile.kmk --- virtualbox-4.1.12-dfsg/src/VBox/HostDrivers/VBoxNetFlt/Makefile.kmk 2012-04-02 13:28:48.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/HostDrivers/VBoxNetFlt/Makefile.kmk 2015-11-11 15:08:42.000000000 +0000 @@ -58,6 +58,7 @@ $(PATH_SDK_WINDDKWLH_LIB)/ntoskrnl.lib \ $(PATH_SDK_WINDDKWLH_LIB)/hal.lib \ $(PATH_SDK_WINDDKWLH_LIB)/ndis.lib \ + $(PATH_SDK_WINDDKWLH_LIB)/tdi.lib \ $(PATH_STAGE_LIB)/RuntimeR0Drv$(VBOX_SUFF_LIB) VBoxNetFlt_LIBS = \ $(PATH_STAGE_LIB)/SUPR0IdcClient$(VBOX_SUFF_LIB) @@ -314,12 +315,16 @@ # # vboxnetflt(.ko/.o/) - The lower case driver. # Note! On Solaris the name has to be <= 8 chars long. +# The DEBUG_HASH* stuff is for CONFIG_DYNAMIC_DEBUG-enabled kernels # ifdef VBOX_WITH_VBOXDRV SYSMODS += vboxnetflt vboxnetflt_TEMPLATE = VBOXR0DRV vboxnetflt_NAME.solaris = vboxflt - vboxnetflt_DEFS.linux = KBUILD_MODNAME=KBUILD_STR\(vboxnetflt\) KBUILD_BASENAME=KBUILD_STR\(vboxnetflt\) MODULE + vboxnetflt_DEFS.linux = \ + KBUILD_MODNAME=KBUILD_STR\(vboxnetflt\) \ + KBUILD_BASENAME=KBUILD_STR\(vboxnetflt\) \ + MODULE DEBUG_HASH=2 DEBUG_HASH2=3 vboxnetflt_DEFS = IN_RT_R0 vboxnetflt_DEPS.solaris += $(VBOX_SVN_REV_KMK) vboxnetflt_NOINST.linux = true diff -Nru virtualbox-4.1.12-dfsg/src/VBox/HostDrivers/VBoxNetFlt/VBoxNetFltInternal.h virtualbox-4.1.44-dfsg/src/VBox/HostDrivers/VBoxNetFlt/VBoxNetFltInternal.h --- virtualbox-4.1.12-dfsg/src/VBox/HostDrivers/VBoxNetFlt/VBoxNetFltInternal.h 2012-04-02 13:28:48.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/HostDrivers/VBoxNetFlt/VBoxNetFltInternal.h 2015-11-11 15:08:42.000000000 +0000 @@ -153,20 +153,28 @@ bool volatile fSetPromiscuous; /** The MAC address of the interface. */ RTMAC MacAddr; + /** PF_SYSTEM socket to listen for events (XXX: globals?) */ + socket_t pSysSock; /** @} */ # elif defined(RT_OS_LINUX) /** @name Linux instance data * @{ */ /** Pointer to the device. */ struct net_device * volatile pDev; + /** MTU of host's interface. */ + uint32_t cbMtu; /** Whether we've successfully put the interface into to promiscuous mode. * This is for dealing with the ENETDOWN case. */ bool volatile fPromiscuousSet; /** Whether device exists and physically attached. */ bool volatile fRegistered; + /** Whether our packet handler is installed. */ + bool volatile fPacketHandler; /** The MAC address of the interface. */ RTMAC MacAddr; - struct notifier_block Notifier; + struct notifier_block Notifier; /* netdevice */ + struct notifier_block NotifierIPv4; + struct notifier_block NotifierIPv6; struct packet_type PacketType; # ifndef VBOXNETFLT_LINUX_NO_XMIT_QUEUE struct sk_buff_head XmitQueue; diff -Nru virtualbox-4.1.12-dfsg/src/VBox/HostDrivers/VBoxNetFlt/win/cfg/VBoxNetCfg.cpp virtualbox-4.1.44-dfsg/src/VBox/HostDrivers/VBoxNetFlt/win/cfg/VBoxNetCfg.cpp --- virtualbox-4.1.12-dfsg/src/VBox/HostDrivers/VBoxNetFlt/win/cfg/VBoxNetCfg.cpp 2012-04-02 13:28:48.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/HostDrivers/VBoxNetFlt/win/cfg/VBoxNetCfg.cpp 2015-11-11 15:08:42.000000000 +0000 @@ -2045,8 +2045,6 @@ */ -#define NETSHELL_LIBRARY _T("netshell.dll") - /** * Use the IShellFolder API to rename the connection. */ @@ -2094,6 +2092,24 @@ return hr; } +/** + * Loads a system DLL. + * + * @returns Module handle or NULL + * @param pszName The DLL name. + */ +static HMODULE loadSystemDll(const char *pszName) +{ + char szPath[MAX_PATH]; + UINT cchPath = GetSystemDirectoryA(szPath, sizeof(szPath)); + size_t cbName = strlen(pszName) + 1; + if (cchPath + 1 + cbName > sizeof(szPath)) + return NULL; + szPath[cchPath] = '\\'; + memcpy(&szPath[cchPath + 1], pszName, cbName); + return LoadLibraryA(szPath); +} + VBOXNETCFGWIN_DECL(HRESULT) VBoxNetCfgWinRenameConnection (LPWSTR pGuid, PCWSTR NewName) { typedef HRESULT (WINAPI *lpHrRenameConnection) (const GUID *, PCWSTR); @@ -2114,7 +2130,7 @@ status = CLSIDFromString ((LPOLESTR) pGuid, &clsid); if (FAILED(status)) return E_FAIL; - hNetShell = LoadLibrary (NETSHELL_LIBRARY); + hNetShell = loadSystemDll("netshell.dll"); if (hNetShell == NULL) return E_FAIL; RenameConnectionFunc = diff -Nru virtualbox-4.1.12-dfsg/src/VBox/HostDrivers/VBoxNetFlt/win/drv/VBoxNetFltCmn-win.h virtualbox-4.1.44-dfsg/src/VBox/HostDrivers/VBoxNetFlt/win/drv/VBoxNetFltCmn-win.h --- virtualbox-4.1.12-dfsg/src/VBox/HostDrivers/VBoxNetFlt/win/drv/VBoxNetFltCmn-win.h 2012-04-02 13:28:48.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/HostDrivers/VBoxNetFlt/win/drv/VBoxNetFltCmn-win.h 2015-11-11 15:08:42.000000000 +0000 @@ -53,6 +53,7 @@ #include #include #include +#include RT_C_DECLS_BEGIN /* ntddk.h has a missing #pragma pack(), work around it @@ -372,6 +373,12 @@ #ifndef VBOXNETADP /* Protocol info */ VBOXNETFLTGLOBALS_PT Pt; + /** lock protecting the filter list */ + NDIS_SPIN_LOCK lockFilters; + /** the head of filter list */ + RTLISTANCHOR listFilters; + /** IP address change notifier handle */ + HANDLE hNotifier; #endif } VBOXNETFLTGLOBALS_WIN, *PVBOXNETFLTGLOBALS_WIN; @@ -454,6 +461,8 @@ ULONG fSetFilterBuffer; /** packet filter flags set by us */ ULONG fOurSetFilter; + /** our own list of filters, needed by notifier */ + RTLISTNODE node; #else volatile ULONG cTxSuccess; volatile ULONG cRxSuccess; diff -Nru virtualbox-4.1.12-dfsg/src/VBox/HostDrivers/VBoxNetFlt/win/drv/VBoxNetFltRt-win.cpp virtualbox-4.1.44-dfsg/src/VBox/HostDrivers/VBoxNetFlt/win/drv/VBoxNetFltRt-win.cpp --- virtualbox-4.1.12-dfsg/src/VBox/HostDrivers/VBoxNetFlt/win/drv/VBoxNetFltRt-win.cpp 2012-04-02 13:28:48.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/HostDrivers/VBoxNetFlt/win/drv/VBoxNetFltRt-win.cpp 2015-11-11 15:08:42.000000000 +0000 @@ -18,6 +18,11 @@ #include #include +RT_C_DECLS_BEGIN +#include +RT_C_DECLS_END +#include + /** represents the job element of the job queue * see comments for VBOXNETFLT_JOB_QUEUE */ typedef struct VBOXNETFLT_JOB @@ -1678,10 +1683,14 @@ vboxNetFltWinMpDeregister(&g_VBoxNetFltGlobalsWin.Mp); - vboxNetFltWinFiniNetFltBase(); - /* don't use logging or any RT after de-init */ +#ifndef VBOXNETADP + NdisFreeSpinLock(&g_VBoxNetFltGlobalsWin.lockFilters); +#endif /* VBOXNETADP */ LogFlow((__FUNCTION__" <== DO (0x%x)\n", DriverObject)); + + vboxNetFltWinFiniNetFltBase(); + /* don't use logging or any RT after de-init */ } RT_C_DECLS_BEGIN @@ -1729,6 +1738,11 @@ g_VBoxNetFltGlobalsWin.fPacketIsLoopedBack = NDIS_FLAGS_IS_LOOPBACK_PACKET; +#ifndef VBOXNETADP + RTListInit(&g_VBoxNetFltGlobalsWin.listFilters); + NdisAllocateSpinLock(&g_VBoxNetFltGlobalsWin.lockFilters); +#endif + Status = vboxNetFltWinMpRegister(&g_VBoxNetFltGlobalsWin.Mp, DriverObject, RegistryPath); Assert(Status == STATUS_SUCCESS); if (Status == NDIS_STATUS_SUCCESS) @@ -1749,6 +1763,9 @@ //#endif } vboxNetFltWinMpDeregister(&g_VBoxNetFltGlobalsWin.Mp); +#ifndef VBOXNETADP + NdisFreeSpinLock(&g_VBoxNetFltGlobalsWin.lockFilters); +#endif /* VBOXNETADP */ } vboxNetFltWinJobFiniQueue(&g_VBoxJobQueue); } @@ -3276,9 +3293,198 @@ return; } +#ifndef VBOXNETADP + +DECLINLINE(bool) vboxNetFltWinIsAddrLinkLocal4(PCRTNETADDRIPV4 pAddr) +{ + return (pAddr->s.Lo == 0xfea9); /* 169.254 */ +} + +DECLINLINE(bool) vboxNetFltWinIsAddrLinkLocal6(PCRTNETADDRIPV6 pAddr) +{ + return ((pAddr->au8[0] == 0xfe) && ((pAddr->au8[1] & 0xc0) == 0x80)); +} + +void vboxNetFltWinNotifyHostAddress(PTA_ADDRESS pAddress, bool fAdded) +{ + void *pvAddr = NULL; + INTNETADDRTYPE enmAddrType = kIntNetAddrType_Invalid; + + LogFlow(("==>vboxNetFltWinNotifyHostAddress: AddrType=%d %s\n", + pAddress->AddressType, fAdded ? "added" : "deleted")); + if (pAddress->AddressType == TDI_ADDRESS_TYPE_IP) + { + PTDI_ADDRESS_IP pTdiAddrIp = (PTDI_ADDRESS_IP)pAddress->Address; + /* + * Note that we do not get loopback addresses here. If we did we should + * have checked and ignored them too. + */ + if (!vboxNetFltWinIsAddrLinkLocal4((PCRTNETADDRIPV4)(&pTdiAddrIp->in_addr))) + { + pvAddr = &pTdiAddrIp->in_addr; + enmAddrType = kIntNetAddrType_IPv4; + } + else + Log2(("vboxNetFltWinNotifyHostAddress: ignoring link-local address %RTnaipv4\n", + pTdiAddrIp->in_addr)); + } + else if (pAddress->AddressType == TDI_ADDRESS_TYPE_IP6) + { + PTDI_ADDRESS_IP6 pTdiAddrIp6 = (PTDI_ADDRESS_IP6)pAddress->Address; + if (!vboxNetFltWinIsAddrLinkLocal6((PCRTNETADDRIPV6)(pTdiAddrIp6->sin6_addr))) + { + pvAddr = pTdiAddrIp6->sin6_addr; + enmAddrType = kIntNetAddrType_IPv6; + } + else + Log2(("vboxNetFltWinNotifyHostAddress: ignoring link-local address %RTnaipv6\n", + pTdiAddrIp6->sin6_addr)); + } + else + { + Log2(("vboxNetFltWinNotifyHostAddress: ignoring irrelevant address type %d\n", + pAddress->AddressType)); + LogFlow(("<==vboxNetFltWinNotifyHostAddress\n")); + return; + } + if (pvAddr) + { + NdisAcquireSpinLock(&g_VBoxNetFltGlobalsWin.lockFilters); + /* At this point the list must contain at least one element. */ + PVBOXNETFLTWIN pFilter = NULL; + PVBOXNETFLTINS pInstance = NULL; + RTListForEach(&g_VBoxNetFltGlobalsWin.listFilters, pFilter, VBOXNETFLTWIN, node) + { + pInstance = RT_FROM_MEMBER(pFilter, VBOXNETFLTINS, u.s.WinIf); + if (vboxNetFltWinReferenceWinIf(pInstance)) + { + if (pInstance->pSwitchPort && pInstance->pSwitchPort->pfnNotifyHostAddress) + break; + vboxNetFltWinDereferenceWinIf(pInstance); + } + else + Log2(("vboxNetFltWinNotifyHostAddress: failed to retain filter instance %p\n", pInstance)); + pInstance = NULL; + } + NdisReleaseSpinLock(&g_VBoxNetFltGlobalsWin.lockFilters); + if (pInstance) + { + if (enmAddrType == kIntNetAddrType_IPv4) + Log2(("vboxNetFltWin%sAddressHandler: %RTnaipv4\n", + fAdded ? "Add" : "Del", *(PCRTNETADDRIPV4)pvAddr)); + else + Log2(("vboxNetFltWin%sAddressHandler: %RTnaipv6\n", + fAdded ? "Add" : "Del", pvAddr)); + pInstance->pSwitchPort->pfnNotifyHostAddress(pInstance->pSwitchPort, fAdded, + enmAddrType, pvAddr); + vboxNetFltWinDereferenceWinIf(pInstance); + } + else + Log2(("vboxNetFltWinNotifyHostAddress: no filters require notification\n")); + } + LogFlow(("<==vboxNetFltWinNotifyHostAddress\n")); +} + +void vboxNetFltWinAddAddressHandler(PTA_ADDRESS Address, + PUNICODE_STRING DeviceName, + PTDI_PNP_CONTEXT Context) +{ + vboxNetFltWinNotifyHostAddress(Address, true); +} + +void vboxNetFltWinDelAddressHandler(PTA_ADDRESS Address, + PUNICODE_STRING DeviceName, + PTDI_PNP_CONTEXT Context) +{ + vboxNetFltWinNotifyHostAddress(Address, false); +} + +void vboxNetFltWinRegisterIpAddrNotifier(PVBOXNETFLTINS pThis) +{ + LogFlow(("==>vboxNetFltWinRegisterIpAddrNotifier: instance=%p pThis->pSwitchPort=%p pThis->pSwitchPort->pfnNotifyHostAddress=%p\n", + pThis, pThis->pSwitchPort, pThis->pSwitchPort ? pThis->pSwitchPort->pfnNotifyHostAddress : NULL)); + if (pThis->pSwitchPort && pThis->pSwitchPort->pfnNotifyHostAddress) + { + NdisAcquireSpinLock(&g_VBoxNetFltGlobalsWin.lockFilters); + bool fRegisterHandlers = RTListIsEmpty(&g_VBoxNetFltGlobalsWin.listFilters); + RTListPrepend(&g_VBoxNetFltGlobalsWin.listFilters, &pThis->u.s.WinIf.node); + NdisReleaseSpinLock(&g_VBoxNetFltGlobalsWin.lockFilters); + + if (fRegisterHandlers) + { + TDI_CLIENT_INTERFACE_INFO Info; + UNICODE_STRING ClientName = RTL_CONSTANT_STRING(L"VBoxNetFlt"); + memset(&Info, 0, sizeof(Info)); + Info.MajorTdiVersion = 2; + Info.MinorTdiVersion = 0; + Info.ClientName = &ClientName; + Info.AddAddressHandlerV2 = vboxNetFltWinAddAddressHandler; + Info.DelAddressHandlerV2 = vboxNetFltWinDelAddressHandler; + Assert(!g_VBoxNetFltGlobalsWin.hNotifier); + NTSTATUS Status = TdiRegisterPnPHandlers(&Info, sizeof(Info), &g_VBoxNetFltGlobalsWin.hNotifier); + Log2(("vboxNetFltWinRegisterIpAddrNotifier: TdiRegisterPnPHandlers returned %d\n", Status)); + } + else + Log2(("vboxNetFltWinRegisterIpAddrNotifier: already registed\n")); + } + else + Log2(("vboxNetFltWinRegisterIpAddrNotifier: this instance does not require notifications, ignoring...\n")); + LogFlow(("<==vboxNetFltWinRegisterIpAddrNotifier: notifier=%p\n", g_VBoxNetFltGlobalsWin.hNotifier)); +} + +void vboxNetFltWinUnregisterIpAddrNotifier(PVBOXNETFLTINS pThis) +{ + LogFlow(("==>vboxNetFltWinUnregisterIpAddrNotifier: notifier=%p\n", g_VBoxNetFltGlobalsWin.hNotifier)); + if (pThis->pSwitchPort && pThis->pSwitchPort->pfnNotifyHostAddress) + { + NdisAcquireSpinLock(&g_VBoxNetFltGlobalsWin.lockFilters); + /* At this point the list must contain at least one element. */ + Assert(!RTListIsEmpty(&g_VBoxNetFltGlobalsWin.listFilters)); + RTListNodeRemove(&pThis->u.s.WinIf.node); + HANDLE hNotifier = NULL; + if (RTListIsEmpty(&g_VBoxNetFltGlobalsWin.listFilters)) + { + /* + * The list has become empty, so we need to deregister handlers. We + * grab hNotifier and reset it while still holding the lock. This + * guaranties that we won't interfere with setting it in + * vboxNetFltWinRegisterIpAddrNotifier(). It is inconceivable that + * vboxNetFltWinUnregisterIpAddrNotifier() will be called for the + * same filter instance while it is still being processed by + * vboxNetFltWinRegisterIpAddrNotifier(). This would require trunk + * destruction in the middle of its creation. It is possible that + * vboxNetFltWinUnregisterIpAddrNotifier() is called for another + * filter instance, but in such case we won't even get here as the + * list won't be empty. + */ + hNotifier = g_VBoxNetFltGlobalsWin.hNotifier; + g_VBoxNetFltGlobalsWin.hNotifier = NULL; + } + NdisReleaseSpinLock(&g_VBoxNetFltGlobalsWin.lockFilters); + if (hNotifier) + { + NTSTATUS Status = TdiDeregisterPnPHandlers(hNotifier); + Log2(("vboxNetFltWinUnregisterIpAddrNotifier: TdiDeregisterPnPHandlers(%p) returned %d\n", + hNotifier, Status)); + } + else + Log2(("vboxNetFltWinUnregisterIpAddrNotifier: filters remain, do not deregister handlers yet\n")); + } + else + Log2(("vboxNetFltWinUnregisterIpAddrNotifier: this instance did not require notifications, ignoring...\n")); + LogFlow(("<==vboxNetFltWinUnregisterIpAddrNotifier\n")); +} +#else /* VBOXNETADP */ +#define vboxNetFltWinRegisterIpAddrNotifier(x) +#define vboxNetFltWinUnregisterIpAddrNotifier(x) +#endif /* VBOXNETADP */ + int vboxNetFltOsDisconnectIt(PVBOXNETFLTINS pThis) { NDIS_STATUS Status = vboxNetFltWinDisconnectIt(pThis); + Log2(("vboxNetFltOsDisconnectIt: pThis=%p pThis->pSwitchPort=%p pThis->pSwitchPort->pfnNotifyHostAddress=%p\n", + pThis, pThis->pSwitchPort, pThis->pSwitchPort ? pThis->pSwitchPort->pfnNotifyHostAddress : NULL)); + vboxNetFltWinUnregisterIpAddrNotifier(pThis); return Status == NDIS_STATUS_SUCCESS ? VINF_SUCCESS : VERR_GENERAL_FAILURE; } @@ -3344,6 +3550,9 @@ int vboxNetFltOsConnectIt(PVBOXNETFLTINS pThis) { + Log2(("vboxNetFltOsConnectIt: pThis=%p pThis->pSwitchPort=%p pThis->pSwitchPort->pfnNotifyHostAddress=%p\n", + pThis, pThis->pSwitchPort, pThis->pSwitchPort ? pThis->pSwitchPort->pfnNotifyHostAddress : NULL)); + vboxNetFltWinRegisterIpAddrNotifier(pThis); return vboxNetFltWinConnectIt(pThis); } diff -Nru virtualbox-4.1.12-dfsg/src/VBox/HostDrivers/VBoxPci/linux/dkms.conf virtualbox-4.1.44-dfsg/src/VBox/HostDrivers/VBoxPci/linux/dkms.conf --- virtualbox-4.1.12-dfsg/src/VBox/HostDrivers/VBoxPci/linux/dkms.conf 2012-04-02 13:28:48.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/HostDrivers/VBoxPci/linux/dkms.conf 1970-01-01 00:00:00.000000000 +0000 @@ -1,7 +0,0 @@ -BUILT_MODULE_NAME=vboxpci -DEST_MODULE_LOCATION=/kernel/misc -PACKAGE_NAME=vboxpci -PACKAGE_VERSION=_VERSION_ -AUTOINSTALL=yes -CLEAN="make -C $dkms_tree/$module/$module_version/build clean" -PRE_BUILD="do_Module.symvers vboxdrv restore $dkms_tree/$module/$module_version/build/Module.symvers" diff -Nru virtualbox-4.1.12-dfsg/src/VBox/HostDrivers/VBoxPci/linux/VBoxPci-linux.c virtualbox-4.1.44-dfsg/src/VBox/HostDrivers/VBoxPci/linux/VBoxPci-linux.c --- virtualbox-4.1.12-dfsg/src/VBox/HostDrivers/VBoxPci/linux/VBoxPci-linux.c 2012-04-02 13:28:48.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/HostDrivers/VBoxPci/linux/VBoxPci-linux.c 2015-11-11 15:08:42.000000000 +0000 @@ -429,7 +429,11 @@ if (!pNewCreds) goto done; +# if LINUX_VERSION_CODE >= KERNEL_VERSION(3, 5, 0) + pNewCreds->fsuid = GLOBAL_ROOT_UID; +# else pNewCreds->fsuid = 0; +# endif pOldCreds = override_creds(pNewCreds); #endif @@ -539,7 +543,11 @@ if (!pNewCreds) goto done; +# if LINUX_VERSION_CODE >= KERNEL_VERSION(3, 5, 0) + pNewCreds->fsuid = GLOBAL_ROOT_UID; +# else pNewCreds->fsuid = 0; +# endif pOldCreds = override_creds(pNewCreds); #endif RTStrPrintf(szFileBuf, cMaxBuf, diff -Nru virtualbox-4.1.12-dfsg/src/VBox/HostDrivers/VBoxPci/VBoxPciInternal.h virtualbox-4.1.44-dfsg/src/VBox/HostDrivers/VBoxPci/VBoxPciInternal.h --- virtualbox-4.1.12-dfsg/src/VBox/HostDrivers/VBoxPci/VBoxPciInternal.h 2012-04-02 13:28:48.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/HostDrivers/VBoxPci/VBoxPciInternal.h 2015-11-11 15:08:42.000000000 +0000 @@ -25,7 +25,7 @@ #ifdef RT_OS_LINUX -#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 35) +#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 35) && defined(CONFIG_IOMMU_API) # define VBOX_WITH_IOMMU #endif diff -Nru virtualbox-4.1.12-dfsg/src/VBox/HostDrivers/VBoxUSB/win/dev/VBoxUsbDev.h virtualbox-4.1.44-dfsg/src/VBox/HostDrivers/VBoxUSB/win/dev/VBoxUsbDev.h --- virtualbox-4.1.12-dfsg/src/VBox/HostDrivers/VBoxUSB/win/dev/VBoxUsbDev.h 2012-04-02 13:28:49.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/HostDrivers/VBoxUSB/win/dev/VBoxUsbDev.h 2015-11-11 15:08:43.000000000 +0000 @@ -191,7 +191,14 @@ static DECLHIDDEN(VOID) vboxUsbDdiStateWaitOtherCompleted(PVBOXUSBDEV_EXT pDevExt) { - VBoxDrvToolRefWaitEqual(&pDevExt->DdiState.Ref, 2); + /* Earlier we assumed that 1 request will be pending while we service + Device Power IRP which was leading to host hang when USB is connected + to VM. + With debugging found that at the point when host goes to sleep + state and USB is connected to VM, two Power IRP requests are pending : + One for SYSTEM and other for DEVICE. + */ + VBoxDrvToolRefWaitEqual(&pDevExt->DdiState.Ref, 3); } #endif /* #ifndef ___VBoxUsbDev_h___ */ diff -Nru virtualbox-4.1.12-dfsg/src/VBox/HostDrivers/VBoxUSB/win/dev/VBoxUsbRt.cpp virtualbox-4.1.44-dfsg/src/VBox/HostDrivers/VBoxUSB/win/dev/VBoxUsbRt.cpp --- virtualbox-4.1.12-dfsg/src/VBox/HostDrivers/VBoxUSB/win/dev/VBoxUsbRt.cpp 2012-04-02 13:28:49.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/HostDrivers/VBoxUSB/win/dev/VBoxUsbRt.cpp 2015-11-11 15:08:43.000000000 +0000 @@ -1327,7 +1327,7 @@ pUrb->UrbIsochronousTransfer.UrbLink = 0; Assert(pUrbInfo->numIsoPkts == pUrb->UrbIsochronousTransfer.NumberOfPackets); - for (ULONG i = 0; i = pUrbInfo->numIsoPkts; ++i) + for (ULONG i = 0; i < pUrbInfo->numIsoPkts; ++i) { pUrb->UrbIsochronousTransfer.IsoPacket[i].Offset = pUrbInfo->aIsoPkts[i].off; pUrb->UrbIsochronousTransfer.IsoPacket[i].Length = pUrbInfo->aIsoPkts[i].cb; diff -Nru virtualbox-4.1.12-dfsg/src/VBox/HostDrivers/VBoxUSB/win/mon/VBoxUsbMon.cpp virtualbox-4.1.44-dfsg/src/VBox/HostDrivers/VBoxUSB/win/mon/VBoxUsbMon.cpp --- virtualbox-4.1.12-dfsg/src/VBox/HostDrivers/VBoxUSB/win/mon/VBoxUsbMon.cpp 2012-04-02 13:28:49.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/HostDrivers/VBoxUSB/win/mon/VBoxUsbMon.cpp 2015-11-11 15:08:43.000000000 +0000 @@ -61,10 +61,29 @@ VBOXUSBHOOK_REQUEST Rq; } VBOXUSBHUB_PNPHOOK_COMPLETION, *PVBOXUSBHUB_PNPHOOK_COMPLETION; +/* + * Comment out VBOX_USB3PORT definition to disable hooking to multiple drivers (#6509) + */ +#define VBOX_USB3PORT + +#ifdef VBOX_USB3PORT +#define VBOXUSBMON_MAXDRIVERS 3 +typedef struct VBOXUSB_PNPDRIVER +{ + PDRIVER_OBJECT DriverObject; + VBOXUSBHUB_PNPHOOK UsbHubPnPHook; + PDRIVER_DISPATCH pfnHookStub; +} VBOXUSB_PNPDRIVER, *PVBOXUSB_PNPDRIVER; +#endif /* !VBOX_USB3PORT */ + typedef struct VBOXUSBMONGLOBALS { PDEVICE_OBJECT pDevObj; +#ifdef VBOX_USB3PORT + VBOXUSB_PNPDRIVER pDrivers[VBOXUSBMON_MAXDRIVERS]; +#else /* !VBOX_USB3PORT */ VBOXUSBHUB_PNPHOOK UsbHubPnPHook; +#endif /* !VBOX_USB3PORT */ KEVENT OpenSynchEvent; IO_REMOVE_LOCK RmLock; uint32_t cOpens; @@ -509,6 +528,7 @@ VOID vboxUsbMonHubDevWalk(PFNVBOXUSBMONDEVWALKER pfnWalker, PVOID pvWalker, ULONG fFlags) { NTSTATUS Status = STATUS_UNSUCCESSFUL; +#ifndef VBOX_USB3PORT UNICODE_STRING szStandardHubName; PDRIVER_OBJECT pDrvObj = NULL; szStandardHubName.Length = 0; @@ -586,6 +606,43 @@ WARN(("RtlAnsiStringToUnicodeString failed, Status (0x%x) for Ansu name (%s)", Status, szHubName)); } } +#else /* VBOX_USB3PORT */ + PWSTR szwHubList; + Status = IoGetDeviceInterfaces(&GUID_DEVINTERFACE_USB_HUB, NULL, 0, &szwHubList); + if (Status != STATUS_SUCCESS) + { + LOG(("IoGetDeviceInterfaces failed with %d\n", Status)); + return; + } + if (szwHubList) + { + UNICODE_STRING UnicodeName; + PDEVICE_OBJECT pHubDevObj; + PFILE_OBJECT pHubFileObj; + PWSTR szwHubName = szwHubList; + while (*szwHubName != UNICODE_NULL) + { + RtlInitUnicodeString(&UnicodeName, szwHubName); + Status = IoGetDeviceObjectPointer(&UnicodeName, FILE_READ_DATA, &pHubFileObj, &pHubDevObj); + if (Status == STATUS_SUCCESS) + { + /** @todo Replace %S with something else as it does not work for PWSTR. */ + LOG(("IoGetDeviceObjectPointer for %S returned %p %p", szwHubName, pHubDevObj, pHubFileObj)); + if (!pfnWalker(pHubFileObj, pHubDevObj, pHubDevObj, pvWalker)) + { + LOG(("the walker said to stop")); + ObDereferenceObject(pHubFileObj); + break; + } + + LOG(("going forward..")); + ObDereferenceObject(pHubFileObj); + } + szwHubName += wcslen(szwHubName) + 1; + } + ExFreePool(szwHubList); + } +#endif /* VBOX_USB3PORT */ } typedef struct VBOXUSBMONFINDHUBWALKER @@ -996,7 +1053,12 @@ #ifdef DEBUG_misha NTSTATUS tmpStatus = pIrp->IoStatus.Status; #endif - NTSTATUS Status = VBoxUsbHookRequestComplete(&g_VBoxUsbMonGlobals.UsbHubPnPHook.Hook, pDevObj, pIrp, pRequest); +#ifdef VBOX_USB3PORT + PVBOXUSBHOOK_ENTRY pHook = pRequest->pHook; +#else /* !VBOX_USB3PORT */ + PVBOXUSBHOOK_ENTRY pHook = &g_VBoxUsbMonGlobals.UsbHubPnPHook.Hook; +#endif /* !VBOX_USB3PORT */ + NTSTATUS Status = VBoxUsbHookRequestComplete(pHook, pDevObj, pIrp, pRequest); VBoxUsbMonMemFree(pRequest); #ifdef DEBUG_misha if (Status != STATUS_MORE_PROCESSING_REQUIRED) @@ -1004,7 +1066,7 @@ Assert(pIrp->IoStatus.Status == tmpStatus); } #endif - VBoxUsbHookRelease(&g_VBoxUsbMonGlobals.UsbHubPnPHook.Hook); + VBoxUsbHookRelease(pHook); return Status; } @@ -1014,33 +1076,40 @@ * @param pDevObj Device object. * @param pIrp Request packet. */ +#ifdef VBOX_USB3PORT +static NTSTATUS vboxUsbMonPnPHook(IN PVBOXUSBHOOK_ENTRY pHook, IN PDEVICE_OBJECT pDevObj, IN PIRP pIrp) +#else /* !VBOX_USB3PORT */ NTSTATUS _stdcall VBoxUsbMonPnPHook(IN PDEVICE_OBJECT pDevObj, IN PIRP pIrp) +#endif /* !VBOX_USB3PORT */ { +#ifndef VBOX_USB3PORT + PVBOXUSBHOOK_ENTRY pHook = &g_VBoxUsbMonGlobals.UsbHubPnPHook.Hook; +#endif /* !VBOX_USB3PORT */ LOG(("==>PnP: Mn(%s), PDO(0x%p), IRP(0x%p), Status(0x%x)", vboxUsbDbgStrPnPMn(IoGetCurrentIrpStackLocation(pIrp)->MinorFunction), pDevObj, pIrp, pIrp->IoStatus.Status)); - if(!VBoxUsbHookRetain(&g_VBoxUsbMonGlobals.UsbHubPnPHook.Hook)) + if(!VBoxUsbHookRetain(pHook)) { WARN(("VBoxUsbHookRetain failed")); - return VBoxUsbHookRequestPassDownHookSkip(&g_VBoxUsbMonGlobals.UsbHubPnPHook.Hook, pDevObj, pIrp); + return VBoxUsbHookRequestPassDownHookSkip(pHook, pDevObj, pIrp); } PVBOXUSBHUB_PNPHOOK_COMPLETION pCompletion = (PVBOXUSBHUB_PNPHOOK_COMPLETION)VBoxUsbMonMemAlloc(sizeof (*pCompletion)); if (!pCompletion) { WARN(("VBoxUsbMonMemAlloc failed")); - VBoxUsbHookRelease(&g_VBoxUsbMonGlobals.UsbHubPnPHook.Hook); + VBoxUsbHookRelease(pHook); pIrp->IoStatus.Status = STATUS_INSUFFICIENT_RESOURCES; pIrp->IoStatus.Information = 0; IoCompleteRequest(pIrp, IO_NO_INCREMENT); return STATUS_INSUFFICIENT_RESOURCES; } - NTSTATUS Status = VBoxUsbHookRequestPassDownHookCompletion(&g_VBoxUsbMonGlobals.UsbHubPnPHook.Hook, pDevObj, pIrp, VBoxUsbPnPCompletion, &pCompletion->Rq); + NTSTATUS Status = VBoxUsbHookRequestPassDownHookCompletion(pHook, pDevObj, pIrp, VBoxUsbPnPCompletion, &pCompletion->Rq); #ifdef VBOX_USB_WITH_VERBOSE_LOGGING if (Status != STATUS_PENDING) { LOG(("Request completed, Status(0x%x)", Status)); - VBoxUsbHookVerifyCompletion(&g_VBoxUsbMonGlobals.UsbHubPnPHook.Hook, &pCompletion->Rq, pIrp); + VBoxUsbHookVerifyCompletion(pHook, &pCompletion->Rq, pIrp); } else { @@ -1050,6 +1119,79 @@ return Status; } +#ifdef VBOX_USB3PORT +/** + * Device PnP hook stubs. + * + * @param pDevObj Device object. + * @param pIrp Request packet. + */ +#define VBOX_PNPHOOKSTUB(n) NTSTATUS _stdcall VBoxUsbMonPnPHook##n(IN PDEVICE_OBJECT pDevObj, IN PIRP pIrp) \ +{ \ + return vboxUsbMonPnPHook(&g_VBoxUsbMonGlobals.pDrivers[n].UsbHubPnPHook.Hook, pDevObj, pIrp); \ +} + +#define VBOX_PNPHOOKSTUB_INIT(n) g_VBoxUsbMonGlobals.pDrivers[n].pfnHookStub = VBoxUsbMonPnPHook##n + +VBOX_PNPHOOKSTUB(0) +VBOX_PNPHOOKSTUB(1) +VBOX_PNPHOOKSTUB(2) +AssertCompile(VBOXUSBMON_MAXDRIVERS == 3); + +typedef struct VBOXUSBMONHOOKDRIVERWALKER +{ + PDRIVER_OBJECT pDrvObj; +} VBOXUSBMONHOOKDRIVERWALKER, *PVBOXUSBMONHOOKDRIVERWALKER; + +static DECLCALLBACK(BOOLEAN) vboxUsbMonHookDrvObjWalker(PFILE_OBJECT pFile, PDEVICE_OBJECT pTopDo, PDEVICE_OBJECT pHubDo, PVOID pvContext) +{ + PDRIVER_OBJECT pDrvObj = pHubDo->DriverObject; + + /* First we try to figure out if we are already hooked to this driver. */ + for (int i = 0; i < VBOXUSBMON_MAXDRIVERS; i++) + if (pDrvObj == g_VBoxUsbMonGlobals.pDrivers[i].DriverObject) + { + LOG(("Found %p at pDrivers[%d]\n", pDrvObj, i)); + /* We've already hooked to this one -- nothing to do. */ + return TRUE; + } + /* We are not hooked yet, find an empty slot. */ + for (int i = 0; i < VBOXUSBMON_MAXDRIVERS; i++) + { + if (!g_VBoxUsbMonGlobals.pDrivers[i].DriverObject) + { + /* Found an emtpy slot, use it. */ + g_VBoxUsbMonGlobals.pDrivers[i].DriverObject = pDrvObj; + ObReferenceObject(pDrvObj); + LOG(("pDrivers[%d] = %p, installing the hook...\n", i, pDrvObj)); + VBoxUsbHookInit(&g_VBoxUsbMonGlobals.pDrivers[i].UsbHubPnPHook.Hook, + pDrvObj, + IRP_MJ_PNP, + g_VBoxUsbMonGlobals.pDrivers[i].pfnHookStub); + VBoxUsbHookInstall(&g_VBoxUsbMonGlobals.pDrivers[i].UsbHubPnPHook.Hook); + return TRUE; /* Must continue to find all drivers. */ + } + if (pDrvObj == g_VBoxUsbMonGlobals.pDrivers[i].DriverObject) + { + LOG(("Found %p at pDrivers[%d]\n", pDrvObj, i)); + /* We've already hooked to this one -- nothing to do. */ + return TRUE; + } + } + /* No empty slots! No reason to continue. */ + LOG(("No empty slots!\n")); + return FALSE; +} + +/** + * Finds all USB drivers in the system and installs hooks if haven't done already. + */ +static NTSTATUS vboxUsbMonInstallAllHooks() +{ + vboxUsbMonHubDevWalk(vboxUsbMonHookDrvObjWalker, NULL, VBOXUSBMONHUBWALK_F_ALL); + return STATUS_SUCCESS; +} +#endif /* VBOX_USB3PORT */ static NTSTATUS vboxUsbMonHookCheckInit() { @@ -1059,6 +1201,9 @@ LOG(("hook inited already, success")); return STATUS_SUCCESS; } +#ifdef VBOX_USB3PORT + return vboxUsbMonInstallAllHooks(); +#else /* !VBOX_USB3PORT */ PDRIVER_OBJECT pDrvObj = vboxUsbMonHookFindHubDrvObj(); if (pDrvObj) { @@ -1069,10 +1214,15 @@ } WARN(("hub drv obj not found, fail")); return STATUS_UNSUCCESSFUL; +#endif /* !VBOX_USB3PORT */ } static NTSTATUS vboxUsbMonHookInstall() { +#ifdef VBOX_USB3PORT + /* Nothing to do here as we have already installed all hooks in vboxUsbMonHookCheckInit(). */ + return STATUS_SUCCESS; +#else /* !VBOX_USB3PORT */ #ifdef VBOXUSBMON_DBG_NO_PNPHOOK return STATUS_SUCCESS; #else @@ -1083,6 +1233,7 @@ } return VBoxUsbHookInstall(&g_VBoxUsbMonGlobals.UsbHubPnPHook.Hook); #endif +#endif /* !VBOX_USB3PORT */ } static NTSTATUS vboxUsbMonHookUninstall() @@ -1090,12 +1241,42 @@ #ifdef VBOXUSBMON_DBG_NO_PNPHOOK return STATUS_SUCCESS; #else +#ifdef VBOX_USB3PORT + NTSTATUS Status = STATUS_SUCCESS; + for (int i = 0; i < VBOXUSBMON_MAXDRIVERS; i++) + { + if (g_VBoxUsbMonGlobals.pDrivers[i].DriverObject) + { + Assert(g_VBoxUsbMonGlobals.pDrivers[i].DriverObject == g_VBoxUsbMonGlobals.pDrivers[i].UsbHubPnPHook.Hook.pDrvObj); + LOG(("Unhooking from %p...\n", g_VBoxUsbMonGlobals.pDrivers[i].DriverObject)); + Status = VBoxUsbHookUninstall(&g_VBoxUsbMonGlobals.pDrivers[i].UsbHubPnPHook.Hook); + if (!NT_SUCCESS(Status)) + { + /* + * We failed to uninstall the hook, so we keep the reference to the driver + * in order to prevent another driver re-using this slot because we are + * going to mark this hook as fUninitFailed. + */ + //AssertMsgFailed(("usbhub pnp unhook failed, setting the fUninitFailed flag, the current value of fUninitFailed (%d)", g_VBoxUsbMonGlobals.UsbHubPnPHook.fUninitFailed)); + LOG(("usbhub pnp unhook failed, setting the fUninitFailed flag, the current value of fUninitFailed (%d)", g_VBoxUsbMonGlobals.pDrivers[i].UsbHubPnPHook.fUninitFailed)); + g_VBoxUsbMonGlobals.pDrivers[i].UsbHubPnPHook.fUninitFailed = true; + } + else + { + /* The hook was removed successfully, now we can forget about this driver. */ + ObDereferenceObject(g_VBoxUsbMonGlobals.pDrivers[i].DriverObject); + g_VBoxUsbMonGlobals.pDrivers[i].DriverObject = NULL; + } + } + } +#else /* !VBOX_USB3PORT */ NTSTATUS Status = VBoxUsbHookUninstall(&g_VBoxUsbMonGlobals.UsbHubPnPHook.Hook); if (!NT_SUCCESS(Status)) { AssertMsgFailed(("usbhub pnp unhook failed, setting the fUninitFailed flag, the current value of fUninitFailed (%d)", g_VBoxUsbMonGlobals.UsbHubPnPHook.fUninitFailed)); g_VBoxUsbMonGlobals.UsbHubPnPHook.fUninitFailed = true; } +#endif /* !VBOX_USB3PORT */ return Status; #endif } @@ -1674,6 +1855,12 @@ LOGREL(("Built %s %s", __DATE__, __TIME__)); memset (&g_VBoxUsbMonGlobals, 0, sizeof (g_VBoxUsbMonGlobals)); +#ifdef VBOX_USB3PORT + VBOX_PNPHOOKSTUB_INIT(0); + VBOX_PNPHOOKSTUB_INIT(1); + VBOX_PNPHOOKSTUB_INIT(2); + AssertCompile(VBOXUSBMON_MAXDRIVERS == 3); +#endif /* VBOX_USB3PORT */ KeInitializeEvent(&g_VBoxUsbMonGlobals.OpenSynchEvent, SynchronizationEvent, TRUE /* signaled */); IoInitializeRemoveLock(&g_VBoxUsbMonGlobals.RmLock, VBOXUSBMON_MEMTAG, 1, 100); UNICODE_STRING DevName; diff -Nru virtualbox-4.1.12-dfsg/src/VBox/HostDrivers/win/cfg/VBoxDrvCfg.cpp virtualbox-4.1.44-dfsg/src/VBox/HostDrivers/win/cfg/VBoxDrvCfg.cpp --- virtualbox-4.1.12-dfsg/src/VBox/HostDrivers/win/cfg/VBoxDrvCfg.cpp 2012-04-02 13:28:49.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/HostDrivers/win/cfg/VBoxDrvCfg.cpp 2015-11-11 15:08:44.000000000 +0000 @@ -677,23 +677,21 @@ VBOXDRVCFG_DECL(HRESULT) VBoxDrvCfgInfUninstallAllF(LPCWSTR lpszClassName, LPCWSTR lpszPnPId, DWORD Flags) { - WCHAR InfDirPath[MAX_PATH]; - HRESULT hr = SHGetFolderPathW(NULL, /* HWND hwndOwner*/ - CSIDL_WINDOWS, /* int nFolder*/ - NULL, /*HANDLE hToken*/ - SHGFP_TYPE_CURRENT, /*DWORD dwFlags*/ - InfDirPath); - Assert(hr == S_OK); - if (hr == S_OK) + static WCHAR const s_wszFilter[] = L"\\inf\\oem*.inf"; + HRESULT hr; + WCHAR wszInfDirPath[MAX_PATH]; + UINT cwcInput = RT_ELEMENTS(wszInfDirPath) - RT_ELEMENTS(s_wszFilter); + UINT cwcWindows = GetSystemWindowsDirectory(wszInfDirPath, cwcInput); + if (cwcWindows > 0 && cwcWindows < cwcInput) { - wcscat(InfDirPath, L"\\inf\\oem*.inf"); + wcscpy(&wszInfDirPath[cwcWindows], s_wszFilter); INFENUM_CONTEXT Context; Context.InfInfo.lpszClassName = lpszClassName; Context.InfInfo.lpszPnPId = lpszPnPId; Context.Flags = Flags; Context.hr = S_OK; - hr = vboxDrvCfgEnumFiles(InfDirPath, vboxDrvCfgInfEnumerationCallback, &Context); + hr = vboxDrvCfgEnumFiles(wszInfDirPath, vboxDrvCfgInfEnumerationCallback, &Context); Assert(hr == S_OK); if (hr == S_OK) { @@ -707,6 +705,7 @@ else { LogRel((__FUNCTION__": SHGetFolderPathW failed, hr = (0x%x)\n", hr)); + hr = E_FAIL; } return hr; diff -Nru virtualbox-4.1.12-dfsg/src/VBox/HostServices/GuestProperties/service.cpp virtualbox-4.1.44-dfsg/src/VBox/HostServices/GuestProperties/service.cpp --- virtualbox-4.1.12-dfsg/src/VBox/HostServices/GuestProperties/service.cpp 2012-04-02 13:28:49.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/HostServices/GuestProperties/service.cpp 2015-11-11 15:08:44.000000000 +0000 @@ -56,6 +56,9 @@ #include #include +/** @todo Delete the old !ASYNC_HOST_NOTIFY code and remove this define. */ +#define ASYNC_HOST_NOTIFY + namespace guestProp { /** @@ -132,22 +135,25 @@ */ struct GuestCall { + uint32_t u32ClientId; /** The call handle */ VBOXHGCMCALLHANDLE mHandle; /** The function that was requested */ uint32_t mFunction; + /** Number of call parameters. */ + uint32_t mParmsCnt; /** The call parameters */ VBOXHGCMSVCPARM *mParms; /** The default return value, used for passing warnings */ int mRc; /** The standard constructor */ - GuestCall() : mFunction(0) {} + GuestCall(void) : u32ClientId(0), mFunction(0), mParmsCnt(0) {} /** The normal constructor */ - GuestCall(VBOXHGCMCALLHANDLE aHandle, uint32_t aFunction, - VBOXHGCMSVCPARM aParms[], int aRc) - : mHandle(aHandle), mFunction(aFunction), mParms(aParms), - mRc(aRc) {} + GuestCall(uint32_t aClientId, VBOXHGCMCALLHANDLE aHandle, uint32_t aFunction, + uint32_t aParmsCnt, VBOXHGCMSVCPARM aParms[], int aRc) + : u32ClientId(aClientId), mHandle(aHandle), mFunction(aFunction), + mParmsCnt(aParmsCnt), mParms(aParms), mRc(aRc) {} }; /** The guest call list type */ typedef std::list CallList; @@ -168,7 +174,8 @@ RTSTRSPACE mhProperties; /** The number of properties. */ unsigned mcProperties; - /** The list of property changes for guest notifications */ + /** The list of property changes for guest notifications; + * only used for timestamp tracking in notifications at the moment */ PropertyList mGuestNotifications; /** The list of outstanding guest notification calls */ CallList mGuestWaiters; @@ -280,6 +287,10 @@ , mpvHostData(NULL) , mPrevTimestamp(0) , mcTimestampAdjustments(0) +#ifdef ASYNC_HOST_NOTIFY + , mhThreadNotifyHost(NIL_RTTHREAD) + , mpReqQNotifyHost(NULL) +#endif { } /** @@ -358,6 +369,10 @@ pSelf->mpvHostData = pvExtension; return VINF_SUCCESS; } +#ifdef ASYNC_HOST_NOTIFY + int initialize(); +#endif + private: static DECLCALLBACK(int) reqThreadFn(RTTHREAD ThreadSelf, void *pvUser); uint64_t getCurrentTimestamp(void); @@ -368,12 +383,12 @@ int setProperty(uint32_t cParms, VBOXHGCMSVCPARM paParms[], bool isGuest); int delProperty(uint32_t cParms, VBOXHGCMSVCPARM paParms[], bool isGuest); int enumProps(uint32_t cParms, VBOXHGCMSVCPARM paParms[]); - int getNotification(VBOXHGCMCALLHANDLE callHandle, uint32_t cParms, + int getNotification(uint32_t u32ClientId, VBOXHGCMCALLHANDLE callHandle, uint32_t cParms, VBOXHGCMSVCPARM paParms[]); int getOldNotificationInternal(const char *pszPattern, uint64_t u64Timestamp, Property *pProp); - int getNotificationWriteOut(VBOXHGCMSVCPARM paParms[], Property prop); - void doNotifications(const char *pszProperty, uint64_t u64Timestamp); + int getNotificationWriteOut(uint32_t cParms, VBOXHGCMSVCPARM paParms[], Property prop); + int doNotifications(const char *pszProperty, uint64_t u64Timestamp); int notifyHost(const char *pszName, const char *pszValue, uint64_t u64Timestamp, const char *pszFlags); @@ -382,6 +397,14 @@ VBOXHGCMSVCPARM paParms[]); int hostCall(uint32_t eFunction, uint32_t cParms, VBOXHGCMSVCPARM paParms[]); int uninit(); + +#ifdef ASYNC_HOST_NOTIFY + /* Thread for handling host notifications. */ + RTTHREAD mhThreadNotifyHost; + /* Queue for handling requests for notifications. */ + RTREQQUEUE *mpReqQNotifyHost; + static DECLCALLBACK(int) threadNotifyHost(RTTHREAD self, void *pvUser); +#endif }; @@ -696,35 +719,41 @@ } else if (mcProperties < MAX_PROPS) { - /* Create a new string space record. */ - pProp = new Property(pcszName, pcszValue, u64TimeNano, fFlags); - if (pProp) + try { + /* Create a new string space record. */ + pProp = new Property(pcszName, pcszValue, u64TimeNano, fFlags); + AssertPtr(pProp); + if (RTStrSpaceInsert(&mhProperties, &pProp->mStrCore)) mcProperties++; else { AssertFailed(); delete pProp; - rc = VERR_INTERNAL_ERROR_3; + + rc = VERR_ALREADY_EXISTS; } } - else + catch (std::bad_alloc) + { rc = VERR_NO_MEMORY; + } } else rc = VERR_TOO_MUCH_DATA; /* - * Send a notification to the host and return. + * Send a notification to the guest and host and return. */ // if (isGuest) /* Notify the host even for properties that the host // * changed. Less efficient, but ensures consistency. */ - doNotifications(pcszName, u64TimeNano); - Log2(("Set string %s, rc=%Rrc, value=%s\n", pcszName, rc, pcszValue)); + int rc2 = doNotifications(pcszName, u64TimeNano); + if (RT_SUCCESS(rc)) + rc = rc2; } - LogFlowThisFunc(("rc = %Rrc (%s = %s)\n", rc, pcszName, pcszValue)); + LogFlowThisFunc(("%s=%s, rc=%Rrc\n", pcszName, pcszValue, rc)); return rc; } @@ -758,7 +787,7 @@ rc = VERR_INVALID_PARAMETER; if (RT_FAILURE(rc)) { - LogFlowThisFunc(("rc = %Rrc\n", rc)); + LogFlowThisFunc(("rc=%Rrc\n", rc)); return rc; } @@ -782,10 +811,12 @@ delete pProp; // if (isGuest) /* Notify the host even for properties that the host // * changed. Less efficient, but ensures consistency. */ - doNotifications(pcszName, u64Timestamp); + int rc2 = doNotifications(pcszName, u64Timestamp); + if (RT_SUCCESS(rc)) + rc = rc2; } - LogFlowThisFunc(("rc = %Rrc (%s)\n", rc, pcszName)); + LogFlowThisFunc(("%s: rc=%Rrc\n", pcszName, rc)); return rc; } @@ -962,15 +993,17 @@ /** Helper query used by getNotification */ -int Service::getNotificationWriteOut(VBOXHGCMSVCPARM paParms[], Property prop) +int Service::getNotificationWriteOut(uint32_t cParms, VBOXHGCMSVCPARM paParms[], Property prop) { - int rc = VINF_SUCCESS; + AssertReturn(cParms == 4, VERR_INVALID_PARAMETER); /* Basic sanity checking. */ + /* Format the data to write to the buffer. */ std::string buffer; uint64_t u64Timestamp; char *pchBuf; uint32_t cbBuf; - rc = paParms[2].getBuffer((void **)&pchBuf, &cbBuf); + + int rc = paParms[2].getBuffer((void **)&pchBuf, &cbBuf); if (RT_SUCCESS(rc)) { char szFlags[MAX_FLAGS_LEN]; @@ -1009,8 +1042,8 @@ * @thread HGCM * @throws can throw std::bad_alloc */ -int Service::getNotification(VBOXHGCMCALLHANDLE callHandle, uint32_t cParms, - VBOXHGCMSVCPARM paParms[]) +int Service::getNotification(uint32_t u32ClientId, VBOXHGCMCALLHANDLE callHandle, + uint32_t cParms, VBOXHGCMSVCPARM paParms[]) { int rc = VINF_SUCCESS; char *pszPatterns = NULL; /* shut up gcc */ @@ -1029,9 +1062,9 @@ || RT_FAILURE(paParms[2].getBuffer((void **)&pchBuf, &cbBuf)) /* return buffer */ ) rc = VERR_INVALID_PARAMETER; + if (RT_SUCCESS(rc)) - LogFlow((" pszPatterns=%s, u64Timestamp=%llu\n", pszPatterns, - u64Timestamp)); + LogFlow(("pszPatterns=%s, u64Timestamp=%llu\n", pszPatterns, u64Timestamp)); /* * If no timestamp was supplied or no notification was found in the queue @@ -1040,21 +1073,50 @@ Property prop; if (RT_SUCCESS(rc) && u64Timestamp != 0) rc = getOldNotification(pszPatterns, u64Timestamp, &prop); - if (RT_SUCCESS(rc) && prop.isNull()) - { - mGuestWaiters.push_back(GuestCall(callHandle, GET_NOTIFICATION, - paParms, rc)); - rc = VINF_HGCM_ASYNC_EXECUTE; - } - /* - * Otherwise reply at once with the enqueued notification we found. - */ - else + if (RT_SUCCESS(rc)) { - int rc2 = getNotificationWriteOut(paParms, prop); - if (RT_FAILURE(rc2)) - rc = rc2; + if (prop.isNull()) + { + /* + * Check if the client already had the same request. + * Complete the old request with an error in this case. + * Protection against clients, which cancel and resubmits requests. + */ + CallList::iterator it = mGuestWaiters.begin(); + while (it != mGuestWaiters.end()) + { + const char *pszPatternsExisting; + uint32_t cchPatternsExisting; + int rc3 = it->mParms[0].getString(&pszPatternsExisting, &cchPatternsExisting); + + if ( RT_SUCCESS(rc3) + && u32ClientId == it->u32ClientId + && RTStrCmp(pszPatterns, pszPatternsExisting) == 0) + { + /* Complete the old request. */ + mpHelpers->pfnCallComplete(it->mHandle, VERR_INTERRUPTED); + it = mGuestWaiters.erase(it); + } + else + ++it; + } + + mGuestWaiters.push_back(GuestCall(u32ClientId, callHandle, GET_NOTIFICATION, + cParms, paParms, rc)); + rc = VINF_HGCM_ASYNC_EXECUTE; + } + /* + * Otherwise reply at once with the enqueued notification we found. + */ + else + { + int rc2 = getNotificationWriteOut(cParms, paParms, prop); + if (RT_FAILURE(rc2)) + rc = rc2; + } } + + LogFlowThisFunc(("returning rc=%Rrc\n", rc)); return rc; } @@ -1067,10 +1129,10 @@ * * @thread HGCM service */ -void Service::doNotifications(const char *pszProperty, uint64_t u64Timestamp) +int Service::doNotifications(const char *pszProperty, uint64_t u64Timestamp) { - AssertPtrReturnVoid(pszProperty); - LogFlowThisFunc (("pszProperty=%s, u64Timestamp=%llu\n", pszProperty, u64Timestamp)); + AssertPtrReturn(pszProperty, VERR_INVALID_POINTER); + LogFlowThisFunc(("pszProperty=%s, u64Timestamp=%llu\n", pszProperty, u64Timestamp)); /* Ensure that our timestamp is different to the last one. */ if ( !mGuestNotifications.empty() && u64Timestamp == mGuestNotifications.back().mTimestamp) @@ -1092,8 +1154,8 @@ prop.mFlags = pProp->mFlags; } - /* Release waiters if applicable and add the event to the queue for - * guest notifications */ + /* Release guest waiters if applicable and add the event + * to the queue for guest notifications */ int rc = VINF_SUCCESS; try { @@ -1106,7 +1168,7 @@ if (prop.Matches(pszPatterns)) { GuestCall curCall = *it; - int rc2 = getNotificationWriteOut(curCall.mParms, prop); + int rc2 = getNotificationWriteOut(curCall.mParmsCnt, curCall.mParms, prop); if (RT_SUCCESS(rc2)) rc2 = curCall.mRc; mpHelpers->pfnCallComplete(curCall.mHandle, rc2); @@ -1115,42 +1177,61 @@ else ++it; } + mGuestNotifications.push_back(prop); + + /** @todo r=andy This list does not have a purpose but for tracking + * the timestamps ... */ + if (mGuestNotifications.size() > MAX_GUEST_NOTIFICATIONS) + mGuestNotifications.pop_front(); } catch (std::bad_alloc) { rc = VERR_NO_MEMORY; } - if (mGuestNotifications.size() > MAX_GUEST_NOTIFICATIONS) - mGuestNotifications.pop_front(); - /* - * Host notifications - first case: if the property exists then send its - * current value - */ - if (pProp && mpfnHostCallback != NULL) + if ( RT_SUCCESS(rc) + && mpfnHostCallback) { - char szFlags[MAX_FLAGS_LEN]; - /* Send out a host notification */ - const char *pszValue = prop.mValue.c_str(); - if (RT_SUCCESS(rc)) + /* + * Host notifications - first case: if the property exists then send its + * current value + */ + if (pProp) + { + char szFlags[MAX_FLAGS_LEN]; + /* Send out a host notification */ + const char *pszValue = prop.mValue.c_str(); rc = writeFlags(prop.mFlags, szFlags); - if (RT_SUCCESS(rc)) - rc = notifyHost(pszProperty, pszValue, u64Timestamp, szFlags); - } - - /* - * Host notifications - second case: if the property does not exist then - * send the host an empty value - */ - if (!pProp && mpfnHostCallback != NULL) - { - /* Send out a host notification */ - if (RT_SUCCESS(rc)) + if (RT_SUCCESS(rc)) + rc = notifyHost(pszProperty, pszValue, u64Timestamp, szFlags); + } + /* + * Host notifications - second case: if the property does not exist then + * send the host an empty value + */ + else + { + /* Send out a host notification */ rc = notifyHost(pszProperty, "", u64Timestamp, ""); + } } - LogFlowThisFunc(("returning\n")); + + LogFlowThisFunc(("returning rc=%Rrc\n", rc)); + return rc; +} + +#ifdef ASYNC_HOST_NOTIFY +static DECLCALLBACK(void) notifyHostAsyncWorker(PFNHGCMSVCEXT pfnHostCallback, + void *pvHostData, + HOSTCALLBACKDATA *pHostCallbackData) +{ + pfnHostCallback(pvHostData, 0 /*u32Function*/, + (void *)pHostCallbackData, + sizeof(HOSTCALLBACKDATA)); + RTMemFree(pHostCallbackData); } +#endif /** * Notify the service owner that a property has been added/deleted/changed. @@ -1165,16 +1246,63 @@ { LogFlowFunc(("pszName=%s, pszValue=%s, u64Timestamp=%llu, pszFlags=%s\n", pszName, pszValue, u64Timestamp, pszFlags)); +#ifdef ASYNC_HOST_NOTIFY + int rc = VINF_SUCCESS; + + /* Allocate buffer for the callback data and strings. */ + size_t cbName = pszName? strlen(pszName): 0; + size_t cbValue = pszValue? strlen(pszValue): 0; + size_t cbFlags = pszFlags? strlen(pszFlags): 0; + size_t cbAlloc = sizeof(HOSTCALLBACKDATA) + cbName + cbValue + cbFlags + 3; + HOSTCALLBACKDATA *pHostCallbackData = (HOSTCALLBACKDATA *)RTMemAlloc(cbAlloc); + if (pHostCallbackData) + { + uint8_t *pu8 = (uint8_t *)pHostCallbackData; + pu8 += sizeof(HOSTCALLBACKDATA); + + pHostCallbackData->u32Magic = HOSTCALLBACKMAGIC; + + pHostCallbackData->pcszName = (const char *)pu8; + memcpy(pu8, pszName, cbName); + pu8 += cbName; + *pu8++ = 0; + + pHostCallbackData->pcszValue = (const char *)pu8; + memcpy(pu8, pszValue, cbValue); + pu8 += cbValue; + *pu8++ = 0; + + pHostCallbackData->u64Timestamp = u64Timestamp; + + pHostCallbackData->pcszFlags = (const char *)pu8; + memcpy(pu8, pszFlags, cbFlags); + pu8 += cbFlags; + *pu8++ = 0; + + rc = RTReqCallEx(mpReqQNotifyHost, NULL, 0, RTREQFLAGS_VOID | RTREQFLAGS_NO_WAIT, + (PFNRT)notifyHostAsyncWorker, 3, + mpfnHostCallback, mpvHostData, pHostCallbackData); + if (RT_FAILURE(rc)) + { + RTMemFree(pHostCallbackData); + } + } + else + { + rc = VERR_NO_MEMORY; + } +#else HOSTCALLBACKDATA HostCallbackData; HostCallbackData.u32Magic = HOSTCALLBACKMAGIC; HostCallbackData.pcszName = pszName; HostCallbackData.pcszValue = pszValue; HostCallbackData.u64Timestamp = u64Timestamp; HostCallbackData.pcszFlags = pszFlags; - int rc = mpfnHostCallback (mpvHostData, 0 /*u32Function*/, - (void *)(&HostCallbackData), - sizeof(HostCallbackData)); - LogFlowFunc (("returning %Rrc\n", rc)); + int rc = mpfnHostCallback(mpvHostData, 0 /*u32Function*/, + (void *)(&HostCallbackData), + sizeof(HostCallbackData)); +#endif + LogFlowFunc(("returning rc=%Rrc\n", rc)); return rc; } @@ -1233,7 +1361,7 @@ /* The guest wishes to get the next property notification */ case GET_NOTIFICATION: LogFlowFunc(("GET_NOTIFICATION\n")); - rc = getNotification(callHandle, cParms, paParms); + rc = getNotification(u32ClientID, callHandle, cParms, paParms); break; default: @@ -1332,8 +1460,84 @@ return rc; } +#ifdef ASYNC_HOST_NOTIFY +/* static */ +DECLCALLBACK(int) Service::threadNotifyHost(RTTHREAD self, void *pvUser) +{ + Service *pThis = (Service *)pvUser; + int rc = VINF_SUCCESS; + + LogFlowFunc(("ENTER: %p\n", pThis)); + + for (;;) + { + rc = RTReqProcess(pThis->mpReqQNotifyHost, RT_INDEFINITE_WAIT); + + AssertMsg(rc == VWRN_STATE_CHANGED, + ("Left RTReqProcess and error code is not VWRN_STATE_CHANGED rc=%Rrc\n", + rc)); + if (rc == VWRN_STATE_CHANGED) + { + break; + } + } + + LogFlowFunc(("LEAVE: %Rrc\n", rc)); + return rc; +} + +static DECLCALLBACK(int) wakeupNotifyHost(void) +{ + /* Returning a VWRN_* will cause RTReqProcess return. */ + return VWRN_STATE_CHANGED; +} + +int Service::initialize() +{ + /* The host notification thread and queue. */ + int rc = RTReqCreateQueue(&mpReqQNotifyHost); + if (RT_SUCCESS(rc)) + { + rc = RTThreadCreate(&mhThreadNotifyHost, + threadNotifyHost, + this, + 0 /* default stack size */, + RTTHREADTYPE_DEFAULT, + 0, /* no flags. */ + "GSTPROPNTFY"); + } + + if (RT_FAILURE(rc)) + { + if (mpReqQNotifyHost != NULL) + { + RTReqDestroyQueue(mpReqQNotifyHost); + mpReqQNotifyHost = NULL; + } + } + + return rc; +} +#endif + int Service::uninit() { +#ifdef ASYNC_HOST_NOTIFY + if (mpReqQNotifyHost != NULL) + { + /* Stop the thread */ + PRTREQ pReq; + int rc = RTReqCall(mpReqQNotifyHost, &pReq, 10000, (PFNRT)wakeupNotifyHost, 0); + if (RT_SUCCESS(rc)) + RTReqFree(pReq); + + rc = RTReqDestroyQueue(mpReqQNotifyHost); + AssertRC(rc); + mpReqQNotifyHost = NULL; + mhThreadNotifyHost = NIL_RTTHREAD; + } +#endif + return VINF_SUCCESS; } @@ -1393,6 +1597,15 @@ /* Service specific initialization. */ ptable->pvService = pService; + +#ifdef ASYNC_HOST_NOTIFY + rc = pService->initialize(); + if (RT_FAILURE(rc)) + { + delete pService; + pService = NULL; + } +#endif } else Assert(!pService); diff -Nru virtualbox-4.1.12-dfsg/src/VBox/HostServices/SharedFolders/mappings.cpp virtualbox-4.1.44-dfsg/src/VBox/HostServices/SharedFolders/mappings.cpp --- virtualbox-4.1.12-dfsg/src/VBox/HostServices/SharedFolders/mappings.cpp 2012-04-02 13:28:49.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/HostServices/SharedFolders/mappings.cpp 2015-11-11 15:08:44.000000000 +0000 @@ -373,8 +373,18 @@ if (pFolderMapping->fValid == true) { - pString->u16Length = pFolderMapping->pMapName->u16Length; - memcpy(pString->String.ucs2, pFolderMapping->pMapName->String.ucs2, pString->u16Size); + if (pString->u16Size < pFolderMapping->pMapName->u16Size) + { + Log(("vbsfMappingsQuery: passed string too short (%d < %d bytes)!\n", + pString->u16Size, pFolderMapping->pMapName->u16Size)); + rc = VERR_INVALID_PARAMETER; + } + else + { + pString->u16Length = pFolderMapping->pMapName->u16Length; + memcpy(pString->String.ucs2, pFolderMapping->pMapName->String.ucs2, + pFolderMapping->pMapName->u16Size); + } } else rc = VERR_FILE_NOT_FOUND; @@ -442,7 +452,7 @@ } int vbsfMapFolder(PSHFLCLIENTDATA pClient, PSHFLSTRING pszMapName, - RTUTF16 pwszDelimiter, bool fCaseSensitive, SHFLROOT *pRoot) + RTUTF16 wcDelimiter, bool fCaseSensitive, SHFLROOT *pRoot) { MAPPING *pFolderMapping = NULL; @@ -455,13 +465,18 @@ Log(("vbsfMapFolder %ls\n", pszMapName->String.ucs2)); } + AssertMsgReturn(wcDelimiter == '/' || wcDelimiter == '\\', + ("Invalid path delimiter: %#x\n", wcDelimiter), + VERR_INVALID_PARAMETER); if (pClient->PathDelimiter == 0) { - pClient->PathDelimiter = pwszDelimiter; + pClient->PathDelimiter = wcDelimiter; } else { - Assert(pwszDelimiter == pClient->PathDelimiter); + AssertMsgReturn(wcDelimiter == pClient->PathDelimiter, + ("wcDelimiter=%#x PathDelimiter=%#x", wcDelimiter, pClient->PathDelimiter), + VERR_INVALID_PARAMETER); } if (BIT_FLAG(pClient->fu32Flags, SHFL_CF_UTF8)) diff -Nru virtualbox-4.1.12-dfsg/src/VBox/HostServices/SharedFolders/service.cpp virtualbox-4.1.44-dfsg/src/VBox/HostServices/SharedFolders/service.cpp --- virtualbox-4.1.12-dfsg/src/VBox/HostServices/SharedFolders/service.cpp 2012-04-02 13:28:49.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/HostServices/SharedFolders/service.cpp 2015-11-11 15:08:44.000000000 +0000 @@ -380,7 +380,7 @@ SHFLSTRING *pString = (SHFLSTRING *)paParms[1].u.pointer.addr; /* Verify parameters values. */ - if (!ShflStringIsValid(pString, paParms[1].u.pointer.size)) + if (!ShflStringIsValidOut(pString, paParms[1].u.pointer.size)) { rc = VERR_INVALID_PARAMETER; } @@ -426,7 +426,7 @@ uint32_t cbParms = paParms[2].u.pointer.size; /* Verify parameters values. */ - if ( !ShflStringIsValid(pPath, cbPath) + if ( !ShflStringIsValidIn(pPath, cbPath, RT_BOOL(pClient->fu32Flags & SHFL_CF_UTF8)) || (cbParms != sizeof (SHFLCREATEPARMS)) ) { @@ -757,7 +757,7 @@ /* Verify parameters values. */ if ( (length < sizeof (SHFLDIRINFO)) || length > paParms[5].u.pointer.size - || !ShflStringIsValidOrNull(pPath, paParms[4].u.pointer.size) + || !ShflStringIsValidOrNullIn(pPath, paParms[4].u.pointer.size, RT_BOOL(pClient->fu32Flags & SHFL_CF_UTF8)) ) { rc = VERR_INVALID_PARAMETER; @@ -825,7 +825,7 @@ uint32_t cbBuffer = paParms[2].u.pointer.size; /* Verify parameters values. */ - if (!ShflStringIsValidOrNull(pPath, paParms[1].u.pointer.size)) + if (!ShflStringIsValidOrNullIn(pPath, paParms[1].u.pointer.size, RT_BOOL(pClient->fu32Flags & SHFL_CF_UTF8))) { rc = VERR_INVALID_PARAMETER; } @@ -870,7 +870,7 @@ RTUTF16 delimiter = (RTUTF16)paParms[2].u.uint32; /* Verify parameters values. */ - if (!ShflStringIsValid(pszMapName, paParms[0].u.pointer.size)) + if (!ShflStringIsValidIn(pszMapName, paParms[0].u.pointer.size, RT_BOOL(pClient->fu32Flags & SHFL_CF_UTF8))) { rc = VERR_INVALID_PARAMETER; } @@ -921,22 +921,37 @@ bool fCaseSensitive = !!paParms[3].u.uint32; /* Verify parameters values. */ - if (!ShflStringIsValid(pszMapName, paParms[0].u.pointer.size)) + if (ShflStringIsValidIn(pszMapName, paParms[0].u.pointer.size, RT_BOOL(pClient->fu32Flags & SHFL_CF_UTF8))) { - rc = VERR_INVALID_PARAMETER; + rc = VINF_SUCCESS; } else { + rc = VERR_INVALID_PARAMETER; - /* Execute the function. */ - rc = vbsfMapFolder (pClient, pszMapName, delimiter, fCaseSensitive, &root); - - if (RT_SUCCESS(rc)) + /* Fudge for windows GAs getting the length wrong by one char. */ + if ( !(pClient->fu32Flags & SHFL_CF_UTF8) + && paParms[0].u.pointer.size >= sizeof(SHFLSTRING) + && pszMapName->u16Length >= 2 + && pszMapName->String.ucs2[pszMapName->u16Length / 2 - 1] == 0x0000) { - /* Update parameters.*/ - paParms[1].u.uint32 = root; + pszMapName->u16Length -= 2; + if (ShflStringIsValidIn(pszMapName, paParms[0].u.pointer.size, false /*fUtf8Not16*/)) + rc = VINF_SUCCESS; + else + pszMapName->u16Length += 2; } } + + /* Execute the function. */ + if (RT_SUCCESS(rc)) + rc = vbsfMapFolder (pClient, pszMapName, delimiter, fCaseSensitive, &root); + + if (RT_SUCCESS(rc)) + { + /* Update parameters.*/ + paParms[1].u.uint32 = root; + } } Log(("SharedFolders host service: map operation result %Rrc\n", rc)); if (RT_SUCCESS(rc)) @@ -1060,7 +1075,7 @@ uint32_t flags = paParms[2].u.uint32; /* Verify parameters values. */ - if (!ShflStringIsValid(pPath, cbPath)) + if (!ShflStringIsValidIn(pPath, cbPath, RT_BOOL(pClient->fu32Flags & SHFL_CF_UTF8))) { rc = VERR_INVALID_PARAMETER; } @@ -1104,8 +1119,8 @@ uint32_t flags = paParms[3].u.uint32; /* Verify parameters values. */ - if ( !ShflStringIsValid(pSrc, paParms[1].u.pointer.size) - || !ShflStringIsValid(pDest, paParms[2].u.pointer.size) + if ( !ShflStringIsValidIn(pSrc, paParms[1].u.pointer.size, RT_BOOL(pClient->fu32Flags & SHFL_CF_UTF8)) + || !ShflStringIsValidIn(pDest, paParms[2].u.pointer.size, RT_BOOL(pClient->fu32Flags & SHFL_CF_UTF8)) ) { rc = VERR_INVALID_PARAMETER; @@ -1204,8 +1219,8 @@ uint32_t cbInfo = paParms[3].u.pointer.size; /* Verify parameters values. */ - if ( !ShflStringIsValid(pNewPath, paParms[1].u.pointer.size) - || !ShflStringIsValid(pOldPath, paParms[2].u.pointer.size) + if ( !ShflStringIsValidIn(pNewPath, paParms[1].u.pointer.size, RT_BOOL(pClient->fu32Flags & SHFL_CF_UTF8)) + || !ShflStringIsValidIn(pOldPath, paParms[2].u.pointer.size, RT_BOOL(pClient->fu32Flags & SHFL_CF_UTF8)) || (cbInfo != sizeof(SHFLFSOBJINFO)) ) { @@ -1301,8 +1316,8 @@ uint32_t fFlags = paParms[2].u.uint32; /* Verify parameters values. */ - if ( !ShflStringIsValid(pFolderName, paParms[0].u.pointer.size) - || !ShflStringIsValid(pMapName, paParms[1].u.pointer.size) + if ( !ShflStringIsValidIn(pFolderName, paParms[0].u.pointer.size, false /*fUtf8Not16*/) + || !ShflStringIsValidIn(pMapName, paParms[1].u.pointer.size, false /*fUtf8Not16*/) ) { rc = VERR_INVALID_PARAMETER; @@ -1355,7 +1370,7 @@ SHFLSTRING *pString = (SHFLSTRING *)paParms[0].u.pointer.addr; /* Verify parameters values. */ - if (!ShflStringIsValid(pString, paParms[0].u.pointer.size)) + if (!ShflStringIsValidIn(pString, paParms[0].u.pointer.size, false /*fUtf8Not16*/)) { rc = VERR_INVALID_PARAMETER; } diff -Nru virtualbox-4.1.12-dfsg/src/VBox/HostServices/SharedFolders/vbsf.cpp virtualbox-4.1.44-dfsg/src/VBox/HostServices/SharedFolders/vbsf.cpp --- virtualbox-4.1.12-dfsg/src/VBox/HostServices/SharedFolders/vbsf.cpp 2012-04-02 13:28:49.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/HostServices/SharedFolders/vbsf.cpp 2015-11-11 15:08:44.000000000 +0000 @@ -102,197 +102,423 @@ LogFlowFunc(("%s, %s, %s\n", pszFullPath, delimLast, delimSecondLast)); } +/** + * Corrects the casing of the final component + * + * @returns + * @param pClient . + * @param pszFullPath . + * @param pszStartComponent . + */ static int vbsfCorrectCasing(SHFLCLIENTDATA *pClient, char *pszFullPath, char *pszStartComponent) { - PRTDIRENTRYEX pDirEntry = NULL; - uint32_t cbDirEntry, cbComponent; - int rc = VERR_FILE_NOT_FOUND; - PRTDIR hSearch = 0; - char szWildCard[4]; - Log2(("vbsfCorrectCasing: %s %s\n", pszFullPath, pszStartComponent)); - cbComponent = (uint32_t) strlen(pszStartComponent); + AssertReturn((uintptr_t)pszFullPath < (uintptr_t)pszStartComponent - 1U, VERR_INTERNAL_ERROR_2); + AssertReturn(pszStartComponent[-1] == RTPATH_DELIMITER, VERR_INTERNAL_ERROR_5); - cbDirEntry = 4096; - pDirEntry = (PRTDIRENTRYEX)RTMemAlloc(cbDirEntry); - if (pDirEntry == 0) - { - AssertFailed(); + /* + * Allocate a buffer that can hold really long file name entries as well as + * the initial search pattern. + */ + size_t cchComponent = strlen(pszStartComponent); + size_t cchParentDir = pszStartComponent - pszFullPath; + size_t cchFullPath = cchParentDir + cchComponent; + Assert(strlen(pszFullPath) == cchFullPath); + + size_t cbDirEntry = 4096; + if (cchFullPath + 4 > cbDirEntry - RT_OFFSETOF(RTDIRENTRYEX, szName)) + cbDirEntry = RT_OFFSETOF(RTDIRENTRYEX, szName) + cchFullPath + 4; + + PRTDIRENTRYEX pDirEntry = (PRTDIRENTRYEX)RTMemAlloc(cbDirEntry); + if (pDirEntry == NULL) return VERR_NO_MEMORY; - } - /** @todo this is quite inefficient, especially for directories with many files */ - Assert(pszFullPath < pszStartComponent-1); - Assert(*(pszStartComponent-1) == RTPATH_DELIMITER); - *(pszStartComponent-1) = 0; - strcpy(pDirEntry->szName, pszFullPath); - szWildCard[0] = RTPATH_DELIMITER; - szWildCard[1] = '*'; - szWildCard[2] = 0; - strcat(pDirEntry->szName, szWildCard); + /* + * Construct the search criteria in the szName member of pDirEntry. + */ + /** @todo This is quite inefficient, especially for directories with many + * files. If any of the typically case sensitive host systems start + * supporting opendir wildcard filters, it would make sense to build + * one here with '?' for case foldable charaters. */ + /** @todo Use RTDirOpen here and drop the whole uncessary path copying? */ + int rc = RTPathJoinEx(pDirEntry->szName, cbDirEntry - RT_OFFSETOF(RTDIRENTRYEX, szName), + pszFullPath, cchParentDir, + RT_STR_TUPLE("*")); + AssertRC(rc); + if (RT_SUCCESS(rc)) + { + PRTDIR hSearch = NULL; + rc = RTDirOpenFiltered(&hSearch, pDirEntry->szName, RTDIRFILTER_WINNT); + if (RT_SUCCESS(rc)) + { + for (;;) + { + size_t cbDirEntrySize = cbDirEntry; + + rc = RTDirReadEx(hSearch, pDirEntry, &cbDirEntrySize, RTFSOBJATTRADD_NOTHING, SHFL_RT_LINK(pClient)); + if (rc == VERR_NO_MORE_FILES) + break; + + if ( rc != VINF_SUCCESS + && rc != VWRN_NO_DIRENT_INFO) + { + AssertFailed(); + if ( rc == VERR_NO_TRANSLATION + || rc == VERR_INVALID_UTF8_ENCODING) + continue; + break; + } + + Log2(("vbsfCorrectCasing: found %s\n", &pDirEntry->szName[0])); + if ( pDirEntry->cbName == cchComponent + && !RTStrICmp(pszStartComponent, &pDirEntry->szName[0])) + { + Log(("Found original name %s (%s)\n", &pDirEntry->szName[0], pszStartComponent)); + strcpy(pszStartComponent, &pDirEntry->szName[0]); + rc = VINF_SUCCESS; + break; + } + } + + RTDirClose(hSearch); + } + } - rc = RTDirOpenFiltered(&hSearch, pDirEntry->szName, RTDIRFILTER_WINNT); - *(pszStartComponent-1) = RTPATH_DELIMITER; if (RT_FAILURE(rc)) - goto end; + Log(("vbsfCorrectCasing %s failed with %Rrc\n", pszStartComponent, rc)); - for (;;) + RTMemFree(pDirEntry); + + return rc; +} + +/* Temporary stand-in for RTPathExistEx. */ +static int vbsfQueryExistsEx(const char *pszPath, uint32_t fFlags) +{ +#if 0 /** @todo Fix the symlink issue on windows! */ + return RTPathExistsEx(pszPath, fFlags); +#else + RTFSOBJINFO IgnInfo; + return RTPathQueryInfoEx(pszPath, &IgnInfo, RTFSOBJATTRADD_NOTHING, fFlags); +#endif +} + +/** + * Helper for vbsfBuildFullPath that performs case corrections on the path + * that's being build. + * + * @returns VINF_SUCCESS at the moment. + * @param pClient The client data. + * @param pszFullPath Pointer to the full path. This is the path + * which may need case corrections. The + * corrections will be applied in place. + * @param cchFullPath The length of the full path. + * @param fWildCard Whether the last component may contain + * wildcards and thus might require exclusion + * from the case correction. + * @param fPreserveLastComponent Always exclude the last component from case + * correction if set. + */ +static int vbsfCorrectPathCasing(SHFLCLIENTDATA *pClient, char *pszFullPath, size_t cchFullPath, + bool fWildCard, bool fPreserveLastComponent) +{ + /* + * Hide the last path component if it needs preserving. This is required + * in the following cases: + * - Contains the wildcard(s). + * - Is a 'rename' target. + */ + char *pszLastComponent = NULL; + if (fWildCard || fPreserveLastComponent) { - size_t cbDirEntrySize = cbDirEntry; + char *pszSrc = pszFullPath + cchFullPath - 1; + Assert(strchr(pszFullPath, '\0') == pszSrc + 1); + while ((uintptr_t)pszSrc > (uintptr_t)pszFullPath) + { + if (*pszSrc == RTPATH_DELIMITER) + break; + pszSrc--; + } + if (*pszSrc == RTPATH_DELIMITER) + { + if ( fPreserveLastComponent + /* Or does it really have wildcards? */ + || strchr(pszSrc + 1, '*') != NULL + || strchr(pszSrc + 1, '?') != NULL + || strchr(pszSrc + 1, '>') != NULL + || strchr(pszSrc + 1, '<') != NULL + || strchr(pszSrc + 1, '"') != NULL ) + { + pszLastComponent = pszSrc; + *pszLastComponent = '\0'; + } + } + } + + /* + * If the path/file doesn't exist, we need to attempt case correcting it. + */ + /** @todo Don't check when creating files or directories; waste of time. */ + int rc = vbsfQueryExistsEx(pszFullPath, SHFL_RT_LINK(pClient)); + if (rc == VERR_FILE_NOT_FOUND || rc == VERR_PATH_NOT_FOUND) + { + Log(("Handle case insensitive guest fs on top of host case sensitive fs for %s\n", pszFullPath)); - rc = RTDirReadEx(hSearch, pDirEntry, &cbDirEntrySize, RTFSOBJATTRADD_NOTHING, SHFL_RT_LINK(pClient)); - if (rc == VERR_NO_MORE_FILES) - break; + /* + * Work from the end of the path to find a partial path that's valid. + */ + char *pszSrc = pszLastComponent ? pszLastComponent - 1 : pszFullPath + cchFullPath - 1; + Assert(strchr(pszFullPath, '\0') == pszSrc + 1); - if ( rc != VINF_SUCCESS - && rc != VWRN_NO_DIRENT_INFO) + while ((uintptr_t)pszSrc > (uintptr_t)pszFullPath) { - AssertFailed(); - if ( rc == VERR_NO_TRANSLATION - || rc == VERR_INVALID_UTF8_ENCODING) - continue; - break; + if (*pszSrc == RTPATH_DELIMITER) + { + *pszSrc = '\0'; + rc = vbsfQueryExistsEx(pszFullPath, SHFL_RT_LINK(pClient)); + *pszSrc = RTPATH_DELIMITER; + if (RT_SUCCESS(rc)) + { +#ifdef DEBUG + *pszSrc = '\0'; + Log(("Found valid partial path %s\n", pszFullPath)); + *pszSrc = RTPATH_DELIMITER; +#endif + break; + } + } + + pszSrc--; } + Assert(*pszSrc == RTPATH_DELIMITER && RT_SUCCESS(rc)); + if ( *pszSrc == RTPATH_DELIMITER + && RT_SUCCESS(rc)) + { + /* + * Turn around and work the other way case correcting the components. + */ + pszSrc++; + for (;;) + { + bool fEndOfString = true; - Log2(("vbsfCorrectCasing: found %s\n", &pDirEntry->szName[0])); - if ( pDirEntry->cbName == cbComponent - && !RTStrICmp(pszStartComponent, &pDirEntry->szName[0])) - { - Log(("Found original name %s (%s)\n", &pDirEntry->szName[0], pszStartComponent)); - strcpy(pszStartComponent, &pDirEntry->szName[0]); - rc = VINF_SUCCESS; - break; + /* Find the end of the component. */ + char *pszEnd = pszSrc; + while (*pszEnd) + { + if (*pszEnd == RTPATH_DELIMITER) + break; + pszEnd++; + } + + if (*pszEnd == RTPATH_DELIMITER) + { + fEndOfString = false; + *pszEnd = '\0'; +#if 0 /** @todo Please, double check this. The original code is in the #if 0, what I hold as correct is in the #else. */ + rc = RTPathQueryInfoEx(pszSrc, &info, RTFSOBJATTRADD_NOTHING, SHFL_RT_LINK(pClient)); +#else + rc = vbsfQueryExistsEx(pszFullPath, SHFL_RT_LINK(pClient)); +#endif + Assert(rc == VINF_SUCCESS || rc == VERR_FILE_NOT_FOUND || rc == VERR_PATH_NOT_FOUND); + } + else if (pszEnd == pszSrc) + rc = VINF_SUCCESS; /* trailing delimiter */ + else + rc = VERR_FILE_NOT_FOUND; + + if (rc == VERR_FILE_NOT_FOUND || rc == VERR_PATH_NOT_FOUND) + { + /* Path component is invalid; try to correct the casing. */ + rc = vbsfCorrectCasing(pClient, pszFullPath, pszSrc); + if (RT_FAILURE(rc)) + { + /* Failed, so don't bother trying any further components. */ + if (!fEndOfString) + *pszEnd = RTPATH_DELIMITER; /* Restore the original full path. */ + break; + } + } + + /* Next (if any). */ + if (fEndOfString) + break; + + *pszEnd = RTPATH_DELIMITER; + pszSrc = pszEnd + 1; + } + if (RT_FAILURE(rc)) + Log(("Unable to find suitable component rc=%d\n", rc)); } - } + else + rc = VERR_FILE_NOT_FOUND; -end: - if (RT_FAILURE(rc)) - Log(("vbsfCorrectCasing %s failed with %d\n", pszStartComponent, rc)); + } - if (pDirEntry) - RTMemFree(pDirEntry); + /* Restore the final component if it was dropped. */ + if (pszLastComponent) + *pszLastComponent = RTPATH_DELIMITER; - if (hSearch) - RTDirClose(hSearch); - return rc; + /* might be a new file so don't fail here! */ + return VINF_SUCCESS; } -static int vbsfPathCheck(const char *pUtf8Path, size_t cbPath) -{ - int rc = VINF_SUCCESS; - /* The pUtf8Path is what the guest sent. Verify that the path is within the root. - * Count '..' and other path components and check that we do not go over the root. +/** @def VBSF_IS_PATH_SLASH + * Checks if @a a_ch is a path delimiter (slash, not volume spearator) for the + * guest or the host. + * @param a_pClient Pointer to the client data (SHFLCLIENTDATA). + * @param a_ch The character to inspect. + */ +#if 1 +# define VBSF_IS_PATH_SLASH(a_pClient, a_ch) ( (a_ch) == '\\' || (a_ch) == '/' || RTPATH_IS_SLASH(a_ch) ) +#else +# define VBSF_IS_PATH_SLASH(a_pClient, a_ch) ( (RTUTF16)(a_ch) == (a_pClient)->PathDelimiter || RTPATH_IS_SLASH(a_ch) ) +#endif + + +/** + * Check the given UTF-8 path for root escapes. + * + * Verify that the path is within the root directory of the mapping. Count '..' + * and other path components and check that we do not go over the root. + * + * @returns VBox status code. + * @retval VINF_SUCCESS + * @retval VERR_INVALID_NAME + * + * @param pszPath The (UTF-8) path to check. Slashes has been convert + * to host slashes by this time. + * + * @remarks This function assumes that the path will be appended to the root + * directory of the shared folder mapping. Keep that in mind when + * checking absolute paths! + */ +static int vbsfPathCheck(const char *pszPath) +{ + /* + * Walk the path, component by component and check for escapes. */ - size_t i = 0; int cComponents = 0; /* How many normal path components. */ int cParentDirs = 0; /* How many '..' components. */ for (;;) { - /* Skip leading path delimiters. */ - while ( i < cbPath - && (pUtf8Path[i] == '\\' || pUtf8Path[i] == '/')) - i++; + char ch; - if (i >= cbPath) - break; + /* Skip leading path delimiters. */ + do + ch = *pszPath++; + while (RTPATH_IS_SLASH(ch)); + if (ch == '\0') + return VINF_SUCCESS; /* Check if that is a dot component. */ int cDots = 0; - while (i < cbPath && pUtf8Path[i] == '.') + while (ch == '.') { cDots++; - i++; + ch = *pszPath++; } - if ( cDots >= 2 /* Consider all multidots sequences as a 'parent dir'. */ - && (i >= cbPath || (pUtf8Path[i] == '\\' || pUtf8Path[i] == '/'))) - { - cParentDirs++; - } - else if ( cDots == 1 - && (i >= cbPath || (pUtf8Path[i] == '\\' || pUtf8Path[i] == '/'))) + if ( cDots >= 1 + && (ch == '\0' || RTPATH_IS_SLASH(ch)) ) { - /* Single dot, nothing changes. */ + if (cDots >= 2) /* Consider all multidots sequences as a 'parent dir'. */ + { + cParentDirs++; + + /* Escaping? */ + if (cParentDirs > cComponents) + return VERR_INVALID_NAME; + } + /* else: Single dot, nothing changes. */ } else { - /* Skip this component. */ - while ( i < cbPath - && (pUtf8Path[i] != '\\' && pUtf8Path[i] != '/')) - i++; - + /* Not a dot component, skip to the end of it. */ + while (ch != '\0' && !RTPATH_IS_SLASH(ch)) + ch = *pszPath++; cComponents++; } + Assert(cComponents >= cParentDirs); - Assert(i >= cbPath || (pUtf8Path[i] == '\\' || pUtf8Path[i] == '/')); - - /* Verify counters for every component. */ - if (cParentDirs > cComponents) - { - rc = VERR_INVALID_NAME; - break; - } + /* The end? */ + Assert(ch == '\0' || RTPATH_IS_SLASH(ch)); + if (ch == '\0') + return VINF_SUCCESS; } - - return rc; } static int vbsfBuildFullPath(SHFLCLIENTDATA *pClient, SHFLROOT root, PSHFLSTRING pPath, uint32_t cbPath, char **ppszFullPath, uint32_t *pcbFullPathRoot, bool fWildCard = false, bool fPreserveLastComponent = false) { - int rc = VINF_SUCCESS; - char *pszFullPath = NULL; - size_t cbRoot; + /* Resolve the root prefix into a string. */ const char *pszRoot = vbsfMappingsQueryHostRoot(root); - if ( !pszRoot - || !(cbRoot = strlen(pszRoot))) + || !*pszRoot) { Log(("vbsfBuildFullPath: invalid root!\n")); return VERR_INVALID_PARAMETER; } + uint32_t cchRoot = (uint32_t)strlen(pszRoot); +#if RTPATH_STYLE == RTPATH_STR_F_STYLE_DOS + Assert(!strchr(pszRoot, '/')); +#endif + /* + * Combine the root prefix with the guest path into a full UTF-8 path in a + * buffer pointed to by pszFullPath. cchRoot may be adjusted in the process. + */ + int rc; + size_t cchFullPath; + char *pszFullPath = NULL; if (BIT_FLAG(pClient->fu32Flags, SHFL_CF_UTF8)) { - /* Verify that the path is under the root directory. */ - rc = vbsfPathCheck((const char *)&pPath->String.utf8[0], pPath->u16Length); - - if (RT_SUCCESS(rc)) + /* Strip leading slashes from the path the guest specified. */ + uint32_t cchSrc = pPath->u16Length; + const char *pszSrc = (char *)&pPath->String.utf8[0]; + Log(("Root %s path %.*s\n", pszRoot, cchSrc, pszSrc)); + + while ( cchSrc > 0 + && VBSF_IS_PATH_SLASH(pClient, *pszSrc)) + { + pszSrc++; + cchSrc--; + } + + /* Allocate a buffer that will be able to contain the root prefix and + the path specified by the guest. */ + cchFullPath = cchRoot + cchSrc; + pszFullPath = (char *)RTMemAlloc(cchFullPath + 1 + 1); + if (RT_LIKELY(pszFullPath != NULL)) { - size_t cbUtf8FullPath = cbRoot + 1 + pPath->u16Length + 1; - char *utf8FullPath = (char *) RTMemAllocZ(cbUtf8FullPath); - - if (!utf8FullPath) + memcpy(pszFullPath, pszRoot, cchRoot); + if (!RTPATH_IS_SLASH(pszRoot[-1])) { - rc = VERR_NO_MEMORY; - *ppszFullPath = NULL; - Log(("RTMemAllocZ %x failed!!\n", cbUtf8FullPath)); + pszFullPath[cchRoot++] = RTPATH_DELIMITER; + cchFullPath++; } - else - { - memcpy(utf8FullPath, pszRoot, cbRoot); - utf8FullPath[cbRoot] = '/'; - memcpy(utf8FullPath + cbRoot + 1, &pPath->String.utf8[0], pPath->u16Length); - utf8FullPath[cbUtf8FullPath - 1] = 0; - pszFullPath = utf8FullPath; - if (pcbFullPathRoot) - *pcbFullPathRoot = (uint32_t)cbRoot; /* Must index the path delimiter. */ - } + if (cchSrc) + memcpy(&pszFullPath[cchRoot], pszSrc, cchSrc); + + /* Terminate the string. */ + pszFullPath[cchRoot + cchSrc] = '\0'; + rc = VINF_SUCCESS; } else { - Log(("vbsfBuildFullPath: RTUtf16ToUtf8 failed with %Rrc\n", rc)); + Log(("RTMemAlloc %x failed!!\n", cchFullPath + 1)); + rc = VERR_NO_MEMORY; } } - else + else /* Client speaks UTF-16. */ { -#ifdef RT_OS_DARWIN +#ifdef RT_OS_DARWIN /* Misplaced hack! See todo! */ /** @todo This belongs in rtPathToNative or in the windows shared folder file system driver... * The question is simply whether the NFD normalization is actually applied on a (virtual) file * system level in darwin, or just by the user mode application libs. */ @@ -326,237 +552,125 @@ CFRelease(inStr); #endif - /* Client sends us UCS2, so convert it to UTF8. */ - Log(("Root %s path %.*ls\n", pszRoot, pPath->u16Length/sizeof(pPath->String.ucs2[0]), pPath->String.ucs2)); - /* Allocate buffer that will be able to contain the root prefix and - * the pPath converted to UTF8. Expect a 2 bytes UCS2 to be converted - * to 8 bytes UTF8 in the worst case. - */ - uint32_t cbFullPath = (cbRoot + ShflStringLength(pPath)) * 4; - pszFullPath = (char *)RTMemAllocZ(cbFullPath); - if (!pszFullPath) + /* Strip leading slashes and calculate the UTF-8 length. */ + size_t cwcSrc = pPath->u16Length / sizeof(RTUTF16); + PRTUTF16 pwszSrc = &pPath->String.ucs2[0]; + Log(("Root %s path %.*ls\n", pszRoot, cwcSrc, pwszSrc)); + + while ( cwcSrc > 0 + && *pwszSrc < 0x80 + && VBSF_IS_PATH_SLASH(pClient, (char)*pwszSrc)) { - rc = VERR_NO_MEMORY; + pwszSrc++; + cwcSrc--; } - else - { - memcpy(pszFullPath, pszRoot, cbRoot + 1); - char *pszDst = pszFullPath; - size_t cbDst = strlen(pszDst); - size_t cb = cbFullPath; - if (pszDst[cbDst - 1] != RTPATH_DELIMITER) - { - pszDst[cbDst] = RTPATH_DELIMITER; - cbDst++; - } - - if (pcbFullPathRoot) - *pcbFullPathRoot = cbDst - 1; /* Must index the path delimiter. */ - - pszDst += cbDst; - cb -= cbDst; - if (pPath->u16Length) - { - /* Convert and copy components. */ - PRTUTF16 pwszSrc = &pPath->String.ucs2[0]; - - /* Correct path delimiters */ - if (pClient->PathDelimiter != RTPATH_DELIMITER) - { - LogFlow(("Correct path delimiter in %ls\n", pwszSrc)); - while (*pwszSrc) - { - if (*pwszSrc == pClient->PathDelimiter) - *pwszSrc = RTPATH_DELIMITER; - pwszSrc++; - } - pwszSrc = &pPath->String.ucs2[0]; - LogFlow(("Corrected string %ls\n", pwszSrc)); - } - if (*pwszSrc == RTPATH_DELIMITER) - pwszSrc++; /* we already appended a delimiter to the first part */ - - rc = RTUtf16ToUtf8Ex(pwszSrc, RTSTR_MAX, &pszDst, cb, NULL); - if (RT_FAILURE(rc)) - { - AssertFailed(); + size_t cchPathAsUtf8 = RTUtf16CalcUtf8Len(pwszSrc); #ifdef RT_OS_DARWIN - RTMemFree(pPath); - pPath = pPathParameter; + AssertReturnStmt(cchPathAsUtf8 >= cwcSrc, RTMemFree(pPath), VERR_INTERNAL_ERROR_3); +#else + AssertReturn(cchPathAsUtf8 >= cwcSrc, VERR_INTERNAL_ERROR_3); #endif - return rc; - } - - cbDst = (uint32_t)strlen(pszDst); - /* Verify that the path is under the root directory. */ - rc = vbsfPathCheck(pszDst, cbDst); - if (RT_FAILURE(rc)) - { -#ifdef RT_OS_DARWIN - RTMemFree(pPath); - pPath = pPathParameter; -#endif - return rc; - } - - cb -= cbDst; - pszDst += cbDst; + /* Allocate buffer that will be able to contain the root prefix and + * the pPath converted to UTF-8. */ + cchFullPath = cchRoot + cchPathAsUtf8; + pszFullPath = (char *)RTMemAlloc(cchFullPath + 1 + 1); + if (RT_LIKELY(pszFullPath != NULL)) + { + /* Copy the root prefix into the result buffer and make sure it + ends with a path separator. */ + memcpy(pszFullPath, pszRoot, cchRoot); + if (!RTPATH_IS_SLASH(pszFullPath[cchRoot - 1])) + { + pszFullPath[cchRoot++] = RTPATH_DELIMITER; + cchFullPath++; + } - Assert(cb > 0); + /* Append the path specified by the guest (if any). */ + if (cchPathAsUtf8) + { + size_t cchActual; + char *pszDst = &pszFullPath[cchRoot]; + rc = RTUtf16ToUtf8Ex(pwszSrc, cwcSrc, &pszDst, cchFullPath - cchRoot + 1, &cchActual); + AssertRC(rc); + AssertStmt(RT_FAILURE(rc) || cchActual == cchPathAsUtf8, rc = VERR_INTERNAL_ERROR_4); + Assert(strlen(pszDst) == cchPathAsUtf8); } + else + rc = VINF_SUCCESS; - /* Nul terminate the string */ - *pszDst = 0; + /* Terminate the string. */ + pszFullPath[cchRoot + cchPathAsUtf8] = '\0'; } + else + { + Log(("RTMemAlloc %x failed!!\n", cchFullPath + 1)); + rc = VERR_NO_MEMORY; + } + #ifdef RT_OS_DARWIN RTMemFree(pPath); pPath = pPathParameter; #endif } - if (RT_SUCCESS(rc)) { - /* When the host file system is case sensitive and the guest expects a case insensitive fs, then problems can occur */ - if ( vbsfIsHostMappingCaseSensitive(root) - && !vbsfIsGuestMappingCaseSensitive(root)) - { - RTFSOBJINFO info; - char *pszLastComponent = NULL; - - if (fWildCard || fPreserveLastComponent) - { - /* strip off the last path component, that has to be preserved: contains the wildcard(s) or a 'rename' target. */ - size_t cb = strlen(pszFullPath); - char *pszSrc = pszFullPath + cb - 1; + Assert(strlen(pszFullPath) == cchFullPath); + Assert(RTPATH_IS_SLASH(pszFullPath[cchRoot - 1])); /* includes delimiter. */ - while (pszSrc > pszFullPath) - { - if (*pszSrc == RTPATH_DELIMITER) - break; - pszSrc--; - } - if (*pszSrc == RTPATH_DELIMITER) - { - bool fHaveWildcards = false; - char *psz = pszSrc; + if (pcbFullPathRoot) + *pcbFullPathRoot = cchRoot - 1; /* Must index the path delimiter. */ - while (*psz) - { - char ch = *psz; - if (ch == '*' || ch == '?' || ch == '>' || ch == '<' || ch == '"') - { - fHaveWildcards = true; - break; - } - psz++; - } - - if (fHaveWildcards || fPreserveLastComponent) - { - pszLastComponent = pszSrc; - *pszLastComponent = 0; - } - } - } + /* + * Convert guest path delimiters into host ones and check for attempts + * to escape the shared folder root directory. + * + * After this, there will only be RTPATH_DELIMITER slashes in the path! + * + * ASSUMES that the root path only has RTPATH_DELIMITER as well. + */ + char ch; + char *pszTmp = &pszFullPath[cchRoot]; + while ((ch = *pszTmp) != '\0') + { + if (VBSF_IS_PATH_SLASH(pClient, ch)) + *pszTmp = RTPATH_DELIMITER; + pszTmp++; + } + LogFlow(("Corrected string %s\n", pszFullPath)); - /** @todo don't check when creating files or directories; waste of time */ - rc = RTPathQueryInfoEx(pszFullPath, &info, RTFSOBJATTRADD_NOTHING, SHFL_RT_LINK(pClient)); - if (rc == VERR_FILE_NOT_FOUND || rc == VERR_PATH_NOT_FOUND) + rc = vbsfPathCheck(&pszFullPath[cchRoot]); + if (RT_SUCCESS(rc)) + { + /* + * When the host file system is case sensitive and the guest expects + * a case insensitive fs, then problems can occur. + */ + if ( vbsfIsHostMappingCaseSensitive(root) + && !vbsfIsGuestMappingCaseSensitive(root)) + rc = vbsfCorrectPathCasing(pClient, pszFullPath, cchFullPath, fWildCard, fPreserveLastComponent); + if (RT_SUCCESS(rc)) { - size_t cb = strlen(pszFullPath); - char *pszSrc = pszFullPath + cb - 1; - - Log(("Handle case insensitive guest fs on top of host case sensitive fs for %s\n", pszFullPath)); - - /* Find partial path that's valid */ - while (pszSrc > pszFullPath) - { - if (*pszSrc == RTPATH_DELIMITER) - { - *pszSrc = 0; - rc = RTPathQueryInfoEx(pszFullPath, &info, RTFSOBJATTRADD_NOTHING, SHFL_RT_LINK(pClient)); - *pszSrc = RTPATH_DELIMITER; - if (rc == VINF_SUCCESS) - { -#ifdef DEBUG - *pszSrc = 0; - Log(("Found valid partial path %s\n", pszFullPath)); - *pszSrc = RTPATH_DELIMITER; -#endif - break; - } - } - - pszSrc--; - } - Assert(*pszSrc == RTPATH_DELIMITER && RT_SUCCESS(rc)); - if ( *pszSrc == RTPATH_DELIMITER - && RT_SUCCESS(rc)) - { - pszSrc++; - for (;;) - { - char *pszEnd = pszSrc; - bool fEndOfString = true; - - while (*pszEnd) - { - if (*pszEnd == RTPATH_DELIMITER) - break; - pszEnd++; - } - - if (*pszEnd == RTPATH_DELIMITER) - { - fEndOfString = false; - *pszEnd = 0; - rc = RTPathQueryInfoEx(pszSrc, &info, RTFSOBJATTRADD_NOTHING, SHFL_RT_LINK(pClient)); - Assert(rc == VINF_SUCCESS || rc == VERR_FILE_NOT_FOUND || rc == VERR_PATH_NOT_FOUND); - } - else if (pszEnd == pszSrc) - rc = VINF_SUCCESS; /* trailing delimiter */ - else - rc = VERR_FILE_NOT_FOUND; - - if (rc == VERR_FILE_NOT_FOUND || rc == VERR_PATH_NOT_FOUND) - { - /* path component is invalid; try to correct the casing */ - rc = vbsfCorrectCasing(pClient, pszFullPath, pszSrc); - if (RT_FAILURE(rc)) - { - if (!fEndOfString) - *pszEnd = RTPATH_DELIMITER; /* restore the original full path */ - break; - } - } - - if (fEndOfString) - break; - - *pszEnd = RTPATH_DELIMITER; - pszSrc = pszEnd + 1; - } - if (RT_FAILURE(rc)) - Log(("Unable to find suitable component rc=%d\n", rc)); - } - else - rc = VERR_FILE_NOT_FOUND; - + /* + * We're good. + */ + *ppszFullPath = pszFullPath; + LogFlow(("vbsfBuildFullPath: %s rc=%Rrc\n", pszFullPath, rc)); + return rc; } - if (pszLastComponent) - *pszLastComponent = RTPATH_DELIMITER; - /* might be a new file so don't fail here! */ - rc = VINF_SUCCESS; + /* Failed, clean up. */ + Log(("vbsfBuildFullPath: %s rc=%Rrc\n", pszFullPath, rc)); } - *ppszFullPath = pszFullPath; - - LogFlow(("vbsfBuildFullPath: %s rc=%Rrc\n", pszFullPath, rc)); + else + Log(("vbsfBuildPath: Caught escape attempt: (%.*s) '%s'\n", cchRoot, pszFullPath, &pszFullPath[cchRoot])); } + if (pszFullPath) + RTMemFree(pszFullPath); + *ppszFullPath = NULL; return rc; } diff -Nru virtualbox-4.1.12-dfsg/src/VBox/HostServices/SharedOpenGL/crserverlib/server_dispatch.py virtualbox-4.1.44-dfsg/src/VBox/HostServices/SharedOpenGL/crserverlib/server_dispatch.py --- virtualbox-4.1.12-dfsg/src/VBox/HostServices/SharedOpenGL/crserverlib/server_dispatch.py 2012-04-02 13:28:50.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/HostServices/SharedOpenGL/crserverlib/server_dispatch.py 2015-11-11 15:08:45.000000000 +0000 @@ -46,6 +46,7 @@ for func_name in keys: current = 0 array = "" + condition = "" m = re.search( r"^(Color|Normal)([1234])(ub|b|us|s|ui|i|f|d)$", func_name ) if m : current = 1 @@ -68,6 +69,7 @@ name = "texCoord" type = m.group(3) + m.group(2) array = "[texture-GL_TEXTURE0_ARB]" + condition = "if (texture >= GL_TEXTURE0_ARB && texture < GL_TEXTURE0_ARB + CR_MAX_TEXTURE_UNITS)" m = re.match( r"^(Index)(ub|b|us|s|ui|i|f|d)$", func_name ) if m : current = 1 @@ -91,18 +93,23 @@ name = string.lower( m.group(1)[:1] ) + m.group(1)[1:] type = m.group(3) + m.group(2) array = "[index]" + condition = "if (index < CR_MAX_VERTEX_ATTRIBS)" if func_name == "VertexAttrib4NubARB": current = 1 name = "vertexAttrib" type = "ub4" array = "[index]" + condition = "if (index < CR_MAX_VERTEX_ATTRIBS)" if current: params = apiutil.Parameters(func_name) print 'void SERVER_DISPATCH_APIENTRY crServerDispatch%s( %s )' % ( func_name, apiutil.MakeDeclarationString(params) ) print '{' - print '\tcr_server.head_spu->dispatch_table.%s( %s );' % (func_name, apiutil.MakeCallString(params) ) - print "\tcr_server.current.c.%s.%s%s = cr_unpackData;" % (name,type,array) + print '\t%s' % (condition) + print '\t{' + print '\t\tcr_server.head_spu->dispatch_table.%s( %s );' % (func_name, apiutil.MakeCallString(params) ) + print "\t\tcr_server.current.c.%s.%s%s = cr_unpackData;" % (name,type,array) + print '\t}' print '}\n' print """ diff -Nru virtualbox-4.1.12-dfsg/src/VBox/HostServices/SharedOpenGL/crserverlib/server_simpleget.py virtualbox-4.1.44-dfsg/src/VBox/HostServices/SharedOpenGL/crserverlib/server_simpleget.py --- virtualbox-4.1.12-dfsg/src/VBox/HostServices/SharedOpenGL/crserverlib/server_simpleget.py 2012-04-02 13:28:50.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/HostServices/SharedOpenGL/crserverlib/server_simpleget.py 2015-11-11 15:08:45.000000000 +0000 @@ -113,7 +113,14 @@ *get_values = (%s)CR_MAX_TEXTURE_UNITS; } } - """ % (types[index], types[index], types[index], types[index], types[index], types[index], types[index], types[index], types[index], types[index], types[index]) + else if (GL_MAX_VERTEX_ATTRIBS_ARB==pname) + { + if (CR_MAX_VERTEX_ATTRIBS < (GLuint)*get_values) + { + *get_values = (%s)CR_MAX_VERTEX_ATTRIBS; + } + } + """ % (types[index], types[index], types[index], types[index], types[index], types[index], types[index], types[index], types[index], types[index], types[index], types[index]) print '\tcrServerReturnValue( get_values, tablesize );' print '\tcrFree(get_values);' print '}\n' diff -Nru virtualbox-4.1.12-dfsg/src/VBox/HostServices/SharedOpenGL/Makefile.kmk virtualbox-4.1.44-dfsg/src/VBox/HostServices/SharedOpenGL/Makefile.kmk --- virtualbox-4.1.12-dfsg/src/VBox/HostServices/SharedOpenGL/Makefile.kmk 2012-04-02 13:28:49.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/HostServices/SharedOpenGL/Makefile.kmk 2015-11-11 15:08:44.000000000 +0000 @@ -273,5 +273,50 @@ $(VBOX_LIBPATH_X11) endif +LIBRARIES += VBoxOGLTest +VBoxOGLTest_TEMPLATE = VBOXR3 +ifneq ($(KBUILD_TARGET),darwin) + VBoxOGLTest_SOURCES = OpenGLTest/OpenGLTest.cpp +endif +VBoxOGLTest_SOURCES.darwin = OpenGLTest/OpenGLTestDarwin.cpp + +# +# VBoxTestOGL - OpenGL support test app. +# Note! Doesn't link with VBOX_WITH_DEBUG_VCC_CRT defined because it uses Qt. +# +if ( defined(VBOX_WITH_QTGUI) \ + && (defined(VBOX_WITH_CROGL) || defined(VBOX_WITH_VIDEOHWACCEL)) \ + && !defined(VBOX_WITH_DEBUG_VCC_CRT)) + ifneq ($(KBUILD_TARGET),darwin) + ifdef VBOX_WITH_VIDEOHWACCEL + USES += qt4 + endif + PROGRAMS += VBoxTestOGL + VBoxTestOGL_TEMPLATE = $(if $(VBOX_WITH_VIDEOHWACCEL),$(if $(VBOX_WITH_HARDENING),VBOXQT4GUI,VBOXQT4GUIEXE),VBOXMAINEXE) + VBoxTestOGL_SOURCES = OpenGLTest/OpenGLTestApp.cpp + VBoxTestOGL_LIBS = \ + $(if $(VBOX_WITH_CROGL), \ + $(PATH_STAGE_LIB)/VBoxOGLhostspuload$(VBOX_SUFF_LIB) \ + $(VBOX_LIB_OGL_HOSTCRUTIL),) \ + $(if $(VBOX_WITH_VIDEOHWACCEL), $(PATH_STAGE_LIB)/VBoxOGL2D$(VBOX_SUFF_LIB),) \ + $(LIB_RUNTIME) + VBoxTestOGL_DEFS += \ + $(if $(VBOX_WITH_CROGL), VBOX_WITH_CROGL,) \ + $(if $(VBOX_WITH_VIDEOHWACCEL), VBOX_WITH_VIDEOHWACCEL,) \ + VBOX_BUILD_TARGET=\"$(KBUILD_TARGET).$(KBUILD_TARGET_ARCH)\" \ + $(if $(VBOX_BLEEDING_EDGE),VBOX_BLEEDING_EDGE=\"$(VBOX_BLEEDING_EDGE)\",) + ifdef VBOX_WITH_VIDEOHWACCEL + VBoxTestOGL_QT_MODULES += Core Gui OpenGL + VBoxTestOGL_LDFLAGS.darwin += -framework OpenGL + VBoxTestOGL_LIBS.win += $(PATH_SDK_WINPSDK_LIB)/Opengl32.lib + if1of ($(KBUILD_TARGET), solaris linux freebsd) + # must come after VBoxOGL2D, therefore don't set the arch-specific LIBS variable here! + VBoxTestOGL_LIBS += GL + endif + endif + VBoxTestOGL_LDFLAGS.win = /SUBSYSTEM:windows + endif +endif + include $(KBUILD_PATH)/subfooter.kmk diff -Nru virtualbox-4.1.12-dfsg/src/VBox/HostServices/SharedOpenGL/OpenGLTest/OpenGLTestApp.cpp virtualbox-4.1.44-dfsg/src/VBox/HostServices/SharedOpenGL/OpenGLTest/OpenGLTestApp.cpp --- virtualbox-4.1.12-dfsg/src/VBox/HostServices/SharedOpenGL/OpenGLTest/OpenGLTestApp.cpp 1970-01-01 00:00:00.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/HostServices/SharedOpenGL/OpenGLTest/OpenGLTestApp.cpp 2015-11-11 15:08:44.000000000 +0000 @@ -0,0 +1,364 @@ +/* $Id: OpenGLTestApp.cpp $ */ +/** @file + * VBox host opengl support test application. + */ + +/* + * Copyright (C) 2009-2011 Oracle Corporation + * + * This file is part of VirtualBox Open Source Edition (OSE), as + * available from http://www.virtualbox.org. This file is free software; + * you can redistribute it and/or modify it under the terms of the GNU + * General Public License (GPL) as published by the Free Software + * Foundation, in version 2 as it comes in the "COPYING" file of the + * VirtualBox OSE distribution. VirtualBox OSE is distributed in the + * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind. + */ + +#include +#include +#include +#include +#include +#include +#ifdef RT_OS_WINDOWS +# include +#endif +#if !defined(RT_OS_WINDOWS) && !defined(RT_OS_OS2) +# include +# include +# include +#endif + +#include + +#define VBOXGLTEST_WITH_LOGGING + +#ifdef VBOXGLTEST_WITH_LOGGING +#include "package-generated.h" + +#include +#include +#include +#include +#include +#include + +#include +#include +#endif + +#ifdef VBOX_WITH_CROGL + +extern "C" +{ + extern void * crSPULoad(void *, int, char *, char *, void *); + extern void crSPUUnloadChain(void *); +} + + +static int vboxCheck3DAccelerationSupported() +{ + LogRel(("Testing 3D Support:\n")); + void *spu = crSPULoad(NULL, 0, (char*)"render", NULL, NULL); + if (spu) + { + crSPUUnloadChain(spu); + LogRel(("Testing 3D Succeeded!\n")); + return 0; + } + LogRel(("Testing 3D Failed\n")); + return 1; +} +#endif + +#ifdef VBOX_WITH_VIDEOHWACCEL +#include +#include +#include + +static int vboxCheck2DVideoAccelerationSupported() +{ + LogRel(("Testing 2D Support:\n")); + static int dummyArgc = 1; + static char * dummyArgv = (char*)"GlTest"; + QApplication app (dummyArgc, &dummyArgv); + + VBoxGLTmpContext ctx; + const QGLContext *pContext = ctx.makeCurrent(); + if(pContext) + { + VBoxVHWAInfo supportInfo; + supportInfo.init(pContext); + if(supportInfo.isVHWASupported()) + { + LogRel(("Testing 2D Succeeded!\n")); + return 0; + } + } + else + { + LogRel(("Failed to create gl context\n")); + } + LogRel(("Testing 2D Failed\n")); + return 1; +} +#endif + +#ifdef VBOXGLTEST_WITH_LOGGING +static int vboxInitLogging(const char *pszFilename, bool bGenNameSuffix) +{ + PRTLOGGER loggerRelease; + static const char * const s_apszGroups[] = VBOX_LOGGROUP_NAMES; + RTUINT fFlags = RTLOGFLAGS_PREFIX_TIME_PROG; +#if defined(RT_OS_WINDOWS) || defined(RT_OS_OS2) + fFlags |= RTLOGFLAGS_USECRLF; +#endif + char szError[RTPATH_MAX + 128] = ""; + const char * pszFilenameFmt; + RTLOGDEST enmLogDest; + if(pszFilename) + { + if(bGenNameSuffix) + pszFilenameFmt = "%s.%ld.log"; + else + pszFilenameFmt = "%s"; + enmLogDest = RTLOGDEST_FILE; + } + else + { + pszFilenameFmt = NULL; + enmLogDest = RTLOGDEST_STDOUT; + } + + int vrc = RTLogCreateEx(&loggerRelease, fFlags, "all", + "VBOX_RELEASE_LOG", RT_ELEMENTS(s_apszGroups), s_apszGroups, enmLogDest, + NULL /* pfnBeginEnd */, 0 /* cHistory */, 0 /* cbHistoryFileMax */, 0 /* uHistoryTimeMax */, + szError, sizeof(szError), pszFilenameFmt, pszFilename, RTTimeMilliTS()); + if (RT_SUCCESS(vrc)) + { + /* some introductory information */ + RTTIMESPEC timeSpec; + char szTmp[256]; + RTTimeSpecToString(RTTimeNow(&timeSpec), szTmp, sizeof(szTmp)); + RTLogRelLogger(loggerRelease, 0, ~0U, + "VBoxTestGL %s r%u %s (%s %s) release log\n" +#ifdef VBOX_BLEEDING_EDGE + "EXPERIMENTAL build " VBOX_BLEEDING_EDGE "\n" +#endif + "Log opened %s\n", + VBOX_VERSION_STRING, RTBldCfgRevision(), VBOX_BUILD_TARGET, + __DATE__, __TIME__, szTmp); + + vrc = RTSystemQueryOSInfo(RTSYSOSINFO_PRODUCT, szTmp, sizeof(szTmp)); + if (RT_SUCCESS(vrc) || vrc == VERR_BUFFER_OVERFLOW) + RTLogRelLogger(loggerRelease, 0, ~0U, "OS Product: %s\n", szTmp); + vrc = RTSystemQueryOSInfo(RTSYSOSINFO_RELEASE, szTmp, sizeof(szTmp)); + if (RT_SUCCESS(vrc) || vrc == VERR_BUFFER_OVERFLOW) + RTLogRelLogger(loggerRelease, 0, ~0U, "OS Release: %s\n", szTmp); + vrc = RTSystemQueryOSInfo(RTSYSOSINFO_VERSION, szTmp, sizeof(szTmp)); + if (RT_SUCCESS(vrc) || vrc == VERR_BUFFER_OVERFLOW) + RTLogRelLogger(loggerRelease, 0, ~0U, "OS Version: %s\n", szTmp); + vrc = RTSystemQueryOSInfo(RTSYSOSINFO_SERVICE_PACK, szTmp, sizeof(szTmp)); + if (RT_SUCCESS(vrc) || vrc == VERR_BUFFER_OVERFLOW) + RTLogRelLogger(loggerRelease, 0, ~0U, "OS Service Pack: %s\n", szTmp); +// RTLogRelLogger(loggerRelease, 0, ~0U, "Host RAM: %uMB RAM, available: %uMB\n", +// uHostRamMb, uHostRamAvailMb); + /* the package type is interesting for Linux distributions */ + char szExecName[RTPATH_MAX]; + char *pszExecName = RTProcGetExecutablePath(szExecName, sizeof(szExecName)); + RTLogRelLogger(loggerRelease, 0, ~0U, + "Executable: %s\n" + "Process ID: %u\n" + "Package type: %s" +#ifdef VBOX_OSE + " (OSE)" +#endif + "\n", + pszExecName ? pszExecName : "unknown", + RTProcSelf(), + VBOX_PACKAGE_STRING); + + /* register this logger as the release logger */ + RTLogRelSetDefaultInstance(loggerRelease); + + return VINF_SUCCESS; + } + + return vrc; +} +#endif + +static int vboxInitQuietMode() +{ +#if !defined(RT_OS_WINDOWS) && !defined(RT_OS_OS2) + /* This small test application might crash on some hosts. Do never + * generate a core dump as most likely some OpenGL library is + * responsible. */ + struct rlimit lim = { 0, 0 }; + setrlimit(RLIMIT_CORE, &lim); + + /* Redirect stderr to /dev/null */ + int fd = open("/dev/null", O_WRONLY); + if (fd != -1) + dup2(fd, STDERR_FILENO); +#endif + return 0; +} + +int main(int argc, char **argv) +{ + int rc = 0; + + RTR3Init(); + + if(argc < 2) + { +#ifdef VBOX_WITH_CROGL + /* backwards compatibility: check 3D */ + rc = vboxCheck3DAccelerationSupported(); +#endif + } + else + { + static const RTGETOPTDEF s_aOptionDefs[] = + { + { "--test", 't', RTGETOPT_REQ_STRING }, + { "-test", 't', RTGETOPT_REQ_STRING }, +#ifdef VBOXGLTEST_WITH_LOGGING + { "--log", 'l', RTGETOPT_REQ_STRING }, +#endif + }; + + RTGETOPTSTATE State; + rc = RTGetOptInit(&State, argc-1, argv+1, &s_aOptionDefs[0], RT_ELEMENTS(s_aOptionDefs), 0, 0); + AssertRCReturn(rc, 49); + +#ifdef VBOX_WITH_VIDEOHWACCEL + bool bTest2D = false; +#endif +#ifdef VBOX_WITH_CROGL + bool bTest3D = false; +#endif +#ifdef VBOXGLTEST_WITH_LOGGING + bool bLog = false; + bool bLogSuffix = false; + const char * pLog = NULL; +#endif + + for (;;) + { + RTGETOPTUNION Val; + rc = RTGetOpt(&State, &Val); + if (!rc) + break; + switch (rc) + { + case 't': +#ifdef VBOX_WITH_CROGL + if (!strcmp(Val.psz, "3D") || !strcmp(Val.psz, "3d")) + { + bTest3D = true; + rc = 0; + break; + } +#endif +#ifdef VBOX_WITH_VIDEOHWACCEL + if (!strcmp(Val.psz, "2D") || !strcmp(Val.psz, "2d")) + { + bTest2D = true; + rc = 0; + break; + } +#endif + rc = 1; + break; +#ifdef VBOXGLTEST_WITH_LOGGING + case 'l': + bLog = true; + pLog = Val.psz; + rc = 0; + break; +#endif + case 'h': + RTPrintf(VBOX_PRODUCT " Helper for testing 2D/3D OpenGL capabilities %u.%u.%u\n" + "(C) 2009-" VBOX_C_YEAR " " VBOX_VENDOR "\n" + "All rights reserved.\n" + "\n" + "Parameters:\n" +#ifdef VBOX_WITH_VIDEOHWACCEL + " --test 2D test for 2D (video) OpenGL capabilities\n" +#endif +#ifdef VBOX_WITH_CROGL + " --test 3D test for 3D OpenGL capabilities\n" +#endif +#ifdef VBOXGLTEST_WITH_LOGGING + " --log log the GL test result to the given file\n" + "\n" + "Logging can alternatively be enabled by specifying the VBOXGLTEST_LOG= env variable\n" + +#endif + "\n", + RTBldCfgVersionMajor(), RTBldCfgVersionMinor(), RTBldCfgVersionBuild()); + break; + + case 'V': + RTPrintf("$Revision: $\n"); + return 0; + + case VERR_GETOPT_UNKNOWN_OPTION: + case VINF_GETOPT_NOT_OPTION: + rc = 1; + + default: + /* complain? RTGetOptPrintError(rc, &Val); */ + break; + } + + if (rc) + break; + } + + if(!rc) + { +#ifdef VBOXGLTEST_WITH_LOGGING + if(!bLog) + { + /* check the VBOXGLTEST_LOG env var */ + pLog = RTEnvGet("VBOXGLTEST_LOG"); + if(pLog) + bLog = true; + bLogSuffix = true; + } + if(bLog) + rc = vboxInitLogging(pLog, bLogSuffix); + else +#endif + rc = vboxInitQuietMode(); + +#ifdef VBOX_WITH_CROGL + if(!rc && bTest3D) + rc = vboxCheck3DAccelerationSupported(); +#endif + +#ifdef VBOX_WITH_VIDEOHWACCEL + if(!rc && bTest2D) + rc = vboxCheck2DVideoAccelerationSupported(); +#endif + + } + } + + /*RTR3Term();*/ + return rc; + +} + +#ifdef RT_OS_WINDOWS +extern "C" int WINAPI WinMain(HINSTANCE hInstance, + HINSTANCE /*hPrevInstance*/, LPSTR lpCmdLine, int /*nShowCmd*/) +{ + return main(__argc, __argv); +} +#endif + diff -Nru virtualbox-4.1.12-dfsg/src/VBox/HostServices/SharedOpenGL/OpenGLTest/OpenGLTest.cpp virtualbox-4.1.44-dfsg/src/VBox/HostServices/SharedOpenGL/OpenGLTest/OpenGLTest.cpp --- virtualbox-4.1.12-dfsg/src/VBox/HostServices/SharedOpenGL/OpenGLTest/OpenGLTest.cpp 1970-01-01 00:00:00.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/HostServices/SharedOpenGL/OpenGLTest/OpenGLTest.cpp 2015-11-11 15:08:44.000000000 +0000 @@ -0,0 +1,80 @@ +/* $Id: OpenGLTest.cpp $ */ +/** @file + * VBox host opengl support test - generic implementation. + */ + +/* + * Copyright (C) 2009 Oracle Corporation + * + * This file is part of VirtualBox Open Source Edition (OSE), as + * available from http://www.virtualbox.org. This file is free software; + * you can redistribute it and/or modify it under the terms of the GNU + * General Public License (GPL) as published by the Free Software + * Foundation, in version 2 as it comes in the "COPYING" file of the + * VirtualBox OSE distribution. VirtualBox OSE is distributed in the + * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind. + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include + +bool RTCALL VBoxOglIs3DAccelerationSupported() +{ + static char pszVBoxPath[RTPATH_MAX]; + const char *papszArgs[4] = { NULL, "-test", "3D", NULL}; + int rc; + RTPROCESS Process; + RTPROCSTATUS ProcStatus; + uint64_t StartTS; + + rc = RTPathExecDir(pszVBoxPath, RTPATH_MAX); AssertRCReturn(rc, false); +#if defined(RT_OS_WINDOWS) || defined(RT_OS_OS2) + rc = RTPathAppend(pszVBoxPath, RTPATH_MAX, "VBoxTestOGL.exe"); +#else + rc = RTPathAppend(pszVBoxPath, RTPATH_MAX, "VBoxTestOGL"); +#endif + papszArgs[0] = pszVBoxPath; /* argv[0] */ + AssertRCReturn(rc, false); + + rc = RTProcCreate(pszVBoxPath, papszArgs, RTENV_DEFAULT, 0, &Process); + if (RT_FAILURE(rc)) + return false; + + StartTS = RTTimeMilliTS(); + + while (1) + { + rc = RTProcWait(Process, RTPROCWAIT_FLAGS_NOBLOCK, &ProcStatus); + if (rc != VERR_PROCESS_RUNNING) + break; + + if (RTTimeMilliTS() - StartTS > 30*1000 /* 30 sec */) + { + RTProcTerminate(Process); + RTThreadSleep(100); + RTProcWait(Process, RTPROCWAIT_FLAGS_NOBLOCK, &ProcStatus); + return false; + } + RTThreadSleep(100); + } + + if (RT_SUCCESS(rc)) + { + if ((ProcStatus.enmReason==RTPROCEXITREASON_NORMAL) && (ProcStatus.iStatus==0)) + { + return true; + } + } + + return false; +} + diff -Nru virtualbox-4.1.12-dfsg/src/VBox/HostServices/SharedOpenGL/OpenGLTest/OpenGLTestDarwin.cpp virtualbox-4.1.44-dfsg/src/VBox/HostServices/SharedOpenGL/OpenGLTest/OpenGLTestDarwin.cpp --- virtualbox-4.1.12-dfsg/src/VBox/HostServices/SharedOpenGL/OpenGLTest/OpenGLTestDarwin.cpp 1970-01-01 00:00:00.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/HostServices/SharedOpenGL/OpenGLTest/OpenGLTestDarwin.cpp 2015-11-11 15:08:44.000000000 +0000 @@ -0,0 +1,82 @@ +/* $Id: OpenGLTestDarwin.cpp $ */ + +/** @file + * VBox host opengl support test + */ + +/* + * Copyright (C) 2009 Oracle Corporation + * + * This file is part of VirtualBox Open Source Edition (OSE), as + * available from http://www.virtualbox.org. This file is free software; + * you can redistribute it and/or modify it under the terms of the GNU + * General Public License (GPL) as published by the Free Software + * Foundation, in version 2 as it comes in the "COPYING" file of the + * VirtualBox OSE distribution. VirtualBox OSE is distributed in the + * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind. + */ + + +#include +#include +#include +#ifdef VBOX_WITH_COCOA_QT +# include +# include +#endif /* VBOX_WITH_COCOA_QT */ + +#include + +bool RTCALL VBoxOglIs3DAccelerationSupported() +{ + CGDirectDisplayID display = CGMainDisplayID (); + CGOpenGLDisplayMask cglDisplayMask = CGDisplayIDToOpenGLDisplayMask (display); + CGLPixelFormatObj pixelFormat = NULL; + GLint numPixelFormats = 0; + + CGLPixelFormatAttribute attribs[] = { + kCGLPFADisplayMask, + (CGLPixelFormatAttribute)cglDisplayMask, + kCGLPFAAccelerated, + kCGLPFADoubleBuffer, + kCGLPFAWindow, + (CGLPixelFormatAttribute)NULL + }; + + display = CGMainDisplayID(); + cglDisplayMask = CGDisplayIDToOpenGLDisplayMask(display); + CGLChoosePixelFormat(attribs, &pixelFormat, &numPixelFormats); + + if (pixelFormat) + { + CGLContextObj cglContext = 0; + CGLCreateContext(pixelFormat, NULL, &cglContext); + CGLDestroyPixelFormat(pixelFormat); + if (cglContext) + { + GLboolean isSupported = GL_TRUE; +#ifdef VBOX_WITH_COCOA_QT + /* On the Cocoa port we depend on the GL_EXT_framebuffer_object & + * the GL_EXT_texture_rectangle extension. If they are not + * available, disable 3D support. */ + CGLSetCurrentContext(cglContext); + const GLubyte* strExt; + strExt = glGetString(GL_EXTENSIONS); + isSupported = gluCheckExtension((const GLubyte*)"GL_EXT_framebuffer_object", strExt); + if (isSupported) + { + isSupported = gluCheckExtension((const GLubyte*)"GL_EXT_texture_rectangle", strExt); + if (!isSupported) + LogRel(("OpenGL Info: GL_EXT_texture_rectangle extension not supported\n")); + } + else + LogRel(("OpenGL Info: GL_EXT_framebuffer_object extension not supported\n")); +#endif /* VBOX_WITH_COCOA_QT */ + CGLDestroyContext(cglContext); + return isSupported == GL_TRUE ? true : false; + } + } + + return false; +} + Binary files /tmp/_RuVdsxfi6/virtualbox-4.1.12-dfsg/src/VBox/Installer/darwin/DiskImage/DS_Store and /tmp/SOL6sj7OaT/virtualbox-4.1.44-dfsg/src/VBox/Installer/darwin/DiskImage/DS_Store differ diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Installer/darwin/DiskImage/VirtualBox_Uninstall.tool virtualbox-4.1.44-dfsg/src/VBox/Installer/darwin/DiskImage/VirtualBox_Uninstall.tool --- virtualbox-4.1.12-dfsg/src/VBox/Installer/darwin/DiskImage/VirtualBox_Uninstall.tool 2012-04-02 13:28:50.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Installer/darwin/DiskImage/VirtualBox_Uninstall.tool 2015-11-11 15:08:46.000000000 +0000 @@ -81,7 +81,7 @@ test -d /Library/Receipts/VBoxUSB.pkg/ && my_directories="$my_directories /Library/Receipts/VBoxUSB.pkg/" # python stuff -python_versions="2.3 2.5 2.6" +python_versions="2.3 2.5 2.6 2.7" for p in $python_versions; do test -f /Library/Python/$p/site-packages/vboxapi/VirtualBox_constants.py && my_files="$my_files /Library/Python/$p/site-packages/vboxapi/VirtualBox_constants.py" test -f /Library/Python/$p/site-packages/vboxapi/VirtualBox_constants.pyc && my_files="$my_files /Library/Python/$p/site-packages/vboxapi/VirtualBox_constants.pyc" diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Installer/darwin/Makefile.kmk virtualbox-4.1.44-dfsg/src/VBox/Installer/darwin/Makefile.kmk --- virtualbox-4.1.12-dfsg/src/VBox/Installer/darwin/Makefile.kmk 2012-04-02 13:28:50.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Installer/darwin/Makefile.kmk 2015-11-11 15:08:46.000000000 +0000 @@ -18,13 +18,6 @@ SUB_DEPTH = ../../../.. include $(KBUILD_PATH)/subheader.kmk -# -# Include sub-makefiles. -# -ifndef VBOX_OSE - include $(PATH_SUB_CURRENT)/InstallerPlugins/Makefile.kmk -endif - # # Globals @@ -59,10 +52,14 @@ # Unset this to speed up things during makefile hacking. VBOX_DARWIN_INST_DEP_ON_MAKEFILE := $(MAKEFILE_CURRENT) -# The location of the PackageMaker program. -ifndef VBOX_PACKAGEMAKER - VBOX_PACKAGEMAKER := $(firstword $(rsort $(wildcard $(PATH_DEVTOOLS)/darwin.x86/packagemaker/v*/PackageMaker.app/Contents/MacOS/PackageMaker)) \ - /Developer/Applications/Utilities/PackageMaker.app/Contents/MacOS/PackageMaker) +# The location of the pkgbuild program. +ifndef VBOX_PKGBUILD + VBOX_PKGBUILD := pkgbuild +endif + +# The location of the productbuild program. +ifndef VBOX_PRODUCTBUILD + VBOX_PRODUCTBUILD := productbuild endif # Where we do the packing (override this in LocalConfig.kmk if building on smbfs). @@ -70,17 +67,6 @@ VBOX_PATH_PACK_TMP := $(VBOX_DI_OUT_DIR) endif -# These tools are necessary -## @Todo rename to VBOX_DI_XYZ these conflict with other globals. -TAR=/usr/bin/tar -ZIP=/usr/bin/zip -GZIP=/usr/bin/gzip -BZIP2=/usr/bin/bzip2 -GREP=/usr/bin/grep -XARGS=/usr/bin/xargs -UNZIP=/usr/bin/unzip -AWK=/usr/bin/awk -HDIUTIL=/usr/bin/hdiutil # # Install the darwin docs/license. @@ -96,13 +82,6 @@ # The packing. # PACKING += $(VBOX_PATH_DIST)/VirtualBox-$(VBOX_VERSION_MAJOR).$(VBOX_VERSION_MINOR).$(VBOX_VERSION_BUILD)-r$(VBOX_SVN_REV).dmg -ifdef VBOX_WITH_BUNDLED_INSTALLER - PACKING += $(VBOX_PATH_DIST)/VBoxMacBundleInstaller-$(KBUILD_TARGET_ARCH).zip -endif -ifdef VBOX_WITH_BUNDLED_ISO -iso: $(if $(eq $(filter CD,$(VBOX_BRAND_MEDIA)),CD),$(VBOX_PATH_DIST)/VirtualBox.iso,) \ - $(if $(eq $(filter DVD,$(VBOX_BRAND_MEDIA)),DVD),$(VBOX_PATH_DIST)/VirtualBoxBundle.iso,) -endif #OTHER_CLEAN = TODO @@ -137,7 +116,7 @@ # The disk image. # $(VBOX_PATH_DIST)/VirtualBox-$(VBOX_VERSION_MAJOR).$(VBOX_VERSION_MINOR).$(VBOX_VERSION_BUILD)-r$(VBOX_SVN_REV).dmg: \ - $(VBOX_PATH_PACK_TMP)/DiskImage/VirtualBox.mpkg \ + $(VBOX_PATH_PACK_TMP)/DiskImage/VirtualBox.pkg \ $(VBOX_BRAND_DARWIN_DISKIMAGE_BG) \ $(VBOX_BRAND_DARWIN_DISKIMAGE_DS_STORE) \ $$(wildcard $(VBOX_PATH_DI_SRC)/DiskImage/*) \ @@ -149,7 +128,7 @@ @# Cleanup any previously failed attempts and various trash. sudo rm -Rf $(VBOX_PATH_PACK_TMP)/DiskImage.tmp $(MKDIR) -p $(VBOX_PATH_PACK_TMP)/DiskImage.tmp/ - sudo mv $(VBOX_PATH_PACK_TMP)/DiskImage/VirtualBox.mpkg $(VBOX_PATH_PACK_TMP)/DiskImage.tmp/ + sudo mv $(VBOX_PATH_PACK_TMP)/DiskImage/VirtualBox.pkg $(VBOX_PATH_PACK_TMP)/DiskImage.tmp/ sudo rm -Rf \ $@ \ $(VBOX_PATH_PACK_TMP)/DiskImage/ @@ -158,7 +137,7 @@ $(INSTALL) $(VBOX_PATH_DI_SRC)/DiskImage/VirtualBox_Uninstall.tool $(VBOX_PATH_PACK_TMP)/DiskImage/ ifeq (1,1) @# Pedantic mode... - $(INSTALL) -m 644 $(VBOX_BRAND_DARWIN_DISKIMAGE_DS_STORE) $(VBOX_PATH_PACK_TMP)/DiskImage/.DS_Store + $(INSTALL) -m 644 $(VBOX_BRAND_DARWIN_DISKIMAGE_DS_STORE) $(VBOX_PATH_PACK_TMP)/DiskImage/.DS_Store $(MKDIR) $(VBOX_PATH_PACK_TMP)/DiskImage/.background $(INSTALL) -m 644 $(VBOX_BRAND_DARWIN_DISKIMAGE_BG) $(VBOX_PATH_PACK_TMP)/DiskImage/.background/vbox_folder.tiff ifdef VBOX_WITH_BUNDLED_INSTALLER @@ -183,36 +162,28 @@ # # The meta-package. # -$(VBOX_PATH_PACK_TMP)/DiskImage/VirtualBox.mpkg: \ +$(VBOX_PATH_PACK_TMP)/DiskImage/VirtualBox.pkg: \ $(VBOX_PATH_PACK_TMP)/Packages/VBoxStartupItems.pkg \ $(VBOX_PATH_PACK_TMP)/Packages/VBoxKEXTs.pkg \ $(VBOX_PATH_PACK_TMP)/Packages/VirtualBoxCLI.pkg \ $(VBOX_PATH_PACK_TMP)/Packages/VirtualBox.pkg \ - $$(RegistrationPane_1_TARGET) \ - $(if $(VBOX_OSE), , \ - $(VBOX_PATH_DI_SRC)/InstallerPlugins/RegistrationPane/Info.plist \ - $$(wildcard $(VBOX_PATH_DI_SRC)/InstallerPlugins/RegistrationPane/Resources/*.lproj/*.strings \ - $(VBOX_PATH_DI_SRC)/InstallerPlugins/RegistrationPane/Resources/*.lproj/RegistrationPane.nib/*.nib)) \ - $$(wildcard $(VBOX_PATH_DI_SRC)/VirtualBox_mpkg/* \ + $$(wildcard $(VBOX_PATH_DI_SRC)/VirtualBox_mpkg/* \ $(VBOX_PATH_DI_SRC)/VirtualBox_mpkg/*.lproj/*) \ - $(foreach f,$(VBOX_INSTALLER_ADD_LANGUAGES), \ - $(VBOX_BRAND_$(f)_VIRTUALBOX_WELCOME_HTML) \ - $(VBOX_BRAND_$(f)_REGISTRATIONPANE_INFOPLIST_STRINGS) \ - $(VBOX_BRAND_$(f)_REGISTRATIONPANE_LOCALIZABLE_STRINGS)) \ + $(foreach f,$(VBOX_INSTALLER_ADD_LANGUAGES), $(VBOX_BRAND_$(f)_VIRTUALBOX_WELCOME_RTF)) \ $(VBOX_DARWIN_INST_DEP_ON_MAKEFILE) - $(call MSG_TOOL,PackageMaker,,,$@) + $(call MSG_TOOL,productbuild,,,$@) @# Cleanup any previously failed attempts. sudo rm -Rf \ $@ \ - $(VBOX_PATH_PACK_TMP)/VirtualBox.mpkg.root \ - $(VBOX_PATH_PACK_TMP)/VirtualBox.mpkg.desc \ - $(VBOX_PATH_PACK_TMP)/VirtualBox.mpkg.res + $(VBOX_PATH_PACK_TMP)/VirtualBox.dist.root \ + $(VBOX_PATH_PACK_TMP)/VirtualBox.dist.desc \ + $(VBOX_PATH_PACK_TMP)/VirtualBox.dist.res @# Correct directory permissions are important. $(MKDIR) -p \ $(@D) \ - $(VBOX_PATH_PACK_TMP)/VirtualBox.mpkg.desc \ - $(VBOX_PATH_PACK_TMP)/VirtualBox.mpkg.res \ - $(VBOX_PATH_PACK_TMP)/VirtualBox.mpkg.res/English.lproj + $(VBOX_PATH_PACK_TMP)/VirtualBox.dist.desc \ + $(VBOX_PATH_PACK_TMP)/VirtualBox.dist.res \ + $(VBOX_PATH_PACK_TMP)/VirtualBox.dist.res/English.lproj @# Do keyword replacement in the package info and description files. $(SED) \ -e 's/@VBOX_VERSION_STRING@/$(VBOX_VERSION_STRING)/g' \ @@ -222,97 +193,51 @@ -e 's/@VBOX_VENDOR@/$(VBOX_VENDOR)/g' \ -e 's/@VBOX_PRODUCT@/$(VBOX_PRODUCT)/g' \ -e 's/@VBOX_C_YEAR@/$(VBOX_C_YEAR)/g' \ - --output $(VBOX_PATH_PACK_TMP)/VirtualBox.mpkg.desc/Info.plist \ - $(VBOX_PATH_DI_SRC)/VirtualBox_mpkg/Info.plist - $(SED) \ - -e 's/@VBOX_VERSION_STRING@/$(VBOX_VERSION_STRING)/g' \ - -e 's/@VBOX_VERSION_MAJOR@/$(VBOX_VERSION_MAJOR)/g' \ - -e 's/@VBOX_VERSION_MINOR@/$(VBOX_VERSION_MINOR)/g' \ - -e 's/@VBOX_VERSION_BUILD@/$(VBOX_VERSION_BUILD)/g' \ - -e 's/@VBOX_VENDOR@/$(VBOX_VENDOR)/g' \ - -e 's/@VBOX_PRODUCT@/$(VBOX_PRODUCT)/g' \ - -e 's/@VBOX_C_YEAR@/$(VBOX_C_YEAR)/g' \ - --output $(VBOX_PATH_PACK_TMP)/VirtualBox.mpkg.desc/Description.plist \ - $(VBOX_PATH_DI_SRC)/VirtualBox_mpkg/Description.plist - $(SED) \ - -e 's/@VBOX_VERSION_STRING@/$(VBOX_VERSION_STRING)/g' \ - -e 's/@VBOX_VERSION_MAJOR@/$(VBOX_VERSION_MAJOR)/g' \ - -e 's/@VBOX_VERSION_MINOR@/$(VBOX_VERSION_MINOR)/g' \ - -e 's/@VBOX_VERSION_BUILD@/$(VBOX_VERSION_BUILD)/g' \ - -e 's/@VBOX_VENDOR@/$(VBOX_VENDOR)/g' \ - -e 's/@VBOX_PRODUCT@/$(VBOX_PRODUCT)/g' \ - -e 's/@VBOX_C_YEAR@/$(VBOX_C_YEAR)/g' \ - --output $(VBOX_PATH_PACK_TMP)/VirtualBox.mpkg.res/English.lproj/Welcome.html \ - $(VBOX_PATH_DI_SRC)/VirtualBox_mpkg/Welcome.html + --output $(VBOX_PATH_PACK_TMP)/VirtualBox.dist.res/English.lproj/Welcome.rtf \ + $(VBOX_PATH_DI_SRC)/VirtualBox_mpkg/Welcome.rtf @# Copy the resources. -# $(INSTALL) -m 0644 $(VBOX_PATH_DI_SRC)/VirtualBox_mpkg/ReadMe.html $(VBOX_PATH_PACK_TMP)/VirtualBox.mpkg.res/English.lproj/ReadMe.html - $(INSTALL) -m 0644 $(VBOX_PATH_DI_SRC)/VirtualBox_mpkg/Conclusion.html $(VBOX_PATH_PACK_TMP)/VirtualBox.mpkg.res/English.lproj/Conclusion.html + $(INSTALL) -m 0644 $(VBOX_PATH_DI_SRC)/VirtualBox_mpkg/Conclusion.rtf $(VBOX_PATH_PACK_TMP)/VirtualBox.dist.res/English.lproj/Conclusion.rtf $(SED) \ -e 's/@VBOX_VENDOR@/$(VBOX_VENDOR)/g' \ -e 's/@VBOX_PRODUCT@/$(VBOX_PRODUCT)/g' \ -e 's/@VBOX_C_YEAR@/$(VBOX_C_YEAR)/g' \ - --output $(VBOX_PATH_PACK_TMP)/VirtualBox.mpkg.res/English.lproj/Localizable.strings \ + --output $(VBOX_PATH_PACK_TMP)/VirtualBox.dist.res/English.lproj/Localizable.strings \ $(VBOX_PATH_DI_SRC)/VirtualBox_mpkg/Localizable.strings - $(INSTALL) -m 0644 $(VBOX_BRAND_DARWIN_INSTALLER_BG) $(VBOX_PATH_PACK_TMP)/VirtualBox.mpkg.res/background.tif - $(INSTALL) -m 0766 $(VBOX_PATH_DI_SRC)/VirtualBox_mpkg/checkforrunningvms $(VBOX_PATH_PACK_TMP)/VirtualBox.mpkg.res/checkforrunningvms + $(INSTALL) -m 0644 $(VBOX_BRAND_DARWIN_INSTALLER_BG) $(VBOX_PATH_PACK_TMP)/VirtualBox.dist.res/background.tif $(foreach f,$(VBOX_INSTALLER_ADD_LANGUAGES), \ $(MKDIR) -p \ - $(VBOX_PATH_PACK_TMP)/VirtualBox.mpkg.res/$(VBOX_INSTALLER_$(f)_DARWIN_TARGET).lproj$(NLTAB) \ + $(VBOX_PATH_PACK_TMP)/VirtualBox.dist.res/$(VBOX_INSTALLER_$(f)_DARWIN_TARGET).lproj$(NLTAB) \ $(SED) \ -e 's/@VBOX_VERSION_STRING@/$(VBOX_VERSION_STRING)/g' \ -e 's/@VBOX_VERSION_MAJOR@/$(VBOX_VERSION_MAJOR)/g' \ -e 's/@VBOX_VERSION_MINOR@/$(VBOX_VERSION_MINOR)/g' \ -e 's/@VBOX_VERSION_BUILD@/$(VBOX_VERSION_BUILD)/g' \ - --output $(VBOX_PATH_PACK_TMP)/VirtualBox.mpkg.res/$(VBOX_INSTALLER_$(f)_DARWIN_TARGET).lproj/Welcome.html \ - $(VBOX_BRAND_$(f)_VIRTUALBOX_WELCOME_HTML)$(NLTAB) \ - $(INSTALL) -m 0644 $(VBOX_BRAND_$(f)_VIRTUALBOX_CONCLUSION_HTML) $(VBOX_PATH_PACK_TMP)/VirtualBox.mpkg.res/$(VBOX_INSTALLER_$(f)_DARWIN_TARGET).lproj/Conclusion.html$(NLTAB) \ + --output $(VBOX_PATH_PACK_TMP)/VirtualBox.dist.res/$(VBOX_INSTALLER_$(f)_DARWIN_TARGET).lproj/Welcome.rtf \ + $(VBOX_BRAND_$(f)_VIRTUALBOX_WELCOME_RTF)$(NLTAB) \ + $(INSTALL) -m 0644 $(VBOX_BRAND_$(f)_VIRTUALBOX_CONCLUSION_RTF) $(VBOX_PATH_PACK_TMP)/VirtualBox.dist.res/$(VBOX_INSTALLER_$(f)_DARWIN_TARGET).lproj/Conclusion.rtf$(NLTAB) \ $(SED) \ -e 's/@VBOX_VENDOR@/$(VBOX_VENDOR)/g' \ -e 's/@VBOX_PRODUCT@/$(VBOX_PRODUCT)/g' \ -e 's/@VBOX_C_YEAR@/$(VBOX_C_YEAR)/g' \ - --output $(VBOX_PATH_PACK_TMP)/VirtualBox.mpkg.res/$(VBOX_INSTALLER_$(f)_DARWIN_TARGET).lproj/Localizable.strings \ + --output $(VBOX_PATH_PACK_TMP)/VirtualBox.dist.res/$(VBOX_INSTALLER_$(f)_DARWIN_TARGET).lproj/Localizable.strings \ $(VBOX_BRAND_$(f)_VIRTUALBOX_LOCALIZABLE_STRINGS)$(NLTAB) \ ) @# Build the package. - $(VBOX_PACKAGEMAKER) -build -v \ - -p $@ \ - -r $(VBOX_PATH_PACK_TMP)/VirtualBox.mpkg.res \ - -i $(VBOX_PATH_PACK_TMP)/VirtualBox.mpkg.desc/Info.plist \ - -d $(VBOX_PATH_PACK_TMP)/VirtualBox.mpkg.desc/Description.plist \ - -mi $(VBOX_PATH_PACK_TMP)/Packages - @# Copy the plugins. - $(INSTALL) -m 0644 $(VBOX_PATH_DI_SRC)/VirtualBox_mpkg/distribution.dist $@/Contents/ -ifndef VBOX_OSE - $(MKDIR) -p $@/Contents/Plugins/ -ifdef VBOX_WITH_SERIALNUMBER_INSTALL - $(INSTALL) -m 0644 $(VBOX_PATH_DI_SRC)/InstallerPlugins/InstallerSections.plist $@/Contents/Plugins/InstallerSections.plist -else - $(INSTALL) -m 0644 $(VBOX_PATH_DI_SRC)/InstallerPlugins/InstallerSections.plist $@/Contents/Plugins/InstallerSections.plist.off -endif - @# Copy the Registration Pane plugin. - $(MKDIR) -p $@/Contents/Plugins/RegistrationPane.bundle/Contents/MacOS/ - $(INSTALL) -m 0644 $(VBOX_PATH_DI_SRC)/InstallerPlugins/RegistrationPane/Info.plist $@/Contents/Plugins/RegistrationPane.bundle/Contents/ - $(INSTALL) -m 0644 $(RegistrationPane_1_TARGET) $@/Contents/Plugins/RegistrationPane.bundle/Contents/MacOS/ - $(MKDIR) -p $@/Contents/Plugins/RegistrationPane.bundle/Contents/Resources/English.lproj/RegistrationPane.nib - $(INSTALL) -m 0644 $(VBOX_PATH_DI_SRC)/InstallerPlugins/RegistrationPane/Resources/English.lproj/InfoPlist.strings $@/Contents/Plugins/RegistrationPane.bundle/Contents/Resources/English.lproj/ - $(INSTALL) -m 0644 $(VBOX_PATH_DI_SRC)/InstallerPlugins/RegistrationPane/Resources/English.lproj/Localizable.strings $@/Contents/Plugins/RegistrationPane.bundle/Contents/Resources/English.lproj/ - $(INSTALL) -m 0644 $(VBOX_PATH_DI_SRC)/InstallerPlugins/RegistrationPane/Resources/English.lproj/RegistrationPane.nib/classes.nib $@/Contents/Plugins/RegistrationPane.bundle/Contents/Resources/English.lproj/RegistrationPane.nib/ - $(INSTALL) -m 0644 $(VBOX_PATH_DI_SRC)/InstallerPlugins/RegistrationPane/Resources/English.lproj/RegistrationPane.nib/info.nib $@/Contents/Plugins/RegistrationPane.bundle/Contents/Resources/English.lproj/RegistrationPane.nib/ - $(INSTALL) -m 0644 $(VBOX_PATH_DI_SRC)/InstallerPlugins/RegistrationPane/Resources/English.lproj/RegistrationPane.nib/keyedobjects.nib $@/Contents/Plugins/RegistrationPane.bundle/Contents/Resources/English.lproj/RegistrationPane.nib/ - $(foreach f,$(VBOX_INSTALLER_ADD_LANGUAGES), \ - $(MKDIR) -p \ - $@/Contents/Plugins/RegistrationPane.bundle/Contents/Resources/$(VBOX_INSTALLER_$(f)_DARWIN_TARGET).lproj$(NLTAB) \ - $(INSTALL) -m 0644 $(VBOX_BRAND_$(f)_REGISTRATIONPANE_INFOPLIST_STRINGS) $@/Contents/Plugins/RegistrationPane.bundle/Contents/Resources/$(VBOX_INSTALLER_$(f)_DARWIN_TARGET).lproj/InfoPlist.strings$(NLTAB) \ - $(INSTALL) -m 0644 $(VBOX_BRAND_$(f)_REGISTRATIONPANE_LOCALIZABLE_STRINGS) $@/Contents/Plugins/RegistrationPane.bundle/Contents/Resources/$(VBOX_INSTALLER_$(f)_DARWIN_TARGET).lproj/Localizable.strings$(NLTAB) \ - ) -endif + $(VBOX_PRODUCTBUILD) \ + --distribution $(VBOX_PATH_DI_SRC)/VirtualBox_mpkg/distribution.dist \ + --package-path $(VBOX_PATH_PACK_TMP)/Packages \ + --resources $(VBOX_PATH_PACK_TMP)/VirtualBox.dist.res \ + --identifier org.VirtualBox.mpkg.virtualbox \ + --version $(VBOX_VERSION_MAJOR).$(VBOX_VERSION_MINOR).$(VBOX_VERSION_BUILD) \ + $(if $(VBOX_MACOSX_INSTALLER_SIGN),--sign "$(VBOX_MACOSX_INSTALLER_SIGN)",) \ + $@ @# Cleanup. sudo rm -Rf \ - $(VBOX_PATH_PACK_TMP)/VirtualBox.mpkg.root \ - $(VBOX_PATH_PACK_TMP)/VirtualBox.mpkg.desc \ - $(VBOX_PATH_PACK_TMP)/VirtualBox.mpkg.res - + $(VBOX_PATH_PACK_TMP)/VirtualBox.dist.root \ + $(VBOX_PATH_PACK_TMP)/VirtualBox.dist.desc \ + $(VBOX_PATH_PACK_TMP)/VirtualBox.dist.res +VirtualBox.pkg:: $(VBOX_PATH_PACK_TMP)/DiskImage/VirtualBox.pkg # # The VirtualBox Kernel extensions. @@ -330,7 +255,7 @@ $(VBOX_BRAND_$(f)_VBOXKEXTS_README_HTML) \ $(VBOX_BRAND_$(f)_VBOXKEXTS_INSTALLATIONCHECK_STRINGS)) \ $(VBOX_DARWIN_INST_DEP_ON_MAKEFILE) - $(call MSG_TOOL,PackageMaker,,,$@) + $(call MSG_TOOL,pkgbuild,,,$@) @# Cleanup any previously failed attempts. sudo rm -Rf \ $@ \ @@ -364,6 +289,11 @@ $(foreach kext,$(VBOX_DI_KEXTS), \ $(NLTAB)$(INSTALL) -m 0755 $(VBOX_PATH_DIST)/$(kext).kext/Contents/MacOS/$(kext) $(VBOX_PATH_PACK_TMP)/VBoxKEXTs.pkg.root/Library/Extensions/$(kext).kext/Contents/MacOS/) endif + @# Signed the kext bundles. +ifdef VBOX_SIGNING_MODE + $(foreach kext,$(VBOX_DI_KEXTS), \ + $(NLTAB)$(call VBOX_SIGN_BUNDLE_FN,$(VBOX_PATH_PACK_TMP)/VBoxKEXTs.pkg.root/Library/Extensions/$(kext).kext,) ) +endif @# Set the correct owners. sudo chown root:admin $(VBOX_PATH_PACK_TMP)/VBoxKEXTs.pkg.root/Library sudo chown -R root:wheel $(VBOX_PATH_PACK_TMP)/VBoxKEXTs.pkg.root/Library/Extensions @@ -376,56 +306,21 @@ -e 's/@VBOX_VENDOR@/$(VBOX_VENDOR)/g' \ -e 's/@VBOX_PRODUCT@/$(VBOX_PRODUCT)/g' \ -e 's/@VBOX_C_YEAR@/$(VBOX_C_YEAR)/g' \ - --output $(VBOX_PATH_PACK_TMP)/VBoxKEXTs.pkg.desc/Info.plist \ - $(VBOX_PATH_DI_SRC)/VBoxKEXTs/Info.plist - $(SED) \ - -e 's/@VBOX_VERSION_STRING@/$(VBOX_VERSION_STRING)/g' \ - -e 's/@VBOX_VERSION_MAJOR@/$(VBOX_VERSION_MAJOR)/g' \ - -e 's/@VBOX_VERSION_MINOR@/$(VBOX_VERSION_MINOR)/g' \ - -e 's/@VBOX_VERSION_BUILD@/$(VBOX_VERSION_BUILD)/g' \ - -e 's/@VBOX_VENDOR@/$(VBOX_VENDOR)/g' \ - -e 's/@VBOX_PRODUCT@/$(VBOX_PRODUCT)/g' \ - -e 's/@VBOX_C_YEAR@/$(VBOX_C_YEAR)/g' \ - --output $(VBOX_PATH_PACK_TMP)/VBoxKEXTs.pkg.desc/Description.plist \ - $(VBOX_PATH_DI_SRC)/VBoxKEXTs/Description.plist - $(SED) \ - -e 's/@VBOX_VENDOR@/$(VBOX_VENDOR)/g' \ - -e 's/@VBOX_PRODUCT@/$(VBOX_PRODUCT)/g' \ - -e 's/@VBOX_C_YEAR@/$(VBOX_C_YEAR)/g' \ - --output $(VBOX_PATH_PACK_TMP)/VBoxKEXTs.pkg.res/English.lproj/ReadMe.html \ - $(VBOX_PATH_DI_SRC)/VBoxKEXTs/ReadMe.html + --output $(VBOX_PATH_PACK_TMP)/VBoxKEXTs.pkg.desc/PkgBuildComponent.plist \ + $(VBOX_PATH_DI_SRC)/VBoxKEXTs/PkgBuildComponent.plist @# Copy the resources. - $(INSTALL) -m 0755 $(VBOX_PATH_DI_SRC)/VBoxKEXTs/InstallationCheck $(VBOX_PATH_PACK_TMP)/VBoxKEXTs.pkg.res/ $(INSTALL) -m 0755 $(VBOX_PATH_DI_SRC)/VBoxKEXTs/postflight $(VBOX_PATH_PACK_TMP)/VBoxKEXTs.pkg.res/ - $(foreach f,$(VBOX_INSTALLER_ADD_LANGUAGES), \ - $(MKDIR) -p \ - $(VBOX_PATH_PACK_TMP)/VBoxKEXTs.pkg.res/$(VBOX_INSTALLER_$(f)_DARWIN_TARGET).lproj$(NLTAB) \ - $(SED) \ - -e 's/@VBOX_VERSION_STRING@/$(VBOX_VERSION_STRING)/g' \ - -e 's/@VBOX_VERSION_MAJOR@/$(VBOX_VERSION_MAJOR)/g' \ - -e 's/@VBOX_VERSION_MINOR@/$(VBOX_VERSION_MINOR)/g' \ - -e 's/@VBOX_VERSION_BUILD@/$(VBOX_VERSION_BUILD)/g' \ - -e 's/@VBOX_VENDOR@/$(VBOX_VENDOR)/g' \ - -e 's/@VBOX_PRODUCT@/$(VBOX_PRODUCT)/g' \ - -e 's/@VBOX_C_YEAR@/$(VBOX_C_YEAR)/g' \ - --output $(VBOX_PATH_PACK_TMP)/VBoxKEXTs.pkg.res/$(VBOX_INSTALLER_$(f)_DARWIN_TARGET).lproj/Description.plist \ - $(VBOX_BRAND_$(f)_VBOXKEXTS_DESCRIPTION_PLIST)$(NLTAB) \ - $(SED) \ - -e 's/@VBOX_VENDOR@/$(VBOX_VENDOR)/g' \ - -e 's/@VBOX_PRODUCT@/$(VBOX_PRODUCT)/g' \ - -e 's/@VBOX_C_YEAR@/$(VBOX_C_YEAR)/g' \ - --output $(VBOX_PATH_PACK_TMP)/VBoxKEXTs.pkg.res/$(VBOX_INSTALLER_$(f)_DARWIN_TARGET).lproj/ReadMe.html \ - $(VBOX_BRAND_$(f)_VBOXKEXTS_README_HTML)$(NLTAB) \ - $(INSTALL) -m 0644 $(VBOX_BRAND_$(f)_VBOXKEXTS_INSTALLATIONCHECK_STRINGS) $(VBOX_PATH_PACK_TMP)/VBoxKEXTs.pkg.res/$(VBOX_INSTALLER_$(f)_DARWIN_TARGET).lproj/InstallationCheck.strings$(NLTAB) \ - ) - $(INSTALL) -m 0644 $(VBOX_PATH_DI_SRC)/VBoxKEXTs/English.lproj/InstallationCheck.strings $(VBOX_PATH_PACK_TMP)/VBoxKEXTs.pkg.res/English.lproj/ @# Build the package. - $(VBOX_PACKAGEMAKER) -build -v \ - -p $@ \ - -f $(VBOX_PATH_PACK_TMP)/VBoxKEXTs.pkg.root \ - -r $(VBOX_PATH_PACK_TMP)/VBoxKEXTs.pkg.res \ - -i $(VBOX_PATH_PACK_TMP)/VBoxKEXTs.pkg.desc/Info.plist \ - -d $(VBOX_PATH_PACK_TMP)/VBoxKEXTs.pkg.desc/Description.plist + $(VBOX_PKGBUILD) \ + --root $(VBOX_PATH_PACK_TMP)/VBoxKEXTs.pkg.root/Library/Extensions/ \ + --component-plist $(VBOX_PATH_PACK_TMP)/VBoxKEXTs.pkg.desc/PkgBuildComponent.plist \ + --script $(VBOX_PATH_PACK_TMP)/VBoxKEXTs.pkg.res \ + --identifier org.virtualbox.pkg.vboxkexts \ + --version $(VBOX_VERSION_MAJOR).$(VBOX_VERSION_MINOR).$(VBOX_VERSION_BUILD) \ + --install-location /Library/Extensions/ \ + --ownership preserve \ + $(if $(VBOX_MACOSX_INSTALLER_SIGN),--sign "$(VBOX_MACOSX_INSTALLER_SIGN)",) \ + $@ @# Cleanup sudo rm -Rf \ $(VBOX_PATH_PACK_TMP)/VBoxKEXTs.pkg.root \ @@ -444,7 +339,7 @@ $(foreach f,$(VBOX_INSTALLER_ADD_LANGUAGES), \ $(VBOX_BRAND_$(f)_VBOXSTARTUPITEMS_DESCRIPTION_PLIST)) \ $(VBOX_DARWIN_INST_DEP_ON_MAKEFILE) - $(call MSG_TOOL,PackageMaker,,,$@) + $(call MSG_TOOL,pkgbuild,,,$@) @# Cleanup any previously failed attempts. sudo rm -Rf \ $@ \ @@ -470,49 +365,15 @@ @# Set the correct owners. sudo chown root:admin $(VBOX_PATH_PACK_TMP)/VBoxStartupItems.pkg.root/Library sudo chown -R root:wheel $(VBOX_PATH_PACK_TMP)/VBoxStartupItems.pkg.root/Library/StartupItems - @# Do keyword replacement in the package info and description files. - $(SED) \ - -e 's/@VBOX_VERSION_STRING@/$(VBOX_VERSION_STRING)/g' \ - -e 's/@VBOX_VERSION_MAJOR@/$(VBOX_VERSION_MAJOR)/g' \ - -e 's/@VBOX_VERSION_MINOR@/$(VBOX_VERSION_MINOR)/g' \ - -e 's/@VBOX_VERSION_BUILD@/$(VBOX_VERSION_BUILD)/g' \ - -e 's/@VBOX_VENDOR@/$(VBOX_VENDOR)/g' \ - -e 's/@VBOX_PRODUCT@/$(VBOX_PRODUCT)/g' \ - -e 's/@VBOX_C_YEAR@/$(VBOX_C_YEAR)/g' \ - --output $(VBOX_PATH_PACK_TMP)/VBoxStartupItems.pkg.desc/Info.plist \ - $(VBOX_PATH_DI_SRC)/VBoxStartupItems/Info.plist - $(SED) \ - -e 's/@VBOX_VERSION_STRING@/$(VBOX_VERSION_STRING)/g' \ - -e 's/@VBOX_VERSION_MAJOR@/$(VBOX_VERSION_MAJOR)/g' \ - -e 's/@VBOX_VERSION_MINOR@/$(VBOX_VERSION_MINOR)/g' \ - -e 's/@VBOX_VERSION_BUILD@/$(VBOX_VERSION_BUILD)/g' \ - -e 's/@VBOX_VENDOR@/$(VBOX_VENDOR)/g' \ - -e 's/@VBOX_PRODUCT@/$(VBOX_PRODUCT)/g' \ - -e 's/@VBOX_C_YEAR@/$(VBOX_C_YEAR)/g' \ - --output $(VBOX_PATH_PACK_TMP)/VBoxStartupItems.pkg.desc/Description.plist \ - $(VBOX_PATH_DI_SRC)/VBoxStartupItems/Description.plist - @# Copy the resources. - $(foreach f,$(VBOX_INSTALLER_ADD_LANGUAGES), \ - $(MKDIR) -p \ - $(VBOX_PATH_PACK_TMP)/VBoxStartupItems.pkg.res/$(VBOX_INSTALLER_$(f)_DARWIN_TARGET).lproj$(NLTAB) \ - $(SED) \ - -e 's/@VBOX_VERSION_STRING@/$(VBOX_VERSION_STRING)/g' \ - -e 's/@VBOX_VERSION_MAJOR@/$(VBOX_VERSION_MAJOR)/g' \ - -e 's/@VBOX_VERSION_MINOR@/$(VBOX_VERSION_MINOR)/g' \ - -e 's/@VBOX_VERSION_BUILD@/$(VBOX_VERSION_BUILD)/g' \ - -e 's/@VBOX_VENDOR@/$(VBOX_VENDOR)/g' \ - -e 's/@VBOX_PRODUCT@/$(VBOX_PRODUCT)/g' \ - -e 's/@VBOX_C_YEAR@/$(VBOX_C_YEAR)/g' \ - --output $(VBOX_PATH_PACK_TMP)/VBoxStartupItems.pkg.res/$(VBOX_INSTALLER_$(f)_DARWIN_TARGET).lproj/Description.plist \ - $(VBOX_BRAND_$(f)_VBOXSTARTUPITEMS_DESCRIPTION_PLIST)$(NLTAB) \ - ) @# Build the package. - $(VBOX_PACKAGEMAKER) -build -v \ - -p $@ \ - -f $(VBOX_PATH_PACK_TMP)/VBoxStartupItems.pkg.root \ - -r $(VBOX_PATH_PACK_TMP)/VBoxStartupItems.pkg.res \ - -i $(VBOX_PATH_PACK_TMP)/VBoxStartupItems.pkg.desc/Info.plist \ - -d $(VBOX_PATH_PACK_TMP)/VBoxStartupItems.pkg.desc/Description.plist + $(VBOX_PKGBUILD) \ + --root $(VBOX_PATH_PACK_TMP)/VBoxStartupItems.pkg.root/Library/StartupItems/ \ + --identifier org.virtualbox.pkg.vboxstartupitems \ + --version $(VBOX_VERSION_MAJOR).$(VBOX_VERSION_MINOR).$(VBOX_VERSION_BUILD) \ + --install-location /Library/StartupItems/ \ + --ownership preserve \ + $(if $(VBOX_MACOSX_INSTALLER_SIGN),--sign "$(VBOX_MACOSX_INSTALLER_SIGN)",) \ + $@ @# Cleanup sudo rm -Rf \ $(VBOX_PATH_PACK_TMP)/VBoxStartupItems.pkg.root \ @@ -649,13 +510,7 @@ MacOS/VBoxDDGC.gc \ MacOS/VBoxDD2GC.gc -VBOX_DI_VBAPP_MISC_FILES = \ - Resources/VirtualBoxVM.app/Contents/Info.plist \ - Resources/VirtualBoxVM.app/Contents/PkgInfo \ - Resources/vmstarter.app/Contents/Info.plist \ - Resources/vmstarter.app/Contents/PkgInfo \ - Info.plist \ - PkgInfo \ +VBOX_DI_VBAPP_DUPLICATED_RESOURCE_FILES = \ Resources/virtualbox.icns \ Resources/virtualbox.png \ Resources/virtualbox-vbox.icns \ @@ -665,9 +520,20 @@ Resources/virtualbox-vdi.icns \ Resources/virtualbox-vmdk.icns \ Resources/virtualbox-vhd.icns \ - Resources/virtualbox-hdd.icns \ + Resources/virtualbox-hdd.icns + +VBOX_DI_VBAPP_MISC_FILES = \ + Info.plist \ + PkgInfo \ + $(VBOX_DI_VBAPP_DUPLICATED_RESOURCE_FILES) \ MacOS/components/VBoxXPCOMBase.xpt \ - MacOS/components/VirtualBox_XPCOM.xpt + MacOS/components/VirtualBox_XPCOM.xpt \ + Resources/VirtualBoxVM.app/Contents/Info.plist \ + Resources/VirtualBoxVM.app/Contents/PkgInfo \ + $(addprefix Resources/VirtualBoxVM.app/Contents/,$(VBOX_DI_VBAPP_DUPLICATED_RESOURCE_FILES)) \ + Resources/vmstarter.app/Contents/Info.plist \ + Resources/vmstarter.app/Contents/PkgInfo \ + $(addprefix Resources/vmstarter.app/Contents/,$(VBOX_DI_VBAPP_DUPLICATED_RESOURCE_FILES)) ifdef VBOX_WITH_DOCS_PACKING VBOX_DI_VBAPP_MISC_FILES += \ MacOS/UserManual.pdf @@ -692,9 +558,7 @@ VBOX_DI_VBAPP_SYMLINKS = \ Resources/VirtualBoxVM.app/Contents/MacOS=>../../../MacOS/ \ - Resources/VirtualBoxVM.app/Contents/Resources=>../../../Resources/ \ Resources/vmstarter.app/Contents/MacOS=>../../../MacOS/ \ - Resources/vmstarter.app/Contents/Resources=>../../../Resources/ \ $(foreach qtmod, $(VBOX_QT4_MOD_NAMES), Frameworks/$(qtmod).framework/$(qtmod)=>Versions/4/$(qtmod)) ifdef VBOX_WITH_COCOA_QT VBOX_DI_VBAPP_SYMLINKS += \ @@ -754,7 +618,7 @@ $(if $(VBOX_WITH_WEBSERVICES),$(VBOX_PATH_DI_SRC)/VirtualBox/org.virtualbox.vboxwebsrv.plist,) \ $(VBOX_PATH_DI_SRC)/VirtualBox/org.virtualbox.vboxballoonctrl.plist \ $(VBOX_DARWIN_INST_DEP_ON_MAKEFILE) - $(call MSG_TOOL,PackageMaker,,,$@) + $(call MSG_TOOL,pkgbuild,,,$@) @# Cleanup any previously failed attempts. sudo rm -Rf \ $@ \ @@ -805,7 +669,7 @@ $(foreach f, $(VBOX_INSTALL_LANG_FILES) \ ,$(INSTALL) -m 0644 $(VBOX_PATH_DIST)/VirtualBox.app/Contents/MacOS/nls/$(f) $(VBOX_PATH_PACK_TMP)/VirtualBox.pkg.root/Applications/VirtualBox.app/Contents/MacOS/nls/$(f)$(NLTAB)) ifdef VBOX_WITH_WEBSERVICES - $(INSTALL) -m 0644 $(VBOX_PATH_DI_SRC)/VirtualBox/org.virtualbox.vboxwebsrv.plist $(VBOX_PATH_PACK_TMP)/VirtualBox.pkg.root/Applications/VirtualBox.app/Contents/MacOS/ + $(INSTALL) -m 0644 $(VBOX_PATH_DI_SRC)/VirtualBox/org.virtualbox.vboxwebsrv.plist $(VBOX_PATH_PACK_TMP)/VirtualBox.pkg.root/Applications/VirtualBox.app/Contents/MacOS/ endif $(INSTALL) -m 0644 $(VBOX_PATH_DI_SRC)/VirtualBox/org.virtualbox.vboxballoonctrl.plist $(VBOX_PATH_PACK_TMP)/VirtualBox.pkg.root/Applications/VirtualBox.app/Contents/MacOS/ @# Install the python stuff @@ -826,7 +690,7 @@ $(foreach f,$(VBOX_DI_VBAPP_MISC_FILES.amd64) \ ,$(INSTALL) -m 0644 $(VBOX_PATH_DIST_64)/VirtualBox.app/Contents/$(f) $(VBOX_PATH_PACK_TMP)/VirtualBox.pkg.root/Applications/VirtualBox.app/Contents/$(f)$(NLTAB) ) endif - $(INSTALL) -m 644 $(VBOX_BRAND_LICENSE_TXT) $(VBOX_PATH_PACK_TMP)/VirtualBox.pkg.root/Applications/VirtualBox.app/Contents/Resources/LICENSE + $(INSTALL) -m 644 $(VBOX_BRAND_LICENSE_TXT) $(VBOX_PATH_PACK_TMP)/VirtualBox.pkg.root/Applications/VirtualBox.app/Contents/Resources/LICENSE ifdef VBOX_WITH_DOCS_PACKING $(foreach f,$(VBOX_ADD_MANUALS) \ ,$(INSTALL) -m 0644 $(f) $(VBOX_PATH_PACK_TMP)/VirtualBox.pkg.root/Applications/VirtualBox.app/Contents/MacOS/$(NLTAB)) @@ -861,11 +725,13 @@ $(VBOX_PATH_DIST_32)/VirtualBox.app/Contents/$(otherbin) \ $(VBOX_PATH_DIST_64)/VirtualBox.app/Contents/$(otherbin) \ -output $(VBOX_PATH_PACK_TMP)/VirtualBox.pkg.root/Applications/VirtualBox.app/Contents/$(otherbin)$(NLTAB)) - $(foreach otherbin, $(VBOX_DI_VBAPP_OTHER_BINS) \ - ,$(INSTALL) -m 0644 $(VBOX_PATH_DIST_32)/VirtualBox.app/Contents/$(otherbin) $(VBOX_PATH_PACK_TMP)/VirtualBox.pkg.root/Applications/VirtualBox.app/Contents/$(otherbin)-x86$(NLTAB) \ - $(INSTALL) -m 0644 $(VBOX_PATH_DIST_64)/VirtualBox.app/Contents/$(otherbin) $(VBOX_PATH_PACK_TMP)/VirtualBox.pkg.root/Applications/VirtualBox.app/Contents/$(otherbin)-amd64$(NLTAB)) + $(foreach otherbin, $(VBOX_DI_VBAPP_OTHER_BINS), \ + $(NLTAB)$(INSTALL) -m 0644 $(VBOX_PATH_DIST_32)/VirtualBox.app/Contents/$(otherbin) $(VBOX_PATH_PACK_TMP)/VirtualBox.pkg.root/Applications/VirtualBox.app/Contents/$(otherbin)-x86 \ + $(NLTAB)$(INSTALL) -m 0644 $(VBOX_PATH_DIST_64)/VirtualBox.app/Contents/$(otherbin) $(VBOX_PATH_PACK_TMP)/VirtualBox.pkg.root/Applications/VirtualBox.app/Contents/$(otherbin)-amd64 ) else - $(foreach otherbin, $(VBOX_DI_VBAPP_OTHER_BINS) $(VBOX_DI_VBAPP_OTHER_UNIVERSAL_BINS) \ + $(foreach otherbin, $(VBOX_DI_VBAPP_OTHER_UNIVERSAL_BINS) \ + ,$(INSTALL) -m 0644 $(VBOX_PATH_DIST)/VirtualBox.app/Contents/$(otherbin) $(VBOX_PATH_PACK_TMP)/VirtualBox.pkg.root/Applications/VirtualBox.app/Contents/$(otherbin)$(NLTAB)) + $(foreach otherbin, $(VBOX_DI_VBAPP_OTHER_BINS) \ ,$(INSTALL) -m 0644 $(VBOX_PATH_DIST)/VirtualBox.app/Contents/$(otherbin) $(VBOX_PATH_PACK_TMP)/VirtualBox.pkg.root/Applications/VirtualBox.app/Contents/$(otherbin)-$(KBUILD_TARGET_ARCH)$(NLTAB)) endif @# Create/copy the universal executable binaries. @@ -877,7 +743,7 @@ -output $(VBOX_PATH_PACK_TMP)/VirtualBox.pkg.root/Applications/VirtualBox.app/Contents/$(otherbin)$(NLTAB)) else $(foreach otherbin, $(VBOX_DI_VBAPP_UNIVERSAL_PROGS) \ - ,$(INSTALL) -m 0755 $(VBOX_PATH_DIST)/VirtualBox.app/Contents/$(otherbin) $(VBOX_PATH_PACK_TMP)/VirtualBox.pkg.root/Applications/VirtualBox.app/Contents/$(otherbin)-$(KBUILD_TARGET_ARCH)$(NLTAB)) + ,$(INSTALL) -m 0755 $(VBOX_PATH_DIST)/VirtualBox.app/Contents/$(otherbin) $(VBOX_PATH_PACK_TMP)/VirtualBox.pkg.root/Applications/VirtualBox.app/Contents/$(otherbin)$(NLTAB)) endif @# Copy the binaries. ifdef VBOX_WITH_COMBINED_PACKAGE @@ -888,14 +754,6 @@ $(foreach prog, $(VBOX_DI_VBAPP_PROGS) \ ,$(INSTALL) -m 0755 $(VBOX_PATH_DIST)/VirtualBox.app/Contents/$(prog) $(VBOX_PATH_PACK_TMP)/VirtualBox.pkg.root/Applications/VirtualBox.app/Contents/$(prog)-$(KBUILD_TARGET_ARCH)$(NLTAB)) endif - @# Create symlinks for all the binaries (corrected by postflight and the VirtualBox StartupItem to hardlinks). -ifdef VBOX_WITH_COMBINED_PACKAGE - $(foreach bin, $(VBOX_DI_VBAPP_PROGS) $(VBOX_DI_VBAPP_OTHER_BINS) \ - ,$(LN) -s $(bin)-x86 $(VBOX_PATH_PACK_TMP)/VirtualBox.pkg.root/Applications/VirtualBox.app/Contents/$(bin)$(NLTAB)) -else - $(foreach bin, $(VBOX_DI_VBAPP_PROGS) $(VBOX_DI_VBAPP_OTHER_BINS) \ - ,$(LN) -s $(bin)-$(KBUILD_TARGET_ARCH) $(VBOX_PATH_PACK_TMP)/VirtualBox.pkg.root/Applications/VirtualBox.app/Contents/$(bin)$(NLTAB)) -endif #ifdef VBOX_WITH_HARDENING - disabled temporarily if 1 @# We cannot use @executable_path together with setuid binaries, dyld gets upset about it. So, fix Qt libs and users. @@ -925,6 +783,39 @@ ) \ $(VBOX_PATH_PACK_TMP)/VirtualBox.pkg.root/Applications/VirtualBox.app/Contents/$(f)$(NLTAB) ) endif + @# Signed the binaries and the application bundle. + @# Note #1 - We cannot sign the application binary here, since we switch to match the kernel bitness. + @# Note #2 - Must sign -amd64/-x86 suffixed binaries without the suffix, or verification fails. (Too lazy to do this for *.gc.) +ifdef VBOX_SIGNING_MODE + $(foreach qtmod, $(VBOX_QT4_MOD_NAMES) \ + ,$(NLTAB)$(call VBOX_SIGN_MACHO_FN,$(VBOX_PATH_PACK_TMP)/VirtualBox.pkg.root/Applications/VirtualBox.app/Contents/Frameworks/$(qtmod).framework/Versions/4/$(qtmod),org.virtualbox.app.frameworks.$(qtmod)) ) + $(foreach dylib, \ + $(VBOX_DI_VBAPP_DYLIBS) \ + $(if-expr defined(VBOX_WITH_COMBINED_PACKAGE), \ + $(VBOX_DI_VBAPP_DYLIBS.x86) \ + $(VBOX_DI_VBAPP_DYLIBS.amd64) \ + ,$(VBOX_DI_VBAPP_DYLIBS.$(KBUILD_TARGET_ARCH)) ) \ + , $(NLTAB)$(call VBOX_SIGN_MACHO_FN,$(VBOX_PATH_PACK_TMP)/VirtualBox.pkg.root/Applications/VirtualBox.app/Contents/$(dylib),org.virtualbox.app.macos.$(notdir $(dylib))) ) + $(foreach bin, $(VBOX_DI_VBAPP_UNIVERSAL_PROGS) \ + , $(NLTAB)$(call VBOX_SIGN_MACHO_FN,$(VBOX_PATH_PACK_TMP)/VirtualBox.pkg.root/Applications/VirtualBox.app/Contents/$(bin),org.virtualbox.app.macos.$(notdir $(bin))) ) + $(foreach arch, $(if-expr defined(VBOX_WITH_COMBINED_PACKAGE), amd64 x86, $(KBUILD_TARGET_ARCH)) \ + , $(foreach bin, $(VBOX_DI_VBAPP_PROGS) \ + , \ + $(NLTAB)$(MV) -- $(VBOX_PATH_PACK_TMP)/VirtualBox.pkg.root/Applications/VirtualBox.app/Contents/$(bin)-$(arch) $(VBOX_PATH_PACK_TMP)/VirtualBox.pkg.root/Applications/VirtualBox.app/Contents/$(bin) \ + $(NLTAB)$(call VBOX_SIGN_MACHO_FN,$(VBOX_PATH_PACK_TMP)/VirtualBox.pkg.root/Applications/VirtualBox.app/Contents/$(bin),org.virtualbox.app.macos.$(notdir $(bin))) \ + $(NLTAB)$(MV) -- $(VBOX_PATH_PACK_TMP)/VirtualBox.pkg.root/Applications/VirtualBox.app/Contents/$(bin) $(VBOX_PATH_PACK_TMP)/VirtualBox.pkg.root/Applications/VirtualBox.app/Contents/$(bin)-$(arch) \ + )) + $(foreach other, $(VBOX_DI_VBAPP_OTHER_UNIVERSAL_BINS) \ + , $(NLTAB)$(call VBOX_SIGN_VMM_MOD_FN,$(VBOX_PATH_PACK_TMP)/VirtualBox.pkg.root/Applications/VirtualBox.app/Contents/$(other),org.virtualbox.app.macos.$(notdir $(other))) ) + $(foreach arch, $(if-expr defined(VBOX_WITH_COMBINED_PACKAGE), amd64 x86, $(KBUILD_TARGET_ARCH)) \ + , $(foreach other, $(VBOX_DI_VBAPP_OTHER_BINS) \ + , $(NLTAB)$(call VBOX_SIGN_VMM_MOD_FN,$(VBOX_PATH_PACK_TMP)/VirtualBox.pkg.root/Applications/VirtualBox.app/Contents/$(other)-$(arch),org.virtualbox.app.macos.$(notdir $(other))-$(arch)) ) ) + if 0 # requires codesign+framworks from Lion or later. Snow Leopard codesign says object file format invalid or unsuitable. + $(call VBOX_SIGN_BUNDLE_FN,$(VBOX_PATH_PACK_TMP)/VirtualBox.pkg.root/Applications/VirtualBox.app/Contents/Resources/VirtualBoxVM.app,) + $(call VBOX_SIGN_BUNDLE_FN,$(VBOX_PATH_PACK_TMP)/VirtualBox.pkg.root/Applications/VirtualBox.app/Contents/Resources/vmstarter.app,) + $(call VBOX_SIGN_BUNDLE_FN,$(VBOX_PATH_PACK_TMP)/VirtualBox.pkg.root/Applications/VirtualBox.app,) + endif +endif @# Set the correct owner and set the set-user-ID-on-execution bit on the relevant executables. sudo chown -R root:admin $(VBOX_PATH_PACK_TMP)/VirtualBox.pkg.root ifdef VBOX_WITH_HARDENING @@ -948,41 +839,22 @@ -e 's/@VBOX_VENDOR@/$(VBOX_VENDOR)/g' \ -e 's/@VBOX_PRODUCT@/$(VBOX_PRODUCT)/g' \ -e 's/@VBOX_C_YEAR@/$(VBOX_C_YEAR)/g' \ - --output $(VBOX_PATH_PACK_TMP)/VirtualBox.pkg.desc/Info.plist \ - $(VBOX_PATH_DI_SRC)/VirtualBox/Info.plist - $(SED) \ - -e 's/@VBOX_VERSION_STRING@/$(VBOX_VERSION_STRING)/g' \ - -e 's/@VBOX_VERSION_MAJOR@/$(VBOX_VERSION_MAJOR)/g' \ - -e 's/@VBOX_VERSION_MINOR@/$(VBOX_VERSION_MINOR)/g' \ - -e 's/@VBOX_VERSION_BUILD@/$(VBOX_VERSION_BUILD)/g' \ - -e 's/@VBOX_VENDOR@/$(VBOX_VENDOR)/g' \ - -e 's/@VBOX_PRODUCT@/$(VBOX_PRODUCT)/g' \ - -e 's/@VBOX_C_YEAR@/$(VBOX_C_YEAR)/g' \ - --output $(VBOX_PATH_PACK_TMP)/VirtualBox.pkg.desc/Description.plist \ - $(VBOX_PATH_DI_SRC)/VirtualBox/Description.plist + --output $(VBOX_PATH_PACK_TMP)/VirtualBox.pkg.desc/PkgBuildComponent.plist \ + $(VBOX_PATH_DI_SRC)/VirtualBox/PkgBuildComponent.plist @# Copy the resources. - $(foreach f,$(VBOX_INSTALLER_ADD_LANGUAGES) \ - ,$(MKDIR) -p \ - $(VBOX_PATH_PACK_TMP)/VirtualBox.pkg.res/$(VBOX_INSTALLER_$(f)_DARWIN_TARGET).lproj$(NLTAB) \ - $(SED) \ - -e 's/@VBOX_VERSION_STRING@/$(VBOX_VERSION_STRING)/g' \ - -e 's/@VBOX_VERSION_MAJOR@/$(VBOX_VERSION_MAJOR)/g' \ - -e 's/@VBOX_VERSION_MINOR@/$(VBOX_VERSION_MINOR)/g' \ - -e 's/@VBOX_VERSION_BUILD@/$(VBOX_VERSION_BUILD)/g' \ - -e 's/@VBOX_VENDOR@/$(VBOX_VENDOR)/g' \ - -e 's/@VBOX_PRODUCT@/$(VBOX_PRODUCT)/g' \ - -e 's/@VBOX_C_YEAR@/$(VBOX_C_YEAR)/g' \ - --output $(VBOX_PATH_PACK_TMP)/VirtualBox.pkg.res/$(VBOX_INSTALLER_$(f)_DARWIN_TARGET).lproj/Description.plist \ - $(VBOX_BRAND_$(f)_VIRTUALBOX_DESCRIPTION_PLIST)$(NLTAB) \ - ) + $(INSTALL) -m 0755 $(VBOX_PATH_DI_SRC)/VirtualBox/preflight $(VBOX_PATH_PACK_TMP)/VirtualBox.pkg.res/ $(INSTALL) -m 0755 $(VBOX_PATH_DI_SRC)/VirtualBox/postflight $(VBOX_PATH_PACK_TMP)/VirtualBox.pkg.res/ @# Build the package. - $(VBOX_PACKAGEMAKER) -build -v \ - -p $@ \ - -f $(VBOX_PATH_PACK_TMP)/VirtualBox.pkg.root \ - -r $(VBOX_PATH_PACK_TMP)/VirtualBox.pkg.res \ - -i $(VBOX_PATH_PACK_TMP)/VirtualBox.pkg.desc/Info.plist \ - -d $(VBOX_PATH_PACK_TMP)/VirtualBox.pkg.desc/Description.plist + $(VBOX_PKGBUILD) \ + --root $(VBOX_PATH_PACK_TMP)/VirtualBox.pkg.root/Applications/ \ + --component-plist $(VBOX_PATH_PACK_TMP)/VirtualBox.pkg.desc/PkgBuildComponent.plist \ + --script $(VBOX_PATH_PACK_TMP)/VirtualBox.pkg.res \ + --identifier org.virtualbox.pkg.virtualbox \ + --version $(VBOX_VERSION_MAJOR).$(VBOX_VERSION_MINOR).$(VBOX_VERSION_BUILD) \ + --install-location /Applications/ \ + --ownership preserve \ + $(if $(VBOX_MACOSX_INSTALLER_SIGN),--sign "$(VBOX_MACOSX_INSTALLER_SIGN)",) \ + $@ @# Cleanup sudo rm -Rf \ $(VBOX_PATH_PACK_TMP)/VirtualBox.pkg.root \ @@ -998,7 +870,7 @@ $(foreach f,$(VBOX_INSTALLER_ADD_LANGUAGES) \ ,$(VBOX_BRAND_$(f)_VIRTUALBOXCLI_DESCRIPTION_PLIST)) \ $(VBOX_DARWIN_INST_DEP_ON_MAKEFILE) - $(call MSG_TOOL,PackageMaker,,,$@) + $(call MSG_TOOL,pkgbuild,,,$@) @# Cleanup any previously failed attempts. sudo rm -Rf \ $@ \ @@ -1033,49 +905,15 @@ sudo chmod 0755 $(VBOX_PATH_PACK_TMP)/VirtualBoxCLI.pkg.root/usr/bin/* sudo chown root:admin $(VBOX_PATH_PACK_TMP)/VirtualBoxCLI.pkg.root sudo chown -R root:wheel $(VBOX_PATH_PACK_TMP)/VirtualBoxCLI.pkg.root/usr - @# Do keyword replacement in the package info and description files. - $(SED) \ - -e 's/@VBOX_VERSION_STRING@/$(VBOX_VERSION_STRING)/g' \ - -e 's/@VBOX_VERSION_MAJOR@/$(VBOX_VERSION_MAJOR)/g' \ - -e 's/@VBOX_VERSION_MINOR@/$(VBOX_VERSION_MINOR)/g' \ - -e 's/@VBOX_VERSION_BUILD@/$(VBOX_VERSION_BUILD)/g' \ - -e 's/@VBOX_VENDOR@/$(VBOX_VENDOR)/g' \ - -e 's/@VBOX_PRODUCT@/$(VBOX_PRODUCT)/g' \ - -e 's/@VBOX_C_YEAR@/$(VBOX_C_YEAR)/g' \ - --output $(VBOX_PATH_PACK_TMP)/VirtualBoxCLI.pkg.desc/Info.plist \ - $(VBOX_PATH_DI_SRC)/VirtualBoxCLI/Info.plist - $(SED) \ - -e 's/@VBOX_VERSION_STRING@/$(VBOX_VERSION_STRING)/g' \ - -e 's/@VBOX_VERSION_MAJOR@/$(VBOX_VERSION_MAJOR)/g' \ - -e 's/@VBOX_VERSION_MINOR@/$(VBOX_VERSION_MINOR)/g' \ - -e 's/@VBOX_VERSION_BUILD@/$(VBOX_VERSION_BUILD)/g' \ - -e 's/@VBOX_VENDOR@/$(VBOX_VENDOR)/g' \ - -e 's/@VBOX_PRODUCT@/$(VBOX_PRODUCT)/g' \ - -e 's/@VBOX_C_YEAR@/$(VBOX_C_YEAR)/g' \ - --output $(VBOX_PATH_PACK_TMP)/VirtualBoxCLI.pkg.desc/Description.plist \ - $(VBOX_PATH_DI_SRC)/VirtualBoxCLI/Description.plist - @# Copy the resources. - $(foreach f,$(VBOX_INSTALLER_ADD_LANGUAGES) \ - ,$(MKDIR) -p \ - $(VBOX_PATH_PACK_TMP)/VirtualBoxCLI.pkg.res/$(VBOX_INSTALLER_$(f)_DARWIN_TARGET).lproj$(NLTAB) \ - $(SED) \ - -e 's/@VBOX_VERSION_STRING@/$(VBOX_VERSION_STRING)/g' \ - -e 's/@VBOX_VERSION_MAJOR@/$(VBOX_VERSION_MAJOR)/g' \ - -e 's/@VBOX_VERSION_MINOR@/$(VBOX_VERSION_MINOR)/g' \ - -e 's/@VBOX_VERSION_BUILD@/$(VBOX_VERSION_BUILD)/g' \ - -e 's/@VBOX_VENDOR@/$(VBOX_VENDOR)/g' \ - -e 's/@VBOX_PRODUCT@/$(VBOX_PRODUCT)/g' \ - -e 's/@VBOX_C_YEAR@/$(VBOX_C_YEAR)/g' \ - --output $(VBOX_PATH_PACK_TMP)/VirtualBoxCLI.pkg.res/$(VBOX_INSTALLER_$(f)_DARWIN_TARGET).lproj/Description.plist \ - $(VBOX_BRAND_$(f)_VIRTUALBOXCLI_DESCRIPTION_PLIST)$(NLTAB) \ - ) @# Build the package. - $(VBOX_PACKAGEMAKER) -build -v \ - -p $@ \ - -f $(VBOX_PATH_PACK_TMP)/VirtualBoxCLI.pkg.root \ - -r $(VBOX_PATH_PACK_TMP)/VirtualBoxCLI.pkg.res \ - -i $(VBOX_PATH_PACK_TMP)/VirtualBoxCLI.pkg.desc/Info.plist \ - -d $(VBOX_PATH_PACK_TMP)/VirtualBoxCLI.pkg.desc/Description.plist + $(VBOX_PKGBUILD) \ + --root $(VBOX_PATH_PACK_TMP)/VirtualBoxCLI.pkg.root/usr/bin \ + --identifier org.virtualbox.pkg.virtualboxcli \ + --version $(VBOX_VERSION_MAJOR).$(VBOX_VERSION_MINOR).$(VBOX_VERSION_BUILD) \ + --install-location /usr/bin \ + --ownership preserve \ + $(if $(VBOX_MACOSX_INSTALLER_SIGN),--sign "$(VBOX_MACOSX_INSTALLER_SIGN)",) \ + $@ @# Cleanup sudo rm -Rf \ $(VBOX_PATH_PACK_TMP)/VirtualBoxCLI.pkg.root \ @@ -1083,7 +921,3 @@ $(VBOX_PATH_PACK_TMP)/VirtualBoxCLI.pkg.res -ifndef VBOX_OSE - include $(VBOX_PATH_DI_SRC)/Bundle.kmk -endif - diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Installer/darwin/VBoxKEXTs/Description.plist virtualbox-4.1.44-dfsg/src/VBox/Installer/darwin/VBoxKEXTs/Description.plist --- virtualbox-4.1.12-dfsg/src/VBox/Installer/darwin/VBoxKEXTs/Description.plist 2012-04-02 13:28:50.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Installer/darwin/VBoxKEXTs/Description.plist 1970-01-01 00:00:00.000000000 +0000 @@ -1,11 +0,0 @@ - - - - - IFPkgDescriptionTitle @VBOX_PRODUCT@ Kernel Extensions - IFPkgDescriptionDescription Installs the @VBOX_PRODUCT@ Kernel Extensions into /Library/Extensions. - IFPkgDescriptionVersion @VBOX_VERSION_STRING@ - IFPkgDescriptionDeleteWarning - - - diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Installer/darwin/VBoxKEXTs/English.lproj/InstallationCheck.strings virtualbox-4.1.44-dfsg/src/VBox/Installer/darwin/VBoxKEXTs/English.lproj/InstallationCheck.strings --- virtualbox-4.1.12-dfsg/src/VBox/Installer/darwin/VBoxKEXTs/English.lproj/InstallationCheck.strings 2012-04-02 13:28:50.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Installer/darwin/VBoxKEXTs/English.lproj/InstallationCheck.strings 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -"16" = "VirtualBox can only be installed on Intel Macs."; diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Installer/darwin/VBoxKEXTs/Info.plist virtualbox-4.1.44-dfsg/src/VBox/Installer/darwin/VBoxKEXTs/Info.plist --- virtualbox-4.1.12-dfsg/src/VBox/Installer/darwin/VBoxKEXTs/Info.plist 2012-04-02 13:28:50.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Installer/darwin/VBoxKEXTs/Info.plist 1970-01-01 00:00:00.000000000 +0000 @@ -1,24 +0,0 @@ - - - - - CFBundleIdentifier org.virtualbox.pkg.vboxkexts - CFBundleName The @VBOX_PRODUCT@ Kernel Extensions Package - CFBundleGetInfoString @VBOX_PRODUCT@ @VBOX_VERSION_STRING@, © 2009-@VBOX_C_YEAR@ @VBOX_VENDOR@ - CFBundleShortVersionString @VBOX_VERSION_MAJOR@.@VBOX_VERSION_MINOR@.@VBOX_VERSION_BUILD@ - IFMajorVersion @VBOX_VERSION_MAJOR@ - IFMinorVersion @VBOX_VERSION_MINOR@ - IFPkgFlagAllowBackRev - IFPkgFlagAuthorizationAction RootAuthorization - IFPkgFlagDefaultLocation / - IFPkgFlagInstallFat - IFPkgFlagIsRequired - IFPkgFlagRelocatable - IFPkgFlagRestartAction NoRestart - IFPkgFlagRootVolumeOnly - IFPkgFlagUpdateInstalledLanguages - IFPkgFormatVersion 0.10000000149011612 - IFPkgFlagOverwritePermissions - - - diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Installer/darwin/VBoxKEXTs/InstallationCheck virtualbox-4.1.44-dfsg/src/VBox/Installer/darwin/VBoxKEXTs/InstallationCheck --- virtualbox-4.1.12-dfsg/src/VBox/Installer/darwin/VBoxKEXTs/InstallationCheck 2012-04-02 13:28:50.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Installer/darwin/VBoxKEXTs/InstallationCheck 1970-01-01 00:00:00.000000000 +0000 @@ -1,21 +0,0 @@ -#!/bin/sh - -# -# Copyright (C) 2006-2010 Oracle Corporation -# -# This file is part of VirtualBox Open Source Edition (OSE), as -# available from http://www.virtualbox.org. This file is free software; -# you can redistribute it and/or modify it under the terms of the GNU -# General Public License (GPL) as published by the Free Software -# Foundation, in version 2 as it comes in the "COPYING" file of the -# VirtualBox OSE distribution. VirtualBox OSE is distributed in the -# hope that it will be useful, but WITHOUT ANY WARRANTY of any kind. -# - -MACHINE=`uname -m` -# Check that this is an x86/x86_64 system. -if test "$MACHINE" != "i386" && test "$MACHINE" != "x86_64"; then - exit 112 # (112 = 96 + 16) -fi -exit 0 - diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Installer/darwin/VBoxKEXTs/PkgBuildComponent.plist virtualbox-4.1.44-dfsg/src/VBox/Installer/darwin/VBoxKEXTs/PkgBuildComponent.plist --- virtualbox-4.1.12-dfsg/src/VBox/Installer/darwin/VBoxKEXTs/PkgBuildComponent.plist 1970-01-01 00:00:00.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Installer/darwin/VBoxKEXTs/PkgBuildComponent.plist 2015-11-11 15:08:46.000000000 +0000 @@ -0,0 +1,36 @@ + + + + + + RootRelativeBundlePath VBoxDrv.kext + BundleIsRelocatable + BundleIsVersionChecked + BundleHasStrictIdentifier + BundleOverwriteAction upgrade + + + RootRelativeBundlePath VBoxNetAdp.kext + BundleIsRelocatable + BundleIsVersionChecked + BundleHasStrictIdentifier + BundleOverwriteAction upgrade + + + RootRelativeBundlePath VBoxNetFlt.kext + BundleIsRelocatable + BundleIsVersionChecked + BundleHasStrictIdentifier + BundleOverwriteAction upgrade + + + RootRelativeBundlePath VBoxUSB.kext + BundleIsRelocatable + BundleIsVersionChecked + BundleHasStrictIdentifier + BundleOverwriteAction upgrade + BundlePostInstallScriptPath postflight + + + + diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Installer/darwin/VBoxKEXTs/ReadMe.html virtualbox-4.1.44-dfsg/src/VBox/Installer/darwin/VBoxKEXTs/ReadMe.html --- virtualbox-4.1.12-dfsg/src/VBox/Installer/darwin/VBoxKEXTs/ReadMe.html 2012-04-02 13:28:50.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Installer/darwin/VBoxKEXTs/ReadMe.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,6 +0,0 @@ - -

This package installs VBoxDrv.kext, VBoxUSB.kext, VBoxNetFlt.kext and -VBoxNetAdp.kext into /Library/Extensions. At the end of the installation it -will load the extensions. Note that the extensions will not be loaded -automatically at boot time unless you also install the @VBOX_PRODUCT@ startup -item.

diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Installer/darwin/VBoxStartupItems/Description.plist virtualbox-4.1.44-dfsg/src/VBox/Installer/darwin/VBoxStartupItems/Description.plist --- virtualbox-4.1.12-dfsg/src/VBox/Installer/darwin/VBoxStartupItems/Description.plist 2012-04-02 13:28:50.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Installer/darwin/VBoxStartupItems/Description.plist 1970-01-01 00:00:00.000000000 +0000 @@ -1,10 +0,0 @@ - - - - - IFPkgDescriptionTitle @VBOX_PRODUCT@ Startup Items - IFPkgDescriptionDescription Installs the @VBOX_PRODUCT@ Startup Items to /Library/StartupItems/VirtualBox. - IFPkgDescriptionVersion @VBOX_VERSION_STRING@ - IFPkgDescriptionDeleteWarning - - diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Installer/darwin/VBoxStartupItems/Info.plist virtualbox-4.1.44-dfsg/src/VBox/Installer/darwin/VBoxStartupItems/Info.plist --- virtualbox-4.1.12-dfsg/src/VBox/Installer/darwin/VBoxStartupItems/Info.plist 2012-04-02 13:28:50.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Installer/darwin/VBoxStartupItems/Info.plist 1970-01-01 00:00:00.000000000 +0000 @@ -1,23 +0,0 @@ - - - - - CFBundleIdentifier org.virtualbox.pkg.vboxstartupitems - CFBundleName The @VBOX_PRODUCT@ Startup Items Package - CFBundleGetInfoString @VBOX_PRODUCT@ @VBOX_VERSION_STRING@, © 2009-@VBOX_C_YEAR@ @VBOX_VENDOR@ - CFBundleShortVersionString @VBOX_VERSION_MAJOR@.@VBOX_VERSION_MINOR@.@VBOX_VERSION_BUILD@ - IFMajorVersion @VBOX_VERSION_MAJOR@ - IFMinorVersion @VBOX_VERSION_MINOR@ - IFPkgFlagAllowBackRev - IFPkgFlagAuthorizationAction RootAuthorization - IFPkgFlagDefaultLocation / - IFPkgFlagInstallFat - IFPkgFlagIsRequired - IFPkgFlagRelocatable - IFPkgFlagRestartAction NoRestart - IFPkgFlagRootVolumeOnly - IFPkgFlagUpdateInstalledLanguages - IFPkgFormatVersion 0.10000000149011612 - IFPkgFlagOverwritePermissions - - diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Installer/darwin/VirtualBox/Description.plist virtualbox-4.1.44-dfsg/src/VBox/Installer/darwin/VirtualBox/Description.plist --- virtualbox-4.1.12-dfsg/src/VBox/Installer/darwin/VirtualBox/Description.plist 2012-04-02 13:28:50.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Installer/darwin/VirtualBox/Description.plist 1970-01-01 00:00:00.000000000 +0000 @@ -1,10 +0,0 @@ - - - - - IFPkgDescriptionTitle @VBOX_PRODUCT@ - IFPkgDescriptionDescription Installs the @VBOX_PRODUCT@ application into /Applications. - IFPkgDescriptionVersion @VBOX_VERSION_STRING@ - IFPkgDescriptionDeleteWarning - - diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Installer/darwin/VirtualBox/Info.plist virtualbox-4.1.44-dfsg/src/VBox/Installer/darwin/VirtualBox/Info.plist --- virtualbox-4.1.12-dfsg/src/VBox/Installer/darwin/VirtualBox/Info.plist 2012-04-02 13:28:50.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Installer/darwin/VirtualBox/Info.plist 1970-01-01 00:00:00.000000000 +0000 @@ -1,23 +0,0 @@ - - - - - CFBundleIdentifier org.virtualbox.pkg.virtualbox - CFBundleName The @VBOX_PRODUCT@ Application Package - CFBundleGetInfoString @VBOX_PRODUCT@ @VBOX_VERSION_STRING@, © 2009-@VBOX_C_YEAR@ @VBOX_VENDOR@ - CFBundleShortVersionString @VBOX_VERSION_MAJOR@.@VBOX_VERSION_MINOR@.@VBOX_VERSION_BUILD@ - IFMajorVersion @VBOX_VERSION_MAJOR@ - IFMinorVersion @VBOX_VERSION_MINOR@ - IFPkgFlagAllowBackRev - IFPkgFlagAuthorizationAction RootAuthorization - IFPkgFlagDefaultLocation / - IFPkgFlagInstallFat - IFPkgFlagIsRequired - IFPkgFlagRelocatable - IFPkgFlagRestartAction NoRestart - IFPkgFlagRootVolumeOnly - IFPkgFlagUpdateInstalledLanguages - IFPkgFormatVersion 0.10000000149011612 - IFPkgFlagOverwritePermissions - - diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Installer/darwin/VirtualBox/PkgBuildComponent.plist virtualbox-4.1.44-dfsg/src/VBox/Installer/darwin/VirtualBox/PkgBuildComponent.plist --- virtualbox-4.1.12-dfsg/src/VBox/Installer/darwin/VirtualBox/PkgBuildComponent.plist 1970-01-01 00:00:00.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Installer/darwin/VirtualBox/PkgBuildComponent.plist 2015-11-11 15:08:46.000000000 +0000 @@ -0,0 +1,17 @@ + + + + + + RootRelativeBundlePath VirtualBox.app + BundleIsRelocatable + BundleIsVersionChecked + BundleHasStrictIdentifier + BundleOverwriteAction upgrade + BundlePreInstallScriptPath preflight + BundlePostInstallScriptPath postflight + + + + + diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Installer/darwin/VirtualBox/postflight virtualbox-4.1.44-dfsg/src/VBox/Installer/darwin/VirtualBox/postflight --- virtualbox-4.1.12-dfsg/src/VBox/Installer/darwin/VirtualBox/postflight 2012-04-02 13:28:50.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Installer/darwin/VirtualBox/postflight 2015-11-11 15:08:46.000000000 +0000 @@ -16,12 +16,6 @@ CPDIR="${CP} -R" # -# Correct the ownership of the directories in case there -# was an existing installation. -# -chown -R root:admin /Applications/VirtualBox.app - -# # Select the right architecture. # MY_ARCH=`uname -m` @@ -47,7 +41,7 @@ # VBOX_INSTALL_PATH=/Applications/VirtualBox.app/Contents/MacOS -PYTHON="python python2.3 python2.5 python2.6" +PYTHON="python python2.3 python2.5 python2.6 python2.7" if [ -e "${VBOX_INSTALL_PATH}/sdk/installer/vboxapisetup.py" ]; then for p in $PYTHON; do # Install the python bindings if python is in the path @@ -55,7 +49,7 @@ echo 1>&2 "Python found: ${p}, installing bindings..." # Pass install path via environment export VBOX_INSTALL_PATH - /bin/sh -c "cd $VBOX_INSTALL_PATH/sdk/installer && ${p} vboxapisetup.py install 2> /dev/null" + /bin/sh -c "cd $VBOX_INSTALL_PATH/sdk/installer && ${p} vboxapisetup.py install" fi done fi @@ -90,5 +84,22 @@ /usr/bin/sudo -u "${USER}" ${LSREGISTER} -f /Applications/VirtualBox.app/Contents/Resources/vmstarter.app fi -exit 0; +# Check environment. +if [ "${INSTALLER_TEMP}x" == "x" ]; then + echo "Required environment variable INSTALLER_TEMP is missing. Aborting installation." + exit 1; +fi +# Restore previously installed Extension Packs (if any) +if [ -d "${INSTALLER_TEMP}/ExtensionPacks" ]; then + cp -r "${INSTALLER_TEMP}/ExtensionPacks" "${VBOX_INSTALL_PATH}" + rm -rf "${INSTALLER_TEMP}/ExtensionPacks" +fi + +# +# Correct the ownership of the directories in case there +# was an existing installation. +# +chown -R root:admin /Applications/VirtualBox.app + +exit 0; diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Installer/darwin/VirtualBox/preflight virtualbox-4.1.44-dfsg/src/VBox/Installer/darwin/VirtualBox/preflight --- virtualbox-4.1.12-dfsg/src/VBox/Installer/darwin/VirtualBox/preflight 1970-01-01 00:00:00.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Installer/darwin/VirtualBox/preflight 2015-11-11 15:08:46.000000000 +0000 @@ -0,0 +1,31 @@ +#!/bin/sh + +# +# Copyright (C) 2007-2013 Oracle Corporation +# +# This file is part of VirtualBox Open Source Edition (OSE), as +# available from http://www.virtualbox.org. This file is free software; +# you can redistribute it and/or modify it under the terms of the GNU +# General Public License (GPL) as published by the Free Software +# Foundation, in version 2 as it comes in the "COPYING" file of the +# VirtualBox OSE distribution. VirtualBox OSE is distributed in the +# hope that it will be useful, but WITHOUT ANY WARRANTY of any kind. +# + +set -e + +# Check environment. +if [ "${INSTALLER_TEMP}x" == "x" ]; then + echo "Required environment variable INSTALLER_TEMP is missing. Aborting installation." + exit 1; +fi + +# Backup previously installed Extension Packs before +# installation process will completely remove previously installed +# VirtualBox distribution. +EXTPACKS_ROOT_PATH="/Applications/VirtualBox.app/Contents/MacOS/ExtensionPacks" +if [ -d "${EXTPACKS_ROOT_PATH}" ]; then + cp -r "${EXTPACKS_ROOT_PATH}" "${INSTALLER_TEMP}" +fi + +exit 0; diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Installer/darwin/VirtualBoxCLI/Description.plist virtualbox-4.1.44-dfsg/src/VBox/Installer/darwin/VirtualBoxCLI/Description.plist --- virtualbox-4.1.12-dfsg/src/VBox/Installer/darwin/VirtualBoxCLI/Description.plist 2012-04-02 13:28:50.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Installer/darwin/VirtualBoxCLI/Description.plist 1970-01-01 00:00:00.000000000 +0000 @@ -1,10 +0,0 @@ - - - - - IFPkgDescriptionTitle @VBOX_PRODUCT@ Command Line Utilities - IFPkgDescriptionDescription Installs the @VBOX_PRODUCT@ command line utilities into /usr/bin. - IFPkgDescriptionVersion @VBOX_VERSION_STRING@ - IFPkgDescriptionDeleteWarning - - diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Installer/darwin/VirtualBoxCLI/Info.plist virtualbox-4.1.44-dfsg/src/VBox/Installer/darwin/VirtualBoxCLI/Info.plist --- virtualbox-4.1.12-dfsg/src/VBox/Installer/darwin/VirtualBoxCLI/Info.plist 2012-04-02 13:28:50.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Installer/darwin/VirtualBoxCLI/Info.plist 1970-01-01 00:00:00.000000000 +0000 @@ -1,23 +0,0 @@ - - - - - CFBundleIdentifier org.virtualbox.pkg.virtualboxcli - CFBundleName The @VBOX_PRODUCT@ Command Line Utilities Package - CFBundleGetInfoString @VBOX_PRODUCT@ @VBOX_VERSION_STRING@, © 2009-@VBOX_C_YEAR@ @VBOX_VENDOR@ - CFBundleShortVersionString @VBOX_VERSION_MAJOR@.@VBOX_VERSION_MINOR@.@VBOX_VERSION_BUILD@ - IFMajorVersion @VBOX_VERSION_MAJOR@ - IFMinorVersion @VBOX_VERSION_MINOR@ - IFPkgFlagAllowBackRev - IFPkgFlagAuthorizationAction RootAuthorization - IFPkgFlagDefaultLocation / - IFPkgFlagInstallFat - IFPkgFlagIsRequired - IFPkgFlagRelocatable - IFPkgFlagRestartAction NoRestart - IFPkgFlagRootVolumeOnly - IFPkgFlagUpdateInstalledLanguages - IFPkgFormatVersion 0.10000000149011612 - IFPkgFlagOverwritePermissions - - diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Installer/darwin/VirtualBox_mpkg/checkforrunningvms virtualbox-4.1.44-dfsg/src/VBox/Installer/darwin/VirtualBox_mpkg/checkforrunningvms --- virtualbox-4.1.12-dfsg/src/VBox/Installer/darwin/VirtualBox_mpkg/checkforrunningvms 2012-04-02 13:28:50.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Installer/darwin/VirtualBox_mpkg/checkforrunningvms 1970-01-01 00:00:00.000000000 +0000 @@ -1,26 +0,0 @@ -#!/bin/sh - -# -# Copyright (C) 2008-2010 Oracle Corporation -# -# This file is part of VirtualBox Open Source Edition (OSE), as -# available from http://www.virtualbox.org. This file is free software; -# you can redistribute it and/or modify it under the terms of the GNU -# General Public License (GPL) as published by the Free Software -# Foundation, in version 2 as it comes in the "COPYING" file of the -# VirtualBox OSE distribution. VirtualBox OSE is distributed in the -# hope that it will be useful, but WITHOUT ANY WARRANTY of any kind. -# - -GREP=/usr/bin/grep -PS=/bin/ps - -RESULT=0 - -# Check if there are running vms -PROCS=`${PS} -e | ${GREP} -E "VirtualBoxVM.*startvm|VBoxNetDHCP" | ${GREP} -v grep` -if [ "${PROCS}x" != "x" ]; then - RESULT=1; -fi - -exit $RESULT diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Installer/darwin/VirtualBox_mpkg/Conclusion.rtf virtualbox-4.1.44-dfsg/src/VBox/Installer/darwin/VirtualBox_mpkg/Conclusion.rtf --- virtualbox-4.1.12-dfsg/src/VBox/Installer/darwin/VirtualBox_mpkg/Conclusion.rtf 1970-01-01 00:00:00.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Installer/darwin/VirtualBox_mpkg/Conclusion.rtf 2014-10-15 14:24:24.000000000 +0000 @@ -0,0 +1,9 @@ +{\rtf1\ansi\ansicpg1252\cocoartf1138\cocoasubrtf470 +{\fonttbl\f0\fswiss\fcharset0 Helvetica;} +{\colortbl;\red255\green255\blue255;} +\vieww10800\viewh8400\viewkind0 +\deftab720 +\pard\pardeftab720\sa240 + +\f0\fs24 \cf0 To start VirtualBox, go to your Applications folder and double click on the VirtualBox icon.\ +} \ No newline at end of file diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Installer/darwin/VirtualBox_mpkg/Description.plist virtualbox-4.1.44-dfsg/src/VBox/Installer/darwin/VirtualBox_mpkg/Description.plist --- virtualbox-4.1.12-dfsg/src/VBox/Installer/darwin/VirtualBox_mpkg/Description.plist 2012-04-02 13:28:50.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Installer/darwin/VirtualBox_mpkg/Description.plist 1970-01-01 00:00:00.000000000 +0000 @@ -1,11 +0,0 @@ - - - - - IFPkgDescriptionTitle @VBOX_PRODUCT@ - IFPkgDescriptionDescription The @VBOX_PRODUCT@ Package. - IFPkgDescriptionVersion @VBOX_VERSION_STRING@ - IFPkgDescriptionDeleteWarning - - - diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Installer/darwin/VirtualBox_mpkg/distribution.dist virtualbox-4.1.44-dfsg/src/VBox/Installer/darwin/VirtualBox_mpkg/distribution.dist --- virtualbox-4.1.12-dfsg/src/VBox/Installer/darwin/VirtualBox_mpkg/distribution.dist 2012-04-02 13:28:50.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Installer/darwin/VirtualBox_mpkg/distribution.dist 2015-11-11 15:08:46.000000000 +0000 @@ -1,7 +1,7 @@ VirtualBox_title - + - + - - + - + - + - + file:./Contents/Packages/VBoxKEXTs.pkg @@ -92,3 +98,4 @@ file:./Contents/Packages/VirtualBox.pkg file:./Contents/Packages/VirtualBoxCLI.pkg + diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Installer/darwin/VirtualBox_mpkg/Info.plist virtualbox-4.1.44-dfsg/src/VBox/Installer/darwin/VirtualBox_mpkg/Info.plist --- virtualbox-4.1.12-dfsg/src/VBox/Installer/darwin/VirtualBox_mpkg/Info.plist 2012-04-02 13:28:50.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Installer/darwin/VirtualBox_mpkg/Info.plist 1970-01-01 00:00:00.000000000 +0000 @@ -1,33 +0,0 @@ - - - - - CFBundleIdentifier org.virtualbox.mpkg.virtualbox - CFBundleName The @VBOX_PRODUCT@ Package - CFBundleGetInfoString @VBOX_PRODUCT@ @VBOX_VERSION_STRING@, © 2009-@VBOX_C_YEAR@ @VBOX_VENDOR@ - CFBundleShortVersionString @VBOX_VERSION_MAJOR@.@VBOX_VERSION_MINOR@.@VBOX_VERSION_BUILD@ - IFMajorVersion @VBOX_VERSION_MAJOR@ - IFMinorVersion @VBOX_VERSION_MINOR@ - IFPkgFormatVersion 0.10000000149011612 - IFPkgFlagComponentDirectory ./Contents/Packages - IFPkgFlagPackageList - - - IFPkgFlagPackageLocation VBoxKEXTs.pkg - IFPkgFlagPackageSelection required - - - IFPkgFlagPackageLocation VBoxStartupItems.pkg - IFPkgFlagPackageSelection required - - - IFPkgFlagPackageLocation VirtualBox.pkg - IFPkgFlagPackageSelection required - - - IFPkgFlagPackageLocation VirtualBoxCLI.pkg - IFPkgFlagPackageSelection selected - - - - diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Installer/darwin/VirtualBox_mpkg/Welcome.rtf virtualbox-4.1.44-dfsg/src/VBox/Installer/darwin/VirtualBox_mpkg/Welcome.rtf --- virtualbox-4.1.12-dfsg/src/VBox/Installer/darwin/VirtualBox_mpkg/Welcome.rtf 1970-01-01 00:00:00.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Installer/darwin/VirtualBox_mpkg/Welcome.rtf 2014-10-15 14:24:24.000000000 +0000 @@ -0,0 +1,13 @@ +{\rtf1\ansi\ansicpg1252\cocoartf1138\cocoasubrtf470 +{\fonttbl\f0\fswiss\fcharset0 Helvetica;} +{\colortbl;\red255\green255\blue255;} +\vieww10800\viewh8400\viewkind0 +\deftab720 +\pard\pardeftab720\sa280 + +\f0\b\fs36 \cf0 @VBOX_PRODUCT@ for Mac OS X +\b0 \ +\pard\pardeftab720\sa240 + +\fs24 \cf0 Welcome to @VBOX_PRODUCT@ @VBOX_VERSION_MAJOR@.@VBOX_VERSION_MINOR@.@VBOX_VERSION_BUILD@ for Mac OS X! This installer will guide you through the installation process. In a minute from now, you will be able to execute virtual machines running different operating systems on your desktop. You will find that VirtualBox delivers a great feature set and excellent performance.\ +} \ No newline at end of file diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Installer/linux/distributions_deb virtualbox-4.1.44-dfsg/src/VBox/Installer/linux/distributions_deb --- virtualbox-4.1.12-dfsg/src/VBox/Installer/linux/distributions_deb 2012-04-02 13:28:51.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Installer/linux/distributions_deb 2015-11-11 15:08:47.000000000 +0000 @@ -4,6 +4,8 @@ _Debian_lenny = DEBIAN_5_0 _Debian_etch = DEBIAN_4_0 _Debian_sarge = DEBIAN_3_1 +_Ubuntu_raring = UBUNTU_13_04 +_Ubuntu_quantal = UBUNTU_12_10 _Ubuntu_precise = UBUNTU_12_04 _Ubuntu_oneiric = UBUNTU_11_10 _Ubuntu_natty = UBUNTU_11_04 diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Installer/linux/distributions_rpm virtualbox-4.1.44-dfsg/src/VBox/Installer/linux/distributions_rpm --- virtualbox-4.1.12-dfsg/src/VBox/Installer/linux/distributions_rpm 2012-04-02 13:28:51.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Installer/linux/distributions_rpm 2015-11-11 15:08:47.000000000 +0000 @@ -13,6 +13,7 @@ mdv2009.1 = MANDRIVA_2009_1 mdv2008.0 = MANDRIVA_2008_0 mdv2007.1 = MANDRIVA_2007_1 +fedora18 = FEDORA_18 fedora17 = FEDORA_17 fedora16 = FEDORA_16 fedora15 = FEDORA_15 @@ -24,9 +25,9 @@ fedora8 = FEDORA_8 fedora7 = FEDORA_7 fedora6 = FEDORA_6 -rhel6 = RHEL_6 -rhel5 = RHEL_5 -rhel4 = RHEL_4 +el6 = EL_6 +el5 = EL_5 +el4 = EL_4 centos6 = CENTOS_6 centos5 = CENTOS_5 centos4 = CENTOS_4 diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Installer/linux/Makefile.kmk virtualbox-4.1.44-dfsg/src/VBox/Installer/linux/Makefile.kmk --- virtualbox-4.1.12-dfsg/src/VBox/Installer/linux/Makefile.kmk 2012-04-02 13:28:51.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Installer/linux/Makefile.kmk 2015-11-11 15:08:47.000000000 +0000 @@ -40,10 +40,11 @@ VBOX_LNX_INST_DEP_ON_MAKEFILE := $(MAKEFILE_CURRENT) BLDDIRS += $(VBOX_LNX_INST_OUT_DIR) $(VBOX_LNX_INST_STAGE_DIR) -PACKING += $(PATH_STAGE_BIN)/VirtualBox.tar.bz2 if !defined(VBOX_NO_LINUX_RUN_INSTALLER) PACKING += $(PATH_STAGE_BIN)/$(VBOX_LNX_PACKAGE_NAME) \ $(PATH_STAGE_BIN)/VirtualBox-dbg.tar.bz2 +else + PACKING += $(PATH_STAGE_BIN)/VirtualBox.tar endif OTHER_CLEAN += \ @@ -410,22 +411,15 @@ $(QUIET)$(CHMOD) 0644 $@ # -# .tar.bz2 for distribution with the files under VirtualBox-/. +# .tar for distribution with the files under VirtualBox-/. # -$(PATH_STAGE_BIN)/VirtualBox.tar.bz2: $(VBOX_LNX_INST_ARCH_DEPS) +$(PATH_STAGE_BIN)/VirtualBox.tar: $(VBOX_LNX_INST_ARCH_DEPS) $(call MSG_L1,Packing $@) $(QUIET)$(RM) -f -- $(VBOX_LNX_INST_OUT_DIR)/VirtualBox-$(VBOX_VERSION_STRING) $@ $(patsubst %.bz2,%,$@) $(QUIET)$(LN_SYMLINK) $(VBOX_LNX_INST_OUT_DIR)/archive/ $(VBOX_LNX_INST_OUT_DIR)/VirtualBox-$(VBOX_VERSION_STRING) -ifdef VBOX_USE_PBZIP2 $(QUIET)tar --dereference --owner 0 --group 0 \ - -cRhf $(patsubst %.bz2,%,$@) -C $(VBOX_LNX_INST_OUT_DIR) \ + -cRhf $@ -C $(VBOX_LNX_INST_OUT_DIR) \ $(addprefix VirtualBox-$(VBOX_VERSION_STRING)/,$(VBOX_LNX_ARCH_FILES)) - $(QUIET)pbzip2 $(patsubst %.bz2,%,$@) -else - $(QUIET)tar --dereference --owner 0 --group 0 \ - -cjRhf $@ -C $(VBOX_LNX_INST_OUT_DIR) \ - $(addprefix VirtualBox-$(VBOX_VERSION_STRING)/,$(VBOX_LNX_ARCH_FILES)) -endif $(QUIET)$(RM) -f -- $(VBOX_LNX_INST_OUT_DIR)/VirtualBox-$(VBOX_VERSION_STRING) diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Installer/linux/rpm/rules virtualbox-4.1.44-dfsg/src/VBox/Installer/linux/rpm/rules --- virtualbox-4.1.12-dfsg/src/VBox/Installer/linux/rpm/rules 2012-04-02 13:28:51.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Installer/linux/rpm/rules 2015-11-11 15:08:47.000000000 +0000 @@ -69,7 +69,7 @@ NOWINE := $(if $(NODOCS),$(if $(STAGEDISO),1,),)$(ose) ifneq ($(MAKECMDGOALS),clean) - rpmrel := $(shell cat /etc/distname) + rpmrel := $(subst rhel,el,$(shell cat /etc/distname)) ifeq ($(rpmrel),) # look for fedora rpmrel := $(shell cat /etc/fedora-release | sed -e 's/^Fedora *release *\([1-9][0-9]*\) .*/fedora\1/') @@ -83,7 +83,7 @@ $(error Cannot detect package distribution (rpmrel=$(rpmrel))) endif - ifeq ($(filter-out rhel4 rhel5 rhel6 ol4 ol5 ol6 centos4 centos5 centos6 fedora9 fedora11 fedora12 fedora13 fedora14 fedora15 fedora16 fedora17 turbolinux11,$(rpmrel)),) + ifeq ($(filter-out el4 el5 el6 ol4 ol5 ol6 centos4 centos5 centos6 fedora9 fedora11 fedora12 fedora13 fedora14 fedora15 fedora16 fedora17 fedora18 turbolinux11,$(rpmrel)),) rpmspec := rpm_redhat endif ifeq ($(filter-out openSUSE110 openSUSE111 openSUSE112 openSUSE113 openSUSE114 openSUSE121 sles10.1 sles11.0,$(rpmrel)),) @@ -95,18 +95,21 @@ ifeq ($(rpmspec),) $(error failed to detect the .spec file (rpmrel=$(rpmrel))) endif + + # contrary to debian we need the verfile earlier to get the correct rpmname into the bld_flags + include $(verfile) +$(verfile): rpm/configure-stamp + . rpm/env.sh && kmk -C $(vboxroot) $(verfile) $(bld_flags) + endif -ifneq ($(wildcard $(verfile)),) -include $(verfile) ver := $(VBOX_VERSION_STRING) rpmver :=$(ver)$(if $(NOSUBVER),,$(if $(svn_revision),_$(svn_revision),)$(VERSUFFIX)$(if $(HEADLESS),_headless,)$(if $(DEBUG),_dbg,))$(if $(BLEEDING_EDGE),_$(BLEEDING_EDGE),) archdir := $(current)/rpm/VirtualBox-$(ver) rpmname := $(verpkg)-$(rpmver)_$(rpmrel) -endif -# Fedora13/14 is bleeding edge, the other jails have outdated kernel headers -instmod := $(if $(filter rhel4 rhel5 rhel6 ol4 ol5 ol6 centos4 centos5 centos6 sles10.1 sles11.0 fedora13 fedora14 fedora15 fedora16 fedora17,$(rpmrel)),,install_rpm) +# never ship any modules +instmod := ifneq ($(STAGEDISO),) ifeq ($(wildcard $(STAGEDISO)/VBoxGuestAdditions.iso),) @@ -128,13 +131,12 @@ endif cfg_flags := $(if $(NOQT),--disable-qt,) \ - $(if $(filter rhel4 sles10.1,$(rpmrel)),--build-libxml2,) \ - $(if $(filter rhel4,$(rpmrel)),--build-libssl,) \ - $(if $(filter rhel4 rhel5 ol4 ol5 centos4 centos5 sles10.1,$(rpmrel)),--build-libcurl,) \ - $(if $(filter rhel5 centos5 sles10.1,$(rpmrel)),--disable-sdl-ttf,) \ + $(if $(filter el4 sles10.1,$(rpmrel)),--build-libxml2,) \ + $(if $(filter el4,$(rpmrel)),--build-libssl,) \ + $(if $(filter el5 centos5 sles10.1,$(rpmrel)),--disable-sdl-ttf,) \ $(if $(filter sles10.1 turbolinux11,$(rpmrel)),--disable-pulse,) \ - $(if $(filter rhel4 rhel5 ol4 ol5 centos4 centos5,$(rpmrel)),--enable-pulse,) \ - $(if $(filter rhel4 rhel5 ol4 ol5 centos4 centos5 sles10.1 turbolinux11,$(rpmrel)),--with-qt4-dir=/home/vbox/Qt-4.7.4-stdc++6-$(arch)) \ + $(if $(filter el4 el5 ol4 ol5 centos4 centos5,$(rpmrel)),--enable-pulse,) \ + $(if $(filter el4 el5 ol4 ol5 centos4 centos5 sles10.1 turbolinux11,$(rpmrel)),--with-qt4-dir=/home/vbox/Qt-4.7.4-stdc++6-$(arch)) \ $(if $(ose),--ose,) $(if $(LINUX),--with-linux=$(LINUX),) \ $(if $(HEADLESS),--build-headless,) \ $(if $(DEBUG),--build-debug,) \ @@ -157,13 +159,13 @@ $(if $(VERBOSE),--print-directory KBUILD_VERBOSE=2,--no-print-directory) \ $(if $(STAGEDISO),VBOX_WITHOUT_ADDITIONS=1,) \ $(if $(BLEEDING_EDGE),VBOX_BLEEDING_EDGE=$(BLEEDING_EDGE),) \ - $(if $(filter rhel4 rhel5 ol4 ol5 centos4 centos5 fedora9 fedora10 sles10.1 turbolinux11,$(rpmrel)),,VBOX_WITH_SYSFS_BY_DEFAULT=1) + $(if $(filter el4 el5 ol4 ol5 centos4 centos5 fedora9 fedora10 sles10.1 turbolinux11,$(rpmrel)),,VBOX_WITH_SYSFS_BY_DEFAULT=1) rpm/configure-stamp: cd $(vboxroot) && ./configure --odir=$(current)/rpm $(cfg_flags) touch rpm/configure-stamp -rpm/build-stamp $(verfile): rpm/configure-stamp +rpm/build-stamp: rpm/configure-stamp . rpm/env.sh && kmk -C $(vboxroot) $(bld_flags) $(if $(NOPARALLEL),-j1,) all $(if $(NODOCS),cp $(vboxroot)/prebuild/UserManual*.pdf $(builddir)/bin,) $(if $(NODOCS),cp $(vboxroot)/prebuild/VirtualBox*.chm $(builddir)/bin,) @@ -183,6 +185,7 @@ clean: rm -rf $(archdir) rm -rf $(builddir) rpm/VirtualBox-* + rm -f rpm/VirtualBox.tar rm -f rpm/VirtualBox.tar.bz2 rm -f rpm/VirtualBox.spec rm -f rpm/build-stamp rpm/configure-stamp rpm/configure.log @@ -194,7 +197,7 @@ else binary: rpm/build-stamp rm -rf rpm/VirtualBox-* - tar -xjf $(builddir)/bin/VirtualBox.tar.bz2 -C rpm + tar -xf $(builddir)/bin/VirtualBox.tar -C rpm sed \ -e 's|%VER%|$(ver)|g' \ -e 's|%NAME%|$(verpkg)|g' \ @@ -233,10 +236,10 @@ vboxweb-service.sh.in > $(archdir)/vboxweb-service.init cp debian/VBox.sh $(archdir) mv rpm/VirtualBox-$(ver) rpm/$(rpmname) - tar -cjf rpm/VirtualBox.tar.bz2 -C rpm $(rpmname) + tar -cf rpm/VirtualBox.tar -C rpm $(rpmname) rm -f /usr/src/packages/RPMS/*/VirtualBox*rpm rm -f /usr/src/packages/SPECS/* - (cd rpm; rpmbuild -tb --clean VirtualBox.tar.bz2) + (cd rpm; rpmbuild -tb --clean VirtualBox.tar) mv /usr/src/packages/RPMS/*/$(verpkg)-debug* $(pkgdir) || true file=`find /usr/src/packages/RPMS -name $(verpkg)*rpm -print`; \ mv $$file $(pkgdir) diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Installer/linux/rpm/VirtualBox.tmpl.spec virtualbox-4.1.44-dfsg/src/VBox/Installer/linux/rpm/VirtualBox.tmpl.spec --- virtualbox-4.1.12-dfsg/src/VBox/Installer/linux/rpm/VirtualBox.tmpl.spec 2012-04-02 13:28:51.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Installer/linux/rpm/VirtualBox.tmpl.spec 2015-11-11 15:08:47.000000000 +0000 @@ -23,7 +23,7 @@ Version: %BUILDVER%_%BUILDREL% Release: 1 URL: http://www.virtualbox.org/ -Source: VirtualBox.tar.bz2 +Source: VirtualBox.tar License: GPLv2 Group: Applications/System Vendor: Oracle Corporation @@ -432,13 +432,13 @@ %{?rpm_suse: /sbin/rcvboxdrv} %{?rpm_suse: /sbin/rcvboxballoonctrl-service} %{?rpm_suse: /sbin/rcvboxweb-service} -/lib/modules /etc/vbox -/usr/bin +/usr/bin/* /usr/src/vbox* /usr/lib/virtualbox -/usr/share/applications -/usr/share/icons -/usr/share/mime/packages -/usr/share/pixmaps +/usr/share/applications/* +/usr/share/icons/hicolor/*/apps/* +/usr/share/icons/hicolor/*/mimetypes/* +/usr/share/mime/packages/* +/usr/share/pixmaps/* /usr/share/virtualbox diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Installer/linux/run-inst.sh virtualbox-4.1.44-dfsg/src/VBox/Installer/linux/run-inst.sh --- virtualbox-4.1.12-dfsg/src/VBox/Installer/linux/run-inst.sh 2012-04-02 13:28:51.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Installer/linux/run-inst.sh 2015-11-11 15:08:47.000000000 +0000 @@ -247,6 +247,9 @@ rmdir "$CONFIG_DIR" 2>/dev/null test "$ACTION" = "install" || exit 0 +# Choose a proper umask +umask 022 + # install the new version mkdir -p -m 755 "$CONFIG_DIR" test ! -d "$INSTALLATION_DIR" && REMOVE_INSTALLATION_DIR=1 diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Installer/linux/vboxballoonctrl-service.sh.in virtualbox-4.1.44-dfsg/src/VBox/Installer/linux/vboxballoonctrl-service.sh.in --- virtualbox-4.1.12-dfsg/src/VBox/Installer/linux/vboxballoonctrl-service.sh.in 2012-04-02 13:28:51.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Installer/linux/vboxballoonctrl-service.sh.in 2015-11-11 15:08:47.000000000 +0000 @@ -2,7 +2,7 @@ # # VirtualBox balloon control daemon init script. # -# Copyright (C) 2006-2011 Oracle Corporation +# Copyright (C) 2006-2012 Oracle Corporation # # This file is part of VirtualBox Open Source Edition (OSE), as # available from http://www.virtualbox.org. This file is free software; @@ -156,7 +156,11 @@ fi if [ "$system" = "gentoo" ]; then - . /sbin/functions.sh + if [ -f /sbin/functions.sh ]; then + . /sbin/functions.sh + elif [ -f /etc/init.d/functions.sh ]; then + . /etc/init.d/functions.sh + fi start_daemon() { usr="$1" shift @@ -294,7 +298,7 @@ [ -n "$VBOXBALLOONCTRL_INCREMENT" ] && PARAMS="$PARAMS --balloon-inc $VBOXBALLOONCTRL_INCREMENT" [ -n "$VBOXBALLOONCTRL_DECREMENT" ] && PARAMS="$PARAMS --balloon-dec $VBOXBALLOONCTRL_DECREMENT" [ -n "$VBOXBALLOONCTRL_LOWERLIMIT" ] && PARAMS="$PARAMS --balloon-lower-limit $VBOXBALLOONCTRL_LOWERLIMIT" - [ -n "$VBOXBALLOONCTRL_ROTATE" ] && PARAMS="$PARAMS - $VBOXBALLOONCTRL_ROTATE" + [ -n "$VBOXBALLOONCTRL_ROTATE" ] && PARAMS="$PARAMS -R $VBOXBALLOONCTRL_ROTATE" [ -n "$VBOXBALLOONCTRL_LOGSIZE" ] && PARAMS="$PARAMS -S $VBOXBALLOONCTRL_LOGSIZE" [ -n "$VBOXBALLOONCTRL_LOGINTERVAL" ] && PARAMS="$PARAMS -I $VBOXBALLOONCTRL_LOGINTERVAL" # prevent inheriting this setting to VBoxSVC diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Installer/linux/vboxweb-service.sh.in virtualbox-4.1.44-dfsg/src/VBox/Installer/linux/vboxweb-service.sh.in --- virtualbox-4.1.12-dfsg/src/VBox/Installer/linux/vboxweb-service.sh.in 2012-04-02 13:28:51.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Installer/linux/vboxweb-service.sh.in 2015-11-11 15:08:47.000000000 +0000 @@ -34,8 +34,10 @@ if [ -n "$INSTALL_DIR" ]; then binary="$INSTALL_DIR/vboxwebsrv" + vboxmanage="$INSTALL_DIR/VBoxManage" else binary="/usr/lib/%PACKAGE%/vboxwebsrv" + vboxmanage="/usr/lib/%PACKAGE%/VBoxManage" fi # silently exit if the package was uninstalled but not purged, @@ -156,7 +158,11 @@ fi if [ "$system" = "gentoo" ]; then - . /sbin/functions.sh + if [ -f /sbin/functions.sh ]; then + . /sbin/functions.sh + elif [ -f /etc/init.d/functions.sh ]; then + . /etc/init.d/functions.sh + fi start_daemon() { usr="$1" shift @@ -307,6 +313,19 @@ [ -n "$VBOXWEB_ROTATE" ] && PARAMS="$PARAMS -R $VBOXWEB_ROTATE" [ -n "$VBOXWEB_LOGSIZE" ] && PARAMS="$PARAMS -S $VBOXWEB_LOGSIZE" [ -n "$VBOXWEB_LOGINTERVAL" ] && PARAMS="$PARAMS -I $VBOXWEB_LOGINTERVAL" + # set authentication method + password hash + if [ -n "$VBOXWEB_AUTH_LIBRARY" ]; then + su - "$VBOXWEB_USER" -c "$vboxmanage setproperty websrvauthlibrary \"$VBOXWEB_AUTH_LIBRARY\"" + if [ $? -ne 0 ]; then + fail_msg "Error $? setting webservice authentication library to $VBOXWEB_AUTH_LIBRARY" + fi + fi + if [ -n "$VBOXWEB_AUTH_PWHASH" ]; then + su - "$VBOXWEB_USER" -c "$vboxmanage setextradata global \"VBoxAuthSimple/users/$VBOXWEB_USER\" \"$VBOXWEB_AUTH_PWHASH\"" + if [ $? -ne 0 ]; then + fail_msg "Error $? setting webservice password hash" + fi + fi # prevent inheriting this setting to VBoxSVC unset VBOX_RELEASE_LOG_DEST start_daemon $VBOXWEB_USER $binary $PARAMS > /dev/null 2>&1 diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Installer/solaris/checkinstall.sh virtualbox-4.1.44-dfsg/src/VBox/Installer/solaris/checkinstall.sh --- virtualbox-4.1.12-dfsg/src/VBox/Installer/solaris/checkinstall.sh 2012-04-02 13:28:51.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Installer/solaris/checkinstall.sh 2015-11-11 15:08:47.000000000 +0000 @@ -65,7 +65,7 @@ # nothing to check for remote install REMOTE_INST=0 if test "x${PKG_INSTALL_ROOT:=/}" != "x/"; then - BASEDIR_OPT="-R \"$PKG_INSTALL_ROOT\"" + BASEDIR_OPT="-R $PKG_INSTALL_ROOT" REMOTE_INST=1 fi diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Installer/solaris/Makefile.kmk virtualbox-4.1.44-dfsg/src/VBox/Installer/solaris/Makefile.kmk --- virtualbox-4.1.12-dfsg/src/VBox/Installer/solaris/Makefile.kmk 2012-04-02 13:28:51.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Installer/solaris/Makefile.kmk 2015-11-11 15:08:47.000000000 +0000 @@ -149,7 +149,8 @@ solaris-doc_MODE = a+r,u+w solaris-doc_SOURCES = \ $(VBOX_BRAND_LICENSE_TXT)=>LICENSE \ - $(PATH_ROOT)/src/VBox/Frontends/VirtualBox/images/$(if $(VBOX_OSE),OSE,NonOSE)/VirtualBox_64px.png=>VBox.png + $(PATH_ROOT)/src/VBox/Frontends/VirtualBox/images/$(if $(VBOX_OSE),OSE,NonOSE)/VirtualBox_64px.png=>VBox.png \ + $(PATH_ROOT)/src/VBox/Resources/$(if $(VBOX_OSE),OSE,NonOSE)/virtualbox-128px.png=>virtualbox.png solaris-bin_INST = bin/ solaris-bin_MODE = a+rx,u+w @@ -312,6 +313,7 @@ SOLARIS_EXTRAS = \ LICENSE \ VBox.png \ + virtualbox.png \ autoresponse \ $(if $(VBOX_WITH_VBOXSDL),libSDL-1.2.so.0,) \ $(if $(not $(VBOX_WITH_NETFLT))vnic_setup.sh,) \ @@ -662,6 +664,7 @@ $(QUIET)$(INSTALL) -m 0644 $(VBOX_PATH_SOL_INST_SRC)/virtualbox.mime $(SOLARIS_USRSHR_MIMEINFO_DIR)/virtualbox.mime $(QUIET)$(INSTALL) -m 0755 $(VBOX_PATH_SOL_INST_SRC)/postinstall.sh $(SOLARIS_BASEINST_DIR)/postinstall.sh $(QUIET)$(INSTALL) -m 0644 $(SOLARIS_OUT_BIN)/VBox.png $(SOLARIS_USRSHR_PIXMAPS_DIR)/VBox.png + $(QUIET)$(INSTALL) -m 0644 $(SOLARIS_OUT_BIN)/virtualbox.png $(SOLARIS_USRSHR_PIXMAPS_DIR)/virtualbox.png $(QUIET)$(INSTALL) -m 0755 $(VBOX_PATH_SOL_INST_SRC)/postinstall.sh $(SOLARIS_BASEINST_DIR)/postinstall.sh $(QUIET)$(INSTALL) -m 0755 $(VBOX_PATH_SOL_INST_SRC)/checkinstall.sh $(SOLARIS_BASEINST_DIR)/checkinstall.sh $(QUIET)$(INSTALL) -m 0755 $(VBOX_PATH_SOL_INST_SRC)/preremove.sh $(SOLARIS_BASEINST_DIR)/preremove.sh diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Installer/solaris/smf-vboxwebsrv.sh virtualbox-4.1.44-dfsg/src/VBox/Installer/solaris/smf-vboxwebsrv.sh --- virtualbox-4.1.12-dfsg/src/VBox/Installer/solaris/smf-vboxwebsrv.sh 2012-04-02 13:28:51.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Installer/solaris/smf-vboxwebsrv.sh 2015-11-11 15:08:47.000000000 +0000 @@ -53,6 +53,10 @@ [ $? != 0 ] && VW_SSL_DHFILE= VW_SSL_RANDFILE=`/usr/bin/svcprop -p config/ssl_randfile $SMF_FMRI 2>/dev/null` [ $? != 0 ] && VW_SSL_RANDFILE= + VW_AUTH_LIBRARY=`/usr/bin/svcprop -p config/auth_library $SMF_FMRI 2>/dev/null` + [ $? != 0 ] && VW_AUTH_LIBRARY= + VW_AUTH_PWHASH=`/usr/bin/svcprop -p config/auth_pwhash $SMF_FMRI 2>/dev/null` + [ $? != 0 ] && VW_AUTH_PWHASH= VW_TIMEOUT=`/usr/bin/svcprop -p config/timeout $SMF_FMRI 2>/dev/null` [ $? != 0 ] && VW_TIMEOUT= VW_CHECK_INTERVAL=`/usr/bin/svcprop -p config/checkinterval $SMF_FMRI 2>/dev/null` @@ -95,6 +99,20 @@ [ -n "$VW_SSL_RANDFILE" ] && VW_SSL_RANDFILE="--randfile $VW_SSL_RANDFILE" [ -n "$VW_LOGFILE" ] && VW_LOGFILE="--logfile $VW_LOGFILE" + # Set authentication method + password hash + if [ -n "$VW_AUTH_LIBRARY" ]; then + su - "$VW_USER" -c "/opt/VirtualBox/VBoxManage setproperty websrvauthlibrary \"$VW_AUTH_LIBRARY\"" + if [ $? != 0 ]; then + echo "Error $? setting webservice authentication library to $VW_AUTH_LIBRARY" + fi + fi + if [ -n "$VW_AUTH_PWHASH" ]; then + su - "$VW_USER" -c "/opt/VirtualBox/VBoxManage setextradata global \"VBoxAuthSimple/users/$VW_USER\" \"$VW_AUTH_PWHASH\"" + if [ $? != 0 ]; then + echo "Error $? setting webservice password hash" + fi + fi + exec su - "$VW_USER" -c "/opt/VirtualBox/vboxwebsrv --background --host \"$VW_HOST\" --port \"$VW_PORT\" $VW_SSL $VW_SSL_KEYFILE $VW_SSL_PASSWORDFILE $VW_SSL_CACERT $VW_SSL_CAPATH $VW_SSL_DHFILE $VW_SSL_RANDFILE --timeout \"$VW_TIMEOUT\" --check-interval \"$VW_CHECK_INTERVAL\" --threads \"$VW_THREADS\" --keepalive \"$VW_KEEPALIVE\" --authentication \"$VW_AUTHENTICATION\" $VW_LOGFILE --logrotate \"$VW_ROTATE\" --logsize \"$VW_LOGSIZE\" --loginterval \"$VW_LOGINTERVAL\"" VW_EXIT=$? diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Installer/solaris/vboxconfig.sh virtualbox-4.1.44-dfsg/src/VBox/Installer/solaris/vboxconfig.sh --- virtualbox-4.1.12-dfsg/src/VBox/Installer/solaris/vboxconfig.sh 2012-04-02 13:28:51.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Installer/solaris/vboxconfig.sh 2015-11-11 15:08:48.000000000 +0000 @@ -239,27 +239,72 @@ fi if test ! -z "$PKGFMRI"; then # The format is "pkg://solaris/system/kernel@0.5.11,5.11-0.161:20110315T070332Z" + # or "pkg://solaris/system/kernel@5.12,5.11-5.12.0.0.0.4.1:20120908T030246Z" # or "pkg://solaris/system/kernel@0.5.11,5.11-0.175.0.0.0.1.0:20111012T032837Z" - STR_KERN=`echo "$PKGFMRI" | sed 's/^.*\@//;s/\:.*//;s/.*,//'` - if test ! -z "$STR_KERN"; then - # The format is "5.11-0.161" or "5.11-0.175.0.0.0.1.0" - HOST_OS_MAJORVERSION=`echo "$STR_KERN" | cut -f1 -d'-'` - HOST_OS_MINORVERSION=`echo "$STR_KERN" | cut -f2 -d'-' | cut -f2 -d '.'` + # or "pkg://solaris/system/kernel@5.12-5.12.0.0.0.9.1.3.0:20121012T032837Z" + STR_KERN_MAJOR=`echo "$PKGFMRI" | sed 's/^.*\@//;s/\,.*//'` + if test ! -z "$STR_KERN_MAJOR"; then + # The format is "0.5.11" or "5.12" + # Let us just hardcode these for now, instead of trying to do things more generically. It's not + # worth trying to bring more order to chaos as it's clear that the version numbering is subject to breakage + # as it has been seen in the past. + if test "$STR_KERN_MAJOR" = "5.12"; then + HOST_OS_MAJORVERSION="12" + elif test "$STR_KERN_MAJOR" = "0.5.11" || test "$STR_KERN_MAJOR" = "5.11"; then + HOST_OS_MAJORVERSION="11" + else + # This could be the PSARC/2012/240 naming scheme for S12. + # The format is "pkg://solaris/system/kernel@5.12-5.12.0.0.0.9.1.3.0:20121012T032837Z" + # The "5.12" following the "@" is the nominal version which we ignore for now as it is + # not set by most pkg(5) tools... + # STR_KERN_MAJOR is now of the format "5.12-5.12.0.0.0.9.1.3.0:20121012T032837Z" with '9' representing + # the build number. + BRANCH_VERSION=STR_KERN_MAJOR + HOST_OS_MAJORVERSION=`echo "$BRANCH_VERSION" | cut -f2 -d'-' | cut -f1,2 -d'.'` + if test "HOST_OS_MAJORVERSION" = "5.12"; then + HOST_OS_MINORVERSION=`echo "$BRANCH_VERSION" | cut -f2 -d'-' | cut -f6 -d'.'` + return 0 + else + errorprint "Failed to parse the Solaris kernel major version." + exit 1 + fi + fi + + # This applies only to S11 and S12 where the transitional "@5.12," component version is + # still part of the pkg(5) package FMRI. The regular S12 will follow the PSARC/2012/240 naming scheme above. + STR_KERN_MINOR=`echo "$PKGFMRI" | sed 's/^.*\@//;s/\:.*//;s/.*,//'` + if test ! -z "$STR_KERN_MINOR"; then + # The HOST_OS_MINORVERSION is represented as follows: + # For S12 it represents the build numbers. e.g. for 4 : "5.11-5.12.0.0.0.4.1" + # For S11 as the "nevada" version numbers. e.g. for 175: "5.11-0.161" or "5.11-0.175.0.0.0.1.0" + if test "$HOST_OS_MAJORVERSION" -eq 12; then + HOST_OS_MINORVERSION=`echo "$STR_KERN_MINOR" | cut -f2 -d'-' | cut -f6 -d'.'` + elif test "$HOST_OS_MAJORVERSION" -eq 11; then + HOST_OS_MINORVERSION=`echo "$STR_KERN_MINOR" | cut -f2 -d'-' | cut -f2 -d'.'` + else + errorprint "Solaris kernel major version $HOST_OS_MAJORVERSION not supported." + exit 1 + fi + else + errorprint "Failed to parse the Solaris kernel minor version." + exit 1 + fi else - errorprint "Failed to parse the Solaris kernel version." + errorprint "Failed to parse the Solaris kernel package version." exit 1 - fi + fi else - errorprint "Failed to detect the Solaris kernel version." + errorprint "Failed to detect the Solaris kernel package FMRI." exit 1 fi else HOST_OS_MAJORVERSION=`uname -r` if test -z "$HOST_OS_MAJORVERSION" || test "$HOST_OS_MAJORVERSION" != "5.10"; then - # S11 without 'pkg' ?? Something's wrong... bail. - errorprint "Solaris $HOST_OS_MAJOR_VERSION detected without executable $BIN_PKG !? Confused." + # S11 without 'pkg'?? Something's wrong... bail. + errorprint "Solaris $HOST_OS_MAJORVERSION detected without executable $BIN_PKG !? I are confused." exit 1 fi + HOST_OS_MAJORVERSION="10" if test "$REMOTEINST" -eq 0; then # Use uname to verify it's S10. # Major version is S10, Minor version is no longer relevant (or used), use uname -v so it gets something @@ -276,7 +321,7 @@ REMOTE_S10=`$BIN_PKGCHK -l -p /kernel/amd64/genunix $BASEDIR_PKGOPT 2> /dev/null | grep SUNWckr | tr -d ' \t'` if test ! -z "$REMOTE_S10" && test "$REMOTE_S10" = "SUNWckr"; then - HOST_OS_MAJORVERSION="5.10" + HOST_OS_MAJORVERSION="10" HOST_OS_MINORVERSION="" else errorprint "Remote target $PKG_INSTALL_ROOT is not Solaris 10." @@ -588,7 +633,7 @@ load_vboxbow else # If host is S10 or S11 (< snv_159) or vboxbow isn't shipped, then load vboxflt - if test "$HOST_OS_MAJORVERSION" = "5.10" || test "$HOST_OS_MINORVERSION" -lt 159 || test ! -f "$DIR_CONF/vboxbow.conf"; then + if test "$HOST_OS_MAJORVERSION" -eq 10 || (test "$HOST_OS_MAJORVERSION" -eq 11 && test "$HOST_OS_MINORVERSION" -lt 159) || test ! -f "$DIR_CONF/vboxbow.conf"; then load_vboxflt else # For S11 snv_159+ load vboxbow @@ -597,9 +642,9 @@ fi # Load VBoxUSBMon, VBoxUSB - if test -f "$DIR_CONF/vboxusbmon.conf" && test "$HOST_OS_MAJORVERSION" != "5.10"; then - # For VirtualBox 3.1 the new USB code requires Nevada > 123 - if test "$HOST_OS_MINORVERSION" -gt 123; then + if test -f "$DIR_CONF/vboxusbmon.conf" && test "$HOST_OS_MAJORVERSION" != "10"; then + # For VirtualBox 3.1 the new USB code requires Nevada > 123 i.e. S12+ or S11 b124+ + if test "$HOST_OS_MAJORVERSION" -gt 11 || (test "$HOST_OS_MAJORVERSION" -eq 11 && test "$HOST_OS_MINORVERSION" -gt 123); then # Add a group "vboxuser" (8-character limit) for USB access. # All users which need host USB-passthrough support will have to be added to this group. groupadd vboxuser >/dev/null 2>&1 @@ -632,11 +677,7 @@ load_module "drv/$MOD_VBOXUSB" "$DESC_VBOXUSB" "$FATALOP" fi else - if test -n "$HOST_OS_MINORVERSION"; then - warnprint "Solaris 5.11 build 124 or higher required for USB support. Skipped installing USB support." - else - warnprint "Failed to determine Solaris 5.11 snv version. Skipped installing USB support." - fi + warnprint "Solaris 11 build 124 or higher required for USB support. Skipped installing USB support." fi fi @@ -880,8 +921,8 @@ # plumb and configure vboxnet0 for non-remote installs if test "$REMOTEINST" -eq 0; then - # S11 175a renames vboxnet0 as 'netX', undo this and rename it back - if test "$HOST_OS_MAJORVERSION" = "5.11" && test "$HOST_OS_MINORVERSION" -gt 174; then + # S11 175a renames vboxnet0 as 'netX', undo this and rename it back (S12+ or S11 b175+) + if test "$HOST_OS_MAJORVERSION" -gt 11 || (test "$HOST_OS_MAJORVERSION" -eq 11 && test "$HOST_OS_MINORVERSION" -gt 174); then vanityname=`dladm show-phys -po link,device | grep vboxnet0 | cut -f1 -d':'` if test $? -eq 0 && test ! -z "$vanityname" && test "$vanityname" != "vboxnet0"; then dladm rename-link "$vanityname" vboxnet0 diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Installer/win/Makefile.kmk virtualbox-4.1.44-dfsg/src/VBox/Installer/win/Makefile.kmk --- virtualbox-4.1.12-dfsg/src/VBox/Installer/win/Makefile.kmk 2012-04-02 13:28:51.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Installer/win/Makefile.kmk 2015-11-11 15:08:48.000000000 +0000 @@ -438,6 +438,7 @@ -E 'VBOX_WITH_EXTPACK=$(if $(VBOX_WITH_EXTPACK),yes,no)' \ -E 'VBOX_WITH_GUEST_CONTROL=$(if $(VBOX_WITH_GUEST_CONTROL),yes,no)' \ -E 'VBOX_WITH_GUEST_PROPS=$(if $(VBOX_WITH_GUEST_PROPS),yes,no)' \ + -E 'VBOX_WITH_HARDENING=$(if $(VBOX_WITH_HARDENING),yes,no)' \ -E 'VBOX_WITH_NETFLT=$(if $(VBOX_WITH_NETFLT),yes,no)' \ -E 'VBOX_WITH_PYTHON=$(if $(VBOX_WITH_PYTHON),yes,no)' \ -E 'VBOX_WITH_QTGUI=$(if $(VBOX_WITH_QTGUI),yes,no)' \ @@ -576,6 +577,7 @@ -target-amd64 $(PATH_MULTIARCH_TEMP)/$(PACKAGE_NAME_MULTIARCH.amd64) \ -target-all $(VBOX_WIN_INST_OUT_DIR)/$(PACKAGE_NAME_MULTIARCH_COMMONCAB) \ -stub $(PATH_STAGE_BIN)/VBoxStub.exe + $(VBOX_VCC_EDITBIN) /IntegrityCheck:NO $@ $(call VBOX_SIGN_FILE_FN,$@) endif diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Installer/win/StubBld/Makefile.kmk virtualbox-4.1.44-dfsg/src/VBox/Installer/win/StubBld/Makefile.kmk --- virtualbox-4.1.12-dfsg/src/VBox/Installer/win/StubBld/Makefile.kmk 2012-04-02 13:28:52.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Installer/win/StubBld/Makefile.kmk 2015-11-11 15:08:48.000000000 +0000 @@ -22,7 +22,7 @@ if "$(KBUILD_TARGET_ARCH)" == "x86" PROGRAMS.x86 += VBoxStubBld -VBoxStubBld_TEMPLATE= VBOXBLDPROG +VBoxStubBld_TEMPLATE= VBoxBldProg VBoxStubBld_DEFS = _WIN32_WINNT=0x0400 VBoxStubBld_SOURCES = \ VBoxStubBld.cpp diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Installer/win/VirtualBox.wxs virtualbox-4.1.44-dfsg/src/VBox/Installer/win/VirtualBox.wxs --- virtualbox-4.1.12-dfsg/src/VBox/Installer/win/VirtualBox.wxs 2012-04-02 13:28:52.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Installer/win/VirtualBox.wxs 2015-11-11 15:08:48.000000000 +0000 @@ -423,12 +423,22 @@ + + + + + + + + @@ -453,6 +463,8 @@ + @@ -502,6 +514,11 @@ + + + + + + + + diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Main/glue/EventQueue.cpp virtualbox-4.1.44-dfsg/src/VBox/Main/glue/EventQueue.cpp --- virtualbox-4.1.12-dfsg/src/VBox/Main/glue/EventQueue.cpp 2012-04-02 13:28:52.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Main/glue/EventQueue.cpp 2015-11-11 15:08:49.000000000 +0000 @@ -1,11 +1,10 @@ /* $Id: EventQueue.cpp $ */ /** @file - * MS COM / XPCOM Abstraction Layer: - * Event and EventQueue class declaration + * Event queue class declaration. */ /* - * Copyright (C) 2006-2010 Oracle Corporation + * Copyright (C) 2013 Oracle Corporation * * This file is part of VirtualBox Open Source Edition (OSE), as * available from http://www.virtualbox.org. This file is free software; @@ -16,23 +15,18 @@ * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind. */ +/** @todo Adapt / update documentation! */ + #include "VBox/com/EventQueue.h" -#ifdef RT_OS_DARWIN -# include -#endif - -#if defined(VBOX_WITH_XPCOM) && !defined(RT_OS_DARWIN) && !defined(RT_OS_OS2) -# define USE_XPCOM_QUEUE -#endif +#include +#include /* For bad_alloc. */ #include +#include #include #include #include -#ifdef USE_XPCOM_QUEUE -# include -#endif namespace com { @@ -40,527 +34,144 @@ // EventQueue class //////////////////////////////////////////////////////////////////////////////// -#ifndef VBOX_WITH_XPCOM - -# define CHECK_THREAD_RET(ret) \ - do { \ - AssertMsg(GetCurrentThreadId() == mThreadId, ("Must be on event queue thread!")); \ - if (GetCurrentThreadId() != mThreadId) \ - return ret; \ - } while (0) - -/** Magic LPARAM value for the WM_USER messages that we're posting. - * @remarks This magic value is duplicated in - * vboxapi/PlatformMSCOM::interruptWaitEvents(). */ -#define EVENTQUEUE_WIN_LPARAM_MAGIC UINT32_C(0xf241b819) - - -#else // VBOX_WITH_XPCOM - -# define CHECK_THREAD_RET(ret) \ - do { \ - if (!mEventQ) \ - return ret; \ - BOOL isOnCurrentThread = FALSE; \ - mEventQ->IsOnCurrentThread(&isOnCurrentThread); \ - AssertMsg(isOnCurrentThread, ("Must be on event queue thread!")); \ - if (!isOnCurrentThread) \ - return ret; \ - } while (0) - -#endif // VBOX_WITH_XPCOM - -/** Pointer to the main event queue. */ -EventQueue *EventQueue::sMainQueue = NULL; - - -#ifdef VBOX_WITH_XPCOM - -struct MyPLEvent : public PLEvent +EventQueue::EventQueue(void) + : mUserCnt(0), + mShutdown(false) { - MyPLEvent(Event *e) : event(e) {} - Event *event; -}; + int rc = RTCritSectInit(&mCritSect); + AssertRC(rc); -/* static */ -void *PR_CALLBACK com::EventQueue::plEventHandler(PLEvent *self) -{ - Event *ev = ((MyPLEvent *)self)->event; - if (ev) - ev->handler(); - else - { - EventQueue *eq = (EventQueue *)self->owner; - Assert(eq); - eq->mInterrupted = true; - } - return NULL; + rc = RTSemEventCreate(&mSemEvent); + AssertRC(rc); } -/* static */ -void PR_CALLBACK com::EventQueue::plEventDestructor(PLEvent *self) +EventQueue::~EventQueue(void) { - Event *ev = ((MyPLEvent *)self)->event; - if (ev) - delete ev; - delete self; -} - -#endif // VBOX_WITH_XPCOM - -/** - * Constructs an event queue for the current thread. - * - * Currently, there can be only one event queue per thread, so if an event - * queue for the current thread already exists, this object is simply attached - * to the existing event queue. - */ -EventQueue::EventQueue() -{ -#ifndef VBOX_WITH_XPCOM - - mThreadId = GetCurrentThreadId(); - // force the system to create the message queue for the current thread - MSG msg; - PeekMessage(&msg, NULL, WM_USER, WM_USER, PM_NOREMOVE); - - if (!DuplicateHandle(GetCurrentProcess(), - GetCurrentThread(), - GetCurrentProcess(), - &mhThread, - 0 /*dwDesiredAccess*/, - FALSE /*bInheritHandle*/, - DUPLICATE_SAME_ACCESS)) - mhThread = INVALID_HANDLE_VALUE; - -#else // VBOX_WITH_XPCOM - - mEQCreated = false; - mInterrupted = false; - - // Here we reference the global nsIEventQueueService instance and hold it - // until we're destroyed. This is necessary to keep NS_ShutdownXPCOM() away - // from calling StopAcceptingEvents() on all event queues upon destruction of - // nsIEventQueueService, and makes sense when, for some reason, this happens - // *before* we're able to send a NULL event to stop our event handler thread - // when doing unexpected cleanup caused indirectly by NS_ShutdownXPCOM() - // that is performing a global cleanup of everything. A good example of such - // situation is when NS_ShutdownXPCOM() is called while the VirtualBox component - // is still alive (because it is still referenced): eventually, it results in - // a VirtualBox::uninit() call from where it is already not possible to post - // NULL to the event thread (because it stopped accepting events). + int rc = RTCritSectDelete(&mCritSect); + AssertRC(rc); - nsresult rc = NS_GetEventQueueService(getter_AddRefs(mEventQService)); + rc = RTSemEventDestroy(mSemEvent); + AssertRC(rc); - if (NS_SUCCEEDED(rc)) + EventQueueListIterator it = mEvents.begin(); + while (it != mEvents.end()) { - rc = mEventQService->GetThreadEventQueue(NS_CURRENT_THREAD, - getter_AddRefs(mEventQ)); - if (rc == NS_ERROR_NOT_AVAILABLE) - { - rc = mEventQService->CreateThreadEventQueue(); - if (NS_SUCCEEDED(rc)) - { - mEQCreated = true; - rc = mEventQService->GetThreadEventQueue(NS_CURRENT_THREAD, - getter_AddRefs(mEventQ)); - } - } - } - AssertComRC(rc); - -#endif // VBOX_WITH_XPCOM -} - -EventQueue::~EventQueue() -{ -#ifndef VBOX_WITH_XPCOM - if (mhThread != INVALID_HANDLE_VALUE) - { - CloseHandle(mhThread); - mhThread = INVALID_HANDLE_VALUE; - } -#else // VBOX_WITH_XPCOM - // process all pending events before destruction - if (mEventQ) - { - if (mEQCreated) - { - mEventQ->StopAcceptingEvents(); - mEventQ->ProcessPendingEvents(); - mEventQService->DestroyThreadEventQueue(); - } - mEventQ = nsnull; - mEventQService = nsnull; + (*it)->Release(); + it = mEvents.erase(it); } -#endif // VBOX_WITH_XPCOM } /** - * Initializes the main event queue instance. - * @returns VBox status code. - * - * @remarks If you're using the rest of the COM/XPCOM glue library, - * com::Initialize() will take care of initializing and uninitializing - * the EventQueue class. If you don't call com::Initialize, you must - * make sure to call this method on the same thread that did the - * XPCOM initialization or we'll end up using the wrong main queue. - */ -/* static */ -int EventQueue::init() -{ - Assert(sMainQueue == NULL); - Assert(RTThreadIsMain(RTThreadSelf())); - sMainQueue = new EventQueue(); - -#ifdef VBOX_WITH_XPCOM - /* Check that it actually is the main event queue, i.e. that - we're called on the right thread. */ - nsCOMPtr q; - nsresult rv = NS_GetMainEventQ(getter_AddRefs(q)); - Assert(NS_SUCCEEDED(rv)); - Assert(q == sMainQueue->mEventQ); - - /* Check that it's a native queue. */ - PRBool fIsNative = PR_FALSE; - rv = sMainQueue->mEventQ->IsQueueNative(&fIsNative); - Assert(NS_SUCCEEDED(rv) && fIsNative); -#endif // VBOX_WITH_XPCOM - - return VINF_SUCCESS; -} - -/** - * Uninitialize the global resources (i.e. the main event queue instance). - * @returns VINF_SUCCESS - */ -/* static */ -int EventQueue::uninit() -{ - Assert(sMainQueue); - /* Must process all events to make sure that no NULL event is left - * after this point. It would need to modify the state of sMainQueue. */ -#ifdef RT_OS_DARWIN /* Do not process the native runloop, the toolkit may not be ready for it. */ - sMainQueue->mEventQ->ProcessPendingEvents(); -#else - sMainQueue->processEventQueue(0); -#endif - delete sMainQueue; - sMainQueue = NULL; - return VINF_SUCCESS; -} - -/** - * Get main event queue instance. - * - * Depends on init() being called first. - */ -/* static */ -EventQueue* EventQueue::getMainEventQueue() -{ - return sMainQueue; -} - -#ifdef VBOX_WITH_XPCOM -# ifdef RT_OS_DARWIN -/** - * Wait for events and process them (Darwin). - * - * @retval VINF_SUCCESS - * @retval VERR_TIMEOUT - * @retval VERR_INTERRUPTED + * Process events pending on this event queue, and wait up to given timeout, if + * nothing is available. * - * @param cMsTimeout How long to wait, or RT_INDEFINITE_WAIT. - */ -static int waitForEventsOnDarwin(RTMSINTERVAL cMsTimeout) -{ - /* - * Wait for the requested time, if we get a hit we do a poll to process - * any other pending messages. - * - * Note! About 1.0e10: According to the sources anything above 3.1556952e+9 - * means indefinite wait and 1.0e10 is what CFRunLoopRun() uses. - */ - CFTimeInterval rdTimeout = cMsTimeout == RT_INDEFINITE_WAIT ? 1e10 : (double)cMsTimeout / 1000; - OSStatus orc = CFRunLoopRunInMode(kCFRunLoopDefaultMode, rdTimeout, true /*returnAfterSourceHandled*/); - if (orc == kCFRunLoopRunHandledSource) - { - OSStatus orc2 = CFRunLoopRunInMode(kCFRunLoopDefaultMode, 0.0, false /*returnAfterSourceHandled*/); - if ( orc2 == kCFRunLoopRunStopped - || orc2 == kCFRunLoopRunFinished) - orc = orc2; - } - if ( orc == 0 /*???*/ - || orc == kCFRunLoopRunHandledSource) - return VINF_SUCCESS; - if ( orc == kCFRunLoopRunStopped - || orc == kCFRunLoopRunFinished) - return VERR_INTERRUPTED; - AssertMsg(orc == kCFRunLoopRunTimedOut, ("Unexpected status code from CFRunLoopRunInMode: %#x", orc)); - return VERR_TIMEOUT; -} -# else // !RT_OS_DARWIN - -/** - * Wait for events (generic XPCOM). + * Must be called on same thread this event queue was created on. * - * @retval VINF_SUCCESS - * @retval VERR_TIMEOUT - * @retval VINF_INTERRUPTED - * @retval VERR_INTERNAL_ERROR_4 + * @param cMsTimeout The timeout specified as milliseconds. Use + * RT_INDEFINITE_WAIT to wait till an event is posted on the + * queue. * - * @param pQueue The queue to wait on. - * @param cMsTimeout How long to wait, or RT_INDEFINITE_WAIT. + * @returns VBox status code + * @retval VINF_SUCCESS if one or more messages was processed. + * @retval VERR_TIMEOUT if cMsTimeout expired. + * @retval VERR_INVALID_CONTEXT if called on the wrong thread. + * @retval VERR_INTERRUPTED if interruptEventQueueProcessing was called. + * On Windows will also be returned when WM_QUIT is encountered. + * On Darwin this may also be returned when the native queue is + * stopped or destroyed/finished. + * @retval VINF_INTERRUPTED if the native system call was interrupted by a + * an asynchronous event delivery (signal) or just felt like returning + * out of bounds. On darwin it will also be returned if the queue is + * stopped. */ -static int waitForEventsOnXPCOM(nsIEventQueue *pQueue, RTMSINTERVAL cMsTimeout) +int EventQueue::processEventQueue(RTMSINTERVAL cMsTimeout) { - int fd = pQueue->GetEventQueueSelectFD(); - fd_set fdsetR; - FD_ZERO(&fdsetR); - FD_SET(fd, &fdsetR); - - fd_set fdsetE = fdsetR; - - struct timeval tv = {0,0}; - struct timeval *ptv; - if (cMsTimeout == RT_INDEFINITE_WAIT) - ptv = NULL; - else + size_t cNumEvents; + int rc = RTCritSectEnter(&mCritSect); + if (RT_SUCCESS(rc)) { - tv.tv_sec = cMsTimeout / 1000; - tv.tv_usec = (cMsTimeout % 1000) * 1000; - ptv = &tv; - } - - int rc = select(fd + 1, &fdsetR, NULL, &fdsetE, ptv); - if (rc > 0) - rc = VINF_SUCCESS; - else if (rc == 0) - rc = VERR_TIMEOUT; - else if (errno == EINTR) - rc = VINF_INTERRUPTED; - else - { - static uint32_t s_ErrorCount = 0; - if (s_ErrorCount < 500) + if (mUserCnt == 0) /* No concurrent access allowed. */ { - LogRel(("waitForEventsOnXPCOM rc=%d errno=%d\n", rc, errno)); - ++s_ErrorCount; - } + mUserCnt++; - AssertMsgFailed(("rc=%d errno=%d\n", rc, errno)); - rc = VERR_INTERNAL_ERROR_4; - } - return rc; -} + cNumEvents = mEvents.size(); + if (!cNumEvents) + { + int rc2 = RTCritSectLeave(&mCritSect); + AssertRC(rc2); -# endif // !RT_OS_DARWIN -#endif // VBOX_WITH_XPCOM + rc = RTSemEventWaitNoResume(mSemEvent, cMsTimeout); -#ifndef VBOX_WITH_XPCOM + rc2 = RTCritSectEnter(&mCritSect); + AssertRC(rc2); -/** - * Dispatch a message on Windows. - * - * This will pick out our events and handle them specially. - * - * @returns @a rc or VERR_INTERRUPTED (WM_QUIT or NULL msg). - * @param pMsg The message to dispatch. - * @param rc The current status code. - */ -/*static*/ -int EventQueue::dispatchMessageOnWindows(MSG const *pMsg, int rc) -{ - /* - * Check for and dispatch our events. - */ - if ( pMsg->hwnd == NULL - && pMsg->message == WM_USER) - { - if (pMsg->lParam == EVENTQUEUE_WIN_LPARAM_MAGIC) - { - Event *pEvent = (Event *)pMsg->wParam; - if (pEvent) - { - pEvent->handler(); - delete pEvent; + if (RT_SUCCESS(rc)) + { + if (mShutdown) + rc = VERR_INTERRUPTED; + cNumEvents = mEvents.size(); + } } - else - rc = VERR_INTERRUPTED; - return rc; - } - AssertMsgFailed(("lParam=%p wParam=%p\n", pMsg->lParam, pMsg->wParam)); - } - /* - * Check for the quit message and dispatch the message the normal way. - */ - if (pMsg->message == WM_QUIT) - rc = VERR_INTERRUPTED; - TranslateMessage(pMsg); - DispatchMessage(pMsg); - - return rc; -} + if (RT_SUCCESS(rc)) + rc = processPendingEvents(cNumEvents); + Assert(mUserCnt); + mUserCnt--; + } + else + rc = VERR_WRONG_ORDER; -/** - * Process pending events (Windows). - * - * @retval VINF_SUCCESS - * @retval VERR_TIMEOUT - * @retval VERR_INTERRUPTED. - */ -static int processPendingEvents(void) -{ - int rc = VERR_TIMEOUT; - MSG Msg; - if (PeekMessage(&Msg, NULL /*hWnd*/, 0 /*wMsgFilterMin*/, 0 /*wMsgFilterMax*/, PM_REMOVE)) - { - rc = VINF_SUCCESS; - do - rc = EventQueue::dispatchMessageOnWindows(&Msg, rc); - while (PeekMessage(&Msg, NULL /*hWnd*/, 0 /*wMsgFilterMin*/, 0 /*wMsgFilterMax*/, PM_REMOVE)); + int rc2 = RTCritSectLeave(&mCritSect); + if (RT_SUCCESS(rc)) + rc = rc2; } + + Assert(rc != VERR_TIMEOUT || cMsTimeout != RT_INDEFINITE_WAIT); return rc; } -#else // VBOX_WITH_XPCOM - /** - * Process pending XPCOM events. - * @param pQueue The queue to process events on. - * @retval VINF_SUCCESS - * @retval VERR_TIMEOUT - * @retval VERR_INTERRUPTED (darwin only) - * @retval VERR_INTERNAL_ERROR_2 + * Processes all pending events in the queue at the time of + * calling. Note: Does no initial locking, must be done by the + * caller! + * + * @return IPRT status code. */ -static int processPendingEvents(nsIEventQueue *pQueue) +int EventQueue::processPendingEvents(size_t cNumEvents) { - /* ProcessPendingEvents doesn't report back what it did, so check here. */ - PRBool fHasEvents = PR_FALSE; - nsresult hr = pQueue->PendingEvents(&fHasEvents); - if (NS_FAILED(hr)) - return VERR_INTERNAL_ERROR_2; + if (!cNumEvents) /* Nothing to process? Bail out early. */ + return VINF_SUCCESS; - /* Process pending events. */ int rc = VINF_SUCCESS; - if (fHasEvents) - pQueue->ProcessPendingEvents(); - else - rc = VERR_TIMEOUT; - -# ifdef RT_OS_DARWIN - /* Process pending native events. */ - int rc2 = waitForEventsOnDarwin(0); - if (rc == VERR_TIMEOUT || rc2 == VERR_INTERRUPTED) - rc = rc2; -# endif - return rc; -} + EventQueueListIterator it = mEvents.begin(); + for (size_t i = 0; + i < cNumEvents + && it != mEvents.end(); i++) + { + Event *pEvent = *it; + AssertPtr(pEvent); -#endif // VBOX_WITH_XPCOM + mEvents.erase(it); -/** - * Process events pending on this event queue, and wait up to given timeout, if - * nothing is available. - * - * Must be called on same thread this event queue was created on. - * - * @param cMsTimeout The timeout specified as milliseconds. Use - * RT_INDEFINITE_WAIT to wait till an event is posted on the - * queue. - * - * @returns VBox status code - * @retval VINF_SUCCESS if one or more messages was processed. - * @retval VERR_TIMEOUT if cMsTimeout expired. - * @retval VERR_INVALID_CONTEXT if called on the wrong thread. - * @retval VERR_INTERRUPTED if interruptEventQueueProcessing was called. - * On Windows will also be returned when WM_QUIT is encountered. - * On Darwin this may also be returned when the native queue is - * stopped or destroyed/finished. - * @retval VINF_INTERRUPTED if the native system call was interrupted by a - * an asynchronous event delivery (signal) or just felt like returning - * out of bounds. On darwin it will also be returned if the queue is - * stopped. - */ -int EventQueue::processEventQueue(RTMSINTERVAL cMsTimeout) -{ - int rc; - CHECK_THREAD_RET(VERR_INVALID_CONTEXT); + int rc2 = RTCritSectLeave(&mCritSect); + AssertRC(rc2); -#ifdef VBOX_WITH_XPCOM - /* - * Process pending events, if none are available and we're not in a - * poll call, wait for some to appear. (We have to be a little bit - * careful after waiting for the events since Darwin will process - * them as part of the wait, while the XPCOM case will not.) - * - * Note! Unfortunately, WaitForEvent isn't interruptible with Ctrl-C, - * while select() is. So we cannot use it for indefinite waits. - */ - rc = processPendingEvents(mEventQ); - if ( rc == VERR_TIMEOUT - && cMsTimeout > 0) - { -# ifdef RT_OS_DARWIN - /** @todo check how Ctrl-C works on Darwin. */ - rc = waitForEventsOnDarwin(cMsTimeout); - if (rc == VERR_TIMEOUT) - rc = processPendingEvents(mEventQ); -# else // !RT_OS_DARWIN - rc = waitForEventsOnXPCOM(mEventQ, cMsTimeout); - if ( RT_SUCCESS(rc) - || rc == VERR_TIMEOUT) - rc = processPendingEvents(mEventQ); -# endif // !RT_OS_DARWIN - } + pEvent->handler(); + pEvent->Release(); - if ( ( RT_SUCCESS(rc) - || rc == VERR_INTERRUPTED - || rc == VERR_TIMEOUT) - && mInterrupted) - { - mInterrupted = false; - rc = VERR_INTERRUPTED; - } + rc2 = RTCritSectEnter(&mCritSect); + AssertRC(rc2); -#else // !VBOX_WITH_XPCOM - if (cMsTimeout == RT_INDEFINITE_WAIT) - { - BOOL fRet; - MSG Msg; - rc = VINF_SUCCESS; - while ( rc != VERR_INTERRUPTED - && (fRet = GetMessage(&Msg, NULL /*hWnd*/, WM_USER, WM_USER)) - && fRet != -1) - rc = EventQueue::dispatchMessageOnWindows(&Msg, rc); - if (fRet == 0) - rc = VERR_INTERRUPTED; - else if (fRet == -1) - rc = RTErrConvertFromWin32(GetLastError()); - } - else - { - rc = processPendingEvents(); - if ( rc == VERR_TIMEOUT - && cMsTimeout != 0) + it = mEvents.begin(); + if (mShutdown) { - DWORD rcW = MsgWaitForMultipleObjects(1, - &mhThread, - TRUE /*fWaitAll*/, - cMsTimeout, - QS_ALLINPUT); - AssertMsgReturn(rcW == WAIT_TIMEOUT || rcW == WAIT_OBJECT_0, - ("%d\n", rcW), - VERR_INTERNAL_ERROR_4); - rc = processPendingEvents(); + rc = VERR_INTERRUPTED; + break; } } -#endif // !VBOX_WITH_XPCOM - Assert(rc != VERR_TIMEOUT || cMsTimeout != RT_INDEFINITE_WAIT); return rc; } @@ -571,13 +182,11 @@ * * @returns VBox status code. */ -int EventQueue::interruptEventQueueProcessing() +int EventQueue::interruptEventQueueProcessing(void) { - /* Send a NULL event. This event will be picked up and handled specially - * both for XPCOM and Windows. It is the responsibility of the caller to - * take care of not running the loop again in a way which will hang. */ - postEvent(NULL); - return VINF_SUCCESS; + ASMAtomicWriteBool(&mShutdown, true); + + return RTSemEventSignal(mSemEvent); } /** @@ -586,39 +195,52 @@ * @param event the event to post, must be allocated using |new| * @return TRUE if successful and false otherwise */ -BOOL EventQueue::postEvent(Event *event) +BOOL EventQueue::postEvent(Event *pEvent) { -#ifndef VBOX_WITH_XPCOM - /* Note! The event == NULL case is duplicated in vboxapi/PlatformMSCOM::interruptWaitEvents(). */ - return PostThreadMessage(mThreadId, WM_USER, (WPARAM)event, EVENTQUEUE_WIN_LPARAM_MAGIC); - -#else // VBOX_WITH_XPCOM - - if (!mEventQ) - return FALSE; - - MyPLEvent *ev = new MyPLEvent(event); - mEventQ->InitEvent(ev, this, com::EventQueue::plEventHandler, - com::EventQueue::plEventDestructor); - HRESULT rc = mEventQ->PostEvent(ev); - return NS_SUCCEEDED(rc); + int rc = RTCritSectEnter(&mCritSect); + if (RT_SUCCESS(rc)) + { + try + { + if (pEvent) + { + pEvent->AddRef(); + mEvents.push_back(pEvent); + } + else /* No locking, since we're already in our crit sect. */ + mShutdown = true; -#endif // VBOX_WITH_XPCOM -} + size_t cEvents = mEvents.size(); + if (cEvents > _1K) /** @todo Make value configurable? */ + { + static int s_cBitchedAboutLotEvents = 0; + if (s_cBitchedAboutLotEvents < 10) + LogRel(("Warning: Event queue received lots of events (%zu), expect delayed event handling (%d/10)\n", + cEvents, ++s_cBitchedAboutLotEvents)); + } + /* Leave critical section before signalling event. */ + rc = RTCritSectLeave(&mCritSect); + if (RT_SUCCESS(rc)) + { + int rc2 = RTSemEventSignal(mSemEvent); + AssertRC(rc2); + } + } + catch (std::bad_alloc &ba) + { + NOREF(ba); + rc = VERR_NO_MEMORY; + } -/** - * Get select()'able selector for this event queue. - * This will return -1 on platforms and queue variants not supporting such - * functionality. - */ -int EventQueue::getSelectFD() -{ -#ifdef VBOX_WITH_XPCOM - return mEventQ->GetEventQueueSelectFD(); -#else - return -1; -#endif + if (RT_FAILURE(rc)) + { + int rc2 = RTCritSectLeave(&mCritSect); + AssertRC(rc2); + } + } + + return RT_SUCCESS(rc) ? TRUE : FALSE; } } diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Main/glue/glue-java.xsl virtualbox-4.1.44-dfsg/src/VBox/Main/glue/glue-java.xsl --- virtualbox-4.1.12-dfsg/src/VBox/Main/glue/glue-java.xsl 2012-04-02 13:28:52.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Main/glue/glue-java.xsl 2015-11-11 15:08:49.000000000 +0000 @@ -10,7 +10,7 @@ XSLT stylesheet that generates Java glue code for XPCOM, MSCOM and JAX-WS from VirtualBox.xidl. - Copyright (C) 2010-2011 Oracle Corporation + Copyright (C) 2010-2013 Oracle Corporation This file is part of VirtualBox Open Source Edition (OSE), as available from http://www.virtualbox.org. This file is free software; @@ -3963,7 +3963,8 @@ public void disconnect() { try { - if (this.vbox != null) + if ( this.vbox != null + && port != null) port.iWebsessionManagerLogoff(this.vbox.getWrapped()); } catch (InvalidObjectFaultMsg e) { throw new VBoxException(e, e.getMessage()); diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Main/glue/initterm.cpp virtualbox-4.1.44-dfsg/src/VBox/Main/glue/initterm.cpp --- virtualbox-4.1.12-dfsg/src/VBox/Main/glue/initterm.cpp 2012-04-02 13:28:52.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Main/glue/initterm.cpp 2015-11-11 15:08:49.000000000 +0000 @@ -5,7 +5,7 @@ */ /* - * Copyright (C) 2006-2010 Oracle Corporation + * Copyright (C) 2006-2013 Oracle Corporation * * This file is part of VirtualBox Open Source Edition (OSE), as * available from http://www.virtualbox.org. This file is free software; @@ -48,7 +48,7 @@ #include "VBox/com/com.h" #include "VBox/com/assert.h" -#include "VBox/com/EventQueue.h" +#include "VBox/com/NativeEventQueue.h" #include "VBox/com/AutoLock.h" #include "../include/Logging.h" @@ -342,6 +342,8 @@ char szXptiDat[RTPATH_MAX]; int vrc = GetVBoxUserHomeDirectory(szCompReg, sizeof(szCompReg)); + if (vrc == VERR_ACCESS_DENIED) + return NS_ERROR_FILE_ACCESS_DENIED; AssertRCReturn(vrc, NS_ERROR_FAILURE); strcpy(szXptiDat, szCompReg); @@ -496,7 +498,7 @@ * Init the main event queue (ASSUMES it cannot fail). */ if (SUCCEEDED(rc)) - EventQueue::init(); + NativeEventQueue::init(); return rc; } @@ -514,7 +516,7 @@ { if (-- gCOMMainInitCount == 0) { - EventQueue::uninit(); + NativeEventQueue::uninit(); ASMAtomicWriteHandle(&gCOMMainThread, NIL_RTTHREAD); } } @@ -553,7 +555,7 @@ * init counter drops to zero */ if (--gXPCOMInitCount == 0) { - EventQueue::uninit(); + NativeEventQueue::uninit(); rc = NS_ShutdownXPCOM(nsnull); /* This is a thread initialized XPCOM and set gIsXPCOMInitialized to diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Main/glue/NativeEventQueue.cpp virtualbox-4.1.44-dfsg/src/VBox/Main/glue/NativeEventQueue.cpp --- virtualbox-4.1.12-dfsg/src/VBox/Main/glue/NativeEventQueue.cpp 1970-01-01 00:00:00.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Main/glue/NativeEventQueue.cpp 2015-11-11 15:08:49.000000000 +0000 @@ -0,0 +1,655 @@ +/* $Id: NativeEventQueue.cpp $ */ +/** @file + * MS COM / XPCOM Abstraction Layer: + * Main event queue class declaration + */ + +/* + * Copyright (C) 2006-2010 Oracle Corporation + * + * This file is part of VirtualBox Open Source Edition (OSE), as + * available from http://www.virtualbox.org. This file is free software; + * you can redistribute it and/or modify it under the terms of the GNU + * General Public License (GPL) as published by the Free Software + * Foundation, in version 2 as it comes in the "COPYING" file of the + * VirtualBox OSE distribution. VirtualBox OSE is distributed in the + * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind. + */ + +#include "VBox/com/NativeEventQueue.h" + +#include /* For bad_alloc. */ + +#ifdef RT_OS_DARWIN +# include +#endif + +#if defined(VBOX_WITH_XPCOM) && !defined(RT_OS_DARWIN) && !defined(RT_OS_OS2) +# define USE_XPCOM_QUEUE +#endif + +#include +#include +#include +#include +#ifdef USE_XPCOM_QUEUE +# include +#endif + +namespace com +{ + +// NativeEventQueue class +//////////////////////////////////////////////////////////////////////////////// + +#ifndef VBOX_WITH_XPCOM + +# define CHECK_THREAD_RET(ret) \ + do { \ + AssertMsg(GetCurrentThreadId() == mThreadId, ("Must be on event queue thread!")); \ + if (GetCurrentThreadId() != mThreadId) \ + return ret; \ + } while (0) + +/** Magic LPARAM value for the WM_USER messages that we're posting. + * @remarks This magic value is duplicated in + * vboxapi/PlatformMSCOM::interruptWaitEvents(). */ +#define EVENTQUEUE_WIN_LPARAM_MAGIC UINT32_C(0xf241b819) + + +#else // VBOX_WITH_XPCOM + +# define CHECK_THREAD_RET(ret) \ + do { \ + if (!mEventQ) \ + return ret; \ + BOOL isOnCurrentThread = FALSE; \ + mEventQ->IsOnCurrentThread(&isOnCurrentThread); \ + AssertMsg(isOnCurrentThread, ("Must be on event queue thread!")); \ + if (!isOnCurrentThread) \ + return ret; \ + } while (0) + +#endif // VBOX_WITH_XPCOM + +/** Pointer to the main event queue. */ +NativeEventQueue *NativeEventQueue::sMainQueue = NULL; + + +#ifdef VBOX_WITH_XPCOM + +struct MyPLEvent : public PLEvent +{ + MyPLEvent(NativeEvent *e) : event(e) {} + NativeEvent *event; +}; + +/* static */ +void *PR_CALLBACK com::NativeEventQueue::plEventHandler(PLEvent *self) +{ + NativeEvent *ev = ((MyPLEvent *)self)->event; + if (ev) + ev->handler(); + else + { + NativeEventQueue *eq = (NativeEventQueue *)self->owner; + Assert(eq); + eq->mInterrupted = true; + } + return NULL; +} + +/* static */ +void PR_CALLBACK com::NativeEventQueue::plEventDestructor(PLEvent *self) +{ + NativeEvent *ev = ((MyPLEvent *)self)->event; + if (ev) + delete ev; + delete self; +} + +#endif // VBOX_WITH_XPCOM + +/** + * Constructs an event queue for the current thread. + * + * Currently, there can be only one event queue per thread, so if an event + * queue for the current thread already exists, this object is simply attached + * to the existing event queue. + */ +NativeEventQueue::NativeEventQueue() +{ +#ifndef VBOX_WITH_XPCOM + + mThreadId = GetCurrentThreadId(); + // force the system to create the message queue for the current thread + MSG msg; + PeekMessage(&msg, NULL, WM_USER, WM_USER, PM_NOREMOVE); + + if (!DuplicateHandle(GetCurrentProcess(), + GetCurrentThread(), + GetCurrentProcess(), + &mhThread, + 0 /*dwDesiredAccess*/, + FALSE /*bInheritHandle*/, + DUPLICATE_SAME_ACCESS)) + mhThread = INVALID_HANDLE_VALUE; + +#else // VBOX_WITH_XPCOM + + mEQCreated = false; + mInterrupted = false; + + // Here we reference the global nsIEventQueueService instance and hold it + // until we're destroyed. This is necessary to keep NS_ShutdownXPCOM() away + // from calling StopAcceptingEvents() on all event queues upon destruction of + // nsIEventQueueService, and makes sense when, for some reason, this happens + // *before* we're able to send a NULL event to stop our event handler thread + // when doing unexpected cleanup caused indirectly by NS_ShutdownXPCOM() + // that is performing a global cleanup of everything. A good example of such + // situation is when NS_ShutdownXPCOM() is called while the VirtualBox component + // is still alive (because it is still referenced): eventually, it results in + // a VirtualBox::uninit() call from where it is already not possible to post + // NULL to the event thread (because it stopped accepting events). + + nsresult rc = NS_GetEventQueueService(getter_AddRefs(mEventQService)); + + if (NS_SUCCEEDED(rc)) + { + rc = mEventQService->GetThreadEventQueue(NS_CURRENT_THREAD, + getter_AddRefs(mEventQ)); + if (rc == NS_ERROR_NOT_AVAILABLE) + { + rc = mEventQService->CreateThreadEventQueue(); + if (NS_SUCCEEDED(rc)) + { + mEQCreated = true; + rc = mEventQService->GetThreadEventQueue(NS_CURRENT_THREAD, + getter_AddRefs(mEventQ)); + } + } + } + AssertComRC(rc); + +#endif // VBOX_WITH_XPCOM +} + +NativeEventQueue::~NativeEventQueue() +{ +#ifndef VBOX_WITH_XPCOM + if (mhThread != INVALID_HANDLE_VALUE) + { + CloseHandle(mhThread); + mhThread = INVALID_HANDLE_VALUE; + } +#else // VBOX_WITH_XPCOM + // process all pending events before destruction + if (mEventQ) + { + if (mEQCreated) + { + mEventQ->StopAcceptingEvents(); + mEventQ->ProcessPendingEvents(); + mEventQService->DestroyThreadEventQueue(); + } + mEventQ = nsnull; + mEventQService = nsnull; + } +#endif // VBOX_WITH_XPCOM +} + +/** + * Initializes the main event queue instance. + * @returns VBox status code. + * + * @remarks If you're using the rest of the COM/XPCOM glue library, + * com::Initialize() will take care of initializing and uninitializing + * the NativeEventQueue class. If you don't call com::Initialize, you must + * make sure to call this method on the same thread that did the + * XPCOM initialization or we'll end up using the wrong main queue. + */ +/* static */ +int NativeEventQueue::init() +{ + Assert(sMainQueue == NULL); + Assert(RTThreadIsMain(RTThreadSelf())); + + try + { + sMainQueue = new NativeEventQueue(); + AssertPtr(sMainQueue); +#ifdef VBOX_WITH_XPCOM + /* Check that it actually is the main event queue, i.e. that + we're called on the right thread. */ + nsCOMPtr q; + nsresult rv = NS_GetMainEventQ(getter_AddRefs(q)); + Assert(NS_SUCCEEDED(rv)); + Assert(q == sMainQueue->mEventQ); + + /* Check that it's a native queue. */ + PRBool fIsNative = PR_FALSE; + rv = sMainQueue->mEventQ->IsQueueNative(&fIsNative); + Assert(NS_SUCCEEDED(rv) && fIsNative); +#endif // VBOX_WITH_XPCOM + } + catch (std::bad_alloc &ba) + { + NOREF(ba); + return VERR_NO_MEMORY; + } + + return VINF_SUCCESS; +} + +/** + * Uninitialize the global resources (i.e. the main event queue instance). + * @returns VINF_SUCCESS + */ +/* static */ +int NativeEventQueue::uninit() +{ + if (sMainQueue) + { + /* Must process all events to make sure that no NULL event is left + * after this point. It would need to modify the state of sMainQueue. */ +#ifdef RT_OS_DARWIN /* Do not process the native runloop, the toolkit may not be ready for it. */ + sMainQueue->mEventQ->ProcessPendingEvents(); +#else + sMainQueue->processEventQueue(0); +#endif + delete sMainQueue; + sMainQueue = NULL; + } + return VINF_SUCCESS; +} + +/** + * Get main event queue instance. + * + * Depends on init() being called first. + */ +/* static */ +NativeEventQueue* NativeEventQueue::getMainEventQueue() +{ + return sMainQueue; +} + +#ifdef VBOX_WITH_XPCOM +# ifdef RT_OS_DARWIN +/** + * Wait for events and process them (Darwin). + * + * @retval VINF_SUCCESS + * @retval VERR_TIMEOUT + * @retval VERR_INTERRUPTED + * + * @param cMsTimeout How long to wait, or RT_INDEFINITE_WAIT. + */ +static int waitForEventsOnDarwin(RTMSINTERVAL cMsTimeout) +{ + /* + * Wait for the requested time, if we get a hit we do a poll to process + * any other pending messages. + * + * Note! About 1.0e10: According to the sources anything above 3.1556952e+9 + * means indefinite wait and 1.0e10 is what CFRunLoopRun() uses. + */ + CFTimeInterval rdTimeout = cMsTimeout == RT_INDEFINITE_WAIT ? 1e10 : (double)cMsTimeout / 1000; + OSStatus orc = CFRunLoopRunInMode(kCFRunLoopDefaultMode, rdTimeout, true /*returnAfterSourceHandled*/); + if (orc == kCFRunLoopRunHandledSource) + { + OSStatus orc2 = CFRunLoopRunInMode(kCFRunLoopDefaultMode, 0.0, false /*returnAfterSourceHandled*/); + if ( orc2 == kCFRunLoopRunStopped + || orc2 == kCFRunLoopRunFinished) + orc = orc2; + } + if ( orc == 0 /*???*/ + || orc == kCFRunLoopRunHandledSource) + return VINF_SUCCESS; + if ( orc == kCFRunLoopRunStopped + || orc == kCFRunLoopRunFinished) + return VERR_INTERRUPTED; + AssertMsg(orc == kCFRunLoopRunTimedOut, ("Unexpected status code from CFRunLoopRunInMode: %#x", orc)); + return VERR_TIMEOUT; +} +# else // !RT_OS_DARWIN + +/** + * Wait for events (generic XPCOM). + * + * @retval VINF_SUCCESS + * @retval VERR_TIMEOUT + * @retval VINF_INTERRUPTED + * @retval VERR_INTERNAL_ERROR_4 + * + * @param pQueue The queue to wait on. + * @param cMsTimeout How long to wait, or RT_INDEFINITE_WAIT. + */ +static int waitForEventsOnXPCOM(nsIEventQueue *pQueue, RTMSINTERVAL cMsTimeout) +{ + int fd = pQueue->GetEventQueueSelectFD(); + fd_set fdsetR; + FD_ZERO(&fdsetR); + FD_SET(fd, &fdsetR); + + fd_set fdsetE = fdsetR; + + struct timeval tv = {0,0}; + struct timeval *ptv; + if (cMsTimeout == RT_INDEFINITE_WAIT) + ptv = NULL; + else + { + tv.tv_sec = cMsTimeout / 1000; + tv.tv_usec = (cMsTimeout % 1000) * 1000; + ptv = &tv; + } + + int rc = select(fd + 1, &fdsetR, NULL, &fdsetE, ptv); + if (rc > 0) + rc = VINF_SUCCESS; + else if (rc == 0) + rc = VERR_TIMEOUT; + else if (errno == EINTR) + rc = VINF_INTERRUPTED; + else + { + static uint32_t s_ErrorCount = 0; + if (s_ErrorCount < 500) + { + LogRel(("waitForEventsOnXPCOM rc=%d errno=%d\n", rc, errno)); + ++s_ErrorCount; + } + + AssertMsgFailed(("rc=%d errno=%d\n", rc, errno)); + rc = VERR_INTERNAL_ERROR_4; + } + return rc; +} + +# endif // !RT_OS_DARWIN +#endif // VBOX_WITH_XPCOM + +#ifndef VBOX_WITH_XPCOM + +/** + * Dispatch a message on Windows. + * + * This will pick out our events and handle them specially. + * + * @returns @a rc or VERR_INTERRUPTED (WM_QUIT or NULL msg). + * @param pMsg The message to dispatch. + * @param rc The current status code. + */ +/*static*/ +int NativeEventQueue::dispatchMessageOnWindows(MSG const *pMsg, int rc) +{ + /* + * Check for and dispatch our events. + */ + if ( pMsg->hwnd == NULL + && pMsg->message == WM_USER) + { + if (pMsg->lParam == EVENTQUEUE_WIN_LPARAM_MAGIC) + { + NativeEvent *pEvent = (NativeEvent *)pMsg->wParam; + if (pEvent) + { + pEvent->handler(); + delete pEvent; + } + else + rc = VERR_INTERRUPTED; + return rc; + } + AssertMsgFailed(("lParam=%p wParam=%p\n", pMsg->lParam, pMsg->wParam)); + } + + /* + * Check for the quit message and dispatch the message the normal way. + */ + if (pMsg->message == WM_QUIT) + rc = VERR_INTERRUPTED; + TranslateMessage(pMsg); + DispatchMessage(pMsg); + + return rc; +} + + +/** + * Process pending events (Windows). + * + * @retval VINF_SUCCESS + * @retval VERR_TIMEOUT + * @retval VERR_INTERRUPTED. + */ +static int processPendingEvents(void) +{ + int rc = VERR_TIMEOUT; + MSG Msg; + if (PeekMessage(&Msg, NULL /*hWnd*/, 0 /*wMsgFilterMin*/, 0 /*wMsgFilterMax*/, PM_REMOVE)) + { + rc = VINF_SUCCESS; + do + rc = NativeEventQueue::dispatchMessageOnWindows(&Msg, rc); + while (PeekMessage(&Msg, NULL /*hWnd*/, 0 /*wMsgFilterMin*/, 0 /*wMsgFilterMax*/, PM_REMOVE)); + } + return rc; +} + +#else // VBOX_WITH_XPCOM + +/** + * Process pending XPCOM events. + * @param pQueue The queue to process events on. + * @retval VINF_SUCCESS + * @retval VERR_TIMEOUT + * @retval VERR_INTERRUPTED (darwin only) + * @retval VERR_INTERNAL_ERROR_2 + */ +static int processPendingEvents(nsIEventQueue *pQueue) +{ + /* ProcessPendingEvents doesn't report back what it did, so check here. */ + PRBool fHasEvents = PR_FALSE; + nsresult hr = pQueue->PendingEvents(&fHasEvents); + if (NS_FAILED(hr)) + return VERR_INTERNAL_ERROR_2; + + /* Process pending events. */ + int rc = VINF_SUCCESS; + if (fHasEvents) + pQueue->ProcessPendingEvents(); + else + rc = VERR_TIMEOUT; + +# ifdef RT_OS_DARWIN + /* Process pending native events. */ + int rc2 = waitForEventsOnDarwin(0); + if (rc == VERR_TIMEOUT || rc2 == VERR_INTERRUPTED) + rc = rc2; +# endif + + return rc; +} + +#endif // VBOX_WITH_XPCOM + +/** + * Process events pending on this event queue, and wait up to given timeout, if + * nothing is available. + * + * Must be called on same thread this event queue was created on. + * + * @param cMsTimeout The timeout specified as milliseconds. Use + * RT_INDEFINITE_WAIT to wait till an event is posted on the + * queue. + * + * @returns VBox status code + * @retval VINF_SUCCESS if one or more messages was processed. + * @retval VERR_TIMEOUT if cMsTimeout expired. + * @retval VERR_INVALID_CONTEXT if called on the wrong thread. + * @retval VERR_INTERRUPTED if interruptEventQueueProcessing was called. + * On Windows will also be returned when WM_QUIT is encountered. + * On Darwin this may also be returned when the native queue is + * stopped or destroyed/finished. + * @retval VINF_INTERRUPTED if the native system call was interrupted by a + * an asynchronous event delivery (signal) or just felt like returning + * out of bounds. On darwin it will also be returned if the queue is + * stopped. + */ +int NativeEventQueue::processEventQueue(RTMSINTERVAL cMsTimeout) +{ + int rc; + CHECK_THREAD_RET(VERR_INVALID_CONTEXT); + +#ifdef VBOX_WITH_XPCOM + /* + * Process pending events, if none are available and we're not in a + * poll call, wait for some to appear. (We have to be a little bit + * careful after waiting for the events since Darwin will process + * them as part of the wait, while the XPCOM case will not.) + * + * Note! Unfortunately, WaitForEvent isn't interruptible with Ctrl-C, + * while select() is. So we cannot use it for indefinite waits. + */ + rc = processPendingEvents(mEventQ); + if ( rc == VERR_TIMEOUT + && cMsTimeout > 0) + { +# ifdef RT_OS_DARWIN + /** @todo check how Ctrl-C works on Darwin. */ + rc = waitForEventsOnDarwin(cMsTimeout); + if (rc == VERR_TIMEOUT) + rc = processPendingEvents(mEventQ); +# else // !RT_OS_DARWIN + rc = waitForEventsOnXPCOM(mEventQ, cMsTimeout); + if ( RT_SUCCESS(rc) + || rc == VERR_TIMEOUT) + rc = processPendingEvents(mEventQ); +# endif // !RT_OS_DARWIN + } + + if ( ( RT_SUCCESS(rc) + || rc == VERR_INTERRUPTED + || rc == VERR_TIMEOUT) + && mInterrupted) + { + mInterrupted = false; + rc = VERR_INTERRUPTED; + } + +#else // !VBOX_WITH_XPCOM + if (cMsTimeout == RT_INDEFINITE_WAIT) + { + BOOL fRet; + MSG Msg; + rc = VINF_SUCCESS; + while ( rc != VERR_INTERRUPTED + && (fRet = GetMessage(&Msg, NULL /*hWnd*/, WM_USER, WM_USER)) + && fRet != -1) + rc = NativeEventQueue::dispatchMessageOnWindows(&Msg, rc); + if (fRet == 0) + rc = VERR_INTERRUPTED; + else if (fRet == -1) + rc = RTErrConvertFromWin32(GetLastError()); + } + else + { + rc = processPendingEvents(); + if ( rc == VERR_TIMEOUT + && cMsTimeout != 0) + { + DWORD rcW = MsgWaitForMultipleObjects(1, + &mhThread, + TRUE /*fWaitAll*/, + cMsTimeout, + QS_ALLINPUT); + AssertMsgReturn(rcW == WAIT_TIMEOUT || rcW == WAIT_OBJECT_0, + ("%d\n", rcW), + VERR_INTERNAL_ERROR_4); + rc = processPendingEvents(); + } + } +#endif // !VBOX_WITH_XPCOM + + Assert(rc != VERR_TIMEOUT || cMsTimeout != RT_INDEFINITE_WAIT); + return rc; +} + +/** + * Interrupt thread waiting on event queue processing. + * + * Can be called on any thread. + * + * @returns VBox status code. + */ +int NativeEventQueue::interruptEventQueueProcessing() +{ + /* Send a NULL event. This event will be picked up and handled specially + * both for XPCOM and Windows. It is the responsibility of the caller to + * take care of not running the loop again in a way which will hang. */ + postEvent(NULL); + return VINF_SUCCESS; +} + +/** + * Posts an event to this event loop asynchronously. + * + * @param event the event to post, must be allocated using |new| + * @return TRUE if successful and false otherwise + */ +BOOL NativeEventQueue::postEvent(NativeEvent *pEvent) +{ +#ifndef VBOX_WITH_XPCOM + /* Note! The event == NULL case is duplicated in vboxapi/PlatformMSCOM::interruptWaitEvents(). */ + BOOL fRc = PostThreadMessage(mThreadId, WM_USER, (WPARAM)pEvent, EVENTQUEUE_WIN_LPARAM_MAGIC); + if (!fRc) + { + static int s_cBitchedAboutFullNativeEventQueue = 0; + if ( GetLastError() == ERROR_NOT_ENOUGH_QUOTA + && s_cBitchedAboutFullNativeEventQueue < 10) + LogRel(("Warning: Asynchronous event queue (%p, thread %RI32) full, event (%p) not delivered (%d/10)\n", + this, mThreadId, pEvent, ++s_cBitchedAboutFullNativeEventQueue)); + else + AssertFailed(); + } + return fRc; +#else // VBOX_WITH_XPCOM + if (!mEventQ) + return FALSE; + + try + { + MyPLEvent *pMyEvent = new MyPLEvent(pEvent); + mEventQ->InitEvent(pMyEvent, this, com::NativeEventQueue::plEventHandler, + com::NativeEventQueue::plEventDestructor); + HRESULT rc = mEventQ->PostEvent(pMyEvent); + return NS_SUCCEEDED(rc); + } + catch (std::bad_alloc &ba) + { + AssertMsgFailed(("Out of memory while allocating memory for event=%p: %s\n", + pEvent, ba.what())); + } + + return FALSE; +#endif // VBOX_WITH_XPCOM +} + +/** + * Get select()'able selector for this event queue. + * This will return -1 on platforms and queue variants not supporting such + * functionality. + */ +int NativeEventQueue::getSelectFD() +{ +#ifdef VBOX_WITH_XPCOM + return mEventQ->GetEventQueueSelectFD(); +#else + return -1; +#endif +} + +} +/* namespace com */ diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Main/idl/VirtualBox.xidl virtualbox-4.1.44-dfsg/src/VBox/Main/idl/VirtualBox.xidl --- virtualbox-4.1.12-dfsg/src/VBox/Main/idl/VirtualBox.xidl 2012-04-02 13:28:52.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Main/idl/VirtualBox.xidl 2015-11-11 15:08:49.000000000 +0000 @@ -2957,7 +2957,7 @@ @@ -3375,6 +3375,11 @@ The flags of the property. + + + Returns if a guest property change notification event should be fired. + + diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Main/include/ConsoleImpl.h virtualbox-4.1.44-dfsg/src/VBox/Main/include/ConsoleImpl.h --- virtualbox-4.1.12-dfsg/src/VBox/Main/include/ConsoleImpl.h 2012-04-02 13:28:52.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Main/include/ConsoleImpl.h 2015-11-11 15:08:49.000000000 +0000 @@ -37,6 +37,9 @@ #ifdef VBOX_WITH_USB_VIDEO class UsbWebcamInterface; #endif +#ifdef VBOX_WITH_USB_CARDREADER +class UsbCardReader; +#endif class ConsoleVRDPServer; class VMMDev; class Progress; @@ -175,6 +178,7 @@ AudioSniffer *getAudioSniffer() const { return mAudioSniffer; } const ComPtr &machine() const { return mMachine; } + const Bstr &getId() const { return mstrUuid; } bool useHostClipboard() { return mfUseHostClipboard; } @@ -219,6 +223,9 @@ ExtPackManager *getExtPackManager(); #endif EventSource *getEventSource() { return mEventSource; } +#ifdef VBOX_WITH_USB_CARDREADER + UsbCardReader *getUsbCardReader() { return mUsbCardReader; } +#endif int VRDPClientLogon(uint32_t u32ClientId, const char *pszUser, const char *pszPassword, const char *pszDomain); void VRDPClientStatusChange(uint32_t u32ClientId, const char *pszStatus); @@ -284,22 +291,20 @@ class AutoVMCallerBase { public: - AutoVMCallerBase(Console *aThat) : mThat(aThat), mRC(S_OK) + AutoVMCallerBase(Console *aThat) : mThat(aThat), mRC(E_FAIL) { Assert(aThat); mRC = aThat->addVMCaller(taQuiet, taAllowNullVM); } ~AutoVMCallerBase() { - if (SUCCEEDED(mRC)) - mThat->releaseVMCaller(); + doRelease(); } /** Decreases the number of callers before the instance is destroyed. */ void releaseCaller() { - AssertReturnVoid(SUCCEEDED(mRC)); - mThat->releaseVMCaller(); - mRC = E_FAIL; + Assert(SUCCEEDED(mRC)); + doRelease(); } /** Restores the number of callers after by #release(). #rc() must be * rechecked to ensure the operation succeeded. */ @@ -314,8 +319,16 @@ bool isOk() const { return SUCCEEDED(mRC); } protected: Console *mThat; - HRESULT mRC; + void doRelease() + { + if (SUCCEEDED(mRC)) + { + mThat->releaseVMCaller(); + mRC = E_FAIL; + } + } private: + HRESULT mRC; /* Whether the caller was added. */ DECLARE_CLS_COPY_CTOR_ASSIGN_NOOP(AutoVMCallerBase) }; @@ -375,15 +388,14 @@ { typedef AutoVMCallerBase Base; public: - SafeVMPtrBase(Console *aThat) : Base(aThat), mpVM(NULL), mpUVM(NULL) + SafeVMPtrBase(Console *aThat) : Base(aThat), mRC(E_FAIL), mpVM(NULL), mpUVM(NULL) { - if (SUCCEEDED(Base::mRC)) - Base::mRC = aThat->safeVMPtrRetainer(&mpVM, &mpUVM, taQuiet); + if (Base::isOk()) + mRC = aThat->safeVMPtrRetainer(&mpVM, &mpUVM, taQuiet); } ~SafeVMPtrBase() { - if (SUCCEEDED(Base::mRC)) - release(); + doRelease(); } /** Smart SaveVMPtr to PVM cast operator */ operator PVM() const { return mpVM; } @@ -394,12 +406,26 @@ /** Release the handles. */ void release() { - AssertReturnVoid(SUCCEEDED(Base::mRC)); - Base::mThat->safeVMPtrReleaser(&mpVM, &mpUVM); - Base::releaseCaller(); + Assert(SUCCEEDED(mRC)); + doRelease(); } + /** The combined result of Console::addVMCaller() and Console::safeVMPtrRetainer */ + HRESULT rc() const { return Base::isOk()? mRC: Base::rc(); } + /** Shortcut to SUCCEEDED(rc()) */ + bool isOk() const { return SUCCEEDED(mRC) && Base::isOk(); } + private: + void doRelease() + { + if (SUCCEEDED(mRC)) + { + Base::mThat->safeVMPtrReleaser(&mpVM, &mpUVM); + mRC = E_FAIL; + } + Base::doRelease(); + } + HRESULT mRC; /* Whether the VM ptr was retained. */ PVM mpVM; PUVM mpUVM; DECLARE_CLS_COPY_CTOR_ASSIGN_NOOP(SafeVMPtrBase) @@ -756,6 +782,9 @@ #ifdef VBOX_WITH_USB_VIDEO UsbWebcamInterface * const mUsbWebcamInterface; #endif +#ifdef VBOX_WITH_USB_CARDREADER + UsbCardReader * const mUsbCardReader; +#endif BusAssignmentManager* mBusMgr; enum @@ -793,6 +822,9 @@ /** Local machine state value. */ MachineState_T mMachineState; + /** Machine uuid string. */ + Bstr mstrUuid; + /** Pointer to the progress object of a live cancelable task. * * This is currently only used by Console::Teleport(), but is intended to later diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Main/include/ConsoleVRDPServer.h virtualbox-4.1.44-dfsg/src/VBox/Main/include/ConsoleVRDPServer.h --- virtualbox-4.1.12-dfsg/src/VBox/Main/include/ConsoleVRDPServer.h 2012-04-02 13:28:52.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Main/include/ConsoleVRDPServer.h 2015-11-11 15:08:49.000000000 +0000 @@ -24,6 +24,7 @@ #include #include +#include #include @@ -118,7 +119,7 @@ * Forwarders to VRDP server library. */ void SendUpdate (unsigned uScreenId, void *pvUpdate, uint32_t cbUpdate) const; - void SendResize (void) const; + void SendResize (void); void SendUpdateBitmap (unsigned uScreenId, uint32_t x, uint32_t y, uint32_t w, uint32_t h) const; void SendAudioSamples (void *pvSamples, uint32_t cSamples, VRDEAUDIOFORMAT format) const; @@ -140,6 +141,8 @@ int SendVideoSreamOn(bool fFetch); #endif + int SCardRequest(void *pvUser, uint32_t u32Function, const void *pvData, uint32_t cbData); + private: /* Note: This is not a ComObjPtr here, because the ConsoleVRDPServer object * is actually just a part of the Console. @@ -149,6 +152,8 @@ HVRDESERVER mhServer; int mServerInterfaceVersion; + int32_t volatile mcInResize; /* Do not Stop the server if this is not 0. */ + static int loadVRDPLibrary (const char *pszLibraryName); /** Static because will never load this more than once! */ @@ -258,6 +263,20 @@ uint32_t u32Id, void *pvData, uint32_t cbData); + + /* Smartcard interface. */ + VRDESCARDINTERFACE m_interfaceSCard; + VRDESCARDCALLBACKS m_interfaceCallbacksSCard; + static DECLCALLBACK(int) VRDESCardCbNotify(void *pvContext, + uint32_t u32Id, + void *pvData, + uint32_t cbData); + static DECLCALLBACK(int) VRDESCardCbResponse(void *pvContext, + int rcRequest, + void *pvUser, + uint32_t u32Function, + void *pvData, + uint32_t cbData); }; diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Main/include/MachineImpl.h virtualbox-4.1.44-dfsg/src/VBox/Main/include/MachineImpl.h --- virtualbox-4.1.12-dfsg/src/VBox/Main/include/MachineImpl.h 2012-04-02 13:28:53.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Main/include/MachineImpl.h 2015-11-11 15:08:50.000000000 +0000 @@ -234,8 +234,6 @@ * Data structure to hold information about a guest property. */ struct GuestProperty { - /** Property name */ - Utf8Str strName; /** Property value */ Utf8Str strValue; /** Property timestamp */ @@ -281,14 +279,15 @@ ClipboardMode_T mClipboardMode; - typedef std::list GuestPropertyList; - GuestPropertyList mGuestProperties; + typedef std::map GuestPropertyMap; + GuestPropertyMap mGuestProperties; Utf8Str mGuestPropertyNotificationPatterns; FirmwareType_T mFirmwareType; KeyboardHidType_T mKeyboardHidType; PointingHidType_T mPointingHidType; ChipsetType_T mChipsetType; + BOOL mEmulatedUSBCardReaderEnabled; BOOL mIoCacheEnabled; ULONG mIoCacheSize; @@ -677,6 +676,7 @@ void getLogFolder(Utf8Str &aLogFolder); Utf8Str queryLogFilename(ULONG idx); + Utf8Str i_getHardeningLogFilename(void); void composeSavedStateFilename(Utf8Str &strStateFilePath); @@ -1010,7 +1010,8 @@ STDMETHOD(PullGuestProperties)(ComSafeArrayOut(BSTR, aNames), ComSafeArrayOut(BSTR, aValues), ComSafeArrayOut(LONG64, aTimestamps), ComSafeArrayOut(BSTR, aFlags)); STDMETHOD(PushGuestProperty)(IN_BSTR aName, IN_BSTR aValue, - LONG64 aTimestamp, IN_BSTR aFlags); + LONG64 aTimestamp, IN_BSTR aFlags, + BOOL *aNotify); STDMETHOD(LockMedia)() { return lockMedia(); } STDMETHOD(UnlockMedia)() { unlockMedia(); return S_OK; } STDMETHOD(EjectMedium)(IMediumAttachment *aAttachment, diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Main/include/Performance.h virtualbox-4.1.44-dfsg/src/VBox/Main/include/Performance.h --- virtualbox-4.1.12-dfsg/src/VBox/Main/include/Performance.h 2012-04-02 13:28:53.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Main/include/Performance.h 2015-11-11 15:08:50.000000000 +0000 @@ -440,6 +440,7 @@ HostCpuLoadRaw(CollectorHAL *hal, ComPtr object, SubMetric *user, SubMetric *kernel, SubMetric *idle) : HostCpuLoad(hal, object, user, kernel, idle), mUserPrev(0), mKernelPrev(0), mIdlePrev(0) {}; + void init(ULONG period, ULONG length); void preCollect(CollectorHints& hints, uint64_t iTick); void collect(); private: diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Main/include/UsbCardReader.h virtualbox-4.1.44-dfsg/src/VBox/Main/include/UsbCardReader.h --- virtualbox-4.1.12-dfsg/src/VBox/Main/include/UsbCardReader.h 1970-01-01 00:00:00.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Main/include/UsbCardReader.h 2015-11-11 15:08:50.000000000 +0000 @@ -0,0 +1,72 @@ +/* $Id: UsbCardReader.h $ */ + +/** @file + * VirtualBox Driver interface to the virtual Usb Card Reader. + */ + +/* + * Copyright (C) 2011-2012 Oracle Corporation + * + * This file is part of VirtualBox Open Source Edition (OSE), as + * available from http://www.virtualbox.org. This file is free software; + * you can redistribute it and/or modify it under the terms of the GNU + * General Public License (GPL) as published by the Free Software + * Foundation, in version 2 as it comes in the "COPYING" file of the + * VirtualBox OSE distribution. VirtualBox OSE is distributed in the + * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind. + */ + +#ifndef ____H_USBCARDREADER +#define ____H_USBCARDREADER + +#include +#include + +class Console; +typedef struct USBCARDREADER USBCARDREADER; +typedef struct UCRREMOTE UCRREMOTE; + +class UsbCardReader +{ + public: + UsbCardReader(Console *console); + virtual ~UsbCardReader(); + + static const PDMDRVREG DrvReg; + USBCARDREADER *mpDrv; + + Console *getParent(void) { return mParent; } + + int VRDENotify(uint32_t u32Id, void *pvData, uint32_t cbData); + int VRDEResponse(int rcRequest, void *pvUser, uint32_t u32Function, void *pvData, uint32_t cbData); + + int EstablishContext(USBCARDREADER *pDrv); + int ReleaseContext(USBCARDREADER *pDrv); + int GetStatusChange(USBCARDREADER *pDrv, void *pvUser, uint32_t u32Timeout, + PDMICARDREADER_READERSTATE *paReaderStats, uint32_t cReaderStats); + int Connect(USBCARDREADER *pDrv, void *pvUser, const char *pszReaderName, + uint32_t u32ShareMode, uint32_t u32PreferredProtocols); + int Disconnect(USBCARDREADER *pDrv, void *pvUser, uint32_t u32Mode); + int Status(USBCARDREADER *pDrv, void *pvUser); + int Transmit(USBCARDREADER *pDrv, void *pvUser, PDMICARDREADER_IO_REQUEST *pioSendRequest, + uint8_t *pu8SendBuffer, uint32_t cbSendBuffer, uint32_t cbRecvBuffer); + int Control(USBCARDREADER *pDrv, void *pvUser, uint32_t u32ControlCode, + uint8_t *pu8InBuffer, uint32_t cbInBuffer, uint32_t cbOutBuffer); + int GetAttrib(USBCARDREADER *pDrv, void *pvUser, uint32_t u32AttrId, uint32_t cbAttrib); + int SetAttrib(USBCARDREADER *pDrv, void *pvUser, uint32_t u32AttrId, + uint8_t *pu8Attrib, uint32_t cbAttrib); + + private: + static DECLCALLBACK(void *) drvQueryInterface(PPDMIBASE pInterface, const char *pszIID); + static DECLCALLBACK(int) drvConstruct(PPDMDRVINS pDrvIns, PCFGMNODE pCfg, uint32_t fFlags); + static DECLCALLBACK(void) drvDestruct(PPDMDRVINS pDrvIns); + + int vrdeSCardRequest(void *pvUser, uint32_t u32Function, const void *pvData, uint32_t cbData); + + Console * const mParent; + + UCRREMOTE *m_pRemote; +}; + +#endif /* !____H_USBCARDREADER */ +/* vi: set tabstop=4 shiftwidth=4 expandtab: */ diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Main/Makefile.kmk virtualbox-4.1.44-dfsg/src/VBox/Main/Makefile.kmk --- virtualbox-4.1.12-dfsg/src/VBox/Main/Makefile.kmk 2012-04-02 13:28:52.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Main/Makefile.kmk 2015-11-11 15:08:48.000000000 +0000 @@ -232,7 +232,6 @@ $(if $(VBOX_WITH_LIVE_MIGRATION),VBOX_WITH_LIVE_MIGRATION,) \ $(if $(VBOX_WITH_EXTPACK),VBOX_WITH_EXTPACK,) \ $(if $(VBOX_WITH_VUSB),VBOX_WITH_VUSB,) \ - $(if $(VBOX_WITH_S3),VBOX_WITH_S3,) \ $(if $(VBOX_WITH_PCI_PASSTHROUGH),VBOX_WITH_PCI_PASSTHROUGH,) ifdef VBOX_WITH_USB VBoxSVC_DEFS += \ @@ -335,13 +334,6 @@ src-server/darwin/iokit.cpp \ src-server/darwin/HostPowerDarwin.cpp -ifdef VBOX_WITH_CROGL - ifneq ($(KBUILD_TARGET),darwin) - VBoxSVC_SOURCES += src-server/generic/OpenGLTest.cpp - endif - VBoxSVC_SOURCES.darwin += src-server/darwin/OpenGLTestDarwin.cpp -endif - VBoxSVC_SOURCES.win = \ src-server/win/svcmain.cpp \ src-server/win/svchlp.cpp \ @@ -389,14 +381,15 @@ # needing it. src-server/win/NetIf-win.cpp_INCS.win += $(PATH_TOOL_$(VBOX_VCC_TOOL)_INC) VBoxSVC_LIBS.win += \ - $(WinNetConfig_1_TARGET) \ - $(VBoxDrvCfg_1_TARGET) \ + $(PATH_STAGE_LIB)/WinNetConfig$(VBOX_SUFF_LIB) \ + $(PATH_STAGE_LIB)/VBoxDrvCfg$(VBOX_SUFF_LIB) \ $(PATH_TOOL_$(VBOX_VCC_TOOL)_LIB)/comsupp.lib \ $(PATH_SDK_WINPSDK_LIB)/WbemUuid.Lib endif VBoxSVC_LDFLAGS.darwin = -framework IOKit -framework SystemConfiguration ifdef VBOX_WITH_CROGL + VBoxSVC_LIBS += $(PATH_STAGE_LIB)/VBoxOGLTest$(VBOX_SUFF_LIB) VBoxSVC_LDFLAGS.darwin += -framework OpenGL endif @@ -492,46 +485,6 @@ OTHER_CLEAN += $(VBOX_AUTOGEN_EVENT_H) $(VBOX_AUTOGEN_EVENT_CPP) - -# -# VBoxTestOGL - OpenGL support test app. -# Note! Doesn't link with VBOX_WITH_DEBUG_VCC_CRT defined because it uses Qt. -# -if ( defined(VBOX_WITH_QTGUI) \ - && (defined(VBOX_WITH_CROGL) || defined(VBOX_WITH_VIDEOHWACCEL)) \ - && !defined(VBOX_WITH_DEBUG_VCC_CRT)) - ifneq ($(KBUILD_TARGET),darwin) - ifdef VBOX_WITH_VIDEOHWACCEL - USES += qt4 - endif - PROGRAMS += VBoxTestOGL - VBoxTestOGL_TEMPLATE = $(if $(VBOX_WITH_VIDEOHWACCEL),$(if $(VBOX_WITH_HARDENING),VBOXQT4GUI,VBOXQT4GUIEXE),VBOXMAINEXE) - VBoxTestOGL_SOURCES = src-server/generic/OpenGLTestApp.cpp - VBoxTestOGL_LIBS = \ - $(if $(VBOX_WITH_CROGL), \ - $(PATH_STAGE_LIB)/VBoxOGLhostspuload$(VBOX_SUFF_LIB) \ - $(VBOX_LIB_OGL_HOSTCRUTIL),) \ - $(if $(VBOX_WITH_VIDEOHWACCEL), $(PATH_STAGE_LIB)/VBoxOGL2D$(VBOX_SUFF_LIB),) \ - $(LIB_RUNTIME) - VBoxTestOGL_DEFS += \ - $(if $(VBOX_WITH_CROGL), VBOX_WITH_CROGL,) \ - $(if $(VBOX_WITH_VIDEOHWACCEL), VBOX_WITH_VIDEOHWACCEL,) \ - VBOX_BUILD_TARGET=\"$(KBUILD_TARGET).$(KBUILD_TARGET_ARCH)\" \ - $(if $(VBOX_BLEEDING_EDGE),VBOX_BLEEDING_EDGE=\"$(VBOX_BLEEDING_EDGE)\",) - ifdef VBOX_WITH_VIDEOHWACCEL - VBoxTestOGL_QT_MODULES += Core Gui OpenGL - VBoxTestOGL_LDFLAGS.darwin += -framework OpenGL - VBoxTestOGL_LIBS.win += $(PATH_SDK_WINPSDK_LIB)/Opengl32.lib - if1of ($(KBUILD_TARGET), solaris linux freebsd) - # must come after VBoxOGL2D, therefore don't set the arch-specific LIBS variable here! - VBoxTestOGL_LIBS += GL - endif - endif - VBoxTestOGL_LDFLAGS.win = /SUBSYSTEM:windows - endif -endif - - ifdef VBOX_WITH_XPCOM # # VBoxSVCM - VBoxSVC wrapper module @@ -612,19 +565,34 @@ ifdef VBOX_USE_VCC80 VBoxC_LDFLAGS.win = /MANIFEST endif +VBoxC_LDFLAGS.win += \ + /DELAYLOAD:VBoxVMM.dll \ + /DELAYLOAD:user32.dll VBoxC_LIBS += \ $(LIB_VMM) \ $(LIB_REM) +VBoxC_LIBS.win += \ + $(PATH_TOOL_$(VBOX_VCC_TOOL)_LIB)/delayimp.lib ifdef VBOX_WITH_NETFLT VBoxC_LIBS.win += \ - $(VBoxDrvCfg_1_TARGET) \ - $(WinNetConfig_1_TARGET) \ + $(PATH_STAGE_LIB)/VBoxDrvCfg$(VBOX_SUFF_LIB) \ + $(PATH_STAGE_LIB)/WinNetConfig$(VBOX_SUFF_LIB) \ $(PATH_TOOL_$(VBOX_VCC_TOOL)_LIB)/comsupp.lib \ $(PATH_SDK_WINPSDK_LIB)/WbemUuid.Lib + VBoxC_LDFLAGS.win += \ + /DELAYLOAD:newdev.dll \ + /DELAYLOAD:setupapi.dll \ + /DELAYLOAD:iphlpapi.dll endif +ifdef VBOX_WITH_CROGL + VBoxC_LIBS += $(PATH_STAGE_LIB)/VBoxOGLTest$(VBOX_SUFF_LIB) + VBoxC_LDFLAGS.darwin += -framework OpenGL +endif + + VBoxC_INTERMEDIATES = \ $(VBOX_MAIN_PREREQS) \ $(VBOX_XML_SCHEMADEFS_H) \ @@ -644,6 +612,7 @@ src-all/VirtualBoxErrorInfoImpl.cpp \ $(if $(VBOX_WITH_EXTPACK),src-all/ExtPackManagerImpl.cpp src-all/ExtPackUtil.cpp,) \ $(if $(VBOX_WITH_USB_VIDEO),src-client/UsbWebcamInterface.cpp,) \ + $(if $(VBOX_WITH_USB_CARDREADER),src-client/UsbCardReader.cpp,) \ src-client/AdditionsFacilityImpl.cpp \ src-client/AudioSnifferInterface.cpp \ src-client/BusAssignmentManager.cpp \ @@ -734,6 +703,7 @@ glue/string.cpp \ glue/AutoLock.cpp \ glue/EventQueue.cpp \ + glue/NativeEventQueue.cpp \ glue/ErrorInfo.cpp \ glue/errorprint.cpp \ glue/VirtualBoxErrorInfo.cpp diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Main/src-all/EventImpl.cpp virtualbox-4.1.44-dfsg/src/VBox/Main/src-all/EventImpl.cpp --- virtualbox-4.1.12-dfsg/src/VBox/Main/src-all/EventImpl.cpp 2012-04-02 13:28:54.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Main/src-all/EventImpl.cpp 2015-11-11 15:08:50.000000000 +0000 @@ -706,8 +706,10 @@ case VBoxEventType_Invalid: return FALSE; default: - return who == what; + break; } + + return who == what; } ListenerRecord::ListenerRecord(IEventListener* aListener, @@ -812,8 +814,8 @@ eventProcessed(aEvent, pit); return rc; } - else - return enqueue(aEvent); + + return enqueue(aEvent); } diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Main/src-all/ExtPackManagerImpl.cpp virtualbox-4.1.44-dfsg/src/VBox/Main/src-all/ExtPackManagerImpl.cpp --- virtualbox-4.1.12-dfsg/src/VBox/Main/src-all/ExtPackManagerImpl.cpp 2012-04-02 13:28:54.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Main/src-all/ExtPackManagerImpl.cpp 2015-11-11 15:08:50.000000000 +0000 @@ -784,6 +784,13 @@ m->fMadeReadyCall = false; /* + * Make sure the SUPR3Hardened API works (ignoring errors for now). + */ + int rc = SUPR3HardenedVerifyInit(); + if (RT_FAILURE(rc)) + LogRel(("SUPR3HardenedVerifyInit failed: %Rrc\n", rc)); + + /* * Probe the extension pack (this code is shared with refresh()). */ probeAndLoad(); diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Main/src-all/Global.cpp virtualbox-4.1.44-dfsg/src/VBox/Main/src-all/Global.cpp --- virtualbox-4.1.12-dfsg/src/VBox/Main/src-all/Global.cpp 2012-04-02 13:28:54.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Main/src-all/Global.cpp 2015-11-11 15:08:50.000000000 +0000 @@ -213,11 +213,11 @@ StorageControllerType_IntelAhci, StorageBus_SATA, ChipsetType_PIIX3, AudioControllerType_AC97 }, { "Linux", "Linux", SchemaDefs_OSTypeId_Oracle, "Oracle", VBOXOSTYPE_Oracle, VBOXOSHINT_RTCUTC | VBOXOSHINT_PAE, - 512, 12, 8 * _1G64, NetworkAdapterType_I82540EM, 0, StorageControllerType_PIIX4, StorageBus_IDE, + 512, 12, 12 * _1G64, NetworkAdapterType_I82540EM, 0, StorageControllerType_PIIX4, StorageBus_IDE, StorageControllerType_IntelAhci, StorageBus_SATA, ChipsetType_PIIX3, AudioControllerType_AC97 }, { "Linux", "Linux", SchemaDefs_OSTypeId_Oracle_64, "Oracle (64 bit)", VBOXOSTYPE_Oracle_x64, VBOXOSHINT_64BIT | VBOXOSHINT_PAE | VBOXOSHINT_HWVIRTEX | VBOXOSHINT_IOAPIC | VBOXOSHINT_RTCUTC, - 512, 12, 8 * _1G64, NetworkAdapterType_I82540EM, 0, StorageControllerType_PIIX4, StorageBus_IDE, + 512, 12, 12 * _1G64, NetworkAdapterType_I82540EM, 0, StorageControllerType_PIIX4, StorageBus_IDE, StorageControllerType_IntelAhci, StorageBus_SATA, ChipsetType_PIIX3, AudioControllerType_AC97 }, { "Linux", "Linux", SchemaDefs_OSTypeId_Linux, "Other Linux", VBOXOSTYPE_Linux, VBOXOSHINT_RTCUTC | VBOXOSHINT_USBTABLET, diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Main/src-client/ConsoleImpl2.cpp virtualbox-4.1.44-dfsg/src/VBox/Main/src-client/ConsoleImpl2.cpp --- virtualbox-4.1.12-dfsg/src/VBox/Main/src-client/ConsoleImpl2.cpp 2012-04-02 13:28:55.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Main/src-client/ConsoleImpl2.cpp 2015-11-11 15:08:51.000000000 +0000 @@ -65,6 +65,7 @@ #include #ifdef VBOX_WITH_CROGL # include +#include #endif #ifdef VBOX_WITH_GUEST_PROPS # include @@ -744,6 +745,7 @@ Bstr osTypeId; hrc = pMachine->COMGETTER(OSTypeId)(osTypeId.asOutParam()); H(); + LogRel(("OS type: '%s'\n", Utf8Str(osTypeId).c_str())); BOOL fIOAPIC; hrc = biosSettings->COMGETTER(IOAPICEnabled)(&fIOAPIC); H(); @@ -784,10 +786,11 @@ InsertConfigInteger(pRoot, "PATMEnabled", 1); /* boolean */ InsertConfigInteger(pRoot, "CSAMEnabled", 1); /* boolean */ #endif - /* Not necessary, but to make sure these two settings end up in the release log. */ BOOL fPageFusion = FALSE; hrc = pMachine->COMGETTER(PageFusionEnabled)(&fPageFusion); H(); - InsertConfigInteger(pRoot, "PageFusion", fPageFusion); /* boolean */ + InsertConfigInteger(pRoot, "PageFusionAllowed", fPageFusion); /* boolean */ + + /* Not necessary, but makes sure this setting ends up in the release log. */ ULONG ulBalloonSize = 0; hrc = pMachine->COMGETTER(MemoryBalloonSize)(&ulBalloonSize); H(); InsertConfigInteger(pRoot, "MemBalloonSize", ulBalloonSize); @@ -913,9 +916,9 @@ if ( !fIsGuest64Bit && fIOAPIC && ( osTypeId == "WindowsNT4" - || osTypeId == "Windows2000" - || osTypeId == "WindowsXP" - || osTypeId == "Windows2003")) + || osTypeId == "Windows2000" + || osTypeId == "WindowsXP" + || osTypeId == "Windows2003")) { /* Only allow TPR patching for NT, Win2k, XP and Windows Server 2003. (32 bits mode) * We may want to consider adding more guest OSes (Solaris) later on. @@ -2303,15 +2306,26 @@ # endif #endif #ifdef VBOX_WITH_USB_CARDREADER - InsertConfigNode(pUsbDevices, "CardReader", &pDev); - InsertConfigNode(pDev, "0", &pInst); - InsertConfigNode(pInst, "Config", &pCfg); - InsertConfigNode(pInst, "LUN#0", &pLunL0); + BOOL aEmulatedUSBCardReaderEnabled = FALSE; + hrc = pMachine->COMGETTER(EmulatedUSBCardReaderEnabled)(&aEmulatedUSBCardReaderEnabled); H(); + if (aEmulatedUSBCardReaderEnabled) + { + InsertConfigNode(pUsbDevices, "CardReader", &pDev); + InsertConfigNode(pDev, "0", &pInst); + InsertConfigNode(pInst, "Config", &pCfg); + + InsertConfigNode(pInst, "LUN#0", &pLunL0); # ifdef VBOX_WITH_USB_CARDREADER_TEST - InsertConfigString(pLunL0, "Driver", "DrvDirectCardReader"); - InsertConfigNode(pLunL0, "Config", &pCfg); + InsertConfigString(pLunL0, "Driver", "DrvDirectCardReader"); + InsertConfigNode(pLunL0, "Config", &pCfg); +# else + InsertConfigString(pLunL0, "Driver", "UsbCardReader"); + InsertConfigNode(pLunL0, "Config", &pCfg); + InsertConfigInteger(pCfg, "Object", (uintptr_t)mUsbCardReader); # endif + } #endif + # if 0 /* Virtual MSD*/ InsertConfigNode(pUsbDevices, "Msd", &pDev); @@ -2462,8 +2476,7 @@ if (fEnabled3D) { - BOOL fSupports3D = false; - hrc = host->COMGETTER(Acceleration3DAvailable)(&fSupports3D); H(); + BOOL fSupports3D = VBoxOglIs3DAccelerationSupported(); if (!fSupports3D) return VMSetError(pVM, VERR_NOT_AVAILABLE, RT_SRC_POS, N_("This VM was configured to use 3D acceleration. However, the " diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Main/src-client/ConsoleImpl.cpp virtualbox-4.1.44-dfsg/src/VBox/Main/src-client/ConsoleImpl.cpp --- virtualbox-4.1.12-dfsg/src/VBox/Main/src-client/ConsoleImpl.cpp 2012-04-02 13:28:55.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Main/src-client/ConsoleImpl.cpp 2015-11-11 15:08:51.000000000 +0000 @@ -59,6 +59,9 @@ #ifdef VBOX_WITH_USB_VIDEO # include "UsbWebcamInterface.h" #endif +#ifdef VBOX_WITH_USB_CARDREADER +# include "UsbCardReader.h" +#endif #include "ProgressCombinedImpl.h" #include "ConsoleVRDPServer.h" #include "VMMDev.h" @@ -258,13 +261,17 @@ { VMSaveTask(Console *aConsole, const ComPtr &aServerProgress, - const Utf8Str &aSavedStateFile) + const Utf8Str &aSavedStateFile, + MachineState_T aMachineStateBefore) : VMTask(aConsole, NULL /* aProgress */, aServerProgress, true /* aUsesVMPtr */), - mSavedStateFile(aSavedStateFile) + mSavedStateFile(aSavedStateFile), + mMachineStateBefore(aMachineStateBefore) {} Utf8Str mSavedStateFile; + /* The local machine state we had before. Required if something fails */ + MachineState_T mMachineStateBefore; }; // Handler for global events @@ -291,7 +298,7 @@ { } - STDMETHOD(HandleEvent)(VBoxEventType_T aType, IEvent * aEvent) + STDMETHOD(HandleEvent)(VBoxEventType_T aType, IEvent *aEvent) { switch(aType) { @@ -303,12 +310,9 @@ HRESULT rc = E_FAIL; Assert(pNREv); - Bstr interestedId; - rc = pMachine->COMGETTER(Id)(interestedId.asOutParam()); - AssertComRC(rc); rc = pNREv->COMGETTER(MachineId)(id.asOutParam()); AssertComRC(rc); - if (id != interestedId) + if (id != mConsole->getId()) break; /* now we can operate with redirects */ NATProtocol_T proto; @@ -340,10 +344,11 @@ default: AssertFailed(); } + return S_OK; } private: - Console *mConsole; + ComObjPtr mConsole; }; typedef ListenerImpl VmEventListenerImpl; @@ -373,6 +378,9 @@ #ifdef VBOX_WITH_USB_VIDEO , mUsbWebcamInterface(NULL) #endif +#ifdef VBOX_WITH_USB_CARDREADER + , mUsbCardReader(NULL) +#endif , mBusMgr(NULL) , mVMStateChangeCallbackDisabled(false) , mfUseHostClipboard(true) @@ -450,6 +458,9 @@ rc = mMachine->COMGETTER(VRDEServer)(unconst(mVRDEServer).asOutParam()); AssertComRCReturnRC(rc); + rc = mMachine->COMGETTER(Id)(mstrUuid.asOutParam()); + AssertComRCReturnRC(rc); + /* Create associated child COM objects */ // Event source may be needed by other children @@ -514,6 +525,10 @@ unconst(mUsbWebcamInterface) = new UsbWebcamInterface(this); AssertReturn(mUsbWebcamInterface, E_FAIL); #endif +#ifdef VBOX_WITH_USB_CARDREADER + unconst(mUsbCardReader) = new UsbCardReader(this); + AssertReturn(mUsbCardReader, E_FAIL); +#endif /* VirtualBox events registration. */ { @@ -613,6 +628,14 @@ } #endif +#ifdef VBOX_WITH_USB_CARDREADER + if (mUsbCardReader) + { + delete mUsbCardReader; + unconst(mUsbCardReader) = NULL; + } +#endif + if (mAudioSniffer) { delete mAudioSniffer; @@ -905,14 +928,10 @@ return VERR_ACCESS_DENIED; } - Bstr id; - HRESULT hrc = mMachine->COMGETTER(Id)(id.asOutParam()); - Guid uuid = Guid(id); - - AssertComRCReturn(hrc, VERR_ACCESS_DENIED); + Guid uuid = Guid(getId()); AuthType_T authType = AuthType_Null; - hrc = mVRDEServer->COMGETTER(AuthType)(&authType); + HRESULT hrc = mVRDEServer->COMGETTER(AuthType)(&authType); AssertComRCReturn(hrc, VERR_ACCESS_DENIED); ULONG authTimeout = 0; @@ -1135,6 +1154,7 @@ LogFlowFunc(("%s\n", pszStatus)); +#ifdef VBOX_WITH_GUEST_PROPS /* Parse the status string. */ if (RTStrICmp(pszStatus, "ATTACH") == 0) { @@ -1148,6 +1168,7 @@ { guestPropertiesVRDPUpdateNameChange(u32ClientId, pszStatus + strlen("NAME=")); } +#endif LogFlowFuncLeave(); } @@ -1236,16 +1257,12 @@ } } - Bstr uuid; - HRESULT hrc = mMachine->COMGETTER(Id)(uuid.asOutParam()); - AssertComRC(hrc); - AuthType_T authType = AuthType_Null; - hrc = mVRDEServer->COMGETTER(AuthType)(&authType); + HRESULT hrc = mVRDEServer->COMGETTER(AuthType)(&authType); AssertComRC(hrc); if (authType == AuthType_External) - mConsoleVRDPServer->AuthDisconnect(uuid, u32ClientId); + mConsoleVRDPServer->AuthDisconnect(getId(), u32ClientId); #ifdef VBOX_WITH_GUEST_PROPS guestPropertiesVRDPUpdateDisconnect(u32ClientId); @@ -1572,26 +1589,30 @@ PHOSTCALLBACKDATA pCBData = reinterpret_cast(pvParms); AssertReturn(sizeof(HOSTCALLBACKDATA) == cbParms, VERR_INVALID_PARAMETER); AssertReturn(HOSTCALLBACKMAGIC == pCBData->u32Magic, VERR_INVALID_PARAMETER); - Log5(("Console::doGuestPropNotification: pCBData={.pcszName=%s, .pcszValue=%s, .pcszFlags=%s}\n", - pCBData->pcszName, pCBData->pcszValue, pCBData->pcszFlags)); + LogFlow(("pCBData={.pcszName=%s, .pcszValue=%s, .pcszFlags=%s}\n", + pCBData->pcszName, pCBData->pcszValue, pCBData->pcszFlags)); int rc; Bstr name(pCBData->pcszName); Bstr value(pCBData->pcszValue); Bstr flags(pCBData->pcszFlags); ComObjPtr pConsole = reinterpret_cast(pvExtension); + BOOL fNotify = FALSE; HRESULT hrc = pConsole->mControl->PushGuestProperty(name.raw(), value.raw(), pCBData->u64Timestamp, - flags.raw()); + flags.raw(), + &fNotify); if (SUCCEEDED(hrc)) rc = VINF_SUCCESS; else { - LogFunc(("Console::doGuestPropNotification: hrc=%Rhrc pCBData={.pcszName=%s, .pcszValue=%s, .pcszFlags=%s}\n", + LogFlow(("hRc=%Rhrc pCBData={.pcszName=%s, .pcszValue=%s, .pcszFlags=%s}\n", hrc, pCBData->pcszName, pCBData->pcszValue, pCBData->pcszFlags)); rc = Global::vboxStatusCodeFromCOM(hrc); } + if (fNotify) + fireGuestPropertyChangedEvent(pConsole->mEventSource, pConsole->getId().raw(), name.raw(), value.raw(), flags.raw()); return rc; } @@ -2038,7 +2059,7 @@ int vrc = RTThreadCreate(NULL, Console::powerDownThread, (void *) task.get(), 0, RTTHREADTYPE_MAIN_WORKER, 0, - "VMPowerDown"); + "VMPwrDwn"); if (RT_FAILURE(vrc)) { rc = setError(E_FAIL, "Could not create VMPowerDown thread (%Rrc)", vrc); @@ -2696,7 +2717,8 @@ /* create a task object early to ensure mpVM protection is successful */ std::auto_ptr task(new VMSaveTask(this, pProgress, - stateFilePath)); + stateFilePath, + lastMachineState)); rc = task->rc(); /* * If we fail here it means a PowerDown() call happened on another @@ -3307,7 +3329,7 @@ 0, RTTHREADTYPE_MAIN_WORKER, 0, - "ConsoleTakeSnap"); + "TakeSnap"); if (FAILED(vrc)) throw setError(E_FAIL, tr("Could not create VMTakeSnap thread (%Rrc)"), @@ -5329,6 +5351,7 @@ return E_INVALIDARG; if ((aFlags != NULL) && !VALID_PTR(aFlags)) return E_INVALIDARG; + bool fDelete = (!aValue || !aValue[0]); AutoCaller autoCaller(this); AssertComRCReturnRC(autoCaller.rc()); @@ -5352,7 +5375,7 @@ /* The + 1 is the null terminator */ parm[0].u.pointer.size = (uint32_t)Utf8Name.length() + 1; Utf8Str Utf8Value = aValue; - if (aValue != NULL) + if (!fDelete) { parm[1].type = VBOX_HGCM_SVC_PARM_PTR; parm[1].u.pointer.addr = (void*)Utf8Value.c_str(); @@ -5367,10 +5390,10 @@ /* The + 1 is the null terminator */ parm[2].u.pointer.size = (uint32_t)Utf8Flags.length() + 1; } - if ((aValue != NULL) && (aFlags != NULL)) + if (!fDelete && (aFlags != NULL)) vrc = m_pVMMDev->hgcmHostCall("VBoxGuestPropSvc", SET_PROP_HOST, 3, &parm[0]); - else if (aValue != NULL) + else if (!fDelete) vrc = m_pVMMDev->hgcmHostCall("VBoxGuestPropSvc", SET_PROP_VALUE_HOST, 2, &parm[0]); else @@ -6613,7 +6636,7 @@ int vrc = RTThreadCreate(NULL, Console::powerUpThread, (void *)task.get(), 0, - RTTHREADTYPE_MAIN_WORKER, 0, "VMPowerUp"); + RTTHREADTYPE_MAIN_WORKER, 0, "VMPwrUp"); if (RT_FAILURE(vrc)) throw setError(E_FAIL, "Could not create VMPowerUp thread (%Rrc)", vrc); @@ -7469,7 +7492,7 @@ int vrc = RTThreadCreate(NULL, Console::powerDownThread, (void *) task.get(), 0, RTTHREADTYPE_MAIN_WORKER, 0, - "VMPowerDown"); + "VMPwrDwn"); AssertMsgRCBreak(vrc, ("Could not create VMPowerDown thread (%Rrc)\n", vrc)); /* task is now owned by powerDownThread(), so release it */ @@ -7748,7 +7771,7 @@ alock.leave(); /** @todo just do everything here and only wrap the PDMR3Usb call. That'll offload some notification stuff from the EMT thread. */ - int vrc = VMR3ReqCallWait(ptrVM, VMCPUID_ANY, + int vrc = VMR3ReqCallWait(ptrVM, 0 /* idDstCpu (saved state, see #6232) */, (PFNRT)usbAttachCallback, 7, this, ptrVM.raw(), aHostDevice, uuid.raw(), fRemote, Address.c_str(), aMaskedIfs); @@ -7872,7 +7895,7 @@ alock.leave(); /** @todo just do everything here and only wrap the PDMR3Usb call. That'll offload some notification stuff from the EMT thread. */ - int vrc = VMR3ReqCallWait(ptrVM, VMCPUID_ANY, + int vrc = VMR3ReqCallWait(ptrVM, 0 /* idDstCpu (saved state, see #6232) */, (PFNRT)usbDetachCallback, 5, this, ptrVM.raw(), &aIt, (*aIt)->id().raw()); ComAssertRCRet(vrc, E_FAIL); @@ -9468,6 +9491,12 @@ } /* + * If we failed, reset the local machine state. + */ + if (FAILED(rc)) + that->setMachineStateLocally(task->mMachineStateBefore); + + /* * Finalize the requested save state procedure. In case of failure it will * reset the machine state to the state it had right before calling * mControl->BeginSavingState(). This must be the last thing because it diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Main/src-client/ConsoleVRDPServer.cpp virtualbox-4.1.44-dfsg/src/VBox/Main/src-client/ConsoleVRDPServer.cpp --- virtualbox-4.1.12-dfsg/src/VBox/Main/src-client/ConsoleVRDPServer.cpp 2012-04-02 13:28:55.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Main/src-client/ConsoleVRDPServer.cpp 2015-11-11 15:08:51.000000000 +0000 @@ -25,6 +25,9 @@ # include "ExtPackManagerImpl.h" #endif #include "VMMDev.h" +#ifdef VBOX_WITH_USB_CARDREADER +# include "UsbCardReader.h" +#endif #include "Global.h" #include "AutoCaller.h" @@ -1321,6 +1324,8 @@ mhServer = 0; mServerInterfaceVersion = 0; + mcInResize = 0; + m_fGuestWantsAbsolute = false; m_mousex = 0; m_mousey = 0; @@ -1364,6 +1369,8 @@ m_fInterfaceImage = false; memset(&m_interfaceImage, 0, sizeof (m_interfaceImage)); memset(&m_interfaceCallbacksImage, 0, sizeof (m_interfaceCallbacksImage)); + RT_ZERO(m_interfaceSCard); + RT_ZERO(m_interfaceCallbacksSCard); } ConsoleVRDPServer::~ConsoleVRDPServer() @@ -1574,6 +1581,29 @@ m_fInterfaceImage = true; } + /* Smartcard interface. */ + m_interfaceSCard.header.u64Version = 1; + m_interfaceSCard.header.u64Size = sizeof(m_interfaceSCard); + + m_interfaceCallbacksSCard.header.u64Version = 1; + m_interfaceCallbacksSCard.header.u64Size = sizeof(m_interfaceCallbacksSCard); + m_interfaceCallbacksSCard.VRDESCardCbNotify = VRDESCardCbNotify; + m_interfaceCallbacksSCard.VRDESCardCbResponse = VRDESCardCbResponse; + + vrc = mpEntryPoints->VRDEGetInterface(mhServer, + VRDE_SCARD_INTERFACE_NAME, + &m_interfaceSCard.header, + &m_interfaceCallbacksSCard.header, + this); + if (RT_SUCCESS(vrc)) + { + LogRel(("VRDE: [%s]\n", VRDE_SCARD_INTERFACE_NAME)); + } + else + { + RT_ZERO(m_interfaceSCard); + } + /* Since these interfaces are optional, it is always a success here. */ vrc = VINF_SUCCESS; } @@ -1946,6 +1976,62 @@ return VINF_SUCCESS; } +/* static */ DECLCALLBACK(int) ConsoleVRDPServer::VRDESCardCbNotify(void *pvContext, + uint32_t u32Id, + void *pvData, + uint32_t cbData) +{ +#ifdef VBOX_WITH_USB_CARDREADER + ConsoleVRDPServer *pThis = static_cast(pvContext); + UsbCardReader *pReader = pThis->mConsole->getUsbCardReader(); + return pReader->VRDENotify(u32Id, pvData, cbData); +#else + NOREF(pvContext); + NOREF(u32Id); + NOREF(pvData); + NOREF(cbData); + return VERR_NOT_SUPPORTED; +#endif +} + +/* static */ DECLCALLBACK(int) ConsoleVRDPServer::VRDESCardCbResponse(void *pvContext, + int rcRequest, + void *pvUser, + uint32_t u32Function, + void *pvData, + uint32_t cbData) +{ +#ifdef VBOX_WITH_USB_CARDREADER + ConsoleVRDPServer *pThis = static_cast(pvContext); + UsbCardReader *pReader = pThis->mConsole->getUsbCardReader(); + return pReader->VRDEResponse(rcRequest, pvUser, u32Function, pvData, cbData); +#else + NOREF(pvContext); + NOREF(rcRequest); + NOREF(pvUser); + NOREF(u32Function); + NOREF(pvData); + NOREF(cbData); + return VERR_NOT_SUPPORTED; +#endif +} + +int ConsoleVRDPServer::SCardRequest(void *pvUser, uint32_t u32Function, const void *pvData, uint32_t cbData) +{ + int rc = VINF_SUCCESS; + + if (mhServer && mpEntryPoints && m_interfaceSCard.VRDESCardRequest) + { + rc = m_interfaceSCard.VRDESCardRequest(mhServer, pvUser, u32Function, pvData, cbData); + } + else + { + rc = VERR_NOT_SUPPORTED; + } + + return rc; +} + void ConsoleVRDPServer::EnableConnections(void) { if (mpEntryPoints && mhServer) @@ -1985,6 +2071,7 @@ { Assert(VALID_PTR(this)); /** @todo r=bird: there are(/was) some odd cases where this buster was invalid on * linux. Just remove this when it's 100% sure that problem has been fixed. */ + if (mhServer) { HVRDESERVER hServer = mhServer; @@ -1992,6 +2079,23 @@ /* Reset the handle to avoid further calls to the server. */ mhServer = 0; + /* Workaround for VM process hangs on termination. + * + * Make sure that the server is not currently processing a resize. + * mhServer 0 will not allow to enter the server again. + * Wait until any current resize returns from the server. + */ + if (mcInResize) + { + LogRel(("VRDP: waiting for resize %d\n", mcInResize)); + + int i = 0; + while (mcInResize && ++i < 100) + { + RTThreadSleep(10); + } + } + if (mpEntryPoints && hServer) { mpEntryPoints->VRDEDestroy(hServer); @@ -2724,11 +2828,13 @@ } } -void ConsoleVRDPServer::SendResize(void) const +void ConsoleVRDPServer::SendResize(void) { if (mpEntryPoints && mhServer) { + ++mcInResize; mpEntryPoints->VRDEResize(mhServer); + --mcInResize; } } diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Main/src-client/GuestCtrlImplDir.cpp virtualbox-4.1.44-dfsg/src/VBox/Main/src-client/GuestCtrlImplDir.cpp --- virtualbox-4.1.12-dfsg/src/VBox/Main/src-client/GuestCtrlImplDir.cpp 2012-04-02 13:28:55.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Main/src-client/GuestCtrlImplDir.cpp 2015-11-11 15:08:51.000000000 +0000 @@ -133,6 +133,25 @@ if (SUCCEEDED(hr)) { hr = setErrorFromProgress(pProgress); + if (SUCCEEDED(hr)) + { + VBOXGUESTCTRL_PROCESS proc; + int rc = processGetStatus(uPID, &proc, + true /* Remove when terminated */); + if (RT_SUCCESS(rc)) + { + if ( proc.mStatus != ExecuteProcessStatus_TerminatedNormally + || proc.mExitCode != 0) + { + hr = setErrorNoLog(VBOX_E_IPRT_ERROR, + tr("Could not create directory \"%s\""), Utf8Str(aDirectory).c_str()); + } + } + else + hr = setErrorNoLog(VBOX_E_IPRT_ERROR, + tr("Unable to retrieve status for creating directory \"%s\""), + Utf8Str(aDirectory).c_str()); + } pProgress.setNull(); } } diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Main/src-client/HGCM.cpp virtualbox-4.1.44-dfsg/src/VBox/Main/src-client/HGCM.cpp --- virtualbox-4.1.12-dfsg/src/VBox/Main/src-client/HGCM.cpp 2012-04-02 13:28:55.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Main/src-client/HGCM.cpp 2015-11-11 15:08:51.000000000 +0000 @@ -789,12 +789,15 @@ LogFlowFunc(("name %s, lib %s\n", pszServiceName, pszServiceLibrary)); /* The maximum length of the thread name, allowed by the RT is 15. */ - char achThreadName[16]; + char szThreadName[16]; + if (!strncmp (pszServiceName, "VBoxShared", 10)) + RTStrPrintf (szThreadName, sizeof (szThreadName), "Sh%s", pszServiceName + 10); + else if (!strncmp (pszServiceName, "VBox", 4)) + RTStrCopy (szThreadName, sizeof (szThreadName), pszServiceName + 4); + else + RTStrCopy (szThreadName, sizeof (szThreadName), pszServiceName); - strncpy (achThreadName, pszServiceName, 15); - achThreadName[15] = 0; - - int rc = hgcmThreadCreate (&m_thread, achThreadName, hgcmServiceThread, this); + int rc = hgcmThreadCreate (&m_thread, szThreadName, hgcmServiceThread, this); if (RT_SUCCESS(rc)) { diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Main/src-client/SessionImpl.cpp virtualbox-4.1.44-dfsg/src/VBox/Main/src-client/SessionImpl.cpp --- virtualbox-4.1.12-dfsg/src/VBox/Main/src-client/SessionImpl.cpp 2012-04-02 13:28:55.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Main/src-client/SessionImpl.cpp 2015-11-11 15:08:51.000000000 +0000 @@ -840,6 +840,10 @@ AutoCaller autoCaller(this); AssertComRCReturn(autoCaller.rc(), autoCaller.rc()); + AutoReadLock alock(this COMMA_LOCKVAL_SRC_POS); + AssertReturn(mState == SessionState_Locked, VBOX_E_INVALID_VM_STATE); + AssertReturn(mType == SessionType_WriteLock, VBOX_E_INVALID_OBJECT_STATE); + mConsole->enableVMMStatistics(aEnable); return S_OK; diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Main/src-client/UsbCardReader.cpp virtualbox-4.1.44-dfsg/src/VBox/Main/src-client/UsbCardReader.cpp --- virtualbox-4.1.12-dfsg/src/VBox/Main/src-client/UsbCardReader.cpp 1970-01-01 00:00:00.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Main/src-client/UsbCardReader.cpp 2015-11-11 15:08:51.000000000 +0000 @@ -0,0 +1,1973 @@ +/* $Id: UsbCardReader.cpp $ */ + +/** @file + * UsbCardReader - Driver Interface to USB Smart Card Reader emulation. + */ + +/* + * Copyright (C) 2011-2012 Oracle Corporation + * + * This file is part of VirtualBox Open Source Edition (OSE), as + * available from http://www.virtualbox.org. This file is free software; + * you can redistribute it and/or modify it under the terms of the GNU + * General Public License (GPL) as published by the Free Software + * Foundation, in version 2 as it comes in the "COPYING" file of the + * VirtualBox OSE distribution. VirtualBox OSE is distributed in the + * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind. + */ + + +/******************************************************************************* +* Header Files * +*******************************************************************************/ +#define LOG_GROUP LOG_GROUP_USB_CARDREADER +#include "UsbCardReader.h" +#include "ConsoleImpl.h" +#include "ConsoleVRDPServer.h" + +#include +#include + +#include + +#define NIL_RTREQQUEUE ((RTREQQUEUE *)0) +#define RTReqQueueCallEx RTReqCallEx +#define RTReqQueueProcess RTReqProcess +#define RTReqQueueCall RTReqCall +#define RTReqQueueCreate RTReqCreateQueue +#define RTReqQueueDestroy RTReqDestroyQueue +#define RTReqRelease RTReqFree + + +/******************************************************************************* +* Structures and Typedefs * +*******************************************************************************/ +typedef struct USBCARDREADER USBCARDREADER; +typedef struct USBCARDREADER *PUSBCARDREADER; + +struct USBCARDREADER +{ + UsbCardReader *pUsbCardReader; + + PPDMDRVINS pDrvIns; + + PDMICARDREADERDOWN ICardReaderDown; + PPDMICARDREADERUP pICardReaderUp; + + /* Thread handling Cmd to card reader */ + PPDMTHREAD pThrCardReaderCmd; + /* Queue handling requests to cardreader */ + RTREQQUEUE *hReqQCardReaderCmd; +}; + + +/* + * Command queue's callbacks. + */ + +static DECLCALLBACK(void) drvCardReaderCmdStatusChange(PUSBCARDREADER pThis, + void *pvUser, + uint32_t u32Timeout, + PDMICARDREADER_READERSTATE *paReaderStats, + uint32_t cReaderStats) +{ + LogFlowFunc(("ENTER: pvUser:%p, u32Timeout:%d\n", + pvUser, u32Timeout)); + + UsbCardReader *pUsbCardReader = pThis->pUsbCardReader; + if (!pUsbCardReader) + { + pThis->pICardReaderUp->pfnCardReaderUpSetStatusChange(pThis->pICardReaderUp, + pvUser, VRDE_SCARD_E_NO_SMARTCARD, + paReaderStats, cReaderStats); + } + else + { + pUsbCardReader->GetStatusChange(pThis, pvUser, u32Timeout, + paReaderStats, cReaderStats); + } + + LogFlowFuncLeave(); +} + + +static DECLCALLBACK(void) drvCardReaderCmdEstablishContext(PUSBCARDREADER pThis) +{ + LogFlowFunc(("\n")); + + UsbCardReader *pUsbCardReader = pThis->pUsbCardReader; + if (!pUsbCardReader) + { + pThis->pICardReaderUp->pfnCardReaderUpEstablishContext(pThis->pICardReaderUp, + VRDE_SCARD_E_NO_SMARTCARD); + } + else + { + pUsbCardReader->EstablishContext(pThis); + } + + LogFlowFuncLeave(); +} + +static DECLCALLBACK(void) drvCardReaderCmdReleaseContext(PUSBCARDREADER pThis, + void *pvUser) +{ + LogFlowFunc(("ENTER: pvUser:%p\n", + pvUser)); + NOREF(pvUser); + + UsbCardReader *pUsbCardReader = pThis->pUsbCardReader; + if (!pUsbCardReader) + { + /* Do nothing. */ + } + else + { + pUsbCardReader->ReleaseContext(pThis); + } + + LogFlowFuncLeave(); +} + +static DECLCALLBACK(void) drvCardReaderCmdStatus(PUSBCARDREADER pThis, + void *pvUser) +{ + LogFlowFunc(("ENTER: pvUser:%p\n", + pvUser)); + + UsbCardReader *pUsbCardReader = pThis->pUsbCardReader; + if (!pUsbCardReader) + { + pThis->pICardReaderUp->pfnCardReaderUpStatus(pThis->pICardReaderUp, + pvUser, + VRDE_SCARD_E_NO_SMARTCARD, + /* pszReaderName */ NULL, + /* cchReaderName */ 0, + /* u32CardState */ 0, + /* u32Protocol */ 0, + /* pu8Atr */ 0, + /* cbAtr */ 0); + } + else + { + pUsbCardReader->Status(pThis, pvUser); + } + + LogFlowFuncLeave(); +} + +static DECLCALLBACK(void) drvCardReaderCmdConnect(PUSBCARDREADER pThis, + void *pvUser, + const char *pcszCardReaderName, + uint32_t u32ShareMode, + uint32_t u32PreferredProtocols) +{ + LogFlowFunc(("ENTER: pvUser:%p, pcszCardReaderName:%s, u32ShareMode:%RX32, u32PreferredProtocols:%RX32\n", + pvUser, pcszCardReaderName, u32ShareMode, u32PreferredProtocols)); + + UsbCardReader *pUsbCardReader = pThis->pUsbCardReader; + if (!pUsbCardReader) + { + pThis->pICardReaderUp->pfnCardReaderUpConnect(pThis->pICardReaderUp, + pvUser, + VRDE_SCARD_E_NO_SMARTCARD, + 0); + } + else + { + pUsbCardReader->Connect(pThis, pvUser, pcszCardReaderName, + u32ShareMode, u32PreferredProtocols); + } + + LogFlowFuncLeave(); +} + +static DECLCALLBACK(void) drvCardReaderCmdDisconnect(PUSBCARDREADER pThis, + void *pvUser, + uint32_t u32Disposition) +{ + LogFlowFunc(("ENTER: pvUser:%p, u32Disposition:%RX32\n", + pvUser, u32Disposition)); + + UsbCardReader *pUsbCardReader = pThis->pUsbCardReader; + if (!pUsbCardReader) + { + pThis->pICardReaderUp->pfnCardReaderUpDisconnect(pThis->pICardReaderUp, + pvUser, + VRDE_SCARD_E_NO_SMARTCARD); + } + else + { + pUsbCardReader->Disconnect(pThis, pvUser, u32Disposition); + } + + LogFlowFuncLeave(); +} + +static DECLCALLBACK(void) drvCardReaderCmdTransmit(PUSBCARDREADER pThis, + void *pvUser, + PDMICARDREADER_IO_REQUEST *pioSendRequest, + uint8_t *pu8SendBuffer, + uint32_t cbSendBuffer, + uint32_t cbRecvBuffer) +{ + LogFlowFunc(("ENTER: pvUser:%p, pioSendRequest:%p, pu8SendBuffer:%p, cbSendBuffer:%d, cbRecvBuffer:%d\n", + pvUser, pioSendRequest, pu8SendBuffer, cbSendBuffer, cbRecvBuffer)); + + UsbCardReader *pUsbCardReader = pThis->pUsbCardReader; + if (!pUsbCardReader) + { + pThis->pICardReaderUp->pfnCardReaderUpTransmit(pThis->pICardReaderUp, + pvUser, + VRDE_SCARD_E_NO_SMARTCARD, + /* pioRecvPci */ NULL, + /* pu8RecvBuffer */ NULL, + /* cbRecvBuffer*/ 0); + } + else + { + pUsbCardReader->Transmit(pThis, pvUser, pioSendRequest, + pu8SendBuffer, cbSendBuffer, cbRecvBuffer); + } + + /* Clean up buffers allocated by driver */ + RTMemFree(pioSendRequest); + RTMemFree(pu8SendBuffer); + + LogFlowFuncLeave(); +} + +static DECLCALLBACK(void) drvCardReaderCmdGetAttr(PUSBCARDREADER pThis, + void *pvUser, + uint32_t u32AttrId, + uint32_t cbAttrib) +{ + LogFlowFunc(("ENTER: pvUser:%p, u32AttrId:%RX32, cbAttrib:%d\n", + pvUser, u32AttrId, cbAttrib)); + + UsbCardReader *pUsbCardReader = pThis->pUsbCardReader; + if (!pUsbCardReader) + { + pThis->pICardReaderUp->pfnCardReaderUpGetAttrib(pThis->pICardReaderUp, + pvUser, + VRDE_SCARD_E_NO_SMARTCARD, + u32AttrId, + /* pvAttrib */ NULL, + /* cbAttrib */ 0); + } + else + { + pUsbCardReader->GetAttrib(pThis, pvUser, u32AttrId, cbAttrib); + } + + LogFlowFuncLeave(); +} + +static DECLCALLBACK(void) drvCardReaderCmdSetAttr(PUSBCARDREADER pThis, + void *pvUser, + uint32_t u32AttrId, + void *pvAttrib, + uint32_t cbAttrib) +{ + LogFlowFunc(("ENTER: pvUser:%p, u32AttrId:%RX32, pvAttrib:%p, cbAttrib:%d\n", + pvUser, u32AttrId, pvAttrib, cbAttrib)); + + UsbCardReader *pUsbCardReader = pThis->pUsbCardReader; + if (!pUsbCardReader) + { + pThis->pICardReaderUp->pfnCardReaderUpSetAttrib(pThis->pICardReaderUp, + pvUser, + VRDE_SCARD_E_NO_SMARTCARD, + u32AttrId); + } + else + { + pUsbCardReader->SetAttrib(pThis, pvUser, u32AttrId, (uint8_t *)pvAttrib, cbAttrib); + } + + /* Clean up buffers allocated by driver */ + RTMemFree(pvAttrib); + + LogFlowFuncLeave(); +} + +static DECLCALLBACK(void) drvCardReaderCmdControl(PUSBCARDREADER pThis, + void *pvUser, + uint32_t u32ControlCode, + void *pvInBuffer, + uint32_t cbInBuffer, + uint32_t cbOutBuffer) +{ + LogFlowFunc(("ENTER: pvUser:%p, u32ControlCode:%RX32, pvInBuffer:%p, cbInBuffer:%d, cbOutBuffer:%d\n", + pvUser, u32ControlCode, pvInBuffer, cbInBuffer, cbOutBuffer)); + + UsbCardReader *pUsbCardReader = pThis->pUsbCardReader; + if (!pUsbCardReader) + { + pThis->pICardReaderUp->pfnCardReaderUpControl(pThis->pICardReaderUp, + pvUser, + VRDE_SCARD_E_NO_SMARTCARD, + u32ControlCode, + /* pvOutBuffer */ NULL, + /* cbOutBuffer */ 0); + } + else + { + pUsbCardReader->Control(pThis, pvUser, u32ControlCode, + (uint8_t *)pvInBuffer, cbInBuffer, cbOutBuffer); + } + + /* Clean up buffers allocated by driver */ + RTMemFree(pvInBuffer); + + LogFlowFuncLeave(); +} + + +/* + * PDMICARDREADERDOWN - interface + */ + +static DECLCALLBACK(int) drvCardReaderDownConnect(PPDMICARDREADERDOWN pInterface, + void *pvUser, + const char *pcszCardReaderName, + uint32_t u32ShareMode, + uint32_t u32PreferredProtocols) +{ + AssertPtrReturn(pInterface, VERR_INVALID_PARAMETER); + LogFlowFunc(("ENTER: pcszCardReaderName:%s, pvUser:%p, u32ShareMode:%RX32, u32PreferredProtocols:%RX32\n", + pcszCardReaderName, pvUser, u32ShareMode, u32PreferredProtocols)); + PUSBCARDREADER pThis = RT_FROM_MEMBER(pInterface, USBCARDREADER, ICardReaderDown); + int rc = RTReqQueueCallEx(pThis->hReqQCardReaderCmd, NULL, 0, RTREQFLAGS_VOID | RTREQFLAGS_NO_WAIT, + (PFNRT)drvCardReaderCmdConnect, 5, + pThis, pvUser, pcszCardReaderName, u32ShareMode, u32PreferredProtocols); + AssertRC(rc); + LogFlowFunc(("LEAVE: %Rrc\n", rc)); + return rc; +} + +static DECLCALLBACK(int)drvCardReaderDownDisconnect(PPDMICARDREADERDOWN pInterface, + void *pvUser, + uint32_t u32Disposition) +{ + AssertPtrReturn(pInterface, VERR_INVALID_PARAMETER); + LogFlowFunc(("ENTER: pvUser:%p, u32Disposition:%RX32\n", + pvUser, u32Disposition)); + PUSBCARDREADER pThis = RT_FROM_MEMBER(pInterface, USBCARDREADER, ICardReaderDown); + int rc = RTReqQueueCallEx(pThis->hReqQCardReaderCmd, NULL, 0, RTREQFLAGS_VOID | RTREQFLAGS_NO_WAIT, + (PFNRT)drvCardReaderCmdDisconnect, 3, + pThis, pvUser, u32Disposition); + AssertRC(rc); + LogFlowFunc(("LEAVE: %Rrc\n", rc)); + return rc; +} + +static DECLCALLBACK(int) drvCardReaderDownEstablishContext(PPDMICARDREADERDOWN pInterface) +{ + AssertPtrReturn(pInterface, VERR_INVALID_PARAMETER); + LogFlowFunc(("ENTER:\n")); + PUSBCARDREADER pThis = RT_FROM_MEMBER(pInterface, USBCARDREADER, ICardReaderDown); + int rc = RTReqQueueCallEx(pThis->hReqQCardReaderCmd, NULL, 0, RTREQFLAGS_VOID | RTREQFLAGS_NO_WAIT, + (PFNRT)drvCardReaderCmdEstablishContext, 1, + pThis); + AssertRC(rc); + LogFlowFunc(("LEAVE: %Rrc\n", rc)); + return rc; +} + +static DECLCALLBACK(int) drvCardReaderDownReleaseContext(PPDMICARDREADERDOWN pInterface, + void *pvUser) +{ + AssertPtrReturn(pInterface, VERR_INVALID_PARAMETER); + LogFlowFunc(("ENTER: pvUser:%p\n", + pvUser)); + PUSBCARDREADER pThis = RT_FROM_MEMBER(pInterface, USBCARDREADER, ICardReaderDown); + /* @todo Device calls this when the driver already destroyed. */ + if (pThis->hReqQCardReaderCmd == NIL_RTREQQUEUE) + { + LogFlowFunc(("LEAVE: device already deleted.\n")); + return VINF_SUCCESS; + } + + int rc = RTReqQueueCallEx(pThis->hReqQCardReaderCmd, NULL, 0, RTREQFLAGS_VOID | RTREQFLAGS_NO_WAIT, + (PFNRT)drvCardReaderCmdReleaseContext, 2, + pThis, pvUser); + AssertRC(rc); + LogFlowFunc(("LEAVE: %Rrc\n", rc)); + return rc; +} + +static DECLCALLBACK(int)drvCardReaderDownStatus(PPDMICARDREADERDOWN pInterface, + void *pvUser, + uint32_t cchReaderName, + uint32_t cbAtrLen) +{ + AssertPtrReturn(pInterface, VERR_INVALID_PARAMETER); + LogFlowFunc(("ENTER: pvUser:%p, cchReaderName:%d, cbAtrLen:%d\n", + pvUser, cchReaderName, cbAtrLen)); + NOREF(cchReaderName); + NOREF(cbAtrLen); + PUSBCARDREADER pThis = RT_FROM_MEMBER(pInterface, USBCARDREADER, ICardReaderDown); + int rc = RTReqQueueCallEx(pThis->hReqQCardReaderCmd, NULL, 0, RTREQFLAGS_VOID | RTREQFLAGS_NO_WAIT, + (PFNRT)drvCardReaderCmdStatus, 2, + pThis, pvUser); + AssertRC(rc); + LogFlowFunc(("LEAVE: %Rrc\n", rc)); + return rc; +} + +static DECLCALLBACK(int) drvCardReaderDownGetStatusChange(PPDMICARDREADERDOWN pInterface, + void *pvUser, + uint32_t u32Timeout, + PDMICARDREADER_READERSTATE *paReaderStats, + uint32_t cReaderStats) +{ + AssertPtrReturn(pInterface, VERR_INVALID_PARAMETER); + LogFlowFunc(("ENTER: pvUser:%p, u32Timeout:%d, cReaderStats:%d\n", + pvUser, u32Timeout, cReaderStats)); + PUSBCARDREADER pThis = RT_FROM_MEMBER(pInterface, USBCARDREADER, ICardReaderDown); + int rc = RTReqQueueCallEx(pThis->hReqQCardReaderCmd, NULL, 0, RTREQFLAGS_VOID | RTREQFLAGS_NO_WAIT, + (PFNRT)drvCardReaderCmdStatusChange, 5, + pThis, pvUser, u32Timeout, paReaderStats, cReaderStats); + AssertRC(rc); + LogFlowFunc(("LEAVE: %Rrc\n", rc)); + return rc; +} + +static DECLCALLBACK(int) drvCardReaderDownBeginTransaction(PPDMICARDREADERDOWN pInterface, + void *pvUser) +{ + AssertPtrReturn(pInterface, VERR_INVALID_PARAMETER); + LogFlowFunc(("ENTER: pvUser:%p\n", + pvUser)); + PUSBCARDREADER pThis = RT_FROM_MEMBER(pInterface, USBCARDREADER, ICardReaderDown); + int rc = VERR_NOT_SUPPORTED; + AssertRC(rc); + LogFlowFunc(("LEAVE: %Rrc\n", rc)); + return rc; +} + +static DECLCALLBACK(int) drvCardReaderDownEndTransaction(PPDMICARDREADERDOWN pInterface, + void *pvUser, + uint32_t u32Disposition) +{ + AssertPtrReturn(pInterface, VERR_INVALID_PARAMETER); + LogFlowFunc(("ENTER: pvUser:%p, u32Disposition:%RX32\n", + pvUser, u32Disposition)); + PUSBCARDREADER pThis = RT_FROM_MEMBER(pInterface, USBCARDREADER, ICardReaderDown); + int rc = VERR_NOT_SUPPORTED; + AssertRC(rc); + LogFlowFunc(("LEAVE: %Rrc\n", rc)); + return rc; +} + +static DECLCALLBACK(int) drvCardReaderDownTransmit(PPDMICARDREADERDOWN pInterface, + void *pvUser, + const PDMICARDREADER_IO_REQUEST *pioSendRequest, + const uint8_t *pu8SendBuffer, + uint32_t cbSendBuffer, + uint32_t cbRecvBuffer) +{ + AssertPtrReturn(pInterface, VERR_INVALID_PARAMETER); + LogFlowFunc(("ENTER: pvUser:%p, pioSendRequest:%p, pu8SendBuffer:%p, cbSendBuffer:%d, cbRecvBuffer:%d\n", + pvUser, pioSendRequest, pu8SendBuffer, cbSendBuffer, cbRecvBuffer)); + PUSBCARDREADER pThis = RT_FROM_MEMBER(pInterface, USBCARDREADER, ICardReaderDown); + uint8_t *pu8SendBufferCopy = NULL; + if ( pu8SendBuffer + && cbSendBuffer) + { + pu8SendBufferCopy = (uint8_t *)RTMemDup(pu8SendBuffer, cbSendBuffer); + if (!pu8SendBufferCopy) + { + return VERR_NO_MEMORY; + } + } + PDMICARDREADER_IO_REQUEST *pioSendRequestCopy = NULL; + if (pioSendRequest) + { + pioSendRequestCopy = (PDMICARDREADER_IO_REQUEST *)RTMemDup(pioSendRequest, pioSendRequest->cbPciLength); + if (!pioSendRequestCopy) + { + RTMemFree(pu8SendBufferCopy); + return VERR_NO_MEMORY; + } + } + int rc = RTReqQueueCallEx(pThis->hReqQCardReaderCmd, NULL, 0,RTREQFLAGS_VOID | RTREQFLAGS_NO_WAIT, + (PFNRT)drvCardReaderCmdTransmit, 6, + pThis, pvUser, pioSendRequestCopy, pu8SendBufferCopy, cbSendBuffer, cbRecvBuffer); + AssertRC(rc); + LogFlowFunc(("LEAVE: %Rrc\n", rc)); + return rc; +} + +static DECLCALLBACK(int) drvCardReaderDownGetAttr(PPDMICARDREADERDOWN pInterface, + void *pvUser, + uint32_t u32AttribId, + uint32_t cbAttrib) +{ + AssertPtrReturn(pInterface, VERR_INVALID_PARAMETER); + LogFlowFunc(("ENTER: pvUser:%p, u32AttribId:%RX32, cbAttrib:%d\n", + pvUser, u32AttribId, cbAttrib)); + PUSBCARDREADER pThis = RT_FROM_MEMBER(pInterface, USBCARDREADER, ICardReaderDown); + int rc = RTReqQueueCallEx(pThis->hReqQCardReaderCmd, NULL, 0, RTREQFLAGS_VOID | RTREQFLAGS_NO_WAIT, + (PFNRT)drvCardReaderCmdGetAttr, 4, + pThis, pvUser, u32AttribId, cbAttrib); + AssertRC(rc); + LogFlowFunc(("LEAVE: %Rrc\n", rc)); + return rc; +} + +static DECLCALLBACK(int) drvCardReaderDownSetAttr(PPDMICARDREADERDOWN pInterface, + void *pvUser, + uint32_t u32AttribId, + const void *pvAttrib, + uint32_t cbAttrib) +{ + AssertPtrReturn(pInterface, VERR_INVALID_PARAMETER); + LogFlowFunc(("ENTER: pvUser:%p, u32AttribId:%RX32, pvAttrib:%p, cbAttrib:%d\n", + pvUser, u32AttribId, pvAttrib, cbAttrib)); + PUSBCARDREADER pThis = RT_FROM_MEMBER(pInterface, USBCARDREADER, ICardReaderDown); + void *pvAttribCopy = NULL; + if ( pvAttrib + && cbAttrib) + { + pvAttribCopy = RTMemDup(pvAttrib, cbAttrib); + AssertPtrReturn(pvAttribCopy, VERR_NO_MEMORY); + } + int rc = RTReqQueueCallEx(pThis->hReqQCardReaderCmd, NULL, 0, RTREQFLAGS_VOID | RTREQFLAGS_NO_WAIT, + (PFNRT)drvCardReaderCmdSetAttr, 5, + pThis, pvUser, u32AttribId, pvAttribCopy, cbAttrib); + AssertRC(rc); + LogFlowFunc(("LEAVE: %Rrc\n", rc)); + return rc; +} + +static DECLCALLBACK(int) drvCardReaderDownControl(PPDMICARDREADERDOWN pInterface, + void *pvUser, + uint32_t u32ControlCode, + const void *pvInBuffer, + uint32_t cbInBuffer, + uint32_t cbOutBuffer) +{ + AssertPtrReturn(pInterface, VERR_INVALID_PARAMETER); + LogFlowFunc(("ENTER: pvUser:%p, u32ControlCode:%RX32 pvInBuffer:%p, cbInBuffer:%d, cbOutBuffer:%d\n", + pvUser, u32ControlCode, pvInBuffer, cbInBuffer, cbOutBuffer)); + PUSBCARDREADER pThis = RT_FROM_MEMBER(pInterface, USBCARDREADER, ICardReaderDown); + void *pvInBufferCopy = NULL; + if ( pvInBuffer + && cbInBuffer) + { + pvInBufferCopy = RTMemDup(pvInBuffer, cbInBuffer); + AssertPtrReturn(pvInBufferCopy, VERR_NO_MEMORY); + } + int rc = RTReqQueueCallEx(pThis->hReqQCardReaderCmd, NULL, 0, RTREQFLAGS_VOID | RTREQFLAGS_NO_WAIT, + (PFNRT)drvCardReaderCmdControl, 6, + pThis, pvUser, u32ControlCode, pvInBufferCopy, cbInBuffer, cbOutBuffer); + AssertRC(rc); + LogFlowFunc(("LEAVE: %Rrc\n", rc)); + return rc; +} + + +/* + * Cardreader driver thread routines + */ +static DECLCALLBACK(int) drvCardReaderThreadCmd(PPDMDRVINS pDrvIns, PPDMTHREAD pThread) +{ + int rc = VINF_SUCCESS; + PUSBCARDREADER pThis = PDMINS_2_DATA(pDrvIns, PUSBCARDREADER); + + LogFlowFunc(("ENTER: pDrvIns:%d, state %d\n", pDrvIns->iInstance, pThread->enmState)); + + if (pThread->enmState == PDMTHREADSTATE_INITIALIZING) + { + LogFlowFunc(("LEAVE: INITIALIZING: VINF_SUCCESS\n")); + return VINF_SUCCESS; + } + + while (pThread->enmState == PDMTHREADSTATE_RUNNING) + { + rc = RTReqQueueProcess(pThis->hReqQCardReaderCmd, RT_INDEFINITE_WAIT); + + AssertMsg(rc == VWRN_STATE_CHANGED, + ("Left RTReqProcess and error code is not VWRN_STATE_CHANGED rc=%Rrc\n", + rc)); + } + + LogFlowFunc(("LEAVE: %Rrc\n", rc)); + return rc; +} + +static int drvCardReaderWakeupFunc(PUSBCARDREADER pThis) +{ + NOREF(pThis); + /* Returning a VINF_* will cause RTReqQueueProcess return. */ + return VWRN_STATE_CHANGED; +} + +static DECLCALLBACK(int) drvCardReaderThreadCmdWakeup(PPDMDRVINS pDrvIns, PPDMTHREAD pThread) +{ + LogFlowFunc(("ENTER: pDrvIns:%i\n", pDrvIns->iInstance)); + + PUSBCARDREADER pThis = PDMINS_2_DATA(pDrvIns, PUSBCARDREADER); + + AssertReturn(pThis->hReqQCardReaderCmd != NIL_RTREQQUEUE, VERR_INVALID_STATE); + + PRTREQ pReq; + int rc = RTReqQueueCall(pThis->hReqQCardReaderCmd, &pReq, 10000, (PFNRT)drvCardReaderWakeupFunc, 1, pThis); + AssertMsgRC(rc, ("Inserting request into queue failed rc=%Rrc\n")); + + if (RT_SUCCESS(rc)) + RTReqRelease(pReq); + /* @todo handle VERR_TIMEOUT */ + + return rc; +} + + +/* + * USB Card reader driver implementation. + */ + +UsbCardReader::UsbCardReader(Console *console) + : + mpDrv(NULL), + mParent(console), + m_pRemote(NULL) +{ + LogFlowFunc(("\n")); +} + +UsbCardReader::~UsbCardReader() +{ + LogFlowFunc(("mpDrv %p\n", mpDrv)); + if (mpDrv) + { + mpDrv->pUsbCardReader = NULL; + mpDrv = NULL; + } +} + +typedef struct UCRREMOTEREADER +{ + bool fAvailable; + char szReaderName[1024]; + + bool fHandle; + VRDESCARDHANDLE hCard; +} UCRREMOTEREADER; + +struct UCRREMOTE +{ + UsbCardReader *pUsbCardReader; + + /* The remote identifiers. */ + uint32_t u32ClientId; + uint32_t u32DeviceId; + + bool fContext; + VRDESCARDCONTEXT context; + + /* Possible a few readers. Currently only one. */ + UCRREMOTEREADER reader; +}; + +typedef struct UCRREQCTX +{ + UCRREMOTE *pRemote; + uint32_t u32Function; + void *pvUser; + union + { + struct + { + PDMICARDREADER_READERSTATE *paReaderStats; + uint32_t cReaderStats; + } GetStatusChange; + struct + { + uint32_t u32AttrId; + } GetAttrib; + struct + { + uint32_t u32AttrId; + } SetAttrib; + struct + { + uint32_t u32ControlCode; + } Control; + } u; +} UCRREQCTX; + +int UsbCardReader::vrdeSCardRequest(void *pvUser, uint32_t u32Function, const void *pvData, uint32_t cbData) +{ + int rc = mParent->consoleVRDPServer()->SCardRequest(pvUser, u32Function, pvData, cbData); + LogFlowFunc(("%d %Rrc\n", u32Function, rc)); + return rc; +} + +int UsbCardReader::VRDENotify(uint32_t u32Id, void *pvData, uint32_t cbData) +{ + int rc = VINF_SUCCESS; + + switch (u32Id) + { + case VRDE_SCARD_NOTIFY_ATTACH: + { + VRDESCARDNOTIFYATTACH *p = (VRDESCARDNOTIFYATTACH *)pvData; + Assert(cbData == sizeof(VRDESCARDNOTIFYATTACH)); + + LogFlowFunc(("[%d,%d]\n", p->u32ClientId, p->u32DeviceId)); + + /* Add this remote instance, which allow access to card readers attached to the client, to the list. + * @todo currently only one device is allowed. + */ + if (m_pRemote) + { + AssertFailed(); + rc = VERR_NOT_SUPPORTED; + break; + } + UCRREMOTE *pRemote = (UCRREMOTE *)RTMemAllocZ(sizeof(UCRREMOTE)); + if (pRemote == NULL) + { + rc = VERR_NO_MEMORY; + break; + } + + pRemote->pUsbCardReader = this; + pRemote->u32ClientId = p->u32ClientId; + pRemote->u32DeviceId = p->u32DeviceId; + + m_pRemote = pRemote; + + /* Try to establish a context. */ + VRDESCARDESTABLISHCONTEXTREQ req; + req.u32ClientId = m_pRemote->u32ClientId; + req.u32DeviceId = m_pRemote->u32DeviceId; + + rc = vrdeSCardRequest(m_pRemote, VRDE_SCARD_FN_ESTABLISHCONTEXT, &req, sizeof(req)); + + LogFlowFunc(("sent ESTABLISHCONTEXT\n")); + } break; + + case VRDE_SCARD_NOTIFY_DETACH: + { + VRDESCARDNOTIFYDETACH *p = (VRDESCARDNOTIFYDETACH *)pvData; + Assert(cbData == sizeof(VRDESCARDNOTIFYDETACH)); + + /* @todo Just free. There should be no pending requests, because VRDP cancels them. */ + RTMemFree(m_pRemote); + m_pRemote = NULL; + } break; + + default: + rc = VERR_INVALID_PARAMETER; + AssertFailed(); + break; + } + + return rc; +} + +int UsbCardReader::VRDEResponse(int rcRequest, void *pvUser, uint32_t u32Function, void *pvData, uint32_t cbData) +{ + int rc = VINF_SUCCESS; + + LogFlowFunc(("%Rrc %p %u %p %u\n", + rcRequest, pvUser, u32Function, pvData, cbData)); + + switch (u32Function) + { + case VRDE_SCARD_FN_ESTABLISHCONTEXT: + { + Assert(cbData == sizeof(VRDESCARDESTABLISHCONTEXTRSP) || RT_FAILURE(rcRequest)); + VRDESCARDESTABLISHCONTEXTRSP *pRsp = (VRDESCARDESTABLISHCONTEXTRSP *)pvData; + UCRREMOTE *pRemote = (UCRREMOTE *)pvUser; + + /* Check if the context was created. */ + Assert(!pRemote->fContext); + if ( RT_SUCCESS(rcRequest) + && pRsp->u32ReturnCode == VRDE_SCARD_S_SUCCESS) + { + pRemote->fContext = true; + pRemote->context = pRsp->Context; + + LogFlowFunc(("ESTABLISHCONTEXT success\n")); + + /* Now list readers attached to the remote client. */ + VRDESCARDLISTREADERSREQ req; + req.Context = pRemote->context; + + rc = vrdeSCardRequest(pRemote, VRDE_SCARD_FN_LISTREADERS, &req, sizeof(req)); + } + } break; + + case VRDE_SCARD_FN_LISTREADERS: + { + Assert(cbData == sizeof(VRDESCARDLISTREADERSRSP) || RT_FAILURE(rcRequest)); + VRDESCARDLISTREADERSRSP *pRsp = (VRDESCARDLISTREADERSRSP *)pvData; + UCRREMOTE *pRemote = (UCRREMOTE *)pvUser; + + Assert(pRemote->fContext); + if ( RT_SUCCESS(rcRequest) + && pRsp->u32ReturnCode == VRDE_SCARD_S_SUCCESS + && pRemote->fContext) + { + LogFlowFunc(("LISTREADERS: cReaders %d\n", + pRsp->cReaders)); + + uint32_t i; + for (i = 0; i < pRsp->cReaders; i++) + { + LogFlowFunc(("LISTREADERS: [%d] [%s]\n", + i, pRsp->apszNames[i])); + + /* @todo only the first reader is supported. */ + if (i != 0) + { + continue; + } + + RTStrCopy(pRemote->reader.szReaderName, sizeof(pRemote->reader.szReaderName), pRsp->apszNames[i]); + pRemote->reader.fHandle = false; + pRemote->reader.fAvailable = true; + } + } + } break; + + case VRDE_SCARD_FN_RELEASECONTEXT: + { + Assert(cbData == sizeof(VRDESCARDRELEASECONTEXTRSP) || RT_FAILURE(rcRequest)); + VRDESCARDRELEASECONTEXTRSP *pRsp = (VRDESCARDRELEASECONTEXTRSP *)pvData; + UCRREQCTX *pCtx = (UCRREQCTX *)pvUser; + + Assert(pCtx->u32Function == u32Function); + + LogFlowFunc(("RELEASECONTEXT completed\n")); + + /* No notification is expected here by the caller. */ + Assert(!m_pRemote->fContext); + } break; + + case VRDE_SCARD_FN_GETSTATUSCHANGE: + { + Assert(cbData == sizeof(VRDESCARDGETSTATUSCHANGERSP) || RT_FAILURE(rcRequest)); + VRDESCARDGETSTATUSCHANGERSP *pRsp = (VRDESCARDGETSTATUSCHANGERSP *)pvData; + UCRREQCTX *pCtx = (UCRREQCTX *)pvUser; + + Assert(pCtx->u32Function == u32Function); + + LogFlowFunc(("GETSTATUSCHANGE\n")); + + uint32_t rcCard; + if (RT_FAILURE(rcRequest)) + { + rcCard = VRDE_SCARD_E_NO_SMARTCARD; + } + else + { + rcCard = pRsp->u32ReturnCode; + + if (pRsp->u32ReturnCode == VRDE_SCARD_S_SUCCESS) + { + uint32_t i; + for (i = 0; i < pRsp->cReaders; i++) + { + LogFlowFunc(("GETSTATUSCHANGE: [%d] %RX32\n", + i, pRsp->aReaderStates[i].u32EventState)); + + /* @todo only the first reader is supported. */ + if (i != 0) + { + continue; + } + + if (i >= pCtx->u.GetStatusChange.cReaderStats) + { + continue; + } + + pCtx->u.GetStatusChange.paReaderStats[i].u32EventState = pRsp->aReaderStates[i].u32EventState; + pCtx->u.GetStatusChange.paReaderStats[i].cbAtr = pRsp->aReaderStates[i].u32AtrLength > 36? + 36: + pRsp->aReaderStates[i].u32AtrLength; + memcpy(pCtx->u.GetStatusChange.paReaderStats[i].au8Atr, + pRsp->aReaderStates[i].au8Atr, + pCtx->u.GetStatusChange.paReaderStats[i].cbAtr); + } + } + } + + mpDrv->pICardReaderUp->pfnCardReaderUpSetStatusChange(mpDrv->pICardReaderUp, + pCtx->pvUser, + rcCard, + pCtx->u.GetStatusChange.paReaderStats, + pCtx->u.GetStatusChange.cReaderStats); + + RTMemFree(pCtx); + } break; + + case VRDE_SCARD_FN_CANCEL: + { + Assert(cbData == sizeof(VRDESCARDCANCELRSP) || RT_FAILURE(rcRequest)); + VRDESCARDCANCELRSP *pRsp = (VRDESCARDCANCELRSP *)pvData; + UCRREQCTX *pCtx = (UCRREQCTX *)pvUser; + + Assert(pCtx->u32Function == u32Function); + + LogFlowFunc(("CANCEL\n")); + } break; + + case VRDE_SCARD_FN_CONNECT: + { + Assert(cbData == sizeof(VRDESCARDCONNECTRSP) || RT_FAILURE(rcRequest)); + VRDESCARDCONNECTRSP *pRsp = (VRDESCARDCONNECTRSP *)pvData; + UCRREQCTX *pCtx = (UCRREQCTX *)pvUser; + + Assert(pCtx->u32Function == u32Function); + + LogFlowFunc(("CONNECT\n")); + + uint32_t u32ActiveProtocol = 0; + uint32_t rcCard; + + if (RT_FAILURE(rcRequest)) + { + rcCard = VRDE_SCARD_E_NO_SMARTCARD; + } + else + { + rcCard = pRsp->u32ReturnCode; + + if (pRsp->u32ReturnCode == VRDE_SCARD_S_SUCCESS) + { + u32ActiveProtocol = pRsp->u32ActiveProtocol; + + Assert(!m_pRemote->reader.fHandle); + m_pRemote->reader.hCard = pRsp->hCard; + m_pRemote->reader.fHandle = true; + } + } + + mpDrv->pICardReaderUp->pfnCardReaderUpConnect(mpDrv->pICardReaderUp, + pCtx->pvUser, + rcCard, + u32ActiveProtocol); + + RTMemFree(pCtx); + } break; + + case VRDE_SCARD_FN_RECONNECT: + { + Assert(cbData == sizeof(VRDESCARDRECONNECTRSP) || RT_FAILURE(rcRequest)); + VRDESCARDRECONNECTRSP *pRsp = (VRDESCARDRECONNECTRSP *)pvData; + UCRREQCTX *pCtx = (UCRREQCTX *)pvUser; + + Assert(pCtx->u32Function == u32Function); + + LogFlowFunc(("RECONNECT\n")); + } break; + + case VRDE_SCARD_FN_DISCONNECT: + { + Assert(cbData == sizeof(VRDESCARDDISCONNECTRSP) || RT_FAILURE(rcRequest)); + VRDESCARDDISCONNECTRSP *pRsp = (VRDESCARDDISCONNECTRSP *)pvData; + UCRREQCTX *pCtx = (UCRREQCTX *)pvUser; + + Assert(pCtx->u32Function == u32Function); + + LogFlowFunc(("DISCONNECT\n")); + + Assert(!pCtx->pRemote->reader.fHandle); + + uint32_t rcCard; + + if (RT_FAILURE(rcRequest)) + { + rcCard = VRDE_SCARD_E_NO_SMARTCARD; + } + else + { + rcCard = pRsp->u32ReturnCode; + } + + mpDrv->pICardReaderUp->pfnCardReaderUpDisconnect(mpDrv->pICardReaderUp, + pCtx->pvUser, + rcCard); + + RTMemFree(pCtx); + } break; + + case VRDE_SCARD_FN_BEGINTRANSACTION: + { + Assert(cbData == sizeof(VRDESCARDBEGINTRANSACTIONRSP) || RT_FAILURE(rcRequest)); + VRDESCARDBEGINTRANSACTIONRSP *pRsp = (VRDESCARDBEGINTRANSACTIONRSP *)pvData; + UCRREQCTX *pCtx = (UCRREQCTX *)pvUser; + + Assert(pCtx->u32Function == u32Function); + + LogFlowFunc(("BEGINTRANSACTION\n")); + } break; + + case VRDE_SCARD_FN_ENDTRANSACTION: + { + Assert(cbData == sizeof(VRDESCARDENDTRANSACTIONRSP) || RT_FAILURE(rcRequest)); + VRDESCARDENDTRANSACTIONRSP *pRsp = (VRDESCARDENDTRANSACTIONRSP *)pvData; + UCRREQCTX *pCtx = (UCRREQCTX *)pvUser; + + Assert(pCtx->u32Function == u32Function); + + LogFlowFunc(("ENDTRANSACTION\n")); + } break; + + case VRDE_SCARD_FN_STATE: + { + Assert(cbData == sizeof(VRDESCARDSTATERSP) || RT_FAILURE(rcRequest)); + VRDESCARDSTATERSP *pRsp = (VRDESCARDSTATERSP *)pvData; + UCRREQCTX *pCtx = (UCRREQCTX *)pvUser; + + Assert(pCtx->u32Function == u32Function); + + LogFlowFunc(("STATE\n")); + } break; + + case VRDE_SCARD_FN_STATUS: + { + Assert(cbData == sizeof(VRDESCARDSTATUSRSP) || RT_FAILURE(rcRequest)); + VRDESCARDSTATUSRSP *pRsp = (VRDESCARDSTATUSRSP *)pvData; + UCRREQCTX *pCtx = (UCRREQCTX *)pvUser; + + Assert(pCtx->u32Function == u32Function); + + LogFlowFunc(("STATUS\n")); + + char *pszReaderName = NULL; + uint32_t cchReaderName = 0; + uint32_t u32CardState = 0; + uint32_t u32Protocol = 0; + uint32_t u32AtrLength = 0; + uint8_t *pbAtr = NULL; + + uint32_t rcCard; + + if (RT_FAILURE(rcRequest)) + { + rcCard = VRDE_SCARD_E_NO_SMARTCARD; + } + else + { + rcCard = pRsp->u32ReturnCode; + + if (pRsp->u32ReturnCode == VRDE_SCARD_S_SUCCESS) + { + pszReaderName = pRsp->szReader; + cchReaderName = strlen(pRsp->szReader) + 1; + u32CardState = pRsp->u32State; + u32Protocol = pRsp->u32Protocol; + u32AtrLength = pRsp->u32AtrLength; + pbAtr = &pRsp->au8Atr[0]; + } + } + + mpDrv->pICardReaderUp->pfnCardReaderUpStatus(mpDrv->pICardReaderUp, + pCtx->pvUser, + rcCard, + pszReaderName, + cchReaderName, + u32CardState, + u32Protocol, + pbAtr, + u32AtrLength); + + RTMemFree(pCtx); + } break; + + case VRDE_SCARD_FN_TRANSMIT: + { + Assert(cbData == sizeof(VRDESCARDTRANSMITRSP) || RT_FAILURE(rcRequest)); + VRDESCARDTRANSMITRSP *pRsp = (VRDESCARDTRANSMITRSP *)pvData; + UCRREQCTX *pCtx = (UCRREQCTX *)pvUser; + + Assert(pCtx->u32Function == u32Function); + + LogFlowFunc(("TRANSMIT\n")); + + PDMICARDREADER_IO_REQUEST *pioRecvPci = NULL; + uint8_t *pu8RecvBuffer = NULL; + uint32_t cbRecvBuffer = 0; + + uint32_t rcCard; + + if (RT_FAILURE(rcRequest)) + { + rcCard = VRDE_SCARD_E_NO_SMARTCARD; + } + else + { + rcCard = pRsp->u32ReturnCode; + + if (pRsp->u32ReturnCode == VRDE_SCARD_S_SUCCESS) + { + pu8RecvBuffer = pRsp->pu8RecvBuffer; + cbRecvBuffer = pRsp->u32RecvLength; + /* @todo pioRecvPci */ + } + } + + mpDrv->pICardReaderUp->pfnCardReaderUpTransmit(mpDrv->pICardReaderUp, + pCtx->pvUser, + rcCard, + pioRecvPci, + pu8RecvBuffer, + cbRecvBuffer); + + RTMemFree(pioRecvPci); + + RTMemFree(pCtx); + } break; + + case VRDE_SCARD_FN_CONTROL: + { + Assert(cbData == sizeof(VRDESCARDCONTROLRSP) || RT_FAILURE(rcRequest)); + VRDESCARDCONTROLRSP *pRsp = (VRDESCARDCONTROLRSP *)pvData; + UCRREQCTX *pCtx = (UCRREQCTX *)pvUser; + + Assert(pCtx->u32Function == u32Function); + + LogFlowFunc(("CONTROL\n")); + + uint8_t *pu8OutBuffer = NULL; + uint32_t cbOutBuffer = 0; + + uint32_t rcCard; + + if (RT_FAILURE(rcRequest)) + { + rcCard = VRDE_SCARD_E_NO_SMARTCARD; + } + else + { + rcCard = pRsp->u32ReturnCode; + + if (pRsp->u32ReturnCode == VRDE_SCARD_S_SUCCESS) + { + pu8OutBuffer = pRsp->pu8OutBuffer; + cbOutBuffer = pRsp->u32OutBufferSize; + } + } + + mpDrv->pICardReaderUp->pfnCardReaderUpControl(mpDrv->pICardReaderUp, + pCtx->pvUser, + rcCard, + pCtx->u.Control.u32ControlCode, + pu8OutBuffer, + cbOutBuffer); + + RTMemFree(pCtx); + } break; + + case VRDE_SCARD_FN_GETATTRIB: + { + Assert(cbData == sizeof(VRDESCARDGETATTRIBRSP) || RT_FAILURE(rcRequest)); + VRDESCARDGETATTRIBRSP *pRsp = (VRDESCARDGETATTRIBRSP *)pvData; + UCRREQCTX *pCtx = (UCRREQCTX *)pvUser; + + Assert(pCtx->u32Function == u32Function); + + LogFlowFunc(("GETATTRIB\n")); + + uint8_t *pu8Attrib = NULL; + uint32_t cbAttrib = 0; + + uint32_t rcCard; + + if (RT_FAILURE(rcRequest)) + { + rcCard = VRDE_SCARD_E_NO_SMARTCARD; + } + else + { + rcCard = pRsp->u32ReturnCode; + + if (pRsp->u32ReturnCode == VRDE_SCARD_S_SUCCESS) + { + pu8Attrib = pRsp->pu8Attr; + cbAttrib = pRsp->u32AttrLength; + } + } + + mpDrv->pICardReaderUp->pfnCardReaderUpGetAttrib(mpDrv->pICardReaderUp, + pCtx->pvUser, + rcCard, + pCtx->u.GetAttrib.u32AttrId, + pu8Attrib, + cbAttrib); + + RTMemFree(pCtx); + } break; + + case VRDE_SCARD_FN_SETATTRIB: + { + Assert(cbData == sizeof(VRDESCARDSETATTRIBRSP) || RT_FAILURE(rcRequest)); + VRDESCARDSETATTRIBRSP *pRsp = (VRDESCARDSETATTRIBRSP *)pvData; + UCRREQCTX *pCtx = (UCRREQCTX *)pvUser; + + Assert(pCtx->u32Function == u32Function); + + LogFlowFunc(("SETATTRIB\n")); + + uint32_t rcCard; + + if (RT_FAILURE(rcRequest)) + { + rcCard = VRDE_SCARD_E_NO_SMARTCARD; + } + else + { + rcCard = pRsp->u32ReturnCode; + } + + mpDrv->pICardReaderUp->pfnCardReaderUpSetAttrib(mpDrv->pICardReaderUp, + pCtx->pvUser, + rcCard, + pCtx->u.SetAttrib.u32AttrId); + + RTMemFree(pCtx); + } break; + + default: + AssertFailed(); + rc = VERR_INVALID_PARAMETER; + break; + } + + return rc; +} + +int UsbCardReader::EstablishContext(struct USBCARDREADER *pDrv) +{ + AssertReturn(pDrv == mpDrv, VERR_NOT_SUPPORTED); + + /* The context here is a not a real device context. + * The device can be detached at the moment, for example the VRDP client did not connect yet. + */ + + return mpDrv->pICardReaderUp->pfnCardReaderUpEstablishContext(mpDrv->pICardReaderUp, + VRDE_SCARD_S_SUCCESS); +} + +int UsbCardReader::ReleaseContext(struct USBCARDREADER *pDrv) +{ + AssertReturn(pDrv == mpDrv, VERR_NOT_SUPPORTED); + + int rc = VINF_SUCCESS; + + if ( !m_pRemote + || !m_pRemote->fContext) + { + /* Do nothing. */ + } + else + { + UCRREQCTX *pCtx = (UCRREQCTX *)RTMemAlloc(sizeof(UCRREQCTX)); + if (!pCtx) + { + /* Do nothing. */ + } + else + { + pCtx->pRemote = m_pRemote; + pCtx->u32Function = VRDE_SCARD_FN_RELEASECONTEXT; + pCtx->pvUser = NULL; + + VRDESCARDRELEASECONTEXTREQ req; + req.Context = m_pRemote->context; + + rc = vrdeSCardRequest(pCtx, VRDE_SCARD_FN_RELEASECONTEXT, &req, sizeof(req)); + + if (RT_FAILURE(rc)) + { + RTMemFree(pCtx); + } + else + { + m_pRemote->fContext = false; + } + } + } + + return rc; +} + +int UsbCardReader::GetStatusChange(struct USBCARDREADER *pDrv, + void *pvUser, + uint32_t u32Timeout, + PDMICARDREADER_READERSTATE *paReaderStats, + uint32_t cReaderStats) +{ + AssertReturn(pDrv == mpDrv, VERR_NOT_SUPPORTED); + + int rc = VINF_SUCCESS; + + if ( !m_pRemote + || !m_pRemote->fContext + || !m_pRemote->reader.fAvailable) + { + rc = mpDrv->pICardReaderUp->pfnCardReaderUpSetStatusChange(mpDrv->pICardReaderUp, + pvUser, + VRDE_SCARD_E_NO_SMARTCARD, + paReaderStats, + cReaderStats); + } + else + { + UCRREQCTX *pCtx = (UCRREQCTX *)RTMemAlloc(sizeof(UCRREQCTX)); + if (!pCtx) + { + rc = mpDrv->pICardReaderUp->pfnCardReaderUpSetStatusChange(mpDrv->pICardReaderUp, + pvUser, + VRDE_SCARD_E_NO_MEMORY, + paReaderStats, + cReaderStats); + } + else + { + pCtx->pRemote = m_pRemote; + pCtx->u32Function = VRDE_SCARD_FN_GETSTATUSCHANGE; + pCtx->pvUser = pvUser; + pCtx->u.GetStatusChange.paReaderStats = paReaderStats; + pCtx->u.GetStatusChange.cReaderStats = cReaderStats; + + VRDESCARDGETSTATUSCHANGEREQ req; + req.Context = m_pRemote->context; + req.u32Timeout = u32Timeout; + req.cReaders = 1; + req.aReaderStates[0].pszReader = &m_pRemote->reader.szReaderName[0]; + req.aReaderStates[0].u32CurrentState = paReaderStats[0].u32CurrentState; + + rc = vrdeSCardRequest(pCtx, VRDE_SCARD_FN_GETSTATUSCHANGE, &req, sizeof(req)); + + if (RT_FAILURE(rc)) + { + RTMemFree(pCtx); + } + } + } + + return rc; +} + +int UsbCardReader::Connect(struct USBCARDREADER *pDrv, + void *pvUser, + const char *pszReaderName, + uint32_t u32ShareMode, + uint32_t u32PreferredProtocols) +{ + AssertReturn(pDrv == mpDrv, VERR_NOT_SUPPORTED); + + int rc = VINF_SUCCESS; + + if ( !m_pRemote + || !m_pRemote->fContext + || !m_pRemote->reader.fAvailable) + { + rc = mpDrv->pICardReaderUp->pfnCardReaderUpConnect(mpDrv->pICardReaderUp, + pvUser, + VRDE_SCARD_E_NO_SMARTCARD, + VRDE_SCARD_PROTOCOL_T0); + } + else + { + UCRREQCTX *pCtx = (UCRREQCTX *)RTMemAlloc(sizeof(UCRREQCTX)); + if (!pCtx) + { + rc = mpDrv->pICardReaderUp->pfnCardReaderUpConnect(mpDrv->pICardReaderUp, + pvUser, + VRDE_SCARD_E_NO_MEMORY, + VRDE_SCARD_PROTOCOL_T0); + } + else + { + pCtx->pRemote = m_pRemote; + pCtx->u32Function = VRDE_SCARD_FN_CONNECT; + pCtx->pvUser = pvUser; + + VRDESCARDCONNECTREQ req; + req.Context = m_pRemote->context; + req.pszReader = &m_pRemote->reader.szReaderName[0]; + req.u32ShareMode = u32ShareMode; + req.u32PreferredProtocols = u32PreferredProtocols; + + rc = vrdeSCardRequest(pCtx, VRDE_SCARD_FN_CONNECT, &req, sizeof(req)); + + if (RT_FAILURE(rc)) + { + RTMemFree(pCtx); + } + } + } + + return rc; +} + +int UsbCardReader::Disconnect(struct USBCARDREADER *pDrv, + void *pvUser, + uint32_t u32Mode) +{ + AssertReturn(pDrv == mpDrv, VERR_NOT_SUPPORTED); + + int rc = VINF_SUCCESS; + + if ( !m_pRemote + || !m_pRemote->fContext + || !m_pRemote->reader.fAvailable + || !m_pRemote->reader.fHandle) + { + rc = mpDrv->pICardReaderUp->pfnCardReaderUpDisconnect(mpDrv->pICardReaderUp, + pvUser, + VRDE_SCARD_E_NO_SMARTCARD); + } + else + { + UCRREQCTX *pCtx = (UCRREQCTX *)RTMemAlloc(sizeof(UCRREQCTX)); + if (!pCtx) + { + rc = mpDrv->pICardReaderUp->pfnCardReaderUpDisconnect(mpDrv->pICardReaderUp, + pvUser, + VRDE_SCARD_E_NO_MEMORY); + } + else + { + pCtx->pRemote = m_pRemote; + pCtx->u32Function = VRDE_SCARD_FN_DISCONNECT; + pCtx->pvUser = pvUser; + + VRDESCARDDISCONNECTREQ req; + req.hCard = m_pRemote->reader.hCard; + req.u32Disposition = u32Mode; + + rc = vrdeSCardRequest(pCtx, VRDE_SCARD_FN_DISCONNECT, &req, sizeof(req)); + + if (RT_FAILURE(rc)) + { + RTMemFree(pCtx); + } + else + { + m_pRemote->reader.fHandle = false; + } + } + } + + return rc; +} + +int UsbCardReader::Status(struct USBCARDREADER *pDrv, + void *pvUser) +{ + AssertReturn(pDrv == mpDrv, VERR_NOT_SUPPORTED); + + int rc = VINF_SUCCESS; + + if ( !m_pRemote + || !m_pRemote->fContext + || !m_pRemote->reader.fAvailable + || !m_pRemote->reader.fHandle) + { + rc = mpDrv->pICardReaderUp->pfnCardReaderUpStatus(mpDrv->pICardReaderUp, + pvUser, + VRDE_SCARD_E_NO_SMARTCARD, + /* pszReaderName */ NULL, + /* cchReaderName */ 0, + /* u32CardState */ 0, + /* u32Protocol */ 0, + /* pu8Atr */ 0, + /* cbAtr */ 0); + } + else + { + UCRREQCTX *pCtx = (UCRREQCTX *)RTMemAlloc(sizeof(UCRREQCTX)); + if (!pCtx) + { + rc = mpDrv->pICardReaderUp->pfnCardReaderUpStatus(mpDrv->pICardReaderUp, + pvUser, + VRDE_SCARD_E_NO_MEMORY, + /* pszReaderName */ NULL, + /* cchReaderName */ 0, + /* u32CardState */ 0, + /* u32Protocol */ 0, + /* pu8Atr */ 0, + /* cbAtr */ 0); + } + else + { + pCtx->pRemote = m_pRemote; + pCtx->u32Function = VRDE_SCARD_FN_STATUS; + pCtx->pvUser = pvUser; + + VRDESCARDSTATUSREQ req; + req.hCard = m_pRemote->reader.hCard; + + rc = vrdeSCardRequest(pCtx, VRDE_SCARD_FN_STATUS, &req, sizeof(req)); + + if (RT_FAILURE(rc)) + { + RTMemFree(pCtx); + } + } + } + + return rc; +} + +int UsbCardReader::Transmit(struct USBCARDREADER *pDrv, + void *pvUser, + PDMICARDREADER_IO_REQUEST *pioSendRequest, + uint8_t *pu8SendBuffer, + uint32_t cbSendBuffer, + uint32_t cbRecvBuffer) +{ + AssertReturn(pDrv == mpDrv, VERR_NOT_SUPPORTED); + + int rc = VINF_SUCCESS; + + UCRREQCTX *pCtx = NULL; + uint32_t rcSCard = VRDE_SCARD_S_SUCCESS; + + if ( !m_pRemote + || !m_pRemote->fContext + || !m_pRemote->reader.fAvailable + || !m_pRemote->reader.fHandle) + { + rcSCard = VRDE_SCARD_E_NO_SMARTCARD; + } + + if (rcSCard == VRDE_SCARD_S_SUCCESS) + { + if ( !pioSendRequest + || ( pioSendRequest->cbPciLength < 2 * sizeof(uint32_t) + || pioSendRequest->cbPciLength > 2 * sizeof(uint32_t) + VRDE_SCARD_MAX_PCI_DATA) + ) + { + AssertFailed(); + rcSCard = VRDE_SCARD_E_INVALID_PARAMETER; + } + } + + if (rcSCard == VRDE_SCARD_S_SUCCESS) + { + pCtx = (UCRREQCTX *)RTMemAlloc(sizeof(UCRREQCTX)); + if (!pCtx) + { + rcSCard = VRDE_SCARD_E_NO_MEMORY; + } + } + + if (rcSCard != VRDE_SCARD_S_SUCCESS) + { + Assert(pCtx == NULL); + + rc = pDrv->pICardReaderUp->pfnCardReaderUpTransmit(pDrv->pICardReaderUp, + pvUser, + rcSCard, + /* pioRecvPci */ NULL, + /* pu8RecvBuffer */ NULL, + /* cbRecvBuffer*/ 0); + } + else + { + pCtx->pRemote = m_pRemote; + pCtx->u32Function = VRDE_SCARD_FN_TRANSMIT; + pCtx->pvUser = pvUser; + + VRDESCARDTRANSMITREQ req; + req.hCard = m_pRemote->reader.hCard; + + req.ioSendPci.u32Protocol = pioSendRequest->u32Protocol; + req.ioSendPci.u32PciLength = pioSendRequest->cbPciLength < 2 * sizeof(uint32_t)? + 2 * sizeof(uint32_t): + pioSendRequest->cbPciLength; + Assert(pioSendRequest->cbPciLength <= VRDE_SCARD_MAX_PCI_DATA + 2 * sizeof(uint32_t)); + memcpy(req.ioSendPci.au8PciData, + (uint8_t *)pioSendRequest + 2 * sizeof(uint32_t), + req.ioSendPci.u32PciLength - 2 * sizeof(uint32_t)); + + req.u32SendLength = cbSendBuffer; + req.pu8SendBuffer = pu8SendBuffer; + req.u32RecvLength = cbRecvBuffer; + + rc = vrdeSCardRequest(pCtx, VRDE_SCARD_FN_TRANSMIT, &req, sizeof(req)); + + if (RT_FAILURE(rc)) + { + RTMemFree(pCtx); + } + } + + return rc; +} + +int UsbCardReader::Control(struct USBCARDREADER *pDrv, + void *pvUser, + uint32_t u32ControlCode, + uint8_t *pu8InBuffer, + uint32_t cbInBuffer, + uint32_t cbOutBuffer) +{ + AssertReturn(pDrv == mpDrv, VERR_NOT_SUPPORTED); + + int rc = VINF_SUCCESS; + + UCRREQCTX *pCtx = NULL; + uint32_t rcSCard = VRDE_SCARD_S_SUCCESS; + + if ( !m_pRemote + || !m_pRemote->fContext + || !m_pRemote->reader.fAvailable + || !m_pRemote->reader.fHandle) + { + rcSCard = VRDE_SCARD_E_NO_SMARTCARD; + } + + if (rcSCard == VRDE_SCARD_S_SUCCESS) + { + if ( cbInBuffer > _128K + || cbOutBuffer > _128K) + { + AssertFailed(); + rcSCard = VRDE_SCARD_E_INVALID_PARAMETER; + } + } + + if (rcSCard == VRDE_SCARD_S_SUCCESS) + { + pCtx = (UCRREQCTX *)RTMemAlloc(sizeof(UCRREQCTX)); + if (!pCtx) + { + rcSCard = VRDE_SCARD_E_NO_MEMORY; + } + } + + if (rcSCard != VRDE_SCARD_S_SUCCESS) + { + Assert(pCtx == NULL); + + rc = pDrv->pICardReaderUp->pfnCardReaderUpControl(pDrv->pICardReaderUp, + pvUser, + rcSCard, + u32ControlCode, + /* pvOutBuffer */ NULL, + /* cbOutBuffer*/ 0); + } + else + { + pCtx->pRemote = m_pRemote; + pCtx->u32Function = VRDE_SCARD_FN_CONTROL; + pCtx->pvUser = pvUser; + pCtx->u.Control.u32ControlCode = u32ControlCode; + + VRDESCARDCONTROLREQ req; + req.hCard = m_pRemote->reader.hCard; + req.u32ControlCode = u32ControlCode; + req.u32InBufferSize = cbInBuffer; + req.pu8InBuffer = pu8InBuffer; + req.u32OutBufferSize = cbOutBuffer; + + rc = vrdeSCardRequest(pCtx, VRDE_SCARD_FN_CONTROL, &req, sizeof(req)); + + if (RT_FAILURE(rc)) + { + RTMemFree(pCtx); + } + } + + return rc; +} + +int UsbCardReader::GetAttrib(struct USBCARDREADER *pDrv, + void *pvUser, + uint32_t u32AttrId, + uint32_t cbAttrib) +{ + AssertReturn(pDrv == mpDrv, VERR_NOT_SUPPORTED); + + int rc = VINF_SUCCESS; + + UCRREQCTX *pCtx = NULL; + uint32_t rcSCard = VRDE_SCARD_S_SUCCESS; + + if ( !m_pRemote + || !m_pRemote->fContext + || !m_pRemote->reader.fAvailable + || !m_pRemote->reader.fHandle) + { + rcSCard = VRDE_SCARD_E_NO_SMARTCARD; + } + + if (rcSCard == VRDE_SCARD_S_SUCCESS) + { + if (cbAttrib > _128K) + { + AssertFailed(); + rcSCard = VRDE_SCARD_E_INVALID_PARAMETER; + } + } + + if (rcSCard == VRDE_SCARD_S_SUCCESS) + { + pCtx = (UCRREQCTX *)RTMemAlloc(sizeof(UCRREQCTX)); + if (!pCtx) + { + rcSCard = VRDE_SCARD_E_NO_MEMORY; + } + } + + if (rcSCard != VRDE_SCARD_S_SUCCESS) + { + Assert(pCtx == NULL); + + pDrv->pICardReaderUp->pfnCardReaderUpGetAttrib(pDrv->pICardReaderUp, + pvUser, + rcSCard, + u32AttrId, + /* pvAttrib */ NULL, + /* cbAttrib */ 0); + } + else + { + pCtx->pRemote = m_pRemote; + pCtx->u32Function = VRDE_SCARD_FN_GETATTRIB; + pCtx->pvUser = pvUser; + pCtx->u.GetAttrib.u32AttrId = u32AttrId; + + VRDESCARDGETATTRIBREQ req; + req.hCard = m_pRemote->reader.hCard; + req.u32AttrId = u32AttrId; + req.u32AttrLen = cbAttrib; + + rc = vrdeSCardRequest(pCtx, VRDE_SCARD_FN_GETATTRIB, &req, sizeof(req)); + + if (RT_FAILURE(rc)) + { + RTMemFree(pCtx); + } + } + + return rc; +} + +int UsbCardReader::SetAttrib(struct USBCARDREADER *pDrv, + void *pvUser, + uint32_t u32AttrId, + uint8_t *pu8Attrib, + uint32_t cbAttrib) +{ + AssertReturn(pDrv == mpDrv, VERR_NOT_SUPPORTED); + + int rc = VINF_SUCCESS; + + UCRREQCTX *pCtx = NULL; + uint32_t rcSCard = VRDE_SCARD_S_SUCCESS; + + if ( !m_pRemote + || !m_pRemote->fContext + || !m_pRemote->reader.fAvailable + || !m_pRemote->reader.fHandle) + { + rcSCard = VRDE_SCARD_E_NO_SMARTCARD; + } + + if (rcSCard == VRDE_SCARD_S_SUCCESS) + { + if (cbAttrib > _128K) + { + AssertFailed(); + rcSCard = VRDE_SCARD_E_INVALID_PARAMETER; + } + } + + if (rcSCard == VRDE_SCARD_S_SUCCESS) + { + pCtx = (UCRREQCTX *)RTMemAlloc(sizeof(UCRREQCTX)); + if (!pCtx) + { + rcSCard = VRDE_SCARD_E_NO_MEMORY; + } + } + + if (rcSCard != VRDE_SCARD_S_SUCCESS) + { + Assert(pCtx == NULL); + + pDrv->pICardReaderUp->pfnCardReaderUpSetAttrib(pDrv->pICardReaderUp, + pvUser, + rcSCard, + u32AttrId); + } + else + { + pCtx->pRemote = m_pRemote; + pCtx->u32Function = VRDE_SCARD_FN_SETATTRIB; + pCtx->pvUser = pvUser; + pCtx->u.SetAttrib.u32AttrId = u32AttrId; + + VRDESCARDSETATTRIBREQ req; + req.hCard = m_pRemote->reader.hCard; + req.u32AttrId = u32AttrId; + req.u32AttrLen = cbAttrib; + req.pu8Attr = pu8Attrib; + + rc = vrdeSCardRequest(pCtx, VRDE_SCARD_FN_SETATTRIB, &req, sizeof(req)); + + if (RT_FAILURE(rc)) + { + RTMemFree(pCtx); + } + } + + return rc; +} + + +/* + * PDM + */ + +/* static */ DECLCALLBACK(void *)UsbCardReader::drvQueryInterface(PPDMIBASE pInterface, const char *pszIID) +{ + LogFlowFunc(("pInterface:%p, pszIID:%s\n", pInterface, pszIID)); + PPDMDRVINS pDrvIns = PDMIBASE_2_PDMDRV(pInterface); + PUSBCARDREADER pThis = PDMINS_2_DATA(pDrvIns, PUSBCARDREADER); + + PDMIBASE_RETURN_INTERFACE(pszIID, PDMIBASE, &pDrvIns->IBase); + PDMIBASE_RETURN_INTERFACE(pszIID, PDMICARDREADERDOWN, &pThis->ICardReaderDown); + return NULL; +} + +/* static */ DECLCALLBACK(int) UsbCardReader::drvConstruct(PPDMDRVINS pDrvIns, PCFGMNODE pCfg, uint32_t fFlags) +{ + LogFlowFunc(("iInstance/%d, pCfg:%p, fFlags:%x\n", pDrvIns->iInstance, pCfg, fFlags)); + PUSBCARDREADER pThis = PDMINS_2_DATA(pDrvIns, PUSBCARDREADER); + + if (!CFGMR3AreValuesValid(pCfg, "Object\0")) + return VERR_PDM_DRVINS_UNKNOWN_CFG_VALUES; + AssertMsgReturn(PDMDrvHlpNoAttach(pDrvIns) == VERR_PDM_NO_ATTACHED_DRIVER, + ("Configuration error: Not possible to attach anything to this driver!\n"), + VERR_PDM_DRVINS_NO_ATTACH); + + void *pv; + int rc = CFGMR3QueryPtr(pCfg, "Object", &pv); + AssertMsgRCReturn(rc, ("Configuration error: No/bad \"Object\" value! rc=%Rrc\n", rc), rc); + + pThis->pUsbCardReader = (UsbCardReader *)pv; + pThis->pUsbCardReader->mpDrv = pThis; + pThis->pDrvIns = pDrvIns; + + pDrvIns->IBase.pfnQueryInterface = UsbCardReader::drvQueryInterface; + + pThis->ICardReaderDown.pfnCardReaderDownEstablishContext = drvCardReaderDownEstablishContext; + pThis->ICardReaderDown.pfnCardReaderDownReleaseContext = drvCardReaderDownReleaseContext; + pThis->ICardReaderDown.pfnCardReaderDownConnect = drvCardReaderDownConnect; + pThis->ICardReaderDown.pfnCardReaderDownDisconnect = drvCardReaderDownDisconnect; + pThis->ICardReaderDown.pfnCardReaderDownStatus = drvCardReaderDownStatus; + pThis->ICardReaderDown.pfnCardReaderDownGetStatusChange = drvCardReaderDownGetStatusChange; + pThis->ICardReaderDown.pfnCardReaderDownBeginTransaction = drvCardReaderDownBeginTransaction; + pThis->ICardReaderDown.pfnCardReaderDownEndTransaction = drvCardReaderDownEndTransaction; + pThis->ICardReaderDown.pfnCardReaderDownTransmit = drvCardReaderDownTransmit; + pThis->ICardReaderDown.pfnCardReaderDownGetAttr = drvCardReaderDownGetAttr; + pThis->ICardReaderDown.pfnCardReaderDownSetAttr = drvCardReaderDownSetAttr; + pThis->ICardReaderDown.pfnCardReaderDownControl = drvCardReaderDownControl; + + pThis->pICardReaderUp = PDMIBASE_QUERY_INTERFACE(pDrvIns->pUpBase, PDMICARDREADERUP); + AssertReturn(pThis->pICardReaderUp, VERR_PDM_MISSING_INTERFACE); + + /* Command Thread Synchronization primitives */ + rc = RTReqQueueCreate(&pThis->hReqQCardReaderCmd); + AssertLogRelRCReturn(rc, rc); + + rc = PDMDrvHlpThreadCreate(pDrvIns, + &pThis->pThrCardReaderCmd, + pThis, + drvCardReaderThreadCmd /* worker routine */, + drvCardReaderThreadCmdWakeup /* wakeup routine */, + 128 * _1K, RTTHREADTYPE_IO, "UCRCMD"); + if (RT_FAILURE(rc)) + { + RTReqQueueDestroy(pThis->hReqQCardReaderCmd); + pThis->hReqQCardReaderCmd = NIL_RTREQQUEUE; + } + + LogFlowFunc(("LEAVE: %Rrc\n", rc)); + return rc; +} + +/* static */ DECLCALLBACK(void) UsbCardReader::drvDestruct(PPDMDRVINS pDrvIns) +{ + LogFlowFunc(("iInstance/%d\n",pDrvIns->iInstance)); + PUSBCARDREADER pThis = PDMINS_2_DATA(pDrvIns, PUSBCARDREADER); + + /* @todo The driver is destroyed before the device. + * So device calls ReleaseContext when there is no more driver. + * Notify the device here so it can do cleanup or + * do a cleanup now in the driver. + */ + if (pThis->hReqQCardReaderCmd != NIL_RTREQQUEUE) + { + int rc = RTReqQueueDestroy(pThis->hReqQCardReaderCmd); + AssertRC(rc); + pThis->hReqQCardReaderCmd = NIL_RTREQQUEUE; + } + + pThis->pUsbCardReader = NULL; + LogFlowFuncLeave(); +} + +/* static */ const PDMDRVREG UsbCardReader::DrvReg = +{ + /* u32Version */ + PDM_DRVREG_VERSION, + /* szName[32] */ + "UsbCardReader", + /* szRCMod[32] */ + "", + /* szR0Mod[32] */ + "", + /* pszDescription */ + "Main Driver communicating with VRDE", + /* fFlags */ + PDM_DRVREG_FLAGS_HOST_BITS_DEFAULT, + /* fClass */ + PDM_DRVREG_CLASS_USB, + /* cMaxInstances */ + 1, + /* cbInstance */ + sizeof(USBCARDREADER), + /* pfnConstruct */ + UsbCardReader::drvConstruct, + /* pfnDestruct */ + UsbCardReader::drvDestruct, + /* pfnRelocate */ + NULL, + /* pfnIOCtl */ + NULL, + /* pfnPowerOn */ + NULL, + /* pfnReset */ + NULL, + /* pfnSuspend */ + NULL, + /* pfnResume */ + NULL, + /* pfnAttach */ + NULL, + /* pfnDetach */ + NULL, + /* pfnPowerOff */ + NULL, + /* pfnSoftReset */ + NULL, + /* u32VersionEnd */ + PDM_DRVREG_VERSION +}; +/* vi: set tabstop=4 shiftwidth=4 expandtab: */ diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Main/src-client/VBoxDriversRegister.cpp virtualbox-4.1.44-dfsg/src/VBox/Main/src-client/VBoxDriversRegister.cpp --- virtualbox-4.1.12-dfsg/src/VBox/Main/src-client/VBoxDriversRegister.cpp 2012-04-02 13:28:55.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Main/src-client/VBoxDriversRegister.cpp 2015-11-11 15:08:51.000000000 +0000 @@ -27,6 +27,9 @@ #ifdef VBOX_WITH_USB_VIDEO # include "UsbWebcamInterface.h" #endif +#ifdef VBOX_WITH_USB_CARDREADER +# include "UsbCardReader.h" +#endif #include "ConsoleImpl.h" #ifdef VBOX_WITH_PCI_PASSTHROUGH # include "PciRawDevImpl.h" @@ -74,6 +77,12 @@ if (RT_FAILURE(rc)) return rc; #endif + +#ifdef VBOX_WITH_USB_CARDREADER + rc = pCallbacks->pfnRegister(pCallbacks, &UsbCardReader::DrvReg); + if (RT_FAILURE(rc)) + return rc; +#endif rc = pCallbacks->pfnRegister(pCallbacks, &Console::DrvStatusReg); if (RT_FAILURE(rc)) diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Main/src-helper-apps/VBoxExtPackHelperApp.cpp virtualbox-4.1.44-dfsg/src/VBox/Main/src-helper-apps/VBoxExtPackHelperApp.cpp --- virtualbox-4.1.12-dfsg/src/VBox/Main/src-helper-apps/VBoxExtPackHelperApp.cpp 2012-04-02 13:28:55.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Main/src-helper-apps/VBoxExtPackHelperApp.cpp 2015-11-11 15:08:51.000000000 +0000 @@ -1771,6 +1771,7 @@ if (RT_FAILURE(rc)) return RTMsgInitFailure(rc); + SUPR3HardenedVerifyInit(); RTERRINFOSTATIC ErrInfo; RTErrInfoInitStatic(&ErrInfo); rc = SUPR3HardenedVerifySelf(argv[0], true /*fInternal*/, &ErrInfo.Core); @@ -1871,7 +1872,16 @@ case OPT_STDERR: case OPT_STDOUT: { +# ifdef RT_OS_WINDOWS + PRTUTF16 pwszName = NULL; + rc = RTStrToUtf16(ValueUnion.psz, &pwszName); + if (RT_FAILURE(rc)) + return RTMsgErrorExit(RTEXITCODE_FAILURE, "Error converting '%s' to UTF-16: %Rrc\n", ValueUnion.psz, rc); + FILE *pFile = _wfreopen(pwszName, L"r+", ch == OPT_STDOUT ? stdout : stderr); + RTUtf16Free(pwszName); +# else FILE *pFile = freopen(ValueUnion.psz, "r+", ch == OPT_STDOUT ? stdout : stderr); +# endif if (!pFile) { rc = RTErrConvertFromErrno(errno); diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Main/src-server/ApplianceImpl.cpp virtualbox-4.1.44-dfsg/src/VBox/Main/src-server/ApplianceImpl.cpp --- virtualbox-4.1.12-dfsg/src/VBox/Main/src-server/ApplianceImpl.cpp 2012-04-02 13:28:55.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Main/src-server/ApplianceImpl.cpp 2015-11-11 15:08:51.000000000 +0000 @@ -931,33 +931,21 @@ if (task->locInfo.storageType == VFSType_File) taskrc = pAppliance->readFS(task.get()); else if (task->locInfo.storageType == VFSType_S3) -#ifdef VBOX_WITH_S3 - taskrc = pAppliance->readS3(task.get()); -#else taskrc = VERR_NOT_IMPLEMENTED; -#endif break; case TaskOVF::Import: if (task->locInfo.storageType == VFSType_File) taskrc = pAppliance->importFS(task.get()); else if (task->locInfo.storageType == VFSType_S3) -#ifdef VBOX_WITH_S3 - taskrc = pAppliance->importS3(task.get()); -#else taskrc = VERR_NOT_IMPLEMENTED; -#endif break; case TaskOVF::Write: if (task->locInfo.storageType == VFSType_File) taskrc = pAppliance->writeFS(task.get()); else if (task->locInfo.storageType == VFSType_S3) -#ifdef VBOX_WITH_S3 - taskrc = pAppliance->writeS3(task.get()); -#else taskrc = VERR_NOT_IMPLEMENTED; -#endif break; } diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Main/src-server/ApplianceImplExport.cpp virtualbox-4.1.44-dfsg/src/VBox/Main/src-server/ApplianceImplExport.cpp --- virtualbox-4.1.12-dfsg/src/VBox/Main/src-server/ApplianceImplExport.cpp 2012-04-02 13:28:55.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Main/src-server/ApplianceImplExport.cpp 2015-11-11 15:08:51.000000000 +0000 @@ -1904,176 +1904,3 @@ return rc; } - -#ifdef VBOX_WITH_S3 -/** - * Worker code for writing out OVF to the cloud. This is called from Appliance::taskThreadWriteOVF() - * in S3 mode and therefore runs on the OVF write worker thread. This then starts a second worker - * thread to create temporary files (see Appliance::writeFS()). - * - * @param pTask - * @return - */ -HRESULT Appliance::writeS3(TaskOVF *pTask) -{ - LogFlowFuncEnter(); - LogFlowFunc(("Appliance %p\n", this)); - - AutoCaller autoCaller(this); - if (FAILED(autoCaller.rc())) return autoCaller.rc(); - - HRESULT rc = S_OK; - - AutoWriteLock appLock(this COMMA_LOCKVAL_SRC_POS); - - int vrc = VINF_SUCCESS; - RTS3 hS3 = NIL_RTS3; - char szOSTmpDir[RTPATH_MAX]; - RTPathTemp(szOSTmpDir, sizeof(szOSTmpDir)); - /* The template for the temporary directory created below */ - char *pszTmpDir = RTPathJoinA(szOSTmpDir, "vbox-ovf-XXXXXX"); - list< pair > filesList; - - // todo: - // - usable error codes - // - seems snapshot filenames are problematic {uuid}.vdi - try - { - /* Extract the bucket */ - Utf8Str tmpPath = pTask->locInfo.strPath; - Utf8Str bucket; - parseBucket(tmpPath, bucket); - - /* We need a temporary directory which we can put the OVF file & all - * disk images in */ - vrc = RTDirCreateTemp(pszTmpDir); - if (RT_FAILURE(vrc)) - throw setError(VBOX_E_FILE_ERROR, - tr("Cannot create temporary directory '%s' (%Rrc)"), pszTmpDir, vrc); - - /* The temporary name of the target OVF file */ - Utf8StrFmt strTmpOvf("%s/%s", pszTmpDir, RTPathFilename(tmpPath.c_str())); - - /* Prepare the temporary writing of the OVF */ - ComObjPtr progress; - /* Create a temporary file based location info for the sub task */ - LocationInfo li; - li.strPath = strTmpOvf; - rc = writeImpl(pTask->enFormat, li, progress); - if (FAILED(rc)) throw rc; - - /* Unlock the appliance for the writing thread */ - appLock.release(); - /* Wait until the writing is done, but report the progress back to the - caller */ - ComPtr progressInt(progress); - waitForAsyncProgress(pTask->pProgress, progressInt); /* Any errors will be thrown */ - - /* Again lock the appliance for the next steps */ - appLock.acquire(); - - vrc = RTPathExists(strTmpOvf.c_str()); /* Paranoid check */ - if (RT_FAILURE(vrc)) - throw setError(VBOX_E_FILE_ERROR, - tr("Cannot find source file '%s' (%Rrc)"), strTmpOvf.c_str(), vrc); - /* Add the OVF file */ - filesList.push_back(pair(strTmpOvf, m->ulWeightForXmlOperation)); /* Use 1% of the total for the OVF file upload */ - /* Add the manifest file */ - if (m->fManifest) - { - Utf8Str strMfFile = Utf8Str(strTmpOvf).stripExt().append(".mf"); - filesList.push_back(pair(strMfFile , m->ulWeightForXmlOperation)); /* Use 1% of the total for the manifest file upload */ - } - - /* Now add every disks of every virtual system */ - list< ComObjPtr >::const_iterator it; - for (it = m->virtualSystemDescriptions.begin(); - it != m->virtualSystemDescriptions.end(); - ++it) - { - ComObjPtr vsdescThis = (*it); - std::list avsdeHDs = vsdescThis->findByType(VirtualSystemDescriptionType_HardDiskImage); - std::list::const_iterator itH; - for (itH = avsdeHDs.begin(); - itH != avsdeHDs.end(); - ++itH) - { - const Utf8Str &strTargetFileNameOnly = (*itH)->strOvf; - /* Target path needs to be composed from where the output OVF is */ - Utf8Str strTargetFilePath(strTmpOvf); - strTargetFilePath.stripFilename(); - strTargetFilePath.append("/"); - strTargetFilePath.append(strTargetFileNameOnly); - vrc = RTPathExists(strTargetFilePath.c_str()); /* Paranoid check */ - if (RT_FAILURE(vrc)) - throw setError(VBOX_E_FILE_ERROR, - tr("Cannot find source file '%s' (%Rrc)"), strTargetFilePath.c_str(), vrc); - filesList.push_back(pair(strTargetFilePath, (*itH)->ulSizeMB)); - } - } - /* Next we have to upload the OVF & all disk images */ - vrc = RTS3Create(&hS3, pTask->locInfo.strUsername.c_str(), pTask->locInfo.strPassword.c_str(), pTask->locInfo.strHostname.c_str(), "virtualbox-agent/"VBOX_VERSION_STRING); - if (RT_FAILURE(vrc)) - throw setError(VBOX_E_IPRT_ERROR, - tr("Cannot create S3 service handler")); - RTS3SetProgressCallback(hS3, pTask->updateProgress, &pTask); - - /* Upload all files */ - for (list< pair >::const_iterator it1 = filesList.begin(); it1 != filesList.end(); ++it1) - { - const pair &s = (*it1); - char *pszFilename = RTPathFilename(s.first.c_str()); - /* Advance to the next operation */ - pTask->pProgress->SetNextOperation(BstrFmt(tr("Uploading file '%s'"), pszFilename).raw(), s.second); - vrc = RTS3PutKey(hS3, bucket.c_str(), pszFilename, s.first.c_str()); - if (RT_FAILURE(vrc)) - { - if (vrc == VERR_S3_CANCELED) - break; - else if (vrc == VERR_S3_ACCESS_DENIED) - throw setError(E_ACCESSDENIED, - tr("Cannot upload file '%s' to S3 storage server (Access denied). Make sure that your credentials are right. Also check that your host clock is properly synced"), pszFilename); - else if (vrc == VERR_S3_NOT_FOUND) - throw setError(VBOX_E_FILE_ERROR, - tr("Cannot upload file '%s' to S3 storage server (File not found)"), pszFilename); - else - throw setError(VBOX_E_IPRT_ERROR, - tr("Cannot upload file '%s' to S3 storage server (%Rrc)"), pszFilename, vrc); - } - } - } - catch(HRESULT aRC) - { - rc = aRC; - } - /* Cleanup */ - RTS3Destroy(hS3); - /* Delete all files which where temporary created */ - for (list< pair >::const_iterator it1 = filesList.begin(); it1 != filesList.end(); ++it1) - { - const char *pszFilePath = (*it1).first.c_str(); - if (RTPathExists(pszFilePath)) - { - vrc = RTFileDelete(pszFilePath); - if (RT_FAILURE(vrc)) - rc = setError(VBOX_E_FILE_ERROR, - tr("Cannot delete file '%s' (%Rrc)"), pszFilePath, vrc); - } - } - /* Delete the temporary directory */ - if (RTPathExists(pszTmpDir)) - { - vrc = RTDirRemove(pszTmpDir); - if (RT_FAILURE(vrc)) - rc = setError(VBOX_E_FILE_ERROR, - tr("Cannot delete temporary directory '%s' (%Rrc)"), pszTmpDir, vrc); - } - if (pszTmpDir) - RTStrFree(pszTmpDir); - - LogFlowFunc(("rc=%Rhrc\n", rc)); - LogFlowFuncLeave(); - - return rc; -} -#endif /* VBOX_WITH_S3 */ diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Main/src-server/ApplianceImplImport.cpp virtualbox-4.1.44-dfsg/src/VBox/Main/src-server/ApplianceImplImport.cpp --- virtualbox-4.1.12-dfsg/src/VBox/Main/src-server/ApplianceImplImport.cpp 2012-04-02 13:28:55.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Main/src-server/ApplianceImplImport.cpp 2015-11-11 15:08:51.000000000 +0000 @@ -966,134 +966,6 @@ return rc; } -#ifdef VBOX_WITH_S3 -/** - * Worker code for reading OVF from the cloud. This is called from Appliance::taskThreadImportOrExport() - * in S3 mode and therefore runs on the OVF read worker thread. This then starts a second worker - * thread to create temporary files (see Appliance::readFS()). - * - * @param pTask - * @return - */ -HRESULT Appliance::readS3(TaskOVF *pTask) -{ - LogFlowFuncEnter(); - LogFlowFunc(("Appliance %p\n", this)); - - AutoCaller autoCaller(this); - if (FAILED(autoCaller.rc())) return autoCaller.rc(); - - AutoWriteLock appLock(this COMMA_LOCKVAL_SRC_POS); - - HRESULT rc = S_OK; - int vrc = VINF_SUCCESS; - RTS3 hS3 = NIL_RTS3; - char szOSTmpDir[RTPATH_MAX]; - RTPathTemp(szOSTmpDir, sizeof(szOSTmpDir)); - /* The template for the temporary directory created below */ - char *pszTmpDir = RTPathJoinA(szOSTmpDir, "vbox-ovf-XXXXXX"); - list< pair > filesList; - Utf8Str strTmpOvf; - - try - { - /* Extract the bucket */ - Utf8Str tmpPath = pTask->locInfo.strPath; - Utf8Str bucket; - parseBucket(tmpPath, bucket); - - /* We need a temporary directory which we can put the OVF file & all - * disk images in */ - vrc = RTDirCreateTemp(pszTmpDir); - if (RT_FAILURE(vrc)) - throw setError(VBOX_E_FILE_ERROR, - tr("Cannot create temporary directory '%s'"), pszTmpDir); - - /* The temporary name of the target OVF file */ - strTmpOvf = Utf8StrFmt("%s/%s", pszTmpDir, RTPathFilename(tmpPath.c_str())); - - /* Next we have to download the OVF */ - vrc = RTS3Create(&hS3, pTask->locInfo.strUsername.c_str(), pTask->locInfo.strPassword.c_str(), pTask->locInfo.strHostname.c_str(), "virtualbox-agent/"VBOX_VERSION_STRING); - if (RT_FAILURE(vrc)) - throw setError(VBOX_E_IPRT_ERROR, - tr("Cannot create S3 service handler")); - RTS3SetProgressCallback(hS3, pTask->updateProgress, &pTask); - - /* Get it */ - char *pszFilename = RTPathFilename(strTmpOvf.c_str()); - vrc = RTS3GetKey(hS3, bucket.c_str(), pszFilename, strTmpOvf.c_str()); - if (RT_FAILURE(vrc)) - { - if (vrc == VERR_S3_CANCELED) - throw S_OK; /* todo: !!!!!!!!!!!!! */ - else if (vrc == VERR_S3_ACCESS_DENIED) - throw setError(E_ACCESSDENIED, - tr("Cannot download file '%s' from S3 storage server (Access denied). Make sure that your credentials are right." - "Also check that your host clock is properly synced"), - pszFilename); - else if (vrc == VERR_S3_NOT_FOUND) - throw setError(VBOX_E_FILE_ERROR, - tr("Cannot download file '%s' from S3 storage server (File not found)"), pszFilename); - else - throw setError(VBOX_E_IPRT_ERROR, - tr("Cannot download file '%s' from S3 storage server (%Rrc)"), pszFilename, vrc); - } - - /* Close the connection early */ - RTS3Destroy(hS3); - hS3 = NIL_RTS3; - - pTask->pProgress->SetNextOperation(Bstr(tr("Reading")).raw(), 1); - - /* Prepare the temporary reading of the OVF */ - ComObjPtr progress; - LocationInfo li; - li.strPath = strTmpOvf; - /* Start the reading from the fs */ - rc = readImpl(li, progress); - if (FAILED(rc)) throw rc; - - /* Unlock the appliance for the reading thread */ - appLock.release(); - /* Wait until the reading is done, but report the progress back to the - caller */ - ComPtr progressInt(progress); - waitForAsyncProgress(pTask->pProgress, progressInt); /* Any errors will be thrown */ - - /* Again lock the appliance for the next steps */ - appLock.acquire(); - } - catch(HRESULT aRC) - { - rc = aRC; - } - /* Cleanup */ - RTS3Destroy(hS3); - /* Delete all files which where temporary created */ - if (RTPathExists(strTmpOvf.c_str())) - { - vrc = RTFileDelete(strTmpOvf.c_str()); - if (RT_FAILURE(vrc)) - rc = setError(VBOX_E_FILE_ERROR, - tr("Cannot delete file '%s' (%Rrc)"), strTmpOvf.c_str(), vrc); - } - /* Delete the temporary directory */ - if (RTPathExists(pszTmpDir)) - { - vrc = RTDirRemove(pszTmpDir); - if (RT_FAILURE(vrc)) - rc = setError(VBOX_E_FILE_ERROR, - tr("Cannot delete temporary directory '%s' (%Rrc)"), pszTmpDir, vrc); - } - if (pszTmpDir) - RTStrFree(pszTmpDir); - - LogFlowFunc(("rc=%Rhrc\n", rc)); - LogFlowFuncLeave(); - - return rc; -} -#endif /* VBOX_WITH_S3 */ /******************************************************************************* * Import stuff @@ -1236,35 +1108,35 @@ writeLock.release(); try { - /* Create the necessary file access interfaces. */ - pSha1Callbacks = Sha1CreateInterface(); - if (!pSha1Callbacks) - throw E_OUTOFMEMORY; pFileCallbacks = FileCreateInterface(); if (!pFileCallbacks) throw E_OUTOFMEMORY; - VDINTERFACE VDInterfaceIO; - SHA1STORAGE storage; - RT_ZERO(storage); - storage.fCreateDigest = true; - int vrc = VDInterfaceAdd(&VDInterfaceIO, "Appliance::IOFile", - VDINTERFACETYPE_IO, pFileCallbacks, - 0, &storage.pVDImageIfaces); - if (RT_FAILURE(vrc)) - throw E_FAIL; - - size_t cbMfSize = 0; Utf8Str strMfFile = Utf8Str(pTask->locInfo.strPath).stripExt().append(".mf"); /* Create the import stack for the rollback on errors. */ ImportStack stack(pTask->locInfo, m->pReader->m_mapDisks, pTask->pProgress); - /* Do we need the digest information? */ - storage.fCreateDigest = RTFileExists(strMfFile.c_str()); - /* Now import the appliance. */ - importMachines(stack, pSha1Callbacks, &storage); - /* Read & verify the manifest file, if there is one. */ - if (storage.fCreateDigest) + + if (RTFileExists(strMfFile.c_str())) { + /* Create the necessary file access interfaces. */ + pSha1Callbacks = Sha1CreateInterface(); + if (!pSha1Callbacks) + throw E_OUTOFMEMORY; + + VDINTERFACE VDInterfaceIO; + SHA1STORAGE storage; + RT_ZERO(storage); + storage.fCreateDigest = true; + int vrc = VDInterfaceAdd(&VDInterfaceIO, "Appliance::IOFile", + VDINTERFACETYPE_IO, pFileCallbacks, + 0, &storage.pVDImageIfaces); + if (RT_FAILURE(vrc)) + throw E_FAIL; + + size_t cbMfSize = 0; + /* Now import the appliance. */ + importMachines(stack, pSha1Callbacks, &storage); + /* Add the ovf file to the digest list. */ stack.llSrcDisksDigest.push_front(STRPAIR(pTask->locInfo.strPath, m->strOVFSHA1Digest)); rc = readManifestFile(strMfFile, &pvMfBuf, &cbMfSize, pSha1Callbacks, &storage); @@ -1272,6 +1144,8 @@ rc = verifyManifestFile(strMfFile, stack, pvMfBuf, cbMfSize); if (FAILED(rc)) throw rc; } + else + importMachines(stack, pFileCallbacks, NULL); } catch (HRESULT rc2) { @@ -1410,199 +1284,6 @@ return rc; } -#ifdef VBOX_WITH_S3 -/** - * Worker code for importing OVF from the cloud. This is called from Appliance::taskThreadImportOrExport() - * in S3 mode and therefore runs on the OVF import worker thread. This then starts a second worker - * thread to import from temporary files (see Appliance::importFS()). - * @param pTask - * @return - */ -HRESULT Appliance::importS3(TaskOVF *pTask) -{ - LogFlowFuncEnter(); - LogFlowFunc(("Appliance %p\n", this)); - - AutoCaller autoCaller(this); - if (FAILED(autoCaller.rc())) return autoCaller.rc(); - - AutoWriteLock appLock(this COMMA_LOCKVAL_SRC_POS); - - int vrc = VINF_SUCCESS; - RTS3 hS3 = NIL_RTS3; - char szOSTmpDir[RTPATH_MAX]; - RTPathTemp(szOSTmpDir, sizeof(szOSTmpDir)); - /* The template for the temporary directory created below */ - char *pszTmpDir = RTPathJoinA(szOSTmpDir, "vbox-ovf-XXXXXX"); - list< pair > filesList; - - HRESULT rc = S_OK; - try - { - /* Extract the bucket */ - Utf8Str tmpPath = pTask->locInfo.strPath; - Utf8Str bucket; - parseBucket(tmpPath, bucket); - - /* We need a temporary directory which we can put the all disk images - * in */ - vrc = RTDirCreateTemp(pszTmpDir); - if (RT_FAILURE(vrc)) - throw setError(VBOX_E_FILE_ERROR, - tr("Cannot create temporary directory '%s' (%Rrc)"), pszTmpDir, vrc); - - /* Add every disks of every virtual system to an internal list */ - list< ComObjPtr >::const_iterator it; - for (it = m->virtualSystemDescriptions.begin(); - it != m->virtualSystemDescriptions.end(); - ++it) - { - ComObjPtr vsdescThis = (*it); - std::list avsdeHDs = vsdescThis->findByType(VirtualSystemDescriptionType_HardDiskImage); - std::list::const_iterator itH; - for (itH = avsdeHDs.begin(); - itH != avsdeHDs.end(); - ++itH) - { - const Utf8Str &strTargetFile = (*itH)->strOvf; - if (!strTargetFile.isEmpty()) - { - /* The temporary name of the target disk file */ - Utf8StrFmt strTmpDisk("%s/%s", pszTmpDir, RTPathFilename(strTargetFile.c_str())); - filesList.push_back(pair(strTmpDisk, (*itH)->ulSizeMB)); - } - } - } - - /* Next we have to download the disk images */ - vrc = RTS3Create(&hS3, pTask->locInfo.strUsername.c_str(), pTask->locInfo.strPassword.c_str(), pTask->locInfo.strHostname.c_str(), "virtualbox-agent/"VBOX_VERSION_STRING); - if (RT_FAILURE(vrc)) - throw setError(VBOX_E_IPRT_ERROR, - tr("Cannot create S3 service handler")); - RTS3SetProgressCallback(hS3, pTask->updateProgress, &pTask); - - /* Download all files */ - for (list< pair >::const_iterator it1 = filesList.begin(); it1 != filesList.end(); ++it1) - { - const pair &s = (*it1); - const Utf8Str &strSrcFile = s.first; - /* Construct the source file name */ - char *pszFilename = RTPathFilename(strSrcFile.c_str()); - /* Advance to the next operation */ - if (!pTask->pProgress.isNull()) - pTask->pProgress->SetNextOperation(BstrFmt(tr("Downloading file '%s'"), pszFilename).raw(), s.second); - - vrc = RTS3GetKey(hS3, bucket.c_str(), pszFilename, strSrcFile.c_str()); - if (RT_FAILURE(vrc)) - { - if (vrc == VERR_S3_CANCELED) - throw S_OK; /* todo: !!!!!!!!!!!!! */ - else if (vrc == VERR_S3_ACCESS_DENIED) - throw setError(E_ACCESSDENIED, - tr("Cannot download file '%s' from S3 storage server (Access denied). " - "Make sure that your credentials are right. Also check that your host clock is properly synced"), - pszFilename); - else if (vrc == VERR_S3_NOT_FOUND) - throw setError(VBOX_E_FILE_ERROR, - tr("Cannot download file '%s' from S3 storage server (File not found)"), - pszFilename); - else - throw setError(VBOX_E_IPRT_ERROR, - tr("Cannot download file '%s' from S3 storage server (%Rrc)"), - pszFilename, vrc); - } - } - - /* Provide a OVF file (haven't to exist) so the import routine can - * figure out where the disk images/manifest file are located. */ - Utf8StrFmt strTmpOvf("%s/%s", pszTmpDir, RTPathFilename(tmpPath.c_str())); - /* Now check if there is an manifest file. This is optional. */ - Utf8Str strManifestFile; //= queryManifestFileName(strTmpOvf); -// Utf8Str strManifestFile = queryManifestFileName(strTmpOvf); - char *pszFilename = RTPathFilename(strManifestFile.c_str()); - if (!pTask->pProgress.isNull()) - pTask->pProgress->SetNextOperation(BstrFmt(tr("Downloading file '%s'"), pszFilename).raw(), 1); - - /* Try to download it. If the error is VERR_S3_NOT_FOUND, it isn't fatal. */ - vrc = RTS3GetKey(hS3, bucket.c_str(), pszFilename, strManifestFile.c_str()); - if (RT_SUCCESS(vrc)) - filesList.push_back(pair(strManifestFile, 0)); - else if (RT_FAILURE(vrc)) - { - if (vrc == VERR_S3_CANCELED) - throw S_OK; /* todo: !!!!!!!!!!!!! */ - else if (vrc == VERR_S3_NOT_FOUND) - vrc = VINF_SUCCESS; /* Not found is ok */ - else if (vrc == VERR_S3_ACCESS_DENIED) - throw setError(E_ACCESSDENIED, - tr("Cannot download file '%s' from S3 storage server (Access denied)." - "Make sure that your credentials are right. Also check that your host clock is properly synced"), - pszFilename); - else - throw setError(VBOX_E_IPRT_ERROR, - tr("Cannot download file '%s' from S3 storage server (%Rrc)"), - pszFilename, vrc); - } - - /* Close the connection early */ - RTS3Destroy(hS3); - hS3 = NIL_RTS3; - - pTask->pProgress->SetNextOperation(BstrFmt(tr("Importing appliance")).raw(), m->ulWeightForXmlOperation); - - ComObjPtr progress; - /* Import the whole temporary OVF & the disk images */ - LocationInfo li; - li.strPath = strTmpOvf; - rc = importImpl(li, progress); - if (FAILED(rc)) throw rc; - - /* Unlock the appliance for the fs import thread */ - appLock.release(); - /* Wait until the import is done, but report the progress back to the - caller */ - ComPtr progressInt(progress); - waitForAsyncProgress(pTask->pProgress, progressInt); /* Any errors will be thrown */ - - /* Again lock the appliance for the next steps */ - appLock.acquire(); - } - catch(HRESULT aRC) - { - rc = aRC; - } - /* Cleanup */ - RTS3Destroy(hS3); - /* Delete all files which where temporary created */ - for (list< pair >::const_iterator it1 = filesList.begin(); it1 != filesList.end(); ++it1) - { - const char *pszFilePath = (*it1).first.c_str(); - if (RTPathExists(pszFilePath)) - { - vrc = RTFileDelete(pszFilePath); - if (RT_FAILURE(vrc)) - rc = setError(VBOX_E_FILE_ERROR, - tr("Cannot delete file '%s' (%Rrc)"), pszFilePath, vrc); - } - } - /* Delete the temporary directory */ - if (RTPathExists(pszTmpDir)) - { - vrc = RTDirRemove(pszTmpDir); - if (RT_FAILURE(vrc)) - rc = setError(VBOX_E_FILE_ERROR, - tr("Cannot delete temporary directory '%s' (%Rrc)"), pszTmpDir, vrc); - } - if (pszTmpDir) - RTStrFree(pszTmpDir); - - LogFlowFunc(("rc=%Rhrc\n", rc)); - LogFlowFuncLeave(); - - return rc; -} -#endif /* VBOX_WITH_S3 */ - HRESULT Appliance::readManifestFile(const Utf8Str &strFile, void **ppvBuf, size_t *pcbSize, PVDINTERFACEIO pCallbacks, PSHA1STORAGE pStorage) { HRESULT rc = S_OK; @@ -1912,7 +1593,7 @@ /* Add the newly create disk path + a corresponding digest the our list for * later manifest verification. */ - stack.llSrcDisksDigest.push_back(STRPAIR(strSrcFilePath, pStorage->strDigest)); + stack.llSrcDisksDigest.push_back(STRPAIR(strSrcFilePath, pStorage ? pStorage->strDigest : "")); } /** @@ -2829,7 +2510,8 @@ size_t i = 0; for (it = reader.m_llVirtualSystems.begin(), it1 = m->virtualSystemDescriptions.begin(); - it != reader.m_llVirtualSystems.end(); + it != reader.m_llVirtualSystems.end(), + it1 != m->virtualSystemDescriptions.end(); ++it, ++it1, ++i) { const ovf::VirtualSystem &vsysThis = *it; diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Main/src-server/darwin/OpenGLTestDarwin.cpp virtualbox-4.1.44-dfsg/src/VBox/Main/src-server/darwin/OpenGLTestDarwin.cpp --- virtualbox-4.1.12-dfsg/src/VBox/Main/src-server/darwin/OpenGLTestDarwin.cpp 2012-04-02 13:28:56.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Main/src-server/darwin/OpenGLTestDarwin.cpp 1970-01-01 00:00:00.000000000 +0000 @@ -1,80 +0,0 @@ -/* $Id: OpenGLTestDarwin.cpp $ */ - -/** @file - * VBox host opengl support test - */ - -/* - * Copyright (C) 2009 Oracle Corporation - * - * This file is part of VirtualBox Open Source Edition (OSE), as - * available from http://www.virtualbox.org. This file is free software; - * you can redistribute it and/or modify it under the terms of the GNU - * General Public License (GPL) as published by the Free Software - * Foundation, in version 2 as it comes in the "COPYING" file of the - * VirtualBox OSE distribution. VirtualBox OSE is distributed in the - * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind. - */ - - -#include -#include -#include -#ifdef VBOX_WITH_COCOA_QT -# include -# include -#endif /* VBOX_WITH_COCOA_QT */ - -bool is3DAccelerationSupported() -{ - CGDirectDisplayID display = CGMainDisplayID (); - CGOpenGLDisplayMask cglDisplayMask = CGDisplayIDToOpenGLDisplayMask (display); - CGLPixelFormatObj pixelFormat = NULL; - GLint numPixelFormats = 0; - - CGLPixelFormatAttribute attribs[] = { - kCGLPFADisplayMask, - (CGLPixelFormatAttribute)cglDisplayMask, - kCGLPFAAccelerated, - kCGLPFADoubleBuffer, - kCGLPFAWindow, - (CGLPixelFormatAttribute)NULL - }; - - display = CGMainDisplayID(); - cglDisplayMask = CGDisplayIDToOpenGLDisplayMask(display); - CGLChoosePixelFormat(attribs, &pixelFormat, &numPixelFormats); - - if (pixelFormat) - { - CGLContextObj cglContext = 0; - CGLCreateContext(pixelFormat, NULL, &cglContext); - CGLDestroyPixelFormat(pixelFormat); - if (cglContext) - { - GLboolean isSupported = GL_TRUE; -#ifdef VBOX_WITH_COCOA_QT - /* On the Cocoa port we depend on the GL_EXT_framebuffer_object & - * the GL_EXT_texture_rectangle extension. If they are not - * available, disable 3D support. */ - CGLSetCurrentContext(cglContext); - const GLubyte* strExt; - strExt = glGetString(GL_EXTENSIONS); - isSupported = gluCheckExtension((const GLubyte*)"GL_EXT_framebuffer_object", strExt); - if (isSupported) - { - isSupported = gluCheckExtension((const GLubyte*)"GL_EXT_texture_rectangle", strExt); - if (!isSupported) - LogRel(("OpenGL Info: GL_EXT_texture_rectangle extension not supported\n")); - } - else - LogRel(("OpenGL Info: GL_EXT_framebuffer_object extension not supported\n")); -#endif /* VBOX_WITH_COCOA_QT */ - CGLDestroyContext(cglContext); - return isSupported == GL_TRUE ? true : false; - } - } - - return false; -} - diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Main/src-server/darwin/PerformanceDarwin.cpp virtualbox-4.1.44-dfsg/src/VBox/Main/src-server/darwin/PerformanceDarwin.cpp --- virtualbox-4.1.12-dfsg/src/VBox/Main/src-server/darwin/PerformanceDarwin.cpp 2012-04-02 13:28:56.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Main/src-server/darwin/PerformanceDarwin.cpp 2015-11-11 15:08:52.000000000 +0000 @@ -24,6 +24,7 @@ #include #include #include +#include #include #include "Performance.h" @@ -64,6 +65,7 @@ virtual int getProcessMemoryUsage(RTPROCESS process, ULONG *used); private: ULONG totalRAM; + uint32_t nCpus; }; CollectorHAL *createHAL() @@ -86,6 +88,13 @@ hostMemory = 0; } totalRAM = (ULONG)(hostMemory / 1024); + nCpus = RTMpGetOnlineCount(); + Assert(nCpus); + if (nCpus == 0) + { + /* It is rather unsual to have no CPUs, but the show must go on. */ + nCpus = 1; + } } int CollectorDarwin::getRawHostCpuLoad(uint64_t *user, uint64_t *kernel, uint64_t *idle) @@ -156,8 +165,12 @@ int rc = getProcessInfo(process, &tinfo); if (RT_SUCCESS(rc)) { - *user = tinfo.pti_total_user; - *kernel = tinfo.pti_total_system; + /* + * Adjust user and kernel values so 100% is when ALL cores are fully + * utilized (see @bugref{6345}). + */ + *user = tinfo.pti_total_user / nCpus; + *kernel = tinfo.pti_total_system / nCpus; *total = mach_absolute_time(); } return rc; diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Main/src-server/generic/OpenGLTestApp.cpp virtualbox-4.1.44-dfsg/src/VBox/Main/src-server/generic/OpenGLTestApp.cpp --- virtualbox-4.1.12-dfsg/src/VBox/Main/src-server/generic/OpenGLTestApp.cpp 2012-04-02 13:28:56.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Main/src-server/generic/OpenGLTestApp.cpp 1970-01-01 00:00:00.000000000 +0000 @@ -1,364 +0,0 @@ -/* $Id: OpenGLTestApp.cpp $ */ -/** @file - * VBox host opengl support test application. - */ - -/* - * Copyright (C) 2009-2011 Oracle Corporation - * - * This file is part of VirtualBox Open Source Edition (OSE), as - * available from http://www.virtualbox.org. This file is free software; - * you can redistribute it and/or modify it under the terms of the GNU - * General Public License (GPL) as published by the Free Software - * Foundation, in version 2 as it comes in the "COPYING" file of the - * VirtualBox OSE distribution. VirtualBox OSE is distributed in the - * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind. - */ - -#include -#include -#include -#include -#include -#include -#ifdef RT_OS_WINDOWS -# include -#endif -#if !defined(RT_OS_WINDOWS) && !defined(RT_OS_OS2) -# include -# include -# include -#endif - -#include - -#define VBOXGLTEST_WITH_LOGGING - -#ifdef VBOXGLTEST_WITH_LOGGING -#include "package-generated.h" - -#include -#include -#include -#include -#include -#include - -#include -#include -#endif - -#ifdef VBOX_WITH_CROGL - -extern "C" -{ - extern void * crSPULoad(void *, int, char *, char *, void *); - extern void crSPUUnloadChain(void *); -} - - -static int vboxCheck3DAccelerationSupported() -{ - LogRel(("Testing 3D Support:\n")); - void *spu = crSPULoad(NULL, 0, (char*)"render", NULL, NULL); - if (spu) - { - crSPUUnloadChain(spu); - LogRel(("Testing 3D Succeeded!\n")); - return 0; - } - LogRel(("Testing 3D Failed\n")); - return 1; -} -#endif - -#ifdef VBOX_WITH_VIDEOHWACCEL -#include -#include -#include - -static int vboxCheck2DVideoAccelerationSupported() -{ - LogRel(("Testing 2D Support:\n")); - static int dummyArgc = 1; - static char * dummyArgv = (char*)"GlTest"; - QApplication app (dummyArgc, &dummyArgv); - - VBoxGLTmpContext ctx; - const QGLContext *pContext = ctx.makeCurrent(); - if(pContext) - { - VBoxVHWAInfo supportInfo; - supportInfo.init(pContext); - if(supportInfo.isVHWASupported()) - { - LogRel(("Testing 2D Succeeded!\n")); - return 0; - } - } - else - { - LogRel(("Failed to create gl context\n")); - } - LogRel(("Testing 2D Failed\n")); - return 1; -} -#endif - -#ifdef VBOXGLTEST_WITH_LOGGING -static int vboxInitLogging(const char *pszFilename, bool bGenNameSuffix) -{ - PRTLOGGER loggerRelease; - static const char * const s_apszGroups[] = VBOX_LOGGROUP_NAMES; - RTUINT fFlags = RTLOGFLAGS_PREFIX_TIME_PROG; -#if defined(RT_OS_WINDOWS) || defined(RT_OS_OS2) - fFlags |= RTLOGFLAGS_USECRLF; -#endif - char szError[RTPATH_MAX + 128] = ""; - const char * pszFilenameFmt; - RTLOGDEST enmLogDest; - if(pszFilename) - { - if(bGenNameSuffix) - pszFilenameFmt = "%s.%ld.log"; - else - pszFilenameFmt = "%s"; - enmLogDest = RTLOGDEST_FILE; - } - else - { - pszFilenameFmt = NULL; - enmLogDest = RTLOGDEST_STDOUT; - } - - int vrc = RTLogCreateEx(&loggerRelease, fFlags, "all", - "VBOX_RELEASE_LOG", RT_ELEMENTS(s_apszGroups), s_apszGroups, enmLogDest, - NULL /* pfnBeginEnd */, 0 /* cHistory */, 0 /* cbHistoryFileMax */, 0 /* uHistoryTimeMax */, - szError, sizeof(szError), pszFilenameFmt, pszFilename, RTTimeMilliTS()); - if (RT_SUCCESS(vrc)) - { - /* some introductory information */ - RTTIMESPEC timeSpec; - char szTmp[256]; - RTTimeSpecToString(RTTimeNow(&timeSpec), szTmp, sizeof(szTmp)); - RTLogRelLogger(loggerRelease, 0, ~0U, - "VBoxTestGL %s r%u %s (%s %s) release log\n" -#ifdef VBOX_BLEEDING_EDGE - "EXPERIMENTAL build " VBOX_BLEEDING_EDGE "\n" -#endif - "Log opened %s\n", - VBOX_VERSION_STRING, RTBldCfgRevision(), VBOX_BUILD_TARGET, - __DATE__, __TIME__, szTmp); - - vrc = RTSystemQueryOSInfo(RTSYSOSINFO_PRODUCT, szTmp, sizeof(szTmp)); - if (RT_SUCCESS(vrc) || vrc == VERR_BUFFER_OVERFLOW) - RTLogRelLogger(loggerRelease, 0, ~0U, "OS Product: %s\n", szTmp); - vrc = RTSystemQueryOSInfo(RTSYSOSINFO_RELEASE, szTmp, sizeof(szTmp)); - if (RT_SUCCESS(vrc) || vrc == VERR_BUFFER_OVERFLOW) - RTLogRelLogger(loggerRelease, 0, ~0U, "OS Release: %s\n", szTmp); - vrc = RTSystemQueryOSInfo(RTSYSOSINFO_VERSION, szTmp, sizeof(szTmp)); - if (RT_SUCCESS(vrc) || vrc == VERR_BUFFER_OVERFLOW) - RTLogRelLogger(loggerRelease, 0, ~0U, "OS Version: %s\n", szTmp); - vrc = RTSystemQueryOSInfo(RTSYSOSINFO_SERVICE_PACK, szTmp, sizeof(szTmp)); - if (RT_SUCCESS(vrc) || vrc == VERR_BUFFER_OVERFLOW) - RTLogRelLogger(loggerRelease, 0, ~0U, "OS Service Pack: %s\n", szTmp); -// RTLogRelLogger(loggerRelease, 0, ~0U, "Host RAM: %uMB RAM, available: %uMB\n", -// uHostRamMb, uHostRamAvailMb); - /* the package type is interesting for Linux distributions */ - char szExecName[RTPATH_MAX]; - char *pszExecName = RTProcGetExecutablePath(szExecName, sizeof(szExecName)); - RTLogRelLogger(loggerRelease, 0, ~0U, - "Executable: %s\n" - "Process ID: %u\n" - "Package type: %s" -#ifdef VBOX_OSE - " (OSE)" -#endif - "\n", - pszExecName ? pszExecName : "unknown", - RTProcSelf(), - VBOX_PACKAGE_STRING); - - /* register this logger as the release logger */ - RTLogRelSetDefaultInstance(loggerRelease); - - return VINF_SUCCESS; - } - - return vrc; -} -#endif - -static int vboxInitQuietMode() -{ -#if !defined(RT_OS_WINDOWS) && !defined(RT_OS_OS2) - /* This small test application might crash on some hosts. Do never - * generate a core dump as most likely some OpenGL library is - * responsible. */ - struct rlimit lim = { 0, 0 }; - setrlimit(RLIMIT_CORE, &lim); - - /* Redirect stderr to /dev/null */ - int fd = open("/dev/null", O_WRONLY); - if (fd != -1) - dup2(fd, STDERR_FILENO); -#endif - return 0; -} - -int main(int argc, char **argv) -{ - int rc = 0; - - RTR3Init(); - - if(argc < 2) - { -#ifdef VBOX_WITH_CROGL - /* backwards compatibility: check 3D */ - rc = vboxCheck3DAccelerationSupported(); -#endif - } - else - { - static const RTGETOPTDEF s_aOptionDefs[] = - { - { "--test", 't', RTGETOPT_REQ_STRING }, - { "-test", 't', RTGETOPT_REQ_STRING }, -#ifdef VBOXGLTEST_WITH_LOGGING - { "--log", 'l', RTGETOPT_REQ_STRING }, -#endif - }; - - RTGETOPTSTATE State; - rc = RTGetOptInit(&State, argc-1, argv+1, &s_aOptionDefs[0], RT_ELEMENTS(s_aOptionDefs), 0, 0); - AssertRCReturn(rc, 49); - -#ifdef VBOX_WITH_VIDEOHWACCEL - bool bTest2D = false; -#endif -#ifdef VBOX_WITH_CROGL - bool bTest3D = false; -#endif -#ifdef VBOXGLTEST_WITH_LOGGING - bool bLog = false; - bool bLogSuffix = false; - const char * pLog = NULL; -#endif - - for (;;) - { - RTGETOPTUNION Val; - rc = RTGetOpt(&State, &Val); - if (!rc) - break; - switch (rc) - { - case 't': -#ifdef VBOX_WITH_CROGL - if (!strcmp(Val.psz, "3D") || !strcmp(Val.psz, "3d")) - { - bTest3D = true; - rc = 0; - break; - } -#endif -#ifdef VBOX_WITH_VIDEOHWACCEL - if (!strcmp(Val.psz, "2D") || !strcmp(Val.psz, "2d")) - { - bTest2D = true; - rc = 0; - break; - } -#endif - rc = 1; - break; -#ifdef VBOXGLTEST_WITH_LOGGING - case 'l': - bLog = true; - pLog = Val.psz; - rc = 0; - break; -#endif - case 'h': - RTPrintf(VBOX_PRODUCT " Helper for testing 2D/3D OpenGL capabilities %u.%u.%u\n" - "(C) 2009-" VBOX_C_YEAR " " VBOX_VENDOR "\n" - "All rights reserved.\n" - "\n" - "Parameters:\n" -#ifdef VBOX_WITH_VIDEOHWACCEL - " --test 2D test for 2D (video) OpenGL capabilities\n" -#endif -#ifdef VBOX_WITH_CROGL - " --test 3D test for 3D OpenGL capabilities\n" -#endif -#ifdef VBOXGLTEST_WITH_LOGGING - " --log log the GL test result to the given file\n" - "\n" - "Logging can alternatively be enabled by specifying the VBOXGLTEST_LOG= env variable\n" - -#endif - "\n", - RTBldCfgVersionMajor(), RTBldCfgVersionMinor(), RTBldCfgVersionBuild()); - break; - - case 'V': - RTPrintf("$Revision: $\n"); - return 0; - - case VERR_GETOPT_UNKNOWN_OPTION: - case VINF_GETOPT_NOT_OPTION: - rc = 1; - - default: - /* complain? RTGetOptPrintError(rc, &Val); */ - break; - } - - if (rc) - break; - } - - if(!rc) - { -#ifdef VBOXGLTEST_WITH_LOGGING - if(!bLog) - { - /* check the VBOXGLTEST_LOG env var */ - pLog = RTEnvGet("VBOXGLTEST_LOG"); - if(pLog) - bLog = true; - bLogSuffix = true; - } - if(bLog) - rc = vboxInitLogging(pLog, bLogSuffix); - else -#endif - rc = vboxInitQuietMode(); - -#ifdef VBOX_WITH_CROGL - if(!rc && bTest3D) - rc = vboxCheck3DAccelerationSupported(); -#endif - -#ifdef VBOX_WITH_VIDEOHWACCEL - if(!rc && bTest2D) - rc = vboxCheck2DVideoAccelerationSupported(); -#endif - - } - } - - /*RTR3Term();*/ - return rc; - -} - -#ifdef RT_OS_WINDOWS -extern "C" int WINAPI WinMain(HINSTANCE hInstance, - HINSTANCE /*hPrevInstance*/, LPSTR lpCmdLine, int /*nShowCmd*/) -{ - return main(__argc, __argv); -} -#endif - diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Main/src-server/generic/OpenGLTest.cpp virtualbox-4.1.44-dfsg/src/VBox/Main/src-server/generic/OpenGLTest.cpp --- virtualbox-4.1.12-dfsg/src/VBox/Main/src-server/generic/OpenGLTest.cpp 2012-04-02 13:28:56.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Main/src-server/generic/OpenGLTest.cpp 1970-01-01 00:00:00.000000000 +0000 @@ -1,78 +0,0 @@ -/* $Id: OpenGLTest.cpp $ */ -/** @file - * VBox host opengl support test - generic implementation. - */ - -/* - * Copyright (C) 2009 Oracle Corporation - * - * This file is part of VirtualBox Open Source Edition (OSE), as - * available from http://www.virtualbox.org. This file is free software; - * you can redistribute it and/or modify it under the terms of the GNU - * General Public License (GPL) as published by the Free Software - * Foundation, in version 2 as it comes in the "COPYING" file of the - * VirtualBox OSE distribution. VirtualBox OSE is distributed in the - * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind. - */ - -#include -#include -#include -#include -#include -#include -#include -#include -#include - -bool is3DAccelerationSupported() -{ - static char pszVBoxPath[RTPATH_MAX]; - const char *papszArgs[4] = { NULL, "-test", "3D", NULL}; - int rc; - RTPROCESS Process; - RTPROCSTATUS ProcStatus; - uint64_t StartTS; - - rc = RTPathExecDir(pszVBoxPath, RTPATH_MAX); AssertRCReturn(rc, false); -#if defined(RT_OS_WINDOWS) || defined(RT_OS_OS2) - rc = RTPathAppend(pszVBoxPath, RTPATH_MAX, "VBoxTestOGL.exe"); -#else - rc = RTPathAppend(pszVBoxPath, RTPATH_MAX, "VBoxTestOGL"); -#endif - papszArgs[0] = pszVBoxPath; /* argv[0] */ - AssertRCReturn(rc, false); - - rc = RTProcCreate(pszVBoxPath, papszArgs, RTENV_DEFAULT, 0, &Process); - if (RT_FAILURE(rc)) - return false; - - StartTS = RTTimeMilliTS(); - - while (1) - { - rc = RTProcWait(Process, RTPROCWAIT_FLAGS_NOBLOCK, &ProcStatus); - if (rc != VERR_PROCESS_RUNNING) - break; - - if (RTTimeMilliTS() - StartTS > 30*1000 /* 30 sec */) - { - RTProcTerminate(Process); - RTThreadSleep(100); - RTProcWait(Process, RTPROCWAIT_FLAGS_NOBLOCK, &ProcStatus); - return false; - } - RTThreadSleep(100); - } - - if (RT_SUCCESS(rc)) - { - if ((ProcStatus.enmReason==RTPROCEXITREASON_NORMAL) && (ProcStatus.iStatus==0)) - { - return true; - } - } - - return false; -} - diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Main/src-server/HostImpl.cpp virtualbox-4.1.44-dfsg/src/VBox/Main/src-server/HostImpl.cpp --- virtualbox-4.1.12-dfsg/src/VBox/Main/src-server/HostImpl.cpp 2012-04-02 13:28:55.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Main/src-server/HostImpl.cpp 2015-11-11 15:08:52.000000000 +0000 @@ -122,7 +122,7 @@ #endif #ifdef VBOX_WITH_CROGL -extern bool is3DAccelerationSupported(); +#include #endif /* VBOX_WITH_CROGL */ #include @@ -364,7 +364,7 @@ m->f3DAccelerationSupported = false; #ifdef VBOX_WITH_CROGL - m->f3DAccelerationSupported = is3DAccelerationSupported(); + m->f3DAccelerationSupported = VBoxOglIs3DAccelerationSupported(); #endif /* VBOX_WITH_CROGL */ #if defined (RT_OS_LINUX) || defined(RT_OS_DARWIN) || defined(RT_OS_FREEBSD) @@ -1083,6 +1083,10 @@ *aSupported = m->f3DAccelerationSupported; +#ifdef DEBUG_misha + AssertMsgFailed(("should not be here any more!\n")); +#endif + return S_OK; } @@ -1090,7 +1094,6 @@ IProgress **aProgress) { CheckComArgOutPointerValid(aHostNetworkInterface); - CheckComArgNotNull(*aHostNetworkInterface); CheckComArgOutPointerValid(aProgress); AutoCaller autoCaller(this); @@ -1103,6 +1106,10 @@ int r = NetIfCreateHostOnlyNetworkInterface(m->pParent, aHostNetworkInterface, aProgress); if (RT_SUCCESS(r)) { + if (!*aHostNetworkInterface) + return setError(E_FAIL, + tr("Unable to create a host network interface")); + #if !defined(RT_OS_WINDOWS) Bstr tmpAddr, tmpMask, tmpName; HRESULT hrc; diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Main/src-server/MachineImpl.cpp virtualbox-4.1.44-dfsg/src/VBox/Main/src-server/MachineImpl.cpp --- virtualbox-4.1.12-dfsg/src/VBox/Main/src-server/MachineImpl.cpp 2012-04-02 13:28:55.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Main/src-server/MachineImpl.cpp 2015-11-11 15:08:52.000000000 +0000 @@ -166,7 +166,7 @@ mMonitorCount = 1; mHWVirtExEnabled = true; mHWVirtExNestedPagingEnabled = true; -#if HC_ARCH_BITS == 64 && !defined(RT_OS_LINUX) +#if HC_ARCH_BITS == 64 && !defined(RT_OS_LINUX) && !defined(RT_OS_SOLARIS) mHWVirtExLargePagesEnabled = true; #else /* Not supported on 32 bits hosts. */ @@ -194,13 +194,14 @@ for (size_t i = 3; i < RT_ELEMENTS(mBootOrder); ++i) mBootOrder[i] = DeviceType_Null; - mClipboardMode = ClipboardMode_Bidirectional; + mClipboardMode = ClipboardMode_Disabled; mGuestPropertyNotificationPatterns = ""; mFirmwareType = FirmwareType_BIOS; mKeyboardHidType = KeyboardHidType_PS2Keyboard; mPointingHidType = PointingHidType_PS2Mouse; mChipsetType = ChipsetType_PIIX3; + mEmulatedUSBCardReaderEnabled = FALSE; for (size_t i = 0; i < RT_ELEMENTS(mCPUAttached); i++) mCPUAttached[i] = false; @@ -1491,14 +1492,42 @@ STDMETHODIMP Machine::COMGETTER(EmulatedUSBCardReaderEnabled)(BOOL *enabled) { +#ifdef VBOX_WITH_USB_CARDREADER + CheckComArgOutPointerValid(enabled); + + AutoCaller autoCaller(this); + if (FAILED(autoCaller.rc())) return autoCaller.rc(); + + AutoReadLock alock(this COMMA_LOCKVAL_SRC_POS); + + *enabled = mHWData->mEmulatedUSBCardReaderEnabled; + + return S_OK; +#else NOREF(enabled); return E_NOTIMPL; +#endif } STDMETHODIMP Machine::COMSETTER(EmulatedUSBCardReaderEnabled)(BOOL enabled) { +#ifdef VBOX_WITH_USB_CARDREADER + AutoCaller autoCaller(this); + if (FAILED(autoCaller.rc())) return autoCaller.rc(); + AutoWriteLock alock(this COMMA_LOCKVAL_SRC_POS); + + int rc = checkStateDependency(MutableStateDep); + if (FAILED(rc)) return rc; + + setModified(IsModified_MachineData); + mHWData.backup(); + mHWData->mEmulatedUSBCardReaderEnabled = enabled; + + return S_OK; +#else NOREF(enabled); return E_NOTIMPL; +#endif } STDMETHODIMP Machine::COMGETTER(EmulatedUSBWebcameraEnabled)(BOOL *enabled) @@ -3101,6 +3130,21 @@ LogFlowThisFunc(("mSession.mPid=%d(0x%x)\n", mData->mSession.mPid, mData->mSession.mPid)); LogFlowThisFunc(("session.pid=%d(0x%x)\n", pid, pid)); +#if defined(VBOX_WITH_HARDENING) && defined(RT_OS_WINDOWS) + /* Hardened windows builds spawns three processes when a VM is + launched, the 3rd one is the one that will end up here. */ + RTPROCESS ppid; + int rc = RTProcQueryParent(pid, &ppid); + if (RT_SUCCESS(rc)) + rc = RTProcQueryParent(ppid, &ppid); + if ( (RT_SUCCESS(rc) && mData->mSession.mPid == ppid) + || rc == VERR_ACCESS_DENIED) + { + LogFlowThisFunc(("mSession.mPID => %d(%#x) - windows hardening stub\n", mData->mSession.mPid, pid)); + mData->mSession.mPid = pid; + } +#endif + if (mData->mSession.mPid != pid) return setError(E_ACCESSDENIED, tr("An unexpected process (PID=0x%08X) has tried to lock the " @@ -4888,6 +4932,12 @@ logFolder.c_str(), RTPATH_DELIMITER, i); RTFileDelete(log.c_str()); } +#if defined(RT_OS_WINDOWS) + log = Utf8StrFmt("%s%cVBoxStartup.log", logFolder.c_str(), RTPATH_DELIMITER); + RTFileDelete(log.c_str()); + log = Utf8StrFmt("%s%cVBoxHardening.log", logFolder.c_str(), RTPATH_DELIMITER); + RTFileDelete(log.c_str()); +#endif RTDirRemove(logFolder.c_str()); } @@ -5084,21 +5134,17 @@ AutoReadLock alock(this COMMA_LOCKVAL_SRC_POS); Utf8Str strName(aName); - HWData::GuestPropertyList::const_iterator it; + HWData::GuestPropertyMap::const_iterator it = mHWData->mGuestProperties.find(strName); - for (it = mHWData->mGuestProperties.begin(); - it != mHWData->mGuestProperties.end(); ++it) + if (it != mHWData->mGuestProperties.end()) { - if (it->strName == strName) - { - char szFlags[MAX_FLAGS_LEN + 1]; - it->strValue.cloneTo(aValue); - *aTimestamp = it->mTimestamp; - writeFlags(it->mFlags, szFlags); - Bstr(szFlags).cloneTo(aFlags); - break; - } + char szFlags[MAX_FLAGS_LEN + 1]; + it->second.strValue.cloneTo(aValue); + *aTimestamp = it->second.mTimestamp; + writeFlags(it->second.mFlags, szFlags); + Bstr(szFlags).cloneTo(aFlags); } + return S_OK; } @@ -5179,9 +5225,6 @@ AutoWriteLock alock(this COMMA_LOCKVAL_SRC_POS); HRESULT rc = S_OK; - HWData::GuestProperty property; - property.mFlags = NILFLAG; - bool found = false; rc = checkStateDependency(MutableStateDep); if (FAILED(rc)) return rc; @@ -5191,64 +5234,59 @@ Utf8Str utf8Name(aName); Utf8Str utf8Flags(aFlags); uint32_t fFlags = NILFLAG; - if ( (aFlags != NULL) - && RT_FAILURE(validateFlags(utf8Flags.c_str(), &fFlags)) - ) + if ( aFlags != NULL + && RT_FAILURE(validateFlags(utf8Flags.c_str(), &fFlags))) return setError(E_INVALIDARG, - tr("Invalid flag values: '%ls'"), + tr("Invalid guest property flag values: '%ls'"), aFlags); - /** @todo r=bird: see efficiency rant in PushGuestProperty. (Yeah, I - * know, this is simple and do an OK job atm.) */ - HWData::GuestPropertyList::iterator it; - for (it = mHWData->mGuestProperties.begin(); - it != mHWData->mGuestProperties.end(); ++it) - if (it->strName == utf8Name) - { - property = *it; - if (it->mFlags & (RDONLYHOST)) - rc = setError(E_ACCESSDENIED, - tr("The property '%ls' cannot be changed by the host"), - aName); - else - { - setModified(IsModified_MachineData); - mHWData.backup(); // @todo r=dj backup in a loop?!? - - /* The backup() operation invalidates our iterator, so - * get a new one. */ - for (it = mHWData->mGuestProperties.begin(); - it->strName != utf8Name; - ++it) - ; - mHWData->mGuestProperties.erase(it); - } - found = true; - break; - } - if (found && SUCCEEDED(rc)) + bool fDelete = !RT_VALID_PTR(aValue) || *(aValue) == '\0'; + HWData::GuestPropertyMap::iterator it = mHWData->mGuestProperties.find(utf8Name); + if (it == mHWData->mGuestProperties.end()) { - if (*aValue) + if (!fDelete) { + setModified(IsModified_MachineData); + mHWData.backup(); + RTTIMESPEC time; - property.strValue = aValue; - property.mTimestamp = RTTimeSpecGetNano(RTTimeNow(&time)); - if (aFlags != NULL) - property.mFlags = fFlags; - mHWData->mGuestProperties.push_back(property); + HWData::GuestProperty prop; + prop.strValue = aValue; + prop.mTimestamp = RTTimeSpecGetNano(RTTimeNow(&time)); + prop.mFlags = fFlags; + mHWData->mGuestProperties[Utf8Str(aName)] = prop; } } - else if (SUCCEEDED(rc) && *aValue) + else { - RTTIMESPEC time; - setModified(IsModified_MachineData); - mHWData.backup(); - property.strName = aName; - property.strValue = aValue; - property.mTimestamp = RTTimeSpecGetNano(RTTimeNow(&time)); - property.mFlags = fFlags; - mHWData->mGuestProperties.push_back(property); + if (it->second.mFlags & (RDONLYHOST)) + { + rc = setError(E_ACCESSDENIED, + tr("The property '%ls' cannot be changed by the host"), + aName); + } + else + { + setModified(IsModified_MachineData); + mHWData.backup(); + + /* The backupEx() operation invalidates our iterator, + * so get a new one. */ + it = mHWData->mGuestProperties.find(utf8Name); + Assert(it != mHWData->mGuestProperties.end()); + + if (!fDelete) + { + RTTIMESPEC time; + it->second.strValue = aValue; + it->second.mTimestamp = RTTimeSpecGetNano(RTTimeNow(&time)); + it->second.mFlags = fFlags; + } + else + mHWData->mGuestProperties.erase(it); + } } + if ( SUCCEEDED(rc) && ( mHWData->mGuestPropertyNotificationPatterns.isEmpty() || RTStrSimplePatternMultiMatch(mHWData->mGuestPropertyNotificationPatterns.c_str(), @@ -5259,8 +5297,8 @@ ) ) { - /** @todo r=bird: Why aren't we leaving the lock here? The - * same code in PushGuestProperty does... */ + alock.release(); + mParent->onGuestPropertyChange(mData->mUuid, aName, aValue ? aValue : Bstr("").raw(), aFlags ? aFlags : Bstr("").raw()); @@ -5351,42 +5389,50 @@ AutoReadLock alock(this COMMA_LOCKVAL_SRC_POS); Utf8Str strPatterns(aPatterns); + HWData::GuestPropertyMap propMap; + /* * Look for matching patterns and build up a list. */ - HWData::GuestPropertyList propList; - for (HWData::GuestPropertyList::iterator it = mHWData->mGuestProperties.begin(); - it != mHWData->mGuestProperties.end(); - ++it) + HWData::GuestPropertyMap::const_iterator it = mHWData->mGuestProperties.begin(); + while (it != mHWData->mGuestProperties.end()) + { if ( strPatterns.isEmpty() || RTStrSimplePatternMultiMatch(strPatterns.c_str(), RTSTR_MAX, - it->strName.c_str(), + it->first.c_str(), RTSTR_MAX, NULL) ) - propList.push_back(*it); + { + propMap.insert(*it); + } + + it++; + } + + alock.release(); /* * And build up the arrays for returning the property information. */ - size_t cEntries = propList.size(); + size_t cEntries = propMap.size(); SafeArray names(cEntries); SafeArray values(cEntries); SafeArray timestamps(cEntries); SafeArray flags(cEntries); size_t iProp = 0; - for (HWData::GuestPropertyList::iterator it = propList.begin(); - it != propList.end(); - ++it) + + it = propMap.begin(); + while (it != propMap.end()) { char szFlags[MAX_FLAGS_LEN + 1]; - it->strName.cloneTo(&names[iProp]); - it->strValue.cloneTo(&values[iProp]); - timestamps[iProp] = it->mTimestamp; - writeFlags(it->mFlags, szFlags); - Bstr(szFlags).cloneTo(&flags[iProp]); - ++iProp; + it->first.cloneTo(&names[iProp]); + it->second.strValue.cloneTo(&values[iProp]); + timestamps[iProp] = it->second.mTimestamp; + writeFlags(it->second.mFlags, szFlags); + Bstr(szFlags).cloneTo(&flags[iProp++]); + it++; } names.detachTo(ComSafeArrayOutArg(aNames)); values.detachTo(ComSafeArrayOutArg(aValues)); @@ -6475,6 +6521,19 @@ } /** + * Returns the full path to the machine's hardened log file. + */ +Utf8Str Machine::i_getHardeningLogFilename(void) +{ + Utf8Str strFilename; + getLogFolder(strFilename); + Assert(strFilename.length()); + strFilename.append(RTPATH_SLASH_STR "VBoxHardening.log"); + return strFilename; +} + + +/** * Composes a unique saved state filename based on the current system time. The filename is * granular to the second so this will work so long as no more than one snapshot is taken on * a machine per second. @@ -6551,11 +6610,11 @@ /* get the path to the executable */ char szPath[RTPATH_MAX]; RTPathAppPrivateArch(szPath, sizeof(szPath) - 1); - size_t sz = strlen(szPath); - szPath[sz++] = RTPATH_DELIMITER; - szPath[sz] = 0; - char *cmd = szPath + sz; - sz = RTPATH_MAX - sz; + size_t cchBufLeft = strlen(szPath); + szPath[cchBufLeft++] = RTPATH_DELIMITER; + szPath[cchBufLeft] = 0; + char *pszNamePart = szPath + cchBufLeft; + cchBufLeft = sizeof(szPath) - cchBufLeft; int vrc = VINF_SUCCESS; RTPROCESS pid = NIL_RTPROCESS; @@ -6611,21 +6670,54 @@ RTStrFree(newEnvStr); } + /* Hardening logging */ +#if defined(RT_OS_WINDOWS) && defined(VBOX_WITH_HARDENING) + Utf8Str strSupHardeningLogArg("--sup-hardening-log="); + { + Utf8Str strHardeningLogFile = i_getHardeningLogFilename(); + int vrc2 = RTFileDelete(strHardeningLogFile.c_str()); + if (vrc2 == VERR_PATH_NOT_FOUND || vrc2 == VERR_FILE_NOT_FOUND) + { + Utf8Str strStartupLogDir = strHardeningLogFile; + strStartupLogDir.stripFilename(); + RTDirCreateFullPath(strStartupLogDir.c_str(), 0755); /** @todo add a variant for creating the path to a file without stripping the file. */ + } + strSupHardeningLogArg.append(strHardeningLogFile); + + /* Remove legacy log filename to avoid confusion. */ + Utf8Str strOldStartupLogFile; + getLogFolder(strOldStartupLogFile); + strOldStartupLogFile.append(RTPATH_SLASH_STR "VBoxStartup.log"); + RTFileDelete(strOldStartupLogFile.c_str()); + } + const char *pszSupHardeningLogArg = strSupHardeningLogArg.c_str(); +#else + const char *pszSupHardeningLogArg = NULL; +#endif + /* Qt is default */ #ifdef VBOX_WITH_QTGUI if (strType == "gui" || strType == "GUI/Qt") { # ifdef RT_OS_DARWIN /* Avoid Launch Services confusing this with the selector by using a helper app. */ - const char VirtualBox_exe[] = "../Resources/VirtualBoxVM.app/Contents/MacOS/VirtualBoxVM"; + const char s_szVirtualBox_exe[] = "../Resources/VirtualBoxVM.app/Contents/MacOS/VirtualBoxVM"; # else - const char VirtualBox_exe[] = "VirtualBox" HOSTSUFF_EXE; + const char s_szVirtualBox_exe[] = "VirtualBox" HOSTSUFF_EXE; # endif - Assert(sz >= sizeof(VirtualBox_exe)); - strcpy(cmd, VirtualBox_exe); + Assert(cchBufLeft >= sizeof(s_szVirtualBox_exe)); + strcpy(pszNamePart, s_szVirtualBox_exe); Utf8Str idStr = mData->mUuid.toString(); - const char * args[] = {szPath, "--comment", mUserData->s.strName.c_str(), "--startvm", idStr.c_str(), "--no-startvm-errormsgbox", 0 }; - vrc = RTProcCreate(szPath, args, env, 0, &pid); + const char *apszArgs[] = + { + szPath, + "--comment", mUserData->s.strName.c_str(), + "--startvm", idStr.c_str(), + "--no-startvm-errormsgbox", + pszSupHardeningLogArg, + NULL + }; + vrc = RTProcCreate(szPath, apszArgs, env, 0, &pid); } #else /* !VBOX_WITH_QTGUI */ if (0) @@ -6637,14 +6729,20 @@ #ifdef VBOX_WITH_VBOXSDL if (strType == "sdl" || strType == "GUI/SDL") { - const char VBoxSDL_exe[] = "VBoxSDL" HOSTSUFF_EXE; - Assert(sz >= sizeof(VBoxSDL_exe)); - strcpy(cmd, VBoxSDL_exe); + static const char s_szVBoxSDL_exe[] = "VBoxSDL" HOSTSUFF_EXE; + Assert(cchBufLeft >= sizeof(s_szVBoxSDL_exe)); + strcpy(pszNamePart, s_szVBoxSDL_exe); Utf8Str idStr = mData->mUuid.toString(); - const char * args[] = {szPath, "--comment", mUserData->s.strName.c_str(), "--startvm", idStr.c_str(), 0 }; - fprintf(stderr, "SDL=%s\n", szPath); - vrc = RTProcCreate(szPath, args, env, 0, &pid); + const char *apszArgs[] = + { + szPath, + "--comment", mUserData->s.strName.c_str(), + "--startvm", idStr.c_str(), + pszSupHardeningLogArg, + NULL + }; + vrc = RTProcCreate(szPath, apszArgs, env, 0, &pid); } #else /* !VBOX_WITH_VBOXSDL */ if (0) @@ -6666,29 +6764,31 @@ * Only if a VRDE has been installed and the VM enables it, the "headless" will work * differently in 4.0 and 3.x. */ - const char VBoxHeadless_exe[] = "VBoxHeadless" HOSTSUFF_EXE; - Assert(sz >= sizeof(VBoxHeadless_exe)); - strcpy(cmd, VBoxHeadless_exe); + static const char s_szVBoxHeadless_exe[] = "VBoxHeadless" HOSTSUFF_EXE; + Assert(cchBufLeft >= sizeof(s_szVBoxHeadless_exe)); + strcpy(pszNamePart, s_szVBoxHeadless_exe); Utf8Str idStr = mData->mUuid.toString(); - /* Leave space for "--capture" arg. */ - const char * args[] = {szPath, "--comment", mUserData->s.strName.c_str(), - "--startvm", idStr.c_str(), - "--vrde", "config", - 0, /* For "--capture". */ - 0 }; - if (strType == "capture") + const char *apszArgs[] = { - unsigned pos = RT_ELEMENTS(args) - 2; - args[pos] = "--capture"; - } - vrc = RTProcCreate(szPath, args, env, -#ifdef RT_OS_WINDOWS - RTPROC_FLAGS_NO_WINDOW, -#else - 0, -#endif - &pid); + szPath, + "--comment", mUserData->s.strName.c_str(), + "--startvm", idStr.c_str(), + "--vrde", "config", + 0, /* For "--capture". */ + 0, /* For "--sup-hardening-log". */ + 0 + }; + unsigned iArg = 7; + if (strType == "capture") + apszArgs[iArg++] = "--capture"; + apszArgs[iArg++] = pszSupHardeningLogArg; + +# ifdef RT_OS_WINDOWS + vrc = RTProcCreate(szPath, apszArgs, env, RTPROC_FLAGS_NO_WINDOW, &pid); +# else + vrc = RTProcCreate(szPath, apszArgs, env, 0, &pid); +# endif } #else /* !VBOX_WITH_HEADLESS */ if (0) @@ -6902,22 +7002,35 @@ if (vrc != VERR_PROCESS_RUNNING) { + Utf8Str strExtraInfo; + +#if defined(RT_OS_WINDOWS) && defined(VBOX_WITH_HARDENING) + /* If the startup logfile exists and is of non-zero length, tell the + user to look there for more details to encourage them to attach it + when reporting startup issues. */ + Utf8Str strHardeningLogFile = i_getHardeningLogFilename(); + uint64_t cbStartupLogFile = 0; + int vrc2 = RTFileQuerySize(strHardeningLogFile.c_str(), &cbStartupLogFile); + if (RT_SUCCESS(vrc2) && cbStartupLogFile > 0) + strExtraInfo.append(Utf8StrFmt(tr(". More details may be available in '%s'"), strHardeningLogFile.c_str())); +#endif + if (RT_SUCCESS(vrc) && status.enmReason == RTPROCEXITREASON_NORMAL) rc = setError(E_FAIL, - tr("The virtual machine '%s' has terminated unexpectedly during startup with exit code %d"), - getName().c_str(), status.iStatus); + tr("The virtual machine '%s' has terminated unexpectedly during startup with exit code %d (%#x)%s"), + getName().c_str(), status.iStatus, status.iStatus, strExtraInfo.c_str()); else if (RT_SUCCESS(vrc) && status.enmReason == RTPROCEXITREASON_SIGNAL) rc = setError(E_FAIL, - tr("The virtual machine '%s' has terminated unexpectedly during startup because of signal %d"), - getName().c_str(), status.iStatus); + tr("The virtual machine '%s' has terminated unexpectedly during startup because of signal %d%s"), + getName().c_str(), status.iStatus, strExtraInfo.c_str()); else if (RT_SUCCESS(vrc) && status.enmReason == RTPROCEXITREASON_ABEND) rc = setError(E_FAIL, - tr("The virtual machine '%s' has terminated abnormally"), - getName().c_str(), status.iStatus); + tr("The virtual machine '%s' has terminated abnormally (iStatus=%#x)%s"), + getName().c_str(), status.iStatus, strExtraInfo.c_str()); else rc = setError(E_FAIL, - tr("The virtual machine '%s' has terminated unexpectedly during startup (%Rrc)"), - getName().c_str(), rc); + tr("The virtual machine '%s' has terminated unexpectedly during startup (%Rrc)%s"), + getName().c_str(), vrc, strExtraInfo.c_str()); } #endif @@ -7832,6 +7945,7 @@ mHWData->mPointingHidType = data.pointingHidType; mHWData->mKeyboardHidType = data.keyboardHidType; mHWData->mChipsetType = data.chipsetType; + mHWData->mEmulatedUSBCardReaderEnabled = data.fEmulatedUSBCardReader; mHWData->mHpetEnabled = data.fHpetEnabled; /* VRDEServer */ @@ -7951,8 +8065,8 @@ const settings::GuestProperty &prop = *it; uint32_t fFlags = guestProp::NILFLAG; guestProp::validateFlags(prop.strFlags.c_str(), &fFlags); - HWData::GuestProperty property = { prop.strName, prop.strValue, prop.timestamp, fFlags }; - mHWData->mGuestProperties.push_back(property); + HWData::GuestProperty property = { prop.strValue, (LONG64) prop.timestamp, fFlags }; + mHWData->mGuestProperties[prop.strName] = property; } mHWData->mGuestPropertyNotificationPatterns = data.strNotificationPatterns; @@ -8929,6 +9043,8 @@ // chipset data.chipsetType = mHWData->mChipsetType; + data.fEmulatedUSBCardReader = !!mHWData->mEmulatedUSBCardReaderEnabled; + // HPET data.fHpetEnabled = !!mHWData->mHpetEnabled; @@ -9053,11 +9169,11 @@ // guest properties data.llGuestProperties.clear(); #ifdef VBOX_WITH_GUEST_PROPS - for (HWData::GuestPropertyList::const_iterator it = mHWData->mGuestProperties.begin(); + for (HWData::GuestPropertyMap::const_iterator it = mHWData->mGuestProperties.begin(); it != mHWData->mGuestProperties.end(); ++it) { - HWData::GuestProperty property = *it; + HWData::GuestProperty property = it->second; /* Remove transient guest properties at shutdown unless we * are saving state */ @@ -9068,7 +9184,7 @@ || property.mFlags & guestProp::TRANSRESET)) continue; settings::GuestProperty prop; - prop.strName = property.strName; + prop.strName = it->first; prop.strValue = property.strValue; prop.timestamp = property.mTimestamp; char szFlags[guestProp::MAX_FLAGS_LEN + 1]; @@ -11749,18 +11865,18 @@ com::SafeArray timestamps(cEntries); com::SafeArray flags(cEntries); unsigned i = 0; - for (HWData::GuestPropertyList::iterator it = mHWData->mGuestProperties.begin(); + for (HWData::GuestPropertyMap::iterator it = mHWData->mGuestProperties.begin(); it != mHWData->mGuestProperties.end(); ++it) { char szFlags[MAX_FLAGS_LEN + 1]; - it->strName.cloneTo(&names[i]); - it->strValue.cloneTo(&values[i]); - timestamps[i] = it->mTimestamp; + it->first.cloneTo(&names[i]); + it->second.strValue.cloneTo(&values[i]); + timestamps[i] = it->second.mTimestamp; /* If it is NULL, keep it NULL. */ - if (it->mFlags) + if (it->second.mFlags) { - writeFlags(it->mFlags, szFlags); + writeFlags(it->second.mFlags, szFlags); Bstr(szFlags).cloneTo(&flags[i]); } else @@ -11780,9 +11896,11 @@ STDMETHODIMP SessionMachine::PushGuestProperty(IN_BSTR aName, IN_BSTR aValue, LONG64 aTimestamp, - IN_BSTR aFlags) + IN_BSTR aFlags, + BOOL *aNotify) { - LogFlowThisFunc(("\n")); + LogFlow(("aName=%ls, aValue=%ls, aTimestamp=%RI64, aFlags=%ls\n", + aName, aValue, aTimestamp, aFlags)); #ifdef VBOX_WITH_GUEST_PROPS using namespace guestProp; @@ -11791,18 +11909,21 @@ CheckComArgNotNull(aValue); CheckComArgNotNull(aFlags); + *aNotify = FALSE; + try { /* * Convert input up front. */ - Utf8Str utf8Name(aName); - uint32_t fFlags = NILFLAG; + Utf8Str utf8Name(aName); + uint32_t fFlags = NILFLAG; if (aFlags) { Utf8Str utf8Flags(aFlags); int vrc = validateFlags(utf8Flags.c_str(), &fFlags); - AssertRCReturn(vrc, E_INVALIDARG); + if (RT_FAILURE(vrc)) + return E_INVALIDARG; } /* @@ -11813,6 +11934,11 @@ AutoWriteLock alock(this COMMA_LOCKVAL_SRC_POS); + LogFlow(("notificationPatterns=%s, machineState=%s\n", + mHWData->mGuestPropertyNotificationPatterns.isEmpty() + ? "" : mHWData->mGuestPropertyNotificationPatterns.c_str(), + Global::stringifyMachineState(mData->mMachineState))); + switch (mData->mMachineState) { case MachineState_Paused: @@ -11837,29 +11963,29 @@ setModified(IsModified_MachineData); mHWData.backup(); - /** @todo r=bird: The careful memory handling doesn't work out here because - * the catch block won't undo any damage we've done. So, if push_back throws - * bad_alloc then you've lost the value. - * - * Another thing. Doing a linear search here isn't extremely efficient, esp. - * since values that changes actually bubbles to the end of the list. Using - * something that has an efficient lookup and can tolerate a bit of updates - * would be nice. RTStrSpace is one suggestion (it's not perfect). Some - * combination of RTStrCache (for sharing names and getting uniqueness into - * the bargain) and hash/tree is another. */ - for (HWData::GuestPropertyList::iterator iter = mHWData->mGuestProperties.begin(); - iter != mHWData->mGuestProperties.end(); - ++iter) - if (utf8Name == iter->strName) - { - mHWData->mGuestProperties.erase(iter); - mData->mGuestPropertiesModified = TRUE; - break; + bool fDelete = !RT_VALID_PTR(aValue) || *(aValue) == '\0'; + HWData::GuestPropertyMap::iterator it = mHWData->mGuestProperties.find(utf8Name); + if (it != mHWData->mGuestProperties.end()) + { + if (!fDelete) + { + it->second.strValue = aValue; + it->second.mTimestamp = aTimestamp; + it->second.mFlags = fFlags; } - if (aValue != NULL) + else + mHWData->mGuestProperties.erase(it); + + mData->mGuestPropertiesModified = TRUE; + } + else if (!fDelete) { - HWData::GuestProperty property = { aName, aValue, aTimestamp, fFlags }; - mHWData->mGuestProperties.push_back(property); + HWData::GuestProperty prop; + prop.strValue = aValue; + prop.mTimestamp = aTimestamp; + prop.mFlags = fFlags; + + mHWData->mGuestProperties[utf8Name] = prop; mData->mGuestPropertiesModified = TRUE; } @@ -11879,6 +12005,7 @@ aName, aValue, aFlags); + *aNotify = TRUE; } } catch (...) @@ -12667,6 +12794,10 @@ * Helper to change the machine state (reimplementation). * * @note Locks this object for writing. + * @note This method must not call saveSettings or SaveSettings, otherwise + * it can cause crashes in random places due to unexpectedly committing + * the current settings. The caller is responsible for that. The call + * to saveStateSettings is fine, because this method does not commit. */ HRESULT SessionMachine::setMachineState(MachineState_T aMachineState) { @@ -12850,13 +12981,13 @@ /* Make sure any transient guest properties get removed from the * property store on shutdown. */ - HWData::GuestPropertyList::iterator it; + HWData::GuestPropertyMap::const_iterator it; BOOL fNeedsSaving = mData->mGuestPropertiesModified; if (!fNeedsSaving) for (it = mHWData->mGuestProperties.begin(); it != mHWData->mGuestProperties.end(); ++it) - if ( (it->mFlags & guestProp::TRANSIENT) - || (it->mFlags & guestProp::TRANSRESET)) + if ( (it->second.mFlags & guestProp::TRANSIENT) + || (it->second.mFlags & guestProp::TRANSRESET)) { fNeedsSaving = true; break; @@ -12865,7 +12996,6 @@ { mData->mCurrentStateModified = TRUE; stsFlags |= SaveSTS_CurStateModified; - SaveSettings(); // @todo r=dj why the public method? why first SaveSettings and then saveStateSettings? } } #endif diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Main/src-server/MediumImpl.cpp virtualbox-4.1.44-dfsg/src/VBox/Main/src-server/MediumImpl.cpp --- virtualbox-4.1.12-dfsg/src/VBox/Main/src-server/MediumImpl.cpp 2012-04-02 13:28:56.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Main/src-server/MediumImpl.cpp 2015-11-11 15:08:52.000000000 +0000 @@ -5891,7 +5891,9 @@ vrc = VDGetFormat(NULL /* pVDIfsDisk */, NULL /* pVDIfsImage */, locationFull.c_str(), &backendName, &enmType); } - else if (vrc != VERR_FILE_NOT_FOUND && vrc != VERR_PATH_NOT_FOUND) + else if ( vrc != VERR_FILE_NOT_FOUND + && vrc != VERR_PATH_NOT_FOUND + && vrc != VERR_ACCESS_DENIED) { /* assume it's not a file, restore the original location */ locationFull = aLocation; @@ -5901,7 +5903,11 @@ if (RT_FAILURE(vrc)) { - if (vrc == VERR_FILE_NOT_FOUND || vrc == VERR_PATH_NOT_FOUND) + if (vrc == VERR_ACCESS_DENIED) + return setError(VBOX_E_FILE_ERROR, + tr("Permission problem accessing the file for the medium '%s' (%Rrc)"), + locationFull.c_str(), vrc); + else if (vrc == VERR_FILE_NOT_FOUND || vrc == VERR_PATH_NOT_FOUND) return setError(VBOX_E_FILE_ERROR, tr("Could not find file for the medium '%s' (%Rrc)"), locationFull.c_str(), vrc); diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Main/src-server/NATEngineImpl.cpp virtualbox-4.1.44-dfsg/src/VBox/Main/src-server/NATEngineImpl.cpp --- virtualbox-4.1.12-dfsg/src/VBox/Main/src-server/NATEngineImpl.cpp 2012-04-02 13:28:56.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Main/src-server/NATEngineImpl.cpp 2015-11-11 15:08:52.000000000 +0000 @@ -4,7 +4,7 @@ */ /* - * Copyright (C) 2010 Oracle Corporation + * Copyright (C) 2010-2013 Oracle Corporation * * This file is part of VirtualBox Open Source Edition (OSE), as * available from http://www.virtualbox.org. This file is free software; @@ -338,6 +338,7 @@ mNATRules.erase(it); mParent->setModified(Machine::IsModified_NetworkAdapters); m_fModified = true; + mData.commit(); alock.release(); mParent->onNATRedirectRuleChange(ulSlot, TRUE, aName, proto, Bstr(strHostIP).raw(), u16HostPort, Bstr(strGuestIP).raw(), u16GuestPort); return S_OK; diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Main/src-server/Performance.cpp virtualbox-4.1.44-dfsg/src/VBox/Main/src-server/Performance.cpp --- virtualbox-4.1.12-dfsg/src/VBox/Main/src-server/Performance.cpp 2012-04-02 13:28:56.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Main/src-server/Performance.cpp 2015-11-11 15:08:52.000000000 +0000 @@ -585,6 +585,12 @@ } } +void HostCpuLoadRaw::init(ULONG period, ULONG length) +{ + HostCpuLoad::init(period, length); + mHAL->getRawHostCpuLoad(&mUserPrev, &mKernelPrev, &mIdlePrev); +} + void HostCpuLoadRaw::preCollect(CollectorHints& hints, uint64_t /* iTick */) { hints.collectHostCpuLoad(); diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Main/src-server/SnapshotImpl.cpp virtualbox-4.1.44-dfsg/src/VBox/Main/src-server/SnapshotImpl.cpp --- virtualbox-4.1.12-dfsg/src/VBox/Main/src-server/SnapshotImpl.cpp 2012-04-02 13:28:56.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Main/src-server/SnapshotImpl.cpp 2015-11-11 15:08:52.000000000 +0000 @@ -1902,8 +1902,12 @@ updateMachineStateOnClient(); stateRestored = true; + /* Paranoia: no one must have saved the settings in the mean time. If + * it happens nevertheless we'll close our eyes and continue below. */ + Assert(mMediaData.isBackedUp()); + /* assign the timestamp from the snapshot */ - Assert(RTTimeSpecGetMilli (&snapshotTimeStamp) != 0); + Assert(RTTimeSpecGetMilli(&snapshotTimeStamp) != 0); mData->mLastStateChange = snapshotTimeStamp; // detach the current-state diffs that we detected above and build a list of @@ -1929,9 +1933,12 @@ // the time in our case so instead we force a detachment here: // remove from machine data mMediaData->mAttachments.remove(pAttach); - // remove it from the backup or else saveSettings will try to detach - // it again and assert - mMediaData.backedUpData()->mAttachments.remove(pAttach); + // Remove it from the backup or else saveSettings will try to detach + // it again and assert. The paranoia check avoids crashes (see + // assert above) if this code is buggy and saves settings in the + // wrong place. + if (mMediaData.isBackedUp()) + mMediaData.backedUpData()->mAttachments.remove(pAttach); // then clean up backrefs pMedium->removeBackReference(mData->mUuid); diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Main/src-server/solaris/NetIf-solaris.cpp virtualbox-4.1.44-dfsg/src/VBox/Main/src-server/solaris/NetIf-solaris.cpp --- virtualbox-4.1.12-dfsg/src/VBox/Main/src-server/solaris/NetIf-solaris.cpp 2012-04-02 13:28:56.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Main/src-server/solaris/NetIf-solaris.cpp 2015-11-11 15:08:53.000000000 +0000 @@ -24,6 +24,8 @@ #include #include +#include +#include #include #include "Logging.h" @@ -123,7 +125,7 @@ * Try to get IP V4 address and netmask as well as Ethernet address. */ NETIFINFO Info; - memset(&Info, 0, sizeof(Info)); + RT_ZERO(Info); int Sock = socket(PF_INET, SOCK_DGRAM, IPPROTO_IP); if (Sock > 0) { @@ -335,59 +337,65 @@ if (Sock > 0) { struct lifnum IfNum; - memset(&IfNum, 0, sizeof(IfNum)); + RT_ZERO(IfNum); IfNum.lifn_family = AF_INET; int rc = ioctl(Sock, SIOCGLIFNUM, &IfNum); if (!rc) { - struct lifreq Ifaces[24]; - struct lifconf IfConfig; - memset(&IfConfig, 0, sizeof(IfConfig)); - IfConfig.lifc_family = AF_INET; - IfConfig.lifc_len = sizeof(Ifaces); - IfConfig.lifc_buf = (caddr_t)&(Ifaces[0]); - rc = ioctl(Sock, SIOCGLIFCONF, &IfConfig); - if (!rc) + int cIfaces = RT_MIN(1024, IfNum.lifn_count); /* sane limit */ + int cbIfaces = cIfaces * sizeof(struct lifreq); + struct lifreq *Ifaces = (struct lifreq *)RTMemTmpAlloc(cbIfaces); + if (Ifaces) { - for (int i = 0; i < IfNum.lifn_count; i++) + struct lifconf IfConfig; + RT_ZERO(IfConfig); + IfConfig.lifc_family = AF_INET; + IfConfig.lifc_len = cbIfaces; + IfConfig.lifc_buf = (caddr_t)Ifaces; + rc = ioctl(Sock, SIOCGLIFCONF, &IfConfig); + if (!rc) { - /* - * Skip loopback interfaces. - */ - if (!strncmp(Ifaces[i].lifr_name, "lo", 2)) - continue; - -#if 0 - rc = ioctl(Sock, SIOCGLIFADDR, &(Ifaces[i])); - if (rc >= 0) + for (int i = 0; i < cIfaces; i++) { - memcpy(Info.IPAddress.au8, ((struct sockaddr *)&Ifaces[i].lifr_addr)->sa_data, - sizeof(Info.IPAddress.au8)); - // SIOCGLIFNETMASK - struct arpreq ArpReq; - memcpy(&ArpReq.arp_pa, &Ifaces[i].lifr_addr, sizeof(struct sockaddr_in)); - /* - * We might fail if the interface has not been assigned an IP address. - * That doesn't matter; as long as it's plumbed we can pick it up. - * But, if it has not acquired an IP address we cannot obtain it's MAC - * address this way, so we just use all zeros there. + * Skip loopback interfaces. */ - rc = ioctl(Sock, SIOCGARP, &ArpReq); + if (!strncmp(Ifaces[i].lifr_name, "lo", 2)) + continue; + +#if 0 + rc = ioctl(Sock, SIOCGLIFADDR, &(Ifaces[i])); if (rc >= 0) - memcpy(&Info.MACAddress, ArpReq.arp_ha.sa_data, sizeof(Info.MACAddress)); + { + memcpy(Info.IPAddress.au8, ((struct sockaddr *)&Ifaces[i].lifr_addr)->sa_data, + sizeof(Info.IPAddress.au8)); + // SIOCGLIFNETMASK + struct arpreq ArpReq; + memcpy(&ArpReq.arp_pa, &Ifaces[i].lifr_addr, sizeof(struct sockaddr_in)); + + /* + * We might fail if the interface has not been assigned an IP address. + * That doesn't matter; as long as it's plumbed we can pick it up. + * But, if it has not acquired an IP address we cannot obtain it's MAC + * address this way, so we just use all zeros there. + */ + rc = ioctl(Sock, SIOCGARP, &ArpReq); + if (rc >= 0) + memcpy(&Info.MACAddress, ArpReq.arp_ha.sa_data, sizeof(Info.MACAddress)); + + char szNICDesc[LIFNAMSIZ + 256]; + char *pszIface = Ifaces[i].lifr_name; + strcpy(szNICDesc, pszIface); - char szNICDesc[LIFNAMSIZ + 256]; - char *pszIface = Ifaces[i].lifr_name; - strcpy(szNICDesc, pszIface); + vboxSolarisAddLinkHostIface(pszIface, &list); + } +#endif + char *pszIface = Ifaces[i].lifr_name; vboxSolarisAddLinkHostIface(pszIface, &list); } -#endif - - char *pszIface = Ifaces[i].lifr_name; - vboxSolarisAddLinkHostIface(pszIface, &list); } + RTMemTmpFree(Ifaces); } } close(Sock); diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Main/src-server/solaris/PerformanceSolaris.cpp virtualbox-4.1.44-dfsg/src/VBox/Main/src-server/solaris/PerformanceSolaris.cpp --- virtualbox-4.1.12-dfsg/src/VBox/Main/src-server/solaris/PerformanceSolaris.cpp 2012-04-02 13:28:56.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Main/src-server/solaris/PerformanceSolaris.cpp 2015-11-11 15:08:53.000000000 +0000 @@ -49,6 +49,7 @@ kstat_ctl_t *mKC; kstat_t *mSysPages; kstat_t *mZFSCache; + uint32_t mCpus; }; CollectorHAL *createHAL() @@ -62,7 +63,8 @@ CollectorSolaris::CollectorSolaris() : mKC(0), mSysPages(0), - mZFSCache(0) + mZFSCache(0), + mCpus(0) { if ((mKC = kstat_open()) == 0) { @@ -80,6 +82,7 @@ { Log(("kstat_lookup(system_pages) -> %d\n", errno)); } + /* Notice that mCpus member will be initialized by HostCpuLoadRaw::init() */ } CollectorSolaris::~CollectorSolaris() @@ -119,6 +122,8 @@ Log(("no cpu stats found!\n")); return VERR_INTERNAL_ERROR; } + else + mCpus = cpus; if (user) *user = tmpUser; if (kernel) *kernel = tmpKernel; @@ -144,8 +149,18 @@ { //Assert((pid_t)process == pstatus.pr_pid); //Log(("user=%u kernel=%u total=%u\n", prusage.pr_utime.tv_sec, prusage.pr_stime.tv_sec, prusage.pr_tstamp.tv_sec)); - *user = (uint64_t)prusage.pr_utime.tv_sec * 1000000000 + prusage.pr_utime.tv_nsec; - *kernel = (uint64_t)prusage.pr_stime.tv_sec * 1000000000 + prusage.pr_stime.tv_nsec; + /* + * The CPU time spent must be adjusted by the number of cores for compatibility with + * other platforms (see @bugref{6345}). + */ + Assert(mCpus); + if (mCpus) + { + *user = ((uint64_t)prusage.pr_utime.tv_sec * 1000000000 + prusage.pr_utime.tv_nsec) / mCpus; + *kernel = ((uint64_t)prusage.pr_stime.tv_sec * 1000000000 + prusage.pr_stime.tv_nsec) / mCpus; + } + else + *user = *kernel = 0; *total = (uint64_t)prusage.pr_tstamp.tv_sec * 1000000000 + prusage.pr_tstamp.tv_nsec; //Log(("user=%llu kernel=%llu total=%llu\n", *user, *kernel, *total)); } diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Main/src-server/VFSExplorerImpl.cpp virtualbox-4.1.44-dfsg/src/VBox/Main/src-server/VFSExplorerImpl.cpp --- virtualbox-4.1.12-dfsg/src/VBox/Main/src-server/VFSExplorerImpl.cpp 2012-04-02 13:28:56.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Main/src-server/VFSExplorerImpl.cpp 2015-11-11 15:08:52.000000000 +0000 @@ -225,11 +225,7 @@ if (pVFSExplorer->m->storageType == VFSType_File) rc = pVFSExplorer->updateFS(task.get()); else if (pVFSExplorer->m->storageType == VFSType_S3) -#ifdef VBOX_WITH_S3 - rc = pVFSExplorer->updateS3(task.get()); -#else rc = VERR_NOT_IMPLEMENTED; -#endif break; } case TaskVFSExplorer::Delete: @@ -237,11 +233,7 @@ if (pVFSExplorer->m->storageType == VFSType_File) rc = pVFSExplorer->deleteFS(task.get()); else if (pVFSExplorer->m->storageType == VFSType_S3) -#ifdef VBOX_WITH_S3 - rc = pVFSExplorer->deleteS3(task.get()); -#else rc = VERR_NOT_IMPLEMENTED; -#endif break; } default: @@ -409,138 +401,6 @@ return VINF_SUCCESS; } -#ifdef VBOX_WITH_S3 -HRESULT VFSExplorer::updateS3(TaskVFSExplorer *aTask) -{ - LogFlowFuncEnter(); - - AutoCaller autoCaller(this); - if (FAILED(autoCaller.rc())) return autoCaller.rc(); - - AutoWriteLock appLock(this COMMA_LOCKVAL_SRC_POS); - - HRESULT rc = S_OK; - - RTS3 hS3 = NULL; - std::list fileList; - try - { - int vrc = RTS3Create(&hS3, m->strUsername.c_str(), m->strPassword.c_str(), m->strHostname.c_str(), "virtualbox-agent/"VBOX_VERSION_STRING); - if (RT_FAILURE(vrc)) - throw setError(E_FAIL, tr ("Can't open S3 storage service (%Rrc)"), vrc); - - RTS3SetProgressCallback(hS3, VFSExplorer::TaskVFSExplorer::uploadProgress, &aTask); - /* Do we need the list of buckets or keys? */ - if (m->strBucket.isEmpty()) - { - PCRTS3BUCKETENTRY pBuckets = NULL; - vrc = RTS3GetBuckets(hS3, &pBuckets); - if (RT_FAILURE(vrc)) - throw setError(E_FAIL, tr ("Can't get buckets (%Rrc)"), vrc); - - PCRTS3BUCKETENTRY pTmpBuckets = pBuckets; - while (pBuckets) - { - /* Set always read/write permissions of the current logged in user. */ - fileList.push_back(VFSExplorer::Data::DirEntry(pBuckets->pszName, VFSFileType_Directory, 0, RTFS_UNIX_IRUSR | RTFS_UNIX_IWUSR)); - pBuckets = pBuckets->pNext; - } - RTS3BucketsDestroy(pTmpBuckets); - } - else - { - PCRTS3KEYENTRY pKeys = NULL; - vrc = RTS3GetBucketKeys(hS3, m->strBucket.c_str(), &pKeys); - if (RT_FAILURE(vrc)) - throw setError(E_FAIL, tr ("Can't get keys for bucket (%Rrc)"), vrc); - - PCRTS3KEYENTRY pTmpKeys = pKeys; - while (pKeys) - { - Utf8Str name(pKeys->pszName); - /* Set always read/write permissions of the current logged in user. */ - fileList.push_back(VFSExplorer::Data::DirEntry(pKeys->pszName, VFSFileType_File, pKeys->cbFile, RTFS_UNIX_IRUSR | RTFS_UNIX_IWUSR)); - pKeys = pKeys->pNext; - } - RTS3KeysDestroy(pTmpKeys); - } - } - catch(HRESULT aRC) - { - rc = aRC; - } - - if (hS3 != NULL) - RTS3Destroy(hS3); - - /* Assign the result on success (this clears the old list) */ - if (rc == S_OK) - m->entryList.assign(fileList.begin(), fileList.end()); - - aTask->rc = rc; - - if (!aTask->progress.isNull()) - aTask->progress->notifyComplete(rc); - - LogFlowFunc(("rc=%Rhrc\n", rc)); - LogFlowFuncLeave(); - - return VINF_SUCCESS; -} - -HRESULT VFSExplorer::deleteS3(TaskVFSExplorer *aTask) -{ - LogFlowFuncEnter(); - - AutoCaller autoCaller(this); - if (FAILED(autoCaller.rc())) return autoCaller.rc(); - - AutoWriteLock appLock(this COMMA_LOCKVAL_SRC_POS); - - HRESULT rc = S_OK; - - RTS3 hS3 = NULL; - float fPercentStep = 100.0f / aTask->filenames.size(); - try - { - int vrc = RTS3Create(&hS3, m->strUsername.c_str(), m->strPassword.c_str(), m->strHostname.c_str(), "virtualbox-agent/"VBOX_VERSION_STRING); - if (RT_FAILURE(vrc)) - throw setError(E_FAIL, tr ("Can't open S3 storage service (%Rrc)"), vrc); - - RTS3SetProgressCallback(hS3, VFSExplorer::TaskVFSExplorer::uploadProgress, &aTask); - - std::list::const_iterator it; - size_t i = 0; - for (it = aTask->filenames.begin(); - it != aTask->filenames.end(); - ++it, ++i) - { - vrc = RTS3DeleteKey(hS3, m->strBucket.c_str(), (*it).c_str()); - if (RT_FAILURE(vrc)) - throw setError(VBOX_E_FILE_ERROR, tr ("Can't delete file '%s' (%Rrc)"), (*it).c_str(), vrc); - if (aTask->progress) - aTask->progress->SetCurrentOperationProgress((ULONG)(fPercentStep * i)); - } - } - catch(HRESULT aRC) - { - rc = aRC; - } - - aTask->rc = rc; - - if (hS3 != NULL) - RTS3Destroy(hS3); - - if (!aTask->progress.isNull()) - aTask->progress->notifyComplete(rc); - - LogFlowFunc(("rc=%Rhrc\n", rc)); - LogFlowFuncLeave(); - - return VINF_SUCCESS; -} -#endif /* VBOX_WITH_S3 */ STDMETHODIMP VFSExplorer::Update(IProgress **aProgress) { diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Main/src-server/VirtualBoxImpl.cpp virtualbox-4.1.44-dfsg/src/VBox/Main/src-server/VirtualBoxImpl.cpp --- virtualbox-4.1.12-dfsg/src/VBox/Main/src-server/VirtualBoxImpl.cpp 2012-04-02 13:28:56.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Main/src-server/VirtualBoxImpl.cpp 2015-11-11 15:08:52.000000000 +0000 @@ -5,7 +5,7 @@ */ /* - * Copyright (C) 2006-2012 Oracle Corporation + * Copyright (C) 2006-2013 Oracle Corporation * * This file is part of VirtualBox Open Source Edition (OSE), as * available from http://www.virtualbox.org. This file is free software; @@ -218,7 +218,7 @@ // VirtualBox main settings file const Utf8Str strSettingsFilePath; - settings::MainConfigFile *pMainConfigFile; + settings::MainConfigFile *pMainConfigFile; // constant pseudo-machine ID for global media registry const Guid uuidMediaRegistry; @@ -2470,8 +2470,8 @@ virtual HRESULT prepareEventDesc(IEventSource* aSource, VBoxEventDesc& aEvDesc) { - return aEvDesc.init(aSource, VBoxEventType_OnSnapshotTaken, - machineId.toUtf16().raw(), snapshotId.toUtf16().raw()); + return aEvDesc.init(aSource, mWhat, machineId.toUtf16().raw(), + snapshotId.toUtf16().raw()); } Guid machineId; @@ -2533,6 +2533,8 @@ void VirtualBox::onGuestPropertyChange(const Guid &aMachineId, IN_BSTR aName, IN_BSTR aValue, IN_BSTR aFlags) { + LogRelFlow(("aMachineId=%RTuuid, aName=%ls, aValue=%ls, aFlags=%ls\n", + aMachineId.raw(), aName, aValue, aFlags)); postEvent(new GuestPropertyEvent(this, aMachineId, aName, aValue, aFlags)); } @@ -4468,34 +4470,53 @@ AssertReturn(pvUser, VERR_INVALID_POINTER); - com::Initialize(); + HRESULT hr = com::Initialize(); + if (FAILED(hr)) + return VERR_COM_UNEXPECTED; - // create an event queue for the current thread - EventQueue *eventQ = new EventQueue(); - AssertReturn(eventQ, VERR_NO_MEMORY); - - // return the queue to the one who created this thread - *(static_cast (pvUser)) = eventQ; - // signal that we're ready - RTThreadUserSignal(thread); + int rc = VINF_SUCCESS; - /* - * In case of spurious wakeups causing VERR_TIMEOUTs and/or other return codes - * we must not stop processing events and delete the "eventQ" object. This must - * be done ONLY when we stop this loop via interruptEventQueueProcessing(). - * See #5724. - */ - while (eventQ->processEventQueue(RT_INDEFINITE_WAIT) != VERR_INTERRUPTED) - /* nothing */ ; + try + { + /* Create an event queue for the current thread. */ + EventQueue *pEventQueue = new EventQueue(); + AssertPtr(pEventQueue); + + /* Return the queue to the one who created this thread. */ + *(static_cast (pvUser)) = pEventQueue; + + /* signal that we're ready. */ + RTThreadUserSignal(thread); + + /* + * In case of spurious wakeups causing VERR_TIMEOUTs and/or other return codes + * we must not stop processing events and delete the pEventQueue object. This must + * be done ONLY when we stop this loop via interruptEventQueueProcessing(). + * See #5724. + */ + for (;;) + { + rc = pEventQueue->processEventQueue(RT_INDEFINITE_WAIT); + if (rc == VERR_INTERRUPTED) + { + LogFlow(("Event queue processing ended with rc=%Rrc\n", rc)); + rc = VINF_SUCCESS; /* Set success when exiting. */ + break; + } + } - delete eventQ; + delete pEventQueue; + } + catch (std::bad_alloc &ba) + { + rc = VERR_NO_MEMORY; + NOREF(ba); + } com::Shutdown(); - - LogFlowFuncLeave(); - - return 0; + LogFlowFuncLeaveRC(rc); + return rc; } diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Main/src-server/win/PerformanceWin.cpp virtualbox-4.1.44-dfsg/src/VBox/Main/src-server/win/PerformanceWin.cpp --- virtualbox-4.1.12-dfsg/src/VBox/Main/src-server/win/PerformanceWin.cpp 2012-04-02 13:28:56.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Main/src-server/win/PerformanceWin.cpp 2015-11-11 15:08:53.000000000 +0000 @@ -33,6 +33,7 @@ } #include +#include #include #include @@ -86,7 +87,6 @@ PFNGST mpfnGetSystemTimes; PFNNQSI mpfnNtQuerySystemInformation; - HMODULE mhNtDll; }; CollectorHAL *createHAL() @@ -94,35 +94,22 @@ return new CollectorWin(); } -CollectorWin::CollectorWin() : CollectorHAL(), mhNtDll(0) +CollectorWin::CollectorWin() : CollectorHAL(), mpfnNtQuerySystemInformation(NULL) { - mpfnGetSystemTimes = (PFNGST)GetProcAddress( - GetModuleHandle(TEXT("kernel32.dll")), - "GetSystemTimes"); + /* Note! Both kernel32.dll and ntdll.dll can be assumed to always be present. */ + mpfnGetSystemTimes = (PFNGST)RTLdrGetSystemSymbol("kernel32.dll", "GetSystemTimes"); if (!mpfnGetSystemTimes) { /* Fall back to deprecated NtQuerySystemInformation */ - if (!(mhNtDll = LoadLibrary(TEXT("ntdll.dll")))) - { - LogRel(("Failed to load NTDLL.DLL with error 0x%x. GetSystemTimes() is" - " not available either. CPU and VM metrics will not be collected.\n", - GetLastError())); - mpfnNtQuerySystemInformation = 0; - } - else if (!(mpfnNtQuerySystemInformation = (PFNNQSI)GetProcAddress(mhNtDll, - "NtQuerySystemInformation"))) - { - LogRel(("Neither GetSystemTimes() nor NtQuerySystemInformation() is" - " not available. CPU and VM metrics will not be collected.\n")); - mpfnNtQuerySystemInformation = 0; - } + mpfnNtQuerySystemInformation = (PFNNQSI)RTLdrGetSystemSymbol("ntdll.dll", "NtQuerySystemInformation"); + if (!mpfnNtQuerySystemInformation) + LogRel(("Warning! Neither GetSystemTimes() nor NtQuerySystemInformation() is not available.\n" + " CPU and VM metrics will not be collected! (lasterr %u)\n", GetLastError())); } } CollectorWin::~CollectorWin() { - if (mhNtDll) - FreeLibrary(mhNtDll); } #define FILETTIME_TO_100NS(ft) (((uint64_t)ft.dwHighDateTime << 32) + ft.dwLowDateTime) diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Main/src-server/xpcom/server.cpp virtualbox-4.1.44-dfsg/src/VBox/Main/src-server/xpcom/server.cpp --- virtualbox-4.1.12-dfsg/src/VBox/Main/src-server/xpcom/server.cpp 2012-04-02 13:28:56.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Main/src-server/xpcom/server.cpp 2015-11-11 15:08:53.000000000 +0000 @@ -890,12 +890,16 @@ if (!pszLogFile) { - char szLogFile[RTPATH_MAX]; + char szLogFile[RTPATH_MAX] = ""; vrc = com::GetVBoxUserHomeDirectory(szLogFile, sizeof(szLogFile)); + if (vrc == VERR_ACCESS_DENIED) + return RTMsgErrorExit(RTEXITCODE_FAILURE, "failed to open global settings directory '%s'", szLogFile); if (RT_SUCCESS(vrc)) vrc = RTPathAppend(szLogFile, sizeof(szLogFile), "VBoxSVC.log"); if (RT_SUCCESS(vrc)) pszLogFile = RTStrDup(szLogFile); + if (RT_FAILURE(vrc)) + return RTMsgErrorExit(RTEXITCODE_FAILURE, "failed to determine release log file (%Rrc)", vrc); } VBoxSVCLogRelCreate(pszLogFile, cHistory, uHistoryFileTime, uHistoryFileSize); diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Main/webservice/Makefile.kmk virtualbox-4.1.44-dfsg/src/VBox/Main/webservice/Makefile.kmk --- virtualbox-4.1.12-dfsg/src/VBox/Main/webservice/Makefile.kmk 2012-04-02 13:28:57.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Main/webservice/Makefile.kmk 2015-11-11 15:08:53.000000000 +0000 @@ -225,7 +225,7 @@ $(VBOXWEB_OUT_DIR)/soapC.cpp else BLDPROGS += split-soapC - split-soapC_TEMPLATE = VBOXBLDPROG + split-soapC_TEMPLATE = VBoxBldProg split-soapC_SOURCES = split-soapC.cpp vboxsoap_SOURCES = \ @@ -398,7 +398,7 @@ $(QUIET)$(SED) -e "s/vboxweb.wsdl/vboxweb$(VBOX_API_SUFFIX).wsdl/" < $(VBOXWEBSERVICE_WSDL) > $(VBOX_JWS_JDEST)/vboxwebService$(VBOX_API_SUFFIX).wsdl $(QUIET)$(CP) -f $(VBOXWEB_WSDL) $(VBOX_JWS_JDEST)/vboxweb$(VBOX_API_SUFFIX).wsdl $(call MSG_LINK,$(notdir $@),$@) - $(VBOX_JAR) cf $@ $(VBOX_JWS_GEN)/MANIFEST.MF -C $(VBOX_JWS_JDEST) . + $(VBOX_JAR) cfm $@ $(VBOX_JWS_GEN)/MANIFEST.MF -C $(VBOX_JWS_JDEST) . $(VBOX_JWS_GEN)/MANIFEST.MF: $(VBOX_PATH_WEBSERVICE)/MANIFEST.MF.in $(QUIET)$(RM) -f -- $@ diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Main/webservice/MANIFEST.MF.in virtualbox-4.1.44-dfsg/src/VBox/Main/webservice/MANIFEST.MF.in --- virtualbox-4.1.12-dfsg/src/VBox/Main/webservice/MANIFEST.MF.in 2012-04-02 13:28:56.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Main/webservice/MANIFEST.MF.in 2015-11-11 15:08:53.000000000 +0000 @@ -6,5 +6,23 @@ Bundle-License: http://glassfish.java.net/nonav/public/CDDL+GPL.html Bundle-ManifestVersion: 2 Tool: vi+sed -Export-Package: org.virtualbox@VBOX_API_SUFFIX@;uses="javax.jws.soap,javax.xml,javax.xml.bind,javax.xml.bind.annotation,javax.xml.bind.attachment,javax.xml.bind.helpers,javax.xml.bind.util,javax,xml.namespace,javax.xml.parsers,javax.xml.stream,javax.xml.transform,javax.xml.transform.dom,javax.xml.transform.stream,javax.xml.ws,javax.xml.ws.handler,javax.xml.ws.http,javax.xml.ws.soap,javax.xml.ws.spi,javax.xml.ws.wsaddressing,org.w3c.dom,org.xml.sax";version="@VBOX_VERSION_STRING@" -Import-Package:javax.validation.constraints;version="1.0",javax.jws,com.sun.xml.ws.developer,com.sun.xml.ws,com.sun.xml.ws.api.message,javax.jws.soap,javax.xml.namespace,javax.xml.ws,javax.xml.ws.spi,javax.xml.ws.soap,javax.xml.ws.handler,javax.xml.ws.http,javax.xml.ws.wsaddressing,javax.xml.parsers,javax.xml.stream,javax.xml.transform,javax.xml.transform.dom,javax.xml.transform.stream,org.w2c.dom,org.xml.sax,javax.xml.bind,javax.xml.bind.annotation,javax.xml.bind.attachment,javax.xml.bind.helpers,javax.xml.bind.util,org.virtualbox@VBOX_API_SUFFIX@;version="@VBOX_VERSION_MAJOR@.@VBOX_VERSION_MINOR@" +Export-Package: org.virtualbox@VBOX_API_SUFFIX@;uses="javax.jws.soap, + javax.xml,javax.xml.bind,javax.xml.bind.annotation, + javax.xml.bind.attachment,javax.xml.bind.helpers,javax.xml.bind.util, + javax,xml.namespace,javax.xml.parsers,javax.xml.stream, + javax.xml.transform,javax.xml.transform.dom, + javax.xml.transform.stream,javax.xml.ws,javax.xml.ws.handler, + javax.xml.ws.http,javax.xml.ws.soap,javax.xml.ws.spi, + javax.xml.ws.wsaddressing,org.w3c.dom,org.xml.sax"; + version="@VBOX_VERSION_STRING@" +Import-Package: javax.validation.constraints;version="1.0", + javax.jws,com.sun.xml.ws.developer, + com.sun.xml.ws,com.sun.xml.ws.api.message,javax.jws.soap, + javax.xml.namespace,javax.xml.ws,javax.xml.ws.spi, + javax.xml.ws.soap,javax.xml.ws.handler,javax.xml.ws.http, + javax.xml.ws.wsaddressing,javax.xml.parsers,javax.xml.stream, + javax.xml.transform,javax.xml.transform.dom, + javax.xml.transform.stream,org.w2c.dom,org.xml.sax,javax.xml.bind, + javax.xml.bind.annotation,javax.xml.bind.attachment, + javax.xml.bind.helpers,javax.xml.bind.util, + org.virtualbox@VBOX_API_SUFFIX@;version="@VBOX_VERSION_MAJOR@.@VBOX_VERSION_MINOR@" diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Main/webservice/vboxweb.cpp virtualbox-4.1.44-dfsg/src/VBox/Main/webservice/vboxweb.cpp --- virtualbox-4.1.12-dfsg/src/VBox/Main/webservice/vboxweb.cpp 2012-04-02 13:28:57.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Main/webservice/vboxweb.cpp 2015-11-11 15:08:54.000000000 +0000 @@ -5,7 +5,7 @@ * (plus static gSOAP server code) to implement the actual webservice * server, to which clients can connect. * - * Copyright (C) 2006-2012 Oracle Corporation + * Copyright (C) 2007-2014 Oracle Corporation * * This file is part of VirtualBox Open Source Edition (OSE), as * available from http://www.virtualbox.org. This file is free software; @@ -25,8 +25,8 @@ #include #include #include -#include #include +#include #include #include #include @@ -910,7 +910,7 @@ soap_init(&soap); #ifdef WITH_OPENSSL - if (g_fSSL && soap_ssl_server_context(&soap, SOAP_SSL_DEFAULT, g_pcszKeyFile, + if (g_fSSL && soap_ssl_server_context(&soap, SOAP_SSL_REQUIRE_SERVER_AUTHENTICATION | SOAP_TLSv1, g_pcszKeyFile, g_pcszPassword, g_pcszCACert, g_pcszCAPath, g_pcszDHFile, g_pcszRandFile, g_pcszSID)) { @@ -1229,6 +1229,15 @@ // initialize COM/XPCOM HRESULT hrc = com::Initialize(); +#ifdef VBOX_WITH_XPCOM + if (hrc == NS_ERROR_FILE_ACCESS_DENIED) + { + char szHome[RTPATH_MAX] = ""; + com::GetVBoxUserHomeDirectory(szHome, sizeof(szHome)); + return RTMsgErrorExit(RTEXITCODE_FAILURE, + "Failed to initialize COM because the global settings directory '%s' is not accessible!", szHome); + } +#endif if (FAILED(hrc)) return RTMsgErrorExit(RTEXITCODE_FAILURE, "failed to initialize COM! hrc=%Rhrc\n", hrc); @@ -1310,7 +1319,7 @@ return RTMsgErrorExit(RTEXITCODE_FAILURE, "Cannot start watchdog thread: %Rrc", rc); } - com::EventQueue *pQ = com::EventQueue::getMainEventQueue(); + com::NativeEventQueue *pQ = com::NativeEventQueue::getMainEventQueue(); for (;;) { // we have to process main event queue @@ -1751,7 +1760,11 @@ RTLDRMOD hlibAuth = 0; do { - rc = RTLdrLoad(filename.c_str(), &hlibAuth); + if (RTPathHavePath(filename.c_str())) + rc = RTLdrLoad(filename.c_str(), &hlibAuth); + else + rc = RTLdrLoadAppPriv(filename.c_str(), &hlibAuth); + if (RT_FAILURE(rc)) { WEBDEBUG(("%s() Failed to load external authentication library. Error code: %Rrc\n", __FUNCTION__, rc)); diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Main/webservice/websrv-wsdl.xsl virtualbox-4.1.44-dfsg/src/VBox/Main/webservice/websrv-wsdl.xsl --- virtualbox-4.1.12-dfsg/src/VBox/Main/webservice/websrv-wsdl.xsl 2012-04-02 13:28:57.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Main/webservice/websrv-wsdl.xsl 2015-11-11 15:08:54.000000000 +0000 @@ -93,6 +93,7 @@ targetNamespace="http://schemas.xmlsoap.org/wsdl/" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:xsd="http://www.w3.org/2001/XMLSchema" + xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:vbox="http://www.virtualbox.org/" xmlns:exsl="http://exslt.org/common" @@ -460,7 +461,7 @@ - + @@ -469,10 +470,10 @@ - + - + - + @@ -495,10 +496,10 @@ - + - + - + - + @@ -566,7 +567,7 @@ - + @@ -577,7 +578,7 @@ - + @@ -589,10 +590,10 @@ vbox: - + - + @@ -604,11 +605,11 @@ vbox: - + - + @@ -620,29 +621,29 @@ vbox: - + - - + + - + - - + + - + - + + @@ -751,7 +752,7 @@ - + @@ -956,10 +957,9 @@ and emit complexTypes for all method arguments and return values. --> - - http://schemas.xmlsoap.org/wsdl/ @@ -969,7 +969,7 @@ * ****************************************************** - + @@ -1193,14 +1193,14 @@ - + - - - - - - + + + + + + ****************************************************** @@ -1241,7 +1241,7 @@ ****************************************************** - + @@ -1261,7 +1261,7 @@ - + ****************************************************** @@ -1271,7 +1271,7 @@ ****************************************************** - + @@ -1297,9 +1297,9 @@ - + - + diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Main/webservice/webtest.cpp virtualbox-4.1.44-dfsg/src/VBox/Main/webservice/webtest.cpp --- virtualbox-4.1.12-dfsg/src/VBox/Main/webservice/webtest.cpp 2012-04-02 13:28:57.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Main/webservice/webtest.cpp 2015-11-11 15:08:54.000000000 +0000 @@ -3,7 +3,7 @@ * demo webservice client in C++. This mimics some of the * functionality of VBoxManage for testing purposes. * - * Copyright (C) 2006-2012 Oracle Corporation + * Copyright (C) 2006-2014 Oracle Corporation * * This file is part of VirtualBox Open Source Edition (OSE), as * available from http://www.virtualbox.org. This file is free software; @@ -110,7 +110,7 @@ // Use SOAP_SSL_NO_AUTHENTICATION here to accept broken server configs. // In a real world setup please use at least SOAP_SSL_DEFAULT and provide // the necessary CA certificate for validating the server's certificate. - if (fSSL && soap_ssl_client_context(&soap, SOAP_SSL_NO_AUTHENTICATION, + if (fSSL && soap_ssl_client_context(&soap, SOAP_SSL_NO_AUTHENTICATION | SOAP_TLSv1, NULL /*clientkey*/, NULL /*password*/, NULL /*cacert*/, NULL /*capath*/, NULL /*randfile*/)) diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Main/xml/ovfreader.cpp virtualbox-4.1.44-dfsg/src/VBox/Main/xml/ovfreader.cpp --- virtualbox-4.1.12-dfsg/src/VBox/Main/xml/ovfreader.cpp 2012-04-02 13:28:58.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Main/xml/ovfreader.cpp 2015-11-11 15:08:54.000000000 +0000 @@ -466,7 +466,8 @@ i.strPoolID = pelmItemChild->getValue(); else if (!strcmp(pcszItemChildName, "BusNumber")) // seen in some old OVF, but it's not listed in the OVF specs pelmItemChild->copyValue(i.ulBusNumber); - else + else if ( pelmItemChild->getPrefix() == NULL + || strcmp(pelmItemChild->getPrefix(), "vmw")) throw OVFLogicError(N_("Error reading \"%s\": unknown element \"%s\" under Item element, line %d"), m_strPath.c_str(), pcszItemChildName, diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Main/xml/Settings.cpp virtualbox-4.1.44-dfsg/src/VBox/Main/xml/Settings.cpp --- virtualbox-4.1.12-dfsg/src/VBox/Main/xml/Settings.cpp 2012-04-02 13:28:58.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Main/xml/Settings.cpp 2015-11-11 15:08:54.000000000 +0000 @@ -1599,7 +1599,8 @@ pointingHidType(PointingHidType_PS2Mouse), keyboardHidType(KeyboardHidType_PS2Keyboard), chipsetType(ChipsetType_PIIX3), - clipboardMode(ClipboardMode_Bidirectional), + fEmulatedUSBCardReader(false), + clipboardMode(ClipboardMode_Disabled), ulMemoryBalloonSize(0), fPageFusionEnabled(false) { @@ -1661,6 +1662,7 @@ && (pointingHidType == h.pointingHidType) && (keyboardHidType == h.keyboardHidType) && (chipsetType == h.chipsetType) + && (fEmulatedUSBCardReader == h.fEmulatedUSBCardReader) && (vrdeSettings == h.vrdeSettings) && (biosSettings == h.biosSettings) && (usbController == h.usbController) @@ -2813,6 +2815,15 @@ } } } + else if (pelmHwChild->nameEquals("EmulatedUSB")) + { + const xml::ElementNode *pelmCardReader; + + if ((pelmCardReader = pelmHwChild->findChildElement("CardReader"))) + { + pelmCardReader->getAttributeValue("enabled", hw.fEmulatedUSBCardReader); + } + } } if (hw.ulMemorySizeMB == (uint32_t)-1) @@ -3940,10 +3951,10 @@ const char *pcszClip; switch (hw.clipboardMode) { - case ClipboardMode_Disabled: pcszClip = "Disabled"; break; + default: /*case ClipboardMode_Disabled:*/ pcszClip = "Disabled"; break; case ClipboardMode_HostToGuest: pcszClip = "HostToGuest"; break; case ClipboardMode_GuestToHost: pcszClip = "GuestToHost"; break; - default: /*case ClipboardMode_Bidirectional:*/ pcszClip = "Bidirectional"; break; + case ClipboardMode_Bidirectional: pcszClip = "Bidirectional"; break; } pelmClip->setAttribute("mode", pcszClip); @@ -3997,6 +4008,14 @@ } } + if (m->sv >= SettingsVersion_v1_12) + { + xml::ElementNode *pelmEmulatedUSB = pelmHardware->createChild("EmulatedUSB"); + xml::ElementNode *pelmCardReader = pelmEmulatedUSB->createChild("CardReader"); + + pelmCardReader->setAttribute("enabled", hw.fEmulatedUSBCardReader); + } + xml::ElementNode *pelmGuest = pelmHardware->createChild("Guest"); pelmGuest->setAttribute("memoryBalloonSize", hw.ulMemoryBalloonSize); @@ -4573,6 +4592,13 @@ { if (m->sv < SettingsVersion_v1_12) { + // 4.1: Emulated USB devices. + if (hardwareMachine.fEmulatedUSBCardReader) + m->sv = SettingsVersion_v1_12; + } + + if (m->sv < SettingsVersion_v1_12) + { // VirtualBox 4.1 adds PCI passthrough. if (hardwareMachine.pciAttachments.size()) m->sv = SettingsVersion_v1_12; diff -Nru virtualbox-4.1.12-dfsg/src/VBox/NetworkServices/DHCP/Makefile.kmk virtualbox-4.1.44-dfsg/src/VBox/NetworkServices/DHCP/Makefile.kmk --- virtualbox-4.1.12-dfsg/src/VBox/NetworkServices/DHCP/Makefile.kmk 2012-04-02 13:28:58.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/NetworkServices/DHCP/Makefile.kmk 2015-11-11 15:08:54.000000000 +0000 @@ -34,7 +34,9 @@ # VBoxNetDHCPHardened_TEMPLATE = VBOXR3HARDENEDEXE VBoxNetDHCPHardened_SOURCES = VBoxNetDHCPHardened.cpp +VBoxNetDHCPHardened_SOURCES.win = $(VBoxNetDHCP_0_OUTDIR)/VBoxNetDHCP-icon.rc VBoxNetDHCPHardened_NAME = VBoxNetDHCP +VBoxNetDHCPHardened_LDFLAGS.win = /SUBSYSTEM:windows # @@ -51,6 +53,12 @@ $(LIB_RUNTIME) VBoxNetDHCP_LDFLAGS.win = /SUBSYSTEM:windows +# Icon include file. +VBoxNetDHCP_SOURCES.win += $(VBoxNetDHCP_0_OUTDIR)/VBoxNetDHCP-icon.rc +VBoxNetDHCP_CLEAN.win += $(VBoxNetDHCP_0_OUTDIR)/VBoxNetDHCP-icon.rc +$$(VBoxNetDHCP_0_OUTDIR)/VBoxNetDHCP-icon.rc: $(VBOX_WINDOWS_ICON_FILE) $$(VBoxNetDHCP_DEFPATH)/Makefile.kmk | $$(dir $$@) + $(RM) -f $@ + $(APPEND) $@ 'IDI_VIRTUALBOX ICON DISCARDABLE "$(subst /,\\,$(VBOX_WINDOWS_ICON_FILE))"' include $(KBUILD_PATH)/subfooter.kmk diff -Nru virtualbox-4.1.12-dfsg/src/VBox/NetworkServices/NetLib/VBoxNetARP.cpp virtualbox-4.1.44-dfsg/src/VBox/NetworkServices/NetLib/VBoxNetARP.cpp --- virtualbox-4.1.12-dfsg/src/VBox/NetworkServices/NetLib/VBoxNetARP.cpp 2012-04-02 13:28:58.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/NetworkServices/NetLib/VBoxNetARP.cpp 2015-11-11 15:08:54.000000000 +0000 @@ -43,7 +43,7 @@ */ PCINTNETHDR pHdr = IntNetRingGetNextFrameToRead(&pBuf->Recv); if ( !pHdr - || pHdr->u16Type != INTNETHDR_TYPE_FRAME) + || pHdr->u8Type != INTNETHDR_TYPE_FRAME) return false; size_t cbFrame = pHdr->cbFrame; diff -Nru virtualbox-4.1.12-dfsg/src/VBox/NetworkServices/NetLib/VBoxNetUDP.cpp virtualbox-4.1.44-dfsg/src/VBox/NetworkServices/NetLib/VBoxNetUDP.cpp --- virtualbox-4.1.12-dfsg/src/VBox/NetworkServices/NetLib/VBoxNetUDP.cpp 2012-04-02 13:28:58.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/NetworkServices/NetLib/VBoxNetUDP.cpp 2015-11-11 15:08:54.000000000 +0000 @@ -61,14 +61,14 @@ */ PCINTNETHDR pHdr = IntNetRingGetNextFrameToRead(&pBuf->Recv); if ( !pHdr - || ( pHdr->u16Type != INTNETHDR_TYPE_FRAME - && pHdr->u16Type != INTNETHDR_TYPE_GSO)) + || ( pHdr->u8Type != INTNETHDR_TYPE_FRAME + && pHdr->u8Type != INTNETHDR_TYPE_GSO)) return NULL; size_t cbFrame = pHdr->cbFrame; const void *pvFrame = IntNetHdrGetFramePtr(pHdr, pBuf); PCPDMNETWORKGSO pGso = NULL; - if (pHdr->u16Type == INTNETHDR_TYPE_GSO) + if (pHdr->u8Type == INTNETHDR_TYPE_GSO) { pGso = (PCPDMNETWORKGSO)pvFrame; if (!PDMNetGsoIsValid(pGso, cbFrame, cbFrame - sizeof(*pGso))) diff -Nru virtualbox-4.1.12-dfsg/src/VBox/RDP/client/Makefile.in virtualbox-4.1.44-dfsg/src/VBox/RDP/client/Makefile.in --- virtualbox-4.1.12-dfsg/src/VBox/RDP/client/Makefile.in 2012-04-02 13:28:58.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/RDP/client/Makefile.in 2015-11-11 15:08:54.000000000 +0000 @@ -28,7 +28,7 @@ SOUNDOBJ = @SOUNDOBJ@ SCARDOBJ = @SCARDOBJ@ -RDPOBJ = tcp.o iso.o mcs.o secure.o licence.o rdp.o orders.o bitmap.o cache.o rdp5.o channels.o rdpdr.o serial.o printer.o disk.o parallel.o printercache.o mppc.o pstcache.o lspci.o seamless.o ssl.o Runtime/common/alloc/alloc.o Runtime/common/err/errmsg.o Runtime/common/err/errmsgxpcom.o Runtime/common/err/RTErrConvertFromErrno.o Runtime/common/err/RTErrConvertToErrno.o Runtime/common/path/RTPathAppend.o Runtime/common/path/RTPathAppendEx.o Runtime/common/path/RTPathCountComponents.o Runtime/common/path/RTPathFilename.o Runtime/common/path/rtPathRootSpecLen.o Runtime/common/path/RTPathStripFilename.o Runtime/common/path/RTPathStripTrailingSlash.o Runtime/common/path/rtPathVolumeSpecLen.o Runtime/common/string/RTStrCmp.o Runtime/common/string/RTStrNCmp.o Runtime/common/string/RTStrCopy.o Runtime/common/string/RTStrNLen.o Runtime/common/string/straprintf.o Runtime/common/string/stringalloc.o Runtime/common/string/strformat.o Runtime/common/string/strformatrt.o Runtime/common/string/strformattype.o Runtime/common/string/strprintf.o Runtime/common/string/strstrip.o Runtime/common/string/strtonum.o Runtime/common/string/unidata.o Runtime/common/string/utf-16.o Runtime/common/string/utf-8.o Runtime/common/string/utf-8-case.o Runtime/common/time/timesysalias.o Runtime/generic/pathhost-generic.o Runtime/r3/alloc.o Runtime/r3/dir.o Runtime/r3/fileio.o Runtime/r3/fs.o Runtime/r3/linux/sysfs.o Runtime/r3/linux/time-linux.o Runtime/r3/posix/dir-posix.o Runtime/r3/posix/env-posix.o Runtime/r3/posix/fileio-posix.o Runtime/r3/posix/fs2-posix.o Runtime/r3/posix/fs3-posix.o Runtime/r3/posix/path-posix.o Runtime/r3/posix/path2-posix.o Runtime/r3/posix/utf8-posix.o Runtime/r3/stream.o vrdp/rdpusb.o vrdp/USBGetDevices.o vrdp/USBLib.o vrdp/linux/USBProxyDevice-linux.o +RDPOBJ = tcp.o iso.o mcs.o secure.o licence.o rdp.o orders.o bitmap.o cache.o rdp5.o channels.o rdpdr.o serial.o printer.o disk.o parallel.o printercache.o mppc.o pstcache.o lspci.o seamless.o ssl.o Runtime/common/alloc/alloc.o Runtime/common/err/errmsg.o Runtime/common/err/errmsgxpcom.o Runtime/common/err/RTErrConvertFromErrno.o Runtime/common/err/RTErrConvertToErrno.o Runtime/common/misc/sg.o Runtime/common/path/RTPathAppend.o Runtime/common/path/RTPathAppendEx.o Runtime/common/path/RTPathCountComponents.o Runtime/common/path/RTPathFilename.o Runtime/common/path/rtPathRootSpecLen.o Runtime/common/path/RTPathStripFilename.o Runtime/common/path/RTPathStripTrailingSlash.o Runtime/common/path/rtPathVolumeSpecLen.o Runtime/common/string/RTStrCmp.o Runtime/common/string/RTStrNCmp.o Runtime/common/string/RTStrCopy.o Runtime/common/string/RTStrNLen.o Runtime/common/string/straprintf.o Runtime/common/string/stringalloc.o Runtime/common/string/strformat.o Runtime/common/string/strformatrt.o Runtime/common/string/strformattype.o Runtime/common/string/strprintf.o Runtime/common/string/strstrip.o Runtime/common/string/strtonum.o Runtime/common/string/unidata-flags.o Runtime/common/string/unidata-upper.o Runtime/common/string/unidata-lower.o Runtime/common/string/utf-16.o Runtime/common/string/utf-8.o Runtime/common/string/utf-8-case.o Runtime/common/time/timesysalias.o Runtime/generic/pathhost-generic.o Runtime/r3/alloc.o Runtime/r3/dir.o Runtime/r3/fileio.o Runtime/r3/fs.o Runtime/r3/linux/sysfs.o Runtime/r3/linux/time-linux.o Runtime/r3/posix/dir-posix.o Runtime/r3/posix/env-posix.o Runtime/r3/posix/fileio-posix.o Runtime/r3/posix/fs2-posix.o Runtime/r3/posix/fs3-posix.o Runtime/r3/posix/path-posix.o Runtime/r3/posix/path2-posix.o Runtime/r3/posix/pipe-posix.o Runtime/r3/posix/thread2-posix.o Runtime/r3/posix/utf8-posix.o Runtime/r3/stream.o vrdp/rdpusb.o vrdp/USBGetDevices.o vrdp/USBLib.o vrdp/linux/USBProxyDevice-linux.o X11OBJ = rdesktop.o xwin.o xkeymap.o ewmhints.o xclip.o cliprdr.o VNCOBJ = vnc/rdp2vnc.o vnc/vnc.o vnc/xkeymap.o vnc/x11stubs.o diff -Nru virtualbox-4.1.12-dfsg/src/VBox/RDP/client/Makefile.kmk virtualbox-4.1.44-dfsg/src/VBox/RDP/client/Makefile.kmk --- virtualbox-4.1.12-dfsg/src/VBox/RDP/client/Makefile.kmk 2012-04-02 13:28:58.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/RDP/client/Makefile.kmk 2015-11-11 15:08:54.000000000 +0000 @@ -57,7 +57,7 @@ # snv_166+ dirent.h: defines dd_fd only if __USE_LEGACY_PROTOTYPES__ is defined, otherwise uses d_fd, let's just # define __USE_LEGACY_PROTOTYPES__ until our buildbox is updated sufficiently rdesktop-vrdp_DEFS.solaris = \ - HAVE_SYS_FILIO_H=1 RDPSND_SUN=1 HAVE_ICONV_H=1 ICONV_CONST=const STAT_STATVFS64=1 _FILE_OFFSET_BITS=64 \ + HAVE_SYS_FILIO_H=1 RDPSND_SUN=1 HAVE_ICONV_H=1 ICONV_CONST= STAT_STATVFS64=1 _FILE_OFFSET_BITS=64 \ DIR_FD_MEMBER_NAME=dd_fd __USE_LEGACY_PROTOTYPES__ HAVE_SYS_VFS_H=1 HAVE_SYS_STATFS_H=1 rdesktop-vrdp_DEFS.freebsd = \ RDPSND_OSS=1 HAVE_ICONV_H=1 ICONV_CONST=const HAVE_SYS_STATVFS_H=1 _FILE_OFFSET_BITS=64 HAVE_DIRFD=1 @@ -267,6 +267,7 @@ $(PATH_ROOT)/include/iprt/avl.h=>include/iprt/avl.h \ $(PATH_ROOT)/include/iprt/cdefs.h=>include/iprt/cdefs.h \ $(PATH_ROOT)/include/iprt/cpp/autores.h=>include/iprt/cpp/autores.h \ + $(PATH_ROOT)/include/iprt/critsect.h=>include/iprt/critsect.h \ $(PATH_ROOT)/include/iprt/ctype.h=>include/iprt/ctype.h \ $(PATH_ROOT)/include/iprt/dir.h=>include/iprt/dir.h \ $(PATH_ROOT)/include/iprt/env.h=>include/iprt/env.h \ @@ -276,11 +277,15 @@ $(PATH_ROOT)/include/iprt/linux/sysfs.h=>include/iprt/linux/sysfs.h \ $(PATH_ROOT)/include/iprt/list.h=>include/iprt/list.h \ $(PATH_ROOT)/include/iprt/log.h=>include/iprt/log.h \ + $(PATH_ROOT)/include/iprt/lockvalidator.h=>include/iprt/lockvalidator.h \ $(PATH_ROOT)/include/iprt/mem.h=>include/iprt/mem.h \ $(PATH_ROOT)/include/iprt/net.h=>include/iprt/net.h \ $(PATH_ROOT)/include/iprt/param.h=>include/iprt/param.h \ $(PATH_ROOT)/include/iprt/path.h=>include/iprt/path.h \ + $(PATH_ROOT)/include/iprt/pipe.h=>include/iprt/pipe.h \ + $(PATH_ROOT)/include/iprt/poll.h=>include/iprt/poll.h \ $(PATH_ROOT)/include/iprt/process.h=>include/iprt/process.h \ + $(PATH_ROOT)/include/iprt/sg.h=>include/iprt/sg.h \ $(PATH_ROOT)/include/iprt/stdarg.h=>include/iprt/stdarg.h \ $(PATH_ROOT)/include/iprt/stdint.h=>include/iprt/stdint.h \ $(PATH_ROOT)/include/iprt/stream.h=>include/iprt/stream.h \ @@ -311,6 +316,7 @@ $(PATH_ROOT)/src/VBox/Runtime/common/err/errmsgxpcom.cpp=>Runtime/common/err/errmsgxpcom.cpp \ $(PATH_ROOT)/src/VBox/Runtime/common/err/RTErrConvertFromErrno.cpp=>Runtime/common/err/RTErrConvertFromErrno.cpp \ $(PATH_ROOT)/src/VBox/Runtime/common/err/RTErrConvertToErrno.cpp=>Runtime/common/err/RTErrConvertToErrno.cpp \ + $(PATH_ROOT)/src/VBox/Runtime/common/misc/sg.cpp=>Runtime/common/misc/sg.cpp \ $(PATH_ROOT)/src/VBox/Runtime/common/path/RTPathAppend.cpp=>Runtime/common/path/RTPathAppend.cpp \ $(PATH_ROOT)/src/VBox/Runtime/common/path/RTPathAppendEx.cpp=>Runtime/common/path/RTPathAppendEx.cpp \ $(PATH_ROOT)/src/VBox/Runtime/common/path/RTPathCountComponents.cpp=>Runtime/common/path/RTPathCountComponents.cpp \ @@ -331,7 +337,9 @@ $(PATH_ROOT)/src/VBox/Runtime/common/string/strprintf.cpp=>Runtime/common/string/strprintf.cpp \ $(PATH_ROOT)/src/VBox/Runtime/common/string/strstrip.cpp=>Runtime/common/string/strstrip.cpp \ $(PATH_ROOT)/src/VBox/Runtime/common/string/strtonum.cpp=>Runtime/common/string/strtonum.cpp \ - $(PATH_ROOT)/src/VBox/Runtime/common/string/unidata.cpp=>Runtime/common/string/unidata.cpp \ + $(PATH_ROOT)/src/VBox/Runtime/common/string/unidata-flags.cpp=>Runtime/common/string/unidata-flags.cpp \ + $(PATH_ROOT)/src/VBox/Runtime/common/string/unidata-upper.cpp=>Runtime/common/string/unidata-upper.cpp \ + $(PATH_ROOT)/src/VBox/Runtime/common/string/unidata-lower.cpp=>Runtime/common/string/unidata-lower.cpp \ $(PATH_ROOT)/src/VBox/Runtime/common/string/utf-16.cpp=>Runtime/common/string/utf-16.cpp \ $(PATH_ROOT)/src/VBox/Runtime/common/string/utf-8.cpp=>Runtime/common/string/utf-8.cpp \ $(PATH_ROOT)/src/VBox/Runtime/common/string/utf-8-case.cpp=>Runtime/common/string/utf-8-case.cpp \ @@ -342,11 +350,14 @@ $(PATH_ROOT)/src/VBox/Runtime/include/internal/file.h=>include/internal/file.h \ $(PATH_ROOT)/src/VBox/Runtime/include/internal/fs.h=>include/internal/fs.h \ $(PATH_ROOT)/src/VBox/Runtime/include/internal/iprt.h=>include/internal/iprt.h \ + $(PATH_ROOT)/src/VBox/Runtime/include/internal/lockvalidator.h=>include/internal/lockvalidator.h \ $(PATH_ROOT)/src/VBox/Runtime/include/internal/magics.h=>include/internal/magics.h \ $(PATH_ROOT)/src/VBox/Runtime/include/internal/mem.h=>include/internal/mem.h \ $(PATH_ROOT)/src/VBox/Runtime/include/internal/path.h=>include/internal/path.h \ + $(PATH_ROOT)/src/VBox/Runtime/include/internal/pipe.h=>include/internal/pipe.h \ $(PATH_ROOT)/src/VBox/Runtime/include/internal/process.h=>include/internal/process.h \ $(PATH_ROOT)/src/VBox/Runtime/include/internal/string.h=>include/internal/string.h \ + $(PATH_ROOT)/src/VBox/Runtime/include/internal/thread.h=>include/internal/thread.h \ $(PATH_ROOT)/src/VBox/Runtime/include/internal/time.h=>include/internal/time.h \ $(PATH_ROOT)/src/VBox/Runtime/r3/alloc.cpp=>Runtime/r3/alloc.cpp \ $(PATH_ROOT)/src/VBox/Runtime/r3/alloc-ef.h=>Runtime/r3/alloc-ef.h \ @@ -362,6 +373,8 @@ $(PATH_ROOT)/src/VBox/Runtime/r3/posix/fs3-posix.cpp=>Runtime/r3/posix/fs3-posix.cpp \ $(PATH_ROOT)/src/VBox/Runtime/r3/posix/path-posix.cpp=>Runtime/r3/posix/path-posix.cpp \ $(PATH_ROOT)/src/VBox/Runtime/r3/posix/path2-posix.cpp=>Runtime/r3/posix/path2-posix.cpp \ + $(PATH_ROOT)/src/VBox/Runtime/r3/posix/pipe-posix.cpp=>Runtime/r3/posix/pipe-posix.cpp \ + $(PATH_ROOT)/src/VBox/Runtime/r3/posix/thread2-posix.cpp=>Runtime/r3/posix/thread2-posix.cpp \ $(PATH_ROOT)/src/VBox/Runtime/r3/posix/utf8-posix.cpp=>Runtime/r3/posix/utf8-posix.cpp \ $(PATH_ROOT)/src/VBox/Runtime/r3/stream.cpp=>Runtime/r3/stream.cpp diff -Nru virtualbox-4.1.12-dfsg/src/VBox/RDP/client/rdp.c virtualbox-4.1.44-dfsg/src/VBox/RDP/client/rdp.c --- virtualbox-4.1.12-dfsg/src/VBox/RDP/client/rdp.c 2012-04-02 13:28:58.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/RDP/client/rdp.c 2015-11-11 15:08:56.000000000 +0000 @@ -37,13 +37,30 @@ #ifdef HAVE_ICONV #ifdef HAVE_ICONV_H + +#if defined(RT_OS_SOLARIS) && !defined(_XPG6) +# define VBOX_XPG6_TMP_DEF +# define _XPG6 +#endif +#if defined(RT_OS_SOLARIS) && defined(__USE_LEGACY_PROTOTYPES__) +# define VBOX_LEGACY_PROTO_TMP_DEF +# undef __USE_LEGACY_PROTOTYPES__ +#endif #include +#if defined(VBOX_XPG6_TMP_DEF) +# undef _XPG6 +# undef VBOX_XPG6_TMP_DEF +#endif +#if defined(VBOX_LEGACY_PROTO_TMP_DEF) +# define __USE_LEGACY_PROTOTYPES__ +# undef VBOX_LEGACY_PROTO_TMP_DEF #endif #ifndef ICONV_CONST #define ICONV_CONST "" #endif #endif +#endif extern uint16 g_mcs_userid; extern char *g_username; diff -Nru virtualbox-4.1.12-dfsg/src/VBox/RDP/client/xclip.c virtualbox-4.1.44-dfsg/src/VBox/RDP/client/xclip.c --- virtualbox-4.1.12-dfsg/src/VBox/RDP/client/xclip.c 2012-04-02 13:28:59.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/RDP/client/xclip.c 2015-11-11 15:08:57.000000000 +0000 @@ -45,7 +45,25 @@ #ifdef HAVE_LANGINFO_H #ifdef HAVE_ICONV_H #include + +#if defined(RT_OS_SOLARIS) && !defined(_XPG6) +# define VBOX_XPG6_TMP_DEF +# define _XPG6 +#endif +#if defined(RT_OS_SOLARIS) && defined(__USE_LEGACY_PROTOTYPES__) +# define VBOX_LEGACY_PROTO_TMP_DEF +# undef __USE_LEGACY_PROTOTYPES__ +# endif #include +#if defined(VBOX_XPG6_TMP_DEF) +# undef _XPG6 +# undef VBOX_XPG6_TMP_DEF +#endif +#if defined(VBOX_LEGACY_PROTO_TMP_DEF) +# define __USE_LEGACY_PROTOTYPES__ +# undef VBOX_LEGACY_PROTO_TMP_DEF +#endif + #define USE_UNICODE_CLIPBOARD #endif #endif diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Runtime/common/alloc/memcache.cpp virtualbox-4.1.44-dfsg/src/VBox/Runtime/common/alloc/memcache.cpp --- virtualbox-4.1.12-dfsg/src/VBox/Runtime/common/alloc/memcache.cpp 2012-04-02 13:28:59.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Runtime/common/alloc/memcache.cpp 2015-11-11 15:08:58.000000000 +0000 @@ -564,7 +564,7 @@ uintptr_t iObj = offObj / pThis->cbObject; Assert(iObj * pThis->cbObject == offObj); Assert(iObj < pThis->cPerPage); - AssertReturnVoid(ASMAtomicBitTestAndClear(pPage->pbmAlloc, iObj)); + AssertReturnVoid(ASMAtomicBitTestAndClear(pPage->pbmAlloc, (int32_t)iObj)); ASMAtomicIncS32(&pPage->cFree); ASMAtomicIncS32(&pThis->cFree); diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Runtime/common/asm/ASMCpuId_Idx_ECX.asm virtualbox-4.1.44-dfsg/src/VBox/Runtime/common/asm/ASMCpuId_Idx_ECX.asm --- virtualbox-4.1.12-dfsg/src/VBox/Runtime/common/asm/ASMCpuId_Idx_ECX.asm 1970-01-01 00:00:00.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Runtime/common/asm/ASMCpuId_Idx_ECX.asm 2015-11-11 15:08:58.000000000 +0000 @@ -0,0 +1,116 @@ +; $Id: ASMCpuId_Idx_ECX.asm $ +;; @file +; IPRT - ASMCpuId_Idx_ECX(). +; + +; +; Copyright (C) 2012 Oracle Corporation +; +; This file is part of VirtualBox Open Source Edition (OSE), as +; available from http://www.virtualbox.org. This file is free software; +; you can redistribute it and/or modify it under the terms of the GNU +; General Public License (GPL) as published by the Free Software +; Foundation, in version 2 as it comes in the "COPYING" file of the +; VirtualBox OSE distribution. VirtualBox OSE is distributed in the +; hope that it will be useful, but WITHOUT ANY WARRANTY of any kind. +; +; The contents of this file may alternatively be used under the terms +; of the Common Development and Distribution License Version 1.0 +; (CDDL) only, as it comes in the "COPYING.CDDL" file of the +; VirtualBox OSE distribution, in which case the provisions of the +; CDDL are applicable instead of those of the GPL. +; +; You may elect to license modified versions of this file under the +; terms and conditions of either the GPL or the CDDL or both. +; + +;******************************************************************************* +;* Header Files * +;******************************************************************************* +%include "iprt/asmdefs.mac" + +BEGINCODE + +;; +; CPUID with EAX and ECX inputs, returning ALL output registers. +; +; @param uOperator x86:ebp+8 gcc:rdi msc:rcx +; @param uIdxECX x86:ebp+c gcc:rsi msc:rdx +; @param pvEAX x86:ebp+10 gcc:rcx msc:r8 +; @param pvEBX x86:ebp+14 gcc:rdx msc:r9 +; @param pvECX x86:ebp+18 gcc:r8 msc:rsp+28h +; @param pvEDX x86:ebp+1c gcc:r9 msc:rsp+30h +; +; @returns void +; +BEGINPROC_EXPORTED ASMCpuId_Idx_ECX +%ifdef RT_ARCH_AMD64 + mov r10, rbx + + %ifdef ASM_CALL64_MSC + + mov eax, ecx + mov ecx, edx + xor ebx, ebx + xor edx, edx + + cpuid + + mov [r8], eax + mov [r9], ebx + mov rax, [rsp + 28h] + mov rbx, [rsp + 30h] + mov [rax], ecx + mov [rbx], edx + + %else + mov eax, edi + xchg rcx, rsi + mov ecx, ecx ; paranoia: clear upper bits + mov r11, rdx + xor ebx, ebx + xor edx, edx + + cpuid + + mov [rsi], eax + mov [r11], ebx + mov [r8], ecx + mov [r9], edx + + %endif + + mov rbx, r10 + ret + +%elifdef RT_ARCH_X86 + push ebp + mov ebp, esp + push ebx + push edi + + xor edx, edx + xor ebx, ebx + mov eax, [ebp + 08h] + mov ecx, [ebp + 0ch] + + cpuid + + mov edi, [ebp + 10h] + mov [edi], eax + mov edi, [ebp + 14h] + mov [edi], ebx + mov edi, [ebp + 18h] + mov [edi], ecx + mov edi, [ebp + 1ch] + mov [edi], edx + + pop edi + pop ebx + leave + ret +%else + %error unsupported arch +%endif +ENDPROC ASMCpuId_Idx_ECX + diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Runtime/common/asm/asm-fake.cpp virtualbox-4.1.44-dfsg/src/VBox/Runtime/common/asm/asm-fake.cpp --- virtualbox-4.1.12-dfsg/src/VBox/Runtime/common/asm/asm-fake.cpp 2012-04-02 13:28:59.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Runtime/common/asm/asm-fake.cpp 2015-11-11 15:08:58.000000000 +0000 @@ -432,3 +432,9 @@ return RT_MAKE_U32_FROM_U8(RT_BYTE4(u32), RT_BYTE3(u32), RT_BYTE2(u32), RT_BYTE1(u32)); } +RTDECL(uint64_t) ASMByteSwapU64(uint64_t u64) +{ + return RT_MAKE_U64_FROM_U8(RT_BYTE8(u64), RT_BYTE7(u64), RT_BYTE6(u64), RT_BYTE5(u64), + RT_BYTE4(u64), RT_BYTE3(u64), RT_BYTE2(u64), RT_BYTE1(u64)); +} + diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Runtime/common/asn1/asn1-basics.cpp virtualbox-4.1.44-dfsg/src/VBox/Runtime/common/asn1/asn1-basics.cpp --- virtualbox-4.1.12-dfsg/src/VBox/Runtime/common/asn1/asn1-basics.cpp 1970-01-01 00:00:00.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Runtime/common/asn1/asn1-basics.cpp 2015-11-11 15:08:58.000000000 +0000 @@ -0,0 +1,592 @@ +/* $Id: asn1-basics.cpp $ */ +/** @file + * IPRT - ASN.1, Basic Operations. + */ + +/* + * Copyright (C) 2006-2014 Oracle Corporation + * + * This file is part of VirtualBox Open Source Edition (OSE), as + * available from http://www.virtualbox.org. This file is free software; + * you can redistribute it and/or modify it under the terms of the GNU + * General Public License (GPL) as published by the Free Software + * Foundation, in version 2 as it comes in the "COPYING" file of the + * VirtualBox OSE distribution. VirtualBox OSE is distributed in the + * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind. + * + * The contents of this file may alternatively be used under the terms + * of the Common Development and Distribution License Version 1.0 + * (CDDL) only, as it comes in the "COPYING.CDDL" file of the + * VirtualBox OSE distribution, in which case the provisions of the + * CDDL are applicable instead of those of the GPL. + * + * You may elect to license modified versions of this file under the + * terms and conditions of either the GPL or the CDDL or both. + */ + +/******************************************************************************* +* Header Files * +*******************************************************************************/ +#include "internal/iprt.h" +#include + +#include +#include +#include +#include +#include +#include + +#include + + +/******************************************************************************* +* Structures and Typedefs * +*******************************************************************************/ +/** + * ASN.1 content/value allocation. + * + * The currently most frequent use of the RTAsn1 module is to decode ASN.1 byte + * streams. In that scenario we do not allocate memory for the raw content + * bytes, but share it with the byte stream. Also, a great number of RTASN1CORE + * structures will never need to have any content bytes allocated with this. + * + * So, in order to avoid adding an extra 16 (64-bit) or 8 (32-bit) bytes to each + * RTASN1CORE structure just to keep track of the occational content allocation, + * we put the allocator tracking structure inside the allocation. During + * allocator operations it lives temporarily on the stack. + */ +typedef struct RTASN1MEMCONTENT +{ + /** The allocation tracker. */ + RTASN1ALLOCATION Allocation; +#if ARCH_BITS == 32 + uint32_t Padding; /**< Alignment padding. */ +#endif + /** The content bytes, i.e. what RTASN1CORE::uData.pv points to. Use a 64-bit + * type here to emphasize that it's 8-byte aligned on all platforms. */ + uint64_t au64Content[1]; +} RTASN1MEMCONTENT; +AssertCompileMemberAlignment(RTASN1MEMCONTENT, au64Content, 8); +/** Pointer to a ASN.1 content allocation. */ +typedef RTASN1MEMCONTENT *PRTASN1MEMCONTENT; + + + + +RTDECL(int) RTAsn1MemGrowArray(PRTASN1ALLOCATION pAllocation, void **ppvArray, size_t cbEntry, + uint32_t cCurrent, uint32_t cNew) +{ + AssertReturn(pAllocation->pAllocator != NULL, VERR_WRONG_ORDER); + AssertReturn(cbEntry > 0, VERR_INVALID_PARAMETER); + AssertReturn(cNew > cCurrent, VERR_INVALID_PARAMETER); + AssertReturn(cNew < _1M, VERR_OUT_OF_RANGE); + + pAllocation->cReallocs++; + + void *pvOld = *ppvArray; + + /* Initial allocation? */ + if (cCurrent == 0) + { + AssertReturn(pvOld == NULL, VERR_INVALID_PARAMETER); + AssertReturn(cNew != 0, VERR_INVALID_PARAMETER); + return pAllocation->pAllocator->pfnAlloc(pAllocation->pAllocator, pAllocation, ppvArray, cNew * cbEntry); + } + + /* Do we need to grow the allocation or did we already allocate sufficient memory in a previous call? */ + size_t cbNew = cNew * cbEntry; + if (pAllocation->cbAllocated < cbNew) + { + /* Need to grow. Adjust the new size according to how many times we've been called. */ + if (pAllocation->cReallocs > 2) + { + if (pAllocation->cReallocs > 8) + cNew += 8; + else if (pAllocation->cReallocs < 4) + cNew += 2; + else + cNew += 4; + cbNew += cNew * cbEntry; + } + + int rc = pAllocation->pAllocator->pfnRealloc(pAllocation->pAllocator, pAllocation, pvOld, ppvArray, cbNew); + if (RT_FAILURE(rc)) + return rc; + Assert(pAllocation->cbAllocated >= cbNew); + + /* Clear the memory. */ + size_t cbOld = cCurrent * cbEntry; + RT_BZERO((uint8_t *)*ppvArray + cbOld, pAllocation->cbAllocated - cbOld); + } + + return VINF_SUCCESS; +} + + +RTDECL(int) RTAsn1MemAllocZ(PRTASN1ALLOCATION pAllocation, void **ppvMem, size_t cbMem) +{ + AssertReturn(pAllocation->pAllocator != NULL, VERR_WRONG_ORDER); + AssertPtr(ppvMem); + Assert(cbMem > 0); + int rc = pAllocation->pAllocator->pfnAlloc(pAllocation->pAllocator, pAllocation, ppvMem, cbMem); + Assert(pAllocation->cbAllocated >= cbMem || RT_FAILURE_NP(rc)); + return rc; +} + + +RTDECL(int) RTAsn1MemDup(PRTASN1ALLOCATION pAllocation, void **ppvMem, const void *pvSrc, size_t cbMem) +{ + AssertReturn(pAllocation->pAllocator != NULL, VERR_WRONG_ORDER); + AssertPtr(ppvMem); + AssertPtr(pvSrc); + Assert(cbMem > 0); + int rc = pAllocation->pAllocator->pfnAlloc(pAllocation->pAllocator, pAllocation, ppvMem, cbMem); + if (RT_SUCCESS(rc)) + { + Assert(pAllocation->cbAllocated >= cbMem); + memcpy(*ppvMem, pvSrc, cbMem); + return VINF_SUCCESS; + } + return rc; +} + + +RTDECL(void) RTAsn1MemFree(PRTASN1ALLOCATION pAllocation, void *pv) +{ + Assert(pAllocation->pAllocator != NULL); + if (pv) + { + pAllocation->pAllocator->pfnFree(pAllocation->pAllocator, pAllocation, pv); + Assert(pAllocation->cbAllocated == 0); + } +} + + +RTDECL(PRTASN1ALLOCATION) RTAsn1MemInitAllocation(PRTASN1ALLOCATION pAllocation, PCRTASN1ALLOCATORVTABLE pAllocator) +{ + pAllocation->cbAllocated = 0; + pAllocation->cReallocs = 0; + pAllocation->uReserved0 = 0; + pAllocation->pAllocator = pAllocator; + return pAllocation; +} + + +RTDECL(int) RTAsn1ContentAllocZ(PRTASN1CORE pAsn1Core, size_t cb, PCRTASN1ALLOCATORVTABLE pAllocator) +{ + AssertReturn(pAllocator != NULL, VERR_WRONG_ORDER); + AssertReturn(cb > 0 && cb < _1G, VERR_INVALID_PARAMETER); + AssertPtr(pAsn1Core); + AssertReturn(!(pAsn1Core->fFlags & RTASN1CORE_F_ALLOCATED_CONTENT), VERR_INVALID_STATE); + + /* Initialize the temporary allocation tracker. */ + RTASN1ALLOCATION Allocation; + Allocation.cbAllocated = 0; + Allocation.cReallocs = 0; + Allocation.uReserved0 = 0; + Allocation.pAllocator = pAllocator; + + /* Make the allocation. */ + uint32_t cbAlloc = RT_OFFSETOF(RTASN1MEMCONTENT, au64Content) + (uint32_t)cb; + PRTASN1MEMCONTENT pHdr; + int rc = pAllocator->pfnAlloc(pAllocator, &Allocation, (void **)&pHdr, cbAlloc); + if (RT_SUCCESS(rc)) + { + Assert(Allocation.cbAllocated >= cbAlloc); + pHdr->Allocation = Allocation; + pAsn1Core->cb = (uint32_t)cb; + pAsn1Core->uData.pv = &pHdr->au64Content[0]; + pAsn1Core->fFlags |= RTASN1CORE_F_ALLOCATED_CONTENT; + } + + return rc; +} + + +RTDECL(int) RTAsn1ContentDup(PRTASN1CORE pAsn1Core, void const *pvSrc, size_t cbSrc, PCRTASN1ALLOCATORVTABLE pAllocator) +{ + int rc = RTAsn1ContentAllocZ(pAsn1Core, cbSrc, pAllocator); + if (RT_SUCCESS(rc)) + memcpy((void *)pAsn1Core->uData.pv, pvSrc, cbSrc); + return rc; +} + + +RTDECL(int) RTAsn1ContentReallocZ(PRTASN1CORE pAsn1Core, size_t cb, PCRTASN1ALLOCATORVTABLE pAllocator) +{ + /* Validate input. */ + AssertPtr(pAsn1Core); + AssertReturn(cb < _1G, VERR_INVALID_PARAMETER); + + if (cb > 0) + { + /* + * Case 1 - Initial allocation. + */ + uint32_t cbNeeded = RT_OFFSETOF(RTASN1MEMCONTENT, au64Content) + (uint32_t)cb; + if (!(pAsn1Core->fFlags & RTASN1CORE_F_ALLOCATED_CONTENT)) + return RTAsn1ContentAllocZ(pAsn1Core, cb, pAllocator); + + /* Locate the header. */ + PRTASN1MEMCONTENT pHdr = RT_FROM_MEMBER(pAsn1Core->uData.pv, RTASN1MEMCONTENT, au64Content); + + /* + * Case 2 - Reallocation using the same allocator. + */ + if ( pHdr->Allocation.pAllocator == pAllocator + || !pAllocator) + { + pHdr->Allocation.cReallocs++; + + /* Modify the allocation if necessary. */ + if (pHdr->Allocation.cbAllocated < cbNeeded) + { + RTASN1ALLOCATION Allocation = pHdr->Allocation; + int rc = Allocation.pAllocator->pfnRealloc(Allocation.pAllocator, &Allocation, pHdr, (void **)&pHdr, cbNeeded); + if (RT_FAILURE(rc)) + return rc; + Assert(Allocation.cbAllocated >= cbNeeded); + pAsn1Core->uData.pv = &pHdr->au64Content[0]; + pHdr->Allocation = Allocation; + } + + /* Clear any additional memory we're letting the user use and + update the content size. */ + if (pAsn1Core->cb < cb) + RT_BZERO((uint8_t *)&pAsn1Core->uData.pu8[pAsn1Core->cb], cb - pAsn1Core->cb); + pAsn1Core->cb = (uint32_t)cb; + } + /* + * Case 3 - Reallocation using a different allocator. + */ + else + { + /* Initialize the temporary allocation tracker. */ + RTASN1ALLOCATION Allocation; + Allocation.cbAllocated = 0; + Allocation.cReallocs = pHdr->Allocation.cReallocs + 1; + Allocation.uReserved0 = 0; + Allocation.pAllocator = pAllocator; + + /* Make the allocation. */ + PRTASN1MEMCONTENT pHdrNew; + int rc = pAllocator->pfnAlloc(pAllocator, &Allocation, (void **)&pHdrNew, cbNeeded); + if (RT_FAILURE(rc)) + return rc; + Assert(Allocation.cbAllocated >= cbNeeded); + + /* Duplicate the old content and zero any new memory we might've added. */ + if (pAsn1Core->cb >= cb) + memcpy(&pHdrNew->au64Content[0], &pHdr->au64Content[0], cb); + else + { + memcpy(&pHdrNew->au64Content[0], &pHdr->au64Content[0], pAsn1Core->cb); + RT_BZERO((uint8_t *)&pHdrNew->au64Content[0] + pAsn1Core->cb, cb - pAsn1Core->cb); + } + + /* Update the core. */ + pHdrNew->Allocation = Allocation; + pAsn1Core->uData.pv = &pHdrNew->au64Content[0]; + pAsn1Core->fFlags |= RTASN1CORE_F_ALLOCATED_CONTENT; /* free cleared it. */ + pAsn1Core->cb = (uint32_t)cb; + + /* Free the old content. */ + Allocation = pHdr->Allocation; + Allocation.pAllocator->pfnFree(Allocation.pAllocator, &Allocation, pHdr); + Assert(Allocation.cbAllocated == 0); + } + } + /* + * Case 4 - It's a request to free the memory. + */ + else + RTAsn1ContentFree(pAsn1Core); + return VINF_SUCCESS; +} + + +RTDECL(void) RTAsn1ContentFree(PRTASN1CORE pAsn1Core) +{ + if (pAsn1Core) + { + pAsn1Core->cb = 0; + if (pAsn1Core->fFlags & RTASN1CORE_F_ALLOCATED_CONTENT) + { + pAsn1Core->fFlags &= ~RTASN1CORE_F_ALLOCATED_CONTENT; + AssertReturnVoid(pAsn1Core->uData.pv); + + PRTASN1MEMCONTENT pHdr = RT_FROM_MEMBER(pAsn1Core->uData.pv, RTASN1MEMCONTENT, au64Content); + RTASN1ALLOCATION Allocation = pHdr->Allocation; + + Allocation.pAllocator->pfnFree(Allocation.pAllocator, &Allocation, pHdr); + Assert(Allocation.cbAllocated == 0); + } + pAsn1Core->uData.pv = NULL; + } +} + + + +/* + * Virtual method table based API. + */ + +RTDECL(void) RTAsn1VtDelete(PRTASN1CORE pAsn1Core) +{ + if (pAsn1Core) + { + PCRTASN1COREVTABLE pOps = pAsn1Core->pOps; + if (pOps) + pOps->pfnDtor(pAsn1Core); + } +} + + +/** + * Context data passed by RTAsn1VtDeepEnum to it's worker callbacks. + */ +typedef struct RTASN1DEEPENUMCTX +{ + PFNRTASN1ENUMCALLBACK pfnCallback; + void *pvUser; +} RTASN1DEEPENUMCTX; + + +static DECLCALLBACK(int) rtAsn1VtDeepEnumDepthFirst(PRTASN1CORE pAsn1Core, const char *pszName, uint32_t uDepth, void *pvUser) +{ + AssertReturn(pAsn1Core, VINF_SUCCESS); + + if (pAsn1Core->pOps && pAsn1Core->pOps->pfnEnum) + { + int rc = pAsn1Core->pOps->pfnEnum(pAsn1Core, rtAsn1VtDeepEnumDepthFirst, uDepth, pvUser); + if (rc != VINF_SUCCESS) + return rc; + } + + RTASN1DEEPENUMCTX *pCtx = (RTASN1DEEPENUMCTX *)pvUser; + return pCtx->pfnCallback(pAsn1Core, pszName, uDepth, pCtx->pvUser); +} + + +static DECLCALLBACK(int) rtAsn1VtDeepEnumDepthLast(PRTASN1CORE pAsn1Core, const char *pszName, uint32_t uDepth, void *pvUser) +{ + AssertReturn(pAsn1Core, VINF_SUCCESS); + + RTASN1DEEPENUMCTX *pCtx = (RTASN1DEEPENUMCTX *)pvUser; + int rc = pCtx->pfnCallback(pAsn1Core, pszName, uDepth, pCtx->pvUser); + if (rc == VINF_SUCCESS) + { + if (pAsn1Core->pOps && pAsn1Core->pOps->pfnEnum) + rc = pAsn1Core->pOps->pfnEnum(pAsn1Core, rtAsn1VtDeepEnumDepthFirst, uDepth, pvUser); + } + return rc; +} + + +RTDECL(int) RTAsn1VtDeepEnum(PRTASN1CORE pThisCore, bool fDepthFirst, uint32_t uDepth, + PFNRTASN1ENUMCALLBACK pfnCallback, void *pvUser) +{ + int rc; + if (RTAsn1Core_IsPresent(pThisCore)) + { + PCRTASN1COREVTABLE pOps = pThisCore->pOps; + if (pOps && pOps->pfnEnum) + { + RTASN1DEEPENUMCTX Ctx; + Ctx.pfnCallback = pfnCallback; + Ctx.pvUser = pvUser; + rc = pOps->pfnEnum(pThisCore, fDepthFirst ? rtAsn1VtDeepEnumDepthFirst : rtAsn1VtDeepEnumDepthLast, uDepth, &Ctx); + } + else + rc = VINF_SUCCESS; + } + else + rc = VINF_SUCCESS; + return rc; +} + + +RTDECL(int) RTAsn1VtClone(PRTASN1CORE pThisCore, PRTASN1CORE pSrcCore, PCRTASN1ALLOCATORVTABLE pAllocator) +{ + AssertPtrReturn(pThisCore, VERR_INVALID_POINTER); + AssertPtrReturn(pSrcCore, VERR_INVALID_POINTER); + AssertPtrReturn(pAllocator, VERR_INVALID_POINTER); + + if (RTAsn1Core_IsPresent(pSrcCore)) + { + AssertPtrReturn(pSrcCore->pOps, VERR_INVALID_POINTER); + AssertPtr(pSrcCore->pOps->pfnClone); + return pSrcCore->pOps->pfnClone(pThisCore, pSrcCore, pAllocator); + } + + RT_ZERO(*pThisCore); + return VINF_SUCCESS; +} + + +RTDECL(int) RTAsn1VtCompare(PCRTASN1CORE pLeftCore, PCRTASN1CORE pRightCore) +{ + int iDiff; + if (RTAsn1Core_IsPresent(pLeftCore)) + { + if (RTAsn1Core_IsPresent(pRightCore)) + { + PCRTASN1COREVTABLE pOps = pLeftCore->pOps; + if (pOps == pRightCore->pOps) + { + AssertPtr(pOps->pfnCompare); + iDiff = pOps->pfnCompare(pLeftCore, pRightCore); + } + else + iDiff = (uintptr_t)pOps < (uintptr_t)pRightCore->pOps ? -1 : 1; + } + else + iDiff = 1; + } + else + iDiff = 0 - (int)RTAsn1Core_IsPresent(pRightCore); + return iDiff; +} + + +RTDECL(int) RTAsn1VtCheckSanity(PCRTASN1CORE pThisCore, uint32_t fFlags, + PRTERRINFO pErrInfo, const char *pszErrorTag) +{ + int rc; + if (RTAsn1Core_IsPresent(pThisCore)) + { + PCRTASN1COREVTABLE pOps = pThisCore->pOps; + if (pOps && pOps->pfnCheckSanity) + rc = pOps->pfnCheckSanity(pThisCore, fFlags, pErrInfo, pszErrorTag); + else if (pOps) + rc = RTErrInfoSetF(pErrInfo, VERR_ASN1_NO_CHECK_SANITY_METHOD, + "%s: Has no pfnCheckSanity function.", pszErrorTag); + else + rc = RTErrInfoSetF(pErrInfo, VERR_ASN1_NO_VTABLE, "%s: Has no Vtable function.", pszErrorTag); + } + else + rc = RTErrInfoSetF(pErrInfo, VERR_ASN1_NOT_PRESENT, "%s: Not present.", pszErrorTag); + return rc; +} + + + +/* + * Dummy ASN.1 object. + */ + +RTDECL(int) RTAsn1Dummy_InitEx(PRTASN1DUMMY pThis) +{ + return RTAsn1Core_InitEx(&pThis->Asn1Core, + UINT32_MAX, + ASN1_TAGCLASS_PRIVATE | ASN1_TAGFLAG_CONSTRUCTED, + NULL, + RTASN1CORE_F_DUMMY); +} + + +/* + * ASN.1 SEQUENCE OF object. + */ + +RTDECL(int) RTAsn1SeqOfCore_Init(PRTASN1SEQOFCORE pThis, PCRTASN1COREVTABLE pVtable) +{ + return RTAsn1Core_InitEx(&pThis->Asn1Core, + ASN1_TAG_SEQUENCE, + ASN1_TAGCLASS_UNIVERSAL | ASN1_TAGFLAG_CONSTRUCTED, + pVtable, + RTASN1CORE_F_PRESENT); +} + + +RTDECL(int) RTAsn1SeqOfCore_Clone(PRTASN1SEQOFCORE pThis, PCRTASN1COREVTABLE pVtable, PCRTASN1SEQOFCORE pSrc) +{ + AssertReturn(pSrc->Asn1Core.pOps == pVtable, VERR_ASN1_INTERNAL_ERROR_5); + return RTAsn1Core_CloneNoContent(&pThis->Asn1Core, &pSrc->Asn1Core); +} + + +/* + * ASN.1 SET OF object. + */ + +RTDECL(int) RTAsn1SetOfCore_Init(PRTASN1SETOFCORE pThis, PCRTASN1COREVTABLE pVtable) +{ + return RTAsn1Core_InitEx(&pThis->Asn1Core, + ASN1_TAG_SET, + ASN1_TAGCLASS_UNIVERSAL | ASN1_TAGFLAG_CONSTRUCTED, + pVtable, + RTASN1CORE_F_PRESENT); +} + + +RTDECL(int) RTAsn1SetOfCore_Clone(PRTASN1SETOFCORE pThis, PCRTASN1COREVTABLE pVtable, PCRTASN1SETOFCORE pSrc) +{ + AssertReturn(pSrc->Asn1Core.pOps == pVtable, VERR_ASN1_INTERNAL_ERROR_5); + return RTAsn1Core_CloneNoContent(&pThis->Asn1Core, &pSrc->Asn1Core); +} + + +/* + * ASN.1 SEQUENCE object. + */ + +RTDECL(int) RTAsn1SequenceCore_Init(PRTASN1SEQUENCECORE pThis, PCRTASN1COREVTABLE pVtable) +{ + return RTAsn1Core_InitEx(&pThis->Asn1Core, + ASN1_TAG_SEQUENCE, + ASN1_TAGCLASS_UNIVERSAL | ASN1_TAGFLAG_CONSTRUCTED, + pVtable, + RTASN1CORE_F_PRESENT); +} + + +RTDECL(int) RTAsn1SequenceCore_Clone(PRTASN1SEQUENCECORE pThis, PCRTASN1COREVTABLE pVtable, PCRTASN1SEQUENCECORE pSrc) +{ + AssertReturn(pSrc->Asn1Core.pOps == pVtable, VERR_ASN1_INTERNAL_ERROR_5); + return RTAsn1Core_CloneNoContent(&pThis->Asn1Core, &pSrc->Asn1Core); +} + + +/* + * ASN.1 SEQUENCE object - only used by SPC, so probably doing something wrong there. + */ + +RTDECL(int) RTAsn1SetCore_Init(PRTASN1SETCORE pThis, PCRTASN1COREVTABLE pVtable) +{ + return RTAsn1Core_InitEx(&pThis->Asn1Core, + ASN1_TAG_SET, + ASN1_TAGCLASS_UNIVERSAL | ASN1_TAGFLAG_CONSTRUCTED, + pVtable, + RTASN1CORE_F_PRESENT); +} + + +RTDECL(int) RTAsn1SetCore_Clone(PRTASN1SETCORE pThis, PCRTASN1COREVTABLE pVtable, PCRTASN1SETCORE pSrc) +{ + AssertReturn(pSrc->Asn1Core.pOps == pVtable, VERR_ASN1_INTERNAL_ERROR_5); + return RTAsn1Core_CloneNoContent(&pThis->Asn1Core, &pSrc->Asn1Core); +} + + +/* + * ASN.1 Context Tag object. + */ + +RTDECL(int) RTAsn1ContextTagN_Init(PRTASN1CONTEXTTAG pThis, uint32_t uTag) +{ + return RTAsn1Core_InitEx(&pThis->Asn1Core, + uTag, + ASN1_TAGCLASS_CONTEXT | ASN1_TAGFLAG_CONSTRUCTED, + NULL, + RTASN1CORE_F_PRESENT); +} + + +RTDECL(int) RTAsn1ContextTagN_Clone(PRTASN1CONTEXTTAG pThis, PCRTASN1CONTEXTTAG pSrc, uint32_t uTag) +{ + Assert(pSrc->Asn1Core.uTag == uTag || !RTASN1CORE_IS_PRESENT(&pSrc->Asn1Core)); + return RTAsn1Core_CloneNoContent(&pThis->Asn1Core, &pSrc->Asn1Core); +} + diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Runtime/common/asn1/asn1-cursor.cpp virtualbox-4.1.44-dfsg/src/VBox/Runtime/common/asn1/asn1-cursor.cpp --- virtualbox-4.1.12-dfsg/src/VBox/Runtime/common/asn1/asn1-cursor.cpp 1970-01-01 00:00:00.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Runtime/common/asn1/asn1-cursor.cpp 2015-11-11 15:08:58.000000000 +0000 @@ -0,0 +1,537 @@ +/* $Id: asn1-cursor.cpp $ */ +/** @file + * IPRT - ASN.1, Basic Operations. + */ + +/* + * Copyright (C) 2006-2014 Oracle Corporation + * + * This file is part of VirtualBox Open Source Edition (OSE), as + * available from http://www.virtualbox.org. This file is free software; + * you can redistribute it and/or modify it under the terms of the GNU + * General Public License (GPL) as published by the Free Software + * Foundation, in version 2 as it comes in the "COPYING" file of the + * VirtualBox OSE distribution. VirtualBox OSE is distributed in the + * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind. + * + * The contents of this file may alternatively be used under the terms + * of the Common Development and Distribution License Version 1.0 + * (CDDL) only, as it comes in the "COPYING.CDDL" file of the + * VirtualBox OSE distribution, in which case the provisions of the + * CDDL are applicable instead of those of the GPL. + * + * You may elect to license modified versions of this file under the + * terms and conditions of either the GPL or the CDDL or both. + */ + +/******************************************************************************* +* Header Files * +*******************************************************************************/ +#include "internal/iprt.h" +#include + +#include +#include +#include +#include + +#include + + +/******************************************************************************* +* Defined Constants And Macros * +*******************************************************************************/ +/** @def RTASN1_MAX_NESTING + * The maximum nesting depth we allow. This limit is enforced to avoid running + * out of stack due to malformed ASN.1 input. + * + * For reference, 'RTSignTool verify-exe RTSignTool.exe', requires a value of 15 + * to work without hitting the limit for signatures with simple timestamps, and + * 23 (amd64/rel = ~3KB) for the new microsoft timestamp counter signatures. + */ +#ifdef IN_RING3 +# define RTASN1_MAX_NESTING 64 +#else +# define RTASN1_MAX_NESTING 32 +#endif + + +/******************************************************************************* +* Global Variables * +*******************************************************************************/ +static char const g_achDigits[11] = "0123456789"; + + + +RTDECL(PRTASN1CURSOR) RTAsn1CursorInitPrimary(PRTASN1CURSORPRIMARY pPrimaryCursor, void const *pvFirst, uint32_t cb, + PRTERRINFO pErrInfo, PCRTASN1ALLOCATORVTABLE pAllocator, uint32_t fFlags, + const char *pszErrorTag) +{ + pPrimaryCursor->Cursor.pbCur = (uint8_t const *)pvFirst; + pPrimaryCursor->Cursor.cbLeft = cb; + pPrimaryCursor->Cursor.fFlags = fFlags; + pPrimaryCursor->Cursor.cDepth = 0; + pPrimaryCursor->Cursor.abReserved[0] = 0; + pPrimaryCursor->Cursor.abReserved[1] = 0; + pPrimaryCursor->Cursor.pPrimary = pPrimaryCursor; + pPrimaryCursor->Cursor.pUp = NULL; + pPrimaryCursor->Cursor.pszErrorTag = pszErrorTag; + pPrimaryCursor->pErrInfo = pErrInfo; + pPrimaryCursor->pAllocator = pAllocator; + return &pPrimaryCursor->Cursor; +} + + +RTDECL(int) RTAsn1CursorInitSub(PRTASN1CURSOR pParent, uint32_t cb, PRTASN1CURSOR pChild, const char *pszErrorTag) +{ + AssertReturn(pParent->pPrimary, VERR_ASN1_INTERNAL_ERROR_1); + AssertReturn(pParent->pbCur, VERR_ASN1_INTERNAL_ERROR_2); + + pChild->pbCur = pParent->pbCur; + pChild->cbLeft = cb; + pChild->fFlags = pParent->fFlags; + pChild->cDepth = pParent->cDepth + 1; + AssertReturn(pChild->cDepth < RTASN1_MAX_NESTING, VERR_ASN1_TOO_DEEPLY_NESTED); + pChild->abReserved[0] = 0; + pChild->abReserved[1] = 0; + pChild->pPrimary = pParent->pPrimary; + pChild->pUp = pParent; + pChild->pszErrorTag = pszErrorTag; + + AssertReturn(pParent->cbLeft >= cb, VERR_ASN1_INTERNAL_ERROR_3); + pParent->pbCur += cb; + pParent->cbLeft -= cb; + + return VINF_SUCCESS; +} + + +RTDECL(int) RTAsn1CursorInitSubFromCore(PRTASN1CURSOR pParent, PRTASN1CORE pAsn1Core, + PRTASN1CURSOR pChild, const char *pszErrorTag) +{ + AssertReturn(pParent->pPrimary, VERR_ASN1_INTERNAL_ERROR_1); + AssertReturn(pParent->pbCur, VERR_ASN1_INTERNAL_ERROR_2); + + pChild->pbCur = pAsn1Core->uData.pu8; + pChild->cbLeft = pAsn1Core->cb; + pChild->fFlags = pParent->fFlags; + pChild->cDepth = pParent->cDepth + 1; + AssertReturn(pChild->cDepth < RTASN1_MAX_NESTING, VERR_ASN1_TOO_DEEPLY_NESTED); + pChild->abReserved[0] = 0; + pChild->abReserved[1] = 0; + pChild->pPrimary = pParent->pPrimary; + pChild->pUp = pParent; + pChild->pszErrorTag = pszErrorTag; + + return VINF_SUCCESS; +} + + +RTDECL(int) RTAsn1CursorSetInfoV(PRTASN1CURSOR pCursor, int rc, const char *pszMsg, va_list va) +{ + PRTERRINFO pErrInfo = pCursor->pPrimary->pErrInfo; + if (pErrInfo) + { + /* Format the message. */ + RTErrInfoSetV(pErrInfo, rc, pszMsg, va); + + /* Add the prefixes. This isn't the fastest way, but it's the one + which eats the least stack. */ + char *pszBuf = pErrInfo->pszMsg; + size_t cbBuf = pErrInfo->cbMsg; + if (pszBuf && cbBuf > 32) + { + size_t cbMove = strlen(pszBuf) + 1; + + /* Make sure there is a ': '. */ + bool fFirst = false; + if (pszMsg[0] != '%' || pszMsg[1] != 's' || pszMsg[2] != ':') + { + if (cbMove + 2 < cbBuf) + { + memmove(pszBuf + 2, pszBuf, cbMove); + pszBuf[0] = ':'; + pszBuf[1] = ' '; + cbMove += 2; + fFirst = true; + } + } + + /* Add the prefixes from the cursor chain. */ + while (pCursor) + { + if (pCursor->pszErrorTag) + { + size_t cchErrorTag = strlen(pCursor->pszErrorTag); + if (cchErrorTag + !fFirst + cbMove > cbBuf) + break; + memmove(pszBuf + cchErrorTag + !fFirst, pszBuf, cbMove); + memcpy(pszBuf, pCursor->pszErrorTag, cchErrorTag); + if (!fFirst) + pszBuf[cchErrorTag] = '.'; + cbMove += cchErrorTag + !fFirst; + fFirst = false; + } + pCursor = pCursor->pUp; + } + } + } + + return rc; +} + + +RTDECL(int) RTAsn1CursorSetInfo(PRTASN1CURSOR pCursor, int rc, const char *pszMsg, ...) +{ + va_list va; + va_start(va, pszMsg); + rc = RTAsn1CursorSetInfoV(pCursor, rc, pszMsg, va); + va_end(va); + return rc; +} + + +RTDECL(int) RTAsn1CursorCheckEnd(PRTASN1CURSOR pCursor) +{ + if (pCursor->cbLeft == 0) + return VINF_SUCCESS; + return RTAsn1CursorSetInfo(pCursor, VERR_ASN1_CURSOR_NOT_AT_END, + "%u (%#x) bytes left over", pCursor->cbLeft, pCursor->cbLeft); +} + + +RTDECL(PRTASN1ALLOCATION) RTAsn1CursorInitAllocation(PRTASN1CURSOR pCursor, PRTASN1ALLOCATION pAllocation) +{ + pAllocation->cbAllocated = 0; + pAllocation->cReallocs = 0; + pAllocation->uReserved0 = 0; + pAllocation->pAllocator = pCursor->pPrimary->pAllocator; + return pAllocation; +} + + +RTDECL(int) RTAsn1CursorReadHdr(PRTASN1CURSOR pCursor, PRTASN1CORE pAsn1Core, const char *pszErrorTag) +{ + /* + * Initialize the return structure in case of failure. + */ + pAsn1Core->uTag = 0; + pAsn1Core->fClass = 0; + pAsn1Core->uRealTag = 0; + pAsn1Core->fRealClass = 0; + pAsn1Core->cbHdr = 0; + pAsn1Core->cb = 0; + pAsn1Core->fFlags = 0; + pAsn1Core->uData.pv = NULL; + pAsn1Core->pOps = NULL; + + /* + * The header has at least two bytes: Type & length. + */ + if (pCursor->cbLeft >= 2) + { + uint32_t uTag = pCursor->pbCur[0]; + uint32_t cb = pCursor->pbCur[1]; + pCursor->cbLeft -= 2; + pCursor->pbCur += 2; + + pAsn1Core->uRealTag = pAsn1Core->uTag = uTag & ASN1_TAG_MASK; + pAsn1Core->fRealClass = pAsn1Core->fClass = uTag & ~ASN1_TAG_MASK; + pAsn1Core->cbHdr = 2; + if ((uTag & ASN1_TAG_MASK) == ASN1_TAG_USE_LONG_FORM) + return RTAsn1CursorSetInfo(pCursor, VERR_ASN1_CURSOR_LONG_TAG, + "%s: Implement parsing of tags > 30: %#x (length=%#x)", pszErrorTag, uTag, cb); + + /* Extended length field? */ + if (cb & RT_BIT(7)) + { + if (cb != RT_BIT(7)) + { + /* Definite form. */ + uint8_t cbEnc = cb & 0x7f; + if (cbEnc > pCursor->cbLeft) + return RTAsn1CursorSetInfo(pCursor, VERR_ASN1_CURSOR_BAD_LENGTH_ENCODING, + "%s: Extended BER length field longer than available data: %#x vs %#x (uTag=%#x)", + pszErrorTag, cbEnc, pCursor->cbLeft, uTag); + switch (cbEnc) + { + case 1: + cb = pCursor->pbCur[0]; + break; + case 2: + cb = RT_MAKE_U16(pCursor->pbCur[1], pCursor->pbCur[0]); + break; + case 3: + cb = RT_MAKE_U32_FROM_U8(pCursor->pbCur[2], pCursor->pbCur[1], pCursor->pbCur[0], 0); + break; + case 4: + cb = RT_MAKE_U32_FROM_U8(pCursor->pbCur[3], pCursor->pbCur[2], pCursor->pbCur[1], pCursor->pbCur[0]); + break; + default: + return RTAsn1CursorSetInfo(pCursor, VERR_ASN1_CURSOR_BAD_LENGTH_ENCODING, + "%s: Too long/short extended BER length field: %#x (uTag=%#x)", + pszErrorTag, cbEnc, uTag); + } + pCursor->cbLeft -= cbEnc; + pCursor->pbCur += cbEnc; + pAsn1Core->cbHdr += cbEnc; + + /* Check the length encoding efficiency (T-REC-X.690-200811 10.1, 9.1). */ + if (pCursor->fFlags & (RTASN1CURSOR_FLAGS_DER | RTASN1CURSOR_FLAGS_CER)) + { + if (cb <= 0x7f) + return RTAsn1CursorSetInfo(pCursor, VERR_ASN1_CURSOR_BAD_LENGTH_ENCODING, + "%s: Invalid DER/CER length encoding: cbEnc=%u cb=%#x uTag=%#x", + pszErrorTag, cbEnc, cb, uTag); + uint8_t cbNeeded; + if (cb <= 0x000000ff) cbNeeded = 1; + else if (cb <= 0x0000ffff) cbNeeded = 2; + else if (cb <= 0x00ffffff) cbNeeded = 3; + else cbNeeded = 4; + if (cbNeeded != cbEnc) + return RTAsn1CursorSetInfo(pCursor, VERR_ASN1_CURSOR_BAD_LENGTH_ENCODING, + "%s: Invalid DER/CER length encoding: cb=%#x uTag=%#x cbEnc=%u cbNeeded=%u", + pszErrorTag, cb, uTag, cbEnc, cbNeeded); + } + } + /* Indefinite form. */ + else if (pCursor->fFlags & RTASN1CURSOR_FLAGS_DER) + return RTAsn1CursorSetInfo(pCursor, VERR_ASN1_CURSOR_ILLEGAL_IDEFINITE_LENGTH, + "%s: Indefinite length form not allowed in DER mode (uTag=%#x).", pszErrorTag, uTag); + else + return RTAsn1CursorSetInfo(pCursor, VERR_ASN1_CURSOR_IDEFINITE_LENGTH_NOT_SUP, + "%s: Indefinite BER/CER length not supported (uTag=%#x)", pszErrorTag, uTag); + } + + /* Check if the length makes sense. */ + if (cb > pCursor->cbLeft) + return RTAsn1CursorSetInfo(pCursor, VERR_ASN1_CURSOR_BAD_LENGTH, + "%s: BER value length out of bounds: %#x (max=%#x uTag=%#x)", + pszErrorTag, cb, pCursor->cbLeft, uTag); + + pAsn1Core->fFlags |= RTASN1CORE_F_PRESENT | RTASN1CORE_F_DECODED_CONTENT; + pAsn1Core->cb = cb; + pAsn1Core->uData.pv = (void *)pCursor->pbCur; + return VINF_SUCCESS; + } + + if (pCursor->cbLeft) + return RTAsn1CursorSetInfo(pCursor, VERR_ASN1_CURSOR_TOO_LITTLE_DATA_LEFT, + "%s: Too little data left to form a valid BER header", pszErrorTag); + return RTAsn1CursorSetInfo(pCursor, VERR_ASN1_CURSOR_NO_MORE_DATA, + "%s: No more data reading BER header", pszErrorTag); +} + + +RTDECL(int) RTAsn1CursorMatchTagClassFlagsEx(PRTASN1CURSOR pCursor, PRTASN1CORE pAsn1Core, uint32_t uTag, uint32_t fClass, + bool fString, uint32_t fFlags, const char *pszErrorTag, const char *pszWhat) +{ + if (pAsn1Core->uTag == uTag) + { + if (pAsn1Core->fClass == fClass) + return VINF_SUCCESS; + if ( fString + && pAsn1Core->fClass == (fClass | ASN1_TAGFLAG_CONSTRUCTED)) + { + if (!(pCursor->fFlags & (RTASN1CURSOR_FLAGS_DER | RTASN1CURSOR_FLAGS_CER))) + return VINF_SUCCESS; + if (pCursor->fFlags & RTASN1CURSOR_FLAGS_CER) + { + if (pAsn1Core->cb > 1000) + return VINF_SUCCESS; + return RTAsn1CursorSetInfo(pCursor, VERR_ASN1_CURSOR_ILLEGAL_CONSTRUCTED_STRING, + "%s: Constructed %s only allowed for >1000 byte in CER encoding: cb=%#x uTag=%#x fClass=%#x", + pszErrorTag, pszWhat, pAsn1Core->cb, pAsn1Core->uTag, pAsn1Core->fClass); + } + return RTAsn1CursorSetInfo(pCursor, VERR_ASN1_CURSOR_ILLEGAL_CONSTRUCTED_STRING, + "%s: DER encoding does not allow constructed %s (cb=%#x uTag=%#x fClass=%#x)", + pszErrorTag, pszWhat, pAsn1Core->cb, pAsn1Core->uTag, pAsn1Core->fClass); + } + } + + if (fFlags & RTASN1CURSOR_GET_F_IMPLICIT) + { + pAsn1Core->fFlags |= RTASN1CORE_F_TAG_IMPLICIT; + pAsn1Core->uRealTag = uTag; + pAsn1Core->fRealClass = fClass; + return VINF_SUCCESS; + } + + return RTAsn1CursorSetInfo(pCursor, pAsn1Core->uTag != uTag ? VERR_ASN1_CURSOR_TAG_MISMATCH : VERR_ASN1_CURSOR_TAG_FLAG_CLASS_MISMATCH, + "%s: Unexpected %s type/flags: %#x/%#x (expected %#x/%#x)", + pszErrorTag, pszWhat, pAsn1Core->uTag, pAsn1Core->fClass, uTag, fClass); +} + + + +static int rtAsn1CursorGetXxxxCursor(PRTASN1CURSOR pCursor, uint32_t fFlags, uint32_t uTag, uint8_t fClass, + PRTASN1CORE pAsn1Core, PRTASN1CURSOR pRetCursor, + const char *pszErrorTag, const char *pszWhat) +{ + int rc = RTAsn1CursorReadHdr(pCursor, pAsn1Core, pszErrorTag); + if (RT_SUCCESS(rc)) + { + if ( pAsn1Core->uTag == uTag + && pAsn1Core->fClass == fClass) + rc = VINF_SUCCESS; + else if (fFlags & RTASN1CURSOR_GET_F_IMPLICIT) + { + pAsn1Core->fFlags |= RTASN1CORE_F_TAG_IMPLICIT; + pAsn1Core->uRealTag = uTag; + pAsn1Core->fRealClass = fClass; + rc = VINF_SUCCESS; + } + else + return RTAsn1CursorSetInfo(pCursor, VERR_ASN1_CURSOR_ILLEGAL_CONSTRUCTED_STRING, + "%s: Unexpected %s type/flags: %#x/%#x (expected %#x/%#x)", + pszErrorTag, pszWhat, pAsn1Core->uTag, pAsn1Core->fClass, uTag, fClass); + rc = RTAsn1CursorInitSub(pCursor, pAsn1Core->cb, pRetCursor, pszErrorTag); + if (RT_SUCCESS(rc)) + { + pAsn1Core->fFlags |= RTASN1CORE_F_PRIMITE_TAG_STRUCT; + return VINF_SUCCESS; + } + } + return rc; +} + + +RTDECL(int) RTAsn1CursorGetSequenceCursor(PRTASN1CURSOR pCursor, uint32_t fFlags, + PRTASN1SEQUENCECORE pSeqCore, PRTASN1CURSOR pSeqCursor, const char *pszErrorTag) +{ + return rtAsn1CursorGetXxxxCursor(pCursor, fFlags, ASN1_TAG_SEQUENCE, ASN1_TAGCLASS_UNIVERSAL | ASN1_TAGFLAG_CONSTRUCTED, + &pSeqCore->Asn1Core, pSeqCursor, pszErrorTag, "sequence"); +} + + +RTDECL(int) RTAsn1CursorGetSetCursor(PRTASN1CURSOR pCursor, uint32_t fFlags, + PRTASN1SETCORE pSetCore, PRTASN1CURSOR pSetCursor, const char *pszErrorTag) +{ + return rtAsn1CursorGetXxxxCursor(pCursor, fFlags, ASN1_TAG_SET, ASN1_TAGCLASS_UNIVERSAL | ASN1_TAGFLAG_CONSTRUCTED, + &pSetCore->Asn1Core, pSetCursor, pszErrorTag, "set"); +} + + +RTDECL(int) RTAsn1CursorGetContextTagNCursor(PRTASN1CURSOR pCursor, uint32_t fFlags, uint32_t uExpectedTag, + PRTASN1CONTEXTTAG pCtxTag, PRTASN1CURSOR pCtxTagCursor, const char *pszErrorTag) +{ + return rtAsn1CursorGetXxxxCursor(pCursor, fFlags, uExpectedTag, ASN1_TAGCLASS_CONTEXT | ASN1_TAGFLAG_CONSTRUCTED, + &pCtxTag->Asn1Core, pCtxTagCursor, pszErrorTag, "ctx tag"); +} + + +RTDECL(int) RTAsn1CursorPeek(PRTASN1CURSOR pCursor, PRTASN1CORE pAsn1Core) +{ + uint32_t cbSavedLeft = pCursor->cbLeft; + uint8_t const *pbSavedCur = pCursor->pbCur; + PRTERRINFO pErrInfo = pCursor->pPrimary->pErrInfo; + pCursor->pPrimary->pErrInfo = NULL; + + int rc = RTAsn1CursorReadHdr(pCursor, pAsn1Core, "peek"); + + pCursor->pPrimary->pErrInfo = pErrInfo; + pCursor->pbCur = pbSavedCur; + pCursor->cbLeft = cbSavedLeft; + return rc; +} + + +RTDECL(bool) RTAsn1CursorIsNextEx(PRTASN1CURSOR pCursor, uint32_t uTag, uint8_t fClass) +{ + RTASN1CORE Asn1Core; + int rc = RTAsn1CursorPeek(pCursor, &Asn1Core); + if (RT_SUCCESS(rc)) + return uTag == Asn1Core.uTag + && fClass == Asn1Core.fClass; + return false; +} + + +/** @name Legacy Interfaces. + * @{ */ +RTDECL(int) RTAsn1CursorGetCore(PRTASN1CURSOR pCursor, uint32_t fFlags, PRTASN1CORE pAsn1Core, const char *pszErrorTag) +{ + return RTAsn1Core_DecodeAsn1(pCursor, fFlags, pAsn1Core, pszErrorTag); +} + + +RTDECL(int) RTAsn1CursorGetNull(PRTASN1CURSOR pCursor, uint32_t fFlags, PRTASN1NULL pNull, const char *pszErrorTag) +{ + return RTAsn1Null_DecodeAsn1(pCursor, fFlags, pNull, pszErrorTag); +} + + +RTDECL(int) RTAsn1CursorGetInteger(PRTASN1CURSOR pCursor, uint32_t fFlags, PRTASN1INTEGER pInteger, const char *pszErrorTag) +{ + return RTAsn1Integer_DecodeAsn1(pCursor, fFlags, pInteger, pszErrorTag); +} + + +RTDECL(int) RTAsn1CursorGetBoolean(PRTASN1CURSOR pCursor, uint32_t fFlags, PRTASN1BOOLEAN pBoolean, const char *pszErrorTag) +{ + return RTAsn1Boolean_DecodeAsn1(pCursor, fFlags, pBoolean, pszErrorTag); +} + + +RTDECL(int) RTAsn1CursorGetObjId(PRTASN1CURSOR pCursor, uint32_t fFlags, PRTASN1OBJID pObjId, const char *pszErrorTag) +{ + return RTAsn1ObjId_DecodeAsn1(pCursor, fFlags, pObjId, pszErrorTag); +} + + +RTDECL(int) RTAsn1CursorGetTime(PRTASN1CURSOR pCursor, uint32_t fFlags, PRTASN1TIME pTime, const char *pszErrorTag) +{ + return RTAsn1Time_DecodeAsn1(pCursor, fFlags, pTime, pszErrorTag); +} + + +RTDECL(int) RTAsn1CursorGetBitStringEx(PRTASN1CURSOR pCursor, uint32_t fFlags, uint32_t cMaxBits, PRTASN1BITSTRING pBitString, + const char *pszErrorTag) +{ + return RTAsn1BitString_DecodeAsn1Ex(pCursor, fFlags, cMaxBits, pBitString, pszErrorTag); +} + + +RTDECL(int) RTAsn1CursorGetBitString(PRTASN1CURSOR pCursor, uint32_t fFlags, PRTASN1BITSTRING pBitString, const char *pszErrorTag) +{ + return RTAsn1BitString_DecodeAsn1(pCursor, fFlags, pBitString, pszErrorTag); +} + + +RTDECL(int) RTAsn1CursorGetOctetString(PRTASN1CURSOR pCursor, uint32_t fFlags, PRTASN1OCTETSTRING pOctetString, + const char *pszErrorTag) +{ + return RTAsn1OctetString_DecodeAsn1(pCursor, fFlags, pOctetString, pszErrorTag); +} + + +RTDECL(int) RTAsn1CursorGetString(PRTASN1CURSOR pCursor, uint32_t fFlags, PRTASN1STRING pString, const char *pszErrorTag) +{ + return RTAsn1String_DecodeAsn1(pCursor, fFlags, pString, pszErrorTag); +} + + +RTDECL(int) RTAsn1CursorGetIa5String(PRTASN1CURSOR pCursor, uint32_t fFlags, PRTASN1STRING pString, const char *pszErrorTag) +{ + return RTAsn1Ia5String_DecodeAsn1(pCursor, fFlags, pString, pszErrorTag); +} + + +RTDECL(int) RTAsn1CursorGetUtf8String(PRTASN1CURSOR pCursor, uint32_t fFlags, PRTASN1STRING pString, const char *pszErrorTag) +{ + return RTAsn1Utf8String_DecodeAsn1(pCursor, fFlags, pString, pszErrorTag); +} + + +RTDECL(int) RTAsn1CursorGetBmpString(PRTASN1CURSOR pCursor, uint32_t fFlags, PRTASN1STRING pString, const char *pszErrorTag) +{ + return RTAsn1BmpString_DecodeAsn1(pCursor, fFlags, pString, pszErrorTag); +} + + +RTDECL(int) RTAsn1CursorGetDynType(PRTASN1CURSOR pCursor, uint32_t fFlags, PRTASN1DYNTYPE pDynType, const char *pszErrorTag) +{ + return RTAsn1DynType_DecodeAsn1(pCursor, fFlags, pDynType, pszErrorTag); +} +/** @} */ + diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Runtime/common/asn1/asn1-default-allocator.cpp virtualbox-4.1.44-dfsg/src/VBox/Runtime/common/asn1/asn1-default-allocator.cpp --- virtualbox-4.1.12-dfsg/src/VBox/Runtime/common/asn1/asn1-default-allocator.cpp 1970-01-01 00:00:00.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Runtime/common/asn1/asn1-default-allocator.cpp 2015-11-11 15:08:58.000000000 +0000 @@ -0,0 +1,105 @@ +/* $Id: asn1-default-allocator.cpp $ */ +/** @file + * IPRT - ASN.1, Default Allocator. + */ + +/* + * Copyright (C) 2006-2014 Oracle Corporation + * + * This file is part of VirtualBox Open Source Edition (OSE), as + * available from http://www.virtualbox.org. This file is free software; + * you can redistribute it and/or modify it under the terms of the GNU + * General Public License (GPL) as published by the Free Software + * Foundation, in version 2 as it comes in the "COPYING" file of the + * VirtualBox OSE distribution. VirtualBox OSE is distributed in the + * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind. + * + * The contents of this file may alternatively be used under the terms + * of the Common Development and Distribution License Version 1.0 + * (CDDL) only, as it comes in the "COPYING.CDDL" file of the + * VirtualBox OSE distribution, in which case the provisions of the + * CDDL are applicable instead of those of the GPL. + * + * You may elect to license modified versions of this file under the + * terms and conditions of either the GPL or the CDDL or both. + */ + +/******************************************************************************* +* Header Files * +*******************************************************************************/ +#include "internal/iprt.h" +#include + +#include +#include +#include + + +/** + * Aligns allocation sizes a little. + * + * @returns Aligned size. + * @param cb Requested size. + */ +static size_t rtAsn1DefaultAllocator_AlignSize(size_t cb) +{ + if (cb >= 64) + return RT_ALIGN_Z(cb, 64); + if (cb >= 32) + return RT_ALIGN_Z(cb, 32); + if (cb >= 16) + return RT_ALIGN_Z(cb, 16); + return cb; +} + + +/** @interface_method_impl{RTASN1ALLOCATORVTABLE, pfnFree} */ +static DECLCALLBACK(void) rtAsn1DefaultAllocator_Free(PCRTASN1ALLOCATORVTABLE pThis, PRTASN1ALLOCATION pAllocation, void *pv) +{ + RTMemFree(pv); + pAllocation->cbAllocated = 0; +} + + +/** @interface_method_impl{RTASN1ALLOCATORVTABLE, pfnAlloc} */ +static DECLCALLBACK(int) rtAsn1DefaultAllocator_Alloc(PCRTASN1ALLOCATORVTABLE pThis, PRTASN1ALLOCATION pAllocation, + void **ppv, size_t cb) +{ + size_t cbAlloc = rtAsn1DefaultAllocator_AlignSize(cb); + void *pv = RTMemAllocZ(cbAlloc); + if (pv) + { + *ppv = pv; + pAllocation->cbAllocated = (uint32_t)cbAlloc; + return VINF_SUCCESS; + } + return VERR_NO_MEMORY; +} + + +/** @interface_method_impl{RTASN1ALLOCATORVTABLE, pfnRealloc} */ +static DECLCALLBACK(int) rtAsn1DefaultAllocator_Realloc(PCRTASN1ALLOCATORVTABLE pThis, PRTASN1ALLOCATION pAllocation, + void *pvOld, void **ppvNew, size_t cbNew) +{ + Assert(pvOld); + Assert(cbNew); + size_t cbAlloc = rtAsn1DefaultAllocator_AlignSize(cbNew); + void *pv = RTMemRealloc(pvOld, cbAlloc); + if (pv) + { + *ppvNew = pv; + pAllocation->cbAllocated = (uint32_t)cbAlloc; + return VINF_SUCCESS; + } + return VERR_NO_MEMORY; +} + + +/** The default ASN.1 allocator. */ +RT_DECL_DATA_CONST(RTASN1ALLOCATORVTABLE const) g_RTAsn1DefaultAllocator = +{ + rtAsn1DefaultAllocator_Free, + rtAsn1DefaultAllocator_Alloc, + rtAsn1DefaultAllocator_Realloc +}; + diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Runtime/common/asn1/asn1-dump.cpp virtualbox-4.1.44-dfsg/src/VBox/Runtime/common/asn1/asn1-dump.cpp --- virtualbox-4.1.12-dfsg/src/VBox/Runtime/common/asn1/asn1-dump.cpp 1970-01-01 00:00:00.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Runtime/common/asn1/asn1-dump.cpp 2015-11-11 15:08:58.000000000 +0000 @@ -0,0 +1,825 @@ +/* $Id: asn1-dump.cpp $ */ +/** @file + * IPRT - ASN.1, Structure Dumper. + */ + +/* + * Copyright (C) 2006-2014 Oracle Corporation + * + * This file is part of VirtualBox Open Source Edition (OSE), as + * available from http://www.virtualbox.org. This file is free software; + * you can redistribute it and/or modify it under the terms of the GNU + * General Public License (GPL) as published by the Free Software + * Foundation, in version 2 as it comes in the "COPYING" file of the + * VirtualBox OSE distribution. VirtualBox OSE is distributed in the + * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind. + * + * The contents of this file may alternatively be used under the terms + * of the Common Development and Distribution License Version 1.0 + * (CDDL) only, as it comes in the "COPYING.CDDL" file of the + * VirtualBox OSE distribution, in which case the provisions of the + * CDDL are applicable instead of those of the GPL. + * + * You may elect to license modified versions of this file under the + * terms and conditions of either the GPL or the CDDL or both. + */ + +/******************************************************************************* +* Header Files * +*******************************************************************************/ +#include "internal/iprt.h" +#include + +#include +#include +#ifdef IN_RING3 +# include +#endif +#include + +#include + + +/******************************************************************************* +* Structures and Typedefs * +*******************************************************************************/ +/** + * Dump data structure. + */ +typedef struct RTASN1DUMPDATA +{ + /** RTASN1DUMP_F_XXX. */ + uint32_t fFlags; + /** The printfv like output function. */ + PFNRTDUMPPRINTFV pfnPrintfV; + /** PrintfV user argument. */ + void *pvUser; +} RTASN1DUMPDATA; +/** Pointer to a dump data structure. */ +typedef RTASN1DUMPDATA *PRTASN1DUMPDATA; + + +/** + * Wrapper around FNRTASN1DUMPPRINTFV. + * + * @param pData The dump data structure. + * @param pszFormat Format string. + * @param ... Format arguments. + */ +static void rtAsn1DumpPrintf(PRTASN1DUMPDATA pData, const char *pszFormat, ...) +{ + va_list va; + va_start(va, pszFormat); + pData->pfnPrintfV(pData->pvUser, pszFormat, va); + va_end(va); +} + + +/** + * Prints indentation. + * + * @param pData The dump data structure. + * @param uDepth The indentation depth. + */ +static void rtAsn1DumpPrintIdent(PRTASN1DUMPDATA pData, uint32_t uDepth) +{ + uint32_t cchLeft = uDepth * 2; + while (cchLeft > 0) + { + static char const s_szSpaces[] = " "; + uint32_t cch = RT_MIN(cchLeft, sizeof(s_szSpaces) - 1); + rtAsn1DumpPrintf(pData, &s_szSpaces[sizeof(s_szSpaces) - 1 - cch]); + cchLeft -= cch; + } +} + + +/** + * Dumps UTC TIME and GENERALIZED TIME + * + * @param pData The dump data structure. + * @param pAsn1Core The ASN.1 core object representation. + * @param pszType The time type name. + */ +static void rtAsn1DumpTime(PRTASN1DUMPDATA pData, PCRTASN1CORE pAsn1Core, const char *pszType) +{ + if ((pAsn1Core->fFlags & RTASN1CORE_F_PRIMITE_TAG_STRUCT)) + { + PCRTASN1TIME pTime = (PCRTASN1TIME)pAsn1Core; + rtAsn1DumpPrintf(pData, "%s -- %04u-%02u-%02u %02u:%02u:%02.%09Z\n", + pszType, + pTime->Time.i32Year, pTime->Time.u8Month, pTime->Time.u8MonthDay, + pTime->Time.u8Hour, pTime->Time.u8Minute, pTime->Time.u8Second, + pTime->Time.u32Nanosecond); + } + else if (pAsn1Core->cb > 0 && pAsn1Core->cb < 32 && pAsn1Core->uData.pch) + rtAsn1DumpPrintf(pData, "%s '%.*s'\n", pszType, (size_t)pAsn1Core->cb, pAsn1Core->uData.pch); + else + rtAsn1DumpPrintf(pData, "%s -- cb=%u\n", pszType, pAsn1Core->cb); +} + + +/** + * Dumps strings sharing the RTASN1STRING structure. + * + * @param pData The dump data structure. + * @param pAsn1Core The ASN.1 core object representation. + * @param pszType The string type name. + * @param uDepth The current identation level. + */ +static void rtAsn1DumpString(PRTASN1DUMPDATA pData, PCRTASN1CORE pAsn1Core, const char *pszType, uint32_t uDepth) +{ + rtAsn1DumpPrintf(pData, "%s", pszType); + + const char *pszPostfix = "'\n"; + bool fUtf8 = false; + const char *pch = pAsn1Core->uData.pch; + uint32_t cch = pAsn1Core->cb; + PCRTASN1STRING pString = (PCRTASN1STRING)pAsn1Core; + if ( (pAsn1Core->fFlags & RTASN1CORE_F_PRIMITE_TAG_STRUCT) + && pString->pszUtf8 + && pString->cchUtf8) + { + fUtf8 = true; + pszPostfix = "' -- utf-8\n"; + } + + if (cch == 0 || !pch) + rtAsn1DumpPrintf(pData, "-- cb=%u\n", pszType, pAsn1Core->cb); + else + { + if (cch >= 48) + { + rtAsn1DumpPrintf(pData, "\n"); + rtAsn1DumpPrintIdent(pData, uDepth + 1); + } + rtAsn1DumpPrintf(pData, " '"); + + /** @todo Handle BMP and UNIVERSIAL strings specially. */ + do + { + const char *pchStart = pch; + while ( cch > 0 + && (uint8_t)*pch >= 0x20 + && (!fUtf8 ? (uint8_t)*pch < 0x7f : (uint8_t)*pch != 0x7f) + && *pch != '\'') + cch--, pch++; + if (pchStart != pch) + rtAsn1DumpPrintf(pData, "%.*s", pch - pchStart, pchStart); + + while ( cch > 0 + && ( (uint8_t)*pch < 0x20 + || (!fUtf8 ? (uint8_t)*pch >= 0x7f : (uint8_t)*pch == 0x7f) + || (uint8_t)*pch == '\'') ) + { + rtAsn1DumpPrintf(pData, "\\x%02x", *pch); + cch--; + pch++; + } + } while (cch > 0); + + rtAsn1DumpPrintf(pData, pszPostfix); + } +} + + +/** + * Returns a name for the given object ID. + * + * This is just to make some of the dumps a little easier to read. It's no our + * intention to have the whole ODI repository encoded here. + * + * @returns Name if available, NULL if not. + * @param pszObjId The dotted object identifier string. + */ +static const char *rtAsn1DumpLookupObjIdName(const char *pszObjId) +{ +#define STARTS_WITH_1(a_off, a_uValue) \ + ( pszObjId[a_off] == (a_uValue) + '0' && pszObjId[a_off + 1] == '.' ) +#define STARTS_WITH_2(a_off, a_uValue) \ + ( pszObjId[a_off] == (a_uValue) / 10 + '0' && pszObjId[a_off + 1] == (a_uValue) % 10 + '0' && pszObjId[a_off + 2] == '.' ) +#define STARTS_WITH_3(a_off, a_uValue) \ + ( pszObjId[a_off] == (a_uValue) / 100 + '0' \ + && pszObjId[a_off + 1] == ((a_uValue) % 100) / 10 + '0' \ + && pszObjId[a_off + 2] == (a_uValue) % 10 + '0' \ + && pszObjId[a_off + 3] == '.' ) +#define STARTS_WITH_6(a_off, a_uValue) \ + ( pszObjId[a_off] == (a_uValue) / 100000 + '0' \ + && pszObjId[a_off + 1] == ((a_uValue) % 100000) / 10000 + '0' \ + && pszObjId[a_off + 2] == ((a_uValue) % 10000) / 1000 + '0' \ + && pszObjId[a_off + 3] == ((a_uValue) % 1000) / 100 + '0' \ + && pszObjId[a_off + 4] == ((a_uValue) % 100) / 10 + '0' \ + && pszObjId[a_off + 5] == (a_uValue) % 10 + '0' \ + && pszObjId[a_off + 6] == '.' ) + +#define ENDS_WITH_1(a_off, a_uValue) \ + ( pszObjId[a_off] == (a_uValue) + '0' && !pszObjId[a_off + 1] ) +#define ENDS_WITH_2(a_off, a_uValue) \ + ( pszObjId[a_off] == (a_uValue) / 10 + '0' && pszObjId[a_off + 1] == (a_uValue) % 10 + '0' && !pszObjId[a_off + 2] ) + + if (STARTS_WITH_1(0, 0)) /* ITU-T assigned - top level 0. */ + { + + } + else if (STARTS_WITH_1(0, 1)) /* ISO assigned - top level 1. */ + { + if (STARTS_WITH_1(2, 0)) /* ISO standard - 1.0. */ + { + /* */ + } + else if (STARTS_WITH_1(2, 2)) /* ISO member body - 1.2. */ + { + if (STARTS_WITH_3(4, 840)) /* USA - 1.2.840. */ + { + if (STARTS_WITH_6(8, 113549)) /* RSADSI / RSA Data Security inc - 1.2.840.113549. */ + { + if (STARTS_WITH_1(15, 1)) /* PKCS - 1.2.840.113549.1. */ + { + if (STARTS_WITH_1(17, 1)) /* PKCS-1 - 1.2.840.113549.1.1. */ + { + if (ENDS_WITH_1(19, 1)) return "pkcs1-RsaEncryption"; + else if (ENDS_WITH_1(19, 2)) return "pkcs1-Md2WithRsaEncryption"; + else if (ENDS_WITH_1(19, 3)) return "pkcs1-Md4WithRsaEncryption"; + else if (ENDS_WITH_1(19, 4)) return "pkcs1-Md5WithRsaEncryption"; + else if (ENDS_WITH_1(19, 5)) return "pkcs1-Sha1WithRsaEncryption"; + else if (ENDS_WITH_2(19, 10)) return "pkcs1-RsaPss"; + else if (ENDS_WITH_2(19, 11)) return "pkcs1-Sha256WithRsaEncryption"; + else if (ENDS_WITH_2(19, 12)) return "pkcs1-Sha384WithRsaEncryption"; + else if (ENDS_WITH_2(19, 13)) return "pkcs1-Sha512WithRsaEncryption"; + else if (ENDS_WITH_2(19, 14)) return "pkcs1-Sha224WithRsaEncryption"; + } + else if (STARTS_WITH_1(17, 9)) /* PKCS-9 signatures - 1.2.840.113549.1.9. */ + { + if (ENDS_WITH_1(19, 1)) return "pkcs9-EMailAddress"; + else if (ENDS_WITH_1(19, 2)) return "pkcs9-UntrustedName"; + else if (ENDS_WITH_1(19, 3)) return "pkcs9-ContentType"; + else if (ENDS_WITH_1(19, 4)) return "pkcs9-MessageDigest"; + else if (ENDS_WITH_1(19, 5)) return "pkcs9-SigningTime"; + else if (ENDS_WITH_1(19, 6)) return "pkcs9-CounterSignature"; + else if (ENDS_WITH_1(19, 7)) return "pkcs9-challengePassword"; + else if (ENDS_WITH_1(19, 8)) return "pkcs9-UnstructuredAddress"; + else if (ENDS_WITH_1(19, 9)) return "pkcs9-ExtendedCertificateAttributes"; + else if (ENDS_WITH_2(19, 13)) return "pkcs9-SigningDescription"; + else if (ENDS_WITH_2(19, 14)) return "pkcs9-ExtensionRequest"; + else if (ENDS_WITH_2(19, 15)) return "pkcs9-SMimeCapabilities"; + } + } + else if (STARTS_WITH_1(15, 2)) /* PKCS #2 - 1.2.840.113549.2. */ + { + } + } + } + } + else if (STARTS_WITH_1(2, 3)) /* ISO identified organiziation - 1.3. */ + { + if (STARTS_WITH_1(4, 6)) /* DOD - 1.3.6. */ + { + if (STARTS_WITH_1(6, 1)) /* Internet - 1.3.6.1. */ + { + if (STARTS_WITH_1(8, 4)) /* Private - 1.3.6.1.4. */ + { + if (STARTS_WITH_1(10, 1)) /* IANA-registered Private Enterprises. */ + { + if (STARTS_WITH_3(12, 311)) /* Microsoft - 1.3.6.1.4.1.311 */ + { + if (STARTS_WITH_1(16, 1)) /* 1.3.6.1.4.1.311.1. */ + { + } + else if (STARTS_WITH_1(16, 2)) /* 1.3.6.1.4.1.311.2 */ + { + if (STARTS_WITH_1(18, 1)) /* 1.3.6.1.4.1.311.2.1. */ + { + if (ENDS_WITH_1(20, 1)) return "Ms-??-2.1"; + else if (ENDS_WITH_1(20, 4)) return "Ms-SpcIndirectDataContext"; + else if (ENDS_WITH_2(20, 10)) return "Ms-SpcAgencyInfo"; + else if (ENDS_WITH_2(20, 11)) return "Ms-SpcStatemntType"; + else if (ENDS_WITH_2(20, 12)) return "Ms-SpcOpusInfo"; + else if (ENDS_WITH_2(20, 14)) return "Ms-CertReqExtensions"; + else if (ENDS_WITH_2(20, 15)) return "Ms-SpcPeImageData"; + else if (ENDS_WITH_2(20, 18)) return "Ms-SpcRawFileData"; + else if (ENDS_WITH_2(20, 19)) return "Ms-SpcStructuredStorageData"; + else if (ENDS_WITH_2(20, 20)) return "Ms-SpcJavaClassDataType1"; + else if (ENDS_WITH_2(20, 21)) return "Ms-SpcIndividualCodeSigning"; + else if (ENDS_WITH_2(20, 22)) return "Ms-SpcCommericalSigning"; + else if (ENDS_WITH_2(20, 25)) return "Ms-SpcLinkType2-Aka-CabData"; + else if (ENDS_WITH_2(20, 26)) return "Ms-SpcMinimalCriterialInfo"; + else if (ENDS_WITH_2(20, 27)) return "Ms-SpcFinacialCriterialInfo"; + else if (ENDS_WITH_2(20, 28)) return "Ms-SpcLinkType3"; + } + else if (STARTS_WITH_1(18, 3)) /* 1.3.6.1.4.1.311.2.3. */ + { + if (ENDS_WITH_1(20, 1)) return "Ms-SpcPeImagePageHashesV1"; + else if (ENDS_WITH_1(20, 2)) return "Ms-SpcPeImagePageHashesV2"; + } + } + else if (STARTS_WITH_1(16, 3)) /* 1.3.6.1.4.1.311.3 */ + { + if (STARTS_WITH_1(18, 3)) /* 1.3.6.1.4.1.311.3.3. */ + { + if (ENDS_WITH_1(20, 1)) return "Ms-CounterSign"; + else if (ENDS_WITH_1(20, 2)) return "Ms-??-3.2"; + } + } + else if (STARTS_WITH_2(16, 10)) /* 1.3.6.1.4.1.311.10 */ + { + if (STARTS_WITH_1(19, 3)) /* . */ + { + if (ENDS_WITH_1(21, 1)) return "Ms-CertTrustListSigning"; + else if (ENDS_WITH_1(21, 2)) return "Ms-TimeStampSigning"; + else if (ENDS_WITH_1(21, 4)) return "Ms-EncryptedFileSystem"; + else if (ENDS_WITH_1(21, 5)) return "Ms-WhqlCrypto"; + else if (ENDS_WITH_1(21, 6)) return "Ms-Nt5Crypto"; + else if (ENDS_WITH_1(21, 7)) return "Ms-OemWhqlCrypto"; + else if (ENDS_WITH_1(21, 8)) return "Ms-EmbeddedNtCrypto"; + else if (ENDS_WITH_1(21, 9)) return "Ms-RootListSigner"; + else if (ENDS_WITH_2(21, 10)) return "Ms-QualifiedSubordination"; + else if (ENDS_WITH_2(21, 11)) return "Ms-KeyRecovery"; + else if (ENDS_WITH_2(21, 12)) return "Ms-DocumentSigning"; + else if (ENDS_WITH_2(21, 13)) return "Ms-LifetimeSigning"; + } + else if (STARTS_WITH_1(19, 5)) /* . */ + { + if (ENDS_WITH_1(21, 1)) return "Ms-Drm"; + else if (ENDS_WITH_1(21, 2)) return "Ms-DrmIndividualization"; + } + else if (STARTS_WITH_1(19, 9)) /* . */ + { + if (ENDS_WITH_1(21, 1)) return "Ms-CrossCertDistPoints"; + } + } + else if (STARTS_WITH_2(16, 20)) /* 1.3.6.1.4.1.311.20 */ + { + if (ENDS_WITH_1(19, 1)) return "Ms-AutoEnrollCtlUsage"; + else if (ENDS_WITH_1(19, 2)) return "Ms-EnrollCerttypeExtension"; + } + else if (STARTS_WITH_2(16, 21)) /* CertSrv Infrastructure - 1.3.6.1.4.1.311.21 */ + { + if (ENDS_WITH_1(19, 1)) return "Ms-CaKeyCertIndexPair"; + else if (ENDS_WITH_1(19, 2)) return "Ms-CertSrvPreviousCertHash"; + else if (ENDS_WITH_1(19, 3)) return "Ms-CrlVirtualBase"; + else if (ENDS_WITH_1(19, 4)) return "Ms-CrlNextPublish"; + else if (ENDS_WITH_1(19, 6)) return "Ms-KeyRecovery"; + else if (ENDS_WITH_1(19, 7)) return "Ms-CertificateTemplate"; + else if (ENDS_WITH_1(19, 9)) return "Ms-DummySigner"; + } + } + } + } + else if (STARTS_WITH_1(8, 5)) /* Security - 1.3.6.1.5. */ + { + if (STARTS_WITH_1(10, 5)) /* Mechanisms - 1.3.6.1.5.5. */ + { + if (STARTS_WITH_1(12, 7)) /* Public-Key Infrastructure (X.509) - 1.3.6.1.5.5.7. */ + { + if (STARTS_WITH_1(14, 1)) /* Private Extension - 1.3.6.1.5.5.7.1. */ + { + if (ENDS_WITH_1(16, 1)) return "pkix-AuthorityInfoAccess"; + else if (ENDS_WITH_2(16, 12)) return "pkix-LogoType"; + } + else if (STARTS_WITH_1(14, 2)) /* Private Extension - 1.3.6.1.5.5.7.2. */ + { + if (ENDS_WITH_1(16, 1)) return "id-qt-CPS"; + else if (ENDS_WITH_1(16, 2)) return "id-qt-UNotice"; + else if (ENDS_WITH_1(16, 3)) return "id-qt-TextNotice"; + else if (ENDS_WITH_1(16, 4)) return "id-qt-ACPS"; + else if (ENDS_WITH_1(16, 5)) return "id-qt-ACUNotice"; + } + else if (STARTS_WITH_1(14, 3)) /* Private Extension - 1.3.6.1.5.5.7.3. */ + { + if (ENDS_WITH_1(16, 1)) return "id-kp-ServerAuth"; + else if (ENDS_WITH_1(16, 2)) return "id-kp-ClientAuth"; + else if (ENDS_WITH_1(16, 3)) return "id-kp-CodeSigning"; + else if (ENDS_WITH_1(16, 4)) return "id-kp-EmailProtection"; + else if (ENDS_WITH_1(16, 5)) return "id-kp-IPSecEndSystem"; + else if (ENDS_WITH_1(16, 6)) return "id-kp-IPSecTunnel"; + else if (ENDS_WITH_1(16, 7)) return "id-kp-IPSecUser"; + else if (ENDS_WITH_1(16, 8)) return "id-kp-Timestamping"; + else if (ENDS_WITH_1(16, 9)) return "id-kp-OCSPSigning"; + else if (ENDS_WITH_2(16, 10)) return "id-kp-DVCS"; + else if (ENDS_WITH_2(16, 11)) return "id-kp-SBGPCertAAServiceAuth"; + else if (ENDS_WITH_2(16, 13)) return "id-kp-EAPOverPPP"; + else if (ENDS_WITH_2(16, 14)) return "id-kp-EAPOverLAN"; + } + } + } + } + } + } + else if (STARTS_WITH_2(4, 14)) /* 1.3.14. */ + { + if (STARTS_WITH_1(7, 3)) /* OIW Security Special Interest Group - 1.3.14.3. */ + { + if (STARTS_WITH_1(9, 2)) /* OIW SSIG algorithms - 1.3.14.3.2. */ + { + if (ENDS_WITH_1(11, 2)) return "oiw-ssig-Md4WithRsa"; + else if (ENDS_WITH_1(11, 3)) return "oiw-ssig-Md5WithRsa"; + else if (ENDS_WITH_1(11, 4)) return "oiw-ssig-Md4WithRsaEncryption"; + else if (ENDS_WITH_2(11, 15)) return "oiw-ssig-ShaWithRsaEncryption"; + else if (ENDS_WITH_2(11, 24)) return "oiw-ssig-Md2WithRsaEncryption"; + else if (ENDS_WITH_2(11, 25)) return "oiw-ssig-Md5WithRsaEncryption"; + else if (ENDS_WITH_2(11, 26)) return "oiw-ssig-Sha1"; + else if (ENDS_WITH_2(11, 29)) return "oiw-ssig-Sha1WithRsaEncryption"; + } + } + } + } + } + else if (STARTS_WITH_1(0, 2)) /* Joint ISO/ITU-T assigned - top level 2.*/ + { + if (STARTS_WITH_1(2, 1)) /* ASN.1 - 2.1. */ + { + } + else if (STARTS_WITH_1(2, 5)) /* Directory (X.500) - 2.5. */ + { + if (STARTS_WITH_1(4, 4)) /* X.500 Attribute types - 2.5.4. */ + { + if (ENDS_WITH_1(6, 3)) return "x500-CommonName"; + else if (ENDS_WITH_1(6, 6)) return "x500-CountryName"; + else if (ENDS_WITH_1(6, 7)) return "x500-LocalityName"; + else if (ENDS_WITH_1(6, 8)) return "x500-StatOrProvinceName"; + else if (ENDS_WITH_2(6, 10)) return "x500-OrganizationName"; + else if (ENDS_WITH_2(6, 11)) return "x500-OrganizationUnitName"; + } + else if (STARTS_WITH_2(4, 29)) /* certificateExtension (id-ce) - 2.5.29. */ + { + if (ENDS_WITH_1(7, 1)) return "id-ce-AuthorityKeyIdentifier-Deprecated"; + else if (ENDS_WITH_1(7, 2)) return "id-ce-KeyAttributes-Deprecated"; + else if (ENDS_WITH_1(7, 3)) return "id-ce-CertificatePolicies-Deprecated"; + else if (ENDS_WITH_1(7, 4)) return "id-ce-KeyUsageRestriction-Deprecated"; + else if (ENDS_WITH_1(7, 7)) return "id-ce-SubjectAltName-Deprecated"; + else if (ENDS_WITH_1(7, 8)) return "id-ce-IssuerAltName-Deprecated"; + else if (ENDS_WITH_2(7, 14)) return "id-ce-SubjectKeyIdentifier"; + else if (ENDS_WITH_2(7, 15)) return "id-ce-KeyUsage"; + else if (ENDS_WITH_2(7, 16)) return "id-ce-PrivateKeyUsagePeriod"; + else if (ENDS_WITH_2(7, 17)) return "id-ce-SubjectAltName"; + else if (ENDS_WITH_2(7, 18)) return "id-ce-issuerAltName"; + else if (ENDS_WITH_2(7, 19)) return "id-ce-BasicConstraints"; + else if (ENDS_WITH_2(7, 25)) return "id-ce-CrlDistributionPoints"; + else if (ENDS_WITH_2(7, 29)) return "id-ce-CertificateIssuer"; + else if (ENDS_WITH_2(7, 30)) return "id-ce-NameConstraints"; + else if (ENDS_WITH_2(7, 31)) return "id-ce-CrlDistributionPoints"; + else if (ENDS_WITH_2(7, 32)) return "id-ce-CertificatePolicies"; + else if (STARTS_WITH_2(7, 32)) + { + if (ENDS_WITH_1(10, 0)) return "id-ce-cp-anyPolicy"; + } + else if (ENDS_WITH_2(7, 35)) return "id-ce-AuthorityKeyIdentifier"; + else if (ENDS_WITH_2(7, 36)) return "id-ce-PolicyConstraints"; + else if (ENDS_WITH_2(7, 37)) return "id-ce-ExtKeyUsage"; + } + } + else if (STARTS_WITH_2(2, 16)) /* Join assignments by country - 2.16. */ + { + if (0) + { + } + else if (STARTS_WITH_3(5, 840)) /* USA - 2.16.840. */ + { + if (STARTS_WITH_1(9, 1)) /* US company arc. */ + { + if (STARTS_WITH_3(11, 101)) /* US Government */ + { + if (STARTS_WITH_1(15, 3)) /* Computer Security Objects Register */ + { + if (STARTS_WITH_1(17, 4)) /* NIST Algorithms - 2.16.840.1.101.3.4. */ + { + if (STARTS_WITH_1(19, 1)) /* AES - 2.16.840.1.101.3.4.1. */ + { + } + else if (STARTS_WITH_1(19, 2)) /* Hash algorithms - 2.16.840.1.101.3.4.2. */ + { + if (ENDS_WITH_1(21, 1)) return "nist-Sha256"; + else if (ENDS_WITH_1(21, 2)) return "nist-Sha384"; + else if (ENDS_WITH_1(21, 3)) return "nist-Sha512"; + else if (ENDS_WITH_1(21, 4)) return "nist-Sha224"; + } + } + } + } + else if (STARTS_WITH_6(11, 113730)) /* Netscape - 2.16.840.1.113730. */ + { + if (STARTS_WITH_1(18, 1)) /* Netscape - 2.16.840.1.113730.1. */ + { + if (ENDS_WITH_1(20, 1)) return "netscape-cert-type"; + else if (ENDS_WITH_1(20, 2)) return "netscape-base-url"; + else if (ENDS_WITH_1(20, 3)) return "netscape-revocation-url"; + else if (ENDS_WITH_1(20, 4)) return "netscape-ca-revocation-url"; + else if (ENDS_WITH_1(20, 7)) return "netscape-cert-renewal-url"; + else if (ENDS_WITH_1(20, 8)) return "netscape-ca-policy-url"; + else if (ENDS_WITH_1(20, 9)) return "netscape-HomePage-url"; + else if (ENDS_WITH_2(20, 10)) return "netscape-EntityLogo"; + else if (ENDS_WITH_2(20, 11)) return "netscape-UserPicture"; + else if (ENDS_WITH_2(20, 12)) return "netscape-ssl-server-name"; + else if (ENDS_WITH_2(20, 13)) return "netscape-comment"; + } + else if (STARTS_WITH_1(18, 4)) /* Netscape - 2.16.840.1.113730.4. */ + { + if (ENDS_WITH_1(20, 1)) return "netscape-eku-serverGatedCrypto"; + } + } + else if (STARTS_WITH_6(11, 113733)) /* Verisign, Inc. - 2.16.840.1.113733. */ + { + if (STARTS_WITH_1(18, 1)) /* Verisign PKI Sub Tree - 2.16.840.1.113733.1. */ + { + if (ENDS_WITH_1(20, 6)) return "verisign-pki-extensions-subtree"; + else if (STARTS_WITH_1(20, 6)) /* 2.16.840.1.113733.1.6. */ + { + if (ENDS_WITH_1(22, 7)) return "verisign-pki-ext-RolloverID"; + } + else if (ENDS_WITH_1(20, 7)) return "verisign-pki-policies"; + else if (STARTS_WITH_1(20, 7)) /* 2.16.840.1.113733.1.7. */ + { + if (ENDS_WITH_1(22, 9)) return "verisign-pki-policy-9"; + else if (ENDS_WITH_2(22, 21)) return "verisign-pki-policy-21"; + else if (ENDS_WITH_2(22, 23)) return "verisign-pki-policy-vtn-cp"; + else if (STARTS_WITH_2(22, 23)) + { + if (ENDS_WITH_1(25, 1)) return "verisign-pki-policy-vtn-cp-class1"; + else if (ENDS_WITH_1(25, 2)) return "verisign-pki-policy-vtn-cp-class2"; + else if (ENDS_WITH_1(25, 3)) return "verisign-pki-policy-vtn-cp-class3"; + else if (ENDS_WITH_1(25, 4)) return "verisign-pki-policy-vtn-cp-class4"; + else if (ENDS_WITH_1(25, 6)) return "verisign-pki-policy-vtn-cp-6"; + } + } + else if (STARTS_WITH_1(20, 8)) /* 2.16.840.1.113733.1.8. */ + { + if (ENDS_WITH_1(22, 1)) return "verisign-pki-eku-IssStrongCrypto"; + } + else if (ENDS_WITH_2(22, 46)) return "verisign-pki-policy-cis"; + else if (STARTS_WITH_2(22, 46)) + { + if (ENDS_WITH_1(25, 1)) return "verisign-pki-policy-cis-type1"; + else if (ENDS_WITH_1(25, 2)) return "verisign-pki-policy-cis-type2"; + } + else if (ENDS_WITH_2(22, 48)) return "verisign-pki-policy-thawte"; + else if (STARTS_WITH_2(22, 48)) + { + if (ENDS_WITH_1(25, 1)) return "verisign-pki-policy-thawte-cps-1"; + } + } + } + } + } + } + } + return NULL; +} + + +/** + * Dumps the type and value of an universal ASN.1 type. + * + * @returns True if it opens a child, false if not. + * @param pData The dumper data. + * @param pAsn1Core The ASN.1 object to dump. + * @param uDepth The current depth (for indentation). + */ +static bool rtAsn1DumpUniversalTypeAndValue(PRTASN1DUMPDATA pData, PCRTASN1CORE pAsn1Core, uint32_t uDepth) +{ + const char *pszValuePrefix = "-- value:"; + const char *pszDefault = ""; + if (pAsn1Core->fFlags & RTASN1CORE_F_DEFAULT) + { + pszValuePrefix = "DEFAULT"; + pszDefault = "DEFAULT "; + } + + bool fOpen = false; + switch (pAsn1Core->uRealTag) + { + case ASN1_TAG_BOOLEAN: + if (pAsn1Core->fFlags & RTASN1CORE_F_PRIMITE_TAG_STRUCT) + rtAsn1DumpPrintf(pData, "BOOLEAN %s %RTbool\n", pszValuePrefix, ((PCRTASN1BOOLEAN)pAsn1Core)->fValue); + else if (pAsn1Core->cb == 1 && pAsn1Core->uData.pu8) + rtAsn1DumpPrintf(pData, "BOOLEAN %s %u\n", pszValuePrefix, *pAsn1Core->uData.pu8); + else + rtAsn1DumpPrintf(pData, "BOOLEAN -- cb=%u\n", pAsn1Core->cb); + break; + + case ASN1_TAG_INTEGER: + if ((pAsn1Core->fFlags & RTASN1CORE_F_PRIMITE_TAG_STRUCT) && pAsn1Core->cb <= 8) + rtAsn1DumpPrintf(pData, "INTEGER %s %llu / %#llx\n", pszValuePrefix, + ((PCRTASN1INTEGER)pAsn1Core)->uValue, ((PCRTASN1INTEGER)pAsn1Core)->uValue); + else if (pAsn1Core->cb == 0 || pAsn1Core->cb >= 512 || !pAsn1Core->uData.pu8) + rtAsn1DumpPrintf(pData, "INTEGER -- cb=%u\n", pAsn1Core->cb); + else if (pAsn1Core->cb <= 32) + rtAsn1DumpPrintf(pData, "INTEGER %s %.*Rhxs\n", pszValuePrefix, (size_t)pAsn1Core->cb, pAsn1Core->uData.pu8); + else + rtAsn1DumpPrintf(pData, "INTEGER %s\n%.*Rhxd\n", pszValuePrefix, (size_t)pAsn1Core->cb, pAsn1Core->uData.pu8); + break; + + case ASN1_TAG_BIT_STRING: + if ((pAsn1Core->fFlags & RTASN1CORE_F_PRIMITE_TAG_STRUCT)) + { + PCRTASN1BITSTRING pBitString = (PCRTASN1BITSTRING)pAsn1Core; + rtAsn1DumpPrintf(pData, "BIT STRING %s-- cb=%u cBits=%#x cMaxBits=%#x", + pszDefault, pBitString->Asn1Core.cb, pBitString->cBits, pBitString->cMaxBits); + if (pBitString->cBits <= 64) + rtAsn1DumpPrintf(pData, " value=%#llx\n", RTAsn1BitString_GetAsUInt64(pBitString)); + else + rtAsn1DumpPrintf(pData, "\n"); + } + else + rtAsn1DumpPrintf(pData, "BIT STRING %s-- cb=%u\n", pszDefault, pAsn1Core->cb); + fOpen = pAsn1Core->pOps != NULL; + break; + + case ASN1_TAG_OCTET_STRING: + rtAsn1DumpPrintf(pData, "OCTET STRING %s-- cb=%u\n", pszDefault, pAsn1Core->cb); + fOpen = pAsn1Core->pOps != NULL; + break; + + case ASN1_TAG_NULL: + rtAsn1DumpPrintf(pData, "NULL\n"); + break; + + case ASN1_TAG_OID: + if ((pAsn1Core->fFlags & RTASN1CORE_F_PRIMITE_TAG_STRUCT)) + { + const char *pszObjIdName = rtAsn1DumpLookupObjIdName(((PCRTASN1OBJID)pAsn1Core)->szObjId); + if (pszObjIdName) + rtAsn1DumpPrintf(pData, "OBJECT IDENTIFIER %s%s ('%s')\n", + pszDefault, pszObjIdName, ((PCRTASN1OBJID)pAsn1Core)->szObjId); + else + rtAsn1DumpPrintf(pData, "OBJECT IDENTIFIER %s'%s'\n", pszDefault, ((PCRTASN1OBJID)pAsn1Core)->szObjId); + } + else + rtAsn1DumpPrintf(pData, "OBJECT IDENTIFIER %s -- cb=%u\n", pszDefault, pAsn1Core->cb); + break; + + case ASN1_TAG_OBJECT_DESCRIPTOR: + rtAsn1DumpPrintf(pData, "OBJECT DESCRIPTOR -- cb=%u TODO\n", pAsn1Core->cb); + break; + + case ASN1_TAG_EXTERNAL: + rtAsn1DumpPrintf(pData, "EXTERNAL -- cb=%u TODO\n", pAsn1Core->cb); + break; + + case ASN1_TAG_REAL: + rtAsn1DumpPrintf(pData, "REAL -- cb=%u TODO\n", pAsn1Core->cb); + break; + + case ASN1_TAG_ENUMERATED: + rtAsn1DumpPrintf(pData, "ENUMERATED -- cb=%u TODO\n", pAsn1Core->cb); + break; + + case ASN1_TAG_EMBEDDED_PDV: + rtAsn1DumpPrintf(pData, "EMBEDDED PDV -- cb=%u TODO\n", pAsn1Core->cb); + break; + + case ASN1_TAG_UTF8_STRING: + rtAsn1DumpString(pData, pAsn1Core, "UTF8 STRING", uDepth); + break; + + case ASN1_TAG_RELATIVE_OID: + rtAsn1DumpPrintf(pData, "RELATIVE OBJECT IDENTIFIER -- cb=%u TODO\n", pAsn1Core->cb); + break; + + case ASN1_TAG_SEQUENCE: + rtAsn1DumpPrintf(pData, "SEQUENCE -- cb=%u\n", pAsn1Core->cb); + fOpen = true; + break; + case ASN1_TAG_SET: + rtAsn1DumpPrintf(pData, "SET -- cb=%u\n", pAsn1Core->cb); + fOpen = true; + break; + + case ASN1_TAG_NUMERIC_STRING: + rtAsn1DumpString(pData, pAsn1Core, "NUMERIC STRING", uDepth); + break; + + case ASN1_TAG_PRINTABLE_STRING: + rtAsn1DumpString(pData, pAsn1Core, "PRINTABLE STRING", uDepth); + break; + + case ASN1_TAG_T61_STRING: + rtAsn1DumpString(pData, pAsn1Core, "T61 STRING", uDepth); + break; + + case ASN1_TAG_VIDEOTEX_STRING: + rtAsn1DumpString(pData, pAsn1Core, "VIDEOTEX STRING", uDepth); + break; + + case ASN1_TAG_IA5_STRING: + rtAsn1DumpString(pData, pAsn1Core, "IA5 STRING", uDepth); + break; + + case ASN1_TAG_GRAPHIC_STRING: + rtAsn1DumpString(pData, pAsn1Core, "GRAPHIC STRING", uDepth); + break; + + case ASN1_TAG_VISIBLE_STRING: + rtAsn1DumpString(pData, pAsn1Core, "VISIBLE STRING", uDepth); + break; + + case ASN1_TAG_GENERAL_STRING: + rtAsn1DumpString(pData, pAsn1Core, "GENERAL STRING", uDepth); + break; + + case ASN1_TAG_UNIVERSAL_STRING: + rtAsn1DumpString(pData, pAsn1Core, "UNIVERSAL STRING", uDepth); + break; + + case ASN1_TAG_BMP_STRING: + rtAsn1DumpString(pData, pAsn1Core, "BMP STRING", uDepth); + break; + + case ASN1_TAG_UTC_TIME: + rtAsn1DumpTime(pData, pAsn1Core, "UTC TIME"); + break; + + case ASN1_TAG_GENERALIZED_TIME: + rtAsn1DumpTime(pData, pAsn1Core, "GENERALIZED TIME"); + break; + + case ASN1_TAG_CHARACTER_STRING: + rtAsn1DumpPrintf(pData, "CHARACTER STRING -- cb=%u TODO\n", pAsn1Core->cb); + break; + + default: + rtAsn1DumpPrintf(pData, "[UNIVERSAL %u]\n", pAsn1Core->uTag); + break; + } + return fOpen; +} + + +/** @callback_method_impl{FNRTASN1ENUMCALLBACK} */ +static DECLCALLBACK(int) rtAsn1DumpEnumCallback(PRTASN1CORE pAsn1Core, const char *pszName, uint32_t uDepth, void *pvUser) +{ + PRTASN1DUMPDATA pData = (PRTASN1DUMPDATA)pvUser; + if (!pAsn1Core->fFlags) + return VINF_SUCCESS; + + bool fOpen = false; + rtAsn1DumpPrintIdent(pData, uDepth); + switch (pAsn1Core->fClass & ASN1_TAGCLASS_MASK) + { + case ASN1_TAGCLASS_UNIVERSAL: + rtAsn1DumpPrintf(pData, "%-16s ", pszName); + fOpen = rtAsn1DumpUniversalTypeAndValue(pData, pAsn1Core, uDepth); + break; + + case ASN1_TAGCLASS_CONTEXT: + if ((pAsn1Core->fRealClass & ASN1_TAGCLASS_MASK) == ASN1_TAGCLASS_UNIVERSAL) + { + rtAsn1DumpPrintf(pData, "%-16s [%u] ", pszName, pAsn1Core->uTag); + fOpen = rtAsn1DumpUniversalTypeAndValue(pData, pAsn1Core, uDepth); + } + else + { + rtAsn1DumpPrintf(pData, "%-16s [%u]\n", pszName, pAsn1Core->uTag); + fOpen = true; + } + break; + + case ASN1_TAGCLASS_APPLICATION: + if ((pAsn1Core->fRealClass & ASN1_TAGCLASS_MASK) == ASN1_TAGCLASS_UNIVERSAL) + { + rtAsn1DumpPrintf(pData, "%-16s [APPLICATION %u] ", pszName, pAsn1Core->uTag); + fOpen = rtAsn1DumpUniversalTypeAndValue(pData, pAsn1Core, uDepth); + } + else + { + rtAsn1DumpPrintf(pData, "%-16s [APPLICATION %u]\n", pszName, pAsn1Core->uTag); + fOpen = true; + } + break; + + case ASN1_TAGCLASS_PRIVATE: + if (RTASN1CORE_IS_DUMMY(pAsn1Core)) + rtAsn1DumpPrintf(pData, "%-16s DUMMY\n", pszName); + else + { + rtAsn1DumpPrintf(pData, "%-16s [PRIVATE %u]\n", pszName, pAsn1Core->uTag); + fOpen = true; + } + break; + } + /** @todo {} */ + + /* + * Recurse. + */ + if ( pAsn1Core->pOps + && pAsn1Core->pOps->pfnEnum) + pAsn1Core->pOps->pfnEnum(pAsn1Core, rtAsn1DumpEnumCallback, uDepth, pData); + return VINF_SUCCESS; +} + + +RTDECL(int) RTAsn1Dump(PCRTASN1CORE pAsn1Core, uint32_t fFlags, uint32_t uLevel, PFNRTDUMPPRINTFV pfnPrintfV, void *pvUser) +{ + if ( pAsn1Core->pOps + && pAsn1Core->pOps->pfnEnum) + { + RTASN1DUMPDATA Data; + Data.fFlags = fFlags; + Data.pfnPrintfV = pfnPrintfV; + Data.pvUser = pvUser; + + return pAsn1Core->pOps->pfnEnum((PRTASN1CORE)pAsn1Core, rtAsn1DumpEnumCallback, uLevel, &Data); + } + return VINF_SUCCESS; +} + diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Runtime/common/asn1/asn1-efence-allocator.cpp virtualbox-4.1.44-dfsg/src/VBox/Runtime/common/asn1/asn1-efence-allocator.cpp --- virtualbox-4.1.12-dfsg/src/VBox/Runtime/common/asn1/asn1-efence-allocator.cpp 1970-01-01 00:00:00.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Runtime/common/asn1/asn1-efence-allocator.cpp 2015-11-11 15:08:58.000000000 +0000 @@ -0,0 +1,85 @@ +/* $Id: asn1-efence-allocator.cpp $ */ +/** @file + * IPRT - ASN.1, Electric Fense Allocator. + */ + +/* + * Copyright (C) 2006-2014 Oracle Corporation + * + * This file is part of VirtualBox Open Source Edition (OSE), as + * available from http://www.virtualbox.org. This file is free software; + * you can redistribute it and/or modify it under the terms of the GNU + * General Public License (GPL) as published by the Free Software + * Foundation, in version 2 as it comes in the "COPYING" file of the + * VirtualBox OSE distribution. VirtualBox OSE is distributed in the + * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind. + * + * The contents of this file may alternatively be used under the terms + * of the Common Development and Distribution License Version 1.0 + * (CDDL) only, as it comes in the "COPYING.CDDL" file of the + * VirtualBox OSE distribution, in which case the provisions of the + * CDDL are applicable instead of those of the GPL. + * + * You may elect to license modified versions of this file under the + * terms and conditions of either the GPL or the CDDL or both. + */ + +/******************************************************************************* +* Header Files * +*******************************************************************************/ +#include "internal/iprt.h" +#include + +#include +#include +#include + + +/** @interface_method_impl{RTASN1ALLOCATORVTABLE, pfnFree} */ +static DECLCALLBACK(void) rtAsn1EFenceAllocator_Free(PCRTASN1ALLOCATORVTABLE pThis, PRTASN1ALLOCATION pAllocation, void *pv) +{ + RTMemEfFreeNP(pv); + pAllocation->cbAllocated = 0; +} + + +/** @interface_method_impl{RTASN1ALLOCATORVTABLE, pfnAlloc} */ +static DECLCALLBACK(int) rtAsn1EFenceAllocator_Alloc(PCRTASN1ALLOCATORVTABLE pThis, PRTASN1ALLOCATION pAllocation, + void **ppv, size_t cb) +{ + void *pv = RTMemEfAllocZNP(cb, RTMEM_TAG); + if (pv) + { + *ppv = pv; + pAllocation->cbAllocated = (uint32_t)cb; + return VINF_SUCCESS; + } + return VERR_NO_MEMORY; +} + + +/** @interface_method_impl{RTASN1ALLOCATORVTABLE, pfnRealloc} */ +static DECLCALLBACK(int) rtAsn1EFenceAllocator_Realloc(PCRTASN1ALLOCATORVTABLE pThis, PRTASN1ALLOCATION pAllocation, + void *pvOld, void **ppvNew, size_t cbNew) +{ + Assert(pvOld); + Assert(cbNew); + void *pv = RTMemEfReallocNP(pvOld, cbNew, RTMEM_TAG); + if (pv) + { + *ppvNew = pv; + pAllocation->cbAllocated = (uint32_t)cbNew; + return VINF_SUCCESS; + } + return VERR_NO_MEMORY; +} + + +/** The Electric Fence ASN.1 allocator. */ +RT_DECL_DATA_CONST(RTASN1ALLOCATORVTABLE const) g_RTAsn1EFenceAllocator = +{ + rtAsn1EFenceAllocator_Free, + rtAsn1EFenceAllocator_Alloc, + rtAsn1EFenceAllocator_Realloc +}; + diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Runtime/common/asn1/asn1-encode.cpp virtualbox-4.1.44-dfsg/src/VBox/Runtime/common/asn1/asn1-encode.cpp --- virtualbox-4.1.12-dfsg/src/VBox/Runtime/common/asn1/asn1-encode.cpp 1970-01-01 00:00:00.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Runtime/common/asn1/asn1-encode.cpp 2015-11-11 15:08:58.000000000 +0000 @@ -0,0 +1,426 @@ +/* $Id: asn1-encode.cpp $ */ +/** @file + * IPRT - ASN.1, Encoding. + */ + +/* + * Copyright (C) 2006-2014 Oracle Corporation + * + * This file is part of VirtualBox Open Source Edition (OSE), as + * available from http://www.virtualbox.org. This file is free software; + * you can redistribute it and/or modify it under the terms of the GNU + * General Public License (GPL) as published by the Free Software + * Foundation, in version 2 as it comes in the "COPYING" file of the + * VirtualBox OSE distribution. VirtualBox OSE is distributed in the + * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind. + * + * The contents of this file may alternatively be used under the terms + * of the Common Development and Distribution License Version 1.0 + * (CDDL) only, as it comes in the "COPYING.CDDL" file of the + * VirtualBox OSE distribution, in which case the provisions of the + * CDDL are applicable instead of those of the GPL. + * + * You may elect to license modified versions of this file under the + * terms and conditions of either the GPL or the CDDL or both. + */ + +/******************************************************************************* +* Header Files * +*******************************************************************************/ +#include "internal/iprt.h" +#include + +#include +#include +#include +#include + +#include + + +/******************************************************************************* +* Structures and Typedefs * +*******************************************************************************/ +/** + * Argument package for rtAsn1EncodePrepareCallback passed by RTAsn1EncodePrepare. + */ +typedef struct RTASN1ENCODEPREPARGS +{ + /** The size at this level. */ + uint32_t cb; + /** RTASN1ENCODE_F_XXX. */ + uint32_t fFlags; + /** Pointer to the error info. (optional) */ + PRTERRINFO pErrInfo; +} RTASN1ENCODEPREPARGS; + + +/** + * Argument package for rtAsn1EncodeWriteCallback passed by RTAsn1EncodeWrite. + */ +typedef struct RTASN1ENCODEWRITEARGS +{ + /** RTASN1ENCODE_F_XXX. */ + uint32_t fFlags; + /** Pointer to the writer funtion. */ + PFNRTASN1ENCODEWRITER pfnWriter; + /** User argument to the writer function. */ + void *pvUser; + /** Pointer to the error info. (optional) */ + PRTERRINFO pErrInfo; +} RTASN1ENCODEWRITEARGS; + + +RTDECL(int) RTAsn1EncodeRecalcHdrSize(PRTASN1CORE pAsn1Core, uint32_t fFlags, PRTERRINFO pErrInfo) +{ + AssertReturn((fFlags & RTASN1ENCODE_F_RULE_MASK) == RTASN1ENCODE_F_DER, VERR_INVALID_FLAGS); + int rc = VINF_SUCCESS; + + uint8_t cbHdr; + if ((pAsn1Core->fFlags & (RTASN1CORE_F_PRESENT | RTASN1CORE_F_DUMMY | RTASN1CORE_F_DEFAULT)) == RTASN1CORE_F_PRESENT) + { + /* + * The minimum header size is two bytes. + */ + cbHdr = 2; + + /* + * Add additional bytes for encoding the tag. + */ + uint32_t uTag = pAsn1Core->uTag; + if (uTag >= ASN1_TAG_USE_LONG_FORM) + { + AssertReturn(pAsn1Core->uTag != UINT32_MAX, RTErrInfoSet(pErrInfo, VERR_ASN1_DUMMY_OBJECT, "uTag=UINT32_MAX")); + do + { + cbHdr++; + uTag >>= 7; + } while (uTag > 0); + } + + /* + * Add additional bytes for encoding the content length. + */ + uint32_t cb = pAsn1Core->cb; + if (cb >= 0x80) + { + AssertReturn(cb < _1G, RTErrInfoSetF(pErrInfo, VERR_ASN1_TOO_LONG, "cb=%u (%#x)", cb, cb)); + + if (cb <= UINT32_C(0xffff)) + { + if (cb <= UINT32_C(0xff)) + cbHdr += 1; + else + cbHdr += 2; + } + else + { + if (cb <= UINT32_C(0xffffff)) + cbHdr += 3; + else + cbHdr += 4; + } + } + } + /* + * Not present, dummy or otherwise not encoded. + */ + else + { + cbHdr = 0; + if (pAsn1Core->fFlags & RTASN1CORE_F_DEFAULT) + rc = VINF_ASN1_NOT_ENCODED; + else + { + Assert(RTASN1CORE_IS_DUMMY(pAsn1Core)); + Assert(pAsn1Core->pOps && pAsn1Core->pOps->pfnEnum); + rc = VINF_SUCCESS; + } + } + + /* + * Update the header length. + */ + pAsn1Core->cbHdr = cbHdr; + return rc; +} + + +/** + * @callback_method_impl{FNRTASN1ENUMCALLBACK} + */ +static DECLCALLBACK(int) rtAsn1EncodePrepareCallback(PRTASN1CORE pAsn1Core, const char *pszName, uint32_t uDepth, void *pvUser) +{ + RTASN1ENCODEPREPARGS *pArgs = (RTASN1ENCODEPREPARGS *)pvUser; + if (RTASN1CORE_IS_PRESENT(pAsn1Core)) + { + /* + * Depth first, where relevant. + */ + uint32_t const cbSaved = pArgs->cb; + if (pAsn1Core->pOps) + { + /* + * Use the encoding preparation method when available. + */ + int rc; + if (pAsn1Core->pOps->pfnEncodePrep) + rc = pAsn1Core->pOps->pfnEncodePrep(pAsn1Core, pArgs->fFlags, pArgs->pErrInfo); + else if (pAsn1Core->pOps->pfnEnum) + { + /* + * Recurse to prepare the child objects (if any). + */ + rc = pAsn1Core->pOps->pfnEnum(pAsn1Core, rtAsn1EncodePrepareCallback, uDepth + 1, pArgs); + if (RT_SUCCESS(rc)) + pAsn1Core->cb = pArgs->cb - cbSaved; + } + else + { + /* + * Must be a primitive type if DER. + */ + if ( (pAsn1Core->fClass & ASN1_TAGFLAG_CONSTRUCTED) + && (pArgs->fFlags & RTASN1ENCODE_F_DER) ) + return RTErrInfoSetF(pArgs->pErrInfo, VERR_ASN1_EXPECTED_PRIMITIVE, + "Expected primitive ASN.1 object: uTag=%#x fClass=%#x cb=%u", + RTASN1CORE_GET_TAG(pAsn1Core), pAsn1Core->fClass, pAsn1Core->cb); + rc = VINF_SUCCESS; + } + if (RT_SUCCESS(rc)) + rc = RTAsn1EncodeRecalcHdrSize(pAsn1Core, pArgs->fFlags, pArgs->pErrInfo); + if (RT_FAILURE(rc)) + return rc; + } + else + { + AssertFailed(); + pAsn1Core->cb = 0; + pAsn1Core->cbHdr = 0; + } + + /* + * Recalculate the output size, thus far. Dummy objects propagates the + * content size, but the header size is zero. Other objects with + * header size zero are not encoded and should be omitted entirely. + */ + if (pAsn1Core->cbHdr > 0 || RTASN1CORE_IS_DUMMY(pAsn1Core)) + pArgs->cb = RTASN1CORE_GET_RAW_ASN1_SIZE(pAsn1Core) + cbSaved; + else + pArgs->cb = cbSaved; + } + + return VINF_SUCCESS; +} + + +RTDECL(int) RTAsn1EncodePrepare(PRTASN1CORE pRoot, uint32_t fFlags, uint32_t *pcbEncoded, PRTERRINFO pErrInfo) +{ + AssertReturn((fFlags & RTASN1ENCODE_F_RULE_MASK) == RTASN1ENCODE_F_DER, VERR_INVALID_FLAGS); + + /* + * This is implemented as a recursive enumeration of the ASN.1 object structure. + */ + RTASN1ENCODEPREPARGS Args; + Args.cb = 0; + Args.fFlags = fFlags; + Args.pErrInfo = pErrInfo; + int rc = rtAsn1EncodePrepareCallback(pRoot, "root", 0, &Args); + if (pcbEncoded) + *pcbEncoded = RTASN1CORE_GET_RAW_ASN1_SIZE(pRoot); + return rc; +} + + +RTDECL(int) RTAsnEncodeWriteHeader(PCRTASN1CORE pAsn1Core, uint32_t fFlags, FNRTASN1ENCODEWRITER pfnWriter, void *pvUser, + PRTERRINFO pErrInfo) +{ + AssertReturn((fFlags & RTASN1ENCODE_F_RULE_MASK) == RTASN1ENCODE_F_DER, VERR_INVALID_FLAGS); + + if ((pAsn1Core->fFlags & (RTASN1CORE_F_PRESENT | RTASN1CORE_F_DUMMY | RTASN1CORE_F_DEFAULT)) == RTASN1CORE_F_PRESENT) + { + uint8_t abHdr[16]; /* 2 + max 5 tag + max 4 length = 11 */ + uint8_t *pbDst = &abHdr[0]; + + /* + * Encode the tag. + */ + uint32_t uTag = pAsn1Core->uTag; + if (uTag < ASN1_TAG_USE_LONG_FORM) + *pbDst++ = (uint8_t)uTag | (pAsn1Core->fClass & ~ASN1_TAG_MASK); + else + { + AssertReturn(pAsn1Core->uTag != UINT32_MAX, RTErrInfoSet(pErrInfo, VERR_ASN1_DUMMY_OBJECT, "uTag=UINT32_MAX")); + + /* In the long form, the tag is encoded MSB style with the 8th bit + of each byte indicating the whether there are more byte. */ + *pbDst++ = ASN1_TAG_USE_LONG_FORM | (pAsn1Core->fClass & ~ASN1_TAG_MASK); + if (uTag <= UINT32_C(0x7f)) + *pbDst++ = uTag; + else if (uTag <= UINT32_C(0x3fff)) /* 2**(7*2) = 0x4000 (16384) */ + { + *pbDst++ = (uTag >> 7) | 0x80; + *pbDst++ = uTag & 0x7f; + } + else if (uTag <= UINT32_C(0x1fffff)) /* 2**(7*3) = 0x200000 (2097152) */ + { + *pbDst++ = (uTag >> 14) | 0x80; + *pbDst++ = ((uTag >> 7) & 0x7f) | 0x80; + *pbDst++ = uTag & 0x7f; + } + else if (uTag <= UINT32_C(0xfffffff)) /* 2**(7*4) = 0x10000000 (268435456) */ + { + *pbDst++ = (uTag >> 21) | 0x80; + *pbDst++ = ((uTag >> 14) & 0x7f) | 0x80; + *pbDst++ = ((uTag >> 7) & 0x7f) | 0x80; + *pbDst++ = uTag & 0x7f; + } + else + { + *pbDst++ = (uTag >> 28) | 0x80; + *pbDst++ = ((uTag >> 21) & 0x7f) | 0x80; + *pbDst++ = ((uTag >> 14) & 0x7f) | 0x80; + *pbDst++ = ((uTag >> 7) & 0x7f) | 0x80; + *pbDst++ = uTag & 0x7f; + } + } + + /* + * Encode the length. + */ + uint32_t cb = pAsn1Core->cb; + if (cb < 0x80) + *pbDst++ = (uint8_t)cb; + else + { + AssertReturn(cb < _1G, RTErrInfoSetF(pErrInfo, VERR_ASN1_TOO_LONG, "cb=%u (%#x)", cb, cb)); + + if (cb <= UINT32_C(0xffff)) + { + if (cb <= UINT32_C(0xff)) + { + pbDst[0] = 0x81; + pbDst[1] = (uint8_t)cb; + pbDst += 2; + } + else + { + pbDst[0] = 0x82; + pbDst[1] = cb >> 8; + pbDst[2] = (uint8_t)cb; + pbDst += 3; + } + } + else + { + if (cb <= UINT32_C(0xffffff)) + { + pbDst[0] = 0x83; + pbDst[1] = (uint8_t)(cb >> 16); + pbDst[2] = (uint8_t)(cb >> 8); + pbDst[3] = (uint8_t)cb; + pbDst += 4; + } + else + { + pbDst[0] = 0x84; + pbDst[1] = (uint8_t)(cb >> 24); + pbDst[2] = (uint8_t)(cb >> 16); + pbDst[3] = (uint8_t)(cb >> 8); + pbDst[4] = (uint8_t)cb; + pbDst += 5; + } + } + } + + size_t const cbHdr = pbDst - &abHdr[0]; + Assert(sizeof(abHdr) >= cbHdr); + Assert(pAsn1Core->cbHdr == cbHdr); + + /* + * Write it. + */ + return pfnWriter(abHdr, cbHdr, pvUser, pErrInfo); + } + + /* + * Not present, dummy or otherwise not encoded. + */ + Assert(pAsn1Core->cbHdr == 0); + if (pAsn1Core->fFlags & RTASN1CORE_F_DEFAULT) + return VINF_ASN1_NOT_ENCODED; + Assert(RTASN1CORE_IS_DUMMY(pAsn1Core)); + Assert(pAsn1Core->pOps && pAsn1Core->pOps->pfnEnum); + return VINF_SUCCESS; +} + + +/** + * @callback_method_impl{FNRTASN1ENUMCALLBACK} + */ +static DECLCALLBACK(int) rtAsn1EncodeWriteCallback(PRTASN1CORE pAsn1Core, const char *pszName, uint32_t uDepth, void *pvUser) +{ + RTASN1ENCODEWRITEARGS *pArgs = (RTASN1ENCODEWRITEARGS *)pvUser; + int rc; + if (RTASN1CORE_IS_PRESENT(pAsn1Core)) + { + /* + * If there is an write method, use it. + */ + if ( pAsn1Core->pOps + && pAsn1Core->pOps->pfnEncodeWrite) + rc = pAsn1Core->pOps->pfnEncodeWrite(pAsn1Core, pArgs->fFlags, pArgs->pfnWriter, pArgs->pvUser, pArgs->pErrInfo); + else + { + /* + * Generic path. Start by writing the header for this object. + */ + rc = RTAsnEncodeWriteHeader(pAsn1Core, pArgs->fFlags, pArgs->pfnWriter, pArgs->pvUser, pArgs->pErrInfo); + if (RT_SUCCESS(rc)) + { + /* + * If there is an enum function, call it to assemble the content. + * Otherwise ASSUME the pointer in the header points to the content. + */ + if ( pAsn1Core->pOps + && pAsn1Core->pOps->pfnEnum) + { + if (rc != VINF_ASN1_NOT_ENCODED) + rc = pAsn1Core->pOps->pfnEnum(pAsn1Core, rtAsn1EncodeWriteCallback, uDepth + 1, pArgs); + } + else if (pAsn1Core->cb && rc != VINF_ASN1_NOT_ENCODED) + { + Assert(!RTASN1CORE_IS_DUMMY(pAsn1Core)); + AssertPtrReturn(pAsn1Core->uData.pv, + RTErrInfoSetF(pArgs->pErrInfo, VERR_ASN1_INVALID_DATA_POINTER, + "Invalid uData pointer %p for no pfnEnum object with %#x bytes of content", + pAsn1Core->uData.pv, pAsn1Core->cb)); + rc = pArgs->pfnWriter(pAsn1Core->uData.pv, pAsn1Core->cb, pArgs->pvUser, pArgs->pErrInfo); + } + } + } + if (RT_SUCCESS(rc)) + rc = VINF_SUCCESS; + } + else + rc = VINF_SUCCESS; + return rc; +} + + +RTDECL(int) RTAsn1EncodeWrite(PCRTASN1CORE pRoot, uint32_t fFlags, FNRTASN1ENCODEWRITER pfnWriter, void *pvUser, + PRTERRINFO pErrInfo) +{ + AssertReturn((fFlags & RTASN1ENCODE_F_RULE_MASK) == RTASN1ENCODE_F_DER, VERR_INVALID_FLAGS); + + /* + * This is implemented as a recursive enumeration of the ASN.1 object structure. + */ + RTASN1ENCODEWRITEARGS Args; + Args.fFlags = fFlags; + Args.pfnWriter = pfnWriter; + Args.pvUser = pvUser; + Args.pErrInfo = pErrInfo; + return rtAsn1EncodeWriteCallback((PRTASN1CORE)pRoot, "root", 0, &Args); +} + diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Runtime/common/asn1/asn1-ut-bitstring.cpp virtualbox-4.1.44-dfsg/src/VBox/Runtime/common/asn1/asn1-ut-bitstring.cpp --- virtualbox-4.1.12-dfsg/src/VBox/Runtime/common/asn1/asn1-ut-bitstring.cpp 1970-01-01 00:00:00.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Runtime/common/asn1/asn1-ut-bitstring.cpp 2015-11-11 15:08:58.000000000 +0000 @@ -0,0 +1,516 @@ +/* $Id: asn1-ut-bitstring.cpp $ */ +/** @file + * IPRT - ASN.1, Bit String Type. + * + * @remarks This file should remain very similar to asn1-ut-octetstring.cpp. + */ + +/* + * Copyright (C) 2006-2014 Oracle Corporation + * + * This file is part of VirtualBox Open Source Edition (OSE), as + * available from http://www.virtualbox.org. This file is free software; + * you can redistribute it and/or modify it under the terms of the GNU + * General Public License (GPL) as published by the Free Software + * Foundation, in version 2 as it comes in the "COPYING" file of the + * VirtualBox OSE distribution. VirtualBox OSE is distributed in the + * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind. + * + * The contents of this file may alternatively be used under the terms + * of the Common Development and Distribution License Version 1.0 + * (CDDL) only, as it comes in the "COPYING.CDDL" file of the + * VirtualBox OSE distribution, in which case the provisions of the + * CDDL are applicable instead of those of the GPL. + * + * You may elect to license modified versions of this file under the + * terms and conditions of either the GPL or the CDDL or both. + */ + +/******************************************************************************* +* Header Files * +*******************************************************************************/ +#include "internal/iprt.h" +#include + +#include +#include +#include +#include +#include +#include + +#include + + +/******************************************************************************* +* Structures and Typedefs * +*******************************************************************************/ +typedef struct RTASN1BITSTRINGWRITERCTX +{ + /** Pointer to the output buffer. */ + uint8_t *pbBuf; + /** The current buffer offset. */ + uint32_t offBuf; + /** The size of the buffer. */ + uint32_t cbBuf; +} RTASN1BITSTRINGWRITERCTX; + + +/** @callback_method_impl{FNRTASN1ENCODEWRITER, + * Used to refresh the content of octet and bit strings. } */ +static DECLCALLBACK(int) rtAsn1BitStringEncodeWriter(const void *pvBuf, size_t cbToWrite, void *pvUser, PRTERRINFO pErrInfo) +{ + RTASN1BITSTRINGWRITERCTX *pCtx = (RTASN1BITSTRINGWRITERCTX *)pvUser; + AssertReturn(cbToWrite <= pCtx->cbBuf - pCtx->offBuf, + RTErrInfoSetF(pErrInfo, VERR_BUFFER_OVERFLOW, + "cbToWrite=%#x offBuf=%#x cbBuf=%#x", cbToWrite, pCtx->cbBuf, pCtx->offBuf)); + memcpy(&pCtx->pbBuf[pCtx->offBuf], pvBuf, cbToWrite); + pCtx->offBuf += (uint32_t)cbToWrite; + return VINF_SUCCESS; +} + + +/** @callback_method_impl{FNRTASN1ENCODEWRITER, + * Used to compare the encoded raw content of an octet or bit string with the + * encapsulated object. } */ +static DECLCALLBACK(int) rtAsn1BitStringEncodeCompare(const void *pvBuf, size_t cbToWrite, void *pvUser, PRTERRINFO pErrInfo) +{ + RTASN1BITSTRINGWRITERCTX *pCtx = (RTASN1BITSTRINGWRITERCTX *)pvUser; + AssertReturn(cbToWrite <= pCtx->cbBuf - pCtx->offBuf, VERR_BUFFER_OVERFLOW); + if (memcmp(&pCtx->pbBuf[pCtx->offBuf], pvBuf, cbToWrite) != 0) + return VERR_NOT_EQUAL; + pCtx->offBuf += (uint32_t)cbToWrite; + return VINF_SUCCESS; +} + + + +/* + * ASN.1 BIT STRING - Special Methods. + */ + +RTDECL(uint64_t) RTAsn1BitString_GetAsUInt64(PCRTASN1BITSTRING pThis) +{ + /* + * Extract the first 64 bits in host order. + */ + uint8_t const *pb = pThis->uBits.pu8; + uint64_t uRet = 0; + uint32_t cShift = 0; + uint32_t cBits = RT_MIN(pThis->cBits, 64); + while (cBits > 0) + { + uint8_t b = *pb++; +#if 1 /* We don't have a bit-order constant... */ + b = ((b & 0x01) << 7) + | ((b & 0x02) << 5) + | ((b & 0x04) << 3) + | ((b & 0x08) << 1) + | ((b & 0x10) >> 1) + | ((b & 0x20) >> 3) + | ((b & 0x40) >> 5) + | ((b & 0x80) >> 7); +#endif + if (cBits < 8) + { + b &= RT_BIT_32(cBits) - 1; + uRet |= (uint64_t)b << cShift; + break; + } + uRet |= (uint64_t)b << cShift; + cShift += 8; + cBits -= 8; + } + + return uRet; +} + + +RTDECL(int) RTAsn1BitString_RefreshContent(PRTASN1BITSTRING pThis, uint32_t fFlags, + PCRTASN1ALLOCATORVTABLE pAllocator, PRTERRINFO pErrInfo) +{ + AssertReturn(pThis->pEncapsulated, VERR_INVALID_STATE); + + uint32_t cbEncoded; + int rc = RTAsn1EncodePrepare(pThis->pEncapsulated, fFlags, &cbEncoded, pErrInfo); + if (RT_SUCCESS(rc)) + { + pThis->Asn1Core.cb = 1 + cbEncoded; + pThis->cBits = cbEncoded * 8; + AssertReturn(pThis->cBits / 8 == cbEncoded, RTErrInfoSetF(pErrInfo, VERR_TOO_MUCH_DATA, "cbEncoded=%#x", cbEncoded)); + + rc = RTAsn1ContentReallocZ(&pThis->Asn1Core, cbEncoded + 1, pAllocator); + if (RT_SUCCESS(rc)) + { + pThis->uBits.pu8 = pThis->Asn1Core.uData.pu8 + 1; + + /* Initialize the writer context and write the first byte concerning unused bits. */ + RTASN1BITSTRINGWRITERCTX Ctx; + Ctx.pbBuf = (uint8_t *)pThis->Asn1Core.uData.pu8; + Ctx.cbBuf = cbEncoded + 1; + Ctx.offBuf = 1; + *Ctx.pbBuf = 0; + + rc = RTAsn1EncodeWrite(pThis->pEncapsulated, fFlags, rtAsn1BitStringEncodeWriter, &Ctx, pErrInfo); + if (RT_SUCCESS(rc)) + { + if (Ctx.offBuf == cbEncoded + 1) + return VINF_SUCCESS; + + rc = RTErrInfoSetF(pErrInfo, rc, "Expected %#x + 1 bytes, got %#x", cbEncoded, Ctx.offBuf); + } + } + else + rc = RTErrInfoSetF(pErrInfo, rc, "Error allocating %#x + 1 bytes for storing content\n", cbEncoded); + } + return rc; +} + + +RTDECL(bool) RTAsn1BitString_AreContentBitsValid(PCRTASN1BITSTRING pThis, uint32_t fFlags) +{ + if (pThis->pEncapsulated) + { + if (pThis->cBits & 7) + return false; + + /* Check the encoded length of the bits. */ + uint32_t cbEncoded; + int rc = RTAsn1EncodePrepare(pThis->pEncapsulated, fFlags, &cbEncoded, NULL); + if (RT_FAILURE(rc)) + return false; + if (pThis->Asn1Core.cb != 1 + cbEncoded) + return false; + + /* Check the encoded bits, if there are any. */ + if (cbEncoded) + { + if (!pThis->Asn1Core.uData.pv) + return false; + + /* Check the first byte, the unused bit count. */ + if (*pThis->Asn1Core.uData.pu8 != 0) + return false; + + /* Check the other bytes. */ + RTASN1BITSTRINGWRITERCTX Ctx; + Ctx.pbBuf = (uint8_t *)pThis->Asn1Core.uData.pu8; + Ctx.cbBuf = cbEncoded + 1; + Ctx.offBuf = 1; + rc = RTAsn1EncodeWrite(pThis->pEncapsulated, fFlags, rtAsn1BitStringEncodeCompare, &Ctx, NULL); + if (RT_FAILURE(rc)) + return false; + } + } + return true; +} + + + + +/* + * ASN.1 BIT STRING - Standard Methods. + */ + +/** @interface_method_impl{FNRTASN1COREVTENCODEPREP} */ +static DECLCALLBACK(int) RTAsn1BitString_EncodePrep(PRTASN1CORE pThisCore, uint32_t fFlags, PRTERRINFO pErrInfo) +{ + PRTASN1BITSTRING pThis = (PRTASN1BITSTRING)pThisCore; + if (!pThis->pEncapsulated) + { + Assert(pThis->cBits == 0 || pThis->Asn1Core.uData.pv); + return VINF_SUCCESS; + } + + /* Figure out the size of the encapsulated content. */ + uint32_t cbEncoded; + int rc = RTAsn1EncodePrepare(pThis->pEncapsulated, fFlags, &cbEncoded, pErrInfo); + if (RT_SUCCESS(rc)) + { + /* Free the bytes if they don't match up. */ + if (pThis->Asn1Core.uData.pv) + { + bool fMustFree = pThis->Asn1Core.cb != 1 + cbEncoded || (pThis->cBits & 7); + if (!fMustFree) + { + RTASN1BITSTRINGWRITERCTX Ctx; + Ctx.pbBuf = (uint8_t *)pThis->Asn1Core.uData.pu8; + Ctx.cbBuf = 1 + cbEncoded; + Ctx.offBuf = 1; + fMustFree = *Ctx.pbBuf != 0; + if (!fMustFree) + { + rc = RTAsn1EncodeWrite(pThis->pEncapsulated, fFlags, rtAsn1BitStringEncodeCompare, &Ctx, NULL); + fMustFree = RT_FAILURE_NP(rc); + } + } + if (fMustFree) + { + pThis->uBits.pv = NULL; + RTAsn1ContentFree(&pThis->Asn1Core); + } + } + pThis->Asn1Core.cb = 1 + cbEncoded; + pThis->cBits = cbEncoded * 8; + + rc = RTAsn1EncodeRecalcHdrSize(&pThis->Asn1Core, fFlags, pErrInfo); + } + return rc; +} + + +/** @interface_method_impl{FNRTASN1COREVTENCODEWRITE} */ +static DECLCALLBACK(int) RTAsn1BitString_EncodeWrite(PRTASN1CORE pThisCore, uint32_t fFlags, PFNRTASN1ENCODEWRITER pfnWriter, + void *pvUser, PRTERRINFO pErrInfo) +{ + PRTASN1BITSTRING pThis = (PRTASN1BITSTRING)pThisCore; + + AssertReturn(RT_ALIGN(pThis->cBits, 7) / 8 + 1 == pThis->Asn1Core.cb, VERR_INTERNAL_ERROR_3); + + /* + * First the header. + */ + int rc = RTAsnEncodeWriteHeader(&pThis->Asn1Core, fFlags, pfnWriter, pvUser, pErrInfo); + if (RT_SUCCESS(rc) && rc != VINF_ASN1_NOT_ENCODED) + { + /* + * The content starts with an unused bit count. Calculate it in case we + * need to write it out. + */ + uint8_t cUnusedBits = 0; + if ((pThis->cBits & 7) != 0) + cUnusedBits = 8 - (pThis->cBits & 7); + + /* + * If nothing is encapsulated, the core points to the content (if we have any). + */ + if (!pThis->pEncapsulated) + { + if (pThis->cBits > 0) + { + Assert(pThis->Asn1Core.uData.pu8[0] == cUnusedBits); + rc = pfnWriter(pThis->Asn1Core.uData.pu8, pThis->Asn1Core.cb, pvUser, pErrInfo); + } + else + rc = pfnWriter(&cUnusedBits, sizeof(cUnusedBits), pvUser, pErrInfo); + } + /* + * Write the unused bit count and then call upon the encapsulated + * content to serialize itself. + */ + else + { + rc = pfnWriter(&cUnusedBits, sizeof(cUnusedBits), pvUser, pErrInfo); + if (RT_SUCCESS(rc)) + rc = RTAsn1EncodeWrite(pThis->pEncapsulated, fFlags, pfnWriter, pvUser, pErrInfo); + } + } + return rc; +} + + +RT_DECL_DATA_CONST(RTASN1COREVTABLE const) g_RTAsn1BitString_Vtable = +{ + "RTAsn1BitString", + sizeof(RTASN1BITSTRING), + ASN1_TAG_BIT_STRING, + ASN1_TAGCLASS_UNIVERSAL | ASN1_TAGFLAG_PRIMITIVE, + 0, + (PFNRTASN1COREVTDTOR)RTAsn1BitString_Delete, + (PFNRTASN1COREVTENUM)RTAsn1BitString_Enum, + (PFNRTASN1COREVTCLONE)RTAsn1BitString_Clone, + (PFNRTASN1COREVTCOMPARE)RTAsn1BitString_Compare, + (PFNRTASN1COREVTCHECKSANITY)RTAsn1BitString_CheckSanity, + RTAsn1BitString_EncodePrep, + RTAsn1BitString_EncodeWrite +}; + + +RTDECL(int) RTAsn1BitString_Init(PRTASN1BITSTRING pThis, PCRTASN1ALLOCATORVTABLE pAllocator) +{ + RT_ZERO(*pThis); + + RTAsn1Core_InitEx(&pThis->Asn1Core, ASN1_TAG_BIT_STRING, ASN1_TAGCLASS_UNIVERSAL | ASN1_TAGFLAG_PRIMITIVE, + &g_RTAsn1BitString_Vtable, RTASN1CORE_F_PRESENT | RTASN1CORE_F_PRIMITE_TAG_STRUCT); + /*pThis->cBits = 0; + pThis->cMaxBits = 0; + pThis->uBits.pv = NULL; + pThis->pEncapsulated = NULL; */ + RTAsn1MemInitAllocation(&pThis->EncapsulatedAllocation, pAllocator); + + return VINF_SUCCESS; +} + + +RTDECL(int) RTAsn1BitString_Clone(PRTASN1BITSTRING pThis, PCRTASN1BITSTRING pSrc, PCRTASN1ALLOCATORVTABLE pAllocator) +{ + AssertPtr(pSrc); AssertPtr(pThis); AssertPtr(pAllocator); + + RT_ZERO(*pThis); + if (RTAsn1BitString_IsPresent(pSrc)) + { + AssertReturn(pSrc->Asn1Core.pOps == &g_RTAsn1BitString_Vtable, VERR_INTERNAL_ERROR_3); + + int rc; + if (!pSrc->pEncapsulated) + rc = RTAsn1Core_CloneContent(&pThis->Asn1Core, &pSrc->Asn1Core, pAllocator); + else + rc = RTAsn1Core_CloneNoContent(&pThis->Asn1Core, &pSrc->Asn1Core); + if (RT_FAILURE(rc)) + return rc; + + RTAsn1MemInitAllocation(&pThis->EncapsulatedAllocation, pAllocator); + pThis->cBits = pSrc->cBits; + pThis->cMaxBits = pSrc->cMaxBits; + if (!pSrc->pEncapsulated) + pThis->uBits.pv = pThis->Asn1Core.uData.pu8 ? pThis->Asn1Core.uData.pu8 + 1 : NULL; + else + { + PCRTASN1COREVTABLE pOps = pSrc->pEncapsulated->pOps; + Assert(!pOps || pOps->pfnClone); + if (pOps && pOps->pfnClone) + { + /* We can clone the decoded encapsulated object. */ + rc = RTAsn1MemAllocZ(&pThis->EncapsulatedAllocation, (void **)&pThis->pEncapsulated, pOps->cbStruct); + if (RT_SUCCESS(rc)) + { + rc = pOps->pfnClone(pThis->pEncapsulated, pSrc->pEncapsulated, pAllocator); + if (RT_FAILURE(rc)) + RTAsn1MemFree(&pThis->EncapsulatedAllocation, pThis->pEncapsulated); + } + } + else + { + /* Borrow the encapsulated pointer and use RTAsn1BitString_RefreshContent + to get an accurate copy of the bytes. */ + pThis->pEncapsulated = pSrc->pEncapsulated; + rc = RTAsn1BitString_RefreshContent(pThis, RTASN1ENCODE_F_DER, pAllocator, NULL); + pThis->pEncapsulated = NULL; + } + if (RT_FAILURE(rc)) + { + RTAsn1ContentFree(&pThis->Asn1Core); + RT_ZERO(*pThis); + return rc; + } + } + } + return VINF_SUCCESS; +} + + +RTDECL(void) RTAsn1BitString_Delete(PRTASN1BITSTRING pThis) +{ + if ( pThis + && RTAsn1BitString_IsPresent(pThis)) + { + Assert(pThis->Asn1Core.pOps == &g_RTAsn1BitString_Vtable); + + /* Destroy the encapsulated object. */ + if (pThis->pEncapsulated) + { + RTAsn1VtDelete(pThis->pEncapsulated); + if (pThis->EncapsulatedAllocation.cbAllocated) + RTAsn1MemFree(&pThis->EncapsulatedAllocation, pThis->pEncapsulated); + } + + /* Delete content and wipe the content. */ + RTAsn1ContentFree(&pThis->Asn1Core); + RT_ZERO(*pThis); + } +} + + +RTDECL(int) RTAsn1BitString_Enum(PRTASN1BITSTRING pThis, PFNRTASN1ENUMCALLBACK pfnCallback, uint32_t uDepth, void *pvUser) +{ + Assert(pThis && (!RTAsn1BitString_IsPresent(pThis) || pThis->Asn1Core.pOps == &g_RTAsn1BitString_Vtable)); + + /* Enumerate the encapsulated object if present. */ + if (pThis->pEncapsulated) + return pfnCallback(pThis->pEncapsulated, "Encapsulated", uDepth + 1, pvUser); + return VINF_SUCCESS; +} + + +RTDECL(int) RTAsn1BitString_Compare(PCRTASN1BITSTRING pLeft, PCRTASN1BITSTRING pRight) +{ + Assert(pLeft && (!RTAsn1BitString_IsPresent(pLeft) || pLeft->Asn1Core.pOps == &g_RTAsn1BitString_Vtable)); + Assert(pRight && (!RTAsn1BitString_IsPresent(pRight) || pRight->Asn1Core.pOps == &g_RTAsn1BitString_Vtable)); + + int iDiff; + if (RTAsn1BitString_IsPresent(pLeft)) + { + if (RTAsn1BitString_IsPresent(pRight)) + { + /* Since it's really hard to tell whether encapsulated objects have + been modified or not, we might have to refresh both objects + while doing this compare. We'll try our best to avoid it though. */ + if (pLeft->pEncapsulated || pRight->pEncapsulated) + { + if ( pLeft->pEncapsulated + && pRight->pEncapsulated + && pLeft->pEncapsulated->pOps == pRight->pEncapsulated->pOps) + iDiff = pLeft->pEncapsulated->pOps->pfnCompare(pLeft->pEncapsulated, pRight->pEncapsulated); + else + { + /* No direct comparison of encapsulated objects possible, + make sure we've got the rigth bytes then. */ + if ( pLeft->pEncapsulated + && !RTAsn1BitString_AreContentBitsValid(pLeft, RTASN1ENCODE_F_DER)) + { + int rc = RTAsn1BitString_RefreshContent((PRTASN1BITSTRING)pLeft, RTASN1ENCODE_F_DER, + pLeft->EncapsulatedAllocation.pAllocator, NULL); + AssertRC(rc); + } + + if ( pRight->pEncapsulated + && !RTAsn1BitString_AreContentBitsValid(pRight, RTASN1ENCODE_F_DER)) + { + int rc = RTAsn1BitString_RefreshContent((PRTASN1BITSTRING)pRight, RTASN1ENCODE_F_DER, + pRight->EncapsulatedAllocation.pAllocator, NULL); + AssertRC(rc); + } + + /* Compare the content bytes. */ + iDiff = RTAsn1Core_CompareEx(&pLeft->Asn1Core, &pRight->Asn1Core, true /*fIgnoreTagAndClass*/); + } + } + /* + * No encapsulated object, just compare the raw content bytes. + */ + else + iDiff = RTAsn1Core_CompareEx(&pLeft->Asn1Core, &pRight->Asn1Core, true /*fIgnoreTagAndClass*/); + } + else + iDiff = -1; + } + else + iDiff = 0 - (int)RTAsn1BitString_IsPresent(pRight); + return iDiff; +} + + +RTDECL(int) RTAsn1BitString_CheckSanity(PCRTASN1BITSTRING pThis, uint32_t fFlags, PRTERRINFO pErrInfo, const char *pszErrorTag) +{ + if (RT_UNLIKELY(!RTAsn1BitString_IsPresent(pThis))) + return RTErrInfoSetF(pErrInfo, VERR_ASN1_NOT_PRESENT, "%s: Missing (BIT STRING).", pszErrorTag); + + if (pThis->cBits > pThis->cMaxBits) + return RTErrInfoSetF(pErrInfo, VERR_ASN1_BITSTRING_OUT_OF_BOUNDS, "%s: Exceeding max bits: cBits=%u cMaxBits=%u.", + pszErrorTag, pThis->cBits, pThis->cMaxBits); + + if (pThis->pEncapsulated) + return pThis->pEncapsulated->pOps->pfnCheckSanity(pThis->pEncapsulated, fFlags & RTASN1_CHECK_SANITY_F_COMMON_MASK, + pErrInfo, pszErrorTag); + return VINF_SUCCESS; +} + +/* + * Generate code for the associated collection types. + */ +#define RTASN1TMPL_TEMPLATE_FILE "../common/asn1/asn1-ut-bitstring-template.h" +#include +#include +#include +#include + diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Runtime/common/asn1/asn1-ut-bitstring-decode.cpp virtualbox-4.1.44-dfsg/src/VBox/Runtime/common/asn1/asn1-ut-bitstring-decode.cpp --- virtualbox-4.1.12-dfsg/src/VBox/Runtime/common/asn1/asn1-ut-bitstring-decode.cpp 1970-01-01 00:00:00.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Runtime/common/asn1/asn1-ut-bitstring-decode.cpp 2015-11-11 15:08:58.000000000 +0000 @@ -0,0 +1,130 @@ +/* $Id: asn1-ut-bitstring-decode.cpp $ */ +/** @file + * IPRT - ASN.1, BIT STRING Type, Decoding. + */ + +/* + * Copyright (C) 2006-2014 Oracle Corporation + * + * This file is part of VirtualBox Open Source Edition (OSE), as + * available from http://www.virtualbox.org. This file is free software; + * you can redistribute it and/or modify it under the terms of the GNU + * General Public License (GPL) as published by the Free Software + * Foundation, in version 2 as it comes in the "COPYING" file of the + * VirtualBox OSE distribution. VirtualBox OSE is distributed in the + * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind. + * + * The contents of this file may alternatively be used under the terms + * of the Common Development and Distribution License Version 1.0 + * (CDDL) only, as it comes in the "COPYING.CDDL" file of the + * VirtualBox OSE distribution, in which case the provisions of the + * CDDL are applicable instead of those of the GPL. + * + * You may elect to license modified versions of this file under the + * terms and conditions of either the GPL or the CDDL or both. + */ + +/******************************************************************************* +* Header Files * +*******************************************************************************/ +#include "internal/iprt.h" +#include + +#include +#include + +#include + + + +RTDECL(int) RTAsn1BitString_DecodeAsn1Ex(PRTASN1CURSOR pCursor, uint32_t fFlags, uint32_t cMaxBits, PRTASN1BITSTRING pThis, + const char *pszErrorTag) +{ + pThis->cBits = 0; + pThis->cMaxBits = cMaxBits; + pThis->uBits.pv = NULL; + pThis->pEncapsulated = NULL; + RTAsn1CursorInitAllocation(pCursor, &pThis->EncapsulatedAllocation); + + int rc = RTAsn1CursorReadHdr(pCursor, &pThis->Asn1Core, pszErrorTag); + if (RT_SUCCESS(rc)) + { + rc = RTAsn1CursorMatchTagClassFlagsString(pCursor, &pThis->Asn1Core, ASN1_TAG_BIT_STRING, + ASN1_TAGCLASS_UNIVERSAL | ASN1_TAGFLAG_PRIMITIVE, + fFlags, pszErrorTag, "BIT STRING"); + if (RT_SUCCESS(rc)) + { + if (!(pThis->Asn1Core.fClass & ASN1_TAGFLAG_CONSTRUCTED)) + { + if ( ( cMaxBits == UINT32_MAX + || RT_ALIGN(cMaxBits, 8) / 8 + 1 >= pThis->Asn1Core.cb) + && pThis->Asn1Core.cb > 0) + { + uint8_t cUnusedBits = pThis->Asn1Core.cb > 0 ? *pThis->Asn1Core.uData.pu8 : 0; + if (pThis->Asn1Core.cb < 2) + { + /* Not bits present. */ + if (cUnusedBits == 0) + { + pThis->cBits = 0; + pThis->uBits.pv = NULL; + RTAsn1CursorSkip(pCursor, pThis->Asn1Core.cb); + pThis->Asn1Core.pOps = &g_RTAsn1BitString_Vtable; + pThis->Asn1Core.fFlags |= RTASN1CORE_F_PRIMITE_TAG_STRUCT; + return VINF_SUCCESS; + } + rc = RTAsn1CursorSetInfo(pCursor, VERR_ASN1_INVALID_BITSTRING_ENCODING, + "%s: Bad unused bit count: %#x (cb=%#x)", + pszErrorTag, cUnusedBits, pThis->Asn1Core.cb); + } + else if (cUnusedBits < 8) + { + pThis->cBits = (pThis->Asn1Core.cb - 1) * 8; + pThis->cBits -= cUnusedBits; + pThis->uBits.pu8 = pThis->Asn1Core.uData.pu8 + 1; + if ( !(pCursor->fFlags & (RTASN1CURSOR_FLAGS_DER | RTASN1CURSOR_FLAGS_CER)) + || cUnusedBits == 0 + || !( pThis->uBits.pu8[pThis->Asn1Core.cb - 2] & (((uint8_t)1 << cUnusedBits) - (uint8_t)1) ) ) + { + RTAsn1CursorSkip(pCursor, pThis->Asn1Core.cb); + pThis->Asn1Core.pOps = &g_RTAsn1BitString_Vtable; + pThis->Asn1Core.fFlags |= RTASN1CORE_F_PRIMITE_TAG_STRUCT; + return VINF_SUCCESS; + } + rc = RTAsn1CursorSetInfo(pCursor, VERR_ASN1_INVALID_BITSTRING_ENCODING, + "%s: Unused bits shall be zero in DER/CER mode: last byte=%#x cUnused=%#x", + pszErrorTag, pThis->uBits.pu8[pThis->cBits / 8], cUnusedBits); + } + else + rc = RTAsn1CursorSetInfo(pCursor, VERR_ASN1_INVALID_BITSTRING_ENCODING, + "%s: Bad unused bit count: %#x (cb=%#x)", + pszErrorTag, cUnusedBits, pThis->Asn1Core.cb); + } + else + rc = RTAsn1CursorSetInfo(pCursor, VERR_ASN1_INVALID_BITSTRING_ENCODING, + "%s: Size mismatch: cb=%#x, expected %#x (cMaxBits=%#x)", + pszErrorTag, pThis->Asn1Core.cb, RT_ALIGN(cMaxBits, 8) / 8 + 1, cMaxBits); + } + else + rc = RTAsn1CursorSetInfo(pCursor, VERR_ASN1_CONSTRUCTED_STRING_NOT_IMPL, + "%s: Constructed BIT STRING not implemented.", pszErrorTag); + } + } + RT_ZERO(*pThis); + return rc; +} + + +RTDECL(int) RTAsn1BitString_DecodeAsn1(PRTASN1CURSOR pCursor, uint32_t fFlags, PRTASN1BITSTRING pThis, const char *pszErrorTag) +{ + return RTAsn1BitString_DecodeAsn1Ex(pCursor, fFlags, UINT32_MAX, pThis, pszErrorTag); +} + + +/* + * Generate code for the associated collection types. + */ +#define RTASN1TMPL_TEMPLATE_FILE "../common/asn1/asn1-ut-bitstring-template.h" +#include +#include + diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Runtime/common/asn1/asn1-ut-bitstring-template.h virtualbox-4.1.44-dfsg/src/VBox/Runtime/common/asn1/asn1-ut-bitstring-template.h --- virtualbox-4.1.12-dfsg/src/VBox/Runtime/common/asn1/asn1-ut-bitstring-template.h 1970-01-01 00:00:00.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Runtime/common/asn1/asn1-ut-bitstring-template.h 2015-11-11 15:08:58.000000000 +0000 @@ -0,0 +1,45 @@ +/* $Id: asn1-ut-bitstring-template.h $ */ +/** @file + * IPRT - ASN.1, Bit String Type, Collection Type Template. + */ + +/* + * Copyright (C) 2006-2014 Oracle Corporation + * + * This file is part of VirtualBox Open Source Edition (OSE), as + * available from http://www.virtualbox.org. This file is free software; + * you can redistribute it and/or modify it under the terms of the GNU + * General Public License (GPL) as published by the Free Software + * Foundation, in version 2 as it comes in the "COPYING" file of the + * VirtualBox OSE distribution. VirtualBox OSE is distributed in the + * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind. + * + * The contents of this file may alternatively be used under the terms + * of the Common Development and Distribution License Version 1.0 + * (CDDL) only, as it comes in the "COPYING.CDDL" file of the + * VirtualBox OSE distribution, in which case the provisions of the + * CDDL are applicable instead of those of the GPL. + * + * You may elect to license modified versions of this file under the + * terms and conditions of either the GPL or the CDDL or both. + */ + +#define RTASN1TMPL_DECL RTDECL + +#define RTASN1TMPL_TYPE RTASN1SEQOFBITSTRINGS +#define RTASN1TMPL_EXT_NAME RTAsn1SeqOfBitStrings +#define RTASN1TMPL_INT_NAME rtAsn1SeqOfBitStrings +RTASN1TMPL_SEQ_OF(RTASN1BITSTRING, RTAsn1BitString); +#undef RTASN1TMPL_TYPE +#undef RTASN1TMPL_EXT_NAME +#undef RTASN1TMPL_INT_NAME + + +#define RTASN1TMPL_TYPE RTASN1SETOFBITSTRINGS +#define RTASN1TMPL_EXT_NAME RTAsn1SetOfBitStrings +#define RTASN1TMPL_INT_NAME rtAsn1SetOfBitStrings +RTASN1TMPL_SET_OF(RTASN1BITSTRING, RTAsn1BitString); +#undef RTASN1TMPL_TYPE +#undef RTASN1TMPL_EXT_NAME +#undef RTASN1TMPL_INT_NAME + diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Runtime/common/asn1/asn1-ut-boolean.cpp virtualbox-4.1.44-dfsg/src/VBox/Runtime/common/asn1/asn1-ut-boolean.cpp --- virtualbox-4.1.12-dfsg/src/VBox/Runtime/common/asn1/asn1-ut-boolean.cpp 1970-01-01 00:00:00.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Runtime/common/asn1/asn1-ut-boolean.cpp 2015-11-11 15:08:58.000000000 +0000 @@ -0,0 +1,203 @@ +/* $Id: asn1-ut-boolean.cpp $ */ +/** @file + * IPRT - ASN.1, BOOLEAN Type. + */ + +/* + * Copyright (C) 2006-2014 Oracle Corporation + * + * This file is part of VirtualBox Open Source Edition (OSE), as + * available from http://www.virtualbox.org. This file is free software; + * you can redistribute it and/or modify it under the terms of the GNU + * General Public License (GPL) as published by the Free Software + * Foundation, in version 2 as it comes in the "COPYING" file of the + * VirtualBox OSE distribution. VirtualBox OSE is distributed in the + * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind. + * + * The contents of this file may alternatively be used under the terms + * of the Common Development and Distribution License Version 1.0 + * (CDDL) only, as it comes in the "COPYING.CDDL" file of the + * VirtualBox OSE distribution, in which case the provisions of the + * CDDL are applicable instead of those of the GPL. + * + * You may elect to license modified versions of this file under the + * terms and conditions of either the GPL or the CDDL or both. + */ + +/******************************************************************************* +* Header Files * +*******************************************************************************/ +#include "internal/iprt.h" +#include + +#include +#include +#include + +#include + + +/******************************************************************************* +* Global Variables * +*******************************************************************************/ +/** The false value (DER & CER). */ +static const uint8_t g_bFalse = 0; +/** The true value (DER & CER). */ +static const uint8_t g_bTrue = 0xff; + + +/* + * ASN.1 BOOLEAN - Special Methods. + */ + +RTDECL(int) RTAsn1Boolean_InitDefault(PRTASN1BOOLEAN pThis, bool fValue, PCRTASN1ALLOCATORVTABLE pAllocator) +{ + RTAsn1Core_InitEx(&pThis->Asn1Core, ASN1_TAG_BOOLEAN, ASN1_TAGCLASS_UNIVERSAL | ASN1_TAGFLAG_PRIMITIVE, + &g_RTAsn1Boolean_Vtable, RTASN1CORE_F_DEFAULT | RTASN1CORE_F_PRIMITE_TAG_STRUCT); + pThis->fValue = fValue; + pThis->Asn1Core.uData.pv = (void *)(fValue ? &g_bTrue : &g_bFalse); + return VINF_SUCCESS; +} + + +RTDECL(int) RTAsn1Boolean_Set(PRTASN1BOOLEAN pThis, bool fValue) +{ + /* Since we don't need an allocator, let's automatically initialize the struct. */ + if (!RTAsn1Boolean_IsPresent(pThis)) + RTAsn1Boolean_Init(pThis, NULL); + else + RTAsn1ContentFree(&pThis->Asn1Core); + pThis->fValue = fValue; + pThis->Asn1Core.uData.pv = (void *)(fValue ? &g_bTrue : &g_bFalse); + pThis->Asn1Core.cb = 1; + pThis->Asn1Core.fFlags &= ~RTASN1CORE_F_DEFAULT; + pThis->Asn1Core.fFlags |= RTASN1CORE_F_PRESENT; + return VINF_SUCCESS; +} + + + +/* + * ASN.1 BOOLEAN - Standard Methods. + */ + +RT_DECL_DATA_CONST(RTASN1COREVTABLE const) g_RTAsn1Boolean_Vtable = +{ + "RTAsn1Boolean", + sizeof(RTASN1BOOLEAN), + ASN1_TAG_BOOLEAN, + ASN1_TAGCLASS_UNIVERSAL | ASN1_TAGFLAG_PRIMITIVE, + 0, + (PFNRTASN1COREVTDTOR)RTAsn1Boolean_Delete, + NULL, + (PFNRTASN1COREVTCLONE)RTAsn1Boolean_Clone, + (PFNRTASN1COREVTCOMPARE)RTAsn1Boolean_Compare, + (PFNRTASN1COREVTCHECKSANITY)RTAsn1Boolean_CheckSanity, + NULL, + NULL +}; + + +RTDECL(int) RTAsn1Boolean_Init(PRTASN1BOOLEAN pThis, PCRTASN1ALLOCATORVTABLE pAllocator) +{ + RTAsn1Core_InitEx(&pThis->Asn1Core, ASN1_TAG_BOOLEAN, ASN1_TAGCLASS_UNIVERSAL | ASN1_TAGFLAG_PRIMITIVE, + &g_RTAsn1Boolean_Vtable, RTASN1CORE_F_PRESENT | RTASN1CORE_F_PRIMITE_TAG_STRUCT); + pThis->fValue = true; + pThis->Asn1Core.cb = 1; + pThis->Asn1Core.uData.pv = (void *)&g_bTrue; + return VINF_SUCCESS; +} + + +RTDECL(int) RTAsn1Boolean_Clone(PRTASN1BOOLEAN pThis, PCRTASN1BOOLEAN pSrc, PCRTASN1ALLOCATORVTABLE pAllocator) +{ + AssertPtr(pSrc); AssertPtr(pThis); AssertPtr(pAllocator); + RT_ZERO(*pThis); + if (RTAsn1Boolean_IsPresent(pSrc)) + { + AssertReturn(pSrc->Asn1Core.pOps == &g_RTAsn1Boolean_Vtable, VERR_INTERNAL_ERROR_3); + AssertReturn(pSrc->Asn1Core.cb <= 1, VERR_INTERNAL_ERROR_4); + + int rc; + if ( pSrc->Asn1Core.cb == 1 + && pSrc->Asn1Core.uData.pu8[0] != 0x00 + && pSrc->Asn1Core.uData.pu8[0] != 0xff) + { + /* DER/CER incompatible value must be copied as-is. */ + rc = RTAsn1Core_CloneContent(&pThis->Asn1Core, &pSrc->Asn1Core, pAllocator); + if (RT_FAILURE(rc)) + return rc; + } + else + { + /* No value or one of the standard values. */ + rc = RTAsn1Core_CloneNoContent(&pThis->Asn1Core, &pSrc->Asn1Core); + if (RT_FAILURE(rc)) + return rc; + pThis->Asn1Core.uData.pv = (void *)(pSrc->fValue ? &g_bTrue : &g_bFalse); + } + pThis->fValue = pSrc->fValue; + } + return VINF_SUCCESS; +} + + +RTDECL(void) RTAsn1Boolean_Delete(PRTASN1BOOLEAN pThis) +{ + if ( pThis + && RTAsn1Boolean_IsPresent(pThis)) + { + Assert(pThis->Asn1Core.pOps == &g_RTAsn1Boolean_Vtable); + Assert(pThis->Asn1Core.cb <= 1); + + RTAsn1ContentFree(&pThis->Asn1Core); + RT_ZERO(*pThis); + } +} + + +RTDECL(int) RTAsn1Boolean_Enum(PRTASN1BOOLEAN pThis, PFNRTASN1ENUMCALLBACK pfnCallback, uint32_t uDepth, void *pvUser) +{ + Assert(pThis && (!RTAsn1Boolean_IsPresent(pThis) || pThis->Asn1Core.pOps == &g_RTAsn1Boolean_Vtable)); + + /* No children to enumerate. */ + return VINF_SUCCESS; +} + + +RTDECL(int) RTAsn1Boolean_Compare(PCRTASN1BOOLEAN pLeft, PCRTASN1BOOLEAN pRight) +{ + Assert(pLeft && (!RTAsn1Boolean_IsPresent(pLeft) || pLeft->Asn1Core.pOps == &g_RTAsn1Boolean_Vtable)); + Assert(pRight && (!RTAsn1Boolean_IsPresent(pRight) || pRight->Asn1Core.pOps == &g_RTAsn1Boolean_Vtable)); + + int iDiff; + if (RTAsn1Boolean_IsPresent(pLeft)) + { + if (RTAsn1Boolean_IsPresent(pRight)) + iDiff = (int)pLeft->fValue - (int)pRight->fValue; + else + iDiff = -1; + } + else + iDiff = 0 - (int)RTAsn1Boolean_IsPresent(pRight); + return iDiff; +} + + +RTDECL(int) RTAsn1Boolean_CheckSanity(PCRTASN1BOOLEAN pThis, uint32_t fFlags, PRTERRINFO pErrInfo, const char *pszErrorTag) +{ + if (RT_UNLIKELY(!RTAsn1Boolean_IsPresent(pThis))) + return RTErrInfoSetF(pErrInfo, VERR_ASN1_NOT_PRESENT, "%s: Missing (BOOLEAN).", pszErrorTag); + return VINF_SUCCESS; +} + + +/* + * Generate code for the associated collection types. + */ +#define RTASN1TMPL_TEMPLATE_FILE "../common/asn1/asn1-ut-boolean-template.h" +#include +#include +#include +#include + diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Runtime/common/asn1/asn1-ut-boolean-decode.cpp virtualbox-4.1.44-dfsg/src/VBox/Runtime/common/asn1/asn1-ut-boolean-decode.cpp --- virtualbox-4.1.12-dfsg/src/VBox/Runtime/common/asn1/asn1-ut-boolean-decode.cpp 1970-01-01 00:00:00.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Runtime/common/asn1/asn1-ut-boolean-decode.cpp 2015-11-11 15:08:58.000000000 +0000 @@ -0,0 +1,82 @@ +/* $Id: asn1-ut-boolean-decode.cpp $ */ +/** @file + * IPRT - ASN.1, BOOLEAN Type, Decoding. + */ + +/* + * Copyright (C) 2006-2014 Oracle Corporation + * + * This file is part of VirtualBox Open Source Edition (OSE), as + * available from http://www.virtualbox.org. This file is free software; + * you can redistribute it and/or modify it under the terms of the GNU + * General Public License (GPL) as published by the Free Software + * Foundation, in version 2 as it comes in the "COPYING" file of the + * VirtualBox OSE distribution. VirtualBox OSE is distributed in the + * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind. + * + * The contents of this file may alternatively be used under the terms + * of the Common Development and Distribution License Version 1.0 + * (CDDL) only, as it comes in the "COPYING.CDDL" file of the + * VirtualBox OSE distribution, in which case the provisions of the + * CDDL are applicable instead of those of the GPL. + * + * You may elect to license modified versions of this file under the + * terms and conditions of either the GPL or the CDDL or both. + */ + +/******************************************************************************* +* Header Files * +*******************************************************************************/ +#include "internal/iprt.h" +#include + +#include +#include + +#include + + + +RTDECL(int) RTAsn1Boolean_DecodeAsn1(PRTASN1CURSOR pCursor, uint32_t fFlags, PRTASN1BOOLEAN pThis, const char *pszErrorTag) +{ + pThis->fValue = 0; + int rc = RTAsn1CursorReadHdr(pCursor, &pThis->Asn1Core, pszErrorTag); + if (RT_SUCCESS(rc)) + { + rc = RTAsn1CursorMatchTagClassFlags(pCursor, &pThis->Asn1Core, ASN1_TAG_BOOLEAN, + ASN1_TAGCLASS_UNIVERSAL | ASN1_TAGFLAG_PRIMITIVE, fFlags, pszErrorTag, "BOOLEAN"); + if (RT_SUCCESS(rc)) + { + if (pThis->Asn1Core.cb == 1) + { + RTAsn1CursorSkip(pCursor, pThis->Asn1Core.cb); + pThis->Asn1Core.fFlags |= RTASN1CORE_F_PRIMITE_TAG_STRUCT; + pThis->Asn1Core.pOps = &g_RTAsn1Boolean_Vtable; + + pThis->fValue = *pThis->Asn1Core.uData.pu8 != 0; + if ( *pThis->Asn1Core.uData.pu8 == 0 + || *pThis->Asn1Core.uData.pu8 == 0xff + || !(pCursor->fFlags & (RTASN1CURSOR_FLAGS_DER | RTASN1CURSOR_FLAGS_CER)) ) + return VINF_SUCCESS; + + rc = RTAsn1CursorSetInfo(pCursor, VERR_ASN1_INVALID_BOOLEAN_ENCODING, + "%s: Invalid CER/DER boolean value: %#x, valid: 0, 0xff", + pszErrorTag, *pThis->Asn1Core.uData.pu8); + } + else + rc = RTAsn1CursorSetInfo(pCursor, VERR_ASN1_INVALID_BOOLEAN_ENCODING, "%s: Invalid boolean length, exepcted 1: %#x", + pszErrorTag, pThis->Asn1Core.cb); + } + } + RT_ZERO(*pThis); + return rc; +} + + +/* + * Generate code for the associated collection types. + */ +#define RTASN1TMPL_TEMPLATE_FILE "../common/asn1/asn1-ut-boolean-template.h" +#include +#include + diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Runtime/common/asn1/asn1-ut-boolean-template.h virtualbox-4.1.44-dfsg/src/VBox/Runtime/common/asn1/asn1-ut-boolean-template.h --- virtualbox-4.1.12-dfsg/src/VBox/Runtime/common/asn1/asn1-ut-boolean-template.h 1970-01-01 00:00:00.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Runtime/common/asn1/asn1-ut-boolean-template.h 2015-11-11 15:08:58.000000000 +0000 @@ -0,0 +1,45 @@ +/* $Id: asn1-ut-boolean-template.h $ */ +/** @file + * IPRT - ASN.1, BOOLEAN Type, Collection Type Template. + */ + +/* + * Copyright (C) 2006-2014 Oracle Corporation + * + * This file is part of VirtualBox Open Source Edition (OSE), as + * available from http://www.virtualbox.org. This file is free software; + * you can redistribute it and/or modify it under the terms of the GNU + * General Public License (GPL) as published by the Free Software + * Foundation, in version 2 as it comes in the "COPYING" file of the + * VirtualBox OSE distribution. VirtualBox OSE is distributed in the + * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind. + * + * The contents of this file may alternatively be used under the terms + * of the Common Development and Distribution License Version 1.0 + * (CDDL) only, as it comes in the "COPYING.CDDL" file of the + * VirtualBox OSE distribution, in which case the provisions of the + * CDDL are applicable instead of those of the GPL. + * + * You may elect to license modified versions of this file under the + * terms and conditions of either the GPL or the CDDL or both. + */ + +#define RTASN1TMPL_DECL RTDECL + +#define RTASN1TMPL_TYPE RTASN1SEQOFBOOLEANS +#define RTASN1TMPL_EXT_NAME RTAsn1SeqOfBooleans +#define RTASN1TMPL_INT_NAME rtAsn1SeqOfBooleans +RTASN1TMPL_SEQ_OF(RTASN1BOOLEAN, RTAsn1Boolean); +#undef RTASN1TMPL_TYPE +#undef RTASN1TMPL_EXT_NAME +#undef RTASN1TMPL_INT_NAME + + +#define RTASN1TMPL_TYPE RTASN1SETOFBOOLEANS +#define RTASN1TMPL_EXT_NAME RTAsn1SetOfBooleans +#define RTASN1TMPL_INT_NAME rtAsn1SetOfBooleans +RTASN1TMPL_SET_OF(RTASN1BOOLEAN, RTAsn1Boolean); +#undef RTASN1TMPL_TYPE +#undef RTASN1TMPL_EXT_NAME +#undef RTASN1TMPL_INT_NAME + diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Runtime/common/asn1/asn1-ut-core.cpp virtualbox-4.1.44-dfsg/src/VBox/Runtime/common/asn1/asn1-ut-core.cpp --- virtualbox-4.1.12-dfsg/src/VBox/Runtime/common/asn1/asn1-ut-core.cpp 1970-01-01 00:00:00.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Runtime/common/asn1/asn1-ut-core.cpp 2015-11-11 15:08:58.000000000 +0000 @@ -0,0 +1,278 @@ +/* $Id: asn1-ut-core.cpp $ */ +/** @file + * IPRT - ASN.1, Generic Core Type. + */ + +/* + * Copyright (C) 2006-2014 Oracle Corporation + * + * This file is part of VirtualBox Open Source Edition (OSE), as + * available from http://www.virtualbox.org. This file is free software; + * you can redistribute it and/or modify it under the terms of the GNU + * General Public License (GPL) as published by the Free Software + * Foundation, in version 2 as it comes in the "COPYING" file of the + * VirtualBox OSE distribution. VirtualBox OSE is distributed in the + * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind. + * + * The contents of this file may alternatively be used under the terms + * of the Common Development and Distribution License Version 1.0 + * (CDDL) only, as it comes in the "COPYING.CDDL" file of the + * VirtualBox OSE distribution, in which case the provisions of the + * CDDL are applicable instead of those of the GPL. + * + * You may elect to license modified versions of this file under the + * terms and conditions of either the GPL or the CDDL or both. + */ + +/******************************************************************************* +* Header Files * +*******************************************************************************/ +#include "internal/iprt.h" +#include + +#include +#include +#include +#include +#include +#include + +#include + + +/* + * ASN.1 Core - Special methods (for all applications of RTASN1CORE). + */ + +RTDECL(int) RTAsn1Core_SetTagAndFlags(PRTASN1CORE pAsn1Core, uint32_t uTag, uint8_t fClass) +{ + if (!(pAsn1Core->fFlags & RTASN1CORE_F_TAG_IMPLICIT)) + { + pAsn1Core->fRealClass = pAsn1Core->fClass; + pAsn1Core->uRealTag = pAsn1Core->uTag; + Assert(pAsn1Core->uRealTag == pAsn1Core->uTag); + pAsn1Core->fFlags |= RTASN1CORE_F_TAG_IMPLICIT; + } + pAsn1Core->uTag = uTag; + pAsn1Core->fClass = fClass; + return VINF_SUCCESS; +} + + +RTDECL(int) RTAsn1Core_ChangeTag(PRTASN1CORE pAsn1Core, uint32_t uTag) +{ + if (!(pAsn1Core->fFlags & RTASN1CORE_F_TAG_IMPLICIT)) + pAsn1Core->uTag = uTag; + pAsn1Core->uRealTag = uTag; + return VINF_SUCCESS; +} + + +RTDECL(void) RTAsn1Core_ResetImplict(PRTASN1CORE pThis) +{ + AssertPtr(pThis); + if (pThis->fFlags & RTASN1CORE_F_TAG_IMPLICIT) + { + pThis->fFlags &= ~RTASN1CORE_F_TAG_IMPLICIT; + pThis->uTag = pThis->uRealTag; + pThis->fClass = pThis->fRealClass; + } +} + + +RTDECL(int) RTAsn1Core_InitEx(PRTASN1CORE pAsn1Core, uint32_t uTag, uint8_t fClass, PCRTASN1COREVTABLE pOps, uint32_t fFlags) +{ + pAsn1Core->uTag = uTag; + pAsn1Core->fClass = fClass; + pAsn1Core->uRealTag = uTag; + pAsn1Core->fRealClass = fClass; + pAsn1Core->cbHdr = 0; + pAsn1Core->cb = 0; + pAsn1Core->fFlags = fFlags; + pAsn1Core->uData.pv = NULL; + pAsn1Core->pOps = pOps; + return VINF_SUCCESS; +} + + +RTDECL(int) RTAsn1Core_InitDefault(PRTASN1CORE pAsn1Core, uint32_t uTag, uint8_t fClass) +{ + return RTAsn1Core_InitEx(pAsn1Core, uTag, fClass, NULL, RTASN1CORE_F_DEFAULT); +} + + +static int rtAsn1Core_CloneEx(PRTASN1CORE pThis, PCRTASN1CORE pSrc, PCRTASN1ALLOCATORVTABLE pAllocator, bool fCopyContent) +{ + Assert(RTASN1CORE_IS_PRESENT(pSrc)); + pThis->uTag = pSrc->uTag; + pThis->fClass = pSrc->fClass; + pThis->uRealTag = pSrc->uRealTag; + pThis->fRealClass = pSrc->fRealClass; + pThis->cbHdr = pSrc->cbHdr; + pThis->fFlags = pSrc->fFlags & ~(RTASN1CORE_F_ALLOCATED_CONTENT | RTASN1CORE_F_DECODED_CONTENT); + pThis->pOps = pSrc->pOps; + pThis->cb = 0; + pThis->uData.pv = NULL; + if (pSrc->cb) + { + if (!fCopyContent) + pThis->cb = pSrc->cb; + else + { + int rc = RTAsn1ContentDup(pThis, pSrc->uData.pv, pSrc->cb, pAllocator); + if (RT_FAILURE(rc)) + { + RT_ZERO(*pThis); + return rc; + } + Assert(pThis->cb == pSrc->cb); + AssertPtr(pThis->uData.pv); + } + } + return VINF_SUCCESS; +} + + +RTDECL(int) RTAsn1Core_CloneContent(PRTASN1CORE pThis, PCRTASN1CORE pSrc, PCRTASN1ALLOCATORVTABLE pAllocator) +{ + return rtAsn1Core_CloneEx(pThis, pSrc, pAllocator, true /*fConpyContent*/); +} + + +RTDECL(int) RTAsn1Core_CloneNoContent(PRTASN1CORE pThis, PCRTASN1CORE pSrc) +{ + return rtAsn1Core_CloneEx(pThis, pSrc, NULL, false /*fConpyContent*/); +} + + +RTDECL(int) RTAsn1Core_CompareEx(PCRTASN1CORE pLeft, PCRTASN1CORE pRight, bool fIgnoreTagAndClass) +{ + int iDiff; + if (RTASN1CORE_IS_PRESENT(pLeft)) + { + if (RTASN1CORE_IS_PRESENT(pRight)) + { + iDiff = memcmp(pLeft->uData.pv, pRight->uData.pv, RT_MIN(pLeft->cb, pRight->cb)); + if (!iDiff) + { + if (pLeft->cb != pRight->cb) + iDiff = pLeft->cb < pRight->cb ? -1 : 1; + else if (!fIgnoreTagAndClass) + { + if (pLeft->uTag != pRight->uTag) + iDiff = pLeft->uTag < pRight->uTag ? -1 : 1; + else if (pLeft->fClass != pRight->fClass) + iDiff = pLeft->fClass < pRight->fClass ? -1 : 1; + } + } + else + iDiff = iDiff < 0 ? -1 : 1; + } + else + iDiff = -1; + } + else + iDiff = 0 - (int)RTASN1CORE_IS_PRESENT(pRight); + return iDiff; +} + + + +/* + * ASN.1 Core - Standard Methods. + * + * Note! Children of the ASN.1 Core doesn't normally call these, they are for + * when RTASN1CORE is used as a member type. + */ + +RT_DECL_DATA_CONST(RTASN1COREVTABLE const) g_RTAsn1Core_Vtable = +{ + "RTAsn1Core", + sizeof(RTASN1CORE), + UINT8_MAX, + UINT8_MAX, + 0, + RTAsn1Core_Delete, + RTAsn1Core_Enum, + (PFNRTASN1COREVTCLONE)RTAsn1Core_Clone, + (PFNRTASN1COREVTCOMPARE)RTAsn1Core_Compare, + (PFNRTASN1COREVTCHECKSANITY)RTAsn1Core_CheckSanity, + NULL, + NULL +}; + + +RTDECL(int) RTAsn1Core_Init(PRTASN1CORE pThis, PCRTASN1ALLOCATORVTABLE pAllocator) +{ + return RTAsn1Core_InitEx(pThis, 0, ASN1_TAGCLASS_CONTEXT | ASN1_TAGFLAG_PRIMITIVE, + &g_RTAsn1Core_Vtable, RTASN1CORE_F_PRESENT); +} + + +RTDECL(int) RTAsn1Core_Clone(PRTASN1CORE pThis, PCRTASN1CORE pSrc, PCRTASN1ALLOCATORVTABLE pAllocator) +{ + int rc; + RT_ZERO(*pThis); + if (RTASN1CORE_IS_PRESENT(pSrc)) + { + Assert(pSrc->pOps == &g_RTAsn1Core_Vtable); + + rc = RTAsn1Core_CloneContent(pThis, pSrc, pAllocator); + } + else + rc = VINF_SUCCESS; + return rc; +} + + +RTDECL(void) RTAsn1Core_Delete(PRTASN1CORE pThis) +{ + if (pThis && RTASN1CORE_IS_PRESENT(pThis)) + { + Assert(pThis->pOps == &g_RTAsn1Core_Vtable); + + RTAsn1ContentFree(pThis); + RT_ZERO(*pThis); + } +} + + +RTDECL(int) RTAsn1Core_Enum(PRTASN1CORE pThis, PFNRTASN1ENUMCALLBACK pfnCallback, uint32_t uDepth, void *pvUser) +{ + /* We have no children to enumerate. */ + Assert(pThis && (!RTASN1CORE_IS_PRESENT(pThis) || pThis->pOps == &g_RTAsn1Core_Vtable)); + NOREF(pThis); + NOREF(pfnCallback); + NOREF(uDepth); + NOREF(pvUser); + return VINF_SUCCESS; +} + + +RTDECL(int) RTAsn1Core_Compare(PCRTASN1CORE pLeft, PCRTASN1CORE pRight) +{ + Assert(pLeft && (!RTASN1CORE_IS_PRESENT(pLeft) || pLeft->pOps == &g_RTAsn1Core_Vtable)); + Assert(pRight && (!RTASN1CORE_IS_PRESENT(pRight) || pRight->pOps == &g_RTAsn1Core_Vtable)); + + return RTAsn1Core_CompareEx(pLeft, pRight, false /*fIgnoreTagAndClass*/); +} + + +RTDECL(int) RTAsn1Core_CheckSanity(PCRTASN1CORE pThis, uint32_t fFlags, PRTERRINFO pErrInfo, const char *pszErrorTag) +{ + /* We can only check that it's present. */ + if (!RTAsn1Core_IsPresent(pThis)) + return RTErrInfoSetF(pErrInfo, VERR_ASN1_NOT_PRESENT, "%s: Missing (RTASN1CORE).", pszErrorTag); + return VINF_SUCCESS; +} + + +/* + * Generate code for the associated collection types. + */ +#define RTASN1TMPL_TEMPLATE_FILE "../common/asn1/asn1-ut-core-template.h" +#include +#include +#include +#include + diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Runtime/common/asn1/asn1-ut-core-decode.cpp virtualbox-4.1.44-dfsg/src/VBox/Runtime/common/asn1/asn1-ut-core-decode.cpp --- virtualbox-4.1.12-dfsg/src/VBox/Runtime/common/asn1/asn1-ut-core-decode.cpp 1970-01-01 00:00:00.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Runtime/common/asn1/asn1-ut-core-decode.cpp 2015-11-11 15:08:58.000000000 +0000 @@ -0,0 +1,57 @@ +/* $Id: asn1-ut-core-decode.cpp $ */ +/** @file + * IPRT - ASN.1, Generic Core Type, Decoding. + */ + +/* + * Copyright (C) 2006-2014 Oracle Corporation + * + * This file is part of VirtualBox Open Source Edition (OSE), as + * available from http://www.virtualbox.org. This file is free software; + * you can redistribute it and/or modify it under the terms of the GNU + * General Public License (GPL) as published by the Free Software + * Foundation, in version 2 as it comes in the "COPYING" file of the + * VirtualBox OSE distribution. VirtualBox OSE is distributed in the + * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind. + * + * The contents of this file may alternatively be used under the terms + * of the Common Development and Distribution License Version 1.0 + * (CDDL) only, as it comes in the "COPYING.CDDL" file of the + * VirtualBox OSE distribution, in which case the provisions of the + * CDDL are applicable instead of those of the GPL. + * + * You may elect to license modified versions of this file under the + * terms and conditions of either the GPL or the CDDL or both. + */ + +/******************************************************************************* +* Header Files * +*******************************************************************************/ +#include "internal/iprt.h" +#include + +#include +#include + + +RTDECL(int) RTAsn1Core_DecodeAsn1(PRTASN1CURSOR pCursor, uint32_t fFlags, PRTASN1CORE pThis, const char *pszErrorTag) +{ + int rc = RTAsn1CursorReadHdr(pCursor, pThis, pszErrorTag); + if (RT_SUCCESS(rc)) + { + RTAsn1CursorSkip(pCursor, pThis->cb); + pThis->pOps = &g_RTAsn1Core_Vtable; + return VINF_SUCCESS; + } + RT_ZERO(*pThis); + return rc; +} + + +/* + * Generate code for the associated collection types. + */ +#define RTASN1TMPL_TEMPLATE_FILE "../common/asn1/asn1-ut-core-template.h" +#include +#include + diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Runtime/common/asn1/asn1-ut-core-template.h virtualbox-4.1.44-dfsg/src/VBox/Runtime/common/asn1/asn1-ut-core-template.h --- virtualbox-4.1.12-dfsg/src/VBox/Runtime/common/asn1/asn1-ut-core-template.h 1970-01-01 00:00:00.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Runtime/common/asn1/asn1-ut-core-template.h 2015-11-11 15:08:58.000000000 +0000 @@ -0,0 +1,45 @@ +/* $Id: asn1-ut-core-template.h $ */ +/** @file + * IPRT - ASN.1, Generic Core Type, Collection Type Template. + */ + +/* + * Copyright (C) 2006-2014 Oracle Corporation + * + * This file is part of VirtualBox Open Source Edition (OSE), as + * available from http://www.virtualbox.org. This file is free software; + * you can redistribute it and/or modify it under the terms of the GNU + * General Public License (GPL) as published by the Free Software + * Foundation, in version 2 as it comes in the "COPYING" file of the + * VirtualBox OSE distribution. VirtualBox OSE is distributed in the + * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind. + * + * The contents of this file may alternatively be used under the terms + * of the Common Development and Distribution License Version 1.0 + * (CDDL) only, as it comes in the "COPYING.CDDL" file of the + * VirtualBox OSE distribution, in which case the provisions of the + * CDDL are applicable instead of those of the GPL. + * + * You may elect to license modified versions of this file under the + * terms and conditions of either the GPL or the CDDL or both. + */ + +#define RTASN1TMPL_DECL RTDECL + +#define RTASN1TMPL_TYPE RTASN1SEQOFCORES +#define RTASN1TMPL_EXT_NAME RTAsn1SeqOfCores +#define RTASN1TMPL_INT_NAME rtAsn1SeqOfCores +RTASN1TMPL_SEQ_OF(RTASN1CORE, RTAsn1Core); +#undef RTASN1TMPL_TYPE +#undef RTASN1TMPL_EXT_NAME +#undef RTASN1TMPL_INT_NAME + + +#define RTASN1TMPL_TYPE RTASN1SETOFCORES +#define RTASN1TMPL_EXT_NAME RTAsn1SetOfCores +#define RTASN1TMPL_INT_NAME rtAsn1SetOfCores +RTASN1TMPL_SET_OF(RTASN1CORE, RTAsn1Core); +#undef RTASN1TMPL_TYPE +#undef RTASN1TMPL_EXT_NAME +#undef RTASN1TMPL_INT_NAME + diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Runtime/common/asn1/asn1-ut-dyntype.cpp virtualbox-4.1.44-dfsg/src/VBox/Runtime/common/asn1/asn1-ut-dyntype.cpp --- virtualbox-4.1.12-dfsg/src/VBox/Runtime/common/asn1/asn1-ut-dyntype.cpp 1970-01-01 00:00:00.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Runtime/common/asn1/asn1-ut-dyntype.cpp 2015-11-11 15:08:58.000000000 +0000 @@ -0,0 +1,169 @@ +/* $Id: asn1-ut-dyntype.cpp $ */ +/** @file + * IPRT - ASN.1, Basic Operations. + */ + +/* + * Copyright (C) 2006-2014 Oracle Corporation + * + * This file is part of VirtualBox Open Source Edition (OSE), as + * available from http://www.virtualbox.org. This file is free software; + * you can redistribute it and/or modify it under the terms of the GNU + * General Public License (GPL) as published by the Free Software + * Foundation, in version 2 as it comes in the "COPYING" file of the + * VirtualBox OSE distribution. VirtualBox OSE is distributed in the + * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind. + * + * The contents of this file may alternatively be used under the terms + * of the Common Development and Distribution License Version 1.0 + * (CDDL) only, as it comes in the "COPYING.CDDL" file of the + * VirtualBox OSE distribution, in which case the provisions of the + * CDDL are applicable instead of those of the GPL. + * + * You may elect to license modified versions of this file under the + * terms and conditions of either the GPL or the CDDL or both. + */ + +/******************************************************************************* +* Header Files * +*******************************************************************************/ +#include "internal/iprt.h" +#include + +#include +#include + +#include + + +/* + * ASN.1 dynamic type union - Standard Methods. + */ + + +RTDECL(int) RTAsn1DynType_Init(PRTASN1DYNTYPE pThis, PCRTASN1ALLOCATORVTABLE pAllocator) +{ + RT_ZERO(*pThis); + pThis->enmType = RTASN1TYPE_NOT_PRESENT; + return VINF_SUCCESS; +} + + +RTDECL(int) RTAsn1DynType_Clone(PRTASN1DYNTYPE pThis, PCRTASN1DYNTYPE pSrc, PCRTASN1ALLOCATORVTABLE pAllocator) +{ + AssertPtr(pSrc); AssertPtr(pThis); AssertPtr(pAllocator); + RT_ZERO(*pThis); + if (RTAsn1DynType_IsPresent(pSrc)) + { + int rc; + switch (pSrc->enmType) + { + case RTASN1TYPE_CORE: rc = RTAsn1Core_Clone(&pThis->u.Core, &pSrc->u.Core, pAllocator); break; + case RTASN1TYPE_NULL: rc = RTAsn1Null_Clone(&pThis->u.Asn1Null, &pSrc->u.Asn1Null, pAllocator); break; + case RTASN1TYPE_INTEGER: rc = RTAsn1Integer_Clone(&pThis->u.Integer, &pSrc->u.Integer, pAllocator); break; + case RTASN1TYPE_BOOLEAN: rc = RTAsn1Boolean_Clone(&pThis->u.Boolean, &pSrc->u.Boolean, pAllocator); break; + case RTASN1TYPE_STRING: rc = RTAsn1String_Clone(&pThis->u.String, &pSrc->u.String, pAllocator); break; + case RTASN1TYPE_OCTET_STRING: rc = RTAsn1OctetString_Clone(&pThis->u.OctetString, &pSrc->u.OctetString, pAllocator); break; + case RTASN1TYPE_BIT_STRING: rc = RTAsn1BitString_Clone(&pThis->u.BitString, &pSrc->u.BitString, pAllocator); break; + case RTASN1TYPE_TIME: rc = RTAsn1Time_Clone(&pThis->u.Time, &pSrc->u.Time, pAllocator); break; +#if 0 + case RTASN1TYPE_SEQUENCE_CORE: rc = VERR_NOT_SUPPORTED; //rc = RTAsn1SequenceCore_Clone(&pThis->u.SeqCore, &pSrc->u.SeqCore, pAllocator); break; + case RTASN1TYPE_SET_CORE: rc = VERR_NOT_SUPPORTED; //rc = RTAsn1SetCore_Clone(&pThis->u.SetCore, &pSrc->u.SetCore, pAllocator); break; +#endif + case RTASN1TYPE_OBJID: rc = RTAsn1ObjId_Clone(&pThis->u.ObjId, &pSrc->u.ObjId, pAllocator); break; + default: + AssertFailedReturn(VERR_ASN1_INTERNAL_ERROR_2); + } + if (RT_FAILURE(rc)) + { + RT_ZERO(*pThis); + return rc; + } + pThis->enmType = pSrc->enmType; + } + else + pThis->enmType = RTASN1TYPE_NOT_PRESENT; + return VINF_SUCCESS; +} + + +RTDECL(void) RTAsn1DynType_Delete(PRTASN1DYNTYPE pThis) +{ + if ( pThis + && RTAsn1DynType_IsPresent(pThis)) + { + if ( pThis->u.Core.pOps + && pThis->u.Core.pOps->pfnDtor) + pThis->u.Core.pOps->pfnDtor(&pThis->u.Core); + RT_ZERO(*pThis); + } +} + + +RTDECL(int) RTAsn1DynType_Enum(PRTASN1DYNTYPE pThis, PFNRTASN1ENUMCALLBACK pfnCallback, uint32_t uDepth, void *pvUser) +{ + if ( pThis + && RTAsn1DynType_IsPresent(pThis)) + { + if ( pThis->u.Core.pOps + && pThis->u.Core.pOps->pfnEnum) + return pThis->u.Core.pOps->pfnEnum(&pThis->u.Core, pfnCallback, uDepth, pvUser); + } + return VINF_SUCCESS; +} + + +RTDECL(int) RTAsn1DynType_Compare(PCRTASN1DYNTYPE pLeft, PCRTASN1DYNTYPE pRight) +{ + if (RTAsn1DynType_IsPresent(pLeft) && RTAsn1DynType_IsPresent(pRight)) + { + if (pLeft->enmType != pRight->enmType) + return pLeft->enmType < pRight->enmType ? -1 : 1; + + switch (pLeft->enmType) + { + case RTASN1TYPE_CORE: return RTAsn1Core_Compare(&pLeft->u.Core, &pRight->u.Core); break; + case RTASN1TYPE_NULL: return RTAsn1Null_Compare(&pLeft->u.Asn1Null, &pRight->u.Asn1Null); + case RTASN1TYPE_INTEGER: return RTAsn1Integer_Compare(&pLeft->u.Integer, &pRight->u.Integer); + case RTASN1TYPE_BOOLEAN: return RTAsn1Boolean_Compare(&pLeft->u.Boolean, &pRight->u.Boolean); + case RTASN1TYPE_STRING: return RTAsn1String_Compare(&pLeft->u.String, &pRight->u.String); + case RTASN1TYPE_OCTET_STRING: return RTAsn1OctetString_Compare(&pLeft->u.OctetString, &pRight->u.OctetString); + case RTASN1TYPE_BIT_STRING: return RTAsn1BitString_Compare(&pLeft->u.BitString, &pRight->u.BitString); + case RTASN1TYPE_TIME: return RTAsn1Time_Compare(&pLeft->u.Time, &pRight->u.Time); + case RTASN1TYPE_OBJID: return RTAsn1ObjId_Compare(&pLeft->u.ObjId, &pRight->u.ObjId); + default: AssertFailedReturn(-1); + } + } + else + return (int)RTAsn1DynType_IsPresent(pLeft) - (int)RTAsn1DynType_IsPresent(pRight); +} + + +RTDECL(int) RTAsn1DynType_CheckSanity(PCRTASN1DYNTYPE pThis, uint32_t fFlags, PRTERRINFO pErrInfo, const char *pszErrorTag) +{ + if (RT_UNLIKELY(!RTAsn1DynType_IsPresent(pThis))) + return RTErrInfoSetF(pErrInfo, VERR_ASN1_NOT_PRESENT, "%s: Missing (DYNTYPE).", pszErrorTag); + + int rc; + switch (pThis->enmType) + { + case RTASN1TYPE_CORE: rc = RTAsn1Core_CheckSanity(&pThis->u.Core, fFlags, pErrInfo, pszErrorTag); break; + case RTASN1TYPE_NULL: rc = RTAsn1Null_CheckSanity(&pThis->u.Asn1Null, fFlags, pErrInfo, pszErrorTag); break; + case RTASN1TYPE_INTEGER: rc = RTAsn1Integer_CheckSanity(&pThis->u.Integer, fFlags, pErrInfo, pszErrorTag); break; + case RTASN1TYPE_BOOLEAN: rc = RTAsn1Boolean_CheckSanity(&pThis->u.Boolean, fFlags, pErrInfo, pszErrorTag); break; + case RTASN1TYPE_STRING: rc = RTAsn1String_CheckSanity(&pThis->u.String, fFlags, pErrInfo, pszErrorTag); break; + case RTASN1TYPE_OCTET_STRING: rc = RTAsn1OctetString_CheckSanity(&pThis->u.OctetString, fFlags, pErrInfo, pszErrorTag); break; + case RTASN1TYPE_BIT_STRING: rc = RTAsn1BitString_CheckSanity(&pThis->u.BitString, fFlags, pErrInfo, pszErrorTag); break; + case RTASN1TYPE_TIME: rc = RTAsn1Time_CheckSanity(&pThis->u.Time, fFlags, pErrInfo, pszErrorTag); break; +#if 0 + case RTASN1TYPE_SEQUENCE_CORE: rc = VINF_SUCCESS; //rc = RTAsn1SequenceCore_CheckSanity(&pThis->u.SeqCore, fFlags, pErrInfo, pszErrorTag); break; + case RTASN1TYPE_SET_CORE: rc = VINF_SUCCESS; //rc = RTAsn1SetCore_CheckSanity(&pThis->u.SetCore, fFlags, pErrInfo, pszErrorTag); break; +#endif + case RTASN1TYPE_OBJID: rc = RTAsn1ObjId_CheckSanity(&pThis->u.ObjId, fFlags, pErrInfo, pszErrorTag); break; + default: + AssertFailedReturn(VERR_ASN1_INTERNAL_ERROR_2); + } + + return rc; +} + diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Runtime/common/asn1/asn1-ut-dyntype-decode.cpp virtualbox-4.1.44-dfsg/src/VBox/Runtime/common/asn1/asn1-ut-dyntype-decode.cpp --- virtualbox-4.1.12-dfsg/src/VBox/Runtime/common/asn1/asn1-ut-dyntype-decode.cpp 1970-01-01 00:00:00.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Runtime/common/asn1/asn1-ut-dyntype-decode.cpp 2015-11-11 15:08:58.000000000 +0000 @@ -0,0 +1,242 @@ +/* $Id: asn1-ut-dyntype-decode.cpp $ */ +/** @file + * IPRT - ASN.1, Dynamic Type, Decoding. + */ + +/* + * Copyright (C) 2006-2014 Oracle Corporation + * + * This file is part of VirtualBox Open Source Edition (OSE), as + * available from http://www.virtualbox.org. This file is free software; + * you can redistribute it and/or modify it under the terms of the GNU + * General Public License (GPL) as published by the Free Software + * Foundation, in version 2 as it comes in the "COPYING" file of the + * VirtualBox OSE distribution. VirtualBox OSE is distributed in the + * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind. + * + * The contents of this file may alternatively be used under the terms + * of the Common Development and Distribution License Version 1.0 + * (CDDL) only, as it comes in the "COPYING.CDDL" file of the + * VirtualBox OSE distribution, in which case the provisions of the + * CDDL are applicable instead of those of the GPL. + * + * You may elect to license modified versions of this file under the + * terms and conditions of either the GPL or the CDDL or both. + */ + +/******************************************************************************* +* Header Files * +*******************************************************************************/ +#include "internal/iprt.h" +#include + +#include +#include + +#include + + + +RTDECL(int) RTAsn1DynType_DecodeAsn1(PRTASN1CURSOR pCursor, uint32_t fFlags, PRTASN1DYNTYPE pDynType, const char *pszErrorTag) +{ + RT_ZERO(*pDynType); + + Assert(!(fFlags & RTASN1CURSOR_GET_F_IMPLICIT)); + uint32_t cbSavedLeft = pCursor->cbLeft; + uint8_t const *pbSavedCur = pCursor->pbCur; + + int rc = RTAsn1CursorReadHdr(pCursor, &pDynType->u.Core, pszErrorTag); + if (RT_SUCCESS(rc)) + { + pDynType->enmType = RTASN1TYPE_CORE; + + if (pDynType->u.Core.fClass == (ASN1_TAGCLASS_UNIVERSAL | ASN1_TAGFLAG_PRIMITIVE)) + { + switch (pDynType->u.Core.uTag) + { + case ASN1_TAG_BOOLEAN: + pDynType->enmType = RTASN1TYPE_BOOLEAN; + break; + case ASN1_TAG_INTEGER: + pDynType->enmType = RTASN1TYPE_INTEGER; + break; + //case ASN1_TAG_ENUMERATED: + // pDynType->enmType = RTASN1TYPE_ENUMERATED; + // break; + //case ASN1_TAG_REAL: + // pDynType->enmType = RTASN1TYPE_REAL; + // break; + case ASN1_TAG_BIT_STRING: + pDynType->enmType = RTASN1TYPE_BIT_STRING; + break; + case ASN1_TAG_OCTET_STRING: + pDynType->enmType = RTASN1TYPE_OCTET_STRING; + break; + case ASN1_TAG_NULL: + pDynType->enmType = RTASN1TYPE_NULL; + break; + case ASN1_TAG_SEQUENCE: + RT_ZERO(*pDynType); + return RTAsn1CursorSetInfo(pCursor, VERR_ASN1_DYNTYPE_BAD_TAG, "ASN.1 SEQUENCE shall be constructed."); + case ASN1_TAG_SET: + RT_ZERO(*pDynType); + return RTAsn1CursorSetInfo(pCursor, VERR_ASN1_DYNTYPE_BAD_TAG, "ASN.1 SET shall be constructed."); + case ASN1_TAG_OID: + pDynType->enmType = RTASN1TYPE_OBJID; + break; + //case ASN1_TAG_RELATIVE_OID: + // pDynType->enmType = RTASN1TYPE_RELATIVE_OBJID; + // break; + case ASN1_TAG_UTC_TIME: + case ASN1_TAG_GENERALIZED_TIME: + pDynType->enmType = RTASN1TYPE_TIME; + break; + case ASN1_TAG_UTF8_STRING: + case ASN1_TAG_NUMERIC_STRING: + case ASN1_TAG_PRINTABLE_STRING: + case ASN1_TAG_T61_STRING: + case ASN1_TAG_VIDEOTEX_STRING: + case ASN1_TAG_IA5_STRING: + case ASN1_TAG_GRAPHIC_STRING: + case ASN1_TAG_VISIBLE_STRING: + case ASN1_TAG_UNIVERSAL_STRING: + case ASN1_TAG_GENERAL_STRING: + case ASN1_TAG_BMP_STRING: + pDynType->enmType = RTASN1TYPE_STRING; + break; + //case ASN1_TAG_CHARACTER_STRING: + // pDynType->enmType = RTASN1TYPE_CHARACTER_STRING; + // break; + + default: + RT_ZERO(*pDynType); + return RTAsn1CursorSetInfo(pCursor, VERR_ASN1_DYNTYPE_TAG_NOT_IMPL, + "Primitive tag %u (%#x) not implemented.", + pDynType->u.Core.uTag, pDynType->u.Core.uTag); + } + } + else if (pDynType->u.Core.fClass == (ASN1_TAGCLASS_UNIVERSAL | ASN1_TAGFLAG_CONSTRUCTED)) + switch (pDynType->u.Core.uTag) + { + case ASN1_TAG_BOOLEAN: + RT_ZERO(*pDynType); + return RTAsn1CursorSetInfo(pCursor, VERR_ASN1_DYNTYPE_BAD_TAG, "ASN.1 BOOLEAN shall be primitive."); + case ASN1_TAG_INTEGER: + RT_ZERO(*pDynType); + return RTAsn1CursorSetInfo(pCursor, VERR_ASN1_DYNTYPE_BAD_TAG, "ASN.1 BOOLEAN shall be primitive."); + case ASN1_TAG_ENUMERATED: + RT_ZERO(*pDynType); + return RTAsn1CursorSetInfo(pCursor, VERR_ASN1_DYNTYPE_BAD_TAG, "ASN.1 ENUMERATED shall be primitive."); + case ASN1_TAG_REAL: + RT_ZERO(*pDynType); + return RTAsn1CursorSetInfo(pCursor, VERR_ASN1_DYNTYPE_BAD_TAG, "ASN.1 REAL shall be primitive."); + case ASN1_TAG_BIT_STRING: + pDynType->enmType = RTASN1TYPE_BIT_STRING; + break; + case ASN1_TAG_OCTET_STRING: + pDynType->enmType = RTASN1TYPE_OCTET_STRING; + break; + case ASN1_TAG_NULL: + RT_ZERO(*pDynType); + return RTAsn1CursorSetInfo(pCursor, VERR_ASN1_DYNTYPE_BAD_TAG, "ASN.1 NULL shall be primitive."); + case ASN1_TAG_SEQUENCE: +#if 0 + pDynType->enmType = RTASN1TYPE_SEQUENCE_CORE; + pDynType->u.SeqCore.Asn1Core.fFlags |= RTASN1CORE_F_PRIMITE_TAG_STRUCT; + RTAsn1CursorSkip(pCursor, pDynType->u.Core.cb); + return VINF_SUCCESS; +#else + pDynType->enmType = RTASN1TYPE_CORE; +#endif + break; + case ASN1_TAG_SET: +#if 0 + pDynType->enmType = RTASN1TYPE_SET_CORE; + pDynType->u.SeqCore.Asn1Core.fFlags |= RTASN1CORE_F_PRIMITE_TAG_STRUCT; + RTAsn1CursorSkip(pCursor, pDynType->u.Core.cb); + return VINF_SUCCESS; +#else + pDynType->enmType = RTASN1TYPE_CORE; +#endif + break; + case ASN1_TAG_OID: + RT_ZERO(*pDynType); + return RTAsn1CursorSetInfo(pCursor, VERR_ASN1_DYNTYPE_BAD_TAG, "ASN.1 OBJECT ID shall be primitive."); + case ASN1_TAG_RELATIVE_OID: + RT_ZERO(*pDynType); + return RTAsn1CursorSetInfo(pCursor, VERR_ASN1_DYNTYPE_BAD_TAG, "ASN.1 RELATIVE OID shall be primitive."); + + case ASN1_TAG_UTF8_STRING: + case ASN1_TAG_NUMERIC_STRING: + case ASN1_TAG_PRINTABLE_STRING: + case ASN1_TAG_T61_STRING: + case ASN1_TAG_VIDEOTEX_STRING: + case ASN1_TAG_IA5_STRING: + case ASN1_TAG_GRAPHIC_STRING: + case ASN1_TAG_VISIBLE_STRING: + case ASN1_TAG_UNIVERSAL_STRING: + case ASN1_TAG_GENERAL_STRING: + case ASN1_TAG_BMP_STRING: + pDynType->enmType = RTASN1TYPE_STRING; + break; + //case ASN1_TAG_CHARACTER_STRING: + // pDynType->enmType = RTASN1TYPE_CHARACTER_STRING; + // break; + + default: + RT_ZERO(*pDynType); + return RTAsn1CursorSetInfo(pCursor, VERR_ASN1_DYNTYPE_TAG_NOT_IMPL, + "Constructed tag %u (%#x) not implemented.", + pDynType->u.Core.uTag, pDynType->u.Core.uTag); + } + else + { + RTAsn1CursorSkip(pCursor, pDynType->u.Core.cb); + return VINF_SUCCESS; + } + + /* + * Restore the cursor and redo with specific type. + */ + pCursor->pbCur = pbSavedCur; + pCursor->cbLeft = cbSavedLeft; + + switch (pDynType->enmType) + { + case RTASN1TYPE_INTEGER: + rc = RTAsn1Integer_DecodeAsn1(pCursor, 0, &pDynType->u.Integer, pszErrorTag); + break; + case RTASN1TYPE_BOOLEAN: + rc = RTAsn1Boolean_DecodeAsn1(pCursor, 0, &pDynType->u.Boolean, pszErrorTag); + break; + case RTASN1TYPE_OBJID: + rc = RTAsn1ObjId_DecodeAsn1(pCursor, 0, &pDynType->u.ObjId, pszErrorTag); + break; + case RTASN1TYPE_BIT_STRING: + rc = RTAsn1BitString_DecodeAsn1(pCursor, 0, &pDynType->u.BitString, pszErrorTag); + break; + case RTASN1TYPE_OCTET_STRING: + rc = RTAsn1OctetString_DecodeAsn1(pCursor, 0, &pDynType->u.OctetString, pszErrorTag); + break; + case RTASN1TYPE_NULL: + rc = RTAsn1Null_DecodeAsn1(pCursor, 0, &pDynType->u.Asn1Null, pszErrorTag); + break; + case RTASN1TYPE_TIME: + rc = RTAsn1Time_DecodeAsn1(pCursor, 0, &pDynType->u.Time, pszErrorTag); + break; + case RTASN1TYPE_STRING: + rc = RTAsn1String_DecodeAsn1(pCursor, 0, &pDynType->u.String, pszErrorTag); + break; + case RTASN1TYPE_CORE: + rc = RTAsn1Core_DecodeAsn1(pCursor, 0, &pDynType->u.Core, pszErrorTag); + break; + default: + AssertFailedReturn(VERR_INTERNAL_ERROR_4); + } + if (RT_SUCCESS(rc)) + return rc; + } + RT_ZERO(*pDynType); + return rc; +} + diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Runtime/common/asn1/asn1-ut-integer.cpp virtualbox-4.1.44-dfsg/src/VBox/Runtime/common/asn1/asn1-ut-integer.cpp --- virtualbox-4.1.12-dfsg/src/VBox/Runtime/common/asn1/asn1-ut-integer.cpp 1970-01-01 00:00:00.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Runtime/common/asn1/asn1-ut-integer.cpp 2015-11-11 15:08:58.000000000 +0000 @@ -0,0 +1,451 @@ +/* $Id: asn1-ut-integer.cpp $ */ +/** @file + * IPRT - ASN.1, INTEGER Type. + */ + +/* + * Copyright (C) 2006-2014 Oracle Corporation + * + * This file is part of VirtualBox Open Source Edition (OSE), as + * available from http://www.virtualbox.org. This file is free software; + * you can redistribute it and/or modify it under the terms of the GNU + * General Public License (GPL) as published by the Free Software + * Foundation, in version 2 as it comes in the "COPYING" file of the + * VirtualBox OSE distribution. VirtualBox OSE is distributed in the + * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind. + * + * The contents of this file may alternatively be used under the terms + * of the Common Development and Distribution License Version 1.0 + * (CDDL) only, as it comes in the "COPYING.CDDL" file of the + * VirtualBox OSE distribution, in which case the provisions of the + * CDDL are applicable instead of those of the GPL. + * + * You may elect to license modified versions of this file under the + * terms and conditions of either the GPL or the CDDL or both. + */ + +/******************************************************************************* +* Header Files * +*******************************************************************************/ +#include "internal/iprt.h" +#include + +#include +#include +#include + +#include + + +/******************************************************************************* +* Global Variables * +*******************************************************************************/ +/** Fixed on-byte constants for small numbers. + * Good for structure version values and such. */ +static const uint8_t g_abSmall[] = +{ + 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, + 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, +}; + + + +/* + * ASN.1 INTEGER - Special Methods. + */ + + +/** + * Updates the native value we keep in RTASN1INTEGER::uValue. + * + * @param pThis The integer. + */ +static void rtAsn1Integer_UpdateNativeValue(PRTASN1INTEGER pThis) +{ + uint32_t offLast = pThis->Asn1Core.cb - 1; + switch (pThis->Asn1Core.cb) + { + default: + case 8: pThis->uValue.u |= (uint64_t)pThis->Asn1Core.uData.pu8[offLast - 7] << 56; + case 7: pThis->uValue.u |= (uint64_t)pThis->Asn1Core.uData.pu8[offLast - 6] << 48; + case 6: pThis->uValue.u |= (uint64_t)pThis->Asn1Core.uData.pu8[offLast - 5] << 40; + case 5: pThis->uValue.u |= (uint64_t)pThis->Asn1Core.uData.pu8[offLast - 4] << 32; + case 4: pThis->uValue.u |= (uint32_t)pThis->Asn1Core.uData.pu8[offLast - 3] << 24; + case 3: pThis->uValue.u |= (uint32_t)pThis->Asn1Core.uData.pu8[offLast - 2] << 16; + case 2: pThis->uValue.u |= (uint16_t)pThis->Asn1Core.uData.pu8[offLast - 1] << 8; + case 1: pThis->uValue.u |= pThis->Asn1Core.uData.pu8[offLast]; + } +} + + +RTDECL(int) RTAsn1Integer_InitU64(PRTASN1INTEGER pThis, uint64_t uValue, PCRTASN1ALLOCATORVTABLE pAllocator) +{ + /* + * Initialize the core and the native value. + */ + RTAsn1Core_InitEx(&pThis->Asn1Core, + ASN1_TAG_INTEGER, + ASN1_TAGCLASS_UNIVERSAL | ASN1_TAGFLAG_PRIMITIVE, + &g_RTAsn1Integer_Vtable, + RTASN1CORE_F_PRESENT | RTASN1CORE_F_PRIMITE_TAG_STRUCT); + pThis->uValue.u = uValue; + + /* + * Use one of the constants if possible. + */ + if (uValue < RT_ELEMENTS(g_abSmall)) + { + pThis->Asn1Core.cb = 1; + pThis->Asn1Core.uData.pv = (void *)&g_abSmall[0]; + } + else + { + /* + * Need to turn uValue into a big endian number without any + * unnecessary leading zero bytes. + */ + /* Figure the size. */ + uint32_t cb = 0; + if (uValue <= UINT32_MAX) + { + if (uValue <= UINT16_MAX) + { + if (uValue <= UINT8_MAX) + cb = 1; + else + cb = 2; + } + else + { + if (uValue <= UINT32_C(0xffffff)) + cb = 3; + else + cb = 4; + } + } + else + { + if (uValue <= UINT64_C(0x0000FfffFfffFfff)) + { + if (uValue <= UINT64_C(0x000000ffFfffFfff)) + cb = 5; + else + cb = 6; + } + else + { + if (uValue <= UINT64_C(0x00ffFfffFfffFfff)) + cb = 7; + else + cb = 8; + } + } + + /* Allocate space. */ + int rc = RTAsn1ContentAllocZ(&pThis->Asn1Core, cb, pAllocator); + if (RT_FAILURE(rc)) + { + RT_ZERO(*pThis); + return rc; + } + + /* Serialize the number in MSB order. */ + uint8_t *pb = (uint8_t *)pThis->Asn1Core.uData.pu8; + while (cb-- > 0) + { + pb[cb] = (uint8_t)uValue; + uValue >>= 8; + } + Assert(uValue == 0); + } + return VINF_SUCCESS; +} + + +RTDECL(int) RTAsn1Integer_InitDefault(PRTASN1INTEGER pThis, uint64_t uValue, PCRTASN1ALLOCATORVTABLE pAllocator) +{ + int rc = RTAsn1Integer_InitU64(pThis, uValue, pAllocator); + if (RT_SUCCESS(rc)) + { + pThis->Asn1Core.fFlags &= ~RTASN1CORE_F_PRESENT; + pThis->Asn1Core.fFlags |= RTASN1CORE_F_DEFAULT; + } + return rc; +} + + +RTDECL(int32_t) RTAsn1Integer_UnsignedLastBit(PCRTASN1INTEGER pThis) +{ + AssertReturn(pThis->Asn1Core.fFlags, -1); + uint8_t const *pb = pThis->Asn1Core.uData.pu8; + AssertReturn(pb, -1); + uint32_t cb = pThis->Asn1Core.cb; + AssertReturn(pThis->Asn1Core.cb < (uint32_t)INT32_MAX / 8, -1); + + while (cb-- > 0) + { + uint8_t b = *pb++; + if (b) + { + int32_t iRet = cb * 8; + if (b & 0x80) iRet += 7; + else if (b & 0x40) iRet += 6; + else if (b & 0x20) iRet += 5; + else if (b & 0x10) iRet += 4; + else if (b & 0x08) iRet += 3; + else if (b & 0x04) iRet += 2; + else if (b & 0x02) iRet += 1; + else Assert(b == 0x01); + return iRet; + } + } + return -1; +} + + +RTDECL(int) RTAsn1Integer_UnsignedCompare(PCRTASN1INTEGER pLeft, PCRTASN1INTEGER pRight) +{ + Assert(pLeft && (!RTAsn1Integer_IsPresent(pLeft) || pLeft->Asn1Core.pOps == &g_RTAsn1Integer_Vtable)); + Assert(pRight && (!RTAsn1Integer_IsPresent(pRight) || pRight->Asn1Core.pOps == &g_RTAsn1Integer_Vtable)); + + int iDiff; + if (RTAsn1Integer_IsPresent(pLeft)) + { + if (RTAsn1Integer_IsPresent(pRight)) + { + if ( pLeft->Asn1Core.cb > 8 + || pRight->Asn1Core.cb > 8) + { + uint32_t iLeft = RTAsn1Integer_UnsignedLastBit(pLeft); + uint32_t iRight = RTAsn1Integer_UnsignedLastBit(pRight); + if (iLeft != iRight) + return iLeft < iRight ? -1 : 1; + + uint32_t i = iLeft / 8; + if (i > 8) + { + uint8_t const *pbLeft = &pLeft->Asn1Core.uData.pu8[pLeft->Asn1Core.cb - i - 1]; + uint8_t const *pbRight = &pRight->Asn1Core.uData.pu8[pRight->Asn1Core.cb - i - 1]; + for (;;) + { + if (*pbLeft != *pbRight) + return *pbLeft < *pbRight ? -1 : 1; + if (--i <= 8) + break; + pbLeft++; + pbRight++; + } + } + } + + if (pLeft->uValue.u == pRight->uValue.u) + iDiff = 0; + else + iDiff = pLeft->uValue.u < pRight->uValue.u ? -1 : 1; + } + else + iDiff = -1; + } + else + iDiff = 0 - (int)RTAsn1Integer_IsPresent(pRight); + return iDiff; +} + + +RTDECL(int) RTAsn1Integer_UnsignedCompareWithU64(PCRTASN1INTEGER pThis, uint64_t u64Const) +{ + int iDiff; + if (RTAsn1Integer_IsPresent(pThis)) + { + if (pThis->Asn1Core.cb > 8) + { + int32_t iLast = RTAsn1Integer_UnsignedLastBit(pThis); + if (iLast >= 64) + return 1; + } + + if (pThis->uValue.u == u64Const) + iDiff = 0; + else + iDiff = pThis->uValue.u < u64Const ? -1 : 1; + } + else + iDiff = 1; + return iDiff; +} + + +RTDECL(int) RTAsn1Integer_UnsignedCompareWithU32(PCRTASN1INTEGER pThis, uint32_t u32Const) +{ + int iDiff; + if (RTAsn1Integer_IsPresent(pThis)) + { + if (pThis->Asn1Core.cb > 8) + { + int32_t iLast = RTAsn1Integer_UnsignedLastBit(pThis); + if (iLast >= 32) + return 1; + } + + if (pThis->uValue.u == u32Const) + iDiff = 0; + else + iDiff = pThis->uValue.u < u32Const ? -1 : 1; + } + else + iDiff = 1; + return iDiff; +} + + +RTDECL(int) RTAsn1Integer_ToBigNum(PCRTASN1INTEGER pThis, PRTBIGNUM pBigNum, uint32_t fBigNumInit) +{ + AssertReturn(!(fBigNumInit & ~( RTBIGNUMINIT_F_SENSITIVE | RTBIGNUMINIT_F_UNSIGNED | RTBIGNUMINIT_F_SIGNED + | RTBIGNUMINIT_F_ENDIAN_LITTLE | RTBIGNUMINIT_F_ENDIAN_BIG)), + VERR_INVALID_PARAMETER); + AssertReturn(RTAsn1Integer_IsPresent(pThis), VERR_INVALID_PARAMETER); + + if (!(fBigNumInit & (RTBIGNUMINIT_F_UNSIGNED | RTBIGNUMINIT_F_SIGNED))) + fBigNumInit |= RTBIGNUMINIT_F_SIGNED; + + if (!(fBigNumInit & (RTBIGNUMINIT_F_ENDIAN_BIG | RTBIGNUMINIT_F_ENDIAN_LITTLE))) + fBigNumInit |= RTBIGNUMINIT_F_ENDIAN_BIG; + + return RTBigNumInit(pBigNum, fBigNumInit, pThis->Asn1Core.uData.pv, pThis->Asn1Core.cb); +} + + +RTDECL(int) RTAsn1Integer_FromBigNum(PRTASN1INTEGER pThis, PCRTBIGNUM pBigNum, PCRTASN1ALLOCATORVTABLE pAllocator) +{ + AssertPtr(pThis); AssertPtr(pBigNum); AssertPtr(pAllocator); + + /* Be nice and auto init the object. */ + if (!RTAsn1Integer_IsPresent(pThis)) + RTAsn1Integer_Init(pThis, NULL); + + uint32_t cb = RTBigNumByteWidth(pBigNum); Assert(cb > 0); + int rc = RTAsn1ContentReallocZ(&pThis->Asn1Core, cb, pAllocator); + if (RT_SUCCESS(rc)) + { + Assert(cb == pThis->Asn1Core.cb); + rc = RTBigNumToBytesBigEndian(pBigNum, (void *)pThis->Asn1Core.uData.pv, cb); + if (RT_SUCCESS(rc)) + rtAsn1Integer_UpdateNativeValue(pThis); + } + return rc; +} + + + +/* + * ASN.1 INTEGER - Standard Methods. + */ + +RT_DECL_DATA_CONST(RTASN1COREVTABLE const) g_RTAsn1Integer_Vtable = +{ + "RTAsn1Integer", + sizeof(RTASN1INTEGER), + ASN1_TAG_INTEGER, + ASN1_TAGCLASS_UNIVERSAL | ASN1_TAGFLAG_PRIMITIVE, + 0, + (PFNRTASN1COREVTDTOR)RTAsn1Integer_Delete, + NULL, + (PFNRTASN1COREVTCLONE)RTAsn1Integer_Clone, + (PFNRTASN1COREVTCOMPARE)RTAsn1Integer_Compare, + (PFNRTASN1COREVTCHECKSANITY)RTAsn1Integer_CheckSanity, + NULL, + NULL +}; + + +RTDECL(int) RTAsn1Integer_Init(PRTASN1INTEGER pThis, PCRTASN1ALLOCATORVTABLE pAllocator) +{ + RTAsn1Core_InitEx(&pThis->Asn1Core, + ASN1_TAG_INTEGER, + ASN1_TAGCLASS_UNIVERSAL | ASN1_TAGFLAG_PRIMITIVE, + &g_RTAsn1Integer_Vtable, + RTASN1CORE_F_PRESENT | RTASN1CORE_F_PRIMITE_TAG_STRUCT); + pThis->uValue.u = 1; + pThis->Asn1Core.cb = 1; + pThis->Asn1Core.uData.pv = (void *)&g_abSmall[0]; + return VINF_SUCCESS; +} + + +RTDECL(int) RTAsn1Integer_Clone(PRTASN1INTEGER pThis, PCRTASN1INTEGER pSrc, PCRTASN1ALLOCATORVTABLE pAllocator) +{ + AssertPtr(pSrc); AssertPtr(pThis); AssertPtr(pAllocator); + RT_ZERO(*pThis); + if (RTAsn1Integer_IsPresent(pSrc)) + { + AssertReturn(pSrc->Asn1Core.pOps == &g_RTAsn1Integer_Vtable, VERR_INTERNAL_ERROR_3); + + int rc; + if ( pSrc->Asn1Core.cb != 1 + || pSrc->uValue.u >= RT_ELEMENTS(g_abSmall)) + { + /* Value is too large, copy it. */ + rc = RTAsn1Core_CloneContent(&pThis->Asn1Core, &pSrc->Asn1Core, pAllocator); + if (RT_FAILURE(rc)) + return rc; + } + else + { + /* Use one of the const values. */ + rc = RTAsn1Core_CloneNoContent(&pThis->Asn1Core, &pSrc->Asn1Core); + if (RT_FAILURE(rc)) + return rc; + Assert(g_abSmall[pSrc->uValue.u] == pSrc->uValue.u); + pThis->Asn1Core.uData.pv = (void *)&g_abSmall[pSrc->uValue.u]; + } + pThis->uValue.u = pSrc->uValue.u; + } + return VINF_SUCCESS; +} + + +RTDECL(void) RTAsn1Integer_Delete(PRTASN1INTEGER pThis) +{ + if ( pThis + && RTAsn1Integer_IsPresent(pThis)) + { + Assert(pThis->Asn1Core.pOps == &g_RTAsn1Integer_Vtable); + + RTAsn1ContentFree(&pThis->Asn1Core); + RT_ZERO(*pThis); + } +} + + +RTDECL(int) RTAsn1Integer_Enum(PRTASN1INTEGER pThis, PFNRTASN1ENUMCALLBACK pfnCallback, uint32_t uDepth, void *pvUser) +{ + Assert(pThis && (!RTAsn1Integer_IsPresent(pThis) || pThis->Asn1Core.pOps == &g_RTAsn1Integer_Vtable)); + + /* No children to enumerate. */ + return VINF_SUCCESS; +} + + +RTDECL(int) RTAsn1Integer_Compare(PCRTASN1INTEGER pLeft, PCRTASN1INTEGER pRight) +{ + return RTAsn1Integer_UnsignedCompare(pLeft, pRight); +} + + +RTDECL(int) RTAsn1Integer_CheckSanity(PCRTASN1INTEGER pThis, uint32_t fFlags, PRTERRINFO pErrInfo, const char *pszErrorTag) +{ + if (RT_UNLIKELY(!RTAsn1Integer_IsPresent(pThis))) + return RTErrInfoSetF(pErrInfo, VERR_ASN1_NOT_PRESENT, "%s: Missing (INTEGER).", pszErrorTag); + return VINF_SUCCESS; +} + + +/* + * Generate code for the associated collection types. + */ +#define RTASN1TMPL_TEMPLATE_FILE "../common/asn1/asn1-ut-integer-template.h" +#include +#include +#include +#include + diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Runtime/common/asn1/asn1-ut-integer-decode.cpp virtualbox-4.1.44-dfsg/src/VBox/Runtime/common/asn1/asn1-ut-integer-decode.cpp --- virtualbox-4.1.12-dfsg/src/VBox/Runtime/common/asn1/asn1-ut-integer-decode.cpp 1970-01-01 00:00:00.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Runtime/common/asn1/asn1-ut-integer-decode.cpp 2015-11-11 15:08:58.000000000 +0000 @@ -0,0 +1,80 @@ +/* $Id: asn1-ut-integer-decode.cpp $ */ +/** @file + * IPRT - ASN.1, INTEGER Type, Decoding. + */ + +/* + * Copyright (C) 2006-2014 Oracle Corporation + * + * This file is part of VirtualBox Open Source Edition (OSE), as + * available from http://www.virtualbox.org. This file is free software; + * you can redistribute it and/or modify it under the terms of the GNU + * General Public License (GPL) as published by the Free Software + * Foundation, in version 2 as it comes in the "COPYING" file of the + * VirtualBox OSE distribution. VirtualBox OSE is distributed in the + * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind. + * + * The contents of this file may alternatively be used under the terms + * of the Common Development and Distribution License Version 1.0 + * (CDDL) only, as it comes in the "COPYING.CDDL" file of the + * VirtualBox OSE distribution, in which case the provisions of the + * CDDL are applicable instead of those of the GPL. + * + * You may elect to license modified versions of this file under the + * terms and conditions of either the GPL or the CDDL or both. + */ + +/******************************************************************************* +* Header Files * +*******************************************************************************/ +#include "internal/iprt.h" +#include + +#include +#include + +#include + + +RTDECL(int) RTAsn1Integer_DecodeAsn1(PRTASN1CURSOR pCursor, uint32_t fFlags, PRTASN1INTEGER pThis, const char *pszErrorTag) +{ + pThis->uValue.u = 0; + int rc = RTAsn1CursorReadHdr(pCursor, &pThis->Asn1Core, pszErrorTag); + if (RT_SUCCESS(rc)) + { + rc = RTAsn1CursorMatchTagClassFlags(pCursor, &pThis->Asn1Core, ASN1_TAG_INTEGER, + ASN1_TAGCLASS_UNIVERSAL | ASN1_TAGFLAG_PRIMITIVE, + fFlags, pszErrorTag, "INTEGER"); + if (RT_SUCCESS(rc)) + { + uint32_t offLast = pThis->Asn1Core.cb - 1; + switch (pThis->Asn1Core.cb) + { + default: + case 8: pThis->uValue.u |= (uint64_t)pThis->Asn1Core.uData.pu8[offLast - 7] << 56; + case 7: pThis->uValue.u |= (uint64_t)pThis->Asn1Core.uData.pu8[offLast - 6] << 48; + case 6: pThis->uValue.u |= (uint64_t)pThis->Asn1Core.uData.pu8[offLast - 5] << 40; + case 5: pThis->uValue.u |= (uint64_t)pThis->Asn1Core.uData.pu8[offLast - 4] << 32; + case 4: pThis->uValue.u |= (uint32_t)pThis->Asn1Core.uData.pu8[offLast - 3] << 24; + case 3: pThis->uValue.u |= (uint32_t)pThis->Asn1Core.uData.pu8[offLast - 2] << 16; + case 2: pThis->uValue.u |= (uint16_t)pThis->Asn1Core.uData.pu8[offLast - 1] << 8; + case 1: pThis->uValue.u |= pThis->Asn1Core.uData.pu8[offLast]; + } + RTAsn1CursorSkip(pCursor, pThis->Asn1Core.cb); + pThis->Asn1Core.fFlags |= RTASN1CORE_F_PRIMITE_TAG_STRUCT; + pThis->Asn1Core.pOps = &g_RTAsn1Integer_Vtable; + return VINF_SUCCESS; + } + } + RT_ZERO(*pThis); + return rc; +} + + +/* + * Generate code for the associated collection types. + */ +#define RTASN1TMPL_TEMPLATE_FILE "../common/asn1/asn1-ut-integer-template.h" +#include +#include + diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Runtime/common/asn1/asn1-ut-integer-template.h virtualbox-4.1.44-dfsg/src/VBox/Runtime/common/asn1/asn1-ut-integer-template.h --- virtualbox-4.1.12-dfsg/src/VBox/Runtime/common/asn1/asn1-ut-integer-template.h 1970-01-01 00:00:00.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Runtime/common/asn1/asn1-ut-integer-template.h 2015-11-11 15:08:58.000000000 +0000 @@ -0,0 +1,45 @@ +/* $Id: asn1-ut-integer-template.h $ */ +/** @file + * IPRT - ASN.1, INTEGER Type, Collection Type Template. + */ + +/* + * Copyright (C) 2006-2014 Oracle Corporation + * + * This file is part of VirtualBox Open Source Edition (OSE), as + * available from http://www.virtualbox.org. This file is free software; + * you can redistribute it and/or modify it under the terms of the GNU + * General Public License (GPL) as published by the Free Software + * Foundation, in version 2 as it comes in the "COPYING" file of the + * VirtualBox OSE distribution. VirtualBox OSE is distributed in the + * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind. + * + * The contents of this file may alternatively be used under the terms + * of the Common Development and Distribution License Version 1.0 + * (CDDL) only, as it comes in the "COPYING.CDDL" file of the + * VirtualBox OSE distribution, in which case the provisions of the + * CDDL are applicable instead of those of the GPL. + * + * You may elect to license modified versions of this file under the + * terms and conditions of either the GPL or the CDDL or both. + */ + +#define RTASN1TMPL_DECL RTDECL + +#define RTASN1TMPL_TYPE RTASN1SEQOFINTEGERS +#define RTASN1TMPL_EXT_NAME RTAsn1SeqOfIntegers +#define RTASN1TMPL_INT_NAME rtAsn1SeqOfIntegers +RTASN1TMPL_SEQ_OF(RTASN1INTEGER, RTAsn1Integer); +#undef RTASN1TMPL_TYPE +#undef RTASN1TMPL_EXT_NAME +#undef RTASN1TMPL_INT_NAME + + +#define RTASN1TMPL_TYPE RTASN1SETOFINTEGERS +#define RTASN1TMPL_EXT_NAME RTAsn1SetOfIntegers +#define RTASN1TMPL_INT_NAME rtAsn1SetOfIntegers +RTASN1TMPL_SET_OF(RTASN1INTEGER, RTAsn1Integer); +#undef RTASN1TMPL_TYPE +#undef RTASN1TMPL_EXT_NAME +#undef RTASN1TMPL_INT_NAME + diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Runtime/common/asn1/asn1-ut-null.cpp virtualbox-4.1.44-dfsg/src/VBox/Runtime/common/asn1/asn1-ut-null.cpp --- virtualbox-4.1.12-dfsg/src/VBox/Runtime/common/asn1/asn1-ut-null.cpp 1970-01-01 00:00:00.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Runtime/common/asn1/asn1-ut-null.cpp 2015-11-11 15:08:59.000000000 +0000 @@ -0,0 +1,127 @@ +/* $Id: asn1-ut-null.cpp $ */ +/** @file + * IPRT - ASN.1, NULL type. + */ + +/* + * Copyright (C) 2006-2014 Oracle Corporation + * + * This file is part of VirtualBox Open Source Edition (OSE), as + * available from http://www.virtualbox.org. This file is free software; + * you can redistribute it and/or modify it under the terms of the GNU + * General Public License (GPL) as published by the Free Software + * Foundation, in version 2 as it comes in the "COPYING" file of the + * VirtualBox OSE distribution. VirtualBox OSE is distributed in the + * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind. + * + * The contents of this file may alternatively be used under the terms + * of the Common Development and Distribution License Version 1.0 + * (CDDL) only, as it comes in the "COPYING.CDDL" file of the + * VirtualBox OSE distribution, in which case the provisions of the + * CDDL are applicable instead of those of the GPL. + * + * You may elect to license modified versions of this file under the + * terms and conditions of either the GPL or the CDDL or both. + */ + +/******************************************************************************* +* Header Files * +*******************************************************************************/ +#include "internal/iprt.h" +#include + +#include +#include + +#include + + +/* + * ASN.1 NULL - Special Methods. + */ + + +/* + * ASN.1 NULL - Standard Methods. + */ + + +RT_DECL_DATA_CONST(RTASN1COREVTABLE const) g_RTAsn1Null_Vtable = +{ + "RTAsn1Null", + sizeof(RTASN1NULL), + ASN1_TAG_NULL, + ASN1_TAGCLASS_UNIVERSAL | ASN1_TAGFLAG_PRIMITIVE, + 0, + (PFNRTASN1COREVTDTOR)RTAsn1Null_Delete, + (PFNRTASN1COREVTENUM)RTAsn1Null_Enum, + (PFNRTASN1COREVTCLONE)RTAsn1Null_Clone, + (PFNRTASN1COREVTCOMPARE)RTAsn1Null_Compare, + (PFNRTASN1COREVTCHECKSANITY)RTAsn1Null_CheckSanity, + NULL, + NULL +}; + + +RTDECL(int) RTAsn1Null_Init(PRTASN1NULL pThis, PCRTASN1ALLOCATORVTABLE pAllocator) +{ + return RTAsn1Core_InitEx(&pThis->Asn1Core, ASN1_TAG_NULL, ASN1_TAGCLASS_UNIVERSAL | ASN1_TAGFLAG_PRIMITIVE, + &g_RTAsn1Null_Vtable, RTASN1CORE_F_PRESENT | RTASN1CORE_F_PRIMITE_TAG_STRUCT); +} + + +RTDECL(int) RTAsn1Null_Clone(PRTASN1NULL pThis, PCRTASN1NULL pSrc, PCRTASN1ALLOCATORVTABLE pAllocator) +{ + AssertPtr(pSrc); AssertPtr(pThis); AssertPtr(pAllocator); + RT_ZERO(*pThis); + if (RTAsn1Null_IsPresent(pSrc)) + { + AssertReturn(pSrc->Asn1Core.pOps == &g_RTAsn1Null_Vtable, VERR_INTERNAL_ERROR_3); + AssertReturn(pSrc->Asn1Core.cb == 0, VERR_INTERNAL_ERROR_4); + + int rc = RTAsn1Core_CloneNoContent(&pThis->Asn1Core, &pSrc->Asn1Core); + if (RT_FAILURE(rc)) + return rc; + } + return VINF_SUCCESS; +} + + +RTDECL(void) RTAsn1Null_Delete(PRTASN1NULL pThis) +{ + if ( pThis + && RTAsn1Null_IsPresent(pThis)) + { + Assert(pThis->Asn1Core.pOps == &g_RTAsn1Null_Vtable); + RT_ZERO(*pThis); + } +} + + +RTDECL(int) RTAsn1Null_Enum(PRTASN1NULL pThis, PFNRTASN1ENUMCALLBACK pfnCallback, uint32_t uDepth, void *pvUser) +{ + Assert(pThis && (!RTAsn1Null_IsPresent(pThis) || pThis->Asn1Core.pOps == &g_RTAsn1Null_Vtable)); + + /* No children to enumerate. */ + return VINF_SUCCESS; +} + + +RTDECL(int) RTAsn1Null_Compare(PCRTASN1NULL pLeft, PCRTASN1NULL pRight) +{ + Assert(pLeft && (!RTAsn1Null_IsPresent(pLeft) || pLeft->Asn1Core.pOps == &g_RTAsn1Null_Vtable)); + Assert(pRight && (!RTAsn1Null_IsPresent(pRight) || pRight->Asn1Core.pOps == &g_RTAsn1Null_Vtable)); + + return (int)RTAsn1Null_IsPresent(pLeft) - (int)RTAsn1Null_IsPresent(pRight); +} + + +RTDECL(int) RTAsn1Null_CheckSanity(PCRTASN1NULL pThis, uint32_t fFlags, PRTERRINFO pErrInfo, const char *pszErrorTag) +{ + if (RT_UNLIKELY(!RTAsn1Null_IsPresent(pThis))) + return RTErrInfoSetF(pErrInfo, VERR_ASN1_NOT_PRESENT, "%s: Missing (NULL).", pszErrorTag); + return VINF_SUCCESS; +} + +/* No NULL object collections. */ + diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Runtime/common/asn1/asn1-ut-null-decode.cpp virtualbox-4.1.44-dfsg/src/VBox/Runtime/common/asn1/asn1-ut-null-decode.cpp --- virtualbox-4.1.12-dfsg/src/VBox/Runtime/common/asn1/asn1-ut-null-decode.cpp 1970-01-01 00:00:00.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Runtime/common/asn1/asn1-ut-null-decode.cpp 2015-11-11 15:08:58.000000000 +0000 @@ -0,0 +1,62 @@ +/* $Id: asn1-ut-null-decode.cpp $ */ +/** @file + * IPRT - ASN.1, NULL type, Decoding. + */ + +/* + * Copyright (C) 2006-2014 Oracle Corporation + * + * This file is part of VirtualBox Open Source Edition (OSE), as + * available from http://www.virtualbox.org. This file is free software; + * you can redistribute it and/or modify it under the terms of the GNU + * General Public License (GPL) as published by the Free Software + * Foundation, in version 2 as it comes in the "COPYING" file of the + * VirtualBox OSE distribution. VirtualBox OSE is distributed in the + * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind. + * + * The contents of this file may alternatively be used under the terms + * of the Common Development and Distribution License Version 1.0 + * (CDDL) only, as it comes in the "COPYING.CDDL" file of the + * VirtualBox OSE distribution, in which case the provisions of the + * CDDL are applicable instead of those of the GPL. + * + * You may elect to license modified versions of this file under the + * terms and conditions of either the GPL or the CDDL or both. + */ + +/******************************************************************************* +* Header Files * +*******************************************************************************/ +#include "internal/iprt.h" +#include + +#include +#include + +#include + + +RTDECL(int) RTAsn1Null_DecodeAsn1(PRTASN1CURSOR pCursor, uint32_t fFlags, PRTASN1NULL pThis, const char *pszErrorTag) +{ + int rc = RTAsn1CursorReadHdr(pCursor, &pThis->Asn1Core, pszErrorTag); + if (RT_SUCCESS(rc)) + { + rc = RTAsn1CursorMatchTagClassFlags(pCursor, &pThis->Asn1Core, ASN1_TAG_NULL, + ASN1_TAGCLASS_UNIVERSAL | ASN1_TAGFLAG_PRIMITIVE, fFlags, pszErrorTag, "NULL"); + if (RT_SUCCESS(rc)) + { + if (pThis->Asn1Core.cb == 0) + { + pThis->Asn1Core.fFlags |= RTASN1CORE_F_PRIMITE_TAG_STRUCT; + pThis->Asn1Core.pOps = &g_RTAsn1Null_Vtable; + return VINF_SUCCESS; + } + + rc = RTAsn1CursorSetInfo(pCursor, VERR_ASN1_INVALID_NULL_ENCODING, + "%s: Expected NULL object to have zero length: %#x", pszErrorTag, pThis->Asn1Core.cb); + } + } + RT_ZERO(*pThis); + return rc; +} + diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Runtime/common/asn1/asn1-ut-objid.cpp virtualbox-4.1.44-dfsg/src/VBox/Runtime/common/asn1/asn1-ut-objid.cpp --- virtualbox-4.1.12-dfsg/src/VBox/Runtime/common/asn1/asn1-ut-objid.cpp 1970-01-01 00:00:00.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Runtime/common/asn1/asn1-ut-objid.cpp 2015-11-11 15:08:59.000000000 +0000 @@ -0,0 +1,542 @@ +/* $Id: asn1-ut-objid.cpp $ */ +/** @file + * IPRT - ASN.1, OBJECT IDENTIFIER Type. + */ + +/* + * Copyright (C) 2006-2014 Oracle Corporation + * + * This file is part of VirtualBox Open Source Edition (OSE), as + * available from http://www.virtualbox.org. This file is free software; + * you can redistribute it and/or modify it under the terms of the GNU + * General Public License (GPL) as published by the Free Software + * Foundation, in version 2 as it comes in the "COPYING" file of the + * VirtualBox OSE distribution. VirtualBox OSE is distributed in the + * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind. + * + * The contents of this file may alternatively be used under the terms + * of the Common Development and Distribution License Version 1.0 + * (CDDL) only, as it comes in the "COPYING.CDDL" file of the + * VirtualBox OSE distribution, in which case the provisions of the + * CDDL are applicable instead of those of the GPL. + * + * You may elect to license modified versions of this file under the + * terms and conditions of either the GPL or the CDDL or both. + */ + +/******************************************************************************* +* Header Files * +*******************************************************************************/ +#include "internal/iprt.h" +#include + +#include +#include +#include +#include +#include +#include + +#include + + +/******************************************************************************* +* Global Variables * +*******************************************************************************/ +static char const g_szDefault[] = "2.16.840.1.113894"; +static uint32_t const g_auDefault[] = { 2, 16, 840, 1, 113894 }; +static uint8_t const g_abDefault[] = +{ + 2*40 + 16, 0x80 | (840 >> 7), 840 & 0x7f, 1, 0x80 | (113894 >> 14), 0x80 | ((113894 >> 7) & 0x7f), 113894 & 0x7f +}; + + +/******************************************************************************* +* Internal Functions * +*******************************************************************************/ +DECLHIDDEN(int) rtAsn1ObjId_InternalFormatComponent(uint32_t uValue, char **ppszObjId, size_t *pcbObjId); /* asn1-ut-objid.cpp */ +/** @todo check if we really need this. */ + + + +/* + * ASN.1 OBJECT IDENTIFIER - Special Methods. + */ + +/** + * Encodes the ASN.1 byte sequence for a set of components. + * + * @returns IPRT status code. + * @param cComponents The number of components. Must be at least two. + * @param pauComponents The components array. + * @param pbEncoded The output buffer. + * @param pcbEncoded On input, this holds the size of the output buffer. + * On successful return it's the encoded size in bytes. + */ +static int rtAsn1ObjId_EncodeComponents(uint32_t cComponents, uint32_t const *pauComponents, + uint8_t *pbEncoded, uint32_t *pcbEncoded) +{ + uint8_t *pbCur = pbEncoded; + uint32_t cbLeft = *pcbEncoded; + + /* The first two componets are encoded together to save a byte, so the loop + organization is a little special. */ + AssertReturn(cComponents >= 2, VERR_ASN1_INTERNAL_ERROR_1); + AssertReturn(pauComponents[0] <= 2, VERR_ASN1_INTERNAL_ERROR_1); + AssertReturn(pauComponents[1] <= (pauComponents[0] < 2 ? 39 : UINT32_MAX - 80), VERR_ASN1_INTERNAL_ERROR_1); + uint32_t i = 1; + uint32_t uValue = pauComponents[0] * 40 + pauComponents[1]; + + for (;;) + { + if (uValue < 0x80) + { + if (RT_UNLIKELY(cbLeft < 1)) + return VERR_BUFFER_OVERFLOW; + cbLeft -= 1; + *pbCur++ = (uint8_t)uValue; + } + else if (uValue < 0x4000) + { + if (RT_UNLIKELY(cbLeft < 2)) + return VERR_BUFFER_OVERFLOW; + cbLeft -= 2; + pbCur[0] = (uValue >> 7) | 0x80; + pbCur[1] = uValue & 0x7f; + pbCur += 2; + } + else if (uValue < 0x200000) + { + if (RT_UNLIKELY(cbLeft < 3)) + return VERR_BUFFER_OVERFLOW; + cbLeft -= 3; + pbCur[0] = (uValue >> 14) | 0x80; + pbCur[1] = ((uValue >> 7) & 0x7f) | 0x80; + pbCur[2] = uValue & 0x7f; + pbCur += 3; + } + else if (uValue < 0x10000000) + { + if (RT_UNLIKELY(cbLeft < 4)) + return VERR_BUFFER_OVERFLOW; + cbLeft -= 4; + pbCur[0] = (uValue >> 21) | 0x80; + pbCur[1] = ((uValue >> 14) & 0x7f) | 0x80; + pbCur[2] = ((uValue >> 7) & 0x7f) | 0x80; + pbCur[3] = uValue & 0x7f; + pbCur += 4; + } + else + { + if (RT_UNLIKELY(cbLeft < 5)) + return VERR_BUFFER_OVERFLOW; + cbLeft -= 5; + pbCur[0] = (uValue >> 28) | 0x80; + pbCur[1] = ((uValue >> 21) & 0x7f) | 0x80; + pbCur[2] = ((uValue >> 14) & 0x7f) | 0x80; + pbCur[3] = ((uValue >> 7) & 0x7f) | 0x80; + pbCur[4] = uValue & 0x7f; + pbCur += 5; + } + + /* Advance / return. */ + i++; + if (i >= cComponents) + { + *pcbEncoded = (uint32_t)(pbCur - pbEncoded); + return VINF_SUCCESS; + } + uValue = pauComponents[i]; + } +} + + +RTDECL(int) RTAsn1ObjId_InitFromString(PRTASN1OBJID pThis, const char *pszObjId, PCRTASN1ALLOCATORVTABLE pAllocator) +{ + RT_ZERO(*pThis); + + /* + * Check the string, counting the number of components and checking their validity. + */ + size_t cbObjId = strlen(pszObjId) + 1; + AssertReturn(cbObjId < sizeof(pThis->szObjId), VERR_ASN1_OBJID_TOO_LONG_STRING_FORM); + + const char *psz = pszObjId; + + /* Special checking of the first component. It has only three valid values: 0,1,2. */ + char ch = *psz++; + if (RT_UNLIKELY(ch < '0' || ch > '2')) + return VERR_ASN1_OBJID_INVALID_DOTTED_STRING; + char const chFirst = ch; + ch = *psz++; + if (RT_UNLIKELY(ch != '.')) + return VERR_ASN1_OBJID_INVALID_DOTTED_STRING; + + /* The 2nd component. It the first is 0 or 1, it has a max of 39. */ + uint32_t cComponents = 1; + if (chFirst < '2') + { + ch = *psz++; + if (*psz == '.') + { + if (RT_UNLIKELY(!RT_C_IS_DIGIT(ch))) + return VERR_ASN1_OBJID_INVALID_DOTTED_STRING; + } + else + { + if (RT_UNLIKELY(ch < '0' || ch > '3')) + return VERR_ASN1_OBJID_INVALID_DOTTED_STRING; + ch = *psz++; + if (RT_UNLIKELY(!RT_C_IS_DIGIT(ch))) + return VERR_ASN1_OBJID_INVALID_DOTTED_STRING; + if (*psz != '.') + return VERR_ASN1_OBJID_INVALID_DOTTED_STRING; + } + cComponents++; + } + else + psz--; + + /* Subsequent components have max values of UINT32_MAX - 80. */ + while ((ch = *psz++) != '\0') + { + if (RT_UNLIKELY(ch != '.')) + return VERR_ASN1_OBJID_INVALID_DOTTED_STRING; + const char *pszStart = psz; + + /* Special treatment of the first digit. Need to make sure it isn't an + unnecessary leading 0. */ + ch = *psz++; + if (RT_UNLIKELY(!RT_C_IS_DIGIT(ch))) + return VERR_ASN1_OBJID_INVALID_DOTTED_STRING; + if (RT_UNLIKELY(ch == '0' && RT_C_IS_DIGIT(*psz))) + return VERR_ASN1_OBJID_INVALID_DOTTED_STRING; + + /* The rest of the digits. */ + while ((ch = *psz) != '.' && ch != '\0') + { + if (RT_UNLIKELY(!RT_C_IS_DIGIT(ch))) + return VERR_ASN1_OBJID_INVALID_DOTTED_STRING; + psz++; + } + + /* Check the value range. */ + if (RT_UNLIKELY(psz - pszStart >= 9)) + if ( psz - pszStart > 9 + || strncmp(pszStart, "4294967216", 9) >= 0) /* 2^32 - 80 */ + return VERR_ASN1_OBJID_INVALID_DOTTED_STRING; + + cComponents++; + } + + if (RT_UNLIKELY(cComponents >= 128)) + return VERR_ASN1_OBJID_TOO_MANY_COMPONENTS; + pThis->cComponents = (uint8_t)cComponents; + + /* + * Find space for the component array, either at the unused end of szObjId + * or on the heap. + */ + int rc; + RTAsn1MemInitAllocation(&pThis->Allocation, pAllocator); +#if 0 /** @todo breaks with arrays of ObjIds or structs containing them. They get resized and repositioned in memory, thus invalidating the pointer. Add recall-pointers callback, or just waste memory? Or maybe make all arrays pointer-arrays? */ + size_t cbLeft = sizeof(pThis->szObjId) - cbObjId; + if (cbLeft >= cComponents * sizeof(uint32_t)) + { + pThis->pauComponents = (uint32_t *)&pThis->szObjId[sizeof(pThis->szObjId) - cComponents * sizeof(uint32_t)]; + cbLeft -= cComponents * sizeof(uint32_t); + rc = VINF_SUCCESS; + } + else +#endif + rc = RTAsn1MemAllocZ(&pThis->Allocation, (void **)&pThis->pauComponents, cComponents * sizeof(uint32_t)); + if (RT_SUCCESS(rc)) + { + /* + * Fill the elements array. + */ + uint32_t *pauComponents = (uint32_t *)pThis->pauComponents; + rc = VINF_SUCCESS; + psz = pszObjId; + for (uint32_t i = 0; i < cComponents; i++) + { + uint32_t uValue = 0; + rc = RTStrToUInt32Ex(psz, (char **)&psz, 10, &uValue); + if (rc == VWRN_TRAILING_CHARS) + { + pauComponents[i] = uValue; + AssertBreakStmt(*psz == '.', rc = VERR_TRAILING_CHARS); + psz++; + } + else if (rc == VINF_SUCCESS) + { + pauComponents[i] = uValue; + Assert(*psz == '\0'); + } + else if (RT_FAILURE(rc)) + break; + else + { + rc = -rc; + break; + } + } + if (rc == VINF_SUCCESS && *psz == '\0') + { + /* + * Initialize the core structure before we start on the encoded bytes. + */ + RTAsn1Core_InitEx(&pThis->Asn1Core, + ASN1_TAG_OID, + ASN1_TAGCLASS_UNIVERSAL | ASN1_TAGFLAG_PRIMITIVE, + &g_RTAsn1ObjId_Vtable, + RTASN1CORE_F_PRESENT | RTASN1CORE_F_PRIMITE_TAG_STRUCT); + + /* + * Encode the value into the string buffer. This will NOT overflow + * because the string representation is much less efficient than the + * binary ASN.1 representation (base-10 + separators vs. base-128). + */ + pThis->Asn1Core.cb = (uint32_t)cbObjId; + rc = rtAsn1ObjId_EncodeComponents(cComponents, pThis->pauComponents, + (uint8_t *)&pThis->szObjId[0], &pThis->Asn1Core.cb); + if (RT_SUCCESS(rc)) + { + /* + * Now, find a place for the encoded bytes. There might be + * enough room left in the szObjId for it if we're lucky. + */ +#if 0 /** @todo breaks with arrays of ObjIds or structs containing them. They get resized and repositioned in memory, thus invalidating the pointer. Add recall-pointers callback, or just waste memory? Or maybe make all arrays pointer-arrays? */ + if (pThis->Asn1Core.cb >= cbLeft) + pThis->Asn1Core.uData.pv = memmove(&pThis->szObjId[cbObjId], &pThis->szObjId[0], pThis->Asn1Core.cb); + else +#endif + rc = RTAsn1ContentDup(&pThis->Asn1Core, pThis->szObjId, pThis->Asn1Core.cb, pAllocator); + if (RT_SUCCESS(rc)) + { + /* + * Finally, copy the dotted string. + */ + memcpy(pThis->szObjId, pszObjId, cbObjId); + return VINF_SUCCESS; + } + } + else + { + AssertMsgFailed(("%Rrc\n", rc)); + rc = VERR_ASN1_INTERNAL_ERROR_3; + } + } + else + rc = VERR_ASN1_OBJID_INVALID_DOTTED_STRING; + } + RT_ZERO(*pThis); + return rc; +} + + +RTDECL(int) RTAsn1ObjId_CompareWithString(PCRTASN1OBJID pThis, const char *pszRight) +{ + return strcmp(pThis->szObjId, pszRight); +} + + +RTDECL(bool) RTAsn1ObjId_StartsWith(PCRTASN1OBJID pThis, const char *pszStartsWith) +{ + size_t cchStartsWith = strlen(pszStartsWith); + return !strncmp(pThis->szObjId, pszStartsWith, cchStartsWith) + && ( pszStartsWith[cchStartsWith] == '.' + || pszStartsWith[cchStartsWith] == '\0'); +} + + +RTDECL(uint8_t) RTAsn1ObjIdCountComponents(PCRTASN1OBJID pThis) +{ + return pThis->cComponents; +} + + +RTDECL(uint32_t) RTAsn1ObjIdGetComponentsAsUInt32(PCRTASN1OBJID pThis, uint8_t iComponent) +{ + if (iComponent < pThis->cComponents) + return pThis->pauComponents[iComponent]; + return UINT32_MAX; +} + + +RTDECL(uint32_t) RTAsn1ObjIdGetLastComponentsAsUInt32(PCRTASN1OBJID pThis) +{ + return pThis->pauComponents[pThis->cComponents - 1]; +} + + +/* + * ASN.1 OBJECT IDENTIFIER - Standard Methods. + */ + +RT_DECL_DATA_CONST(RTASN1COREVTABLE const) g_RTAsn1ObjId_Vtable = +{ + "RTAsn1ObjId", + sizeof(RTASN1OBJID), + ASN1_TAG_OID, + ASN1_TAGCLASS_UNIVERSAL | ASN1_TAGFLAG_PRIMITIVE, + 0, + (PFNRTASN1COREVTDTOR)RTAsn1ObjId_Delete, + NULL, + (PFNRTASN1COREVTCLONE)RTAsn1ObjId_Clone, + (PFNRTASN1COREVTCOMPARE)RTAsn1ObjId_Compare, + (PFNRTASN1COREVTCHECKSANITY)RTAsn1ObjId_CheckSanity, + NULL, + NULL +}; + + +RTDECL(int) RTAsn1ObjId_Init(PRTASN1OBJID pThis, PCRTASN1ALLOCATORVTABLE pAllocator) +{ + RTAsn1Core_InitEx(&pThis->Asn1Core, + ASN1_TAG_OID, + ASN1_TAGCLASS_UNIVERSAL | ASN1_TAGFLAG_PRIMITIVE, + &g_RTAsn1ObjId_Vtable, + RTASN1CORE_F_PRESENT | RTASN1CORE_F_PRIMITE_TAG_STRUCT); + pThis->Asn1Core.cb = sizeof(g_abDefault); + pThis->Asn1Core.uData.pv = (void *)&g_abDefault[0]; + pThis->cComponents = RT_ELEMENTS(g_auDefault); + pThis->pauComponents = g_auDefault; + AssertCompile(sizeof(g_szDefault) <= sizeof(pThis->szObjId)); + memcpy(pThis->szObjId, g_szDefault, sizeof(g_szDefault)); + return VINF_SUCCESS; +} + + +RTDECL(int) RTAsn1ObjId_Clone(PRTASN1OBJID pThis, PCRTASN1OBJID pSrc, PCRTASN1ALLOCATORVTABLE pAllocator) +{ + AssertPtr(pSrc); AssertPtr(pThis); AssertPtr(pAllocator); + RT_ZERO(*pThis); + if (RTAsn1ObjId_IsPresent(pSrc)) + { + AssertReturn(pSrc->Asn1Core.pOps == &g_RTAsn1ObjId_Vtable, VERR_INTERNAL_ERROR_3); + + /* Copy the dotted string representation. */ + size_t cbObjId = strlen(pSrc->szObjId) + 1; + AssertReturn(cbObjId <= sizeof(pThis->szObjId), VERR_INTERNAL_ERROR_5); + memcpy(pThis->szObjId, pSrc->szObjId, cbObjId); + + /* Copy the integer component array. Try fit it in the unused space of + the dotted object string buffer. We place it at the end of the + buffer as that is simple alignment wise and avoid wasting bytes that + could be used to sequueze in the content bytes (see below). */ + int rc; + RTAsn1MemInitAllocation(&pThis->Allocation, pAllocator); + pThis->cComponents = pSrc->cComponents; + size_t cbLeft = sizeof(pThis->szObjId); +#if 0 /** @todo breaks with arrays of ObjIds or structs containing them. They get resized and repositioned in memory, thus invalidating the pointer. Add recall-pointers callback, or just waste memory? Or maybe make all arrays pointer-arrays? */ + if (pSrc->cComponents * sizeof(uint32_t) <= cbLeft) + { + pThis->pauComponents = (uint32_t *)&pThis->szObjId[sizeof(pThis->szObjId) - pSrc->cComponents * sizeof(uint32_t)]; + memcpy((uint32_t *)pThis->pauComponents, pSrc->pauComponents, pSrc->cComponents * sizeof(uint32_t)); + cbLeft -= pSrc->cComponents * sizeof(uint32_t); + rc = VINF_SUCCESS; + } + else +#endif + { + rc = RTAsn1MemDup(&pThis->Allocation, (void **)&pThis->pauComponents, pSrc->pauComponents, + pSrc->cComponents * sizeof(uint32_t)); + } + if (RT_SUCCESS(rc)) + { + /* See if we can fit the content value into the szObjId as well. + It will follow immediately after the string as the component + array is the end of the string buffer, when present. */ +#if 0 /** @todo breaks with arrays of ObjIds or structs containing them. They get resized and repositioned in memory, thus invalidating the pointer. Add recall-pointers callback, or just waste memory? Or maybe make all arrays pointer-arrays? */ + uint32_t cbContent = pSrc->Asn1Core.cb; + if (cbContent <= cbLeft) + { + rc = RTAsn1Core_CloneNoContent(&pThis->Asn1Core, &pSrc->Asn1Core); + if (RT_SUCCESS(rc)) + { + pThis->Asn1Core.uData.pv = memcpy(&pThis->szObjId[cbObjId], pSrc->Asn1Core.uData.pv, cbContent); + return VINF_SUCCESS; + } + } + else +#endif + { + rc = RTAsn1Core_CloneContent(&pThis->Asn1Core, &pSrc->Asn1Core, pAllocator); + if (RT_SUCCESS(rc)) + return VINF_SUCCESS; + } + } + + /* failed, clean up. */ + if (pThis->Allocation.cbAllocated) + RTAsn1MemFree(&pThis->Allocation, (uint32_t *)pThis->pauComponents); + RT_ZERO(*pThis); + return rc; + } + return VINF_SUCCESS; +} + + +RTDECL(void) RTAsn1ObjId_Delete(PRTASN1OBJID pThis) +{ + if ( pThis + && RTAsn1ObjId_IsPresent(pThis)) + { + Assert(pThis->Asn1Core.pOps == &g_RTAsn1ObjId_Vtable); + + if (pThis->Allocation.cbAllocated) + RTAsn1MemFree(&pThis->Allocation, (uint32_t *)pThis->pauComponents); + RTAsn1ContentFree(&pThis->Asn1Core); + RT_ZERO(*pThis); + } +} + + +RTDECL(int) RTAsn1ObjId_Enum(PRTASN1OBJID pThis, PFNRTASN1ENUMCALLBACK pfnCallback, uint32_t uDepth, void *pvUser) +{ + Assert(pThis && (!RTAsn1ObjId_IsPresent(pThis) || pThis->Asn1Core.pOps == &g_RTAsn1ObjId_Vtable)); + + /* No children to enumerate. */ + return VINF_SUCCESS; +} + + +RTDECL(int) RTAsn1ObjId_Compare(PCRTASN1OBJID pLeft, PCRTASN1OBJID pRight) +{ + if (RTAsn1ObjId_IsPresent(pLeft)) + { + if (RTAsn1ObjId_IsPresent(pRight)) + { + uint8_t cComponents = RT_MIN(pLeft->cComponents, pRight->cComponents); + for (uint32_t i = 0; i < cComponents; i++) + if (pLeft->pauComponents[i] != pRight->pauComponents[i]) + return pLeft->pauComponents[i] < pRight->pauComponents[i] ? -1 : 1; + + if (pLeft->cComponents == pRight->cComponents) + return 0; + return pLeft->cComponents < pRight->cComponents ? -1 : 1; + } + return 1; + } + return 0 - (int)RTAsn1ObjId_IsPresent(pRight); +} + + +RTDECL(int) RTAsn1ObjId_CheckSanity(PCRTASN1OBJID pThis, uint32_t fFlags, PRTERRINFO pErrInfo, const char *pszErrorTag) +{ + if (RT_UNLIKELY(!RTAsn1ObjId_IsPresent(pThis))) + return RTErrInfoSetF(pErrInfo, VERR_ASN1_NOT_PRESENT, "%s: Missing (OBJID).", pszErrorTag); + return VINF_SUCCESS; +} + + +/* + * Generate code for the associated collection types. + */ +#define RTASN1TMPL_TEMPLATE_FILE "../common/asn1/asn1-ut-objid-template.h" +#include +#include +#include +#include + diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Runtime/common/asn1/asn1-ut-objid-decode.cpp virtualbox-4.1.44-dfsg/src/VBox/Runtime/common/asn1/asn1-ut-objid-decode.cpp --- virtualbox-4.1.12-dfsg/src/VBox/Runtime/common/asn1/asn1-ut-objid-decode.cpp 1970-01-01 00:00:00.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Runtime/common/asn1/asn1-ut-objid-decode.cpp 2015-11-11 15:08:59.000000000 +0000 @@ -0,0 +1,363 @@ +/* $Id: asn1-ut-objid-decode.cpp $ */ +/** @file + * IPRT - ASN.1, OBJECT IDENTIFIER Type, Decoder. + */ + +/* + * Copyright (C) 2006-2014 Oracle Corporation + * + * This file is part of VirtualBox Open Source Edition (OSE), as + * available from http://www.virtualbox.org. This file is free software; + * you can redistribute it and/or modify it under the terms of the GNU + * General Public License (GPL) as published by the Free Software + * Foundation, in version 2 as it comes in the "COPYING" file of the + * VirtualBox OSE distribution. VirtualBox OSE is distributed in the + * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind. + * + * The contents of this file may alternatively be used under the terms + * of the Common Development and Distribution License Version 1.0 + * (CDDL) only, as it comes in the "COPYING.CDDL" file of the + * VirtualBox OSE distribution, in which case the provisions of the + * CDDL are applicable instead of those of the GPL. + * + * You may elect to license modified versions of this file under the + * terms and conditions of either the GPL or the CDDL or both. + */ + +/******************************************************************************* +* Header Files * +*******************************************************************************/ +#include "internal/iprt.h" +#include + +#include +#include +#include +#include + +#include + + +/******************************************************************************* +* Global Variables * +*******************************************************************************/ +static char const g_achDigits[11] = "0123456789"; + + +/******************************************************************************* +* Internal Functions * +*******************************************************************************/ +DECLHIDDEN(int) rtAsn1ObjId_InternalFormatComponent(uint32_t uValue, char **ppszObjId, size_t *pcbObjId); /* asn1-ut-objid.cpp */ + + +/** + * Internal worker for RTAsn1ObjId_DecodeAsn1 that formats a component, with a + * leading dot. + * + * @returns VBox status code (caller complains on failure). + * @param uValue The component ID value. + * @param ppszObjId Pointer to the output buffer pointer. + * @param pcbObjId Pointer to the remaining size of the output buffer. + */ +DECLHIDDEN(int) rtAsn1ObjId_InternalFormatComponent(uint32_t uValue, char **ppszObjId, size_t *pcbObjId) +{ + /* + * Format the number backwards. + */ + char szTmp[32]; + char *psz = &szTmp[sizeof(szTmp) - 1]; + *psz = '\0'; + + do + { + *--psz = g_achDigits[uValue % 10]; + uValue /= 10; + } while (uValue > 0); + + /* + * Do we have enough space? + * We add a dot and save space for the terminator. + */ + size_t cchNeeded = &szTmp[sizeof(szTmp) - 1] - psz; + if (1 + cchNeeded < *pcbObjId) + { + *pcbObjId -= cchNeeded + 1; + char *pszObjId = *ppszObjId; + *ppszObjId = pszObjId + cchNeeded + 1; + + *pszObjId = '.'; + memcpy(pszObjId + 1, psz, cchNeeded); + return VINF_SUCCESS; + } + + AssertFailed(); + return VERR_ASN1_OBJID_TOO_LONG_STRING_FORM; +} + + +/** + * Reads one object ID component, returning it's value and encoded length. + * + * @returns The encoded length (positive) on success, negative IPRT status code + * on failure. + * @param pbContent The start of the component to parse. + * @param cbContent The number of content bytes left. + * @param puValue Where to return the value. + */ +static int rtAsn1ObjId_ReadComponent(uint8_t const *pbContent, uint32_t cbContent, uint32_t *puValue) +{ + if (cbContent >= 1) + { + /* The first byte. */ + uint8_t b = *pbContent; + if (!(b & 0x80)) + { + *puValue = b; + return 1; + } + + /* Encoded as more than one byte. Make sure that it's efficently + encoded as 8.19.2 indicates it must. */ + if (b != 0x80) + { + uint32_t off = 1; + uint32_t uValue = b & 0x7f; + while (off < cbContent) + { + b = pbContent[off++]; + uValue <<= 7; + uValue |= b & 0x7f; + if (!(b & 0x80)) + { + *puValue = uValue; + return (int)off; + } + + if (RT_UNLIKELY(uValue & UINT32_C(0x0e000000))) + return VERR_ASN1_OBJID_COMPONENT_TOO_BIG; + } + } + return VERR_ASN1_INVALID_OBJID_ENCODING; + } + return VERR_NO_DATA; +} + + +/** + * This function parses the binary content of an OBJECT IDENTIFIER, check the + * encoding as well as calculating the storage requirements. + * + * @returns IPRT status code + * @param pbContent Pointer to the content. + * @param cbContent The length of the content. + * @param pCursor The cursor (for error reporting). + * @param pszErrorTag The error tag. + * @param pcComponents Where to return the component count. + * @param pcchObjId Where to return the length of the dotted string + * representation. + */ +static int rtAsn1ObjId_PreParse(uint8_t const *pbContent, uint32_t cbContent, PRTASN1CURSOR pCursor, const char *pszErrorTag, + uint8_t *pcComponents, uint8_t *pcchObjId) +{ + int rc; + if (cbContent >= 1 && cbContent < _1K) + { + /* + * Decode the first two numbers. Monkey business: X*40 + Y + * Where X is the first number, X in {0,1,2}, and Y is the second + * one. The range of Y is {0,...,39} for X in {0,1}, but has a + * free range for X = 2. + */ + uint32_t cComponents = 1; + uint32_t uValue; + rc = rtAsn1ObjId_ReadComponent(pbContent, cbContent, &uValue); + if (rc > 0) + { + uint32_t cchObjId = 1; + uValue = uValue < 2*40 ? uValue % 40 : uValue - 2*40; /* Y */ + do + { + cComponents++; + + /* Figure the encoded string length, binary search fashion. */ + if (uValue < 10000) + { + if (uValue < 100) + { + if (uValue < 10) + cchObjId += 1 + 1; + else + cchObjId += 1 + 2; + } + else + { + if (uValue < 1000) + cchObjId += 1 + 3; + else + cchObjId += 1 + 4; + } + } + else + { + if (uValue < 1000000) + { + if (uValue < 100000) + cchObjId += 1 + 5; + else + cchObjId += 1 + 6; + } + else + { + if (uValue < 10000000) + cchObjId += 1 + 7; + else if (uValue < 100000000) + cchObjId += 1 + 8; + else + cchObjId += 1 + 9; + } + } + + /* advance. */ + pbContent += rc; + cbContent -= rc; + if (!cbContent) + { + if (cComponents < 128) + { + if (cchObjId < RT_SIZEOFMEMB(RTASN1OBJID, szObjId)) + { + *pcComponents = cComponents; + *pcchObjId = cchObjId; + return VINF_SUCCESS; + } + return RTAsn1CursorSetInfo(pCursor, VERR_ASN1_OBJID_TOO_LONG_STRING_FORM, + "Object ID has a too long string form: %#x (max %#x)", + cchObjId, RT_SIZEOFMEMB(RTASN1OBJID, szObjId)); + } + return RTAsn1CursorSetInfo(pCursor, VERR_ASN1_OBJID_TOO_MANY_COMPONENTS, + "Object ID has too many components: %#x (max 127)", cComponents); + } + + /* next */ + rc = rtAsn1ObjId_ReadComponent(pbContent, cbContent, &uValue); + } while (rc > 0); + } + rc = RTAsn1CursorSetInfo(pCursor, rc, "Bad object ID component #%u encoding: %.*Rhxs", + cComponents, cbContent, pbContent); + } + else if (cbContent) + rc = RTAsn1CursorSetInfo(pCursor, VERR_ASN1_INVALID_OBJID_ENCODING, "Object ID content is loo long: %#x", cbContent); + else + rc = RTAsn1CursorSetInfo(pCursor, VERR_ASN1_INVALID_OBJID_ENCODING, "Zero length object ID content"); + return rc; +} + + + +RTDECL(int) RTAsn1ObjId_DecodeAsn1(PRTASN1CURSOR pCursor, uint32_t fFlags, PRTASN1OBJID pThis, const char *pszErrorTag) +{ + int rc = RTAsn1CursorReadHdr(pCursor, &pThis->Asn1Core, pszErrorTag); + if (RT_SUCCESS(rc)) + { + rc = RTAsn1CursorMatchTagClassFlags(pCursor, &pThis->Asn1Core, ASN1_TAG_OID, + ASN1_TAGCLASS_UNIVERSAL | ASN1_TAGFLAG_PRIMITIVE, fFlags, pszErrorTag, "OID"); + if (RT_SUCCESS(rc)) + { + /* + * Validate and count things first. + */ + uint8_t cComponents = 0; /* gcc maybe-crap */ + uint8_t cchObjId = 0; /* ditto */ + rc = rtAsn1ObjId_PreParse(pCursor->pbCur, pThis->Asn1Core.cb, pCursor, pszErrorTag, &cComponents, &cchObjId); + if (RT_SUCCESS(rc)) + { + /* + * Allocate memory for the components array, either out of the + * string buffer or off the heap. + */ + pThis->cComponents = cComponents; + RTAsn1CursorInitAllocation(pCursor, &pThis->Allocation); +#if 0 /** @todo breaks with arrays of ObjIds or structs containing them. They get resized and repositioned in memory, thus invalidating the pointer. Add recall-pointers callback, or just waste memory? Or maybe make all arrays pointer-arrays? */ + if (cComponents * sizeof(uint32_t) <= sizeof(pThis->szObjId) - cchObjId - 1) + pThis->pauComponents = (uint32_t *)&pThis->szObjId[sizeof(pThis->szObjId) - cComponents * sizeof(uint32_t)]; + else +#endif + rc = RTAsn1MemAllocZ(&pThis->Allocation, (void **)&pThis->pauComponents, + cComponents * sizeof(pThis->pauComponents[0])); + if (RT_SUCCESS(rc)) + { + uint32_t *pauComponents = (uint32_t *)pThis->pauComponents; + + /* + * Deal with the two first components first since they are + * encoded in a weird way to save a byte. + */ + uint8_t const *pbContent = pCursor->pbCur; + uint32_t cbContent = pThis->Asn1Core.cb; + uint32_t uValue; + rc = rtAsn1ObjId_ReadComponent(pbContent, cbContent, &uValue); AssertRC(rc); + if (RT_SUCCESS(rc)) + { + pbContent += rc; + cbContent -= rc; + + if (uValue < 80) + { + pauComponents[0] = uValue / 40; + pauComponents[1] = uValue % 40; + } + else + { + pauComponents[0] = 2; + pauComponents[1] = uValue - 2*40; + } + + char *pszObjId = &pThis->szObjId[0]; + *pszObjId++ = g_achDigits[pauComponents[0]]; + size_t cbObjIdLeft = cchObjId + 1 - 1; + + rc = rtAsn1ObjId_InternalFormatComponent(pauComponents[1], &pszObjId, &cbObjIdLeft); AssertRC(rc); + if (RT_SUCCESS(rc)) + { + /* + * The other components are encoded in less complicated manner. + */ + for (uint32_t i = 2; i < cComponents; i++) + { + rc = rtAsn1ObjId_ReadComponent(pbContent, cbContent, &uValue); + AssertRCBreak(rc); + pbContent += rc; + cbContent -= rc; + pauComponents[i] = uValue; + rc = rtAsn1ObjId_InternalFormatComponent(uValue, &pszObjId, &cbObjIdLeft); + AssertRCBreak(rc); + } + if (RT_SUCCESS(rc)) + { + Assert(cbObjIdLeft == 1); + *pszObjId = '\0'; + + RTAsn1CursorSkip(pCursor, pThis->Asn1Core.cb); + pThis->Asn1Core.fFlags |= RTASN1CORE_F_PRIMITE_TAG_STRUCT; + pThis->Asn1Core.pOps = &g_RTAsn1ObjId_Vtable; + return VINF_SUCCESS; + } + } + } + } + } + } + } + RT_ZERO(*pThis); + return rc; +} + + + +/* + * Generate code for the associated collection types. + */ +#define RTASN1TMPL_TEMPLATE_FILE "../common/asn1/asn1-ut-objid-template.h" +#include +#include + diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Runtime/common/asn1/asn1-ut-objid-template.h virtualbox-4.1.44-dfsg/src/VBox/Runtime/common/asn1/asn1-ut-objid-template.h --- virtualbox-4.1.12-dfsg/src/VBox/Runtime/common/asn1/asn1-ut-objid-template.h 1970-01-01 00:00:00.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Runtime/common/asn1/asn1-ut-objid-template.h 2015-11-11 15:08:59.000000000 +0000 @@ -0,0 +1,45 @@ +/* $Id: asn1-ut-objid-template.h $ */ +/** @file + * IPRT - ASN.1, OBJECT IDENTIFIER Type, Collection Type Template. + */ + +/* + * Copyright (C) 2006-2014 Oracle Corporation + * + * This file is part of VirtualBox Open Source Edition (OSE), as + * available from http://www.virtualbox.org. This file is free software; + * you can redistribute it and/or modify it under the terms of the GNU + * General Public License (GPL) as published by the Free Software + * Foundation, in version 2 as it comes in the "COPYING" file of the + * VirtualBox OSE distribution. VirtualBox OSE is distributed in the + * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind. + * + * The contents of this file may alternatively be used under the terms + * of the Common Development and Distribution License Version 1.0 + * (CDDL) only, as it comes in the "COPYING.CDDL" file of the + * VirtualBox OSE distribution, in which case the provisions of the + * CDDL are applicable instead of those of the GPL. + * + * You may elect to license modified versions of this file under the + * terms and conditions of either the GPL or the CDDL or both. + */ + +#define RTASN1TMPL_DECL RTDECL + +#define RTASN1TMPL_TYPE RTASN1SEQOFOBJIDS +#define RTASN1TMPL_EXT_NAME RTAsn1SeqOfObjIds +#define RTASN1TMPL_INT_NAME rtAsn1SeqOfObjIds +RTASN1TMPL_SEQ_OF(RTASN1OBJID, RTAsn1ObjId); +#undef RTASN1TMPL_TYPE +#undef RTASN1TMPL_EXT_NAME +#undef RTASN1TMPL_INT_NAME + + +#define RTASN1TMPL_TYPE RTASN1SETOFOBJIDS +#define RTASN1TMPL_EXT_NAME RTAsn1SetOfObjIds +#define RTASN1TMPL_INT_NAME rtAsn1SetOfObjIds +RTASN1TMPL_SET_OF(RTASN1OBJID, RTAsn1ObjId); +#undef RTASN1TMPL_TYPE +#undef RTASN1TMPL_EXT_NAME +#undef RTASN1TMPL_INT_NAME + diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Runtime/common/asn1/asn1-ut-octetstring.cpp virtualbox-4.1.44-dfsg/src/VBox/Runtime/common/asn1/asn1-ut-octetstring.cpp --- virtualbox-4.1.12-dfsg/src/VBox/Runtime/common/asn1/asn1-ut-octetstring.cpp 1970-01-01 00:00:00.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Runtime/common/asn1/asn1-ut-octetstring.cpp 2015-11-11 15:08:59.000000000 +0000 @@ -0,0 +1,426 @@ +/* $Id: asn1-ut-octetstring.cpp $ */ +/** @file + * IPRT - ASN.1, Octet String. + * + * @remarks This file should remain very similar to asn1-ut-bitstring.cpp. + */ + +/* + * Copyright (C) 2006-2014 Oracle Corporation + * + * This file is part of VirtualBox Open Source Edition (OSE), as + * available from http://www.virtualbox.org. This file is free software; + * you can redistribute it and/or modify it under the terms of the GNU + * General Public License (GPL) as published by the Free Software + * Foundation, in version 2 as it comes in the "COPYING" file of the + * VirtualBox OSE distribution. VirtualBox OSE is distributed in the + * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind. + * + * The contents of this file may alternatively be used under the terms + * of the Common Development and Distribution License Version 1.0 + * (CDDL) only, as it comes in the "COPYING.CDDL" file of the + * VirtualBox OSE distribution, in which case the provisions of the + * CDDL are applicable instead of those of the GPL. + * + * You may elect to license modified versions of this file under the + * terms and conditions of either the GPL or the CDDL or both. + */ + +/******************************************************************************* +* Header Files * +*******************************************************************************/ +#include "internal/iprt.h" +#include + +#include +#include +#include +#include +#include +#include + +#include + + +/******************************************************************************* +* Structures and Typedefs * +*******************************************************************************/ +typedef struct RTASN1OCTETSTRINGWRITERCTX +{ + /** Pointer to the output buffer. */ + uint8_t *pbBuf; + /** The current buffer offset. */ + uint32_t offBuf; + /** The size of the buffer. */ + uint32_t cbBuf; +} RTASN1OCTETSTRINGWRITERCTX; + + +/** @callback_method_impl{FNRTASN1ENCODEWRITER, + * Used to refresh the content of octet and bit strings. } */ +static DECLCALLBACK(int) rtAsn1OctetStringEncodeWriter(const void *pvBuf, size_t cbToWrite, void *pvUser, PRTERRINFO pErrInfo) +{ + RTASN1OCTETSTRINGWRITERCTX *pCtx = (RTASN1OCTETSTRINGWRITERCTX *)pvUser; + AssertReturn(cbToWrite <= pCtx->cbBuf - pCtx->offBuf, + RTErrInfoSetF(pErrInfo, VERR_BUFFER_OVERFLOW, + "cbToWrite=%#x offBuf=%#x cbBuf=%#x", cbToWrite, pCtx->cbBuf, pCtx->offBuf)); + memcpy(&pCtx->pbBuf[pCtx->offBuf], pvBuf, cbToWrite); + pCtx->offBuf += (uint32_t)cbToWrite; + return VINF_SUCCESS; +} + + +/** @callback_method_impl{FNRTASN1ENCODEWRITER, + * Used to compare the encoded raw content of an octet or bit string with the + * encapsulated object. } */ +static DECLCALLBACK(int) rtAsn1OctetStringEncodeCompare(const void *pvBuf, size_t cbToWrite, void *pvUser, PRTERRINFO pErrInfo) +{ + RTASN1OCTETSTRINGWRITERCTX *pCtx = (RTASN1OCTETSTRINGWRITERCTX *)pvUser; + AssertReturn(cbToWrite <= pCtx->cbBuf - pCtx->offBuf, VERR_BUFFER_OVERFLOW); + if (memcmp(&pCtx->pbBuf[pCtx->offBuf], pvBuf, cbToWrite) != 0) + return VERR_NOT_EQUAL; + pCtx->offBuf += (uint32_t)cbToWrite; + return VINF_SUCCESS; +} + + +/* + * ASN.1 OCTET STRING - Specific Methods + */ + +RTDECL(int) RTAsn1OctetString_RefreshContent(PRTASN1OCTETSTRING pThis, uint32_t fFlags, + PCRTASN1ALLOCATORVTABLE pAllocator, PRTERRINFO pErrInfo) +{ + AssertReturn(pThis->pEncapsulated, VERR_INVALID_STATE); + + uint32_t cbEncoded; + int rc = RTAsn1EncodePrepare(pThis->pEncapsulated, fFlags, &cbEncoded, pErrInfo); + if (RT_SUCCESS(rc)) + { + pThis->Asn1Core.cb = cbEncoded; + + rc = RTAsn1ContentReallocZ(&pThis->Asn1Core, cbEncoded, pAllocator); + if (RT_SUCCESS(rc)) + { + /* Initialize the writer context. */ + RTASN1OCTETSTRINGWRITERCTX Ctx; + Ctx.pbBuf = (uint8_t *)pThis->Asn1Core.uData.pu8; + Ctx.cbBuf = cbEncoded; + Ctx.offBuf = 0; + + rc = RTAsn1EncodeWrite(pThis->pEncapsulated, fFlags, rtAsn1OctetStringEncodeWriter, &Ctx, pErrInfo); + if (RT_SUCCESS(rc)) + { + if (Ctx.offBuf == cbEncoded) + return VINF_SUCCESS; + + rc = RTErrInfoSetF(pErrInfo, rc, "Expected %#x bytes, got %#x", cbEncoded, Ctx.offBuf); + } + } + else + rc = RTErrInfoSetF(pErrInfo, rc, "Error allocating %#x bytes for storing content\n", cbEncoded); + } + return rc; +} + + +RTDECL(bool) RTAsn1OctetString_AreContentBytesValid(PCRTASN1OCTETSTRING pThis, uint32_t fFlags) +{ + if (pThis->pEncapsulated) + { + /* Check the encoded length of the octets. */ + uint32_t cbEncoded; + int rc = RTAsn1EncodePrepare(pThis->pEncapsulated, fFlags, &cbEncoded, NULL); + if (RT_FAILURE(rc)) + return false; + if (pThis->Asn1Core.cb != cbEncoded) + return false; + + /* Check the encoded bytes, if there are any. */ + if (cbEncoded) + { + if (!pThis->Asn1Core.uData.pv) + return false; + + /* Check the other bytes. */ + RTASN1OCTETSTRINGWRITERCTX Ctx; + Ctx.pbBuf = (uint8_t *)pThis->Asn1Core.uData.pu8; + Ctx.cbBuf = cbEncoded; + Ctx.offBuf = 0; + rc = RTAsn1EncodeWrite(pThis->pEncapsulated, fFlags, rtAsn1OctetStringEncodeCompare, &Ctx, NULL); + if (RT_FAILURE(rc)) + return false; + } + } + return true; +} + + +/* + * ASN.1 OCTET STRING - Standard Methods. + */ + +/** @interface_method_impl{FNRTASN1COREVTENCODEPREP} */ +static DECLCALLBACK(int) RTAsn1OctetString_EncodePrep(PRTASN1CORE pThisCore, uint32_t fFlags, PRTERRINFO pErrInfo) +{ + PRTASN1OCTETSTRING pThis = (PRTASN1OCTETSTRING)pThisCore; + if (!pThis->pEncapsulated) + { + Assert(pThis->Asn1Core.cb == 0 || pThis->Asn1Core.uData.pv); + return VINF_SUCCESS; + } + + /* Figure out the size of the encapsulated content. */ + uint32_t cbEncoded; + int rc = RTAsn1EncodePrepare(pThis->pEncapsulated, fFlags, &cbEncoded, pErrInfo); + if (RT_SUCCESS(rc)) + { + /* Free the bytes if they don't match up. */ + if (pThis->Asn1Core.uData.pv) + { + bool fMustFree = pThis->Asn1Core.cb != cbEncoded; + if (!fMustFree) + { + RTASN1OCTETSTRINGWRITERCTX Ctx; + Ctx.pbBuf = (uint8_t *)pThis->Asn1Core.uData.pu8; + Ctx.cbBuf = cbEncoded; + Ctx.offBuf = 0; + rc = RTAsn1EncodeWrite(pThis->pEncapsulated, fFlags, rtAsn1OctetStringEncodeCompare, &Ctx, NULL); + fMustFree = RT_FAILURE_NP(rc); + } + if (fMustFree) + RTAsn1ContentFree(&pThis->Asn1Core); + } + + pThis->Asn1Core.cb = cbEncoded; + rc = RTAsn1EncodeRecalcHdrSize(&pThis->Asn1Core, fFlags, pErrInfo); + } + return rc; +} + + +/** @interface_method_impl{FNRTASN1COREVTENCODEWRITE} */ +static DECLCALLBACK(int) RTAsn1OctetString_EncodeWrite(PRTASN1CORE pThisCore, uint32_t fFlags, PFNRTASN1ENCODEWRITER pfnWriter, + void *pvUser, PRTERRINFO pErrInfo) +{ + PRTASN1OCTETSTRING pThis = (PRTASN1OCTETSTRING)pThisCore; + + /* + * First the header. + */ + int rc = RTAsnEncodeWriteHeader(&pThis->Asn1Core, fFlags, pfnWriter, pvUser, pErrInfo); + if (RT_SUCCESS(rc) && rc != VINF_ASN1_NOT_ENCODED) + { + /* + * If nothing is encapsulated, the core points to the content (if we have any). + */ + if (!pThis->pEncapsulated) + { + if (pThis->Asn1Core.cb > 0) + rc = pfnWriter(pThis->Asn1Core.uData.pu8, pThis->Asn1Core.cb, pvUser, pErrInfo); + } + /* + * Call upon the encapsulated content to serialize itself. + */ + else + rc = RTAsn1EncodeWrite(pThis->pEncapsulated, fFlags, pfnWriter, pvUser, pErrInfo); + } + return rc; +} + + +RT_DECL_DATA_CONST(RTASN1COREVTABLE const) g_RTAsn1OctetString_Vtable = +{ + "OctetString", + sizeof(RTASN1OCTETSTRING), + ASN1_TAG_OCTET_STRING, + ASN1_TAGCLASS_UNIVERSAL | ASN1_TAGFLAG_PRIMITIVE, + 0, + (PFNRTASN1COREVTDTOR)RTAsn1OctetString_Delete, + (PFNRTASN1COREVTENUM)RTAsn1OctetString_Enum, + (PFNRTASN1COREVTCLONE)RTAsn1OctetString_Clone, + (PFNRTASN1COREVTCOMPARE)RTAsn1OctetString_Compare, + (PFNRTASN1COREVTCHECKSANITY)RTAsn1OctetString_CheckSanity, + RTAsn1OctetString_EncodePrep, + RTAsn1OctetString_EncodeWrite +}; + + +RTDECL(int) RTAsn1OctetString_Init(PRTASN1OCTETSTRING pThis, PCRTASN1ALLOCATORVTABLE pAllocator) +{ + RT_ZERO(*pThis); + + RTAsn1Core_InitEx(&pThis->Asn1Core, ASN1_TAG_OCTET_STRING, ASN1_TAGCLASS_UNIVERSAL | ASN1_TAGFLAG_PRIMITIVE, + &g_RTAsn1OctetString_Vtable, RTASN1CORE_F_PRESENT | RTASN1CORE_F_PRIMITE_TAG_STRUCT); + /*pThis->pEncapsulated = NULL;*/ + RTAsn1MemInitAllocation(&pThis->EncapsulatedAllocation, pAllocator); + + return VINF_SUCCESS; +} + + +RTDECL(int) RTAsn1OctetString_Clone(PRTASN1OCTETSTRING pThis, PCRTASN1OCTETSTRING pSrc, PCRTASN1ALLOCATORVTABLE pAllocator) +{ + AssertPtr(pSrc); AssertPtr(pThis); AssertPtr(pAllocator); + + RT_ZERO(*pThis); + if (RTAsn1OctetString_IsPresent(pSrc)) + { + AssertReturn(pSrc->Asn1Core.pOps == &g_RTAsn1OctetString_Vtable, VERR_INTERNAL_ERROR_3); + + int rc; + if (!pSrc->pEncapsulated) + rc = RTAsn1Core_CloneContent(&pThis->Asn1Core, &pSrc->Asn1Core, pAllocator); + else + rc = RTAsn1Core_CloneNoContent(&pThis->Asn1Core, &pSrc->Asn1Core); + if (RT_FAILURE(rc)) + return rc; + + RTAsn1MemInitAllocation(&pThis->EncapsulatedAllocation, pAllocator); + if (pSrc->pEncapsulated) + { + PCRTASN1COREVTABLE pOps = pSrc->pEncapsulated->pOps; + Assert(!pOps || pOps->pfnClone); + if (pOps && pOps->pfnClone) + { + /* We can clone the decoded encapsulated object. */ + rc = RTAsn1MemAllocZ(&pThis->EncapsulatedAllocation, (void **)&pThis->pEncapsulated, pOps->cbStruct); + if (RT_SUCCESS(rc)) + { + rc = pOps->pfnClone(pThis->pEncapsulated, pSrc->pEncapsulated, pAllocator); + if (RT_FAILURE(rc)) + RTAsn1MemFree(&pThis->EncapsulatedAllocation, pThis->pEncapsulated); + } + } + else + { + /* Borrow the encapsulated pointer and use RTAsn1OctetString_RefreshContent + to get an accurate copy of the bytes. */ + pThis->pEncapsulated = pSrc->pEncapsulated; + rc = RTAsn1OctetString_RefreshContent(pThis, RTASN1ENCODE_F_DER, pAllocator, NULL); + pThis->pEncapsulated = NULL; + } + if (RT_FAILURE(rc)) + { + RTAsn1ContentFree(&pThis->Asn1Core); + RT_ZERO(*pThis); + return rc; + } + } + } + return VINF_SUCCESS; +} + + +RTDECL(void) RTAsn1OctetString_Delete(PRTASN1OCTETSTRING pThis) +{ + if ( pThis + && RTAsn1OctetString_IsPresent(pThis)) + { + Assert(pThis->Asn1Core.pOps == &g_RTAsn1OctetString_Vtable); + + /* Destroy the encapsulated object. */ + if (pThis->pEncapsulated) + { + RTAsn1VtDelete(pThis->pEncapsulated); + if (pThis->EncapsulatedAllocation.cbAllocated) + RTAsn1MemFree(&pThis->EncapsulatedAllocation, pThis->pEncapsulated); + } + + /* Delete content and wipe the content. */ + RTAsn1ContentFree(&pThis->Asn1Core); + RT_ZERO(*pThis); + } +} + + +RTDECL(int) RTAsn1OctetString_Enum(PRTASN1OCTETSTRING pThis, PFNRTASN1ENUMCALLBACK pfnCallback, uint32_t uDepth, void *pvUser) +{ + Assert(pThis && (!RTAsn1OctetString_IsPresent(pThis) || pThis->Asn1Core.pOps == &g_RTAsn1OctetString_Vtable)); + + /* Enumerate the encapsulated object if present. */ + if (pThis->pEncapsulated) + return pfnCallback(pThis->pEncapsulated, "Encapsulated", uDepth + 1, pvUser); + return VINF_SUCCESS; +} + + +RTDECL(int) RTAsn1OctetString_Compare(PCRTASN1OCTETSTRING pLeft, PCRTASN1OCTETSTRING pRight) +{ + Assert(pLeft && (!RTAsn1OctetString_IsPresent(pLeft) || pLeft->Asn1Core.pOps == &g_RTAsn1OctetString_Vtable)); + Assert(pRight && (!RTAsn1OctetString_IsPresent(pRight) || pRight->Asn1Core.pOps == &g_RTAsn1OctetString_Vtable)); + + int iDiff; + if (RTAsn1OctetString_IsPresent(pLeft)) + { + if (RTAsn1OctetString_IsPresent(pRight)) + { + /* Since it's really hard to tell whether encapsulated objects have + been modified or not, we might have to refresh both objects + while doing this compare. We'll try our best to avoid it though. */ + if (pLeft->pEncapsulated || pRight->pEncapsulated) + { + if ( pLeft->pEncapsulated + && pRight->pEncapsulated + && pLeft->pEncapsulated->pOps == pRight->pEncapsulated->pOps) + iDiff = pLeft->pEncapsulated->pOps->pfnCompare(pLeft->pEncapsulated, pRight->pEncapsulated); + else + { + /* No direct comparison of encapsulated objects possible, + make sure we've got the rigth bytes then. */ + if ( pLeft->pEncapsulated + && !RTAsn1OctetString_AreContentBytesValid(pLeft, RTASN1ENCODE_F_DER)) + { + int rc = RTAsn1OctetString_RefreshContent((PRTASN1OCTETSTRING)pLeft, RTASN1ENCODE_F_DER, + pLeft->EncapsulatedAllocation.pAllocator, NULL); + AssertRC(rc); + } + + if ( pRight->pEncapsulated + && !RTAsn1OctetString_AreContentBytesValid(pRight, RTASN1ENCODE_F_DER)) + { + int rc = RTAsn1OctetString_RefreshContent((PRTASN1OCTETSTRING)pRight, RTASN1ENCODE_F_DER, + pRight->EncapsulatedAllocation.pAllocator, NULL); + AssertRC(rc); + } + + /* Compare the content bytes. */ + iDiff = RTAsn1Core_CompareEx(&pLeft->Asn1Core, &pRight->Asn1Core, true /*fIgnoreTagAndClass*/); + } + } + /* + * No encapsulated object, just compare the raw content bytes. + */ + else + iDiff = RTAsn1Core_CompareEx(&pLeft->Asn1Core, &pRight->Asn1Core, true /*fIgnoreTagAndClass*/); + } + else + iDiff = -1; + } + else + iDiff = 0 - (int)RTAsn1OctetString_IsPresent(pRight); + return iDiff; +} + + +RTDECL(int) RTAsn1OctetString_CheckSanity(PCRTASN1OCTETSTRING pThis, uint32_t fFlags, PRTERRINFO pErrInfo, const char *pszErrorTag) +{ + if (RT_UNLIKELY(!RTAsn1OctetString_IsPresent(pThis))) + return RTErrInfoSetF(pErrInfo, VERR_ASN1_NOT_PRESENT, "%s: Missing (OCTET STRING).", pszErrorTag); + + if (pThis->pEncapsulated) + return pThis->pEncapsulated->pOps->pfnCheckSanity(pThis->pEncapsulated, fFlags & RTASN1_CHECK_SANITY_F_COMMON_MASK, + pErrInfo, pszErrorTag); + return VINF_SUCCESS; +} + + +/* + * Generate code for the associated collection types. + */ +#define RTASN1TMPL_TEMPLATE_FILE "../common/asn1/asn1-ut-octetstring-template.h" +#include +#include +#include +#include + diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Runtime/common/asn1/asn1-ut-octetstring-decode.cpp virtualbox-4.1.44-dfsg/src/VBox/Runtime/common/asn1/asn1-ut-octetstring-decode.cpp --- virtualbox-4.1.12-dfsg/src/VBox/Runtime/common/asn1/asn1-ut-octetstring-decode.cpp 1970-01-01 00:00:00.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Runtime/common/asn1/asn1-ut-octetstring-decode.cpp 2015-11-11 15:08:59.000000000 +0000 @@ -0,0 +1,79 @@ +/* $Id: asn1-ut-octetstring-decode.cpp $ */ +/** @file + * IPRT - ASN.1, OCTET STRING Type, Decoding. + */ + +/* + * Copyright (C) 2006-2014 Oracle Corporation + * + * This file is part of VirtualBox Open Source Edition (OSE), as + * available from http://www.virtualbox.org. This file is free software; + * you can redistribute it and/or modify it under the terms of the GNU + * General Public License (GPL) as published by the Free Software + * Foundation, in version 2 as it comes in the "COPYING" file of the + * VirtualBox OSE distribution. VirtualBox OSE is distributed in the + * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind. + * + * The contents of this file may alternatively be used under the terms + * of the Common Development and Distribution License Version 1.0 + * (CDDL) only, as it comes in the "COPYING.CDDL" file of the + * VirtualBox OSE distribution, in which case the provisions of the + * CDDL are applicable instead of those of the GPL. + * + * You may elect to license modified versions of this file under the + * terms and conditions of either the GPL or the CDDL or both. + */ + +/******************************************************************************* +* Header Files * +*******************************************************************************/ +#include "internal/iprt.h" +#include + +#include +#include + +#include + + +RTDECL(int) RTAsn1OctetString_DecodeAsn1(PRTASN1CURSOR pCursor, uint32_t fFlags, PRTASN1OCTETSTRING pThis, + const char *pszErrorTag) +{ + pThis->pEncapsulated = NULL; + RTAsn1CursorInitAllocation(pCursor, &pThis->EncapsulatedAllocation); + + int rc = RTAsn1CursorReadHdr(pCursor, &pThis->Asn1Core, pszErrorTag); + if (RT_SUCCESS(rc)) + { + rc = RTAsn1CursorMatchTagClassFlagsString(pCursor, &pThis->Asn1Core, ASN1_TAG_OCTET_STRING, + ASN1_TAGCLASS_UNIVERSAL | ASN1_TAGFLAG_PRIMITIVE, + fFlags, pszErrorTag, "OCTET STRING"); + if (RT_SUCCESS(rc)) + { + if ( !(pThis->Asn1Core.fClass & ASN1_TAGFLAG_CONSTRUCTED) + || (fFlags & RTASN1CURSOR_GET_F_IMPLICIT) ) /* PKCS #7 ContentInfo tweak. */ + { + RTAsn1CursorSkip(pCursor, pThis->Asn1Core.cb); + pThis->Asn1Core.pOps = &g_RTAsn1OctetString_Vtable; + pThis->Asn1Core.fFlags |= RTASN1CORE_F_PRIMITE_TAG_STRUCT; + return VINF_SUCCESS; + } + rc = RTAsn1CursorSetInfo(pCursor, VERR_ASN1_CONSTRUCTED_STRING_NOT_IMPL, + "%s: Constructed OCTET STRING not implemented.", pszErrorTag); + } + else + rc = RTAsn1CursorSetInfo(pCursor, rc, "%s: Not OCTET STRING: fClass=%#x / uTag=%#x", + pszErrorTag, pThis->Asn1Core.fClass, pThis->Asn1Core.uTag); + } + RT_ZERO(*pThis); + return rc; +} + + +/* + * Generate code for the associated collection types. + */ +#define RTASN1TMPL_TEMPLATE_FILE "../common/asn1/asn1-ut-octetstring-template.h" +#include +#include + diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Runtime/common/asn1/asn1-ut-octetstring-template.h virtualbox-4.1.44-dfsg/src/VBox/Runtime/common/asn1/asn1-ut-octetstring-template.h --- virtualbox-4.1.12-dfsg/src/VBox/Runtime/common/asn1/asn1-ut-octetstring-template.h 1970-01-01 00:00:00.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Runtime/common/asn1/asn1-ut-octetstring-template.h 2015-11-11 15:08:59.000000000 +0000 @@ -0,0 +1,45 @@ +/* $Id: asn1-ut-octetstring-template.h $ */ +/** @file + * IPRT - ASN.1, Octet String Type, Collection Type Template. + */ + +/* + * Copyright (C) 2006-2014 Oracle Corporation + * + * This file is part of VirtualBox Open Source Edition (OSE), as + * available from http://www.virtualbox.org. This file is free software; + * you can redistribute it and/or modify it under the terms of the GNU + * General Public License (GPL) as published by the Free Software + * Foundation, in version 2 as it comes in the "COPYING" file of the + * VirtualBox OSE distribution. VirtualBox OSE is distributed in the + * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind. + * + * The contents of this file may alternatively be used under the terms + * of the Common Development and Distribution License Version 1.0 + * (CDDL) only, as it comes in the "COPYING.CDDL" file of the + * VirtualBox OSE distribution, in which case the provisions of the + * CDDL are applicable instead of those of the GPL. + * + * You may elect to license modified versions of this file under the + * terms and conditions of either the GPL or the CDDL or both. + */ + +#define RTASN1TMPL_DECL RTDECL + +#define RTASN1TMPL_TYPE RTASN1SEQOFOCTETSTRINGS +#define RTASN1TMPL_EXT_NAME RTAsn1SeqOfOctetStrings +#define RTASN1TMPL_INT_NAME rtAsn1SeqOfOctetStrings +RTASN1TMPL_SEQ_OF(RTASN1OCTETSTRING, RTAsn1OctetString); +#undef RTASN1TMPL_TYPE +#undef RTASN1TMPL_EXT_NAME +#undef RTASN1TMPL_INT_NAME + + +#define RTASN1TMPL_TYPE RTASN1SETOFOCTETSTRINGS +#define RTASN1TMPL_EXT_NAME RTAsn1SetOfOctetStrings +#define RTASN1TMPL_INT_NAME rtAsn1SetOfOctetStrings +RTASN1TMPL_SET_OF(RTASN1OCTETSTRING, RTAsn1OctetString); +#undef RTASN1TMPL_TYPE +#undef RTASN1TMPL_EXT_NAME +#undef RTASN1TMPL_INT_NAME + diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Runtime/common/asn1/asn1-ut-string.cpp virtualbox-4.1.44-dfsg/src/VBox/Runtime/common/asn1/asn1-ut-string.cpp --- virtualbox-4.1.12-dfsg/src/VBox/Runtime/common/asn1/asn1-ut-string.cpp 1970-01-01 00:00:00.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Runtime/common/asn1/asn1-ut-string.cpp 2015-11-11 15:08:59.000000000 +0000 @@ -0,0 +1,1824 @@ +/* $Id: asn1-ut-string.cpp $ */ +/** @file + * IPRT - ASN.1, XXX STRING Types. + */ + +/* + * Copyright (C) 2006-2014 Oracle Corporation + * + * This file is part of VirtualBox Open Source Edition (OSE), as + * available from http://www.virtualbox.org. This file is free software; + * you can redistribute it and/or modify it under the terms of the GNU + * General Public License (GPL) as published by the Free Software + * Foundation, in version 2 as it comes in the "COPYING" file of the + * VirtualBox OSE distribution. VirtualBox OSE is distributed in the + * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind. + * + * The contents of this file may alternatively be used under the terms + * of the Common Development and Distribution License Version 1.0 + * (CDDL) only, as it comes in the "COPYING.CDDL" file of the + * VirtualBox OSE distribution, in which case the provisions of the + * CDDL are applicable instead of those of the GPL. + * + * You may elect to license modified versions of this file under the + * terms and conditions of either the GPL or the CDDL or both. + */ + +/******************************************************************************* +* Header Files * +*******************************************************************************/ +#include "internal/iprt.h" +#include + +#include +#include +#include +#include + +#include + + +/******************************************************************************* +* Global Variables * +*******************************************************************************/ +static uint8_t const g_acbStringTags[] = +{ + /* [ASN1_TAG_EOC] = */ 0, + /* [ASN1_TAG_BOOLEAN] = */ 0, + /* [ASN1_TAG_INTEGER] = */ 0, + /* [ASN1_TAG_BIT_STRING] = */ 0, + /* [ASN1_TAG_OCTET_STRING] = */ 0, + /* [ASN1_TAG_NULL] = */ 0, + /* [ASN1_TAG_OID] = */ 0, + /* [ASN1_TAG_OBJECT_DESCRIPTOR] = */ 0, + /* [ASN1_TAG_EXTERNAL] = */ 0, + /* [ASN1_TAG_REAL] = */ 0, + /* [ASN1_TAG_ENUMERATED] = */ 0, + /* [ASN1_TAG_EMBEDDED_PDV] = */ 0, + /* [ASN1_TAG_UTF8_STRING] = */ 1, + /* [ASN1_TAG_RELATIVE_OID] = */ 0, + /* [ASN1_TAG_RESERVED_14] = */ 0, + /* [ASN1_TAG_RESERVED_15] = */ 0, + /* [ASN1_TAG_SEQUENCE] = */ 0, + /* [ASN1_TAG_SET] = */ 0, + /* [ASN1_TAG_NUMERIC_STRING] = */ 1, + /* [ASN1_TAG_PRINTABLE_STRING] = */ 1, + /* [ASN1_TAG_T61_STRING] = */ 1, + /* [ASN1_TAG_VIDEOTEX_STRING] = */ 1, + /* [ASN1_TAG_IA5_STRING] = */ 1, + /* [ASN1_TAG_UTC_TIME] = */ 0, + /* [ASN1_TAG_GENERALIZED_TIME] = */ 0, + /* [ASN1_TAG_GRAPHIC_STRING] = */ 1, + /* [ASN1_TAG_VISIBLE_STRING] = */ 1, + /* [ASN1_TAG_GENERAL_STRING] = */ 1, + /* [ASN1_TAG_UNIVERSAL_STRING] = */ 4, + /* [ASN1_TAG_CHARACTER_STRING] = */ 1, + /* [ASN1_TAG_BMP_STRING] = */ 2, +}; + + + + +/* + * ISO/IEC-2022 + TeletexString mess. + */ + +/** + * ISO-2022 codepoint mappings. + */ +typedef struct RTISO2022MAP +{ + /** The number of bytes per character. */ + uint8_t cb; + /** The registration number. */ + uint16_t uRegistration; + /** The size of the pauToUni table. */ + uint16_t cToUni; + /** Pointer to the convertion table from ISO-2022 to Unicode. + * ASSUMES that unicode chars above 0xffff won't be required. */ + uint16_t const *pauToUni; + + /** Escape sequence for loading into G0 or C0 or C1 depending on the type (sans + * ESC). */ + uint8_t abEscLoadXX[6]; + /** Escape sequence for loading into G1 (sans ESC). */ + uint8_t abEscLoadG1[6]; + /** Escape sequence for loading into G2 (sans ESC). */ + uint8_t abEscLoadG2[6]; + /** Escape sequence for loading into G3 (sans ESC). */ + uint8_t abEscLoadG3[6]; +} RTISO2022MAP; +/** Pointer to const ISO-2022 mappings. */ +typedef RTISO2022MAP const *PCRTISO2022MAP; + +/** Unused codepoint value. */ +#define RTISO2022_UNUSED UINT16_C(0xffff) + + +/** Dummy mappings to avoid dealing with NULL pointers in the decoder + * registers. */ +static const RTISO2022MAP g_DummyMap = +{ + 1, UINT16_MAX, 0, NULL, + { 0xff, 0xff, 0xff, 0xff, 0xff, 0xff } /* No escape into G0 */, + { 0xff, 0xff, 0xff, 0xff, 0xff, 0xff } /* No escape into G1 */, + { 0xff, 0xff, 0xff, 0xff, 0xff, 0xff } /* No escape into G2 */, + { 0xff, 0xff, 0xff, 0xff, 0xff, 0xff } /* No escape into G3 */ +}; + + +/** GL mappings for ISO-IR-168 (Japanese, update of #87), with space and + * delete. */ +static const RTISO2022MAP g_IsoIr168Map = +{ + //2, 168, RT_ELEMENTS(g_awcIsoIr168Decode), g_awcIsoIr168Decode, + 2, 168, 0, NULL, + { 0x26, 0x40, 0x2b, 0x24, 0x42, 0xff } /* Esc into G0 */, + { 0x26, 0x40, 0x2b, 0x24, 0x29, 0x42 } /* Esc into G1 */, + { 0x26, 0x40, 0x2b, 0x24, 0x2a, 0x42 } /* Esc into G2 */, + { 0x26, 0x40, 0x2b, 0x24, 0x2b, 0x42 } /* Esc into G3 */, +}; + + +/** GL mappings for ISO-IR-165 (Chinese), with space and delete. */ +static const RTISO2022MAP g_IsoIr165Map = +{ + //2, 165, RT_ELEMENTS(g_awcIsoIr165Decode), g_awcIsoIr165Decode, + 2, 165, 0, NULL, + { 0x24, 0x28, 0x45, 0xff, 0xff, 0xff } /* Esc into G0 */, + { 0x24, 0x29, 0x45, 0xff, 0xff, 0xff } /* Esc into G1 */, + { 0x24, 0x2a, 0x45, 0xff, 0xff, 0xff } /* Esc into G2 */, + { 0x24, 0x2b, 0x45, 0xff, 0xff, 0xff } /* Esc into G3 */, +}; + + +/** GL mappings for ISO-IR-150 (Greek), with space and delete. */ +static const RTISO2022MAP g_IsoIr150Map = +{ + //1, 150, RT_ELEMENTS(g_awcIsoIr150Decode), g_awcIsoIr150Decode, + 1, 150, 0, NULL, + { 0x28, 0x21, 0x40, 0xff, 0xff, 0xff } /* Esc into G0 */, + { 0x29, 0x21, 0x40, 0xff, 0xff, 0xff } /* Esc into G1 */, + { 0x2a, 0x21, 0x40, 0xff, 0xff, 0xff } /* Esc into G2 */, + { 0x2b, 0x21, 0x40, 0xff, 0xff, 0xff } /* Esc into G3 */, +}; + + +/** GL mappings for ISO-IR-103 (Teletex supplementary), with space and + * delete. */ +static const RTISO2022MAP g_IsoIr103Map = +{ + //1, 103, RT_ELEMENTS(g_awcIsoIr103Decode), g_awcIsoIr103Decode, + 1, 103, 0, NULL, + { 0x28, 0x76, 0xff, 0xff, 0xff, 0xff } /* Esc into G0 */, + { 0x29, 0x76, 0xff, 0xff, 0xff, 0xff } /* Esc into G1 */, + { 0x2a, 0x76, 0xff, 0xff, 0xff, 0xff } /* Esc into G2 */, + { 0x2b, 0x76, 0xff, 0xff, 0xff, 0xff } /* Esc into G3 */, +}; + + +/** + * GL mapping from ISO-IR-102 (Teletex primary) to unicode, with space and + * delete. + * + * Mostly 1:1, except that (a) what would be dollar is currency sign, (b) + * positions 0x5c, 0x5e, 0x7b, 0x7d and 0x7e are defined not to be used. + */ +static uint16_t const g_awcIsoIr102Decode[0x60] = +{ + 0x0020, 0x0021, 0x0022, 0x0023, 0x00A4, 0x0025, 0x0026, 0x0027, 0x0028, 0x0029, 0x002a, 0x002b, 0x002c, 0x002d, 0x002e, 0x002f, + 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x003a, 0x003b, 0x003c, 0x003d, 0x003e, 0x003f, + 0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, + 0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a, 0x005b, 0xffff, 0x005d, 0xffff, 0x005f, + 0xffff, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, + 0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007a, 0xffff, 0x007c, 0xffff, 0xffff, 0x007f, +}; + +/** GL mappings for ISO-IR-102, with space and delete. */ +static const RTISO2022MAP g_IsoIr102Map = +{ + 1, 102, RT_ELEMENTS(g_awcIsoIr102Decode), g_awcIsoIr102Decode, + { 0x28, 0x75, 0xff, 0xff, 0xff, 0xff } /* Esc into G0 */, + { 0x29, 0x75, 0xff, 0xff, 0xff, 0xff } /* Esc into G1 */, + { 0x2a, 0x75, 0xff, 0xff, 0xff, 0xff } /* Esc into G2 */, + { 0x2b, 0x75, 0xff, 0xff, 0xff, 0xff } /* Esc into G3 */, +}; + + +/** GL mappings for ISO-IR-87 (Japanese), with space and delete. */ +static const RTISO2022MAP g_IsoIr87Map = +{ + //1, 87, RT_ELEMENTS(g_awcIsoIr87Decode), g_awcIsoIr97Decode, + 1, 87, 0, NULL, + { 0x24, 0x42, 0xff, 0xff, 0xff, 0xff } /* Esc into G0 */, + { 0x24, 0x29, 0x42, 0xff, 0xff, 0xff } /* Esc into G1 */, + { 0x24, 0x2a, 0x42, 0xff, 0xff, 0xff } /* Esc into G2 */, + { 0x24, 0x2b, 0x42, 0xff, 0xff, 0xff } /* Esc into G3 */, +}; + + +/** + * GL mapping from ISO-IR-6 (ASCII) to unicode, with space and delete. + * + * Completely 1:1. + */ +static uint16_t const g_awcIsoIr6Decode[0x60] = +{ + 0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027, 0x0028, 0x0029, 0x002a, 0x002b, 0x002c, 0x002d, 0x002e, 0x002f, + 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x003a, 0x003b, 0x003c, 0x003d, 0x003e, 0x003f, + 0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, + 0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a, 0x005b, 0x005c, 0x005d, 0x005e, 0x005f, + 0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, + 0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007a, 0x006b, 0x007c, 0x007d, 0x007e, 0x007f, +}; + +/** GL mappings for ISO-IR-6 (ASCII), with space and delete. */ +static const RTISO2022MAP g_IsoIr6Map = +{ + 1, 6, RT_ELEMENTS(g_awcIsoIr6Decode), g_awcIsoIr6Decode, + { 0x28, 0x42, 0xff, 0xff, 0xff, 0xff } /* Esc into G0 */, + { 0x29, 0x42, 0xff, 0xff, 0xff, 0xff } /* Esc into G1 */, + { 0xff, 0xff, 0xff, 0xff, 0xff, 0xff } /* Esc into G2 */, + { 0xff, 0xff, 0xff, 0xff, 0xff, 0xff } /* Esc into G3 */, +}; + + +/** GL maps. */ +static PCRTISO2022MAP g_paGLMaps[] = +{ + &g_IsoIr6Map, + &g_IsoIr102Map, + &g_IsoIr103Map, + &g_IsoIr150Map, + &g_IsoIr165Map, + &g_IsoIr168Map, +}; + + + +/** GR mappings for ISO-IR-164 (Hebrew supplementary). */ +static const RTISO2022MAP g_IsoIr164Map = +{ + //1, 164, RT_ELEMENTS(g_awcIsoIr164Decode), g_awcIsoIr164Decode + 1, 164, 0, NULL, + { 0xff, 0xff, 0xff, 0xff, 0xff, 0xff } /* Esc into G0 */, + { 0x2d, 0x53, 0xff, 0xff, 0xff, 0xff } /* Esc into G1 */, + { 0x2e, 0x53, 0xff, 0xff, 0xff, 0xff } /* Esc into G2 */, + { 0x2f, 0x53, 0xff, 0xff, 0xff, 0xff } /* Esc into G3 */, +}; + + +/** GR mappings for ISO-IR-156 (Supplementary for ASCII (#6)). */ +static const RTISO2022MAP g_IsoIr156Map = +{ + //1, 156, RT_ELEMENTS(g_awcIsoIr156Decode), g_awcIsoIr156Decode + 1, 156, 0, NULL, + { 0xff, 0xff, 0xff, 0xff, 0xff, 0xff } /* Esc into G0 */, + { 0x2d, 0x52, 0xff, 0xff, 0xff, 0xff } /* Esc into G1 */, + { 0x2e, 0x52, 0xff, 0xff, 0xff, 0xff } /* Esc into G2 */, + { 0x2f, 0x52, 0xff, 0xff, 0xff, 0xff } /* Esc into G3 */, +}; + + +/** GR mappings for ISO-IR-153 (Basic Cyrillic). */ +static const RTISO2022MAP g_IsoIr153Map = +{ + //1, 153, RT_ELEMENTS(g_awcIsoIr153Decode), g_awcIsoIr153Decode + 1, 153, 0, NULL, + { 0xff, 0xff, 0xff, 0xff, 0xff, 0xff } /* Esc into G0 */, + { 0x2d, 0x4f, 0xff, 0xff, 0xff, 0xff } /* Esc into G1 */, + { 0x2e, 0x4f, 0xff, 0xff, 0xff, 0xff } /* Esc into G2 */, + { 0x2f, 0x4f, 0xff, 0xff, 0xff, 0xff } /* Esc into G3 */, +}; + + +/** GR mappings for ISO-IR-144 (Cryllic part of Latin/Cyrillic). */ +static const RTISO2022MAP g_IsoIr144Map = +{ + //1, 144, RT_ELEMENTS(g_awcIsoIr144Decode), g_awcIsoIr144Decode + 1, 144, 0, NULL, + { 0xff, 0xff, 0xff, 0xff, 0xff, 0xff } /* Esc into G0 */, + { 0x2d, 0x4f, 0xff, 0xff, 0xff, 0xff } /* Esc into G1 */, + { 0x2e, 0x4f, 0xff, 0xff, 0xff, 0xff } /* Esc into G2 */, + { 0x2f, 0x4f, 0xff, 0xff, 0xff, 0xff } /* Esc into G3 */, +}; + + +/** GR mappings for ISO-IR-126 (Latin/Greek). */ +static const RTISO2022MAP g_IsoIr126Map = +{ + //1, 126, RT_ELEMENTS(g_awcIsoIr126Decode), g_awcIsoIr126Decode + 1, 126, 0, NULL, + { 0xff, 0xff, 0xff, 0xff, 0xff, 0xff } /* Esc into G0 */, + { 0x2d, 0x46, 0xff, 0xff, 0xff, 0xff } /* Esc into G1 */, + { 0x2e, 0x46, 0xff, 0xff, 0xff, 0xff } /* Esc into G2 */, + { 0x2f, 0x46, 0xff, 0xff, 0xff, 0xff } /* Esc into G3 */, +}; + + +/** GR maps. */ +static PCRTISO2022MAP g_paGRMaps[] = +{ + &g_IsoIr126Map, + &g_IsoIr144Map, + &g_IsoIr153Map, + &g_IsoIr156Map, + &g_IsoIr164Map, +}; + + + +/** C0 mapping from ISO-IR-106 to unicode. */ +static uint16_t g_awcIsoIr106Decode[0x20] = +{ + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0x0008, 0xffff, 0x000a, 0xffff, 0x000c, 0x000d, 0x000e, 0x000f, + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0x008e, 0x000a, 0x001b, 0xffff, 0x008f, 0xffff, 0xffff, +}; + +/** C0 mappings for ISO-IR-106. */ +static const RTISO2022MAP g_IsoIr106Map = +{ + 1, 106, RT_ELEMENTS(g_awcIsoIr106Decode), g_awcIsoIr106Decode, + { 0x21, 0x45, 0xff, 0xff, 0xff, 0xff } /* Esc into C0 */, + { 0xff, 0xff, 0xff, 0xff, 0xff, 0xff } /* N/A */, + { 0xff, 0xff, 0xff, 0xff, 0xff, 0xff } /* N/A */, + { 0xff, 0xff, 0xff, 0xff, 0xff, 0xff } /* N/A */, +}; + +/** C0 maps. */ +static PCRTISO2022MAP g_paC0Maps[] = +{ + &g_IsoIr106Map, +}; + + + +/** C1 mapping from ISO-IR-107 to unicode. */ +static uint16_t g_awcIsoIr107Decode[0x20] = +{ + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0x008b, 0x008c, 0xffff, 0xffff, 0xffff, + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0x009b, 0xffff, 0xffff, 0xffff, 0xffff, +}; + +/** C1 mappings for ISO-IR-107. */ +static const RTISO2022MAP g_IsoIr107Map = +{ + 1, 107, RT_ELEMENTS(g_awcIsoIr107Decode), g_awcIsoIr107Decode, + { 0x22, 0x48, 0xff, 0xff, 0xff, 0xff } /* Esc into C1 */, + { 0xff, 0xff, 0xff, 0xff, 0xff, 0xff } /* N/A */, + { 0xff, 0xff, 0xff, 0xff, 0xff, 0xff } /* N/A */, + { 0xff, 0xff, 0xff, 0xff, 0xff, 0xff } /* N/A */, +}; + +/** C1 maps. */ +static PCRTISO2022MAP g_paC1Maps[] = +{ + &g_IsoIr107Map, +}; + + +static int rtIso2022Decoder_LookupAndSet(PCRTISO2022MAP *ppMapRet, uint16_t uRegistration, PCRTISO2022MAP *papMaps, uint32_t cMaps) +{ + uint32_t i = cMaps; + while (i-- > 0) + if (papMaps[i]->uRegistration == uRegistration) + { + /** @todo skip non-Teletex codesets if we ever add more than we need for it. */ + *ppMapRet = papMaps[i]; + return VINF_SUCCESS; + } + return VERR_ASN1_INVALID_T61_STRING_ENCODING; +} + + +/** + * ISO-2022 decoder state. + */ +typedef struct RTISO2022DECODERSTATE +{ + /** Pointer to the string */ + uint8_t const *pabString; + /** The string size. */ + uint32_t cbString; + /** The current string position. */ + uint32_t offString; + + /** The GL mapping. */ + PCRTISO2022MAP pMapGL; + /** The GR mapping. */ + PCRTISO2022MAP pMapGR; + /** The lower control set (C0) mapping. */ + PCRTISO2022MAP pMapC0; + /** The higher control set (C1) mapping. */ + PCRTISO2022MAP pMapC1; + /** The G0, G1, G2, and G3 mappings. */ + PCRTISO2022MAP apMapGn[4]; + /** Used by SS2 & SS3 to store the orignal GL value that is to be restored. */ + PCRTISO2022MAP pRestoreGL; + /** Pointer to extended error info buffer, optional. */ + PRTERRINFO pErrInfo; +} RTISO2022DECODERSTATE; +/** Pointer to a const ISO-2022 decoder state. */ +typedef RTISO2022DECODERSTATE *PRTISO2022DECODERSTATE; + + +static int rtIso2022Decoder_SetGL(PRTISO2022DECODERSTATE pThis, PCRTISO2022MAP pNewMap) +{ + pThis->pMapGL = pNewMap; + return VINF_SUCCESS; +} + + +static int rtIso2022Decoder_SetGR(PRTISO2022DECODERSTATE pThis, PCRTISO2022MAP pNewMap) +{ + pThis->pMapGR = pNewMap; + return VINF_SUCCESS; +} + + +static int rtIso2022Decoder_SetGLForOneChar(PRTISO2022DECODERSTATE pThis, PCRTISO2022MAP pTmpMap) +{ + pThis->pRestoreGL = pThis->pMapGL; + pThis->pMapGL = pTmpMap; + return VINF_SUCCESS; +} + + +static int rtIso2022Decoder_SetC0(PRTISO2022DECODERSTATE pThis, uint16_t uRegistration) +{ + return rtIso2022Decoder_LookupAndSet(&pThis->pMapC0, uRegistration, g_paC0Maps, RT_ELEMENTS(g_paC0Maps)); +} + + +static int rtIso2022Decoder_SetC1(PRTISO2022DECODERSTATE pThis, uint16_t uRegistration) +{ + return rtIso2022Decoder_LookupAndSet(&pThis->pMapC1, uRegistration, g_paC1Maps, RT_ELEMENTS(g_paC1Maps)); +} + + +/** + * Worker for rtIso2022Decoder_FindEscAndSet. + * + * @returns true if match, false if not. + * @param pabLeft Pointer to the first string byte after the ESC. + * @param cbLeft The number of bytes left in the string. + * @param pabRight Pointer to the abEscLoad* byte array to match with. + * @param cbRight Size of the mapping sequence (fixed). + * @param pcchMatch Where to return the length of the escape sequence (sans + * ESC) on success. + */ +static bool rtIso2022Decoder_MatchEscSeqFrom2ndByte(uint8_t const *pabLeft, uint32_t cbLeft, + uint8_t const *pabRight, uint32_t cbRight, + uint32_t *pcchMatch) +{ + Assert(cbRight == 6); + uint32_t i = 1; + while (i < cbRight) + { + if (pabRight[i] == 0xff) + break; + if (cbLeft <= i || pabLeft[i] != pabRight[i]) + return false; + i++; + } + *pcchMatch = i; + return true; +} + + +/** + * Finds a the set with a matching abEscLoad* escape sequence and loads it into + * the designated register. + * + * @returns The length of the sequence on success, negative error status code on + * failure. + * @param pThis The decoder instance. + * @param ppMapRet Used to specify C0 or C1 maps when processing + * escape sequences for loading these. Only the + * abEscLoadXX arrays will be searched if this is + * not NULL. For loading {G0,...,G3} pass NULL. + * @param pb Pointer to the start of the escape sequence. + * @param cb The number of bytes remaining in the string. + * @param papMaps The maps to search. + * @param cMaps The number of maps @a papMaps points to. + */ +static int rtIso2022Decoder_FindEscAndSet(PRTISO2022DECODERSTATE pThis, + PCRTISO2022MAP *ppMapRet, PCRTISO2022MAP *papMaps, uint32_t cMaps) +{ + /* Skip the ESC.*/ + uint8_t const *pb = &pThis->pabString[pThis->offString + 1]; + uint32_t cb = pThis->cbString - (pThis->offString + 1); + + /* Cache the first char. */ + uint8_t const b0 = pb[0]; + + /* Scan the array of maps for matching sequences. */ + uint32_t i = cMaps; + while (i-- > 0) + { + uint32_t cchMatch; + PCRTISO2022MAP pMap = papMaps[i]; + /** @todo skip non-Teletex codesets if we ever add more than we need for it. */ + if ( pMap->abEscLoadXX[0] == b0 + && rtIso2022Decoder_MatchEscSeqFrom2ndByte(pb, cb, pMap->abEscLoadXX, sizeof(pMap->abEscLoadXX), &cchMatch) ) + { + if (ppMapRet) + *ppMapRet = pMap; + else + pThis->apMapGn[0] = pMap; + return cchMatch + 1; + } + else if (!ppMapRet) /* ppMapRet is NULL if Gn. */ + { + uint32_t iGn; + if ( pMap->abEscLoadG1[0] == b0 + && rtIso2022Decoder_MatchEscSeqFrom2ndByte(pb, cb, pMap->abEscLoadG1, sizeof(pMap->abEscLoadG1), &cchMatch)) + iGn = 1; + else if ( pMap->abEscLoadG2[0] == b0 + && rtIso2022Decoder_MatchEscSeqFrom2ndByte(pb, cb, pMap->abEscLoadG2, sizeof(pMap->abEscLoadG2), &cchMatch)) + iGn = 2; + else if ( pMap->abEscLoadG3[0] == b0 + && rtIso2022Decoder_MatchEscSeqFrom2ndByte(pb, cb, pMap->abEscLoadG3, sizeof(pMap->abEscLoadG3), &cchMatch)) + iGn = 3; + else + iGn = UINT32_MAX; + if (iGn != UINT32_MAX) + { + pThis->apMapGn[iGn] = pMap; + return cchMatch + 1; + } + } + } + return VERR_ASN1_TELETEX_UNSUPPORTED_CHARSET; +} + + +/** + * Interprets an escape sequence. + * + * @returns The length of the sequence on success, negative error status code on + * failure. + * @param pThis The decoder instance. The offString must be + * pointing to the escape byte. + */ +static int rtIso2022Decoder_InterpretEsc(PRTISO2022DECODERSTATE pThis) +{ + /* the first escape byte. */ + uint32_t offString = pThis->offString; + if (offString + 1 >= pThis->cbString) + return RTErrInfoSetF(pThis->pErrInfo, VERR_ASN1_INVALID_T61_STRING_ENCODING, + "@%u: Unexpected EOS parsing ESC...", offString); + int rc; + switch (pThis->pabString[offString + 1]) + { + /* + * GL selection: + */ + case 0x6e: /* Lock shift two: G2 -> GL */ + rc = rtIso2022Decoder_SetGL(pThis, pThis->apMapGn[2]); + break; + case 0x6f: /* Lock shift three: G3 -> GL */ + rc = rtIso2022Decoder_SetGL(pThis, pThis->apMapGn[3]); + break; + case 0x4e: /* Single shift two: G2 -> GL for one char. */ + rc = rtIso2022Decoder_SetGLForOneChar(pThis, pThis->apMapGn[2]); + break; + case 0x4f: /* Single shift three: G3 -> GL for one char. */ + rc = rtIso2022Decoder_SetGLForOneChar(pThis, pThis->apMapGn[3]); + break; + + /* + * GR selection: + */ + case 0x7e: /* Locking shift one right: G1 -> GR. */ + rc = rtIso2022Decoder_SetGR(pThis, pThis->apMapGn[1]); + break; + case 0x7d: /* Locking shift two right: G2 -> GR. */ + rc = rtIso2022Decoder_SetGR(pThis, pThis->apMapGn[2]); + break; + case 0x7c: /* Locking shift three right: G3 -> GR. */ + rc = rtIso2022Decoder_SetGR(pThis, pThis->apMapGn[3]); + break; + + /* + * Cx selection: + */ + case 0x21: /* C0-designate */ + return rtIso2022Decoder_FindEscAndSet(pThis, &pThis->pMapC0, g_paC0Maps, RT_ELEMENTS(g_paC0Maps)); + case 0x22: /* C1-designate */ + return rtIso2022Decoder_FindEscAndSet(pThis, &pThis->pMapC1, g_paC1Maps, RT_ELEMENTS(g_paC1Maps)); + + /* + * Single-byte character set selection. + */ + case 0x28: /* G0-designate, 94 chars. */ + case 0x29: /* G1-designate, 94 chars. */ + case 0x2a: /* G2-designate, 94 chars. */ + case 0x2b: /* G3-designate, 94 chars. */ + return rtIso2022Decoder_FindEscAndSet(pThis, NULL, g_paGLMaps, RT_ELEMENTS(g_paGLMaps)); + + case 0x2c: /* G0-designate, 96 chars. */ + case 0x2d: /* G1-designate, 96 chars. */ + case 0x2e: /* G2-designate, 96 chars. */ + case 0x2f: /* G3-designate, 96 chars. */ + return rtIso2022Decoder_FindEscAndSet(pThis, NULL, g_paGRMaps, RT_ELEMENTS(g_paGRMaps)); + + /* + * Multibyte character set selection. + */ + case 0x24: + if (offString + 2 >= pThis->cbString) + return RTErrInfoSetF(pThis->pErrInfo, VERR_ASN1_INVALID_T61_STRING_ENCODING, + "@%u: Unexpected EOS parsing ESC %#x...", offString, pThis->pabString[offString + 1]); + switch (pThis->pabString[offString + 2]) + { + case 0x28: /* G0-designate, 94^n chars. */ + case 0x29: /* G1-designate, 94^n chars. */ + case 0x2a: /* G2-designate, 94^n chars. */ + case 0x2b: /* G3-designate, 94^n chars. */ + default: /* G0-designate that skips the 0x28? (See japanese ones.) */ + return rtIso2022Decoder_FindEscAndSet(pThis, NULL, g_paGLMaps, RT_ELEMENTS(g_paGLMaps)); + + case 0x2c: /* G0-designate, 96^n chars. */ + case 0x2d: /* G1-designate, 96^n chars. */ + case 0x2e: /* G2-designate, 96^n chars. */ + case 0x2f: /* G3-designate, 96^n chars. */ + return rtIso2022Decoder_FindEscAndSet(pThis, NULL, g_paGRMaps, RT_ELEMENTS(g_paGRMaps)); + } \ + break; + + case 0x26: /* Special escape prefix for #168. */ + return rtIso2022Decoder_FindEscAndSet(pThis, NULL, g_paGLMaps, RT_ELEMENTS(g_paGLMaps)); + + /* + * Unknown/unsupported/unimplemented. + */ + case 0x25: /* Designate other coding system. */ + return RTErrInfoSetF(pThis->pErrInfo, VERR_ASN1_TELETEX_UNSUPPORTED_ESC_SEQ, + "@%u: ESC DOCS not supported\n", offString); + default: + return RTErrInfoSetF(pThis->pErrInfo, VERR_ASN1_TELETEX_UNKNOWN_ESC_SEQ, + "@%u: Unknown escape sequence: ESC %#x...\n", offString, pThis->pabString[offString + 1]); + } + + /* Only single byte escapes sequences for shifting ends up here. */ + if (RT_SUCCESS(rc)) + return 1; + return rc; +} + + +static int rtIso2022Decoder_ControlCharHook(PRTISO2022DECODERSTATE pThis, uint16_t wcControl) +{ + int rc; + switch (wcControl) + { + case 0x000e: /* Locking shift zero: G0 -> GL. */ + rc = rtIso2022Decoder_SetGL(pThis, pThis->apMapGn[0]); + break; + + case 0x000f: /* Locking shift one: G1 -> GL. */ + rc = rtIso2022Decoder_SetGL(pThis, pThis->apMapGn[1]); + break; + + case 0x008e: /* Single shift two: G2 -> GL for one char. */ + rc = rtIso2022Decoder_SetGLForOneChar(pThis, pThis->apMapGn[2]); + break; + + case 0x008f: /* Single shift three: G3 -> GL for one char. */ + rc = rtIso2022Decoder_SetGLForOneChar(pThis, pThis->apMapGn[3]); + break; + + case 0x002b: /* Escape should be handled by the caller. */ + rc = rtIso2022Decoder_InterpretEsc(pThis); + break; + + default: + return 0; + } + + return RT_SUCCESS(rc) ? 1 : rc; +} + + +static int rtIso2022Decoder_Init(PRTISO2022DECODERSTATE pThis, const char *pchString, uint32_t cchString, + uint32_t uGL, uint32_t uC0, uint32_t uC1, uint32_t uG0, + PRTERRINFO pErrInfo) +{ + pThis->pabString = (uint8_t const *)pchString; + pThis->cbString = cchString; + pThis->offString = 0; + + pThis->pMapGL = &g_DummyMap; + pThis->pMapGR = &g_DummyMap; + pThis->pMapC0 = &g_DummyMap; + pThis->pMapC1 = &g_DummyMap; + pThis->pRestoreGL = NULL; + pThis->apMapGn[0] = &g_DummyMap; + pThis->apMapGn[1] = &g_DummyMap; + pThis->apMapGn[2] = &g_DummyMap; + pThis->apMapGn[3] = &g_DummyMap; + pThis->pErrInfo = pErrInfo; + + int rc = VINF_SUCCESS; + if (uGL != UINT32_MAX) + rc = rtIso2022Decoder_LookupAndSet(&pThis->pMapGL, uGL, g_paGLMaps, RT_ELEMENTS(g_paGLMaps)); + if (RT_SUCCESS(rc) && uG0 != UINT32_MAX) + rc = rtIso2022Decoder_LookupAndSet(&pThis->apMapGn[0], uG0, g_paGLMaps, RT_ELEMENTS(g_paGLMaps)); + if (RT_SUCCESS(rc) && uC0 != UINT32_MAX) + rc = rtIso2022Decoder_SetC0(pThis, uC0); + if (RT_SUCCESS(rc) && uC1 != UINT32_MAX) + rc = rtIso2022Decoder_SetC1(pThis, uC1); + return rc; +} + + +static int rtIso2022Decoder_GetNextUniCpSlow(PRTISO2022DECODERSTATE pThis, PRTUNICP pUniCp) +{ + while (pThis->offString < pThis->cbString) + { + uint8_t b = pThis->pabString[pThis->offString]; + if (!(b & 0x80)) + { + if (b >= 0x20) + { + /* + * GL range. + */ + b -= 0x20; + PCRTISO2022MAP pMap = pThis->pMapGL; + + /* Single byte character map. */ + if (pMap->cb == 1) + { + if (RT_LIKELY(b < pMap->cToUni)) + { + uint16_t wc = pMap->pauToUni[b]; + if (RT_LIKELY(wc != RTISO2022_UNUSED)) + { + *pUniCp = wc; + pThis->offString += 1; + return VINF_SUCCESS; + } + *pUniCp = RTUNICP_INVALID; + return RTErrInfoSetF(pThis->pErrInfo, VERR_ASN1_INVALID_T61_STRING_ENCODING, + "@%u: GL b=%#x is marked unused in map #u range %u.", + pThis->offString, b + 0x20, pMap->uRegistration, pMap->cToUni); + } + *pUniCp = RTUNICP_INVALID; + return RTErrInfoSetF(pThis->pErrInfo, VERR_ASN1_INVALID_T61_STRING_ENCODING, + "@%u: GL b=%#x is outside map #u range %u.", + pThis->offString, b + 0x20, pMap->uRegistration, pMap->cToUni); + } + + /* Double byte character set. */ + Assert(pMap->cb == 2); + if (pThis->offString + 1 < pThis->cbString) + { + uint8_t b2 = pThis->pabString[pThis->offString + 1]; + b2 -= 0x20; + if (RT_LIKELY(b2 < 0x60)) + { + uint16_t u16 = ((uint16_t)b << 8) | b2; + if (RT_LIKELY(u16 < pMap->cToUni)) + { + uint16_t wc = pMap->pauToUni[b]; + if (RT_LIKELY(wc != RTISO2022_UNUSED)) + { + *pUniCp = wc; + pThis->offString += 2; + return VINF_SUCCESS; + } + *pUniCp = RTUNICP_INVALID; + return RTErrInfoSetF(pThis->pErrInfo, VERR_ASN1_INVALID_T61_STRING_ENCODING, + "@%u: GL b=%#x is marked unused in map #u.", + pThis->offString, b + 0x20, pMap->uRegistration); + } + if (u16 >= 0x7f00) + { + *pUniCp = 0x7f; /* delete */ + pThis->offString += 2; + return VINF_SUCCESS; + } + *pUniCp = RTUNICP_INVALID; + return RTErrInfoSetF(pThis->pErrInfo, VERR_ASN1_INVALID_T61_STRING_ENCODING, + "@%u: GL u16=%#x (b0=%#x b1=%#x) is outside map #u range %u.", + pThis->offString, u16, b + 0x20, b2 + 0x20, pMap->uRegistration, pMap->cToUni); + } + return RTErrInfoSetF(pThis->pErrInfo, VERR_ASN1_INVALID_T61_STRING_ENCODING, + "@%u: 2nd GL byte outside GL range: b0=%#x b1=%#x (map #u)", + pThis->offString, b + 0x20, b2 + 0x20, pMap->uRegistration); + + } + return RTErrInfoSetF(pThis->pErrInfo, VERR_ASN1_INVALID_T61_STRING_ENCODING, + "@%u: EOS reading 2nd byte for GL b=%#x (map #u).", + pThis->offString, b + 0x20, pMap->uRegistration); + } + else + { + /* + * C0 range. + */ + Assert(pThis->pMapC0->cb == 0x20); + uint16_t wc = pThis->pMapC0->pauToUni[b]; + if (wc != RTISO2022_UNUSED) + { + int rc; + if (b == 0x1b || wc == 0x1b) /* ESC is hardcoded, or so they say. */ + rc = rtIso2022Decoder_InterpretEsc(pThis); + else + rc = rtIso2022Decoder_ControlCharHook(pThis, wc); + if (RT_SUCCESS(rc)) + { + if (rc == 0) + { + pThis->offString += 1; + *pUniCp = wc; + return VINF_SUCCESS; + } + pThis->offString += rc; + } + else + return rc; + } + else + return RTErrInfoSetF(pThis->pErrInfo, VERR_ASN1_INVALID_T61_STRING_ENCODING, + "@%u: C0 b=%#x is marked unused in map #u.", + pThis->offString, b, pThis->pMapC0->uRegistration); + } + } + else + { + if (b >= 0xa0) + { + /* + * GR range. + */ + b -= 0xa0; + PCRTISO2022MAP pMap = pThis->pMapGR; + + /* Single byte character map. */ + if (pMap->cb == 1) + { + /** @todo 0xa0 = SPACE and 0xff = DELETE if it's a 94 charater map... */ + if (RT_LIKELY(b < pMap->cToUni)) + { + uint16_t wc = pMap->pauToUni[b]; + if (RT_LIKELY(wc != RTISO2022_UNUSED)) + { + *pUniCp = wc; + pThis->offString += 1; + return VINF_SUCCESS; + } + + *pUniCp = RTUNICP_INVALID; + return RTErrInfoSetF(pThis->pErrInfo, VERR_ASN1_INVALID_T61_STRING_ENCODING, + "@%u: GR b=%#x is marked unused in map #u.", + pThis->offString, b + 0xa0, pMap->uRegistration); + } + *pUniCp = RTUNICP_INVALID; + return RTErrInfoSetF(pThis->pErrInfo, VERR_ASN1_INVALID_T61_STRING_ENCODING, + "@%u: GR b=%#x is outside map #u range %u", + pThis->offString, b + 0xa0, pMap->uRegistration, pMap->cToUni); + } + + /* Double byte character set. */ + Assert(pMap->cb == 2); + if (pThis->offString + 1 < pThis->cbString) + { + uint8_t b2 = pThis->pabString[pThis->offString + 1]; + b2 -= 0xa0; + if (RT_LIKELY(b2 < 0x60)) + { + uint16_t u16 = ((uint16_t)b << 8) | b2; + if (RT_LIKELY(u16 < pMap->cToUni)) + { + uint16_t wc = pMap->pauToUni[b]; + if (RT_LIKELY(wc != RTISO2022_UNUSED)) + { + *pUniCp = wc; + pThis->offString += 2; + return VINF_SUCCESS; + } + + *pUniCp = RTUNICP_INVALID; + return RTErrInfoSetF(pThis->pErrInfo, VERR_ASN1_INVALID_T61_STRING_ENCODING, + "@%u: GR b=%#x is marked unused in map #u.", + pThis->offString, b + 0xa0, pMap->uRegistration); + } + *pUniCp = RTUNICP_INVALID; + return RTErrInfoSetF(pThis->pErrInfo, VERR_ASN1_INVALID_T61_STRING_ENCODING, + "@%u: GR u16=%#x (b0=%#x b1=%#x) is outside map #u range %u.", + pThis->offString, u16, b + 0xa0, b2 + 0xa0, pMap->uRegistration, pMap->cToUni); + } + return RTErrInfoSetF(pThis->pErrInfo, VERR_ASN1_INVALID_T61_STRING_ENCODING, + "@%u: 2nd GR byte outside GR range: b0=%#x b1=%#x (map #u).", + pThis->offString, b + 0xa0, b2 + 0xa0, pMap->uRegistration); + + } + return RTErrInfoSetF(pThis->pErrInfo, VERR_ASN1_INVALID_T61_STRING_ENCODING, + "@%u: EOS reading 2nd byte for GR b=%#x (map #u).", + pThis->offString, b + 0xa0, pMap->uRegistration); + } + else + { + /* + * C2 range. + */ + Assert(pThis->pMapC1->cb == 0x20); + b -= 0x80; + uint16_t wc = pThis->pMapC1->pauToUni[b]; + if (wc != RTISO2022_UNUSED) + { + int rc = rtIso2022Decoder_ControlCharHook(pThis, wc); + if (RT_SUCCESS(rc)) + { + if (rc == 0) + { + pThis->offString += 1; + *pUniCp = wc; + return VINF_SUCCESS; + } + pThis->offString += rc; + } + else + return rc; + } + else + return RTErrInfoSetF(pThis->pErrInfo, VERR_ASN1_INVALID_T61_STRING_ENCODING, + "@%u: C1 b=%#x is marked unused in map #u.", + pThis->offString, b + 0x80, pThis->pMapC1->uRegistration); + } + } + } + + /* End of string. */ + *pUniCp = RTUNICP_INVALID; + return VERR_END_OF_STRING; +} + +DECLINLINE(int) rtIso2022Decoder_GetNextUniCp(PRTISO2022DECODERSTATE pThis, PRTUNICP pUniCp) +{ + /* + * Deal with single byte GL. + */ + uint32_t const offString = pThis->offString; + if (pThis->offString < pThis->cbString) + { + PCRTISO2022MAP const pMapGL = pThis->pMapGL; + if (pMapGL->cb == 1) + { + uint8_t const b = pThis->pabString[offString] - (uint8_t)0x20; + if (b < pMapGL->cToUni) + { + uint16_t wc = pMapGL->pauToUni[b]; + if (wc != RTISO2022_UNUSED) + { + pThis->offString = offString + 1; + *pUniCp = wc; + return VINF_SUCCESS; + } + } + } + + /* + * Deal with complications in the non-inline function. + */ + return rtIso2022Decoder_GetNextUniCpSlow(pThis, pUniCp); + } + + *pUniCp = RTUNICP_INVALID; + return VERR_END_OF_STRING; +} + + +static int rtIso2022ValidateString(uint32_t uProfile, const char *pch, uint32_t cch, size_t *pcchUtf8, PRTERRINFO pErrInfo) +{ + AssertReturn(uProfile == ASN1_TAG_T61_STRING, VERR_INVALID_PARAMETER); /* just a place holder for now. */ + + RTISO2022DECODERSTATE Decoder; + int rc = rtIso2022Decoder_Init(&Decoder, pch, cch, 102, 106, 107, 102, pErrInfo); + if (RT_SUCCESS(rc)) + { + size_t cchUtf8 = 0; + for (;;) + { + RTUNICP uc; + rc = rtIso2022Decoder_GetNextUniCp(&Decoder, &uc); + if (RT_SUCCESS(rc)) + cchUtf8 += RTStrCpSize(uc); + else + { + if (RT_LIKELY(rc == VERR_END_OF_STRING)) + { + *pcchUtf8 = cchUtf8; + return VINF_SUCCESS; + } + return rc; + } + } + } + return rc; +} + + +static int rtIso2022RecodeAsUtf8(uint32_t uProfile, const char *pchSrc, uint32_t cchSrc, char *pszDst, size_t cbDst) +{ + AssertReturn(uProfile == ASN1_TAG_T61_STRING, VERR_INVALID_PARAMETER); /* just a place holder for now. */ + AssertReturn(cbDst > 0, VERR_INVALID_PARAMETER); + + RTISO2022DECODERSTATE Decoder; + int rc = rtIso2022Decoder_Init(&Decoder, pchSrc, cchSrc, 102, 106, 107, 102, NULL /*pErrInfo*/); + if (RT_SUCCESS(rc)) + { + size_t cchUtf8 = 0; + for (;;) + { + RTUNICP uc; + rc = rtIso2022Decoder_GetNextUniCp(&Decoder, &uc); + if (RT_SUCCESS(rc)) + { + if (uc < 0x80 && cbDst > 1) + { + *pszDst++ = (char)uc; + cbDst--; + } + else + { + size_t cchUniCp = RTStrCpSize(uc); + if (cbDst > cchUniCp) + { + cbDst -= cchUniCp; + pszDst = RTStrPutCp(pszDst, uc); + } + else + { + *pszDst = '\0'; + return VERR_BUFFER_OVERFLOW; + } + } + } + else if (RT_LIKELY(rc == VERR_END_OF_STRING)) + { + *pszDst = '\0'; + return VINF_SUCCESS; + } + else + return rc; + } + } + return rc; +} + + + +/** The unicode mapping of the C1 area of windows codepage 1252. + * The rest of the code page is 1:1 with unicode. */ +static uint16_t g_awcWin1252_C1[0x20] = +{ + 0x20ac, 0x0081, 0x201a, 0x0192, 0x201e, 0x2026, 0x2020, 0x2021, 0x02c6, 0x2030, 0x0160, 0x2039, 0x0152, 0x008d, 0x017d, 0x008f, + 0x0090, 0x2018, 0x2019, 0x201c, 0x201d, 0x2022, 0x2013, 0x2014, 0x02dc, 0x2122, 0x0161, 0x203a, 0x0153, 0x009d, 0x017e, 0x0178, +}; + + +static size_t rtWin1252CalcUtf8Length(const char *pch, uint32_t cch) +{ + size_t cchUtf8 = 0; + while (cch-- > 0) + { + uint8_t const b = *pch++; + if (b < 0x80) + cchUtf8 += 1; + else if (b >= 0xa0) + cchUtf8 += 2; + else + { + uint16_t const wc = g_awcWin1252_C1[b - 0x80]; + cchUtf8 += RTStrCpSize(wc); + } + } + return cchUtf8; +} + + +static int rtWin1252RecodeAsUtf8(const char *pchSrc, uint32_t cchSrc, char *pszDst, size_t cbDst) +{ + while (cchSrc-- > 0) + { + uint8_t b = *pchSrc++; + if (b < 0x80) + { + if (cbDst <= 1) + return VERR_BUFFER_OVERFLOW; + *pszDst++ = (char)b; + } + else + { + uint16_t const wc = b >= 0xa0 ? b : g_awcWin1252_C1[b - 0x80]; + size_t cchCp = RTStrCpSize(wc); + if (cbDst <= cchCp) + return VERR_BUFFER_OVERFLOW; + pszDst = RTStrPutCp(pszDst, wc); + } + } + + if (!cbDst) + return VERR_BUFFER_OVERFLOW; + *pszDst = '\0'; + return VINF_SUCCESS; +} + + + +/* + * ASN.1 STRING - Specific Methods. + */ + +/** rtAsn1String_IsTeletexLatin1 results. */ +typedef enum RTASN1TELETEXVARIANT +{ + /** Couldn't find hard evidence of either. */ + RTASN1TELETEXVARIANT_UNDECIDED = 1, + /** Pretty certain that it's real teletex. */ + RTASN1TELETEXVARIANT_TELETEX, + /** Pretty sure it's latin-1 or Windows-1252. */ + RTASN1TELETEXVARIANT_LATIN1, + /** Pretty sure it's Windows-1252. */ + RTASN1TELETEXVARIANT_WIN_1252 +} RTASN1TELETEXVARIANT; + +/** + * Takes a guess as whether TELETEX STRING (T61 STRING) is actually is Latin-1 + * or the real thing. + * + * According to RFC-2459, section 4.1.2.4, various libraries, certificate + * authorities and others have perverted the TeletexString/T61String tag by + * ISO-8859-1 (aka latin-1) strings (more probably these are actually Windows + * CP-1252 rather than latin-1). We'll try detect incompatible latin-1 + * perversions by: + * - The use of GR (0xf0-0xff) chars. + * - The lack of ESC sequences and shifts (LS0,LS1,SS2,SS3) + * + * An ASSUMTION here is that GR is not loaded with anything at the start of a + * teletex string, as per table 3 in section 8.23.5.2 in T-REC-X.590.200811. + * + * @retval @c true if chances are good that it's LATIN-1. + * @retval @c false if changes are very good that it's real teletex. + * @param pch The first char in the string. + * @param cch The string length. + * + * @remarks Useful info on Teletex and ISO/IEC-2022: + * https://www.mail-archive.com/asn1@asn1.org/msg00460.html + * http://en.wikipedia.org/wiki/ISO/IEC_2022 + * http://www.open-std.org/cen/tc304/guide/GCONCEPT.HTM + * http://www.ecma-international.org/publications/files/ECMA-ST/Ecma-035.pdf + */ +static RTASN1TELETEXVARIANT rtAsn1String_IsTeletexLatin1(const char *pch, uint32_t cch) +{ + RTASN1TELETEXVARIANT enmVariant = RTASN1TELETEXVARIANT_UNDECIDED; + while (cch-- > 0) + { + uint8_t const b = *pch; + if (b >= 0x20 && b <= 0x7f) + { + if (g_awcIsoIr102Decode[b - 0x20] == RTISO2022_UNUSED) + enmVariant = RTASN1TELETEXVARIANT_LATIN1; + } + else + { + if ( b == 0x1b /* ESC */ + || b == 0x0e /* LS0 / SI */ + || b == 0x0f /* LS1 / SO */ + || b == 0x19 /* SS2 */ + || b == 0x1d /* SS3 */ ) + return RTASN1TELETEXVARIANT_TELETEX; + + if (b >= 0xa0) + enmVariant = RTASN1TELETEXVARIANT_LATIN1; + else if (b >= 0x80 && b <= 0x9f) + { + /* Any use of C1 characters defined by windows cp-1252 will + lead us to believe it's the windows code rather than the + ISO/IEC standard that is being used. (Not that it makes + much of a difference, because we're gonna treat it as the + windows codepage, anyways.) */ + if ( b != 0x81 + && b != 0x8d + && b != 0x8f + && b != 0x90 + && b != 0x9d) + return RTASN1TELETEXVARIANT_WIN_1252; + } + } + } + return RTASN1TELETEXVARIANT_UNDECIDED; +} + + +/** + * Checks the encoding of an ASN.1 string according to it's tag. + * + * @returns IPRT status code. + * @param pThis The string to santity check. + * @param pErrInfo Where to store extra error info. Optional. + * @param pcchUtf8 Where to return the UTF-8 string length. Optional. + */ +static int rtAsn1String_CheckSanity(PCRTASN1STRING pThis, PRTERRINFO pErrInfo, const char *pszErrorTag, size_t *pcchUtf8) +{ + int rc; + uint32_t cch = pThis->Asn1Core.cb; + size_t cchUtf8 = cch; + const char *pch = pThis->Asn1Core.uData.pch; + uint32_t uTag = RTASN1CORE_GET_TAG(&pThis->Asn1Core); + switch (uTag) + { + case ASN1_TAG_UTF8_STRING: + rc = RTStrValidateEncodingEx(pch, cch, 0); + if (RT_SUCCESS(rc)) + break; + return RTErrInfoSetF(pErrInfo, VERR_ASN1_INVALID_UTF8_STRING_ENCODING, + "%s: Bad UTF-8 encoding (%Rrc)", pszErrorTag, rc); + + case ASN1_TAG_NUMERIC_STRING: + while (cch-- > 0) + { + char ch = *pch++; + if ( !RT_C_IS_DIGIT(ch) + && ch != ' ') + return RTErrInfoSetF(pErrInfo, VERR_ASN1_INVALID_NUMERIC_STRING_ENCODING, + "%s: Bad numberic string: ch=%#x", pszErrorTag, ch); + } + break; + + case ASN1_TAG_PRINTABLE_STRING: + while (cch-- > 0) + { + char ch = *pch++; + if ( !RT_C_IS_ALNUM(ch) + && ch != ' ' + && ch != '\'' + && ch != '(' + && ch != ')' + && ch != '+' + && ch != ',' + && ch != '-' + && ch != '.' + && ch != '/' + && ch != ':' + && ch != '=' + && ch != '?' + ) + return RTErrInfoSetF(pErrInfo, VERR_ASN1_INVALID_PRINTABLE_STRING_ENCODING, + "%s: Bad printable string: ch=%#x", pszErrorTag, ch); + } + break; + + case ASN1_TAG_IA5_STRING: /* ASCII */ + while (cch-- > 0) + { + unsigned char ch = *pch++; + if (ch == 0 || ch >= 0x80) + return RTErrInfoSetF(pErrInfo, VERR_ASN1_INVALID_IA5_STRING_ENCODING, + "%s: Bad IA5 string: ch=%#x", pszErrorTag, ch); + } + break; + + case ASN1_TAG_T61_STRING: + switch (rtAsn1String_IsTeletexLatin1(pch, cch)) + { + default: + rc = rtIso2022ValidateString(ASN1_TAG_T61_STRING, pch, cch, &cchUtf8, pErrInfo); + if (RT_FAILURE(rc)) + return rc; + break; + case RTASN1TELETEXVARIANT_UNDECIDED: + case RTASN1TELETEXVARIANT_LATIN1: + case RTASN1TELETEXVARIANT_WIN_1252: + cchUtf8 = rtWin1252CalcUtf8Length(pch, cch); + break; + } + break; + + case ASN1_TAG_VIDEOTEX_STRING: + case ASN1_TAG_GRAPHIC_STRING: + return VERR_ASN1_STRING_TYPE_NOT_IMPLEMENTED; + + case ASN1_TAG_VISIBLE_STRING: + while (cch-- > 0) + { + unsigned char ch = *pch++; + if (ch < 0x20 || ch >= 0x7f) + return RTErrInfoSetF(pErrInfo, VERR_ASN1_INVALID_VISIBLE_STRING_ENCODING, + "%s: Bad visible string: ch=%#x", pszErrorTag, ch); + } + break; + + case ASN1_TAG_GENERAL_STRING: + return VERR_ASN1_STRING_TYPE_NOT_IMPLEMENTED; + + case ASN1_TAG_UNIVERSAL_STRING: + if (!(cch & 3)) + { + uint8_t const *pb = (uint8_t const *)pch; + cchUtf8 = 0; + while (cch > 0) + { + RTUNICP uc = RT_MAKE_U32_FROM_U8(pb[3], pb[2], pb[1], pb[0]); /* big endian */ + if (!RTUniCpIsValid(uc)) + return RTErrInfoSetF(pErrInfo, VERR_ASN1_INVALID_UNIVERSAL_STRING_ENCODING, + "%s: Bad universal string: uc=%#x", pszErrorTag, uc); + cchUtf8 += RTUniCpCalcUtf8Len(uc); + + /* next */ + pb += 4; + cch -= 4; + } + break; + } + return RTErrInfoSetF(pErrInfo, VERR_ASN1_INVALID_UNIVERSAL_STRING_ENCODING, + "%s: Bad universal string: size not a multiple of 4: cch=%#x", pszErrorTag, cch); + + case ASN1_TAG_BMP_STRING: + if (!(cch & 1)) + { + uint8_t const *pb = (uint8_t const *)pch; + cchUtf8 = 0; + while (cch > 0) + { + RTUNICP uc = RT_MAKE_U32_FROM_U8(pb[1], pb[0], 0, 0); /* big endian */ + if (!RTUniCpIsValid(uc)) + return RTErrInfoSetF(pErrInfo, VERR_ASN1_INVALID_BMP_STRING_ENCODING, + "%s: Bad BMP string: uc=%#x", pszErrorTag, uc); + cchUtf8 += RTUniCpCalcUtf8Len(uc); + + /* next */ + pb += 2; + cch -= 2; + } + break; + } + return RTErrInfoSetF(pErrInfo, VERR_ASN1_INVALID_BMP_STRING_ENCODING, + "%s: Bad BMP string: odd number of bytes cch=%#x", pszErrorTag, cch); + + default: + AssertMsgFailedReturn(("uTag=%#x\n", uTag), VERR_INTERNAL_ERROR_3); + } + + if (pcchUtf8) + *pcchUtf8 = cchUtf8; + return VINF_SUCCESS; +} + + +RTDECL(int) RTAsn1String_CompareValues(PCRTASN1STRING pLeft, PCRTASN1STRING pRight) +{ + return RTAsn1String_CompareEx(pLeft, pRight, false /*fTypeToo*/); +} + + +RTDECL(int) RTAsn1String_CompareEx(PCRTASN1STRING pLeft, PCRTASN1STRING pRight, bool fTypeToo) +{ + Assert(pLeft && (!RTAsn1String_IsPresent(pLeft) || pLeft->Asn1Core.pOps == &g_RTAsn1String_Vtable)); + Assert(pRight && (!RTAsn1String_IsPresent(pRight) || pRight->Asn1Core.pOps == &g_RTAsn1String_Vtable)); + + int iDiff; + if (RTAsn1String_IsPresent(pLeft)) + { + if (RTAsn1String_IsPresent(pRight)) + { + if (!fTypeToo || RTASN1CORE_GET_TAG(&pLeft->Asn1Core) == RTASN1CORE_GET_TAG(&pRight->Asn1Core)) + iDiff = RTAsn1Core_CompareEx(&pLeft->Asn1Core, &pRight->Asn1Core, true /*fIgnoreTagAndClass*/); + else + iDiff = RTASN1CORE_GET_TAG(&pLeft->Asn1Core) < RTASN1CORE_GET_TAG(&pRight->Asn1Core) ? -1 : 1; + } + else + iDiff = 1; + } + else + iDiff = 0 - RTAsn1String_IsPresent(pRight); + return iDiff; +} + + +RTDECL(int) RTAsn1String_CompareWithString(PCRTASN1STRING pThis, const char *pszString, size_t cchString) +{ + Assert(pThis && (!RTAsn1String_IsPresent(pThis) || pThis->Asn1Core.pOps == &g_RTAsn1String_Vtable)); + AssertPtr(pszString); + + int iDiff; + if (RTAsn1String_IsPresent(pThis)) + { + if (cchString == RTSTR_MAX) + cchString = strlen(pszString); + + /* + * If there is a UTF-8 conversion available already, use it. + */ + if (pThis->pszUtf8) + { + iDiff = strncmp(pThis->pszUtf8, pszString, cchString); + if (!iDiff && pThis->cchUtf8 != cchString) + iDiff = pThis->cchUtf8 < cchString ? -1 : 1; + } + else + { + /* + * Some types are UTF-8 compatible, so try do the compare without + * RTAsn1String_QueryUtf8. + */ + uint32_t cch = pThis->Asn1Core.cb; + const char *pch = pThis->Asn1Core.uData.pch; + switch (RTASN1CORE_GET_TAG(&pThis->Asn1Core)) + { + case ASN1_TAG_UTF8_STRING: + case ASN1_TAG_NUMERIC_STRING: + case ASN1_TAG_IA5_STRING: + case ASN1_TAG_PRINTABLE_STRING: + iDiff = strncmp(pch, pszString, RT_MIN(cch, cchString)); + if (iDiff && cch != cchString) + iDiff = cch < cchString ? - 1 : 1; + break; + + /** @todo Implement comparing ASN1_TAG_BMP_STRING, ASN1_TAG_UNIVERSAL_STRING and + * ASN1_TAG_T61_STRING with UTF-8 strings without conversion. */ + + default: + { + int rc = RTAsn1String_QueryUtf8(pThis, NULL, NULL); + if (RT_SUCCESS(rc)) + { + iDiff = strncmp(pThis->pszUtf8, pszString, cchString); + if (!iDiff && pThis->cchUtf8 != cchString) + iDiff = pThis->cchUtf8 < cchString ? -1 : 1; + } + else + iDiff = -1; + break; + } + } + } + + /* Reduce the strcmp return value. */ + if (iDiff != 0) + iDiff = iDiff < 0 ? -1 : 1; + } + else + iDiff = -1; + return iDiff; +} + + +RTDECL(int) RTAsn1String_QueryUtf8(PCRTASN1STRING pThis, const char **ppsz, size_t *pcch) +{ + Assert(pThis->Asn1Core.pOps == &g_RTAsn1String_Vtable); + + char *psz = (char *)pThis->pszUtf8; + size_t cch = pThis->cchUtf8; + if (!psz) + { + + /* + * Convert the first time around. Start by validating the encoding and + * calculating the length. + */ + int rc = rtAsn1String_CheckSanity(pThis, NULL, NULL, &cch); + if (RT_SUCCESS(rc)) + { + PRTASN1STRING pThisNC = (PRTASN1STRING)pThis; + rc = RTAsn1MemAllocZ(&pThisNC->Allocation, (void **)&psz, cch + 1); + if (RT_SUCCESS(rc)) + { + /* + * Got memory, now do the actual convertion to UTF-8 / copying. + */ + switch (RTASN1CORE_GET_TAG(&pThis->Asn1Core)) + { + case ASN1_TAG_UTF8_STRING: + case ASN1_TAG_NUMERIC_STRING: + case ASN1_TAG_PRINTABLE_STRING: + case ASN1_TAG_IA5_STRING: + case ASN1_TAG_VISIBLE_STRING: + Assert(cch == pThis->Asn1Core.cb); + memcpy(psz, pThis->Asn1Core.uData.pch, cch); + psz[cch] = '\0'; + break; + + case ASN1_TAG_T61_STRING: + switch (rtAsn1String_IsTeletexLatin1(pThis->Asn1Core.uData.pch, pThis->Asn1Core.cb)) + { + default: + rc = rtIso2022RecodeAsUtf8(ASN1_TAG_T61_STRING, pThis->Asn1Core.uData.pch, pThis->Asn1Core.cb, + psz, cch + 1); + break; + case RTASN1TELETEXVARIANT_UNDECIDED: + case RTASN1TELETEXVARIANT_LATIN1: + case RTASN1TELETEXVARIANT_WIN_1252: + rc = rtWin1252RecodeAsUtf8(pThis->Asn1Core.uData.pch, pThis->Asn1Core.cb, psz, cch + 1); + break; + } + AssertReturnStmt(RT_SUCCESS(rc), RTAsn1MemFree(&pThisNC->Allocation, psz), VERR_INTERNAL_ERROR_3); + break; + + /* case ASN1_TAG_VIDEOTEX_STRING: */ + /* case ASN1_TAG_GRAPHIC_STRING: */ + /* case ASN1_TAG_GENERAL_STRING: */ + + case ASN1_TAG_UNIVERSAL_STRING: + { + char *pszDst = psz; + size_t cchSrc = pThis->Asn1Core.cb; + uint8_t const *pbSrc = pThis->Asn1Core.uData.pu8; + while (cchSrc > 0) + { + RTUNICP uc = RT_MAKE_U32_FROM_U8(pbSrc[3], pbSrc[2], pbSrc[1], pbSrc[0]); /* big endian */ + AssertReturnStmt(RTUniCpIsValid(uc), RTAsn1MemFree(&pThisNC->Allocation, psz), VERR_INTERNAL_ERROR_2); + pszDst = RTStrPutCp(pszDst, uc); + + /* next */ + pbSrc += 4; + cchSrc -= 4; + } + Assert((size_t)(pszDst - psz) == cch); + break; + } + + case ASN1_TAG_BMP_STRING: + { + char *pszDst = psz; + size_t cchSrc = pThis->Asn1Core.cb; + uint8_t const *pbSrc = pThis->Asn1Core.uData.pu8; + while (cchSrc > 0) + { + RTUNICP uc = RT_MAKE_U32_FROM_U8(pbSrc[1], pbSrc[0], 0, 0); /* big endian */ + AssertReturnStmt(RTUniCpIsValid(uc), RTAsn1MemFree(&pThisNC->Allocation, psz), VERR_INTERNAL_ERROR_2); + pszDst = RTStrPutCp(pszDst, uc); + + /* next */ + pbSrc += 2; + cchSrc -= 2; + } + Assert((size_t)(pszDst - psz) == cch); + break; + } + + default: + RTAsn1MemFree(&pThisNC->Allocation, psz); + AssertMsgFailedReturn(("uTag=%#x\n", RTASN1CORE_GET_TAG(&pThis->Asn1Core)), VERR_INTERNAL_ERROR_3); + } + + /* + * Successfully produced UTF-8. Save it in the object. + */ + pThisNC->pszUtf8 = psz; + pThisNC->cchUtf8 = (uint32_t)cch; + } + else + return rc; + } + else + return rc; + } + + /* + * Success. + */ + if (ppsz) + *ppsz = psz; + if (pcch) + *pcch = cch; + return VINF_SUCCESS; +} + + + +RTDECL(int) RTAsn1String_QueryUtf8Len(PCRTASN1STRING pThis, size_t *pcch) +{ + Assert(pThis->Asn1Core.pOps == &g_RTAsn1String_Vtable); + + size_t cch = pThis->cchUtf8; + if (!cch && !pThis->pszUtf8) + { + int rc = rtAsn1String_CheckSanity(pThis, NULL, NULL, &cch); + if (RT_FAILURE(rc)) + return rc; + } + + *pcch = cch; + return VINF_SUCCESS; +} + + + + +RTDECL(int) RTAsn1String_InitEx(PRTASN1STRING pThis, uint32_t uTag, void const *pvValue, size_t cbValue, + PCRTASN1ALLOCATORVTABLE pAllocator) +{ + RT_ZERO(*pThis); + AssertMsgReturn(uTag < RT_ELEMENTS(g_acbStringTags) && g_acbStringTags[uTag] > 0, ("uTag=%#x\n", uTag), + VERR_INVALID_PARAMETER); + + RTAsn1MemInitAllocation(&pThis->Allocation, pAllocator); + RTAsn1Core_InitEx(&pThis->Asn1Core, + uTag, + ASN1_TAGCLASS_UNIVERSAL | ASN1_TAGFLAG_PRIMITIVE, + &g_RTAsn1String_Vtable, + RTASN1CORE_F_PRESENT | RTASN1CORE_F_PRIMITE_TAG_STRUCT); + + if (cbValue > 0) + { + int rc = RTAsn1ContentDup(&pThis->Asn1Core, pvValue, cbValue, pAllocator); + if (RT_FAILURE(rc)) + return rc; + } + + return VINF_SUCCESS; +} + + +RTDECL(int) RTAsn1String_InitWithValue(PRTASN1STRING pThis, const char *pszUtf8Value, PCRTASN1ALLOCATORVTABLE pAllocator) +{ + Assert(RTStrValidateEncoding(pszUtf8Value)); + return RTAsn1String_InitEx(pThis, ASN1_TAG_UTF8_STRING, pszUtf8Value, strlen(pszUtf8Value), pAllocator); +} + + +RTDECL(int) RTAsn1String_RecodeAsUtf8(PRTASN1STRING pThis, PCRTASN1ALLOCATORVTABLE pAllocator) +{ + /* + * Query the UTF-8 string. Do this even if it's already an + * ASN1_TAG_UTF8_STRING object as it makes sure we've got a valid UTF-8 + * string upon successful return. + */ + int rc = RTAsn1String_QueryUtf8(pThis, NULL, NULL); + if (RT_SUCCESS(rc)) + { + if (RTASN1CORE_GET_TAG(&pThis->Asn1Core) != ASN1_TAG_UTF8_STRING) + { + /* + * Resize the content, copy the UTF-8 bytes in there, and change + * the tag. + */ + rc = RTAsn1ContentReallocZ(&pThis->Asn1Core, pThis->cchUtf8, pAllocator); + if (RT_SUCCESS(rc)) + { + memcpy((void *)pThis->Asn1Core.uData.pv, pThis->pszUtf8, pThis->cchUtf8); + rc = RTAsn1Core_ChangeTag(&pThis->Asn1Core, ASN1_TAG_UTF8_STRING); + } + } + } + return rc; +} + + + +/* + * ASN.1 STRING - Standard Methods. + */ + +RT_DECL_DATA_CONST(RTASN1COREVTABLE const) g_RTAsn1String_Vtable = +{ + "RTAsn1String", + sizeof(RTASN1STRING), + UINT8_MAX, + ASN1_TAGCLASS_UNIVERSAL | ASN1_TAGFLAG_PRIMITIVE, + 0, + (PFNRTASN1COREVTDTOR)RTAsn1String_Delete, + NULL, + (PFNRTASN1COREVTCLONE)RTAsn1String_Clone, + (PFNRTASN1COREVTCOMPARE)RTAsn1String_Compare, + (PFNRTASN1COREVTCHECKSANITY)RTAsn1String_CheckSanity, + NULL, + NULL +}; + + +RTDECL(int) RTAsn1String_Init(PRTASN1STRING pThis, PCRTASN1ALLOCATORVTABLE pAllocator) +{ + return RTAsn1String_InitEx(pThis, ASN1_TAG_UTF8_STRING, NULL /*pvValue*/, 0 /*cbValue*/, pAllocator); +} + + +RTDECL(int) RTAsn1String_Clone(PRTASN1STRING pThis, PCRTASN1STRING pSrc, PCRTASN1ALLOCATORVTABLE pAllocator) +{ + AssertPtr(pSrc); AssertPtr(pThis); AssertPtr(pAllocator); + RT_ZERO(*pThis); + if (RTAsn1String_IsPresent(pSrc)) + { + AssertReturn(pSrc->Asn1Core.pOps == &g_RTAsn1String_Vtable, VERR_INTERNAL_ERROR_3); + int rc = RTAsn1Core_CloneContent(&pThis->Asn1Core, &pSrc->Asn1Core, pAllocator); + if (RT_SUCCESS(rc)) + { + /* Don't copy the UTF-8 representation, decode it when queried. */ + RTAsn1MemInitAllocation(&pThis->Allocation, pAllocator); + return VINF_SUCCESS; + } + } + return VINF_SUCCESS; +} + + +RTDECL(void) RTAsn1String_Delete(PRTASN1STRING pThis) +{ + if ( pThis + && RTAsn1String_IsPresent(pThis)) + { + Assert(pThis->Asn1Core.pOps == &g_RTAsn1String_Vtable); + + if (pThis->Allocation.cbAllocated) + RTAsn1MemFree(&pThis->Allocation, (char *)pThis->pszUtf8); + RTAsn1ContentFree(&pThis->Asn1Core); + RT_ZERO(*pThis); + } +} + + +RTDECL(int) RTAsn1String_Enum(PRTASN1STRING pThis, PFNRTASN1ENUMCALLBACK pfnCallback, uint32_t uDepth, void *pvUser) +{ + Assert(pThis && (!RTAsn1String_IsPresent(pThis) || pThis->Asn1Core.pOps == &g_RTAsn1String_Vtable)); + + /* No children to enumerate. */ + return VINF_SUCCESS; +} + + +RTDECL(int) RTAsn1String_Compare(PCRTASN1STRING pLeft, PCRTASN1STRING pRight) +{ + /* Compare tag and binary value. */ + return RTAsn1String_CompareEx(pLeft, pRight, true /*fTypeToo*/); +} + + +RTDECL(int) RTAsn1String_CheckSanity(PCRTASN1STRING pThis, uint32_t fFlags, PRTERRINFO pErrInfo, const char *pszErrorTag) +{ + if (RT_UNLIKELY(!RTAsn1String_IsPresent(pThis))) + return RTErrInfoSetF(pErrInfo, VERR_ASN1_NOT_PRESENT, "%s: Missing (STRING).", pszErrorTag); + return rtAsn1String_CheckSanity(pThis, pErrInfo, pszErrorTag, NULL /*pcchUtf8*/); +} + + +/* + * Generate code for the tag specific methods. + * Note! This is very similar to what we're doing in asn1-ut-time.cpp. + */ +#define RTASN1STRING_IMPL(a_uTag, a_szTag, a_Api) \ + \ + RTDECL(int) RT_CONCAT(a_Api,_Init)(PRTASN1STRING pThis, PCRTASN1ALLOCATORVTABLE pAllocator) \ + { \ + return RTAsn1String_InitEx(pThis, a_uTag, NULL /*pvValue*/, 0 /*cbValue*/, pAllocator); \ + } \ + \ + RTDECL(int) RT_CONCAT(a_Api,_Clone)(PRTASN1STRING pThis, PCRTASN1STRING pSrc, PCRTASN1ALLOCATORVTABLE pAllocator) \ + { \ + AssertReturn(RTASN1CORE_GET_TAG(&pSrc->Asn1Core) == a_uTag || !RTAsn1String_IsPresent(pSrc), \ + VERR_ASN1_STRING_TAG_MISMATCH); \ + return RTAsn1String_Clone(pThis, pSrc, pAllocator); \ + } \ + \ + RTDECL(void) RT_CONCAT(a_Api,_Delete)(PRTASN1STRING pThis) \ + { \ + Assert( !pThis \ + || !RTAsn1String_IsPresent(pThis) \ + || ( pThis->Asn1Core.pOps == &g_RTAsn1String_Vtable \ + && RTASN1CORE_GET_TAG(&pThis->Asn1Core) == a_uTag) ); \ + RTAsn1String_Delete(pThis); \ + } \ + \ + RTDECL(int) RT_CONCAT(a_Api,_Enum)(PRTASN1STRING pThis, PFNRTASN1ENUMCALLBACK pfnCallback, uint32_t uDepth, void *pvUser) \ + { \ + Assert( pThis \ + && ( !RTAsn1String_IsPresent(pThis) \ + || ( pThis->Asn1Core.pOps == &g_RTAsn1String_Vtable \ + && RTASN1CORE_GET_TAG(&pThis->Asn1Core) == a_uTag) ) ); \ + /* No children to enumerate. */ \ + return VINF_SUCCESS; \ + } \ + \ + RTDECL(int) RT_CONCAT(a_Api,_Compare)(PCRTASN1STRING pLeft, PCRTASN1STRING pRight) \ + { \ + int iDiff = RTAsn1String_CompareEx(pLeft, pRight, true /*fTypeToo*/); \ + if (!iDiff && RTASN1CORE_GET_TAG(&pLeft->Asn1Core) != a_uTag && RTAsn1String_IsPresent(pLeft)) \ + iDiff = RTASN1CORE_GET_TAG(&pLeft->Asn1Core) < a_uTag ? -1 : 1; \ + return iDiff; \ + } \ + \ + RTDECL(int) RT_CONCAT(a_Api,_CheckSanity)(PCRTASN1STRING pThis, uint32_t fFlags, \ + PRTERRINFO pErrInfo, const char *pszErrorTag) \ + { \ + if (RTASN1CORE_GET_TAG(&pThis->Asn1Core) != a_uTag && RTAsn1String_IsPresent(pThis)) \ + return RTErrInfoSetF(pErrInfo, VERR_ASN1_STRING_TAG_MISMATCH, "%s: uTag=%#x, expected %#x (%s)", \ + pszErrorTag, RTASN1CORE_GET_TAG(&pThis->Asn1Core), a_uTag, a_szTag); \ + return RTAsn1String_CheckSanity(pThis, fFlags, pErrInfo, pszErrorTag); \ + } + +#include "asn1-ut-string-template2.h" + + +/* + * Generate code for the associated collection types. + */ +#define RTASN1TMPL_TEMPLATE_FILE "../common/asn1/asn1-ut-string-template.h" +#include +#include +#include +#include + diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Runtime/common/asn1/asn1-ut-string-decode.cpp virtualbox-4.1.44-dfsg/src/VBox/Runtime/common/asn1/asn1-ut-string-decode.cpp --- virtualbox-4.1.12-dfsg/src/VBox/Runtime/common/asn1/asn1-ut-string-decode.cpp 1970-01-01 00:00:00.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Runtime/common/asn1/asn1-ut-string-decode.cpp 2015-11-11 15:08:59.000000000 +0000 @@ -0,0 +1,188 @@ +/* $Id: asn1-ut-string-decode.cpp $ */ +/** @file + * IPRT - ASN.1, XXX STRING Types, Decoding. + */ + +/* + * Copyright (C) 2006-2014 Oracle Corporation + * + * This file is part of VirtualBox Open Source Edition (OSE), as + * available from http://www.virtualbox.org. This file is free software; + * you can redistribute it and/or modify it under the terms of the GNU + * General Public License (GPL) as published by the Free Software + * Foundation, in version 2 as it comes in the "COPYING" file of the + * VirtualBox OSE distribution. VirtualBox OSE is distributed in the + * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind. + * + * The contents of this file may alternatively be used under the terms + * of the Common Development and Distribution License Version 1.0 + * (CDDL) only, as it comes in the "COPYING.CDDL" file of the + * VirtualBox OSE distribution, in which case the provisions of the + * CDDL are applicable instead of those of the GPL. + * + * You may elect to license modified versions of this file under the + * terms and conditions of either the GPL or the CDDL or both. + */ + +/******************************************************************************* +* Header Files * +*******************************************************************************/ +#include "internal/iprt.h" +#include + +#include +#include +#include +#include + +#include + + +RTDECL(int) RTAsn1String_DecodeAsn1(PRTASN1CURSOR pCursor, uint32_t fFlags, PRTASN1STRING pThis, const char *pszErrorTag) +{ + RT_ZERO(*pThis); + AssertReturn(!(fFlags & RTASN1CURSOR_GET_F_IMPLICIT), VERR_INVALID_PARAMETER); + + int rc = RTAsn1CursorReadHdr(pCursor, &pThis->Asn1Core, pszErrorTag); + if (RT_SUCCESS(rc)) + { + /* + * Do tag matching. + */ + switch (pThis->Asn1Core.uTag) + { + case ASN1_TAG_UTF8_STRING: + case ASN1_TAG_NUMERIC_STRING: + case ASN1_TAG_PRINTABLE_STRING: + case ASN1_TAG_T61_STRING: + case ASN1_TAG_VIDEOTEX_STRING: + case ASN1_TAG_IA5_STRING: + case ASN1_TAG_GENERALIZED_TIME: + case ASN1_TAG_GRAPHIC_STRING: + case ASN1_TAG_VISIBLE_STRING: + case ASN1_TAG_GENERAL_STRING: + case ASN1_TAG_UNIVERSAL_STRING: + case ASN1_TAG_BMP_STRING: + rc = VINF_SUCCESS; + break; + default: + rc = RTAsn1CursorSetInfo(pCursor, VERR_ASN1_CURSOR_TAG_MISMATCH, + "%s: Not a string object: fClass=%#x / uTag=%#x", + pszErrorTag, pThis->Asn1Core.fClass, pThis->Asn1Core.uTag); + } + if (RT_SUCCESS(rc)) + { + /* + * Match flags. CER/DER makes it complicated. + */ + if (pThis->Asn1Core.fClass == (ASN1_TAGCLASS_UNIVERSAL | ASN1_TAGFLAG_PRIMITIVE)) + { + /* + * Primitive strings are simple. + */ + RTAsn1CursorSkip(pCursor, pThis->Asn1Core.cb); + pThis->Asn1Core.pOps = &g_RTAsn1String_Vtable; + pThis->Asn1Core.fFlags |= RTASN1CORE_F_PRIMITE_TAG_STRUCT; + RTAsn1CursorInitAllocation(pCursor, &pThis->Allocation); + + /* UTF-8 conversion is done lazily, upon request. */ + return VINF_SUCCESS; + } + + if (pThis->Asn1Core.fClass == (ASN1_TAGCLASS_UNIVERSAL | ASN1_TAGFLAG_CONSTRUCTED)) + { + /* + * Constructed strings are not yet fully implemented. + */ + if (pCursor->fFlags & RTASN1CURSOR_FLAGS_DER) + rc = RTAsn1CursorSetInfo(pCursor, VERR_ASN1_CURSOR_ILLEGAL_CONSTRUCTED_STRING, + "%s: DER encoding does not allow constructed strings (cb=%#x uTag=%#x fClass=%#x)", + pszErrorTag, pThis->Asn1Core.cb, pThis->Asn1Core.uTag, pThis->Asn1Core.fClass); + else if (pCursor->fFlags & RTASN1CURSOR_FLAGS_CER) + { + if (pThis->Asn1Core.cb > 1000) + rc = VINF_SUCCESS; + else + rc = RTAsn1CursorSetInfo(pCursor, VERR_ASN1_CURSOR_ILLEGAL_CONSTRUCTED_STRING, + "%s: Constructed strings only allowed for >1000 byte in CER encoding: cb=%#x uTag=%#x fClass=%#x", + pszErrorTag, pThis->Asn1Core.cb, + pThis->Asn1Core.uTag, pThis->Asn1Core.fClass); + } + /** @todo implement constructed strings. */ + if (RT_SUCCESS(rc)) + rc = RTAsn1CursorSetInfo(pCursor, VERR_ASN1_CONSTRUCTED_STRING_NOT_IMPL, + "%s: Support for constructed strings is not implemented", pszErrorTag); + } + else + rc = RTAsn1CursorSetInfo(pCursor, VERR_ASN1_CURSOR_TAG_FLAG_CLASS_MISMATCH, + "%s: Not a valid string object: fClass=%#x / uTag=%#x", + pszErrorTag, pThis->Asn1Core.fClass, pThis->Asn1Core.uTag); + } + } + RT_ZERO(*pThis); + return rc; +} + + +/** + * Common worker for the specific string type getters. + * + * @returns IPRT status code + * @param pCursor The cursor. + * @param fFlags The RTASN1CURSOR_GET_F_XXX flags. + * @param uTag The string tag. + * @param pThis The output object. + * @param pszErrorTag The error tag. + * @param pszWhat The string type name. + */ +static int rtAsn1XxxString_DecodeAsn1(PRTASN1CURSOR pCursor, uint32_t fFlags, uint8_t uTag, PRTASN1STRING pThis, + const char *pszErrorTag, const char *pszWhat) +{ + pThis->cchUtf8 = 0; + pThis->pszUtf8 = NULL; + + int rc = RTAsn1CursorReadHdr(pCursor, &pThis->Asn1Core, pszErrorTag); + if (RT_SUCCESS(rc)) + { + rc = RTAsn1CursorMatchTagClassFlagsString(pCursor, &pThis->Asn1Core, uTag, + ASN1_TAGCLASS_UNIVERSAL | ASN1_TAGFLAG_PRIMITIVE, + fFlags, pszErrorTag, pszWhat); + if (RT_SUCCESS(rc)) + { + if (!(pThis->Asn1Core.fClass & ASN1_TAGFLAG_CONSTRUCTED)) + { + RTAsn1CursorSkip(pCursor, pThis->Asn1Core.cb); + pThis->Asn1Core.pOps = &g_RTAsn1String_Vtable; + pThis->Asn1Core.fFlags |= RTASN1CORE_F_PRIMITE_TAG_STRUCT; + RTAsn1CursorInitAllocation(pCursor, &pThis->Allocation); + /* UTF-8 conversion is done lazily, upon request. */ + return VINF_SUCCESS; + } + rc = RTAsn1CursorSetInfo(pCursor, VERR_ASN1_CONSTRUCTED_STRING_NOT_IMPL, + "%s: Constructed %s not implemented.", pszErrorTag, pszWhat); + } + } + RT_ZERO(*pThis); + return rc; +} + + +/* + * Generate code for the tag specific decoders. + */ +#define RTASN1STRING_IMPL(a_uTag, a_szTag, a_Api) \ + RTDECL(int) RT_CONCAT(a_Api,_DecodeAsn1)(PRTASN1CURSOR pCursor, uint32_t fFlags, \ + PRTASN1STRING pThis, const char *pszErrorTag) \ + { \ + return rtAsn1XxxString_DecodeAsn1(pCursor, fFlags, a_uTag, pThis, pszErrorTag, a_szTag); \ + } +#include "asn1-ut-string-template2.h" + + +/* + * Generate code for the associated collection types. + */ +#define RTASN1TMPL_TEMPLATE_FILE "../common/asn1/asn1-ut-string-template.h" +#include +#include + diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Runtime/common/asn1/asn1-ut-string-template2.h virtualbox-4.1.44-dfsg/src/VBox/Runtime/common/asn1/asn1-ut-string-template2.h --- virtualbox-4.1.12-dfsg/src/VBox/Runtime/common/asn1/asn1-ut-string-template2.h 1970-01-01 00:00:00.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Runtime/common/asn1/asn1-ut-string-template2.h 2015-11-11 15:08:59.000000000 +0000 @@ -0,0 +1,39 @@ +/* $Id: asn1-ut-string-template2.h $ */ +/** @file + * IPRT - ASN.1, XXX STRING Types, Template for type specific wrappers. + */ + +/* + * Copyright (C) 2006-2014 Oracle Corporation + * + * This file is part of VirtualBox Open Source Edition (OSE), as + * available from http://www.virtualbox.org. This file is free software; + * you can redistribute it and/or modify it under the terms of the GNU + * General Public License (GPL) as published by the Free Software + * Foundation, in version 2 as it comes in the "COPYING" file of the + * VirtualBox OSE distribution. VirtualBox OSE is distributed in the + * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind. + * + * The contents of this file may alternatively be used under the terms + * of the Common Development and Distribution License Version 1.0 + * (CDDL) only, as it comes in the "COPYING.CDDL" file of the + * VirtualBox OSE distribution, in which case the provisions of the + * CDDL are applicable instead of those of the GPL. + * + * You may elect to license modified versions of this file under the + * terms and conditions of either the GPL or the CDDL or both. + */ + + +RTASN1STRING_IMPL(ASN1_TAG_NUMERIC_STRING, "NUMERIC STRING", RTAsn1NumericString) +RTASN1STRING_IMPL(ASN1_TAG_PRINTABLE_STRING, "PRINTABLE STRING", RTAsn1PrintableString) +RTASN1STRING_IMPL(ASN1_TAG_T61_STRING, "T61 STRING", RTAsn1T61String) +RTASN1STRING_IMPL(ASN1_TAG_VIDEOTEX_STRING, "VIDEOTEX STRING", RTAsn1VideotexString) +RTASN1STRING_IMPL(ASN1_TAG_VISIBLE_STRING, "VISIBLE STRING", RTAsn1VisibleString) +RTASN1STRING_IMPL(ASN1_TAG_IA5_STRING, "IA5 STRING", RTAsn1Ia5String) +RTASN1STRING_IMPL(ASN1_TAG_GRAPHIC_STRING, "GRAPHIC STRING", RTAsn1GraphicString) +RTASN1STRING_IMPL(ASN1_TAG_GENERAL_STRING, "GENERAL STRING", RTAsn1GeneralString) +RTASN1STRING_IMPL(ASN1_TAG_UTF8_STRING, "UTF8 STRING", RTAsn1Utf8String) +RTASN1STRING_IMPL(ASN1_TAG_BMP_STRING, "BMP STRING", RTAsn1BmpString) +RTASN1STRING_IMPL(ASN1_TAG_UNIVERSAL_STRING, "UNIVERSAL STRING", RTAsn1UniversalString) + diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Runtime/common/asn1/asn1-ut-string-template.h virtualbox-4.1.44-dfsg/src/VBox/Runtime/common/asn1/asn1-ut-string-template.h --- virtualbox-4.1.12-dfsg/src/VBox/Runtime/common/asn1/asn1-ut-string-template.h 1970-01-01 00:00:00.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Runtime/common/asn1/asn1-ut-string-template.h 2015-11-11 15:08:59.000000000 +0000 @@ -0,0 +1,45 @@ +/* $Id: asn1-ut-string-template.h $ */ +/** @file + * IPRT - ASN.1, XXX STRING Types, Collection Type Template. + */ + +/* + * Copyright (C) 2006-2014 Oracle Corporation + * + * This file is part of VirtualBox Open Source Edition (OSE), as + * available from http://www.virtualbox.org. This file is free software; + * you can redistribute it and/or modify it under the terms of the GNU + * General Public License (GPL) as published by the Free Software + * Foundation, in version 2 as it comes in the "COPYING" file of the + * VirtualBox OSE distribution. VirtualBox OSE is distributed in the + * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind. + * + * The contents of this file may alternatively be used under the terms + * of the Common Development and Distribution License Version 1.0 + * (CDDL) only, as it comes in the "COPYING.CDDL" file of the + * VirtualBox OSE distribution, in which case the provisions of the + * CDDL are applicable instead of those of the GPL. + * + * You may elect to license modified versions of this file under the + * terms and conditions of either the GPL or the CDDL or both. + */ + +#define RTASN1TMPL_DECL RTDECL + +#define RTASN1TMPL_TYPE RTASN1SEQOFSTRINGS +#define RTASN1TMPL_EXT_NAME RTAsn1SeqOfStrings +#define RTASN1TMPL_INT_NAME rtAsn1SeqOfStrings +RTASN1TMPL_SEQ_OF(RTASN1STRING, RTAsn1String); +#undef RTASN1TMPL_TYPE +#undef RTASN1TMPL_EXT_NAME +#undef RTASN1TMPL_INT_NAME + + +#define RTASN1TMPL_TYPE RTASN1SETOFSTRINGS +#define RTASN1TMPL_EXT_NAME RTAsn1SetOfStrings +#define RTASN1TMPL_INT_NAME rtAsn1SetOfStrings +RTASN1TMPL_SET_OF(RTASN1STRING, RTAsn1String); +#undef RTASN1TMPL_TYPE +#undef RTASN1TMPL_EXT_NAME +#undef RTASN1TMPL_INT_NAME + diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Runtime/common/asn1/asn1-ut-time.cpp virtualbox-4.1.44-dfsg/src/VBox/Runtime/common/asn1/asn1-ut-time.cpp --- virtualbox-4.1.12-dfsg/src/VBox/Runtime/common/asn1/asn1-ut-time.cpp 1970-01-01 00:00:00.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Runtime/common/asn1/asn1-ut-time.cpp 2015-11-11 15:08:59.000000000 +0000 @@ -0,0 +1,270 @@ +/* $Id: asn1-ut-time.cpp $ */ +/** @file + * IPRT - ASN.1, UTC TIME and GENERALIZED TIME Types. + */ + +/* + * Copyright (C) 2006-2014 Oracle Corporation + * + * This file is part of VirtualBox Open Source Edition (OSE), as + * available from http://www.virtualbox.org. This file is free software; + * you can redistribute it and/or modify it under the terms of the GNU + * General Public License (GPL) as published by the Free Software + * Foundation, in version 2 as it comes in the "COPYING" file of the + * VirtualBox OSE distribution. VirtualBox OSE is distributed in the + * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind. + * + * The contents of this file may alternatively be used under the terms + * of the Common Development and Distribution License Version 1.0 + * (CDDL) only, as it comes in the "COPYING.CDDL" file of the + * VirtualBox OSE distribution, in which case the provisions of the + * CDDL are applicable instead of those of the GPL. + * + * You may elect to license modified versions of this file under the + * terms and conditions of either the GPL or the CDDL or both. + */ + +/******************************************************************************* +* Header Files * +*******************************************************************************/ +#include "internal/iprt.h" +#include + +#include +#include +#include +#include + +#include + + +/******************************************************************************* +* Global Variables * +*******************************************************************************/ +/** The UTC TIME encoding of the IPRT epoch time. */ +static const char g_szEpochUtc[] = "700101000000Z"; +/** The GENERALIZED TIME encoding of the IPRT epoch time. */ +static const char g_szEpochGeneralized[] = "19700101000000Z"; + + +/* + * ASN.1 TIME - Special Methods. + */ + +RTDECL(int) RTAsn1Time_InitEx(PRTASN1TIME pThis, uint32_t uTag, PCRTASN1ALLOCATORVTABLE pAllocator) +{ + AssertReturn(uTag == ASN1_TAG_UTC_TIME || uTag == ASN1_TAG_GENERALIZED_TIME, VERR_INVALID_PARAMETER); + RTAsn1Core_InitEx(&pThis->Asn1Core, + uTag, + ASN1_TAGCLASS_UNIVERSAL | ASN1_TAGFLAG_PRIMITIVE, + &g_RTAsn1Time_Vtable, + RTASN1CORE_F_PRESENT | RTASN1CORE_F_PRIMITE_TAG_STRUCT); + if (uTag == ASN1_TAG_UTC_TIME) + { + pThis->Asn1Core.cb = sizeof(g_szEpochUtc) - 1; + pThis->Asn1Core.uData.pv = &g_szEpochUtc[0]; + } + else + { + pThis->Asn1Core.cb = sizeof(g_szEpochGeneralized) - 1; + pThis->Asn1Core.uData.pv = &g_szEpochGeneralized[0]; + } + return VINF_SUCCESS; +} + + +RTDECL(int) RTAsn1Time_CompareWithTimeSpec(PCRTASN1TIME pLeft, PCRTTIMESPEC pTsRight) +{ + int iDiff = RTAsn1Time_IsPresent(pLeft) ? 0 : -1; + if (!iDiff) + { + RTTIMESPEC TsLeft; + AssertReturn(RTTimeImplode(&TsLeft, &pLeft->Time), -1); + + iDiff = RTTimeSpecCompare(&TsLeft, pTsRight); + } + + return iDiff; +} + + +/* + * ASN.1 TIME - Standard Methods. + */ + +RT_DECL_DATA_CONST(RTASN1COREVTABLE const) g_RTAsn1Time_Vtable = +{ + "RTAsn1Time", + sizeof(RTASN1TIME), + UINT8_MAX, + ASN1_TAGCLASS_UNIVERSAL | ASN1_TAGFLAG_PRIMITIVE, + 0, + (PFNRTASN1COREVTDTOR)RTAsn1Time_Delete, + NULL, + (PFNRTASN1COREVTCLONE)RTAsn1Time_Clone, + (PFNRTASN1COREVTCOMPARE)RTAsn1Time_Compare, + (PFNRTASN1COREVTCHECKSANITY)RTAsn1Time_CheckSanity, + NULL, + NULL +}; + + +RTDECL(int) RTAsn1Time_Init(PRTASN1TIME pThis, PCRTASN1ALLOCATORVTABLE pAllocator) +{ + /* Using UTC TIME since epoch would be encoded using UTC TIME following + X.509 Validity / Whatever time tag guidelines. */ + return RTAsn1Time_InitEx(pThis, ASN1_TAG_UTC_TIME, pAllocator); +} + + +RTDECL(int) RTAsn1Time_Clone(PRTASN1TIME pThis, PCRTASN1TIME pSrc, PCRTASN1ALLOCATORVTABLE pAllocator) +{ + AssertPtr(pSrc); AssertPtr(pThis); AssertPtr(pAllocator); + RT_ZERO(*pThis); + if (RTAsn1Time_IsPresent(pSrc)) + { + AssertReturn(pSrc->Asn1Core.pOps == &g_RTAsn1Time_Vtable, VERR_INTERNAL_ERROR_3); + + int rc = RTAsn1Core_CloneContent(&pThis->Asn1Core, &pSrc->Asn1Core, pAllocator); + if (RT_SUCCESS(rc)) + { + pThis->Time = pSrc->Time; + return VINF_SUCCESS; + } + return rc; + } + return VINF_SUCCESS; +} + + +RTDECL(void) RTAsn1Time_Delete(PRTASN1TIME pThis) +{ + if ( pThis + && RTAsn1Time_IsPresent(pThis)) + { + Assert(pThis->Asn1Core.pOps == &g_RTAsn1Time_Vtable); + + RTAsn1ContentFree(&pThis->Asn1Core); + RT_ZERO(*pThis); + } +} + + +RTDECL(int) RTAsn1Time_Enum(PRTASN1TIME pThis, PFNRTASN1ENUMCALLBACK pfnCallback, uint32_t uDepth, void *pvUser) +{ + Assert(pThis && (!RTAsn1Time_IsPresent(pThis) || pThis->Asn1Core.pOps == &g_RTAsn1Time_Vtable)); + + /* No children to enumerate. */ + return VINF_SUCCESS; +} + + +RTDECL(int) RTAsn1Time_Compare(PCRTASN1TIME pLeft, PCRTASN1TIME pRight) +{ + Assert(pLeft && (!RTAsn1Time_IsPresent(pLeft) || pLeft->Asn1Core.pOps == &g_RTAsn1Time_Vtable)); + Assert(pRight && (!RTAsn1Time_IsPresent(pRight) || pRight->Asn1Core.pOps == &g_RTAsn1Time_Vtable)); + + int iDiff; + if (RTAsn1Time_IsPresent(pLeft)) + { + if (RTAsn1Time_IsPresent(pRight)) + { + RTTIMESPEC TsLeft; + AssertReturn(RTTimeImplode(&TsLeft, &pLeft->Time), -1); + + RTTIMESPEC TsRight; + AssertReturn(RTTimeImplode(&TsRight, &pRight->Time), 1); + + iDiff = RTTimeSpecCompare(&TsLeft, &TsRight); + } + else + iDiff = -1; + } + else + iDiff = 0 - (int)RTAsn1Time_IsPresent(pRight); + return iDiff; +} + + +RTDECL(int) RTAsn1Time_CheckSanity(PCRTASN1TIME pThis, uint32_t fFlags, PRTERRINFO pErrInfo, const char *pszErrorTag) +{ + if (RT_UNLIKELY(!RTAsn1Time_IsPresent(pThis))) + return RTErrInfoSetF(pErrInfo, VERR_ASN1_NOT_PRESENT, "%s: Missing (TIME).", pszErrorTag); + return VINF_SUCCESS; +} + + +/* + * Generate code for the tag specific methods. + * Note! This is very similar to what we're doing in asn1-ut-string.cpp. + */ +#define RTASN1TIME_IMPL(a_uTag, a_szTag, a_Api) \ + \ + RTDECL(int) RT_CONCAT(a_Api,_Init)(PRTASN1TIME pThis, PCRTASN1ALLOCATORVTABLE pAllocator) \ + { \ + return RTAsn1Time_InitEx(pThis, a_uTag, pAllocator); \ + } \ + \ + RTDECL(int) RT_CONCAT(a_Api,_Clone)(PRTASN1TIME pThis, PCRTASN1TIME pSrc, PCRTASN1ALLOCATORVTABLE pAllocator) \ + { \ + AssertReturn(RTASN1CORE_GET_TAG(&pSrc->Asn1Core) == a_uTag || !RTAsn1Time_IsPresent(pSrc), \ + VERR_ASN1_TIME_TAG_MISMATCH); \ + return RTAsn1Time_Clone(pThis, pSrc, pAllocator); \ + } \ + \ + RTDECL(void) RT_CONCAT(a_Api,_Delete)(PRTASN1TIME pThis) \ + { \ + Assert( !pThis \ + || !RTAsn1Time_IsPresent(pThis) \ + || ( pThis->Asn1Core.pOps == &g_RTAsn1Time_Vtable \ + && RTASN1CORE_GET_TAG(&pThis->Asn1Core) == a_uTag) ); \ + RTAsn1Time_Delete(pThis); \ + } \ + \ + RTDECL(int) RT_CONCAT(a_Api,_Enum)(PRTASN1TIME pThis, PFNRTASN1ENUMCALLBACK pfnCallback, uint32_t uDepth, void *pvUser) \ + { \ + Assert( pThis \ + && ( !RTAsn1Time_IsPresent(pThis) \ + || ( pThis->Asn1Core.pOps == &g_RTAsn1Time_Vtable \ + && RTASN1CORE_GET_TAG(&pThis->Asn1Core) == a_uTag) ) ); \ + /* No children to enumerate. */ \ + return VINF_SUCCESS; \ + } \ + \ + RTDECL(int) RT_CONCAT(a_Api,_Compare)(PCRTASN1TIME pLeft, PCRTASN1TIME pRight) \ + { \ + int iDiff = RTAsn1Time_Compare(pLeft, pRight); \ + if (!iDiff && RTAsn1Time_IsPresent(pLeft)) \ + { \ + if (RTASN1CORE_GET_TAG(&pLeft->Asn1Core) == RTASN1CORE_GET_TAG(&pRight->Asn1Core)) \ + { \ + if (RTASN1CORE_GET_TAG(&pLeft->Asn1Core) != a_uTag) \ + iDiff = RTASN1CORE_GET_TAG(&pLeft->Asn1Core) < a_uTag ? -1 : 1; \ + } \ + else \ + iDiff = RTASN1CORE_GET_TAG(&pLeft->Asn1Core) < RTASN1CORE_GET_TAG(&pRight->Asn1Core) ? -1 : 1; \ + } \ + return iDiff; \ + } \ + \ + RTDECL(int) RT_CONCAT(a_Api,_CheckSanity)(PCRTASN1TIME pThis, uint32_t fFlags, \ + PRTERRINFO pErrInfo, const char *pszErrorTag) \ + { \ + if (RTASN1CORE_GET_TAG(&pThis->Asn1Core) != a_uTag && RTAsn1Time_IsPresent(pThis)) \ + return RTErrInfoSetF(pErrInfo, VERR_ASN1_TIME_TAG_MISMATCH, "%s: uTag=%#x, expected %#x (%s)", \ + pszErrorTag, RTASN1CORE_GET_TAG(&pThis->Asn1Core), a_uTag, a_szTag); \ + return RTAsn1Time_CheckSanity(pThis, fFlags, pErrInfo, pszErrorTag); \ + } + +#include "asn1-ut-time-template2.h" + + +/* + * Generate code for the associated collection types. + */ +#define RTASN1TMPL_TEMPLATE_FILE "../common/asn1/asn1-ut-time-template.h" +#include +#include +#include +#include + diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Runtime/common/asn1/asn1-ut-time-decode.cpp virtualbox-4.1.44-dfsg/src/VBox/Runtime/common/asn1/asn1-ut-time-decode.cpp --- virtualbox-4.1.12-dfsg/src/VBox/Runtime/common/asn1/asn1-ut-time-decode.cpp 1970-01-01 00:00:00.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Runtime/common/asn1/asn1-ut-time-decode.cpp 2015-11-11 15:08:59.000000000 +0000 @@ -0,0 +1,389 @@ +/* $Id: asn1-ut-time-decode.cpp $ */ +/** @file + * IPRT - ASN.1, UTC TIME and GENERALIZED TIME Types, Decoding. + */ + +/* + * Copyright (C) 2006-2014 Oracle Corporation + * + * This file is part of VirtualBox Open Source Edition (OSE), as + * available from http://www.virtualbox.org. This file is free software; + * you can redistribute it and/or modify it under the terms of the GNU + * General Public License (GPL) as published by the Free Software + * Foundation, in version 2 as it comes in the "COPYING" file of the + * VirtualBox OSE distribution. VirtualBox OSE is distributed in the + * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind. + * + * The contents of this file may alternatively be used under the terms + * of the Common Development and Distribution License Version 1.0 + * (CDDL) only, as it comes in the "COPYING.CDDL" file of the + * VirtualBox OSE distribution, in which case the provisions of the + * CDDL are applicable instead of those of the GPL. + * + * You may elect to license modified versions of this file under the + * terms and conditions of either the GPL or the CDDL or both. + */ + +/******************************************************************************* +* Header Files * +*******************************************************************************/ +#include "internal/iprt.h" +#include + +#include +#include +#include +#include + +#include + + +/** + * Common code for UTCTime and GeneralizedTime converters that normalizes the + * converted time and checks that the input values doesn't change. + * + * @returns IPRT status code. + * @param pCursor The cursor to use when reporting an error. + * @param pThis The time to normalize and check. + * @param pszType The type name. + * @param pszErrorTag The error tag. + */ +static int rtAsn1Time_NormalizeTime(PRTASN1CURSOR pCursor, PRTASN1TIME pThis, const char *pszType, const char *pszErrorTag) +{ + int rc; + if ( pThis->Time.u8Month > 0 + && pThis->Time.u8Month <= 12 + && pThis->Time.u8Hour < 24 + && pThis->Time.u8Minute < 60 + && pThis->Time.u8Second < 60) /** @todo what about leap seconds? */ + { + RTTIME const TimeCopy = pThis->Time; + if (RTTimeNormalize(&pThis->Time)) + { + if ( TimeCopy.u8MonthDay == pThis->Time.u8MonthDay + && TimeCopy.u8Month == pThis->Time.u8Month + && TimeCopy.i32Year == pThis->Time.i32Year + && TimeCopy.u8Hour == pThis->Time.u8Hour + && TimeCopy.u8Minute == pThis->Time.u8Minute + && TimeCopy.u8Second == pThis->Time.u8Second) + return VINF_SUCCESS; + + rc = RTAsn1CursorSetInfo(pCursor, VERR_ASN1_TIME_NORMALIZE_MISMATCH, + "%s: Normalized result not the same as %s: '%.*s'", + pszErrorTag, pszType, pThis->Asn1Core.cb, pThis->Asn1Core.uData.pch); + } + else + rc = RTAsn1CursorSetInfo(pCursor, VERR_ASN1_TIME_NORMALIZE_ERROR, + "%s: RTTimeNormalize failed on %s: '%.*s'", + pszErrorTag, pszType, pThis->Asn1Core.cb, pThis->Asn1Core.uData.pch); + } + else + rc = RTAsn1CursorSetInfo(pCursor, VERR_ASN1_TIME_BAD_NORMALIZE_INPUT, + "%s: Bad %s values: '%.*s'; mth=%u h=%u min=%u sec=%u", + pszErrorTag, pszType, pThis->Asn1Core.cb, pThis->Asn1Core.uData.pch, + pThis->Time.u8Month, pThis->Time.u8Hour, pThis->Time.u8Minute, pThis->Time.u8Second); + return rc; +} + + +/** + * Converts the UTCTime string into an the RTTIME member of RTASN1TIME. + * + * @returns IPRT status code. + * @param pCursor The cursor to use when reporting an error. + * @param pThis The time to parse. + * @param pszErrorTag The error tag. + */ +static int rtAsn1Time_ConvertUTCTime(PRTASN1CURSOR pCursor, PRTASN1TIME pThis, const char *pszErrorTag) +{ + /* + * While the current spec says the seconds field is not optional, this + * restriction was added later on. So, when parsing UTCTime we must deal + * with it being absent. + */ + int rc; + bool fHaveSeconds = pThis->Asn1Core.cb == sizeof("YYMMDDHHMMSSZ") - 1; + if (fHaveSeconds || pThis->Asn1Core.cb == sizeof("YYMMDDHHMMZ") - 1) + { + const char *pachTime = pThis->Asn1Core.uData.pch; + + /* Basic encoding validation. */ + if ( RT_C_IS_DIGIT(pachTime[0]) /* Y */ + && RT_C_IS_DIGIT(pachTime[1]) /* Y */ + && RT_C_IS_DIGIT(pachTime[2]) /* M */ + && RT_C_IS_DIGIT(pachTime[3]) /* M */ + && RT_C_IS_DIGIT(pachTime[4]) /* D */ + && RT_C_IS_DIGIT(pachTime[5]) /* D */ + && RT_C_IS_DIGIT(pachTime[6]) /* H */ + && RT_C_IS_DIGIT(pachTime[7]) /* H */ + && RT_C_IS_DIGIT(pachTime[8]) /* M */ + && RT_C_IS_DIGIT(pachTime[9]) /* M */ + && ( !fHaveSeconds + || ( RT_C_IS_DIGIT(pachTime[10]) /* S */ + && RT_C_IS_DIGIT(pachTime[11]) /* S */ ) ) + && pachTime[fHaveSeconds ? 12 : 10] == 'Z' + ) + { + /* Basic conversion. */ + pThis->Time.i32Year = (pachTime[0] - '0') * 10 + (pachTime[1] - '0'); + pThis->Time.i32Year += pThis->Time.i32Year < 50 ? 2000 : 1900; + pThis->Time.u8Month = (pachTime[2] - '0') * 10 + (pachTime[3] - '0'); + pThis->Time.u8WeekDay = 0; + pThis->Time.u16YearDay = 0; + pThis->Time.u8MonthDay = (pachTime[4] - '0') * 10 + (pachTime[5] - '0'); + pThis->Time.u8Hour = (pachTime[6] - '0') * 10 + (pachTime[7] - '0'); + pThis->Time.u8Minute = (pachTime[8] - '0') * 10 + (pachTime[9] - '0'); + if (fHaveSeconds) + pThis->Time.u8Second = (pachTime[10] - '0') * 10 + (pachTime[11] - '0'); + else + pThis->Time.u8Second = 0; + pThis->Time.u32Nanosecond = 0; + pThis->Time.fFlags = RTTIME_FLAGS_TYPE_UTC; + pThis->Time.offUTC = 0; + + /* Check the convered data and normalize the time structure. */ + rc = rtAsn1Time_NormalizeTime(pCursor, pThis, "UTCTime", pszErrorTag); + if (RT_SUCCESS(rc)) + return rc; + } + else + rc = RTAsn1CursorSetInfo(pCursor, VERR_ASN1_INVALID_UTC_TIME_ENCODING, "%s: Bad UTCTime encoding: '%.*s'", + pszErrorTag, pThis->Asn1Core.cb, pachTime); + } + else + rc = RTAsn1CursorSetInfo(pCursor, VERR_ASN1_INVALID_UTC_TIME_ENCODING, "%s: Bad UTCTime length: %#x", + pszErrorTag, pThis->Asn1Core.cb); + RT_ZERO(*pThis); + return rc; +} + + +/** + * Converts the fraction part of a generalized time into nanoseconds. + * + * @returns IPRT status code. + * @param pCursor The cursor to use when reporting an error. + * @param pchFraction Pointer to the start of the fraction (dot). + * @param cchFraction The length of the fraction. + * @param pThis The time object we're working on, + * Time.u32Nanoseconds will be update. + * @param pszErrorTag The error tag. + */ +static int rtAsn1Time_ConvertGeneralizedTimeFraction(PRTASN1CURSOR pCursor, const char *pchFraction, uint32_t cchFraction, + PRTASN1TIME pThis, const char *pszErrorTag) +{ + pThis->Time.u32Nanosecond = 0; + + /* + * Check the dot. + */ + if (*pchFraction != '.') + return RTAsn1CursorSetInfo(pCursor, VERR_ASN1_INVALID_GENERALIZED_TIME_ENCODING, + "%s: Expected GeneralizedTime fraction dot, found: '%c' ('%.*s')", + pszErrorTag, *pchFraction, pThis->Asn1Core.cb, pThis->Asn1Core.uData.pch); + pchFraction++; + cchFraction--; + if (!cchFraction) + return RTAsn1CursorSetInfo(pCursor, VERR_ASN1_INVALID_GENERALIZED_TIME_ENCODING, + "%s: No digit following GeneralizedTime fraction dot: '%.*s'", + pszErrorTag, pThis->Asn1Core.cb, pThis->Asn1Core); + + /* + * Do the conversion. + */ + char chLastDigit; + uint32_t uMult = 100000000; + do + { + char chDigit = chLastDigit = *pchFraction; + if (!RT_C_IS_DIGIT(chDigit)) + return RTAsn1CursorSetInfo(pCursor, VERR_ASN1_INVALID_GENERALIZED_TIME_ENCODING, + "%s: Bad GeneralizedTime fraction digit: '%.*s'", + pszErrorTag, pThis->Asn1Core.cb, pThis->Asn1Core.uData.pch); + pThis->Time.u32Nanosecond += uMult * (uint32_t)(chDigit - '0'); + + /* Advance */ + cchFraction--; + pchFraction++; + uMult /= 10; + } while (cchFraction > 0 && uMult > 0); + + /* + * Lazy bird: For now, we don't permit higher resolution than we can + * internally represent. Deal with this if it ever becomes an issue. + */ + if (cchFraction > 0) + return RTAsn1CursorSetInfo(pCursor, VERR_ASN1_INVALID_GENERALIZED_TIME_ENCODING, + "%s: Bad GeneralizedTime fraction too long: '%.*s'", + pszErrorTag, pThis->Asn1Core.cb, pThis->Asn1Core.uData.pch); + if (chLastDigit == '0') + return RTAsn1CursorSetInfo(pCursor, VERR_ASN1_INVALID_GENERALIZED_TIME_ENCODING, + "%s: Trailing zeros not allowed for GeneralizedTime: '%.*s'", + pszErrorTag, pThis->Asn1Core.cb, pThis->Asn1Core.uData.pch); + return VINF_SUCCESS; +} + + +/** + * Converts the GeneralizedTime string into an the RTTIME member of RTASN1TIME. + * + * @returns IPRT status code. + * @param pCursor The cursor to use when reporting an error. + * @param pThis The time to parse. + * @param pszErrorTag The error tag. + */ +static int rtAsn1Time_ConvertGeneralizedTime(PRTASN1CURSOR pCursor, PRTASN1TIME pThis, const char *pszErrorTag) +{ + int rc; + if (pThis->Asn1Core.cb >= sizeof("YYYYMMDDHHMMSSZ") - 1) + { + const char *pachTime = pThis->Asn1Core.uData.pch; + + /* Basic encoding validation. */ + if ( RT_C_IS_DIGIT(pachTime[0]) /* Y */ + && RT_C_IS_DIGIT(pachTime[1]) /* Y */ + && RT_C_IS_DIGIT(pachTime[2]) /* Y */ + && RT_C_IS_DIGIT(pachTime[3]) /* Y */ + && RT_C_IS_DIGIT(pachTime[4]) /* M */ + && RT_C_IS_DIGIT(pachTime[5]) /* M */ + && RT_C_IS_DIGIT(pachTime[6]) /* D */ + && RT_C_IS_DIGIT(pachTime[7]) /* D */ + && RT_C_IS_DIGIT(pachTime[8]) /* H */ + && RT_C_IS_DIGIT(pachTime[9]) /* H */ + && RT_C_IS_DIGIT(pachTime[10]) /* M */ + && RT_C_IS_DIGIT(pachTime[11]) /* M */ + && RT_C_IS_DIGIT(pachTime[12]) /* S */ /** @todo was this once optional? */ + && RT_C_IS_DIGIT(pachTime[13]) /* S */ + && pachTime[pThis->Asn1Core.cb - 1] == 'Z' + ) + { + /* Basic conversion. */ + pThis->Time.i32Year = 1000 * (pachTime[0] - '0') + + 100 * (pachTime[1] - '0') + + 10 * (pachTime[2] - '0') + + (pachTime[3] - '0'); + pThis->Time.u8Month = (pachTime[4] - '0') * 10 + (pachTime[5] - '0'); + pThis->Time.u8WeekDay = 0; + pThis->Time.u16YearDay = 0; + pThis->Time.u8MonthDay = (pachTime[6] - '0') * 10 + (pachTime[7] - '0'); + pThis->Time.u8Hour = (pachTime[8] - '0') * 10 + (pachTime[9] - '0'); + pThis->Time.u8Minute = (pachTime[10] - '0') * 10 + (pachTime[11] - '0'); + pThis->Time.u8Second = (pachTime[12] - '0') * 10 + (pachTime[13] - '0'); + pThis->Time.u32Nanosecond = 0; + pThis->Time.fFlags = RTTIME_FLAGS_TYPE_UTC; + pThis->Time.offUTC = 0; + + /* Optional fraction part. */ + rc = VINF_SUCCESS; + uint32_t cchLeft = pThis->Asn1Core.cb - 14 - 1; + if (cchLeft > 0) + rc = rtAsn1Time_ConvertGeneralizedTimeFraction(pCursor, pachTime + 14, cchLeft, pThis, pszErrorTag); + + /* Check the convered data and normalize the time structure. */ + if (RT_SUCCESS(rc)) + { + rc = rtAsn1Time_NormalizeTime(pCursor, pThis, "GeneralizedTime", pszErrorTag); + if (RT_SUCCESS(rc)) + return VINF_SUCCESS; + } + } + else + rc = RTAsn1CursorSetInfo(pCursor, VERR_ASN1_INVALID_GENERALIZED_TIME_ENCODING, + "%s: Bad GeneralizedTime encoding: '%.*s'", + pszErrorTag, pThis->Asn1Core.cb, pachTime); + } + else + rc = RTAsn1CursorSetInfo(pCursor, VERR_ASN1_INVALID_GENERALIZED_TIME_ENCODING, + "%s: Bad GeneralizedTime length: %#x", + pszErrorTag, pThis->Asn1Core.cb); + RT_ZERO(*pThis); + return rc; +} + + +RTDECL(int) RTAsn1Time_DecodeAsn1(PRTASN1CURSOR pCursor, uint32_t fFlags, PRTASN1TIME pThis, const char *pszErrorTag) +{ + Assert(!(fFlags & RTASN1CURSOR_GET_F_IMPLICIT)); + int rc = RTAsn1CursorReadHdr(pCursor, &pThis->Asn1Core, pszErrorTag); + if (RT_SUCCESS(rc)) + { + if (pThis->Asn1Core.fClass == (ASN1_TAGCLASS_UNIVERSAL | ASN1_TAGFLAG_PRIMITIVE) ) + { + if (pThis->Asn1Core.uTag == ASN1_TAG_UTC_TIME) + { + RTAsn1CursorSkip(pCursor, pThis->Asn1Core.cb); + pThis->Asn1Core.pOps = &g_RTAsn1Time_Vtable; + pThis->Asn1Core.fFlags |= RTASN1CORE_F_PRIMITE_TAG_STRUCT; + return rtAsn1Time_ConvertUTCTime(pCursor, pThis, pszErrorTag); + } + + if (pThis->Asn1Core.uTag == ASN1_TAG_GENERALIZED_TIME) + { + RTAsn1CursorSkip(pCursor, pThis->Asn1Core.cb); + pThis->Asn1Core.pOps = &g_RTAsn1Time_Vtable; + pThis->Asn1Core.fFlags |= RTASN1CORE_F_PRIMITE_TAG_STRUCT; + return rtAsn1Time_ConvertGeneralizedTime(pCursor, pThis, pszErrorTag); + } + + rc = RTAsn1CursorSetInfo(pCursor, VERR_ASN1_CURSOR_TAG_MISMATCH, "%s: Not UTCTime nor GeneralizedTime: uTag=%#x", + pszErrorTag, pThis->Asn1Core.uTag); + } + else + rc = RTAsn1CursorSetInfo(pCursor, VERR_ASN1_CURSOR_TAG_FLAG_CLASS_MISMATCH, + "%s: Not UTCTime nor GeneralizedTime: fClass=%#x / uTag=%#x", + pszErrorTag, pThis->Asn1Core.fClass, pThis->Asn1Core.uTag); + } + RT_ZERO(*pThis); + return rc; +} + + +RTDECL(int) RTAsn1UtcTime_DecodeAsn1(PRTASN1CURSOR pCursor, uint32_t fFlags, PRTASN1TIME pThis, const char *pszErrorTag) +{ + int rc = RTAsn1CursorReadHdr(pCursor, &pThis->Asn1Core, pszErrorTag); + if (RT_SUCCESS(rc)) + { + rc = RTAsn1CursorMatchTagClassFlags(pCursor, &pThis->Asn1Core, ASN1_TAG_UTC_TIME, + ASN1_TAGCLASS_UNIVERSAL | ASN1_TAGFLAG_PRIMITIVE, + fFlags, pszErrorTag, "UTC TIME"); + if (RT_SUCCESS(rc)) + { + RTAsn1CursorSkip(pCursor, pThis->Asn1Core.cb); + pThis->Asn1Core.pOps = &g_RTAsn1Time_Vtable; + pThis->Asn1Core.fFlags |= RTASN1CORE_F_PRIMITE_TAG_STRUCT; + return rtAsn1Time_ConvertUTCTime(pCursor, pThis, pszErrorTag); + } + } + RT_ZERO(*pThis); + return rc; +} + + +RTDECL(int) RTAsn1GeneralizedTime_DecodeAsn1(PRTASN1CURSOR pCursor, uint32_t fFlags, PRTASN1TIME pThis, const char *pszErrorTag) +{ + int rc = RTAsn1CursorReadHdr(pCursor, &pThis->Asn1Core, pszErrorTag); + if (RT_SUCCESS(rc)) + { + rc = RTAsn1CursorMatchTagClassFlags(pCursor, &pThis->Asn1Core, ASN1_TAG_GENERALIZED_TIME, + ASN1_TAGCLASS_UNIVERSAL | ASN1_TAGFLAG_PRIMITIVE, + fFlags, pszErrorTag, "GENERALIZED TIME"); + if (RT_SUCCESS(rc)) + { + RTAsn1CursorSkip(pCursor, pThis->Asn1Core.cb); + pThis->Asn1Core.pOps = &g_RTAsn1Time_Vtable; + pThis->Asn1Core.fFlags |= RTASN1CORE_F_PRIMITE_TAG_STRUCT; + return rtAsn1Time_ConvertGeneralizedTime(pCursor, pThis, pszErrorTag); + } + } + RT_ZERO(*pThis); + return rc; +} + + +/* + * Generate code for the associated collection types. + */ +#define RTASN1TMPL_TEMPLATE_FILE "../common/asn1/asn1-ut-time-template.h" +#include +#include + diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Runtime/common/asn1/asn1-ut-time-template2.h virtualbox-4.1.44-dfsg/src/VBox/Runtime/common/asn1/asn1-ut-time-template2.h --- virtualbox-4.1.12-dfsg/src/VBox/Runtime/common/asn1/asn1-ut-time-template2.h 1970-01-01 00:00:00.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Runtime/common/asn1/asn1-ut-time-template2.h 2015-11-11 15:08:59.000000000 +0000 @@ -0,0 +1,30 @@ +/* $Id: asn1-ut-time-template2.h $ */ +/** @file + * IPRT - ASN.1, UTC TIME and GENERALIZED TIME Types, Template for type specific wrappers. + */ + +/* + * Copyright (C) 2006-2014 Oracle Corporation + * + * This file is part of VirtualBox Open Source Edition (OSE), as + * available from http://www.virtualbox.org. This file is free software; + * you can redistribute it and/or modify it under the terms of the GNU + * General Public License (GPL) as published by the Free Software + * Foundation, in version 2 as it comes in the "COPYING" file of the + * VirtualBox OSE distribution. VirtualBox OSE is distributed in the + * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind. + * + * The contents of this file may alternatively be used under the terms + * of the Common Development and Distribution License Version 1.0 + * (CDDL) only, as it comes in the "COPYING.CDDL" file of the + * VirtualBox OSE distribution, in which case the provisions of the + * CDDL are applicable instead of those of the GPL. + * + * You may elect to license modified versions of this file under the + * terms and conditions of either the GPL or the CDDL or both. + */ + + +RTASN1TIME_IMPL(ASN1_TAG_UTC_TIME, "UTC TIME", RTAsn1UtcTime) +RTASN1TIME_IMPL(ASN1_TAG_GENERALIZED_TIME, "GENERALIZED TIME", RTAsn1GeneralizedTime) + diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Runtime/common/asn1/asn1-ut-time-template.h virtualbox-4.1.44-dfsg/src/VBox/Runtime/common/asn1/asn1-ut-time-template.h --- virtualbox-4.1.12-dfsg/src/VBox/Runtime/common/asn1/asn1-ut-time-template.h 1970-01-01 00:00:00.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Runtime/common/asn1/asn1-ut-time-template.h 2015-11-11 15:08:59.000000000 +0000 @@ -0,0 +1,46 @@ +/* $Id: asn1-ut-time-template.h $ */ +/** @file + * IPRT - ASN.1, UTC TIME and GENERALIZED TIME Types, Collection Type Template. + */ + +/* + * Copyright (C) 2006-2014 Oracle Corporation + * + * This file is part of VirtualBox Open Source Edition (OSE), as + * available from http://www.virtualbox.org. This file is free software; + * you can redistribute it and/or modify it under the terms of the GNU + * General Public License (GPL) as published by the Free Software + * Foundation, in version 2 as it comes in the "COPYING" file of the + * VirtualBox OSE distribution. VirtualBox OSE is distributed in the + * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind. + * + * The contents of this file may alternatively be used under the terms + * of the Common Development and Distribution License Version 1.0 + * (CDDL) only, as it comes in the "COPYING.CDDL" file of the + * VirtualBox OSE distribution, in which case the provisions of the + * CDDL are applicable instead of those of the GPL. + * + * You may elect to license modified versions of this file under the + * terms and conditions of either the GPL or the CDDL or both. + */ + +#define RTASN1TMPL_DECL RTDECL + +#define RTASN1TMPL_TYPE RTASN1SEQOFTIMES +#define RTASN1TMPL_EXT_NAME RTAsn1SeqOfTimes +#define RTASN1TMPL_INT_NAME rtAsn1SeqOfTimes +RTASN1TMPL_SEQ_OF(RTASN1TIME, RTAsn1Time); +#undef RTASN1TMPL_TYPE +#undef RTASN1TMPL_EXT_NAME +#undef RTASN1TMPL_INT_NAME + + +#define RTASN1TMPL_TYPE RTASN1SETOFTIMES +#define RTASN1TMPL_EXT_NAME RTAsn1SetOfTimes +#define RTASN1TMPL_INT_NAME rtAsn1SetOfTimes +RTASN1TMPL_SET_OF(RTASN1TIME, RTAsn1Time); +#undef RTASN1TMPL_TYPE +#undef RTASN1TMPL_EXT_NAME +#undef RTASN1TMPL_INT_NAME + + diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Runtime/common/checksum/alt-md2.cpp virtualbox-4.1.44-dfsg/src/VBox/Runtime/common/checksum/alt-md2.cpp --- virtualbox-4.1.12-dfsg/src/VBox/Runtime/common/checksum/alt-md2.cpp 1970-01-01 00:00:00.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Runtime/common/checksum/alt-md2.cpp 2015-11-11 15:08:59.000000000 +0000 @@ -0,0 +1,272 @@ +/* $Id: alt-md2.cpp $ */ +/** @file + * IPRT - Message-Digest Algorithm 2, Alternative Implementation. + */ + +/* + * Copyright (C) 2009-2014 Oracle Corporation + * + * This file is part of VirtualBox Open Source Edition (OSE), as + * available from http://www.virtualbox.org. This file is free software; + * you can redistribute it and/or modify it under the terms of the GNU + * General Public License (GPL) as published by the Free Software + * Foundation, in version 2 as it comes in the "COPYING" file of the + * VirtualBox OSE distribution. VirtualBox OSE is distributed in the + * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind. + * + * The contents of this file may alternatively be used under the terms + * of the Common Development and Distribution License Version 1.0 + * (CDDL) only, as it comes in the "COPYING.CDDL" file of the + * VirtualBox OSE distribution, in which case the provisions of the + * CDDL are applicable instead of those of the GPL. + * + * You may elect to license modified versions of this file under the + * terms and conditions of either the GPL or the CDDL or both. + */ + + +/******************************************************************************* +* Defined Constants And Macros * +*******************************************************************************/ +/** The MD2 block size. */ +#define RTMD2_BLOCK_SIZE 16 +/** The offset of the buffer into RTMD2ALTPRIVATECTX::abStateX. */ +#define RTMD2_BUF_OFF RTMD2_BLOCK_SIZE + + +/******************************************************************************* +* Header Files * +*******************************************************************************/ +#include "internal/iprt.h" +#include + + +/** Our private context structure. */ +typedef struct RTMD2ALTPRIVATECTX +{ + /** The state (X). + * The staging buffer starts byte 16. */ + uint8_t abStateX[RTMD2_BLOCK_SIZE * 3]; + /** The checksum. */ + uint8_t abChecksum[RTMD2_BLOCK_SIZE]; + /** The number of buffered bytes. */ + uint8_t cbBuffer; +} RTMD2ALTPRIVATECTX; + +#define RT_MD2_PRIVATE_ALT_CONTEXT +#include + +#include +#include + +AssertCompile(RT_SIZEOFMEMB(RTMD2CONTEXT, abPadding) >= RT_SIZEOFMEMB(RTMD2CONTEXT, AltPrivate)); + + +/******************************************************************************* +* Global Variables * +*******************************************************************************/ +/** PI substitation used by MD2. */ +static uint8_t const g_PiSubst[256] = +{ + 41, 46, 67, 201, 162, 216, 124, 1, 61, 54, 84, 161, 236, 240, 6, 19, + 98, 167, 5, 243, 192, 199, 115, 140, 152, 147, 43, 217, 188, 76, 130, 202, + 30, 155, 87, 60, 253, 212, 224, 22, 103, 66, 111, 24, 138, 23, 229, 18, + 190, 78, 196, 214, 218, 158, 222, 73, 160, 251, 245, 142, 187, 47, 238, 122, + 169, 104, 121, 145, 21, 178, 7, 63, 148, 194, 16, 137, 11, 34, 95, 33, + 128, 127, 93, 154, 90, 144, 50, 39, 53, 62, 204, 231, 191, 247, 151, 3, + 255, 25, 48, 179, 72, 165, 181, 209, 215, 94, 146, 42, 172, 86, 170, 198, + 79, 184, 56, 210, 150, 164, 125, 182, 118, 252, 107, 226, 156, 116, 4, 241, + 69, 157, 112, 89, 100, 113, 135, 32, 134, 91, 207, 101, 230, 45, 168, 2, + 27, 96, 37, 173, 174, 176, 185, 246, 28, 70, 97, 105, 52, 64, 126, 15, + 85, 71, 163, 35, 221, 81, 175, 58, 195, 92, 249, 206, 186, 197, 234, 38, + 44, 83, 13, 110, 133, 40, 132, 9, 211, 223, 205, 244, 65, 129, 77, 82, + 106, 220, 55, 200, 108, 193, 171, 250, 36, 225, 123, 8, 12, 189, 177, 74, + 120, 136, 149, 139, 227, 99, 232, 109, 233, 203, 213, 254, 59, 0, 29, 57, + 242, 239, 183, 14, 102, 88, 208, 228, 166, 119, 114, 248, 235, 117, 75, 10, + 49, 68, 80, 180, 143, 237, 31, 26, 219, 153, 141, 51, 159, 17, 131, 20, +}; + + +RTDECL(void) RTMd2Init(PRTMD2CONTEXT pCtx) +{ + pCtx->AltPrivate.cbBuffer = 0; + RT_ZERO(pCtx->AltPrivate.abStateX); + RT_ZERO(pCtx->AltPrivate.abChecksum); +} +RT_EXPORT_SYMBOL(RTMd2Init); + + + +/** + * Initializes the processing of a whole block directly from the input buffer. + * + * This will update the checksum as well as initializing abStateX. + * + * @param pCtx The MD2 context. + * @param pbBlock The block. + */ +DECLINLINE(void) rtMd2BlockInit(PRTMD2CONTEXT pCtx, const uint8_t *pbBlock) +{ + uint8_t bL = pCtx->AltPrivate.abChecksum[15]; + for (unsigned j = 0; j < RTMD2_BLOCK_SIZE; j++) + { + uint8_t bIn = pbBlock[j]; + pCtx->AltPrivate.abStateX[j + RTMD2_BLOCK_SIZE] = bIn; + pCtx->AltPrivate.abStateX[j + RTMD2_BLOCK_SIZE * 2] = bIn ^ pCtx->AltPrivate.abStateX[j]; + bL = pCtx->AltPrivate.abChecksum[j] ^= g_PiSubst[bIn ^ bL]; + } +} + + +/** + * Special version of rtMd2BlockInit that does not update the checksum. + * + * This is used in the final round when adding the checksum to the calculation. + * + * @param pCtx The MD2 context. + * @param pbBlock The block (i.e. the checksum). + */ +DECLINLINE(void) rtMd2BlockInitNoChecksum(PRTMD2CONTEXT pCtx, const uint8_t *pbBlock) +{ + for (unsigned j = 0; j < RTMD2_BLOCK_SIZE; j++) + { + uint8_t bIn = pbBlock[j]; + pCtx->AltPrivate.abStateX[j + RTMD2_BLOCK_SIZE] = bIn; + pCtx->AltPrivate.abStateX[j + RTMD2_BLOCK_SIZE * 2] = bIn ^ pCtx->AltPrivate.abStateX[j]; + } +} + + +/** + * Initalizes the abStateX from a full buffer and update the checksum. + * + * The buffer is part of the abStateX structure (bytes 16 thru 31), so this + * is a somewhat reduced version of rtMd2BlockInit. + * + * @param pCtx The MD2 context. + */ +DECLINLINE(void) rtMd2BlockInitBuffered(PRTMD2CONTEXT pCtx) +{ + uint8_t bL = pCtx->AltPrivate.abChecksum[15]; + for (unsigned j = 0; j < RTMD2_BLOCK_SIZE; j++) + { + uint8_t bIn = pCtx->AltPrivate.abStateX[j + RTMD2_BLOCK_SIZE]; + pCtx->AltPrivate.abStateX[j + RTMD2_BLOCK_SIZE * 2] = bIn ^ pCtx->AltPrivate.abStateX[j]; + bL = pCtx->AltPrivate.abChecksum[j] ^= g_PiSubst[bIn ^ bL]; + } +} + + +/** + * Process the current block. + * + * Requires one of the rtMd2BlockInit functions to be called first. + * + * @param pCtx The MD2 context. + */ +DECLINLINE(void) rtMd2BlockProcess(PRTMD2CONTEXT pCtx) +{ + uint8_t bT = 0; + for (unsigned j = 0; j < 18; j++) /* 18 rounds */ + { + for (unsigned k = 0; k < RTMD2_BLOCK_SIZE * 3; k++) + pCtx->AltPrivate.abStateX[k] = bT = pCtx->AltPrivate.abStateX[k] ^ g_PiSubst[bT]; + bT += (uint8_t)j; + } +} + + +RTDECL(void) RTMd2Update(PRTMD2CONTEXT pCtx, const void *pvBuf, size_t cbBuf) +{ + Assert(pCtx->AltPrivate.cbBuffer < RTMD2_BLOCK_SIZE); + uint8_t const *pbBuf = (uint8_t const *)pvBuf; + + /* + * Deal with buffered bytes first. + */ + if (pCtx->AltPrivate.cbBuffer) + { + uint8_t cbMissing = RTMD2_BLOCK_SIZE - pCtx->AltPrivate.cbBuffer; + if (cbBuf >= cbMissing) + { + memcpy(&pCtx->AltPrivate.abStateX[RTMD2_BUF_OFF + pCtx->AltPrivate.cbBuffer], pbBuf, cbMissing); + pbBuf += cbMissing; + cbBuf -= cbMissing; + + rtMd2BlockInitBuffered(pCtx); + rtMd2BlockProcess(pCtx); + + pCtx->AltPrivate.cbBuffer = 0; + } + else + { + memcpy(&pCtx->AltPrivate.abStateX[RTMD2_BUF_OFF + pCtx->AltPrivate.cbBuffer], pbBuf, cbBuf); + pCtx->AltPrivate.cbBuffer += (uint8_t)cbBuf; + return; + } + } + + /* + * Process full blocks directly from the input buffer. + */ + while (cbBuf >= RTMD2_BLOCK_SIZE) + { + rtMd2BlockInit(pCtx, pbBuf); + rtMd2BlockProcess(pCtx); + + pbBuf += RTMD2_BLOCK_SIZE; + cbBuf -= RTMD2_BLOCK_SIZE; + } + + /* + * Stash any remaining bytes into the context buffer. + */ + if (cbBuf > 0) + { + memcpy(&pCtx->AltPrivate.abStateX[RTMD2_BUF_OFF], pbBuf, cbBuf); + pCtx->AltPrivate.cbBuffer = (uint8_t)cbBuf; + } +} +RT_EXPORT_SYMBOL(RTMd2Update); + + +RTDECL(void) RTMd2Final(PRTMD2CONTEXT pCtx, uint8_t pabDigest[RTMD2_HASH_SIZE]) +{ + Assert(pCtx->AltPrivate.cbBuffer < RTMD2_BLOCK_SIZE); + + /* + * Pad the message to a multiple of 16 bytes. This is done even if the + * message already is a multiple of 16. + */ + unsigned cbPad = RTMD2_BLOCK_SIZE - pCtx->AltPrivate.cbBuffer; + memset(&pCtx->AltPrivate.abStateX[RTMD2_BUF_OFF + pCtx->AltPrivate.cbBuffer], cbPad, cbPad); + rtMd2BlockInitBuffered(pCtx); + rtMd2BlockProcess(pCtx); + pCtx->AltPrivate.cbBuffer = 0; + + /* + * Add the checksum. + */ + rtMd2BlockInitNoChecksum(pCtx, pCtx->AltPrivate.abChecksum); + rtMd2BlockProcess(pCtx); + + /* + * Done. Just copy out the digest. + */ + memcpy(pabDigest, pCtx->AltPrivate.abStateX, RTMD2_HASH_SIZE); + + RT_ZERO(pCtx->AltPrivate); + pCtx->AltPrivate.cbBuffer = UINT8_MAX; +} +RT_EXPORT_SYMBOL(RTMd2Final); + + +RTDECL(void) RTMd2(const void *pvBuf, size_t cbBuf, uint8_t pabDigest[RTMD2_HASH_SIZE]) +{ + RTMD2CONTEXT Ctx; + RTMd2Init(&Ctx); + RTMd2Update(&Ctx, pvBuf, cbBuf); + RTMd2Final(&Ctx, pabDigest); +} +RT_EXPORT_SYMBOL(RTMd2); + diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Runtime/common/checksum/alt-md5.cpp virtualbox-4.1.44-dfsg/src/VBox/Runtime/common/checksum/alt-md5.cpp --- virtualbox-4.1.12-dfsg/src/VBox/Runtime/common/checksum/alt-md5.cpp 1970-01-01 00:00:00.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Runtime/common/checksum/alt-md5.cpp 2015-11-11 15:08:59.000000000 +0000 @@ -0,0 +1,363 @@ +/* $Id: alt-md5.cpp $ */ +/** @file + * IPRT - MD5 message digest functions, alternative implementation. + */ + +/* + * Copyright (C) 2006-2013 Oracle Corporation + * + * This file is part of VirtualBox Open Source Edition (OSE), as + * available from http://www.virtualbox.org. This file is free software; + * you can redistribute it and/or modify it under the terms of the GNU + * General Public License (GPL) as published by the Free Software + * Foundation, in version 2 as it comes in the "COPYING" file of the + * VirtualBox OSE distribution. VirtualBox OSE is distributed in the + * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind. + * + * The contents of this file may alternatively be used under the terms + * of the Common Development and Distribution License Version 1.0 + * (CDDL) only, as it comes in the "COPYING.CDDL" file of the + * VirtualBox OSE distribution, in which case the provisions of the + * CDDL are applicable instead of those of the GPL. + * + * You may elect to license modified versions of this file under the + * terms and conditions of either the GPL or the CDDL or both. + */ + +/* The code is virtually unchanged from the original version (see copyright + * notice below). Most changes are related to the function names and data + * types - in order to fit the code in the IPRT naming style. */ + +/* + * This code implements the MD5 message-digest algorithm. + * The algorithm is due to Ron Rivest. This code was + * written by Colin Plumb in 1993, no copyright is claimed. + * This code is in the public domain; do with it what you wish. + * + * Equivalent code is available from RSA Data Security, Inc. + * This code has been tested against that, and is equivalent, + * except that you don't need to include two pages of legalese + * with every copy. + * + * To compute the message digest of a chunk of bytes, declare an + * RTMD5CONTEXT structure, pass it to MD5Init, call MD5Update as + * needed on buffers full of bytes, and then call MD5Final, which + * will fill a supplied 16-byte array with the digest. + */ + +/******************************************************************************* +* Header Files * +*******************************************************************************/ +#include +#include "internal/iprt.h" + +#include /* for memcpy() */ +#if defined(RT_BIG_ENDIAN) +# include /* RT_LE2H_U32 uses ASMByteSwapU32. */ +#endif + + +/******************************************************************************* +* Defined Constants And Macros * +*******************************************************************************/ +/* The four core functions - F1 is optimized somewhat */ +#if 1 +/* #define F1(x, y, z) (x & y | ~x & z) */ +# define F1(x, y, z) (z ^ (x & (y ^ z))) +# define F2(x, y, z) F1(z, x, y) +# define F3(x, y, z) (x ^ y ^ z) +# define F4(x, y, z) (y ^ (x | ~z)) +#else /* gcc 4.0.1 (x86) benefits from the explicitness of F1() here. */ +DECL_FORCE_INLINE(uint32_t) F1(uint32_t x, uint32_t y, uint32_t z) +{ + register uint32_t r = y ^ z; + r &= x; + r ^= z; + return r; +} +# define F2(x, y, z) F1(z, x, y) +DECL_FORCE_INLINE(uint32_t) F3(uint32_t x, uint32_t y, uint32_t z) +{ + register uint32_t r = x ^ y; + r ^= z; + return r; +} +DECL_FORCE_INLINE(uint32_t) F4(uint32_t x, uint32_t y, uint32_t z) +{ + register uint32_t r = ~z; + r |= x; + r ^= y; + return r; +} +#endif + +/* This is the central step in the MD5 algorithm. */ +#define MD5STEP(f, w, x, y, z, data, s) \ + ( w += f(x, y, z) + data, w = w<>(32-s), w += x ) + + +/** + * The core of the MD5 algorithm, this alters an existing MD5 hash to reflect + * the addition of 16 longwords of new data. RTMd5Update blocks the data and + * converts bytes into longwords for this routine. + */ +static void rtMd5Transform(uint32_t buf[4], uint32_t const in[16]) +{ + uint32_t a, b, c, d; + + a = buf[0]; + b = buf[1]; + c = buf[2]; + d = buf[3]; + + /* fn, w, x, y, z, data, s) */ + MD5STEP(F1, a, b, c, d, in[ 0] + 0xd76aa478, 7); + MD5STEP(F1, d, a, b, c, in[ 1] + 0xe8c7b756, 12); + MD5STEP(F1, c, d, a, b, in[ 2] + 0x242070db, 17); + MD5STEP(F1, b, c, d, a, in[ 3] + 0xc1bdceee, 22); + MD5STEP(F1, a, b, c, d, in[ 4] + 0xf57c0faf, 7); + MD5STEP(F1, d, a, b, c, in[ 5] + 0x4787c62a, 12); + MD5STEP(F1, c, d, a, b, in[ 6] + 0xa8304613, 17); + MD5STEP(F1, b, c, d, a, in[ 7] + 0xfd469501, 22); + MD5STEP(F1, a, b, c, d, in[ 8] + 0x698098d8, 7); + MD5STEP(F1, d, a, b, c, in[ 9] + 0x8b44f7af, 12); + MD5STEP(F1, c, d, a, b, in[10] + 0xffff5bb1, 17); + MD5STEP(F1, b, c, d, a, in[11] + 0x895cd7be, 22); + MD5STEP(F1, a, b, c, d, in[12] + 0x6b901122, 7); + MD5STEP(F1, d, a, b, c, in[13] + 0xfd987193, 12); + MD5STEP(F1, c, d, a, b, in[14] + 0xa679438e, 17); + MD5STEP(F1, b, c, d, a, in[15] + 0x49b40821, 22); + + MD5STEP(F2, a, b, c, d, in[ 1] + 0xf61e2562, 5); + MD5STEP(F2, d, a, b, c, in[ 6] + 0xc040b340, 9); + MD5STEP(F2, c, d, a, b, in[11] + 0x265e5a51, 14); + MD5STEP(F2, b, c, d, a, in[ 0] + 0xe9b6c7aa, 20); + MD5STEP(F2, a, b, c, d, in[ 5] + 0xd62f105d, 5); + MD5STEP(F2, d, a, b, c, in[10] + 0x02441453, 9); + MD5STEP(F2, c, d, a, b, in[15] + 0xd8a1e681, 14); + MD5STEP(F2, b, c, d, a, in[ 4] + 0xe7d3fbc8, 20); + MD5STEP(F2, a, b, c, d, in[ 9] + 0x21e1cde6, 5); + MD5STEP(F2, d, a, b, c, in[14] + 0xc33707d6, 9); + MD5STEP(F2, c, d, a, b, in[ 3] + 0xf4d50d87, 14); + MD5STEP(F2, b, c, d, a, in[ 8] + 0x455a14ed, 20); + MD5STEP(F2, a, b, c, d, in[13] + 0xa9e3e905, 5); + MD5STEP(F2, d, a, b, c, in[ 2] + 0xfcefa3f8, 9); + MD5STEP(F2, c, d, a, b, in[ 7] + 0x676f02d9, 14); + MD5STEP(F2, b, c, d, a, in[12] + 0x8d2a4c8a, 20); + + MD5STEP(F3, a, b, c, d, in[ 5] + 0xfffa3942, 4); + MD5STEP(F3, d, a, b, c, in[ 8] + 0x8771f681, 11); + MD5STEP(F3, c, d, a, b, in[11] + 0x6d9d6122, 16); + MD5STEP(F3, b, c, d, a, in[14] + 0xfde5380c, 23); + MD5STEP(F3, a, b, c, d, in[ 1] + 0xa4beea44, 4); + MD5STEP(F3, d, a, b, c, in[ 4] + 0x4bdecfa9, 11); + MD5STEP(F3, c, d, a, b, in[ 7] + 0xf6bb4b60, 16); + MD5STEP(F3, b, c, d, a, in[10] + 0xbebfbc70, 23); + MD5STEP(F3, a, b, c, d, in[13] + 0x289b7ec6, 4); + MD5STEP(F3, d, a, b, c, in[ 0] + 0xeaa127fa, 11); + MD5STEP(F3, c, d, a, b, in[ 3] + 0xd4ef3085, 16); + MD5STEP(F3, b, c, d, a, in[ 6] + 0x04881d05, 23); + MD5STEP(F3, a, b, c, d, in[ 9] + 0xd9d4d039, 4); + MD5STEP(F3, d, a, b, c, in[12] + 0xe6db99e5, 11); + MD5STEP(F3, c, d, a, b, in[15] + 0x1fa27cf8, 16); + MD5STEP(F3, b, c, d, a, in[ 2] + 0xc4ac5665, 23); + + MD5STEP(F4, a, b, c, d, in[ 0] + 0xf4292244, 6); + MD5STEP(F4, d, a, b, c, in[ 7] + 0x432aff97, 10); + MD5STEP(F4, c, d, a, b, in[14] + 0xab9423a7, 15); + MD5STEP(F4, b, c, d, a, in[ 5] + 0xfc93a039, 21); + MD5STEP(F4, a, b, c, d, in[12] + 0x655b59c3, 6); + MD5STEP(F4, d, a, b, c, in[ 3] + 0x8f0ccc92, 10); + MD5STEP(F4, c, d, a, b, in[10] + 0xffeff47d, 15); + MD5STEP(F4, b, c, d, a, in[ 1] + 0x85845dd1, 21); + MD5STEP(F4, a, b, c, d, in[ 8] + 0x6fa87e4f, 6); + MD5STEP(F4, d, a, b, c, in[15] + 0xfe2ce6e0, 10); + MD5STEP(F4, c, d, a, b, in[ 6] + 0xa3014314, 15); + MD5STEP(F4, b, c, d, a, in[13] + 0x4e0811a1, 21); + MD5STEP(F4, a, b, c, d, in[ 4] + 0xf7537e82, 6); + MD5STEP(F4, d, a, b, c, in[11] + 0xbd3af235, 10); + MD5STEP(F4, c, d, a, b, in[ 2] + 0x2ad7d2bb, 15); + MD5STEP(F4, b, c, d, a, in[ 9] + 0xeb86d391, 21); + + buf[0] += a; + buf[1] += b; + buf[2] += c; + buf[3] += d; +} + + +#ifdef RT_BIG_ENDIAN +/* + * Note: this code is harmless on little-endian machines. + */ +static void rtMd5ByteReverse(uint32_t *buf, unsigned int longs) +{ + uint32_t t; + do + { + t = *buf; + t = RT_LE2H_U32(t); + *buf = t; + buf++; + } while (--longs); +} +#else /* little endian - do nothing */ +# define rtMd5ByteReverse(buf, len) do { /* Nothing */ } while (0) +#endif + + + +/* + * Start MD5 accumulation. Set bit count to 0 and buffer to mysterious + * initialization constants. + */ +RTDECL(void) RTMd5Init(PRTMD5CONTEXT pCtx) +{ + pCtx->AltPrivate.buf[0] = 0x67452301; + pCtx->AltPrivate.buf[1] = 0xefcdab89; + pCtx->AltPrivate.buf[2] = 0x98badcfe; + pCtx->AltPrivate.buf[3] = 0x10325476; + + pCtx->AltPrivate.bits[0] = 0; + pCtx->AltPrivate.bits[1] = 0; +} +RT_EXPORT_SYMBOL(RTMd5Init); + + +/* + * Update context to reflect the concatenation of another buffer full + * of bytes. + */ +RTDECL(void) RTMd5Update(PRTMD5CONTEXT pCtx, const void *pvBuf, size_t len) +{ + const uint8_t *buf = (const uint8_t *)pvBuf; + uint32_t t; + + /* Update bitcount */ + t = pCtx->AltPrivate.bits[0]; + if ((pCtx->AltPrivate.bits[0] = t + ((uint32_t) len << 3)) < t) + pCtx->AltPrivate.bits[1]++; /* Carry from low to high */ + pCtx->AltPrivate.bits[1] += (uint32_t)(len >> 29); + + t = (t >> 3) & 0x3f; /* Bytes already in shsInfo->data */ + + /* Handle any leading odd-sized chunks */ + if (t) + { + uint8_t *p = (uint8_t *) pCtx->AltPrivate.in + t; + + t = 64 - t; + if (len < t) + { + memcpy(p, buf, len); + return; + } + memcpy(p, buf, t); + rtMd5ByteReverse(pCtx->AltPrivate.in, 16); + rtMd5Transform(pCtx->AltPrivate.buf, pCtx->AltPrivate.in); + buf += t; + len -= t; + } + + /* Process data in 64-byte chunks */ +#ifndef RT_BIG_ENDIAN + if (!((uintptr_t)buf & 0x3)) + { + while (len >= 64) { + rtMd5Transform(pCtx->AltPrivate.buf, (uint32_t const *)buf); + buf += 64; + len -= 64; + } + } + else +#endif + { + while (len >= 64) { + memcpy(pCtx->AltPrivate.in, buf, 64); + rtMd5ByteReverse(pCtx->AltPrivate.in, 16); + rtMd5Transform(pCtx->AltPrivate.buf, pCtx->AltPrivate.in); + buf += 64; + len -= 64; + } + } + + /* Handle any remaining bytes of data */ + memcpy(pCtx->AltPrivate.in, buf, len); +} +RT_EXPORT_SYMBOL(RTMd5Update); + + +/* + * Final wrapup - pad to 64-byte boundary with the bit pattern + * 1 0* (64-bit count of bits processed, MSB-first) + */ +RTDECL(void) RTMd5Final(uint8_t digest[16], PRTMD5CONTEXT pCtx) +{ + unsigned int count; + uint8_t *p; + + /* Compute number of bytes mod 64 */ + count = (pCtx->AltPrivate.bits[0] >> 3) & 0x3F; + + /* Set the first char of padding to 0x80. This is safe since there is + always at least one byte free */ + p = (uint8_t *)pCtx->AltPrivate.in + count; + *p++ = 0x80; + + /* Bytes of padding needed to make 64 bytes */ + count = 64 - 1 - count; + + /* Pad out to 56 mod 64 */ + if (count < 8) + { + /* Two lots of padding: Pad the first block to 64 bytes */ + memset(p, 0, count); + rtMd5ByteReverse(pCtx->AltPrivate.in, 16); + rtMd5Transform(pCtx->AltPrivate.buf, pCtx->AltPrivate.in); + + /* Now fill the next block with 56 bytes */ + memset(pCtx->AltPrivate.in, 0, 56); + } + else + { + /* Pad block to 56 bytes */ + memset(p, 0, count - 8); + } + rtMd5ByteReverse(pCtx->AltPrivate.in, 14); + + /* Append length in bits and transform */ + pCtx->AltPrivate.in[14] = pCtx->AltPrivate.bits[0]; + pCtx->AltPrivate.in[15] = pCtx->AltPrivate.bits[1]; + + rtMd5Transform(pCtx->AltPrivate.buf, pCtx->AltPrivate.in); + rtMd5ByteReverse(pCtx->AltPrivate.buf, 4); + memcpy(digest, pCtx->AltPrivate.buf, 16); + memset(pCtx, 0, sizeof(*pCtx)); /* In case it's sensitive */ +} +RT_EXPORT_SYMBOL(RTMd5Final); + + +RTDECL(void) RTMd5(const void *pvBuf, size_t cbBuf, uint8_t pabDigest[RTMD5HASHSIZE]) +{ +#if 0 + RTMD5CONTEXT Ctx[2]; + PRTMD5CONTEXT const pCtx = RT_ALIGN_PT(&Ctx[0], 64, PRTMD5CONTEXT); +#else + RTMD5CONTEXT Ctx; + PRTMD5CONTEXT const pCtx = &Ctx; +#endif + + RTMd5Init(pCtx); + for (;;) + { + uint32_t cb = (uint32_t)RT_MIN(cbBuf, _2M); + RTMd5Update(pCtx, pvBuf, cb); + if (cb == cbBuf) + break; + cbBuf -= cb; + pvBuf = (uint8_t const *)pvBuf + cb; + } + RTMd5Final(pabDigest, pCtx); +} +RT_EXPORT_SYMBOL(RTMd5); + diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Runtime/common/checksum/alt-sha1.cpp virtualbox-4.1.44-dfsg/src/VBox/Runtime/common/checksum/alt-sha1.cpp --- virtualbox-4.1.12-dfsg/src/VBox/Runtime/common/checksum/alt-sha1.cpp 1970-01-01 00:00:00.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Runtime/common/checksum/alt-sha1.cpp 2015-11-11 15:08:59.000000000 +0000 @@ -0,0 +1,501 @@ +/* $Id: alt-sha1.cpp $ */ +/** @file + * IPRT - SHA-1 hash functions, Alternative Implementation. + */ + +/* + * Copyright (C) 2009-2014 Oracle Corporation + * + * This file is part of VirtualBox Open Source Edition (OSE), as + * available from http://www.virtualbox.org. This file is free software; + * you can redistribute it and/or modify it under the terms of the GNU + * General Public License (GPL) as published by the Free Software + * Foundation, in version 2 as it comes in the "COPYING" file of the + * VirtualBox OSE distribution. VirtualBox OSE is distributed in the + * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind. + * + * The contents of this file may alternatively be used under the terms + * of the Common Development and Distribution License Version 1.0 + * (CDDL) only, as it comes in the "COPYING.CDDL" file of the + * VirtualBox OSE distribution, in which case the provisions of the + * CDDL are applicable instead of those of the GPL. + * + * You may elect to license modified versions of this file under the + * terms and conditions of either the GPL or the CDDL or both. + */ + + +/******************************************************************************* +* Defined Constants And Macros * +*******************************************************************************/ +/** The SHA-1 block size (in bytes). */ +#define RTSHA1_BLOCK_SIZE 64U + +/** Enables the unrolled code. */ +#define RTSHA1_UNROLLED 1 + + +/******************************************************************************* +* Header Files * +*******************************************************************************/ +#include "internal/iprt.h" +#include +#include +#include +#include + + +/** Our private context structure. */ +typedef struct RTSHA1ALTPRIVATECTX +{ + /** The W array. + * Buffering happens in the first 16 words, converted from big endian to host + * endian immediately before processing. The amount of buffered data is kept + * in the 6 least significant bits of cbMessage. */ + uint32_t auW[80]; + /** The message length (in bytes). */ + uint64_t cbMessage; + + /** The 5 hash values. */ + uint32_t auH[5]; +} RTSHA1ALTPRIVATECTX; + +#define RT_SHA1_PRIVATE_ALT_CONTEXT +#include + + +AssertCompile(RT_SIZEOFMEMB(RTSHA1CONTEXT, abPadding) >= RT_SIZEOFMEMB(RTSHA1CONTEXT, AltPrivate)); +AssertCompileMemberSize(RTSHA1ALTPRIVATECTX, auH, RTSHA1_HASH_SIZE); + + + + +RTDECL(void) RTSha1Init(PRTSHA1CONTEXT pCtx) +{ + pCtx->AltPrivate.cbMessage = 0; + pCtx->AltPrivate.auH[0] = UINT32_C(0x67452301); + pCtx->AltPrivate.auH[1] = UINT32_C(0xefcdab89); + pCtx->AltPrivate.auH[2] = UINT32_C(0x98badcfe); + pCtx->AltPrivate.auH[3] = UINT32_C(0x10325476); + pCtx->AltPrivate.auH[4] = UINT32_C(0xc3d2e1f0); +} +RT_EXPORT_SYMBOL(RTSha1Init); + + +/** + * Initializes the auW array from the specfied input block. + * + * @param pCtx The SHA1 context. + * @param pbBlock The block. Must be 32-bit aligned. + */ +DECLINLINE(void) rtSha1BlockInit(PRTSHA1CONTEXT pCtx, uint8_t const *pbBlock) +{ +#ifdef RTSHA1_UNROLLED + uint32_t const *puSrc = (uint32_t const *)pbBlock; + uint32_t *puW = &pCtx->AltPrivate.auW[0]; + Assert(!((uintptr_t)puSrc & 3)); + Assert(!((uintptr_t)puW & 3)); + + /* Copy and byte-swap the block. Initializing the rest of the Ws are done + in the processing loop. */ +# ifdef RT_LITTLE_ENDIAN + *puW++ = ASMByteSwapU32(*puSrc++); + *puW++ = ASMByteSwapU32(*puSrc++); + *puW++ = ASMByteSwapU32(*puSrc++); + *puW++ = ASMByteSwapU32(*puSrc++); + + *puW++ = ASMByteSwapU32(*puSrc++); + *puW++ = ASMByteSwapU32(*puSrc++); + *puW++ = ASMByteSwapU32(*puSrc++); + *puW++ = ASMByteSwapU32(*puSrc++); + + *puW++ = ASMByteSwapU32(*puSrc++); + *puW++ = ASMByteSwapU32(*puSrc++); + *puW++ = ASMByteSwapU32(*puSrc++); + *puW++ = ASMByteSwapU32(*puSrc++); + + *puW++ = ASMByteSwapU32(*puSrc++); + *puW++ = ASMByteSwapU32(*puSrc++); + *puW++ = ASMByteSwapU32(*puSrc++); + *puW++ = ASMByteSwapU32(*puSrc++); +# else + memcpy(puW, puSrc, RTSHA1_BLOCK_SIZE); +# endif + +#else /* !RTSHA1_UNROLLED */ + uint32_t const *pu32Block = (uint32_t const *)pbBlock; + Assert(!((uintptr_t)pu32Block & 3)); + + unsigned iWord; + for (iWord = 0; iWord < 16; iWord++) + pCtx->AltPrivate.auW[iWord] = RT_BE2H_U32(pu32Block[iWord]); + + for (; iWord < RT_ELEMENTS(pCtx->AltPrivate.auW); iWord++) + { + uint32_t u32 = pCtx->AltPrivate.auW[iWord - 16]; + u32 ^= pCtx->AltPrivate.auW[iWord - 14]; + u32 ^= pCtx->AltPrivate.auW[iWord - 8]; + u32 ^= pCtx->AltPrivate.auW[iWord - 3]; + pCtx->AltPrivate.auW[iWord] = ASMRotateLeftU32(u32, 1); + } +#endif /* !RTSHA1_UNROLLED */ +} + + +/** + * Initializes the auW array from data buffered in the first part of the array. + * + * @param pCtx The SHA1 context. + */ +DECLINLINE(void) rtSha1BlockInitBuffered(PRTSHA1CONTEXT pCtx) +{ +#ifdef RTSHA1_UNROLLED + uint32_t *puW = &pCtx->AltPrivate.auW[0]; + Assert(!((uintptr_t)puW & 3)); + + /* Do the byte swap if necessary. Initializing the rest of the Ws are done + in the processing loop. */ +# ifdef RT_LITTLE_ENDIAN + *puW = ASMByteSwapU32(*puW); puW++; + *puW = ASMByteSwapU32(*puW); puW++; + *puW = ASMByteSwapU32(*puW); puW++; + *puW = ASMByteSwapU32(*puW); puW++; + + *puW = ASMByteSwapU32(*puW); puW++; + *puW = ASMByteSwapU32(*puW); puW++; + *puW = ASMByteSwapU32(*puW); puW++; + *puW = ASMByteSwapU32(*puW); puW++; + + *puW = ASMByteSwapU32(*puW); puW++; + *puW = ASMByteSwapU32(*puW); puW++; + *puW = ASMByteSwapU32(*puW); puW++; + *puW = ASMByteSwapU32(*puW); puW++; + + *puW = ASMByteSwapU32(*puW); puW++; + *puW = ASMByteSwapU32(*puW); puW++; + *puW = ASMByteSwapU32(*puW); puW++; + *puW = ASMByteSwapU32(*puW); puW++; +# endif + +#else /* !RTSHA1_UNROLLED_INIT */ + unsigned iWord; + for (iWord = 0; iWord < 16; iWord++) + pCtx->AltPrivate.auW[iWord] = RT_BE2H_U32(pCtx->AltPrivate.auW[iWord]); + + for (; iWord < RT_ELEMENTS(pCtx->AltPrivate.auW); iWord++) + { + uint32_t u32 = pCtx->AltPrivate.auW[iWord - 16]; + u32 ^= pCtx->AltPrivate.auW[iWord - 14]; + u32 ^= pCtx->AltPrivate.auW[iWord - 8]; + u32 ^= pCtx->AltPrivate.auW[iWord - 3]; + pCtx->AltPrivate.auW[iWord] = ASMRotateLeftU32(u32, 1); + } +#endif /* !RTSHA1_UNROLLED_INIT */ +} + + +/** Function 4.1, Ch(x,y,z). */ +DECL_FORCE_INLINE(uint32_t) rtSha1Ch(uint32_t uX, uint32_t uY, uint32_t uZ) +{ +#if 1 + /* Optimization that saves one operation and probably a temporary variable. */ + uint32_t uResult = uY; + uResult ^= uZ; + uResult &= uX; + uResult ^= uZ; + return uResult; +#else + /* The original. */ + uint32_t uResult = uX & uY; + uResult ^= ~uX & uZ; + return uResult; +#endif +} + + +/** Function 4.1, Parity(x,y,z). */ +DECL_FORCE_INLINE(uint32_t) rtSha1Parity(uint32_t uX, uint32_t uY, uint32_t uZ) +{ + uint32_t uResult = uX; + uResult ^= uY; + uResult ^= uZ; + return uResult; +} + + +/** Function 4.1, Maj(x,y,z). */ +DECL_FORCE_INLINE(uint32_t) rtSha1Maj(uint32_t uX, uint32_t uY, uint32_t uZ) +{ +#if 1 + /* Optimization that save one operation and probably a temporary variable. */ + uint32_t uResult = uY; + uResult ^= uZ; + uResult &= uX; + uResult ^= uY & uZ; + return uResult; +#else + /* The original. */ + uint32_t uResult = (uX & uY); + uResult |= (uX & uZ); + uResult |= (uY & uZ); + return uResult; +#endif +} + + +/** + * Process the current block. + * + * Requires one of the rtSha1BlockInit functions to be called first. + * + * @param pCtx The SHA1 context. + */ +static void rtSha1BlockProcess(PRTSHA1CONTEXT pCtx) +{ + uint32_t uA = pCtx->AltPrivate.auH[0]; + uint32_t uB = pCtx->AltPrivate.auH[1]; + uint32_t uC = pCtx->AltPrivate.auH[2]; + uint32_t uD = pCtx->AltPrivate.auH[3]; + uint32_t uE = pCtx->AltPrivate.auH[4]; + +#ifdef RTSHA1_UNROLLED + /* This fully unrolled version will avoid the variable rotation by + embedding it into the loop unrolling. */ + uint32_t *puW = &pCtx->AltPrivate.auW[0]; +# define SHA1_BODY(a_iWord, a_uK, a_fnFt, a_uA, a_uB, a_uC, a_uD, a_uE) \ + do { \ + if (a_iWord < 16) \ + a_uE += *puW++; \ + else \ + { \ + uint32_t u32 = puW[-16]; \ + u32 ^= puW[-14]; \ + u32 ^= puW[-8]; \ + u32 ^= puW[-3]; \ + u32 = ASMRotateLeftU32(u32, 1); \ + *puW++ = u32; \ + a_uE += u32; \ + } \ + a_uE += (a_uK); \ + a_uE += ASMRotateLeftU32(a_uA, 5); \ + a_uE += a_fnFt(a_uB, a_uC, a_uD); \ + a_uB = ASMRotateLeftU32(a_uB, 30); \ + } while (0) +# define FIVE_ITERATIONS(a_iFirst, a_uK, a_fnFt) \ + do { \ + SHA1_BODY(a_iFirst + 0, a_uK, a_fnFt, uA, uB, uC, uD, uE); \ + SHA1_BODY(a_iFirst + 1, a_uK, a_fnFt, uE, uA, uB, uC, uD); \ + SHA1_BODY(a_iFirst + 2, a_uK, a_fnFt, uD, uE, uA, uB, uC); \ + SHA1_BODY(a_iFirst + 3, a_uK, a_fnFt, uC, uD, uE, uA, uB); \ + SHA1_BODY(a_iFirst + 4, a_uK, a_fnFt, uB, uC, uD, uE, uA); \ + } while (0) +# define TWENTY_ITERATIONS(a_iStart, a_uK, a_fnFt) \ + do { \ + FIVE_ITERATIONS(a_iStart + 0, a_uK, a_fnFt); \ + FIVE_ITERATIONS(a_iStart + 5, a_uK, a_fnFt); \ + FIVE_ITERATIONS(a_iStart + 10, a_uK, a_fnFt); \ + FIVE_ITERATIONS(a_iStart + 15, a_uK, a_fnFt); \ + } while (0) + + TWENTY_ITERATIONS( 0, UINT32_C(0x5a827999), rtSha1Ch); + TWENTY_ITERATIONS(20, UINT32_C(0x6ed9eba1), rtSha1Parity); + TWENTY_ITERATIONS(40, UINT32_C(0x8f1bbcdc), rtSha1Maj); + TWENTY_ITERATIONS(60, UINT32_C(0xca62c1d6), rtSha1Parity); + +#elif 1 /* Version avoiding the constant selection. */ + unsigned iWord = 0; +# define TWENTY_ITERATIONS(a_iWordStop, a_uK, a_uExprBCD) \ + for (; iWord < a_iWordStop; iWord++) \ + { \ + uint32_t uTemp = ASMRotateLeftU32(uA, 5); \ + uTemp += (a_uExprBCD); \ + uTemp += uE; \ + uTemp += pCtx->AltPrivate.auW[iWord]; \ + uTemp += (a_uK); \ + \ + uE = uD; \ + uD = uC; \ + uC = ASMRotateLeftU32(uB, 30); \ + uB = uA; \ + uA = uTemp; \ + } do { } while (0) + TWENTY_ITERATIONS(20, UINT32_C(0x5a827999), rtSha1Ch(uB, uC, uD)); + TWENTY_ITERATIONS(40, UINT32_C(0x6ed9eba1), rtSha1Parity(uB, uC, uD)); + TWENTY_ITERATIONS(60, UINT32_C(0x8f1bbcdc), rtSha1Maj(uB, uC, uD)); + TWENTY_ITERATIONS(80, UINT32_C(0xca62c1d6), rtSha1Parity(uB, uC, uD)); + +#else /* Dead simple implementation. */ + for (unsigned iWord = 0; iWord < RT_ELEMENTS(pCtx->AltPrivate.auW); iWord++) + { + uint32_t uTemp = ASMRotateLeftU32(uA, 5); + uTemp += uE; + uTemp += pCtx->AltPrivate.auW[iWord]; + if (iWord <= 19) + { + uTemp += (uB & uC) | (~uB & uD); + uTemp += UINT32_C(0x5a827999); + } + else if (iWord <= 39) + { + uTemp += uB ^ uC ^ uD; + uTemp += UINT32_C(0x6ed9eba1); + } + else if (iWord <= 59) + { + uTemp += (uB & uC) | (uB & uD) | (uC & uD); + uTemp += UINT32_C(0x8f1bbcdc); + } + else + { + uTemp += uB ^ uC ^ uD; + uTemp += UINT32_C(0xca62c1d6); + } + + uE = uD; + uD = uC; + uC = ASMRotateLeftU32(uB, 30); + uB = uA; + uA = uTemp; + } +#endif + + pCtx->AltPrivate.auH[0] += uA; + pCtx->AltPrivate.auH[1] += uB; + pCtx->AltPrivate.auH[2] += uC; + pCtx->AltPrivate.auH[3] += uD; + pCtx->AltPrivate.auH[4] += uE; +} + + +RTDECL(void) RTSha1Update(PRTSHA1CONTEXT pCtx, const void *pvBuf, size_t cbBuf) +{ + Assert(pCtx->AltPrivate.cbMessage < UINT64_MAX / 2); + uint8_t const *pbBuf = (uint8_t const *)pvBuf; + + /* + * Deal with buffered bytes first. + */ + size_t cbBuffered = (size_t)pCtx->AltPrivate.cbMessage & (RTSHA1_BLOCK_SIZE - 1U); + if (cbBuffered) + { + size_t cbMissing = RTSHA1_BLOCK_SIZE - cbBuffered; + if (cbBuf >= cbMissing) + { + memcpy((uint8_t *)&pCtx->AltPrivate.auW[0] + cbBuffered, pbBuf, cbMissing); + pCtx->AltPrivate.cbMessage += cbMissing; + pbBuf += cbMissing; + cbBuf -= cbMissing; + + rtSha1BlockInitBuffered(pCtx); + rtSha1BlockProcess(pCtx); + } + else + { + memcpy((uint8_t *)&pCtx->AltPrivate.auW[0] + cbBuffered, pbBuf, cbBuf); + pCtx->AltPrivate.cbMessage += cbBuf; + return; + } + } + + if (!((uintptr_t)pbBuf & 3)) + { + /* + * Process full blocks directly from the input buffer. + */ + while (cbBuf >= RTSHA1_BLOCK_SIZE) + { + rtSha1BlockInit(pCtx, pbBuf); + rtSha1BlockProcess(pCtx); + + pCtx->AltPrivate.cbMessage += RTSHA1_BLOCK_SIZE; + pbBuf += RTSHA1_BLOCK_SIZE; + cbBuf -= RTSHA1_BLOCK_SIZE; + } + } + else + { + /* + * Unaligned input, so buffer it. + */ + while (cbBuf >= RTSHA1_BLOCK_SIZE) + { + memcpy((uint8_t *)&pCtx->AltPrivate.auW[0], pbBuf, RTSHA1_BLOCK_SIZE); + rtSha1BlockInitBuffered(pCtx); + rtSha1BlockProcess(pCtx); + + pCtx->AltPrivate.cbMessage += RTSHA1_BLOCK_SIZE; + pbBuf += RTSHA1_BLOCK_SIZE; + cbBuf -= RTSHA1_BLOCK_SIZE; + } + } + + /* + * Stash any remaining bytes into the context buffer. + */ + if (cbBuf > 0) + { + memcpy((uint8_t *)&pCtx->AltPrivate.auW[0], pbBuf, cbBuf); + pCtx->AltPrivate.cbMessage += cbBuf; + } +} +RT_EXPORT_SYMBOL(RTSha1Update); + + +RTDECL(void) RTSha1Final(PRTSHA1CONTEXT pCtx, uint8_t pabDigest[RTSHA1_HASH_SIZE]) +{ + Assert(pCtx->AltPrivate.cbMessage < UINT64_MAX / 2); + + /* + * Complete the message by adding a single bit (0x80), padding till + * the next 448-bit boundrary, the add the message length. + */ + uint64_t const cMessageBits = pCtx->AltPrivate.cbMessage * 8; + + unsigned cbMissing = RTSHA1_BLOCK_SIZE - ((unsigned)pCtx->AltPrivate.cbMessage & (RTSHA1_BLOCK_SIZE - 1U)); + static uint8_t const s_abSingleBitAndSomePadding[12] = { 0x80, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, }; + if (cbMissing < 1U + 8U) + /* Less than 64+8 bits left in the current block, force a new block. */ + RTSha1Update(pCtx, &s_abSingleBitAndSomePadding, sizeof(s_abSingleBitAndSomePadding)); + else + RTSha1Update(pCtx, &s_abSingleBitAndSomePadding, 1); + + unsigned cbBuffered = (unsigned)pCtx->AltPrivate.cbMessage & (RTSHA1_BLOCK_SIZE - 1U); + cbMissing = RTSHA1_BLOCK_SIZE - cbBuffered; + Assert(cbMissing >= 8); + memset((uint8_t *)&pCtx->AltPrivate.auW[0] + cbBuffered, 0, cbMissing - 8); + + *(uint64_t *)&pCtx->AltPrivate.auW[14] = RT_H2BE_U64(cMessageBits); + + /* + * Process the last buffered block constructed/completed above. + */ + rtSha1BlockInitBuffered(pCtx); + rtSha1BlockProcess(pCtx); + + /* + * Convert the byte order of the hash words and we're done. + */ + pCtx->AltPrivate.auH[0] = RT_H2BE_U32(pCtx->AltPrivate.auH[0]); + pCtx->AltPrivate.auH[1] = RT_H2BE_U32(pCtx->AltPrivate.auH[1]); + pCtx->AltPrivate.auH[2] = RT_H2BE_U32(pCtx->AltPrivate.auH[2]); + pCtx->AltPrivate.auH[3] = RT_H2BE_U32(pCtx->AltPrivate.auH[3]); + pCtx->AltPrivate.auH[4] = RT_H2BE_U32(pCtx->AltPrivate.auH[4]); + + memcpy(pabDigest, &pCtx->AltPrivate.auH[0], RTSHA1_HASH_SIZE); + + RT_ZERO(pCtx->AltPrivate); + pCtx->AltPrivate.cbMessage = UINT64_MAX; +} +RT_EXPORT_SYMBOL(RTSha1Final); + + +RTDECL(void) RTSha1(const void *pvBuf, size_t cbBuf, uint8_t pabDigest[RTSHA1_HASH_SIZE]) +{ + RTSHA1CONTEXT Ctx; + RTSha1Init(&Ctx); + RTSha1Update(&Ctx, pvBuf, cbBuf); + RTSha1Final(&Ctx, pabDigest); +} +RT_EXPORT_SYMBOL(RTSha1); + + diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Runtime/common/checksum/alt-sha256.cpp virtualbox-4.1.44-dfsg/src/VBox/Runtime/common/checksum/alt-sha256.cpp --- virtualbox-4.1.12-dfsg/src/VBox/Runtime/common/checksum/alt-sha256.cpp 1970-01-01 00:00:00.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Runtime/common/checksum/alt-sha256.cpp 2015-11-11 15:08:59.000000000 +0000 @@ -0,0 +1,653 @@ +/* $Id: alt-sha256.cpp $ */ +/** @file + * IPRT - SHA-256 and SHA-224 hash functions, Alternative Implementation. + */ + +/* + * Copyright (C) 2009-2014 Oracle Corporation + * + * This file is part of VirtualBox Open Source Edition (OSE), as + * available from http://www.virtualbox.org. This file is free software; + * you can redistribute it and/or modify it under the terms of the GNU + * General Public License (GPL) as published by the Free Software + * Foundation, in version 2 as it comes in the "COPYING" file of the + * VirtualBox OSE distribution. VirtualBox OSE is distributed in the + * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind. + * + * The contents of this file may alternatively be used under the terms + * of the Common Development and Distribution License Version 1.0 + * (CDDL) only, as it comes in the "COPYING.CDDL" file of the + * VirtualBox OSE distribution, in which case the provisions of the + * CDDL are applicable instead of those of the GPL. + * + * You may elect to license modified versions of this file under the + * terms and conditions of either the GPL or the CDDL or both. + */ + + +/******************************************************************************* +* Defined Constants And Macros * +*******************************************************************************/ +/** The SHA-256 block size (in bytes). */ +#define RTSHA256_BLOCK_SIZE 64U + +/** Enables the unrolled code. */ +#define RTSHA256_UNROLLED 1 + + +/******************************************************************************* +* Header Files * +*******************************************************************************/ +#include "internal/iprt.h" +#include +#include +#include +#include + + +/** Our private context structure. */ +typedef struct RTSHA256ALTPRIVATECTX +{ + /** The W array. + * Buffering happens in the first 16 words, converted from big endian to host + * endian immediately before processing. The amount of buffered data is kept + * in the 6 least significant bits of cbMessage. */ + uint32_t auW[64]; + /** The message length (in bytes). */ + uint64_t cbMessage; + /** The 8 hash values. */ + uint32_t auH[8]; +} RTSHA256ALTPRIVATECTX; + +#define RT_SHA256_PRIVATE_ALT_CONTEXT +#include + + +AssertCompile(RT_SIZEOFMEMB(RTSHA256CONTEXT, abPadding) >= RT_SIZEOFMEMB(RTSHA256CONTEXT, AltPrivate)); +AssertCompileMemberSize(RTSHA256ALTPRIVATECTX, auH, RTSHA256_HASH_SIZE); + + +/******************************************************************************* +* Global Variables * +*******************************************************************************/ +#ifndef RTSHA256_UNROLLED +/** The K constants */ +static uint32_t const g_auKs[] = +{ + UINT32_C(0x428a2f98), UINT32_C(0x71374491), UINT32_C(0xb5c0fbcf), UINT32_C(0xe9b5dba5), + UINT32_C(0x3956c25b), UINT32_C(0x59f111f1), UINT32_C(0x923f82a4), UINT32_C(0xab1c5ed5), + UINT32_C(0xd807aa98), UINT32_C(0x12835b01), UINT32_C(0x243185be), UINT32_C(0x550c7dc3), + UINT32_C(0x72be5d74), UINT32_C(0x80deb1fe), UINT32_C(0x9bdc06a7), UINT32_C(0xc19bf174), + UINT32_C(0xe49b69c1), UINT32_C(0xefbe4786), UINT32_C(0x0fc19dc6), UINT32_C(0x240ca1cc), + UINT32_C(0x2de92c6f), UINT32_C(0x4a7484aa), UINT32_C(0x5cb0a9dc), UINT32_C(0x76f988da), + UINT32_C(0x983e5152), UINT32_C(0xa831c66d), UINT32_C(0xb00327c8), UINT32_C(0xbf597fc7), + UINT32_C(0xc6e00bf3), UINT32_C(0xd5a79147), UINT32_C(0x06ca6351), UINT32_C(0x14292967), + UINT32_C(0x27b70a85), UINT32_C(0x2e1b2138), UINT32_C(0x4d2c6dfc), UINT32_C(0x53380d13), + UINT32_C(0x650a7354), UINT32_C(0x766a0abb), UINT32_C(0x81c2c92e), UINT32_C(0x92722c85), + UINT32_C(0xa2bfe8a1), UINT32_C(0xa81a664b), UINT32_C(0xc24b8b70), UINT32_C(0xc76c51a3), + UINT32_C(0xd192e819), UINT32_C(0xd6990624), UINT32_C(0xf40e3585), UINT32_C(0x106aa070), + UINT32_C(0x19a4c116), UINT32_C(0x1e376c08), UINT32_C(0x2748774c), UINT32_C(0x34b0bcb5), + UINT32_C(0x391c0cb3), UINT32_C(0x4ed8aa4a), UINT32_C(0x5b9cca4f), UINT32_C(0x682e6ff3), + UINT32_C(0x748f82ee), UINT32_C(0x78a5636f), UINT32_C(0x84c87814), UINT32_C(0x8cc70208), + UINT32_C(0x90befffa), UINT32_C(0xa4506ceb), UINT32_C(0xbef9a3f7), UINT32_C(0xc67178f2), +}; +#endif /* !RTSHA256_UNROLLED */ + + + +RTDECL(void) RTSha256Init(PRTSHA256CONTEXT pCtx) +{ + pCtx->AltPrivate.cbMessage = 0; + pCtx->AltPrivate.auH[0] = UINT32_C(0x6a09e667); + pCtx->AltPrivate.auH[1] = UINT32_C(0xbb67ae85); + pCtx->AltPrivate.auH[2] = UINT32_C(0x3c6ef372); + pCtx->AltPrivate.auH[3] = UINT32_C(0xa54ff53a); + pCtx->AltPrivate.auH[4] = UINT32_C(0x510e527f); + pCtx->AltPrivate.auH[5] = UINT32_C(0x9b05688c); + pCtx->AltPrivate.auH[6] = UINT32_C(0x1f83d9ab); + pCtx->AltPrivate.auH[7] = UINT32_C(0x5be0cd19); +} +RT_EXPORT_SYMBOL(RTSha256Init); + + +/** Function 4.2. */ +DECL_FORCE_INLINE(uint32_t) rtSha256Ch(uint32_t uX, uint32_t uY, uint32_t uZ) +{ +#if 1 + /* Optimization that saves one operation and probably a temporary variable. */ + uint32_t uResult = uY; + uResult ^= uZ; + uResult &= uX; + uResult ^= uZ; + return uResult; +#else + /* The original. */ + uint32_t uResult = uX & uY; + uResult ^= ~uX & uZ; + return uResult; +#endif +} + + +/** Function 4.3. */ +DECL_FORCE_INLINE(uint32_t) rtSha256Maj(uint32_t uX, uint32_t uY, uint32_t uZ) +{ +#if 1 + /* Optimization that save one operation and probably a temporary variable. */ + uint32_t uResult = uY; + uResult ^= uZ; + uResult &= uX; + uResult ^= uY & uZ; + return uResult; +#else + /* The original. */ + uint32_t uResult = uX & uY; + uResult ^= uX & uZ; + uResult ^= uY & uZ; + return uResult; +#endif +} + + +/** Function 4.4. */ +DECL_FORCE_INLINE(uint32_t) rtSha256CapitalSigma0(uint32_t uX) +{ + uint32_t uResult = uX = ASMRotateRightU32(uX, 2); + uX = ASMRotateRightU32(uX, 13 - 2); + uResult ^= uX; + uX = ASMRotateRightU32(uX, 22 - 13); + uResult ^= uX; + return uResult; +} + + +/** Function 4.5. */ +DECL_FORCE_INLINE(uint32_t) rtSha256CapitalSigma1(uint32_t uX) +{ + uint32_t uResult = uX = ASMRotateRightU32(uX, 6); + uX = ASMRotateRightU32(uX, 11 - 6); + uResult ^= uX; + uX = ASMRotateRightU32(uX, 25 - 11); + uResult ^= uX; + return uResult; +} + + +/** Function 4.6. */ +DECL_FORCE_INLINE(uint32_t) rtSha256SmallSigma0(uint32_t uX) +{ + uint32_t uResult = uX >> 3; + uX = ASMRotateRightU32(uX, 7); + uResult ^= uX; + uX = ASMRotateRightU32(uX, 18 - 7); + uResult ^= uX; + return uResult; +} + + +/** Function 4.7. */ +DECL_FORCE_INLINE(uint32_t) rtSha256SmallSigma1(uint32_t uX) +{ + uint32_t uResult = uX >> 10; + uX = ASMRotateRightU32(uX, 17); + uResult ^= uX; + uX = ASMRotateRightU32(uX, 19 - 17); + uResult ^= uX; + return uResult; +} + + +/** + * Initializes the auW array from the specfied input block. + * + * @param pCtx The SHA-256 context. + * @param pbBlock The block. Must be arch-bit-width aligned. + */ +DECLINLINE(void) rtSha256BlockInit(PRTSHA256CONTEXT pCtx, uint8_t const *pbBlock) +{ +#ifdef RTSHA256_UNROLLED + /* Copy and byte-swap the block. Initializing the rest of the Ws are done + in the processing loop. */ +# ifdef RT_LITTLE_ENDIAN +# if 0 /* Just an idea... very little gain as this isn't the expensive code. */ + __m128i const uBSwapConst = { 3, 2, 1, 0, 7, 6, 5, 4, 11, 10, 9, 8, 15, 14, 13, 12 }; + __m128i const *puSrc = (__m128i const *)pbBlock; + __m128i *puDst = (__m128i *)&pCtx->AltPrivate.auW[0]; + + _mm_storeu_si128(puDst, _mm_shuffle_epi8(_mm_loadu_si128(puSrc), uBSwapConst)); puDst++; puSrc++; + _mm_storeu_si128(puDst, _mm_shuffle_epi8(_mm_loadu_si128(puSrc), uBSwapConst)); puDst++; puSrc++; + _mm_storeu_si128(puDst, _mm_shuffle_epi8(_mm_loadu_si128(puSrc), uBSwapConst)); puDst++; puSrc++; + _mm_storeu_si128(puDst, _mm_shuffle_epi8(_mm_loadu_si128(puSrc), uBSwapConst)); puDst++; puSrc++; + +# elif ARCH_BITS == 64 + uint64_t const *puSrc = (uint64_t const *)pbBlock; + uint64_t *puW = (uint64_t *)&pCtx->AltPrivate.auW[0]; + Assert(!((uintptr_t)puSrc & 7)); + Assert(!((uintptr_t)puW & 7)); + + /* b0 b1 b2 b3 b4 b5 b6 b7 --bwap--> b7 b6 b5 b4 b3 b2 b1 b0 --ror--> b3 b2 b1 b0 b7 b6 b5 b4; */ + *puW++ = ASMRotateRightU64(ASMByteSwapU64(*puSrc++), 32); + *puW++ = ASMRotateRightU64(ASMByteSwapU64(*puSrc++), 32); + *puW++ = ASMRotateRightU64(ASMByteSwapU64(*puSrc++), 32); + *puW++ = ASMRotateRightU64(ASMByteSwapU64(*puSrc++), 32); + + *puW++ = ASMRotateRightU64(ASMByteSwapU64(*puSrc++), 32); + *puW++ = ASMRotateRightU64(ASMByteSwapU64(*puSrc++), 32); + *puW++ = ASMRotateRightU64(ASMByteSwapU64(*puSrc++), 32); + *puW++ = ASMRotateRightU64(ASMByteSwapU64(*puSrc++), 32); + +# else + uint32_t const *puSrc = (uint32_t const *)pbBlock; + uint32_t *puW = &pCtx->AltPrivate.auW[0]; + Assert(!((uintptr_t)puSrc & 3)); + Assert(!((uintptr_t)puW & 3)); + + *puW++ = ASMByteSwapU32(*puSrc++); + *puW++ = ASMByteSwapU32(*puSrc++); + *puW++ = ASMByteSwapU32(*puSrc++); + *puW++ = ASMByteSwapU32(*puSrc++); + + *puW++ = ASMByteSwapU32(*puSrc++); + *puW++ = ASMByteSwapU32(*puSrc++); + *puW++ = ASMByteSwapU32(*puSrc++); + *puW++ = ASMByteSwapU32(*puSrc++); + + *puW++ = ASMByteSwapU32(*puSrc++); + *puW++ = ASMByteSwapU32(*puSrc++); + *puW++ = ASMByteSwapU32(*puSrc++); + *puW++ = ASMByteSwapU32(*puSrc++); + + *puW++ = ASMByteSwapU32(*puSrc++); + *puW++ = ASMByteSwapU32(*puSrc++); + *puW++ = ASMByteSwapU32(*puSrc++); + *puW++ = ASMByteSwapU32(*puSrc++); +# endif +# else /* RT_BIG_ENDIAN */ + memcpy(&pCtx->AltPrivate.auW[0], pbBlock, RTSHA256_BLOCK_SIZE); +# endif /* RT_BIG_ENDIAN */ + +#else /* !RTSHA256_UNROLLED */ + uint32_t const *pu32Block = (uint32_t const *)pbBlock; + Assert(!((uintptr_t)pu32Block & 3)); + + unsigned iWord; + for (iWord = 0; iWord < 16; iWord++) + pCtx->AltPrivate.auW[iWord] = RT_BE2H_U32(pu32Block[iWord]); + + for (; iWord < RT_ELEMENTS(pCtx->AltPrivate.auW); iWord++) + { + uint32_t u32 = rtSha256SmallSigma1(pCtx->AltPrivate.auW[iWord - 2]); + u32 += rtSha256SmallSigma0(pCtx->AltPrivate.auW[iWord - 15]); + u32 += pCtx->AltPrivate.auW[iWord - 7]; + u32 += pCtx->AltPrivate.auW[iWord - 16]; + pCtx->AltPrivate.auW[iWord] = u32; + } +#endif /* !RTSHA256_UNROLLED */ +} + + +/** + * Initializes the auW array from data buffered in the first part of the array. + * + * @param pCtx The SHA-256 context. + */ +DECLINLINE(void) rtSha256BlockInitBuffered(PRTSHA256CONTEXT pCtx) +{ +#ifdef RTSHA256_UNROLLED + /* Do the byte swap if necessary. Initializing the rest of the Ws are done + in the processing loop. */ +# ifdef RT_LITTLE_ENDIAN +# if ARCH_BITS == 64 + uint64_t *puW = (uint64_t *)&pCtx->AltPrivate.auW[0]; + Assert(!((uintptr_t)puW & 7)); + /* b0 b1 b2 b3 b4 b5 b6 b7 --bwap--> b7 b6 b5 b4 b3 b2 b1 b0 --ror--> b3 b2 b1 b0 b7 b6 b5 b4; */ + *puW = ASMRotateRightU64(ASMByteSwapU64(*puW), 32); puW++; + *puW = ASMRotateRightU64(ASMByteSwapU64(*puW), 32); puW++; + *puW = ASMRotateRightU64(ASMByteSwapU64(*puW), 32); puW++; + *puW = ASMRotateRightU64(ASMByteSwapU64(*puW), 32); puW++; + + *puW = ASMRotateRightU64(ASMByteSwapU64(*puW), 32); puW++; + *puW = ASMRotateRightU64(ASMByteSwapU64(*puW), 32); puW++; + *puW = ASMRotateRightU64(ASMByteSwapU64(*puW), 32); puW++; + *puW = ASMRotateRightU64(ASMByteSwapU64(*puW), 32); puW++; + +# else + uint32_t *puW = &pCtx->AltPrivate.auW[0]; + Assert(!((uintptr_t)puW & 3)); + + *puW = ASMByteSwapU32(*puW); puW++; + *puW = ASMByteSwapU32(*puW); puW++; + *puW = ASMByteSwapU32(*puW); puW++; + *puW = ASMByteSwapU32(*puW); puW++; + + *puW = ASMByteSwapU32(*puW); puW++; + *puW = ASMByteSwapU32(*puW); puW++; + *puW = ASMByteSwapU32(*puW); puW++; + *puW = ASMByteSwapU32(*puW); puW++; + + *puW = ASMByteSwapU32(*puW); puW++; + *puW = ASMByteSwapU32(*puW); puW++; + *puW = ASMByteSwapU32(*puW); puW++; + *puW = ASMByteSwapU32(*puW); puW++; + + *puW = ASMByteSwapU32(*puW); puW++; + *puW = ASMByteSwapU32(*puW); puW++; + *puW = ASMByteSwapU32(*puW); puW++; + *puW = ASMByteSwapU32(*puW); puW++; +# endif +# endif + +#else /* !RTSHA256_UNROLLED */ + unsigned iWord; + for (iWord = 0; iWord < 16; iWord++) + pCtx->AltPrivate.auW[iWord] = RT_BE2H_U32(pCtx->AltPrivate.auW[iWord]); + + for (; iWord < RT_ELEMENTS(pCtx->AltPrivate.auW); iWord++) + { + uint32_t u32 = rtSha256SmallSigma1(pCtx->AltPrivate.auW[iWord - 2]); + u32 += rtSha256SmallSigma0(pCtx->AltPrivate.auW[iWord - 15]); + u32 += pCtx->AltPrivate.auW[iWord - 7]; + u32 += pCtx->AltPrivate.auW[iWord - 16]; + pCtx->AltPrivate.auW[iWord] = u32; + } +#endif /* !RTSHA256_UNROLLED */ +} + + +/** + * Process the current block. + * + * Requires one of the rtSha256BlockInit functions to be called first. + * + * @param pCtx The SHA-256 context. + */ +static void rtSha256BlockProcess(PRTSHA256CONTEXT pCtx) +{ + uint32_t uA = pCtx->AltPrivate.auH[0]; + uint32_t uB = pCtx->AltPrivate.auH[1]; + uint32_t uC = pCtx->AltPrivate.auH[2]; + uint32_t uD = pCtx->AltPrivate.auH[3]; + uint32_t uE = pCtx->AltPrivate.auH[4]; + uint32_t uF = pCtx->AltPrivate.auH[5]; + uint32_t uG = pCtx->AltPrivate.auH[6]; + uint32_t uH = pCtx->AltPrivate.auH[7]; + +#ifdef RTSHA256_UNROLLED + uint32_t *puW = &pCtx->AltPrivate.auW[0]; +# define RTSHA256_BODY(a_iWord, a_uK, a_uA, a_uB, a_uC, a_uD, a_uE, a_uF, a_uG, a_uH) \ + do { \ + if ((a_iWord) < 16) \ + a_uH += *puW++; \ + else \ + { \ + uint32_t u32 = puW[-16]; \ + u32 += rtSha256SmallSigma0(puW[-15]); \ + u32 += puW[-7]; \ + u32 += rtSha256SmallSigma1(puW[-2]); \ + if (a_iWord < 64-2) *puW++ = u32; else puW++; \ + a_uH += u32; \ + } \ + \ + a_uH += rtSha256CapitalSigma1(a_uE); \ + a_uH += a_uK; \ + a_uH += rtSha256Ch(a_uE, a_uF, a_uG); \ + a_uD += a_uH; \ + \ + a_uH += rtSha256CapitalSigma0(a_uA); \ + a_uH += rtSha256Maj(a_uA, a_uB, a_uC); \ + } while (0) +# define RTSHA256_EIGHT(a_uK0, a_uK1, a_uK2, a_uK3, a_uK4, a_uK5, a_uK6, a_uK7, a_iFirst) \ + do { \ + RTSHA256_BODY(a_iFirst + 0, a_uK0, uA, uB, uC, uD, uE, uF, uG, uH); \ + RTSHA256_BODY(a_iFirst + 1, a_uK1, uH, uA, uB, uC, uD, uE, uF, uG); \ + RTSHA256_BODY(a_iFirst + 2, a_uK2, uG, uH, uA, uB, uC, uD, uE, uF); \ + RTSHA256_BODY(a_iFirst + 3, a_uK3, uF, uG, uH, uA, uB, uC, uD, uE); \ + RTSHA256_BODY(a_iFirst + 4, a_uK4, uE, uF, uG, uH, uA, uB, uC, uD); \ + RTSHA256_BODY(a_iFirst + 5, a_uK5, uD, uE, uF, uG, uH, uA, uB, uC); \ + RTSHA256_BODY(a_iFirst + 6, a_uK6, uC, uD, uE, uF, uG, uH, uA, uB); \ + RTSHA256_BODY(a_iFirst + 7, a_uK7, uB, uC, uD, uE, uF, uG, uH, uA); \ + } while (0) + RTSHA256_EIGHT(UINT32_C(0x428a2f98), UINT32_C(0x71374491), UINT32_C(0xb5c0fbcf), UINT32_C(0xe9b5dba5), + UINT32_C(0x3956c25b), UINT32_C(0x59f111f1), UINT32_C(0x923f82a4), UINT32_C(0xab1c5ed5), 0); + RTSHA256_EIGHT(UINT32_C(0xd807aa98), UINT32_C(0x12835b01), UINT32_C(0x243185be), UINT32_C(0x550c7dc3), + UINT32_C(0x72be5d74), UINT32_C(0x80deb1fe), UINT32_C(0x9bdc06a7), UINT32_C(0xc19bf174), 8); + RTSHA256_EIGHT(UINT32_C(0xe49b69c1), UINT32_C(0xefbe4786), UINT32_C(0x0fc19dc6), UINT32_C(0x240ca1cc), + UINT32_C(0x2de92c6f), UINT32_C(0x4a7484aa), UINT32_C(0x5cb0a9dc), UINT32_C(0x76f988da), 16); + RTSHA256_EIGHT(UINT32_C(0x983e5152), UINT32_C(0xa831c66d), UINT32_C(0xb00327c8), UINT32_C(0xbf597fc7), + UINT32_C(0xc6e00bf3), UINT32_C(0xd5a79147), UINT32_C(0x06ca6351), UINT32_C(0x14292967), 24); + RTSHA256_EIGHT(UINT32_C(0x27b70a85), UINT32_C(0x2e1b2138), UINT32_C(0x4d2c6dfc), UINT32_C(0x53380d13), + UINT32_C(0x650a7354), UINT32_C(0x766a0abb), UINT32_C(0x81c2c92e), UINT32_C(0x92722c85), 32); + RTSHA256_EIGHT(UINT32_C(0xa2bfe8a1), UINT32_C(0xa81a664b), UINT32_C(0xc24b8b70), UINT32_C(0xc76c51a3), + UINT32_C(0xd192e819), UINT32_C(0xd6990624), UINT32_C(0xf40e3585), UINT32_C(0x106aa070), 40); + RTSHA256_EIGHT(UINT32_C(0x19a4c116), UINT32_C(0x1e376c08), UINT32_C(0x2748774c), UINT32_C(0x34b0bcb5), + UINT32_C(0x391c0cb3), UINT32_C(0x4ed8aa4a), UINT32_C(0x5b9cca4f), UINT32_C(0x682e6ff3), 48); + RTSHA256_EIGHT(UINT32_C(0x748f82ee), UINT32_C(0x78a5636f), UINT32_C(0x84c87814), UINT32_C(0x8cc70208), + UINT32_C(0x90befffa), UINT32_C(0xa4506ceb), UINT32_C(0xbef9a3f7), UINT32_C(0xc67178f2), 56); + +#else /* !RTSHA256_UNROLLED */ + for (unsigned iWord = 0; iWord < RT_ELEMENTS(pCtx->AltPrivate.auW); iWord++) + { + uint32_t uT1 = uH; + uT1 += rtSha256CapitalSigma1(uE); + uT1 += rtSha256Ch(uE, uF, uG); + uT1 += g_auKs[iWord]; + uT1 += pCtx->AltPrivate.auW[iWord]; + + uint32_t uT2 = rtSha256CapitalSigma0(uA); + uT2 += rtSha256Maj(uA, uB, uC); + + uH = uG; + uG = uF; + uF = uE; + uE = uD + uT1; + uD = uC; + uC = uB; + uB = uA; + uA = uT1 + uT2; + } +#endif /* !RTSHA256_UNROLLED */ + + pCtx->AltPrivate.auH[0] += uA; + pCtx->AltPrivate.auH[1] += uB; + pCtx->AltPrivate.auH[2] += uC; + pCtx->AltPrivate.auH[3] += uD; + pCtx->AltPrivate.auH[4] += uE; + pCtx->AltPrivate.auH[5] += uF; + pCtx->AltPrivate.auH[6] += uG; + pCtx->AltPrivate.auH[7] += uH; +} + + +RTDECL(void) RTSha256Update(PRTSHA256CONTEXT pCtx, const void *pvBuf, size_t cbBuf) +{ + Assert(pCtx->AltPrivate.cbMessage < UINT64_MAX / 8); + uint8_t const *pbBuf = (uint8_t const *)pvBuf; + + /* + * Deal with buffered bytes first. + */ + size_t cbBuffered = (size_t)pCtx->AltPrivate.cbMessage & (RTSHA256_BLOCK_SIZE - 1U); + if (cbBuffered) + { + size_t cbMissing = RTSHA256_BLOCK_SIZE - cbBuffered; + if (cbBuf >= cbMissing) + { + memcpy((uint8_t *)&pCtx->AltPrivate.auW[0] + cbBuffered, pbBuf, cbMissing); + pCtx->AltPrivate.cbMessage += cbMissing; + pbBuf += cbMissing; + cbBuf -= cbMissing; + + rtSha256BlockInitBuffered(pCtx); + rtSha256BlockProcess(pCtx); + } + else + { + memcpy((uint8_t *)&pCtx->AltPrivate.auW[0] + cbBuffered, pbBuf, cbBuf); + pCtx->AltPrivate.cbMessage += cbBuf; + return; + } + } + + if (!((uintptr_t)pbBuf & (sizeof(void *) - 1))) + { + /* + * Process full blocks directly from the input buffer. + */ + while (cbBuf >= RTSHA256_BLOCK_SIZE) + { + rtSha256BlockInit(pCtx, pbBuf); + rtSha256BlockProcess(pCtx); + + pCtx->AltPrivate.cbMessage += RTSHA256_BLOCK_SIZE; + pbBuf += RTSHA256_BLOCK_SIZE; + cbBuf -= RTSHA256_BLOCK_SIZE; + } + } + else + { + /* + * Unaligned input, so buffer it. + */ + while (cbBuf >= RTSHA256_BLOCK_SIZE) + { + memcpy((uint8_t *)&pCtx->AltPrivate.auW[0], pbBuf, RTSHA256_BLOCK_SIZE); + rtSha256BlockInitBuffered(pCtx); + rtSha256BlockProcess(pCtx); + + pCtx->AltPrivate.cbMessage += RTSHA256_BLOCK_SIZE; + pbBuf += RTSHA256_BLOCK_SIZE; + cbBuf -= RTSHA256_BLOCK_SIZE; + } + } + + /* + * Stash any remaining bytes into the context buffer. + */ + if (cbBuf > 0) + { + memcpy((uint8_t *)&pCtx->AltPrivate.auW[0], pbBuf, cbBuf); + pCtx->AltPrivate.cbMessage += cbBuf; + } +} +RT_EXPORT_SYMBOL(RTSha256Update); + + +/** + * Internal worker for RTSha256Final and RTSha224Final that finalizes the + * computation but does not copy out the hash value. + * + * @param pCtx The SHA-256 context. + */ +static void rtSha256FinalInternal(PRTSHA256CONTEXT pCtx) +{ + Assert(pCtx->AltPrivate.cbMessage < UINT64_MAX / 8); + + /* + * Complete the message by adding a single bit (0x80), padding till + * the next 448-bit boundrary, the add the message length. + */ + uint64_t const cMessageBits = pCtx->AltPrivate.cbMessage * 8; + + unsigned cbMissing = RTSHA256_BLOCK_SIZE - ((unsigned)pCtx->AltPrivate.cbMessage & (RTSHA256_BLOCK_SIZE - 1U)); + static uint8_t const s_abSingleBitAndSomePadding[12] = { 0x80, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, }; + if (cbMissing < 1U + 8U) + /* Less than 64+8 bits left in the current block, force a new block. */ + RTSha256Update(pCtx, &s_abSingleBitAndSomePadding, sizeof(s_abSingleBitAndSomePadding)); + else + RTSha256Update(pCtx, &s_abSingleBitAndSomePadding, 1); + + unsigned cbBuffered = (unsigned)pCtx->AltPrivate.cbMessage & (RTSHA256_BLOCK_SIZE - 1U); + cbMissing = RTSHA256_BLOCK_SIZE - cbBuffered; + Assert(cbMissing >= 8); + memset((uint8_t *)&pCtx->AltPrivate.auW[0] + cbBuffered, 0, cbMissing - 8); + + *(uint64_t *)&pCtx->AltPrivate.auW[14] = RT_H2BE_U64(cMessageBits); + + /* + * Process the last buffered block constructed/completed above. + */ + rtSha256BlockInitBuffered(pCtx); + rtSha256BlockProcess(pCtx); + + /* + * Convert the byte order of the hash words and we're done. + */ + pCtx->AltPrivate.auH[0] = RT_H2BE_U32(pCtx->AltPrivate.auH[0]); + pCtx->AltPrivate.auH[1] = RT_H2BE_U32(pCtx->AltPrivate.auH[1]); + pCtx->AltPrivate.auH[2] = RT_H2BE_U32(pCtx->AltPrivate.auH[2]); + pCtx->AltPrivate.auH[3] = RT_H2BE_U32(pCtx->AltPrivate.auH[3]); + pCtx->AltPrivate.auH[4] = RT_H2BE_U32(pCtx->AltPrivate.auH[4]); + pCtx->AltPrivate.auH[5] = RT_H2BE_U32(pCtx->AltPrivate.auH[5]); + pCtx->AltPrivate.auH[6] = RT_H2BE_U32(pCtx->AltPrivate.auH[6]); + pCtx->AltPrivate.auH[7] = RT_H2BE_U32(pCtx->AltPrivate.auH[7]); + + RT_ZERO(pCtx->AltPrivate.auW); + pCtx->AltPrivate.cbMessage = UINT64_MAX; +} +RT_EXPORT_SYMBOL(RTSha256Final); + + +RTDECL(void) RTSha256Final(PRTSHA256CONTEXT pCtx, uint8_t pabDigest[RTSHA256_HASH_SIZE]) +{ + rtSha256FinalInternal(pCtx); + memcpy(pabDigest, &pCtx->AltPrivate.auH[0], RTSHA256_HASH_SIZE); + RT_ZERO(pCtx->AltPrivate.auH); +} +RT_EXPORT_SYMBOL(RTSha256Final); + + +RTDECL(void) RTSha256(const void *pvBuf, size_t cbBuf, uint8_t pabDigest[RTSHA256_HASH_SIZE]) +{ + RTSHA256CONTEXT Ctx; + RTSha256Init(&Ctx); + RTSha256Update(&Ctx, pvBuf, cbBuf); + RTSha256Final(&Ctx, pabDigest); +} +RT_EXPORT_SYMBOL(RTSha256); + + + +/* + * SHA-224 is just SHA-256 with different initial values an a truncated result. + */ + +RTDECL(void) RTSha224Init(PRTSHA224CONTEXT pCtx) +{ + pCtx->AltPrivate.cbMessage = 0; + pCtx->AltPrivate.auH[0] = UINT32_C(0xc1059ed8); + pCtx->AltPrivate.auH[1] = UINT32_C(0x367cd507); + pCtx->AltPrivate.auH[2] = UINT32_C(0x3070dd17); + pCtx->AltPrivate.auH[3] = UINT32_C(0xf70e5939); + pCtx->AltPrivate.auH[4] = UINT32_C(0xffc00b31); + pCtx->AltPrivate.auH[5] = UINT32_C(0x68581511); + pCtx->AltPrivate.auH[6] = UINT32_C(0x64f98fa7); + pCtx->AltPrivate.auH[7] = UINT32_C(0xbefa4fa4); +} +RT_EXPORT_SYMBOL(RTSha224Init); + + +RTDECL(void) RTSha224Update(PRTSHA224CONTEXT pCtx, const void *pvBuf, size_t cbBuf) +{ + RTSha256Update(pCtx, pvBuf, cbBuf); +} +RT_EXPORT_SYMBOL(RTSha224Update); + + +RTDECL(void) RTSha224Final(PRTSHA224CONTEXT pCtx, uint8_t pabDigest[RTSHA224_HASH_SIZE]) +{ + rtSha256FinalInternal(pCtx); + memcpy(pabDigest, &pCtx->AltPrivate.auH[0], RTSHA224_HASH_SIZE); + RT_ZERO(pCtx->AltPrivate.auH); +} +RT_EXPORT_SYMBOL(RTSha224Final); + + +RTDECL(void) RTSha224(const void *pvBuf, size_t cbBuf, uint8_t pabDigest[RTSHA224_HASH_SIZE]) +{ + RTSHA224CONTEXT Ctx; + RTSha224Init(&Ctx); + RTSha224Update(&Ctx, pvBuf, cbBuf); + RTSha224Final(&Ctx, pabDigest); +} +RT_EXPORT_SYMBOL(RTSha224); + diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Runtime/common/checksum/alt-sha512.cpp virtualbox-4.1.44-dfsg/src/VBox/Runtime/common/checksum/alt-sha512.cpp --- virtualbox-4.1.12-dfsg/src/VBox/Runtime/common/checksum/alt-sha512.cpp 1970-01-01 00:00:00.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Runtime/common/checksum/alt-sha512.cpp 2015-11-11 15:08:59.000000000 +0000 @@ -0,0 +1,735 @@ +/* $Id: alt-sha512.cpp $ */ +/** @file + * IPRT - SHA-512 and SHA-384 hash functions, Alternative Implementation. + */ + +/* + * Copyright (C) 2009-2014 Oracle Corporation + * + * This file is part of VirtualBox Open Source Edition (OSE), as + * available from http://www.virtualbox.org. This file is free software; + * you can redistribute it and/or modify it under the terms of the GNU + * General Public License (GPL) as published by the Free Software + * Foundation, in version 2 as it comes in the "COPYING" file of the + * VirtualBox OSE distribution. VirtualBox OSE is distributed in the + * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind. + * + * The contents of this file may alternatively be used under the terms + * of the Common Development and Distribution License Version 1.0 + * (CDDL) only, as it comes in the "COPYING.CDDL" file of the + * VirtualBox OSE distribution, in which case the provisions of the + * CDDL are applicable instead of those of the GPL. + * + * You may elect to license modified versions of this file under the + * terms and conditions of either the GPL or the CDDL or both. + */ + + +/******************************************************************************* +* Defined Constants And Macros * +*******************************************************************************/ +/** The SHA-512 block size (in bytes). */ +#define RTSHA512_BLOCK_SIZE 128U + +/** Enables the unrolled code. */ +#define RTSHA512_UNROLLED 1 + + +/******************************************************************************* +* Header Files * +*******************************************************************************/ +#include "internal/iprt.h" +#include +#include +#include +#include + + +/** Our private context structure. */ +typedef struct RTSHA512ALTPRIVATECTX +{ + /** The W array. + * Buffering happens in the first 16 words, converted from big endian to host + * endian immediately before processing. The amount of buffered data is kept + * in the 6 least significant bits of cbMessage. */ + uint64_t auW[80]; + /** The message length (in bytes). */ + RTUINT128U cbMessage; + /** The 8 hash values. */ + uint64_t auH[8]; +} RTSHA512ALTPRIVATECTX; + +#define RT_SHA512_PRIVATE_ALT_CONTEXT +#include + + +AssertCompile(RT_SIZEOFMEMB(RTSHA512CONTEXT, abPadding) >= RT_SIZEOFMEMB(RTSHA512CONTEXT, AltPrivate)); +AssertCompileMemberSize(RTSHA512ALTPRIVATECTX, auH, RTSHA512_HASH_SIZE); + + +/******************************************************************************* +* Global Variables * +*******************************************************************************/ +#ifndef RTSHA512_UNROLLED +/** The K constants. */ +static uint64_t const g_auKs[] = +{ + UINT64_C(0x428a2f98d728ae22), UINT64_C(0x7137449123ef65cd), UINT64_C(0xb5c0fbcfec4d3b2f), UINT64_C(0xe9b5dba58189dbbc), + UINT64_C(0x3956c25bf348b538), UINT64_C(0x59f111f1b605d019), UINT64_C(0x923f82a4af194f9b), UINT64_C(0xab1c5ed5da6d8118), + UINT64_C(0xd807aa98a3030242), UINT64_C(0x12835b0145706fbe), UINT64_C(0x243185be4ee4b28c), UINT64_C(0x550c7dc3d5ffb4e2), + UINT64_C(0x72be5d74f27b896f), UINT64_C(0x80deb1fe3b1696b1), UINT64_C(0x9bdc06a725c71235), UINT64_C(0xc19bf174cf692694), + UINT64_C(0xe49b69c19ef14ad2), UINT64_C(0xefbe4786384f25e3), UINT64_C(0x0fc19dc68b8cd5b5), UINT64_C(0x240ca1cc77ac9c65), + UINT64_C(0x2de92c6f592b0275), UINT64_C(0x4a7484aa6ea6e483), UINT64_C(0x5cb0a9dcbd41fbd4), UINT64_C(0x76f988da831153b5), + UINT64_C(0x983e5152ee66dfab), UINT64_C(0xa831c66d2db43210), UINT64_C(0xb00327c898fb213f), UINT64_C(0xbf597fc7beef0ee4), + UINT64_C(0xc6e00bf33da88fc2), UINT64_C(0xd5a79147930aa725), UINT64_C(0x06ca6351e003826f), UINT64_C(0x142929670a0e6e70), + UINT64_C(0x27b70a8546d22ffc), UINT64_C(0x2e1b21385c26c926), UINT64_C(0x4d2c6dfc5ac42aed), UINT64_C(0x53380d139d95b3df), + UINT64_C(0x650a73548baf63de), UINT64_C(0x766a0abb3c77b2a8), UINT64_C(0x81c2c92e47edaee6), UINT64_C(0x92722c851482353b), + UINT64_C(0xa2bfe8a14cf10364), UINT64_C(0xa81a664bbc423001), UINT64_C(0xc24b8b70d0f89791), UINT64_C(0xc76c51a30654be30), + UINT64_C(0xd192e819d6ef5218), UINT64_C(0xd69906245565a910), UINT64_C(0xf40e35855771202a), UINT64_C(0x106aa07032bbd1b8), + UINT64_C(0x19a4c116b8d2d0c8), UINT64_C(0x1e376c085141ab53), UINT64_C(0x2748774cdf8eeb99), UINT64_C(0x34b0bcb5e19b48a8), + UINT64_C(0x391c0cb3c5c95a63), UINT64_C(0x4ed8aa4ae3418acb), UINT64_C(0x5b9cca4f7763e373), UINT64_C(0x682e6ff3d6b2b8a3), + UINT64_C(0x748f82ee5defb2fc), UINT64_C(0x78a5636f43172f60), UINT64_C(0x84c87814a1f0ab72), UINT64_C(0x8cc702081a6439ec), + UINT64_C(0x90befffa23631e28), UINT64_C(0xa4506cebde82bde9), UINT64_C(0xbef9a3f7b2c67915), UINT64_C(0xc67178f2e372532b), + UINT64_C(0xca273eceea26619c), UINT64_C(0xd186b8c721c0c207), UINT64_C(0xeada7dd6cde0eb1e), UINT64_C(0xf57d4f7fee6ed178), + UINT64_C(0x06f067aa72176fba), UINT64_C(0x0a637dc5a2c898a6), UINT64_C(0x113f9804bef90dae), UINT64_C(0x1b710b35131c471b), + UINT64_C(0x28db77f523047d84), UINT64_C(0x32caab7b40c72493), UINT64_C(0x3c9ebe0a15c9bebc), UINT64_C(0x431d67c49c100d4c), + UINT64_C(0x4cc5d4becb3e42b6), UINT64_C(0x597f299cfc657e2a), UINT64_C(0x5fcb6fab3ad6faec), UINT64_C(0x6c44198c4a475817), +}; +#endif /* !RTSHA512_UNROLLED */ + + + +RTDECL(void) RTSha512Init(PRTSHA512CONTEXT pCtx) +{ + pCtx->AltPrivate.cbMessage.s.Lo = 0; + pCtx->AltPrivate.cbMessage.s.Hi = 0; + pCtx->AltPrivate.auH[0] = UINT64_C(0x6a09e667f3bcc908); + pCtx->AltPrivate.auH[1] = UINT64_C(0xbb67ae8584caa73b); + pCtx->AltPrivate.auH[2] = UINT64_C(0x3c6ef372fe94f82b); + pCtx->AltPrivate.auH[3] = UINT64_C(0xa54ff53a5f1d36f1); + pCtx->AltPrivate.auH[4] = UINT64_C(0x510e527fade682d1); + pCtx->AltPrivate.auH[5] = UINT64_C(0x9b05688c2b3e6c1f); + pCtx->AltPrivate.auH[6] = UINT64_C(0x1f83d9abfb41bd6b); + pCtx->AltPrivate.auH[7] = UINT64_C(0x5be0cd19137e2179); +} +RT_EXPORT_SYMBOL(RTSha512Init); + + +/** Function 4.8. */ +DECL_FORCE_INLINE(uint64_t) rtSha512Ch(uint64_t uX, uint64_t uY, uint64_t uZ) +{ +#if 1 + /* Optimization that saves one operation and probably a temporary variable. */ + uint64_t uResult = uY; + uResult ^= uZ; + uResult &= uX; + uResult ^= uZ; + return uResult; +#else + /* The original. */ + uint64_t uResult = uX & uY; + uResult ^= ~uX & uZ; + return uResult; +#endif +} + + +/** Function 4.9. */ +DECL_FORCE_INLINE(uint64_t) rtSha512Maj(uint64_t uX, uint64_t uY, uint64_t uZ) +{ +#if 1 + /* Optimization that save one operation and probably a temporary variable. */ + uint64_t uResult = uY; + uResult ^= uZ; + uResult &= uX; + uResult ^= uY & uZ; + return uResult; +#else + /* The original. */ + uint64_t uResult = uX & uY; + uResult ^= uX & uZ; + uResult ^= uY & uZ; + return uResult; +#endif +} + + +/** Function 4.10. */ +DECL_FORCE_INLINE(uint64_t) rtSha512CapitalSigma0(uint64_t uX) +{ + uint64_t uResult = uX = ASMRotateRightU64(uX, 28); + uX = ASMRotateRightU64(uX, 34 - 28); + uResult ^= uX; + uX = ASMRotateRightU64(uX, 39 - 34); + uResult ^= uX; + return uResult; +} + + +/** Function 4.11. */ +DECL_FORCE_INLINE(uint64_t) rtSha512CapitalSigma1(uint64_t uX) +{ + uint64_t uResult = uX = ASMRotateRightU64(uX, 14); + uX = ASMRotateRightU64(uX, 18 - 14); + uResult ^= uX; + uX = ASMRotateRightU64(uX, 41 - 18); + uResult ^= uX; + return uResult; +} + + +/** Function 4.12. */ +DECL_FORCE_INLINE(uint64_t) rtSha512SmallSigma0(uint64_t uX) +{ + uint64_t uResult = uX >> 7; + uX = ASMRotateRightU64(uX, 1); + uResult ^= uX; + uX = ASMRotateRightU64(uX, 8 - 1); + uResult ^= uX; + return uResult; +} + + +/** Function 4.13. */ +DECL_FORCE_INLINE(uint64_t) rtSha512SmallSigma1(uint64_t uX) +{ + uint64_t uResult = uX >> 6; + uX = ASMRotateRightU64(uX, 19); + uResult ^= uX; + uX = ASMRotateRightU64(uX, 61 - 19); + uResult ^= uX; + return uResult; +} + + +/** + * Initializes the auW array from the specfied input block. + * + * @param pCtx The SHA-512 context. + * @param pbBlock The block. Must be 64-bit aligned. + */ +DECLINLINE(void) rtSha512BlockInit(PRTSHA512CONTEXT pCtx, uint8_t const *pbBlock) +{ +#ifdef RTSHA512_UNROLLED + uint64_t const *puSrc = (uint64_t const *)pbBlock; + uint64_t *puW = &pCtx->AltPrivate.auW[0]; + Assert(!((uintptr_t)puSrc & 7)); + Assert(!((uintptr_t)puW & 7)); + + /* Copy and byte-swap the block. Initializing the rest of the Ws are done + in the processing loop. */ +# ifdef RT_LITTLE_ENDIAN + *puW++ = ASMByteSwapU64(*puSrc++); + *puW++ = ASMByteSwapU64(*puSrc++); + *puW++ = ASMByteSwapU64(*puSrc++); + *puW++ = ASMByteSwapU64(*puSrc++); + + *puW++ = ASMByteSwapU64(*puSrc++); + *puW++ = ASMByteSwapU64(*puSrc++); + *puW++ = ASMByteSwapU64(*puSrc++); + *puW++ = ASMByteSwapU64(*puSrc++); + + *puW++ = ASMByteSwapU64(*puSrc++); + *puW++ = ASMByteSwapU64(*puSrc++); + *puW++ = ASMByteSwapU64(*puSrc++); + *puW++ = ASMByteSwapU64(*puSrc++); + + *puW++ = ASMByteSwapU64(*puSrc++); + *puW++ = ASMByteSwapU64(*puSrc++); + *puW++ = ASMByteSwapU64(*puSrc++); + *puW++ = ASMByteSwapU64(*puSrc++); +# else + memcpy(puW, puSrc, RTSHA512_BLOCK_SIZE); +# endif + +#else /* !RTSHA512_UNROLLED */ + + uint64_t const *pu32Block = (uint64_t const *)pbBlock; + Assert(!((uintptr_t)pu32Block & 3)); + + unsigned iWord; + for (iWord = 0; iWord < 16; iWord++) + pCtx->AltPrivate.auW[iWord] = RT_BE2H_U64(pu32Block[iWord]); + + for (; iWord < RT_ELEMENTS(pCtx->AltPrivate.auW); iWord++) + { + uint64_t u64 = rtSha512SmallSigma1(pCtx->AltPrivate.auW[iWord - 2]); + u64 += rtSha512SmallSigma0(pCtx->AltPrivate.auW[iWord - 15]); + u64 += pCtx->AltPrivate.auW[iWord - 7]; + u64 += pCtx->AltPrivate.auW[iWord - 16]; + pCtx->AltPrivate.auW[iWord] = u64; + } +#endif /* !RTSHA512_UNROLLED */ +} + + +/** + * Initializes the auW array from data buffered in the first part of the array. + * + * @param pCtx The SHA-512 context. + */ +DECLINLINE(void) rtSha512BlockInitBuffered(PRTSHA512CONTEXT pCtx) +{ +#ifdef RTSHA512_UNROLLED + uint64_t *puW = &pCtx->AltPrivate.auW[0]; + Assert(!((uintptr_t)puW & 7)); + + /* Do the byte swap if necessary. Initializing the rest of the Ws are done + in the processing loop. */ +# ifdef RT_LITTLE_ENDIAN + *puW = ASMByteSwapU64(*puW); puW++; + *puW = ASMByteSwapU64(*puW); puW++; + *puW = ASMByteSwapU64(*puW); puW++; + *puW = ASMByteSwapU64(*puW); puW++; + + *puW = ASMByteSwapU64(*puW); puW++; + *puW = ASMByteSwapU64(*puW); puW++; + *puW = ASMByteSwapU64(*puW); puW++; + *puW = ASMByteSwapU64(*puW); puW++; + + *puW = ASMByteSwapU64(*puW); puW++; + *puW = ASMByteSwapU64(*puW); puW++; + *puW = ASMByteSwapU64(*puW); puW++; + *puW = ASMByteSwapU64(*puW); puW++; + + *puW = ASMByteSwapU64(*puW); puW++; + *puW = ASMByteSwapU64(*puW); puW++; + *puW = ASMByteSwapU64(*puW); puW++; + *puW = ASMByteSwapU64(*puW); puW++; +# endif + +#else /* !RTSHA512_UNROLLED */ + + unsigned iWord; + for (iWord = 0; iWord < 16; iWord++) + pCtx->AltPrivate.auW[iWord] = RT_BE2H_U64(pCtx->AltPrivate.auW[iWord]); + + for (; iWord < RT_ELEMENTS(pCtx->AltPrivate.auW); iWord++) + { + uint64_t u64 = rtSha512SmallSigma1(pCtx->AltPrivate.auW[iWord - 2]); + u64 += rtSha512SmallSigma0(pCtx->AltPrivate.auW[iWord - 15]); + u64 += pCtx->AltPrivate.auW[iWord - 7]; + u64 += pCtx->AltPrivate.auW[iWord - 16]; + pCtx->AltPrivate.auW[iWord] = u64; + } +#endif /* !RTSHA512_UNROLLED */ +} + + +/** + * Process the current block. + * + * Requires one of the rtSha512BlockInit functions to be called first. + * + * @param pCtx The SHA-512 context. + */ +static void rtSha512BlockProcess(PRTSHA512CONTEXT pCtx) +{ + uint64_t uA = pCtx->AltPrivate.auH[0]; + uint64_t uB = pCtx->AltPrivate.auH[1]; + uint64_t uC = pCtx->AltPrivate.auH[2]; + uint64_t uD = pCtx->AltPrivate.auH[3]; + uint64_t uE = pCtx->AltPrivate.auH[4]; + uint64_t uF = pCtx->AltPrivate.auH[5]; + uint64_t uG = pCtx->AltPrivate.auH[6]; + uint64_t uH = pCtx->AltPrivate.auH[7]; + +#ifdef RTSHA512_UNROLLED + uint64_t *puW = &pCtx->AltPrivate.auW[0]; +# define RTSHA512_BODY(a_iWord, a_uK, a_uA, a_uB, a_uC, a_uD, a_uE, a_uF, a_uG, a_uH) \ + do { \ + if ((a_iWord) < 16) \ + a_uH += *puW++; \ + else \ + { \ + uint64_t u64 = puW[-16]; \ + u64 += rtSha512SmallSigma0(puW[-15]); \ + u64 += puW[-7]; \ + u64 += rtSha512SmallSigma1(puW[-2]); \ + if (a_iWord < 80-2) *puW++ = u64; else puW++; \ + a_uH += u64; \ + } \ + \ + a_uH += rtSha512CapitalSigma1(a_uE); \ + a_uH += a_uK; \ + a_uH += rtSha512Ch(a_uE, a_uF, a_uG); \ + a_uD += a_uH; \ + \ + a_uH += rtSha512CapitalSigma0(a_uA); \ + a_uH += rtSha512Maj(a_uA, a_uB, a_uC); \ + } while (0) +# define RTSHA512_EIGHT(a_uK0, a_uK1, a_uK2, a_uK3, a_uK4, a_uK5, a_uK6, a_uK7, a_iFirst) \ + do { \ + RTSHA512_BODY(a_iFirst + 0, a_uK0, uA, uB, uC, uD, uE, uF, uG, uH); \ + RTSHA512_BODY(a_iFirst + 1, a_uK1, uH, uA, uB, uC, uD, uE, uF, uG); \ + RTSHA512_BODY(a_iFirst + 2, a_uK2, uG, uH, uA, uB, uC, uD, uE, uF); \ + RTSHA512_BODY(a_iFirst + 3, a_uK3, uF, uG, uH, uA, uB, uC, uD, uE); \ + RTSHA512_BODY(a_iFirst + 4, a_uK4, uE, uF, uG, uH, uA, uB, uC, uD); \ + RTSHA512_BODY(a_iFirst + 5, a_uK5, uD, uE, uF, uG, uH, uA, uB, uC); \ + RTSHA512_BODY(a_iFirst + 6, a_uK6, uC, uD, uE, uF, uG, uH, uA, uB); \ + RTSHA512_BODY(a_iFirst + 7, a_uK7, uB, uC, uD, uE, uF, uG, uH, uA); \ + } while (0) + RTSHA512_EIGHT(UINT64_C(0x428a2f98d728ae22), UINT64_C(0x7137449123ef65cd), UINT64_C(0xb5c0fbcfec4d3b2f), UINT64_C(0xe9b5dba58189dbbc), + UINT64_C(0x3956c25bf348b538), UINT64_C(0x59f111f1b605d019), UINT64_C(0x923f82a4af194f9b), UINT64_C(0xab1c5ed5da6d8118), + 0); + RTSHA512_EIGHT(UINT64_C(0xd807aa98a3030242), UINT64_C(0x12835b0145706fbe), UINT64_C(0x243185be4ee4b28c), UINT64_C(0x550c7dc3d5ffb4e2), + UINT64_C(0x72be5d74f27b896f), UINT64_C(0x80deb1fe3b1696b1), UINT64_C(0x9bdc06a725c71235), UINT64_C(0xc19bf174cf692694), + 8); + RTSHA512_EIGHT(UINT64_C(0xe49b69c19ef14ad2), UINT64_C(0xefbe4786384f25e3), UINT64_C(0x0fc19dc68b8cd5b5), UINT64_C(0x240ca1cc77ac9c65), + UINT64_C(0x2de92c6f592b0275), UINT64_C(0x4a7484aa6ea6e483), UINT64_C(0x5cb0a9dcbd41fbd4), UINT64_C(0x76f988da831153b5), + 16); + RTSHA512_EIGHT(UINT64_C(0x983e5152ee66dfab), UINT64_C(0xa831c66d2db43210), UINT64_C(0xb00327c898fb213f), UINT64_C(0xbf597fc7beef0ee4), + UINT64_C(0xc6e00bf33da88fc2), UINT64_C(0xd5a79147930aa725), UINT64_C(0x06ca6351e003826f), UINT64_C(0x142929670a0e6e70), + 24); + RTSHA512_EIGHT(UINT64_C(0x27b70a8546d22ffc), UINT64_C(0x2e1b21385c26c926), UINT64_C(0x4d2c6dfc5ac42aed), UINT64_C(0x53380d139d95b3df), + UINT64_C(0x650a73548baf63de), UINT64_C(0x766a0abb3c77b2a8), UINT64_C(0x81c2c92e47edaee6), UINT64_C(0x92722c851482353b), + 32); + RTSHA512_EIGHT(UINT64_C(0xa2bfe8a14cf10364), UINT64_C(0xa81a664bbc423001), UINT64_C(0xc24b8b70d0f89791), UINT64_C(0xc76c51a30654be30), + UINT64_C(0xd192e819d6ef5218), UINT64_C(0xd69906245565a910), UINT64_C(0xf40e35855771202a), UINT64_C(0x106aa07032bbd1b8), + 40); + RTSHA512_EIGHT(UINT64_C(0x19a4c116b8d2d0c8), UINT64_C(0x1e376c085141ab53), UINT64_C(0x2748774cdf8eeb99), UINT64_C(0x34b0bcb5e19b48a8), + UINT64_C(0x391c0cb3c5c95a63), UINT64_C(0x4ed8aa4ae3418acb), UINT64_C(0x5b9cca4f7763e373), UINT64_C(0x682e6ff3d6b2b8a3), + 48); + RTSHA512_EIGHT(UINT64_C(0x748f82ee5defb2fc), UINT64_C(0x78a5636f43172f60), UINT64_C(0x84c87814a1f0ab72), UINT64_C(0x8cc702081a6439ec), + UINT64_C(0x90befffa23631e28), UINT64_C(0xa4506cebde82bde9), UINT64_C(0xbef9a3f7b2c67915), UINT64_C(0xc67178f2e372532b), + 56); + RTSHA512_EIGHT(UINT64_C(0xca273eceea26619c), UINT64_C(0xd186b8c721c0c207), UINT64_C(0xeada7dd6cde0eb1e), UINT64_C(0xf57d4f7fee6ed178), + UINT64_C(0x06f067aa72176fba), UINT64_C(0x0a637dc5a2c898a6), UINT64_C(0x113f9804bef90dae), UINT64_C(0x1b710b35131c471b), + 64); + RTSHA512_EIGHT(UINT64_C(0x28db77f523047d84), UINT64_C(0x32caab7b40c72493), UINT64_C(0x3c9ebe0a15c9bebc), UINT64_C(0x431d67c49c100d4c), + UINT64_C(0x4cc5d4becb3e42b6), UINT64_C(0x597f299cfc657e2a), UINT64_C(0x5fcb6fab3ad6faec), UINT64_C(0x6c44198c4a475817), + 72); +#else + for (unsigned iWord = 0; iWord < RT_ELEMENTS(pCtx->AltPrivate.auW); iWord++) + { + uint64_t uT1 = uH; + uT1 += rtSha512CapitalSigma1(uE); + uT1 += rtSha512Ch(uE, uF, uG); + uT1 += g_auKs[iWord]; + uT1 += pCtx->AltPrivate.auW[iWord]; + + uint64_t uT2 = rtSha512CapitalSigma0(uA); + uT2 += rtSha512Maj(uA, uB, uC); + + uH = uG; + uG = uF; + uF = uE; + uE = uD + uT1; + uD = uC; + uC = uB; + uB = uA; + uA = uT1 + uT2; + } +#endif + + pCtx->AltPrivate.auH[0] += uA; + pCtx->AltPrivate.auH[1] += uB; + pCtx->AltPrivate.auH[2] += uC; + pCtx->AltPrivate.auH[3] += uD; + pCtx->AltPrivate.auH[4] += uE; + pCtx->AltPrivate.auH[5] += uF; + pCtx->AltPrivate.auH[6] += uG; + pCtx->AltPrivate.auH[7] += uH; +} + + +RTDECL(void) RTSha512Update(PRTSHA512CONTEXT pCtx, const void *pvBuf, size_t cbBuf) +{ + Assert(pCtx->AltPrivate.cbMessage.s.Hi < UINT64_MAX / 8); + uint8_t const *pbBuf = (uint8_t const *)pvBuf; + + /* + * Deal with buffered bytes first. + */ + size_t cbBuffered = (size_t)pCtx->AltPrivate.cbMessage.s.Lo & (RTSHA512_BLOCK_SIZE - 1U); + if (cbBuffered) + { + size_t cbMissing = RTSHA512_BLOCK_SIZE - cbBuffered; + if (cbBuf >= cbMissing) + { + memcpy((uint8_t *)&pCtx->AltPrivate.auW[0] + cbBuffered, pbBuf, cbMissing); + pCtx->AltPrivate.cbMessage.s.Lo += cbMissing; + if (!pCtx->AltPrivate.cbMessage.s.Lo) + pCtx->AltPrivate.cbMessage.s.Hi++; + pbBuf += cbMissing; + cbBuf -= cbMissing; + + rtSha512BlockInitBuffered(pCtx); + rtSha512BlockProcess(pCtx); + } + else + { + memcpy((uint8_t *)&pCtx->AltPrivate.auW[0] + cbBuffered, pbBuf, cbBuf); + pCtx->AltPrivate.cbMessage.s.Lo += cbBuf; + return; + } + } + + if (!((uintptr_t)pbBuf & 7)) + { + /* + * Process full blocks directly from the input buffer. + */ + while (cbBuf >= RTSHA512_BLOCK_SIZE) + { + rtSha512BlockInit(pCtx, pbBuf); + rtSha512BlockProcess(pCtx); + + pCtx->AltPrivate.cbMessage.s.Lo += RTSHA512_BLOCK_SIZE; + if (!pCtx->AltPrivate.cbMessage.s.Lo) + pCtx->AltPrivate.cbMessage.s.Hi++; + pbBuf += RTSHA512_BLOCK_SIZE; + cbBuf -= RTSHA512_BLOCK_SIZE; + } + } + else + { + /* + * Unaligned input, so buffer it. + */ + while (cbBuf >= RTSHA512_BLOCK_SIZE) + { + memcpy((uint8_t *)&pCtx->AltPrivate.auW[0], pbBuf, RTSHA512_BLOCK_SIZE); + rtSha512BlockInitBuffered(pCtx); + rtSha512BlockProcess(pCtx); + + pCtx->AltPrivate.cbMessage.s.Lo += RTSHA512_BLOCK_SIZE; + if (!pCtx->AltPrivate.cbMessage.s.Lo) + pCtx->AltPrivate.cbMessage.s.Hi++; + pbBuf += RTSHA512_BLOCK_SIZE; + cbBuf -= RTSHA512_BLOCK_SIZE; + } + } + + /* + * Stash any remaining bytes into the context buffer. + */ + if (cbBuf > 0) + { + memcpy((uint8_t *)&pCtx->AltPrivate.auW[0], pbBuf, cbBuf); + pCtx->AltPrivate.cbMessage.s.Lo += cbBuf; + if (!pCtx->AltPrivate.cbMessage.s.Lo) + pCtx->AltPrivate.cbMessage.s.Hi++; + } +} +RT_EXPORT_SYMBOL(RTSha512Update); + + +/** + * Internal worker for RTSha512Final and RTSha384Final that finalizes the + * computation but does not copy out the hash value. + * + * @param pCtx The SHA-512 context. + */ +static void rtSha512FinalInternal(PRTSHA512CONTEXT pCtx) +{ + Assert(pCtx->AltPrivate.cbMessage.s.Hi < UINT64_MAX / 8); + + /* + * Complete the message by adding a single bit (0x80), padding till + * the next 448-bit boundrary, the add the message length. + */ + RTUINT128U cMessageBits = pCtx->AltPrivate.cbMessage; + cMessageBits.s.Hi <<= 3; + cMessageBits.s.Hi |= cMessageBits.s.Lo >> 61; + cMessageBits.s.Lo <<= 3; + + unsigned cbMissing = RTSHA512_BLOCK_SIZE - ((unsigned)pCtx->AltPrivate.cbMessage.s.Lo & (RTSHA512_BLOCK_SIZE - 1U)); + static uint8_t const s_abSingleBitAndSomePadding[20] = + { 0x80, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,}; + if (cbMissing < 1U + 16U) + /* Less than 64+16 bits left in the current block, force a new block. */ + RTSha512Update(pCtx, &s_abSingleBitAndSomePadding, sizeof(s_abSingleBitAndSomePadding)); + else + RTSha512Update(pCtx, &s_abSingleBitAndSomePadding, 1); + + unsigned cbBuffered = (unsigned)pCtx->AltPrivate.cbMessage.s.Lo & (RTSHA512_BLOCK_SIZE - 1U); + cbMissing = RTSHA512_BLOCK_SIZE - cbBuffered; + Assert(cbMissing >= 16); + memset((uint8_t *)&pCtx->AltPrivate.auW[0] + cbBuffered, 0, cbMissing - 16); + + pCtx->AltPrivate.auW[14] = RT_H2BE_U64(cMessageBits.s.Hi); + pCtx->AltPrivate.auW[15] = RT_H2BE_U64(cMessageBits.s.Lo); + + /* + * Process the last buffered block constructed/completed above. + */ + rtSha512BlockInitBuffered(pCtx); + rtSha512BlockProcess(pCtx); + + /* + * Convert the byte order of the hash words and we're done. + */ + pCtx->AltPrivate.auH[0] = RT_H2BE_U64(pCtx->AltPrivate.auH[0]); + pCtx->AltPrivate.auH[1] = RT_H2BE_U64(pCtx->AltPrivate.auH[1]); + pCtx->AltPrivate.auH[2] = RT_H2BE_U64(pCtx->AltPrivate.auH[2]); + pCtx->AltPrivate.auH[3] = RT_H2BE_U64(pCtx->AltPrivate.auH[3]); + pCtx->AltPrivate.auH[4] = RT_H2BE_U64(pCtx->AltPrivate.auH[4]); + pCtx->AltPrivate.auH[5] = RT_H2BE_U64(pCtx->AltPrivate.auH[5]); + pCtx->AltPrivate.auH[6] = RT_H2BE_U64(pCtx->AltPrivate.auH[6]); + pCtx->AltPrivate.auH[7] = RT_H2BE_U64(pCtx->AltPrivate.auH[7]); + + RT_ZERO(pCtx->AltPrivate.auW); + pCtx->AltPrivate.cbMessage.s.Lo = UINT64_MAX; + pCtx->AltPrivate.cbMessage.s.Hi = UINT64_MAX; +} +RT_EXPORT_SYMBOL(RTSha512Final); + + +RTDECL(void) RTSha512Final(PRTSHA512CONTEXT pCtx, uint8_t pabDigest[RTSHA512_HASH_SIZE]) +{ + rtSha512FinalInternal(pCtx); + memcpy(pabDigest, &pCtx->AltPrivate.auH[0], RTSHA512_HASH_SIZE); + RT_ZERO(pCtx->AltPrivate.auH); +} +RT_EXPORT_SYMBOL(RTSha512Final); + + +RTDECL(void) RTSha512(const void *pvBuf, size_t cbBuf, uint8_t pabDigest[RTSHA512_HASH_SIZE]) +{ + RTSHA512CONTEXT Ctx; + RTSha512Init(&Ctx); + RTSha512Update(&Ctx, pvBuf, cbBuf); + RTSha512Final(&Ctx, pabDigest); +} +RT_EXPORT_SYMBOL(RTSha512); + + + +/* + * SHA-384 is just SHA-512 with different initial values an a truncated result. + */ + +RTDECL(void) RTSha384Init(PRTSHA384CONTEXT pCtx) +{ + pCtx->AltPrivate.cbMessage.s.Lo = 0; + pCtx->AltPrivate.cbMessage.s.Hi = 0; + pCtx->AltPrivate.auH[0] = UINT64_C(0xcbbb9d5dc1059ed8); + pCtx->AltPrivate.auH[1] = UINT64_C(0x629a292a367cd507); + pCtx->AltPrivate.auH[2] = UINT64_C(0x9159015a3070dd17); + pCtx->AltPrivate.auH[3] = UINT64_C(0x152fecd8f70e5939); + pCtx->AltPrivate.auH[4] = UINT64_C(0x67332667ffc00b31); + pCtx->AltPrivate.auH[5] = UINT64_C(0x8eb44a8768581511); + pCtx->AltPrivate.auH[6] = UINT64_C(0xdb0c2e0d64f98fa7); + pCtx->AltPrivate.auH[7] = UINT64_C(0x47b5481dbefa4fa4); +} +RT_EXPORT_SYMBOL(RTSha384Init); + + +RTDECL(void) RTSha384Update(PRTSHA384CONTEXT pCtx, const void *pvBuf, size_t cbBuf) +{ + RTSha512Update(pCtx, pvBuf, cbBuf); +} +RT_EXPORT_SYMBOL(RTSha384Update); + + +RTDECL(void) RTSha384Final(PRTSHA384CONTEXT pCtx, uint8_t pabDigest[RTSHA384_HASH_SIZE]) +{ + rtSha512FinalInternal(pCtx); + memcpy(pabDigest, &pCtx->AltPrivate.auH[0], RTSHA384_HASH_SIZE); + RT_ZERO(pCtx->AltPrivate.auH); +} +RT_EXPORT_SYMBOL(RTSha384Final); + + +RTDECL(void) RTSha384(const void *pvBuf, size_t cbBuf, uint8_t pabDigest[RTSHA384_HASH_SIZE]) +{ + RTSHA384CONTEXT Ctx; + RTSha384Init(&Ctx); + RTSha384Update(&Ctx, pvBuf, cbBuf); + RTSha384Final(&Ctx, pabDigest); +} +RT_EXPORT_SYMBOL(RTSha384); + + +/* + * SHA-512/224 is just SHA-512 with different initial values an a truncated result. + */ + +RTDECL(void) RTSha512t224Init(PRTSHA512T224CONTEXT pCtx) +{ + pCtx->AltPrivate.cbMessage.s.Lo = 0; + pCtx->AltPrivate.cbMessage.s.Hi = 0; + pCtx->AltPrivate.auH[0] = UINT64_C(0x8c3d37c819544da2); + pCtx->AltPrivate.auH[1] = UINT64_C(0x73e1996689dcd4d6); + pCtx->AltPrivate.auH[2] = UINT64_C(0x1dfab7ae32ff9c82); + pCtx->AltPrivate.auH[3] = UINT64_C(0x679dd514582f9fcf); + pCtx->AltPrivate.auH[4] = UINT64_C(0x0f6d2b697bd44da8); + pCtx->AltPrivate.auH[5] = UINT64_C(0x77e36f7304c48942); + pCtx->AltPrivate.auH[6] = UINT64_C(0x3f9d85a86a1d36c8); + pCtx->AltPrivate.auH[7] = UINT64_C(0x1112e6ad91d692a1); +} +RT_EXPORT_SYMBOL(RTSha512t224Init); + + +RTDECL(void) RTSha512t224Update(PRTSHA512T224CONTEXT pCtx, const void *pvBuf, size_t cbBuf) +{ + RTSha512Update(pCtx, pvBuf, cbBuf); +} +RT_EXPORT_SYMBOL(RTSha512t224Update); + + +RTDECL(void) RTSha512t224Final(PRTSHA512T224CONTEXT pCtx, uint8_t pabDigest[RTSHA512T224_HASH_SIZE]) +{ + rtSha512FinalInternal(pCtx); + memcpy(pabDigest, &pCtx->AltPrivate.auH[0], RTSHA512T224_HASH_SIZE); + RT_ZERO(pCtx->AltPrivate.auH); +} +RT_EXPORT_SYMBOL(RTSha512t224Final); + + +RTDECL(void) RTSha512t224(const void *pvBuf, size_t cbBuf, uint8_t pabDigest[RTSHA512T224_HASH_SIZE]) +{ + RTSHA512T224CONTEXT Ctx; + RTSha512t224Init(&Ctx); + RTSha512t224Update(&Ctx, pvBuf, cbBuf); + RTSha512t224Final(&Ctx, pabDigest); +} +RT_EXPORT_SYMBOL(RTSha512t224); + + +/* + * SHA-512/256 is just SHA-512 with different initial values an a truncated result. + */ + +RTDECL(void) RTSha512t256Init(PRTSHA512T256CONTEXT pCtx) +{ + pCtx->AltPrivate.cbMessage.s.Lo = 0; + pCtx->AltPrivate.cbMessage.s.Hi = 0; + pCtx->AltPrivate.auH[0] = UINT64_C(0x22312194fc2bf72c); + pCtx->AltPrivate.auH[1] = UINT64_C(0x9f555fa3c84c64c2); + pCtx->AltPrivate.auH[2] = UINT64_C(0x2393b86b6f53b151); + pCtx->AltPrivate.auH[3] = UINT64_C(0x963877195940eabd); + pCtx->AltPrivate.auH[4] = UINT64_C(0x96283ee2a88effe3); + pCtx->AltPrivate.auH[5] = UINT64_C(0xbe5e1e2553863992); + pCtx->AltPrivate.auH[6] = UINT64_C(0x2b0199fc2c85b8aa); + pCtx->AltPrivate.auH[7] = UINT64_C(0x0eb72ddc81c52ca2); +} +RT_EXPORT_SYMBOL(RTSha512t256Init); + + +RTDECL(void) RTSha512t256Update(PRTSHA512T256CONTEXT pCtx, const void *pvBuf, size_t cbBuf) +{ + RTSha512Update(pCtx, pvBuf, cbBuf); +} +RT_EXPORT_SYMBOL(RTSha512t256Update); + + +RTDECL(void) RTSha512t256Final(PRTSHA512T256CONTEXT pCtx, uint8_t pabDigest[RTSHA512T256_HASH_SIZE]) +{ + rtSha512FinalInternal(pCtx); + memcpy(pabDigest, &pCtx->AltPrivate.auH[0], RTSHA512T256_HASH_SIZE); + RT_ZERO(pCtx->AltPrivate.auH); +} +RT_EXPORT_SYMBOL(RTSha512t256Final); + + +RTDECL(void) RTSha512t256(const void *pvBuf, size_t cbBuf, uint8_t pabDigest[RTSHA512T256_HASH_SIZE]) +{ + RTSHA512T256CONTEXT Ctx; + RTSha512t256Init(&Ctx); + RTSha512t256Update(&Ctx, pvBuf, cbBuf); + RTSha512t256Final(&Ctx, pabDigest); +} +RT_EXPORT_SYMBOL(RTSha512t256); + diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Runtime/common/checksum/ipv6.cpp virtualbox-4.1.44-dfsg/src/VBox/Runtime/common/checksum/ipv6.cpp --- virtualbox-4.1.12-dfsg/src/VBox/Runtime/common/checksum/ipv6.cpp 2012-04-02 13:29:00.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Runtime/common/checksum/ipv6.cpp 2015-11-11 15:08:59.000000000 +0000 @@ -60,7 +60,7 @@ + RT_H2BE_U16(RT_HIWORD(cbPkt)) + RT_H2BE_U16(RT_LOWORD(cbPkt)) + 0 - + RT_H2BE_U16(RT_MAKE_U16(0, bProtocol)); + + RT_H2BE_U16(RT_MAKE_U16(bProtocol, 0)); return u32Sum; } diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Runtime/common/checksum/md2str.cpp virtualbox-4.1.44-dfsg/src/VBox/Runtime/common/checksum/md2str.cpp --- virtualbox-4.1.12-dfsg/src/VBox/Runtime/common/checksum/md2str.cpp 1970-01-01 00:00:00.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Runtime/common/checksum/md2str.cpp 2015-11-11 15:08:59.000000000 +0000 @@ -0,0 +1,49 @@ +/* $Id: md2str.cpp $ */ +/** @file + * IPRT - MD2 string functions. + */ + +/* + * Copyright (C) 2009-2014 Oracle Corporation + * + * This file is part of VirtualBox Open Source Edition (OSE), as + * available from http://www.virtualbox.org. This file is free software; + * you can redistribute it and/or modify it under the terms of the GNU + * General Public License (GPL) as published by the Free Software + * Foundation, in version 2 as it comes in the "COPYING" file of the + * VirtualBox OSE distribution. VirtualBox OSE is distributed in the + * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind. + * + * The contents of this file may alternatively be used under the terms + * of the Common Development and Distribution License Version 1.0 + * (CDDL) only, as it comes in the "COPYING.CDDL" file of the + * VirtualBox OSE distribution, in which case the provisions of the + * CDDL are applicable instead of those of the GPL. + * + * You may elect to license modified versions of this file under the + * terms and conditions of either the GPL or the CDDL or both. + */ + + +/******************************************************************************* +* Header Files * +*******************************************************************************/ +#include "internal/iprt.h" +#include + +#include +#include +#include + + +RTDECL(int) RTMd2ToString(uint8_t const pabDigest[RTMD2_HASH_SIZE], char *pszDigest, size_t cchDigest) +{ + return RTStrPrintHexBytes(pszDigest, cchDigest, &pabDigest[0], RTMD2_HASH_SIZE, 0 /*fFlags*/); +} + + +RTDECL(int) RTMd2FromString(char const *pszDigest, uint8_t pabDigest[RTMD2_HASH_SIZE]) +{ + return RTStrConvertHexBytes(RTStrStripL(pszDigest), &pabDigest[0], RTMD2_HASH_SIZE, 0 /*fFlags*/); +} + diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Runtime/common/checksum/md5.cpp virtualbox-4.1.44-dfsg/src/VBox/Runtime/common/checksum/md5.cpp --- virtualbox-4.1.12-dfsg/src/VBox/Runtime/common/checksum/md5.cpp 2012-04-02 13:29:00.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Runtime/common/checksum/md5.cpp 1970-01-01 00:00:00.000000000 +0000 @@ -1,357 +0,0 @@ -/* $Id: md5.cpp $ */ -/** @file - * IPRT - MD5 message digest functions. - */ - -/* - * Copyright (C) 2006-2007 Oracle Corporation - * - * This file is part of VirtualBox Open Source Edition (OSE), as - * available from http://www.virtualbox.org. This file is free software; - * you can redistribute it and/or modify it under the terms of the GNU - * General Public License (GPL) as published by the Free Software - * Foundation, in version 2 as it comes in the "COPYING" file of the - * VirtualBox OSE distribution. VirtualBox OSE is distributed in the - * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind. - * - * The contents of this file may alternatively be used under the terms - * of the Common Development and Distribution License Version 1.0 - * (CDDL) only, as it comes in the "COPYING.CDDL" file of the - * VirtualBox OSE distribution, in which case the provisions of the - * CDDL are applicable instead of those of the GPL. - * - * You may elect to license modified versions of this file under the - * terms and conditions of either the GPL or the CDDL or both. - */ - -/* The code is virtually unchanged from the original version (see copyright - * notice below). Most changes are related to the function names and data - * types - in order to fit the code in the IPRT naming style. */ - -/* - * This code implements the MD5 message-digest algorithm. - * The algorithm is due to Ron Rivest. This code was - * written by Colin Plumb in 1993, no copyright is claimed. - * This code is in the public domain; do with it what you wish. - * - * Equivalent code is available from RSA Data Security, Inc. - * This code has been tested against that, and is equivalent, - * except that you don't need to include two pages of legalese - * with every copy. - * - * To compute the message digest of a chunk of bytes, declare an - * RTMD5CONTEXT structure, pass it to MD5Init, call MD5Update as - * needed on buffers full of bytes, and then call MD5Final, which - * will fill a supplied 16-byte array with the digest. - */ - -/******************************************************************************* -* Header Files * -*******************************************************************************/ -#include -#include "internal/iprt.h" - -#include /* for memcpy() */ -#if defined(RT_BIG_ENDIAN) -# include /* RT_LE2H_U32 uses ASMByteSwapU32. */ -#endif - - -/******************************************************************************* -* Defined Constants And Macros * -*******************************************************************************/ -/* The four core functions - F1 is optimized somewhat */ -#if 1 -/* #define F1(x, y, z) (x & y | ~x & z) */ -# define F1(x, y, z) (z ^ (x & (y ^ z))) -# define F2(x, y, z) F1(z, x, y) -# define F3(x, y, z) (x ^ y ^ z) -# define F4(x, y, z) (y ^ (x | ~z)) -#else /* gcc 4.0.1 (x86) benefits from the explicitness of F1() here. */ -DECL_FORCE_INLINE(uint32_t) F1(uint32_t x, uint32_t y, uint32_t z) -{ - register uint32_t r = y ^ z; - r &= x; - r ^= z; - return r; -} -# define F2(x, y, z) F1(z, x, y) -DECL_FORCE_INLINE(uint32_t) F3(uint32_t x, uint32_t y, uint32_t z) -{ - register uint32_t r = x ^ y; - r ^= z; - return r; -} -DECL_FORCE_INLINE(uint32_t) F4(uint32_t x, uint32_t y, uint32_t z) -{ - register uint32_t r = ~z; - r |= x; - r ^= y; - return r; -} -#endif - -/* This is the central step in the MD5 algorithm. */ -#define MD5STEP(f, w, x, y, z, data, s) \ - ( w += f(x, y, z) + data, w = w<>(32-s), w += x ) - - -/** - * The core of the MD5 algorithm, this alters an existing MD5 hash to reflect - * the addition of 16 longwords of new data. RTMd5Update blocks the data and - * converts bytes into longwords for this routine. - */ -static void rtMd5Transform(uint32_t buf[4], uint32_t const in[16]) -{ - uint32_t a, b, c, d; - - a = buf[0]; - b = buf[1]; - c = buf[2]; - d = buf[3]; - - /* fn, w, x, y, z, data, s) */ - MD5STEP(F1, a, b, c, d, in[ 0] + 0xd76aa478, 7); - MD5STEP(F1, d, a, b, c, in[ 1] + 0xe8c7b756, 12); - MD5STEP(F1, c, d, a, b, in[ 2] + 0x242070db, 17); - MD5STEP(F1, b, c, d, a, in[ 3] + 0xc1bdceee, 22); - MD5STEP(F1, a, b, c, d, in[ 4] + 0xf57c0faf, 7); - MD5STEP(F1, d, a, b, c, in[ 5] + 0x4787c62a, 12); - MD5STEP(F1, c, d, a, b, in[ 6] + 0xa8304613, 17); - MD5STEP(F1, b, c, d, a, in[ 7] + 0xfd469501, 22); - MD5STEP(F1, a, b, c, d, in[ 8] + 0x698098d8, 7); - MD5STEP(F1, d, a, b, c, in[ 9] + 0x8b44f7af, 12); - MD5STEP(F1, c, d, a, b, in[10] + 0xffff5bb1, 17); - MD5STEP(F1, b, c, d, a, in[11] + 0x895cd7be, 22); - MD5STEP(F1, a, b, c, d, in[12] + 0x6b901122, 7); - MD5STEP(F1, d, a, b, c, in[13] + 0xfd987193, 12); - MD5STEP(F1, c, d, a, b, in[14] + 0xa679438e, 17); - MD5STEP(F1, b, c, d, a, in[15] + 0x49b40821, 22); - - MD5STEP(F2, a, b, c, d, in[ 1] + 0xf61e2562, 5); - MD5STEP(F2, d, a, b, c, in[ 6] + 0xc040b340, 9); - MD5STEP(F2, c, d, a, b, in[11] + 0x265e5a51, 14); - MD5STEP(F2, b, c, d, a, in[ 0] + 0xe9b6c7aa, 20); - MD5STEP(F2, a, b, c, d, in[ 5] + 0xd62f105d, 5); - MD5STEP(F2, d, a, b, c, in[10] + 0x02441453, 9); - MD5STEP(F2, c, d, a, b, in[15] + 0xd8a1e681, 14); - MD5STEP(F2, b, c, d, a, in[ 4] + 0xe7d3fbc8, 20); - MD5STEP(F2, a, b, c, d, in[ 9] + 0x21e1cde6, 5); - MD5STEP(F2, d, a, b, c, in[14] + 0xc33707d6, 9); - MD5STEP(F2, c, d, a, b, in[ 3] + 0xf4d50d87, 14); - MD5STEP(F2, b, c, d, a, in[ 8] + 0x455a14ed, 20); - MD5STEP(F2, a, b, c, d, in[13] + 0xa9e3e905, 5); - MD5STEP(F2, d, a, b, c, in[ 2] + 0xfcefa3f8, 9); - MD5STEP(F2, c, d, a, b, in[ 7] + 0x676f02d9, 14); - MD5STEP(F2, b, c, d, a, in[12] + 0x8d2a4c8a, 20); - - MD5STEP(F3, a, b, c, d, in[ 5] + 0xfffa3942, 4); - MD5STEP(F3, d, a, b, c, in[ 8] + 0x8771f681, 11); - MD5STEP(F3, c, d, a, b, in[11] + 0x6d9d6122, 16); - MD5STEP(F3, b, c, d, a, in[14] + 0xfde5380c, 23); - MD5STEP(F3, a, b, c, d, in[ 1] + 0xa4beea44, 4); - MD5STEP(F3, d, a, b, c, in[ 4] + 0x4bdecfa9, 11); - MD5STEP(F3, c, d, a, b, in[ 7] + 0xf6bb4b60, 16); - MD5STEP(F3, b, c, d, a, in[10] + 0xbebfbc70, 23); - MD5STEP(F3, a, b, c, d, in[13] + 0x289b7ec6, 4); - MD5STEP(F3, d, a, b, c, in[ 0] + 0xeaa127fa, 11); - MD5STEP(F3, c, d, a, b, in[ 3] + 0xd4ef3085, 16); - MD5STEP(F3, b, c, d, a, in[ 6] + 0x04881d05, 23); - MD5STEP(F3, a, b, c, d, in[ 9] + 0xd9d4d039, 4); - MD5STEP(F3, d, a, b, c, in[12] + 0xe6db99e5, 11); - MD5STEP(F3, c, d, a, b, in[15] + 0x1fa27cf8, 16); - MD5STEP(F3, b, c, d, a, in[ 2] + 0xc4ac5665, 23); - - MD5STEP(F4, a, b, c, d, in[ 0] + 0xf4292244, 6); - MD5STEP(F4, d, a, b, c, in[ 7] + 0x432aff97, 10); - MD5STEP(F4, c, d, a, b, in[14] + 0xab9423a7, 15); - MD5STEP(F4, b, c, d, a, in[ 5] + 0xfc93a039, 21); - MD5STEP(F4, a, b, c, d, in[12] + 0x655b59c3, 6); - MD5STEP(F4, d, a, b, c, in[ 3] + 0x8f0ccc92, 10); - MD5STEP(F4, c, d, a, b, in[10] + 0xffeff47d, 15); - MD5STEP(F4, b, c, d, a, in[ 1] + 0x85845dd1, 21); - MD5STEP(F4, a, b, c, d, in[ 8] + 0x6fa87e4f, 6); - MD5STEP(F4, d, a, b, c, in[15] + 0xfe2ce6e0, 10); - MD5STEP(F4, c, d, a, b, in[ 6] + 0xa3014314, 15); - MD5STEP(F4, b, c, d, a, in[13] + 0x4e0811a1, 21); - MD5STEP(F4, a, b, c, d, in[ 4] + 0xf7537e82, 6); - MD5STEP(F4, d, a, b, c, in[11] + 0xbd3af235, 10); - MD5STEP(F4, c, d, a, b, in[ 2] + 0x2ad7d2bb, 15); - MD5STEP(F4, b, c, d, a, in[ 9] + 0xeb86d391, 21); - - buf[0] += a; - buf[1] += b; - buf[2] += c; - buf[3] += d; -} - - -#ifdef RT_BIG_ENDIAN -/* - * Note: this code is harmless on little-endian machines. - */ -static void rtMd5ByteReverse(uint32_t *buf, unsigned int longs) -{ - uint32_t t; - do { - t = *buf; - t = RT_LE2H_U32(t); - *buf = t; - buf++; - } while (--longs); -} -#else /* little endian - do nothing */ -# define rtMd5ByteReverse(buf, len) do { /* Nothing */ } while (0) -#endif - - - -/* - * Start MD5 accumulation. Set bit count to 0 and buffer to mysterious - * initialization constants. - */ -RTDECL(void) RTMd5Init(PRTMD5CONTEXT ctx) -{ - ctx->buf[0] = 0x67452301; - ctx->buf[1] = 0xefcdab89; - ctx->buf[2] = 0x98badcfe; - ctx->buf[3] = 0x10325476; - - ctx->bits[0] = 0; - ctx->bits[1] = 0; -} -RT_EXPORT_SYMBOL(RTMd5Init); - - -/* - * Update context to reflect the concatenation of another buffer full - * of bytes. - */ -RTDECL(void) RTMd5Update(PRTMD5CONTEXT ctx, const void *pvBuf, size_t len) -{ - const uint8_t *buf = (const uint8_t *)pvBuf; - uint32_t t; - - /* Update bitcount */ - t = ctx->bits[0]; - if ((ctx->bits[0] = t + ((uint32_t) len << 3)) < t) - ctx->bits[1]++; /* Carry from low to high */ - ctx->bits[1] += (uint32_t)(len >> 29); - - t = (t >> 3) & 0x3f; /* Bytes already in shsInfo->data */ - - /* Handle any leading odd-sized chunks */ - if (t) { - uint8_t *p = (uint8_t *) ctx->in + t; - - t = 64 - t; - if (len < t) { - memcpy(p, buf, len); - return; - } - memcpy(p, buf, t); - rtMd5ByteReverse(ctx->in, 16); - rtMd5Transform(ctx->buf, ctx->in); - buf += t; - len -= t; - } - - /* Process data in 64-byte chunks */ -#ifndef RT_BIG_ENDIAN - if (!((uintptr_t)buf & 0x3)) - { - while (len >= 64) { - rtMd5Transform(ctx->buf, (uint32_t const *)buf); - buf += 64; - len -= 64; - } - } - else -#endif - { - while (len >= 64) { - memcpy(ctx->in, buf, 64); - rtMd5ByteReverse(ctx->in, 16); - rtMd5Transform(ctx->buf, ctx->in); - buf += 64; - len -= 64; - } - } - - /* Handle any remaining bytes of data */ - memcpy(ctx->in, buf, len); -} -RT_EXPORT_SYMBOL(RTMd5Update); - - -/* - * Final wrapup - pad to 64-byte boundary with the bit pattern - * 1 0* (64-bit count of bits processed, MSB-first) - */ -RTDECL(void) RTMd5Final(uint8_t digest[16], PRTMD5CONTEXT ctx) -{ - unsigned int count; - uint8_t *p; - - /* Compute number of bytes mod 64 */ - count = (ctx->bits[0] >> 3) & 0x3F; - - /* Set the first char of padding to 0x80. This is safe since there is - always at least one byte free */ - p = (uint8_t *)ctx->in + count; - *p++ = 0x80; - - /* Bytes of padding needed to make 64 bytes */ - count = 64 - 1 - count; - - /* Pad out to 56 mod 64 */ - if (count < 8) { - /* Two lots of padding: Pad the first block to 64 bytes */ - memset(p, 0, count); - rtMd5ByteReverse(ctx->in, 16); - rtMd5Transform(ctx->buf, ctx->in); - - /* Now fill the next block with 56 bytes */ - memset(ctx->in, 0, 56); - } else { - /* Pad block to 56 bytes */ - memset(p, 0, count - 8); - } - rtMd5ByteReverse(ctx->in, 14); - - /* Append length in bits and transform */ - ctx->in[14] = ctx->bits[0]; - ctx->in[15] = ctx->bits[1]; - - rtMd5Transform(ctx->buf, ctx->in); - rtMd5ByteReverse(ctx->buf, 4); - memcpy(digest, ctx->buf, 16); - memset(ctx, 0, sizeof(ctx)); /* In case it's sensitive */ -} -RT_EXPORT_SYMBOL(RTMd5Final); - - -RTDECL(void) RTMd5(const void *pvBuf, size_t cbBuf, uint8_t pabDigest[RTMD5HASHSIZE]) -{ -#if 0 - RTMD5CONTEXT Ctx[2]; - PRTMD5CONTEXT const pCtx = RT_ALIGN_PT(&Ctx[0], 64, PRTMD5CONTEXT); -#else - RTMD5CONTEXT Ctx; - PRTMD5CONTEXT const pCtx = &Ctx; -#endif - - RTMd5Init(pCtx); - for (;;) - { - uint32_t cb = (uint32_t)RT_MIN(cbBuf, _2M); - RTMd5Update(pCtx, pvBuf, cb); - if (cb == cbBuf) - break; - cbBuf -= cb; - pvBuf = (uint8_t const *)pvBuf + cb; - } - RTMd5Final(pabDigest, pCtx); -} -RT_EXPORT_SYMBOL(RTMd5); - diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Runtime/common/checksum/openssl-md2.cpp virtualbox-4.1.44-dfsg/src/VBox/Runtime/common/checksum/openssl-md2.cpp --- virtualbox-4.1.12-dfsg/src/VBox/Runtime/common/checksum/openssl-md2.cpp 1970-01-01 00:00:00.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Runtime/common/checksum/openssl-md2.cpp 2015-11-11 15:08:59.000000000 +0000 @@ -0,0 +1,82 @@ +/* $Id: openssl-md2.cpp $ */ +/** @file + * IPRT - Message-Digest Algorithm 2. + */ + +/* + * Copyright (C) 2009-2014 Oracle Corporation + * + * This file is part of VirtualBox Open Source Edition (OSE), as + * available from http://www.virtualbox.org. This file is free software; + * you can redistribute it and/or modify it under the terms of the GNU + * General Public License (GPL) as published by the Free Software + * Foundation, in version 2 as it comes in the "COPYING" file of the + * VirtualBox OSE distribution. VirtualBox OSE is distributed in the + * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind. + * + * The contents of this file may alternatively be used under the terms + * of the Common Development and Distribution License Version 1.0 + * (CDDL) only, as it comes in the "COPYING.CDDL" file of the + * VirtualBox OSE distribution, in which case the provisions of the + * CDDL are applicable instead of those of the GPL. + * + * You may elect to license modified versions of this file under the + * terms and conditions of either the GPL or the CDDL or both. + */ + + +/******************************************************************************* +* Header Files * +*******************************************************************************/ +#include "internal/iprt.h" + +#include +#ifndef OPENSSL_NO_MD2 +# include + +# define RT_MD2_PRIVATE_CONTEXT +# include + +# include + +AssertCompile(RT_SIZEOFMEMB(RTMD2CONTEXT, abPadding) >= RT_SIZEOFMEMB(RTMD2CONTEXT, Private)); + + +RTDECL(void) RTMd2(const void *pvBuf, size_t cbBuf, uint8_t pabDigest[RTMD2_HASH_SIZE]) +{ + RTMD2CONTEXT Ctx; + RTMd2Init(&Ctx); + RTMd2Update(&Ctx, pvBuf, cbBuf); + RTMd2Final(&Ctx, pabDigest); +} +RT_EXPORT_SYMBOL(RTMd2); + + +RTDECL(void) RTMd2Init(PRTMD2CONTEXT pCtx) +{ + MD2_Init(&pCtx->Private); +} +RT_EXPORT_SYMBOL(RTMd2Init); + + +RTDECL(void) RTMd2Update(PRTMD2CONTEXT pCtx, const void *pvBuf, size_t cbBuf) +{ + MD2_Update(&pCtx->Private, (const unsigned char *)pvBuf, cbBuf); +} +RT_EXPORT_SYMBOL(RTMd2Update); + + +RTDECL(void) RTMd2Final(PRTMD2CONTEXT pCtx, uint8_t pabDigest[RTMD2_HASH_SIZE]) +{ + MD2_Final((unsigned char *)&pabDigest[0], &pCtx->Private); +} +RT_EXPORT_SYMBOL(RTMd2Final); + + +#else /* OPENSSL_NO_MD2 */ +/* + * If the OpenSSL build doesn't have MD2, use the IPRT implementation. + */ +# include "alt-md2.cpp" +#endif /* OPENSSL_NO_MD2 */ + diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Runtime/common/checksum/openssl-md5.cpp virtualbox-4.1.44-dfsg/src/VBox/Runtime/common/checksum/openssl-md5.cpp --- virtualbox-4.1.12-dfsg/src/VBox/Runtime/common/checksum/openssl-md5.cpp 1970-01-01 00:00:00.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Runtime/common/checksum/openssl-md5.cpp 2015-11-11 15:08:59.000000000 +0000 @@ -0,0 +1,72 @@ +/* $Id: openssl-md5.cpp $ */ +/** @file + * IPRT - MD5 message digest functions, implemented using OpenSSL. + */ + +/* + * Copyright (C) 2009-2014 Oracle Corporation + * + * This file is part of VirtualBox Open Source Edition (OSE), as + * available from http://www.virtualbox.org. This file is free software; + * you can redistribute it and/or modify it under the terms of the GNU + * General Public License (GPL) as published by the Free Software + * Foundation, in version 2 as it comes in the "COPYING" file of the + * VirtualBox OSE distribution. VirtualBox OSE is distributed in the + * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind. + * + * The contents of this file may alternatively be used under the terms + * of the Common Development and Distribution License Version 1.0 + * (CDDL) only, as it comes in the "COPYING.CDDL" file of the + * VirtualBox OSE distribution, in which case the provisions of the + * CDDL are applicable instead of those of the GPL. + * + * You may elect to license modified versions of this file under the + * terms and conditions of either the GPL or the CDDL or both. + */ + + +/******************************************************************************* +* Header Files * +*******************************************************************************/ +#include "internal/iprt.h" + +#include + +#define RT_MD5_OPENSSL_PRIVATE_CONTEXT +#include + +#include + +AssertCompile(RT_SIZEOFMEMB(RTMD5CONTEXT, abPadding) >= RT_SIZEOFMEMB(RTMD5CONTEXT, OsslPrivate)); + + +RTDECL(void) RTMd5(const void *pvBuf, size_t cbBuf, uint8_t pabDigest[RTMD5_HASH_SIZE]) +{ + RTMD5CONTEXT Ctx; + RTMd5Init(&Ctx); + RTMd5Update(&Ctx, pvBuf, cbBuf); + RTMd5Final(pabDigest, &Ctx); +} +RT_EXPORT_SYMBOL(RTMd5); + + +RTDECL(void) RTMd5Init(PRTMD5CONTEXT pCtx) +{ + MD5_Init(&pCtx->OsslPrivate); +} +RT_EXPORT_SYMBOL(RTMd5Init); + + +RTDECL(void) RTMd5Update(PRTMD5CONTEXT pCtx, const void *pvBuf, size_t cbBuf) +{ + MD5_Update(&pCtx->OsslPrivate, pvBuf, cbBuf); +} +RT_EXPORT_SYMBOL(RTMd5Update); + + +RTDECL(void) RTMd5Final(uint8_t pabDigest[32], PRTMD5CONTEXT pCtx) +{ + MD5_Final((unsigned char *)&pabDigest[0], &pCtx->OsslPrivate); +} +RT_EXPORT_SYMBOL(RTMd5Final); + diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Runtime/common/checksum/openssl-sha1.cpp virtualbox-4.1.44-dfsg/src/VBox/Runtime/common/checksum/openssl-sha1.cpp --- virtualbox-4.1.12-dfsg/src/VBox/Runtime/common/checksum/openssl-sha1.cpp 1970-01-01 00:00:00.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Runtime/common/checksum/openssl-sha1.cpp 2015-11-11 15:08:59.000000000 +0000 @@ -0,0 +1,72 @@ +/* $Id: openssl-sha1.cpp $ */ +/** @file + * IPRT - SHA-1 hash functions. + */ + +/* + * Copyright (C) 2009-2010 Oracle Corporation + * + * This file is part of VirtualBox Open Source Edition (OSE), as + * available from http://www.virtualbox.org. This file is free software; + * you can redistribute it and/or modify it under the terms of the GNU + * General Public License (GPL) as published by the Free Software + * Foundation, in version 2 as it comes in the "COPYING" file of the + * VirtualBox OSE distribution. VirtualBox OSE is distributed in the + * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind. + * + * The contents of this file may alternatively be used under the terms + * of the Common Development and Distribution License Version 1.0 + * (CDDL) only, as it comes in the "COPYING.CDDL" file of the + * VirtualBox OSE distribution, in which case the provisions of the + * CDDL are applicable instead of those of the GPL. + * + * You may elect to license modified versions of this file under the + * terms and conditions of either the GPL or the CDDL or both. + */ + + +/******************************************************************************* +* Header Files * +*******************************************************************************/ +#include "internal/iprt.h" + +#include + +#define RT_SHA1_PRIVATE_CONTEXT +#include + +#include + +AssertCompile(RT_SIZEOFMEMB(RTSHA1CONTEXT, abPadding) >= RT_SIZEOFMEMB(RTSHA1CONTEXT, Private)); + + +RTDECL(void) RTSha1(const void *pvBuf, size_t cbBuf, uint8_t pabDigest[RTSHA1_HASH_SIZE]) +{ + RTSHA1CONTEXT Ctx; + RTSha1Init(&Ctx); + RTSha1Update(&Ctx, pvBuf, cbBuf); + RTSha1Final(&Ctx, pabDigest); +} +RT_EXPORT_SYMBOL(RTSha1); + + +RTDECL(void) RTSha1Init(PRTSHA1CONTEXT pCtx) +{ + SHA1_Init(&pCtx->Private); +} +RT_EXPORT_SYMBOL(RTSha1Init); + + +RTDECL(void) RTSha1Update(PRTSHA1CONTEXT pCtx, const void *pvBuf, size_t cbBuf) +{ + SHA1_Update(&pCtx->Private, pvBuf, cbBuf); +} +RT_EXPORT_SYMBOL(RTSha1Update); + + +RTDECL(void) RTSha1Final(PRTSHA1CONTEXT pCtx, uint8_t pabDigest[32]) +{ + SHA1_Final((unsigned char *)&pabDigest[0], &pCtx->Private); +} +RT_EXPORT_SYMBOL(RTSha1Final); + diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Runtime/common/checksum/openssl-sha256.cpp virtualbox-4.1.44-dfsg/src/VBox/Runtime/common/checksum/openssl-sha256.cpp --- virtualbox-4.1.12-dfsg/src/VBox/Runtime/common/checksum/openssl-sha256.cpp 1970-01-01 00:00:00.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Runtime/common/checksum/openssl-sha256.cpp 2015-11-11 15:08:59.000000000 +0000 @@ -0,0 +1,108 @@ +/* $Id: openssl-sha256.cpp $ */ +/** @file + * IPRT - SHA-256 hash functions. + */ + +/* + * Copyright (C) 2009-2010 Oracle Corporation + * + * This file is part of VirtualBox Open Source Edition (OSE), as + * available from http://www.virtualbox.org. This file is free software; + * you can redistribute it and/or modify it under the terms of the GNU + * General Public License (GPL) as published by the Free Software + * Foundation, in version 2 as it comes in the "COPYING" file of the + * VirtualBox OSE distribution. VirtualBox OSE is distributed in the + * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind. + * + * The contents of this file may alternatively be used under the terms + * of the Common Development and Distribution License Version 1.0 + * (CDDL) only, as it comes in the "COPYING.CDDL" file of the + * VirtualBox OSE distribution, in which case the provisions of the + * CDDL are applicable instead of those of the GPL. + * + * You may elect to license modified versions of this file under the + * terms and conditions of either the GPL or the CDDL or both. + */ + + +/******************************************************************************* +* Header Files * +*******************************************************************************/ +#include "internal/iprt.h" + +#include + +#define RT_SHA256_PRIVATE_CONTEXT +#include + +#include + +AssertCompile(RT_SIZEOFMEMB(RTSHA256CONTEXT, abPadding) >= RT_SIZEOFMEMB(RTSHA256CONTEXT, Private)); + + +RTDECL(void) RTSha256(const void *pvBuf, size_t cbBuf, uint8_t pabDigest[RTSHA256_HASH_SIZE]) +{ + RTSHA256CONTEXT Ctx; + RTSha256Init(&Ctx); + RTSha256Update(&Ctx, pvBuf, cbBuf); + RTSha256Final(&Ctx, pabDigest); +} +RT_EXPORT_SYMBOL(RTSha256); + + +RTDECL(void) RTSha256Init(PRTSHA256CONTEXT pCtx) +{ + SHA256_Init(&pCtx->Private); +} +RT_EXPORT_SYMBOL(RTSha256Init); + + +RTDECL(void) RTSha256Update(PRTSHA256CONTEXT pCtx, const void *pvBuf, size_t cbBuf) +{ + SHA256_Update(&pCtx->Private, pvBuf, cbBuf); +} +RT_EXPORT_SYMBOL(RTSha256Update); + + +RTDECL(void) RTSha256Final(PRTSHA256CONTEXT pCtx, uint8_t pabDigest[32]) +{ + SHA256_Final((unsigned char *)&pabDigest[0], &pCtx->Private); +} +RT_EXPORT_SYMBOL(RTSha256Final); + + +/* + * We have to expose the same API as alt-sha256.cpp, so the SHA-224 + * implementation also lives here. (SHA-224 is just a truncated SHA-256 with + * different initial values.) + */ +RTDECL(void) RTSha224(const void *pvBuf, size_t cbBuf, uint8_t pabDigest[RTSHA224_HASH_SIZE]) +{ + RTSHA224CONTEXT Ctx; + RTSha224Init(&Ctx); + RTSha224Update(&Ctx, pvBuf, cbBuf); + RTSha224Final(&Ctx, pabDigest); +} +RT_EXPORT_SYMBOL(RTSha224); + + +RTDECL(void) RTSha224Init(PRTSHA224CONTEXT pCtx) +{ + SHA224_Init(&pCtx->Private); +} +RT_EXPORT_SYMBOL(RTSha224Init); + + +RTDECL(void) RTSha224Update(PRTSHA224CONTEXT pCtx, const void *pvBuf, size_t cbBuf) +{ + SHA224_Update(&pCtx->Private, pvBuf, cbBuf); +} +RT_EXPORT_SYMBOL(RTSha224Update); + + +RTDECL(void) RTSha224Final(PRTSHA224CONTEXT pCtx, uint8_t pabDigest[32]) +{ + SHA224_Final((unsigned char *)&pabDigest[0], &pCtx->Private); +} +RT_EXPORT_SYMBOL(RTSha224Final); + diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Runtime/common/checksum/openssl-sha512.cpp virtualbox-4.1.44-dfsg/src/VBox/Runtime/common/checksum/openssl-sha512.cpp --- virtualbox-4.1.12-dfsg/src/VBox/Runtime/common/checksum/openssl-sha512.cpp 1970-01-01 00:00:00.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Runtime/common/checksum/openssl-sha512.cpp 2015-11-11 15:08:59.000000000 +0000 @@ -0,0 +1,110 @@ +/* $Id: openssl-sha512.cpp $ */ +/** @file + * IPRT - SHA-512 hash functions. + */ + +/* + * Copyright (C) 2009-2010 Oracle Corporation + * + * This file is part of VirtualBox Open Source Edition (OSE), as + * available from http://www.virtualbox.org. This file is free software; + * you can redistribute it and/or modify it under the terms of the GNU + * General Public License (GPL) as published by the Free Software + * Foundation, in version 2 as it comes in the "COPYING" file of the + * VirtualBox OSE distribution. VirtualBox OSE is distributed in the + * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind. + * + * The contents of this file may alternatively be used under the terms + * of the Common Development and Distribution License Version 1.0 + * (CDDL) only, as it comes in the "COPYING.CDDL" file of the + * VirtualBox OSE distribution, in which case the provisions of the + * CDDL are applicable instead of those of the GPL. + * + * You may elect to license modified versions of this file under the + * terms and conditions of either the GPL or the CDDL or both. + */ + + +/******************************************************************************* +* Header Files * +*******************************************************************************/ +#include "internal/iprt.h" + +#include + +#define RT_SHA512_PRIVATE_CONTEXT +#include + +#include + +AssertCompile(RT_SIZEOFMEMB(RTSHA512CONTEXT, abPadding) >= RT_SIZEOFMEMB(RTSHA512CONTEXT, Private)); + + +RTDECL(void) RTSha512(const void *pvBuf, size_t cbBuf, uint8_t pabDigest[RTSHA512_HASH_SIZE]) +{ + RTSHA512CONTEXT Ctx; + RTSha512Init(&Ctx); + RTSha512Update(&Ctx, pvBuf, cbBuf); + RTSha512Final(&Ctx, pabDigest); +} +RT_EXPORT_SYMBOL(RTSha512); + + +RTDECL(void) RTSha512Init(PRTSHA512CONTEXT pCtx) +{ + SHA512_Init(&pCtx->Private); +} +RT_EXPORT_SYMBOL(RTSha512Init); + + +RTDECL(void) RTSha512Update(PRTSHA512CONTEXT pCtx, const void *pvBuf, size_t cbBuf) +{ + SHA512_Update(&pCtx->Private, pvBuf, cbBuf); +} +RT_EXPORT_SYMBOL(RTSha512Update); + + +RTDECL(void) RTSha512Final(PRTSHA512CONTEXT pCtx, uint8_t pabDigest[32]) +{ + SHA512_Final((unsigned char *)&pabDigest[0], &pCtx->Private); +} +RT_EXPORT_SYMBOL(RTSha512Final); + + +/* + * We have to expose the same API as alt-sha512.cpp, so the SHA-384, + * SHA-512/224 and SHA-512/256 implementations also live here. (They are all + * just truncted SHA-512 with different initial values.) + */ + +RTDECL(void) RTSha384(const void *pvBuf, size_t cbBuf, uint8_t pabDigest[RTSHA384_HASH_SIZE]) +{ + RTSHA384CONTEXT Ctx; + RTSha384Init(&Ctx); + RTSha384Update(&Ctx, pvBuf, cbBuf); + RTSha384Final(&Ctx, pabDigest); +} +RT_EXPORT_SYMBOL(RTSha384); + + +RTDECL(void) RTSha384Init(PRTSHA384CONTEXT pCtx) +{ + SHA384_Init(&pCtx->Private); +} +RT_EXPORT_SYMBOL(RTSha384Init); + + +RTDECL(void) RTSha384Update(PRTSHA384CONTEXT pCtx, const void *pvBuf, size_t cbBuf) +{ + SHA384_Update(&pCtx->Private, pvBuf, cbBuf); +} +RT_EXPORT_SYMBOL(RTSha384Update); + + +RTDECL(void) RTSha384Final(PRTSHA384CONTEXT pCtx, uint8_t pabDigest[32]) +{ + SHA384_Final((unsigned char *)&pabDigest[0], &pCtx->Private); +} +RT_EXPORT_SYMBOL(RTSha384Final); + + diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Runtime/common/checksum/RTSha1Digest.cpp virtualbox-4.1.44-dfsg/src/VBox/Runtime/common/checksum/RTSha1Digest.cpp --- virtualbox-4.1.12-dfsg/src/VBox/Runtime/common/checksum/RTSha1Digest.cpp 2012-04-02 13:29:00.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Runtime/common/checksum/RTSha1Digest.cpp 2015-11-11 15:08:59.000000000 +0000 @@ -1,6 +1,9 @@ /* $Id: RTSha1Digest.cpp $ */ /** @file * IPRT - SHA1 digest creation + * + * @todo Replace this with generic RTCrDigest based implementation. Too much + * stupid code duplication. */ /* @@ -37,8 +40,6 @@ #include #include -#include - RTR3DECL(int) RTSha1Digest(void* pvBuf, size_t cbBuf, char **ppszDigest, PFNRTPROGRESS pfnProgressCallback, void *pvUser) { @@ -50,28 +51,22 @@ int rc = VINF_SUCCESS; *ppszDigest = NULL; - /* Initialize OpenSSL. */ - SHA_CTX ctx; - if (!SHA1_Init(&ctx)) - return VERR_INTERNAL_ERROR; + /* Initialize the hash context. */ + RTSHA1CONTEXT Ctx; + RTSha1Init(&Ctx); /* Buffer size for progress callback */ - double rdMulti = 100.0 / cbBuf; + double rdMulti = 100.0 / (cbBuf ? cbBuf : 1); /* Working buffer */ char *pvTmp = (char*)pvBuf; /* Process the memory in blocks */ - size_t cbRead; size_t cbReadTotal = 0; for (;;) { - cbRead = RT_MIN(cbBuf - cbReadTotal, _1M); - if(!SHA1_Update(&ctx, pvTmp, cbRead)) - { - rc = VERR_INTERNAL_ERROR; - break; - } + size_t cbRead = RT_MIN(cbBuf - cbReadTotal, _1M); + RTSha1Update(&Ctx, pvTmp, cbRead); cbReadTotal += cbRead; pvTmp += cbRead; @@ -89,15 +84,14 @@ if (RT_SUCCESS(rc)) { /* Finally calculate & format the SHA1 sum */ - unsigned char auchDig[RTSHA1_HASH_SIZE]; - if (!SHA1_Final(auchDig, &ctx)) - return VERR_INTERNAL_ERROR; + uint8_t abHash[RTSHA1_HASH_SIZE]; + RTSha1Final(&Ctx, abHash); char *pszDigest; rc = RTStrAllocEx(&pszDigest, RTSHA1_DIGEST_LEN + 1); if (RT_SUCCESS(rc)) { - rc = RTSha1ToString(auchDig, pszDigest, RTSHA1_DIGEST_LEN + 1); + rc = RTSha1ToString(abHash, pszDigest, RTSHA1_DIGEST_LEN + 1); if (RT_SUCCESS(rc)) *ppszDigest = pszDigest; else @@ -117,11 +111,6 @@ *ppszDigest = NULL; - /* Initialize OpenSSL. */ - SHA_CTX ctx; - if (!SHA1_Init(&ctx)) - return VERR_INTERNAL_ERROR; - /* Open the file to calculate a SHA1 sum of */ RTFILE hFile; int rc = RTFileOpen(&hFile, pszFile, RTFILE_O_OPEN | RTFILE_O_READ | RTFILE_O_DENY_WRITE); @@ -139,7 +128,7 @@ RTFileClose(hFile); return rc; } - rdMulti = 100.0 / cbFile; + rdMulti = 100.0 / (cbFile ? cbFile : 1); } /* Allocate a reasonably large buffer, fall back on a tiny one. */ @@ -152,19 +141,19 @@ pvBuf = alloca(cbBuf); } + /* Initialize the hash context. */ + RTSHA1CONTEXT Ctx; + RTSha1Init(&Ctx); + /* Read that file in blocks */ - size_t cbRead; size_t cbReadTotal = 0; for (;;) { + size_t cbRead; rc = RTFileRead(hFile, pvBuf, cbBuf, &cbRead); if (RT_FAILURE(rc) || !cbRead) break; - if(!SHA1_Update(&ctx, pvBuf, cbRead)) - { - rc = VERR_INTERNAL_ERROR; - break; - } + RTSha1Update(&Ctx, pvBuf, cbRead); cbReadTotal += cbRead; /* Call the progress callback if one is defined */ @@ -182,15 +171,14 @@ return rc; /* Finally calculate & format the SHA1 sum */ - unsigned char auchDig[RTSHA1_HASH_SIZE]; - if (!SHA1_Final(auchDig, &ctx)) - return VERR_INTERNAL_ERROR; + uint8_t abHash[RTSHA1_HASH_SIZE]; + RTSha1Final(&Ctx, abHash); char *pszDigest; rc = RTStrAllocEx(&pszDigest, RTSHA1_DIGEST_LEN + 1); if (RT_SUCCESS(rc)) { - rc = RTSha1ToString(auchDig, pszDigest, RTSHA1_DIGEST_LEN + 1); + rc = RTSha1ToString(abHash, pszDigest, RTSHA1_DIGEST_LEN + 1); if (RT_SUCCESS(rc)) *ppszDigest = pszDigest; else diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Runtime/common/checksum/RTSha256Digest.cpp virtualbox-4.1.44-dfsg/src/VBox/Runtime/common/checksum/RTSha256Digest.cpp --- virtualbox-4.1.12-dfsg/src/VBox/Runtime/common/checksum/RTSha256Digest.cpp 1970-01-01 00:00:00.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Runtime/common/checksum/RTSha256Digest.cpp 2015-11-11 15:08:59.000000000 +0000 @@ -0,0 +1,189 @@ +/** @file + * IPRT - SHA256 digest creation + * + * @todo Replace this with generic RTCrDigest based implementation. Too much + * stupid code duplication. + */ + +/* + * Copyright (C) 2009-2014 Oracle Corporation + * + * This file is part of VirtualBox Open Source Edition (OSE), as + * available from http://www.virtualbox.org. This file is free software; + * you can redistribute it and/or modify it under the terms of the GNU + * General Public License (GPL) as published by the Free Software + * Foundation, in version 2 as it comes in the "COPYING" file of the + * VirtualBox OSE distribution. VirtualBox OSE is distributed in the + * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind. + * + * The contents of this file may alternatively be used under the terms + * of the Common Development and Distribution License Version 1.0 + * (CDDL) only, as it comes in the "COPYING.CDDL" file of the + * VirtualBox OSE distribution, in which case the provisions of the + * CDDL are applicable instead of those of the GPL. + * + * You may elect to license modified versions of this file under the + * terms and conditions of either the GPL or the CDDL or both. + */ + + +/******************************************************************************* +* Header Files * +*******************************************************************************/ +#include "internal/iprt.h" +#include + +#include +#include +#include +#include +#include + + +RTR3DECL(int) RTSha256Digest(void* pvBuf, size_t cbBuf, char **ppszDigest, PFNRTPROGRESS pfnProgressCallback, void *pvUser) +{ + /* Validate input */ + AssertPtrReturn(pvBuf, VERR_INVALID_POINTER); + AssertPtrReturn(ppszDigest, VERR_INVALID_POINTER); + AssertPtrNullReturn(pfnProgressCallback, VERR_INVALID_PARAMETER); + + int rc = VINF_SUCCESS; + *ppszDigest = NULL; + + /* Initialize the hash context. */ + RTSHA256CONTEXT Ctx; + RTSha256Init(&Ctx); + + /* Buffer size for progress callback */ + double rdMulti = 100.0 / (cbBuf ? cbBuf : 1); + + /* Working buffer */ + char *pvTmp = (char*)pvBuf; + + /* Process the memory in blocks */ + size_t cbReadTotal = 0; + for (;;) + { + size_t cbRead = RT_MIN(cbBuf - cbReadTotal, _1M); + RTSha256Update(&Ctx, pvTmp, cbRead); + cbReadTotal += cbRead; + pvTmp += cbRead; + + /* Call the progress callback if one is defined */ + if (pfnProgressCallback) + { + rc = pfnProgressCallback((unsigned)(cbReadTotal * rdMulti), pvUser); + if (RT_FAILURE(rc)) + break; /* canceled */ + } + /* Finished? */ + if (cbReadTotal == cbBuf) + break; + } + if (RT_SUCCESS(rc)) + { + /* Finally calculate & format the SHA256 sum */ + uint8_t abHash[RTSHA256_HASH_SIZE]; + RTSha256Final(&Ctx, abHash); + + char *pszDigest; + rc = RTStrAllocEx(&pszDigest, RTSHA256_DIGEST_LEN + 1); + if (RT_SUCCESS(rc)) + { + rc = RTSha256ToString(abHash, pszDigest, RTSHA256_DIGEST_LEN + 1); + if (RT_SUCCESS(rc)) + *ppszDigest = pszDigest; + else + RTStrFree(pszDigest); + } + } + + return rc; +} + +RTR3DECL(int) RTSha256DigestFromFile(const char *pszFile, char **ppszDigest, PFNRTPROGRESS pfnProgressCallback, void *pvUser) +{ + /* Validate input */ + AssertPtrReturn(pszFile, VERR_INVALID_POINTER); + AssertPtrReturn(ppszDigest, VERR_INVALID_POINTER); + AssertPtrNullReturn(pfnProgressCallback, VERR_INVALID_PARAMETER); + + *ppszDigest = NULL; + + /* Initialize the hash context. */ + RTSHA256CONTEXT Ctx; + RTSha256Init(&Ctx); + + /* Open the file to calculate a SHA256 sum of */ + RTFILE hFile; + int rc = RTFileOpen(&hFile, pszFile, RTFILE_O_OPEN | RTFILE_O_READ | RTFILE_O_DENY_WRITE); + if (RT_FAILURE(rc)) + return rc; + + /* Fetch the file size. Only needed if there is a progress callback. */ + double rdMulti = 0; + if (pfnProgressCallback) + { + uint64_t cbFile; + rc = RTFileGetSize(hFile, &cbFile); + if (RT_FAILURE(rc)) + { + RTFileClose(hFile); + return rc; + } + rdMulti = 100.0 / (cbFile ? cbFile : 1); + } + + /* Allocate a reasonably large buffer, fall back on a tiny one. */ + void *pvBufFree; + size_t cbBuf = _1M; + void *pvBuf = pvBufFree = RTMemTmpAlloc(cbBuf); + if (!pvBuf) + { + cbBuf = 0x1000; + pvBuf = alloca(cbBuf); + } + + /* Read that file in blocks */ + size_t cbReadTotal = 0; + for (;;) + { + size_t cbRead; + rc = RTFileRead(hFile, pvBuf, cbBuf, &cbRead); + if (RT_FAILURE(rc) || !cbRead) + break; + RTSha256Update(&Ctx, pvBuf, cbRead); + cbReadTotal += cbRead; + + /* Call the progress callback if one is defined */ + if (pfnProgressCallback) + { + rc = pfnProgressCallback((unsigned)(cbReadTotal * rdMulti), pvUser); + if (RT_FAILURE(rc)) + break; /* canceled */ + } + } + RTMemTmpFree(pvBufFree); + RTFileClose(hFile); + + if (RT_FAILURE(rc)) + return rc; + + /* Finally calculate & format the SHA256 sum */ + uint8_t abHash[RTSHA256_HASH_SIZE]; + RTSha256Final(&Ctx, abHash); + + char *pszDigest; + rc = RTStrAllocEx(&pszDigest, RTSHA256_DIGEST_LEN + 1); + if (RT_SUCCESS(rc)) + { + rc = RTSha256ToString(abHash, pszDigest, RTSHA256_DIGEST_LEN + 1); + if (RT_SUCCESS(rc)) + *ppszDigest = pszDigest; + else + RTStrFree(pszDigest); + } + + return rc; +} + diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Runtime/common/checksum/sha1.cpp virtualbox-4.1.44-dfsg/src/VBox/Runtime/common/checksum/sha1.cpp --- virtualbox-4.1.12-dfsg/src/VBox/Runtime/common/checksum/sha1.cpp 2012-04-02 13:29:00.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Runtime/common/checksum/sha1.cpp 1970-01-01 00:00:00.000000000 +0000 @@ -1,72 +0,0 @@ -/* $Id: sha1.cpp $ */ -/** @file - * IPRT - SHA-1 hash functions. - */ - -/* - * Copyright (C) 2009 Oracle Corporation - * - * This file is part of VirtualBox Open Source Edition (OSE), as - * available from http://www.virtualbox.org. This file is free software; - * you can redistribute it and/or modify it under the terms of the GNU - * General Public License (GPL) as published by the Free Software - * Foundation, in version 2 as it comes in the "COPYING" file of the - * VirtualBox OSE distribution. VirtualBox OSE is distributed in the - * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind. - * - * The contents of this file may alternatively be used under the terms - * of the Common Development and Distribution License Version 1.0 - * (CDDL) only, as it comes in the "COPYING.CDDL" file of the - * VirtualBox OSE distribution, in which case the provisions of the - * CDDL are applicable instead of those of the GPL. - * - * You may elect to license modified versions of this file under the - * terms and conditions of either the GPL or the CDDL or both. - */ - - -/******************************************************************************* -* Header Files * -*******************************************************************************/ -#include "internal/iprt.h" - -#include - -#define RT_SHA1_PRIVATE_CONTEXT -#include - -#include - -AssertCompile(RT_SIZEOFMEMB(RTSHA1CONTEXT, abPadding) >= RT_SIZEOFMEMB(RTSHA1CONTEXT, Private)); - - -RTDECL(void) RTSha1(const void *pvBuf, size_t cbBuf, uint8_t pabDigest[RTSHA1_HASH_SIZE]) -{ - RTSHA1CONTEXT Ctx; - RTSha1Init(&Ctx); - RTSha1Update(&Ctx, pvBuf, cbBuf); - RTSha1Final(&Ctx, pabDigest); -} -RT_EXPORT_SYMBOL(RTSha1); - - -RTDECL(void) RTSha1Init(PRTSHA1CONTEXT pCtx) -{ - SHA1_Init(&pCtx->Private); -} -RT_EXPORT_SYMBOL(RTSha1Init); - - -RTDECL(void) RTSha1Update(PRTSHA1CONTEXT pCtx, const void *pvBuf, size_t cbBuf) -{ - SHA1_Update(&pCtx->Private, pvBuf, cbBuf); -} -RT_EXPORT_SYMBOL(RTSha1Update); - - -RTDECL(void) RTSha1Final(PRTSHA1CONTEXT pCtx, uint8_t pabDigest[32]) -{ - SHA1_Final((unsigned char *)&pabDigest[0], &pCtx->Private); -} -RT_EXPORT_SYMBOL(RTSha1Final); - diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Runtime/common/checksum/sha224str.cpp virtualbox-4.1.44-dfsg/src/VBox/Runtime/common/checksum/sha224str.cpp --- virtualbox-4.1.12-dfsg/src/VBox/Runtime/common/checksum/sha224str.cpp 1970-01-01 00:00:00.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Runtime/common/checksum/sha224str.cpp 2015-11-11 15:08:59.000000000 +0000 @@ -0,0 +1,49 @@ +/* $Id: sha224str.cpp $ */ +/** @file + * IPRT - SHA-224 string functions. + */ + +/* + * Copyright (C) 2009-2014 Oracle Corporation + * + * This file is part of VirtualBox Open Source Edition (OSE), as + * available from http://www.virtualbox.org. This file is free software; + * you can redistribute it and/or modify it under the terms of the GNU + * General Public License (GPL) as published by the Free Software + * Foundation, in version 2 as it comes in the "COPYING" file of the + * VirtualBox OSE distribution. VirtualBox OSE is distributed in the + * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind. + * + * The contents of this file may alternatively be used under the terms + * of the Common Development and Distribution License Version 1.0 + * (CDDL) only, as it comes in the "COPYING.CDDL" file of the + * VirtualBox OSE distribution, in which case the provisions of the + * CDDL are applicable instead of those of the GPL. + * + * You may elect to license modified versions of this file under the + * terms and conditions of either the GPL or the CDDL or both. + */ + + +/******************************************************************************* +* Header Files * +*******************************************************************************/ +#include "internal/iprt.h" +#include + +#include +#include +#include + + +RTDECL(int) RTSha224ToString(uint8_t const pabDigest[RTSHA224_HASH_SIZE], char *pszDigest, size_t cchDigest) +{ + return RTStrPrintHexBytes(pszDigest, cchDigest, &pabDigest[0], RTSHA224_HASH_SIZE, 0 /*fFlags*/); +} + + +RTDECL(int) RTSha224FromString(char const *pszDigest, uint8_t pabDigest[RTSHA224_HASH_SIZE]) +{ + return RTStrConvertHexBytes(RTStrStripL(pszDigest), &pabDigest[0], RTSHA224_HASH_SIZE, 0 /*fFlags*/); +} + diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Runtime/common/checksum/sha256.cpp virtualbox-4.1.44-dfsg/src/VBox/Runtime/common/checksum/sha256.cpp --- virtualbox-4.1.12-dfsg/src/VBox/Runtime/common/checksum/sha256.cpp 2012-04-02 13:29:00.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Runtime/common/checksum/sha256.cpp 1970-01-01 00:00:00.000000000 +0000 @@ -1,72 +0,0 @@ -/* $Id: sha256.cpp $ */ -/** @file - * IPRT - SHA-256 hash functions. - */ - -/* - * Copyright (C) 2009 Oracle Corporation - * - * This file is part of VirtualBox Open Source Edition (OSE), as - * available from http://www.virtualbox.org. This file is free software; - * you can redistribute it and/or modify it under the terms of the GNU - * General Public License (GPL) as published by the Free Software - * Foundation, in version 2 as it comes in the "COPYING" file of the - * VirtualBox OSE distribution. VirtualBox OSE is distributed in the - * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind. - * - * The contents of this file may alternatively be used under the terms - * of the Common Development and Distribution License Version 1.0 - * (CDDL) only, as it comes in the "COPYING.CDDL" file of the - * VirtualBox OSE distribution, in which case the provisions of the - * CDDL are applicable instead of those of the GPL. - * - * You may elect to license modified versions of this file under the - * terms and conditions of either the GPL or the CDDL or both. - */ - - -/******************************************************************************* -* Header Files * -*******************************************************************************/ -#include "internal/iprt.h" - -#include - -#define RT_SHA256_PRIVATE_CONTEXT -#include - -#include - -AssertCompile(RT_SIZEOFMEMB(RTSHA256CONTEXT, abPadding) >= RT_SIZEOFMEMB(RTSHA256CONTEXT, Private)); - - -RTDECL(void) RTSha256(const void *pvBuf, size_t cbBuf, uint8_t pabDigest[RTSHA256_HASH_SIZE]) -{ - RTSHA256CONTEXT Ctx; - RTSha256Init(&Ctx); - RTSha256Update(&Ctx, pvBuf, cbBuf); - RTSha256Final(&Ctx, pabDigest); -} -RT_EXPORT_SYMBOL(RTSha256); - - -RTDECL(void) RTSha256Init(PRTSHA256CONTEXT pCtx) -{ - SHA256_Init(&pCtx->Private); -} -RT_EXPORT_SYMBOL(RTSha256Init); - - -RTDECL(void) RTSha256Update(PRTSHA256CONTEXT pCtx, const void *pvBuf, size_t cbBuf) -{ - SHA256_Update(&pCtx->Private, pvBuf, cbBuf); -} -RT_EXPORT_SYMBOL(RTSha256Update); - - -RTDECL(void) RTSha256Final(PRTSHA256CONTEXT pCtx, uint8_t pabDigest[32]) -{ - SHA256_Final((unsigned char *)&pabDigest[0], &pCtx->Private); -} -RT_EXPORT_SYMBOL(RTSha256Final); - diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Runtime/common/checksum/sha384str.cpp virtualbox-4.1.44-dfsg/src/VBox/Runtime/common/checksum/sha384str.cpp --- virtualbox-4.1.12-dfsg/src/VBox/Runtime/common/checksum/sha384str.cpp 1970-01-01 00:00:00.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Runtime/common/checksum/sha384str.cpp 2015-11-11 15:08:59.000000000 +0000 @@ -0,0 +1,49 @@ +/* $Id: sha384str.cpp $ */ +/** @file + * IPRT - SHA-384 string functions. + */ + +/* + * Copyright (C) 2009-2014 Oracle Corporation + * + * This file is part of VirtualBox Open Source Edition (OSE), as + * available from http://www.virtualbox.org. This file is free software; + * you can redistribute it and/or modify it under the terms of the GNU + * General Public License (GPL) as published by the Free Software + * Foundation, in version 2 as it comes in the "COPYING" file of the + * VirtualBox OSE distribution. VirtualBox OSE is distributed in the + * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind. + * + * The contents of this file may alternatively be used under the terms + * of the Common Development and Distribution License Version 1.0 + * (CDDL) only, as it comes in the "COPYING.CDDL" file of the + * VirtualBox OSE distribution, in which case the provisions of the + * CDDL are applicable instead of those of the GPL. + * + * You may elect to license modified versions of this file under the + * terms and conditions of either the GPL or the CDDL or both. + */ + + +/******************************************************************************* +* Header Files * +*******************************************************************************/ +#include "internal/iprt.h" +#include + +#include +#include +#include + + +RTDECL(int) RTSha384ToString(uint8_t const pabDigest[RTSHA384_HASH_SIZE], char *pszDigest, size_t cchDigest) +{ + return RTStrPrintHexBytes(pszDigest, cchDigest, &pabDigest[0], RTSHA384_HASH_SIZE, 0 /*fFlags*/); +} + + +RTDECL(int) RTSha384FromString(char const *pszDigest, uint8_t pabDigest[RTSHA384_HASH_SIZE]) +{ + return RTStrConvertHexBytes(RTStrStripL(pszDigest), &pabDigest[0], RTSHA384_HASH_SIZE, 0 /*fFlags*/); +} + diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Runtime/common/checksum/sha512.cpp virtualbox-4.1.44-dfsg/src/VBox/Runtime/common/checksum/sha512.cpp --- virtualbox-4.1.12-dfsg/src/VBox/Runtime/common/checksum/sha512.cpp 2012-04-02 13:29:00.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Runtime/common/checksum/sha512.cpp 1970-01-01 00:00:00.000000000 +0000 @@ -1,72 +0,0 @@ -/* $Id: sha512.cpp $ */ -/** @file - * IPRT - SHA-512 hash functions. - */ - -/* - * Copyright (C) 2009 Oracle Corporation - * - * This file is part of VirtualBox Open Source Edition (OSE), as - * available from http://www.virtualbox.org. This file is free software; - * you can redistribute it and/or modify it under the terms of the GNU - * General Public License (GPL) as published by the Free Software - * Foundation, in version 2 as it comes in the "COPYING" file of the - * VirtualBox OSE distribution. VirtualBox OSE is distributed in the - * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind. - * - * The contents of this file may alternatively be used under the terms - * of the Common Development and Distribution License Version 1.0 - * (CDDL) only, as it comes in the "COPYING.CDDL" file of the - * VirtualBox OSE distribution, in which case the provisions of the - * CDDL are applicable instead of those of the GPL. - * - * You may elect to license modified versions of this file under the - * terms and conditions of either the GPL or the CDDL or both. - */ - - -/******************************************************************************* -* Header Files * -*******************************************************************************/ -#include "internal/iprt.h" - -#include - -#define RT_SHA512_PRIVATE_CONTEXT -#include - -#include - -AssertCompile(RT_SIZEOFMEMB(RTSHA512CONTEXT, abPadding) >= RT_SIZEOFMEMB(RTSHA512CONTEXT, Private)); - - -RTDECL(void) RTSha512(const void *pvBuf, size_t cbBuf, uint8_t pabDigest[RTSHA512_HASH_SIZE]) -{ - RTSHA512CONTEXT Ctx; - RTSha512Init(&Ctx); - RTSha512Update(&Ctx, pvBuf, cbBuf); - RTSha512Final(&Ctx, pabDigest); -} -RT_EXPORT_SYMBOL(RTSha512); - - -RTDECL(void) RTSha512Init(PRTSHA512CONTEXT pCtx) -{ - SHA512_Init(&pCtx->Private); -} -RT_EXPORT_SYMBOL(RTSha512Init); - - -RTDECL(void) RTSha512Update(PRTSHA512CONTEXT pCtx, const void *pvBuf, size_t cbBuf) -{ - SHA512_Update(&pCtx->Private, pvBuf, cbBuf); -} -RT_EXPORT_SYMBOL(RTSha512Update); - - -RTDECL(void) RTSha512Final(PRTSHA512CONTEXT pCtx, uint8_t pabDigest[32]) -{ - SHA512_Final((unsigned char *)&pabDigest[0], &pCtx->Private); -} -RT_EXPORT_SYMBOL(RTSha512Final); - diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Runtime/common/checksum/sha512t224str.cpp virtualbox-4.1.44-dfsg/src/VBox/Runtime/common/checksum/sha512t224str.cpp --- virtualbox-4.1.12-dfsg/src/VBox/Runtime/common/checksum/sha512t224str.cpp 1970-01-01 00:00:00.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Runtime/common/checksum/sha512t224str.cpp 2015-11-11 15:08:59.000000000 +0000 @@ -0,0 +1,49 @@ +/* $Id: sha512t224str.cpp $ */ +/** @file + * IPRT - SHA-512/224 string functions. + */ + +/* + * Copyright (C) 2009-2014 Oracle Corporation + * + * This file is part of VirtualBox Open Source Edition (OSE), as + * available from http://www.virtualbox.org. This file is free software; + * you can redistribute it and/or modify it under the terms of the GNU + * General Public License (GPL) as published by the Free Software + * Foundation, in version 2 as it comes in the "COPYING" file of the + * VirtualBox OSE distribution. VirtualBox OSE is distributed in the + * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind. + * + * The contents of this file may alternatively be used under the terms + * of the Common Development and Distribution License Version 1.0 + * (CDDL) only, as it comes in the "COPYING.CDDL" file of the + * VirtualBox OSE distribution, in which case the provisions of the + * CDDL are applicable instead of those of the GPL. + * + * You may elect to license modified versions of this file under the + * terms and conditions of either the GPL or the CDDL or both. + */ + + +/******************************************************************************* +* Header Files * +*******************************************************************************/ +#include "internal/iprt.h" +#include + +#include +#include +#include + + +RTDECL(int) RTSha512t224ToString(uint8_t const pabDigest[RTSHA512T224_HASH_SIZE], char *pszDigest, size_t cchDigest) +{ + return RTStrPrintHexBytes(pszDigest, cchDigest, &pabDigest[0], RTSHA512T224_HASH_SIZE, 0 /*fFlags*/); +} + + +RTDECL(int) RTSha512t224FromString(char const *pszDigest, uint8_t pabDigest[RTSHA512T224_HASH_SIZE]) +{ + return RTStrConvertHexBytes(RTStrStripL(pszDigest), &pabDigest[0], RTSHA512T224_HASH_SIZE, 0 /*fFlags*/); +} + diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Runtime/common/checksum/sha512t256str.cpp virtualbox-4.1.44-dfsg/src/VBox/Runtime/common/checksum/sha512t256str.cpp --- virtualbox-4.1.12-dfsg/src/VBox/Runtime/common/checksum/sha512t256str.cpp 1970-01-01 00:00:00.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Runtime/common/checksum/sha512t256str.cpp 2015-11-11 15:08:59.000000000 +0000 @@ -0,0 +1,49 @@ +/* $Id: sha512t256str.cpp $ */ +/** @file + * IPRT - SHA-512/256 string functions. + */ + +/* + * Copyright (C) 2009-2014 Oracle Corporation + * + * This file is part of VirtualBox Open Source Edition (OSE), as + * available from http://www.virtualbox.org. This file is free software; + * you can redistribute it and/or modify it under the terms of the GNU + * General Public License (GPL) as published by the Free Software + * Foundation, in version 2 as it comes in the "COPYING" file of the + * VirtualBox OSE distribution. VirtualBox OSE is distributed in the + * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind. + * + * The contents of this file may alternatively be used under the terms + * of the Common Development and Distribution License Version 1.0 + * (CDDL) only, as it comes in the "COPYING.CDDL" file of the + * VirtualBox OSE distribution, in which case the provisions of the + * CDDL are applicable instead of those of the GPL. + * + * You may elect to license modified versions of this file under the + * terms and conditions of either the GPL or the CDDL or both. + */ + + +/******************************************************************************* +* Header Files * +*******************************************************************************/ +#include "internal/iprt.h" +#include + +#include +#include +#include + + +RTDECL(int) RTSha512t256ToString(uint8_t const pabDigest[RTSHA512T256_HASH_SIZE], char *pszDigest, size_t cchDigest) +{ + return RTStrPrintHexBytes(pszDigest, cchDigest, &pabDigest[0], RTSHA512T256_HASH_SIZE, 0 /*fFlags*/); +} + + +RTDECL(int) RTSha512t256FromString(char const *pszDigest, uint8_t pabDigest[RTSHA512T256_HASH_SIZE]) +{ + return RTStrConvertHexBytes(RTStrStripL(pszDigest), &pabDigest[0], RTSHA512T256_HASH_SIZE, 0 /*fFlags*/); +} + diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Runtime/common/crypto/digest-builtin.cpp virtualbox-4.1.44-dfsg/src/VBox/Runtime/common/crypto/digest-builtin.cpp --- virtualbox-4.1.12-dfsg/src/VBox/Runtime/common/crypto/digest-builtin.cpp 1970-01-01 00:00:00.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Runtime/common/crypto/digest-builtin.cpp 2015-11-11 15:08:59.000000000 +0000 @@ -0,0 +1,729 @@ +/* $Id: digest-builtin.cpp $ */ +/** @file + * IPRT - Crypto - Cryptographic Hash / Message Digest API, Built-in providers. + */ + +/* + * Copyright (C) 2006-2014 Oracle Corporation + * + * This file is part of VirtualBox Open Source Edition (OSE), as + * available from http://www.virtualbox.org. This file is free software; + * you can redistribute it and/or modify it under the terms of the GNU + * General Public License (GPL) as published by the Free Software + * Foundation, in version 2 as it comes in the "COPYING" file of the + * VirtualBox OSE distribution. VirtualBox OSE is distributed in the + * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind. + * + * The contents of this file may alternatively be used under the terms + * of the Common Development and Distribution License Version 1.0 + * (CDDL) only, as it comes in the "COPYING.CDDL" file of the + * VirtualBox OSE distribution, in which case the provisions of the + * CDDL are applicable instead of those of the GPL. + * + * You may elect to license modified versions of this file under the + * terms and conditions of either the GPL or the CDDL or both. + */ + + +/******************************************************************************* +* Header Files * +*******************************************************************************/ +#include "internal/iprt.h" +#include + +#include +#include +#include +#include +#include +#include +#include + +#ifdef IPRT_WITH_OPENSSL +# include "internal/iprt-openssl.h" +# include +#endif + +/* + * MD2 + */ + +/** @impl_interface_method{RTCRDIGESTDESC::pfnUpdate} */ +static DECLCALLBACK(void) rtCrDigestMd2_Update(void *pvState, const void *pvData, size_t cbData) +{ + RTMd2Update((PRTMD2CONTEXT)pvState, pvData, cbData); +} + +/** @impl_interface_method{RTCRDIGESTDESC::pfnFinal} */ +static DECLCALLBACK(void) rtCrDigestMd2_Final(void *pvState, uint8_t *pbHash) +{ + RTMd2Final((PRTMD2CONTEXT)pvState, pbHash); +} + +/** @impl_interface_method{RTCRDIGESTDESC::pfnInit} */ +static DECLCALLBACK(int) rtCrDigestMd2_Init(void *pvState, void *pvOpaque, bool fReInit) +{ + AssertReturn(pvOpaque == NULL, VERR_INVALID_PARAMETER); + RTMd2Init((PRTMD2CONTEXT)pvState); + return VINF_SUCCESS; +} + +/** MD2 alias ODIs. */ +static const char * const g_apszMd2Aliases[] = +{ + RTCR_PKCS1_MD2_WITH_RSA_OID, + "1.3.14.3.2.24" /* OIW md2WithRSASignature */, + NULL +}; + +/** MD2 descriptor. */ +static RTCRDIGESTDESC const g_rtCrDigestMd2Desc = +{ + "md2", + "1.2.840.113549.2.2", + g_apszMd2Aliases, + RTDIGESTTYPE_MD2, + RTMD2_HASH_SIZE, + sizeof(RTMD2CONTEXT), + 0, + rtCrDigestMd2_Update, + rtCrDigestMd2_Final, + rtCrDigestMd2_Init, + NULL, + NULL, + NULL, + NULL, +}; + + +/* + * MD5 + */ + +/** @impl_interface_method{RTCRDIGESTDESC::pfnUpdate} */ +static DECLCALLBACK(void) rtCrDigestMd5_Update(void *pvState, const void *pvData, size_t cbData) +{ + RTMd5Update((PRTMD5CONTEXT)pvState, pvData, cbData); +} + +/** @impl_interface_method{RTCRDIGESTDESC::pfnFinal} */ +static DECLCALLBACK(void) rtCrDigestMd5_Final(void *pvState, uint8_t *pbHash) +{ + RTMd5Final(pbHash, (PRTMD5CONTEXT)pvState); +} + +/** @impl_interface_method{RTCRDIGESTDESC::pfnInit} */ +static DECLCALLBACK(int) rtCrDigestMd5_Init(void *pvState, void *pvOpaque, bool fReInit) +{ + AssertReturn(pvOpaque == NULL, VERR_INVALID_PARAMETER); + RTMd5Init((PRTMD5CONTEXT)pvState); + return VINF_SUCCESS; +} + +/** MD5 alias ODIs. */ +static const char * const g_apszMd5Aliases[] = +{ + RTCR_PKCS1_MD5_WITH_RSA_OID, + "1.3.14.3.2.25" /* OIW md5WithRSASignature */, + NULL +}; + +/** MD5 descriptor. */ +static RTCRDIGESTDESC const g_rtCrDigestMd5Desc = +{ + "md5", + "1.2.840.113549.2.5", + g_apszMd5Aliases, + RTDIGESTTYPE_MD5, + RTMD5_HASH_SIZE, + sizeof(RTMD5CONTEXT), + 0, + rtCrDigestMd5_Update, + rtCrDigestMd5_Final, + rtCrDigestMd5_Init, + NULL, + NULL, + NULL, + NULL, +}; + + +/* + * SHA-1 + */ + +/** @impl_interface_method{RTCRDIGESTDESC::pfnUpdate} */ +static DECLCALLBACK(void) rtCrDigestSha1_Update(void *pvState, const void *pvData, size_t cbData) +{ + RTSha1Update((PRTSHA1CONTEXT)pvState, pvData, cbData); +} + +/** @impl_interface_method{RTCRDIGESTDESC::pfnFinal} */ +static DECLCALLBACK(void) rtCrDigestSha1_Final(void *pvState, uint8_t *pbHash) +{ + RTSha1Final((PRTSHA1CONTEXT)pvState, pbHash); +} + +/** @impl_interface_method{RTCRDIGESTDESC::pfnInit} */ +static DECLCALLBACK(int) rtCrDigestSha1_Init(void *pvState, void *pvOpaque, bool fReInit) +{ + AssertReturn(pvOpaque == NULL, VERR_INVALID_PARAMETER); + RTSha1Init((PRTSHA1CONTEXT)pvState); + return VINF_SUCCESS; +} + +/** SHA-1 alias ODIs. */ +static const char * const g_apszSha1Aliases[] = +{ + RTCR_PKCS1_SHA1_WITH_RSA_OID, + "1.3.14.3.2.29" /* OIW sha1WithRSASignature */, + NULL +}; + +/** SHA-1 descriptor. */ +static RTCRDIGESTDESC const g_rtCrDigestSha1Desc = +{ + "sha-1", + "1.3.14.3.2.26", + g_apszSha1Aliases, + RTDIGESTTYPE_SHA1, + RTSHA1_HASH_SIZE, + sizeof(RTSHA1CONTEXT), + 0, + rtCrDigestSha1_Update, + rtCrDigestSha1_Final, + rtCrDigestSha1_Init, + NULL, + NULL, + NULL, + NULL, +}; + + +/* + * SHA-256 + */ + +/** @impl_interface_method{RTCRDIGESTDESC::pfnUpdate} */ +static DECLCALLBACK(void) rtCrDigestSha256_Update(void *pvState, const void *pvData, size_t cbData) +{ + RTSha256Update((PRTSHA256CONTEXT)pvState, pvData, cbData); +} + +/** @impl_interface_method{RTCRDIGESTDESC::pfnFinal} */ +static DECLCALLBACK(void) rtCrDigestSha256_Final(void *pvState, uint8_t *pbHash) +{ + RTSha256Final((PRTSHA256CONTEXT)pvState, pbHash); +} + +/** @impl_interface_method{RTCRDIGESTDESC::pfnInit} */ +static DECLCALLBACK(int) rtCrDigestSha256_Init(void *pvState, void *pvOpaque, bool fReInit) +{ + AssertReturn(pvOpaque == NULL, VERR_INVALID_PARAMETER); + RTSha256Init((PRTSHA256CONTEXT)pvState); + return VINF_SUCCESS; +} + +/** SHA-256 alias ODIs. */ +static const char * const g_apszSha256Aliases[] = +{ + RTCR_PKCS1_SHA256_WITH_RSA_OID, + NULL +}; + +/** SHA-256 descriptor. */ +static RTCRDIGESTDESC const g_rtCrDigestSha256Desc = +{ + "sha-256", + "2.16.840.1.101.3.4.2.1", + g_apszSha256Aliases, + RTDIGESTTYPE_SHA256, + RTSHA256_HASH_SIZE, + sizeof(RTSHA256CONTEXT), + 0, + rtCrDigestSha256_Update, + rtCrDigestSha256_Final, + rtCrDigestSha256_Init, + NULL, + NULL, + NULL, + NULL, +}; + + +/* + * SHA-512 + */ + +/** @impl_interface_method{RTCRDIGESTDESC::pfnUpdate} */ +static DECLCALLBACK(void) rtCrDigestSha512_Update(void *pvState, const void *pvData, size_t cbData) +{ + RTSha512Update((PRTSHA512CONTEXT)pvState, pvData, cbData); +} + +/** @impl_interface_method{RTCRDIGESTDESC::pfnFinal} */ +static DECLCALLBACK(void) rtCrDigestSha512_Final(void *pvState, uint8_t *pbHash) +{ + RTSha512Final((PRTSHA512CONTEXT)pvState, pbHash); +} + +/** @impl_interface_method{RTCRDIGESTDESC::pfnInit} */ +static DECLCALLBACK(int) rtCrDigestSha512_Init(void *pvState, void *pvOpaque, bool fReInit) +{ + AssertReturn(pvOpaque == NULL, VERR_INVALID_PARAMETER); + RTSha512Init((PRTSHA512CONTEXT)pvState); + return VINF_SUCCESS; +} + +/** SHA-512 alias ODIs. */ +static const char * const g_apszSha512Aliases[] = +{ + RTCR_PKCS1_SHA512_WITH_RSA_OID, + NULL +}; + +/** SHA-512 descriptor. */ +static RTCRDIGESTDESC const g_rtCrDigestSha512Desc = +{ + "sha-512", + "2.16.840.1.101.3.4.2.3", + g_apszSha512Aliases, + RTDIGESTTYPE_SHA512, + RTSHA512_HASH_SIZE, + sizeof(RTSHA512CONTEXT), + 0, + rtCrDigestSha512_Update, + rtCrDigestSha512_Final, + rtCrDigestSha512_Init, + NULL, + NULL, + NULL, + NULL, +}; + + +/* + * SHA-224 + */ + +/** @impl_interface_method{RTCRDIGESTDESC::pfnUpdate} */ +static DECLCALLBACK(void) rtCrDigestSha224_Update(void *pvState, const void *pvData, size_t cbData) +{ + RTSha224Update((PRTSHA224CONTEXT)pvState, pvData, cbData); +} + +/** @impl_interface_method{RTCRDIGESTDESC::pfnFinal} */ +static DECLCALLBACK(void) rtCrDigestSha224_Final(void *pvState, uint8_t *pbHash) +{ + RTSha224Final((PRTSHA224CONTEXT)pvState, pbHash); +} + +/** @impl_interface_method{RTCRDIGESTDESC::pfnInit} */ +static DECLCALLBACK(int) rtCrDigestSha224_Init(void *pvState, void *pvOpaque, bool fReInit) +{ + AssertReturn(pvOpaque == NULL, VERR_INVALID_PARAMETER); + RTSha224Init((PRTSHA224CONTEXT)pvState); + return VINF_SUCCESS; +} + +/** SHA-224 alias ODIs. */ +static const char * const g_apszSha224Aliases[] = +{ + RTCR_PKCS1_SHA224_WITH_RSA_OID, + NULL +}; + +/** SHA-224 descriptor. */ +static RTCRDIGESTDESC const g_rtCrDigestSha224Desc = +{ + "sha-224", + "2.16.840.1.101.3.4.2.4", + g_apszSha224Aliases, + RTDIGESTTYPE_SHA224, + RTSHA224_HASH_SIZE, + sizeof(RTSHA224CONTEXT), + 0, + rtCrDigestSha224_Update, + rtCrDigestSha224_Final, + rtCrDigestSha224_Init, + NULL, + NULL, + NULL, + NULL, +}; + + +/* + * SHA-384 + */ + +/** @impl_interface_method{RTCRDIGESTDESC::pfnUpdate} */ +static DECLCALLBACK(void) rtCrDigestSha384_Update(void *pvState, const void *pvData, size_t cbData) +{ + RTSha384Update((PRTSHA384CONTEXT)pvState, pvData, cbData); +} + +/** @impl_interface_method{RTCRDIGESTDESC::pfnFinal} */ +static DECLCALLBACK(void) rtCrDigestSha384_Final(void *pvState, uint8_t *pbHash) +{ + RTSha384Final((PRTSHA384CONTEXT)pvState, pbHash); +} + +/** @impl_interface_method{RTCRDIGESTDESC::pfnInit} */ +static DECLCALLBACK(int) rtCrDigestSha384_Init(void *pvState, void *pvOpaque, bool fReInit) +{ + AssertReturn(pvOpaque == NULL, VERR_INVALID_PARAMETER); + RTSha384Init((PRTSHA384CONTEXT)pvState); + return VINF_SUCCESS; +} + +/** SHA-384 alias ODIs. */ +static const char * const g_apszSha384Aliases[] = +{ + RTCR_PKCS1_SHA384_WITH_RSA_OID, + NULL +}; + +/** SHA-384 descriptor. */ +static RTCRDIGESTDESC const g_rtCrDigestSha384Desc = +{ + "sha-384", + "2.16.840.1.101.3.4.2.2", + g_apszSha384Aliases, + RTDIGESTTYPE_SHA384, + RTSHA384_HASH_SIZE, + sizeof(RTSHA384CONTEXT), + 0, + rtCrDigestSha384_Update, + rtCrDigestSha384_Final, + rtCrDigestSha384_Init, + NULL, + NULL, + NULL, + NULL, +}; + + +#ifndef IPRT_WITHOUT_SHA512T224 +/* + * SHA-512/224 + */ + +/** @impl_interface_method{RTCRDIGESTDESC::pfnUpdate} */ +static DECLCALLBACK(void) rtCrDigestSha512t224_Update(void *pvState, const void *pvData, size_t cbData) +{ + RTSha512t224Update((PRTSHA512T224CONTEXT)pvState, pvData, cbData); +} + +/** @impl_interface_method{RTCRDIGESTDESC::pfnFinal} */ +static DECLCALLBACK(void) rtCrDigestSha512t224_Final(void *pvState, uint8_t *pbHash) +{ + RTSha512t224Final((PRTSHA512T224CONTEXT)pvState, pbHash); +} + +/** @impl_interface_method{RTCRDIGESTDESC::pfnInit} */ +static DECLCALLBACK(int) rtCrDigestSha512t224_Init(void *pvState, void *pvOpaque, bool fReInit) +{ + AssertReturn(pvOpaque == NULL, VERR_INVALID_PARAMETER); + RTSha512t224Init((PRTSHA512T224CONTEXT)pvState); + return VINF_SUCCESS; +} + +/** SHA-512/224 alias ODIs. */ +static const char * const g_apszSha512t224Aliases[] = +{ + NULL +}; + +/** SHA-512/224 descriptor. */ +static RTCRDIGESTDESC const g_rtCrDigestSha512t224Desc = +{ + "sha-512/224", + "2.16.840.1.101.3.4.2.5", + g_apszSha512t224Aliases, + RTDIGESTTYPE_SHA512T224, + RTSHA512T224_HASH_SIZE, + sizeof(RTSHA512T224CONTEXT), + 0, + rtCrDigestSha512t224_Update, + rtCrDigestSha512t224_Final, + rtCrDigestSha512t224_Init, + NULL, + NULL, + NULL, + NULL, +}; +#endif /* !IPRT_WITHOUT_SHA512T224 */ + + +#ifndef IPRT_WITHOUT_SHA512T256 +/* + * SHA-512/256 + */ + +/** @impl_interface_method{RTCRDIGESTDESC::pfnUpdate} */ +static DECLCALLBACK(void) rtCrDigestSha512t256_Update(void *pvState, const void *pvData, size_t cbData) +{ + RTSha512t256Update((PRTSHA512T256CONTEXT)pvState, pvData, cbData); +} + +/** @impl_interface_method{RTCRDIGESTDESC::pfnFinal} */ +static DECLCALLBACK(void) rtCrDigestSha512t256_Final(void *pvState, uint8_t *pbHash) +{ + RTSha512t256Final((PRTSHA512T256CONTEXT)pvState, pbHash); +} + +/** @impl_interface_method{RTCRDIGESTDESC::pfnInit} */ +static DECLCALLBACK(int) rtCrDigestSha512t256_Init(void *pvState, void *pvOpaque, bool fReInit) +{ + AssertReturn(pvOpaque == NULL, VERR_INVALID_PARAMETER); + RTSha512t256Init((PRTSHA512T256CONTEXT)pvState); + return VINF_SUCCESS; +} + +/** SHA-512/256 alias ODIs. */ +static const char * const g_apszSha512t256Aliases[] = +{ + NULL +}; + +/** SHA-512/256 descriptor. */ +static RTCRDIGESTDESC const g_rtCrDigestSha512t256Desc = +{ + "sha-512/256", + "2.16.840.1.101.3.4.2.6", + g_apszSha512t256Aliases, + RTDIGESTTYPE_SHA512T256, + RTSHA512T256_HASH_SIZE, + sizeof(RTSHA512T256CONTEXT), + 0, + rtCrDigestSha512t256_Update, + rtCrDigestSha512t256_Final, + rtCrDigestSha512t256_Init, + NULL, + NULL, + NULL, + NULL, +}; +#endif /* !IPRT_WITHOUT_SHA512T256 */ + + +/** + * Array of built in message digest vtables. + */ +static PCRTCRDIGESTDESC const g_apDigestOps[] = +{ + &g_rtCrDigestMd2Desc, + &g_rtCrDigestMd5Desc, + &g_rtCrDigestSha1Desc, + &g_rtCrDigestSha256Desc, + &g_rtCrDigestSha512Desc, + &g_rtCrDigestSha224Desc, + &g_rtCrDigestSha384Desc, +#ifndef IPRT_WITHOUT_SHA512T224 + &g_rtCrDigestSha512t224Desc, +#endif +#ifndef IPRT_WITHOUT_SHA512T256 + &g_rtCrDigestSha512t256Desc, +#endif +}; + + +#ifdef IPRT_WITH_OPENSSL +/* + * OpenSSL EVP. + */ + +/** @impl_interface_method{RTCRDIGESTDESC::pfnUpdate} */ +static DECLCALLBACK(void) rtCrDigestOsslEvp_Update(void *pvState, const void *pvData, size_t cbData) +{ + EVP_DigestUpdate((EVP_MD_CTX *)pvState, pvData, cbData); +} + + +/** @impl_interface_method{RTCRDIGESTDESC::pfnFinal} */ +static DECLCALLBACK(void) rtCrDigestOsslEvp_Final(void *pvState, uint8_t *pbHash) +{ + unsigned int cbHash = EVP_MAX_MD_SIZE; + EVP_DigestFinal((EVP_MD_CTX *)pvState, (unsigned char *)pbHash, &cbHash); +} + +/** @impl_interface_method{RTCRDIGESTDESC::pfnInit} */ +static DECLCALLBACK(int) rtCrDigestOsslEvp_Init(void *pvState, void *pvOpaque, bool fReInit) +{ + EVP_MD_CTX *pThis = (EVP_MD_CTX *)pvState; + EVP_MD const *pEvpType = (EVP_MD const *)pvOpaque; + + if (fReInit) + { + pEvpType = EVP_MD_CTX_md(pThis); + EVP_MD_CTX_cleanup(pThis); + } + + AssertPtrReturn(pEvpType, VERR_INVALID_PARAMETER); + Assert(pEvpType->md_size); + if (EVP_DigestInit(pThis, pEvpType)) + return VINF_SUCCESS; + return VERR_CR_DIGEST_OSSL_DIGEST_INIT_ERROR; +} + + +/** @impl_interface_method{RTCRDIGESTDESC::pfn} */ +static DECLCALLBACK(void) rtCrDigestOsslEvp_Delete(void *pvState) +{ + EVP_MD_CTX *pThis = (EVP_MD_CTX *)pvState; + EVP_MD_CTX_cleanup(pThis); +} + + +/** @impl_interface_method{RTCRDIGESTDESC::pfnClone} */ +static DECLCALLBACK(int) rtCrDigestOsslEvp_Clone(void *pvState, void const *pvSrcState) +{ + EVP_MD_CTX *pThis = (EVP_MD_CTX *)pvState; + EVP_MD_CTX const *pSrc = (EVP_MD_CTX const *)pvSrcState; + + if (EVP_MD_CTX_copy(pThis, pSrc)) + return VINF_SUCCESS; + return VERR_CR_DIGEST_OSSL_DIGEST_CTX_COPY_ERROR; +} + + +/** @impl_interface_method{RTCRDIGESTDESC::pfnGetHashSize} */ +static DECLCALLBACK(uint32_t) rtCrDigestOsslEvp_GetHashSize(void *pvState) +{ + EVP_MD_CTX *pThis = (EVP_MD_CTX *)pvState; + return EVP_MD_size(EVP_MD_CTX_md(pThis)); +} + + +/** @impl_interface_method{RTCRDIGESTDESC::pfnGetHashSize} */ +static DECLCALLBACK(RTDIGESTTYPE) rtCrDigestOsslEvp_GetDigestType(void *pvState) +{ + EVP_MD_CTX *pThis = (EVP_MD_CTX *)pvState; + /** @todo figure which digest algorithm it is! */ + return RTDIGESTTYPE_UNKNOWN; +} + + +/** Descriptor for the OpenSSL EVP base message digest provider. */ +static RTCRDIGESTDESC const g_rtCrDigestOpenSslDesc = +{ + "OpenSSL EVP", + NULL, + NULL, + RTDIGESTTYPE_UNKNOWN, + EVP_MAX_MD_SIZE, + sizeof(EVP_MD_CTX), + 0, + rtCrDigestOsslEvp_Update, + rtCrDigestOsslEvp_Final, + rtCrDigestOsslEvp_Init, + rtCrDigestOsslEvp_Delete, + rtCrDigestOsslEvp_Clone, + rtCrDigestOsslEvp_GetHashSize, + rtCrDigestOsslEvp_GetDigestType +}; + +#endif /* IPRT_WITH_OPENSSL */ + + +RTDECL(PCRTCRDIGESTDESC) RTCrDigestFindByObjIdString(const char *pszObjId, void **ppvOpaque) +{ + if (ppvOpaque) + *ppvOpaque = NULL; + + /* + * Primary OIDs. + */ + uint32_t i = RT_ELEMENTS(g_apDigestOps); + while (i-- > 0) + if (strcmp(g_apDigestOps[i]->pszObjId, pszObjId) == 0) + return g_apDigestOps[i]; + + /* + * Alias OIDs. + */ + i = RT_ELEMENTS(g_apDigestOps); + while (i-- > 0) + { + const char * const *ppszAliases = g_apDigestOps[i]->papszObjIdAliases; + if (ppszAliases) + for (; *ppszAliases; ppszAliases++) + if (strcmp(*ppszAliases, pszObjId) == 0) + return g_apDigestOps[i]; + } + +#ifdef IPRT_WITH_OPENSSL + /* + * Try EVP and see if it knows the algorithm. + */ + if (ppvOpaque) + { + rtCrOpenSslInit(); + int iAlgoNid = OBJ_txt2nid(pszObjId); + if (iAlgoNid != NID_undef) + { + const char *pszAlogSn = OBJ_nid2sn(iAlgoNid); + const EVP_MD *pEvpMdType = EVP_get_digestbyname(pszAlogSn); + if (pEvpMdType) + { + /* + * Return the OpenSSL provider descriptor and the EVP_MD address. + */ + Assert(pEvpMdType->md_size); + *ppvOpaque = (void *)pEvpMdType; + return &g_rtCrDigestOpenSslDesc; + } + } + } +#endif + return NULL; +} + + +RTDECL(PCRTCRDIGESTDESC) RTCrDigestFindByObjId(PCRTASN1OBJID pObjId, void **ppvOpaque) +{ + return RTCrDigestFindByObjIdString(pObjId->szObjId, ppvOpaque); +} + + +RTDECL(int) RTCrDigestCreateByObjIdString(PRTCRDIGEST phDigest, const char *pszObjId) +{ + void *pvOpaque; + PCRTCRDIGESTDESC pDesc = RTCrDigestFindByObjIdString(pszObjId, &pvOpaque); + if (pDesc) + return RTCrDigestCreate(phDigest, pDesc, pvOpaque); + return VERR_NOT_FOUND; +} + + +RTDECL(int) RTCrDigestCreateByObjId(PRTCRDIGEST phDigest, PCRTASN1OBJID pObjId) +{ + void *pvOpaque; + PCRTCRDIGESTDESC pDesc = RTCrDigestFindByObjId(pObjId, &pvOpaque); + if (pDesc) + return RTCrDigestCreate(phDigest, pDesc, pvOpaque); + return VERR_NOT_FOUND; +} + + +RTDECL(PCRTCRDIGESTDESC) RTCrDigestFindByType(RTDIGESTTYPE enmDigestType) +{ + AssertReturn(enmDigestType > RTDIGESTTYPE_INVALID && enmDigestType <= RTDIGESTTYPE_END, NULL); + + uint32_t i = RT_ELEMENTS(g_apDigestOps); + while (i-- > 0) + if (g_apDigestOps[i]->enmType == enmDigestType) + return g_apDigestOps[i]; + return NULL; +} + + +RTDECL(int) RTCrDigestCreateByType(PRTCRDIGEST phDigest, RTDIGESTTYPE enmDigestType) +{ + PCRTCRDIGESTDESC pDesc = RTCrDigestFindByType(enmDigestType); + if (pDesc) + return RTCrDigestCreate(phDigest, pDesc, NULL); + return VERR_NOT_FOUND; +} + diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Runtime/common/crypto/digest-core.cpp virtualbox-4.1.44-dfsg/src/VBox/Runtime/common/crypto/digest-core.cpp --- virtualbox-4.1.12-dfsg/src/VBox/Runtime/common/crypto/digest-core.cpp 1970-01-01 00:00:00.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Runtime/common/crypto/digest-core.cpp 2015-11-11 15:08:59.000000000 +0000 @@ -0,0 +1,338 @@ +/* $Id: digest-core.cpp $ */ +/** @file + * IPRT - Crypto - Cryptographic Hash / Message Digest API + */ + +/* + * Copyright (C) 2006-2014 Oracle Corporation + * + * This file is part of VirtualBox Open Source Edition (OSE), as + * available from http://www.virtualbox.org. This file is free software; + * you can redistribute it and/or modify it under the terms of the GNU + * General Public License (GPL) as published by the Free Software + * Foundation, in version 2 as it comes in the "COPYING" file of the + * VirtualBox OSE distribution. VirtualBox OSE is distributed in the + * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind. + * + * The contents of this file may alternatively be used under the terms + * of the Common Development and Distribution License Version 1.0 + * (CDDL) only, as it comes in the "COPYING.CDDL" file of the + * VirtualBox OSE distribution, in which case the provisions of the + * CDDL are applicable instead of those of the GPL. + * + * You may elect to license modified versions of this file under the + * terms and conditions of either the GPL or the CDDL or both. + */ + + +/******************************************************************************* +* Header Files * +*******************************************************************************/ +#include "internal/iprt.h" +#include + +#include +#include +#include +#include + + +/******************************************************************************* +* Structures and Typedefs * +*******************************************************************************/ +/** + * Generic message digest instance. + */ +typedef struct RTCRDIGESTINT +{ + /** Magic value (RTCRDIGESTINT_MAGIC). */ + uint32_t u32Magic; + /** Reference counter. */ + uint32_t volatile cRefs; + /** Pointer to the message digest descriptor. */ + PCRTCRDIGESTDESC pDesc; + /** The offset into abState of the storage space . At + * least RTCRDIGESTDESC::cbHash bytes is available at that location. */ + uint32_t offHash; + /** State. */ + uint32_t uState; + /** The number of bytes consumed. */ + uint64_t cbConsumed; + /** Opaque data specific to the message digest algorithm, size given by + * RTCRDIGESTDESC::cbState. This is followed by space for the final hash at + * offHash with size RTCRDIGESTDESC::cbHash. */ + uint8_t abState[1]; +} RTCRDIGESTINT; +/** Pointer to a message digest instance. */ +typedef RTCRDIGESTINT *PRTCRDIGESTINT; + +/** Magic value for RTCRDIGESTINT::u32Magic (Ralph C. Merkle). */ +#define RTCRDIGESTINT_MAGIC UINT32_C(0x19520202) + +/** @name RTCRDIGESTINT::uState values. + * @{ */ +/** Ready for more data. */ +#define RTCRDIGEST_STATE_READY UINT32_C(1) +/** The hash has been finalized and can be found at offHash. */ +#define RTCRDIGEST_STATE_FINAL UINT32_C(2) +/** Busted state, can happen after re-init. */ +#define RTCRDIGEST_STATE_BUSTED UINT32_C(3) +/** @} */ + + + +RTDECL(int) RTCrDigestCreate(PRTCRDIGEST phDigest, PCRTCRDIGESTDESC pDesc, void *pvOpaque) +{ + AssertPtrReturn(phDigest, VERR_INVALID_POINTER); + AssertPtrReturn(pDesc, VERR_INVALID_POINTER); + + int rc = VINF_SUCCESS; + uint32_t offHash = RT_ALIGN_32(pDesc->cbState, 8); + PRTCRDIGESTINT pThis = (PRTCRDIGESTINT)RTMemAllocZ(RT_OFFSETOF(RTCRDIGESTINT, abState[offHash + pDesc->cbHash])); + if (pThis) + { + pThis->u32Magic = RTCRDIGESTINT_MAGIC; + pThis->cRefs = 1; + pThis->offHash = offHash; + pThis->pDesc = pDesc; + pThis->uState = RTCRDIGEST_STATE_READY; + if (pDesc->pfnInit) + rc = pDesc->pfnInit(pThis->abState, pvOpaque, false /*fReInit*/); + if (RT_SUCCESS(rc)) + { + *phDigest = pThis; + return VINF_SUCCESS; + } + pThis->u32Magic = 0; + RTMemFree(pThis); + } + else + rc = VERR_NO_MEMORY; + return rc; +} + + +RTDECL(int) RTCrDigestClone(PRTCRDIGEST phDigest, RTCRDIGEST hSrc) +{ + AssertPtrReturn(phDigest, VERR_INVALID_POINTER); + AssertPtrReturn(hSrc, VERR_INVALID_HANDLE); + AssertReturn(hSrc->u32Magic == RTCRDIGESTINT_MAGIC, VERR_INVALID_HANDLE); + + int rc = VINF_SUCCESS; + uint32_t const offHash = hSrc->offHash; + PRTCRDIGESTINT pThis = (PRTCRDIGESTINT)RTMemAllocZ(RT_OFFSETOF(RTCRDIGESTINT, abState[offHash + hSrc->pDesc->cbHash])); + if (pThis) + { + pThis->u32Magic = RTCRDIGESTINT_MAGIC; + pThis->cRefs = 1; + pThis->offHash = offHash; + pThis->pDesc = hSrc->pDesc; + if (hSrc->pDesc->pfnClone) + rc = hSrc->pDesc->pfnClone(pThis->abState, hSrc->abState); + else + memcpy(pThis->abState, hSrc->abState, offHash); + memcpy(&pThis->abState[offHash], &hSrc->abState[offHash], hSrc->pDesc->cbHash); + pThis->uState = hSrc->uState; + + if (RT_SUCCESS(rc)) + { + *phDigest = pThis; + return VINF_SUCCESS; + } + pThis->u32Magic = 0; + RTMemFree(pThis); + } + else + rc = VERR_NO_MEMORY; + return rc; +} + + +RTDECL(int) RTCrDigestReset(RTCRDIGEST hDigest) +{ + PRTCRDIGESTINT pThis = hDigest; + AssertPtrReturn(pThis, VERR_INVALID_HANDLE); + AssertReturn(pThis->u32Magic == RTCRDIGESTINT_MAGIC, VERR_INVALID_HANDLE); + + pThis->cbConsumed = 0; + pThis->uState = RTCRDIGEST_STATE_READY; + + int rc = VINF_SUCCESS; + if (pThis->pDesc->pfnInit) + { + rc = pThis->pDesc->pfnInit(pThis->abState, NULL, true /*fReInit*/); + if (RT_FAILURE(rc)) + pThis->uState = RTCRDIGEST_STATE_BUSTED; + RT_BZERO(&pThis->abState[pThis->offHash], pThis->pDesc->cbHash); + } + else + RT_BZERO(pThis->abState, pThis->offHash + pThis->pDesc->cbHash); + return rc; +} + + +RTDECL(uint32_t) RTCrDigestRetain(RTCRDIGEST hDigest) +{ + PRTCRDIGESTINT pThis = hDigest; + AssertPtrReturn(pThis, UINT32_MAX); + AssertReturn(pThis->u32Magic == RTCRDIGESTINT_MAGIC, UINT32_MAX); + + uint32_t cRefs = ASMAtomicIncU32(&pThis->cRefs); + Assert(cRefs < 64); + return cRefs; +} + + +RTDECL(uint32_t) RTCrDigestRelease(RTCRDIGEST hDigest) +{ + PRTCRDIGESTINT pThis = hDigest; + if (pThis == NIL_RTCRDIGEST) + return 0; + AssertPtrReturn(pThis, UINT32_MAX); + AssertReturn(pThis->u32Magic == RTCRDIGESTINT_MAGIC, UINT32_MAX); + + uint32_t cRefs = ASMAtomicDecU32(&pThis->cRefs); + if (!cRefs) + { + pThis->u32Magic = ~RTCRDIGESTINT_MAGIC; + if (pThis->pDesc->pfnDelete) + pThis->pDesc->pfnDelete(pThis->abState); + RTMemFree(pThis); + } + Assert(cRefs < 64); + return cRefs; +} + + +RTDECL(int) RTCrDigestUpdate(RTCRDIGEST hDigest, void const *pvData, size_t cbData) +{ + PRTCRDIGESTINT pThis = hDigest; + AssertPtrReturn(pThis, VERR_INVALID_HANDLE); + AssertReturn(pThis->u32Magic == RTCRDIGESTINT_MAGIC, VERR_INVALID_HANDLE); + AssertReturn(pThis->uState == RTCRDIGEST_STATE_READY, VERR_INVALID_STATE); + + pThis->pDesc->pfnUpdate(pThis->abState, pvData, cbData); + pThis->cbConsumed += cbData; + return VINF_SUCCESS; +} + + +RTDECL(int) RTCrDigestFinal(RTCRDIGEST hDigest, void *pvHash, size_t cbHash) +{ + PRTCRDIGESTINT pThis = hDigest; + AssertPtrReturn(pThis, VERR_INVALID_HANDLE); + AssertReturn(pThis->u32Magic == RTCRDIGESTINT_MAGIC, VERR_INVALID_HANDLE); + AssertReturn(pThis->uState == RTCRDIGEST_STATE_READY || pThis->uState == RTCRDIGEST_STATE_FINAL, VERR_INVALID_STATE); + AssertPtrNullReturn(pvHash, VERR_INVALID_POINTER); + + /* + * Make sure the hash calculation is final. + */ + if (pThis->uState == RTCRDIGEST_STATE_READY) + { + pThis->pDesc->pfnFinal(pThis->abState, &pThis->abState[pThis->offHash]); + pThis->uState = RTCRDIGEST_STATE_FINAL; + } + else + AssertReturn(pThis->uState == RTCRDIGEST_STATE_FINAL, VERR_INVALID_STATE); + + /* + * Copy out the hash if requested. + */ + if (cbHash > 0) + { + uint32_t cbNeeded = pThis->pDesc->cbHash; + if (pThis->pDesc->pfnGetHashSize) + cbNeeded = pThis->pDesc->pfnGetHashSize(pThis->abState); + Assert(cbNeeded > 0); + + if (cbNeeded == cbHash) + memcpy(pvHash, &pThis->abState[pThis->offHash], cbNeeded); + else if (cbNeeded > cbHash) + { + memcpy(pvHash, &pThis->abState[pThis->offHash], cbNeeded); + memset((uint8_t *)pvHash + cbNeeded, 0, cbHash - cbNeeded); + return VINF_BUFFER_UNDERFLOW; + } + else + { + memcpy(pvHash, &pThis->abState[pThis->offHash], cbHash); + return VERR_BUFFER_OVERFLOW; + } + } + + return VINF_SUCCESS; +} + + +RTDECL(bool) RTCrDigestMatch(RTCRDIGEST hDigest, void const *pvHash, size_t cbHash) +{ + PRTCRDIGESTINT pThis = hDigest; + + int rc = RTCrDigestFinal(pThis, NULL, 0); + AssertRCReturn(rc, false); + + AssertPtrReturn(pvHash, false); + return pThis->pDesc->cbHash == cbHash + && !memcmp(&pThis->abState[pThis->offHash], pvHash, cbHash); +} + + +RTDECL(uint8_t const *) RTCrDigestGetHash(RTCRDIGEST hDigest) +{ + PRTCRDIGESTINT pThis = hDigest; + AssertPtrReturn(pThis, NULL); + AssertReturn(pThis->u32Magic == RTCRDIGESTINT_MAGIC, NULL); + + int rc = RTCrDigestFinal(pThis, NULL, 0); + AssertRCReturn(rc, NULL); + + return &pThis->abState[pThis->offHash]; +} + + +RTDECL(uint32_t) RTCrDigestGetHashSize(RTCRDIGEST hDigest) +{ + PRTCRDIGESTINT pThis = hDigest; + AssertPtrReturn(pThis, 0); + AssertReturn(pThis->u32Magic == RTCRDIGESTINT_MAGIC, 0); + if (pThis->pDesc->pfnGetHashSize) + { + uint32_t cbHash = pThis->pDesc->pfnGetHashSize(pThis->abState); + Assert(cbHash <= pThis->pDesc->cbHash); + return cbHash; + } + return pThis->pDesc->cbHash; +} + + +RTDECL(uint64_t) RTCrDigestGetConsumedSize(RTCRDIGEST hDigest) +{ + PRTCRDIGESTINT pThis = hDigest; + AssertPtrReturn(pThis, 0); + AssertReturn(pThis->u32Magic == RTCRDIGESTINT_MAGIC, 0); + return pThis->cbConsumed; +} + + +RTDECL(bool) RTCrDigestIsFinalized(RTCRDIGEST hDigest) +{ + PRTCRDIGESTINT pThis = hDigest; + AssertPtrReturn(pThis, false); + AssertReturn(pThis->u32Magic == RTCRDIGESTINT_MAGIC, false); + return pThis->uState == RTCRDIGEST_STATE_FINAL; +} + + +RTDECL(RTDIGESTTYPE) RTCrDigestGetType(RTCRDIGEST hDigest) +{ + PRTCRDIGESTINT pThis = hDigest; + AssertPtrReturn(pThis, RTDIGESTTYPE_INVALID); + AssertReturn(pThis->u32Magic == RTCRDIGESTINT_MAGIC, RTDIGESTTYPE_INVALID); + + RTDIGESTTYPE enmType = pThis->pDesc->enmType; + if (pThis->pDesc->pfnGetDigestType) + enmType = pThis->pDesc->pfnGetDigestType(pThis->abState); + return enmType; +} + diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Runtime/common/crypto/iprt-openssl.cpp virtualbox-4.1.44-dfsg/src/VBox/Runtime/common/crypto/iprt-openssl.cpp --- virtualbox-4.1.12-dfsg/src/VBox/Runtime/common/crypto/iprt-openssl.cpp 1970-01-01 00:00:00.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Runtime/common/crypto/iprt-openssl.cpp 2015-11-11 15:08:59.000000000 +0000 @@ -0,0 +1,88 @@ +/* $Id: iprt-openssl.cpp $ */ +/** @file + * IPRT - Crypto - OpenSSL Helpers. + */ + +/* + * Copyright (C) 2006-2014 Oracle Corporation + * + * This file is part of VirtualBox Open Source Edition (OSE), as + * available from http://www.virtualbox.org. This file is free software; + * you can redistribute it and/or modify it under the terms of the GNU + * General Public License (GPL) as published by the Free Software + * Foundation, in version 2 as it comes in the "COPYING" file of the + * VirtualBox OSE distribution. VirtualBox OSE is distributed in the + * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind. + * + * The contents of this file may alternatively be used under the terms + * of the Common Development and Distribution License Version 1.0 + * (CDDL) only, as it comes in the "COPYING.CDDL" file of the + * VirtualBox OSE distribution, in which case the provisions of the + * CDDL are applicable instead of those of the GPL. + * + * You may elect to license modified versions of this file under the + * terms and conditions of either the GPL or the CDDL or both. + */ + + +/******************************************************************************* +* Header Files * +*******************************************************************************/ +#include "internal/iprt.h" + +#ifdef IPRT_WITH_OPENSSL /* Whole file. */ +# include +# include + +# include "internal/iprt-openssl.h" +# include +# include + + +DECLHIDDEN(void) rtCrOpenSslInit(void) +{ + static bool s_fOssInitalized; + if (!s_fOssInitalized) + { + OpenSSL_add_all_algorithms(); + ERR_load_ERR_strings(); + ERR_load_crypto_strings(); + + s_fOssInitalized = true; + } +} + + +DECLHIDDEN(int) rtCrOpenSslErrInfoCallback(const char *pach, size_t cch, void *pvUser) +{ + PRTERRINFO pErrInfo = (PRTERRINFO)pvUser; + size_t cchAlready = pErrInfo->fFlags & RTERRINFO_FLAGS_SET ? strlen(pErrInfo->pszMsg) : 0; + if (cchAlready + 1 < pErrInfo->cbMsg) + RTStrCopyEx(pErrInfo->pszMsg + cchAlready, pErrInfo->cbMsg - cchAlready, pach, cch); + return -1; +} + + +DECLHIDDEN(int) rtCrOpenSslAddX509CertToStack(void *pvOsslStack, PCRTCRX509CERTIFICATE pCert) +{ + int rc; + const unsigned char *pabEncoded = (const unsigned char *)RTASN1CORE_GET_RAW_ASN1_PTR(&pCert->SeqCore.Asn1Core); + uint32_t cbEncoded = RTASN1CORE_GET_RAW_ASN1_SIZE(&pCert->SeqCore.Asn1Core); + X509 *pOsslCert = NULL; + if (d2i_X509(&pOsslCert, &pabEncoded, cbEncoded) == pOsslCert) + { + if (sk_X509_push((STACK_OF(X509) *)pvOsslStack, pOsslCert)) + rc = VINF_SUCCESS; + else + { + rc = VERR_NO_MEMORY; + X509_free(pOsslCert); + } + } + else + rc = VERR_CR_X509_OSSL_D2I_FAILED; + return rc; +} + +#endif /* IPRT_WITH_OPENSSL */ + diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Runtime/common/crypto/pemfile.cpp virtualbox-4.1.44-dfsg/src/VBox/Runtime/common/crypto/pemfile.cpp --- virtualbox-4.1.12-dfsg/src/VBox/Runtime/common/crypto/pemfile.cpp 1970-01-01 00:00:00.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Runtime/common/crypto/pemfile.cpp 2015-11-11 15:08:59.000000000 +0000 @@ -0,0 +1,418 @@ +/* $Id: pemfile.cpp $ */ +/** @file + * IPRT - Crypto - PEM file reader / writer. + */ + +/* + * Copyright (C) 2006-2014 Oracle Corporation + * + * This file is part of VirtualBox Open Source Edition (OSE), as + * available from http://www.virtualbox.org. This file is free software; + * you can redistribute it and/or modify it under the terms of the GNU + * General Public License (GPL) as published by the Free Software + * Foundation, in version 2 as it comes in the "COPYING" file of the + * VirtualBox OSE distribution. VirtualBox OSE is distributed in the + * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind. + * + * The contents of this file may alternatively be used under the terms + * of the Common Development and Distribution License Version 1.0 + * (CDDL) only, as it comes in the "COPYING.CDDL" file of the + * VirtualBox OSE distribution, in which case the provisions of the + * CDDL are applicable instead of those of the GPL. + * + * You may elect to license modified versions of this file under the + * terms and conditions of either the GPL or the CDDL or both. + */ + + +/******************************************************************************* +* Header Files * +*******************************************************************************/ +#include "internal/iprt.h" +#include + +#include +#include +#include +#include +#include +#include + + + +/** + * Looks for a PEM-like marker. + * + * @returns true if found, fasle if not. + * @param pbContent Start of the content to search thru. + * @param cbContent The size of the content to search. + * @param offStart The offset into pbContent to start searching. + * @param pszLeadWord The lead word (BEGIN/END). + * @param cchLeadWord The length of the lead word. + * @param paMarkers Pointer to an array of markers. + * @param cMarkers Number of markers in the array. + * @param ppMatch Where to return the pointer to the matching + * marker. Optional. + * @param poffBegin Where to return the start offset of the marker. + * Optional. + * @param poffEnd Where to return the end offset of the marker + * (trailing whitespace and newlines will be + * skipped). Optional. + */ +static bool rtCrPemFindMarker(uint8_t const *pbContent, size_t cbContent, size_t offStart, + const char *pszLeadWord, size_t cchLeadWord, PCRTCRPEMMARKER paMarkers, size_t cMarkers, + PCRTCRPEMMARKER *ppMatch, size_t *poffBegin, size_t *poffEnd) +{ + /* Remember the start of the content for the purpose of calculating offsets. */ + uint8_t const * const pbStart = pbContent; + + /* Skip adhead by offStart */ + if (offStart >= cbContent) + return false; + pbContent += offStart; + cbContent -= offStart; + + /* + * Search the content. + */ + while (cbContent > 6) + { + /* + * Look for dashes. + */ + uint8_t const *pbStartSearch = pbContent; + pbContent = (uint8_t const *)memchr(pbContent, '-', cbContent); + if (!pbContent) + break; + + cbContent -= pbContent - pbStartSearch; + if (cbContent < 6) + break; + + /* + * There must be at least three to interest us. + */ + if ( pbContent[1] == '-' + && pbContent[2] == '-') + { + unsigned cDashes = 3; + while (cDashes < cbContent && pbContent[cDashes] == '-') + cDashes++; + + if (poffBegin) + *poffBegin = pbContent - pbStart; + cbContent -= cDashes; + pbContent += cDashes; + + /* + * Match lead word. + */ + if ( cbContent > cchLeadWord + && memcmp(pbContent, pszLeadWord, cchLeadWord) == 0 + && RT_C_IS_BLANK(pbContent[cchLeadWord]) ) + { + pbContent += cchLeadWord; + cbContent -= cchLeadWord; + while (cbContent > 0 && RT_C_IS_BLANK(*pbContent)) + { + pbContent++; + cbContent--; + } + + /* + * Match one of the specified markers. + */ + uint8_t const *pbSavedContent = pbContent; + size_t const cbSavedContent = cbContent; + uint32_t iMarker = 0; + while (iMarker < cMarkers) + { + pbContent = pbSavedContent; + cbContent = cbSavedContent; + + uint32_t cWords = paMarkers[iMarker].cWords; + PCRTCRPEMMARKERWORD pWord = paMarkers[iMarker].paWords; + while (cWords > 0) + { + uint32_t const cchWord = pWord->cchWord; + if (cbContent <= cchWord) + break; + if (memcmp(pbContent, pWord->pszWord, cchWord)) + break; + pbContent += cchWord; + cbContent -= cchWord; + + if (!cbContent || !RT_C_IS_BLANK(*pbContent)) + break; + do + { + pbContent++; + cbContent--; + } while (cbContent > 0 && RT_C_IS_BLANK(*pbContent)); + + cWords--; + if (cWords == 0) + { + /* + * If there are three or more dashes following now, we've got a hit. + */ + if ( cbContent > 3 + && pbContent[0] == '-' + && pbContent[1] == '-' + && pbContent[2] == '-') + { + cDashes = 3; + while (cDashes < cbContent && pbContent[cDashes] == '-') + cDashes++; + cbContent -= cDashes; + pbContent += cDashes; + + /* + * Skip spaces and newline. + */ + while (cbContent > 0 && RT_C_IS_SPACE(*pbContent)) + pbContent++, cbContent--; + if (poffEnd) + *poffEnd = pbContent - pbStart; + if (*ppMatch) + *ppMatch = &paMarkers[iMarker]; + return true; + } + break; + } + } /* for each word in marker. */ + } /* for each marker. */ + } + } + else + { + pbContent++; + cbContent--; + } + } + + return false; +} + + +static bool rtCrPemFindMarkerSection(uint8_t const *pbContent, size_t cbContent, size_t offStart, + PCRTCRPEMMARKER paMarkers, size_t cMarkers, + PCRTCRPEMMARKER *ppMatch, size_t *poffBegin, size_t *poffEnd, size_t *poffResume) +{ + /** @todo Detect BEGIN / END mismatch. */ + PCRTCRPEMMARKER pMatch; + if (rtCrPemFindMarker(pbContent, cbContent, offStart, "BEGIN", 5, paMarkers, cMarkers, + &pMatch, NULL /*poffStart*/, poffBegin)) + { + if (rtCrPemFindMarker(pbContent, cbContent, *poffBegin, "END", 3, pMatch, 1, + NULL /*ppMatch*/, poffEnd, poffResume)) + { + *ppMatch = pMatch; + return true; + } + } + *ppMatch = NULL; + return false; +} + + + +/** + * Does the decoding of a PEM-like data blob after it has been located. + * + * @returns IPRT status ocde + * @param pbContent The start of the PEM-like content (text). + * @param cbContent The max size of the PEM-like content. + * @param ppvDecoded Where to return a heap block containing the + * decoded content. + * @param pcbDecoded Where to return the size of the decoded content. + */ +static int rtCrPemDecodeBase64(uint8_t const *pbContent, size_t cbContent, void **ppvDecoded, size_t *pcbDecoded) +{ + ssize_t cbDecoded = RTBase64DecodedSizeEx((const char *)pbContent, cbContent, NULL); + if (cbDecoded < 0) + return VERR_INVALID_BASE64_ENCODING; + + *pcbDecoded = cbDecoded; + void *pvDecoded = RTMemAlloc(cbDecoded); + if (!pvDecoded) + return VERR_NO_MEMORY; + + size_t cbActual; + int rc = RTBase64DecodeEx((const char *)pbContent, cbContent, pvDecoded, cbDecoded, &cbActual, NULL); + if (RT_SUCCESS(rc)) + { + if (cbActual == (size_t)cbDecoded) + { + *ppvDecoded = pvDecoded; + return VINF_SUCCESS; + } + rc = VERR_INTERNAL_ERROR_3; + } + RTMemFree(pvDecoded); + return rc; +} + + +/** + * Checks if the content of a file looks to be binary or not. + * + * @returns true if likely to be binary, false if not binary. + * @param pbFile The file bytes to scan. + * @param cbFile The number of bytes. + */ +static bool rtCrPemIsBinaryFile(uint8_t *pbFile, size_t cbFile) +{ + /* + * Assume a well formed PEM file contains only 7-bit ASCII and restricts + * itself to the following control characters: + * tab, newline, return, form feed + */ + while (cbFile-- > 0) + { + uint8_t const b = *pbFile++; + if ( b >= 0x7f + || (b < 32 && b != '\t' && b != '\n' && b != '\r' && b != '\f') ) + { + /* Ignore EOT (4), SUB (26) and NUL (0) at the end of the file. */ + if ( (b == 4 || b == 26) + && ( cbFile == 0 + || ( cbFile == 1 + && *pbFile == '\0'))) + return true; + if (b == 0 && cbFile == 0) + return true; + return false; + } + } + return true; +} + + +RTDECL(int) RTCrPemFreeSections(PCRTCRPEMSECTION pSectionHead) +{ + while (pSectionHead != NULL) + { + PRTCRPEMSECTION pFree = (PRTCRPEMSECTION)pSectionHead; + pSectionHead = pSectionHead->pNext; + + if (pFree->pMarker) + { + if (pFree->pbData) + { + RTMemFree(pFree->pbData); + pFree->pbData = NULL; + pFree->cbData = 0; + } + + if (pFree->pszPreamble) + { + RTMemFree(pFree->pszPreamble); + pFree->pszPreamble = NULL; + pFree->cchPreamble = 0; + } + } + else + { + RTFileReadAllFree(pFree->pbData, pFree->cbData); + Assert(!pFree->pszPreamble); + } + pFree->pbData = NULL; + pFree->cbData = 0; + } + return VINF_SUCCESS; +} + + +RTDECL(int) RTCrPemReadFile(const char *pszFilename, uint32_t fFlags, PCRTCRPEMMARKER paMarkers, size_t cMarkers, + PCRTCRPEMSECTION *ppSectionHead, PRTERRINFO pErrInfo) +{ + AssertReturn(!fFlags, VERR_INVALID_FLAGS); + + size_t cbContent; + uint8_t *pbContent; + int rc = RTFileReadAllEx(pszFilename, 0, 64U*_1M, RTFILE_RDALL_O_DENY_WRITE, (void **)&pbContent, &cbContent); + if (RT_SUCCESS(rc)) + { + PRTCRPEMSECTION pSection = (PRTCRPEMSECTION)RTMemAllocZ(sizeof(*pSection)); + if (pSection) + { + /* + * Try locate the first section. + */ + size_t offBegin, offEnd, offResume; + PCRTCRPEMMARKER pMatch; + if ( !rtCrPemIsBinaryFile(pbContent, cbContent) + && rtCrPemFindMarkerSection(pbContent, cbContent, 0 /*offStart*/, paMarkers, cMarkers, + &pMatch, &offBegin, &offEnd, &offResume) ) + { + PCRTCRPEMSECTION *ppNext = ppSectionHead; + for (;;) + { + //pSection->pNext = NULL; + pSection->pMarker = pMatch; + //pSection->pbData = NULL; + //pSection->cbData = 0; + //pSection->pszPreamble = NULL; + //pSection->cchPreamble = 0; + + *ppNext = pSection; + ppNext = &pSection->pNext; + + /* Decode the section. */ + /** @todo copy the preamble as well. */ + rc = rtCrPemDecodeBase64(pbContent + offBegin, offEnd - offBegin, + (void **)&pSection->pbData, &pSection->cbData); + if (RT_FAILURE(rc)) + { + pSection->pbData = NULL; + pSection->cbData = 0; + break; + } + + /* More sections? */ + if ( offResume + 12 >= cbContent + || offResume >= cbContent + || !rtCrPemFindMarkerSection(pbContent, cbContent, offResume, paMarkers, cMarkers, + &pMatch, &offBegin, &offEnd, &offResume) ) + break; /* No. */ + + /* Ok, allocate a new record for it. */ + pSection = (PRTCRPEMSECTION)RTMemAllocZ(sizeof(*pSection)); + if (RT_UNLIKELY(!pSection)) + { + rc = VERR_NO_MEMORY; + break; + } + } + if (RT_SUCCESS(rc)) + { + RTFileReadAllFree(pbContent, cbContent); + return rc; + } + + RTCrPemFreeSections(*ppSectionHead); + } + else + { + /* + * No PEM section found. Return the whole file as one binary section. + */ + //pSection->pNext = NULL; + //pSection->pMarker = NULL; + pSection->pbData = pbContent; + pSection->cbData = cbContent; + //pSection->pszPreamble = NULL; + //pSection->cchPreamble = 0; + *ppSectionHead = pSection; + return VINF_SUCCESS; + } + } + else + rc = VERR_NO_MEMORY; + RTFileReadAllFree(pbContent, cbContent); + } + *ppSectionHead = NULL; + return rc; +} + diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Runtime/common/crypto/pkcs7-asn1-decoder.cpp virtualbox-4.1.44-dfsg/src/VBox/Runtime/common/crypto/pkcs7-asn1-decoder.cpp --- virtualbox-4.1.12-dfsg/src/VBox/Runtime/common/crypto/pkcs7-asn1-decoder.cpp 1970-01-01 00:00:00.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Runtime/common/crypto/pkcs7-asn1-decoder.cpp 2015-11-11 15:08:59.000000000 +0000 @@ -0,0 +1,162 @@ +/* $Id: pkcs7-asn1-decoder.cpp $ */ +/** @file + * IPRT - Crypto - PKCS \#7, Decoder for ASN.1. + */ + +/* + * Copyright (C) 2006-2014 Oracle Corporation + * + * This file is part of VirtualBox Open Source Edition (OSE), as + * available from http://www.virtualbox.org. This file is free software; + * you can redistribute it and/or modify it under the terms of the GNU + * General Public License (GPL) as published by the Free Software + * Foundation, in version 2 as it comes in the "COPYING" file of the + * VirtualBox OSE distribution. VirtualBox OSE is distributed in the + * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind. + * + * The contents of this file may alternatively be used under the terms + * of the Common Development and Distribution License Version 1.0 + * (CDDL) only, as it comes in the "COPYING.CDDL" file of the + * VirtualBox OSE distribution, in which case the provisions of the + * CDDL are applicable instead of those of the GPL. + * + * You may elect to license modified versions of this file under the + * terms and conditions of either the GPL or the CDDL or both. + */ + + +/******************************************************************************* +* Header Files * +*******************************************************************************/ +#include "internal/iprt.h" +#include + +#include +#include +#include +#include + +#include "pkcs7-internal.h" + + +/* + * PKCS #7 ContentInfo + */ +typedef enum RTCRPKCS7CONTENTINFOCHOICE +{ + RTCRPKCS7CONTENTINFOCHOICE_INVALID = 0, + RTCRPKCS7CONTENTINFOCHOICE_UNKNOWN, + RTCRPKCS7CONTENTINFOCHOICE_SIGNED_DATA, + RTCRPKCS7CONTENTINFOCHOICE_SPC_INDIRECT_DATA_CONTENT, + RTCRPKCS7CONTENTINFOCHOICE_TSP_TST_INFO, + RTCRPKCS7CONTENTINFOCHOICE_END, + RTCRPKCS7CONTENTINFOCHOICE_32BIT_HACK = 0x7fffffff +} RTCRPKCS7CONTENTINFOCHOICE; + +static int rtCrPkcs7ContentInfo_DecodeExtra(PRTASN1CURSOR pCursor, uint32_t fFlags, PRTCRPKCS7CONTENTINFO pThis, + const char *pszErrorTag) +{ + pThis->u.pCore = NULL; + + /* + * Figure the type. + */ + RTCRPKCS7CONTENTINFOCHOICE enmChoice; + size_t cbContent = 0; + if (RTAsn1ObjId_CompareWithString(&pThis->ContentType, RTCRPKCS7SIGNEDDATA_OID) == 0) + { + enmChoice = RTCRPKCS7CONTENTINFOCHOICE_SIGNED_DATA; + cbContent = sizeof(*pThis->u.pSignedData); + } + else if (RTAsn1ObjId_CompareWithString(&pThis->ContentType, RTCRSPCINDIRECTDATACONTENT_OID) == 0) + { + enmChoice = RTCRPKCS7CONTENTINFOCHOICE_SPC_INDIRECT_DATA_CONTENT; + cbContent = sizeof(*pThis->u.pIndirectDataContent); + } + else if (RTAsn1ObjId_CompareWithString(&pThis->ContentType, RTCRTSPTSTINFO_OID) == 0) + { + enmChoice = RTCRPKCS7CONTENTINFOCHOICE_TSP_TST_INFO; + cbContent = sizeof(*pThis->u.pTstInfo); + } + else + { + enmChoice = RTCRPKCS7CONTENTINFOCHOICE_UNKNOWN; + cbContent = 0; + } + + int rc = VINF_SUCCESS; + if (enmChoice != RTCRPKCS7CONTENTINFOCHOICE_UNKNOWN) + { + /* + * Detect CMS octet string and open the content cursor. + * Current we don't have work with any contet which is octet string, + * they're all sequences, which make detection so much simpler. + */ + PRTASN1OCTETSTRING pOctetString = &pThis->Content; + RTASN1CURSOR ContentCursor; + rc = RTAsn1CursorInitSubFromCore(pCursor, &pThis->Content.Asn1Core, &ContentCursor, "Content"); + if ( RT_SUCCESS(rc) + && RTAsn1CursorIsNextEx(&ContentCursor, ASN1_TAG_OCTET_STRING, ASN1_TAGFLAG_PRIMITIVE | ASN1_TAGCLASS_UNIVERSAL)) + { + rc = RTAsn1MemAllocZ(&pThis->Content.EncapsulatedAllocation, (void **)&pThis->Content.pEncapsulated, + sizeof(*pOctetString)); + if (RT_SUCCESS(rc)) + { + pThis->pCmsContent = pOctetString = (PRTASN1OCTETSTRING)pThis->Content.pEncapsulated; + rc = RTAsn1OctetString_DecodeAsn1(&ContentCursor, 0, pOctetString, "CmsContent"); + if (RT_SUCCESS(rc)) + rc = RTAsn1CursorCheckEnd(&ContentCursor); + if (RT_SUCCESS(rc)) + rc = RTAsn1CursorInitSubFromCore(pCursor, &pOctetString->Asn1Core, &ContentCursor, "CmsContent"); + } + } + if (RT_SUCCESS(rc)) + { + /* + * Allocate memory for the decoded content. + */ + rc = RTAsn1MemAllocZ(&pOctetString->EncapsulatedAllocation, (void **)&pOctetString->pEncapsulated, cbContent); + if (RT_SUCCESS(rc)) + { + pThis->u.pCore = pOctetString->pEncapsulated; + + /* + * Decode it. + */ + switch (enmChoice) + { + case RTCRPKCS7CONTENTINFOCHOICE_SIGNED_DATA: + rc = RTCrPkcs7SignedData_DecodeAsn1(&ContentCursor, 0, pThis->u.pSignedData, "SignedData"); + break; + case RTCRPKCS7CONTENTINFOCHOICE_SPC_INDIRECT_DATA_CONTENT: + rc = RTCrSpcIndirectDataContent_DecodeAsn1(&ContentCursor, 0, pThis->u.pIndirectDataContent, + "IndirectDataContent"); + break; + case RTCRPKCS7CONTENTINFOCHOICE_TSP_TST_INFO: + rc = RTCrTspTstInfo_DecodeAsn1(&ContentCursor, 0, pThis->u.pTstInfo, "TstInfo"); + break; + default: + AssertFailed(); + rc = VERR_IPE_NOT_REACHED_DEFAULT_CASE; + break; + } + if (RT_SUCCESS(rc)) + rc = RTAsn1CursorCheckEnd(&ContentCursor); + if (RT_SUCCESS(rc)) + return VINF_SUCCESS; + + RTAsn1MemFree(&pOctetString->EncapsulatedAllocation, pOctetString->pEncapsulated); + pOctetString->pEncapsulated = NULL; + pThis->u.pCore = NULL; + } + } + } + return rc; +} + + +/* + * Generate the code. + */ +#include + diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Runtime/common/crypto/pkcs7-core.cpp virtualbox-4.1.44-dfsg/src/VBox/Runtime/common/crypto/pkcs7-core.cpp --- virtualbox-4.1.12-dfsg/src/VBox/Runtime/common/crypto/pkcs7-core.cpp 1970-01-01 00:00:00.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Runtime/common/crypto/pkcs7-core.cpp 2015-11-11 15:09:00.000000000 +0000 @@ -0,0 +1,202 @@ +/* $Id: pkcs7-core.cpp $ */ +/** @file + * IPRT - Crypto - PKCS \#7, Core APIs. + */ + +/* + * Copyright (C) 2006-2014 Oracle Corporation + * + * This file is part of VirtualBox Open Source Edition (OSE), as + * available from http://www.virtualbox.org. This file is free software; + * you can redistribute it and/or modify it under the terms of the GNU + * General Public License (GPL) as published by the Free Software + * Foundation, in version 2 as it comes in the "COPYING" file of the + * VirtualBox OSE distribution. VirtualBox OSE is distributed in the + * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind. + * + * The contents of this file may alternatively be used under the terms + * of the Common Development and Distribution License Version 1.0 + * (CDDL) only, as it comes in the "COPYING.CDDL" file of the + * VirtualBox OSE distribution, in which case the provisions of the + * CDDL are applicable instead of those of the GPL. + * + * You may elect to license modified versions of this file under the + * terms and conditions of either the GPL or the CDDL or both. + */ + + +/******************************************************************************* +* Header Files * +*******************************************************************************/ +#include "internal/iprt.h" +#include + +#include +#include +#include + +#include "pkcs7-internal.h" + + +/* + * PCKS #7 SignerInfo + */ + +RTDECL(PCRTASN1TIME) RTCrPkcs7SignerInfo_GetSigningTime(PCRTCRPKCS7SIGNERINFO pThis, PCRTCRPKCS7SIGNERINFO *ppSignerInfo) +{ + /* + * Check the immediate level, unless we're continuing a previous search. + * Note! We ASSUME a single signing time attribute, which simplifies the interface. + */ + uint32_t cAttrsLeft; + PCRTCRPKCS7ATTRIBUTE pAttr; + if (!ppSignerInfo || *ppSignerInfo == NULL) + { + cAttrsLeft = pThis->AuthenticatedAttributes.cItems; + pAttr = pThis->AuthenticatedAttributes.paItems; + while (cAttrsLeft-- > 0) + { + if ( pAttr->enmType == RTCRPKCS7ATTRIBUTETYPE_SIGNING_TIME + && pAttr->uValues.pSigningTime->cItems > 0) + { + if (ppSignerInfo) + *ppSignerInfo = pThis; + return &pAttr->uValues.pSigningTime->paItems[0]; + } + pAttr++; + } + } + else if (*ppSignerInfo == pThis) + *ppSignerInfo = NULL; + + /* + * Check counter signatures. + */ + cAttrsLeft = pThis->UnauthenticatedAttributes.cItems; + pAttr = pThis->UnauthenticatedAttributes.paItems; + while (cAttrsLeft-- > 0) + { + if (pAttr->enmType == RTCRPKCS7ATTRIBUTETYPE_COUNTER_SIGNATURES) + { + uint32_t cSignatures = pAttr->uValues.pCounterSignatures->cItems; + PCRTCRPKCS7SIGNERINFO pSignature = pAttr->uValues.pCounterSignatures->paItems; + + /* Skip past the previous counter signature. */ + if (ppSignerInfo && *ppSignerInfo != NULL) + while (cSignatures > 0) + { + cSignatures--; + if (pSignature == *ppSignerInfo) + { + *ppSignerInfo = NULL; + pSignature++; + break; + } + pSignature++; + } + + /* Search the counter signatures (if any remaining). */ + while (cSignatures-- > 0) + { + uint32_t cCounterAttrsLeft = pSignature->AuthenticatedAttributes.cItems; + PCRTCRPKCS7ATTRIBUTE pCounterAttr = pSignature->AuthenticatedAttributes.paItems; + while (cCounterAttrsLeft-- > 0) + { + if ( pCounterAttr->enmType == RTCRPKCS7ATTRIBUTETYPE_SIGNING_TIME + && pCounterAttr->uValues.pSigningTime->cItems > 0) + { + if (ppSignerInfo) + *ppSignerInfo = pSignature; + return &pCounterAttr->uValues.pSigningTime->paItems[0]; + } + pCounterAttr++; + } + pSignature++; + } + } + pAttr++; + } + + /* + * No signing timestamp found. + */ + if (ppSignerInfo) + *ppSignerInfo = NULL; + + return NULL; +} + + +RTDECL(PCRTASN1TIME) RTCrPkcs7SignerInfo_GetMsTimestamp(PCRTCRPKCS7SIGNERINFO pThis, PCRTCRPKCS7CONTENTINFO *ppContentInfo) +{ + /* + * Assume there is only one, so no need to enumerate anything here. + */ + uint32_t cAttrsLeft = pThis->UnauthenticatedAttributes.cItems; + PCRTCRPKCS7ATTRIBUTE pAttr = pThis->UnauthenticatedAttributes.paItems; + while (cAttrsLeft-- > 0) + { + if (pAttr->enmType == RTCRPKCS7ATTRIBUTETYPE_MS_TIMESTAMP) + { + uint32_t cLeft = pAttr->uValues.pContentInfos->cItems; + PCRTCRPKCS7CONTENTINFO pContentInfo = &pAttr->uValues.pContentInfos->paItems[0]; + while (cLeft-- > 0) + { + if (RTAsn1ObjId_CompareWithString(&pContentInfo->ContentType, RTCRPKCS7SIGNEDDATA_OID) == 0) + { + if (RTAsn1ObjId_CompareWithString(&pContentInfo->u.pSignedData->ContentInfo.ContentType, + RTCRTSPTSTINFO_OID) == 0) + { + if (ppContentInfo) + *ppContentInfo = pContentInfo; + return &pContentInfo->u.pSignedData->ContentInfo.u.pTstInfo->GenTime; + } + } + + pContentInfo++; + } + } + pAttr++; + } + + /* + * No signature was found. + */ + if (ppContentInfo) + *ppContentInfo = NULL; + + return NULL; +} + + +/* + * PCKS #7 ContentInfo. + */ + +RTDECL(bool) RTCrPkcs7ContentInfo_IsSignedData(PCRTCRPKCS7CONTENTINFO pThis) +{ + return RTAsn1ObjId_CompareWithString(&pThis->ContentType, RTCRPKCS7SIGNEDDATA_OID) == 0; +} + + +/* + * Set of some kind of certificate supported by PKCS #7 or CMS. + */ + +RTDECL(PCRTCRX509CERTIFICATE) +RTCrPkcs7SetOfCerts_FindX509ByIssuerAndSerialNumber(PCRTCRPKCS7SETOFCERTS pCertificates, + PCRTCRX509NAME pIssuer, PCRTASN1INTEGER pSerialNumber) +{ + for (uint32_t i = 0; i < pCertificates->cItems; i++) + if ( pCertificates->paItems[i].enmChoice == RTCRPKCS7CERTCHOICE_X509 + && RTCrX509Certificate_MatchIssuerAndSerialNumber(pCertificates->paItems[i].u.pX509Cert, pIssuer, pSerialNumber)) + return pCertificates->paItems[i].u.pX509Cert; + return NULL; +} + + +/* + * Generate the standard core code. + */ +#include + diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Runtime/common/crypto/pkcs7-init.cpp virtualbox-4.1.44-dfsg/src/VBox/Runtime/common/crypto/pkcs7-init.cpp --- virtualbox-4.1.12-dfsg/src/VBox/Runtime/common/crypto/pkcs7-init.cpp 1970-01-01 00:00:00.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Runtime/common/crypto/pkcs7-init.cpp 2015-11-11 15:09:00.000000000 +0000 @@ -0,0 +1,53 @@ +/* $Id: pkcs7-init.cpp $ */ +/** @file + * IPRT - Crypto - PKCS \#7, Initialization API. + */ + +/* + * Copyright (C) 2006-2014 Oracle Corporation + * + * This file is part of VirtualBox Open Source Edition (OSE), as + * available from http://www.virtualbox.org. This file is free software; + * you can redistribute it and/or modify it under the terms of the GNU + * General Public License (GPL) as published by the Free Software + * Foundation, in version 2 as it comes in the "COPYING" file of the + * VirtualBox OSE distribution. VirtualBox OSE is distributed in the + * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind. + * + * The contents of this file may alternatively be used under the terms + * of the Common Development and Distribution License Version 1.0 + * (CDDL) only, as it comes in the "COPYING.CDDL" file of the + * VirtualBox OSE distribution, in which case the provisions of the + * CDDL are applicable instead of those of the GPL. + * + * You may elect to license modified versions of this file under the + * terms and conditions of either the GPL or the CDDL or both. + */ + + +/******************************************************************************* +* Header Files * +*******************************************************************************/ +#include "internal/iprt.h" +#include + +#include +#include +#include + +#include "pkcs7-internal.h" + + +static int rtCrPkcs7ContentInfo_CloneExtra(PRTCRPKCS7CONTENTINFO pThis) +{ + pThis->u.pCore = pThis->Content.pEncapsulated; + return VINF_SUCCESS; +} + + +/* + * Generate the code. + */ +#include + + diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Runtime/common/crypto/pkcs7-internal.h virtualbox-4.1.44-dfsg/src/VBox/Runtime/common/crypto/pkcs7-internal.h --- virtualbox-4.1.12-dfsg/src/VBox/Runtime/common/crypto/pkcs7-internal.h 1970-01-01 00:00:00.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Runtime/common/crypto/pkcs7-internal.h 2015-11-11 15:09:00.000000000 +0000 @@ -0,0 +1,35 @@ +/* $Id: pkcs7-internal.h $ */ +/** @file + * IPRT - Crypto - PKCS \#7, Internal Header. + */ + +/* + * Copyright (C) 2006-2014 Oracle Corporation + * + * This file is part of VirtualBox Open Source Edition (OSE), as + * available from http://www.virtualbox.org. This file is free software; + * you can redistribute it and/or modify it under the terms of the GNU + * General Public License (GPL) as published by the Free Software + * Foundation, in version 2 as it comes in the "COPYING" file of the + * VirtualBox OSE distribution. VirtualBox OSE is distributed in the + * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind. + * + * The contents of this file may alternatively be used under the terms + * of the Common Development and Distribution License Version 1.0 + * (CDDL) only, as it comes in the "COPYING.CDDL" file of the + * VirtualBox OSE distribution, in which case the provisions of the + * CDDL are applicable instead of those of the GPL. + * + * You may elect to license modified versions of this file under the + * terms and conditions of either the GPL or the CDDL or both. + */ + + +#ifndef ___common_crypto_pkcs7_internal_h +#define ___common_crypto_pkcs7_internal_h + +#define RTASN1TMPL_TEMPLATE_FILE "../common/crypto/pkcs7-template.h" +#include + +#endif + diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Runtime/common/crypto/pkcs7-sanity.cpp virtualbox-4.1.44-dfsg/src/VBox/Runtime/common/crypto/pkcs7-sanity.cpp --- virtualbox-4.1.12-dfsg/src/VBox/Runtime/common/crypto/pkcs7-sanity.cpp 1970-01-01 00:00:00.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Runtime/common/crypto/pkcs7-sanity.cpp 2015-11-11 15:09:00.000000000 +0000 @@ -0,0 +1,207 @@ +/* $Id: pkcs7-sanity.cpp $ */ +/** @file + * IPRT - Crypto - PKCS \#7, Sanity Checkers. + */ + +/* + * Copyright (C) 2006-2014 Oracle Corporation + * + * This file is part of VirtualBox Open Source Edition (OSE), as + * available from http://www.virtualbox.org. This file is free software; + * you can redistribute it and/or modify it under the terms of the GNU + * General Public License (GPL) as published by the Free Software + * Foundation, in version 2 as it comes in the "COPYING" file of the + * VirtualBox OSE distribution. VirtualBox OSE is distributed in the + * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind. + * + * The contents of this file may alternatively be used under the terms + * of the Common Development and Distribution License Version 1.0 + * (CDDL) only, as it comes in the "COPYING.CDDL" file of the + * VirtualBox OSE distribution, in which case the provisions of the + * CDDL are applicable instead of those of the GPL. + * + * You may elect to license modified versions of this file under the + * terms and conditions of either the GPL or the CDDL or both. + */ + + +/******************************************************************************* +* Header Files * +*******************************************************************************/ +#include "internal/iprt.h" +#include + +#include +#include + +//#include + +#include "pkcs7-internal.h" + + +static int rtCrPkcs7SignedData_CheckSanityExtra(PCRTCRPKCS7SIGNEDDATA pSignedData, uint32_t fFlags, + PRTERRINFO pErrInfo, const char *pszErrorTag) +{ + bool const fAuthenticode = RT_BOOL(fFlags & RTCRPKCS7SIGNEDDATA_SANITY_F_AUTHENTICODE); + + //RTAsn1Dump(&pSignedData->SeqCore.Asn1Core, 0, 0, RTAsn1DumpStrmPrintfV, g_pStdOut); + + if ( RTAsn1Integer_UnsignedCompareWithU32(&pSignedData->Version, RTCRPKCS7SIGNEDDATA_V1) != 0 + && RTAsn1Integer_UnsignedCompareWithU32(&pSignedData->Version, RTCRPKCS7SIGNEDDATA_V3) != 0 + && RTAsn1Integer_UnsignedCompareWithU32(&pSignedData->Version, RTCRPKCS7SIGNEDDATA_V4) != 0 + && RTAsn1Integer_UnsignedCompareWithU32(&pSignedData->Version, RTCRPKCS7SIGNEDDATA_V5) != 0) + return RTErrInfoSetF(pErrInfo, VERR_CR_PKCS7_SIGNED_DATA_VERSION, "SignedData version is %llu, expected %u", + pSignedData->Version.uValue.u, RTCRPKCS7SIGNEDDATA_V1); + + /* + * DigestAlgorithms. + */ + if (pSignedData->DigestAlgorithms.cItems == 0) /** @todo this might be too strict */ + return RTErrInfoSet(pErrInfo, VERR_CR_PKCS7_SIGNED_DATA_NO_DIGEST_ALGOS, "SignedData.DigestAlgorithms is empty"); + if (pSignedData->DigestAlgorithms.cItems != 1 && fAuthenticode) + return RTErrInfoSetF(pErrInfo, VERR_CR_SPC_NOT_EXACTLY_ONE_DIGEST_ALGO, + "SignedData.DigestAlgorithms has more than one algorithm (%u)", + pSignedData->DigestAlgorithms.cItems); + + if (fFlags & RTCRPKCS7SIGNEDDATA_SANITY_F_ONLY_KNOWN_HASH) + for (uint32_t i = 0; i < pSignedData->DigestAlgorithms.cItems; i++) + { + if (RTCrX509AlgorithmIdentifier_QueryDigestType(&pSignedData->DigestAlgorithms.paItems[i]) == RTDIGESTTYPE_INVALID) + return RTErrInfoSetF(pErrInfo, VERR_CR_PKCS7_UNKNOWN_DIGEST_ALGORITHM, + "SignedData.DigestAlgorithms[%i] is not known: %s", + i, pSignedData->DigestAlgorithms.paItems[i].Algorithm.szObjId); + if (pSignedData->DigestAlgorithms.paItems[i].Parameters.enmType != RTASN1TYPE_NULL) + return RTErrInfoSetF(pErrInfo, VERR_CR_PKCS7_DIGEST_PARAMS_NOT_IMPL, + "SignedData.DigestAlgorithms[%i] has parameters: tag=%u", + i, pSignedData->DigestAlgorithms.paItems[i].Parameters.u.Core.uTag); + } + + /* + * Certificates. + */ + if ( (fFlags & RTCRPKCS7SIGNEDDATA_SANITY_F_SIGNING_CERT_PRESENT) + && pSignedData->Certificates.cItems == 0) + return RTErrInfoSet(pErrInfo, VERR_CR_PKCS7_NO_CERTIFICATES, + "SignedData.Certifcates is empty, expected at least one certificate"); + + /* + * Crls. + */ + if (fAuthenticode && RTAsn1Core_IsPresent(&pSignedData->Crls)) + return RTErrInfoSet(pErrInfo, VERR_CR_PKCS7_EXPECTED_NO_CRLS, + "SignedData.Crls is not empty as expected for authenticode."); + /** @todo check Crls when they become important. */ + + /* + * SignerInfos. + */ + if (pSignedData->SignerInfos.cItems == 0) + return RTErrInfoSet(pErrInfo, VERR_CR_PKCS7_NO_SIGNER_INFOS, "SignedData.SignerInfos is empty?"); + if (fAuthenticode && pSignedData->SignerInfos.cItems != 1) + return RTErrInfoSetF(pErrInfo, VERR_CR_PKCS7_EXPECTED_ONE_SIGNER_INFO, + "SignedData.SignerInfos should have one entry for authenticode: %u", + pSignedData->SignerInfos.cItems); + + for (uint32_t i = 0; i < pSignedData->SignerInfos.cItems; i++) + { + PCRTCRPKCS7SIGNERINFO pSignerInfo = &pSignedData->SignerInfos.paItems[i]; + + if (RTAsn1Integer_UnsignedCompareWithU32(&pSignerInfo->Version, RTCRPKCS7SIGNERINFO_V1) != 0) + return RTErrInfoSetF(pErrInfo, VERR_CR_PKCS7_SIGNER_INFO_VERSION, + "SignedData.SignerInfos[%u] version is %llu, expected %u", + pSignerInfo->Version.uValue.u, RTCRPKCS7SIGNERINFO_V1); + + /* IssuerAndSerialNumber. */ + int rc = RTCrX509Name_CheckSanity(&pSignerInfo->IssuerAndSerialNumber.Name, 0, pErrInfo, + "SignedData.SignerInfos[#].IssuerAndSerialNumber.Name"); + if (RT_FAILURE(rc)) + return rc; + + if (pSignerInfo->IssuerAndSerialNumber.SerialNumber.Asn1Core.cb == 0) + return RTErrInfoSetF(pErrInfo, VERR_CR_PKCS7_SIGNER_INFO_NO_ISSUER_SERIAL_NO, + "SignedData.SignerInfos[%u].IssuerAndSerialNumber.SerialNumber is missing (zero length)", i); + + PCRTCRX509CERTIFICATE pCert; + pCert = RTCrPkcs7SetOfCerts_FindX509ByIssuerAndSerialNumber(&pSignedData->Certificates, + &pSignerInfo->IssuerAndSerialNumber.Name, + &pSignerInfo->IssuerAndSerialNumber.SerialNumber); + if (!pCert && (fFlags & RTCRPKCS7SIGNEDDATA_SANITY_F_SIGNING_CERT_PRESENT)) + return RTErrInfoSetF(pErrInfo, VERR_CR_PKCS7_SIGNER_CERT_NOT_SHIPPED, + "SignedData.SignerInfos[%u].IssuerAndSerialNumber not found in T0.Certificates", i); + + /* DigestAlgorithm */ + uint32_t j = 0; + while ( j < pSignedData->DigestAlgorithms.cItems + && RTCrX509AlgorithmIdentifier_Compare(&pSignedData->DigestAlgorithms.paItems[j], + &pSignerInfo->DigestAlgorithm) != 0) + j++; + if (j >= pSignedData->DigestAlgorithms.cItems) + return RTErrInfoSetF(pErrInfo, VERR_CR_PKCS7_DIGEST_ALGO_NOT_FOUND_IN_LIST, + "SignedData.SignerInfos[%u].DigestAlgorithm (%s) not found in SignedData.DigestAlgorithms", + i, pSignerInfo->DigestAlgorithm.Algorithm.szObjId); + + /* Digest encryption algorithm. */ +#if 0 /** @todo Unimportant: Seen timestamp signatures specifying pkcs1-Sha256WithRsaEncryption in SignerInfo and just RSA in the certificate. Figure out how to compare the two. */ + if ( pCert + && RTCrX509AlgorithmIdentifier_Compare(&pSignerInfo->DigestEncryptionAlgorithm, + &pCert->TbsCertificate.SubjectPublicKeyInfo.Algorithm) != 0) + return RTErrInfoSetF(pErrInfo, VERR_CR_PKCS7_SIGNER_INFO_DIGEST_ENCRYPT_MISMATCH, + "SignedData.SignerInfos[%u].DigestEncryptionAlgorithm (%s) mismatch with certificate (%s)", + i, pSignerInfo->DigestEncryptionAlgorithm.Algorithm.szObjId, + pCert->TbsCertificate.SubjectPublicKeyInfo.Algorithm.Algorithm.szObjId); +#endif + + /* Authenticated attributes we know. */ + if (RTCrPkcs7Attributes_IsPresent(&pSignerInfo->AuthenticatedAttributes)) + { + bool fFoundContentInfo = false; + bool fFoundMessageDigest = false; + for (j = 0; j < pSignerInfo->AuthenticatedAttributes.cItems; j++) + { + PCRTCRPKCS7ATTRIBUTE pAttrib = &pSignerInfo->AuthenticatedAttributes.paItems[j]; + if (RTAsn1ObjId_CompareWithString(&pAttrib->Type, RTCR_PKCS9_ID_CONTENT_TYPE_OID) == 0) + { + if (fFoundContentInfo) + return RTErrInfoSet(pErrInfo, VERR_CR_PKCS7_MISSING_CONTENT_TYPE_ATTRIB, + "Multiple authenticated content-type attributes."); + fFoundContentInfo = true; + AssertReturn(pAttrib->enmType == RTCRPKCS7ATTRIBUTETYPE_OBJ_IDS, VERR_INTERNAL_ERROR_3); + if (pAttrib->uValues.pObjIds->cItems != 1) + return RTErrInfoSetF(pErrInfo, VERR_CR_PKCS7_BAD_CONTENT_TYPE_ATTRIB, + "Expected exactly one value for content-type attrib, found: %u", + pAttrib->uValues.pObjIds->cItems); + } + else if (RTAsn1ObjId_CompareWithString(&pAttrib->Type, RTCR_PKCS9_ID_MESSAGE_DIGEST_OID) == 0) + { + if (fFoundMessageDigest) + return RTErrInfoSet(pErrInfo, VERR_CR_PKCS7_MISSING_MESSAGE_DIGEST_ATTRIB, + "Multiple authenticated message-digest attributes."); + fFoundMessageDigest = true; + AssertReturn(pAttrib->enmType == RTCRPKCS7ATTRIBUTETYPE_OCTET_STRINGS, VERR_INTERNAL_ERROR_3); + if (pAttrib->uValues.pOctetStrings->cItems != 1) + return RTErrInfoSetF(pErrInfo, VERR_CR_PKCS7_BAD_CONTENT_TYPE_ATTRIB, + "Expected exactly one value for message-digest attrib, found: %u", + pAttrib->uValues.pOctetStrings->cItems); + } + else + AssertReturn(pAttrib->enmType == RTCRPKCS7ATTRIBUTETYPE_UNKNOWN, VERR_INTERNAL_ERROR_3); + } + + if (!fFoundContentInfo) + return RTErrInfoSet(pErrInfo, VERR_CR_PKCS7_MISSING_CONTENT_TYPE_ATTRIB, + "Missing authenticated content-type attribute."); + if (!fFoundMessageDigest) + return RTErrInfoSet(pErrInfo, VERR_CR_PKCS7_MISSING_MESSAGE_DIGEST_ATTRIB, + "Missing authenticated message-digest attribute."); + } + } + + return VINF_SUCCESS; +} + + +/* + * Generate the code. + */ +#include + diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Runtime/common/crypto/pkcs7-template.h virtualbox-4.1.44-dfsg/src/VBox/Runtime/common/crypto/pkcs7-template.h --- virtualbox-4.1.12-dfsg/src/VBox/Runtime/common/crypto/pkcs7-template.h 1970-01-01 00:00:00.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Runtime/common/crypto/pkcs7-template.h 2015-11-11 15:09:00.000000000 +0000 @@ -0,0 +1,220 @@ +/* $Id: pkcs7-template.h $ */ +/** @file + * IPRT - Crypto - PKCS \#7, Core APIs, Code Generator Template. + */ + +/* + * Copyright (C) 2006-2014 Oracle Corporation + * + * This file is part of VirtualBox Open Source Edition (OSE), as + * available from http://www.virtualbox.org. This file is free software; + * you can redistribute it and/or modify it under the terms of the GNU + * General Public License (GPL) as published by the Free Software + * Foundation, in version 2 as it comes in the "COPYING" file of the + * VirtualBox OSE distribution. VirtualBox OSE is distributed in the + * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind. + * + * The contents of this file may alternatively be used under the terms + * of the Common Development and Distribution License Version 1.0 + * (CDDL) only, as it comes in the "COPYING.CDDL" file of the + * VirtualBox OSE distribution, in which case the provisions of the + * CDDL are applicable instead of those of the GPL. + * + * You may elect to license modified versions of this file under the + * terms and conditions of either the GPL or the CDDL or both. + */ + +#define RTASN1TMPL_DECL RTDECL + +/* + * One PCKS #7 IssuerAndSerialNumber. + */ +#define RTASN1TMPL_TYPE RTCRPKCS7ISSUERANDSERIALNUMBER +#define RTASN1TMPL_EXT_NAME RTCrPkcs7IssuerAndSerialNumber +#define RTASN1TMPL_INT_NAME rtCrPkcs7IssuerAndSerialNumber +RTASN1TMPL_BEGIN_SEQCORE(); +RTASN1TMPL_MEMBER( Name, RTCRX509NAME, RTCrX509Name); +RTASN1TMPL_MEMBER( SerialNumber, RTASN1INTEGER, RTAsn1Integer); +RTASN1TMPL_END_SEQCORE(); +#undef RTASN1TMPL_TYPE +#undef RTASN1TMPL_EXT_NAME +#undef RTASN1TMPL_INT_NAME + + +/* + * One PCKS #7 Attribute. + */ +#define RTASN1TMPL_TYPE RTCRPKCS7ATTRIBUTE +#define RTASN1TMPL_EXT_NAME RTCrPkcs7Attribute +#define RTASN1TMPL_INT_NAME rtCrPkcs7Attribute +RTASN1TMPL_BEGIN_SEQCORE(); +RTASN1TMPL_MEMBER( Type, RTASN1OBJID, RTAsn1ObjId); +RTASN1TMPL_MEMBER_DYN_BEGIN(RTCRPKCS7ATTRIBUTETYPE, enmType, Allocation); +RTASN1TMPL_MEMBER_DYN( uValues, pOctetStrings, RTASN1SETOFOCTETSTRINGS, RTAsn1SetOfOctetStrings, Allocation, + enmType, RTCRPKCS7ATTRIBUTETYPE_OCTET_STRINGS, RTAsn1ObjId_CompareWithString(&pThis->Type, RTCR_PKCS9_ID_MESSAGE_DIGEST_OID) == 0); +RTASN1TMPL_MEMBER_DYN( uValues, pObjIds, RTASN1SETOFOBJIDS, RTAsn1SetOfObjIds, Allocation, + enmType, RTCRPKCS7ATTRIBUTETYPE_OBJ_IDS, RTAsn1ObjId_CompareWithString(&pThis->Type, RTCR_PKCS9_ID_CONTENT_TYPE_OID) == 0); +RTASN1TMPL_MEMBER_DYN( uValues, pCounterSignatures, RTCRPKCS7SINGERINFOS, RTCrPkcs7SignerInfos, Allocation, + enmType, RTCRPKCS7ATTRIBUTETYPE_COUNTER_SIGNATURES, RTAsn1ObjId_CompareWithString(&pThis->Type, RTCR_PKCS9_ID_COUNTER_SIGNATURE_OID) == 0); +RTASN1TMPL_MEMBER_DYN( uValues, pSigningTime, RTASN1SETOFTIMES, RTAsn1SetOfTimes, Allocation, + enmType, RTCRPKCS7ATTRIBUTETYPE_SIGNING_TIME, RTAsn1ObjId_CompareWithString(&pThis->Type, RTCR_PKCS9_ID_SIGNING_TIME_OID) == 0); +RTASN1TMPL_MEMBER_DYN( uValues, pContentInfos, RTCRPKCS7SETOFCONTENTINFOS, RTCrPkcs7SetOfContentInfos, Allocation, + enmType, RTCRPKCS7ATTRIBUTETYPE_MS_TIMESTAMP, RTAsn1ObjId_CompareWithString(&pThis->Type, RTCR_PKCS9_ID_MS_TIMESTAMP) == 0); +RTASN1TMPL_MEMBER_DYN_DEFAULT( uValues, pCores, RTASN1SETOFCORES, RTAsn1SetOfCores, Allocation, + enmType, RTCRPKCS7ATTRIBUTETYPE_UNKNOWN); +RTASN1TMPL_MEMBER_DYN_END(RTCRPKCS7ATTRIBUTETYPE, enmType, Allocation); +RTASN1TMPL_END_SEQCORE(); +#undef RTASN1TMPL_TYPE +#undef RTASN1TMPL_EXT_NAME +#undef RTASN1TMPL_INT_NAME + + +/* + * Set of PCKS #7 Attributes. + */ +#define RTASN1TMPL_TYPE RTCRPKCS7ATTRIBUTES +#define RTASN1TMPL_EXT_NAME RTCrPkcs7Attributes +#define RTASN1TMPL_INT_NAME rtCrPkcs7Attributes +RTASN1TMPL_SET_OF(RTCRPKCS7ATTRIBUTE, RTCrPkcs7Attribute); +#undef RTASN1TMPL_TYPE +#undef RTASN1TMPL_EXT_NAME +#undef RTASN1TMPL_INT_NAME + + +/* + * One PCKS #7 SignerInfo. + */ +#define RTASN1TMPL_TYPE RTCRPKCS7SIGNERINFO +#define RTASN1TMPL_EXT_NAME RTCrPkcs7SignerInfo +#define RTASN1TMPL_INT_NAME rtCrPkcs7SignerInfo +RTASN1TMPL_BEGIN_SEQCORE(); +RTASN1TMPL_MEMBER( Version, RTASN1INTEGER, RTAsn1Integer); +RTASN1TMPL_MEMBER( IssuerAndSerialNumber, RTCRPKCS7ISSUERANDSERIALNUMBER, RTCrPkcs7IssuerAndSerialNumber); +RTASN1TMPL_MEMBER( DigestAlgorithm, RTCRX509ALGORITHMIDENTIFIER, RTCrX509AlgorithmIdentifier); +RTASN1TMPL_MEMBER_OPT_ITAG( AuthenticatedAttributes, RTCRPKCS7ATTRIBUTES, RTCrPkcs7Attributes, 0); +RTASN1TMPL_MEMBER( DigestEncryptionAlgorithm, RTCRX509ALGORITHMIDENTIFIER, RTCrX509AlgorithmIdentifier); +RTASN1TMPL_MEMBER( EncryptedDigest, RTASN1OCTETSTRING, RTAsn1OctetString); +RTASN1TMPL_MEMBER_OPT_ITAG( UnauthenticatedAttributes, RTCRPKCS7ATTRIBUTES, RTCrPkcs7Attributes, 1); +RTASN1TMPL_END_SEQCORE(); +#undef RTASN1TMPL_TYPE +#undef RTASN1TMPL_EXT_NAME +#undef RTASN1TMPL_INT_NAME + + +/* + * Set of PCKS #7 SignerInfos. + */ +#define RTASN1TMPL_TYPE RTCRPKCS7SIGNERINFOS +#define RTASN1TMPL_EXT_NAME RTCrPkcs7SignerInfos +#define RTASN1TMPL_INT_NAME rtCrPkcs7SignerInfos +RTASN1TMPL_SET_OF(RTCRPKCS7SIGNERINFO, RTCrPkcs7SignerInfo); +#undef RTASN1TMPL_TYPE +#undef RTASN1TMPL_EXT_NAME +#undef RTASN1TMPL_INT_NAME + + +/* + * PCKS #7 SignedData. + */ +#define RTASN1TMPL_TYPE RTCRPKCS7SIGNEDDATA +#define RTASN1TMPL_EXT_NAME RTCrPkcs7SignedData +#define RTASN1TMPL_INT_NAME rtCrPkcs7SignedData +RTASN1TMPL_BEGIN_SEQCORE(); +RTASN1TMPL_MEMBER( Version, RTASN1INTEGER, RTAsn1Integer); +RTASN1TMPL_MEMBER( DigestAlgorithms, RTCRX509ALGORITHMIDENTIFIERS, RTCrX509AlgorithmIdentifiers); +RTASN1TMPL_MEMBER( ContentInfo, RTCRPKCS7CONTENTINFO, RTCrPkcs7ContentInfo); +RTASN1TMPL_MEMBER_OPT_ITAG( Certificates, RTCRPKCS7SETOFCERTS, RTCrPkcs7SetOfCerts, 0); +RTASN1TMPL_MEMBER_OPT_ITAG( Crls, RTASN1CORE, RTAsn1Core, 1); +RTASN1TMPL_MEMBER( SignerInfos, RTCRPKCS7SIGNERINFOS, RTCrPkcs7SignerInfos); +RTASN1TMPL_EXEC_CHECK_SANITY( rc = rtCrPkcs7SignedData_CheckSanityExtra(pThis, fFlags, pErrInfo, pszErrorTag) ) /* no ; */ +RTASN1TMPL_END_SEQCORE(); +#undef RTASN1TMPL_TYPE +#undef RTASN1TMPL_EXT_NAME +#undef RTASN1TMPL_INT_NAME + + +/* + * Set of PCKS #7 SignedData. + */ +#define RTASN1TMPL_TYPE RTCRPKCS7SETOFSIGNEDDATA +#define RTASN1TMPL_EXT_NAME RTCrPkcs7SetOfSignedData +#define RTASN1TMPL_INT_NAME rtCrPkcs7SetOfSignedData +RTASN1TMPL_SET_OF(RTCRPKCS7SIGNEDDATA, RTCrPkcs7SignedData); +#undef RTASN1TMPL_TYPE +#undef RTASN1TMPL_EXT_NAME +#undef RTASN1TMPL_INT_NAME + + +/* + * PCKS #7 DigestInfo. + */ +#define RTASN1TMPL_TYPE RTCRPKCS7DIGESTINFO +#define RTASN1TMPL_EXT_NAME RTCrPkcs7DigestInfo +#define RTASN1TMPL_INT_NAME rtCrPkcs7DigestInfo +RTASN1TMPL_BEGIN_SEQCORE(); +RTASN1TMPL_MEMBER( DigestAlgorithm, RTCRX509ALGORITHMIDENTIFIER, RTCrX509AlgorithmIdentifier); +RTASN1TMPL_MEMBER( Digest, RTASN1OCTETSTRING, RTAsn1OctetString); +RTASN1TMPL_END_SEQCORE(); +#undef RTASN1TMPL_TYPE +#undef RTASN1TMPL_EXT_NAME +#undef RTASN1TMPL_INT_NAME + + +/* + * PCKS #7 ContentInfo. + */ +#define RTASN1TMPL_TYPE RTCRPKCS7CONTENTINFO +#define RTASN1TMPL_EXT_NAME RTCrPkcs7ContentInfo +#define RTASN1TMPL_INT_NAME rtCrPkcs7ContentInfo +RTASN1TMPL_BEGIN_SEQCORE(); +RTASN1TMPL_MEMBER( ContentType, RTASN1OBJID, RTAsn1ObjId); +RTASN1TMPL_MEMBER_OPT_ITAG( Content, RTASN1OCTETSTRING, RTAsn1OctetString, 0); +RTASN1TMPL_EXEC_DECODE( rc = rtCrPkcs7ContentInfo_DecodeExtra(pCursor, fFlags, pThis, pszErrorTag)) /* no ; */ +RTASN1TMPL_EXEC_CLONE( rc = rtCrPkcs7ContentInfo_CloneExtra(pThis) ) /* no ; */ +RTASN1TMPL_END_SEQCORE(); +#undef RTASN1TMPL_TYPE +#undef RTASN1TMPL_EXT_NAME +#undef RTASN1TMPL_INT_NAME + + +/* + * Set of PCKS #7 ContentInfo. + */ +#define RTASN1TMPL_TYPE RTCRPKCS7SETOFCONTENTINFOS +#define RTASN1TMPL_EXT_NAME RTCrPkcs7SetOfContentInfos +#define RTASN1TMPL_INT_NAME rtCrPkcs7SetOfContentInfos +RTASN1TMPL_SET_OF(RTCRPKCS7CONTENTINFO, RTCrPkcs7ContentInfo); +#undef RTASN1TMPL_TYPE +#undef RTASN1TMPL_EXT_NAME +#undef RTASN1TMPL_INT_NAME + + +/* + * One PKCS #7 ExtendedCertificateOrCertificate or a CMS CertificateChoices (sic). + */ +#define RTASN1TMPL_TYPE RTCRPKCS7CERT +#define RTASN1TMPL_EXT_NAME RTCrPkcs7Cert +#define RTASN1TMPL_INT_NAME rtCrPkcs7Cert +RTASN1TMPL_BEGIN_PCHOICE(); +RTASN1TMPL_PCHOICE_ITAG_UC( ASN1_TAG_SEQUENCE, RTCRPKCS7CERTCHOICE_X509, u.pX509Cert, X509Cert, RTCRX509CERTIFICATE, RTCrX509Certificate); +RTASN1TMPL_PCHOICE_ITAG( 0, RTCRPKCS7CERTCHOICE_EXTENDED_PKCS6, u.pExtendedCert, ExtendedCert, RTASN1CORE, RTAsn1Core); +RTASN1TMPL_PCHOICE_ITAG( 1, RTCRPKCS7CERTCHOICE_AC_V1, u.pAcV1, AcV1, RTASN1CORE, RTAsn1Core); +RTASN1TMPL_PCHOICE_ITAG( 2, RTCRPKCS7CERTCHOICE_AC_V2, u.pAcV2, AcV2, RTASN1CORE, RTAsn1Core); +RTASN1TMPL_PCHOICE_ITAG( 3, RTCRPKCS7CERTCHOICE_OTHER, u.pOtherCert, OtherCert, RTASN1CORE, RTAsn1Core); +RTASN1TMPL_END_PCHOICE(); +#undef RTASN1TMPL_TYPE +#undef RTASN1TMPL_EXT_NAME +#undef RTASN1TMPL_INT_NAME + + +/* + * Set of PKCS #7 ExtendedCertificateOrCertificate or a CMS CertificateChoices. + */ +#define RTASN1TMPL_TYPE RTCRPKCS7SETOFCERTS +#define RTASN1TMPL_EXT_NAME RTCrPkcs7SetOfCerts +#define RTASN1TMPL_INT_NAME rtCrPkcs7SetOfCerts +RTASN1TMPL_SET_OF(RTCRPKCS7CERT, RTCrPkcs7Cert); +#undef RTASN1TMPL_TYPE +#undef RTASN1TMPL_EXT_NAME +#undef RTASN1TMPL_INT_NAME + diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Runtime/common/crypto/pkcs7-verify.cpp virtualbox-4.1.44-dfsg/src/VBox/Runtime/common/crypto/pkcs7-verify.cpp --- virtualbox-4.1.12-dfsg/src/VBox/Runtime/common/crypto/pkcs7-verify.cpp 1970-01-01 00:00:00.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Runtime/common/crypto/pkcs7-verify.cpp 2015-11-11 15:09:00.000000000 +0000 @@ -0,0 +1,776 @@ +/* $Id: pkcs7-verify.cpp $ */ +/** @file + * IPRT - Crypto - PKCS \#7, Verification + */ + +/* + * Copyright (C) 2006-2014 Oracle Corporation + * + * This file is part of VirtualBox Open Source Edition (OSE), as + * available from http://www.virtualbox.org. This file is free software; + * you can redistribute it and/or modify it under the terms of the GNU + * General Public License (GPL) as published by the Free Software + * Foundation, in version 2 as it comes in the "COPYING" file of the + * VirtualBox OSE distribution. VirtualBox OSE is distributed in the + * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind. + * + * The contents of this file may alternatively be used under the terms + * of the Common Development and Distribution License Version 1.0 + * (CDDL) only, as it comes in the "COPYING.CDDL" file of the + * VirtualBox OSE distribution, in which case the provisions of the + * CDDL are applicable instead of those of the GPL. + * + * You may elect to license modified versions of this file under the + * terms and conditions of either the GPL or the CDDL or both. + */ + + +/******************************************************************************* +* Header Files * +*******************************************************************************/ +#include "internal/iprt.h" +#include + +#include +#include +#include +#include +#include +#include + +#ifdef IPRT_WITH_OPENSSL +# include "internal/iprt-openssl.h" +# include +# include +# include +#endif + + + +#ifdef IPRT_WITH_OPENSSL +static int rtCrPkcs7VerifySignedDataUsingOpenSsl(PCRTCRPKCS7CONTENTINFO pContentInfo, uint32_t fFlags, + RTCRSTORE hAdditionalCerts, RTCRSTORE hTrustedCerts, + void const *pvContent, uint32_t cbContent, PRTERRINFO pErrInfo) +{ + /* + * Verify using OpenSSL. + */ + int rcOssl; + unsigned char const *pbRawContent = RTASN1CORE_GET_RAW_ASN1_PTR(&pContentInfo->SeqCore.Asn1Core); + PKCS7 *pOsslPkcs7 = NULL; + if (d2i_PKCS7(&pOsslPkcs7, &pbRawContent, RTASN1CORE_GET_RAW_ASN1_SIZE(&pContentInfo->SeqCore.Asn1Core)) == pOsslPkcs7) + { + STACK_OF(X509) *pAddCerts = NULL; + if (hAdditionalCerts != NIL_RTCRSTORE) + rcOssl = RTCrStoreConvertToOpenSslCertStack(hAdditionalCerts, 0, (void **)&pAddCerts); + else + { + pAddCerts = sk_X509_new_null(); + rcOssl = RT_LIKELY(pAddCerts != NULL) ? VINF_SUCCESS : VERR_NO_MEMORY; + } + if (RT_SUCCESS(rcOssl)) + { + PCRTCRPKCS7SETOFCERTS pCerts = &pContentInfo->u.pSignedData->Certificates; + for (uint32_t i = 0; i < pCerts->cItems; i++) + if (pCerts->paItems[i].enmChoice == RTCRPKCS7CERTCHOICE_X509) + rtCrOpenSslAddX509CertToStack(pAddCerts, pCerts->paItems[i].u.pX509Cert); + + + X509_STORE *pTrustedCerts = NULL; + if (hTrustedCerts != NIL_RTCRSTORE) + rcOssl = RTCrStoreConvertToOpenSslCertStore(hTrustedCerts, 0, (void **)&pTrustedCerts); + if (RT_SUCCESS(rcOssl)) + { + rtCrOpenSslInit(); + + BIO *pBioContent = BIO_new_mem_buf((void *)pvContent, cbContent); + if (pBioContent) + { + uint32_t fOsslFlags = PKCS7_NOCHAIN; + fOsslFlags |= PKCS7_NOVERIFY; // temporary hack. + if (PKCS7_verify(pOsslPkcs7, pAddCerts, pTrustedCerts, pBioContent, NULL /*out*/, fOsslFlags)) + rcOssl = VINF_SUCCESS; + else + { + rcOssl = RTErrInfoSet(pErrInfo, VERR_CR_PKCS7_OSSL_VERIFY_FAILED, "PKCS7_verify failed: "); + if (pErrInfo) + ERR_print_errors_cb(rtCrOpenSslErrInfoCallback, pErrInfo); + } + BIO_free(pBioContent); + } + if (pTrustedCerts) + X509_STORE_free(pTrustedCerts); + } + else + rcOssl = RTErrInfoSet(pErrInfo, rcOssl, "RTCrStoreConvertToOpenSslCertStack failed"); + if (pAddCerts) + sk_X509_pop_free(pAddCerts, X509_free); + } + else + rcOssl = RTErrInfoSet(pErrInfo, rcOssl, "RTCrStoreConvertToOpenSslCertStack failed"); + PKCS7_free(pOsslPkcs7); + } + else + rcOssl = RTErrInfoSet(pErrInfo, VERR_CR_PKCS7_OSSL_D2I_FAILED, "d2i_PKCS7 failed"); + + return rcOssl; +} +#endif /* IPRT_WITH_OPENSSL */ + + + +static int rtCrPkcs7VerifyCertUsageTimstamping(PCRTCRX509CERTIFICATE pCert, PRTERRINFO pErrInfo) +{ + if (!(pCert->TbsCertificate.T3.fFlags & RTCRX509TBSCERTIFICATE_F_PRESENT_EXT_KEY_USAGE)) + return RTErrInfoSetF(pErrInfo, VERR_CR_PKCS7_KEY_USAGE_MISMATCH, "No extended key usage certificate attribute."); + if (!(pCert->TbsCertificate.T3.fExtKeyUsage & (RTCRX509CERT_EKU_F_TIMESTAMPING | RTCRX509CERT_EKU_F_MS_TIMESTAMP_SIGNING))) + return RTErrInfoSetF(pErrInfo, VERR_CR_PKCS7_KEY_USAGE_MISMATCH, "fExtKeyUsage=%#x, missing %#x (time stamping)", + pCert->TbsCertificate.T3.fExtKeyUsage, + RTCRX509CERT_EKU_F_TIMESTAMPING | RTCRX509CERT_EKU_F_MS_TIMESTAMP_SIGNING); + return VINF_SUCCESS; +} + + +static int rtCrPkcs7VerifyCertUsageDigitalSignature(PCRTCRX509CERTIFICATE pCert, PRTERRINFO pErrInfo) +{ + if ( (pCert->TbsCertificate.T3.fFlags & RTCRX509TBSCERTIFICATE_F_PRESENT_KEY_USAGE) + && !(pCert->TbsCertificate.T3.fKeyUsage & RTCRX509CERT_KEY_USAGE_F_DIGITAL_SIGNATURE)) + return RTErrInfoSetF(pErrInfo, VERR_CR_PKCS7_KEY_USAGE_MISMATCH, "fKeyUsage=%#x, missing %#x", + pCert->TbsCertificate.T3.fKeyUsage, RTCRX509CERT_KEY_USAGE_F_DIGITAL_SIGNATURE); + return VINF_SUCCESS; +} + + +/** + * @callback_method_impl{RTCRPKCS7VERIFYCERTCALLBACK, + * Default implementation that checks for the DigitalSignature KeyUsage bit.} + */ +RTDECL(int) RTCrPkcs7VerifyCertCallbackDefault(PCRTCRX509CERTIFICATE pCert, RTCRX509CERTPATHS hCertPaths, uint32_t fFlags, + void *pvUser, PRTERRINFO pErrInfo) +{ + int rc = VINF_SUCCESS; + + if (fFlags & RTCRPKCS7VCC_F_SIGNED_DATA) + rc = rtCrPkcs7VerifyCertUsageDigitalSignature(pCert, pErrInfo); + + if ( (fFlags & RTCRPKCS7VCC_F_TIMESTAMP) + && RT_SUCCESS(rc)) + rc = rtCrPkcs7VerifyCertUsageTimstamping(pCert, pErrInfo); + + return rc; +} + + +/** + * @callback_method_impl{RTCRPKCS7VERIFYCERTCALLBACK, + * Standard code signing. Use this for Microsoft SPC.} + */ +RTDECL(int) RTCrPkcs7VerifyCertCallbackCodeSigning(PCRTCRX509CERTIFICATE pCert, RTCRX509CERTPATHS hCertPaths, uint32_t fFlags, + void *pvUser, PRTERRINFO pErrInfo) +{ + int rc = VINF_SUCCESS; + if (fFlags & RTCRPKCS7VCC_F_SIGNED_DATA) + { + /* + * If KeyUsage is present it must include digital signature. + */ + rc = rtCrPkcs7VerifyCertUsageDigitalSignature(pCert, pErrInfo); + if (RT_SUCCESS(rc)) + { + /* + * The extended usage 'code signing' must be present. + */ + if (!(pCert->TbsCertificate.T3.fFlags & RTCRX509TBSCERTIFICATE_F_PRESENT_EXT_KEY_USAGE)) + return RTErrInfoSetF(pErrInfo, VERR_CR_PKCS7_KEY_USAGE_MISMATCH, "No extended key usage certificate attribute."); + if (!(pCert->TbsCertificate.T3.fExtKeyUsage & RTCRX509CERT_EKU_F_CODE_SIGNING)) + return RTErrInfoSetF(pErrInfo, VERR_CR_PKCS7_KEY_USAGE_MISMATCH, "fExtKeyUsage=%#x, missing %#x", + pCert->TbsCertificate.T3.fExtKeyUsage, RTCRX509CERT_EKU_F_CODE_SIGNING); + } + } + + /* + * Timestamping too? + */ + if ( (fFlags & RTCRPKCS7VCC_F_TIMESTAMP) + && RT_SUCCESS(rc)) + rc = rtCrPkcs7VerifyCertUsageTimstamping(pCert, pErrInfo); + + return rc; +} + + +/** + * Deals with authenticated attributes. + * + * When authenticated attributes are present (checked by caller) we must: + * - fish out the content type and check it against the content inof, + * - fish out the message digest among and check it against *phDigest, + * - compute the message digest of the authenticated attributes and + * replace *phDigest with this for the signature verification. + * + * @returns IPRT status code. + * @param pSignerInfo The signer info being verified. + * @param pSignedData The signed data. + * @param phDigest On input this is the digest of the content. On + * output it will (on success) be a reference to + * the message digest of the authenticated + * attributes. The input reference is consumed. + * The caller shall release the output reference. + * @param fFlags Flags. + * @param pErrInfo Extended error info, optional. + */ +static int rtCrPkcs7VerifySignerInfoAuthAttribs(PCRTCRPKCS7SIGNERINFO pSignerInfo, PCRTCRPKCS7SIGNEDDATA pSignedData, + PRTCRDIGEST phDigest, uint32_t fFlags, PRTERRINFO pErrInfo) +{ + /* + * Scan the attributes and validate the two required attributes + * (RFC-2315, chapter 9.2, fourth bullet). Checking that we've got exactly + * one of each of them is checked by the santiy checker function, so we'll + * just assert that it did it's job here. + */ + uint32_t cContentTypes = 0; + uint32_t cMessageDigests = 0; + uint32_t i = pSignerInfo->AuthenticatedAttributes.cItems; + while (i-- > 0) + { + PCRTCRPKCS7ATTRIBUTE pAttrib = &pSignerInfo->AuthenticatedAttributes.paItems[i]; + + if (RTAsn1ObjId_CompareWithString(&pAttrib->Type, RTCR_PKCS9_ID_CONTENT_TYPE_OID) == 0) + { + AssertReturn(!cContentTypes, VERR_CR_PKCS7_INTERNAL_ERROR); + AssertReturn(pAttrib->enmType == RTCRPKCS7ATTRIBUTETYPE_OBJ_IDS, VERR_CR_PKCS7_INTERNAL_ERROR); + AssertReturn(pAttrib->uValues.pObjIds->cItems == 1, VERR_CR_PKCS7_INTERNAL_ERROR); + + if ( !(fFlags & RTCRPKCS7VERIFY_SD_F_COUNTER_SIGNATURE) /* See note about microsoft below. */ + && RTAsn1ObjId_Compare(&pAttrib->uValues.pObjIds->paItems[0], &pSignedData->ContentInfo.ContentType) != 0) + return RTErrInfoSetF(pErrInfo, VERR_CR_PKCS7_CONTENT_TYPE_ATTRIB_MISMATCH, + "Expected content-type %s, found %s", + &pAttrib->uValues.pObjIds->paItems[0], pSignedData->ContentInfo.ContentType.szObjId); + cContentTypes++; + } + else if (RTAsn1ObjId_CompareWithString(&pAttrib->Type, RTCR_PKCS9_ID_MESSAGE_DIGEST_OID) == 0) + { + AssertReturn(!cMessageDigests, VERR_CR_PKCS7_INTERNAL_ERROR); + AssertReturn(pAttrib->enmType == RTCRPKCS7ATTRIBUTETYPE_OCTET_STRINGS, VERR_CR_PKCS7_INTERNAL_ERROR); + AssertReturn(pAttrib->uValues.pOctetStrings->cItems == 1, VERR_CR_PKCS7_INTERNAL_ERROR); + + if (!RTCrDigestMatch(*phDigest, + pAttrib->uValues.pOctetStrings->paItems[0].Asn1Core.uData.pv, + pAttrib->uValues.pOctetStrings->paItems[0].Asn1Core.cb)) + { + size_t cbHash = RTCrDigestGetHashSize(*phDigest); + if (cbHash != pAttrib->uValues.pOctetStrings->paItems[0].Asn1Core.cb) + return RTErrInfoSetF(pErrInfo, VERR_CR_PKCS7_MESSAGE_DIGEST_ATTRIB_MISMATCH, + "Authenticated message-digest attribute mismatch: cbHash=%#zx cbValue=%#x", + cbHash, pAttrib->uValues.pOctetStrings->paItems[0].Asn1Core.cb); + return RTErrInfoSetF(pErrInfo, VERR_CR_PKCS7_MESSAGE_DIGEST_ATTRIB_MISMATCH, + "Authenticated message-digest attribute mismatch (cbHash=%#zx):\n" + "signed: %.*Rhxs\n" + "our: %.*Rhxs\n", + cbHash, + cbHash, pAttrib->uValues.pOctetStrings->paItems[0].Asn1Core.uData.pv, + cbHash, RTCrDigestGetHash(*phDigest)); + } + cMessageDigests++; + } + } + + /* + * Full error reporting here as we don't currently extensively santiy check + * counter signatures. + * Note! Microsoft includes content info in their timestamp counter signatures, + * at least for vista, despite the RFC-3852 stating counter signatures + * "MUST NOT contain a content-type". + */ + if (RT_UNLIKELY( cContentTypes != 1 + && !(fFlags & RTCRPKCS7VERIFY_SD_F_COUNTER_SIGNATURE))) + return RTErrInfoSet(pErrInfo, VERR_CR_PKCS7_MISSING_CONTENT_TYPE_ATTRIB, + "Missing authenticated content-type attribute."); + if (RT_UNLIKELY(cMessageDigests != 1)) + return RTErrInfoSet(pErrInfo, VERR_CR_PKCS7_MISSING_MESSAGE_DIGEST_ATTRIB, + "Missing authenticated message-digest attribute."); + + /* + * Calculate the digest of the the authenticated attributes for use in the + * signature validation. + */ + if ( pSignerInfo->DigestAlgorithm.Parameters.enmType != RTASN1TYPE_NULL + && pSignerInfo->DigestAlgorithm.Parameters.enmType != RTASN1TYPE_NOT_PRESENT) + return RTErrInfoSet(pErrInfo, VERR_CR_PKCS7_DIGEST_PARAMS_NOT_IMPL, "Digest algorithm has unsupported parameters"); + + RTCRDIGEST hDigest; + int rc = RTCrDigestCreateByObjId(&hDigest, &pSignerInfo->DigestAlgorithm.Algorithm); + if (RT_SUCCESS(rc)) + { + RTCrDigestRelease(*phDigest); + *phDigest = hDigest; + + /* ASSUMES that the attributes are encoded according to DER. */ + uint8_t const *pbData = (uint8_t const *)RTASN1CORE_GET_RAW_ASN1_PTR(&pSignerInfo->AuthenticatedAttributes.SetCore.Asn1Core); + uint32_t cbData = RTASN1CORE_GET_RAW_ASN1_SIZE(&pSignerInfo->AuthenticatedAttributes.SetCore.Asn1Core); + uint8_t bSetOfTag = ASN1_TAG_SET | ASN1_TAGCLASS_UNIVERSAL | ASN1_TAGFLAG_CONSTRUCTED; + rc = RTCrDigestUpdate(hDigest, &bSetOfTag, sizeof(bSetOfTag)); /* Replace the implict tag with a SET-OF tag. */ + if (RT_SUCCESS(rc)) + rc = RTCrDigestUpdate(hDigest, pbData + sizeof(bSetOfTag), cbData - sizeof(bSetOfTag)); /* Skip the implicit tag. */ + if (RT_SUCCESS(rc)) + rc = RTCrDigestFinal(hDigest, NULL, 0); + } + return rc; +} + + +/** + * Find the handle to the digest given by the specified SignerInfo. + * + * @returns IPRT status code + * @param phDigest Where to return a referenced digest handle on + * success. + * @param pSignedData The signed data structure. + * @param pSignerInfo The signer info. + * @param pahDigests Array of content digests that runs parallel to + * pSignedData->DigestAlgorithms. + * @param pErrInfo Where to store additional error details, + * optional. + */ +static int rtCrPkcs7VerifyFindDigest(PRTCRDIGEST phDigest, PCRTCRPKCS7SIGNEDDATA pSignedData, + PCRTCRPKCS7SIGNERINFO pSignerInfo, PRTCRDIGEST pahDigests, PRTERRINFO pErrInfo) +{ + uint32_t iDigest = pSignedData->DigestAlgorithms.cItems; + while (iDigest-- > 0) + if (RTCrX509AlgorithmIdentifier_Compare(&pSignedData->DigestAlgorithms.paItems[iDigest], + &pSignerInfo->DigestAlgorithm) == 0) + { + RTCRDIGEST hDigest = pahDigests[iDigest]; + uint32_t cRefs = RTCrDigestRetain(hDigest); + AssertReturn(cRefs != UINT32_MAX, VERR_CR_PKCS7_INTERNAL_ERROR); + *phDigest = hDigest; + return VINF_SUCCESS; + } + *phDigest = NIL_RTCRDIGEST; /* Make gcc happy. */ + return RTErrInfoSetF(pErrInfo, VERR_CR_PKCS7_DIGEST_ALGO_NOT_FOUND_IN_LIST, + "SignerInfo.DigestAlgorithm %s not found.", + pSignerInfo->DigestAlgorithm.Algorithm.szObjId); +} + + +/** + * Verifies one signature on a PKCS \#7 SignedData. + * + * @returns IPRT status code. + * @param pSignerInfo The signature. + * @param pSignedData The SignedData. + * @param hDigests The digest corresponding to + * pSignerInfo->DigestAlgorithm. + * @param fFlags Verficiation flags. + * @param hAdditionalCerts Store containing optional certificates, + * optional. + * @param hTrustedCerts Store containing trusted certificates, required. + * @param pValidationTime The time we're supposed to validate the + * certificates chains at. + * @param pfnVerifyCert Signing certificate verification callback. + * @param fVccFlags Signing certificate verification callback flags. + * @param pvUser Callback parameter. + * @param pErrInfo Where to store additional error details, + * optional. + */ +static int rtCrPkcs7VerifySignerInfo(PCRTCRPKCS7SIGNERINFO pSignerInfo, PCRTCRPKCS7SIGNEDDATA pSignedData, + RTCRDIGEST hDigest, uint32_t fFlags, RTCRSTORE hAdditionalCerts, RTCRSTORE hTrustedCerts, + PCRTTIMESPEC pValidationTime, PFNRTCRPKCS7VERIFYCERTCALLBACK pfnVerifyCert, + uint32_t fVccFlags, void *pvUser, PRTERRINFO pErrInfo) +{ + /* + * Locate the certificate used for signing. + */ + PCRTCRCERTCTX pSignerCertCtx = NULL; + PCRTCRX509CERTIFICATE pSignerCert = NULL; + RTCRSTORE hSignerCertSrc = hTrustedCerts; + if (hSignerCertSrc != NIL_RTCRSTORE) + pSignerCertCtx = RTCrStoreCertByIssuerAndSerialNo(hSignerCertSrc, &pSignerInfo->IssuerAndSerialNumber.Name, + &pSignerInfo->IssuerAndSerialNumber.SerialNumber); + if (!pSignerCertCtx) + { + hSignerCertSrc = hAdditionalCerts; + if (hSignerCertSrc != NIL_RTCRSTORE) + pSignerCertCtx = RTCrStoreCertByIssuerAndSerialNo(hSignerCertSrc, &pSignerInfo->IssuerAndSerialNumber.Name, + &pSignerInfo->IssuerAndSerialNumber.SerialNumber); + } + if (pSignerCertCtx) + pSignerCert = pSignerCertCtx->pCert; + else + { + hSignerCertSrc = NULL; + pSignerCert = RTCrPkcs7SetOfCerts_FindX509ByIssuerAndSerialNumber(&pSignedData->Certificates, + &pSignerInfo->IssuerAndSerialNumber.Name, + &pSignerInfo->IssuerAndSerialNumber.SerialNumber); + if (!pSignerCert) + return RTErrInfoSetF(pErrInfo, VERR_CR_PKCS7_SIGNED_DATA_CERT_NOT_FOUND, + "Certificate not found: serial=%.*Rhxs", + pSignerInfo->IssuerAndSerialNumber.SerialNumber.Asn1Core.cb, + pSignerInfo->IssuerAndSerialNumber.SerialNumber.Asn1Core.uData.pv); + } + + /* + * If not a trusted certificate, we'll have to build certificate paths + * and verify them. If no valid paths are found, this step will fail. + */ + int rc = VINF_SUCCESS; + if ( hSignerCertSrc == NIL_RTCRSTORE + || hSignerCertSrc != hTrustedCerts) + { + RTCRX509CERTPATHS hCertPaths; + rc = RTCrX509CertPathsCreate(&hCertPaths, pSignerCert); + if (RT_SUCCESS(rc)) + { + rc = RTCrX509CertPathsSetValidTimeSpec(hCertPaths, pValidationTime); + if (hTrustedCerts != NIL_RTCRSTORE && RT_SUCCESS(rc)) + rc = RTCrX509CertPathsSetTrustedStore(hCertPaths, hTrustedCerts); + if (hAdditionalCerts != NIL_RTCRSTORE && RT_SUCCESS(rc)) + rc = RTCrX509CertPathsSetUntrustedStore(hCertPaths, hAdditionalCerts); + if (pSignedData->Certificates.cItems > 0 && RT_SUCCESS(rc)) + rc = RTCrX509CertPathsSetUntrustedSet(hCertPaths, &pSignedData->Certificates); + if (RT_SUCCESS(rc)) + { + rc = RTCrX509CertPathsBuild(hCertPaths, pErrInfo); + if (RT_SUCCESS(rc)) + rc = RTCrX509CertPathsValidateAll(hCertPaths, NULL, pErrInfo); + + /* + * Check that the certificate purpose and whatnot matches what + * is being signed. + */ + if (RT_SUCCESS(rc)) + rc = pfnVerifyCert(pSignerCert, hCertPaths, fVccFlags, pvUser, pErrInfo); + } + else + RTErrInfoSetF(pErrInfo, rc, "Error configuring path builder: %Rrc", rc); + RTCrX509CertPathsRelease(hCertPaths); + } + } + /* + * Check that the certificate purpose matches what is signed. + */ + else + rc = pfnVerifyCert(pSignerCert, NIL_RTCRX509CERTPATHS, fVccFlags, pvUser, pErrInfo); + + /* + * Reference the digest so we can safely replace with one on the + * authenticated attributes below. + */ + if ( RT_SUCCESS(rc) + && RTCrDigestRetain(hDigest) != UINT32_MAX) + { + /* + * If there are authenticated attributes, we've got more work before we + * can verify the signature. + */ + if ( RT_SUCCESS(rc) + && RTCrPkcs7Attributes_IsPresent(&pSignerInfo->AuthenticatedAttributes)) + rc = rtCrPkcs7VerifySignerInfoAuthAttribs(pSignerInfo, pSignedData, &hDigest, fFlags, pErrInfo); + + /* + * Verify the signature. + */ + if (RT_SUCCESS(rc)) + { + RTCRPKIXSIGNATURE hSignature; + rc = RTCrPkixSignatureCreateByObjId(&hSignature, + &pSignerCert->TbsCertificate.SubjectPublicKeyInfo.Algorithm.Algorithm, + false /*fSigning*/, + &pSignerCert->TbsCertificate.SubjectPublicKeyInfo.SubjectPublicKey, + &pSignerInfo->DigestEncryptionAlgorithm.Parameters); + if (RT_SUCCESS(rc)) + { + /** @todo Check that DigestEncryptionAlgorithm is compatible with hSignature + * (this is not vital). */ + rc = RTCrPkixSignatureVerifyOctetString(hSignature, hDigest, &pSignerInfo->EncryptedDigest); + if (RT_FAILURE(rc)) + rc = RTErrInfoSetF(pErrInfo, VERR_CR_PKCS7_SIGNATURE_VERIFICATION_FAILED, + "Signature verficiation failed: %Rrc", rc); + RTCrPkixSignatureRelease(hSignature); + } + else + rc = RTErrInfoSetF(pErrInfo, rc, "Failure to instantiate public key algorithm [IPRT]: %s (%s)", + pSignerCert->TbsCertificate.SubjectPublicKeyInfo.Algorithm.Algorithm.szObjId, + pSignerInfo->DigestEncryptionAlgorithm.Algorithm.szObjId); + } + + RTCrDigestRelease(hDigest); + } + else if (RT_SUCCESS(rc)) + rc = VERR_CR_PKCS7_INTERNAL_ERROR; + RTCrCertCtxRelease(pSignerCertCtx); + return rc; +} + + +/** + * Verifies a counter signature. + * + * @returns IPRT status code. + * @param pCounterSignerInfo The counter signature. + * @param pPrimarySignerInfo The primary signature (can be a counter + * signature too if nested). + * @param pSignedData The SignedData. + * @param fFlags Verficiation flags. + * @param hAdditionalCerts Store containing optional certificates, + * optional. + * @param hTrustedCerts Store containing trusted certificates, required. + * @param pValidationTime The time we're supposed to validate the + * certificates chains at. + * @param pfnVerifyCert Signing certificate verification callback. + * @param fVccFlags Signing certificate verification callback flags. + * @param pvUser Callback parameter. + * @param pErrInfo Where to store additional error details, + * optional. + */ +static int rtCrPkcs7VerifyCounterSignerInfo(PCRTCRPKCS7SIGNERINFO pCounterSignerInfo, PCRTCRPKCS7SIGNERINFO pPrimarySignerInfo, + PCRTCRPKCS7SIGNEDDATA pSignedData, uint32_t fFlags, + RTCRSTORE hAdditionalCerts, RTCRSTORE hTrustedCerts, PCRTTIMESPEC pValidationTime, + PFNRTCRPKCS7VERIFYCERTCALLBACK pfnVerifyCert, uint32_t fVccFlags, + void *pvUser, PRTERRINFO pErrInfo) +{ + /* + * Calculate the digest we need to verify. + */ + RTCRDIGEST hDigest; + int rc = RTCrDigestCreateByObjId(&hDigest, &pCounterSignerInfo->DigestAlgorithm.Algorithm); + if (RT_SUCCESS(rc)) + { + rc = RTCrDigestUpdate(hDigest, + pPrimarySignerInfo->EncryptedDigest.Asn1Core.uData.pv, + pPrimarySignerInfo->EncryptedDigest.Asn1Core.cb); + if (RT_SUCCESS(rc)) + rc = RTCrDigestFinal(hDigest, NULL, 0); + if (RT_SUCCESS(rc)) + { + /* + * Pass it on to the common SignerInfo verifier function. + */ + rc = rtCrPkcs7VerifySignerInfo(pCounterSignerInfo, pSignedData, hDigest, + fFlags | RTCRPKCS7VERIFY_SD_F_COUNTER_SIGNATURE, + hAdditionalCerts, hTrustedCerts, pValidationTime, + pfnVerifyCert, fVccFlags, pvUser, pErrInfo); + + } + else + rc = RTErrInfoSetF(pErrInfo, VERR_CR_PKCS7_DIGEST_CALC_ERROR, + "Hashing for counter signature failed unexpectedly: %Rrc", rc); + RTCrDigestRelease(hDigest); + } + else + rc = RTErrInfoSetF(pErrInfo, VERR_CR_PKCS7_DIGEST_CREATE_ERROR, "Error creating digest for '%s': %Rrc", + pCounterSignerInfo->DigestAlgorithm.Algorithm.szObjId, rc); + + return rc; +} + + +RTDECL(int) RTCrPkcs7VerifySignedData(PCRTCRPKCS7CONTENTINFO pContentInfo, uint32_t fFlags, + RTCRSTORE hAdditionalCerts, RTCRSTORE hTrustedCerts, + PCRTTIMESPEC pValidationTime, PFNRTCRPKCS7VERIFYCERTCALLBACK pfnVerifyCert, void *pvUser, + PRTERRINFO pErrInfo) +{ + /* + * Check the input. + */ + if (pfnVerifyCert) + AssertPtrReturn(pfnVerifyCert, VERR_INVALID_POINTER); + else + pfnVerifyCert = RTCrPkcs7VerifyCertCallbackDefault; + + if (!RTCrPkcs7ContentInfo_IsSignedData(pContentInfo)) + return RTErrInfoSet(pErrInfo, VERR_CR_PKCS7_NOT_SIGNED_DATA, "Not PKCS #7 SignedData."); + PCRTCRPKCS7SIGNEDDATA pSignedData = pContentInfo->u.pSignedData; + int rc = RTCrPkcs7SignedData_CheckSanity(pSignedData, 0, pErrInfo, ""); + if (RT_FAILURE(rc)) + return rc; + + /* + * Hash the content info. + */ + /* Exactly what the content is, for some stupid reason unnecessarily + complicated. Figure it out here as we'll need it for the OpenSSL code + path as well. */ + void const *pvContent = pSignedData->ContentInfo.Content.Asn1Core.uData.pv; + uint32_t cbContent = pSignedData->ContentInfo.Content.Asn1Core.cb; + if (pSignedData->ContentInfo.Content.pEncapsulated) + { + pvContent = pSignedData->ContentInfo.Content.pEncapsulated->uData.pv; + cbContent = pSignedData->ContentInfo.Content.pEncapsulated->cb; + } + + /* Check that there aren't too many or too few hash algorithms for our + implementation and purposes. */ + RTCRDIGEST ahDigests[2]; + uint32_t const cDigests = pSignedData->DigestAlgorithms.cItems; + if (!cDigests) /** @todo we might have to support this... */ + return RTErrInfoSetF(pErrInfo, VERR_CR_PKCS7_NO_DIGEST_ALGORITHMS, "No digest algorithms"); + + if (cDigests > RT_ELEMENTS(ahDigests)) + return RTErrInfoSetF(pErrInfo, VERR_CR_PKCS7_TOO_MANY_DIGEST_ALGORITHMS, + "Too many digest algorithm: cAlgorithms=%u", cDigests); + + /* Create the message digest calculators. */ + rc = VERR_CR_PKCS7_NO_DIGEST_ALGORITHMS; + uint32_t i; + for (i = 0; i < cDigests; i++) + { + rc = RTCrDigestCreateByObjId(&ahDigests[i], &pSignedData->DigestAlgorithms.paItems[i].Algorithm); + if (RT_FAILURE(rc)) + { + rc = RTErrInfoSetF(pErrInfo, VERR_CR_PKCS7_DIGEST_CREATE_ERROR, "Error creating digest for '%s': %Rrc", + pSignedData->DigestAlgorithms.paItems[i].Algorithm.szObjId, rc); + break; + } + } + if (RT_SUCCESS(rc)) + { + /* Hash the content. */ + for (i = 0; i < cDigests && RT_SUCCESS(rc); i++) + { + rc = RTCrDigestUpdate(ahDigests[i], pvContent, cbContent); + if (RT_SUCCESS(rc)) + rc = RTCrDigestFinal(ahDigests[i], NULL, 0); + } + if (RT_SUCCESS(rc)) + { + /* + * Validate the signed infos. + */ + uint32_t fPrimaryVccFlags = !(fFlags & RTCRPKCS7VERIFY_SD_F_USAGE_TIMESTAMPING) + ? RTCRPKCS7VCC_F_SIGNED_DATA : RTCRPKCS7VCC_F_TIMESTAMP; + rc = VERR_CR_PKCS7_NO_SIGNER_INFOS; + for (i = 0; i < pSignedData->SignerInfos.cItems; i++) + { + PCRTCRPKCS7SIGNERINFO pSignerInfo = &pSignedData->SignerInfos.paItems[i]; + RTCRDIGEST hThisDigest = NIL_RTCRDIGEST; /* (gcc maybe incredible stupid.) */ + rc = rtCrPkcs7VerifyFindDigest(&hThisDigest, pSignedData, pSignerInfo, ahDigests, pErrInfo); + if (RT_FAILURE(rc)) + break; + + /* + * See if we can find a trusted signing time. + * (Note that while it would make sense splitting up this function, + * we need to carry a lot of arguments around, so better not.) + */ + bool fDone = false; + PCRTCRPKCS7SIGNERINFO pSigningTimeSigner = NULL; + PCRTASN1TIME pSignedTime; + while ( !fDone + && (pSignedTime = RTCrPkcs7SignerInfo_GetSigningTime(pSignerInfo, &pSigningTimeSigner)) != NULL) + { + RTTIMESPEC ThisValidationTime; + if (RT_LIKELY(RTTimeImplode(&ThisValidationTime, &pSignedTime->Time))) + { + if (pSigningTimeSigner == pSignerInfo) + { + if (fFlags & RTCRPKCS7VERIFY_SD_F_COUNTER_SIGNATURE_SIGNING_TIME_ONLY) + continue; + rc = rtCrPkcs7VerifySignerInfo(pSignerInfo, pSignedData, hThisDigest, fFlags, + hAdditionalCerts, hTrustedCerts, &ThisValidationTime, + pfnVerifyCert, fPrimaryVccFlags | RTCRPKCS7VCC_F_TIMESTAMP, + pvUser, pErrInfo); + } + else + { + rc = VINF_SUCCESS; + if (!(fFlags & RTCRPKCS7VERIFY_SD_F_USE_SIGNING_TIME_UNVERIFIED)) + rc = rtCrPkcs7VerifyCounterSignerInfo(pSigningTimeSigner, pSignerInfo, pSignedData, fFlags, + hAdditionalCerts, hTrustedCerts, &ThisValidationTime, + pfnVerifyCert, RTCRPKCS7VCC_F_TIMESTAMP, pvUser, pErrInfo); + if (RT_SUCCESS(rc)) + rc = rtCrPkcs7VerifySignerInfo(pSignerInfo, pSignedData, hThisDigest, fFlags, hAdditionalCerts, + hTrustedCerts, &ThisValidationTime, + pfnVerifyCert, fPrimaryVccFlags, pvUser, pErrInfo); + } + fDone = RT_SUCCESS(rc) + || (fFlags & RTCRPKCS7VERIFY_SD_F_ALWAYS_USE_SIGNING_TIME_IF_PRESENT); + } + else + { + rc = RTErrInfoSet(pErrInfo, VERR_INTERNAL_ERROR_3, "RTTimeImplode failed"); + fDone = true; + } + } + + /* + * If not luck, check for microsoft timestamp counter signatures. + */ + if (!fDone && !(fFlags & RTCRPKCS7VERIFY_SD_F_IGNORE_MS_TIMESTAMP)) + { + PCRTCRPKCS7CONTENTINFO pSignedTimestamp = NULL; + pSignedTime = RTCrPkcs7SignerInfo_GetMsTimestamp(pSignerInfo, &pSignedTimestamp); + if (pSignedTime) + { + RTTIMESPEC ThisValidationTime; + if (RT_LIKELY(RTTimeImplode(&ThisValidationTime, &pSignedTime->Time))) + { + rc = VINF_SUCCESS; + if (!(fFlags & RTCRPKCS7VERIFY_SD_F_USE_MS_TIMESTAMP_UNVERIFIED)) + rc = RTCrPkcs7VerifySignedData(pSignedTimestamp, + fFlags | RTCRPKCS7VERIFY_SD_F_IGNORE_MS_TIMESTAMP + | RTCRPKCS7VERIFY_SD_F_USAGE_TIMESTAMPING, + hAdditionalCerts, hTrustedCerts, &ThisValidationTime, + pfnVerifyCert, pvUser, pErrInfo); + + if (RT_SUCCESS(rc)) + rc = rtCrPkcs7VerifySignerInfo(pSignerInfo, pSignedData, hThisDigest, fFlags, hAdditionalCerts, + hTrustedCerts, &ThisValidationTime, + pfnVerifyCert, fPrimaryVccFlags, pvUser, pErrInfo); + fDone = RT_SUCCESS(rc) + || (fFlags & RTCRPKCS7VERIFY_SD_F_ALWAYS_USE_MS_TIMESTAMP_IF_PRESENT); + } + else + { + rc = RTErrInfoSet(pErrInfo, VERR_INTERNAL_ERROR_3, "RTTimeImplode failed"); + fDone = true; + } + + } + } + + /* + * No valid signing time found, use the one specified instead. + */ + if (!fDone) + rc = rtCrPkcs7VerifySignerInfo(pSignerInfo, pSignedData, hThisDigest, fFlags, hAdditionalCerts, hTrustedCerts, + pValidationTime, pfnVerifyCert, fPrimaryVccFlags, pvUser, pErrInfo); + RTCrDigestRelease(hThisDigest); + if (RT_FAILURE(rc)) + break; + } + } + else + rc = RTErrInfoSetF(pErrInfo, VERR_CR_PKCS7_DIGEST_CALC_ERROR, + "Hashing content failed unexpectedly (i=%u): %Rrc", i, rc); + + /* Clean up digests. */ + i = cDigests; + } + while (i-- > 0) + { + int rc2 = RTCrDigestRelease(ahDigests[i]); + AssertRC(rc2); + } + + +#ifdef IPRT_WITH_OPENSSL + /* + * Verify using OpenSSL and combine the results (should be identical). + */ + /** @todo figure out how to verify MS timstamp signatures using OpenSSL. */ + if (fFlags & RTCRPKCS7VERIFY_SD_F_USAGE_TIMESTAMPING) + return rc; + int rcOssl = rtCrPkcs7VerifySignedDataUsingOpenSsl(pContentInfo, fFlags, hAdditionalCerts, hTrustedCerts, + pvContent, cbContent, RT_SUCCESS(rc) ? pErrInfo : NULL); + if (RT_SUCCESS(rcOssl) && RT_SUCCESS(rc)) + return rc; +// AssertMsg(RT_FAILURE_NP(rcOssl) && RT_FAILURE_NP(rc), ("%Rrc, %Rrc\n", rcOssl, rc)); + if (RT_FAILURE(rc)) + return rc; + return rcOssl; +#else + return rc; +#endif +} + diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Runtime/common/crypto/pkix-signature-builtin.cpp virtualbox-4.1.44-dfsg/src/VBox/Runtime/common/crypto/pkix-signature-builtin.cpp --- virtualbox-4.1.12-dfsg/src/VBox/Runtime/common/crypto/pkix-signature-builtin.cpp 1970-01-01 00:00:00.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Runtime/common/crypto/pkix-signature-builtin.cpp 2015-11-11 15:09:00.000000000 +0000 @@ -0,0 +1,139 @@ +/* $Id: pkix-signature-builtin.cpp $ */ +/** @file + * IPRT - Crypto - Public Key Signature Schemas, Built-in providers. + */ + +/* + * Copyright (C) 2006-2014 Oracle Corporation + * + * This file is part of VirtualBox Open Source Edition (OSE), as + * available from http://www.virtualbox.org. This file is free software; + * you can redistribute it and/or modify it under the terms of the GNU + * General Public License (GPL) as published by the Free Software + * Foundation, in version 2 as it comes in the "COPYING" file of the + * VirtualBox OSE distribution. VirtualBox OSE is distributed in the + * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind. + * + * The contents of this file may alternatively be used under the terms + * of the Common Development and Distribution License Version 1.0 + * (CDDL) only, as it comes in the "COPYING.CDDL" file of the + * VirtualBox OSE distribution, in which case the provisions of the + * CDDL are applicable instead of those of the GPL. + * + * You may elect to license modified versions of this file under the + * terms and conditions of either the GPL or the CDDL or both. + */ + + +/******************************************************************************* +* Header Files * +*******************************************************************************/ +#include "internal/iprt.h" +#include + +#include +#include + +#ifdef IPRT_WITH_OPENSSL +# include "internal/iprt-openssl.h" +# include +#endif + +#include "pkix-signature-builtin.h" + + +/******************************************************************************* +* Global Variables * +*******************************************************************************/ +/** + * Array of built in message digest vtables. + */ +static PCRTCRPKIXSIGNATUREDESC const g_apPkixSignatureDescriptors[] = +{ + &g_rtCrPkixSigningHashWithRsaDesc, +}; + + + +PCRTCRPKIXSIGNATUREDESC RTCrPkixSignatureFindByObjIdString(const char *pszObjId, void **ppvOpaque) +{ + if (ppvOpaque) + *ppvOpaque = NULL; + + /* + * Primary OIDs. + */ + uint32_t i = RT_ELEMENTS(g_apPkixSignatureDescriptors); + while (i-- > 0) + if (strcmp(g_apPkixSignatureDescriptors[i]->pszObjId, pszObjId) == 0) + return g_apPkixSignatureDescriptors[i]; + + /* + * Alias OIDs. + */ + i = RT_ELEMENTS(g_apPkixSignatureDescriptors); + while (i-- > 0) + { + const char * const *ppszAliases = g_apPkixSignatureDescriptors[i]->papszObjIdAliases; + if (ppszAliases) + for (; *ppszAliases; ppszAliases++) + if (strcmp(*ppszAliases, pszObjId) == 0) + return g_apPkixSignatureDescriptors[i]; + } + +#if 0//def IPRT_WITH_OPENSSL + /* + * Try EVP and see if it knows the algorithm. + */ + if (ppvOpaque) + { + rtCrOpenSslInit(); + int iAlgoNid = OBJ_txt2nid(pszObjId); + if (iAlgoNid != NID_undef) + { + const char *pszAlogSn = OBJ_nid2sn(iAlgoNid); + const EVP_MD *pEvpMdType = EVP_get_digestbyname(pszAlogSn); + if (pEvpMdType) + { + /* + * Return the OpenSSL provider descriptor and the EVP_MD address. + */ + Assert(pEvpMdType->md_size); + *ppvOpaque = (void *)pEvpMdType; + return &g_rtCrPkixSignatureOpenSslDesc; + } + } + } +#endif + return NULL; +} + + +PCRTCRPKIXSIGNATUREDESC RTCrPkixSignatureFindByObjId(PCRTASN1OBJID pObjId, void **ppvOpaque) +{ + return RTCrPkixSignatureFindByObjIdString(pObjId->szObjId, ppvOpaque); +} + + +RTDECL(int) RTCrPkixSignatureCreateByObjIdString(PRTCRPKIXSIGNATURE phSignature, const char *pszObjId, bool fSigning, + PCRTASN1BITSTRING pKey,PCRTASN1DYNTYPE pParams) +{ + void *pvOpaque; + PCRTCRPKIXSIGNATUREDESC pDesc = RTCrPkixSignatureFindByObjIdString(pszObjId, &pvOpaque); + if (pDesc) + return RTCrPkixSignatureCreate(phSignature, pDesc, pvOpaque, fSigning, pKey, pParams); + return VERR_NOT_FOUND; +} + + +RTDECL(int) RTCrPkixSignatureCreateByObjId(PRTCRPKIXSIGNATURE phSignature, PCRTASN1OBJID pObjId, bool fSigning, + PCRTASN1BITSTRING pKey, PCRTASN1DYNTYPE pParams) +{ + void *pvOpaque; + PCRTCRPKIXSIGNATUREDESC pDesc = RTCrPkixSignatureFindByObjId(pObjId, &pvOpaque); + if (pDesc) + return RTCrPkixSignatureCreate(phSignature, pDesc, pvOpaque, fSigning, pKey, pParams); + return VERR_NOT_FOUND; +} + + diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Runtime/common/crypto/pkix-signature-builtin.h virtualbox-4.1.44-dfsg/src/VBox/Runtime/common/crypto/pkix-signature-builtin.h --- virtualbox-4.1.12-dfsg/src/VBox/Runtime/common/crypto/pkix-signature-builtin.h 1970-01-01 00:00:00.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Runtime/common/crypto/pkix-signature-builtin.h 2015-11-11 15:09:00.000000000 +0000 @@ -0,0 +1,36 @@ +/* $Id: pkix-signature-builtin.h $ */ +/** @file + * IPRT - Crypto - Public Key Signature Schemas, Built-in providers. + */ + +/* + * Copyright (C) 2006-2014 Oracle Corporation + * + * This file is part of VirtualBox Open Source Edition (OSE), as + * available from http://www.virtualbox.org. This file is free software; + * you can redistribute it and/or modify it under the terms of the GNU + * General Public License (GPL) as published by the Free Software + * Foundation, in version 2 as it comes in the "COPYING" file of the + * VirtualBox OSE distribution. VirtualBox OSE is distributed in the + * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind. + * + * The contents of this file may alternatively be used under the terms + * of the Common Development and Distribution License Version 1.0 + * (CDDL) only, as it comes in the "COPYING.CDDL" file of the + * VirtualBox OSE distribution, in which case the provisions of the + * CDDL are applicable instead of those of the GPL. + * + * You may elect to license modified versions of this file under the + * terms and conditions of either the GPL or the CDDL or both. + */ + + +#ifndef ___common_crypto_pkix_signature_builtin_h +#define ___common_crypto_pkix_signature_builtin_h + +#include + +extern DECLHIDDEN(RTCRPKIXSIGNATUREDESC const) g_rtCrPkixSigningHashWithRsaDesc; + +#endif + diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Runtime/common/crypto/pkix-signature-core.cpp virtualbox-4.1.44-dfsg/src/VBox/Runtime/common/crypto/pkix-signature-core.cpp --- virtualbox-4.1.12-dfsg/src/VBox/Runtime/common/crypto/pkix-signature-core.cpp 1970-01-01 00:00:00.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Runtime/common/crypto/pkix-signature-core.cpp 2015-11-11 15:09:00.000000000 +0000 @@ -0,0 +1,274 @@ +/* $Id: pkix-signature-core.cpp $ */ +/** @file + * IPRT - Crypto - Public Key Signature Schema Algorithm, Core API. + */ + +/* + * Copyright (C) 2006-2014 Oracle Corporation + * + * This file is part of VirtualBox Open Source Edition (OSE), as + * available from http://www.virtualbox.org. This file is free software; + * you can redistribute it and/or modify it under the terms of the GNU + * General Public License (GPL) as published by the Free Software + * Foundation, in version 2 as it comes in the "COPYING" file of the + * VirtualBox OSE distribution. VirtualBox OSE is distributed in the + * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind. + * + * The contents of this file may alternatively be used under the terms + * of the Common Development and Distribution License Version 1.0 + * (CDDL) only, as it comes in the "COPYING.CDDL" file of the + * VirtualBox OSE distribution, in which case the provisions of the + * CDDL are applicable instead of those of the GPL. + * + * You may elect to license modified versions of this file under the + * terms and conditions of either the GPL or the CDDL or both. + */ + + +/******************************************************************************* +* Header Files * +*******************************************************************************/ +#include "internal/iprt.h" +#include + +#include +#include +#include +#include +#include +#include + + +/******************************************************************************* +* Structures and Typedefs * +*******************************************************************************/ +/** + * Generic public key signature scheme instance. + */ +typedef struct RTCRPKIXSIGNATUREINT +{ + /** Magic value (RTCRPKIXSIGNATUREINT_MAGIC). */ + uint32_t u32Magic; + /** Reference counter. */ + uint32_t volatile cRefs; + /** Pointer to the message digest descriptor. */ + PCRTCRPKIXSIGNATUREDESC pDesc; + /** The operation this instance is licensed for. */ + bool fSigning; + /** State. */ + uint32_t uState; +#if ARCH_BITS == 32 + uint32_t uPadding; +#endif + + /** Opaque data specific to the message digest algorithm, size given by + * RTCRPKIXSIGNATUREDESC::cbState. */ + uint8_t abState[1]; +} RTCRPKIXSIGNATUREINT; +AssertCompileMemberAlignment(RTCRPKIXSIGNATUREINT, abState, 8); +/** Pointer to a public key algorithm instance. */ +typedef RTCRPKIXSIGNATUREINT *PRTCRPKIXSIGNATUREINT; + +/** Magic value for RTCRPKIXSIGNATUREINT::u32Magic (Baley Withfield Diffie). */ +#define RTCRPKIXSIGNATUREINT_MAGIC UINT32_C(0x19440605) + +/** @name RTCRPKIXSIGNATUREINT::uState values. + * @{ */ +/** Ready to go. */ +#define RTCRPKIXSIGNATURE_STATE_READY UINT32_C(1) +/** Need reset. */ +#define RTCRPKIXSIGNATURE_STATE_DONE UINT32_C(2) +/** Busted state, can happen after re-init. */ +#define RTCRPKIXSIGNATURE_STATE_BUSTED UINT32_C(3) +/** @} */ + + + +RTDECL(int) RTCrPkixSignatureCreate(PRTCRPKIXSIGNATURE phSignature, PCRTCRPKIXSIGNATUREDESC pDesc, void *pvOpaque, + bool fSigning, PCRTASN1BITSTRING pKey, PCRTASN1DYNTYPE pParams) +{ + /* + * Validate input. + */ + AssertPtrReturn(phSignature, VERR_INVALID_POINTER); + AssertPtrReturn(pDesc, VERR_INVALID_POINTER); + AssertPtrReturn(pKey, VERR_INVALID_POINTER); + AssertReturn(RTAsn1BitString_IsPresent(pKey), VERR_INVALID_PARAMETER); + if (pParams) + { + AssertPtrReturn(pParams, VERR_INVALID_POINTER); + if ( pParams->enmType == RTASN1TYPE_NULL + || !RTASN1CORE_IS_PRESENT(&pParams->u.Core)) + pParams = NULL; + } + + /* + * Instantiate the algorithm for the given operation. + */ + int rc = VINF_SUCCESS; + PRTCRPKIXSIGNATUREINT pThis = (PRTCRPKIXSIGNATUREINT)RTMemAllocZ(RT_OFFSETOF(RTCRPKIXSIGNATUREINT, abState[pDesc->cbState])); + if (pThis) + { + pThis->u32Magic = RTCRPKIXSIGNATUREINT_MAGIC; + pThis->cRefs = 1; + pThis->pDesc = pDesc; + pThis->fSigning = fSigning; + pThis->uState = RTCRPKIXSIGNATURE_STATE_READY; + if (pDesc->pfnInit) + rc = pDesc->pfnInit(pDesc, pThis->abState, pvOpaque, fSigning, pKey, pParams); + if (RT_SUCCESS(rc)) + { + *phSignature = pThis; + return VINF_SUCCESS; + } + pThis->u32Magic = 0; + RTMemFree(pThis); + } + else + rc = VERR_NO_MEMORY; + return rc; + +} + + +RTDECL(uint32_t) RTCrPkixSignatureRetain(RTCRPKIXSIGNATURE hSignature) +{ + PRTCRPKIXSIGNATUREINT pThis = hSignature; + AssertPtrReturn(pThis, UINT32_MAX); + AssertReturn(pThis->u32Magic == RTCRPKIXSIGNATUREINT_MAGIC, UINT32_MAX); + + uint32_t cRefs = ASMAtomicIncU32(&pThis->cRefs); + Assert(cRefs < 64); + return cRefs; +} + + +RTDECL(uint32_t) RTCrPkixSignatureRelease(RTCRPKIXSIGNATURE hSignature) +{ + PRTCRPKIXSIGNATUREINT pThis = hSignature; + if (pThis == NIL_RTCRPKIXSIGNATURE) + return 0; + AssertPtrReturn(pThis, UINT32_MAX); + AssertReturn(pThis->u32Magic == RTCRPKIXSIGNATUREINT_MAGIC, UINT32_MAX); + + uint32_t cRefs = ASMAtomicDecU32(&pThis->cRefs); + Assert(cRefs < 64); + if (!cRefs) + { + pThis->u32Magic = ~RTCRPKIXSIGNATUREINT_MAGIC; + if (pThis->pDesc->pfnDelete) + pThis->pDesc->pfnDelete(pThis->pDesc, pThis->abState, pThis->fSigning); + + size_t cbToWipe = RT_OFFSETOF(RTCRPKIXSIGNATUREINT, abState[pThis->pDesc->cbState]); + RTMemWipeThoroughly(pThis, cbToWipe, 6); + + RTMemFree(pThis); + } + return cRefs; +} + + +/** + * Resets the signature provider instance prior to a new signing or verification + * opartion. + * + * @returns IPRT status code. + * @param pThis The instance to reset. + */ +static int rtCrPkxiSignatureReset(PRTCRPKIXSIGNATUREINT pThis) +{ + if (pThis->uState == RTCRPKIXSIGNATURE_STATE_DONE) + { + if (pThis->pDesc->pfnReset) + { + int rc = pThis->pDesc->pfnReset(pThis->pDesc, pThis->abState, pThis->fSigning); + if (RT_FAILURE(rc)) + { + pThis->uState = RTCRPKIXSIGNATURE_STATE_BUSTED; + return rc; + } + } + pThis->uState = RTCRPKIXSIGNATURE_STATE_READY; + } + return VINF_SUCCESS; +} + + +RTDECL(int) RTCrPkixSignatureVerify(RTCRPKIXSIGNATURE hSignature, RTCRDIGEST hDigest, + void const *pvSignature, size_t cbSignature) +{ + PRTCRPKIXSIGNATUREINT pThis = hSignature; + AssertPtrReturn(pThis, VERR_INVALID_HANDLE); + AssertReturn(pThis->u32Magic == RTCRPKIXSIGNATUREINT_MAGIC, VERR_INVALID_HANDLE); + AssertReturn(!pThis->fSigning, VERR_INVALID_FUNCTION); + AssertReturn(pThis->uState == RTCRPKIXSIGNATURE_STATE_READY || pThis->uState == RTCRPKIXSIGNATURE_STATE_DONE, VERR_INVALID_STATE); + + uint32_t cRefs = RTCrDigestRetain(hDigest); + AssertReturn(cRefs != UINT32_MAX, VERR_INVALID_HANDLE); + + int rc = rtCrPkxiSignatureReset(pThis); + if (RT_SUCCESS(rc)) + { + rc = pThis->pDesc->pfnVerify(pThis->pDesc, pThis->abState, hDigest, pvSignature, cbSignature); + pThis->uState = RTCRPKIXSIGNATURE_STATE_DONE; + } + + RTCrDigestRelease(hDigest); + return rc; +} + + +RTDECL(int) RTCrPkixSignatureVerifyBitString(RTCRPKIXSIGNATURE hSignature, RTCRDIGEST hDigest, PCRTASN1BITSTRING pSignature) +{ + /* + * Just unpack it and pass it on to the lower level API. + */ + AssertPtrReturn(pSignature, VERR_INVALID_POINTER); + AssertReturn(RTAsn1BitString_IsPresent(pSignature), VERR_INVALID_PARAMETER); + uint32_t cbData = RTASN1BITSTRING_GET_BYTE_SIZE(pSignature); + void const *pvData = RTASN1BITSTRING_GET_BIT0_PTR(pSignature); + AssertPtrReturn(pvData, VERR_INVALID_PARAMETER); + + return RTCrPkixSignatureVerify(hSignature, hDigest, pvData, cbData); +} + + +RTDECL(int) RTCrPkixSignatureVerifyOctetString(RTCRPKIXSIGNATURE hSignature, RTCRDIGEST hDigest, PCRTASN1OCTETSTRING pSignature) +{ + /* + * Just unpack it and pass it on to the lower level API. + */ + AssertPtrReturn(pSignature, VERR_INVALID_POINTER); + AssertReturn(RTAsn1OctetString_IsPresent(pSignature), VERR_INVALID_PARAMETER); + uint32_t cbData = pSignature->Asn1Core.cb; + void const *pvData = pSignature->Asn1Core.uData.pv; + AssertPtrReturn(pvData, VERR_INVALID_PARAMETER); + + return RTCrPkixSignatureVerify(hSignature, hDigest, pvData, cbData); +} + + +RTDECL(int) RTCrPkixSignatureSign(RTCRPKIXSIGNATURE hSignature, RTCRDIGEST hDigest, + void *pvSignature, size_t *pcbSignature) +{ + PRTCRPKIXSIGNATUREINT pThis = hSignature; + AssertPtrReturn(pThis, VERR_INVALID_HANDLE); + AssertReturn(pThis->u32Magic == RTCRPKIXSIGNATUREINT_MAGIC, VERR_INVALID_HANDLE); + AssertReturn(pThis->fSigning, VERR_INVALID_FUNCTION); + AssertReturn(pThis->uState == RTCRPKIXSIGNATURE_STATE_READY || pThis->uState == RTCRPKIXSIGNATURE_STATE_DONE, VERR_INVALID_STATE); + + uint32_t cRefs = RTCrDigestRetain(hDigest); + AssertReturn(cRefs != UINT32_MAX, VERR_INVALID_HANDLE); + + int rc = rtCrPkxiSignatureReset(pThis); + if (RT_SUCCESS(rc)) + { + rc = pThis->pDesc->pfnSign(pThis->pDesc, pThis->abState, hDigest, pvSignature, pcbSignature); + if (rc != VERR_BUFFER_OVERFLOW) + pThis->uState = RTCRPKIXSIGNATURE_STATE_DONE; + } + + RTCrDigestRelease(hDigest); + return rc; +} + diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Runtime/common/crypto/pkix-signature-rsa.cpp virtualbox-4.1.44-dfsg/src/VBox/Runtime/common/crypto/pkix-signature-rsa.cpp --- virtualbox-4.1.12-dfsg/src/VBox/Runtime/common/crypto/pkix-signature-rsa.cpp 1970-01-01 00:00:00.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Runtime/common/crypto/pkix-signature-rsa.cpp 2015-11-11 15:09:00.000000000 +0000 @@ -0,0 +1,432 @@ +/* $Id: pkix-signature-rsa.cpp $ */ +/** @file + * IPRT - Crypto - Public Key Signature Schema Algorithm, RSA Providers. + */ + +/* + * Copyright (C) 2006-2014 Oracle Corporation + * + * This file is part of VirtualBox Open Source Edition (OSE), as + * available from http://www.virtualbox.org. This file is free software; + * you can redistribute it and/or modify it under the terms of the GNU + * General Public License (GPL) as published by the Free Software + * Foundation, in version 2 as it comes in the "COPYING" file of the + * VirtualBox OSE distribution. VirtualBox OSE is distributed in the + * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind. + * + * The contents of this file may alternatively be used under the terms + * of the Common Development and Distribution License Version 1.0 + * (CDDL) only, as it comes in the "COPYING.CDDL" file of the + * VirtualBox OSE distribution, in which case the provisions of the + * CDDL are applicable instead of those of the GPL. + * + * You may elect to license modified versions of this file under the + * terms and conditions of either the GPL or the CDDL or both. + */ + + +/******************************************************************************* +* Header Files * +*******************************************************************************/ +#include "internal/iprt.h" +#include + +#include +#include +#include +#include +#include +#include + +#include "rsa-internal.h" +#include "pkix-signature-builtin.h" + + +/******************************************************************************* +* Structures and Typedefs * +*******************************************************************************/ +/** + * RSA signature provider instance. + */ +typedef struct RTCRPKIXSIGNATURERSA +{ + /** Set if we're signing, clear if verifying. */ + bool fSigning; + /** The modulus. */ + RTBIGNUM Modulus; + /** The exponent. */ + RTBIGNUM Exponent; + + /** Temporary big number for use when signing or verifiying. */ + RTBIGNUM TmpBigNum1; + /** Temporary big number for use when signing or verifiying. */ + RTBIGNUM TmpBigNum2; + + /** Scratch space for decoding the key. */ + union + { + /** Public key. */ + RTCRRSAPUBLICKEY PublicKey; + /** Private key. */ + RTCRRSAPRIVATEKEY PrivateKey; + /** Scratch area where we assemble the signature. */ + uint8_t abSignature[RTCRRSA_MAX_MODULUS_BITS / 8 * 2]; + } Scratch; +} RTCRPKIXSIGNATURERSA; +/** Pointer to an RSA signature provider instance. */ +typedef RTCRPKIXSIGNATURERSA *PRTCRPKIXSIGNATURERSA; + + +/******************************************************************************* +* Global Variables * +*******************************************************************************/ +/** @name Pre-encoded DigestInfo DER sequences. + * @{ */ +static const uint8_t g_abMd2[] = +{/* { { 1.2.840.113549.2.2 (MD2), NULL }, hash octet-string } */ + 0x30,0x20, 0x30,0x0c, 0x06,0x08,0x2a,0x86,0x48,0x86,0xf7,0x0d,0x02,0x02, 0x05,0x00, 0x04,0x10 +}; +static const uint8_t g_abMd4[] = +{/* { { 1.2.840.113549.2.4 (MD4), NULL }, hash octet-string } */ + 0x30,0x20, 0x30,0x0c, 0x06,0x08,0x2a,0x86,0x48,0x86,0xf7,0x0d,0x02,0x04, 0x05,0x00, 0x04,0x10 +}; +static const uint8_t g_abMd5[] = +{/* { { 1.2.840.113549.2.5 (MD5), NULL }, hash octet-string } */ + 0x30,0x20, 0x30,0x0c, 0x06,0x08,0x2a,0x86,0x48,0x86,0xf7,0x0d,0x02,0x05, 0x05,0x00, 0x04,0x10 +}; +static const uint8_t g_abSha1[] = +{/* { { 1.3.14.3.2.26 (SHA-1), NULL }, hash octet-string } */ + 0x30,0x21, 0x30,0x09, 0x06,0x05,0x2b,0x0e,0x03,0x02,0x1a, 0x05,0x00, 0x04,0x14 +}; +static const uint8_t g_abSha256[] = +{/* { { 2.16.840.1.101.3.4.2.1 (SHA-256), NULL }, hash octet-string } */ + 0x30,0x31, 0x30,0x0d, 0x06,0x09,0x60,0x86,0x48,0x01,0x65,0x03,0x04,0x02,0x01, 0x05,0x00, 0x04,0x20 +}; +static const uint8_t g_abSha384[] = +{/* { { 2.16.840.1.101.3.4.2.2 (SHA-384), NULL }, hash octet-string } */ + 0x30,0x41, 0x30,0x0d, 0x06,0x09,0x60,0x86,0x48,0x01,0x65,0x03,0x04,0x02,0x02, 0x05,0x00, 0x04,0x30 +}; +static const uint8_t g_abSha512[] = +{/* { { 2.16.840.1.101.3.4.2.3 (SHA-512), NULL }, hash octet-string } */ + 0x30,0x51, 0x30,0x0d, 0x06,0x09,0x60,0x86,0x48,0x01,0x65,0x03,0x04,0x02,0x03, 0x05,0x00, 0x04,0x40 +}; +static const uint8_t g_abSha224[] = +{/* { { 2.16.840.1.101.3.4.2.4 (SHA-224), NULL }, hash octet-string } */ + 0x30,0x21, 0x30,0x0d, 0x06,0x09,0x60,0x86,0x48,0x01,0x65,0x03,0x04,0x02,0x04, 0x05,0x00, 0x04,0x14 +}; +/** @} */ + +/** Lookup array for the pre-encoded DigestInfo DER sequences. */ +static struct +{ + RTDIGESTTYPE enmDigest; + const uint8_t *pb; + size_t cb; +} const g_aDigestInfos[] = +{ + { RTDIGESTTYPE_MD2, g_abMd2, sizeof(g_abMd2) }, + { RTDIGESTTYPE_MD4, g_abMd4, sizeof(g_abMd4) }, + { RTDIGESTTYPE_MD5, g_abMd5, sizeof(g_abMd5) }, + { RTDIGESTTYPE_SHA1, g_abSha1, sizeof(g_abSha1) }, + { RTDIGESTTYPE_SHA256, g_abSha256, sizeof(g_abSha256) }, + { RTDIGESTTYPE_SHA384, g_abSha384, sizeof(g_abSha384) }, + { RTDIGESTTYPE_SHA512, g_abSha512, sizeof(g_abSha512) }, + { RTDIGESTTYPE_SHA224, g_abSha224, sizeof(g_abSha224) }, +}; + + +/** @impl_interface_method{RTCRPKIXSIGNATUREDESC,pfnInit} */ +static DECLCALLBACK(int) rtCrPkixSignatureRsa_Init(PCRTCRPKIXSIGNATUREDESC pDesc, void *pvState, void *pvOpaque, + bool fSigning, PCRTASN1BITSTRING pKey, PCRTASN1DYNTYPE pParams) +{ + if (pParams) + return VERR_CR_PKIX_SIGNATURE_TAKES_NO_PARAMETERS; + + PRTCRPKIXSIGNATURERSA pThis = (PRTCRPKIXSIGNATURERSA)pvState; + pThis->fSigning = fSigning; + + /* + * Decode the key and pick the bits we really need from it. + */ + RTASN1CURSORPRIMARY PrimaryCursor; + RTAsn1CursorInitPrimary(&PrimaryCursor, RTASN1BITSTRING_GET_BIT0_PTR(pKey), RTASN1BITSTRING_GET_BYTE_SIZE(pKey), + NULL, &g_RTAsn1DefaultAllocator, RTASN1CURSOR_FLAGS_DER, "rsa"); + int rc; + if (!fSigning) + { + rc = RTCrRsaPublicKey_DecodeAsn1(&PrimaryCursor.Cursor, 0, &pThis->Scratch.PublicKey, "PublicKey"); + if (RT_SUCCESS(rc)) + { + rc = RTAsn1Integer_ToBigNum(&pThis->Scratch.PublicKey.Modulus, &pThis->Modulus, 0); + if (RT_SUCCESS(rc)) + { + rc = RTAsn1Integer_ToBigNum(&pThis->Scratch.PublicKey.PublicExponent, &pThis->Exponent, 0); + if (RT_SUCCESS(rc)) + { + RTAsn1VtDelete(&pThis->Scratch.PublicKey.SeqCore.Asn1Core); + return VINF_SUCCESS; + } + RTBigNumDestroy(&pThis->Modulus); + } + RTAsn1VtDelete(&pThis->Scratch.PublicKey.SeqCore.Asn1Core); + } + } + else + { + rc = RTCrRsaPrivateKey_DecodeAsn1(&PrimaryCursor.Cursor, 0, &pThis->Scratch.PrivateKey, "PrivateKey"); + if (RT_SUCCESS(rc)) + { + rc = RTAsn1Integer_ToBigNum(&pThis->Scratch.PrivateKey.Modulus, &pThis->Modulus, RTBIGNUMINIT_F_SENSITIVE); + if (RT_SUCCESS(rc)) + { + rc = RTAsn1Integer_ToBigNum(&pThis->Scratch.PrivateKey.PublicExponent, &pThis->Exponent, RTBIGNUMINIT_F_SENSITIVE); + if (RT_SUCCESS(rc)) + { + RTAsn1VtDelete(&pThis->Scratch.PrivateKey.SeqCore.Asn1Core); + return VINF_SUCCESS; + } + RTBigNumDestroy(&pThis->Modulus); + } + RTAsn1VtDelete(&pThis->Scratch.PrivateKey.SeqCore.Asn1Core); + } + } + return rc; +} + + +/** @impl_interface_method{RTCRPKIXSIGNATUREDESC,pfnReset} */ +static DECLCALLBACK(int) rtCrPkixSignatureRsa_Reset(PCRTCRPKIXSIGNATUREDESC pDesc, void *pvState, bool fSigning) +{ + PRTCRPKIXSIGNATURERSA pThis = (PRTCRPKIXSIGNATURERSA)pvState; + Assert(pThis->fSigning == fSigning); NOREF(pThis); + return VINF_SUCCESS; +} + + +/** @impl_interface_method{RTCRPKIXSIGNATUREDESC,pfnDelete} */ +static DECLCALLBACK(void) rtCrPkixSignatureRsa_Delete(PCRTCRPKIXSIGNATUREDESC pDesc, void *pvState, bool fSigning) +{ + PRTCRPKIXSIGNATURERSA pThis = (PRTCRPKIXSIGNATURERSA)pvState; + Assert(pThis->fSigning == fSigning); NOREF(pThis); + + RTBigNumDestroy(&pThis->Modulus); + RTBigNumDestroy(&pThis->Exponent); +} + + +/** + * Common worker for rtCrPkixSignatureRsa_Verify and + * rtCrPkixSignatureRsa_Sign that encodes an EMSA-PKCS1-V1_5 signature in + * the scratch area. + * + * This function is referred to as EMSA-PKCS1-v1_5-ENCODE(M,k) in RFC-3447 and + * is described in section 9.2 + * + * @returns IPRT status code. + * @param pThis The RSA signature provider instance. + * @param hDigest The digest which hash to turn into a signature. + * @param cbEncodedMsg The desired encoded message length. + * @param fNoDigestInfo If true, skip the DigestInfo and encode the digest + * without any prefix like described in v1.5 (RFC-2313) + * and observed with RSA+MD5 signed timestamps. If + * false, include the prefix like v2.0 (RFC-2437) + * describes in step in section 9.2.1 + * (EMSA-PKCS1-v1_5) + */ +static int rtCrPkixSignatureRsa_EmsaPkcs1V15Encode(PRTCRPKIXSIGNATURERSA pThis, RTCRDIGEST hDigest, size_t cbEncodedMsg, + bool fNoDigestInfo) +{ + AssertReturn(cbEncodedMsg * 2 <= sizeof(pThis->Scratch), VERR_CR_PKIX_INTERNAL_ERROR); + + /* + * Figure out which hash and select the associate prebaked DigestInfo. + */ + RTDIGESTTYPE const enmDigest = RTCrDigestGetType(hDigest); + AssertReturn(enmDigest != RTDIGESTTYPE_INVALID && enmDigest != RTDIGESTTYPE_UNKNOWN, VERR_CR_PKIX_UNKNOWN_DIGEST_TYPE); + uint8_t const *pbDigestInfoStart = NULL; + size_t cbDigestInfoStart = 0; + for (uint32_t i = 0; i < RT_ELEMENTS(g_aDigestInfos); i++) + if (g_aDigestInfos[i].enmDigest == enmDigest) + { + pbDigestInfoStart = g_aDigestInfos[i].pb; + cbDigestInfoStart = g_aDigestInfos[i].cb; + break; + } + if (!pbDigestInfoStart) + return VERR_CR_PKIX_UNKNOWN_DIGEST_TYPE; + + /* + * Get the hash size and verify that it matches what we've got in the + * precooked DigestInfo. ASSUMES less that 256 bytes of hash. + */ + uint32_t const cbHash = RTCrDigestGetHashSize(hDigest); + AssertReturn(cbHash > 0 && cbHash < _16K, VERR_OUT_OF_RANGE); + AssertReturn(cbHash == pbDigestInfoStart[cbDigestInfoStart - 1], VERR_CR_PKIX_INTERNAL_ERROR); + + if (fNoDigestInfo) + cbDigestInfoStart = 0; + + if (cbDigestInfoStart + cbHash + 11 > cbEncodedMsg) + return VERR_CR_PKIX_HASH_TOO_LONG_FOR_KEY; + + /* + * Encode the message the first part of the scratch area. + */ + uint8_t *pbDst = &pThis->Scratch.abSignature[0]; + pbDst[0] = 0x00; + pbDst[1] = 0x01; /* BT - block type, see RFC-2313. */ + size_t cbFFs = cbEncodedMsg - cbHash - cbDigestInfoStart - 3; + memset(&pbDst[2], 0xff, cbFFs); + pbDst += cbFFs + 2; + *pbDst++ = 0x00; + memcpy(pbDst, pbDigestInfoStart, cbDigestInfoStart); + pbDst += cbDigestInfoStart; + int rc = RTCrDigestFinal(hDigest, pbDst, cbHash); + if (RT_FAILURE(rc)) + return rc; + pbDst += cbHash; + Assert((size_t)(pbDst - &pThis->Scratch.abSignature[0]) == cbEncodedMsg); + return VINF_SUCCESS; +} + + + +/** @impl_interface_method{RTCRPKIXSIGNATUREDESC,pfnVerify} */ +static DECLCALLBACK(int) rtCrPkixSignatureRsa_Verify(PCRTCRPKIXSIGNATUREDESC pDesc, void *pvState, + RTCRDIGEST hDigest, void const *pvSignature, size_t cbSignature) +{ + PRTCRPKIXSIGNATURERSA pThis = (PRTCRPKIXSIGNATURERSA)pvState; + Assert(!pThis->fSigning); + if (cbSignature > sizeof(pThis->Scratch) / 2) + return VERR_CR_PKIX_SIGNATURE_TOO_LONG; + + /* + * 8.2.2.1 - Length check. + */ + if (cbSignature != RTBigNumByteWidth(&pThis->Modulus)) + return VERR_CR_PKIX_INVALID_SIGNATURE_LENGTH; + + /* + * 8.2.2.2 - RSA verification / Decrypt the signature. + */ + /* a) s = OS2IP(S) -- Convert signature to integer. */ + int rc = RTBigNumInit(&pThis->TmpBigNum1, RTBIGNUMINIT_F_ENDIAN_BIG | RTBIGNUMINIT_F_UNSIGNED, + pvSignature, cbSignature); + if (RT_FAILURE(rc)) + return rc; + /* b) RSAVP1 - 5.2.2.2: Range check (0 <= s < n). */ + if (RTBigNumCompare(&pThis->TmpBigNum1, &pThis->Modulus) < 0) + { + if (RTBigNumCompareWithU64(&pThis->TmpBigNum1, 0) >= 0) + { + /* b) RSAVP1 - 5.2.2.3: s^e mod n */ + rc = RTBigNumInitZero(&pThis->TmpBigNum2, 0); + if (RT_SUCCESS(rc)) + { + rc = RTBigNumModExp(&pThis->TmpBigNum2, &pThis->TmpBigNum1, &pThis->Exponent, &pThis->Modulus); + if (RT_SUCCESS(rc)) + { + /* c) EM' = I2OSP(m, k) -- Convert the result to bytes. */ + uint32_t cbDecrypted = RTBigNumByteWidth(&pThis->TmpBigNum2) + 1; /* 1 = leading zero byte */ + if (cbDecrypted <= sizeof(pThis->Scratch) / 2) + { + uint8_t *pbDecrypted = &pThis->Scratch.abSignature[sizeof(pThis->Scratch) / 2]; + rc = RTBigNumToBytesBigEndian(&pThis->TmpBigNum2, pbDecrypted, cbDecrypted); + if (RT_SUCCESS(rc)) + { + /* + * 8.2.2.3 - Build a hopefully identical signature using hDigest. + */ + rc = rtCrPkixSignatureRsa_EmsaPkcs1V15Encode(pThis, hDigest, cbDecrypted, false /* fNoDigestInfo */); + if (RT_SUCCESS(rc)) + { + /* + * 8.2.2.4 - Compare the two. + */ + if (memcmp(&pThis->Scratch.abSignature[0], pbDecrypted, cbDecrypted) == 0) + rc = VINF_SUCCESS; + else + { + /* + * Try again without digestinfo. This style signing has been + * observed in Vista timestamp counter signatures (Thawte). + */ + rc = rtCrPkixSignatureRsa_EmsaPkcs1V15Encode(pThis, hDigest, cbDecrypted, + true /* fNoDigestInfo */); + if (RT_SUCCESS(rc)) + { + if (memcmp(&pThis->Scratch.abSignature[0], pbDecrypted, cbDecrypted) == 0) + rc = VINF_SUCCESS; + else + rc = VERR_CR_PKIX_SIGNATURE_MISMATCH; + } + } + } + } + } + else + rc = VERR_CR_PKIX_SIGNATURE_TOO_LONG; + } + RTBigNumDestroy(&pThis->TmpBigNum2); + } + } + else + rc = VERR_CR_PKIX_SIGNATURE_NEGATIVE; + } + else + rc = VERR_CR_PKIX_SIGNATURE_GE_KEY; + RTBigNumDestroy(&pThis->TmpBigNum1); + return rc; +} + + +/** @impl_interface_method{RTCRPKIXSIGNATUREDESC,pfnSign} */ +static DECLCALLBACK(int) rtCrPkixSignatureRsa_Sign(PCRTCRPKIXSIGNATUREDESC pDesc, void *pvState, + RTCRDIGEST hDigest, void *pvSignature, size_t *pcbSignature) +{ + PRTCRPKIXSIGNATURERSA pThis = (PRTCRPKIXSIGNATURERSA)pvState; + Assert(pThis->fSigning); NOREF(pThis); + return VERR_NOT_IMPLEMENTED; +} + + + + +/** RSA alias ODIs. */ +static const char * const g_apszHashWithRsaAliases[] = +{ + RTCR_PKCS1_MD2_WITH_RSA_OID, + RTCR_PKCS1_MD4_WITH_RSA_OID, + RTCR_PKCS1_MD5_WITH_RSA_OID, + RTCR_PKCS1_SHA1_WITH_RSA_OID, + RTCR_PKCS1_SHA256_WITH_RSA_OID, + RTCR_PKCS1_SHA384_WITH_RSA_OID, + RTCR_PKCS1_SHA512_WITH_RSA_OID, + RTCR_PKCS1_SHA224_WITH_RSA_OID, + /* Note: Note quite sure about these OIW oddballs. */ + "1.3.14.3.2.11" /* OIW rsaSignature */, + "1.3.14.3.2.14" /* OIW mdc2WithRSASignature */, + "1.3.14.3.2.15" /* OIW shaWithRSASignature */, + "1.3.14.3.2.24" /* OIW md2WithRSASignature */, + "1.3.14.3.2.25" /* OIW md5WithRSASignature */, + "1.3.14.3.2.29" /* OIW sha1WithRSASignature */, + NULL +}; + + +/** RSA descriptor. */ +DECL_HIDDEN_CONST(RTCRPKIXSIGNATUREDESC const) g_rtCrPkixSigningHashWithRsaDesc = +{ + "RSASSA-PKCS1-v1_5", + RTCR_PKCS1_RSA_OID, + g_apszHashWithRsaAliases, + sizeof(RTCRPKIXSIGNATURERSA), + 0, + 0, + rtCrPkixSignatureRsa_Init, + rtCrPkixSignatureRsa_Reset, + rtCrPkixSignatureRsa_Delete, + rtCrPkixSignatureRsa_Verify, + rtCrPkixSignatureRsa_Sign, +}; + diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Runtime/common/crypto/pkix-util.cpp virtualbox-4.1.44-dfsg/src/VBox/Runtime/common/crypto/pkix-util.cpp --- virtualbox-4.1.12-dfsg/src/VBox/Runtime/common/crypto/pkix-util.cpp 1970-01-01 00:00:00.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Runtime/common/crypto/pkix-util.cpp 2015-11-11 15:09:00.000000000 +0000 @@ -0,0 +1,92 @@ +/* $Id: pkix-util.cpp $ */ +/** @file + * IPRT - Crypto - Public Key Infrastructure API, Utilities. + */ + +/* + * Copyright (C) 2006-2014 Oracle Corporation + * + * This file is part of VirtualBox Open Source Edition (OSE), as + * available from http://www.virtualbox.org. This file is free software; + * you can redistribute it and/or modify it under the terms of the GNU + * General Public License (GPL) as published by the Free Software + * Foundation, in version 2 as it comes in the "COPYING" file of the + * VirtualBox OSE distribution. VirtualBox OSE is distributed in the + * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind. + * + * The contents of this file may alternatively be used under the terms + * of the Common Development and Distribution License Version 1.0 + * (CDDL) only, as it comes in the "COPYING.CDDL" file of the + * VirtualBox OSE distribution, in which case the provisions of the + * CDDL are applicable instead of those of the GPL. + * + * You may elect to license modified versions of this file under the + * terms and conditions of either the GPL or the CDDL or both. + */ + + +/******************************************************************************* +* Header Files * +*******************************************************************************/ +#include "internal/iprt.h" +#include + +#include +#include + +#ifdef IPRT_WITH_OPENSSL +# include "internal/iprt-openssl.h" +# include "openssl/evp.h" +#endif + + + + +RTDECL(const char *) RTCrPkixGetCiperOidFromSignatureAlgorithm(PCRTASN1OBJID pAlgorithm) +{ + /* + * This is all hardcoded, at least for the time being. + */ + if (RTAsn1ObjId_StartsWith(pAlgorithm, RTCR_PKCS1_OID)) + { + if (RTAsn1ObjIdCountComponents(pAlgorithm) == 7) + switch (RTAsn1ObjIdGetLastComponentsAsUInt32(pAlgorithm)) + { + case 2: + case 3: + case 4: + case 5: + case 11: + case 12: + case 13: + case 14: + return RTCR_PKCS1_RSA_OID; + case 1: AssertFailed(); + default: + return NULL; + } + } + /* + * OIW oddballs. + */ + else if (RTAsn1ObjId_StartsWith(pAlgorithm, "1.3.14.3.2")) + { + if (RTAsn1ObjIdCountComponents(pAlgorithm) == 6) + switch (RTAsn1ObjIdGetLastComponentsAsUInt32(pAlgorithm)) + { + case 11: + case 14: + case 15: + case 24: + case 25: + case 29: + return RTCR_PKCS1_RSA_OID; + default: + return NULL; + } + } + + + return NULL; +} + diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Runtime/common/crypto/pkix-verify.cpp virtualbox-4.1.44-dfsg/src/VBox/Runtime/common/crypto/pkix-verify.cpp --- virtualbox-4.1.12-dfsg/src/VBox/Runtime/common/crypto/pkix-verify.cpp 1970-01-01 00:00:00.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Runtime/common/crypto/pkix-verify.cpp 2015-11-11 15:09:00.000000000 +0000 @@ -0,0 +1,180 @@ +/* $Id: pkix-verify.cpp $ */ +/** @file + * IPRT - Crypto - Public Key Infrastructure API, Verification. + */ + +/* + * Copyright (C) 2006-2014 Oracle Corporation + * + * This file is part of VirtualBox Open Source Edition (OSE), as + * available from http://www.virtualbox.org. This file is free software; + * you can redistribute it and/or modify it under the terms of the GNU + * General Public License (GPL) as published by the Free Software + * Foundation, in version 2 as it comes in the "COPYING" file of the + * VirtualBox OSE distribution. VirtualBox OSE is distributed in the + * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind. + * + * The contents of this file may alternatively be used under the terms + * of the Common Development and Distribution License Version 1.0 + * (CDDL) only, as it comes in the "COPYING.CDDL" file of the + * VirtualBox OSE distribution, in which case the provisions of the + * CDDL are applicable instead of those of the GPL. + * + * You may elect to license modified versions of this file under the + * terms and conditions of either the GPL or the CDDL or both. + */ + + +/******************************************************************************* +* Header Files * +*******************************************************************************/ +#include "internal/iprt.h" +#include + +#include +#include +#include + +#ifdef IPRT_WITH_OPENSSL +# include "internal/iprt-openssl.h" +# include "openssl/evp.h" +#endif + + +RTDECL(int) RTCrPkixPubKeyVerifySignature(PCRTASN1OBJID pAlgorithm, PCRTASN1DYNTYPE pParameters, PCRTASN1BITSTRING pPublicKey, + PCRTASN1BITSTRING pSignatureValue, const void *pvData, size_t cbData, + PRTERRINFO pErrInfo) +{ + /* + * Valid input. + */ + AssertPtrReturn(pAlgorithm, VERR_INVALID_POINTER); + AssertReturn(RTAsn1ObjId_IsPresent(pAlgorithm), VERR_INVALID_POINTER); + + if (pParameters) + { + AssertPtrReturn(pParameters, VERR_INVALID_POINTER); + if (pParameters->enmType == RTASN1TYPE_NULL) + pParameters = NULL; + } + + AssertPtrReturn(pPublicKey, VERR_INVALID_POINTER); + AssertReturn(RTAsn1BitString_IsPresent(pPublicKey), VERR_INVALID_POINTER); + + AssertPtrReturn(pSignatureValue, VERR_INVALID_POINTER); + AssertReturn(RTAsn1BitString_IsPresent(pSignatureValue), VERR_INVALID_POINTER); + + AssertPtrReturn(pvData, VERR_INVALID_POINTER); + AssertReturn(cbData > 0, VERR_INVALID_PARAMETER); + + /* + * Parameters are not currently supported (openssl code path). + */ + if (pParameters) + return RTErrInfoSet(pErrInfo, VERR_CR_PKIX_CIPHER_ALGO_PARAMS_NOT_IMPL, + "Cipher algorithm parameters are not yet supported."); + + /* + * Validate using IPRT. + */ + RTCRPKIXSIGNATURE hSignature; + int rcIprt = RTCrPkixSignatureCreateByObjId(&hSignature, pAlgorithm, false /*fSigning*/, pPublicKey, pParameters); + if (RT_FAILURE(rcIprt)) + return RTErrInfoSetF(pErrInfo, VERR_CR_PKIX_CIPHER_ALGO_NOT_KNOWN, + "Unknown public key algorithm [IPRT]: %s", pAlgorithm->szObjId); + + RTCRDIGEST hDigest; + rcIprt = RTCrDigestCreateByObjId(&hDigest, pAlgorithm); + if (RT_SUCCESS(rcIprt)) + { + /* Calculate the digest. */ + rcIprt = RTCrDigestUpdate(hDigest, pvData, cbData); + if (RT_SUCCESS(rcIprt)) + { + rcIprt = RTCrPkixSignatureVerifyBitString(hSignature, hDigest, pSignatureValue); + if (RT_FAILURE(rcIprt)) + RTErrInfoSet(pErrInfo, rcIprt, "RTCrPkixSignatureVerifyBitString failed"); + } + else + RTErrInfoSet(pErrInfo, rcIprt, "RTCrDigestUpdate failed"); + RTCrDigestRelease(hDigest); + } + else + RTErrInfoSetF(pErrInfo, rcIprt, "Unknown digest algorithm [IPRT]: %s", pAlgorithm->szObjId); + RTCrPkixSignatureRelease(hSignature); + +#ifdef IPRT_WITH_OPENSSL + /* + * Validate using OpenSSL EVP. + */ + rtCrOpenSslInit(); + + /* Translate the algorithm ID into a EVP message digest type pointer. */ + int iAlgoNid = OBJ_txt2nid(pAlgorithm->szObjId); + if (iAlgoNid == NID_undef) + return RTErrInfoSetF(pErrInfo, VERR_CR_PKIX_OSSL_CIPHER_ALGO_NOT_KNOWN, + "Unknown public key algorithm [OpenSSL]: %s", pAlgorithm->szObjId); + const char *pszAlogSn = OBJ_nid2sn(iAlgoNid); + const EVP_MD *pEvpMdType = EVP_get_digestbyname(pszAlogSn); + if (!pEvpMdType) + return RTErrInfoSetF(pErrInfo, VERR_CR_PKIX_OSSL_CIPHER_ALGO_NOT_KNOWN_EVP, + "EVP_get_digestbyname failed on %s (%s)", pszAlogSn, pAlgorithm->szObjId); + + /* Initialize the EVP message digest context. */ + EVP_MD_CTX EvpMdCtx; + EVP_MD_CTX_init(&EvpMdCtx); + if (!EVP_VerifyInit_ex(&EvpMdCtx, pEvpMdType, NULL /*engine*/)) + return RTErrInfoSetF(pErrInfo, VERR_CR_PKIX_OSSL_CIPHER_ALOG_INIT_FAILED, + "EVP_VerifyInit_ex failed (algorithm type is %s / %s)", pszAlogSn, pAlgorithm->szObjId); + + /* Create an EVP public key. */ + int rcOssl; + EVP_PKEY *pEvpPublicKey = EVP_PKEY_new(); + if (pEvpPublicKey) + { + pEvpPublicKey->type = EVP_PKEY_type(pEvpMdType->required_pkey_type[0]); + if (pEvpPublicKey->type != NID_undef) + { + const unsigned char *puchPublicKey = RTASN1BITSTRING_GET_BIT0_PTR(pPublicKey); + if (d2i_PublicKey(pEvpPublicKey->type, &pEvpPublicKey, &puchPublicKey, RTASN1BITSTRING_GET_BYTE_SIZE(pPublicKey))) + { + /* Digest the data. */ + EVP_VerifyUpdate(&EvpMdCtx, pvData, cbData); + + /* Verify the signature. */ + if (EVP_VerifyFinal(&EvpMdCtx, + RTASN1BITSTRING_GET_BIT0_PTR(pSignatureValue), + RTASN1BITSTRING_GET_BYTE_SIZE(pSignatureValue), + pEvpPublicKey) > 0) + rcOssl = VINF_SUCCESS; + else + rcOssl = RTErrInfoSet(pErrInfo, VERR_CR_PKIX_OSSL_VERIFY_FINAL_FAILED, "EVP_VerifyFinal failed"); + } + else + rcOssl = RTErrInfoSet(pErrInfo, VERR_CR_PKIX_OSSL_D2I_PUBLIC_KEY_FAILED, "d2i_PublicKey failed"); + } + else + rcOssl = RTErrInfoSetF(pErrInfo, VERR_CR_PKIX_OSSL_EVP_PKEY_TYPE_ERROR, + "EVP_PKEY_type(%d) failed", pEvpMdType->required_pkey_type[0]); + /* Cleanup and return.*/ + EVP_PKEY_free(pEvpPublicKey); + } + else + rcOssl = RTErrInfoSetF(pErrInfo, VERR_NO_MEMORY, "EVP_PKEY_new(%d) failed", pEvpMdType->required_pkey_type[0]); + EVP_MD_CTX_cleanup(&EvpMdCtx); + + /* + * Check the result. + */ + if (RT_SUCCESS(rcIprt) && RT_SUCCESS(rcOssl)) + return VINF_SUCCESS; + if (RT_FAILURE_NP(rcIprt) && RT_FAILURE_NP(rcOssl)) + return rcIprt; + AssertMsgFailed(("rcIprt=%Rrc rcOssl=%Rrc\n", rcIprt, rcOssl)); + if (RT_FAILURE_NP(rcOssl)) + return rcOssl; +#endif /* IPRT_WITH_OPENSSL */ + + return rcIprt; +} + diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Runtime/common/crypto/rsa-asn1-decoder.cpp virtualbox-4.1.44-dfsg/src/VBox/Runtime/common/crypto/rsa-asn1-decoder.cpp --- virtualbox-4.1.12-dfsg/src/VBox/Runtime/common/crypto/rsa-asn1-decoder.cpp 1970-01-01 00:00:00.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Runtime/common/crypto/rsa-asn1-decoder.cpp 2015-11-11 15:09:00.000000000 +0000 @@ -0,0 +1,43 @@ +/* $Id: rsa-asn1-decoder.cpp $ */ +/** @file + * IPRT - Crypto - RSA, Decoder for ASN.1. + */ + +/* + * Copyright (C) 2006-2014 Oracle Corporation + * + * This file is part of VirtualBox Open Source Edition (OSE), as + * available from http://www.virtualbox.org. This file is free software; + * you can redistribute it and/or modify it under the terms of the GNU + * General Public License (GPL) as published by the Free Software + * Foundation, in version 2 as it comes in the "COPYING" file of the + * VirtualBox OSE distribution. VirtualBox OSE is distributed in the + * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind. + * + * The contents of this file may alternatively be used under the terms + * of the Common Development and Distribution License Version 1.0 + * (CDDL) only, as it comes in the "COPYING.CDDL" file of the + * VirtualBox OSE distribution, in which case the provisions of the + * CDDL are applicable instead of those of the GPL. + * + * You may elect to license modified versions of this file under the + * terms and conditions of either the GPL or the CDDL or both. + */ + + +/******************************************************************************* +* Header Files * +*******************************************************************************/ +#include "internal/iprt.h" +#include + +#include +#include + +#include "rsa-internal.h" + +/* + * Generate the code. + */ +#include + diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Runtime/common/crypto/rsa-core.cpp virtualbox-4.1.44-dfsg/src/VBox/Runtime/common/crypto/rsa-core.cpp --- virtualbox-4.1.12-dfsg/src/VBox/Runtime/common/crypto/rsa-core.cpp 1970-01-01 00:00:00.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Runtime/common/crypto/rsa-core.cpp 2015-11-11 15:09:00.000000000 +0000 @@ -0,0 +1,44 @@ +/* $Id: rsa-core.cpp $ */ +/** @file + * IPRT - Crypto - RSA, Core APIs. + */ + +/* + * Copyright (C) 2006-2014 Oracle Corporation + * + * This file is part of VirtualBox Open Source Edition (OSE), as + * available from http://www.virtualbox.org. This file is free software; + * you can redistribute it and/or modify it under the terms of the GNU + * General Public License (GPL) as published by the Free Software + * Foundation, in version 2 as it comes in the "COPYING" file of the + * VirtualBox OSE distribution. VirtualBox OSE is distributed in the + * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind. + * + * The contents of this file may alternatively be used under the terms + * of the Common Development and Distribution License Version 1.0 + * (CDDL) only, as it comes in the "COPYING.CDDL" file of the + * VirtualBox OSE distribution, in which case the provisions of the + * CDDL are applicable instead of those of the GPL. + * + * You may elect to license modified versions of this file under the + * terms and conditions of either the GPL or the CDDL or both. + */ + + +/******************************************************************************* +* Header Files * +*******************************************************************************/ +#include "internal/iprt.h" +#include + +#include +#include +#include + +#include "rsa-internal.h" + +/* + * Generate the code. + */ +#include + diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Runtime/common/crypto/rsa-init.cpp virtualbox-4.1.44-dfsg/src/VBox/Runtime/common/crypto/rsa-init.cpp --- virtualbox-4.1.12-dfsg/src/VBox/Runtime/common/crypto/rsa-init.cpp 1970-01-01 00:00:00.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Runtime/common/crypto/rsa-init.cpp 2015-11-11 15:09:00.000000000 +0000 @@ -0,0 +1,43 @@ +/* $Id: rsa-init.cpp $ */ +/** @file + * IPRT - Crypto - RSA, Initialization API. + */ + +/* + * Copyright (C) 2006-2014 Oracle Corporation + * + * This file is part of VirtualBox Open Source Edition (OSE), as + * available from http://www.virtualbox.org. This file is free software; + * you can redistribute it and/or modify it under the terms of the GNU + * General Public License (GPL) as published by the Free Software + * Foundation, in version 2 as it comes in the "COPYING" file of the + * VirtualBox OSE distribution. VirtualBox OSE is distributed in the + * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind. + * + * The contents of this file may alternatively be used under the terms + * of the Common Development and Distribution License Version 1.0 + * (CDDL) only, as it comes in the "COPYING.CDDL" file of the + * VirtualBox OSE distribution, in which case the provisions of the + * CDDL are applicable instead of those of the GPL. + * + * You may elect to license modified versions of this file under the + * terms and conditions of either the GPL or the CDDL or both. + */ + + +/******************************************************************************* +* Header Files * +*******************************************************************************/ +#include "internal/iprt.h" +#include + +#include +#include + +#include "rsa-internal.h" + +/* + * Generate the code. + */ +#include + diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Runtime/common/crypto/rsa-internal.h virtualbox-4.1.44-dfsg/src/VBox/Runtime/common/crypto/rsa-internal.h --- virtualbox-4.1.12-dfsg/src/VBox/Runtime/common/crypto/rsa-internal.h 1970-01-01 00:00:00.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Runtime/common/crypto/rsa-internal.h 2015-11-11 15:09:00.000000000 +0000 @@ -0,0 +1,39 @@ +/* $Id: rsa-internal.h $ */ +/** @file + * IPRT - Crypto - RSA, Internal Header. + */ + +/* + * Copyright (C) 2006-2014 Oracle Corporation + * + * This file is part of VirtualBox Open Source Edition (OSE), as + * available from http://www.virtualbox.org. This file is free software; + * you can redistribute it and/or modify it under the terms of the GNU + * General Public License (GPL) as published by the Free Software + * Foundation, in version 2 as it comes in the "COPYING" file of the + * VirtualBox OSE distribution. VirtualBox OSE is distributed in the + * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind. + * + * The contents of this file may alternatively be used under the terms + * of the Common Development and Distribution License Version 1.0 + * (CDDL) only, as it comes in the "COPYING.CDDL" file of the + * VirtualBox OSE distribution, in which case the provisions of the + * CDDL are applicable instead of those of the GPL. + * + * You may elect to license modified versions of this file under the + * terms and conditions of either the GPL or the CDDL or both. + */ + + +#ifndef ___common_crypto_rsa_internal_h +#define ___common_crypto_rsa_internal_h + +/** The max number of bits we support in the modulus. */ +#define RTCRRSA_MAX_MODULUS_BITS 16384 + +#define RTASN1TMPL_TEMPLATE_FILE "../common/crypto/rsa-template.h" +#include + +#endif + + diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Runtime/common/crypto/rsa-sanity.cpp virtualbox-4.1.44-dfsg/src/VBox/Runtime/common/crypto/rsa-sanity.cpp --- virtualbox-4.1.12-dfsg/src/VBox/Runtime/common/crypto/rsa-sanity.cpp 1970-01-01 00:00:00.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Runtime/common/crypto/rsa-sanity.cpp 2015-11-11 15:09:00.000000000 +0000 @@ -0,0 +1,43 @@ +/* $Id: rsa-sanity.cpp $ */ +/** @file + * IPRT - Crypto - RSA, Sanity Checkers. + */ + +/* + * Copyright (C) 2006-2014 Oracle Corporation + * + * This file is part of VirtualBox Open Source Edition (OSE), as + * available from http://www.virtualbox.org. This file is free software; + * you can redistribute it and/or modify it under the terms of the GNU + * General Public License (GPL) as published by the Free Software + * Foundation, in version 2 as it comes in the "COPYING" file of the + * VirtualBox OSE distribution. VirtualBox OSE is distributed in the + * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind. + * + * The contents of this file may alternatively be used under the terms + * of the Common Development and Distribution License Version 1.0 + * (CDDL) only, as it comes in the "COPYING.CDDL" file of the + * VirtualBox OSE distribution, in which case the provisions of the + * CDDL are applicable instead of those of the GPL. + * + * You may elect to license modified versions of this file under the + * terms and conditions of either the GPL or the CDDL or both. + */ + + +/******************************************************************************* +* Header Files * +*******************************************************************************/ +#include "internal/iprt.h" +#include + +#include +#include + +#include "rsa-internal.h" + +/* + * Generate the code. + */ +#include + diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Runtime/common/crypto/rsa-template.h virtualbox-4.1.44-dfsg/src/VBox/Runtime/common/crypto/rsa-template.h --- virtualbox-4.1.12-dfsg/src/VBox/Runtime/common/crypto/rsa-template.h 1970-01-01 00:00:00.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Runtime/common/crypto/rsa-template.h 2015-11-11 15:09:00.000000000 +0000 @@ -0,0 +1,109 @@ +/* $Id: rsa-template.h $ */ +/** @file + * IPRT - Crypto - RSA, Code Generator Template. + */ + +/* + * Copyright (C) 2006-2014 Oracle Corporation + * + * This file is part of VirtualBox Open Source Edition (OSE), as + * available from http://www.virtualbox.org. This file is free software; + * you can redistribute it and/or modify it under the terms of the GNU + * General Public License (GPL) as published by the Free Software + * Foundation, in version 2 as it comes in the "COPYING" file of the + * VirtualBox OSE distribution. VirtualBox OSE is distributed in the + * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind. + * + * The contents of this file may alternatively be used under the terms + * of the Common Development and Distribution License Version 1.0 + * (CDDL) only, as it comes in the "COPYING.CDDL" file of the + * VirtualBox OSE distribution, in which case the provisions of the + * CDDL are applicable instead of those of the GPL. + * + * You may elect to license modified versions of this file under the + * terms and conditions of either the GPL or the CDDL or both. + */ + +#define RTASN1TMPL_DECL RTDECL + +/* + * RSA public key. + */ +#define RTASN1TMPL_TYPE RTCRRSAPUBLICKEY +#define RTASN1TMPL_EXT_NAME RTCrRsaPublicKey +#define RTASN1TMPL_INT_NAME rtCrRsaPublicKey +RTASN1TMPL_BEGIN_SEQCORE(); +RTASN1TMPL_MEMBER( Modulus, RTASN1INTEGER, RTAsn1Integer); +RTASN1TMPL_MEMBER( PublicExponent, RTASN1INTEGER, RTAsn1Integer); +RTASN1TMPL_END_SEQCORE(); +#undef RTASN1TMPL_TYPE +#undef RTASN1TMPL_EXT_NAME +#undef RTASN1TMPL_INT_NAME + + +/* + * One RSA other prime info. + */ +#define RTASN1TMPL_TYPE RTCRRSAOTHERPRIMEINFO +#define RTASN1TMPL_EXT_NAME RTCrRsaOtherPrimeInfo +#define RTASN1TMPL_INT_NAME rtCrRsaOtherPrimeInfo +RTASN1TMPL_BEGIN_SEQCORE(); +RTASN1TMPL_MEMBER( Prime, RTASN1INTEGER, RTAsn1Integer); +RTASN1TMPL_MEMBER( Exponent, RTASN1INTEGER, RTAsn1Integer); +RTASN1TMPL_MEMBER( Coefficient, RTASN1INTEGER, RTAsn1Integer); +RTASN1TMPL_END_SEQCORE(); +#undef RTASN1TMPL_TYPE +#undef RTASN1TMPL_EXT_NAME +#undef RTASN1TMPL_INT_NAME + + +/* + * Sequence of RSA other prime infos. + */ +#define RTASN1TMPL_TYPE RTCRRSAOTHERPRIMEINFOS +#define RTASN1TMPL_EXT_NAME RTCrRsaOtherPrimeInfos +#define RTASN1TMPL_INT_NAME rtCrRsaOtherPrimeInfos +RTASN1TMPL_SEQ_OF(RTCRRSAOTHERPRIMEINFO, RTCrRsaOtherPrimeInfo); +#undef RTASN1TMPL_TYPE +#undef RTASN1TMPL_EXT_NAME +#undef RTASN1TMPL_INT_NAME + + +/* + * RSA private key. + */ +#define RTASN1TMPL_TYPE RTCRRSAPRIVATEKEY +#define RTASN1TMPL_EXT_NAME RTCrRsaPrivateKey +#define RTASN1TMPL_INT_NAME rtCrRsaPrivateKey +RTASN1TMPL_BEGIN_SEQCORE(); +RTASN1TMPL_MEMBER( Version, RTASN1INTEGER, RTAsn1Integer); +RTASN1TMPL_MEMBER( Modulus, RTASN1INTEGER, RTAsn1Integer); +RTASN1TMPL_MEMBER( PublicExponent, RTASN1INTEGER, RTAsn1Integer); +RTASN1TMPL_MEMBER( PrivateExponent, RTASN1INTEGER, RTAsn1Integer); +RTASN1TMPL_MEMBER( Prime1, RTASN1INTEGER, RTAsn1Integer); +RTASN1TMPL_MEMBER( Prime2, RTASN1INTEGER, RTAsn1Integer); +RTASN1TMPL_MEMBER( Exponent1, RTASN1INTEGER, RTAsn1Integer); +RTASN1TMPL_MEMBER( Exponent2, RTASN1INTEGER, RTAsn1Integer); +RTASN1TMPL_MEMBER( Coefficient, RTASN1INTEGER, RTAsn1Integer); +RTASN1TMPL_MEMBER_OPT_ITAG_EX( OtherPrimeInfos, RTCRRSAOTHERPRIMEINFOS, RTCrRsaOtherPrimeInfos, ASN1_TAG_SEQUENCE, RTASN1TMPL_ITAG_F_UC, RT_NOTHING); +RTASN1TMPL_END_SEQCORE(); +#undef RTASN1TMPL_TYPE +#undef RTASN1TMPL_EXT_NAME +#undef RTASN1TMPL_INT_NAME + + +/* + * RSA Digest Info. + */ +#define RTASN1TMPL_TYPE RTCRRSADIGESTINFO +#define RTASN1TMPL_EXT_NAME RTCrRsaDigestInfo +#define RTASN1TMPL_INT_NAME rtCrRsaDigestInfo +RTASN1TMPL_BEGIN_SEQCORE(); +RTASN1TMPL_MEMBER( DigestAlgorithm, RTCRX509ALGORITHMIDENTIFIER, RTCrX509AlgorithmIdentifier); +RTASN1TMPL_MEMBER( Digest, RTASN1OCTETSTRING, RTAsn1OctetString); +RTASN1TMPL_END_SEQCORE(); +#undef RTASN1TMPL_TYPE +#undef RTASN1TMPL_EXT_NAME +#undef RTASN1TMPL_INT_NAME + + diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Runtime/common/crypto/RTCrStoreCertAddFromFile.cpp virtualbox-4.1.44-dfsg/src/VBox/Runtime/common/crypto/RTCrStoreCertAddFromFile.cpp --- virtualbox-4.1.12-dfsg/src/VBox/Runtime/common/crypto/RTCrStoreCertAddFromFile.cpp 1970-01-01 00:00:00.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Runtime/common/crypto/RTCrStoreCertAddFromFile.cpp 2015-11-11 15:08:59.000000000 +0000 @@ -0,0 +1,114 @@ +/* $Id: RTCrStoreCertAddFromFile.cpp $ */ +/** @file + * IPRT - Cryptographic (Certificate) Store, RTCrStoreCertAddFromFile. + */ + +/* + * Copyright (C) 2006-2014 Oracle Corporation + * + * This file is part of VirtualBox Open Source Edition (OSE), as + * available from http://www.virtualbox.org. This file is free software; + * you can redistribute it and/or modify it under the terms of the GNU + * General Public License (GPL) as published by the Free Software + * Foundation, in version 2 as it comes in the "COPYING" file of the + * VirtualBox OSE distribution. VirtualBox OSE is distributed in the + * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind. + * + * The contents of this file may alternatively be used under the terms + * of the Common Development and Distribution License Version 1.0 + * (CDDL) only, as it comes in the "COPYING.CDDL" file of the + * VirtualBox OSE distribution, in which case the provisions of the + * CDDL are applicable instead of those of the GPL. + * + * You may elect to license modified versions of this file under the + * terms and conditions of either the GPL or the CDDL or both. + */ + + +/******************************************************************************* +* Header Files * +*******************************************************************************/ +#include "internal/iprt.h" +#include + +#include +#include +#include + + +/******************************************************************************* +* Global Variables * +*******************************************************************************/ +static RTCRPEMMARKERWORD const g_aWords_Certificate[] = { { RT_STR_TUPLE("CERTIFICATE") } }; +/** X509 Certificate markers. */ +static RTCRPEMMARKER const g_aCertificateMarkers[] = { { g_aWords_Certificate, RT_ELEMENTS(g_aWords_Certificate) } }; + + +#if 0 +RTDECL(int) RTCrX509Certificates_ReadFromFile(const char *pszFilename, uint32_t fFlags, + PRTCRX509CERTIFICATES pCertificates, PRTERRINFO pErrInfo) +{ + AssertReturn(!fFlags, VERR_INVALID_FLAGS); + PCRTCRPEMSECTION pSectionHead; + int rc = RTCrPemReadFile(pszFilename, 0, g_aCertificateMarkers, RT_ELEMENTS(g_aCertificateMarkers), &pSectionHead, pErrInfo); + if (RT_SUCCESS(rc)) + { + pCertificates->Allocation + + PCRTCRPEMSECTION pCurSec = pSectionHead; + while (pCurSec) + { + + pCurSec = pCurSec->pNext; + } + + RTCrPemFreeSections(pSectionHead); + } + return rc; +} +#endif + + +RTDECL(int) RTCrStoreCertAddFromFile(RTCRSTORE hStore, uint32_t fFlags, const char *pszFilename, PRTERRINFO pErrInfo) +{ + AssertReturn(!fFlags, VERR_INVALID_FLAGS); +#if 0 + RTCRX509CERTIFICATES Certs; + int rc = RTCrX509Certificates_ReadFromFile(pszFilename, 0, &Certs, pErrInfo); + if (RT_SUCCESS(rc)) + { + for (uint32_t i = 0; i < Certs.cCerts; i++) + { + int rc2 = RTCrStoreCertAddEncoded(hStore, RTCRCERTCTX_F_ENC_X509_DER, + RTASN1CORE_GET_RAW_ASN1_PTR(&Certs.paCerts[i].SeqCore.Asn1Core), + RTASN1CORE_GET_RAW_ASN1_SIZE(&Certs.paCerts[i].SeqCore.Asn1Core), + RT_SUCCESS(rc) ? pErrInfo : NULL); + if (RT_FAILURE(rc2) && RT_SUCCESS(rc)) + rc = rc2; + } + + RTAsn1Destroy(&Certs.SetCore.Asn1Core); + } + return rc; +#else + + PCRTCRPEMSECTION pSectionHead; + int rc = RTCrPemReadFile(pszFilename, 0, g_aCertificateMarkers, RT_ELEMENTS(g_aCertificateMarkers), &pSectionHead, pErrInfo); + if (RT_SUCCESS(rc)) + { + PCRTCRPEMSECTION pCurSec = pSectionHead; + while (pCurSec) + { + int rc2 = RTCrStoreCertAddEncoded(hStore, RTCRCERTCTX_F_ENC_X509_DER, pCurSec->pbData, pCurSec->cbData, + RT_SUCCESS(rc) ? pErrInfo : NULL); + if (RT_FAILURE(rc2) && RT_SUCCESS(rc)) + rc = rc2; + pCurSec = pCurSec->pNext; + } + + RTCrPemFreeSections(pSectionHead); + } + return rc; +#endif +} + diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Runtime/common/crypto/spc-asn1-decoder.cpp virtualbox-4.1.44-dfsg/src/VBox/Runtime/common/crypto/spc-asn1-decoder.cpp --- virtualbox-4.1.12-dfsg/src/VBox/Runtime/common/crypto/spc-asn1-decoder.cpp 1970-01-01 00:00:00.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Runtime/common/crypto/spc-asn1-decoder.cpp 2015-11-11 15:09:00.000000000 +0000 @@ -0,0 +1,76 @@ +/* $Id: spc-asn1-decoder.cpp $ */ +/** @file + * IPRT - Crypto - Microsoft SPC / Authenticode, Decoder for ASN.1. + */ + +/* + * Copyright (C) 2006-2014 Oracle Corporation + * + * This file is part of VirtualBox Open Source Edition (OSE), as + * available from http://www.virtualbox.org. This file is free software; + * you can redistribute it and/or modify it under the terms of the GNU + * General Public License (GPL) as published by the Free Software + * Foundation, in version 2 as it comes in the "COPYING" file of the + * VirtualBox OSE distribution. VirtualBox OSE is distributed in the + * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind. + * + * The contents of this file may alternatively be used under the terms + * of the Common Development and Distribution License Version 1.0 + * (CDDL) only, as it comes in the "COPYING.CDDL" file of the + * VirtualBox OSE distribution, in which case the provisions of the + * CDDL are applicable instead of those of the GPL. + * + * You may elect to license modified versions of this file under the + * terms and conditions of either the GPL or the CDDL or both. + */ + + +/******************************************************************************* +* Header Files * +*******************************************************************************/ +#include "internal/iprt.h" +#include + +#include +#include +#include + +#include "spc-internal.h" + + +/* + * One SPC Serialized Object Attribute. + */ + +/** Decode the content of the octet string value if known. */ +static int rtCrSpcSerializedObject_DecodeMore(PRTASN1CURSOR pCursor, uint32_t fFlags, + PRTCRSPCSERIALIZEDOBJECT pThis, const char *pszErrorTag) + +{ + int rc; + RTASN1CURSOR SubCursor; + if (RTUuidCompareStr(pThis->Uuid.Asn1Core.uData.pUuid, RTCRSPCSERIALIZEDOBJECT_UUID_STR) == 0) + { + rc = RTAsn1MemAllocZ(&pThis->SerializedData.EncapsulatedAllocation, (void **)&pThis->u.pData, sizeof(*pThis->u.pData)); + if (RT_SUCCESS(rc)) + { + pThis->SerializedData.pEncapsulated = (PRTASN1CORE)pThis->u.pData; + pThis->enmType = RTCRSPCSERIALIZEDOBJECTTYPE_ATTRIBUTES; + + rc = RTAsn1CursorInitSubFromCore(pCursor, &pThis->SerializedData.Asn1Core, &SubCursor, "SerializedData"); + if (RT_SUCCESS(rc)) + rc = RTCrSpcSerializedObjectAttributes_DecodeAsn1(&SubCursor, 0, pThis->u.pData, "SD"); + } + } + else + return VINF_SUCCESS; + if (RT_SUCCESS(rc)) + rc = RTAsn1CursorCheckEnd(&SubCursor); + return rc; +} + +/* + * Generate the code. + */ +#include + diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Runtime/common/crypto/spc-core.cpp virtualbox-4.1.44-dfsg/src/VBox/Runtime/common/crypto/spc-core.cpp --- virtualbox-4.1.12-dfsg/src/VBox/Runtime/common/crypto/spc-core.cpp 1970-01-01 00:00:00.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Runtime/common/crypto/spc-core.cpp 2015-11-11 15:09:00.000000000 +0000 @@ -0,0 +1,84 @@ +/* $Id: spc-core.cpp $ */ +/** @file + * IPRT - Crypto - Microsoft SPC / Authenticode, Core APIs. + */ + +/* + * Copyright (C) 2006-2014 Oracle Corporation + * + * This file is part of VirtualBox Open Source Edition (OSE), as + * available from http://www.virtualbox.org. This file is free software; + * you can redistribute it and/or modify it under the terms of the GNU + * General Public License (GPL) as published by the Free Software + * Foundation, in version 2 as it comes in the "COPYING" file of the + * VirtualBox OSE distribution. VirtualBox OSE is distributed in the + * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind. + * + * The contents of this file may alternatively be used under the terms + * of the Common Development and Distribution License Version 1.0 + * (CDDL) only, as it comes in the "COPYING.CDDL" file of the + * VirtualBox OSE distribution, in which case the provisions of the + * CDDL are applicable instead of those of the GPL. + * + * You may elect to license modified versions of this file under the + * terms and conditions of either the GPL or the CDDL or both. + */ + + +/******************************************************************************* +* Header Files * +*******************************************************************************/ +#include "internal/iprt.h" +#include + +#include +#include +#include + +#include "spc-internal.h" + + +RTDECL(int) RTCrSpcSerializedPageHashes_UpdateDerivedData(PRTCRSPCSERIALIZEDPAGEHASHES pThis) +{ + pThis->pData = (PCRTCRSPCPEIMAGEPAGEHASHES)pThis->RawData.Asn1Core.uData.pv; + return VINF_SUCCESS; +} + + +/* + * SPC Indirect Data Content. + */ + +RTDECL(PCRTCRSPCSERIALIZEDOBJECTATTRIBUTE) +RTCrSpcIndirectDataContent_GetPeImageObjAttrib(PCRTCRSPCINDIRECTDATACONTENT pThis, + RTCRSPCSERIALIZEDOBJECTATTRIBUTETYPE enmType) +{ + if (pThis->Data.enmType == RTCRSPCAAOVTYPE_PE_IMAGE_DATA) + { + Assert(RTAsn1ObjId_CompareWithString(&pThis->Data.Type, RTCRSPCPEIMAGEDATA_OID) == 0); + + if ( pThis->Data.uValue.pPeImage + && pThis->Data.uValue.pPeImage->T0.File.enmChoice == RTCRSPCLINKCHOICE_MONIKER + && RTCrSpcSerializedObject_IsPresent(pThis->Data.uValue.pPeImage->T0.File.u.pMoniker) ) + { + if (pThis->Data.uValue.pPeImage->T0.File.u.pMoniker->enmType == RTCRSPCSERIALIZEDOBJECTTYPE_ATTRIBUTES) + { + Assert(RTUuidCompareStr(pThis->Data.uValue.pPeImage->T0.File.u.pMoniker->Uuid.Asn1Core.uData.pUuid, + RTCRSPCSERIALIZEDOBJECT_UUID_STR) == 0); + PCRTCRSPCSERIALIZEDOBJECTATTRIBUTES pData = pThis->Data.uValue.pPeImage->T0.File.u.pMoniker->u.pData; + if (pData) + for (uint32_t i = 0; i < pData->cItems; i++) + if (pData->paItems[i].enmType == enmType) + return &pData->paItems[i]; + } + } + } + return NULL; +} + + +/* + * Generate the standard core code. + */ +#include + diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Runtime/common/crypto/spc-init.cpp virtualbox-4.1.44-dfsg/src/VBox/Runtime/common/crypto/spc-init.cpp --- virtualbox-4.1.12-dfsg/src/VBox/Runtime/common/crypto/spc-init.cpp 1970-01-01 00:00:00.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Runtime/common/crypto/spc-init.cpp 2015-11-11 15:09:00.000000000 +0000 @@ -0,0 +1,46 @@ +/* $Id: spc-init.cpp $ */ +/** @file + * IPRT - Crypto - Microsoft SPC / Authenticode, Initialization API. + */ + +/* + * Copyright (C) 2006-2014 Oracle Corporation + * + * This file is part of VirtualBox Open Source Edition (OSE), as + * available from http://www.virtualbox.org. This file is free software; + * you can redistribute it and/or modify it under the terms of the GNU + * General Public License (GPL) as published by the Free Software + * Foundation, in version 2 as it comes in the "COPYING" file of the + * VirtualBox OSE distribution. VirtualBox OSE is distributed in the + * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind. + * + * The contents of this file may alternatively be used under the terms + * of the Common Development and Distribution License Version 1.0 + * (CDDL) only, as it comes in the "COPYING.CDDL" file of the + * VirtualBox OSE distribution, in which case the provisions of the + * CDDL are applicable instead of those of the GPL. + * + * You may elect to license modified versions of this file under the + * terms and conditions of either the GPL or the CDDL or both. + */ + + +/******************************************************************************* +* Header Files * +*******************************************************************************/ +#include "internal/iprt.h" +#include + +#include +#include +#include + +#include "spc-internal.h" + + +/* + * Generate the standard core code. + */ +#include + + diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Runtime/common/crypto/spc-internal.h virtualbox-4.1.44-dfsg/src/VBox/Runtime/common/crypto/spc-internal.h --- virtualbox-4.1.12-dfsg/src/VBox/Runtime/common/crypto/spc-internal.h 1970-01-01 00:00:00.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Runtime/common/crypto/spc-internal.h 2015-11-11 15:09:00.000000000 +0000 @@ -0,0 +1,35 @@ +/* $Id: spc-internal.h $ */ +/** @file + * IPRT - Crypto - Microsoft SPC / Authenticode, Internal Header. + */ + +/* + * Copyright (C) 2006-2014 Oracle Corporation + * + * This file is part of VirtualBox Open Source Edition (OSE), as + * available from http://www.virtualbox.org. This file is free software; + * you can redistribute it and/or modify it under the terms of the GNU + * General Public License (GPL) as published by the Free Software + * Foundation, in version 2 as it comes in the "COPYING" file of the + * VirtualBox OSE distribution. VirtualBox OSE is distributed in the + * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind. + * + * The contents of this file may alternatively be used under the terms + * of the Common Development and Distribution License Version 1.0 + * (CDDL) only, as it comes in the "COPYING.CDDL" file of the + * VirtualBox OSE distribution, in which case the provisions of the + * CDDL are applicable instead of those of the GPL. + * + * You may elect to license modified versions of this file under the + * terms and conditions of either the GPL or the CDDL or both. + */ + + +#ifndef ___common_crypto_spc_internal_h +#define ___common_crypto_spc_internal_h + +#define RTASN1TMPL_TEMPLATE_FILE "../common/crypto/spc-template.h" +#include + +#endif + diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Runtime/common/crypto/spc-sanity.cpp virtualbox-4.1.44-dfsg/src/VBox/Runtime/common/crypto/spc-sanity.cpp --- virtualbox-4.1.12-dfsg/src/VBox/Runtime/common/crypto/spc-sanity.cpp 1970-01-01 00:00:00.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Runtime/common/crypto/spc-sanity.cpp 2015-11-11 15:09:00.000000000 +0000 @@ -0,0 +1,168 @@ +/* $Id: spc-sanity.cpp $ */ +/** @file + * IPRT - Crypto - Microsoft SPC / Authenticode, Sanity Checkers. + */ + +/* + * Copyright (C) 2006-2014 Oracle Corporation + * + * This file is part of VirtualBox Open Source Edition (OSE), as + * available from http://www.virtualbox.org. This file is free software; + * you can redistribute it and/or modify it under the terms of the GNU + * General Public License (GPL) as published by the Free Software + * Foundation, in version 2 as it comes in the "COPYING" file of the + * VirtualBox OSE distribution. VirtualBox OSE is distributed in the + * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind. + * + * The contents of this file may alternatively be used under the terms + * of the Common Development and Distribution License Version 1.0 + * (CDDL) only, as it comes in the "COPYING.CDDL" file of the + * VirtualBox OSE distribution, in which case the provisions of the + * CDDL are applicable instead of those of the GPL. + * + * You may elect to license modified versions of this file under the + * terms and conditions of either the GPL or the CDDL or both. + */ + + +/******************************************************************************* +* Header Files * +*******************************************************************************/ +#include "internal/iprt.h" +#include + +#include +#include +#include + +#include "spc-internal.h" + + +RTDECL(int) RTCrSpcIndirectDataContent_CheckSanityEx(PCRTCRSPCINDIRECTDATACONTENT pIndData, + PCRTCRPKCS7SIGNEDDATA pSignedData, + uint32_t fFlags, + PRTERRINFO pErrInfo) +{ + /* + * Match up the digest algorithms (page 8, v1.0). + */ + if (pSignedData->SignerInfos.cItems != 1) + return RTErrInfoSetF(pErrInfo, VERR_CR_SPC_NOT_EXACTLY_ONE_SIGNER_INFOS, + "SpcIndirectDataContent expects SignedData to have exactly one SignerInfos entries, found: %u", + pSignedData->SignerInfos.cItems); + if (pSignedData->DigestAlgorithms.cItems != 1) + return RTErrInfoSetF(pErrInfo, VERR_CR_SPC_NOT_EXACTLY_ONE_DIGEST_ALGO, + "SpcIndirectDataContent expects SignedData to have exactly one DigestAlgorithms entries, found: %u", + pSignedData->DigestAlgorithms.cItems); + + if (RTCrX509AlgorithmIdentifier_Compare(&pIndData->DigestInfo.DigestAlgorithm, /** @todo not entirely sure about this check... */ + &pSignedData->SignerInfos.paItems[0].DigestAlgorithm) != 0) + return RTErrInfoSetF(pErrInfo, VERR_CR_SPC_SIGNED_IND_DATA_DIGEST_ALGO_MISMATCH, + "SpcIndirectDataContent DigestInfo and SignerInfos algorithms mismatch: %s vs %s", + pIndData->DigestInfo.DigestAlgorithm.Algorithm.szObjId, + pSignedData->SignerInfos.paItems[0].DigestAlgorithm.Algorithm.szObjId); + + if (RTCrX509AlgorithmIdentifier_Compare(&pIndData->DigestInfo.DigestAlgorithm, + &pSignedData->DigestAlgorithms.paItems[0]) != 0) + return RTErrInfoSetF(pErrInfo, VERR_CR_SPC_IND_DATA_DIGEST_ALGO_NOT_IN_DIGEST_ALGOS, + "SpcIndirectDataContent DigestInfo and SignedData.DigestAlgorithms[0] mismatch: %s vs %s", + pIndData->DigestInfo.DigestAlgorithm.Algorithm.szObjId, + pSignedData->DigestAlgorithms.paItems[0].Algorithm.szObjId); + + if (fFlags & RTCRSPCINDIRECTDATACONTENT_SANITY_F_ONLY_KNOWN_HASH) + { + if (RTCrX509AlgorithmIdentifier_QueryDigestType(&pIndData->DigestInfo.DigestAlgorithm) == RTDIGESTTYPE_INVALID) + return RTErrInfoSetF(pErrInfo, VERR_CR_SPC_UNKNOWN_DIGEST_ALGO, + "SpcIndirectDataContent DigestAlgortihm is not known: %s", + pIndData->DigestInfo.DigestAlgorithm.Algorithm.szObjId); + } + + uint32_t cbDigest = RTCrX509AlgorithmIdentifier_QueryDigestSize(&pIndData->DigestInfo.DigestAlgorithm); + if ( pIndData->DigestInfo.Digest.Asn1Core.cb != cbDigest + && (cbDigest != UINT32_MAX || (fFlags & RTCRSPCINDIRECTDATACONTENT_SANITY_F_ONLY_KNOWN_HASH))) + return RTErrInfoSetF(pErrInfo, VERR_CR_SPC_IND_DATA_DIGEST_SIZE_MISMATCH, + "SpcIndirectDataContent Digest size mismatch with algorithm: %u, expected %u (%s)", + pIndData->DigestInfo.Digest.Asn1Core.cb, cbDigest, + pIndData->DigestInfo.DigestAlgorithm.Algorithm.szObjId); + + /* + * Data. + */ + if (fFlags & RTCRSPCINDIRECTDATACONTENT_SANITY_F_PE_IMAGE) + { + if ( pIndData->Data.enmType != RTCRSPCAAOVTYPE_PE_IMAGE_DATA + || RTAsn1ObjId_CompareWithString(&pIndData->Data.Type, RTCRSPCPEIMAGEDATA_OID) != 0) + return RTErrInfoSetF(pErrInfo, VERR_CR_SPC_EXPECTED_PE_IMAGE_DATA, + "SpcIndirectDataContent.Data.Type is %s, expected %s (SpcPeImageData) [enmType=%d]", + pIndData->Data.Type.szObjId, RTCRSPCPEIMAGEDATA_OID, pIndData->Data.enmType); + if ( pIndData->Data.uValue.pPeImage + || !RTCrSpcPeImageData_IsPresent(pIndData->Data.uValue.pPeImage) ) + return RTErrInfoSet(pErrInfo, VERR_CR_SPC_PEIMAGE_DATA_NOT_PRESENT, + "SpcIndirectDataContent.Data.uValue/PEImage is missing"); + + if ( pIndData->Data.uValue.pPeImage->T0.File.enmChoice == RTCRSPCLINKCHOICE_MONIKER + && RTCrSpcSerializedObject_IsPresent(pIndData->Data.uValue.pPeImage->T0.File.u.pMoniker) ) + { + PCRTCRSPCSERIALIZEDOBJECT pObj = pIndData->Data.uValue.pPeImage->T0.File.u.pMoniker; + + if (pObj->Uuid.Asn1Core.cb != sizeof(RTUUID)) + return RTErrInfoSetF(pErrInfo, VERR_CR_SPC_BAD_MONIKER_UUID, + "SpcIndirectDataContent...MonikerT1.Uuid incorrect size: %u, expected %u.", + pObj->Uuid.Asn1Core.cb, sizeof(RTUUID)); + if (RTUuidCompareStr(pObj->Uuid.Asn1Core.uData.pUuid, RTCRSPCSERIALIZEDOBJECT_UUID_STR) != 0) + return RTErrInfoSetF(pErrInfo, VERR_CR_SPC_UNKNOWN_MONIKER_UUID, + "SpcIndirectDataContent...MonikerT1.Uuid mismatch: %RTuuid, expected %s.", + pObj->Uuid.Asn1Core.uData.pUuid, RTCRSPCSERIALIZEDOBJECT_UUID_STR); + + if (pObj->enmType != RTCRSPCSERIALIZEDOBJECTTYPE_ATTRIBUTES) + return RTErrInfoSetF(pErrInfo, VERR_CR_SPC_BAD_MONIKER_CHOICE, + "SpcIndirectDataContent...pMoniker->enmType=%d, expected %d.", + pObj->enmType, RTCRSPCSERIALIZEDOBJECTTYPE_ATTRIBUTES); + if (!pObj->u.pData) + return RTErrInfoSet(pErrInfo, VERR_CR_SPC_MONIKER_BAD_DATA, + "SpcIndirectDataContent...pMoniker->pData is NULL."); + + uint32_t cPageHashTabs = 0; + for (uint32_t i = 0; i < pObj->u.pData->cItems; i++) + { + PCRTCRSPCSERIALIZEDOBJECTATTRIBUTE pAttr = &pObj->u.pData->paItems[i]; + if ( RTAsn1ObjId_CompareWithString(&pAttr->Type, RTCRSPC_PE_IMAGE_HASHES_V1_OID) == 0 + || RTAsn1ObjId_CompareWithString(&pAttr->Type, RTCRSPC_PE_IMAGE_HASHES_V2_OID) == 0 ) + { + cPageHashTabs++; + AssertPtr(pAttr->u.pPageHashes->pData); + } + else + return RTErrInfoSetF(pErrInfo, VERR_CR_SPC_PEIMAGE_UNKNOWN_ATTRIBUTE, + "SpcIndirectDataContent...MonikerT1 unknown attribute %u: %s.", + i, pAttr->Type.szObjId); + } + if (cPageHashTabs > 0) + return RTErrInfoSetF(pErrInfo, VERR_CR_SPC_PEIMAGE_MULTIPLE_HASH_TABS, + "SpcIndirectDataContent...MonikerT1 multiple page hash attributes (%u).", cPageHashTabs); + + } + else if ( pIndData->Data.uValue.pPeImage->T0.File.enmChoice == RTCRSPCLINKCHOICE_FILE + && RTCrSpcString_IsPresent(&pIndData->Data.uValue.pPeImage->T0.File.u.pT2->File) ) + { + /* Could check for "<<>>" here, but it's really irrelevant. */ + } + else if ( pIndData->Data.uValue.pPeImage->T0.File.enmChoice == RTCRSPCLINKCHOICE_URL + && RTAsn1String_IsPresent(pIndData->Data.uValue.pPeImage->T0.File.u.pUrl) ) + return RTErrInfoSet(pErrInfo, VERR_CR_SPC_PEIMAGE_URL_UNEXPECTED, + "SpcIndirectDataContent.Data.uValue.pPeImage->File is an URL, expected object Moniker or File."); + else + return RTErrInfoSet(pErrInfo, VERR_CR_SPC_PEIMAGE_NO_CONTENT, + "SpcIndirectDataContent.Data.uValue.pPeImage->File has no content"); + } + + return VINF_SUCCESS; +} + + +/* + * Generate the standard core code. + */ +#include + + diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Runtime/common/crypto/spc-template.h virtualbox-4.1.44-dfsg/src/VBox/Runtime/common/crypto/spc-template.h --- virtualbox-4.1.12-dfsg/src/VBox/Runtime/common/crypto/spc-template.h 1970-01-01 00:00:00.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Runtime/common/crypto/spc-template.h 2015-11-11 15:09:00.000000000 +0000 @@ -0,0 +1,186 @@ +/* $Id: spc-template.h $ */ +/** @file + * IPRT - Crypto - Microsoft SPC / Authenticode, Code Generator Template. + */ + +/* + * Copyright (C) 2006-2014 Oracle Corporation + * + * This file is part of VirtualBox Open Source Edition (OSE), as + * available from http://www.virtualbox.org. This file is free software; + * you can redistribute it and/or modify it under the terms of the GNU + * General Public License (GPL) as published by the Free Software + * Foundation, in version 2 as it comes in the "COPYING" file of the + * VirtualBox OSE distribution. VirtualBox OSE is distributed in the + * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind. + * + * The contents of this file may alternatively be used under the terms + * of the Common Development and Distribution License Version 1.0 + * (CDDL) only, as it comes in the "COPYING.CDDL" file of the + * VirtualBox OSE distribution, in which case the provisions of the + * CDDL are applicable instead of those of the GPL. + * + * You may elect to license modified versions of this file under the + * terms and conditions of either the GPL or the CDDL or both. + */ + +#define RTASN1TMPL_DECL RTDECL + + +/* + * One SPC Serialized Page Hashes V2 Object. + */ +#define RTASN1TMPL_TYPE RTCRSPCSERIALIZEDPAGEHASHES +#define RTASN1TMPL_EXT_NAME RTCrSpcSerializedPageHashes +#define RTASN1TMPL_INT_NAME rtCrSpcSerializedPageHashes +RTASN1TMPL_BEGIN_SETCORE(); +RTASN1TMPL_MEMBER( RawData, RTASN1OCTETSTRING, RTAsn1OctetString); +RTASN1TMPL_EXEC_DECODE( rc = RTCrSpcSerializedPageHashes_UpdateDerivedData(pThis) ) /* no ; */ +RTASN1TMPL_EXEC_CLONE( rc = RTCrSpcSerializedPageHashes_UpdateDerivedData(pThis) ) /* no ; */ +RTASN1TMPL_END_SETCORE(); +#undef RTASN1TMPL_TYPE +#undef RTASN1TMPL_EXT_NAME +#undef RTASN1TMPL_INT_NAME + + +/* + * One SPC Serialized Object Attribute. + */ +#define RTASN1TMPL_TYPE RTCRSPCSERIALIZEDOBJECTATTRIBUTE +#define RTASN1TMPL_EXT_NAME RTCrSpcSerializedObjectAttribute +#define RTASN1TMPL_INT_NAME rtCrSpcSerializedObjectAttribute +RTASN1TMPL_BEGIN_SEQCORE(); +RTASN1TMPL_MEMBER( Type, RTASN1OBJID, RTAsn1ObjId); +RTASN1TMPL_MEMBER_DYN_BEGIN( RTCRSPCSERIALIZEDOBJECTATTRIBUTETYPE, enmType, Allocation); +RTASN1TMPL_MEMBER_DYN( u, pPageHashes, RTCRSPCSERIALIZEDPAGEHASHES, RTCrSpcSerializedPageHashes, Allocation, enmType, + RTCRSPCSERIALIZEDOBJECTATTRIBUTETYPE_PAGE_HASHES_V1, RTAsn1ObjId_CompareWithString(&pThis->Type, RTCRSPC_PE_IMAGE_HASHES_V1_OID) == 0); +RTASN1TMPL_MEMBER_DYN( u, pPageHashes, RTCRSPCSERIALIZEDPAGEHASHES, RTCrSpcSerializedPageHashes, Allocation, enmType, + RTCRSPCSERIALIZEDOBJECTATTRIBUTETYPE_PAGE_HASHES_V2, RTAsn1ObjId_CompareWithString(&pThis->Type, RTCRSPC_PE_IMAGE_HASHES_V2_OID) == 0); +RTASN1TMPL_MEMBER_DYN_DEFAULT( u, pCore, RTASN1CORE, RTAsn1Core, Allocation, enmType, RTCRSPCSERIALIZEDOBJECTATTRIBUTETYPE_UNKNOWN); +RTASN1TMPL_MEMBER_DYN_END( RTCRSPCSERIALIZEDOBJECTATTRIBUTETYPE, enmType, Allocation); +RTASN1TMPL_END_SEQCORE(); +#undef RTASN1TMPL_TYPE +#undef RTASN1TMPL_EXT_NAME +#undef RTASN1TMPL_INT_NAME + +/* + * Set of SPC Serialized Object Attributes. + */ +#define RTASN1TMPL_TYPE RTCRSPCSERIALIZEDOBJECTATTRIBUTES +#define RTASN1TMPL_EXT_NAME RTCrSpcSerializedObjectAttributes +#define RTASN1TMPL_INT_NAME rtCrSpcSerializedObjectAttributes +RTASN1TMPL_SET_OF(RTCRSPCSERIALIZEDOBJECTATTRIBUTE, RTCrSpcSerializedObjectAttribute); +#undef RTASN1TMPL_TYPE +#undef RTASN1TMPL_EXT_NAME +#undef RTASN1TMPL_INT_NAME + + +/* + * One SPC Serialized Object. + */ +#define RTASN1TMPL_TYPE RTCRSPCSERIALIZEDOBJECT +#define RTASN1TMPL_EXT_NAME RTCrSpcSerializedObject +#define RTASN1TMPL_INT_NAME rtCrSpcSerializedObject +RTASN1TMPL_BEGIN_SEQCORE(); +RTASN1TMPL_MEMBER_EX( Uuid, RTASN1OCTETSTRING, RTAsn1OctetString, + RTASN1TMPL_MEMBER_CONSTR_MIN_MAX(Uuid, RTASN1OCTETSTRING, RTAsn1OctetString, 16, 16, RT_NOTHING)); +RTASN1TMPL_MEMBER( SerializedData, RTASN1OCTETSTRING, RTAsn1OctetString); +RTASN1TMPL_EXEC_DECODE( rc = rtCrSpcSerializedObject_DecodeMore(pCursor, fFlags, pThis, pszErrorTag) ) /* no ; */ +RTASN1TMPL_END_SEQCORE(); +#undef RTASN1TMPL_TYPE +#undef RTASN1TMPL_EXT_NAME +#undef RTASN1TMPL_INT_NAME + + +/* + * Choosy SPC strings. + */ +#define RTASN1TMPL_TYPE RTCRSPCSTRING +#define RTASN1TMPL_EXT_NAME RTCrSpcString +#define RTASN1TMPL_INT_NAME rtCrSpcString +RTASN1TMPL_BEGIN_PCHOICE(); +RTASN1TMPL_PCHOICE_ITAG_CP( 0, RTCRSPCSTRINGCHOICE_UCS2, u.pUcs2, Ucs2, RTASN1STRING, RTAsn1BmpString); +RTASN1TMPL_PCHOICE_ITAG_CP( 1, RTCRSPCSTRINGCHOICE_ASCII, u.pAscii, Ascii, RTASN1STRING, RTAsn1Ia5String); +RTASN1TMPL_END_PCHOICE(); +#undef RTASN1TMPL_TYPE +#undef RTASN1TMPL_EXT_NAME +#undef RTASN1TMPL_INT_NAME + + +/* + * SPC Link. + */ +#define RTASN1TMPL_TYPE RTCRSPCLINK +#define RTASN1TMPL_EXT_NAME RTCrSpcLink +#define RTASN1TMPL_INT_NAME rtCrSpcLink +RTASN1TMPL_BEGIN_PCHOICE(); +RTASN1TMPL_PCHOICE_ITAG_CP( 0, RTCRSPCLINKCHOICE_URL, u.pUrl, Url, RTASN1STRING, RTAsn1Ia5String); +RTASN1TMPL_PCHOICE_ITAG( 1, RTCRSPCLINKCHOICE_MONIKER, u.pMoniker, Moniker, RTCRSPCSERIALIZEDOBJECT, RTCrSpcSerializedObject); +RTASN1TMPL_PCHOICE_XTAG( 2, RTCRSPCLINKCHOICE_FILE, u.pT2, CtxTag2, File, RTCRSPCSTRING, RTCrSpcString); +RTASN1TMPL_END_PCHOICE(); +#undef RTASN1TMPL_TYPE +#undef RTASN1TMPL_EXT_NAME +#undef RTASN1TMPL_INT_NAME + + +/* + * SPC PE Image Data. + * + * Note! This is not correctly declared in available specifications. The file + * member is tagged. Seeing the the '--#public--' comment in the specs, + * one can't only guess that there are other alternatives in that part + * of the structure that microsoft does not wish to document. + */ +#define RTASN1TMPL_TYPE RTCRSPCPEIMAGEDATA +#define RTASN1TMPL_EXT_NAME RTCrSpcPeImageData +#define RTASN1TMPL_INT_NAME rtCrSpcPeImageData +RTASN1TMPL_BEGIN_SEQCORE(); +/** @todo The flags defaults to includeResources. Could be expressed here rather + * than left to the user to deal with. */ +RTASN1TMPL_MEMBER_OPT_ITAG_EX( Flags, RTASN1BITSTRING, RTAsn1BitString, ASN1_TAG_BIT_STRING, RTASN1TMPL_ITAG_F_UP, + RTASN1TMPL_MEMBER_CONSTR_BITSTRING_MIN_MAX(Flags, 0, 3, RT_NOTHING)); +RTASN1TMPL_MEMBER_OPT_XTAG_EX( T0, CtxTag0, File, RTCRSPCLINK, RTCrSpcLink, 0, \ + RTASN1TMPL_MEMBER_CONSTR_PRESENT(T0.File, RTCrSpcLink, RT_NOTHING)); +RTASN1TMPL_END_SEQCORE(); +#undef RTASN1TMPL_TYPE +#undef RTASN1TMPL_EXT_NAME +#undef RTASN1TMPL_INT_NAME + + +/* + * SPC Attribute Type And Optional Value. + * + * Note! The value doesn't look very optional in available examples and specs. + * The available specs also claim there is an explicit 0 tag around the + * data, which isn't there is in signed executables. Gotta love Microsoft... + */ +#define RTASN1TMPL_TYPE RTCRSPCATTRIBUTETYPEANDOPTIONALVALUE +#define RTASN1TMPL_EXT_NAME RTCrSpcAttributeTypeAndOptionalValue +#define RTASN1TMPL_INT_NAME rtCrSpcAttributeTypeAndOptionalValue +RTASN1TMPL_BEGIN_SEQCORE(); +RTASN1TMPL_MEMBER( Type, RTASN1OBJID, RTAsn1ObjId); +RTASN1TMPL_MEMBER_DYN_BEGIN( RTCRSPCAAOVTYPE, enmType, Allocation); +RTASN1TMPL_MEMBER_DYN( uValue, pPeImage, RTCRSPCPEIMAGEDATA, RTCrSpcPeImageData, Allocation, enmType, + RTCRSPCAAOVTYPE_PE_IMAGE_DATA, RTAsn1ObjId_CompareWithString(&pThis->Type, RTCRSPCPEIMAGEDATA_OID) == 0); +RTASN1TMPL_MEMBER_DYN_DEFAULT( uValue, pCore, RTASN1CORE, RTAsn1Core, Allocation, enmType, RTCRSPCAAOVTYPE_UNKNOWN); +RTASN1TMPL_MEMBER_DYN_END( RTCRSPCAAOVTYPE, enmType, Allocation); +RTASN1TMPL_END_SEQCORE(); +#undef RTASN1TMPL_TYPE +#undef RTASN1TMPL_EXT_NAME +#undef RTASN1TMPL_INT_NAME + + +/* + * SPC Indirect Data Content. + */ +#define RTASN1TMPL_TYPE RTCRSPCINDIRECTDATACONTENT +#define RTASN1TMPL_EXT_NAME RTCrSpcIndirectDataContent +#define RTASN1TMPL_INT_NAME rtCrSpcIndirectDataContent +RTASN1TMPL_BEGIN_SEQCORE(); +RTASN1TMPL_MEMBER( Data, RTCRSPCATTRIBUTETYPEANDOPTIONALVALUE, RTCrSpcAttributeTypeAndOptionalValue); +RTASN1TMPL_MEMBER( DigestInfo, RTCRPKCS7DIGESTINFO, RTCrPkcs7DigestInfo); +RTASN1TMPL_END_SEQCORE(); +#undef RTASN1TMPL_TYPE +#undef RTASN1TMPL_EXT_NAME +#undef RTASN1TMPL_INT_NAME + diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Runtime/common/crypto/store.cpp virtualbox-4.1.44-dfsg/src/VBox/Runtime/common/crypto/store.cpp --- virtualbox-4.1.12-dfsg/src/VBox/Runtime/common/crypto/store.cpp 1970-01-01 00:00:00.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Runtime/common/crypto/store.cpp 2015-11-11 15:09:00.000000000 +0000 @@ -0,0 +1,440 @@ +/* $Id: store.cpp $ */ +/** @file + * IPRT - Cryptographic (Certificate) Store. + */ + +/* + * Copyright (C) 2006-2014 Oracle Corporation + * + * This file is part of VirtualBox Open Source Edition (OSE), as + * available from http://www.virtualbox.org. This file is free software; + * you can redistribute it and/or modify it under the terms of the GNU + * General Public License (GPL) as published by the Free Software + * Foundation, in version 2 as it comes in the "COPYING" file of the + * VirtualBox OSE distribution. VirtualBox OSE is distributed in the + * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind. + * + * The contents of this file may alternatively be used under the terms + * of the Common Development and Distribution License Version 1.0 + * (CDDL) only, as it comes in the "COPYING.CDDL" file of the + * VirtualBox OSE distribution, in which case the provisions of the + * CDDL are applicable instead of those of the GPL. + * + * You may elect to license modified versions of this file under the + * terms and conditions of either the GPL or the CDDL or both. + */ + + +/******************************************************************************* +* Header Files * +*******************************************************************************/ +#include "internal/iprt.h" +#include + +#include +#include +#include +#include + +#include + +#ifdef IPRT_WITH_OPENSSL +# include +#endif + +#include "store-internal.h" + + +/******************************************************************************* +* Structures and Typedefs * +*******************************************************************************/ +/** + * Internal representation of a (certificate,++) store. + */ +typedef struct RTCRSTOREINT +{ + /** Magic number (RTCRSTOREINT_MAGIC). */ + uint32_t u32Magic; + /** Reference counter. */ + uint32_t volatile cRefs; + /** Pointer to the store provider. */ + PCRTCRSTOREPROVIDER pProvider; + /** Provider specific data. */ + void *pvProvider; +} RTCRSTOREINT; +/** Pointer to the internal representation of a store. */ +typedef RTCRSTOREINT *PRTCRSTOREINT; + +/** Magic value for RTCRSTOREINT::u32Magic (Alfred Dillwyn "Dilly" Knox). */ +#define RTCRSTOREINT_MAGIC UINT32_C(0x18840723) +/** Dead magic value for RTCRSTOREINT::u32Magic. */ +#define RTCRSTOREINT_MAGIC_DEAD UINT32_C(0x19430227) + + + +/** + * Internal method a store provider uses to create a store handle. + * + * @returns IPRT status code + * @param pProvider Pointer to the store provider callback table. + * @param pvProvider Pointer to the provider specific instance data. + * @param phStore Where to return the store handle. + */ +DECLHIDDEN(int) rtCrStoreCreate(PCRTCRSTOREPROVIDER pProvider, void *pvProvider, PRTCRSTORE phStore) +{ + PRTCRSTOREINT pThis = (PRTCRSTOREINT)RTMemAlloc(sizeof(*pThis)); + if (pThis) + { + pThis->pvProvider = pvProvider; + pThis->pProvider = pProvider; + pThis->cRefs = 1; + pThis->u32Magic = RTCRSTOREINT_MAGIC; + *phStore = pThis; + return VINF_SUCCESS; + } + return VERR_NO_MEMORY; +} + + + +RTDECL(uint32_t) RTCrStoreRetain(RTCRSTORE hStore) +{ + PRTCRSTOREINT pThis = (PRTCRSTOREINT)hStore; + AssertPtrReturn(pThis, UINT32_MAX); + AssertReturn(pThis->u32Magic == RTCRSTOREINT_MAGIC, UINT32_MAX); + + uint32_t cRet = ASMAtomicIncU32(&pThis->cRefs); + Assert(cRet < 8192); + return cRet; +} + + +RTDECL(uint32_t) RTCrStoreRelease(RTCRSTORE hStore) +{ + if (hStore == NIL_RTCRSTORE) + return 0; + + PRTCRSTOREINT pThis = (PRTCRSTOREINT)hStore; + AssertPtrReturn(pThis, UINT32_MAX); + AssertReturn(pThis->u32Magic == RTCRSTOREINT_MAGIC, UINT32_MAX); + + uint32_t cStore = ASMAtomicDecU32(&pThis->cRefs); + if (!cStore) + { + ASMAtomicWriteU32(&pThis->u32Magic, RTCRSTOREINT_MAGIC_DEAD); + pThis->pProvider->pfnDestroyStore(pThis->pvProvider); + RTMemFree(pThis); + } + return cStore; +} + + +RTDECL(PCRTCRCERTCTX) RTCrStoreCertByIssuerAndSerialNo(RTCRSTORE hStore, PCRTCRX509NAME pIssuer, PCRTASN1INTEGER pSerialNo) +{ + PRTCRSTOREINT pThis = (PRTCRSTOREINT)hStore; + AssertPtrReturn(pThis, NULL); + AssertReturn(pThis->u32Magic == RTCRSTOREINT_MAGIC, NULL); + AssertPtrReturn(pIssuer, NULL); + + int rc; + RTCRSTORECERTSEARCH Search; + if (pThis->pProvider->pfnCertFindByIssuerAndSerialNo) + rc = pThis->pProvider->pfnCertFindByIssuerAndSerialNo(pThis->pvProvider, pIssuer, pSerialNo, &Search); + else + rc = pThis->pProvider->pfnCertFindAll(pThis->pvProvider, &Search); + + PCRTCRCERTCTX pCertCtx = NULL; + if (RT_SUCCESS(rc)) + { + for (;;) + { + pCertCtx = pThis->pProvider->pfnCertSearchNext(pThis->pvProvider, &Search); + if (!pCertCtx) + break; + + if ( pCertCtx->pCert + && RTCrX509Certificate_MatchIssuerAndSerialNumber(pCertCtx->pCert, pIssuer, pSerialNo)) + break; + RTCrCertCtxRelease(pCertCtx); + } + + pThis->pProvider->pfnCertSearchDestroy(pThis->pvProvider, &Search); + } + else + AssertMsg(rc == VERR_NOT_FOUND, ("%Rrc\n", rc)); + return pCertCtx; +} + + +RTDECL(int) RTCrStoreCertAddEncoded(RTCRSTORE hStore, uint32_t fFlags, void const *pvSrc, size_t cbSrc, PRTERRINFO pErrInfo) +{ + PRTCRSTOREINT pThis = (PRTCRSTOREINT)hStore; + AssertPtrReturn(pThis, VERR_INVALID_HANDLE); + AssertReturn(pThis->u32Magic == RTCRSTOREINT_MAGIC, VERR_INVALID_HANDLE); + AssertPtrReturn(pvSrc, VERR_INVALID_POINTER); + AssertReturn(cbSrc > 16 && cbSrc < _1M, VERR_OUT_OF_RANGE); + AssertMsgReturn( fFlags == RTCRCERTCTX_F_ENC_X509_DER + || fFlags == RTCRCERTCTX_F_ENC_TAF_DER + , ("Only X.509 and TAF DER supported: %#x\n", fFlags), VERR_INVALID_FLAGS); + + int rc; + if (pThis->pProvider->pfnCertAddEncoded) + rc = pThis->pProvider->pfnCertAddEncoded(pThis->pvProvider, fFlags, (uint8_t const *)pvSrc, (uint32_t)cbSrc, pErrInfo); + else + rc = VERR_WRITE_PROTECT; + + return rc; +} + + + +/* + * Searching. + * Searching. + * Searching. + */ + +RTDECL(int) RTCrStoreCertFindAll(RTCRSTORE hStore, PRTCRSTORECERTSEARCH pSearch) +{ + PRTCRSTOREINT pThis = (PRTCRSTOREINT)hStore; + AssertPtrReturn(pThis, VERR_INVALID_HANDLE); + AssertReturn(pThis->u32Magic == RTCRSTOREINT_MAGIC, VERR_INVALID_HANDLE); + AssertPtrReturn(pSearch, VERR_INVALID_POINTER); + + return pThis->pProvider->pfnCertFindAll(pThis->pvProvider, pSearch); +} + + +/** Indicator for RTCrStoreCertFindBySubjectOrAltSubjectByRfc5280 searches + * implemented by this front-end code. */ +#define RTCRSTORECERTSEARCH_BY_SUBECT_OR_ALT_SUBJECT_BY_RFC5280 UINT32_C(0x5be9145d) + +RTDECL(int) RTCrStoreCertFindBySubjectOrAltSubjectByRfc5280(RTCRSTORE hStore, PCRTCRX509NAME pSubject, + PRTCRSTORECERTSEARCH pSearch) +{ + PRTCRSTOREINT pThis = (PRTCRSTOREINT)hStore; + AssertPtrReturn(pThis, VERR_INVALID_HANDLE); + AssertReturn(pThis->u32Magic == RTCRSTOREINT_MAGIC, VERR_INVALID_HANDLE); + AssertPtrReturn(pSearch, VERR_INVALID_POINTER); + + int rc = pThis->pProvider->pfnCertFindAll(pThis->pvProvider, pSearch); + if (RT_SUCCESS(rc)) + { + pSearch->auOpaque[2] = RTCRSTORECERTSEARCH_BY_SUBECT_OR_ALT_SUBJECT_BY_RFC5280; + pSearch->auOpaque[3] = (uintptr_t)pSubject; + } + return rc; +} + + +RTDECL(PCRTCRCERTCTX) RTCrStoreCertSearchNext(RTCRSTORE hStore, PRTCRSTORECERTSEARCH pSearch) +{ + PRTCRSTOREINT pThis = (PRTCRSTOREINT)hStore; + AssertPtrReturn(pThis, NULL); + AssertReturn(pThis->u32Magic == RTCRSTOREINT_MAGIC, NULL); + AssertPtrReturn(pSearch, NULL); + + PCRTCRCERTCTX pRet; + switch (pSearch->auOpaque[2]) + { + default: + pRet = pThis->pProvider->pfnCertSearchNext(pThis->pvProvider, pSearch); + break; + + case RTCRSTORECERTSEARCH_BY_SUBECT_OR_ALT_SUBJECT_BY_RFC5280: + { + PCRTCRX509NAME pSubject = (PCRTCRX509NAME)pSearch->auOpaque[3]; + AssertPtrReturn(pSubject, NULL); + + for (;;) + { + pRet = pThis->pProvider->pfnCertSearchNext(pThis->pvProvider, pSearch); + if (!pRet) + break; + if (pRet->pCert) + { + if (RTCrX509Certificate_MatchSubjectOrAltSubjectByRfc5280(pRet->pCert, pSubject)) + break; + } + else if (pRet->pTaInfo) + { + if ( RTCrTafCertPathControls_IsPresent(&pRet->pTaInfo->CertPath) + && RTCrX509Name_MatchByRfc5280(&pRet->pTaInfo->CertPath.TaName, pSubject)) + break; + } + RTCrCertCtxRelease(pRet); + } + break; + } + } + return pRet; +} + + +RTDECL(int) RTCrStoreCertSearchDestroy(RTCRSTORE hStore, PRTCRSTORECERTSEARCH pSearch) +{ + PRTCRSTOREINT pThis = (PRTCRSTOREINT)hStore; + AssertPtrReturn(pThis, VERR_INVALID_HANDLE); + AssertReturn(pThis->u32Magic == RTCRSTOREINT_MAGIC, VERR_INVALID_HANDLE); + if (pSearch) + { + AssertPtrReturn(pSearch, VERR_INVALID_POINTER); + pThis->pProvider->pfnCertSearchDestroy(pThis->pvProvider, pSearch); + } + return VINF_SUCCESS; +} + + + +#ifdef IPRT_WITH_OPENSSL +/* + * OpenSSL helper. + * OpenSSL helper. + * OpenSSL helper. + */ + +RTDECL(int) RTCrStoreConvertToOpenSslCertStore(RTCRSTORE hStore, uint32_t fFlags, void **ppvOpenSslStore) +{ + PRTCRSTOREINT pThis = (PRTCRSTOREINT)hStore; + AssertPtrReturn(pThis, VERR_INVALID_HANDLE); + AssertReturn(pThis->u32Magic == RTCRSTOREINT_MAGIC, VERR_INVALID_HANDLE); + + /* + * Use the pfnCertFindAll method to add all certificates to the store we're returning. + */ + int rc; + X509_STORE *pOsslStore = X509_STORE_new(); + if (pOsslStore) + { + RTCRSTORECERTSEARCH Search; + rc = pThis->pProvider->pfnCertFindAll(pThis->pvProvider, &Search); + if (RT_SUCCESS(rc)) + { + do + { + PCRTCRCERTCTX pCertCtx = pThis->pProvider->pfnCertSearchNext(pThis->pvProvider, &Search); + if (!pCertCtx) + break; + + if (pCertCtx->fFlags & RTCRCERTCTX_F_ENC_X509_DER) + { + X509 *pOsslCert = NULL; + const unsigned char *pabEncoded = (const unsigned char *)pCertCtx->pabEncoded; + if (d2i_X509(&pOsslCert, &pabEncoded, pCertCtx->cbEncoded) == pOsslCert) + { + if (!X509_STORE_add_cert(pOsslStore, pOsslCert)) + rc = VERR_NO_MEMORY; + X509_free(pOsslCert); + } + } + + RTCrCertCtxRelease(pCertCtx); + } while (RT_SUCCESS(rc)); + + pThis->pProvider->pfnCertSearchDestroy(pThis->pvProvider, &Search); + if (RT_SUCCESS(rc)) + { + *ppvOpenSslStore = pOsslStore; + return VINF_SUCCESS; + } + } + X509_STORE_free(pOsslStore); + } + else + rc = VERR_NO_MEMORY; + return rc; +} + + +RTDECL(int) RTCrStoreConvertToOpenSslCertStack(RTCRSTORE hStore, uint32_t fFlags, void **ppvOpenSslStack) +{ + PRTCRSTOREINT pThis = (PRTCRSTOREINT)hStore; + AssertPtrReturn(pThis, VERR_INVALID_HANDLE); + AssertReturn(pThis->u32Magic == RTCRSTOREINT_MAGIC, VERR_INVALID_HANDLE); + + /* + * Use the pfnCertFindAll method to add all certificates to the store we're returning. + */ + int rc; + STACK_OF(X509) *pOsslStack = sk_X509_new_null(); + if (pOsslStack) + { + RTCRSTORECERTSEARCH Search; + rc = pThis->pProvider->pfnCertFindAll(pThis->pvProvider, &Search); + if (RT_SUCCESS(rc)) + { + do + { + PCRTCRCERTCTX pCertCtx = pThis->pProvider->pfnCertSearchNext(pThis->pvProvider, &Search); + if (!pCertCtx) + break; + + if (pCertCtx->fFlags & RTCRCERTCTX_F_ENC_X509_DER) + { + X509 *pOsslCert = NULL; + const unsigned char *pabEncoded = (const unsigned char *)pCertCtx->pabEncoded; + if (d2i_X509(&pOsslCert, &pabEncoded, pCertCtx->cbEncoded) == pOsslCert) + { + if (!sk_X509_push(pOsslStack, pOsslCert)) + { + rc = VERR_NO_MEMORY; + X509_free(pOsslCert); + } + } + } + + RTCrCertCtxRelease(pCertCtx); + } while (RT_SUCCESS(rc)); + + pThis->pProvider->pfnCertSearchDestroy(pThis->pvProvider, &Search); + if (RT_SUCCESS(rc)) + { + *ppvOpenSslStack = pOsslStack; + return VINF_SUCCESS; + } + } + sk_X509_pop_free(pOsslStack, X509_free); + } + else + rc = VERR_NO_MEMORY; + return rc; +} + +#endif /* IPRT_WITH_OPENSSL */ + + +/* + * Certificate context. + * Certificate context. + * Certificate context. + */ + + +RTDECL(uint32_t) RTCrCertCtxRetain(PCRTCRCERTCTX pCertCtx) +{ + AssertPtrReturn(pCertCtx, UINT32_MAX); + PRTCRCERTCTXINT pThis = RT_FROM_MEMBER(pCertCtx, RTCRCERTCTXINT, Public); + AssertReturn(pThis->u32Magic == RTCRCERTCTXINT_MAGIC, UINT32_MAX); + uint32_t cRet = ASMAtomicIncU32(&pThis->cRefs); + Assert(cRet < 64); + return cRet; +} + + +RTDECL(uint32_t) RTCrCertCtxRelease(PCRTCRCERTCTX pCertCtx) +{ + if (!pCertCtx) + return 0; + + AssertPtrReturn(pCertCtx, UINT32_MAX); + PRTCRCERTCTXINT pThis = RT_FROM_MEMBER(pCertCtx, RTCRCERTCTXINT, Public); + AssertReturn(pThis->u32Magic == RTCRCERTCTXINT_MAGIC, UINT32_MAX); + uint32_t cRet = ASMAtomicDecU32(&pThis->cRefs); + if (!cRet) + { + ASMAtomicWriteU32(&pThis->u32Magic, RTCRCERTCTXINT_MAGIC_DEAD); + pThis->pfnDtor(pThis); + } + return cRet; +} + diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Runtime/common/crypto/store-inmem.cpp virtualbox-4.1.44-dfsg/src/VBox/Runtime/common/crypto/store-inmem.cpp --- virtualbox-4.1.12-dfsg/src/VBox/Runtime/common/crypto/store-inmem.cpp 1970-01-01 00:00:00.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Runtime/common/crypto/store-inmem.cpp 2015-11-11 15:09:00.000000000 +0000 @@ -0,0 +1,362 @@ +/* $Id: store-inmem.cpp $ */ +/** @file + * IPRT - In Memory Cryptographic Certificate Store. + */ + +/* + * Copyright (C) 2006-2014 Oracle Corporation + * + * This file is part of VirtualBox Open Source Edition (OSE), as + * available from http://www.virtualbox.org. This file is free software; + * you can redistribute it and/or modify it under the terms of the GNU + * General Public License (GPL) as published by the Free Software + * Foundation, in version 2 as it comes in the "COPYING" file of the + * VirtualBox OSE distribution. VirtualBox OSE is distributed in the + * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind. + * + * The contents of this file may alternatively be used under the terms + * of the Common Development and Distribution License Version 1.0 + * (CDDL) only, as it comes in the "COPYING.CDDL" file of the + * VirtualBox OSE distribution, in which case the provisions of the + * CDDL are applicable instead of those of the GPL. + * + * You may elect to license modified versions of this file under the + * terms and conditions of either the GPL or the CDDL or both. + */ + + +/******************************************************************************* +* Header Files * +*******************************************************************************/ +#include "internal/iprt.h" +#include + +#include +#include +#include +#include + +#include "store-internal.h" + + +/******************************************************************************* +* Structures and Typedefs * +*******************************************************************************/ +/** + * A certificate entry in the in-memory store. + */ +typedef struct RTCRSTOREINMEMCERT +{ + /** The core certificate context. */ + RTCRCERTCTXINT Core; + /** Internal copy of the flag (paranoia). */ + uint32_t fFlags; + /** Decoded data. */ + union + { + /** ASN.1 core structure for generic access. */ + RTASN1CORE Asn1Core; + /** The decoded X.509 certificate (RTCRCERTCTX_F_ENC_X509_DER). */ + RTCRX509CERTIFICATE X509Cert; + /** The decoded trust anchor info (RTCRCERTCTX_F_ENC_TAF_DER). */ + RTCRTAFTRUSTANCHORINFO TaInfo; + } u; + /** Pointer to the store if still in it (no reference). */ + struct RTCRSTOREINMEM *pStore; + /** The DER encoding of the certificate. */ + uint8_t abEncoded[1]; +} RTCRSTOREINMEMCERT; +AssertCompileMembersAtSameOffset(RTCRSTOREINMEMCERT, u.X509Cert.SeqCore.Asn1Core, RTCRSTOREINMEMCERT, u.Asn1Core); +AssertCompileMembersAtSameOffset(RTCRSTOREINMEMCERT, u.TaInfo.SeqCore.Asn1Core, RTCRSTOREINMEMCERT, u.Asn1Core); +/** Pointer to an in-memory store certificate entry. */ +typedef RTCRSTOREINMEMCERT *PRTCRSTOREINMEMCERT; + + +/** + * The per instance data of a in-memory crypto store. + * + * Currently we ASSUME we don't need serialization. Add that when needed! + */ +typedef struct RTCRSTOREINMEM +{ + /** The number of certificates. */ + uint32_t cCerts; + /** The max number of certificates papCerts can store before growing it. */ + uint32_t cCertsAlloc; + /** Array of certificates. */ + PRTCRSTOREINMEMCERT *papCerts; +} RTCRSTOREINMEM; +/** Pointer to an in-memory crypto store. */ +typedef RTCRSTOREINMEM *PRTCRSTOREINMEM; + + + + +static DECLCALLBACK(void) rtCrStoreInMemCertEntry_Dtor(PRTCRCERTCTXINT pCertCtx) +{ + PRTCRSTOREINMEMCERT pEntry = (PRTCRSTOREINMEMCERT)pCertCtx; + AssertRelease(!pEntry->pStore); + + pEntry->Core.pfnDtor = NULL; + RTAsn1VtDelete(&pEntry->u.Asn1Core); + RTMemFree(pEntry); +} + + +/** + * Internal method for allocating and initalizing a certificate entry in the + * in-memory store. + * + * @returns IPRT status code. + * @param pThis The in-memory store instance. + * @param fEnc RTCRCERTCTX_F_ENC_X509_DER or RTCRCERTCTX_F_ENC_TAF_DER. + * @param pbSrc The DER encoded X.509 certificate to add. + * @param cbSrc The size of the encoded certificate. + * @param pErrInfo Where to return extended error info. Optional. + * @param ppEntry Where to return the pointer to the new entry. + */ +static int rtCrStoreInMemCreateCertEntry(PRTCRSTOREINMEM pThis, uint32_t fEnc, uint8_t const *pbSrc, uint32_t cbSrc, + PRTERRINFO pErrInfo, PRTCRSTOREINMEMCERT *ppEntry) +{ + int rc; + PRTCRSTOREINMEMCERT pEntry = (PRTCRSTOREINMEMCERT)RTMemAllocZ(RT_UOFFSETOF(RTCRSTOREINMEMCERT, abEncoded[cbSrc])); + if (pEntry) + { + memcpy(pEntry->abEncoded, pbSrc, cbSrc); + pEntry->Core.u32Magic = RTCRCERTCTXINT_MAGIC; + pEntry->Core.cRefs = 1; + pEntry->Core.pfnDtor = rtCrStoreInMemCertEntry_Dtor; + pEntry->Core.Public.fFlags = fEnc; + pEntry->Core.Public.cbEncoded = cbSrc; + pEntry->Core.Public.pabEncoded = &pEntry->abEncoded[0]; + if (fEnc == RTCRCERTCTX_F_ENC_X509_DER) + { + pEntry->Core.Public.pCert = &pEntry->u.X509Cert; + pEntry->Core.Public.pTaInfo = NULL; + } + else + { + pEntry->Core.Public.pCert = NULL; + pEntry->Core.Public.pTaInfo = &pEntry->u.TaInfo; + } + pEntry->pStore = pThis; + + RTASN1CURSORPRIMARY Cursor; + RTAsn1CursorInitPrimary(&Cursor, &pEntry->abEncoded[0], cbSrc, pErrInfo, &g_RTAsn1DefaultAllocator, + RTASN1CURSOR_FLAGS_DER, "InMem"); + if (fEnc == RTCRCERTCTX_F_ENC_X509_DER) + rc = RTCrX509Certificate_DecodeAsn1(&Cursor.Cursor, 0, &pEntry->u.X509Cert, "Cert"); + else + rc = RTCrTafTrustAnchorInfo_DecodeAsn1(&Cursor.Cursor, 0, &pEntry->u.TaInfo, "TaInfo"); + if (RT_SUCCESS(rc)) + { + if (fEnc == RTCRCERTCTX_F_ENC_X509_DER) + rc = RTCrX509Certificate_CheckSanity(&pEntry->u.X509Cert, 0, pErrInfo, "Cert"); + else + rc = RTCrTafTrustAnchorInfo_CheckSanity(&pEntry->u.TaInfo, 0, pErrInfo, "TaInfo"); + if (RT_SUCCESS(rc)) + { + *ppEntry = pEntry; + return VINF_SUCCESS; + } + + RTAsn1VtDelete(&pEntry->u.Asn1Core); + } + RTMemFree(pEntry); + } + else + rc = VERR_NO_MEMORY; + return rc; +} + + +/** + * Grows the certificate pointer array to at least @a cMin entries. + * + * @returns IPRT status code. + * @param pThis The in-memory store instance. + * @param cMin The new minimum store size. + */ +static int rtCrStoreInMemGrow(PRTCRSTOREINMEM pThis, uint32_t cMin) +{ + AssertReturn(cMin <= _1M, VERR_OUT_OF_RANGE); + AssertReturn(cMin > pThis->cCertsAlloc, VERR_INTERNAL_ERROR_3); + + if (cMin < 64) + cMin = RT_ALIGN_32(cMin, 8); + else + cMin = RT_ALIGN_32(cMin, 32); + + void *pv = RTMemRealloc(pThis->papCerts, cMin * sizeof(pThis->papCerts[0])); + if (pv) + { + pThis->papCerts = (PRTCRSTOREINMEMCERT *)pv; + for (uint32_t i = pThis->cCertsAlloc; i < cMin; i++) + pThis->papCerts[i] = NULL; + pThis->cCertsAlloc = cMin; + return VINF_SUCCESS; + } + return VERR_NO_MEMORY; +} + + + +/** @interface_method_impl{RTCRSTOREPROVIDER, pfnDestroyStore} */ +static DECLCALLBACK(void) rtCrStoreInMem_DestroyStore(void *pvProvider) +{ + PRTCRSTOREINMEM pThis = (PRTCRSTOREINMEM)pvProvider; + + while (pThis->cCerts > 0) + { + uint32_t i = --pThis->cCerts; + PRTCRSTOREINMEMCERT pEntry = pThis->papCerts[i]; + pThis->papCerts[i] = NULL; + AssertPtr(pEntry); + + pEntry->pStore = NULL; + RTCrCertCtxRelease(&pEntry->Core.Public); + } + + RTMemFree(pThis->papCerts); + pThis->papCerts = NULL; + RTMemFree(pThis); +} + + +/** @interface_method_impl{RTCRSTOREPROVIDER, pfnCertCtxQueryPrivateKey} */ +static DECLCALLBACK(int) rtCrStoreInMem_CertCtxQueryPrivateKey(void *pvProvider, PRTCRCERTCTXINT pCertCtx, + uint8_t *pbKey, size_t cbKey, size_t *pcbKeyRet) +{ + //PRTCRSTOREINMEM pThis = (PRTCRSTOREINMEM)pvProvider; + return VERR_NOT_FOUND; +} + + +/** @interface_method_impl{RTCRSTOREPROVIDER, pfnCertFindAll} */ +static DECLCALLBACK(int) rtCrStoreInMem_CertFindAll(void *pvProvider, PRTCRSTORECERTSEARCH pSearch) +{ + PRTCRSTOREINMEM pThis = (PRTCRSTOREINMEM)pvProvider; + pSearch->auOpaque[0] = ~(uintptr_t)pvProvider; + pSearch->auOpaque[1] = 0; + pSearch->auOpaque[2] = ~(uintptr_t)0; /* For the front-end API. */ + pSearch->auOpaque[3] = ~(uintptr_t)0; /* For the front-end API. */ + return VINF_SUCCESS; +} + + +/** @interface_method_impl{RTCRSTOREPROVIDER, pfnCertSearchNext} */ +static DECLCALLBACK(PCRTCRCERTCTX) rtCrStoreInMem_CertSearchNext(void *pvProvider, PRTCRSTORECERTSEARCH pSearch) +{ + PRTCRSTOREINMEM pThis = (PRTCRSTOREINMEM)pvProvider; + AssertReturn(pSearch->auOpaque[0] == ~(uintptr_t)pvProvider, NULL); + + uintptr_t i = pSearch->auOpaque[1]; + if (i < pThis->cCerts) + { + pSearch->auOpaque[1] = i + 1; + PRTCRCERTCTXINT pCertCtx = &pThis->papCerts[i]->Core; + ASMAtomicIncU32(&pCertCtx->cRefs); + return &pCertCtx->Public; + } + return NULL; +} + + +/** @interface_method_impl{RTCRSTOREPROVIDER, pfnCertSearchDestroy} */ +static DECLCALLBACK(void) rtCrStoreInMem_CertSearchDestroy(void *pvProvider, PRTCRSTORECERTSEARCH pSearch) +{ + NOREF(pvProvider); + AssertReturnVoid(pSearch->auOpaque[0] == ~(uintptr_t)pvProvider); + pSearch->auOpaque[0] = 0; + pSearch->auOpaque[1] = 0; + pSearch->auOpaque[2] = 0; + pSearch->auOpaque[3] = 0; +} + + +/** @interface_method_impl{RTCRSTOREPROVIDER, pfnCertSearchDestroy} */ +static DECLCALLBACK(int) rtCrStoreInMem_CertAddEncoded(void *pvProvider, uint32_t fFlags, + uint8_t const *pbEncoded, uint32_t cbEncoded, PRTERRINFO pErrInfo) +{ + PRTCRSTOREINMEM pThis = (PRTCRSTOREINMEM)pvProvider; + int rc; + + AssertMsgReturn( fFlags == RTCRCERTCTX_F_ENC_X509_DER + || fFlags == RTCRCERTCTX_F_ENC_TAF_DER + , ("Only X.509 and TAF DER are supported: %#x\n", fFlags), VERR_INVALID_FLAGS); + + if (pThis->cCerts + 1 > pThis->cCertsAlloc) + { + rc = rtCrStoreInMemGrow(pThis, pThis->cCerts + 1); + if (RT_FAILURE(rc)) + return rc; + } + + rc = rtCrStoreInMemCreateCertEntry(pThis, fFlags, pbEncoded, cbEncoded, pErrInfo, &pThis->papCerts[pThis->cCerts]); + if (RT_SUCCESS(rc)) + { + pThis->cCerts++; + return VINF_SUCCESS; + } + return rc; +} + + +/** + * In-memory store provider. + */ +static RTCRSTOREPROVIDER const g_rtCrStoreInMemProvider = +{ + "in-memory", + rtCrStoreInMem_DestroyStore, + rtCrStoreInMem_CertCtxQueryPrivateKey, + rtCrStoreInMem_CertFindAll, + rtCrStoreInMem_CertSearchNext, + rtCrStoreInMem_CertSearchDestroy, + rtCrStoreInMem_CertAddEncoded, + NULL, + 42 +}; + + +/** + * Common worker for RTCrStoreCreateInMem and future constructors... + * + * @returns IPRT status code. + * @param ppStore Where to return the store instance. + */ +static int rtCrStoreInMemCreateInternal(PRTCRSTOREINMEM *ppStore) +{ + PRTCRSTOREINMEM pStore = (PRTCRSTOREINMEM)RTMemAlloc(sizeof(*pStore)); + if (pStore) + { + pStore->cCerts = 0; + pStore->cCertsAlloc = 0; + pStore->papCerts = NULL; + *ppStore = pStore; + return VINF_SUCCESS; + } + *ppStore = NULL; /* shut up gcc-maybe-pita warning. */ + return VERR_NO_MEMORY; +} + + +RTDECL(int) RTCrStoreCreateInMem(PRTCRSTORE phStore, uint32_t cSizeHint) +{ + PRTCRSTOREINMEM pStore; + int rc = rtCrStoreInMemCreateInternal(&pStore); + if (RT_SUCCESS(rc)) + { + if (cSizeHint) + rc = rtCrStoreInMemGrow(pStore, RT_MIN(cSizeHint, 512)); + if (RT_SUCCESS(rc)) + { + rc = rtCrStoreCreate(&g_rtCrStoreInMemProvider, pStore, phStore); + if (RT_SUCCESS(rc)) + return VINF_SUCCESS; + } + RTMemFree(pStore); + } + return rc; +} + diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Runtime/common/crypto/store-internal.h virtualbox-4.1.44-dfsg/src/VBox/Runtime/common/crypto/store-internal.h --- virtualbox-4.1.12-dfsg/src/VBox/Runtime/common/crypto/store-internal.h 1970-01-01 00:00:00.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Runtime/common/crypto/store-internal.h 2015-11-11 15:09:00.000000000 +0000 @@ -0,0 +1,161 @@ +/* $Id: store-internal.h $ */ +/** @file + * IPRT - Cryptographic Store, Internal Header. + */ + +/* + * Copyright (C) 2006-2014 Oracle Corporation + * + * This file is part of VirtualBox Open Source Edition (OSE), as + * available from http://www.virtualbox.org. This file is free software; + * you can redistribute it and/or modify it under the terms of the GNU + * General Public License (GPL) as published by the Free Software + * Foundation, in version 2 as it comes in the "COPYING" file of the + * VirtualBox OSE distribution. VirtualBox OSE is distributed in the + * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind. + * + * The contents of this file may alternatively be used under the terms + * of the Common Development and Distribution License Version 1.0 + * (CDDL) only, as it comes in the "COPYING.CDDL" file of the + * VirtualBox OSE distribution, in which case the provisions of the + * CDDL are applicable instead of those of the GPL. + * + * You may elect to license modified versions of this file under the + * terms and conditions of either the GPL or the CDDL or both. + */ + + +#ifndef ___common_crypto_store_internal_h +#define ___common_crypto_store_internal_h + + +/** + * Internal certificate context. + * + * In addition to the externally visible structure (RTCRCERTCTX) this has the + * reference counter and store reference. (This structure may again be part of + * a larger structure internal to the store, depending on the source store.) + */ +typedef struct RTCRCERTCTXINT +{ + /** Magic number (RTCRCERTCTXINT_MAGIC). */ + uint32_t u32Magic; + /** Reference counter. */ + uint32_t volatile cRefs; + /** + * Destructor that gets called with cRefs reaches zero. + * @param pCertCtx The internal certificate context. + */ + DECLCALLBACKMEMBER(void, pfnDtor)(struct RTCRCERTCTXINT *pCertCtx); + /** The public store context. */ + RTCRCERTCTX Public; +} RTCRCERTCTXINT; +/** Pointer to an internal certificate context. */ +typedef RTCRCERTCTXINT *PRTCRCERTCTXINT; + +/** Magic value for RTCRCERTCTXINT::u32Magic (Alan Mathison Turing). */ +#define RTCRCERTCTXINT_MAGIC UINT32_C(0x19120623) +/** Dead magic value for RTCRCERTCTXINT::u32Magic. */ +#define RTCRCERTCTXINT_MAGIC_DEAD UINT32_C(0x19540607) + + +/** + * IPRT Cryptographic Store Provider. + * + * @remarks This is a very incomplete sketch. + */ +typedef struct RTCRSTOREPROVIDER +{ + /** The provider name. */ + const char *pszName; + + /** + * Called to destroy an open store. + * + * @param pvProvider The provider specific data. + */ + DECLCALLBACKMEMBER(void, pfnDestroyStore)(void *pvProvider); + + /** + * Queries the private key. + * + * @returns IPRT status code. + * @retval VERR_NOT_FOUND if not private key. + * @retval VERR_ACCESS_DENIED if the private key isn't allowed to leave the + * store. One would then have to use the pfnCertCtxSign method. + * + * @param pvProvider The provider specific data. + * @param pCertCtx The internal certificate context. + * @param pbKey Where to return the key bytes. + * @param cbKey The size of the buffer @a pbKey points to. + * @param pcbKeyRet Where to return the size of the returned key. + */ + DECLCALLBACKMEMBER(int, pfnCertCtxQueryPrivateKey)(void *pvProvider, PRTCRCERTCTXINT pCertCtx, + uint8_t *pbKey, size_t cbKey, size_t *pcbKeyRet); + + /** + * Open an enumeration of all certificates. + * + * @returns IPRT status code + * @param pvProvider The provider specific data. + * @param pSearch Pointer to opaque search state structure. The + * provider should initalize this on success. + */ + DECLCALLBACKMEMBER(int, pfnCertFindAll)(void *pvProvider, PRTCRSTORECERTSEARCH pSearch); + + /** + * Get the next certificate. + * + * @returns Reference to the next certificate context (must be released by + * caller). NULL if no more certificates in the search result. + * @param pvProvider The provider specific data. + * @param pSearch Pointer to opaque search state structure. + */ + DECLCALLBACKMEMBER(PCRTCRCERTCTX, pfnCertSearchNext)(void *pvProvider, PRTCRSTORECERTSEARCH pSearch); + + /** + * Closes a certficate search state. + * + * @param pvProvider The provider specific data. + * @param pSearch Pointer to opaque search state structure to destroy. + */ + DECLCALLBACKMEMBER(void, pfnCertSearchDestroy)(void *pvProvider, PRTCRSTORECERTSEARCH pSearch); + + /** + * Adds a certificate to the store. + * + * @param pvProvider The provider specific data. + * @param fFlags RTCRCERTCTX_F_XXX. + * @param pbEncoded The encoded certificate bytes. + * @param cbEncoded The size of the encoded certificate. + * @param pErrInfo Where to store extended error info. Optional. + */ + DECLCALLBACKMEMBER(int, pfnCertAddEncoded)(void *pvProvider, uint32_t fFlags, uint8_t const *pbEncoded, uint32_t cbEncoded, + PRTERRINFO pErrInfo); + + + /* Optional: */ + + /** + * Find all certficates matching a given issuer and serial number. + * + * (Usually only one result.) + * + * @returns IPRT status code + * @param pvProvider The provider specific data. + * @param phSearch Pointer to a provider specific search handle. + */ + DECLCALLBACKMEMBER(int, pfnCertFindByIssuerAndSerialNo)(void *pvProvider, PCRTCRX509NAME pIssuer, PCRTASN1INTEGER pSerialNo, + PRTCRSTORECERTSEARCH phSearch); + /** Non-zero end marker. */ + uintptr_t uEndMarker; +} RTCRSTOREPROVIDER; + +/** Pointer to a store provider call table. */ +typedef RTCRSTOREPROVIDER const *PCRTCRSTOREPROVIDER; + + +DECLHIDDEN(int) rtCrStoreCreate(PCRTCRSTOREPROVIDER pProvider, void *pvProvider, PRTCRSTORE phStore); + +#endif + diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Runtime/common/crypto/taf-asn1-decoder.cpp virtualbox-4.1.44-dfsg/src/VBox/Runtime/common/crypto/taf-asn1-decoder.cpp --- virtualbox-4.1.12-dfsg/src/VBox/Runtime/common/crypto/taf-asn1-decoder.cpp 1970-01-01 00:00:00.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Runtime/common/crypto/taf-asn1-decoder.cpp 2015-11-11 15:09:00.000000000 +0000 @@ -0,0 +1,44 @@ +/* $Id: taf-asn1-decoder.cpp $ */ +/** @file + * IPRT - Crypto - Trust Anchor Format (RFC-5914), Decoder for ASN.1. + */ + +/* + * Copyright (C) 2006-2014 Oracle Corporation + * + * This file is part of VirtualBox Open Source Edition (OSE), as + * available from http://www.virtualbox.org. This file is free software; + * you can redistribute it and/or modify it under the terms of the GNU + * General Public License (GPL) as published by the Free Software + * Foundation, in version 2 as it comes in the "COPYING" file of the + * VirtualBox OSE distribution. VirtualBox OSE is distributed in the + * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind. + * + * The contents of this file may alternatively be used under the terms + * of the Common Development and Distribution License Version 1.0 + * (CDDL) only, as it comes in the "COPYING.CDDL" file of the + * VirtualBox OSE distribution, in which case the provisions of the + * CDDL are applicable instead of those of the GPL. + * + * You may elect to license modified versions of this file under the + * terms and conditions of either the GPL or the CDDL or both. + */ + + +/******************************************************************************* +* Header Files * +*******************************************************************************/ +#include "internal/iprt.h" +#include + +#include +#include +#include + +#include "taf-internal.h" + +/* + * Generate the code. + */ +#include + diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Runtime/common/crypto/taf-core.cpp virtualbox-4.1.44-dfsg/src/VBox/Runtime/common/crypto/taf-core.cpp --- virtualbox-4.1.12-dfsg/src/VBox/Runtime/common/crypto/taf-core.cpp 1970-01-01 00:00:00.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Runtime/common/crypto/taf-core.cpp 2015-11-11 15:09:00.000000000 +0000 @@ -0,0 +1,41 @@ +/* $Id: taf-core.cpp $ */ +/** @file + * IPRT - Crypto - Trust Anchor Format (RFC-5914), Core API. + */ + +/* + * Copyright (C) 2006-2014 Oracle Corporation + * + * This file is part of VirtualBox Open Source Edition (OSE), as + * available from http://www.virtualbox.org. This file is free software; + * you can redistribute it and/or modify it under the terms of the GNU + * General Public License (GPL) as published by the Free Software + * Foundation, in version 2 as it comes in the "COPYING" file of the + * VirtualBox OSE distribution. VirtualBox OSE is distributed in the + * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind. + * + * The contents of this file may alternatively be used under the terms + * of the Common Development and Distribution License Version 1.0 + * (CDDL) only, as it comes in the "COPYING.CDDL" file of the + * VirtualBox OSE distribution, in which case the provisions of the + * CDDL are applicable instead of those of the GPL. + * + * You may elect to license modified versions of this file under the + * terms and conditions of either the GPL or the CDDL or both. + */ + + +/******************************************************************************* +* Header Files * +*******************************************************************************/ +#include "internal/iprt.h" +#include + +#include "taf-internal.h" + + +/* + * Generate the code. + */ +#include + diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Runtime/common/crypto/taf-init.cpp virtualbox-4.1.44-dfsg/src/VBox/Runtime/common/crypto/taf-init.cpp --- virtualbox-4.1.12-dfsg/src/VBox/Runtime/common/crypto/taf-init.cpp 1970-01-01 00:00:00.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Runtime/common/crypto/taf-init.cpp 2015-11-11 15:09:00.000000000 +0000 @@ -0,0 +1,44 @@ +/* $Id: taf-init.cpp $ */ +/** @file + * IPRT - Crypto - Trust Anchor Format (RFC-5914), Initialization API. + */ + +/* + * Copyright (C) 2006-2014 Oracle Corporation + * + * This file is part of VirtualBox Open Source Edition (OSE), as + * available from http://www.virtualbox.org. This file is free software; + * you can redistribute it and/or modify it under the terms of the GNU + * General Public License (GPL) as published by the Free Software + * Foundation, in version 2 as it comes in the "COPYING" file of the + * VirtualBox OSE distribution. VirtualBox OSE is distributed in the + * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind. + * + * The contents of this file may alternatively be used under the terms + * of the Common Development and Distribution License Version 1.0 + * (CDDL) only, as it comes in the "COPYING.CDDL" file of the + * VirtualBox OSE distribution, in which case the provisions of the + * CDDL are applicable instead of those of the GPL. + * + * You may elect to license modified versions of this file under the + * terms and conditions of either the GPL or the CDDL or both. + */ + + +/******************************************************************************* +* Header Files * +*******************************************************************************/ +#include "internal/iprt.h" +#include + +#include +#include +#include + +#include "taf-internal.h" + +/* + * Generate the code. + */ +#include + diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Runtime/common/crypto/taf-internal.h virtualbox-4.1.44-dfsg/src/VBox/Runtime/common/crypto/taf-internal.h --- virtualbox-4.1.12-dfsg/src/VBox/Runtime/common/crypto/taf-internal.h 1970-01-01 00:00:00.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Runtime/common/crypto/taf-internal.h 2015-11-11 15:09:00.000000000 +0000 @@ -0,0 +1,35 @@ +/* $Id: taf-internal.h $ */ +/** @file + * IPRT - Crypto - TAF, Internal Header. + */ + +/* + * Copyright (C) 2006-2014 Oracle Corporation + * + * This file is part of VirtualBox Open Source Edition (OSE), as + * available from http://www.virtualbox.org. This file is free software; + * you can redistribute it and/or modify it under the terms of the GNU + * General Public License (GPL) as published by the Free Software + * Foundation, in version 2 as it comes in the "COPYING" file of the + * VirtualBox OSE distribution. VirtualBox OSE is distributed in the + * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind. + * + * The contents of this file may alternatively be used under the terms + * of the Common Development and Distribution License Version 1.0 + * (CDDL) only, as it comes in the "COPYING.CDDL" file of the + * VirtualBox OSE distribution, in which case the provisions of the + * CDDL are applicable instead of those of the GPL. + * + * You may elect to license modified versions of this file under the + * terms and conditions of either the GPL or the CDDL or both. + */ + + +#ifndef ___common_crypto_taf_internal_h +#define ___common_crypto_taf_internal_h + +#define RTASN1TMPL_TEMPLATE_FILE "../common/crypto/taf-template.h" +#include + +#endif + diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Runtime/common/crypto/taf-sanity.cpp virtualbox-4.1.44-dfsg/src/VBox/Runtime/common/crypto/taf-sanity.cpp --- virtualbox-4.1.12-dfsg/src/VBox/Runtime/common/crypto/taf-sanity.cpp 1970-01-01 00:00:00.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Runtime/common/crypto/taf-sanity.cpp 2015-11-11 15:09:00.000000000 +0000 @@ -0,0 +1,42 @@ +/* $Id: taf-sanity.cpp $ */ +/** @file + * IPRT - Crypto - Trust Anchor Format (RFC-5914), Sanity Checkers. + */ + +/* + * Copyright (C) 2006-2014 Oracle Corporation + * + * This file is part of VirtualBox Open Source Edition (OSE), as + * available from http://www.virtualbox.org. This file is free software; + * you can redistribute it and/or modify it under the terms of the GNU + * General Public License (GPL) as published by the Free Software + * Foundation, in version 2 as it comes in the "COPYING" file of the + * VirtualBox OSE distribution. VirtualBox OSE is distributed in the + * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind. + * + * The contents of this file may alternatively be used under the terms + * of the Common Development and Distribution License Version 1.0 + * (CDDL) only, as it comes in the "COPYING.CDDL" file of the + * VirtualBox OSE distribution, in which case the provisions of the + * CDDL are applicable instead of those of the GPL. + * + * You may elect to license modified versions of this file under the + * terms and conditions of either the GPL or the CDDL or both. + */ + + +/******************************************************************************* +* Header Files * +*******************************************************************************/ +#include "internal/iprt.h" +#include + +#include + +#include "taf-internal.h" + +/* + * Generate the code. + */ +#include + diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Runtime/common/crypto/taf-template.h virtualbox-4.1.44-dfsg/src/VBox/Runtime/common/crypto/taf-template.h --- virtualbox-4.1.12-dfsg/src/VBox/Runtime/common/crypto/taf-template.h 1970-01-01 00:00:00.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Runtime/common/crypto/taf-template.h 2015-11-11 15:09:00.000000000 +0000 @@ -0,0 +1,94 @@ +/* $Id: taf-template.h $ */ +/** @file + * IPRT - Crypto - Trust Anchor Format (RFC-5914), Code Generator Template. + */ + +/* + * Copyright (C) 2006-2014 Oracle Corporation + * + * This file is part of VirtualBox Open Source Edition (OSE), as + * available from http://www.virtualbox.org. This file is free software; + * you can redistribute it and/or modify it under the terms of the GNU + * General Public License (GPL) as published by the Free Software + * Foundation, in version 2 as it comes in the "COPYING" file of the + * VirtualBox OSE distribution. VirtualBox OSE is distributed in the + * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind. + * + * The contents of this file may alternatively be used under the terms + * of the Common Development and Distribution License Version 1.0 + * (CDDL) only, as it comes in the "COPYING.CDDL" file of the + * VirtualBox OSE distribution, in which case the provisions of the + * CDDL are applicable instead of those of the GPL. + * + * You may elect to license modified versions of this file under the + * terms and conditions of either the GPL or the CDDL or both. + */ + +#define RTASN1TMPL_DECL RTDECL + +/* + * CertPathControls (not sequence-/set-of). + */ +#define RTASN1TMPL_TYPE RTCRTAFCERTPATHCONTROLS +#define RTASN1TMPL_EXT_NAME RTCrTafCertPathControls +#define RTASN1TMPL_INT_NAME rtCrTafCertPathControls +RTASN1TMPL_BEGIN_SEQCORE(); +RTASN1TMPL_MEMBER( TaName, RTCRX509NAME, RTCrX509Name); +RTASN1TMPL_MEMBER_OPT_ITAG( Certificate, RTCRX509CERTIFICATE, RTCrX509Certificate, 0); +RTASN1TMPL_MEMBER_OPT_ITAG( PolicySet, RTCRX509CERTIFICATEPOLICIES, RTCrX509CertificatePolicies, 1); +RTASN1TMPL_MEMBER_OPT_ITAG_BITSTRING(PolicyFlags, 3 /* max bits */, 2); +RTASN1TMPL_MEMBER_OPT_ITAG( NameConstr, RTCRX509NAMECONSTRAINTS, RTCrX509NameConstraints, 3); +RTASN1TMPL_MEMBER_OPT_ITAG_EX( PathLenConstraint, RTASN1INTEGER, RTAsn1Integer, 4, RTASN1TMPL_ITAG_F_CP, RT_NOTHING); +RTASN1TMPL_END_SEQCORE(); +#undef RTASN1TMPL_TYPE +#undef RTASN1TMPL_EXT_NAME +#undef RTASN1TMPL_INT_NAME + + +/* + * TrustAnchorInfo. + */ +#define RTASN1TMPL_TYPE RTCRTAFTRUSTANCHORINFO +#define RTASN1TMPL_EXT_NAME RTCrTafTrustAnchorInfo +#define RTASN1TMPL_INT_NAME rtCrTafTrustAnchorInfo +RTASN1TMPL_BEGIN_SEQCORE(); +RTASN1TMPL_MEMBER_DEF_ITAG_UP( Version, RTASN1INTEGER, RTAsn1Integer, ASN1_TAG_INTEGER, RTCRTAFTRUSTANCHORINFO_V1); +RTASN1TMPL_MEMBER( PubKey, RTCRX509SUBJECTPUBLICKEYINFO, RTCrX509SubjectPublicKeyInfo); +RTASN1TMPL_MEMBER( KeyIdentifier, RTASN1OCTETSTRING, RTAsn1OctetString); +RTASN1TMPL_MEMBER_OPT_UTF8_STRING_EX(TaTitle, RTASN1TMPL_MEMBER_CONSTR_MIN_MAX(TaTitleLangTag, RTASN1STRING, RTAsn1String, 1, 64, RT_NOTHING)); +RTASN1TMPL_MEMBER_OPT_ITAG_EX( CertPath, RTCRTAFCERTPATHCONTROLS, RTCrTafCertPathControls, ASN1_TAG_SEQUENCE, RTASN1TMPL_ITAG_F_UC, RT_NOTHING); +RTASN1TMPL_MEMBER_OPT_XTAG( T1, CtxTag1, Exts, RTCRX509EXTENSIONS, RTCrX509Extensions, 1); +RTASN1TMPL_MEMBER_OPT_UTF8_STRING_EX(TaTitleLangTag, RTASN1TMPL_MEMBER_CONSTR_MIN_MAX(TaTitleLangTag, RTASN1STRING, RTAsn1String, 2, 4, RT_NOTHING)); +RTASN1TMPL_END_SEQCORE(); +#undef RTASN1TMPL_TYPE +#undef RTASN1TMPL_EXT_NAME +#undef RTASN1TMPL_INT_NAME + + +/* + * TrustAnchorChoice. + */ +#define RTASN1TMPL_TYPE RTCRTAFTRUSTANCHORCHOICE +#define RTASN1TMPL_EXT_NAME RTCrTafTrustAnchorChoice +#define RTASN1TMPL_INT_NAME rtCrTafTrustAnchorChoice +RTASN1TMPL_BEGIN_PCHOICE(); +RTASN1TMPL_PCHOICE_ITAG(ASN1_TAG_SEQUENCE, RTCRTAFTRUSTANCHORCHOICEVAL_CERTIFICATE, u.pCertificate, Certificate, RTCRX509CERTIFICATE, RTCrX509Certificate); +RTASN1TMPL_PCHOICE_XTAG(1, RTCRTAFTRUSTANCHORCHOICEVAL_TBS_CERTIFICATE, u.pT1, CtxTag1, TbsCert, RTCRX509TBSCERTIFICATE, RTCrX509TbsCertificate); +RTASN1TMPL_PCHOICE_XTAG(2, RTCRTAFTRUSTANCHORCHOICEVAL_TRUST_ANCHOR_INFO, u.pT2, CtxTag2, TaInfo, RTCRTAFTRUSTANCHORINFO, RTCrTafTrustAnchorInfo); +RTASN1TMPL_END_PCHOICE(); +#undef RTASN1TMPL_TYPE +#undef RTASN1TMPL_EXT_NAME +#undef RTASN1TMPL_INT_NAME + + +/* + * TrustAnchorList + */ +#define RTASN1TMPL_TYPE RTCRTAFTRUSTANCHORLIST +#define RTASN1TMPL_EXT_NAME RTCrTafTrustAnchorList +#define RTASN1TMPL_INT_NAME rtCrTafTrustAnchorList +RTASN1TMPL_SEQ_OF(RTCRTAFTRUSTANCHORCHOICE, RTCrTafTrustAnchorChoice); +#undef RTASN1TMPL_TYPE +#undef RTASN1TMPL_EXT_NAME +#undef RTASN1TMPL_INT_NAME + diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Runtime/common/crypto/tsp-asn1-decoder.cpp virtualbox-4.1.44-dfsg/src/VBox/Runtime/common/crypto/tsp-asn1-decoder.cpp --- virtualbox-4.1.12-dfsg/src/VBox/Runtime/common/crypto/tsp-asn1-decoder.cpp 1970-01-01 00:00:00.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Runtime/common/crypto/tsp-asn1-decoder.cpp 2015-11-11 15:09:00.000000000 +0000 @@ -0,0 +1,41 @@ +/* $Id: tsp-asn1-decoder.cpp $ */ +/** @file + * IPRT - Crypto - Time-Stamp Protocol (RFC-3161), Decoder for ASN.1. + */ + +/* + * Copyright (C) 2006-2014 Oracle Corporation + * + * This file is part of VirtualBox Open Source Edition (OSE), as + * available from http://www.virtualbox.org. This file is free software; + * you can redistribute it and/or modify it under the terms of the GNU + * General Public License (GPL) as published by the Free Software + * Foundation, in version 2 as it comes in the "COPYING" file of the + * VirtualBox OSE distribution. VirtualBox OSE is distributed in the + * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind. + * + * The contents of this file may alternatively be used under the terms + * of the Common Development and Distribution License Version 1.0 + * (CDDL) only, as it comes in the "COPYING.CDDL" file of the + * VirtualBox OSE distribution, in which case the provisions of the + * CDDL are applicable instead of those of the GPL. + * + * You may elect to license modified versions of this file under the + * terms and conditions of either the GPL or the CDDL or both. + */ + + +/******************************************************************************* +* Header Files * +*******************************************************************************/ +#include "internal/iprt.h" +#include + +#include "tsp-internal.h" + + +/* + * Generate the code. + */ +#include + diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Runtime/common/crypto/tsp-core.cpp virtualbox-4.1.44-dfsg/src/VBox/Runtime/common/crypto/tsp-core.cpp --- virtualbox-4.1.12-dfsg/src/VBox/Runtime/common/crypto/tsp-core.cpp 1970-01-01 00:00:00.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Runtime/common/crypto/tsp-core.cpp 2015-11-11 15:09:00.000000000 +0000 @@ -0,0 +1,42 @@ +/* $Id: tsp-core.cpp $ */ +/** @file + * IPRT - Crypto - Time-Stamp Protocol (RFC-3161), Core API. + */ + +/* + * Copyright (C) 2006-2014 Oracle Corporation + * + * This file is part of VirtualBox Open Source Edition (OSE), as + * available from http://www.virtualbox.org. This file is free software; + * you can redistribute it and/or modify it under the terms of the GNU + * General Public License (GPL) as published by the Free Software + * Foundation, in version 2 as it comes in the "COPYING" file of the + * VirtualBox OSE distribution. VirtualBox OSE is distributed in the + * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind. + * + * The contents of this file may alternatively be used under the terms + * of the Common Development and Distribution License Version 1.0 + * (CDDL) only, as it comes in the "COPYING.CDDL" file of the + * VirtualBox OSE distribution, in which case the provisions of the + * CDDL are applicable instead of those of the GPL. + * + * You may elect to license modified versions of this file under the + * terms and conditions of either the GPL or the CDDL or both. + */ + + +/******************************************************************************* +* Header Files * +*******************************************************************************/ +#include "internal/iprt.h" +#include + +#include "tsp-internal.h" + + +/* + * Generate the code. + */ +#include + + diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Runtime/common/crypto/tsp-init.cpp virtualbox-4.1.44-dfsg/src/VBox/Runtime/common/crypto/tsp-init.cpp --- virtualbox-4.1.12-dfsg/src/VBox/Runtime/common/crypto/tsp-init.cpp 1970-01-01 00:00:00.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Runtime/common/crypto/tsp-init.cpp 2015-11-11 15:09:00.000000000 +0000 @@ -0,0 +1,41 @@ +/* $Id: tsp-init.cpp $ */ +/** @file + * IPRT - Crypto - Time-Stamp Protocol (RFC-3161), Initialization API. + */ + +/* + * Copyright (C) 2006-2014 Oracle Corporation + * + * This file is part of VirtualBox Open Source Edition (OSE), as + * available from http://www.virtualbox.org. This file is free software; + * you can redistribute it and/or modify it under the terms of the GNU + * General Public License (GPL) as published by the Free Software + * Foundation, in version 2 as it comes in the "COPYING" file of the + * VirtualBox OSE distribution. VirtualBox OSE is distributed in the + * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind. + * + * The contents of this file may alternatively be used under the terms + * of the Common Development and Distribution License Version 1.0 + * (CDDL) only, as it comes in the "COPYING.CDDL" file of the + * VirtualBox OSE distribution, in which case the provisions of the + * CDDL are applicable instead of those of the GPL. + * + * You may elect to license modified versions of this file under the + * terms and conditions of either the GPL or the CDDL or both. + */ + + +/******************************************************************************* +* Header Files * +*******************************************************************************/ +#include "internal/iprt.h" +#include + +#include "tsp-internal.h" + + +/* + * Generate the code. + */ +#include + diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Runtime/common/crypto/tsp-internal.h virtualbox-4.1.44-dfsg/src/VBox/Runtime/common/crypto/tsp-internal.h --- virtualbox-4.1.12-dfsg/src/VBox/Runtime/common/crypto/tsp-internal.h 1970-01-01 00:00:00.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Runtime/common/crypto/tsp-internal.h 2015-11-11 15:09:00.000000000 +0000 @@ -0,0 +1,35 @@ +/* $Id: tsp-internal.h $ */ +/** @file + * IPRT - Crypto - TSP, Internal Header. + */ + +/* + * Copyright (C) 2006-2014 Oracle Corporation + * + * This file is part of VirtualBox Open Source Edition (OSE), as + * available from http://www.virtualbox.org. This file is free software; + * you can redistribute it and/or modify it under the terms of the GNU + * General Public License (GPL) as published by the Free Software + * Foundation, in version 2 as it comes in the "COPYING" file of the + * VirtualBox OSE distribution. VirtualBox OSE is distributed in the + * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind. + * + * The contents of this file may alternatively be used under the terms + * of the Common Development and Distribution License Version 1.0 + * (CDDL) only, as it comes in the "COPYING.CDDL" file of the + * VirtualBox OSE distribution, in which case the provisions of the + * CDDL are applicable instead of those of the GPL. + * + * You may elect to license modified versions of this file under the + * terms and conditions of either the GPL or the CDDL or both. + */ + + +#ifndef ___common_crypto_tsp_internal_h +#define ___common_crypto_tsp_internal_h + +#define RTASN1TMPL_TEMPLATE_FILE "../common/crypto/tsp-template.h" +#include + +#endif + diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Runtime/common/crypto/tsp-sanity.cpp virtualbox-4.1.44-dfsg/src/VBox/Runtime/common/crypto/tsp-sanity.cpp --- virtualbox-4.1.12-dfsg/src/VBox/Runtime/common/crypto/tsp-sanity.cpp 1970-01-01 00:00:00.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Runtime/common/crypto/tsp-sanity.cpp 2015-11-11 15:09:00.000000000 +0000 @@ -0,0 +1,42 @@ +/* $Id: tsp-sanity.cpp $ */ +/** @file + * IPRT - Crypto - Time-Stamp Protocol (RFC-3161), Sanity Checkers. + */ + +/* + * Copyright (C) 2006-2014 Oracle Corporation + * + * This file is part of VirtualBox Open Source Edition (OSE), as + * available from http://www.virtualbox.org. This file is free software; + * you can redistribute it and/or modify it under the terms of the GNU + * General Public License (GPL) as published by the Free Software + * Foundation, in version 2 as it comes in the "COPYING" file of the + * VirtualBox OSE distribution. VirtualBox OSE is distributed in the + * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind. + * + * The contents of this file may alternatively be used under the terms + * of the Common Development and Distribution License Version 1.0 + * (CDDL) only, as it comes in the "COPYING.CDDL" file of the + * VirtualBox OSE distribution, in which case the provisions of the + * CDDL are applicable instead of those of the GPL. + * + * You may elect to license modified versions of this file under the + * terms and conditions of either the GPL or the CDDL or both. + */ + + +/******************************************************************************* +* Header Files * +*******************************************************************************/ +#include "internal/iprt.h" +#include + +#include "tsp-internal.h" + + +/* + * Generate the code. + */ +#include + + diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Runtime/common/crypto/tsp-template.h virtualbox-4.1.44-dfsg/src/VBox/Runtime/common/crypto/tsp-template.h --- virtualbox-4.1.12-dfsg/src/VBox/Runtime/common/crypto/tsp-template.h 1970-01-01 00:00:00.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Runtime/common/crypto/tsp-template.h 2015-11-11 15:09:00.000000000 +0000 @@ -0,0 +1,98 @@ +/* $Id: tsp-template.h $ */ +/** @file + * IPRT - Crypto - Time-Stamp Protocol (RFC-3161), Code Generator Template. + */ + +/* + * Copyright (C) 2006-2014 Oracle Corporation + * + * This file is part of VirtualBox Open Source Edition (OSE), as + * available from http://www.virtualbox.org. This file is free software; + * you can redistribute it and/or modify it under the terms of the GNU + * General Public License (GPL) as published by the Free Software + * Foundation, in version 2 as it comes in the "COPYING" file of the + * VirtualBox OSE distribution. VirtualBox OSE is distributed in the + * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind. + * + * The contents of this file may alternatively be used under the terms + * of the Common Development and Distribution License Version 1.0 + * (CDDL) only, as it comes in the "COPYING.CDDL" file of the + * VirtualBox OSE distribution, in which case the provisions of the + * CDDL are applicable instead of those of the GPL. + * + * You may elect to license modified versions of this file under the + * terms and conditions of either the GPL or the CDDL or both. + */ + +#define RTASN1TMPL_DECL RTDECL + +/* + * MessageImprint + */ +#define RTASN1TMPL_TYPE RTCRTSPMESSAGEIMPRINT +#define RTASN1TMPL_EXT_NAME RTCrTspMessageImprint +#define RTASN1TMPL_INT_NAME rtCrTspMessageImprint +RTASN1TMPL_BEGIN_SEQCORE(); +RTASN1TMPL_MEMBER( HashAlgorithm, RTCRX509ALGORITHMIDENTIFIER, RTCrX509AlgorithmIdentifier); +RTASN1TMPL_MEMBER( HashedMessage, RTASN1OCTETSTRING, RTAsn1OctetString); +RTASN1TMPL_END_SEQCORE(); +#undef RTASN1TMPL_TYPE +#undef RTASN1TMPL_EXT_NAME +#undef RTASN1TMPL_INT_NAME + +/* + * TimeStampReq + */ + +/* + * PKIStatusInfo + */ + +/* + * TimeStampResp + */ + +/* + * Accuracy + */ +#define RTASN1TMPL_TYPE RTCRTSPACCURACY +#define RTASN1TMPL_EXT_NAME RTCrTspAccuracy +#define RTASN1TMPL_INT_NAME rtCrTspAccuracy +RTASN1TMPL_BEGIN_SEQCORE(); +RTASN1TMPL_MEMBER_OPT_ITAG_EX( Seconds, RTASN1INTEGER, RTAsn1Integer, ASN1_TAG_INTEGER, RTASN1TMPL_ITAG_F_UP, + RTASN1TMPL_MEMBER_CONSTR_U64_MIN_MAX(Seconds, 0, UINT64_MAX, RT_NOTHING)); +/** @todo The Millis and Micros fields makes no sense if Seconds > 1, while the + * Micros field makes no sense with Millis > 1. Add constraints + * expressing this dependency. */ +RTASN1TMPL_MEMBER_OPT_ITAG_EX( Millis, RTASN1INTEGER, RTAsn1Integer, 0, RTASN1TMPL_ITAG_F_CP, + RTASN1TMPL_MEMBER_CONSTR_U64_MIN_MAX(Millis, 1, 999, RT_NOTHING)); +RTASN1TMPL_MEMBER_OPT_ITAG_EX( Micros, RTASN1INTEGER, RTAsn1Integer, 1, RTASN1TMPL_ITAG_F_CP, + RTASN1TMPL_MEMBER_CONSTR_U64_MIN_MAX(Micros, 1, 999, RT_NOTHING)); +RTASN1TMPL_END_SEQCORE(); +#undef RTASN1TMPL_TYPE +#undef RTASN1TMPL_EXT_NAME +#undef RTASN1TMPL_INT_NAME + + +/* + * TSTInfo + */ +#define RTASN1TMPL_TYPE RTCRTSPTSTINFO +#define RTASN1TMPL_EXT_NAME RTCrTspTstInfo +#define RTASN1TMPL_INT_NAME rtCrTspTstInfo +RTASN1TMPL_BEGIN_SEQCORE(); +RTASN1TMPL_MEMBER( Version, RTASN1INTEGER, RTAsn1Integer); +RTASN1TMPL_MEMBER( Policy, RTASN1OBJID, RTAsn1ObjId); +RTASN1TMPL_MEMBER( MessageImprint, RTCRTSPMESSAGEIMPRINT, RTCrTspMessageImprint); +RTASN1TMPL_MEMBER( SerialNumber, RTASN1INTEGER, RTAsn1Integer); +RTASN1TMPL_MEMBER( GenTime, RTASN1TIME, RTAsn1GeneralizedTime); +RTASN1TMPL_MEMBER_OPT_ITAG_UC( Accuracy, RTCRTSPACCURACY, RTCrTspAccuracy, ASN1_TAG_SEQUENCE); +RTASN1TMPL_MEMBER_DEF_ITAG_UP( Ordering, RTASN1BOOLEAN, RTAsn1Boolean, ASN1_TAG_BOOLEAN, 0 /*False*/); +RTASN1TMPL_MEMBER_OPT_ITAG_UP( Nonce, RTASN1INTEGER, RTAsn1Integer, ASN1_TAG_INTEGER); +RTASN1TMPL_MEMBER_OPT_XTAG( T0, CtxTag0, Tsa, RTCRX509GENERALNAME, RTCrX509GeneralName, 0); +RTASN1TMPL_MEMBER_OPT_ITAG( Extensions, RTCRX509EXTENSION, RTCrX509Extension, 1); +RTASN1TMPL_END_SEQCORE(); +#undef RTASN1TMPL_TYPE +#undef RTASN1TMPL_EXT_NAME +#undef RTASN1TMPL_INT_NAME + diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Runtime/common/crypto/x509-asn1-decoder.cpp virtualbox-4.1.44-dfsg/src/VBox/Runtime/common/crypto/x509-asn1-decoder.cpp --- virtualbox-4.1.12-dfsg/src/VBox/Runtime/common/crypto/x509-asn1-decoder.cpp 1970-01-01 00:00:00.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Runtime/common/crypto/x509-asn1-decoder.cpp 2015-11-11 15:09:00.000000000 +0000 @@ -0,0 +1,218 @@ +/* $Id: x509-asn1-decoder.cpp $ */ +/** @file + * IPRT - Crypto - X.509, Decoder for ASN.1. + */ + +/* + * Copyright (C) 2006-2014 Oracle Corporation + * + * This file is part of VirtualBox Open Source Edition (OSE), as + * available from http://www.virtualbox.org. This file is free software; + * you can redistribute it and/or modify it under the terms of the GNU + * General Public License (GPL) as published by the Free Software + * Foundation, in version 2 as it comes in the "COPYING" file of the + * VirtualBox OSE distribution. VirtualBox OSE is distributed in the + * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind. + * + * The contents of this file may alternatively be used under the terms + * of the Common Development and Distribution License Version 1.0 + * (CDDL) only, as it comes in the "COPYING.CDDL" file of the + * VirtualBox OSE distribution, in which case the provisions of the + * CDDL are applicable instead of those of the GPL. + * + * You may elect to license modified versions of this file under the + * terms and conditions of either the GPL or the CDDL or both. + */ + + +/******************************************************************************* +* Header Files * +*******************************************************************************/ +#include "internal/iprt.h" +#include + +#include +#include + +#include "x509-internal.h" + + +/* + * One X.509 Extension. + */ +RTDECL(int) RTCrX509Extension_ExtnValue_DecodeAsn1(PRTASN1CURSOR pCursor, uint32_t fFlags, + PRTCRX509EXTENSION pThis, const char *pszErrorTag) +{ + pThis->enmValue = RTCRX509EXTENSIONVALUE_UNKNOWN; + + /* + * Decode the encapsulated extension bytes if know the format. + */ + RTASN1CURSOR ValueCursor; + int rc = RTAsn1CursorInitSubFromCore(pCursor, &pThis->ExtnValue.Asn1Core, &ValueCursor, "ExtnValue"); + if (RT_FAILURE(rc)) + return rc; + pCursor = &ValueCursor; + + if (RTAsn1ObjId_CompareWithString(&pThis->ExtnId, RTCRX509_ID_CE_AUTHORITY_KEY_IDENTIFIER_OID) == 0) + { + /* 4.2.1.1 Authority Key Identifier */ + PRTCRX509AUTHORITYKEYIDENTIFIER pThat; + rc = RTAsn1MemAllocZ(&pThis->ExtnValue.EncapsulatedAllocation, (void **)&pThat, sizeof(*pThat)); + if (RT_SUCCESS(rc)) + { + pThis->ExtnValue.pEncapsulated = &pThat->SeqCore.Asn1Core; + pThis->enmValue = RTCRX509EXTENSIONVALUE_AUTHORITY_KEY_IDENTIFIER; + rc = RTCrX509AuthorityKeyIdentifier_DecodeAsn1(&ValueCursor, 0, pThat, "AuthorityKeyIdentifier"); + } + } + else if (RTAsn1ObjId_CompareWithString(&pThis->ExtnId, RTCRX509_ID_CE_OLD_AUTHORITY_KEY_IDENTIFIER_OID) == 0) + { + /* Old and obsolete version of the above, still found in microsoft certificates. */ + PRTCRX509OLDAUTHORITYKEYIDENTIFIER pThat; + rc = RTAsn1MemAllocZ(&pThis->ExtnValue.EncapsulatedAllocation, (void **)&pThat, sizeof(*pThat)); + if (RT_SUCCESS(rc)) + { + pThis->ExtnValue.pEncapsulated = &pThat->SeqCore.Asn1Core; + pThis->enmValue = RTCRX509EXTENSIONVALUE_OLD_AUTHORITY_KEY_IDENTIFIER; + rc = RTCrX509OldAuthorityKeyIdentifier_DecodeAsn1(&ValueCursor, 0, pThat, "OldAuthorityKeyIdentifier"); + } + } + else if (RTAsn1ObjId_CompareWithString(&pThis->ExtnId, RTCRX509_ID_CE_SUBJECT_KEY_IDENTIFIER_OID) == 0) + { + /* 4.2.1.2 Subject Key Identifier */ + PRTASN1OCTETSTRING pThat; + rc = RTAsn1MemAllocZ(&pThis->ExtnValue.EncapsulatedAllocation, (void **)&pThat, sizeof(*pThat)); + if (RT_SUCCESS(rc)) + { + pThis->ExtnValue.pEncapsulated = &pThat->Asn1Core; + pThis->enmValue = RTCRX509EXTENSIONVALUE_OCTET_STRING; + rc = RTAsn1CursorGetOctetString(&ValueCursor, 0, pThat, "SubjectKeyIdentifier"); + } + } + else if (RTAsn1ObjId_CompareWithString(&pThis->ExtnId, RTCRX509_ID_CE_KEY_USAGE_OID) == 0) + { + /* 4.2.1.3 Key Usage */ + PRTASN1BITSTRING pThat; + rc = RTAsn1MemAllocZ(&pThis->ExtnValue.EncapsulatedAllocation, (void **)&pThat, sizeof(*pThat)); + if (RT_SUCCESS(rc)) + { + pThis->ExtnValue.pEncapsulated = &pThat->Asn1Core; + pThis->enmValue = RTCRX509EXTENSIONVALUE_BIT_STRING; + rc = RTAsn1CursorGetBitStringEx(&ValueCursor, 0, 9, pThat, "KeyUsage"); + } + } + else if (RTAsn1ObjId_CompareWithString(&pThis->ExtnId, RTCRX509_ID_CE_CERTIFICATE_POLICIES_OID) == 0) + { + /* 4.2.1.4 Certificate Policies */ + PRTCRX509CERTIFICATEPOLICIES pThat; + rc = RTAsn1MemAllocZ(&pThis->ExtnValue.EncapsulatedAllocation, (void **)&pThat, sizeof(*pThat)); + if (RT_SUCCESS(rc)) + { + pThis->ExtnValue.pEncapsulated = &pThat->SeqCore.Asn1Core; + pThis->enmValue = RTCRX509EXTENSIONVALUE_CERTIFICATE_POLICIES; + rc = RTCrX509CertificatePolicies_DecodeAsn1(&ValueCursor, 0, pThat, "CertPolicies"); + } + } + else if (RTAsn1ObjId_CompareWithString(&pThis->ExtnId, RTCRX509_ID_CE_POLICY_MAPPINGS_OID) == 0) + { + /* 4.2.1.5 Policy Mappings */ + PRTCRX509POLICYMAPPINGS pThat; + rc = RTAsn1MemAllocZ(&pThis->ExtnValue.EncapsulatedAllocation, (void **)&pThat, sizeof(*pThat)); + if (RT_SUCCESS(rc)) + { + pThis->ExtnValue.pEncapsulated = &pThat->SeqCore.Asn1Core; + pThis->enmValue = RTCRX509EXTENSIONVALUE_POLICY_MAPPINGS; + rc = RTCrX509PolicyMappings_DecodeAsn1(&ValueCursor, 0, pThat, "PolicyMapppings"); + } + } + else if ( RTAsn1ObjId_CompareWithString(&pThis->ExtnId, RTCRX509_ID_CE_SUBJECT_ALT_NAME_OID) == 0 + || RTAsn1ObjId_CompareWithString(&pThis->ExtnId, RTCRX509_ID_CE_ISSUER_ALT_NAME_OID) == 0) + { + /* 4.2.1.6 Subject Alternative Name / 4.2.1.7 Issuer Alternative Name */ + PRTCRX509GENERALNAMES pThat; + rc = RTAsn1MemAllocZ(&pThis->ExtnValue.EncapsulatedAllocation, (void **)&pThat, sizeof(*pThat)); + if (RT_SUCCESS(rc)) + { + pThis->ExtnValue.pEncapsulated = &pThat->SeqCore.Asn1Core; + pThis->enmValue = RTCRX509EXTENSIONVALUE_GENERAL_NAMES; + rc = RTCrX509GeneralNames_DecodeAsn1(&ValueCursor, 0, pThat, "AltName"); + } + } + else if (RTAsn1ObjId_CompareWithString(&pThis->ExtnId, RTCRX509_ID_CE_BASIC_CONSTRAINTS_OID) == 0) + { + /* 4.2.1.9 Basic Constraints */ + PRTCRX509BASICCONSTRAINTS pThat; + rc = RTAsn1MemAllocZ(&pThis->ExtnValue.EncapsulatedAllocation, (void **)&pThat, sizeof(*pThat)); + if (RT_SUCCESS(rc)) + { + pThis->ExtnValue.pEncapsulated = &pThat->SeqCore.Asn1Core; + pThis->enmValue = RTCRX509EXTENSIONVALUE_BASIC_CONSTRAINTS; + rc = RTCrX509BasicConstraints_DecodeAsn1(&ValueCursor, 0, pThat, "BasicConstraints"); + } + } + else if (RTAsn1ObjId_CompareWithString(&pThis->ExtnId, RTCRX509_ID_CE_NAME_CONSTRAINTS_OID) == 0) + { + /* 4.2.1.10 Name Constraints */ + PRTCRX509NAMECONSTRAINTS pThat; + rc = RTAsn1MemAllocZ(&pThis->ExtnValue.EncapsulatedAllocation, (void **)&pThat, sizeof(*pThat)); + if (RT_SUCCESS(rc)) + { + pThis->ExtnValue.pEncapsulated = &pThat->SeqCore.Asn1Core; + pThis->enmValue = RTCRX509EXTENSIONVALUE_NAME_CONSTRAINTS; + rc = RTCrX509NameConstraints_DecodeAsn1(&ValueCursor, 0, pThat, "NameConstraints"); + } + } + else if (RTAsn1ObjId_CompareWithString(&pThis->ExtnId, RTCRX509_ID_CE_POLICY_CONSTRAINTS_OID) == 0) + { + /* 4.2.1.11 Policy Constraints */ + PRTCRX509POLICYCONSTRAINTS pThat; + rc = RTAsn1MemAllocZ(&pThis->ExtnValue.EncapsulatedAllocation, (void **)&pThat, sizeof(*pThat)); + if (RT_SUCCESS(rc)) + { + pThis->ExtnValue.pEncapsulated = &pThat->SeqCore.Asn1Core; + pThis->enmValue = RTCRX509EXTENSIONVALUE_POLICY_CONSTRAINTS; + rc = RTCrX509PolicyConstraints_DecodeAsn1(&ValueCursor, 0, pThat, "PolicyConstraints"); + } + } + else if (RTAsn1ObjId_CompareWithString(&pThis->ExtnId, RTCRX509_ID_CE_EXT_KEY_USAGE_OID) == 0) + { + /* 4.2.1.12 Extended Key Usage */ + PRTASN1SEQOFOBJIDS pThat; + rc = RTAsn1MemAllocZ(&pThis->ExtnValue.EncapsulatedAllocation, (void **)&pThat, sizeof(*pThat)); + if (RT_SUCCESS(rc)) + { + pThis->ExtnValue.pEncapsulated = &pThat->SeqCore.Asn1Core; + pThis->enmValue = RTCRX509EXTENSIONVALUE_SEQ_OF_OBJ_IDS; + rc = RTAsn1SeqOfObjIds_DecodeAsn1(&ValueCursor, 0, pThat, "ExKeyUsage"); + } + } + else if (RTAsn1ObjId_CompareWithString(&pThis->ExtnId, RTCRX509_ID_CE_EXT_KEY_USAGE_OID) == 0) + { + /* 4.2.1.14 Inhibit anyPolicy */ + PRTASN1INTEGER pThat; + rc = RTAsn1MemAllocZ(&pThis->ExtnValue.EncapsulatedAllocation, (void **)&pThat, sizeof(*pThat)); + if (RT_SUCCESS(rc)) + { + pThis->ExtnValue.pEncapsulated = &pThat->Asn1Core; + pThis->enmValue = RTCRX509EXTENSIONVALUE_INTEGER; + rc = RTAsn1CursorGetInteger(&ValueCursor, 0, pThat, "InhibitAnyPolicy"); + } + } + else + return VINF_SUCCESS; + + if (RT_SUCCESS(rc)) + rc = RTAsn1CursorCheckEnd(&ValueCursor); + + if (RT_SUCCESS(rc)) + return VINF_SUCCESS; + return rc; +} + + +/* + * Generate the code. + */ +#include + diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Runtime/common/crypto/x509-certpaths.cpp virtualbox-4.1.44-dfsg/src/VBox/Runtime/common/crypto/x509-certpaths.cpp --- virtualbox-4.1.12-dfsg/src/VBox/Runtime/common/crypto/x509-certpaths.cpp 1970-01-01 00:00:00.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Runtime/common/crypto/x509-certpaths.cpp 2015-11-11 15:09:00.000000000 +0000 @@ -0,0 +1,2830 @@ +/* $Id: x509-certpaths.cpp $ */ +/** @file + * IPRT - Crypto - X.509, Simple Certificate Path Builder & Validator. + */ + +/* + * Copyright (C) 2006-2014 Oracle Corporation + * + * This file is part of VirtualBox Open Source Edition (OSE), as + * available from http://www.virtualbox.org. This file is free software; + * you can redistribute it and/or modify it under the terms of the GNU + * General Public License (GPL) as published by the Free Software + * Foundation, in version 2 as it comes in the "COPYING" file of the + * VirtualBox OSE distribution. VirtualBox OSE is distributed in the + * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind. + * + * The contents of this file may alternatively be used under the terms + * of the Common Development and Distribution License Version 1.0 + * (CDDL) only, as it comes in the "COPYING.CDDL" file of the + * VirtualBox OSE distribution, in which case the provisions of the + * CDDL are applicable instead of those of the GPL. + * + * You may elect to license modified versions of this file under the + * terms and conditions of either the GPL or the CDDL or both. + */ + + +/******************************************************************************* +* Header Files * +*******************************************************************************/ +#include "internal/iprt.h" +#include + +#include +#include +#include +#include +#include +#include +#include +#include /* PCRTCRPKCS7SETOFCERTS */ +#include + +#include "x509-internal.h" + + +/******************************************************************************* +* Structures and Typedefs * +*******************************************************************************/ +/** + * X.509 certificate path node. + */ +typedef struct RTCRX509CERTPATHNODE +{ + /** Sibling list entry. */ + RTLISTNODE SiblingEntry; + /** List of children or leaf list entry. */ + RTLISTANCHOR ChildListOrLeafEntry; + /** Pointer to the parent node. NULL for root. */ + struct RTCRX509CERTPATHNODE *pParent; + + /** The distance between this node and the target. */ + uint32_t uDepth : 8; + /** Indicates the source of this certificate. */ + uint32_t uSrc : 3; + /** Set if this is a leaf node. */ + uint32_t fLeaf : 1; + /** Makes sure it's a 32-bit bitfield. */ + uint32_t uReserved : 20; + + /** Leaf only: The result of the last path vertification. */ + int rcVerify; + + /** Pointer to the certificate. This can be NULL only for trust anchors. */ + PCRTCRX509CERTIFICATE pCert; + + /** If the certificate or trust anchor was obtained from a store, this is the + * associated certificate context (referenced of course). This is used to + * access the trust anchor information, if present. + * + * (If this is NULL it's from a certificate array or some such given directly to + * the path building code. It's assumed the caller doesn't free these until the + * path validation/whatever is done with and the paths destroyed.) */ + PCRTCRCERTCTX pCertCtx; +} RTCRX509CERTPATHNODE; +/** Pointer to a X.509 path node. */ +typedef RTCRX509CERTPATHNODE *PRTCRX509CERTPATHNODE; + +/** @name RTCRX509CERTPATHNODE::uSrc values. + * The trusted and untrusted sources ordered in priority order, where higher + * number means high priority in case of duplicates. + * @{ */ +#define RTCRX509CERTPATHNODE_SRC_NONE 0 +#define RTCRX509CERTPATHNODE_SRC_TARGET 1 +#define RTCRX509CERTPATHNODE_SRC_UNTRUSTED_SET 2 +#define RTCRX509CERTPATHNODE_SRC_UNTRUSTED_ARRAY 3 +#define RTCRX509CERTPATHNODE_SRC_UNTRUSTED_STORE 4 +#define RTCRX509CERTPATHNODE_SRC_TRUSTED_STORE 5 +#define RTCRX509CERTPATHNODE_SRC_TRUSTED_CERT 6 +#define RTCRX509CERTPATHNODE_SRC_IS_TRUSTED(uSrc) ((uSrc) >= RTCRX509CERTPATHNODE_SRC_TRUSTED_STORE) +/** @} */ + + +/** + * Policy tree node. + */ +typedef struct RTCRX509CERTPATHSPOLICYNODE +{ + /** Sibling list entry. */ + RTLISTNODE SiblingEntry; + /** Tree depth list entry. */ + RTLISTNODE DepthEntry; + /** List of children or leaf list entry. */ + RTLISTANCHOR ChildList; + /** Pointer to the parent. */ + struct RTCRX509CERTPATHSPOLICYNODE *pParent; + + /** The policy object ID. */ + PCRTASN1OBJID pValidPolicy; + + /** Optional sequence of policy qualifiers. */ + PCRTCRX509POLICYQUALIFIERINFOS pPolicyQualifiers; + + /** The first policy ID in the exepcted policy set. */ + PCRTASN1OBJID pExpectedPolicyFirst; + /** Set if we've already mapped pExpectedPolicyFirst. */ + bool fAlreadyMapped; + /** Number of additional items in the expected policy set. */ + uint32_t cMoreExpectedPolicySet; + /** Additional items in the expected policy set. */ + PCRTASN1OBJID *papMoreExpectedPolicySet; +} RTCRX509CERTPATHSPOLICYNODE; +/** Pointer to a policy tree node. */ +typedef RTCRX509CERTPATHSPOLICYNODE *PRTCRX509CERTPATHSPOLICYNODE; + + +/** + * Path builder and validator instance. + * + * The path builder creates a tree of certificates by forward searching from the + * end-entity towards a trusted source. The leaf nodes are inserted into list + * ordered by the source of the leaf certificate and the path length (i.e. tree + * depth). + * + * The path validator works the tree from the leaf end and validates each + * potential path found by the builder. It is generally happy with one working + * path, but may be told to verify all of them. + */ +typedef struct RTCRX509CERTPATHSINT +{ + /** Magic number. */ + uint32_t u32Magic; + /** Reference counter. */ + uint32_t volatile cRefs; + + /** @name Input + * @{ */ + /** The target certificate (end entity) to build a trusted path for. */ + PCRTCRX509CERTIFICATE pTarget; + + /** Lone trusted certificate. */ + PCRTCRX509CERTIFICATE pTrustedCert; + /** Store of trusted certificates. */ + RTCRSTORE hTrustedStore; + + /** Store of untrusted certificates. */ + RTCRSTORE hUntrustedStore; + /** Array of untrusted certificates, typically from the protocol. */ + PCRTCRX509CERTIFICATE paUntrustedCerts; + /** Number of entries in paUntrusted. */ + uint32_t cUntrustedCerts; + /** Set of untrusted PKCS \#7 / CMS certificatess. */ + PCRTCRPKCS7SETOFCERTS pUntrustedCertsSet; + + /** UTC time we're going to validate the path at, requires + * RTCRX509CERTPATHSINT_F_VALID_TIME to be set. */ + RTTIMESPEC ValidTime; + /** Number of policy OIDs in the user initial policy set, 0 means anyPolicy. */ + uint32_t cInitialUserPolicySet; + /** The user initial policy set. As with all other user provided data, we + * assume it's immutable and remains valid for the usage period of the path + * builder & validator. */ + PCRTASN1OBJID *papInitialUserPolicySet; + /** Number of certificates before the user wants an explicit policy result. + * Set to UINT32_MAX no explicit policy restriction required by the user. */ + uint32_t cInitialExplicitPolicy; + /** Number of certificates before the user wants policy mapping to be + * inhibited. Set to UINT32_MAX if no initial policy mapping inhibition + * desired by the user. */ + uint32_t cInitialPolicyMappingInhibit; + /** Number of certificates before the user wants the anyPolicy to be rejected. + * Set to UINT32_MAX no explicit policy restriction required by the user. */ + uint32_t cInitialInhibitAnyPolicy; + /** Initial name restriction: Permitted subtrees. */ + PCRTCRX509GENERALSUBTREES pInitialPermittedSubtrees; + /** Initial name restriction: Excluded subtrees. */ + PCRTCRX509GENERALSUBTREES pInitialExcludedSubtrees; + + /** Flags RTCRX509CERTPATHSINT_F_XXX. */ + uint32_t fFlags; + /** @} */ + + /** Sticky status for remembering allocation errors and the like. */ + int32_t rc; + /** Where to store extended error info (optional). */ + PRTERRINFO pErrInfo; + + /** @name Path Builder Output + * @{ */ + /** Pointer to the root of the tree. This will always be non-NULL after path + * building and thus can be reliably used to tell if path building has taken + * place or not. */ + PRTCRX509CERTPATHNODE pRoot; + /** List of working leaf tree nodes. */ + RTLISTANCHOR LeafList; + /** The number of paths (leafs). */ + uint32_t cPaths; + /** @} */ + + /** Path Validator State. */ + struct + { + /** Number of nodes in the certificate path we're validating (aka 'n'). */ + uint32_t cNodes; + /** The current node (0 being the trust anchor). */ + uint32_t iNode; + + /** The root node of the valid policy tree. */ + PRTCRX509CERTPATHSPOLICYNODE pValidPolicyTree; + /** An array of length cNodes + 1 which tracks all nodes at the given (index) + * tree depth via the RTCRX509CERTPATHSPOLICYNODE::DepthEntry member. */ + PRTLISTANCHOR paValidPolicyDepthLists; + + /** Number of entries in paPermittedSubtrees (name constraints). + * If zero, no permitted name constrains currently in effect. */ + uint32_t cPermittedSubtrees; + /** The allocated size of papExcludedSubtrees */ + uint32_t cPermittedSubtreesAlloc; + /** Array of permitted subtrees we've collected so far (name constraints). */ + PCRTCRX509GENERALSUBTREE *papPermittedSubtrees; + /** Set if we end up with an empty set after calculating a name constraints + * union. */ + bool fNoPermittedSubtrees; + + /** Number of entries in paExcludedSubtrees (name constraints). + * If zero, no excluded name constrains currently in effect. */ + uint32_t cExcludedSubtrees; + /** Array of excluded subtrees we've collected so far (name constraints). */ + PCRTCRX509GENERALSUBTREES *papExcludedSubtrees; + + /** Number of non-self-issued certificates to be processed before a non-NULL + * paValidPolicyTree is required. */ + uint32_t cExplicitPolicy; + /** Number of non-self-issued certificates to be processed we stop processing + * policy mapping extensions. */ + uint32_t cInhibitPolicyMapping; + /** Number of non-self-issued certificates to be processed before a the + * anyPolicy is rejected. */ + uint32_t cInhibitAnyPolicy; + /** Number of non-self-issued certificates we're allowed to process. */ + uint32_t cMaxPathLength; + + /** The working issuer name. */ + PCRTCRX509NAME pWorkingIssuer; + /** The working public key algorithm ID. */ + PCRTASN1OBJID pWorkingPublicKeyAlgorithm; + /** The working public key algorithm parameters. */ + PCRTASN1DYNTYPE pWorkingPublicKeyParameters; + /** A bit string containing the public key. */ + PCRTASN1BITSTRING pWorkingPublicKey; + } v; + + /** An object identifier initialized to anyPolicy. */ + RTASN1OBJID AnyPolicyObjId; + + /** Temporary scratch space. */ + char szTmp[1024]; +} RTCRX509CERTPATHSINT; +typedef RTCRX509CERTPATHSINT *PRTCRX509CERTPATHSINT; + +/** Magic value for RTCRX509CERTPATHSINT::u32Magic (Bruce Schneier). */ +#define RTCRX509CERTPATHSINT_MAGIC UINT32_C(0x19630115) + +/** @name RTCRX509CERTPATHSINT_F_XXX - Certificate path build flags. + * @{ */ +#define RTCRX509CERTPATHSINT_F_VALID_TIME RT_BIT_32(0) +#define RTCRX509CERTPATHSINT_F_ELIMINATE_UNTRUSTED_PATHS RT_BIT_32(1) +#define RTCRX509CERTPATHSINT_F_VALID_MASK UINT32_C(0x00000003) +/** @} */ + + +/******************************************************************************* +* Internal Functions * +*******************************************************************************/ +static void rtCrX509CertPathsDestroyTree(PRTCRX509CERTPATHSINT pThis); +static void rtCrX509CpvCleanup(PRTCRX509CERTPATHSINT pThis); + + +/** @name Path Builder and Validator Config APIs + * @{ + */ + +RTDECL(int) RTCrX509CertPathsCreate(PRTCRX509CERTPATHS phCertPaths, PCRTCRX509CERTIFICATE pTarget) +{ + AssertPtrReturn(phCertPaths, VERR_INVALID_POINTER); + + PRTCRX509CERTPATHSINT pThis = (PRTCRX509CERTPATHSINT)RTMemAllocZ(sizeof(*pThis)); + if (pThis) + { + int rc = RTAsn1ObjId_InitFromString(&pThis->AnyPolicyObjId, RTCRX509_ID_CE_CP_ANY_POLICY_OID, &g_RTAsn1DefaultAllocator); + if (RT_SUCCESS(rc)) + { + pThis->u32Magic = RTCRX509CERTPATHSINT_MAGIC; + pThis->cRefs = 1; + pThis->pTarget = pTarget; + pThis->hTrustedStore = NIL_RTCRSTORE; + pThis->hUntrustedStore = NIL_RTCRSTORE; + pThis->cInitialExplicitPolicy = UINT32_MAX; + pThis->cInitialPolicyMappingInhibit = UINT32_MAX; + pThis->cInitialInhibitAnyPolicy = UINT32_MAX; + pThis->rc = VINF_SUCCESS; + RTListInit(&pThis->LeafList); + *phCertPaths = pThis; + return VINF_SUCCESS; + } + return rc; + } + return VERR_NO_MEMORY; +} + + +RTDECL(uint32_t) RTCrX509CertPathsRetain(RTCRX509CERTPATHS hCertPaths) +{ + PRTCRX509CERTPATHSINT pThis = hCertPaths; + AssertPtrReturn(pThis, UINT32_MAX); + + uint32_t cRefs = ASMAtomicIncU32(&pThis->cRefs); + Assert(cRefs > 0 && cRefs < 64); + return cRefs; +} + + +RTDECL(uint32_t) RTCrX509CertPathsRelease(RTCRX509CERTPATHS hCertPaths) +{ + uint32_t cRefs; + if (hCertPaths != NIL_RTCRX509CERTPATHS) + { + PRTCRX509CERTPATHSINT pThis = hCertPaths; + AssertPtrReturn(pThis, UINT32_MAX); + AssertReturn(pThis->u32Magic == RTCRX509CERTPATHSINT_MAGIC, UINT32_MAX); + + cRefs = ASMAtomicDecU32(&pThis->cRefs); + Assert(cRefs < 64); + if (!cRefs) + { + /* + * No more references, destroy the whole thing. + */ + ASMAtomicWriteU32(&pThis->u32Magic, ~RTCRX509CERTPATHSINT_MAGIC); + + /* config */ + pThis->pTarget = NULL; /* Referencing user memory. */ + pThis->pTrustedCert = NULL; /* Referencing user memory. */ + RTCrStoreRelease(pThis->hTrustedStore); + pThis->hTrustedStore = NIL_RTCRSTORE; + RTCrStoreRelease(pThis->hUntrustedStore); + pThis->hUntrustedStore = NIL_RTCRSTORE; + pThis->paUntrustedCerts = NULL; /* Referencing user memory. */ + pThis->pUntrustedCertsSet = NULL; /* Referencing user memory. */ + pThis->papInitialUserPolicySet = NULL; /* Referencing user memory. */ + pThis->pInitialPermittedSubtrees = NULL; /* Referencing user memory. */ + pThis->pInitialExcludedSubtrees = NULL; /* Referencing user memory. */ + + /* builder */ + rtCrX509CertPathsDestroyTree(pThis); + + /* validator */ + rtCrX509CpvCleanup(pThis); + + /* misc */ + RTAsn1VtDelete(&pThis->AnyPolicyObjId.Asn1Core); + + /* Finally, the instance itself. */ + RTMemFree(pThis); + } + } + else + cRefs = 0; + return cRefs; +} + + + +RTDECL(int) RTCrX509CertPathsSetTrustedStore(RTCRX509CERTPATHS hCertPaths, RTCRSTORE hTrustedStore) +{ + PRTCRX509CERTPATHSINT pThis = hCertPaths; + AssertPtrReturn(pThis, VERR_INVALID_HANDLE); + AssertReturn(pThis->u32Magic == RTCRX509CERTPATHSINT_MAGIC, VERR_INVALID_HANDLE); + AssertReturn(pThis->pRoot == NULL, VERR_WRONG_ORDER); + + if (pThis->hTrustedStore != NIL_RTCRSTORE) + { + RTCrStoreRelease(pThis->hTrustedStore); + pThis->hTrustedStore = NIL_RTCRSTORE; + } + if (hTrustedStore != NIL_RTCRSTORE) + { + AssertReturn(RTCrStoreRetain(hTrustedStore) != UINT32_MAX, VERR_INVALID_HANDLE); + pThis->hTrustedStore = hTrustedStore; + } + return VINF_SUCCESS; +} + + +RTDECL(int) RTCrX509CertPathsSetUntrustedStore(RTCRX509CERTPATHS hCertPaths, RTCRSTORE hUntrustedStore) +{ + PRTCRX509CERTPATHSINT pThis = hCertPaths; + AssertPtrReturn(pThis, VERR_INVALID_HANDLE); + AssertReturn(pThis->u32Magic == RTCRX509CERTPATHSINT_MAGIC, VERR_INVALID_HANDLE); + AssertReturn(pThis->pRoot == NULL, VERR_WRONG_ORDER); + + if (pThis->hUntrustedStore != NIL_RTCRSTORE) + { + RTCrStoreRelease(pThis->hUntrustedStore); + pThis->hUntrustedStore = NIL_RTCRSTORE; + } + if (hUntrustedStore != NIL_RTCRSTORE) + { + AssertReturn(RTCrStoreRetain(hUntrustedStore) != UINT32_MAX, VERR_INVALID_HANDLE); + pThis->hUntrustedStore = hUntrustedStore; + } + return VINF_SUCCESS; +} + + +RTDECL(int) RTCrX509CertPathsSetUntrustedArray(RTCRX509CERTPATHS hCertPaths, PCRTCRX509CERTIFICATE paCerts, uint32_t cCerts) +{ + PRTCRX509CERTPATHSINT pThis = hCertPaths; + AssertPtrReturn(pThis, VERR_INVALID_HANDLE); + AssertReturn(pThis->u32Magic == RTCRX509CERTPATHSINT_MAGIC, VERR_INVALID_HANDLE); + + pThis->paUntrustedCerts = paCerts; + pThis->cUntrustedCerts = cCerts; + return VINF_SUCCESS; +} + + +RTDECL(int) RTCrX509CertPathsSetUntrustedSet(RTCRX509CERTPATHS hCertPaths, PCRTCRPKCS7SETOFCERTS pSetOfCerts) +{ + PRTCRX509CERTPATHSINT pThis = hCertPaths; + AssertPtrReturn(pThis, VERR_INVALID_HANDLE); + AssertReturn(pThis->u32Magic == RTCRX509CERTPATHSINT_MAGIC, VERR_INVALID_HANDLE); + + pThis->pUntrustedCertsSet = pSetOfCerts; + return VINF_SUCCESS; +} + + +RTDECL(int) RTCrX509CertPathsSetValidTime(RTCRX509CERTPATHS hCertPaths, PCRTTIME pTime) +{ + PRTCRX509CERTPATHSINT pThis = hCertPaths; + AssertPtrReturn(pThis, VERR_INVALID_HANDLE); + AssertReturn(pThis->u32Magic == RTCRX509CERTPATHSINT_MAGIC, VERR_INVALID_HANDLE); + AssertReturn(pThis->pRoot == NULL, VERR_WRONG_ORDER); + + if (pTime) + { + if (RTTimeImplode(&pThis->ValidTime, pTime)) + return VERR_INVALID_PARAMETER; + pThis->fFlags |= RTCRX509CERTPATHSINT_F_VALID_TIME; + } + else + pThis->fFlags &= ~RTCRX509CERTPATHSINT_F_VALID_TIME; + return VINF_SUCCESS; +} + + +RTDECL(int) RTCrX509CertPathsSetValidTimeSpec(RTCRX509CERTPATHS hCertPaths, PCRTTIMESPEC pTimeSpec) +{ + PRTCRX509CERTPATHSINT pThis = hCertPaths; + AssertPtrReturn(pThis, VERR_INVALID_HANDLE); + AssertReturn(pThis->u32Magic == RTCRX509CERTPATHSINT_MAGIC, VERR_INVALID_HANDLE); + AssertReturn(pThis->pRoot == NULL, VERR_WRONG_ORDER); + + if (pTimeSpec) + { + pThis->ValidTime = *pTimeSpec; + pThis->fFlags |= RTCRX509CERTPATHSINT_F_VALID_TIME; + } + else + pThis->fFlags &= ~RTCRX509CERTPATHSINT_F_VALID_TIME; + return VINF_SUCCESS; +} + + +RTDECL(int) RTCrX509CertPathsCreateEx(PRTCRX509CERTPATHS phCertPaths, PCRTCRX509CERTIFICATE pTarget, RTCRSTORE hTrustedStore, + RTCRSTORE hUntrustedStore, PCRTCRX509CERTIFICATE paUntrustedCerts, uint32_t cUntrustedCerts, + PCRTTIMESPEC pValidTime) +{ + int rc = RTCrX509CertPathsCreate(phCertPaths, pTarget); + if (RT_SUCCESS(rc)) + { + PRTCRX509CERTPATHSINT pThis = *phCertPaths; + + rc = RTCrX509CertPathsSetTrustedStore(pThis, hTrustedStore); + if (RT_SUCCESS(rc)) + { + rc = RTCrX509CertPathsSetUntrustedStore(pThis, hUntrustedStore); + if (RT_SUCCESS(rc)) + { + rc = RTCrX509CertPathsSetUntrustedArray(pThis, paUntrustedCerts, cUntrustedCerts); + if (RT_SUCCESS(rc)) + { + rc = RTCrX509CertPathsSetValidTimeSpec(pThis, pValidTime); + if (RT_SUCCESS(rc)) + { + return VINF_SUCCESS; + } + } + RTCrStoreRelease(pThis->hUntrustedStore); + } + RTCrStoreRelease(pThis->hTrustedStore); + } + RTMemFree(pThis); + *phCertPaths = NIL_RTCRX509CERTPATHS; + } + return rc; +} + +/** @} */ + + + +/** @name Path Builder and Validator Common Utility Functions. + * @{ + */ + +/** + * Checks if the certificate is self-issued. + * + * @returns true / false. + * @param pNode The path node to check.. + */ +static bool rtCrX509CertPathsIsSelfIssued(PRTCRX509CERTPATHNODE pNode) +{ + return pNode->pCert + && RTCrX509Name_MatchByRfc5280(&pNode->pCert->TbsCertificate.Subject, &pNode->pCert->TbsCertificate.Issuer); +} + +/** @} */ + + + +/** @name Path Builder Functions. + * @{ + */ + +/** + * + * @returns + * @param pThis . + */ +static PRTCRX509CERTPATHNODE rtCrX509CertPathsNewNode(PRTCRX509CERTPATHSINT pThis) +{ + PRTCRX509CERTPATHNODE pNode = (PRTCRX509CERTPATHNODE)RTMemAllocZ(sizeof(*pNode)); + if (RT_LIKELY(pNode)) + { + RTListInit(&pNode->SiblingEntry); + RTListInit(&pNode->ChildListOrLeafEntry); + pNode->rcVerify = VERR_CR_X509_NOT_VERIFIED; + + return pNode; + } + + pThis->rc = RTErrInfoSet(pThis->pErrInfo, VERR_NO_MEMORY, "No memory for path node"); + return NULL; +} + + +static void rtCrX509CertPathsDestroyNode(PRTCRX509CERTPATHNODE pNode) +{ + if (pNode->pCertCtx) + { + RTCrCertCtxRelease(pNode->pCertCtx); + pNode->pCertCtx = NULL; + } + RT_ZERO(*pNode); + RTMemFree(pNode); +} + + +static void rtCrX509CertPathsAddIssuer(PRTCRX509CERTPATHSINT pThis, PRTCRX509CERTPATHNODE pParent, + PCRTCRX509CERTIFICATE pCert, PCRTCRCERTCTX pCertCtx, uint8_t uSrc) +{ + /* + * Check if we've seen this certificate already in the current path or + * among the already gathered issuers. + */ + if (pCert) + { + /* No duplicate certificates in the path. */ + PRTCRX509CERTPATHNODE pTmpNode = pParent; + while (pTmpNode) + { + Assert(pTmpNode->pCert); + if ( pTmpNode->pCert == pCert + || RTCrX509Certificate_Compare(pTmpNode->pCert, pCert) == 0) + return; + pTmpNode = pTmpNode->pParent; + } + + /* No duplicate tree branches. */ + RTListForEach(&pParent->ChildListOrLeafEntry, pTmpNode, RTCRX509CERTPATHNODE, SiblingEntry) + { + if (RTCrX509Certificate_Compare(pTmpNode->pCert, pCert) == 0) + return; + } + } + else + Assert(pCertCtx); + + /* + * Reference the context core before making the allocation. + */ + if (pCertCtx) + AssertReturnVoidStmt(RTCrCertCtxRetain(pCertCtx) != UINT32_MAX, + pThis->rc = RTErrInfoSetF(pThis->pErrInfo, VERR_CR_X509_CPB_BAD_CERT_CTX, + "Bad pCertCtx=%p", pCertCtx)); + + /* + * We haven't see it, append it as a child. + */ + PRTCRX509CERTPATHNODE pNew = rtCrX509CertPathsNewNode(pThis); + if (pNew) + { + pNew->pParent = pParent; + pNew->pCert = pCert; + pNew->pCertCtx = pCertCtx; + pNew->uSrc = uSrc; + pNew->uDepth = pParent->uDepth + 1; + RTListAppend(&pParent->ChildListOrLeafEntry, &pNew->SiblingEntry); + } + else + RTCrCertCtxRelease(pCertCtx); +} + + +static void rtCrX509CertPathsGetIssuersFromStore(PRTCRX509CERTPATHSINT pThis, PRTCRX509CERTPATHNODE pNode, + PCRTCRX509NAME pIssuer, RTCRSTORE hStore, uint8_t uSrc) +{ + RTCRSTORECERTSEARCH Search; + int rc = RTCrStoreCertFindBySubjectOrAltSubjectByRfc5280(hStore, pIssuer, &Search); + if (RT_SUCCESS(rc)) + { + PCRTCRCERTCTX pCertCtx; + while ((pCertCtx = RTCrStoreCertSearchNext(hStore, &Search)) != NULL) + { + if ( pCertCtx->pCert + || ( RTCRX509CERTPATHNODE_SRC_IS_TRUSTED(uSrc) + && pCertCtx->pTaInfo) ) + rtCrX509CertPathsAddIssuer(pThis, pNode, pCertCtx->pCert, pCertCtx, uSrc); + RTCrCertCtxRelease(pCertCtx); + } + RTCrStoreCertSearchDestroy(hStore, &Search); + } +} + + +static void rtCrX509CertPathsGetIssuers(PRTCRX509CERTPATHSINT pThis, PRTCRX509CERTPATHNODE pNode) +{ + Assert(RTListIsEmpty(&pNode->ChildListOrLeafEntry)); + Assert(!pNode->fLeaf); + Assert(pNode->pCert); + + /* + * Don't recurse infintely. + */ + if (RT_UNLIKELY(pNode->uDepth >= 50)) + return; + + PCRTCRX509NAME const pIssuer = &pNode->pCert->TbsCertificate.Issuer; + + /* + * Trusted certificate. + */ + if ( pThis->pTrustedCert + && RTCrX509Certificate_MatchSubjectOrAltSubjectByRfc5280(pThis->pTrustedCert, pIssuer)) + rtCrX509CertPathsAddIssuer(pThis, pNode, pThis->pTrustedCert, NULL, RTCRX509CERTPATHNODE_SRC_TRUSTED_CERT); + + /* + * Trusted certificate store. + */ + if (pThis->hTrustedStore != NIL_RTCRSTORE) + rtCrX509CertPathsGetIssuersFromStore(pThis, pNode, pIssuer, pThis->hTrustedStore, + RTCRX509CERTPATHNODE_SRC_TRUSTED_STORE); + + /* + * Untrusted store. + */ + if (pThis->hUntrustedStore != NIL_RTCRSTORE) + rtCrX509CertPathsGetIssuersFromStore(pThis, pNode, pIssuer, pThis->hTrustedStore, + RTCRX509CERTPATHNODE_SRC_UNTRUSTED_STORE); + + /* + * Untrusted array. + */ + if (pThis->paUntrustedCerts) + for (uint32_t i = 0; i < pThis->cUntrustedCerts; i++) + if (RTCrX509Certificate_MatchSubjectOrAltSubjectByRfc5280(&pThis->paUntrustedCerts[i], pIssuer)) + rtCrX509CertPathsAddIssuer(pThis, pNode, &pThis->paUntrustedCerts[i], NULL, + RTCRX509CERTPATHNODE_SRC_UNTRUSTED_ARRAY); + + /** @todo Rainy day: Should abstract the untrusted array and set so we don't get + * unnecessary PKCS7/CMS header dependencies. */ + + /* + * Untrusted set. + */ + if (pThis->pUntrustedCertsSet) + { + uint32_t const cCerts = pThis->pUntrustedCertsSet->cItems; + PCRTCRPKCS7CERT paCerts = pThis->pUntrustedCertsSet->paItems; + for (uint32_t i = 0; i < cCerts; i++) + if ( paCerts[i].enmChoice == RTCRPKCS7CERTCHOICE_X509 + && RTCrX509Certificate_MatchSubjectOrAltSubjectByRfc5280(paCerts[i].u.pX509Cert, pIssuer)) + rtCrX509CertPathsAddIssuer(pThis, pNode, paCerts[i].u.pX509Cert, NULL, RTCRX509CERTPATHNODE_SRC_UNTRUSTED_SET); + } +} + + +static PRTCRX509CERTPATHNODE rtCrX509CertPathsGetNextRightUp(PRTCRX509CERTPATHSINT pThis, PRTCRX509CERTPATHNODE pNode) +{ + for (;;) + { + /* The root node has no siblings. */ + PRTCRX509CERTPATHNODE pParent = pNode->pParent; + if (!pNode->pParent) + return NULL; + + /* Try go to the right. */ + PRTCRX509CERTPATHNODE pNext = RTListGetNext(&pParent->ChildListOrLeafEntry, pNode, RTCRX509CERTPATHNODE, SiblingEntry); + if (pNext) + return pNext; + + /* Up. */ + pNode = pParent; + } +} + + +static PRTCRX509CERTPATHNODE rtCrX509CertPathsEliminatePath(PRTCRX509CERTPATHSINT pThis, PRTCRX509CERTPATHNODE pNode) +{ + for (;;) + { + Assert(RTListIsEmpty(&pNode->ChildListOrLeafEntry)); + + /* Don't remove the root node. */ + PRTCRX509CERTPATHNODE pParent = pNode->pParent; + if (!pParent) + return NULL; + + /* Before removing and deleting the node check if there is sibling + right to it that we should continue processing from. */ + PRTCRX509CERTPATHNODE pNext = RTListGetNext(&pParent->ChildListOrLeafEntry, pNode, RTCRX509CERTPATHNODE, SiblingEntry); + RTListNodeRemove(&pNode->SiblingEntry); + rtCrX509CertPathsDestroyNode(pNode); + + if (pNext) + return pNext; + + /* If the parent node cannot be removed, do a normal get-next-rigth-up + to find the continuation point for the tree loop. */ + if (!RTListIsEmpty(&pParent->ChildListOrLeafEntry)) + return rtCrX509CertPathsGetNextRightUp(pThis, pParent); + + pNode = pParent; + } +} + + +/** + * Destroys the whole path tree. + * + * @param pThis The path builder and verifier instance. + */ +static void rtCrX509CertPathsDestroyTree(PRTCRX509CERTPATHSINT pThis) +{ + PRTCRX509CERTPATHNODE pNode, pNextLeaf; + RTListForEachSafe(&pThis->LeafList, pNode, pNextLeaf, RTCRX509CERTPATHNODE, ChildListOrLeafEntry) + { + RTListNodeRemove(&pNode->ChildListOrLeafEntry); + RTListInit(&pNode->ChildListOrLeafEntry); + + for (;;) + { + PRTCRX509CERTPATHNODE pParent = pNode->pParent; + + RTListNodeRemove(&pNode->SiblingEntry); + rtCrX509CertPathsDestroyNode(pNode); + + if (!pParent) + { + pThis->pRoot = NULL; + break; + } + + if (!RTListIsEmpty(&pParent->ChildListOrLeafEntry)) + break; + + pNode = pParent; + } + } + Assert(!pThis->pRoot); +} + + +/** + * Adds a leaf node. + * + * This should normally be a trusted certificate, but the caller can also + * request the incomplete paths, in which case this will be an untrusted + * certificate. + * + * @returns Pointer to the next node in the tree to process. + * @param pThis The path builder instance. + * @param pNode The leaf node. + */ +static PRTCRX509CERTPATHNODE rtCrX509CertPathsAddLeaf(PRTCRX509CERTPATHSINT pThis, PRTCRX509CERTPATHNODE pNode) +{ + pNode->fLeaf = true; + + /* + * Priority insert by source and depth. + */ + PRTCRX509CERTPATHNODE pCurLeaf; + RTListForEach(&pThis->LeafList, pCurLeaf, RTCRX509CERTPATHNODE, ChildListOrLeafEntry) + { + if ( pNode->uSrc > pCurLeaf->uSrc + || ( pNode->uSrc == pCurLeaf->uSrc + && pNode->uDepth < pCurLeaf->uDepth) ) + { + RTListNodeInsertBefore(&pCurLeaf->ChildListOrLeafEntry, &pNode->ChildListOrLeafEntry); + pThis->cPaths++; + return rtCrX509CertPathsGetNextRightUp(pThis, pNode); + } + } + + RTListAppend(&pThis->LeafList, &pNode->ChildListOrLeafEntry); + pThis->cPaths++; + return rtCrX509CertPathsGetNextRightUp(pThis, pNode); +} + + + +RTDECL(int) RTCrX509CertPathsBuild(RTCRX509CERTPATHS hCertPaths, PRTERRINFO pErrInfo) +{ + /* + * Validate the input. + */ + PRTCRX509CERTPATHSINT pThis = hCertPaths; + AssertPtrReturn(pThis, VERR_INVALID_HANDLE); + AssertReturn(pThis->u32Magic == RTCRX509CERTPATHSINT_MAGIC, VERR_INVALID_HANDLE); + AssertReturn(!(pThis->fFlags & ~RTCRX509CERTPATHSINT_F_VALID_MASK), VERR_INVALID_PARAMETER); + AssertReturn( (pThis->paUntrustedCerts == NULL && pThis->cUntrustedCerts == 0) + || (pThis->paUntrustedCerts != NULL && pThis->cUntrustedCerts > 0), + VERR_INVALID_PARAMETER); + AssertReturn(RTListIsEmpty(&pThis->LeafList), VERR_INVALID_PARAMETER); + AssertReturn(pThis->pRoot == NULL, VERR_INVALID_PARAMETER); + AssertReturn(pThis->rc == VINF_SUCCESS, pThis->rc); + AssertPtrReturn(pThis->pTarget, VERR_INVALID_PARAMETER); + Assert(RT_SUCCESS(RTCrX509Certificate_CheckSanity(pThis->pTarget, 0, NULL, NULL))); + + /* + * Set up the target. + */ + PRTCRX509CERTPATHNODE pCur; + pThis->pRoot = pCur = rtCrX509CertPathsNewNode(pThis); + if (pThis->pRoot) + { + pCur->pCert = pThis->pTarget; + pCur->uDepth = 0; + pCur->uSrc = RTCRX509CERTPATHNODE_SRC_TARGET; + + pThis->pErrInfo = pErrInfo; + + /* + * The tree construction loop. + * Walks down, up, and right as the tree is constructed. + */ + do + { + /* + * Check for the two leaf cases first. + */ + if (RTCRX509CERTPATHNODE_SRC_IS_TRUSTED(pCur->uSrc)) + pCur = rtCrX509CertPathsAddLeaf(pThis, pCur); +#if 0 /* This isn't right.*/ + else if (rtCrX509CertPathsIsSelfIssued(pCur)) + { + if (pThis->fFlags & RTCRX509CERTPATHSINT_F_ELIMINATE_UNTRUSTED_PATHS) + pCur = rtCrX509CertPathsEliminatePath(pThis, pCur); + else + pCur = rtCrX509CertPathsAddLeaf(pThis, pCur); + } +#endif + /* + * Not a leaf, find all potential issuers and decend into these. + */ + else + { + rtCrX509CertPathsGetIssuers(pThis, pCur); + if (RT_FAILURE(pThis->rc)) + break; + + if (!RTListIsEmpty(&pCur->ChildListOrLeafEntry)) + pCur = RTListGetFirst(&pCur->ChildListOrLeafEntry, RTCRX509CERTPATHNODE, SiblingEntry); + else if (pThis->fFlags & RTCRX509CERTPATHSINT_F_ELIMINATE_UNTRUSTED_PATHS) + pCur = rtCrX509CertPathsEliminatePath(pThis, pCur); + else + pCur = rtCrX509CertPathsAddLeaf(pThis, pCur); + } + } while (pCur); + + pThis->pErrInfo = NULL; + if (RT_SUCCESS(pThis->rc)) + return VINF_SUCCESS; + } + else + Assert(RT_FAILURE_NP(pThis->rc)); + return pThis->rc; +} + + +/** + * Looks up path by leaf/path index. + * + * @returns Pointer to the leaf node of the path. + * @param pThis The path builder & validator instance. + * @param iPath The oridnal of the path to get. + */ +static PRTCRX509CERTPATHNODE rtCrX509CertPathsGetLeafByIndex(PRTCRX509CERTPATHSINT pThis, uint32_t iPath) +{ + Assert(iPath < pThis->cPaths); + + uint32_t iCurPath = 0; + PRTCRX509CERTPATHNODE pCurLeaf; + RTListForEach(&pThis->LeafList, pCurLeaf, RTCRX509CERTPATHNODE, ChildListOrLeafEntry) + { + if (iCurPath == iPath) + return pCurLeaf; + iCurPath++; + } + + AssertFailedReturn(NULL); +} + + +static void rtDumpPrintf(PFNRTDUMPPRINTFV pfnPrintfV, void *pvUser, const char *pszFormat, ...) +{ + va_list va; + va_start(va, pszFormat); + pfnPrintfV(pvUser, pszFormat, va); + va_end(va); +} + + +static void rtDumpIndent(PFNRTDUMPPRINTFV pfnPrintfV, void *pvUser, uint32_t cchSpaces, const char *pszFormat, ...) +{ + static const char s_szSpaces[] = " "; + while (cchSpaces > 0) + { + uint32_t cchBurst = RT_MIN(sizeof(s_szSpaces) - 1, cchSpaces); + rtDumpPrintf(pfnPrintfV, pvUser, &s_szSpaces[sizeof(s_szSpaces) - cchBurst - 1]); + cchSpaces -= cchBurst; + } + + va_list va; + va_start(va, pszFormat); + pfnPrintfV(pvUser, pszFormat, va); + va_end(va); +} + +/** @name X.500 attribute types + * See RFC-4519 among others. + * @{ */ +#define RTCRX500_ID_AT_OBJECT_CLASS_OID "2.5.4.0" +#define RTCRX500_ID_AT_ALIASED_ENTRY_NAME_OID "2.5.4.1" +#define RTCRX500_ID_AT_KNOWLDGEINFORMATION_OID "2.5.4.2" +#define RTCRX500_ID_AT_COMMON_NAME_OID "2.5.4.3" +#define RTCRX500_ID_AT_SURNAME_OID "2.5.4.4" +#define RTCRX500_ID_AT_SERIAL_NUMBER_OID "2.5.4.5" +#define RTCRX500_ID_AT_COUNTRY_NAME_OID "2.5.4.6" +#define RTCRX500_ID_AT_LOCALITY_NAME_OID "2.5.4.7" +#define RTCRX500_ID_AT_STATE_OR_PROVINCE_NAME_OID "2.5.4.8" +#define RTCRX500_ID_AT_STREET_ADDRESS_OID "2.5.4.9" +#define RTCRX500_ID_AT_ORGANIZATION_NAME_OID "2.5.4.10" +#define RTCRX500_ID_AT_ORGANIZATION_UNIT_NAME_OID "2.5.4.11" +#define RTCRX500_ID_AT_TITLE_OID "2.5.4.12" +#define RTCRX500_ID_AT_DESCRIPTION_OID "2.5.4.13" +#define RTCRX500_ID_AT_SEARCH_GUIDE_OID "2.5.4.14" +#define RTCRX500_ID_AT_BUSINESS_CATEGORY_OID "2.5.4.15" +#define RTCRX500_ID_AT_POSTAL_ADDRESS_OID "2.5.4.16" +#define RTCRX500_ID_AT_POSTAL_CODE_OID "2.5.4.17" +#define RTCRX500_ID_AT_POST_OFFICE_BOX_OID "2.5.4.18" +#define RTCRX500_ID_AT_PHYSICAL_DELIVERY_OFFICE_NAME_OID "2.5.4.19" +#define RTCRX500_ID_AT_TELEPHONE_NUMBER_OID "2.5.4.20" +#define RTCRX500_ID_AT_TELEX_NUMBER_OID "2.5.4.21" +#define RTCRX500_ID_AT_TELETEX_TERMINAL_IDENTIFIER_OID "2.5.4.22" +#define RTCRX500_ID_AT_FACIMILE_TELEPHONE_NUMBER_OID "2.5.4.23" +#define RTCRX500_ID_AT_X121_ADDRESS_OID "2.5.4.24" +#define RTCRX500_ID_AT_INTERNATIONAL_ISDN_NUMBER_OID "2.5.4.25" +#define RTCRX500_ID_AT_REGISTERED_ADDRESS_OID "2.5.4.26" +#define RTCRX500_ID_AT_DESTINATION_INDICATOR_OID "2.5.4.27" +#define RTCRX500_ID_AT_PREFERRED_DELIVERY_METHOD_OID "2.5.4.28" +#define RTCRX500_ID_AT_PRESENTATION_ADDRESS_OID "2.5.4.29" +#define RTCRX500_ID_AT_SUPPORTED_APPLICATION_CONTEXT_OID "2.5.4.30" +#define RTCRX500_ID_AT_MEMBER_OID "2.5.4.31" +#define RTCRX500_ID_AT_OWNER_OID "2.5.4.32" +#define RTCRX500_ID_AT_ROLE_OCCUPANT_OID "2.5.4.33" +#define RTCRX500_ID_AT_SEE_ALSO_OID "2.5.4.34" +#define RTCRX500_ID_AT_USER_PASSWORD_OID "2.5.4.35" +#define RTCRX500_ID_AT_USER_CERTIFICATE_OID "2.5.4.36" +#define RTCRX500_ID_AT_CA_CERTIFICATE_OID "2.5.4.37" +#define RTCRX500_ID_AT_AUTHORITY_REVOCATION_LIST_OID "2.5.4.38" +#define RTCRX500_ID_AT_CERTIFICATE_REVOCATION_LIST_OID "2.5.4.39" +#define RTCRX500_ID_AT_CROSS_CERTIFICATE_PAIR_OID "2.5.4.40" +#define RTCRX500_ID_AT_NAME_OID "2.5.4.41" +#define RTCRX500_ID_AT_GIVEN_NAME_OID "2.5.4.42" +#define RTCRX500_ID_AT_INITIALS_OID "2.5.4.43" +#define RTCRX500_ID_AT_GENERATION_QUALIFIER_OID "2.5.4.44" +#define RTCRX500_ID_AT_UNIQUE_IDENTIFIER_OID "2.5.4.45" +#define RTCRX500_ID_AT_DN_QUALIFIER_OID "2.5.4.46" +#define RTCRX500_ID_AT_ENHANCHED_SEARCH_GUIDE_OID "2.5.4.47" +#define RTCRX500_ID_AT_PROTOCOL_INFORMATION_OID "2.5.4.48" +#define RTCRX500_ID_AT_DISTINGUISHED_NAME_OID "2.5.4.49" +#define RTCRX500_ID_AT_UNIQUE_MEMBER_OID "2.5.4.50" +#define RTCRX500_ID_AT_HOUSE_IDENTIFIER_OID "2.5.4.51" +#define RTCRX500_ID_AT_SUPPORTED_ALGORITHMS_OID "2.5.4.52" +#define RTCRX500_ID_AT_DELTA_REVOCATION_LIST_OID "2.5.4.53" +#define RTCRX500_ID_AT_ATTRIBUTE_CERTIFICATE_OID "2.5.4.58" +#define RTCRX500_ID_AT_PSEUDONYM_OID "2.5.4.65" +/** @} */ + + +static void rtCrX509NameDump(PCRTCRX509NAME pName, PFNRTDUMPPRINTFV pfnPrintfV, void *pvUser) +{ + for (uint32_t i = 0; i < pName->cItems; i++) + for (uint32_t j = 0; j < pName->paItems[i].cItems; j++) + { + PRTCRX509ATTRIBUTETYPEANDVALUE pAttrib = &pName->paItems[i].paItems[j]; + + const char *pszType = pAttrib->Type.szObjId; + if ( !strncmp(pAttrib->Type.szObjId, "2.5.4.", 6) + && (pAttrib->Type.szObjId[8] == '\0' || pAttrib->Type.szObjId[9] == '\0')) + { + switch (RTStrToUInt8(&pAttrib->Type.szObjId[6])) + { + case 3: pszType = "cn"; break; + case 4: pszType = "sn"; break; + case 5: pszType = "serialNumber"; break; + case 6: pszType = "c"; break; + case 7: pszType = "l"; break; + case 8: pszType = "st"; break; + case 9: pszType = "street"; break; + case 10: pszType = "o"; break; + case 11: pszType = "ou"; break; + case 13: pszType = "description"; break; + case 15: pszType = "businessCategory"; break; + case 16: pszType = "postalAddress"; break; + case 17: pszType = "postalCode"; break; + case 18: pszType = "postOfficeBox"; break; + case 20: pszType = "telephoneNumber"; break; + case 26: pszType = "registeredAddress"; break; + case 31: pszType = "member"; break; + case 41: pszType = "name"; break; + case 42: pszType = "givenName"; break; + case 43: pszType = "initials"; break; + case 45: pszType = "x500UniqueIdentifier"; break; + case 50: pszType = "uniqueMember"; break; + } + } + rtDumpPrintf(pfnPrintfV, pvUser, "/%s=", pszType); + if (pAttrib->Value.enmType == RTASN1TYPE_STRING) + { + if (pAttrib->Value.u.String.pszUtf8) + rtDumpPrintf(pfnPrintfV, pvUser, "%s", pAttrib->Value.u.String.pszUtf8); + else + { + const char *pch = pAttrib->Value.u.String.Asn1Core.uData.pch; + uint32_t cch = pAttrib->Value.u.String.Asn1Core.cb; + int rc = RTStrValidateEncodingEx(pch, cch, 0); + if (RT_SUCCESS(rc) && cch) + rtDumpPrintf(pfnPrintfV, pvUser, "%.*s", (size_t)cch, pch); + else + while (cch > 0) + { + if (RT_C_IS_PRINT(*pch)) + rtDumpPrintf(pfnPrintfV, pvUser, "%c", *pch); + else + rtDumpPrintf(pfnPrintfV, pvUser, "\\x%02x", *pch); + cch--; + pch++; + } + } + } + else + rtDumpPrintf(pfnPrintfV, pvUser, "", pAttrib->Value.u.Core.uTag); + } +} + + +static const char *rtCrX509CertPathsNodeGetSourceName(PRTCRX509CERTPATHNODE pNode) +{ + switch (pNode->uSrc) + { + case RTCRX509CERTPATHNODE_SRC_TARGET: return "target"; + case RTCRX509CERTPATHNODE_SRC_UNTRUSTED_SET: return "untrusted_set"; + case RTCRX509CERTPATHNODE_SRC_UNTRUSTED_ARRAY: return "untrusted_array"; + case RTCRX509CERTPATHNODE_SRC_UNTRUSTED_STORE: return "untrusted_store"; + case RTCRX509CERTPATHNODE_SRC_TRUSTED_STORE: return "trusted_store"; + case RTCRX509CERTPATHNODE_SRC_TRUSTED_CERT: return "trusted_cert"; + default: return "invalid"; + } +} + + +static void rtCrX509CertPathsDumpOneWorker(PRTCRX509CERTPATHSINT pThis, uint32_t iPath, PRTCRX509CERTPATHNODE pCurLeaf, + uint32_t uVerbosity, PFNRTDUMPPRINTFV pfnPrintfV, void *pvUser) +{ + rtDumpPrintf(pfnPrintfV, pvUser, "Path #%u: %s, %u deep, rcVerify=%Rrc\n", + iPath, RTCRX509CERTPATHNODE_SRC_IS_TRUSTED(pCurLeaf->uSrc) ? "trusted" : "untrusted", pCurLeaf->uDepth, + pCurLeaf->rcVerify); + + for (uint32_t iIndent = 2; pCurLeaf; iIndent += 2, pCurLeaf = pCurLeaf->pParent) + { + if (pCurLeaf->pCert) + { + rtDumpIndent(pfnPrintfV, pvUser, iIndent, "Issuer : "); + rtCrX509NameDump(&pCurLeaf->pCert->TbsCertificate.Issuer, pfnPrintfV, pvUser); + rtDumpPrintf(pfnPrintfV, pvUser, "\n"); + + rtDumpIndent(pfnPrintfV, pvUser, iIndent, "Subject: "); + rtCrX509NameDump(&pCurLeaf->pCert->TbsCertificate.Subject, pfnPrintfV, pvUser); + rtDumpPrintf(pfnPrintfV, pvUser, "\n"); + + if (uVerbosity >= 4) + RTAsn1Dump(&pCurLeaf->pCert->SeqCore.Asn1Core, 0, iIndent, pfnPrintfV, pvUser); + else if (uVerbosity >= 3) + RTAsn1Dump(&pCurLeaf->pCert->TbsCertificate.T3.Extensions.SeqCore.Asn1Core, 0, iIndent, pfnPrintfV, pvUser); + } + else + { + Assert(pCurLeaf->pCertCtx); Assert(pCurLeaf->pCertCtx->pTaInfo); + rtDumpIndent(pfnPrintfV, pvUser, iIndent, "Subject: "); + rtCrX509NameDump(&pCurLeaf->pCertCtx->pTaInfo->CertPath.TaName, pfnPrintfV, pvUser); + + if (uVerbosity >= 4) + RTAsn1Dump(&pCurLeaf->pCertCtx->pTaInfo->SeqCore.Asn1Core, 0, iIndent, pfnPrintfV, pvUser); + } + + const char *pszSrc = rtCrX509CertPathsNodeGetSourceName(pCurLeaf); + rtDumpIndent(pfnPrintfV, pvUser, iIndent, "Source : %s\n", pszSrc); + } +} + + +RTDECL(int) RTCrX509CertPathsDumpOne(RTCRX509CERTPATHS hCertPaths, uint32_t iPath, uint32_t uVerbosity, + PFNRTDUMPPRINTFV pfnPrintfV, void *pvUser) +{ + /* + * Validate the input. + */ + PRTCRX509CERTPATHSINT pThis = hCertPaths; + AssertPtrReturn(pThis, VERR_INVALID_HANDLE); + AssertReturn(pThis->u32Magic == RTCRX509CERTPATHSINT_MAGIC, VERR_INVALID_HANDLE); + AssertPtrReturn(pfnPrintfV, VERR_INVALID_POINTER); + int rc; + if (iPath < pThis->cPaths) + { + PRTCRX509CERTPATHNODE pLeaf = rtCrX509CertPathsGetLeafByIndex(pThis, iPath); + if (pLeaf) + { + rtCrX509CertPathsDumpOneWorker(pThis, iPath, pLeaf, uVerbosity, pfnPrintfV, pvUser); + rc = VINF_SUCCESS; + } + else + rc = VERR_CR_X509_CERTPATHS_INTERNAL_ERROR; + } + else + rc = VERR_NOT_FOUND; + return rc; +} + + +RTDECL(int) RTCrX509CertPathsDumpAll(RTCRX509CERTPATHS hCertPaths, uint32_t uVerbosity, PFNRTDUMPPRINTFV pfnPrintfV, void *pvUser) +{ + /* + * Validate the input. + */ + PRTCRX509CERTPATHSINT pThis = hCertPaths; + AssertPtrReturn(pThis, VERR_INVALID_HANDLE); + AssertReturn(pThis->u32Magic == RTCRX509CERTPATHSINT_MAGIC, VERR_INVALID_HANDLE); + AssertPtrReturn(pfnPrintfV, VERR_INVALID_POINTER); + + /* + * Dump all the paths. + */ + rtDumpPrintf(pfnPrintfV, pvUser, "%u paths, rc=%Rrc\n", pThis->cPaths, pThis->rc); + uint32_t iPath = 0; + PRTCRX509CERTPATHNODE pCurLeaf, pNextLeaf; + RTListForEachSafe(&pThis->LeafList, pCurLeaf, pNextLeaf, RTCRX509CERTPATHNODE, ChildListOrLeafEntry) + { + rtCrX509CertPathsDumpOneWorker(pThis, iPath, pCurLeaf, uVerbosity, pfnPrintfV, pvUser); + iPath++; + } + + return VINF_SUCCESS; +} + + +/** @} */ + + +/** @name Path Validator Functions. + * @{ + */ + + +static void *rtCrX509CpvAllocZ(PRTCRX509CERTPATHSINT pThis, size_t cb, const char *pszWhat) +{ + void *pv = RTMemAllocZ(cb); + if (!pv) + pThis->rc = RTErrInfoSetF(pThis->pErrInfo, VERR_NO_MEMORY, "Failed to allocate %zu bytes for %s", cb, pszWhat); + return pv; +} + + +DECL_NO_INLINE(static, bool) rtCrX509CpvFailed(PRTCRX509CERTPATHSINT pThis, int rc, const char *pszFormat, ...) +{ + va_list va; + va_start(va, pszFormat); + pThis->rc = RTErrInfoSetV(pThis->pErrInfo, rc, pszFormat, va); + va_end(va); + return false; +} + + +/** + * Adds a sequence of excluded sub-trees. + * + * Don't waste time optimizing the output if this is supposed to be a union. + * Unless the path is very long, it's a lot more work to optimize and the result + * will be the same anyway. + * + * @returns success indicator. + * @param pThis The validator instance. + * @param pSubtrees The sequence of sub-trees to add. + */ +static bool rtCrX509CpvAddExcludedSubtrees(PRTCRX509CERTPATHSINT pThis, PCRTCRX509GENERALSUBTREES pSubtrees) +{ + if (((pThis->v.cExcludedSubtrees + 1) & 0xf) == 0) + { + void *pvNew = RTMemRealloc(pThis->v.papExcludedSubtrees, + (pThis->v.cExcludedSubtrees + 16) * sizeof(pThis->v.papExcludedSubtrees[0])); + if (RT_UNLIKELY(!pvNew)) + return rtCrX509CpvFailed(pThis, VERR_NO_MEMORY, "Error growing subtrees pointer array to %u elements", + pThis->v.cExcludedSubtrees + 16); + pThis->v.papExcludedSubtrees = (PCRTCRX509GENERALSUBTREES *)pvNew; + } + pThis->v.papExcludedSubtrees[pThis->v.cExcludedSubtrees] = pSubtrees; + pThis->v.cExcludedSubtrees++; + return true; +} + + +/** + * Checks if a sub-tree is according to RFC-5280. + * + * @returns Success indiciator. + * @param pThis The validator instance. + * @param pSubtree The subtree to check. + */ +static bool rtCrX509CpvCheckSubtreeValidity(PRTCRX509CERTPATHSINT pThis, PCRTCRX509GENERALSUBTREE pSubtree) +{ + if ( pSubtree->Base.enmChoice <= RTCRX509GENERALNAMECHOICE_INVALID + || pSubtree->Base.enmChoice >= RTCRX509GENERALNAMECHOICE_END) + return rtCrX509CpvFailed(pThis, VERR_CR_X509_CPV_UNEXP_GENERAL_SUBTREE_CHOICE, + "Unexpected GeneralSubtree choice %#x", pSubtree->Base.enmChoice); + + if (RTAsn1Integer_UnsignedCompareWithU32(&pSubtree->Minimum, 0) != 0) + return rtCrX509CpvFailed(pThis, VERR_CR_X509_CPV_UNEXP_GENERAL_SUBTREE_MIN, + "Unexpected GeneralSubtree Minimum value: %#llx", + pSubtree->Minimum.uValue); + + if (RTAsn1Integer_IsPresent(&pSubtree->Maximum)) + return rtCrX509CpvFailed(pThis, VERR_CR_X509_CPV_UNEXP_GENERAL_SUBTREE_MAX, + "Unexpected GeneralSubtree Maximum value: %#llx", + pSubtree->Maximum.uValue); + + return true; +} + + +/** + * Grows the array of permitted sub-trees. + * + * @returns success indiciator. + * @param pThis The validator instance. + * @param cAdding The number of subtrees we should grow by + * (relative to the current number of valid + * entries). + */ +static bool rtCrX509CpvGrowPermittedSubtrees(PRTCRX509CERTPATHSINT pThis, uint32_t cAdding) +{ + uint32_t cNew = RT_ALIGN_32(pThis->v.cPermittedSubtrees + cAdding, 16); + if (cNew > pThis->v.cPermittedSubtreesAlloc) + { + if (cNew >= _4K) + return rtCrX509CpvFailed(pThis, VERR_NO_MEMORY, "Too many permitted subtrees: %u (cur %u)", + cNew, pThis->v.cPermittedSubtrees); + void *pvNew = RTMemRealloc(pThis->v.papPermittedSubtrees, cNew * sizeof(pThis->v.papPermittedSubtrees[0])); + if (RT_UNLIKELY(!pvNew)) + return rtCrX509CpvFailed(pThis, VERR_NO_MEMORY, "Error growing subtrees pointer array from %u to %u elements", + pThis->v.cPermittedSubtreesAlloc, cNew); + pThis->v.papPermittedSubtrees = (PCRTCRX509GENERALSUBTREE *)pvNew; + } + return true; +} + + +/** + * Adds a sequence of permitted sub-trees. + * + * We store reference to each individual sub-tree because we must support + * intersection calculation. + * + * @returns success indiciator. + * @param pThis The validator instance. + * @param cSubtrees The number of sub-trees to add. + * @param paSubtrees Array of sub-trees to add. + */ +static bool rtCrX509CpvAddPermittedSubtrees(PRTCRX509CERTPATHSINT pThis, uint32_t cSubtrees, PCRTCRX509GENERALSUBTREE paSubtrees) +{ + /* + * If the array is empty, assume no permitted names. + */ + if (!cSubtrees) + { + pThis->v.fNoPermittedSubtrees = true; + return true; + } + + /* + * Grow the array if necessary. + */ + if (!rtCrX509CpvGrowPermittedSubtrees(pThis, cSubtrees)) + return false; + + /* + * Append each subtree to the array. + */ + uint32_t iDst = pThis->v.cPermittedSubtrees; + for (uint32_t iSrc = 0; iSrc < cSubtrees; iSrc++) + { + if (!rtCrX509CpvCheckSubtreeValidity(pThis, &paSubtrees[iSrc])) + return false; + pThis->v.papPermittedSubtrees[iDst] = &paSubtrees[iSrc]; + iDst++; + } + pThis->v.cPermittedSubtrees = iDst; + + return true; +} + + +/** + * Calculates the intersection between @a pSubtrees and the current permitted + * sub-trees. + * + * @returns Success indicator. + * @param pThis The validator instance. + * @param pSubtrees The sub-tree sequence to intersect with. + */ +static bool rtCrX509CpvIntersectionPermittedSubtrees(PRTCRX509CERTPATHSINT pThis, PCRTCRX509GENERALSUBTREES pSubtrees) +{ + /* + * Deal with special cases first. + */ + if (pThis->v.fNoPermittedSubtrees) + { + Assert(pThis->v.cPermittedSubtrees == 0); + return true; + } + + uint32_t cRight = pSubtrees->cItems; + PCRTCRX509GENERALSUBTREE paRight = pSubtrees->paItems; + if (cRight == 0) + { + pThis->v.cPermittedSubtrees = 0; + pThis->v.fNoPermittedSubtrees = true; + return true; + } + + uint32_t cLeft = pThis->v.cPermittedSubtrees; + PCRTCRX509GENERALSUBTREE *papLeft = pThis->v.papPermittedSubtrees; + if (!cLeft) /* first name constraint, no initial constraint */ + return rtCrX509CpvAddPermittedSubtrees(pThis, cRight, paRight); + + /* + * Create a new array with the intersection, freeing the old (left) array + * once we're done. + */ + bool afRightTags[RTCRX509GENERALNAMECHOICE_END] = { 0, 0, 0, 0, 0, 0, 0, 0, 0 }; + + pThis->v.cPermittedSubtrees = 0; + pThis->v.cPermittedSubtreesAlloc = 0; + pThis->v.papPermittedSubtrees = NULL; + + for (uint32_t iRight = 0; iRight < cRight; iRight++) + { + if (!rtCrX509CpvCheckSubtreeValidity(pThis, &paRight[iRight])) + return false; + + RTCRX509GENERALNAMECHOICE const enmRightChoice = paRight[iRight].Base.enmChoice; + afRightTags[enmRightChoice] = true; + + bool fHaveRight = false; + for (uint32_t iLeft = 0; iLeft < cLeft; iLeft++) + if (papLeft[iLeft]->Base.enmChoice == enmRightChoice) + { + if (RTCrX509GeneralSubtree_Compare(papLeft[iLeft], &paRight[iRight]) == 0) + { + if (!fHaveRight) + { + fHaveRight = true; + rtCrX509CpvAddPermittedSubtrees(pThis, 1, papLeft[iLeft]); + } + } + else if (RTCrX509GeneralSubtree_ConstraintMatch(papLeft[iLeft], &paRight[iRight])) + { + if (!fHaveRight) + { + fHaveRight = true; + rtCrX509CpvAddPermittedSubtrees(pThis, 1, &paRight[iRight]); + } + } + else if (RTCrX509GeneralSubtree_ConstraintMatch(&paRight[iRight], papLeft[iLeft])) + rtCrX509CpvAddPermittedSubtrees(pThis, 1, papLeft[iLeft]); + } + } + + /* + * Add missing types not specified in the right set. + */ + for (uint32_t iLeft = 0; iLeft < cLeft; iLeft++) + if (!afRightTags[papLeft[iLeft]->Base.enmChoice]) + rtCrX509CpvAddPermittedSubtrees(pThis, 1, papLeft[iLeft]); + + /* + * If we ended up with an empty set, no names are permitted any more. + */ + if (pThis->v.cPermittedSubtrees == 0) + pThis->v.fNoPermittedSubtrees = true; + + RTMemFree(papLeft); + return RT_SUCCESS(pThis->rc); +} + + +/** + * Check if the given X.509 name is permitted by current name constraints. + * + * @returns true is permitteded, false if not (caller set error info). + * @param pThis The validator instance. + * @param pName The name to match. + */ +static bool rtCrX509CpvIsNamePermitted(PRTCRX509CERTPATHSINT pThis, PCRTCRX509NAME pName) +{ + uint32_t i = pThis->v.cPermittedSubtrees; + if (i == 0) + return !pThis->v.fNoPermittedSubtrees; + + while (i-- > 0) + { + PCRTCRX509GENERALSUBTREE pConstraint = pThis->v.papPermittedSubtrees[i]; + if ( RTCRX509GENERALNAME_IS_DIRECTORY_NAME(&pConstraint->Base) + && RTCrX509Name_ConstraintMatch(&pConstraint->Base.u.pT4->DirectoryName, pName)) + return true; + } + return false; +} + + +/** + * Check if the given X.509 general name is permitted by current name + * constraints. + * + * @returns true is permitteded, false if not (caller sets error info). + * @param pThis The validator instance. + * @param pGeneralName The name to match. + */ +static bool rtCrX509CpvIsGeneralNamePermitted(PRTCRX509CERTPATHSINT pThis, PCRTCRX509GENERALNAME pGeneralName) +{ + uint32_t i = pThis->v.cPermittedSubtrees; + if (i == 0) + return !pThis->v.fNoPermittedSubtrees; + + while (i-- > 0) + if (RTCrX509GeneralName_ConstraintMatch(&pThis->v.papPermittedSubtrees[i]->Base, pGeneralName)) + return true; + return false; +} + + +/** + * Check if the given X.509 name is excluded by current name constraints. + * + * @returns true if excluded (caller sets error info), false if not explicitly + * excluded. + * @param pThis The validator instance. + * @param pName The name to match. + */ +static bool rtCrX509CpvIsNameExcluded(PRTCRX509CERTPATHSINT pThis, PCRTCRX509NAME pName) +{ + uint32_t i = pThis->v.cExcludedSubtrees; + while (i-- > 0) + { + PCRTCRX509GENERALSUBTREES pSubTrees = pThis->v.papExcludedSubtrees[i]; + uint32_t j = pSubTrees->cItems; + while (j-- > 0) + if ( RTCRX509GENERALNAME_IS_DIRECTORY_NAME(&pSubTrees->paItems[j].Base) + && RTCrX509Name_ConstraintMatch(&pSubTrees->paItems[j].Base.u.pT4->DirectoryName, pName)) + return true; + } + return false; +} + + +/** + * Check if the given X.509 general name is excluded by current name + * constraints. + * + * @returns true if excluded (caller sets error info), false if not explicitly + * excluded. + * @param pThis The validator instance. + * @param pGeneralName The name to match. + */ +static bool rtCrX509CpvIsGeneralNameExcluded(PRTCRX509CERTPATHSINT pThis, PCRTCRX509GENERALNAME pGeneralName) +{ + uint32_t i = pThis->v.cExcludedSubtrees; + while (i-- > 0) + { + PCRTCRX509GENERALSUBTREES pSubTrees = pThis->v.papExcludedSubtrees[i]; + uint32_t j = pSubTrees->cItems; + while (j-- > 0) + if (RTCrX509GeneralName_ConstraintMatch(&pSubTrees->paItems[j].Base, pGeneralName)) + return true; + } + return false; +} + + +/** + * Creates a new node and inserts it. + * + * @param pThis The path builder & validator instance. + * @param pParent The parent node. NULL for the root node. + * @param iDepth The tree depth to insert at. + * @param pValidPolicy The valid policy of the new node. + * @param pQualifiers The qualifiers of the new node. + * @param pExpectedPolicy The (first) expected polcy of the new node. + */ +static bool rtCrX509CpvPolicyTreeInsertNew(PRTCRX509CERTPATHSINT pThis, PRTCRX509CERTPATHSPOLICYNODE pParent, uint32_t iDepth, + PCRTASN1OBJID pValidPolicy, PCRTCRX509POLICYQUALIFIERINFOS pQualifiers, + PCRTASN1OBJID pExpectedPolicy) +{ + Assert(iDepth <= pThis->v.cNodes); + + PRTCRX509CERTPATHSPOLICYNODE pNode; + pNode = (PRTCRX509CERTPATHSPOLICYNODE)rtCrX509CpvAllocZ(pThis, sizeof(*pNode), "policy tree node"); + if (pNode) + { + pNode->pParent = pParent; + if (pParent) + RTListAppend(&pParent->ChildList, &pNode->SiblingEntry); + else + { + Assert(pThis->v.pValidPolicyTree == NULL); + pThis->v.pValidPolicyTree = pNode; + RTListInit(&pNode->SiblingEntry); + } + RTListInit(&pNode->ChildList); + RTListAppend(&pThis->v.paValidPolicyDepthLists[iDepth], &pNode->DepthEntry); + + pNode->pValidPolicy = pValidPolicy; + pNode->pPolicyQualifiers = pQualifiers; + pNode->pExpectedPolicyFirst = pExpectedPolicy; + pNode->cMoreExpectedPolicySet = 0; + pNode->papMoreExpectedPolicySet = NULL; + return true; + } + return false; +} + + +/** + * Unlinks and frees a node in the valid policy tree. + * + * @param pThis The path builder & validator instance. + * @param pNode The node to destroy. + */ +static void rtCrX509CpvPolicyTreeDestroyNode(PRTCRX509CERTPATHSINT pThis, PRTCRX509CERTPATHSPOLICYNODE pNode) +{ + Assert(RTListIsEmpty(&pNode->ChildList)); + if (pNode->pParent) + RTListNodeRemove(&pNode->SiblingEntry); + else + pThis->v.pValidPolicyTree = NULL; + RTListNodeRemove(&pNode->DepthEntry); + pNode->pParent = NULL; + + if (pNode->papMoreExpectedPolicySet) + { + RTMemFree(pNode->papMoreExpectedPolicySet); + pNode->papMoreExpectedPolicySet = NULL; + } + RTMemFree(pNode); +} + + +/** + * Unlinks and frees a sub-tree in the valid policy tree. + * + * @param pThis The path builder & validator instance. + * @param pNode The node that is the root of the subtree. + */ +static void rtCrX509CpvPolicyTreeDestroySubtree(PRTCRX509CERTPATHSINT pThis, PRTCRX509CERTPATHSPOLICYNODE pNode) +{ + if (!RTListIsEmpty(&pNode->ChildList)) + { + PRTCRX509CERTPATHSPOLICYNODE pCur = pNode; + do + { + Assert(!RTListIsEmpty(&pCur->ChildList)); + + /* Decend until we find a leaf. */ + do + pCur = RTListGetFirst(&pCur->ChildList, RTCRX509CERTPATHSPOLICYNODE, SiblingEntry); + while (!RTListIsEmpty(&pCur->ChildList)); + + /* Remove it and all leafy siblings. */ + PRTCRX509CERTPATHSPOLICYNODE pParent = pCur->pParent; + do + { + Assert(pCur != pNode); + rtCrX509CpvPolicyTreeDestroyNode(pThis, pCur); + pCur = RTListGetFirst(&pParent->ChildList, RTCRX509CERTPATHSPOLICYNODE, SiblingEntry); + if (!pCur) + { + pCur = pParent; + pParent = pParent->pParent; + } + } while (RTListIsEmpty(&pCur->ChildList) && pCur != pNode); + } while (pCur != pNode); + } + + rtCrX509CpvPolicyTreeDestroyNode(pThis, pNode); +} + + + +/** + * Destroys the entire policy tree. + * + * @param pThis The path builder & validator instance. + */ +static void rtCrX509CpvPolicyTreeDestroy(PRTCRX509CERTPATHSINT pThis) +{ + uint32_t i = pThis->v.cNodes + 1; + while (i-- > 0) + { + PRTCRX509CERTPATHSPOLICYNODE pCur, pNext; + RTListForEachSafe(&pThis->v.paValidPolicyDepthLists[i], pCur, pNext, RTCRX509CERTPATHSPOLICYNODE, DepthEntry) + { + rtCrX509CpvPolicyTreeDestroyNode(pThis, pCur); + } + } +} + + +/** + * Removes all leaf nodes at level @a iDepth and above. + * + * @param pThis The path builder & validator instance. + * @param iDepth The depth to start pruning at. + */ +static void rtCrX509CpvPolicyTreePrune(PRTCRX509CERTPATHSINT pThis, uint32_t iDepth) +{ + do + { + PRTLISTANCHOR pList = &pThis->v.paValidPolicyDepthLists[iDepth]; + PRTCRX509CERTPATHSPOLICYNODE pCur, pNext; + RTListForEachSafe(pList, pCur, pNext, RTCRX509CERTPATHSPOLICYNODE, DepthEntry) + { + if (RTListIsEmpty(&pCur->ChildList)) + rtCrX509CpvPolicyTreeDestroyNode(pThis, pCur); + } + + } while (iDepth-- > 0); +} + + +/** + * Checks if @a pPolicy is the valid policy of a child of @a pNode. + * + * @returns true if in child node, false if not. + * @param pNode The node which children to check. + * @param pPolicy The valid policy to look for among the children. + */ +static bool rtCrX509CpvPolicyTreeIsChild(PRTCRX509CERTPATHSPOLICYNODE pNode, PCRTASN1OBJID pPolicy) +{ + PRTCRX509CERTPATHSPOLICYNODE pChild; + RTListForEach(&pNode->ChildList, pChild, RTCRX509CERTPATHSPOLICYNODE, SiblingEntry) + { + if (RTAsn1ObjId_Compare(pChild->pValidPolicy, pPolicy) == 0) + return true; + } + return true; +} + + +/** + * Prunes the valid policy tree according to the specified user policy set. + * + * @returns Pointer to the policy object from @a papPolicies if found, NULL if + * no match. + * @param pObjId The object ID to locate at match in the set. + * @param cPolicies The number of policies in @a papPolicies. + * @param papPolicies The policy set to search. + */ +static PCRTASN1OBJID rtCrX509CpvFindObjIdInPolicySet(PCRTASN1OBJID pObjId, uint32_t cPolicies, PCRTASN1OBJID *papPolicies) +{ + uint32_t i = cPolicies; + while (i-- > 0) + if (RTAsn1ObjId_Compare(pObjId, papPolicies[i]) == 0) + return papPolicies[i]; + return NULL; +} + + +/** + * Prunes the valid policy tree according to the specified user policy set. + * + * @returns success indicator (allocates memory) + * @param pThis The path builder & validator instance. + * @param cPolicies The number of policies in @a papPolicies. + * @param papPolicies The user initial policies. + */ +static bool rtCrX509CpvPolicyTreeIntersect(PRTCRX509CERTPATHSINT pThis, uint32_t cPolicies, PCRTASN1OBJID *papPolicies) +{ + /* + * 4.1.6.g.i - NULL tree remains NULL. + */ + if (!pThis->v.pValidPolicyTree) + return true; + + /* + * 4.1.6.g.ii - If the user set includes anyPolicy, the whole tree is the + * result of the intersection. + */ + uint32_t i = cPolicies; + while (i-- > 0) + if (RTAsn1ObjId_CompareWithString(papPolicies[i], RTCRX509_ID_CE_CP_ANY_POLICY_OID) == 0) + return true; + + /* + * 4.1.6.g.iii - Complicated. + */ + PRTCRX509CERTPATHSPOLICYNODE pCur, pNext; + PRTLISTANCHOR pList; + + /* 1 & 2: Delete nodes which parent has valid policy == anyPolicy and which + valid policy is neither anyPolicy nor a member of papszPolicies. + While doing so, construct a set of unused user policies that + we'll replace anyPolicy nodes with in step 3. */ + uint32_t cPoliciesLeft = 0; + PCRTASN1OBJID *papPoliciesLeft = NULL; + if (cPolicies) + { + papPoliciesLeft = (PCRTASN1OBJID *)rtCrX509CpvAllocZ(pThis, cPolicies * sizeof(papPoliciesLeft[0]), "papPoliciesLeft"); + if (!papPoliciesLeft) + return false; + for (i = 0; i < cPolicies; i++) + papPoliciesLeft[i] = papPolicies[i]; + } + + for (uint32_t iDepth = 1; iDepth <= pThis->v.cNodes; iDepth++) + { + pList = &pThis->v.paValidPolicyDepthLists[iDepth]; + RTListForEachSafe(pList, pCur, pNext, RTCRX509CERTPATHSPOLICYNODE, DepthEntry) + { + Assert(pCur->pParent); + if ( RTAsn1ObjId_CompareWithString(pCur->pParent->pValidPolicy, RTCRX509_ID_CE_CP_ANY_POLICY_OID) == 0 + && RTAsn1ObjId_CompareWithString(pCur->pValidPolicy, RTCRX509_ID_CE_CP_ANY_POLICY_OID) != 0) + { + PCRTASN1OBJID pFound = rtCrX509CpvFindObjIdInPolicySet(pCur->pValidPolicy, cPolicies, papPolicies); + if (!pFound) + rtCrX509CpvPolicyTreeDestroySubtree(pThis, pCur); + else + for (i = 0; i < cPoliciesLeft; i++) + if (papPoliciesLeft[i] == pFound) + { + cPoliciesLeft--; + if (i < cPoliciesLeft) + papPoliciesLeft[i] = papPoliciesLeft[cPoliciesLeft]; + papPoliciesLeft[cPoliciesLeft] = NULL; + break; + } + } + } + } + + /* + * 4.1.5.g.iii.3 - Replace anyPolicy nodes on the final tree depth with + * the policies in papPoliciesLeft. + */ + pList = &pThis->v.paValidPolicyDepthLists[pThis->v.cNodes]; + RTListForEachSafe(pList, pCur, pNext, RTCRX509CERTPATHSPOLICYNODE, DepthEntry) + { + if (RTAsn1ObjId_CompareWithString(pCur->pValidPolicy, RTCRX509_ID_CE_CP_ANY_POLICY_OID) == 0) + { + for (i = 0; i < cPoliciesLeft; i++) + rtCrX509CpvPolicyTreeInsertNew(pThis, pCur->pParent, pThis->v.cNodes - 1, + papPoliciesLeft[i], pCur->pPolicyQualifiers, papPoliciesLeft[i]); + rtCrX509CpvPolicyTreeDestroyNode(pThis, pCur); + } + } + + RTMemFree(papPoliciesLeft); + + /* + * 4.1.5.g.iii.4 - Prune the tree + */ + rtCrX509CpvPolicyTreePrune(pThis, pThis->v.cNodes - 1); + + return RT_SUCCESS(pThis->rc); +} + + + +/** + * Frees the path validator state. + * + * @param pThis The path builder & validator instance. + */ +static void rtCrX509CpvCleanup(PRTCRX509CERTPATHSINT pThis) +{ + /* + * Destroy the policy tree and all its nodes. We do this from the bottom + * up via the depth lists, saving annoying tree traversal. + */ + if (pThis->v.paValidPolicyDepthLists) + { + rtCrX509CpvPolicyTreeDestroy(pThis); + + RTMemFree(pThis->v.paValidPolicyDepthLists); + pThis->v.paValidPolicyDepthLists = NULL; + } + + Assert(pThis->v.pValidPolicyTree == NULL); + pThis->v.pValidPolicyTree = NULL; + + /* + * Destroy the name constraint arrays. + */ + if (pThis->v.papPermittedSubtrees) + { + RTMemFree(pThis->v.papPermittedSubtrees); + pThis->v.papPermittedSubtrees = NULL; + } + pThis->v.cPermittedSubtrees = 0; + pThis->v.cPermittedSubtreesAlloc = 0; + pThis->v.fNoPermittedSubtrees = false; + + if (pThis->v.papExcludedSubtrees) + { + RTMemFree(pThis->v.papExcludedSubtrees); + pThis->v.papExcludedSubtrees = NULL; + } + pThis->v.cExcludedSubtrees = 0; + + /* + * Clear other pointers. + */ + pThis->v.pWorkingIssuer = NULL; + pThis->v.pWorkingPublicKey = NULL; + pThis->v.pWorkingPublicKeyAlgorithm = NULL; + pThis->v.pWorkingPublicKeyParameters = NULL; +} + + + +/** + * Initializes the state. + * + * Caller must check pThis->rc. + * + * @param pThis The path builder & validator instance. + * @param pTrustAnchor The trust anchor node for the path that we're about + * to validate. + */ +static void rtCrX509CpvInit(PRTCRX509CERTPATHSINT pThis, PRTCRX509CERTPATHNODE pTrustAnchor) +{ + rtCrX509CpvCleanup(pThis); + + /* + * The node count does not include the trust anchor. + */ + pThis->v.cNodes = pTrustAnchor->uDepth; + + /* + * Valid policy tree starts with an anyPolicy node. + */ + uint32_t i = pThis->v.cNodes + 1; + pThis->v.paValidPolicyDepthLists = (PRTLISTANCHOR)rtCrX509CpvAllocZ(pThis, i * sizeof(RTLISTANCHOR), + "paValidPolicyDepthLists"); + if (RT_UNLIKELY(!pThis->v.paValidPolicyDepthLists)) + return; + while (i-- > 0) + RTListInit(&pThis->v.paValidPolicyDepthLists[i]); + + if (!rtCrX509CpvPolicyTreeInsertNew(pThis, NULL, 0 /* iDepth*/, &pThis->AnyPolicyObjId, NULL, &pThis->AnyPolicyObjId)) + return; + Assert(!RTListIsEmpty(&pThis->v.paValidPolicyDepthLists[0])); Assert(pThis->v.pValidPolicyTree); + + /* + * Name constrains. + */ + if (pThis->pInitialPermittedSubtrees) + rtCrX509CpvAddPermittedSubtrees(pThis, pThis->pInitialPermittedSubtrees->cItems, + pThis->pInitialPermittedSubtrees->paItems); + if (pThis->pInitialExcludedSubtrees) + rtCrX509CpvAddExcludedSubtrees(pThis, pThis->pInitialExcludedSubtrees); + + /* + * Counters. + */ + pThis->v.cExplicitPolicy = pThis->cInitialExplicitPolicy; + pThis->v.cInhibitPolicyMapping = pThis->cInitialPolicyMappingInhibit; + pThis->v.cInhibitAnyPolicy = pThis->cInitialInhibitAnyPolicy; + pThis->v.cMaxPathLength = pThis->v.cNodes; + + /* + * Certificate info from the trust anchor. + */ + if (pTrustAnchor->pCert) + { + PCRTCRX509TBSCERTIFICATE const pTbsCert = &pTrustAnchor->pCert->TbsCertificate; + pThis->v.pWorkingIssuer = &pTbsCert->Subject; + pThis->v.pWorkingPublicKey = &pTbsCert->SubjectPublicKeyInfo.SubjectPublicKey; + pThis->v.pWorkingPublicKeyAlgorithm = &pTbsCert->SubjectPublicKeyInfo.Algorithm.Algorithm; + pThis->v.pWorkingPublicKeyParameters = &pTbsCert->SubjectPublicKeyInfo.Algorithm.Parameters; + } + else + { + Assert(pTrustAnchor->pCertCtx); Assert(pTrustAnchor->pCertCtx->pTaInfo); + + PCRTCRTAFTRUSTANCHORINFO const pTaInfo = pTrustAnchor->pCertCtx->pTaInfo; + pThis->v.pWorkingIssuer = &pTaInfo->CertPath.TaName; + pThis->v.pWorkingPublicKey = &pTaInfo->PubKey.SubjectPublicKey; + pThis->v.pWorkingPublicKeyAlgorithm = &pTaInfo->PubKey.Algorithm.Algorithm; + pThis->v.pWorkingPublicKeyParameters = &pTaInfo->PubKey.Algorithm.Parameters; + } + if ( !RTASN1CORE_IS_PRESENT(&pThis->v.pWorkingPublicKeyParameters->u.Core) + || pThis->v.pWorkingPublicKeyParameters->enmType == RTASN1TYPE_NULL) + pThis->v.pWorkingPublicKeyParameters = NULL; +} + + +/** + * Step 6.1.3.a. + */ +static bool rtCrX509CpvCheckBasicCertInfo(PRTCRX509CERTPATHSINT pThis, PRTCRX509CERTPATHNODE pNode) +{ + /* + * 6.1.3.a.1 - Verify the certificate signature. + */ + int rc = RTCrX509Certificate_VerifySignature(pNode->pCert, pThis->v.pWorkingPublicKeyAlgorithm, + pThis->v.pWorkingPublicKeyParameters, pThis->v.pWorkingPublicKey, + pThis->pErrInfo); + if (RT_FAILURE(rc)) + { + pThis->rc = rc; + return false; + } + + /* + * 6.1.3.a.2 - Verify that the certificate is valid at the specified time. + */ + AssertCompile(sizeof(pThis->szTmp) >= 36 * 3); + if (!RTCrX509Validity_IsValidAtTimeSpec(&pNode->pCert->TbsCertificate.Validity, &pThis->ValidTime)) + return rtCrX509CpvFailed(pThis, VERR_CR_X509_CPV_NOT_VALID_AT_TIME, + "Certificate is not valid (ValidTime=%s Validity=[%s...%s])", + RTTimeSpecToString(&pThis->ValidTime, &pThis->szTmp[0], 36), + RTTimeToString(&pNode->pCert->TbsCertificate.Validity.NotBefore.Time, &pThis->szTmp[36], 36), + RTTimeToString(&pNode->pCert->TbsCertificate.Validity.NotAfter.Time, &pThis->szTmp[2*36], 36) ); + + /* + * 6.1.3.a.3 - Verified that the certficiate is not revoked. + */ + /** @todo rainy day. */ + + /* + * 6.1.3.a.4 - Check the issuer name. + */ + if (!RTCrX509Name_MatchByRfc5280(&pNode->pCert->TbsCertificate.Issuer, pThis->v.pWorkingIssuer)) + return rtCrX509CpvFailed(pThis, VERR_CR_X509_CPV_ISSUER_MISMATCH, "Issuer mismatch"); + + return true; +} + + +/** + * Step 6.1.3.b-c. + */ +static bool rtCrX509CpvCheckNameConstraints(PRTCRX509CERTPATHSINT pThis, PRTCRX509CERTPATHNODE pNode) +{ + if (pThis->v.fNoPermittedSubtrees) + return rtCrX509CpvFailed(pThis, VERR_CR_X509_CPV_NO_PERMITTED_NAMES, "No permitted subtrees"); + + if ( pNode->pCert->TbsCertificate.Subject.cItems > 0 + && ( !rtCrX509CpvIsNamePermitted(pThis, &pNode->pCert->TbsCertificate.Subject) + || rtCrX509CpvIsNameExcluded(pThis, &pNode->pCert->TbsCertificate.Subject)) ) + return rtCrX509CpvFailed(pThis, VERR_CR_X509_CPV_NAME_NOT_PERMITTED, + "Subject name is not permitted by current name constraints"); + + PCRTCRX509GENERALNAMES pAltSubjectName = pNode->pCert->TbsCertificate.T3.pAltSubjectName; + if (pAltSubjectName) + { + uint32_t i = pAltSubjectName->cItems; + while (i-- > 0) + if ( !rtCrX509CpvIsGeneralNamePermitted(pThis, &pAltSubjectName->paItems[i]) + || rtCrX509CpvIsGeneralNameExcluded(pThis, &pAltSubjectName->paItems[i])) + return rtCrX509CpvFailed(pThis, VERR_CR_X509_CPV_ALT_NAME_NOT_PERMITTED, + "Alternative name #%u is is not permitted by current name constraints", i); + } + + return true; +} + + +/** + * Step 6.1.3.d-f. + */ +static bool rtCrX509CpvWorkValidPolicyTree(PRTCRX509CERTPATHSINT pThis, uint32_t iDepth, PRTCRX509CERTPATHNODE pNode, + bool fSelfIssued) +{ + PCRTCRX509CERTIFICATEPOLICIES pPolicies = pNode->pCert->TbsCertificate.T3.pCertificatePolicies; + if (pPolicies) + { + /* + * 6.1.3.d.1 - Work the certiciate policies into the tree. + */ + PRTCRX509CERTPATHSPOLICYNODE pCur; + PRTLISTANCHOR pListAbove = &pThis->v.paValidPolicyDepthLists[iDepth - 1]; + uint32_t iAnyPolicy = UINT32_MAX; + uint32_t i = pPolicies->cItems; + while (i-- > 0) + { + PCRTCRX509POLICYQUALIFIERINFOS const pQualifiers = &pPolicies->paItems[i].PolicyQualifiers; + PCRTASN1OBJID const pIdP = &pPolicies->paItems[i].PolicyIdentifier; + if (RTAsn1ObjId_CompareWithString(pIdP, RTCRX509_ID_CE_CP_ANY_POLICY_OID) == 0) + { + iAnyPolicy++; + continue; + } + + /* + * 6.1.3.d.1.i - Create children for matching policies. + */ + uint32_t cMatches = 0; + RTListForEach(pListAbove, pCur, RTCRX509CERTPATHSPOLICYNODE, DepthEntry) + { + bool fMatch = RTAsn1ObjId_Compare(pCur->pExpectedPolicyFirst, pIdP) == 0; + if (!fMatch && pCur->cMoreExpectedPolicySet) + for (uint32_t j = 0; !fMatch && j < pCur->cMoreExpectedPolicySet; j++) + fMatch = RTAsn1ObjId_Compare(pCur->papMoreExpectedPolicySet[j], pIdP) == 0; + if (fMatch) + { + if (!rtCrX509CpvPolicyTreeInsertNew(pThis, pCur, iDepth, pIdP, pQualifiers, pIdP)) + return false; + cMatches++; + } + } + + /* + * 6.1.3.d.1.ii - If no matches above do the same for anyPolicy + * nodes, only match with valid policy this time. + */ + if (cMatches == 0) + { + RTListForEach(pListAbove, pCur, RTCRX509CERTPATHSPOLICYNODE, DepthEntry) + { + if (RTAsn1ObjId_CompareWithString(pCur->pExpectedPolicyFirst, RTCRX509_ID_CE_CP_ANY_POLICY_OID) == 0) + { + if (!rtCrX509CpvPolicyTreeInsertNew(pThis, pCur, iDepth, pIdP, pQualifiers, pIdP)) + return false; + } + } + } + } + + /* + * 6.1.3.d.2 - If anyPolicy present, make sure all expected policies + * are propagated to the current depth. + */ + if ( iAnyPolicy < pPolicies->cItems + && ( pThis->v.cInhibitAnyPolicy > 0 + || (pNode->pParent && fSelfIssued) ) ) + { + PCRTCRX509POLICYQUALIFIERINFOS pApQ = &pPolicies->paItems[iAnyPolicy].PolicyQualifiers; + RTListForEach(pListAbove, pCur, RTCRX509CERTPATHSPOLICYNODE, DepthEntry) + { + if (!rtCrX509CpvPolicyTreeIsChild(pCur, pCur->pExpectedPolicyFirst)) + rtCrX509CpvPolicyTreeInsertNew(pThis, pCur, iDepth, pCur->pExpectedPolicyFirst, pApQ, + pCur->pExpectedPolicyFirst); + for (uint32_t j = 0; j < pCur->cMoreExpectedPolicySet; j++) + if (!rtCrX509CpvPolicyTreeIsChild(pCur, pCur->papMoreExpectedPolicySet[j])) + rtCrX509CpvPolicyTreeInsertNew(pThis, pCur, iDepth, pCur->papMoreExpectedPolicySet[j], pApQ, + pCur->papMoreExpectedPolicySet[j]); + } + } + /* + * 6.1.3.d.3 - Prune the tree. + */ + else + rtCrX509CpvPolicyTreePrune(pThis, iDepth - 1); + } + else + { + /* + * 6.1.3.e - No policy extension present, set tree to NULL. + */ + rtCrX509CpvPolicyTreeDestroy(pThis); + } + + /* + * 6.1.3.f - NULL tree check. + */ + if ( pThis->v.pValidPolicyTree == NULL + && pThis->v.cExplicitPolicy == 0) + return rtCrX509CpvFailed(pThis, VERR_CR_X509_CPV_NO_VALID_POLICY, + "An explicit policy is called for but the valid policy tree is NULL."); + return RT_SUCCESS(pThis->rc); +} + + +/** + * Step 6.1.4.a-b. + */ +static bool rtCrX509CpvSoakUpPolicyMappings(PRTCRX509CERTPATHSINT pThis, uint32_t iDepth, + PCRTCRX509POLICYMAPPINGS pPolicyMappings) +{ + /* + * 6.1.4.a - The anyPolicy is not allowed in policy mappings as it would + * allow an evil intermediate certificate to expand the policy + * scope of a certiciate chain without regard to upstream. + */ + uint32_t i = pPolicyMappings->cItems; + while (i-- > 0) + { + if (RTAsn1ObjId_CompareWithString(&pPolicyMappings->paItems[i].IssuerDomainPolicy, RTCRX509_ID_CE_CP_ANY_POLICY_OID) == 0) + return rtCrX509CpvFailed(pThis, VERR_CR_X509_CPV_INVALID_POLICY_MAPPING, + "Invalid policy mapping %#u: IssuerDomainPolicy is anyPolicy.", i); + + if (RTAsn1ObjId_CompareWithString(&pPolicyMappings->paItems[i].SubjectDomainPolicy, RTCRX509_ID_CE_CP_ANY_POLICY_OID) == 0) + return rtCrX509CpvFailed(pThis, VERR_CR_X509_CPV_INVALID_POLICY_MAPPING, + "Invalid policy mapping %#u: SubjectDomainPolicy is anyPolicy.", i); + } + + PRTCRX509CERTPATHSPOLICYNODE pCur, pNext; + if (pThis->v.cInhibitPolicyMapping > 0) + { + /* + * 6.1.4.b.1 - Do the policy mapping. + */ + i = pPolicyMappings->cItems; + while (i-- > 0) + { + uint32_t cFound = 0; + RTListForEach(&pThis->v.paValidPolicyDepthLists[iDepth], pCur, RTCRX509CERTPATHSPOLICYNODE, DepthEntry) + { + if (RTAsn1ObjId_Compare(pCur->pValidPolicy, &pPolicyMappings->paItems[i].IssuerDomainPolicy)) + { + if (!pCur->fAlreadyMapped) + { + pCur->fAlreadyMapped = true; + pCur->pExpectedPolicyFirst = &pPolicyMappings->paItems[i].SubjectDomainPolicy; + } + else + { + uint32_t iExpected = pCur->cMoreExpectedPolicySet; + void *pvNew = RTMemRealloc(pCur->papMoreExpectedPolicySet, + sizeof(pCur->papMoreExpectedPolicySet[0]) * (iExpected + 1)); + if (!pvNew) + return rtCrX509CpvFailed(pThis, VERR_NO_MEMORY, + "Error growing papMoreExpectedPolicySet array (cur %u, depth %u)", + pCur->cMoreExpectedPolicySet, iDepth); + pCur->papMoreExpectedPolicySet = (PCRTASN1OBJID *)pvNew; + pCur->papMoreExpectedPolicySet[iExpected] = &pPolicyMappings->paItems[i].SubjectDomainPolicy; + pCur->cMoreExpectedPolicySet = iExpected + 1; + } + cFound++; + } + } + + /* + * If no mapping took place, look for an anyPolicy node. + */ + if (!cFound) + { + RTListForEach(&pThis->v.paValidPolicyDepthLists[iDepth], pCur, RTCRX509CERTPATHSPOLICYNODE, DepthEntry) + { + if (RTAsn1ObjId_CompareWithString(pCur->pValidPolicy, RTCRX509_ID_CE_CP_ANY_POLICY_OID) == 0) + { + if (!rtCrX509CpvPolicyTreeInsertNew(pThis, pCur->pParent, iDepth, + &pPolicyMappings->paItems[i].IssuerDomainPolicy, + pCur->pPolicyQualifiers, + &pPolicyMappings->paItems[i].SubjectDomainPolicy)) + return false; + break; + } + } + } + } + } + else + { + /* + * 6.1.4.b.2 - Remove matching policies from the tree if mapping is + * inhibited and prune the tree. + */ + uint32_t cRemoved = 0; + i = pPolicyMappings->cItems; + while (i-- > 0) + { + RTListForEachSafe(&pThis->v.paValidPolicyDepthLists[iDepth], pCur, pNext, RTCRX509CERTPATHSPOLICYNODE, DepthEntry) + { + if (RTAsn1ObjId_Compare(pCur->pValidPolicy, &pPolicyMappings->paItems[i].IssuerDomainPolicy)) + { + rtCrX509CpvPolicyTreeDestroyNode(pThis, pCur); + cRemoved++; + } + } + } + if (cRemoved) + rtCrX509CpvPolicyTreePrune(pThis, iDepth - 1); + } + + return true; +} + + +/** + * Step 6.1.4.d-f & 6.1.5.c-e. + */ +static void rtCrX509CpvSetWorkingPublicKeyInfo(PRTCRX509CERTPATHSINT pThis, PRTCRX509CERTPATHNODE pNode) +{ + PCRTCRX509TBSCERTIFICATE const pTbsCert = &pNode->pCert->TbsCertificate; + + /* + * 6.1.4.d - The public key. + */ + pThis->v.pWorkingPublicKey = &pTbsCert->SubjectPublicKeyInfo.SubjectPublicKey; + + /* + * 6.1.4.e - The public key parameters. Use new ones if present, keep old + * if the algorithm remains the same. + */ + if ( RTASN1CORE_IS_PRESENT(&pTbsCert->SubjectPublicKeyInfo.Algorithm.Parameters.u.Core) + && pTbsCert->SubjectPublicKeyInfo.Algorithm.Parameters.enmType != RTASN1TYPE_NULL) + pThis->v.pWorkingPublicKeyParameters = &pTbsCert->SubjectPublicKeyInfo.Algorithm.Parameters; + else if ( pThis->v.pWorkingPublicKeyParameters + && RTAsn1ObjId_Compare(pThis->v.pWorkingPublicKeyAlgorithm, &pTbsCert->SubjectPublicKeyInfo.Algorithm.Algorithm) != 0) + pThis->v.pWorkingPublicKeyParameters = NULL; + + /* + * 6.1.4.f - The public algorithm. + */ + pThis->v.pWorkingPublicKeyAlgorithm = &pTbsCert->SubjectPublicKeyInfo.Algorithm.Algorithm; +} + + +/** + * Step 6.1.4.g. + */ +static bool rtCrX509CpvSoakUpNameConstraints(PRTCRX509CERTPATHSINT pThis, PCRTCRX509NAMECONSTRAINTS pNameConstraints) +{ + if (pNameConstraints->T0.PermittedSubtrees.cItems > 0) + if (!rtCrX509CpvIntersectionPermittedSubtrees(pThis, &pNameConstraints->T0.PermittedSubtrees)) + return false; + + if (pNameConstraints->T1.ExcludedSubtrees.cItems > 0) + if (!rtCrX509CpvAddExcludedSubtrees(pThis, &pNameConstraints->T1.ExcludedSubtrees)) + return false; + + return true; +} + + +/** + * Step 6.1.4.i. + */ +static bool rtCrX509CpvSoakUpPolicyConstraints(PRTCRX509CERTPATHSINT pThis, PCRTCRX509POLICYCONSTRAINTS pPolicyConstraints) +{ + if (RTAsn1Integer_IsPresent(&pPolicyConstraints->RequireExplicitPolicy)) + { + if (RTAsn1Integer_UnsignedCompareWithU32(&pPolicyConstraints->RequireExplicitPolicy, pThis->v.cExplicitPolicy) < 0) + pThis->v.cExplicitPolicy = pPolicyConstraints->RequireExplicitPolicy.uValue.s.Lo; + } + + if (RTAsn1Integer_IsPresent(&pPolicyConstraints->InhibitPolicyMapping)) + { + if (RTAsn1Integer_UnsignedCompareWithU32(&pPolicyConstraints->InhibitPolicyMapping, pThis->v.cInhibitPolicyMapping) < 0) + pThis->v.cInhibitPolicyMapping = pPolicyConstraints->InhibitPolicyMapping.uValue.s.Lo; + } + return true; +} + + +/** + * Step 6.1.4.j. + */ +static bool rtCrX509CpvSoakUpInhibitAnyPolicy(PRTCRX509CERTPATHSINT pThis, PCRTASN1INTEGER pInhibitAnyPolicy) +{ + if (RTAsn1Integer_UnsignedCompareWithU32(pInhibitAnyPolicy, pThis->v.cInhibitAnyPolicy) < 0) + pThis->v.cInhibitAnyPolicy = pInhibitAnyPolicy->uValue.s.Lo; + return true; +} + + +/** + * Steps 6.1.4.k, 6.1.4.l, 6.1.4.m, and 6.1.4.n. + */ +static bool rtCrX509CpvCheckAndSoakUpBasicConstraintsAndKeyUsage(PRTCRX509CERTPATHSINT pThis, PRTCRX509CERTPATHNODE pNode, + bool fSelfIssued) +{ + /* 6.1.4.k - If basic constraints present, CA must be set. */ + if (RTAsn1Integer_UnsignedCompareWithU32(&pNode->pCert->TbsCertificate.T0.Version, RTCRX509TBSCERTIFICATE_V3) != 0) + { + /* Note! Add flags if support for older certificates is needed later. */ + return rtCrX509CpvFailed(pThis, VERR_CR_X509_CPV_NOT_V3_CERT, + "Only version 3 certificates are supported (Version=%llu)", + pNode->pCert->TbsCertificate.T0.Version.uValue); + } + PCRTCRX509BASICCONSTRAINTS pBasicConstraints = pNode->pCert->TbsCertificate.T3.pBasicConstraints; + if (pBasicConstraints) + { + if (!pBasicConstraints->CA.fValue) + return rtCrX509CpvFailed(pThis, VERR_CR_X509_CPV_NOT_CA_CERT, + "Intermediate certificate (#%u) is not marked as a CA", pThis->v.iNode); + } + + /* 6.1.4.l - Work cMaxPathLength. */ + if (!fSelfIssued) + { + if (pThis->v.cMaxPathLength > 0) + pThis->v.cMaxPathLength--; + else + return rtCrX509CpvFailed(pThis, VERR_CR_X509_CPV_MAX_PATH_LENGTH, + "Hit max path length at node #%u", pThis->v.iNode); + } + + /* 6.1.4.m - Update cMaxPathLength if basic constrain field is present and smaller. */ + if (pBasicConstraints) + { + if (RTAsn1Integer_IsPresent(&pBasicConstraints->PathLenConstraint)) + if (RTAsn1Integer_UnsignedCompareWithU32(&pBasicConstraints->PathLenConstraint, pThis->v.cMaxPathLength) < 0) + pThis->v.cMaxPathLength = pBasicConstraints->PathLenConstraint.uValue.s.Lo; + } + + /* 6.1.4.n - Require keyCertSign in key usage if the extension is present. */ + PCRTCRX509TBSCERTIFICATE const pTbsCert = &pNode->pCert->TbsCertificate; + if ( (pTbsCert->T3.fFlags & RTCRX509TBSCERTIFICATE_F_PRESENT_KEY_USAGE) + && !(pTbsCert->T3.fKeyUsage & RTCRX509CERT_KEY_USAGE_F_KEY_CERT_SIGN)) + return rtCrX509CpvFailed(pThis, VERR_CR_X509_CPV_MISSING_KEY_CERT_SIGN, + "Node #%u does not have KeyCertSign set (keyUsage=%#x)", + pThis->v.iNode, pTbsCert->T3.fKeyUsage); + + return true; +} + + +/** + * Step 6.1.4.o - check out critical extensions. + */ +static bool rtCrX509CpvCheckCriticalExtensions(PRTCRX509CERTPATHSINT pThis, PRTCRX509CERTPATHNODE pNode) +{ + uint32_t cLeft = pNode->pCert->TbsCertificate.T3.Extensions.cItems; + PCRTCRX509EXTENSION pCur = pNode->pCert->TbsCertificate.T3.Extensions.paItems; + while (cLeft-- > 0) + { + if (pCur->Critical.fValue) + { + if ( RTAsn1ObjId_CompareWithString(&pCur->ExtnId, RTCRX509_ID_CE_KEY_USAGE_OID) != 0 + && RTAsn1ObjId_CompareWithString(&pCur->ExtnId, RTCRX509_ID_CE_SUBJECT_ALT_NAME_OID) != 0 + && RTAsn1ObjId_CompareWithString(&pCur->ExtnId, RTCRX509_ID_CE_ISSUER_ALT_NAME_OID) != 0 + && RTAsn1ObjId_CompareWithString(&pCur->ExtnId, RTCRX509_ID_CE_BASIC_CONSTRAINTS_OID) != 0 + && RTAsn1ObjId_CompareWithString(&pCur->ExtnId, RTCRX509_ID_CE_NAME_CONSTRAINTS_OID) != 0 + && RTAsn1ObjId_CompareWithString(&pCur->ExtnId, RTCRX509_ID_CE_CERTIFICATE_POLICIES_OID) != 0 + && RTAsn1ObjId_CompareWithString(&pCur->ExtnId, RTCRX509_ID_CE_POLICY_MAPPINGS_OID) != 0 + && RTAsn1ObjId_CompareWithString(&pCur->ExtnId, RTCRX509_ID_CE_POLICY_CONSTRAINTS_OID) != 0 + && RTAsn1ObjId_CompareWithString(&pCur->ExtnId, RTCRX509_ID_CE_EXT_KEY_USAGE_OID) != 0 + && RTAsn1ObjId_CompareWithString(&pCur->ExtnId, RTCRX509_ID_CE_INHIBIT_ANY_POLICY_OID) != 0 + ) + return rtCrX509CpvFailed(pThis, VERR_CR_X509_CPV_UNKNOWN_CRITICAL_EXTENSION, + "Node #%u has an unknown critical extension: %s", pThis->v.iNode, pCur->ExtnId.szObjId); + } + + pCur++; + } + + return true; +} + + +/** + * Step 6.1.5 - The wrapping up. + */ +static bool rtCrX509CpvWrapUp(PRTCRX509CERTPATHSINT pThis, PRTCRX509CERTPATHNODE pNode) +{ + Assert(!pNode->pParent); Assert(pThis->pTarget == pNode->pCert); + + /* + * 6.1.5.a - Decrement explicit policy. + */ + if (pThis->v.cExplicitPolicy > 0) + pThis->v.cExplicitPolicy--; + + /* + * 6.1.5.b - Policy constraints and explicit policy. + */ + PCRTCRX509POLICYCONSTRAINTS pPolicyConstraints = pNode->pCert->TbsCertificate.T3.pPolicyConstraints; + if ( pPolicyConstraints + && RTAsn1Integer_IsPresent(&pPolicyConstraints->RequireExplicitPolicy) + && RTAsn1Integer_UnsignedCompareWithU32(&pPolicyConstraints->RequireExplicitPolicy, 0) == 0) + pThis->v.cExplicitPolicy = 0; + + /* + * 6.1.5.c-e - Update working public key info. + */ + rtCrX509CpvSetWorkingPublicKeyInfo(pThis, pNode); + + /* + * 6.1.5.f - Critical extensions. + */ + if (!rtCrX509CpvCheckCriticalExtensions(pThis, pNode)) + return false; + + /* + * 6.1.5.g - Calculate the intersection between the user initial policy set + * and the valid policy tree. + */ + rtCrX509CpvPolicyTreeIntersect(pThis, pThis->cInitialUserPolicySet, pThis->papInitialUserPolicySet); + + if ( pThis->v.cExplicitPolicy == 0 + && pThis->v.pValidPolicyTree == NULL) + return rtCrX509CpvFailed(pThis, VERR_CR_X509_CPV_NO_VALID_POLICY, "No valid policy (wrap-up)."); + + return true; +} + + +/** + * Worker that validates one path. + * + * This implements the the algorithm in RFC-5280, section 6.1, with exception of + * the CRL checks in 6.1.3.a.3. + * + * @returns success indicator. + * @param pThis The path builder & validator instance. + * @param pTrustAnchor The trust anchor node. + */ +static bool rtCrX509CpvOneWorker(PRTCRX509CERTPATHSINT pThis, PRTCRX509CERTPATHNODE pTrustAnchor) +{ + /* + * Special case, target certificate is trusted. + */ + if (!pTrustAnchor->pParent) + return rtCrX509CpvFailed(pThis, VERR_CR_X509_CERTPATHS_INTERNAL_ERROR, "Target certificate is trusted."); + + /* + * Normal processing. + */ + rtCrX509CpvInit(pThis, pTrustAnchor); + if (RT_SUCCESS(pThis->rc)) + { + PRTCRX509CERTPATHNODE pNode = pTrustAnchor->pParent; + uint32_t iNode = pThis->v.iNode = 1; /* We count to cNode (inclusive). Same a validation tree depth. */ + while (pNode && RT_SUCCESS(pThis->rc)) + { + /* + * Basic certificate processing. + */ + if (!rtCrX509CpvCheckBasicCertInfo(pThis, pNode)) /* Step 6.1.3.a */ + break; + + bool const fSelfIssued = rtCrX509CertPathsIsSelfIssued(pNode); + if (!fSelfIssued || !pNode->pParent) /* Step 6.1.3.b-c */ + if (!rtCrX509CpvCheckNameConstraints(pThis, pNode)) + break; + + if (!rtCrX509CpvWorkValidPolicyTree(pThis, iNode, pNode, fSelfIssued)) /* Step 6.1.3.d-f */ + break; + + /* + * If it's the last certificate in the path, do wrap-ups. + */ + if (!pNode->pParent) /* Step 6.1.5 */ + { + Assert(iNode == pThis->v.cNodes); + if (!rtCrX509CpvWrapUp(pThis, pNode)) + break; + AssertRCBreak(pThis->rc); + return true; + } + + /* + * Preparations for the next certificate. + */ + PCRTCRX509TBSCERTIFICATE const pTbsCert = &pNode->pCert->TbsCertificate; + if ( pTbsCert->T3.pPolicyMappings + && !rtCrX509CpvSoakUpPolicyMappings(pThis, iNode, pTbsCert->T3.pPolicyMappings)) /* Step 6.1.4.a-b */ + break; + + pThis->v.pWorkingIssuer = &pTbsCert->Subject; /* Step 6.1.4.c */ + + rtCrX509CpvSetWorkingPublicKeyInfo(pThis, pNode); /* Step 6.1.4.d-f */ + + if ( pTbsCert->T3.pNameConstraints /* Step 6.1.4.g */ + && !rtCrX509CpvSoakUpNameConstraints(pThis, pTbsCert->T3.pNameConstraints)) + break; + + if (!fSelfIssued) /* Step 6.1.4.h */ + { + if (pThis->v.cExplicitPolicy > 0) + pThis->v.cExplicitPolicy--; + if (pThis->v.cInhibitPolicyMapping > 0) + pThis->v.cInhibitPolicyMapping--; + if (pThis->v.cInhibitAnyPolicy > 0) + pThis->v.cInhibitAnyPolicy--; + } + + if ( pTbsCert->T3.pPolicyConstraints /* Step 6.1.4.j */ + && !rtCrX509CpvSoakUpPolicyConstraints(pThis, pTbsCert->T3.pPolicyConstraints)) + break; + + if ( pTbsCert->T3.pInhibitAnyPolicy /* Step 6.1.4.j */ + && !rtCrX509CpvSoakUpInhibitAnyPolicy(pThis, pTbsCert->T3.pInhibitAnyPolicy)) + break; + + if (!rtCrX509CpvCheckAndSoakUpBasicConstraintsAndKeyUsage(pThis, pNode, fSelfIssued)) /* Step 6.1.4.k-n */ + break; + + if (!rtCrX509CpvCheckCriticalExtensions(pThis, pNode)) /* Step 6.1.4.o */ + break; + + /* + * Advance to the next certificate. + */ + pNode = pNode->pParent; + pThis->v.iNode = ++iNode; + } + AssertStmt(RT_FAILURE_NP(pThis->rc), pThis->rc = VERR_CR_X509_CERTPATHS_INTERNAL_ERROR); + } + return false; +} + + +RTDECL(int) RTCrX509CertPathsValidateOne(RTCRX509CERTPATHS hCertPaths, uint32_t iPath, PRTERRINFO pErrInfo) +{ + /* + * Validate the input. + */ + PRTCRX509CERTPATHSINT pThis = hCertPaths; + AssertPtrReturn(pThis, VERR_INVALID_HANDLE); + AssertReturn(pThis->u32Magic == RTCRX509CERTPATHSINT_MAGIC, VERR_INVALID_HANDLE); + AssertReturn(!(pThis->fFlags & ~RTCRX509CERTPATHSINT_F_VALID_MASK), VERR_INVALID_PARAMETER); + AssertPtrReturn(pThis->pTarget, VERR_INVALID_PARAMETER); + AssertPtrReturn(pThis->pRoot, VERR_INVALID_PARAMETER); + AssertReturn(pThis->rc == VINF_SUCCESS, VERR_INVALID_PARAMETER); + + /* + * Locate the path and validate it. + */ + int rc; + if (iPath < pThis->cPaths) + { + PRTCRX509CERTPATHNODE pLeaf = rtCrX509CertPathsGetLeafByIndex(pThis, iPath); + if (pLeaf) + { + if (RTCRX509CERTPATHNODE_SRC_IS_TRUSTED(pLeaf->uSrc)) + { + pThis->pErrInfo = pErrInfo; + rtCrX509CpvOneWorker(pThis, pLeaf); + pThis->pErrInfo = NULL; + rc = pThis->rc; + pThis->rc = VINF_SUCCESS; + } + else + rc = RTErrInfoSetF(pErrInfo, VERR_CR_X509_NO_TRUST_ANCHOR, "Path #%u is does not have a trust anchor: uSrc=%s", + iPath, rtCrX509CertPathsNodeGetSourceName(pLeaf)); + pLeaf->rcVerify = rc; + } + else + rc = VERR_CR_X509_CERTPATHS_INTERNAL_ERROR; + } + else + rc = VERR_NOT_FOUND; + return rc; +} + + +RTDECL(int) RTCrX509CertPathsValidateAll(RTCRX509CERTPATHS hCertPaths, uint32_t *pcValidPaths, PRTERRINFO pErrInfo) +{ + /* + * Validate the input. + */ + PRTCRX509CERTPATHSINT pThis = hCertPaths; + AssertPtrReturn(pThis, VERR_INVALID_HANDLE); + AssertReturn(pThis->u32Magic == RTCRX509CERTPATHSINT_MAGIC, VERR_INVALID_HANDLE); + AssertReturn(!(pThis->fFlags & ~RTCRX509CERTPATHSINT_F_VALID_MASK), VERR_INVALID_PARAMETER); + AssertPtrReturn(pThis->pTarget, VERR_INVALID_PARAMETER); + AssertPtrReturn(pThis->pRoot, VERR_INVALID_PARAMETER); + AssertReturn(pThis->rc == VINF_SUCCESS, VERR_INVALID_PARAMETER); + AssertPtrNullReturn(pcValidPaths, VERR_INVALID_POINTER); + + /* + * Validate the paths. + */ + pThis->pErrInfo = pErrInfo; + + int rcLastFailure = VINF_SUCCESS; + uint32_t cValidPaths = 0; + uint32_t iPath = 0; + PRTCRX509CERTPATHNODE pCurLeaf; + RTListForEach(&pThis->LeafList, pCurLeaf, RTCRX509CERTPATHNODE, ChildListOrLeafEntry) + { + if (RTCRX509CERTPATHNODE_SRC_IS_TRUSTED(pCurLeaf->uSrc)) + { + rtCrX509CpvOneWorker(hCertPaths, pCurLeaf); + if (RT_SUCCESS(pThis->rc)) + cValidPaths++; + else + rcLastFailure = pThis->rc; + pCurLeaf->rcVerify = pThis->rc; + pThis->rc = VINF_SUCCESS; + } + else + pCurLeaf->rcVerify = VERR_CR_X509_NO_TRUST_ANCHOR; + } + + pThis->pErrInfo = NULL; + + if (pcValidPaths) + *pcValidPaths = cValidPaths; + if (cValidPaths > 0) + return VINF_SUCCESS; + if (RT_SUCCESS_NP(rcLastFailure)) + return RTErrInfoSetF(pErrInfo, VERR_CR_X509_CPV_NO_TRUSTED_PATHS, + "None of the %u path(s) have a trust anchor.", pThis->cPaths); + return rcLastFailure; +} + + +RTDECL(uint32_t) RTCrX509CertPathsGetPathCount(RTCRX509CERTPATHS hCertPaths) +{ + /* + * Validate the input. + */ + PRTCRX509CERTPATHSINT pThis = hCertPaths; + AssertPtrReturn(pThis, UINT32_MAX); + AssertReturn(pThis->u32Magic == RTCRX509CERTPATHSINT_MAGIC, UINT32_MAX); + AssertPtrReturn(pThis->pRoot, UINT32_MAX); + + /* + * Return data. + */ + return pThis->cPaths; +} + + +RTDECL(int) RTCrX509CertPathsQueryPathInfo(RTCRX509CERTPATHS hCertPaths, uint32_t iPath, + bool *pfTrusted, uint32_t *pcNodes, PCRTCRX509NAME *ppSubject, + PCRTCRX509SUBJECTPUBLICKEYINFO *ppPublicKeyInfo, + PCRTCRX509CERTIFICATE *ppCert, PCRTCRCERTCTX *ppCertCtx, + int *prcVerify) +{ + /* + * Validate the input. + */ + PRTCRX509CERTPATHSINT pThis = hCertPaths; + AssertPtrReturn(pThis, VERR_INVALID_HANDLE); + AssertReturn(pThis->u32Magic == RTCRX509CERTPATHSINT_MAGIC, VERR_INVALID_HANDLE); + AssertPtrReturn(pThis->pRoot, VERR_WRONG_ORDER); + AssertReturn(iPath < pThis->cPaths, VERR_NOT_FOUND); + + /* + * Get the data. + */ + PRTCRX509CERTPATHNODE pLeaf = rtCrX509CertPathsGetLeafByIndex(pThis, iPath); + AssertReturn(pLeaf, VERR_CR_X509_INTERNAL_ERROR); + + if (pfTrusted) + *pfTrusted = RTCRX509CERTPATHNODE_SRC_IS_TRUSTED(pLeaf->uSrc); + + if (pcNodes) + *pcNodes = pLeaf->uDepth + 1; /* Includes both trust anchor and target. */ + + if (ppSubject) + *ppSubject = pLeaf->pCert ? &pLeaf->pCert->TbsCertificate.Subject : &pLeaf->pCertCtx->pTaInfo->CertPath.TaName; + + if (ppPublicKeyInfo) + *ppPublicKeyInfo = pLeaf->pCert ? &pLeaf->pCert->TbsCertificate.SubjectPublicKeyInfo : &pLeaf->pCertCtx->pTaInfo->PubKey; + + if (ppCert) + *ppCert = pLeaf->pCert; + + if (ppCertCtx) + { + if (pLeaf->pCertCtx) + { + uint32_t cRefs = RTCrCertCtxRetain(pLeaf->pCertCtx); + AssertReturn(cRefs != UINT32_MAX, VERR_CR_X509_INTERNAL_ERROR); + } + *ppCertCtx = pLeaf->pCertCtx; + } + + if (prcVerify) + *prcVerify = pLeaf->rcVerify; + + return VINF_SUCCESS; +} + + +RTDECL(uint32_t) RTCrX509CertPathsGetPathLength(RTCRX509CERTPATHS hCertPaths, uint32_t iPath) +{ + /* + * Validate the input. + */ + PRTCRX509CERTPATHSINT pThis = hCertPaths; + AssertPtrReturn(pThis, UINT32_MAX); + AssertReturn(pThis->u32Magic == RTCRX509CERTPATHSINT_MAGIC, UINT32_MAX); + AssertPtrReturn(pThis->pRoot, UINT32_MAX); + AssertReturn(iPath < pThis->cPaths, UINT32_MAX); + + /* + * Get the data. + */ + PRTCRX509CERTPATHNODE pLeaf = rtCrX509CertPathsGetLeafByIndex(pThis, iPath); + AssertReturn(pLeaf, UINT32_MAX); + return pLeaf->uDepth + 1; +} + + +RTDECL(int) RTCrX509CertPathsGetPathVerifyResult(RTCRX509CERTPATHS hCertPaths, uint32_t iPath) +{ + /* + * Validate the input. + */ + PRTCRX509CERTPATHSINT pThis = hCertPaths; + AssertPtrReturn(pThis, VERR_INVALID_HANDLE); + AssertReturn(pThis->u32Magic == RTCRX509CERTPATHSINT_MAGIC, VERR_INVALID_HANDLE); + AssertPtrReturn(pThis->pRoot, VERR_WRONG_ORDER); + AssertReturn(iPath < pThis->cPaths, VERR_NOT_FOUND); + + /* + * Get the data. + */ + PRTCRX509CERTPATHNODE pLeaf = rtCrX509CertPathsGetLeafByIndex(pThis, iPath); + AssertReturn(pLeaf, VERR_CR_X509_INTERNAL_ERROR); + + return pLeaf->rcVerify; +} + + +static PRTCRX509CERTPATHNODE rtCrX509CertPathsGetPathNodeByIndexes(PRTCRX509CERTPATHSINT pThis, uint32_t iPath, uint32_t iNode) +{ + PRTCRX509CERTPATHNODE pNode = rtCrX509CertPathsGetLeafByIndex(pThis, iPath); + Assert(pNode); + if (pNode) + { + if (iNode <= pNode->uDepth) + { + uint32_t uCertDepth = pNode->uDepth - iNode; + while (pNode->uDepth > uCertDepth) + pNode = pNode->pParent; + Assert(pNode); + Assert(pNode && pNode->uDepth == uCertDepth); + return pNode; + } + } + + return NULL; +} + + +RTDECL(PCRTCRX509CERTIFICATE) RTCrX509CertPathsGetPathNodeCert(RTCRX509CERTPATHS hCertPaths, uint32_t iPath, uint32_t iNode) +{ + /* + * Validate the input. + */ + PRTCRX509CERTPATHSINT pThis = hCertPaths; + AssertPtrReturn(pThis, NULL); + AssertReturn(pThis->u32Magic == RTCRX509CERTPATHSINT_MAGIC, NULL); + AssertPtrReturn(pThis->pRoot, NULL); + AssertReturn(iPath < pThis->cPaths, NULL); + + /* + * Get the data. + */ + PRTCRX509CERTPATHNODE pNode = rtCrX509CertPathsGetPathNodeByIndexes(pThis, iPath, iNode); + if (pNode) + return pNode->pCert; + return NULL; +} + + +/** @} */ + diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Runtime/common/crypto/x509-core.cpp virtualbox-4.1.44-dfsg/src/VBox/Runtime/common/crypto/x509-core.cpp --- virtualbox-4.1.12-dfsg/src/VBox/Runtime/common/crypto/x509-core.cpp 1970-01-01 00:00:00.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Runtime/common/crypto/x509-core.cpp 2015-11-11 15:09:00.000000000 +0000 @@ -0,0 +1,1535 @@ +/* $Id: x509-core.cpp $ */ +/** @file + * IPRT - Crypto - X.509, Core APIs. + */ + +/* + * Copyright (C) 2006-2014 Oracle Corporation + * + * This file is part of VirtualBox Open Source Edition (OSE), as + * available from http://www.virtualbox.org. This file is free software; + * you can redistribute it and/or modify it under the terms of the GNU + * General Public License (GPL) as published by the Free Software + * Foundation, in version 2 as it comes in the "COPYING" file of the + * VirtualBox OSE distribution. VirtualBox OSE is distributed in the + * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind. + * + * The contents of this file may alternatively be used under the terms + * of the Common Development and Distribution License Version 1.0 + * (CDDL) only, as it comes in the "COPYING.CDDL" file of the + * VirtualBox OSE distribution, in which case the provisions of the + * CDDL are applicable instead of those of the GPL. + * + * You may elect to license modified versions of this file under the + * terms and conditions of either the GPL or the CDDL or both. + */ + + +/******************************************************************************* +* Header Files * +*******************************************************************************/ +#include "internal/iprt.h" +#include + +#include +#include +#include + +#include "x509-internal.h" + + +/* + * Generate the code. + */ +#include + + +/* + * X.509 Validity. + */ + +RTDECL(bool) RTCrX509Validity_IsValidAtTimeSpec(PCRTCRX509VALIDITY pThis, PCRTTIMESPEC pTimeSpec) +{ + if (RTAsn1Time_CompareWithTimeSpec(&pThis->NotBefore, pTimeSpec) > 0) + return false; + if (RTAsn1Time_CompareWithTimeSpec(&pThis->NotAfter, pTimeSpec) < 0) + return false; + return true; +} + + +/* + * One X.509 Algorithm Identifier. + */ + +RTDECL(RTDIGESTTYPE) RTCrX509AlgorithmIdentifier_QueryDigestType(PCRTCRX509ALGORITHMIDENTIFIER pThis) +{ + AssertPtrReturn(pThis, RTDIGESTTYPE_INVALID); + if (!strcmp(pThis->Algorithm.szObjId, RTCRX509ALGORITHMIDENTIFIERID_MD5)) + return RTDIGESTTYPE_MD5; + if (!strcmp(pThis->Algorithm.szObjId, RTCRX509ALGORITHMIDENTIFIERID_SHA1)) + return RTDIGESTTYPE_SHA1; + if (!strcmp(pThis->Algorithm.szObjId, RTCRX509ALGORITHMIDENTIFIERID_SHA256)) + return RTDIGESTTYPE_SHA256; + if (!strcmp(pThis->Algorithm.szObjId, RTCRX509ALGORITHMIDENTIFIERID_SHA512)) + return RTDIGESTTYPE_SHA512; + + if (!strcmp(pThis->Algorithm.szObjId, RTCRX509ALGORITHMIDENTIFIERID_SHA384)) + return RTDIGESTTYPE_SHA384; + if (!strcmp(pThis->Algorithm.szObjId, RTCRX509ALGORITHMIDENTIFIERID_SHA224)) + return RTDIGESTTYPE_SHA224; + if (!strcmp(pThis->Algorithm.szObjId, RTCRX509ALGORITHMIDENTIFIERID_SHA512T224)) + return RTDIGESTTYPE_SHA512T224; + if (!strcmp(pThis->Algorithm.szObjId, RTCRX509ALGORITHMIDENTIFIERID_SHA512T256)) + return RTDIGESTTYPE_SHA512T256; + return RTDIGESTTYPE_INVALID; +} + + +RTDECL(uint32_t) RTCrX509AlgorithmIdentifier_QueryDigestSize(PCRTCRX509ALGORITHMIDENTIFIER pThis) +{ + AssertPtrReturn(pThis, UINT32_MAX); + + /* common */ + if (!strcmp(pThis->Algorithm.szObjId, RTCRX509ALGORITHMIDENTIFIERID_MD5)) + return 128 / 8; + if (!strcmp(pThis->Algorithm.szObjId, RTCRX509ALGORITHMIDENTIFIERID_SHA1)) + return 160 / 8; + if (!strcmp(pThis->Algorithm.szObjId, RTCRX509ALGORITHMIDENTIFIERID_SHA256)) + return 256 / 8; + if (!strcmp(pThis->Algorithm.szObjId, RTCRX509ALGORITHMIDENTIFIERID_SHA512)) + return 512 / 8; + + /* Less common. */ + if (!strcmp(pThis->Algorithm.szObjId, RTCRX509ALGORITHMIDENTIFIERID_MD2)) + return 128 / 8; + if (!strcmp(pThis->Algorithm.szObjId, RTCRX509ALGORITHMIDENTIFIERID_MD4)) + return 128 / 8; + if (!strcmp(pThis->Algorithm.szObjId, RTCRX509ALGORITHMIDENTIFIERID_SHA384)) + return 384 / 8; + if (!strcmp(pThis->Algorithm.szObjId, RTCRX509ALGORITHMIDENTIFIERID_SHA224)) + return 224 / 8; + if (!strcmp(pThis->Algorithm.szObjId, RTCRX509ALGORITHMIDENTIFIERID_SHA512T224)) + return 224 / 8; + if (!strcmp(pThis->Algorithm.szObjId, RTCRX509ALGORITHMIDENTIFIERID_SHA512T256)) + return 256 / 8; + if (!strcmp(pThis->Algorithm.szObjId, RTCRX509ALGORITHMIDENTIFIERID_WHIRLPOOL)) + return 512 / 8; + + return UINT32_MAX; +} + + +RTDECL(int) RTCrX509AlgorithmIdentifier_CompareWithString(PCRTCRX509ALGORITHMIDENTIFIER pThis, const char *pszObjId) +{ + return strcmp(pThis->Algorithm.szObjId, pszObjId); +} + + +RTDECL(int) RTCrX509AlgorithmIdentifier_CompareDigestAndEncryptedDigest(PCRTCRX509ALGORITHMIDENTIFIER pDigest, + PCRTCRX509ALGORITHMIDENTIFIER pEncryptedDigest) +{ + /* common */ + if (!strcmp(pDigest->Algorithm.szObjId, RTCRX509ALGORITHMIDENTIFIERID_MD5)) + { + if (!strcmp(pEncryptedDigest->Algorithm.szObjId, RTCRX509ALGORITHMIDENTIFIERID_MD5_WITH_RSA)) + return 0; + } + else if (!strcmp(pDigest->Algorithm.szObjId, RTCRX509ALGORITHMIDENTIFIERID_SHA1)) + { + if (!strcmp(pEncryptedDigest->Algorithm.szObjId, RTCRX509ALGORITHMIDENTIFIERID_SHA1_WITH_RSA)) + return 0; + } + else if (!strcmp(pDigest->Algorithm.szObjId, RTCRX509ALGORITHMIDENTIFIERID_SHA256)) + { + if (!strcmp(pEncryptedDigest->Algorithm.szObjId, RTCRX509ALGORITHMIDENTIFIERID_SHA256_WITH_RSA)) + return 0; + } + else if (!strcmp(pDigest->Algorithm.szObjId, RTCRX509ALGORITHMIDENTIFIERID_SHA512)) + { + if (!strcmp(pEncryptedDigest->Algorithm.szObjId, RTCRX509ALGORITHMIDENTIFIERID_SHA512_WITH_RSA)) + return 0; + } + /* Less common. */ + else if (!strcmp(pDigest->Algorithm.szObjId, RTCRX509ALGORITHMIDENTIFIERID_MD2)) + { + if (!strcmp(pEncryptedDigest->Algorithm.szObjId, RTCRX509ALGORITHMIDENTIFIERID_MD2_WITH_RSA)) + return 0; + } + else if (!strcmp(pDigest->Algorithm.szObjId, RTCRX509ALGORITHMIDENTIFIERID_MD4)) + { + if (!strcmp(pEncryptedDigest->Algorithm.szObjId, RTCRX509ALGORITHMIDENTIFIERID_MD4_WITH_RSA)) + return 0; + } + else if (!strcmp(pDigest->Algorithm.szObjId, RTCRX509ALGORITHMIDENTIFIERID_SHA384)) + { + if (!strcmp(pEncryptedDigest->Algorithm.szObjId, RTCRX509ALGORITHMIDENTIFIERID_SHA384_WITH_RSA)) + return 0; + } + else if (!strcmp(pDigest->Algorithm.szObjId, RTCRX509ALGORITHMIDENTIFIERID_SHA224)) + { + if (!strcmp(pEncryptedDigest->Algorithm.szObjId, RTCRX509ALGORITHMIDENTIFIERID_SHA224_WITH_RSA)) + return 0; + } + else if (!strcmp(pDigest->Algorithm.szObjId, RTCRX509ALGORITHMIDENTIFIERID_WHIRLPOOL)) + { + /* ?? */ + } + else + return -1; + return 1; +} + + +/* + * Set of X.509 Algorithm Identifiers. + */ + + +/* + * One X.509 AttributeTypeAndValue. + */ + + +/* + * Set of X.509 AttributeTypeAndValues / X.509 RelativeDistinguishedName. + */ + +/** + * Slow code path of rtCrX509CanNameIsNothing. + * + * @returns true if @uc maps to nothing, false if not. + * @param uc The unicode code point. + */ +static bool rtCrX509CanNameIsNothingSlow(RTUNICP uc) +{ + switch (uc) + { + /* 2.2 Map - Paragraph 1: */ + case 0x00ad: + case 0x1806: + case 0x034f: + case 0x180b: case 0x180c: case 0x180d: + + case 0xfe00: case 0xfe01: case 0xfe02: case 0xfe03: + case 0xfe04: case 0xfe05: case 0xfe06: case 0xfe07: + case 0xfe08: case 0xfe09: case 0xfe0a: case 0xfe0b: + case 0xfe0c: case 0xfe0d: case 0xfe0e: case 0xfe0f: + + case 0xfffc: + + /* 2.2 Map - Paragraph 3 (control code/function): */ + case 0x0000: case 0x0001: case 0x0002: case 0x0003: + case 0x0004: case 0x0005: case 0x0006: case 0x0007: + case 0x0008: + + case 0x000e: case 0x000f: + case 0x0010: case 0x0011: case 0x0012: case 0x0013: + case 0x0014: case 0x0015: case 0x0016: case 0x0017: + case 0x0018: case 0x0019: case 0x001a: case 0x001b: + case 0x001c: case 0x001d: case 0x001e: case 0x001f: + + case 0x007f: + case 0x0080: case 0x0081: case 0x0082: case 0x0083: + case 0x0084: /*case 0x0085:*/ case 0x0086: case 0x0087: + case 0x0088: case 0x0089: case 0x008a: case 0x008b: + case 0x008c: case 0x008d: case 0x008e: case 0x008f: + case 0x0090: case 0x0091: case 0x0092: case 0x0093: + case 0x0094: case 0x0095: case 0x0096: case 0x0097: + case 0x0098: case 0x0099: case 0x009a: case 0x009b: + case 0x009c: case 0x009d: case 0x009e: case 0x009f: + + case 0x06dd: + case 0x070f: + case 0x180e: + case 0x200c: case 0x200d: case 0x200e: case 0x200f: + case 0x202a: case 0x202b: case 0x202c: case 0x202d: case 0x202e: + case 0x2060: case 0x2061: case 0x2062: case 0x2063: + case 0x206a: case 0x206b: case 0x206c: case 0x206d: case 0x206e: case 0x206f: + case 0xfeff: + case 0xfff9: case 0xfffa: case 0xfffb: + case 0x1d173: case 0x1d174: case 0x1d175: case 0x1d176: case 0x1d177: case 0x1d178: case 0x1d179: case 0x1d17a: + case 0xe0001: + case 0xe0020: case 0xe0021: case 0xe0022: case 0xe0023: + case 0xe0024: case 0xe0025: case 0xe0026: case 0xe0027: + case 0xe0028: case 0xe0029: case 0xe002a: case 0xe002b: + case 0xe002c: case 0xe002d: case 0xe002e: case 0xe002f: + case 0xe0030: case 0xe0031: case 0xe0032: case 0xe0033: + case 0xe0034: case 0xe0035: case 0xe0036: case 0xe0037: + case 0xe0038: case 0xe0039: case 0xe003a: case 0xe003b: + case 0xe003c: case 0xe003d: case 0xe003e: case 0xe003f: + case 0xe0040: case 0xe0041: case 0xe0042: case 0xe0043: + case 0xe0044: case 0xe0045: case 0xe0046: case 0xe0047: + case 0xe0048: case 0xe0049: case 0xe004a: case 0xe004b: + case 0xe004c: case 0xe004d: case 0xe004e: case 0xe004f: + case 0xe0050: case 0xe0051: case 0xe0052: case 0xe0053: + case 0xe0054: case 0xe0055: case 0xe0056: case 0xe0057: + case 0xe0058: case 0xe0059: case 0xe005a: case 0xe005b: + case 0xe005c: case 0xe005d: case 0xe005e: case 0xe005f: + case 0xe0060: case 0xe0061: case 0xe0062: case 0xe0063: + case 0xe0064: case 0xe0065: case 0xe0066: case 0xe0067: + case 0xe0068: case 0xe0069: case 0xe006a: case 0xe006b: + case 0xe006c: case 0xe006d: case 0xe006e: case 0xe006f: + case 0xe0070: case 0xe0071: case 0xe0072: case 0xe0073: + case 0xe0074: case 0xe0075: case 0xe0076: case 0xe0077: + case 0xe0078: case 0xe0079: case 0xe007a: case 0xe007b: + case 0xe007c: case 0xe007d: case 0xe007e: case 0xe007f: + + /* 2.2 Map - Paragraph 4. */ + case 0x200b: + return true; + } + return false; +} + + +/** + * Checks if @a uc maps to nothing according to mapping rules of RFC-5280 and + * RFC-4518. + * + * @returns true if @uc maps to nothing, false if not. + * @param uc The unicode code point. + */ +DECLINLINE(bool) rtCrX509CanNameIsNothing(RTUNICP uc) +{ + if (uc > 0x001f && uc < 0x00ad) + return false; + return rtCrX509CanNameIsNothingSlow(uc); +} + + +/** + * Slow code path of rtCrX509CanNameIsSpace. + * + * @returns true if space, false if not. + * @param uc The unicode code point. + */ +static bool rtCrX509CanNameIsSpaceSlow(RTUNICP uc) +{ + switch (uc) + { + /* 2.2 Map - Paragraph 2. */ + case 0x09: + case 0x0a: + case 0x0b: + case 0x0c: + case 0x0d: + case 0x20: + case 0x0085: + case 0x00a0: + case 0x1680: + case 0x2000: case 0x2001: case 0x2002: case 0x2003: + case 0x2004: case 0x2005: case 0x2006: case 0x2007: + case 0x2008: case 0x2009: case 0x200a: + case 0x2028: case 0x2029: + case 0x202f: + case 0x205f: + case 0x3000: + return true; + } + return false; +} + + +/** + * Checks if @a uc is a space character according to the mapping rules of + * RFC-5280 and RFC-4518. + * + * @returns true if space, false if not. + * @param uc The unicode code point. + */ +DECLINLINE(bool) rtCrX509CanNameIsSpace(RTUNICP uc) +{ + if (uc < 0x0085) + { + if (uc > 0x0020) + return false; + if (uc == 0x0020) /* space */ + return true; + } + return rtCrX509CanNameIsSpaceSlow(uc); +} + + +static const char *rtCrX509CanNameStripLeft(const char *psz, size_t *pcch) +{ + /* + * Return space when we've encountered the first non-space-non-nothing code point. + */ + const char * const pszStart = psz; + const char *pszPrev; + for (;;) + { + pszPrev = psz; + RTUNICP uc; + int rc = RTStrGetCpEx(&psz, &uc); + AssertRCBreak(rc); + if (!uc) + { + if ((uintptr_t)(pszPrev - pszStart) >= *pcch) + break; + /* NUL inside the string, maps to nothing => ignore it. */ + } + else if (!rtCrX509CanNameIsSpace(uc) && !rtCrX509CanNameIsNothing(uc)) + break; + } + *pcch -= pszPrev - pszStart; + return pszPrev; +} + + +static RTUNICP rtCrX509CanNameGetNextCpWithMappingSlowSpace(const char **ppsz, size_t *pcch) +{ + /* + * Return space when we've encountered the first non-space-non-nothing code point. + */ + RTUNICP uc; + const char *psz = *ppsz; + const char * const pszStart = psz; + const char *pszPrev; + for (;;) + { + pszPrev = psz; + int rc = RTStrGetCpEx(&psz, &uc); + AssertRCBreakStmt(rc, uc = 0x20); + if (!uc) + { + if ((uintptr_t)(pszPrev - pszStart) >= *pcch) + { + uc = 0; /* End of string: Ignore trailing spaces. */ + break; + } + /* NUL inside the string, maps to nothing => ignore it. */ + } + else if (!rtCrX509CanNameIsSpace(uc) && !rtCrX509CanNameIsNothing(uc)) + { + uc = 0x20; /* Return space before current char. */ + break; + } + } + + *ppsz = pszPrev; + *pcch -= pszPrev - pszStart; + return uc; +} + + +DECLINLINE(RTUNICP) rtCrX509CanNameGetNextCpIgnoreNul(const char **ppsz, size_t *pcch) +{ + while (*pcch > 0) + { + const char *psz = *ppsz; + RTUNICP uc = *psz; + if (uc < 0x80) + { + *pcch -= 1; + *ppsz = psz + 1; + } + else + { + int rc = RTStrGetCpEx(ppsz, &uc); + AssertRCReturn(rc, uc); + size_t cchCp = *ppsz - psz; + AssertReturn(cchCp <= *pcch, 0); + *pcch -= cchCp; + } + if (uc != 0) + return uc; + } + return 0; +} + + +static RTUNICP rtCrX509CanNameGetNextCpWithMappingSlowNothing(const char **ppsz, size_t *pcch) +{ + /* + * Return first code point which doesn't map to nothing. If we encounter + * a space, we defer to the mapping-after-space routine above. + */ + for (;;) + { + RTUNICP uc = rtCrX509CanNameGetNextCpIgnoreNul(ppsz, pcch); + if (rtCrX509CanNameIsSpace(uc)) + return rtCrX509CanNameGetNextCpWithMappingSlowSpace(ppsz, pcch); + if (!rtCrX509CanNameIsNothing(uc) || uc == 0) + return uc; + } +} + + +DECLINLINE(RTUNICP) rtCrX509CanNameGetNextCpWithMapping(const char **ppsz, size_t *pcch) +{ + RTUNICP uc = rtCrX509CanNameGetNextCpIgnoreNul(ppsz, pcch); + if (uc) + { + if (!rtCrX509CanNameIsSpace(uc)) + { + if (!rtCrX509CanNameIsNothing(uc)) + return uc; + return rtCrX509CanNameGetNextCpWithMappingSlowNothing(ppsz, pcch); + } + return rtCrX509CanNameGetNextCpWithMappingSlowSpace(ppsz, pcch); + } + return uc; +} + + +RTDECL(bool) RTCrX509AttributeTypeAndValue_MatchAsRdnByRfc5280(PCRTCRX509ATTRIBUTETYPEANDVALUE pLeft, + PCRTCRX509ATTRIBUTETYPEANDVALUE pRight) +{ + if (RTAsn1ObjId_Compare(&pLeft->Type, &pRight->Type) == 0) + { + /* + * Try for perfect match in case we get luck. + */ +#ifdef DEBUG_bird /* Want to test the complicated code path first */ + if (pLeft->Value.enmType != RTASN1TYPE_STRING || pRight->Value.enmType != RTASN1TYPE_STRING) +#endif + if (RTAsn1DynType_Compare(&pLeft->Value, &pRight->Value) == 0) + return true; + + /* + * If both are string types, we can compare them according to RFC-5280. + */ + if ( pLeft->Value.enmType == RTASN1TYPE_STRING + && pRight->Value.enmType == RTASN1TYPE_STRING) + { + size_t cchLeft; + const char *pszLeft; + int rc = RTAsn1String_QueryUtf8(&pLeft->Value.u.String, &pszLeft, &cchLeft); + if (RT_SUCCESS(rc)) + { + size_t cchRight; + const char *pszRight; + rc = RTAsn1String_QueryUtf8(&pRight->Value.u.String, &pszRight, &cchRight); + if (RT_SUCCESS(rc)) + { + /* + * Perform a simplified RFC-5280 comparsion. + * The algorithm as be relaxed on the following counts: + * 1. No unicode normalization. + * 2. Prohibited characters not checked for. + * 3. Bidirectional characters are not ignored. + */ + pszLeft = rtCrX509CanNameStripLeft(pszLeft, &cchLeft); + pszRight = rtCrX509CanNameStripLeft(pszRight, &cchRight); + while (*pszLeft && *pszRight) + { + RTUNICP ucLeft = rtCrX509CanNameGetNextCpWithMapping(&pszLeft, &cchLeft); + RTUNICP ucRight = rtCrX509CanNameGetNextCpWithMapping(&pszRight, &cchRight); + if (ucLeft != ucRight) + { + ucLeft = RTUniCpToLower(ucLeft); + ucRight = RTUniCpToLower(ucRight); + if (ucLeft != ucRight) + return false; + } + } + + return cchRight == 0 && cchLeft == 0; + } + } + } + } + return false; +} + + +RTDECL(bool) RTCrX509RelativeDistinguishedName_MatchByRfc5280(PCRTCRX509RELATIVEDISTINGUISHEDNAME pLeft, + PCRTCRX509RELATIVEDISTINGUISHEDNAME pRight) +{ + /* + * No match if the attribute count differs. + */ + uint32_t const cItems = pLeft->cItems; + if (cItems == pRight->cItems) + { + /* + * Compare each attribute, but don't insist on the same order nor + * bother checking for duplicates (too complicated). + */ + for (uint32_t iLeft = 0; iLeft < cItems; iLeft++) + { + PCRTCRX509ATTRIBUTETYPEANDVALUE pLeftAttr = &pLeft->paItems[iLeft]; + bool fFound = false; + for (uint32_t iRight = 0; iRight < cItems; iRight++) + if (RTCrX509AttributeTypeAndValue_MatchAsRdnByRfc5280(pLeftAttr, &pRight->paItems[iRight])) + { + fFound = true; + break; + } + if (!fFound) + return false; + } + return true; + } + return false; + +} + + +/* + * X.509 Name. + */ + +RTDECL(bool) RTCrX509Name_MatchByRfc5280(PCRTCRX509NAME pLeft, PCRTCRX509NAME pRight) +{ + uint32_t const cItems = pLeft->cItems; + if (cItems == pRight->cItems) + { + /* Require exact order. */ + for (uint32_t iRdn = 0; iRdn < cItems; iRdn++) + if (!RTCrX509RelativeDistinguishedName_MatchByRfc5280(&pLeft->paItems[iRdn], &pRight->paItems[iRdn])) + return false; + return true; + } + return false; +} + + +RTDECL(bool) RTCrX509Name_ConstraintMatch(PCRTCRX509NAME pConstraint, PCRTCRX509NAME pName) +{ + /* + * Check that the constraint is a prefix of the name. This means that + * the name must have at least as many components and the constraint. + */ + if (pName->cItems >= pConstraint->cItems) + { + /* + * Parallel crawl of the two RDNs arrays. + */ + for (uint32_t i = 0; pConstraint->cItems; i++) + { + PCRTCRX509RELATIVEDISTINGUISHEDNAME pConstrRdns = &pConstraint->paItems[i]; + PCRTCRX509RELATIVEDISTINGUISHEDNAME pNameRdns = &pName->paItems[i]; + + /* + * Walk the constraint attribute & value array. + */ + for (uint32_t iConstrAttrib = 0; iConstrAttrib < pConstrRdns->cItems; iConstrAttrib++) + { + PCRTCRX509ATTRIBUTETYPEANDVALUE pConstrAttrib = &pConstrRdns->paItems[iConstrAttrib]; + + /* + * Find matching attribute & value in the name. + */ + bool fFound = false; + for (uint32_t iNameAttrib = 0; iNameAttrib < pNameRdns->cItems; iNameAttrib++) + if (RTCrX509AttributeTypeAndValue_MatchAsRdnByRfc5280(pConstrAttrib, &pNameRdns->paItems[iNameAttrib])) + { + fFound = true; + break; + } + if (fFound) + return false; + } + } + return true; + } + return false; +} + + +/** + * Mapping between X.500 object IDs and short and long names. + * + * See RFC-1327, ... + */ +static struct +{ + const char *pszOid; + const char *pszShortNm; + size_t cchShortNm; + const char *pszLongNm; +} const g_aRdnMap[] = +{ + { "0.9.2342.19200300.100.1.3", RT_STR_TUPLE("Mail"), "Rfc822Mailbox" }, + { "0.9.2342.19200300.100.1.25", RT_STR_TUPLE("DC"), "DomainComponent" }, + { "1.2.840.113549.1.9.1", RT_STR_TUPLE("Email"), "EmailAddress" }, + { "2.5.4.3", RT_STR_TUPLE("CN"), "CommonName" }, + { "2.5.4.4", RT_STR_TUPLE("S"), "Surname" }, + { "2.5.4.6", RT_STR_TUPLE("C"), "CountryName" }, + { "2.5.4.7", RT_STR_TUPLE("L"), "LocalityName" }, + { "2.5.4.8", RT_STR_TUPLE("ST"), "StatOrProviceName" }, + { "2.5.4.10", RT_STR_TUPLE("O"), "OrganizationName" }, + { "2.5.4.11", RT_STR_TUPLE("OU"), "OrganizationUnitName" }, + { "2.5.4.42", RT_STR_TUPLE("G"), "GivenName" }, + { "2.5.4.43", RT_STR_TUPLE("I"), "Initials" }, + { "2.5.4.44", RT_STR_TUPLE("GQ"), "GenerationQualifier" }, +}; + + +RTDECL(bool) RTCrX509Name_MatchWithString(PCRTCRX509NAME pThis, const char *pszString) +{ + /* Keep track of the string length. */ + size_t cchString = strlen(pszString); + + /* + * The usual double loop for walking the components. + */ + for (uint32_t i = 0; i < pThis->cItems; i++) + { + PCRTCRX509RELATIVEDISTINGUISHEDNAME pRdn = &pThis->paItems[i]; + for (uint32_t j = 0; j < pRdn->cItems; j++) + { + PCRTCRX509ATTRIBUTETYPEANDVALUE pComponent = &pRdn->paItems[j]; + + /* + * Must be a string. + */ + if (pComponent->Value.enmType != RTASN1TYPE_STRING) + return false; + + /* + * Look up the component name prefix and check whether it's also in the string. + */ + uint32_t iName = RT_ELEMENTS(g_aRdnMap); + while (iName-- > 0) + if (RTAsn1ObjId_CompareWithString(&pComponent->Type, g_aRdnMap[iName].pszOid) == 0) + break; + AssertMsgReturn(iName != UINT32_MAX, ("Please extend g_aRdnMap with '%s'.\n", pComponent->Type.szObjId), false); + + if ( strncmp(pszString, g_aRdnMap[iName].pszShortNm, g_aRdnMap[iName].cchShortNm) != 0 + || pszString[g_aRdnMap[iName].cchShortNm] != '=') + return false; + + pszString += g_aRdnMap[iName].cchShortNm + 1; + cchString -= g_aRdnMap[iName].cchShortNm + 1; + + /* + * Compare the component string. + */ + size_t cchComponent; + int rc = RTAsn1String_QueryUtf8Len(&pComponent->Value.u.String, &cchComponent); + AssertRCReturn(rc, false); + + if (cchComponent > cchString) + return false; + if (RTAsn1String_CompareWithString(&pComponent->Value.u.String, pszString, cchComponent) != 0) + return false; + + cchString -= cchComponent; + pszString += cchComponent; + + /* + * Check separator comma + space and skip extra spaces before the next component. + */ + if (cchString) + { + if (pszString[0] != ',') + return false; + if (pszString[1] != ' ' && pszString[1] != '\t') + return false; + pszString += 2; + cchString -= 2; + + while (*pszString == ' ' || *pszString == '\t') + { + pszString++; + cchString--; + } + } + } + } + + /* + * If we got thru the whole name and the whole string, we're good. + */ + return *pszString == '\0'; +} + + +RTDECL(int) RTCrX509Name_FormatAsString(PCRTCRX509NAME pThis, char *pszBuf, size_t cbBuf, size_t *pcbActual) +{ + /* + * The usual double loop for walking the components. + */ + size_t off = 0; + int rc = VINF_SUCCESS; + for (uint32_t i = 0; i < pThis->cItems; i++) + { + PCRTCRX509RELATIVEDISTINGUISHEDNAME pRdn = &pThis->paItems[i]; + for (uint32_t j = 0; j < pRdn->cItems; j++) + { + PCRTCRX509ATTRIBUTETYPEANDVALUE pComponent = &pRdn->paItems[j]; + + /* + * Must be a string. + */ + if (pComponent->Value.enmType != RTASN1TYPE_STRING) + return VERR_CR_X509_NAME_NOT_STRING; + + /* + * Look up the component name prefix. + */ + uint32_t iName = RT_ELEMENTS(g_aRdnMap); + while (iName-- > 0) + if (RTAsn1ObjId_CompareWithString(&pComponent->Type, g_aRdnMap[iName].pszOid) == 0) + break; + AssertMsgReturn(iName != UINT32_MAX, ("Please extend g_aRdnMap with '%s'.\n", pComponent->Type.szObjId), + VERR_CR_X509_NAME_MISSING_RDN_MAP_ENTRY); + + /* + * Append the prefix. + */ + if (off) + { + if (off + 2 < cbBuf) + { + pszBuf[off] = ','; + pszBuf[off + 1] = ' '; + } + else + rc = VERR_BUFFER_OVERFLOW; + off += 2; + } + + if (off + g_aRdnMap[iName].cchShortNm + 1 < cbBuf) + { + memcpy(&pszBuf[off], g_aRdnMap[iName].pszShortNm, g_aRdnMap[iName].cchShortNm); + pszBuf[off + g_aRdnMap[iName].cchShortNm] = '='; + } + else + rc = VERR_BUFFER_OVERFLOW; + off += g_aRdnMap[iName].cchShortNm + 1; + + /* + * Add the component string. + */ + const char *pszUtf8; + size_t cchUtf8; + int rc2 = RTAsn1String_QueryUtf8(&pComponent->Value.u.String, &pszUtf8, &cchUtf8); + AssertRCReturn(rc2, rc2); + if (off + cchUtf8 < cbBuf) + memcpy(&pszBuf[off], pszUtf8, cchUtf8); + else + rc = VERR_BUFFER_OVERFLOW; + off += cchUtf8; + } + } + + if (pcbActual) + *pcbActual = off + 1; + if (off < cbBuf) + pszBuf[off] = '\0'; + return rc; +} + + + +/* + * One X.509 GeneralName. + */ + +/** + * Name constraint matching (RFC-5280): DNS Name. + * + * @returns true on match, false on mismatch. + * @param pConstraint The constraint name. + * @param pName The name to match against the constraint. + */ +static bool rtCrX509GeneralName_ConstraintMatchDnsName(PCRTCRX509GENERALNAME pConstraint, PCRTCRX509GENERALNAME pName) +{ + /* + * Empty constraint string is taken to match everything. + */ + if (pConstraint->u.pT2_DnsName->Asn1Core.cb == 0) + return true; + + /* + * Get the UTF-8 strings for the two. + */ + size_t cchConstraint; + char const *pszConstraint; + int rc = RTAsn1String_QueryUtf8(pConstraint->u.pT2_DnsName, &pszConstraint, &cchConstraint); + if (RT_SUCCESS(rc)) + { + size_t cchFull; + char const *pszFull; + rc = RTAsn1String_QueryUtf8(pName->u.pT2_DnsName, &pszFull, &cchFull); + if (RT_SUCCESS(rc)) + { + /* + * No match if the constraint is longer. + */ + if (cchConstraint > cchFull) + return false; + + /* + * No match if the constraint and name tail doesn't match + * in a case-insensitive compare. + */ + size_t offFull = cchFull - cchConstraint; + if (RTStrICmp(&pszFull[offFull], pszConstraint) != 0) + return false; + if (!offFull) + return true; + + /* + * The matching constraint must be delimited by a dot in the full + * name. There seems to be some discussion whether ".oracle.com" + * should match "www..oracle.com". This implementation does choose + * to not succeed in that case. + */ + if ((pszFull[offFull - 1] == '.') ^ (pszFull[offFull] == '.')) + return true; + + return false; + } + } + + /* fall back. */ + return RTCrX509GeneralName_Compare(pConstraint, pName) == 0; +} + + +/** + * Name constraint matching (RFC-5280): RFC-822 (email). + * + * @returns true on match, false on mismatch. + * @param pConstraint The constraint name. + * @param pName The name to match against the constraint. + */ +static bool rtCrX509GeneralName_ConstraintMatchRfc822Name(PCRTCRX509GENERALNAME pConstraint, PCRTCRX509GENERALNAME pName) +{ + /* + * Empty constraint string is taken to match everything. + */ + if (pConstraint->u.pT1_Rfc822->Asn1Core.cb == 0) + return true; + + /* + * Get the UTF-8 strings for the two. + */ + size_t cchConstraint; + char const *pszConstraint; + int rc = RTAsn1String_QueryUtf8(pConstraint->u.pT1_Rfc822, &pszConstraint, &cchConstraint); + if (RT_SUCCESS(rc)) + { + size_t cchFull; + char const *pszFull; + rc = RTAsn1String_QueryUtf8(pName->u.pT1_Rfc822, &pszFull, &cchFull); + if (RT_SUCCESS(rc)) + { + /* + * No match if the constraint is longer. + */ + if (cchConstraint > cchFull) + return false; + + /* + * A lone dot matches everything. + */ + if (cchConstraint == 1 && *pszConstraint == '.') + return true; + + /* + * If there is a '@' in the constraint, the entire address must match. + */ + const char *pszConstraintAt = (const char *)memchr(pszConstraint, '@', cchConstraint); + if (pszConstraintAt) + return cchConstraint == cchFull && RTStrICmp(pszConstraint, pszFull) == 0; + + /* + * No match if the constraint and name tail doesn't match + * in a case-insensitive compare. + */ + size_t offFull = cchFull - cchConstraint; + if (RTStrICmp(&pszFull[offFull], pszConstraint) != 0) + return false; + + /* + * If the constraint starts with a dot, we're supposed to be + * satisfied with a tail match. + */ + /** @todo Check if this should match even if offFull == 0. */ + if (*pszConstraint == '.') + return true; + + /* + * Otherwise, we require a hostname match and thus expect an '@' + * immediatly preceding the constraint match. + */ + if (pszFull[offFull - 1] == '@') + return true; + + return false; + } + } + + /* fall back. */ + return RTCrX509GeneralName_Compare(pConstraint, pName) == 0; +} + + +/** + * Extracts the hostname from an URI. + * + * @returns true if successfully extract, false if no hostname present. + * @param pszUri The URI. + * @param pchHostName . + * @param pcchHostName . + */ +static bool rtCrX509GeneralName_ExtractHostName(const char *pszUri, const char **pchHostName, size_t *pcchHostName) +{ + /* + * Skip the schema name. + */ + const char *pszStart = strchr(pszUri, ':'); + while (pszStart && (pszStart[1] != '/' || pszStart[2] != '/')) + pszStart = strchr(pszStart + 1, ':'); + if (pszStart) + { + pszStart += 3; + + /* + * The name ends with the first slash or ":port". + */ + const char *pszEnd = strchr(pszStart, '/'); + if (!pszEnd) + pszEnd = strchr(pszStart, '\0'); + if (memchr(pszStart, ':', pszEnd - pszStart)) + do + pszEnd--; + while (*pszEnd != ':'); + if (pszEnd != pszStart) + { + /* + * Drop access credentials at the front of the string if present. + */ + const char *pszAt = (const char *)memchr(pszStart, '@', pszEnd - pszStart); + if (pszAt) + pszStart = pszAt + 1; + + /* + * If there is still some string left, that's the host name. + */ + if (pszEnd != pszStart) + { + *pcchHostName = pszEnd - pszStart; + *pchHostName = pszStart; + return true; + } + } + } + + *pcchHostName = 0; + *pchHostName = NULL; + return false; +} + + +/** + * Name constraint matching (RFC-5280): URI. + * + * @returns true on match, false on mismatch. + * @param pConstraint The constraint name. + * @param pName The name to match against the constraint. + */ +static bool rtCrX509GeneralName_ConstraintMatchUri(PCRTCRX509GENERALNAME pConstraint, PCRTCRX509GENERALNAME pName) +{ + /* + * Empty constraint string is taken to match everything. + */ + if (pConstraint->u.pT6_Uri->Asn1Core.cb == 0) + return true; + + /* + * Get the UTF-8 strings for the two. + */ + size_t cchConstraint; + char const *pszConstraint; + int rc = RTAsn1String_QueryUtf8(pConstraint->u.pT6_Uri, &pszConstraint, &cchConstraint); + if (RT_SUCCESS(rc)) + { + size_t cchFull; + char const *pszFull; + rc = RTAsn1String_QueryUtf8(pName->u.pT6_Uri, &pszFull, &cchFull); + if (RT_SUCCESS(rc)) + { + /* + * Isolate the hostname in the name. + */ + size_t cchHostName; + const char *pchHostName; + if (rtCrX509GeneralName_ExtractHostName(pszFull, &pchHostName, &cchHostName)) + { + /* + * Domain constraint. + */ + if (*pszConstraint == '.') + { + if (cchHostName >= cchConstraint) + { + size_t offHostName = cchHostName - cchConstraint; + if (RTStrICmp(&pchHostName[offHostName], pszConstraint) == 0) + { + /* "http://www..oracle.com" does not match ".oracle.com". + It's debatable whether "http://.oracle.com/" should match. */ + if ( !offHostName + || pchHostName[offHostName - 1] != '.') + return true; + } + } + } + /* + * Host name constraint. Full match required. + */ + else if ( cchHostName == cchConstraint + && RTStrNICmp(pchHostName, pszConstraint, cchHostName) == 0) + return true; + } + return false; + } + } + + /* fall back. */ + return RTCrX509GeneralName_Compare(pConstraint, pName) == 0; +} + + +/** + * Name constraint matching (RFC-5280): IP address. + * + * @returns true on match, false on mismatch. + * @param pConstraint The constraint name. + * @param pName The name to match against the constraint. + */ +static bool rtCrX509GeneralName_ConstraintMatchIpAddress(PCRTCRX509GENERALNAME pConstraint, PCRTCRX509GENERALNAME pName) +{ + uint8_t const *pbConstraint = pConstraint->u.pT7_IpAddress->Asn1Core.uData.pu8; + uint8_t const *pbFull = pName->u.pT7_IpAddress->Asn1Core.uData.pu8; + + /* + * IPv4. + */ + if ( pConstraint->u.pT7_IpAddress->Asn1Core.cb == 8 /* ip+netmask*/ + && pName->u.pT7_IpAddress->Asn1Core.cb == 4) /* ip */ + return ((pbFull[0] ^ pbConstraint[0]) & pbConstraint[4]) == 0 + && ((pbFull[1] ^ pbConstraint[1]) & pbConstraint[5]) == 0 + && ((pbFull[2] ^ pbConstraint[2]) & pbConstraint[6]) == 0 + && ((pbFull[3] ^ pbConstraint[3]) & pbConstraint[7]) == 0; + + /* + * IPv6. + */ + if ( pConstraint->u.pT7_IpAddress->Asn1Core.cb == 32 /* ip+netmask*/ + && pName->u.pT7_IpAddress->Asn1Core.cb == 16) /* ip */ + { + for (uint32_t i = 0; i < 16; i++) + if (((pbFull[i] ^ pbConstraint[i]) & pbConstraint[i + 16]) != 0) + return false; + return true; + } + + return RTCrX509GeneralName_Compare(pConstraint, pName) == 0; +} + + +RTDECL(bool) RTCrX509GeneralName_ConstraintMatch(PCRTCRX509GENERALNAME pConstraint, PCRTCRX509GENERALNAME pName) +{ + if (pConstraint->enmChoice == pName->enmChoice) + { + if (RTCRX509GENERALNAME_IS_DIRECTORY_NAME(pConstraint)) + return RTCrX509Name_ConstraintMatch(&pConstraint->u.pT4->DirectoryName, &pName->u.pT4->DirectoryName); + + if (RTCRX509GENERALNAME_IS_DNS_NAME(pConstraint)) + return rtCrX509GeneralName_ConstraintMatchDnsName(pConstraint, pName); + + if (RTCRX509GENERALNAME_IS_RFC822_NAME(pConstraint)) + return rtCrX509GeneralName_ConstraintMatchRfc822Name(pConstraint, pName); + + if (RTCRX509GENERALNAME_IS_URI(pConstraint)) + return rtCrX509GeneralName_ConstraintMatchUri(pConstraint, pName); + + if (RTCRX509GENERALNAME_IS_IP_ADDRESS(pConstraint)) + return rtCrX509GeneralName_ConstraintMatchIpAddress(pConstraint, pName); + + AssertFailed(); + return RTCrX509GeneralName_Compare(pConstraint, pName) == 0; + } + return false; +} + + +/* + * Sequence of X.509 GeneralNames. + */ + + +/* + * X.509 UniqueIdentifier. + */ + + +/* + * X.509 SubjectPublicKeyInfo. + */ + + +/* + * X.509 AuthorityKeyIdentifier (IPRT representation). + */ + + +/* + * One X.509 PolicyQualifierInfo. + */ + + +/* + * Sequence of X.509 PolicyQualifierInfo. + */ + + +/* + * One X.509 PolicyInformation. + */ + + +/* + * Sequence of X.509 CertificatePolicies. + */ + + +/* + * One X.509 PolicyMapping (IPRT representation). + */ + + +/* + * Sequence of X.509 PolicyMappings (IPRT representation). + */ + + +/* + * X.509 BasicConstraints (IPRT representation). + */ + + +/* + * X.509 GeneralSubtree (IPRT representation). + */ + + +RTDECL(bool) RTCrX509GeneralSubtree_ConstraintMatch(PCRTCRX509GENERALSUBTREE pConstraint, PCRTCRX509GENERALSUBTREE pName) +{ + return RTCrX509GeneralName_ConstraintMatch(&pConstraint->Base, &pName->Base); +} + + +/* + * Sequence of X.509 GeneralSubtrees (IPRT representation). + */ + + +/* + * X.509 NameConstraints (IPRT representation). + */ + + +/* + * X.509 PolicyConstraints (IPRT representation). + */ + + +/* + * One X.509 Extension. + */ + + +/* + * Sequence of X.509 Extensions. + */ + + +/* + * X.509 TbsCertificate. + */ + +static void rtCrx509TbsCertificate_AddKeyUsageFlags(PRTCRX509TBSCERTIFICATE pThis, PCRTCRX509EXTENSION pExtension) +{ + AssertReturnVoid(pExtension->enmValue == RTCRX509EXTENSIONVALUE_BIT_STRING); + /* 3 = 1 byte for unused bit count, followed by one or two bytes containing actual bits. RFC-5280 defines bits 0 thru 8. */ + AssertReturnVoid(pExtension->ExtnValue.pEncapsulated->cb <= 3); + pThis->T3.fKeyUsage |= (uint32_t)RTAsn1BitString_GetAsUInt64((PCRTASN1BITSTRING)pExtension->ExtnValue.pEncapsulated); +} + + +static void rtCrx509TbsCertificate_AddExtKeyUsageFlags(PRTCRX509TBSCERTIFICATE pThis, PCRTCRX509EXTENSION pExtension) +{ + AssertReturnVoid(pExtension->enmValue == RTCRX509EXTENSIONVALUE_SEQ_OF_OBJ_IDS); + PCRTASN1SEQOFOBJIDS pObjIds = (PCRTASN1SEQOFOBJIDS)pExtension->ExtnValue.pEncapsulated; + uint32_t i = pObjIds->cItems; + while (i-- > 0) + { + + if (RTAsn1ObjId_CompareWithString(&pObjIds->paItems[i], RTCRX509_ANY_EXTENDED_KEY_USAGE_OID) == 0) + pThis->T3.fExtKeyUsage |= RTCRX509CERT_EKU_F_ANY; + else if (RTAsn1ObjId_StartsWith(&pObjIds->paItems[i], RTCRX509_ID_KP_OID)) + { + if (RTAsn1ObjIdCountComponents(&pObjIds->paItems[i]) == 9) + switch (RTAsn1ObjIdGetLastComponentsAsUInt32(&pObjIds->paItems[i])) + { + case 1: pThis->T3.fExtKeyUsage |= RTCRX509CERT_EKU_F_SERVER_AUTH; break; + case 2: pThis->T3.fExtKeyUsage |= RTCRX509CERT_EKU_F_CLIENT_AUTH; break; + case 3: pThis->T3.fExtKeyUsage |= RTCRX509CERT_EKU_F_CODE_SIGNING; break; + case 4: pThis->T3.fExtKeyUsage |= RTCRX509CERT_EKU_F_EMAIL_PROTECTION; break; + case 5: pThis->T3.fExtKeyUsage |= RTCRX509CERT_EKU_F_IPSEC_END_SYSTEM; break; + case 6: pThis->T3.fExtKeyUsage |= RTCRX509CERT_EKU_F_IPSEC_TUNNEL; break; + case 7: pThis->T3.fExtKeyUsage |= RTCRX509CERT_EKU_F_IPSEC_USER; break; + case 8: pThis->T3.fExtKeyUsage |= RTCRX509CERT_EKU_F_TIMESTAMPING; break; + case 9: pThis->T3.fExtKeyUsage |= RTCRX509CERT_EKU_F_OCSP_SIGNING; break; + case 10: pThis->T3.fExtKeyUsage |= RTCRX509CERT_EKU_F_DVCS; break; + case 11: pThis->T3.fExtKeyUsage |= RTCRX509CERT_EKU_F_SBGP_CERT_AA_SERVICE_AUTH; break; + case 13: pThis->T3.fExtKeyUsage |= RTCRX509CERT_EKU_F_EAP_OVER_PPP; break; + case 14: pThis->T3.fExtKeyUsage |= RTCRX509CERT_EKU_F_EAP_OVER_LAN; break; + default: pThis->T3.fExtKeyUsage |= RTCRX509CERT_EKU_F_OTHER; break; + } + else + pThis->T3.fExtKeyUsage |= RTCRX509CERT_EKU_F_OTHER; + } + else if (RTAsn1ObjId_StartsWith(&pObjIds->paItems[i], RTCRX509_APPLE_EKU_APPLE_EXTENDED_KEY_USAGE_OID)) + { + if (RTAsn1ObjId_CompareWithString(&pObjIds->paItems[i], RTCRX509_APPLE_EKU_CODE_SIGNING_OID) == 0) + pThis->T3.fExtKeyUsage |= RTCRX509CERT_EKU_F_APPLE_CODE_SIGNING; + else if (RTAsn1ObjId_CompareWithString(&pObjIds->paItems[i], RTCRX509_APPLE_EKU_CODE_SIGNING_DEVELOPMENT_OID) == 0) + pThis->T3.fExtKeyUsage |= RTCRX509CERT_EKU_F_APPLE_CODE_SIGNING_DEVELOPMENT; + else if (RTAsn1ObjId_CompareWithString(&pObjIds->paItems[i], RTCRX509_APPLE_EKU_SOFTWARE_UPDATE_SIGNING_OID) == 0) + pThis->T3.fExtKeyUsage |= RTCRX509CERT_EKU_F_APPLE_SOFTWARE_UPDATE_SIGNING; + else if (RTAsn1ObjId_CompareWithString(&pObjIds->paItems[i], RTCRX509_APPLE_EKU_CODE_SIGNING_THRID_PARTY_OID) == 0) + pThis->T3.fExtKeyUsage |= RTCRX509CERT_EKU_F_APPLE_CODE_SIGNING_THIRD_PARTY; + else if (RTAsn1ObjId_CompareWithString(&pObjIds->paItems[i], RTCRX509_APPLE_EKU_RESOURCE_SIGNING_OID) == 0) + pThis->T3.fExtKeyUsage |= RTCRX509CERT_EKU_F_APPLE_RESOURCE_SIGNING; + else if (RTAsn1ObjId_CompareWithString(&pObjIds->paItems[i], RTCRX509_APPLE_EKU_SYSTEM_IDENTITY_OID) == 0) + pThis->T3.fExtKeyUsage |= RTCRX509CERT_EKU_F_APPLE_SYSTEM_IDENTITY; + else + pThis->T3.fExtKeyUsage |= RTCRX509CERT_EKU_F_OTHER; + } + else if (RTAsn1ObjId_StartsWith(&pObjIds->paItems[i], "1.3.6.1.4.1.311")) + { + if (RTAsn1ObjId_CompareWithString(&pObjIds->paItems[i], RTCRX509_MS_EKU_TIMESTAMP_SIGNING_OID) == 0) + pThis->T3.fExtKeyUsage |= RTCRX509CERT_EKU_F_MS_TIMESTAMP_SIGNING; + else if (RTAsn1ObjId_CompareWithString(&pObjIds->paItems[i], RTCRX509_MS_EKU_NT5_CRYPTO_OID) == 0) + pThis->T3.fExtKeyUsage |= RTCRX509CERT_EKU_F_MS_NT5_CRYPTO; + else if (RTAsn1ObjId_CompareWithString(&pObjIds->paItems[i], RTCRX509_MS_EKU_OEM_WHQL_CRYPTO_OID) == 0) + pThis->T3.fExtKeyUsage |= RTCRX509CERT_EKU_F_MS_OEM_WHQL_CRYPTO; + else if (RTAsn1ObjId_CompareWithString(&pObjIds->paItems[i], RTCRX509_MS_EKU_EMBEDDED_NT_CRYPTO_OID) == 0) + pThis->T3.fExtKeyUsage |= RTCRX509CERT_EKU_F_MS_EMBEDDED_NT_CRYPTO; + else if (RTAsn1ObjId_CompareWithString(&pObjIds->paItems[i], RTCRX509_MS_EKU_KERNEL_MODE_CODE_SIGNING_OID) == 0) + pThis->T3.fExtKeyUsage |= RTCRX509CERT_EKU_F_MS_KERNEL_MODE_CODE_SIGNING; + else if (RTAsn1ObjId_CompareWithString(&pObjIds->paItems[i], RTCRX509_MS_EKU_LIFETIME_SIGNING_OID) == 0) + pThis->T3.fExtKeyUsage |= RTCRX509CERT_EKU_F_MS_LIFETIME_SIGNING; + else if (RTAsn1ObjId_CompareWithString(&pObjIds->paItems[i], RTCRX509_MS_EKU_DRM_OID) == 0) + pThis->T3.fExtKeyUsage |= RTCRX509CERT_EKU_F_MS_DRM; + else if (RTAsn1ObjId_CompareWithString(&pObjIds->paItems[i], RTCRX509_MS_EKU_DRM_INDIVIDUALIZATION_OID) == 0) + pThis->T3.fExtKeyUsage |= RTCRX509CERT_EKU_F_MS_DRM_INDIVIDUALIZATION; + else + pThis->T3.fExtKeyUsage |= RTCRX509CERT_EKU_F_OTHER; + } + else + pThis->T3.fExtKeyUsage |= RTCRX509CERT_EKU_F_OTHER; + } +} + + +/** + * (Re-)Process the certificate extensions. + * + * Will fail if duplicate extensions are encountered. + * + * @returns IPRT status code. + * @param pThis The to-be-signed certificate part. + * @param pErrInfo Where to return extended error details, + * optional. + */ +RTDECL(int) RTCrX509TbsCertificate_ReprocessExtensions(PRTCRX509TBSCERTIFICATE pThis, PRTERRINFO pErrInfo) +{ + /* + * Clear all variables we will set. + */ + pThis->T3.fFlags = 0; + pThis->T3.fKeyUsage = 0; + pThis->T3.fExtKeyUsage = 0; + pThis->T3.pAuthorityKeyIdentifier = NULL; + pThis->T3.pSubjectKeyIdentifier = NULL; + pThis->T3.pAltSubjectName = NULL; + pThis->T3.pAltIssuerName = NULL; + pThis->T3.pCertificatePolicies = NULL; + pThis->T3.pPolicyMappings = NULL; + pThis->T3.pBasicConstraints = NULL; + pThis->T3.pNameConstraints = NULL; + pThis->T3.pPolicyConstraints = NULL; + pThis->T3.pInhibitAnyPolicy = NULL; + +#define CHECK_SET_PRESENT_RET_ON_DUP(a_pThis, a_pErrInfo, a_fPresentFlag) \ + do { \ + if ((a_pThis)->T3.fFlags & (a_fPresentFlag)) \ + return RTErrInfoSet(a_pErrInfo, VERR_CR_X509_TBSCERT_DUPLICATE_EXTENSION, \ + "Duplicate extension " #a_fPresentFlag); \ + (a_pThis)->T3.fFlags |= (a_fPresentFlag); \ + } while (0) + + /* + * Process all the extensions. + */ + for (uint32_t i = 0; i < pThis->T3.Extensions.cItems; i++) + { + PCRTASN1OBJID pExtnId = &pThis->T3.Extensions.paItems[i].ExtnId; + PCRTASN1OCTETSTRING pExtValue = &pThis->T3.Extensions.paItems[i].ExtnValue; + if (RTAsn1ObjId_CompareWithString(pExtnId, RTCRX509_ID_CE_KEY_USAGE_OID) == 0) + { + CHECK_SET_PRESENT_RET_ON_DUP(pThis, pErrInfo, RTCRX509TBSCERTIFICATE_F_PRESENT_KEY_USAGE); + rtCrx509TbsCertificate_AddKeyUsageFlags(pThis, &pThis->T3.Extensions.paItems[i]); + Assert(pThis->T3.Extensions.paItems[i].enmValue == RTCRX509EXTENSIONVALUE_BIT_STRING); + } + else if (RTAsn1ObjId_CompareWithString(pExtnId, RTCRX509_ID_CE_EXT_KEY_USAGE_OID) == 0) + { + CHECK_SET_PRESENT_RET_ON_DUP(pThis, pErrInfo, RTCRX509TBSCERTIFICATE_F_PRESENT_EXT_KEY_USAGE); + rtCrx509TbsCertificate_AddExtKeyUsageFlags(pThis, &pThis->T3.Extensions.paItems[i]); + Assert(pThis->T3.Extensions.paItems[i].enmValue == RTCRX509EXTENSIONVALUE_SEQ_OF_OBJ_IDS); + } + else if (RTAsn1ObjId_CompareWithString(pExtnId, RTCRX509_ID_CE_AUTHORITY_KEY_IDENTIFIER_OID) == 0) + { + CHECK_SET_PRESENT_RET_ON_DUP(pThis, pErrInfo, RTCRX509TBSCERTIFICATE_F_PRESENT_AUTHORITY_KEY_IDENTIFIER); + pThis->T3.pAuthorityKeyIdentifier = (PCRTCRX509AUTHORITYKEYIDENTIFIER)pExtValue->pEncapsulated; + Assert(pThis->T3.Extensions.paItems[i].enmValue == RTCRX509EXTENSIONVALUE_AUTHORITY_KEY_IDENTIFIER); + } + else if (RTAsn1ObjId_CompareWithString(pExtnId, RTCRX509_ID_CE_OLD_AUTHORITY_KEY_IDENTIFIER_OID) == 0) + { + CHECK_SET_PRESENT_RET_ON_DUP(pThis, pErrInfo, RTCRX509TBSCERTIFICATE_F_PRESENT_OLD_AUTHORITY_KEY_IDENTIFIER); + pThis->T3.pOldAuthorityKeyIdentifier = (PCRTCRX509OLDAUTHORITYKEYIDENTIFIER)pExtValue->pEncapsulated; + Assert(pThis->T3.Extensions.paItems[i].enmValue == RTCRX509EXTENSIONVALUE_OLD_AUTHORITY_KEY_IDENTIFIER); + } + else if (RTAsn1ObjId_CompareWithString(pExtnId, RTCRX509_ID_CE_SUBJECT_KEY_IDENTIFIER_OID) == 0) + { + CHECK_SET_PRESENT_RET_ON_DUP(pThis, pErrInfo, RTCRX509TBSCERTIFICATE_F_PRESENT_SUBJECT_KEY_IDENTIFIER); + pThis->T3.pSubjectKeyIdentifier = (PCRTASN1OCTETSTRING)pExtValue->pEncapsulated; + Assert(pThis->T3.Extensions.paItems[i].enmValue == RTCRX509EXTENSIONVALUE_OCTET_STRING); + } + else if (RTAsn1ObjId_CompareWithString(pExtnId, RTCRX509_ID_CE_SUBJECT_ALT_NAME_OID) == 0) + { + CHECK_SET_PRESENT_RET_ON_DUP(pThis, pErrInfo, RTCRX509TBSCERTIFICATE_F_PRESENT_SUBJECT_ALT_NAME); + pThis->T3.pAltSubjectName = (PCRTCRX509GENERALNAMES)pExtValue->pEncapsulated; + Assert(pThis->T3.Extensions.paItems[i].enmValue == RTCRX509EXTENSIONVALUE_GENERAL_NAMES); + } + else if (RTAsn1ObjId_CompareWithString(pExtnId, RTCRX509_ID_CE_ISSUER_ALT_NAME_OID) == 0) + { + CHECK_SET_PRESENT_RET_ON_DUP(pThis, pErrInfo, RTCRX509TBSCERTIFICATE_F_PRESENT_ISSUER_ALT_NAME); + pThis->T3.pAltIssuerName = (PCRTCRX509GENERALNAMES)pExtValue->pEncapsulated; + Assert(pThis->T3.Extensions.paItems[i].enmValue == RTCRX509EXTENSIONVALUE_GENERAL_NAMES); + } + else if (RTAsn1ObjId_CompareWithString(pExtnId, RTCRX509_ID_CE_CERTIFICATE_POLICIES_OID) == 0) + { + CHECK_SET_PRESENT_RET_ON_DUP(pThis, pErrInfo, RTCRX509TBSCERTIFICATE_F_PRESENT_CERTIFICATE_POLICIES); + pThis->T3.pCertificatePolicies = (PCRTCRX509CERTIFICATEPOLICIES)pExtValue->pEncapsulated; + Assert(pThis->T3.Extensions.paItems[i].enmValue == RTCRX509EXTENSIONVALUE_CERTIFICATE_POLICIES); + } + else if (RTAsn1ObjId_CompareWithString(pExtnId, RTCRX509_ID_CE_POLICY_MAPPINGS_OID) == 0) + { + CHECK_SET_PRESENT_RET_ON_DUP(pThis, pErrInfo, RTCRX509TBSCERTIFICATE_F_PRESENT_POLICY_MAPPINGS); + pThis->T3.pPolicyMappings = (PCRTCRX509POLICYMAPPINGS)pExtValue->pEncapsulated; + Assert(pThis->T3.Extensions.paItems[i].enmValue == RTCRX509EXTENSIONVALUE_POLICY_MAPPINGS); + } + else if (RTAsn1ObjId_CompareWithString(pExtnId, RTCRX509_ID_CE_BASIC_CONSTRAINTS_OID) == 0) + { + CHECK_SET_PRESENT_RET_ON_DUP(pThis, pErrInfo, RTCRX509TBSCERTIFICATE_F_PRESENT_BASIC_CONSTRAINTS); + pThis->T3.pBasicConstraints = (PCRTCRX509BASICCONSTRAINTS)pExtValue->pEncapsulated; + Assert(pThis->T3.Extensions.paItems[i].enmValue == RTCRX509EXTENSIONVALUE_BASIC_CONSTRAINTS); + } + else if (RTAsn1ObjId_CompareWithString(pExtnId, RTCRX509_ID_CE_NAME_CONSTRAINTS_OID) == 0) + { + CHECK_SET_PRESENT_RET_ON_DUP(pThis, pErrInfo, RTCRX509TBSCERTIFICATE_F_PRESENT_NAME_CONSTRAINTS); + pThis->T3.pNameConstraints = (PCRTCRX509NAMECONSTRAINTS)pExtValue->pEncapsulated; + Assert(pThis->T3.Extensions.paItems[i].enmValue == RTCRX509EXTENSIONVALUE_NAME_CONSTRAINTS); + } + else if (RTAsn1ObjId_CompareWithString(pExtnId, RTCRX509_ID_CE_POLICY_CONSTRAINTS_OID) == 0) + { + CHECK_SET_PRESENT_RET_ON_DUP(pThis, pErrInfo, RTCRX509TBSCERTIFICATE_F_PRESENT_POLICY_CONSTRAINTS); + pThis->T3.pPolicyConstraints = (PCRTCRX509POLICYCONSTRAINTS)pExtValue->pEncapsulated; + Assert(pThis->T3.Extensions.paItems[i].enmValue == RTCRX509EXTENSIONVALUE_POLICY_CONSTRAINTS); + } + else if (RTAsn1ObjId_CompareWithString(pExtnId, RTCRX509_ID_CE_INHIBIT_ANY_POLICY_OID) == 0) + { + CHECK_SET_PRESENT_RET_ON_DUP(pThis, pErrInfo, RTCRX509TBSCERTIFICATE_F_PRESENT_INHIBIT_ANY_POLICY); + pThis->T3.pInhibitAnyPolicy = (PCRTASN1INTEGER)pExtValue->pEncapsulated; + Assert(pThis->T3.Extensions.paItems[i].enmValue == RTCRX509EXTENSIONVALUE_INTEGER); + } + else if (RTAsn1ObjId_CompareWithString(pExtnId, RTCRX509_ID_CE_ACCEPTABLE_CERT_POLICIES_OID) == 0) + pThis->T3.fFlags |= RTCRX509TBSCERTIFICATE_F_PRESENT_ACCEPTABLE_CERT_POLICIES; + else + pThis->T3.fFlags |= RTCRX509TBSCERTIFICATE_F_PRESENT_OTHER; + } + + if (!pThis->T3.fFlags) + pThis->T3.fFlags |= RTCRX509TBSCERTIFICATE_F_PRESENT_NONE; + +#undef CHECK_SET_PRESENT_RET_ON_DUP + return VINF_SUCCESS; +} + + + +/* + * One X.509 Certificate. + */ + +RTDECL(bool) RTCrX509Certificate_MatchIssuerAndSerialNumber(PCRTCRX509CERTIFICATE pCertificate, + PCRTCRX509NAME pIssuer, PCRTASN1INTEGER pSerialNumber) +{ + if ( RTAsn1Integer_UnsignedCompare(&pCertificate->TbsCertificate.SerialNumber, pSerialNumber) == 0 + && RTCrX509Name_Compare(&pCertificate->TbsCertificate.Issuer, pIssuer) == 0) + return true; + return false; +} + + +RTDECL(bool) RTCrX509Certificate_MatchSubjectOrAltSubjectByRfc5280(PCRTCRX509CERTIFICATE pThis, PCRTCRX509NAME pName) +{ + if (RTCrX509Name_MatchByRfc5280(&pThis->TbsCertificate.Subject, pName)) + return true; + + if (RTCrX509Extensions_IsPresent(&pThis->TbsCertificate.T3.Extensions)) + for (uint32_t i = 0; i < pThis->TbsCertificate.T3.Extensions.cItems; i++) + { + PCRTCRX509EXTENSION pExt = &pThis->TbsCertificate.T3.Extensions.paItems[i]; + if ( pExt->enmValue == RTCRX509EXTENSIONVALUE_GENERAL_NAMES + && RTAsn1ObjId_CompareWithString(&pExt->ExtnId, RTCRX509_ID_CE_SUBJECT_ALT_NAME_OID)) + { + PCRTCRX509GENERALNAMES pGeneralNames = (PCRTCRX509GENERALNAMES)pExt->ExtnValue.pEncapsulated; + for (uint32_t j = 0; j < pGeneralNames->cItems; j++) + if ( RTCRX509GENERALNAME_IS_DIRECTORY_NAME(&pGeneralNames->paItems[j]) + && RTCrX509Name_MatchByRfc5280(&pGeneralNames->paItems[j].u.pT4->DirectoryName, pName)) + return true; + } + } + return false; +} + + +RTDECL(bool) RTCrX509Certificate_IsSelfSigned(PCRTCRX509CERTIFICATE pCertificate) +{ + if (RTCrX509Certificate_IsPresent(pCertificate)) + { + return RTCrX509Name_MatchByRfc5280(&pCertificate->TbsCertificate.Subject, + &pCertificate->TbsCertificate.Issuer); + } + return false; +} + + +/* + * Set of X.509 Certificates. + */ + +RTDECL(PCRTCRX509CERTIFICATE) +RTCrX509Certificates_FindByIssuerAndSerialNumber(PCRTCRX509CERTIFICATES pCertificates, + PCRTCRX509NAME pIssuer, PCRTASN1INTEGER pSerialNumber) +{ + for (uint32_t i = 0; i < pCertificates->cItems; i++) + if (RTCrX509Certificate_MatchIssuerAndSerialNumber(&pCertificates->paItems[i], pIssuer, pSerialNumber)) + return &pCertificates->paItems[i]; + return NULL; +} + + diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Runtime/common/crypto/x509-file.cpp virtualbox-4.1.44-dfsg/src/VBox/Runtime/common/crypto/x509-file.cpp --- virtualbox-4.1.12-dfsg/src/VBox/Runtime/common/crypto/x509-file.cpp 1970-01-01 00:00:00.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Runtime/common/crypto/x509-file.cpp 2015-11-11 15:09:00.000000000 +0000 @@ -0,0 +1,105 @@ +/* $Id: x509-file.cpp $ */ +/** @file + * IPRT - Crypto - X.509, File related APIs. + */ + +/* + * Copyright (C) 2006-2014 Oracle Corporation + * + * This file is part of VirtualBox Open Source Edition (OSE), as + * available from http://www.virtualbox.org. This file is free software; + * you can redistribute it and/or modify it under the terms of the GNU + * General Public License (GPL) as published by the Free Software + * Foundation, in version 2 as it comes in the "COPYING" file of the + * VirtualBox OSE distribution. VirtualBox OSE is distributed in the + * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind. + * + * The contents of this file may alternatively be used under the terms + * of the Common Development and Distribution License Version 1.0 + * (CDDL) only, as it comes in the "COPYING.CDDL" file of the + * VirtualBox OSE distribution, in which case the provisions of the + * CDDL are applicable instead of those of the GPL. + * + * You may elect to license modified versions of this file under the + * terms and conditions of either the GPL or the CDDL or both. + */ + + +/******************************************************************************* +* Header Files * +*******************************************************************************/ +#include "internal/iprt.h" +#include + +#include +#include +#include +#include + + +/******************************************************************************* +* Global Variables * +*******************************************************************************/ +static RTCRPEMMARKERWORD const g_aWords_Certificate[] = { { RT_STR_TUPLE("CERTIFICATE") } }; +/** X509 Certificate markers. */ +static RTCRPEMMARKER const g_aCertificateMarkers[] = { { g_aWords_Certificate, RT_ELEMENTS(g_aWords_Certificate) } }; + + +RTDECL(int) RTCrX509Certificate_ReadFromFile(PRTCRX509CERTIFICATE pCertificate, const char *pszFilename, uint32_t fFlags, + PCRTASN1ALLOCATORVTABLE pAllocator, PRTERRINFO pErrInfo) +{ + AssertReturn(!fFlags, VERR_INVALID_FLAGS); + PCRTCRPEMSECTION pSectionHead; + int rc = RTCrPemReadFile(pszFilename, 0, g_aCertificateMarkers, RT_ELEMENTS(g_aCertificateMarkers), &pSectionHead, pErrInfo); + if (RT_SUCCESS(rc)) + { + RTCRX509CERTIFICATE TmpCert; + RTASN1CURSORPRIMARY PrimaryCursor; + RTAsn1CursorInitPrimary(&PrimaryCursor, pSectionHead->pbData, (uint32_t)RT_MIN(pSectionHead->cbData, UINT32_MAX), + pErrInfo, pAllocator, RTASN1CURSOR_FLAGS_DER, RTPathFilename(pszFilename)); + rc = RTCrX509Certificate_DecodeAsn1(&PrimaryCursor.Cursor, 0, &TmpCert, "Cert"); + if (RT_SUCCESS(rc)) + { + rc = RTCrX509Certificate_CheckSanity(&TmpCert, 0, pErrInfo, "Cert"); + if (RT_SUCCESS(rc)) + { + rc = RTCrX509Certificate_Clone(pCertificate, &TmpCert, &g_RTAsn1DefaultAllocator); + if (RT_SUCCESS(rc)) + { + if (pSectionHead->pNext || PrimaryCursor.Cursor.cbLeft) + rc = VINF_ASN1_MORE_DATA; + } + } + RTCrX509Certificate_Delete(&TmpCert); + } + RTCrPemFreeSections(pSectionHead); + } + return rc; +} + + + +#if 0 +RTDECL(int) RTCrX509Certificates_ReadFromFile(const char *pszFilename, uint32_t fFlags, + PRTCRX509CERTIFICATES pCertificates, PRTERRINFO pErrInfo) +{ + AssertReturn(!fFlags, VERR_INVALID_FLAGS); + PCRTCRPEMSECTION pSectionHead; + int rc = RTCrPemReadFile(pszFilename, 0, g_aCertificateMarkers, RT_ELEMENTS(g_aCertificateMarkers), &pSectionHead, pErrInfo); + if (RT_SUCCESS(rc)) + { + pCertificates->Allocation + + PCRTCRPEMSECTION pCurSec = pSectionHead; + while (pCurSec) + { + + pCurSec = pCurSec->pNext; + } + + RTCrPemFreeSections(pSectionHead); + } + return rc; +} +#endif + diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Runtime/common/crypto/x509-init.cpp virtualbox-4.1.44-dfsg/src/VBox/Runtime/common/crypto/x509-init.cpp --- virtualbox-4.1.12-dfsg/src/VBox/Runtime/common/crypto/x509-init.cpp 1970-01-01 00:00:00.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Runtime/common/crypto/x509-init.cpp 2015-11-11 15:09:00.000000000 +0000 @@ -0,0 +1,76 @@ +/* $Id: x509-init.cpp $ */ +/** @file + * IPRT - Crypto - X.509, Initialization API. + */ + +/* + * Copyright (C) 2006-2014 Oracle Corporation + * + * This file is part of VirtualBox Open Source Edition (OSE), as + * available from http://www.virtualbox.org. This file is free software; + * you can redistribute it and/or modify it under the terms of the GNU + * General Public License (GPL) as published by the Free Software + * Foundation, in version 2 as it comes in the "COPYING" file of the + * VirtualBox OSE distribution. VirtualBox OSE is distributed in the + * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind. + * + * The contents of this file may alternatively be used under the terms + * of the Common Development and Distribution License Version 1.0 + * (CDDL) only, as it comes in the "COPYING.CDDL" file of the + * VirtualBox OSE distribution, in which case the provisions of the + * CDDL are applicable instead of those of the GPL. + * + * You may elect to license modified versions of this file under the + * terms and conditions of either the GPL or the CDDL or both. + */ + + +/******************************************************************************* +* Header Files * +*******************************************************************************/ +#include "internal/iprt.h" +#include + +#include +#include +#include + +#include "x509-internal.h" + + +static int rtCrX509Extension_ExtnValue_Clone(PRTCRX509EXTENSION pThis, PCRTCRX509EXTENSION pSrc) +{ + pThis->enmValue = pSrc->enmValue; + return VINF_SUCCESS; +} + + +RTDECL(int) RTCrX509Name_RecodeAsUtf8(PRTCRX509NAME pThis, PCRTASN1ALLOCATORVTABLE pAllocator) +{ + uint32_t cRdns = pThis->cItems; + PRTCRX509RELATIVEDISTINGUISHEDNAME pRdn = &pThis->paItems[0]; + while (cRdns-- > 0) + { + uint32_t cAttribs = pRdn->cItems; + PRTCRX509ATTRIBUTETYPEANDVALUE pAttrib = &pRdn->paItems[0]; + while (cAttribs-- > 0) + { + if (pAttrib->Value.enmType == RTASN1TYPE_STRING) + { + int rc = RTAsn1String_RecodeAsUtf8(&pAttrib->Value.u.String, pAllocator); + if (RT_FAILURE(rc)) + return rc; + } + pAttrib++; + } + pRdn++; + } + return VINF_SUCCESS; +} + + +/* + * Generate the code. + */ +#include + diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Runtime/common/crypto/x509-internal.h virtualbox-4.1.44-dfsg/src/VBox/Runtime/common/crypto/x509-internal.h --- virtualbox-4.1.12-dfsg/src/VBox/Runtime/common/crypto/x509-internal.h 1970-01-01 00:00:00.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Runtime/common/crypto/x509-internal.h 2015-11-11 15:09:00.000000000 +0000 @@ -0,0 +1,35 @@ +/* $Id: x509-internal.h $ */ +/** @file + * IPRT - Crypto - X.509, Internal Header. + */ + +/* + * Copyright (C) 2006-2014 Oracle Corporation + * + * This file is part of VirtualBox Open Source Edition (OSE), as + * available from http://www.virtualbox.org. This file is free software; + * you can redistribute it and/or modify it under the terms of the GNU + * General Public License (GPL) as published by the Free Software + * Foundation, in version 2 as it comes in the "COPYING" file of the + * VirtualBox OSE distribution. VirtualBox OSE is distributed in the + * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind. + * + * The contents of this file may alternatively be used under the terms + * of the Common Development and Distribution License Version 1.0 + * (CDDL) only, as it comes in the "COPYING.CDDL" file of the + * VirtualBox OSE distribution, in which case the provisions of the + * CDDL are applicable instead of those of the GPL. + * + * You may elect to license modified versions of this file under the + * terms and conditions of either the GPL or the CDDL or both. + */ + + +#ifndef ___common_crypto_x509_internal_h +#define ___common_crypto_x509_internal_h + +#define RTASN1TMPL_TEMPLATE_FILE "../common/crypto/x509-template.h" +#include + +#endif + diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Runtime/common/crypto/x509-sanity.cpp virtualbox-4.1.44-dfsg/src/VBox/Runtime/common/crypto/x509-sanity.cpp --- virtualbox-4.1.12-dfsg/src/VBox/Runtime/common/crypto/x509-sanity.cpp 1970-01-01 00:00:00.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Runtime/common/crypto/x509-sanity.cpp 2015-11-11 15:09:00.000000000 +0000 @@ -0,0 +1,149 @@ +/* $Id: x509-sanity.cpp $ */ +/** @file + * IPRT - Crypto - X.509, Sanity Checkers. + */ + +/* + * Copyright (C) 2006-2014 Oracle Corporation + * + * This file is part of VirtualBox Open Source Edition (OSE), as + * available from http://www.virtualbox.org. This file is free software; + * you can redistribute it and/or modify it under the terms of the GNU + * General Public License (GPL) as published by the Free Software + * Foundation, in version 2 as it comes in the "COPYING" file of the + * VirtualBox OSE distribution. VirtualBox OSE is distributed in the + * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind. + * + * The contents of this file may alternatively be used under the terms + * of the Common Development and Distribution License Version 1.0 + * (CDDL) only, as it comes in the "COPYING.CDDL" file of the + * VirtualBox OSE distribution, in which case the provisions of the + * CDDL are applicable instead of those of the GPL. + * + * You may elect to license modified versions of this file under the + * terms and conditions of either the GPL or the CDDL or both. + */ + + +/******************************************************************************* +* Header Files * +*******************************************************************************/ +#include "internal/iprt.h" +#include + +#include +#include + +#include "x509-internal.h" + + + +static int rtCrX509Validity_CheckSanityExtra(PCRTCRX509VALIDITY pThis, uint32_t fFlags, PRTERRINFO pErrInfo, const char *pszErrorTag) +{ + if (RTAsn1Time_Compare(&pThis->NotBefore, &pThis->NotAfter) > 0) + return RTErrInfoSetF(pErrInfo, VERR_CR_X509_VALIDITY_SWAPPED, "%s: NotBefore is after NotAfter", pszErrorTag); + /** @todo check tag constraints? */ + return VINF_SUCCESS; +} + + +static int rtCrX509Name_CheckSanityExtra(PCRTCRX509NAME pThis, uint32_t fFlags, PRTERRINFO pErrInfo, const char *pszErrorTag) +{ + if (pThis->cItems == 0) + return RTErrInfoSetF(pErrInfo, VERR_CR_X509_NAME_EMPTY_SET, "%s: Has no components.", pszErrorTag); + + for (uint32_t i = 0; i < pThis->cItems; i++) + { + if (pThis->cItems == 0) + return RTErrInfoSetF(pErrInfo, VERR_CR_X509_NAME_EMPTY_SUB_SET, + "%s: Items[%u] has no sub components.", pszErrorTag, i); + + for (uint32_t j = 0; j < pThis->paItems[i].cItems; j++) + { + if (pThis->paItems[i].paItems[j].Value.enmType != RTASN1TYPE_STRING) + return RTErrInfoSetF(pErrInfo, VERR_CR_X509_NAME_NOT_STRING, + "%s: Items[%u].paItems[%u].enmType is %d instead of string (%d).", + pszErrorTag, i, j, pThis->paItems[i].paItems[j].Value.enmType, RTASN1TYPE_STRING); + if (pThis->paItems[i].paItems[j].Value.u.String.Asn1Core.cb == 0) + return RTErrInfoSetF(pErrInfo, VERR_CR_X509_NAME_EMPTY_STRING, + "%s: Items[%u].paItems[%u] is an empty string", pszErrorTag, i, j); + switch (pThis->paItems[i].paItems[j].Value.u.String.Asn1Core.uTag) + { + case ASN1_TAG_PRINTABLE_STRING: + case ASN1_TAG_UTF8_STRING: + break; + case ASN1_TAG_T61_STRING: + case ASN1_TAG_UNIVERSAL_STRING: + case ASN1_TAG_BMP_STRING: + break; + case ASN1_TAG_IA5_STRING: /* Used by "Microsoft Root Certificate Authority" in the "com" part of the Issuer. */ + break; + default: + return RTErrInfoSetF(pErrInfo, VERR_CR_X509_INVALID_NAME_STRING_TAG, + "%s: Items[%u].paItems[%u] invalid string type: %u", pszErrorTag, i, j, + pThis->paItems[i].paItems[j].Value.u.String.Asn1Core.uTag); + } + } + } + + return VINF_SUCCESS; +} + + +static int rtCrX509SubjectPublicKeyInfo_CheckSanityExtra(PCRTCRX509SUBJECTPUBLICKEYINFO pThis, uint32_t fFlags, + PRTERRINFO pErrInfo, const char *pszErrorTag) +{ + if (pThis->SubjectPublicKey.cBits <= 32) + return RTErrInfoSetF(pErrInfo, VERR_CR_X509_PUBLIC_KEY_TOO_SMALL, + "%s: SubjectPublicKey is too small, only %u bits", pszErrorTag, pThis->SubjectPublicKey.cBits); + return VINF_SUCCESS; +} + + +static int rtCrX509TbsCertificate_CheckSanityExtra(PCRTCRX509TBSCERTIFICATE pThis, uint32_t fFlags, + PRTERRINFO pErrInfo, const char *pszErrorTag) +{ + if ( RTAsn1Integer_IsPresent(&pThis->T0.Version) + && RTAsn1Integer_UnsignedCompareWithU32(&pThis->T0.Version, RTCRX509TBSCERTIFICATE_V1) != 0 + && RTAsn1Integer_UnsignedCompareWithU32(&pThis->T0.Version, RTCRX509TBSCERTIFICATE_V2) != 0 + && RTAsn1Integer_UnsignedCompareWithU32(&pThis->T0.Version, RTCRX509TBSCERTIFICATE_V3) != 0) + return RTErrInfoSetF(pErrInfo, VERR_CR_X509_TBSCERT_UNSUPPORTED_VERSION, + "%s: Unknown Version number: %llu", + pszErrorTag, pThis->T0.Version.uValue.u); + + if ( pThis->SerialNumber.Asn1Core.cb < 1 + || pThis->SerialNumber.Asn1Core.cb > 1024) + return RTErrInfoSetF(pErrInfo, VERR_CR_X509_TBSCERT_SERIAL_NUMBER_OUT_OF_BOUNDS, + "%s: Bad SerialNumber length: %u", pszErrorTag, pThis->SerialNumber.Asn1Core.cb); + + if ( ( RTAsn1BitString_IsPresent(&pThis->T1.IssuerUniqueId) + || RTAsn1BitString_IsPresent(&pThis->T2.SubjectUniqueId)) + && RTAsn1Integer_UnsignedCompareWithU32(&pThis->T0.Version, RTCRX509TBSCERTIFICATE_V2) < 0) + return RTErrInfoSetF(pErrInfo, VERR_CR_X509_TBSCERT_UNIQUE_IDS_REQ_V2, + "%s: IssuerUniqueId and SubjectUniqueId requires version 2", pszErrorTag); + + if ( RTCrX509Extensions_IsPresent(&pThis->T3.Extensions) + && RTAsn1Integer_UnsignedCompareWithU32(&pThis->T0.Version, RTCRX509TBSCERTIFICATE_V3) < 0) + return RTErrInfoSetF(pErrInfo, VERR_CR_X509_TBSCERT_EXTS_REQ_V3, "%s: Extensions requires version 3", pszErrorTag); + + return VINF_SUCCESS; +} + + +static int rtCrX509Certificate_CheckSanityExtra(PCRTCRX509CERTIFICATE pThis, uint32_t fFlags, + PRTERRINFO pErrInfo, const char *pszErrorTag) +{ + if (RTCrX509AlgorithmIdentifier_Compare(&pThis->SignatureAlgorithm, &pThis->TbsCertificate.Signature) != 0) + return RTErrInfoSetF(pErrInfo, VERR_CR_X509_CERT_TBS_SIGN_ALGO_MISMATCH, + "%s: SignatureAlgorithm (%s) does not match TbsCertificate.Signature (%s).", pszErrorTag, + pThis->SignatureAlgorithm.Algorithm.szObjId, + pThis->TbsCertificate.Signature.Algorithm.szObjId); + return VINF_SUCCESS; +} + + +/* + * Generate the code. + */ +#include + diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Runtime/common/crypto/x509-template.h virtualbox-4.1.44-dfsg/src/VBox/Runtime/common/crypto/x509-template.h --- virtualbox-4.1.12-dfsg/src/VBox/Runtime/common/crypto/x509-template.h 1970-01-01 00:00:00.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Runtime/common/crypto/x509-template.h 2015-11-11 15:09:00.000000000 +0000 @@ -0,0 +1,458 @@ +/* $Id: x509-template.h $ */ +/** @file + * IPRT - Crypto - X.509, Code Generator Template. + */ + +/* + * Copyright (C) 2006-2014 Oracle Corporation + * + * This file is part of VirtualBox Open Source Edition (OSE), as + * available from http://www.virtualbox.org. This file is free software; + * you can redistribute it and/or modify it under the terms of the GNU + * General Public License (GPL) as published by the Free Software + * Foundation, in version 2 as it comes in the "COPYING" file of the + * VirtualBox OSE distribution. VirtualBox OSE is distributed in the + * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind. + * + * The contents of this file may alternatively be used under the terms + * of the Common Development and Distribution License Version 1.0 + * (CDDL) only, as it comes in the "COPYING.CDDL" file of the + * VirtualBox OSE distribution, in which case the provisions of the + * CDDL are applicable instead of those of the GPL. + * + * You may elect to license modified versions of this file under the + * terms and conditions of either the GPL or the CDDL or both. + */ + +#define RTASN1TMPL_DECL RTDECL + +/* + * X.509 Validity. + */ +#define RTASN1TMPL_TYPE RTCRX509VALIDITY +#define RTASN1TMPL_EXT_NAME RTCrX509Validity +#define RTASN1TMPL_INT_NAME rtCrX509Validity +RTASN1TMPL_BEGIN_SEQCORE(); +RTASN1TMPL_MEMBER( NotBefore, RTASN1TIME, RTAsn1Time); +RTASN1TMPL_MEMBER( NotAfter, RTASN1TIME, RTAsn1Time); +RTASN1TMPL_EXEC_CHECK_SANITY( rc = rtCrX509Validity_CheckSanityExtra(pThis, fFlags, pErrInfo, pszErrorTag) ) +RTASN1TMPL_END_SEQCORE(); +#undef RTASN1TMPL_TYPE +#undef RTASN1TMPL_EXT_NAME +#undef RTASN1TMPL_INT_NAME + + +/* + * One X.509 Algorithm Identifier. + */ +#define RTASN1TMPL_TYPE RTCRX509ALGORITHMIDENTIFIER +#define RTASN1TMPL_EXT_NAME RTCrX509AlgorithmIdentifier +#define RTASN1TMPL_INT_NAME rtCrX509AlgorithmIdentifier +RTASN1TMPL_BEGIN_SEQCORE(); +RTASN1TMPL_MEMBER( Algorithm, RTASN1OBJID, RTAsn1ObjId); +RTASN1TMPL_MEMBER_OPT_ANY( Parameters, RTASN1DYNTYPE, RTAsn1DynType); +RTASN1TMPL_END_SEQCORE(); +#undef RTASN1TMPL_TYPE +#undef RTASN1TMPL_EXT_NAME +#undef RTASN1TMPL_INT_NAME + + +/* + * Set of X.509 Algorithm Identifiers. + */ +#define RTASN1TMPL_TYPE RTCRX509ALGORITHMIDENTIFIERS +#define RTASN1TMPL_EXT_NAME RTCrX509AlgorithmIdentifiers +#define RTASN1TMPL_INT_NAME rtCrX509AlgorithmIdentifiers +RTASN1TMPL_SET_OF(RTCRX509ALGORITHMIDENTIFIER, RTCrX509AlgorithmIdentifier); +#undef RTASN1TMPL_TYPE +#undef RTASN1TMPL_EXT_NAME +#undef RTASN1TMPL_INT_NAME + + +/* + * One X.509 AttributeTypeAndValue. + */ +#define RTASN1TMPL_TYPE RTCRX509ATTRIBUTETYPEANDVALUE +#define RTASN1TMPL_EXT_NAME RTCrX509AttributeTypeAndValue +#define RTASN1TMPL_INT_NAME rtCrX509AttributeTypeAndValue +RTASN1TMPL_BEGIN_SEQCORE(); +RTASN1TMPL_MEMBER( Type, RTASN1OBJID, RTAsn1ObjId); +RTASN1TMPL_MEMBER( Value, RTASN1DYNTYPE, RTAsn1DynType); +RTASN1TMPL_END_SEQCORE(); +#undef RTASN1TMPL_TYPE +#undef RTASN1TMPL_EXT_NAME +#undef RTASN1TMPL_INT_NAME + + +/* + * Set of X.509 AttributeTypeAndValues / X.509 RelativeDistinguishedName. + */ +#define RTASN1TMPL_TYPE RTCRX509ATTRIBUTETYPEANDVALUES +#define RTASN1TMPL_EXT_NAME RTCrX509AttributeTypeAndValues +#define RTASN1TMPL_INT_NAME rtCrX509AttributeTypeAndValues +RTASN1TMPL_SET_OF(RTCRX509ATTRIBUTETYPEANDVALUE, RTCrX509AttributeTypeAndValue); +#undef RTASN1TMPL_TYPE +#undef RTASN1TMPL_EXT_NAME +#undef RTASN1TMPL_INT_NAME + +/* + * X.509 Name. + */ +#define RTASN1TMPL_TYPE RTCRX509NAME +#define RTASN1TMPL_EXT_NAME RTCrX509Name +#define RTASN1TMPL_INT_NAME rtCrX509Name +#undef RTASN1TMPL_SET_SEQ_EXEC_CHECK_SANITY +#define RTASN1TMPL_SET_SEQ_EXEC_CHECK_SANITY() rc = rtCrX509Name_CheckSanityExtra(pThis, fFlags, pErrInfo, pszErrorTag) +RTASN1TMPL_SEQ_OF(RTCRX509RELATIVEDISTINGUISHEDNAME, RTCrX509RelativeDistinguishedName); +#undef RTASN1TMPL_SET_SEQ_EXEC_CHECK_SANITY +#define RTASN1TMPL_SET_SEQ_EXEC_CHECK_SANITY() do { } while (0) +#undef RTASN1TMPL_TYPE +#undef RTASN1TMPL_EXT_NAME +#undef RTASN1TMPL_INT_NAME + +/* + * One X.509 OtherName. + * Note! This is simplified and might not work correctly for all types with + * non-DER compatible encodings. + */ +#define RTASN1TMPL_TYPE RTCRX509OTHERNAME +#define RTASN1TMPL_EXT_NAME RTCrX509OtherName +#define RTASN1TMPL_INT_NAME rtCrX509OtherName +RTASN1TMPL_BEGIN_SEQCORE(); +RTASN1TMPL_MEMBER( TypeId, RTASN1OBJID, RTAsn1ObjId); +RTASN1TMPL_MEMBER( Value, RTASN1DYNTYPE, RTAsn1DynType); +RTASN1TMPL_END_SEQCORE(); +#undef RTASN1TMPL_TYPE +#undef RTASN1TMPL_EXT_NAME +#undef RTASN1TMPL_INT_NAME + + +/* + * One X.509 GeneralName. + * Note! This is simplified and might not work correctly for all types with + * non-DER compatible encodings. + */ +#define RTASN1TMPL_TYPE RTCRX509GENERALNAME +#define RTASN1TMPL_EXT_NAME RTCrX509GeneralName +#define RTASN1TMPL_INT_NAME rtCrX509GeneralName +RTASN1TMPL_BEGIN_PCHOICE(); +RTASN1TMPL_PCHOICE_ITAG( 0, RTCRX509GENERALNAMECHOICE_OTHER_NAME, u.pT0_OtherName, OtherName, RTCRX509OTHERNAME, RTCrX509OtherName); +RTASN1TMPL_PCHOICE_ITAG_CP( 1, RTCRX509GENERALNAMECHOICE_RFC822_NAME, u.pT1_Rfc822, Rfc822, RTASN1STRING, RTAsn1Ia5String); +RTASN1TMPL_PCHOICE_ITAG_CP( 2, RTCRX509GENERALNAMECHOICE_DNS_NAME, u.pT2_DnsName, DnsType, RTASN1STRING, RTAsn1Ia5String); +RTASN1TMPL_PCHOICE_XTAG( 3, RTCRX509GENERALNAMECHOICE_X400_ADDRESS, u.pT3, CtxTag3, X400Address, RTASN1DYNTYPE, RTAsn1DynType); /** @todo */ +RTASN1TMPL_PCHOICE_XTAG( 4, RTCRX509GENERALNAMECHOICE_DIRECTORY_NAME, u.pT4, CtxTag4, DirectoryName, RTCRX509NAME, RTCrX509Name); +RTASN1TMPL_PCHOICE_XTAG( 5, RTCRX509GENERALNAMECHOICE_EDI_PARTY_NAME, u.pT5, CtxTag5, EdiPartyName, RTASN1DYNTYPE, RTAsn1DynType); /** @todo */ +RTASN1TMPL_PCHOICE_ITAG_CP( 6, RTCRX509GENERALNAMECHOICE_URI, u.pT6_Uri, Uri, RTASN1STRING, RTAsn1Ia5String); +RTASN1TMPL_PCHOICE_ITAG_CP( 7, RTCRX509GENERALNAMECHOICE_IP_ADDRESS, u.pT7_IpAddress, IpAddress, RTASN1OCTETSTRING, RTAsn1OctetString); /** @todo Constraints */ +RTASN1TMPL_PCHOICE_ITAG_CP( 8, RTCRX509GENERALNAMECHOICE_REGISTERED_ID, u.pT8_RegisteredId,RegisteredId,RTASN1OBJID, RTAsn1ObjId); +RTASN1TMPL_END_PCHOICE(); +#undef RTASN1TMPL_TYPE +#undef RTASN1TMPL_EXT_NAME +#undef RTASN1TMPL_INT_NAME + + +/* + * Sequence of X.509 GeneralNames. + */ +#define RTASN1TMPL_TYPE RTCRX509GENERALNAMES +#define RTASN1TMPL_EXT_NAME RTCrX509GeneralNames +#define RTASN1TMPL_INT_NAME rtCrX509GeneralNames +RTASN1TMPL_SEQ_OF(RTCRX509GENERALNAME, RTCrX509GeneralName); +#undef RTASN1TMPL_TYPE +#undef RTASN1TMPL_EXT_NAME +#undef RTASN1TMPL_INT_NAME + + +/* + * X.509 UniqueIdentifier - RTASN1BITSTRING alias. + */ + + +/* + * X.509 SubjectPublicKeyInfo. + */ +#define RTASN1TMPL_TYPE RTCRX509SUBJECTPUBLICKEYINFO +#define RTASN1TMPL_EXT_NAME RTCrX509SubjectPublicKeyInfo +#define RTASN1TMPL_INT_NAME rtCrX509SubjectPublicKeyInfo +RTASN1TMPL_BEGIN_SEQCORE(); +RTASN1TMPL_MEMBER( Algorithm, RTCRX509ALGORITHMIDENTIFIER, RTCrX509AlgorithmIdentifier); +RTASN1TMPL_MEMBER( SubjectPublicKey, RTASN1BITSTRING, RTAsn1BitString); +RTASN1TMPL_EXEC_CHECK_SANITY( rc = rtCrX509SubjectPublicKeyInfo_CheckSanityExtra(pThis, fFlags, pErrInfo, pszErrorTag) ) +RTASN1TMPL_END_SEQCORE(); +#undef RTASN1TMPL_TYPE +#undef RTASN1TMPL_EXT_NAME +#undef RTASN1TMPL_INT_NAME + + +/* + * X.509 AuthorityKeyIdentifier (IPRT representation). + */ +#define RTASN1TMPL_TYPE RTCRX509AUTHORITYKEYIDENTIFIER +#define RTASN1TMPL_EXT_NAME RTCrX509AuthorityKeyIdentifier +#define RTASN1TMPL_INT_NAME rtCrX509AuthorityKeyIdentifier +RTASN1TMPL_BEGIN_SEQCORE(); +RTASN1TMPL_MEMBER_OPT_ITAG_CP( KeyIdentifier, RTASN1OCTETSTRING, RTAsn1OctetString, 0); +RTASN1TMPL_MEMBER_OPT_ITAG( AuthorityCertIssuer, RTCRX509GENERALNAMES, RTCrX509GeneralNames, 1); +RTASN1TMPL_MEMBER_OPT_ITAG_CP( AuthorityCertSerialNumber, RTASN1INTEGER, RTAsn1Integer, 2); +RTASN1TMPL_END_SEQCORE(); +#undef RTASN1TMPL_TYPE +#undef RTASN1TMPL_EXT_NAME +#undef RTASN1TMPL_INT_NAME + + +/* + * X.509 OldAuthorityKeyIdentifier (IPRT representation). + */ +#define RTASN1TMPL_TYPE RTCRX509OLDAUTHORITYKEYIDENTIFIER +#define RTASN1TMPL_EXT_NAME RTCrX509OldAuthorityKeyIdentifier +#define RTASN1TMPL_INT_NAME rtCrX509OldAuthorityKeyIdentifier +RTASN1TMPL_BEGIN_SEQCORE(); +RTASN1TMPL_MEMBER_OPT_ITAG_CP( KeyIdentifier, RTASN1OCTETSTRING, RTAsn1OctetString, 0); +RTASN1TMPL_MEMBER_OPT_XTAG( T1, CtxTag1, AuthorityCertIssuer, RTCRX509NAME, RTCrX509Name, 1); +RTASN1TMPL_MEMBER_OPT_ITAG_CP( AuthorityCertSerialNumber, RTASN1INTEGER, RTAsn1Integer, 2); +RTASN1TMPL_END_SEQCORE(); +#undef RTASN1TMPL_TYPE +#undef RTASN1TMPL_EXT_NAME +#undef RTASN1TMPL_INT_NAME + + +/* + * One X.509 PolicyQualifierInfo. + */ +#define RTASN1TMPL_TYPE RTCRX509POLICYQUALIFIERINFO +#define RTASN1TMPL_EXT_NAME RTCrX509PolicyQualifierInfo +#define RTASN1TMPL_INT_NAME rtCrX509PolicyQualifierInfo +RTASN1TMPL_BEGIN_SEQCORE(); +RTASN1TMPL_MEMBER( PolicyQualifierId, RTASN1OBJID, RTAsn1ObjId); +RTASN1TMPL_MEMBER( Qualifier, RTASN1DYNTYPE, RTAsn1DynType); +RTASN1TMPL_END_SEQCORE(); +#undef RTASN1TMPL_TYPE +#undef RTASN1TMPL_EXT_NAME +#undef RTASN1TMPL_INT_NAME + + +/* + * Sequence of X.509 PolicyQualifierInfo. + */ +#define RTASN1TMPL_TYPE RTCRX509POLICYQUALIFIERINFOS +#define RTASN1TMPL_EXT_NAME RTCrX509PolicyQualifierInfos +#define RTASN1TMPL_INT_NAME rtCrX509PolicyQualifierInfos +RTASN1TMPL_SEQ_OF(RTCRX509POLICYQUALIFIERINFO, RTCrX509PolicyQualifierInfo); +#undef RTASN1TMPL_TYPE +#undef RTASN1TMPL_EXT_NAME +#undef RTASN1TMPL_INT_NAME + + +/* + * One X.509 PolicyInformation. + */ +#define RTASN1TMPL_TYPE RTCRX509POLICYINFORMATION +#define RTASN1TMPL_EXT_NAME RTCrX509PolicyInformation +#define RTASN1TMPL_INT_NAME rtCrX509PolicyInformation +RTASN1TMPL_BEGIN_SEQCORE(); +RTASN1TMPL_MEMBER( PolicyIdentifier, RTASN1OBJID, RTAsn1ObjId); +RTASN1TMPL_MEMBER_OPT_ITAG_UC( PolicyQualifiers, RTCRX509POLICYQUALIFIERINFOS, RTCrX509PolicyQualifierInfos, ASN1_TAG_SEQUENCE); +RTASN1TMPL_END_SEQCORE(); +#undef RTASN1TMPL_TYPE +#undef RTASN1TMPL_EXT_NAME +#undef RTASN1TMPL_INT_NAME + + +/* + * Sequence of X.509 CertificatePolicies. + */ +#define RTASN1TMPL_TYPE RTCRX509CERTIFICATEPOLICIES +#define RTASN1TMPL_EXT_NAME RTCrX509CertificatePolicies +#define RTASN1TMPL_INT_NAME rtCrX509CertificatePolicies +RTASN1TMPL_SEQ_OF(RTCRX509POLICYINFORMATION, RTCrX509PolicyInformation); +#undef RTASN1TMPL_TYPE +#undef RTASN1TMPL_EXT_NAME +#undef RTASN1TMPL_INT_NAME + + +/* + * One X.509 PolicyMapping (IPRT representation). + */ +#define RTASN1TMPL_TYPE RTCRX509POLICYMAPPING +#define RTASN1TMPL_EXT_NAME RTCrX509PolicyMapping +#define RTASN1TMPL_INT_NAME rtCrX509PolicyMapping +RTASN1TMPL_BEGIN_SEQCORE(); +RTASN1TMPL_MEMBER( IssuerDomainPolicy, RTASN1OBJID, RTAsn1ObjId); +RTASN1TMPL_MEMBER( SubjectDomainPolicy, RTASN1OBJID, RTAsn1ObjId); +RTASN1TMPL_END_SEQCORE(); +#undef RTASN1TMPL_TYPE +#undef RTASN1TMPL_EXT_NAME +#undef RTASN1TMPL_INT_NAME + + +/* + * Sequence of X.509 PolicyMappings (IPRT representation). + */ +#define RTASN1TMPL_TYPE RTCRX509POLICYMAPPINGS +#define RTASN1TMPL_EXT_NAME RTCrX509PolicyMappings +#define RTASN1TMPL_INT_NAME rtCrX509PolicyMappings +RTASN1TMPL_SEQ_OF(RTCRX509POLICYMAPPING, RTCrX509PolicyMapping); +#undef RTASN1TMPL_TYPE +#undef RTASN1TMPL_EXT_NAME +#undef RTASN1TMPL_INT_NAME + + +/* + * X.509 BasicConstraints (IPRT representation). + */ +#define RTASN1TMPL_TYPE RTCRX509BASICCONSTRAINTS +#define RTASN1TMPL_EXT_NAME RTCrX509BasicConstraints +#define RTASN1TMPL_INT_NAME rtCrX509BasicConstraints +RTASN1TMPL_BEGIN_SEQCORE(); +RTASN1TMPL_MEMBER_DEF_ITAG_UP( CA, RTASN1BOOLEAN, RTAsn1Boolean, ASN1_TAG_BOOLEAN, false); +RTASN1TMPL_MEMBER_OPT_ITAG_UP( PathLenConstraint, RTASN1INTEGER, RTAsn1Integer, ASN1_TAG_INTEGER); +RTASN1TMPL_END_SEQCORE(); +#undef RTASN1TMPL_TYPE +#undef RTASN1TMPL_EXT_NAME +#undef RTASN1TMPL_INT_NAME + + +/* + * X.509 GeneralSubtree (IPRT representation). + */ +#define RTASN1TMPL_TYPE RTCRX509GENERALSUBTREE +#define RTASN1TMPL_EXT_NAME RTCrX509GeneralSubtree +#define RTASN1TMPL_INT_NAME rtCrX509GeneralSubtree +RTASN1TMPL_BEGIN_SEQCORE(); +RTASN1TMPL_MEMBER( Base, RTCRX509GENERALNAME, RTCrX509GeneralName); +RTASN1TMPL_MEMBER_DEF_ITAG_UP( Minimum, RTASN1INTEGER, RTAsn1Integer, ASN1_TAG_INTEGER, 0); +RTASN1TMPL_MEMBER_OPT_ITAG_UP( Maximum, RTASN1INTEGER, RTAsn1Integer, ASN1_TAG_INTEGER); +RTASN1TMPL_END_SEQCORE(); +#undef RTASN1TMPL_TYPE +#undef RTASN1TMPL_EXT_NAME +#undef RTASN1TMPL_INT_NAME + + + +/* + * Sequence of X.509 GeneralSubtrees (IPRT representation). + */ +#define RTASN1TMPL_TYPE RTCRX509GENERALSUBTREES +#define RTASN1TMPL_EXT_NAME RTCrX509GeneralSubtrees +#define RTASN1TMPL_INT_NAME rtCrX509GeneralSubtrees +RTASN1TMPL_SEQ_OF(RTCRX509GENERALSUBTREE, RTCrX509GeneralSubtree); +#undef RTASN1TMPL_TYPE +#undef RTASN1TMPL_EXT_NAME +#undef RTASN1TMPL_INT_NAME + + +/* + * X.509 NameConstraints (IPRT representation). + */ +#define RTASN1TMPL_TYPE RTCRX509NAMECONSTRAINTS +#define RTASN1TMPL_EXT_NAME RTCrX509NameConstraints +#define RTASN1TMPL_INT_NAME rtCrX509NameConstraints +RTASN1TMPL_BEGIN_SEQCORE(); +RTASN1TMPL_MEMBER_OPT_XTAG( T0, CtxTag0, PermittedSubtrees, RTCRX509GENERALSUBTREES, RTCrX509GeneralSubtrees, 0); +RTASN1TMPL_MEMBER_OPT_XTAG( T1, CtxTag1, ExcludedSubtrees, RTCRX509GENERALSUBTREES, RTCrX509GeneralSubtrees, 1); +RTASN1TMPL_END_SEQCORE(); +#undef RTASN1TMPL_TYPE +#undef RTASN1TMPL_EXT_NAME +#undef RTASN1TMPL_INT_NAME + + +/* + * X.509 PolicyConstraints (IPRT representation). + */ +#define RTASN1TMPL_TYPE RTCRX509POLICYCONSTRAINTS +#define RTASN1TMPL_EXT_NAME RTCrX509PolicyConstraints +#define RTASN1TMPL_INT_NAME rtCrX509PolicyConstraints +RTASN1TMPL_BEGIN_SEQCORE(); +RTASN1TMPL_MEMBER_OPT_ITAG_CP( RequireExplicitPolicy, RTASN1INTEGER, RTAsn1Integer, 0); +RTASN1TMPL_MEMBER_OPT_ITAG_CP( InhibitPolicyMapping, RTASN1INTEGER, RTAsn1Integer, 1); +RTASN1TMPL_END_SEQCORE(); +#undef RTASN1TMPL_TYPE +#undef RTASN1TMPL_EXT_NAME +#undef RTASN1TMPL_INT_NAME + + +/* + * One X.509 Extension. + */ +#define RTASN1TMPL_TYPE RTCRX509EXTENSION +#define RTASN1TMPL_EXT_NAME RTCrX509Extension +#define RTASN1TMPL_INT_NAME rtCrX509Extension +RTASN1TMPL_BEGIN_SEQCORE(); +RTASN1TMPL_MEMBER( ExtnId, RTASN1OBJID, RTAsn1ObjId); +RTASN1TMPL_MEMBER_DEF_ITAG_UP( Critical, RTASN1BOOLEAN, RTAsn1Boolean, ASN1_TAG_BOOLEAN, false); +RTASN1TMPL_MEMBER( ExtnValue, RTASN1OCTETSTRING, RTAsn1OctetString); +RTASN1TMPL_EXEC_DECODE(rc = RTCrX509Extension_ExtnValue_DecodeAsn1(pCursor, fFlags, pThis, "ExtnValue")) +RTASN1TMPL_EXEC_CLONE( rc = rtCrX509Extension_ExtnValue_Clone(pThis, pSrc)) +RTASN1TMPL_END_SEQCORE(); +#undef RTASN1TMPL_TYPE +#undef RTASN1TMPL_EXT_NAME +#undef RTASN1TMPL_INT_NAME + + +/* + * Sequence of X.509 Extensions. + */ +#define RTASN1TMPL_TYPE RTCRX509EXTENSIONS +#define RTASN1TMPL_EXT_NAME RTCrX509Extensions +#define RTASN1TMPL_INT_NAME rtCrX509Extensions +RTASN1TMPL_SEQ_OF(RTCRX509EXTENSION, RTCrX509Extension); +#undef RTASN1TMPL_TYPE +#undef RTASN1TMPL_EXT_NAME +#undef RTASN1TMPL_INT_NAME + + +/* + * X.509 TbsCertificate. + */ +#define RTASN1TMPL_TYPE RTCRX509TBSCERTIFICATE +#define RTASN1TMPL_EXT_NAME RTCrX509TbsCertificate +#define RTASN1TMPL_INT_NAME rtCrX509TbsCertificate +RTASN1TMPL_BEGIN_SEQCORE(); +RTASN1TMPL_MEMBER_OPT_XTAG( T0, CtxTag0, Version, RTASN1INTEGER, RTAsn1Integer, 0); +RTASN1TMPL_MEMBER( SerialNumber, RTASN1INTEGER, RTAsn1Integer); +RTASN1TMPL_MEMBER( Signature, RTCRX509ALGORITHMIDENTIFIER, RTCrX509AlgorithmIdentifier); +RTASN1TMPL_MEMBER( Issuer, RTCRX509NAME, RTCrX509Name); +RTASN1TMPL_MEMBER( Validity, RTCRX509VALIDITY, RTCrX509Validity); +RTASN1TMPL_MEMBER( Subject, RTCRX509NAME, RTCrX509Name); +RTASN1TMPL_MEMBER( SubjectPublicKeyInfo, RTCRX509SUBJECTPUBLICKEYINFO, RTCrX509SubjectPublicKeyInfo); +RTASN1TMPL_MEMBER_OPT_XTAG( T1, CtxTag1, IssuerUniqueId, RTCRX509UNIQUEIDENTIFIER, RTCrX509UniqueIdentifier, 1); +RTASN1TMPL_MEMBER_OPT_XTAG( T2, CtxTag2, SubjectUniqueId, RTCRX509UNIQUEIDENTIFIER, RTCrX509UniqueIdentifier, 2); +RTASN1TMPL_MEMBER_OPT_XTAG( T3, CtxTag3, Extensions, RTCRX509EXTENSIONS, RTCrX509Extensions, 3); +RTASN1TMPL_EXEC_DECODE( rc = RTCrX509TbsCertificate_ReprocessExtensions(pThis, pCursor->pPrimary->pErrInfo) ) +RTASN1TMPL_EXEC_CLONE( rc = RTCrX509TbsCertificate_ReprocessExtensions(pThis, NULL) ) +RTASN1TMPL_EXEC_CHECK_SANITY( rc = rtCrX509TbsCertificate_CheckSanityExtra(pThis, fFlags, pErrInfo, pszErrorTag) ) +RTASN1TMPL_END_SEQCORE(); +#undef RTASN1TMPL_TYPE +#undef RTASN1TMPL_EXT_NAME +#undef RTASN1TMPL_INT_NAME + + +/* + * One X.509 Certificate. + */ +#define RTASN1TMPL_TYPE RTCRX509CERTIFICATE +#define RTASN1TMPL_EXT_NAME RTCrX509Certificate +#define RTASN1TMPL_INT_NAME rtCrX509Certificate +RTASN1TMPL_BEGIN_SEQCORE(); +RTASN1TMPL_MEMBER( TbsCertificate, RTCRX509TBSCERTIFICATE, RTCrX509TbsCertificate); +RTASN1TMPL_MEMBER( SignatureAlgorithm, RTCRX509ALGORITHMIDENTIFIER, RTCrX509AlgorithmIdentifier); +RTASN1TMPL_MEMBER( SignatureValue, RTASN1BITSTRING, RTAsn1BitString); +RTASN1TMPL_EXEC_CHECK_SANITY( rc = rtCrX509Certificate_CheckSanityExtra(pThis, fFlags, pErrInfo, pszErrorTag) ) +RTASN1TMPL_END_SEQCORE(); +#undef RTASN1TMPL_TYPE +#undef RTASN1TMPL_EXT_NAME +#undef RTASN1TMPL_INT_NAME + + +/* + * Set of X.509 Certificates. + */ +/** @todo Microsoft Hacks. ExtendedCertificates. */ +#define RTASN1TMPL_TYPE RTCRX509CERTIFICATES +#define RTASN1TMPL_EXT_NAME RTCrX509Certificates +#define RTASN1TMPL_INT_NAME rtCrX509Certificates +RTASN1TMPL_SET_OF(RTCRX509CERTIFICATE, RTCrX509Certificate); +#undef RTASN1TMPL_TYPE +#undef RTASN1TMPL_EXT_NAME +#undef RTASN1TMPL_INT_NAME + diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Runtime/common/crypto/x509-verify.cpp virtualbox-4.1.44-dfsg/src/VBox/Runtime/common/crypto/x509-verify.cpp --- virtualbox-4.1.12-dfsg/src/VBox/Runtime/common/crypto/x509-verify.cpp 1970-01-01 00:00:00.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Runtime/common/crypto/x509-verify.cpp 2015-11-11 15:09:00.000000000 +0000 @@ -0,0 +1,85 @@ +/* $Id: x509-verify.cpp $ */ +/** @file + * IPRT - Crypto - X.509, Signature verficiation. + */ + +/* + * Copyright (C) 2006-2014 Oracle Corporation + * + * This file is part of VirtualBox Open Source Edition (OSE), as + * available from http://www.virtualbox.org. This file is free software; + * you can redistribute it and/or modify it under the terms of the GNU + * General Public License (GPL) as published by the Free Software + * Foundation, in version 2 as it comes in the "COPYING" file of the + * VirtualBox OSE distribution. VirtualBox OSE is distributed in the + * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind. + * + * The contents of this file may alternatively be used under the terms + * of the Common Development and Distribution License Version 1.0 + * (CDDL) only, as it comes in the "COPYING.CDDL" file of the + * VirtualBox OSE distribution, in which case the provisions of the + * CDDL are applicable instead of those of the GPL. + * + * You may elect to license modified versions of this file under the + * terms and conditions of either the GPL or the CDDL or both. + */ + + +/******************************************************************************* +* Header Files * +*******************************************************************************/ +#include "internal/iprt.h" +#include +#include + +#include +#include + + +RTDECL(int) RTCrX509Certificate_VerifySignature(PCRTCRX509CERTIFICATE pThis, PCRTASN1OBJID pAlgorithm, + PCRTASN1DYNTYPE pParameters, PCRTASN1BITSTRING pPublicKey, + PRTERRINFO pErrInfo) +{ + /* + * Validate the input a little. + */ + AssertPtrReturn(pThis, VERR_INVALID_POINTER); + AssertReturn(RTCrX509Certificate_IsPresent(pThis), VERR_INVALID_PARAMETER); + + AssertPtrReturn(pAlgorithm, VERR_INVALID_POINTER); + AssertReturn(RTAsn1ObjId_IsPresent(pAlgorithm), VERR_INVALID_POINTER); + + if (pParameters) + { + AssertPtrReturn(pParameters, VERR_INVALID_POINTER); + if (pParameters->enmType == RTASN1TYPE_NULL) + pParameters = NULL; + } + + AssertPtrReturn(pPublicKey, VERR_INVALID_POINTER); + AssertReturn(RTAsn1BitString_IsPresent(pPublicKey), VERR_INVALID_POINTER); + + /* + * Check if the algorithm matches. + */ + const char *pszCipherOid = RTCrPkixGetCiperOidFromSignatureAlgorithm(&pThis->SignatureAlgorithm.Algorithm); + if (!pszCipherOid) + return RTErrInfoSetF(pErrInfo, VERR_CR_X509_UNKNOWN_CERT_SIGN_ALGO, + "Certificate signature algorithm not known: %s", + pThis->SignatureAlgorithm.Algorithm.szObjId); + + if (RTAsn1ObjId_CompareWithString(pAlgorithm, pszCipherOid) != 0) + return RTErrInfoSetF(pErrInfo, VERR_CR_X509_CERT_SIGN_ALGO_MISMATCH, + "Certificate signature cipher algorithm mismatch: cert uses %s (%s) while key uses %s", + pszCipherOid, pThis->SignatureAlgorithm.Algorithm.szObjId, pAlgorithm->szObjId); + + /* + * Here we should recode the to-be-signed part as DER, but we'll ASSUME + * that it's already in DER encoding. This is safe. + */ + return RTCrPkixPubKeyVerifySignature(&pThis->SignatureAlgorithm.Algorithm, pParameters, pPublicKey, &pThis->SignatureValue, + RTASN1CORE_GET_RAW_ASN1_PTR(&pThis->TbsCertificate.SeqCore.Asn1Core), + RTASN1CORE_GET_RAW_ASN1_SIZE(&pThis->TbsCertificate.SeqCore.Asn1Core), + pErrInfo); +} + diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Runtime/common/dbg/dbgmod.cpp virtualbox-4.1.44-dfsg/src/VBox/Runtime/common/dbg/dbgmod.cpp --- virtualbox-4.1.12-dfsg/src/VBox/Runtime/common/dbg/dbgmod.cpp 2012-04-02 13:29:00.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Runtime/common/dbg/dbgmod.cpp 2015-11-11 15:09:01.000000000 +0000 @@ -200,11 +200,12 @@ * the built-in interpreters. * * @returns IPRT status code. - * @param pvUser1 NULL. - * @param pvUser2 NULL. + * @param pvUser NULL. */ -static DECLCALLBACK(int) rtDbgModInitOnce(void *pvUser1, void *pvUser2) +static DECLCALLBACK(int) rtDbgModInitOnce(void *pvUser) { + NOREF(pvUser); + /* * Create the semaphore and string cache. */ @@ -239,7 +240,7 @@ DECLINLINE(int) rtDbgModLazyInit(void) { - return RTOnce(&g_rtDbgModOnce, rtDbgModInitOnce, NULL, NULL); + return RTOnce(&g_rtDbgModOnce, rtDbgModInitOnce, NULL); } diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Runtime/common/err/errinfo-alloc.cpp virtualbox-4.1.44-dfsg/src/VBox/Runtime/common/err/errinfo-alloc.cpp --- virtualbox-4.1.12-dfsg/src/VBox/Runtime/common/err/errinfo-alloc.cpp 1970-01-01 00:00:00.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Runtime/common/err/errinfo-alloc.cpp 2015-11-11 15:09:01.000000000 +0000 @@ -0,0 +1,70 @@ +/* $Id: errinfo-alloc.cpp $ */ +/** @file + * IPRT - Error Info, Allocators. + */ + +/* + * Copyright (C) 2010-2014 Oracle Corporation + * + * This file is part of VirtualBox Open Source Edition (OSE), as + * available from http://www.virtualbox.org. This file is free software; + * you can redistribute it and/or modify it under the terms of the GNU + * General Public License (GPL) as published by the Free Software + * Foundation, in version 2 as it comes in the "COPYING" file of the + * VirtualBox OSE distribution. VirtualBox OSE is distributed in the + * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind. + * + * The contents of this file may alternatively be used under the terms + * of the Common Development and Distribution License Version 1.0 + * (CDDL) only, as it comes in the "COPYING.CDDL" file of the + * VirtualBox OSE distribution, in which case the provisions of the + * CDDL are applicable instead of those of the GPL. + * + * You may elect to license modified versions of this file under the + * terms and conditions of either the GPL or the CDDL or both. + */ + + +/******************************************************************************* +* Header Files * +*******************************************************************************/ +#include "internal/iprt.h" +#include + +#include +#include +#include + + + +RTDECL(PRTERRINFO) RTErrInfoAlloc(size_t cbMsg) +{ + PRTERRINFO pErrInfo; + RTErrInfoAllocEx(cbMsg, &pErrInfo); + return pErrInfo; +} + + +RTDECL(int) RTErrInfoAllocEx(size_t cbMsg, PRTERRINFO *ppErrInfo) +{ + if (cbMsg == 0) + cbMsg = _4K; + else + cbMsg = RT_ALIGN_Z(cbMsg, 256); + + PRTERRINFO pErrInfo; + *ppErrInfo = pErrInfo = (PRTERRINFO)RTMemTmpAlloc(sizeof(*pErrInfo) + cbMsg); + if (RT_UNLIKELY(!pErrInfo)) + return VERR_NO_TMP_MEMORY; + + RTErrInfoInit(pErrInfo, (char *)(pErrInfo + 1), cbMsg); + pErrInfo->fFlags = RTERRINFO_FLAGS_T_ALLOC | RTERRINFO_FLAGS_MAGIC; + return VINF_SUCCESS; +} + + +RTDECL(void) RTErrInfoFree(PRTERRINFO pErrInfo) +{ + RTMemTmpFree(pErrInfo); +} + diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Runtime/common/err/errinfo.cpp virtualbox-4.1.44-dfsg/src/VBox/Runtime/common/err/errinfo.cpp --- virtualbox-4.1.12-dfsg/src/VBox/Runtime/common/err/errinfo.cpp 2012-04-02 13:29:00.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Runtime/common/err/errinfo.cpp 2015-11-11 15:09:01.000000000 +0000 @@ -1,10 +1,10 @@ /* $Id: errinfo.cpp $ */ /** @file - * IPRT - Error Info. + * IPRT - Error Info, Setters. */ /* - * Copyright (C) 2010 Oracle Corporation + * Copyright (C) 2010-2014 Oracle Corporation * * This file is part of VirtualBox Open Source Edition (OSE), as * available from http://www.virtualbox.org. This file is free software; @@ -32,51 +32,42 @@ #include #include -#include #include - -RTDECL(PRTERRINFO) RTErrInfoAlloc(size_t cbMsg) -{ - PRTERRINFO pErrInfo; - RTErrInfoAllocEx(cbMsg, &pErrInfo); - return pErrInfo; -} - - -RTDECL(int) RTErrInfoAllocEx(size_t cbMsg, PRTERRINFO *ppErrInfo) +RTDECL(int) RTErrInfoSet(PRTERRINFO pErrInfo, int rc, const char *pszMsg) { - if (cbMsg == 0) - cbMsg = _4K; - else - cbMsg = RT_ALIGN_Z(cbMsg, 256); - - PRTERRINFO pErrInfo; - *ppErrInfo = pErrInfo = (PRTERRINFO)RTMemTmpAlloc(sizeof(*pErrInfo) + cbMsg); - if (RT_UNLIKELY(pErrInfo)) - return VERR_NO_TMP_MEMORY; + if (pErrInfo) + { + AssertPtr(pErrInfo); + Assert((pErrInfo->fFlags & RTERRINFO_FLAGS_MAGIC_MASK) == RTERRINFO_FLAGS_MAGIC); - RTErrInfoInit(pErrInfo, (char *)(pErrInfo + 1), cbMsg); - pErrInfo->fFlags = RTERRINFO_FLAGS_T_ALLOC | RTERRINFO_FLAGS_MAGIC; - return VINF_SUCCESS; + RTStrCopy(pErrInfo->pszMsg, pErrInfo->cbMsg, pszMsg); + pErrInfo->rc = rc; + pErrInfo->fFlags |= RTERRINFO_FLAGS_SET; + } + return rc; } -RTDECL(void) RTErrInfoFree(PRTERRINFO pErrInfo) +RTDECL(int) RTErrInfoSetF(PRTERRINFO pErrInfo, int rc, const char *pszFormat, ...) { - RTMemTmpFree(pErrInfo); + va_list va; + va_start(va, pszFormat); + RTErrInfoSetV(pErrInfo, rc, pszFormat, va); + va_end(va); + return rc; } -RTDECL(int) RTErrInfoSet(PRTERRINFO pErrInfo, int rc, const char *pszMsg) +RTDECL(int) RTErrInfoSetV(PRTERRINFO pErrInfo, int rc, const char *pszFormat, va_list va) { if (pErrInfo) { AssertPtr(pErrInfo); Assert((pErrInfo->fFlags & RTERRINFO_FLAGS_MAGIC_MASK) == RTERRINFO_FLAGS_MAGIC); - RTStrCopy(pErrInfo->pszMsg, pErrInfo->cbMsg, pszMsg); + RTStrPrintfV(pErrInfo->pszMsg, pErrInfo->cbMsg, pszFormat, va); pErrInfo->rc = rc; pErrInfo->fFlags |= RTERRINFO_FLAGS_SET; } @@ -84,26 +75,52 @@ } -RTDECL(int) RTErrInfoSetF(PRTERRINFO pErrInfo, int rc, const char *pszFormat, ...) +RTDECL(int) RTErrInfoAdd(PRTERRINFO pErrInfo, int rc, const char *pszMsg) +{ + if (pErrInfo) + { + AssertPtr(pErrInfo); + if (pErrInfo->fFlags & RTERRINFO_FLAGS_SET) + RTStrCat(pErrInfo->pszMsg, pErrInfo->cbMsg, pszMsg); + else + { + while (*pszMsg == ' ') + pszMsg++; + return RTErrInfoSet(pErrInfo, rc, pszMsg); + } + } + return rc; +} + + +RTDECL(int) RTErrInfoAddF(PRTERRINFO pErrInfo, int rc, const char *pszFormat, ...) { va_list va; va_start(va, pszFormat); - RTErrInfoSetV(pErrInfo, rc, pszFormat, va); + RTErrInfoAddV(pErrInfo, rc, pszFormat, va); va_end(va); return rc; } -RTDECL(int) RTErrInfoSetV(PRTERRINFO pErrInfo, int rc, const char *pszFormat, va_list va) +RTDECL(int) RTErrInfoAddV(PRTERRINFO pErrInfo, int rc, const char *pszFormat, va_list va) { if (pErrInfo) { AssertPtr(pErrInfo); Assert((pErrInfo->fFlags & RTERRINFO_FLAGS_MAGIC_MASK) == RTERRINFO_FLAGS_MAGIC); - - RTStrPrintfV(pErrInfo->pszMsg, pErrInfo->cbMsg, pszFormat, va); - pErrInfo->rc = rc; - pErrInfo->fFlags |= RTERRINFO_FLAGS_SET; + if (pErrInfo->fFlags & RTERRINFO_FLAGS_SET) + { + char *pszOut = (char *)memchr(pErrInfo->pszMsg, '\0', pErrInfo->cbMsg - 2); + if (pszOut) + RTStrPrintfV(pszOut, &pErrInfo->pszMsg[pErrInfo->cbMsg] - pszOut, pszFormat, va); + } + else + { + while (*pszFormat == ' ') + pszFormat++; + return RTErrInfoSetV(pErrInfo, rc, pszFormat, va); + } } return rc; } diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Runtime/common/err/errmsg.cpp virtualbox-4.1.44-dfsg/src/VBox/Runtime/common/err/errmsg.cpp --- virtualbox-4.1.12-dfsg/src/VBox/Runtime/common/err/errmsg.cpp 2012-04-02 13:29:00.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Runtime/common/err/errmsg.cpp 2015-11-11 15:09:01.000000000 +0000 @@ -45,7 +45,11 @@ */ static const RTSTATUSMSG g_aStatusMsgs[] = { -#include "errmsgdata.h" +#ifndef IPRT_NO_ERROR_DATA +# include "errmsgdata.h" +#else + { "Success.", "Success.", "VINF_SUCCESS", 0 }, +#endif { NULL, NULL, NULL, 0 } }; @@ -76,7 +80,7 @@ { unsigned iFound = ~0; unsigned i; - for (i = 0; i < RT_ELEMENTS(g_aStatusMsgs); i++) + for (i = 0; i < RT_ELEMENTS(g_aStatusMsgs) - 1; i++) { if (g_aStatusMsgs[i].iCode == rc) { @@ -98,7 +102,7 @@ * Need to use the temporary stuff. */ int iMsg = ASMAtomicXchgU32(&g_iUnknownMsgs, (g_iUnknownMsgs + 1) % RT_ELEMENTS(g_aUnknownMsgs)); - RTStrPrintf(&g_aszUnknownStr[iMsg][0], sizeof(g_aszUnknownStr[iMsg]), "Unknown Status 0x%X", rc); + RTStrPrintf(&g_aszUnknownStr[iMsg][0], sizeof(g_aszUnknownStr[iMsg]), "Unknown Status %d (%#x)", rc, rc); return &g_aUnknownMsgs[iMsg]; } RT_EXPORT_SYMBOL(RTErrGet); diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Runtime/common/ldr/ldr.cpp virtualbox-4.1.44-dfsg/src/VBox/Runtime/common/ldr/ldr.cpp --- virtualbox-4.1.12-dfsg/src/VBox/Runtime/common/ldr/ldr.cpp 2012-04-02 13:29:00.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Runtime/common/ldr/ldr.cpp 2015-11-11 15:09:01.000000000 +0000 @@ -4,7 +4,7 @@ */ /* - * Copyright (C) 2006-2007 Oracle Corporation + * Copyright (C) 2006-2013 Oracle Corporation * * This file is part of VirtualBox Open Source Edition (OSE), as * available from http://www.virtualbox.org. This file is free software; @@ -41,31 +41,6 @@ /** - * Checks if a library is loadable or not. - * - * This may attempt load and unload the library. - * - * @returns true/false accordingly. - * @param pszFilename Image filename. - */ -RTDECL(bool) RTLdrIsLoadable(const char *pszFilename) -{ - /* - * Try to load the library. - */ - RTLDRMOD hLib; - int rc = RTLdrLoad(pszFilename, &hLib); - if (RT_SUCCESS(rc)) - { - RTLdrClose(hLib); - return true; - } - return false; -} -RT_EXPORT_SYMBOL(RTLdrIsLoadable); - - -/** * Gets the address of a named exported symbol. * * @returns iprt status code. @@ -96,7 +71,7 @@ else { RTUINTPTR Value = 0; - rc = pMod->pOps->pfnGetSymbolEx(pMod, NULL, 0, pszSymbol, &Value); + rc = pMod->pOps->pfnGetSymbolEx(pMod, NULL, 0, UINT32_MAX, pszSymbol, &Value); if (RT_SUCCESS(rc)) { *ppvValue = (void *)(uintptr_t)Value; @@ -119,6 +94,17 @@ * @returns iprt status code. * @param hLdrMod The loader module handle. */ +RTDECL(PFNRT) RTLdrGetFunction(RTLDRMOD hLdrMod, const char *pszSymbol) +{ + PFNRT pfn; + int rc = RTLdrGetSymbol(hLdrMod, pszSymbol, (void **)&pfn); + if (RT_SUCCESS(rc)) + return pfn; + return NULL; +} +RT_EXPORT_SYMBOL(RTLdrGetFunction); + + RTDECL(int) RTLdrClose(RTLDRMOD hLdrMod) { LogFlow(("RTLdrClose: hLdrMod=%RTldrm\n", hLdrMod)); @@ -126,6 +112,8 @@ /* * Validate input. */ + if (hLdrMod == NIL_RTLDRMOD) + return VINF_SUCCESS; AssertMsgReturn(rtldrIsValid(hLdrMod), ("hLdrMod=%p\n", hLdrMod), VERR_INVALID_HANDLE); PRTLDRMODINTERNAL pMod = (PRTLDRMODINTERNAL)hLdrMod; //AssertMsgReturn(pMod->eState == LDR_STATE_OPENED, ("eState=%d\n", pMod->eState), VERR_WRONG_ORDER); diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Runtime/common/ldr/ldrELF.cpp virtualbox-4.1.44-dfsg/src/VBox/Runtime/common/ldr/ldrELF.cpp --- virtualbox-4.1.12-dfsg/src/VBox/Runtime/common/ldr/ldrELF.cpp 2012-04-02 13:29:00.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Runtime/common/ldr/ldrELF.cpp 2015-11-11 15:09:01.000000000 +0000 @@ -48,8 +48,10 @@ /******************************************************************************* * Defined Constants And Macros * *******************************************************************************/ -/** Finds an ELF string. */ +/** Finds an ELF symbol table string. */ #define ELF_STR(pHdrs, iStr) ((pHdrs)->pStr + (iStr)) +/** Finds an ELF section header string. */ +#define ELF_SH_STR(pHdrs, iStr) ((pHdrs)->pShStr + (iStr)) @@ -114,8 +116,9 @@ * @param fFlags Reserved, MBZ. * @param enmArch Architecture specifier. * @param phLdrMod Where to store the handle. + * @param pErrInfo Where to return extended error information. Optional. */ -int rtldrELFOpen(PRTLDRREADER pReader, uint32_t fFlags, RTLDRARCH enmArch, PRTLDRMOD phLdrMod) +int rtldrELFOpen(PRTLDRREADER pReader, uint32_t fFlags, RTLDRARCH enmArch, PRTLDRMOD phLdrMod, PRTERRINFO pErrInfo) { const char *pszLogName = pReader->pfnLogName(pReader); NOREF(pszLogName); diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Runtime/common/ldr/ldrELFRelocatable.cpp.h virtualbox-4.1.44-dfsg/src/VBox/Runtime/common/ldr/ldrELFRelocatable.cpp.h --- virtualbox-4.1.12-dfsg/src/VBox/Runtime/common/ldr/ldrELFRelocatable.cpp.h 2012-04-02 13:29:00.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Runtime/common/ldr/ldrELFRelocatable.cpp.h 2015-11-11 15:09:01.000000000 +0000 @@ -100,13 +100,19 @@ /** The ELF header. */ Elf_Ehdr Ehdr; - /** Pointer to our copy of the section headers. + /** Pointer to our copy of the section headers with sh_addr as RVAs. * The virtual addresses in this array is the 0 based assignments we've given the image. * Not valid if the image is DONE. */ Elf_Shdr *paShdrs; + /** Unmodified section headers (allocated after paShdrs, so no need to free). + * Not valid if the image is DONE. */ + Elf_Shdr const *paOrgShdrs; /** The size of the loaded image. */ size_t cbImage; + /** The image base address if it's an EXEC or DYN image. */ + Elf_Addr LinkAddress; + /** The symbol section index. */ unsigned iSymSh; /** Number of symbols in the table. */ @@ -120,6 +126,11 @@ unsigned cbStr; /** Pointer to string table within RTLDRMODELF::pvBits. */ const char *pStr; + + /** Size of the section header string table. */ + unsigned cbShStr; + /** Pointer to section header string table within RTLDRMODELF::pvBits. */ + const char *pShStr; } RTLDRMODELF, *PRTLDRMODELF; @@ -140,13 +151,249 @@ if (RT_SUCCESS(rc)) { const uint8_t *pu8 = (const uint8_t *)pModElf->pvBits; - pModElf->paSyms = (const Elf_Sym *)(pu8 + pModElf->paShdrs[pModElf->iSymSh].sh_offset); - pModElf->pStr = (const char *)(pu8 + pModElf->paShdrs[pModElf->iStrSh].sh_offset); + if (pModElf->iSymSh != ~0U) + pModElf->paSyms = (const Elf_Sym *)(pu8 + pModElf->paShdrs[pModElf->iSymSh].sh_offset); + if (pModElf->iStrSh != ~0U) + pModElf->pStr = (const char *)(pu8 + pModElf->paShdrs[pModElf->iStrSh].sh_offset); + pModElf->pShStr = (const char *)(pu8 + pModElf->paShdrs[pModElf->Ehdr.e_shstrndx].sh_offset); } return rc; } +/* + * + * EXEC & DYN. + * EXEC & DYN. + * EXEC & DYN. + * EXEC & DYN. + * EXEC & DYN. + * + */ + + +/** + * Applies the fixups for a section in an executable image. + * + * @returns iprt status code. + * @param pModElf The ELF loader module instance data. + * @param BaseAddr The base address which the module is being fixedup to. + * @param pfnGetImport The callback function to use to resolve imports (aka unresolved externals). + * @param pvUser User argument to pass to the callback. + * @param SecAddr The section address. This is the address the relocations are relative to. + * @param cbSec The section size. The relocations must be inside this. + * @param pu8SecBaseR Where we read section bits from. + * @param pu8SecBaseW Where we write section bits to. + * @param pvRelocs Pointer to where we read the relocations from. + * @param cbRelocs Size of the relocations. + */ +static int RTLDRELF_NAME(RelocateSectionExecDyn)(PRTLDRMODELF pModElf, Elf_Addr BaseAddr, + PFNRTLDRIMPORT pfnGetImport, void *pvUser, + const Elf_Addr SecAddr, Elf_Size cbSec, + const uint8_t *pu8SecBaseR, uint8_t *pu8SecBaseW, + const void *pvRelocs, Elf_Size cbRelocs) +{ +#if ELF_MODE != 32 + NOREF(pu8SecBaseR); +#endif + + /* + * Iterate the relocations. + * The relocations are stored in an array of Elf32_Rel records and covers the entire relocation section. + */ + const Elf_Addr offDelta = BaseAddr - pModElf->LinkAddress; + const Elf_Reloc *paRels = (const Elf_Reloc *)pvRelocs; + const unsigned iRelMax = (unsigned)(cbRelocs / sizeof(paRels[0])); + AssertMsgReturn(iRelMax == cbRelocs / sizeof(paRels[0]), (FMT_ELF_SIZE "\n", cbRelocs / sizeof(paRels[0])), + VERR_IMAGE_TOO_BIG); + for (unsigned iRel = 0; iRel < iRelMax; iRel++) + { + /* + * Skip R_XXX_NONE entries early to avoid confusion in the symbol + * getter code. + */ +#if ELF_MODE == 32 + if (ELF_R_TYPE(paRels[iRel].r_info) == R_386_NONE) + continue; +#elif ELF_MODE == 64 + if (ELF_R_TYPE(paRels[iRel].r_info) == R_X86_64_NONE) + continue; +#endif + + /* + * Validate and find the symbol, resolve undefined ones. + */ + Elf_Size iSym = ELF_R_SYM(paRels[iRel].r_info); + if (iSym >= pModElf->cSyms) + { + AssertMsgFailed(("iSym=%d is an invalid symbol index!\n", iSym)); + return VERR_LDRELF_INVALID_SYMBOL_INDEX; + } + const Elf_Sym *pSym = &pModElf->paSyms[iSym]; + if (pSym->st_name >= pModElf->cbStr) + { + AssertMsgFailed(("iSym=%d st_name=%d str sh_size=%d\n", iSym, pSym->st_name, pModElf->cbStr)); + return VERR_LDRELF_INVALID_SYMBOL_NAME_OFFSET; + } + + Elf_Addr SymValue = 0; + if (pSym->st_shndx == SHN_UNDEF) + { + /* Try to resolve the symbol. */ + const char *pszName = ELF_STR(pModElf, pSym->st_name); + RTUINTPTR ExtValue; + int rc = pfnGetImport(&pModElf->Core, "", pszName, ~0, &ExtValue, pvUser); + AssertMsgRCReturn(rc, ("Failed to resolve '%s' rc=%Rrc\n", pszName, rc), rc); + SymValue = (Elf_Addr)ExtValue; + AssertMsgReturn((RTUINTPTR)SymValue == ExtValue, ("Symbol value overflowed! '%s'\n", pszName), + VERR_SYMBOL_VALUE_TOO_BIG); + Log2(("rtldrELF: #%-3d - UNDEF " FMT_ELF_ADDR " '%s'\n", iSym, SymValue, pszName)); + } + else + { + AssertMsgReturn(pSym->st_shndx < pModElf->cSyms || pSym->st_shndx == SHN_ABS, ("%#x\n", pSym->st_shndx), + VERR_LDRELF_INVALID_RELOCATION_OFFSET); +#if ELF_MODE == 64 + SymValue = pSym->st_value; +#endif + } + +#if ELF_MODE == 64 + /* Calc the value. */ + Elf_Addr Value; + if (pSym->st_shndx < pModElf->cSyms) + Value = SymValue + offDelta; + else + Value = SymValue + paRels[iRel].r_addend; +#endif + + /* + * Apply the fixup. + */ + AssertMsgReturn(paRels[iRel].r_offset < cbSec, (FMT_ELF_ADDR " " FMT_ELF_SIZE "\n", paRels[iRel].r_offset, cbSec), VERR_LDRELF_INVALID_RELOCATION_OFFSET); +#if ELF_MODE == 32 + const Elf_Addr *pAddrR = (const Elf_Addr *)(pu8SecBaseR + paRels[iRel].r_offset); /* Where to read the addend. */ +#endif + Elf_Addr *pAddrW = (Elf_Addr *)(pu8SecBaseW + paRels[iRel].r_offset); /* Where to write the fixup. */ + switch (ELF_R_TYPE(paRels[iRel].r_info)) + { +#if ELF_MODE == 32 + /* + * Absolute addressing. + */ + case R_386_32: + { + Elf_Addr Value; + if (pSym->st_shndx < pModElf->Ehdr.e_shnum) + Value = *pAddrR + offDelta; /* Simplified. */ + else if (pSym->st_shndx == SHN_ABS) + continue; /* Internal fixup, no need to apply it. */ + else if (pSym->st_shndx == SHN_UNDEF) + Value = SymValue + *pAddrR; + else + AssertFailedReturn(VERR_LDR_GENERAL_FAILURE); /** @todo SHN_COMMON */ + *(uint32_t *)pAddrW = Value; + Log4((FMT_ELF_ADDR": R_386_32 Value=" FMT_ELF_ADDR "\n", SecAddr + paRels[iRel].r_offset + BaseAddr, Value)); + break; + } + + /* + * PC relative addressing. + */ + case R_386_PC32: + { + Elf_Addr Value; + if (pSym->st_shndx < pModElf->Ehdr.e_shnum) + continue; /* Internal fixup, no need to apply it. */ + else if (pSym->st_shndx == SHN_ABS) + Value = *pAddrR + offDelta; /* Simplified. */ + else if (pSym->st_shndx == SHN_UNDEF) + { + const Elf_Addr SourceAddr = SecAddr + paRels[iRel].r_offset + BaseAddr; /* Where the source really is. */ + Value = SymValue + *(uint32_t *)pAddrR - SourceAddr; + *(uint32_t *)pAddrW = Value; + } + else + AssertFailedReturn(VERR_LDR_GENERAL_FAILURE); /** @todo SHN_COMMON */ + Log4((FMT_ELF_ADDR": R_386_PC32 Value=" FMT_ELF_ADDR "\n", SecAddr + paRels[iRel].r_offset + BaseAddr, Value)); + break; + } + +#elif ELF_MODE == 64 + + /* + * Absolute addressing + */ + case R_X86_64_64: + { + *(uint64_t *)pAddrW = Value; + Log4((FMT_ELF_ADDR": R_X86_64_64 Value=" FMT_ELF_ADDR " SymValue=" FMT_ELF_ADDR "\n", + SecAddr + paRels[iRel].r_offset + BaseAddr, Value, SymValue)); + break; + } + + /* + * Truncated 32-bit value (zero-extendedable to the 64-bit value). + */ + case R_X86_64_32: + { + *(uint32_t *)pAddrW = (uint32_t)Value; + Log4((FMT_ELF_ADDR": R_X86_64_32 Value=" FMT_ELF_ADDR " SymValue=" FMT_ELF_ADDR "\n", + SecAddr + paRels[iRel].r_offset + BaseAddr, Value, SymValue)); + AssertMsgReturn((Elf_Addr)*(uint32_t *)pAddrW == SymValue, ("Value=" FMT_ELF_ADDR "\n", SymValue), + VERR_SYMBOL_VALUE_TOO_BIG); + break; + } + + /* + * Truncated 32-bit value (sign-extendedable to the 64-bit value). + */ + case R_X86_64_32S: + { + *(int32_t *)pAddrW = (int32_t)Value; + Log4((FMT_ELF_ADDR": R_X86_64_32S Value=" FMT_ELF_ADDR " SymValue=" FMT_ELF_ADDR "\n", + SecAddr + paRels[iRel].r_offset + BaseAddr, Value, SymValue)); + AssertMsgReturn((Elf_Addr)*(int32_t *)pAddrW == Value, ("Value=" FMT_ELF_ADDR "\n", Value), VERR_SYMBOL_VALUE_TOO_BIG); /** @todo check the sign-extending here. */ + break; + } + + /* + * PC relative addressing. + */ + case R_X86_64_PC32: + { + const Elf_Addr SourceAddr = SecAddr + paRels[iRel].r_offset + BaseAddr; /* Where the source really is. */ + Value -= SourceAddr; + *(int32_t *)pAddrW = (int32_t)Value; + Log4((FMT_ELF_ADDR": R_X86_64_PC32 Value=" FMT_ELF_ADDR " SymValue=" FMT_ELF_ADDR "\n", + SourceAddr, Value, SymValue)); + AssertMsgReturn((Elf_Addr)*(int32_t *)pAddrW == Value, ("Value=" FMT_ELF_ADDR "\n", Value), VERR_SYMBOL_VALUE_TOO_BIG); /** @todo check the sign-extending here. */ + break; + } +#endif + + default: + AssertMsgFailed(("Unknown relocation type: %d (iRel=%d iRelMax=%d)\n", + ELF_R_TYPE(paRels[iRel].r_info), iRel, iRelMax)); + return VERR_LDRELF_RELOCATION_NOT_SUPPORTED; + } + } + + return VINF_SUCCESS; +} + + + +/* + * + * REL + * REL + * REL + * REL + * REL + * + */ + /** * Get the symbol and symbol value. * @@ -263,6 +510,10 @@ const Elf_Addr SecAddr, Elf_Size cbSec, const uint8_t *pu8SecBaseR, uint8_t *pu8SecBaseW, const void *pvRelocs, Elf_Size cbRelocs) { +#if ELF_MODE != 32 + NOREF(pu8SecBaseR); +#endif + /* * Iterate the relocations. * The relocations are stored in an array of Elf32_Rel records and covers the entire relocation section. @@ -273,9 +524,22 @@ for (unsigned iRel = 0; iRel < iRelMax; iRel++) { /* + * Skip R_XXX_NONE entries early to avoid confusion in the symbol + * getter code. + */ +#if ELF_MODE == 32 + if (ELF_R_TYPE(paRels[iRel].r_info) == R_386_NONE) + continue; +#elif ELF_MODE == 64 + if (ELF_R_TYPE(paRels[iRel].r_info) == R_X86_64_NONE) + continue; +#endif + + + /* * Get the symbol. */ - const Elf_Sym *pSym = NULL; + const Elf_Sym *pSym = NULL; /* shut up gcc */ Elf_Addr SymValue = 0; /* shut up gcc-4 */ int rc = RTLDRELF_NAME(Symbol)(pModElf, BaseAddr, pfnGetImport, pvUser, ELF_R_SYM(paRels[iRel].r_info), &pSym, &SymValue); if (RT_FAILURE(rc)) @@ -422,7 +686,7 @@ /** @copydoc RTLDROPS::Done */ static DECLCALLBACK(int) RTLDRELF_NAME(Done)(PRTLDRMODINTERNAL pMod) { - //PRTLDRMODELF pModElf = (PRTLDRMODELF)pMod; + NOREF(pMod); /*PRTLDRMODELF pModElf = (PRTLDRMODELF)pMod;*/ /** @todo Have to think more about this .... */ return -1; } @@ -433,6 +697,7 @@ PFNRTLDRENUMSYMS pfnCallback, void *pvUser) { PRTLDRMODELF pModElf = (PRTLDRMODELF)pMod; + NOREF(pvBits); /* * Validate the input. @@ -467,8 +732,13 @@ /* absolute symbols are not subject to any relocation. */ Value = paSyms[iSym].st_value; else if (paSyms[iSym].st_shndx < pModElf->Ehdr.e_shnum) - /* relative to the section. */ - Value = BaseAddr + paSyms[iSym].st_value + pModElf->paShdrs[paSyms[iSym].st_shndx].sh_addr; + { + if (pModElf->Ehdr.e_type == ET_REL) + /* relative to the section. */ + Value = BaseAddr + paSyms[iSym].st_value + pModElf->paShdrs[paSyms[iSym].st_shndx].sh_addr; + else /* Fixed up for link address. */ + Value = BaseAddr + paSyms[iSym].st_value - pModElf->LinkAddress; + } else { AssertMsgFailed(("Arg! paSyms[%u].st_shndx=" FMT_ELF_HALF "\n", iSym, paSyms[iSym].st_shndx)); @@ -510,6 +780,22 @@ PRTLDRMODELF pModElf = (PRTLDRMODELF)pMod; /* + * This operation is currently only available on relocatable images. + */ + switch (pModElf->Ehdr.e_type) + { + case ET_REL: + break; + case ET_EXEC: + Log(("RTLdrELF: %s: Executable images are not supported yet!\n", pModElf->pReader->pfnLogName(pModElf->pReader))); + return VERR_LDRELF_EXEC; + case ET_DYN: + Log(("RTLdrELF: %s: Dynamic images are not supported yet!\n", pModElf->pReader->pfnLogName(pModElf->pReader))); + return VERR_LDRELF_DYN; + default: AssertFailedReturn(VERR_BAD_EXE_FORMAT); + } + + /* * Load the bits into pvBits. */ const Elf_Shdr *paShdrs = pModElf->paShdrs; @@ -552,6 +838,26 @@ static DECLCALLBACK(int) RTLDRELF_NAME(Relocate)(PRTLDRMODINTERNAL pMod, void *pvBits, RTUINTPTR NewBaseAddress, RTUINTPTR OldBaseAddress, PFNRTLDRIMPORT pfnGetImport, void *pvUser) { PRTLDRMODELF pModElf = (PRTLDRMODELF)pMod; +#ifdef LOG_ENABLED + const char *pszLogName = pModElf->pReader->pfnLogName(pModElf->pReader); +#endif + NOREF(OldBaseAddress); + + /* + * This operation is currently only available on relocatable images. + */ + switch (pModElf->Ehdr.e_type) + { + case ET_REL: + break; + case ET_EXEC: + Log(("RTLdrELF: %s: Executable images are not supported yet!\n", pszLogName)); + return VERR_LDRELF_EXEC; + case ET_DYN: + Log(("RTLdrELF: %s: Dynamic images are not supported yet!\n", pszLogName)); + return VERR_LDRELF_DYN; + default: AssertFailedReturn(VERR_BAD_EXE_FORMAT); + } /* * Validate the input. @@ -572,10 +878,7 @@ * for in the sh_info member. */ const Elf_Shdr *paShdrs = pModElf->paShdrs; -#ifdef LOG_ENABLED - const char *pszLogName = pModElf->pReader->pfnLogName(pModElf->pReader); Log2(("rtLdrElf: %s: Fixing up image\n", pszLogName)); -#endif for (unsigned iShdr = 0; iShdr < pModElf->Ehdr.e_shnum; iShdr++) { const Elf_Shdr *pShdrRel = &paShdrs[iShdr]; @@ -599,17 +902,26 @@ * Relocate the section. */ Log2(("rtldrELF: %s: Relocation records for #%d [%s] (sh_info=%d sh_link=%d) found in #%d [%s] (sh_info=%d sh_link=%d)\n", - pszLogName, (int)pShdrRel->sh_info, ELF_STR(pModElf, pShdr->sh_name), (int)pShdr->sh_info, (int)pShdr->sh_link, - iShdr, ELF_STR(pModElf, pShdrRel->sh_name), (int)pShdrRel->sh_info, (int)pShdrRel->sh_link)); + pszLogName, (int)pShdrRel->sh_info, ELF_SH_STR(pModElf, pShdr->sh_name), (int)pShdr->sh_info, (int)pShdr->sh_link, + iShdr, ELF_SH_STR(pModElf, pShdrRel->sh_name), (int)pShdrRel->sh_info, (int)pShdrRel->sh_link)); /** @todo Make RelocateSection a function pointer so we can select the one corresponding to the machine when opening the image. */ - rc = RTLDRELF_NAME(RelocateSection)(pModElf, BaseAddr, pfnGetImport, pvUser, - pShdr->sh_addr, - pShdr->sh_size, - (const uint8_t *)pModElf->pvBits + pShdr->sh_offset, - (uint8_t *)pvBits + pShdr->sh_addr, - (const uint8_t *)pModElf->pvBits + pShdrRel->sh_offset, - pShdrRel->sh_size); + if (pModElf->Ehdr.e_type == ET_REL) + rc = RTLDRELF_NAME(RelocateSection)(pModElf, BaseAddr, pfnGetImport, pvUser, + pShdr->sh_addr, + pShdr->sh_size, + (const uint8_t *)pModElf->pvBits + pShdr->sh_offset, + (uint8_t *)pvBits + pShdr->sh_addr, + (const uint8_t *)pModElf->pvBits + pShdrRel->sh_offset, + pShdrRel->sh_size); + else + rc = RTLDRELF_NAME(RelocateSectionExecDyn)(pModElf, BaseAddr, pfnGetImport, pvUser, + pShdr->sh_addr, + pShdr->sh_size, + (const uint8_t *)pModElf->pvBits + pShdr->sh_offset, + (uint8_t *)pvBits + pShdr->sh_addr, + (const uint8_t *)pModElf->pvBits + pShdrRel->sh_offset, + pShdrRel->sh_size); if (RT_FAILURE(rc)) return rc; } @@ -617,8 +929,37 @@ } +/** + * Worker for pfnGetSymbolEx. + */ +static int RTLDRELF_NAME(ReturnSymbol)(PRTLDRMODELF pThis, const Elf_Sym *pSym, Elf_Addr uBaseAddr, PRTUINTPTR pValue) +{ + Elf_Addr Value; + if (pSym->st_shndx == SHN_ABS) + /* absolute symbols are not subject to any relocation. */ + Value = pSym->st_value; + else if (pSym->st_shndx < pThis->Ehdr.e_shnum) + { + if (pThis->Ehdr.e_type == ET_REL) + /* relative to the section. */ + Value = uBaseAddr + pSym->st_value + pThis->paShdrs[pSym->st_shndx].sh_addr; + else /* Fixed up for link address. */ + Value = uBaseAddr + pSym->st_value - pThis->LinkAddress; + } + else + { + AssertMsgFailed(("Arg! pSym->st_shndx=%d\n", pSym->st_shndx)); + return VERR_BAD_EXE_FORMAT; + } + AssertMsgReturn(Value == (RTUINTPTR)Value, (FMT_ELF_ADDR "\n", Value), VERR_SYMBOL_VALUE_TOO_BIG); + *pValue = (RTUINTPTR)Value; + return VINF_SUCCESS; +} + + /** @copydoc RTLDROPS::pfnGetSymbolEx */ -static DECLCALLBACK(int) RTLDRELF_NAME(GetSymbolEx)(PRTLDRMODINTERNAL pMod, const void *pvBits, RTUINTPTR BaseAddress, const char *pszSymbol, RTUINTPTR *pValue) +static DECLCALLBACK(int) RTLDRELF_NAME(GetSymbolEx)(PRTLDRMODINTERNAL pMod, const void *pvBits, RTUINTPTR BaseAddress, + uint32_t iOrdinal, const char *pszSymbol, RTUINTPTR *pValue) { PRTLDRMODELF pModElf = (PRTLDRMODELF)pMod; NOREF(pvBits); @@ -626,8 +967,8 @@ /* * Validate the input. */ - Elf_Addr BaseAddr = (Elf_Addr)BaseAddress; - AssertMsgReturn((RTUINTPTR)BaseAddr == BaseAddress, ("#RTptr", BaseAddress), VERR_IMAGE_BASE_TOO_HIGH); + Elf_Addr uBaseAddr = (Elf_Addr)BaseAddress; + AssertMsgReturn((RTUINTPTR)uBaseAddr == BaseAddress, ("#RTptr", BaseAddress), VERR_IMAGE_BASE_TOO_HIGH); /* * Map the image bits if not already done and setup pointer into it. @@ -639,51 +980,265 @@ /* * Calc all kinds of pointers before we start iterating the symbol table. */ - const char *pStr = pModElf->pStr; const Elf_Sym *paSyms = pModElf->paSyms; unsigned cSyms = pModElf->cSyms; - for (unsigned iSym = 1; iSym < cSyms; iSym++) + if (iOrdinal == UINT32_MAX) { - /* Undefined symbols are not exports, they are imports. */ - if ( paSyms[iSym].st_shndx != SHN_UNDEF - && ( ELF_ST_BIND(paSyms[iSym].st_info) == STB_GLOBAL - || ELF_ST_BIND(paSyms[iSym].st_info) == STB_WEAK)) + const char *pStr = pModElf->pStr; + for (unsigned iSym = 1; iSym < cSyms; iSym++) { - /* Validate the name string and try match with it. */ - if (paSyms[iSym].st_name < pModElf->cbStr) + /* Undefined symbols are not exports, they are imports. */ + if ( paSyms[iSym].st_shndx != SHN_UNDEF + && ( ELF_ST_BIND(paSyms[iSym].st_info) == STB_GLOBAL + || ELF_ST_BIND(paSyms[iSym].st_info) == STB_WEAK)) { - if (!strcmp(pszSymbol, pStr + paSyms[iSym].st_name)) + /* Validate the name string and try match with it. */ + if (paSyms[iSym].st_name < pModElf->cbStr) { - /* matched! */ - Elf_Addr Value; - if (paSyms[iSym].st_shndx == SHN_ABS) - /* absolute symbols are not subject to any relocation. */ - Value = paSyms[iSym].st_value; - else if (paSyms[iSym].st_shndx < pModElf->Ehdr.e_shnum) - /* relative to the section. */ - Value = BaseAddr + paSyms[iSym].st_value + pModElf->paShdrs[paSyms[iSym].st_shndx].sh_addr; - else + if (!strcmp(pszSymbol, pStr + paSyms[iSym].st_name)) { - AssertMsgFailed(("Arg. paSyms[iSym].st_shndx=%d\n", paSyms[iSym].st_shndx)); - return VERR_BAD_EXE_FORMAT; + /* matched! */ + return RTLDRELF_NAME(ReturnSymbol)(pModElf, &paSyms[iSym], uBaseAddr, pValue); } - AssertMsgReturn(Value == (RTUINTPTR)Value, (FMT_ELF_ADDR "\n", Value), VERR_SYMBOL_VALUE_TOO_BIG); - *pValue = (RTUINTPTR)Value; - return VINF_SUCCESS; + } + else + { + AssertMsgFailed(("String outside string table! iSym=%d paSyms[iSym].st_name=%#x\n", iSym, paSyms[iSym].st_name)); + return VERR_LDRELF_INVALID_SYMBOL_NAME_OFFSET; } } + } + } + else if (iOrdinal < cSyms) + { + if ( paSyms[iOrdinal].st_shndx != SHN_UNDEF + && ( ELF_ST_BIND(paSyms[iOrdinal].st_info) == STB_GLOBAL + || ELF_ST_BIND(paSyms[iOrdinal].st_info) == STB_WEAK)) + return RTLDRELF_NAME(ReturnSymbol)(pModElf, &paSyms[iOrdinal], uBaseAddr, pValue); + } + + return VERR_SYMBOL_NOT_FOUND; +} + +#ifdef FROM_THE_FUTURE_VIA_LAZY_DEVELOPER + +/** @copydoc RTLDROPS::pfnEnumDbgInfo */ +static DECLCALLBACK(int) RTLDRELF_NAME(EnumDbgInfo)(PRTLDRMODINTERNAL pMod, const void *pvBits, + PFNRTLDRENUMDBG pfnCallback, void *pvUser) +{ + PRTLDRMODELF pModElf = (PRTLDRMODELF)pMod; + NOREF(pvBits); + + return VERR_NOT_IMPLEMENTED; NOREF(pModElf); NOREF(pfnCallback); NOREF(pvUser); +} + + +/** + * Helper that locates the first allocated section. + * + * @returns Pointer to the section header if found, NULL if none. + * @param pShdr The section header to start searching at. + * @param cLeft The number of section headers left to search. Can be 0. + */ +static const Elf_Shdr *RTLDRELF_NAME(GetFirstAllocatedSection)(const Elf_Shdr *pShdr, unsigned cLeft) +{ + while (cLeft-- > 0) + { + if (pShdr->sh_flags & SHF_ALLOC) + return pShdr; + pShdr++; + } + return NULL; +} + + +/** @copydoc RTLDROPS::pfnEnumSegments. */ +static DECLCALLBACK(int) RTLDRELF_NAME(EnumSegments)(PRTLDRMODINTERNAL pMod, PFNRTLDRENUMSEGS pfnCallback, void *pvUser) +{ + PRTLDRMODELF pModElf = (PRTLDRMODELF)pMod; + + /* + * Map the image bits if not already done and setup pointer into it. + */ + int rc = RTLDRELF_NAME(MapBits)(pModElf, true); + if (RT_FAILURE(rc)) + return rc; + + /* + * Do the enumeration. + */ + char szName[32]; + Elf_Addr uPrevMappedRva = 0; + const Elf_Shdr *paShdrs = pModElf->paShdrs; + const Elf_Shdr *paOrgShdrs = pModElf->paOrgShdrs; + for (unsigned iShdr = 1; iShdr < pModElf->Ehdr.e_shnum; iShdr++) + { + RTLDRSEG Seg; + Seg.pchName = ELF_SH_STR(pModElf, paShdrs[iShdr].sh_name); + Seg.cchName = (uint32_t)strlen(Seg.pchName); + if (Seg.cchName == 0) + { + Seg.pchName = szName; + Seg.cchName = (uint32_t)RTStrPrintf(szName, sizeof(szName), "UnamedSect%02u", iShdr); + } + Seg.SelFlat = 0; + Seg.Sel16bit = 0; + Seg.fFlags = 0; + Seg.fProt = RTMEM_PROT_READ; + if (paShdrs[iShdr].sh_flags & SHF_WRITE) + Seg.fProt |= RTMEM_PROT_WRITE; + if (paShdrs[iShdr].sh_flags & SHF_EXECINSTR) + Seg.fProt |= RTMEM_PROT_EXEC; + Seg.cb = paShdrs[iShdr].sh_size; + Seg.Alignment = paShdrs[iShdr].sh_addralign; + if (paShdrs[iShdr].sh_flags & SHF_ALLOC) + { + Seg.LinkAddress = paOrgShdrs[iShdr].sh_addr; + Seg.RVA = paShdrs[iShdr].sh_addr; + const Elf_Shdr *pShdr2 = RTLDRELF_NAME(GetFirstAllocatedSection)(&paShdrs[iShdr + 1], + pModElf->Ehdr.e_shnum - iShdr - 1); + if ( pShdr2 + && pShdr2->sh_addr >= paShdrs[iShdr].sh_addr + && Seg.RVA >= uPrevMappedRva) + Seg.cbMapped = pShdr2->sh_addr - paShdrs[iShdr].sh_addr; else + Seg.cbMapped = RT_MAX(paShdrs[iShdr].sh_size, paShdrs[iShdr].sh_addralign); + uPrevMappedRva = Seg.RVA; + } + else + { + Seg.LinkAddress = NIL_RTLDRADDR; + Seg.RVA = NIL_RTLDRADDR; + Seg.cbMapped = NIL_RTLDRADDR; + } + if (paShdrs[iShdr].sh_type != SHT_NOBITS) + { + Seg.offFile = paShdrs[iShdr].sh_offset; + Seg.cbFile = paShdrs[iShdr].sh_size; + } + else + { + Seg.offFile = -1; + Seg.cbFile = 0; + } + + rc = pfnCallback(pMod, &Seg, pvUser); + if (rc != VINF_SUCCESS) + return rc; + } + + return VINF_SUCCESS; +} + + +/** @copydoc RTLDROPS::pfnLinkAddressToSegOffset. */ +static DECLCALLBACK(int) RTLDRELF_NAME(LinkAddressToSegOffset)(PRTLDRMODINTERNAL pMod, RTLDRADDR LinkAddress, + uint32_t *piSeg, PRTLDRADDR poffSeg) +{ + PRTLDRMODELF pModElf = (PRTLDRMODELF)pMod; + + const Elf_Shdr *pShdrEnd = NULL; + unsigned cLeft = pModElf->Ehdr.e_shnum - 1; + const Elf_Shdr *pShdr = &pModElf->paOrgShdrs[cLeft]; + while (cLeft-- > 0) + { + if (pShdr->sh_flags & SHF_ALLOC) + { + RTLDRADDR offSeg = LinkAddress - pShdr->sh_addr; + if (offSeg < pShdr->sh_size) { - AssertMsgFailed(("String outside string table! iSym=%d paSyms[iSym].st_name=%#x\n", iSym, paSyms[iSym].st_name)); - return VERR_LDRELF_INVALID_SYMBOL_NAME_OFFSET; + *poffSeg = offSeg; + *piSeg = cLeft; + return VINF_SUCCESS; } + if (offSeg == pShdr->sh_size) + pShdrEnd = pShdr; } + pShdr--; } - return VERR_SYMBOL_NOT_FOUND; + if (pShdrEnd) + { + *poffSeg = pShdrEnd->sh_size; + *piSeg = pShdrEnd - pModElf->paOrgShdrs - 1; + return VINF_SUCCESS; + } + + return VERR_LDR_INVALID_LINK_ADDRESS; } +/** @copydoc RTLDROPS::pfnLinkAddressToRva. */ +static DECLCALLBACK(int) RTLDRELF_NAME(LinkAddressToRva)(PRTLDRMODINTERNAL pMod, RTLDRADDR LinkAddress, PRTLDRADDR pRva) +{ + PRTLDRMODELF pModElf = (PRTLDRMODELF)pMod; + uint32_t iSeg; + RTLDRADDR offSeg; + int rc = RTLDRELF_NAME(LinkAddressToSegOffset)(pMod, LinkAddress, &iSeg, &offSeg); + if (RT_SUCCESS(rc)) + *pRva = pModElf->paShdrs[iSeg + 1].sh_addr + offSeg; + return rc; +} + + +/** @copydoc RTLDROPS::pfnSegOffsetToRva. */ +static DECLCALLBACK(int) RTLDRELF_NAME(SegOffsetToRva)(PRTLDRMODINTERNAL pMod, uint32_t iSeg, RTLDRADDR offSeg, + PRTLDRADDR pRva) +{ + PRTLDRMODELF pModElf = (PRTLDRMODELF)pMod; + if (iSeg >= pModElf->Ehdr.e_shnum - 1U) + return VERR_LDR_INVALID_SEG_OFFSET; + + iSeg++; /* skip section 0 */ + if (offSeg > pModElf->paShdrs[iSeg].sh_size) + { + const Elf_Shdr *pShdr2 = RTLDRELF_NAME(GetFirstAllocatedSection)(&pModElf->paShdrs[iSeg + 1], + pModElf->Ehdr.e_shnum - iSeg - 1); + if ( !pShdr2 + || offSeg > (pShdr2->sh_addr - pModElf->paShdrs[iSeg].sh_addr)) + return VERR_LDR_INVALID_SEG_OFFSET; + } + + if (!(pModElf->paShdrs[iSeg].sh_flags & SHF_ALLOC)) + return VERR_LDR_INVALID_SEG_OFFSET; + + *pRva = pModElf->paShdrs[iSeg].sh_addr; + return VINF_SUCCESS; +} + + +/** @copydoc RTLDROPS::pfnRvaToSegOffset. */ +static DECLCALLBACK(int) RTLDRELF_NAME(RvaToSegOffset)(PRTLDRMODINTERNAL pMod, RTLDRADDR Rva, + uint32_t *piSeg, PRTLDRADDR poffSeg) +{ + PRTLDRMODELF pModElf = (PRTLDRMODELF)pMod; + + Elf_Addr PrevAddr = 0; + unsigned cLeft = pModElf->Ehdr.e_shnum - 1; + const Elf_Shdr *pShdr = &pModElf->paShdrs[cLeft]; + while (cLeft-- > 0) + { + if (pShdr->sh_flags & SHF_ALLOC) + { + Elf_Addr cbSeg = PrevAddr ? PrevAddr - pShdr->sh_addr : pShdr->sh_size; + RTLDRADDR offSeg = Rva - pShdr->sh_addr; + if (offSeg <= cbSeg) + { + *poffSeg = offSeg; + *piSeg = cLeft; + + return VINF_SUCCESS; + } + PrevAddr = pShdr->sh_addr; + } + pShdr--; + } + + return VERR_LDR_INVALID_RVA; +} + +#endif /* FROM_THE_FUTURE_VIA_LAZY_DEVELOPER */ + /** * The ELF module operations. @@ -704,7 +1259,11 @@ RTLDRELF_NAME(GetBits), RTLDRELF_NAME(Relocate), RTLDRELF_NAME(GetSymbolEx), - 0 + NULL /*pfnQueryForwarderInfo*/, + NULL /*pfnQueryProp*/, + NULL /*pfnVerifySignature*/, + NULL /*pfnHashImage*/, + 42 }; @@ -742,7 +1301,7 @@ || pEhdr->e_ident[EI_MAG3] != ELFMAG3 ) { - Log(("RTLdrELF: %s: Invalid ELF magic (%.*Rhxs)\n", pszLogName, sizeof(pEhdr->e_ident), pEhdr->e_ident)); + Log(("RTLdrELF: %s: Invalid ELF magic (%.*Rhxs)\n", pszLogName, sizeof(pEhdr->e_ident), pEhdr->e_ident)); NOREF(pszLogName); return VERR_BAD_EXE_FORMAT; } if (pEhdr->e_ident[EI_CLASS] != RTLDRELF_SUFF(ELFCLASS)) @@ -785,13 +1344,9 @@ switch (pEhdr->e_type) { case ET_REL: - break; case ET_EXEC: - Log(("RTLdrELF: %s: Executable images are not supported yet!\n", pszLogName)); - return VERR_LDRELF_EXEC; case ET_DYN: - Log(("RTLdrELF: %s: Dynamic images are not supported yet!\n", pszLogName)); - return VERR_LDRELF_DYN; + break; default: Log(("RTLdrELF: %s: image type %#x is not supported!\n", pszLogName, pEhdr->e_type)); return VERR_BAD_EXE_FORMAT; @@ -846,6 +1401,13 @@ return VERR_BAD_EXE_FORMAT; } + if (pEhdr->e_shstrndx == 0 || pEhdr->e_shstrndx > pEhdr->e_shnum) + { + Log(("RTLdrELF: %s: The section headers string table is out of bounds! e_shstrndx=" FMT_ELF_HALF " e_shnum=" FMT_ELF_HALF "\n", + pszLogName, pEhdr->e_shstrndx, pEhdr->e_shnum)); + return VERR_BAD_EXE_FORMAT; + } + return VINF_SUCCESS; } @@ -913,10 +1475,35 @@ pShdr->sh_offset, pShdr->sh_size, pShdr->sh_link, pShdr->sh_info, pShdr->sh_addralign, pShdr->sh_entsize)); + if (iShdr == 0) + { + if ( pShdr->sh_name != 0 + || pShdr->sh_type != SHT_NULL + || pShdr->sh_flags != 0 + || pShdr->sh_addr != 0 + || pShdr->sh_size != 0 + || pShdr->sh_offset != 0 + || pShdr->sh_link != SHN_UNDEF + || pShdr->sh_addralign != 0 + || pShdr->sh_entsize != 0 ) + { + Log(("RTLdrELF: %s: Bad #0 section: %.*Rhxs\n", pszLogName, sizeof(*pShdr), pShdr )); + return VERR_BAD_EXE_FORMAT; + } + return VINF_SUCCESS; + } + + if (pShdr->sh_name >= pModElf->cbShStr) + { + Log(("RTLdrELF: %s: Shdr #%d: sh_name (%d) is beyond the end of the section header string table (%d)!\n", + pszLogName, iShdr, pShdr->sh_name, pModElf->cbShStr)); NOREF(pszLogName); + return VERR_BAD_EXE_FORMAT; + } + if (pShdr->sh_link >= pModElf->Ehdr.e_shnum) { Log(("RTLdrELF: %s: Shdr #%d: sh_link (%d) is beyond the end of the section table (%d)!\n", - pszLogName, iShdr, pShdr->sh_link, pModElf->Ehdr.e_shnum)); + pszLogName, iShdr, pShdr->sh_link, pModElf->Ehdr.e_shnum)); NOREF(pszLogName); return VERR_BAD_EXE_FORMAT; } @@ -933,6 +1520,7 @@ break; case SHT_NULL: + break; case SHT_PROGBITS: case SHT_SYMTAB: case SHT_STRTAB: @@ -1009,11 +1597,14 @@ //pModElf->paShdrs = NULL; //pModElf->paSyms = NULL; pModElf->iSymSh = ~0U; - pModElf->cSyms = 0; + //pModElf->cSyms = 0; pModElf->iStrSh = ~0U; - pModElf->cbStr = 0; - pModElf->cbImage = 0; + //pModElf->cbStr = 0; + //pModElf->cbImage = 0; + //pModElf->LinkAddress = 0; //pModElf->pStr = NULL; + //pModElf->cbShStr = 0; + //pModElf->pShStr = NULL; /* * Read and validate the ELF header and match up the CPU architecture. @@ -1033,39 +1624,33 @@ if (RT_SUCCESS(rc)) { /* - * Read the section headers. + * Read the section headers, keeping a prestine copy for the module + * introspection methods. */ - Elf_Shdr *paShdrs = (Elf_Shdr *)RTMemAlloc(pModElf->Ehdr.e_shnum * sizeof(Elf_Shdr)); + size_t const cbShdrs = pModElf->Ehdr.e_shnum * sizeof(Elf_Shdr); + Elf_Shdr *paShdrs = (Elf_Shdr *)RTMemAlloc(cbShdrs * 2); if (paShdrs) { pModElf->paShdrs = paShdrs; - rc = pReader->pfnRead(pReader, paShdrs, pModElf->Ehdr.e_shnum * sizeof(Elf_Shdr), + rc = pReader->pfnRead(pReader, paShdrs, cbShdrs, pModElf->Ehdr.e_shoff); if (RT_SUCCESS(rc)) { + memcpy(&paShdrs[pModElf->Ehdr.e_shnum], paShdrs, cbShdrs); + pModElf->paOrgShdrs = &paShdrs[pModElf->Ehdr.e_shnum]; + + pModElf->cbShStr = paShdrs[pModElf->Ehdr.e_shstrndx].sh_size; + /* - * Validate the section headers, allocate memory for the sections (determine the image size), - * and find relevant sections. + * Validate the section headers and find relevant sections. */ + Elf_Addr uNextAddr = 0; for (unsigned i = 0; i < pModElf->Ehdr.e_shnum; i++) { rc = RTLDRELF_NAME(ValidateSectionHeader)(pModElf, i, pszLogName, cbRawImage); if (RT_FAILURE(rc)) break; - /* Allocate memory addresses for the section. */ - if (paShdrs[i].sh_flags & SHF_ALLOC) - { - paShdrs[i].sh_addr = paShdrs[i].sh_addralign - ? RT_ALIGN_T(pModElf->cbImage, paShdrs[i].sh_addralign, Elf_Addr) - : (Elf_Addr)pModElf->cbImage; - pModElf->cbImage = (size_t)paShdrs[i].sh_addr + (size_t)paShdrs[i].sh_size; - AssertMsgReturn(pModElf->cbImage == paShdrs[i].sh_addr + paShdrs[i].sh_size, - (FMT_ELF_ADDR "\n", paShdrs[i].sh_addr + paShdrs[i].sh_size), - VERR_IMAGE_TOO_BIG); - Log2(("RTLdrElf: %s: Assigned " FMT_ELF_ADDR " to section #%d\n", pszLogName, paShdrs[i].sh_addr, i)); - } - /* We're looking for symbol tables. */ if (paShdrs[i].sh_type == SHT_SYMTAB) { @@ -1082,18 +1667,79 @@ pModElf->cbStr = (unsigned)paShdrs[pModElf->iStrSh].sh_size; AssertReturn(pModElf->cbStr == paShdrs[pModElf->iStrSh].sh_size, VERR_IMAGE_TOO_BIG); } + + /* Special checks for the section string table. */ + if (i == pModElf->Ehdr.e_shstrndx) + { + if (paShdrs[i].sh_type != SHT_STRTAB) + { + Log(("RTLdrElf: Section header string table is not a SHT_STRTAB: %#x\n", paShdrs[i].sh_type)); + rc = VERR_BAD_EXE_FORMAT; + break; + } + if (paShdrs[i].sh_size == 0) + { + Log(("RTLdrElf: Section header string table is empty\n")); + rc = VERR_BAD_EXE_FORMAT; + break; + } + } + + /* Kluge for the .data..percpu segment in 64-bit linux kernels. */ + if (paShdrs[i].sh_flags & SHF_ALLOC) + { + if ( paShdrs[i].sh_addr == 0 + && paShdrs[i].sh_addr < uNextAddr) + { + Elf_Addr uAddr = RT_ALIGN_T(uNextAddr, paShdrs[i].sh_addralign, Elf_Addr); + Log(("RTLdrElf: Out of order section #%d; adjusting sh_addr from " FMT_ELF_ADDR " to " FMT_ELF_ADDR "\n", paShdrs[i].sh_addr, uAddr)); + paShdrs[i].sh_addr = uAddr; + } + uNextAddr = paShdrs[i].sh_addr + paShdrs[i].sh_size; + } } /* for each section header */ - Log2(("RTLdrElf: iSymSh=%u cSyms=%u iStrSh=%u cbStr=%u rc=%Rrc cbImage=%#zx\n", - pModElf->iSymSh, pModElf->cSyms, pModElf->iStrSh, pModElf->cbStr, rc, pModElf->cbImage)); + /* + * Calculate the image base address if the image isn't relocatable. + */ + if (RT_SUCCESS(rc) && pModElf->Ehdr.e_type != ET_REL) + { + pModElf->LinkAddress = ~(Elf_Addr)0; + for (unsigned i = 0; i < pModElf->Ehdr.e_shnum; i++) + if ( (paShdrs[i].sh_flags & SHF_ALLOC) + && paShdrs[i].sh_addr < pModElf->LinkAddress) + pModElf->LinkAddress = paShdrs[i].sh_addr; + if (pModElf->LinkAddress == ~(Elf_Addr)0) + { + AssertFailed(); + rc = VERR_LDR_GENERAL_FAILURE; + } + } /* - * Are the section headers fine? - * We require there to be symbol & string tables (at least for the time being). + * Perform allocations / RVA calculations, determine the image size. */ - if ( pModElf->iSymSh == ~0U - || pModElf->iStrSh == ~0U) - rc = VERR_LDRELF_NO_SYMBOL_OR_NO_STRING_TABS; + if (RT_SUCCESS(rc)) + for (unsigned i = 0; i < pModElf->Ehdr.e_shnum; i++) + if (paShdrs[i].sh_flags & SHF_ALLOC) + { + if (pModElf->Ehdr.e_type == ET_REL) + paShdrs[i].sh_addr = paShdrs[i].sh_addralign + ? RT_ALIGN_T(pModElf->cbImage, paShdrs[i].sh_addralign, Elf_Addr) + : (Elf_Addr)pModElf->cbImage; + else + paShdrs[i].sh_addr -= pModElf->LinkAddress; + Elf_Addr EndAddr = paShdrs[i].sh_addr + paShdrs[i].sh_size; + if (pModElf->cbImage < EndAddr) + { + pModElf->cbImage = (size_t)EndAddr; + AssertMsgReturn(pModElf->cbImage == EndAddr, (FMT_ELF_ADDR "\n", EndAddr), VERR_IMAGE_TOO_BIG); + } + Log2(("RTLdrElf: %s: Assigned " FMT_ELF_ADDR " to section #%d\n", pszLogName, paShdrs[i].sh_addr, i)); + } + + Log2(("RTLdrElf: iSymSh=%u cSyms=%u iStrSh=%u cbStr=%u rc=%Rrc cbImage=%#zx LinkAddress=" FMT_ELF_ADDR "\n", + pModElf->iSymSh, pModElf->cSyms, pModElf->iStrSh, pModElf->cbStr, rc, pModElf->cbImage, pModElf->LinkAddress)); if (RT_SUCCESS(rc)) { pModElf->Core.pOps = &RTLDRELF_MID(s_rtldrElf,Ops); diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Runtime/common/ldr/ldrEx.cpp virtualbox-4.1.44-dfsg/src/VBox/Runtime/common/ldr/ldrEx.cpp --- virtualbox-4.1.12-dfsg/src/VBox/Runtime/common/ldr/ldrEx.cpp 2012-04-02 13:29:00.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Runtime/common/ldr/ldrEx.cpp 2015-11-11 15:09:01.000000000 +0000 @@ -4,7 +4,7 @@ */ /* - * Copyright (C) 2006-2007 Oracle Corporation + * Copyright (C) 2006-2013 Oracle Corporation * * This file is part of VirtualBox Open Source Edition (OSE), as * available from http://www.virtualbox.org. This file is free software; @@ -32,27 +32,44 @@ #include #include "internal/iprt.h" -#include #include +#include #include +#include +#include +#include #include -#include #include "internal/ldr.h" #include "internal/ldrMZ.h" +#ifdef LDR_ONLY_PE +# undef LDR_WITH_PE +# undef LDR_WITH_KLDR +# undef LDR_WITH_ELF +# undef LDR_WITH_LX +# undef LDR_WITH_LE +# undef LDR_WITH_NE +# undef LDR_WITH_MZ +# undef LDR_WITH_AOUT +# define LDR_WITH_PE +#endif -/** - * Open part with reader. - * - * @returns iprt status code. - * @param pReader The loader reader instance which will provide the raw image bits. - * @param fFlags Reserved, MBZ. - * @param enmArch Architecture specifier. - * @param phMod Where to store the handle. - */ -int rtldrOpenWithReader(PRTLDRREADER pReader, uint32_t fFlags, RTLDRARCH enmArch, PRTLDRMOD phMod) + +RTDECL(int) RTLdrOpenWithReader(PRTLDRREADER pReader, uint32_t fFlags, RTLDRARCH enmArch, PRTLDRMOD phMod, PRTERRINFO pErrInfo) { /* + * Resolve RTLDRARCH_HOST. + */ + if (enmArch == RTLDRARCH_HOST) +#if defined(RT_ARCH_AMD64) + enmArch = RTLDRARCH_AMD64; +#elif defined(RT_ARCH_X86) + enmArch = RTLDRARCH_X86_32; +#else + enmArch = RTLDRARCH_WHATEVER; +#endif + + /* * Read and verify the file signature. */ union @@ -104,37 +121,37 @@ */ if (uSign.u32 == IMAGE_NT_SIGNATURE) #ifdef LDR_WITH_PE - rc = rtldrPEOpen(pReader, fFlags, enmArch, offHdr, phMod); + rc = rtldrPEOpen(pReader, fFlags, enmArch, offHdr, phMod, pErrInfo); #else rc = VERR_PE_EXE_NOT_SUPPORTED; #endif else if (uSign.u32 == IMAGE_ELF_SIGNATURE) #if defined(LDR_WITH_ELF) - rc = rtldrELFOpen(pReader, fFlags, enmArch, phMod); + rc = rtldrELFOpen(pReader, fFlags, enmArch, phMod, pErrInfo); #else rc = VERR_ELF_EXE_NOT_SUPPORTED; #endif else if (uSign.au16[0] == IMAGE_LX_SIGNATURE) #ifdef LDR_WITH_LX - rc = rtldrLXOpen(pReader, fFlags, enmArch, offHdr, phMod); + rc = rtldrLXOpen(pReader, fFlags, enmArch, offHdr, phMod, pErrInfo); #else rc = VERR_LX_EXE_NOT_SUPPORTED; #endif else if (uSign.au16[0] == IMAGE_LE_SIGNATURE) #ifdef LDR_WITH_LE - rc = rtldrLEOpen(pReader, fFlags, enmArch, phMod); + rc = rtldrLEOpen(pReader, fFlags, enmArch, phMod, pErrInfo); #else rc = VERR_LE_EXE_NOT_SUPPORTED; #endif else if (uSign.au16[0] == IMAGE_NE_SIGNATURE) #ifdef LDR_WITH_NE - rc = rtldrNEOpen(pReader, fFlags, enmArch, phMod); + rc = rtldrNEOpen(pReader, fFlags, enmArch, phMod, pErrInfo); #else rc = VERR_NE_EXE_NOT_SUPPORTED; #endif else if (uSign.au16[0] == IMAGE_DOS_SIGNATURE) #ifdef LDR_WITH_MZ - rc = rtldrMZOpen(pReader, fFlags, enmArch, phMod); + rc = rtldrMZOpen(pReader, fFlags, enmArch, phMod, pErrInfo); #else rc = VERR_MZ_EXE_NOT_SUPPORTED; #endif @@ -142,7 +159,7 @@ || uSign.u32 == IMAGE_AOUT_Z_SIGNATURE*/ /** @todo find the aout magics in emx or binutils. */ 0) #ifdef LDR_WITH_AOUT - rc = rtldrAOUTOpen(pReader, fFlags, enmArch, phMod); + rc = rtldrAOUTOpen(pReader, fFlags, enmArch, phMod, pErrInfo); #else rc = VERR_AOUT_EXE_NOT_SUPPORTED; #endif @@ -157,7 +174,14 @@ #ifdef LDR_WITH_KLDR /* Try kLdr if it's a format we don't recognize. */ if (rc <= VERR_INVALID_EXE_SIGNATURE && rc > VERR_BAD_EXE_FORMAT) - rc = rtldrkLdrOpen(pReader, fFlags, enmArch, phMod); + { + int rc2 = rtldrkLdrOpen(pReader, fFlags, enmArch, phMod, pErrInfo); + if ( RT_SUCCESS(rc2) + || (rc == VERR_INVALID_EXE_SIGNATURE && rc2 != VERR_MZ_EXE_NOT_SUPPORTED /* Quick fix for bad return code. */) + || rc2 > VERR_INVALID_EXE_SIGNATURE + || rc2 <= VERR_BAD_EXE_FORMAT) + rc = rc2; + } #endif LogFlow(("rtldrOpenWithReader: %s: returns %Rrc *phMod=%p\n", pReader->pfnLogName(pReader), rc, *phMod)); @@ -165,15 +189,6 @@ } -/** - * Gets the size of the loaded image. - * This is only supported for modules which has been opened using RTLdrOpen() and RTLdrOpenBits(). - * - * @returns image size (in bytes). - * @returns ~(size_t)0 on if not opened by RTLdrOpen(). - * @param hLdrMod Handle to the loader module. - * @remark Not supported for RTLdrLoad() images. - */ RTDECL(size_t) RTLdrSize(RTLDRMOD hLdrMod) { LogFlow(("RTLdrSize: hLdrMod=%RTldrm\n", hLdrMod)); @@ -205,6 +220,7 @@ * Must be as large as RTLdrSize() suggests. * @param BaseAddress The base address. * @param pfnGetImport Callback function for resolving imports one by one. + * If this is NULL, imports will not be resolved. * @param pvUser User argument for the callback. * @remark Not supported for RTLdrLoad() images. */ @@ -217,8 +233,8 @@ * Validate input. */ AssertMsgReturn(rtldrIsValid(hLdrMod), ("hLdrMod=%p\n", hLdrMod), VERR_INVALID_HANDLE); - AssertMsgReturn(VALID_PTR(pvBits), ("pvBits=%p\n", pvBits), VERR_INVALID_PARAMETER); - AssertMsgReturn(VALID_PTR(pfnGetImport), ("pfnGetImport=%p\n", pfnGetImport), VERR_INVALID_PARAMETER); + AssertPtrReturn(pvBits, VERR_INVALID_POINTER); + AssertPtrNullReturn(pfnGetImport, VERR_INVALID_POINTER); PRTLDRMODINTERNAL pMod = (PRTLDRMODINTERNAL)hLdrMod; AssertMsgReturn(pMod->eState == LDR_STATE_OPENED, ("eState=%d\n", pMod->eState), VERR_WRONG_ORDER); @@ -271,45 +287,29 @@ RT_EXPORT_SYMBOL(RTLdrRelocate); -/** - * Gets the address of a named exported symbol. - * - * This function differs from the plain one in that it can deal with - * both GC and HC address sizes, and that it can calculate the symbol - * value relative to any given base address. - * - * @returns iprt status code. - * @param hLdrMod The loader module handle. - * @param pvBits Optional pointer to the loaded image. - * Set this to NULL if no RTLdrGetBits() processed image bits are available. - * Not supported for RTLdrLoad() images and must be NULL. - * @param BaseAddress Image load address. - * Not supported for RTLdrLoad() images and must be 0. - * @param pszSymbol Symbol name. - * @param pValue Where to store the symbol value. - */ -RTDECL(int) RTLdrGetSymbolEx(RTLDRMOD hLdrMod, const void *pvBits, RTUINTPTR BaseAddress, const char *pszSymbol, RTUINTPTR *pValue) +RTDECL(int) RTLdrGetSymbolEx(RTLDRMOD hLdrMod, const void *pvBits, RTLDRADDR BaseAddress, + uint32_t iOrdinal, const char *pszSymbol, PRTLDRADDR pValue) { - LogFlow(("RTLdrGetSymbolEx: hLdrMod=%RTldrm pvBits=%p BaseAddress=%RTptr pszSymbol=%p:{%s} pValue\n", - hLdrMod, pvBits, BaseAddress, pszSymbol, pszSymbol, pValue)); + LogFlow(("RTLdrGetSymbolEx: hLdrMod=%RTldrm pvBits=%p BaseAddress=%RTptr iOrdinal=%#x pszSymbol=%p:{%s} pValue\n", + hLdrMod, pvBits, BaseAddress, iOrdinal, pszSymbol, pszSymbol, pValue)); /* * Validate input. */ AssertMsgReturn(rtldrIsValid(hLdrMod), ("hLdrMod=%p\n", hLdrMod), VERR_INVALID_HANDLE); - AssertMsgReturn(!pvBits || VALID_PTR(pvBits), ("pvBits=%p\n", pvBits), VERR_INVALID_PARAMETER); - AssertMsgReturn(pszSymbol, ("pszSymbol=%p\n", pszSymbol), VERR_INVALID_PARAMETER); - AssertMsgReturn(VALID_PTR(pValue), ("pValue=%p\n", pvBits), VERR_INVALID_PARAMETER); + AssertPtrNullReturn(pvBits, VERR_INVALID_POINTER); + AssertPtrNullReturn(pszSymbol, VERR_INVALID_POINTER); + AssertReturn(pszSymbol || iOrdinal != UINT32_MAX, VERR_INVALID_PARAMETER); + AssertPtrReturn(pValue, VERR_INVALID_POINTER); PRTLDRMODINTERNAL pMod = (PRTLDRMODINTERNAL)hLdrMod; - //AssertMsgReturn(pMod->eState == LDR_STATE_OPENED, ("eState=%d\n", pMod->eState), VERR_WRONG_ORDER); /* * Do it. */ int rc; if (pMod->pOps->pfnGetSymbolEx) - rc = pMod->pOps->pfnGetSymbolEx(pMod, pvBits, BaseAddress, pszSymbol, pValue); - else if (!BaseAddress && !pvBits) + rc = pMod->pOps->pfnGetSymbolEx(pMod, pvBits, BaseAddress, iOrdinal, pszSymbol, pValue); + else if (!BaseAddress && !pvBits && iOrdinal == UINT32_MAX) { void *pvValue; rc = pMod->pOps->pfnGetSymbol(pMod, pszSymbol, &pvValue); @@ -324,6 +324,46 @@ RT_EXPORT_SYMBOL(RTLdrGetSymbolEx); +RTDECL(int) RTLdrQueryForwarderInfo(RTLDRMOD hLdrMod, const void *pvBits, uint32_t iOrdinal, const char *pszSymbol, + PRTLDRIMPORTINFO pInfo, size_t cbInfo) +{ + LogFlow(("RTLdrQueryForwarderInfo: hLdrMod=%RTldrm pvBits=%p iOrdinal=%#x pszSymbol=%p:{%s} pInfo=%p cbInfo=%zu\n", + hLdrMod, pvBits, iOrdinal, pszSymbol, pszSymbol, pInfo, cbInfo)); + + /* + * Validate input. + */ + AssertMsgReturn(rtldrIsValid(hLdrMod), ("hLdrMod=%p\n", hLdrMod), VERR_INVALID_HANDLE); + AssertPtrNullReturn(pvBits, VERR_INVALID_POINTER); + AssertMsgReturn(pszSymbol, ("pszSymbol=%p\n", pszSymbol), VERR_INVALID_PARAMETER); + AssertPtrReturn(pInfo, VERR_INVALID_PARAMETER); + AssertReturn(cbInfo >= sizeof(*pInfo), VERR_INVALID_PARAMETER); + PRTLDRMODINTERNAL pMod = (PRTLDRMODINTERNAL)hLdrMod; + + /* + * Do it. + */ + int rc; + if (pMod->pOps->pfnQueryForwarderInfo) + { + rc = pMod->pOps->pfnQueryForwarderInfo(pMod, pvBits, iOrdinal, pszSymbol, pInfo, cbInfo); + if (RT_SUCCESS(rc)) + LogFlow(("RTLdrQueryForwarderInfo: returns %Rrc pInfo={%#x,%#x,%s,%s}\n", rc, + pInfo->iSelfOrdinal, pInfo->iOrdinal, pInfo->pszSymbol, pInfo->szModule)); + else + LogFlow(("RTLdrQueryForwarderInfo: returns %Rrc\n", rc)); + } + else + { + LogFlow(("RTLdrQueryForwarderInfo: returns VERR_NOT_SUPPORTED\n")); + rc = VERR_NOT_SUPPORTED; + } + return rc; + +} +RT_EXPORT_SYMBOL(RTLdrQueryForwarderInfo); + + /** * Enumerates all symbols in a module. * @@ -360,3 +400,117 @@ } RT_EXPORT_SYMBOL(RTLdrEnumSymbols); + +RTDECL(int) RTLdrQueryProp(RTLDRMOD hLdrMod, RTLDRPROP enmProp, void *pvBuf, size_t cbBuf) +{ + return RTLdrQueryPropEx(hLdrMod, enmProp, NULL /*pvBits*/, pvBuf, cbBuf, NULL); +} +RT_EXPORT_SYMBOL(RTLdrQueryProp); + + +RTDECL(int) RTLdrQueryPropEx(RTLDRMOD hLdrMod, RTLDRPROP enmProp, void *pvBits, void *pvBuf, size_t cbBuf, size_t *pcbRet) +{ + AssertMsgReturn(rtldrIsValid(hLdrMod), ("hLdrMod=%p\n", hLdrMod), RTLDRENDIAN_INVALID); + PRTLDRMODINTERNAL pMod = (PRTLDRMODINTERNAL)hLdrMod; + + AssertPtrNullReturn(pcbRet, VERR_INVALID_POINTER); + size_t cbRet; + if (!pcbRet) + pcbRet = &cbRet; + + /* + * Do some pre screening of the input + */ + switch (enmProp) + { + case RTLDRPROP_UUID: + *pcbRet = sizeof(RTUUID); + AssertReturn(cbBuf == sizeof(RTUUID), VERR_INVALID_PARAMETER); + break; + case RTLDRPROP_TIMESTAMP_SECONDS: + *pcbRet = sizeof(int64_t); + AssertReturn(cbBuf == sizeof(int32_t) || cbBuf == sizeof(int64_t), VERR_INVALID_PARAMETER); + break; + case RTLDRPROP_IS_SIGNED: + *pcbRet = sizeof(bool); + AssertReturn(cbBuf == sizeof(bool), VERR_INVALID_PARAMETER); + break; + case RTLDRPROP_PKCS7_SIGNED_DATA: + *pcbRet = 0; + break; + case RTLDRPROP_SIGNATURE_CHECKS_ENFORCED: + *pcbRet = sizeof(bool); + AssertReturn(cbBuf == sizeof(bool), VERR_INVALID_PARAMETER); + break; + case RTLDRPROP_IMPORT_COUNT: + *pcbRet = sizeof(uint32_t); + AssertReturn(cbBuf == sizeof(uint32_t), VERR_INVALID_PARAMETER); + break; + case RTLDRPROP_IMPORT_MODULE: + *pcbRet = sizeof(uint32_t); + AssertReturn(cbBuf >= sizeof(uint32_t), VERR_INVALID_PARAMETER); + break; + + default: + AssertFailedReturn(VERR_INVALID_FUNCTION); + } + AssertPtrReturn(pvBuf, VERR_INVALID_POINTER); + + /* + * Call the image specific worker, if there is one. + */ + if (!pMod->pOps->pfnQueryProp) + return VERR_NOT_SUPPORTED; + return pMod->pOps->pfnQueryProp(pMod, enmProp, pvBits, pvBuf, cbBuf, pcbRet); +} +RT_EXPORT_SYMBOL(RTLdrQueryPropEx); + + +RTDECL(int) RTLdrVerifySignature(RTLDRMOD hLdrMod, PFNRTLDRVALIDATESIGNEDDATA pfnCallback, void *pvUser, PRTERRINFO pErrInfo) +{ + AssertMsgReturn(rtldrIsValid(hLdrMod), ("hLdrMod=%p\n", hLdrMod), VERR_INVALID_HANDLE); + PRTLDRMODINTERNAL pMod = (PRTLDRMODINTERNAL)hLdrMod; + AssertPtrReturn(pfnCallback, VERR_INVALID_POINTER); + + /* + * Call the image specific worker, if there is one. + */ + if (!pMod->pOps->pfnVerifySignature) + return VERR_NOT_SUPPORTED; + return pMod->pOps->pfnVerifySignature(pMod, pfnCallback, pvUser, pErrInfo); +} +RT_EXPORT_SYMBOL(RTLdrVerifySignature); + + +RTDECL(int) RTLdrHashImage(RTLDRMOD hLdrMod, RTDIGESTTYPE enmDigest, char *pszDigest, size_t cbDigest) +{ + AssertMsgReturn(rtldrIsValid(hLdrMod), ("hLdrMod=%p\n", hLdrMod), VERR_INVALID_HANDLE); + PRTLDRMODINTERNAL pMod = (PRTLDRMODINTERNAL)hLdrMod; + + /* + * Make sure there is sufficient space for the wanted digest and that + * it's supported. + */ + switch (enmDigest) + { + case RTDIGESTTYPE_MD5: AssertReturn(cbDigest >= RTMD5_DIGEST_LEN + 1, VERR_BUFFER_OVERFLOW); break; + case RTDIGESTTYPE_SHA1: AssertReturn(cbDigest >= RTSHA1_DIGEST_LEN + 1, VERR_BUFFER_OVERFLOW); break; + case RTDIGESTTYPE_SHA256: AssertReturn(cbDigest >= RTSHA256_DIGEST_LEN + 1, VERR_BUFFER_OVERFLOW); break; + case RTDIGESTTYPE_SHA512: AssertReturn(cbDigest >= RTSHA512_DIGEST_LEN + 1, VERR_BUFFER_OVERFLOW); break; + default: + if (enmDigest > RTDIGESTTYPE_INVALID && enmDigest < RTDIGESTTYPE_END) + return VERR_NOT_SUPPORTED; + AssertFailedReturn(VERR_INVALID_PARAMETER); + } + AssertPtrReturn(pszDigest, VERR_INVALID_POINTER); + + /* + * Call the image specific worker, if there is one. + */ + if (!pMod->pOps->pfnHashImage) + return VERR_NOT_SUPPORTED; + return pMod->pOps->pfnHashImage(pMod, enmDigest, pszDigest, cbDigest); +} +RT_EXPORT_SYMBOL(RTLdrHashImage); + + diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Runtime/common/ldr/ldrFile.cpp virtualbox-4.1.44-dfsg/src/VBox/Runtime/common/ldr/ldrFile.cpp --- virtualbox-4.1.12-dfsg/src/VBox/Runtime/common/ldr/ldrFile.cpp 2012-04-02 13:29:00.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Runtime/common/ldr/ldrFile.cpp 2015-11-11 15:09:01.000000000 +0000 @@ -216,6 +216,7 @@ rc = RTFileGetSize(pFileReader->hFile, (uint64_t *)&pFileReader->cbFile); if (RT_SUCCESS(rc)) { + pFileReader->Core.uMagic = RTLDRREADER_MAGIC; pFileReader->Core.pfnRead = rtldrFileRead; pFileReader->Core.pfnTell = rtldrFileTell; pFileReader->Core.pfnSize = rtldrFileSize; @@ -252,29 +253,17 @@ { LogFlow(("RTLdrOpen: pszFilename=%p:{%s} fFlags=%#x enmArch=%d phLdrMod=%p\n", pszFilename, pszFilename, fFlags, enmArch, phLdrMod)); - AssertMsgReturn(!fFlags, ("%#x\n", fFlags), VERR_INVALID_PARAMETER); + AssertMsgReturn(!(fFlags & ~RTLDR_O_VALID_MASK), ("%#x\n", fFlags), VERR_INVALID_PARAMETER); AssertMsgReturn(enmArch > RTLDRARCH_INVALID && enmArch < RTLDRARCH_END, ("%d\n", enmArch), VERR_INVALID_PARAMETER); /* - * Resolve RTLDRARCH_HOST. - */ - if (enmArch == RTLDRARCH_HOST) -#if defined(RT_ARCH_AMD64) - enmArch = RTLDRARCH_AMD64; -#elif defined(RT_ARCH_X86) - enmArch = RTLDRARCH_X86_32; -#else - enmArch = RTLDRARCH_WHATEVER; -#endif - - /* * Create file reader & invoke worker which identifies and calls the image interpreter. */ PRTLDRREADER pReader; int rc = rtldrFileCreate(&pReader, pszFilename); if (RT_SUCCESS(rc)) { - rc = rtldrOpenWithReader(pReader, fFlags, enmArch, phLdrMod); + rc = RTLdrOpenWithReader(pReader, fFlags, enmArch, phLdrMod, NULL); if (RT_SUCCESS(rc)) { LogFlow(("RTLdrOpen: return %Rrc *phLdrMod\n", rc, *phLdrMod)); @@ -304,18 +293,7 @@ #ifdef LDR_WITH_KLDR LogFlow(("RTLdrOpenkLdr: pszFilename=%p:{%s} fFlags=%#x enmArch=%d phLdrMod=%p\n", pszFilename, pszFilename, fFlags, enmArch, phLdrMod)); - - /* - * Resolve RTLDRARCH_HOST. - */ - if (enmArch == RTLDRARCH_HOST) -# if defined(RT_ARCH_AMD64) - enmArch = RTLDRARCH_AMD64; -# elif defined(RT_ARCH_X86) - enmArch = RTLDRARCH_X86_32; -# else - enmArch = RTLDRARCH_WHATEVER; -# endif + AssertMsgReturn(!(fFlags & ~RTLDR_O_VALID_MASK), ("%#x\n", fFlags), VERR_INVALID_PARAMETER); /* * Create file reader & invoke worker which identifies and calls the image interpreter. @@ -324,7 +302,7 @@ int rc = rtldrFileCreate(&pReader, pszFilename); if (RT_SUCCESS(rc)) { - rc = rtldrkLdrOpen(pReader, fFlags, enmArch, phLdrMod); + rc = rtldrkLdrOpen(pReader, fFlags, enmArch, phLdrMod, NULL); if (RT_SUCCESS(rc)) { LogFlow(("RTLdrOpenkLdr: return %Rrc *phLdrMod\n", rc, *phLdrMod)); diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Runtime/common/ldr/ldrkStuff.cpp virtualbox-4.1.44-dfsg/src/VBox/Runtime/common/ldr/ldrkStuff.cpp --- virtualbox-4.1.12-dfsg/src/VBox/Runtime/common/ldr/ldrkStuff.cpp 2012-04-02 13:29:00.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Runtime/common/ldr/ldrkStuff.cpp 2015-11-11 15:09:01.000000000 +0000 @@ -118,23 +118,12 @@ static void rtkldrRdrDone( PKRDR pRdr); -static DECLCALLBACK(int) rtkldrClose(PRTLDRMODINTERNAL pMod); -static DECLCALLBACK(int) rtkldrDone(PRTLDRMODINTERNAL pMod); -static DECLCALLBACK(int) rtkldrEnumSymbols(PRTLDRMODINTERNAL pMod, unsigned fFlags, const void *pvBits, - RTUINTPTR BaseAddress,PFNRTLDRENUMSYMS pfnCallback, void *pvUser); -static int rtkldrEnumSymbolsWrapper(PKLDRMOD pMod, uint32_t iSymbol, - const char *pchSymbol, KSIZE cchSymbol, const char *pszVersion, - KLDRADDR uValue, uint32_t fKind, void *pvUser); -static DECLCALLBACK(size_t) rtkldrGetImageSize(PRTLDRMODINTERNAL pMod); -static DECLCALLBACK(int) rtkldrGetBits(PRTLDRMODINTERNAL pMod, void *pvBits, RTUINTPTR BaseAddress, - PFNRTLDRIMPORT pfnGetImport, void *pvUser); -static DECLCALLBACK(int) rtkldrRelocate(PRTLDRMODINTERNAL pMod, void *pvBits, RTUINTPTR NewBaseAddress, - RTUINTPTR OldBaseAddress, PFNRTLDRIMPORT pfnGetImport, void *pvUser); -static int rtkldrGetImportWrapper(PKLDRMOD pMod, uint32_t iImport, uint32_t iSymbol, const char *pchSymbol, KSIZE cchSymbol, - const char *pszVersion, PKLDRADDR puValue, uint32_t *pfKind, void *pvUser); +static int rtkldr_EnumSymbolsWrapper(PKLDRMOD pMod, uint32_t iSymbol, + const char *pchSymbol, KSIZE cchSymbol, const char *pszVersion, + KLDRADDR uValue, uint32_t fKind, void *pvUser); +static int rtkldr_GetImportWrapper(PKLDRMOD pMod, uint32_t iImport, uint32_t iSymbol, const char *pchSymbol, KSIZE cchSymbol, + const char *pszVersion, PKLDRADDR puValue, uint32_t *pfKind, void *pvUser); -static DECLCALLBACK(int) rtkldrGetSymbolEx(PRTLDRMODINTERNAL pMod, const void *pvBits, RTUINTPTR BaseAddress, - const char *pszSymbol, RTUINTPTR *pValue); @@ -150,6 +139,7 @@ case KERR_INVALID_PARAMETER: return VERR_INVALID_PARAMETER; case KERR_INVALID_HANDLE: return VERR_INVALID_HANDLE; case KERR_NO_MEMORY: return VERR_NO_MEMORY; + case KLDR_ERR_CPU_ARCH_MISMATCH: return VERR_LDR_ARCH_MISMATCH; case KLDR_ERR_UNKNOWN_FORMAT: @@ -190,7 +180,7 @@ case KRDR_ERR_TOO_MANY_MAPPINGS: case KLDR_ERR_NOT_DLL: case KLDR_ERR_NOT_EXE: - AssertMsgFailedReturn(("krc=%d (%#x): %s\n", krc, krc, kErrName(krc)), VERR_GENERAL_FAILURE); + AssertMsgFailedReturn(("krc=%d (%#x): %s\n", krc, krc, kErrName(krc)), VERR_LDR_GENERAL_FAILURE); case KLDR_ERR_PE_UNSUPPORTED_MACHINE: @@ -201,7 +191,7 @@ case KLDR_ERR_PE_FORWARDER_IMPORT_NOT_FOUND: case KLDR_ERR_PE_BAD_FIXUP: case KLDR_ERR_PE_BAD_IMPORT: - AssertMsgFailedReturn(("krc=%d (%#x): %s\n", krc, krc, kErrName(krc)), VERR_GENERAL_FAILURE); + AssertMsgFailedReturn(("krc=%d (%#x): %s\n", krc, krc, kErrName(krc)), VERR_LDR_GENERAL_FAILURE); case KLDR_ERR_LX_BAD_HEADER: case KLDR_ERR_LX_BAD_LOADER_SECTION: @@ -215,11 +205,11 @@ case KLDR_ERR_LX_BAD_SONAME: case KLDR_ERR_LX_BAD_FORWARDER: case KLDR_ERR_LX_NRICHAIN_NOT_SUPPORTED: - AssertMsgFailedReturn(("krc=%d (%#x): %s\n", krc, krc, kErrName(krc)), VERR_GENERAL_FAILURE); + AssertMsgFailedReturn(("krc=%d (%#x): %s\n", krc, krc, kErrName(krc)), VERR_LDR_GENERAL_FAILURE); + case KLDR_ERR_MACHO_UNSUPPORTED_FILE_TYPE: return VERR_LDR_GENERAL_FAILURE; case KLDR_ERR_MACHO_OTHER_ENDIAN_NOT_SUPPORTED: case KLDR_ERR_MACHO_BAD_HEADER: - case KLDR_ERR_MACHO_UNSUPPORTED_FILE_TYPE: case KLDR_ERR_MACHO_UNSUPPORTED_MACHINE: case KLDR_ERR_MACHO_BAD_LOAD_COMMAND: case KLDR_ERR_MACHO_UNKNOWN_LOAD_COMMAND: @@ -236,7 +226,7 @@ case KLDR_ERR_MACHO_BAD_OBJECT_FILE: case KLDR_ERR_MACHO_BAD_SYMBOL: case KLDR_ERR_MACHO_UNSUPPORTED_FIXUP_TYPE: - AssertMsgFailedReturn(("krc=%d (%#x): %s\n", krc, krc, kErrName(krc)), VERR_GENERAL_FAILURE); + AssertMsgFailedReturn(("krc=%d (%#x): %s\n", krc, krc, kErrName(krc)), VERR_LDR_GENERAL_FAILURE); default: if (RT_FAILURE(krc)) @@ -426,27 +416,9 @@ -/** - * Operations for a kLdr module. - */ -static const RTLDROPS g_rtkldrOps = -{ - "kLdr", - rtkldrClose, - NULL, - rtkldrDone, - rtkldrEnumSymbols, - /* ext */ - rtkldrGetImageSize, - rtkldrGetBits, - rtkldrRelocate, - rtkldrGetSymbolEx, - 42 -}; - /** @copydoc RTLDROPS::pfnClose */ -static DECLCALLBACK(int) rtkldrClose(PRTLDRMODINTERNAL pMod) +static DECLCALLBACK(int) rtkldr_Close(PRTLDRMODINTERNAL pMod) { PKLDRMOD pModkLdr = ((PRTLDRMODKLDR)pMod)->pMod; int rc = kLdrModClose(pModkLdr); @@ -455,7 +427,7 @@ /** @copydoc RTLDROPS::pfnDone */ -static DECLCALLBACK(int) rtkldrDone(PRTLDRMODINTERNAL pMod) +static DECLCALLBACK(int) rtkldr_Done(PRTLDRMODINTERNAL pMod) { PKLDRMOD pModkLdr = ((PRTLDRMODKLDR)pMod)->pMod; int rc = kLdrModMostlyDone(pModkLdr); @@ -464,8 +436,8 @@ /** @copydoc RTLDROPS::pfnEnumSymbols */ -static DECLCALLBACK(int) rtkldrEnumSymbols(PRTLDRMODINTERNAL pMod, unsigned fFlags, const void *pvBits, RTUINTPTR BaseAddress, - PFNRTLDRENUMSYMS pfnCallback, void *pvUser) +static DECLCALLBACK(int) rtkldr_EnumSymbols(PRTLDRMODINTERNAL pMod, unsigned fFlags, const void *pvBits, RTUINTPTR BaseAddress, + PFNRTLDRENUMSYMS pfnCallback, void *pvUser) { PKLDRMOD pModkLdr = ((PRTLDRMODKLDR)pMod)->pMod; RTLDRMODKLDRARGS Args; @@ -475,15 +447,15 @@ Args.pvBits = pvBits; int rc = kLdrModEnumSymbols(pModkLdr, pvBits, BaseAddress, fFlags & RTLDR_ENUM_SYMBOL_FLAGS_ALL ? KLDRMOD_ENUM_SYMS_FLAGS_ALL : 0, - rtkldrEnumSymbolsWrapper, &Args); + rtkldr_EnumSymbolsWrapper, &Args); return rtkldrConvertError(rc); } /** @copydoc FNKLDRMODENUMSYMS */ -static int rtkldrEnumSymbolsWrapper(PKLDRMOD pMod, uint32_t iSymbol, - const char *pchSymbol, KSIZE cchSymbol, const char *pszVersion, - KLDRADDR uValue, uint32_t fKind, void *pvUser) +static int rtkldr_EnumSymbolsWrapper(PKLDRMOD pMod, uint32_t iSymbol, + const char *pchSymbol, KSIZE cchSymbol, const char *pszVersion, + KLDRADDR uValue, uint32_t fKind, void *pvUser) { PRTLDRMODKLDRARGS pArgs = (PRTLDRMODKLDRARGS)pvUser; @@ -511,7 +483,7 @@ /** @copydoc RTLDROPS::pfnGetImageSize */ -static DECLCALLBACK(size_t) rtkldrGetImageSize(PRTLDRMODINTERNAL pMod) +static DECLCALLBACK(size_t) rtkldr_GetImageSize(PRTLDRMODINTERNAL pMod) { PKLDRMOD pModkLdr = ((PRTLDRMODKLDR)pMod)->pMod; return kLdrModSize(pModkLdr); @@ -519,8 +491,8 @@ /** @copydoc RTLDROPS::pfnGetBits */ -static DECLCALLBACK(int) rtkldrGetBits(PRTLDRMODINTERNAL pMod, void *pvBits, RTUINTPTR BaseAddress, - PFNRTLDRIMPORT pfnGetImport, void *pvUser) +static DECLCALLBACK(int) rtkldr_GetBits(PRTLDRMODINTERNAL pMod, void *pvBits, RTUINTPTR BaseAddress, + PFNRTLDRIMPORT pfnGetImport, void *pvUser) { PKLDRMOD pModkLdr = ((PRTLDRMODKLDR)pMod)->pMod; RTLDRMODKLDRARGS Args; @@ -528,14 +500,14 @@ Args.u.pfnGetImport = pfnGetImport; Args.pMod = (PRTLDRMODKLDR)pMod; Args.pvBits = pvBits; - int rc = kLdrModGetBits(pModkLdr, pvBits, BaseAddress, rtkldrGetImportWrapper, &Args); + int rc = kLdrModGetBits(pModkLdr, pvBits, BaseAddress, rtkldr_GetImportWrapper, &Args); return rtkldrConvertError(rc); } /** @copydoc RTLDROPS::pfnRelocate */ -static DECLCALLBACK(int) rtkldrRelocate(PRTLDRMODINTERNAL pMod, void *pvBits, RTUINTPTR NewBaseAddress, - RTUINTPTR OldBaseAddress, PFNRTLDRIMPORT pfnGetImport, void *pvUser) +static DECLCALLBACK(int) rtkldr_Relocate(PRTLDRMODINTERNAL pMod, void *pvBits, RTUINTPTR NewBaseAddress, + RTUINTPTR OldBaseAddress, PFNRTLDRIMPORT pfnGetImport, void *pvUser) { PKLDRMOD pModkLdr = ((PRTLDRMODKLDR)pMod)->pMod; RTLDRMODKLDRARGS Args; @@ -543,14 +515,14 @@ Args.u.pfnGetImport = pfnGetImport; Args.pMod = (PRTLDRMODKLDR)pMod; Args.pvBits = pvBits; - int rc = kLdrModRelocateBits(pModkLdr, pvBits, NewBaseAddress, OldBaseAddress, rtkldrGetImportWrapper, &Args); + int rc = kLdrModRelocateBits(pModkLdr, pvBits, NewBaseAddress, OldBaseAddress, rtkldr_GetImportWrapper, &Args); return rtkldrConvertError(rc); } /** @copydoc FNKLDRMODGETIMPORT */ -static int rtkldrGetImportWrapper(PKLDRMOD pMod, uint32_t iImport, uint32_t iSymbol, const char *pchSymbol, KSIZE cchSymbol, - const char *pszVersion, PKLDRADDR puValue, uint32_t *pfKind, void *pvUser) +static int rtkldr_GetImportWrapper(PKLDRMOD pMod, uint32_t iImport, uint32_t iSymbol, const char *pchSymbol, KSIZE cchSymbol, + const char *pszVersion, PKLDRADDR puValue, uint32_t *pfKind, void *pvUser) { PRTLDRMODKLDRARGS pArgs = (PRTLDRMODKLDRARGS)pvUser; @@ -595,8 +567,8 @@ /** @copydoc RTLDROPS::pfnGetSymbolEx */ -static DECLCALLBACK(int) rtkldrGetSymbolEx(PRTLDRMODINTERNAL pMod, const void *pvBits, RTUINTPTR BaseAddress, - const char *pszSymbol, RTUINTPTR *pValue) +static DECLCALLBACK(int) rtkldr_GetSymbolEx(PRTLDRMODINTERNAL pMod, const void *pvBits, RTUINTPTR BaseAddress, + uint32_t iOrdinal, const char *pszSymbol, RTUINTPTR *pValue) { PKLDRMOD pModkLdr = ((PRTLDRMODKLDR)pMod)->pMod; KLDRADDR uValue; @@ -616,8 +588,10 @@ #endif int rc = kLdrModQuerySymbol(pModkLdr, pvBits, BaseAddress, - NIL_KLDRMOD_SYM_ORDINAL, pszSymbol, strlen(pszSymbol), NULL, - NULL, NULL, &uValue, NULL); + iOrdinal == UINT32_MAX ? NIL_KLDRMOD_SYM_ORDINAL : iOrdinal, + pszSymbol, strlen(pszSymbol), NULL, + NULL, NULL, + &uValue, NULL); if (!rc) { *pValue = uValue; @@ -628,6 +602,55 @@ +/** @interface_method_impl{RTLDROPS,pfnQueryProp} */ +static DECLCALLBACK(int) rtkldr_QueryProp(PRTLDRMODINTERNAL pMod, RTLDRPROP enmProp, void const *pvBits, + void *pvBuf, size_t cbBuf, size_t *pcbRet) +{ + PRTLDRMODKLDR pThis = (PRTLDRMODKLDR)pMod; +#if 0 + int rc; +#endif + switch (enmProp) + { + case RTLDRPROP_UUID: +#if 0 /* Requires neewer kStuff version. */ + rc = kLdrModQueryImageUuid(pThis->pMod, /*pvBits*/ NULL, (uint8_t *)pvBuf, cbBuf); + if (rc == KLDR_ERR_NO_IMAGE_UUID) + return VERR_NOT_FOUND; + AssertReturn(rc == 0, VERR_INVALID_PARAMETER); + break; +#endif + + default: + return VERR_NOT_FOUND; + } + return VINF_SUCCESS; +} + + +/** + * Operations for a kLdr module. + */ +static const RTLDROPS g_rtkldrOps = +{ + "kLdr", + rtkldr_Close, + NULL, + rtkldr_Done, + rtkldr_EnumSymbols, + /* ext */ + rtkldr_GetImageSize, + rtkldr_GetBits, + rtkldr_Relocate, + rtkldr_GetSymbolEx, + NULL /*pfnQueryForwarderInfo*/, + rtkldr_QueryProp, + NULL, + NULL, + 42 +}; + + /** * Open a image using kLdr. * @@ -636,8 +659,9 @@ * @param fFlags Reserved, MBZ. * @param enmArch CPU architecture specifier for the image to be loaded. * @param phLdrMod Where to store the handle. + * @param pErrInfo Where to return extended error information. Optional. */ -int rtldrkLdrOpen(PRTLDRREADER pReader, uint32_t fFlags, RTLDRARCH enmArch, PRTLDRMOD phLdrMod) +int rtldrkLdrOpen(PRTLDRREADER pReader, uint32_t fFlags, RTLDRARCH enmArch, PRTLDRMOD phLdrMod, PRTERRINFO pErrInfo) { /* Convert enmArch to k-speak. */ KCPUARCH enmCpuArch; @@ -655,6 +679,11 @@ default: return VERR_INVALID_PARAMETER; } + KU32 fKFlags = 0; +#ifdef KLDRMOD_OPEN_FLAGS_FOR_INFO + if (fFlags & RTLDR_O_FOR_DEBUG) + fKFlags |= KLDRMOD_OPEN_FLAGS_FOR_INFO; +#endif /* Create a rtkldrRdr instance. */ PRTKLDRRDR pRdr = (PRTKLDRRDR)RTMemAllocZ(sizeof(*pRdr)); @@ -666,7 +695,7 @@ /* Try open it. */ PKLDRMOD pMod; - int krc = kLdrModOpenFromRdr(&pRdr->Core, fFlags, enmCpuArch, &pMod); + int krc = kLdrModOpenFromRdr(&pRdr->Core, fKFlags, enmCpuArch, &pMod); if (!krc) { /* Create a module wrapper for it. */ diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Runtime/common/ldr/ldrNative.cpp virtualbox-4.1.44-dfsg/src/VBox/Runtime/common/ldr/ldrNative.cpp --- virtualbox-4.1.12-dfsg/src/VBox/Runtime/common/ldr/ldrNative.cpp 2012-04-02 13:29:00.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Runtime/common/ldr/ldrNative.cpp 2015-11-11 15:09:01.000000000 +0000 @@ -4,7 +4,7 @@ */ /* - * Copyright (C) 2006-2007 Oracle Corporation + * Copyright (C) 2006-2013 Oracle Corporation * * This file is part of VirtualBox Open Source Edition (OSE), as * available from http://www.virtualbox.org. This file is free software; @@ -60,7 +60,7 @@ /** * Operations for a native module. */ -static const RTLDROPS s_rtldrNativeOps = +static const RTLDROPS g_rtldrNativeOps = { "native", rtldrNativeClose, @@ -72,6 +72,10 @@ NULL, NULL, NULL, + NULL /*pfnQueryForwarderInfo*/, + NULL, + NULL, + NULL, 42 }; @@ -121,8 +125,9 @@ { pMod->Core.u32Magic = RTLDRMOD_MAGIC; pMod->Core.eState = LDR_STATE_LOADED; - pMod->Core.pOps = &s_rtldrNativeOps; + pMod->Core.pOps = &g_rtldrNativeOps; pMod->hNative = ~(uintptr_t)0; + pMod->fFlags = fFlags; /* * Attempt to open the module. @@ -146,6 +151,54 @@ RT_EXPORT_SYMBOL(RTLdrLoadEx); +RTDECL(int) RTLdrLoadSystem(const char *pszFilename, bool fNoUnload, PRTLDRMOD phLdrMod) +{ + LogFlow(("RTLdrLoadSystem: pszFilename=%p:{%s} fNoUnload=%RTbool phLdrMod=%p\n", + pszFilename, pszFilename, fNoUnload, phLdrMod)); + + /* + * Validate input. + */ + AssertPtrReturn(phLdrMod, VERR_INVALID_PARAMETER); + *phLdrMod = NIL_RTLDRMOD; + AssertPtrReturn(pszFilename, VERR_INVALID_PARAMETER); + AssertMsgReturn(!RTPathHavePath(pszFilename), ("%s\n", pszFilename), VERR_INVALID_PARAMETER); + + /* + * Check the filename. + */ + size_t cchFilename = strlen(pszFilename); + AssertMsgReturn(cchFilename < (RTPATH_MAX / 4) * 3, ("%zu\n", cchFilename), VERR_INVALID_PARAMETER); + + const char *pszExt = ""; + if (!RTPathHaveExt(pszFilename)) + pszExt = RTLdrGetSuff(); + + /* + * Let the platform specific code do the rest. + */ + int rc = rtldrNativeLoadSystem(pszFilename, pszExt, fNoUnload ? RTLDRLOAD_FLAGS_NO_UNLOAD : 0, phLdrMod); + LogFlow(("RTLdrLoadSystem: returns %Rrc\n", rc)); + return rc; +} + + +RTDECL(void *) RTLdrGetSystemSymbol(const char *pszFilename, const char *pszSymbol) +{ + void *pvRet = NULL; + RTLDRMOD hLdrMod; + int rc = RTLdrLoadSystem(pszFilename, true /*fNoUnload*/, &hLdrMod); + if (RT_SUCCESS(rc)) + { + rc = RTLdrGetSymbol(hLdrMod, pszSymbol, &pvRet); + if (RT_FAILURE(rc)) + pvRet = NULL; /* paranoia */ + RTLdrClose(hLdrMod); + } + return pvRet; +} + + /** * Loads a dynamic load library (/shared object) image file residing in the * RTPathAppPrivateArch() directory. @@ -233,3 +286,31 @@ } RT_EXPORT_SYMBOL(RTLdrGetSuff); + +RTDECL(uintptr_t) RTLdrGetNativeHandle(RTLDRMOD hLdrMod) +{ + PRTLDRMODNATIVE pThis = (PRTLDRMODNATIVE)hLdrMod; + AssertPtrReturn(pThis, ~(uintptr_t)0); + AssertReturn(pThis->Core.u32Magic == RTLDRMOD_MAGIC, ~(uintptr_t)0); + AssertReturn(pThis->Core.pOps == &g_rtldrNativeOps, ~(uintptr_t)0); + return pThis->hNative; +} +RT_EXPORT_SYMBOL(RTLdrGetNativeHandle); + + +RTDECL(bool) RTLdrIsLoadable(const char *pszFilename) +{ + /* + * Try to load the library. + */ + RTLDRMOD hLib; + int rc = RTLdrLoad(pszFilename, &hLib); + if (RT_SUCCESS(rc)) + { + RTLdrClose(hLib); + return true; + } + return false; +} +RT_EXPORT_SYMBOL(RTLdrIsLoadable); + diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Runtime/common/ldr/ldrPE.cpp virtualbox-4.1.44-dfsg/src/VBox/Runtime/common/ldr/ldrPE.cpp --- virtualbox-4.1.12-dfsg/src/VBox/Runtime/common/ldr/ldrPE.cpp 2012-04-02 13:29:00.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Runtime/common/ldr/ldrPE.cpp 2015-11-11 15:09:01.000000000 +0000 @@ -32,11 +32,21 @@ #include #include "internal/iprt.h" -#include #include +#include +#include #include +#include +#include +#include +#include #include -#include +#ifndef IPRT_WITHOUT_LDR_VERIFY +#include +# include +# include +# include +#endif #include "internal/ldrPE.h" #include "internal/ldr.h" @@ -51,6 +61,13 @@ */ #define PE_RVA2TYPE(pvBits, rva, type) ((type) ((uintptr_t)pvBits + (uintptr_t)(rva)) ) +/** The max size of the security directory. */ +#ifdef IN_RING3 +# define RTLDRMODPE_MAX_SECURITY_DIR_SIZE _4M +#else +# define RTLDRMODPE_MAX_SECURITY_DIR_SIZE _1M +#endif + /******************************************************************************* * Structures and Typedefs * @@ -69,6 +86,8 @@ void *pvBits; /** The offset of the NT headers. */ RTFOFF offNtHdrs; + /** The offset of the first byte after the section table. */ + RTFOFF offEndOfHdrs; /** The machine type (IMAGE_FILE_HEADER::Machine). */ uint16_t u16Machine; @@ -87,13 +106,34 @@ uint32_t cbImage; /** Size of the header (IMAGE_OPTIONAL_HEADER32::SizeOfHeaders). */ uint32_t cbHeaders; + /** The image timestamp. */ + uint32_t uTimestamp; + /** The number of imports. UINT32_MAX if not determined. */ + uint32_t cImports; + /** Set if the image is 64-bit, clear if 32-bit. */ + bool f64Bit; /** The import data directory entry. */ IMAGE_DATA_DIRECTORY ImportDir; /** The base relocation data directory entry. */ IMAGE_DATA_DIRECTORY RelocDir; /** The export data directory entry. */ IMAGE_DATA_DIRECTORY ExportDir; -} RTLDRMODPE, *PRTLDRMODPE; + /** The debug directory entry. */ + IMAGE_DATA_DIRECTORY DebugDir; + /** The security directory entry. */ + IMAGE_DATA_DIRECTORY SecurityDir; + + /** Offset of the first PKCS \#7 SignedData signature if present. */ + uint32_t offPkcs7SignedData; + /** Size of the first PKCS \#7 SignedData. */ + uint32_t cbPkcs7SignedData; + + /** Copy of the optional header field DllCharacteristics. */ + uint16_t fDllCharacteristics; +} RTLDRMODPE; +/** Pointer to the instance data for a PE loader module. */ +typedef RTLDRMODPE *PRTLDRMODPE; + /** * PE Loader module operations. @@ -125,6 +165,79 @@ } RTLDROPSPE, *PRTLDROPSPE; +/** + * PE hash context union. + */ +typedef union RTLDRPEHASHCTXUNION +{ + RTSHA512CONTEXT Sha512; + RTSHA256CONTEXT Sha256; + RTSHA1CONTEXT Sha1; + RTMD5CONTEXT Md5; +} RTLDRPEHASHCTXUNION; +/** Pointer to a PE hash context union. */ +typedef RTLDRPEHASHCTXUNION *PRTLDRPEHASHCTXUNION; + + +/** + * PE hash digests + */ +typedef union RTLDRPEHASHRESUNION +{ + uint8_t abSha512[RTSHA512_HASH_SIZE]; + uint8_t abSha256[RTSHA256_HASH_SIZE]; + uint8_t abSha1[RTSHA1_HASH_SIZE]; + uint8_t abMd5[RTMD5_HASH_SIZE]; +} RTLDRPEHASHRESUNION; +/** Pointer to a PE hash work set. */ +typedef RTLDRPEHASHRESUNION *PRTLDRPEHASHRESUNION; + +/** + * Special places to watch out for when hashing a PE image. + */ +typedef struct RTLDRPEHASHSPECIALS +{ + uint32_t cbToHash; + uint32_t offCksum; + uint32_t cbCksum; + uint32_t offSecDir; + uint32_t cbSecDir; + uint32_t offEndSpecial; +} RTLDRPEHASHSPECIALS; +/** Pointer to the structure with the special hash places. */ +typedef RTLDRPEHASHSPECIALS *PRTLDRPEHASHSPECIALS; + + +#ifndef IPRT_WITHOUT_LDR_VERIFY +/** + * Parsed signature data. + */ +typedef struct RTLDRPESIGNATURE +{ + /** The outer content info wrapper. */ + RTCRPKCS7CONTENTINFO ContentInfo; + /** Pointer to the decoded SignedData inside the ContentInfo member. */ + PRTCRPKCS7SIGNEDDATA pSignedData; + /** Pointer to the indirect data content. */ + PRTCRSPCINDIRECTDATACONTENT pIndData; + /** The digest type employed by the signature. */ + RTDIGESTTYPE enmDigest; + + /** Pointer to the raw signatures. This is allocated in the continuation of + * this structure to keep things simple. The size is given by the security + * export directory. */ + WIN_CERTIFICATE const *pRawData; + + /** Hash scratch data. */ + RTLDRPEHASHCTXUNION HashCtx; + /** Hash result. */ + RTLDRPEHASHRESUNION HashRes; +} RTLDRPESIGNATURE; +/** Pointed to SigneData parsing stat and output. */ +typedef RTLDRPESIGNATURE *PRTLDRPESIGNATURE; +#endif + + /******************************************************************************* * Internal Functions * *******************************************************************************/ @@ -133,6 +246,232 @@ static int rtldrPEApplyFixups(PRTLDRMODPE pModPe, const void *pvBitsR, void *pvBitsW, RTUINTPTR BaseAddress, RTUINTPTR OldBaseAddress); + +/** + * Reads a section of a PE image given by RVA + size, using mapped bits if + * available or allocating heap memory and reading from the file. + * + * @returns IPRT status code. + * @param pThis Pointer to the PE loader module structure. + * @param pvBits Read only bits if available. NULL if not. + * @param uRva The RVA to read at. + * @param cbMem The number of bytes to read. + * @param ppvMem Where to return the memory on success (heap or + * inside pvBits). + */ +static int rtldrPEReadPartByRva(PRTLDRMODPE pThis, const void *pvBits, uint32_t uRva, uint32_t cbMem, void const **ppvMem) +{ + *ppvMem = NULL; + if (!cbMem) + return VINF_SUCCESS; + + /* + * Use bits if we've got some. + */ + if (pvBits) + { + *ppvMem = (uint8_t const *)pvBits + uRva; + return VINF_SUCCESS; + } + if (pThis->pvBits) + { + *ppvMem = (uint8_t const *)pThis->pvBits + uRva; + return VINF_SUCCESS; + } + + /* + * Allocate a buffer and read the bits from the file (or whatever). + */ + if (!pThis->pReader) + return VERR_ACCESS_DENIED; + + uint8_t *pbMem = (uint8_t *)RTMemAllocZ(cbMem); + if (!pbMem) + return VERR_NO_MEMORY; + *ppvMem = pbMem; + + /* Do the reading on a per section base. */ + RTFOFF const cbFile = pThis->pReader->pfnSize(pThis->pReader); + for (;;) + { + /* Translate the RVA into a file offset. */ + uint32_t offFile = uRva; + uint32_t cbToRead = cbMem; + uint32_t cbToAdv = cbMem; + + if (uRva < pThis->paSections[0].VirtualAddress) + { + /* Special header section. */ + cbToRead = pThis->paSections[0].VirtualAddress - uRva; + if (cbToRead > cbMem) + cbToRead = cbMem; + cbToAdv = cbToRead; + + /* The following capping is an approximation. */ + uint32_t offFirstRawData = RT_ALIGN(pThis->cbHeaders, _4K); + if ( pThis->paSections[0].PointerToRawData > 0 + && pThis->paSections[0].SizeOfRawData > 0) + offFirstRawData = pThis->paSections[0].PointerToRawData; + if (offFile >= offFirstRawData) + cbToRead = 0; + else if (offFile + cbToRead > offFirstRawData) + cbToRead = offFile - offFirstRawData; + } + else + { + /* Find the matching section and its mapping size. */ + uint32_t j = 0; + uint32_t cbMapping = 0; + uint32_t offSection = 0; + while (j < pThis->cSections) + { + cbMapping = (j + 1 < pThis->cSections ? pThis->paSections[j + 1].VirtualAddress : pThis->cbImage) + - pThis->paSections[j].VirtualAddress; + offSection = uRva - pThis->paSections[j].VirtualAddress; + if (offSection < cbMapping) + break; + j++; + } + if (j >= cbMapping) + break; /* This shouldn't happen, just return zeros if it does. */ + + /* Adjust the sizes and calc the file offset. */ + if (offSection + cbToAdv > cbMapping) + cbToAdv = cbToRead = cbMapping - offSection; + + if ( pThis->paSections[j].PointerToRawData > 0 + && pThis->paSections[j].SizeOfRawData > 0) + { + offFile = offSection; + if (offFile + cbToRead > pThis->paSections[j].SizeOfRawData) + cbToRead = pThis->paSections[j].SizeOfRawData - offFile; + offFile += pThis->paSections[j].PointerToRawData; + } + else + { + offFile = UINT32_MAX; + cbToRead = 0; + } + } + + /* Perform the read after adjusting a little (paranoia). */ + if (offFile > cbFile) + cbToRead = 0; + if (cbToRead) + { + if ((RTFOFF)offFile + cbToRead > cbFile) + cbToRead = (uint32_t)(cbFile - (RTFOFF)offFile); + int rc = pThis->pReader->pfnRead(pThis->pReader, pbMem, cbToRead, offFile); + if (RT_FAILURE(rc)) + { + RTMemFree((void *)*ppvMem); + *ppvMem = NULL; + return rc; + } + } + + /* Advance */ + if (cbMem <= cbToAdv) + break; + cbMem -= cbToAdv; + pbMem += cbToAdv; + uRva += cbToAdv; + } + + return VINF_SUCCESS; +} + + +/** + * Reads a part of a PE file from the file and into a heap block. + * + * @returns IRPT status code. + * @param pThis Pointer to the PE loader module structure.. + * @param offFile The file offset. + * @param cbMem The number of bytes to read. + * @param ppvMem Where to return the heap block with the bytes on + * success. + */ +static int rtldrPEReadPartFromFile(PRTLDRMODPE pThis, uint32_t offFile, uint32_t cbMem, void const **ppvMem) +{ + *ppvMem = NULL; + if (!cbMem) + return VINF_SUCCESS; + + /* + * Allocate a buffer and read the bits from the file (or whatever). + */ + if (!pThis->pReader) + return VERR_ACCESS_DENIED; + + uint8_t *pbMem = (uint8_t *)RTMemAlloc(cbMem); + if (!pbMem) + return VERR_NO_MEMORY; + + int rc = pThis->pReader->pfnRead(pThis->pReader, pbMem, cbMem, offFile); + if (RT_FAILURE(rc)) + { + RTMemFree((void *)*ppvMem); + return rc; + } + + *ppvMem = pbMem; + return VINF_SUCCESS; +} + + +/** + * Reads a part of a PE image into memory one way or another. + * + * Either the RVA or the offFile must be valid. We'll prefer the RVA if + * possible. + * + * @returns IPRT status code. + * @param pThis Pointer to the PE loader module structure. + * @param pvBits Read only bits if available. NULL if not. + * @param uRva The RVA to read at. + * @param offFile The file offset. + * @param cbMem The number of bytes to read. + * @param ppvMem Where to return the memory on success (heap or + * inside pvBits). + */ +static int rtldrPEReadPart(PRTLDRMODPE pThis, const void *pvBits, RTFOFF offFile, RTLDRADDR uRva, + uint32_t cbMem, void const **ppvMem) +{ + if ( uRva == NIL_RTLDRADDR + || uRva > pThis->cbImage + || cbMem > pThis->cbImage + || uRva + cbMem > pThis->cbImage) + { + if (offFile < 0 || offFile >= UINT32_MAX) + return VERR_INVALID_PARAMETER; + return rtldrPEReadPartFromFile(pThis, (uint32_t)offFile, cbMem, ppvMem); + } + return rtldrPEReadPartByRva(pThis, pvBits, (uint32_t)uRva, cbMem, ppvMem); +} + + +/** + * Frees up memory returned by rtldrPEReadPart*. + * + * @param pThis Pointer to the PE loader module structure.. + * @param pvBits Read only bits if available. NULL if not.. + * @param pvMem The memory we were given by the reader method. + */ +static void rtldrPEFreePart(PRTLDRMODPE pThis, const void *pvBits, void const *pvMem) +{ + if (!pvMem) + return; + + if (pvBits && (uintptr_t)pvMem - (uintptr_t)pvBits < pThis->cbImage) + return; + if (pThis->pvBits && (uintptr_t)pvMem - (uintptr_t)pThis->pvBits < pThis->cbImage) + return; + + RTMemFree((void *)pvMem); +} + + /** @copydoc RTLDROPS::pfnGetImageSize */ static DECLCALLBACK(size_t) rtldrPEGetImageSize(PRTLDRMODINTERNAL pMod) { @@ -244,7 +583,8 @@ /* * Resolve imports. */ - rc = ((PRTLDROPSPE)pMod->pOps)->pfnResolveImports(pModPe, pvBits, pvBits, pfnGetImport, pvUser); + if (pfnGetImport) + rc = ((PRTLDROPSPE)pMod->pOps)->pfnResolveImports(pModPe, pvBits, pvBits, pfnGetImport, pvUser); if (RT_SUCCESS(rc)) { /* @@ -281,9 +621,11 @@ !rc && pImps->Name != 0 && pImps->FirstThunk != 0; pImps++) { + AssertReturn(pImps->Name < pModPe->cbImage, VERR_BAD_EXE_FORMAT); const char *pszModName = PE_RVA2TYPE(pvBitsR, pImps->Name, const char *); - PIMAGE_THUNK_DATA32 pFirstThunk; /* update this. */ - PIMAGE_THUNK_DATA32 pThunk; /* read from this. */ + AssertReturn(pImps->FirstThunk < pModPe->cbImage, VERR_BAD_EXE_FORMAT); + AssertReturn(pImps->u.OriginalFirstThunk < pModPe->cbImage, VERR_BAD_EXE_FORMAT); + Log3(("RTLdrPE: Import descriptor: %s\n", pszModName)); Log4(("RTLdrPE: OriginalFirstThunk = %#RX32\n" "RTLdrPE: TimeDateStamp = %#RX32\n" @@ -296,10 +638,10 @@ /* * Walk the thunks table(s). */ - pFirstThunk = PE_RVA2TYPE(pvBitsW, pImps->FirstThunk, PIMAGE_THUNK_DATA32); - pThunk = pImps->u.OriginalFirstThunk == 0 - ? PE_RVA2TYPE(pvBitsR, pImps->FirstThunk, PIMAGE_THUNK_DATA32) - : PE_RVA2TYPE(pvBitsR, pImps->u.OriginalFirstThunk, PIMAGE_THUNK_DATA32); + PIMAGE_THUNK_DATA32 pFirstThunk = PE_RVA2TYPE(pvBitsW, pImps->FirstThunk, PIMAGE_THUNK_DATA32); /* update this. */ + PIMAGE_THUNK_DATA32 pThunk = pImps->u.OriginalFirstThunk == 0 /* read from this. */ + ? PE_RVA2TYPE(pvBitsR, pImps->FirstThunk, PIMAGE_THUNK_DATA32) + : PE_RVA2TYPE(pvBitsR, pImps->u.OriginalFirstThunk, PIMAGE_THUNK_DATA32); while (!rc && pThunk->u1.Ordinal != 0) { RTUINTPTR Value = 0; @@ -322,7 +664,7 @@ AssertMsgFailed(("bad import data thunk!\n")); rc = VERR_BAD_EXE_FORMAT; } - pFirstThunk->u1.Function = Value; + pFirstThunk->u1.Function = (uint32_t)Value; if (pFirstThunk->u1.Function != Value) { AssertMsgFailed(("external symbol address to big!\n")); @@ -356,9 +698,11 @@ !rc && pImps->Name != 0 && pImps->FirstThunk != 0; pImps++) { - const char * pszModName = PE_RVA2TYPE(pvBitsR, pImps->Name, const char *); - PIMAGE_THUNK_DATA64 pFirstThunk; /* update this. */ - PIMAGE_THUNK_DATA64 pThunk; /* read from this. */ + AssertReturn(pImps->Name < pModPe->cbImage, VERR_BAD_EXE_FORMAT); + const char *pszModName = PE_RVA2TYPE(pvBitsR, pImps->Name, const char *); + AssertReturn(pImps->FirstThunk < pModPe->cbImage, VERR_BAD_EXE_FORMAT); + AssertReturn(pImps->u.OriginalFirstThunk < pModPe->cbImage, VERR_BAD_EXE_FORMAT); + Log3(("RTLdrPE: Import descriptor: %s\n", pszModName)); Log4(("RTLdrPE: OriginalFirstThunk = %#RX32\n" "RTLdrPE: TimeDateStamp = %#RX32\n" @@ -371,10 +715,10 @@ /* * Walk the thunks table(s). */ - pFirstThunk = PE_RVA2TYPE(pvBitsW, pImps->FirstThunk, PIMAGE_THUNK_DATA64); - pThunk = pImps->u.OriginalFirstThunk == 0 - ? PE_RVA2TYPE(pvBitsR, pImps->FirstThunk, PIMAGE_THUNK_DATA64) - : PE_RVA2TYPE(pvBitsR, pImps->u.OriginalFirstThunk, PIMAGE_THUNK_DATA64); + PIMAGE_THUNK_DATA64 pFirstThunk = PE_RVA2TYPE(pvBitsW, pImps->FirstThunk, PIMAGE_THUNK_DATA64); /* update this. */ + PIMAGE_THUNK_DATA64 pThunk = pImps->u.OriginalFirstThunk == 0 /* read from this. */ + ? PE_RVA2TYPE(pvBitsR, pImps->FirstThunk, PIMAGE_THUNK_DATA64) + : PE_RVA2TYPE(pvBitsR, pImps->u.OriginalFirstThunk, PIMAGE_THUNK_DATA64); while (!rc && pThunk->u1.Ordinal != 0) { RTUINTPTR Value = 0; @@ -437,7 +781,8 @@ /* Some bound checking just to be sure it works... */ if ((uintptr_t)pbr - (uintptr_t)pBaseRelocs + pbr->SizeOfBlock > cbBaseRelocs) - cRelocations = (((uintptr_t)pBaseRelocs + cbBaseRelocs) - (uintptr_t)pbr - sizeof(IMAGE_BASE_RELOCATION)) / sizeof(uint16_t); + cRelocations = (uint32_t)( (((uintptr_t)pBaseRelocs + cbBaseRelocs) - (uintptr_t)pbr - sizeof(IMAGE_BASE_RELOCATION)) + / sizeof(uint16_t) ); /* * Loop thru the fixups in this chunk. @@ -465,7 +810,7 @@ switch (fType) { case IMAGE_REL_BASED_HIGHLOW: /* 32-bit, add delta. */ - *u.pu32 += uDelta; + *u.pu32 += (uint32_t)uDelta; break; case IMAGE_REL_BASED_DIR64: /* 64-bit, add delta. */ *u.pu64 += (RTINTPTR)uDelta; @@ -490,7 +835,7 @@ cRelocations--; pwoffFixup++; int32_t i32 = (uint32_t)(*u.pu16 << 16) | *pwoffFixup; - i32 += uDelta; + i32 += (uint32_t)uDelta; i32 += 0x8000; //?? *u.pu16 = (uint16_t)(i32 >> 16); break; @@ -533,7 +878,8 @@ /** @copydoc RTLDROPS::pfnRelocate. */ -static int rtldrPERelocate(PRTLDRMODINTERNAL pMod, void *pvBits, RTUINTPTR NewBaseAddress, RTUINTPTR OldBaseAddress, PFNRTLDRIMPORT pfnGetImport, void *pvUser) +static DECLCALLBACK(int) rtldrPERelocate(PRTLDRMODINTERNAL pMod, void *pvBits, RTUINTPTR NewBaseAddress, RTUINTPTR OldBaseAddress, + PFNRTLDRIMPORT pfnGetImport, void *pvUser) { PRTLDRMODPE pModPe = (PRTLDRMODPE)pMod; @@ -563,207 +909,1868 @@ } -/** @copydoc RTLDROPS::pfnGetSymbolEx. */ -static DECLCALLBACK(int) rtldrPEGetSymbolEx(PRTLDRMODINTERNAL pMod, const void *pvBits, RTUINTPTR BaseAddress, const char *pszSymbol, RTUINTPTR *pValue) +/** + * Internal worker for pfnGetSymbolEx and pfnQueryForwarderInfo. + * + * @returns IPRT status code. + * @param pModPe The PE module instance. + * @param iOrdinal The symbol ordinal, UINT32_MAX if named symbol. + * @param pszSymbol The symbol name. + * @param ppvBits The image bits pointer (input/output). + * @param puRvaExport Where to return the symbol RVA. + * @param puOrdinal Where to return the ordinal number. Optional. + */ +static int rtLdrPE_ExportToRva(PRTLDRMODPE pModPe, uint32_t iOrdinal, const char *pszSymbol, + const void **ppvBits, uint32_t *puRvaExport, uint32_t *puOrdinal) +{ + /* + * Check if there is actually anything to work on. + */ + if ( !pModPe->ExportDir.VirtualAddress + || !pModPe->ExportDir.Size) + return VERR_SYMBOL_NOT_FOUND; + + /* + * No bits supplied? Do we need to read the bits? + */ + void const *pvBits = *ppvBits; + if (!pvBits) + { + if (!pModPe->pvBits) + { + int rc = rtldrPEReadBits(pModPe); + if (RT_FAILURE(rc)) + return rc; + } + *ppvBits = pvBits = pModPe->pvBits; + } + + PIMAGE_EXPORT_DIRECTORY pExpDir = PE_RVA2TYPE(pvBits, pModPe->ExportDir.VirtualAddress, PIMAGE_EXPORT_DIRECTORY); + int iExpOrdinal = 0; /* index into address table. */ + if (iOrdinal != UINT32_MAX) + { + /* + * Find ordinal export: Simple table lookup. + */ + if ( iOrdinal >= pExpDir->Base + RT_MAX(pExpDir->NumberOfNames, pExpDir->NumberOfFunctions) + || iOrdinal < pExpDir->Base) + return VERR_SYMBOL_NOT_FOUND; + iExpOrdinal = iOrdinal - pExpDir->Base; + } + else + { + /* + * Find Named Export: Do binary search on the name table. + */ + uint32_t *paRVANames = PE_RVA2TYPE(pvBits, pExpDir->AddressOfNames, uint32_t *); + uint16_t *paOrdinals = PE_RVA2TYPE(pvBits, pExpDir->AddressOfNameOrdinals, uint16_t *); + int iStart = 1; + int iEnd = pExpDir->NumberOfNames; + + for (;;) + { + /* end of search? */ + if (iStart > iEnd) + { +#ifdef RT_STRICT + /* do a linear search just to verify the correctness of the above algorithm */ + for (unsigned i = 0; i < pExpDir->NumberOfNames; i++) + { + AssertMsg(i == 0 || strcmp(PE_RVA2TYPE(pvBits, paRVANames[i], const char *), PE_RVA2TYPE(pvBits, paRVANames[i - 1], const char *)) > 0, + ("bug in binary export search!!!\n")); + AssertMsg(strcmp(PE_RVA2TYPE(pvBits, paRVANames[i], const char *), pszSymbol) != 0, + ("bug in binary export search!!!\n")); + } +#endif + return VERR_SYMBOL_NOT_FOUND; + } + + int i = (iEnd - iStart) / 2 + iStart; + const char *pszExpName = PE_RVA2TYPE(pvBits, paRVANames[i - 1], const char *); + int diff = strcmp(pszExpName, pszSymbol); + if (diff > 0) /* pszExpName > pszSymbol: search chunck before i */ + iEnd = i - 1; + else if (diff) /* pszExpName < pszSymbol: search chunk after i */ + iStart = i + 1; + else /* pszExpName == pszSymbol */ + { + iExpOrdinal = paOrdinals[i - 1]; + break; + } + } /* binary search thru name table */ + } + + /* + * Found export (iExpOrdinal). + */ + uint32_t *paAddress = PE_RVA2TYPE(pvBits, pExpDir->AddressOfFunctions, uint32_t *); + *puRvaExport = paAddress[iExpOrdinal]; + if (puOrdinal) + *puOrdinal = iExpOrdinal; + return VINF_SUCCESS; +} + + +/** @copydoc RTLDROPS::pfnGetSymbolEx. */ +static DECLCALLBACK(int) rtldrPEGetSymbolEx(PRTLDRMODINTERNAL pMod, const void *pvBits, RTUINTPTR BaseAddress, + uint32_t iOrdinal, const char *pszSymbol, RTUINTPTR *pValue) +{ + PRTLDRMODPE pThis = (PRTLDRMODPE)pMod; + uint32_t uRvaExport; + int rc = rtLdrPE_ExportToRva(pThis, iOrdinal, pszSymbol, &pvBits, &uRvaExport, NULL); + if (RT_SUCCESS(rc)) + { + + uint32_t offForwarder = uRvaExport - pThis->ExportDir.VirtualAddress; + if (offForwarder >= pThis->ExportDir.Size) + /* Get plain export address */ + *pValue = PE_RVA2TYPE(BaseAddress, uRvaExport, RTUINTPTR); + else + { + /* Return the approximate length of the forwarder buffer. */ + const char *pszForwarder = PE_RVA2TYPE(pvBits, uRvaExport, const char *); + *pValue = sizeof(RTLDRIMPORTINFO) + RTStrNLen(pszForwarder, offForwarder - pThis->ExportDir.Size); + rc = VERR_LDR_FORWARDER; + } + } + return rc; +} + + +/** @copydoc RTLDROPS::pfnQueryForwarderInfo. */ +static DECLCALLBACK(int) rtldrPE_QueryForwarderInfo(PRTLDRMODINTERNAL pMod, const void *pvBits, uint32_t iOrdinal, + const char *pszSymbol, PRTLDRIMPORTINFO pInfo, size_t cbInfo) +{ + AssertReturn(cbInfo >= sizeof(*pInfo), VERR_INVALID_PARAMETER); + + PRTLDRMODPE pThis = (PRTLDRMODPE)pMod; + uint32_t uRvaExport; + int rc = rtLdrPE_ExportToRva(pThis, iOrdinal, pszSymbol, &pvBits, &uRvaExport, &iOrdinal); + if (RT_SUCCESS(rc)) + { + uint32_t offForwarder = uRvaExport - pThis->ExportDir.VirtualAddress; + if (offForwarder < pThis->ExportDir.Size) + { + const char *pszForwarder = PE_RVA2TYPE(pvBits, uRvaExport, const char *); + + /* + * Parse and validate the string. We must make sure it's valid + * UTF-8, so we restrict it to ASCII. + */ + const char *pszEnd = RTStrEnd(pszForwarder, offForwarder - pThis->ExportDir.Size); + if (pszEnd) + { + /* The module name. */ + char ch; + uint32_t off = 0; + while ((ch = pszForwarder[off]) != '.' && ch != '\0') + { + if (RT_UNLIKELY((uint8_t)ch >= 0x80)) + return VERR_LDR_BAD_FORWARDER; + off++; + } + if (RT_UNLIKELY(ch != '.')) + return VERR_LDR_BAD_FORWARDER; + uint32_t const offDot = off; + off++; + + /* The function name or ordinal number. Ordinals starts with a hash. */ + uint32_t iImpOrdinal; + if (pszForwarder[off] != '#') + { + iImpOrdinal = UINT32_MAX; + while ((ch = pszForwarder[off]) != '\0') + { + if (RT_UNLIKELY((uint8_t)ch >= 0x80)) + return VERR_LDR_BAD_FORWARDER; + off++; + } + if (RT_UNLIKELY(off == offDot + 1)) + return VERR_LDR_BAD_FORWARDER; + } + else + { + rc = RTStrToUInt32Full(&pszForwarder[off + 1], 10, &iImpOrdinal); + if (RT_UNLIKELY(rc != VINF_SUCCESS || iImpOrdinal > UINT16_MAX)) + return VERR_LDR_BAD_FORWARDER; + } + + /* + * Enough buffer? + */ + uint32_t cbNeeded = RT_OFFSETOF(RTLDRIMPORTINFO, szModule[iImpOrdinal != UINT32_MAX ? offDot + 1 : off + 1]); + if (cbNeeded > cbInfo) + return VERR_BUFFER_OVERFLOW; + + /* + * Fill in the return buffer. + */ + pInfo->iSelfOrdinal = iOrdinal; + pInfo->iOrdinal = iImpOrdinal; + if (iImpOrdinal == UINT32_MAX) + { + pInfo->pszSymbol = &pInfo->szModule[offDot + 1]; + memcpy(&pInfo->szModule[0], pszForwarder, off + 1); + } + else + { + pInfo->pszSymbol = NULL; + memcpy(&pInfo->szModule[0], pszForwarder, offDot); + } + pInfo->szModule[offDot] = '\0'; + rc = VINF_SUCCESS; + } + else + rc = VERR_LDR_BAD_FORWARDER; + } + else + rc = VERR_LDR_NOT_FORWARDER; + } + return rc; +} + + +/** + * Slow version of rtldrPEEnumSymbols that'll work without all of the image + * being accessible. + * + * This is mainly for use in debuggers and similar. + */ +static int rtldrPEEnumSymbolsSlow(PRTLDRMODPE pThis, unsigned fFlags, RTUINTPTR BaseAddress, + PFNRTLDRENUMSYMS pfnCallback, void *pvUser) +{ + /* + * We enumerates by ordinal, which means using a slow linear search for + * getting any name + */ + PCIMAGE_EXPORT_DIRECTORY pExpDir = NULL; + int rc = rtldrPEReadPartByRva(pThis, NULL, pThis->ExportDir.VirtualAddress, pThis->ExportDir.Size, + (void const **)&pExpDir); + if (RT_FAILURE(rc)) + return rc; + uint32_t const cOrdinals = RT_MAX(pExpDir->NumberOfNames, pExpDir->NumberOfFunctions); + + uint32_t const *paAddress = NULL; + rc = rtldrPEReadPartByRva(pThis, NULL, pExpDir->AddressOfFunctions, cOrdinals * sizeof(uint32_t), + (void const **)&paAddress); + uint32_t const *paRVANames = NULL; + if (RT_SUCCESS(rc) && pExpDir->NumberOfNames) + rc = rtldrPEReadPartByRva(pThis, NULL, pExpDir->AddressOfNames, pExpDir->NumberOfNames * sizeof(uint32_t), + (void const **)&paRVANames); + uint16_t const *paOrdinals = NULL; + if (RT_SUCCESS(rc) && pExpDir->NumberOfNames) + rc = rtldrPEReadPartByRva(pThis, NULL, pExpDir->AddressOfNameOrdinals, pExpDir->NumberOfNames * sizeof(uint16_t), + (void const **)&paOrdinals); + if (RT_SUCCESS(rc)) + { + uint32_t uNamePrev = 0; + for (uint32_t uOrdinal = 0; uOrdinal < cOrdinals; uOrdinal++) + { + if (paAddress[uOrdinal] /* needed? */) + { + /* + * Look for name. + */ + uint32_t uRvaName = UINT32_MAX; + /* Search from previous + 1 to the end. */ + unsigned uName = uNamePrev + 1; + while (uName < pExpDir->NumberOfNames) + { + if (paOrdinals[uName] == uOrdinal) + { + uRvaName = paRVANames[uName]; + uNamePrev = uName; + break; + } + uName++; + } + if (uRvaName == UINT32_MAX) + { + /* Search from start to the previous. */ + uName = 0; + for (uName = 0 ; uName <= uNamePrev; uName++) + { + if (paOrdinals[uName] == uOrdinal) + { + uRvaName = paRVANames[uName]; + uNamePrev = uName; + break; + } + } + } + + /* + * Get address. + */ + uintptr_t uRVAExport = paAddress[uOrdinal]; + RTUINTPTR Value; + if ( uRVAExport - (uintptr_t)pThis->ExportDir.VirtualAddress + < pThis->ExportDir.Size) + { + if (!(fFlags & RTLDR_ENUM_SYMBOL_FLAGS_NO_FWD)) + { + /* Resolve forwarder. */ + AssertMsgFailed(("Forwarders are not supported!\n")); + } + continue; + } + + /* Get plain export address */ + Value = PE_RVA2TYPE(BaseAddress, uRVAExport, RTUINTPTR); + + /* Read in the name if found one. */ + char szAltName[32]; + const char *pszName = NULL; + if (uRvaName != UINT32_MAX) + { + uint32_t cbName = 0x1000 - (uRvaName & 0xfff); + if (cbName < 10 || cbName > 512) + cbName = 128; + rc = rtldrPEReadPartByRva(pThis, NULL, uRvaName, cbName, (void const **)&pszName); + while (RT_SUCCESS(rc) && RTStrNLen(pszName, cbName) == cbName) + { + rtldrPEFreePart(pThis, NULL, pszName); + pszName = NULL; + if (cbName >= _4K) + break; + cbName += 128; + rc = rtldrPEReadPartByRva(pThis, NULL, uRvaName, cbName, (void const **)&pszName); + } + } + if (!pszName) + { + RTStrPrintf(szAltName, sizeof(szAltName), "Ordinal%#x", uOrdinal); + pszName = szAltName; + } + + /* + * Call back. + */ + rc = pfnCallback(&pThis->Core, pszName, uOrdinal + pExpDir->Base, Value, pvUser); + if (pszName != szAltName && pszName) + rtldrPEFreePart(pThis, NULL, pszName); + if (rc) + break; + } + } + } + + rtldrPEFreePart(pThis, NULL, paOrdinals); + rtldrPEFreePart(pThis, NULL, paRVANames); + rtldrPEFreePart(pThis, NULL, paAddress); + rtldrPEFreePart(pThis, NULL, pExpDir); + return rc; +} + + +/** @copydoc RTLDROPS::pfnEnumSymbols */ +static DECLCALLBACK(int) rtldrPEEnumSymbols(PRTLDRMODINTERNAL pMod, unsigned fFlags, const void *pvBits, RTUINTPTR BaseAddress, + PFNRTLDRENUMSYMS pfnCallback, void *pvUser) +{ + PRTLDRMODPE pModPe = (PRTLDRMODPE)pMod; + NOREF(fFlags); /* ignored ... */ + + /* + * Check if there is actually anything to work on. + */ + if ( !pModPe->ExportDir.VirtualAddress + || !pModPe->ExportDir.Size) + return VERR_SYMBOL_NOT_FOUND; + + /* + * No bits supplied? Do we need to read the bits? + */ + if (!pvBits) + { + if (!pModPe->pvBits) + { + int rc = rtldrPEReadBits(pModPe); + if (RT_FAILURE(rc)) + return rc; + } + pvBits = pModPe->pvBits; + } + + /* + * We enumerates by ordinal, which means using a slow linear search for + * getting any name + */ + PIMAGE_EXPORT_DIRECTORY pExpDir = PE_RVA2TYPE(pvBits, pModPe->ExportDir.VirtualAddress, PIMAGE_EXPORT_DIRECTORY); + uint32_t *paAddress = PE_RVA2TYPE(pvBits, pExpDir->AddressOfFunctions, uint32_t *); + uint32_t *paRVANames = PE_RVA2TYPE(pvBits, pExpDir->AddressOfNames, uint32_t *); + uint16_t *paOrdinals = PE_RVA2TYPE(pvBits, pExpDir->AddressOfNameOrdinals, uint16_t *); + uint32_t uNamePrev = 0; + unsigned cOrdinals = RT_MAX(pExpDir->NumberOfNames, pExpDir->NumberOfFunctions); + for (unsigned uOrdinal = 0; uOrdinal < cOrdinals; uOrdinal++) + { + if (paAddress[uOrdinal] /* needed? */) + { + /* + * Look for name. + */ + const char *pszName = NULL; + /* Search from previous + 1 to the end. */ + uint32_t uName = uNamePrev + 1; + while (uName < pExpDir->NumberOfNames) + { + if (paOrdinals[uName] == uOrdinal) + { + pszName = PE_RVA2TYPE(pvBits, paRVANames[uName], const char *); + uNamePrev = uName; + break; + } + uName++; + } + if (!pszName) + { + /* Search from start to the previous. */ + uName = 0; + for (uName = 0 ; uName <= uNamePrev; uName++) + { + if (paOrdinals[uName] == uOrdinal) + { + pszName = PE_RVA2TYPE(pvBits, paRVANames[uName], const char *); + uNamePrev = uName; + break; + } + } + } + + /* + * Get address. + */ + uintptr_t uRVAExport = paAddress[uOrdinal]; + RTUINTPTR Value; + if ( uRVAExport - (uintptr_t)pModPe->ExportDir.VirtualAddress + < pModPe->ExportDir.Size) + { + /* Resolve forwarder. */ + AssertMsgFailed(("Forwarders are not supported!\n")); + continue; + } + else + /* Get plain export address */ + Value = PE_RVA2TYPE(BaseAddress, uRVAExport, RTUINTPTR); + + /* + * Call back. + */ + int rc = pfnCallback(pMod, pszName, uOrdinal + pExpDir->Base, Value, pvUser); + if (rc) + return rc; + } + } + + return VINF_SUCCESS; +} + +#ifdef FROM_THE_FUTURE_VIA_LAZY_DEVELOPER + +/** @copydoc RTLDROPS::pfnEnumDbgInfo. */ +static DECLCALLBACK(int) rtldrPE_EnumDbgInfo(PRTLDRMODINTERNAL pMod, const void *pvBits, + PFNRTLDRENUMDBG pfnCallback, void *pvUser) +{ + PRTLDRMODPE pModPe = (PRTLDRMODPE)pMod; + int rc; + + /* + * Debug info directory empty? + */ + if ( !pModPe->DebugDir.VirtualAddress + || !pModPe->DebugDir.Size) + return VINF_SUCCESS; + + /* + * Allocate temporary memory for a path buffer (this code is also compiled + * and maybe even used in stack starved environments). + */ + char *pszPath = (char *)RTMemTmpAlloc(RTPATH_MAX); + if (!pszPath) + return VERR_NO_TMP_MEMORY; + + /* + * Get the debug directory. + */ + if (!pvBits) + pvBits = pModPe->pvBits; + + PCIMAGE_DEBUG_DIRECTORY paDbgDir; + int rcRet = rtldrPEReadPartByRva(pModPe, pvBits, pModPe->DebugDir.VirtualAddress, pModPe->DebugDir.Size, + (void const **)&paDbgDir); + if (RT_FAILURE(rcRet)) + { + RTMemTmpFree(pszPath); + return rcRet; + } + + /* + * Enumerate the debug directory. + */ + uint32_t const cEntries = pModPe->DebugDir.Size / sizeof(paDbgDir[0]); + for (uint32_t i = 0; i < cEntries; i++) + { + if (paDbgDir[i].PointerToRawData < pModPe->offEndOfHdrs) + continue; + if (paDbgDir[i].SizeOfData < 4) + continue; + + void const *pvPart = NULL; + RTLDRDBGINFO DbgInfo; + RT_ZERO(DbgInfo.u); + DbgInfo.iDbgInfo = i; + DbgInfo.offFile = paDbgDir[i].PointerToRawData; + DbgInfo.LinkAddress = paDbgDir[i].AddressOfRawData < pModPe->cbImage + && paDbgDir[i].AddressOfRawData >= pModPe->offEndOfHdrs + ? paDbgDir[i].AddressOfRawData : NIL_RTLDRADDR; + DbgInfo.cb = paDbgDir[i].SizeOfData; + DbgInfo.pszExtFile = NULL; + + rc = VINF_SUCCESS; + switch (paDbgDir[i].Type) + { + case IMAGE_DEBUG_TYPE_CODEVIEW: + DbgInfo.enmType = RTLDRDBGINFOTYPE_CODEVIEW; + DbgInfo.u.Cv.cbImage = pModPe->cbImage; + DbgInfo.u.Cv.uMajorVer = paDbgDir[i].MajorVersion; + DbgInfo.u.Cv.uMinorVer = paDbgDir[i].MinorVersion; + DbgInfo.u.Cv.uTimestamp = paDbgDir[i].TimeDateStamp; + if ( paDbgDir[i].SizeOfData < RTPATH_MAX + && paDbgDir[i].SizeOfData > 16 + && ( DbgInfo.LinkAddress != NIL_RTLDRADDR + || DbgInfo.offFile > 0) + ) + { + rc = rtldrPEReadPart(pModPe, pvBits, DbgInfo.offFile, DbgInfo.LinkAddress, paDbgDir[i].SizeOfData, &pvPart); + if (RT_SUCCESS(rc)) + { + PCCVPDB20INFO pCv20 = (PCCVPDB20INFO)pvPart; + if ( pCv20->u32Magic == CVPDB20INFO_MAGIC + && pCv20->offDbgInfo == 0 + && paDbgDir[i].SizeOfData > RT_UOFFSETOF(CVPDB20INFO, szPdbFilename) ) + { + DbgInfo.enmType = RTLDRDBGINFOTYPE_CODEVIEW_PDB20; + DbgInfo.u.Pdb20.cbImage = pModPe->cbImage; + DbgInfo.u.Pdb20.uTimestamp = pCv20->uTimestamp; + DbgInfo.u.Pdb20.uAge = pCv20->uAge; + DbgInfo.pszExtFile = (const char *)&pCv20->szPdbFilename[0]; + } + else if ( pCv20->u32Magic == CVPDB70INFO_MAGIC + && paDbgDir[i].SizeOfData > RT_UOFFSETOF(CVPDB70INFO, szPdbFilename) ) + { + PCCVPDB70INFO pCv70 = (PCCVPDB70INFO)pCv20; + DbgInfo.enmType = RTLDRDBGINFOTYPE_CODEVIEW_PDB70; + DbgInfo.u.Pdb70.cbImage = pModPe->cbImage; + DbgInfo.u.Pdb70.Uuid = pCv70->PdbUuid; + DbgInfo.u.Pdb70.uAge = pCv70->uAge; + DbgInfo.pszExtFile = (const char *)&pCv70->szPdbFilename[0]; + } + } + else + rcRet = rc; + } + break; + + case IMAGE_DEBUG_TYPE_MISC: + DbgInfo.enmType = RTLDRDBGINFOTYPE_UNKNOWN; + if ( paDbgDir[i].SizeOfData < RTPATH_MAX + && paDbgDir[i].SizeOfData > RT_UOFFSETOF(IMAGE_DEBUG_MISC, Data)) + { + DbgInfo.enmType = RTLDRDBGINFOTYPE_CODEVIEW_DBG; + DbgInfo.u.Dbg.cbImage = pModPe->cbImage; + if (DbgInfo.LinkAddress != NIL_RTLDRADDR) + DbgInfo.u.Dbg.uTimestamp = paDbgDir[i].TimeDateStamp; + else + DbgInfo.u.Dbg.uTimestamp = pModPe->uTimestamp; /* NT4 SP1 ntfs.sys hack. Generic? */ + + rc = rtldrPEReadPart(pModPe, pvBits, DbgInfo.offFile, DbgInfo.LinkAddress, paDbgDir[i].SizeOfData, &pvPart); + if (RT_SUCCESS(rc)) + { + PCIMAGE_DEBUG_MISC pMisc = (PCIMAGE_DEBUG_MISC)pvPart; + if ( pMisc->DataType == IMAGE_DEBUG_MISC_EXENAME + && pMisc->Length == paDbgDir[i].SizeOfData) + { + if (!pMisc->Unicode) + DbgInfo.pszExtFile = (const char *)&pMisc->Data[0]; + else + { + rc = RTUtf16ToUtf8Ex((PCRTUTF16)&pMisc->Data[0], + (pMisc->Length - RT_OFFSETOF(IMAGE_DEBUG_MISC, Data)) / sizeof(RTUTF16), + &pszPath, RTPATH_MAX, NULL); + if (RT_SUCCESS(rc)) + DbgInfo.pszExtFile = pszPath; + else + rcRet = rc; /* continue without a filename. */ + } + } + } + else + rcRet = rc; /* continue without a filename. */ + } + break; + + case IMAGE_DEBUG_TYPE_COFF: + DbgInfo.enmType = RTLDRDBGINFOTYPE_COFF; + DbgInfo.u.Coff.cbImage = pModPe->cbImage; + DbgInfo.u.Coff.uMajorVer = paDbgDir[i].MajorVersion; + DbgInfo.u.Coff.uMinorVer = paDbgDir[i].MinorVersion; + DbgInfo.u.Coff.uTimestamp = paDbgDir[i].TimeDateStamp; + break; + + default: + DbgInfo.enmType = RTLDRDBGINFOTYPE_UNKNOWN; + break; + } + + /* Fix (hack) the file name encoding. We don't have Windows-1252 handy, + so we'll be using Latin-1 as a reasonable approximation. + (I don't think we know exactly which encoding this is anyway, as + it's probably the current ANSI/Windows code page for the process + generating the image anyways.) */ + if (DbgInfo.pszExtFile && DbgInfo.pszExtFile != pszPath) + { + rc = RTLatin1ToUtf8Ex(DbgInfo.pszExtFile, + paDbgDir[i].SizeOfData - ((uintptr_t)DbgInfo.pszExtFile - (uintptr_t)pvBits), + &pszPath, RTPATH_MAX, NULL); + if (RT_FAILURE(rc)) + { + rcRet = rc; + DbgInfo.pszExtFile = NULL; + } + } + if (DbgInfo.pszExtFile) + RTPathChangeToUnixSlashes(pszPath, true /*fForce*/); + + rc = pfnCallback(pMod, &DbgInfo, pvUser); + rtldrPEFreePart(pModPe, pvBits, pvPart); + if (rc != VINF_SUCCESS) + { + rcRet = rc; + break; + } + } + + rtldrPEFreePart(pModPe, pvBits, paDbgDir); + RTMemTmpFree(pszPath); + return rcRet; +} + + +/** @copydoc RTLDROPS::pfnEnumSegments. */ +static DECLCALLBACK(int) rtldrPE_EnumSegments(PRTLDRMODINTERNAL pMod, PFNRTLDRENUMSEGS pfnCallback, void *pvUser) +{ + PRTLDRMODPE pModPe = (PRTLDRMODPE)pMod; + RTLDRSEG SegInfo; + + /* + * The first section is a fake one covering the headers. + */ + SegInfo.pchName = "NtHdrs"; + SegInfo.cchName = 6; + SegInfo.SelFlat = 0; + SegInfo.Sel16bit = 0; + SegInfo.fFlags = 0; + SegInfo.fProt = RTMEM_PROT_READ; + SegInfo.Alignment = 1; + SegInfo.LinkAddress = pModPe->uImageBase; + SegInfo.RVA = 0; + SegInfo.offFile = 0; + SegInfo.cb = pModPe->cbHeaders; + SegInfo.cbFile = pModPe->cbHeaders; + SegInfo.cbMapped = pModPe->cbHeaders; + if ((pModPe->paSections[0].Characteristics & IMAGE_SCN_TYPE_NOLOAD)) + SegInfo.cbMapped = pModPe->paSections[0].VirtualAddress; + int rc = pfnCallback(pMod, &SegInfo, pvUser); + + /* + * Then all the normal sections. + */ + PCIMAGE_SECTION_HEADER pSh = pModPe->paSections; + for (uint32_t i = 0; i < pModPe->cSections && rc == VINF_SUCCESS; i++, pSh++) + { + char szName[32]; + SegInfo.pchName = (const char *)&pSh->Name[0]; + SegInfo.cchName = (uint32_t)RTStrNLen(SegInfo.pchName, sizeof(pSh->Name)); + if (SegInfo.cchName >= sizeof(pSh->Name)) + { + memcpy(szName, &pSh->Name[0], sizeof(pSh->Name)); + szName[sizeof(pSh->Name)] = '\0'; + SegInfo.pchName = szName; + } + else if (SegInfo.cchName == 0) + { + SegInfo.pchName = szName; + SegInfo.cchName = (uint32_t)RTStrPrintf(szName, sizeof(szName), "UnamedSect%02u", i); + } + SegInfo.SelFlat = 0; + SegInfo.Sel16bit = 0; + SegInfo.fFlags = 0; + SegInfo.fProt = RTMEM_PROT_NONE; + if (pSh->Characteristics & IMAGE_SCN_MEM_READ) + SegInfo.fProt |= RTMEM_PROT_READ; + if (pSh->Characteristics & IMAGE_SCN_MEM_WRITE) + SegInfo.fProt |= RTMEM_PROT_WRITE; + if (pSh->Characteristics & IMAGE_SCN_MEM_EXECUTE) + SegInfo.fProt |= RTMEM_PROT_EXEC; + SegInfo.Alignment = (pSh->Characteristics & IMAGE_SCN_ALIGN_MASK) >> IMAGE_SCN_ALIGN_SHIFT; + if (SegInfo.Alignment > 0) + SegInfo.Alignment = RT_BIT_64(SegInfo.Alignment - 1); + if (pSh->Characteristics & IMAGE_SCN_TYPE_NOLOAD) + { + SegInfo.LinkAddress = NIL_RTLDRADDR; + SegInfo.RVA = NIL_RTLDRADDR; + SegInfo.cbMapped = pSh->Misc.VirtualSize; + } + else + { + SegInfo.LinkAddress = pSh->VirtualAddress + pModPe->uImageBase ; + SegInfo.RVA = pSh->VirtualAddress; + SegInfo.cbMapped = RT_ALIGN(SegInfo.cb, SegInfo.Alignment); + if (i + 1 < pModPe->cSections && !(pSh[1].Characteristics & IMAGE_SCN_TYPE_NOLOAD)) + SegInfo.cbMapped = pSh[1].VirtualAddress - pSh->VirtualAddress; + } + SegInfo.cb = pSh->Misc.VirtualSize; + if (pSh->PointerToRawData == 0 || pSh->SizeOfRawData == 0) + { + SegInfo.offFile = -1; + SegInfo.cbFile = 0; + } + else + { + SegInfo.offFile = pSh->PointerToRawData; + SegInfo.cbFile = pSh->SizeOfRawData; + } + + rc = pfnCallback(pMod, &SegInfo, pvUser); + } + + return rc; +} + + +/** @copydoc RTLDROPS::pfnLinkAddressToSegOffset. */ +static DECLCALLBACK(int) rtldrPE_LinkAddressToSegOffset(PRTLDRMODINTERNAL pMod, RTLDRADDR LinkAddress, + uint32_t *piSeg, PRTLDRADDR poffSeg) +{ + PRTLDRMODPE pModPe = (PRTLDRMODPE)pMod; + + LinkAddress -= pModPe->uImageBase; + + /* Special header segment. */ + if (LinkAddress < pModPe->paSections[0].VirtualAddress) + { + *piSeg = 0; + *poffSeg = LinkAddress; + return VINF_SUCCESS; + } + + /* + * Search the normal sections. (Could do this in binary fashion, they're + * sorted, but too much bother right now.) + */ + if (LinkAddress > pModPe->cbImage) + return VERR_LDR_INVALID_LINK_ADDRESS; + uint32_t i = pModPe->cSections; + PCIMAGE_SECTION_HEADER paShs = pModPe->paSections; + while (i-- > 0) + if (!(paShs[i].Characteristics & IMAGE_SCN_TYPE_NOLOAD)) + { + uint32_t uAddr = paShs[i].VirtualAddress; + if (LinkAddress >= uAddr) + { + *poffSeg = LinkAddress - uAddr; + *piSeg = i + 1; + return VINF_SUCCESS; + } + } + + return VERR_LDR_INVALID_LINK_ADDRESS; +} + + +/** @copydoc RTLDROPS::pfnLinkAddressToRva. */ +static DECLCALLBACK(int) rtldrPE_LinkAddressToRva(PRTLDRMODINTERNAL pMod, RTLDRADDR LinkAddress, PRTLDRADDR pRva) +{ + PRTLDRMODPE pModPe = (PRTLDRMODPE)pMod; + + LinkAddress -= pModPe->uImageBase; + if (LinkAddress > pModPe->cbImage) + return VERR_LDR_INVALID_LINK_ADDRESS; + *pRva = LinkAddress; + return VINF_SUCCESS; +} + + +/** @copydoc RTLDROPS::pfnSegOffsetToRva. */ +static DECLCALLBACK(int) rtldrPE_SegOffsetToRva(PRTLDRMODINTERNAL pMod, uint32_t iSeg, RTLDRADDR offSeg, + PRTLDRADDR pRva) +{ + PRTLDRMODPE pModPe = (PRTLDRMODPE)pMod; + + if (iSeg > pModPe->cSections) + return VERR_LDR_INVALID_SEG_OFFSET; + + /** @todo should validate offSeg here... too lazy right now. */ + if (iSeg == 0) + *pRva = offSeg; + else if (pModPe->paSections[iSeg].Characteristics & IMAGE_SCN_TYPE_NOLOAD) + return VERR_LDR_INVALID_SEG_OFFSET; + else + *pRva = offSeg + pModPe->paSections[iSeg].VirtualAddress; + return VINF_SUCCESS; +} + + +/** @copydoc RTLDROPS::pfnRvaToSegOffset. */ +static DECLCALLBACK(int) rtldrPE_RvaToSegOffset(PRTLDRMODINTERNAL pMod, RTLDRADDR Rva, + uint32_t *piSeg, PRTLDRADDR poffSeg) +{ + PRTLDRMODPE pModPe = (PRTLDRMODPE)pMod; + int rc = rtldrPE_LinkAddressToSegOffset(pMod, Rva + pModPe->uImageBase, piSeg, poffSeg); + if (RT_FAILURE(rc)) + rc = VERR_LDR_INVALID_RVA; + return rc; +} + +#endif /* FROM_THE_FUTURE_VIA_LAZY_DEVELOPER */ + + +/** + * Worker for rtLdrPE_QueryProp and rtLdrPE_QueryImportModule that counts the + * number of imports, storing the result in RTLDRMODPE::cImports. + * + * @returns IPRT status code. + * @param pThis The PE module instance. + * @param pvBits Image bits if the caller had them available, NULL if + * not. Saves a couple of file accesses. + */ +static int rtLdrPE_CountImports(PRTLDRMODPE pThis, void const *pvBits) +{ + PCIMAGE_IMPORT_DESCRIPTOR paImpDescs; + int rc = rtldrPEReadPartByRva(pThis, pvBits, pThis->ImportDir.VirtualAddress, pThis->ImportDir.Size, + (void const **)&paImpDescs); + if (RT_SUCCESS(rc)) + { + uint32_t const cMax = pThis->ImportDir.Size / sizeof(IMAGE_IMPORT_DESCRIPTOR); + uint32_t i = 0; + while ( i < cMax + && paImpDescs[i].Name > pThis->offNtHdrs + && paImpDescs[i].Name < pThis->cbImage + && paImpDescs[i].FirstThunk > pThis->offNtHdrs + && paImpDescs[i].FirstThunk < pThis->cbImage) + i++; + pThis->cImports = i; + + rtldrPEFreePart(pThis, pvBits, paImpDescs); + } + return rc; +} + + +/** + * Worker for rtLdrPE_QueryProp that retrievs the name of an import DLL. + * + * @returns IPRT status code. If VERR_BUFFER_OVERFLOW, pcbBuf is required size. + * @param pThis The PE module instance. + * @param pvBits Image bits if the caller had them available, NULL if + * not. Saves a couple of file accesses. + * @param iImport The index of the import table descriptor to fetch + * the name from. + * @param pvBuf The output buffer. + * @param cbBuf The buffer size. + * @param pcbRet Where to return the number of bytes we've returned + * (or in case of VERR_BUFFER_OVERFLOW would have). + */ +static int rtLdrPE_QueryImportModule(PRTLDRMODPE pThis, void const *pvBits, uint32_t iImport, + void *pvBuf, size_t cbBuf, size_t *pcbRet) +{ + /* + * Make sure we got the import count. + */ + int rc; + if (pThis->cImports == UINT32_MAX) + { + rc = rtLdrPE_CountImports(pThis, pvBits); + if (RT_FAILURE(rc)) + return rc; + } + + /* + * Check the index first, converting it to an RVA. + */ + if (iImport < pThis->cImports) + { + uint32_t offEntry = iImport * sizeof(IMAGE_IMPORT_DESCRIPTOR) + pThis->ImportDir.VirtualAddress; + + /* + * Retrieve the import table descriptor. + */ + PCIMAGE_IMPORT_DESCRIPTOR pImpDesc; + rc = rtldrPEReadPartByRva(pThis, pvBits, offEntry, sizeof(*pImpDesc), (void const **)&pImpDesc); + if (RT_SUCCESS(rc)) + { + if ( pImpDesc->Name >= pThis->cbHeaders + && pImpDesc->Name < pThis->cbImage) + { + /* + * Limit the name to 1024 bytes (more than enough for everyone). + */ + uint32_t cchNameMax = pThis->cbImage - pImpDesc->Name; + if (cchNameMax > 1024) + cchNameMax = 1024; + char *pszName; + rc = rtldrPEReadPartByRva(pThis, pvBits, pImpDesc->Name, cchNameMax, (void const **)&pszName); + if (RT_SUCCESS(rc)) + { + /* + * Make sure it's null terminated and valid UTF-8 encoding. + * + * Which encoding this really is isn't defined, I think, + * but we need to make sure we don't get bogus UTF-8 into + * the process, so making sure it's valid UTF-8 is a good + * as anything else since it covers ASCII. + */ + size_t cchName = RTStrNLen(pszName, cchNameMax); + if (cchName < cchNameMax) + { + rc = RTStrValidateEncodingEx(pszName, cchName, 0 /*fFlags*/); + if (RT_SUCCESS(rc)) + { + /* + * Copy out the result and we're done. + * (We have to do all the cleanup code though, so no return success here.) + */ + *pcbRet = cchName + 1; + if (cbBuf >= cchName + 1) + memcpy(pvBuf, pszName, cchName + 1); + else + rc = VERR_BUFFER_OVERFLOW; + } + } + else + rc = VERR_BAD_EXE_FORMAT; + rtldrPEFreePart(pThis, pvBits, pszName); + } + } + else + rc = VERR_BAD_EXE_FORMAT; + rtldrPEFreePart(pThis, pvBits, pImpDesc); + } + } + else + rc = VERR_NOT_FOUND; + + if (RT_SUCCESS(rc)) + return VINF_SUCCESS; + + *pcbRet = 0; + return rc; +} + + +/** @interface_method_impl{RTLDROPS,pfnQueryProp} */ +static DECLCALLBACK(int) rtldrPE_QueryProp(PRTLDRMODINTERNAL pMod, RTLDRPROP enmProp, void const *pvBits, + void *pvBuf, size_t cbBuf, size_t *pcbRet) +{ + PRTLDRMODPE pModPe = (PRTLDRMODPE)pMod; + switch (enmProp) + { + case RTLDRPROP_TIMESTAMP_SECONDS: + Assert(*pcbRet == cbBuf); + if (cbBuf == sizeof(int32_t)) + *(int32_t *)pvBuf = pModPe->uTimestamp; + else if (cbBuf == sizeof(int64_t)) + *(int64_t *)pvBuf = pModPe->uTimestamp; + else + AssertFailedReturn(VERR_INTERNAL_ERROR_3); + break; + + case RTLDRPROP_IS_SIGNED: + Assert(cbBuf == sizeof(bool)); + Assert(*pcbRet == cbBuf); + *(bool *)pvBuf = pModPe->offPkcs7SignedData != 0; + break; + + case RTLDRPROP_PKCS7_SIGNED_DATA: + { + if (pModPe->cbPkcs7SignedData == 0) + return VERR_NOT_FOUND; + Assert(pModPe->offPkcs7SignedData > pModPe->SecurityDir.VirtualAddress); + + *pcbRet = pModPe->cbPkcs7SignedData; + if (cbBuf < pModPe->cbPkcs7SignedData) + return VERR_BUFFER_OVERFLOW; + return pModPe->pReader->pfnRead(pModPe->pReader, pvBuf, pModPe->cbPkcs7SignedData, + pModPe->offPkcs7SignedData); + } + + case RTLDRPROP_SIGNATURE_CHECKS_ENFORCED: + Assert(cbBuf == sizeof(bool)); + Assert(*pcbRet == cbBuf); + *(bool *)pvBuf = pModPe->offPkcs7SignedData > 0 + && (pModPe->fDllCharacteristics & IMAGE_DLLCHARACTERISTICS_FORCE_INTEGRITY); + break; + + case RTLDRPROP_IMPORT_COUNT: + Assert(cbBuf == sizeof(uint32_t)); + Assert(*pcbRet == cbBuf); + if (pModPe->cImports == UINT32_MAX) + { + int rc = rtLdrPE_CountImports(pModPe, pvBits); + if (RT_FAILURE(rc)) + return rc; + } + *(uint32_t *)pvBuf = pModPe->cImports; + break; + + + case RTLDRPROP_IMPORT_MODULE: + Assert(cbBuf >= sizeof(uint32_t)); + return rtLdrPE_QueryImportModule(pModPe, pvBits, *(uint32_t *)pvBuf, pvBuf, cbBuf, pcbRet); + + default: + return VERR_NOT_FOUND; + } + return VINF_SUCCESS; +} + + + +/* + * Lots of Authenticode fun ahead. + */ + + +/** + * Initializes the hash context. + * + * @returns VINF_SUCCESS or VERR_NOT_SUPPORTED. + * @param pHashCtx The hash context union. + * @param enmDigest The hash type we're calculating.. + */ +static int rtLdrPE_HashInit(PRTLDRPEHASHCTXUNION pHashCtx, RTDIGESTTYPE enmDigest) +{ + switch (enmDigest) + { + case RTDIGESTTYPE_SHA512: RTSha512Init(&pHashCtx->Sha512); break; + case RTDIGESTTYPE_SHA256: RTSha256Init(&pHashCtx->Sha256); break; + case RTDIGESTTYPE_SHA1: RTSha1Init(&pHashCtx->Sha1); break; + case RTDIGESTTYPE_MD5: RTMd5Init(&pHashCtx->Md5); break; + default: AssertFailedReturn(VERR_NOT_SUPPORTED); + } + return VINF_SUCCESS; +} + + +/** + * Updates the hash with more data. + * + * @param pHashCtx The hash context union. + * @param enmDigest The hash type we're calculating.. + * @param pvBuf Pointer to a buffer with bytes to add to thash. + * @param cbBuf How many bytes to add from @a pvBuf. + */ +static void rtLdrPE_HashUpdate(PRTLDRPEHASHCTXUNION pHashCtx, RTDIGESTTYPE enmDigest, void const *pvBuf, size_t cbBuf) +{ + switch (enmDigest) + { + case RTDIGESTTYPE_SHA512: RTSha512Update(&pHashCtx->Sha512, pvBuf, cbBuf); break; + case RTDIGESTTYPE_SHA256: RTSha256Update(&pHashCtx->Sha256, pvBuf, cbBuf); break; + case RTDIGESTTYPE_SHA1: RTSha1Update(&pHashCtx->Sha1, pvBuf, cbBuf); break; + case RTDIGESTTYPE_MD5: RTMd5Update(&pHashCtx->Md5, pvBuf, cbBuf); break; + default: AssertReleaseFailed(); + } +} + + +/** + * Finalizes the hash calculations. + * + * @param pHashCtx The hash context union. + * @param enmDigest The hash type we're calculating.. + * @param pHashRes The hash result union. + */ +static void rtLdrPE_HashFinalize(PRTLDRPEHASHCTXUNION pHashCtx, RTDIGESTTYPE enmDigest, PRTLDRPEHASHRESUNION pHashRes) +{ + switch (enmDigest) + { + case RTDIGESTTYPE_SHA512: RTSha512Final(&pHashCtx->Sha512, pHashRes->abSha512); break; + case RTDIGESTTYPE_SHA256: RTSha256Final(&pHashCtx->Sha256, pHashRes->abSha256); break; + case RTDIGESTTYPE_SHA1: RTSha1Final(&pHashCtx->Sha1, pHashRes->abSha1); break; + case RTDIGESTTYPE_MD5: RTMd5Final(pHashRes->abMd5, &pHashCtx->Md5); break; + default: AssertReleaseFailed(); + } +} + + +/** + * Returns the digest size for the given digest type. + * + * @returns Size in bytes. + * @param enmDigest The hash type in question. + */ +static uint32_t rtLdrPE_HashGetHashSize(RTDIGESTTYPE enmDigest) +{ + switch (enmDigest) + { + case RTDIGESTTYPE_SHA512: return RTSHA512_HASH_SIZE; + case RTDIGESTTYPE_SHA256: return RTSHA256_HASH_SIZE; + case RTDIGESTTYPE_SHA1: return RTSHA1_HASH_SIZE; + case RTDIGESTTYPE_MD5: return RTMD5_HASH_SIZE; + default: AssertReleaseFailedReturn(0); + } +} + + +/** + * Calculate the special too watch out for when hashing the image. + * + * @returns IPRT status code. + * @param pModPe The PE module. + * @param pPlaces The structure where to store the special places. + * @param pErrInfo Optional error info. + */ +static int rtldrPe_CalcSpecialHashPlaces(PRTLDRMODPE pModPe, PRTLDRPEHASHSPECIALS pPlaces, PRTERRINFO pErrInfo) +{ + /* + * If we're here despite a missing signature, we need to get the file size. + */ + pPlaces->cbToHash = pModPe->SecurityDir.VirtualAddress; + if (pPlaces->cbToHash == 0) + { + RTFOFF cbFile = pModPe->pReader->pfnSize(pModPe->pReader); + pPlaces->cbToHash = (uint32_t)cbFile; + if (pPlaces->cbToHash != (RTFOFF)cbFile) + return RTErrInfoSetF(pErrInfo, VERR_LDRVI_FILE_LENGTH_ERROR, "File is too large: %RTfoff", cbFile); + } + + /* + * Calculate the special places. + */ + pPlaces->offCksum = (uint32_t)pModPe->offNtHdrs + + (pModPe->f64Bit + ? RT_OFFSETOF(IMAGE_NT_HEADERS64, OptionalHeader.CheckSum) + : RT_OFFSETOF(IMAGE_NT_HEADERS32, OptionalHeader.CheckSum)); + pPlaces->cbCksum = RT_SIZEOFMEMB(IMAGE_NT_HEADERS32, OptionalHeader.CheckSum); + pPlaces->offSecDir = (uint32_t)pModPe->offNtHdrs + + (pModPe->f64Bit + ? RT_OFFSETOF(IMAGE_NT_HEADERS64, OptionalHeader.DataDirectory[IMAGE_DIRECTORY_ENTRY_SECURITY]) + : RT_OFFSETOF(IMAGE_NT_HEADERS32, OptionalHeader.DataDirectory[IMAGE_DIRECTORY_ENTRY_SECURITY])); + pPlaces->cbSecDir = sizeof(IMAGE_DATA_DIRECTORY); + pPlaces->offEndSpecial = pPlaces->offSecDir + pPlaces->cbSecDir; + return VINF_SUCCESS; +} + + +/** + * Calculates the whole image hash. + * + * The Authenticode_PE.docx version 1.0 explains how the hash is calculated, + * points 8 thru 14 are bogus. If you study them a little carefully, it is + * clear that the algorithm will only work if the raw data for the section have + * no gaps between them or in front of them. So, this elaborate section sorting + * by PointerToRawData and working them section by section could simply be + * replaced by one point: + * + * 8. Add all the file content between SizeOfHeaders and the + * attribute certificate table to the hash. Then finalize + * the hash. + * + * Not sure if Microsoft is screwing with us on purpose here or whether they + * assigned some of this work to less talented engineers and tech writers. I + * love fact that they say it's "simplified" and should yield the correct hash + * for "almost all" files. Stupid, Stupid, Microsofties!! + * + * My simplified implementation that just hashes the entire file up to the + * signature or end of the file produces the same SHA1 values as "signtool + * verify /v" does both for edited executables with gaps between/before/after + * sections raw data and normal executables without any gaps. + * + * @returns IPRT status code. + * @param pModPe The PE module. + * @param pvScratch Scratch buffer. + * @param cbScratch Size of the scratch buffer. + * @param enmDigest The hash digest type we're calculating. + * @param pHashCtx Hash context scratch area. + * @param pHashRes Hash result buffer. + * @param pErrInfo Optional error info buffer. + */ +static int rtldrPE_HashImageCommon(PRTLDRMODPE pModPe, void *pvScratch, uint32_t cbScratch, RTDIGESTTYPE enmDigest, + PRTLDRPEHASHCTXUNION pHashCtx, PRTLDRPEHASHRESUNION pHashRes, PRTERRINFO pErrInfo) +{ + int rc = rtLdrPE_HashInit(pHashCtx, enmDigest); + if (RT_FAILURE(rc)) + return rc; + + /* + * Calculate the special places. + */ + RTLDRPEHASHSPECIALS SpecialPlaces = { 0, 0, 0, 0, 0, 0 }; /* shut up gcc */ + rc = rtldrPe_CalcSpecialHashPlaces(pModPe, &SpecialPlaces, pErrInfo); + if (RT_FAILURE(rc)) + return rc; + + /* + * Work our way thru the image data. + */ + uint32_t off = 0; + while (off < SpecialPlaces.cbToHash) + { + uint32_t cbRead = RT_MIN(SpecialPlaces.cbToHash - off, cbScratch); + uint8_t *pbCur = (uint8_t *)pvScratch; + rc = pModPe->pReader->pfnRead(pModPe->pReader, pbCur, cbRead, off); + if (RT_FAILURE(rc)) + return RTErrInfoSetF(pErrInfo, VERR_LDRVI_READ_ERROR_HASH, "Hash read error at %#x: %Rrc (cbRead=%#zx)", + off, rc, cbRead); + + if (off < SpecialPlaces.offEndSpecial) + { + if (off < SpecialPlaces.offCksum) + { + /* Hash everything up to the checksum. */ + uint32_t cbChunk = RT_MIN(SpecialPlaces.offCksum - off, cbRead); + rtLdrPE_HashUpdate(pHashCtx, enmDigest, pbCur, cbChunk); + pbCur += cbChunk; + cbRead -= cbChunk; + off += cbChunk; + } + + if (off < SpecialPlaces.offCksum + SpecialPlaces.cbCksum && off >= SpecialPlaces.offCksum) + { + /* Skip the checksum */ + uint32_t cbChunk = RT_MIN(SpecialPlaces.offCksum + SpecialPlaces.cbCksum - off, cbRead); + pbCur += cbChunk; + cbRead -= cbChunk; + off += cbChunk; + } + + if (off < SpecialPlaces.offSecDir && off >= SpecialPlaces.offCksum + SpecialPlaces.cbCksum) + { + /* Hash everything between the checksum and the data dir entry. */ + uint32_t cbChunk = RT_MIN(SpecialPlaces.offSecDir - off, cbRead); + rtLdrPE_HashUpdate(pHashCtx, enmDigest, pbCur, cbChunk); + pbCur += cbChunk; + cbRead -= cbChunk; + off += cbChunk; + } + + if (off < SpecialPlaces.offSecDir + SpecialPlaces.cbSecDir && off >= SpecialPlaces.offSecDir) + { + /* Skip the security data directory entry. */ + uint32_t cbChunk = RT_MIN(SpecialPlaces.offSecDir + SpecialPlaces.cbSecDir - off, cbRead); + pbCur += cbChunk; + cbRead -= cbChunk; + off += cbChunk; + } + } + + rtLdrPE_HashUpdate(pHashCtx, enmDigest, pbCur, cbRead); + + /* Advance */ + off += cbRead; + } + + /* + * If there isn't a signature, experiments with signtool indicates that we + * have to zero padd the file size until it's a multiple of 8. (This is + * most likely to give 64-bit values in the certificate a natural alignment + * when memory mapped.) + */ + if ( pModPe->SecurityDir.Size != SpecialPlaces.cbToHash + && SpecialPlaces.cbToHash != RT_ALIGN_32(SpecialPlaces.cbToHash, WIN_CERTIFICATE_ALIGNMENT)) + { + static const uint8_t s_abZeros[WIN_CERTIFICATE_ALIGNMENT] = { 0,0,0,0, 0,0,0,0 }; + rtLdrPE_HashUpdate(pHashCtx, enmDigest, s_abZeros, + RT_ALIGN_32(SpecialPlaces.cbToHash, WIN_CERTIFICATE_ALIGNMENT) - SpecialPlaces.cbToHash); + } + + /* + * Done. Finalize the hashes. + */ + rtLdrPE_HashFinalize(pHashCtx, enmDigest, pHashRes); + return VINF_SUCCESS; +} + +#ifndef IPRT_WITHOUT_LDR_VERIFY + +/** + * Verifies image preconditions not checked by the open validation code. + * + * @returns IPRT status code. + * @param pModPe The PE module. + * @param pErrInfo Optional error info buffer. + */ +static int rtldrPE_VerifySignatureImagePrecoditions(PRTLDRMODPE pModPe, PRTERRINFO pErrInfo) +{ + /* + * Validate the sections. While doing so, track the amount of section raw + * section data in the file so we can use this to validate the signature + * table location later. + */ + uint32_t offNext = pModPe->cbHeaders; /* same */ + for (uint32_t i = 0; i < pModPe->cSections; i++) + if (pModPe->paSections[i].SizeOfRawData > 0) + { + uint64_t offEnd = (uint64_t)pModPe->paSections[i].PointerToRawData + pModPe->paSections[i].SizeOfRawData; + if (offEnd > offNext) + { + if (offEnd >= _2G) + return RTErrInfoSetF(pErrInfo, VERR_LDRVI_SECTION_RAW_DATA_VALUES, + "Section %#u specifies file data after 2GB: PointerToRawData=%#x SizeOfRawData=%#x", + i, pModPe->paSections[i].PointerToRawData, pModPe->paSections[i].SizeOfRawData); + offNext = (uint32_t)offEnd; + } + } + uint32_t offEndOfSectionData = offNext; + + /* + * Validate the signature. + */ + if (!pModPe->SecurityDir.Size) + return RTErrInfoSet(pErrInfo, VERR_LDRVI_NOT_SIGNED, "Not signed."); + + uint32_t const offSignature = pModPe->SecurityDir.VirtualAddress; + uint32_t const cbSignature = pModPe->SecurityDir.Size; + if ( cbSignature <= sizeof(WIN_CERTIFICATE) + || cbSignature >= RTLDRMODPE_MAX_SECURITY_DIR_SIZE + || offSignature >= _2G) + return RTErrInfoSetF(pErrInfo, VERR_LDRVI_INVALID_SECURITY_DIR_ENTRY, + "Invalid security data dir entry: cb=%#x off=%#x", cbSignature, offSignature); + + if (offSignature < offEndOfSectionData) + return RTErrInfoSetF(pErrInfo, VERR_LDRVI_INVALID_SECURITY_DIR_ENTRY, + "Invalid security data dir entry offset: %#x offEndOfSectionData=%#x", + offSignature, offEndOfSectionData); + + if (RT_ALIGN_32(offSignature, WIN_CERTIFICATE_ALIGNMENT) != offSignature) + return RTErrInfoSetF(pErrInfo, VERR_LDRVI_INVALID_SECURITY_DIR_ENTRY, + "Misaligned security dir entry offset: %#x (alignment=%#x)", + offSignature, WIN_CERTIFICATE_ALIGNMENT); + + + return VINF_SUCCESS; +} + + +/** + * Reads and checks the raw signature data. + * + * @returns IPRT status code. + * @param pModPe The PE module. + * @param ppSignature Where to return the pointer to the parsed + * signature data. Pass to + * rtldrPE_VerifySignatureDestroy when done. + * @param pErrInfo Optional error info buffer. + */ +static int rtldrPE_VerifySignatureRead(PRTLDRMODPE pModPe, PRTLDRPESIGNATURE *ppSignature, PRTERRINFO pErrInfo) +{ + *ppSignature = NULL; + AssertReturn(pModPe->SecurityDir.Size > 0, VERR_INTERNAL_ERROR_2); + + /* + * Allocate memory for reading and parsing it. + */ + if (pModPe->SecurityDir.Size >= RTLDRMODPE_MAX_SECURITY_DIR_SIZE) + return RTErrInfoSetF(pErrInfo, VERR_LDRVI_INVALID_SECURITY_DIR_ENTRY, + "Signature directory is to large: %#x", pModPe->SecurityDir.Size); + + PRTLDRPESIGNATURE pSignature = (PRTLDRPESIGNATURE)RTMemTmpAllocZ(sizeof(*pSignature) + 64 + pModPe->SecurityDir.Size); + if (!pSignature) + return RTErrInfoSetF(pErrInfo, VERR_LDRVI_NO_MEMORY_SIGNATURE, "Failed to allocate %zu bytes", + sizeof(*pSignature) + 64 + pModPe->SecurityDir.Size); + pSignature->pRawData = RT_ALIGN_PT(pSignature + 1, 64, WIN_CERTIFICATE const *); + + + /* + * Read it. + */ + int rc = pModPe->pReader->pfnRead(pModPe->pReader, (void *)pSignature->pRawData, + pModPe->SecurityDir.Size, pModPe->SecurityDir.VirtualAddress); + if (RT_SUCCESS(rc)) + { + /* + * Check the table we've read in. + */ + uint32_t cbLeft = pModPe->SecurityDir.Size; + WIN_CERTIFICATE const *pEntry = pSignature->pRawData; + for (;;) + { + if ( cbLeft < sizeof(*pEntry) + || pEntry->dwLength > cbLeft + || pEntry->dwLength < sizeof(*pEntry)) + rc = RTErrInfoSetF(pErrInfo, VERR_LDRVI_BAD_CERT_HDR_LENGTH, + "Bad WIN_CERTIFICATE length: %#x (max %#x, signature=%u)", + pEntry->dwLength, cbLeft, 0); + else if (pEntry->wRevision != WIN_CERT_REVISION_2_0) + rc = RTErrInfoSetF(pErrInfo, VERR_LDRVI_BAD_CERT_HDR_REVISION, + "Unsupported WIN_CERTIFICATE revision value: %#x (signature=%u)", + pEntry->wRevision, 0); + else if (pEntry->wCertificateType != WIN_CERT_TYPE_PKCS_SIGNED_DATA) + rc = RTErrInfoSetF(pErrInfo, VERR_LDRVI_BAD_CERT_HDR_TYPE, + "Unsupported WIN_CERTIFICATE certificate type: %#x (signature=%u)", + pEntry->wCertificateType, 0); + else + { + /* advance */ + uint32_t cbEntry = RT_ALIGN(pEntry->dwLength, WIN_CERTIFICATE_ALIGNMENT); + if (cbEntry >= cbLeft) + break; + cbLeft -= cbEntry; + pEntry = (WIN_CERTIFICATE *)((uintptr_t)pEntry + cbEntry); + + /* For now, only one entry is supported. */ + rc = RTErrInfoSet(pErrInfo, VERR_LDRVI_BAD_CERT_MULTIPLE, "Multiple WIN_CERTIFICATE entries are not supported."); + } + break; + } + if (RT_SUCCESS(rc)) + { + *ppSignature = pSignature; + return VINF_SUCCESS; + } + } + else + rc = RTErrInfoSetF(pErrInfo, VERR_LDRVI_READ_ERROR_SIGNATURE, "Signature read error: %Rrc", rc); + RTMemTmpFree(pSignature); + return rc; +} + + +/** + * Destroys the parsed signature. + * + * @param pModPe The PE module. + * @param pSignature The signature data to destroy. + */ +static void rtldrPE_VerifySignatureDestroy(PRTLDRMODPE pModPe, PRTLDRPESIGNATURE pSignature) +{ + RTCrPkcs7ContentInfo_Delete(&pSignature->ContentInfo); + RTMemTmpFree(pSignature); +} + + +/** + * Decodes the raw signature. + * + * @returns IPRT status code. + * @param pModPe The PE module. + * @param pSignature The signature data. + * @param pErrInfo Optional error info buffer. + */ +static int rtldrPE_VerifySignatureDecode(PRTLDRMODPE pModPe, PRTLDRPESIGNATURE pSignature, PRTERRINFO pErrInfo) +{ + WIN_CERTIFICATE const *pEntry = pSignature->pRawData; + AssertReturn(pEntry->wCertificateType == WIN_CERT_TYPE_PKCS_SIGNED_DATA, VERR_INTERNAL_ERROR_2); + AssertReturn(pEntry->wRevision == WIN_CERT_REVISION_2_0, VERR_INTERNAL_ERROR_2); + + RTASN1CURSORPRIMARY PrimaryCursor; + RTAsn1CursorInitPrimary(&PrimaryCursor, + &pEntry->bCertificate[0], + pEntry->dwLength - RT_OFFSETOF(WIN_CERTIFICATE, bCertificate), + pErrInfo, + &g_RTAsn1DefaultAllocator, + 0, + "WinCert"); + + int rc = RTCrPkcs7ContentInfo_DecodeAsn1(&PrimaryCursor.Cursor, 0, &pSignature->ContentInfo, "CI"); + if (RT_SUCCESS(rc)) + { + if (RTCrPkcs7ContentInfo_IsSignedData(&pSignature->ContentInfo)) + { + pSignature->pSignedData = pSignature->ContentInfo.u.pSignedData; + + /* + * Decode the authenticode bits. + */ + if (!strcmp(pSignature->pSignedData->ContentInfo.ContentType.szObjId, RTCRSPCINDIRECTDATACONTENT_OID)) + { + pSignature->pIndData = pSignature->pSignedData->ContentInfo.u.pIndirectDataContent; + Assert(pSignature->pIndData); + + /* + * Check that things add up. + */ + if (RT_SUCCESS(rc)) + rc = RTCrPkcs7SignedData_CheckSanity(pSignature->pSignedData, + RTCRPKCS7SIGNEDDATA_SANITY_F_AUTHENTICODE + | RTCRPKCS7SIGNEDDATA_SANITY_F_ONLY_KNOWN_HASH + | RTCRPKCS7SIGNEDDATA_SANITY_F_SIGNING_CERT_PRESENT, + pErrInfo, "SD"); + if (RT_SUCCESS(rc)) + rc = RTCrSpcIndirectDataContent_CheckSanityEx(pSignature->pIndData, + pSignature->pSignedData, + RTCRSPCINDIRECTDATACONTENT_SANITY_F_ONLY_KNOWN_HASH, + pErrInfo); + if (RT_SUCCESS(rc)) + { + PCRTCRX509ALGORITHMIDENTIFIER pDigestAlgorithm = &pSignature->pIndData->DigestInfo.DigestAlgorithm; + pSignature->enmDigest = RTCrX509AlgorithmIdentifier_QueryDigestType(pDigestAlgorithm); + AssertReturn(pSignature->enmDigest != RTDIGESTTYPE_INVALID, VERR_INTERNAL_ERROR_4); /* Checked above! */ + } + } + else + rc = RTErrInfoSetF(pErrInfo, VERR_LDRVI_EXPECTED_INDIRECT_DATA_CONTENT_OID, + "Unknown pSignedData.ContentInfo.ContentType.szObjId value: %s (expected %s)", + pSignature->pSignedData->ContentInfo.ContentType.szObjId, RTCRSPCINDIRECTDATACONTENT_OID); + } + } + return rc; +} + + +static int rtldrPE_VerifyAllPageHashes(PRTLDRMODPE pModPe, PCRTCRSPCSERIALIZEDOBJECTATTRIBUTE pAttrib, RTDIGESTTYPE enmDigest, + void *pvScratch, size_t cbScratch, PRTERRINFO pErrInfo) { - PRTLDRMODPE pModPe = (PRTLDRMODPE)pMod; + AssertReturn(cbScratch >= _4K, VERR_INTERNAL_ERROR_3); /* - * Check if there is actually anything to work on. + * Calculate the special places. */ - if ( !pModPe->ExportDir.VirtualAddress - || !pModPe->ExportDir.Size) - return VERR_SYMBOL_NOT_FOUND; + RTLDRPEHASHSPECIALS SpecialPlaces = { 0, 0, 0, 0, 0, 0 }; /* shut up gcc */ + int rc = rtldrPe_CalcSpecialHashPlaces(pModPe, &SpecialPlaces, pErrInfo); + if (RT_FAILURE(rc)) + return rc; - /* - * No bits supplied? Do we need to read the bits? - */ - if (!pvBits) + uint32_t const cbHash = rtLdrPE_HashGetHashSize(enmDigest); + uint32_t const cPages = pAttrib->u.pPageHashes->RawData.Asn1Core.cb / (cbHash + 4); + if (cPages * (cbHash + 4) != pAttrib->u.pPageHashes->RawData.Asn1Core.cb) + return RTErrInfoSetF(pErrInfo, VERR_LDRVI_PAGE_HASH_TAB_SIZE_OVERFLOW, + "Page hashes size issue: cb=%#x cbHash=%#x", + pAttrib->u.pPageHashes->RawData.Asn1Core.cb, cbHash); + + /* + * Walk the table. + */ + uint32_t const cbScratchReadMax = (uint32_t)(cbScratch & ~(uint32_t)(_4K - 1)); + uint32_t cbScratchRead = 0; + uint32_t offScratchRead = 0; + + uint32_t offPrev = 0; +#ifdef COMPLICATED_AND_WRONG + uint32_t offSectEnd = pModPe->cbHeaders; + uint32_t iSh = UINT32_MAX; +#endif + uint8_t const *pbHashTab = pAttrib->u.pPageHashes->RawData.Asn1Core.uData.pu8; + for (uint32_t iPage = 0; iPage < cPages - 1; iPage++) { - if (!pModPe->pvBits) + /* Decode the page offset. */ + uint32_t const offPageInFile = RT_MAKE_U32_FROM_U8(pbHashTab[0], pbHashTab[1], pbHashTab[2], pbHashTab[3]); + if (RT_UNLIKELY(offPageInFile >= SpecialPlaces.cbToHash)) + return RTErrInfoSetF(pErrInfo, VERR_LDRVI_PAGE_HASH_TAB_TOO_LONG, + "Page hash entry #%u is beyond the signature table start: %#x, %#x", + iPage, offPageInFile, SpecialPlaces.cbToHash); + if (RT_UNLIKELY(offPageInFile < offPrev)) + return RTErrInfoSetF(pErrInfo, VERR_LDRVI_PAGE_HASH_TAB_NOT_STRICTLY_SORTED, + "Page hash table is not strictly sorted: entry #%u @%#x, previous @%#x\n", + iPage, offPageInFile, offPrev); + +#ifdef COMPLICATED_AND_WRONG + /* Figure out how much to read and how much to zero. Need keep track + of the on-disk section boundraries. */ + if (offPageInFile >= offSectEnd) + { + iSh++; + if ( iSh < pModPe->cSections + && offPageInFile - pModPe->paSections[iSh].PointerToRawData < pModPe->paSections[iSh].SizeOfRawData) + offSectEnd = pModPe->paSections[iSh].PointerToRawData + pModPe->paSections[iSh].SizeOfRawData; + else + { + iSh = 0; + while ( iSh < pModPe->cSections + && offPageInFile - pModPe->paSections[iSh].PointerToRawData >= pModPe->paSections[iSh].SizeOfRawData) + iSh++; + if (iSh < pModPe->cSections) + offSectEnd = pModPe->paSections[iSh].PointerToRawData + pModPe->paSections[iSh].SizeOfRawData; + else + return RTErrInfoSetF(pErrInfo, VERR_PAGE_HASH_TAB_HASHES_NON_SECTION_DATA, + "Page hash entry #%u isn't in any section: %#x", iPage, offPageInFile); + } + } + +#else + /* Figure out how much to read and how much take as zero. Use the next + page offset and the signature as upper boundraries. */ +#endif + uint32_t cbPageInFile = _4K; +#ifdef COMPLICATED_AND_WRONG + if (offPageInFile + cbPageInFile > offSectEnd) + cbPageInFile = offSectEnd - offPageInFile; +#else + if (iPage + 1 < cPages) { - int rc = rtldrPEReadBits(pModPe); + uint32_t offNextPage = RT_MAKE_U32_FROM_U8(pbHashTab[0 + 4 + cbHash], pbHashTab[1 + 4 + cbHash], + pbHashTab[2 + 4 + cbHash], pbHashTab[3 + 4 + cbHash]); + if (offNextPage - offPageInFile < cbPageInFile) + cbPageInFile = offNextPage - offPageInFile; + } +#endif + + if (offPageInFile + cbPageInFile > SpecialPlaces.cbToHash) + cbPageInFile = SpecialPlaces.cbToHash - offPageInFile; + + /* Did we get a cache hit? */ + uint8_t *pbCur = (uint8_t *)pvScratch; + if ( offPageInFile + cbPageInFile <= offScratchRead + cbScratchRead + && offPageInFile >= offScratchRead) + pbCur += offPageInFile - offScratchRead; + /* Missed, read more. */ + else + { + offScratchRead = offPageInFile; +#ifdef COMPLICATED_AND_WRONG + cbScratchRead = offSectEnd - offPageInFile; +#else + cbScratchRead = SpecialPlaces.cbToHash - offPageInFile; +#endif + if (cbScratchRead > cbScratchReadMax) + cbScratchRead = cbScratchReadMax; + rc = pModPe->pReader->pfnRead(pModPe->pReader, pbCur, cbScratchRead, offScratchRead); if (RT_FAILURE(rc)) - return rc; + return RTErrInfoSetF(pErrInfo, VERR_LDRVI_READ_ERROR_HASH, + "Page hash read error at %#x: %Rrc (cbScratchRead=%#zx)", + offScratchRead, rc, cbScratchRead); } - pvBits = pModPe->pvBits; - } - PIMAGE_EXPORT_DIRECTORY pExpDir = PE_RVA2TYPE(pvBits, pModPe->ExportDir.VirtualAddress, PIMAGE_EXPORT_DIRECTORY); - int iExpOrdinal = 0; /* index into address table. */ - if ((uintptr_t)pszSymbol <= 0xffff) - { /* - * Find ordinal export: Simple table lookup. - */ - unsigned uOrdinal = (uintptr_t)pszSymbol & 0xffff; - if ( uOrdinal >= pExpDir->Base + RT_MAX(pExpDir->NumberOfNames, pExpDir->NumberOfFunctions) - || uOrdinal < pExpDir->Base) - return VERR_SYMBOL_NOT_FOUND; - iExpOrdinal = uOrdinal - pExpDir->Base; - } - else - { - /* - * Find Named Export: Do binary search on the name table. + * Hash it. */ - uint32_t *paRVANames = PE_RVA2TYPE(pvBits, pExpDir->AddressOfNames, uint32_t *); - uint16_t *paOrdinals = PE_RVA2TYPE(pvBits, pExpDir->AddressOfNameOrdinals, uint16_t *); - int iStart = 1; - int iEnd = pExpDir->NumberOfNames; + RTLDRPEHASHCTXUNION HashCtx; + rc = rtLdrPE_HashInit(&HashCtx, enmDigest); + AssertRCReturn(rc, rc); + + /* Deal with special places. */ + uint32_t cbLeft = cbPageInFile; + if (offPageInFile < SpecialPlaces.offEndSpecial) + { + uint32_t off = offPageInFile; + if (off < SpecialPlaces.offCksum) + { + /* Hash everything up to the checksum. */ + uint32_t cbChunk = RT_MIN(SpecialPlaces.offCksum - off, cbLeft); + rtLdrPE_HashUpdate(&HashCtx, enmDigest, pbCur, cbChunk); + pbCur += cbChunk; + cbLeft -= cbChunk; + off += cbChunk; + } - for (;;) - { - /* end of search? */ - if (iStart > iEnd) + if (off < SpecialPlaces.offCksum + SpecialPlaces.cbCksum && off >= SpecialPlaces.offCksum) { - #ifdef RT_STRICT - /* do a linear search just to verify the correctness of the above algorithm */ - for (unsigned i = 0; i < pExpDir->NumberOfNames; i++) - { - AssertMsg(i == 0 || strcmp(PE_RVA2TYPE(pvBits, paRVANames[i], const char *), PE_RVA2TYPE(pvBits, paRVANames[i - 1], const char *)) > 0, - ("bug in binary export search!!!\n")); - AssertMsg(strcmp(PE_RVA2TYPE(pvBits, paRVANames[i], const char *), pszSymbol) != 0, - ("bug in binary export search!!!\n")); - } - #endif - return VERR_SYMBOL_NOT_FOUND; + /* Skip the checksum */ + uint32_t cbChunk = RT_MIN(SpecialPlaces.offCksum + SpecialPlaces.cbCksum - off, cbLeft); + pbCur += cbChunk; + cbLeft -= cbChunk; + off += cbChunk; } - int i = (iEnd - iStart) / 2 + iStart; - const char *pszExpName = PE_RVA2TYPE(pvBits, paRVANames[i - 1], const char *); - int diff = strcmp(pszExpName, pszSymbol); - if (diff > 0) /* pszExpName > pszSymbol: search chunck before i */ - iEnd = i - 1; - else if (diff) /* pszExpName < pszSymbol: search chunk after i */ - iStart = i + 1; - else /* pszExpName == pszSymbol */ + if (off < SpecialPlaces.offSecDir && off >= SpecialPlaces.offCksum + SpecialPlaces.cbCksum) { - iExpOrdinal = paOrdinals[i - 1]; - break; + /* Hash everything between the checksum and the data dir entry. */ + uint32_t cbChunk = RT_MIN(SpecialPlaces.offSecDir - off, cbLeft); + rtLdrPE_HashUpdate(&HashCtx, enmDigest, pbCur, cbChunk); + pbCur += cbChunk; + cbLeft -= cbChunk; + off += cbChunk; } - } /* binary search thru name table */ - } - /* - * Found export (iExpOrdinal). - */ - uint32_t * paAddress = PE_RVA2TYPE(pvBits, pExpDir->AddressOfFunctions, uint32_t *); - unsigned uRVAExport = paAddress[iExpOrdinal]; + if (off < SpecialPlaces.offSecDir + SpecialPlaces.cbSecDir && off >= SpecialPlaces.offSecDir) + { + /* Skip the security data directory entry. */ + uint32_t cbChunk = RT_MIN(SpecialPlaces.offSecDir + SpecialPlaces.cbSecDir - off, cbLeft); + pbCur += cbChunk; + cbLeft -= cbChunk; + off += cbChunk; + } + } - if ( uRVAExport > pModPe->ExportDir.VirtualAddress - && uRVAExport < pModPe->ExportDir.VirtualAddress + pModPe->ExportDir.Size) - { - /* Resolve forwarder. */ - AssertMsgFailed(("Forwarders are not supported!\n")); - return VERR_SYMBOL_NOT_FOUND; - } + rtLdrPE_HashUpdate(&HashCtx, enmDigest, pbCur, cbLeft); + if (cbPageInFile < _4K) + rtLdrPE_HashUpdate(&HashCtx, enmDigest, &g_abRTZero4K[cbPageInFile], _4K - cbPageInFile); + + /* + * Finish the hash calculation and compare the result. + */ + RTLDRPEHASHRESUNION HashRes; + rtLdrPE_HashFinalize(&HashCtx, enmDigest, &HashRes); - /* Get plain export address */ - *pValue = PE_RVA2TYPE(BaseAddress, uRVAExport, RTUINTPTR); + pbHashTab += 4; + if (memcmp(pbHashTab, &HashRes, cbHash) != 0) + return RTErrInfoSetF(pErrInfo, VERR_LDRVI_PAGE_HASH_MISMATCH, + "Page hash failed for page #%u, @%#x, %#x bytes: %.*Rhxs != %.*Rhxs", + iPage, offPageInFile, cbPageInFile, (size_t)cbHash, pbHashTab, (size_t)cbHash, &HashRes); + pbHashTab += cbHash; + offPrev = offPageInFile; + } + /* + * Check that the last table entry has a hash value of zero. + */ + if (ASMMemIsAll8(pbHashTab + 4, cbHash, 0) != NULL) + return RTErrInfoSetF(pErrInfo, VERR_LDRVI_PAGE_HASH_TAB_TOO_LONG, + "Maltform final page hash table entry: #%u %#010x %.*Rhxs", + cPages - 1, RT_MAKE_U32_FROM_U8(pbHashTab[0], pbHashTab[1], pbHashTab[2], pbHashTab[3]), + (size_t)cbHash, pbHashTab + 4); return VINF_SUCCESS; } -/** @copydoc RTLDROPS::pfnEnumSymbols */ -static DECLCALLBACK(int) rtldrPEEnumSymbols(PRTLDRMODINTERNAL pMod, unsigned fFlags, const void *pvBits, RTUINTPTR BaseAddress, - PFNRTLDRENUMSYMS pfnCallback, void *pvUser) +/** + * Validates the image hash, including page hashes if present. + * + * @returns IPRT status code. + * @param pModPe The PE module. + * @param pSignature The decoded signature data. + * @param pErrInfo Optional error info buffer. + */ +static int rtldrPE_VerifySignatureValidateHash(PRTLDRMODPE pModPe, PRTLDRPESIGNATURE pSignature, PRTERRINFO pErrInfo) { - PRTLDRMODPE pModPe = (PRTLDRMODPE)pMod; + AssertReturn(pSignature->enmDigest > RTDIGESTTYPE_INVALID && pSignature->enmDigest < RTDIGESTTYPE_END, VERR_INTERNAL_ERROR_4); + AssertPtrReturn(pSignature->pIndData, VERR_INTERNAL_ERROR_5); + AssertReturn(RTASN1CORE_IS_PRESENT(&pSignature->pIndData->DigestInfo.Digest.Asn1Core), VERR_INTERNAL_ERROR_5); + AssertPtrReturn(pSignature->pIndData->DigestInfo.Digest.Asn1Core.uData.pv, VERR_INTERNAL_ERROR_5); - /* - * Check if there is actually anything to work on. - */ - if ( !pModPe->ExportDir.VirtualAddress - || !pModPe->ExportDir.Size) - return VERR_SYMBOL_NOT_FOUND; + uint32_t const cbHash = rtLdrPE_HashGetHashSize(pSignature->enmDigest); + AssertReturn(pSignature->pIndData->DigestInfo.Digest.Asn1Core.cb == cbHash, VERR_INTERNAL_ERROR_5); /* - * No bits supplied? Do we need to read the bits? + * Allocate a temporary memory buffer. + * Note! The _4K that gets subtracted is to avoid that the 16-byte heap + * block header in ring-0 (iprt) caused any unnecessary internal + * heap fragmentation. */ - if (!pvBits) +#ifdef IN_RING0 + uint32_t cbScratch = _256K - _4K; +#else + uint32_t cbScratch = _1M; +#endif + void *pvScratch = RTMemTmpAlloc(cbScratch); + if (!pvScratch) { - if (!pModPe->pvBits) - { - int rc = rtldrPEReadBits(pModPe); - if (RT_FAILURE(rc)) - return rc; - } - pvBits = pModPe->pvBits; + cbScratch = _4K; + pvScratch = RTMemTmpAlloc(cbScratch); + if (!pvScratch) + return RTErrInfoSet(pErrInfo, VERR_NO_TMP_MEMORY, "Failed to allocate 4KB of scratch space for hashing image."); } /* - * We enumerates by ordinal, which means using a slow linear search for - * getting any name + * Calculate and compare the full image hash. */ - PIMAGE_EXPORT_DIRECTORY pExpDir = PE_RVA2TYPE(pvBits, pModPe->ExportDir.VirtualAddress, PIMAGE_EXPORT_DIRECTORY); - uint32_t *paAddress = PE_RVA2TYPE(pvBits, pExpDir->AddressOfFunctions, uint32_t *); - uint32_t *paRVANames = PE_RVA2TYPE(pvBits, pExpDir->AddressOfNames, uint32_t *); - uint16_t *paOrdinals = PE_RVA2TYPE(pvBits, pExpDir->AddressOfNameOrdinals, uint16_t *); - uintptr_t uNamePrev = 0; - unsigned cOrdinals = RT_MAX(pExpDir->NumberOfNames, pExpDir->NumberOfFunctions); - for (unsigned uOrdinal = 0; uOrdinal < cOrdinals; uOrdinal++) + int rc = rtldrPE_HashImageCommon(pModPe, pvScratch, cbScratch, pSignature->enmDigest, + &pSignature->HashCtx, &pSignature->HashRes, pErrInfo); + if (RT_SUCCESS(rc)) { - if (paAddress[uOrdinal] /* needed? */) + if (!memcmp(&pSignature->HashRes, pSignature->pIndData->DigestInfo.Digest.Asn1Core.uData.pv, cbHash)) { /* - * Look for name. + * Compare the page hashes if present. + * + * Seems the difference between V1 and V2 page hash attributes is + * that v1 uses SHA-1 while v2 uses SHA-256. The data structures to + * be identical otherwise. Initially we assumed the digest + * algorithm was supposed to be RTCRSPCINDIRECTDATACONTENT::DigestInfo, + * i.e. the same as for the whole image hash. The initial approach + * worked just fine, but this makes more sense. + * + * (See also comments in osslsigncode.c (google it).) */ - const char *pszName = NULL; - /* Search from previous + 1 to the end. */ - unsigned uName = uNamePrev + 1; - while (uName < pExpDir->NumberOfNames) - { - if (paOrdinals[uName] == uOrdinal) - { - pszName = PE_RVA2TYPE(pvBits, paRVANames[uName], const char *); - uNamePrev = uName; - break; - } - uName++; - } - if (!pszName) + PCRTCRSPCSERIALIZEDOBJECTATTRIBUTE pAttrib; + pAttrib = RTCrSpcIndirectDataContent_GetPeImageObjAttrib(pSignature->pIndData, + RTCRSPCSERIALIZEDOBJECTATTRIBUTETYPE_PAGE_HASHES_V2); + if (pAttrib) + rc = rtldrPE_VerifyAllPageHashes(pModPe, pAttrib, RTDIGESTTYPE_SHA256, pvScratch, cbScratch, pErrInfo); + else { - /* Search from start to the previous. */ - uName = 0; - for (uName = 0 ; uName <= uNamePrev; uName++) - { - if (paOrdinals[uName] == uOrdinal) - { - pszName = PE_RVA2TYPE(pvBits, paRVANames[uName], const char *); - uNamePrev = uName; - break; - } - } + pAttrib = RTCrSpcIndirectDataContent_GetPeImageObjAttrib(pSignature->pIndData, + RTCRSPCSERIALIZEDOBJECTATTRIBUTETYPE_PAGE_HASHES_V1); + if (pAttrib) + rc = rtldrPE_VerifyAllPageHashes(pModPe, pAttrib, RTDIGESTTYPE_SHA1, pvScratch, cbScratch, pErrInfo); } + } + else + rc = RTErrInfoSetF(pErrInfo, VERR_LDRVI_IMAGE_HASH_MISMATCH, + "Full image signature mismatch: %.*Rhxs, expected %.*Rhxs", + cbHash, &pSignature->HashRes, + cbHash, pSignature->pIndData->DigestInfo.Digest.Asn1Core.uData.pv); + } - /* - * Get address. - */ - uintptr_t uRVAExport = paAddress[uOrdinal]; - RTUINTPTR Value; - if ( uRVAExport - (uintptr_t)pModPe->ExportDir.VirtualAddress - < pModPe->ExportDir.Size) + RTMemTmpFree(pvScratch); + return rc; +} + +#endif /* !IPRT_WITHOUT_LDR_VERIFY */ + + +/** @interface_method_impl{RTLDROPS,pfnVerifySignature} */ +static DECLCALLBACK(int) rtldrPE_VerifySignature(PRTLDRMODINTERNAL pMod, PFNRTLDRVALIDATESIGNEDDATA pfnCallback, void *pvUser, + PRTERRINFO pErrInfo) +{ +#ifndef IPRT_WITHOUT_LDR_VERIFY + PRTLDRMODPE pModPe = (PRTLDRMODPE)pMod; + + int rc = rtldrPE_VerifySignatureImagePrecoditions(pModPe, pErrInfo); + if (RT_SUCCESS(rc)) + { + PRTLDRPESIGNATURE pSignature = NULL; + rc = rtldrPE_VerifySignatureRead(pModPe, &pSignature, pErrInfo); + if (RT_SUCCESS(rc)) + { + rc = rtldrPE_VerifySignatureDecode(pModPe, pSignature, pErrInfo); + if (RT_SUCCESS(rc)) + rc = rtldrPE_VerifySignatureValidateHash(pModPe, pSignature, pErrInfo); + if (RT_SUCCESS(rc)) { - /* Resolve forwarder. */ - AssertMsgFailed(("Forwarders are not supported!\n")); - continue; + rc = pfnCallback(&pModPe->Core, RTLDRSIGNATURETYPE_PKCS7_SIGNED_DATA, + &pSignature->ContentInfo, sizeof(pSignature->ContentInfo), + pErrInfo, pvUser); } - else - /* Get plain export address */ - Value = PE_RVA2TYPE(BaseAddress, uRVAExport, RTUINTPTR); - - /* - * Call back. - */ - int rc = pfnCallback(pMod, pszName, uOrdinal + pExpDir->Base, Value, pvUser); - if (rc) - return rc; + rtldrPE_VerifySignatureDestroy(pModPe, pSignature); } } + return rc; +#else + return VERR_NOT_SUPPORTED; +#endif +} - return VINF_SUCCESS; + + +/** @interface_method_impl{RTLDROPS,pfnHashImage} */ +static DECLCALLBACK(int) rtldrPE_HashImage(PRTLDRMODINTERNAL pMod, RTDIGESTTYPE enmDigest, char *pszDigest, size_t cbDigest) +{ + PRTLDRMODPE pModPe = (PRTLDRMODPE)pMod; + + /* + * Allocate a temporary memory buffer. + */ + uint32_t cbScratch = _16K; + void *pvScratch = RTMemTmpAlloc(cbScratch); + if (!pvScratch) + { + cbScratch = _4K; + pvScratch = RTMemTmpAlloc(cbScratch); + if (!pvScratch) + return VERR_NO_TMP_MEMORY; + } + + /* + * Do the hashing. + */ + RTLDRPEHASHCTXUNION HashCtx; + RTLDRPEHASHRESUNION HashRes; + int rc = rtldrPE_HashImageCommon(pModPe, pvScratch, cbScratch, enmDigest, &HashCtx, &HashRes, NULL); + if (RT_SUCCESS(rc)) + { + /* + * Format the digest into as human readable hash string. + */ + switch (enmDigest) + { + case RTDIGESTTYPE_SHA512: rc = RTSha512ToString(HashRes.abSha512, pszDigest, cbDigest); break; + case RTDIGESTTYPE_SHA256: rc = RTSha256ToString(HashRes.abSha256, pszDigest, cbDigest); break; + case RTDIGESTTYPE_SHA1: rc = RTSha1ToString(HashRes.abSha1, pszDigest, cbDigest); break; + case RTDIGESTTYPE_MD5: rc = RTMd5ToString(HashRes.abMd5, pszDigest, cbDigest); break; + default: AssertFailedReturn(VERR_INTERNAL_ERROR_3); + } + } + return rc; } @@ -785,6 +2792,7 @@ return VINF_SUCCESS; } + /** @copydoc RTLDROPS::pfnClose */ static DECLCALLBACK(int) rtldrPEClose(PRTLDRMODINTERNAL pMod) { @@ -825,6 +2833,10 @@ rtldrPEGetBits, rtldrPERelocate, rtldrPEGetSymbolEx, + rtldrPE_QueryForwarderInfo, + rtldrPE_QueryProp, + rtldrPE_VerifySignature, + rtldrPE_HashImage, 42 }, rtldrPEResolveImports32, @@ -848,6 +2860,10 @@ rtldrPEGetBits, rtldrPERelocate, rtldrPEGetSymbolEx, + rtldrPE_QueryForwarderInfo, + rtldrPE_QueryProp, + rtldrPE_VerifySignature, + rtldrPE_HashImage, 42 }, rtldrPEResolveImports64, @@ -911,23 +2927,32 @@ /* * volatile everywhere! Trying to prevent the compiler being a smarta$$ and reorder stuff. */ - IMAGE_LOAD_CONFIG_DIRECTORY32 volatile *pLoadCfg32 = (IMAGE_LOAD_CONFIG_DIRECTORY32 volatile *)pLoadCfg; - IMAGE_LOAD_CONFIG_DIRECTORY64 volatile *pLoadCfg64 = pLoadCfg; + IMAGE_LOAD_CONFIG_DIRECTORY32_V4 volatile *pLoadCfg32 = (IMAGE_LOAD_CONFIG_DIRECTORY32_V4 volatile *)pLoadCfg; + IMAGE_LOAD_CONFIG_DIRECTORY64_V4 volatile *pLoadCfg64 = pLoadCfg; - pLoadCfg64->SEHandlerCount = pLoadCfg32->SEHandlerCount; - pLoadCfg64->SEHandlerTable = pLoadCfg32->SEHandlerTable; - pLoadCfg64->SecurityCookie = pLoadCfg32->SecurityCookie; - pLoadCfg64->EditList = pLoadCfg32->EditList; - pLoadCfg64->Reserved1 = pLoadCfg32->Reserved1; - pLoadCfg64->CSDVersion = pLoadCfg32->CSDVersion; - pLoadCfg64->ProcessHeapFlags = pLoadCfg32->ProcessHeapFlags; /* switched place with ProcessAffinityMask, but we're more than 16 byte off by now so it doesn't matter. */ - pLoadCfg64->ProcessAffinityMask = pLoadCfg32->ProcessAffinityMask; - pLoadCfg64->VirtualMemoryThreshold = pLoadCfg32->VirtualMemoryThreshold; - pLoadCfg64->MaximumAllocationSize = pLoadCfg32->MaximumAllocationSize; - pLoadCfg64->LockPrefixTable = pLoadCfg32->LockPrefixTable; - pLoadCfg64->DeCommitTotalFreeThreshold = pLoadCfg32->DeCommitTotalFreeThreshold; - uint32_t u32DeCommitFreeBlockThreshold = pLoadCfg32->DeCommitFreeBlockThreshold; - pLoadCfg64->DeCommitFreeBlockThreshold = u32DeCommitFreeBlockThreshold; + pLoadCfg64->CodeIntegrity.Reserved = pLoadCfg32->CodeIntegrity.Reserved; + pLoadCfg64->CodeIntegrity.CatalogOffset = pLoadCfg32->CodeIntegrity.CatalogOffset; + pLoadCfg64->CodeIntegrity.Catalog = pLoadCfg32->CodeIntegrity.Catalog; + pLoadCfg64->CodeIntegrity.Flags = pLoadCfg32->CodeIntegrity.Flags; + pLoadCfg64->GuardFlags = pLoadCfg32->GuardFlags; + pLoadCfg64->GuardCFFunctionCount = pLoadCfg32->GuardCFFunctionCount; + pLoadCfg64->GuardCFFunctionTable = pLoadCfg32->GuardCFFunctionTable; + pLoadCfg64->Reserved2 = pLoadCfg32->Reserved2; + pLoadCfg64->GuardCFCCheckFunctionPointer= pLoadCfg32->GuardCFCCheckFunctionPointer; + pLoadCfg64->SEHandlerCount = pLoadCfg32->SEHandlerCount; + pLoadCfg64->SEHandlerTable = pLoadCfg32->SEHandlerTable; + pLoadCfg64->SecurityCookie = pLoadCfg32->SecurityCookie; + pLoadCfg64->EditList = pLoadCfg32->EditList; + pLoadCfg64->Reserved1 = pLoadCfg32->Reserved1; + pLoadCfg64->CSDVersion = pLoadCfg32->CSDVersion; + pLoadCfg64->ProcessHeapFlags = pLoadCfg32->ProcessHeapFlags; /* switched place with ProcessAffinityMask, but we're more than 16 byte off by now so it doesn't matter. */ + pLoadCfg64->ProcessAffinityMask = pLoadCfg32->ProcessAffinityMask; + pLoadCfg64->VirtualMemoryThreshold = pLoadCfg32->VirtualMemoryThreshold; + pLoadCfg64->MaximumAllocationSize = pLoadCfg32->MaximumAllocationSize; + pLoadCfg64->LockPrefixTable = pLoadCfg32->LockPrefixTable; + pLoadCfg64->DeCommitTotalFreeThreshold = pLoadCfg32->DeCommitTotalFreeThreshold; + uint32_t u32DeCommitFreeBlockThreshold = pLoadCfg32->DeCommitFreeBlockThreshold; + pLoadCfg64->DeCommitFreeBlockThreshold = u32DeCommitFreeBlockThreshold; /* the rest is equal. */ Assert( RT_OFFSETOF(IMAGE_LOAD_CONFIG_DIRECTORY32, DeCommitFreeBlockThreshold) == RT_OFFSETOF(IMAGE_LOAD_CONFIG_DIRECTORY64, DeCommitFreeBlockThreshold)); @@ -939,10 +2964,11 @@ * * @returns iprt status code. * @param pFileHdr Pointer to the file header that needs validating. + * @param fFlags Valid RTLDR_O_XXX combination. * @param pszLogName The log name to prefix the errors with. * @param penmArch Where to store the CPU architecture. */ -int rtldrPEValidateFileHeader(PIMAGE_FILE_HEADER pFileHdr, const char *pszLogName, PRTLDRARCH penmArch) +static int rtldrPEValidateFileHeader(PIMAGE_FILE_HEADER pFileHdr, uint32_t fFlags, const char *pszLogName, PRTLDRARCH penmArch) { size_t cbOptionalHeader; switch (pFileHdr->Machine) @@ -969,7 +2995,8 @@ return VERR_BAD_EXE_FORMAT; } /* This restriction needs to be implemented elsewhere. */ - if (pFileHdr->Characteristics & IMAGE_FILE_RELOCS_STRIPPED) + if ( (pFileHdr->Characteristics & IMAGE_FILE_RELOCS_STRIPPED) + && !(fFlags & (RTLDR_O_FOR_DEBUG | RTLDR_O_FOR_VALIDATION))) { Log(("rtldrPEOpen: %s: IMAGE_FILE_RELOCS_STRIPPED\n", pszLogName)); return VERR_BAD_EXE_FORMAT; @@ -996,12 +3023,13 @@ * @returns iprt status code. * @param pOptHdr Pointer to the optional header which needs validation. * @param pszLogName The log name to prefix the errors with. - * @param offNtHdrs The offset of the NT headers from teh start of the file. + * @param offNtHdrs The offset of the NT headers from the start of the file. * @param pFileHdr Pointer to the file header (valid). * @param cbRawImage The raw image size. + * @param fFlags Loader flags, RTLDR_O_XXX. */ static int rtldrPEValidateOptionalHeader(const IMAGE_OPTIONAL_HEADER64 *pOptHdr, const char *pszLogName, RTFOFF offNtHdrs, - const IMAGE_FILE_HEADER *pFileHdr, RTFOFF cbRawImage) + const IMAGE_FILE_HEADER *pFileHdr, RTFOFF cbRawImage, uint32_t fFlags) { const uint16_t CorrectMagic = pFileHdr->SizeOfOptionalHeader == sizeof(IMAGE_OPTIONAL_HEADER32) ? IMAGE_NT_OPTIONAL_HDR32_MAGIC : IMAGE_NT_OPTIONAL_HDR64_MAGIC; @@ -1104,6 +3132,8 @@ break; case IMAGE_DIRECTORY_ENTRY_DELAY_IMPORT: // 13 + if (fFlags & (RTLDR_O_FOR_DEBUG | RTLDR_O_FOR_VALIDATION)) + break; Log(("rtldrPEOpen: %s: dir no. %d (DELAY_IMPORT) VirtualAddress=%#x Size=%#x is not supported!!!\n", pszLogName, i, pDir->VirtualAddress, pDir->Size)); return VERR_LDRPE_DELAY_IMPORT; @@ -1118,7 +3148,7 @@ Log(("rtldrPEOpen: %s: Security directory is too small: %#x bytes\n", pszLogName, i, pDir->Size)); return VERR_LDRPE_CERT_MALFORMED; } - if (pDir->Size >= _1M) + if (pDir->Size >= RTLDRMODPE_MAX_SECURITY_DIR_SIZE) { Log(("rtldrPEOpen: %s: Security directory is too large: %#x bytes\n", pszLogName, i, pDir->Size)); return VERR_LDRPE_CERT_MALFORMED; @@ -1128,6 +3158,12 @@ Log(("rtldrPEOpen: %s: Security directory is misaligned: %#x\n", pszLogName, i, pDir->VirtualAddress)); return VERR_LDRPE_CERT_MALFORMED; } + /* When using the in-memory reader with a debugger, we may get + into trouble here since we might not have access to the whole + physical file. So skip the tests below. Makes VBoxGuest.sys + load and check out just fine, for instance. */ + if (fFlags & RTLDR_O_FOR_DEBUG) + continue; break; case IMAGE_DIRECTORY_ENTRY_GLOBALPTR: // 8 /* (MIPS GP) */ @@ -1136,11 +3172,15 @@ return VERR_LDRPE_GLOBALPTR; case IMAGE_DIRECTORY_ENTRY_TLS: // 9 + if (fFlags & (RTLDR_O_FOR_DEBUG | RTLDR_O_FOR_VALIDATION)) + break; Log(("rtldrPEOpen: %s: dir no. %d (TLS) VirtualAddress=%#x Size=%#x is not supported!!!\n", pszLogName, i, pDir->VirtualAddress, pDir->Size)); return VERR_LDRPE_TLS; case IMAGE_DIRECTORY_ENTRY_COM_DESCRIPTOR:// 14 + if (fFlags & (RTLDR_O_FOR_DEBUG | RTLDR_O_FOR_VALIDATION)) + break; Log(("rtldrPEOpen: %s: dir no. %d (COM_DESCRIPTOR) VirtualAddress=%#x Size=%#x is not supported!!!\n", pszLogName, i, pDir->VirtualAddress, pDir->Size)); return VERR_LDRPE_COM_DESCRIPTOR; @@ -1176,9 +3216,11 @@ * @param pszLogName The log name to prefix the errors with. * @param pOptHdr Pointer to the optional header (valid). * @param cbRawImage The raw image size. + * @param fFlags Loader flags, RTLDR_O_XXX. + * @param fNoCode Verify that the image contains no code. */ -int rtldrPEValidateSectionHeaders(const IMAGE_SECTION_HEADER *paSections, unsigned cSections, const char *pszLogName, - const IMAGE_OPTIONAL_HEADER64 *pOptHdr, RTFOFF cbRawImage) +static int rtldrPEValidateSectionHeaders(const IMAGE_SECTION_HEADER *paSections, unsigned cSections, const char *pszLogName, + const IMAGE_OPTIONAL_HEADER64 *pOptHdr, RTFOFF cbRawImage, uint32_t fFlags, bool fNoCode) { const uint32_t cbImage = pOptHdr->SizeOfImage; const IMAGE_SECTION_HEADER *pSH = &paSections[0]; @@ -1186,7 +3228,7 @@ Log3(("RTLdrPE: Section Headers:\n")); for (unsigned cSHdrsLeft = cSections; cSHdrsLeft > 0; cSHdrsLeft--, pSH++) { - const unsigned iSH = pSH - &paSections[0]; NOREF(iSH); + const unsigned iSH = (unsigned)(pSH - &paSections[0]); NOREF(iSH); Log3(("RTLdrPE: #%d '%-8.8s' Characteristics: %08RX32\n" "RTLdrPE: VirtAddr: %08RX32 VirtSize: %08RX32\n" "RTLdrPE: FileOff: %08RX32 FileSize: %08RX32\n" @@ -1197,7 +3239,10 @@ pSH->PointerToRawData, pSH->SizeOfRawData, pSH->PointerToRelocations, pSH->NumberOfRelocations, pSH->PointerToLinenumbers, pSH->NumberOfLinenumbers)); - if (pSH->Characteristics & (IMAGE_SCN_MEM_16BIT | IMAGE_SCN_MEM_FARDATA | IMAGE_SCN_MEM_PURGEABLE | IMAGE_SCN_MEM_PRELOAD)) + + AssertCompile(IMAGE_SCN_MEM_16BIT == IMAGE_SCN_MEM_PURGEABLE); + if ( (pSH->Characteristics & (IMAGE_SCN_MEM_PURGEABLE | IMAGE_SCN_MEM_PRELOAD | IMAGE_SCN_MEM_FARDATA) ) + && !(fFlags & RTLDR_O_FOR_DEBUG)) /* purgable/16-bit seen on w2ksp0 hal.dll, ignore the bunch. */ { Log(("rtldrPEOpen: %s: Unsupported section flag(s) %#x section #%d '%.*s'!!!\n", pszLogName, pSH->Characteristics, iSH, sizeof(pSH->Name), pSH->Name)); @@ -1262,6 +3307,19 @@ uRvaPrev = pSH->VirtualAddress + pSH->Misc.VirtualSize; } + /* + * Do a separate run if we need to validate the no-code claim from the + * optional header. + */ + if (fNoCode) + { + pSH = &paSections[0]; + for (unsigned cSHdrsLeft = cSections; cSHdrsLeft > 0; cSHdrsLeft--, pSH++) + if (pSH->Characteristics & (IMAGE_SCN_CNT_CODE | IMAGE_SCN_MEM_EXECUTE)) + return VERR_LDR_ARCH_MISMATCH; + } + + /** @todo r=bird: more sanity checks! */ return VINF_SUCCESS; } @@ -1348,16 +3406,18 @@ /** - * Validates the data of some selected data directories entries. + * Validates the data of some selected data directories entries and remember + * important bits for later. * - * This requires a valid section table and thus has to wait - * till after we've read and validated it. + * This requires a valid section table and thus has to wait till after we've + * read and validated it. * * @returns iprt status code. * @param pModPe The PE module instance. * @param pOptHdr Pointer to the optional header (valid). + * @param fFlags Loader flags, RTLDR_O_XXX. */ -int rtldrPEValidateDirectories(PRTLDRMODPE pModPe, const IMAGE_OPTIONAL_HEADER64 *pOptHdr) +static int rtldrPEValidateDirectoriesAndRememberStuff(PRTLDRMODPE pModPe, const IMAGE_OPTIONAL_HEADER64 *pOptHdr, uint32_t fFlags) { const char *pszLogName = pModPe->pReader->pfnLogName(pModPe->pReader); NOREF(pszLogName); union /* combine stuff we're reading to help reduce stack usage. */ @@ -1373,35 +3433,86 @@ IMAGE_DATA_DIRECTORY Dir = pOptHdr->DataDirectory[IMAGE_DIRECTORY_ENTRY_LOAD_CONFIG]; if (Dir.Size) { - const size_t cbExpect = pOptHdr->Magic == IMAGE_NT_OPTIONAL_HDR32_MAGIC - ? sizeof(IMAGE_LOAD_CONFIG_DIRECTORY32) - : sizeof(IMAGE_LOAD_CONFIG_DIRECTORY64); - if ( Dir.Size != cbExpect - && ( cbExpect == sizeof(IMAGE_LOAD_CONFIG_DIRECTORY32) - && Dir.Size != (uint32_t)RT_OFFSETOF(IMAGE_LOAD_CONFIG_DIRECTORY32, SEHandlerTable)) - ) + const size_t cbExpectV4 = !pModPe->f64Bit + ? sizeof(IMAGE_LOAD_CONFIG_DIRECTORY32_V4) + : sizeof(IMAGE_LOAD_CONFIG_DIRECTORY64_V4); + const size_t cbExpectV3 = !pModPe->f64Bit + ? sizeof(IMAGE_LOAD_CONFIG_DIRECTORY32_V3) + : sizeof(IMAGE_LOAD_CONFIG_DIRECTORY64_V3); + const size_t cbExpectV2 = !pModPe->f64Bit + ? sizeof(IMAGE_LOAD_CONFIG_DIRECTORY32_V2) + : sizeof(IMAGE_LOAD_CONFIG_DIRECTORY64_V2); + const size_t cbExpectV1 = !pModPe->f64Bit + ? sizeof(IMAGE_LOAD_CONFIG_DIRECTORY32_V1) + : sizeof(IMAGE_LOAD_CONFIG_DIRECTORY64_V2) /*No V1*/; + + if ( Dir.Size != cbExpectV4 + && Dir.Size != cbExpectV3 + && Dir.Size != cbExpectV2 + && Dir.Size != cbExpectV1) { - Log(("rtldrPEOpen: %s: load cfg dir: unexpected dir size of %d bytes, expected %d.\n", - pszLogName, Dir.Size, cbExpect)); + Log(("rtldrPEOpen: %s: load cfg dir: unexpected dir size of %d bytes, expected %d, %d, %d, or %d.\n", + pszLogName, Dir.Size, cbExpectV4, cbExpectV3, cbExpectV2, cbExpectV1)); return VERR_LDRPE_LOAD_CONFIG_SIZE; } /* * Read and convert to 64-bit. */ - memset(&u.Cfg64, 0, sizeof(u.Cfg64)); + RT_ZERO(u.Cfg64); int rc = rtldrPEReadRVA(pModPe, &u.Cfg64, Dir.Size, Dir.VirtualAddress); if (RT_FAILURE(rc)) return rc; rtldrPEConvert32BitLoadConfigTo64Bit(&u.Cfg64); - if (u.Cfg64.Size != cbExpect) + if (u.Cfg64.Size != Dir.Size) { - Log(("rtldrPEOpen: %s: load cfg dir: unexpected header size of %d bytes, expected %d.\n", - pszLogName, u.Cfg64.Size, cbExpect)); - return VERR_LDRPE_LOAD_CONFIG_SIZE; + /* Kludge #1, seen ati shipping 32-bit DLLs and EXEs with Dir.Size=0x40 + and Cfg64.Size=0x5c or 0x48. Windows seems to deal with it, so + lets do so as well. */ + if ( Dir.Size < u.Cfg64.Size + && ( u.Cfg64.Size == cbExpectV3 + || u.Cfg64.Size == cbExpectV2) ) + { + Log(("rtldrPEOpen: %s: load cfg dir: Header (%d) and directory (%d) size mismatch, applying the ATI kludge\n", + pszLogName, u.Cfg64.Size, Dir.Size)); + Dir.Size = u.Cfg64.Size; + RT_ZERO(u.Cfg64); + rc = rtldrPEReadRVA(pModPe, &u.Cfg64, Dir.Size, Dir.VirtualAddress); + if (RT_FAILURE(rc)) + return rc; + rtldrPEConvert32BitLoadConfigTo64Bit(&u.Cfg64); + } + + /* Kludge #2, ntdll.dll from XP seen with Dir.Size=0x40 and Cfg64.Size=0x00. */ + if (Dir.Size == 0x40 && u.Cfg64.Size == 0x00 && !pModPe->f64Bit) + { + Log(("rtldrPEOpen: %s: load cfg dir: Header (%d) and directory (%d) size mismatch, applying the XP kludge\n", + pszLogName, u.Cfg64.Size, Dir.Size)); + u.Cfg64.Size = 0x40; + } + + /* Kludge #3, imagehlp.dll from W10/32 seen with Dir.Size=0x40 (V1) and Cfg64.Size=0x68 (V3). */ + if (Dir.Size == 0x40 && u.Cfg64.Size == 0x68 && !pModPe->f64Bit) + { + Log(("rtldrPEOpen: %s: load cfg dir: Header (%d) and directory (%d) size mismatch, applying the W10/32 kludge\n", + pszLogName, u.Cfg64.Size, Dir.Size)); + Dir.Size = u.Cfg64.Size; + RT_ZERO(u.Cfg64); + rc = rtldrPEReadRVA(pModPe, &u.Cfg64, Dir.Size, Dir.VirtualAddress); + if (RT_FAILURE(rc)) + return rc; + rtldrPEConvert32BitLoadConfigTo64Bit(&u.Cfg64); + } + + if (u.Cfg64.Size != Dir.Size) + { + Log(("rtldrPEOpen: %s: load cfg dir: unexpected header size of %d bytes, expected %d.\n", + pszLogName, u.Cfg64.Size, Dir.Size)); + return VERR_LDRPE_LOAD_CONFIG_SIZE; + } } - if (u.Cfg64.LockPrefixTable) + if (u.Cfg64.LockPrefixTable && !(fFlags & (RTLDR_O_FOR_DEBUG | RTLDR_O_FOR_VALIDATION))) { Log(("rtldrPEOpen: %s: load cfg dir: lock prefix table at %RX64. We don't support lock prefix tables!\n", pszLogName, u.Cfg64.LockPrefixTable)); @@ -1416,16 +3527,33 @@ return VERR_BAD_EXE_FORMAT; } #endif - if (u.Cfg64.EditList) + if (u.Cfg64.EditList && !(fFlags & (RTLDR_O_FOR_DEBUG | RTLDR_O_FOR_VALIDATION))) { Log(("rtldrPEOpen: %s: load cfg dir: EditList=%RX64 is unsupported!\n", pszLogName, u.Cfg64.EditList)); return VERR_BAD_EXE_FORMAT; } + /** @todo GuardCFC? Possibly related to: + * http://research.microsoft.com/pubs/69217/ccs05-cfi.pdf + * Not trusting something designed by bakas who don't know how to modify a + * structure without messing up its natural alignment. */ + if ( ( u.Cfg64.GuardCFCCheckFunctionPointer + || u.Cfg64.Reserved2 + || u.Cfg64.GuardCFFunctionTable + || u.Cfg64.GuardCFFunctionCount + || u.Cfg64.GuardFlags) + && !(fFlags & (RTLDR_O_FOR_DEBUG | RTLDR_O_FOR_VALIDATION))) + { + Log(("rtldrPEOpen: %s: load cfg dir: Guard stuff: %RX64,%RX64,%RX64,%RX64,%RX32!\n", + pszLogName, u.Cfg64.GuardCFCCheckFunctionPointer, u.Cfg64.Reserved2, + u.Cfg64.GuardCFFunctionTable, u.Cfg64.GuardCFFunctionCount, u.Cfg64.GuardFlags)); + return VERR_BAD_EXE_FORMAT; + } } /* - * If the image is signed, take a look at the signature. + * If the image is signed and we're not doing this for debug purposes, + * take a look at the signature. */ Dir = pOptHdr->DataDirectory[IMAGE_DIRECTORY_ENTRY_SECURITY]; if (Dir.Size) @@ -1436,14 +3564,14 @@ int rc = pModPe->pReader->pfnRead(pModPe->pReader, pFirst, Dir.Size, Dir.VirtualAddress); if (RT_SUCCESS(rc)) { - uint32_t off = 0; - PWIN_CERTIFICATE pCur = pFirst; + uint32_t off = 0; do { + PWIN_CERTIFICATE pCur = (PWIN_CERTIFICATE)((uint8_t *)pFirst + off); + /* validate the members. */ - uint32_t const cbCur = RT_ALIGN_32(pCur->dwLength, 8); - if ( cbCur < sizeof(WIN_CERTIFICATE) - || cbCur + off > RT_ALIGN_32(Dir.Size, 8)) + if ( pCur->dwLength < sizeof(WIN_CERTIFICATE) + || pCur->dwLength + off > Dir.Size) { Log(("rtldrPEOpen: %s: cert at %#x/%#x: dwLength=%#x\n", pszLogName, off, Dir.Size, pCur->dwLength)); rc = VERR_LDRPE_CERT_MALFORMED; @@ -1469,19 +3597,24 @@ break; } - /** @todo Rainy Day: Implement further verification using openssl. */ + /* Remember the first signed data certificate. */ + if ( pCur->wCertificateType == WIN_CERT_TYPE_PKCS_SIGNED_DATA + && pModPe->offPkcs7SignedData == 0) + { + pModPe->offPkcs7SignedData = Dir.VirtualAddress + + (uint32_t)((uintptr_t)&pCur->bCertificate[0] - (uintptr_t)pFirst); + pModPe->cbPkcs7SignedData = pCur->dwLength - RT_OFFSETOF(WIN_CERTIFICATE, bCertificate); + } /* next */ - off += cbCur; - pCur = (PWIN_CERTIFICATE)((uint8_t *)pCur + cbCur); + off += RT_ALIGN(pCur->dwLength, WIN_CERTIFICATE_ALIGNMENT); } while (off < Dir.Size); } RTMemTmpFree(pFirst); - if (RT_FAILURE(rc)) + if (RT_FAILURE(rc) && !(fFlags & RTLDR_O_FOR_DEBUG)) return rc; } - return VINF_SUCCESS; } @@ -1491,12 +3624,14 @@ * * @returns iprt status code. * @param pReader The loader reader instance which will provide the raw image bits. - * @param fFlags Reserved, MBZ. + * @param fFlags Loader flags, RTLDR_O_XXX. * @param enmArch Architecture specifier. * @param offNtHdrs The offset of the NT headers (where you find "PE\0\0"). * @param phLdrMod Where to store the handle. + * @param pErrInfo Where to return extended error information. Optional. */ -int rtldrPEOpen(PRTLDRREADER pReader, uint32_t fFlags, RTLDRARCH enmArch, RTFOFF offNtHdrs, PRTLDRMOD phLdrMod) +int rtldrPEOpen(PRTLDRREADER pReader, uint32_t fFlags, RTLDRARCH enmArch, RTFOFF offNtHdrs, + PRTLDRMOD phLdrMod, PRTERRINFO pErrInfo) { /* * Read and validate the file header. @@ -1507,16 +3642,22 @@ return rc; RTLDRARCH enmArchImage; const char *pszLogName = pReader->pfnLogName(pReader); - rc = rtldrPEValidateFileHeader(&FileHdr, pszLogName, &enmArchImage); + rc = rtldrPEValidateFileHeader(&FileHdr, fFlags, pszLogName, &enmArchImage); if (RT_FAILURE(rc)) return rc; /* * Match the CPU architecture. */ - if ( enmArch != RTLDRARCH_WHATEVER - && enmArch != enmArchImage) - return VERR_LDR_ARCH_MISMATCH; + bool fArchNoCodeCheckPending = false; + if ( enmArch != enmArchImage + && ( enmArch != RTLDRARCH_WHATEVER + && !(fFlags & RTLDR_O_WHATEVER_ARCH)) ) + { + if (!(fFlags & RTLDR_O_IGNORE_ARCH_IF_NO_CODE)) + return VERR_LDR_ARCH_MISMATCH; + fArchNoCodeCheckPending = true; + } /* * Read and validate the "optional" header. Convert 32->64 if necessary. @@ -1527,9 +3668,11 @@ return rc; if (FileHdr.SizeOfOptionalHeader != sizeof(OptHdr)) rtldrPEConvert32BitOptionalHeaderTo64Bit(&OptHdr); - rc = rtldrPEValidateOptionalHeader(&OptHdr, pszLogName, offNtHdrs, &FileHdr, pReader->pfnSize(pReader)); + rc = rtldrPEValidateOptionalHeader(&OptHdr, pszLogName, offNtHdrs, &FileHdr, pReader->pfnSize(pReader), fFlags); if (RT_FAILURE(rc)) return rc; + if (fArchNoCodeCheckPending && OptHdr.SizeOfCode != 0) + return VERR_LDR_ARCH_MISMATCH; /* * Read and validate section headers. @@ -1542,7 +3685,7 @@ if (RT_SUCCESS(rc)) { rc = rtldrPEValidateSectionHeaders(paSections, FileHdr.NumberOfSections, pszLogName, - &OptHdr, pReader->pfnSize(pReader)); + &OptHdr, pReader->pfnSize(pReader), fFlags, fArchNoCodeCheckPending); if (RT_SUCCESS(rc)) { /* @@ -1560,6 +3703,7 @@ pModPe->pReader = pReader; pModPe->pvBits = NULL; pModPe->offNtHdrs = offNtHdrs; + pModPe->offEndOfHdrs = offNtHdrs + 4 + sizeof(IMAGE_FILE_HEADER) + FileHdr.SizeOfOptionalHeader + cbSections; pModPe->u16Machine = FileHdr.Machine; pModPe->fFile = FileHdr.Characteristics; pModPe->cSections = FileHdr.NumberOfSections; @@ -1568,15 +3712,22 @@ pModPe->uImageBase = (RTUINTPTR)OptHdr.ImageBase; pModPe->cbImage = OptHdr.SizeOfImage; pModPe->cbHeaders = OptHdr.SizeOfHeaders; + pModPe->uTimestamp = FileHdr.TimeDateStamp; + pModPe->cImports = UINT32_MAX; + pModPe->f64Bit = FileHdr.SizeOfOptionalHeader == sizeof(OptHdr); pModPe->ImportDir = OptHdr.DataDirectory[IMAGE_DIRECTORY_ENTRY_IMPORT]; pModPe->RelocDir = OptHdr.DataDirectory[IMAGE_DIRECTORY_ENTRY_BASERELOC]; pModPe->ExportDir = OptHdr.DataDirectory[IMAGE_DIRECTORY_ENTRY_EXPORT]; + pModPe->DebugDir = OptHdr.DataDirectory[IMAGE_DIRECTORY_ENTRY_DEBUG]; + pModPe->SecurityDir = OptHdr.DataDirectory[IMAGE_DIRECTORY_ENTRY_SECURITY]; + pModPe->fDllCharacteristics = OptHdr.DllCharacteristics; /* * Perform validation of some selected data directories which requires - * inspection of the actual data. + * inspection of the actual data. This also saves some certificate + * information. */ - rc = rtldrPEValidateDirectories(pModPe, &OptHdr); + rc = rtldrPEValidateDirectoriesAndRememberStuff(pModPe, &OptHdr, fFlags); if (RT_SUCCESS(rc)) { *phLdrMod = &pModPe->Core; diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Runtime/common/ldr/Makefile.kup virtualbox-4.1.44-dfsg/src/VBox/Runtime/common/ldr/Makefile.kup --- virtualbox-4.1.12-dfsg/src/VBox/Runtime/common/ldr/Makefile.kup 2009-03-11 17:55:44.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Runtime/common/ldr/Makefile.kup 2015-11-11 15:09:01.000000000 +0000 @@ -0,0 +1 @@ + diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Runtime/common/log/log.cpp virtualbox-4.1.44-dfsg/src/VBox/Runtime/common/log/log.cpp --- virtualbox-4.1.12-dfsg/src/VBox/Runtime/common/log/log.cpp 2012-04-02 13:29:00.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Runtime/common/log/log.cpp 2015-11-11 15:09:01.000000000 +0000 @@ -2580,6 +2580,22 @@ } RT_EXPORT_SYMBOL(RTLogPrintfV); + +/** + * Dumper vprintf-like function outputting to a logger. + * + * @param pvUser Pointer to the logger instance to use, NULL for + * default instance. + * @param pszFormat Format string. + * @param va Format arguments. + */ +RTDECL(void) RTLogDumpPrintfV(void *pvUser, const char *pszFormat, va_list va) +{ + RTLogLoggerV((PRTLOGGER)pvUser, pszFormat, va); +} +RT_EXPORT_SYMBOL(RTLogDumpPrintfV); + + #ifdef IN_RING3 /** diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Runtime/common/log/tracebuf.cpp virtualbox-4.1.44-dfsg/src/VBox/Runtime/common/log/tracebuf.cpp --- virtualbox-4.1.12-dfsg/src/VBox/Runtime/common/log/tracebuf.cpp 2012-04-02 13:29:00.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Runtime/common/log/tracebuf.cpp 2015-11-11 15:09:01.000000000 +0000 @@ -375,7 +375,7 @@ if (cEntries < RTTRACEBUF_MIN_ENTRIES) cEntries = RTTRACEBUF_MIN_ENTRIES; - uint32_t offVolatile = RTTRACEBUF_ALIGNMENT - ((uintptr_t)pvBlock & (RTTRACEBUF_ALIGNMENT - 1)); + uint32_t offVolatile = RTTRACEBUF_ALIGNMENT - (uint32_t)((uintptr_t)pvBlock & (RTTRACEBUF_ALIGNMENT - 1)); if (offVolatile < sizeof(RTTRACEBUFINT)) offVolatile += RTTRACEBUF_ALIGNMENT; size_t cbReqBlock = offVolatile diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Runtime/common/math/bignum-amd64-x86.asm virtualbox-4.1.44-dfsg/src/VBox/Runtime/common/math/bignum-amd64-x86.asm --- virtualbox-4.1.12-dfsg/src/VBox/Runtime/common/math/bignum-amd64-x86.asm 1970-01-01 00:00:00.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Runtime/common/math/bignum-amd64-x86.asm 2015-11-11 15:09:01.000000000 +0000 @@ -0,0 +1,845 @@ +; $Id: bignum-amd64-x86.asm $ +;; @file +; IPRT - Big Integer Numbers, AMD64 and X86 Assembly Workers +; + +; +; Copyright (C) 2006-2014 Oracle Corporation +; +; This file is part of VirtualBox Open Source Edition (OSE), as +; available from http://www.virtualbox.org. This file is free software; +; you can redistribute it and/or modify it under the terms of the GNU +; General Public License (GPL) as published by the Free Software +; Foundation, in version 2 as it comes in the "COPYING" file of the +; VirtualBox OSE distribution. VirtualBox OSE is distributed in the +; hope that it will be useful, but WITHOUT ANY WARRANTY of any kind. +; +; The contents of this file may alternatively be used under the terms +; of the Common Development and Distribution License Version 1.0 +; (CDDL) only, as it comes in the "COPYING.CDDL" file of the +; VirtualBox OSE distribution, in which case the provisions of the +; CDDL are applicable instead of those of the GPL. +; +; You may elect to license modified versions of this file under the +; terms and conditions of either the GPL or the CDDL or both. +; + + +%define RT_ASM_WITH_SEH64 +%include "iprt/asmdefs.mac" +%include "internal/bignum.mac" + + +BEGINCODE + +;; +; Subtracts a number (pauSubtrahend) from a larger number (pauMinuend) and +; stores the result in pauResult. +; +; All three numbers are zero padded such that a borrow can be carried one (or +; two for 64-bit) elements beyond the end of the largest number. +; +; @returns nothing. +; @param pauResult x86:[ebp + 8] gcc:rdi msc:rcx +; @param pauMinuend x86:[ebp + 12] gcc:rsi msc:rdx +; @param pauSubtrahend x86:[ebp + 16] gcc:rdx msc:r8 +; @param cUsed x86:[ebp + 20] gcc:rcx msc:r9 +; +BEGINPROC rtBigNumMagnitudeSubAssemblyWorker + push xBP + SEH64_PUSH_xBP + mov xBP, xSP + SEH64_SET_FRAME_xBP 0 +SEH64_END_PROLOGUE + +%ifdef RT_ARCH_AMD64 + %ifdef ASM_CALL64_GCC + %define pauResult rdi + %define pauMinuend rsi + %define pauSubtrahend rdx + %define cUsed ecx + %else + %define pauResult rcx + %define pauMinuend rdx + %define pauSubtrahend r8 + %define cUsed r9d + %endif + xor r11d, r11d ; index register. + +%if RTBIGNUM_ELEMENT_SIZE == 4 + add cUsed, 1 ; cUsed = RT_ALIGN(cUsed, 2) / 2 + shr cUsed, 1 +%endif + cmp cUsed, 8 ; Skip the big loop if small number. + jb .small_job + + mov r10d, cUsed + shr r10d, 3 + clc +.big_loop: + mov rax, [pauMinuend + r11] + sbb rax, [pauSubtrahend + r11] + mov [pauResult + r11], rax + mov rax, [pauMinuend + r11 + 8] + sbb rax, [pauSubtrahend + r11 + 8] + mov [pauResult + r11 + 8], rax + mov rax, [pauMinuend + r11 + 16] + sbb rax, [pauSubtrahend + r11 + 16] + mov [pauResult + r11 + 16], rax + mov rax, [pauMinuend + r11 + 24] + sbb rax, [pauSubtrahend + r11 + 24] + mov [pauResult + r11 + 24], rax + mov rax, [pauMinuend + r11 + 32] + sbb rax, [pauSubtrahend + r11 + 32] + mov [pauResult + r11 + 32], rax + mov rax, [pauMinuend + r11 + 40] + sbb rax, [pauSubtrahend + r11 + 40] + mov [pauResult + r11 + 40], rax + mov rax, [pauMinuend + r11 + 48] + sbb rax, [pauSubtrahend + r11 + 48] + mov [pauResult + r11 + 48], rax + mov rax, [pauMinuend + r11 + 56] + sbb rax, [pauSubtrahend + r11 + 56] + mov [pauResult + r11 + 56], rax + lea r11, [r11 + 64] + dec r10d ; Does not change CF. + jnz .big_loop + + lahf ; Save CF + and cUsed, 7 ; Up to seven odd rounds. + jz .done + sahf ; Restore CF. + jmp .small_loop ; Skip CF=1 (clc). + +.small_job: + clc +.small_loop: + mov rax, [pauMinuend + r11] + sbb rax, [pauSubtrahend + r11] + mov [pauResult + r11], rax + lea r11, [r11 + 8] + dec cUsed ; does not change CF. + jnz .small_loop + %ifdef RT_STRICT + jnc .done + int3 + %endif +.done: + +%elifdef RT_ARCH_X86 + push edi + push esi + push ebx + + mov edi, [ebp + 08h] ; pauResult + %define pauResult edi + mov ecx, [ebp + 0ch] ; pauMinuend + %define pauMinuend ecx + mov edx, [ebp + 10h] ; pauSubtrahend + %define pauSubtrahend edx + mov esi, [ebp + 14h] ; cUsed + %define cUsed esi + + xor ebx, ebx ; index register. + + cmp cUsed, 8 ; Skip the big loop if small number. + jb .small_job + + shr cUsed, 3 + clc +.big_loop: + mov eax, [pauMinuend + ebx] + sbb eax, [pauSubtrahend + ebx] + mov [pauResult + ebx], eax + mov eax, [pauMinuend + ebx + 4] + sbb eax, [pauSubtrahend + ebx + 4] + mov [pauResult + ebx + 4], eax + mov eax, [pauMinuend + ebx + 8] + sbb eax, [pauSubtrahend + ebx + 8] + mov [pauResult + ebx + 8], eax + mov eax, [pauMinuend + ebx + 12] + sbb eax, [pauSubtrahend + ebx + 12] + mov [pauResult + ebx + 12], eax + mov eax, [pauMinuend + ebx + 16] + sbb eax, [pauSubtrahend + ebx + 16] + mov [pauResult + ebx + 16], eax + mov eax, [pauMinuend + ebx + 20] + sbb eax, [pauSubtrahend + ebx + 20] + mov [pauResult + ebx + 20], eax + mov eax, [pauMinuend + ebx + 24] + sbb eax, [pauSubtrahend + ebx + 24] + mov [pauResult + ebx + 24], eax + mov eax, [pauMinuend + ebx + 28] + sbb eax, [pauSubtrahend + ebx + 28] + mov [pauResult + ebx + 28], eax + lea ebx, [ebx + 32] + dec cUsed ; Does not change CF. + jnz .big_loop + + lahf ; Save CF + mov cUsed, [ebp + 14h] ; Up to three final rounds. + and cUsed, 7 + jz .done + sahf ; Restore CF. + jmp .small_loop ; Skip CF=1 (clc). + +.small_job: + clc +.small_loop: + mov eax, [pauMinuend + ebx] + sbb eax, [pauSubtrahend + ebx] + mov [pauResult + ebx], eax + lea ebx, [ebx + 4] + dec cUsed ; Does not change CF + jnz .small_loop + %ifdef RT_STRICT + jnc .done + int3 + %endif +.done: + + pop ebx + pop esi + pop edi +%else + %error "Unsupported arch" +%endif + + leave + ret +%undef pauResult +%undef pauMinuend +%undef pauSubtrahend +%undef cUsed +ENDPROC rtBigNumMagnitudeSubAssemblyWorker + + + +;; +; Subtracts a number (pauSubtrahend) from a larger number (pauMinuend) and +; stores the result in pauResult. +; +; All three numbers are zero padded such that a borrow can be carried one (or +; two for 64-bit) elements beyond the end of the largest number. +; +; @returns nothing. +; @param pauResultMinuend x86:[ebp + 8] gcc:rdi msc:rcx +; @param pauSubtrahend x86:[ebp + 12] gcc:rsi msc:rdx +; @param cUsed x86:[ebp + 16] gcc:rdx msc:r8 +; +BEGINPROC rtBigNumMagnitudeSubThisAssemblyWorker + push xBP + SEH64_PUSH_xBP + mov xBP, xSP + SEH64_SET_FRAME_xBP 0 +SEH64_END_PROLOGUE + +%ifdef RT_ARCH_AMD64 + %ifdef ASM_CALL64_GCC + %define pauResultMinuend rdi + %define pauSubtrahend rsi + %define cUsed edx + %else + %define pauResultMinuend rcx + %define pauSubtrahend rdx + %define cUsed r8d + %endif + xor r11d, r11d ; index register. + +%if RTBIGNUM_ELEMENT_SIZE == 4 + add cUsed, 1 ; cUsed = RT_ALIGN(cUsed, 2) / 2 + shr cUsed, 1 +%endif + cmp cUsed, 8 ; Skip the big loop if small number. + jb .small_job + + mov r10d, cUsed + shr r10d, 3 + clc +.big_loop: + mov rax, [pauSubtrahend + r11] + sbb [pauResultMinuend + r11], rax + mov rax, [pauSubtrahend + r11 + 8] + sbb [pauResultMinuend + r11 + 8], rax + mov rax, [pauSubtrahend + r11 + 16] + sbb [pauResultMinuend + r11 + 16], rax + mov rax, [pauSubtrahend + r11 + 24] + sbb [pauResultMinuend + r11 + 24], rax + mov rax, [pauSubtrahend + r11 + 32] + sbb [pauResultMinuend + r11 + 32], rax + mov rax, [pauSubtrahend + r11 + 40] + sbb [pauResultMinuend + r11 + 40], rax + mov rax, [pauSubtrahend + r11 + 48] + sbb [pauResultMinuend + r11 + 48], rax + mov rax, [pauSubtrahend + r11 + 56] + sbb [pauResultMinuend + r11 + 56], rax + lea r11, [r11 + 64] + dec r10d ; Does not change CF. + jnz .big_loop + + lahf ; Save CF + and cUsed, 7 ; Up to seven odd rounds. + jz .done + sahf ; Restore CF. + jmp .small_loop ; Skip CF=1 (clc). + +.small_job: + clc +.small_loop: + mov rax, [pauSubtrahend + r11] + sbb [pauResultMinuend + r11], rax + lea r11, [r11 + 8] + dec cUsed ; does not change CF. + jnz .small_loop + %ifdef RT_STRICT + jnc .done + int3 + %endif +.done: + +%elifdef RT_ARCH_X86 + push edi + push ebx + + mov edi, [ebp + 08h] ; pauResultMinuend + %define pauResultMinuend edi + mov edx, [ebp + 0ch] ; pauSubtrahend + %define pauSubtrahend edx + mov ecx, [ebp + 10h] ; cUsed + %define cUsed ecx + + xor ebx, ebx ; index register. + + cmp cUsed, 8 ; Skip the big loop if small number. + jb .small_job + + shr cUsed, 3 + clc +.big_loop: + mov eax, [pauSubtrahend + ebx] + sbb [pauResultMinuend + ebx], eax + mov eax, [pauSubtrahend + ebx + 4] + sbb [pauResultMinuend + ebx + 4], eax + mov eax, [pauSubtrahend + ebx + 8] + sbb [pauResultMinuend + ebx + 8], eax + mov eax, [pauSubtrahend + ebx + 12] + sbb [pauResultMinuend + ebx + 12], eax + mov eax, [pauSubtrahend + ebx + 16] + sbb [pauResultMinuend + ebx + 16], eax + mov eax, [pauSubtrahend + ebx + 20] + sbb [pauResultMinuend + ebx + 20], eax + mov eax, [pauSubtrahend + ebx + 24] + sbb [pauResultMinuend + ebx + 24], eax + mov eax, [pauSubtrahend + ebx + 28] + sbb [pauResultMinuend + ebx + 28], eax + lea ebx, [ebx + 32] + dec cUsed ; Does not change CF. + jnz .big_loop + + lahf ; Save CF + mov cUsed, [ebp + 10h] ; Up to seven odd rounds. + and cUsed, 7 + jz .done + sahf ; Restore CF. + jmp .small_loop ; Skip CF=1 (clc). + +.small_job: + clc +.small_loop: + mov eax, [pauSubtrahend + ebx] + sbb [pauResultMinuend + ebx], eax + lea ebx, [ebx + 4] + dec cUsed ; Does not change CF + jnz .small_loop + %ifdef RT_STRICT + jnc .done + int3 + %endif +.done: + + pop ebx + pop edi +%else + %error "Unsupported arch" +%endif + + leave + ret +ENDPROC rtBigNumMagnitudeSubThisAssemblyWorker + + +;; +; Shifts an element array one bit to the left, returning the final carry value. +; +; On 64-bit hosts the array is always zero padded to a multiple of 8 bytes, so +; we can use 64-bit operand sizes even if the element type is 32-bit. +; +; @returns The final carry value. +; @param pauElements x86:[ebp + 8] gcc:rdi msc:rcx +; @param cUsed x86:[ebp + 12] gcc:rsi msc:rdx +; @param uCarry x86:[ebp + 16] gcc:rdx msc:r8 +; +BEGINPROC rtBigNumMagnitudeShiftLeftOneAssemblyWorker + push xBP + SEH64_PUSH_xBP + mov xBP, xSP + SEH64_SET_FRAME_xBP 0 +SEH64_END_PROLOGUE + +%ifdef RT_ARCH_AMD64 + %ifdef ASM_CALL64_GCC + %define pauElements rdi + %define cUsed esi + %define uCarry edx + %else + %define pauElements rcx + %define cUsed edx + %define uCarry r8d + %endif +%elifdef RT_ARCH_X86 + %define pauElements ecx + mov pauElements, [ebp + 08h] + %define cUsed edx + mov cUsed, [ebp + 0ch] + %define uCarry eax + mov uCarry, [ebp + 10h] +%else + %error "Unsupported arch." +%endif + ; Lots to do? + cmp cUsed, 8 + jae .big_loop_init + + ; Check for empty array. + test cUsed, cUsed + jz .no_elements + jmp .small_loop_init + + ; Big loop - 8 unrolled loop iterations. +.big_loop_init: +%ifdef RT_ARCH_AMD64 + mov r11d, cUsed +%endif + shr cUsed, 3 + test uCarry, uCarry ; clear the carry flag + jz .big_loop + stc +.big_loop: +%if RTBIGNUM_ELEMENT_SIZE == 8 + rcl qword [pauElements], 1 + rcl qword [pauElements + 8], 1 + rcl qword [pauElements + 16], 1 + rcl qword [pauElements + 24], 1 + rcl qword [pauElements + 32], 1 + rcl qword [pauElements + 40], 1 + rcl qword [pauElements + 48], 1 + rcl qword [pauElements + 56], 1 + lea pauElements, [pauElements + 64] +%else + rcl dword [pauElements], 1 + rcl dword [pauElements + 4], 1 + rcl dword [pauElements + 8], 1 + rcl dword [pauElements + 12], 1 + rcl dword [pauElements + 16], 1 + rcl dword [pauElements + 20], 1 + rcl dword [pauElements + 24], 1 + rcl dword [pauElements + 28], 1 + lea pauElements, [pauElements + 32] +%endif + dec cUsed + jnz .big_loop + + ; More to do? + lahf ; save carry flag (uCarry no longer used on x86). +%ifdef RT_ARCH_AMD64 + mov cUsed, r11d +%else + mov cUsed, [ebp + 0ch] +%endif + and cUsed, 7 + jz .restore_cf_and_return ; Jump if we're good and done. + sahf ; Restore CF. + jmp .small_loop ; Deal with the odd rounds. +.restore_cf_and_return: + sahf + jmp .carry_to_eax + + ; Small loop - One round at the time. +.small_loop_init: + test uCarry, uCarry ; clear the carry flag + jz .small_loop + stc +.small_loop: +%if RTBIGNUM_ELEMENT_SIZE == 8 + rcl qword [pauElements], 1 + lea pauElements, [pauElements + 8] +%else + rcl dword [pauElements], 1 + lea pauElements, [pauElements + 4] +%endif + dec cUsed + jnz .small_loop + + ; Calculate return value. +.carry_to_eax: + mov eax, 0 + jnc .return + inc eax +.return: + leave + ret + +.no_elements: + mov eax, uCarry + jmp .return +ENDPROC rtBigNumMagnitudeShiftLeftOneAssemblyWorker + + +;; +; Performs a 128-bit by 64-bit division on 64-bit and +; a 64-bit by 32-bit divison on 32-bit. +; +; @returns nothing. +; @param puQuotient x86:[ebp + 8] gcc:rdi msc:rcx Double element. +; @param puRemainder x86:[ebp + 12] gcc:rsi msc:rdx Normal element. +; @param uDividendHi x86:[ebp + 16] gcc:rdx msc:r8 +; @param uDividendLo x86:[ebp + 20] gcc:rcx msc:r9 +; @param uDivisior x86:[ebp + 24] gcc:r8 msc:[rbp + 30h] +; +BEGINPROC rtBigNumElement2xDiv2xBy1x + push xBP + SEH64_PUSH_xBP + mov xBP, xSP + SEH64_SET_FRAME_xBP 0 +SEH64_END_PROLOGUE + +%ifdef RT_ARCH_AMD64 + %if RTBIGNUM_ELEMENT_SIZE == 4 + %error "sorry not implemented yet." + sorry not implemented yet. + %endif + + %define uDividendHi rdx + %define uDividendLo rax + %ifdef ASM_CALL64_GCC + %define uDivisor r8 + %define puQuotient rdi + %define puRemainder rsi + mov rax, rcx + %else + %define puQuotient rcx + %define puRemainder r11 + %define uDivisor r10 + mov r11, rdx + mov r10, [rbp + 30h] + mov rdx, r8 + mov rax, r9 + %endif + +%elifdef RT_ARCH_X86 + push edi + push ebx + + %define uDividendHi edx + mov uDividendHi, [ebp + 10h] + %define uDividendLo eax + mov uDividendLo, [ebp + 14h] + %define uDivisor ecx + mov uDivisor, [ebp + 18h] + %define puQuotient edi + mov puQuotient, [ebp + 08h] + %define puRemainder ebx + mov puRemainder, [ebp + 0ch] +%else + %error "Unsupported arch." +%endif + +%ifdef RT_STRICT + ; + ; The dividend shall not be zero. + ; + test uDivisor, uDivisor + jnz .divisor_not_zero + int3 +.divisor_not_zero: +%endif + + ; + ; Avoid division overflow. This will calculate the high part of the quotient. + ; + mov RTBIGNUM_ELEMENT_PRE [puQuotient + RTBIGNUM_ELEMENT_SIZE], 0 + cmp uDividendHi, uDivisor + jb .do_divide + push xAX + mov xAX, xDX + xor edx, edx + div uDivisor + mov RTBIGNUM_ELEMENT_PRE [puQuotient + RTBIGNUM_ELEMENT_SIZE], xAX + pop xAX + + ; + ; Perform the division and store the result. + ; +.do_divide: + div uDivisor + mov RTBIGNUM_ELEMENT_PRE [puQuotient], xAX + mov RTBIGNUM_ELEMENT_PRE [puRemainder], xDX + + +%ifdef RT_ARCH_X86 + pop ebx + pop edi +%endif + leave + ret +ENDPROC rtBigNumElement2xDiv2xBy1x + + +;; +; Performs the core of long multiplication. +; +; @returns nothing. +; @param pauResult x86:[ebp + 8] gcc:rdi msc:rcx Initialized to zero. +; @param pauMultiplier x86:[ebp + 12] gcc:rsi msc:rdx +; @param cMultiplier x86:[ebp + 16] gcc:rdx msc:r8 +; @param pauMultiplicand x86:[ebp + 20] gcc:rcx msc:r9 +; @param cMultiplicand x86:[ebp + 24] gcc:r8 msc:[rbp + 30h] +; +BEGINPROC rtBigNumMagnitudeMultiplyAssemblyWorker + push xBP + SEH64_PUSH_xBP + mov xBP, xSP + SEH64_SET_FRAME_xBP 0 +SEH64_END_PROLOGUE + +%ifdef RT_ARCH_AMD64 + %if RTBIGNUM_ELEMENT_SIZE == 4 + %error "sorry not implemented yet." + sorry not implemented yet. + %endif + + %ifdef ASM_CALL64_GCC + %define pauResult rdi + %define pauMultiplier rsi + %define cMultiplier r9 + %define pauMultiplicand rcx + %define cMultiplicand r8 + mov r9d, edx ; cMultiplier + mov r8d, r8d ; cMultiplicand - paranoia + %define uMultiplier r10 + %define iMultiplicand r11 + %else + %define pauResult rcx + %define pauMultiplier r11 + %define cMultiplier r8 + %define pauMultiplicand r9 + %define cMultiplicand r10 + mov pauMultiplier, rdx + mov r10d, dword [rbp + 30h] ; cMultiplicand + mov r8d, r8d ; cMultiplier - paranoia + %define uMultiplier r12 + push r12 + %define iMultiplicand r13 + push r13 + %endif + +%elifdef RT_ARCH_X86 + push edi + push esi + push ebx + sub esp, 10h + %define pauResult edi + mov pauResult, [ebp + 08h] + %define pauMultiplier dword [ebp + 0ch] + %define cMultiplier dword [ebp + 10h] + %define pauMultiplicand ecx + mov pauMultiplicand, [ebp + 14h] + %define cMultiplicand dword [ebp + 18h] + %define uMultiplier dword [ebp - 10h] + %define iMultiplicand ebx + +%else + %error "Unsupported arch." +%endif + + ; + ; Check that the multiplicand isn't empty (avoids an extra jump in the inner loop). + ; + cmp cMultiplicand, 0 + je .done + + ; + ; Loop thru each element in the multiplier. + ; + ; while (cMultiplier-- > 0) +.multiplier_loop: + cmp cMultiplier, 0 + jz .done + dec cMultiplier + + ; uMultiplier = *pauMultiplier +%ifdef RT_ARCH_X86 + mov edx, pauMultiplier + mov eax, [edx] + mov uMultiplier, eax +%else + mov uMultiplier, [pauMultiplier] +%endif + ; for (iMultiplicand = 0; iMultiplicand < cMultiplicand; iMultiplicand++) + xor iMultiplicand, iMultiplicand +.multiplicand_loop: + mov xAX, [pauMultiplicand + iMultiplicand * RTBIGNUM_ELEMENT_SIZE] + mul uMultiplier + add [pauResult + iMultiplicand * RTBIGNUM_ELEMENT_SIZE], xAX + adc [pauResult + iMultiplicand * RTBIGNUM_ELEMENT_SIZE + RTBIGNUM_ELEMENT_SIZE], xDX + jnc .next_multiplicand + lea xDX, [iMultiplicand + 2] +.next_adc: + adc RTBIGNUM_ELEMENT_PRE [pauResult + xDX * RTBIGNUM_ELEMENT_SIZE], 0 + inc xDX + jc .next_adc + +.next_multiplicand: + inc iMultiplicand ; iMultiplicand++ + cmp iMultiplicand, cMultiplicand ; iMultiplicand < cMultiplicand + jb .multiplicand_loop + + ; Advance and loop on multiplier. + add pauMultiplier, RTBIGNUM_ELEMENT_SIZE + add pauResult, RTBIGNUM_ELEMENT_SIZE + jmp .multiplier_loop + +.done: + +%ifdef RT_ARCH_AMD64 + %ifdef ASM_CALL64_GCC + %else + pop r13 + pop r12 + %endif +%elifdef RT_ARCH_X86 + add esp, 10h + pop ebx + pop esi + pop edi +%endif + leave + ret +ENDPROC rtBigNumMagnitudeMultiplyAssemblyWorker + +;; +; Assembly implementation of the D4 step of Knuth's division algorithm. +; +; This subtracts Divisor * Qhat from the dividend at the current J index. +; +; @returns true if negative result (unlikely), false if positive. +; @param pauDividendJ x86:[ebp + 8] gcc:rdi msc:rcx Initialized to zero. +; @param pauDivisor x86:[ebp + 12] gcc:rsi msc:rdx +; @param cDivisor x86:[ebp + 16] gcc:edx msc:r8d +; @param uQhat x86:[ebp + 16] gcc:rcx msc:r9 +; +BEGINPROC rtBigNumKnuthD4_MulSub + push xBP + SEH64_PUSH_xBP + mov xBP, xSP + SEH64_SET_FRAME_xBP 0 +SEH64_END_PROLOGUE + +%ifdef RT_ARCH_AMD64 + %if RTBIGNUM_ELEMENT_SIZE == 4 + %error "sorry not implemented yet." + sorry not implemented yet. + %endif + + %ifdef ASM_CALL64_GCC + %define pauDividendJ rdi + %define pauDivisor rsi + %define cDivisor r8 + %define uQhat rcx + mov r8d, edx ; cDivisor + %define uMulCarry r11 + %else + %define pauDividendJ rcx + %define pauDivisor r10 + %define cDivisor r8 + %define uQhat r9 + mov r10, rdx ; pauDivisor + mov r8d, r8d ; cDivisor - paranoia + %define uMulCarry r11 + %endif + +%elifdef RT_ARCH_X86 + push edi + push esi + push ebx + %define pauDividendJ edi + mov pauDividendJ, [ebp + 08h] + %define pauDivisor esi + mov pauDivisor, [ebp + 0ch] + %define cDivisor ecx + mov cDivisor, [ebp + 10h] + %define uQhat dword [ebp + 14h] + %define uMulCarry ebx +%else + %error "Unsupported arch." +%endif + +%ifdef RT_STRICT + ; + ; Some sanity checks. + ; + cmp cDivisor, 0 + jne .cDivisor_not_zero + int3 +.cDivisor_not_zero: +%endif + + ; + ; Initialize the loop. + ; + xor uMulCarry, uMulCarry + + ; + ; do ... while (cDivisor-- > 0); + ; +.the_loop: + ; RTUInt128MulU64ByU64(&uSub, uQhat, pauDivisor[i]); + mov xAX, uQhat + mul RTBIGNUM_ELEMENT_PRE [pauDivisor] + ; RTUInt128AssignAddU64(&uSub, uMulCarry); + add xAX, uMulCarry + adc xDX, 0 + mov uMulCarry, xDX + ; Subtract uSub.s.Lo+fCarry from pauDividendJ[i] + sub [pauDividendJ], xAX + adc uMulCarry, 0 +%ifdef RT_STRICT + jnc .uMulCarry_did_not_overflow + int3 +.uMulCarry_did_not_overflow +%endif + + ; Advance. + add pauDividendJ, RTBIGNUM_ELEMENT_SIZE + add pauDivisor, RTBIGNUM_ELEMENT_SIZE + dec cDivisor + jnz .the_loop + + ; + ; Final dividend element (no corresponding divisor element). + ; + sub [pauDividendJ], uMulCarry + sbb eax, eax + and eax, 1 + +.done: +%ifdef RT_ARCH_AMD64 +%elifdef RT_ARCH_X86 + pop ebx + pop esi + pop edi +%endif + leave + ret +ENDPROC rtBigNumKnuthD4_MulSub + diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Runtime/common/math/bignum.cpp virtualbox-4.1.44-dfsg/src/VBox/Runtime/common/math/bignum.cpp --- virtualbox-4.1.12-dfsg/src/VBox/Runtime/common/math/bignum.cpp 1970-01-01 00:00:00.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Runtime/common/math/bignum.cpp 2015-11-11 15:09:01.000000000 +0000 @@ -0,0 +1,2853 @@ +/* $Id: bignum.cpp $ */ +/** @file + * IPRT - Big Integer Numbers. + */ + +/* + * Copyright (C) 2006-2014 Oracle Corporation + * + * This file is part of VirtualBox Open Source Edition (OSE), as + * available from http://www.virtualbox.org. This file is free software; + * you can redistribute it and/or modify it under the terms of the GNU + * General Public License (GPL) as published by the Free Software + * Foundation, in version 2 as it comes in the "COPYING" file of the + * VirtualBox OSE distribution. VirtualBox OSE is distributed in the + * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind. + * + * The contents of this file may alternatively be used under the terms + * of the Common Development and Distribution License Version 1.0 + * (CDDL) only, as it comes in the "COPYING.CDDL" file of the + * VirtualBox OSE distribution, in which case the provisions of the + * CDDL are applicable instead of those of the GPL. + * + * You may elect to license modified versions of this file under the + * terms and conditions of either the GPL or the CDDL or both. + */ + + +/******************************************************************************* +* Header Files * +*******************************************************************************/ +/*#ifdef IN_RING3 +# define RTMEM_WRAP_TO_EF_APIS +#endif*/ +#include "internal/iprt.h" +#include + +#include +#include +#include +#include +#include +#include +#if RTBIGNUM_ELEMENT_BITS == 64 +# include +#endif + + +/******************************************************************************* +* Defined Constants And Macros * +*******************************************************************************/ +/** Allocation alignment in elements. */ +#ifndef RTMEM_WRAP_TO_EF_APIS +# define RTBIGNUM_ALIGNMENT 4U +#else +# define RTBIGNUM_ALIGNMENT 1U +#endif + +/** The max size (in bytes) of an elements array. */ +#define RTBIGNUM_MAX_SIZE _4M + + +/** Assert the validity of a big number structure pointer in strict builds. */ +#ifdef RT_STRICT +# define RTBIGNUM_ASSERT_VALID(a_pBigNum) \ + do { \ + AssertPtr(a_pBigNum); \ + Assert(!(a_pBigNum)->fCurScrambled); \ + Assert( (a_pBigNum)->cUsed == (a_pBigNum)->cAllocated \ + || ASMMemIsAllU32(&(a_pBigNum)->pauElements[(a_pBigNum)->cUsed], \ + ((a_pBigNum)->cAllocated - (a_pBigNum)->cUsed) * RTBIGNUM_ELEMENT_SIZE, 0) == NULL); \ + } while (0) +#else +# define RTBIGNUM_ASSERT_VALID(a_pBigNum) do {} while (0) +#endif + + +/** Enable assembly optimizations. */ +#if defined(RT_ARCH_AMD64) || defined(RT_ARCH_X86) +# define IPRT_BIGINT_WITH_ASM +#endif + + +/** @def RTBIGNUM_ZERO_ALIGN + * For calculating the rtBigNumEnsureExtraZeroElements argument from cUsed. + * This has to do with 64-bit assembly instruction operating as RTBIGNUMELEMENT + * was 64-bit on some hosts. + */ +#if defined(IPRT_BIGINT_WITH_ASM) && ARCH_BITS == 64 && RTBIGNUM_ELEMENT_SIZE == 4 && defined(RT_LITTLE_ENDIAN) +# define RTBIGNUM_ZERO_ALIGN(a_cUsed) RT_ALIGN_32(a_cUsed, 2) +#elif defined(IPRT_BIGINT_WITH_ASM) +# define RTBIGNUM_ZERO_ALIGN(a_cUsed) (a_cUsed) +#else +# define RTBIGNUM_ZERO_ALIGN(a_cUsed) (a_cUsed) +#endif + +#define RTBIGNUMELEMENT_HALF_MASK ( ((RTBIGNUMELEMENT)1 << (RTBIGNUM_ELEMENT_BITS / 2)) - (RTBIGNUMELEMENT)1) +#define RTBIGNUMELEMENT_LO_HALF(a_uElement) ( (RTBIGNUMELEMENT_HALF_MASK) & (a_uElement) ) +#define RTBIGNUMELEMENT_HI_HALF(a_uElement) ( (a_uElement) >> (RTBIGNUM_ELEMENT_BITS / 2) ) + + +/******************************************************************************* +* Structures and Typedefs * +*******************************************************************************/ +/** Type the size of two elements. */ +#if RTBIGNUM_ELEMENT_BITS == 64 +typedef RTUINT128U RTBIGNUMELEMENT2X; +#else +typedef RTUINT64U RTBIGNUMELEMENT2X; +#endif + + +/******************************************************************************* +* Internal Functions * +*******************************************************************************/ +DECLINLINE(int) rtBigNumSetUsed(PRTBIGNUM pBigNum, uint32_t cNewUsed); + +#ifdef IPRT_BIGINT_WITH_ASM +/* bignum-amd64-x86.asm: */ +DECLASM(void) rtBigNumMagnitudeSubAssemblyWorker(RTBIGNUMELEMENT *pauResult, RTBIGNUMELEMENT const *pauMinuend, + RTBIGNUMELEMENT const *pauSubtrahend, uint32_t cUsed); +DECLASM(void) rtBigNumMagnitudeSubThisAssemblyWorker(RTBIGNUMELEMENT *pauMinuendResult, RTBIGNUMELEMENT const *pauSubtrahend, + uint32_t cUsed); +DECLASM(RTBIGNUMELEMENT) rtBigNumMagnitudeShiftLeftOneAssemblyWorker(RTBIGNUMELEMENT *pauElements, uint32_t cUsed, + RTBIGNUMELEMENT uCarry); +DECLASM(void) rtBigNumElement2xDiv2xBy1x(RTBIGNUMELEMENT2X *puQuotient, RTBIGNUMELEMENT *puRemainder, + RTBIGNUMELEMENT uDividendHi, RTBIGNUMELEMENT uDividendLo, RTBIGNUMELEMENT uDivisor); +DECLASM(void) rtBigNumMagnitudeMultiplyAssemblyWorker(PRTBIGNUMELEMENT pauResult, + PCRTBIGNUMELEMENT pauMultiplier, uint32_t cMultiplier, + PCRTBIGNUMELEMENT pauMultiplicand, uint32_t cMultiplicand); +#endif + + + + + +/** @name Functions working on one element. + * @{ */ + +DECLINLINE(uint32_t) rtBigNumElementBitCount(RTBIGNUMELEMENT uElement) +{ +#if RTBIGNUM_ELEMENT_SIZE == 8 + if (uElement >> 32) + return ASMBitLastSetU32((uint32_t)(uElement >> 32)) + 32; + return ASMBitLastSetU32((uint32_t)uElement); +#elif RTBIGNUM_ELEMENT_SIZE == 4 + return ASMBitLastSetU32(uElement); +#else +# error "Bad RTBIGNUM_ELEMENT_SIZE value" +#endif +} + + +/** + * Does addition with carry. + * + * This is a candidate for inline assembly on some platforms. + * + * @returns The result (the sum) + * @param uAugend What to add to. + * @param uAddend What to add to it. + * @param pfCarry Where to read the input carry and return the output + * carry. + */ +DECLINLINE(RTBIGNUMELEMENT) rtBigNumElementAddWithCarry(RTBIGNUMELEMENT uAugend, RTBIGNUMELEMENT uAddend, + RTBIGNUMELEMENT *pfCarry) +{ + RTBIGNUMELEMENT uRet = uAugend + uAddend; + if (!*pfCarry) + *pfCarry = uRet < uAugend; + else + { + uRet += 1; + *pfCarry = uRet <= uAugend; + } + return uRet; +} + + +/** + * Does addition with borrow. + * + * This is a candidate for inline assembly on some platforms. + * + * @returns The result (the sum) + * @param uMinuend What to subtract from. + * @param uSubtrahend What to subtract. + * @param pfBorrow Where to read the input borrow and return the output + * borrow. + */ +DECLINLINE(RTBIGNUMELEMENT) rtBigNumElementSubWithBorrow(RTBIGNUMELEMENT uMinuend, RTBIGNUMELEMENT uSubtrahend, + RTBIGNUMELEMENT *pfBorrow) +{ + RTBIGNUMELEMENT uRet = uMinuend - uSubtrahend - *pfBorrow; + + /* Figure out if we borrowed. */ + *pfBorrow = !*pfBorrow ? uMinuend < uSubtrahend : uMinuend <= uSubtrahend; + return uRet; +} + +/** @} */ + + + + +/** @name Double element primitives. + * @{ */ + +static int rtBigNumElement2xCopyToMagnitude(RTBIGNUMELEMENT2X const *pValue2x, PRTBIGNUM pDst) +{ + int rc; + if (pValue2x->s.Hi) + { + rc = rtBigNumSetUsed(pDst, 2); + if (RT_SUCCESS(rc)) + { + pDst->pauElements[0] = pValue2x->s.Lo; + pDst->pauElements[1] = pValue2x->s.Hi; + } + } + else if (pValue2x->s.Lo) + { + rc = rtBigNumSetUsed(pDst, 1); + if (RT_SUCCESS(rc)) + pDst->pauElements[0] = pValue2x->s.Lo; + } + else + rc = rtBigNumSetUsed(pDst, 0); + return rc; +} + +static void rtBigNumElement2xDiv(RTBIGNUMELEMENT2X *puQuotient, RTBIGNUMELEMENT2X *puRemainder, + RTBIGNUMELEMENT uDividendHi, RTBIGNUMELEMENT uDividendLo, + RTBIGNUMELEMENT uDivisorHi, RTBIGNUMELEMENT uDivisorLo) +{ + RTBIGNUMELEMENT2X uDividend; + uDividend.s.Lo = uDividendLo; + uDividend.s.Hi = uDividendHi; + + RTBIGNUMELEMENT2X uDivisor; + uDivisor.s.Lo = uDivisorLo; + uDivisor.s.Hi = uDivisorHi; + +#if RTBIGNUM_ELEMENT_BITS == 64 + RTUInt128DivRem(puQuotient, puRemainder, &uDividend, &uDivisor); +#else + puQuotient->u = uDividend.u / uDivisor.u; + puRemainder->u = uDividend.u % uDivisor.u; +#endif +} + +#ifndef IPRT_BIGINT_WITH_ASM +static void rtBigNumElement2xDiv2xBy1x(RTBIGNUMELEMENT2X *puQuotient, RTBIGNUMELEMENT *puRemainder, + RTBIGNUMELEMENT uDividendHi, RTBIGNUMELEMENT uDividendLo, RTBIGNUMELEMENT uDivisor) +{ + RTBIGNUMELEMENT2X uDividend; + uDividend.s.Lo = uDividendLo; + uDividend.s.Hi = uDividendHi; + +# if RTBIGNUM_ELEMENT_BITS == 64 + RTBIGNUMELEMENT2X uRemainder2x; + RTBIGNUMELEMENT2X uDivisor2x; + uDivisor2x.s.Hi = 0; + uDivisor2x.s.Lo = uDivisor; + /** @todo optimize this. */ + RTUInt128DivRem(puQuotient, &uRemainder2x, &uDividend, &uDivisor2x); + puRemainder->u = uRemainder2x.s.Lo; +# else + puQuotient->u = uDividend.u / uDivisor; + puRemainder->u = uDividend.u % uDivisor; +# endif +} +#endif + +DECLINLINE(void) rtBigNumElement2xDec(RTBIGNUMELEMENT2X *puValue) +{ +#if RTBIGNUM_ELEMENT_BITS == 64 + if (puValue->s.Lo-- == 0) + puValue->s.Hi--; +#else + puValue->u -= 1; +#endif +} + +DECLINLINE(void) rtBigNumElement2xAdd1x(RTBIGNUMELEMENT2X *puValue, RTBIGNUMELEMENT uAdd) +{ +#if RTBIGNUM_ELEMENT_BITS == 64 + RTUInt128AssignAddU64(puValue, uAdd); +#else + puValue->u += uAdd; +#endif +} + +/** @} */ + + + + + +/** + * Scrambles a big number if required. + * + * @param pBigNum The big number. + */ +DECLINLINE(void) rtBigNumScramble(PRTBIGNUM pBigNum) +{ + if (pBigNum->fSensitive) + { + AssertReturnVoid(!pBigNum->fCurScrambled); + if (pBigNum->pauElements) + { + int rc = RTMemSaferScramble(pBigNum->pauElements, pBigNum->cAllocated * RTBIGNUM_ELEMENT_SIZE); AssertRC(rc); + pBigNum->fCurScrambled = RT_SUCCESS(rc); + } + else + pBigNum->fCurScrambled = true; + } +} + + +/** + * Unscrambles a big number if required. + * + * @returns IPRT status code. + * @param pBigNum The big number. + */ +DECLINLINE(int) rtBigNumUnscramble(PRTBIGNUM pBigNum) +{ + if (pBigNum->fSensitive) + { + AssertReturn(pBigNum->fCurScrambled, VERR_INTERNAL_ERROR_2); + if (pBigNum->pauElements) + { + int rc = RTMemSaferUnscramble(pBigNum->pauElements, pBigNum->cAllocated * RTBIGNUM_ELEMENT_SIZE); AssertRC(rc); + pBigNum->fCurScrambled = !RT_SUCCESS(rc); + return rc; + } + else + pBigNum->fCurScrambled = false; + } + return VINF_SUCCESS; +} + + +/** + * Getter function for pauElements which extends the array to infinity. + * + * @returns The element value. + * @param pBigNum The big number. + * @param iElement The element index. + */ +DECLINLINE(RTBIGNUMELEMENT) rtBigNumGetElement(PCRTBIGNUM pBigNum, uint32_t iElement) +{ + if (iElement < pBigNum->cUsed) + return pBigNum->pauElements[iElement]; + return 0; +} + + +/** + * Grows the pauElements array so it can fit at least @a cNewUsed entries. + * + * @returns IPRT status code. + * @param pBigNum The big number. + * @param cNewUsed The new cUsed value. + * @param cMinElements The minimum number of elements. + */ +static int rtBigNumGrow(PRTBIGNUM pBigNum, uint32_t cNewUsed, uint32_t cMinElements) +{ + Assert(cMinElements >= cNewUsed); + uint32_t const cbOld = pBigNum->cAllocated * RTBIGNUM_ELEMENT_SIZE; + uint32_t const cNew = RT_ALIGN_32(cMinElements, RTBIGNUM_ALIGNMENT); + uint32_t const cbNew = cNew * RTBIGNUM_ELEMENT_SIZE; + Assert(cbNew > cbOld); + if (cbNew <= RTBIGNUM_MAX_SIZE && cbNew > cbOld) + { + void *pvNew; + if (pBigNum->fSensitive) + pvNew = RTMemSaferReallocZ(cbOld, pBigNum->pauElements, cbNew); + else + pvNew = RTMemRealloc(pBigNum->pauElements, cbNew); + if (RT_LIKELY(pvNew)) + { + if (cbNew > cbOld) + RT_BZERO((char *)pvNew + cbOld, cbNew - cbOld); + if (pBigNum->cUsed > cNewUsed) + RT_BZERO((RTBIGNUMELEMENT *)pvNew + cNewUsed, (pBigNum->cUsed - cNewUsed) * RTBIGNUM_ELEMENT_SIZE); + + pBigNum->pauElements = (RTBIGNUMELEMENT *)pvNew; + pBigNum->cUsed = cNewUsed; + pBigNum->cAllocated = cNew; + return VINF_SUCCESS; + } + return VERR_NO_MEMORY; + } + return VERR_OUT_OF_RANGE; +} + + +/** + * Changes the cUsed member, growing the pauElements array if necessary. + * + * Any elements added to the array will be initialized to zero. + * + * @returns IPRT status code. + * @param pBigNum The big number. + * @param cNewUsed The new cUsed value. + */ +DECLINLINE(int) rtBigNumSetUsed(PRTBIGNUM pBigNum, uint32_t cNewUsed) +{ + if (pBigNum->cAllocated >= cNewUsed) + { + if (pBigNum->cUsed > cNewUsed) + RT_BZERO(&pBigNum->pauElements[cNewUsed], (pBigNum->cUsed - cNewUsed) * RTBIGNUM_ELEMENT_SIZE); +#ifdef RT_STRICT + else if (pBigNum->cUsed != cNewUsed) + Assert(ASMMemIsAllU32(&pBigNum->pauElements[pBigNum->cUsed], + (cNewUsed - pBigNum->cUsed) * RTBIGNUM_ELEMENT_SIZE, 0) == NULL); +#endif + pBigNum->cUsed = cNewUsed; + return VINF_SUCCESS; + } + return rtBigNumGrow(pBigNum, cNewUsed, cNewUsed); +} + + +/** + * Extended version of rtBigNumSetUsed that also allow specifying the number of + * zero elements required. + * + * @returns IPRT status code. + * @param pBigNum The big number. + * @param cNewUsed The new cUsed value. + * @param cMinElements The minimum number of elements allocated. The + * difference between @a cNewUsed and @a cMinElements + * is initialized to zero because all free elements are + * zero. + */ +DECLINLINE(int) rtBigNumSetUsedEx(PRTBIGNUM pBigNum, uint32_t cNewUsed, uint32_t cMinElements) +{ + if (pBigNum->cAllocated >= cMinElements) + { + if (pBigNum->cUsed > cNewUsed) + RT_BZERO(&pBigNum->pauElements[cNewUsed], (pBigNum->cUsed - cNewUsed) * RTBIGNUM_ELEMENT_SIZE); +#ifdef RT_STRICT + else if (pBigNum->cUsed != cNewUsed) + Assert(ASMMemIsAllU32(&pBigNum->pauElements[pBigNum->cUsed], + (cNewUsed - pBigNum->cUsed) * RTBIGNUM_ELEMENT_SIZE, 0) == NULL); +#endif + pBigNum->cUsed = cNewUsed; + return VINF_SUCCESS; + } + return rtBigNumGrow(pBigNum, cNewUsed, cMinElements); +} + + +/** + * For ensuring zero padding of pauElements for sub/add with carry assembly + * operations. + * + * @returns IPRT status code. + * @param pBigNum The big number. + * @param cElements The number of elements that must be in the elements + * array array, where those after pBigNum->cUsed must + * be zero. + */ +DECLINLINE(int) rtBigNumEnsureExtraZeroElements(PRTBIGNUM pBigNum, uint32_t cElements) +{ + if (pBigNum->cAllocated >= cElements) + { + Assert( pBigNum->cAllocated == pBigNum->cUsed + || ASMMemIsAllU32(&pBigNum->pauElements[pBigNum->cUsed], + (pBigNum->cAllocated - pBigNum->cUsed) * RTBIGNUM_ELEMENT_SIZE, 0) == NULL); + return VINF_SUCCESS; + } + return rtBigNumGrow(pBigNum, pBigNum->cUsed, cElements); +} + + +/** + * The slow part of rtBigNumEnsureElementPresent where we need to do actual zero + * extending. + * + * @returns IPRT status code. + * @param pBigNum The big number. + * @param iElement The element we wish to access. + */ +static int rtBigNumEnsureElementPresentSlow(PRTBIGNUM pBigNum, uint32_t iElement) +{ + uint32_t const cOldUsed = pBigNum->cUsed; + int rc = rtBigNumSetUsed(pBigNum, iElement + 1); + if (RT_SUCCESS(rc)) + { + RT_BZERO(&pBigNum->pauElements[cOldUsed], (iElement + 1 - cOldUsed) * RTBIGNUM_ELEMENT_SIZE); + return VINF_SUCCESS; + } + return rc; +} + + +/** + * Zero extends the element array to make sure a the specified element index is + * accessible. + * + * This is typically used with bit operations and self modifying methods. Any + * new elements added will be initialized to zero. The caller is responsible + * for there not being any trailing zero elements. + * + * The number must be unscrambled. + * + * @returns IPRT status code. + * @param pBigNum The big number. + * @param iElement The element we wish to access. + */ +DECLINLINE(int) rtBigNumEnsureElementPresent(PRTBIGNUM pBigNum, uint32_t iElement) +{ + if (iElement < pBigNum->cUsed) + return VINF_SUCCESS; + return rtBigNumEnsureElementPresentSlow(pBigNum, iElement); +} + + +/** + * Strips zero elements from the magnitude value. + * + * @param pBigNum The big number to strip. + */ +static void rtBigNumStripTrailingZeros(PRTBIGNUM pBigNum) +{ + uint32_t i = pBigNum->cUsed; + while (i > 0 && pBigNum->pauElements[i - 1] == 0) + i--; + pBigNum->cUsed = i; +} + + +/** + * Initialize the big number to zero. + * + * @returns @a pBigNum + * @param pBigNum The big number. + * @param fFlags The flags. + * @internal + */ +DECLINLINE(PRTBIGNUM) rtBigNumInitZeroInternal(PRTBIGNUM pBigNum, uint32_t fFlags) +{ + RT_ZERO(*pBigNum); + pBigNum->fSensitive = RT_BOOL(fFlags & RTBIGNUMINIT_F_SENSITIVE); + return pBigNum; +} + + +/** + * Initialize the big number to zero from a template variable. + * + * @returns @a pBigNum + * @param pBigNum The big number. + * @param pTemplate The template big number. + * @internal + */ +DECLINLINE(PRTBIGNUM) rtBigNumInitZeroTemplate(PRTBIGNUM pBigNum, PCRTBIGNUM pTemplate) +{ + RT_ZERO(*pBigNum); + pBigNum->fSensitive = pTemplate->fSensitive; + return pBigNum; +} + + +RTDECL(int) RTBigNumInit(PRTBIGNUM pBigNum, uint32_t fFlags, void const *pvRaw, size_t cbRaw) +{ + /* + * Validate input. + */ + AssertPtrReturn(pBigNum, VERR_INVALID_POINTER); + AssertReturn(RT_BOOL(fFlags & RTBIGNUMINIT_F_ENDIAN_BIG) ^ RT_BOOL(fFlags & RTBIGNUMINIT_F_ENDIAN_LITTLE), + VERR_INVALID_PARAMETER); + AssertReturn(RT_BOOL(fFlags & RTBIGNUMINIT_F_UNSIGNED) ^ RT_BOOL(fFlags & RTBIGNUMINIT_F_SIGNED), VERR_INVALID_PARAMETER); + if (cbRaw) + AssertPtrReturn(pvRaw, VERR_INVALID_POINTER); + + /* + * Initalize the big number to zero. + */ + rtBigNumInitZeroInternal(pBigNum, fFlags); + + /* + * Strip the input and figure the sign flag. + */ + uint8_t const *pb = (uint8_t const *)pvRaw; + if (cbRaw) + { + if (fFlags & RTBIGNUMINIT_F_ENDIAN_LITTLE) + { + if (fFlags & RTBIGNUMINIT_F_UNSIGNED) + { + while (cbRaw > 0 && pb[cbRaw - 1] == 0) + cbRaw--; + } + else + { + if (pb[cbRaw - 1] >> 7) + { + pBigNum->fNegative = 1; + while (cbRaw > 1 && pb[cbRaw - 1] == 0xff) + cbRaw--; + } + else + while (cbRaw > 0 && pb[cbRaw - 1] == 0) + cbRaw--; + } + } + else + { + if (fFlags & RTBIGNUMINIT_F_UNSIGNED) + { + while (cbRaw > 0 && *pb == 0) + pb++, cbRaw--; + } + else + { + if (*pb >> 7) + { + pBigNum->fNegative = 1; + while (cbRaw > 1 && *pb == 0xff) + pb++, cbRaw--; + } + else + while (cbRaw > 0 && *pb == 0) + pb++, cbRaw--; + } + } + } + + /* + * Allocate memory for the elements. + */ + size_t cbAligned = RT_ALIGN_Z(cbRaw, RTBIGNUM_ELEMENT_SIZE); + if (RT_UNLIKELY(cbAligned >= RTBIGNUM_MAX_SIZE)) + return VERR_OUT_OF_RANGE; + pBigNum->cUsed = (uint32_t)cbAligned / RTBIGNUM_ELEMENT_SIZE; + if (pBigNum->cUsed) + { + pBigNum->cAllocated = RT_ALIGN_32(pBigNum->cUsed, RTBIGNUM_ALIGNMENT); + if (pBigNum->fSensitive) + pBigNum->pauElements = (RTBIGNUMELEMENT *)RTMemSaferAllocZ(pBigNum->cAllocated * RTBIGNUM_ELEMENT_SIZE); + else + pBigNum->pauElements = (RTBIGNUMELEMENT *)RTMemAlloc(pBigNum->cAllocated * RTBIGNUM_ELEMENT_SIZE); + if (RT_UNLIKELY(!pBigNum->pauElements)) + return VERR_NO_MEMORY; + + /* + * Initialize the array. + */ + uint32_t i = 0; + if (fFlags & RTBIGNUMINIT_F_ENDIAN_LITTLE) + { + while (cbRaw >= RTBIGNUM_ELEMENT_SIZE) + { +#if RTBIGNUM_ELEMENT_SIZE == 8 + pBigNum->pauElements[i] = RT_MAKE_U64_FROM_U8(pb[0], pb[1], pb[2], pb[3], pb[4], pb[5], pb[6], pb[7]); +#elif RTBIGNUM_ELEMENT_SIZE == 4 + pBigNum->pauElements[i] = RT_MAKE_U32_FROM_U8(pb[0], pb[1], pb[2], pb[3]); +#else +# error "Bad RTBIGNUM_ELEMENT_SIZE value" +#endif + i++; + pb += RTBIGNUM_ELEMENT_SIZE; + cbRaw -= RTBIGNUM_ELEMENT_SIZE; + } + + if (cbRaw > 0) + { + RTBIGNUMELEMENT uLast = pBigNum->fNegative ? ~(RTBIGNUMELEMENT)0 : 0; + switch (cbRaw) + { + default: AssertFailed(); +#if RTBIGNUM_ELEMENT_SIZE == 8 + case 7: uLast = (uLast << 8) | pb[6]; + case 6: uLast = (uLast << 8) | pb[5]; + case 5: uLast = (uLast << 8) | pb[4]; + case 4: uLast = (uLast << 8) | pb[3]; +#endif + case 3: uLast = (uLast << 8) | pb[2]; + case 2: uLast = (uLast << 8) | pb[1]; + case 1: uLast = (uLast << 8) | pb[0]; + } + pBigNum->pauElements[i] = uLast; + } + } + else + { + pb += cbRaw; + while (cbRaw >= RTBIGNUM_ELEMENT_SIZE) + { + pb -= RTBIGNUM_ELEMENT_SIZE; +#if RTBIGNUM_ELEMENT_SIZE == 8 + pBigNum->pauElements[i] = RT_MAKE_U64_FROM_U8(pb[7], pb[6], pb[5], pb[4], pb[3], pb[2], pb[1], pb[0]); +#elif RTBIGNUM_ELEMENT_SIZE == 4 + pBigNum->pauElements[i] = RT_MAKE_U32_FROM_U8(pb[3], pb[2], pb[1], pb[0]); +#else +# error "Bad RTBIGNUM_ELEMENT_SIZE value" +#endif + i++; + cbRaw -= RTBIGNUM_ELEMENT_SIZE; + } + + if (cbRaw > 0) + { + RTBIGNUMELEMENT uLast = pBigNum->fNegative ? ~(RTBIGNUMELEMENT)0 : 0; + pb -= cbRaw; + switch (cbRaw) + { + default: AssertFailed(); +#if RTBIGNUM_ELEMENT_SIZE == 8 + case 7: uLast = (uLast << 8) | *pb++; + case 6: uLast = (uLast << 8) | *pb++; + case 5: uLast = (uLast << 8) | *pb++; + case 4: uLast = (uLast << 8) | *pb++; +#endif + case 3: uLast = (uLast << 8) | *pb++; + case 2: uLast = (uLast << 8) | *pb++; + case 1: uLast = (uLast << 8) | *pb++; + } + pBigNum->pauElements[i] = uLast; + } + } + + /* + * If negative, negate it so we get a positive magnitude value in pauElements. + */ + if (pBigNum->fNegative) + { + pBigNum->pauElements[0] = 0U - pBigNum->pauElements[0]; + for (i = 1; i < pBigNum->cUsed; i++) + pBigNum->pauElements[i] = 0U - pBigNum->pauElements[i] - 1U; + } + + /* + * Clear unused elements. + */ + if (pBigNum->cUsed != pBigNum->cAllocated) + { + RTBIGNUMELEMENT *puUnused = &pBigNum->pauElements[pBigNum->cUsed]; + AssertCompile(RTBIGNUM_ALIGNMENT <= 4); + switch (pBigNum->cAllocated - pBigNum->cUsed) + { + default: AssertFailed(); + case 3: *puUnused++ = 0; + case 2: *puUnused++ = 0; + case 1: *puUnused++ = 0; + } + } + RTBIGNUM_ASSERT_VALID(pBigNum); + } + + rtBigNumScramble(pBigNum); + return VINF_SUCCESS; +} + + +RTDECL(int) RTBigNumInitZero(PRTBIGNUM pBigNum, uint32_t fFlags) +{ + AssertReturn(!(fFlags & ~RTBIGNUMINIT_F_SENSITIVE), VERR_INVALID_PARAMETER); + AssertPtrReturn(pBigNum, VERR_INVALID_POINTER); + + rtBigNumInitZeroInternal(pBigNum, fFlags); + rtBigNumScramble(pBigNum); + return VINF_SUCCESS; +} + + +/** + * Internal clone function that assumes the caller takes care of scrambling. + * + * @returns IPRT status code. + * @param pBigNum The target number. + * @param pSrc The source number. + */ +static int rtBigNumCloneInternal(PRTBIGNUM pBigNum, PCRTBIGNUM pSrc) +{ + Assert(!pSrc->fCurScrambled); + int rc = VINF_SUCCESS; + + /* + * Copy over the data. + */ + RT_ZERO(*pBigNum); + pBigNum->fNegative = pSrc->fNegative; + pBigNum->fSensitive = pSrc->fSensitive; + pBigNum->cUsed = pSrc->cUsed; + if (pSrc->cUsed) + { + /* Duplicate the element array. */ + pBigNum->cAllocated = RT_ALIGN_32(pBigNum->cUsed, RTBIGNUM_ALIGNMENT); + if (pBigNum->fSensitive) + pBigNum->pauElements = (RTBIGNUMELEMENT *)RTMemSaferAllocZ(pBigNum->cAllocated * RTBIGNUM_ELEMENT_SIZE); + else + pBigNum->pauElements = (RTBIGNUMELEMENT *)RTMemAlloc(pBigNum->cAllocated * RTBIGNUM_ELEMENT_SIZE); + if (RT_LIKELY(pBigNum->pauElements)) + { + memcpy(pBigNum->pauElements, pSrc->pauElements, pBigNum->cUsed * RTBIGNUM_ELEMENT_SIZE); + if (pBigNum->cUsed != pBigNum->cAllocated) + RT_BZERO(&pBigNum->pauElements[pBigNum->cUsed], (pBigNum->cAllocated - pBigNum->cUsed) * RTBIGNUM_ELEMENT_SIZE); + } + else + { + RT_ZERO(*pBigNum); + rc = VERR_NO_MEMORY; + } + } + return rc; +} + + +RTDECL(int) RTBigNumClone(PRTBIGNUM pBigNum, PCRTBIGNUM pSrc) +{ + int rc = rtBigNumUnscramble((PRTBIGNUM)pSrc); + if (RT_SUCCESS(rc)) + { + RTBIGNUM_ASSERT_VALID(pSrc); + rc = rtBigNumCloneInternal(pBigNum, pSrc); + if (RT_SUCCESS(rc)) + rtBigNumScramble(pBigNum); + rtBigNumScramble((PRTBIGNUM)pSrc); + } + return rc; +} + + +RTDECL(int) RTBigNumDestroy(PRTBIGNUM pBigNum) +{ + if (pBigNum) + { + if (pBigNum->pauElements) + { + Assert(pBigNum->cAllocated > 0); + if (pBigNum->fSensitive) + { + RTMemSaferFree(pBigNum->pauElements, pBigNum->cAllocated * RTBIGNUM_ELEMENT_SIZE); + RT_ZERO(*pBigNum); + } + RTMemFree(pBigNum->pauElements); + pBigNum->pauElements = NULL; + } + } + return VINF_SUCCESS; +} + + +RTDECL(int) RTBigNumAssign(PRTBIGNUM pDst, PCRTBIGNUM pSrc) +{ + AssertReturn(pDst->fSensitive >= pSrc->fSensitive, VERR_BIGNUM_SENSITIVE_INPUT); + int rc = rtBigNumUnscramble(pDst); + if (RT_SUCCESS(rc)) + { + RTBIGNUM_ASSERT_VALID(pDst); + rc = rtBigNumUnscramble((PRTBIGNUM)pSrc); + if (RT_SUCCESS(rc)) + { + RTBIGNUM_ASSERT_VALID(pSrc); + if ( pDst->fSensitive == pSrc->fSensitive + || pDst->fSensitive) + { + if (pDst->cAllocated >= pSrc->cUsed) + { + if (pDst->cUsed > pSrc->cUsed) + RT_BZERO(&pDst->pauElements[pSrc->cUsed], (pDst->cUsed - pSrc->cUsed) * RTBIGNUM_ELEMENT_SIZE); + pDst->cUsed = pSrc->cUsed; + pDst->fNegative = pSrc->fNegative; + memcpy(pDst->pauElements, pSrc->pauElements, pSrc->cUsed * RTBIGNUM_ELEMENT_SIZE); + } + else + { + rc = rtBigNumGrow(pDst, pSrc->cUsed, pSrc->cUsed); + if (RT_SUCCESS(rc)) + { + pDst->fNegative = pSrc->fNegative; + memcpy(pDst->pauElements, pSrc->pauElements, pSrc->cUsed * RTBIGNUM_ELEMENT_SIZE); + } + } + } + else + rc = VERR_BIGNUM_SENSITIVE_INPUT; + rtBigNumScramble((PRTBIGNUM)pSrc); + } + rtBigNumScramble(pDst); + } + return rc; +} + + +/** + * Same as RTBigNumBitWidth, except that it ignore the signed bit. + * + * The number must be unscrambled. + * + * @returns The effective width of the magnitude, in bits. Returns 0 if the + * value is zero. + * @param pBigNum The bit number. + */ +static uint32_t rtBigNumMagnitudeBitWidth(PCRTBIGNUM pBigNum) +{ + uint32_t idxLast = pBigNum->cUsed; + if (idxLast) + { + idxLast--; + RTBIGNUMELEMENT uLast = pBigNum->pauElements[idxLast]; Assert(uLast); + return rtBigNumElementBitCount(uLast) + idxLast * RTBIGNUM_ELEMENT_BITS; + } + return 0; +} + + +RTDECL(uint32_t) RTBigNumBitWidth(PCRTBIGNUM pBigNum) +{ + uint32_t idxLast = pBigNum->cUsed; + if (idxLast) + { + idxLast--; + rtBigNumUnscramble((PRTBIGNUM)pBigNum); + RTBIGNUMELEMENT uLast = pBigNum->pauElements[idxLast]; Assert(uLast); + rtBigNumScramble((PRTBIGNUM)pBigNum); + return rtBigNumElementBitCount(uLast) + idxLast * RTBIGNUM_ELEMENT_BITS + pBigNum->fNegative; + } + return 0; +} + + +RTDECL(uint32_t) RTBigNumByteWidth(PCRTBIGNUM pBigNum) +{ + uint32_t cBits = RTBigNumBitWidth(pBigNum); + return (cBits + 7) / 8; +} + + +RTDECL(int) RTBigNumToBytesBigEndian(PCRTBIGNUM pBigNum, void *pvBuf, size_t cbWanted) +{ + AssertPtrReturn(pvBuf, VERR_INVALID_POINTER); + AssertReturn(cbWanted > 0, VERR_INVALID_PARAMETER); + + int rc = rtBigNumUnscramble((PRTBIGNUM)pBigNum); + if (RT_SUCCESS(rc)) + { + RTBIGNUM_ASSERT_VALID(pBigNum); + rc = VINF_SUCCESS; + if (pBigNum->cUsed != 0) + { + uint8_t *pbDst = (uint8_t *)pvBuf; + pbDst += cbWanted - 1; + for (uint32_t i = 0; i < pBigNum->cUsed; i++) + { + RTBIGNUMELEMENT uElement = pBigNum->pauElements[i]; + if (pBigNum->fNegative) + uElement = (RTBIGNUMELEMENT)0 - uElement - (i > 0); + if (cbWanted >= sizeof(uElement)) + { + *pbDst-- = (uint8_t)uElement; + uElement >>= 8; + *pbDst-- = (uint8_t)uElement; + uElement >>= 8; + *pbDst-- = (uint8_t)uElement; + uElement >>= 8; + *pbDst-- = (uint8_t)uElement; +#if RTBIGNUM_ELEMENT_SIZE == 8 + uElement >>= 8; + *pbDst-- = (uint8_t)uElement; + uElement >>= 8; + *pbDst-- = (uint8_t)uElement; + uElement >>= 8; + *pbDst-- = (uint8_t)uElement; + uElement >>= 8; + *pbDst-- = (uint8_t)uElement; +#elif RTBIGNUM_ELEMENT_SIZE != 4 +# error "Bad RTBIGNUM_ELEMENT_SIZE value" +#endif + cbWanted -= sizeof(uElement); + } + else + { + + uint32_t cBitsLeft = RTBIGNUM_ELEMENT_BITS; + while (cbWanted > 0) + { + *pbDst-- = (uint8_t)uElement; + uElement >>= 8; + cBitsLeft -= 8; + cbWanted--; + } + Assert(cBitsLeft > 0); Assert(cBitsLeft < RTBIGNUM_ELEMENT_BITS); + if ( i + 1 < pBigNum->cUsed + || ( !pBigNum->fNegative + ? uElement != 0 + : uElement != ((RTBIGNUMELEMENT)1 << cBitsLeft) - 1U ) ) + rc = VERR_BUFFER_OVERFLOW; + break; + } + } + + /* Sign extend the number to the desired output size. */ + if (cbWanted > 0) + memset(pbDst - cbWanted, pBigNum->fNegative ? 0 : 0xff, cbWanted); + } + else + RT_BZERO(pvBuf, cbWanted); + rtBigNumScramble((PRTBIGNUM)pBigNum); + } + return rc; +} + + +RTDECL(int) RTBigNumCompare(PRTBIGNUM pLeft, PRTBIGNUM pRight) +{ + int rc = rtBigNumUnscramble(pLeft); + if (RT_SUCCESS(rc)) + { + RTBIGNUM_ASSERT_VALID(pLeft); + rc = rtBigNumUnscramble(pRight); + if (RT_SUCCESS(rc)) + { + RTBIGNUM_ASSERT_VALID(pRight); + if (pLeft->fNegative == pRight->fNegative) + { + if (pLeft->cUsed == pRight->cUsed) + { + rc = 0; + uint32_t i = pLeft->cUsed; + while (i-- > 0) + if (pLeft->pauElements[i] != pRight->pauElements[i]) + { + rc = pLeft->pauElements[i] < pRight->pauElements[i] ? -1 : 1; + break; + } + if (pLeft->fNegative) + rc = -rc; + } + else + rc = !pLeft->fNegative + ? pLeft->cUsed < pRight->cUsed ? -1 : 1 + : pLeft->cUsed < pRight->cUsed ? 1 : -1; + } + else + rc = pLeft->fNegative ? -1 : 1; + + rtBigNumScramble(pRight); + } + rtBigNumScramble(pLeft); + } + return rc; +} + + +RTDECL(int) RTBigNumCompareWithU64(PRTBIGNUM pLeft, uint64_t uRight) +{ + int rc = rtBigNumUnscramble(pLeft); + if (RT_SUCCESS(rc)) + { + RTBIGNUM_ASSERT_VALID(pLeft); + if (!pLeft->fNegative) + { + if (pLeft->cUsed * RTBIGNUM_ELEMENT_SIZE <= sizeof(uRight)) + { + if (pLeft->cUsed == 0) + rc = uRight == 0 ? 0 : -1; + else + { +#if RTBIGNUM_ELEMENT_SIZE == 8 + uint64_t uLeft = rtBigNumGetElement(pLeft, 0); + if (uLeft < uRight) + rc = -1; + else + rc = uLeft == uRight ? 0 : 1; +#elif RTBIGNUM_ELEMENT_SIZE == 4 + uint32_t uSubLeft = rtBigNumGetElement(pLeft, 1); + uint32_t uSubRight = (uint32_t)(uRight >> 32); + if (uSubLeft == uSubRight) + { + uSubLeft = rtBigNumGetElement(pLeft, 0); + uSubRight = (uint32_t)uRight; + } + if (uSubLeft < uSubRight) + rc = -1; + else + rc = uSubLeft == uSubRight ? 0 : 1; +#else +# error "Bad RTBIGNUM_ELEMENT_SIZE value" +#endif + } + } + else + rc = 1; + } + else + rc = -1; + rtBigNumScramble(pLeft); + } + return rc; +} + + +RTDECL(int) RTBigNumCompareWithS64(PRTBIGNUM pLeft, int64_t iRight) +{ + int rc = rtBigNumUnscramble(pLeft); + if (RT_SUCCESS(rc)) + { + RTBIGNUM_ASSERT_VALID(pLeft); + if (pLeft->fNegative == (iRight < 0)) + { + AssertCompile(RTBIGNUM_ELEMENT_SIZE <= sizeof(iRight)); + if (pLeft->cUsed * RTBIGNUM_ELEMENT_SIZE <= sizeof(iRight)) + { + uint64_t uRightMagn = !pLeft->fNegative ? (uint64_t)iRight : (uint64_t)-iRight; +#if RTBIGNUM_ELEMENT_SIZE == 8 + uint64_t uLeft = rtBigNumGetElement(pLeft, 0); + if (uLeft < uRightMagn) + rc = -1; + else + rc = uLeft == (uint64_t)uRightMagn ? 0 : 1; +#elif RTBIGNUM_ELEMENT_SIZE == 4 + uint32_t uSubLeft = rtBigNumGetElement(pLeft, 1); + uint32_t uSubRight = (uint32_t)(uRightMagn >> 32); + if (uSubLeft == uSubRight) + { + uSubLeft = rtBigNumGetElement(pLeft, 0); + uSubRight = (uint32_t)uRightMagn; + } + if (uSubLeft < uSubRight) + rc = -1; + else + rc = uSubLeft == uSubRight ? 0 : 1; +#else +# error "Bad RTBIGNUM_ELEMENT_SIZE value" +#endif + if (pLeft->fNegative) + rc = -rc; + } + else + rc = pLeft->fNegative ? -1 : 1; + } + else + rc = pLeft->fNegative ? -1 : 1; + rtBigNumScramble(pLeft); + } + return rc; +} + + +/** + * Compares the magnitude values of two big numbers. + * + * @retval -1 if pLeft is smaller than pRight. + * @retval 0 if pLeft is equal to pRight. + * @retval 1 if pLeft is larger than pRight. + * @param pLeft The left side number. + * @param pRight The right side number. + */ +static int rtBigNumMagnitudeCompare(PCRTBIGNUM pLeft, PCRTBIGNUM pRight) +{ + Assert(!pLeft->fCurScrambled); Assert(!pRight->fCurScrambled); + int rc; + uint32_t i = pLeft->cUsed; + if (i == pRight->cUsed) + { + rc = 0; + while (i-- > 0) + if (pLeft->pauElements[i] != pRight->pauElements[i]) + { + rc = pLeft->pauElements[i] < pRight->pauElements[i] ? -1 : 1; + break; + } + } + else + rc = i < pRight->cUsed ? -1 : 1; + return rc; +} + + +/** + * Copies the magnitude of on number (@a pSrc) to another (@a pBigNum). + * + * The variables must be unscrambled. The sign flag is not considered nor + * touched. + * + * @returns IPRT status code. + * @param pDst The destination number. + * @param pSrc The source number. + */ +DECLINLINE(int) rtBigNumMagnitudeCopy(PRTBIGNUM pDst, PCRTBIGNUM pSrc) +{ + int rc = rtBigNumSetUsed(pDst, pSrc->cUsed); + if (RT_SUCCESS(rc)) + memcpy(pDst->pauElements, pSrc->pauElements, pSrc->cUsed * RTBIGNUM_ELEMENT_SIZE); + return rc; +} + + + +/** + * Adds two magnitudes and stores them into a third. + * + * All variables must be unscrambled. The sign flag is not considered nor + * touched. + * + * @returns IPRT status code. + * @param pResult The resultant. + * @param pAugend To whom it shall be addede. + * @param pAddend The nombre to addede. + */ +static int rtBigNumMagnitudeAdd(PRTBIGNUM pResult, PCRTBIGNUM pAugend, PCRTBIGNUM pAddend) +{ + Assert(!pResult->fCurScrambled); Assert(!pAugend->fCurScrambled); Assert(!pAddend->fCurScrambled); + Assert(pResult != pAugend); Assert(pResult != pAddend); + + uint32_t cElements = RT_MAX(pAugend->cUsed, pAddend->cUsed); + int rc = rtBigNumSetUsed(pResult, cElements); + if (RT_SUCCESS(rc)) + { + /* + * The primitive way, requires at least two additions for each entry + * without machine code help. + */ + RTBIGNUMELEMENT fCarry = 0; + for (uint32_t i = 0; i < cElements; i++) + pResult->pauElements[i] = rtBigNumElementAddWithCarry(rtBigNumGetElement(pAugend, i), + rtBigNumGetElement(pAddend, i), + &fCarry); + if (fCarry) + { + rc = rtBigNumSetUsed(pResult, cElements + 1); + if (RT_SUCCESS(rc)) + pResult->pauElements[cElements++] = 1; + } + Assert(pResult->cUsed == cElements || RT_FAILURE_NP(rc)); + } + + return rc; +} + + +/** + * Substracts a smaller (or equal) magnitude from another one and stores it into + * a third. + * + * All variables must be unscrambled. The sign flag is not considered nor + * touched. For this reason, the @a pMinuend must be larger or equal to @a + * pSubtrahend. + * + * @returns IPRT status code. + * @param pResult There to store the result. + * @param pMinuend What to subtract from. + * @param pSubtrahend What to subtract. + */ +static int rtBigNumMagnitudeSub(PRTBIGNUM pResult, PCRTBIGNUM pMinuend, PCRTBIGNUM pSubtrahend) +{ + Assert(!pResult->fCurScrambled); Assert(!pMinuend->fCurScrambled); Assert(!pSubtrahend->fCurScrambled); + Assert(pResult != pMinuend); Assert(pResult != pSubtrahend); + Assert(pMinuend->cUsed >= pSubtrahend->cUsed); + + int rc; + if (pSubtrahend->cUsed) + { + /* + * Resize the result. In the assembly case, ensure that all three arrays + * has the same number of used entries, possibly with an extra zero + * element on 64-bit systems. + */ + rc = rtBigNumSetUsedEx(pResult, pMinuend->cUsed, RTBIGNUM_ZERO_ALIGN(pMinuend->cUsed)); +#ifdef IPRT_BIGINT_WITH_ASM + if (RT_SUCCESS(rc)) + rc = rtBigNumEnsureExtraZeroElements((PRTBIGNUM)pMinuend, RTBIGNUM_ZERO_ALIGN(pMinuend->cUsed)); + if (RT_SUCCESS(rc)) + rc = rtBigNumEnsureExtraZeroElements((PRTBIGNUM)pSubtrahend, RTBIGNUM_ZERO_ALIGN(pMinuend->cUsed)); +#endif + if (RT_SUCCESS(rc)) + { +#ifdef IPRT_BIGINT_WITH_ASM + /* + * Call assembly to do the work. + */ + rtBigNumMagnitudeSubAssemblyWorker(pResult->pauElements, pMinuend->pauElements, + pSubtrahend->pauElements, pMinuend->cUsed); +# ifdef RT_STRICT + RTBIGNUMELEMENT fBorrow = 0; + for (uint32_t i = 0; i < pMinuend->cUsed; i++) + { + RTBIGNUMELEMENT uCorrect = rtBigNumElementSubWithBorrow(pMinuend->pauElements[i], rtBigNumGetElement(pSubtrahend, i), &fBorrow); + AssertMsg(pResult->pauElements[i] == uCorrect, ("[%u]=%#x, expected %#x\n", i, pResult->pauElements[i], uCorrect)); + } +# endif +#else + /* + * The primitive C way. + */ + RTBIGNUMELEMENT fBorrow = 0; + for (uint32_t i = 0; i < pMinuend->cUsed; i++) + pResult->pauElements[i] = rtBigNumElementSubWithBorrow(pMinuend->pauElements[i], + rtBigNumGetElement(pSubtrahend, i), + &fBorrow); + Assert(fBorrow == 0); +#endif + + /* + * Trim the result. + */ + rtBigNumStripTrailingZeros(pResult); + } + } + /* + * Special case: Subtrahend is zero. + */ + else + rc = rtBigNumMagnitudeCopy(pResult, pMinuend); + + return rc; +} + + +/** + * Substracts a smaller (or equal) magnitude from another one and stores the + * result into the first. + * + * All variables must be unscrambled. The sign flag is not considered nor + * touched. For this reason, the @a pMinuendResult must be larger or equal to + * @a pSubtrahend. + * + * @returns IPRT status code (memory alloc error). + * @param pMinuendResult What to subtract from and return as result. + * @param pSubtrahend What to subtract. + */ +static int rtBigNumMagnitudeSubThis(PRTBIGNUM pMinuendResult, PCRTBIGNUM pSubtrahend) +{ + Assert(!pMinuendResult->fCurScrambled); Assert(!pSubtrahend->fCurScrambled); + Assert(pMinuendResult != pSubtrahend); + Assert(pMinuendResult->cUsed >= pSubtrahend->cUsed); + +#ifdef IPRT_BIGINT_WITH_ASM + /* + * Use the assembly worker. Requires same sized element arrays, so zero extend them. + */ + int rc = rtBigNumEnsureExtraZeroElements(pMinuendResult, RTBIGNUM_ZERO_ALIGN(pMinuendResult->cUsed)); + if (RT_SUCCESS(rc)) + rc = rtBigNumEnsureExtraZeroElements((PRTBIGNUM)pSubtrahend, RTBIGNUM_ZERO_ALIGN(pMinuendResult->cUsed)); + if (RT_FAILURE(rc)) + return rc; + rtBigNumMagnitudeSubThisAssemblyWorker(pMinuendResult->pauElements, pSubtrahend->pauElements, pMinuendResult->cUsed); +#else + /* + * The primitive way, as usual. + */ + RTBIGNUMELEMENT fBorrow = 0; + for (uint32_t i = 0; i < pMinuendResult->cUsed; i++) + pMinuendResult->pauElements[i] = rtBigNumElementSubWithBorrow(pMinuendResult->pauElements[i], + rtBigNumGetElement(pSubtrahend, i), + &fBorrow); + Assert(fBorrow == 0); +#endif + + /* + * Trim the result. + */ + rtBigNumStripTrailingZeros(pMinuendResult); + + return VINF_SUCCESS; +} + + +RTDECL(int) RTBigNumAdd(PRTBIGNUM pResult, PCRTBIGNUM pAugend, PCRTBIGNUM pAddend) +{ + Assert(pResult != pAugend); Assert(pResult != pAddend); + AssertReturn(pResult->fSensitive >= (pAugend->fSensitive | pAddend->fSensitive), VERR_BIGNUM_SENSITIVE_INPUT); + + int rc = rtBigNumUnscramble(pResult); + if (RT_SUCCESS(rc)) + { + RTBIGNUM_ASSERT_VALID(pResult); + rc = rtBigNumUnscramble((PRTBIGNUM)pAugend); + if (RT_SUCCESS(rc)) + { + RTBIGNUM_ASSERT_VALID(pAugend); + rc = rtBigNumUnscramble((PRTBIGNUM)pAddend); + if (RT_SUCCESS(rc)) + { + RTBIGNUM_ASSERT_VALID(pAddend); + + /* + * Same sign: Add magnitude, keep sign. + * 1 + 1 = 2 + * (-1) + (-1) = -2 + */ + if (pAugend->fNegative == pAddend->fNegative) + { + pResult->fNegative = pAugend->fNegative; + rc = rtBigNumMagnitudeAdd(pResult, pAugend, pAddend); + } + /* + * Different sign: Subtract smaller from larger, keep sign of larger. + * (-5) + 3 = -2 + * 5 + (-3) = 2 + * (-1) + 3 = 2 + * 1 + (-3) = -2 + */ + else if (rtBigNumMagnitudeCompare(pAugend, pAddend) >= 0) + { + pResult->fNegative = pAugend->fNegative; + rc = rtBigNumMagnitudeSub(pResult, pAugend, pAddend); + if (!pResult->cUsed) + pResult->fNegative = 0; + } + else + { + pResult->fNegative = pAddend->fNegative; + rc = rtBigNumMagnitudeSub(pResult, pAddend, pAugend); + } + rtBigNumScramble((PRTBIGNUM)pAddend); + } + rtBigNumScramble((PRTBIGNUM)pAugend); + } + rtBigNumScramble(pResult); + } + return rc; +} + + +RTDECL(int) RTBigNumSubtract(PRTBIGNUM pResult, PCRTBIGNUM pMinuend, PCRTBIGNUM pSubtrahend) +{ + Assert(pResult != pMinuend); Assert(pResult != pSubtrahend); + AssertReturn(pResult->fSensitive >= (pMinuend->fSensitive | pSubtrahend->fSensitive), VERR_BIGNUM_SENSITIVE_INPUT); + + int rc = rtBigNumUnscramble(pResult); + if (RT_SUCCESS(rc)) + { + RTBIGNUM_ASSERT_VALID(pResult); + if (pMinuend != pSubtrahend) + { + rc = rtBigNumUnscramble((PRTBIGNUM)pMinuend); + if (RT_SUCCESS(rc)) + { + RTBIGNUM_ASSERT_VALID(pMinuend); + rc = rtBigNumUnscramble((PRTBIGNUM)pSubtrahend); + if (RT_SUCCESS(rc)) + { + RTBIGNUM_ASSERT_VALID(pSubtrahend); + + /* + * Different sign: Add magnitude, keep sign of first. + * 1 - (-2) == 3 + * -1 - 2 == -3 + */ + if (pMinuend->fNegative != pSubtrahend->fNegative) + { + pResult->fNegative = pMinuend->fNegative; + rc = rtBigNumMagnitudeAdd(pResult, pMinuend, pSubtrahend); + } + /* + * Same sign, minuend has greater or equal absolute value: Subtract, keep sign of first. + * 10 - 7 = 3 + */ + else if (rtBigNumMagnitudeCompare(pMinuend, pSubtrahend) >= 0) + { + pResult->fNegative = pMinuend->fNegative; + rc = rtBigNumMagnitudeSub(pResult, pMinuend, pSubtrahend); + } + /* + * Same sign, subtrahend is larger: Reverse and subtract, invert sign of first. + * 7 - 10 = -3 + * -1 - (-3) = 2 + */ + else + { + pResult->fNegative = !pMinuend->fNegative; + rc = rtBigNumMagnitudeSub(pResult, pSubtrahend, pMinuend); + } + rtBigNumScramble((PRTBIGNUM)pSubtrahend); + } + rtBigNumScramble((PRTBIGNUM)pMinuend); + } + } + else + { + /* zero. */ + pResult->fNegative = 0; + rtBigNumSetUsed(pResult, 0); + } + rtBigNumScramble(pResult); + } + return rc; +} + + +RTDECL(int) RTBigNumNegateThis(PRTBIGNUM pThis) +{ + pThis->fNegative = !pThis->fNegative; + return VINF_SUCCESS; +} + + +RTDECL(int) RTBigNumNegate(PRTBIGNUM pResult, PCRTBIGNUM pBigNum) +{ + int rc = RTBigNumAssign(pResult, pBigNum); + if (RT_SUCCESS(rc)) + rc = RTBigNumNegateThis(pResult); + return rc; +} + + +/** + * Multiplies the magnitudes of two values, letting the caller care about the + * sign bit. + * + * @returns IPRT status code. + * @param pResult Where to store the result. + * @param pMultiplicand The first value. + * @param pMultiplier The second value. + */ +static int rtBigNumMagnitudeMultiply(PRTBIGNUM pResult, PCRTBIGNUM pMultiplicand, PCRTBIGNUM pMultiplier) +{ + Assert(pResult != pMultiplicand); Assert(pResult != pMultiplier); + Assert(!pResult->fCurScrambled); Assert(!pMultiplicand->fCurScrambled); Assert(!pMultiplier->fCurScrambled); + + /* + * Multiplication involving zero is zero. + */ + if (!pMultiplicand->cUsed || !pMultiplier->cUsed) + { + pResult->fNegative = 0; + rtBigNumSetUsed(pResult, 0); + return VINF_SUCCESS; + } + + /* + * Allocate a result array that is the sum of the two factors, initialize + * it to zero. + */ + uint32_t cMax = pMultiplicand->cUsed + pMultiplier->cUsed; + int rc = rtBigNumSetUsed(pResult, cMax); + if (RT_SUCCESS(rc)) + { + RT_BZERO(pResult->pauElements, pResult->cUsed * RTBIGNUM_ELEMENT_SIZE); + +#ifdef IPRT_BIGINT_WITH_ASM + rtBigNumMagnitudeMultiplyAssemblyWorker(pResult->pauElements, + pMultiplier->pauElements, pMultiplier->cUsed, + pMultiplicand->pauElements, pMultiplicand->cUsed); +#else + for (uint32_t i = 0; i < pMultiplier->cUsed; i++) + { + RTBIGNUMELEMENT uMultiplier = pMultiplier->pauElements[i]; + for (uint32_t j = 0; j < pMultiplicand->cUsed; j++) + { + RTBIGNUMELEMENT uHi; + RTBIGNUMELEMENT uLo; +#if RTBIGNUM_ELEMENT_SIZE == 4 + uint64_t u64 = ASMMult2xU32RetU64(pMultiplicand->pauElements[j], uMultiplier); + uLo = (uint32_t)u64; + uHi = (uint32_t)(u64 >> 32); +#elif RTBIGNUM_ELEMENT_SIZE == 8 + uLo = ASMMult2xU64Ret2xU64(pMultiplicand->pauElements[j], uMultiplier, &uHi); +#else +# error "Invalid RTBIGNUM_ELEMENT_SIZE value" +#endif + RTBIGNUMELEMENT fCarry = 0; + uint64_t k = i + j; + pResult->pauElements[k] = rtBigNumElementAddWithCarry(pResult->pauElements[k], uLo, &fCarry); + k++; + pResult->pauElements[k] = rtBigNumElementAddWithCarry(pResult->pauElements[k], uHi, &fCarry); + while (fCarry) + { + k++; + pResult->pauElements[k] = rtBigNumElementAddWithCarry(pResult->pauElements[k], 0, &fCarry); + } + Assert(k < cMax); + } + } +#endif + + /* It's possible we overestimated the output size by 1 element. */ + rtBigNumStripTrailingZeros(pResult); + } + return rc; +} + + +RTDECL(int) RTBigNumMultiply(PRTBIGNUM pResult, PCRTBIGNUM pMultiplicand, PCRTBIGNUM pMultiplier) +{ + Assert(pResult != pMultiplicand); Assert(pResult != pMultiplier); + AssertReturn(pResult->fSensitive >= (pMultiplicand->fSensitive | pMultiplier->fSensitive), VERR_BIGNUM_SENSITIVE_INPUT); + + int rc = rtBigNumUnscramble(pResult); + if (RT_SUCCESS(rc)) + { + RTBIGNUM_ASSERT_VALID(pResult); + rc = rtBigNumUnscramble((PRTBIGNUM)pMultiplicand); + if (RT_SUCCESS(rc)) + { + RTBIGNUM_ASSERT_VALID(pMultiplicand); + rc = rtBigNumUnscramble((PRTBIGNUM)pMultiplier); + if (RT_SUCCESS(rc)) + { + RTBIGNUM_ASSERT_VALID(pMultiplier); + + /* + * The sign values follow XOR rules: + * -1 * 1 = -1; 1 ^ 0 = 1 + * 1 * -1 = -1; 1 ^ 0 = 1 + * -1 * -1 = 1; 1 ^ 1 = 0 + * 1 * 1 = 1; 0 ^ 0 = 0 + */ + pResult->fNegative = pMultiplicand->fNegative ^ pMultiplier->fNegative; + rc = rtBigNumMagnitudeMultiply(pResult, pMultiplicand, pMultiplier); + + rtBigNumScramble((PRTBIGNUM)pMultiplier); + } + rtBigNumScramble((PRTBIGNUM)pMultiplicand); + } + rtBigNumScramble(pResult); + } + return rc; +} + + +/** + * Clears a bit in the magnitude of @a pBigNum. + * + * The variables must be unscrambled. + * + * @param pBigNum The big number. + * @param iBit The bit to clear (0-based). + */ +DECLINLINE(void) rtBigNumMagnitudeClearBit(PRTBIGNUM pBigNum, uint32_t iBit) +{ + uint32_t iElement = iBit / RTBIGNUM_ELEMENT_BITS; + if (iElement < pBigNum->cUsed) + { + iBit &= RTBIGNUM_ELEMENT_BITS - 1; + pBigNum->pauElements[iElement] &= ~RTBIGNUM_ELEMENT_BIT(iBit); + if (iElement + 1 == pBigNum->cUsed && !pBigNum->pauElements[iElement]) + rtBigNumStripTrailingZeros(pBigNum); + } +} + + +/** + * Sets a bit in the magnitude of @a pBigNum. + * + * The variables must be unscrambled. + * + * @returns IPRT status code. + * @param pBigNum The big number. + * @param iBit The bit to clear (0-based). + */ +DECLINLINE(int) rtBigNumMagnitudeSetBit(PRTBIGNUM pBigNum, uint32_t iBit) +{ + uint32_t iElement = iBit / RTBIGNUM_ELEMENT_BITS; + int rc = rtBigNumEnsureElementPresent(pBigNum, iElement); + if (RT_SUCCESS(rc)) + { + iBit &= RTBIGNUM_ELEMENT_BITS - 1; + pBigNum->pauElements[iElement] |= RTBIGNUM_ELEMENT_BIT(iBit); + return VINF_SUCCESS; + } + return rc; +} + + +/** + * Writes a bit in the magnitude of @a pBigNum. + * + * The variables must be unscrambled. + * + * @returns IPRT status code. + * @param pBigNum The big number. + * @param iBit The bit to write (0-based). + * @param fValue The bit value. + */ +DECLINLINE(int) rtBigNumMagnitudeWriteBit(PRTBIGNUM pBigNum, uint32_t iBit, bool fValue) +{ + if (fValue) + return rtBigNumMagnitudeSetBit(pBigNum, iBit); + rtBigNumMagnitudeClearBit(pBigNum, iBit); + return VINF_SUCCESS; +} + + +/** + * Returns the given magnitude bit. + * + * The variables must be unscrambled. + * + * @returns The bit value (1 or 0). + * @param pBigNum The big number. + * @param iBit The bit to return (0-based). + */ +DECLINLINE(RTBIGNUMELEMENT) rtBigNumMagnitudeGetBit(PCRTBIGNUM pBigNum, uint32_t iBit) +{ + uint32_t iElement = iBit / RTBIGNUM_ELEMENT_BITS; + if (iElement < pBigNum->cUsed) + { + iBit &= RTBIGNUM_ELEMENT_BITS - 1; + return (pBigNum->pauElements[iElement] >> iBit) & 1; + } + return 0; +} + + +/** + * Shifts the magnitude left by one. + * + * The variables must be unscrambled. + * + * @returns IPRT status code. + * @param pBigNum The big number. + * @param uCarry The value to shift in at the bottom. + */ +DECLINLINE(int) rtBigNumMagnitudeShiftLeftOne(PRTBIGNUM pBigNum, RTBIGNUMELEMENT uCarry) +{ + Assert(uCarry <= 1); + + /* Do the shifting. */ + uint32_t cUsed = pBigNum->cUsed; +#ifdef IPRT_BIGINT_WITH_ASM + uCarry = rtBigNumMagnitudeShiftLeftOneAssemblyWorker(pBigNum->pauElements, cUsed, uCarry); +#else + for (uint32_t i = 0; i < cUsed; i++) + { + RTBIGNUMELEMENT uTmp = pBigNum->pauElements[i]; + pBigNum->pauElements[i] = (uTmp << 1) | uCarry; + uCarry = uTmp >> (RTBIGNUM_ELEMENT_BITS - 1); + } +#endif + + /* If we still carry a bit, we need to increase the size. */ + if (uCarry) + { + int rc = rtBigNumSetUsed(pBigNum, cUsed + 1); + pBigNum->pauElements[cUsed] = uCarry; + } + + return VINF_SUCCESS; +} + + +/** + * Shifts the magnitude left by @a cBits. + * + * The variables must be unscrambled. + * + * @returns IPRT status code. + * @param pResult Where to store the result. + * @param pValue The value to shift. + * @param cBits The shift count. + */ +static int rtBigNumMagnitudeShiftLeft(PRTBIGNUM pResult, PCRTBIGNUM pValue, uint32_t cBits) +{ + int rc; + if (cBits) + { + uint32_t cBitsNew = rtBigNumMagnitudeBitWidth(pValue); + if (cBitsNew > 0) + { + if (cBitsNew + cBits > cBitsNew) + { + cBitsNew += cBits; + rc = rtBigNumSetUsedEx(pResult, 0, RT_ALIGN_32(cBitsNew, RTBIGNUM_ELEMENT_BITS) / RTBIGNUM_ELEMENT_BITS); + if (RT_SUCCESS(rc)) + rc = rtBigNumSetUsed(pResult, RT_ALIGN_32(cBitsNew, RTBIGNUM_ELEMENT_BITS) / RTBIGNUM_ELEMENT_BITS); + if (RT_SUCCESS(rc)) + { + uint32_t const cLeft = pValue->cUsed; + PCRTBIGNUMELEMENT pauSrc = pValue->pauElements; + PRTBIGNUMELEMENT pauDst = pResult->pauElements; + + Assert(ASMMemIsAllU32(pauDst, (cBits / RTBIGNUM_ELEMENT_BITS) * RTBIGNUM_ELEMENT_SIZE, 0) == NULL); + pauDst += cBits / RTBIGNUM_ELEMENT_BITS; + + cBits &= RTBIGNUM_ELEMENT_BITS - 1; + if (cBits) + { + RTBIGNUMELEMENT uPrev = 0; + for (uint32_t i = 0; i < cLeft; i++) + { + RTBIGNUMELEMENT uCur = pauSrc[i]; + pauDst[i] = (uCur << cBits) | (uPrev >> (RTBIGNUM_ELEMENT_BITS - cBits)); + uPrev = uCur; + } + uPrev >>= RTBIGNUM_ELEMENT_BITS - cBits; + if (uPrev) + pauDst[pValue->cUsed] = uPrev; + } + else + memcpy(pauDst, pauSrc, cLeft * RTBIGNUM_ELEMENT_SIZE); + } + } + else + rc = VERR_OUT_OF_RANGE; + } + /* Shifting zero always yields a zero result. */ + else + rc = rtBigNumSetUsed(pResult, 0); + } + else + rc = rtBigNumMagnitudeCopy(pResult, pValue); + return rc; +} + + +RTDECL(int) RTBigNumShiftLeft(PRTBIGNUM pResult, PCRTBIGNUM pValue, uint32_t cBits) +{ + Assert(pResult != pValue); + AssertReturn(pResult->fSensitive >= pValue->fSensitive, VERR_BIGNUM_SENSITIVE_INPUT); + + int rc = rtBigNumUnscramble(pResult); + if (RT_SUCCESS(rc)) + { + RTBIGNUM_ASSERT_VALID(pResult); + rc = rtBigNumUnscramble((PRTBIGNUM)pValue); + if (RT_SUCCESS(rc)) + { + RTBIGNUM_ASSERT_VALID(pValue); + + pResult->fNegative = pValue->fNegative; + rc = rtBigNumMagnitudeShiftLeft(pResult, pValue, cBits); + + rtBigNumScramble((PRTBIGNUM)pValue); + } + rtBigNumScramble(pResult); + } + return rc; +} + + +/** + * Shifts the magnitude right by @a cBits. + * + * The variables must be unscrambled. + * + * @returns IPRT status code. + * @param pResult Where to store the result. + * @param pValue The value to shift. + * @param cBits The shift count. + */ +static int rtBigNumMagnitudeShiftRight(PRTBIGNUM pResult, PCRTBIGNUM pValue, uint32_t cBits) +{ + int rc; + if (cBits) + { + uint32_t cBitsNew = rtBigNumMagnitudeBitWidth(pValue); + if (cBitsNew > cBits) + { + cBitsNew -= cBits; + uint32_t cElementsNew = RT_ALIGN_32(cBitsNew, RTBIGNUM_ELEMENT_BITS) / RTBIGNUM_ELEMENT_BITS; + rc = rtBigNumSetUsed(pResult, cElementsNew); + if (RT_SUCCESS(rc)) + { + uint32_t i = cElementsNew; + PCRTBIGNUMELEMENT pauSrc = pValue->pauElements; + PRTBIGNUMELEMENT pauDst = pResult->pauElements; + + pauSrc += cBits / RTBIGNUM_ELEMENT_BITS; + + cBits &= RTBIGNUM_ELEMENT_BITS - 1; + if (cBits) + { + RTBIGNUMELEMENT uPrev = &pauSrc[i] == &pValue->pauElements[pValue->cUsed] ? 0 : pauSrc[i]; + while (i-- > 0) + { + RTBIGNUMELEMENT uCur = pauSrc[i]; + pauDst[i] = (uCur >> cBits) | (uPrev << (RTBIGNUM_ELEMENT_BITS - cBits)); + uPrev = uCur; + } + } + else + memcpy(pauDst, pauSrc, i * RTBIGNUM_ELEMENT_SIZE); + } + } + else + rc = rtBigNumSetUsed(pResult, 0); + } + else + rc = rtBigNumMagnitudeCopy(pResult, pValue); + return rc; +} + + +RTDECL(int) RTBigNumShiftRight(PRTBIGNUM pResult, PCRTBIGNUM pValue, uint32_t cBits) +{ + Assert(pResult != pValue); + AssertReturn(pResult->fSensitive >= pValue->fSensitive, VERR_BIGNUM_SENSITIVE_INPUT); + + int rc = rtBigNumUnscramble(pResult); + if (RT_SUCCESS(rc)) + { + RTBIGNUM_ASSERT_VALID(pResult); + rc = rtBigNumUnscramble((PRTBIGNUM)pValue); + if (RT_SUCCESS(rc)) + { + RTBIGNUM_ASSERT_VALID(pValue); + + pResult->fNegative = pValue->fNegative; + rc = rtBigNumMagnitudeShiftRight(pResult, pValue, cBits); + if (!pResult->cUsed) + pResult->fNegative = 0; + + rtBigNumScramble((PRTBIGNUM)pValue); + } + rtBigNumScramble(pResult); + } + return rc; +} + + +/** + * Implements the D3 test for Qhat decrementation. + * + * @returns True if Qhat should be decremented. + * @param puQhat Pointer to Qhat. + * @param uRhat The remainder. + * @param uDivisorY The penultimate divisor element. + * @param uDividendJMinus2 The j-2 dividend element. + */ +DECLINLINE(bool) rtBigNumKnuthD3_ShouldDecrementQhat(RTBIGNUMELEMENT2X const *puQhat, RTBIGNUMELEMENT uRhat, + RTBIGNUMELEMENT uDivisorY, RTBIGNUMELEMENT uDividendJMinus2) +{ + if (puQhat->s.Lo == RTBIGNUM_ELEMENT_MAX && puQhat->s.Hi == 0) + return true; +#if RTBIGNUM_ELEMENT_BITS == 64 + RTBIGNUMELEMENT2X TmpLeft; + RTUInt128MulByU64(&TmpLeft, puQhat, uDivisorY); + + RTBIGNUMELEMENT2X TmpRight; + TmpRight.s.Lo = 0; + TmpRight.s.Hi = uRhat; + RTUInt128AssignAddU64(&TmpRight, uDividendJMinus2); + + if (RTUInt128Compare(&TmpLeft, &TmpRight) > 0) + return true; +#else + if (puQhat->u * uDivisorY > ((uint64_t)uRhat << 32) + uDividendJMinus2) + return true; +#endif + return false; +} + + +/** + * C implementation of the D3 step of Knuth's division algorithm. + * + * This estimates a value Qhat that will be used as quotient "digit" (element) + * at the current level of the division (j). + * + * @returns The Qhat value we've estimated. + * @param pauDividendJN Pointer to the j+n (normalized) dividend element. + * Will access up to two elements prior to this. + * @param uDivZ The last element in the (normalized) divisor. + * @param uDivY The penultimate element in the (normalized) divisor. + */ +DECLINLINE(RTBIGNUMELEMENT) rtBigNumKnuthD3_EstimateQhat(PCRTBIGNUMELEMENT pauDividendJN, + RTBIGNUMELEMENT uDivZ, RTBIGNUMELEMENT uDivY) +{ + RTBIGNUMELEMENT2X uQhat; + RTBIGNUMELEMENT uRhat; + RTBIGNUMELEMENT uDividendJN = pauDividendJN[0]; + Assert(uDividendJN <= uDivZ); + if (uDividendJN != uDivZ) + rtBigNumElement2xDiv2xBy1x(&uQhat, &uRhat, uDividendJN, pauDividendJN[-1], uDivZ); + else + { + /* + * This is the case where we end up with an initial Qhat that's all Fs. + */ + /* Calc the remainder for max Qhat value. */ + RTBIGNUMELEMENT2X uTmp1; /* (v[j+n] << bits) + v[J+N-1] */ + uTmp1.s.Hi = uDivZ; + uTmp1.s.Lo = pauDividendJN[-1]; + + RTBIGNUMELEMENT2X uTmp2; /* uQhat * uDividendJN */ + uTmp2.s.Hi = uDivZ - 1; + uTmp2.s.Lo = 0 - uDivZ; +#if RTBIGNUM_ELEMENT_BITS == 64 + RTUInt128AssignSub(&uTmp1, &uTmp2); +#else + uTmp1.u -= uTmp2.u; +#endif + /* If we overflowed the remainder, don't bother trying to adjust. */ + if (uTmp1.s.Hi) + return RTBIGNUM_ELEMENT_MAX; + + uRhat = uTmp1.s.Lo; + uQhat.s.Lo = RTBIGNUM_ELEMENT_MAX; + uQhat.s.Hi = 0; + } + + /* + * Adjust Q to eliminate all cases where it's two to large and most cases + * where it's one too large. + */ + while (rtBigNumKnuthD3_ShouldDecrementQhat(&uQhat, uRhat, uDivY, pauDividendJN[-2])) + { + rtBigNumElement2xDec(&uQhat); + uRhat += uDivZ; + if (uRhat < uDivZ /* overflow */ || uRhat == RTBIGNUM_ELEMENT_MAX) + break; + } + + return uQhat.s.Lo; +} + + +#ifdef IPRT_BIGINT_WITH_ASM +DECLASM(bool) rtBigNumKnuthD4_MulSub(PRTBIGNUMELEMENT pauDividendJ, PRTBIGNUMELEMENT pauDivisor, + uint32_t cDivisor, RTBIGNUMELEMENT uQhat); +#else +/** + * C implementation of the D4 step of Knuth's division algorithm. + * + * This subtracts Divisor * Qhat from the dividend at the current J index. + * + * @returns true if negative result (unlikely), false if positive. + * @param pauDividendJ Pointer to the j-th (normalized) dividend element. + * Will access up to two elements prior to this. + * @param uDivZ The last element in the (normalized) divisor. + * @param uDivY The penultimate element in the (normalized) divisor. + */ +DECLINLINE(bool) rtBigNumKnuthD4_MulSub(PRTBIGNUMELEMENT pauDividendJ, PRTBIGNUMELEMENT pauDivisor, + uint32_t cDivisor, RTBIGNUMELEMENT uQhat) +{ + uint32_t i; + bool fBorrow = false; + RTBIGNUMELEMENT uMulCarry = 0; + for (i = 0; i < cDivisor; i++) + { + RTBIGNUMELEMENT2X uSub; +# if RTBIGNUM_ELEMENT_BITS == 64 + RTUInt128MulU64ByU64(&uSub, uQhat, pauDivisor[i]); + RTUInt128AssignAddU64(&uSub, uMulCarry); +# else + uSub.u = (uint64_t)uQhat * pauDivisor[i] + uMulCarry; +# endif + uMulCarry = uSub.s.Hi; + + RTBIGNUMELEMENT uDividendI = pauDividendJ[i]; + if (!fBorrow) + { + fBorrow = uDividendI < uSub.s.Lo; + uDividendI -= uSub.s.Lo; + } + else + { + fBorrow = uDividendI <= uSub.s.Lo; + uDividendI -= uSub.s.Lo + 1; + } + pauDividendJ[i] = uDividendI; + } + + /* Carry and borrow into the final dividend element. */ + RTBIGNUMELEMENT uDividendI = pauDividendJ[i]; + if (!fBorrow) + { + fBorrow = uDividendI < uMulCarry; + pauDividendJ[i] = uDividendI - uMulCarry; + } + else + { + fBorrow = uDividendI <= uMulCarry; + pauDividendJ[i] = uDividendI - uMulCarry - 1; + } + + return fBorrow; +} +#endif /* !IPRT_BIGINT_WITH_ASM */ + + +/** + * C implementation of the D6 step of Knuth's division algorithm. + * + * This adds the divisor to the dividend to undo the negative value step D4 + * produced. This is not very frequent occurence. + * + * @param pauDividendJ Pointer to the j-th (normalized) dividend element. + * Will access up to two elements prior to this. + * @param uDivZ The last element in the (normalized) divisor. + * @param uDivY The penultimate element in the (normalized) divisor. + */ +DECLINLINE(void) rtBigNumKnuthD6_AddBack(PRTBIGNUMELEMENT pauDividendJ, PRTBIGNUMELEMENT pauDivisor, uint32_t cDivisor) +{ + RTBIGNUMELEMENT2X uTmp; + uTmp.s.Lo = 0; + + uint32_t i; + for (i = 0; i < cDivisor; i++) + { + uTmp.s.Hi = 0; +#if RTBIGNUM_ELEMENT_BITS == 64 + RTUInt128AssignAddU64(&uTmp, pauDivisor[i]); + RTUInt128AssignAddU64(&uTmp, pauDividendJ[i]); +#else + uTmp.u += pauDivisor[i]; + uTmp.u += pauDividendJ[i]; +#endif + pauDividendJ[i] = uTmp.s.Lo; + uTmp.s.Lo = uTmp.s.Hi; + } + + /* The final dividend entry. */ + Assert(pauDividendJ[i] + uTmp.s.Lo < uTmp.s.Lo); + pauDividendJ[i] += uTmp.s.Lo; +} + + +/** + * Knuth's division (core). + * + * @returns IPRT status code. + * @param pQuotient Where to return the quotient. Can be NULL. + * @param pRemainder Where to return the remainder. + * @param pDividend What to divide. + * @param pDivisor What to divide by. + */ +static int rtBigNumMagnitudeDivideKnuth(PRTBIGNUM pQuotient, PRTBIGNUM pRemainder, PCRTBIGNUM pDividend, PCRTBIGNUM pDivisor) +{ + Assert(pDivisor->cUsed > 1); + uint32_t const cDivisor = pDivisor->cUsed; + Assert(pDividend->cUsed >= cDivisor); + + /* + * Make sure we've got enough space in the quotient, so we can build it + * without any trouble come step D5. + */ + int rc; + if (pQuotient) + { + rc = rtBigNumSetUsedEx(pQuotient, 0, pDividend->cUsed - cDivisor + 1); + if (RT_SUCCESS(rc)) + rc = rtBigNumSetUsed(pQuotient, pDividend->cUsed - cDivisor + 1); + if (RT_FAILURE(rc)) + return rc; + } + + /* + * D1. Normalize. The goal here is to make sure the last element in the + * divisor is greater than RTBIGNUMELEMENTS_MAX/2. We must also make sure + * we can access element pDividend->cUsed of the normalized dividend. + */ + RTBIGNUM NormDividend; + RTBIGNUM NormDivisor; + PCRTBIGNUM pNormDivisor = &NormDivisor; + rtBigNumInitZeroTemplate(&NormDivisor, pDividend); + + uint32_t cNormShift = (RTBIGNUM_ELEMENT_BITS - rtBigNumMagnitudeBitWidth(pDivisor)) & (RTBIGNUM_ELEMENT_BITS - 1); + if (cNormShift) + { + rtBigNumInitZeroTemplate(&NormDividend, pDividend); + rc = rtBigNumMagnitudeShiftLeft(&NormDividend, pDividend, cNormShift); + if (RT_SUCCESS(rc)) + rc = rtBigNumMagnitudeShiftLeft(&NormDivisor, pDivisor, cNormShift); + } + else + { + pNormDivisor = pDivisor; + rc = rtBigNumCloneInternal(&NormDividend, pDividend); + } + if (RT_SUCCESS(rc) && pDividend->cUsed == NormDividend.cUsed) + rc = rtBigNumEnsureExtraZeroElements(&NormDividend, NormDividend.cUsed + 1); + if (RT_SUCCESS(rc)) + { + /* + * D2. Initialize the j index so we can loop thru the elements in the + * dividend that makes it larger than the divisor. + */ + uint32_t j = pDividend->cUsed - cDivisor; + + RTBIGNUMELEMENT const DivZ = pNormDivisor->pauElements[cDivisor - 1]; + RTBIGNUMELEMENT const DivY = pNormDivisor->pauElements[cDivisor - 2]; + for (;;) + { + /* + * D3. Estimate a Q' by dividing the j and j-1 dividen elements by + * the last divisor element, then adjust against the next elements. + */ + RTBIGNUMELEMENT uQhat = rtBigNumKnuthD3_EstimateQhat(&NormDividend.pauElements[j + cDivisor], DivZ, DivY); + + /* + * D4. Multiply and subtract. + */ + bool fNegative = rtBigNumKnuthD4_MulSub(&NormDividend.pauElements[j], pNormDivisor->pauElements, cDivisor, uQhat); + + /* + * D5. Test remainder. + * D6. Add back. + */ + if (fNegative) + { +//__debugbreak(); + rtBigNumKnuthD6_AddBack(&NormDividend.pauElements[j], pNormDivisor->pauElements, cDivisor); + uQhat--; + } + + if (pQuotient) + pQuotient->pauElements[j] = uQhat; + + /* + * D7. Loop on j. + */ + if (j == 0) + break; + j--; + } + + /* + * D8. Unnormalize the remainder. + */ + rtBigNumStripTrailingZeros(&NormDividend); + if (cNormShift) + rc = rtBigNumMagnitudeShiftRight(pRemainder, &NormDividend, cNormShift); + else + rc = rtBigNumMagnitudeCopy(pRemainder, &NormDividend); + if (pQuotient) + rtBigNumStripTrailingZeros(pQuotient); + } + + /* + * Delete temporary variables. + */ + RTBigNumDestroy(&NormDividend); + if (pDivisor == &NormDivisor) + RTBigNumDestroy(&NormDivisor); + return rc; +} + + +static int rtBigNumMagnitudeDivideSlowLong(PRTBIGNUM pQuotient, PRTBIGNUM pRemainder, PCRTBIGNUM pDividend, PCRTBIGNUM pDivisor) +{ + /* + * Do very simple long division. This ain't fast, but it does the trick. + */ + int rc = VINF_SUCCESS; + uint32_t iBit = rtBigNumMagnitudeBitWidth(pDividend); + while (iBit-- > 0) + { + rc = rtBigNumMagnitudeShiftLeftOne(pRemainder, rtBigNumMagnitudeGetBit(pDividend, iBit)); + AssertRCBreak(rc); + int iDiff = rtBigNumMagnitudeCompare(pRemainder, pDivisor); + if (iDiff >= 0) + { + if (iDiff != 0) + { + rc = rtBigNumMagnitudeSubThis(pRemainder, pDivisor); + AssertRCBreak(rc); + } + else + rtBigNumSetUsed(pRemainder, 0); + rc = rtBigNumMagnitudeSetBit(pQuotient, iBit); + AssertRCBreak(rc); + } + } + + /* This shouldn't be necessary. */ + rtBigNumStripTrailingZeros(pQuotient); + rtBigNumStripTrailingZeros(pRemainder); + + return rc; +} + + +/** + * Divides the magnitudes of two values, letting the caller care about the sign + * bit. + * + * All variables must be unscrambled. The sign flag is not considered nor + * touched, this means the caller have to check for zero outputs. + * + * @returns IPRT status code. + * @param pQuotient Where to return the quotient. + * @param pRemainder Where to return the remainder. + * @param pDividend What to divide. + * @param pDivisor What to divide by. + * @param fForceLong Force long division. + */ +static int rtBigNumMagnitudeDivide(PRTBIGNUM pQuotient, PRTBIGNUM pRemainder, PCRTBIGNUM pDividend, PCRTBIGNUM pDivisor, + bool fForceLong) +{ + Assert(pQuotient != pDividend); Assert(pQuotient != pDivisor); Assert(pRemainder != pDividend); Assert(pRemainder != pDivisor); Assert(pRemainder != pQuotient); + Assert(!pQuotient->fCurScrambled); Assert(!pRemainder->fCurScrambled); Assert(!pDividend->fCurScrambled); Assert(!pDivisor->fCurScrambled); + + /* + * Just set both output values to zero as that's the return for several + * special case and the initial state of the general case. + */ + rtBigNumSetUsed(pQuotient, 0); + rtBigNumSetUsed(pRemainder, 0); + + /* + * Dividing something by zero is undefined. + * Diving zero by something is zero, unless the divsor is also zero. + */ + if (!pDivisor->cUsed || !pDividend->cUsed) + return pDivisor->cUsed ? VINF_SUCCESS : VERR_BIGNUM_DIV_BY_ZERO; + + /* + * Dividing by one? Quotient = dividend, no remainder. + */ + if (pDivisor->cUsed == 1 && pDivisor->pauElements[0] == 1) + return rtBigNumMagnitudeCopy(pQuotient, pDividend); + + /* + * Dividend smaller than the divisor. Zero quotient, all divisor. + */ + int iDiff = rtBigNumMagnitudeCompare(pDividend, pDivisor); + if (iDiff < 0) + return rtBigNumMagnitudeCopy(pRemainder, pDividend); + + /* + * Since we already have done the compare, check if the two values are the + * same. The result is 1 and no remainder then. + */ + if (iDiff == 0) + { + int rc = rtBigNumSetUsed(pQuotient, 1); + if (RT_SUCCESS(rc)) + pQuotient->pauElements[0] = 1; + return rc; + } + + /* + * Sort out special cases before going to the preferred or select algorithm. + */ + int rc; + if (pDividend->cUsed <= 2 && !fForceLong) + { + if (pDividend->cUsed < 2) + { + /* + * Single element division. + */ + RTBIGNUMELEMENT uQ = pDividend->pauElements[0] / pDivisor->pauElements[0]; + RTBIGNUMELEMENT uR = pDividend->pauElements[0] % pDivisor->pauElements[0]; + rc = VINF_SUCCESS; + if (uQ) + { + rc = rtBigNumSetUsed(pQuotient, 1); + if (RT_SUCCESS(rc)) + pQuotient->pauElements[0] = uQ; + } + if (uR && RT_SUCCESS(rc)) + { + rc = rtBigNumSetUsed(pRemainder, 1); + if (RT_SUCCESS(rc)) + pRemainder->pauElements[0] = uR; + } + } + else + { + /* + * Two elements dividend by a one or two element divisor. + */ + RTBIGNUMELEMENT2X uQ, uR; + if (pDivisor->cUsed == 1) + { + rtBigNumElement2xDiv2xBy1x(&uQ, &uR.s.Lo, pDividend->pauElements[1], pDividend->pauElements[0], + pDivisor->pauElements[0]); + uR.s.Hi = 0; + } + else + rtBigNumElement2xDiv(&uQ, &uR, pDividend->pauElements[1], pDividend->pauElements[0], + pDivisor->pauElements[1], pDivisor->pauElements[0]); + rc = rtBigNumElement2xCopyToMagnitude(&uQ, pQuotient); + if (RT_SUCCESS(rc)) + rc = rtBigNumElement2xCopyToMagnitude(&uR, pRemainder); + } + } + /* + * Decide upon which algorithm to use. Knuth requires a divisor that's at + * least 2 elements big. + */ + else if (pDivisor->cUsed < 2 || fForceLong) + rc = rtBigNumMagnitudeDivideSlowLong(pQuotient, pRemainder, pDividend, pDivisor); + else + rc = rtBigNumMagnitudeDivideKnuth(pQuotient, pRemainder, pDividend, pDivisor); + return rc; +} + + +static int rtBigNumDivideCommon(PRTBIGNUM pQuotient, PRTBIGNUM pRemainder, + PCRTBIGNUM pDividend, PCRTBIGNUM pDivisor, bool fForceLong) +{ + Assert(pQuotient != pDividend); Assert(pQuotient != pDivisor); Assert(pRemainder != pDividend); Assert(pRemainder != pDivisor); Assert(pRemainder != pQuotient); + AssertReturn(pQuotient->fSensitive >= (pDividend->fSensitive | pDivisor->fSensitive), VERR_BIGNUM_SENSITIVE_INPUT); + AssertReturn(pRemainder->fSensitive >= (pDividend->fSensitive | pDivisor->fSensitive), VERR_BIGNUM_SENSITIVE_INPUT); + + int rc = rtBigNumUnscramble(pQuotient); + if (RT_SUCCESS(rc)) + { + RTBIGNUM_ASSERT_VALID(pQuotient); + rc = rtBigNumUnscramble(pRemainder); + if (RT_SUCCESS(rc)) + { + RTBIGNUM_ASSERT_VALID(pRemainder); + rc = rtBigNumUnscramble((PRTBIGNUM)pDividend); + if (RT_SUCCESS(rc)) + { + RTBIGNUM_ASSERT_VALID(pDividend); + rc = rtBigNumUnscramble((PRTBIGNUM)pDivisor); + if (RT_SUCCESS(rc)) + { + RTBIGNUM_ASSERT_VALID(pDivisor); + + /* + * The sign value of the remainder is the same as the dividend. + * The sign values of the quotient follow XOR rules, just like multiplication: + * -3 / 2 = -1; r=-1; 1 ^ 0 = 1 + * 3 / -2 = -1; r= 1; 1 ^ 0 = 1 + * -3 / -2 = 1; r=-1; 1 ^ 1 = 0 + * 3 / 2 = 1; r= 1; 0 ^ 0 = 0 + */ + pQuotient->fNegative = pDividend->fNegative ^ pDivisor->fNegative; + pRemainder->fNegative = pDividend->fNegative; + + rc = rtBigNumMagnitudeDivide(pQuotient, pRemainder, pDividend, pDivisor, fForceLong); + + if (pQuotient->cUsed == 0) + pQuotient->fNegative = 0; + if (pRemainder->cUsed == 0) + pRemainder->fNegative = 0; + + rtBigNumScramble((PRTBIGNUM)pDivisor); + } + rtBigNumScramble((PRTBIGNUM)pDividend); + } + rtBigNumScramble(pRemainder); + } + rtBigNumScramble(pQuotient); + } + return rc; +} + + +RTDECL(int) RTBigNumDivide(PRTBIGNUM pQuotient, PRTBIGNUM pRemainder, PCRTBIGNUM pDividend, PCRTBIGNUM pDivisor) +{ + return rtBigNumDivideCommon(pQuotient, pRemainder, pDividend, pDivisor, false /*fForceLong*/); +} + + +RTDECL(int) RTBigNumDivideLong(PRTBIGNUM pQuotient, PRTBIGNUM pRemainder, PCRTBIGNUM pDividend, PCRTBIGNUM pDivisor) +{ + return rtBigNumDivideCommon(pQuotient, pRemainder, pDividend, pDivisor, true /*fForceLong*/); +} + + +/** + * Calculates the modulus of a magnitude value, leaving the sign bit to the + * caller. + * + * All variables must be unscrambled. The sign flag is not considered nor + * touched, this means the caller have to check for zero outputs. + * + * @returns IPRT status code. + * @param pRemainder Where to return the remainder. + * @param pDividend What to divide. + * @param pDivisor What to divide by. + */ +static int rtBigNumMagnitudeModulo(PRTBIGNUM pRemainder, PCRTBIGNUM pDividend, PCRTBIGNUM pDivisor) +{ + Assert(pRemainder != pDividend); Assert(pRemainder != pDivisor); + Assert(!pRemainder->fCurScrambled); Assert(!pDividend->fCurScrambled); Assert(!pDivisor->fCurScrambled); + + /* + * Just set the output value to zero as that's the return for several + * special case and the initial state of the general case. + */ + rtBigNumSetUsed(pRemainder, 0); + + /* + * Dividing something by zero is undefined. + * Diving zero by something is zero, unless the divsor is also zero. + */ + if (!pDivisor->cUsed || !pDividend->cUsed) + return pDivisor->cUsed ? VINF_SUCCESS : VERR_BIGNUM_DIV_BY_ZERO; + + /* + * Dividing by one? Quotient = dividend, no remainder. + */ + if (pDivisor->cUsed == 1 && pDivisor->pauElements[0] == 1) + return VINF_SUCCESS; + + /* + * Dividend smaller than the divisor. Zero quotient, all divisor. + */ + int iDiff = rtBigNumMagnitudeCompare(pDividend, pDivisor); + if (iDiff < 0) + return rtBigNumMagnitudeCopy(pRemainder, pDividend); + + /* + * Since we already have done the compare, check if the two values are the + * same. The result is 1 and no remainder then. + */ + if (iDiff == 0) + return VINF_SUCCESS; + + /** @todo optimize small numbers. */ + int rc = VINF_SUCCESS; + if (pDivisor->cUsed < 2) + { + /* + * Do very simple long division. This ain't fast, but it does the trick. + */ + uint32_t iBit = rtBigNumMagnitudeBitWidth(pDividend); + while (iBit-- > 0) + { + rc = rtBigNumMagnitudeShiftLeftOne(pRemainder, rtBigNumMagnitudeGetBit(pDividend, iBit)); + AssertRCBreak(rc); + iDiff = rtBigNumMagnitudeCompare(pRemainder, pDivisor); + if (iDiff >= 0) + { + if (iDiff != 0) + { + rc = rtBigNumMagnitudeSubThis(pRemainder, pDivisor); + AssertRCBreak(rc); + } + else + rtBigNumSetUsed(pRemainder, 0); + } + } + } + else + { + /* + * Join paths with division. + */ + rc = rtBigNumMagnitudeDivideKnuth(NULL, pRemainder, pDividend, pDivisor); + } + + /* This shouldn't be necessary. */ + rtBigNumStripTrailingZeros(pRemainder); + return rc; +} + + +RTDECL(int) RTBigNumModulo(PRTBIGNUM pRemainder, PCRTBIGNUM pDividend, PCRTBIGNUM pDivisor) +{ + Assert(pRemainder != pDividend); Assert(pRemainder != pDivisor); + AssertReturn(pRemainder->fSensitive >= (pDividend->fSensitive | pDivisor->fSensitive), VERR_BIGNUM_SENSITIVE_INPUT); + + int rc = rtBigNumUnscramble(pRemainder); + if (RT_SUCCESS(rc)) + { + RTBIGNUM_ASSERT_VALID(pRemainder); + rc = rtBigNumUnscramble((PRTBIGNUM)pDividend); + if (RT_SUCCESS(rc)) + { + RTBIGNUM_ASSERT_VALID(pDividend); + rc = rtBigNumUnscramble((PRTBIGNUM)pDivisor); + if (RT_SUCCESS(rc)) + { + RTBIGNUM_ASSERT_VALID(pDivisor); + + /* + * The sign value of the remainder is the same as the dividend. + */ + pRemainder->fNegative = pDividend->fNegative; + + rc = rtBigNumMagnitudeModulo(pRemainder, pDividend, pDivisor); + + if (pRemainder->cUsed == 0) + pRemainder->fNegative = 0; + + rtBigNumScramble((PRTBIGNUM)pDivisor); + } + rtBigNumScramble((PRTBIGNUM)pDividend); + } + rtBigNumScramble(pRemainder); + } + return rc; +} + + + +/** + * Exponentiate the magnitude. + * + * All variables must be unscrambled. The sign flag is not considered nor + * touched, this means the caller have to reject negative exponents. + * + * @returns IPRT status code. + * @param pResult Where to return power. + * @param pBase The base value. + * @param pExponent The exponent (assumed positive or zero). + */ +static int rtBigNumMagnitudeExponentiate(PRTBIGNUM pResult, PCRTBIGNUM pBase, PCRTBIGNUM pExponent) +{ + Assert(pResult != pBase); Assert(pResult != pExponent); + Assert(!pResult->fCurScrambled); Assert(!pBase->fCurScrambled); Assert(!pExponent->fCurScrambled); + + /* + * A couple of special cases. + */ + int rc; + /* base ^ 0 => 1. */ + if (pExponent->cUsed == 0) + { + rc = rtBigNumSetUsed(pResult, 1); + if (RT_SUCCESS(rc)) + pResult->pauElements[0] = 1; + return rc; + } + + /* base ^ 1 => base. */ + if (pExponent->cUsed == 1 && pExponent->pauElements[0] == 1) + return rtBigNumMagnitudeCopy(pResult, pBase); + + /* + * Set up. + */ + /* Init temporary power-of-two variable to base. */ + RTBIGNUM Pow2; + rc = rtBigNumCloneInternal(&Pow2, pBase); + if (RT_SUCCESS(rc)) + { + /* Init result to 1. */ + rc = rtBigNumSetUsed(pResult, 1); + if (RT_SUCCESS(rc)) + { + pResult->pauElements[0] = 1; + + /* Make a temporary variable that we can use for temporary storage of the result. */ + RTBIGNUM TmpMultiplicand; + rc = rtBigNumCloneInternal(&TmpMultiplicand, pResult); + if (RT_SUCCESS(rc)) + { + /* + * Exponentiation by squaring. Reduces the number of + * multiplications to: NumBitsSet(Exponent) + BitWidth(Exponent). + */ + uint32_t const cExpBits = rtBigNumMagnitudeBitWidth(pExponent); + uint32_t iBit = 0; + for (;;) + { + if (rtBigNumMagnitudeGetBit(pExponent, iBit) != 0) + { + rc = rtBigNumMagnitudeCopy(&TmpMultiplicand, pResult); + if (RT_SUCCESS(rc)) + rc = rtBigNumMagnitudeMultiply(pResult, &TmpMultiplicand, &Pow2); + if (RT_FAILURE(rc)) + break; + } + + /* Done? */ + iBit++; + if (iBit >= cExpBits) + break; + + /* Not done yet, square the base again. */ + rc = rtBigNumMagnitudeCopy(&TmpMultiplicand, &Pow2); + if (RT_SUCCESS(rc)) + rc = rtBigNumMagnitudeMultiply(&Pow2, &TmpMultiplicand, &TmpMultiplicand); + if (RT_FAILURE(rc)) + break; + } + } + } + RTBigNumDestroy(&Pow2); + } + return rc; +} + + +RTDECL(int) RTBigNumExponentiate(PRTBIGNUM pResult, PCRTBIGNUM pBase, PCRTBIGNUM pExponent) +{ + Assert(pResult != pBase); Assert(pResult != pExponent); + AssertReturn(pResult->fSensitive >= (pBase->fSensitive | pExponent->fSensitive), VERR_BIGNUM_SENSITIVE_INPUT); + + int rc = rtBigNumUnscramble(pResult); + if (RT_SUCCESS(rc)) + { + RTBIGNUM_ASSERT_VALID(pResult); + rc = rtBigNumUnscramble((PRTBIGNUM)pBase); + if (RT_SUCCESS(rc)) + { + RTBIGNUM_ASSERT_VALID(pBase); + rc = rtBigNumUnscramble((PRTBIGNUM)pExponent); + if (RT_SUCCESS(rc)) + { + RTBIGNUM_ASSERT_VALID(pExponent); + if (!pExponent->fNegative) + { + pResult->fNegative = pBase->fNegative; /* sign unchanged. */ + rc = rtBigNumMagnitudeExponentiate(pResult, pBase, pExponent); + } + else + rc = VERR_BIGNUM_NEGATIVE_EXPONENT; + + rtBigNumScramble((PRTBIGNUM)pExponent); + } + rtBigNumScramble((PRTBIGNUM)pBase); + } + rtBigNumScramble(pResult); + } + return rc; +} + + +/** + * Modular exponentiation, magnitudes only. + * + * All variables must be unscrambled. The sign flag is not considered nor + * touched, this means the caller have to reject negative exponents and do any + * other necessary sign bit fiddling. + * + * @returns IPRT status code. + * @param pResult Where to return the remainder of the power. + * @param pBase The base value. + * @param pExponent The exponent (assumed positive or zero). + * @param pModulus The modulus value (or divisor if you like). + */ +static int rtBigNumMagnitudeModExp(PRTBIGNUM pResult, PRTBIGNUM pBase, PRTBIGNUM pExponent, PRTBIGNUM pModulus) +{ + Assert(pResult != pBase); Assert(pResult != pBase); Assert(pResult != pExponent); Assert(pResult != pModulus); + Assert(!pResult->fCurScrambled); Assert(!pBase->fCurScrambled); Assert(!pExponent->fCurScrambled); Assert(!pModulus->fCurScrambled); + int rc; + + /* + * Check some special cases to get them out of the way. + */ + /* Div by 0 => invalid. */ + if (pModulus->cUsed == 0) + return VERR_BIGNUM_DIV_BY_ZERO; + + /* Div by 1 => no remainder. */ + if (pModulus->cUsed == 1 && pModulus->pauElements[0] == 1) + { + rtBigNumSetUsed(pResult, 0); + return VINF_SUCCESS; + } + + /* base ^ 0 => 1. */ + if (pExponent->cUsed == 0) + { + rc = rtBigNumSetUsed(pResult, 1); + if (RT_SUCCESS(rc)) + pResult->pauElements[0] = 1; + return rc; + } + + /* base ^ 1 => base. */ + if (pExponent->cUsed == 1 && pExponent->pauElements[0] == 1) + return rtBigNumMagnitudeModulo(pResult, pBase, pModulus); + + /* + * Set up. + */ + /* Result = 1; preallocate space for the result while at it. */ + rc = rtBigNumSetUsed(pResult, pModulus->cUsed + 1); + if (RT_SUCCESS(rc)) + rc = rtBigNumSetUsed(pResult, 1); + if (RT_SUCCESS(rc)) + { + pResult->pauElements[0] = 1; + + /* ModBase = pBase or pBase % pModulus depending on the difference in size. */ + RTBIGNUM Pow2; + if (pBase->cUsed <= pModulus->cUsed + pModulus->cUsed / 2) + rc = rtBigNumCloneInternal(&Pow2, pBase); + else + rc = rtBigNumMagnitudeModulo(rtBigNumInitZeroTemplate(&Pow2, pBase), pBase, pModulus); + + /* Need a couple of temporary variables. */ + RTBIGNUM TmpMultiplicand; + rtBigNumInitZeroTemplate(&TmpMultiplicand, pResult); + + RTBIGNUM TmpProduct; + rtBigNumInitZeroTemplate(&TmpProduct, pResult); + + /* + * We combine the exponentiation by squaring with the fact that: + * (a*b) mod n = ( (a mod n) * (b mod n) ) mod n + * + * Thus, we can reduce the size of intermediate results by mod'ing them + * in each step. + */ + uint32_t const cExpBits = rtBigNumMagnitudeBitWidth(pExponent); + uint32_t iBit = 0; + for (;;) + { + if (rtBigNumMagnitudeGetBit(pExponent, iBit) != 0) + { + rc = rtBigNumMagnitudeCopy(&TmpMultiplicand, pResult); + if (RT_SUCCESS(rc)) + rc = rtBigNumMagnitudeMultiply(&TmpProduct, &TmpMultiplicand, &Pow2); + if (RT_SUCCESS(rc)) + rc = rtBigNumMagnitudeModulo(pResult, &TmpProduct, pModulus); + if (RT_FAILURE(rc)) + break; + } + + /* Done? */ + iBit++; + if (iBit >= cExpBits) + break; + + /* Not done yet, square and mod the base again. */ + rc = rtBigNumMagnitudeCopy(&TmpMultiplicand, &Pow2); + if (RT_SUCCESS(rc)) + rc = rtBigNumMagnitudeMultiply(&TmpProduct, &TmpMultiplicand, &TmpMultiplicand); + if (RT_SUCCESS(rc)) + rc = rtBigNumMagnitudeModulo(&Pow2, &TmpProduct, pModulus); + if (RT_FAILURE(rc)) + break; + } + + RTBigNumDestroy(&TmpMultiplicand); + RTBigNumDestroy(&TmpProduct); + RTBigNumDestroy(&Pow2); + } + return rc; +} + + +RTDECL(int) RTBigNumModExp(PRTBIGNUM pResult, PRTBIGNUM pBase, PRTBIGNUM pExponent, PRTBIGNUM pModulus) +{ + Assert(pResult != pBase); Assert(pResult != pBase); Assert(pResult != pExponent); Assert(pResult != pModulus); + AssertReturn(pResult->fSensitive >= (pBase->fSensitive | pExponent->fSensitive | pModulus->fSensitive), + VERR_BIGNUM_SENSITIVE_INPUT); + + int rc = rtBigNumUnscramble(pResult); + if (RT_SUCCESS(rc)) + { + RTBIGNUM_ASSERT_VALID(pResult); + rc = rtBigNumUnscramble((PRTBIGNUM)pBase); + if (RT_SUCCESS(rc)) + { + RTBIGNUM_ASSERT_VALID(pBase); + rc = rtBigNumUnscramble((PRTBIGNUM)pExponent); + if (RT_SUCCESS(rc)) + { + RTBIGNUM_ASSERT_VALID(pExponent); + rc = rtBigNumUnscramble((PRTBIGNUM)pModulus); + if (RT_SUCCESS(rc)) + { + RTBIGNUM_ASSERT_VALID(pModulus); + if (!pExponent->fNegative) + { + pResult->fNegative = pModulus->fNegative; /* pBase ^ pExponent / pModulus; result = remainder. */ + rc = rtBigNumMagnitudeModExp(pResult, pBase, pExponent, pModulus); + } + else + rc = VERR_BIGNUM_NEGATIVE_EXPONENT; + rtBigNumScramble((PRTBIGNUM)pModulus); + } + rtBigNumScramble((PRTBIGNUM)pExponent); + } + rtBigNumScramble((PRTBIGNUM)pBase); + } + rtBigNumScramble(pResult); + } + return rc; +} + diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Runtime/common/math/RTUInt128MulByU64.asm virtualbox-4.1.44-dfsg/src/VBox/Runtime/common/math/RTUInt128MulByU64.asm --- virtualbox-4.1.12-dfsg/src/VBox/Runtime/common/math/RTUInt128MulByU64.asm 1970-01-01 00:00:00.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Runtime/common/math/RTUInt128MulByU64.asm 2015-11-11 15:09:01.000000000 +0000 @@ -0,0 +1,82 @@ +; $Id: RTUInt128MulByU64.asm $ +;; @file +; IPRT - RTUInt128MulByU64 - AMD64 implementation. +; + +; +; Copyright (C) 2006-2014 Oracle Corporation +; +; This file is part of VirtualBox Open Source Edition (OSE), as +; available from http://www.virtualbox.org. This file is free software; +; you can redistribute it and/or modify it under the terms of the GNU +; General Public License (GPL) as published by the Free Software +; Foundation, in version 2 as it comes in the "COPYING" file of the +; VirtualBox OSE distribution. VirtualBox OSE is distributed in the +; hope that it will be useful, but WITHOUT ANY WARRANTY of any kind. +; +; The contents of this file may alternatively be used under the terms +; of the Common Development and Distribution License Version 1.0 +; (CDDL) only, as it comes in the "COPYING.CDDL" file of the +; VirtualBox OSE distribution, in which case the provisions of the +; CDDL are applicable instead of those of the GPL. +; +; You may elect to license modified versions of this file under the +; terms and conditions of either the GPL or the CDDL or both. +; + + +%define RT_ASM_WITH_SEH64 +%include "iprt/asmdefs.mac" +%include "internal/bignum.mac" + + +BEGINCODE + +;; +; Multiplies a 128-bit number with a 64-bit one. +; +; @returns puResult. +; @param puResult x86:[ebp + 8] gcc:rdi msc:rcx +; @param puValue1 x86:[ebp + 12] gcc:rsi msc:rdx +; @param uValue2 x86:[ebp + 16] gcc:rdx msc:r8 +; +BEGINPROC_EXPORTED RTUInt128MulByU64 +; SEH64_SET_FRAME_xSP 0 +SEH64_END_PROLOGUE + +%ifdef RT_ARCH_AMD64 + %ifdef ASM_CALL64_GCC + %define puResult rdi + %define puValue1 rsi + %define uValue2 r8 + mov r8, rdx + %else + %define puResult rcx + %define puValue1 r9 + %define uValue2 r8 + mov r9, rdx + %endif + + ; puValue1->s.Lo * uValue2 + mov rax, [puValue1] + mul uValue2 + mov [puResult], rax + mov r11, rdx ; Store the lower half of the result. + + ; puValue1->s.Hi * uValue2 + mov rax, [puValue1 + 8] + mul uValue2 + add r11, rax ; Calc the second half of the result. + mov [puResult + 8], r11 ; Store the high half of the result. + + mov rax, puResult + +;%elifdef RT_ARCH_X86 +%else + %error "unsupported arch" +%endif + + ret +ENDPROC RTUInt128MulByU64 + + diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Runtime/common/misc/lockvalidator.cpp virtualbox-4.1.44-dfsg/src/VBox/Runtime/common/misc/lockvalidator.cpp --- virtualbox-4.1.12-dfsg/src/VBox/Runtime/common/misc/lockvalidator.cpp 2012-04-02 13:29:00.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Runtime/common/misc/lockvalidator.cpp 2015-11-11 15:09:02.000000000 +0000 @@ -1072,7 +1072,7 @@ pThis->cMsMinOrder = cMsMinOrder; for (unsigned i = 0; i < RT_ELEMENTS(pThis->au32Reserved); i++) pThis->au32Reserved[i] = 0; - for (unsigned i = 0; i < RT_ELEMENTS(pThis->au32Reserved); i++) + for (unsigned i = 0; i < RT_ELEMENTS(pThis->PriorLocks.aRefs); i++) { pThis->PriorLocks.aRefs[i].hClass = NIL_RTLOCKVALCLASS; pThis->PriorLocks.aRefs[i].cLookups = 0; diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Runtime/common/misc/once.cpp virtualbox-4.1.44-dfsg/src/VBox/Runtime/common/misc/once.cpp --- virtualbox-4.1.12-dfsg/src/VBox/Runtime/common/misc/once.cpp 2012-04-02 13:29:00.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Runtime/common/misc/once.cpp 2015-11-11 15:09:02.000000000 +0000 @@ -4,7 +4,7 @@ */ /* - * Copyright (C) 2007 Oracle Corporation + * Copyright (C) 2007-2014 Oracle Corporation * * This file is part of VirtualBox Open Source Edition (OSE), as * available from http://www.virtualbox.org. This file is free software; @@ -31,13 +31,143 @@ #include #include "internal/iprt.h" +#include +#include +#ifdef IN_RING3 +# include +# define RTONCE_USE_CRITSECT_FOR_TERM +#elif defined(IN_RING0) +# include +# define RTONCE_USE_SPINLOCK_FOR_TERM +#else +# define RTONCE_NO_TERM +#endif +#include +#include #include #include -#include -#include -#include +/******************************************************************************* +* Global Variables * +*******************************************************************************/ +#ifndef RTONCE_NO_TERM +/** For initializing the clean-up list code. */ +static RTONCE g_OnceCleanUp = RTONCE_INITIALIZER; +/** Lock protecting the clean-up list. */ +#ifdef RTONCE_USE_CRITSECT_FOR_TERM +static RTCRITSECT g_CleanUpCritSect; +#else +static RTSEMFASTMUTEX g_hCleanUpLock; +#endif +/** The clean-up list. */ +static RTLISTANCHOR g_CleanUpList; + +/** Locks the clean-up list. */ +#ifdef RTONCE_USE_CRITSECT_FOR_TERM +# define RTONCE_CLEANUP_LOCK() RTCritSectEnter(&g_CleanUpCritSect) +#else +# define RTONCE_CLEANUP_LOCK() RTSemFastMutexRequest(g_hCleanUpLock); +#endif + +/** Unlocks the clean-up list. */ +#ifdef RTONCE_USE_CRITSECT_FOR_TERM +# define RTONCE_CLEANUP_UNLOCK() RTCritSectLeave(&g_CleanUpCritSect); +#else +# define RTONCE_CLEANUP_UNLOCK() RTSemFastMutexRelease(g_hCleanUpLock); +#endif + + + +/** @callback_method_impl{FNRTTERMCALLBACK} */ +static DECLCALLBACK(void) rtOnceTermCallback(RTTERMREASON enmReason, int32_t iStatus, void *pvUser) +{ + bool const fLazyCleanUpOk = RTTERMREASON_IS_LAZY_CLEANUP_OK(enmReason); + RTONCE_CLEANUP_LOCK(); /* Potentially dangerous. */ + + PRTONCE pCur, pPrev; + RTListForEachReverseSafe(&g_CleanUpList, pCur, pPrev, RTONCE, CleanUpNode) + { + /* + * Mostly reset it before doing the callback. + * + * Should probably introduce some new states here, but I'm not sure + * it's really worth it at this point. + */ + PFNRTONCECLEANUP pfnCleanUp = pCur->pfnCleanUp; + void *pvUserCleanUp = pCur->pvUser; + pCur->pvUser = NULL; + pCur->pfnCleanUp = NULL; + ASMAtomicWriteS32(&pCur->rc, VERR_WRONG_ORDER); + + pfnCleanUp(pvUserCleanUp, fLazyCleanUpOk); + + /* + * Reset the reset of the state if we're being unloaded or smth. + */ + if (!fLazyCleanUpOk) + { + ASMAtomicWriteS32(&pCur->rc, VERR_INTERNAL_ERROR); + ASMAtomicWriteS32(&pCur->iState, RTONCESTATE_UNINITIALIZED); + } + } + + RTONCE_CLEANUP_UNLOCK(); + + /* + * Reset our own structure and the critsect / mutex. + */ + if (!fLazyCleanUpOk) + { +# ifdef RTONCE_USE_CRITSECT_FOR_TERM + RTCritSectDelete(&g_CleanUpCritSect); +# else + RTSemFastMutexDestroy(g_hCleanUpLock); + g_hCleanUpLock = NIL_RTSEMFASTMUTEX; +# endif + + ASMAtomicWriteS32(&g_OnceCleanUp.rc, VERR_INTERNAL_ERROR); + ASMAtomicWriteS32(&g_OnceCleanUp.iState, RTONCESTATE_UNINITIALIZED); + } + + NOREF(pvUser); NOREF(iStatus); +} + + + +/** + * Initializes the globals (using RTOnce). + * + * @returns IPRT status code + * @param pvUser Unused. + */ +static DECLCALLBACK(int32_t) rtOnceInitCleanUp(void *pvUser) +{ + NOREF(pvUser); + RTListInit(&g_CleanUpList); +# ifdef RTONCE_USE_CRITSECT_FOR_TERM + int rc = RTCritSectInit(&g_CleanUpCritSect); +# else + int rc = RTSemFastMutexCreate(&g_hCleanUpLock); +# endif + if (RT_SUCCESS(rc)) + { + rc = RTTermRegisterCallback(rtOnceTermCallback, NULL); + if (RT_SUCCESS(rc)) + return rc; + +# ifdef RTONCE_USE_CRITSECT_FOR_TERM + RTCritSectDelete(&g_CleanUpCritSect); +# else + RTSemFastMutexDestroy(g_hCleanUpLock); + g_hCleanUpLock = NIL_RTSEMFASTMUTEX; +# endif + } + return rc; +} + +#endif /* !RTONCE_NO_TERM */ + /** * The state loop of the other threads. * @@ -156,7 +286,7 @@ } -RTDECL(int) RTOnceSlow(PRTONCE pOnce, PFNRTONCE pfnOnce, void *pvUser1, void *pvUser2) +RTDECL(int) RTOnceSlow(PRTONCE pOnce, PFNRTONCE pfnOnce, PFNRTONCECLEANUP pfnCleanUp, void *pvUser) { /* * Validate input (strict builds only). @@ -181,6 +311,21 @@ || iState == RTONCESTATE_BUSY_HAVE_SEM , VERR_INTERNAL_ERROR); +#ifdef RTONCE_NO_TERM + AssertReturn(!pfnCleanUp, VERR_NOT_SUPPORTED); +#else /* !RTONCE_NO_TERM */ + + /* + * Make sure our clean-up bits are working if needed later. + */ + if (pfnCleanUp) + { + int rc = RTOnce(&g_OnceCleanUp, rtOnceInitCleanUp, NULL); + if (RT_FAILURE(rc)) + return rc; + } +#endif /* !RTONCE_NO_TERM */ + /* * Do we initialize it? */ @@ -191,9 +336,25 @@ /* * Yes, so do the execute once stuff. */ - rcOnce = pfnOnce(pvUser1, pvUser2); + rcOnce = pfnOnce(pvUser); ASMAtomicWriteS32(&pOnce->rc, rcOnce); +#ifndef RTONCE_NO_TERM + /* + * Register clean-up if requested and we were successful. + */ + if (pfnCleanUp && RT_SUCCESS(rcOnce)) + { + RTONCE_CLEANUP_LOCK(); + + pOnce->pfnCleanUp = pfnCleanUp; + pOnce->pvUser = pvUser; + RTListAppend(&g_CleanUpList, &pOnce->CleanUpNode); + + RTONCE_CLEANUP_UNLOCK(); + } +#endif /* !RTONCE_NO_TERM */ + /* * If there is a sempahore to signal, we're in for some extra work here. */ @@ -207,7 +368,7 @@ VERR_INTERNAL_ERROR_2); int32_t cRefs = ASMAtomicIncS32(&pOnce->cEventRefs); - Assert(cRefs > 1); + Assert(cRefs > 1); NOREF(cRefs); RTSEMEVENTMULTI hEvtM; ASMAtomicReadHandle(&pOnce->hEventMulti, &hEvtM); @@ -255,6 +416,21 @@ AssertMsg( iState == RTONCESTATE_DONE && iState == RTONCESTATE_UNINITIALIZED, ("%d\n", iState)); + NOREF(iState); + +#ifndef RTONCE_NO_TERM + /* Unregister clean-up. */ + if (pOnce->pfnCleanUp) + { + RTONCE_CLEANUP_LOCK(); + + RTListNodeRemove(&pOnce->CleanUpNode); + pOnce->pfnCleanUp = NULL; + pOnce->pvUser = NULL; + + RTONCE_CLEANUP_UNLOCK(); + } +#endif /* !RTONCE_NO_TERM */ /* Do the same as RTONCE_INITIALIZER does. */ ASMAtomicWriteS32(&pOnce->rc, VERR_INTERNAL_ERROR); diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Runtime/common/misc/s3.cpp virtualbox-4.1.44-dfsg/src/VBox/Runtime/common/misc/s3.cpp --- virtualbox-4.1.12-dfsg/src/VBox/Runtime/common/misc/s3.cpp 2012-04-02 13:29:00.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Runtime/common/misc/s3.cpp 1970-01-01 00:00:00.000000000 +0000 @@ -1,998 +0,0 @@ -/* $Id: s3.cpp $ */ -/** @file - * IPRT - S3 communication API. - */ - -/* - * Copyright (C) 2009 Oracle Corporation - * - * This file is part of VirtualBox Open Source Edition (OSE), as - * available from http://www.virtualbox.org. This file is free software; - * you can redistribute it and/or modify it under the terms of the GNU - * General Public License (GPL) as published by the Free Software - * Foundation, in version 2 as it comes in the "COPYING" file of the - * VirtualBox OSE distribution. VirtualBox OSE is distributed in the - * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind. - * - * The contents of this file may alternatively be used under the terms - * of the Common Development and Distribution License Version 1.0 - * (CDDL) only, as it comes in the "COPYING.CDDL" file of the - * VirtualBox OSE distribution, in which case the provisions of the - * CDDL are applicable instead of those of the GPL. - * - * You may elect to license modified versions of this file under the - * terms and conditions of either the GPL or the CDDL or both. - */ - - -/******************************************************************************* -* Header Files * -*******************************************************************************/ -#include -#include "internal/iprt.h" - -#include -#include -#include -#include -#include -#include - -#include -#include -#include - -#include "internal/magics.h" - - -/******************************************************************************* -* Structures and Typedefs * -*******************************************************************************/ -typedef struct RTS3INTERNAL -{ - uint32_t u32Magic; - CURL *pCurl; - char *pszAccessKey; - char *pszSecretKey; - char *pszBaseUrl; - char *pszUserAgent; - - PFNRTS3PROGRESS pfnProgressCallback; - void *pvUser; - - long lLastResp; -} RTS3INTERNAL; -typedef RTS3INTERNAL* PRTS3INTERNAL; - -typedef struct RTS3TMPMEMCHUNK -{ - char *pszMem; - size_t cSize; -} RTS3TMPMEMCHUNK; -typedef RTS3TMPMEMCHUNK *PRTS3TMPMEMCHUNK; - - -/******************************************************************************* -* Defined Constants And Macros * -*******************************************************************************/ - -/** Validates a handle and returns VERR_INVALID_HANDLE if not valid. */ -#define RTS3_VALID_RETURN_RC(hS3, rc) \ - do { \ - AssertPtrReturn((hS3), (rc)); \ - AssertReturn((hS3)->u32Magic == RTS3_MAGIC, (rc)); \ - } while (0) - -/** Validates a handle and returns VERR_INVALID_HANDLE if not valid. */ -#define RTS3_VALID_RETURN(hS3) RTS3_VALID_RETURN_RC((hS3), VERR_INVALID_HANDLE) - -/** Validates a handle and returns (void) if not valid. */ -#define RTS3_VALID_RETURN_VOID(hS3) \ - do { \ - AssertPtrReturnVoid(hS3); \ - AssertReturnVoid((hS3)->u32Magic == RTS3_MAGIC); \ - } while (0) - - -/******************************************************************************* -* Private RTS3 helper * -*******************************************************************************/ - -static char* rtS3Host(const char* pszBucket, const char* pszKey, const char* pszBaseUrl) -{ - char* pszUrl; - /* Host header entry */ - if (pszBucket[0] == 0) - RTStrAPrintf(&pszUrl, "%s", pszBaseUrl); - else if (pszKey[0] == 0) - RTStrAPrintf(&pszUrl, "%s.%s", pszBucket, pszBaseUrl); - else - RTStrAPrintf(&pszUrl, "%s.%s/%s", pszBucket, pszBaseUrl, pszKey); - return pszUrl; -} - -static char* rtS3HostHeader(const char* pszBucket, const char* pszBaseUrl) -{ - char* pszUrl; - /* Host header entry */ - if (pszBucket[0] != 0) - RTStrAPrintf(&pszUrl, "Host: %s.%s", pszBucket, pszBaseUrl); - else - RTStrAPrintf(&pszUrl, "Host: %s", pszBaseUrl); - return pszUrl; -} - -static char* rtS3DateHeader() -{ - /* Date header entry */ - time_t tt = time(NULL); - char* pszDate = (char*)RTMemAlloc(128); - strftime(pszDate, 128, "Date: %a, %d %b %Y %H:%M:%S UTC", gmtime(&tt)); - - return pszDate; -} - -static char* rtS3ParseHeaders(char** ppHeaders, size_t cHeadEnts) -{ - char pszEmpty[] = ""; - char *pszRes = NULL; - char *pszDate = pszEmpty; - char *pszType = pszEmpty; - for(size_t i=0; i < cHeadEnts; ++i) - { - if(ppHeaders[i] != NULL) - { - if (RTStrStr(ppHeaders[i], "Date: ") == ppHeaders[i]) - { - pszDate = &(ppHeaders[i][6]); - } - else if(RTStrStr(ppHeaders[i], "Content-Type: ") == ppHeaders[i]) - { - pszType = &(ppHeaders[i][14]); -// char *pszTmp = RTStrDup (&(ppHeaders[i][14])); -// if (pszRes) -// { -// char *pszTmp1 = pszRes; -// RTStrAPrintf(&pszRes, "%s\n%s", pszRes, pszTmp); -// RTStrFree(pszTmp); -// RTStrFree(pszTmp1); -// } -// else -// pszRes = pszTmp; - } - } - } - RTStrAPrintf(&pszRes, "\n%s\n%s", pszType, pszDate); - return pszRes; -} - -static char* rtS3Canonicalize(const char* pszAction, const char* pszBucket, const char* pszKey, char** papszHeadEnts, size_t cHeadEnts) -{ - char* pszRes; - /* Grep the necessary info out of the headers & put them in a string */ - char* pszHead = rtS3ParseHeaders(papszHeadEnts, cHeadEnts); - /* Create the string which will be used as signature */ - RTStrAPrintf(&pszRes, "%s\n%s\n/", - pszAction, - pszHead); - RTStrFree(pszHead); - /* Add the bucket if the bucket isn't empty */ - if (pszBucket[0] != 0) - { - char* pszTmp = pszRes; - RTStrAPrintf(&pszRes, "%s%s/", pszRes, pszBucket); - RTStrFree(pszTmp); - } - /* Add the key if the key isn't empty. */ - if (pszKey[0] != 0) - { - char* pszTmp = pszRes; - RTStrAPrintf(&pszRes, "%s%s", pszRes, pszKey); - RTStrFree(pszTmp); - } - - return pszRes; -} - -static char* rtS3CreateSignature(PRTS3INTERNAL pS3Int, const char* pszAction, const char* pszBucket, const char* pszKey, - char** papszHeadEnts, size_t cHeadEnts) -{ - /* Create a string we can sign */ - char* pszSig = rtS3Canonicalize(pszAction, pszBucket, pszKey, papszHeadEnts, cHeadEnts); -// printf ("Sig %s\n", pszSig); - /* Sign the string by creating a SHA1 finger print */ - char pszSigEnc[1024]; - unsigned int cSigEnc = sizeof(pszSigEnc); - HMAC(EVP_sha1(), pS3Int->pszSecretKey, (int)strlen(pS3Int->pszSecretKey), - (const unsigned char*)pszSig, strlen(pszSig), - (unsigned char*)pszSigEnc, &cSigEnc); - RTStrFree(pszSig); - /* Convert the signature to Base64 */ - size_t cSigBase64Enc = RTBase64EncodedLength(cSigEnc) + 1; /* +1 for the 0 */ - char *pszSigBase64Enc = (char*)RTMemAlloc(cSigBase64Enc); - size_t cRes; - RTBase64Encode(pszSigEnc, cSigEnc, pszSigBase64Enc, cSigBase64Enc, &cRes); - - return pszSigBase64Enc; -} - -static char* rtS3CreateAuthHeader(PRTS3INTERNAL pS3Int, const char* pszAction, const char* pszBucket, const char* pszKey, - char** papszHeadEnts, size_t cHeadEnts) -{ - char *pszAuth; - /* Create a signature out of the header & the bucket/key info */ - char *pszSigBase64Enc = rtS3CreateSignature(pS3Int, pszAction, pszBucket, pszKey, papszHeadEnts, cHeadEnts); - /* Create the authorization header entry */ - RTStrAPrintf(&pszAuth, "Authorization: AWS %s:%s", - pS3Int->pszAccessKey, - pszSigBase64Enc); - RTStrFree(pszSigBase64Enc); - return pszAuth; -} - -static int rtS3Perform(PRTS3INTERNAL pS3Int) -{ - int rc = VERR_INTERNAL_ERROR; - CURLcode code = curl_easy_perform(pS3Int->pCurl); - if (code == CURLE_OK) - { - curl_easy_getinfo(pS3Int->pCurl, CURLINFO_RESPONSE_CODE, &pS3Int->lLastResp); - switch (pS3Int->lLastResp) - { - case 200: - case 204: rc = VINF_SUCCESS; break; /* No content */ - case 403: rc = VERR_S3_ACCESS_DENIED; break; /* Access denied */ - case 404: rc = VERR_S3_NOT_FOUND; break; /* Site not found */ - } - }else - { - switch(code) - { - case CURLE_URL_MALFORMAT: - case CURLE_COULDNT_RESOLVE_HOST: -#if defined(CURLE_REMOTE_FILE_NOT_FOUND) - case CURLE_REMOTE_FILE_NOT_FOUND: rc = VERR_S3_NOT_FOUND; break; -#elif defined(CURLE_FILE_COULDNT_READ_FILE) - case CURLE_FILE_COULDNT_READ_FILE: rc = VERR_S3_NOT_FOUND; break; -#endif -#if defined(CURLE_REMOTE_ACCESS_DENIED) - case CURLE_REMOTE_ACCESS_DENIED: rc = VERR_S3_ACCESS_DENIED; break; -#elif defined(CURLE_FTP_ACCESS_DENIED) - case CURLE_FTP_ACCESS_DENIED: rc = VERR_S3_ACCESS_DENIED; break; -#endif - case CURLE_ABORTED_BY_CALLBACK: rc = VERR_S3_CANCELED; break; - default: break; - } - } - return rc; -} - -static size_t rtS3WriteNothingCallback(void *pvBuf, size_t cSize, size_t cBSize, void *pvUser) -{ - return cSize*cBSize; -} - -static size_t rtS3WriteMemoryCallback(void *pvBuf, size_t cSize, size_t cBSize, void *pvUser) -{ - PRTS3TMPMEMCHUNK pTmpMem = (PRTS3TMPMEMCHUNK)pvUser; - size_t cRSize = cSize * cBSize; - - pTmpMem->pszMem = (char*)RTMemRealloc(pTmpMem->pszMem, pTmpMem->cSize + cRSize + 1); - if (pTmpMem->pszMem) - { - memcpy(&(pTmpMem->pszMem[pTmpMem->cSize]), pvBuf, cRSize); - pTmpMem->cSize += cRSize; - pTmpMem->pszMem[pTmpMem->cSize] = 0; - } - return cRSize; -} - -static size_t rtS3WriteFileCallback(void *pvBuf, size_t cSize, size_t cBSize, void *pvUser) -{ - size_t cWritten; - RTFileWrite(*(RTFILE*)pvUser, pvBuf, cSize * cBSize, &cWritten); - return cWritten; -} - -static size_t rtS3ReadFileCallback(void *pvBuf, size_t cSize, size_t cBSize, void *pvUser) -{ - size_t cRead; - RTFileRead(*(RTFILE*)pvUser, pvBuf, cSize * cBSize, &cRead); - - return cRead; -} - -static int rtS3ProgressCallback(void *pvUser, double dDlTotal, double dDlNow, double dUlTotal, double dUlNow) -{ - if (pvUser) - { - PRTS3INTERNAL pS3Int = (PRTS3INTERNAL)pvUser; - if (pS3Int->pfnProgressCallback) - { - int rc = VINF_SUCCESS; - if (dDlTotal > 0) - rc = pS3Int->pfnProgressCallback((unsigned)(100.0/dDlTotal*dDlNow), pS3Int->pvUser); - else if (dUlTotal > 0) - rc = pS3Int->pfnProgressCallback((unsigned)(100.0/dUlTotal*dUlNow), pS3Int->pvUser); - if (rc != VINF_SUCCESS) - return -1; - } - } - return CURLE_OK; -} - -static void rtS3ReinitCurl(PRTS3INTERNAL pS3Int) -{ - if (pS3Int && - pS3Int->pCurl) - { - /* Reset the CURL object to an defined state */ - curl_easy_reset(pS3Int->pCurl); - /* Make sure HTTP 1.1 is used */ - curl_easy_setopt(pS3Int->pCurl, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_0); - /* We are cool we are a user agent now */ - if (pS3Int->pszUserAgent) - curl_easy_setopt(pS3Int->pCurl, CURLOPT_USERAGENT, pS3Int->pszUserAgent); - /* Check if the user has a progress callback requested */ - if (pS3Int->pfnProgressCallback) - { - /* Yes, we are willing to receive progress info */ - curl_easy_setopt(pS3Int->pCurl, CURLOPT_NOPROGRESS, 0); - /* Callback for the progress info */ - curl_easy_setopt(pS3Int->pCurl, CURLOPT_PROGRESSFUNCTION, rtS3ProgressCallback); - curl_easy_setopt(pS3Int->pCurl, CURLOPT_PROGRESSDATA, pS3Int); - } - /* Disable the internal cURL write function by providing one which does - * nothing */ - curl_easy_setopt(pS3Int->pCurl, CURLOPT_WRITEFUNCTION, rtS3WriteNothingCallback); - /* Set this do get some verbose info what CURL is doing */ -// curl_easy_setopt(pS3Int->pCurl, CURLOPT_VERBOSE, 1); - } -} - -/******************************************************************************* -* Private XML helper * -*******************************************************************************/ - -static xmlNodePtr rtS3FindNode(xmlNodePtr pNode, const char *pszName) -{ - pNode = pNode->xmlChildrenNode; - while (pNode != NULL) - { - /* Check this level. */ - if (!xmlStrcmp(pNode->name, (const xmlChar *)pszName)) - return pNode; - - /* Recursively check the children of this node. */ - xmlNodePtr pChildNode = rtS3FindNode(pNode, pszName); - if (pChildNode != NULL) - return pChildNode; - - /* Next node. */ - pNode = pNode->next; - } - return pNode; -} - -static int rtS3ReadXmlFromMemory(PRTS3TMPMEMCHUNK pChunk, const char* pszRootElement, xmlDocPtr *ppDoc, xmlNodePtr *ppCur) -{ - *ppDoc = xmlReadMemory(pChunk->pszMem, (int)pChunk->cSize, "", "ISO-8859-1", XML_PARSE_NOBLANKS | XML_PARSE_NONET); - if (*ppDoc == NULL) - return VERR_PARSE_ERROR; - - *ppCur = xmlDocGetRootElement(*ppDoc); - if (*ppCur == NULL) - { - xmlFreeDoc(*ppDoc); - return VERR_PARSE_ERROR; - } - if (xmlStrcmp((*ppCur)->name, (const xmlChar *) pszRootElement)) - { - xmlFreeDoc(*ppDoc); - return VERR_PARSE_ERROR; - } - return VINF_SUCCESS; -} - -static void rtS3ExtractAllBuckets(xmlDocPtr pDoc, xmlNodePtr pNode, PCRTS3BUCKETENTRY *ppBuckets) -{ - pNode = rtS3FindNode(pNode, "Buckets"); - if (pNode != NULL) - { - PRTS3BUCKETENTRY pPrevBucket = NULL; - xmlNodePtr pCurBucket = pNode->xmlChildrenNode; - while (pCurBucket != NULL) - { - if ((!xmlStrcmp(pCurBucket->name, (const xmlChar *)"Bucket"))) - { - PRTS3BUCKETENTRY pBucket = (PRTS3BUCKETENTRY)RTMemAllocZ(sizeof(RTS3BUCKETENTRY)); - pBucket->pPrev = pPrevBucket; - if (pPrevBucket) - pPrevBucket->pNext = pBucket; - else - (*ppBuckets) = pBucket; - pPrevBucket = pBucket; - xmlNodePtr pCurCont = pCurBucket->xmlChildrenNode; - while (pCurCont != NULL) - { - if ((!xmlStrcmp(pCurCont->name, (const xmlChar *)"Name"))) - { - xmlChar *pszKey = xmlNodeListGetString(pDoc, pCurCont->xmlChildrenNode, 1); - pBucket->pszName = RTStrDup((const char*)pszKey); - xmlFree(pszKey); - } - if ((!xmlStrcmp(pCurCont->name, (const xmlChar*)"CreationDate"))) - { - xmlChar *pszKey = xmlNodeListGetString(pDoc, pCurCont->xmlChildrenNode, 1); - pBucket->pszCreationDate = RTStrDup((const char*)pszKey); - xmlFree(pszKey); - } - pCurCont = pCurCont->next; - } - } - pCurBucket = pCurBucket->next; - } - } -} - -static void rtS3ExtractAllKeys(xmlDocPtr pDoc, xmlNodePtr pNode, PCRTS3KEYENTRY *ppKeys) -{ - if (pNode != NULL) - { - PRTS3KEYENTRY pPrevKey = NULL; - xmlNodePtr pCurKey = pNode->xmlChildrenNode; - while (pCurKey != NULL) - { - if ((!xmlStrcmp(pCurKey->name, (const xmlChar *)"Contents"))) - { - PRTS3KEYENTRY pKey = (PRTS3KEYENTRY)RTMemAllocZ(sizeof(RTS3KEYENTRY)); - pKey->pPrev = pPrevKey; - if (pPrevKey) - pPrevKey->pNext = pKey; - else - (*ppKeys) = pKey; - pPrevKey = pKey; - xmlNodePtr pCurCont = pCurKey->xmlChildrenNode; - while (pCurCont != NULL) - { - if ((!xmlStrcmp(pCurCont->name, (const xmlChar *)"Key"))) - { - xmlChar *pszKey = xmlNodeListGetString(pDoc, pCurCont->xmlChildrenNode, 1); - pKey->pszName = RTStrDup((const char*)pszKey); - xmlFree(pszKey); - } - if ((!xmlStrcmp(pCurCont->name, (const xmlChar*)"LastModified"))) - { - xmlChar *pszKey = xmlNodeListGetString(pDoc, pCurCont->xmlChildrenNode, 1); - pKey->pszLastModified = RTStrDup((const char*)pszKey); - xmlFree(pszKey); - } - if ((!xmlStrcmp(pCurCont->name, (const xmlChar*)"Size"))) - { - xmlChar *pszKey = xmlNodeListGetString(pDoc, pCurCont->xmlChildrenNode, 1); - pKey->cbFile = RTStrToUInt64((const char*)pszKey); - xmlFree(pszKey); - } - pCurCont = pCurCont->next; - } - } - pCurKey = pCurKey->next; - } - } -} - -/******************************************************************************* -* Public RTS3 interface * -*******************************************************************************/ - -RTR3DECL(int) RTS3Create(PRTS3 ppS3, const char* pszAccessKey, const char* pszSecretKey, const char* pszBaseUrl, const char* pszUserAgent /* = NULL */) -{ - AssertPtrReturn(ppS3, VERR_INVALID_POINTER); - - /* We need at least an URL to connect with */ - if (pszBaseUrl == NULL || - pszBaseUrl[0] == 0) - return VERR_INVALID_PARAMETER; - - /* In windows, this will init the winsock stuff */ - if (curl_global_init(CURL_GLOBAL_ALL) != 0) - return VERR_INTERNAL_ERROR; - - CURL* pCurl = curl_easy_init(); - if (!pCurl) - return VERR_INTERNAL_ERROR; - - PRTS3INTERNAL pS3Int = (PRTS3INTERNAL)RTMemAllocZ(sizeof(RTS3INTERNAL)); - if (pS3Int == NULL) - return VERR_NO_MEMORY; - - pS3Int->u32Magic = RTS3_MAGIC; - pS3Int->pCurl = pCurl; - pS3Int->pszAccessKey = RTStrDup(pszAccessKey); - pS3Int->pszSecretKey = RTStrDup(pszSecretKey); - pS3Int->pszBaseUrl = RTStrDup(pszBaseUrl); - if (pszUserAgent) - pS3Int->pszUserAgent = RTStrDup(pszUserAgent); - - *ppS3 = (RTS3)pS3Int; - - return VINF_SUCCESS; -} - -RTR3DECL(void) RTS3Destroy(RTS3 hS3) -{ - if (hS3 == NIL_RTS3) - return; - - PRTS3INTERNAL pS3Int = hS3; - RTS3_VALID_RETURN_VOID(pS3Int); - - curl_easy_cleanup(pS3Int->pCurl); - - pS3Int->u32Magic = RTS3_MAGIC_DEAD; - - if (pS3Int->pszUserAgent) - RTStrFree(pS3Int->pszUserAgent); - RTStrFree(pS3Int->pszBaseUrl); - RTStrFree(pS3Int->pszSecretKey); - RTStrFree(pS3Int->pszAccessKey); - - RTMemFree(pS3Int); - - curl_global_cleanup(); -} - -RTR3DECL(void) RTS3SetProgressCallback(RTS3 hS3, PFNRTS3PROGRESS pfnProgressCallback, void *pvUser /* = NULL */) -{ - PRTS3INTERNAL pS3Int = hS3; - RTS3_VALID_RETURN_VOID(pS3Int); - - pS3Int->pfnProgressCallback = pfnProgressCallback; - pS3Int->pvUser = pvUser; -} - -RTR3DECL(int) RTS3GetBuckets(RTS3 hS3, PCRTS3BUCKETENTRY *ppBuckets) -{ - PRTS3INTERNAL pS3Int = hS3; - RTS3_VALID_RETURN(pS3Int); - - /* Properly initialize this */ - *ppBuckets = NULL; - - /* Reset the CURL object to an defined state */ - rtS3ReinitCurl(pS3Int); - /* Create the CURL object to operate on */ - curl_easy_setopt(pS3Int->pCurl, CURLOPT_URL, pS3Int->pszBaseUrl); - - /* Create the three basic header entries */ - char *apszHead[3] = - { - rtS3HostHeader("", pS3Int->pszBaseUrl), /* Host entry */ - rtS3DateHeader(), /* Date entry */ - NULL /* Authorization entry */ - }; - /* Create the authorization header entry */ - apszHead[RT_ELEMENTS(apszHead)-1] = rtS3CreateAuthHeader(pS3Int, "GET", "", "", apszHead, RT_ELEMENTS(apszHead)); - - /* Add all headers to curl */ - struct curl_slist* pHeaders = NULL; /* Init to NULL is important */ - for(size_t i=0; i < RT_ELEMENTS(apszHead); ++i) - pHeaders = curl_slist_append(pHeaders, apszHead[i]); - - /* Pass our list of custom made headers */ - curl_easy_setopt(pS3Int->pCurl, CURLOPT_HTTPHEADER, pHeaders); - - RTS3TMPMEMCHUNK chunk = { NULL, 0 }; - /* Set the callback which receive the content */ - curl_easy_setopt(pS3Int->pCurl, CURLOPT_WRITEFUNCTION, rtS3WriteMemoryCallback); - curl_easy_setopt(pS3Int->pCurl, CURLOPT_WRITEDATA, (void *)&chunk); - /* Start the request */ - int rc = rtS3Perform(pS3Int); - - /* Regardless of the result, free all used resources first*/ - curl_slist_free_all(pHeaders); - for(size_t i=0; i < RT_ELEMENTS(apszHead); ++i) - RTStrFree(apszHead[i]); - - /* On success parse the result */ - if (RT_SUCCESS(rc)) - { - xmlDocPtr pDoc; - xmlNodePtr pCur; - /* Parse the xml memory for "ListAllMyBucketsResult" */ - rc = rtS3ReadXmlFromMemory(&chunk, "ListAllMyBucketsResult", &pDoc, &pCur); - if (RT_SUCCESS(rc)) - { - /* Now extract all buckets */ - rtS3ExtractAllBuckets(pDoc, pCur, ppBuckets); - /* Free the xml stuff */ - xmlFreeDoc(pDoc); - } - } - /* Free the temporary memory */ - RTMemFree(chunk.pszMem); - - return rc; -} - -RTR3DECL(int) RTS3BucketsDestroy(PCRTS3BUCKETENTRY pBuckets) -{ - if (!pBuckets) - return VINF_SUCCESS; - - while (pBuckets) - { - PCRTS3BUCKETENTRY pTemp = pBuckets; - RTStrFree((char*)pBuckets->pszName); - RTStrFree((char*)pBuckets->pszCreationDate); - pBuckets = pBuckets->pNext; - RTMemFree((PRTS3BUCKETENTRY )pTemp); - } - return VINF_SUCCESS; -} - -RTR3DECL(int) RTS3CreateBucket(RTS3 hS3, const char* pszBucketName) -{ - PRTS3INTERNAL pS3Int = hS3; - RTS3_VALID_RETURN(pS3Int); - - /* Reset the CURL object to an defined state */ - rtS3ReinitCurl(pS3Int); - - char* pszUrl = rtS3Host(pszBucketName, "", pS3Int->pszBaseUrl); - curl_easy_setopt(pS3Int->pCurl, CURLOPT_URL, pszUrl); - RTStrFree(pszUrl); - - /* Create the basic header entries */ - char *apszHead[4] = - { - RTStrDup("Content-Length: 0"), /* Content length entry */ - rtS3HostHeader(pszBucketName, pS3Int->pszBaseUrl), /* Host entry */ - rtS3DateHeader(), /* Date entry */ - NULL /* Authorization entry */ - }; - /* Create the authorization header entry */ - apszHead[RT_ELEMENTS(apszHead)-1] = rtS3CreateAuthHeader(pS3Int, "PUT", pszBucketName, "", apszHead, RT_ELEMENTS(apszHead)); - - /* Add all headers to curl */ - struct curl_slist* pHeaders = NULL; /* Init to NULL is important */ - for(size_t i=0; i < RT_ELEMENTS(apszHead); ++i) - pHeaders = curl_slist_append(pHeaders, apszHead[i]); - - /* Pass our list of custom made headers */ - curl_easy_setopt(pS3Int->pCurl, CURLOPT_HTTPHEADER, pHeaders); - - /* Set CURL in upload mode */ - curl_easy_setopt(pS3Int->pCurl, CURLOPT_PUT, 1); - curl_easy_setopt(pS3Int->pCurl, CURLOPT_UPLOAD, 1); - - /* Set the size of the file we like to transfer */ - curl_easy_setopt(pS3Int->pCurl, CURLOPT_INFILESIZE_LARGE, 0); - - /* Start the request */ - int rc = rtS3Perform(pS3Int); - if (RT_FAILURE(rc)) - { - /* Handle special failures */ - if (pS3Int->lLastResp == 409) - rc = VERR_S3_BUCKET_ALREADY_EXISTS; - } - - /* Regardless of the result, free all used resources first*/ - curl_slist_free_all(pHeaders); - for(size_t i=0; i < RT_ELEMENTS(apszHead); ++i) - RTStrFree(apszHead[i]); - - return rc; -} - -RTR3DECL(int) RTS3DeleteBucket(RTS3 hS3, const char* pszBucketName) -{ - PRTS3INTERNAL pS3Int = hS3; - RTS3_VALID_RETURN(pS3Int); - - /* Reset the CURL object to an defined state */ - rtS3ReinitCurl(pS3Int); - - char* pszUrl = rtS3Host(pszBucketName, "", pS3Int->pszBaseUrl); - curl_easy_setopt(pS3Int->pCurl, CURLOPT_URL, pszUrl); - RTStrFree(pszUrl); - - /* Create the three basic header entries */ - char *apszHead[3] = - { - rtS3HostHeader(pszBucketName, pS3Int->pszBaseUrl), /* Host entry */ - rtS3DateHeader(), /* Date entry */ - NULL /* Authorization entry */ - }; - /* Create the authorization header entry */ - apszHead[RT_ELEMENTS(apszHead)-1] = rtS3CreateAuthHeader(pS3Int, "DELETE", pszBucketName, "", apszHead, RT_ELEMENTS(apszHead)); - - /* Add all headers to curl */ - struct curl_slist* pHeaders = NULL; /* Init to NULL is important */ - for(size_t i=0; i < RT_ELEMENTS(apszHead); ++i) - pHeaders = curl_slist_append(pHeaders, apszHead[i]); - - /* Pass our list of custom made headers */ - curl_easy_setopt(pS3Int->pCurl, CURLOPT_HTTPHEADER, pHeaders); - - /* Set CURL in delete mode */ - curl_easy_setopt(pS3Int->pCurl, CURLOPT_CUSTOMREQUEST, "DELETE"); - - /* Start the request */ - int rc = rtS3Perform(pS3Int); - if (RT_FAILURE(rc)) - { - /* Handle special failures */ - if (pS3Int->lLastResp == 409) - rc = VERR_S3_BUCKET_NOT_EMPTY; - } - - /* Regardless of the result, free all used resources first*/ - curl_slist_free_all(pHeaders); - for(size_t i=0; i < RT_ELEMENTS(apszHead); ++i) - RTStrFree(apszHead[i]); - - return rc; -} - -RTR3DECL(int) RTS3GetBucketKeys(RTS3 hS3, const char* pszBucketName, PCRTS3KEYENTRY *ppKeys) -{ - PRTS3INTERNAL pS3Int = hS3; - RTS3_VALID_RETURN(pS3Int); - - *ppKeys = NULL; - - /* Reset the CURL object to an defined state */ - rtS3ReinitCurl(pS3Int); - - char* pszUrl = rtS3Host(pszBucketName, "", pS3Int->pszBaseUrl); - curl_easy_setopt(pS3Int->pCurl, CURLOPT_URL, pszUrl); - RTStrFree(pszUrl); - - /* Create the three basic header entries */ - char *apszHead[3] = - { - rtS3HostHeader(pszBucketName, pS3Int->pszBaseUrl), /* Host entry */ - rtS3DateHeader(), /* Date entry */ - NULL /* Authorization entry */ - }; - /* Create the authorization header entry */ - apszHead[RT_ELEMENTS(apszHead)-1] = rtS3CreateAuthHeader(pS3Int, "GET", pszBucketName, "", apszHead, RT_ELEMENTS(apszHead)); - - /* Add all headers to curl */ - struct curl_slist* pHeaders = NULL; /* Init to NULL is important */ - for(size_t i=0; i < RT_ELEMENTS(apszHead); ++i) - pHeaders = curl_slist_append(pHeaders, apszHead[i]); - - /* Pass our list of custom made headers */ - curl_easy_setopt(pS3Int->pCurl, CURLOPT_HTTPHEADER, pHeaders); - - RTS3TMPMEMCHUNK chunk = { NULL, 0 }; - /* Set the callback which receive the content */ - curl_easy_setopt(pS3Int->pCurl, CURLOPT_WRITEFUNCTION, rtS3WriteMemoryCallback); - curl_easy_setopt(pS3Int->pCurl, CURLOPT_WRITEDATA, (void *)&chunk); - - /* Start the request */ - int rc = rtS3Perform(pS3Int); - - /* Regardless of the result, free all used resources first*/ - curl_slist_free_all(pHeaders); - for(size_t i=0; i < RT_ELEMENTS(apszHead); ++i) - RTStrFree(apszHead[i]); - - /* On success parse the result */ - if (RT_SUCCESS(rc)) - { - xmlDocPtr pDoc; - xmlNodePtr pCur; - /* Parse the xml memory for "ListBucketResult" */ - rc = rtS3ReadXmlFromMemory(&chunk, "ListBucketResult", &pDoc, &pCur); - if (RT_SUCCESS(rc)) - { - /* Now extract all buckets */ - rtS3ExtractAllKeys(pDoc, pCur, ppKeys); - /* Free the xml stuff */ - xmlFreeDoc(pDoc); - } - } - /* Free the temporary memory */ - RTMemFree(chunk.pszMem); - - return rc; -} - -RTR3DECL(int) RTS3KeysDestroy(PCRTS3KEYENTRY pKeys) -{ - if (!pKeys) - return VINF_SUCCESS; - - while (pKeys) - { - PCRTS3KEYENTRY pTemp = pKeys; - RTStrFree((char*)pKeys->pszName); - RTStrFree((char*)pKeys->pszLastModified); - pKeys = pKeys->pNext; - RTMemFree((PRTS3KEYENTRY)pTemp); - } - return VINF_SUCCESS; -} - -RTR3DECL(int) RTS3DeleteKey(RTS3 hS3, const char* pszBucketName, const char* pszKeyName) -{ - PRTS3INTERNAL pS3Int = hS3; - RTS3_VALID_RETURN(pS3Int); - - /* Reset the CURL object to an defined state */ - rtS3ReinitCurl(pS3Int); - - char* pszUrl = rtS3Host(pszBucketName, pszKeyName, pS3Int->pszBaseUrl); - curl_easy_setopt(pS3Int->pCurl, CURLOPT_URL, pszUrl); - RTStrFree(pszUrl); - - /* Create the three basic header entries */ - char *apszHead[3] = - { - rtS3HostHeader(pszBucketName, pS3Int->pszBaseUrl), /* Host entry */ - rtS3DateHeader(), /* Date entry */ - NULL /* Authorization entry */ - }; - /* Create the authorization header entry */ - apszHead[RT_ELEMENTS(apszHead)-1] = rtS3CreateAuthHeader(pS3Int, "DELETE", pszBucketName, pszKeyName, apszHead, RT_ELEMENTS(apszHead)); - - /* Add all headers to curl */ - struct curl_slist* pHeaders = NULL; /* Init to NULL is important */ - for(size_t i=0; i < RT_ELEMENTS(apszHead); ++i) - pHeaders = curl_slist_append(pHeaders, apszHead[i]); - - /* Pass our list of custom made headers */ - curl_easy_setopt(pS3Int->pCurl, CURLOPT_HTTPHEADER, pHeaders); - - /* Set CURL in delete mode */ - curl_easy_setopt(pS3Int->pCurl, CURLOPT_CUSTOMREQUEST, "DELETE"); - - /* Start the request */ - int rc = rtS3Perform(pS3Int); - - /* Regardless of the result, free all used resources first*/ - curl_slist_free_all(pHeaders); - for(size_t i=0; i < RT_ELEMENTS(apszHead); ++i) - RTStrFree(apszHead[i]); - - return rc; -} - -RTR3DECL(int) RTS3GetKey(RTS3 hS3, const char *pszBucketName, const char *pszKeyName, const char *pszFilename) -{ - PRTS3INTERNAL pS3Int = hS3; - RTS3_VALID_RETURN(pS3Int); - - /* Reset the CURL object to an defined state */ - rtS3ReinitCurl(pS3Int); - - /* Open the file */ - RTFILE hFile; - int rc = RTFileOpen(&hFile, pszFilename, RTFILE_O_CREATE | RTFILE_O_WRITE | RTFILE_O_DENY_NONE); - if (RT_FAILURE(rc)) - return rc; - - char* pszUrl = rtS3Host(pszBucketName, pszKeyName, pS3Int->pszBaseUrl); - curl_easy_setopt(pS3Int->pCurl, CURLOPT_URL, pszUrl); - RTStrFree(pszUrl); - - /* Create the three basic header entries */ - char *apszHead[3] = - { - rtS3HostHeader(pszBucketName, pS3Int->pszBaseUrl), /* Host entry */ - rtS3DateHeader(), /* Date entry */ - NULL /* Authorization entry */ - }; - /* Create the authorization header entry */ - apszHead[RT_ELEMENTS(apszHead)-1] = rtS3CreateAuthHeader(pS3Int, "GET", pszBucketName, pszKeyName, apszHead, RT_ELEMENTS(apszHead)); - - /* Add all headers to curl */ - struct curl_slist* pHeaders = NULL; /* Init to NULL is important */ - for(size_t i=0; i < RT_ELEMENTS(apszHead); ++i) - pHeaders = curl_slist_append(pHeaders, apszHead[i]); - - /* Pass our list of custom made headers */ - curl_easy_setopt(pS3Int->pCurl, CURLOPT_HTTPHEADER, pHeaders); - - /* Set the callback which receive the content */ - curl_easy_setopt(pS3Int->pCurl, CURLOPT_WRITEFUNCTION, rtS3WriteFileCallback); - curl_easy_setopt(pS3Int->pCurl, CURLOPT_WRITEDATA, &hFile); - - /* Start the request */ - rc = rtS3Perform(pS3Int); - - /* Regardless of the result, free all used resources first*/ - curl_slist_free_all(pHeaders); - for(size_t i=0; i < RT_ELEMENTS(apszHead); ++i) - RTStrFree(apszHead[i]); - - /* Close the open file */ - RTFileClose(hFile); - - /* If there was an error delete the newly created file */ - if (RT_FAILURE(rc)) - RTFileDelete(pszFilename); - - return rc; -} - -RTR3DECL(int) RTS3PutKey(RTS3 hS3, const char *pszBucketName, const char *pszKeyName, const char *pszFilename) -{ - PRTS3INTERNAL pS3Int = hS3; - RTS3_VALID_RETURN(pS3Int); - - /* Reset the CURL object to an defined state */ - rtS3ReinitCurl(pS3Int); - - /* Open the file */ - RTFILE hFile; - int rc = RTFileOpen(&hFile, pszFilename, RTFILE_O_OPEN | RTFILE_O_READ | RTFILE_O_DENY_NONE); - if (RT_FAILURE(rc)) - return rc; - - uint64_t cbFileSize; - rc = RTFileGetSize(hFile, &cbFileSize); - if (RT_FAILURE(rc)) - { - RTFileClose(hFile); - return rc; - } - - char* pszUrl = rtS3Host(pszBucketName, pszKeyName, pS3Int->pszBaseUrl); - curl_easy_setopt(pS3Int->pCurl, CURLOPT_URL, pszUrl); - RTStrFree(pszUrl); - - char* pszContentLength; - RTStrAPrintf(&pszContentLength, "Content-Length: %lu", cbFileSize); - /* Create the three basic header entries */ - char *apszHead[5] = - { - /* todo: For now we use octet-stream for all types. Later we should try - * to set the right one (libmagic from the file packet could be a - * candidate for finding the right type). */ - RTStrDup("Content-Type: octet-stream"), /* Content type entry */ - pszContentLength, /* Content length entry */ - rtS3HostHeader(pszBucketName, pS3Int->pszBaseUrl), /* Host entry */ - rtS3DateHeader(), /* Date entry */ - NULL /* Authorization entry */ - }; - /* Create the authorization header entry */ - apszHead[RT_ELEMENTS(apszHead)-1] = rtS3CreateAuthHeader(pS3Int, "PUT", pszBucketName, pszKeyName, apszHead, RT_ELEMENTS(apszHead)); - - /* Add all headers to curl */ - struct curl_slist* pHeaders = NULL; /* Init to NULL is important */ - for(size_t i=0; i < RT_ELEMENTS(apszHead); ++i) - pHeaders = curl_slist_append(pHeaders, apszHead[i]); - - /* Pass our list of custom made headers */ - curl_easy_setopt(pS3Int->pCurl, CURLOPT_HTTPHEADER, pHeaders); - - /* Set CURL in upload mode */ - curl_easy_setopt(pS3Int->pCurl, CURLOPT_PUT, 1); - curl_easy_setopt(pS3Int->pCurl, CURLOPT_UPLOAD, 1); - - /* Set the size of the file we like to transfer */ - curl_easy_setopt(pS3Int->pCurl, CURLOPT_INFILESIZE_LARGE, cbFileSize); - - /* Set the callback which send the content */ - curl_easy_setopt(pS3Int->pCurl, CURLOPT_READFUNCTION, rtS3ReadFileCallback); - curl_easy_setopt(pS3Int->pCurl, CURLOPT_READDATA, &hFile); - - /* Start the request */ - rc = rtS3Perform(pS3Int); - - /* Regardless of the result, free all used resources first*/ - curl_slist_free_all(pHeaders); - for(size_t i=0; i < RT_ELEMENTS(apszHead); ++i) - RTStrFree(apszHead[i]); - - /* Close the open file */ - RTFileClose(hFile); - - return rc; -} - diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Runtime/common/misc/sg.cpp virtualbox-4.1.44-dfsg/src/VBox/Runtime/common/misc/sg.cpp --- virtualbox-4.1.12-dfsg/src/VBox/Runtime/common/misc/sg.cpp 2012-04-02 13:29:00.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Runtime/common/misc/sg.cpp 2015-11-11 15:09:02.000000000 +0000 @@ -46,12 +46,14 @@ return NULL; } - AssertReleaseMsg( pSgBuf->cbSegLeft <= 5 * _1M +#ifndef RDESKTOP + AssertReleaseMsg( pSgBuf->cbSegLeft <= 32 * _1M && (uintptr_t)pSgBuf->pvSegCur >= (uintptr_t)pSgBuf->paSegs[pSgBuf->idxSeg].pvSeg && (uintptr_t)pSgBuf->pvSegCur + pSgBuf->cbSegLeft <= (uintptr_t)pSgBuf->paSegs[pSgBuf->idxSeg].pvSeg + pSgBuf->paSegs[pSgBuf->idxSeg].cbSeg, ("pSgBuf->idxSeg=%d pSgBuf->cSegs=%d pSgBuf->pvSegCur=%p pSgBuf->cbSegLeft=%zd pSgBuf->paSegs[%d].pvSeg=%p pSgBuf->paSegs[%d].cbSeg=%zd\n", pSgBuf->idxSeg, pSgBuf->cSegs, pSgBuf->pvSegCur, pSgBuf->cbSegLeft, pSgBuf->idxSeg, pSgBuf->paSegs[pSgBuf->idxSeg].pvSeg, pSgBuf->idxSeg, pSgBuf->paSegs[pSgBuf->idxSeg].cbSeg)); +#endif cbData = RT_MIN(*pcbData, pSgBuf->cbSegLeft); pvBuf = pSgBuf->pvSegCur; diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Runtime/common/misc/term.cpp virtualbox-4.1.44-dfsg/src/VBox/Runtime/common/misc/term.cpp --- virtualbox-4.1.12-dfsg/src/VBox/Runtime/common/misc/term.cpp 2012-04-02 13:29:00.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Runtime/common/misc/term.cpp 2015-11-11 15:09:02.000000000 +0000 @@ -76,10 +76,9 @@ * Initializes the globals. * * @returns IPRT status code - * @param pvUser1 Ignored. - * @param pvUser2 Ignored. + * @param pvUser Ignored. */ -static DECLCALLBACK(int32_t) rtTermInitOnce(void *pvUser1, void *pvUser2) +static DECLCALLBACK(int32_t) rtTermInitOnce(void *pvUser) { RTSEMFASTMUTEX hFastMutex; int rc; @@ -92,8 +91,7 @@ if (RT_SUCCESS(rc)) g_hFastMutex = hFastMutex; - NOREF(pvUser1); - NOREF(pvUser2); + NOREF(pvUser); return rc; } @@ -110,7 +108,7 @@ */ AssertPtrReturn(pfnCallback, VERR_INVALID_POINTER); - rc = RTOnce(&g_InitTermCallbacksOnce, rtTermInitOnce, NULL, NULL); + rc = RTOnce(&g_InitTermCallbacksOnce, rtTermInitOnce, NULL); if (RT_FAILURE(rc)) return rc; diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Runtime/common/misc/zero.asm virtualbox-4.1.44-dfsg/src/VBox/Runtime/common/misc/zero.asm --- virtualbox-4.1.12-dfsg/src/VBox/Runtime/common/misc/zero.asm 1970-01-01 00:00:00.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Runtime/common/misc/zero.asm 2015-11-11 15:09:02.000000000 +0000 @@ -0,0 +1,45 @@ +; $Id: zero.asm $ +;; @file +; IPRT - Zero Memory. +; + +; +; Copyright (C) 2013 Oracle Corporation +; +; This file is part of VirtualBox Open Source Edition (OSE), as +; available from http://www.virtualbox.org. This file is free software; +; you can redistribute it and/or modify it under the terms of the GNU +; General Public License (GPL) as published by the Free Software +; Foundation, in version 2 as it comes in the "COPYING" file of the +; VirtualBox OSE distribution. VirtualBox OSE is distributed in the +; hope that it will be useful, but WITHOUT ANY WARRANTY of any kind. +; +; The contents of this file may alternatively be used under the terms +; of the Common Development and Distribution License Version 1.0 +; (CDDL) only, as it comes in the "COPYING.CDDL" file of the +; VirtualBox OSE distribution, in which case the provisions of the +; CDDL are applicable instead of those of the GPL. +; +; You may elect to license modified versions of this file under the +; terms and conditions of either the GPL or the CDDL or both. +; + +;******************************************************************************* +;* Header Files * +;******************************************************************************* +%include "iprt/asmdefs.mac" + +; Putting it in the code segment/section for now. +BEGINCODE + +;; +; 64KB of zero memory with various sized labels. +; +EXPORTEDNAME_EX g_abRTZeroPage, object +EXPORTEDNAME_EX g_abRTZero4K, object +EXPORTEDNAME_EX g_abRTZero8K, object +EXPORTEDNAME_EX g_abRTZero16K, object +EXPORTEDNAME_EX g_abRTZero32K, object +EXPORTEDNAME_EX g_abRTZero64K, object + times 0x10000/(16*4) dd 0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0 + diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Runtime/common/rand/rand.cpp virtualbox-4.1.44-dfsg/src/VBox/Runtime/common/rand/rand.cpp --- virtualbox-4.1.12-dfsg/src/VBox/Runtime/common/rand/rand.cpp 2012-04-02 13:29:01.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Runtime/common/rand/rand.cpp 2015-11-11 15:09:03.000000000 +0000 @@ -55,14 +55,10 @@ * Perform lazy initialization. * * @returns IPRT status code. - * @param pvUser1 Ignored. - * @param pvUser2 Ignored. + * @param pvUser Ignored. */ -static DECLCALLBACK(int) rtRandInitOnce(void *pvUser1, void *pvUser2) +static DECLCALLBACK(int) rtRandInitOnce(void *pvUser) { - NOREF(pvUser1); - NOREF(pvUser2); - RTRAND hRand; int rc = RTRandAdvCreateSystemFaster(&hRand); if (RT_FAILURE(rc)) @@ -79,13 +75,37 @@ else AssertRC(rc); + NOREF(pvUser); return rc; } +/** + * Termination counterpart to rtRandInitOnce. + * + * @returns IPRT status code. + * @param pvUser Ignored. + * @param fLazyCleanUpOk Set if we're terminating the process. + */ +static DECLCALLBACK(void) rtRandTermOnce(void *pvUser, bool fLazyCleanUpOk) +{ + if (!fLazyCleanUpOk) + { + RTRAND hRand = g_hRand; + g_hRand = NIL_RTRAND; + if (hRand != NIL_RTRAND) + { + int rc = RTRandAdvDestroy(hRand); + AssertRC(rc); + } + } + NOREF(pvUser); +} + + RTDECL(void) RTRandBytes(void *pv, size_t cb) RT_NO_THROW { - RTOnce(&g_rtRandOnce, rtRandInitOnce, NULL, NULL); + RTOnceEx(&g_rtRandOnce, rtRandInitOnce, rtRandTermOnce, NULL); RTRandAdvBytes(g_hRand, pv, cb); } RT_EXPORT_SYMBOL(RTRandBytes); @@ -93,7 +113,7 @@ RTDECL(uint32_t) RTRandU32Ex(uint32_t u32First, uint32_t u32Last) RT_NO_THROW { - RTOnce(&g_rtRandOnce, rtRandInitOnce, NULL, NULL); + RTOnceEx(&g_rtRandOnce, rtRandInitOnce, rtRandTermOnce, NULL); return RTRandAdvU32Ex(g_hRand, u32First, u32Last); } RT_EXPORT_SYMBOL(RTRandU32Ex); @@ -101,7 +121,7 @@ RTDECL(uint32_t) RTRandU32(void) RT_NO_THROW { - RTOnce(&g_rtRandOnce, rtRandInitOnce, NULL, NULL); + RTOnceEx(&g_rtRandOnce, rtRandInitOnce, rtRandTermOnce, NULL); return RTRandAdvU32(g_hRand); } RT_EXPORT_SYMBOL(RTRandU32); @@ -109,7 +129,7 @@ RTDECL(int32_t) RTRandS32Ex(int32_t i32First, int32_t i32Last) RT_NO_THROW { - RTOnce(&g_rtRandOnce, rtRandInitOnce, NULL, NULL); + RTOnceEx(&g_rtRandOnce, rtRandInitOnce, rtRandTermOnce, NULL); return RTRandAdvS32Ex(g_hRand, i32First, i32Last); } RT_EXPORT_SYMBOL(RTRandS32Ex); @@ -117,7 +137,7 @@ RTDECL(int32_t) RTRandS32(void) RT_NO_THROW { - RTOnce(&g_rtRandOnce, rtRandInitOnce, NULL, NULL); + RTOnceEx(&g_rtRandOnce, rtRandInitOnce, rtRandTermOnce, NULL); return RTRandAdvS32(g_hRand); } RT_EXPORT_SYMBOL(RTRandS32); @@ -125,7 +145,7 @@ RTDECL(uint64_t) RTRandU64Ex(uint64_t u64First, uint64_t u64Last) RT_NO_THROW { - RTOnce(&g_rtRandOnce, rtRandInitOnce, NULL, NULL); + RTOnceEx(&g_rtRandOnce, rtRandInitOnce, rtRandTermOnce, NULL); return RTRandAdvU64Ex(g_hRand, u64First, u64Last); } RT_EXPORT_SYMBOL(RTRandU64Ex); @@ -133,7 +153,7 @@ RTDECL(uint64_t) RTRandU64(void) RT_NO_THROW { - RTOnce(&g_rtRandOnce, rtRandInitOnce, NULL, NULL); + RTOnceEx(&g_rtRandOnce, rtRandInitOnce, rtRandTermOnce, NULL); return RTRandAdvU64(g_hRand); } RT_EXPORT_SYMBOL(RTRandU64); @@ -141,7 +161,7 @@ RTDECL(int64_t) RTRandS64Ex(int64_t i64First, int64_t i64Last) RT_NO_THROW { - RTOnce(&g_rtRandOnce, rtRandInitOnce, NULL, NULL); + RTOnceEx(&g_rtRandOnce, rtRandInitOnce, rtRandTermOnce, NULL); return RTRandAdvS64Ex(g_hRand, i64First, i64Last); } RT_EXPORT_SYMBOL(RTRandS64Ex); @@ -149,7 +169,7 @@ RTDECL(int64_t) RTRandS64(void) RT_NO_THROW { - RTOnce(&g_rtRandOnce, rtRandInitOnce, NULL, NULL); + RTOnceEx(&g_rtRandOnce, rtRandInitOnce, rtRandTermOnce, NULL); return RTRandAdvS32(g_hRand); } RT_EXPORT_SYMBOL(RTRandS64); diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Runtime/common/string/base64.cpp virtualbox-4.1.44-dfsg/src/VBox/Runtime/common/string/base64.cpp --- virtualbox-4.1.12-dfsg/src/VBox/Runtime/common/string/base64.cpp 2012-04-02 13:29:01.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Runtime/common/string/base64.cpp 2015-11-11 15:09:03.000000000 +0000 @@ -34,6 +34,7 @@ #include #include #include +#include #ifdef RT_STRICT # include #endif @@ -108,8 +109,7 @@ || ( u8 == BASE64_PAD && i == '=') || ( u8 == BASE64_SPACE - && ( RT_C_IS_SPACE(i) - || (i == '\r'))) /* Carriage return is handled as a space character as well. */ + && RT_C_IS_SPACE(i)) || ( u8 < 64 && (unsigned)g_szValToChar[u8] == i)); } @@ -119,17 +119,7 @@ #endif /* RT_STRICT */ -/** - * Calculates the decoded data size for a Base64 encoded string. - * - * @returns The length in bytes. -1 if the encoding is bad. - * - * @param pszString The Base64 encoded string. - * @param ppszEnd If not NULL, this will point to the first char - * following the Base64 encoded text block. If - * NULL the entire string is assumed to be Base64. - */ -RTDECL(ssize_t) RTBase64DecodedSize(const char *pszString, char **ppszEnd) +RTDECL(ssize_t) RTBase64DecodedSizeEx(const char *pszString, size_t cchStringMax, char **ppszEnd) { #ifdef RT_STRICT rtBase64Sanity(); @@ -140,10 +130,10 @@ */ uint32_t c6Bits = 0; uint8_t u8 = BASE64_INVALID; - unsigned ch; + unsigned ch = 0; AssertCompile(sizeof(char) == sizeof(uint8_t)); - while ((ch = *pszString)) + while (cchStringMax > 0 && (ch = *pszString)) { u8 = g_au8CharToVal[ch]; if (u8 < 64) @@ -153,6 +143,7 @@ /* advance */ pszString++; + cchStringMax--; } /* @@ -165,7 +156,8 @@ cbPad = 1; c6Bits++; pszString++; - while ((ch = *pszString)) + cchStringMax--; + while (cchStringMax > 0 && (ch = *pszString)) { u8 = g_au8CharToVal[ch]; if (u8 != BASE64_SPACE) @@ -176,6 +168,7 @@ cbPad++; } pszString++; + cchStringMax--; } if (cbPad >= 3) return -1; @@ -215,31 +208,18 @@ *ppszEnd = (char *)pszString; return cb; } +RT_EXPORT_SYMBOL(RTBase64DecodedSizeEx); + + +RTDECL(ssize_t) RTBase64DecodedSize(const char *pszString, char **ppszEnd) +{ + return RTBase64DecodedSizeEx(pszString, RTSTR_MAX, ppszEnd); +} RT_EXPORT_SYMBOL(RTBase64DecodedSize); -/** - * Decodes a Base64 encoded string into the buffer supplied by the caller. - * - * @returns IPRT status code. - * @retval VERR_BUFFER_OVERFLOW if the buffer is too small. pcbActual will not - * be set, nor will ppszEnd. - * @retval VERR_INVALID_BASE64_ENCODING if the encoding is wrong. - * - * @param pszString The Base64 string. Whether the entire string or - * just the start of the string is in Base64 depends - * on whether ppszEnd is specified or not. - * @param pvData Where to store the decoded data. - * @param cbData The size of the output buffer that pvData points to. - * @param pcbActual Where to store the actual number of bytes returned. - * Optional. - * @param ppszEnd Indicates that the string may contain other stuff - * after the Base64 encoded data when not NULL. Will - * be set to point to the first char that's not part of - * the encoding. If NULL the entire string must be part - * of the Base64 encoded data. - */ -RTDECL(int) RTBase64Decode(const char *pszString, void *pvData, size_t cbData, size_t *pcbActual, char **ppszEnd) +RTDECL(int) RTBase64DecodeEx(const char *pszString, size_t cchStringMax, void *pvData, size_t cbData, + size_t *pcbActual, char **ppszEnd) { #ifdef RT_STRICT rtBase64Sanity(); @@ -250,16 +230,16 @@ */ uint8_t u8Trio[3] = { 0, 0, 0 }; /* shuts up gcc */ uint8_t *pbData = (uint8_t *)pvData; - uint8_t u8 = BASE64_INVALID; - unsigned c6Bits = 0; unsigned ch; + uint8_t u8; + unsigned c6Bits = 0; AssertCompile(sizeof(char) == sizeof(uint8_t)); for (;;) { /* The first 6-bit group. */ - while ((u8 = g_au8CharToVal[ch = *pszString]) == BASE64_SPACE) - pszString++; + while ((u8 = g_au8CharToVal[ch = cchStringMax > 0 ? (uint8_t)*pszString : 0]) == BASE64_SPACE) + pszString++, cchStringMax--; if (u8 >= 64) { c6Bits = 0; @@ -267,10 +247,11 @@ } u8Trio[0] = u8 << 2; pszString++; + cchStringMax--; /* The second 6-bit group. */ - while ((u8 = g_au8CharToVal[ch = *pszString]) == BASE64_SPACE) - pszString++; + while ((u8 = g_au8CharToVal[ch = cchStringMax > 0 ? (uint8_t)*pszString : 0]) == BASE64_SPACE) + pszString++, cchStringMax--; if (u8 >= 64) { c6Bits = 1; @@ -279,10 +260,12 @@ u8Trio[0] |= u8 >> 4; u8Trio[1] = u8 << 4; pszString++; + cchStringMax--; /* The third 6-bit group. */ - while ((u8 = g_au8CharToVal[ch = *pszString]) == BASE64_SPACE) - pszString++; + u8 = BASE64_INVALID; + while ((u8 = g_au8CharToVal[ch = cchStringMax > 0 ? (uint8_t)*pszString : 0]) == BASE64_SPACE) + pszString++, cchStringMax--; if (u8 >= 64) { c6Bits = 2; @@ -291,10 +274,12 @@ u8Trio[1] |= u8 >> 2; u8Trio[2] = u8 << 6; pszString++; + cchStringMax--; /* The fourth 6-bit group. */ - while ((u8 = g_au8CharToVal[ch = *pszString]) == BASE64_SPACE) - pszString++; + u8 = BASE64_INVALID; + while ((u8 = g_au8CharToVal[ch = cchStringMax > 0 ? (uint8_t)*pszString : 0]) == BASE64_SPACE) + pszString++, cchStringMax--; if (u8 >= 64) { c6Bits = 3; @@ -302,6 +287,7 @@ } u8Trio[2] |= u8; pszString++; + cchStringMax--; /* flush the trio */ if (cbData < 3) @@ -322,7 +308,8 @@ { cbPad = 1; pszString++; - while ((ch = *pszString)) + cchStringMax--; + while (cchStringMax > 0 && (ch = (uint8_t)*pszString)) { u8 = g_au8CharToVal[ch]; if (u8 != BASE64_SPACE) @@ -332,6 +319,7 @@ cbPad++; } pszString++; + cchStringMax--; } if (cbPad >= 3) return VERR_INVALID_BASE64_ENCODING; @@ -343,7 +331,7 @@ */ if ( u8 == BASE64_INVALID && !ppszEnd - && ch) + && ch != '\0') return VERR_INVALID_BASE64_ENCODING; /* @@ -399,6 +387,13 @@ *pcbActual = pbData - (uint8_t *)pvData; return VINF_SUCCESS; } +RT_EXPORT_SYMBOL(RTBase64DecodeEx); + + +RTDECL(int) RTBase64Decode(const char *pszString, void *pvData, size_t cbData, size_t *pcbActual, char **ppszEnd) +{ + return RTBase64DecodeEx(pszString, RTSTR_MAX, pvData, cbData, pcbActual, ppszEnd); +} RT_EXPORT_SYMBOL(RTBase64Decode); diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Runtime/common/string/RTStrPrintHexBytes.cpp virtualbox-4.1.44-dfsg/src/VBox/Runtime/common/string/RTStrPrintHexBytes.cpp --- virtualbox-4.1.12-dfsg/src/VBox/Runtime/common/string/RTStrPrintHexBytes.cpp 2012-04-02 13:29:01.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Runtime/common/string/RTStrPrintHexBytes.cpp 2015-11-11 15:09:03.000000000 +0000 @@ -4,7 +4,7 @@ */ /* - * Copyright (C) 2009 Oracle Corporation + * Copyright (C) 2009-2014 Oracle Corporation * * This file is part of VirtualBox Open Source Edition (OSE), as * available from http://www.virtualbox.org. This file is free software; @@ -37,20 +37,23 @@ RTDECL(int) RTStrPrintHexBytes(char *pszBuf, size_t cchBuf, void const *pv, size_t cb, uint32_t fFlags) { - AssertReturn(!fFlags, VERR_INVALID_PARAMETER); + AssertReturn(!(fFlags & ~RTSTRPRINTHEXBYTES_F_UPPER), VERR_INVALID_PARAMETER); AssertPtrReturn(pszBuf, VERR_INVALID_POINTER); AssertReturn(cb * 2 >= cb, VERR_BUFFER_OVERFLOW); AssertReturn(cchBuf >= cb * 2 + 1, VERR_BUFFER_OVERFLOW); if (cb) AssertPtrReturn(pv, VERR_INVALID_POINTER); + static char const s_szHexDigitsLower[17] = "0123456789abcdef"; + static char const s_szHexDigitsUpper[17] = "0123456789ABCDEF"; + const char *pszHexDigits = !(fFlags & RTSTRPRINTHEXBYTES_F_UPPER) ? s_szHexDigitsLower : s_szHexDigitsUpper; + uint8_t const *pb = (uint8_t const *)pv; while (cb-- > 0) { - static char const s_szHexDigits[17] = "0123456789abcdef"; uint8_t b = *pb++; - *pszBuf++ = s_szHexDigits[b >> 4]; - *pszBuf++ = s_szHexDigits[b & 0xf]; + *pszBuf++ = pszHexDigits[b >> 4]; + *pszBuf++ = pszHexDigits[b & 0xf]; } *pszBuf = '\0'; return VINF_SUCCESS; diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Runtime/common/string/RTUtf16CatAscii.cpp virtualbox-4.1.44-dfsg/src/VBox/Runtime/common/string/RTUtf16CatAscii.cpp --- virtualbox-4.1.12-dfsg/src/VBox/Runtime/common/string/RTUtf16CatAscii.cpp 1970-01-01 00:00:00.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Runtime/common/string/RTUtf16CatAscii.cpp 2015-11-11 15:09:03.000000000 +0000 @@ -0,0 +1,42 @@ +/* $Id: RTUtf16CatAscii.cpp $ */ +/** @file + * IPRT - RTUtf16CatAscii. + */ + +/* + * Copyright (C) 2010-2014 Oracle Corporation + * + * This file is part of VirtualBox Open Source Edition (OSE), as + * available from http://www.virtualbox.org. This file is free software; + * you can redistribute it and/or modify it under the terms of the GNU + * General Public License (GPL) as published by the Free Software + * Foundation, in version 2 as it comes in the "COPYING" file of the + * VirtualBox OSE distribution. VirtualBox OSE is distributed in the + * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind. + * + * The contents of this file may alternatively be used under the terms + * of the Common Development and Distribution License Version 1.0 + * (CDDL) only, as it comes in the "COPYING.CDDL" file of the + * VirtualBox OSE distribution, in which case the provisions of the + * CDDL are applicable instead of those of the GPL. + * + * You may elect to license modified versions of this file under the + * terms and conditions of either the GPL or the CDDL or both. + */ + + +/******************************************************************************* +* Header Files * +*******************************************************************************/ +#include +#include "internal/iprt.h" + + +RTDECL(int) RTUtf16CatAscii(PRTUTF16 pwszDst, size_t cwcDst, const char *pszSrc) +{ + PRTUTF16 pwszDst2 = (PRTUTF16)RTUtf16End(pwszDst, cwcDst); + AssertReturn(pwszDst2, VERR_INVALID_PARAMETER); + return RTUtf16CopyAscii(pwszDst2, cwcDst - (pwszDst2 - pwszDst), pszSrc); +} +RT_EXPORT_SYMBOL(RTUtf16CatAscii); + diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Runtime/common/string/RTUtf16Cat.cpp virtualbox-4.1.44-dfsg/src/VBox/Runtime/common/string/RTUtf16Cat.cpp --- virtualbox-4.1.12-dfsg/src/VBox/Runtime/common/string/RTUtf16Cat.cpp 1970-01-01 00:00:00.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Runtime/common/string/RTUtf16Cat.cpp 2015-11-11 15:09:03.000000000 +0000 @@ -0,0 +1,42 @@ +/* $Id: RTUtf16Cat.cpp $ */ +/** @file + * IPRT - RTUtf16Cat. + */ + +/* + * Copyright (C) 2010-2014 Oracle Corporation + * + * This file is part of VirtualBox Open Source Edition (OSE), as + * available from http://www.virtualbox.org. This file is free software; + * you can redistribute it and/or modify it under the terms of the GNU + * General Public License (GPL) as published by the Free Software + * Foundation, in version 2 as it comes in the "COPYING" file of the + * VirtualBox OSE distribution. VirtualBox OSE is distributed in the + * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind. + * + * The contents of this file may alternatively be used under the terms + * of the Common Development and Distribution License Version 1.0 + * (CDDL) only, as it comes in the "COPYING.CDDL" file of the + * VirtualBox OSE distribution, in which case the provisions of the + * CDDL are applicable instead of those of the GPL. + * + * You may elect to license modified versions of this file under the + * terms and conditions of either the GPL or the CDDL or both. + */ + + +/******************************************************************************* +* Header Files * +*******************************************************************************/ +#include +#include "internal/iprt.h" + + +RTDECL(int) RTUtf16Cat(PRTUTF16 pwszDst, size_t cwcDst, PCRTUTF16 pwszSrc) +{ + PRTUTF16 pwszDst2 = (PRTUTF16)RTUtf16End(pwszDst, cwcDst); + AssertReturn(pwszDst2, VERR_INVALID_PARAMETER); + return RTUtf16Copy(pwszDst2, cwcDst - (pwszDst2 - pwszDst), pwszSrc); +} +RT_EXPORT_SYMBOL(RTUtf16Cat); + diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Runtime/common/string/RTUtf16CmpAscii.cpp virtualbox-4.1.44-dfsg/src/VBox/Runtime/common/string/RTUtf16CmpAscii.cpp --- virtualbox-4.1.12-dfsg/src/VBox/Runtime/common/string/RTUtf16CmpAscii.cpp 1970-01-01 00:00:00.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Runtime/common/string/RTUtf16CmpAscii.cpp 2015-11-11 15:09:03.000000000 +0000 @@ -0,0 +1,50 @@ +/* $Id: RTUtf16CmpAscii.cpp $ */ +/** @file + * IPRT - RTUtf16CmpAscii. + */ + +/* + * Copyright (C) 2010-2014 Oracle Corporation + * + * This file is part of VirtualBox Open Source Edition (OSE), as + * available from http://www.virtualbox.org. This file is free software; + * you can redistribute it and/or modify it under the terms of the GNU + * General Public License (GPL) as published by the Free Software + * Foundation, in version 2 as it comes in the "COPYING" file of the + * VirtualBox OSE distribution. VirtualBox OSE is distributed in the + * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind. + * + * The contents of this file may alternatively be used under the terms + * of the Common Development and Distribution License Version 1.0 + * (CDDL) only, as it comes in the "COPYING.CDDL" file of the + * VirtualBox OSE distribution, in which case the provisions of the + * CDDL are applicable instead of those of the GPL. + * + * You may elect to license modified versions of this file under the + * terms and conditions of either the GPL or the CDDL or both. + */ + + +/******************************************************************************* +* Header Files * +*******************************************************************************/ +#include +#include "internal/iprt.h" + +#include + + +RTDECL(int) RTUtf16CmpAscii(PCRTUTF16 pwsz1, const char *psz2) +{ + for (;;) + { + RTUTF16 wc1 = *pwsz1++; + unsigned char uch2 = *psz2++; Assert(uch2 < 0x80); + if (wc1 != uch2) + return wc1 < uch2 ? -1 : 1; + if (!uch2) + return 0; + } +} +RT_EXPORT_SYMBOL(RTUtf16ICmpAscii); + diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Runtime/common/string/RTUtf16CopyAscii.cpp virtualbox-4.1.44-dfsg/src/VBox/Runtime/common/string/RTUtf16CopyAscii.cpp --- virtualbox-4.1.12-dfsg/src/VBox/Runtime/common/string/RTUtf16CopyAscii.cpp 1970-01-01 00:00:00.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Runtime/common/string/RTUtf16CopyAscii.cpp 2015-11-11 15:09:03.000000000 +0000 @@ -0,0 +1,70 @@ +/* $Id: RTUtf16CopyAscii.cpp $ */ +/** @file + * IPRT - RTUtf16CopyAscii. + */ + +/* + * Copyright (C) 2010-2014 Oracle Corporation + * + * This file is part of VirtualBox Open Source Edition (OSE), as + * available from http://www.virtualbox.org. This file is free software; + * you can redistribute it and/or modify it under the terms of the GNU + * General Public License (GPL) as published by the Free Software + * Foundation, in version 2 as it comes in the "COPYING" file of the + * VirtualBox OSE distribution. VirtualBox OSE is distributed in the + * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind. + * + * The contents of this file may alternatively be used under the terms + * of the Common Development and Distribution License Version 1.0 + * (CDDL) only, as it comes in the "COPYING.CDDL" file of the + * VirtualBox OSE distribution, in which case the provisions of the + * CDDL are applicable instead of those of the GPL. + * + * You may elect to license modified versions of this file under the + * terms and conditions of either the GPL or the CDDL or both. + */ + + +/******************************************************************************* +* Header Files * +*******************************************************************************/ +#include +#include "internal/iprt.h" + + +RTDECL(int) RTUtf16CopyAscii(PRTUTF16 pwszDst, size_t cwcDst, const char *pszSrc) +{ + int rc; + size_t cchSrc = strlen(pszSrc); + size_t cchCopy; + if (RT_LIKELY(cchSrc < cwcDst)) + { + rc = VINF_SUCCESS; + cchCopy = cchSrc; + } + else if (cwcDst != 0) + { + rc = VERR_BUFFER_OVERFLOW; + cchCopy = cwcDst - 1; + } + else + return VERR_BUFFER_OVERFLOW; + + pwszDst[cchCopy] = '\0'; + while (cchCopy-- > 0) + { + unsigned char ch = pszSrc[cchCopy]; + if (RT_LIKELY(ch < 0x80)) + pwszDst[cchCopy] = ch; + else + { + AssertMsgFailed(("ch=%#x\n", ch)); + pwszDst[cchCopy] = 0x7f; + if (rc == VINF_SUCCESS) + rc = VERR_OUT_OF_RANGE; + } + } + return rc; +} +RT_EXPORT_SYMBOL(RTUtf16CopyAscii); + diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Runtime/common/string/RTUtf16Copy.cpp virtualbox-4.1.44-dfsg/src/VBox/Runtime/common/string/RTUtf16Copy.cpp --- virtualbox-4.1.12-dfsg/src/VBox/Runtime/common/string/RTUtf16Copy.cpp 1970-01-01 00:00:00.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Runtime/common/string/RTUtf16Copy.cpp 2015-11-11 15:09:03.000000000 +0000 @@ -0,0 +1,52 @@ +/* $Id: RTUtf16Copy.cpp $ */ +/** @file + * IPRT - RTUtf16Copy. + */ + +/* + * Copyright (C) 2010-2014 Oracle Corporation + * + * This file is part of VirtualBox Open Source Edition (OSE), as + * available from http://www.virtualbox.org. This file is free software; + * you can redistribute it and/or modify it under the terms of the GNU + * General Public License (GPL) as published by the Free Software + * Foundation, in version 2 as it comes in the "COPYING" file of the + * VirtualBox OSE distribution. VirtualBox OSE is distributed in the + * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind. + * + * The contents of this file may alternatively be used under the terms + * of the Common Development and Distribution License Version 1.0 + * (CDDL) only, as it comes in the "COPYING.CDDL" file of the + * VirtualBox OSE distribution, in which case the provisions of the + * CDDL are applicable instead of those of the GPL. + * + * You may elect to license modified versions of this file under the + * terms and conditions of either the GPL or the CDDL or both. + */ + + +/******************************************************************************* +* Header Files * +*******************************************************************************/ +#include +#include "internal/iprt.h" + + +RTDECL(int) RTUtf16Copy(PRTUTF16 pwszDst, size_t cwcDst, PCRTUTF16 pwszSrc) +{ + size_t wcwSrc = RTUtf16Len(pwszSrc); + if (RT_LIKELY(wcwSrc < cwcDst)) + { + memcpy(pwszDst, pwszSrc, wcwSrc + 1); + return VINF_SUCCESS; + } + + if (cwcDst != 0) + { + memcpy(pwszDst, pwszSrc, cwcDst - 1); + pwszDst[cwcDst - 1] = '\0'; + } + return VERR_BUFFER_OVERFLOW; +} +RT_EXPORT_SYMBOL(RTUtf16Copy); + diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Runtime/common/string/RTUtf16End.cpp virtualbox-4.1.44-dfsg/src/VBox/Runtime/common/string/RTUtf16End.cpp --- virtualbox-4.1.12-dfsg/src/VBox/Runtime/common/string/RTUtf16End.cpp 1970-01-01 00:00:00.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Runtime/common/string/RTUtf16End.cpp 2015-11-11 15:09:03.000000000 +0000 @@ -0,0 +1,46 @@ +/* $Id: RTUtf16End.cpp $ */ +/** @file + * IPRT - RTUtf16End. + */ + +/* + * Copyright (C) 2014 Oracle Corporation + * + * This file is part of VirtualBox Open Source Edition (OSE), as + * available from http://www.virtualbox.org. This file is free software; + * you can redistribute it and/or modify it under the terms of the GNU + * General Public License (GPL) as published by the Free Software + * Foundation, in version 2 as it comes in the "COPYING" file of the + * VirtualBox OSE distribution. VirtualBox OSE is distributed in the + * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind. + * + * The contents of this file may alternatively be used under the terms + * of the Common Development and Distribution License Version 1.0 + * (CDDL) only, as it comes in the "COPYING.CDDL" file of the + * VirtualBox OSE distribution, in which case the provisions of the + * CDDL are applicable instead of those of the GPL. + * + * You may elect to license modified versions of this file under the + * terms and conditions of either the GPL or the CDDL or both. + */ + + +/******************************************************************************* +* Header Files * +*******************************************************************************/ +#include +#include "internal/iprt.h" + + +RTDECL(PCRTUTF16) RTUtf16End(PCRTUTF16 pwszString, size_t cwcMax) +{ + while (cwcMax-- > 0) + { + if (!*pwszString) + return pwszString; + pwszString++; + } + return NULL; +} +RT_EXPORT_SYMBOL(RTUtf16Cat); + diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Runtime/common/string/RTUtf16ICmpAscii.cpp virtualbox-4.1.44-dfsg/src/VBox/Runtime/common/string/RTUtf16ICmpAscii.cpp --- virtualbox-4.1.12-dfsg/src/VBox/Runtime/common/string/RTUtf16ICmpAscii.cpp 1970-01-01 00:00:00.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Runtime/common/string/RTUtf16ICmpAscii.cpp 2015-11-11 15:09:03.000000000 +0000 @@ -0,0 +1,56 @@ +/* $Id: RTUtf16ICmpAscii.cpp $ */ +/** @file + * IPRT - RTUtf16ICmpAscii. + */ + +/* + * Copyright (C) 2010-2014 Oracle Corporation + * + * This file is part of VirtualBox Open Source Edition (OSE), as + * available from http://www.virtualbox.org. This file is free software; + * you can redistribute it and/or modify it under the terms of the GNU + * General Public License (GPL) as published by the Free Software + * Foundation, in version 2 as it comes in the "COPYING" file of the + * VirtualBox OSE distribution. VirtualBox OSE is distributed in the + * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind. + * + * The contents of this file may alternatively be used under the terms + * of the Common Development and Distribution License Version 1.0 + * (CDDL) only, as it comes in the "COPYING.CDDL" file of the + * VirtualBox OSE distribution, in which case the provisions of the + * CDDL are applicable instead of those of the GPL. + * + * You may elect to license modified versions of this file under the + * terms and conditions of either the GPL or the CDDL or both. + */ + + +/******************************************************************************* +* Header Files * +*******************************************************************************/ +#include +#include "internal/iprt.h" + +#include +#include + + +RTDECL(int) RTUtf16ICmpAscii(PCRTUTF16 pwsz1, const char *psz2) +{ + for (;;) + { + RTUTF16 wc1 = *pwsz1++; + unsigned char uch2 = *psz2++; Assert(uch2 < 0x80); + if (wc1 != uch2) + { + if (wc1 >= 0x80) + return 1; + if (RT_C_TO_LOWER(wc1) != RT_C_TO_LOWER(uch2)) + return wc1 < uch2 ? -1 : 1; + } + if (!uch2) + return 0; + } +} +RT_EXPORT_SYMBOL(RTUtf16ICmpAscii); + diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Runtime/common/string/RTUtf16NLen.cpp virtualbox-4.1.44-dfsg/src/VBox/Runtime/common/string/RTUtf16NLen.cpp --- virtualbox-4.1.12-dfsg/src/VBox/Runtime/common/string/RTUtf16NLen.cpp 1970-01-01 00:00:00.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Runtime/common/string/RTUtf16NLen.cpp 2015-11-11 15:09:03.000000000 +0000 @@ -0,0 +1,43 @@ +/* $Id: RTUtf16NLen.cpp $ */ +/** @file + * IPRT - RTUtf16NLen. + */ + +/* + * Copyright (C) 2008-2014 Oracle Corporation + * + * This file is part of VirtualBox Open Source Edition (OSE), as + * available from http://www.virtualbox.org. This file is free software; + * you can redistribute it and/or modify it under the terms of the GNU + * General Public License (GPL) as published by the Free Software + * Foundation, in version 2 as it comes in the "COPYING" file of the + * VirtualBox OSE distribution. VirtualBox OSE is distributed in the + * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind. + * + * The contents of this file may alternatively be used under the terms + * of the Common Development and Distribution License Version 1.0 + * (CDDL) only, as it comes in the "COPYING.CDDL" file of the + * VirtualBox OSE distribution, in which case the provisions of the + * CDDL are applicable instead of those of the GPL. + * + * You may elect to license modified versions of this file under the + * terms and conditions of either the GPL or the CDDL or both. + */ + + +/******************************************************************************* +* Header Files * +*******************************************************************************/ +#include +#include "internal/iprt.h" + + +RTDECL(size_t) RTUtf16NLen(PCRTUTF16 pwszString, size_t cwcMax) +{ + PCRTUTF16 pwszStart = pwszString; + while (cwcMax-- > 0 && pwszString != '\0') + pwszString++; + return pwszString - pwszStart; +} +RT_EXPORT_SYMBOL(RTUtf16NLen); + diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Runtime/common/string/RTUtf16NLenEx.cpp virtualbox-4.1.44-dfsg/src/VBox/Runtime/common/string/RTUtf16NLenEx.cpp --- virtualbox-4.1.12-dfsg/src/VBox/Runtime/common/string/RTUtf16NLenEx.cpp 1970-01-01 00:00:00.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Runtime/common/string/RTUtf16NLenEx.cpp 2015-11-11 15:09:03.000000000 +0000 @@ -0,0 +1,46 @@ +/* $Id: RTUtf16NLenEx.cpp $ */ +/** @file + * IPRT - RTUtf16NLenEx. + */ + +/* + * Copyright (C) 2008-2014 Oracle Corporation + * + * This file is part of VirtualBox Open Source Edition (OSE), as + * available from http://www.virtualbox.org. This file is free software; + * you can redistribute it and/or modify it under the terms of the GNU + * General Public License (GPL) as published by the Free Software + * Foundation, in version 2 as it comes in the "COPYING" file of the + * VirtualBox OSE distribution. VirtualBox OSE is distributed in the + * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind. + * + * The contents of this file may alternatively be used under the terms + * of the Common Development and Distribution License Version 1.0 + * (CDDL) only, as it comes in the "COPYING.CDDL" file of the + * VirtualBox OSE distribution, in which case the provisions of the + * CDDL are applicable instead of those of the GPL. + * + * You may elect to license modified versions of this file under the + * terms and conditions of either the GPL or the CDDL or both. + */ + +/******************************************************************************* +* Header Files * +*******************************************************************************/ +#include +#include "internal/iprt.h" + + +RTDECL(int) RTUtf16NLenEx(PCRTUTF16 pwszString, size_t cwcMax, size_t *pcwc) +{ + PCRTUTF16 pwcEnd = RTUtf16End(pwszString, cwcMax); + if (!pwcEnd) + { + *pcwc = cwcMax; + return VERR_BUFFER_OVERFLOW; + } + *pcwc = pwcEnd - pwszString; + return VINF_SUCCESS; +} +RT_EXPORT_SYMBOL(RTUtf16NLenEx); + diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Runtime/common/string/RTUtf16PrintHexBytes.cpp virtualbox-4.1.44-dfsg/src/VBox/Runtime/common/string/RTUtf16PrintHexBytes.cpp --- virtualbox-4.1.12-dfsg/src/VBox/Runtime/common/string/RTUtf16PrintHexBytes.cpp 1970-01-01 00:00:00.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Runtime/common/string/RTUtf16PrintHexBytes.cpp 2015-11-11 15:09:03.000000000 +0000 @@ -0,0 +1,61 @@ +/* $Id: RTUtf16PrintHexBytes.cpp $ */ +/** @file + * IPRT - RTUtf16PrintHexBytes. + */ + +/* + * Copyright (C) 2009-2014 Oracle Corporation + * + * This file is part of VirtualBox Open Source Edition (OSE), as + * available from http://www.virtualbox.org. This file is free software; + * you can redistribute it and/or modify it under the terms of the GNU + * General Public License (GPL) as published by the Free Software + * Foundation, in version 2 as it comes in the "COPYING" file of the + * VirtualBox OSE distribution. VirtualBox OSE is distributed in the + * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind. + * + * The contents of this file may alternatively be used under the terms + * of the Common Development and Distribution License Version 1.0 + * (CDDL) only, as it comes in the "COPYING.CDDL" file of the + * VirtualBox OSE distribution, in which case the provisions of the + * CDDL are applicable instead of those of the GPL. + * + * You may elect to license modified versions of this file under the + * terms and conditions of either the GPL or the CDDL or both. + */ + + +/******************************************************************************* +* Header Files * +*******************************************************************************/ +#include "internal/iprt.h" +#include + +#include +#include + + +RTDECL(int) RTUtf16PrintHexBytes(PRTUTF16 pwszBuf, size_t cwcBuf, void const *pv, size_t cb, uint32_t fFlags) +{ + AssertReturn(!(fFlags & ~RTSTRPRINTHEXBYTES_F_UPPER), VERR_INVALID_PARAMETER); + AssertPtrReturn(pwszBuf, VERR_INVALID_POINTER); + AssertReturn(cb * 2 >= cb, VERR_BUFFER_OVERFLOW); + AssertReturn(cwcBuf >= cb * 2 + 1, VERR_BUFFER_OVERFLOW); + if (cb) + AssertPtrReturn(pv, VERR_INVALID_POINTER); + + static char const s_szHexDigitsLower[17] = "0123456789abcdef"; + static char const s_szHexDigitsUpper[17] = "0123456789ABCDEF"; + const char *pszHexDigits = !(fFlags & RTSTRPRINTHEXBYTES_F_UPPER) ? s_szHexDigitsLower : s_szHexDigitsUpper; + + uint8_t const *pb = (uint8_t const *)pv; + while (cb-- > 0) + { + uint8_t b = *pb++; + *pwszBuf++ = pszHexDigits[b >> 4]; + *pwszBuf++ = pszHexDigits[b & 0xf]; + } + *pwszBuf = '\0'; + return VINF_SUCCESS; +} + diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Runtime/common/string/strformat.cpp virtualbox-4.1.44-dfsg/src/VBox/Runtime/common/string/strformat.cpp --- virtualbox-4.1.12-dfsg/src/VBox/Runtime/common/string/strformat.cpp 2012-04-02 13:29:01.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Runtime/common/string/strformat.cpp 2015-11-11 15:09:04.000000000 +0000 @@ -572,7 +572,8 @@ break; } -#ifdef IN_RING3 +#if defined(IN_RING3) && !defined(IN_SUP_HARDENED_R3) + case 'S': /* Unicode string as current code page. */ { if (chArgSize == 'l') diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Runtime/common/string/strformatrt.cpp virtualbox-4.1.44-dfsg/src/VBox/Runtime/common/string/strformatrt.cpp --- virtualbox-4.1.12-dfsg/src/VBox/Runtime/common/string/strformatrt.cpp 2012-04-02 13:29:01.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Runtime/common/string/strformatrt.cpp 2015-11-11 15:09:04.000000000 +0000 @@ -643,7 +643,7 @@ case 'x': { uint8_t *pu8 = va_arg(*pArgs, uint8_t *); - if (cchPrecision <= 0) + if (cchPrecision < 0) cchPrecision = 16; if (pu8) { diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Runtime/common/string/strncmp.asm virtualbox-4.1.44-dfsg/src/VBox/Runtime/common/string/strncmp.asm --- virtualbox-4.1.12-dfsg/src/VBox/Runtime/common/string/strncmp.asm 1970-01-01 00:00:00.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Runtime/common/string/strncmp.asm 2015-11-11 15:09:04.000000000 +0000 @@ -0,0 +1,121 @@ +; $Id: strncmp.asm $ +;; @file +; IPRT - No-CRT strncmp - AMD64 & X86. +; + +; +; Copyright (C) 2006-2014 Oracle Corporation +; +; This file is part of VirtualBox Open Source Edition (OSE), as +; available from http://www.virtualbox.org. This file is free software; +; you can redistribute it and/or modify it under the terms of the GNU +; General Public License (GPL) as published by the Free Software +; Foundation, in version 2 as it comes in the "COPYING" file of the +; VirtualBox OSE distribution. VirtualBox OSE is distributed in the +; hope that it will be useful, but WITHOUT ANY WARRANTY of any kind. +; +; The contents of this file may alternatively be used under the terms +; of the Common Development and Distribution License Version 1.0 +; (CDDL) only, as it comes in the "COPYING.CDDL" file of the +; VirtualBox OSE distribution, in which case the provisions of the +; CDDL are applicable instead of those of the GPL. +; +; You may elect to license modified versions of this file under the +; terms and conditions of either the GPL or the CDDL or both. +; + +%include "iprt/asmdefs.mac" + +BEGINCODE + +;; +; @param psz1 gcc: rdi msc: rcx x86:[esp+4] +; @param psz2 gcc: rsi msc: rdx x86:[esp+8] +; @param cch gcc: rdx msc: r8 x86:[esp+12] +RT_NOCRT_BEGINPROC strncmp + ; input +%ifdef RT_ARCH_AMD64 + %ifdef ASM_CALL64_MSC + %define psz1 rcx + %define psz2 rdx + %define cch r8 + %else + %define psz1 rdi + %define psz2 rsi + %define cch rdx + %endif +%elifdef RT_ARCH_X86 + mov ecx, [esp + 4] + mov edx, [esp + 8] + push ebx + mov ebx, [esp + 12+4] + %define psz1 ecx + %define psz2 edx + %define cch ebx +%else + %error "Unknown arch" +%endif + + ; + ; The loop. + ; + test cch, cch + jz .equal +.next: + mov al, [psz1] + mov ah, [psz2] + cmp al, ah + jne .not_equal + test al, al + jz .equal + dec cch + jz .equal + + mov al, [psz1 + 1] + mov ah, [psz2 + 1] + cmp al, ah + jne .not_equal + test al, al + jz .equal + dec cch + jz .equal + + mov al, [psz1 + 2] + mov ah, [psz2 + 2] + cmp al, ah + jne .not_equal + test al, al + jz .equal + dec cch + jz .equal + + mov al, [psz1 + 3] + mov ah, [psz2 + 3] + cmp al, ah + jne .not_equal + test al, al + jz .equal + dec cch + jz .equal + + add psz1, 4 + add psz2, 4 + jmp .next + +.equal: + xor eax, eax +%ifdef RT_ARCH_X86 + pop ebx +%endif + ret + +.not_equal: + movzx ecx, ah + and eax, 0ffh + sub eax, ecx +%ifdef RT_ARCH_X86 + pop ebx +%endif + ret +ENDPROC RT_NOCRT(strncmp) + diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Runtime/common/string/strncpy.asm virtualbox-4.1.44-dfsg/src/VBox/Runtime/common/string/strncpy.asm --- virtualbox-4.1.12-dfsg/src/VBox/Runtime/common/string/strncpy.asm 1970-01-01 00:00:00.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Runtime/common/string/strncpy.asm 2015-11-11 15:09:04.000000000 +0000 @@ -0,0 +1,120 @@ +; $Id: strncpy.asm $ +;; @file +; IPRT - No-CRT strncpy - AMD64 & X86. +; + +; +; Copyright (C) 2006-2012 Oracle Corporation +; +; This file is part of VirtualBox Open Source Edition (OSE), as +; available from http://www.virtualbox.org. This file is free software; +; you can redistribute it and/or modify it under the terms of the GNU +; General Public License (GPL) as published by the Free Software +; Foundation, in version 2 as it comes in the "COPYING" file of the +; VirtualBox OSE distribution. VirtualBox OSE is distributed in the +; hope that it will be useful, but WITHOUT ANY WARRANTY of any kind. +; +; The contents of this file may alternatively be used under the terms +; of the Common Development and Distribution License Version 1.0 +; (CDDL) only, as it comes in the "COPYING.CDDL" file of the +; VirtualBox OSE distribution, in which case the provisions of the +; CDDL are applicable instead of those of the GPL. +; +; You may elect to license modified versions of this file under the +; terms and conditions of either the GPL or the CDDL or both. +; + +%include "iprt/asmdefs.mac" + +BEGINCODE + +;; +; @param pszDst gcc: rdi msc: rcx x86:[esp+4] +; @param pszSrc gcc: rsi msc: rdx x86:[esp+8] +; @param cbMax gcc: rdx msc: r8 x86:[esp+12] +RT_NOCRT_BEGINPROC strncpy + ; input +%ifdef RT_ARCH_AMD64 + %ifdef ASM_CALL64_MSC + %define pszDst rcx + %define pszSrc rdx + %define cbMax r8 + %else + %define pszDst rdi + %define pszSrc rsi + %define cbMax rdx + %endif + mov r9, pszDst +%else + mov ecx, [esp + 4] + mov edx, [esp + 8] + push ebx + mov ebx, [esp + 12 + 4] + %define pszDst ecx + %define pszSrc edx + %define cbMax ebx + push pszDst +%endif + + ; + ; The rolled out loop. + ; +.next: + cmp cbMax, 4 + jb .simple_intro + + mov al, [pszSrc] + mov [pszDst], al + test al, al + jz .done + + mov al, [pszSrc + 1] + mov [pszDst + 1], al + test al, al + jz .done + + mov al, [pszSrc + 2] + mov [pszDst + 2], al + test al, al + jz .done + + mov al, [pszSrc + 3] + mov [pszDst + 3], al + test al, al + jz .done + + add pszDst, 4 + add pszSrc, 4 + sub cbMax, 4 + jmp .next + + ; + ; Char by char. + ; +.simple_intro: + test cbMax, cbMax + jz .done + +.simple_next: + mov al, [pszSrc] + mov [pszDst], al + test al, al + jz .done + + dec cbMax + jz .done + + inc pszSrc + inc pszDst + jmp .simple_next + +.done: +%ifdef RT_ARCH_AMD64 + mov rax, r9 +%else + pop ebx + pop eax +%endif + ret +ENDPROC RT_NOCRT(strncpy) + diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Runtime/common/string/strstr.cpp virtualbox-4.1.44-dfsg/src/VBox/Runtime/common/string/strstr.cpp --- virtualbox-4.1.12-dfsg/src/VBox/Runtime/common/string/strstr.cpp 1970-01-01 00:00:00.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Runtime/common/string/strstr.cpp 2015-11-11 15:09:04.000000000 +0000 @@ -0,0 +1,67 @@ +/* $Id: strstr.cpp $ */ +/** @file + * IPRT - CRT Strings, strstr(). + */ + +/* + * Copyright (C) 2006-2014 Oracle Corporation + * + * This file is part of VirtualBox Open Source Edition (OSE), as + * available from http://www.virtualbox.org. This file is free software; + * you can redistribute it and/or modify it under the terms of the GNU + * General Public License (GPL) as published by the Free Software + * Foundation, in version 2 as it comes in the "COPYING" file of the + * VirtualBox OSE distribution. VirtualBox OSE is distributed in the + * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind. + * + * The contents of this file may alternatively be used under the terms + * of the Common Development and Distribution License Version 1.0 + * (CDDL) only, as it comes in the "COPYING.CDDL" file of the + * VirtualBox OSE distribution, in which case the provisions of the + * CDDL are applicable instead of those of the GPL. + * + * You may elect to license modified versions of this file under the + * terms and conditions of either the GPL or the CDDL or both. + */ + + +/******************************************************************************* +* Header Files * +*******************************************************************************/ +#include + + +/** + * Find the first occurence of @a pszNeedle in @a pszHaystack. + * + * @returns Pointer to the needle position within the haystack. NULL if needle + * not found + * @param pszHaystack What to search within. + * @param pszNeedle What to search for. + */ +#ifdef _MSC_VER +# if _MSC_VER >= 1400 +__checkReturn char *__cdecl strstr(__in_z const char *pszHaystack, __in_z const char *pszNeedle) +# else +char *strstr(const char *pszHaystack, const char *pszNeedle) +# endif +#else +char *strstr(const char *pszHaystack, const char *pszNeedle) +#endif +{ + size_t const cchNeedle = strlen(pszNeedle); + char const chFirst = *pszNeedle; + char ch; + + while ((ch = *pszHaystack) != '\0') + { + if ( ch == chFirst + && strncmp(pszHaystack, pszNeedle, cchNeedle) == 0) + return (char *)pszHaystack; + pszHaystack++; + } + + return NULL; +} + + diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Runtime/common/string/unidata.cpp virtualbox-4.1.44-dfsg/src/VBox/Runtime/common/string/unidata.cpp --- virtualbox-4.1.12-dfsg/src/VBox/Runtime/common/string/unidata.cpp 2012-04-02 13:29:01.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Runtime/common/string/unidata.cpp 1970-01-01 00:00:00.000000000 +0000 @@ -1,29592 +0,0 @@ -/* $Id: unidata.cpp $ */ -/** @file - * IPRT - Unicode Tables - * - * Automatically Generated by G:/coding/vbox/tree/out/win32/debug/obj/src/VBox/Runtime/uniread/uniread.exe (Jan 30 2006 04:37:06) - */ - -/* - * Copyright (C) 2006-2007 Oracle Corporation - * - * This file is part of VirtualBox Open Source Edition (OSE), as - * available from http://www.virtualbox.org. This file is free software; - * you can redistribute it and/or modify it under the terms of the GNU - * General Public License (GPL) as published by the Free Software - * Foundation, in version 2 as it comes in the "COPYING" file of the - * VirtualBox OSE distribution. VirtualBox OSE is distributed in the - * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind. - * - * The contents of this file may alternatively be used under the terms - * of the Common Development and Distribution License Version 1.0 - * (CDDL) only, as it comes in the "COPYING.CDDL" file of the - * VirtualBox OSE distribution, in which case the provisions of the - * CDDL are applicable instead of those of the GPL. - * - * You may elect to license modified versions of this file under the - * terms and conditions of either the GPL or the CDDL or both. - */ - -#include - -static const uint8_t g_afRTUniFlags0x000000[] = -{ - 0, /* U+000000: */ - 0, /* U+000001: */ - 0, /* U+000002: */ - 0, /* U+000003: */ - 0, /* U+000004: */ - 0, /* U+000005: */ - 0, /* U+000006: */ - 0, /* U+000007: */ - 0, /* U+000008: */ - RTUNI_WSPACE, /* U+000009: */ - RTUNI_WSPACE, /* U+00000a: */ - RTUNI_WSPACE, /* U+00000b: */ - RTUNI_WSPACE, /* U+00000c: */ - RTUNI_WSPACE, /* U+00000d: */ - 0, /* U+00000e: */ - 0, /* U+00000f: */ - 0, /* U+000010: */ - 0, /* U+000011: */ - 0, /* U+000012: */ - 0, /* U+000013: */ - 0, /* U+000014: */ - 0, /* U+000015: */ - 0, /* U+000016: */ - 0, /* U+000017: */ - 0, /* U+000018: */ - 0, /* U+000019: */ - 0, /* U+00001a: */ - 0, /* U+00001b: */ - 0, /* U+00001c: */ - 0, /* U+00001d: */ - 0, /* U+00001e: */ - 0, /* U+00001f: */ - RTUNI_WSPACE, /* U+000020: SPACE*/ - 0, /* U+000021: EXCLAMATION MARK*/ - 0, /* U+000022: QUOTATION MARK*/ - 0, /* U+000023: NUMBER SIGN*/ - 0, /* U+000024: DOLLAR SIGN*/ - 0, /* U+000025: PERCENT SIGN*/ - 0, /* U+000026: AMPERSAND*/ - 0, /* U+000027: APOSTROPHE*/ - 0, /* U+000028: LEFT PARENTHESIS*/ - 0, /* U+000029: RIGHT PARENTHESIS*/ - 0, /* U+00002a: ASTERISK*/ - 0, /* U+00002b: PLUS SIGN*/ - 0, /* U+00002c: COMMA*/ - 0, /* U+00002d: HYPHEN-MINUS*/ - 0, /* U+00002e: FULL STOP*/ - 0, /* U+00002f: SOLIDUS*/ - RTUNI_XDIGIT | RTUNI_DDIGIT, /* U+000030: DIGIT ZERO*/ - RTUNI_XDIGIT | RTUNI_DDIGIT, /* U+000031: DIGIT ONE*/ - RTUNI_XDIGIT | RTUNI_DDIGIT, /* U+000032: DIGIT TWO*/ - RTUNI_XDIGIT | RTUNI_DDIGIT, /* U+000033: DIGIT THREE*/ - RTUNI_XDIGIT | RTUNI_DDIGIT, /* U+000034: DIGIT FOUR*/ - RTUNI_XDIGIT | RTUNI_DDIGIT, /* U+000035: DIGIT FIVE*/ - RTUNI_XDIGIT | RTUNI_DDIGIT, /* U+000036: DIGIT SIX*/ - RTUNI_XDIGIT | RTUNI_DDIGIT, /* U+000037: DIGIT SEVEN*/ - RTUNI_XDIGIT | RTUNI_DDIGIT, /* U+000038: DIGIT EIGHT*/ - RTUNI_XDIGIT | RTUNI_DDIGIT, /* U+000039: DIGIT NINE*/ - 0, /* U+00003a: COLON*/ - 0, /* U+00003b: SEMICOLON*/ - 0, /* U+00003c: LESS-THAN SIGN*/ - 0, /* U+00003d: EQUALS SIGN*/ - 0, /* U+00003e: GREATER-THAN SIGN*/ - 0, /* U+00003f: QUESTION MARK*/ - 0, /* U+000040: COMMERCIAL AT*/ - RTUNI_ALPHA | RTUNI_XDIGIT | RTUNI_UPPER, /* U+000041: LATIN CAPITAL LETTER A*/ - RTUNI_ALPHA | RTUNI_XDIGIT | RTUNI_UPPER, /* U+000042: LATIN CAPITAL LETTER B*/ - RTUNI_ALPHA | RTUNI_XDIGIT | RTUNI_UPPER, /* U+000043: LATIN CAPITAL LETTER C*/ - RTUNI_ALPHA | RTUNI_XDIGIT | RTUNI_UPPER, /* U+000044: LATIN CAPITAL LETTER D*/ - RTUNI_ALPHA | RTUNI_XDIGIT | RTUNI_UPPER, /* U+000045: LATIN CAPITAL LETTER E*/ - RTUNI_ALPHA | RTUNI_XDIGIT | RTUNI_UPPER, /* U+000046: LATIN CAPITAL LETTER F*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+000047: LATIN CAPITAL LETTER G*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+000048: LATIN CAPITAL LETTER H*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+000049: LATIN CAPITAL LETTER I*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+00004a: LATIN CAPITAL LETTER J*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+00004b: LATIN CAPITAL LETTER K*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+00004c: LATIN CAPITAL LETTER L*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+00004d: LATIN CAPITAL LETTER M*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+00004e: LATIN CAPITAL LETTER N*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+00004f: LATIN CAPITAL LETTER O*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+000050: LATIN CAPITAL LETTER P*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+000051: LATIN CAPITAL LETTER Q*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+000052: LATIN CAPITAL LETTER R*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+000053: LATIN CAPITAL LETTER S*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+000054: LATIN CAPITAL LETTER T*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+000055: LATIN CAPITAL LETTER U*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+000056: LATIN CAPITAL LETTER V*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+000057: LATIN CAPITAL LETTER W*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+000058: LATIN CAPITAL LETTER X*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+000059: LATIN CAPITAL LETTER Y*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+00005a: LATIN CAPITAL LETTER Z*/ - 0, /* U+00005b: LEFT SQUARE BRACKET*/ - 0, /* U+00005c: REVERSE SOLIDUS*/ - 0, /* U+00005d: RIGHT SQUARE BRACKET*/ - 0, /* U+00005e: CIRCUMFLEX ACCENT*/ - 0, /* U+00005f: LOW LINE*/ - 0, /* U+000060: GRAVE ACCENT*/ - RTUNI_ALPHA | RTUNI_XDIGIT | RTUNI_LOWER, /* U+000061: LATIN SMALL LETTER A*/ - RTUNI_ALPHA | RTUNI_XDIGIT | RTUNI_LOWER, /* U+000062: LATIN SMALL LETTER B*/ - RTUNI_ALPHA | RTUNI_XDIGIT | RTUNI_LOWER, /* U+000063: LATIN SMALL LETTER C*/ - RTUNI_ALPHA | RTUNI_XDIGIT | RTUNI_LOWER, /* U+000064: LATIN SMALL LETTER D*/ - RTUNI_ALPHA | RTUNI_XDIGIT | RTUNI_LOWER, /* U+000065: LATIN SMALL LETTER E*/ - RTUNI_ALPHA | RTUNI_XDIGIT | RTUNI_LOWER, /* U+000066: LATIN SMALL LETTER F*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+000067: LATIN SMALL LETTER G*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+000068: LATIN SMALL LETTER H*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+000069: LATIN SMALL LETTER I*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+00006a: LATIN SMALL LETTER J*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+00006b: LATIN SMALL LETTER K*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+00006c: LATIN SMALL LETTER L*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+00006d: LATIN SMALL LETTER M*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+00006e: LATIN SMALL LETTER N*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+00006f: LATIN SMALL LETTER O*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+000070: LATIN SMALL LETTER P*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+000071: LATIN SMALL LETTER Q*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+000072: LATIN SMALL LETTER R*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+000073: LATIN SMALL LETTER S*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+000074: LATIN SMALL LETTER T*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+000075: LATIN SMALL LETTER U*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+000076: LATIN SMALL LETTER V*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+000077: LATIN SMALL LETTER W*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+000078: LATIN SMALL LETTER X*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+000079: LATIN SMALL LETTER Y*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+00007a: LATIN SMALL LETTER Z*/ - 0, /* U+00007b: LEFT CURLY BRACKET*/ - 0, /* U+00007c: VERTICAL LINE*/ - 0, /* U+00007d: RIGHT CURLY BRACKET*/ - 0, /* U+00007e: TILDE*/ - 0, /* U+00007f: */ - 0, /* U+000080: */ - 0, /* U+000081: */ - 0, /* U+000082: */ - 0, /* U+000083: */ - 0, /* U+000084: */ - RTUNI_WSPACE, /* U+000085: */ - 0, /* U+000086: */ - 0, /* U+000087: */ - 0, /* U+000088: */ - 0, /* U+000089: */ - 0, /* U+00008a: */ - 0, /* U+00008b: */ - 0, /* U+00008c: */ - 0, /* U+00008d: */ - 0, /* U+00008e: */ - 0, /* U+00008f: */ - 0, /* U+000090: */ - 0, /* U+000091: */ - 0, /* U+000092: */ - 0, /* U+000093: */ - 0, /* U+000094: */ - 0, /* U+000095: */ - 0, /* U+000096: */ - 0, /* U+000097: */ - 0, /* U+000098: */ - 0, /* U+000099: */ - 0, /* U+00009a: */ - 0, /* U+00009b: */ - 0, /* U+00009c: */ - 0, /* U+00009d: */ - 0, /* U+00009e: */ - 0, /* U+00009f: */ - RTUNI_WSPACE, /* U+0000a0: NO-BREAK SPACE*/ - 0, /* U+0000a1: INVERTED EXCLAMATION MARK*/ - 0, /* U+0000a2: CENT SIGN*/ - 0, /* U+0000a3: POUND SIGN*/ - 0, /* U+0000a4: CURRENCY SIGN*/ - 0, /* U+0000a5: YEN SIGN*/ - 0, /* U+0000a6: BROKEN BAR*/ - 0, /* U+0000a7: SECTION SIGN*/ - 0, /* U+0000a8: DIAERESIS*/ - 0, /* U+0000a9: COPYRIGHT SIGN*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+0000aa: FEMININE ORDINAL INDICATOR*/ - 0, /* U+0000ab: LEFT-POINTING DOUBLE ANGLE QUOTATION MARK*/ - 0, /* U+0000ac: NOT SIGN*/ - 0, /* U+0000ad: SOFT HYPHEN*/ - 0, /* U+0000ae: REGISTERED SIGN*/ - 0, /* U+0000af: MACRON*/ - 0, /* U+0000b0: DEGREE SIGN*/ - 0, /* U+0000b1: PLUS-MINUS SIGN*/ - 0, /* U+0000b2: SUPERSCRIPT TWO*/ - 0, /* U+0000b3: SUPERSCRIPT THREE*/ - 0, /* U+0000b4: ACUTE ACCENT*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+0000b5: MICRO SIGN*/ - 0, /* U+0000b6: PILCROW SIGN*/ - 0, /* U+0000b7: MIDDLE DOT*/ - 0, /* U+0000b8: CEDILLA*/ - 0, /* U+0000b9: SUPERSCRIPT ONE*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+0000ba: MASCULINE ORDINAL INDICATOR*/ - 0, /* U+0000bb: RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK*/ - 0, /* U+0000bc: VULGAR FRACTION ONE QUARTER*/ - 0, /* U+0000bd: VULGAR FRACTION ONE HALF*/ - 0, /* U+0000be: VULGAR FRACTION THREE QUARTERS*/ - 0, /* U+0000bf: INVERTED QUESTION MARK*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+0000c0: LATIN CAPITAL LETTER A WITH GRAVE*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+0000c1: LATIN CAPITAL LETTER A WITH ACUTE*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+0000c2: LATIN CAPITAL LETTER A WITH CIRCUMFLEX*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+0000c3: LATIN CAPITAL LETTER A WITH TILDE*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+0000c4: LATIN CAPITAL LETTER A WITH DIAERESIS*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+0000c5: LATIN CAPITAL LETTER A WITH RING ABOVE*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+0000c6: LATIN CAPITAL LETTER AE*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+0000c7: LATIN CAPITAL LETTER C WITH CEDILLA*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+0000c8: LATIN CAPITAL LETTER E WITH GRAVE*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+0000c9: LATIN CAPITAL LETTER E WITH ACUTE*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+0000ca: LATIN CAPITAL LETTER E WITH CIRCUMFLEX*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+0000cb: LATIN CAPITAL LETTER E WITH DIAERESIS*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+0000cc: LATIN CAPITAL LETTER I WITH GRAVE*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+0000cd: LATIN CAPITAL LETTER I WITH ACUTE*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+0000ce: LATIN CAPITAL LETTER I WITH CIRCUMFLEX*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+0000cf: LATIN CAPITAL LETTER I WITH DIAERESIS*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+0000d0: LATIN CAPITAL LETTER ETH*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+0000d1: LATIN CAPITAL LETTER N WITH TILDE*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+0000d2: LATIN CAPITAL LETTER O WITH GRAVE*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+0000d3: LATIN CAPITAL LETTER O WITH ACUTE*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+0000d4: LATIN CAPITAL LETTER O WITH CIRCUMFLEX*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+0000d5: LATIN CAPITAL LETTER O WITH TILDE*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+0000d6: LATIN CAPITAL LETTER O WITH DIAERESIS*/ - 0, /* U+0000d7: MULTIPLICATION SIGN*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+0000d8: LATIN CAPITAL LETTER O WITH STROKE*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+0000d9: LATIN CAPITAL LETTER U WITH GRAVE*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+0000da: LATIN CAPITAL LETTER U WITH ACUTE*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+0000db: LATIN CAPITAL LETTER U WITH CIRCUMFLEX*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+0000dc: LATIN CAPITAL LETTER U WITH DIAERESIS*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+0000dd: LATIN CAPITAL LETTER Y WITH ACUTE*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+0000de: LATIN CAPITAL LETTER THORN*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+0000df: LATIN SMALL LETTER SHARP S*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+0000e0: LATIN SMALL LETTER A WITH GRAVE*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+0000e1: LATIN SMALL LETTER A WITH ACUTE*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+0000e2: LATIN SMALL LETTER A WITH CIRCUMFLEX*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+0000e3: LATIN SMALL LETTER A WITH TILDE*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+0000e4: LATIN SMALL LETTER A WITH DIAERESIS*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+0000e5: LATIN SMALL LETTER A WITH RING ABOVE*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+0000e6: LATIN SMALL LETTER AE*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+0000e7: LATIN SMALL LETTER C WITH CEDILLA*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+0000e8: LATIN SMALL LETTER E WITH GRAVE*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+0000e9: LATIN SMALL LETTER E WITH ACUTE*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+0000ea: LATIN SMALL LETTER E WITH CIRCUMFLEX*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+0000eb: LATIN SMALL LETTER E WITH DIAERESIS*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+0000ec: LATIN SMALL LETTER I WITH GRAVE*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+0000ed: LATIN SMALL LETTER I WITH ACUTE*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+0000ee: LATIN SMALL LETTER I WITH CIRCUMFLEX*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+0000ef: LATIN SMALL LETTER I WITH DIAERESIS*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+0000f0: LATIN SMALL LETTER ETH*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+0000f1: LATIN SMALL LETTER N WITH TILDE*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+0000f2: LATIN SMALL LETTER O WITH GRAVE*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+0000f3: LATIN SMALL LETTER O WITH ACUTE*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+0000f4: LATIN SMALL LETTER O WITH CIRCUMFLEX*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+0000f5: LATIN SMALL LETTER O WITH TILDE*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+0000f6: LATIN SMALL LETTER O WITH DIAERESIS*/ - 0, /* U+0000f7: DIVISION SIGN*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+0000f8: LATIN SMALL LETTER O WITH STROKE*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+0000f9: LATIN SMALL LETTER U WITH GRAVE*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+0000fa: LATIN SMALL LETTER U WITH ACUTE*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+0000fb: LATIN SMALL LETTER U WITH CIRCUMFLEX*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+0000fc: LATIN SMALL LETTER U WITH DIAERESIS*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+0000fd: LATIN SMALL LETTER Y WITH ACUTE*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+0000fe: LATIN SMALL LETTER THORN*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+0000ff: LATIN SMALL LETTER Y WITH DIAERESIS*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+000100: LATIN CAPITAL LETTER A WITH MACRON*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+000101: LATIN SMALL LETTER A WITH MACRON*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+000102: LATIN CAPITAL LETTER A WITH BREVE*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+000103: LATIN SMALL LETTER A WITH BREVE*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+000104: LATIN CAPITAL LETTER A WITH OGONEK*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+000105: LATIN SMALL LETTER A WITH OGONEK*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+000106: LATIN CAPITAL LETTER C WITH ACUTE*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+000107: LATIN SMALL LETTER C WITH ACUTE*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+000108: LATIN CAPITAL LETTER C WITH CIRCUMFLEX*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+000109: LATIN SMALL LETTER C WITH CIRCUMFLEX*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+00010a: LATIN CAPITAL LETTER C WITH DOT ABOVE*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+00010b: LATIN SMALL LETTER C WITH DOT ABOVE*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+00010c: LATIN CAPITAL LETTER C WITH CARON*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+00010d: LATIN SMALL LETTER C WITH CARON*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+00010e: LATIN CAPITAL LETTER D WITH CARON*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+00010f: LATIN SMALL LETTER D WITH CARON*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+000110: LATIN CAPITAL LETTER D WITH STROKE*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+000111: LATIN SMALL LETTER D WITH STROKE*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+000112: LATIN CAPITAL LETTER E WITH MACRON*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+000113: LATIN SMALL LETTER E WITH MACRON*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+000114: LATIN CAPITAL LETTER E WITH BREVE*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+000115: LATIN SMALL LETTER E WITH BREVE*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+000116: LATIN CAPITAL LETTER E WITH DOT ABOVE*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+000117: LATIN SMALL LETTER E WITH DOT ABOVE*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+000118: LATIN CAPITAL LETTER E WITH OGONEK*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+000119: LATIN SMALL LETTER E WITH OGONEK*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+00011a: LATIN CAPITAL LETTER E WITH CARON*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+00011b: LATIN SMALL LETTER E WITH CARON*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+00011c: LATIN CAPITAL LETTER G WITH CIRCUMFLEX*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+00011d: LATIN SMALL LETTER G WITH CIRCUMFLEX*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+00011e: LATIN CAPITAL LETTER G WITH BREVE*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+00011f: LATIN SMALL LETTER G WITH BREVE*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+000120: LATIN CAPITAL LETTER G WITH DOT ABOVE*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+000121: LATIN SMALL LETTER G WITH DOT ABOVE*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+000122: LATIN CAPITAL LETTER G WITH CEDILLA*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+000123: LATIN SMALL LETTER G WITH CEDILLA*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+000124: LATIN CAPITAL LETTER H WITH CIRCUMFLEX*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+000125: LATIN SMALL LETTER H WITH CIRCUMFLEX*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+000126: LATIN CAPITAL LETTER H WITH STROKE*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+000127: LATIN SMALL LETTER H WITH STROKE*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+000128: LATIN CAPITAL LETTER I WITH TILDE*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+000129: LATIN SMALL LETTER I WITH TILDE*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+00012a: LATIN CAPITAL LETTER I WITH MACRON*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+00012b: LATIN SMALL LETTER I WITH MACRON*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+00012c: LATIN CAPITAL LETTER I WITH BREVE*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+00012d: LATIN SMALL LETTER I WITH BREVE*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+00012e: LATIN CAPITAL LETTER I WITH OGONEK*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+00012f: LATIN SMALL LETTER I WITH OGONEK*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+000130: LATIN CAPITAL LETTER I WITH DOT ABOVE*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+000131: LATIN SMALL LETTER DOTLESS I*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+000132: LATIN CAPITAL LIGATURE IJ*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+000133: LATIN SMALL LIGATURE IJ*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+000134: LATIN CAPITAL LETTER J WITH CIRCUMFLEX*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+000135: LATIN SMALL LETTER J WITH CIRCUMFLEX*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+000136: LATIN CAPITAL LETTER K WITH CEDILLA*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+000137: LATIN SMALL LETTER K WITH CEDILLA*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+000138: LATIN SMALL LETTER KRA*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+000139: LATIN CAPITAL LETTER L WITH ACUTE*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+00013a: LATIN SMALL LETTER L WITH ACUTE*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+00013b: LATIN CAPITAL LETTER L WITH CEDILLA*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+00013c: LATIN SMALL LETTER L WITH CEDILLA*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+00013d: LATIN CAPITAL LETTER L WITH CARON*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+00013e: LATIN SMALL LETTER L WITH CARON*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+00013f: LATIN CAPITAL LETTER L WITH MIDDLE DOT*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+000140: LATIN SMALL LETTER L WITH MIDDLE DOT*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+000141: LATIN CAPITAL LETTER L WITH STROKE*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+000142: LATIN SMALL LETTER L WITH STROKE*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+000143: LATIN CAPITAL LETTER N WITH ACUTE*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+000144: LATIN SMALL LETTER N WITH ACUTE*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+000145: LATIN CAPITAL LETTER N WITH CEDILLA*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+000146: LATIN SMALL LETTER N WITH CEDILLA*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+000147: LATIN CAPITAL LETTER N WITH CARON*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+000148: LATIN SMALL LETTER N WITH CARON*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+000149: LATIN SMALL LETTER N PRECEDED BY APOSTROPHE*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+00014a: LATIN CAPITAL LETTER ENG*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+00014b: LATIN SMALL LETTER ENG*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+00014c: LATIN CAPITAL LETTER O WITH MACRON*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+00014d: LATIN SMALL LETTER O WITH MACRON*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+00014e: LATIN CAPITAL LETTER O WITH BREVE*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+00014f: LATIN SMALL LETTER O WITH BREVE*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+000150: LATIN CAPITAL LETTER O WITH DOUBLE ACUTE*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+000151: LATIN SMALL LETTER O WITH DOUBLE ACUTE*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+000152: LATIN CAPITAL LIGATURE OE*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+000153: LATIN SMALL LIGATURE OE*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+000154: LATIN CAPITAL LETTER R WITH ACUTE*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+000155: LATIN SMALL LETTER R WITH ACUTE*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+000156: LATIN CAPITAL LETTER R WITH CEDILLA*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+000157: LATIN SMALL LETTER R WITH CEDILLA*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+000158: LATIN CAPITAL LETTER R WITH CARON*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+000159: LATIN SMALL LETTER R WITH CARON*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+00015a: LATIN CAPITAL LETTER S WITH ACUTE*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+00015b: LATIN SMALL LETTER S WITH ACUTE*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+00015c: LATIN CAPITAL LETTER S WITH CIRCUMFLEX*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+00015d: LATIN SMALL LETTER S WITH CIRCUMFLEX*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+00015e: LATIN CAPITAL LETTER S WITH CEDILLA*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+00015f: LATIN SMALL LETTER S WITH CEDILLA*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+000160: LATIN CAPITAL LETTER S WITH CARON*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+000161: LATIN SMALL LETTER S WITH CARON*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+000162: LATIN CAPITAL LETTER T WITH CEDILLA*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+000163: LATIN SMALL LETTER T WITH CEDILLA*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+000164: LATIN CAPITAL LETTER T WITH CARON*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+000165: LATIN SMALL LETTER T WITH CARON*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+000166: LATIN CAPITAL LETTER T WITH STROKE*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+000167: LATIN SMALL LETTER T WITH STROKE*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+000168: LATIN CAPITAL LETTER U WITH TILDE*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+000169: LATIN SMALL LETTER U WITH TILDE*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+00016a: LATIN CAPITAL LETTER U WITH MACRON*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+00016b: LATIN SMALL LETTER U WITH MACRON*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+00016c: LATIN CAPITAL LETTER U WITH BREVE*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+00016d: LATIN SMALL LETTER U WITH BREVE*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+00016e: LATIN CAPITAL LETTER U WITH RING ABOVE*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+00016f: LATIN SMALL LETTER U WITH RING ABOVE*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+000170: LATIN CAPITAL LETTER U WITH DOUBLE ACUTE*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+000171: LATIN SMALL LETTER U WITH DOUBLE ACUTE*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+000172: LATIN CAPITAL LETTER U WITH OGONEK*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+000173: LATIN SMALL LETTER U WITH OGONEK*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+000174: LATIN CAPITAL LETTER W WITH CIRCUMFLEX*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+000175: LATIN SMALL LETTER W WITH CIRCUMFLEX*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+000176: LATIN CAPITAL LETTER Y WITH CIRCUMFLEX*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+000177: LATIN SMALL LETTER Y WITH CIRCUMFLEX*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+000178: LATIN CAPITAL LETTER Y WITH DIAERESIS*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+000179: LATIN CAPITAL LETTER Z WITH ACUTE*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+00017a: LATIN SMALL LETTER Z WITH ACUTE*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+00017b: LATIN CAPITAL LETTER Z WITH DOT ABOVE*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+00017c: LATIN SMALL LETTER Z WITH DOT ABOVE*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+00017d: LATIN CAPITAL LETTER Z WITH CARON*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+00017e: LATIN SMALL LETTER Z WITH CARON*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+00017f: LATIN SMALL LETTER LONG S*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+000180: LATIN SMALL LETTER B WITH STROKE*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+000181: LATIN CAPITAL LETTER B WITH HOOK*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+000182: LATIN CAPITAL LETTER B WITH TOPBAR*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+000183: LATIN SMALL LETTER B WITH TOPBAR*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+000184: LATIN CAPITAL LETTER TONE SIX*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+000185: LATIN SMALL LETTER TONE SIX*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+000186: LATIN CAPITAL LETTER OPEN O*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+000187: LATIN CAPITAL LETTER C WITH HOOK*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+000188: LATIN SMALL LETTER C WITH HOOK*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+000189: LATIN CAPITAL LETTER AFRICAN D*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+00018a: LATIN CAPITAL LETTER D WITH HOOK*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+00018b: LATIN CAPITAL LETTER D WITH TOPBAR*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+00018c: LATIN SMALL LETTER D WITH TOPBAR*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+00018d: LATIN SMALL LETTER TURNED DELTA*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+00018e: LATIN CAPITAL LETTER REVERSED E*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+00018f: LATIN CAPITAL LETTER SCHWA*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+000190: LATIN CAPITAL LETTER OPEN E*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+000191: LATIN CAPITAL LETTER F WITH HOOK*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+000192: LATIN SMALL LETTER F WITH HOOK*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+000193: LATIN CAPITAL LETTER G WITH HOOK*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+000194: LATIN CAPITAL LETTER GAMMA*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+000195: LATIN SMALL LETTER HV*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+000196: LATIN CAPITAL LETTER IOTA*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+000197: LATIN CAPITAL LETTER I WITH STROKE*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+000198: LATIN CAPITAL LETTER K WITH HOOK*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+000199: LATIN SMALL LETTER K WITH HOOK*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+00019a: LATIN SMALL LETTER L WITH BAR*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+00019b: LATIN SMALL LETTER LAMBDA WITH STROKE*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+00019c: LATIN CAPITAL LETTER TURNED M*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+00019d: LATIN CAPITAL LETTER N WITH LEFT HOOK*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+00019e: LATIN SMALL LETTER N WITH LONG RIGHT LEG*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+00019f: LATIN CAPITAL LETTER O WITH MIDDLE TILDE*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+0001a0: LATIN CAPITAL LETTER O WITH HORN*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+0001a1: LATIN SMALL LETTER O WITH HORN*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+0001a2: LATIN CAPITAL LETTER OI*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+0001a3: LATIN SMALL LETTER OI*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+0001a4: LATIN CAPITAL LETTER P WITH HOOK*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+0001a5: LATIN SMALL LETTER P WITH HOOK*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+0001a6: LATIN LETTER YR*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+0001a7: LATIN CAPITAL LETTER TONE TWO*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+0001a8: LATIN SMALL LETTER TONE TWO*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+0001a9: LATIN CAPITAL LETTER ESH*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+0001aa: LATIN LETTER REVERSED ESH LOOP*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+0001ab: LATIN SMALL LETTER T WITH PALATAL HOOK*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+0001ac: LATIN CAPITAL LETTER T WITH HOOK*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+0001ad: LATIN SMALL LETTER T WITH HOOK*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+0001ae: LATIN CAPITAL LETTER T WITH RETROFLEX HOOK*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+0001af: LATIN CAPITAL LETTER U WITH HORN*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+0001b0: LATIN SMALL LETTER U WITH HORN*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+0001b1: LATIN CAPITAL LETTER UPSILON*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+0001b2: LATIN CAPITAL LETTER V WITH HOOK*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+0001b3: LATIN CAPITAL LETTER Y WITH HOOK*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+0001b4: LATIN SMALL LETTER Y WITH HOOK*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+0001b5: LATIN CAPITAL LETTER Z WITH STROKE*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+0001b6: LATIN SMALL LETTER Z WITH STROKE*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+0001b7: LATIN CAPITAL LETTER EZH*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+0001b8: LATIN CAPITAL LETTER EZH REVERSED*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+0001b9: LATIN SMALL LETTER EZH REVERSED*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+0001ba: LATIN SMALL LETTER EZH WITH TAIL*/ - RTUNI_ALPHA, /* U+0001bb: LATIN LETTER TWO WITH STROKE*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+0001bc: LATIN CAPITAL LETTER TONE FIVE*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+0001bd: LATIN SMALL LETTER TONE FIVE*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+0001be: LATIN LETTER INVERTED GLOTTAL STOP WITH STROKE*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+0001bf: LATIN LETTER WYNN*/ - RTUNI_ALPHA, /* U+0001c0: LATIN LETTER DENTAL CLICK*/ - RTUNI_ALPHA, /* U+0001c1: LATIN LETTER LATERAL CLICK*/ - RTUNI_ALPHA, /* U+0001c2: LATIN LETTER ALVEOLAR CLICK*/ - RTUNI_ALPHA, /* U+0001c3: LATIN LETTER RETROFLEX CLICK*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+0001c4: LATIN CAPITAL LETTER DZ WITH CARON*/ - RTUNI_ALPHA, /* U+0001c5: LATIN CAPITAL LETTER D WITH SMALL LETTER Z WITH CARON*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+0001c6: LATIN SMALL LETTER DZ WITH CARON*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+0001c7: LATIN CAPITAL LETTER LJ*/ - RTUNI_ALPHA, /* U+0001c8: LATIN CAPITAL LETTER L WITH SMALL LETTER J*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+0001c9: LATIN SMALL LETTER LJ*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+0001ca: LATIN CAPITAL LETTER NJ*/ - RTUNI_ALPHA, /* U+0001cb: LATIN CAPITAL LETTER N WITH SMALL LETTER J*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+0001cc: LATIN SMALL LETTER NJ*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+0001cd: LATIN CAPITAL LETTER A WITH CARON*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+0001ce: LATIN SMALL LETTER A WITH CARON*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+0001cf: LATIN CAPITAL LETTER I WITH CARON*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+0001d0: LATIN SMALL LETTER I WITH CARON*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+0001d1: LATIN CAPITAL LETTER O WITH CARON*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+0001d2: LATIN SMALL LETTER O WITH CARON*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+0001d3: LATIN CAPITAL LETTER U WITH CARON*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+0001d4: LATIN SMALL LETTER U WITH CARON*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+0001d5: LATIN CAPITAL LETTER U WITH DIAERESIS AND MACRON*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+0001d6: LATIN SMALL LETTER U WITH DIAERESIS AND MACRON*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+0001d7: LATIN CAPITAL LETTER U WITH DIAERESIS AND ACUTE*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+0001d8: LATIN SMALL LETTER U WITH DIAERESIS AND ACUTE*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+0001d9: LATIN CAPITAL LETTER U WITH DIAERESIS AND CARON*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+0001da: LATIN SMALL LETTER U WITH DIAERESIS AND CARON*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+0001db: LATIN CAPITAL LETTER U WITH DIAERESIS AND GRAVE*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+0001dc: LATIN SMALL LETTER U WITH DIAERESIS AND GRAVE*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+0001dd: LATIN SMALL LETTER TURNED E*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+0001de: LATIN CAPITAL LETTER A WITH DIAERESIS AND MACRON*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+0001df: LATIN SMALL LETTER A WITH DIAERESIS AND MACRON*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+0001e0: LATIN CAPITAL LETTER A WITH DOT ABOVE AND MACRON*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+0001e1: LATIN SMALL LETTER A WITH DOT ABOVE AND MACRON*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+0001e2: LATIN CAPITAL LETTER AE WITH MACRON*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+0001e3: LATIN SMALL LETTER AE WITH MACRON*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+0001e4: LATIN CAPITAL LETTER G WITH STROKE*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+0001e5: LATIN SMALL LETTER G WITH STROKE*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+0001e6: LATIN CAPITAL LETTER G WITH CARON*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+0001e7: LATIN SMALL LETTER G WITH CARON*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+0001e8: LATIN CAPITAL LETTER K WITH CARON*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+0001e9: LATIN SMALL LETTER K WITH CARON*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+0001ea: LATIN CAPITAL LETTER O WITH OGONEK*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+0001eb: LATIN SMALL LETTER O WITH OGONEK*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+0001ec: LATIN CAPITAL LETTER O WITH OGONEK AND MACRON*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+0001ed: LATIN SMALL LETTER O WITH OGONEK AND MACRON*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+0001ee: LATIN CAPITAL LETTER EZH WITH CARON*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+0001ef: LATIN SMALL LETTER EZH WITH CARON*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+0001f0: LATIN SMALL LETTER J WITH CARON*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+0001f1: LATIN CAPITAL LETTER DZ*/ - RTUNI_ALPHA, /* U+0001f2: LATIN CAPITAL LETTER D WITH SMALL LETTER Z*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+0001f3: LATIN SMALL LETTER DZ*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+0001f4: LATIN CAPITAL LETTER G WITH ACUTE*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+0001f5: LATIN SMALL LETTER G WITH ACUTE*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+0001f6: LATIN CAPITAL LETTER HWAIR*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+0001f7: LATIN CAPITAL LETTER WYNN*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+0001f8: LATIN CAPITAL LETTER N WITH GRAVE*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+0001f9: LATIN SMALL LETTER N WITH GRAVE*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+0001fa: LATIN CAPITAL LETTER A WITH RING ABOVE AND ACUTE*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+0001fb: LATIN SMALL LETTER A WITH RING ABOVE AND ACUTE*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+0001fc: LATIN CAPITAL LETTER AE WITH ACUTE*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+0001fd: LATIN SMALL LETTER AE WITH ACUTE*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+0001fe: LATIN CAPITAL LETTER O WITH STROKE AND ACUTE*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+0001ff: LATIN SMALL LETTER O WITH STROKE AND ACUTE*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+000200: LATIN CAPITAL LETTER A WITH DOUBLE GRAVE*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+000201: LATIN SMALL LETTER A WITH DOUBLE GRAVE*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+000202: LATIN CAPITAL LETTER A WITH INVERTED BREVE*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+000203: LATIN SMALL LETTER A WITH INVERTED BREVE*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+000204: LATIN CAPITAL LETTER E WITH DOUBLE GRAVE*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+000205: LATIN SMALL LETTER E WITH DOUBLE GRAVE*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+000206: LATIN CAPITAL LETTER E WITH INVERTED BREVE*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+000207: LATIN SMALL LETTER E WITH INVERTED BREVE*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+000208: LATIN CAPITAL LETTER I WITH DOUBLE GRAVE*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+000209: LATIN SMALL LETTER I WITH DOUBLE GRAVE*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+00020a: LATIN CAPITAL LETTER I WITH INVERTED BREVE*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+00020b: LATIN SMALL LETTER I WITH INVERTED BREVE*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+00020c: LATIN CAPITAL LETTER O WITH DOUBLE GRAVE*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+00020d: LATIN SMALL LETTER O WITH DOUBLE GRAVE*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+00020e: LATIN CAPITAL LETTER O WITH INVERTED BREVE*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+00020f: LATIN SMALL LETTER O WITH INVERTED BREVE*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+000210: LATIN CAPITAL LETTER R WITH DOUBLE GRAVE*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+000211: LATIN SMALL LETTER R WITH DOUBLE GRAVE*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+000212: LATIN CAPITAL LETTER R WITH INVERTED BREVE*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+000213: LATIN SMALL LETTER R WITH INVERTED BREVE*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+000214: LATIN CAPITAL LETTER U WITH DOUBLE GRAVE*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+000215: LATIN SMALL LETTER U WITH DOUBLE GRAVE*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+000216: LATIN CAPITAL LETTER U WITH INVERTED BREVE*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+000217: LATIN SMALL LETTER U WITH INVERTED BREVE*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+000218: LATIN CAPITAL LETTER S WITH COMMA BELOW*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+000219: LATIN SMALL LETTER S WITH COMMA BELOW*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+00021a: LATIN CAPITAL LETTER T WITH COMMA BELOW*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+00021b: LATIN SMALL LETTER T WITH COMMA BELOW*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+00021c: LATIN CAPITAL LETTER YOGH*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+00021d: LATIN SMALL LETTER YOGH*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+00021e: LATIN CAPITAL LETTER H WITH CARON*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+00021f: LATIN SMALL LETTER H WITH CARON*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+000220: LATIN CAPITAL LETTER N WITH LONG RIGHT LEG*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+000221: LATIN SMALL LETTER D WITH CURL*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+000222: LATIN CAPITAL LETTER OU*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+000223: LATIN SMALL LETTER OU*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+000224: LATIN CAPITAL LETTER Z WITH HOOK*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+000225: LATIN SMALL LETTER Z WITH HOOK*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+000226: LATIN CAPITAL LETTER A WITH DOT ABOVE*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+000227: LATIN SMALL LETTER A WITH DOT ABOVE*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+000228: LATIN CAPITAL LETTER E WITH CEDILLA*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+000229: LATIN SMALL LETTER E WITH CEDILLA*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+00022a: LATIN CAPITAL LETTER O WITH DIAERESIS AND MACRON*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+00022b: LATIN SMALL LETTER O WITH DIAERESIS AND MACRON*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+00022c: LATIN CAPITAL LETTER O WITH TILDE AND MACRON*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+00022d: LATIN SMALL LETTER O WITH TILDE AND MACRON*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+00022e: LATIN CAPITAL LETTER O WITH DOT ABOVE*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+00022f: LATIN SMALL LETTER O WITH DOT ABOVE*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+000230: LATIN CAPITAL LETTER O WITH DOT ABOVE AND MACRON*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+000231: LATIN SMALL LETTER O WITH DOT ABOVE AND MACRON*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+000232: LATIN CAPITAL LETTER Y WITH MACRON*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+000233: LATIN SMALL LETTER Y WITH MACRON*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+000234: LATIN SMALL LETTER L WITH CURL*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+000235: LATIN SMALL LETTER N WITH CURL*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+000236: LATIN SMALL LETTER T WITH CURL*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+000237: LATIN SMALL LETTER DOTLESS J*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+000238: LATIN SMALL LETTER DB DIGRAPH*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+000239: LATIN SMALL LETTER QP DIGRAPH*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+00023a: LATIN CAPITAL LETTER A WITH STROKE*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+00023b: LATIN CAPITAL LETTER C WITH STROKE*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+00023c: LATIN SMALL LETTER C WITH STROKE*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+00023d: LATIN CAPITAL LETTER L WITH BAR*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+00023e: LATIN CAPITAL LETTER T WITH DIAGONAL STROKE*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+00023f: LATIN SMALL LETTER S WITH SWASH TAIL*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+000240: LATIN SMALL LETTER Z WITH SWASH TAIL*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+000241: LATIN CAPITAL LETTER GLOTTAL STOP*/ - 0, /* U+000242: */ - 0, /* U+000243: */ - 0, /* U+000244: */ - 0, /* U+000245: */ - 0, /* U+000246: */ - 0, /* U+000247: */ - 0, /* U+000248: */ - 0, /* U+000249: */ - 0, /* U+00024a: */ - 0, /* U+00024b: */ - 0, /* U+00024c: */ - 0, /* U+00024d: */ - 0, /* U+00024e: */ - 0, /* U+00024f: */ - RTUNI_ALPHA | RTUNI_LOWER, /* U+000250: LATIN SMALL LETTER TURNED A*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+000251: LATIN SMALL LETTER ALPHA*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+000252: LATIN SMALL LETTER TURNED ALPHA*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+000253: LATIN SMALL LETTER B WITH HOOK*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+000254: LATIN SMALL LETTER OPEN O*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+000255: LATIN SMALL LETTER C WITH CURL*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+000256: LATIN SMALL LETTER D WITH TAIL*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+000257: LATIN SMALL LETTER D WITH HOOK*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+000258: LATIN SMALL LETTER REVERSED E*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+000259: LATIN SMALL LETTER SCHWA*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+00025a: LATIN SMALL LETTER SCHWA WITH HOOK*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+00025b: LATIN SMALL LETTER OPEN E*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+00025c: LATIN SMALL LETTER REVERSED OPEN E*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+00025d: LATIN SMALL LETTER REVERSED OPEN E WITH HOOK*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+00025e: LATIN SMALL LETTER CLOSED REVERSED OPEN E*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+00025f: LATIN SMALL LETTER DOTLESS J WITH STROKE*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+000260: LATIN SMALL LETTER G WITH HOOK*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+000261: LATIN SMALL LETTER SCRIPT G*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+000262: LATIN LETTER SMALL CAPITAL G*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+000263: LATIN SMALL LETTER GAMMA*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+000264: LATIN SMALL LETTER RAMS HORN*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+000265: LATIN SMALL LETTER TURNED H*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+000266: LATIN SMALL LETTER H WITH HOOK*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+000267: LATIN SMALL LETTER HENG WITH HOOK*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+000268: LATIN SMALL LETTER I WITH STROKE*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+000269: LATIN SMALL LETTER IOTA*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+00026a: LATIN LETTER SMALL CAPITAL I*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+00026b: LATIN SMALL LETTER L WITH MIDDLE TILDE*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+00026c: LATIN SMALL LETTER L WITH BELT*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+00026d: LATIN SMALL LETTER L WITH RETROFLEX HOOK*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+00026e: LATIN SMALL LETTER LEZH*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+00026f: LATIN SMALL LETTER TURNED M*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+000270: LATIN SMALL LETTER TURNED M WITH LONG LEG*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+000271: LATIN SMALL LETTER M WITH HOOK*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+000272: LATIN SMALL LETTER N WITH LEFT HOOK*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+000273: LATIN SMALL LETTER N WITH RETROFLEX HOOK*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+000274: LATIN LETTER SMALL CAPITAL N*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+000275: LATIN SMALL LETTER BARRED O*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+000276: LATIN LETTER SMALL CAPITAL OE*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+000277: LATIN SMALL LETTER CLOSED OMEGA*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+000278: LATIN SMALL LETTER PHI*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+000279: LATIN SMALL LETTER TURNED R*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+00027a: LATIN SMALL LETTER TURNED R WITH LONG LEG*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+00027b: LATIN SMALL LETTER TURNED R WITH HOOK*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+00027c: LATIN SMALL LETTER R WITH LONG LEG*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+00027d: LATIN SMALL LETTER R WITH TAIL*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+00027e: LATIN SMALL LETTER R WITH FISHHOOK*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+00027f: LATIN SMALL LETTER REVERSED R WITH FISHHOOK*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+000280: LATIN LETTER SMALL CAPITAL R*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+000281: LATIN LETTER SMALL CAPITAL INVERTED R*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+000282: LATIN SMALL LETTER S WITH HOOK*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+000283: LATIN SMALL LETTER ESH*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+000284: LATIN SMALL LETTER DOTLESS J WITH STROKE AND HOOK*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+000285: LATIN SMALL LETTER SQUAT REVERSED ESH*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+000286: LATIN SMALL LETTER ESH WITH CURL*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+000287: LATIN SMALL LETTER TURNED T*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+000288: LATIN SMALL LETTER T WITH RETROFLEX HOOK*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+000289: LATIN SMALL LETTER U BAR*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+00028a: LATIN SMALL LETTER UPSILON*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+00028b: LATIN SMALL LETTER V WITH HOOK*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+00028c: LATIN SMALL LETTER TURNED V*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+00028d: LATIN SMALL LETTER TURNED W*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+00028e: LATIN SMALL LETTER TURNED Y*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+00028f: LATIN LETTER SMALL CAPITAL Y*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+000290: LATIN SMALL LETTER Z WITH RETROFLEX HOOK*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+000291: LATIN SMALL LETTER Z WITH CURL*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+000292: LATIN SMALL LETTER EZH*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+000293: LATIN SMALL LETTER EZH WITH CURL*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+000294: LATIN LETTER GLOTTAL STOP*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+000295: LATIN LETTER PHARYNGEAL VOICED FRICATIVE*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+000296: LATIN LETTER INVERTED GLOTTAL STOP*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+000297: LATIN LETTER STRETCHED C*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+000298: LATIN LETTER BILABIAL CLICK*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+000299: LATIN LETTER SMALL CAPITAL B*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+00029a: LATIN SMALL LETTER CLOSED OPEN E*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+00029b: LATIN LETTER SMALL CAPITAL G WITH HOOK*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+00029c: LATIN LETTER SMALL CAPITAL H*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+00029d: LATIN SMALL LETTER J WITH CROSSED-TAIL*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+00029e: LATIN SMALL LETTER TURNED K*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+00029f: LATIN LETTER SMALL CAPITAL L*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+0002a0: LATIN SMALL LETTER Q WITH HOOK*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+0002a1: LATIN LETTER GLOTTAL STOP WITH STROKE*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+0002a2: LATIN LETTER REVERSED GLOTTAL STOP WITH STROKE*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+0002a3: LATIN SMALL LETTER DZ DIGRAPH*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+0002a4: LATIN SMALL LETTER DEZH DIGRAPH*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+0002a5: LATIN SMALL LETTER DZ DIGRAPH WITH CURL*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+0002a6: LATIN SMALL LETTER TS DIGRAPH*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+0002a7: LATIN SMALL LETTER TESH DIGRAPH*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+0002a8: LATIN SMALL LETTER TC DIGRAPH WITH CURL*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+0002a9: LATIN SMALL LETTER FENG DIGRAPH*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+0002aa: LATIN SMALL LETTER LS DIGRAPH*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+0002ab: LATIN SMALL LETTER LZ DIGRAPH*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+0002ac: LATIN LETTER BILABIAL PERCUSSIVE*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+0002ad: LATIN LETTER BIDENTAL PERCUSSIVE*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+0002ae: LATIN SMALL LETTER TURNED H WITH FISHHOOK*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+0002af: LATIN SMALL LETTER TURNED H WITH FISHHOOK AND TAIL*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+0002b0: MODIFIER LETTER SMALL H*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+0002b1: MODIFIER LETTER SMALL H WITH HOOK*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+0002b2: MODIFIER LETTER SMALL J*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+0002b3: MODIFIER LETTER SMALL R*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+0002b4: MODIFIER LETTER SMALL TURNED R*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+0002b5: MODIFIER LETTER SMALL TURNED R WITH HOOK*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+0002b6: MODIFIER LETTER SMALL CAPITAL INVERTED R*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+0002b7: MODIFIER LETTER SMALL W*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+0002b8: MODIFIER LETTER SMALL Y*/ - RTUNI_ALPHA, /* U+0002b9: MODIFIER LETTER PRIME*/ - RTUNI_ALPHA, /* U+0002ba: MODIFIER LETTER DOUBLE PRIME*/ - RTUNI_ALPHA, /* U+0002bb: MODIFIER LETTER TURNED COMMA*/ - RTUNI_ALPHA, /* U+0002bc: MODIFIER LETTER APOSTROPHE*/ - RTUNI_ALPHA, /* U+0002bd: MODIFIER LETTER REVERSED COMMA*/ - RTUNI_ALPHA, /* U+0002be: MODIFIER LETTER RIGHT HALF RING*/ - RTUNI_ALPHA, /* U+0002bf: MODIFIER LETTER LEFT HALF RING*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+0002c0: MODIFIER LETTER GLOTTAL STOP*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+0002c1: MODIFIER LETTER REVERSED GLOTTAL STOP*/ - 0, /* U+0002c2: MODIFIER LETTER LEFT ARROWHEAD*/ - 0, /* U+0002c3: MODIFIER LETTER RIGHT ARROWHEAD*/ - 0, /* U+0002c4: MODIFIER LETTER UP ARROWHEAD*/ - 0, /* U+0002c5: MODIFIER LETTER DOWN ARROWHEAD*/ - RTUNI_ALPHA, /* U+0002c6: MODIFIER LETTER CIRCUMFLEX ACCENT*/ - RTUNI_ALPHA, /* U+0002c7: CARON*/ - RTUNI_ALPHA, /* U+0002c8: MODIFIER LETTER VERTICAL LINE*/ - RTUNI_ALPHA, /* U+0002c9: MODIFIER LETTER MACRON*/ - RTUNI_ALPHA, /* U+0002ca: MODIFIER LETTER ACUTE ACCENT*/ - RTUNI_ALPHA, /* U+0002cb: MODIFIER LETTER GRAVE ACCENT*/ - RTUNI_ALPHA, /* U+0002cc: MODIFIER LETTER LOW VERTICAL LINE*/ - RTUNI_ALPHA, /* U+0002cd: MODIFIER LETTER LOW MACRON*/ - RTUNI_ALPHA, /* U+0002ce: MODIFIER LETTER LOW GRAVE ACCENT*/ - RTUNI_ALPHA, /* U+0002cf: MODIFIER LETTER LOW ACUTE ACCENT*/ - RTUNI_ALPHA, /* U+0002d0: MODIFIER LETTER TRIANGULAR COLON*/ - RTUNI_ALPHA, /* U+0002d1: MODIFIER LETTER HALF TRIANGULAR COLON*/ - 0, /* U+0002d2: MODIFIER LETTER CENTRED RIGHT HALF RING*/ - 0, /* U+0002d3: MODIFIER LETTER CENTRED LEFT HALF RING*/ - 0, /* U+0002d4: MODIFIER LETTER UP TACK*/ - 0, /* U+0002d5: MODIFIER LETTER DOWN TACK*/ - 0, /* U+0002d6: MODIFIER LETTER PLUS SIGN*/ - 0, /* U+0002d7: MODIFIER LETTER MINUS SIGN*/ - 0, /* U+0002d8: BREVE*/ - 0, /* U+0002d9: DOT ABOVE*/ - 0, /* U+0002da: RING ABOVE*/ - 0, /* U+0002db: OGONEK*/ - 0, /* U+0002dc: SMALL TILDE*/ - 0, /* U+0002dd: DOUBLE ACUTE ACCENT*/ - 0, /* U+0002de: MODIFIER LETTER RHOTIC HOOK*/ - 0, /* U+0002df: MODIFIER LETTER CROSS ACCENT*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+0002e0: MODIFIER LETTER SMALL GAMMA*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+0002e1: MODIFIER LETTER SMALL L*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+0002e2: MODIFIER LETTER SMALL S*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+0002e3: MODIFIER LETTER SMALL X*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+0002e4: MODIFIER LETTER SMALL REVERSED GLOTTAL STOP*/ - 0, /* U+0002e5: MODIFIER LETTER EXTRA-HIGH TONE BAR*/ - 0, /* U+0002e6: MODIFIER LETTER HIGH TONE BAR*/ - 0, /* U+0002e7: MODIFIER LETTER MID TONE BAR*/ - 0, /* U+0002e8: MODIFIER LETTER LOW TONE BAR*/ - 0, /* U+0002e9: MODIFIER LETTER EXTRA-LOW TONE BAR*/ - 0, /* U+0002ea: MODIFIER LETTER YIN DEPARTING TONE MARK*/ - 0, /* U+0002eb: MODIFIER LETTER YANG DEPARTING TONE MARK*/ - 0, /* U+0002ec: MODIFIER LETTER VOICING*/ - 0, /* U+0002ed: MODIFIER LETTER UNASPIRATED*/ - RTUNI_ALPHA, /* U+0002ee: MODIFIER LETTER DOUBLE APOSTROPHE*/ - 0, /* U+0002ef: MODIFIER LETTER LOW DOWN ARROWHEAD*/ - 0, /* U+0002f0: MODIFIER LETTER LOW UP ARROWHEAD*/ - 0, /* U+0002f1: MODIFIER LETTER LOW LEFT ARROWHEAD*/ - 0, /* U+0002f2: MODIFIER LETTER LOW RIGHT ARROWHEAD*/ - 0, /* U+0002f3: MODIFIER LETTER LOW RING*/ - 0, /* U+0002f4: MODIFIER LETTER MIDDLE GRAVE ACCENT*/ - 0, /* U+0002f5: MODIFIER LETTER MIDDLE DOUBLE GRAVE ACCENT*/ - 0, /* U+0002f6: MODIFIER LETTER MIDDLE DOUBLE ACUTE ACCENT*/ - 0, /* U+0002f7: MODIFIER LETTER LOW TILDE*/ - 0, /* U+0002f8: MODIFIER LETTER RAISED COLON*/ - 0, /* U+0002f9: MODIFIER LETTER BEGIN HIGH TONE*/ - 0, /* U+0002fa: MODIFIER LETTER END HIGH TONE*/ - 0, /* U+0002fb: MODIFIER LETTER BEGIN LOW TONE*/ - 0, /* U+0002fc: MODIFIER LETTER END LOW TONE*/ - 0, /* U+0002fd: MODIFIER LETTER SHELF*/ - 0, /* U+0002fe: MODIFIER LETTER OPEN SHELF*/ - 0, /* U+0002ff: MODIFIER LETTER LOW LEFT ARROW*/ - 0, /* U+000300: COMBINING GRAVE ACCENT*/ - 0, /* U+000301: COMBINING ACUTE ACCENT*/ - 0, /* U+000302: COMBINING CIRCUMFLEX ACCENT*/ - 0, /* U+000303: COMBINING TILDE*/ - 0, /* U+000304: COMBINING MACRON*/ - 0, /* U+000305: COMBINING OVERLINE*/ - 0, /* U+000306: COMBINING BREVE*/ - 0, /* U+000307: COMBINING DOT ABOVE*/ - 0, /* U+000308: COMBINING DIAERESIS*/ - 0, /* U+000309: COMBINING HOOK ABOVE*/ - 0, /* U+00030a: COMBINING RING ABOVE*/ - 0, /* U+00030b: COMBINING DOUBLE ACUTE ACCENT*/ - 0, /* U+00030c: COMBINING CARON*/ - 0, /* U+00030d: COMBINING VERTICAL LINE ABOVE*/ - 0, /* U+00030e: COMBINING DOUBLE VERTICAL LINE ABOVE*/ - 0, /* U+00030f: COMBINING DOUBLE GRAVE ACCENT*/ - 0, /* U+000310: COMBINING CANDRABINDU*/ - 0, /* U+000311: COMBINING INVERTED BREVE*/ - 0, /* U+000312: COMBINING TURNED COMMA ABOVE*/ - 0, /* U+000313: COMBINING COMMA ABOVE*/ - 0, /* U+000314: COMBINING REVERSED COMMA ABOVE*/ - 0, /* U+000315: COMBINING COMMA ABOVE RIGHT*/ - 0, /* U+000316: COMBINING GRAVE ACCENT BELOW*/ - 0, /* U+000317: COMBINING ACUTE ACCENT BELOW*/ - 0, /* U+000318: COMBINING LEFT TACK BELOW*/ - 0, /* U+000319: COMBINING RIGHT TACK BELOW*/ - 0, /* U+00031a: COMBINING LEFT ANGLE ABOVE*/ - 0, /* U+00031b: COMBINING HORN*/ - 0, /* U+00031c: COMBINING LEFT HALF RING BELOW*/ - 0, /* U+00031d: COMBINING UP TACK BELOW*/ - 0, /* U+00031e: COMBINING DOWN TACK BELOW*/ - 0, /* U+00031f: COMBINING PLUS SIGN BELOW*/ - 0, /* U+000320: COMBINING MINUS SIGN BELOW*/ - 0, /* U+000321: COMBINING PALATALIZED HOOK BELOW*/ - 0, /* U+000322: COMBINING RETROFLEX HOOK BELOW*/ - 0, /* U+000323: COMBINING DOT BELOW*/ - 0, /* U+000324: COMBINING DIAERESIS BELOW*/ - 0, /* U+000325: COMBINING RING BELOW*/ - 0, /* U+000326: COMBINING COMMA BELOW*/ - 0, /* U+000327: COMBINING CEDILLA*/ - 0, /* U+000328: COMBINING OGONEK*/ - 0, /* U+000329: COMBINING VERTICAL LINE BELOW*/ - 0, /* U+00032a: COMBINING BRIDGE BELOW*/ - 0, /* U+00032b: COMBINING INVERTED DOUBLE ARCH BELOW*/ - 0, /* U+00032c: COMBINING CARON BELOW*/ - 0, /* U+00032d: COMBINING CIRCUMFLEX ACCENT BELOW*/ - 0, /* U+00032e: COMBINING BREVE BELOW*/ - 0, /* U+00032f: COMBINING INVERTED BREVE BELOW*/ - 0, /* U+000330: COMBINING TILDE BELOW*/ - 0, /* U+000331: COMBINING MACRON BELOW*/ - 0, /* U+000332: COMBINING LOW LINE*/ - 0, /* U+000333: COMBINING DOUBLE LOW LINE*/ - 0, /* U+000334: COMBINING TILDE OVERLAY*/ - 0, /* U+000335: COMBINING SHORT STROKE OVERLAY*/ - 0, /* U+000336: COMBINING LONG STROKE OVERLAY*/ - 0, /* U+000337: COMBINING SHORT SOLIDUS OVERLAY*/ - 0, /* U+000338: COMBINING LONG SOLIDUS OVERLAY*/ - 0, /* U+000339: COMBINING RIGHT HALF RING BELOW*/ - 0, /* U+00033a: COMBINING INVERTED BRIDGE BELOW*/ - 0, /* U+00033b: COMBINING SQUARE BELOW*/ - 0, /* U+00033c: COMBINING SEAGULL BELOW*/ - 0, /* U+00033d: COMBINING X ABOVE*/ - 0, /* U+00033e: COMBINING VERTICAL TILDE*/ - 0, /* U+00033f: COMBINING DOUBLE OVERLINE*/ - 0, /* U+000340: COMBINING GRAVE TONE MARK*/ - 0, /* U+000341: COMBINING ACUTE TONE MARK*/ - 0, /* U+000342: COMBINING GREEK PERISPOMENI*/ - 0, /* U+000343: COMBINING GREEK KORONIS*/ - 0, /* U+000344: COMBINING GREEK DIALYTIKA TONOS*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+000345: COMBINING GREEK YPOGEGRAMMENI*/ - 0, /* U+000346: COMBINING BRIDGE ABOVE*/ - 0, /* U+000347: COMBINING EQUALS SIGN BELOW*/ - 0, /* U+000348: COMBINING DOUBLE VERTICAL LINE BELOW*/ - 0, /* U+000349: COMBINING LEFT ANGLE BELOW*/ - 0, /* U+00034a: COMBINING NOT TILDE ABOVE*/ - 0, /* U+00034b: COMBINING HOMOTHETIC ABOVE*/ - 0, /* U+00034c: COMBINING ALMOST EQUAL TO ABOVE*/ - 0, /* U+00034d: COMBINING LEFT RIGHT ARROW BELOW*/ - 0, /* U+00034e: COMBINING UPWARDS ARROW BELOW*/ - 0, /* U+00034f: COMBINING GRAPHEME JOINER*/ - 0, /* U+000350: COMBINING RIGHT ARROWHEAD ABOVE*/ - 0, /* U+000351: COMBINING LEFT HALF RING ABOVE*/ - 0, /* U+000352: COMBINING FERMATA*/ - 0, /* U+000353: COMBINING X BELOW*/ - 0, /* U+000354: COMBINING LEFT ARROWHEAD BELOW*/ - 0, /* U+000355: COMBINING RIGHT ARROWHEAD BELOW*/ - 0, /* U+000356: COMBINING RIGHT ARROWHEAD AND UP ARROWHEAD BELOW*/ - 0, /* U+000357: COMBINING RIGHT HALF RING ABOVE*/ - 0, /* U+000358: COMBINING DOT ABOVE RIGHT*/ - 0, /* U+000359: COMBINING ASTERISK BELOW*/ - 0, /* U+00035a: COMBINING DOUBLE RING BELOW*/ - 0, /* U+00035b: COMBINING ZIGZAG ABOVE*/ - 0, /* U+00035c: COMBINING DOUBLE BREVE BELOW*/ - 0, /* U+00035d: COMBINING DOUBLE BREVE*/ - 0, /* U+00035e: COMBINING DOUBLE MACRON*/ - 0, /* U+00035f: COMBINING DOUBLE MACRON BELOW*/ - 0, /* U+000360: COMBINING DOUBLE TILDE*/ - 0, /* U+000361: COMBINING DOUBLE INVERTED BREVE*/ - 0, /* U+000362: COMBINING DOUBLE RIGHTWARDS ARROW BELOW*/ - 0, /* U+000363: COMBINING LATIN SMALL LETTER A*/ - 0, /* U+000364: COMBINING LATIN SMALL LETTER E*/ - 0, /* U+000365: COMBINING LATIN SMALL LETTER I*/ - 0, /* U+000366: COMBINING LATIN SMALL LETTER O*/ - 0, /* U+000367: COMBINING LATIN SMALL LETTER U*/ - 0, /* U+000368: COMBINING LATIN SMALL LETTER C*/ - 0, /* U+000369: COMBINING LATIN SMALL LETTER D*/ - 0, /* U+00036a: COMBINING LATIN SMALL LETTER H*/ - 0, /* U+00036b: COMBINING LATIN SMALL LETTER M*/ - 0, /* U+00036c: COMBINING LATIN SMALL LETTER R*/ - 0, /* U+00036d: COMBINING LATIN SMALL LETTER T*/ - 0, /* U+00036e: COMBINING LATIN SMALL LETTER V*/ - 0, /* U+00036f: COMBINING LATIN SMALL LETTER X*/ - 0, /* U+000370: */ - 0, /* U+000371: */ - 0, /* U+000372: */ - 0, /* U+000373: */ - 0, /* U+000374: GREEK NUMERAL SIGN*/ - 0, /* U+000375: GREEK LOWER NUMERAL SIGN*/ - 0, /* U+000376: */ - 0, /* U+000377: */ - 0, /* U+000378: */ - 0, /* U+000379: */ - RTUNI_ALPHA | RTUNI_LOWER, /* U+00037a: GREEK YPOGEGRAMMENI*/ - 0, /* U+00037b: */ - 0, /* U+00037c: */ - 0, /* U+00037d: */ - 0, /* U+00037e: GREEK QUESTION MARK*/ - 0, /* U+00037f: */ - 0, /* U+000380: */ - 0, /* U+000381: */ - 0, /* U+000382: */ - 0, /* U+000383: */ - 0, /* U+000384: GREEK TONOS*/ - 0, /* U+000385: GREEK DIALYTIKA TONOS*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+000386: GREEK CAPITAL LETTER ALPHA WITH TONOS*/ - 0, /* U+000387: GREEK ANO TELEIA*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+000388: GREEK CAPITAL LETTER EPSILON WITH TONOS*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+000389: GREEK CAPITAL LETTER ETA WITH TONOS*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+00038a: GREEK CAPITAL LETTER IOTA WITH TONOS*/ - 0, /* U+00038b: */ - RTUNI_ALPHA | RTUNI_UPPER, /* U+00038c: GREEK CAPITAL LETTER OMICRON WITH TONOS*/ - 0, /* U+00038d: */ - RTUNI_ALPHA | RTUNI_UPPER, /* U+00038e: GREEK CAPITAL LETTER UPSILON WITH TONOS*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+00038f: GREEK CAPITAL LETTER OMEGA WITH TONOS*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+000390: GREEK SMALL LETTER IOTA WITH DIALYTIKA AND TONOS*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+000391: GREEK CAPITAL LETTER ALPHA*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+000392: GREEK CAPITAL LETTER BETA*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+000393: GREEK CAPITAL LETTER GAMMA*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+000394: GREEK CAPITAL LETTER DELTA*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+000395: GREEK CAPITAL LETTER EPSILON*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+000396: GREEK CAPITAL LETTER ZETA*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+000397: GREEK CAPITAL LETTER ETA*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+000398: GREEK CAPITAL LETTER THETA*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+000399: GREEK CAPITAL LETTER IOTA*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+00039a: GREEK CAPITAL LETTER KAPPA*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+00039b: GREEK CAPITAL LETTER LAMDA*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+00039c: GREEK CAPITAL LETTER MU*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+00039d: GREEK CAPITAL LETTER NU*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+00039e: GREEK CAPITAL LETTER XI*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+00039f: GREEK CAPITAL LETTER OMICRON*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+0003a0: GREEK CAPITAL LETTER PI*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+0003a1: GREEK CAPITAL LETTER RHO*/ - 0, /* U+0003a2: */ - RTUNI_ALPHA | RTUNI_UPPER, /* U+0003a3: GREEK CAPITAL LETTER SIGMA*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+0003a4: GREEK CAPITAL LETTER TAU*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+0003a5: GREEK CAPITAL LETTER UPSILON*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+0003a6: GREEK CAPITAL LETTER PHI*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+0003a7: GREEK CAPITAL LETTER CHI*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+0003a8: GREEK CAPITAL LETTER PSI*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+0003a9: GREEK CAPITAL LETTER OMEGA*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+0003aa: GREEK CAPITAL LETTER IOTA WITH DIALYTIKA*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+0003ab: GREEK CAPITAL LETTER UPSILON WITH DIALYTIKA*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+0003ac: GREEK SMALL LETTER ALPHA WITH TONOS*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+0003ad: GREEK SMALL LETTER EPSILON WITH TONOS*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+0003ae: GREEK SMALL LETTER ETA WITH TONOS*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+0003af: GREEK SMALL LETTER IOTA WITH TONOS*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+0003b0: GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND TONOS*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+0003b1: GREEK SMALL LETTER ALPHA*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+0003b2: GREEK SMALL LETTER BETA*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+0003b3: GREEK SMALL LETTER GAMMA*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+0003b4: GREEK SMALL LETTER DELTA*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+0003b5: GREEK SMALL LETTER EPSILON*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+0003b6: GREEK SMALL LETTER ZETA*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+0003b7: GREEK SMALL LETTER ETA*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+0003b8: GREEK SMALL LETTER THETA*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+0003b9: GREEK SMALL LETTER IOTA*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+0003ba: GREEK SMALL LETTER KAPPA*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+0003bb: GREEK SMALL LETTER LAMDA*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+0003bc: GREEK SMALL LETTER MU*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+0003bd: GREEK SMALL LETTER NU*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+0003be: GREEK SMALL LETTER XI*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+0003bf: GREEK SMALL LETTER OMICRON*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+0003c0: GREEK SMALL LETTER PI*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+0003c1: GREEK SMALL LETTER RHO*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+0003c2: GREEK SMALL LETTER FINAL SIGMA*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+0003c3: GREEK SMALL LETTER SIGMA*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+0003c4: GREEK SMALL LETTER TAU*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+0003c5: GREEK SMALL LETTER UPSILON*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+0003c6: GREEK SMALL LETTER PHI*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+0003c7: GREEK SMALL LETTER CHI*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+0003c8: GREEK SMALL LETTER PSI*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+0003c9: GREEK SMALL LETTER OMEGA*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+0003ca: GREEK SMALL LETTER IOTA WITH DIALYTIKA*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+0003cb: GREEK SMALL LETTER UPSILON WITH DIALYTIKA*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+0003cc: GREEK SMALL LETTER OMICRON WITH TONOS*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+0003cd: GREEK SMALL LETTER UPSILON WITH TONOS*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+0003ce: GREEK SMALL LETTER OMEGA WITH TONOS*/ - 0, /* U+0003cf: */ - RTUNI_ALPHA | RTUNI_LOWER, /* U+0003d0: GREEK BETA SYMBOL*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+0003d1: GREEK THETA SYMBOL*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+0003d2: GREEK UPSILON WITH HOOK SYMBOL*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+0003d3: GREEK UPSILON WITH ACUTE AND HOOK SYMBOL*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+0003d4: GREEK UPSILON WITH DIAERESIS AND HOOK SYMBOL*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+0003d5: GREEK PHI SYMBOL*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+0003d6: GREEK PI SYMBOL*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+0003d7: GREEK KAI SYMBOL*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+0003d8: GREEK LETTER ARCHAIC KOPPA*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+0003d9: GREEK SMALL LETTER ARCHAIC KOPPA*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+0003da: GREEK LETTER STIGMA*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+0003db: GREEK SMALL LETTER STIGMA*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+0003dc: GREEK LETTER DIGAMMA*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+0003dd: GREEK SMALL LETTER DIGAMMA*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+0003de: GREEK LETTER KOPPA*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+0003df: GREEK SMALL LETTER KOPPA*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+0003e0: GREEK LETTER SAMPI*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+0003e1: GREEK SMALL LETTER SAMPI*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+0003e2: COPTIC CAPITAL LETTER SHEI*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+0003e3: COPTIC SMALL LETTER SHEI*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+0003e4: COPTIC CAPITAL LETTER FEI*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+0003e5: COPTIC SMALL LETTER FEI*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+0003e6: COPTIC CAPITAL LETTER KHEI*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+0003e7: COPTIC SMALL LETTER KHEI*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+0003e8: COPTIC CAPITAL LETTER HORI*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+0003e9: COPTIC SMALL LETTER HORI*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+0003ea: COPTIC CAPITAL LETTER GANGIA*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+0003eb: COPTIC SMALL LETTER GANGIA*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+0003ec: COPTIC CAPITAL LETTER SHIMA*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+0003ed: COPTIC SMALL LETTER SHIMA*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+0003ee: COPTIC CAPITAL LETTER DEI*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+0003ef: COPTIC SMALL LETTER DEI*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+0003f0: GREEK KAPPA SYMBOL*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+0003f1: GREEK RHO SYMBOL*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+0003f2: GREEK LUNATE SIGMA SYMBOL*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+0003f3: GREEK LETTER YOT*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+0003f4: GREEK CAPITAL THETA SYMBOL*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+0003f5: GREEK LUNATE EPSILON SYMBOL*/ - 0, /* U+0003f6: GREEK REVERSED LUNATE EPSILON SYMBOL*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+0003f7: GREEK CAPITAL LETTER SHO*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+0003f8: GREEK SMALL LETTER SHO*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+0003f9: GREEK CAPITAL LUNATE SIGMA SYMBOL*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+0003fa: GREEK CAPITAL LETTER SAN*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+0003fb: GREEK SMALL LETTER SAN*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+0003fc: GREEK RHO WITH STROKE SYMBOL*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+0003fd: GREEK CAPITAL REVERSED LUNATE SIGMA SYMBOL*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+0003fe: GREEK CAPITAL DOTTED LUNATE SIGMA SYMBOL*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+0003ff: GREEK CAPITAL REVERSED DOTTED LUNATE SIGMA SYMBOL*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+000400: CYRILLIC CAPITAL LETTER IE WITH GRAVE*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+000401: CYRILLIC CAPITAL LETTER IO*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+000402: CYRILLIC CAPITAL LETTER DJE*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+000403: CYRILLIC CAPITAL LETTER GJE*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+000404: CYRILLIC CAPITAL LETTER UKRAINIAN IE*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+000405: CYRILLIC CAPITAL LETTER DZE*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+000406: CYRILLIC CAPITAL LETTER BYELORUSSIAN-UKRAINIAN I*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+000407: CYRILLIC CAPITAL LETTER YI*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+000408: CYRILLIC CAPITAL LETTER JE*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+000409: CYRILLIC CAPITAL LETTER LJE*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+00040a: CYRILLIC CAPITAL LETTER NJE*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+00040b: CYRILLIC CAPITAL LETTER TSHE*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+00040c: CYRILLIC CAPITAL LETTER KJE*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+00040d: CYRILLIC CAPITAL LETTER I WITH GRAVE*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+00040e: CYRILLIC CAPITAL LETTER SHORT U*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+00040f: CYRILLIC CAPITAL LETTER DZHE*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+000410: CYRILLIC CAPITAL LETTER A*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+000411: CYRILLIC CAPITAL LETTER BE*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+000412: CYRILLIC CAPITAL LETTER VE*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+000413: CYRILLIC CAPITAL LETTER GHE*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+000414: CYRILLIC CAPITAL LETTER DE*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+000415: CYRILLIC CAPITAL LETTER IE*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+000416: CYRILLIC CAPITAL LETTER ZHE*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+000417: CYRILLIC CAPITAL LETTER ZE*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+000418: CYRILLIC CAPITAL LETTER I*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+000419: CYRILLIC CAPITAL LETTER SHORT I*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+00041a: CYRILLIC CAPITAL LETTER KA*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+00041b: CYRILLIC CAPITAL LETTER EL*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+00041c: CYRILLIC CAPITAL LETTER EM*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+00041d: CYRILLIC CAPITAL LETTER EN*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+00041e: CYRILLIC CAPITAL LETTER O*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+00041f: CYRILLIC CAPITAL LETTER PE*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+000420: CYRILLIC CAPITAL LETTER ER*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+000421: CYRILLIC CAPITAL LETTER ES*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+000422: CYRILLIC CAPITAL LETTER TE*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+000423: CYRILLIC CAPITAL LETTER U*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+000424: CYRILLIC CAPITAL LETTER EF*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+000425: CYRILLIC CAPITAL LETTER HA*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+000426: CYRILLIC CAPITAL LETTER TSE*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+000427: CYRILLIC CAPITAL LETTER CHE*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+000428: CYRILLIC CAPITAL LETTER SHA*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+000429: CYRILLIC CAPITAL LETTER SHCHA*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+00042a: CYRILLIC CAPITAL LETTER HARD SIGN*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+00042b: CYRILLIC CAPITAL LETTER YERU*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+00042c: CYRILLIC CAPITAL LETTER SOFT SIGN*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+00042d: CYRILLIC CAPITAL LETTER E*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+00042e: CYRILLIC CAPITAL LETTER YU*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+00042f: CYRILLIC CAPITAL LETTER YA*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+000430: CYRILLIC SMALL LETTER A*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+000431: CYRILLIC SMALL LETTER BE*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+000432: CYRILLIC SMALL LETTER VE*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+000433: CYRILLIC SMALL LETTER GHE*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+000434: CYRILLIC SMALL LETTER DE*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+000435: CYRILLIC SMALL LETTER IE*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+000436: CYRILLIC SMALL LETTER ZHE*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+000437: CYRILLIC SMALL LETTER ZE*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+000438: CYRILLIC SMALL LETTER I*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+000439: CYRILLIC SMALL LETTER SHORT I*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+00043a: CYRILLIC SMALL LETTER KA*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+00043b: CYRILLIC SMALL LETTER EL*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+00043c: CYRILLIC SMALL LETTER EM*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+00043d: CYRILLIC SMALL LETTER EN*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+00043e: CYRILLIC SMALL LETTER O*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+00043f: CYRILLIC SMALL LETTER PE*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+000440: CYRILLIC SMALL LETTER ER*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+000441: CYRILLIC SMALL LETTER ES*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+000442: CYRILLIC SMALL LETTER TE*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+000443: CYRILLIC SMALL LETTER U*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+000444: CYRILLIC SMALL LETTER EF*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+000445: CYRILLIC SMALL LETTER HA*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+000446: CYRILLIC SMALL LETTER TSE*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+000447: CYRILLIC SMALL LETTER CHE*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+000448: CYRILLIC SMALL LETTER SHA*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+000449: CYRILLIC SMALL LETTER SHCHA*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+00044a: CYRILLIC SMALL LETTER HARD SIGN*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+00044b: CYRILLIC SMALL LETTER YERU*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+00044c: CYRILLIC SMALL LETTER SOFT SIGN*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+00044d: CYRILLIC SMALL LETTER E*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+00044e: CYRILLIC SMALL LETTER YU*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+00044f: CYRILLIC SMALL LETTER YA*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+000450: CYRILLIC SMALL LETTER IE WITH GRAVE*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+000451: CYRILLIC SMALL LETTER IO*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+000452: CYRILLIC SMALL LETTER DJE*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+000453: CYRILLIC SMALL LETTER GJE*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+000454: CYRILLIC SMALL LETTER UKRAINIAN IE*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+000455: CYRILLIC SMALL LETTER DZE*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+000456: CYRILLIC SMALL LETTER BYELORUSSIAN-UKRAINIAN I*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+000457: CYRILLIC SMALL LETTER YI*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+000458: CYRILLIC SMALL LETTER JE*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+000459: CYRILLIC SMALL LETTER LJE*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+00045a: CYRILLIC SMALL LETTER NJE*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+00045b: CYRILLIC SMALL LETTER TSHE*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+00045c: CYRILLIC SMALL LETTER KJE*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+00045d: CYRILLIC SMALL LETTER I WITH GRAVE*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+00045e: CYRILLIC SMALL LETTER SHORT U*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+00045f: CYRILLIC SMALL LETTER DZHE*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+000460: CYRILLIC CAPITAL LETTER OMEGA*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+000461: CYRILLIC SMALL LETTER OMEGA*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+000462: CYRILLIC CAPITAL LETTER YAT*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+000463: CYRILLIC SMALL LETTER YAT*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+000464: CYRILLIC CAPITAL LETTER IOTIFIED E*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+000465: CYRILLIC SMALL LETTER IOTIFIED E*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+000466: CYRILLIC CAPITAL LETTER LITTLE YUS*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+000467: CYRILLIC SMALL LETTER LITTLE YUS*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+000468: CYRILLIC CAPITAL LETTER IOTIFIED LITTLE YUS*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+000469: CYRILLIC SMALL LETTER IOTIFIED LITTLE YUS*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+00046a: CYRILLIC CAPITAL LETTER BIG YUS*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+00046b: CYRILLIC SMALL LETTER BIG YUS*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+00046c: CYRILLIC CAPITAL LETTER IOTIFIED BIG YUS*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+00046d: CYRILLIC SMALL LETTER IOTIFIED BIG YUS*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+00046e: CYRILLIC CAPITAL LETTER KSI*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+00046f: CYRILLIC SMALL LETTER KSI*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+000470: CYRILLIC CAPITAL LETTER PSI*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+000471: CYRILLIC SMALL LETTER PSI*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+000472: CYRILLIC CAPITAL LETTER FITA*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+000473: CYRILLIC SMALL LETTER FITA*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+000474: CYRILLIC CAPITAL LETTER IZHITSA*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+000475: CYRILLIC SMALL LETTER IZHITSA*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+000476: CYRILLIC CAPITAL LETTER IZHITSA WITH DOUBLE GRAVE ACCENT*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+000477: CYRILLIC SMALL LETTER IZHITSA WITH DOUBLE GRAVE ACCENT*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+000478: CYRILLIC CAPITAL LETTER UK*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+000479: CYRILLIC SMALL LETTER UK*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+00047a: CYRILLIC CAPITAL LETTER ROUND OMEGA*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+00047b: CYRILLIC SMALL LETTER ROUND OMEGA*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+00047c: CYRILLIC CAPITAL LETTER OMEGA WITH TITLO*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+00047d: CYRILLIC SMALL LETTER OMEGA WITH TITLO*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+00047e: CYRILLIC CAPITAL LETTER OT*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+00047f: CYRILLIC SMALL LETTER OT*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+000480: CYRILLIC CAPITAL LETTER KOPPA*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+000481: CYRILLIC SMALL LETTER KOPPA*/ - 0, /* U+000482: CYRILLIC THOUSANDS SIGN*/ - 0, /* U+000483: COMBINING CYRILLIC TITLO*/ - 0, /* U+000484: COMBINING CYRILLIC PALATALIZATION*/ - 0, /* U+000485: COMBINING CYRILLIC DASIA PNEUMATA*/ - 0, /* U+000486: COMBINING CYRILLIC PSILI PNEUMATA*/ - 0, /* U+000487: */ - 0, /* U+000488: COMBINING CYRILLIC HUNDRED THOUSANDS SIGN*/ - 0, /* U+000489: COMBINING CYRILLIC MILLIONS SIGN*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+00048a: CYRILLIC CAPITAL LETTER SHORT I WITH TAIL*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+00048b: CYRILLIC SMALL LETTER SHORT I WITH TAIL*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+00048c: CYRILLIC CAPITAL LETTER SEMISOFT SIGN*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+00048d: CYRILLIC SMALL LETTER SEMISOFT SIGN*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+00048e: CYRILLIC CAPITAL LETTER ER WITH TICK*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+00048f: CYRILLIC SMALL LETTER ER WITH TICK*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+000490: CYRILLIC CAPITAL LETTER GHE WITH UPTURN*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+000491: CYRILLIC SMALL LETTER GHE WITH UPTURN*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+000492: CYRILLIC CAPITAL LETTER GHE WITH STROKE*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+000493: CYRILLIC SMALL LETTER GHE WITH STROKE*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+000494: CYRILLIC CAPITAL LETTER GHE WITH MIDDLE HOOK*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+000495: CYRILLIC SMALL LETTER GHE WITH MIDDLE HOOK*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+000496: CYRILLIC CAPITAL LETTER ZHE WITH DESCENDER*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+000497: CYRILLIC SMALL LETTER ZHE WITH DESCENDER*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+000498: CYRILLIC CAPITAL LETTER ZE WITH DESCENDER*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+000499: CYRILLIC SMALL LETTER ZE WITH DESCENDER*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+00049a: CYRILLIC CAPITAL LETTER KA WITH DESCENDER*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+00049b: CYRILLIC SMALL LETTER KA WITH DESCENDER*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+00049c: CYRILLIC CAPITAL LETTER KA WITH VERTICAL STROKE*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+00049d: CYRILLIC SMALL LETTER KA WITH VERTICAL STROKE*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+00049e: CYRILLIC CAPITAL LETTER KA WITH STROKE*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+00049f: CYRILLIC SMALL LETTER KA WITH STROKE*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+0004a0: CYRILLIC CAPITAL LETTER BASHKIR KA*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+0004a1: CYRILLIC SMALL LETTER BASHKIR KA*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+0004a2: CYRILLIC CAPITAL LETTER EN WITH DESCENDER*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+0004a3: CYRILLIC SMALL LETTER EN WITH DESCENDER*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+0004a4: CYRILLIC CAPITAL LIGATURE EN GHE*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+0004a5: CYRILLIC SMALL LIGATURE EN GHE*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+0004a6: CYRILLIC CAPITAL LETTER PE WITH MIDDLE HOOK*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+0004a7: CYRILLIC SMALL LETTER PE WITH MIDDLE HOOK*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+0004a8: CYRILLIC CAPITAL LETTER ABKHASIAN HA*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+0004a9: CYRILLIC SMALL LETTER ABKHASIAN HA*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+0004aa: CYRILLIC CAPITAL LETTER ES WITH DESCENDER*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+0004ab: CYRILLIC SMALL LETTER ES WITH DESCENDER*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+0004ac: CYRILLIC CAPITAL LETTER TE WITH DESCENDER*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+0004ad: CYRILLIC SMALL LETTER TE WITH DESCENDER*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+0004ae: CYRILLIC CAPITAL LETTER STRAIGHT U*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+0004af: CYRILLIC SMALL LETTER STRAIGHT U*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+0004b0: CYRILLIC CAPITAL LETTER STRAIGHT U WITH STROKE*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+0004b1: CYRILLIC SMALL LETTER STRAIGHT U WITH STROKE*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+0004b2: CYRILLIC CAPITAL LETTER HA WITH DESCENDER*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+0004b3: CYRILLIC SMALL LETTER HA WITH DESCENDER*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+0004b4: CYRILLIC CAPITAL LIGATURE TE TSE*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+0004b5: CYRILLIC SMALL LIGATURE TE TSE*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+0004b6: CYRILLIC CAPITAL LETTER CHE WITH DESCENDER*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+0004b7: CYRILLIC SMALL LETTER CHE WITH DESCENDER*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+0004b8: CYRILLIC CAPITAL LETTER CHE WITH VERTICAL STROKE*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+0004b9: CYRILLIC SMALL LETTER CHE WITH VERTICAL STROKE*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+0004ba: CYRILLIC CAPITAL LETTER SHHA*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+0004bb: CYRILLIC SMALL LETTER SHHA*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+0004bc: CYRILLIC CAPITAL LETTER ABKHASIAN CHE*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+0004bd: CYRILLIC SMALL LETTER ABKHASIAN CHE*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+0004be: CYRILLIC CAPITAL LETTER ABKHASIAN CHE WITH DESCENDER*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+0004bf: CYRILLIC SMALL LETTER ABKHASIAN CHE WITH DESCENDER*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+0004c0: CYRILLIC LETTER PALOCHKA*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+0004c1: CYRILLIC CAPITAL LETTER ZHE WITH BREVE*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+0004c2: CYRILLIC SMALL LETTER ZHE WITH BREVE*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+0004c3: CYRILLIC CAPITAL LETTER KA WITH HOOK*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+0004c4: CYRILLIC SMALL LETTER KA WITH HOOK*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+0004c5: CYRILLIC CAPITAL LETTER EL WITH TAIL*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+0004c6: CYRILLIC SMALL LETTER EL WITH TAIL*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+0004c7: CYRILLIC CAPITAL LETTER EN WITH HOOK*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+0004c8: CYRILLIC SMALL LETTER EN WITH HOOK*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+0004c9: CYRILLIC CAPITAL LETTER EN WITH TAIL*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+0004ca: CYRILLIC SMALL LETTER EN WITH TAIL*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+0004cb: CYRILLIC CAPITAL LETTER KHAKASSIAN CHE*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+0004cc: CYRILLIC SMALL LETTER KHAKASSIAN CHE*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+0004cd: CYRILLIC CAPITAL LETTER EM WITH TAIL*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+0004ce: CYRILLIC SMALL LETTER EM WITH TAIL*/ - 0, /* U+0004cf: */ - RTUNI_ALPHA | RTUNI_UPPER, /* U+0004d0: CYRILLIC CAPITAL LETTER A WITH BREVE*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+0004d1: CYRILLIC SMALL LETTER A WITH BREVE*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+0004d2: CYRILLIC CAPITAL LETTER A WITH DIAERESIS*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+0004d3: CYRILLIC SMALL LETTER A WITH DIAERESIS*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+0004d4: CYRILLIC CAPITAL LIGATURE A IE*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+0004d5: CYRILLIC SMALL LIGATURE A IE*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+0004d6: CYRILLIC CAPITAL LETTER IE WITH BREVE*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+0004d7: CYRILLIC SMALL LETTER IE WITH BREVE*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+0004d8: CYRILLIC CAPITAL LETTER SCHWA*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+0004d9: CYRILLIC SMALL LETTER SCHWA*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+0004da: CYRILLIC CAPITAL LETTER SCHWA WITH DIAERESIS*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+0004db: CYRILLIC SMALL LETTER SCHWA WITH DIAERESIS*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+0004dc: CYRILLIC CAPITAL LETTER ZHE WITH DIAERESIS*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+0004dd: CYRILLIC SMALL LETTER ZHE WITH DIAERESIS*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+0004de: CYRILLIC CAPITAL LETTER ZE WITH DIAERESIS*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+0004df: CYRILLIC SMALL LETTER ZE WITH DIAERESIS*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+0004e0: CYRILLIC CAPITAL LETTER ABKHASIAN DZE*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+0004e1: CYRILLIC SMALL LETTER ABKHASIAN DZE*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+0004e2: CYRILLIC CAPITAL LETTER I WITH MACRON*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+0004e3: CYRILLIC SMALL LETTER I WITH MACRON*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+0004e4: CYRILLIC CAPITAL LETTER I WITH DIAERESIS*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+0004e5: CYRILLIC SMALL LETTER I WITH DIAERESIS*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+0004e6: CYRILLIC CAPITAL LETTER O WITH DIAERESIS*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+0004e7: CYRILLIC SMALL LETTER O WITH DIAERESIS*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+0004e8: CYRILLIC CAPITAL LETTER BARRED O*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+0004e9: CYRILLIC SMALL LETTER BARRED O*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+0004ea: CYRILLIC CAPITAL LETTER BARRED O WITH DIAERESIS*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+0004eb: CYRILLIC SMALL LETTER BARRED O WITH DIAERESIS*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+0004ec: CYRILLIC CAPITAL LETTER E WITH DIAERESIS*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+0004ed: CYRILLIC SMALL LETTER E WITH DIAERESIS*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+0004ee: CYRILLIC CAPITAL LETTER U WITH MACRON*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+0004ef: CYRILLIC SMALL LETTER U WITH MACRON*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+0004f0: CYRILLIC CAPITAL LETTER U WITH DIAERESIS*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+0004f1: CYRILLIC SMALL LETTER U WITH DIAERESIS*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+0004f2: CYRILLIC CAPITAL LETTER U WITH DOUBLE ACUTE*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+0004f3: CYRILLIC SMALL LETTER U WITH DOUBLE ACUTE*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+0004f4: CYRILLIC CAPITAL LETTER CHE WITH DIAERESIS*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+0004f5: CYRILLIC SMALL LETTER CHE WITH DIAERESIS*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+0004f6: CYRILLIC CAPITAL LETTER GHE WITH DESCENDER*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+0004f7: CYRILLIC SMALL LETTER GHE WITH DESCENDER*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+0004f8: CYRILLIC CAPITAL LETTER YERU WITH DIAERESIS*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+0004f9: CYRILLIC SMALL LETTER YERU WITH DIAERESIS*/ - 0, /* U+0004fa: */ - 0, /* U+0004fb: */ - 0, /* U+0004fc: */ - 0, /* U+0004fd: */ - 0, /* U+0004fe: */ - 0, /* U+0004ff: */ - RTUNI_ALPHA | RTUNI_UPPER, /* U+000500: CYRILLIC CAPITAL LETTER KOMI DE*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+000501: CYRILLIC SMALL LETTER KOMI DE*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+000502: CYRILLIC CAPITAL LETTER KOMI DJE*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+000503: CYRILLIC SMALL LETTER KOMI DJE*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+000504: CYRILLIC CAPITAL LETTER KOMI ZJE*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+000505: CYRILLIC SMALL LETTER KOMI ZJE*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+000506: CYRILLIC CAPITAL LETTER KOMI DZJE*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+000507: CYRILLIC SMALL LETTER KOMI DZJE*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+000508: CYRILLIC CAPITAL LETTER KOMI LJE*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+000509: CYRILLIC SMALL LETTER KOMI LJE*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+00050a: CYRILLIC CAPITAL LETTER KOMI NJE*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+00050b: CYRILLIC SMALL LETTER KOMI NJE*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+00050c: CYRILLIC CAPITAL LETTER KOMI SJE*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+00050d: CYRILLIC SMALL LETTER KOMI SJE*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+00050e: CYRILLIC CAPITAL LETTER KOMI TJE*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+00050f: CYRILLIC SMALL LETTER KOMI TJE*/ - 0, /* U+000510: */ - 0, /* U+000511: */ - 0, /* U+000512: */ - 0, /* U+000513: */ - 0, /* U+000514: */ - 0, /* U+000515: */ - 0, /* U+000516: */ - 0, /* U+000517: */ - 0, /* U+000518: */ - 0, /* U+000519: */ - 0, /* U+00051a: */ - 0, /* U+00051b: */ - 0, /* U+00051c: */ - 0, /* U+00051d: */ - 0, /* U+00051e: */ - 0, /* U+00051f: */ - 0, /* U+000520: */ - 0, /* U+000521: */ - 0, /* U+000522: */ - 0, /* U+000523: */ - 0, /* U+000524: */ - 0, /* U+000525: */ - 0, /* U+000526: */ - 0, /* U+000527: */ - 0, /* U+000528: */ - 0, /* U+000529: */ - 0, /* U+00052a: */ - 0, /* U+00052b: */ - 0, /* U+00052c: */ - 0, /* U+00052d: */ - 0, /* U+00052e: */ - 0, /* U+00052f: */ - 0, /* U+000530: */ - RTUNI_ALPHA | RTUNI_UPPER, /* U+000531: ARMENIAN CAPITAL LETTER AYB*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+000532: ARMENIAN CAPITAL LETTER BEN*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+000533: ARMENIAN CAPITAL LETTER GIM*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+000534: ARMENIAN CAPITAL LETTER DA*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+000535: ARMENIAN CAPITAL LETTER ECH*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+000536: ARMENIAN CAPITAL LETTER ZA*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+000537: ARMENIAN CAPITAL LETTER EH*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+000538: ARMENIAN CAPITAL LETTER ET*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+000539: ARMENIAN CAPITAL LETTER TO*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+00053a: ARMENIAN CAPITAL LETTER ZHE*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+00053b: ARMENIAN CAPITAL LETTER INI*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+00053c: ARMENIAN CAPITAL LETTER LIWN*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+00053d: ARMENIAN CAPITAL LETTER XEH*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+00053e: ARMENIAN CAPITAL LETTER CA*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+00053f: ARMENIAN CAPITAL LETTER KEN*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+000540: ARMENIAN CAPITAL LETTER HO*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+000541: ARMENIAN CAPITAL LETTER JA*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+000542: ARMENIAN CAPITAL LETTER GHAD*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+000543: ARMENIAN CAPITAL LETTER CHEH*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+000544: ARMENIAN CAPITAL LETTER MEN*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+000545: ARMENIAN CAPITAL LETTER YI*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+000546: ARMENIAN CAPITAL LETTER NOW*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+000547: ARMENIAN CAPITAL LETTER SHA*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+000548: ARMENIAN CAPITAL LETTER VO*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+000549: ARMENIAN CAPITAL LETTER CHA*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+00054a: ARMENIAN CAPITAL LETTER PEH*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+00054b: ARMENIAN CAPITAL LETTER JHEH*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+00054c: ARMENIAN CAPITAL LETTER RA*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+00054d: ARMENIAN CAPITAL LETTER SEH*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+00054e: ARMENIAN CAPITAL LETTER VEW*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+00054f: ARMENIAN CAPITAL LETTER TIWN*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+000550: ARMENIAN CAPITAL LETTER REH*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+000551: ARMENIAN CAPITAL LETTER CO*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+000552: ARMENIAN CAPITAL LETTER YIWN*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+000553: ARMENIAN CAPITAL LETTER PIWR*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+000554: ARMENIAN CAPITAL LETTER KEH*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+000555: ARMENIAN CAPITAL LETTER OH*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+000556: ARMENIAN CAPITAL LETTER FEH*/ - 0, /* U+000557: */ - 0, /* U+000558: */ - RTUNI_ALPHA, /* U+000559: ARMENIAN MODIFIER LETTER LEFT HALF RING*/ - 0, /* U+00055a: ARMENIAN APOSTROPHE*/ - 0, /* U+00055b: ARMENIAN EMPHASIS MARK*/ - 0, /* U+00055c: ARMENIAN EXCLAMATION MARK*/ - 0, /* U+00055d: ARMENIAN COMMA*/ - 0, /* U+00055e: ARMENIAN QUESTION MARK*/ - 0, /* U+00055f: ARMENIAN ABBREVIATION MARK*/ - 0, /* U+000560: */ - RTUNI_ALPHA | RTUNI_LOWER, /* U+000561: ARMENIAN SMALL LETTER AYB*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+000562: ARMENIAN SMALL LETTER BEN*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+000563: ARMENIAN SMALL LETTER GIM*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+000564: ARMENIAN SMALL LETTER DA*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+000565: ARMENIAN SMALL LETTER ECH*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+000566: ARMENIAN SMALL LETTER ZA*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+000567: ARMENIAN SMALL LETTER EH*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+000568: ARMENIAN SMALL LETTER ET*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+000569: ARMENIAN SMALL LETTER TO*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+00056a: ARMENIAN SMALL LETTER ZHE*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+00056b: ARMENIAN SMALL LETTER INI*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+00056c: ARMENIAN SMALL LETTER LIWN*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+00056d: ARMENIAN SMALL LETTER XEH*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+00056e: ARMENIAN SMALL LETTER CA*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+00056f: ARMENIAN SMALL LETTER KEN*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+000570: ARMENIAN SMALL LETTER HO*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+000571: ARMENIAN SMALL LETTER JA*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+000572: ARMENIAN SMALL LETTER GHAD*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+000573: ARMENIAN SMALL LETTER CHEH*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+000574: ARMENIAN SMALL LETTER MEN*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+000575: ARMENIAN SMALL LETTER YI*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+000576: ARMENIAN SMALL LETTER NOW*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+000577: ARMENIAN SMALL LETTER SHA*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+000578: ARMENIAN SMALL LETTER VO*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+000579: ARMENIAN SMALL LETTER CHA*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+00057a: ARMENIAN SMALL LETTER PEH*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+00057b: ARMENIAN SMALL LETTER JHEH*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+00057c: ARMENIAN SMALL LETTER RA*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+00057d: ARMENIAN SMALL LETTER SEH*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+00057e: ARMENIAN SMALL LETTER VEW*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+00057f: ARMENIAN SMALL LETTER TIWN*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+000580: ARMENIAN SMALL LETTER REH*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+000581: ARMENIAN SMALL LETTER CO*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+000582: ARMENIAN SMALL LETTER YIWN*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+000583: ARMENIAN SMALL LETTER PIWR*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+000584: ARMENIAN SMALL LETTER KEH*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+000585: ARMENIAN SMALL LETTER OH*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+000586: ARMENIAN SMALL LETTER FEH*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+000587: ARMENIAN SMALL LIGATURE ECH YIWN*/ - 0, /* U+000588: */ - 0, /* U+000589: ARMENIAN FULL STOP*/ - 0, /* U+00058a: ARMENIAN HYPHEN*/ - 0, /* U+00058b: */ - 0, /* U+00058c: */ - 0, /* U+00058d: */ - 0, /* U+00058e: */ - 0, /* U+00058f: */ - 0, /* U+000590: */ - 0, /* U+000591: HEBREW ACCENT ETNAHTA*/ - 0, /* U+000592: HEBREW ACCENT SEGOL*/ - 0, /* U+000593: HEBREW ACCENT SHALSHELET*/ - 0, /* U+000594: HEBREW ACCENT ZAQEF QATAN*/ - 0, /* U+000595: HEBREW ACCENT ZAQEF GADOL*/ - 0, /* U+000596: HEBREW ACCENT TIPEHA*/ - 0, /* U+000597: HEBREW ACCENT REVIA*/ - 0, /* U+000598: HEBREW ACCENT ZARQA*/ - 0, /* U+000599: HEBREW ACCENT PASHTA*/ - 0, /* U+00059a: HEBREW ACCENT YETIV*/ - 0, /* U+00059b: HEBREW ACCENT TEVIR*/ - 0, /* U+00059c: HEBREW ACCENT GERESH*/ - 0, /* U+00059d: HEBREW ACCENT GERESH MUQDAM*/ - 0, /* U+00059e: HEBREW ACCENT GERSHAYIM*/ - 0, /* U+00059f: HEBREW ACCENT QARNEY PARA*/ - 0, /* U+0005a0: HEBREW ACCENT TELISHA GEDOLA*/ - 0, /* U+0005a1: HEBREW ACCENT PAZER*/ - 0, /* U+0005a2: HEBREW ACCENT ATNAH HAFUKH*/ - 0, /* U+0005a3: HEBREW ACCENT MUNAH*/ - 0, /* U+0005a4: HEBREW ACCENT MAHAPAKH*/ - 0, /* U+0005a5: HEBREW ACCENT MERKHA*/ - 0, /* U+0005a6: HEBREW ACCENT MERKHA KEFULA*/ - 0, /* U+0005a7: HEBREW ACCENT DARGA*/ - 0, /* U+0005a8: HEBREW ACCENT QADMA*/ - 0, /* U+0005a9: HEBREW ACCENT TELISHA QETANA*/ - 0, /* U+0005aa: HEBREW ACCENT YERAH BEN YOMO*/ - 0, /* U+0005ab: HEBREW ACCENT OLE*/ - 0, /* U+0005ac: HEBREW ACCENT ILUY*/ - 0, /* U+0005ad: HEBREW ACCENT DEHI*/ - 0, /* U+0005ae: HEBREW ACCENT ZINOR*/ - 0, /* U+0005af: HEBREW MARK MASORA CIRCLE*/ - RTUNI_ALPHA, /* U+0005b0: HEBREW POINT SHEVA*/ - RTUNI_ALPHA, /* U+0005b1: HEBREW POINT HATAF SEGOL*/ - RTUNI_ALPHA, /* U+0005b2: HEBREW POINT HATAF PATAH*/ - RTUNI_ALPHA, /* U+0005b3: HEBREW POINT HATAF QAMATS*/ - RTUNI_ALPHA, /* U+0005b4: HEBREW POINT HIRIQ*/ - RTUNI_ALPHA, /* U+0005b5: HEBREW POINT TSERE*/ - RTUNI_ALPHA, /* U+0005b6: HEBREW POINT SEGOL*/ - RTUNI_ALPHA, /* U+0005b7: HEBREW POINT PATAH*/ - RTUNI_ALPHA, /* U+0005b8: HEBREW POINT QAMATS*/ - RTUNI_ALPHA, /* U+0005b9: HEBREW POINT HOLAM*/ - 0, /* U+0005ba: */ - RTUNI_ALPHA, /* U+0005bb: HEBREW POINT QUBUTS*/ - RTUNI_ALPHA, /* U+0005bc: HEBREW POINT DAGESH OR MAPIQ*/ - RTUNI_ALPHA, /* U+0005bd: HEBREW POINT METEG*/ - 0, /* U+0005be: HEBREW PUNCTUATION MAQAF*/ - RTUNI_ALPHA, /* U+0005bf: HEBREW POINT RAFE*/ - 0, /* U+0005c0: HEBREW PUNCTUATION PASEQ*/ - RTUNI_ALPHA, /* U+0005c1: HEBREW POINT SHIN DOT*/ - RTUNI_ALPHA, /* U+0005c2: HEBREW POINT SIN DOT*/ - 0, /* U+0005c3: HEBREW PUNCTUATION SOF PASUQ*/ - RTUNI_ALPHA, /* U+0005c4: HEBREW MARK UPPER DOT*/ - RTUNI_ALPHA, /* U+0005c5: HEBREW MARK LOWER DOT*/ - 0, /* U+0005c6: HEBREW PUNCTUATION NUN HAFUKHA*/ - RTUNI_ALPHA, /* U+0005c7: HEBREW POINT QAMATS QATAN*/ - 0, /* U+0005c8: */ - 0, /* U+0005c9: */ - 0, /* U+0005ca: */ - 0, /* U+0005cb: */ - 0, /* U+0005cc: */ - 0, /* U+0005cd: */ - 0, /* U+0005ce: */ - 0, /* U+0005cf: */ - RTUNI_ALPHA, /* U+0005d0: HEBREW LETTER ALEF*/ - RTUNI_ALPHA, /* U+0005d1: HEBREW LETTER BET*/ - RTUNI_ALPHA, /* U+0005d2: HEBREW LETTER GIMEL*/ - RTUNI_ALPHA, /* U+0005d3: HEBREW LETTER DALET*/ - RTUNI_ALPHA, /* U+0005d4: HEBREW LETTER HE*/ - RTUNI_ALPHA, /* U+0005d5: HEBREW LETTER VAV*/ - RTUNI_ALPHA, /* U+0005d6: HEBREW LETTER ZAYIN*/ - RTUNI_ALPHA, /* U+0005d7: HEBREW LETTER HET*/ - RTUNI_ALPHA, /* U+0005d8: HEBREW LETTER TET*/ - RTUNI_ALPHA, /* U+0005d9: HEBREW LETTER YOD*/ - RTUNI_ALPHA, /* U+0005da: HEBREW LETTER FINAL KAF*/ - RTUNI_ALPHA, /* U+0005db: HEBREW LETTER KAF*/ - RTUNI_ALPHA, /* U+0005dc: HEBREW LETTER LAMED*/ - RTUNI_ALPHA, /* U+0005dd: HEBREW LETTER FINAL MEM*/ - RTUNI_ALPHA, /* U+0005de: HEBREW LETTER MEM*/ - RTUNI_ALPHA, /* U+0005df: HEBREW LETTER FINAL NUN*/ - RTUNI_ALPHA, /* U+0005e0: HEBREW LETTER NUN*/ - RTUNI_ALPHA, /* U+0005e1: HEBREW LETTER SAMEKH*/ - RTUNI_ALPHA, /* U+0005e2: HEBREW LETTER AYIN*/ - RTUNI_ALPHA, /* U+0005e3: HEBREW LETTER FINAL PE*/ - RTUNI_ALPHA, /* U+0005e4: HEBREW LETTER PE*/ - RTUNI_ALPHA, /* U+0005e5: HEBREW LETTER FINAL TSADI*/ - RTUNI_ALPHA, /* U+0005e6: HEBREW LETTER TSADI*/ - RTUNI_ALPHA, /* U+0005e7: HEBREW LETTER QOF*/ - RTUNI_ALPHA, /* U+0005e8: HEBREW LETTER RESH*/ - RTUNI_ALPHA, /* U+0005e9: HEBREW LETTER SHIN*/ - RTUNI_ALPHA, /* U+0005ea: HEBREW LETTER TAV*/ - 0, /* U+0005eb: */ - 0, /* U+0005ec: */ - 0, /* U+0005ed: */ - 0, /* U+0005ee: */ - 0, /* U+0005ef: */ - RTUNI_ALPHA, /* U+0005f0: HEBREW LIGATURE YIDDISH DOUBLE VAV*/ - RTUNI_ALPHA, /* U+0005f1: HEBREW LIGATURE YIDDISH VAV YOD*/ - RTUNI_ALPHA, /* U+0005f2: HEBREW LIGATURE YIDDISH DOUBLE YOD*/ - 0, /* U+0005f3: HEBREW PUNCTUATION GERESH*/ - 0, /* U+0005f4: HEBREW PUNCTUATION GERSHAYIM*/ - 0, /* U+0005f5: */ - 0, /* U+0005f6: */ - 0, /* U+0005f7: */ - 0, /* U+0005f8: */ - 0, /* U+0005f9: */ - 0, /* U+0005fa: */ - 0, /* U+0005fb: */ - 0, /* U+0005fc: */ - 0, /* U+0005fd: */ - 0, /* U+0005fe: */ - 0, /* U+0005ff: */ - 0, /* U+000600: ARABIC NUMBER SIGN*/ - 0, /* U+000601: ARABIC SIGN SANAH*/ - 0, /* U+000602: ARABIC FOOTNOTE MARKER*/ - 0, /* U+000603: ARABIC SIGN SAFHA*/ - 0, /* U+000604: */ - 0, /* U+000605: */ - 0, /* U+000606: */ - 0, /* U+000607: */ - 0, /* U+000608: */ - 0, /* U+000609: */ - 0, /* U+00060a: */ - 0, /* U+00060b: AFGHANI SIGN*/ - 0, /* U+00060c: ARABIC COMMA*/ - 0, /* U+00060d: ARABIC DATE SEPARATOR*/ - 0, /* U+00060e: ARABIC POETIC VERSE SIGN*/ - 0, /* U+00060f: ARABIC SIGN MISRA*/ - RTUNI_ALPHA, /* U+000610: ARABIC SIGN SALLALLAHOU ALAYHE WASSALLAM*/ - RTUNI_ALPHA, /* U+000611: ARABIC SIGN ALAYHE ASSALLAM*/ - RTUNI_ALPHA, /* U+000612: ARABIC SIGN RAHMATULLAH ALAYHE*/ - RTUNI_ALPHA, /* U+000613: ARABIC SIGN RADI ALLAHOU ANHU*/ - RTUNI_ALPHA, /* U+000614: ARABIC SIGN TAKHALLUS*/ - RTUNI_ALPHA, /* U+000615: ARABIC SMALL HIGH TAH*/ - 0, /* U+000616: */ - 0, /* U+000617: */ - 0, /* U+000618: */ - 0, /* U+000619: */ - 0, /* U+00061a: */ - 0, /* U+00061b: ARABIC SEMICOLON*/ - 0, /* U+00061c: */ - 0, /* U+00061d: */ - 0, /* U+00061e: ARABIC TRIPLE DOT PUNCTUATION MARK*/ - 0, /* U+00061f: ARABIC QUESTION MARK*/ - 0, /* U+000620: */ - RTUNI_ALPHA, /* U+000621: ARABIC LETTER HAMZA*/ - RTUNI_ALPHA, /* U+000622: ARABIC LETTER ALEF WITH MADDA ABOVE*/ - RTUNI_ALPHA, /* U+000623: ARABIC LETTER ALEF WITH HAMZA ABOVE*/ - RTUNI_ALPHA, /* U+000624: ARABIC LETTER WAW WITH HAMZA ABOVE*/ - RTUNI_ALPHA, /* U+000625: ARABIC LETTER ALEF WITH HAMZA BELOW*/ - RTUNI_ALPHA, /* U+000626: ARABIC LETTER YEH WITH HAMZA ABOVE*/ - RTUNI_ALPHA, /* U+000627: ARABIC LETTER ALEF*/ - RTUNI_ALPHA, /* U+000628: ARABIC LETTER BEH*/ - RTUNI_ALPHA, /* U+000629: ARABIC LETTER TEH MARBUTA*/ - RTUNI_ALPHA, /* U+00062a: ARABIC LETTER TEH*/ - RTUNI_ALPHA, /* U+00062b: ARABIC LETTER THEH*/ - RTUNI_ALPHA, /* U+00062c: ARABIC LETTER JEEM*/ - RTUNI_ALPHA, /* U+00062d: ARABIC LETTER HAH*/ - RTUNI_ALPHA, /* U+00062e: ARABIC LETTER KHAH*/ - RTUNI_ALPHA, /* U+00062f: ARABIC LETTER DAL*/ - RTUNI_ALPHA, /* U+000630: ARABIC LETTER THAL*/ - RTUNI_ALPHA, /* U+000631: ARABIC LETTER REH*/ - RTUNI_ALPHA, /* U+000632: ARABIC LETTER ZAIN*/ - RTUNI_ALPHA, /* U+000633: ARABIC LETTER SEEN*/ - RTUNI_ALPHA, /* U+000634: ARABIC LETTER SHEEN*/ - RTUNI_ALPHA, /* U+000635: ARABIC LETTER SAD*/ - RTUNI_ALPHA, /* U+000636: ARABIC LETTER DAD*/ - RTUNI_ALPHA, /* U+000637: ARABIC LETTER TAH*/ - RTUNI_ALPHA, /* U+000638: ARABIC LETTER ZAH*/ - RTUNI_ALPHA, /* U+000639: ARABIC LETTER AIN*/ - RTUNI_ALPHA, /* U+00063a: ARABIC LETTER GHAIN*/ - 0, /* U+00063b: */ - 0, /* U+00063c: */ - 0, /* U+00063d: */ - 0, /* U+00063e: */ - 0, /* U+00063f: */ - RTUNI_ALPHA, /* U+000640: ARABIC TATWEEL*/ - RTUNI_ALPHA, /* U+000641: ARABIC LETTER FEH*/ - RTUNI_ALPHA, /* U+000642: ARABIC LETTER QAF*/ - RTUNI_ALPHA, /* U+000643: ARABIC LETTER KAF*/ - RTUNI_ALPHA, /* U+000644: ARABIC LETTER LAM*/ - RTUNI_ALPHA, /* U+000645: ARABIC LETTER MEEM*/ - RTUNI_ALPHA, /* U+000646: ARABIC LETTER NOON*/ - RTUNI_ALPHA, /* U+000647: ARABIC LETTER HEH*/ - RTUNI_ALPHA, /* U+000648: ARABIC LETTER WAW*/ - RTUNI_ALPHA, /* U+000649: ARABIC LETTER ALEF MAKSURA*/ - RTUNI_ALPHA, /* U+00064a: ARABIC LETTER YEH*/ - RTUNI_ALPHA, /* U+00064b: ARABIC FATHATAN*/ - RTUNI_ALPHA, /* U+00064c: ARABIC DAMMATAN*/ - RTUNI_ALPHA, /* U+00064d: ARABIC KASRATAN*/ - RTUNI_ALPHA, /* U+00064e: ARABIC FATHA*/ - RTUNI_ALPHA, /* U+00064f: ARABIC DAMMA*/ - RTUNI_ALPHA, /* U+000650: ARABIC KASRA*/ - RTUNI_ALPHA, /* U+000651: ARABIC SHADDA*/ - RTUNI_ALPHA, /* U+000652: ARABIC SUKUN*/ - RTUNI_ALPHA, /* U+000653: ARABIC MADDAH ABOVE*/ - RTUNI_ALPHA, /* U+000654: ARABIC HAMZA ABOVE*/ - RTUNI_ALPHA, /* U+000655: ARABIC HAMZA BELOW*/ - RTUNI_ALPHA, /* U+000656: ARABIC SUBSCRIPT ALEF*/ - RTUNI_ALPHA, /* U+000657: ARABIC INVERTED DAMMA*/ - 0, /* U+000658: ARABIC MARK NOON GHUNNA*/ - RTUNI_ALPHA, /* U+000659: ARABIC ZWARAKAY*/ - RTUNI_ALPHA, /* U+00065a: ARABIC VOWEL SIGN SMALL V ABOVE*/ - RTUNI_ALPHA, /* U+00065b: ARABIC VOWEL SIGN INVERTED SMALL V ABOVE*/ - RTUNI_ALPHA, /* U+00065c: ARABIC VOWEL SIGN DOT BELOW*/ - RTUNI_ALPHA, /* U+00065d: ARABIC REVERSED DAMMA*/ - RTUNI_ALPHA, /* U+00065e: ARABIC FATHA WITH TWO DOTS*/ - 0, /* U+00065f: */ - RTUNI_DDIGIT, /* U+000660: ARABIC-INDIC DIGIT ZERO*/ - RTUNI_DDIGIT, /* U+000661: ARABIC-INDIC DIGIT ONE*/ - RTUNI_DDIGIT, /* U+000662: ARABIC-INDIC DIGIT TWO*/ - RTUNI_DDIGIT, /* U+000663: ARABIC-INDIC DIGIT THREE*/ - RTUNI_DDIGIT, /* U+000664: ARABIC-INDIC DIGIT FOUR*/ - RTUNI_DDIGIT, /* U+000665: ARABIC-INDIC DIGIT FIVE*/ - RTUNI_DDIGIT, /* U+000666: ARABIC-INDIC DIGIT SIX*/ - RTUNI_DDIGIT, /* U+000667: ARABIC-INDIC DIGIT SEVEN*/ - RTUNI_DDIGIT, /* U+000668: ARABIC-INDIC DIGIT EIGHT*/ - RTUNI_DDIGIT, /* U+000669: ARABIC-INDIC DIGIT NINE*/ - 0, /* U+00066a: ARABIC PERCENT SIGN*/ - 0, /* U+00066b: ARABIC DECIMAL SEPARATOR*/ - 0, /* U+00066c: ARABIC THOUSANDS SEPARATOR*/ - 0, /* U+00066d: ARABIC FIVE POINTED STAR*/ - RTUNI_ALPHA, /* U+00066e: ARABIC LETTER DOTLESS BEH*/ - RTUNI_ALPHA, /* U+00066f: ARABIC LETTER DOTLESS QAF*/ - RTUNI_ALPHA, /* U+000670: ARABIC LETTER SUPERSCRIPT ALEF*/ - RTUNI_ALPHA, /* U+000671: ARABIC LETTER ALEF WASLA*/ - RTUNI_ALPHA, /* U+000672: ARABIC LETTER ALEF WITH WAVY HAMZA ABOVE*/ - RTUNI_ALPHA, /* U+000673: ARABIC LETTER ALEF WITH WAVY HAMZA BELOW*/ - RTUNI_ALPHA, /* U+000674: ARABIC LETTER HIGH HAMZA*/ - RTUNI_ALPHA, /* U+000675: ARABIC LETTER HIGH HAMZA ALEF*/ - RTUNI_ALPHA, /* U+000676: ARABIC LETTER HIGH HAMZA WAW*/ - RTUNI_ALPHA, /* U+000677: ARABIC LETTER U WITH HAMZA ABOVE*/ - RTUNI_ALPHA, /* U+000678: ARABIC LETTER HIGH HAMZA YEH*/ - RTUNI_ALPHA, /* U+000679: ARABIC LETTER TTEH*/ - RTUNI_ALPHA, /* U+00067a: ARABIC LETTER TTEHEH*/ - RTUNI_ALPHA, /* U+00067b: ARABIC LETTER BEEH*/ - RTUNI_ALPHA, /* U+00067c: ARABIC LETTER TEH WITH RING*/ - RTUNI_ALPHA, /* U+00067d: ARABIC LETTER TEH WITH THREE DOTS ABOVE DOWNWARDS*/ - RTUNI_ALPHA, /* U+00067e: ARABIC LETTER PEH*/ - RTUNI_ALPHA, /* U+00067f: ARABIC LETTER TEHEH*/ - RTUNI_ALPHA, /* U+000680: ARABIC LETTER BEHEH*/ - RTUNI_ALPHA, /* U+000681: ARABIC LETTER HAH WITH HAMZA ABOVE*/ - RTUNI_ALPHA, /* U+000682: ARABIC LETTER HAH WITH TWO DOTS VERTICAL ABOVE*/ - RTUNI_ALPHA, /* U+000683: ARABIC LETTER NYEH*/ - RTUNI_ALPHA, /* U+000684: ARABIC LETTER DYEH*/ - RTUNI_ALPHA, /* U+000685: ARABIC LETTER HAH WITH THREE DOTS ABOVE*/ - RTUNI_ALPHA, /* U+000686: ARABIC LETTER TCHEH*/ - RTUNI_ALPHA, /* U+000687: ARABIC LETTER TCHEHEH*/ - RTUNI_ALPHA, /* U+000688: ARABIC LETTER DDAL*/ - RTUNI_ALPHA, /* U+000689: ARABIC LETTER DAL WITH RING*/ - RTUNI_ALPHA, /* U+00068a: ARABIC LETTER DAL WITH DOT BELOW*/ - RTUNI_ALPHA, /* U+00068b: ARABIC LETTER DAL WITH DOT BELOW AND SMALL TAH*/ - RTUNI_ALPHA, /* U+00068c: ARABIC LETTER DAHAL*/ - RTUNI_ALPHA, /* U+00068d: ARABIC LETTER DDAHAL*/ - RTUNI_ALPHA, /* U+00068e: ARABIC LETTER DUL*/ - RTUNI_ALPHA, /* U+00068f: ARABIC LETTER DAL WITH THREE DOTS ABOVE DOWNWARDS*/ - RTUNI_ALPHA, /* U+000690: ARABIC LETTER DAL WITH FOUR DOTS ABOVE*/ - RTUNI_ALPHA, /* U+000691: ARABIC LETTER RREH*/ - RTUNI_ALPHA, /* U+000692: ARABIC LETTER REH WITH SMALL V*/ - RTUNI_ALPHA, /* U+000693: ARABIC LETTER REH WITH RING*/ - RTUNI_ALPHA, /* U+000694: ARABIC LETTER REH WITH DOT BELOW*/ - RTUNI_ALPHA, /* U+000695: ARABIC LETTER REH WITH SMALL V BELOW*/ - RTUNI_ALPHA, /* U+000696: ARABIC LETTER REH WITH DOT BELOW AND DOT ABOVE*/ - RTUNI_ALPHA, /* U+000697: ARABIC LETTER REH WITH TWO DOTS ABOVE*/ - RTUNI_ALPHA, /* U+000698: ARABIC LETTER JEH*/ - RTUNI_ALPHA, /* U+000699: ARABIC LETTER REH WITH FOUR DOTS ABOVE*/ - RTUNI_ALPHA, /* U+00069a: ARABIC LETTER SEEN WITH DOT BELOW AND DOT ABOVE*/ - RTUNI_ALPHA, /* U+00069b: ARABIC LETTER SEEN WITH THREE DOTS BELOW*/ - RTUNI_ALPHA, /* U+00069c: ARABIC LETTER SEEN WITH THREE DOTS BELOW AND THREE DOTS ABOVE*/ - RTUNI_ALPHA, /* U+00069d: ARABIC LETTER SAD WITH TWO DOTS BELOW*/ - RTUNI_ALPHA, /* U+00069e: ARABIC LETTER SAD WITH THREE DOTS ABOVE*/ - RTUNI_ALPHA, /* U+00069f: ARABIC LETTER TAH WITH THREE DOTS ABOVE*/ - RTUNI_ALPHA, /* U+0006a0: ARABIC LETTER AIN WITH THREE DOTS ABOVE*/ - RTUNI_ALPHA, /* U+0006a1: ARABIC LETTER DOTLESS FEH*/ - RTUNI_ALPHA, /* U+0006a2: ARABIC LETTER FEH WITH DOT MOVED BELOW*/ - RTUNI_ALPHA, /* U+0006a3: ARABIC LETTER FEH WITH DOT BELOW*/ - RTUNI_ALPHA, /* U+0006a4: ARABIC LETTER VEH*/ - RTUNI_ALPHA, /* U+0006a5: ARABIC LETTER FEH WITH THREE DOTS BELOW*/ - RTUNI_ALPHA, /* U+0006a6: ARABIC LETTER PEHEH*/ - RTUNI_ALPHA, /* U+0006a7: ARABIC LETTER QAF WITH DOT ABOVE*/ - RTUNI_ALPHA, /* U+0006a8: ARABIC LETTER QAF WITH THREE DOTS ABOVE*/ - RTUNI_ALPHA, /* U+0006a9: ARABIC LETTER KEHEH*/ - RTUNI_ALPHA, /* U+0006aa: ARABIC LETTER SWASH KAF*/ - RTUNI_ALPHA, /* U+0006ab: ARABIC LETTER KAF WITH RING*/ - RTUNI_ALPHA, /* U+0006ac: ARABIC LETTER KAF WITH DOT ABOVE*/ - RTUNI_ALPHA, /* U+0006ad: ARABIC LETTER NG*/ - RTUNI_ALPHA, /* U+0006ae: ARABIC LETTER KAF WITH THREE DOTS BELOW*/ - RTUNI_ALPHA, /* U+0006af: ARABIC LETTER GAF*/ - RTUNI_ALPHA, /* U+0006b0: ARABIC LETTER GAF WITH RING*/ - RTUNI_ALPHA, /* U+0006b1: ARABIC LETTER NGOEH*/ - RTUNI_ALPHA, /* U+0006b2: ARABIC LETTER GAF WITH TWO DOTS BELOW*/ - RTUNI_ALPHA, /* U+0006b3: ARABIC LETTER GUEH*/ - RTUNI_ALPHA, /* U+0006b4: ARABIC LETTER GAF WITH THREE DOTS ABOVE*/ - RTUNI_ALPHA, /* U+0006b5: ARABIC LETTER LAM WITH SMALL V*/ - RTUNI_ALPHA, /* U+0006b6: ARABIC LETTER LAM WITH DOT ABOVE*/ - RTUNI_ALPHA, /* U+0006b7: ARABIC LETTER LAM WITH THREE DOTS ABOVE*/ - RTUNI_ALPHA, /* U+0006b8: ARABIC LETTER LAM WITH THREE DOTS BELOW*/ - RTUNI_ALPHA, /* U+0006b9: ARABIC LETTER NOON WITH DOT BELOW*/ - RTUNI_ALPHA, /* U+0006ba: ARABIC LETTER NOON GHUNNA*/ - RTUNI_ALPHA, /* U+0006bb: ARABIC LETTER RNOON*/ - RTUNI_ALPHA, /* U+0006bc: ARABIC LETTER NOON WITH RING*/ - RTUNI_ALPHA, /* U+0006bd: ARABIC LETTER NOON WITH THREE DOTS ABOVE*/ - RTUNI_ALPHA, /* U+0006be: ARABIC LETTER HEH DOACHASHMEE*/ - RTUNI_ALPHA, /* U+0006bf: ARABIC LETTER TCHEH WITH DOT ABOVE*/ - RTUNI_ALPHA, /* U+0006c0: ARABIC LETTER HEH WITH YEH ABOVE*/ - RTUNI_ALPHA, /* U+0006c1: ARABIC LETTER HEH GOAL*/ - RTUNI_ALPHA, /* U+0006c2: ARABIC LETTER HEH GOAL WITH HAMZA ABOVE*/ - RTUNI_ALPHA, /* U+0006c3: ARABIC LETTER TEH MARBUTA GOAL*/ - RTUNI_ALPHA, /* U+0006c4: ARABIC LETTER WAW WITH RING*/ - RTUNI_ALPHA, /* U+0006c5: ARABIC LETTER KIRGHIZ OE*/ - RTUNI_ALPHA, /* U+0006c6: ARABIC LETTER OE*/ - RTUNI_ALPHA, /* U+0006c7: ARABIC LETTER U*/ - RTUNI_ALPHA, /* U+0006c8: ARABIC LETTER YU*/ - RTUNI_ALPHA, /* U+0006c9: ARABIC LETTER KIRGHIZ YU*/ - RTUNI_ALPHA, /* U+0006ca: ARABIC LETTER WAW WITH TWO DOTS ABOVE*/ - RTUNI_ALPHA, /* U+0006cb: ARABIC LETTER VE*/ - RTUNI_ALPHA, /* U+0006cc: ARABIC LETTER FARSI YEH*/ - RTUNI_ALPHA, /* U+0006cd: ARABIC LETTER YEH WITH TAIL*/ - RTUNI_ALPHA, /* U+0006ce: ARABIC LETTER YEH WITH SMALL V*/ - RTUNI_ALPHA, /* U+0006cf: ARABIC LETTER WAW WITH DOT ABOVE*/ - RTUNI_ALPHA, /* U+0006d0: ARABIC LETTER E*/ - RTUNI_ALPHA, /* U+0006d1: ARABIC LETTER YEH WITH THREE DOTS BELOW*/ - RTUNI_ALPHA, /* U+0006d2: ARABIC LETTER YEH BARREE*/ - RTUNI_ALPHA, /* U+0006d3: ARABIC LETTER YEH BARREE WITH HAMZA ABOVE*/ - 0, /* U+0006d4: ARABIC FULL STOP*/ - RTUNI_ALPHA, /* U+0006d5: ARABIC LETTER AE*/ - RTUNI_ALPHA, /* U+0006d6: ARABIC SMALL HIGH LIGATURE SAD WITH LAM WITH ALEF MAKSURA*/ - RTUNI_ALPHA, /* U+0006d7: ARABIC SMALL HIGH LIGATURE QAF WITH LAM WITH ALEF MAKSURA*/ - RTUNI_ALPHA, /* U+0006d8: ARABIC SMALL HIGH MEEM INITIAL FORM*/ - RTUNI_ALPHA, /* U+0006d9: ARABIC SMALL HIGH LAM ALEF*/ - RTUNI_ALPHA, /* U+0006da: ARABIC SMALL HIGH JEEM*/ - RTUNI_ALPHA, /* U+0006db: ARABIC SMALL HIGH THREE DOTS*/ - RTUNI_ALPHA, /* U+0006dc: ARABIC SMALL HIGH SEEN*/ - 0, /* U+0006dd: ARABIC END OF AYAH*/ - 0, /* U+0006de: ARABIC START OF RUB EL HIZB*/ - 0, /* U+0006df: ARABIC SMALL HIGH ROUNDED ZERO*/ - 0, /* U+0006e0: ARABIC SMALL HIGH UPRIGHT RECTANGULAR ZERO*/ - RTUNI_ALPHA, /* U+0006e1: ARABIC SMALL HIGH DOTLESS HEAD OF KHAH*/ - RTUNI_ALPHA, /* U+0006e2: ARABIC SMALL HIGH MEEM ISOLATED FORM*/ - RTUNI_ALPHA, /* U+0006e3: ARABIC SMALL LOW SEEN*/ - RTUNI_ALPHA, /* U+0006e4: ARABIC SMALL HIGH MADDA*/ - RTUNI_ALPHA, /* U+0006e5: ARABIC SMALL WAW*/ - RTUNI_ALPHA, /* U+0006e6: ARABIC SMALL YEH*/ - RTUNI_ALPHA, /* U+0006e7: ARABIC SMALL HIGH YEH*/ - RTUNI_ALPHA, /* U+0006e8: ARABIC SMALL HIGH NOON*/ - 0, /* U+0006e9: ARABIC PLACE OF SAJDAH*/ - 0, /* U+0006ea: ARABIC EMPTY CENTRE LOW STOP*/ - 0, /* U+0006eb: ARABIC EMPTY CENTRE HIGH STOP*/ - 0, /* U+0006ec: ARABIC ROUNDED HIGH STOP WITH FILLED CENTRE*/ - RTUNI_ALPHA, /* U+0006ed: ARABIC SMALL LOW MEEM*/ - RTUNI_ALPHA, /* U+0006ee: ARABIC LETTER DAL WITH INVERTED V*/ - RTUNI_ALPHA, /* U+0006ef: ARABIC LETTER REH WITH INVERTED V*/ - RTUNI_DDIGIT, /* U+0006f0: EXTENDED ARABIC-INDIC DIGIT ZERO*/ - RTUNI_DDIGIT, /* U+0006f1: EXTENDED ARABIC-INDIC DIGIT ONE*/ - RTUNI_DDIGIT, /* U+0006f2: EXTENDED ARABIC-INDIC DIGIT TWO*/ - RTUNI_DDIGIT, /* U+0006f3: EXTENDED ARABIC-INDIC DIGIT THREE*/ - RTUNI_DDIGIT, /* U+0006f4: EXTENDED ARABIC-INDIC DIGIT FOUR*/ - RTUNI_DDIGIT, /* U+0006f5: EXTENDED ARABIC-INDIC DIGIT FIVE*/ - RTUNI_DDIGIT, /* U+0006f6: EXTENDED ARABIC-INDIC DIGIT SIX*/ - RTUNI_DDIGIT, /* U+0006f7: EXTENDED ARABIC-INDIC DIGIT SEVEN*/ - RTUNI_DDIGIT, /* U+0006f8: EXTENDED ARABIC-INDIC DIGIT EIGHT*/ - RTUNI_DDIGIT, /* U+0006f9: EXTENDED ARABIC-INDIC DIGIT NINE*/ - RTUNI_ALPHA, /* U+0006fa: ARABIC LETTER SHEEN WITH DOT BELOW*/ - RTUNI_ALPHA, /* U+0006fb: ARABIC LETTER DAD WITH DOT BELOW*/ - RTUNI_ALPHA, /* U+0006fc: ARABIC LETTER GHAIN WITH DOT BELOW*/ - 0, /* U+0006fd: ARABIC SIGN SINDHI AMPERSAND*/ - 0, /* U+0006fe: ARABIC SIGN SINDHI POSTPOSITION MEN*/ - RTUNI_ALPHA, /* U+0006ff: ARABIC LETTER HEH WITH INVERTED V*/ - 0, /* U+000700: SYRIAC END OF PARAGRAPH*/ - 0, /* U+000701: SYRIAC SUPRALINEAR FULL STOP*/ - 0, /* U+000702: SYRIAC SUBLINEAR FULL STOP*/ - 0, /* U+000703: SYRIAC SUPRALINEAR COLON*/ - 0, /* U+000704: SYRIAC SUBLINEAR COLON*/ - 0, /* U+000705: SYRIAC HORIZONTAL COLON*/ - 0, /* U+000706: SYRIAC COLON SKEWED LEFT*/ - 0, /* U+000707: SYRIAC COLON SKEWED RIGHT*/ - 0, /* U+000708: SYRIAC SUPRALINEAR COLON SKEWED LEFT*/ - 0, /* U+000709: SYRIAC SUBLINEAR COLON SKEWED RIGHT*/ - 0, /* U+00070a: SYRIAC CONTRACTION*/ - 0, /* U+00070b: SYRIAC HARKLEAN OBELUS*/ - 0, /* U+00070c: SYRIAC HARKLEAN METOBELUS*/ - 0, /* U+00070d: SYRIAC HARKLEAN ASTERISCUS*/ - 0, /* U+00070e: */ - 0, /* U+00070f: SYRIAC ABBREVIATION MARK*/ - RTUNI_ALPHA, /* U+000710: SYRIAC LETTER ALAPH*/ - RTUNI_ALPHA, /* U+000711: SYRIAC LETTER SUPERSCRIPT ALAPH*/ - RTUNI_ALPHA, /* U+000712: SYRIAC LETTER BETH*/ - RTUNI_ALPHA, /* U+000713: SYRIAC LETTER GAMAL*/ - RTUNI_ALPHA, /* U+000714: SYRIAC LETTER GAMAL GARSHUNI*/ - RTUNI_ALPHA, /* U+000715: SYRIAC LETTER DALATH*/ - RTUNI_ALPHA, /* U+000716: SYRIAC LETTER DOTLESS DALATH RISH*/ - RTUNI_ALPHA, /* U+000717: SYRIAC LETTER HE*/ - RTUNI_ALPHA, /* U+000718: SYRIAC LETTER WAW*/ - RTUNI_ALPHA, /* U+000719: SYRIAC LETTER ZAIN*/ - RTUNI_ALPHA, /* U+00071a: SYRIAC LETTER HETH*/ - RTUNI_ALPHA, /* U+00071b: SYRIAC LETTER TETH*/ - RTUNI_ALPHA, /* U+00071c: SYRIAC LETTER TETH GARSHUNI*/ - RTUNI_ALPHA, /* U+00071d: SYRIAC LETTER YUDH*/ - RTUNI_ALPHA, /* U+00071e: SYRIAC LETTER YUDH HE*/ - RTUNI_ALPHA, /* U+00071f: SYRIAC LETTER KAPH*/ - RTUNI_ALPHA, /* U+000720: SYRIAC LETTER LAMADH*/ - RTUNI_ALPHA, /* U+000721: SYRIAC LETTER MIM*/ - RTUNI_ALPHA, /* U+000722: SYRIAC LETTER NUN*/ - RTUNI_ALPHA, /* U+000723: SYRIAC LETTER SEMKATH*/ - RTUNI_ALPHA, /* U+000724: SYRIAC LETTER FINAL SEMKATH*/ - RTUNI_ALPHA, /* U+000725: SYRIAC LETTER E*/ - RTUNI_ALPHA, /* U+000726: SYRIAC LETTER PE*/ - RTUNI_ALPHA, /* U+000727: SYRIAC LETTER REVERSED PE*/ - RTUNI_ALPHA, /* U+000728: SYRIAC LETTER SADHE*/ - RTUNI_ALPHA, /* U+000729: SYRIAC LETTER QAPH*/ - RTUNI_ALPHA, /* U+00072a: SYRIAC LETTER RISH*/ - RTUNI_ALPHA, /* U+00072b: SYRIAC LETTER SHIN*/ - RTUNI_ALPHA, /* U+00072c: SYRIAC LETTER TAW*/ - RTUNI_ALPHA, /* U+00072d: SYRIAC LETTER PERSIAN BHETH*/ - RTUNI_ALPHA, /* U+00072e: SYRIAC LETTER PERSIAN GHAMAL*/ - RTUNI_ALPHA, /* U+00072f: SYRIAC LETTER PERSIAN DHALATH*/ - RTUNI_ALPHA, /* U+000730: SYRIAC PTHAHA ABOVE*/ - RTUNI_ALPHA, /* U+000731: SYRIAC PTHAHA BELOW*/ - RTUNI_ALPHA, /* U+000732: SYRIAC PTHAHA DOTTED*/ - RTUNI_ALPHA, /* U+000733: SYRIAC ZQAPHA ABOVE*/ - RTUNI_ALPHA, /* U+000734: SYRIAC ZQAPHA BELOW*/ - RTUNI_ALPHA, /* U+000735: SYRIAC ZQAPHA DOTTED*/ - RTUNI_ALPHA, /* U+000736: SYRIAC RBASA ABOVE*/ - RTUNI_ALPHA, /* U+000737: SYRIAC RBASA BELOW*/ - RTUNI_ALPHA, /* U+000738: SYRIAC DOTTED ZLAMA HORIZONTAL*/ - RTUNI_ALPHA, /* U+000739: SYRIAC DOTTED ZLAMA ANGULAR*/ - RTUNI_ALPHA, /* U+00073a: SYRIAC HBASA ABOVE*/ - RTUNI_ALPHA, /* U+00073b: SYRIAC HBASA BELOW*/ - RTUNI_ALPHA, /* U+00073c: SYRIAC HBASA-ESASA DOTTED*/ - RTUNI_ALPHA, /* U+00073d: SYRIAC ESASA ABOVE*/ - RTUNI_ALPHA, /* U+00073e: SYRIAC ESASA BELOW*/ - RTUNI_ALPHA, /* U+00073f: SYRIAC RWAHA*/ - 0, /* U+000740: SYRIAC FEMININE DOT*/ - 0, /* U+000741: SYRIAC QUSHSHAYA*/ - 0, /* U+000742: SYRIAC RUKKAKHA*/ - 0, /* U+000743: SYRIAC TWO VERTICAL DOTS ABOVE*/ - 0, /* U+000744: SYRIAC TWO VERTICAL DOTS BELOW*/ - 0, /* U+000745: SYRIAC THREE DOTS ABOVE*/ - 0, /* U+000746: SYRIAC THREE DOTS BELOW*/ - 0, /* U+000747: SYRIAC OBLIQUE LINE ABOVE*/ - 0, /* U+000748: SYRIAC OBLIQUE LINE BELOW*/ - 0, /* U+000749: SYRIAC MUSIC*/ - 0, /* U+00074a: SYRIAC BARREKH*/ - 0, /* U+00074b: */ - 0, /* U+00074c: */ - RTUNI_ALPHA, /* U+00074d: SYRIAC LETTER SOGDIAN ZHAIN*/ - RTUNI_ALPHA, /* U+00074e: SYRIAC LETTER SOGDIAN KHAPH*/ - RTUNI_ALPHA, /* U+00074f: SYRIAC LETTER SOGDIAN FE*/ - RTUNI_ALPHA, /* U+000750: ARABIC LETTER BEH WITH THREE DOTS HORIZONTALLY BELOW*/ - RTUNI_ALPHA, /* U+000751: ARABIC LETTER BEH WITH DOT BELOW AND THREE DOTS ABOVE*/ - RTUNI_ALPHA, /* U+000752: ARABIC LETTER BEH WITH THREE DOTS POINTING UPWARDS BELOW*/ - RTUNI_ALPHA, /* U+000753: ARABIC LETTER BEH WITH THREE DOTS POINTING UPWARDS BELOW AND TWO DOTS ABOVE*/ - RTUNI_ALPHA, /* U+000754: ARABIC LETTER BEH WITH TWO DOTS BELOW AND DOT ABOVE*/ - RTUNI_ALPHA, /* U+000755: ARABIC LETTER BEH WITH INVERTED SMALL V BELOW*/ - RTUNI_ALPHA, /* U+000756: ARABIC LETTER BEH WITH SMALL V*/ - RTUNI_ALPHA, /* U+000757: ARABIC LETTER HAH WITH TWO DOTS ABOVE*/ - RTUNI_ALPHA, /* U+000758: ARABIC LETTER HAH WITH THREE DOTS POINTING UPWARDS BELOW*/ - RTUNI_ALPHA, /* U+000759: ARABIC LETTER DAL WITH TWO DOTS VERTICALLY BELOW AND SMALL TAH*/ - RTUNI_ALPHA, /* U+00075a: ARABIC LETTER DAL WITH INVERTED SMALL V BELOW*/ - RTUNI_ALPHA, /* U+00075b: ARABIC LETTER REH WITH STROKE*/ - RTUNI_ALPHA, /* U+00075c: ARABIC LETTER SEEN WITH FOUR DOTS ABOVE*/ - RTUNI_ALPHA, /* U+00075d: ARABIC LETTER AIN WITH TWO DOTS ABOVE*/ - RTUNI_ALPHA, /* U+00075e: ARABIC LETTER AIN WITH THREE DOTS POINTING DOWNWARDS ABOVE*/ - RTUNI_ALPHA, /* U+00075f: ARABIC LETTER AIN WITH TWO DOTS VERTICALLY ABOVE*/ - RTUNI_ALPHA, /* U+000760: ARABIC LETTER FEH WITH TWO DOTS BELOW*/ - RTUNI_ALPHA, /* U+000761: ARABIC LETTER FEH WITH THREE DOTS POINTING UPWARDS BELOW*/ - RTUNI_ALPHA, /* U+000762: ARABIC LETTER KEHEH WITH DOT ABOVE*/ - RTUNI_ALPHA, /* U+000763: ARABIC LETTER KEHEH WITH THREE DOTS ABOVE*/ - RTUNI_ALPHA, /* U+000764: ARABIC LETTER KEHEH WITH THREE DOTS POINTING UPWARDS BELOW*/ - RTUNI_ALPHA, /* U+000765: ARABIC LETTER MEEM WITH DOT ABOVE*/ - RTUNI_ALPHA, /* U+000766: ARABIC LETTER MEEM WITH DOT BELOW*/ - RTUNI_ALPHA, /* U+000767: ARABIC LETTER NOON WITH TWO DOTS BELOW*/ - RTUNI_ALPHA, /* U+000768: ARABIC LETTER NOON WITH SMALL TAH*/ - RTUNI_ALPHA, /* U+000769: ARABIC LETTER NOON WITH SMALL V*/ - RTUNI_ALPHA, /* U+00076a: ARABIC LETTER LAM WITH BAR*/ - RTUNI_ALPHA, /* U+00076b: ARABIC LETTER REH WITH TWO DOTS VERTICALLY ABOVE*/ - RTUNI_ALPHA, /* U+00076c: ARABIC LETTER REH WITH HAMZA ABOVE*/ - RTUNI_ALPHA, /* U+00076d: ARABIC LETTER SEEN WITH TWO DOTS VERTICALLY ABOVE*/ - 0, /* U+00076e: */ - 0, /* U+00076f: */ - 0, /* U+000770: */ - 0, /* U+000771: */ - 0, /* U+000772: */ - 0, /* U+000773: */ - 0, /* U+000774: */ - 0, /* U+000775: */ - 0, /* U+000776: */ - 0, /* U+000777: */ - 0, /* U+000778: */ - 0, /* U+000779: */ - 0, /* U+00077a: */ - 0, /* U+00077b: */ - 0, /* U+00077c: */ - 0, /* U+00077d: */ - 0, /* U+00077e: */ - 0, /* U+00077f: */ - RTUNI_ALPHA, /* U+000780: THAANA LETTER HAA*/ - RTUNI_ALPHA, /* U+000781: THAANA LETTER SHAVIYANI*/ - RTUNI_ALPHA, /* U+000782: THAANA LETTER NOONU*/ - RTUNI_ALPHA, /* U+000783: THAANA LETTER RAA*/ - RTUNI_ALPHA, /* U+000784: THAANA LETTER BAA*/ - RTUNI_ALPHA, /* U+000785: THAANA LETTER LHAVIYANI*/ - RTUNI_ALPHA, /* U+000786: THAANA LETTER KAAFU*/ - RTUNI_ALPHA, /* U+000787: THAANA LETTER ALIFU*/ - RTUNI_ALPHA, /* U+000788: THAANA LETTER VAAVU*/ - RTUNI_ALPHA, /* U+000789: THAANA LETTER MEEMU*/ - RTUNI_ALPHA, /* U+00078a: THAANA LETTER FAAFU*/ - RTUNI_ALPHA, /* U+00078b: THAANA LETTER DHAALU*/ - RTUNI_ALPHA, /* U+00078c: THAANA LETTER THAA*/ - RTUNI_ALPHA, /* U+00078d: THAANA LETTER LAAMU*/ - RTUNI_ALPHA, /* U+00078e: THAANA LETTER GAAFU*/ - RTUNI_ALPHA, /* U+00078f: THAANA LETTER GNAVIYANI*/ - RTUNI_ALPHA, /* U+000790: THAANA LETTER SEENU*/ - RTUNI_ALPHA, /* U+000791: THAANA LETTER DAVIYANI*/ - RTUNI_ALPHA, /* U+000792: THAANA LETTER ZAVIYANI*/ - RTUNI_ALPHA, /* U+000793: THAANA LETTER TAVIYANI*/ - RTUNI_ALPHA, /* U+000794: THAANA LETTER YAA*/ - RTUNI_ALPHA, /* U+000795: THAANA LETTER PAVIYANI*/ - RTUNI_ALPHA, /* U+000796: THAANA LETTER JAVIYANI*/ - RTUNI_ALPHA, /* U+000797: THAANA LETTER CHAVIYANI*/ - RTUNI_ALPHA, /* U+000798: THAANA LETTER TTAA*/ - RTUNI_ALPHA, /* U+000799: THAANA LETTER HHAA*/ - RTUNI_ALPHA, /* U+00079a: THAANA LETTER KHAA*/ - RTUNI_ALPHA, /* U+00079b: THAANA LETTER THAALU*/ - RTUNI_ALPHA, /* U+00079c: THAANA LETTER ZAA*/ - RTUNI_ALPHA, /* U+00079d: THAANA LETTER SHEENU*/ - RTUNI_ALPHA, /* U+00079e: THAANA LETTER SAADHU*/ - RTUNI_ALPHA, /* U+00079f: THAANA LETTER DAADHU*/ - RTUNI_ALPHA, /* U+0007a0: THAANA LETTER TO*/ - RTUNI_ALPHA, /* U+0007a1: THAANA LETTER ZO*/ - RTUNI_ALPHA, /* U+0007a2: THAANA LETTER AINU*/ - RTUNI_ALPHA, /* U+0007a3: THAANA LETTER GHAINU*/ - RTUNI_ALPHA, /* U+0007a4: THAANA LETTER QAAFU*/ - RTUNI_ALPHA, /* U+0007a5: THAANA LETTER WAAVU*/ - RTUNI_ALPHA, /* U+0007a6: THAANA ABAFILI*/ - RTUNI_ALPHA, /* U+0007a7: THAANA AABAAFILI*/ - RTUNI_ALPHA, /* U+0007a8: THAANA IBIFILI*/ - RTUNI_ALPHA, /* U+0007a9: THAANA EEBEEFILI*/ - RTUNI_ALPHA, /* U+0007aa: THAANA UBUFILI*/ - RTUNI_ALPHA, /* U+0007ab: THAANA OOBOOFILI*/ - RTUNI_ALPHA, /* U+0007ac: THAANA EBEFILI*/ - RTUNI_ALPHA, /* U+0007ad: THAANA EYBEYFILI*/ - RTUNI_ALPHA, /* U+0007ae: THAANA OBOFILI*/ - RTUNI_ALPHA, /* U+0007af: THAANA OABOAFILI*/ - RTUNI_ALPHA, /* U+0007b0: THAANA SUKUN*/ - RTUNI_ALPHA, /* U+0007b1: THAANA LETTER NAA*/ - 0, /* U+0007b2: */ - 0, /* U+0007b3: */ - 0, /* U+0007b4: */ - 0, /* U+0007b5: */ - 0, /* U+0007b6: */ - 0, /* U+0007b7: */ - 0, /* U+0007b8: */ - 0, /* U+0007b9: */ - 0, /* U+0007ba: */ - 0, /* U+0007bb: */ - 0, /* U+0007bc: */ - 0, /* U+0007bd: */ - 0, /* U+0007be: */ - 0, /* U+0007bf: */ - 0, /* U+0007c0: */ - 0, /* U+0007c1: */ - 0, /* U+0007c2: */ - 0, /* U+0007c3: */ - 0, /* U+0007c4: */ - 0, /* U+0007c5: */ - 0, /* U+0007c6: */ - 0, /* U+0007c7: */ - 0, /* U+0007c8: */ - 0, /* U+0007c9: */ - 0, /* U+0007ca: */ - 0, /* U+0007cb: */ - 0, /* U+0007cc: */ - 0, /* U+0007cd: */ - 0, /* U+0007ce: */ - 0, /* U+0007cf: */ - 0, /* U+0007d0: */ - 0, /* U+0007d1: */ - 0, /* U+0007d2: */ - 0, /* U+0007d3: */ - 0, /* U+0007d4: */ - 0, /* U+0007d5: */ - 0, /* U+0007d6: */ - 0, /* U+0007d7: */ - 0, /* U+0007d8: */ - 0, /* U+0007d9: */ - 0, /* U+0007da: */ - 0, /* U+0007db: */ - 0, /* U+0007dc: */ - 0, /* U+0007dd: */ - 0, /* U+0007de: */ - 0, /* U+0007df: */ - 0, /* U+0007e0: */ - 0, /* U+0007e1: */ - 0, /* U+0007e2: */ - 0, /* U+0007e3: */ - 0, /* U+0007e4: */ - 0, /* U+0007e5: */ - 0, /* U+0007e6: */ - 0, /* U+0007e7: */ - 0, /* U+0007e8: */ - 0, /* U+0007e9: */ - 0, /* U+0007ea: */ - 0, /* U+0007eb: */ - 0, /* U+0007ec: */ - 0, /* U+0007ed: */ - 0, /* U+0007ee: */ - 0, /* U+0007ef: */ - 0, /* U+0007f0: */ - 0, /* U+0007f1: */ - 0, /* U+0007f2: */ - 0, /* U+0007f3: */ - 0, /* U+0007f4: */ - 0, /* U+0007f5: */ - 0, /* U+0007f6: */ - 0, /* U+0007f7: */ - 0, /* U+0007f8: */ - 0, /* U+0007f9: */ - 0, /* U+0007fa: */ - 0, /* U+0007fb: */ - 0, /* U+0007fc: */ - 0, /* U+0007fd: */ - 0, /* U+0007fe: */ - 0, /* U+0007ff: */ - 0, /* U+000800: */ - 0, /* U+000801: */ - 0, /* U+000802: */ - 0, /* U+000803: */ - 0, /* U+000804: */ - 0, /* U+000805: */ - 0, /* U+000806: */ - 0, /* U+000807: */ - 0, /* U+000808: */ - 0, /* U+000809: */ - 0, /* U+00080a: */ - 0, /* U+00080b: */ - 0, /* U+00080c: */ - 0, /* U+00080d: */ - 0, /* U+00080e: */ - 0, /* U+00080f: */ - 0, /* U+000810: */ - 0, /* U+000811: */ - 0, /* U+000812: */ - 0, /* U+000813: */ - 0, /* U+000814: */ - 0, /* U+000815: */ - 0, /* U+000816: */ - 0, /* U+000817: */ - 0, /* U+000818: */ - 0, /* U+000819: */ - 0, /* U+00081a: */ - 0, /* U+00081b: */ - 0, /* U+00081c: */ - 0, /* U+00081d: */ - 0, /* U+00081e: */ - 0, /* U+00081f: */ - 0, /* U+000820: */ - 0, /* U+000821: */ - 0, /* U+000822: */ - 0, /* U+000823: */ - 0, /* U+000824: */ - 0, /* U+000825: */ - 0, /* U+000826: */ - 0, /* U+000827: */ - 0, /* U+000828: */ - 0, /* U+000829: */ - 0, /* U+00082a: */ - 0, /* U+00082b: */ - 0, /* U+00082c: */ - 0, /* U+00082d: */ - 0, /* U+00082e: */ - 0, /* U+00082f: */ - 0, /* U+000830: */ - 0, /* U+000831: */ - 0, /* U+000832: */ - 0, /* U+000833: */ - 0, /* U+000834: */ - 0, /* U+000835: */ - 0, /* U+000836: */ - 0, /* U+000837: */ - 0, /* U+000838: */ - 0, /* U+000839: */ - 0, /* U+00083a: */ - 0, /* U+00083b: */ - 0, /* U+00083c: */ - 0, /* U+00083d: */ - 0, /* U+00083e: */ - 0, /* U+00083f: */ - 0, /* U+000840: */ - 0, /* U+000841: */ - 0, /* U+000842: */ - 0, /* U+000843: */ - 0, /* U+000844: */ - 0, /* U+000845: */ - 0, /* U+000846: */ - 0, /* U+000847: */ - 0, /* U+000848: */ - 0, /* U+000849: */ - 0, /* U+00084a: */ - 0, /* U+00084b: */ - 0, /* U+00084c: */ - 0, /* U+00084d: */ - 0, /* U+00084e: */ - 0, /* U+00084f: */ - 0, /* U+000850: */ - 0, /* U+000851: */ - 0, /* U+000852: */ - 0, /* U+000853: */ - 0, /* U+000854: */ - 0, /* U+000855: */ - 0, /* U+000856: */ - 0, /* U+000857: */ - 0, /* U+000858: */ - 0, /* U+000859: */ - 0, /* U+00085a: */ - 0, /* U+00085b: */ - 0, /* U+00085c: */ - 0, /* U+00085d: */ - 0, /* U+00085e: */ - 0, /* U+00085f: */ - 0, /* U+000860: */ - 0, /* U+000861: */ - 0, /* U+000862: */ - 0, /* U+000863: */ - 0, /* U+000864: */ - 0, /* U+000865: */ - 0, /* U+000866: */ - 0, /* U+000867: */ - 0, /* U+000868: */ - 0, /* U+000869: */ - 0, /* U+00086a: */ - 0, /* U+00086b: */ - 0, /* U+00086c: */ - 0, /* U+00086d: */ - 0, /* U+00086e: */ - 0, /* U+00086f: */ - 0, /* U+000870: */ - 0, /* U+000871: */ - 0, /* U+000872: */ - 0, /* U+000873: */ - 0, /* U+000874: */ - 0, /* U+000875: */ - 0, /* U+000876: */ - 0, /* U+000877: */ - 0, /* U+000878: */ - 0, /* U+000879: */ - 0, /* U+00087a: */ - 0, /* U+00087b: */ - 0, /* U+00087c: */ - 0, /* U+00087d: */ - 0, /* U+00087e: */ - 0, /* U+00087f: */ - 0, /* U+000880: */ - 0, /* U+000881: */ - 0, /* U+000882: */ - 0, /* U+000883: */ - 0, /* U+000884: */ - 0, /* U+000885: */ - 0, /* U+000886: */ - 0, /* U+000887: */ - 0, /* U+000888: */ - 0, /* U+000889: */ - 0, /* U+00088a: */ - 0, /* U+00088b: */ - 0, /* U+00088c: */ - 0, /* U+00088d: */ - 0, /* U+00088e: */ - 0, /* U+00088f: */ - 0, /* U+000890: */ - 0, /* U+000891: */ - 0, /* U+000892: */ - 0, /* U+000893: */ - 0, /* U+000894: */ - 0, /* U+000895: */ - 0, /* U+000896: */ - 0, /* U+000897: */ - 0, /* U+000898: */ - 0, /* U+000899: */ - 0, /* U+00089a: */ - 0, /* U+00089b: */ - 0, /* U+00089c: */ - 0, /* U+00089d: */ - 0, /* U+00089e: */ - 0, /* U+00089f: */ - 0, /* U+0008a0: */ - 0, /* U+0008a1: */ - 0, /* U+0008a2: */ - 0, /* U+0008a3: */ - 0, /* U+0008a4: */ - 0, /* U+0008a5: */ - 0, /* U+0008a6: */ - 0, /* U+0008a7: */ - 0, /* U+0008a8: */ - 0, /* U+0008a9: */ - 0, /* U+0008aa: */ - 0, /* U+0008ab: */ - 0, /* U+0008ac: */ - 0, /* U+0008ad: */ - 0, /* U+0008ae: */ - 0, /* U+0008af: */ - 0, /* U+0008b0: */ - 0, /* U+0008b1: */ - 0, /* U+0008b2: */ - 0, /* U+0008b3: */ - 0, /* U+0008b4: */ - 0, /* U+0008b5: */ - 0, /* U+0008b6: */ - 0, /* U+0008b7: */ - 0, /* U+0008b8: */ - 0, /* U+0008b9: */ - 0, /* U+0008ba: */ - 0, /* U+0008bb: */ - 0, /* U+0008bc: */ - 0, /* U+0008bd: */ - 0, /* U+0008be: */ - 0, /* U+0008bf: */ - 0, /* U+0008c0: */ - 0, /* U+0008c1: */ - 0, /* U+0008c2: */ - 0, /* U+0008c3: */ - 0, /* U+0008c4: */ - 0, /* U+0008c5: */ - 0, /* U+0008c6: */ - 0, /* U+0008c7: */ - 0, /* U+0008c8: */ - 0, /* U+0008c9: */ - 0, /* U+0008ca: */ - 0, /* U+0008cb: */ - 0, /* U+0008cc: */ - 0, /* U+0008cd: */ - 0, /* U+0008ce: */ - 0, /* U+0008cf: */ - 0, /* U+0008d0: */ - 0, /* U+0008d1: */ - 0, /* U+0008d2: */ - 0, /* U+0008d3: */ - 0, /* U+0008d4: */ - 0, /* U+0008d5: */ - 0, /* U+0008d6: */ - 0, /* U+0008d7: */ - 0, /* U+0008d8: */ - 0, /* U+0008d9: */ - 0, /* U+0008da: */ - 0, /* U+0008db: */ - 0, /* U+0008dc: */ - 0, /* U+0008dd: */ - 0, /* U+0008de: */ - 0, /* U+0008df: */ - 0, /* U+0008e0: */ - 0, /* U+0008e1: */ - 0, /* U+0008e2: */ - 0, /* U+0008e3: */ - 0, /* U+0008e4: */ - 0, /* U+0008e5: */ - 0, /* U+0008e6: */ - 0, /* U+0008e7: */ - 0, /* U+0008e8: */ - 0, /* U+0008e9: */ - 0, /* U+0008ea: */ - 0, /* U+0008eb: */ - 0, /* U+0008ec: */ - 0, /* U+0008ed: */ - 0, /* U+0008ee: */ - 0, /* U+0008ef: */ - 0, /* U+0008f0: */ - 0, /* U+0008f1: */ - 0, /* U+0008f2: */ - 0, /* U+0008f3: */ - 0, /* U+0008f4: */ - 0, /* U+0008f5: */ - 0, /* U+0008f6: */ - 0, /* U+0008f7: */ - 0, /* U+0008f8: */ - 0, /* U+0008f9: */ - 0, /* U+0008fa: */ - 0, /* U+0008fb: */ - 0, /* U+0008fc: */ - 0, /* U+0008fd: */ - 0, /* U+0008fe: */ - 0, /* U+0008ff: */ - 0, /* U+000900: */ - RTUNI_ALPHA, /* U+000901: DEVANAGARI SIGN CANDRABINDU*/ - RTUNI_ALPHA, /* U+000902: DEVANAGARI SIGN ANUSVARA*/ - RTUNI_ALPHA, /* U+000903: DEVANAGARI SIGN VISARGA*/ - RTUNI_ALPHA, /* U+000904: DEVANAGARI LETTER SHORT A*/ - RTUNI_ALPHA, /* U+000905: DEVANAGARI LETTER A*/ - RTUNI_ALPHA, /* U+000906: DEVANAGARI LETTER AA*/ - RTUNI_ALPHA, /* U+000907: DEVANAGARI LETTER I*/ - RTUNI_ALPHA, /* U+000908: DEVANAGARI LETTER II*/ - RTUNI_ALPHA, /* U+000909: DEVANAGARI LETTER U*/ - RTUNI_ALPHA, /* U+00090a: DEVANAGARI LETTER UU*/ - RTUNI_ALPHA, /* U+00090b: DEVANAGARI LETTER VOCALIC R*/ - RTUNI_ALPHA, /* U+00090c: DEVANAGARI LETTER VOCALIC L*/ - RTUNI_ALPHA, /* U+00090d: DEVANAGARI LETTER CANDRA E*/ - RTUNI_ALPHA, /* U+00090e: DEVANAGARI LETTER SHORT E*/ - RTUNI_ALPHA, /* U+00090f: DEVANAGARI LETTER E*/ - RTUNI_ALPHA, /* U+000910: DEVANAGARI LETTER AI*/ - RTUNI_ALPHA, /* U+000911: DEVANAGARI LETTER CANDRA O*/ - RTUNI_ALPHA, /* U+000912: DEVANAGARI LETTER SHORT O*/ - RTUNI_ALPHA, /* U+000913: DEVANAGARI LETTER O*/ - RTUNI_ALPHA, /* U+000914: DEVANAGARI LETTER AU*/ - RTUNI_ALPHA, /* U+000915: DEVANAGARI LETTER KA*/ - RTUNI_ALPHA, /* U+000916: DEVANAGARI LETTER KHA*/ - RTUNI_ALPHA, /* U+000917: DEVANAGARI LETTER GA*/ - RTUNI_ALPHA, /* U+000918: DEVANAGARI LETTER GHA*/ - RTUNI_ALPHA, /* U+000919: DEVANAGARI LETTER NGA*/ - RTUNI_ALPHA, /* U+00091a: DEVANAGARI LETTER CA*/ - RTUNI_ALPHA, /* U+00091b: DEVANAGARI LETTER CHA*/ - RTUNI_ALPHA, /* U+00091c: DEVANAGARI LETTER JA*/ - RTUNI_ALPHA, /* U+00091d: DEVANAGARI LETTER JHA*/ - RTUNI_ALPHA, /* U+00091e: DEVANAGARI LETTER NYA*/ - RTUNI_ALPHA, /* U+00091f: DEVANAGARI LETTER TTA*/ - RTUNI_ALPHA, /* U+000920: DEVANAGARI LETTER TTHA*/ - RTUNI_ALPHA, /* U+000921: DEVANAGARI LETTER DDA*/ - RTUNI_ALPHA, /* U+000922: DEVANAGARI LETTER DDHA*/ - RTUNI_ALPHA, /* U+000923: DEVANAGARI LETTER NNA*/ - RTUNI_ALPHA, /* U+000924: DEVANAGARI LETTER TA*/ - RTUNI_ALPHA, /* U+000925: DEVANAGARI LETTER THA*/ - RTUNI_ALPHA, /* U+000926: DEVANAGARI LETTER DA*/ - RTUNI_ALPHA, /* U+000927: DEVANAGARI LETTER DHA*/ - RTUNI_ALPHA, /* U+000928: DEVANAGARI LETTER NA*/ - RTUNI_ALPHA, /* U+000929: DEVANAGARI LETTER NNNA*/ - RTUNI_ALPHA, /* U+00092a: DEVANAGARI LETTER PA*/ - RTUNI_ALPHA, /* U+00092b: DEVANAGARI LETTER PHA*/ - RTUNI_ALPHA, /* U+00092c: DEVANAGARI LETTER BA*/ - RTUNI_ALPHA, /* U+00092d: DEVANAGARI LETTER BHA*/ - RTUNI_ALPHA, /* U+00092e: DEVANAGARI LETTER MA*/ - RTUNI_ALPHA, /* U+00092f: DEVANAGARI LETTER YA*/ - RTUNI_ALPHA, /* U+000930: DEVANAGARI LETTER RA*/ - RTUNI_ALPHA, /* U+000931: DEVANAGARI LETTER RRA*/ - RTUNI_ALPHA, /* U+000932: DEVANAGARI LETTER LA*/ - RTUNI_ALPHA, /* U+000933: DEVANAGARI LETTER LLA*/ - RTUNI_ALPHA, /* U+000934: DEVANAGARI LETTER LLLA*/ - RTUNI_ALPHA, /* U+000935: DEVANAGARI LETTER VA*/ - RTUNI_ALPHA, /* U+000936: DEVANAGARI LETTER SHA*/ - RTUNI_ALPHA, /* U+000937: DEVANAGARI LETTER SSA*/ - RTUNI_ALPHA, /* U+000938: DEVANAGARI LETTER SA*/ - RTUNI_ALPHA, /* U+000939: DEVANAGARI LETTER HA*/ - 0, /* U+00093a: */ - 0, /* U+00093b: */ - 0, /* U+00093c: DEVANAGARI SIGN NUKTA*/ - RTUNI_ALPHA, /* U+00093d: DEVANAGARI SIGN AVAGRAHA*/ - RTUNI_ALPHA, /* U+00093e: DEVANAGARI VOWEL SIGN AA*/ - RTUNI_ALPHA, /* U+00093f: DEVANAGARI VOWEL SIGN I*/ - RTUNI_ALPHA, /* U+000940: DEVANAGARI VOWEL SIGN II*/ - RTUNI_ALPHA, /* U+000941: DEVANAGARI VOWEL SIGN U*/ - RTUNI_ALPHA, /* U+000942: DEVANAGARI VOWEL SIGN UU*/ - RTUNI_ALPHA, /* U+000943: DEVANAGARI VOWEL SIGN VOCALIC R*/ - RTUNI_ALPHA, /* U+000944: DEVANAGARI VOWEL SIGN VOCALIC RR*/ - RTUNI_ALPHA, /* U+000945: DEVANAGARI VOWEL SIGN CANDRA E*/ - RTUNI_ALPHA, /* U+000946: DEVANAGARI VOWEL SIGN SHORT E*/ - RTUNI_ALPHA, /* U+000947: DEVANAGARI VOWEL SIGN E*/ - RTUNI_ALPHA, /* U+000948: DEVANAGARI VOWEL SIGN AI*/ - RTUNI_ALPHA, /* U+000949: DEVANAGARI VOWEL SIGN CANDRA O*/ - RTUNI_ALPHA, /* U+00094a: DEVANAGARI VOWEL SIGN SHORT O*/ - RTUNI_ALPHA, /* U+00094b: DEVANAGARI VOWEL SIGN O*/ - RTUNI_ALPHA, /* U+00094c: DEVANAGARI VOWEL SIGN AU*/ - 0, /* U+00094d: DEVANAGARI SIGN VIRAMA*/ - 0, /* U+00094e: */ - 0, /* U+00094f: */ - RTUNI_ALPHA, /* U+000950: DEVANAGARI OM*/ - 0, /* U+000951: DEVANAGARI STRESS SIGN UDATTA*/ - 0, /* U+000952: DEVANAGARI STRESS SIGN ANUDATTA*/ - 0, /* U+000953: DEVANAGARI GRAVE ACCENT*/ - 0, /* U+000954: DEVANAGARI ACUTE ACCENT*/ - 0, /* U+000955: */ - 0, /* U+000956: */ - 0, /* U+000957: */ - RTUNI_ALPHA, /* U+000958: DEVANAGARI LETTER QA*/ - RTUNI_ALPHA, /* U+000959: DEVANAGARI LETTER KHHA*/ - RTUNI_ALPHA, /* U+00095a: DEVANAGARI LETTER GHHA*/ - RTUNI_ALPHA, /* U+00095b: DEVANAGARI LETTER ZA*/ - RTUNI_ALPHA, /* U+00095c: DEVANAGARI LETTER DDDHA*/ - RTUNI_ALPHA, /* U+00095d: DEVANAGARI LETTER RHA*/ - RTUNI_ALPHA, /* U+00095e: DEVANAGARI LETTER FA*/ - RTUNI_ALPHA, /* U+00095f: DEVANAGARI LETTER YYA*/ - RTUNI_ALPHA, /* U+000960: DEVANAGARI LETTER VOCALIC RR*/ - RTUNI_ALPHA, /* U+000961: DEVANAGARI LETTER VOCALIC LL*/ - RTUNI_ALPHA, /* U+000962: DEVANAGARI VOWEL SIGN VOCALIC L*/ - RTUNI_ALPHA, /* U+000963: DEVANAGARI VOWEL SIGN VOCALIC LL*/ - 0, /* U+000964: DEVANAGARI DANDA*/ - 0, /* U+000965: DEVANAGARI DOUBLE DANDA*/ - RTUNI_DDIGIT, /* U+000966: DEVANAGARI DIGIT ZERO*/ - RTUNI_DDIGIT, /* U+000967: DEVANAGARI DIGIT ONE*/ - RTUNI_DDIGIT, /* U+000968: DEVANAGARI DIGIT TWO*/ - RTUNI_DDIGIT, /* U+000969: DEVANAGARI DIGIT THREE*/ - RTUNI_DDIGIT, /* U+00096a: DEVANAGARI DIGIT FOUR*/ - RTUNI_DDIGIT, /* U+00096b: DEVANAGARI DIGIT FIVE*/ - RTUNI_DDIGIT, /* U+00096c: DEVANAGARI DIGIT SIX*/ - RTUNI_DDIGIT, /* U+00096d: DEVANAGARI DIGIT SEVEN*/ - RTUNI_DDIGIT, /* U+00096e: DEVANAGARI DIGIT EIGHT*/ - RTUNI_DDIGIT, /* U+00096f: DEVANAGARI DIGIT NINE*/ - 0, /* U+000970: DEVANAGARI ABBREVIATION SIGN*/ - 0, /* U+000971: */ - 0, /* U+000972: */ - 0, /* U+000973: */ - 0, /* U+000974: */ - 0, /* U+000975: */ - 0, /* U+000976: */ - 0, /* U+000977: */ - 0, /* U+000978: */ - 0, /* U+000979: */ - 0, /* U+00097a: */ - 0, /* U+00097b: */ - 0, /* U+00097c: */ - RTUNI_ALPHA, /* U+00097d: DEVANAGARI LETTER GLOTTAL STOP*/ - 0, /* U+00097e: */ - 0, /* U+00097f: */ - 0, /* U+000980: */ - RTUNI_ALPHA, /* U+000981: BENGALI SIGN CANDRABINDU*/ - RTUNI_ALPHA, /* U+000982: BENGALI SIGN ANUSVARA*/ - RTUNI_ALPHA, /* U+000983: BENGALI SIGN VISARGA*/ - 0, /* U+000984: */ - RTUNI_ALPHA, /* U+000985: BENGALI LETTER A*/ - RTUNI_ALPHA, /* U+000986: BENGALI LETTER AA*/ - RTUNI_ALPHA, /* U+000987: BENGALI LETTER I*/ - RTUNI_ALPHA, /* U+000988: BENGALI LETTER II*/ - RTUNI_ALPHA, /* U+000989: BENGALI LETTER U*/ - RTUNI_ALPHA, /* U+00098a: BENGALI LETTER UU*/ - RTUNI_ALPHA, /* U+00098b: BENGALI LETTER VOCALIC R*/ - RTUNI_ALPHA, /* U+00098c: BENGALI LETTER VOCALIC L*/ - 0, /* U+00098d: */ - 0, /* U+00098e: */ - RTUNI_ALPHA, /* U+00098f: BENGALI LETTER E*/ - RTUNI_ALPHA, /* U+000990: BENGALI LETTER AI*/ - 0, /* U+000991: */ - 0, /* U+000992: */ - RTUNI_ALPHA, /* U+000993: BENGALI LETTER O*/ - RTUNI_ALPHA, /* U+000994: BENGALI LETTER AU*/ - RTUNI_ALPHA, /* U+000995: BENGALI LETTER KA*/ - RTUNI_ALPHA, /* U+000996: BENGALI LETTER KHA*/ - RTUNI_ALPHA, /* U+000997: BENGALI LETTER GA*/ - RTUNI_ALPHA, /* U+000998: BENGALI LETTER GHA*/ - RTUNI_ALPHA, /* U+000999: BENGALI LETTER NGA*/ - RTUNI_ALPHA, /* U+00099a: BENGALI LETTER CA*/ - RTUNI_ALPHA, /* U+00099b: BENGALI LETTER CHA*/ - RTUNI_ALPHA, /* U+00099c: BENGALI LETTER JA*/ - RTUNI_ALPHA, /* U+00099d: BENGALI LETTER JHA*/ - RTUNI_ALPHA, /* U+00099e: BENGALI LETTER NYA*/ - RTUNI_ALPHA, /* U+00099f: BENGALI LETTER TTA*/ - RTUNI_ALPHA, /* U+0009a0: BENGALI LETTER TTHA*/ - RTUNI_ALPHA, /* U+0009a1: BENGALI LETTER DDA*/ - RTUNI_ALPHA, /* U+0009a2: BENGALI LETTER DDHA*/ - RTUNI_ALPHA, /* U+0009a3: BENGALI LETTER NNA*/ - RTUNI_ALPHA, /* U+0009a4: BENGALI LETTER TA*/ - RTUNI_ALPHA, /* U+0009a5: BENGALI LETTER THA*/ - RTUNI_ALPHA, /* U+0009a6: BENGALI LETTER DA*/ - RTUNI_ALPHA, /* U+0009a7: BENGALI LETTER DHA*/ - RTUNI_ALPHA, /* U+0009a8: BENGALI LETTER NA*/ - 0, /* U+0009a9: */ - RTUNI_ALPHA, /* U+0009aa: BENGALI LETTER PA*/ - RTUNI_ALPHA, /* U+0009ab: BENGALI LETTER PHA*/ - RTUNI_ALPHA, /* U+0009ac: BENGALI LETTER BA*/ - RTUNI_ALPHA, /* U+0009ad: BENGALI LETTER BHA*/ - RTUNI_ALPHA, /* U+0009ae: BENGALI LETTER MA*/ - RTUNI_ALPHA, /* U+0009af: BENGALI LETTER YA*/ - RTUNI_ALPHA, /* U+0009b0: BENGALI LETTER RA*/ - 0, /* U+0009b1: */ - RTUNI_ALPHA, /* U+0009b2: BENGALI LETTER LA*/ - 0, /* U+0009b3: */ - 0, /* U+0009b4: */ - 0, /* U+0009b5: */ - RTUNI_ALPHA, /* U+0009b6: BENGALI LETTER SHA*/ - RTUNI_ALPHA, /* U+0009b7: BENGALI LETTER SSA*/ - RTUNI_ALPHA, /* U+0009b8: BENGALI LETTER SA*/ - RTUNI_ALPHA, /* U+0009b9: BENGALI LETTER HA*/ - 0, /* U+0009ba: */ - 0, /* U+0009bb: */ - 0, /* U+0009bc: BENGALI SIGN NUKTA*/ - RTUNI_ALPHA, /* U+0009bd: BENGALI SIGN AVAGRAHA*/ - RTUNI_ALPHA, /* U+0009be: BENGALI VOWEL SIGN AA*/ - RTUNI_ALPHA, /* U+0009bf: BENGALI VOWEL SIGN I*/ - RTUNI_ALPHA, /* U+0009c0: BENGALI VOWEL SIGN II*/ - RTUNI_ALPHA, /* U+0009c1: BENGALI VOWEL SIGN U*/ - RTUNI_ALPHA, /* U+0009c2: BENGALI VOWEL SIGN UU*/ - RTUNI_ALPHA, /* U+0009c3: BENGALI VOWEL SIGN VOCALIC R*/ - RTUNI_ALPHA, /* U+0009c4: BENGALI VOWEL SIGN VOCALIC RR*/ - 0, /* U+0009c5: */ - 0, /* U+0009c6: */ - RTUNI_ALPHA, /* U+0009c7: BENGALI VOWEL SIGN E*/ - RTUNI_ALPHA, /* U+0009c8: BENGALI VOWEL SIGN AI*/ - 0, /* U+0009c9: */ - 0, /* U+0009ca: */ - RTUNI_ALPHA, /* U+0009cb: BENGALI VOWEL SIGN O*/ - RTUNI_ALPHA, /* U+0009cc: BENGALI VOWEL SIGN AU*/ - 0, /* U+0009cd: BENGALI SIGN VIRAMA*/ - RTUNI_ALPHA, /* U+0009ce: BENGALI LETTER KHANDA TA*/ - 0, /* U+0009cf: */ - 0, /* U+0009d0: */ - 0, /* U+0009d1: */ - 0, /* U+0009d2: */ - 0, /* U+0009d3: */ - 0, /* U+0009d4: */ - 0, /* U+0009d5: */ - 0, /* U+0009d6: */ - RTUNI_ALPHA, /* U+0009d7: BENGALI AU LENGTH MARK*/ - 0, /* U+0009d8: */ - 0, /* U+0009d9: */ - 0, /* U+0009da: */ - 0, /* U+0009db: */ - RTUNI_ALPHA, /* U+0009dc: BENGALI LETTER RRA*/ - RTUNI_ALPHA, /* U+0009dd: BENGALI LETTER RHA*/ - 0, /* U+0009de: */ - RTUNI_ALPHA, /* U+0009df: BENGALI LETTER YYA*/ - RTUNI_ALPHA, /* U+0009e0: BENGALI LETTER VOCALIC RR*/ - RTUNI_ALPHA, /* U+0009e1: BENGALI LETTER VOCALIC LL*/ - RTUNI_ALPHA, /* U+0009e2: BENGALI VOWEL SIGN VOCALIC L*/ - RTUNI_ALPHA, /* U+0009e3: BENGALI VOWEL SIGN VOCALIC LL*/ - 0, /* U+0009e4: */ - 0, /* U+0009e5: */ - RTUNI_DDIGIT, /* U+0009e6: BENGALI DIGIT ZERO*/ - RTUNI_DDIGIT, /* U+0009e7: BENGALI DIGIT ONE*/ - RTUNI_DDIGIT, /* U+0009e8: BENGALI DIGIT TWO*/ - RTUNI_DDIGIT, /* U+0009e9: BENGALI DIGIT THREE*/ - RTUNI_DDIGIT, /* U+0009ea: BENGALI DIGIT FOUR*/ - RTUNI_DDIGIT, /* U+0009eb: BENGALI DIGIT FIVE*/ - RTUNI_DDIGIT, /* U+0009ec: BENGALI DIGIT SIX*/ - RTUNI_DDIGIT, /* U+0009ed: BENGALI DIGIT SEVEN*/ - RTUNI_DDIGIT, /* U+0009ee: BENGALI DIGIT EIGHT*/ - RTUNI_DDIGIT, /* U+0009ef: BENGALI DIGIT NINE*/ - RTUNI_ALPHA, /* U+0009f0: BENGALI LETTER RA WITH MIDDLE DIAGONAL*/ - RTUNI_ALPHA, /* U+0009f1: BENGALI LETTER RA WITH LOWER DIAGONAL*/ - 0, /* U+0009f2: BENGALI RUPEE MARK*/ - 0, /* U+0009f3: BENGALI RUPEE SIGN*/ - 0, /* U+0009f4: BENGALI CURRENCY NUMERATOR ONE*/ - 0, /* U+0009f5: BENGALI CURRENCY NUMERATOR TWO*/ - 0, /* U+0009f6: BENGALI CURRENCY NUMERATOR THREE*/ - 0, /* U+0009f7: BENGALI CURRENCY NUMERATOR FOUR*/ - 0, /* U+0009f8: BENGALI CURRENCY NUMERATOR ONE LESS THAN THE DENOMINATOR*/ - 0, /* U+0009f9: BENGALI CURRENCY DENOMINATOR SIXTEEN*/ - 0, /* U+0009fa: BENGALI ISSHAR*/ - 0, /* U+0009fb: */ - 0, /* U+0009fc: */ - 0, /* U+0009fd: */ - 0, /* U+0009fe: */ - 0, /* U+0009ff: */ - 0, /* U+000a00: */ - RTUNI_ALPHA, /* U+000a01: GURMUKHI SIGN ADAK BINDI*/ - RTUNI_ALPHA, /* U+000a02: GURMUKHI SIGN BINDI*/ - RTUNI_ALPHA, /* U+000a03: GURMUKHI SIGN VISARGA*/ - 0, /* U+000a04: */ - RTUNI_ALPHA, /* U+000a05: GURMUKHI LETTER A*/ - RTUNI_ALPHA, /* U+000a06: GURMUKHI LETTER AA*/ - RTUNI_ALPHA, /* U+000a07: GURMUKHI LETTER I*/ - RTUNI_ALPHA, /* U+000a08: GURMUKHI LETTER II*/ - RTUNI_ALPHA, /* U+000a09: GURMUKHI LETTER U*/ - RTUNI_ALPHA, /* U+000a0a: GURMUKHI LETTER UU*/ - 0, /* U+000a0b: */ - 0, /* U+000a0c: */ - 0, /* U+000a0d: */ - 0, /* U+000a0e: */ - RTUNI_ALPHA, /* U+000a0f: GURMUKHI LETTER EE*/ - RTUNI_ALPHA, /* U+000a10: GURMUKHI LETTER AI*/ - 0, /* U+000a11: */ - 0, /* U+000a12: */ - RTUNI_ALPHA, /* U+000a13: GURMUKHI LETTER OO*/ - RTUNI_ALPHA, /* U+000a14: GURMUKHI LETTER AU*/ - RTUNI_ALPHA, /* U+000a15: GURMUKHI LETTER KA*/ - RTUNI_ALPHA, /* U+000a16: GURMUKHI LETTER KHA*/ - RTUNI_ALPHA, /* U+000a17: GURMUKHI LETTER GA*/ - RTUNI_ALPHA, /* U+000a18: GURMUKHI LETTER GHA*/ - RTUNI_ALPHA, /* U+000a19: GURMUKHI LETTER NGA*/ - RTUNI_ALPHA, /* U+000a1a: GURMUKHI LETTER CA*/ - RTUNI_ALPHA, /* U+000a1b: GURMUKHI LETTER CHA*/ - RTUNI_ALPHA, /* U+000a1c: GURMUKHI LETTER JA*/ - RTUNI_ALPHA, /* U+000a1d: GURMUKHI LETTER JHA*/ - RTUNI_ALPHA, /* U+000a1e: GURMUKHI LETTER NYA*/ - RTUNI_ALPHA, /* U+000a1f: GURMUKHI LETTER TTA*/ - RTUNI_ALPHA, /* U+000a20: GURMUKHI LETTER TTHA*/ - RTUNI_ALPHA, /* U+000a21: GURMUKHI LETTER DDA*/ - RTUNI_ALPHA, /* U+000a22: GURMUKHI LETTER DDHA*/ - RTUNI_ALPHA, /* U+000a23: GURMUKHI LETTER NNA*/ - RTUNI_ALPHA, /* U+000a24: GURMUKHI LETTER TA*/ - RTUNI_ALPHA, /* U+000a25: GURMUKHI LETTER THA*/ - RTUNI_ALPHA, /* U+000a26: GURMUKHI LETTER DA*/ - RTUNI_ALPHA, /* U+000a27: GURMUKHI LETTER DHA*/ - RTUNI_ALPHA, /* U+000a28: GURMUKHI LETTER NA*/ - 0, /* U+000a29: */ - RTUNI_ALPHA, /* U+000a2a: GURMUKHI LETTER PA*/ - RTUNI_ALPHA, /* U+000a2b: GURMUKHI LETTER PHA*/ - RTUNI_ALPHA, /* U+000a2c: GURMUKHI LETTER BA*/ - RTUNI_ALPHA, /* U+000a2d: GURMUKHI LETTER BHA*/ - RTUNI_ALPHA, /* U+000a2e: GURMUKHI LETTER MA*/ - RTUNI_ALPHA, /* U+000a2f: GURMUKHI LETTER YA*/ - RTUNI_ALPHA, /* U+000a30: GURMUKHI LETTER RA*/ - 0, /* U+000a31: */ - RTUNI_ALPHA, /* U+000a32: GURMUKHI LETTER LA*/ - RTUNI_ALPHA, /* U+000a33: GURMUKHI LETTER LLA*/ - 0, /* U+000a34: */ - RTUNI_ALPHA, /* U+000a35: GURMUKHI LETTER VA*/ - RTUNI_ALPHA, /* U+000a36: GURMUKHI LETTER SHA*/ - 0, /* U+000a37: */ - RTUNI_ALPHA, /* U+000a38: GURMUKHI LETTER SA*/ - RTUNI_ALPHA, /* U+000a39: GURMUKHI LETTER HA*/ - 0, /* U+000a3a: */ - 0, /* U+000a3b: */ - 0, /* U+000a3c: GURMUKHI SIGN NUKTA*/ - 0, /* U+000a3d: */ - RTUNI_ALPHA, /* U+000a3e: GURMUKHI VOWEL SIGN AA*/ - RTUNI_ALPHA, /* U+000a3f: GURMUKHI VOWEL SIGN I*/ - RTUNI_ALPHA, /* U+000a40: GURMUKHI VOWEL SIGN II*/ - RTUNI_ALPHA, /* U+000a41: GURMUKHI VOWEL SIGN U*/ - RTUNI_ALPHA, /* U+000a42: GURMUKHI VOWEL SIGN UU*/ - 0, /* U+000a43: */ - 0, /* U+000a44: */ - 0, /* U+000a45: */ - 0, /* U+000a46: */ - RTUNI_ALPHA, /* U+000a47: GURMUKHI VOWEL SIGN EE*/ - RTUNI_ALPHA, /* U+000a48: GURMUKHI VOWEL SIGN AI*/ - 0, /* U+000a49: */ - 0, /* U+000a4a: */ - RTUNI_ALPHA, /* U+000a4b: GURMUKHI VOWEL SIGN OO*/ - RTUNI_ALPHA, /* U+000a4c: GURMUKHI VOWEL SIGN AU*/ - 0, /* U+000a4d: GURMUKHI SIGN VIRAMA*/ - 0, /* U+000a4e: */ - 0, /* U+000a4f: */ - 0, /* U+000a50: */ - 0, /* U+000a51: */ - 0, /* U+000a52: */ - 0, /* U+000a53: */ - 0, /* U+000a54: */ - 0, /* U+000a55: */ - 0, /* U+000a56: */ - 0, /* U+000a57: */ - 0, /* U+000a58: */ - RTUNI_ALPHA, /* U+000a59: GURMUKHI LETTER KHHA*/ - RTUNI_ALPHA, /* U+000a5a: GURMUKHI LETTER GHHA*/ - RTUNI_ALPHA, /* U+000a5b: GURMUKHI LETTER ZA*/ - RTUNI_ALPHA, /* U+000a5c: GURMUKHI LETTER RRA*/ - 0, /* U+000a5d: */ - RTUNI_ALPHA, /* U+000a5e: GURMUKHI LETTER FA*/ - 0, /* U+000a5f: */ - 0, /* U+000a60: */ - 0, /* U+000a61: */ - 0, /* U+000a62: */ - 0, /* U+000a63: */ - 0, /* U+000a64: */ - 0, /* U+000a65: */ - RTUNI_DDIGIT, /* U+000a66: GURMUKHI DIGIT ZERO*/ - RTUNI_DDIGIT, /* U+000a67: GURMUKHI DIGIT ONE*/ - RTUNI_DDIGIT, /* U+000a68: GURMUKHI DIGIT TWO*/ - RTUNI_DDIGIT, /* U+000a69: GURMUKHI DIGIT THREE*/ - RTUNI_DDIGIT, /* U+000a6a: GURMUKHI DIGIT FOUR*/ - RTUNI_DDIGIT, /* U+000a6b: GURMUKHI DIGIT FIVE*/ - RTUNI_DDIGIT, /* U+000a6c: GURMUKHI DIGIT SIX*/ - RTUNI_DDIGIT, /* U+000a6d: GURMUKHI DIGIT SEVEN*/ - RTUNI_DDIGIT, /* U+000a6e: GURMUKHI DIGIT EIGHT*/ - RTUNI_DDIGIT, /* U+000a6f: GURMUKHI DIGIT NINE*/ - RTUNI_ALPHA, /* U+000a70: GURMUKHI TIPPI*/ - RTUNI_ALPHA, /* U+000a71: GURMUKHI ADDAK*/ - RTUNI_ALPHA, /* U+000a72: GURMUKHI IRI*/ - RTUNI_ALPHA, /* U+000a73: GURMUKHI URA*/ - RTUNI_ALPHA, /* U+000a74: GURMUKHI EK ONKAR*/ - 0, /* U+000a75: */ - 0, /* U+000a76: */ - 0, /* U+000a77: */ - 0, /* U+000a78: */ - 0, /* U+000a79: */ - 0, /* U+000a7a: */ - 0, /* U+000a7b: */ - 0, /* U+000a7c: */ - 0, /* U+000a7d: */ - 0, /* U+000a7e: */ - 0, /* U+000a7f: */ - 0, /* U+000a80: */ - RTUNI_ALPHA, /* U+000a81: GUJARATI SIGN CANDRABINDU*/ - RTUNI_ALPHA, /* U+000a82: GUJARATI SIGN ANUSVARA*/ - RTUNI_ALPHA, /* U+000a83: GUJARATI SIGN VISARGA*/ - 0, /* U+000a84: */ - RTUNI_ALPHA, /* U+000a85: GUJARATI LETTER A*/ - RTUNI_ALPHA, /* U+000a86: GUJARATI LETTER AA*/ - RTUNI_ALPHA, /* U+000a87: GUJARATI LETTER I*/ - RTUNI_ALPHA, /* U+000a88: GUJARATI LETTER II*/ - RTUNI_ALPHA, /* U+000a89: GUJARATI LETTER U*/ - RTUNI_ALPHA, /* U+000a8a: GUJARATI LETTER UU*/ - RTUNI_ALPHA, /* U+000a8b: GUJARATI LETTER VOCALIC R*/ - RTUNI_ALPHA, /* U+000a8c: GUJARATI LETTER VOCALIC L*/ - RTUNI_ALPHA, /* U+000a8d: GUJARATI VOWEL CANDRA E*/ - 0, /* U+000a8e: */ - RTUNI_ALPHA, /* U+000a8f: GUJARATI LETTER E*/ - RTUNI_ALPHA, /* U+000a90: GUJARATI LETTER AI*/ - RTUNI_ALPHA, /* U+000a91: GUJARATI VOWEL CANDRA O*/ - 0, /* U+000a92: */ - RTUNI_ALPHA, /* U+000a93: GUJARATI LETTER O*/ - RTUNI_ALPHA, /* U+000a94: GUJARATI LETTER AU*/ - RTUNI_ALPHA, /* U+000a95: GUJARATI LETTER KA*/ - RTUNI_ALPHA, /* U+000a96: GUJARATI LETTER KHA*/ - RTUNI_ALPHA, /* U+000a97: GUJARATI LETTER GA*/ - RTUNI_ALPHA, /* U+000a98: GUJARATI LETTER GHA*/ - RTUNI_ALPHA, /* U+000a99: GUJARATI LETTER NGA*/ - RTUNI_ALPHA, /* U+000a9a: GUJARATI LETTER CA*/ - RTUNI_ALPHA, /* U+000a9b: GUJARATI LETTER CHA*/ - RTUNI_ALPHA, /* U+000a9c: GUJARATI LETTER JA*/ - RTUNI_ALPHA, /* U+000a9d: GUJARATI LETTER JHA*/ - RTUNI_ALPHA, /* U+000a9e: GUJARATI LETTER NYA*/ - RTUNI_ALPHA, /* U+000a9f: GUJARATI LETTER TTA*/ - RTUNI_ALPHA, /* U+000aa0: GUJARATI LETTER TTHA*/ - RTUNI_ALPHA, /* U+000aa1: GUJARATI LETTER DDA*/ - RTUNI_ALPHA, /* U+000aa2: GUJARATI LETTER DDHA*/ - RTUNI_ALPHA, /* U+000aa3: GUJARATI LETTER NNA*/ - RTUNI_ALPHA, /* U+000aa4: GUJARATI LETTER TA*/ - RTUNI_ALPHA, /* U+000aa5: GUJARATI LETTER THA*/ - RTUNI_ALPHA, /* U+000aa6: GUJARATI LETTER DA*/ - RTUNI_ALPHA, /* U+000aa7: GUJARATI LETTER DHA*/ - RTUNI_ALPHA, /* U+000aa8: GUJARATI LETTER NA*/ - 0, /* U+000aa9: */ - RTUNI_ALPHA, /* U+000aaa: GUJARATI LETTER PA*/ - RTUNI_ALPHA, /* U+000aab: GUJARATI LETTER PHA*/ - RTUNI_ALPHA, /* U+000aac: GUJARATI LETTER BA*/ - RTUNI_ALPHA, /* U+000aad: GUJARATI LETTER BHA*/ - RTUNI_ALPHA, /* U+000aae: GUJARATI LETTER MA*/ - RTUNI_ALPHA, /* U+000aaf: GUJARATI LETTER YA*/ - RTUNI_ALPHA, /* U+000ab0: GUJARATI LETTER RA*/ - 0, /* U+000ab1: */ - RTUNI_ALPHA, /* U+000ab2: GUJARATI LETTER LA*/ - RTUNI_ALPHA, /* U+000ab3: GUJARATI LETTER LLA*/ - 0, /* U+000ab4: */ - RTUNI_ALPHA, /* U+000ab5: GUJARATI LETTER VA*/ - RTUNI_ALPHA, /* U+000ab6: GUJARATI LETTER SHA*/ - RTUNI_ALPHA, /* U+000ab7: GUJARATI LETTER SSA*/ - RTUNI_ALPHA, /* U+000ab8: GUJARATI LETTER SA*/ - RTUNI_ALPHA, /* U+000ab9: GUJARATI LETTER HA*/ - 0, /* U+000aba: */ - 0, /* U+000abb: */ - 0, /* U+000abc: GUJARATI SIGN NUKTA*/ - RTUNI_ALPHA, /* U+000abd: GUJARATI SIGN AVAGRAHA*/ - RTUNI_ALPHA, /* U+000abe: GUJARATI VOWEL SIGN AA*/ - RTUNI_ALPHA, /* U+000abf: GUJARATI VOWEL SIGN I*/ - RTUNI_ALPHA, /* U+000ac0: GUJARATI VOWEL SIGN II*/ - RTUNI_ALPHA, /* U+000ac1: GUJARATI VOWEL SIGN U*/ - RTUNI_ALPHA, /* U+000ac2: GUJARATI VOWEL SIGN UU*/ - RTUNI_ALPHA, /* U+000ac3: GUJARATI VOWEL SIGN VOCALIC R*/ - RTUNI_ALPHA, /* U+000ac4: GUJARATI VOWEL SIGN VOCALIC RR*/ - RTUNI_ALPHA, /* U+000ac5: GUJARATI VOWEL SIGN CANDRA E*/ - 0, /* U+000ac6: */ - RTUNI_ALPHA, /* U+000ac7: GUJARATI VOWEL SIGN E*/ - RTUNI_ALPHA, /* U+000ac8: GUJARATI VOWEL SIGN AI*/ - RTUNI_ALPHA, /* U+000ac9: GUJARATI VOWEL SIGN CANDRA O*/ - 0, /* U+000aca: */ - RTUNI_ALPHA, /* U+000acb: GUJARATI VOWEL SIGN O*/ - RTUNI_ALPHA, /* U+000acc: GUJARATI VOWEL SIGN AU*/ - 0, /* U+000acd: GUJARATI SIGN VIRAMA*/ - 0, /* U+000ace: */ - 0, /* U+000acf: */ - RTUNI_ALPHA, /* U+000ad0: GUJARATI OM*/ - 0, /* U+000ad1: */ - 0, /* U+000ad2: */ - 0, /* U+000ad3: */ - 0, /* U+000ad4: */ - 0, /* U+000ad5: */ - 0, /* U+000ad6: */ - 0, /* U+000ad7: */ - 0, /* U+000ad8: */ - 0, /* U+000ad9: */ - 0, /* U+000ada: */ - 0, /* U+000adb: */ - 0, /* U+000adc: */ - 0, /* U+000add: */ - 0, /* U+000ade: */ - 0, /* U+000adf: */ - RTUNI_ALPHA, /* U+000ae0: GUJARATI LETTER VOCALIC RR*/ - RTUNI_ALPHA, /* U+000ae1: GUJARATI LETTER VOCALIC LL*/ - RTUNI_ALPHA, /* U+000ae2: GUJARATI VOWEL SIGN VOCALIC L*/ - RTUNI_ALPHA, /* U+000ae3: GUJARATI VOWEL SIGN VOCALIC LL*/ - 0, /* U+000ae4: */ - 0, /* U+000ae5: */ - RTUNI_DDIGIT, /* U+000ae6: GUJARATI DIGIT ZERO*/ - RTUNI_DDIGIT, /* U+000ae7: GUJARATI DIGIT ONE*/ - RTUNI_DDIGIT, /* U+000ae8: GUJARATI DIGIT TWO*/ - RTUNI_DDIGIT, /* U+000ae9: GUJARATI DIGIT THREE*/ - RTUNI_DDIGIT, /* U+000aea: GUJARATI DIGIT FOUR*/ - RTUNI_DDIGIT, /* U+000aeb: GUJARATI DIGIT FIVE*/ - RTUNI_DDIGIT, /* U+000aec: GUJARATI DIGIT SIX*/ - RTUNI_DDIGIT, /* U+000aed: GUJARATI DIGIT SEVEN*/ - RTUNI_DDIGIT, /* U+000aee: GUJARATI DIGIT EIGHT*/ - RTUNI_DDIGIT, /* U+000aef: GUJARATI DIGIT NINE*/ - 0, /* U+000af0: */ - 0, /* U+000af1: GUJARATI RUPEE SIGN*/ - 0, /* U+000af2: */ - 0, /* U+000af3: */ - 0, /* U+000af4: */ - 0, /* U+000af5: */ - 0, /* U+000af6: */ - 0, /* U+000af7: */ - 0, /* U+000af8: */ - 0, /* U+000af9: */ - 0, /* U+000afa: */ - 0, /* U+000afb: */ - 0, /* U+000afc: */ - 0, /* U+000afd: */ - 0, /* U+000afe: */ - 0, /* U+000aff: */ - 0, /* U+000b00: */ - RTUNI_ALPHA, /* U+000b01: ORIYA SIGN CANDRABINDU*/ - RTUNI_ALPHA, /* U+000b02: ORIYA SIGN ANUSVARA*/ - RTUNI_ALPHA, /* U+000b03: ORIYA SIGN VISARGA*/ - 0, /* U+000b04: */ - RTUNI_ALPHA, /* U+000b05: ORIYA LETTER A*/ - RTUNI_ALPHA, /* U+000b06: ORIYA LETTER AA*/ - RTUNI_ALPHA, /* U+000b07: ORIYA LETTER I*/ - RTUNI_ALPHA, /* U+000b08: ORIYA LETTER II*/ - RTUNI_ALPHA, /* U+000b09: ORIYA LETTER U*/ - RTUNI_ALPHA, /* U+000b0a: ORIYA LETTER UU*/ - RTUNI_ALPHA, /* U+000b0b: ORIYA LETTER VOCALIC R*/ - RTUNI_ALPHA, /* U+000b0c: ORIYA LETTER VOCALIC L*/ - 0, /* U+000b0d: */ - 0, /* U+000b0e: */ - RTUNI_ALPHA, /* U+000b0f: ORIYA LETTER E*/ - RTUNI_ALPHA, /* U+000b10: ORIYA LETTER AI*/ - 0, /* U+000b11: */ - 0, /* U+000b12: */ - RTUNI_ALPHA, /* U+000b13: ORIYA LETTER O*/ - RTUNI_ALPHA, /* U+000b14: ORIYA LETTER AU*/ - RTUNI_ALPHA, /* U+000b15: ORIYA LETTER KA*/ - RTUNI_ALPHA, /* U+000b16: ORIYA LETTER KHA*/ - RTUNI_ALPHA, /* U+000b17: ORIYA LETTER GA*/ - RTUNI_ALPHA, /* U+000b18: ORIYA LETTER GHA*/ - RTUNI_ALPHA, /* U+000b19: ORIYA LETTER NGA*/ - RTUNI_ALPHA, /* U+000b1a: ORIYA LETTER CA*/ - RTUNI_ALPHA, /* U+000b1b: ORIYA LETTER CHA*/ - RTUNI_ALPHA, /* U+000b1c: ORIYA LETTER JA*/ - RTUNI_ALPHA, /* U+000b1d: ORIYA LETTER JHA*/ - RTUNI_ALPHA, /* U+000b1e: ORIYA LETTER NYA*/ - RTUNI_ALPHA, /* U+000b1f: ORIYA LETTER TTA*/ - RTUNI_ALPHA, /* U+000b20: ORIYA LETTER TTHA*/ - RTUNI_ALPHA, /* U+000b21: ORIYA LETTER DDA*/ - RTUNI_ALPHA, /* U+000b22: ORIYA LETTER DDHA*/ - RTUNI_ALPHA, /* U+000b23: ORIYA LETTER NNA*/ - RTUNI_ALPHA, /* U+000b24: ORIYA LETTER TA*/ - RTUNI_ALPHA, /* U+000b25: ORIYA LETTER THA*/ - RTUNI_ALPHA, /* U+000b26: ORIYA LETTER DA*/ - RTUNI_ALPHA, /* U+000b27: ORIYA LETTER DHA*/ - RTUNI_ALPHA, /* U+000b28: ORIYA LETTER NA*/ - 0, /* U+000b29: */ - RTUNI_ALPHA, /* U+000b2a: ORIYA LETTER PA*/ - RTUNI_ALPHA, /* U+000b2b: ORIYA LETTER PHA*/ - RTUNI_ALPHA, /* U+000b2c: ORIYA LETTER BA*/ - RTUNI_ALPHA, /* U+000b2d: ORIYA LETTER BHA*/ - RTUNI_ALPHA, /* U+000b2e: ORIYA LETTER MA*/ - RTUNI_ALPHA, /* U+000b2f: ORIYA LETTER YA*/ - RTUNI_ALPHA, /* U+000b30: ORIYA LETTER RA*/ - 0, /* U+000b31: */ - RTUNI_ALPHA, /* U+000b32: ORIYA LETTER LA*/ - RTUNI_ALPHA, /* U+000b33: ORIYA LETTER LLA*/ - 0, /* U+000b34: */ - RTUNI_ALPHA, /* U+000b35: ORIYA LETTER VA*/ - RTUNI_ALPHA, /* U+000b36: ORIYA LETTER SHA*/ - RTUNI_ALPHA, /* U+000b37: ORIYA LETTER SSA*/ - RTUNI_ALPHA, /* U+000b38: ORIYA LETTER SA*/ - RTUNI_ALPHA, /* U+000b39: ORIYA LETTER HA*/ - 0, /* U+000b3a: */ - 0, /* U+000b3b: */ - 0, /* U+000b3c: ORIYA SIGN NUKTA*/ - RTUNI_ALPHA, /* U+000b3d: ORIYA SIGN AVAGRAHA*/ - RTUNI_ALPHA, /* U+000b3e: ORIYA VOWEL SIGN AA*/ - RTUNI_ALPHA, /* U+000b3f: ORIYA VOWEL SIGN I*/ - RTUNI_ALPHA, /* U+000b40: ORIYA VOWEL SIGN II*/ - RTUNI_ALPHA, /* U+000b41: ORIYA VOWEL SIGN U*/ - RTUNI_ALPHA, /* U+000b42: ORIYA VOWEL SIGN UU*/ - RTUNI_ALPHA, /* U+000b43: ORIYA VOWEL SIGN VOCALIC R*/ - 0, /* U+000b44: */ - 0, /* U+000b45: */ - 0, /* U+000b46: */ - RTUNI_ALPHA, /* U+000b47: ORIYA VOWEL SIGN E*/ - RTUNI_ALPHA, /* U+000b48: ORIYA VOWEL SIGN AI*/ - 0, /* U+000b49: */ - 0, /* U+000b4a: */ - RTUNI_ALPHA, /* U+000b4b: ORIYA VOWEL SIGN O*/ - RTUNI_ALPHA, /* U+000b4c: ORIYA VOWEL SIGN AU*/ - 0, /* U+000b4d: ORIYA SIGN VIRAMA*/ - 0, /* U+000b4e: */ - 0, /* U+000b4f: */ - 0, /* U+000b50: */ - 0, /* U+000b51: */ - 0, /* U+000b52: */ - 0, /* U+000b53: */ - 0, /* U+000b54: */ - 0, /* U+000b55: */ - RTUNI_ALPHA, /* U+000b56: ORIYA AI LENGTH MARK*/ - RTUNI_ALPHA, /* U+000b57: ORIYA AU LENGTH MARK*/ - 0, /* U+000b58: */ - 0, /* U+000b59: */ - 0, /* U+000b5a: */ - 0, /* U+000b5b: */ - RTUNI_ALPHA, /* U+000b5c: ORIYA LETTER RRA*/ - RTUNI_ALPHA, /* U+000b5d: ORIYA LETTER RHA*/ - 0, /* U+000b5e: */ - RTUNI_ALPHA, /* U+000b5f: ORIYA LETTER YYA*/ - RTUNI_ALPHA, /* U+000b60: ORIYA LETTER VOCALIC RR*/ - RTUNI_ALPHA, /* U+000b61: ORIYA LETTER VOCALIC LL*/ - 0, /* U+000b62: */ - 0, /* U+000b63: */ - 0, /* U+000b64: */ - 0, /* U+000b65: */ - RTUNI_DDIGIT, /* U+000b66: ORIYA DIGIT ZERO*/ - RTUNI_DDIGIT, /* U+000b67: ORIYA DIGIT ONE*/ - RTUNI_DDIGIT, /* U+000b68: ORIYA DIGIT TWO*/ - RTUNI_DDIGIT, /* U+000b69: ORIYA DIGIT THREE*/ - RTUNI_DDIGIT, /* U+000b6a: ORIYA DIGIT FOUR*/ - RTUNI_DDIGIT, /* U+000b6b: ORIYA DIGIT FIVE*/ - RTUNI_DDIGIT, /* U+000b6c: ORIYA DIGIT SIX*/ - RTUNI_DDIGIT, /* U+000b6d: ORIYA DIGIT SEVEN*/ - RTUNI_DDIGIT, /* U+000b6e: ORIYA DIGIT EIGHT*/ - RTUNI_DDIGIT, /* U+000b6f: ORIYA DIGIT NINE*/ - 0, /* U+000b70: ORIYA ISSHAR*/ - RTUNI_ALPHA, /* U+000b71: ORIYA LETTER WA*/ - 0, /* U+000b72: */ - 0, /* U+000b73: */ - 0, /* U+000b74: */ - 0, /* U+000b75: */ - 0, /* U+000b76: */ - 0, /* U+000b77: */ - 0, /* U+000b78: */ - 0, /* U+000b79: */ - 0, /* U+000b7a: */ - 0, /* U+000b7b: */ - 0, /* U+000b7c: */ - 0, /* U+000b7d: */ - 0, /* U+000b7e: */ - 0, /* U+000b7f: */ - 0, /* U+000b80: */ - 0, /* U+000b81: */ - RTUNI_ALPHA, /* U+000b82: TAMIL SIGN ANUSVARA*/ - RTUNI_ALPHA, /* U+000b83: TAMIL SIGN VISARGA*/ - 0, /* U+000b84: */ - RTUNI_ALPHA, /* U+000b85: TAMIL LETTER A*/ - RTUNI_ALPHA, /* U+000b86: TAMIL LETTER AA*/ - RTUNI_ALPHA, /* U+000b87: TAMIL LETTER I*/ - RTUNI_ALPHA, /* U+000b88: TAMIL LETTER II*/ - RTUNI_ALPHA, /* U+000b89: TAMIL LETTER U*/ - RTUNI_ALPHA, /* U+000b8a: TAMIL LETTER UU*/ - 0, /* U+000b8b: */ - 0, /* U+000b8c: */ - 0, /* U+000b8d: */ - RTUNI_ALPHA, /* U+000b8e: TAMIL LETTER E*/ - RTUNI_ALPHA, /* U+000b8f: TAMIL LETTER EE*/ - RTUNI_ALPHA, /* U+000b90: TAMIL LETTER AI*/ - 0, /* U+000b91: */ - RTUNI_ALPHA, /* U+000b92: TAMIL LETTER O*/ - RTUNI_ALPHA, /* U+000b93: TAMIL LETTER OO*/ - RTUNI_ALPHA, /* U+000b94: TAMIL LETTER AU*/ - RTUNI_ALPHA, /* U+000b95: TAMIL LETTER KA*/ - 0, /* U+000b96: */ - 0, /* U+000b97: */ - 0, /* U+000b98: */ - RTUNI_ALPHA, /* U+000b99: TAMIL LETTER NGA*/ - RTUNI_ALPHA, /* U+000b9a: TAMIL LETTER CA*/ - 0, /* U+000b9b: */ - RTUNI_ALPHA, /* U+000b9c: TAMIL LETTER JA*/ - 0, /* U+000b9d: */ - RTUNI_ALPHA, /* U+000b9e: TAMIL LETTER NYA*/ - RTUNI_ALPHA, /* U+000b9f: TAMIL LETTER TTA*/ - 0, /* U+000ba0: */ - 0, /* U+000ba1: */ - 0, /* U+000ba2: */ - RTUNI_ALPHA, /* U+000ba3: TAMIL LETTER NNA*/ - RTUNI_ALPHA, /* U+000ba4: TAMIL LETTER TA*/ - 0, /* U+000ba5: */ - 0, /* U+000ba6: */ - 0, /* U+000ba7: */ - RTUNI_ALPHA, /* U+000ba8: TAMIL LETTER NA*/ - RTUNI_ALPHA, /* U+000ba9: TAMIL LETTER NNNA*/ - RTUNI_ALPHA, /* U+000baa: TAMIL LETTER PA*/ - 0, /* U+000bab: */ - 0, /* U+000bac: */ - 0, /* U+000bad: */ - RTUNI_ALPHA, /* U+000bae: TAMIL LETTER MA*/ - RTUNI_ALPHA, /* U+000baf: TAMIL LETTER YA*/ - RTUNI_ALPHA, /* U+000bb0: TAMIL LETTER RA*/ - RTUNI_ALPHA, /* U+000bb1: TAMIL LETTER RRA*/ - RTUNI_ALPHA, /* U+000bb2: TAMIL LETTER LA*/ - RTUNI_ALPHA, /* U+000bb3: TAMIL LETTER LLA*/ - RTUNI_ALPHA, /* U+000bb4: TAMIL LETTER LLLA*/ - RTUNI_ALPHA, /* U+000bb5: TAMIL LETTER VA*/ - RTUNI_ALPHA, /* U+000bb6: TAMIL LETTER SHA*/ - RTUNI_ALPHA, /* U+000bb7: TAMIL LETTER SSA*/ - RTUNI_ALPHA, /* U+000bb8: TAMIL LETTER SA*/ - RTUNI_ALPHA, /* U+000bb9: TAMIL LETTER HA*/ - 0, /* U+000bba: */ - 0, /* U+000bbb: */ - 0, /* U+000bbc: */ - 0, /* U+000bbd: */ - RTUNI_ALPHA, /* U+000bbe: TAMIL VOWEL SIGN AA*/ - RTUNI_ALPHA, /* U+000bbf: TAMIL VOWEL SIGN I*/ - RTUNI_ALPHA, /* U+000bc0: TAMIL VOWEL SIGN II*/ - RTUNI_ALPHA, /* U+000bc1: TAMIL VOWEL SIGN U*/ - RTUNI_ALPHA, /* U+000bc2: TAMIL VOWEL SIGN UU*/ - 0, /* U+000bc3: */ - 0, /* U+000bc4: */ - 0, /* U+000bc5: */ - RTUNI_ALPHA, /* U+000bc6: TAMIL VOWEL SIGN E*/ - RTUNI_ALPHA, /* U+000bc7: TAMIL VOWEL SIGN EE*/ - RTUNI_ALPHA, /* U+000bc8: TAMIL VOWEL SIGN AI*/ - 0, /* U+000bc9: */ - RTUNI_ALPHA, /* U+000bca: TAMIL VOWEL SIGN O*/ - RTUNI_ALPHA, /* U+000bcb: TAMIL VOWEL SIGN OO*/ - RTUNI_ALPHA, /* U+000bcc: TAMIL VOWEL SIGN AU*/ - 0, /* U+000bcd: TAMIL SIGN VIRAMA*/ - 0, /* U+000bce: */ - 0, /* U+000bcf: */ - 0, /* U+000bd0: */ - 0, /* U+000bd1: */ - 0, /* U+000bd2: */ - 0, /* U+000bd3: */ - 0, /* U+000bd4: */ - 0, /* U+000bd5: */ - 0, /* U+000bd6: */ - RTUNI_ALPHA, /* U+000bd7: TAMIL AU LENGTH MARK*/ - 0, /* U+000bd8: */ - 0, /* U+000bd9: */ - 0, /* U+000bda: */ - 0, /* U+000bdb: */ - 0, /* U+000bdc: */ - 0, /* U+000bdd: */ - 0, /* U+000bde: */ - 0, /* U+000bdf: */ - 0, /* U+000be0: */ - 0, /* U+000be1: */ - 0, /* U+000be2: */ - 0, /* U+000be3: */ - 0, /* U+000be4: */ - 0, /* U+000be5: */ - RTUNI_DDIGIT, /* U+000be6: TAMIL DIGIT ZERO*/ - RTUNI_DDIGIT, /* U+000be7: TAMIL DIGIT ONE*/ - RTUNI_DDIGIT, /* U+000be8: TAMIL DIGIT TWO*/ - RTUNI_DDIGIT, /* U+000be9: TAMIL DIGIT THREE*/ - RTUNI_DDIGIT, /* U+000bea: TAMIL DIGIT FOUR*/ - RTUNI_DDIGIT, /* U+000beb: TAMIL DIGIT FIVE*/ - RTUNI_DDIGIT, /* U+000bec: TAMIL DIGIT SIX*/ - RTUNI_DDIGIT, /* U+000bed: TAMIL DIGIT SEVEN*/ - RTUNI_DDIGIT, /* U+000bee: TAMIL DIGIT EIGHT*/ - RTUNI_DDIGIT, /* U+000bef: TAMIL DIGIT NINE*/ - 0, /* U+000bf0: TAMIL NUMBER TEN*/ - 0, /* U+000bf1: TAMIL NUMBER ONE HUNDRED*/ - 0, /* U+000bf2: TAMIL NUMBER ONE THOUSAND*/ - 0, /* U+000bf3: TAMIL DAY SIGN*/ - 0, /* U+000bf4: TAMIL MONTH SIGN*/ - 0, /* U+000bf5: TAMIL YEAR SIGN*/ - 0, /* U+000bf6: TAMIL DEBIT SIGN*/ - 0, /* U+000bf7: TAMIL CREDIT SIGN*/ - 0, /* U+000bf8: TAMIL AS ABOVE SIGN*/ - 0, /* U+000bf9: TAMIL RUPEE SIGN*/ - 0, /* U+000bfa: TAMIL NUMBER SIGN*/ - 0, /* U+000bfb: */ - 0, /* U+000bfc: */ - 0, /* U+000bfd: */ - 0, /* U+000bfe: */ - 0, /* U+000bff: */ - 0, /* U+000c00: */ - RTUNI_ALPHA, /* U+000c01: TELUGU SIGN CANDRABINDU*/ - RTUNI_ALPHA, /* U+000c02: TELUGU SIGN ANUSVARA*/ - RTUNI_ALPHA, /* U+000c03: TELUGU SIGN VISARGA*/ - 0, /* U+000c04: */ - RTUNI_ALPHA, /* U+000c05: TELUGU LETTER A*/ - RTUNI_ALPHA, /* U+000c06: TELUGU LETTER AA*/ - RTUNI_ALPHA, /* U+000c07: TELUGU LETTER I*/ - RTUNI_ALPHA, /* U+000c08: TELUGU LETTER II*/ - RTUNI_ALPHA, /* U+000c09: TELUGU LETTER U*/ - RTUNI_ALPHA, /* U+000c0a: TELUGU LETTER UU*/ - RTUNI_ALPHA, /* U+000c0b: TELUGU LETTER VOCALIC R*/ - RTUNI_ALPHA, /* U+000c0c: TELUGU LETTER VOCALIC L*/ - 0, /* U+000c0d: */ - RTUNI_ALPHA, /* U+000c0e: TELUGU LETTER E*/ - RTUNI_ALPHA, /* U+000c0f: TELUGU LETTER EE*/ - RTUNI_ALPHA, /* U+000c10: TELUGU LETTER AI*/ - 0, /* U+000c11: */ - RTUNI_ALPHA, /* U+000c12: TELUGU LETTER O*/ - RTUNI_ALPHA, /* U+000c13: TELUGU LETTER OO*/ - RTUNI_ALPHA, /* U+000c14: TELUGU LETTER AU*/ - RTUNI_ALPHA, /* U+000c15: TELUGU LETTER KA*/ - RTUNI_ALPHA, /* U+000c16: TELUGU LETTER KHA*/ - RTUNI_ALPHA, /* U+000c17: TELUGU LETTER GA*/ - RTUNI_ALPHA, /* U+000c18: TELUGU LETTER GHA*/ - RTUNI_ALPHA, /* U+000c19: TELUGU LETTER NGA*/ - RTUNI_ALPHA, /* U+000c1a: TELUGU LETTER CA*/ - RTUNI_ALPHA, /* U+000c1b: TELUGU LETTER CHA*/ - RTUNI_ALPHA, /* U+000c1c: TELUGU LETTER JA*/ - RTUNI_ALPHA, /* U+000c1d: TELUGU LETTER JHA*/ - RTUNI_ALPHA, /* U+000c1e: TELUGU LETTER NYA*/ - RTUNI_ALPHA, /* U+000c1f: TELUGU LETTER TTA*/ - RTUNI_ALPHA, /* U+000c20: TELUGU LETTER TTHA*/ - RTUNI_ALPHA, /* U+000c21: TELUGU LETTER DDA*/ - RTUNI_ALPHA, /* U+000c22: TELUGU LETTER DDHA*/ - RTUNI_ALPHA, /* U+000c23: TELUGU LETTER NNA*/ - RTUNI_ALPHA, /* U+000c24: TELUGU LETTER TA*/ - RTUNI_ALPHA, /* U+000c25: TELUGU LETTER THA*/ - RTUNI_ALPHA, /* U+000c26: TELUGU LETTER DA*/ - RTUNI_ALPHA, /* U+000c27: TELUGU LETTER DHA*/ - RTUNI_ALPHA, /* U+000c28: TELUGU LETTER NA*/ - 0, /* U+000c29: */ - RTUNI_ALPHA, /* U+000c2a: TELUGU LETTER PA*/ - RTUNI_ALPHA, /* U+000c2b: TELUGU LETTER PHA*/ - RTUNI_ALPHA, /* U+000c2c: TELUGU LETTER BA*/ - RTUNI_ALPHA, /* U+000c2d: TELUGU LETTER BHA*/ - RTUNI_ALPHA, /* U+000c2e: TELUGU LETTER MA*/ - RTUNI_ALPHA, /* U+000c2f: TELUGU LETTER YA*/ - RTUNI_ALPHA, /* U+000c30: TELUGU LETTER RA*/ - RTUNI_ALPHA, /* U+000c31: TELUGU LETTER RRA*/ - RTUNI_ALPHA, /* U+000c32: TELUGU LETTER LA*/ - RTUNI_ALPHA, /* U+000c33: TELUGU LETTER LLA*/ - 0, /* U+000c34: */ - RTUNI_ALPHA, /* U+000c35: TELUGU LETTER VA*/ - RTUNI_ALPHA, /* U+000c36: TELUGU LETTER SHA*/ - RTUNI_ALPHA, /* U+000c37: TELUGU LETTER SSA*/ - RTUNI_ALPHA, /* U+000c38: TELUGU LETTER SA*/ - RTUNI_ALPHA, /* U+000c39: TELUGU LETTER HA*/ - 0, /* U+000c3a: */ - 0, /* U+000c3b: */ - 0, /* U+000c3c: */ - 0, /* U+000c3d: */ - RTUNI_ALPHA, /* U+000c3e: TELUGU VOWEL SIGN AA*/ - RTUNI_ALPHA, /* U+000c3f: TELUGU VOWEL SIGN I*/ - RTUNI_ALPHA, /* U+000c40: TELUGU VOWEL SIGN II*/ - RTUNI_ALPHA, /* U+000c41: TELUGU VOWEL SIGN U*/ - RTUNI_ALPHA, /* U+000c42: TELUGU VOWEL SIGN UU*/ - RTUNI_ALPHA, /* U+000c43: TELUGU VOWEL SIGN VOCALIC R*/ - RTUNI_ALPHA, /* U+000c44: TELUGU VOWEL SIGN VOCALIC RR*/ - 0, /* U+000c45: */ - RTUNI_ALPHA, /* U+000c46: TELUGU VOWEL SIGN E*/ - RTUNI_ALPHA, /* U+000c47: TELUGU VOWEL SIGN EE*/ - RTUNI_ALPHA, /* U+000c48: TELUGU VOWEL SIGN AI*/ - 0, /* U+000c49: */ - RTUNI_ALPHA, /* U+000c4a: TELUGU VOWEL SIGN O*/ - RTUNI_ALPHA, /* U+000c4b: TELUGU VOWEL SIGN OO*/ - RTUNI_ALPHA, /* U+000c4c: TELUGU VOWEL SIGN AU*/ - 0, /* U+000c4d: TELUGU SIGN VIRAMA*/ - 0, /* U+000c4e: */ - 0, /* U+000c4f: */ - 0, /* U+000c50: */ - 0, /* U+000c51: */ - 0, /* U+000c52: */ - 0, /* U+000c53: */ - 0, /* U+000c54: */ - RTUNI_ALPHA, /* U+000c55: TELUGU LENGTH MARK*/ - RTUNI_ALPHA, /* U+000c56: TELUGU AI LENGTH MARK*/ - 0, /* U+000c57: */ - 0, /* U+000c58: */ - 0, /* U+000c59: */ - 0, /* U+000c5a: */ - 0, /* U+000c5b: */ - 0, /* U+000c5c: */ - 0, /* U+000c5d: */ - 0, /* U+000c5e: */ - 0, /* U+000c5f: */ - RTUNI_ALPHA, /* U+000c60: TELUGU LETTER VOCALIC RR*/ - RTUNI_ALPHA, /* U+000c61: TELUGU LETTER VOCALIC LL*/ - 0, /* U+000c62: */ - 0, /* U+000c63: */ - 0, /* U+000c64: */ - 0, /* U+000c65: */ - RTUNI_DDIGIT, /* U+000c66: TELUGU DIGIT ZERO*/ - RTUNI_DDIGIT, /* U+000c67: TELUGU DIGIT ONE*/ - RTUNI_DDIGIT, /* U+000c68: TELUGU DIGIT TWO*/ - RTUNI_DDIGIT, /* U+000c69: TELUGU DIGIT THREE*/ - RTUNI_DDIGIT, /* U+000c6a: TELUGU DIGIT FOUR*/ - RTUNI_DDIGIT, /* U+000c6b: TELUGU DIGIT FIVE*/ - RTUNI_DDIGIT, /* U+000c6c: TELUGU DIGIT SIX*/ - RTUNI_DDIGIT, /* U+000c6d: TELUGU DIGIT SEVEN*/ - RTUNI_DDIGIT, /* U+000c6e: TELUGU DIGIT EIGHT*/ - RTUNI_DDIGIT, /* U+000c6f: TELUGU DIGIT NINE*/ - 0, /* U+000c70: */ - 0, /* U+000c71: */ - 0, /* U+000c72: */ - 0, /* U+000c73: */ - 0, /* U+000c74: */ - 0, /* U+000c75: */ - 0, /* U+000c76: */ - 0, /* U+000c77: */ - 0, /* U+000c78: */ - 0, /* U+000c79: */ - 0, /* U+000c7a: */ - 0, /* U+000c7b: */ - 0, /* U+000c7c: */ - 0, /* U+000c7d: */ - 0, /* U+000c7e: */ - 0, /* U+000c7f: */ - 0, /* U+000c80: */ - 0, /* U+000c81: */ - RTUNI_ALPHA, /* U+000c82: KANNADA SIGN ANUSVARA*/ - RTUNI_ALPHA, /* U+000c83: KANNADA SIGN VISARGA*/ - 0, /* U+000c84: */ - RTUNI_ALPHA, /* U+000c85: KANNADA LETTER A*/ - RTUNI_ALPHA, /* U+000c86: KANNADA LETTER AA*/ - RTUNI_ALPHA, /* U+000c87: KANNADA LETTER I*/ - RTUNI_ALPHA, /* U+000c88: KANNADA LETTER II*/ - RTUNI_ALPHA, /* U+000c89: KANNADA LETTER U*/ - RTUNI_ALPHA, /* U+000c8a: KANNADA LETTER UU*/ - RTUNI_ALPHA, /* U+000c8b: KANNADA LETTER VOCALIC R*/ - RTUNI_ALPHA, /* U+000c8c: KANNADA LETTER VOCALIC L*/ - 0, /* U+000c8d: */ - RTUNI_ALPHA, /* U+000c8e: KANNADA LETTER E*/ - RTUNI_ALPHA, /* U+000c8f: KANNADA LETTER EE*/ - RTUNI_ALPHA, /* U+000c90: KANNADA LETTER AI*/ - 0, /* U+000c91: */ - RTUNI_ALPHA, /* U+000c92: KANNADA LETTER O*/ - RTUNI_ALPHA, /* U+000c93: KANNADA LETTER OO*/ - RTUNI_ALPHA, /* U+000c94: KANNADA LETTER AU*/ - RTUNI_ALPHA, /* U+000c95: KANNADA LETTER KA*/ - RTUNI_ALPHA, /* U+000c96: KANNADA LETTER KHA*/ - RTUNI_ALPHA, /* U+000c97: KANNADA LETTER GA*/ - RTUNI_ALPHA, /* U+000c98: KANNADA LETTER GHA*/ - RTUNI_ALPHA, /* U+000c99: KANNADA LETTER NGA*/ - RTUNI_ALPHA, /* U+000c9a: KANNADA LETTER CA*/ - RTUNI_ALPHA, /* U+000c9b: KANNADA LETTER CHA*/ - RTUNI_ALPHA, /* U+000c9c: KANNADA LETTER JA*/ - RTUNI_ALPHA, /* U+000c9d: KANNADA LETTER JHA*/ - RTUNI_ALPHA, /* U+000c9e: KANNADA LETTER NYA*/ - RTUNI_ALPHA, /* U+000c9f: KANNADA LETTER TTA*/ - RTUNI_ALPHA, /* U+000ca0: KANNADA LETTER TTHA*/ - RTUNI_ALPHA, /* U+000ca1: KANNADA LETTER DDA*/ - RTUNI_ALPHA, /* U+000ca2: KANNADA LETTER DDHA*/ - RTUNI_ALPHA, /* U+000ca3: KANNADA LETTER NNA*/ - RTUNI_ALPHA, /* U+000ca4: KANNADA LETTER TA*/ - RTUNI_ALPHA, /* U+000ca5: KANNADA LETTER THA*/ - RTUNI_ALPHA, /* U+000ca6: KANNADA LETTER DA*/ - RTUNI_ALPHA, /* U+000ca7: KANNADA LETTER DHA*/ - RTUNI_ALPHA, /* U+000ca8: KANNADA LETTER NA*/ - 0, /* U+000ca9: */ - RTUNI_ALPHA, /* U+000caa: KANNADA LETTER PA*/ - RTUNI_ALPHA, /* U+000cab: KANNADA LETTER PHA*/ - RTUNI_ALPHA, /* U+000cac: KANNADA LETTER BA*/ - RTUNI_ALPHA, /* U+000cad: KANNADA LETTER BHA*/ - RTUNI_ALPHA, /* U+000cae: KANNADA LETTER MA*/ - RTUNI_ALPHA, /* U+000caf: KANNADA LETTER YA*/ - RTUNI_ALPHA, /* U+000cb0: KANNADA LETTER RA*/ - RTUNI_ALPHA, /* U+000cb1: KANNADA LETTER RRA*/ - RTUNI_ALPHA, /* U+000cb2: KANNADA LETTER LA*/ - RTUNI_ALPHA, /* U+000cb3: KANNADA LETTER LLA*/ - 0, /* U+000cb4: */ - RTUNI_ALPHA, /* U+000cb5: KANNADA LETTER VA*/ - RTUNI_ALPHA, /* U+000cb6: KANNADA LETTER SHA*/ - RTUNI_ALPHA, /* U+000cb7: KANNADA LETTER SSA*/ - RTUNI_ALPHA, /* U+000cb8: KANNADA LETTER SA*/ - RTUNI_ALPHA, /* U+000cb9: KANNADA LETTER HA*/ - 0, /* U+000cba: */ - 0, /* U+000cbb: */ - 0, /* U+000cbc: KANNADA SIGN NUKTA*/ - RTUNI_ALPHA, /* U+000cbd: KANNADA SIGN AVAGRAHA*/ - RTUNI_ALPHA, /* U+000cbe: KANNADA VOWEL SIGN AA*/ - RTUNI_ALPHA, /* U+000cbf: KANNADA VOWEL SIGN I*/ - RTUNI_ALPHA, /* U+000cc0: KANNADA VOWEL SIGN II*/ - RTUNI_ALPHA, /* U+000cc1: KANNADA VOWEL SIGN U*/ - RTUNI_ALPHA, /* U+000cc2: KANNADA VOWEL SIGN UU*/ - RTUNI_ALPHA, /* U+000cc3: KANNADA VOWEL SIGN VOCALIC R*/ - RTUNI_ALPHA, /* U+000cc4: KANNADA VOWEL SIGN VOCALIC RR*/ - 0, /* U+000cc5: */ - RTUNI_ALPHA, /* U+000cc6: KANNADA VOWEL SIGN E*/ - RTUNI_ALPHA, /* U+000cc7: KANNADA VOWEL SIGN EE*/ - RTUNI_ALPHA, /* U+000cc8: KANNADA VOWEL SIGN AI*/ - 0, /* U+000cc9: */ - RTUNI_ALPHA, /* U+000cca: KANNADA VOWEL SIGN O*/ - RTUNI_ALPHA, /* U+000ccb: KANNADA VOWEL SIGN OO*/ - RTUNI_ALPHA, /* U+000ccc: KANNADA VOWEL SIGN AU*/ - 0, /* U+000ccd: KANNADA SIGN VIRAMA*/ - 0, /* U+000cce: */ - 0, /* U+000ccf: */ - 0, /* U+000cd0: */ - 0, /* U+000cd1: */ - 0, /* U+000cd2: */ - 0, /* U+000cd3: */ - 0, /* U+000cd4: */ - RTUNI_ALPHA, /* U+000cd5: KANNADA LENGTH MARK*/ - RTUNI_ALPHA, /* U+000cd6: KANNADA AI LENGTH MARK*/ - 0, /* U+000cd7: */ - 0, /* U+000cd8: */ - 0, /* U+000cd9: */ - 0, /* U+000cda: */ - 0, /* U+000cdb: */ - 0, /* U+000cdc: */ - 0, /* U+000cdd: */ - RTUNI_ALPHA, /* U+000cde: KANNADA LETTER FA*/ - 0, /* U+000cdf: */ - RTUNI_ALPHA, /* U+000ce0: KANNADA LETTER VOCALIC RR*/ - RTUNI_ALPHA, /* U+000ce1: KANNADA LETTER VOCALIC LL*/ - 0, /* U+000ce2: */ - 0, /* U+000ce3: */ - 0, /* U+000ce4: */ - 0, /* U+000ce5: */ - RTUNI_DDIGIT, /* U+000ce6: KANNADA DIGIT ZERO*/ - RTUNI_DDIGIT, /* U+000ce7: KANNADA DIGIT ONE*/ - RTUNI_DDIGIT, /* U+000ce8: KANNADA DIGIT TWO*/ - RTUNI_DDIGIT, /* U+000ce9: KANNADA DIGIT THREE*/ - RTUNI_DDIGIT, /* U+000cea: KANNADA DIGIT FOUR*/ - RTUNI_DDIGIT, /* U+000ceb: KANNADA DIGIT FIVE*/ - RTUNI_DDIGIT, /* U+000cec: KANNADA DIGIT SIX*/ - RTUNI_DDIGIT, /* U+000ced: KANNADA DIGIT SEVEN*/ - RTUNI_DDIGIT, /* U+000cee: KANNADA DIGIT EIGHT*/ - RTUNI_DDIGIT, /* U+000cef: KANNADA DIGIT NINE*/ - 0, /* U+000cf0: */ - 0, /* U+000cf1: */ - 0, /* U+000cf2: */ - 0, /* U+000cf3: */ - 0, /* U+000cf4: */ - 0, /* U+000cf5: */ - 0, /* U+000cf6: */ - 0, /* U+000cf7: */ - 0, /* U+000cf8: */ - 0, /* U+000cf9: */ - 0, /* U+000cfa: */ - 0, /* U+000cfb: */ - 0, /* U+000cfc: */ - 0, /* U+000cfd: */ - 0, /* U+000cfe: */ - 0, /* U+000cff: */ - 0, /* U+000d00: */ - 0, /* U+000d01: */ - RTUNI_ALPHA, /* U+000d02: MALAYALAM SIGN ANUSVARA*/ - RTUNI_ALPHA, /* U+000d03: MALAYALAM SIGN VISARGA*/ - 0, /* U+000d04: */ - RTUNI_ALPHA, /* U+000d05: MALAYALAM LETTER A*/ - RTUNI_ALPHA, /* U+000d06: MALAYALAM LETTER AA*/ - RTUNI_ALPHA, /* U+000d07: MALAYALAM LETTER I*/ - RTUNI_ALPHA, /* U+000d08: MALAYALAM LETTER II*/ - RTUNI_ALPHA, /* U+000d09: MALAYALAM LETTER U*/ - RTUNI_ALPHA, /* U+000d0a: MALAYALAM LETTER UU*/ - RTUNI_ALPHA, /* U+000d0b: MALAYALAM LETTER VOCALIC R*/ - RTUNI_ALPHA, /* U+000d0c: MALAYALAM LETTER VOCALIC L*/ - 0, /* U+000d0d: */ - RTUNI_ALPHA, /* U+000d0e: MALAYALAM LETTER E*/ - RTUNI_ALPHA, /* U+000d0f: MALAYALAM LETTER EE*/ - RTUNI_ALPHA, /* U+000d10: MALAYALAM LETTER AI*/ - 0, /* U+000d11: */ - RTUNI_ALPHA, /* U+000d12: MALAYALAM LETTER O*/ - RTUNI_ALPHA, /* U+000d13: MALAYALAM LETTER OO*/ - RTUNI_ALPHA, /* U+000d14: MALAYALAM LETTER AU*/ - RTUNI_ALPHA, /* U+000d15: MALAYALAM LETTER KA*/ - RTUNI_ALPHA, /* U+000d16: MALAYALAM LETTER KHA*/ - RTUNI_ALPHA, /* U+000d17: MALAYALAM LETTER GA*/ - RTUNI_ALPHA, /* U+000d18: MALAYALAM LETTER GHA*/ - RTUNI_ALPHA, /* U+000d19: MALAYALAM LETTER NGA*/ - RTUNI_ALPHA, /* U+000d1a: MALAYALAM LETTER CA*/ - RTUNI_ALPHA, /* U+000d1b: MALAYALAM LETTER CHA*/ - RTUNI_ALPHA, /* U+000d1c: MALAYALAM LETTER JA*/ - RTUNI_ALPHA, /* U+000d1d: MALAYALAM LETTER JHA*/ - RTUNI_ALPHA, /* U+000d1e: MALAYALAM LETTER NYA*/ - RTUNI_ALPHA, /* U+000d1f: MALAYALAM LETTER TTA*/ - RTUNI_ALPHA, /* U+000d20: MALAYALAM LETTER TTHA*/ - RTUNI_ALPHA, /* U+000d21: MALAYALAM LETTER DDA*/ - RTUNI_ALPHA, /* U+000d22: MALAYALAM LETTER DDHA*/ - RTUNI_ALPHA, /* U+000d23: MALAYALAM LETTER NNA*/ - RTUNI_ALPHA, /* U+000d24: MALAYALAM LETTER TA*/ - RTUNI_ALPHA, /* U+000d25: MALAYALAM LETTER THA*/ - RTUNI_ALPHA, /* U+000d26: MALAYALAM LETTER DA*/ - RTUNI_ALPHA, /* U+000d27: MALAYALAM LETTER DHA*/ - RTUNI_ALPHA, /* U+000d28: MALAYALAM LETTER NA*/ - 0, /* U+000d29: */ - RTUNI_ALPHA, /* U+000d2a: MALAYALAM LETTER PA*/ - RTUNI_ALPHA, /* U+000d2b: MALAYALAM LETTER PHA*/ - RTUNI_ALPHA, /* U+000d2c: MALAYALAM LETTER BA*/ - RTUNI_ALPHA, /* U+000d2d: MALAYALAM LETTER BHA*/ - RTUNI_ALPHA, /* U+000d2e: MALAYALAM LETTER MA*/ - RTUNI_ALPHA, /* U+000d2f: MALAYALAM LETTER YA*/ - RTUNI_ALPHA, /* U+000d30: MALAYALAM LETTER RA*/ - RTUNI_ALPHA, /* U+000d31: MALAYALAM LETTER RRA*/ - RTUNI_ALPHA, /* U+000d32: MALAYALAM LETTER LA*/ - RTUNI_ALPHA, /* U+000d33: MALAYALAM LETTER LLA*/ - RTUNI_ALPHA, /* U+000d34: MALAYALAM LETTER LLLA*/ - RTUNI_ALPHA, /* U+000d35: MALAYALAM LETTER VA*/ - RTUNI_ALPHA, /* U+000d36: MALAYALAM LETTER SHA*/ - RTUNI_ALPHA, /* U+000d37: MALAYALAM LETTER SSA*/ - RTUNI_ALPHA, /* U+000d38: MALAYALAM LETTER SA*/ - RTUNI_ALPHA, /* U+000d39: MALAYALAM LETTER HA*/ - 0, /* U+000d3a: */ - 0, /* U+000d3b: */ - 0, /* U+000d3c: */ - 0, /* U+000d3d: */ - RTUNI_ALPHA, /* U+000d3e: MALAYALAM VOWEL SIGN AA*/ - RTUNI_ALPHA, /* U+000d3f: MALAYALAM VOWEL SIGN I*/ - RTUNI_ALPHA, /* U+000d40: MALAYALAM VOWEL SIGN II*/ - RTUNI_ALPHA, /* U+000d41: MALAYALAM VOWEL SIGN U*/ - RTUNI_ALPHA, /* U+000d42: MALAYALAM VOWEL SIGN UU*/ - RTUNI_ALPHA, /* U+000d43: MALAYALAM VOWEL SIGN VOCALIC R*/ - 0, /* U+000d44: */ - 0, /* U+000d45: */ - RTUNI_ALPHA, /* U+000d46: MALAYALAM VOWEL SIGN E*/ - RTUNI_ALPHA, /* U+000d47: MALAYALAM VOWEL SIGN EE*/ - RTUNI_ALPHA, /* U+000d48: MALAYALAM VOWEL SIGN AI*/ - 0, /* U+000d49: */ - RTUNI_ALPHA, /* U+000d4a: MALAYALAM VOWEL SIGN O*/ - RTUNI_ALPHA, /* U+000d4b: MALAYALAM VOWEL SIGN OO*/ - RTUNI_ALPHA, /* U+000d4c: MALAYALAM VOWEL SIGN AU*/ - 0, /* U+000d4d: MALAYALAM SIGN VIRAMA*/ - 0, /* U+000d4e: */ - 0, /* U+000d4f: */ - 0, /* U+000d50: */ - 0, /* U+000d51: */ - 0, /* U+000d52: */ - 0, /* U+000d53: */ - 0, /* U+000d54: */ - 0, /* U+000d55: */ - 0, /* U+000d56: */ - RTUNI_ALPHA, /* U+000d57: MALAYALAM AU LENGTH MARK*/ - 0, /* U+000d58: */ - 0, /* U+000d59: */ - 0, /* U+000d5a: */ - 0, /* U+000d5b: */ - 0, /* U+000d5c: */ - 0, /* U+000d5d: */ - 0, /* U+000d5e: */ - 0, /* U+000d5f: */ - RTUNI_ALPHA, /* U+000d60: MALAYALAM LETTER VOCALIC RR*/ - RTUNI_ALPHA, /* U+000d61: MALAYALAM LETTER VOCALIC LL*/ - 0, /* U+000d62: */ - 0, /* U+000d63: */ - 0, /* U+000d64: */ - 0, /* U+000d65: */ - RTUNI_DDIGIT, /* U+000d66: MALAYALAM DIGIT ZERO*/ - RTUNI_DDIGIT, /* U+000d67: MALAYALAM DIGIT ONE*/ - RTUNI_DDIGIT, /* U+000d68: MALAYALAM DIGIT TWO*/ - RTUNI_DDIGIT, /* U+000d69: MALAYALAM DIGIT THREE*/ - RTUNI_DDIGIT, /* U+000d6a: MALAYALAM DIGIT FOUR*/ - RTUNI_DDIGIT, /* U+000d6b: MALAYALAM DIGIT FIVE*/ - RTUNI_DDIGIT, /* U+000d6c: MALAYALAM DIGIT SIX*/ - RTUNI_DDIGIT, /* U+000d6d: MALAYALAM DIGIT SEVEN*/ - RTUNI_DDIGIT, /* U+000d6e: MALAYALAM DIGIT EIGHT*/ - RTUNI_DDIGIT, /* U+000d6f: MALAYALAM DIGIT NINE*/ - 0, /* U+000d70: */ - 0, /* U+000d71: */ - 0, /* U+000d72: */ - 0, /* U+000d73: */ - 0, /* U+000d74: */ - 0, /* U+000d75: */ - 0, /* U+000d76: */ - 0, /* U+000d77: */ - 0, /* U+000d78: */ - 0, /* U+000d79: */ - 0, /* U+000d7a: */ - 0, /* U+000d7b: */ - 0, /* U+000d7c: */ - 0, /* U+000d7d: */ - 0, /* U+000d7e: */ - 0, /* U+000d7f: */ - 0, /* U+000d80: */ - 0, /* U+000d81: */ - RTUNI_ALPHA, /* U+000d82: SINHALA SIGN ANUSVARAYA*/ - RTUNI_ALPHA, /* U+000d83: SINHALA SIGN VISARGAYA*/ - 0, /* U+000d84: */ - RTUNI_ALPHA, /* U+000d85: SINHALA LETTER AYANNA*/ - RTUNI_ALPHA, /* U+000d86: SINHALA LETTER AAYANNA*/ - RTUNI_ALPHA, /* U+000d87: SINHALA LETTER AEYANNA*/ - RTUNI_ALPHA, /* U+000d88: SINHALA LETTER AEEYANNA*/ - RTUNI_ALPHA, /* U+000d89: SINHALA LETTER IYANNA*/ - RTUNI_ALPHA, /* U+000d8a: SINHALA LETTER IIYANNA*/ - RTUNI_ALPHA, /* U+000d8b: SINHALA LETTER UYANNA*/ - RTUNI_ALPHA, /* U+000d8c: SINHALA LETTER UUYANNA*/ - RTUNI_ALPHA, /* U+000d8d: SINHALA LETTER IRUYANNA*/ - RTUNI_ALPHA, /* U+000d8e: SINHALA LETTER IRUUYANNA*/ - RTUNI_ALPHA, /* U+000d8f: SINHALA LETTER ILUYANNA*/ - RTUNI_ALPHA, /* U+000d90: SINHALA LETTER ILUUYANNA*/ - RTUNI_ALPHA, /* U+000d91: SINHALA LETTER EYANNA*/ - RTUNI_ALPHA, /* U+000d92: SINHALA LETTER EEYANNA*/ - RTUNI_ALPHA, /* U+000d93: SINHALA LETTER AIYANNA*/ - RTUNI_ALPHA, /* U+000d94: SINHALA LETTER OYANNA*/ - RTUNI_ALPHA, /* U+000d95: SINHALA LETTER OOYANNA*/ - RTUNI_ALPHA, /* U+000d96: SINHALA LETTER AUYANNA*/ - 0, /* U+000d97: */ - 0, /* U+000d98: */ - 0, /* U+000d99: */ - RTUNI_ALPHA, /* U+000d9a: SINHALA LETTER ALPAPRAANA KAYANNA*/ - RTUNI_ALPHA, /* U+000d9b: SINHALA LETTER MAHAAPRAANA KAYANNA*/ - RTUNI_ALPHA, /* U+000d9c: SINHALA LETTER ALPAPRAANA GAYANNA*/ - RTUNI_ALPHA, /* U+000d9d: SINHALA LETTER MAHAAPRAANA GAYANNA*/ - RTUNI_ALPHA, /* U+000d9e: SINHALA LETTER KANTAJA NAASIKYAYA*/ - RTUNI_ALPHA, /* U+000d9f: SINHALA LETTER SANYAKA GAYANNA*/ - RTUNI_ALPHA, /* U+000da0: SINHALA LETTER ALPAPRAANA CAYANNA*/ - RTUNI_ALPHA, /* U+000da1: SINHALA LETTER MAHAAPRAANA CAYANNA*/ - RTUNI_ALPHA, /* U+000da2: SINHALA LETTER ALPAPRAANA JAYANNA*/ - RTUNI_ALPHA, /* U+000da3: SINHALA LETTER MAHAAPRAANA JAYANNA*/ - RTUNI_ALPHA, /* U+000da4: SINHALA LETTER TAALUJA NAASIKYAYA*/ - RTUNI_ALPHA, /* U+000da5: SINHALA LETTER TAALUJA SANYOOGA NAAKSIKYAYA*/ - RTUNI_ALPHA, /* U+000da6: SINHALA LETTER SANYAKA JAYANNA*/ - RTUNI_ALPHA, /* U+000da7: SINHALA LETTER ALPAPRAANA TTAYANNA*/ - RTUNI_ALPHA, /* U+000da8: SINHALA LETTER MAHAAPRAANA TTAYANNA*/ - RTUNI_ALPHA, /* U+000da9: SINHALA LETTER ALPAPRAANA DDAYANNA*/ - RTUNI_ALPHA, /* U+000daa: SINHALA LETTER MAHAAPRAANA DDAYANNA*/ - RTUNI_ALPHA, /* U+000dab: SINHALA LETTER MUURDHAJA NAYANNA*/ - RTUNI_ALPHA, /* U+000dac: SINHALA LETTER SANYAKA DDAYANNA*/ - RTUNI_ALPHA, /* U+000dad: SINHALA LETTER ALPAPRAANA TAYANNA*/ - RTUNI_ALPHA, /* U+000dae: SINHALA LETTER MAHAAPRAANA TAYANNA*/ - RTUNI_ALPHA, /* U+000daf: SINHALA LETTER ALPAPRAANA DAYANNA*/ - RTUNI_ALPHA, /* U+000db0: SINHALA LETTER MAHAAPRAANA DAYANNA*/ - RTUNI_ALPHA, /* U+000db1: SINHALA LETTER DANTAJA NAYANNA*/ - 0, /* U+000db2: */ - RTUNI_ALPHA, /* U+000db3: SINHALA LETTER SANYAKA DAYANNA*/ - RTUNI_ALPHA, /* U+000db4: SINHALA LETTER ALPAPRAANA PAYANNA*/ - RTUNI_ALPHA, /* U+000db5: SINHALA LETTER MAHAAPRAANA PAYANNA*/ - RTUNI_ALPHA, /* U+000db6: SINHALA LETTER ALPAPRAANA BAYANNA*/ - RTUNI_ALPHA, /* U+000db7: SINHALA LETTER MAHAAPRAANA BAYANNA*/ - RTUNI_ALPHA, /* U+000db8: SINHALA LETTER MAYANNA*/ - RTUNI_ALPHA, /* U+000db9: SINHALA LETTER AMBA BAYANNA*/ - RTUNI_ALPHA, /* U+000dba: SINHALA LETTER YAYANNA*/ - RTUNI_ALPHA, /* U+000dbb: SINHALA LETTER RAYANNA*/ - 0, /* U+000dbc: */ - RTUNI_ALPHA, /* U+000dbd: SINHALA LETTER DANTAJA LAYANNA*/ - 0, /* U+000dbe: */ - 0, /* U+000dbf: */ - RTUNI_ALPHA, /* U+000dc0: SINHALA LETTER VAYANNA*/ - RTUNI_ALPHA, /* U+000dc1: SINHALA LETTER TAALUJA SAYANNA*/ - RTUNI_ALPHA, /* U+000dc2: SINHALA LETTER MUURDHAJA SAYANNA*/ - RTUNI_ALPHA, /* U+000dc3: SINHALA LETTER DANTAJA SAYANNA*/ - RTUNI_ALPHA, /* U+000dc4: SINHALA LETTER HAYANNA*/ - RTUNI_ALPHA, /* U+000dc5: SINHALA LETTER MUURDHAJA LAYANNA*/ - RTUNI_ALPHA, /* U+000dc6: SINHALA LETTER FAYANNA*/ - 0, /* U+000dc7: */ - 0, /* U+000dc8: */ - 0, /* U+000dc9: */ - 0, /* U+000dca: SINHALA SIGN AL-LAKUNA*/ - 0, /* U+000dcb: */ - 0, /* U+000dcc: */ - 0, /* U+000dcd: */ - 0, /* U+000dce: */ - RTUNI_ALPHA, /* U+000dcf: SINHALA VOWEL SIGN AELA-PILLA*/ - RTUNI_ALPHA, /* U+000dd0: SINHALA VOWEL SIGN KETTI AEDA-PILLA*/ - RTUNI_ALPHA, /* U+000dd1: SINHALA VOWEL SIGN DIGA AEDA-PILLA*/ - RTUNI_ALPHA, /* U+000dd2: SINHALA VOWEL SIGN KETTI IS-PILLA*/ - RTUNI_ALPHA, /* U+000dd3: SINHALA VOWEL SIGN DIGA IS-PILLA*/ - RTUNI_ALPHA, /* U+000dd4: SINHALA VOWEL SIGN KETTI PAA-PILLA*/ - 0, /* U+000dd5: */ - RTUNI_ALPHA, /* U+000dd6: SINHALA VOWEL SIGN DIGA PAA-PILLA*/ - 0, /* U+000dd7: */ - RTUNI_ALPHA, /* U+000dd8: SINHALA VOWEL SIGN GAETTA-PILLA*/ - RTUNI_ALPHA, /* U+000dd9: SINHALA VOWEL SIGN KOMBUVA*/ - RTUNI_ALPHA, /* U+000dda: SINHALA VOWEL SIGN DIGA KOMBUVA*/ - RTUNI_ALPHA, /* U+000ddb: SINHALA VOWEL SIGN KOMBU DEKA*/ - RTUNI_ALPHA, /* U+000ddc: SINHALA VOWEL SIGN KOMBUVA HAA AELA-PILLA*/ - RTUNI_ALPHA, /* U+000ddd: SINHALA VOWEL SIGN KOMBUVA HAA DIGA AELA-PILLA*/ - RTUNI_ALPHA, /* U+000dde: SINHALA VOWEL SIGN KOMBUVA HAA GAYANUKITTA*/ - RTUNI_ALPHA, /* U+000ddf: SINHALA VOWEL SIGN GAYANUKITTA*/ - 0, /* U+000de0: */ - 0, /* U+000de1: */ - 0, /* U+000de2: */ - 0, /* U+000de3: */ - 0, /* U+000de4: */ - 0, /* U+000de5: */ - 0, /* U+000de6: */ - 0, /* U+000de7: */ - 0, /* U+000de8: */ - 0, /* U+000de9: */ - 0, /* U+000dea: */ - 0, /* U+000deb: */ - 0, /* U+000dec: */ - 0, /* U+000ded: */ - 0, /* U+000dee: */ - 0, /* U+000def: */ - 0, /* U+000df0: */ - 0, /* U+000df1: */ - RTUNI_ALPHA, /* U+000df2: SINHALA VOWEL SIGN DIGA GAETTA-PILLA*/ - RTUNI_ALPHA, /* U+000df3: SINHALA VOWEL SIGN DIGA GAYANUKITTA*/ - 0, /* U+000df4: SINHALA PUNCTUATION KUNDDALIYA*/ - 0, /* U+000df5: */ - 0, /* U+000df6: */ - 0, /* U+000df7: */ - 0, /* U+000df8: */ - 0, /* U+000df9: */ - 0, /* U+000dfa: */ - 0, /* U+000dfb: */ - 0, /* U+000dfc: */ - 0, /* U+000dfd: */ - 0, /* U+000dfe: */ - 0, /* U+000dff: */ - 0, /* U+000e00: */ - RTUNI_ALPHA, /* U+000e01: THAI CHARACTER KO KAI*/ - RTUNI_ALPHA, /* U+000e02: THAI CHARACTER KHO KHAI*/ - RTUNI_ALPHA, /* U+000e03: THAI CHARACTER KHO KHUAT*/ - RTUNI_ALPHA, /* U+000e04: THAI CHARACTER KHO KHWAI*/ - RTUNI_ALPHA, /* U+000e05: THAI CHARACTER KHO KHON*/ - RTUNI_ALPHA, /* U+000e06: THAI CHARACTER KHO RAKHANG*/ - RTUNI_ALPHA, /* U+000e07: THAI CHARACTER NGO NGU*/ - RTUNI_ALPHA, /* U+000e08: THAI CHARACTER CHO CHAN*/ - RTUNI_ALPHA, /* U+000e09: THAI CHARACTER CHO CHING*/ - RTUNI_ALPHA, /* U+000e0a: THAI CHARACTER CHO CHANG*/ - RTUNI_ALPHA, /* U+000e0b: THAI CHARACTER SO SO*/ - RTUNI_ALPHA, /* U+000e0c: THAI CHARACTER CHO CHOE*/ - RTUNI_ALPHA, /* U+000e0d: THAI CHARACTER YO YING*/ - RTUNI_ALPHA, /* U+000e0e: THAI CHARACTER DO CHADA*/ - RTUNI_ALPHA, /* U+000e0f: THAI CHARACTER TO PATAK*/ - RTUNI_ALPHA, /* U+000e10: THAI CHARACTER THO THAN*/ - RTUNI_ALPHA, /* U+000e11: THAI CHARACTER THO NANGMONTHO*/ - RTUNI_ALPHA, /* U+000e12: THAI CHARACTER THO PHUTHAO*/ - RTUNI_ALPHA, /* U+000e13: THAI CHARACTER NO NEN*/ - RTUNI_ALPHA, /* U+000e14: THAI CHARACTER DO DEK*/ - RTUNI_ALPHA, /* U+000e15: THAI CHARACTER TO TAO*/ - RTUNI_ALPHA, /* U+000e16: THAI CHARACTER THO THUNG*/ - RTUNI_ALPHA, /* U+000e17: THAI CHARACTER THO THAHAN*/ - RTUNI_ALPHA, /* U+000e18: THAI CHARACTER THO THONG*/ - RTUNI_ALPHA, /* U+000e19: THAI CHARACTER NO NU*/ - RTUNI_ALPHA, /* U+000e1a: THAI CHARACTER BO BAIMAI*/ - RTUNI_ALPHA, /* U+000e1b: THAI CHARACTER PO PLA*/ - RTUNI_ALPHA, /* U+000e1c: THAI CHARACTER PHO PHUNG*/ - RTUNI_ALPHA, /* U+000e1d: THAI CHARACTER FO FA*/ - RTUNI_ALPHA, /* U+000e1e: THAI CHARACTER PHO PHAN*/ - RTUNI_ALPHA, /* U+000e1f: THAI CHARACTER FO FAN*/ - RTUNI_ALPHA, /* U+000e20: THAI CHARACTER PHO SAMPHAO*/ - RTUNI_ALPHA, /* U+000e21: THAI CHARACTER MO MA*/ - RTUNI_ALPHA, /* U+000e22: THAI CHARACTER YO YAK*/ - RTUNI_ALPHA, /* U+000e23: THAI CHARACTER RO RUA*/ - RTUNI_ALPHA, /* U+000e24: THAI CHARACTER RU*/ - RTUNI_ALPHA, /* U+000e25: THAI CHARACTER LO LING*/ - RTUNI_ALPHA, /* U+000e26: THAI CHARACTER LU*/ - RTUNI_ALPHA, /* U+000e27: THAI CHARACTER WO WAEN*/ - RTUNI_ALPHA, /* U+000e28: THAI CHARACTER SO SALA*/ - RTUNI_ALPHA, /* U+000e29: THAI CHARACTER SO RUSI*/ - RTUNI_ALPHA, /* U+000e2a: THAI CHARACTER SO SUA*/ - RTUNI_ALPHA, /* U+000e2b: THAI CHARACTER HO HIP*/ - RTUNI_ALPHA, /* U+000e2c: THAI CHARACTER LO CHULA*/ - RTUNI_ALPHA, /* U+000e2d: THAI CHARACTER O ANG*/ - RTUNI_ALPHA, /* U+000e2e: THAI CHARACTER HO NOKHUK*/ - RTUNI_ALPHA, /* U+000e2f: THAI CHARACTER PAIYANNOI*/ - RTUNI_ALPHA, /* U+000e30: THAI CHARACTER SARA A*/ - RTUNI_ALPHA, /* U+000e31: THAI CHARACTER MAI HAN-AKAT*/ - RTUNI_ALPHA, /* U+000e32: THAI CHARACTER SARA AA*/ - RTUNI_ALPHA, /* U+000e33: THAI CHARACTER SARA AM*/ - RTUNI_ALPHA, /* U+000e34: THAI CHARACTER SARA I*/ - RTUNI_ALPHA, /* U+000e35: THAI CHARACTER SARA II*/ - RTUNI_ALPHA, /* U+000e36: THAI CHARACTER SARA UE*/ - RTUNI_ALPHA, /* U+000e37: THAI CHARACTER SARA UEE*/ - RTUNI_ALPHA, /* U+000e38: THAI CHARACTER SARA U*/ - RTUNI_ALPHA, /* U+000e39: THAI CHARACTER SARA UU*/ - RTUNI_ALPHA, /* U+000e3a: THAI CHARACTER PHINTHU*/ - 0, /* U+000e3b: */ - 0, /* U+000e3c: */ - 0, /* U+000e3d: */ - 0, /* U+000e3e: */ - 0, /* U+000e3f: THAI CURRENCY SYMBOL BAHT*/ - RTUNI_ALPHA, /* U+000e40: THAI CHARACTER SARA E*/ - RTUNI_ALPHA, /* U+000e41: THAI CHARACTER SARA AE*/ - RTUNI_ALPHA, /* U+000e42: THAI CHARACTER SARA O*/ - RTUNI_ALPHA, /* U+000e43: THAI CHARACTER SARA AI MAIMUAN*/ - RTUNI_ALPHA, /* U+000e44: THAI CHARACTER SARA AI MAIMALAI*/ - RTUNI_ALPHA, /* U+000e45: THAI CHARACTER LAKKHANGYAO*/ - RTUNI_ALPHA, /* U+000e46: THAI CHARACTER MAIYAMOK*/ - 0, /* U+000e47: THAI CHARACTER MAITAIKHU*/ - 0, /* U+000e48: THAI CHARACTER MAI EK*/ - 0, /* U+000e49: THAI CHARACTER MAI THO*/ - 0, /* U+000e4a: THAI CHARACTER MAI TRI*/ - 0, /* U+000e4b: THAI CHARACTER MAI CHATTAWA*/ - 0, /* U+000e4c: THAI CHARACTER THANTHAKHAT*/ - RTUNI_ALPHA, /* U+000e4d: THAI CHARACTER NIKHAHIT*/ - 0, /* U+000e4e: THAI CHARACTER YAMAKKAN*/ - 0, /* U+000e4f: THAI CHARACTER FONGMAN*/ - RTUNI_DDIGIT, /* U+000e50: THAI DIGIT ZERO*/ - RTUNI_DDIGIT, /* U+000e51: THAI DIGIT ONE*/ - RTUNI_DDIGIT, /* U+000e52: THAI DIGIT TWO*/ - RTUNI_DDIGIT, /* U+000e53: THAI DIGIT THREE*/ - RTUNI_DDIGIT, /* U+000e54: THAI DIGIT FOUR*/ - RTUNI_DDIGIT, /* U+000e55: THAI DIGIT FIVE*/ - RTUNI_DDIGIT, /* U+000e56: THAI DIGIT SIX*/ - RTUNI_DDIGIT, /* U+000e57: THAI DIGIT SEVEN*/ - RTUNI_DDIGIT, /* U+000e58: THAI DIGIT EIGHT*/ - RTUNI_DDIGIT, /* U+000e59: THAI DIGIT NINE*/ - 0, /* U+000e5a: THAI CHARACTER ANGKHANKHU*/ - 0, /* U+000e5b: THAI CHARACTER KHOMUT*/ - 0, /* U+000e5c: */ - 0, /* U+000e5d: */ - 0, /* U+000e5e: */ - 0, /* U+000e5f: */ - 0, /* U+000e60: */ - 0, /* U+000e61: */ - 0, /* U+000e62: */ - 0, /* U+000e63: */ - 0, /* U+000e64: */ - 0, /* U+000e65: */ - 0, /* U+000e66: */ - 0, /* U+000e67: */ - 0, /* U+000e68: */ - 0, /* U+000e69: */ - 0, /* U+000e6a: */ - 0, /* U+000e6b: */ - 0, /* U+000e6c: */ - 0, /* U+000e6d: */ - 0, /* U+000e6e: */ - 0, /* U+000e6f: */ - 0, /* U+000e70: */ - 0, /* U+000e71: */ - 0, /* U+000e72: */ - 0, /* U+000e73: */ - 0, /* U+000e74: */ - 0, /* U+000e75: */ - 0, /* U+000e76: */ - 0, /* U+000e77: */ - 0, /* U+000e78: */ - 0, /* U+000e79: */ - 0, /* U+000e7a: */ - 0, /* U+000e7b: */ - 0, /* U+000e7c: */ - 0, /* U+000e7d: */ - 0, /* U+000e7e: */ - 0, /* U+000e7f: */ - 0, /* U+000e80: */ - RTUNI_ALPHA, /* U+000e81: LAO LETTER KO*/ - RTUNI_ALPHA, /* U+000e82: LAO LETTER KHO SUNG*/ - 0, /* U+000e83: */ - RTUNI_ALPHA, /* U+000e84: LAO LETTER KHO TAM*/ - 0, /* U+000e85: */ - 0, /* U+000e86: */ - RTUNI_ALPHA, /* U+000e87: LAO LETTER NGO*/ - RTUNI_ALPHA, /* U+000e88: LAO LETTER CO*/ - 0, /* U+000e89: */ - RTUNI_ALPHA, /* U+000e8a: LAO LETTER SO TAM*/ - 0, /* U+000e8b: */ - 0, /* U+000e8c: */ - RTUNI_ALPHA, /* U+000e8d: LAO LETTER NYO*/ - 0, /* U+000e8e: */ - 0, /* U+000e8f: */ - 0, /* U+000e90: */ - 0, /* U+000e91: */ - 0, /* U+000e92: */ - 0, /* U+000e93: */ - RTUNI_ALPHA, /* U+000e94: LAO LETTER DO*/ - RTUNI_ALPHA, /* U+000e95: LAO LETTER TO*/ - RTUNI_ALPHA, /* U+000e96: LAO LETTER THO SUNG*/ - RTUNI_ALPHA, /* U+000e97: LAO LETTER THO TAM*/ - 0, /* U+000e98: */ - RTUNI_ALPHA, /* U+000e99: LAO LETTER NO*/ - RTUNI_ALPHA, /* U+000e9a: LAO LETTER BO*/ - RTUNI_ALPHA, /* U+000e9b: LAO LETTER PO*/ - RTUNI_ALPHA, /* U+000e9c: LAO LETTER PHO SUNG*/ - RTUNI_ALPHA, /* U+000e9d: LAO LETTER FO TAM*/ - RTUNI_ALPHA, /* U+000e9e: LAO LETTER PHO TAM*/ - RTUNI_ALPHA, /* U+000e9f: LAO LETTER FO SUNG*/ - 0, /* U+000ea0: */ - RTUNI_ALPHA, /* U+000ea1: LAO LETTER MO*/ - RTUNI_ALPHA, /* U+000ea2: LAO LETTER YO*/ - RTUNI_ALPHA, /* U+000ea3: LAO LETTER LO LING*/ - 0, /* U+000ea4: */ - RTUNI_ALPHA, /* U+000ea5: LAO LETTER LO LOOT*/ - 0, /* U+000ea6: */ - RTUNI_ALPHA, /* U+000ea7: LAO LETTER WO*/ - 0, /* U+000ea8: */ - 0, /* U+000ea9: */ - RTUNI_ALPHA, /* U+000eaa: LAO LETTER SO SUNG*/ - RTUNI_ALPHA, /* U+000eab: LAO LETTER HO SUNG*/ - 0, /* U+000eac: */ - RTUNI_ALPHA, /* U+000ead: LAO LETTER O*/ - RTUNI_ALPHA, /* U+000eae: LAO LETTER HO TAM*/ - RTUNI_ALPHA, /* U+000eaf: LAO ELLIPSIS*/ - RTUNI_ALPHA, /* U+000eb0: LAO VOWEL SIGN A*/ - RTUNI_ALPHA, /* U+000eb1: LAO VOWEL SIGN MAI KAN*/ - RTUNI_ALPHA, /* U+000eb2: LAO VOWEL SIGN AA*/ - RTUNI_ALPHA, /* U+000eb3: LAO VOWEL SIGN AM*/ - RTUNI_ALPHA, /* U+000eb4: LAO VOWEL SIGN I*/ - RTUNI_ALPHA, /* U+000eb5: LAO VOWEL SIGN II*/ - RTUNI_ALPHA, /* U+000eb6: LAO VOWEL SIGN Y*/ - RTUNI_ALPHA, /* U+000eb7: LAO VOWEL SIGN YY*/ - RTUNI_ALPHA, /* U+000eb8: LAO VOWEL SIGN U*/ - RTUNI_ALPHA, /* U+000eb9: LAO VOWEL SIGN UU*/ - 0, /* U+000eba: */ - RTUNI_ALPHA, /* U+000ebb: LAO VOWEL SIGN MAI KON*/ - RTUNI_ALPHA, /* U+000ebc: LAO SEMIVOWEL SIGN LO*/ - RTUNI_ALPHA, /* U+000ebd: LAO SEMIVOWEL SIGN NYO*/ - 0, /* U+000ebe: */ - 0, /* U+000ebf: */ - RTUNI_ALPHA, /* U+000ec0: LAO VOWEL SIGN E*/ - RTUNI_ALPHA, /* U+000ec1: LAO VOWEL SIGN EI*/ - RTUNI_ALPHA, /* U+000ec2: LAO VOWEL SIGN O*/ - RTUNI_ALPHA, /* U+000ec3: LAO VOWEL SIGN AY*/ - RTUNI_ALPHA, /* U+000ec4: LAO VOWEL SIGN AI*/ - 0, /* U+000ec5: */ - RTUNI_ALPHA, /* U+000ec6: LAO KO LA*/ - 0, /* U+000ec7: */ - 0, /* U+000ec8: LAO TONE MAI EK*/ - 0, /* U+000ec9: LAO TONE MAI THO*/ - 0, /* U+000eca: LAO TONE MAI TI*/ - 0, /* U+000ecb: LAO TONE MAI CATAWA*/ - 0, /* U+000ecc: LAO CANCELLATION MARK*/ - RTUNI_ALPHA, /* U+000ecd: LAO NIGGAHITA*/ - 0, /* U+000ece: */ - 0, /* U+000ecf: */ - RTUNI_DDIGIT, /* U+000ed0: LAO DIGIT ZERO*/ - RTUNI_DDIGIT, /* U+000ed1: LAO DIGIT ONE*/ - RTUNI_DDIGIT, /* U+000ed2: LAO DIGIT TWO*/ - RTUNI_DDIGIT, /* U+000ed3: LAO DIGIT THREE*/ - RTUNI_DDIGIT, /* U+000ed4: LAO DIGIT FOUR*/ - RTUNI_DDIGIT, /* U+000ed5: LAO DIGIT FIVE*/ - RTUNI_DDIGIT, /* U+000ed6: LAO DIGIT SIX*/ - RTUNI_DDIGIT, /* U+000ed7: LAO DIGIT SEVEN*/ - RTUNI_DDIGIT, /* U+000ed8: LAO DIGIT EIGHT*/ - RTUNI_DDIGIT, /* U+000ed9: LAO DIGIT NINE*/ - 0, /* U+000eda: */ - 0, /* U+000edb: */ - RTUNI_ALPHA, /* U+000edc: LAO HO NO*/ - RTUNI_ALPHA, /* U+000edd: LAO HO MO*/ - 0, /* U+000ede: */ - 0, /* U+000edf: */ - 0, /* U+000ee0: */ - 0, /* U+000ee1: */ - 0, /* U+000ee2: */ - 0, /* U+000ee3: */ - 0, /* U+000ee4: */ - 0, /* U+000ee5: */ - 0, /* U+000ee6: */ - 0, /* U+000ee7: */ - 0, /* U+000ee8: */ - 0, /* U+000ee9: */ - 0, /* U+000eea: */ - 0, /* U+000eeb: */ - 0, /* U+000eec: */ - 0, /* U+000eed: */ - 0, /* U+000eee: */ - 0, /* U+000eef: */ - 0, /* U+000ef0: */ - 0, /* U+000ef1: */ - 0, /* U+000ef2: */ - 0, /* U+000ef3: */ - 0, /* U+000ef4: */ - 0, /* U+000ef5: */ - 0, /* U+000ef6: */ - 0, /* U+000ef7: */ - 0, /* U+000ef8: */ - 0, /* U+000ef9: */ - 0, /* U+000efa: */ - 0, /* U+000efb: */ - 0, /* U+000efc: */ - 0, /* U+000efd: */ - 0, /* U+000efe: */ - 0, /* U+000eff: */ - RTUNI_ALPHA, /* U+000f00: TIBETAN SYLLABLE OM*/ - 0, /* U+000f01: TIBETAN MARK GTER YIG MGO TRUNCATED A*/ - 0, /* U+000f02: TIBETAN MARK GTER YIG MGO -UM RNAM BCAD MA*/ - 0, /* U+000f03: TIBETAN MARK GTER YIG MGO -UM GTER TSHEG MA*/ - 0, /* U+000f04: TIBETAN MARK INITIAL YIG MGO MDUN MA*/ - 0, /* U+000f05: TIBETAN MARK CLOSING YIG MGO SGAB MA*/ - 0, /* U+000f06: TIBETAN MARK CARET YIG MGO PHUR SHAD MA*/ - 0, /* U+000f07: TIBETAN MARK YIG MGO TSHEG SHAD MA*/ - 0, /* U+000f08: TIBETAN MARK SBRUL SHAD*/ - 0, /* U+000f09: TIBETAN MARK BSKUR YIG MGO*/ - 0, /* U+000f0a: TIBETAN MARK BKA- SHOG YIG MGO*/ - 0, /* U+000f0b: TIBETAN MARK INTERSYLLABIC TSHEG*/ - 0, /* U+000f0c: TIBETAN MARK DELIMITER TSHEG BSTAR*/ - 0, /* U+000f0d: TIBETAN MARK SHAD*/ - 0, /* U+000f0e: TIBETAN MARK NYIS SHAD*/ - 0, /* U+000f0f: TIBETAN MARK TSHEG SHAD*/ - 0, /* U+000f10: TIBETAN MARK NYIS TSHEG SHAD*/ - 0, /* U+000f11: TIBETAN MARK RIN CHEN SPUNGS SHAD*/ - 0, /* U+000f12: TIBETAN MARK RGYA GRAM SHAD*/ - 0, /* U+000f13: TIBETAN MARK CARET -DZUD RTAGS ME LONG CAN*/ - 0, /* U+000f14: TIBETAN MARK GTER TSHEG*/ - 0, /* U+000f15: TIBETAN LOGOTYPE SIGN CHAD RTAGS*/ - 0, /* U+000f16: TIBETAN LOGOTYPE SIGN LHAG RTAGS*/ - 0, /* U+000f17: TIBETAN ASTROLOGICAL SIGN SGRA GCAN -CHAR RTAGS*/ - 0, /* U+000f18: TIBETAN ASTROLOGICAL SIGN -KHYUD PA*/ - 0, /* U+000f19: TIBETAN ASTROLOGICAL SIGN SDONG TSHUGS*/ - 0, /* U+000f1a: TIBETAN SIGN RDEL DKAR GCIG*/ - 0, /* U+000f1b: TIBETAN SIGN RDEL DKAR GNYIS*/ - 0, /* U+000f1c: TIBETAN SIGN RDEL DKAR GSUM*/ - 0, /* U+000f1d: TIBETAN SIGN RDEL NAG GCIG*/ - 0, /* U+000f1e: TIBETAN SIGN RDEL NAG GNYIS*/ - 0, /* U+000f1f: TIBETAN SIGN RDEL DKAR RDEL NAG*/ - RTUNI_DDIGIT, /* U+000f20: TIBETAN DIGIT ZERO*/ - RTUNI_DDIGIT, /* U+000f21: TIBETAN DIGIT ONE*/ - RTUNI_DDIGIT, /* U+000f22: TIBETAN DIGIT TWO*/ - RTUNI_DDIGIT, /* U+000f23: TIBETAN DIGIT THREE*/ - RTUNI_DDIGIT, /* U+000f24: TIBETAN DIGIT FOUR*/ - RTUNI_DDIGIT, /* U+000f25: TIBETAN DIGIT FIVE*/ - RTUNI_DDIGIT, /* U+000f26: TIBETAN DIGIT SIX*/ - RTUNI_DDIGIT, /* U+000f27: TIBETAN DIGIT SEVEN*/ - RTUNI_DDIGIT, /* U+000f28: TIBETAN DIGIT EIGHT*/ - RTUNI_DDIGIT, /* U+000f29: TIBETAN DIGIT NINE*/ - 0, /* U+000f2a: TIBETAN DIGIT HALF ONE*/ - 0, /* U+000f2b: TIBETAN DIGIT HALF TWO*/ - 0, /* U+000f2c: TIBETAN DIGIT HALF THREE*/ - 0, /* U+000f2d: TIBETAN DIGIT HALF FOUR*/ - 0, /* U+000f2e: TIBETAN DIGIT HALF FIVE*/ - 0, /* U+000f2f: TIBETAN DIGIT HALF SIX*/ - 0, /* U+000f30: TIBETAN DIGIT HALF SEVEN*/ - 0, /* U+000f31: TIBETAN DIGIT HALF EIGHT*/ - 0, /* U+000f32: TIBETAN DIGIT HALF NINE*/ - 0, /* U+000f33: TIBETAN DIGIT HALF ZERO*/ - 0, /* U+000f34: TIBETAN MARK BSDUS RTAGS*/ - 0, /* U+000f35: TIBETAN MARK NGAS BZUNG NYI ZLA*/ - 0, /* U+000f36: TIBETAN MARK CARET -DZUD RTAGS BZHI MIG CAN*/ - 0, /* U+000f37: TIBETAN MARK NGAS BZUNG SGOR RTAGS*/ - 0, /* U+000f38: TIBETAN MARK CHE MGO*/ - 0, /* U+000f39: TIBETAN MARK TSA -PHRU*/ - 0, /* U+000f3a: TIBETAN MARK GUG RTAGS GYON*/ - 0, /* U+000f3b: TIBETAN MARK GUG RTAGS GYAS*/ - 0, /* U+000f3c: TIBETAN MARK ANG KHANG GYON*/ - 0, /* U+000f3d: TIBETAN MARK ANG KHANG GYAS*/ - 0, /* U+000f3e: TIBETAN SIGN YAR TSHES*/ - 0, /* U+000f3f: TIBETAN SIGN MAR TSHES*/ - RTUNI_ALPHA, /* U+000f40: TIBETAN LETTER KA*/ - RTUNI_ALPHA, /* U+000f41: TIBETAN LETTER KHA*/ - RTUNI_ALPHA, /* U+000f42: TIBETAN LETTER GA*/ - RTUNI_ALPHA, /* U+000f43: TIBETAN LETTER GHA*/ - RTUNI_ALPHA, /* U+000f44: TIBETAN LETTER NGA*/ - RTUNI_ALPHA, /* U+000f45: TIBETAN LETTER CA*/ - RTUNI_ALPHA, /* U+000f46: TIBETAN LETTER CHA*/ - RTUNI_ALPHA, /* U+000f47: TIBETAN LETTER JA*/ - 0, /* U+000f48: */ - RTUNI_ALPHA, /* U+000f49: TIBETAN LETTER NYA*/ - RTUNI_ALPHA, /* U+000f4a: TIBETAN LETTER TTA*/ - RTUNI_ALPHA, /* U+000f4b: TIBETAN LETTER TTHA*/ - RTUNI_ALPHA, /* U+000f4c: TIBETAN LETTER DDA*/ - RTUNI_ALPHA, /* U+000f4d: TIBETAN LETTER DDHA*/ - RTUNI_ALPHA, /* U+000f4e: TIBETAN LETTER NNA*/ - RTUNI_ALPHA, /* U+000f4f: TIBETAN LETTER TA*/ - RTUNI_ALPHA, /* U+000f50: TIBETAN LETTER THA*/ - RTUNI_ALPHA, /* U+000f51: TIBETAN LETTER DA*/ - RTUNI_ALPHA, /* U+000f52: TIBETAN LETTER DHA*/ - RTUNI_ALPHA, /* U+000f53: TIBETAN LETTER NA*/ - RTUNI_ALPHA, /* U+000f54: TIBETAN LETTER PA*/ - RTUNI_ALPHA, /* U+000f55: TIBETAN LETTER PHA*/ - RTUNI_ALPHA, /* U+000f56: TIBETAN LETTER BA*/ - RTUNI_ALPHA, /* U+000f57: TIBETAN LETTER BHA*/ - RTUNI_ALPHA, /* U+000f58: TIBETAN LETTER MA*/ - RTUNI_ALPHA, /* U+000f59: TIBETAN LETTER TSA*/ - RTUNI_ALPHA, /* U+000f5a: TIBETAN LETTER TSHA*/ - RTUNI_ALPHA, /* U+000f5b: TIBETAN LETTER DZA*/ - RTUNI_ALPHA, /* U+000f5c: TIBETAN LETTER DZHA*/ - RTUNI_ALPHA, /* U+000f5d: TIBETAN LETTER WA*/ - RTUNI_ALPHA, /* U+000f5e: TIBETAN LETTER ZHA*/ - RTUNI_ALPHA, /* U+000f5f: TIBETAN LETTER ZA*/ - RTUNI_ALPHA, /* U+000f60: TIBETAN LETTER -A*/ - RTUNI_ALPHA, /* U+000f61: TIBETAN LETTER YA*/ - RTUNI_ALPHA, /* U+000f62: TIBETAN LETTER RA*/ - RTUNI_ALPHA, /* U+000f63: TIBETAN LETTER LA*/ - RTUNI_ALPHA, /* U+000f64: TIBETAN LETTER SHA*/ - RTUNI_ALPHA, /* U+000f65: TIBETAN LETTER SSA*/ - RTUNI_ALPHA, /* U+000f66: TIBETAN LETTER SA*/ - RTUNI_ALPHA, /* U+000f67: TIBETAN LETTER HA*/ - RTUNI_ALPHA, /* U+000f68: TIBETAN LETTER A*/ - RTUNI_ALPHA, /* U+000f69: TIBETAN LETTER KSSA*/ - RTUNI_ALPHA, /* U+000f6a: TIBETAN LETTER FIXED-FORM RA*/ - 0, /* U+000f6b: */ - 0, /* U+000f6c: */ - 0, /* U+000f6d: */ - 0, /* U+000f6e: */ - 0, /* U+000f6f: */ - 0, /* U+000f70: */ - RTUNI_ALPHA, /* U+000f71: TIBETAN VOWEL SIGN AA*/ - RTUNI_ALPHA, /* U+000f72: TIBETAN VOWEL SIGN I*/ - RTUNI_ALPHA, /* U+000f73: TIBETAN VOWEL SIGN II*/ - RTUNI_ALPHA, /* U+000f74: TIBETAN VOWEL SIGN U*/ - RTUNI_ALPHA, /* U+000f75: TIBETAN VOWEL SIGN UU*/ - RTUNI_ALPHA, /* U+000f76: TIBETAN VOWEL SIGN VOCALIC R*/ - RTUNI_ALPHA, /* U+000f77: TIBETAN VOWEL SIGN VOCALIC RR*/ - RTUNI_ALPHA, /* U+000f78: TIBETAN VOWEL SIGN VOCALIC L*/ - RTUNI_ALPHA, /* U+000f79: TIBETAN VOWEL SIGN VOCALIC LL*/ - RTUNI_ALPHA, /* U+000f7a: TIBETAN VOWEL SIGN E*/ - RTUNI_ALPHA, /* U+000f7b: TIBETAN VOWEL SIGN EE*/ - RTUNI_ALPHA, /* U+000f7c: TIBETAN VOWEL SIGN O*/ - RTUNI_ALPHA, /* U+000f7d: TIBETAN VOWEL SIGN OO*/ - RTUNI_ALPHA, /* U+000f7e: TIBETAN SIGN RJES SU NGA RO*/ - RTUNI_ALPHA, /* U+000f7f: TIBETAN SIGN RNAM BCAD*/ - RTUNI_ALPHA, /* U+000f80: TIBETAN VOWEL SIGN REVERSED I*/ - RTUNI_ALPHA, /* U+000f81: TIBETAN VOWEL SIGN REVERSED II*/ - 0, /* U+000f82: TIBETAN SIGN NYI ZLA NAA DA*/ - 0, /* U+000f83: TIBETAN SIGN SNA LDAN*/ - 0, /* U+000f84: TIBETAN MARK HALANTA*/ - 0, /* U+000f85: TIBETAN MARK PALUTA*/ - 0, /* U+000f86: TIBETAN SIGN LCI RTAGS*/ - 0, /* U+000f87: TIBETAN SIGN YANG RTAGS*/ - RTUNI_ALPHA, /* U+000f88: TIBETAN SIGN LCE TSA CAN*/ - RTUNI_ALPHA, /* U+000f89: TIBETAN SIGN MCHU CAN*/ - RTUNI_ALPHA, /* U+000f8a: TIBETAN SIGN GRU CAN RGYINGS*/ - RTUNI_ALPHA, /* U+000f8b: TIBETAN SIGN GRU MED RGYINGS*/ - 0, /* U+000f8c: */ - 0, /* U+000f8d: */ - 0, /* U+000f8e: */ - 0, /* U+000f8f: */ - RTUNI_ALPHA, /* U+000f90: TIBETAN SUBJOINED LETTER KA*/ - RTUNI_ALPHA, /* U+000f91: TIBETAN SUBJOINED LETTER KHA*/ - RTUNI_ALPHA, /* U+000f92: TIBETAN SUBJOINED LETTER GA*/ - RTUNI_ALPHA, /* U+000f93: TIBETAN SUBJOINED LETTER GHA*/ - RTUNI_ALPHA, /* U+000f94: TIBETAN SUBJOINED LETTER NGA*/ - RTUNI_ALPHA, /* U+000f95: TIBETAN SUBJOINED LETTER CA*/ - RTUNI_ALPHA, /* U+000f96: TIBETAN SUBJOINED LETTER CHA*/ - RTUNI_ALPHA, /* U+000f97: TIBETAN SUBJOINED LETTER JA*/ - 0, /* U+000f98: */ - RTUNI_ALPHA, /* U+000f99: TIBETAN SUBJOINED LETTER NYA*/ - RTUNI_ALPHA, /* U+000f9a: TIBETAN SUBJOINED LETTER TTA*/ - RTUNI_ALPHA, /* U+000f9b: TIBETAN SUBJOINED LETTER TTHA*/ - RTUNI_ALPHA, /* U+000f9c: TIBETAN SUBJOINED LETTER DDA*/ - RTUNI_ALPHA, /* U+000f9d: TIBETAN SUBJOINED LETTER DDHA*/ - RTUNI_ALPHA, /* U+000f9e: TIBETAN SUBJOINED LETTER NNA*/ - RTUNI_ALPHA, /* U+000f9f: TIBETAN SUBJOINED LETTER TA*/ - RTUNI_ALPHA, /* U+000fa0: TIBETAN SUBJOINED LETTER THA*/ - RTUNI_ALPHA, /* U+000fa1: TIBETAN SUBJOINED LETTER DA*/ - RTUNI_ALPHA, /* U+000fa2: TIBETAN SUBJOINED LETTER DHA*/ - RTUNI_ALPHA, /* U+000fa3: TIBETAN SUBJOINED LETTER NA*/ - RTUNI_ALPHA, /* U+000fa4: TIBETAN SUBJOINED LETTER PA*/ - RTUNI_ALPHA, /* U+000fa5: TIBETAN SUBJOINED LETTER PHA*/ - RTUNI_ALPHA, /* U+000fa6: TIBETAN SUBJOINED LETTER BA*/ - RTUNI_ALPHA, /* U+000fa7: TIBETAN SUBJOINED LETTER BHA*/ - RTUNI_ALPHA, /* U+000fa8: TIBETAN SUBJOINED LETTER MA*/ - RTUNI_ALPHA, /* U+000fa9: TIBETAN SUBJOINED LETTER TSA*/ - RTUNI_ALPHA, /* U+000faa: TIBETAN SUBJOINED LETTER TSHA*/ - RTUNI_ALPHA, /* U+000fab: TIBETAN SUBJOINED LETTER DZA*/ - RTUNI_ALPHA, /* U+000fac: TIBETAN SUBJOINED LETTER DZHA*/ - RTUNI_ALPHA, /* U+000fad: TIBETAN SUBJOINED LETTER WA*/ - RTUNI_ALPHA, /* U+000fae: TIBETAN SUBJOINED LETTER ZHA*/ - RTUNI_ALPHA, /* U+000faf: TIBETAN SUBJOINED LETTER ZA*/ - RTUNI_ALPHA, /* U+000fb0: TIBETAN SUBJOINED LETTER -A*/ - RTUNI_ALPHA, /* U+000fb1: TIBETAN SUBJOINED LETTER YA*/ - RTUNI_ALPHA, /* U+000fb2: TIBETAN SUBJOINED LETTER RA*/ - RTUNI_ALPHA, /* U+000fb3: TIBETAN SUBJOINED LETTER LA*/ - RTUNI_ALPHA, /* U+000fb4: TIBETAN SUBJOINED LETTER SHA*/ - RTUNI_ALPHA, /* U+000fb5: TIBETAN SUBJOINED LETTER SSA*/ - RTUNI_ALPHA, /* U+000fb6: TIBETAN SUBJOINED LETTER SA*/ - RTUNI_ALPHA, /* U+000fb7: TIBETAN SUBJOINED LETTER HA*/ - RTUNI_ALPHA, /* U+000fb8: TIBETAN SUBJOINED LETTER A*/ - RTUNI_ALPHA, /* U+000fb9: TIBETAN SUBJOINED LETTER KSSA*/ - RTUNI_ALPHA, /* U+000fba: TIBETAN SUBJOINED LETTER FIXED-FORM WA*/ - RTUNI_ALPHA, /* U+000fbb: TIBETAN SUBJOINED LETTER FIXED-FORM YA*/ - RTUNI_ALPHA, /* U+000fbc: TIBETAN SUBJOINED LETTER FIXED-FORM RA*/ - 0, /* U+000fbd: */ - 0, /* U+000fbe: TIBETAN KU RU KHA*/ - 0, /* U+000fbf: TIBETAN KU RU KHA BZHI MIG CAN*/ - 0, /* U+000fc0: TIBETAN CANTILLATION SIGN HEAVY BEAT*/ - 0, /* U+000fc1: TIBETAN CANTILLATION SIGN LIGHT BEAT*/ - 0, /* U+000fc2: TIBETAN CANTILLATION SIGN CANG TE-U*/ - 0, /* U+000fc3: TIBETAN CANTILLATION SIGN SBUB -CHAL*/ - 0, /* U+000fc4: TIBETAN SYMBOL DRIL BU*/ - 0, /* U+000fc5: TIBETAN SYMBOL RDO RJE*/ - 0, /* U+000fc6: TIBETAN SYMBOL PADMA GDAN*/ - 0, /* U+000fc7: TIBETAN SYMBOL RDO RJE RGYA GRAM*/ - 0, /* U+000fc8: TIBETAN SYMBOL PHUR PA*/ - 0, /* U+000fc9: TIBETAN SYMBOL NOR BU*/ - 0, /* U+000fca: TIBETAN SYMBOL NOR BU NYIS -KHYIL*/ - 0, /* U+000fcb: TIBETAN SYMBOL NOR BU GSUM -KHYIL*/ - 0, /* U+000fcc: TIBETAN SYMBOL NOR BU BZHI -KHYIL*/ - 0, /* U+000fcd: */ - 0, /* U+000fce: */ - 0, /* U+000fcf: TIBETAN SIGN RDEL NAG GSUM*/ - 0, /* U+000fd0: TIBETAN MARK BSKA- SHOG GI MGO RGYAN*/ - 0, /* U+000fd1: TIBETAN MARK MNYAM YIG GI MGO RGYAN*/ - 0, /* U+000fd2: */ - 0, /* U+000fd3: */ - 0, /* U+000fd4: */ - 0, /* U+000fd5: */ - 0, /* U+000fd6: */ - 0, /* U+000fd7: */ - 0, /* U+000fd8: */ - 0, /* U+000fd9: */ - 0, /* U+000fda: */ - 0, /* U+000fdb: */ - 0, /* U+000fdc: */ - 0, /* U+000fdd: */ - 0, /* U+000fde: */ - 0, /* U+000fdf: */ - 0, /* U+000fe0: */ - 0, /* U+000fe1: */ - 0, /* U+000fe2: */ - 0, /* U+000fe3: */ - 0, /* U+000fe4: */ - 0, /* U+000fe5: */ - 0, /* U+000fe6: */ - 0, /* U+000fe7: */ - 0, /* U+000fe8: */ - 0, /* U+000fe9: */ - 0, /* U+000fea: */ - 0, /* U+000feb: */ - 0, /* U+000fec: */ - 0, /* U+000fed: */ - 0, /* U+000fee: */ - 0, /* U+000fef: */ - 0, /* U+000ff0: */ - 0, /* U+000ff1: */ - 0, /* U+000ff2: */ - 0, /* U+000ff3: */ - 0, /* U+000ff4: */ - 0, /* U+000ff5: */ - 0, /* U+000ff6: */ - 0, /* U+000ff7: */ - 0, /* U+000ff8: */ - 0, /* U+000ff9: */ - 0, /* U+000ffa: */ - 0, /* U+000ffb: */ - 0, /* U+000ffc: */ - 0, /* U+000ffd: */ - 0, /* U+000ffe: */ - 0, /* U+000fff: */ - RTUNI_ALPHA, /* U+001000: MYANMAR LETTER KA*/ - RTUNI_ALPHA, /* U+001001: MYANMAR LETTER KHA*/ - RTUNI_ALPHA, /* U+001002: MYANMAR LETTER GA*/ - RTUNI_ALPHA, /* U+001003: MYANMAR LETTER GHA*/ - RTUNI_ALPHA, /* U+001004: MYANMAR LETTER NGA*/ - RTUNI_ALPHA, /* U+001005: MYANMAR LETTER CA*/ - RTUNI_ALPHA, /* U+001006: MYANMAR LETTER CHA*/ - RTUNI_ALPHA, /* U+001007: MYANMAR LETTER JA*/ - RTUNI_ALPHA, /* U+001008: MYANMAR LETTER JHA*/ - RTUNI_ALPHA, /* U+001009: MYANMAR LETTER NYA*/ - RTUNI_ALPHA, /* U+00100a: MYANMAR LETTER NNYA*/ - RTUNI_ALPHA, /* U+00100b: MYANMAR LETTER TTA*/ - RTUNI_ALPHA, /* U+00100c: MYANMAR LETTER TTHA*/ - RTUNI_ALPHA, /* U+00100d: MYANMAR LETTER DDA*/ - RTUNI_ALPHA, /* U+00100e: MYANMAR LETTER DDHA*/ - RTUNI_ALPHA, /* U+00100f: MYANMAR LETTER NNA*/ - RTUNI_ALPHA, /* U+001010: MYANMAR LETTER TA*/ - RTUNI_ALPHA, /* U+001011: MYANMAR LETTER THA*/ - RTUNI_ALPHA, /* U+001012: MYANMAR LETTER DA*/ - RTUNI_ALPHA, /* U+001013: MYANMAR LETTER DHA*/ - RTUNI_ALPHA, /* U+001014: MYANMAR LETTER NA*/ - RTUNI_ALPHA, /* U+001015: MYANMAR LETTER PA*/ - RTUNI_ALPHA, /* U+001016: MYANMAR LETTER PHA*/ - RTUNI_ALPHA, /* U+001017: MYANMAR LETTER BA*/ - RTUNI_ALPHA, /* U+001018: MYANMAR LETTER BHA*/ - RTUNI_ALPHA, /* U+001019: MYANMAR LETTER MA*/ - RTUNI_ALPHA, /* U+00101a: MYANMAR LETTER YA*/ - RTUNI_ALPHA, /* U+00101b: MYANMAR LETTER RA*/ - RTUNI_ALPHA, /* U+00101c: MYANMAR LETTER LA*/ - RTUNI_ALPHA, /* U+00101d: MYANMAR LETTER WA*/ - RTUNI_ALPHA, /* U+00101e: MYANMAR LETTER SA*/ - RTUNI_ALPHA, /* U+00101f: MYANMAR LETTER HA*/ - RTUNI_ALPHA, /* U+001020: MYANMAR LETTER LLA*/ - RTUNI_ALPHA, /* U+001021: MYANMAR LETTER A*/ - 0, /* U+001022: */ - RTUNI_ALPHA, /* U+001023: MYANMAR LETTER I*/ - RTUNI_ALPHA, /* U+001024: MYANMAR LETTER II*/ - RTUNI_ALPHA, /* U+001025: MYANMAR LETTER U*/ - RTUNI_ALPHA, /* U+001026: MYANMAR LETTER UU*/ - RTUNI_ALPHA, /* U+001027: MYANMAR LETTER E*/ - 0, /* U+001028: */ - RTUNI_ALPHA, /* U+001029: MYANMAR LETTER O*/ - RTUNI_ALPHA, /* U+00102a: MYANMAR LETTER AU*/ - 0, /* U+00102b: */ - RTUNI_ALPHA, /* U+00102c: MYANMAR VOWEL SIGN AA*/ - RTUNI_ALPHA, /* U+00102d: MYANMAR VOWEL SIGN I*/ - RTUNI_ALPHA, /* U+00102e: MYANMAR VOWEL SIGN II*/ - RTUNI_ALPHA, /* U+00102f: MYANMAR VOWEL SIGN U*/ - RTUNI_ALPHA, /* U+001030: MYANMAR VOWEL SIGN UU*/ - RTUNI_ALPHA, /* U+001031: MYANMAR VOWEL SIGN E*/ - RTUNI_ALPHA, /* U+001032: MYANMAR VOWEL SIGN AI*/ - 0, /* U+001033: */ - 0, /* U+001034: */ - 0, /* U+001035: */ - RTUNI_ALPHA, /* U+001036: MYANMAR SIGN ANUSVARA*/ - 0, /* U+001037: MYANMAR SIGN DOT BELOW*/ - RTUNI_ALPHA, /* U+001038: MYANMAR SIGN VISARGA*/ - 0, /* U+001039: MYANMAR SIGN VIRAMA*/ - 0, /* U+00103a: */ - 0, /* U+00103b: */ - 0, /* U+00103c: */ - 0, /* U+00103d: */ - 0, /* U+00103e: */ - 0, /* U+00103f: */ - RTUNI_DDIGIT, /* U+001040: MYANMAR DIGIT ZERO*/ - RTUNI_DDIGIT, /* U+001041: MYANMAR DIGIT ONE*/ - RTUNI_DDIGIT, /* U+001042: MYANMAR DIGIT TWO*/ - RTUNI_DDIGIT, /* U+001043: MYANMAR DIGIT THREE*/ - RTUNI_DDIGIT, /* U+001044: MYANMAR DIGIT FOUR*/ - RTUNI_DDIGIT, /* U+001045: MYANMAR DIGIT FIVE*/ - RTUNI_DDIGIT, /* U+001046: MYANMAR DIGIT SIX*/ - RTUNI_DDIGIT, /* U+001047: MYANMAR DIGIT SEVEN*/ - RTUNI_DDIGIT, /* U+001048: MYANMAR DIGIT EIGHT*/ - RTUNI_DDIGIT, /* U+001049: MYANMAR DIGIT NINE*/ - 0, /* U+00104a: MYANMAR SIGN LITTLE SECTION*/ - 0, /* U+00104b: MYANMAR SIGN SECTION*/ - 0, /* U+00104c: MYANMAR SYMBOL LOCATIVE*/ - 0, /* U+00104d: MYANMAR SYMBOL COMPLETED*/ - 0, /* U+00104e: MYANMAR SYMBOL AFOREMENTIONED*/ - 0, /* U+00104f: MYANMAR SYMBOL GENITIVE*/ - RTUNI_ALPHA, /* U+001050: MYANMAR LETTER SHA*/ - RTUNI_ALPHA, /* U+001051: MYANMAR LETTER SSA*/ - RTUNI_ALPHA, /* U+001052: MYANMAR LETTER VOCALIC R*/ - RTUNI_ALPHA, /* U+001053: MYANMAR LETTER VOCALIC RR*/ - RTUNI_ALPHA, /* U+001054: MYANMAR LETTER VOCALIC L*/ - RTUNI_ALPHA, /* U+001055: MYANMAR LETTER VOCALIC LL*/ - RTUNI_ALPHA, /* U+001056: MYANMAR VOWEL SIGN VOCALIC R*/ - RTUNI_ALPHA, /* U+001057: MYANMAR VOWEL SIGN VOCALIC RR*/ - RTUNI_ALPHA, /* U+001058: MYANMAR VOWEL SIGN VOCALIC L*/ - RTUNI_ALPHA, /* U+001059: MYANMAR VOWEL SIGN VOCALIC LL*/ - 0, /* U+00105a: */ - 0, /* U+00105b: */ - 0, /* U+00105c: */ - 0, /* U+00105d: */ - 0, /* U+00105e: */ - 0, /* U+00105f: */ - 0, /* U+001060: */ - 0, /* U+001061: */ - 0, /* U+001062: */ - 0, /* U+001063: */ - 0, /* U+001064: */ - 0, /* U+001065: */ - 0, /* U+001066: */ - 0, /* U+001067: */ - 0, /* U+001068: */ - 0, /* U+001069: */ - 0, /* U+00106a: */ - 0, /* U+00106b: */ - 0, /* U+00106c: */ - 0, /* U+00106d: */ - 0, /* U+00106e: */ - 0, /* U+00106f: */ - 0, /* U+001070: */ - 0, /* U+001071: */ - 0, /* U+001072: */ - 0, /* U+001073: */ - 0, /* U+001074: */ - 0, /* U+001075: */ - 0, /* U+001076: */ - 0, /* U+001077: */ - 0, /* U+001078: */ - 0, /* U+001079: */ - 0, /* U+00107a: */ - 0, /* U+00107b: */ - 0, /* U+00107c: */ - 0, /* U+00107d: */ - 0, /* U+00107e: */ - 0, /* U+00107f: */ - 0, /* U+001080: */ - 0, /* U+001081: */ - 0, /* U+001082: */ - 0, /* U+001083: */ - 0, /* U+001084: */ - 0, /* U+001085: */ - 0, /* U+001086: */ - 0, /* U+001087: */ - 0, /* U+001088: */ - 0, /* U+001089: */ - 0, /* U+00108a: */ - 0, /* U+00108b: */ - 0, /* U+00108c: */ - 0, /* U+00108d: */ - 0, /* U+00108e: */ - 0, /* U+00108f: */ - 0, /* U+001090: */ - 0, /* U+001091: */ - 0, /* U+001092: */ - 0, /* U+001093: */ - 0, /* U+001094: */ - 0, /* U+001095: */ - 0, /* U+001096: */ - 0, /* U+001097: */ - 0, /* U+001098: */ - 0, /* U+001099: */ - 0, /* U+00109a: */ - 0, /* U+00109b: */ - 0, /* U+00109c: */ - 0, /* U+00109d: */ - 0, /* U+00109e: */ - 0, /* U+00109f: */ - RTUNI_ALPHA | RTUNI_UPPER, /* U+0010a0: GEORGIAN CAPITAL LETTER AN*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+0010a1: GEORGIAN CAPITAL LETTER BAN*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+0010a2: GEORGIAN CAPITAL LETTER GAN*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+0010a3: GEORGIAN CAPITAL LETTER DON*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+0010a4: GEORGIAN CAPITAL LETTER EN*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+0010a5: GEORGIAN CAPITAL LETTER VIN*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+0010a6: GEORGIAN CAPITAL LETTER ZEN*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+0010a7: GEORGIAN CAPITAL LETTER TAN*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+0010a8: GEORGIAN CAPITAL LETTER IN*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+0010a9: GEORGIAN CAPITAL LETTER KAN*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+0010aa: GEORGIAN CAPITAL LETTER LAS*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+0010ab: GEORGIAN CAPITAL LETTER MAN*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+0010ac: GEORGIAN CAPITAL LETTER NAR*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+0010ad: GEORGIAN CAPITAL LETTER ON*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+0010ae: GEORGIAN CAPITAL LETTER PAR*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+0010af: GEORGIAN CAPITAL LETTER ZHAR*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+0010b0: GEORGIAN CAPITAL LETTER RAE*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+0010b1: GEORGIAN CAPITAL LETTER SAN*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+0010b2: GEORGIAN CAPITAL LETTER TAR*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+0010b3: GEORGIAN CAPITAL LETTER UN*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+0010b4: GEORGIAN CAPITAL LETTER PHAR*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+0010b5: GEORGIAN CAPITAL LETTER KHAR*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+0010b6: GEORGIAN CAPITAL LETTER GHAN*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+0010b7: GEORGIAN CAPITAL LETTER QAR*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+0010b8: GEORGIAN CAPITAL LETTER SHIN*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+0010b9: GEORGIAN CAPITAL LETTER CHIN*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+0010ba: GEORGIAN CAPITAL LETTER CAN*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+0010bb: GEORGIAN CAPITAL LETTER JIL*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+0010bc: GEORGIAN CAPITAL LETTER CIL*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+0010bd: GEORGIAN CAPITAL LETTER CHAR*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+0010be: GEORGIAN CAPITAL LETTER XAN*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+0010bf: GEORGIAN CAPITAL LETTER JHAN*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+0010c0: GEORGIAN CAPITAL LETTER HAE*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+0010c1: GEORGIAN CAPITAL LETTER HE*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+0010c2: GEORGIAN CAPITAL LETTER HIE*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+0010c3: GEORGIAN CAPITAL LETTER WE*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+0010c4: GEORGIAN CAPITAL LETTER HAR*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+0010c5: GEORGIAN CAPITAL LETTER HOE*/ - 0, /* U+0010c6: */ - 0, /* U+0010c7: */ - 0, /* U+0010c8: */ - 0, /* U+0010c9: */ - 0, /* U+0010ca: */ - 0, /* U+0010cb: */ - 0, /* U+0010cc: */ - 0, /* U+0010cd: */ - 0, /* U+0010ce: */ - 0, /* U+0010cf: */ - RTUNI_ALPHA, /* U+0010d0: GEORGIAN LETTER AN*/ - RTUNI_ALPHA, /* U+0010d1: GEORGIAN LETTER BAN*/ - RTUNI_ALPHA, /* U+0010d2: GEORGIAN LETTER GAN*/ - RTUNI_ALPHA, /* U+0010d3: GEORGIAN LETTER DON*/ - RTUNI_ALPHA, /* U+0010d4: GEORGIAN LETTER EN*/ - RTUNI_ALPHA, /* U+0010d5: GEORGIAN LETTER VIN*/ - RTUNI_ALPHA, /* U+0010d6: GEORGIAN LETTER ZEN*/ - RTUNI_ALPHA, /* U+0010d7: GEORGIAN LETTER TAN*/ - RTUNI_ALPHA, /* U+0010d8: GEORGIAN LETTER IN*/ - RTUNI_ALPHA, /* U+0010d9: GEORGIAN LETTER KAN*/ - RTUNI_ALPHA, /* U+0010da: GEORGIAN LETTER LAS*/ - RTUNI_ALPHA, /* U+0010db: GEORGIAN LETTER MAN*/ - RTUNI_ALPHA, /* U+0010dc: GEORGIAN LETTER NAR*/ - RTUNI_ALPHA, /* U+0010dd: GEORGIAN LETTER ON*/ - RTUNI_ALPHA, /* U+0010de: GEORGIAN LETTER PAR*/ - RTUNI_ALPHA, /* U+0010df: GEORGIAN LETTER ZHAR*/ - RTUNI_ALPHA, /* U+0010e0: GEORGIAN LETTER RAE*/ - RTUNI_ALPHA, /* U+0010e1: GEORGIAN LETTER SAN*/ - RTUNI_ALPHA, /* U+0010e2: GEORGIAN LETTER TAR*/ - RTUNI_ALPHA, /* U+0010e3: GEORGIAN LETTER UN*/ - RTUNI_ALPHA, /* U+0010e4: GEORGIAN LETTER PHAR*/ - RTUNI_ALPHA, /* U+0010e5: GEORGIAN LETTER KHAR*/ - RTUNI_ALPHA, /* U+0010e6: GEORGIAN LETTER GHAN*/ - RTUNI_ALPHA, /* U+0010e7: GEORGIAN LETTER QAR*/ - RTUNI_ALPHA, /* U+0010e8: GEORGIAN LETTER SHIN*/ - RTUNI_ALPHA, /* U+0010e9: GEORGIAN LETTER CHIN*/ - RTUNI_ALPHA, /* U+0010ea: GEORGIAN LETTER CAN*/ - RTUNI_ALPHA, /* U+0010eb: GEORGIAN LETTER JIL*/ - RTUNI_ALPHA, /* U+0010ec: GEORGIAN LETTER CIL*/ - RTUNI_ALPHA, /* U+0010ed: GEORGIAN LETTER CHAR*/ - RTUNI_ALPHA, /* U+0010ee: GEORGIAN LETTER XAN*/ - RTUNI_ALPHA, /* U+0010ef: GEORGIAN LETTER JHAN*/ - RTUNI_ALPHA, /* U+0010f0: GEORGIAN LETTER HAE*/ - RTUNI_ALPHA, /* U+0010f1: GEORGIAN LETTER HE*/ - RTUNI_ALPHA, /* U+0010f2: GEORGIAN LETTER HIE*/ - RTUNI_ALPHA, /* U+0010f3: GEORGIAN LETTER WE*/ - RTUNI_ALPHA, /* U+0010f4: GEORGIAN LETTER HAR*/ - RTUNI_ALPHA, /* U+0010f5: GEORGIAN LETTER HOE*/ - RTUNI_ALPHA, /* U+0010f6: GEORGIAN LETTER FI*/ - RTUNI_ALPHA, /* U+0010f7: GEORGIAN LETTER YN*/ - RTUNI_ALPHA, /* U+0010f8: GEORGIAN LETTER ELIFI*/ - RTUNI_ALPHA, /* U+0010f9: GEORGIAN LETTER TURNED GAN*/ - RTUNI_ALPHA, /* U+0010fa: GEORGIAN LETTER AIN*/ - 0, /* U+0010fb: GEORGIAN PARAGRAPH SEPARATOR*/ - RTUNI_ALPHA, /* U+0010fc: MODIFIER LETTER GEORGIAN NAR*/ - 0, /* U+0010fd: */ - 0, /* U+0010fe: */ - 0, /* U+0010ff: */ - RTUNI_ALPHA, /* U+001100: HANGUL CHOSEONG KIYEOK*/ - RTUNI_ALPHA, /* U+001101: HANGUL CHOSEONG SSANGKIYEOK*/ - RTUNI_ALPHA, /* U+001102: HANGUL CHOSEONG NIEUN*/ - RTUNI_ALPHA, /* U+001103: HANGUL CHOSEONG TIKEUT*/ - RTUNI_ALPHA, /* U+001104: HANGUL CHOSEONG SSANGTIKEUT*/ - RTUNI_ALPHA, /* U+001105: HANGUL CHOSEONG RIEUL*/ - RTUNI_ALPHA, /* U+001106: HANGUL CHOSEONG MIEUM*/ - RTUNI_ALPHA, /* U+001107: HANGUL CHOSEONG PIEUP*/ - RTUNI_ALPHA, /* U+001108: HANGUL CHOSEONG SSANGPIEUP*/ - RTUNI_ALPHA, /* U+001109: HANGUL CHOSEONG SIOS*/ - RTUNI_ALPHA, /* U+00110a: HANGUL CHOSEONG SSANGSIOS*/ - RTUNI_ALPHA, /* U+00110b: HANGUL CHOSEONG IEUNG*/ - RTUNI_ALPHA, /* U+00110c: HANGUL CHOSEONG CIEUC*/ - RTUNI_ALPHA, /* U+00110d: HANGUL CHOSEONG SSANGCIEUC*/ - RTUNI_ALPHA, /* U+00110e: HANGUL CHOSEONG CHIEUCH*/ - RTUNI_ALPHA, /* U+00110f: HANGUL CHOSEONG KHIEUKH*/ - RTUNI_ALPHA, /* U+001110: HANGUL CHOSEONG THIEUTH*/ - RTUNI_ALPHA, /* U+001111: HANGUL CHOSEONG PHIEUPH*/ - RTUNI_ALPHA, /* U+001112: HANGUL CHOSEONG HIEUH*/ - RTUNI_ALPHA, /* U+001113: HANGUL CHOSEONG NIEUN-KIYEOK*/ - RTUNI_ALPHA, /* U+001114: HANGUL CHOSEONG SSANGNIEUN*/ - RTUNI_ALPHA, /* U+001115: HANGUL CHOSEONG NIEUN-TIKEUT*/ - RTUNI_ALPHA, /* U+001116: HANGUL CHOSEONG NIEUN-PIEUP*/ - RTUNI_ALPHA, /* U+001117: HANGUL CHOSEONG TIKEUT-KIYEOK*/ - RTUNI_ALPHA, /* U+001118: HANGUL CHOSEONG RIEUL-NIEUN*/ - RTUNI_ALPHA, /* U+001119: HANGUL CHOSEONG SSANGRIEUL*/ - RTUNI_ALPHA, /* U+00111a: HANGUL CHOSEONG RIEUL-HIEUH*/ - RTUNI_ALPHA, /* U+00111b: HANGUL CHOSEONG KAPYEOUNRIEUL*/ - RTUNI_ALPHA, /* U+00111c: HANGUL CHOSEONG MIEUM-PIEUP*/ - RTUNI_ALPHA, /* U+00111d: HANGUL CHOSEONG KAPYEOUNMIEUM*/ - RTUNI_ALPHA, /* U+00111e: HANGUL CHOSEONG PIEUP-KIYEOK*/ - RTUNI_ALPHA, /* U+00111f: HANGUL CHOSEONG PIEUP-NIEUN*/ - RTUNI_ALPHA, /* U+001120: HANGUL CHOSEONG PIEUP-TIKEUT*/ - RTUNI_ALPHA, /* U+001121: HANGUL CHOSEONG PIEUP-SIOS*/ - RTUNI_ALPHA, /* U+001122: HANGUL CHOSEONG PIEUP-SIOS-KIYEOK*/ - RTUNI_ALPHA, /* U+001123: HANGUL CHOSEONG PIEUP-SIOS-TIKEUT*/ - RTUNI_ALPHA, /* U+001124: HANGUL CHOSEONG PIEUP-SIOS-PIEUP*/ - RTUNI_ALPHA, /* U+001125: HANGUL CHOSEONG PIEUP-SSANGSIOS*/ - RTUNI_ALPHA, /* U+001126: HANGUL CHOSEONG PIEUP-SIOS-CIEUC*/ - RTUNI_ALPHA, /* U+001127: HANGUL CHOSEONG PIEUP-CIEUC*/ - RTUNI_ALPHA, /* U+001128: HANGUL CHOSEONG PIEUP-CHIEUCH*/ - RTUNI_ALPHA, /* U+001129: HANGUL CHOSEONG PIEUP-THIEUTH*/ - RTUNI_ALPHA, /* U+00112a: HANGUL CHOSEONG PIEUP-PHIEUPH*/ - RTUNI_ALPHA, /* U+00112b: HANGUL CHOSEONG KAPYEOUNPIEUP*/ - RTUNI_ALPHA, /* U+00112c: HANGUL CHOSEONG KAPYEOUNSSANGPIEUP*/ - RTUNI_ALPHA, /* U+00112d: HANGUL CHOSEONG SIOS-KIYEOK*/ - RTUNI_ALPHA, /* U+00112e: HANGUL CHOSEONG SIOS-NIEUN*/ - RTUNI_ALPHA, /* U+00112f: HANGUL CHOSEONG SIOS-TIKEUT*/ - RTUNI_ALPHA, /* U+001130: HANGUL CHOSEONG SIOS-RIEUL*/ - RTUNI_ALPHA, /* U+001131: HANGUL CHOSEONG SIOS-MIEUM*/ - RTUNI_ALPHA, /* U+001132: HANGUL CHOSEONG SIOS-PIEUP*/ - RTUNI_ALPHA, /* U+001133: HANGUL CHOSEONG SIOS-PIEUP-KIYEOK*/ - RTUNI_ALPHA, /* U+001134: HANGUL CHOSEONG SIOS-SSANGSIOS*/ - RTUNI_ALPHA, /* U+001135: HANGUL CHOSEONG SIOS-IEUNG*/ - RTUNI_ALPHA, /* U+001136: HANGUL CHOSEONG SIOS-CIEUC*/ - RTUNI_ALPHA, /* U+001137: HANGUL CHOSEONG SIOS-CHIEUCH*/ - RTUNI_ALPHA, /* U+001138: HANGUL CHOSEONG SIOS-KHIEUKH*/ - RTUNI_ALPHA, /* U+001139: HANGUL CHOSEONG SIOS-THIEUTH*/ - RTUNI_ALPHA, /* U+00113a: HANGUL CHOSEONG SIOS-PHIEUPH*/ - RTUNI_ALPHA, /* U+00113b: HANGUL CHOSEONG SIOS-HIEUH*/ - RTUNI_ALPHA, /* U+00113c: HANGUL CHOSEONG CHITUEUMSIOS*/ - RTUNI_ALPHA, /* U+00113d: HANGUL CHOSEONG CHITUEUMSSANGSIOS*/ - RTUNI_ALPHA, /* U+00113e: HANGUL CHOSEONG CEONGCHIEUMSIOS*/ - RTUNI_ALPHA, /* U+00113f: HANGUL CHOSEONG CEONGCHIEUMSSANGSIOS*/ - RTUNI_ALPHA, /* U+001140: HANGUL CHOSEONG PANSIOS*/ - RTUNI_ALPHA, /* U+001141: HANGUL CHOSEONG IEUNG-KIYEOK*/ - RTUNI_ALPHA, /* U+001142: HANGUL CHOSEONG IEUNG-TIKEUT*/ - RTUNI_ALPHA, /* U+001143: HANGUL CHOSEONG IEUNG-MIEUM*/ - RTUNI_ALPHA, /* U+001144: HANGUL CHOSEONG IEUNG-PIEUP*/ - RTUNI_ALPHA, /* U+001145: HANGUL CHOSEONG IEUNG-SIOS*/ - RTUNI_ALPHA, /* U+001146: HANGUL CHOSEONG IEUNG-PANSIOS*/ - RTUNI_ALPHA, /* U+001147: HANGUL CHOSEONG SSANGIEUNG*/ - RTUNI_ALPHA, /* U+001148: HANGUL CHOSEONG IEUNG-CIEUC*/ - RTUNI_ALPHA, /* U+001149: HANGUL CHOSEONG IEUNG-CHIEUCH*/ - RTUNI_ALPHA, /* U+00114a: HANGUL CHOSEONG IEUNG-THIEUTH*/ - RTUNI_ALPHA, /* U+00114b: HANGUL CHOSEONG IEUNG-PHIEUPH*/ - RTUNI_ALPHA, /* U+00114c: HANGUL CHOSEONG YESIEUNG*/ - RTUNI_ALPHA, /* U+00114d: HANGUL CHOSEONG CIEUC-IEUNG*/ - RTUNI_ALPHA, /* U+00114e: HANGUL CHOSEONG CHITUEUMCIEUC*/ - RTUNI_ALPHA, /* U+00114f: HANGUL CHOSEONG CHITUEUMSSANGCIEUC*/ - RTUNI_ALPHA, /* U+001150: HANGUL CHOSEONG CEONGCHIEUMCIEUC*/ - RTUNI_ALPHA, /* U+001151: HANGUL CHOSEONG CEONGCHIEUMSSANGCIEUC*/ - RTUNI_ALPHA, /* U+001152: HANGUL CHOSEONG CHIEUCH-KHIEUKH*/ - RTUNI_ALPHA, /* U+001153: HANGUL CHOSEONG CHIEUCH-HIEUH*/ - RTUNI_ALPHA, /* U+001154: HANGUL CHOSEONG CHITUEUMCHIEUCH*/ - RTUNI_ALPHA, /* U+001155: HANGUL CHOSEONG CEONGCHIEUMCHIEUCH*/ - RTUNI_ALPHA, /* U+001156: HANGUL CHOSEONG PHIEUPH-PIEUP*/ - RTUNI_ALPHA, /* U+001157: HANGUL CHOSEONG KAPYEOUNPHIEUPH*/ - RTUNI_ALPHA, /* U+001158: HANGUL CHOSEONG SSANGHIEUH*/ - RTUNI_ALPHA, /* U+001159: HANGUL CHOSEONG YEORINHIEUH*/ - 0, /* U+00115a: */ - 0, /* U+00115b: */ - 0, /* U+00115c: */ - 0, /* U+00115d: */ - 0, /* U+00115e: */ - RTUNI_ALPHA, /* U+00115f: HANGUL CHOSEONG FILLER*/ - RTUNI_ALPHA, /* U+001160: HANGUL JUNGSEONG FILLER*/ - RTUNI_ALPHA, /* U+001161: HANGUL JUNGSEONG A*/ - RTUNI_ALPHA, /* U+001162: HANGUL JUNGSEONG AE*/ - RTUNI_ALPHA, /* U+001163: HANGUL JUNGSEONG YA*/ - RTUNI_ALPHA, /* U+001164: HANGUL JUNGSEONG YAE*/ - RTUNI_ALPHA, /* U+001165: HANGUL JUNGSEONG EO*/ - RTUNI_ALPHA, /* U+001166: HANGUL JUNGSEONG E*/ - RTUNI_ALPHA, /* U+001167: HANGUL JUNGSEONG YEO*/ - RTUNI_ALPHA, /* U+001168: HANGUL JUNGSEONG YE*/ - RTUNI_ALPHA, /* U+001169: HANGUL JUNGSEONG O*/ - RTUNI_ALPHA, /* U+00116a: HANGUL JUNGSEONG WA*/ - RTUNI_ALPHA, /* U+00116b: HANGUL JUNGSEONG WAE*/ - RTUNI_ALPHA, /* U+00116c: HANGUL JUNGSEONG OE*/ - RTUNI_ALPHA, /* U+00116d: HANGUL JUNGSEONG YO*/ - RTUNI_ALPHA, /* U+00116e: HANGUL JUNGSEONG U*/ - RTUNI_ALPHA, /* U+00116f: HANGUL JUNGSEONG WEO*/ - RTUNI_ALPHA, /* U+001170: HANGUL JUNGSEONG WE*/ - RTUNI_ALPHA, /* U+001171: HANGUL JUNGSEONG WI*/ - RTUNI_ALPHA, /* U+001172: HANGUL JUNGSEONG YU*/ - RTUNI_ALPHA, /* U+001173: HANGUL JUNGSEONG EU*/ - RTUNI_ALPHA, /* U+001174: HANGUL JUNGSEONG YI*/ - RTUNI_ALPHA, /* U+001175: HANGUL JUNGSEONG I*/ - RTUNI_ALPHA, /* U+001176: HANGUL JUNGSEONG A-O*/ - RTUNI_ALPHA, /* U+001177: HANGUL JUNGSEONG A-U*/ - RTUNI_ALPHA, /* U+001178: HANGUL JUNGSEONG YA-O*/ - RTUNI_ALPHA, /* U+001179: HANGUL JUNGSEONG YA-YO*/ - RTUNI_ALPHA, /* U+00117a: HANGUL JUNGSEONG EO-O*/ - RTUNI_ALPHA, /* U+00117b: HANGUL JUNGSEONG EO-U*/ - RTUNI_ALPHA, /* U+00117c: HANGUL JUNGSEONG EO-EU*/ - RTUNI_ALPHA, /* U+00117d: HANGUL JUNGSEONG YEO-O*/ - RTUNI_ALPHA, /* U+00117e: HANGUL JUNGSEONG YEO-U*/ - RTUNI_ALPHA, /* U+00117f: HANGUL JUNGSEONG O-EO*/ - RTUNI_ALPHA, /* U+001180: HANGUL JUNGSEONG O-E*/ - RTUNI_ALPHA, /* U+001181: HANGUL JUNGSEONG O-YE*/ - RTUNI_ALPHA, /* U+001182: HANGUL JUNGSEONG O-O*/ - RTUNI_ALPHA, /* U+001183: HANGUL JUNGSEONG O-U*/ - RTUNI_ALPHA, /* U+001184: HANGUL JUNGSEONG YO-YA*/ - RTUNI_ALPHA, /* U+001185: HANGUL JUNGSEONG YO-YAE*/ - RTUNI_ALPHA, /* U+001186: HANGUL JUNGSEONG YO-YEO*/ - RTUNI_ALPHA, /* U+001187: HANGUL JUNGSEONG YO-O*/ - RTUNI_ALPHA, /* U+001188: HANGUL JUNGSEONG YO-I*/ - RTUNI_ALPHA, /* U+001189: HANGUL JUNGSEONG U-A*/ - RTUNI_ALPHA, /* U+00118a: HANGUL JUNGSEONG U-AE*/ - RTUNI_ALPHA, /* U+00118b: HANGUL JUNGSEONG U-EO-EU*/ - RTUNI_ALPHA, /* U+00118c: HANGUL JUNGSEONG U-YE*/ - RTUNI_ALPHA, /* U+00118d: HANGUL JUNGSEONG U-U*/ - RTUNI_ALPHA, /* U+00118e: HANGUL JUNGSEONG YU-A*/ - RTUNI_ALPHA, /* U+00118f: HANGUL JUNGSEONG YU-EO*/ - RTUNI_ALPHA, /* U+001190: HANGUL JUNGSEONG YU-E*/ - RTUNI_ALPHA, /* U+001191: HANGUL JUNGSEONG YU-YEO*/ - RTUNI_ALPHA, /* U+001192: HANGUL JUNGSEONG YU-YE*/ - RTUNI_ALPHA, /* U+001193: HANGUL JUNGSEONG YU-U*/ - RTUNI_ALPHA, /* U+001194: HANGUL JUNGSEONG YU-I*/ - RTUNI_ALPHA, /* U+001195: HANGUL JUNGSEONG EU-U*/ - RTUNI_ALPHA, /* U+001196: HANGUL JUNGSEONG EU-EU*/ - RTUNI_ALPHA, /* U+001197: HANGUL JUNGSEONG YI-U*/ - RTUNI_ALPHA, /* U+001198: HANGUL JUNGSEONG I-A*/ - RTUNI_ALPHA, /* U+001199: HANGUL JUNGSEONG I-YA*/ - RTUNI_ALPHA, /* U+00119a: HANGUL JUNGSEONG I-O*/ - RTUNI_ALPHA, /* U+00119b: HANGUL JUNGSEONG I-U*/ - RTUNI_ALPHA, /* U+00119c: HANGUL JUNGSEONG I-EU*/ - RTUNI_ALPHA, /* U+00119d: HANGUL JUNGSEONG I-ARAEA*/ - RTUNI_ALPHA, /* U+00119e: HANGUL JUNGSEONG ARAEA*/ - RTUNI_ALPHA, /* U+00119f: HANGUL JUNGSEONG ARAEA-EO*/ - RTUNI_ALPHA, /* U+0011a0: HANGUL JUNGSEONG ARAEA-U*/ - RTUNI_ALPHA, /* U+0011a1: HANGUL JUNGSEONG ARAEA-I*/ - RTUNI_ALPHA, /* U+0011a2: HANGUL JUNGSEONG SSANGARAEA*/ - 0, /* U+0011a3: */ - 0, /* U+0011a4: */ - 0, /* U+0011a5: */ - 0, /* U+0011a6: */ - 0, /* U+0011a7: */ - RTUNI_ALPHA, /* U+0011a8: HANGUL JONGSEONG KIYEOK*/ - RTUNI_ALPHA, /* U+0011a9: HANGUL JONGSEONG SSANGKIYEOK*/ - RTUNI_ALPHA, /* U+0011aa: HANGUL JONGSEONG KIYEOK-SIOS*/ - RTUNI_ALPHA, /* U+0011ab: HANGUL JONGSEONG NIEUN*/ - RTUNI_ALPHA, /* U+0011ac: HANGUL JONGSEONG NIEUN-CIEUC*/ - RTUNI_ALPHA, /* U+0011ad: HANGUL JONGSEONG NIEUN-HIEUH*/ - RTUNI_ALPHA, /* U+0011ae: HANGUL JONGSEONG TIKEUT*/ - RTUNI_ALPHA, /* U+0011af: HANGUL JONGSEONG RIEUL*/ - RTUNI_ALPHA, /* U+0011b0: HANGUL JONGSEONG RIEUL-KIYEOK*/ - RTUNI_ALPHA, /* U+0011b1: HANGUL JONGSEONG RIEUL-MIEUM*/ - RTUNI_ALPHA, /* U+0011b2: HANGUL JONGSEONG RIEUL-PIEUP*/ - RTUNI_ALPHA, /* U+0011b3: HANGUL JONGSEONG RIEUL-SIOS*/ - RTUNI_ALPHA, /* U+0011b4: HANGUL JONGSEONG RIEUL-THIEUTH*/ - RTUNI_ALPHA, /* U+0011b5: HANGUL JONGSEONG RIEUL-PHIEUPH*/ - RTUNI_ALPHA, /* U+0011b6: HANGUL JONGSEONG RIEUL-HIEUH*/ - RTUNI_ALPHA, /* U+0011b7: HANGUL JONGSEONG MIEUM*/ - RTUNI_ALPHA, /* U+0011b8: HANGUL JONGSEONG PIEUP*/ - RTUNI_ALPHA, /* U+0011b9: HANGUL JONGSEONG PIEUP-SIOS*/ - RTUNI_ALPHA, /* U+0011ba: HANGUL JONGSEONG SIOS*/ - RTUNI_ALPHA, /* U+0011bb: HANGUL JONGSEONG SSANGSIOS*/ - RTUNI_ALPHA, /* U+0011bc: HANGUL JONGSEONG IEUNG*/ - RTUNI_ALPHA, /* U+0011bd: HANGUL JONGSEONG CIEUC*/ - RTUNI_ALPHA, /* U+0011be: HANGUL JONGSEONG CHIEUCH*/ - RTUNI_ALPHA, /* U+0011bf: HANGUL JONGSEONG KHIEUKH*/ - RTUNI_ALPHA, /* U+0011c0: HANGUL JONGSEONG THIEUTH*/ - RTUNI_ALPHA, /* U+0011c1: HANGUL JONGSEONG PHIEUPH*/ - RTUNI_ALPHA, /* U+0011c2: HANGUL JONGSEONG HIEUH*/ - RTUNI_ALPHA, /* U+0011c3: HANGUL JONGSEONG KIYEOK-RIEUL*/ - RTUNI_ALPHA, /* U+0011c4: HANGUL JONGSEONG KIYEOK-SIOS-KIYEOK*/ - RTUNI_ALPHA, /* U+0011c5: HANGUL JONGSEONG NIEUN-KIYEOK*/ - RTUNI_ALPHA, /* U+0011c6: HANGUL JONGSEONG NIEUN-TIKEUT*/ - RTUNI_ALPHA, /* U+0011c7: HANGUL JONGSEONG NIEUN-SIOS*/ - RTUNI_ALPHA, /* U+0011c8: HANGUL JONGSEONG NIEUN-PANSIOS*/ - RTUNI_ALPHA, /* U+0011c9: HANGUL JONGSEONG NIEUN-THIEUTH*/ - RTUNI_ALPHA, /* U+0011ca: HANGUL JONGSEONG TIKEUT-KIYEOK*/ - RTUNI_ALPHA, /* U+0011cb: HANGUL JONGSEONG TIKEUT-RIEUL*/ - RTUNI_ALPHA, /* U+0011cc: HANGUL JONGSEONG RIEUL-KIYEOK-SIOS*/ - RTUNI_ALPHA, /* U+0011cd: HANGUL JONGSEONG RIEUL-NIEUN*/ - RTUNI_ALPHA, /* U+0011ce: HANGUL JONGSEONG RIEUL-TIKEUT*/ - RTUNI_ALPHA, /* U+0011cf: HANGUL JONGSEONG RIEUL-TIKEUT-HIEUH*/ - RTUNI_ALPHA, /* U+0011d0: HANGUL JONGSEONG SSANGRIEUL*/ - RTUNI_ALPHA, /* U+0011d1: HANGUL JONGSEONG RIEUL-MIEUM-KIYEOK*/ - RTUNI_ALPHA, /* U+0011d2: HANGUL JONGSEONG RIEUL-MIEUM-SIOS*/ - RTUNI_ALPHA, /* U+0011d3: HANGUL JONGSEONG RIEUL-PIEUP-SIOS*/ - RTUNI_ALPHA, /* U+0011d4: HANGUL JONGSEONG RIEUL-PIEUP-HIEUH*/ - RTUNI_ALPHA, /* U+0011d5: HANGUL JONGSEONG RIEUL-KAPYEOUNPIEUP*/ - RTUNI_ALPHA, /* U+0011d6: HANGUL JONGSEONG RIEUL-SSANGSIOS*/ - RTUNI_ALPHA, /* U+0011d7: HANGUL JONGSEONG RIEUL-PANSIOS*/ - RTUNI_ALPHA, /* U+0011d8: HANGUL JONGSEONG RIEUL-KHIEUKH*/ - RTUNI_ALPHA, /* U+0011d9: HANGUL JONGSEONG RIEUL-YEORINHIEUH*/ - RTUNI_ALPHA, /* U+0011da: HANGUL JONGSEONG MIEUM-KIYEOK*/ - RTUNI_ALPHA, /* U+0011db: HANGUL JONGSEONG MIEUM-RIEUL*/ - RTUNI_ALPHA, /* U+0011dc: HANGUL JONGSEONG MIEUM-PIEUP*/ - RTUNI_ALPHA, /* U+0011dd: HANGUL JONGSEONG MIEUM-SIOS*/ - RTUNI_ALPHA, /* U+0011de: HANGUL JONGSEONG MIEUM-SSANGSIOS*/ - RTUNI_ALPHA, /* U+0011df: HANGUL JONGSEONG MIEUM-PANSIOS*/ - RTUNI_ALPHA, /* U+0011e0: HANGUL JONGSEONG MIEUM-CHIEUCH*/ - RTUNI_ALPHA, /* U+0011e1: HANGUL JONGSEONG MIEUM-HIEUH*/ - RTUNI_ALPHA, /* U+0011e2: HANGUL JONGSEONG KAPYEOUNMIEUM*/ - RTUNI_ALPHA, /* U+0011e3: HANGUL JONGSEONG PIEUP-RIEUL*/ - RTUNI_ALPHA, /* U+0011e4: HANGUL JONGSEONG PIEUP-PHIEUPH*/ - RTUNI_ALPHA, /* U+0011e5: HANGUL JONGSEONG PIEUP-HIEUH*/ - RTUNI_ALPHA, /* U+0011e6: HANGUL JONGSEONG KAPYEOUNPIEUP*/ - RTUNI_ALPHA, /* U+0011e7: HANGUL JONGSEONG SIOS-KIYEOK*/ - RTUNI_ALPHA, /* U+0011e8: HANGUL JONGSEONG SIOS-TIKEUT*/ - RTUNI_ALPHA, /* U+0011e9: HANGUL JONGSEONG SIOS-RIEUL*/ - RTUNI_ALPHA, /* U+0011ea: HANGUL JONGSEONG SIOS-PIEUP*/ - RTUNI_ALPHA, /* U+0011eb: HANGUL JONGSEONG PANSIOS*/ - RTUNI_ALPHA, /* U+0011ec: HANGUL JONGSEONG IEUNG-KIYEOK*/ - RTUNI_ALPHA, /* U+0011ed: HANGUL JONGSEONG IEUNG-SSANGKIYEOK*/ - RTUNI_ALPHA, /* U+0011ee: HANGUL JONGSEONG SSANGIEUNG*/ - RTUNI_ALPHA, /* U+0011ef: HANGUL JONGSEONG IEUNG-KHIEUKH*/ - RTUNI_ALPHA, /* U+0011f0: HANGUL JONGSEONG YESIEUNG*/ - RTUNI_ALPHA, /* U+0011f1: HANGUL JONGSEONG YESIEUNG-SIOS*/ - RTUNI_ALPHA, /* U+0011f2: HANGUL JONGSEONG YESIEUNG-PANSIOS*/ - RTUNI_ALPHA, /* U+0011f3: HANGUL JONGSEONG PHIEUPH-PIEUP*/ - RTUNI_ALPHA, /* U+0011f4: HANGUL JONGSEONG KAPYEOUNPHIEUPH*/ - RTUNI_ALPHA, /* U+0011f5: HANGUL JONGSEONG HIEUH-NIEUN*/ - RTUNI_ALPHA, /* U+0011f6: HANGUL JONGSEONG HIEUH-RIEUL*/ - RTUNI_ALPHA, /* U+0011f7: HANGUL JONGSEONG HIEUH-MIEUM*/ - RTUNI_ALPHA, /* U+0011f8: HANGUL JONGSEONG HIEUH-PIEUP*/ - RTUNI_ALPHA, /* U+0011f9: HANGUL JONGSEONG YEORINHIEUH*/ - 0, /* U+0011fa: */ - 0, /* U+0011fb: */ - 0, /* U+0011fc: */ - 0, /* U+0011fd: */ - 0, /* U+0011fe: */ - 0, /* U+0011ff: */ - RTUNI_ALPHA, /* U+001200: ETHIOPIC SYLLABLE HA*/ - RTUNI_ALPHA, /* U+001201: ETHIOPIC SYLLABLE HU*/ - RTUNI_ALPHA, /* U+001202: ETHIOPIC SYLLABLE HI*/ - RTUNI_ALPHA, /* U+001203: ETHIOPIC SYLLABLE HAA*/ - RTUNI_ALPHA, /* U+001204: ETHIOPIC SYLLABLE HEE*/ - RTUNI_ALPHA, /* U+001205: ETHIOPIC SYLLABLE HE*/ - RTUNI_ALPHA, /* U+001206: ETHIOPIC SYLLABLE HO*/ - RTUNI_ALPHA, /* U+001207: ETHIOPIC SYLLABLE HOA*/ - RTUNI_ALPHA, /* U+001208: ETHIOPIC SYLLABLE LA*/ - RTUNI_ALPHA, /* U+001209: ETHIOPIC SYLLABLE LU*/ - RTUNI_ALPHA, /* U+00120a: ETHIOPIC SYLLABLE LI*/ - RTUNI_ALPHA, /* U+00120b: ETHIOPIC SYLLABLE LAA*/ - RTUNI_ALPHA, /* U+00120c: ETHIOPIC SYLLABLE LEE*/ - RTUNI_ALPHA, /* U+00120d: ETHIOPIC SYLLABLE LE*/ - RTUNI_ALPHA, /* U+00120e: ETHIOPIC SYLLABLE LO*/ - RTUNI_ALPHA, /* U+00120f: ETHIOPIC SYLLABLE LWA*/ - RTUNI_ALPHA, /* U+001210: ETHIOPIC SYLLABLE HHA*/ - RTUNI_ALPHA, /* U+001211: ETHIOPIC SYLLABLE HHU*/ - RTUNI_ALPHA, /* U+001212: ETHIOPIC SYLLABLE HHI*/ - RTUNI_ALPHA, /* U+001213: ETHIOPIC SYLLABLE HHAA*/ - RTUNI_ALPHA, /* U+001214: ETHIOPIC SYLLABLE HHEE*/ - RTUNI_ALPHA, /* U+001215: ETHIOPIC SYLLABLE HHE*/ - RTUNI_ALPHA, /* U+001216: ETHIOPIC SYLLABLE HHO*/ - RTUNI_ALPHA, /* U+001217: ETHIOPIC SYLLABLE HHWA*/ - RTUNI_ALPHA, /* U+001218: ETHIOPIC SYLLABLE MA*/ - RTUNI_ALPHA, /* U+001219: ETHIOPIC SYLLABLE MU*/ - RTUNI_ALPHA, /* U+00121a: ETHIOPIC SYLLABLE MI*/ - RTUNI_ALPHA, /* U+00121b: ETHIOPIC SYLLABLE MAA*/ - RTUNI_ALPHA, /* U+00121c: ETHIOPIC SYLLABLE MEE*/ - RTUNI_ALPHA, /* U+00121d: ETHIOPIC SYLLABLE ME*/ - RTUNI_ALPHA, /* U+00121e: ETHIOPIC SYLLABLE MO*/ - RTUNI_ALPHA, /* U+00121f: ETHIOPIC SYLLABLE MWA*/ - RTUNI_ALPHA, /* U+001220: ETHIOPIC SYLLABLE SZA*/ - RTUNI_ALPHA, /* U+001221: ETHIOPIC SYLLABLE SZU*/ - RTUNI_ALPHA, /* U+001222: ETHIOPIC SYLLABLE SZI*/ - RTUNI_ALPHA, /* U+001223: ETHIOPIC SYLLABLE SZAA*/ - RTUNI_ALPHA, /* U+001224: ETHIOPIC SYLLABLE SZEE*/ - RTUNI_ALPHA, /* U+001225: ETHIOPIC SYLLABLE SZE*/ - RTUNI_ALPHA, /* U+001226: ETHIOPIC SYLLABLE SZO*/ - RTUNI_ALPHA, /* U+001227: ETHIOPIC SYLLABLE SZWA*/ - RTUNI_ALPHA, /* U+001228: ETHIOPIC SYLLABLE RA*/ - RTUNI_ALPHA, /* U+001229: ETHIOPIC SYLLABLE RU*/ - RTUNI_ALPHA, /* U+00122a: ETHIOPIC SYLLABLE RI*/ - RTUNI_ALPHA, /* U+00122b: ETHIOPIC SYLLABLE RAA*/ - RTUNI_ALPHA, /* U+00122c: ETHIOPIC SYLLABLE REE*/ - RTUNI_ALPHA, /* U+00122d: ETHIOPIC SYLLABLE RE*/ - RTUNI_ALPHA, /* U+00122e: ETHIOPIC SYLLABLE RO*/ - RTUNI_ALPHA, /* U+00122f: ETHIOPIC SYLLABLE RWA*/ - RTUNI_ALPHA, /* U+001230: ETHIOPIC SYLLABLE SA*/ - RTUNI_ALPHA, /* U+001231: ETHIOPIC SYLLABLE SU*/ - RTUNI_ALPHA, /* U+001232: ETHIOPIC SYLLABLE SI*/ - RTUNI_ALPHA, /* U+001233: ETHIOPIC SYLLABLE SAA*/ - RTUNI_ALPHA, /* U+001234: ETHIOPIC SYLLABLE SEE*/ - RTUNI_ALPHA, /* U+001235: ETHIOPIC SYLLABLE SE*/ - RTUNI_ALPHA, /* U+001236: ETHIOPIC SYLLABLE SO*/ - RTUNI_ALPHA, /* U+001237: ETHIOPIC SYLLABLE SWA*/ - RTUNI_ALPHA, /* U+001238: ETHIOPIC SYLLABLE SHA*/ - RTUNI_ALPHA, /* U+001239: ETHIOPIC SYLLABLE SHU*/ - RTUNI_ALPHA, /* U+00123a: ETHIOPIC SYLLABLE SHI*/ - RTUNI_ALPHA, /* U+00123b: ETHIOPIC SYLLABLE SHAA*/ - RTUNI_ALPHA, /* U+00123c: ETHIOPIC SYLLABLE SHEE*/ - RTUNI_ALPHA, /* U+00123d: ETHIOPIC SYLLABLE SHE*/ - RTUNI_ALPHA, /* U+00123e: ETHIOPIC SYLLABLE SHO*/ - RTUNI_ALPHA, /* U+00123f: ETHIOPIC SYLLABLE SHWA*/ - RTUNI_ALPHA, /* U+001240: ETHIOPIC SYLLABLE QA*/ - RTUNI_ALPHA, /* U+001241: ETHIOPIC SYLLABLE QU*/ - RTUNI_ALPHA, /* U+001242: ETHIOPIC SYLLABLE QI*/ - RTUNI_ALPHA, /* U+001243: ETHIOPIC SYLLABLE QAA*/ - RTUNI_ALPHA, /* U+001244: ETHIOPIC SYLLABLE QEE*/ - RTUNI_ALPHA, /* U+001245: ETHIOPIC SYLLABLE QE*/ - RTUNI_ALPHA, /* U+001246: ETHIOPIC SYLLABLE QO*/ - RTUNI_ALPHA, /* U+001247: ETHIOPIC SYLLABLE QOA*/ - RTUNI_ALPHA, /* U+001248: ETHIOPIC SYLLABLE QWA*/ - 0, /* U+001249: */ - RTUNI_ALPHA, /* U+00124a: ETHIOPIC SYLLABLE QWI*/ - RTUNI_ALPHA, /* U+00124b: ETHIOPIC SYLLABLE QWAA*/ - RTUNI_ALPHA, /* U+00124c: ETHIOPIC SYLLABLE QWEE*/ - RTUNI_ALPHA, /* U+00124d: ETHIOPIC SYLLABLE QWE*/ - 0, /* U+00124e: */ - 0, /* U+00124f: */ - RTUNI_ALPHA, /* U+001250: ETHIOPIC SYLLABLE QHA*/ - RTUNI_ALPHA, /* U+001251: ETHIOPIC SYLLABLE QHU*/ - RTUNI_ALPHA, /* U+001252: ETHIOPIC SYLLABLE QHI*/ - RTUNI_ALPHA, /* U+001253: ETHIOPIC SYLLABLE QHAA*/ - RTUNI_ALPHA, /* U+001254: ETHIOPIC SYLLABLE QHEE*/ - RTUNI_ALPHA, /* U+001255: ETHIOPIC SYLLABLE QHE*/ - RTUNI_ALPHA, /* U+001256: ETHIOPIC SYLLABLE QHO*/ - 0, /* U+001257: */ - RTUNI_ALPHA, /* U+001258: ETHIOPIC SYLLABLE QHWA*/ - 0, /* U+001259: */ - RTUNI_ALPHA, /* U+00125a: ETHIOPIC SYLLABLE QHWI*/ - RTUNI_ALPHA, /* U+00125b: ETHIOPIC SYLLABLE QHWAA*/ - RTUNI_ALPHA, /* U+00125c: ETHIOPIC SYLLABLE QHWEE*/ - RTUNI_ALPHA, /* U+00125d: ETHIOPIC SYLLABLE QHWE*/ - 0, /* U+00125e: */ - 0, /* U+00125f: */ - RTUNI_ALPHA, /* U+001260: ETHIOPIC SYLLABLE BA*/ - RTUNI_ALPHA, /* U+001261: ETHIOPIC SYLLABLE BU*/ - RTUNI_ALPHA, /* U+001262: ETHIOPIC SYLLABLE BI*/ - RTUNI_ALPHA, /* U+001263: ETHIOPIC SYLLABLE BAA*/ - RTUNI_ALPHA, /* U+001264: ETHIOPIC SYLLABLE BEE*/ - RTUNI_ALPHA, /* U+001265: ETHIOPIC SYLLABLE BE*/ - RTUNI_ALPHA, /* U+001266: ETHIOPIC SYLLABLE BO*/ - RTUNI_ALPHA, /* U+001267: ETHIOPIC SYLLABLE BWA*/ - RTUNI_ALPHA, /* U+001268: ETHIOPIC SYLLABLE VA*/ - RTUNI_ALPHA, /* U+001269: ETHIOPIC SYLLABLE VU*/ - RTUNI_ALPHA, /* U+00126a: ETHIOPIC SYLLABLE VI*/ - RTUNI_ALPHA, /* U+00126b: ETHIOPIC SYLLABLE VAA*/ - RTUNI_ALPHA, /* U+00126c: ETHIOPIC SYLLABLE VEE*/ - RTUNI_ALPHA, /* U+00126d: ETHIOPIC SYLLABLE VE*/ - RTUNI_ALPHA, /* U+00126e: ETHIOPIC SYLLABLE VO*/ - RTUNI_ALPHA, /* U+00126f: ETHIOPIC SYLLABLE VWA*/ - RTUNI_ALPHA, /* U+001270: ETHIOPIC SYLLABLE TA*/ - RTUNI_ALPHA, /* U+001271: ETHIOPIC SYLLABLE TU*/ - RTUNI_ALPHA, /* U+001272: ETHIOPIC SYLLABLE TI*/ - RTUNI_ALPHA, /* U+001273: ETHIOPIC SYLLABLE TAA*/ - RTUNI_ALPHA, /* U+001274: ETHIOPIC SYLLABLE TEE*/ - RTUNI_ALPHA, /* U+001275: ETHIOPIC SYLLABLE TE*/ - RTUNI_ALPHA, /* U+001276: ETHIOPIC SYLLABLE TO*/ - RTUNI_ALPHA, /* U+001277: ETHIOPIC SYLLABLE TWA*/ - RTUNI_ALPHA, /* U+001278: ETHIOPIC SYLLABLE CA*/ - RTUNI_ALPHA, /* U+001279: ETHIOPIC SYLLABLE CU*/ - RTUNI_ALPHA, /* U+00127a: ETHIOPIC SYLLABLE CI*/ - RTUNI_ALPHA, /* U+00127b: ETHIOPIC SYLLABLE CAA*/ - RTUNI_ALPHA, /* U+00127c: ETHIOPIC SYLLABLE CEE*/ - RTUNI_ALPHA, /* U+00127d: ETHIOPIC SYLLABLE CE*/ - RTUNI_ALPHA, /* U+00127e: ETHIOPIC SYLLABLE CO*/ - RTUNI_ALPHA, /* U+00127f: ETHIOPIC SYLLABLE CWA*/ - RTUNI_ALPHA, /* U+001280: ETHIOPIC SYLLABLE XA*/ - RTUNI_ALPHA, /* U+001281: ETHIOPIC SYLLABLE XU*/ - RTUNI_ALPHA, /* U+001282: ETHIOPIC SYLLABLE XI*/ - RTUNI_ALPHA, /* U+001283: ETHIOPIC SYLLABLE XAA*/ - RTUNI_ALPHA, /* U+001284: ETHIOPIC SYLLABLE XEE*/ - RTUNI_ALPHA, /* U+001285: ETHIOPIC SYLLABLE XE*/ - RTUNI_ALPHA, /* U+001286: ETHIOPIC SYLLABLE XO*/ - RTUNI_ALPHA, /* U+001287: ETHIOPIC SYLLABLE XOA*/ - RTUNI_ALPHA, /* U+001288: ETHIOPIC SYLLABLE XWA*/ - 0, /* U+001289: */ - RTUNI_ALPHA, /* U+00128a: ETHIOPIC SYLLABLE XWI*/ - RTUNI_ALPHA, /* U+00128b: ETHIOPIC SYLLABLE XWAA*/ - RTUNI_ALPHA, /* U+00128c: ETHIOPIC SYLLABLE XWEE*/ - RTUNI_ALPHA, /* U+00128d: ETHIOPIC SYLLABLE XWE*/ - 0, /* U+00128e: */ - 0, /* U+00128f: */ - RTUNI_ALPHA, /* U+001290: ETHIOPIC SYLLABLE NA*/ - RTUNI_ALPHA, /* U+001291: ETHIOPIC SYLLABLE NU*/ - RTUNI_ALPHA, /* U+001292: ETHIOPIC SYLLABLE NI*/ - RTUNI_ALPHA, /* U+001293: ETHIOPIC SYLLABLE NAA*/ - RTUNI_ALPHA, /* U+001294: ETHIOPIC SYLLABLE NEE*/ - RTUNI_ALPHA, /* U+001295: ETHIOPIC SYLLABLE NE*/ - RTUNI_ALPHA, /* U+001296: ETHIOPIC SYLLABLE NO*/ - RTUNI_ALPHA, /* U+001297: ETHIOPIC SYLLABLE NWA*/ - RTUNI_ALPHA, /* U+001298: ETHIOPIC SYLLABLE NYA*/ - RTUNI_ALPHA, /* U+001299: ETHIOPIC SYLLABLE NYU*/ - RTUNI_ALPHA, /* U+00129a: ETHIOPIC SYLLABLE NYI*/ - RTUNI_ALPHA, /* U+00129b: ETHIOPIC SYLLABLE NYAA*/ - RTUNI_ALPHA, /* U+00129c: ETHIOPIC SYLLABLE NYEE*/ - RTUNI_ALPHA, /* U+00129d: ETHIOPIC SYLLABLE NYE*/ - RTUNI_ALPHA, /* U+00129e: ETHIOPIC SYLLABLE NYO*/ - RTUNI_ALPHA, /* U+00129f: ETHIOPIC SYLLABLE NYWA*/ - RTUNI_ALPHA, /* U+0012a0: ETHIOPIC SYLLABLE GLOTTAL A*/ - RTUNI_ALPHA, /* U+0012a1: ETHIOPIC SYLLABLE GLOTTAL U*/ - RTUNI_ALPHA, /* U+0012a2: ETHIOPIC SYLLABLE GLOTTAL I*/ - RTUNI_ALPHA, /* U+0012a3: ETHIOPIC SYLLABLE GLOTTAL AA*/ - RTUNI_ALPHA, /* U+0012a4: ETHIOPIC SYLLABLE GLOTTAL EE*/ - RTUNI_ALPHA, /* U+0012a5: ETHIOPIC SYLLABLE GLOTTAL E*/ - RTUNI_ALPHA, /* U+0012a6: ETHIOPIC SYLLABLE GLOTTAL O*/ - RTUNI_ALPHA, /* U+0012a7: ETHIOPIC SYLLABLE GLOTTAL WA*/ - RTUNI_ALPHA, /* U+0012a8: ETHIOPIC SYLLABLE KA*/ - RTUNI_ALPHA, /* U+0012a9: ETHIOPIC SYLLABLE KU*/ - RTUNI_ALPHA, /* U+0012aa: ETHIOPIC SYLLABLE KI*/ - RTUNI_ALPHA, /* U+0012ab: ETHIOPIC SYLLABLE KAA*/ - RTUNI_ALPHA, /* U+0012ac: ETHIOPIC SYLLABLE KEE*/ - RTUNI_ALPHA, /* U+0012ad: ETHIOPIC SYLLABLE KE*/ - RTUNI_ALPHA, /* U+0012ae: ETHIOPIC SYLLABLE KO*/ - RTUNI_ALPHA, /* U+0012af: ETHIOPIC SYLLABLE KOA*/ - RTUNI_ALPHA, /* U+0012b0: ETHIOPIC SYLLABLE KWA*/ - 0, /* U+0012b1: */ - RTUNI_ALPHA, /* U+0012b2: ETHIOPIC SYLLABLE KWI*/ - RTUNI_ALPHA, /* U+0012b3: ETHIOPIC SYLLABLE KWAA*/ - RTUNI_ALPHA, /* U+0012b4: ETHIOPIC SYLLABLE KWEE*/ - RTUNI_ALPHA, /* U+0012b5: ETHIOPIC SYLLABLE KWE*/ - 0, /* U+0012b6: */ - 0, /* U+0012b7: */ - RTUNI_ALPHA, /* U+0012b8: ETHIOPIC SYLLABLE KXA*/ - RTUNI_ALPHA, /* U+0012b9: ETHIOPIC SYLLABLE KXU*/ - RTUNI_ALPHA, /* U+0012ba: ETHIOPIC SYLLABLE KXI*/ - RTUNI_ALPHA, /* U+0012bb: ETHIOPIC SYLLABLE KXAA*/ - RTUNI_ALPHA, /* U+0012bc: ETHIOPIC SYLLABLE KXEE*/ - RTUNI_ALPHA, /* U+0012bd: ETHIOPIC SYLLABLE KXE*/ - RTUNI_ALPHA, /* U+0012be: ETHIOPIC SYLLABLE KXO*/ - 0, /* U+0012bf: */ - RTUNI_ALPHA, /* U+0012c0: ETHIOPIC SYLLABLE KXWA*/ - 0, /* U+0012c1: */ - RTUNI_ALPHA, /* U+0012c2: ETHIOPIC SYLLABLE KXWI*/ - RTUNI_ALPHA, /* U+0012c3: ETHIOPIC SYLLABLE KXWAA*/ - RTUNI_ALPHA, /* U+0012c4: ETHIOPIC SYLLABLE KXWEE*/ - RTUNI_ALPHA, /* U+0012c5: ETHIOPIC SYLLABLE KXWE*/ - 0, /* U+0012c6: */ - 0, /* U+0012c7: */ - RTUNI_ALPHA, /* U+0012c8: ETHIOPIC SYLLABLE WA*/ - RTUNI_ALPHA, /* U+0012c9: ETHIOPIC SYLLABLE WU*/ - RTUNI_ALPHA, /* U+0012ca: ETHIOPIC SYLLABLE WI*/ - RTUNI_ALPHA, /* U+0012cb: ETHIOPIC SYLLABLE WAA*/ - RTUNI_ALPHA, /* U+0012cc: ETHIOPIC SYLLABLE WEE*/ - RTUNI_ALPHA, /* U+0012cd: ETHIOPIC SYLLABLE WE*/ - RTUNI_ALPHA, /* U+0012ce: ETHIOPIC SYLLABLE WO*/ - RTUNI_ALPHA, /* U+0012cf: ETHIOPIC SYLLABLE WOA*/ - RTUNI_ALPHA, /* U+0012d0: ETHIOPIC SYLLABLE PHARYNGEAL A*/ - RTUNI_ALPHA, /* U+0012d1: ETHIOPIC SYLLABLE PHARYNGEAL U*/ - RTUNI_ALPHA, /* U+0012d2: ETHIOPIC SYLLABLE PHARYNGEAL I*/ - RTUNI_ALPHA, /* U+0012d3: ETHIOPIC SYLLABLE PHARYNGEAL AA*/ - RTUNI_ALPHA, /* U+0012d4: ETHIOPIC SYLLABLE PHARYNGEAL EE*/ - RTUNI_ALPHA, /* U+0012d5: ETHIOPIC SYLLABLE PHARYNGEAL E*/ - RTUNI_ALPHA, /* U+0012d6: ETHIOPIC SYLLABLE PHARYNGEAL O*/ - 0, /* U+0012d7: */ - RTUNI_ALPHA, /* U+0012d8: ETHIOPIC SYLLABLE ZA*/ - RTUNI_ALPHA, /* U+0012d9: ETHIOPIC SYLLABLE ZU*/ - RTUNI_ALPHA, /* U+0012da: ETHIOPIC SYLLABLE ZI*/ - RTUNI_ALPHA, /* U+0012db: ETHIOPIC SYLLABLE ZAA*/ - RTUNI_ALPHA, /* U+0012dc: ETHIOPIC SYLLABLE ZEE*/ - RTUNI_ALPHA, /* U+0012dd: ETHIOPIC SYLLABLE ZE*/ - RTUNI_ALPHA, /* U+0012de: ETHIOPIC SYLLABLE ZO*/ - RTUNI_ALPHA, /* U+0012df: ETHIOPIC SYLLABLE ZWA*/ - RTUNI_ALPHA, /* U+0012e0: ETHIOPIC SYLLABLE ZHA*/ - RTUNI_ALPHA, /* U+0012e1: ETHIOPIC SYLLABLE ZHU*/ - RTUNI_ALPHA, /* U+0012e2: ETHIOPIC SYLLABLE ZHI*/ - RTUNI_ALPHA, /* U+0012e3: ETHIOPIC SYLLABLE ZHAA*/ - RTUNI_ALPHA, /* U+0012e4: ETHIOPIC SYLLABLE ZHEE*/ - RTUNI_ALPHA, /* U+0012e5: ETHIOPIC SYLLABLE ZHE*/ - RTUNI_ALPHA, /* U+0012e6: ETHIOPIC SYLLABLE ZHO*/ - RTUNI_ALPHA, /* U+0012e7: ETHIOPIC SYLLABLE ZHWA*/ - RTUNI_ALPHA, /* U+0012e8: ETHIOPIC SYLLABLE YA*/ - RTUNI_ALPHA, /* U+0012e9: ETHIOPIC SYLLABLE YU*/ - RTUNI_ALPHA, /* U+0012ea: ETHIOPIC SYLLABLE YI*/ - RTUNI_ALPHA, /* U+0012eb: ETHIOPIC SYLLABLE YAA*/ - RTUNI_ALPHA, /* U+0012ec: ETHIOPIC SYLLABLE YEE*/ - RTUNI_ALPHA, /* U+0012ed: ETHIOPIC SYLLABLE YE*/ - RTUNI_ALPHA, /* U+0012ee: ETHIOPIC SYLLABLE YO*/ - RTUNI_ALPHA, /* U+0012ef: ETHIOPIC SYLLABLE YOA*/ - RTUNI_ALPHA, /* U+0012f0: ETHIOPIC SYLLABLE DA*/ - RTUNI_ALPHA, /* U+0012f1: ETHIOPIC SYLLABLE DU*/ - RTUNI_ALPHA, /* U+0012f2: ETHIOPIC SYLLABLE DI*/ - RTUNI_ALPHA, /* U+0012f3: ETHIOPIC SYLLABLE DAA*/ - RTUNI_ALPHA, /* U+0012f4: ETHIOPIC SYLLABLE DEE*/ - RTUNI_ALPHA, /* U+0012f5: ETHIOPIC SYLLABLE DE*/ - RTUNI_ALPHA, /* U+0012f6: ETHIOPIC SYLLABLE DO*/ - RTUNI_ALPHA, /* U+0012f7: ETHIOPIC SYLLABLE DWA*/ - RTUNI_ALPHA, /* U+0012f8: ETHIOPIC SYLLABLE DDA*/ - RTUNI_ALPHA, /* U+0012f9: ETHIOPIC SYLLABLE DDU*/ - RTUNI_ALPHA, /* U+0012fa: ETHIOPIC SYLLABLE DDI*/ - RTUNI_ALPHA, /* U+0012fb: ETHIOPIC SYLLABLE DDAA*/ - RTUNI_ALPHA, /* U+0012fc: ETHIOPIC SYLLABLE DDEE*/ - RTUNI_ALPHA, /* U+0012fd: ETHIOPIC SYLLABLE DDE*/ - RTUNI_ALPHA, /* U+0012fe: ETHIOPIC SYLLABLE DDO*/ - RTUNI_ALPHA, /* U+0012ff: ETHIOPIC SYLLABLE DDWA*/ - RTUNI_ALPHA, /* U+001300: ETHIOPIC SYLLABLE JA*/ - RTUNI_ALPHA, /* U+001301: ETHIOPIC SYLLABLE JU*/ - RTUNI_ALPHA, /* U+001302: ETHIOPIC SYLLABLE JI*/ - RTUNI_ALPHA, /* U+001303: ETHIOPIC SYLLABLE JAA*/ - RTUNI_ALPHA, /* U+001304: ETHIOPIC SYLLABLE JEE*/ - RTUNI_ALPHA, /* U+001305: ETHIOPIC SYLLABLE JE*/ - RTUNI_ALPHA, /* U+001306: ETHIOPIC SYLLABLE JO*/ - RTUNI_ALPHA, /* U+001307: ETHIOPIC SYLLABLE JWA*/ - RTUNI_ALPHA, /* U+001308: ETHIOPIC SYLLABLE GA*/ - RTUNI_ALPHA, /* U+001309: ETHIOPIC SYLLABLE GU*/ - RTUNI_ALPHA, /* U+00130a: ETHIOPIC SYLLABLE GI*/ - RTUNI_ALPHA, /* U+00130b: ETHIOPIC SYLLABLE GAA*/ - RTUNI_ALPHA, /* U+00130c: ETHIOPIC SYLLABLE GEE*/ - RTUNI_ALPHA, /* U+00130d: ETHIOPIC SYLLABLE GE*/ - RTUNI_ALPHA, /* U+00130e: ETHIOPIC SYLLABLE GO*/ - RTUNI_ALPHA, /* U+00130f: ETHIOPIC SYLLABLE GOA*/ - RTUNI_ALPHA, /* U+001310: ETHIOPIC SYLLABLE GWA*/ - 0, /* U+001311: */ - RTUNI_ALPHA, /* U+001312: ETHIOPIC SYLLABLE GWI*/ - RTUNI_ALPHA, /* U+001313: ETHIOPIC SYLLABLE GWAA*/ - RTUNI_ALPHA, /* U+001314: ETHIOPIC SYLLABLE GWEE*/ - RTUNI_ALPHA, /* U+001315: ETHIOPIC SYLLABLE GWE*/ - 0, /* U+001316: */ - 0, /* U+001317: */ - RTUNI_ALPHA, /* U+001318: ETHIOPIC SYLLABLE GGA*/ - RTUNI_ALPHA, /* U+001319: ETHIOPIC SYLLABLE GGU*/ - RTUNI_ALPHA, /* U+00131a: ETHIOPIC SYLLABLE GGI*/ - RTUNI_ALPHA, /* U+00131b: ETHIOPIC SYLLABLE GGAA*/ - RTUNI_ALPHA, /* U+00131c: ETHIOPIC SYLLABLE GGEE*/ - RTUNI_ALPHA, /* U+00131d: ETHIOPIC SYLLABLE GGE*/ - RTUNI_ALPHA, /* U+00131e: ETHIOPIC SYLLABLE GGO*/ - RTUNI_ALPHA, /* U+00131f: ETHIOPIC SYLLABLE GGWAA*/ - RTUNI_ALPHA, /* U+001320: ETHIOPIC SYLLABLE THA*/ - RTUNI_ALPHA, /* U+001321: ETHIOPIC SYLLABLE THU*/ - RTUNI_ALPHA, /* U+001322: ETHIOPIC SYLLABLE THI*/ - RTUNI_ALPHA, /* U+001323: ETHIOPIC SYLLABLE THAA*/ - RTUNI_ALPHA, /* U+001324: ETHIOPIC SYLLABLE THEE*/ - RTUNI_ALPHA, /* U+001325: ETHIOPIC SYLLABLE THE*/ - RTUNI_ALPHA, /* U+001326: ETHIOPIC SYLLABLE THO*/ - RTUNI_ALPHA, /* U+001327: ETHIOPIC SYLLABLE THWA*/ - RTUNI_ALPHA, /* U+001328: ETHIOPIC SYLLABLE CHA*/ - RTUNI_ALPHA, /* U+001329: ETHIOPIC SYLLABLE CHU*/ - RTUNI_ALPHA, /* U+00132a: ETHIOPIC SYLLABLE CHI*/ - RTUNI_ALPHA, /* U+00132b: ETHIOPIC SYLLABLE CHAA*/ - RTUNI_ALPHA, /* U+00132c: ETHIOPIC SYLLABLE CHEE*/ - RTUNI_ALPHA, /* U+00132d: ETHIOPIC SYLLABLE CHE*/ - RTUNI_ALPHA, /* U+00132e: ETHIOPIC SYLLABLE CHO*/ - RTUNI_ALPHA, /* U+00132f: ETHIOPIC SYLLABLE CHWA*/ - RTUNI_ALPHA, /* U+001330: ETHIOPIC SYLLABLE PHA*/ - RTUNI_ALPHA, /* U+001331: ETHIOPIC SYLLABLE PHU*/ - RTUNI_ALPHA, /* U+001332: ETHIOPIC SYLLABLE PHI*/ - RTUNI_ALPHA, /* U+001333: ETHIOPIC SYLLABLE PHAA*/ - RTUNI_ALPHA, /* U+001334: ETHIOPIC SYLLABLE PHEE*/ - RTUNI_ALPHA, /* U+001335: ETHIOPIC SYLLABLE PHE*/ - RTUNI_ALPHA, /* U+001336: ETHIOPIC SYLLABLE PHO*/ - RTUNI_ALPHA, /* U+001337: ETHIOPIC SYLLABLE PHWA*/ - RTUNI_ALPHA, /* U+001338: ETHIOPIC SYLLABLE TSA*/ - RTUNI_ALPHA, /* U+001339: ETHIOPIC SYLLABLE TSU*/ - RTUNI_ALPHA, /* U+00133a: ETHIOPIC SYLLABLE TSI*/ - RTUNI_ALPHA, /* U+00133b: ETHIOPIC SYLLABLE TSAA*/ - RTUNI_ALPHA, /* U+00133c: ETHIOPIC SYLLABLE TSEE*/ - RTUNI_ALPHA, /* U+00133d: ETHIOPIC SYLLABLE TSE*/ - RTUNI_ALPHA, /* U+00133e: ETHIOPIC SYLLABLE TSO*/ - RTUNI_ALPHA, /* U+00133f: ETHIOPIC SYLLABLE TSWA*/ - RTUNI_ALPHA, /* U+001340: ETHIOPIC SYLLABLE TZA*/ - RTUNI_ALPHA, /* U+001341: ETHIOPIC SYLLABLE TZU*/ - RTUNI_ALPHA, /* U+001342: ETHIOPIC SYLLABLE TZI*/ - RTUNI_ALPHA, /* U+001343: ETHIOPIC SYLLABLE TZAA*/ - RTUNI_ALPHA, /* U+001344: ETHIOPIC SYLLABLE TZEE*/ - RTUNI_ALPHA, /* U+001345: ETHIOPIC SYLLABLE TZE*/ - RTUNI_ALPHA, /* U+001346: ETHIOPIC SYLLABLE TZO*/ - RTUNI_ALPHA, /* U+001347: ETHIOPIC SYLLABLE TZOA*/ - RTUNI_ALPHA, /* U+001348: ETHIOPIC SYLLABLE FA*/ - RTUNI_ALPHA, /* U+001349: ETHIOPIC SYLLABLE FU*/ - RTUNI_ALPHA, /* U+00134a: ETHIOPIC SYLLABLE FI*/ - RTUNI_ALPHA, /* U+00134b: ETHIOPIC SYLLABLE FAA*/ - RTUNI_ALPHA, /* U+00134c: ETHIOPIC SYLLABLE FEE*/ - RTUNI_ALPHA, /* U+00134d: ETHIOPIC SYLLABLE FE*/ - RTUNI_ALPHA, /* U+00134e: ETHIOPIC SYLLABLE FO*/ - RTUNI_ALPHA, /* U+00134f: ETHIOPIC SYLLABLE FWA*/ - RTUNI_ALPHA, /* U+001350: ETHIOPIC SYLLABLE PA*/ - RTUNI_ALPHA, /* U+001351: ETHIOPIC SYLLABLE PU*/ - RTUNI_ALPHA, /* U+001352: ETHIOPIC SYLLABLE PI*/ - RTUNI_ALPHA, /* U+001353: ETHIOPIC SYLLABLE PAA*/ - RTUNI_ALPHA, /* U+001354: ETHIOPIC SYLLABLE PEE*/ - RTUNI_ALPHA, /* U+001355: ETHIOPIC SYLLABLE PE*/ - RTUNI_ALPHA, /* U+001356: ETHIOPIC SYLLABLE PO*/ - RTUNI_ALPHA, /* U+001357: ETHIOPIC SYLLABLE PWA*/ - RTUNI_ALPHA, /* U+001358: ETHIOPIC SYLLABLE RYA*/ - RTUNI_ALPHA, /* U+001359: ETHIOPIC SYLLABLE MYA*/ - RTUNI_ALPHA, /* U+00135a: ETHIOPIC SYLLABLE FYA*/ - 0, /* U+00135b: */ - 0, /* U+00135c: */ - 0, /* U+00135d: */ - 0, /* U+00135e: */ - RTUNI_ALPHA, /* U+00135f: ETHIOPIC COMBINING GEMINATION MARK*/ - 0, /* U+001360: ETHIOPIC SECTION MARK*/ - 0, /* U+001361: ETHIOPIC WORDSPACE*/ - 0, /* U+001362: ETHIOPIC FULL STOP*/ - 0, /* U+001363: ETHIOPIC COMMA*/ - 0, /* U+001364: ETHIOPIC SEMICOLON*/ - 0, /* U+001365: ETHIOPIC COLON*/ - 0, /* U+001366: ETHIOPIC PREFACE COLON*/ - 0, /* U+001367: ETHIOPIC QUESTION MARK*/ - 0, /* U+001368: ETHIOPIC PARAGRAPH SEPARATOR*/ - 0, /* U+001369: ETHIOPIC DIGIT ONE*/ - 0, /* U+00136a: ETHIOPIC DIGIT TWO*/ - 0, /* U+00136b: ETHIOPIC DIGIT THREE*/ - 0, /* U+00136c: ETHIOPIC DIGIT FOUR*/ - 0, /* U+00136d: ETHIOPIC DIGIT FIVE*/ - 0, /* U+00136e: ETHIOPIC DIGIT SIX*/ - 0, /* U+00136f: ETHIOPIC DIGIT SEVEN*/ - 0, /* U+001370: ETHIOPIC DIGIT EIGHT*/ - 0, /* U+001371: ETHIOPIC DIGIT NINE*/ - 0, /* U+001372: ETHIOPIC NUMBER TEN*/ - 0, /* U+001373: ETHIOPIC NUMBER TWENTY*/ - 0, /* U+001374: ETHIOPIC NUMBER THIRTY*/ - 0, /* U+001375: ETHIOPIC NUMBER FORTY*/ - 0, /* U+001376: ETHIOPIC NUMBER FIFTY*/ - 0, /* U+001377: ETHIOPIC NUMBER SIXTY*/ - 0, /* U+001378: ETHIOPIC NUMBER SEVENTY*/ - 0, /* U+001379: ETHIOPIC NUMBER EIGHTY*/ - 0, /* U+00137a: ETHIOPIC NUMBER NINETY*/ - 0, /* U+00137b: ETHIOPIC NUMBER HUNDRED*/ - 0, /* U+00137c: ETHIOPIC NUMBER TEN THOUSAND*/ - 0, /* U+00137d: */ - 0, /* U+00137e: */ - 0, /* U+00137f: */ - RTUNI_ALPHA, /* U+001380: ETHIOPIC SYLLABLE SEBATBEIT MWA*/ - RTUNI_ALPHA, /* U+001381: ETHIOPIC SYLLABLE MWI*/ - RTUNI_ALPHA, /* U+001382: ETHIOPIC SYLLABLE MWEE*/ - RTUNI_ALPHA, /* U+001383: ETHIOPIC SYLLABLE MWE*/ - RTUNI_ALPHA, /* U+001384: ETHIOPIC SYLLABLE SEBATBEIT BWA*/ - RTUNI_ALPHA, /* U+001385: ETHIOPIC SYLLABLE BWI*/ - RTUNI_ALPHA, /* U+001386: ETHIOPIC SYLLABLE BWEE*/ - RTUNI_ALPHA, /* U+001387: ETHIOPIC SYLLABLE BWE*/ - RTUNI_ALPHA, /* U+001388: ETHIOPIC SYLLABLE SEBATBEIT FWA*/ - RTUNI_ALPHA, /* U+001389: ETHIOPIC SYLLABLE FWI*/ - RTUNI_ALPHA, /* U+00138a: ETHIOPIC SYLLABLE FWEE*/ - RTUNI_ALPHA, /* U+00138b: ETHIOPIC SYLLABLE FWE*/ - RTUNI_ALPHA, /* U+00138c: ETHIOPIC SYLLABLE SEBATBEIT PWA*/ - RTUNI_ALPHA, /* U+00138d: ETHIOPIC SYLLABLE PWI*/ - RTUNI_ALPHA, /* U+00138e: ETHIOPIC SYLLABLE PWEE*/ - RTUNI_ALPHA, /* U+00138f: ETHIOPIC SYLLABLE PWE*/ - 0, /* U+001390: ETHIOPIC TONAL MARK YIZET*/ - 0, /* U+001391: ETHIOPIC TONAL MARK DERET*/ - 0, /* U+001392: ETHIOPIC TONAL MARK RIKRIK*/ - 0, /* U+001393: ETHIOPIC TONAL MARK SHORT RIKRIK*/ - 0, /* U+001394: ETHIOPIC TONAL MARK DIFAT*/ - 0, /* U+001395: ETHIOPIC TONAL MARK KENAT*/ - 0, /* U+001396: ETHIOPIC TONAL MARK CHIRET*/ - 0, /* U+001397: ETHIOPIC TONAL MARK HIDET*/ - 0, /* U+001398: ETHIOPIC TONAL MARK DERET-HIDET*/ - 0, /* U+001399: ETHIOPIC TONAL MARK KURT*/ - 0, /* U+00139a: */ - 0, /* U+00139b: */ - 0, /* U+00139c: */ - 0, /* U+00139d: */ - 0, /* U+00139e: */ - 0, /* U+00139f: */ - RTUNI_ALPHA, /* U+0013a0: CHEROKEE LETTER A*/ - RTUNI_ALPHA, /* U+0013a1: CHEROKEE LETTER E*/ - RTUNI_ALPHA, /* U+0013a2: CHEROKEE LETTER I*/ - RTUNI_ALPHA, /* U+0013a3: CHEROKEE LETTER O*/ - RTUNI_ALPHA, /* U+0013a4: CHEROKEE LETTER U*/ - RTUNI_ALPHA, /* U+0013a5: CHEROKEE LETTER V*/ - RTUNI_ALPHA, /* U+0013a6: CHEROKEE LETTER GA*/ - RTUNI_ALPHA, /* U+0013a7: CHEROKEE LETTER KA*/ - RTUNI_ALPHA, /* U+0013a8: CHEROKEE LETTER GE*/ - RTUNI_ALPHA, /* U+0013a9: CHEROKEE LETTER GI*/ - RTUNI_ALPHA, /* U+0013aa: CHEROKEE LETTER GO*/ - RTUNI_ALPHA, /* U+0013ab: CHEROKEE LETTER GU*/ - RTUNI_ALPHA, /* U+0013ac: CHEROKEE LETTER GV*/ - RTUNI_ALPHA, /* U+0013ad: CHEROKEE LETTER HA*/ - RTUNI_ALPHA, /* U+0013ae: CHEROKEE LETTER HE*/ - RTUNI_ALPHA, /* U+0013af: CHEROKEE LETTER HI*/ - RTUNI_ALPHA, /* U+0013b0: CHEROKEE LETTER HO*/ - RTUNI_ALPHA, /* U+0013b1: CHEROKEE LETTER HU*/ - RTUNI_ALPHA, /* U+0013b2: CHEROKEE LETTER HV*/ - RTUNI_ALPHA, /* U+0013b3: CHEROKEE LETTER LA*/ - RTUNI_ALPHA, /* U+0013b4: CHEROKEE LETTER LE*/ - RTUNI_ALPHA, /* U+0013b5: CHEROKEE LETTER LI*/ - RTUNI_ALPHA, /* U+0013b6: CHEROKEE LETTER LO*/ - RTUNI_ALPHA, /* U+0013b7: CHEROKEE LETTER LU*/ - RTUNI_ALPHA, /* U+0013b8: CHEROKEE LETTER LV*/ - RTUNI_ALPHA, /* U+0013b9: CHEROKEE LETTER MA*/ - RTUNI_ALPHA, /* U+0013ba: CHEROKEE LETTER ME*/ - RTUNI_ALPHA, /* U+0013bb: CHEROKEE LETTER MI*/ - RTUNI_ALPHA, /* U+0013bc: CHEROKEE LETTER MO*/ - RTUNI_ALPHA, /* U+0013bd: CHEROKEE LETTER MU*/ - RTUNI_ALPHA, /* U+0013be: CHEROKEE LETTER NA*/ - RTUNI_ALPHA, /* U+0013bf: CHEROKEE LETTER HNA*/ - RTUNI_ALPHA, /* U+0013c0: CHEROKEE LETTER NAH*/ - RTUNI_ALPHA, /* U+0013c1: CHEROKEE LETTER NE*/ - RTUNI_ALPHA, /* U+0013c2: CHEROKEE LETTER NI*/ - RTUNI_ALPHA, /* U+0013c3: CHEROKEE LETTER NO*/ - RTUNI_ALPHA, /* U+0013c4: CHEROKEE LETTER NU*/ - RTUNI_ALPHA, /* U+0013c5: CHEROKEE LETTER NV*/ - RTUNI_ALPHA, /* U+0013c6: CHEROKEE LETTER QUA*/ - RTUNI_ALPHA, /* U+0013c7: CHEROKEE LETTER QUE*/ - RTUNI_ALPHA, /* U+0013c8: CHEROKEE LETTER QUI*/ - RTUNI_ALPHA, /* U+0013c9: CHEROKEE LETTER QUO*/ - RTUNI_ALPHA, /* U+0013ca: CHEROKEE LETTER QUU*/ - RTUNI_ALPHA, /* U+0013cb: CHEROKEE LETTER QUV*/ - RTUNI_ALPHA, /* U+0013cc: CHEROKEE LETTER SA*/ - RTUNI_ALPHA, /* U+0013cd: CHEROKEE LETTER S*/ - RTUNI_ALPHA, /* U+0013ce: CHEROKEE LETTER SE*/ - RTUNI_ALPHA, /* U+0013cf: CHEROKEE LETTER SI*/ - RTUNI_ALPHA, /* U+0013d0: CHEROKEE LETTER SO*/ - RTUNI_ALPHA, /* U+0013d1: CHEROKEE LETTER SU*/ - RTUNI_ALPHA, /* U+0013d2: CHEROKEE LETTER SV*/ - RTUNI_ALPHA, /* U+0013d3: CHEROKEE LETTER DA*/ - RTUNI_ALPHA, /* U+0013d4: CHEROKEE LETTER TA*/ - RTUNI_ALPHA, /* U+0013d5: CHEROKEE LETTER DE*/ - RTUNI_ALPHA, /* U+0013d6: CHEROKEE LETTER TE*/ - RTUNI_ALPHA, /* U+0013d7: CHEROKEE LETTER DI*/ - RTUNI_ALPHA, /* U+0013d8: CHEROKEE LETTER TI*/ - RTUNI_ALPHA, /* U+0013d9: CHEROKEE LETTER DO*/ - RTUNI_ALPHA, /* U+0013da: CHEROKEE LETTER DU*/ - RTUNI_ALPHA, /* U+0013db: CHEROKEE LETTER DV*/ - RTUNI_ALPHA, /* U+0013dc: CHEROKEE LETTER DLA*/ - RTUNI_ALPHA, /* U+0013dd: CHEROKEE LETTER TLA*/ - RTUNI_ALPHA, /* U+0013de: CHEROKEE LETTER TLE*/ - RTUNI_ALPHA, /* U+0013df: CHEROKEE LETTER TLI*/ - RTUNI_ALPHA, /* U+0013e0: CHEROKEE LETTER TLO*/ - RTUNI_ALPHA, /* U+0013e1: CHEROKEE LETTER TLU*/ - RTUNI_ALPHA, /* U+0013e2: CHEROKEE LETTER TLV*/ - RTUNI_ALPHA, /* U+0013e3: CHEROKEE LETTER TSA*/ - RTUNI_ALPHA, /* U+0013e4: CHEROKEE LETTER TSE*/ - RTUNI_ALPHA, /* U+0013e5: CHEROKEE LETTER TSI*/ - RTUNI_ALPHA, /* U+0013e6: CHEROKEE LETTER TSO*/ - RTUNI_ALPHA, /* U+0013e7: CHEROKEE LETTER TSU*/ - RTUNI_ALPHA, /* U+0013e8: CHEROKEE LETTER TSV*/ - RTUNI_ALPHA, /* U+0013e9: CHEROKEE LETTER WA*/ - RTUNI_ALPHA, /* U+0013ea: CHEROKEE LETTER WE*/ - RTUNI_ALPHA, /* U+0013eb: CHEROKEE LETTER WI*/ - RTUNI_ALPHA, /* U+0013ec: CHEROKEE LETTER WO*/ - RTUNI_ALPHA, /* U+0013ed: CHEROKEE LETTER WU*/ - RTUNI_ALPHA, /* U+0013ee: CHEROKEE LETTER WV*/ - RTUNI_ALPHA, /* U+0013ef: CHEROKEE LETTER YA*/ - RTUNI_ALPHA, /* U+0013f0: CHEROKEE LETTER YE*/ - RTUNI_ALPHA, /* U+0013f1: CHEROKEE LETTER YI*/ - RTUNI_ALPHA, /* U+0013f2: CHEROKEE LETTER YO*/ - RTUNI_ALPHA, /* U+0013f3: CHEROKEE LETTER YU*/ - RTUNI_ALPHA, /* U+0013f4: CHEROKEE LETTER YV*/ - 0, /* U+0013f5: */ - 0, /* U+0013f6: */ - 0, /* U+0013f7: */ - 0, /* U+0013f8: */ - 0, /* U+0013f9: */ - 0, /* U+0013fa: */ - 0, /* U+0013fb: */ - 0, /* U+0013fc: */ - 0, /* U+0013fd: */ - 0, /* U+0013fe: */ - 0, /* U+0013ff: */ - 0, /* U+001400: */ - RTUNI_ALPHA, /* U+001401: CANADIAN SYLLABICS E*/ - RTUNI_ALPHA, /* U+001402: CANADIAN SYLLABICS AAI*/ - RTUNI_ALPHA, /* U+001403: CANADIAN SYLLABICS I*/ - RTUNI_ALPHA, /* U+001404: CANADIAN SYLLABICS II*/ - RTUNI_ALPHA, /* U+001405: CANADIAN SYLLABICS O*/ - RTUNI_ALPHA, /* U+001406: CANADIAN SYLLABICS OO*/ - RTUNI_ALPHA, /* U+001407: CANADIAN SYLLABICS Y-CREE OO*/ - RTUNI_ALPHA, /* U+001408: CANADIAN SYLLABICS CARRIER EE*/ - RTUNI_ALPHA, /* U+001409: CANADIAN SYLLABICS CARRIER I*/ - RTUNI_ALPHA, /* U+00140a: CANADIAN SYLLABICS A*/ - RTUNI_ALPHA, /* U+00140b: CANADIAN SYLLABICS AA*/ - RTUNI_ALPHA, /* U+00140c: CANADIAN SYLLABICS WE*/ - RTUNI_ALPHA, /* U+00140d: CANADIAN SYLLABICS WEST-CREE WE*/ - RTUNI_ALPHA, /* U+00140e: CANADIAN SYLLABICS WI*/ - RTUNI_ALPHA, /* U+00140f: CANADIAN SYLLABICS WEST-CREE WI*/ - RTUNI_ALPHA, /* U+001410: CANADIAN SYLLABICS WII*/ - RTUNI_ALPHA, /* U+001411: CANADIAN SYLLABICS WEST-CREE WII*/ - RTUNI_ALPHA, /* U+001412: CANADIAN SYLLABICS WO*/ - RTUNI_ALPHA, /* U+001413: CANADIAN SYLLABICS WEST-CREE WO*/ - RTUNI_ALPHA, /* U+001414: CANADIAN SYLLABICS WOO*/ - RTUNI_ALPHA, /* U+001415: CANADIAN SYLLABICS WEST-CREE WOO*/ - RTUNI_ALPHA, /* U+001416: CANADIAN SYLLABICS NASKAPI WOO*/ - RTUNI_ALPHA, /* U+001417: CANADIAN SYLLABICS WA*/ - RTUNI_ALPHA, /* U+001418: CANADIAN SYLLABICS WEST-CREE WA*/ - RTUNI_ALPHA, /* U+001419: CANADIAN SYLLABICS WAA*/ - RTUNI_ALPHA, /* U+00141a: CANADIAN SYLLABICS WEST-CREE WAA*/ - RTUNI_ALPHA, /* U+00141b: CANADIAN SYLLABICS NASKAPI WAA*/ - RTUNI_ALPHA, /* U+00141c: CANADIAN SYLLABICS AI*/ - RTUNI_ALPHA, /* U+00141d: CANADIAN SYLLABICS Y-CREE W*/ - RTUNI_ALPHA, /* U+00141e: CANADIAN SYLLABICS GLOTTAL STOP*/ - RTUNI_ALPHA, /* U+00141f: CANADIAN SYLLABICS FINAL ACUTE*/ - RTUNI_ALPHA, /* U+001420: CANADIAN SYLLABICS FINAL GRAVE*/ - RTUNI_ALPHA, /* U+001421: CANADIAN SYLLABICS FINAL BOTTOM HALF RING*/ - RTUNI_ALPHA, /* U+001422: CANADIAN SYLLABICS FINAL TOP HALF RING*/ - RTUNI_ALPHA, /* U+001423: CANADIAN SYLLABICS FINAL RIGHT HALF RING*/ - RTUNI_ALPHA, /* U+001424: CANADIAN SYLLABICS FINAL RING*/ - RTUNI_ALPHA, /* U+001425: CANADIAN SYLLABICS FINAL DOUBLE ACUTE*/ - RTUNI_ALPHA, /* U+001426: CANADIAN SYLLABICS FINAL DOUBLE SHORT VERTICAL STROKES*/ - RTUNI_ALPHA, /* U+001427: CANADIAN SYLLABICS FINAL MIDDLE DOT*/ - RTUNI_ALPHA, /* U+001428: CANADIAN SYLLABICS FINAL SHORT HORIZONTAL STROKE*/ - RTUNI_ALPHA, /* U+001429: CANADIAN SYLLABICS FINAL PLUS*/ - RTUNI_ALPHA, /* U+00142a: CANADIAN SYLLABICS FINAL DOWN TACK*/ - RTUNI_ALPHA, /* U+00142b: CANADIAN SYLLABICS EN*/ - RTUNI_ALPHA, /* U+00142c: CANADIAN SYLLABICS IN*/ - RTUNI_ALPHA, /* U+00142d: CANADIAN SYLLABICS ON*/ - RTUNI_ALPHA, /* U+00142e: CANADIAN SYLLABICS AN*/ - RTUNI_ALPHA, /* U+00142f: CANADIAN SYLLABICS PE*/ - RTUNI_ALPHA, /* U+001430: CANADIAN SYLLABICS PAAI*/ - RTUNI_ALPHA, /* U+001431: CANADIAN SYLLABICS PI*/ - RTUNI_ALPHA, /* U+001432: CANADIAN SYLLABICS PII*/ - RTUNI_ALPHA, /* U+001433: CANADIAN SYLLABICS PO*/ - RTUNI_ALPHA, /* U+001434: CANADIAN SYLLABICS POO*/ - RTUNI_ALPHA, /* U+001435: CANADIAN SYLLABICS Y-CREE POO*/ - RTUNI_ALPHA, /* U+001436: CANADIAN SYLLABICS CARRIER HEE*/ - RTUNI_ALPHA, /* U+001437: CANADIAN SYLLABICS CARRIER HI*/ - RTUNI_ALPHA, /* U+001438: CANADIAN SYLLABICS PA*/ - RTUNI_ALPHA, /* U+001439: CANADIAN SYLLABICS PAA*/ - RTUNI_ALPHA, /* U+00143a: CANADIAN SYLLABICS PWE*/ - RTUNI_ALPHA, /* U+00143b: CANADIAN SYLLABICS WEST-CREE PWE*/ - RTUNI_ALPHA, /* U+00143c: CANADIAN SYLLABICS PWI*/ - RTUNI_ALPHA, /* U+00143d: CANADIAN SYLLABICS WEST-CREE PWI*/ - RTUNI_ALPHA, /* U+00143e: CANADIAN SYLLABICS PWII*/ - RTUNI_ALPHA, /* U+00143f: CANADIAN SYLLABICS WEST-CREE PWII*/ - RTUNI_ALPHA, /* U+001440: CANADIAN SYLLABICS PWO*/ - RTUNI_ALPHA, /* U+001441: CANADIAN SYLLABICS WEST-CREE PWO*/ - RTUNI_ALPHA, /* U+001442: CANADIAN SYLLABICS PWOO*/ - RTUNI_ALPHA, /* U+001443: CANADIAN SYLLABICS WEST-CREE PWOO*/ - RTUNI_ALPHA, /* U+001444: CANADIAN SYLLABICS PWA*/ - RTUNI_ALPHA, /* U+001445: CANADIAN SYLLABICS WEST-CREE PWA*/ - RTUNI_ALPHA, /* U+001446: CANADIAN SYLLABICS PWAA*/ - RTUNI_ALPHA, /* U+001447: CANADIAN SYLLABICS WEST-CREE PWAA*/ - RTUNI_ALPHA, /* U+001448: CANADIAN SYLLABICS Y-CREE PWAA*/ - RTUNI_ALPHA, /* U+001449: CANADIAN SYLLABICS P*/ - RTUNI_ALPHA, /* U+00144a: CANADIAN SYLLABICS WEST-CREE P*/ - RTUNI_ALPHA, /* U+00144b: CANADIAN SYLLABICS CARRIER H*/ - RTUNI_ALPHA, /* U+00144c: CANADIAN SYLLABICS TE*/ - RTUNI_ALPHA, /* U+00144d: CANADIAN SYLLABICS TAAI*/ - RTUNI_ALPHA, /* U+00144e: CANADIAN SYLLABICS TI*/ - RTUNI_ALPHA, /* U+00144f: CANADIAN SYLLABICS TII*/ - RTUNI_ALPHA, /* U+001450: CANADIAN SYLLABICS TO*/ - RTUNI_ALPHA, /* U+001451: CANADIAN SYLLABICS TOO*/ - RTUNI_ALPHA, /* U+001452: CANADIAN SYLLABICS Y-CREE TOO*/ - RTUNI_ALPHA, /* U+001453: CANADIAN SYLLABICS CARRIER DEE*/ - RTUNI_ALPHA, /* U+001454: CANADIAN SYLLABICS CARRIER DI*/ - RTUNI_ALPHA, /* U+001455: CANADIAN SYLLABICS TA*/ - RTUNI_ALPHA, /* U+001456: CANADIAN SYLLABICS TAA*/ - RTUNI_ALPHA, /* U+001457: CANADIAN SYLLABICS TWE*/ - RTUNI_ALPHA, /* U+001458: CANADIAN SYLLABICS WEST-CREE TWE*/ - RTUNI_ALPHA, /* U+001459: CANADIAN SYLLABICS TWI*/ - RTUNI_ALPHA, /* U+00145a: CANADIAN SYLLABICS WEST-CREE TWI*/ - RTUNI_ALPHA, /* U+00145b: CANADIAN SYLLABICS TWII*/ - RTUNI_ALPHA, /* U+00145c: CANADIAN SYLLABICS WEST-CREE TWII*/ - RTUNI_ALPHA, /* U+00145d: CANADIAN SYLLABICS TWO*/ - RTUNI_ALPHA, /* U+00145e: CANADIAN SYLLABICS WEST-CREE TWO*/ - RTUNI_ALPHA, /* U+00145f: CANADIAN SYLLABICS TWOO*/ - RTUNI_ALPHA, /* U+001460: CANADIAN SYLLABICS WEST-CREE TWOO*/ - RTUNI_ALPHA, /* U+001461: CANADIAN SYLLABICS TWA*/ - RTUNI_ALPHA, /* U+001462: CANADIAN SYLLABICS WEST-CREE TWA*/ - RTUNI_ALPHA, /* U+001463: CANADIAN SYLLABICS TWAA*/ - RTUNI_ALPHA, /* U+001464: CANADIAN SYLLABICS WEST-CREE TWAA*/ - RTUNI_ALPHA, /* U+001465: CANADIAN SYLLABICS NASKAPI TWAA*/ - RTUNI_ALPHA, /* U+001466: CANADIAN SYLLABICS T*/ - RTUNI_ALPHA, /* U+001467: CANADIAN SYLLABICS TTE*/ - RTUNI_ALPHA, /* U+001468: CANADIAN SYLLABICS TTI*/ - RTUNI_ALPHA, /* U+001469: CANADIAN SYLLABICS TTO*/ - RTUNI_ALPHA, /* U+00146a: CANADIAN SYLLABICS TTA*/ - RTUNI_ALPHA, /* U+00146b: CANADIAN SYLLABICS KE*/ - RTUNI_ALPHA, /* U+00146c: CANADIAN SYLLABICS KAAI*/ - RTUNI_ALPHA, /* U+00146d: CANADIAN SYLLABICS KI*/ - RTUNI_ALPHA, /* U+00146e: CANADIAN SYLLABICS KII*/ - RTUNI_ALPHA, /* U+00146f: CANADIAN SYLLABICS KO*/ - RTUNI_ALPHA, /* U+001470: CANADIAN SYLLABICS KOO*/ - RTUNI_ALPHA, /* U+001471: CANADIAN SYLLABICS Y-CREE KOO*/ - RTUNI_ALPHA, /* U+001472: CANADIAN SYLLABICS KA*/ - RTUNI_ALPHA, /* U+001473: CANADIAN SYLLABICS KAA*/ - RTUNI_ALPHA, /* U+001474: CANADIAN SYLLABICS KWE*/ - RTUNI_ALPHA, /* U+001475: CANADIAN SYLLABICS WEST-CREE KWE*/ - RTUNI_ALPHA, /* U+001476: CANADIAN SYLLABICS KWI*/ - RTUNI_ALPHA, /* U+001477: CANADIAN SYLLABICS WEST-CREE KWI*/ - RTUNI_ALPHA, /* U+001478: CANADIAN SYLLABICS KWII*/ - RTUNI_ALPHA, /* U+001479: CANADIAN SYLLABICS WEST-CREE KWII*/ - RTUNI_ALPHA, /* U+00147a: CANADIAN SYLLABICS KWO*/ - RTUNI_ALPHA, /* U+00147b: CANADIAN SYLLABICS WEST-CREE KWO*/ - RTUNI_ALPHA, /* U+00147c: CANADIAN SYLLABICS KWOO*/ - RTUNI_ALPHA, /* U+00147d: CANADIAN SYLLABICS WEST-CREE KWOO*/ - RTUNI_ALPHA, /* U+00147e: CANADIAN SYLLABICS KWA*/ - RTUNI_ALPHA, /* U+00147f: CANADIAN SYLLABICS WEST-CREE KWA*/ - RTUNI_ALPHA, /* U+001480: CANADIAN SYLLABICS KWAA*/ - RTUNI_ALPHA, /* U+001481: CANADIAN SYLLABICS WEST-CREE KWAA*/ - RTUNI_ALPHA, /* U+001482: CANADIAN SYLLABICS NASKAPI KWAA*/ - RTUNI_ALPHA, /* U+001483: CANADIAN SYLLABICS K*/ - RTUNI_ALPHA, /* U+001484: CANADIAN SYLLABICS KW*/ - RTUNI_ALPHA, /* U+001485: CANADIAN SYLLABICS SOUTH-SLAVEY KEH*/ - RTUNI_ALPHA, /* U+001486: CANADIAN SYLLABICS SOUTH-SLAVEY KIH*/ - RTUNI_ALPHA, /* U+001487: CANADIAN SYLLABICS SOUTH-SLAVEY KOH*/ - RTUNI_ALPHA, /* U+001488: CANADIAN SYLLABICS SOUTH-SLAVEY KAH*/ - RTUNI_ALPHA, /* U+001489: CANADIAN SYLLABICS CE*/ - RTUNI_ALPHA, /* U+00148a: CANADIAN SYLLABICS CAAI*/ - RTUNI_ALPHA, /* U+00148b: CANADIAN SYLLABICS CI*/ - RTUNI_ALPHA, /* U+00148c: CANADIAN SYLLABICS CII*/ - RTUNI_ALPHA, /* U+00148d: CANADIAN SYLLABICS CO*/ - RTUNI_ALPHA, /* U+00148e: CANADIAN SYLLABICS COO*/ - RTUNI_ALPHA, /* U+00148f: CANADIAN SYLLABICS Y-CREE COO*/ - RTUNI_ALPHA, /* U+001490: CANADIAN SYLLABICS CA*/ - RTUNI_ALPHA, /* U+001491: CANADIAN SYLLABICS CAA*/ - RTUNI_ALPHA, /* U+001492: CANADIAN SYLLABICS CWE*/ - RTUNI_ALPHA, /* U+001493: CANADIAN SYLLABICS WEST-CREE CWE*/ - RTUNI_ALPHA, /* U+001494: CANADIAN SYLLABICS CWI*/ - RTUNI_ALPHA, /* U+001495: CANADIAN SYLLABICS WEST-CREE CWI*/ - RTUNI_ALPHA, /* U+001496: CANADIAN SYLLABICS CWII*/ - RTUNI_ALPHA, /* U+001497: CANADIAN SYLLABICS WEST-CREE CWII*/ - RTUNI_ALPHA, /* U+001498: CANADIAN SYLLABICS CWO*/ - RTUNI_ALPHA, /* U+001499: CANADIAN SYLLABICS WEST-CREE CWO*/ - RTUNI_ALPHA, /* U+00149a: CANADIAN SYLLABICS CWOO*/ - RTUNI_ALPHA, /* U+00149b: CANADIAN SYLLABICS WEST-CREE CWOO*/ - RTUNI_ALPHA, /* U+00149c: CANADIAN SYLLABICS CWA*/ - RTUNI_ALPHA, /* U+00149d: CANADIAN SYLLABICS WEST-CREE CWA*/ - RTUNI_ALPHA, /* U+00149e: CANADIAN SYLLABICS CWAA*/ - RTUNI_ALPHA, /* U+00149f: CANADIAN SYLLABICS WEST-CREE CWAA*/ - RTUNI_ALPHA, /* U+0014a0: CANADIAN SYLLABICS NASKAPI CWAA*/ - RTUNI_ALPHA, /* U+0014a1: CANADIAN SYLLABICS C*/ - RTUNI_ALPHA, /* U+0014a2: CANADIAN SYLLABICS SAYISI TH*/ - RTUNI_ALPHA, /* U+0014a3: CANADIAN SYLLABICS ME*/ - RTUNI_ALPHA, /* U+0014a4: CANADIAN SYLLABICS MAAI*/ - RTUNI_ALPHA, /* U+0014a5: CANADIAN SYLLABICS MI*/ - RTUNI_ALPHA, /* U+0014a6: CANADIAN SYLLABICS MII*/ - RTUNI_ALPHA, /* U+0014a7: CANADIAN SYLLABICS MO*/ - RTUNI_ALPHA, /* U+0014a8: CANADIAN SYLLABICS MOO*/ - RTUNI_ALPHA, /* U+0014a9: CANADIAN SYLLABICS Y-CREE MOO*/ - RTUNI_ALPHA, /* U+0014aa: CANADIAN SYLLABICS MA*/ - RTUNI_ALPHA, /* U+0014ab: CANADIAN SYLLABICS MAA*/ - RTUNI_ALPHA, /* U+0014ac: CANADIAN SYLLABICS MWE*/ - RTUNI_ALPHA, /* U+0014ad: CANADIAN SYLLABICS WEST-CREE MWE*/ - RTUNI_ALPHA, /* U+0014ae: CANADIAN SYLLABICS MWI*/ - RTUNI_ALPHA, /* U+0014af: CANADIAN SYLLABICS WEST-CREE MWI*/ - RTUNI_ALPHA, /* U+0014b0: CANADIAN SYLLABICS MWII*/ - RTUNI_ALPHA, /* U+0014b1: CANADIAN SYLLABICS WEST-CREE MWII*/ - RTUNI_ALPHA, /* U+0014b2: CANADIAN SYLLABICS MWO*/ - RTUNI_ALPHA, /* U+0014b3: CANADIAN SYLLABICS WEST-CREE MWO*/ - RTUNI_ALPHA, /* U+0014b4: CANADIAN SYLLABICS MWOO*/ - RTUNI_ALPHA, /* U+0014b5: CANADIAN SYLLABICS WEST-CREE MWOO*/ - RTUNI_ALPHA, /* U+0014b6: CANADIAN SYLLABICS MWA*/ - RTUNI_ALPHA, /* U+0014b7: CANADIAN SYLLABICS WEST-CREE MWA*/ - RTUNI_ALPHA, /* U+0014b8: CANADIAN SYLLABICS MWAA*/ - RTUNI_ALPHA, /* U+0014b9: CANADIAN SYLLABICS WEST-CREE MWAA*/ - RTUNI_ALPHA, /* U+0014ba: CANADIAN SYLLABICS NASKAPI MWAA*/ - RTUNI_ALPHA, /* U+0014bb: CANADIAN SYLLABICS M*/ - RTUNI_ALPHA, /* U+0014bc: CANADIAN SYLLABICS WEST-CREE M*/ - RTUNI_ALPHA, /* U+0014bd: CANADIAN SYLLABICS MH*/ - RTUNI_ALPHA, /* U+0014be: CANADIAN SYLLABICS ATHAPASCAN M*/ - RTUNI_ALPHA, /* U+0014bf: CANADIAN SYLLABICS SAYISI M*/ - RTUNI_ALPHA, /* U+0014c0: CANADIAN SYLLABICS NE*/ - RTUNI_ALPHA, /* U+0014c1: CANADIAN SYLLABICS NAAI*/ - RTUNI_ALPHA, /* U+0014c2: CANADIAN SYLLABICS NI*/ - RTUNI_ALPHA, /* U+0014c3: CANADIAN SYLLABICS NII*/ - RTUNI_ALPHA, /* U+0014c4: CANADIAN SYLLABICS NO*/ - RTUNI_ALPHA, /* U+0014c5: CANADIAN SYLLABICS NOO*/ - RTUNI_ALPHA, /* U+0014c6: CANADIAN SYLLABICS Y-CREE NOO*/ - RTUNI_ALPHA, /* U+0014c7: CANADIAN SYLLABICS NA*/ - RTUNI_ALPHA, /* U+0014c8: CANADIAN SYLLABICS NAA*/ - RTUNI_ALPHA, /* U+0014c9: CANADIAN SYLLABICS NWE*/ - RTUNI_ALPHA, /* U+0014ca: CANADIAN SYLLABICS WEST-CREE NWE*/ - RTUNI_ALPHA, /* U+0014cb: CANADIAN SYLLABICS NWA*/ - RTUNI_ALPHA, /* U+0014cc: CANADIAN SYLLABICS WEST-CREE NWA*/ - RTUNI_ALPHA, /* U+0014cd: CANADIAN SYLLABICS NWAA*/ - RTUNI_ALPHA, /* U+0014ce: CANADIAN SYLLABICS WEST-CREE NWAA*/ - RTUNI_ALPHA, /* U+0014cf: CANADIAN SYLLABICS NASKAPI NWAA*/ - RTUNI_ALPHA, /* U+0014d0: CANADIAN SYLLABICS N*/ - RTUNI_ALPHA, /* U+0014d1: CANADIAN SYLLABICS CARRIER NG*/ - RTUNI_ALPHA, /* U+0014d2: CANADIAN SYLLABICS NH*/ - RTUNI_ALPHA, /* U+0014d3: CANADIAN SYLLABICS LE*/ - RTUNI_ALPHA, /* U+0014d4: CANADIAN SYLLABICS LAAI*/ - RTUNI_ALPHA, /* U+0014d5: CANADIAN SYLLABICS LI*/ - RTUNI_ALPHA, /* U+0014d6: CANADIAN SYLLABICS LII*/ - RTUNI_ALPHA, /* U+0014d7: CANADIAN SYLLABICS LO*/ - RTUNI_ALPHA, /* U+0014d8: CANADIAN SYLLABICS LOO*/ - RTUNI_ALPHA, /* U+0014d9: CANADIAN SYLLABICS Y-CREE LOO*/ - RTUNI_ALPHA, /* U+0014da: CANADIAN SYLLABICS LA*/ - RTUNI_ALPHA, /* U+0014db: CANADIAN SYLLABICS LAA*/ - RTUNI_ALPHA, /* U+0014dc: CANADIAN SYLLABICS LWE*/ - RTUNI_ALPHA, /* U+0014dd: CANADIAN SYLLABICS WEST-CREE LWE*/ - RTUNI_ALPHA, /* U+0014de: CANADIAN SYLLABICS LWI*/ - RTUNI_ALPHA, /* U+0014df: CANADIAN SYLLABICS WEST-CREE LWI*/ - RTUNI_ALPHA, /* U+0014e0: CANADIAN SYLLABICS LWII*/ - RTUNI_ALPHA, /* U+0014e1: CANADIAN SYLLABICS WEST-CREE LWII*/ - RTUNI_ALPHA, /* U+0014e2: CANADIAN SYLLABICS LWO*/ - RTUNI_ALPHA, /* U+0014e3: CANADIAN SYLLABICS WEST-CREE LWO*/ - RTUNI_ALPHA, /* U+0014e4: CANADIAN SYLLABICS LWOO*/ - RTUNI_ALPHA, /* U+0014e5: CANADIAN SYLLABICS WEST-CREE LWOO*/ - RTUNI_ALPHA, /* U+0014e6: CANADIAN SYLLABICS LWA*/ - RTUNI_ALPHA, /* U+0014e7: CANADIAN SYLLABICS WEST-CREE LWA*/ - RTUNI_ALPHA, /* U+0014e8: CANADIAN SYLLABICS LWAA*/ - RTUNI_ALPHA, /* U+0014e9: CANADIAN SYLLABICS WEST-CREE LWAA*/ - RTUNI_ALPHA, /* U+0014ea: CANADIAN SYLLABICS L*/ - RTUNI_ALPHA, /* U+0014eb: CANADIAN SYLLABICS WEST-CREE L*/ - RTUNI_ALPHA, /* U+0014ec: CANADIAN SYLLABICS MEDIAL L*/ - RTUNI_ALPHA, /* U+0014ed: CANADIAN SYLLABICS SE*/ - RTUNI_ALPHA, /* U+0014ee: CANADIAN SYLLABICS SAAI*/ - RTUNI_ALPHA, /* U+0014ef: CANADIAN SYLLABICS SI*/ - RTUNI_ALPHA, /* U+0014f0: CANADIAN SYLLABICS SII*/ - RTUNI_ALPHA, /* U+0014f1: CANADIAN SYLLABICS SO*/ - RTUNI_ALPHA, /* U+0014f2: CANADIAN SYLLABICS SOO*/ - RTUNI_ALPHA, /* U+0014f3: CANADIAN SYLLABICS Y-CREE SOO*/ - RTUNI_ALPHA, /* U+0014f4: CANADIAN SYLLABICS SA*/ - RTUNI_ALPHA, /* U+0014f5: CANADIAN SYLLABICS SAA*/ - RTUNI_ALPHA, /* U+0014f6: CANADIAN SYLLABICS SWE*/ - RTUNI_ALPHA, /* U+0014f7: CANADIAN SYLLABICS WEST-CREE SWE*/ - RTUNI_ALPHA, /* U+0014f8: CANADIAN SYLLABICS SWI*/ - RTUNI_ALPHA, /* U+0014f9: CANADIAN SYLLABICS WEST-CREE SWI*/ - RTUNI_ALPHA, /* U+0014fa: CANADIAN SYLLABICS SWII*/ - RTUNI_ALPHA, /* U+0014fb: CANADIAN SYLLABICS WEST-CREE SWII*/ - RTUNI_ALPHA, /* U+0014fc: CANADIAN SYLLABICS SWO*/ - RTUNI_ALPHA, /* U+0014fd: CANADIAN SYLLABICS WEST-CREE SWO*/ - RTUNI_ALPHA, /* U+0014fe: CANADIAN SYLLABICS SWOO*/ - RTUNI_ALPHA, /* U+0014ff: CANADIAN SYLLABICS WEST-CREE SWOO*/ - RTUNI_ALPHA, /* U+001500: CANADIAN SYLLABICS SWA*/ - RTUNI_ALPHA, /* U+001501: CANADIAN SYLLABICS WEST-CREE SWA*/ - RTUNI_ALPHA, /* U+001502: CANADIAN SYLLABICS SWAA*/ - RTUNI_ALPHA, /* U+001503: CANADIAN SYLLABICS WEST-CREE SWAA*/ - RTUNI_ALPHA, /* U+001504: CANADIAN SYLLABICS NASKAPI SWAA*/ - RTUNI_ALPHA, /* U+001505: CANADIAN SYLLABICS S*/ - RTUNI_ALPHA, /* U+001506: CANADIAN SYLLABICS ATHAPASCAN S*/ - RTUNI_ALPHA, /* U+001507: CANADIAN SYLLABICS SW*/ - RTUNI_ALPHA, /* U+001508: CANADIAN SYLLABICS BLACKFOOT S*/ - RTUNI_ALPHA, /* U+001509: CANADIAN SYLLABICS MOOSE-CREE SK*/ - RTUNI_ALPHA, /* U+00150a: CANADIAN SYLLABICS NASKAPI SKW*/ - RTUNI_ALPHA, /* U+00150b: CANADIAN SYLLABICS NASKAPI S-W*/ - RTUNI_ALPHA, /* U+00150c: CANADIAN SYLLABICS NASKAPI SPWA*/ - RTUNI_ALPHA, /* U+00150d: CANADIAN SYLLABICS NASKAPI STWA*/ - RTUNI_ALPHA, /* U+00150e: CANADIAN SYLLABICS NASKAPI SKWA*/ - RTUNI_ALPHA, /* U+00150f: CANADIAN SYLLABICS NASKAPI SCWA*/ - RTUNI_ALPHA, /* U+001510: CANADIAN SYLLABICS SHE*/ - RTUNI_ALPHA, /* U+001511: CANADIAN SYLLABICS SHI*/ - RTUNI_ALPHA, /* U+001512: CANADIAN SYLLABICS SHII*/ - RTUNI_ALPHA, /* U+001513: CANADIAN SYLLABICS SHO*/ - RTUNI_ALPHA, /* U+001514: CANADIAN SYLLABICS SHOO*/ - RTUNI_ALPHA, /* U+001515: CANADIAN SYLLABICS SHA*/ - RTUNI_ALPHA, /* U+001516: CANADIAN SYLLABICS SHAA*/ - RTUNI_ALPHA, /* U+001517: CANADIAN SYLLABICS SHWE*/ - RTUNI_ALPHA, /* U+001518: CANADIAN SYLLABICS WEST-CREE SHWE*/ - RTUNI_ALPHA, /* U+001519: CANADIAN SYLLABICS SHWI*/ - RTUNI_ALPHA, /* U+00151a: CANADIAN SYLLABICS WEST-CREE SHWI*/ - RTUNI_ALPHA, /* U+00151b: CANADIAN SYLLABICS SHWII*/ - RTUNI_ALPHA, /* U+00151c: CANADIAN SYLLABICS WEST-CREE SHWII*/ - RTUNI_ALPHA, /* U+00151d: CANADIAN SYLLABICS SHWO*/ - RTUNI_ALPHA, /* U+00151e: CANADIAN SYLLABICS WEST-CREE SHWO*/ - RTUNI_ALPHA, /* U+00151f: CANADIAN SYLLABICS SHWOO*/ - RTUNI_ALPHA, /* U+001520: CANADIAN SYLLABICS WEST-CREE SHWOO*/ - RTUNI_ALPHA, /* U+001521: CANADIAN SYLLABICS SHWA*/ - RTUNI_ALPHA, /* U+001522: CANADIAN SYLLABICS WEST-CREE SHWA*/ - RTUNI_ALPHA, /* U+001523: CANADIAN SYLLABICS SHWAA*/ - RTUNI_ALPHA, /* U+001524: CANADIAN SYLLABICS WEST-CREE SHWAA*/ - RTUNI_ALPHA, /* U+001525: CANADIAN SYLLABICS SH*/ - RTUNI_ALPHA, /* U+001526: CANADIAN SYLLABICS YE*/ - RTUNI_ALPHA, /* U+001527: CANADIAN SYLLABICS YAAI*/ - RTUNI_ALPHA, /* U+001528: CANADIAN SYLLABICS YI*/ - RTUNI_ALPHA, /* U+001529: CANADIAN SYLLABICS YII*/ - RTUNI_ALPHA, /* U+00152a: CANADIAN SYLLABICS YO*/ - RTUNI_ALPHA, /* U+00152b: CANADIAN SYLLABICS YOO*/ - RTUNI_ALPHA, /* U+00152c: CANADIAN SYLLABICS Y-CREE YOO*/ - RTUNI_ALPHA, /* U+00152d: CANADIAN SYLLABICS YA*/ - RTUNI_ALPHA, /* U+00152e: CANADIAN SYLLABICS YAA*/ - RTUNI_ALPHA, /* U+00152f: CANADIAN SYLLABICS YWE*/ - RTUNI_ALPHA, /* U+001530: CANADIAN SYLLABICS WEST-CREE YWE*/ - RTUNI_ALPHA, /* U+001531: CANADIAN SYLLABICS YWI*/ - RTUNI_ALPHA, /* U+001532: CANADIAN SYLLABICS WEST-CREE YWI*/ - RTUNI_ALPHA, /* U+001533: CANADIAN SYLLABICS YWII*/ - RTUNI_ALPHA, /* U+001534: CANADIAN SYLLABICS WEST-CREE YWII*/ - RTUNI_ALPHA, /* U+001535: CANADIAN SYLLABICS YWO*/ - RTUNI_ALPHA, /* U+001536: CANADIAN SYLLABICS WEST-CREE YWO*/ - RTUNI_ALPHA, /* U+001537: CANADIAN SYLLABICS YWOO*/ - RTUNI_ALPHA, /* U+001538: CANADIAN SYLLABICS WEST-CREE YWOO*/ - RTUNI_ALPHA, /* U+001539: CANADIAN SYLLABICS YWA*/ - RTUNI_ALPHA, /* U+00153a: CANADIAN SYLLABICS WEST-CREE YWA*/ - RTUNI_ALPHA, /* U+00153b: CANADIAN SYLLABICS YWAA*/ - RTUNI_ALPHA, /* U+00153c: CANADIAN SYLLABICS WEST-CREE YWAA*/ - RTUNI_ALPHA, /* U+00153d: CANADIAN SYLLABICS NASKAPI YWAA*/ - RTUNI_ALPHA, /* U+00153e: CANADIAN SYLLABICS Y*/ - RTUNI_ALPHA, /* U+00153f: CANADIAN SYLLABICS BIBLE-CREE Y*/ - RTUNI_ALPHA, /* U+001540: CANADIAN SYLLABICS WEST-CREE Y*/ - RTUNI_ALPHA, /* U+001541: CANADIAN SYLLABICS SAYISI YI*/ - RTUNI_ALPHA, /* U+001542: CANADIAN SYLLABICS RE*/ - RTUNI_ALPHA, /* U+001543: CANADIAN SYLLABICS R-CREE RE*/ - RTUNI_ALPHA, /* U+001544: CANADIAN SYLLABICS WEST-CREE LE*/ - RTUNI_ALPHA, /* U+001545: CANADIAN SYLLABICS RAAI*/ - RTUNI_ALPHA, /* U+001546: CANADIAN SYLLABICS RI*/ - RTUNI_ALPHA, /* U+001547: CANADIAN SYLLABICS RII*/ - RTUNI_ALPHA, /* U+001548: CANADIAN SYLLABICS RO*/ - RTUNI_ALPHA, /* U+001549: CANADIAN SYLLABICS ROO*/ - RTUNI_ALPHA, /* U+00154a: CANADIAN SYLLABICS WEST-CREE LO*/ - RTUNI_ALPHA, /* U+00154b: CANADIAN SYLLABICS RA*/ - RTUNI_ALPHA, /* U+00154c: CANADIAN SYLLABICS RAA*/ - RTUNI_ALPHA, /* U+00154d: CANADIAN SYLLABICS WEST-CREE LA*/ - RTUNI_ALPHA, /* U+00154e: CANADIAN SYLLABICS RWAA*/ - RTUNI_ALPHA, /* U+00154f: CANADIAN SYLLABICS WEST-CREE RWAA*/ - RTUNI_ALPHA, /* U+001550: CANADIAN SYLLABICS R*/ - RTUNI_ALPHA, /* U+001551: CANADIAN SYLLABICS WEST-CREE R*/ - RTUNI_ALPHA, /* U+001552: CANADIAN SYLLABICS MEDIAL R*/ - RTUNI_ALPHA, /* U+001553: CANADIAN SYLLABICS FE*/ - RTUNI_ALPHA, /* U+001554: CANADIAN SYLLABICS FAAI*/ - RTUNI_ALPHA, /* U+001555: CANADIAN SYLLABICS FI*/ - RTUNI_ALPHA, /* U+001556: CANADIAN SYLLABICS FII*/ - RTUNI_ALPHA, /* U+001557: CANADIAN SYLLABICS FO*/ - RTUNI_ALPHA, /* U+001558: CANADIAN SYLLABICS FOO*/ - RTUNI_ALPHA, /* U+001559: CANADIAN SYLLABICS FA*/ - RTUNI_ALPHA, /* U+00155a: CANADIAN SYLLABICS FAA*/ - RTUNI_ALPHA, /* U+00155b: CANADIAN SYLLABICS FWAA*/ - RTUNI_ALPHA, /* U+00155c: CANADIAN SYLLABICS WEST-CREE FWAA*/ - RTUNI_ALPHA, /* U+00155d: CANADIAN SYLLABICS F*/ - RTUNI_ALPHA, /* U+00155e: CANADIAN SYLLABICS THE*/ - RTUNI_ALPHA, /* U+00155f: CANADIAN SYLLABICS N-CREE THE*/ - RTUNI_ALPHA, /* U+001560: CANADIAN SYLLABICS THI*/ - RTUNI_ALPHA, /* U+001561: CANADIAN SYLLABICS N-CREE THI*/ - RTUNI_ALPHA, /* U+001562: CANADIAN SYLLABICS THII*/ - RTUNI_ALPHA, /* U+001563: CANADIAN SYLLABICS N-CREE THII*/ - RTUNI_ALPHA, /* U+001564: CANADIAN SYLLABICS THO*/ - RTUNI_ALPHA, /* U+001565: CANADIAN SYLLABICS THOO*/ - RTUNI_ALPHA, /* U+001566: CANADIAN SYLLABICS THA*/ - RTUNI_ALPHA, /* U+001567: CANADIAN SYLLABICS THAA*/ - RTUNI_ALPHA, /* U+001568: CANADIAN SYLLABICS THWAA*/ - RTUNI_ALPHA, /* U+001569: CANADIAN SYLLABICS WEST-CREE THWAA*/ - RTUNI_ALPHA, /* U+00156a: CANADIAN SYLLABICS TH*/ - RTUNI_ALPHA, /* U+00156b: CANADIAN SYLLABICS TTHE*/ - RTUNI_ALPHA, /* U+00156c: CANADIAN SYLLABICS TTHI*/ - RTUNI_ALPHA, /* U+00156d: CANADIAN SYLLABICS TTHO*/ - RTUNI_ALPHA, /* U+00156e: CANADIAN SYLLABICS TTHA*/ - RTUNI_ALPHA, /* U+00156f: CANADIAN SYLLABICS TTH*/ - RTUNI_ALPHA, /* U+001570: CANADIAN SYLLABICS TYE*/ - RTUNI_ALPHA, /* U+001571: CANADIAN SYLLABICS TYI*/ - RTUNI_ALPHA, /* U+001572: CANADIAN SYLLABICS TYO*/ - RTUNI_ALPHA, /* U+001573: CANADIAN SYLLABICS TYA*/ - RTUNI_ALPHA, /* U+001574: CANADIAN SYLLABICS NUNAVIK HE*/ - RTUNI_ALPHA, /* U+001575: CANADIAN SYLLABICS NUNAVIK HI*/ - RTUNI_ALPHA, /* U+001576: CANADIAN SYLLABICS NUNAVIK HII*/ - RTUNI_ALPHA, /* U+001577: CANADIAN SYLLABICS NUNAVIK HO*/ - RTUNI_ALPHA, /* U+001578: CANADIAN SYLLABICS NUNAVIK HOO*/ - RTUNI_ALPHA, /* U+001579: CANADIAN SYLLABICS NUNAVIK HA*/ - RTUNI_ALPHA, /* U+00157a: CANADIAN SYLLABICS NUNAVIK HAA*/ - RTUNI_ALPHA, /* U+00157b: CANADIAN SYLLABICS NUNAVIK H*/ - RTUNI_ALPHA, /* U+00157c: CANADIAN SYLLABICS NUNAVUT H*/ - RTUNI_ALPHA, /* U+00157d: CANADIAN SYLLABICS HK*/ - RTUNI_ALPHA, /* U+00157e: CANADIAN SYLLABICS QAAI*/ - RTUNI_ALPHA, /* U+00157f: CANADIAN SYLLABICS QI*/ - RTUNI_ALPHA, /* U+001580: CANADIAN SYLLABICS QII*/ - RTUNI_ALPHA, /* U+001581: CANADIAN SYLLABICS QO*/ - RTUNI_ALPHA, /* U+001582: CANADIAN SYLLABICS QOO*/ - RTUNI_ALPHA, /* U+001583: CANADIAN SYLLABICS QA*/ - RTUNI_ALPHA, /* U+001584: CANADIAN SYLLABICS QAA*/ - RTUNI_ALPHA, /* U+001585: CANADIAN SYLLABICS Q*/ - RTUNI_ALPHA, /* U+001586: CANADIAN SYLLABICS TLHE*/ - RTUNI_ALPHA, /* U+001587: CANADIAN SYLLABICS TLHI*/ - RTUNI_ALPHA, /* U+001588: CANADIAN SYLLABICS TLHO*/ - RTUNI_ALPHA, /* U+001589: CANADIAN SYLLABICS TLHA*/ - RTUNI_ALPHA, /* U+00158a: CANADIAN SYLLABICS WEST-CREE RE*/ - RTUNI_ALPHA, /* U+00158b: CANADIAN SYLLABICS WEST-CREE RI*/ - RTUNI_ALPHA, /* U+00158c: CANADIAN SYLLABICS WEST-CREE RO*/ - RTUNI_ALPHA, /* U+00158d: CANADIAN SYLLABICS WEST-CREE RA*/ - RTUNI_ALPHA, /* U+00158e: CANADIAN SYLLABICS NGAAI*/ - RTUNI_ALPHA, /* U+00158f: CANADIAN SYLLABICS NGI*/ - RTUNI_ALPHA, /* U+001590: CANADIAN SYLLABICS NGII*/ - RTUNI_ALPHA, /* U+001591: CANADIAN SYLLABICS NGO*/ - RTUNI_ALPHA, /* U+001592: CANADIAN SYLLABICS NGOO*/ - RTUNI_ALPHA, /* U+001593: CANADIAN SYLLABICS NGA*/ - RTUNI_ALPHA, /* U+001594: CANADIAN SYLLABICS NGAA*/ - RTUNI_ALPHA, /* U+001595: CANADIAN SYLLABICS NG*/ - RTUNI_ALPHA, /* U+001596: CANADIAN SYLLABICS NNG*/ - RTUNI_ALPHA, /* U+001597: CANADIAN SYLLABICS SAYISI SHE*/ - RTUNI_ALPHA, /* U+001598: CANADIAN SYLLABICS SAYISI SHI*/ - RTUNI_ALPHA, /* U+001599: CANADIAN SYLLABICS SAYISI SHO*/ - RTUNI_ALPHA, /* U+00159a: CANADIAN SYLLABICS SAYISI SHA*/ - RTUNI_ALPHA, /* U+00159b: CANADIAN SYLLABICS WOODS-CREE THE*/ - RTUNI_ALPHA, /* U+00159c: CANADIAN SYLLABICS WOODS-CREE THI*/ - RTUNI_ALPHA, /* U+00159d: CANADIAN SYLLABICS WOODS-CREE THO*/ - RTUNI_ALPHA, /* U+00159e: CANADIAN SYLLABICS WOODS-CREE THA*/ - RTUNI_ALPHA, /* U+00159f: CANADIAN SYLLABICS WOODS-CREE TH*/ - RTUNI_ALPHA, /* U+0015a0: CANADIAN SYLLABICS LHI*/ - RTUNI_ALPHA, /* U+0015a1: CANADIAN SYLLABICS LHII*/ - RTUNI_ALPHA, /* U+0015a2: CANADIAN SYLLABICS LHO*/ - RTUNI_ALPHA, /* U+0015a3: CANADIAN SYLLABICS LHOO*/ - RTUNI_ALPHA, /* U+0015a4: CANADIAN SYLLABICS LHA*/ - RTUNI_ALPHA, /* U+0015a5: CANADIAN SYLLABICS LHAA*/ - RTUNI_ALPHA, /* U+0015a6: CANADIAN SYLLABICS LH*/ - RTUNI_ALPHA, /* U+0015a7: CANADIAN SYLLABICS TH-CREE THE*/ - RTUNI_ALPHA, /* U+0015a8: CANADIAN SYLLABICS TH-CREE THI*/ - RTUNI_ALPHA, /* U+0015a9: CANADIAN SYLLABICS TH-CREE THII*/ - RTUNI_ALPHA, /* U+0015aa: CANADIAN SYLLABICS TH-CREE THO*/ - RTUNI_ALPHA, /* U+0015ab: CANADIAN SYLLABICS TH-CREE THOO*/ - RTUNI_ALPHA, /* U+0015ac: CANADIAN SYLLABICS TH-CREE THA*/ - RTUNI_ALPHA, /* U+0015ad: CANADIAN SYLLABICS TH-CREE THAA*/ - RTUNI_ALPHA, /* U+0015ae: CANADIAN SYLLABICS TH-CREE TH*/ - RTUNI_ALPHA, /* U+0015af: CANADIAN SYLLABICS AIVILIK B*/ - RTUNI_ALPHA, /* U+0015b0: CANADIAN SYLLABICS BLACKFOOT E*/ - RTUNI_ALPHA, /* U+0015b1: CANADIAN SYLLABICS BLACKFOOT I*/ - RTUNI_ALPHA, /* U+0015b2: CANADIAN SYLLABICS BLACKFOOT O*/ - RTUNI_ALPHA, /* U+0015b3: CANADIAN SYLLABICS BLACKFOOT A*/ - RTUNI_ALPHA, /* U+0015b4: CANADIAN SYLLABICS BLACKFOOT WE*/ - RTUNI_ALPHA, /* U+0015b5: CANADIAN SYLLABICS BLACKFOOT WI*/ - RTUNI_ALPHA, /* U+0015b6: CANADIAN SYLLABICS BLACKFOOT WO*/ - RTUNI_ALPHA, /* U+0015b7: CANADIAN SYLLABICS BLACKFOOT WA*/ - RTUNI_ALPHA, /* U+0015b8: CANADIAN SYLLABICS BLACKFOOT NE*/ - RTUNI_ALPHA, /* U+0015b9: CANADIAN SYLLABICS BLACKFOOT NI*/ - RTUNI_ALPHA, /* U+0015ba: CANADIAN SYLLABICS BLACKFOOT NO*/ - RTUNI_ALPHA, /* U+0015bb: CANADIAN SYLLABICS BLACKFOOT NA*/ - RTUNI_ALPHA, /* U+0015bc: CANADIAN SYLLABICS BLACKFOOT KE*/ - RTUNI_ALPHA, /* U+0015bd: CANADIAN SYLLABICS BLACKFOOT KI*/ - RTUNI_ALPHA, /* U+0015be: CANADIAN SYLLABICS BLACKFOOT KO*/ - RTUNI_ALPHA, /* U+0015bf: CANADIAN SYLLABICS BLACKFOOT KA*/ - RTUNI_ALPHA, /* U+0015c0: CANADIAN SYLLABICS SAYISI HE*/ - RTUNI_ALPHA, /* U+0015c1: CANADIAN SYLLABICS SAYISI HI*/ - RTUNI_ALPHA, /* U+0015c2: CANADIAN SYLLABICS SAYISI HO*/ - RTUNI_ALPHA, /* U+0015c3: CANADIAN SYLLABICS SAYISI HA*/ - RTUNI_ALPHA, /* U+0015c4: CANADIAN SYLLABICS CARRIER GHU*/ - RTUNI_ALPHA, /* U+0015c5: CANADIAN SYLLABICS CARRIER GHO*/ - RTUNI_ALPHA, /* U+0015c6: CANADIAN SYLLABICS CARRIER GHE*/ - RTUNI_ALPHA, /* U+0015c7: CANADIAN SYLLABICS CARRIER GHEE*/ - RTUNI_ALPHA, /* U+0015c8: CANADIAN SYLLABICS CARRIER GHI*/ - RTUNI_ALPHA, /* U+0015c9: CANADIAN SYLLABICS CARRIER GHA*/ - RTUNI_ALPHA, /* U+0015ca: CANADIAN SYLLABICS CARRIER RU*/ - RTUNI_ALPHA, /* U+0015cb: CANADIAN SYLLABICS CARRIER RO*/ - RTUNI_ALPHA, /* U+0015cc: CANADIAN SYLLABICS CARRIER RE*/ - RTUNI_ALPHA, /* U+0015cd: CANADIAN SYLLABICS CARRIER REE*/ - RTUNI_ALPHA, /* U+0015ce: CANADIAN SYLLABICS CARRIER RI*/ - RTUNI_ALPHA, /* U+0015cf: CANADIAN SYLLABICS CARRIER RA*/ - RTUNI_ALPHA, /* U+0015d0: CANADIAN SYLLABICS CARRIER WU*/ - RTUNI_ALPHA, /* U+0015d1: CANADIAN SYLLABICS CARRIER WO*/ - RTUNI_ALPHA, /* U+0015d2: CANADIAN SYLLABICS CARRIER WE*/ - RTUNI_ALPHA, /* U+0015d3: CANADIAN SYLLABICS CARRIER WEE*/ - RTUNI_ALPHA, /* U+0015d4: CANADIAN SYLLABICS CARRIER WI*/ - RTUNI_ALPHA, /* U+0015d5: CANADIAN SYLLABICS CARRIER WA*/ - RTUNI_ALPHA, /* U+0015d6: CANADIAN SYLLABICS CARRIER HWU*/ - RTUNI_ALPHA, /* U+0015d7: CANADIAN SYLLABICS CARRIER HWO*/ - RTUNI_ALPHA, /* U+0015d8: CANADIAN SYLLABICS CARRIER HWE*/ - RTUNI_ALPHA, /* U+0015d9: CANADIAN SYLLABICS CARRIER HWEE*/ - RTUNI_ALPHA, /* U+0015da: CANADIAN SYLLABICS CARRIER HWI*/ - RTUNI_ALPHA, /* U+0015db: CANADIAN SYLLABICS CARRIER HWA*/ - RTUNI_ALPHA, /* U+0015dc: CANADIAN SYLLABICS CARRIER THU*/ - RTUNI_ALPHA, /* U+0015dd: CANADIAN SYLLABICS CARRIER THO*/ - RTUNI_ALPHA, /* U+0015de: CANADIAN SYLLABICS CARRIER THE*/ - RTUNI_ALPHA, /* U+0015df: CANADIAN SYLLABICS CARRIER THEE*/ - RTUNI_ALPHA, /* U+0015e0: CANADIAN SYLLABICS CARRIER THI*/ - RTUNI_ALPHA, /* U+0015e1: CANADIAN SYLLABICS CARRIER THA*/ - RTUNI_ALPHA, /* U+0015e2: CANADIAN SYLLABICS CARRIER TTU*/ - RTUNI_ALPHA, /* U+0015e3: CANADIAN SYLLABICS CARRIER TTO*/ - RTUNI_ALPHA, /* U+0015e4: CANADIAN SYLLABICS CARRIER TTE*/ - RTUNI_ALPHA, /* U+0015e5: CANADIAN SYLLABICS CARRIER TTEE*/ - RTUNI_ALPHA, /* U+0015e6: CANADIAN SYLLABICS CARRIER TTI*/ - RTUNI_ALPHA, /* U+0015e7: CANADIAN SYLLABICS CARRIER TTA*/ - RTUNI_ALPHA, /* U+0015e8: CANADIAN SYLLABICS CARRIER PU*/ - RTUNI_ALPHA, /* U+0015e9: CANADIAN SYLLABICS CARRIER PO*/ - RTUNI_ALPHA, /* U+0015ea: CANADIAN SYLLABICS CARRIER PE*/ - RTUNI_ALPHA, /* U+0015eb: CANADIAN SYLLABICS CARRIER PEE*/ - RTUNI_ALPHA, /* U+0015ec: CANADIAN SYLLABICS CARRIER PI*/ - RTUNI_ALPHA, /* U+0015ed: CANADIAN SYLLABICS CARRIER PA*/ - RTUNI_ALPHA, /* U+0015ee: CANADIAN SYLLABICS CARRIER P*/ - RTUNI_ALPHA, /* U+0015ef: CANADIAN SYLLABICS CARRIER GU*/ - RTUNI_ALPHA, /* U+0015f0: CANADIAN SYLLABICS CARRIER GO*/ - RTUNI_ALPHA, /* U+0015f1: CANADIAN SYLLABICS CARRIER GE*/ - RTUNI_ALPHA, /* U+0015f2: CANADIAN SYLLABICS CARRIER GEE*/ - RTUNI_ALPHA, /* U+0015f3: CANADIAN SYLLABICS CARRIER GI*/ - RTUNI_ALPHA, /* U+0015f4: CANADIAN SYLLABICS CARRIER GA*/ - RTUNI_ALPHA, /* U+0015f5: CANADIAN SYLLABICS CARRIER KHU*/ - RTUNI_ALPHA, /* U+0015f6: CANADIAN SYLLABICS CARRIER KHO*/ - RTUNI_ALPHA, /* U+0015f7: CANADIAN SYLLABICS CARRIER KHE*/ - RTUNI_ALPHA, /* U+0015f8: CANADIAN SYLLABICS CARRIER KHEE*/ - RTUNI_ALPHA, /* U+0015f9: CANADIAN SYLLABICS CARRIER KHI*/ - RTUNI_ALPHA, /* U+0015fa: CANADIAN SYLLABICS CARRIER KHA*/ - RTUNI_ALPHA, /* U+0015fb: CANADIAN SYLLABICS CARRIER KKU*/ - RTUNI_ALPHA, /* U+0015fc: CANADIAN SYLLABICS CARRIER KKO*/ - RTUNI_ALPHA, /* U+0015fd: CANADIAN SYLLABICS CARRIER KKE*/ - RTUNI_ALPHA, /* U+0015fe: CANADIAN SYLLABICS CARRIER KKEE*/ - RTUNI_ALPHA, /* U+0015ff: CANADIAN SYLLABICS CARRIER KKI*/ - RTUNI_ALPHA, /* U+001600: CANADIAN SYLLABICS CARRIER KKA*/ - RTUNI_ALPHA, /* U+001601: CANADIAN SYLLABICS CARRIER KK*/ - RTUNI_ALPHA, /* U+001602: CANADIAN SYLLABICS CARRIER NU*/ - RTUNI_ALPHA, /* U+001603: CANADIAN SYLLABICS CARRIER NO*/ - RTUNI_ALPHA, /* U+001604: CANADIAN SYLLABICS CARRIER NE*/ - RTUNI_ALPHA, /* U+001605: CANADIAN SYLLABICS CARRIER NEE*/ - RTUNI_ALPHA, /* U+001606: CANADIAN SYLLABICS CARRIER NI*/ - RTUNI_ALPHA, /* U+001607: CANADIAN SYLLABICS CARRIER NA*/ - RTUNI_ALPHA, /* U+001608: CANADIAN SYLLABICS CARRIER MU*/ - RTUNI_ALPHA, /* U+001609: CANADIAN SYLLABICS CARRIER MO*/ - RTUNI_ALPHA, /* U+00160a: CANADIAN SYLLABICS CARRIER ME*/ - RTUNI_ALPHA, /* U+00160b: CANADIAN SYLLABICS CARRIER MEE*/ - RTUNI_ALPHA, /* U+00160c: CANADIAN SYLLABICS CARRIER MI*/ - RTUNI_ALPHA, /* U+00160d: CANADIAN SYLLABICS CARRIER MA*/ - RTUNI_ALPHA, /* U+00160e: CANADIAN SYLLABICS CARRIER YU*/ - RTUNI_ALPHA, /* U+00160f: CANADIAN SYLLABICS CARRIER YO*/ - RTUNI_ALPHA, /* U+001610: CANADIAN SYLLABICS CARRIER YE*/ - RTUNI_ALPHA, /* U+001611: CANADIAN SYLLABICS CARRIER YEE*/ - RTUNI_ALPHA, /* U+001612: CANADIAN SYLLABICS CARRIER YI*/ - RTUNI_ALPHA, /* U+001613: CANADIAN SYLLABICS CARRIER YA*/ - RTUNI_ALPHA, /* U+001614: CANADIAN SYLLABICS CARRIER JU*/ - RTUNI_ALPHA, /* U+001615: CANADIAN SYLLABICS SAYISI JU*/ - RTUNI_ALPHA, /* U+001616: CANADIAN SYLLABICS CARRIER JO*/ - RTUNI_ALPHA, /* U+001617: CANADIAN SYLLABICS CARRIER JE*/ - RTUNI_ALPHA, /* U+001618: CANADIAN SYLLABICS CARRIER JEE*/ - RTUNI_ALPHA, /* U+001619: CANADIAN SYLLABICS CARRIER JI*/ - RTUNI_ALPHA, /* U+00161a: CANADIAN SYLLABICS SAYISI JI*/ - RTUNI_ALPHA, /* U+00161b: CANADIAN SYLLABICS CARRIER JA*/ - RTUNI_ALPHA, /* U+00161c: CANADIAN SYLLABICS CARRIER JJU*/ - RTUNI_ALPHA, /* U+00161d: CANADIAN SYLLABICS CARRIER JJO*/ - RTUNI_ALPHA, /* U+00161e: CANADIAN SYLLABICS CARRIER JJE*/ - RTUNI_ALPHA, /* U+00161f: CANADIAN SYLLABICS CARRIER JJEE*/ - RTUNI_ALPHA, /* U+001620: CANADIAN SYLLABICS CARRIER JJI*/ - RTUNI_ALPHA, /* U+001621: CANADIAN SYLLABICS CARRIER JJA*/ - RTUNI_ALPHA, /* U+001622: CANADIAN SYLLABICS CARRIER LU*/ - RTUNI_ALPHA, /* U+001623: CANADIAN SYLLABICS CARRIER LO*/ - RTUNI_ALPHA, /* U+001624: CANADIAN SYLLABICS CARRIER LE*/ - RTUNI_ALPHA, /* U+001625: CANADIAN SYLLABICS CARRIER LEE*/ - RTUNI_ALPHA, /* U+001626: CANADIAN SYLLABICS CARRIER LI*/ - RTUNI_ALPHA, /* U+001627: CANADIAN SYLLABICS CARRIER LA*/ - RTUNI_ALPHA, /* U+001628: CANADIAN SYLLABICS CARRIER DLU*/ - RTUNI_ALPHA, /* U+001629: CANADIAN SYLLABICS CARRIER DLO*/ - RTUNI_ALPHA, /* U+00162a: CANADIAN SYLLABICS CARRIER DLE*/ - RTUNI_ALPHA, /* U+00162b: CANADIAN SYLLABICS CARRIER DLEE*/ - RTUNI_ALPHA, /* U+00162c: CANADIAN SYLLABICS CARRIER DLI*/ - RTUNI_ALPHA, /* U+00162d: CANADIAN SYLLABICS CARRIER DLA*/ - RTUNI_ALPHA, /* U+00162e: CANADIAN SYLLABICS CARRIER LHU*/ - RTUNI_ALPHA, /* U+00162f: CANADIAN SYLLABICS CARRIER LHO*/ - RTUNI_ALPHA, /* U+001630: CANADIAN SYLLABICS CARRIER LHE*/ - RTUNI_ALPHA, /* U+001631: CANADIAN SYLLABICS CARRIER LHEE*/ - RTUNI_ALPHA, /* U+001632: CANADIAN SYLLABICS CARRIER LHI*/ - RTUNI_ALPHA, /* U+001633: CANADIAN SYLLABICS CARRIER LHA*/ - RTUNI_ALPHA, /* U+001634: CANADIAN SYLLABICS CARRIER TLHU*/ - RTUNI_ALPHA, /* U+001635: CANADIAN SYLLABICS CARRIER TLHO*/ - RTUNI_ALPHA, /* U+001636: CANADIAN SYLLABICS CARRIER TLHE*/ - RTUNI_ALPHA, /* U+001637: CANADIAN SYLLABICS CARRIER TLHEE*/ - RTUNI_ALPHA, /* U+001638: CANADIAN SYLLABICS CARRIER TLHI*/ - RTUNI_ALPHA, /* U+001639: CANADIAN SYLLABICS CARRIER TLHA*/ - RTUNI_ALPHA, /* U+00163a: CANADIAN SYLLABICS CARRIER TLU*/ - RTUNI_ALPHA, /* U+00163b: CANADIAN SYLLABICS CARRIER TLO*/ - RTUNI_ALPHA, /* U+00163c: CANADIAN SYLLABICS CARRIER TLE*/ - RTUNI_ALPHA, /* U+00163d: CANADIAN SYLLABICS CARRIER TLEE*/ - RTUNI_ALPHA, /* U+00163e: CANADIAN SYLLABICS CARRIER TLI*/ - RTUNI_ALPHA, /* U+00163f: CANADIAN SYLLABICS CARRIER TLA*/ - RTUNI_ALPHA, /* U+001640: CANADIAN SYLLABICS CARRIER ZU*/ - RTUNI_ALPHA, /* U+001641: CANADIAN SYLLABICS CARRIER ZO*/ - RTUNI_ALPHA, /* U+001642: CANADIAN SYLLABICS CARRIER ZE*/ - RTUNI_ALPHA, /* U+001643: CANADIAN SYLLABICS CARRIER ZEE*/ - RTUNI_ALPHA, /* U+001644: CANADIAN SYLLABICS CARRIER ZI*/ - RTUNI_ALPHA, /* U+001645: CANADIAN SYLLABICS CARRIER ZA*/ - RTUNI_ALPHA, /* U+001646: CANADIAN SYLLABICS CARRIER Z*/ - RTUNI_ALPHA, /* U+001647: CANADIAN SYLLABICS CARRIER INITIAL Z*/ - RTUNI_ALPHA, /* U+001648: CANADIAN SYLLABICS CARRIER DZU*/ - RTUNI_ALPHA, /* U+001649: CANADIAN SYLLABICS CARRIER DZO*/ - RTUNI_ALPHA, /* U+00164a: CANADIAN SYLLABICS CARRIER DZE*/ - RTUNI_ALPHA, /* U+00164b: CANADIAN SYLLABICS CARRIER DZEE*/ - RTUNI_ALPHA, /* U+00164c: CANADIAN SYLLABICS CARRIER DZI*/ - RTUNI_ALPHA, /* U+00164d: CANADIAN SYLLABICS CARRIER DZA*/ - RTUNI_ALPHA, /* U+00164e: CANADIAN SYLLABICS CARRIER SU*/ - RTUNI_ALPHA, /* U+00164f: CANADIAN SYLLABICS CARRIER SO*/ - RTUNI_ALPHA, /* U+001650: CANADIAN SYLLABICS CARRIER SE*/ - RTUNI_ALPHA, /* U+001651: CANADIAN SYLLABICS CARRIER SEE*/ - RTUNI_ALPHA, /* U+001652: CANADIAN SYLLABICS CARRIER SI*/ - RTUNI_ALPHA, /* U+001653: CANADIAN SYLLABICS CARRIER SA*/ - RTUNI_ALPHA, /* U+001654: CANADIAN SYLLABICS CARRIER SHU*/ - RTUNI_ALPHA, /* U+001655: CANADIAN SYLLABICS CARRIER SHO*/ - RTUNI_ALPHA, /* U+001656: CANADIAN SYLLABICS CARRIER SHE*/ - RTUNI_ALPHA, /* U+001657: CANADIAN SYLLABICS CARRIER SHEE*/ - RTUNI_ALPHA, /* U+001658: CANADIAN SYLLABICS CARRIER SHI*/ - RTUNI_ALPHA, /* U+001659: CANADIAN SYLLABICS CARRIER SHA*/ - RTUNI_ALPHA, /* U+00165a: CANADIAN SYLLABICS CARRIER SH*/ - RTUNI_ALPHA, /* U+00165b: CANADIAN SYLLABICS CARRIER TSU*/ - RTUNI_ALPHA, /* U+00165c: CANADIAN SYLLABICS CARRIER TSO*/ - RTUNI_ALPHA, /* U+00165d: CANADIAN SYLLABICS CARRIER TSE*/ - RTUNI_ALPHA, /* U+00165e: CANADIAN SYLLABICS CARRIER TSEE*/ - RTUNI_ALPHA, /* U+00165f: CANADIAN SYLLABICS CARRIER TSI*/ - RTUNI_ALPHA, /* U+001660: CANADIAN SYLLABICS CARRIER TSA*/ - RTUNI_ALPHA, /* U+001661: CANADIAN SYLLABICS CARRIER CHU*/ - RTUNI_ALPHA, /* U+001662: CANADIAN SYLLABICS CARRIER CHO*/ - RTUNI_ALPHA, /* U+001663: CANADIAN SYLLABICS CARRIER CHE*/ - RTUNI_ALPHA, /* U+001664: CANADIAN SYLLABICS CARRIER CHEE*/ - RTUNI_ALPHA, /* U+001665: CANADIAN SYLLABICS CARRIER CHI*/ - RTUNI_ALPHA, /* U+001666: CANADIAN SYLLABICS CARRIER CHA*/ - RTUNI_ALPHA, /* U+001667: CANADIAN SYLLABICS CARRIER TTSU*/ - RTUNI_ALPHA, /* U+001668: CANADIAN SYLLABICS CARRIER TTSO*/ - RTUNI_ALPHA, /* U+001669: CANADIAN SYLLABICS CARRIER TTSE*/ - RTUNI_ALPHA, /* U+00166a: CANADIAN SYLLABICS CARRIER TTSEE*/ - RTUNI_ALPHA, /* U+00166b: CANADIAN SYLLABICS CARRIER TTSI*/ - RTUNI_ALPHA, /* U+00166c: CANADIAN SYLLABICS CARRIER TTSA*/ - 0, /* U+00166d: CANADIAN SYLLABICS CHI SIGN*/ - 0, /* U+00166e: CANADIAN SYLLABICS FULL STOP*/ - RTUNI_ALPHA, /* U+00166f: CANADIAN SYLLABICS QAI*/ - RTUNI_ALPHA, /* U+001670: CANADIAN SYLLABICS NGAI*/ - RTUNI_ALPHA, /* U+001671: CANADIAN SYLLABICS NNGI*/ - RTUNI_ALPHA, /* U+001672: CANADIAN SYLLABICS NNGII*/ - RTUNI_ALPHA, /* U+001673: CANADIAN SYLLABICS NNGO*/ - RTUNI_ALPHA, /* U+001674: CANADIAN SYLLABICS NNGOO*/ - RTUNI_ALPHA, /* U+001675: CANADIAN SYLLABICS NNGA*/ - RTUNI_ALPHA, /* U+001676: CANADIAN SYLLABICS NNGAA*/ - 0, /* U+001677: */ - 0, /* U+001678: */ - 0, /* U+001679: */ - 0, /* U+00167a: */ - 0, /* U+00167b: */ - 0, /* U+00167c: */ - 0, /* U+00167d: */ - 0, /* U+00167e: */ - 0, /* U+00167f: */ - RTUNI_WSPACE, /* U+001680: OGHAM SPACE MARK*/ - RTUNI_ALPHA, /* U+001681: OGHAM LETTER BEITH*/ - RTUNI_ALPHA, /* U+001682: OGHAM LETTER LUIS*/ - RTUNI_ALPHA, /* U+001683: OGHAM LETTER FEARN*/ - RTUNI_ALPHA, /* U+001684: OGHAM LETTER SAIL*/ - RTUNI_ALPHA, /* U+001685: OGHAM LETTER NION*/ - RTUNI_ALPHA, /* U+001686: OGHAM LETTER UATH*/ - RTUNI_ALPHA, /* U+001687: OGHAM LETTER DAIR*/ - RTUNI_ALPHA, /* U+001688: OGHAM LETTER TINNE*/ - RTUNI_ALPHA, /* U+001689: OGHAM LETTER COLL*/ - RTUNI_ALPHA, /* U+00168a: OGHAM LETTER CEIRT*/ - RTUNI_ALPHA, /* U+00168b: OGHAM LETTER MUIN*/ - RTUNI_ALPHA, /* U+00168c: OGHAM LETTER GORT*/ - RTUNI_ALPHA, /* U+00168d: OGHAM LETTER NGEADAL*/ - RTUNI_ALPHA, /* U+00168e: OGHAM LETTER STRAIF*/ - RTUNI_ALPHA, /* U+00168f: OGHAM LETTER RUIS*/ - RTUNI_ALPHA, /* U+001690: OGHAM LETTER AILM*/ - RTUNI_ALPHA, /* U+001691: OGHAM LETTER ONN*/ - RTUNI_ALPHA, /* U+001692: OGHAM LETTER UR*/ - RTUNI_ALPHA, /* U+001693: OGHAM LETTER EADHADH*/ - RTUNI_ALPHA, /* U+001694: OGHAM LETTER IODHADH*/ - RTUNI_ALPHA, /* U+001695: OGHAM LETTER EABHADH*/ - RTUNI_ALPHA, /* U+001696: OGHAM LETTER OR*/ - RTUNI_ALPHA, /* U+001697: OGHAM LETTER UILLEANN*/ - RTUNI_ALPHA, /* U+001698: OGHAM LETTER IFIN*/ - RTUNI_ALPHA, /* U+001699: OGHAM LETTER EAMHANCHOLL*/ - RTUNI_ALPHA, /* U+00169a: OGHAM LETTER PEITH*/ - 0, /* U+00169b: OGHAM FEATHER MARK*/ - 0, /* U+00169c: OGHAM REVERSED FEATHER MARK*/ - 0, /* U+00169d: */ - 0, /* U+00169e: */ - 0, /* U+00169f: */ - RTUNI_ALPHA, /* U+0016a0: RUNIC LETTER FEHU FEOH FE F*/ - RTUNI_ALPHA, /* U+0016a1: RUNIC LETTER V*/ - RTUNI_ALPHA, /* U+0016a2: RUNIC LETTER URUZ UR U*/ - RTUNI_ALPHA, /* U+0016a3: RUNIC LETTER YR*/ - RTUNI_ALPHA, /* U+0016a4: RUNIC LETTER Y*/ - RTUNI_ALPHA, /* U+0016a5: RUNIC LETTER W*/ - RTUNI_ALPHA, /* U+0016a6: RUNIC LETTER THURISAZ THURS THORN*/ - RTUNI_ALPHA, /* U+0016a7: RUNIC LETTER ETH*/ - RTUNI_ALPHA, /* U+0016a8: RUNIC LETTER ANSUZ A*/ - RTUNI_ALPHA, /* U+0016a9: RUNIC LETTER OS O*/ - RTUNI_ALPHA, /* U+0016aa: RUNIC LETTER AC A*/ - RTUNI_ALPHA, /* U+0016ab: RUNIC LETTER AESC*/ - RTUNI_ALPHA, /* U+0016ac: RUNIC LETTER LONG-BRANCH-OSS O*/ - RTUNI_ALPHA, /* U+0016ad: RUNIC LETTER SHORT-TWIG-OSS O*/ - RTUNI_ALPHA, /* U+0016ae: RUNIC LETTER O*/ - RTUNI_ALPHA, /* U+0016af: RUNIC LETTER OE*/ - RTUNI_ALPHA, /* U+0016b0: RUNIC LETTER ON*/ - RTUNI_ALPHA, /* U+0016b1: RUNIC LETTER RAIDO RAD REID R*/ - RTUNI_ALPHA, /* U+0016b2: RUNIC LETTER KAUNA*/ - RTUNI_ALPHA, /* U+0016b3: RUNIC LETTER CEN*/ - RTUNI_ALPHA, /* U+0016b4: RUNIC LETTER KAUN K*/ - RTUNI_ALPHA, /* U+0016b5: RUNIC LETTER G*/ - RTUNI_ALPHA, /* U+0016b6: RUNIC LETTER ENG*/ - RTUNI_ALPHA, /* U+0016b7: RUNIC LETTER GEBO GYFU G*/ - RTUNI_ALPHA, /* U+0016b8: RUNIC LETTER GAR*/ - RTUNI_ALPHA, /* U+0016b9: RUNIC LETTER WUNJO WYNN W*/ - RTUNI_ALPHA, /* U+0016ba: RUNIC LETTER HAGLAZ H*/ - RTUNI_ALPHA, /* U+0016bb: RUNIC LETTER HAEGL H*/ - RTUNI_ALPHA, /* U+0016bc: RUNIC LETTER LONG-BRANCH-HAGALL H*/ - RTUNI_ALPHA, /* U+0016bd: RUNIC LETTER SHORT-TWIG-HAGALL H*/ - RTUNI_ALPHA, /* U+0016be: RUNIC LETTER NAUDIZ NYD NAUD N*/ - RTUNI_ALPHA, /* U+0016bf: RUNIC LETTER SHORT-TWIG-NAUD N*/ - RTUNI_ALPHA, /* U+0016c0: RUNIC LETTER DOTTED-N*/ - RTUNI_ALPHA, /* U+0016c1: RUNIC LETTER ISAZ IS ISS I*/ - RTUNI_ALPHA, /* U+0016c2: RUNIC LETTER E*/ - RTUNI_ALPHA, /* U+0016c3: RUNIC LETTER JERAN J*/ - RTUNI_ALPHA, /* U+0016c4: RUNIC LETTER GER*/ - RTUNI_ALPHA, /* U+0016c5: RUNIC LETTER LONG-BRANCH-AR AE*/ - RTUNI_ALPHA, /* U+0016c6: RUNIC LETTER SHORT-TWIG-AR A*/ - RTUNI_ALPHA, /* U+0016c7: RUNIC LETTER IWAZ EOH*/ - RTUNI_ALPHA, /* U+0016c8: RUNIC LETTER PERTHO PEORTH P*/ - RTUNI_ALPHA, /* U+0016c9: RUNIC LETTER ALGIZ EOLHX*/ - RTUNI_ALPHA, /* U+0016ca: RUNIC LETTER SOWILO S*/ - RTUNI_ALPHA, /* U+0016cb: RUNIC LETTER SIGEL LONG-BRANCH-SOL S*/ - RTUNI_ALPHA, /* U+0016cc: RUNIC LETTER SHORT-TWIG-SOL S*/ - RTUNI_ALPHA, /* U+0016cd: RUNIC LETTER C*/ - RTUNI_ALPHA, /* U+0016ce: RUNIC LETTER Z*/ - RTUNI_ALPHA, /* U+0016cf: RUNIC LETTER TIWAZ TIR TYR T*/ - RTUNI_ALPHA, /* U+0016d0: RUNIC LETTER SHORT-TWIG-TYR T*/ - RTUNI_ALPHA, /* U+0016d1: RUNIC LETTER D*/ - RTUNI_ALPHA, /* U+0016d2: RUNIC LETTER BERKANAN BEORC BJARKAN B*/ - RTUNI_ALPHA, /* U+0016d3: RUNIC LETTER SHORT-TWIG-BJARKAN B*/ - RTUNI_ALPHA, /* U+0016d4: RUNIC LETTER DOTTED-P*/ - RTUNI_ALPHA, /* U+0016d5: RUNIC LETTER OPEN-P*/ - RTUNI_ALPHA, /* U+0016d6: RUNIC LETTER EHWAZ EH E*/ - RTUNI_ALPHA, /* U+0016d7: RUNIC LETTER MANNAZ MAN M*/ - RTUNI_ALPHA, /* U+0016d8: RUNIC LETTER LONG-BRANCH-MADR M*/ - RTUNI_ALPHA, /* U+0016d9: RUNIC LETTER SHORT-TWIG-MADR M*/ - RTUNI_ALPHA, /* U+0016da: RUNIC LETTER LAUKAZ LAGU LOGR L*/ - RTUNI_ALPHA, /* U+0016db: RUNIC LETTER DOTTED-L*/ - RTUNI_ALPHA, /* U+0016dc: RUNIC LETTER INGWAZ*/ - RTUNI_ALPHA, /* U+0016dd: RUNIC LETTER ING*/ - RTUNI_ALPHA, /* U+0016de: RUNIC LETTER DAGAZ DAEG D*/ - RTUNI_ALPHA, /* U+0016df: RUNIC LETTER OTHALAN ETHEL O*/ - RTUNI_ALPHA, /* U+0016e0: RUNIC LETTER EAR*/ - RTUNI_ALPHA, /* U+0016e1: RUNIC LETTER IOR*/ - RTUNI_ALPHA, /* U+0016e2: RUNIC LETTER CWEORTH*/ - RTUNI_ALPHA, /* U+0016e3: RUNIC LETTER CALC*/ - RTUNI_ALPHA, /* U+0016e4: RUNIC LETTER CEALC*/ - RTUNI_ALPHA, /* U+0016e5: RUNIC LETTER STAN*/ - RTUNI_ALPHA, /* U+0016e6: RUNIC LETTER LONG-BRANCH-YR*/ - RTUNI_ALPHA, /* U+0016e7: RUNIC LETTER SHORT-TWIG-YR*/ - RTUNI_ALPHA, /* U+0016e8: RUNIC LETTER ICELANDIC-YR*/ - RTUNI_ALPHA, /* U+0016e9: RUNIC LETTER Q*/ - RTUNI_ALPHA, /* U+0016ea: RUNIC LETTER X*/ - 0, /* U+0016eb: RUNIC SINGLE PUNCTUATION*/ - 0, /* U+0016ec: RUNIC MULTIPLE PUNCTUATION*/ - 0, /* U+0016ed: RUNIC CROSS PUNCTUATION*/ - RTUNI_ALPHA, /* U+0016ee: RUNIC ARLAUG SYMBOL*/ - RTUNI_ALPHA, /* U+0016ef: RUNIC TVIMADUR SYMBOL*/ - RTUNI_ALPHA, /* U+0016f0: RUNIC BELGTHOR SYMBOL*/ - 0, /* U+0016f1: */ - 0, /* U+0016f2: */ - 0, /* U+0016f3: */ - 0, /* U+0016f4: */ - 0, /* U+0016f5: */ - 0, /* U+0016f6: */ - 0, /* U+0016f7: */ - 0, /* U+0016f8: */ - 0, /* U+0016f9: */ - 0, /* U+0016fa: */ - 0, /* U+0016fb: */ - 0, /* U+0016fc: */ - 0, /* U+0016fd: */ - 0, /* U+0016fe: */ - 0, /* U+0016ff: */ - RTUNI_ALPHA, /* U+001700: TAGALOG LETTER A*/ - RTUNI_ALPHA, /* U+001701: TAGALOG LETTER I*/ - RTUNI_ALPHA, /* U+001702: TAGALOG LETTER U*/ - RTUNI_ALPHA, /* U+001703: TAGALOG LETTER KA*/ - RTUNI_ALPHA, /* U+001704: TAGALOG LETTER GA*/ - RTUNI_ALPHA, /* U+001705: TAGALOG LETTER NGA*/ - RTUNI_ALPHA, /* U+001706: TAGALOG LETTER TA*/ - RTUNI_ALPHA, /* U+001707: TAGALOG LETTER DA*/ - RTUNI_ALPHA, /* U+001708: TAGALOG LETTER NA*/ - RTUNI_ALPHA, /* U+001709: TAGALOG LETTER PA*/ - RTUNI_ALPHA, /* U+00170a: TAGALOG LETTER BA*/ - RTUNI_ALPHA, /* U+00170b: TAGALOG LETTER MA*/ - RTUNI_ALPHA, /* U+00170c: TAGALOG LETTER YA*/ - 0, /* U+00170d: */ - RTUNI_ALPHA, /* U+00170e: TAGALOG LETTER LA*/ - RTUNI_ALPHA, /* U+00170f: TAGALOG LETTER WA*/ - RTUNI_ALPHA, /* U+001710: TAGALOG LETTER SA*/ - RTUNI_ALPHA, /* U+001711: TAGALOG LETTER HA*/ - RTUNI_ALPHA, /* U+001712: TAGALOG VOWEL SIGN I*/ - RTUNI_ALPHA, /* U+001713: TAGALOG VOWEL SIGN U*/ - 0, /* U+001714: TAGALOG SIGN VIRAMA*/ - 0, /* U+001715: */ - 0, /* U+001716: */ - 0, /* U+001717: */ - 0, /* U+001718: */ - 0, /* U+001719: */ - 0, /* U+00171a: */ - 0, /* U+00171b: */ - 0, /* U+00171c: */ - 0, /* U+00171d: */ - 0, /* U+00171e: */ - 0, /* U+00171f: */ - RTUNI_ALPHA, /* U+001720: HANUNOO LETTER A*/ - RTUNI_ALPHA, /* U+001721: HANUNOO LETTER I*/ - RTUNI_ALPHA, /* U+001722: HANUNOO LETTER U*/ - RTUNI_ALPHA, /* U+001723: HANUNOO LETTER KA*/ - RTUNI_ALPHA, /* U+001724: HANUNOO LETTER GA*/ - RTUNI_ALPHA, /* U+001725: HANUNOO LETTER NGA*/ - RTUNI_ALPHA, /* U+001726: HANUNOO LETTER TA*/ - RTUNI_ALPHA, /* U+001727: HANUNOO LETTER DA*/ - RTUNI_ALPHA, /* U+001728: HANUNOO LETTER NA*/ - RTUNI_ALPHA, /* U+001729: HANUNOO LETTER PA*/ - RTUNI_ALPHA, /* U+00172a: HANUNOO LETTER BA*/ - RTUNI_ALPHA, /* U+00172b: HANUNOO LETTER MA*/ - RTUNI_ALPHA, /* U+00172c: HANUNOO LETTER YA*/ - RTUNI_ALPHA, /* U+00172d: HANUNOO LETTER RA*/ - RTUNI_ALPHA, /* U+00172e: HANUNOO LETTER LA*/ - RTUNI_ALPHA, /* U+00172f: HANUNOO LETTER WA*/ - RTUNI_ALPHA, /* U+001730: HANUNOO LETTER SA*/ - RTUNI_ALPHA, /* U+001731: HANUNOO LETTER HA*/ - RTUNI_ALPHA, /* U+001732: HANUNOO VOWEL SIGN I*/ - RTUNI_ALPHA, /* U+001733: HANUNOO VOWEL SIGN U*/ - 0, /* U+001734: HANUNOO SIGN PAMUDPOD*/ - 0, /* U+001735: PHILIPPINE SINGLE PUNCTUATION*/ - 0, /* U+001736: PHILIPPINE DOUBLE PUNCTUATION*/ - 0, /* U+001737: */ - 0, /* U+001738: */ - 0, /* U+001739: */ - 0, /* U+00173a: */ - 0, /* U+00173b: */ - 0, /* U+00173c: */ - 0, /* U+00173d: */ - 0, /* U+00173e: */ - 0, /* U+00173f: */ - RTUNI_ALPHA, /* U+001740: BUHID LETTER A*/ - RTUNI_ALPHA, /* U+001741: BUHID LETTER I*/ - RTUNI_ALPHA, /* U+001742: BUHID LETTER U*/ - RTUNI_ALPHA, /* U+001743: BUHID LETTER KA*/ - RTUNI_ALPHA, /* U+001744: BUHID LETTER GA*/ - RTUNI_ALPHA, /* U+001745: BUHID LETTER NGA*/ - RTUNI_ALPHA, /* U+001746: BUHID LETTER TA*/ - RTUNI_ALPHA, /* U+001747: BUHID LETTER DA*/ - RTUNI_ALPHA, /* U+001748: BUHID LETTER NA*/ - RTUNI_ALPHA, /* U+001749: BUHID LETTER PA*/ - RTUNI_ALPHA, /* U+00174a: BUHID LETTER BA*/ - RTUNI_ALPHA, /* U+00174b: BUHID LETTER MA*/ - RTUNI_ALPHA, /* U+00174c: BUHID LETTER YA*/ - RTUNI_ALPHA, /* U+00174d: BUHID LETTER RA*/ - RTUNI_ALPHA, /* U+00174e: BUHID LETTER LA*/ - RTUNI_ALPHA, /* U+00174f: BUHID LETTER WA*/ - RTUNI_ALPHA, /* U+001750: BUHID LETTER SA*/ - RTUNI_ALPHA, /* U+001751: BUHID LETTER HA*/ - RTUNI_ALPHA, /* U+001752: BUHID VOWEL SIGN I*/ - RTUNI_ALPHA, /* U+001753: BUHID VOWEL SIGN U*/ - 0, /* U+001754: */ - 0, /* U+001755: */ - 0, /* U+001756: */ - 0, /* U+001757: */ - 0, /* U+001758: */ - 0, /* U+001759: */ - 0, /* U+00175a: */ - 0, /* U+00175b: */ - 0, /* U+00175c: */ - 0, /* U+00175d: */ - 0, /* U+00175e: */ - 0, /* U+00175f: */ - RTUNI_ALPHA, /* U+001760: TAGBANWA LETTER A*/ - RTUNI_ALPHA, /* U+001761: TAGBANWA LETTER I*/ - RTUNI_ALPHA, /* U+001762: TAGBANWA LETTER U*/ - RTUNI_ALPHA, /* U+001763: TAGBANWA LETTER KA*/ - RTUNI_ALPHA, /* U+001764: TAGBANWA LETTER GA*/ - RTUNI_ALPHA, /* U+001765: TAGBANWA LETTER NGA*/ - RTUNI_ALPHA, /* U+001766: TAGBANWA LETTER TA*/ - RTUNI_ALPHA, /* U+001767: TAGBANWA LETTER DA*/ - RTUNI_ALPHA, /* U+001768: TAGBANWA LETTER NA*/ - RTUNI_ALPHA, /* U+001769: TAGBANWA LETTER PA*/ - RTUNI_ALPHA, /* U+00176a: TAGBANWA LETTER BA*/ - RTUNI_ALPHA, /* U+00176b: TAGBANWA LETTER MA*/ - RTUNI_ALPHA, /* U+00176c: TAGBANWA LETTER YA*/ - 0, /* U+00176d: */ - RTUNI_ALPHA, /* U+00176e: TAGBANWA LETTER LA*/ - RTUNI_ALPHA, /* U+00176f: TAGBANWA LETTER WA*/ - RTUNI_ALPHA, /* U+001770: TAGBANWA LETTER SA*/ - 0, /* U+001771: */ - RTUNI_ALPHA, /* U+001772: TAGBANWA VOWEL SIGN I*/ - RTUNI_ALPHA, /* U+001773: TAGBANWA VOWEL SIGN U*/ - 0, /* U+001774: */ - 0, /* U+001775: */ - 0, /* U+001776: */ - 0, /* U+001777: */ - 0, /* U+001778: */ - 0, /* U+001779: */ - 0, /* U+00177a: */ - 0, /* U+00177b: */ - 0, /* U+00177c: */ - 0, /* U+00177d: */ - 0, /* U+00177e: */ - 0, /* U+00177f: */ - RTUNI_ALPHA, /* U+001780: KHMER LETTER KA*/ - RTUNI_ALPHA, /* U+001781: KHMER LETTER KHA*/ - RTUNI_ALPHA, /* U+001782: KHMER LETTER KO*/ - RTUNI_ALPHA, /* U+001783: KHMER LETTER KHO*/ - RTUNI_ALPHA, /* U+001784: KHMER LETTER NGO*/ - RTUNI_ALPHA, /* U+001785: KHMER LETTER CA*/ - RTUNI_ALPHA, /* U+001786: KHMER LETTER CHA*/ - RTUNI_ALPHA, /* U+001787: KHMER LETTER CO*/ - RTUNI_ALPHA, /* U+001788: KHMER LETTER CHO*/ - RTUNI_ALPHA, /* U+001789: KHMER LETTER NYO*/ - RTUNI_ALPHA, /* U+00178a: KHMER LETTER DA*/ - RTUNI_ALPHA, /* U+00178b: KHMER LETTER TTHA*/ - RTUNI_ALPHA, /* U+00178c: KHMER LETTER DO*/ - RTUNI_ALPHA, /* U+00178d: KHMER LETTER TTHO*/ - RTUNI_ALPHA, /* U+00178e: KHMER LETTER NNO*/ - RTUNI_ALPHA, /* U+00178f: KHMER LETTER TA*/ - RTUNI_ALPHA, /* U+001790: KHMER LETTER THA*/ - RTUNI_ALPHA, /* U+001791: KHMER LETTER TO*/ - RTUNI_ALPHA, /* U+001792: KHMER LETTER THO*/ - RTUNI_ALPHA, /* U+001793: KHMER LETTER NO*/ - RTUNI_ALPHA, /* U+001794: KHMER LETTER BA*/ - RTUNI_ALPHA, /* U+001795: KHMER LETTER PHA*/ - RTUNI_ALPHA, /* U+001796: KHMER LETTER PO*/ - RTUNI_ALPHA, /* U+001797: KHMER LETTER PHO*/ - RTUNI_ALPHA, /* U+001798: KHMER LETTER MO*/ - RTUNI_ALPHA, /* U+001799: KHMER LETTER YO*/ - RTUNI_ALPHA, /* U+00179a: KHMER LETTER RO*/ - RTUNI_ALPHA, /* U+00179b: KHMER LETTER LO*/ - RTUNI_ALPHA, /* U+00179c: KHMER LETTER VO*/ - RTUNI_ALPHA, /* U+00179d: KHMER LETTER SHA*/ - RTUNI_ALPHA, /* U+00179e: KHMER LETTER SSO*/ - RTUNI_ALPHA, /* U+00179f: KHMER LETTER SA*/ - RTUNI_ALPHA, /* U+0017a0: KHMER LETTER HA*/ - RTUNI_ALPHA, /* U+0017a1: KHMER LETTER LA*/ - RTUNI_ALPHA, /* U+0017a2: KHMER LETTER QA*/ - RTUNI_ALPHA, /* U+0017a3: KHMER INDEPENDENT VOWEL QAQ*/ - RTUNI_ALPHA, /* U+0017a4: KHMER INDEPENDENT VOWEL QAA*/ - RTUNI_ALPHA, /* U+0017a5: KHMER INDEPENDENT VOWEL QI*/ - RTUNI_ALPHA, /* U+0017a6: KHMER INDEPENDENT VOWEL QII*/ - RTUNI_ALPHA, /* U+0017a7: KHMER INDEPENDENT VOWEL QU*/ - RTUNI_ALPHA, /* U+0017a8: KHMER INDEPENDENT VOWEL QUK*/ - RTUNI_ALPHA, /* U+0017a9: KHMER INDEPENDENT VOWEL QUU*/ - RTUNI_ALPHA, /* U+0017aa: KHMER INDEPENDENT VOWEL QUUV*/ - RTUNI_ALPHA, /* U+0017ab: KHMER INDEPENDENT VOWEL RY*/ - RTUNI_ALPHA, /* U+0017ac: KHMER INDEPENDENT VOWEL RYY*/ - RTUNI_ALPHA, /* U+0017ad: KHMER INDEPENDENT VOWEL LY*/ - RTUNI_ALPHA, /* U+0017ae: KHMER INDEPENDENT VOWEL LYY*/ - RTUNI_ALPHA, /* U+0017af: KHMER INDEPENDENT VOWEL QE*/ - RTUNI_ALPHA, /* U+0017b0: KHMER INDEPENDENT VOWEL QAI*/ - RTUNI_ALPHA, /* U+0017b1: KHMER INDEPENDENT VOWEL QOO TYPE ONE*/ - RTUNI_ALPHA, /* U+0017b2: KHMER INDEPENDENT VOWEL QOO TYPE TWO*/ - RTUNI_ALPHA, /* U+0017b3: KHMER INDEPENDENT VOWEL QAU*/ - 0, /* U+0017b4: KHMER VOWEL INHERENT AQ*/ - 0, /* U+0017b5: KHMER VOWEL INHERENT AA*/ - RTUNI_ALPHA, /* U+0017b6: KHMER VOWEL SIGN AA*/ - RTUNI_ALPHA, /* U+0017b7: KHMER VOWEL SIGN I*/ - RTUNI_ALPHA, /* U+0017b8: KHMER VOWEL SIGN II*/ - RTUNI_ALPHA, /* U+0017b9: KHMER VOWEL SIGN Y*/ - RTUNI_ALPHA, /* U+0017ba: KHMER VOWEL SIGN YY*/ - RTUNI_ALPHA, /* U+0017bb: KHMER VOWEL SIGN U*/ - RTUNI_ALPHA, /* U+0017bc: KHMER VOWEL SIGN UU*/ - RTUNI_ALPHA, /* U+0017bd: KHMER VOWEL SIGN UA*/ - RTUNI_ALPHA, /* U+0017be: KHMER VOWEL SIGN OE*/ - RTUNI_ALPHA, /* U+0017bf: KHMER VOWEL SIGN YA*/ - RTUNI_ALPHA, /* U+0017c0: KHMER VOWEL SIGN IE*/ - RTUNI_ALPHA, /* U+0017c1: KHMER VOWEL SIGN E*/ - RTUNI_ALPHA, /* U+0017c2: KHMER VOWEL SIGN AE*/ - RTUNI_ALPHA, /* U+0017c3: KHMER VOWEL SIGN AI*/ - RTUNI_ALPHA, /* U+0017c4: KHMER VOWEL SIGN OO*/ - RTUNI_ALPHA, /* U+0017c5: KHMER VOWEL SIGN AU*/ - RTUNI_ALPHA, /* U+0017c6: KHMER SIGN NIKAHIT*/ - RTUNI_ALPHA, /* U+0017c7: KHMER SIGN REAHMUK*/ - RTUNI_ALPHA, /* U+0017c8: KHMER SIGN YUUKALEAPINTU*/ - 0, /* U+0017c9: KHMER SIGN MUUSIKATOAN*/ - 0, /* U+0017ca: KHMER SIGN TRIISAP*/ - 0, /* U+0017cb: KHMER SIGN BANTOC*/ - 0, /* U+0017cc: KHMER SIGN ROBAT*/ - 0, /* U+0017cd: KHMER SIGN TOANDAKHIAT*/ - 0, /* U+0017ce: KHMER SIGN KAKABAT*/ - 0, /* U+0017cf: KHMER SIGN AHSDA*/ - 0, /* U+0017d0: KHMER SIGN SAMYOK SANNYA*/ - 0, /* U+0017d1: KHMER SIGN VIRIAM*/ - 0, /* U+0017d2: KHMER SIGN COENG*/ - 0, /* U+0017d3: KHMER SIGN BATHAMASAT*/ - 0, /* U+0017d4: KHMER SIGN KHAN*/ - 0, /* U+0017d5: KHMER SIGN BARIYOOSAN*/ - 0, /* U+0017d6: KHMER SIGN CAMNUC PII KUUH*/ - RTUNI_ALPHA, /* U+0017d7: KHMER SIGN LEK TOO*/ - 0, /* U+0017d8: KHMER SIGN BEYYAL*/ - 0, /* U+0017d9: KHMER SIGN PHNAEK MUAN*/ - 0, /* U+0017da: KHMER SIGN KOOMUUT*/ - 0, /* U+0017db: KHMER CURRENCY SYMBOL RIEL*/ - RTUNI_ALPHA, /* U+0017dc: KHMER SIGN AVAKRAHASANYA*/ - 0, /* U+0017dd: KHMER SIGN ATTHACAN*/ - 0, /* U+0017de: */ - 0, /* U+0017df: */ - RTUNI_DDIGIT, /* U+0017e0: KHMER DIGIT ZERO*/ - RTUNI_DDIGIT, /* U+0017e1: KHMER DIGIT ONE*/ - RTUNI_DDIGIT, /* U+0017e2: KHMER DIGIT TWO*/ - RTUNI_DDIGIT, /* U+0017e3: KHMER DIGIT THREE*/ - RTUNI_DDIGIT, /* U+0017e4: KHMER DIGIT FOUR*/ - RTUNI_DDIGIT, /* U+0017e5: KHMER DIGIT FIVE*/ - RTUNI_DDIGIT, /* U+0017e6: KHMER DIGIT SIX*/ - RTUNI_DDIGIT, /* U+0017e7: KHMER DIGIT SEVEN*/ - RTUNI_DDIGIT, /* U+0017e8: KHMER DIGIT EIGHT*/ - RTUNI_DDIGIT, /* U+0017e9: KHMER DIGIT NINE*/ - 0, /* U+0017ea: */ - 0, /* U+0017eb: */ - 0, /* U+0017ec: */ - 0, /* U+0017ed: */ - 0, /* U+0017ee: */ - 0, /* U+0017ef: */ - 0, /* U+0017f0: KHMER SYMBOL LEK ATTAK SON*/ - 0, /* U+0017f1: KHMER SYMBOL LEK ATTAK MUOY*/ - 0, /* U+0017f2: KHMER SYMBOL LEK ATTAK PII*/ - 0, /* U+0017f3: KHMER SYMBOL LEK ATTAK BEI*/ - 0, /* U+0017f4: KHMER SYMBOL LEK ATTAK BUON*/ - 0, /* U+0017f5: KHMER SYMBOL LEK ATTAK PRAM*/ - 0, /* U+0017f6: KHMER SYMBOL LEK ATTAK PRAM-MUOY*/ - 0, /* U+0017f7: KHMER SYMBOL LEK ATTAK PRAM-PII*/ - 0, /* U+0017f8: KHMER SYMBOL LEK ATTAK PRAM-BEI*/ - 0, /* U+0017f9: KHMER SYMBOL LEK ATTAK PRAM-BUON*/ - 0, /* U+0017fa: */ - 0, /* U+0017fb: */ - 0, /* U+0017fc: */ - 0, /* U+0017fd: */ - 0, /* U+0017fe: */ - 0, /* U+0017ff: */ - 0, /* U+001800: MONGOLIAN BIRGA*/ - 0, /* U+001801: MONGOLIAN ELLIPSIS*/ - 0, /* U+001802: MONGOLIAN COMMA*/ - 0, /* U+001803: MONGOLIAN FULL STOP*/ - 0, /* U+001804: MONGOLIAN COLON*/ - 0, /* U+001805: MONGOLIAN FOUR DOTS*/ - 0, /* U+001806: MONGOLIAN TODO SOFT HYPHEN*/ - 0, /* U+001807: MONGOLIAN SIBE SYLLABLE BOUNDARY MARKER*/ - 0, /* U+001808: MONGOLIAN MANCHU COMMA*/ - 0, /* U+001809: MONGOLIAN MANCHU FULL STOP*/ - 0, /* U+00180a: MONGOLIAN NIRUGU*/ - 0, /* U+00180b: MONGOLIAN FREE VARIATION SELECTOR ONE*/ - 0, /* U+00180c: MONGOLIAN FREE VARIATION SELECTOR TWO*/ - 0, /* U+00180d: MONGOLIAN FREE VARIATION SELECTOR THREE*/ - RTUNI_WSPACE, /* U+00180e: MONGOLIAN VOWEL SEPARATOR*/ - 0, /* U+00180f: */ - RTUNI_DDIGIT, /* U+001810: MONGOLIAN DIGIT ZERO*/ - RTUNI_DDIGIT, /* U+001811: MONGOLIAN DIGIT ONE*/ - RTUNI_DDIGIT, /* U+001812: MONGOLIAN DIGIT TWO*/ - RTUNI_DDIGIT, /* U+001813: MONGOLIAN DIGIT THREE*/ - RTUNI_DDIGIT, /* U+001814: MONGOLIAN DIGIT FOUR*/ - RTUNI_DDIGIT, /* U+001815: MONGOLIAN DIGIT FIVE*/ - RTUNI_DDIGIT, /* U+001816: MONGOLIAN DIGIT SIX*/ - RTUNI_DDIGIT, /* U+001817: MONGOLIAN DIGIT SEVEN*/ - RTUNI_DDIGIT, /* U+001818: MONGOLIAN DIGIT EIGHT*/ - RTUNI_DDIGIT, /* U+001819: MONGOLIAN DIGIT NINE*/ - 0, /* U+00181a: */ - 0, /* U+00181b: */ - 0, /* U+00181c: */ - 0, /* U+00181d: */ - 0, /* U+00181e: */ - 0, /* U+00181f: */ - RTUNI_ALPHA, /* U+001820: MONGOLIAN LETTER A*/ - RTUNI_ALPHA, /* U+001821: MONGOLIAN LETTER E*/ - RTUNI_ALPHA, /* U+001822: MONGOLIAN LETTER I*/ - RTUNI_ALPHA, /* U+001823: MONGOLIAN LETTER O*/ - RTUNI_ALPHA, /* U+001824: MONGOLIAN LETTER U*/ - RTUNI_ALPHA, /* U+001825: MONGOLIAN LETTER OE*/ - RTUNI_ALPHA, /* U+001826: MONGOLIAN LETTER UE*/ - RTUNI_ALPHA, /* U+001827: MONGOLIAN LETTER EE*/ - RTUNI_ALPHA, /* U+001828: MONGOLIAN LETTER NA*/ - RTUNI_ALPHA, /* U+001829: MONGOLIAN LETTER ANG*/ - RTUNI_ALPHA, /* U+00182a: MONGOLIAN LETTER BA*/ - RTUNI_ALPHA, /* U+00182b: MONGOLIAN LETTER PA*/ - RTUNI_ALPHA, /* U+00182c: MONGOLIAN LETTER QA*/ - RTUNI_ALPHA, /* U+00182d: MONGOLIAN LETTER GA*/ - RTUNI_ALPHA, /* U+00182e: MONGOLIAN LETTER MA*/ - RTUNI_ALPHA, /* U+00182f: MONGOLIAN LETTER LA*/ - RTUNI_ALPHA, /* U+001830: MONGOLIAN LETTER SA*/ - RTUNI_ALPHA, /* U+001831: MONGOLIAN LETTER SHA*/ - RTUNI_ALPHA, /* U+001832: MONGOLIAN LETTER TA*/ - RTUNI_ALPHA, /* U+001833: MONGOLIAN LETTER DA*/ - RTUNI_ALPHA, /* U+001834: MONGOLIAN LETTER CHA*/ - RTUNI_ALPHA, /* U+001835: MONGOLIAN LETTER JA*/ - RTUNI_ALPHA, /* U+001836: MONGOLIAN LETTER YA*/ - RTUNI_ALPHA, /* U+001837: MONGOLIAN LETTER RA*/ - RTUNI_ALPHA, /* U+001838: MONGOLIAN LETTER WA*/ - RTUNI_ALPHA, /* U+001839: MONGOLIAN LETTER FA*/ - RTUNI_ALPHA, /* U+00183a: MONGOLIAN LETTER KA*/ - RTUNI_ALPHA, /* U+00183b: MONGOLIAN LETTER KHA*/ - RTUNI_ALPHA, /* U+00183c: MONGOLIAN LETTER TSA*/ - RTUNI_ALPHA, /* U+00183d: MONGOLIAN LETTER ZA*/ - RTUNI_ALPHA, /* U+00183e: MONGOLIAN LETTER HAA*/ - RTUNI_ALPHA, /* U+00183f: MONGOLIAN LETTER ZRA*/ - RTUNI_ALPHA, /* U+001840: MONGOLIAN LETTER LHA*/ - RTUNI_ALPHA, /* U+001841: MONGOLIAN LETTER ZHI*/ - RTUNI_ALPHA, /* U+001842: MONGOLIAN LETTER CHI*/ - RTUNI_ALPHA, /* U+001843: MONGOLIAN LETTER TODO LONG VOWEL SIGN*/ - RTUNI_ALPHA, /* U+001844: MONGOLIAN LETTER TODO E*/ - RTUNI_ALPHA, /* U+001845: MONGOLIAN LETTER TODO I*/ - RTUNI_ALPHA, /* U+001846: MONGOLIAN LETTER TODO O*/ - RTUNI_ALPHA, /* U+001847: MONGOLIAN LETTER TODO U*/ - RTUNI_ALPHA, /* U+001848: MONGOLIAN LETTER TODO OE*/ - RTUNI_ALPHA, /* U+001849: MONGOLIAN LETTER TODO UE*/ - RTUNI_ALPHA, /* U+00184a: MONGOLIAN LETTER TODO ANG*/ - RTUNI_ALPHA, /* U+00184b: MONGOLIAN LETTER TODO BA*/ - RTUNI_ALPHA, /* U+00184c: MONGOLIAN LETTER TODO PA*/ - RTUNI_ALPHA, /* U+00184d: MONGOLIAN LETTER TODO QA*/ - RTUNI_ALPHA, /* U+00184e: MONGOLIAN LETTER TODO GA*/ - RTUNI_ALPHA, /* U+00184f: MONGOLIAN LETTER TODO MA*/ - RTUNI_ALPHA, /* U+001850: MONGOLIAN LETTER TODO TA*/ - RTUNI_ALPHA, /* U+001851: MONGOLIAN LETTER TODO DA*/ - RTUNI_ALPHA, /* U+001852: MONGOLIAN LETTER TODO CHA*/ - RTUNI_ALPHA, /* U+001853: MONGOLIAN LETTER TODO JA*/ - RTUNI_ALPHA, /* U+001854: MONGOLIAN LETTER TODO TSA*/ - RTUNI_ALPHA, /* U+001855: MONGOLIAN LETTER TODO YA*/ - RTUNI_ALPHA, /* U+001856: MONGOLIAN LETTER TODO WA*/ - RTUNI_ALPHA, /* U+001857: MONGOLIAN LETTER TODO KA*/ - RTUNI_ALPHA, /* U+001858: MONGOLIAN LETTER TODO GAA*/ - RTUNI_ALPHA, /* U+001859: MONGOLIAN LETTER TODO HAA*/ - RTUNI_ALPHA, /* U+00185a: MONGOLIAN LETTER TODO JIA*/ - RTUNI_ALPHA, /* U+00185b: MONGOLIAN LETTER TODO NIA*/ - RTUNI_ALPHA, /* U+00185c: MONGOLIAN LETTER TODO DZA*/ - RTUNI_ALPHA, /* U+00185d: MONGOLIAN LETTER SIBE E*/ - RTUNI_ALPHA, /* U+00185e: MONGOLIAN LETTER SIBE I*/ - RTUNI_ALPHA, /* U+00185f: MONGOLIAN LETTER SIBE IY*/ - RTUNI_ALPHA, /* U+001860: MONGOLIAN LETTER SIBE UE*/ - RTUNI_ALPHA, /* U+001861: MONGOLIAN LETTER SIBE U*/ - RTUNI_ALPHA, /* U+001862: MONGOLIAN LETTER SIBE ANG*/ - RTUNI_ALPHA, /* U+001863: MONGOLIAN LETTER SIBE KA*/ - RTUNI_ALPHA, /* U+001864: MONGOLIAN LETTER SIBE GA*/ - RTUNI_ALPHA, /* U+001865: MONGOLIAN LETTER SIBE HA*/ - RTUNI_ALPHA, /* U+001866: MONGOLIAN LETTER SIBE PA*/ - RTUNI_ALPHA, /* U+001867: MONGOLIAN LETTER SIBE SHA*/ - RTUNI_ALPHA, /* U+001868: MONGOLIAN LETTER SIBE TA*/ - RTUNI_ALPHA, /* U+001869: MONGOLIAN LETTER SIBE DA*/ - RTUNI_ALPHA, /* U+00186a: MONGOLIAN LETTER SIBE JA*/ - RTUNI_ALPHA, /* U+00186b: MONGOLIAN LETTER SIBE FA*/ - RTUNI_ALPHA, /* U+00186c: MONGOLIAN LETTER SIBE GAA*/ - RTUNI_ALPHA, /* U+00186d: MONGOLIAN LETTER SIBE HAA*/ - RTUNI_ALPHA, /* U+00186e: MONGOLIAN LETTER SIBE TSA*/ - RTUNI_ALPHA, /* U+00186f: MONGOLIAN LETTER SIBE ZA*/ - RTUNI_ALPHA, /* U+001870: MONGOLIAN LETTER SIBE RAA*/ - RTUNI_ALPHA, /* U+001871: MONGOLIAN LETTER SIBE CHA*/ - RTUNI_ALPHA, /* U+001872: MONGOLIAN LETTER SIBE ZHA*/ - RTUNI_ALPHA, /* U+001873: MONGOLIAN LETTER MANCHU I*/ - RTUNI_ALPHA, /* U+001874: MONGOLIAN LETTER MANCHU KA*/ - RTUNI_ALPHA, /* U+001875: MONGOLIAN LETTER MANCHU RA*/ - RTUNI_ALPHA, /* U+001876: MONGOLIAN LETTER MANCHU FA*/ - RTUNI_ALPHA, /* U+001877: MONGOLIAN LETTER MANCHU ZHA*/ - 0, /* U+001878: */ - 0, /* U+001879: */ - 0, /* U+00187a: */ - 0, /* U+00187b: */ - 0, /* U+00187c: */ - 0, /* U+00187d: */ - 0, /* U+00187e: */ - 0, /* U+00187f: */ - RTUNI_ALPHA, /* U+001880: MONGOLIAN LETTER ALI GALI ANUSVARA ONE*/ - RTUNI_ALPHA, /* U+001881: MONGOLIAN LETTER ALI GALI VISARGA ONE*/ - RTUNI_ALPHA, /* U+001882: MONGOLIAN LETTER ALI GALI DAMARU*/ - RTUNI_ALPHA, /* U+001883: MONGOLIAN LETTER ALI GALI UBADAMA*/ - RTUNI_ALPHA, /* U+001884: MONGOLIAN LETTER ALI GALI INVERTED UBADAMA*/ - RTUNI_ALPHA, /* U+001885: MONGOLIAN LETTER ALI GALI BALUDA*/ - RTUNI_ALPHA, /* U+001886: MONGOLIAN LETTER ALI GALI THREE BALUDA*/ - RTUNI_ALPHA, /* U+001887: MONGOLIAN LETTER ALI GALI A*/ - RTUNI_ALPHA, /* U+001888: MONGOLIAN LETTER ALI GALI I*/ - RTUNI_ALPHA, /* U+001889: MONGOLIAN LETTER ALI GALI KA*/ - RTUNI_ALPHA, /* U+00188a: MONGOLIAN LETTER ALI GALI NGA*/ - RTUNI_ALPHA, /* U+00188b: MONGOLIAN LETTER ALI GALI CA*/ - RTUNI_ALPHA, /* U+00188c: MONGOLIAN LETTER ALI GALI TTA*/ - RTUNI_ALPHA, /* U+00188d: MONGOLIAN LETTER ALI GALI TTHA*/ - RTUNI_ALPHA, /* U+00188e: MONGOLIAN LETTER ALI GALI DDA*/ - RTUNI_ALPHA, /* U+00188f: MONGOLIAN LETTER ALI GALI NNA*/ - RTUNI_ALPHA, /* U+001890: MONGOLIAN LETTER ALI GALI TA*/ - RTUNI_ALPHA, /* U+001891: MONGOLIAN LETTER ALI GALI DA*/ - RTUNI_ALPHA, /* U+001892: MONGOLIAN LETTER ALI GALI PA*/ - RTUNI_ALPHA, /* U+001893: MONGOLIAN LETTER ALI GALI PHA*/ - RTUNI_ALPHA, /* U+001894: MONGOLIAN LETTER ALI GALI SSA*/ - RTUNI_ALPHA, /* U+001895: MONGOLIAN LETTER ALI GALI ZHA*/ - RTUNI_ALPHA, /* U+001896: MONGOLIAN LETTER ALI GALI ZA*/ - RTUNI_ALPHA, /* U+001897: MONGOLIAN LETTER ALI GALI AH*/ - RTUNI_ALPHA, /* U+001898: MONGOLIAN LETTER TODO ALI GALI TA*/ - RTUNI_ALPHA, /* U+001899: MONGOLIAN LETTER TODO ALI GALI ZHA*/ - RTUNI_ALPHA, /* U+00189a: MONGOLIAN LETTER MANCHU ALI GALI GHA*/ - RTUNI_ALPHA, /* U+00189b: MONGOLIAN LETTER MANCHU ALI GALI NGA*/ - RTUNI_ALPHA, /* U+00189c: MONGOLIAN LETTER MANCHU ALI GALI CA*/ - RTUNI_ALPHA, /* U+00189d: MONGOLIAN LETTER MANCHU ALI GALI JHA*/ - RTUNI_ALPHA, /* U+00189e: MONGOLIAN LETTER MANCHU ALI GALI TTA*/ - RTUNI_ALPHA, /* U+00189f: MONGOLIAN LETTER MANCHU ALI GALI DDHA*/ - RTUNI_ALPHA, /* U+0018a0: MONGOLIAN LETTER MANCHU ALI GALI TA*/ - RTUNI_ALPHA, /* U+0018a1: MONGOLIAN LETTER MANCHU ALI GALI DHA*/ - RTUNI_ALPHA, /* U+0018a2: MONGOLIAN LETTER MANCHU ALI GALI SSA*/ - RTUNI_ALPHA, /* U+0018a3: MONGOLIAN LETTER MANCHU ALI GALI CYA*/ - RTUNI_ALPHA, /* U+0018a4: MONGOLIAN LETTER MANCHU ALI GALI ZHA*/ - RTUNI_ALPHA, /* U+0018a5: MONGOLIAN LETTER MANCHU ALI GALI ZA*/ - RTUNI_ALPHA, /* U+0018a6: MONGOLIAN LETTER ALI GALI HALF U*/ - RTUNI_ALPHA, /* U+0018a7: MONGOLIAN LETTER ALI GALI HALF YA*/ - RTUNI_ALPHA, /* U+0018a8: MONGOLIAN LETTER MANCHU ALI GALI BHA*/ - RTUNI_ALPHA, /* U+0018a9: MONGOLIAN LETTER ALI GALI DAGALGA*/ - 0, /* U+0018aa: */ - 0, /* U+0018ab: */ - 0, /* U+0018ac: */ - 0, /* U+0018ad: */ - 0, /* U+0018ae: */ - 0, /* U+0018af: */ - 0, /* U+0018b0: */ - 0, /* U+0018b1: */ - 0, /* U+0018b2: */ - 0, /* U+0018b3: */ - 0, /* U+0018b4: */ - 0, /* U+0018b5: */ - 0, /* U+0018b6: */ - 0, /* U+0018b7: */ - 0, /* U+0018b8: */ - 0, /* U+0018b9: */ - 0, /* U+0018ba: */ - 0, /* U+0018bb: */ - 0, /* U+0018bc: */ - 0, /* U+0018bd: */ - 0, /* U+0018be: */ - 0, /* U+0018bf: */ - 0, /* U+0018c0: */ - 0, /* U+0018c1: */ - 0, /* U+0018c2: */ - 0, /* U+0018c3: */ - 0, /* U+0018c4: */ - 0, /* U+0018c5: */ - 0, /* U+0018c6: */ - 0, /* U+0018c7: */ - 0, /* U+0018c8: */ - 0, /* U+0018c9: */ - 0, /* U+0018ca: */ - 0, /* U+0018cb: */ - 0, /* U+0018cc: */ - 0, /* U+0018cd: */ - 0, /* U+0018ce: */ - 0, /* U+0018cf: */ - 0, /* U+0018d0: */ - 0, /* U+0018d1: */ - 0, /* U+0018d2: */ - 0, /* U+0018d3: */ - 0, /* U+0018d4: */ - 0, /* U+0018d5: */ - 0, /* U+0018d6: */ - 0, /* U+0018d7: */ - 0, /* U+0018d8: */ - 0, /* U+0018d9: */ - 0, /* U+0018da: */ - 0, /* U+0018db: */ - 0, /* U+0018dc: */ - 0, /* U+0018dd: */ - 0, /* U+0018de: */ - 0, /* U+0018df: */ - 0, /* U+0018e0: */ - 0, /* U+0018e1: */ - 0, /* U+0018e2: */ - 0, /* U+0018e3: */ - 0, /* U+0018e4: */ - 0, /* U+0018e5: */ - 0, /* U+0018e6: */ - 0, /* U+0018e7: */ - 0, /* U+0018e8: */ - 0, /* U+0018e9: */ - 0, /* U+0018ea: */ - 0, /* U+0018eb: */ - 0, /* U+0018ec: */ - 0, /* U+0018ed: */ - 0, /* U+0018ee: */ - 0, /* U+0018ef: */ - 0, /* U+0018f0: */ - 0, /* U+0018f1: */ - 0, /* U+0018f2: */ - 0, /* U+0018f3: */ - 0, /* U+0018f4: */ - 0, /* U+0018f5: */ - 0, /* U+0018f6: */ - 0, /* U+0018f7: */ - 0, /* U+0018f8: */ - 0, /* U+0018f9: */ - 0, /* U+0018fa: */ - 0, /* U+0018fb: */ - 0, /* U+0018fc: */ - 0, /* U+0018fd: */ - 0, /* U+0018fe: */ - 0, /* U+0018ff: */ - RTUNI_ALPHA, /* U+001900: LIMBU VOWEL-CARRIER LETTER*/ - RTUNI_ALPHA, /* U+001901: LIMBU LETTER KA*/ - RTUNI_ALPHA, /* U+001902: LIMBU LETTER KHA*/ - RTUNI_ALPHA, /* U+001903: LIMBU LETTER GA*/ - RTUNI_ALPHA, /* U+001904: LIMBU LETTER GHA*/ - RTUNI_ALPHA, /* U+001905: LIMBU LETTER NGA*/ - RTUNI_ALPHA, /* U+001906: LIMBU LETTER CA*/ - RTUNI_ALPHA, /* U+001907: LIMBU LETTER CHA*/ - RTUNI_ALPHA, /* U+001908: LIMBU LETTER JA*/ - RTUNI_ALPHA, /* U+001909: LIMBU LETTER JHA*/ - RTUNI_ALPHA, /* U+00190a: LIMBU LETTER YAN*/ - RTUNI_ALPHA, /* U+00190b: LIMBU LETTER TA*/ - RTUNI_ALPHA, /* U+00190c: LIMBU LETTER THA*/ - RTUNI_ALPHA, /* U+00190d: LIMBU LETTER DA*/ - RTUNI_ALPHA, /* U+00190e: LIMBU LETTER DHA*/ - RTUNI_ALPHA, /* U+00190f: LIMBU LETTER NA*/ - RTUNI_ALPHA, /* U+001910: LIMBU LETTER PA*/ - RTUNI_ALPHA, /* U+001911: LIMBU LETTER PHA*/ - RTUNI_ALPHA, /* U+001912: LIMBU LETTER BA*/ - RTUNI_ALPHA, /* U+001913: LIMBU LETTER BHA*/ - RTUNI_ALPHA, /* U+001914: LIMBU LETTER MA*/ - RTUNI_ALPHA, /* U+001915: LIMBU LETTER YA*/ - RTUNI_ALPHA, /* U+001916: LIMBU LETTER RA*/ - RTUNI_ALPHA, /* U+001917: LIMBU LETTER LA*/ - RTUNI_ALPHA, /* U+001918: LIMBU LETTER WA*/ - RTUNI_ALPHA, /* U+001919: LIMBU LETTER SHA*/ - RTUNI_ALPHA, /* U+00191a: LIMBU LETTER SSA*/ - RTUNI_ALPHA, /* U+00191b: LIMBU LETTER SA*/ - RTUNI_ALPHA, /* U+00191c: LIMBU LETTER HA*/ - 0, /* U+00191d: */ - 0, /* U+00191e: */ - 0, /* U+00191f: */ - RTUNI_ALPHA, /* U+001920: LIMBU VOWEL SIGN A*/ - RTUNI_ALPHA, /* U+001921: LIMBU VOWEL SIGN I*/ - RTUNI_ALPHA, /* U+001922: LIMBU VOWEL SIGN U*/ - RTUNI_ALPHA, /* U+001923: LIMBU VOWEL SIGN EE*/ - RTUNI_ALPHA, /* U+001924: LIMBU VOWEL SIGN AI*/ - RTUNI_ALPHA, /* U+001925: LIMBU VOWEL SIGN OO*/ - RTUNI_ALPHA, /* U+001926: LIMBU VOWEL SIGN AU*/ - RTUNI_ALPHA, /* U+001927: LIMBU VOWEL SIGN E*/ - RTUNI_ALPHA, /* U+001928: LIMBU VOWEL SIGN O*/ - RTUNI_ALPHA, /* U+001929: LIMBU SUBJOINED LETTER YA*/ - RTUNI_ALPHA, /* U+00192a: LIMBU SUBJOINED LETTER RA*/ - RTUNI_ALPHA, /* U+00192b: LIMBU SUBJOINED LETTER WA*/ - 0, /* U+00192c: */ - 0, /* U+00192d: */ - 0, /* U+00192e: */ - 0, /* U+00192f: */ - RTUNI_ALPHA, /* U+001930: LIMBU SMALL LETTER KA*/ - RTUNI_ALPHA, /* U+001931: LIMBU SMALL LETTER NGA*/ - RTUNI_ALPHA, /* U+001932: LIMBU SMALL LETTER ANUSVARA*/ - RTUNI_ALPHA, /* U+001933: LIMBU SMALL LETTER TA*/ - RTUNI_ALPHA, /* U+001934: LIMBU SMALL LETTER NA*/ - RTUNI_ALPHA, /* U+001935: LIMBU SMALL LETTER PA*/ - RTUNI_ALPHA, /* U+001936: LIMBU SMALL LETTER MA*/ - RTUNI_ALPHA, /* U+001937: LIMBU SMALL LETTER RA*/ - RTUNI_ALPHA, /* U+001938: LIMBU SMALL LETTER LA*/ - 0, /* U+001939: LIMBU SIGN MUKPHRENG*/ - 0, /* U+00193a: LIMBU SIGN KEMPHRENG*/ - 0, /* U+00193b: LIMBU SIGN SA-I*/ - 0, /* U+00193c: */ - 0, /* U+00193d: */ - 0, /* U+00193e: */ - 0, /* U+00193f: */ - 0, /* U+001940: LIMBU SIGN LOO*/ - 0, /* U+001941: */ - 0, /* U+001942: */ - 0, /* U+001943: */ - 0, /* U+001944: LIMBU EXCLAMATION MARK*/ - 0, /* U+001945: LIMBU QUESTION MARK*/ - RTUNI_DDIGIT, /* U+001946: LIMBU DIGIT ZERO*/ - RTUNI_DDIGIT, /* U+001947: LIMBU DIGIT ONE*/ - RTUNI_DDIGIT, /* U+001948: LIMBU DIGIT TWO*/ - RTUNI_DDIGIT, /* U+001949: LIMBU DIGIT THREE*/ - RTUNI_DDIGIT, /* U+00194a: LIMBU DIGIT FOUR*/ - RTUNI_DDIGIT, /* U+00194b: LIMBU DIGIT FIVE*/ - RTUNI_DDIGIT, /* U+00194c: LIMBU DIGIT SIX*/ - RTUNI_DDIGIT, /* U+00194d: LIMBU DIGIT SEVEN*/ - RTUNI_DDIGIT, /* U+00194e: LIMBU DIGIT EIGHT*/ - RTUNI_DDIGIT, /* U+00194f: LIMBU DIGIT NINE*/ - RTUNI_ALPHA, /* U+001950: TAI LE LETTER KA*/ - RTUNI_ALPHA, /* U+001951: TAI LE LETTER XA*/ - RTUNI_ALPHA, /* U+001952: TAI LE LETTER NGA*/ - RTUNI_ALPHA, /* U+001953: TAI LE LETTER TSA*/ - RTUNI_ALPHA, /* U+001954: TAI LE LETTER SA*/ - RTUNI_ALPHA, /* U+001955: TAI LE LETTER YA*/ - RTUNI_ALPHA, /* U+001956: TAI LE LETTER TA*/ - RTUNI_ALPHA, /* U+001957: TAI LE LETTER THA*/ - RTUNI_ALPHA, /* U+001958: TAI LE LETTER LA*/ - RTUNI_ALPHA, /* U+001959: TAI LE LETTER PA*/ - RTUNI_ALPHA, /* U+00195a: TAI LE LETTER PHA*/ - RTUNI_ALPHA, /* U+00195b: TAI LE LETTER MA*/ - RTUNI_ALPHA, /* U+00195c: TAI LE LETTER FA*/ - RTUNI_ALPHA, /* U+00195d: TAI LE LETTER VA*/ - RTUNI_ALPHA, /* U+00195e: TAI LE LETTER HA*/ - RTUNI_ALPHA, /* U+00195f: TAI LE LETTER QA*/ - RTUNI_ALPHA, /* U+001960: TAI LE LETTER KHA*/ - RTUNI_ALPHA, /* U+001961: TAI LE LETTER TSHA*/ - RTUNI_ALPHA, /* U+001962: TAI LE LETTER NA*/ - RTUNI_ALPHA, /* U+001963: TAI LE LETTER A*/ - RTUNI_ALPHA, /* U+001964: TAI LE LETTER I*/ - RTUNI_ALPHA, /* U+001965: TAI LE LETTER EE*/ - RTUNI_ALPHA, /* U+001966: TAI LE LETTER EH*/ - RTUNI_ALPHA, /* U+001967: TAI LE LETTER U*/ - RTUNI_ALPHA, /* U+001968: TAI LE LETTER OO*/ - RTUNI_ALPHA, /* U+001969: TAI LE LETTER O*/ - RTUNI_ALPHA, /* U+00196a: TAI LE LETTER UE*/ - RTUNI_ALPHA, /* U+00196b: TAI LE LETTER E*/ - RTUNI_ALPHA, /* U+00196c: TAI LE LETTER AUE*/ - RTUNI_ALPHA, /* U+00196d: TAI LE LETTER AI*/ - 0, /* U+00196e: */ - 0, /* U+00196f: */ - RTUNI_ALPHA, /* U+001970: TAI LE LETTER TONE-2*/ - RTUNI_ALPHA, /* U+001971: TAI LE LETTER TONE-3*/ - RTUNI_ALPHA, /* U+001972: TAI LE LETTER TONE-4*/ - RTUNI_ALPHA, /* U+001973: TAI LE LETTER TONE-5*/ - RTUNI_ALPHA, /* U+001974: TAI LE LETTER TONE-6*/ - 0, /* U+001975: */ - 0, /* U+001976: */ - 0, /* U+001977: */ - 0, /* U+001978: */ - 0, /* U+001979: */ - 0, /* U+00197a: */ - 0, /* U+00197b: */ - 0, /* U+00197c: */ - 0, /* U+00197d: */ - 0, /* U+00197e: */ - 0, /* U+00197f: */ - RTUNI_ALPHA, /* U+001980: NEW TAI LUE LETTER HIGH QA*/ - RTUNI_ALPHA, /* U+001981: NEW TAI LUE LETTER LOW QA*/ - RTUNI_ALPHA, /* U+001982: NEW TAI LUE LETTER HIGH KA*/ - RTUNI_ALPHA, /* U+001983: NEW TAI LUE LETTER HIGH XA*/ - RTUNI_ALPHA, /* U+001984: NEW TAI LUE LETTER HIGH NGA*/ - RTUNI_ALPHA, /* U+001985: NEW TAI LUE LETTER LOW KA*/ - RTUNI_ALPHA, /* U+001986: NEW TAI LUE LETTER LOW XA*/ - RTUNI_ALPHA, /* U+001987: NEW TAI LUE LETTER LOW NGA*/ - RTUNI_ALPHA, /* U+001988: NEW TAI LUE LETTER HIGH TSA*/ - RTUNI_ALPHA, /* U+001989: NEW TAI LUE LETTER HIGH SA*/ - RTUNI_ALPHA, /* U+00198a: NEW TAI LUE LETTER HIGH YA*/ - RTUNI_ALPHA, /* U+00198b: NEW TAI LUE LETTER LOW TSA*/ - RTUNI_ALPHA, /* U+00198c: NEW TAI LUE LETTER LOW SA*/ - RTUNI_ALPHA, /* U+00198d: NEW TAI LUE LETTER LOW YA*/ - RTUNI_ALPHA, /* U+00198e: NEW TAI LUE LETTER HIGH TA*/ - RTUNI_ALPHA, /* U+00198f: NEW TAI LUE LETTER HIGH THA*/ - RTUNI_ALPHA, /* U+001990: NEW TAI LUE LETTER HIGH NA*/ - RTUNI_ALPHA, /* U+001991: NEW TAI LUE LETTER LOW TA*/ - RTUNI_ALPHA, /* U+001992: NEW TAI LUE LETTER LOW THA*/ - RTUNI_ALPHA, /* U+001993: NEW TAI LUE LETTER LOW NA*/ - RTUNI_ALPHA, /* U+001994: NEW TAI LUE LETTER HIGH PA*/ - RTUNI_ALPHA, /* U+001995: NEW TAI LUE LETTER HIGH PHA*/ - RTUNI_ALPHA, /* U+001996: NEW TAI LUE LETTER HIGH MA*/ - RTUNI_ALPHA, /* U+001997: NEW TAI LUE LETTER LOW PA*/ - RTUNI_ALPHA, /* U+001998: NEW TAI LUE LETTER LOW PHA*/ - RTUNI_ALPHA, /* U+001999: NEW TAI LUE LETTER LOW MA*/ - RTUNI_ALPHA, /* U+00199a: NEW TAI LUE LETTER HIGH FA*/ - RTUNI_ALPHA, /* U+00199b: NEW TAI LUE LETTER HIGH VA*/ - RTUNI_ALPHA, /* U+00199c: NEW TAI LUE LETTER HIGH LA*/ - RTUNI_ALPHA, /* U+00199d: NEW TAI LUE LETTER LOW FA*/ - RTUNI_ALPHA, /* U+00199e: NEW TAI LUE LETTER LOW VA*/ - RTUNI_ALPHA, /* U+00199f: NEW TAI LUE LETTER LOW LA*/ - RTUNI_ALPHA, /* U+0019a0: NEW TAI LUE LETTER HIGH HA*/ - RTUNI_ALPHA, /* U+0019a1: NEW TAI LUE LETTER HIGH DA*/ - RTUNI_ALPHA, /* U+0019a2: NEW TAI LUE LETTER HIGH BA*/ - RTUNI_ALPHA, /* U+0019a3: NEW TAI LUE LETTER LOW HA*/ - RTUNI_ALPHA, /* U+0019a4: NEW TAI LUE LETTER LOW DA*/ - RTUNI_ALPHA, /* U+0019a5: NEW TAI LUE LETTER LOW BA*/ - RTUNI_ALPHA, /* U+0019a6: NEW TAI LUE LETTER HIGH KVA*/ - RTUNI_ALPHA, /* U+0019a7: NEW TAI LUE LETTER HIGH XVA*/ - RTUNI_ALPHA, /* U+0019a8: NEW TAI LUE LETTER LOW KVA*/ - RTUNI_ALPHA, /* U+0019a9: NEW TAI LUE LETTER LOW XVA*/ - 0, /* U+0019aa: */ - 0, /* U+0019ab: */ - 0, /* U+0019ac: */ - 0, /* U+0019ad: */ - 0, /* U+0019ae: */ - 0, /* U+0019af: */ - RTUNI_ALPHA, /* U+0019b0: NEW TAI LUE VOWEL SIGN VOWEL SHORTENER*/ - RTUNI_ALPHA, /* U+0019b1: NEW TAI LUE VOWEL SIGN AA*/ - RTUNI_ALPHA, /* U+0019b2: NEW TAI LUE VOWEL SIGN II*/ - RTUNI_ALPHA, /* U+0019b3: NEW TAI LUE VOWEL SIGN U*/ - RTUNI_ALPHA, /* U+0019b4: NEW TAI LUE VOWEL SIGN UU*/ - RTUNI_ALPHA, /* U+0019b5: NEW TAI LUE VOWEL SIGN E*/ - RTUNI_ALPHA, /* U+0019b6: NEW TAI LUE VOWEL SIGN AE*/ - RTUNI_ALPHA, /* U+0019b7: NEW TAI LUE VOWEL SIGN O*/ - RTUNI_ALPHA, /* U+0019b8: NEW TAI LUE VOWEL SIGN OA*/ - RTUNI_ALPHA, /* U+0019b9: NEW TAI LUE VOWEL SIGN UE*/ - RTUNI_ALPHA, /* U+0019ba: NEW TAI LUE VOWEL SIGN AY*/ - RTUNI_ALPHA, /* U+0019bb: NEW TAI LUE VOWEL SIGN AAY*/ - RTUNI_ALPHA, /* U+0019bc: NEW TAI LUE VOWEL SIGN UY*/ - RTUNI_ALPHA, /* U+0019bd: NEW TAI LUE VOWEL SIGN OY*/ - RTUNI_ALPHA, /* U+0019be: NEW TAI LUE VOWEL SIGN OAY*/ - RTUNI_ALPHA, /* U+0019bf: NEW TAI LUE VOWEL SIGN UEY*/ - RTUNI_ALPHA, /* U+0019c0: NEW TAI LUE VOWEL SIGN IY*/ - RTUNI_ALPHA, /* U+0019c1: NEW TAI LUE LETTER FINAL V*/ - RTUNI_ALPHA, /* U+0019c2: NEW TAI LUE LETTER FINAL NG*/ - RTUNI_ALPHA, /* U+0019c3: NEW TAI LUE LETTER FINAL N*/ - RTUNI_ALPHA, /* U+0019c4: NEW TAI LUE LETTER FINAL M*/ - RTUNI_ALPHA, /* U+0019c5: NEW TAI LUE LETTER FINAL K*/ - RTUNI_ALPHA, /* U+0019c6: NEW TAI LUE LETTER FINAL D*/ - RTUNI_ALPHA, /* U+0019c7: NEW TAI LUE LETTER FINAL B*/ - RTUNI_ALPHA, /* U+0019c8: NEW TAI LUE TONE MARK-1*/ - RTUNI_ALPHA, /* U+0019c9: NEW TAI LUE TONE MARK-2*/ - 0, /* U+0019ca: */ - 0, /* U+0019cb: */ - 0, /* U+0019cc: */ - 0, /* U+0019cd: */ - 0, /* U+0019ce: */ - 0, /* U+0019cf: */ - RTUNI_DDIGIT, /* U+0019d0: NEW TAI LUE DIGIT ZERO*/ - RTUNI_DDIGIT, /* U+0019d1: NEW TAI LUE DIGIT ONE*/ - RTUNI_DDIGIT, /* U+0019d2: NEW TAI LUE DIGIT TWO*/ - RTUNI_DDIGIT, /* U+0019d3: NEW TAI LUE DIGIT THREE*/ - RTUNI_DDIGIT, /* U+0019d4: NEW TAI LUE DIGIT FOUR*/ - RTUNI_DDIGIT, /* U+0019d5: NEW TAI LUE DIGIT FIVE*/ - RTUNI_DDIGIT, /* U+0019d6: NEW TAI LUE DIGIT SIX*/ - RTUNI_DDIGIT, /* U+0019d7: NEW TAI LUE DIGIT SEVEN*/ - RTUNI_DDIGIT, /* U+0019d8: NEW TAI LUE DIGIT EIGHT*/ - RTUNI_DDIGIT, /* U+0019d9: NEW TAI LUE DIGIT NINE*/ - 0, /* U+0019da: */ - 0, /* U+0019db: */ - 0, /* U+0019dc: */ - 0, /* U+0019dd: */ - 0, /* U+0019de: NEW TAI LUE SIGN LAE*/ - 0, /* U+0019df: NEW TAI LUE SIGN LAEV*/ - 0, /* U+0019e0: KHMER SYMBOL PATHAMASAT*/ - 0, /* U+0019e1: KHMER SYMBOL MUOY KOET*/ - 0, /* U+0019e2: KHMER SYMBOL PII KOET*/ - 0, /* U+0019e3: KHMER SYMBOL BEI KOET*/ - 0, /* U+0019e4: KHMER SYMBOL BUON KOET*/ - 0, /* U+0019e5: KHMER SYMBOL PRAM KOET*/ - 0, /* U+0019e6: KHMER SYMBOL PRAM-MUOY KOET*/ - 0, /* U+0019e7: KHMER SYMBOL PRAM-PII KOET*/ - 0, /* U+0019e8: KHMER SYMBOL PRAM-BEI KOET*/ - 0, /* U+0019e9: KHMER SYMBOL PRAM-BUON KOET*/ - 0, /* U+0019ea: KHMER SYMBOL DAP KOET*/ - 0, /* U+0019eb: KHMER SYMBOL DAP-MUOY KOET*/ - 0, /* U+0019ec: KHMER SYMBOL DAP-PII KOET*/ - 0, /* U+0019ed: KHMER SYMBOL DAP-BEI KOET*/ - 0, /* U+0019ee: KHMER SYMBOL DAP-BUON KOET*/ - 0, /* U+0019ef: KHMER SYMBOL DAP-PRAM KOET*/ - 0, /* U+0019f0: KHMER SYMBOL TUTEYASAT*/ - 0, /* U+0019f1: KHMER SYMBOL MUOY ROC*/ - 0, /* U+0019f2: KHMER SYMBOL PII ROC*/ - 0, /* U+0019f3: KHMER SYMBOL BEI ROC*/ - 0, /* U+0019f4: KHMER SYMBOL BUON ROC*/ - 0, /* U+0019f5: KHMER SYMBOL PRAM ROC*/ - 0, /* U+0019f6: KHMER SYMBOL PRAM-MUOY ROC*/ - 0, /* U+0019f7: KHMER SYMBOL PRAM-PII ROC*/ - 0, /* U+0019f8: KHMER SYMBOL PRAM-BEI ROC*/ - 0, /* U+0019f9: KHMER SYMBOL PRAM-BUON ROC*/ - 0, /* U+0019fa: KHMER SYMBOL DAP ROC*/ - 0, /* U+0019fb: KHMER SYMBOL DAP-MUOY ROC*/ - 0, /* U+0019fc: KHMER SYMBOL DAP-PII ROC*/ - 0, /* U+0019fd: KHMER SYMBOL DAP-BEI ROC*/ - 0, /* U+0019fe: KHMER SYMBOL DAP-BUON ROC*/ - 0, /* U+0019ff: KHMER SYMBOL DAP-PRAM ROC*/ - RTUNI_ALPHA, /* U+001a00: BUGINESE LETTER KA*/ - RTUNI_ALPHA, /* U+001a01: BUGINESE LETTER GA*/ - RTUNI_ALPHA, /* U+001a02: BUGINESE LETTER NGA*/ - RTUNI_ALPHA, /* U+001a03: BUGINESE LETTER NGKA*/ - RTUNI_ALPHA, /* U+001a04: BUGINESE LETTER PA*/ - RTUNI_ALPHA, /* U+001a05: BUGINESE LETTER BA*/ - RTUNI_ALPHA, /* U+001a06: BUGINESE LETTER MA*/ - RTUNI_ALPHA, /* U+001a07: BUGINESE LETTER MPA*/ - RTUNI_ALPHA, /* U+001a08: BUGINESE LETTER TA*/ - RTUNI_ALPHA, /* U+001a09: BUGINESE LETTER DA*/ - RTUNI_ALPHA, /* U+001a0a: BUGINESE LETTER NA*/ - RTUNI_ALPHA, /* U+001a0b: BUGINESE LETTER NRA*/ - RTUNI_ALPHA, /* U+001a0c: BUGINESE LETTER CA*/ - RTUNI_ALPHA, /* U+001a0d: BUGINESE LETTER JA*/ - RTUNI_ALPHA, /* U+001a0e: BUGINESE LETTER NYA*/ - RTUNI_ALPHA, /* U+001a0f: BUGINESE LETTER NYCA*/ - RTUNI_ALPHA, /* U+001a10: BUGINESE LETTER YA*/ - RTUNI_ALPHA, /* U+001a11: BUGINESE LETTER RA*/ - RTUNI_ALPHA, /* U+001a12: BUGINESE LETTER LA*/ - RTUNI_ALPHA, /* U+001a13: BUGINESE LETTER VA*/ - RTUNI_ALPHA, /* U+001a14: BUGINESE LETTER SA*/ - RTUNI_ALPHA, /* U+001a15: BUGINESE LETTER A*/ - RTUNI_ALPHA, /* U+001a16: BUGINESE LETTER HA*/ - RTUNI_ALPHA, /* U+001a17: BUGINESE VOWEL SIGN I*/ - RTUNI_ALPHA, /* U+001a18: BUGINESE VOWEL SIGN U*/ - RTUNI_ALPHA, /* U+001a19: BUGINESE VOWEL SIGN E*/ - RTUNI_ALPHA, /* U+001a1a: BUGINESE VOWEL SIGN O*/ - RTUNI_ALPHA, /* U+001a1b: BUGINESE VOWEL SIGN AE*/ - 0, /* U+001a1c: */ - 0, /* U+001a1d: */ - 0, /* U+001a1e: BUGINESE PALLAWA*/ - 0, /* U+001a1f: BUGINESE END OF SECTION*/ - 0, /* U+001a20: */ - 0, /* U+001a21: */ - 0, /* U+001a22: */ - 0, /* U+001a23: */ - 0, /* U+001a24: */ - 0, /* U+001a25: */ - 0, /* U+001a26: */ - 0, /* U+001a27: */ - 0, /* U+001a28: */ - 0, /* U+001a29: */ - 0, /* U+001a2a: */ - 0, /* U+001a2b: */ - 0, /* U+001a2c: */ - 0, /* U+001a2d: */ - 0, /* U+001a2e: */ - 0, /* U+001a2f: */ - 0, /* U+001a30: */ - 0, /* U+001a31: */ - 0, /* U+001a32: */ - 0, /* U+001a33: */ - 0, /* U+001a34: */ - 0, /* U+001a35: */ - 0, /* U+001a36: */ - 0, /* U+001a37: */ - 0, /* U+001a38: */ - 0, /* U+001a39: */ - 0, /* U+001a3a: */ - 0, /* U+001a3b: */ - 0, /* U+001a3c: */ - 0, /* U+001a3d: */ - 0, /* U+001a3e: */ - 0, /* U+001a3f: */ - 0, /* U+001a40: */ - 0, /* U+001a41: */ - 0, /* U+001a42: */ - 0, /* U+001a43: */ - 0, /* U+001a44: */ - 0, /* U+001a45: */ - 0, /* U+001a46: */ - 0, /* U+001a47: */ - 0, /* U+001a48: */ - 0, /* U+001a49: */ - 0, /* U+001a4a: */ - 0, /* U+001a4b: */ - 0, /* U+001a4c: */ - 0, /* U+001a4d: */ - 0, /* U+001a4e: */ - 0, /* U+001a4f: */ - 0, /* U+001a50: */ - 0, /* U+001a51: */ - 0, /* U+001a52: */ - 0, /* U+001a53: */ - 0, /* U+001a54: */ - 0, /* U+001a55: */ - 0, /* U+001a56: */ - 0, /* U+001a57: */ - 0, /* U+001a58: */ - 0, /* U+001a59: */ - 0, /* U+001a5a: */ - 0, /* U+001a5b: */ - 0, /* U+001a5c: */ - 0, /* U+001a5d: */ - 0, /* U+001a5e: */ - 0, /* U+001a5f: */ - 0, /* U+001a60: */ - 0, /* U+001a61: */ - 0, /* U+001a62: */ - 0, /* U+001a63: */ - 0, /* U+001a64: */ - 0, /* U+001a65: */ - 0, /* U+001a66: */ - 0, /* U+001a67: */ - 0, /* U+001a68: */ - 0, /* U+001a69: */ - 0, /* U+001a6a: */ - 0, /* U+001a6b: */ - 0, /* U+001a6c: */ - 0, /* U+001a6d: */ - 0, /* U+001a6e: */ - 0, /* U+001a6f: */ - 0, /* U+001a70: */ - 0, /* U+001a71: */ - 0, /* U+001a72: */ - 0, /* U+001a73: */ - 0, /* U+001a74: */ - 0, /* U+001a75: */ - 0, /* U+001a76: */ - 0, /* U+001a77: */ - 0, /* U+001a78: */ - 0, /* U+001a79: */ - 0, /* U+001a7a: */ - 0, /* U+001a7b: */ - 0, /* U+001a7c: */ - 0, /* U+001a7d: */ - 0, /* U+001a7e: */ - 0, /* U+001a7f: */ - 0, /* U+001a80: */ - 0, /* U+001a81: */ - 0, /* U+001a82: */ - 0, /* U+001a83: */ - 0, /* U+001a84: */ - 0, /* U+001a85: */ - 0, /* U+001a86: */ - 0, /* U+001a87: */ - 0, /* U+001a88: */ - 0, /* U+001a89: */ - 0, /* U+001a8a: */ - 0, /* U+001a8b: */ - 0, /* U+001a8c: */ - 0, /* U+001a8d: */ - 0, /* U+001a8e: */ - 0, /* U+001a8f: */ - 0, /* U+001a90: */ - 0, /* U+001a91: */ - 0, /* U+001a92: */ - 0, /* U+001a93: */ - 0, /* U+001a94: */ - 0, /* U+001a95: */ - 0, /* U+001a96: */ - 0, /* U+001a97: */ - 0, /* U+001a98: */ - 0, /* U+001a99: */ - 0, /* U+001a9a: */ - 0, /* U+001a9b: */ - 0, /* U+001a9c: */ - 0, /* U+001a9d: */ - 0, /* U+001a9e: */ - 0, /* U+001a9f: */ - 0, /* U+001aa0: */ - 0, /* U+001aa1: */ - 0, /* U+001aa2: */ - 0, /* U+001aa3: */ - 0, /* U+001aa4: */ - 0, /* U+001aa5: */ - 0, /* U+001aa6: */ - 0, /* U+001aa7: */ - 0, /* U+001aa8: */ - 0, /* U+001aa9: */ - 0, /* U+001aaa: */ - 0, /* U+001aab: */ - 0, /* U+001aac: */ - 0, /* U+001aad: */ - 0, /* U+001aae: */ - 0, /* U+001aaf: */ - 0, /* U+001ab0: */ - 0, /* U+001ab1: */ - 0, /* U+001ab2: */ - 0, /* U+001ab3: */ - 0, /* U+001ab4: */ - 0, /* U+001ab5: */ - 0, /* U+001ab6: */ - 0, /* U+001ab7: */ - 0, /* U+001ab8: */ - 0, /* U+001ab9: */ - 0, /* U+001aba: */ - 0, /* U+001abb: */ - 0, /* U+001abc: */ - 0, /* U+001abd: */ - 0, /* U+001abe: */ - 0, /* U+001abf: */ - 0, /* U+001ac0: */ - 0, /* U+001ac1: */ - 0, /* U+001ac2: */ - 0, /* U+001ac3: */ - 0, /* U+001ac4: */ - 0, /* U+001ac5: */ - 0, /* U+001ac6: */ - 0, /* U+001ac7: */ - 0, /* U+001ac8: */ - 0, /* U+001ac9: */ - 0, /* U+001aca: */ - 0, /* U+001acb: */ - 0, /* U+001acc: */ - 0, /* U+001acd: */ - 0, /* U+001ace: */ - 0, /* U+001acf: */ - 0, /* U+001ad0: */ - 0, /* U+001ad1: */ - 0, /* U+001ad2: */ - 0, /* U+001ad3: */ - 0, /* U+001ad4: */ - 0, /* U+001ad5: */ - 0, /* U+001ad6: */ - 0, /* U+001ad7: */ - 0, /* U+001ad8: */ - 0, /* U+001ad9: */ - 0, /* U+001ada: */ - 0, /* U+001adb: */ - 0, /* U+001adc: */ - 0, /* U+001add: */ - 0, /* U+001ade: */ - 0, /* U+001adf: */ - 0, /* U+001ae0: */ - 0, /* U+001ae1: */ - 0, /* U+001ae2: */ - 0, /* U+001ae3: */ - 0, /* U+001ae4: */ - 0, /* U+001ae5: */ - 0, /* U+001ae6: */ - 0, /* U+001ae7: */ - 0, /* U+001ae8: */ - 0, /* U+001ae9: */ - 0, /* U+001aea: */ - 0, /* U+001aeb: */ - 0, /* U+001aec: */ - 0, /* U+001aed: */ - 0, /* U+001aee: */ - 0, /* U+001aef: */ - 0, /* U+001af0: */ - 0, /* U+001af1: */ - 0, /* U+001af2: */ - 0, /* U+001af3: */ - 0, /* U+001af4: */ - 0, /* U+001af5: */ - 0, /* U+001af6: */ - 0, /* U+001af7: */ - 0, /* U+001af8: */ - 0, /* U+001af9: */ - 0, /* U+001afa: */ - 0, /* U+001afb: */ - 0, /* U+001afc: */ - 0, /* U+001afd: */ - 0, /* U+001afe: */ - 0, /* U+001aff: */ - 0, /* U+001b00: */ - 0, /* U+001b01: */ - 0, /* U+001b02: */ - 0, /* U+001b03: */ - 0, /* U+001b04: */ - 0, /* U+001b05: */ - 0, /* U+001b06: */ - 0, /* U+001b07: */ - 0, /* U+001b08: */ - 0, /* U+001b09: */ - 0, /* U+001b0a: */ - 0, /* U+001b0b: */ - 0, /* U+001b0c: */ - 0, /* U+001b0d: */ - 0, /* U+001b0e: */ - 0, /* U+001b0f: */ - 0, /* U+001b10: */ - 0, /* U+001b11: */ - 0, /* U+001b12: */ - 0, /* U+001b13: */ - 0, /* U+001b14: */ - 0, /* U+001b15: */ - 0, /* U+001b16: */ - 0, /* U+001b17: */ - 0, /* U+001b18: */ - 0, /* U+001b19: */ - 0, /* U+001b1a: */ - 0, /* U+001b1b: */ - 0, /* U+001b1c: */ - 0, /* U+001b1d: */ - 0, /* U+001b1e: */ - 0, /* U+001b1f: */ - 0, /* U+001b20: */ - 0, /* U+001b21: */ - 0, /* U+001b22: */ - 0, /* U+001b23: */ - 0, /* U+001b24: */ - 0, /* U+001b25: */ - 0, /* U+001b26: */ - 0, /* U+001b27: */ - 0, /* U+001b28: */ - 0, /* U+001b29: */ - 0, /* U+001b2a: */ - 0, /* U+001b2b: */ - 0, /* U+001b2c: */ - 0, /* U+001b2d: */ - 0, /* U+001b2e: */ - 0, /* U+001b2f: */ - 0, /* U+001b30: */ - 0, /* U+001b31: */ - 0, /* U+001b32: */ - 0, /* U+001b33: */ - 0, /* U+001b34: */ - 0, /* U+001b35: */ - 0, /* U+001b36: */ - 0, /* U+001b37: */ - 0, /* U+001b38: */ - 0, /* U+001b39: */ - 0, /* U+001b3a: */ - 0, /* U+001b3b: */ - 0, /* U+001b3c: */ - 0, /* U+001b3d: */ - 0, /* U+001b3e: */ - 0, /* U+001b3f: */ - 0, /* U+001b40: */ - 0, /* U+001b41: */ - 0, /* U+001b42: */ - 0, /* U+001b43: */ - 0, /* U+001b44: */ - 0, /* U+001b45: */ - 0, /* U+001b46: */ - 0, /* U+001b47: */ - 0, /* U+001b48: */ - 0, /* U+001b49: */ - 0, /* U+001b4a: */ - 0, /* U+001b4b: */ - 0, /* U+001b4c: */ - 0, /* U+001b4d: */ - 0, /* U+001b4e: */ - 0, /* U+001b4f: */ - 0, /* U+001b50: */ - 0, /* U+001b51: */ - 0, /* U+001b52: */ - 0, /* U+001b53: */ - 0, /* U+001b54: */ - 0, /* U+001b55: */ - 0, /* U+001b56: */ - 0, /* U+001b57: */ - 0, /* U+001b58: */ - 0, /* U+001b59: */ - 0, /* U+001b5a: */ - 0, /* U+001b5b: */ - 0, /* U+001b5c: */ - 0, /* U+001b5d: */ - 0, /* U+001b5e: */ - 0, /* U+001b5f: */ - 0, /* U+001b60: */ - 0, /* U+001b61: */ - 0, /* U+001b62: */ - 0, /* U+001b63: */ - 0, /* U+001b64: */ - 0, /* U+001b65: */ - 0, /* U+001b66: */ - 0, /* U+001b67: */ - 0, /* U+001b68: */ - 0, /* U+001b69: */ - 0, /* U+001b6a: */ - 0, /* U+001b6b: */ - 0, /* U+001b6c: */ - 0, /* U+001b6d: */ - 0, /* U+001b6e: */ - 0, /* U+001b6f: */ - 0, /* U+001b70: */ - 0, /* U+001b71: */ - 0, /* U+001b72: */ - 0, /* U+001b73: */ - 0, /* U+001b74: */ - 0, /* U+001b75: */ - 0, /* U+001b76: */ - 0, /* U+001b77: */ - 0, /* U+001b78: */ - 0, /* U+001b79: */ - 0, /* U+001b7a: */ - 0, /* U+001b7b: */ - 0, /* U+001b7c: */ - 0, /* U+001b7d: */ - 0, /* U+001b7e: */ - 0, /* U+001b7f: */ - 0, /* U+001b80: */ - 0, /* U+001b81: */ - 0, /* U+001b82: */ - 0, /* U+001b83: */ - 0, /* U+001b84: */ - 0, /* U+001b85: */ - 0, /* U+001b86: */ - 0, /* U+001b87: */ - 0, /* U+001b88: */ - 0, /* U+001b89: */ - 0, /* U+001b8a: */ - 0, /* U+001b8b: */ - 0, /* U+001b8c: */ - 0, /* U+001b8d: */ - 0, /* U+001b8e: */ - 0, /* U+001b8f: */ - 0, /* U+001b90: */ - 0, /* U+001b91: */ - 0, /* U+001b92: */ - 0, /* U+001b93: */ - 0, /* U+001b94: */ - 0, /* U+001b95: */ - 0, /* U+001b96: */ - 0, /* U+001b97: */ - 0, /* U+001b98: */ - 0, /* U+001b99: */ - 0, /* U+001b9a: */ - 0, /* U+001b9b: */ - 0, /* U+001b9c: */ - 0, /* U+001b9d: */ - 0, /* U+001b9e: */ - 0, /* U+001b9f: */ - 0, /* U+001ba0: */ - 0, /* U+001ba1: */ - 0, /* U+001ba2: */ - 0, /* U+001ba3: */ - 0, /* U+001ba4: */ - 0, /* U+001ba5: */ - 0, /* U+001ba6: */ - 0, /* U+001ba7: */ - 0, /* U+001ba8: */ - 0, /* U+001ba9: */ - 0, /* U+001baa: */ - 0, /* U+001bab: */ - 0, /* U+001bac: */ - 0, /* U+001bad: */ - 0, /* U+001bae: */ - 0, /* U+001baf: */ - 0, /* U+001bb0: */ - 0, /* U+001bb1: */ - 0, /* U+001bb2: */ - 0, /* U+001bb3: */ - 0, /* U+001bb4: */ - 0, /* U+001bb5: */ - 0, /* U+001bb6: */ - 0, /* U+001bb7: */ - 0, /* U+001bb8: */ - 0, /* U+001bb9: */ - 0, /* U+001bba: */ - 0, /* U+001bbb: */ - 0, /* U+001bbc: */ - 0, /* U+001bbd: */ - 0, /* U+001bbe: */ - 0, /* U+001bbf: */ - 0, /* U+001bc0: */ - 0, /* U+001bc1: */ - 0, /* U+001bc2: */ - 0, /* U+001bc3: */ - 0, /* U+001bc4: */ - 0, /* U+001bc5: */ - 0, /* U+001bc6: */ - 0, /* U+001bc7: */ - 0, /* U+001bc8: */ - 0, /* U+001bc9: */ - 0, /* U+001bca: */ - 0, /* U+001bcb: */ - 0, /* U+001bcc: */ - 0, /* U+001bcd: */ - 0, /* U+001bce: */ - 0, /* U+001bcf: */ - 0, /* U+001bd0: */ - 0, /* U+001bd1: */ - 0, /* U+001bd2: */ - 0, /* U+001bd3: */ - 0, /* U+001bd4: */ - 0, /* U+001bd5: */ - 0, /* U+001bd6: */ - 0, /* U+001bd7: */ - 0, /* U+001bd8: */ - 0, /* U+001bd9: */ - 0, /* U+001bda: */ - 0, /* U+001bdb: */ - 0, /* U+001bdc: */ - 0, /* U+001bdd: */ - 0, /* U+001bde: */ - 0, /* U+001bdf: */ - 0, /* U+001be0: */ - 0, /* U+001be1: */ - 0, /* U+001be2: */ - 0, /* U+001be3: */ - 0, /* U+001be4: */ - 0, /* U+001be5: */ - 0, /* U+001be6: */ - 0, /* U+001be7: */ - 0, /* U+001be8: */ - 0, /* U+001be9: */ - 0, /* U+001bea: */ - 0, /* U+001beb: */ - 0, /* U+001bec: */ - 0, /* U+001bed: */ - 0, /* U+001bee: */ - 0, /* U+001bef: */ - 0, /* U+001bf0: */ - 0, /* U+001bf1: */ - 0, /* U+001bf2: */ - 0, /* U+001bf3: */ - 0, /* U+001bf4: */ - 0, /* U+001bf5: */ - 0, /* U+001bf6: */ - 0, /* U+001bf7: */ - 0, /* U+001bf8: */ - 0, /* U+001bf9: */ - 0, /* U+001bfa: */ - 0, /* U+001bfb: */ - 0, /* U+001bfc: */ - 0, /* U+001bfd: */ - 0, /* U+001bfe: */ - 0, /* U+001bff: */ - 0, /* U+001c00: */ - 0, /* U+001c01: */ - 0, /* U+001c02: */ - 0, /* U+001c03: */ - 0, /* U+001c04: */ - 0, /* U+001c05: */ - 0, /* U+001c06: */ - 0, /* U+001c07: */ - 0, /* U+001c08: */ - 0, /* U+001c09: */ - 0, /* U+001c0a: */ - 0, /* U+001c0b: */ - 0, /* U+001c0c: */ - 0, /* U+001c0d: */ - 0, /* U+001c0e: */ - 0, /* U+001c0f: */ - 0, /* U+001c10: */ - 0, /* U+001c11: */ - 0, /* U+001c12: */ - 0, /* U+001c13: */ - 0, /* U+001c14: */ - 0, /* U+001c15: */ - 0, /* U+001c16: */ - 0, /* U+001c17: */ - 0, /* U+001c18: */ - 0, /* U+001c19: */ - 0, /* U+001c1a: */ - 0, /* U+001c1b: */ - 0, /* U+001c1c: */ - 0, /* U+001c1d: */ - 0, /* U+001c1e: */ - 0, /* U+001c1f: */ - 0, /* U+001c20: */ - 0, /* U+001c21: */ - 0, /* U+001c22: */ - 0, /* U+001c23: */ - 0, /* U+001c24: */ - 0, /* U+001c25: */ - 0, /* U+001c26: */ - 0, /* U+001c27: */ - 0, /* U+001c28: */ - 0, /* U+001c29: */ - 0, /* U+001c2a: */ - 0, /* U+001c2b: */ - 0, /* U+001c2c: */ - 0, /* U+001c2d: */ - 0, /* U+001c2e: */ - 0, /* U+001c2f: */ - 0, /* U+001c30: */ - 0, /* U+001c31: */ - 0, /* U+001c32: */ - 0, /* U+001c33: */ - 0, /* U+001c34: */ - 0, /* U+001c35: */ - 0, /* U+001c36: */ - 0, /* U+001c37: */ - 0, /* U+001c38: */ - 0, /* U+001c39: */ - 0, /* U+001c3a: */ - 0, /* U+001c3b: */ - 0, /* U+001c3c: */ - 0, /* U+001c3d: */ - 0, /* U+001c3e: */ - 0, /* U+001c3f: */ - 0, /* U+001c40: */ - 0, /* U+001c41: */ - 0, /* U+001c42: */ - 0, /* U+001c43: */ - 0, /* U+001c44: */ - 0, /* U+001c45: */ - 0, /* U+001c46: */ - 0, /* U+001c47: */ - 0, /* U+001c48: */ - 0, /* U+001c49: */ - 0, /* U+001c4a: */ - 0, /* U+001c4b: */ - 0, /* U+001c4c: */ - 0, /* U+001c4d: */ - 0, /* U+001c4e: */ - 0, /* U+001c4f: */ - 0, /* U+001c50: */ - 0, /* U+001c51: */ - 0, /* U+001c52: */ - 0, /* U+001c53: */ - 0, /* U+001c54: */ - 0, /* U+001c55: */ - 0, /* U+001c56: */ - 0, /* U+001c57: */ - 0, /* U+001c58: */ - 0, /* U+001c59: */ - 0, /* U+001c5a: */ - 0, /* U+001c5b: */ - 0, /* U+001c5c: */ - 0, /* U+001c5d: */ - 0, /* U+001c5e: */ - 0, /* U+001c5f: */ - 0, /* U+001c60: */ - 0, /* U+001c61: */ - 0, /* U+001c62: */ - 0, /* U+001c63: */ - 0, /* U+001c64: */ - 0, /* U+001c65: */ - 0, /* U+001c66: */ - 0, /* U+001c67: */ - 0, /* U+001c68: */ - 0, /* U+001c69: */ - 0, /* U+001c6a: */ - 0, /* U+001c6b: */ - 0, /* U+001c6c: */ - 0, /* U+001c6d: */ - 0, /* U+001c6e: */ - 0, /* U+001c6f: */ - 0, /* U+001c70: */ - 0, /* U+001c71: */ - 0, /* U+001c72: */ - 0, /* U+001c73: */ - 0, /* U+001c74: */ - 0, /* U+001c75: */ - 0, /* U+001c76: */ - 0, /* U+001c77: */ - 0, /* U+001c78: */ - 0, /* U+001c79: */ - 0, /* U+001c7a: */ - 0, /* U+001c7b: */ - 0, /* U+001c7c: */ - 0, /* U+001c7d: */ - 0, /* U+001c7e: */ - 0, /* U+001c7f: */ - 0, /* U+001c80: */ - 0, /* U+001c81: */ - 0, /* U+001c82: */ - 0, /* U+001c83: */ - 0, /* U+001c84: */ - 0, /* U+001c85: */ - 0, /* U+001c86: */ - 0, /* U+001c87: */ - 0, /* U+001c88: */ - 0, /* U+001c89: */ - 0, /* U+001c8a: */ - 0, /* U+001c8b: */ - 0, /* U+001c8c: */ - 0, /* U+001c8d: */ - 0, /* U+001c8e: */ - 0, /* U+001c8f: */ - 0, /* U+001c90: */ - 0, /* U+001c91: */ - 0, /* U+001c92: */ - 0, /* U+001c93: */ - 0, /* U+001c94: */ - 0, /* U+001c95: */ - 0, /* U+001c96: */ - 0, /* U+001c97: */ - 0, /* U+001c98: */ - 0, /* U+001c99: */ - 0, /* U+001c9a: */ - 0, /* U+001c9b: */ - 0, /* U+001c9c: */ - 0, /* U+001c9d: */ - 0, /* U+001c9e: */ - 0, /* U+001c9f: */ - 0, /* U+001ca0: */ - 0, /* U+001ca1: */ - 0, /* U+001ca2: */ - 0, /* U+001ca3: */ - 0, /* U+001ca4: */ - 0, /* U+001ca5: */ - 0, /* U+001ca6: */ - 0, /* U+001ca7: */ - 0, /* U+001ca8: */ - 0, /* U+001ca9: */ - 0, /* U+001caa: */ - 0, /* U+001cab: */ - 0, /* U+001cac: */ - 0, /* U+001cad: */ - 0, /* U+001cae: */ - 0, /* U+001caf: */ - 0, /* U+001cb0: */ - 0, /* U+001cb1: */ - 0, /* U+001cb2: */ - 0, /* U+001cb3: */ - 0, /* U+001cb4: */ - 0, /* U+001cb5: */ - 0, /* U+001cb6: */ - 0, /* U+001cb7: */ - 0, /* U+001cb8: */ - 0, /* U+001cb9: */ - 0, /* U+001cba: */ - 0, /* U+001cbb: */ - 0, /* U+001cbc: */ - 0, /* U+001cbd: */ - 0, /* U+001cbe: */ - 0, /* U+001cbf: */ - 0, /* U+001cc0: */ - 0, /* U+001cc1: */ - 0, /* U+001cc2: */ - 0, /* U+001cc3: */ - 0, /* U+001cc4: */ - 0, /* U+001cc5: */ - 0, /* U+001cc6: */ - 0, /* U+001cc7: */ - 0, /* U+001cc8: */ - 0, /* U+001cc9: */ - 0, /* U+001cca: */ - 0, /* U+001ccb: */ - 0, /* U+001ccc: */ - 0, /* U+001ccd: */ - 0, /* U+001cce: */ - 0, /* U+001ccf: */ - 0, /* U+001cd0: */ - 0, /* U+001cd1: */ - 0, /* U+001cd2: */ - 0, /* U+001cd3: */ - 0, /* U+001cd4: */ - 0, /* U+001cd5: */ - 0, /* U+001cd6: */ - 0, /* U+001cd7: */ - 0, /* U+001cd8: */ - 0, /* U+001cd9: */ - 0, /* U+001cda: */ - 0, /* U+001cdb: */ - 0, /* U+001cdc: */ - 0, /* U+001cdd: */ - 0, /* U+001cde: */ - 0, /* U+001cdf: */ - 0, /* U+001ce0: */ - 0, /* U+001ce1: */ - 0, /* U+001ce2: */ - 0, /* U+001ce3: */ - 0, /* U+001ce4: */ - 0, /* U+001ce5: */ - 0, /* U+001ce6: */ - 0, /* U+001ce7: */ - 0, /* U+001ce8: */ - 0, /* U+001ce9: */ - 0, /* U+001cea: */ - 0, /* U+001ceb: */ - 0, /* U+001cec: */ - 0, /* U+001ced: */ - 0, /* U+001cee: */ - 0, /* U+001cef: */ - 0, /* U+001cf0: */ - 0, /* U+001cf1: */ - 0, /* U+001cf2: */ - 0, /* U+001cf3: */ - 0, /* U+001cf4: */ - 0, /* U+001cf5: */ - 0, /* U+001cf6: */ - 0, /* U+001cf7: */ - 0, /* U+001cf8: */ - 0, /* U+001cf9: */ - 0, /* U+001cfa: */ - 0, /* U+001cfb: */ - 0, /* U+001cfc: */ - 0, /* U+001cfd: */ - 0, /* U+001cfe: */ - 0, /* U+001cff: */ - RTUNI_ALPHA | RTUNI_LOWER, /* U+001d00: LATIN LETTER SMALL CAPITAL A*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+001d01: LATIN LETTER SMALL CAPITAL AE*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+001d02: LATIN SMALL LETTER TURNED AE*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+001d03: LATIN LETTER SMALL CAPITAL BARRED B*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+001d04: LATIN LETTER SMALL CAPITAL C*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+001d05: LATIN LETTER SMALL CAPITAL D*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+001d06: LATIN LETTER SMALL CAPITAL ETH*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+001d07: LATIN LETTER SMALL CAPITAL E*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+001d08: LATIN SMALL LETTER TURNED OPEN E*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+001d09: LATIN SMALL LETTER TURNED I*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+001d0a: LATIN LETTER SMALL CAPITAL J*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+001d0b: LATIN LETTER SMALL CAPITAL K*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+001d0c: LATIN LETTER SMALL CAPITAL L WITH STROKE*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+001d0d: LATIN LETTER SMALL CAPITAL M*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+001d0e: LATIN LETTER SMALL CAPITAL REVERSED N*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+001d0f: LATIN LETTER SMALL CAPITAL O*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+001d10: LATIN LETTER SMALL CAPITAL OPEN O*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+001d11: LATIN SMALL LETTER SIDEWAYS O*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+001d12: LATIN SMALL LETTER SIDEWAYS OPEN O*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+001d13: LATIN SMALL LETTER SIDEWAYS O WITH STROKE*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+001d14: LATIN SMALL LETTER TURNED OE*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+001d15: LATIN LETTER SMALL CAPITAL OU*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+001d16: LATIN SMALL LETTER TOP HALF O*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+001d17: LATIN SMALL LETTER BOTTOM HALF O*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+001d18: LATIN LETTER SMALL CAPITAL P*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+001d19: LATIN LETTER SMALL CAPITAL REVERSED R*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+001d1a: LATIN LETTER SMALL CAPITAL TURNED R*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+001d1b: LATIN LETTER SMALL CAPITAL T*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+001d1c: LATIN LETTER SMALL CAPITAL U*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+001d1d: LATIN SMALL LETTER SIDEWAYS U*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+001d1e: LATIN SMALL LETTER SIDEWAYS DIAERESIZED U*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+001d1f: LATIN SMALL LETTER SIDEWAYS TURNED M*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+001d20: LATIN LETTER SMALL CAPITAL V*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+001d21: LATIN LETTER SMALL CAPITAL W*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+001d22: LATIN LETTER SMALL CAPITAL Z*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+001d23: LATIN LETTER SMALL CAPITAL EZH*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+001d24: LATIN LETTER VOICED LARYNGEAL SPIRANT*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+001d25: LATIN LETTER AIN*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+001d26: GREEK LETTER SMALL CAPITAL GAMMA*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+001d27: GREEK LETTER SMALL CAPITAL LAMDA*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+001d28: GREEK LETTER SMALL CAPITAL PI*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+001d29: GREEK LETTER SMALL CAPITAL RHO*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+001d2a: GREEK LETTER SMALL CAPITAL PSI*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+001d2b: CYRILLIC LETTER SMALL CAPITAL EL*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+001d2c: MODIFIER LETTER CAPITAL A*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+001d2d: MODIFIER LETTER CAPITAL AE*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+001d2e: MODIFIER LETTER CAPITAL B*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+001d2f: MODIFIER LETTER CAPITAL BARRED B*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+001d30: MODIFIER LETTER CAPITAL D*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+001d31: MODIFIER LETTER CAPITAL E*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+001d32: MODIFIER LETTER CAPITAL REVERSED E*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+001d33: MODIFIER LETTER CAPITAL G*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+001d34: MODIFIER LETTER CAPITAL H*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+001d35: MODIFIER LETTER CAPITAL I*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+001d36: MODIFIER LETTER CAPITAL J*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+001d37: MODIFIER LETTER CAPITAL K*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+001d38: MODIFIER LETTER CAPITAL L*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+001d39: MODIFIER LETTER CAPITAL M*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+001d3a: MODIFIER LETTER CAPITAL N*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+001d3b: MODIFIER LETTER CAPITAL REVERSED N*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+001d3c: MODIFIER LETTER CAPITAL O*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+001d3d: MODIFIER LETTER CAPITAL OU*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+001d3e: MODIFIER LETTER CAPITAL P*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+001d3f: MODIFIER LETTER CAPITAL R*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+001d40: MODIFIER LETTER CAPITAL T*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+001d41: MODIFIER LETTER CAPITAL U*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+001d42: MODIFIER LETTER CAPITAL W*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+001d43: MODIFIER LETTER SMALL A*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+001d44: MODIFIER LETTER SMALL TURNED A*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+001d45: MODIFIER LETTER SMALL ALPHA*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+001d46: MODIFIER LETTER SMALL TURNED AE*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+001d47: MODIFIER LETTER SMALL B*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+001d48: MODIFIER LETTER SMALL D*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+001d49: MODIFIER LETTER SMALL E*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+001d4a: MODIFIER LETTER SMALL SCHWA*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+001d4b: MODIFIER LETTER SMALL OPEN E*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+001d4c: MODIFIER LETTER SMALL TURNED OPEN E*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+001d4d: MODIFIER LETTER SMALL G*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+001d4e: MODIFIER LETTER SMALL TURNED I*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+001d4f: MODIFIER LETTER SMALL K*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+001d50: MODIFIER LETTER SMALL M*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+001d51: MODIFIER LETTER SMALL ENG*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+001d52: MODIFIER LETTER SMALL O*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+001d53: MODIFIER LETTER SMALL OPEN O*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+001d54: MODIFIER LETTER SMALL TOP HALF O*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+001d55: MODIFIER LETTER SMALL BOTTOM HALF O*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+001d56: MODIFIER LETTER SMALL P*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+001d57: MODIFIER LETTER SMALL T*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+001d58: MODIFIER LETTER SMALL U*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+001d59: MODIFIER LETTER SMALL SIDEWAYS U*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+001d5a: MODIFIER LETTER SMALL TURNED M*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+001d5b: MODIFIER LETTER SMALL V*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+001d5c: MODIFIER LETTER SMALL AIN*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+001d5d: MODIFIER LETTER SMALL BETA*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+001d5e: MODIFIER LETTER SMALL GREEK GAMMA*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+001d5f: MODIFIER LETTER SMALL DELTA*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+001d60: MODIFIER LETTER SMALL GREEK PHI*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+001d61: MODIFIER LETTER SMALL CHI*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+001d62: LATIN SUBSCRIPT SMALL LETTER I*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+001d63: LATIN SUBSCRIPT SMALL LETTER R*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+001d64: LATIN SUBSCRIPT SMALL LETTER U*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+001d65: LATIN SUBSCRIPT SMALL LETTER V*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+001d66: GREEK SUBSCRIPT SMALL LETTER BETA*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+001d67: GREEK SUBSCRIPT SMALL LETTER GAMMA*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+001d68: GREEK SUBSCRIPT SMALL LETTER RHO*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+001d69: GREEK SUBSCRIPT SMALL LETTER PHI*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+001d6a: GREEK SUBSCRIPT SMALL LETTER CHI*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+001d6b: LATIN SMALL LETTER UE*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+001d6c: LATIN SMALL LETTER B WITH MIDDLE TILDE*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+001d6d: LATIN SMALL LETTER D WITH MIDDLE TILDE*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+001d6e: LATIN SMALL LETTER F WITH MIDDLE TILDE*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+001d6f: LATIN SMALL LETTER M WITH MIDDLE TILDE*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+001d70: LATIN SMALL LETTER N WITH MIDDLE TILDE*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+001d71: LATIN SMALL LETTER P WITH MIDDLE TILDE*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+001d72: LATIN SMALL LETTER R WITH MIDDLE TILDE*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+001d73: LATIN SMALL LETTER R WITH FISHHOOK AND MIDDLE TILDE*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+001d74: LATIN SMALL LETTER S WITH MIDDLE TILDE*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+001d75: LATIN SMALL LETTER T WITH MIDDLE TILDE*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+001d76: LATIN SMALL LETTER Z WITH MIDDLE TILDE*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+001d77: LATIN SMALL LETTER TURNED G*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+001d78: MODIFIER LETTER CYRILLIC EN*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+001d79: LATIN SMALL LETTER INSULAR G*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+001d7a: LATIN SMALL LETTER TH WITH STRIKETHROUGH*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+001d7b: LATIN SMALL CAPITAL LETTER I WITH STROKE*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+001d7c: LATIN SMALL LETTER IOTA WITH STROKE*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+001d7d: LATIN SMALL LETTER P WITH STROKE*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+001d7e: LATIN SMALL CAPITAL LETTER U WITH STROKE*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+001d7f: LATIN SMALL LETTER UPSILON WITH STROKE*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+001d80: LATIN SMALL LETTER B WITH PALATAL HOOK*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+001d81: LATIN SMALL LETTER D WITH PALATAL HOOK*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+001d82: LATIN SMALL LETTER F WITH PALATAL HOOK*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+001d83: LATIN SMALL LETTER G WITH PALATAL HOOK*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+001d84: LATIN SMALL LETTER K WITH PALATAL HOOK*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+001d85: LATIN SMALL LETTER L WITH PALATAL HOOK*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+001d86: LATIN SMALL LETTER M WITH PALATAL HOOK*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+001d87: LATIN SMALL LETTER N WITH PALATAL HOOK*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+001d88: LATIN SMALL LETTER P WITH PALATAL HOOK*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+001d89: LATIN SMALL LETTER R WITH PALATAL HOOK*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+001d8a: LATIN SMALL LETTER S WITH PALATAL HOOK*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+001d8b: LATIN SMALL LETTER ESH WITH PALATAL HOOK*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+001d8c: LATIN SMALL LETTER V WITH PALATAL HOOK*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+001d8d: LATIN SMALL LETTER X WITH PALATAL HOOK*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+001d8e: LATIN SMALL LETTER Z WITH PALATAL HOOK*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+001d8f: LATIN SMALL LETTER A WITH RETROFLEX HOOK*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+001d90: LATIN SMALL LETTER ALPHA WITH RETROFLEX HOOK*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+001d91: LATIN SMALL LETTER D WITH HOOK AND TAIL*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+001d92: LATIN SMALL LETTER E WITH RETROFLEX HOOK*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+001d93: LATIN SMALL LETTER OPEN E WITH RETROFLEX HOOK*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+001d94: LATIN SMALL LETTER REVERSED OPEN E WITH RETROFLEX HOOK*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+001d95: LATIN SMALL LETTER SCHWA WITH RETROFLEX HOOK*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+001d96: LATIN SMALL LETTER I WITH RETROFLEX HOOK*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+001d97: LATIN SMALL LETTER OPEN O WITH RETROFLEX HOOK*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+001d98: LATIN SMALL LETTER ESH WITH RETROFLEX HOOK*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+001d99: LATIN SMALL LETTER U WITH RETROFLEX HOOK*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+001d9a: LATIN SMALL LETTER EZH WITH RETROFLEX HOOK*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+001d9b: MODIFIER LETTER SMALL TURNED ALPHA*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+001d9c: MODIFIER LETTER SMALL C*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+001d9d: MODIFIER LETTER SMALL C WITH CURL*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+001d9e: MODIFIER LETTER SMALL ETH*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+001d9f: MODIFIER LETTER SMALL REVERSED OPEN E*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+001da0: MODIFIER LETTER SMALL F*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+001da1: MODIFIER LETTER SMALL DOTLESS J WITH STROKE*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+001da2: MODIFIER LETTER SMALL SCRIPT G*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+001da3: MODIFIER LETTER SMALL TURNED H*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+001da4: MODIFIER LETTER SMALL I WITH STROKE*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+001da5: MODIFIER LETTER SMALL IOTA*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+001da6: MODIFIER LETTER SMALL CAPITAL I*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+001da7: MODIFIER LETTER SMALL CAPITAL I WITH STROKE*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+001da8: MODIFIER LETTER SMALL J WITH CROSSED-TAIL*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+001da9: MODIFIER LETTER SMALL L WITH RETROFLEX HOOK*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+001daa: MODIFIER LETTER SMALL L WITH PALATAL HOOK*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+001dab: MODIFIER LETTER SMALL CAPITAL L*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+001dac: MODIFIER LETTER SMALL M WITH HOOK*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+001dad: MODIFIER LETTER SMALL TURNED M WITH LONG LEG*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+001dae: MODIFIER LETTER SMALL N WITH LEFT HOOK*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+001daf: MODIFIER LETTER SMALL N WITH RETROFLEX HOOK*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+001db0: MODIFIER LETTER SMALL CAPITAL N*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+001db1: MODIFIER LETTER SMALL BARRED O*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+001db2: MODIFIER LETTER SMALL PHI*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+001db3: MODIFIER LETTER SMALL S WITH HOOK*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+001db4: MODIFIER LETTER SMALL ESH*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+001db5: MODIFIER LETTER SMALL T WITH PALATAL HOOK*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+001db6: MODIFIER LETTER SMALL U BAR*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+001db7: MODIFIER LETTER SMALL UPSILON*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+001db8: MODIFIER LETTER SMALL CAPITAL U*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+001db9: MODIFIER LETTER SMALL V WITH HOOK*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+001dba: MODIFIER LETTER SMALL TURNED V*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+001dbb: MODIFIER LETTER SMALL Z*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+001dbc: MODIFIER LETTER SMALL Z WITH RETROFLEX HOOK*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+001dbd: MODIFIER LETTER SMALL Z WITH CURL*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+001dbe: MODIFIER LETTER SMALL EZH*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+001dbf: MODIFIER LETTER SMALL THETA*/ - 0, /* U+001dc0: COMBINING DOTTED GRAVE ACCENT*/ - 0, /* U+001dc1: COMBINING DOTTED ACUTE ACCENT*/ - 0, /* U+001dc2: COMBINING SNAKE BELOW*/ - 0, /* U+001dc3: COMBINING SUSPENSION MARK*/ - 0, /* U+001dc4: */ - 0, /* U+001dc5: */ - 0, /* U+001dc6: */ - 0, /* U+001dc7: */ - 0, /* U+001dc8: */ - 0, /* U+001dc9: */ - 0, /* U+001dca: */ - 0, /* U+001dcb: */ - 0, /* U+001dcc: */ - 0, /* U+001dcd: */ - 0, /* U+001dce: */ - 0, /* U+001dcf: */ - 0, /* U+001dd0: */ - 0, /* U+001dd1: */ - 0, /* U+001dd2: */ - 0, /* U+001dd3: */ - 0, /* U+001dd4: */ - 0, /* U+001dd5: */ - 0, /* U+001dd6: */ - 0, /* U+001dd7: */ - 0, /* U+001dd8: */ - 0, /* U+001dd9: */ - 0, /* U+001dda: */ - 0, /* U+001ddb: */ - 0, /* U+001ddc: */ - 0, /* U+001ddd: */ - 0, /* U+001dde: */ - 0, /* U+001ddf: */ - 0, /* U+001de0: */ - 0, /* U+001de1: */ - 0, /* U+001de2: */ - 0, /* U+001de3: */ - 0, /* U+001de4: */ - 0, /* U+001de5: */ - 0, /* U+001de6: */ - 0, /* U+001de7: */ - 0, /* U+001de8: */ - 0, /* U+001de9: */ - 0, /* U+001dea: */ - 0, /* U+001deb: */ - 0, /* U+001dec: */ - 0, /* U+001ded: */ - 0, /* U+001dee: */ - 0, /* U+001def: */ - 0, /* U+001df0: */ - 0, /* U+001df1: */ - 0, /* U+001df2: */ - 0, /* U+001df3: */ - 0, /* U+001df4: */ - 0, /* U+001df5: */ - 0, /* U+001df6: */ - 0, /* U+001df7: */ - 0, /* U+001df8: */ - 0, /* U+001df9: */ - 0, /* U+001dfa: */ - 0, /* U+001dfb: */ - 0, /* U+001dfc: */ - 0, /* U+001dfd: */ - 0, /* U+001dfe: */ - 0, /* U+001dff: */ - RTUNI_ALPHA | RTUNI_UPPER, /* U+001e00: LATIN CAPITAL LETTER A WITH RING BELOW*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+001e01: LATIN SMALL LETTER A WITH RING BELOW*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+001e02: LATIN CAPITAL LETTER B WITH DOT ABOVE*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+001e03: LATIN SMALL LETTER B WITH DOT ABOVE*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+001e04: LATIN CAPITAL LETTER B WITH DOT BELOW*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+001e05: LATIN SMALL LETTER B WITH DOT BELOW*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+001e06: LATIN CAPITAL LETTER B WITH LINE BELOW*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+001e07: LATIN SMALL LETTER B WITH LINE BELOW*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+001e08: LATIN CAPITAL LETTER C WITH CEDILLA AND ACUTE*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+001e09: LATIN SMALL LETTER C WITH CEDILLA AND ACUTE*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+001e0a: LATIN CAPITAL LETTER D WITH DOT ABOVE*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+001e0b: LATIN SMALL LETTER D WITH DOT ABOVE*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+001e0c: LATIN CAPITAL LETTER D WITH DOT BELOW*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+001e0d: LATIN SMALL LETTER D WITH DOT BELOW*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+001e0e: LATIN CAPITAL LETTER D WITH LINE BELOW*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+001e0f: LATIN SMALL LETTER D WITH LINE BELOW*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+001e10: LATIN CAPITAL LETTER D WITH CEDILLA*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+001e11: LATIN SMALL LETTER D WITH CEDILLA*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+001e12: LATIN CAPITAL LETTER D WITH CIRCUMFLEX BELOW*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+001e13: LATIN SMALL LETTER D WITH CIRCUMFLEX BELOW*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+001e14: LATIN CAPITAL LETTER E WITH MACRON AND GRAVE*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+001e15: LATIN SMALL LETTER E WITH MACRON AND GRAVE*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+001e16: LATIN CAPITAL LETTER E WITH MACRON AND ACUTE*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+001e17: LATIN SMALL LETTER E WITH MACRON AND ACUTE*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+001e18: LATIN CAPITAL LETTER E WITH CIRCUMFLEX BELOW*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+001e19: LATIN SMALL LETTER E WITH CIRCUMFLEX BELOW*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+001e1a: LATIN CAPITAL LETTER E WITH TILDE BELOW*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+001e1b: LATIN SMALL LETTER E WITH TILDE BELOW*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+001e1c: LATIN CAPITAL LETTER E WITH CEDILLA AND BREVE*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+001e1d: LATIN SMALL LETTER E WITH CEDILLA AND BREVE*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+001e1e: LATIN CAPITAL LETTER F WITH DOT ABOVE*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+001e1f: LATIN SMALL LETTER F WITH DOT ABOVE*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+001e20: LATIN CAPITAL LETTER G WITH MACRON*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+001e21: LATIN SMALL LETTER G WITH MACRON*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+001e22: LATIN CAPITAL LETTER H WITH DOT ABOVE*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+001e23: LATIN SMALL LETTER H WITH DOT ABOVE*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+001e24: LATIN CAPITAL LETTER H WITH DOT BELOW*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+001e25: LATIN SMALL LETTER H WITH DOT BELOW*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+001e26: LATIN CAPITAL LETTER H WITH DIAERESIS*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+001e27: LATIN SMALL LETTER H WITH DIAERESIS*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+001e28: LATIN CAPITAL LETTER H WITH CEDILLA*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+001e29: LATIN SMALL LETTER H WITH CEDILLA*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+001e2a: LATIN CAPITAL LETTER H WITH BREVE BELOW*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+001e2b: LATIN SMALL LETTER H WITH BREVE BELOW*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+001e2c: LATIN CAPITAL LETTER I WITH TILDE BELOW*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+001e2d: LATIN SMALL LETTER I WITH TILDE BELOW*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+001e2e: LATIN CAPITAL LETTER I WITH DIAERESIS AND ACUTE*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+001e2f: LATIN SMALL LETTER I WITH DIAERESIS AND ACUTE*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+001e30: LATIN CAPITAL LETTER K WITH ACUTE*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+001e31: LATIN SMALL LETTER K WITH ACUTE*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+001e32: LATIN CAPITAL LETTER K WITH DOT BELOW*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+001e33: LATIN SMALL LETTER K WITH DOT BELOW*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+001e34: LATIN CAPITAL LETTER K WITH LINE BELOW*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+001e35: LATIN SMALL LETTER K WITH LINE BELOW*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+001e36: LATIN CAPITAL LETTER L WITH DOT BELOW*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+001e37: LATIN SMALL LETTER L WITH DOT BELOW*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+001e38: LATIN CAPITAL LETTER L WITH DOT BELOW AND MACRON*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+001e39: LATIN SMALL LETTER L WITH DOT BELOW AND MACRON*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+001e3a: LATIN CAPITAL LETTER L WITH LINE BELOW*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+001e3b: LATIN SMALL LETTER L WITH LINE BELOW*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+001e3c: LATIN CAPITAL LETTER L WITH CIRCUMFLEX BELOW*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+001e3d: LATIN SMALL LETTER L WITH CIRCUMFLEX BELOW*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+001e3e: LATIN CAPITAL LETTER M WITH ACUTE*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+001e3f: LATIN SMALL LETTER M WITH ACUTE*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+001e40: LATIN CAPITAL LETTER M WITH DOT ABOVE*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+001e41: LATIN SMALL LETTER M WITH DOT ABOVE*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+001e42: LATIN CAPITAL LETTER M WITH DOT BELOW*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+001e43: LATIN SMALL LETTER M WITH DOT BELOW*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+001e44: LATIN CAPITAL LETTER N WITH DOT ABOVE*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+001e45: LATIN SMALL LETTER N WITH DOT ABOVE*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+001e46: LATIN CAPITAL LETTER N WITH DOT BELOW*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+001e47: LATIN SMALL LETTER N WITH DOT BELOW*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+001e48: LATIN CAPITAL LETTER N WITH LINE BELOW*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+001e49: LATIN SMALL LETTER N WITH LINE BELOW*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+001e4a: LATIN CAPITAL LETTER N WITH CIRCUMFLEX BELOW*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+001e4b: LATIN SMALL LETTER N WITH CIRCUMFLEX BELOW*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+001e4c: LATIN CAPITAL LETTER O WITH TILDE AND ACUTE*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+001e4d: LATIN SMALL LETTER O WITH TILDE AND ACUTE*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+001e4e: LATIN CAPITAL LETTER O WITH TILDE AND DIAERESIS*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+001e4f: LATIN SMALL LETTER O WITH TILDE AND DIAERESIS*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+001e50: LATIN CAPITAL LETTER O WITH MACRON AND GRAVE*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+001e51: LATIN SMALL LETTER O WITH MACRON AND GRAVE*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+001e52: LATIN CAPITAL LETTER O WITH MACRON AND ACUTE*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+001e53: LATIN SMALL LETTER O WITH MACRON AND ACUTE*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+001e54: LATIN CAPITAL LETTER P WITH ACUTE*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+001e55: LATIN SMALL LETTER P WITH ACUTE*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+001e56: LATIN CAPITAL LETTER P WITH DOT ABOVE*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+001e57: LATIN SMALL LETTER P WITH DOT ABOVE*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+001e58: LATIN CAPITAL LETTER R WITH DOT ABOVE*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+001e59: LATIN SMALL LETTER R WITH DOT ABOVE*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+001e5a: LATIN CAPITAL LETTER R WITH DOT BELOW*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+001e5b: LATIN SMALL LETTER R WITH DOT BELOW*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+001e5c: LATIN CAPITAL LETTER R WITH DOT BELOW AND MACRON*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+001e5d: LATIN SMALL LETTER R WITH DOT BELOW AND MACRON*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+001e5e: LATIN CAPITAL LETTER R WITH LINE BELOW*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+001e5f: LATIN SMALL LETTER R WITH LINE BELOW*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+001e60: LATIN CAPITAL LETTER S WITH DOT ABOVE*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+001e61: LATIN SMALL LETTER S WITH DOT ABOVE*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+001e62: LATIN CAPITAL LETTER S WITH DOT BELOW*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+001e63: LATIN SMALL LETTER S WITH DOT BELOW*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+001e64: LATIN CAPITAL LETTER S WITH ACUTE AND DOT ABOVE*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+001e65: LATIN SMALL LETTER S WITH ACUTE AND DOT ABOVE*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+001e66: LATIN CAPITAL LETTER S WITH CARON AND DOT ABOVE*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+001e67: LATIN SMALL LETTER S WITH CARON AND DOT ABOVE*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+001e68: LATIN CAPITAL LETTER S WITH DOT BELOW AND DOT ABOVE*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+001e69: LATIN SMALL LETTER S WITH DOT BELOW AND DOT ABOVE*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+001e6a: LATIN CAPITAL LETTER T WITH DOT ABOVE*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+001e6b: LATIN SMALL LETTER T WITH DOT ABOVE*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+001e6c: LATIN CAPITAL LETTER T WITH DOT BELOW*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+001e6d: LATIN SMALL LETTER T WITH DOT BELOW*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+001e6e: LATIN CAPITAL LETTER T WITH LINE BELOW*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+001e6f: LATIN SMALL LETTER T WITH LINE BELOW*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+001e70: LATIN CAPITAL LETTER T WITH CIRCUMFLEX BELOW*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+001e71: LATIN SMALL LETTER T WITH CIRCUMFLEX BELOW*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+001e72: LATIN CAPITAL LETTER U WITH DIAERESIS BELOW*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+001e73: LATIN SMALL LETTER U WITH DIAERESIS BELOW*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+001e74: LATIN CAPITAL LETTER U WITH TILDE BELOW*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+001e75: LATIN SMALL LETTER U WITH TILDE BELOW*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+001e76: LATIN CAPITAL LETTER U WITH CIRCUMFLEX BELOW*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+001e77: LATIN SMALL LETTER U WITH CIRCUMFLEX BELOW*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+001e78: LATIN CAPITAL LETTER U WITH TILDE AND ACUTE*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+001e79: LATIN SMALL LETTER U WITH TILDE AND ACUTE*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+001e7a: LATIN CAPITAL LETTER U WITH MACRON AND DIAERESIS*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+001e7b: LATIN SMALL LETTER U WITH MACRON AND DIAERESIS*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+001e7c: LATIN CAPITAL LETTER V WITH TILDE*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+001e7d: LATIN SMALL LETTER V WITH TILDE*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+001e7e: LATIN CAPITAL LETTER V WITH DOT BELOW*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+001e7f: LATIN SMALL LETTER V WITH DOT BELOW*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+001e80: LATIN CAPITAL LETTER W WITH GRAVE*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+001e81: LATIN SMALL LETTER W WITH GRAVE*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+001e82: LATIN CAPITAL LETTER W WITH ACUTE*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+001e83: LATIN SMALL LETTER W WITH ACUTE*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+001e84: LATIN CAPITAL LETTER W WITH DIAERESIS*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+001e85: LATIN SMALL LETTER W WITH DIAERESIS*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+001e86: LATIN CAPITAL LETTER W WITH DOT ABOVE*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+001e87: LATIN SMALL LETTER W WITH DOT ABOVE*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+001e88: LATIN CAPITAL LETTER W WITH DOT BELOW*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+001e89: LATIN SMALL LETTER W WITH DOT BELOW*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+001e8a: LATIN CAPITAL LETTER X WITH DOT ABOVE*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+001e8b: LATIN SMALL LETTER X WITH DOT ABOVE*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+001e8c: LATIN CAPITAL LETTER X WITH DIAERESIS*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+001e8d: LATIN SMALL LETTER X WITH DIAERESIS*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+001e8e: LATIN CAPITAL LETTER Y WITH DOT ABOVE*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+001e8f: LATIN SMALL LETTER Y WITH DOT ABOVE*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+001e90: LATIN CAPITAL LETTER Z WITH CIRCUMFLEX*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+001e91: LATIN SMALL LETTER Z WITH CIRCUMFLEX*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+001e92: LATIN CAPITAL LETTER Z WITH DOT BELOW*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+001e93: LATIN SMALL LETTER Z WITH DOT BELOW*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+001e94: LATIN CAPITAL LETTER Z WITH LINE BELOW*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+001e95: LATIN SMALL LETTER Z WITH LINE BELOW*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+001e96: LATIN SMALL LETTER H WITH LINE BELOW*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+001e97: LATIN SMALL LETTER T WITH DIAERESIS*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+001e98: LATIN SMALL LETTER W WITH RING ABOVE*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+001e99: LATIN SMALL LETTER Y WITH RING ABOVE*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+001e9a: LATIN SMALL LETTER A WITH RIGHT HALF RING*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+001e9b: LATIN SMALL LETTER LONG S WITH DOT ABOVE*/ - 0, /* U+001e9c: */ - 0, /* U+001e9d: */ - 0, /* U+001e9e: */ - 0, /* U+001e9f: */ - RTUNI_ALPHA | RTUNI_UPPER, /* U+001ea0: LATIN CAPITAL LETTER A WITH DOT BELOW*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+001ea1: LATIN SMALL LETTER A WITH DOT BELOW*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+001ea2: LATIN CAPITAL LETTER A WITH HOOK ABOVE*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+001ea3: LATIN SMALL LETTER A WITH HOOK ABOVE*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+001ea4: LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND ACUTE*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+001ea5: LATIN SMALL LETTER A WITH CIRCUMFLEX AND ACUTE*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+001ea6: LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND GRAVE*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+001ea7: LATIN SMALL LETTER A WITH CIRCUMFLEX AND GRAVE*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+001ea8: LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND HOOK ABOVE*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+001ea9: LATIN SMALL LETTER A WITH CIRCUMFLEX AND HOOK ABOVE*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+001eaa: LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND TILDE*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+001eab: LATIN SMALL LETTER A WITH CIRCUMFLEX AND TILDE*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+001eac: LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND DOT BELOW*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+001ead: LATIN SMALL LETTER A WITH CIRCUMFLEX AND DOT BELOW*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+001eae: LATIN CAPITAL LETTER A WITH BREVE AND ACUTE*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+001eaf: LATIN SMALL LETTER A WITH BREVE AND ACUTE*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+001eb0: LATIN CAPITAL LETTER A WITH BREVE AND GRAVE*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+001eb1: LATIN SMALL LETTER A WITH BREVE AND GRAVE*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+001eb2: LATIN CAPITAL LETTER A WITH BREVE AND HOOK ABOVE*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+001eb3: LATIN SMALL LETTER A WITH BREVE AND HOOK ABOVE*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+001eb4: LATIN CAPITAL LETTER A WITH BREVE AND TILDE*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+001eb5: LATIN SMALL LETTER A WITH BREVE AND TILDE*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+001eb6: LATIN CAPITAL LETTER A WITH BREVE AND DOT BELOW*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+001eb7: LATIN SMALL LETTER A WITH BREVE AND DOT BELOW*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+001eb8: LATIN CAPITAL LETTER E WITH DOT BELOW*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+001eb9: LATIN SMALL LETTER E WITH DOT BELOW*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+001eba: LATIN CAPITAL LETTER E WITH HOOK ABOVE*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+001ebb: LATIN SMALL LETTER E WITH HOOK ABOVE*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+001ebc: LATIN CAPITAL LETTER E WITH TILDE*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+001ebd: LATIN SMALL LETTER E WITH TILDE*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+001ebe: LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND ACUTE*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+001ebf: LATIN SMALL LETTER E WITH CIRCUMFLEX AND ACUTE*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+001ec0: LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND GRAVE*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+001ec1: LATIN SMALL LETTER E WITH CIRCUMFLEX AND GRAVE*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+001ec2: LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND HOOK ABOVE*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+001ec3: LATIN SMALL LETTER E WITH CIRCUMFLEX AND HOOK ABOVE*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+001ec4: LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND TILDE*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+001ec5: LATIN SMALL LETTER E WITH CIRCUMFLEX AND TILDE*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+001ec6: LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND DOT BELOW*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+001ec7: LATIN SMALL LETTER E WITH CIRCUMFLEX AND DOT BELOW*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+001ec8: LATIN CAPITAL LETTER I WITH HOOK ABOVE*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+001ec9: LATIN SMALL LETTER I WITH HOOK ABOVE*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+001eca: LATIN CAPITAL LETTER I WITH DOT BELOW*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+001ecb: LATIN SMALL LETTER I WITH DOT BELOW*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+001ecc: LATIN CAPITAL LETTER O WITH DOT BELOW*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+001ecd: LATIN SMALL LETTER O WITH DOT BELOW*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+001ece: LATIN CAPITAL LETTER O WITH HOOK ABOVE*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+001ecf: LATIN SMALL LETTER O WITH HOOK ABOVE*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+001ed0: LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND ACUTE*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+001ed1: LATIN SMALL LETTER O WITH CIRCUMFLEX AND ACUTE*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+001ed2: LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND GRAVE*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+001ed3: LATIN SMALL LETTER O WITH CIRCUMFLEX AND GRAVE*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+001ed4: LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND HOOK ABOVE*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+001ed5: LATIN SMALL LETTER O WITH CIRCUMFLEX AND HOOK ABOVE*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+001ed6: LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND TILDE*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+001ed7: LATIN SMALL LETTER O WITH CIRCUMFLEX AND TILDE*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+001ed8: LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND DOT BELOW*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+001ed9: LATIN SMALL LETTER O WITH CIRCUMFLEX AND DOT BELOW*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+001eda: LATIN CAPITAL LETTER O WITH HORN AND ACUTE*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+001edb: LATIN SMALL LETTER O WITH HORN AND ACUTE*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+001edc: LATIN CAPITAL LETTER O WITH HORN AND GRAVE*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+001edd: LATIN SMALL LETTER O WITH HORN AND GRAVE*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+001ede: LATIN CAPITAL LETTER O WITH HORN AND HOOK ABOVE*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+001edf: LATIN SMALL LETTER O WITH HORN AND HOOK ABOVE*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+001ee0: LATIN CAPITAL LETTER O WITH HORN AND TILDE*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+001ee1: LATIN SMALL LETTER O WITH HORN AND TILDE*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+001ee2: LATIN CAPITAL LETTER O WITH HORN AND DOT BELOW*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+001ee3: LATIN SMALL LETTER O WITH HORN AND DOT BELOW*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+001ee4: LATIN CAPITAL LETTER U WITH DOT BELOW*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+001ee5: LATIN SMALL LETTER U WITH DOT BELOW*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+001ee6: LATIN CAPITAL LETTER U WITH HOOK ABOVE*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+001ee7: LATIN SMALL LETTER U WITH HOOK ABOVE*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+001ee8: LATIN CAPITAL LETTER U WITH HORN AND ACUTE*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+001ee9: LATIN SMALL LETTER U WITH HORN AND ACUTE*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+001eea: LATIN CAPITAL LETTER U WITH HORN AND GRAVE*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+001eeb: LATIN SMALL LETTER U WITH HORN AND GRAVE*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+001eec: LATIN CAPITAL LETTER U WITH HORN AND HOOK ABOVE*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+001eed: LATIN SMALL LETTER U WITH HORN AND HOOK ABOVE*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+001eee: LATIN CAPITAL LETTER U WITH HORN AND TILDE*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+001eef: LATIN SMALL LETTER U WITH HORN AND TILDE*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+001ef0: LATIN CAPITAL LETTER U WITH HORN AND DOT BELOW*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+001ef1: LATIN SMALL LETTER U WITH HORN AND DOT BELOW*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+001ef2: LATIN CAPITAL LETTER Y WITH GRAVE*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+001ef3: LATIN SMALL LETTER Y WITH GRAVE*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+001ef4: LATIN CAPITAL LETTER Y WITH DOT BELOW*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+001ef5: LATIN SMALL LETTER Y WITH DOT BELOW*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+001ef6: LATIN CAPITAL LETTER Y WITH HOOK ABOVE*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+001ef7: LATIN SMALL LETTER Y WITH HOOK ABOVE*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+001ef8: LATIN CAPITAL LETTER Y WITH TILDE*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+001ef9: LATIN SMALL LETTER Y WITH TILDE*/ - 0, /* U+001efa: */ - 0, /* U+001efb: */ - 0, /* U+001efc: */ - 0, /* U+001efd: */ - 0, /* U+001efe: */ - 0, /* U+001eff: */ - RTUNI_ALPHA | RTUNI_LOWER, /* U+001f00: GREEK SMALL LETTER ALPHA WITH PSILI*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+001f01: GREEK SMALL LETTER ALPHA WITH DASIA*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+001f02: GREEK SMALL LETTER ALPHA WITH PSILI AND VARIA*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+001f03: GREEK SMALL LETTER ALPHA WITH DASIA AND VARIA*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+001f04: GREEK SMALL LETTER ALPHA WITH PSILI AND OXIA*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+001f05: GREEK SMALL LETTER ALPHA WITH DASIA AND OXIA*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+001f06: GREEK SMALL LETTER ALPHA WITH PSILI AND PERISPOMENI*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+001f07: GREEK SMALL LETTER ALPHA WITH DASIA AND PERISPOMENI*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+001f08: GREEK CAPITAL LETTER ALPHA WITH PSILI*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+001f09: GREEK CAPITAL LETTER ALPHA WITH DASIA*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+001f0a: GREEK CAPITAL LETTER ALPHA WITH PSILI AND VARIA*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+001f0b: GREEK CAPITAL LETTER ALPHA WITH DASIA AND VARIA*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+001f0c: GREEK CAPITAL LETTER ALPHA WITH PSILI AND OXIA*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+001f0d: GREEK CAPITAL LETTER ALPHA WITH DASIA AND OXIA*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+001f0e: GREEK CAPITAL LETTER ALPHA WITH PSILI AND PERISPOMENI*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+001f0f: GREEK CAPITAL LETTER ALPHA WITH DASIA AND PERISPOMENI*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+001f10: GREEK SMALL LETTER EPSILON WITH PSILI*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+001f11: GREEK SMALL LETTER EPSILON WITH DASIA*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+001f12: GREEK SMALL LETTER EPSILON WITH PSILI AND VARIA*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+001f13: GREEK SMALL LETTER EPSILON WITH DASIA AND VARIA*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+001f14: GREEK SMALL LETTER EPSILON WITH PSILI AND OXIA*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+001f15: GREEK SMALL LETTER EPSILON WITH DASIA AND OXIA*/ - 0, /* U+001f16: */ - 0, /* U+001f17: */ - RTUNI_ALPHA | RTUNI_UPPER, /* U+001f18: GREEK CAPITAL LETTER EPSILON WITH PSILI*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+001f19: GREEK CAPITAL LETTER EPSILON WITH DASIA*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+001f1a: GREEK CAPITAL LETTER EPSILON WITH PSILI AND VARIA*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+001f1b: GREEK CAPITAL LETTER EPSILON WITH DASIA AND VARIA*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+001f1c: GREEK CAPITAL LETTER EPSILON WITH PSILI AND OXIA*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+001f1d: GREEK CAPITAL LETTER EPSILON WITH DASIA AND OXIA*/ - 0, /* U+001f1e: */ - 0, /* U+001f1f: */ - RTUNI_ALPHA | RTUNI_LOWER, /* U+001f20: GREEK SMALL LETTER ETA WITH PSILI*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+001f21: GREEK SMALL LETTER ETA WITH DASIA*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+001f22: GREEK SMALL LETTER ETA WITH PSILI AND VARIA*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+001f23: GREEK SMALL LETTER ETA WITH DASIA AND VARIA*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+001f24: GREEK SMALL LETTER ETA WITH PSILI AND OXIA*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+001f25: GREEK SMALL LETTER ETA WITH DASIA AND OXIA*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+001f26: GREEK SMALL LETTER ETA WITH PSILI AND PERISPOMENI*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+001f27: GREEK SMALL LETTER ETA WITH DASIA AND PERISPOMENI*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+001f28: GREEK CAPITAL LETTER ETA WITH PSILI*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+001f29: GREEK CAPITAL LETTER ETA WITH DASIA*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+001f2a: GREEK CAPITAL LETTER ETA WITH PSILI AND VARIA*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+001f2b: GREEK CAPITAL LETTER ETA WITH DASIA AND VARIA*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+001f2c: GREEK CAPITAL LETTER ETA WITH PSILI AND OXIA*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+001f2d: GREEK CAPITAL LETTER ETA WITH DASIA AND OXIA*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+001f2e: GREEK CAPITAL LETTER ETA WITH PSILI AND PERISPOMENI*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+001f2f: GREEK CAPITAL LETTER ETA WITH DASIA AND PERISPOMENI*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+001f30: GREEK SMALL LETTER IOTA WITH PSILI*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+001f31: GREEK SMALL LETTER IOTA WITH DASIA*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+001f32: GREEK SMALL LETTER IOTA WITH PSILI AND VARIA*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+001f33: GREEK SMALL LETTER IOTA WITH DASIA AND VARIA*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+001f34: GREEK SMALL LETTER IOTA WITH PSILI AND OXIA*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+001f35: GREEK SMALL LETTER IOTA WITH DASIA AND OXIA*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+001f36: GREEK SMALL LETTER IOTA WITH PSILI AND PERISPOMENI*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+001f37: GREEK SMALL LETTER IOTA WITH DASIA AND PERISPOMENI*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+001f38: GREEK CAPITAL LETTER IOTA WITH PSILI*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+001f39: GREEK CAPITAL LETTER IOTA WITH DASIA*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+001f3a: GREEK CAPITAL LETTER IOTA WITH PSILI AND VARIA*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+001f3b: GREEK CAPITAL LETTER IOTA WITH DASIA AND VARIA*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+001f3c: GREEK CAPITAL LETTER IOTA WITH PSILI AND OXIA*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+001f3d: GREEK CAPITAL LETTER IOTA WITH DASIA AND OXIA*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+001f3e: GREEK CAPITAL LETTER IOTA WITH PSILI AND PERISPOMENI*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+001f3f: GREEK CAPITAL LETTER IOTA WITH DASIA AND PERISPOMENI*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+001f40: GREEK SMALL LETTER OMICRON WITH PSILI*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+001f41: GREEK SMALL LETTER OMICRON WITH DASIA*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+001f42: GREEK SMALL LETTER OMICRON WITH PSILI AND VARIA*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+001f43: GREEK SMALL LETTER OMICRON WITH DASIA AND VARIA*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+001f44: GREEK SMALL LETTER OMICRON WITH PSILI AND OXIA*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+001f45: GREEK SMALL LETTER OMICRON WITH DASIA AND OXIA*/ - 0, /* U+001f46: */ - 0, /* U+001f47: */ - RTUNI_ALPHA | RTUNI_UPPER, /* U+001f48: GREEK CAPITAL LETTER OMICRON WITH PSILI*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+001f49: GREEK CAPITAL LETTER OMICRON WITH DASIA*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+001f4a: GREEK CAPITAL LETTER OMICRON WITH PSILI AND VARIA*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+001f4b: GREEK CAPITAL LETTER OMICRON WITH DASIA AND VARIA*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+001f4c: GREEK CAPITAL LETTER OMICRON WITH PSILI AND OXIA*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+001f4d: GREEK CAPITAL LETTER OMICRON WITH DASIA AND OXIA*/ - 0, /* U+001f4e: */ - 0, /* U+001f4f: */ - RTUNI_ALPHA | RTUNI_LOWER, /* U+001f50: GREEK SMALL LETTER UPSILON WITH PSILI*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+001f51: GREEK SMALL LETTER UPSILON WITH DASIA*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+001f52: GREEK SMALL LETTER UPSILON WITH PSILI AND VARIA*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+001f53: GREEK SMALL LETTER UPSILON WITH DASIA AND VARIA*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+001f54: GREEK SMALL LETTER UPSILON WITH PSILI AND OXIA*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+001f55: GREEK SMALL LETTER UPSILON WITH DASIA AND OXIA*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+001f56: GREEK SMALL LETTER UPSILON WITH PSILI AND PERISPOMENI*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+001f57: GREEK SMALL LETTER UPSILON WITH DASIA AND PERISPOMENI*/ - 0, /* U+001f58: */ - RTUNI_ALPHA | RTUNI_UPPER, /* U+001f59: GREEK CAPITAL LETTER UPSILON WITH DASIA*/ - 0, /* U+001f5a: */ - RTUNI_ALPHA | RTUNI_UPPER, /* U+001f5b: GREEK CAPITAL LETTER UPSILON WITH DASIA AND VARIA*/ - 0, /* U+001f5c: */ - RTUNI_ALPHA | RTUNI_UPPER, /* U+001f5d: GREEK CAPITAL LETTER UPSILON WITH DASIA AND OXIA*/ - 0, /* U+001f5e: */ - RTUNI_ALPHA | RTUNI_UPPER, /* U+001f5f: GREEK CAPITAL LETTER UPSILON WITH DASIA AND PERISPOMENI*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+001f60: GREEK SMALL LETTER OMEGA WITH PSILI*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+001f61: GREEK SMALL LETTER OMEGA WITH DASIA*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+001f62: GREEK SMALL LETTER OMEGA WITH PSILI AND VARIA*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+001f63: GREEK SMALL LETTER OMEGA WITH DASIA AND VARIA*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+001f64: GREEK SMALL LETTER OMEGA WITH PSILI AND OXIA*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+001f65: GREEK SMALL LETTER OMEGA WITH DASIA AND OXIA*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+001f66: GREEK SMALL LETTER OMEGA WITH PSILI AND PERISPOMENI*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+001f67: GREEK SMALL LETTER OMEGA WITH DASIA AND PERISPOMENI*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+001f68: GREEK CAPITAL LETTER OMEGA WITH PSILI*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+001f69: GREEK CAPITAL LETTER OMEGA WITH DASIA*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+001f6a: GREEK CAPITAL LETTER OMEGA WITH PSILI AND VARIA*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+001f6b: GREEK CAPITAL LETTER OMEGA WITH DASIA AND VARIA*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+001f6c: GREEK CAPITAL LETTER OMEGA WITH PSILI AND OXIA*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+001f6d: GREEK CAPITAL LETTER OMEGA WITH DASIA AND OXIA*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+001f6e: GREEK CAPITAL LETTER OMEGA WITH PSILI AND PERISPOMENI*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+001f6f: GREEK CAPITAL LETTER OMEGA WITH DASIA AND PERISPOMENI*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+001f70: GREEK SMALL LETTER ALPHA WITH VARIA*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+001f71: GREEK SMALL LETTER ALPHA WITH OXIA*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+001f72: GREEK SMALL LETTER EPSILON WITH VARIA*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+001f73: GREEK SMALL LETTER EPSILON WITH OXIA*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+001f74: GREEK SMALL LETTER ETA WITH VARIA*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+001f75: GREEK SMALL LETTER ETA WITH OXIA*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+001f76: GREEK SMALL LETTER IOTA WITH VARIA*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+001f77: GREEK SMALL LETTER IOTA WITH OXIA*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+001f78: GREEK SMALL LETTER OMICRON WITH VARIA*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+001f79: GREEK SMALL LETTER OMICRON WITH OXIA*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+001f7a: GREEK SMALL LETTER UPSILON WITH VARIA*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+001f7b: GREEK SMALL LETTER UPSILON WITH OXIA*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+001f7c: GREEK SMALL LETTER OMEGA WITH VARIA*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+001f7d: GREEK SMALL LETTER OMEGA WITH OXIA*/ - 0, /* U+001f7e: */ - 0, /* U+001f7f: */ - RTUNI_ALPHA | RTUNI_LOWER, /* U+001f80: GREEK SMALL LETTER ALPHA WITH PSILI AND YPOGEGRAMMENI*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+001f81: GREEK SMALL LETTER ALPHA WITH DASIA AND YPOGEGRAMMENI*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+001f82: GREEK SMALL LETTER ALPHA WITH PSILI AND VARIA AND YPOGEGRAMMENI*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+001f83: GREEK SMALL LETTER ALPHA WITH DASIA AND VARIA AND YPOGEGRAMMENI*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+001f84: GREEK SMALL LETTER ALPHA WITH PSILI AND OXIA AND YPOGEGRAMMENI*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+001f85: GREEK SMALL LETTER ALPHA WITH DASIA AND OXIA AND YPOGEGRAMMENI*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+001f86: GREEK SMALL LETTER ALPHA WITH PSILI AND PERISPOMENI AND YPOGEGRAMMENI*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+001f87: GREEK SMALL LETTER ALPHA WITH DASIA AND PERISPOMENI AND YPOGEGRAMMENI*/ - RTUNI_ALPHA, /* U+001f88: GREEK CAPITAL LETTER ALPHA WITH PSILI AND PROSGEGRAMMENI*/ - RTUNI_ALPHA, /* U+001f89: GREEK CAPITAL LETTER ALPHA WITH DASIA AND PROSGEGRAMMENI*/ - RTUNI_ALPHA, /* U+001f8a: GREEK CAPITAL LETTER ALPHA WITH PSILI AND VARIA AND PROSGEGRAMMENI*/ - RTUNI_ALPHA, /* U+001f8b: GREEK CAPITAL LETTER ALPHA WITH DASIA AND VARIA AND PROSGEGRAMMENI*/ - RTUNI_ALPHA, /* U+001f8c: GREEK CAPITAL LETTER ALPHA WITH PSILI AND OXIA AND PROSGEGRAMMENI*/ - RTUNI_ALPHA, /* U+001f8d: GREEK CAPITAL LETTER ALPHA WITH DASIA AND OXIA AND PROSGEGRAMMENI*/ - RTUNI_ALPHA, /* U+001f8e: GREEK CAPITAL LETTER ALPHA WITH PSILI AND PERISPOMENI AND PROSGEGRAMMENI*/ - RTUNI_ALPHA, /* U+001f8f: GREEK CAPITAL LETTER ALPHA WITH DASIA AND PERISPOMENI AND PROSGEGRAMMENI*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+001f90: GREEK SMALL LETTER ETA WITH PSILI AND YPOGEGRAMMENI*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+001f91: GREEK SMALL LETTER ETA WITH DASIA AND YPOGEGRAMMENI*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+001f92: GREEK SMALL LETTER ETA WITH PSILI AND VARIA AND YPOGEGRAMMENI*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+001f93: GREEK SMALL LETTER ETA WITH DASIA AND VARIA AND YPOGEGRAMMENI*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+001f94: GREEK SMALL LETTER ETA WITH PSILI AND OXIA AND YPOGEGRAMMENI*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+001f95: GREEK SMALL LETTER ETA WITH DASIA AND OXIA AND YPOGEGRAMMENI*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+001f96: GREEK SMALL LETTER ETA WITH PSILI AND PERISPOMENI AND YPOGEGRAMMENI*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+001f97: GREEK SMALL LETTER ETA WITH DASIA AND PERISPOMENI AND YPOGEGRAMMENI*/ - RTUNI_ALPHA, /* U+001f98: GREEK CAPITAL LETTER ETA WITH PSILI AND PROSGEGRAMMENI*/ - RTUNI_ALPHA, /* U+001f99: GREEK CAPITAL LETTER ETA WITH DASIA AND PROSGEGRAMMENI*/ - RTUNI_ALPHA, /* U+001f9a: GREEK CAPITAL LETTER ETA WITH PSILI AND VARIA AND PROSGEGRAMMENI*/ - RTUNI_ALPHA, /* U+001f9b: GREEK CAPITAL LETTER ETA WITH DASIA AND VARIA AND PROSGEGRAMMENI*/ - RTUNI_ALPHA, /* U+001f9c: GREEK CAPITAL LETTER ETA WITH PSILI AND OXIA AND PROSGEGRAMMENI*/ - RTUNI_ALPHA, /* U+001f9d: GREEK CAPITAL LETTER ETA WITH DASIA AND OXIA AND PROSGEGRAMMENI*/ - RTUNI_ALPHA, /* U+001f9e: GREEK CAPITAL LETTER ETA WITH PSILI AND PERISPOMENI AND PROSGEGRAMMENI*/ - RTUNI_ALPHA, /* U+001f9f: GREEK CAPITAL LETTER ETA WITH DASIA AND PERISPOMENI AND PROSGEGRAMMENI*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+001fa0: GREEK SMALL LETTER OMEGA WITH PSILI AND YPOGEGRAMMENI*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+001fa1: GREEK SMALL LETTER OMEGA WITH DASIA AND YPOGEGRAMMENI*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+001fa2: GREEK SMALL LETTER OMEGA WITH PSILI AND VARIA AND YPOGEGRAMMENI*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+001fa3: GREEK SMALL LETTER OMEGA WITH DASIA AND VARIA AND YPOGEGRAMMENI*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+001fa4: GREEK SMALL LETTER OMEGA WITH PSILI AND OXIA AND YPOGEGRAMMENI*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+001fa5: GREEK SMALL LETTER OMEGA WITH DASIA AND OXIA AND YPOGEGRAMMENI*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+001fa6: GREEK SMALL LETTER OMEGA WITH PSILI AND PERISPOMENI AND YPOGEGRAMMENI*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+001fa7: GREEK SMALL LETTER OMEGA WITH DASIA AND PERISPOMENI AND YPOGEGRAMMENI*/ - RTUNI_ALPHA, /* U+001fa8: GREEK CAPITAL LETTER OMEGA WITH PSILI AND PROSGEGRAMMENI*/ - RTUNI_ALPHA, /* U+001fa9: GREEK CAPITAL LETTER OMEGA WITH DASIA AND PROSGEGRAMMENI*/ - RTUNI_ALPHA, /* U+001faa: GREEK CAPITAL LETTER OMEGA WITH PSILI AND VARIA AND PROSGEGRAMMENI*/ - RTUNI_ALPHA, /* U+001fab: GREEK CAPITAL LETTER OMEGA WITH DASIA AND VARIA AND PROSGEGRAMMENI*/ - RTUNI_ALPHA, /* U+001fac: GREEK CAPITAL LETTER OMEGA WITH PSILI AND OXIA AND PROSGEGRAMMENI*/ - RTUNI_ALPHA, /* U+001fad: GREEK CAPITAL LETTER OMEGA WITH DASIA AND OXIA AND PROSGEGRAMMENI*/ - RTUNI_ALPHA, /* U+001fae: GREEK CAPITAL LETTER OMEGA WITH PSILI AND PERISPOMENI AND PROSGEGRAMMENI*/ - RTUNI_ALPHA, /* U+001faf: GREEK CAPITAL LETTER OMEGA WITH DASIA AND PERISPOMENI AND PROSGEGRAMMENI*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+001fb0: GREEK SMALL LETTER ALPHA WITH VRACHY*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+001fb1: GREEK SMALL LETTER ALPHA WITH MACRON*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+001fb2: GREEK SMALL LETTER ALPHA WITH VARIA AND YPOGEGRAMMENI*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+001fb3: GREEK SMALL LETTER ALPHA WITH YPOGEGRAMMENI*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+001fb4: GREEK SMALL LETTER ALPHA WITH OXIA AND YPOGEGRAMMENI*/ - 0, /* U+001fb5: */ - RTUNI_ALPHA | RTUNI_LOWER, /* U+001fb6: GREEK SMALL LETTER ALPHA WITH PERISPOMENI*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+001fb7: GREEK SMALL LETTER ALPHA WITH PERISPOMENI AND YPOGEGRAMMENI*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+001fb8: GREEK CAPITAL LETTER ALPHA WITH VRACHY*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+001fb9: GREEK CAPITAL LETTER ALPHA WITH MACRON*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+001fba: GREEK CAPITAL LETTER ALPHA WITH VARIA*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+001fbb: GREEK CAPITAL LETTER ALPHA WITH OXIA*/ - RTUNI_ALPHA, /* U+001fbc: GREEK CAPITAL LETTER ALPHA WITH PROSGEGRAMMENI*/ - 0, /* U+001fbd: GREEK KORONIS*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+001fbe: GREEK PROSGEGRAMMENI*/ - 0, /* U+001fbf: GREEK PSILI*/ - 0, /* U+001fc0: GREEK PERISPOMENI*/ - 0, /* U+001fc1: GREEK DIALYTIKA AND PERISPOMENI*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+001fc2: GREEK SMALL LETTER ETA WITH VARIA AND YPOGEGRAMMENI*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+001fc3: GREEK SMALL LETTER ETA WITH YPOGEGRAMMENI*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+001fc4: GREEK SMALL LETTER ETA WITH OXIA AND YPOGEGRAMMENI*/ - 0, /* U+001fc5: */ - RTUNI_ALPHA | RTUNI_LOWER, /* U+001fc6: GREEK SMALL LETTER ETA WITH PERISPOMENI*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+001fc7: GREEK SMALL LETTER ETA WITH PERISPOMENI AND YPOGEGRAMMENI*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+001fc8: GREEK CAPITAL LETTER EPSILON WITH VARIA*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+001fc9: GREEK CAPITAL LETTER EPSILON WITH OXIA*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+001fca: GREEK CAPITAL LETTER ETA WITH VARIA*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+001fcb: GREEK CAPITAL LETTER ETA WITH OXIA*/ - RTUNI_ALPHA, /* U+001fcc: GREEK CAPITAL LETTER ETA WITH PROSGEGRAMMENI*/ - 0, /* U+001fcd: GREEK PSILI AND VARIA*/ - 0, /* U+001fce: GREEK PSILI AND OXIA*/ - 0, /* U+001fcf: GREEK PSILI AND PERISPOMENI*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+001fd0: GREEK SMALL LETTER IOTA WITH VRACHY*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+001fd1: GREEK SMALL LETTER IOTA WITH MACRON*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+001fd2: GREEK SMALL LETTER IOTA WITH DIALYTIKA AND VARIA*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+001fd3: GREEK SMALL LETTER IOTA WITH DIALYTIKA AND OXIA*/ - 0, /* U+001fd4: */ - 0, /* U+001fd5: */ - RTUNI_ALPHA | RTUNI_LOWER, /* U+001fd6: GREEK SMALL LETTER IOTA WITH PERISPOMENI*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+001fd7: GREEK SMALL LETTER IOTA WITH DIALYTIKA AND PERISPOMENI*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+001fd8: GREEK CAPITAL LETTER IOTA WITH VRACHY*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+001fd9: GREEK CAPITAL LETTER IOTA WITH MACRON*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+001fda: GREEK CAPITAL LETTER IOTA WITH VARIA*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+001fdb: GREEK CAPITAL LETTER IOTA WITH OXIA*/ - 0, /* U+001fdc: */ - 0, /* U+001fdd: GREEK DASIA AND VARIA*/ - 0, /* U+001fde: GREEK DASIA AND OXIA*/ - 0, /* U+001fdf: GREEK DASIA AND PERISPOMENI*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+001fe0: GREEK SMALL LETTER UPSILON WITH VRACHY*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+001fe1: GREEK SMALL LETTER UPSILON WITH MACRON*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+001fe2: GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND VARIA*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+001fe3: GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND OXIA*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+001fe4: GREEK SMALL LETTER RHO WITH PSILI*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+001fe5: GREEK SMALL LETTER RHO WITH DASIA*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+001fe6: GREEK SMALL LETTER UPSILON WITH PERISPOMENI*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+001fe7: GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND PERISPOMENI*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+001fe8: GREEK CAPITAL LETTER UPSILON WITH VRACHY*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+001fe9: GREEK CAPITAL LETTER UPSILON WITH MACRON*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+001fea: GREEK CAPITAL LETTER UPSILON WITH VARIA*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+001feb: GREEK CAPITAL LETTER UPSILON WITH OXIA*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+001fec: GREEK CAPITAL LETTER RHO WITH DASIA*/ - 0, /* U+001fed: GREEK DIALYTIKA AND VARIA*/ - 0, /* U+001fee: GREEK DIALYTIKA AND OXIA*/ - 0, /* U+001fef: GREEK VARIA*/ - 0, /* U+001ff0: */ - 0, /* U+001ff1: */ - RTUNI_ALPHA | RTUNI_LOWER, /* U+001ff2: GREEK SMALL LETTER OMEGA WITH VARIA AND YPOGEGRAMMENI*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+001ff3: GREEK SMALL LETTER OMEGA WITH YPOGEGRAMMENI*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+001ff4: GREEK SMALL LETTER OMEGA WITH OXIA AND YPOGEGRAMMENI*/ - 0, /* U+001ff5: */ - RTUNI_ALPHA | RTUNI_LOWER, /* U+001ff6: GREEK SMALL LETTER OMEGA WITH PERISPOMENI*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+001ff7: GREEK SMALL LETTER OMEGA WITH PERISPOMENI AND YPOGEGRAMMENI*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+001ff8: GREEK CAPITAL LETTER OMICRON WITH VARIA*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+001ff9: GREEK CAPITAL LETTER OMICRON WITH OXIA*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+001ffa: GREEK CAPITAL LETTER OMEGA WITH VARIA*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+001ffb: GREEK CAPITAL LETTER OMEGA WITH OXIA*/ - RTUNI_ALPHA, /* U+001ffc: GREEK CAPITAL LETTER OMEGA WITH PROSGEGRAMMENI*/ - 0, /* U+001ffd: GREEK OXIA*/ - 0, /* U+001ffe: GREEK DASIA*/ - 0, /* U+001fff: */ - RTUNI_WSPACE, /* U+002000: EN QUAD*/ - RTUNI_WSPACE, /* U+002001: EM QUAD*/ - RTUNI_WSPACE, /* U+002002: EN SPACE*/ - RTUNI_WSPACE, /* U+002003: EM SPACE*/ - RTUNI_WSPACE, /* U+002004: THREE-PER-EM SPACE*/ - RTUNI_WSPACE, /* U+002005: FOUR-PER-EM SPACE*/ - RTUNI_WSPACE, /* U+002006: SIX-PER-EM SPACE*/ - RTUNI_WSPACE, /* U+002007: FIGURE SPACE*/ - RTUNI_WSPACE, /* U+002008: PUNCTUATION SPACE*/ - RTUNI_WSPACE, /* U+002009: THIN SPACE*/ - RTUNI_WSPACE, /* U+00200a: HAIR SPACE*/ - 0, /* U+00200b: ZERO WIDTH SPACE*/ - 0, /* U+00200c: ZERO WIDTH NON-JOINER*/ - 0, /* U+00200d: ZERO WIDTH JOINER*/ - 0, /* U+00200e: LEFT-TO-RIGHT MARK*/ - 0, /* U+00200f: RIGHT-TO-LEFT MARK*/ - 0, /* U+002010: HYPHEN*/ - 0, /* U+002011: NON-BREAKING HYPHEN*/ - 0, /* U+002012: FIGURE DASH*/ - 0, /* U+002013: EN DASH*/ - 0, /* U+002014: EM DASH*/ - 0, /* U+002015: HORIZONTAL BAR*/ - 0, /* U+002016: DOUBLE VERTICAL LINE*/ - 0, /* U+002017: DOUBLE LOW LINE*/ - 0, /* U+002018: LEFT SINGLE QUOTATION MARK*/ - 0, /* U+002019: RIGHT SINGLE QUOTATION MARK*/ - 0, /* U+00201a: SINGLE LOW-9 QUOTATION MARK*/ - 0, /* U+00201b: SINGLE HIGH-REVERSED-9 QUOTATION MARK*/ - 0, /* U+00201c: LEFT DOUBLE QUOTATION MARK*/ - 0, /* U+00201d: RIGHT DOUBLE QUOTATION MARK*/ - 0, /* U+00201e: DOUBLE LOW-9 QUOTATION MARK*/ - 0, /* U+00201f: DOUBLE HIGH-REVERSED-9 QUOTATION MARK*/ - 0, /* U+002020: DAGGER*/ - 0, /* U+002021: DOUBLE DAGGER*/ - 0, /* U+002022: BULLET*/ - 0, /* U+002023: TRIANGULAR BULLET*/ - 0, /* U+002024: ONE DOT LEADER*/ - 0, /* U+002025: TWO DOT LEADER*/ - 0, /* U+002026: HORIZONTAL ELLIPSIS*/ - 0, /* U+002027: HYPHENATION POINT*/ - RTUNI_WSPACE, /* U+002028: LINE SEPARATOR*/ - RTUNI_WSPACE, /* U+002029: PARAGRAPH SEPARATOR*/ - 0, /* U+00202a: LEFT-TO-RIGHT EMBEDDING*/ - 0, /* U+00202b: RIGHT-TO-LEFT EMBEDDING*/ - 0, /* U+00202c: POP DIRECTIONAL FORMATTING*/ - 0, /* U+00202d: LEFT-TO-RIGHT OVERRIDE*/ - 0, /* U+00202e: RIGHT-TO-LEFT OVERRIDE*/ - RTUNI_WSPACE, /* U+00202f: NARROW NO-BREAK SPACE*/ - 0, /* U+002030: PER MILLE SIGN*/ - 0, /* U+002031: PER TEN THOUSAND SIGN*/ - 0, /* U+002032: PRIME*/ - 0, /* U+002033: DOUBLE PRIME*/ - 0, /* U+002034: TRIPLE PRIME*/ - 0, /* U+002035: REVERSED PRIME*/ - 0, /* U+002036: REVERSED DOUBLE PRIME*/ - 0, /* U+002037: REVERSED TRIPLE PRIME*/ - 0, /* U+002038: CARET*/ - 0, /* U+002039: SINGLE LEFT-POINTING ANGLE QUOTATION MARK*/ - 0, /* U+00203a: SINGLE RIGHT-POINTING ANGLE QUOTATION MARK*/ - 0, /* U+00203b: REFERENCE MARK*/ - 0, /* U+00203c: DOUBLE EXCLAMATION MARK*/ - 0, /* U+00203d: INTERROBANG*/ - 0, /* U+00203e: OVERLINE*/ - 0, /* U+00203f: UNDERTIE*/ - 0, /* U+002040: CHARACTER TIE*/ - 0, /* U+002041: CARET INSERTION POINT*/ - 0, /* U+002042: ASTERISM*/ - 0, /* U+002043: HYPHEN BULLET*/ - 0, /* U+002044: FRACTION SLASH*/ - 0, /* U+002045: LEFT SQUARE BRACKET WITH QUILL*/ - 0, /* U+002046: RIGHT SQUARE BRACKET WITH QUILL*/ - 0, /* U+002047: DOUBLE QUESTION MARK*/ - 0, /* U+002048: QUESTION EXCLAMATION MARK*/ - 0, /* U+002049: EXCLAMATION QUESTION MARK*/ - 0, /* U+00204a: TIRONIAN SIGN ET*/ - 0, /* U+00204b: REVERSED PILCROW SIGN*/ - 0, /* U+00204c: BLACK LEFTWARDS BULLET*/ - 0, /* U+00204d: BLACK RIGHTWARDS BULLET*/ - 0, /* U+00204e: LOW ASTERISK*/ - 0, /* U+00204f: REVERSED SEMICOLON*/ - 0, /* U+002050: CLOSE UP*/ - 0, /* U+002051: TWO ASTERISKS ALIGNED VERTICALLY*/ - 0, /* U+002052: COMMERCIAL MINUS SIGN*/ - 0, /* U+002053: SWUNG DASH*/ - 0, /* U+002054: INVERTED UNDERTIE*/ - 0, /* U+002055: FLOWER PUNCTUATION MARK*/ - 0, /* U+002056: THREE DOT PUNCTUATION*/ - 0, /* U+002057: QUADRUPLE PRIME*/ - 0, /* U+002058: FOUR DOT PUNCTUATION*/ - 0, /* U+002059: FIVE DOT PUNCTUATION*/ - 0, /* U+00205a: TWO DOT PUNCTUATION*/ - 0, /* U+00205b: FOUR DOT MARK*/ - 0, /* U+00205c: DOTTED CROSS*/ - 0, /* U+00205d: TRICOLON*/ - 0, /* U+00205e: VERTICAL FOUR DOTS*/ - RTUNI_WSPACE, /* U+00205f: MEDIUM MATHEMATICAL SPACE*/ - 0, /* U+002060: WORD JOINER*/ - 0, /* U+002061: FUNCTION APPLICATION*/ - 0, /* U+002062: INVISIBLE TIMES*/ - 0, /* U+002063: INVISIBLE SEPARATOR*/ - 0, /* U+002064: */ - 0, /* U+002065: */ - 0, /* U+002066: */ - 0, /* U+002067: */ - 0, /* U+002068: */ - 0, /* U+002069: */ - 0, /* U+00206a: INHIBIT SYMMETRIC SWAPPING*/ - 0, /* U+00206b: ACTIVATE SYMMETRIC SWAPPING*/ - 0, /* U+00206c: INHIBIT ARABIC FORM SHAPING*/ - 0, /* U+00206d: ACTIVATE ARABIC FORM SHAPING*/ - 0, /* U+00206e: NATIONAL DIGIT SHAPES*/ - 0, /* U+00206f: NOMINAL DIGIT SHAPES*/ - 0, /* U+002070: SUPERSCRIPT ZERO*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+002071: SUPERSCRIPT LATIN SMALL LETTER I*/ - 0, /* U+002072: */ - 0, /* U+002073: */ - 0, /* U+002074: SUPERSCRIPT FOUR*/ - 0, /* U+002075: SUPERSCRIPT FIVE*/ - 0, /* U+002076: SUPERSCRIPT SIX*/ - 0, /* U+002077: SUPERSCRIPT SEVEN*/ - 0, /* U+002078: SUPERSCRIPT EIGHT*/ - 0, /* U+002079: SUPERSCRIPT NINE*/ - 0, /* U+00207a: SUPERSCRIPT PLUS SIGN*/ - 0, /* U+00207b: SUPERSCRIPT MINUS*/ - 0, /* U+00207c: SUPERSCRIPT EQUALS SIGN*/ - 0, /* U+00207d: SUPERSCRIPT LEFT PARENTHESIS*/ - 0, /* U+00207e: SUPERSCRIPT RIGHT PARENTHESIS*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+00207f: SUPERSCRIPT LATIN SMALL LETTER N*/ - 0, /* U+002080: SUBSCRIPT ZERO*/ - 0, /* U+002081: SUBSCRIPT ONE*/ - 0, /* U+002082: SUBSCRIPT TWO*/ - 0, /* U+002083: SUBSCRIPT THREE*/ - 0, /* U+002084: SUBSCRIPT FOUR*/ - 0, /* U+002085: SUBSCRIPT FIVE*/ - 0, /* U+002086: SUBSCRIPT SIX*/ - 0, /* U+002087: SUBSCRIPT SEVEN*/ - 0, /* U+002088: SUBSCRIPT EIGHT*/ - 0, /* U+002089: SUBSCRIPT NINE*/ - 0, /* U+00208a: SUBSCRIPT PLUS SIGN*/ - 0, /* U+00208b: SUBSCRIPT MINUS*/ - 0, /* U+00208c: SUBSCRIPT EQUALS SIGN*/ - 0, /* U+00208d: SUBSCRIPT LEFT PARENTHESIS*/ - 0, /* U+00208e: SUBSCRIPT RIGHT PARENTHESIS*/ - 0, /* U+00208f: */ - RTUNI_ALPHA | RTUNI_LOWER, /* U+002090: LATIN SUBSCRIPT SMALL LETTER A*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+002091: LATIN SUBSCRIPT SMALL LETTER E*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+002092: LATIN SUBSCRIPT SMALL LETTER O*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+002093: LATIN SUBSCRIPT SMALL LETTER X*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+002094: LATIN SUBSCRIPT SMALL LETTER SCHWA*/ - 0, /* U+002095: */ - 0, /* U+002096: */ - 0, /* U+002097: */ - 0, /* U+002098: */ - 0, /* U+002099: */ - 0, /* U+00209a: */ - 0, /* U+00209b: */ - 0, /* U+00209c: */ - 0, /* U+00209d: */ - 0, /* U+00209e: */ - 0, /* U+00209f: */ - 0, /* U+0020a0: EURO-CURRENCY SIGN*/ - 0, /* U+0020a1: COLON SIGN*/ - 0, /* U+0020a2: CRUZEIRO SIGN*/ - 0, /* U+0020a3: FRENCH FRANC SIGN*/ - 0, /* U+0020a4: LIRA SIGN*/ - 0, /* U+0020a5: MILL SIGN*/ - 0, /* U+0020a6: NAIRA SIGN*/ - 0, /* U+0020a7: PESETA SIGN*/ - 0, /* U+0020a8: RUPEE SIGN*/ - 0, /* U+0020a9: WON SIGN*/ - 0, /* U+0020aa: NEW SHEQEL SIGN*/ - 0, /* U+0020ab: DONG SIGN*/ - 0, /* U+0020ac: EURO SIGN*/ - 0, /* U+0020ad: KIP SIGN*/ - 0, /* U+0020ae: TUGRIK SIGN*/ - 0, /* U+0020af: DRACHMA SIGN*/ - 0, /* U+0020b0: GERMAN PENNY SIGN*/ - 0, /* U+0020b1: PESO SIGN*/ - 0, /* U+0020b2: GUARANI SIGN*/ - 0, /* U+0020b3: AUSTRAL SIGN*/ - 0, /* U+0020b4: HRYVNIA SIGN*/ - 0, /* U+0020b5: CEDI SIGN*/ - 0, /* U+0020b6: */ - 0, /* U+0020b7: */ - 0, /* U+0020b8: */ - 0, /* U+0020b9: */ - 0, /* U+0020ba: */ - 0, /* U+0020bb: */ - 0, /* U+0020bc: */ - 0, /* U+0020bd: */ - 0, /* U+0020be: */ - 0, /* U+0020bf: */ - 0, /* U+0020c0: */ - 0, /* U+0020c1: */ - 0, /* U+0020c2: */ - 0, /* U+0020c3: */ - 0, /* U+0020c4: */ - 0, /* U+0020c5: */ - 0, /* U+0020c6: */ - 0, /* U+0020c7: */ - 0, /* U+0020c8: */ - 0, /* U+0020c9: */ - 0, /* U+0020ca: */ - 0, /* U+0020cb: */ - 0, /* U+0020cc: */ - 0, /* U+0020cd: */ - 0, /* U+0020ce: */ - 0, /* U+0020cf: */ - 0, /* U+0020d0: COMBINING LEFT HARPOON ABOVE*/ - 0, /* U+0020d1: COMBINING RIGHT HARPOON ABOVE*/ - 0, /* U+0020d2: COMBINING LONG VERTICAL LINE OVERLAY*/ - 0, /* U+0020d3: COMBINING SHORT VERTICAL LINE OVERLAY*/ - 0, /* U+0020d4: COMBINING ANTICLOCKWISE ARROW ABOVE*/ - 0, /* U+0020d5: COMBINING CLOCKWISE ARROW ABOVE*/ - 0, /* U+0020d6: COMBINING LEFT ARROW ABOVE*/ - 0, /* U+0020d7: COMBINING RIGHT ARROW ABOVE*/ - 0, /* U+0020d8: COMBINING RING OVERLAY*/ - 0, /* U+0020d9: COMBINING CLOCKWISE RING OVERLAY*/ - 0, /* U+0020da: COMBINING ANTICLOCKWISE RING OVERLAY*/ - 0, /* U+0020db: COMBINING THREE DOTS ABOVE*/ - 0, /* U+0020dc: COMBINING FOUR DOTS ABOVE*/ - 0, /* U+0020dd: COMBINING ENCLOSING CIRCLE*/ - 0, /* U+0020de: COMBINING ENCLOSING SQUARE*/ - 0, /* U+0020df: COMBINING ENCLOSING DIAMOND*/ - 0, /* U+0020e0: COMBINING ENCLOSING CIRCLE BACKSLASH*/ - 0, /* U+0020e1: COMBINING LEFT RIGHT ARROW ABOVE*/ - 0, /* U+0020e2: COMBINING ENCLOSING SCREEN*/ - 0, /* U+0020e3: COMBINING ENCLOSING KEYCAP*/ - 0, /* U+0020e4: COMBINING ENCLOSING UPWARD POINTING TRIANGLE*/ - 0, /* U+0020e5: COMBINING REVERSE SOLIDUS OVERLAY*/ - 0, /* U+0020e6: COMBINING DOUBLE VERTICAL STROKE OVERLAY*/ - 0, /* U+0020e7: COMBINING ANNUITY SYMBOL*/ - 0, /* U+0020e8: COMBINING TRIPLE UNDERDOT*/ - 0, /* U+0020e9: COMBINING WIDE BRIDGE ABOVE*/ - 0, /* U+0020ea: COMBINING LEFTWARDS ARROW OVERLAY*/ - 0, /* U+0020eb: COMBINING LONG DOUBLE SOLIDUS OVERLAY*/ - 0, /* U+0020ec: */ - 0, /* U+0020ed: */ - 0, /* U+0020ee: */ - 0, /* U+0020ef: */ - 0, /* U+0020f0: */ - 0, /* U+0020f1: */ - 0, /* U+0020f2: */ - 0, /* U+0020f3: */ - 0, /* U+0020f4: */ - 0, /* U+0020f5: */ - 0, /* U+0020f6: */ - 0, /* U+0020f7: */ - 0, /* U+0020f8: */ - 0, /* U+0020f9: */ - 0, /* U+0020fa: */ - 0, /* U+0020fb: */ - 0, /* U+0020fc: */ - 0, /* U+0020fd: */ - 0, /* U+0020fe: */ - 0, /* U+0020ff: */ - 0, /* U+002100: ACCOUNT OF*/ - 0, /* U+002101: ADDRESSED TO THE SUBJECT*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+002102: DOUBLE-STRUCK CAPITAL C*/ - 0, /* U+002103: DEGREE CELSIUS*/ - 0, /* U+002104: CENTRE LINE SYMBOL*/ - 0, /* U+002105: CARE OF*/ - 0, /* U+002106: CADA UNA*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+002107: EULER CONSTANT*/ - 0, /* U+002108: SCRUPLE*/ - 0, /* U+002109: DEGREE FAHRENHEIT*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+00210a: SCRIPT SMALL G*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+00210b: SCRIPT CAPITAL H*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+00210c: BLACK-LETTER CAPITAL H*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+00210d: DOUBLE-STRUCK CAPITAL H*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+00210e: PLANCK CONSTANT*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+00210f: PLANCK CONSTANT OVER TWO PI*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+002110: SCRIPT CAPITAL I*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+002111: BLACK-LETTER CAPITAL I*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+002112: SCRIPT CAPITAL L*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+002113: SCRIPT SMALL L*/ - 0, /* U+002114: L B BAR SYMBOL*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+002115: DOUBLE-STRUCK CAPITAL N*/ - 0, /* U+002116: NUMERO SIGN*/ - 0, /* U+002117: SOUND RECORDING COPYRIGHT*/ - 0, /* U+002118: SCRIPT CAPITAL P*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+002119: DOUBLE-STRUCK CAPITAL P*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+00211a: DOUBLE-STRUCK CAPITAL Q*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+00211b: SCRIPT CAPITAL R*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+00211c: BLACK-LETTER CAPITAL R*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+00211d: DOUBLE-STRUCK CAPITAL R*/ - 0, /* U+00211e: PRESCRIPTION TAKE*/ - 0, /* U+00211f: RESPONSE*/ - 0, /* U+002120: SERVICE MARK*/ - 0, /* U+002121: TELEPHONE SIGN*/ - 0, /* U+002122: TRADE MARK SIGN*/ - 0, /* U+002123: VERSICLE*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+002124: DOUBLE-STRUCK CAPITAL Z*/ - 0, /* U+002125: OUNCE SIGN*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+002126: OHM SIGN*/ - 0, /* U+002127: INVERTED OHM SIGN*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+002128: BLACK-LETTER CAPITAL Z*/ - 0, /* U+002129: TURNED GREEK SMALL LETTER IOTA*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+00212a: KELVIN SIGN*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+00212b: ANGSTROM SIGN*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+00212c: SCRIPT CAPITAL B*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+00212d: BLACK-LETTER CAPITAL C*/ - 0, /* U+00212e: ESTIMATED SYMBOL*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+00212f: SCRIPT SMALL E*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+002130: SCRIPT CAPITAL E*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+002131: SCRIPT CAPITAL F*/ - 0, /* U+002132: TURNED CAPITAL F*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+002133: SCRIPT CAPITAL M*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+002134: SCRIPT SMALL O*/ - RTUNI_ALPHA, /* U+002135: ALEF SYMBOL*/ - RTUNI_ALPHA, /* U+002136: BET SYMBOL*/ - RTUNI_ALPHA, /* U+002137: GIMEL SYMBOL*/ - RTUNI_ALPHA, /* U+002138: DALET SYMBOL*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+002139: INFORMATION SOURCE*/ - 0, /* U+00213a: ROTATED CAPITAL Q*/ - 0, /* U+00213b: FACSIMILE SIGN*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+00213c: DOUBLE-STRUCK SMALL PI*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+00213d: DOUBLE-STRUCK SMALL GAMMA*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+00213e: DOUBLE-STRUCK CAPITAL GAMMA*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+00213f: DOUBLE-STRUCK CAPITAL PI*/ - 0, /* U+002140: DOUBLE-STRUCK N-ARY SUMMATION*/ - 0, /* U+002141: TURNED SANS-SERIF CAPITAL G*/ - 0, /* U+002142: TURNED SANS-SERIF CAPITAL L*/ - 0, /* U+002143: REVERSED SANS-SERIF CAPITAL L*/ - 0, /* U+002144: TURNED SANS-SERIF CAPITAL Y*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+002145: DOUBLE-STRUCK ITALIC CAPITAL D*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+002146: DOUBLE-STRUCK ITALIC SMALL D*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+002147: DOUBLE-STRUCK ITALIC SMALL E*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+002148: DOUBLE-STRUCK ITALIC SMALL I*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+002149: DOUBLE-STRUCK ITALIC SMALL J*/ - 0, /* U+00214a: PROPERTY LINE*/ - 0, /* U+00214b: TURNED AMPERSAND*/ - 0, /* U+00214c: PER SIGN*/ - 0, /* U+00214d: */ - 0, /* U+00214e: */ - 0, /* U+00214f: */ - 0, /* U+002150: */ - 0, /* U+002151: */ - 0, /* U+002152: */ - 0, /* U+002153: VULGAR FRACTION ONE THIRD*/ - 0, /* U+002154: VULGAR FRACTION TWO THIRDS*/ - 0, /* U+002155: VULGAR FRACTION ONE FIFTH*/ - 0, /* U+002156: VULGAR FRACTION TWO FIFTHS*/ - 0, /* U+002157: VULGAR FRACTION THREE FIFTHS*/ - 0, /* U+002158: VULGAR FRACTION FOUR FIFTHS*/ - 0, /* U+002159: VULGAR FRACTION ONE SIXTH*/ - 0, /* U+00215a: VULGAR FRACTION FIVE SIXTHS*/ - 0, /* U+00215b: VULGAR FRACTION ONE EIGHTH*/ - 0, /* U+00215c: VULGAR FRACTION THREE EIGHTHS*/ - 0, /* U+00215d: VULGAR FRACTION FIVE EIGHTHS*/ - 0, /* U+00215e: VULGAR FRACTION SEVEN EIGHTHS*/ - 0, /* U+00215f: FRACTION NUMERATOR ONE*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+002160: ROMAN NUMERAL ONE*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+002161: ROMAN NUMERAL TWO*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+002162: ROMAN NUMERAL THREE*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+002163: ROMAN NUMERAL FOUR*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+002164: ROMAN NUMERAL FIVE*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+002165: ROMAN NUMERAL SIX*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+002166: ROMAN NUMERAL SEVEN*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+002167: ROMAN NUMERAL EIGHT*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+002168: ROMAN NUMERAL NINE*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+002169: ROMAN NUMERAL TEN*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+00216a: ROMAN NUMERAL ELEVEN*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+00216b: ROMAN NUMERAL TWELVE*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+00216c: ROMAN NUMERAL FIFTY*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+00216d: ROMAN NUMERAL ONE HUNDRED*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+00216e: ROMAN NUMERAL FIVE HUNDRED*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+00216f: ROMAN NUMERAL ONE THOUSAND*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+002170: SMALL ROMAN NUMERAL ONE*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+002171: SMALL ROMAN NUMERAL TWO*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+002172: SMALL ROMAN NUMERAL THREE*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+002173: SMALL ROMAN NUMERAL FOUR*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+002174: SMALL ROMAN NUMERAL FIVE*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+002175: SMALL ROMAN NUMERAL SIX*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+002176: SMALL ROMAN NUMERAL SEVEN*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+002177: SMALL ROMAN NUMERAL EIGHT*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+002178: SMALL ROMAN NUMERAL NINE*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+002179: SMALL ROMAN NUMERAL TEN*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+00217a: SMALL ROMAN NUMERAL ELEVEN*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+00217b: SMALL ROMAN NUMERAL TWELVE*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+00217c: SMALL ROMAN NUMERAL FIFTY*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+00217d: SMALL ROMAN NUMERAL ONE HUNDRED*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+00217e: SMALL ROMAN NUMERAL FIVE HUNDRED*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+00217f: SMALL ROMAN NUMERAL ONE THOUSAND*/ - RTUNI_ALPHA, /* U+002180: ROMAN NUMERAL ONE THOUSAND C D*/ - RTUNI_ALPHA, /* U+002181: ROMAN NUMERAL FIVE THOUSAND*/ - RTUNI_ALPHA, /* U+002182: ROMAN NUMERAL TEN THOUSAND*/ - RTUNI_ALPHA, /* U+002183: ROMAN NUMERAL REVERSED ONE HUNDRED*/ - 0, /* U+002184: */ - 0, /* U+002185: */ - 0, /* U+002186: */ - 0, /* U+002187: */ - 0, /* U+002188: */ - 0, /* U+002189: */ - 0, /* U+00218a: */ - 0, /* U+00218b: */ - 0, /* U+00218c: */ - 0, /* U+00218d: */ - 0, /* U+00218e: */ - 0, /* U+00218f: */ - 0, /* U+002190: LEFTWARDS ARROW*/ - 0, /* U+002191: UPWARDS ARROW*/ - 0, /* U+002192: RIGHTWARDS ARROW*/ - 0, /* U+002193: DOWNWARDS ARROW*/ - 0, /* U+002194: LEFT RIGHT ARROW*/ - 0, /* U+002195: UP DOWN ARROW*/ - 0, /* U+002196: NORTH WEST ARROW*/ - 0, /* U+002197: NORTH EAST ARROW*/ - 0, /* U+002198: SOUTH EAST ARROW*/ - 0, /* U+002199: SOUTH WEST ARROW*/ - 0, /* U+00219a: LEFTWARDS ARROW WITH STROKE*/ - 0, /* U+00219b: RIGHTWARDS ARROW WITH STROKE*/ - 0, /* U+00219c: LEFTWARDS WAVE ARROW*/ - 0, /* U+00219d: RIGHTWARDS WAVE ARROW*/ - 0, /* U+00219e: LEFTWARDS TWO HEADED ARROW*/ - 0, /* U+00219f: UPWARDS TWO HEADED ARROW*/ - 0, /* U+0021a0: RIGHTWARDS TWO HEADED ARROW*/ - 0, /* U+0021a1: DOWNWARDS TWO HEADED ARROW*/ - 0, /* U+0021a2: LEFTWARDS ARROW WITH TAIL*/ - 0, /* U+0021a3: RIGHTWARDS ARROW WITH TAIL*/ - 0, /* U+0021a4: LEFTWARDS ARROW FROM BAR*/ - 0, /* U+0021a5: UPWARDS ARROW FROM BAR*/ - 0, /* U+0021a6: RIGHTWARDS ARROW FROM BAR*/ - 0, /* U+0021a7: DOWNWARDS ARROW FROM BAR*/ - 0, /* U+0021a8: UP DOWN ARROW WITH BASE*/ - 0, /* U+0021a9: LEFTWARDS ARROW WITH HOOK*/ - 0, /* U+0021aa: RIGHTWARDS ARROW WITH HOOK*/ - 0, /* U+0021ab: LEFTWARDS ARROW WITH LOOP*/ - 0, /* U+0021ac: RIGHTWARDS ARROW WITH LOOP*/ - 0, /* U+0021ad: LEFT RIGHT WAVE ARROW*/ - 0, /* U+0021ae: LEFT RIGHT ARROW WITH STROKE*/ - 0, /* U+0021af: DOWNWARDS ZIGZAG ARROW*/ - 0, /* U+0021b0: UPWARDS ARROW WITH TIP LEFTWARDS*/ - 0, /* U+0021b1: UPWARDS ARROW WITH TIP RIGHTWARDS*/ - 0, /* U+0021b2: DOWNWARDS ARROW WITH TIP LEFTWARDS*/ - 0, /* U+0021b3: DOWNWARDS ARROW WITH TIP RIGHTWARDS*/ - 0, /* U+0021b4: RIGHTWARDS ARROW WITH CORNER DOWNWARDS*/ - 0, /* U+0021b5: DOWNWARDS ARROW WITH CORNER LEFTWARDS*/ - 0, /* U+0021b6: ANTICLOCKWISE TOP SEMICIRCLE ARROW*/ - 0, /* U+0021b7: CLOCKWISE TOP SEMICIRCLE ARROW*/ - 0, /* U+0021b8: NORTH WEST ARROW TO LONG BAR*/ - 0, /* U+0021b9: LEFTWARDS ARROW TO BAR OVER RIGHTWARDS ARROW TO BAR*/ - 0, /* U+0021ba: ANTICLOCKWISE OPEN CIRCLE ARROW*/ - 0, /* U+0021bb: CLOCKWISE OPEN CIRCLE ARROW*/ - 0, /* U+0021bc: LEFTWARDS HARPOON WITH BARB UPWARDS*/ - 0, /* U+0021bd: LEFTWARDS HARPOON WITH BARB DOWNWARDS*/ - 0, /* U+0021be: UPWARDS HARPOON WITH BARB RIGHTWARDS*/ - 0, /* U+0021bf: UPWARDS HARPOON WITH BARB LEFTWARDS*/ - 0, /* U+0021c0: RIGHTWARDS HARPOON WITH BARB UPWARDS*/ - 0, /* U+0021c1: RIGHTWARDS HARPOON WITH BARB DOWNWARDS*/ - 0, /* U+0021c2: DOWNWARDS HARPOON WITH BARB RIGHTWARDS*/ - 0, /* U+0021c3: DOWNWARDS HARPOON WITH BARB LEFTWARDS*/ - 0, /* U+0021c4: RIGHTWARDS ARROW OVER LEFTWARDS ARROW*/ - 0, /* U+0021c5: UPWARDS ARROW LEFTWARDS OF DOWNWARDS ARROW*/ - 0, /* U+0021c6: LEFTWARDS ARROW OVER RIGHTWARDS ARROW*/ - 0, /* U+0021c7: LEFTWARDS PAIRED ARROWS*/ - 0, /* U+0021c8: UPWARDS PAIRED ARROWS*/ - 0, /* U+0021c9: RIGHTWARDS PAIRED ARROWS*/ - 0, /* U+0021ca: DOWNWARDS PAIRED ARROWS*/ - 0, /* U+0021cb: LEFTWARDS HARPOON OVER RIGHTWARDS HARPOON*/ - 0, /* U+0021cc: RIGHTWARDS HARPOON OVER LEFTWARDS HARPOON*/ - 0, /* U+0021cd: LEFTWARDS DOUBLE ARROW WITH STROKE*/ - 0, /* U+0021ce: LEFT RIGHT DOUBLE ARROW WITH STROKE*/ - 0, /* U+0021cf: RIGHTWARDS DOUBLE ARROW WITH STROKE*/ - 0, /* U+0021d0: LEFTWARDS DOUBLE ARROW*/ - 0, /* U+0021d1: UPWARDS DOUBLE ARROW*/ - 0, /* U+0021d2: RIGHTWARDS DOUBLE ARROW*/ - 0, /* U+0021d3: DOWNWARDS DOUBLE ARROW*/ - 0, /* U+0021d4: LEFT RIGHT DOUBLE ARROW*/ - 0, /* U+0021d5: UP DOWN DOUBLE ARROW*/ - 0, /* U+0021d6: NORTH WEST DOUBLE ARROW*/ - 0, /* U+0021d7: NORTH EAST DOUBLE ARROW*/ - 0, /* U+0021d8: SOUTH EAST DOUBLE ARROW*/ - 0, /* U+0021d9: SOUTH WEST DOUBLE ARROW*/ - 0, /* U+0021da: LEFTWARDS TRIPLE ARROW*/ - 0, /* U+0021db: RIGHTWARDS TRIPLE ARROW*/ - 0, /* U+0021dc: LEFTWARDS SQUIGGLE ARROW*/ - 0, /* U+0021dd: RIGHTWARDS SQUIGGLE ARROW*/ - 0, /* U+0021de: UPWARDS ARROW WITH DOUBLE STROKE*/ - 0, /* U+0021df: DOWNWARDS ARROW WITH DOUBLE STROKE*/ - 0, /* U+0021e0: LEFTWARDS DASHED ARROW*/ - 0, /* U+0021e1: UPWARDS DASHED ARROW*/ - 0, /* U+0021e2: RIGHTWARDS DASHED ARROW*/ - 0, /* U+0021e3: DOWNWARDS DASHED ARROW*/ - 0, /* U+0021e4: LEFTWARDS ARROW TO BAR*/ - 0, /* U+0021e5: RIGHTWARDS ARROW TO BAR*/ - 0, /* U+0021e6: LEFTWARDS WHITE ARROW*/ - 0, /* U+0021e7: UPWARDS WHITE ARROW*/ - 0, /* U+0021e8: RIGHTWARDS WHITE ARROW*/ - 0, /* U+0021e9: DOWNWARDS WHITE ARROW*/ - 0, /* U+0021ea: UPWARDS WHITE ARROW FROM BAR*/ - 0, /* U+0021eb: UPWARDS WHITE ARROW ON PEDESTAL*/ - 0, /* U+0021ec: UPWARDS WHITE ARROW ON PEDESTAL WITH HORIZONTAL BAR*/ - 0, /* U+0021ed: UPWARDS WHITE ARROW ON PEDESTAL WITH VERTICAL BAR*/ - 0, /* U+0021ee: UPWARDS WHITE DOUBLE ARROW*/ - 0, /* U+0021ef: UPWARDS WHITE DOUBLE ARROW ON PEDESTAL*/ - 0, /* U+0021f0: RIGHTWARDS WHITE ARROW FROM WALL*/ - 0, /* U+0021f1: NORTH WEST ARROW TO CORNER*/ - 0, /* U+0021f2: SOUTH EAST ARROW TO CORNER*/ - 0, /* U+0021f3: UP DOWN WHITE ARROW*/ - 0, /* U+0021f4: RIGHT ARROW WITH SMALL CIRCLE*/ - 0, /* U+0021f5: DOWNWARDS ARROW LEFTWARDS OF UPWARDS ARROW*/ - 0, /* U+0021f6: THREE RIGHTWARDS ARROWS*/ - 0, /* U+0021f7: LEFTWARDS ARROW WITH VERTICAL STROKE*/ - 0, /* U+0021f8: RIGHTWARDS ARROW WITH VERTICAL STROKE*/ - 0, /* U+0021f9: LEFT RIGHT ARROW WITH VERTICAL STROKE*/ - 0, /* U+0021fa: LEFTWARDS ARROW WITH DOUBLE VERTICAL STROKE*/ - 0, /* U+0021fb: RIGHTWARDS ARROW WITH DOUBLE VERTICAL STROKE*/ - 0, /* U+0021fc: LEFT RIGHT ARROW WITH DOUBLE VERTICAL STROKE*/ - 0, /* U+0021fd: LEFTWARDS OPEN-HEADED ARROW*/ - 0, /* U+0021fe: RIGHTWARDS OPEN-HEADED ARROW*/ - 0, /* U+0021ff: LEFT RIGHT OPEN-HEADED ARROW*/ - 0, /* U+002200: FOR ALL*/ - 0, /* U+002201: COMPLEMENT*/ - 0, /* U+002202: PARTIAL DIFFERENTIAL*/ - 0, /* U+002203: THERE EXISTS*/ - 0, /* U+002204: THERE DOES NOT EXIST*/ - 0, /* U+002205: EMPTY SET*/ - 0, /* U+002206: INCREMENT*/ - 0, /* U+002207: NABLA*/ - 0, /* U+002208: ELEMENT OF*/ - 0, /* U+002209: NOT AN ELEMENT OF*/ - 0, /* U+00220a: SMALL ELEMENT OF*/ - 0, /* U+00220b: CONTAINS AS MEMBER*/ - 0, /* U+00220c: DOES NOT CONTAIN AS MEMBER*/ - 0, /* U+00220d: SMALL CONTAINS AS MEMBER*/ - 0, /* U+00220e: END OF PROOF*/ - 0, /* U+00220f: N-ARY PRODUCT*/ - 0, /* U+002210: N-ARY COPRODUCT*/ - 0, /* U+002211: N-ARY SUMMATION*/ - 0, /* U+002212: MINUS SIGN*/ - 0, /* U+002213: MINUS-OR-PLUS SIGN*/ - 0, /* U+002214: DOT PLUS*/ - 0, /* U+002215: DIVISION SLASH*/ - 0, /* U+002216: SET MINUS*/ - 0, /* U+002217: ASTERISK OPERATOR*/ - 0, /* U+002218: RING OPERATOR*/ - 0, /* U+002219: BULLET OPERATOR*/ - 0, /* U+00221a: SQUARE ROOT*/ - 0, /* U+00221b: CUBE ROOT*/ - 0, /* U+00221c: FOURTH ROOT*/ - 0, /* U+00221d: PROPORTIONAL TO*/ - 0, /* U+00221e: INFINITY*/ - 0, /* U+00221f: RIGHT ANGLE*/ - 0, /* U+002220: ANGLE*/ - 0, /* U+002221: MEASURED ANGLE*/ - 0, /* U+002222: SPHERICAL ANGLE*/ - 0, /* U+002223: DIVIDES*/ - 0, /* U+002224: DOES NOT DIVIDE*/ - 0, /* U+002225: PARALLEL TO*/ - 0, /* U+002226: NOT PARALLEL TO*/ - 0, /* U+002227: LOGICAL AND*/ - 0, /* U+002228: LOGICAL OR*/ - 0, /* U+002229: INTERSECTION*/ - 0, /* U+00222a: UNION*/ - 0, /* U+00222b: INTEGRAL*/ - 0, /* U+00222c: DOUBLE INTEGRAL*/ - 0, /* U+00222d: TRIPLE INTEGRAL*/ - 0, /* U+00222e: CONTOUR INTEGRAL*/ - 0, /* U+00222f: SURFACE INTEGRAL*/ - 0, /* U+002230: VOLUME INTEGRAL*/ - 0, /* U+002231: CLOCKWISE INTEGRAL*/ - 0, /* U+002232: CLOCKWISE CONTOUR INTEGRAL*/ - 0, /* U+002233: ANTICLOCKWISE CONTOUR INTEGRAL*/ - 0, /* U+002234: THEREFORE*/ - 0, /* U+002235: BECAUSE*/ - 0, /* U+002236: RATIO*/ - 0, /* U+002237: PROPORTION*/ - 0, /* U+002238: DOT MINUS*/ - 0, /* U+002239: EXCESS*/ - 0, /* U+00223a: GEOMETRIC PROPORTION*/ - 0, /* U+00223b: HOMOTHETIC*/ - 0, /* U+00223c: TILDE OPERATOR*/ - 0, /* U+00223d: REVERSED TILDE*/ - 0, /* U+00223e: INVERTED LAZY S*/ - 0, /* U+00223f: SINE WAVE*/ - 0, /* U+002240: WREATH PRODUCT*/ - 0, /* U+002241: NOT TILDE*/ - 0, /* U+002242: MINUS TILDE*/ - 0, /* U+002243: ASYMPTOTICALLY EQUAL TO*/ - 0, /* U+002244: NOT ASYMPTOTICALLY EQUAL TO*/ - 0, /* U+002245: APPROXIMATELY EQUAL TO*/ - 0, /* U+002246: APPROXIMATELY BUT NOT ACTUALLY EQUAL TO*/ - 0, /* U+002247: NEITHER APPROXIMATELY NOR ACTUALLY EQUAL TO*/ - 0, /* U+002248: ALMOST EQUAL TO*/ - 0, /* U+002249: NOT ALMOST EQUAL TO*/ - 0, /* U+00224a: ALMOST EQUAL OR EQUAL TO*/ - 0, /* U+00224b: TRIPLE TILDE*/ - 0, /* U+00224c: ALL EQUAL TO*/ - 0, /* U+00224d: EQUIVALENT TO*/ - 0, /* U+00224e: GEOMETRICALLY EQUIVALENT TO*/ - 0, /* U+00224f: DIFFERENCE BETWEEN*/ - 0, /* U+002250: APPROACHES THE LIMIT*/ - 0, /* U+002251: GEOMETRICALLY EQUAL TO*/ - 0, /* U+002252: APPROXIMATELY EQUAL TO OR THE IMAGE OF*/ - 0, /* U+002253: IMAGE OF OR APPROXIMATELY EQUAL TO*/ - 0, /* U+002254: COLON EQUALS*/ - 0, /* U+002255: EQUALS COLON*/ - 0, /* U+002256: RING IN EQUAL TO*/ - 0, /* U+002257: RING EQUAL TO*/ - 0, /* U+002258: CORRESPONDS TO*/ - 0, /* U+002259: ESTIMATES*/ - 0, /* U+00225a: EQUIANGULAR TO*/ - 0, /* U+00225b: STAR EQUALS*/ - 0, /* U+00225c: DELTA EQUAL TO*/ - 0, /* U+00225d: EQUAL TO BY DEFINITION*/ - 0, /* U+00225e: MEASURED BY*/ - 0, /* U+00225f: QUESTIONED EQUAL TO*/ - 0, /* U+002260: NOT EQUAL TO*/ - 0, /* U+002261: IDENTICAL TO*/ - 0, /* U+002262: NOT IDENTICAL TO*/ - 0, /* U+002263: STRICTLY EQUIVALENT TO*/ - 0, /* U+002264: LESS-THAN OR EQUAL TO*/ - 0, /* U+002265: GREATER-THAN OR EQUAL TO*/ - 0, /* U+002266: LESS-THAN OVER EQUAL TO*/ - 0, /* U+002267: GREATER-THAN OVER EQUAL TO*/ - 0, /* U+002268: LESS-THAN BUT NOT EQUAL TO*/ - 0, /* U+002269: GREATER-THAN BUT NOT EQUAL TO*/ - 0, /* U+00226a: MUCH LESS-THAN*/ - 0, /* U+00226b: MUCH GREATER-THAN*/ - 0, /* U+00226c: BETWEEN*/ - 0, /* U+00226d: NOT EQUIVALENT TO*/ - 0, /* U+00226e: NOT LESS-THAN*/ - 0, /* U+00226f: NOT GREATER-THAN*/ - 0, /* U+002270: NEITHER LESS-THAN NOR EQUAL TO*/ - 0, /* U+002271: NEITHER GREATER-THAN NOR EQUAL TO*/ - 0, /* U+002272: LESS-THAN OR EQUIVALENT TO*/ - 0, /* U+002273: GREATER-THAN OR EQUIVALENT TO*/ - 0, /* U+002274: NEITHER LESS-THAN NOR EQUIVALENT TO*/ - 0, /* U+002275: NEITHER GREATER-THAN NOR EQUIVALENT TO*/ - 0, /* U+002276: LESS-THAN OR GREATER-THAN*/ - 0, /* U+002277: GREATER-THAN OR LESS-THAN*/ - 0, /* U+002278: NEITHER LESS-THAN NOR GREATER-THAN*/ - 0, /* U+002279: NEITHER GREATER-THAN NOR LESS-THAN*/ - 0, /* U+00227a: PRECEDES*/ - 0, /* U+00227b: SUCCEEDS*/ - 0, /* U+00227c: PRECEDES OR EQUAL TO*/ - 0, /* U+00227d: SUCCEEDS OR EQUAL TO*/ - 0, /* U+00227e: PRECEDES OR EQUIVALENT TO*/ - 0, /* U+00227f: SUCCEEDS OR EQUIVALENT TO*/ - 0, /* U+002280: DOES NOT PRECEDE*/ - 0, /* U+002281: DOES NOT SUCCEED*/ - 0, /* U+002282: SUBSET OF*/ - 0, /* U+002283: SUPERSET OF*/ - 0, /* U+002284: NOT A SUBSET OF*/ - 0, /* U+002285: NOT A SUPERSET OF*/ - 0, /* U+002286: SUBSET OF OR EQUAL TO*/ - 0, /* U+002287: SUPERSET OF OR EQUAL TO*/ - 0, /* U+002288: NEITHER A SUBSET OF NOR EQUAL TO*/ - 0, /* U+002289: NEITHER A SUPERSET OF NOR EQUAL TO*/ - 0, /* U+00228a: SUBSET OF WITH NOT EQUAL TO*/ - 0, /* U+00228b: SUPERSET OF WITH NOT EQUAL TO*/ - 0, /* U+00228c: MULTISET*/ - 0, /* U+00228d: MULTISET MULTIPLICATION*/ - 0, /* U+00228e: MULTISET UNION*/ - 0, /* U+00228f: SQUARE IMAGE OF*/ - 0, /* U+002290: SQUARE ORIGINAL OF*/ - 0, /* U+002291: SQUARE IMAGE OF OR EQUAL TO*/ - 0, /* U+002292: SQUARE ORIGINAL OF OR EQUAL TO*/ - 0, /* U+002293: SQUARE CAP*/ - 0, /* U+002294: SQUARE CUP*/ - 0, /* U+002295: CIRCLED PLUS*/ - 0, /* U+002296: CIRCLED MINUS*/ - 0, /* U+002297: CIRCLED TIMES*/ - 0, /* U+002298: CIRCLED DIVISION SLASH*/ - 0, /* U+002299: CIRCLED DOT OPERATOR*/ - 0, /* U+00229a: CIRCLED RING OPERATOR*/ - 0, /* U+00229b: CIRCLED ASTERISK OPERATOR*/ - 0, /* U+00229c: CIRCLED EQUALS*/ - 0, /* U+00229d: CIRCLED DASH*/ - 0, /* U+00229e: SQUARED PLUS*/ - 0, /* U+00229f: SQUARED MINUS*/ - 0, /* U+0022a0: SQUARED TIMES*/ - 0, /* U+0022a1: SQUARED DOT OPERATOR*/ - 0, /* U+0022a2: RIGHT TACK*/ - 0, /* U+0022a3: LEFT TACK*/ - 0, /* U+0022a4: DOWN TACK*/ - 0, /* U+0022a5: UP TACK*/ - 0, /* U+0022a6: ASSERTION*/ - 0, /* U+0022a7: MODELS*/ - 0, /* U+0022a8: TRUE*/ - 0, /* U+0022a9: FORCES*/ - 0, /* U+0022aa: TRIPLE VERTICAL BAR RIGHT TURNSTILE*/ - 0, /* U+0022ab: DOUBLE VERTICAL BAR DOUBLE RIGHT TURNSTILE*/ - 0, /* U+0022ac: DOES NOT PROVE*/ - 0, /* U+0022ad: NOT TRUE*/ - 0, /* U+0022ae: DOES NOT FORCE*/ - 0, /* U+0022af: NEGATED DOUBLE VERTICAL BAR DOUBLE RIGHT TURNSTILE*/ - 0, /* U+0022b0: PRECEDES UNDER RELATION*/ - 0, /* U+0022b1: SUCCEEDS UNDER RELATION*/ - 0, /* U+0022b2: NORMAL SUBGROUP OF*/ - 0, /* U+0022b3: CONTAINS AS NORMAL SUBGROUP*/ - 0, /* U+0022b4: NORMAL SUBGROUP OF OR EQUAL TO*/ - 0, /* U+0022b5: CONTAINS AS NORMAL SUBGROUP OR EQUAL TO*/ - 0, /* U+0022b6: ORIGINAL OF*/ - 0, /* U+0022b7: IMAGE OF*/ - 0, /* U+0022b8: MULTIMAP*/ - 0, /* U+0022b9: HERMITIAN CONJUGATE MATRIX*/ - 0, /* U+0022ba: INTERCALATE*/ - 0, /* U+0022bb: XOR*/ - 0, /* U+0022bc: NAND*/ - 0, /* U+0022bd: NOR*/ - 0, /* U+0022be: RIGHT ANGLE WITH ARC*/ - 0, /* U+0022bf: RIGHT TRIANGLE*/ - 0, /* U+0022c0: N-ARY LOGICAL AND*/ - 0, /* U+0022c1: N-ARY LOGICAL OR*/ - 0, /* U+0022c2: N-ARY INTERSECTION*/ - 0, /* U+0022c3: N-ARY UNION*/ - 0, /* U+0022c4: DIAMOND OPERATOR*/ - 0, /* U+0022c5: DOT OPERATOR*/ - 0, /* U+0022c6: STAR OPERATOR*/ - 0, /* U+0022c7: DIVISION TIMES*/ - 0, /* U+0022c8: BOWTIE*/ - 0, /* U+0022c9: LEFT NORMAL FACTOR SEMIDIRECT PRODUCT*/ - 0, /* U+0022ca: RIGHT NORMAL FACTOR SEMIDIRECT PRODUCT*/ - 0, /* U+0022cb: LEFT SEMIDIRECT PRODUCT*/ - 0, /* U+0022cc: RIGHT SEMIDIRECT PRODUCT*/ - 0, /* U+0022cd: REVERSED TILDE EQUALS*/ - 0, /* U+0022ce: CURLY LOGICAL OR*/ - 0, /* U+0022cf: CURLY LOGICAL AND*/ - 0, /* U+0022d0: DOUBLE SUBSET*/ - 0, /* U+0022d1: DOUBLE SUPERSET*/ - 0, /* U+0022d2: DOUBLE INTERSECTION*/ - 0, /* U+0022d3: DOUBLE UNION*/ - 0, /* U+0022d4: PITCHFORK*/ - 0, /* U+0022d5: EQUAL AND PARALLEL TO*/ - 0, /* U+0022d6: LESS-THAN WITH DOT*/ - 0, /* U+0022d7: GREATER-THAN WITH DOT*/ - 0, /* U+0022d8: VERY MUCH LESS-THAN*/ - 0, /* U+0022d9: VERY MUCH GREATER-THAN*/ - 0, /* U+0022da: LESS-THAN EQUAL TO OR GREATER-THAN*/ - 0, /* U+0022db: GREATER-THAN EQUAL TO OR LESS-THAN*/ - 0, /* U+0022dc: EQUAL TO OR LESS-THAN*/ - 0, /* U+0022dd: EQUAL TO OR GREATER-THAN*/ - 0, /* U+0022de: EQUAL TO OR PRECEDES*/ - 0, /* U+0022df: EQUAL TO OR SUCCEEDS*/ - 0, /* U+0022e0: DOES NOT PRECEDE OR EQUAL*/ - 0, /* U+0022e1: DOES NOT SUCCEED OR EQUAL*/ - 0, /* U+0022e2: NOT SQUARE IMAGE OF OR EQUAL TO*/ - 0, /* U+0022e3: NOT SQUARE ORIGINAL OF OR EQUAL TO*/ - 0, /* U+0022e4: SQUARE IMAGE OF OR NOT EQUAL TO*/ - 0, /* U+0022e5: SQUARE ORIGINAL OF OR NOT EQUAL TO*/ - 0, /* U+0022e6: LESS-THAN BUT NOT EQUIVALENT TO*/ - 0, /* U+0022e7: GREATER-THAN BUT NOT EQUIVALENT TO*/ - 0, /* U+0022e8: PRECEDES BUT NOT EQUIVALENT TO*/ - 0, /* U+0022e9: SUCCEEDS BUT NOT EQUIVALENT TO*/ - 0, /* U+0022ea: NOT NORMAL SUBGROUP OF*/ - 0, /* U+0022eb: DOES NOT CONTAIN AS NORMAL SUBGROUP*/ - 0, /* U+0022ec: NOT NORMAL SUBGROUP OF OR EQUAL TO*/ - 0, /* U+0022ed: DOES NOT CONTAIN AS NORMAL SUBGROUP OR EQUAL*/ - 0, /* U+0022ee: VERTICAL ELLIPSIS*/ - 0, /* U+0022ef: MIDLINE HORIZONTAL ELLIPSIS*/ - 0, /* U+0022f0: UP RIGHT DIAGONAL ELLIPSIS*/ - 0, /* U+0022f1: DOWN RIGHT DIAGONAL ELLIPSIS*/ - 0, /* U+0022f2: ELEMENT OF WITH LONG HORIZONTAL STROKE*/ - 0, /* U+0022f3: ELEMENT OF WITH VERTICAL BAR AT END OF HORIZONTAL STROKE*/ - 0, /* U+0022f4: SMALL ELEMENT OF WITH VERTICAL BAR AT END OF HORIZONTAL STROKE*/ - 0, /* U+0022f5: ELEMENT OF WITH DOT ABOVE*/ - 0, /* U+0022f6: ELEMENT OF WITH OVERBAR*/ - 0, /* U+0022f7: SMALL ELEMENT OF WITH OVERBAR*/ - 0, /* U+0022f8: ELEMENT OF WITH UNDERBAR*/ - 0, /* U+0022f9: ELEMENT OF WITH TWO HORIZONTAL STROKES*/ - 0, /* U+0022fa: CONTAINS WITH LONG HORIZONTAL STROKE*/ - 0, /* U+0022fb: CONTAINS WITH VERTICAL BAR AT END OF HORIZONTAL STROKE*/ - 0, /* U+0022fc: SMALL CONTAINS WITH VERTICAL BAR AT END OF HORIZONTAL STROKE*/ - 0, /* U+0022fd: CONTAINS WITH OVERBAR*/ - 0, /* U+0022fe: SMALL CONTAINS WITH OVERBAR*/ - 0, /* U+0022ff: Z NOTATION BAG MEMBERSHIP*/ - 0, /* U+002300: DIAMETER SIGN*/ - 0, /* U+002301: ELECTRIC ARROW*/ - 0, /* U+002302: HOUSE*/ - 0, /* U+002303: UP ARROWHEAD*/ - 0, /* U+002304: DOWN ARROWHEAD*/ - 0, /* U+002305: PROJECTIVE*/ - 0, /* U+002306: PERSPECTIVE*/ - 0, /* U+002307: WAVY LINE*/ - 0, /* U+002308: LEFT CEILING*/ - 0, /* U+002309: RIGHT CEILING*/ - 0, /* U+00230a: LEFT FLOOR*/ - 0, /* U+00230b: RIGHT FLOOR*/ - 0, /* U+00230c: BOTTOM RIGHT CROP*/ - 0, /* U+00230d: BOTTOM LEFT CROP*/ - 0, /* U+00230e: TOP RIGHT CROP*/ - 0, /* U+00230f: TOP LEFT CROP*/ - 0, /* U+002310: REVERSED NOT SIGN*/ - 0, /* U+002311: SQUARE LOZENGE*/ - 0, /* U+002312: ARC*/ - 0, /* U+002313: SEGMENT*/ - 0, /* U+002314: SECTOR*/ - 0, /* U+002315: TELEPHONE RECORDER*/ - 0, /* U+002316: POSITION INDICATOR*/ - 0, /* U+002317: VIEWDATA SQUARE*/ - 0, /* U+002318: PLACE OF INTEREST SIGN*/ - 0, /* U+002319: TURNED NOT SIGN*/ - 0, /* U+00231a: WATCH*/ - 0, /* U+00231b: HOURGLASS*/ - 0, /* U+00231c: TOP LEFT CORNER*/ - 0, /* U+00231d: TOP RIGHT CORNER*/ - 0, /* U+00231e: BOTTOM LEFT CORNER*/ - 0, /* U+00231f: BOTTOM RIGHT CORNER*/ - 0, /* U+002320: TOP HALF INTEGRAL*/ - 0, /* U+002321: BOTTOM HALF INTEGRAL*/ - 0, /* U+002322: FROWN*/ - 0, /* U+002323: SMILE*/ - 0, /* U+002324: UP ARROWHEAD BETWEEN TWO HORIZONTAL BARS*/ - 0, /* U+002325: OPTION KEY*/ - 0, /* U+002326: ERASE TO THE RIGHT*/ - 0, /* U+002327: X IN A RECTANGLE BOX*/ - 0, /* U+002328: KEYBOARD*/ - 0, /* U+002329: LEFT-POINTING ANGLE BRACKET*/ - 0, /* U+00232a: RIGHT-POINTING ANGLE BRACKET*/ - 0, /* U+00232b: ERASE TO THE LEFT*/ - 0, /* U+00232c: BENZENE RING*/ - 0, /* U+00232d: CYLINDRICITY*/ - 0, /* U+00232e: ALL AROUND-PROFILE*/ - 0, /* U+00232f: SYMMETRY*/ - 0, /* U+002330: TOTAL RUNOUT*/ - 0, /* U+002331: DIMENSION ORIGIN*/ - 0, /* U+002332: CONICAL TAPER*/ - 0, /* U+002333: SLOPE*/ - 0, /* U+002334: COUNTERBORE*/ - 0, /* U+002335: COUNTERSINK*/ - 0, /* U+002336: APL FUNCTIONAL SYMBOL I-BEAM*/ - 0, /* U+002337: APL FUNCTIONAL SYMBOL SQUISH QUAD*/ - 0, /* U+002338: APL FUNCTIONAL SYMBOL QUAD EQUAL*/ - 0, /* U+002339: APL FUNCTIONAL SYMBOL QUAD DIVIDE*/ - 0, /* U+00233a: APL FUNCTIONAL SYMBOL QUAD DIAMOND*/ - 0, /* U+00233b: APL FUNCTIONAL SYMBOL QUAD JOT*/ - 0, /* U+00233c: APL FUNCTIONAL SYMBOL QUAD CIRCLE*/ - 0, /* U+00233d: APL FUNCTIONAL SYMBOL CIRCLE STILE*/ - 0, /* U+00233e: APL FUNCTIONAL SYMBOL CIRCLE JOT*/ - 0, /* U+00233f: APL FUNCTIONAL SYMBOL SLASH BAR*/ - 0, /* U+002340: APL FUNCTIONAL SYMBOL BACKSLASH BAR*/ - 0, /* U+002341: APL FUNCTIONAL SYMBOL QUAD SLASH*/ - 0, /* U+002342: APL FUNCTIONAL SYMBOL QUAD BACKSLASH*/ - 0, /* U+002343: APL FUNCTIONAL SYMBOL QUAD LESS-THAN*/ - 0, /* U+002344: APL FUNCTIONAL SYMBOL QUAD GREATER-THAN*/ - 0, /* U+002345: APL FUNCTIONAL SYMBOL LEFTWARDS VANE*/ - 0, /* U+002346: APL FUNCTIONAL SYMBOL RIGHTWARDS VANE*/ - 0, /* U+002347: APL FUNCTIONAL SYMBOL QUAD LEFTWARDS ARROW*/ - 0, /* U+002348: APL FUNCTIONAL SYMBOL QUAD RIGHTWARDS ARROW*/ - 0, /* U+002349: APL FUNCTIONAL SYMBOL CIRCLE BACKSLASH*/ - 0, /* U+00234a: APL FUNCTIONAL SYMBOL DOWN TACK UNDERBAR*/ - 0, /* U+00234b: APL FUNCTIONAL SYMBOL DELTA STILE*/ - 0, /* U+00234c: APL FUNCTIONAL SYMBOL QUAD DOWN CARET*/ - 0, /* U+00234d: APL FUNCTIONAL SYMBOL QUAD DELTA*/ - 0, /* U+00234e: APL FUNCTIONAL SYMBOL DOWN TACK JOT*/ - 0, /* U+00234f: APL FUNCTIONAL SYMBOL UPWARDS VANE*/ - 0, /* U+002350: APL FUNCTIONAL SYMBOL QUAD UPWARDS ARROW*/ - 0, /* U+002351: APL FUNCTIONAL SYMBOL UP TACK OVERBAR*/ - 0, /* U+002352: APL FUNCTIONAL SYMBOL DEL STILE*/ - 0, /* U+002353: APL FUNCTIONAL SYMBOL QUAD UP CARET*/ - 0, /* U+002354: APL FUNCTIONAL SYMBOL QUAD DEL*/ - 0, /* U+002355: APL FUNCTIONAL SYMBOL UP TACK JOT*/ - 0, /* U+002356: APL FUNCTIONAL SYMBOL DOWNWARDS VANE*/ - 0, /* U+002357: APL FUNCTIONAL SYMBOL QUAD DOWNWARDS ARROW*/ - 0, /* U+002358: APL FUNCTIONAL SYMBOL QUOTE UNDERBAR*/ - 0, /* U+002359: APL FUNCTIONAL SYMBOL DELTA UNDERBAR*/ - 0, /* U+00235a: APL FUNCTIONAL SYMBOL DIAMOND UNDERBAR*/ - 0, /* U+00235b: APL FUNCTIONAL SYMBOL JOT UNDERBAR*/ - 0, /* U+00235c: APL FUNCTIONAL SYMBOL CIRCLE UNDERBAR*/ - 0, /* U+00235d: APL FUNCTIONAL SYMBOL UP SHOE JOT*/ - 0, /* U+00235e: APL FUNCTIONAL SYMBOL QUOTE QUAD*/ - 0, /* U+00235f: APL FUNCTIONAL SYMBOL CIRCLE STAR*/ - 0, /* U+002360: APL FUNCTIONAL SYMBOL QUAD COLON*/ - 0, /* U+002361: APL FUNCTIONAL SYMBOL UP TACK DIAERESIS*/ - 0, /* U+002362: APL FUNCTIONAL SYMBOL DEL DIAERESIS*/ - 0, /* U+002363: APL FUNCTIONAL SYMBOL STAR DIAERESIS*/ - 0, /* U+002364: APL FUNCTIONAL SYMBOL JOT DIAERESIS*/ - 0, /* U+002365: APL FUNCTIONAL SYMBOL CIRCLE DIAERESIS*/ - 0, /* U+002366: APL FUNCTIONAL SYMBOL DOWN SHOE STILE*/ - 0, /* U+002367: APL FUNCTIONAL SYMBOL LEFT SHOE STILE*/ - 0, /* U+002368: APL FUNCTIONAL SYMBOL TILDE DIAERESIS*/ - 0, /* U+002369: APL FUNCTIONAL SYMBOL GREATER-THAN DIAERESIS*/ - 0, /* U+00236a: APL FUNCTIONAL SYMBOL COMMA BAR*/ - 0, /* U+00236b: APL FUNCTIONAL SYMBOL DEL TILDE*/ - 0, /* U+00236c: APL FUNCTIONAL SYMBOL ZILDE*/ - 0, /* U+00236d: APL FUNCTIONAL SYMBOL STILE TILDE*/ - 0, /* U+00236e: APL FUNCTIONAL SYMBOL SEMICOLON UNDERBAR*/ - 0, /* U+00236f: APL FUNCTIONAL SYMBOL QUAD NOT EQUAL*/ - 0, /* U+002370: APL FUNCTIONAL SYMBOL QUAD QUESTION*/ - 0, /* U+002371: APL FUNCTIONAL SYMBOL DOWN CARET TILDE*/ - 0, /* U+002372: APL FUNCTIONAL SYMBOL UP CARET TILDE*/ - 0, /* U+002373: APL FUNCTIONAL SYMBOL IOTA*/ - 0, /* U+002374: APL FUNCTIONAL SYMBOL RHO*/ - 0, /* U+002375: APL FUNCTIONAL SYMBOL OMEGA*/ - 0, /* U+002376: APL FUNCTIONAL SYMBOL ALPHA UNDERBAR*/ - 0, /* U+002377: APL FUNCTIONAL SYMBOL EPSILON UNDERBAR*/ - 0, /* U+002378: APL FUNCTIONAL SYMBOL IOTA UNDERBAR*/ - 0, /* U+002379: APL FUNCTIONAL SYMBOL OMEGA UNDERBAR*/ - 0, /* U+00237a: APL FUNCTIONAL SYMBOL ALPHA*/ - 0, /* U+00237b: NOT CHECK MARK*/ - 0, /* U+00237c: RIGHT ANGLE WITH DOWNWARDS ZIGZAG ARROW*/ - 0, /* U+00237d: SHOULDERED OPEN BOX*/ - 0, /* U+00237e: BELL SYMBOL*/ - 0, /* U+00237f: VERTICAL LINE WITH MIDDLE DOT*/ - 0, /* U+002380: INSERTION SYMBOL*/ - 0, /* U+002381: CONTINUOUS UNDERLINE SYMBOL*/ - 0, /* U+002382: DISCONTINUOUS UNDERLINE SYMBOL*/ - 0, /* U+002383: EMPHASIS SYMBOL*/ - 0, /* U+002384: COMPOSITION SYMBOL*/ - 0, /* U+002385: WHITE SQUARE WITH CENTRE VERTICAL LINE*/ - 0, /* U+002386: ENTER SYMBOL*/ - 0, /* U+002387: ALTERNATIVE KEY SYMBOL*/ - 0, /* U+002388: HELM SYMBOL*/ - 0, /* U+002389: CIRCLED HORIZONTAL BAR WITH NOTCH*/ - 0, /* U+00238a: CIRCLED TRIANGLE DOWN*/ - 0, /* U+00238b: BROKEN CIRCLE WITH NORTHWEST ARROW*/ - 0, /* U+00238c: UNDO SYMBOL*/ - 0, /* U+00238d: MONOSTABLE SYMBOL*/ - 0, /* U+00238e: HYSTERESIS SYMBOL*/ - 0, /* U+00238f: OPEN-CIRCUIT-OUTPUT H-TYPE SYMBOL*/ - 0, /* U+002390: OPEN-CIRCUIT-OUTPUT L-TYPE SYMBOL*/ - 0, /* U+002391: PASSIVE-PULL-DOWN-OUTPUT SYMBOL*/ - 0, /* U+002392: PASSIVE-PULL-UP-OUTPUT SYMBOL*/ - 0, /* U+002393: DIRECT CURRENT SYMBOL FORM TWO*/ - 0, /* U+002394: SOFTWARE-FUNCTION SYMBOL*/ - 0, /* U+002395: APL FUNCTIONAL SYMBOL QUAD*/ - 0, /* U+002396: DECIMAL SEPARATOR KEY SYMBOL*/ - 0, /* U+002397: PREVIOUS PAGE*/ - 0, /* U+002398: NEXT PAGE*/ - 0, /* U+002399: PRINT SCREEN SYMBOL*/ - 0, /* U+00239a: CLEAR SCREEN SYMBOL*/ - 0, /* U+00239b: LEFT PARENTHESIS UPPER HOOK*/ - 0, /* U+00239c: LEFT PARENTHESIS EXTENSION*/ - 0, /* U+00239d: LEFT PARENTHESIS LOWER HOOK*/ - 0, /* U+00239e: RIGHT PARENTHESIS UPPER HOOK*/ - 0, /* U+00239f: RIGHT PARENTHESIS EXTENSION*/ - 0, /* U+0023a0: RIGHT PARENTHESIS LOWER HOOK*/ - 0, /* U+0023a1: LEFT SQUARE BRACKET UPPER CORNER*/ - 0, /* U+0023a2: LEFT SQUARE BRACKET EXTENSION*/ - 0, /* U+0023a3: LEFT SQUARE BRACKET LOWER CORNER*/ - 0, /* U+0023a4: RIGHT SQUARE BRACKET UPPER CORNER*/ - 0, /* U+0023a5: RIGHT SQUARE BRACKET EXTENSION*/ - 0, /* U+0023a6: RIGHT SQUARE BRACKET LOWER CORNER*/ - 0, /* U+0023a7: LEFT CURLY BRACKET UPPER HOOK*/ - 0, /* U+0023a8: LEFT CURLY BRACKET MIDDLE PIECE*/ - 0, /* U+0023a9: LEFT CURLY BRACKET LOWER HOOK*/ - 0, /* U+0023aa: CURLY BRACKET EXTENSION*/ - 0, /* U+0023ab: RIGHT CURLY BRACKET UPPER HOOK*/ - 0, /* U+0023ac: RIGHT CURLY BRACKET MIDDLE PIECE*/ - 0, /* U+0023ad: RIGHT CURLY BRACKET LOWER HOOK*/ - 0, /* U+0023ae: INTEGRAL EXTENSION*/ - 0, /* U+0023af: HORIZONTAL LINE EXTENSION*/ - 0, /* U+0023b0: UPPER LEFT OR LOWER RIGHT CURLY BRACKET SECTION*/ - 0, /* U+0023b1: UPPER RIGHT OR LOWER LEFT CURLY BRACKET SECTION*/ - 0, /* U+0023b2: SUMMATION TOP*/ - 0, /* U+0023b3: SUMMATION BOTTOM*/ - 0, /* U+0023b4: TOP SQUARE BRACKET*/ - 0, /* U+0023b5: BOTTOM SQUARE BRACKET*/ - 0, /* U+0023b6: BOTTOM SQUARE BRACKET OVER TOP SQUARE BRACKET*/ - 0, /* U+0023b7: RADICAL SYMBOL BOTTOM*/ - 0, /* U+0023b8: LEFT VERTICAL BOX LINE*/ - 0, /* U+0023b9: RIGHT VERTICAL BOX LINE*/ - 0, /* U+0023ba: HORIZONTAL SCAN LINE-1*/ - 0, /* U+0023bb: HORIZONTAL SCAN LINE-3*/ - 0, /* U+0023bc: HORIZONTAL SCAN LINE-7*/ - 0, /* U+0023bd: HORIZONTAL SCAN LINE-9*/ - 0, /* U+0023be: DENTISTRY SYMBOL LIGHT VERTICAL AND TOP RIGHT*/ - 0, /* U+0023bf: DENTISTRY SYMBOL LIGHT VERTICAL AND BOTTOM RIGHT*/ - 0, /* U+0023c0: DENTISTRY SYMBOL LIGHT VERTICAL WITH CIRCLE*/ - 0, /* U+0023c1: DENTISTRY SYMBOL LIGHT DOWN AND HORIZONTAL WITH CIRCLE*/ - 0, /* U+0023c2: DENTISTRY SYMBOL LIGHT UP AND HORIZONTAL WITH CIRCLE*/ - 0, /* U+0023c3: DENTISTRY SYMBOL LIGHT VERTICAL WITH TRIANGLE*/ - 0, /* U+0023c4: DENTISTRY SYMBOL LIGHT DOWN AND HORIZONTAL WITH TRIANGLE*/ - 0, /* U+0023c5: DENTISTRY SYMBOL LIGHT UP AND HORIZONTAL WITH TRIANGLE*/ - 0, /* U+0023c6: DENTISTRY SYMBOL LIGHT VERTICAL AND WAVE*/ - 0, /* U+0023c7: DENTISTRY SYMBOL LIGHT DOWN AND HORIZONTAL WITH WAVE*/ - 0, /* U+0023c8: DENTISTRY SYMBOL LIGHT UP AND HORIZONTAL WITH WAVE*/ - 0, /* U+0023c9: DENTISTRY SYMBOL LIGHT DOWN AND HORIZONTAL*/ - 0, /* U+0023ca: DENTISTRY SYMBOL LIGHT UP AND HORIZONTAL*/ - 0, /* U+0023cb: DENTISTRY SYMBOL LIGHT VERTICAL AND TOP LEFT*/ - 0, /* U+0023cc: DENTISTRY SYMBOL LIGHT VERTICAL AND BOTTOM LEFT*/ - 0, /* U+0023cd: SQUARE FOOT*/ - 0, /* U+0023ce: RETURN SYMBOL*/ - 0, /* U+0023cf: EJECT SYMBOL*/ - 0, /* U+0023d0: VERTICAL LINE EXTENSION*/ - 0, /* U+0023d1: METRICAL BREVE*/ - 0, /* U+0023d2: METRICAL LONG OVER SHORT*/ - 0, /* U+0023d3: METRICAL SHORT OVER LONG*/ - 0, /* U+0023d4: METRICAL LONG OVER TWO SHORTS*/ - 0, /* U+0023d5: METRICAL TWO SHORTS OVER LONG*/ - 0, /* U+0023d6: METRICAL TWO SHORTS JOINED*/ - 0, /* U+0023d7: METRICAL TRISEME*/ - 0, /* U+0023d8: METRICAL TETRASEME*/ - 0, /* U+0023d9: METRICAL PENTASEME*/ - 0, /* U+0023da: EARTH GROUND*/ - 0, /* U+0023db: FUSE*/ - 0, /* U+0023dc: */ - 0, /* U+0023dd: */ - 0, /* U+0023de: */ - 0, /* U+0023df: */ - 0, /* U+0023e0: */ - 0, /* U+0023e1: */ - 0, /* U+0023e2: */ - 0, /* U+0023e3: */ - 0, /* U+0023e4: */ - 0, /* U+0023e5: */ - 0, /* U+0023e6: */ - 0, /* U+0023e7: */ - 0, /* U+0023e8: */ - 0, /* U+0023e9: */ - 0, /* U+0023ea: */ - 0, /* U+0023eb: */ - 0, /* U+0023ec: */ - 0, /* U+0023ed: */ - 0, /* U+0023ee: */ - 0, /* U+0023ef: */ - 0, /* U+0023f0: */ - 0, /* U+0023f1: */ - 0, /* U+0023f2: */ - 0, /* U+0023f3: */ - 0, /* U+0023f4: */ - 0, /* U+0023f5: */ - 0, /* U+0023f6: */ - 0, /* U+0023f7: */ - 0, /* U+0023f8: */ - 0, /* U+0023f9: */ - 0, /* U+0023fa: */ - 0, /* U+0023fb: */ - 0, /* U+0023fc: */ - 0, /* U+0023fd: */ - 0, /* U+0023fe: */ - 0, /* U+0023ff: */ - 0, /* U+002400: SYMBOL FOR NULL*/ - 0, /* U+002401: SYMBOL FOR START OF HEADING*/ - 0, /* U+002402: SYMBOL FOR START OF TEXT*/ - 0, /* U+002403: SYMBOL FOR END OF TEXT*/ - 0, /* U+002404: SYMBOL FOR END OF TRANSMISSION*/ - 0, /* U+002405: SYMBOL FOR ENQUIRY*/ - 0, /* U+002406: SYMBOL FOR ACKNOWLEDGE*/ - 0, /* U+002407: SYMBOL FOR BELL*/ - 0, /* U+002408: SYMBOL FOR BACKSPACE*/ - 0, /* U+002409: SYMBOL FOR HORIZONTAL TABULATION*/ - 0, /* U+00240a: SYMBOL FOR LINE FEED*/ - 0, /* U+00240b: SYMBOL FOR VERTICAL TABULATION*/ - 0, /* U+00240c: SYMBOL FOR FORM FEED*/ - 0, /* U+00240d: SYMBOL FOR CARRIAGE RETURN*/ - 0, /* U+00240e: SYMBOL FOR SHIFT OUT*/ - 0, /* U+00240f: SYMBOL FOR SHIFT IN*/ - 0, /* U+002410: SYMBOL FOR DATA LINK ESCAPE*/ - 0, /* U+002411: SYMBOL FOR DEVICE CONTROL ONE*/ - 0, /* U+002412: SYMBOL FOR DEVICE CONTROL TWO*/ - 0, /* U+002413: SYMBOL FOR DEVICE CONTROL THREE*/ - 0, /* U+002414: SYMBOL FOR DEVICE CONTROL FOUR*/ - 0, /* U+002415: SYMBOL FOR NEGATIVE ACKNOWLEDGE*/ - 0, /* U+002416: SYMBOL FOR SYNCHRONOUS IDLE*/ - 0, /* U+002417: SYMBOL FOR END OF TRANSMISSION BLOCK*/ - 0, /* U+002418: SYMBOL FOR CANCEL*/ - 0, /* U+002419: SYMBOL FOR END OF MEDIUM*/ - 0, /* U+00241a: SYMBOL FOR SUBSTITUTE*/ - 0, /* U+00241b: SYMBOL FOR ESCAPE*/ - 0, /* U+00241c: SYMBOL FOR FILE SEPARATOR*/ - 0, /* U+00241d: SYMBOL FOR GROUP SEPARATOR*/ - 0, /* U+00241e: SYMBOL FOR RECORD SEPARATOR*/ - 0, /* U+00241f: SYMBOL FOR UNIT SEPARATOR*/ - 0, /* U+002420: SYMBOL FOR SPACE*/ - 0, /* U+002421: SYMBOL FOR DELETE*/ - 0, /* U+002422: BLANK SYMBOL*/ - 0, /* U+002423: OPEN BOX*/ - 0, /* U+002424: SYMBOL FOR NEWLINE*/ - 0, /* U+002425: SYMBOL FOR DELETE FORM TWO*/ - 0, /* U+002426: SYMBOL FOR SUBSTITUTE FORM TWO*/ - 0, /* U+002427: */ - 0, /* U+002428: */ - 0, /* U+002429: */ - 0, /* U+00242a: */ - 0, /* U+00242b: */ - 0, /* U+00242c: */ - 0, /* U+00242d: */ - 0, /* U+00242e: */ - 0, /* U+00242f: */ - 0, /* U+002430: */ - 0, /* U+002431: */ - 0, /* U+002432: */ - 0, /* U+002433: */ - 0, /* U+002434: */ - 0, /* U+002435: */ - 0, /* U+002436: */ - 0, /* U+002437: */ - 0, /* U+002438: */ - 0, /* U+002439: */ - 0, /* U+00243a: */ - 0, /* U+00243b: */ - 0, /* U+00243c: */ - 0, /* U+00243d: */ - 0, /* U+00243e: */ - 0, /* U+00243f: */ - 0, /* U+002440: OCR HOOK*/ - 0, /* U+002441: OCR CHAIR*/ - 0, /* U+002442: OCR FORK*/ - 0, /* U+002443: OCR INVERTED FORK*/ - 0, /* U+002444: OCR BELT BUCKLE*/ - 0, /* U+002445: OCR BOW TIE*/ - 0, /* U+002446: OCR BRANCH BANK IDENTIFICATION*/ - 0, /* U+002447: OCR AMOUNT OF CHECK*/ - 0, /* U+002448: OCR DASH*/ - 0, /* U+002449: OCR CUSTOMER ACCOUNT NUMBER*/ - 0, /* U+00244a: OCR DOUBLE BACKSLASH*/ - 0, /* U+00244b: */ - 0, /* U+00244c: */ - 0, /* U+00244d: */ - 0, /* U+00244e: */ - 0, /* U+00244f: */ - 0, /* U+002450: */ - 0, /* U+002451: */ - 0, /* U+002452: */ - 0, /* U+002453: */ - 0, /* U+002454: */ - 0, /* U+002455: */ - 0, /* U+002456: */ - 0, /* U+002457: */ - 0, /* U+002458: */ - 0, /* U+002459: */ - 0, /* U+00245a: */ - 0, /* U+00245b: */ - 0, /* U+00245c: */ - 0, /* U+00245d: */ - 0, /* U+00245e: */ - 0, /* U+00245f: */ - 0, /* U+002460: CIRCLED DIGIT ONE*/ - 0, /* U+002461: CIRCLED DIGIT TWO*/ - 0, /* U+002462: CIRCLED DIGIT THREE*/ - 0, /* U+002463: CIRCLED DIGIT FOUR*/ - 0, /* U+002464: CIRCLED DIGIT FIVE*/ - 0, /* U+002465: CIRCLED DIGIT SIX*/ - 0, /* U+002466: CIRCLED DIGIT SEVEN*/ - 0, /* U+002467: CIRCLED DIGIT EIGHT*/ - 0, /* U+002468: CIRCLED DIGIT NINE*/ - 0, /* U+002469: CIRCLED NUMBER TEN*/ - 0, /* U+00246a: CIRCLED NUMBER ELEVEN*/ - 0, /* U+00246b: CIRCLED NUMBER TWELVE*/ - 0, /* U+00246c: CIRCLED NUMBER THIRTEEN*/ - 0, /* U+00246d: CIRCLED NUMBER FOURTEEN*/ - 0, /* U+00246e: CIRCLED NUMBER FIFTEEN*/ - 0, /* U+00246f: CIRCLED NUMBER SIXTEEN*/ - 0, /* U+002470: CIRCLED NUMBER SEVENTEEN*/ - 0, /* U+002471: CIRCLED NUMBER EIGHTEEN*/ - 0, /* U+002472: CIRCLED NUMBER NINETEEN*/ - 0, /* U+002473: CIRCLED NUMBER TWENTY*/ - 0, /* U+002474: PARENTHESIZED DIGIT ONE*/ - 0, /* U+002475: PARENTHESIZED DIGIT TWO*/ - 0, /* U+002476: PARENTHESIZED DIGIT THREE*/ - 0, /* U+002477: PARENTHESIZED DIGIT FOUR*/ - 0, /* U+002478: PARENTHESIZED DIGIT FIVE*/ - 0, /* U+002479: PARENTHESIZED DIGIT SIX*/ - 0, /* U+00247a: PARENTHESIZED DIGIT SEVEN*/ - 0, /* U+00247b: PARENTHESIZED DIGIT EIGHT*/ - 0, /* U+00247c: PARENTHESIZED DIGIT NINE*/ - 0, /* U+00247d: PARENTHESIZED NUMBER TEN*/ - 0, /* U+00247e: PARENTHESIZED NUMBER ELEVEN*/ - 0, /* U+00247f: PARENTHESIZED NUMBER TWELVE*/ - 0, /* U+002480: PARENTHESIZED NUMBER THIRTEEN*/ - 0, /* U+002481: PARENTHESIZED NUMBER FOURTEEN*/ - 0, /* U+002482: PARENTHESIZED NUMBER FIFTEEN*/ - 0, /* U+002483: PARENTHESIZED NUMBER SIXTEEN*/ - 0, /* U+002484: PARENTHESIZED NUMBER SEVENTEEN*/ - 0, /* U+002485: PARENTHESIZED NUMBER EIGHTEEN*/ - 0, /* U+002486: PARENTHESIZED NUMBER NINETEEN*/ - 0, /* U+002487: PARENTHESIZED NUMBER TWENTY*/ - 0, /* U+002488: DIGIT ONE FULL STOP*/ - 0, /* U+002489: DIGIT TWO FULL STOP*/ - 0, /* U+00248a: DIGIT THREE FULL STOP*/ - 0, /* U+00248b: DIGIT FOUR FULL STOP*/ - 0, /* U+00248c: DIGIT FIVE FULL STOP*/ - 0, /* U+00248d: DIGIT SIX FULL STOP*/ - 0, /* U+00248e: DIGIT SEVEN FULL STOP*/ - 0, /* U+00248f: DIGIT EIGHT FULL STOP*/ - 0, /* U+002490: DIGIT NINE FULL STOP*/ - 0, /* U+002491: NUMBER TEN FULL STOP*/ - 0, /* U+002492: NUMBER ELEVEN FULL STOP*/ - 0, /* U+002493: NUMBER TWELVE FULL STOP*/ - 0, /* U+002494: NUMBER THIRTEEN FULL STOP*/ - 0, /* U+002495: NUMBER FOURTEEN FULL STOP*/ - 0, /* U+002496: NUMBER FIFTEEN FULL STOP*/ - 0, /* U+002497: NUMBER SIXTEEN FULL STOP*/ - 0, /* U+002498: NUMBER SEVENTEEN FULL STOP*/ - 0, /* U+002499: NUMBER EIGHTEEN FULL STOP*/ - 0, /* U+00249a: NUMBER NINETEEN FULL STOP*/ - 0, /* U+00249b: NUMBER TWENTY FULL STOP*/ - 0, /* U+00249c: PARENTHESIZED LATIN SMALL LETTER A*/ - 0, /* U+00249d: PARENTHESIZED LATIN SMALL LETTER B*/ - 0, /* U+00249e: PARENTHESIZED LATIN SMALL LETTER C*/ - 0, /* U+00249f: PARENTHESIZED LATIN SMALL LETTER D*/ - 0, /* U+0024a0: PARENTHESIZED LATIN SMALL LETTER E*/ - 0, /* U+0024a1: PARENTHESIZED LATIN SMALL LETTER F*/ - 0, /* U+0024a2: PARENTHESIZED LATIN SMALL LETTER G*/ - 0, /* U+0024a3: PARENTHESIZED LATIN SMALL LETTER H*/ - 0, /* U+0024a4: PARENTHESIZED LATIN SMALL LETTER I*/ - 0, /* U+0024a5: PARENTHESIZED LATIN SMALL LETTER J*/ - 0, /* U+0024a6: PARENTHESIZED LATIN SMALL LETTER K*/ - 0, /* U+0024a7: PARENTHESIZED LATIN SMALL LETTER L*/ - 0, /* U+0024a8: PARENTHESIZED LATIN SMALL LETTER M*/ - 0, /* U+0024a9: PARENTHESIZED LATIN SMALL LETTER N*/ - 0, /* U+0024aa: PARENTHESIZED LATIN SMALL LETTER O*/ - 0, /* U+0024ab: PARENTHESIZED LATIN SMALL LETTER P*/ - 0, /* U+0024ac: PARENTHESIZED LATIN SMALL LETTER Q*/ - 0, /* U+0024ad: PARENTHESIZED LATIN SMALL LETTER R*/ - 0, /* U+0024ae: PARENTHESIZED LATIN SMALL LETTER S*/ - 0, /* U+0024af: PARENTHESIZED LATIN SMALL LETTER T*/ - 0, /* U+0024b0: PARENTHESIZED LATIN SMALL LETTER U*/ - 0, /* U+0024b1: PARENTHESIZED LATIN SMALL LETTER V*/ - 0, /* U+0024b2: PARENTHESIZED LATIN SMALL LETTER W*/ - 0, /* U+0024b3: PARENTHESIZED LATIN SMALL LETTER X*/ - 0, /* U+0024b4: PARENTHESIZED LATIN SMALL LETTER Y*/ - 0, /* U+0024b5: PARENTHESIZED LATIN SMALL LETTER Z*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+0024b6: CIRCLED LATIN CAPITAL LETTER A*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+0024b7: CIRCLED LATIN CAPITAL LETTER B*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+0024b8: CIRCLED LATIN CAPITAL LETTER C*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+0024b9: CIRCLED LATIN CAPITAL LETTER D*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+0024ba: CIRCLED LATIN CAPITAL LETTER E*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+0024bb: CIRCLED LATIN CAPITAL LETTER F*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+0024bc: CIRCLED LATIN CAPITAL LETTER G*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+0024bd: CIRCLED LATIN CAPITAL LETTER H*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+0024be: CIRCLED LATIN CAPITAL LETTER I*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+0024bf: CIRCLED LATIN CAPITAL LETTER J*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+0024c0: CIRCLED LATIN CAPITAL LETTER K*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+0024c1: CIRCLED LATIN CAPITAL LETTER L*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+0024c2: CIRCLED LATIN CAPITAL LETTER M*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+0024c3: CIRCLED LATIN CAPITAL LETTER N*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+0024c4: CIRCLED LATIN CAPITAL LETTER O*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+0024c5: CIRCLED LATIN CAPITAL LETTER P*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+0024c6: CIRCLED LATIN CAPITAL LETTER Q*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+0024c7: CIRCLED LATIN CAPITAL LETTER R*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+0024c8: CIRCLED LATIN CAPITAL LETTER S*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+0024c9: CIRCLED LATIN CAPITAL LETTER T*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+0024ca: CIRCLED LATIN CAPITAL LETTER U*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+0024cb: CIRCLED LATIN CAPITAL LETTER V*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+0024cc: CIRCLED LATIN CAPITAL LETTER W*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+0024cd: CIRCLED LATIN CAPITAL LETTER X*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+0024ce: CIRCLED LATIN CAPITAL LETTER Y*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+0024cf: CIRCLED LATIN CAPITAL LETTER Z*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+0024d0: CIRCLED LATIN SMALL LETTER A*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+0024d1: CIRCLED LATIN SMALL LETTER B*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+0024d2: CIRCLED LATIN SMALL LETTER C*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+0024d3: CIRCLED LATIN SMALL LETTER D*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+0024d4: CIRCLED LATIN SMALL LETTER E*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+0024d5: CIRCLED LATIN SMALL LETTER F*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+0024d6: CIRCLED LATIN SMALL LETTER G*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+0024d7: CIRCLED LATIN SMALL LETTER H*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+0024d8: CIRCLED LATIN SMALL LETTER I*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+0024d9: CIRCLED LATIN SMALL LETTER J*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+0024da: CIRCLED LATIN SMALL LETTER K*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+0024db: CIRCLED LATIN SMALL LETTER L*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+0024dc: CIRCLED LATIN SMALL LETTER M*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+0024dd: CIRCLED LATIN SMALL LETTER N*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+0024de: CIRCLED LATIN SMALL LETTER O*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+0024df: CIRCLED LATIN SMALL LETTER P*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+0024e0: CIRCLED LATIN SMALL LETTER Q*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+0024e1: CIRCLED LATIN SMALL LETTER R*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+0024e2: CIRCLED LATIN SMALL LETTER S*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+0024e3: CIRCLED LATIN SMALL LETTER T*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+0024e4: CIRCLED LATIN SMALL LETTER U*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+0024e5: CIRCLED LATIN SMALL LETTER V*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+0024e6: CIRCLED LATIN SMALL LETTER W*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+0024e7: CIRCLED LATIN SMALL LETTER X*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+0024e8: CIRCLED LATIN SMALL LETTER Y*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+0024e9: CIRCLED LATIN SMALL LETTER Z*/ - 0, /* U+0024ea: CIRCLED DIGIT ZERO*/ - 0, /* U+0024eb: NEGATIVE CIRCLED NUMBER ELEVEN*/ - 0, /* U+0024ec: NEGATIVE CIRCLED NUMBER TWELVE*/ - 0, /* U+0024ed: NEGATIVE CIRCLED NUMBER THIRTEEN*/ - 0, /* U+0024ee: NEGATIVE CIRCLED NUMBER FOURTEEN*/ - 0, /* U+0024ef: NEGATIVE CIRCLED NUMBER FIFTEEN*/ - 0, /* U+0024f0: NEGATIVE CIRCLED NUMBER SIXTEEN*/ - 0, /* U+0024f1: NEGATIVE CIRCLED NUMBER SEVENTEEN*/ - 0, /* U+0024f2: NEGATIVE CIRCLED NUMBER EIGHTEEN*/ - 0, /* U+0024f3: NEGATIVE CIRCLED NUMBER NINETEEN*/ - 0, /* U+0024f4: NEGATIVE CIRCLED NUMBER TWENTY*/ - 0, /* U+0024f5: DOUBLE CIRCLED DIGIT ONE*/ - 0, /* U+0024f6: DOUBLE CIRCLED DIGIT TWO*/ - 0, /* U+0024f7: DOUBLE CIRCLED DIGIT THREE*/ - 0, /* U+0024f8: DOUBLE CIRCLED DIGIT FOUR*/ - 0, /* U+0024f9: DOUBLE CIRCLED DIGIT FIVE*/ - 0, /* U+0024fa: DOUBLE CIRCLED DIGIT SIX*/ - 0, /* U+0024fb: DOUBLE CIRCLED DIGIT SEVEN*/ - 0, /* U+0024fc: DOUBLE CIRCLED DIGIT EIGHT*/ - 0, /* U+0024fd: DOUBLE CIRCLED DIGIT NINE*/ - 0, /* U+0024fe: DOUBLE CIRCLED NUMBER TEN*/ - 0, /* U+0024ff: NEGATIVE CIRCLED DIGIT ZERO*/ - 0, /* U+002500: BOX DRAWINGS LIGHT HORIZONTAL*/ - 0, /* U+002501: BOX DRAWINGS HEAVY HORIZONTAL*/ - 0, /* U+002502: BOX DRAWINGS LIGHT VERTICAL*/ - 0, /* U+002503: BOX DRAWINGS HEAVY VERTICAL*/ - 0, /* U+002504: BOX DRAWINGS LIGHT TRIPLE DASH HORIZONTAL*/ - 0, /* U+002505: BOX DRAWINGS HEAVY TRIPLE DASH HORIZONTAL*/ - 0, /* U+002506: BOX DRAWINGS LIGHT TRIPLE DASH VERTICAL*/ - 0, /* U+002507: BOX DRAWINGS HEAVY TRIPLE DASH VERTICAL*/ - 0, /* U+002508: BOX DRAWINGS LIGHT QUADRUPLE DASH HORIZONTAL*/ - 0, /* U+002509: BOX DRAWINGS HEAVY QUADRUPLE DASH HORIZONTAL*/ - 0, /* U+00250a: BOX DRAWINGS LIGHT QUADRUPLE DASH VERTICAL*/ - 0, /* U+00250b: BOX DRAWINGS HEAVY QUADRUPLE DASH VERTICAL*/ - 0, /* U+00250c: BOX DRAWINGS LIGHT DOWN AND RIGHT*/ - 0, /* U+00250d: BOX DRAWINGS DOWN LIGHT AND RIGHT HEAVY*/ - 0, /* U+00250e: BOX DRAWINGS DOWN HEAVY AND RIGHT LIGHT*/ - 0, /* U+00250f: BOX DRAWINGS HEAVY DOWN AND RIGHT*/ - 0, /* U+002510: BOX DRAWINGS LIGHT DOWN AND LEFT*/ - 0, /* U+002511: BOX DRAWINGS DOWN LIGHT AND LEFT HEAVY*/ - 0, /* U+002512: BOX DRAWINGS DOWN HEAVY AND LEFT LIGHT*/ - 0, /* U+002513: BOX DRAWINGS HEAVY DOWN AND LEFT*/ - 0, /* U+002514: BOX DRAWINGS LIGHT UP AND RIGHT*/ - 0, /* U+002515: BOX DRAWINGS UP LIGHT AND RIGHT HEAVY*/ - 0, /* U+002516: BOX DRAWINGS UP HEAVY AND RIGHT LIGHT*/ - 0, /* U+002517: BOX DRAWINGS HEAVY UP AND RIGHT*/ - 0, /* U+002518: BOX DRAWINGS LIGHT UP AND LEFT*/ - 0, /* U+002519: BOX DRAWINGS UP LIGHT AND LEFT HEAVY*/ - 0, /* U+00251a: BOX DRAWINGS UP HEAVY AND LEFT LIGHT*/ - 0, /* U+00251b: BOX DRAWINGS HEAVY UP AND LEFT*/ - 0, /* U+00251c: BOX DRAWINGS LIGHT VERTICAL AND RIGHT*/ - 0, /* U+00251d: BOX DRAWINGS VERTICAL LIGHT AND RIGHT HEAVY*/ - 0, /* U+00251e: BOX DRAWINGS UP HEAVY AND RIGHT DOWN LIGHT*/ - 0, /* U+00251f: BOX DRAWINGS DOWN HEAVY AND RIGHT UP LIGHT*/ - 0, /* U+002520: BOX DRAWINGS VERTICAL HEAVY AND RIGHT LIGHT*/ - 0, /* U+002521: BOX DRAWINGS DOWN LIGHT AND RIGHT UP HEAVY*/ - 0, /* U+002522: BOX DRAWINGS UP LIGHT AND RIGHT DOWN HEAVY*/ - 0, /* U+002523: BOX DRAWINGS HEAVY VERTICAL AND RIGHT*/ - 0, /* U+002524: BOX DRAWINGS LIGHT VERTICAL AND LEFT*/ - 0, /* U+002525: BOX DRAWINGS VERTICAL LIGHT AND LEFT HEAVY*/ - 0, /* U+002526: BOX DRAWINGS UP HEAVY AND LEFT DOWN LIGHT*/ - 0, /* U+002527: BOX DRAWINGS DOWN HEAVY AND LEFT UP LIGHT*/ - 0, /* U+002528: BOX DRAWINGS VERTICAL HEAVY AND LEFT LIGHT*/ - 0, /* U+002529: BOX DRAWINGS DOWN LIGHT AND LEFT UP HEAVY*/ - 0, /* U+00252a: BOX DRAWINGS UP LIGHT AND LEFT DOWN HEAVY*/ - 0, /* U+00252b: BOX DRAWINGS HEAVY VERTICAL AND LEFT*/ - 0, /* U+00252c: BOX DRAWINGS LIGHT DOWN AND HORIZONTAL*/ - 0, /* U+00252d: BOX DRAWINGS LEFT HEAVY AND RIGHT DOWN LIGHT*/ - 0, /* U+00252e: BOX DRAWINGS RIGHT HEAVY AND LEFT DOWN LIGHT*/ - 0, /* U+00252f: BOX DRAWINGS DOWN LIGHT AND HORIZONTAL HEAVY*/ - 0, /* U+002530: BOX DRAWINGS DOWN HEAVY AND HORIZONTAL LIGHT*/ - 0, /* U+002531: BOX DRAWINGS RIGHT LIGHT AND LEFT DOWN HEAVY*/ - 0, /* U+002532: BOX DRAWINGS LEFT LIGHT AND RIGHT DOWN HEAVY*/ - 0, /* U+002533: BOX DRAWINGS HEAVY DOWN AND HORIZONTAL*/ - 0, /* U+002534: BOX DRAWINGS LIGHT UP AND HORIZONTAL*/ - 0, /* U+002535: BOX DRAWINGS LEFT HEAVY AND RIGHT UP LIGHT*/ - 0, /* U+002536: BOX DRAWINGS RIGHT HEAVY AND LEFT UP LIGHT*/ - 0, /* U+002537: BOX DRAWINGS UP LIGHT AND HORIZONTAL HEAVY*/ - 0, /* U+002538: BOX DRAWINGS UP HEAVY AND HORIZONTAL LIGHT*/ - 0, /* U+002539: BOX DRAWINGS RIGHT LIGHT AND LEFT UP HEAVY*/ - 0, /* U+00253a: BOX DRAWINGS LEFT LIGHT AND RIGHT UP HEAVY*/ - 0, /* U+00253b: BOX DRAWINGS HEAVY UP AND HORIZONTAL*/ - 0, /* U+00253c: BOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL*/ - 0, /* U+00253d: BOX DRAWINGS LEFT HEAVY AND RIGHT VERTICAL LIGHT*/ - 0, /* U+00253e: BOX DRAWINGS RIGHT HEAVY AND LEFT VERTICAL LIGHT*/ - 0, /* U+00253f: BOX DRAWINGS VERTICAL LIGHT AND HORIZONTAL HEAVY*/ - 0, /* U+002540: BOX DRAWINGS UP HEAVY AND DOWN HORIZONTAL LIGHT*/ - 0, /* U+002541: BOX DRAWINGS DOWN HEAVY AND UP HORIZONTAL LIGHT*/ - 0, /* U+002542: BOX DRAWINGS VERTICAL HEAVY AND HORIZONTAL LIGHT*/ - 0, /* U+002543: BOX DRAWINGS LEFT UP HEAVY AND RIGHT DOWN LIGHT*/ - 0, /* U+002544: BOX DRAWINGS RIGHT UP HEAVY AND LEFT DOWN LIGHT*/ - 0, /* U+002545: BOX DRAWINGS LEFT DOWN HEAVY AND RIGHT UP LIGHT*/ - 0, /* U+002546: BOX DRAWINGS RIGHT DOWN HEAVY AND LEFT UP LIGHT*/ - 0, /* U+002547: BOX DRAWINGS DOWN LIGHT AND UP HORIZONTAL HEAVY*/ - 0, /* U+002548: BOX DRAWINGS UP LIGHT AND DOWN HORIZONTAL HEAVY*/ - 0, /* U+002549: BOX DRAWINGS RIGHT LIGHT AND LEFT VERTICAL HEAVY*/ - 0, /* U+00254a: BOX DRAWINGS LEFT LIGHT AND RIGHT VERTICAL HEAVY*/ - 0, /* U+00254b: BOX DRAWINGS HEAVY VERTICAL AND HORIZONTAL*/ - 0, /* U+00254c: BOX DRAWINGS LIGHT DOUBLE DASH HORIZONTAL*/ - 0, /* U+00254d: BOX DRAWINGS HEAVY DOUBLE DASH HORIZONTAL*/ - 0, /* U+00254e: BOX DRAWINGS LIGHT DOUBLE DASH VERTICAL*/ - 0, /* U+00254f: BOX DRAWINGS HEAVY DOUBLE DASH VERTICAL*/ - 0, /* U+002550: BOX DRAWINGS DOUBLE HORIZONTAL*/ - 0, /* U+002551: BOX DRAWINGS DOUBLE VERTICAL*/ - 0, /* U+002552: BOX DRAWINGS DOWN SINGLE AND RIGHT DOUBLE*/ - 0, /* U+002553: BOX DRAWINGS DOWN DOUBLE AND RIGHT SINGLE*/ - 0, /* U+002554: BOX DRAWINGS DOUBLE DOWN AND RIGHT*/ - 0, /* U+002555: BOX DRAWINGS DOWN SINGLE AND LEFT DOUBLE*/ - 0, /* U+002556: BOX DRAWINGS DOWN DOUBLE AND LEFT SINGLE*/ - 0, /* U+002557: BOX DRAWINGS DOUBLE DOWN AND LEFT*/ - 0, /* U+002558: BOX DRAWINGS UP SINGLE AND RIGHT DOUBLE*/ - 0, /* U+002559: BOX DRAWINGS UP DOUBLE AND RIGHT SINGLE*/ - 0, /* U+00255a: BOX DRAWINGS DOUBLE UP AND RIGHT*/ - 0, /* U+00255b: BOX DRAWINGS UP SINGLE AND LEFT DOUBLE*/ - 0, /* U+00255c: BOX DRAWINGS UP DOUBLE AND LEFT SINGLE*/ - 0, /* U+00255d: BOX DRAWINGS DOUBLE UP AND LEFT*/ - 0, /* U+00255e: BOX DRAWINGS VERTICAL SINGLE AND RIGHT DOUBLE*/ - 0, /* U+00255f: BOX DRAWINGS VERTICAL DOUBLE AND RIGHT SINGLE*/ - 0, /* U+002560: BOX DRAWINGS DOUBLE VERTICAL AND RIGHT*/ - 0, /* U+002561: BOX DRAWINGS VERTICAL SINGLE AND LEFT DOUBLE*/ - 0, /* U+002562: BOX DRAWINGS VERTICAL DOUBLE AND LEFT SINGLE*/ - 0, /* U+002563: BOX DRAWINGS DOUBLE VERTICAL AND LEFT*/ - 0, /* U+002564: BOX DRAWINGS DOWN SINGLE AND HORIZONTAL DOUBLE*/ - 0, /* U+002565: BOX DRAWINGS DOWN DOUBLE AND HORIZONTAL SINGLE*/ - 0, /* U+002566: BOX DRAWINGS DOUBLE DOWN AND HORIZONTAL*/ - 0, /* U+002567: BOX DRAWINGS UP SINGLE AND HORIZONTAL DOUBLE*/ - 0, /* U+002568: BOX DRAWINGS UP DOUBLE AND HORIZONTAL SINGLE*/ - 0, /* U+002569: BOX DRAWINGS DOUBLE UP AND HORIZONTAL*/ - 0, /* U+00256a: BOX DRAWINGS VERTICAL SINGLE AND HORIZONTAL DOUBLE*/ - 0, /* U+00256b: BOX DRAWINGS VERTICAL DOUBLE AND HORIZONTAL SINGLE*/ - 0, /* U+00256c: BOX DRAWINGS DOUBLE VERTICAL AND HORIZONTAL*/ - 0, /* U+00256d: BOX DRAWINGS LIGHT ARC DOWN AND RIGHT*/ - 0, /* U+00256e: BOX DRAWINGS LIGHT ARC DOWN AND LEFT*/ - 0, /* U+00256f: BOX DRAWINGS LIGHT ARC UP AND LEFT*/ - 0, /* U+002570: BOX DRAWINGS LIGHT ARC UP AND RIGHT*/ - 0, /* U+002571: BOX DRAWINGS LIGHT DIAGONAL UPPER RIGHT TO LOWER LEFT*/ - 0, /* U+002572: BOX DRAWINGS LIGHT DIAGONAL UPPER LEFT TO LOWER RIGHT*/ - 0, /* U+002573: BOX DRAWINGS LIGHT DIAGONAL CROSS*/ - 0, /* U+002574: BOX DRAWINGS LIGHT LEFT*/ - 0, /* U+002575: BOX DRAWINGS LIGHT UP*/ - 0, /* U+002576: BOX DRAWINGS LIGHT RIGHT*/ - 0, /* U+002577: BOX DRAWINGS LIGHT DOWN*/ - 0, /* U+002578: BOX DRAWINGS HEAVY LEFT*/ - 0, /* U+002579: BOX DRAWINGS HEAVY UP*/ - 0, /* U+00257a: BOX DRAWINGS HEAVY RIGHT*/ - 0, /* U+00257b: BOX DRAWINGS HEAVY DOWN*/ - 0, /* U+00257c: BOX DRAWINGS LIGHT LEFT AND HEAVY RIGHT*/ - 0, /* U+00257d: BOX DRAWINGS LIGHT UP AND HEAVY DOWN*/ - 0, /* U+00257e: BOX DRAWINGS HEAVY LEFT AND LIGHT RIGHT*/ - 0, /* U+00257f: BOX DRAWINGS HEAVY UP AND LIGHT DOWN*/ - 0, /* U+002580: UPPER HALF BLOCK*/ - 0, /* U+002581: LOWER ONE EIGHTH BLOCK*/ - 0, /* U+002582: LOWER ONE QUARTER BLOCK*/ - 0, /* U+002583: LOWER THREE EIGHTHS BLOCK*/ - 0, /* U+002584: LOWER HALF BLOCK*/ - 0, /* U+002585: LOWER FIVE EIGHTHS BLOCK*/ - 0, /* U+002586: LOWER THREE QUARTERS BLOCK*/ - 0, /* U+002587: LOWER SEVEN EIGHTHS BLOCK*/ - 0, /* U+002588: FULL BLOCK*/ - 0, /* U+002589: LEFT SEVEN EIGHTHS BLOCK*/ - 0, /* U+00258a: LEFT THREE QUARTERS BLOCK*/ - 0, /* U+00258b: LEFT FIVE EIGHTHS BLOCK*/ - 0, /* U+00258c: LEFT HALF BLOCK*/ - 0, /* U+00258d: LEFT THREE EIGHTHS BLOCK*/ - 0, /* U+00258e: LEFT ONE QUARTER BLOCK*/ - 0, /* U+00258f: LEFT ONE EIGHTH BLOCK*/ - 0, /* U+002590: RIGHT HALF BLOCK*/ - 0, /* U+002591: LIGHT SHADE*/ - 0, /* U+002592: MEDIUM SHADE*/ - 0, /* U+002593: DARK SHADE*/ - 0, /* U+002594: UPPER ONE EIGHTH BLOCK*/ - 0, /* U+002595: RIGHT ONE EIGHTH BLOCK*/ - 0, /* U+002596: QUADRANT LOWER LEFT*/ - 0, /* U+002597: QUADRANT LOWER RIGHT*/ - 0, /* U+002598: QUADRANT UPPER LEFT*/ - 0, /* U+002599: QUADRANT UPPER LEFT AND LOWER LEFT AND LOWER RIGHT*/ - 0, /* U+00259a: QUADRANT UPPER LEFT AND LOWER RIGHT*/ - 0, /* U+00259b: QUADRANT UPPER LEFT AND UPPER RIGHT AND LOWER LEFT*/ - 0, /* U+00259c: QUADRANT UPPER LEFT AND UPPER RIGHT AND LOWER RIGHT*/ - 0, /* U+00259d: QUADRANT UPPER RIGHT*/ - 0, /* U+00259e: QUADRANT UPPER RIGHT AND LOWER LEFT*/ - 0, /* U+00259f: QUADRANT UPPER RIGHT AND LOWER LEFT AND LOWER RIGHT*/ - 0, /* U+0025a0: BLACK SQUARE*/ - 0, /* U+0025a1: WHITE SQUARE*/ - 0, /* U+0025a2: WHITE SQUARE WITH ROUNDED CORNERS*/ - 0, /* U+0025a3: WHITE SQUARE CONTAINING BLACK SMALL SQUARE*/ - 0, /* U+0025a4: SQUARE WITH HORIZONTAL FILL*/ - 0, /* U+0025a5: SQUARE WITH VERTICAL FILL*/ - 0, /* U+0025a6: SQUARE WITH ORTHOGONAL CROSSHATCH FILL*/ - 0, /* U+0025a7: SQUARE WITH UPPER LEFT TO LOWER RIGHT FILL*/ - 0, /* U+0025a8: SQUARE WITH UPPER RIGHT TO LOWER LEFT FILL*/ - 0, /* U+0025a9: SQUARE WITH DIAGONAL CROSSHATCH FILL*/ - 0, /* U+0025aa: BLACK SMALL SQUARE*/ - 0, /* U+0025ab: WHITE SMALL SQUARE*/ - 0, /* U+0025ac: BLACK RECTANGLE*/ - 0, /* U+0025ad: WHITE RECTANGLE*/ - 0, /* U+0025ae: BLACK VERTICAL RECTANGLE*/ - 0, /* U+0025af: WHITE VERTICAL RECTANGLE*/ - 0, /* U+0025b0: BLACK PARALLELOGRAM*/ - 0, /* U+0025b1: WHITE PARALLELOGRAM*/ - 0, /* U+0025b2: BLACK UP-POINTING TRIANGLE*/ - 0, /* U+0025b3: WHITE UP-POINTING TRIANGLE*/ - 0, /* U+0025b4: BLACK UP-POINTING SMALL TRIANGLE*/ - 0, /* U+0025b5: WHITE UP-POINTING SMALL TRIANGLE*/ - 0, /* U+0025b6: BLACK RIGHT-POINTING TRIANGLE*/ - 0, /* U+0025b7: WHITE RIGHT-POINTING TRIANGLE*/ - 0, /* U+0025b8: BLACK RIGHT-POINTING SMALL TRIANGLE*/ - 0, /* U+0025b9: WHITE RIGHT-POINTING SMALL TRIANGLE*/ - 0, /* U+0025ba: BLACK RIGHT-POINTING POINTER*/ - 0, /* U+0025bb: WHITE RIGHT-POINTING POINTER*/ - 0, /* U+0025bc: BLACK DOWN-POINTING TRIANGLE*/ - 0, /* U+0025bd: WHITE DOWN-POINTING TRIANGLE*/ - 0, /* U+0025be: BLACK DOWN-POINTING SMALL TRIANGLE*/ - 0, /* U+0025bf: WHITE DOWN-POINTING SMALL TRIANGLE*/ - 0, /* U+0025c0: BLACK LEFT-POINTING TRIANGLE*/ - 0, /* U+0025c1: WHITE LEFT-POINTING TRIANGLE*/ - 0, /* U+0025c2: BLACK LEFT-POINTING SMALL TRIANGLE*/ - 0, /* U+0025c3: WHITE LEFT-POINTING SMALL TRIANGLE*/ - 0, /* U+0025c4: BLACK LEFT-POINTING POINTER*/ - 0, /* U+0025c5: WHITE LEFT-POINTING POINTER*/ - 0, /* U+0025c6: BLACK DIAMOND*/ - 0, /* U+0025c7: WHITE DIAMOND*/ - 0, /* U+0025c8: WHITE DIAMOND CONTAINING BLACK SMALL DIAMOND*/ - 0, /* U+0025c9: FISHEYE*/ - 0, /* U+0025ca: LOZENGE*/ - 0, /* U+0025cb: WHITE CIRCLE*/ - 0, /* U+0025cc: DOTTED CIRCLE*/ - 0, /* U+0025cd: CIRCLE WITH VERTICAL FILL*/ - 0, /* U+0025ce: BULLSEYE*/ - 0, /* U+0025cf: BLACK CIRCLE*/ - 0, /* U+0025d0: CIRCLE WITH LEFT HALF BLACK*/ - 0, /* U+0025d1: CIRCLE WITH RIGHT HALF BLACK*/ - 0, /* U+0025d2: CIRCLE WITH LOWER HALF BLACK*/ - 0, /* U+0025d3: CIRCLE WITH UPPER HALF BLACK*/ - 0, /* U+0025d4: CIRCLE WITH UPPER RIGHT QUADRANT BLACK*/ - 0, /* U+0025d5: CIRCLE WITH ALL BUT UPPER LEFT QUADRANT BLACK*/ - 0, /* U+0025d6: LEFT HALF BLACK CIRCLE*/ - 0, /* U+0025d7: RIGHT HALF BLACK CIRCLE*/ - 0, /* U+0025d8: INVERSE BULLET*/ - 0, /* U+0025d9: INVERSE WHITE CIRCLE*/ - 0, /* U+0025da: UPPER HALF INVERSE WHITE CIRCLE*/ - 0, /* U+0025db: LOWER HALF INVERSE WHITE CIRCLE*/ - 0, /* U+0025dc: UPPER LEFT QUADRANT CIRCULAR ARC*/ - 0, /* U+0025dd: UPPER RIGHT QUADRANT CIRCULAR ARC*/ - 0, /* U+0025de: LOWER RIGHT QUADRANT CIRCULAR ARC*/ - 0, /* U+0025df: LOWER LEFT QUADRANT CIRCULAR ARC*/ - 0, /* U+0025e0: UPPER HALF CIRCLE*/ - 0, /* U+0025e1: LOWER HALF CIRCLE*/ - 0, /* U+0025e2: BLACK LOWER RIGHT TRIANGLE*/ - 0, /* U+0025e3: BLACK LOWER LEFT TRIANGLE*/ - 0, /* U+0025e4: BLACK UPPER LEFT TRIANGLE*/ - 0, /* U+0025e5: BLACK UPPER RIGHT TRIANGLE*/ - 0, /* U+0025e6: WHITE BULLET*/ - 0, /* U+0025e7: SQUARE WITH LEFT HALF BLACK*/ - 0, /* U+0025e8: SQUARE WITH RIGHT HALF BLACK*/ - 0, /* U+0025e9: SQUARE WITH UPPER LEFT DIAGONAL HALF BLACK*/ - 0, /* U+0025ea: SQUARE WITH LOWER RIGHT DIAGONAL HALF BLACK*/ - 0, /* U+0025eb: WHITE SQUARE WITH VERTICAL BISECTING LINE*/ - 0, /* U+0025ec: WHITE UP-POINTING TRIANGLE WITH DOT*/ - 0, /* U+0025ed: UP-POINTING TRIANGLE WITH LEFT HALF BLACK*/ - 0, /* U+0025ee: UP-POINTING TRIANGLE WITH RIGHT HALF BLACK*/ - 0, /* U+0025ef: LARGE CIRCLE*/ - 0, /* U+0025f0: WHITE SQUARE WITH UPPER LEFT QUADRANT*/ - 0, /* U+0025f1: WHITE SQUARE WITH LOWER LEFT QUADRANT*/ - 0, /* U+0025f2: WHITE SQUARE WITH LOWER RIGHT QUADRANT*/ - 0, /* U+0025f3: WHITE SQUARE WITH UPPER RIGHT QUADRANT*/ - 0, /* U+0025f4: WHITE CIRCLE WITH UPPER LEFT QUADRANT*/ - 0, /* U+0025f5: WHITE CIRCLE WITH LOWER LEFT QUADRANT*/ - 0, /* U+0025f6: WHITE CIRCLE WITH LOWER RIGHT QUADRANT*/ - 0, /* U+0025f7: WHITE CIRCLE WITH UPPER RIGHT QUADRANT*/ - 0, /* U+0025f8: UPPER LEFT TRIANGLE*/ - 0, /* U+0025f9: UPPER RIGHT TRIANGLE*/ - 0, /* U+0025fa: LOWER LEFT TRIANGLE*/ - 0, /* U+0025fb: WHITE MEDIUM SQUARE*/ - 0, /* U+0025fc: BLACK MEDIUM SQUARE*/ - 0, /* U+0025fd: WHITE MEDIUM SMALL SQUARE*/ - 0, /* U+0025fe: BLACK MEDIUM SMALL SQUARE*/ - 0, /* U+0025ff: LOWER RIGHT TRIANGLE*/ - 0, /* U+002600: BLACK SUN WITH RAYS*/ - 0, /* U+002601: CLOUD*/ - 0, /* U+002602: UMBRELLA*/ - 0, /* U+002603: SNOWMAN*/ - 0, /* U+002604: COMET*/ - 0, /* U+002605: BLACK STAR*/ - 0, /* U+002606: WHITE STAR*/ - 0, /* U+002607: LIGHTNING*/ - 0, /* U+002608: THUNDERSTORM*/ - 0, /* U+002609: SUN*/ - 0, /* U+00260a: ASCENDING NODE*/ - 0, /* U+00260b: DESCENDING NODE*/ - 0, /* U+00260c: CONJUNCTION*/ - 0, /* U+00260d: OPPOSITION*/ - 0, /* U+00260e: BLACK TELEPHONE*/ - 0, /* U+00260f: WHITE TELEPHONE*/ - 0, /* U+002610: BALLOT BOX*/ - 0, /* U+002611: BALLOT BOX WITH CHECK*/ - 0, /* U+002612: BALLOT BOX WITH X*/ - 0, /* U+002613: SALTIRE*/ - 0, /* U+002614: UMBRELLA WITH RAIN DROPS*/ - 0, /* U+002615: HOT BEVERAGE*/ - 0, /* U+002616: WHITE SHOGI PIECE*/ - 0, /* U+002617: BLACK SHOGI PIECE*/ - 0, /* U+002618: SHAMROCK*/ - 0, /* U+002619: REVERSED ROTATED FLORAL HEART BULLET*/ - 0, /* U+00261a: BLACK LEFT POINTING INDEX*/ - 0, /* U+00261b: BLACK RIGHT POINTING INDEX*/ - 0, /* U+00261c: WHITE LEFT POINTING INDEX*/ - 0, /* U+00261d: WHITE UP POINTING INDEX*/ - 0, /* U+00261e: WHITE RIGHT POINTING INDEX*/ - 0, /* U+00261f: WHITE DOWN POINTING INDEX*/ - 0, /* U+002620: SKULL AND CROSSBONES*/ - 0, /* U+002621: CAUTION SIGN*/ - 0, /* U+002622: RADIOACTIVE SIGN*/ - 0, /* U+002623: BIOHAZARD SIGN*/ - 0, /* U+002624: CADUCEUS*/ - 0, /* U+002625: ANKH*/ - 0, /* U+002626: ORTHODOX CROSS*/ - 0, /* U+002627: CHI RHO*/ - 0, /* U+002628: CROSS OF LORRAINE*/ - 0, /* U+002629: CROSS OF JERUSALEM*/ - 0, /* U+00262a: STAR AND CRESCENT*/ - 0, /* U+00262b: FARSI SYMBOL*/ - 0, /* U+00262c: ADI SHAKTI*/ - 0, /* U+00262d: HAMMER AND SICKLE*/ - 0, /* U+00262e: PEACE SYMBOL*/ - 0, /* U+00262f: YIN YANG*/ - 0, /* U+002630: TRIGRAM FOR HEAVEN*/ - 0, /* U+002631: TRIGRAM FOR LAKE*/ - 0, /* U+002632: TRIGRAM FOR FIRE*/ - 0, /* U+002633: TRIGRAM FOR THUNDER*/ - 0, /* U+002634: TRIGRAM FOR WIND*/ - 0, /* U+002635: TRIGRAM FOR WATER*/ - 0, /* U+002636: TRIGRAM FOR MOUNTAIN*/ - 0, /* U+002637: TRIGRAM FOR EARTH*/ - 0, /* U+002638: WHEEL OF DHARMA*/ - 0, /* U+002639: WHITE FROWNING FACE*/ - 0, /* U+00263a: WHITE SMILING FACE*/ - 0, /* U+00263b: BLACK SMILING FACE*/ - 0, /* U+00263c: WHITE SUN WITH RAYS*/ - 0, /* U+00263d: FIRST QUARTER MOON*/ - 0, /* U+00263e: LAST QUARTER MOON*/ - 0, /* U+00263f: MERCURY*/ - 0, /* U+002640: FEMALE SIGN*/ - 0, /* U+002641: EARTH*/ - 0, /* U+002642: MALE SIGN*/ - 0, /* U+002643: JUPITER*/ - 0, /* U+002644: SATURN*/ - 0, /* U+002645: URANUS*/ - 0, /* U+002646: NEPTUNE*/ - 0, /* U+002647: PLUTO*/ - 0, /* U+002648: ARIES*/ - 0, /* U+002649: TAURUS*/ - 0, /* U+00264a: GEMINI*/ - 0, /* U+00264b: CANCER*/ - 0, /* U+00264c: LEO*/ - 0, /* U+00264d: VIRGO*/ - 0, /* U+00264e: LIBRA*/ - 0, /* U+00264f: SCORPIUS*/ - 0, /* U+002650: SAGITTARIUS*/ - 0, /* U+002651: CAPRICORN*/ - 0, /* U+002652: AQUARIUS*/ - 0, /* U+002653: PISCES*/ - 0, /* U+002654: WHITE CHESS KING*/ - 0, /* U+002655: WHITE CHESS QUEEN*/ - 0, /* U+002656: WHITE CHESS ROOK*/ - 0, /* U+002657: WHITE CHESS BISHOP*/ - 0, /* U+002658: WHITE CHESS KNIGHT*/ - 0, /* U+002659: WHITE CHESS PAWN*/ - 0, /* U+00265a: BLACK CHESS KING*/ - 0, /* U+00265b: BLACK CHESS QUEEN*/ - 0, /* U+00265c: BLACK CHESS ROOK*/ - 0, /* U+00265d: BLACK CHESS BISHOP*/ - 0, /* U+00265e: BLACK CHESS KNIGHT*/ - 0, /* U+00265f: BLACK CHESS PAWN*/ - 0, /* U+002660: BLACK SPADE SUIT*/ - 0, /* U+002661: WHITE HEART SUIT*/ - 0, /* U+002662: WHITE DIAMOND SUIT*/ - 0, /* U+002663: BLACK CLUB SUIT*/ - 0, /* U+002664: WHITE SPADE SUIT*/ - 0, /* U+002665: BLACK HEART SUIT*/ - 0, /* U+002666: BLACK DIAMOND SUIT*/ - 0, /* U+002667: WHITE CLUB SUIT*/ - 0, /* U+002668: HOT SPRINGS*/ - 0, /* U+002669: QUARTER NOTE*/ - 0, /* U+00266a: EIGHTH NOTE*/ - 0, /* U+00266b: BEAMED EIGHTH NOTES*/ - 0, /* U+00266c: BEAMED SIXTEENTH NOTES*/ - 0, /* U+00266d: MUSIC FLAT SIGN*/ - 0, /* U+00266e: MUSIC NATURAL SIGN*/ - 0, /* U+00266f: MUSIC SHARP SIGN*/ - 0, /* U+002670: WEST SYRIAC CROSS*/ - 0, /* U+002671: EAST SYRIAC CROSS*/ - 0, /* U+002672: UNIVERSAL RECYCLING SYMBOL*/ - 0, /* U+002673: RECYCLING SYMBOL FOR TYPE-1 PLASTICS*/ - 0, /* U+002674: RECYCLING SYMBOL FOR TYPE-2 PLASTICS*/ - 0, /* U+002675: RECYCLING SYMBOL FOR TYPE-3 PLASTICS*/ - 0, /* U+002676: RECYCLING SYMBOL FOR TYPE-4 PLASTICS*/ - 0, /* U+002677: RECYCLING SYMBOL FOR TYPE-5 PLASTICS*/ - 0, /* U+002678: RECYCLING SYMBOL FOR TYPE-6 PLASTICS*/ - 0, /* U+002679: RECYCLING SYMBOL FOR TYPE-7 PLASTICS*/ - 0, /* U+00267a: RECYCLING SYMBOL FOR GENERIC MATERIALS*/ - 0, /* U+00267b: BLACK UNIVERSAL RECYCLING SYMBOL*/ - 0, /* U+00267c: RECYCLED PAPER SYMBOL*/ - 0, /* U+00267d: PARTIALLY-RECYCLED PAPER SYMBOL*/ - 0, /* U+00267e: PERMANENT PAPER SIGN*/ - 0, /* U+00267f: WHEELCHAIR SYMBOL*/ - 0, /* U+002680: DIE FACE-1*/ - 0, /* U+002681: DIE FACE-2*/ - 0, /* U+002682: DIE FACE-3*/ - 0, /* U+002683: DIE FACE-4*/ - 0, /* U+002684: DIE FACE-5*/ - 0, /* U+002685: DIE FACE-6*/ - 0, /* U+002686: WHITE CIRCLE WITH DOT RIGHT*/ - 0, /* U+002687: WHITE CIRCLE WITH TWO DOTS*/ - 0, /* U+002688: BLACK CIRCLE WITH WHITE DOT RIGHT*/ - 0, /* U+002689: BLACK CIRCLE WITH TWO WHITE DOTS*/ - 0, /* U+00268a: MONOGRAM FOR YANG*/ - 0, /* U+00268b: MONOGRAM FOR YIN*/ - 0, /* U+00268c: DIGRAM FOR GREATER YANG*/ - 0, /* U+00268d: DIGRAM FOR LESSER YIN*/ - 0, /* U+00268e: DIGRAM FOR LESSER YANG*/ - 0, /* U+00268f: DIGRAM FOR GREATER YIN*/ - 0, /* U+002690: WHITE FLAG*/ - 0, /* U+002691: BLACK FLAG*/ - 0, /* U+002692: HAMMER AND PICK*/ - 0, /* U+002693: ANCHOR*/ - 0, /* U+002694: CROSSED SWORDS*/ - 0, /* U+002695: STAFF OF AESCULAPIUS*/ - 0, /* U+002696: SCALES*/ - 0, /* U+002697: ALEMBIC*/ - 0, /* U+002698: FLOWER*/ - 0, /* U+002699: GEAR*/ - 0, /* U+00269a: STAFF OF HERMES*/ - 0, /* U+00269b: ATOM SYMBOL*/ - 0, /* U+00269c: FLEUR-DE-LIS*/ - 0, /* U+00269d: */ - 0, /* U+00269e: */ - 0, /* U+00269f: */ - 0, /* U+0026a0: WARNING SIGN*/ - 0, /* U+0026a1: HIGH VOLTAGE SIGN*/ - 0, /* U+0026a2: DOUBLED FEMALE SIGN*/ - 0, /* U+0026a3: DOUBLED MALE SIGN*/ - 0, /* U+0026a4: INTERLOCKED FEMALE AND MALE SIGN*/ - 0, /* U+0026a5: MALE AND FEMALE SIGN*/ - 0, /* U+0026a6: MALE WITH STROKE SIGN*/ - 0, /* U+0026a7: MALE WITH STROKE AND MALE AND FEMALE SIGN*/ - 0, /* U+0026a8: VERTICAL MALE WITH STROKE SIGN*/ - 0, /* U+0026a9: HORIZONTAL MALE WITH STROKE SIGN*/ - 0, /* U+0026aa: MEDIUM WHITE CIRCLE*/ - 0, /* U+0026ab: MEDIUM BLACK CIRCLE*/ - 0, /* U+0026ac: MEDIUM SMALL WHITE CIRCLE*/ - 0, /* U+0026ad: MARRIAGE SYMBOL*/ - 0, /* U+0026ae: DIVORCE SYMBOL*/ - 0, /* U+0026af: UNMARRIED PARTNERSHIP SYMBOL*/ - 0, /* U+0026b0: COFFIN*/ - 0, /* U+0026b1: FUNERAL URN*/ - 0, /* U+0026b2: */ - 0, /* U+0026b3: */ - 0, /* U+0026b4: */ - 0, /* U+0026b5: */ - 0, /* U+0026b6: */ - 0, /* U+0026b7: */ - 0, /* U+0026b8: */ - 0, /* U+0026b9: */ - 0, /* U+0026ba: */ - 0, /* U+0026bb: */ - 0, /* U+0026bc: */ - 0, /* U+0026bd: */ - 0, /* U+0026be: */ - 0, /* U+0026bf: */ - 0, /* U+0026c0: */ - 0, /* U+0026c1: */ - 0, /* U+0026c2: */ - 0, /* U+0026c3: */ - 0, /* U+0026c4: */ - 0, /* U+0026c5: */ - 0, /* U+0026c6: */ - 0, /* U+0026c7: */ - 0, /* U+0026c8: */ - 0, /* U+0026c9: */ - 0, /* U+0026ca: */ - 0, /* U+0026cb: */ - 0, /* U+0026cc: */ - 0, /* U+0026cd: */ - 0, /* U+0026ce: */ - 0, /* U+0026cf: */ - 0, /* U+0026d0: */ - 0, /* U+0026d1: */ - 0, /* U+0026d2: */ - 0, /* U+0026d3: */ - 0, /* U+0026d4: */ - 0, /* U+0026d5: */ - 0, /* U+0026d6: */ - 0, /* U+0026d7: */ - 0, /* U+0026d8: */ - 0, /* U+0026d9: */ - 0, /* U+0026da: */ - 0, /* U+0026db: */ - 0, /* U+0026dc: */ - 0, /* U+0026dd: */ - 0, /* U+0026de: */ - 0, /* U+0026df: */ - 0, /* U+0026e0: */ - 0, /* U+0026e1: */ - 0, /* U+0026e2: */ - 0, /* U+0026e3: */ - 0, /* U+0026e4: */ - 0, /* U+0026e5: */ - 0, /* U+0026e6: */ - 0, /* U+0026e7: */ - 0, /* U+0026e8: */ - 0, /* U+0026e9: */ - 0, /* U+0026ea: */ - 0, /* U+0026eb: */ - 0, /* U+0026ec: */ - 0, /* U+0026ed: */ - 0, /* U+0026ee: */ - 0, /* U+0026ef: */ - 0, /* U+0026f0: */ - 0, /* U+0026f1: */ - 0, /* U+0026f2: */ - 0, /* U+0026f3: */ - 0, /* U+0026f4: */ - 0, /* U+0026f5: */ - 0, /* U+0026f6: */ - 0, /* U+0026f7: */ - 0, /* U+0026f8: */ - 0, /* U+0026f9: */ - 0, /* U+0026fa: */ - 0, /* U+0026fb: */ - 0, /* U+0026fc: */ - 0, /* U+0026fd: */ - 0, /* U+0026fe: */ - 0, /* U+0026ff: */ - 0, /* U+002700: */ - 0, /* U+002701: UPPER BLADE SCISSORS*/ - 0, /* U+002702: BLACK SCISSORS*/ - 0, /* U+002703: LOWER BLADE SCISSORS*/ - 0, /* U+002704: WHITE SCISSORS*/ - 0, /* U+002705: */ - 0, /* U+002706: TELEPHONE LOCATION SIGN*/ - 0, /* U+002707: TAPE DRIVE*/ - 0, /* U+002708: AIRPLANE*/ - 0, /* U+002709: ENVELOPE*/ - 0, /* U+00270a: */ - 0, /* U+00270b: */ - 0, /* U+00270c: VICTORY HAND*/ - 0, /* U+00270d: WRITING HAND*/ - 0, /* U+00270e: LOWER RIGHT PENCIL*/ - 0, /* U+00270f: PENCIL*/ - 0, /* U+002710: UPPER RIGHT PENCIL*/ - 0, /* U+002711: WHITE NIB*/ - 0, /* U+002712: BLACK NIB*/ - 0, /* U+002713: CHECK MARK*/ - 0, /* U+002714: HEAVY CHECK MARK*/ - 0, /* U+002715: MULTIPLICATION X*/ - 0, /* U+002716: HEAVY MULTIPLICATION X*/ - 0, /* U+002717: BALLOT X*/ - 0, /* U+002718: HEAVY BALLOT X*/ - 0, /* U+002719: OUTLINED GREEK CROSS*/ - 0, /* U+00271a: HEAVY GREEK CROSS*/ - 0, /* U+00271b: OPEN CENTRE CROSS*/ - 0, /* U+00271c: HEAVY OPEN CENTRE CROSS*/ - 0, /* U+00271d: LATIN CROSS*/ - 0, /* U+00271e: SHADOWED WHITE LATIN CROSS*/ - 0, /* U+00271f: OUTLINED LATIN CROSS*/ - 0, /* U+002720: MALTESE CROSS*/ - 0, /* U+002721: STAR OF DAVID*/ - 0, /* U+002722: FOUR TEARDROP-SPOKED ASTERISK*/ - 0, /* U+002723: FOUR BALLOON-SPOKED ASTERISK*/ - 0, /* U+002724: HEAVY FOUR BALLOON-SPOKED ASTERISK*/ - 0, /* U+002725: FOUR CLUB-SPOKED ASTERISK*/ - 0, /* U+002726: BLACK FOUR POINTED STAR*/ - 0, /* U+002727: WHITE FOUR POINTED STAR*/ - 0, /* U+002728: */ - 0, /* U+002729: STRESS OUTLINED WHITE STAR*/ - 0, /* U+00272a: CIRCLED WHITE STAR*/ - 0, /* U+00272b: OPEN CENTRE BLACK STAR*/ - 0, /* U+00272c: BLACK CENTRE WHITE STAR*/ - 0, /* U+00272d: OUTLINED BLACK STAR*/ - 0, /* U+00272e: HEAVY OUTLINED BLACK STAR*/ - 0, /* U+00272f: PINWHEEL STAR*/ - 0, /* U+002730: SHADOWED WHITE STAR*/ - 0, /* U+002731: HEAVY ASTERISK*/ - 0, /* U+002732: OPEN CENTRE ASTERISK*/ - 0, /* U+002733: EIGHT SPOKED ASTERISK*/ - 0, /* U+002734: EIGHT POINTED BLACK STAR*/ - 0, /* U+002735: EIGHT POINTED PINWHEEL STAR*/ - 0, /* U+002736: SIX POINTED BLACK STAR*/ - 0, /* U+002737: EIGHT POINTED RECTILINEAR BLACK STAR*/ - 0, /* U+002738: HEAVY EIGHT POINTED RECTILINEAR BLACK STAR*/ - 0, /* U+002739: TWELVE POINTED BLACK STAR*/ - 0, /* U+00273a: SIXTEEN POINTED ASTERISK*/ - 0, /* U+00273b: TEARDROP-SPOKED ASTERISK*/ - 0, /* U+00273c: OPEN CENTRE TEARDROP-SPOKED ASTERISK*/ - 0, /* U+00273d: HEAVY TEARDROP-SPOKED ASTERISK*/ - 0, /* U+00273e: SIX PETALLED BLACK AND WHITE FLORETTE*/ - 0, /* U+00273f: BLACK FLORETTE*/ - 0, /* U+002740: WHITE FLORETTE*/ - 0, /* U+002741: EIGHT PETALLED OUTLINED BLACK FLORETTE*/ - 0, /* U+002742: CIRCLED OPEN CENTRE EIGHT POINTED STAR*/ - 0, /* U+002743: HEAVY TEARDROP-SPOKED PINWHEEL ASTERISK*/ - 0, /* U+002744: SNOWFLAKE*/ - 0, /* U+002745: TIGHT TRIFOLIATE SNOWFLAKE*/ - 0, /* U+002746: HEAVY CHEVRON SNOWFLAKE*/ - 0, /* U+002747: SPARKLE*/ - 0, /* U+002748: HEAVY SPARKLE*/ - 0, /* U+002749: BALLOON-SPOKED ASTERISK*/ - 0, /* U+00274a: EIGHT TEARDROP-SPOKED PROPELLER ASTERISK*/ - 0, /* U+00274b: HEAVY EIGHT TEARDROP-SPOKED PROPELLER ASTERISK*/ - 0, /* U+00274c: */ - 0, /* U+00274d: SHADOWED WHITE CIRCLE*/ - 0, /* U+00274e: */ - 0, /* U+00274f: LOWER RIGHT DROP-SHADOWED WHITE SQUARE*/ - 0, /* U+002750: UPPER RIGHT DROP-SHADOWED WHITE SQUARE*/ - 0, /* U+002751: LOWER RIGHT SHADOWED WHITE SQUARE*/ - 0, /* U+002752: UPPER RIGHT SHADOWED WHITE SQUARE*/ - 0, /* U+002753: */ - 0, /* U+002754: */ - 0, /* U+002755: */ - 0, /* U+002756: BLACK DIAMOND MINUS WHITE X*/ - 0, /* U+002757: */ - 0, /* U+002758: LIGHT VERTICAL BAR*/ - 0, /* U+002759: MEDIUM VERTICAL BAR*/ - 0, /* U+00275a: HEAVY VERTICAL BAR*/ - 0, /* U+00275b: HEAVY SINGLE TURNED COMMA QUOTATION MARK ORNAMENT*/ - 0, /* U+00275c: HEAVY SINGLE COMMA QUOTATION MARK ORNAMENT*/ - 0, /* U+00275d: HEAVY DOUBLE TURNED COMMA QUOTATION MARK ORNAMENT*/ - 0, /* U+00275e: HEAVY DOUBLE COMMA QUOTATION MARK ORNAMENT*/ - 0, /* U+00275f: */ - 0, /* U+002760: */ - 0, /* U+002761: CURVED STEM PARAGRAPH SIGN ORNAMENT*/ - 0, /* U+002762: HEAVY EXCLAMATION MARK ORNAMENT*/ - 0, /* U+002763: HEAVY HEART EXCLAMATION MARK ORNAMENT*/ - 0, /* U+002764: HEAVY BLACK HEART*/ - 0, /* U+002765: ROTATED HEAVY BLACK HEART BULLET*/ - 0, /* U+002766: FLORAL HEART*/ - 0, /* U+002767: ROTATED FLORAL HEART BULLET*/ - 0, /* U+002768: MEDIUM LEFT PARENTHESIS ORNAMENT*/ - 0, /* U+002769: MEDIUM RIGHT PARENTHESIS ORNAMENT*/ - 0, /* U+00276a: MEDIUM FLATTENED LEFT PARENTHESIS ORNAMENT*/ - 0, /* U+00276b: MEDIUM FLATTENED RIGHT PARENTHESIS ORNAMENT*/ - 0, /* U+00276c: MEDIUM LEFT-POINTING ANGLE BRACKET ORNAMENT*/ - 0, /* U+00276d: MEDIUM RIGHT-POINTING ANGLE BRACKET ORNAMENT*/ - 0, /* U+00276e: HEAVY LEFT-POINTING ANGLE QUOTATION MARK ORNAMENT*/ - 0, /* U+00276f: HEAVY RIGHT-POINTING ANGLE QUOTATION MARK ORNAMENT*/ - 0, /* U+002770: HEAVY LEFT-POINTING ANGLE BRACKET ORNAMENT*/ - 0, /* U+002771: HEAVY RIGHT-POINTING ANGLE BRACKET ORNAMENT*/ - 0, /* U+002772: LIGHT LEFT TORTOISE SHELL BRACKET ORNAMENT*/ - 0, /* U+002773: LIGHT RIGHT TORTOISE SHELL BRACKET ORNAMENT*/ - 0, /* U+002774: MEDIUM LEFT CURLY BRACKET ORNAMENT*/ - 0, /* U+002775: MEDIUM RIGHT CURLY BRACKET ORNAMENT*/ - 0, /* U+002776: DINGBAT NEGATIVE CIRCLED DIGIT ONE*/ - 0, /* U+002777: DINGBAT NEGATIVE CIRCLED DIGIT TWO*/ - 0, /* U+002778: DINGBAT NEGATIVE CIRCLED DIGIT THREE*/ - 0, /* U+002779: DINGBAT NEGATIVE CIRCLED DIGIT FOUR*/ - 0, /* U+00277a: DINGBAT NEGATIVE CIRCLED DIGIT FIVE*/ - 0, /* U+00277b: DINGBAT NEGATIVE CIRCLED DIGIT SIX*/ - 0, /* U+00277c: DINGBAT NEGATIVE CIRCLED DIGIT SEVEN*/ - 0, /* U+00277d: DINGBAT NEGATIVE CIRCLED DIGIT EIGHT*/ - 0, /* U+00277e: DINGBAT NEGATIVE CIRCLED DIGIT NINE*/ - 0, /* U+00277f: DINGBAT NEGATIVE CIRCLED NUMBER TEN*/ - 0, /* U+002780: DINGBAT CIRCLED SANS-SERIF DIGIT ONE*/ - 0, /* U+002781: DINGBAT CIRCLED SANS-SERIF DIGIT TWO*/ - 0, /* U+002782: DINGBAT CIRCLED SANS-SERIF DIGIT THREE*/ - 0, /* U+002783: DINGBAT CIRCLED SANS-SERIF DIGIT FOUR*/ - 0, /* U+002784: DINGBAT CIRCLED SANS-SERIF DIGIT FIVE*/ - 0, /* U+002785: DINGBAT CIRCLED SANS-SERIF DIGIT SIX*/ - 0, /* U+002786: DINGBAT CIRCLED SANS-SERIF DIGIT SEVEN*/ - 0, /* U+002787: DINGBAT CIRCLED SANS-SERIF DIGIT EIGHT*/ - 0, /* U+002788: DINGBAT CIRCLED SANS-SERIF DIGIT NINE*/ - 0, /* U+002789: DINGBAT CIRCLED SANS-SERIF NUMBER TEN*/ - 0, /* U+00278a: DINGBAT NEGATIVE CIRCLED SANS-SERIF DIGIT ONE*/ - 0, /* U+00278b: DINGBAT NEGATIVE CIRCLED SANS-SERIF DIGIT TWO*/ - 0, /* U+00278c: DINGBAT NEGATIVE CIRCLED SANS-SERIF DIGIT THREE*/ - 0, /* U+00278d: DINGBAT NEGATIVE CIRCLED SANS-SERIF DIGIT FOUR*/ - 0, /* U+00278e: DINGBAT NEGATIVE CIRCLED SANS-SERIF DIGIT FIVE*/ - 0, /* U+00278f: DINGBAT NEGATIVE CIRCLED SANS-SERIF DIGIT SIX*/ - 0, /* U+002790: DINGBAT NEGATIVE CIRCLED SANS-SERIF DIGIT SEVEN*/ - 0, /* U+002791: DINGBAT NEGATIVE CIRCLED SANS-SERIF DIGIT EIGHT*/ - 0, /* U+002792: DINGBAT NEGATIVE CIRCLED SANS-SERIF DIGIT NINE*/ - 0, /* U+002793: DINGBAT NEGATIVE CIRCLED SANS-SERIF NUMBER TEN*/ - 0, /* U+002794: HEAVY WIDE-HEADED RIGHTWARDS ARROW*/ - 0, /* U+002795: */ - 0, /* U+002796: */ - 0, /* U+002797: */ - 0, /* U+002798: HEAVY SOUTH EAST ARROW*/ - 0, /* U+002799: HEAVY RIGHTWARDS ARROW*/ - 0, /* U+00279a: HEAVY NORTH EAST ARROW*/ - 0, /* U+00279b: DRAFTING POINT RIGHTWARDS ARROW*/ - 0, /* U+00279c: HEAVY ROUND-TIPPED RIGHTWARDS ARROW*/ - 0, /* U+00279d: TRIANGLE-HEADED RIGHTWARDS ARROW*/ - 0, /* U+00279e: HEAVY TRIANGLE-HEADED RIGHTWARDS ARROW*/ - 0, /* U+00279f: DASHED TRIANGLE-HEADED RIGHTWARDS ARROW*/ - 0, /* U+0027a0: HEAVY DASHED TRIANGLE-HEADED RIGHTWARDS ARROW*/ - 0, /* U+0027a1: BLACK RIGHTWARDS ARROW*/ - 0, /* U+0027a2: THREE-D TOP-LIGHTED RIGHTWARDS ARROWHEAD*/ - 0, /* U+0027a3: THREE-D BOTTOM-LIGHTED RIGHTWARDS ARROWHEAD*/ - 0, /* U+0027a4: BLACK RIGHTWARDS ARROWHEAD*/ - 0, /* U+0027a5: HEAVY BLACK CURVED DOWNWARDS AND RIGHTWARDS ARROW*/ - 0, /* U+0027a6: HEAVY BLACK CURVED UPWARDS AND RIGHTWARDS ARROW*/ - 0, /* U+0027a7: SQUAT BLACK RIGHTWARDS ARROW*/ - 0, /* U+0027a8: HEAVY CONCAVE-POINTED BLACK RIGHTWARDS ARROW*/ - 0, /* U+0027a9: RIGHT-SHADED WHITE RIGHTWARDS ARROW*/ - 0, /* U+0027aa: LEFT-SHADED WHITE RIGHTWARDS ARROW*/ - 0, /* U+0027ab: BACK-TILTED SHADOWED WHITE RIGHTWARDS ARROW*/ - 0, /* U+0027ac: FRONT-TILTED SHADOWED WHITE RIGHTWARDS ARROW*/ - 0, /* U+0027ad: HEAVY LOWER RIGHT-SHADOWED WHITE RIGHTWARDS ARROW*/ - 0, /* U+0027ae: HEAVY UPPER RIGHT-SHADOWED WHITE RIGHTWARDS ARROW*/ - 0, /* U+0027af: NOTCHED LOWER RIGHT-SHADOWED WHITE RIGHTWARDS ARROW*/ - 0, /* U+0027b0: */ - 0, /* U+0027b1: NOTCHED UPPER RIGHT-SHADOWED WHITE RIGHTWARDS ARROW*/ - 0, /* U+0027b2: CIRCLED HEAVY WHITE RIGHTWARDS ARROW*/ - 0, /* U+0027b3: WHITE-FEATHERED RIGHTWARDS ARROW*/ - 0, /* U+0027b4: BLACK-FEATHERED SOUTH EAST ARROW*/ - 0, /* U+0027b5: BLACK-FEATHERED RIGHTWARDS ARROW*/ - 0, /* U+0027b6: BLACK-FEATHERED NORTH EAST ARROW*/ - 0, /* U+0027b7: HEAVY BLACK-FEATHERED SOUTH EAST ARROW*/ - 0, /* U+0027b8: HEAVY BLACK-FEATHERED RIGHTWARDS ARROW*/ - 0, /* U+0027b9: HEAVY BLACK-FEATHERED NORTH EAST ARROW*/ - 0, /* U+0027ba: TEARDROP-BARBED RIGHTWARDS ARROW*/ - 0, /* U+0027bb: HEAVY TEARDROP-SHANKED RIGHTWARDS ARROW*/ - 0, /* U+0027bc: WEDGE-TAILED RIGHTWARDS ARROW*/ - 0, /* U+0027bd: HEAVY WEDGE-TAILED RIGHTWARDS ARROW*/ - 0, /* U+0027be: OPEN-OUTLINED RIGHTWARDS ARROW*/ - 0, /* U+0027bf: */ - 0, /* U+0027c0: THREE DIMENSIONAL ANGLE*/ - 0, /* U+0027c1: WHITE TRIANGLE CONTAINING SMALL WHITE TRIANGLE*/ - 0, /* U+0027c2: PERPENDICULAR*/ - 0, /* U+0027c3: OPEN SUBSET*/ - 0, /* U+0027c4: OPEN SUPERSET*/ - 0, /* U+0027c5: LEFT S-SHAPED BAG DELIMITER*/ - 0, /* U+0027c6: RIGHT S-SHAPED BAG DELIMITER*/ - 0, /* U+0027c7: */ - 0, /* U+0027c8: */ - 0, /* U+0027c9: */ - 0, /* U+0027ca: */ - 0, /* U+0027cb: */ - 0, /* U+0027cc: */ - 0, /* U+0027cd: */ - 0, /* U+0027ce: */ - 0, /* U+0027cf: */ - 0, /* U+0027d0: WHITE DIAMOND WITH CENTRED DOT*/ - 0, /* U+0027d1: AND WITH DOT*/ - 0, /* U+0027d2: ELEMENT OF OPENING UPWARDS*/ - 0, /* U+0027d3: LOWER RIGHT CORNER WITH DOT*/ - 0, /* U+0027d4: UPPER LEFT CORNER WITH DOT*/ - 0, /* U+0027d5: LEFT OUTER JOIN*/ - 0, /* U+0027d6: RIGHT OUTER JOIN*/ - 0, /* U+0027d7: FULL OUTER JOIN*/ - 0, /* U+0027d8: LARGE UP TACK*/ - 0, /* U+0027d9: LARGE DOWN TACK*/ - 0, /* U+0027da: LEFT AND RIGHT DOUBLE TURNSTILE*/ - 0, /* U+0027db: LEFT AND RIGHT TACK*/ - 0, /* U+0027dc: LEFT MULTIMAP*/ - 0, /* U+0027dd: LONG RIGHT TACK*/ - 0, /* U+0027de: LONG LEFT TACK*/ - 0, /* U+0027df: UP TACK WITH CIRCLE ABOVE*/ - 0, /* U+0027e0: LOZENGE DIVIDED BY HORIZONTAL RULE*/ - 0, /* U+0027e1: WHITE CONCAVE-SIDED DIAMOND*/ - 0, /* U+0027e2: WHITE CONCAVE-SIDED DIAMOND WITH LEFTWARDS TICK*/ - 0, /* U+0027e3: WHITE CONCAVE-SIDED DIAMOND WITH RIGHTWARDS TICK*/ - 0, /* U+0027e4: WHITE SQUARE WITH LEFTWARDS TICK*/ - 0, /* U+0027e5: WHITE SQUARE WITH RIGHTWARDS TICK*/ - 0, /* U+0027e6: MATHEMATICAL LEFT WHITE SQUARE BRACKET*/ - 0, /* U+0027e7: MATHEMATICAL RIGHT WHITE SQUARE BRACKET*/ - 0, /* U+0027e8: MATHEMATICAL LEFT ANGLE BRACKET*/ - 0, /* U+0027e9: MATHEMATICAL RIGHT ANGLE BRACKET*/ - 0, /* U+0027ea: MATHEMATICAL LEFT DOUBLE ANGLE BRACKET*/ - 0, /* U+0027eb: MATHEMATICAL RIGHT DOUBLE ANGLE BRACKET*/ - 0, /* U+0027ec: */ - 0, /* U+0027ed: */ - 0, /* U+0027ee: */ - 0, /* U+0027ef: */ - 0, /* U+0027f0: UPWARDS QUADRUPLE ARROW*/ - 0, /* U+0027f1: DOWNWARDS QUADRUPLE ARROW*/ - 0, /* U+0027f2: ANTICLOCKWISE GAPPED CIRCLE ARROW*/ - 0, /* U+0027f3: CLOCKWISE GAPPED CIRCLE ARROW*/ - 0, /* U+0027f4: RIGHT ARROW WITH CIRCLED PLUS*/ - 0, /* U+0027f5: LONG LEFTWARDS ARROW*/ - 0, /* U+0027f6: LONG RIGHTWARDS ARROW*/ - 0, /* U+0027f7: LONG LEFT RIGHT ARROW*/ - 0, /* U+0027f8: LONG LEFTWARDS DOUBLE ARROW*/ - 0, /* U+0027f9: LONG RIGHTWARDS DOUBLE ARROW*/ - 0, /* U+0027fa: LONG LEFT RIGHT DOUBLE ARROW*/ - 0, /* U+0027fb: LONG LEFTWARDS ARROW FROM BAR*/ - 0, /* U+0027fc: LONG RIGHTWARDS ARROW FROM BAR*/ - 0, /* U+0027fd: LONG LEFTWARDS DOUBLE ARROW FROM BAR*/ - 0, /* U+0027fe: LONG RIGHTWARDS DOUBLE ARROW FROM BAR*/ - 0, /* U+0027ff: LONG RIGHTWARDS SQUIGGLE ARROW*/ - 0, /* U+002800: BRAILLE PATTERN BLANK*/ - 0, /* U+002801: BRAILLE PATTERN DOTS-1*/ - 0, /* U+002802: BRAILLE PATTERN DOTS-2*/ - 0, /* U+002803: BRAILLE PATTERN DOTS-12*/ - 0, /* U+002804: BRAILLE PATTERN DOTS-3*/ - 0, /* U+002805: BRAILLE PATTERN DOTS-13*/ - 0, /* U+002806: BRAILLE PATTERN DOTS-23*/ - 0, /* U+002807: BRAILLE PATTERN DOTS-123*/ - 0, /* U+002808: BRAILLE PATTERN DOTS-4*/ - 0, /* U+002809: BRAILLE PATTERN DOTS-14*/ - 0, /* U+00280a: BRAILLE PATTERN DOTS-24*/ - 0, /* U+00280b: BRAILLE PATTERN DOTS-124*/ - 0, /* U+00280c: BRAILLE PATTERN DOTS-34*/ - 0, /* U+00280d: BRAILLE PATTERN DOTS-134*/ - 0, /* U+00280e: BRAILLE PATTERN DOTS-234*/ - 0, /* U+00280f: BRAILLE PATTERN DOTS-1234*/ - 0, /* U+002810: BRAILLE PATTERN DOTS-5*/ - 0, /* U+002811: BRAILLE PATTERN DOTS-15*/ - 0, /* U+002812: BRAILLE PATTERN DOTS-25*/ - 0, /* U+002813: BRAILLE PATTERN DOTS-125*/ - 0, /* U+002814: BRAILLE PATTERN DOTS-35*/ - 0, /* U+002815: BRAILLE PATTERN DOTS-135*/ - 0, /* U+002816: BRAILLE PATTERN DOTS-235*/ - 0, /* U+002817: BRAILLE PATTERN DOTS-1235*/ - 0, /* U+002818: BRAILLE PATTERN DOTS-45*/ - 0, /* U+002819: BRAILLE PATTERN DOTS-145*/ - 0, /* U+00281a: BRAILLE PATTERN DOTS-245*/ - 0, /* U+00281b: BRAILLE PATTERN DOTS-1245*/ - 0, /* U+00281c: BRAILLE PATTERN DOTS-345*/ - 0, /* U+00281d: BRAILLE PATTERN DOTS-1345*/ - 0, /* U+00281e: BRAILLE PATTERN DOTS-2345*/ - 0, /* U+00281f: BRAILLE PATTERN DOTS-12345*/ - 0, /* U+002820: BRAILLE PATTERN DOTS-6*/ - 0, /* U+002821: BRAILLE PATTERN DOTS-16*/ - 0, /* U+002822: BRAILLE PATTERN DOTS-26*/ - 0, /* U+002823: BRAILLE PATTERN DOTS-126*/ - 0, /* U+002824: BRAILLE PATTERN DOTS-36*/ - 0, /* U+002825: BRAILLE PATTERN DOTS-136*/ - 0, /* U+002826: BRAILLE PATTERN DOTS-236*/ - 0, /* U+002827: BRAILLE PATTERN DOTS-1236*/ - 0, /* U+002828: BRAILLE PATTERN DOTS-46*/ - 0, /* U+002829: BRAILLE PATTERN DOTS-146*/ - 0, /* U+00282a: BRAILLE PATTERN DOTS-246*/ - 0, /* U+00282b: BRAILLE PATTERN DOTS-1246*/ - 0, /* U+00282c: BRAILLE PATTERN DOTS-346*/ - 0, /* U+00282d: BRAILLE PATTERN DOTS-1346*/ - 0, /* U+00282e: BRAILLE PATTERN DOTS-2346*/ - 0, /* U+00282f: BRAILLE PATTERN DOTS-12346*/ - 0, /* U+002830: BRAILLE PATTERN DOTS-56*/ - 0, /* U+002831: BRAILLE PATTERN DOTS-156*/ - 0, /* U+002832: BRAILLE PATTERN DOTS-256*/ - 0, /* U+002833: BRAILLE PATTERN DOTS-1256*/ - 0, /* U+002834: BRAILLE PATTERN DOTS-356*/ - 0, /* U+002835: BRAILLE PATTERN DOTS-1356*/ - 0, /* U+002836: BRAILLE PATTERN DOTS-2356*/ - 0, /* U+002837: BRAILLE PATTERN DOTS-12356*/ - 0, /* U+002838: BRAILLE PATTERN DOTS-456*/ - 0, /* U+002839: BRAILLE PATTERN DOTS-1456*/ - 0, /* U+00283a: BRAILLE PATTERN DOTS-2456*/ - 0, /* U+00283b: BRAILLE PATTERN DOTS-12456*/ - 0, /* U+00283c: BRAILLE PATTERN DOTS-3456*/ - 0, /* U+00283d: BRAILLE PATTERN DOTS-13456*/ - 0, /* U+00283e: BRAILLE PATTERN DOTS-23456*/ - 0, /* U+00283f: BRAILLE PATTERN DOTS-123456*/ - 0, /* U+002840: BRAILLE PATTERN DOTS-7*/ - 0, /* U+002841: BRAILLE PATTERN DOTS-17*/ - 0, /* U+002842: BRAILLE PATTERN DOTS-27*/ - 0, /* U+002843: BRAILLE PATTERN DOTS-127*/ - 0, /* U+002844: BRAILLE PATTERN DOTS-37*/ - 0, /* U+002845: BRAILLE PATTERN DOTS-137*/ - 0, /* U+002846: BRAILLE PATTERN DOTS-237*/ - 0, /* U+002847: BRAILLE PATTERN DOTS-1237*/ - 0, /* U+002848: BRAILLE PATTERN DOTS-47*/ - 0, /* U+002849: BRAILLE PATTERN DOTS-147*/ - 0, /* U+00284a: BRAILLE PATTERN DOTS-247*/ - 0, /* U+00284b: BRAILLE PATTERN DOTS-1247*/ - 0, /* U+00284c: BRAILLE PATTERN DOTS-347*/ - 0, /* U+00284d: BRAILLE PATTERN DOTS-1347*/ - 0, /* U+00284e: BRAILLE PATTERN DOTS-2347*/ - 0, /* U+00284f: BRAILLE PATTERN DOTS-12347*/ - 0, /* U+002850: BRAILLE PATTERN DOTS-57*/ - 0, /* U+002851: BRAILLE PATTERN DOTS-157*/ - 0, /* U+002852: BRAILLE PATTERN DOTS-257*/ - 0, /* U+002853: BRAILLE PATTERN DOTS-1257*/ - 0, /* U+002854: BRAILLE PATTERN DOTS-357*/ - 0, /* U+002855: BRAILLE PATTERN DOTS-1357*/ - 0, /* U+002856: BRAILLE PATTERN DOTS-2357*/ - 0, /* U+002857: BRAILLE PATTERN DOTS-12357*/ - 0, /* U+002858: BRAILLE PATTERN DOTS-457*/ - 0, /* U+002859: BRAILLE PATTERN DOTS-1457*/ - 0, /* U+00285a: BRAILLE PATTERN DOTS-2457*/ - 0, /* U+00285b: BRAILLE PATTERN DOTS-12457*/ - 0, /* U+00285c: BRAILLE PATTERN DOTS-3457*/ - 0, /* U+00285d: BRAILLE PATTERN DOTS-13457*/ - 0, /* U+00285e: BRAILLE PATTERN DOTS-23457*/ - 0, /* U+00285f: BRAILLE PATTERN DOTS-123457*/ - 0, /* U+002860: BRAILLE PATTERN DOTS-67*/ - 0, /* U+002861: BRAILLE PATTERN DOTS-167*/ - 0, /* U+002862: BRAILLE PATTERN DOTS-267*/ - 0, /* U+002863: BRAILLE PATTERN DOTS-1267*/ - 0, /* U+002864: BRAILLE PATTERN DOTS-367*/ - 0, /* U+002865: BRAILLE PATTERN DOTS-1367*/ - 0, /* U+002866: BRAILLE PATTERN DOTS-2367*/ - 0, /* U+002867: BRAILLE PATTERN DOTS-12367*/ - 0, /* U+002868: BRAILLE PATTERN DOTS-467*/ - 0, /* U+002869: BRAILLE PATTERN DOTS-1467*/ - 0, /* U+00286a: BRAILLE PATTERN DOTS-2467*/ - 0, /* U+00286b: BRAILLE PATTERN DOTS-12467*/ - 0, /* U+00286c: BRAILLE PATTERN DOTS-3467*/ - 0, /* U+00286d: BRAILLE PATTERN DOTS-13467*/ - 0, /* U+00286e: BRAILLE PATTERN DOTS-23467*/ - 0, /* U+00286f: BRAILLE PATTERN DOTS-123467*/ - 0, /* U+002870: BRAILLE PATTERN DOTS-567*/ - 0, /* U+002871: BRAILLE PATTERN DOTS-1567*/ - 0, /* U+002872: BRAILLE PATTERN DOTS-2567*/ - 0, /* U+002873: BRAILLE PATTERN DOTS-12567*/ - 0, /* U+002874: BRAILLE PATTERN DOTS-3567*/ - 0, /* U+002875: BRAILLE PATTERN DOTS-13567*/ - 0, /* U+002876: BRAILLE PATTERN DOTS-23567*/ - 0, /* U+002877: BRAILLE PATTERN DOTS-123567*/ - 0, /* U+002878: BRAILLE PATTERN DOTS-4567*/ - 0, /* U+002879: BRAILLE PATTERN DOTS-14567*/ - 0, /* U+00287a: BRAILLE PATTERN DOTS-24567*/ - 0, /* U+00287b: BRAILLE PATTERN DOTS-124567*/ - 0, /* U+00287c: BRAILLE PATTERN DOTS-34567*/ - 0, /* U+00287d: BRAILLE PATTERN DOTS-134567*/ - 0, /* U+00287e: BRAILLE PATTERN DOTS-234567*/ - 0, /* U+00287f: BRAILLE PATTERN DOTS-1234567*/ - 0, /* U+002880: BRAILLE PATTERN DOTS-8*/ - 0, /* U+002881: BRAILLE PATTERN DOTS-18*/ - 0, /* U+002882: BRAILLE PATTERN DOTS-28*/ - 0, /* U+002883: BRAILLE PATTERN DOTS-128*/ - 0, /* U+002884: BRAILLE PATTERN DOTS-38*/ - 0, /* U+002885: BRAILLE PATTERN DOTS-138*/ - 0, /* U+002886: BRAILLE PATTERN DOTS-238*/ - 0, /* U+002887: BRAILLE PATTERN DOTS-1238*/ - 0, /* U+002888: BRAILLE PATTERN DOTS-48*/ - 0, /* U+002889: BRAILLE PATTERN DOTS-148*/ - 0, /* U+00288a: BRAILLE PATTERN DOTS-248*/ - 0, /* U+00288b: BRAILLE PATTERN DOTS-1248*/ - 0, /* U+00288c: BRAILLE PATTERN DOTS-348*/ - 0, /* U+00288d: BRAILLE PATTERN DOTS-1348*/ - 0, /* U+00288e: BRAILLE PATTERN DOTS-2348*/ - 0, /* U+00288f: BRAILLE PATTERN DOTS-12348*/ - 0, /* U+002890: BRAILLE PATTERN DOTS-58*/ - 0, /* U+002891: BRAILLE PATTERN DOTS-158*/ - 0, /* U+002892: BRAILLE PATTERN DOTS-258*/ - 0, /* U+002893: BRAILLE PATTERN DOTS-1258*/ - 0, /* U+002894: BRAILLE PATTERN DOTS-358*/ - 0, /* U+002895: BRAILLE PATTERN DOTS-1358*/ - 0, /* U+002896: BRAILLE PATTERN DOTS-2358*/ - 0, /* U+002897: BRAILLE PATTERN DOTS-12358*/ - 0, /* U+002898: BRAILLE PATTERN DOTS-458*/ - 0, /* U+002899: BRAILLE PATTERN DOTS-1458*/ - 0, /* U+00289a: BRAILLE PATTERN DOTS-2458*/ - 0, /* U+00289b: BRAILLE PATTERN DOTS-12458*/ - 0, /* U+00289c: BRAILLE PATTERN DOTS-3458*/ - 0, /* U+00289d: BRAILLE PATTERN DOTS-13458*/ - 0, /* U+00289e: BRAILLE PATTERN DOTS-23458*/ - 0, /* U+00289f: BRAILLE PATTERN DOTS-123458*/ - 0, /* U+0028a0: BRAILLE PATTERN DOTS-68*/ - 0, /* U+0028a1: BRAILLE PATTERN DOTS-168*/ - 0, /* U+0028a2: BRAILLE PATTERN DOTS-268*/ - 0, /* U+0028a3: BRAILLE PATTERN DOTS-1268*/ - 0, /* U+0028a4: BRAILLE PATTERN DOTS-368*/ - 0, /* U+0028a5: BRAILLE PATTERN DOTS-1368*/ - 0, /* U+0028a6: BRAILLE PATTERN DOTS-2368*/ - 0, /* U+0028a7: BRAILLE PATTERN DOTS-12368*/ - 0, /* U+0028a8: BRAILLE PATTERN DOTS-468*/ - 0, /* U+0028a9: BRAILLE PATTERN DOTS-1468*/ - 0, /* U+0028aa: BRAILLE PATTERN DOTS-2468*/ - 0, /* U+0028ab: BRAILLE PATTERN DOTS-12468*/ - 0, /* U+0028ac: BRAILLE PATTERN DOTS-3468*/ - 0, /* U+0028ad: BRAILLE PATTERN DOTS-13468*/ - 0, /* U+0028ae: BRAILLE PATTERN DOTS-23468*/ - 0, /* U+0028af: BRAILLE PATTERN DOTS-123468*/ - 0, /* U+0028b0: BRAILLE PATTERN DOTS-568*/ - 0, /* U+0028b1: BRAILLE PATTERN DOTS-1568*/ - 0, /* U+0028b2: BRAILLE PATTERN DOTS-2568*/ - 0, /* U+0028b3: BRAILLE PATTERN DOTS-12568*/ - 0, /* U+0028b4: BRAILLE PATTERN DOTS-3568*/ - 0, /* U+0028b5: BRAILLE PATTERN DOTS-13568*/ - 0, /* U+0028b6: BRAILLE PATTERN DOTS-23568*/ - 0, /* U+0028b7: BRAILLE PATTERN DOTS-123568*/ - 0, /* U+0028b8: BRAILLE PATTERN DOTS-4568*/ - 0, /* U+0028b9: BRAILLE PATTERN DOTS-14568*/ - 0, /* U+0028ba: BRAILLE PATTERN DOTS-24568*/ - 0, /* U+0028bb: BRAILLE PATTERN DOTS-124568*/ - 0, /* U+0028bc: BRAILLE PATTERN DOTS-34568*/ - 0, /* U+0028bd: BRAILLE PATTERN DOTS-134568*/ - 0, /* U+0028be: BRAILLE PATTERN DOTS-234568*/ - 0, /* U+0028bf: BRAILLE PATTERN DOTS-1234568*/ - 0, /* U+0028c0: BRAILLE PATTERN DOTS-78*/ - 0, /* U+0028c1: BRAILLE PATTERN DOTS-178*/ - 0, /* U+0028c2: BRAILLE PATTERN DOTS-278*/ - 0, /* U+0028c3: BRAILLE PATTERN DOTS-1278*/ - 0, /* U+0028c4: BRAILLE PATTERN DOTS-378*/ - 0, /* U+0028c5: BRAILLE PATTERN DOTS-1378*/ - 0, /* U+0028c6: BRAILLE PATTERN DOTS-2378*/ - 0, /* U+0028c7: BRAILLE PATTERN DOTS-12378*/ - 0, /* U+0028c8: BRAILLE PATTERN DOTS-478*/ - 0, /* U+0028c9: BRAILLE PATTERN DOTS-1478*/ - 0, /* U+0028ca: BRAILLE PATTERN DOTS-2478*/ - 0, /* U+0028cb: BRAILLE PATTERN DOTS-12478*/ - 0, /* U+0028cc: BRAILLE PATTERN DOTS-3478*/ - 0, /* U+0028cd: BRAILLE PATTERN DOTS-13478*/ - 0, /* U+0028ce: BRAILLE PATTERN DOTS-23478*/ - 0, /* U+0028cf: BRAILLE PATTERN DOTS-123478*/ - 0, /* U+0028d0: BRAILLE PATTERN DOTS-578*/ - 0, /* U+0028d1: BRAILLE PATTERN DOTS-1578*/ - 0, /* U+0028d2: BRAILLE PATTERN DOTS-2578*/ - 0, /* U+0028d3: BRAILLE PATTERN DOTS-12578*/ - 0, /* U+0028d4: BRAILLE PATTERN DOTS-3578*/ - 0, /* U+0028d5: BRAILLE PATTERN DOTS-13578*/ - 0, /* U+0028d6: BRAILLE PATTERN DOTS-23578*/ - 0, /* U+0028d7: BRAILLE PATTERN DOTS-123578*/ - 0, /* U+0028d8: BRAILLE PATTERN DOTS-4578*/ - 0, /* U+0028d9: BRAILLE PATTERN DOTS-14578*/ - 0, /* U+0028da: BRAILLE PATTERN DOTS-24578*/ - 0, /* U+0028db: BRAILLE PATTERN DOTS-124578*/ - 0, /* U+0028dc: BRAILLE PATTERN DOTS-34578*/ - 0, /* U+0028dd: BRAILLE PATTERN DOTS-134578*/ - 0, /* U+0028de: BRAILLE PATTERN DOTS-234578*/ - 0, /* U+0028df: BRAILLE PATTERN DOTS-1234578*/ - 0, /* U+0028e0: BRAILLE PATTERN DOTS-678*/ - 0, /* U+0028e1: BRAILLE PATTERN DOTS-1678*/ - 0, /* U+0028e2: BRAILLE PATTERN DOTS-2678*/ - 0, /* U+0028e3: BRAILLE PATTERN DOTS-12678*/ - 0, /* U+0028e4: BRAILLE PATTERN DOTS-3678*/ - 0, /* U+0028e5: BRAILLE PATTERN DOTS-13678*/ - 0, /* U+0028e6: BRAILLE PATTERN DOTS-23678*/ - 0, /* U+0028e7: BRAILLE PATTERN DOTS-123678*/ - 0, /* U+0028e8: BRAILLE PATTERN DOTS-4678*/ - 0, /* U+0028e9: BRAILLE PATTERN DOTS-14678*/ - 0, /* U+0028ea: BRAILLE PATTERN DOTS-24678*/ - 0, /* U+0028eb: BRAILLE PATTERN DOTS-124678*/ - 0, /* U+0028ec: BRAILLE PATTERN DOTS-34678*/ - 0, /* U+0028ed: BRAILLE PATTERN DOTS-134678*/ - 0, /* U+0028ee: BRAILLE PATTERN DOTS-234678*/ - 0, /* U+0028ef: BRAILLE PATTERN DOTS-1234678*/ - 0, /* U+0028f0: BRAILLE PATTERN DOTS-5678*/ - 0, /* U+0028f1: BRAILLE PATTERN DOTS-15678*/ - 0, /* U+0028f2: BRAILLE PATTERN DOTS-25678*/ - 0, /* U+0028f3: BRAILLE PATTERN DOTS-125678*/ - 0, /* U+0028f4: BRAILLE PATTERN DOTS-35678*/ - 0, /* U+0028f5: BRAILLE PATTERN DOTS-135678*/ - 0, /* U+0028f6: BRAILLE PATTERN DOTS-235678*/ - 0, /* U+0028f7: BRAILLE PATTERN DOTS-1235678*/ - 0, /* U+0028f8: BRAILLE PATTERN DOTS-45678*/ - 0, /* U+0028f9: BRAILLE PATTERN DOTS-145678*/ - 0, /* U+0028fa: BRAILLE PATTERN DOTS-245678*/ - 0, /* U+0028fb: BRAILLE PATTERN DOTS-1245678*/ - 0, /* U+0028fc: BRAILLE PATTERN DOTS-345678*/ - 0, /* U+0028fd: BRAILLE PATTERN DOTS-1345678*/ - 0, /* U+0028fe: BRAILLE PATTERN DOTS-2345678*/ - 0, /* U+0028ff: BRAILLE PATTERN DOTS-12345678*/ - 0, /* U+002900: RIGHTWARDS TWO-HEADED ARROW WITH VERTICAL STROKE*/ - 0, /* U+002901: RIGHTWARDS TWO-HEADED ARROW WITH DOUBLE VERTICAL STROKE*/ - 0, /* U+002902: LEFTWARDS DOUBLE ARROW WITH VERTICAL STROKE*/ - 0, /* U+002903: RIGHTWARDS DOUBLE ARROW WITH VERTICAL STROKE*/ - 0, /* U+002904: LEFT RIGHT DOUBLE ARROW WITH VERTICAL STROKE*/ - 0, /* U+002905: RIGHTWARDS TWO-HEADED ARROW FROM BAR*/ - 0, /* U+002906: LEFTWARDS DOUBLE ARROW FROM BAR*/ - 0, /* U+002907: RIGHTWARDS DOUBLE ARROW FROM BAR*/ - 0, /* U+002908: DOWNWARDS ARROW WITH HORIZONTAL STROKE*/ - 0, /* U+002909: UPWARDS ARROW WITH HORIZONTAL STROKE*/ - 0, /* U+00290a: UPWARDS TRIPLE ARROW*/ - 0, /* U+00290b: DOWNWARDS TRIPLE ARROW*/ - 0, /* U+00290c: LEFTWARDS DOUBLE DASH ARROW*/ - 0, /* U+00290d: RIGHTWARDS DOUBLE DASH ARROW*/ - 0, /* U+00290e: LEFTWARDS TRIPLE DASH ARROW*/ - 0, /* U+00290f: RIGHTWARDS TRIPLE DASH ARROW*/ - 0, /* U+002910: RIGHTWARDS TWO-HEADED TRIPLE DASH ARROW*/ - 0, /* U+002911: RIGHTWARDS ARROW WITH DOTTED STEM*/ - 0, /* U+002912: UPWARDS ARROW TO BAR*/ - 0, /* U+002913: DOWNWARDS ARROW TO BAR*/ - 0, /* U+002914: RIGHTWARDS ARROW WITH TAIL WITH VERTICAL STROKE*/ - 0, /* U+002915: RIGHTWARDS ARROW WITH TAIL WITH DOUBLE VERTICAL STROKE*/ - 0, /* U+002916: RIGHTWARDS TWO-HEADED ARROW WITH TAIL*/ - 0, /* U+002917: RIGHTWARDS TWO-HEADED ARROW WITH TAIL WITH VERTICAL STROKE*/ - 0, /* U+002918: RIGHTWARDS TWO-HEADED ARROW WITH TAIL WITH DOUBLE VERTICAL STROKE*/ - 0, /* U+002919: LEFTWARDS ARROW-TAIL*/ - 0, /* U+00291a: RIGHTWARDS ARROW-TAIL*/ - 0, /* U+00291b: LEFTWARDS DOUBLE ARROW-TAIL*/ - 0, /* U+00291c: RIGHTWARDS DOUBLE ARROW-TAIL*/ - 0, /* U+00291d: LEFTWARDS ARROW TO BLACK DIAMOND*/ - 0, /* U+00291e: RIGHTWARDS ARROW TO BLACK DIAMOND*/ - 0, /* U+00291f: LEFTWARDS ARROW FROM BAR TO BLACK DIAMOND*/ - 0, /* U+002920: RIGHTWARDS ARROW FROM BAR TO BLACK DIAMOND*/ - 0, /* U+002921: NORTH WEST AND SOUTH EAST ARROW*/ - 0, /* U+002922: NORTH EAST AND SOUTH WEST ARROW*/ - 0, /* U+002923: NORTH WEST ARROW WITH HOOK*/ - 0, /* U+002924: NORTH EAST ARROW WITH HOOK*/ - 0, /* U+002925: SOUTH EAST ARROW WITH HOOK*/ - 0, /* U+002926: SOUTH WEST ARROW WITH HOOK*/ - 0, /* U+002927: NORTH WEST ARROW AND NORTH EAST ARROW*/ - 0, /* U+002928: NORTH EAST ARROW AND SOUTH EAST ARROW*/ - 0, /* U+002929: SOUTH EAST ARROW AND SOUTH WEST ARROW*/ - 0, /* U+00292a: SOUTH WEST ARROW AND NORTH WEST ARROW*/ - 0, /* U+00292b: RISING DIAGONAL CROSSING FALLING DIAGONAL*/ - 0, /* U+00292c: FALLING DIAGONAL CROSSING RISING DIAGONAL*/ - 0, /* U+00292d: SOUTH EAST ARROW CROSSING NORTH EAST ARROW*/ - 0, /* U+00292e: NORTH EAST ARROW CROSSING SOUTH EAST ARROW*/ - 0, /* U+00292f: FALLING DIAGONAL CROSSING NORTH EAST ARROW*/ - 0, /* U+002930: RISING DIAGONAL CROSSING SOUTH EAST ARROW*/ - 0, /* U+002931: NORTH EAST ARROW CROSSING NORTH WEST ARROW*/ - 0, /* U+002932: NORTH WEST ARROW CROSSING NORTH EAST ARROW*/ - 0, /* U+002933: WAVE ARROW POINTING DIRECTLY RIGHT*/ - 0, /* U+002934: ARROW POINTING RIGHTWARDS THEN CURVING UPWARDS*/ - 0, /* U+002935: ARROW POINTING RIGHTWARDS THEN CURVING DOWNWARDS*/ - 0, /* U+002936: ARROW POINTING DOWNWARDS THEN CURVING LEFTWARDS*/ - 0, /* U+002937: ARROW POINTING DOWNWARDS THEN CURVING RIGHTWARDS*/ - 0, /* U+002938: RIGHT-SIDE ARC CLOCKWISE ARROW*/ - 0, /* U+002939: LEFT-SIDE ARC ANTICLOCKWISE ARROW*/ - 0, /* U+00293a: TOP ARC ANTICLOCKWISE ARROW*/ - 0, /* U+00293b: BOTTOM ARC ANTICLOCKWISE ARROW*/ - 0, /* U+00293c: TOP ARC CLOCKWISE ARROW WITH MINUS*/ - 0, /* U+00293d: TOP ARC ANTICLOCKWISE ARROW WITH PLUS*/ - 0, /* U+00293e: LOWER RIGHT SEMICIRCULAR CLOCKWISE ARROW*/ - 0, /* U+00293f: LOWER LEFT SEMICIRCULAR ANTICLOCKWISE ARROW*/ - 0, /* U+002940: ANTICLOCKWISE CLOSED CIRCLE ARROW*/ - 0, /* U+002941: CLOCKWISE CLOSED CIRCLE ARROW*/ - 0, /* U+002942: RIGHTWARDS ARROW ABOVE SHORT LEFTWARDS ARROW*/ - 0, /* U+002943: LEFTWARDS ARROW ABOVE SHORT RIGHTWARDS ARROW*/ - 0, /* U+002944: SHORT RIGHTWARDS ARROW ABOVE LEFTWARDS ARROW*/ - 0, /* U+002945: RIGHTWARDS ARROW WITH PLUS BELOW*/ - 0, /* U+002946: LEFTWARDS ARROW WITH PLUS BELOW*/ - 0, /* U+002947: RIGHTWARDS ARROW THROUGH X*/ - 0, /* U+002948: LEFT RIGHT ARROW THROUGH SMALL CIRCLE*/ - 0, /* U+002949: UPWARDS TWO-HEADED ARROW FROM SMALL CIRCLE*/ - 0, /* U+00294a: LEFT BARB UP RIGHT BARB DOWN HARPOON*/ - 0, /* U+00294b: LEFT BARB DOWN RIGHT BARB UP HARPOON*/ - 0, /* U+00294c: UP BARB RIGHT DOWN BARB LEFT HARPOON*/ - 0, /* U+00294d: UP BARB LEFT DOWN BARB RIGHT HARPOON*/ - 0, /* U+00294e: LEFT BARB UP RIGHT BARB UP HARPOON*/ - 0, /* U+00294f: UP BARB RIGHT DOWN BARB RIGHT HARPOON*/ - 0, /* U+002950: LEFT BARB DOWN RIGHT BARB DOWN HARPOON*/ - 0, /* U+002951: UP BARB LEFT DOWN BARB LEFT HARPOON*/ - 0, /* U+002952: LEFTWARDS HARPOON WITH BARB UP TO BAR*/ - 0, /* U+002953: RIGHTWARDS HARPOON WITH BARB UP TO BAR*/ - 0, /* U+002954: UPWARDS HARPOON WITH BARB RIGHT TO BAR*/ - 0, /* U+002955: DOWNWARDS HARPOON WITH BARB RIGHT TO BAR*/ - 0, /* U+002956: LEFTWARDS HARPOON WITH BARB DOWN TO BAR*/ - 0, /* U+002957: RIGHTWARDS HARPOON WITH BARB DOWN TO BAR*/ - 0, /* U+002958: UPWARDS HARPOON WITH BARB LEFT TO BAR*/ - 0, /* U+002959: DOWNWARDS HARPOON WITH BARB LEFT TO BAR*/ - 0, /* U+00295a: LEFTWARDS HARPOON WITH BARB UP FROM BAR*/ - 0, /* U+00295b: RIGHTWARDS HARPOON WITH BARB UP FROM BAR*/ - 0, /* U+00295c: UPWARDS HARPOON WITH BARB RIGHT FROM BAR*/ - 0, /* U+00295d: DOWNWARDS HARPOON WITH BARB RIGHT FROM BAR*/ - 0, /* U+00295e: LEFTWARDS HARPOON WITH BARB DOWN FROM BAR*/ - 0, /* U+00295f: RIGHTWARDS HARPOON WITH BARB DOWN FROM BAR*/ - 0, /* U+002960: UPWARDS HARPOON WITH BARB LEFT FROM BAR*/ - 0, /* U+002961: DOWNWARDS HARPOON WITH BARB LEFT FROM BAR*/ - 0, /* U+002962: LEFTWARDS HARPOON WITH BARB UP ABOVE LEFTWARDS HARPOON WITH BARB DOWN*/ - 0, /* U+002963: UPWARDS HARPOON WITH BARB LEFT BESIDE UPWARDS HARPOON WITH BARB RIGHT*/ - 0, /* U+002964: RIGHTWARDS HARPOON WITH BARB UP ABOVE RIGHTWARDS HARPOON WITH BARB DOWN*/ - 0, /* U+002965: DOWNWARDS HARPOON WITH BARB LEFT BESIDE DOWNWARDS HARPOON WITH BARB RIGHT*/ - 0, /* U+002966: LEFTWARDS HARPOON WITH BARB UP ABOVE RIGHTWARDS HARPOON WITH BARB UP*/ - 0, /* U+002967: LEFTWARDS HARPOON WITH BARB DOWN ABOVE RIGHTWARDS HARPOON WITH BARB DOWN*/ - 0, /* U+002968: RIGHTWARDS HARPOON WITH BARB UP ABOVE LEFTWARDS HARPOON WITH BARB UP*/ - 0, /* U+002969: RIGHTWARDS HARPOON WITH BARB DOWN ABOVE LEFTWARDS HARPOON WITH BARB DOWN*/ - 0, /* U+00296a: LEFTWARDS HARPOON WITH BARB UP ABOVE LONG DASH*/ - 0, /* U+00296b: LEFTWARDS HARPOON WITH BARB DOWN BELOW LONG DASH*/ - 0, /* U+00296c: RIGHTWARDS HARPOON WITH BARB UP ABOVE LONG DASH*/ - 0, /* U+00296d: RIGHTWARDS HARPOON WITH BARB DOWN BELOW LONG DASH*/ - 0, /* U+00296e: UPWARDS HARPOON WITH BARB LEFT BESIDE DOWNWARDS HARPOON WITH BARB RIGHT*/ - 0, /* U+00296f: DOWNWARDS HARPOON WITH BARB LEFT BESIDE UPWARDS HARPOON WITH BARB RIGHT*/ - 0, /* U+002970: RIGHT DOUBLE ARROW WITH ROUNDED HEAD*/ - 0, /* U+002971: EQUALS SIGN ABOVE RIGHTWARDS ARROW*/ - 0, /* U+002972: TILDE OPERATOR ABOVE RIGHTWARDS ARROW*/ - 0, /* U+002973: LEFTWARDS ARROW ABOVE TILDE OPERATOR*/ - 0, /* U+002974: RIGHTWARDS ARROW ABOVE TILDE OPERATOR*/ - 0, /* U+002975: RIGHTWARDS ARROW ABOVE ALMOST EQUAL TO*/ - 0, /* U+002976: LESS-THAN ABOVE LEFTWARDS ARROW*/ - 0, /* U+002977: LEFTWARDS ARROW THROUGH LESS-THAN*/ - 0, /* U+002978: GREATER-THAN ABOVE RIGHTWARDS ARROW*/ - 0, /* U+002979: SUBSET ABOVE RIGHTWARDS ARROW*/ - 0, /* U+00297a: LEFTWARDS ARROW THROUGH SUBSET*/ - 0, /* U+00297b: SUPERSET ABOVE LEFTWARDS ARROW*/ - 0, /* U+00297c: LEFT FISH TAIL*/ - 0, /* U+00297d: RIGHT FISH TAIL*/ - 0, /* U+00297e: UP FISH TAIL*/ - 0, /* U+00297f: DOWN FISH TAIL*/ - 0, /* U+002980: TRIPLE VERTICAL BAR DELIMITER*/ - 0, /* U+002981: Z NOTATION SPOT*/ - 0, /* U+002982: Z NOTATION TYPE COLON*/ - 0, /* U+002983: LEFT WHITE CURLY BRACKET*/ - 0, /* U+002984: RIGHT WHITE CURLY BRACKET*/ - 0, /* U+002985: LEFT WHITE PARENTHESIS*/ - 0, /* U+002986: RIGHT WHITE PARENTHESIS*/ - 0, /* U+002987: Z NOTATION LEFT IMAGE BRACKET*/ - 0, /* U+002988: Z NOTATION RIGHT IMAGE BRACKET*/ - 0, /* U+002989: Z NOTATION LEFT BINDING BRACKET*/ - 0, /* U+00298a: Z NOTATION RIGHT BINDING BRACKET*/ - 0, /* U+00298b: LEFT SQUARE BRACKET WITH UNDERBAR*/ - 0, /* U+00298c: RIGHT SQUARE BRACKET WITH UNDERBAR*/ - 0, /* U+00298d: LEFT SQUARE BRACKET WITH TICK IN TOP CORNER*/ - 0, /* U+00298e: RIGHT SQUARE BRACKET WITH TICK IN BOTTOM CORNER*/ - 0, /* U+00298f: LEFT SQUARE BRACKET WITH TICK IN BOTTOM CORNER*/ - 0, /* U+002990: RIGHT SQUARE BRACKET WITH TICK IN TOP CORNER*/ - 0, /* U+002991: LEFT ANGLE BRACKET WITH DOT*/ - 0, /* U+002992: RIGHT ANGLE BRACKET WITH DOT*/ - 0, /* U+002993: LEFT ARC LESS-THAN BRACKET*/ - 0, /* U+002994: RIGHT ARC GREATER-THAN BRACKET*/ - 0, /* U+002995: DOUBLE LEFT ARC GREATER-THAN BRACKET*/ - 0, /* U+002996: DOUBLE RIGHT ARC LESS-THAN BRACKET*/ - 0, /* U+002997: LEFT BLACK TORTOISE SHELL BRACKET*/ - 0, /* U+002998: RIGHT BLACK TORTOISE SHELL BRACKET*/ - 0, /* U+002999: DOTTED FENCE*/ - 0, /* U+00299a: VERTICAL ZIGZAG LINE*/ - 0, /* U+00299b: MEASURED ANGLE OPENING LEFT*/ - 0, /* U+00299c: RIGHT ANGLE VARIANT WITH SQUARE*/ - 0, /* U+00299d: MEASURED RIGHT ANGLE WITH DOT*/ - 0, /* U+00299e: ANGLE WITH S INSIDE*/ - 0, /* U+00299f: ACUTE ANGLE*/ - 0, /* U+0029a0: SPHERICAL ANGLE OPENING LEFT*/ - 0, /* U+0029a1: SPHERICAL ANGLE OPENING UP*/ - 0, /* U+0029a2: TURNED ANGLE*/ - 0, /* U+0029a3: REVERSED ANGLE*/ - 0, /* U+0029a4: ANGLE WITH UNDERBAR*/ - 0, /* U+0029a5: REVERSED ANGLE WITH UNDERBAR*/ - 0, /* U+0029a6: OBLIQUE ANGLE OPENING UP*/ - 0, /* U+0029a7: OBLIQUE ANGLE OPENING DOWN*/ - 0, /* U+0029a8: MEASURED ANGLE WITH OPEN ARM ENDING IN ARROW POINTING UP AND RIGHT*/ - 0, /* U+0029a9: MEASURED ANGLE WITH OPEN ARM ENDING IN ARROW POINTING UP AND LEFT*/ - 0, /* U+0029aa: MEASURED ANGLE WITH OPEN ARM ENDING IN ARROW POINTING DOWN AND RIGHT*/ - 0, /* U+0029ab: MEASURED ANGLE WITH OPEN ARM ENDING IN ARROW POINTING DOWN AND LEFT*/ - 0, /* U+0029ac: MEASURED ANGLE WITH OPEN ARM ENDING IN ARROW POINTING RIGHT AND UP*/ - 0, /* U+0029ad: MEASURED ANGLE WITH OPEN ARM ENDING IN ARROW POINTING LEFT AND UP*/ - 0, /* U+0029ae: MEASURED ANGLE WITH OPEN ARM ENDING IN ARROW POINTING RIGHT AND DOWN*/ - 0, /* U+0029af: MEASURED ANGLE WITH OPEN ARM ENDING IN ARROW POINTING LEFT AND DOWN*/ - 0, /* U+0029b0: REVERSED EMPTY SET*/ - 0, /* U+0029b1: EMPTY SET WITH OVERBAR*/ - 0, /* U+0029b2: EMPTY SET WITH SMALL CIRCLE ABOVE*/ - 0, /* U+0029b3: EMPTY SET WITH RIGHT ARROW ABOVE*/ - 0, /* U+0029b4: EMPTY SET WITH LEFT ARROW ABOVE*/ - 0, /* U+0029b5: CIRCLE WITH HORIZONTAL BAR*/ - 0, /* U+0029b6: CIRCLED VERTICAL BAR*/ - 0, /* U+0029b7: CIRCLED PARALLEL*/ - 0, /* U+0029b8: CIRCLED REVERSE SOLIDUS*/ - 0, /* U+0029b9: CIRCLED PERPENDICULAR*/ - 0, /* U+0029ba: CIRCLE DIVIDED BY HORIZONTAL BAR AND TOP HALF DIVIDED BY VERTICAL BAR*/ - 0, /* U+0029bb: CIRCLE WITH SUPERIMPOSED X*/ - 0, /* U+0029bc: CIRCLED ANTICLOCKWISE-ROTATED DIVISION SIGN*/ - 0, /* U+0029bd: UP ARROW THROUGH CIRCLE*/ - 0, /* U+0029be: CIRCLED WHITE BULLET*/ - 0, /* U+0029bf: CIRCLED BULLET*/ - 0, /* U+0029c0: CIRCLED LESS-THAN*/ - 0, /* U+0029c1: CIRCLED GREATER-THAN*/ - 0, /* U+0029c2: CIRCLE WITH SMALL CIRCLE TO THE RIGHT*/ - 0, /* U+0029c3: CIRCLE WITH TWO HORIZONTAL STROKES TO THE RIGHT*/ - 0, /* U+0029c4: SQUARED RISING DIAGONAL SLASH*/ - 0, /* U+0029c5: SQUARED FALLING DIAGONAL SLASH*/ - 0, /* U+0029c6: SQUARED ASTERISK*/ - 0, /* U+0029c7: SQUARED SMALL CIRCLE*/ - 0, /* U+0029c8: SQUARED SQUARE*/ - 0, /* U+0029c9: TWO JOINED SQUARES*/ - 0, /* U+0029ca: TRIANGLE WITH DOT ABOVE*/ - 0, /* U+0029cb: TRIANGLE WITH UNDERBAR*/ - 0, /* U+0029cc: S IN TRIANGLE*/ - 0, /* U+0029cd: TRIANGLE WITH SERIFS AT BOTTOM*/ - 0, /* U+0029ce: RIGHT TRIANGLE ABOVE LEFT TRIANGLE*/ - 0, /* U+0029cf: LEFT TRIANGLE BESIDE VERTICAL BAR*/ - 0, /* U+0029d0: VERTICAL BAR BESIDE RIGHT TRIANGLE*/ - 0, /* U+0029d1: BOWTIE WITH LEFT HALF BLACK*/ - 0, /* U+0029d2: BOWTIE WITH RIGHT HALF BLACK*/ - 0, /* U+0029d3: BLACK BOWTIE*/ - 0, /* U+0029d4: TIMES WITH LEFT HALF BLACK*/ - 0, /* U+0029d5: TIMES WITH RIGHT HALF BLACK*/ - 0, /* U+0029d6: WHITE HOURGLASS*/ - 0, /* U+0029d7: BLACK HOURGLASS*/ - 0, /* U+0029d8: LEFT WIGGLY FENCE*/ - 0, /* U+0029d9: RIGHT WIGGLY FENCE*/ - 0, /* U+0029da: LEFT DOUBLE WIGGLY FENCE*/ - 0, /* U+0029db: RIGHT DOUBLE WIGGLY FENCE*/ - 0, /* U+0029dc: INCOMPLETE INFINITY*/ - 0, /* U+0029dd: TIE OVER INFINITY*/ - 0, /* U+0029de: INFINITY NEGATED WITH VERTICAL BAR*/ - 0, /* U+0029df: DOUBLE-ENDED MULTIMAP*/ - 0, /* U+0029e0: SQUARE WITH CONTOURED OUTLINE*/ - 0, /* U+0029e1: INCREASES AS*/ - 0, /* U+0029e2: SHUFFLE PRODUCT*/ - 0, /* U+0029e3: EQUALS SIGN AND SLANTED PARALLEL*/ - 0, /* U+0029e4: EQUALS SIGN AND SLANTED PARALLEL WITH TILDE ABOVE*/ - 0, /* U+0029e5: IDENTICAL TO AND SLANTED PARALLEL*/ - 0, /* U+0029e6: GLEICH STARK*/ - 0, /* U+0029e7: THERMODYNAMIC*/ - 0, /* U+0029e8: DOWN-POINTING TRIANGLE WITH LEFT HALF BLACK*/ - 0, /* U+0029e9: DOWN-POINTING TRIANGLE WITH RIGHT HALF BLACK*/ - 0, /* U+0029ea: BLACK DIAMOND WITH DOWN ARROW*/ - 0, /* U+0029eb: BLACK LOZENGE*/ - 0, /* U+0029ec: WHITE CIRCLE WITH DOWN ARROW*/ - 0, /* U+0029ed: BLACK CIRCLE WITH DOWN ARROW*/ - 0, /* U+0029ee: ERROR-BARRED WHITE SQUARE*/ - 0, /* U+0029ef: ERROR-BARRED BLACK SQUARE*/ - 0, /* U+0029f0: ERROR-BARRED WHITE DIAMOND*/ - 0, /* U+0029f1: ERROR-BARRED BLACK DIAMOND*/ - 0, /* U+0029f2: ERROR-BARRED WHITE CIRCLE*/ - 0, /* U+0029f3: ERROR-BARRED BLACK CIRCLE*/ - 0, /* U+0029f4: RULE-DELAYED*/ - 0, /* U+0029f5: REVERSE SOLIDUS OPERATOR*/ - 0, /* U+0029f6: SOLIDUS WITH OVERBAR*/ - 0, /* U+0029f7: REVERSE SOLIDUS WITH HORIZONTAL STROKE*/ - 0, /* U+0029f8: BIG SOLIDUS*/ - 0, /* U+0029f9: BIG REVERSE SOLIDUS*/ - 0, /* U+0029fa: DOUBLE PLUS*/ - 0, /* U+0029fb: TRIPLE PLUS*/ - 0, /* U+0029fc: LEFT-POINTING CURVED ANGLE BRACKET*/ - 0, /* U+0029fd: RIGHT-POINTING CURVED ANGLE BRACKET*/ - 0, /* U+0029fe: TINY*/ - 0, /* U+0029ff: MINY*/ - 0, /* U+002a00: N-ARY CIRCLED DOT OPERATOR*/ - 0, /* U+002a01: N-ARY CIRCLED PLUS OPERATOR*/ - 0, /* U+002a02: N-ARY CIRCLED TIMES OPERATOR*/ - 0, /* U+002a03: N-ARY UNION OPERATOR WITH DOT*/ - 0, /* U+002a04: N-ARY UNION OPERATOR WITH PLUS*/ - 0, /* U+002a05: N-ARY SQUARE INTERSECTION OPERATOR*/ - 0, /* U+002a06: N-ARY SQUARE UNION OPERATOR*/ - 0, /* U+002a07: TWO LOGICAL AND OPERATOR*/ - 0, /* U+002a08: TWO LOGICAL OR OPERATOR*/ - 0, /* U+002a09: N-ARY TIMES OPERATOR*/ - 0, /* U+002a0a: MODULO TWO SUM*/ - 0, /* U+002a0b: SUMMATION WITH INTEGRAL*/ - 0, /* U+002a0c: QUADRUPLE INTEGRAL OPERATOR*/ - 0, /* U+002a0d: FINITE PART INTEGRAL*/ - 0, /* U+002a0e: INTEGRAL WITH DOUBLE STROKE*/ - 0, /* U+002a0f: INTEGRAL AVERAGE WITH SLASH*/ - 0, /* U+002a10: CIRCULATION FUNCTION*/ - 0, /* U+002a11: ANTICLOCKWISE INTEGRATION*/ - 0, /* U+002a12: LINE INTEGRATION WITH RECTANGULAR PATH AROUND POLE*/ - 0, /* U+002a13: LINE INTEGRATION WITH SEMICIRCULAR PATH AROUND POLE*/ - 0, /* U+002a14: LINE INTEGRATION NOT INCLUDING THE POLE*/ - 0, /* U+002a15: INTEGRAL AROUND A POINT OPERATOR*/ - 0, /* U+002a16: QUATERNION INTEGRAL OPERATOR*/ - 0, /* U+002a17: INTEGRAL WITH LEFTWARDS ARROW WITH HOOK*/ - 0, /* U+002a18: INTEGRAL WITH TIMES SIGN*/ - 0, /* U+002a19: INTEGRAL WITH INTERSECTION*/ - 0, /* U+002a1a: INTEGRAL WITH UNION*/ - 0, /* U+002a1b: INTEGRAL WITH OVERBAR*/ - 0, /* U+002a1c: INTEGRAL WITH UNDERBAR*/ - 0, /* U+002a1d: JOIN*/ - 0, /* U+002a1e: LARGE LEFT TRIANGLE OPERATOR*/ - 0, /* U+002a1f: Z NOTATION SCHEMA COMPOSITION*/ - 0, /* U+002a20: Z NOTATION SCHEMA PIPING*/ - 0, /* U+002a21: Z NOTATION SCHEMA PROJECTION*/ - 0, /* U+002a22: PLUS SIGN WITH SMALL CIRCLE ABOVE*/ - 0, /* U+002a23: PLUS SIGN WITH CIRCUMFLEX ACCENT ABOVE*/ - 0, /* U+002a24: PLUS SIGN WITH TILDE ABOVE*/ - 0, /* U+002a25: PLUS SIGN WITH DOT BELOW*/ - 0, /* U+002a26: PLUS SIGN WITH TILDE BELOW*/ - 0, /* U+002a27: PLUS SIGN WITH SUBSCRIPT TWO*/ - 0, /* U+002a28: PLUS SIGN WITH BLACK TRIANGLE*/ - 0, /* U+002a29: MINUS SIGN WITH COMMA ABOVE*/ - 0, /* U+002a2a: MINUS SIGN WITH DOT BELOW*/ - 0, /* U+002a2b: MINUS SIGN WITH FALLING DOTS*/ - 0, /* U+002a2c: MINUS SIGN WITH RISING DOTS*/ - 0, /* U+002a2d: PLUS SIGN IN LEFT HALF CIRCLE*/ - 0, /* U+002a2e: PLUS SIGN IN RIGHT HALF CIRCLE*/ - 0, /* U+002a2f: VECTOR OR CROSS PRODUCT*/ - 0, /* U+002a30: MULTIPLICATION SIGN WITH DOT ABOVE*/ - 0, /* U+002a31: MULTIPLICATION SIGN WITH UNDERBAR*/ - 0, /* U+002a32: SEMIDIRECT PRODUCT WITH BOTTOM CLOSED*/ - 0, /* U+002a33: SMASH PRODUCT*/ - 0, /* U+002a34: MULTIPLICATION SIGN IN LEFT HALF CIRCLE*/ - 0, /* U+002a35: MULTIPLICATION SIGN IN RIGHT HALF CIRCLE*/ - 0, /* U+002a36: CIRCLED MULTIPLICATION SIGN WITH CIRCUMFLEX ACCENT*/ - 0, /* U+002a37: MULTIPLICATION SIGN IN DOUBLE CIRCLE*/ - 0, /* U+002a38: CIRCLED DIVISION SIGN*/ - 0, /* U+002a39: PLUS SIGN IN TRIANGLE*/ - 0, /* U+002a3a: MINUS SIGN IN TRIANGLE*/ - 0, /* U+002a3b: MULTIPLICATION SIGN IN TRIANGLE*/ - 0, /* U+002a3c: INTERIOR PRODUCT*/ - 0, /* U+002a3d: RIGHTHAND INTERIOR PRODUCT*/ - 0, /* U+002a3e: Z NOTATION RELATIONAL COMPOSITION*/ - 0, /* U+002a3f: AMALGAMATION OR COPRODUCT*/ - 0, /* U+002a40: INTERSECTION WITH DOT*/ - 0, /* U+002a41: UNION WITH MINUS SIGN*/ - 0, /* U+002a42: UNION WITH OVERBAR*/ - 0, /* U+002a43: INTERSECTION WITH OVERBAR*/ - 0, /* U+002a44: INTERSECTION WITH LOGICAL AND*/ - 0, /* U+002a45: UNION WITH LOGICAL OR*/ - 0, /* U+002a46: UNION ABOVE INTERSECTION*/ - 0, /* U+002a47: INTERSECTION ABOVE UNION*/ - 0, /* U+002a48: UNION ABOVE BAR ABOVE INTERSECTION*/ - 0, /* U+002a49: INTERSECTION ABOVE BAR ABOVE UNION*/ - 0, /* U+002a4a: UNION BESIDE AND JOINED WITH UNION*/ - 0, /* U+002a4b: INTERSECTION BESIDE AND JOINED WITH INTERSECTION*/ - 0, /* U+002a4c: CLOSED UNION WITH SERIFS*/ - 0, /* U+002a4d: CLOSED INTERSECTION WITH SERIFS*/ - 0, /* U+002a4e: DOUBLE SQUARE INTERSECTION*/ - 0, /* U+002a4f: DOUBLE SQUARE UNION*/ - 0, /* U+002a50: CLOSED UNION WITH SERIFS AND SMASH PRODUCT*/ - 0, /* U+002a51: LOGICAL AND WITH DOT ABOVE*/ - 0, /* U+002a52: LOGICAL OR WITH DOT ABOVE*/ - 0, /* U+002a53: DOUBLE LOGICAL AND*/ - 0, /* U+002a54: DOUBLE LOGICAL OR*/ - 0, /* U+002a55: TWO INTERSECTING LOGICAL AND*/ - 0, /* U+002a56: TWO INTERSECTING LOGICAL OR*/ - 0, /* U+002a57: SLOPING LARGE OR*/ - 0, /* U+002a58: SLOPING LARGE AND*/ - 0, /* U+002a59: LOGICAL OR OVERLAPPING LOGICAL AND*/ - 0, /* U+002a5a: LOGICAL AND WITH MIDDLE STEM*/ - 0, /* U+002a5b: LOGICAL OR WITH MIDDLE STEM*/ - 0, /* U+002a5c: LOGICAL AND WITH HORIZONTAL DASH*/ - 0, /* U+002a5d: LOGICAL OR WITH HORIZONTAL DASH*/ - 0, /* U+002a5e: LOGICAL AND WITH DOUBLE OVERBAR*/ - 0, /* U+002a5f: LOGICAL AND WITH UNDERBAR*/ - 0, /* U+002a60: LOGICAL AND WITH DOUBLE UNDERBAR*/ - 0, /* U+002a61: SMALL VEE WITH UNDERBAR*/ - 0, /* U+002a62: LOGICAL OR WITH DOUBLE OVERBAR*/ - 0, /* U+002a63: LOGICAL OR WITH DOUBLE UNDERBAR*/ - 0, /* U+002a64: Z NOTATION DOMAIN ANTIRESTRICTION*/ - 0, /* U+002a65: Z NOTATION RANGE ANTIRESTRICTION*/ - 0, /* U+002a66: EQUALS SIGN WITH DOT BELOW*/ - 0, /* U+002a67: IDENTICAL WITH DOT ABOVE*/ - 0, /* U+002a68: TRIPLE HORIZONTAL BAR WITH DOUBLE VERTICAL STROKE*/ - 0, /* U+002a69: TRIPLE HORIZONTAL BAR WITH TRIPLE VERTICAL STROKE*/ - 0, /* U+002a6a: TILDE OPERATOR WITH DOT ABOVE*/ - 0, /* U+002a6b: TILDE OPERATOR WITH RISING DOTS*/ - 0, /* U+002a6c: SIMILAR MINUS SIMILAR*/ - 0, /* U+002a6d: CONGRUENT WITH DOT ABOVE*/ - 0, /* U+002a6e: EQUALS WITH ASTERISK*/ - 0, /* U+002a6f: ALMOST EQUAL TO WITH CIRCUMFLEX ACCENT*/ - 0, /* U+002a70: APPROXIMATELY EQUAL OR EQUAL TO*/ - 0, /* U+002a71: EQUALS SIGN ABOVE PLUS SIGN*/ - 0, /* U+002a72: PLUS SIGN ABOVE EQUALS SIGN*/ - 0, /* U+002a73: EQUALS SIGN ABOVE TILDE OPERATOR*/ - 0, /* U+002a74: DOUBLE COLON EQUAL*/ - 0, /* U+002a75: TWO CONSECUTIVE EQUALS SIGNS*/ - 0, /* U+002a76: THREE CONSECUTIVE EQUALS SIGNS*/ - 0, /* U+002a77: EQUALS SIGN WITH TWO DOTS ABOVE AND TWO DOTS BELOW*/ - 0, /* U+002a78: EQUIVALENT WITH FOUR DOTS ABOVE*/ - 0, /* U+002a79: LESS-THAN WITH CIRCLE INSIDE*/ - 0, /* U+002a7a: GREATER-THAN WITH CIRCLE INSIDE*/ - 0, /* U+002a7b: LESS-THAN WITH QUESTION MARK ABOVE*/ - 0, /* U+002a7c: GREATER-THAN WITH QUESTION MARK ABOVE*/ - 0, /* U+002a7d: LESS-THAN OR SLANTED EQUAL TO*/ - 0, /* U+002a7e: GREATER-THAN OR SLANTED EQUAL TO*/ - 0, /* U+002a7f: LESS-THAN OR SLANTED EQUAL TO WITH DOT INSIDE*/ - 0, /* U+002a80: GREATER-THAN OR SLANTED EQUAL TO WITH DOT INSIDE*/ - 0, /* U+002a81: LESS-THAN OR SLANTED EQUAL TO WITH DOT ABOVE*/ - 0, /* U+002a82: GREATER-THAN OR SLANTED EQUAL TO WITH DOT ABOVE*/ - 0, /* U+002a83: LESS-THAN OR SLANTED EQUAL TO WITH DOT ABOVE RIGHT*/ - 0, /* U+002a84: GREATER-THAN OR SLANTED EQUAL TO WITH DOT ABOVE LEFT*/ - 0, /* U+002a85: LESS-THAN OR APPROXIMATE*/ - 0, /* U+002a86: GREATER-THAN OR APPROXIMATE*/ - 0, /* U+002a87: LESS-THAN AND SINGLE-LINE NOT EQUAL TO*/ - 0, /* U+002a88: GREATER-THAN AND SINGLE-LINE NOT EQUAL TO*/ - 0, /* U+002a89: LESS-THAN AND NOT APPROXIMATE*/ - 0, /* U+002a8a: GREATER-THAN AND NOT APPROXIMATE*/ - 0, /* U+002a8b: LESS-THAN ABOVE DOUBLE-LINE EQUAL ABOVE GREATER-THAN*/ - 0, /* U+002a8c: GREATER-THAN ABOVE DOUBLE-LINE EQUAL ABOVE LESS-THAN*/ - 0, /* U+002a8d: LESS-THAN ABOVE SIMILAR OR EQUAL*/ - 0, /* U+002a8e: GREATER-THAN ABOVE SIMILAR OR EQUAL*/ - 0, /* U+002a8f: LESS-THAN ABOVE SIMILAR ABOVE GREATER-THAN*/ - 0, /* U+002a90: GREATER-THAN ABOVE SIMILAR ABOVE LESS-THAN*/ - 0, /* U+002a91: LESS-THAN ABOVE GREATER-THAN ABOVE DOUBLE-LINE EQUAL*/ - 0, /* U+002a92: GREATER-THAN ABOVE LESS-THAN ABOVE DOUBLE-LINE EQUAL*/ - 0, /* U+002a93: LESS-THAN ABOVE SLANTED EQUAL ABOVE GREATER-THAN ABOVE SLANTED EQUAL*/ - 0, /* U+002a94: GREATER-THAN ABOVE SLANTED EQUAL ABOVE LESS-THAN ABOVE SLANTED EQUAL*/ - 0, /* U+002a95: SLANTED EQUAL TO OR LESS-THAN*/ - 0, /* U+002a96: SLANTED EQUAL TO OR GREATER-THAN*/ - 0, /* U+002a97: SLANTED EQUAL TO OR LESS-THAN WITH DOT INSIDE*/ - 0, /* U+002a98: SLANTED EQUAL TO OR GREATER-THAN WITH DOT INSIDE*/ - 0, /* U+002a99: DOUBLE-LINE EQUAL TO OR LESS-THAN*/ - 0, /* U+002a9a: DOUBLE-LINE EQUAL TO OR GREATER-THAN*/ - 0, /* U+002a9b: DOUBLE-LINE SLANTED EQUAL TO OR LESS-THAN*/ - 0, /* U+002a9c: DOUBLE-LINE SLANTED EQUAL TO OR GREATER-THAN*/ - 0, /* U+002a9d: SIMILAR OR LESS-THAN*/ - 0, /* U+002a9e: SIMILAR OR GREATER-THAN*/ - 0, /* U+002a9f: SIMILAR ABOVE LESS-THAN ABOVE EQUALS SIGN*/ - 0, /* U+002aa0: SIMILAR ABOVE GREATER-THAN ABOVE EQUALS SIGN*/ - 0, /* U+002aa1: DOUBLE NESTED LESS-THAN*/ - 0, /* U+002aa2: DOUBLE NESTED GREATER-THAN*/ - 0, /* U+002aa3: DOUBLE NESTED LESS-THAN WITH UNDERBAR*/ - 0, /* U+002aa4: GREATER-THAN OVERLAPPING LESS-THAN*/ - 0, /* U+002aa5: GREATER-THAN BESIDE LESS-THAN*/ - 0, /* U+002aa6: LESS-THAN CLOSED BY CURVE*/ - 0, /* U+002aa7: GREATER-THAN CLOSED BY CURVE*/ - 0, /* U+002aa8: LESS-THAN CLOSED BY CURVE ABOVE SLANTED EQUAL*/ - 0, /* U+002aa9: GREATER-THAN CLOSED BY CURVE ABOVE SLANTED EQUAL*/ - 0, /* U+002aaa: SMALLER THAN*/ - 0, /* U+002aab: LARGER THAN*/ - 0, /* U+002aac: SMALLER THAN OR EQUAL TO*/ - 0, /* U+002aad: LARGER THAN OR EQUAL TO*/ - 0, /* U+002aae: EQUALS SIGN WITH BUMPY ABOVE*/ - 0, /* U+002aaf: PRECEDES ABOVE SINGLE-LINE EQUALS SIGN*/ - 0, /* U+002ab0: SUCCEEDS ABOVE SINGLE-LINE EQUALS SIGN*/ - 0, /* U+002ab1: PRECEDES ABOVE SINGLE-LINE NOT EQUAL TO*/ - 0, /* U+002ab2: SUCCEEDS ABOVE SINGLE-LINE NOT EQUAL TO*/ - 0, /* U+002ab3: PRECEDES ABOVE EQUALS SIGN*/ - 0, /* U+002ab4: SUCCEEDS ABOVE EQUALS SIGN*/ - 0, /* U+002ab5: PRECEDES ABOVE NOT EQUAL TO*/ - 0, /* U+002ab6: SUCCEEDS ABOVE NOT EQUAL TO*/ - 0, /* U+002ab7: PRECEDES ABOVE ALMOST EQUAL TO*/ - 0, /* U+002ab8: SUCCEEDS ABOVE ALMOST EQUAL TO*/ - 0, /* U+002ab9: PRECEDES ABOVE NOT ALMOST EQUAL TO*/ - 0, /* U+002aba: SUCCEEDS ABOVE NOT ALMOST EQUAL TO*/ - 0, /* U+002abb: DOUBLE PRECEDES*/ - 0, /* U+002abc: DOUBLE SUCCEEDS*/ - 0, /* U+002abd: SUBSET WITH DOT*/ - 0, /* U+002abe: SUPERSET WITH DOT*/ - 0, /* U+002abf: SUBSET WITH PLUS SIGN BELOW*/ - 0, /* U+002ac0: SUPERSET WITH PLUS SIGN BELOW*/ - 0, /* U+002ac1: SUBSET WITH MULTIPLICATION SIGN BELOW*/ - 0, /* U+002ac2: SUPERSET WITH MULTIPLICATION SIGN BELOW*/ - 0, /* U+002ac3: SUBSET OF OR EQUAL TO WITH DOT ABOVE*/ - 0, /* U+002ac4: SUPERSET OF OR EQUAL TO WITH DOT ABOVE*/ - 0, /* U+002ac5: SUBSET OF ABOVE EQUALS SIGN*/ - 0, /* U+002ac6: SUPERSET OF ABOVE EQUALS SIGN*/ - 0, /* U+002ac7: SUBSET OF ABOVE TILDE OPERATOR*/ - 0, /* U+002ac8: SUPERSET OF ABOVE TILDE OPERATOR*/ - 0, /* U+002ac9: SUBSET OF ABOVE ALMOST EQUAL TO*/ - 0, /* U+002aca: SUPERSET OF ABOVE ALMOST EQUAL TO*/ - 0, /* U+002acb: SUBSET OF ABOVE NOT EQUAL TO*/ - 0, /* U+002acc: SUPERSET OF ABOVE NOT EQUAL TO*/ - 0, /* U+002acd: SQUARE LEFT OPEN BOX OPERATOR*/ - 0, /* U+002ace: SQUARE RIGHT OPEN BOX OPERATOR*/ - 0, /* U+002acf: CLOSED SUBSET*/ - 0, /* U+002ad0: CLOSED SUPERSET*/ - 0, /* U+002ad1: CLOSED SUBSET OR EQUAL TO*/ - 0, /* U+002ad2: CLOSED SUPERSET OR EQUAL TO*/ - 0, /* U+002ad3: SUBSET ABOVE SUPERSET*/ - 0, /* U+002ad4: SUPERSET ABOVE SUBSET*/ - 0, /* U+002ad5: SUBSET ABOVE SUBSET*/ - 0, /* U+002ad6: SUPERSET ABOVE SUPERSET*/ - 0, /* U+002ad7: SUPERSET BESIDE SUBSET*/ - 0, /* U+002ad8: SUPERSET BESIDE AND JOINED BY DASH WITH SUBSET*/ - 0, /* U+002ad9: ELEMENT OF OPENING DOWNWARDS*/ - 0, /* U+002ada: PITCHFORK WITH TEE TOP*/ - 0, /* U+002adb: TRANSVERSAL INTERSECTION*/ - 0, /* U+002adc: FORKING*/ - 0, /* U+002add: NONFORKING*/ - 0, /* U+002ade: SHORT LEFT TACK*/ - 0, /* U+002adf: SHORT DOWN TACK*/ - 0, /* U+002ae0: SHORT UP TACK*/ - 0, /* U+002ae1: PERPENDICULAR WITH S*/ - 0, /* U+002ae2: VERTICAL BAR TRIPLE RIGHT TURNSTILE*/ - 0, /* U+002ae3: DOUBLE VERTICAL BAR LEFT TURNSTILE*/ - 0, /* U+002ae4: VERTICAL BAR DOUBLE LEFT TURNSTILE*/ - 0, /* U+002ae5: DOUBLE VERTICAL BAR DOUBLE LEFT TURNSTILE*/ - 0, /* U+002ae6: LONG DASH FROM LEFT MEMBER OF DOUBLE VERTICAL*/ - 0, /* U+002ae7: SHORT DOWN TACK WITH OVERBAR*/ - 0, /* U+002ae8: SHORT UP TACK WITH UNDERBAR*/ - 0, /* U+002ae9: SHORT UP TACK ABOVE SHORT DOWN TACK*/ - 0, /* U+002aea: DOUBLE DOWN TACK*/ - 0, /* U+002aeb: DOUBLE UP TACK*/ - 0, /* U+002aec: DOUBLE STROKE NOT SIGN*/ - 0, /* U+002aed: REVERSED DOUBLE STROKE NOT SIGN*/ - 0, /* U+002aee: DOES NOT DIVIDE WITH REVERSED NEGATION SLASH*/ - 0, /* U+002aef: VERTICAL LINE WITH CIRCLE ABOVE*/ - 0, /* U+002af0: VERTICAL LINE WITH CIRCLE BELOW*/ - 0, /* U+002af1: DOWN TACK WITH CIRCLE BELOW*/ - 0, /* U+002af2: PARALLEL WITH HORIZONTAL STROKE*/ - 0, /* U+002af3: PARALLEL WITH TILDE OPERATOR*/ - 0, /* U+002af4: TRIPLE VERTICAL BAR BINARY RELATION*/ - 0, /* U+002af5: TRIPLE VERTICAL BAR WITH HORIZONTAL STROKE*/ - 0, /* U+002af6: TRIPLE COLON OPERATOR*/ - 0, /* U+002af7: TRIPLE NESTED LESS-THAN*/ - 0, /* U+002af8: TRIPLE NESTED GREATER-THAN*/ - 0, /* U+002af9: DOUBLE-LINE SLANTED LESS-THAN OR EQUAL TO*/ - 0, /* U+002afa: DOUBLE-LINE SLANTED GREATER-THAN OR EQUAL TO*/ - 0, /* U+002afb: TRIPLE SOLIDUS BINARY RELATION*/ - 0, /* U+002afc: LARGE TRIPLE VERTICAL BAR OPERATOR*/ - 0, /* U+002afd: DOUBLE SOLIDUS OPERATOR*/ - 0, /* U+002afe: WHITE VERTICAL BAR*/ - 0, /* U+002aff: N-ARY WHITE VERTICAL BAR*/ - 0, /* U+002b00: NORTH EAST WHITE ARROW*/ - 0, /* U+002b01: NORTH WEST WHITE ARROW*/ - 0, /* U+002b02: SOUTH EAST WHITE ARROW*/ - 0, /* U+002b03: SOUTH WEST WHITE ARROW*/ - 0, /* U+002b04: LEFT RIGHT WHITE ARROW*/ - 0, /* U+002b05: LEFTWARDS BLACK ARROW*/ - 0, /* U+002b06: UPWARDS BLACK ARROW*/ - 0, /* U+002b07: DOWNWARDS BLACK ARROW*/ - 0, /* U+002b08: NORTH EAST BLACK ARROW*/ - 0, /* U+002b09: NORTH WEST BLACK ARROW*/ - 0, /* U+002b0a: SOUTH EAST BLACK ARROW*/ - 0, /* U+002b0b: SOUTH WEST BLACK ARROW*/ - 0, /* U+002b0c: LEFT RIGHT BLACK ARROW*/ - 0, /* U+002b0d: UP DOWN BLACK ARROW*/ - 0, /* U+002b0e: RIGHTWARDS ARROW WITH TIP DOWNWARDS*/ - 0, /* U+002b0f: RIGHTWARDS ARROW WITH TIP UPWARDS*/ - 0, /* U+002b10: LEFTWARDS ARROW WITH TIP DOWNWARDS*/ - 0, /* U+002b11: LEFTWARDS ARROW WITH TIP UPWARDS*/ - 0, /* U+002b12: SQUARE WITH TOP HALF BLACK*/ - 0, /* U+002b13: SQUARE WITH BOTTOM HALF BLACK*/ - 0, /* U+002b14: */ - 0, /* U+002b15: */ - 0, /* U+002b16: */ - 0, /* U+002b17: */ - 0, /* U+002b18: */ - 0, /* U+002b19: */ - 0, /* U+002b1a: */ - 0, /* U+002b1b: */ - 0, /* U+002b1c: */ - 0, /* U+002b1d: */ - 0, /* U+002b1e: */ - 0, /* U+002b1f: */ - 0, /* U+002b20: */ - 0, /* U+002b21: */ - 0, /* U+002b22: */ - 0, /* U+002b23: */ - 0, /* U+002b24: */ - 0, /* U+002b25: */ - 0, /* U+002b26: */ - 0, /* U+002b27: */ - 0, /* U+002b28: */ - 0, /* U+002b29: */ - 0, /* U+002b2a: */ - 0, /* U+002b2b: */ - 0, /* U+002b2c: */ - 0, /* U+002b2d: */ - 0, /* U+002b2e: */ - 0, /* U+002b2f: */ - 0, /* U+002b30: */ - 0, /* U+002b31: */ - 0, /* U+002b32: */ - 0, /* U+002b33: */ - 0, /* U+002b34: */ - 0, /* U+002b35: */ - 0, /* U+002b36: */ - 0, /* U+002b37: */ - 0, /* U+002b38: */ - 0, /* U+002b39: */ - 0, /* U+002b3a: */ - 0, /* U+002b3b: */ - 0, /* U+002b3c: */ - 0, /* U+002b3d: */ - 0, /* U+002b3e: */ - 0, /* U+002b3f: */ - 0, /* U+002b40: */ - 0, /* U+002b41: */ - 0, /* U+002b42: */ - 0, /* U+002b43: */ - 0, /* U+002b44: */ - 0, /* U+002b45: */ - 0, /* U+002b46: */ - 0, /* U+002b47: */ - 0, /* U+002b48: */ - 0, /* U+002b49: */ - 0, /* U+002b4a: */ - 0, /* U+002b4b: */ - 0, /* U+002b4c: */ - 0, /* U+002b4d: */ - 0, /* U+002b4e: */ - 0, /* U+002b4f: */ - 0, /* U+002b50: */ - 0, /* U+002b51: */ - 0, /* U+002b52: */ - 0, /* U+002b53: */ - 0, /* U+002b54: */ - 0, /* U+002b55: */ - 0, /* U+002b56: */ - 0, /* U+002b57: */ - 0, /* U+002b58: */ - 0, /* U+002b59: */ - 0, /* U+002b5a: */ - 0, /* U+002b5b: */ - 0, /* U+002b5c: */ - 0, /* U+002b5d: */ - 0, /* U+002b5e: */ - 0, /* U+002b5f: */ - 0, /* U+002b60: */ - 0, /* U+002b61: */ - 0, /* U+002b62: */ - 0, /* U+002b63: */ - 0, /* U+002b64: */ - 0, /* U+002b65: */ - 0, /* U+002b66: */ - 0, /* U+002b67: */ - 0, /* U+002b68: */ - 0, /* U+002b69: */ - 0, /* U+002b6a: */ - 0, /* U+002b6b: */ - 0, /* U+002b6c: */ - 0, /* U+002b6d: */ - 0, /* U+002b6e: */ - 0, /* U+002b6f: */ - 0, /* U+002b70: */ - 0, /* U+002b71: */ - 0, /* U+002b72: */ - 0, /* U+002b73: */ - 0, /* U+002b74: */ - 0, /* U+002b75: */ - 0, /* U+002b76: */ - 0, /* U+002b77: */ - 0, /* U+002b78: */ - 0, /* U+002b79: */ - 0, /* U+002b7a: */ - 0, /* U+002b7b: */ - 0, /* U+002b7c: */ - 0, /* U+002b7d: */ - 0, /* U+002b7e: */ - 0, /* U+002b7f: */ - 0, /* U+002b80: */ - 0, /* U+002b81: */ - 0, /* U+002b82: */ - 0, /* U+002b83: */ - 0, /* U+002b84: */ - 0, /* U+002b85: */ - 0, /* U+002b86: */ - 0, /* U+002b87: */ - 0, /* U+002b88: */ - 0, /* U+002b89: */ - 0, /* U+002b8a: */ - 0, /* U+002b8b: */ - 0, /* U+002b8c: */ - 0, /* U+002b8d: */ - 0, /* U+002b8e: */ - 0, /* U+002b8f: */ - 0, /* U+002b90: */ - 0, /* U+002b91: */ - 0, /* U+002b92: */ - 0, /* U+002b93: */ - 0, /* U+002b94: */ - 0, /* U+002b95: */ - 0, /* U+002b96: */ - 0, /* U+002b97: */ - 0, /* U+002b98: */ - 0, /* U+002b99: */ - 0, /* U+002b9a: */ - 0, /* U+002b9b: */ - 0, /* U+002b9c: */ - 0, /* U+002b9d: */ - 0, /* U+002b9e: */ - 0, /* U+002b9f: */ - 0, /* U+002ba0: */ - 0, /* U+002ba1: */ - 0, /* U+002ba2: */ - 0, /* U+002ba3: */ - 0, /* U+002ba4: */ - 0, /* U+002ba5: */ - 0, /* U+002ba6: */ - 0, /* U+002ba7: */ - 0, /* U+002ba8: */ - 0, /* U+002ba9: */ - 0, /* U+002baa: */ - 0, /* U+002bab: */ - 0, /* U+002bac: */ - 0, /* U+002bad: */ - 0, /* U+002bae: */ - 0, /* U+002baf: */ - 0, /* U+002bb0: */ - 0, /* U+002bb1: */ - 0, /* U+002bb2: */ - 0, /* U+002bb3: */ - 0, /* U+002bb4: */ - 0, /* U+002bb5: */ - 0, /* U+002bb6: */ - 0, /* U+002bb7: */ - 0, /* U+002bb8: */ - 0, /* U+002bb9: */ - 0, /* U+002bba: */ - 0, /* U+002bbb: */ - 0, /* U+002bbc: */ - 0, /* U+002bbd: */ - 0, /* U+002bbe: */ - 0, /* U+002bbf: */ - 0, /* U+002bc0: */ - 0, /* U+002bc1: */ - 0, /* U+002bc2: */ - 0, /* U+002bc3: */ - 0, /* U+002bc4: */ - 0, /* U+002bc5: */ - 0, /* U+002bc6: */ - 0, /* U+002bc7: */ - 0, /* U+002bc8: */ - 0, /* U+002bc9: */ - 0, /* U+002bca: */ - 0, /* U+002bcb: */ - 0, /* U+002bcc: */ - 0, /* U+002bcd: */ - 0, /* U+002bce: */ - 0, /* U+002bcf: */ - 0, /* U+002bd0: */ - 0, /* U+002bd1: */ - 0, /* U+002bd2: */ - 0, /* U+002bd3: */ - 0, /* U+002bd4: */ - 0, /* U+002bd5: */ - 0, /* U+002bd6: */ - 0, /* U+002bd7: */ - 0, /* U+002bd8: */ - 0, /* U+002bd9: */ - 0, /* U+002bda: */ - 0, /* U+002bdb: */ - 0, /* U+002bdc: */ - 0, /* U+002bdd: */ - 0, /* U+002bde: */ - 0, /* U+002bdf: */ - 0, /* U+002be0: */ - 0, /* U+002be1: */ - 0, /* U+002be2: */ - 0, /* U+002be3: */ - 0, /* U+002be4: */ - 0, /* U+002be5: */ - 0, /* U+002be6: */ - 0, /* U+002be7: */ - 0, /* U+002be8: */ - 0, /* U+002be9: */ - 0, /* U+002bea: */ - 0, /* U+002beb: */ - 0, /* U+002bec: */ - 0, /* U+002bed: */ - 0, /* U+002bee: */ - 0, /* U+002bef: */ - 0, /* U+002bf0: */ - 0, /* U+002bf1: */ - 0, /* U+002bf2: */ - 0, /* U+002bf3: */ - 0, /* U+002bf4: */ - 0, /* U+002bf5: */ - 0, /* U+002bf6: */ - 0, /* U+002bf7: */ - 0, /* U+002bf8: */ - 0, /* U+002bf9: */ - 0, /* U+002bfa: */ - 0, /* U+002bfb: */ - 0, /* U+002bfc: */ - 0, /* U+002bfd: */ - 0, /* U+002bfe: */ - 0, /* U+002bff: */ - RTUNI_ALPHA | RTUNI_UPPER, /* U+002c00: GLAGOLITIC CAPITAL LETTER AZU*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+002c01: GLAGOLITIC CAPITAL LETTER BUKY*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+002c02: GLAGOLITIC CAPITAL LETTER VEDE*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+002c03: GLAGOLITIC CAPITAL LETTER GLAGOLI*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+002c04: GLAGOLITIC CAPITAL LETTER DOBRO*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+002c05: GLAGOLITIC CAPITAL LETTER YESTU*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+002c06: GLAGOLITIC CAPITAL LETTER ZHIVETE*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+002c07: GLAGOLITIC CAPITAL LETTER DZELO*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+002c08: GLAGOLITIC CAPITAL LETTER ZEMLJA*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+002c09: GLAGOLITIC CAPITAL LETTER IZHE*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+002c0a: GLAGOLITIC CAPITAL LETTER INITIAL IZHE*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+002c0b: GLAGOLITIC CAPITAL LETTER I*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+002c0c: GLAGOLITIC CAPITAL LETTER DJERVI*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+002c0d: GLAGOLITIC CAPITAL LETTER KAKO*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+002c0e: GLAGOLITIC CAPITAL LETTER LJUDIJE*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+002c0f: GLAGOLITIC CAPITAL LETTER MYSLITE*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+002c10: GLAGOLITIC CAPITAL LETTER NASHI*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+002c11: GLAGOLITIC CAPITAL LETTER ONU*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+002c12: GLAGOLITIC CAPITAL LETTER POKOJI*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+002c13: GLAGOLITIC CAPITAL LETTER RITSI*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+002c14: GLAGOLITIC CAPITAL LETTER SLOVO*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+002c15: GLAGOLITIC CAPITAL LETTER TVRIDO*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+002c16: GLAGOLITIC CAPITAL LETTER UKU*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+002c17: GLAGOLITIC CAPITAL LETTER FRITU*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+002c18: GLAGOLITIC CAPITAL LETTER HERU*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+002c19: GLAGOLITIC CAPITAL LETTER OTU*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+002c1a: GLAGOLITIC CAPITAL LETTER PE*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+002c1b: GLAGOLITIC CAPITAL LETTER SHTA*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+002c1c: GLAGOLITIC CAPITAL LETTER TSI*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+002c1d: GLAGOLITIC CAPITAL LETTER CHRIVI*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+002c1e: GLAGOLITIC CAPITAL LETTER SHA*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+002c1f: GLAGOLITIC CAPITAL LETTER YERU*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+002c20: GLAGOLITIC CAPITAL LETTER YERI*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+002c21: GLAGOLITIC CAPITAL LETTER YATI*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+002c22: GLAGOLITIC CAPITAL LETTER SPIDERY HA*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+002c23: GLAGOLITIC CAPITAL LETTER YU*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+002c24: GLAGOLITIC CAPITAL LETTER SMALL YUS*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+002c25: GLAGOLITIC CAPITAL LETTER SMALL YUS WITH TAIL*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+002c26: GLAGOLITIC CAPITAL LETTER YO*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+002c27: GLAGOLITIC CAPITAL LETTER IOTATED SMALL YUS*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+002c28: GLAGOLITIC CAPITAL LETTER BIG YUS*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+002c29: GLAGOLITIC CAPITAL LETTER IOTATED BIG YUS*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+002c2a: GLAGOLITIC CAPITAL LETTER FITA*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+002c2b: GLAGOLITIC CAPITAL LETTER IZHITSA*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+002c2c: GLAGOLITIC CAPITAL LETTER SHTAPIC*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+002c2d: GLAGOLITIC CAPITAL LETTER TROKUTASTI A*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+002c2e: GLAGOLITIC CAPITAL LETTER LATINATE MYSLITE*/ - 0, /* U+002c2f: */ - RTUNI_ALPHA | RTUNI_LOWER, /* U+002c30: GLAGOLITIC SMALL LETTER AZU*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+002c31: GLAGOLITIC SMALL LETTER BUKY*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+002c32: GLAGOLITIC SMALL LETTER VEDE*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+002c33: GLAGOLITIC SMALL LETTER GLAGOLI*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+002c34: GLAGOLITIC SMALL LETTER DOBRO*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+002c35: GLAGOLITIC SMALL LETTER YESTU*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+002c36: GLAGOLITIC SMALL LETTER ZHIVETE*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+002c37: GLAGOLITIC SMALL LETTER DZELO*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+002c38: GLAGOLITIC SMALL LETTER ZEMLJA*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+002c39: GLAGOLITIC SMALL LETTER IZHE*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+002c3a: GLAGOLITIC SMALL LETTER INITIAL IZHE*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+002c3b: GLAGOLITIC SMALL LETTER I*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+002c3c: GLAGOLITIC SMALL LETTER DJERVI*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+002c3d: GLAGOLITIC SMALL LETTER KAKO*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+002c3e: GLAGOLITIC SMALL LETTER LJUDIJE*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+002c3f: GLAGOLITIC SMALL LETTER MYSLITE*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+002c40: GLAGOLITIC SMALL LETTER NASHI*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+002c41: GLAGOLITIC SMALL LETTER ONU*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+002c42: GLAGOLITIC SMALL LETTER POKOJI*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+002c43: GLAGOLITIC SMALL LETTER RITSI*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+002c44: GLAGOLITIC SMALL LETTER SLOVO*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+002c45: GLAGOLITIC SMALL LETTER TVRIDO*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+002c46: GLAGOLITIC SMALL LETTER UKU*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+002c47: GLAGOLITIC SMALL LETTER FRITU*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+002c48: GLAGOLITIC SMALL LETTER HERU*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+002c49: GLAGOLITIC SMALL LETTER OTU*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+002c4a: GLAGOLITIC SMALL LETTER PE*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+002c4b: GLAGOLITIC SMALL LETTER SHTA*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+002c4c: GLAGOLITIC SMALL LETTER TSI*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+002c4d: GLAGOLITIC SMALL LETTER CHRIVI*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+002c4e: GLAGOLITIC SMALL LETTER SHA*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+002c4f: GLAGOLITIC SMALL LETTER YERU*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+002c50: GLAGOLITIC SMALL LETTER YERI*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+002c51: GLAGOLITIC SMALL LETTER YATI*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+002c52: GLAGOLITIC SMALL LETTER SPIDERY HA*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+002c53: GLAGOLITIC SMALL LETTER YU*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+002c54: GLAGOLITIC SMALL LETTER SMALL YUS*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+002c55: GLAGOLITIC SMALL LETTER SMALL YUS WITH TAIL*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+002c56: GLAGOLITIC SMALL LETTER YO*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+002c57: GLAGOLITIC SMALL LETTER IOTATED SMALL YUS*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+002c58: GLAGOLITIC SMALL LETTER BIG YUS*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+002c59: GLAGOLITIC SMALL LETTER IOTATED BIG YUS*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+002c5a: GLAGOLITIC SMALL LETTER FITA*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+002c5b: GLAGOLITIC SMALL LETTER IZHITSA*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+002c5c: GLAGOLITIC SMALL LETTER SHTAPIC*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+002c5d: GLAGOLITIC SMALL LETTER TROKUTASTI A*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+002c5e: GLAGOLITIC SMALL LETTER LATINATE MYSLITE*/ - 0, /* U+002c5f: */ - 0, /* U+002c60: */ - 0, /* U+002c61: */ - 0, /* U+002c62: */ - 0, /* U+002c63: */ - 0, /* U+002c64: */ - 0, /* U+002c65: */ - 0, /* U+002c66: */ - 0, /* U+002c67: */ - 0, /* U+002c68: */ - 0, /* U+002c69: */ - 0, /* U+002c6a: */ - 0, /* U+002c6b: */ - 0, /* U+002c6c: */ - 0, /* U+002c6d: */ - 0, /* U+002c6e: */ - 0, /* U+002c6f: */ - 0, /* U+002c70: */ - 0, /* U+002c71: */ - 0, /* U+002c72: */ - 0, /* U+002c73: */ - 0, /* U+002c74: */ - 0, /* U+002c75: */ - 0, /* U+002c76: */ - 0, /* U+002c77: */ - 0, /* U+002c78: */ - 0, /* U+002c79: */ - 0, /* U+002c7a: */ - 0, /* U+002c7b: */ - 0, /* U+002c7c: */ - 0, /* U+002c7d: */ - 0, /* U+002c7e: */ - 0, /* U+002c7f: */ - RTUNI_ALPHA | RTUNI_UPPER, /* U+002c80: COPTIC CAPITAL LETTER ALFA*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+002c81: COPTIC SMALL LETTER ALFA*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+002c82: COPTIC CAPITAL LETTER VIDA*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+002c83: COPTIC SMALL LETTER VIDA*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+002c84: COPTIC CAPITAL LETTER GAMMA*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+002c85: COPTIC SMALL LETTER GAMMA*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+002c86: COPTIC CAPITAL LETTER DALDA*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+002c87: COPTIC SMALL LETTER DALDA*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+002c88: COPTIC CAPITAL LETTER EIE*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+002c89: COPTIC SMALL LETTER EIE*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+002c8a: COPTIC CAPITAL LETTER SOU*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+002c8b: COPTIC SMALL LETTER SOU*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+002c8c: COPTIC CAPITAL LETTER ZATA*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+002c8d: COPTIC SMALL LETTER ZATA*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+002c8e: COPTIC CAPITAL LETTER HATE*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+002c8f: COPTIC SMALL LETTER HATE*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+002c90: COPTIC CAPITAL LETTER THETHE*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+002c91: COPTIC SMALL LETTER THETHE*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+002c92: COPTIC CAPITAL LETTER IAUDA*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+002c93: COPTIC SMALL LETTER IAUDA*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+002c94: COPTIC CAPITAL LETTER KAPA*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+002c95: COPTIC SMALL LETTER KAPA*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+002c96: COPTIC CAPITAL LETTER LAULA*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+002c97: COPTIC SMALL LETTER LAULA*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+002c98: COPTIC CAPITAL LETTER MI*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+002c99: COPTIC SMALL LETTER MI*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+002c9a: COPTIC CAPITAL LETTER NI*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+002c9b: COPTIC SMALL LETTER NI*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+002c9c: COPTIC CAPITAL LETTER KSI*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+002c9d: COPTIC SMALL LETTER KSI*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+002c9e: COPTIC CAPITAL LETTER O*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+002c9f: COPTIC SMALL LETTER O*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+002ca0: COPTIC CAPITAL LETTER PI*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+002ca1: COPTIC SMALL LETTER PI*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+002ca2: COPTIC CAPITAL LETTER RO*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+002ca3: COPTIC SMALL LETTER RO*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+002ca4: COPTIC CAPITAL LETTER SIMA*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+002ca5: COPTIC SMALL LETTER SIMA*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+002ca6: COPTIC CAPITAL LETTER TAU*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+002ca7: COPTIC SMALL LETTER TAU*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+002ca8: COPTIC CAPITAL LETTER UA*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+002ca9: COPTIC SMALL LETTER UA*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+002caa: COPTIC CAPITAL LETTER FI*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+002cab: COPTIC SMALL LETTER FI*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+002cac: COPTIC CAPITAL LETTER KHI*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+002cad: COPTIC SMALL LETTER KHI*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+002cae: COPTIC CAPITAL LETTER PSI*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+002caf: COPTIC SMALL LETTER PSI*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+002cb0: COPTIC CAPITAL LETTER OOU*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+002cb1: COPTIC SMALL LETTER OOU*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+002cb2: COPTIC CAPITAL LETTER DIALECT-P ALEF*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+002cb3: COPTIC SMALL LETTER DIALECT-P ALEF*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+002cb4: COPTIC CAPITAL LETTER OLD COPTIC AIN*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+002cb5: COPTIC SMALL LETTER OLD COPTIC AIN*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+002cb6: COPTIC CAPITAL LETTER CRYPTOGRAMMIC EIE*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+002cb7: COPTIC SMALL LETTER CRYPTOGRAMMIC EIE*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+002cb8: COPTIC CAPITAL LETTER DIALECT-P KAPA*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+002cb9: COPTIC SMALL LETTER DIALECT-P KAPA*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+002cba: COPTIC CAPITAL LETTER DIALECT-P NI*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+002cbb: COPTIC SMALL LETTER DIALECT-P NI*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+002cbc: COPTIC CAPITAL LETTER CRYPTOGRAMMIC NI*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+002cbd: COPTIC SMALL LETTER CRYPTOGRAMMIC NI*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+002cbe: COPTIC CAPITAL LETTER OLD COPTIC OOU*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+002cbf: COPTIC SMALL LETTER OLD COPTIC OOU*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+002cc0: COPTIC CAPITAL LETTER SAMPI*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+002cc1: COPTIC SMALL LETTER SAMPI*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+002cc2: COPTIC CAPITAL LETTER CROSSED SHEI*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+002cc3: COPTIC SMALL LETTER CROSSED SHEI*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+002cc4: COPTIC CAPITAL LETTER OLD COPTIC SHEI*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+002cc5: COPTIC SMALL LETTER OLD COPTIC SHEI*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+002cc6: COPTIC CAPITAL LETTER OLD COPTIC ESH*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+002cc7: COPTIC SMALL LETTER OLD COPTIC ESH*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+002cc8: COPTIC CAPITAL LETTER AKHMIMIC KHEI*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+002cc9: COPTIC SMALL LETTER AKHMIMIC KHEI*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+002cca: COPTIC CAPITAL LETTER DIALECT-P HORI*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+002ccb: COPTIC SMALL LETTER DIALECT-P HORI*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+002ccc: COPTIC CAPITAL LETTER OLD COPTIC HORI*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+002ccd: COPTIC SMALL LETTER OLD COPTIC HORI*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+002cce: COPTIC CAPITAL LETTER OLD COPTIC HA*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+002ccf: COPTIC SMALL LETTER OLD COPTIC HA*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+002cd0: COPTIC CAPITAL LETTER L-SHAPED HA*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+002cd1: COPTIC SMALL LETTER L-SHAPED HA*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+002cd2: COPTIC CAPITAL LETTER OLD COPTIC HEI*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+002cd3: COPTIC SMALL LETTER OLD COPTIC HEI*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+002cd4: COPTIC CAPITAL LETTER OLD COPTIC HAT*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+002cd5: COPTIC SMALL LETTER OLD COPTIC HAT*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+002cd6: COPTIC CAPITAL LETTER OLD COPTIC GANGIA*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+002cd7: COPTIC SMALL LETTER OLD COPTIC GANGIA*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+002cd8: COPTIC CAPITAL LETTER OLD COPTIC DJA*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+002cd9: COPTIC SMALL LETTER OLD COPTIC DJA*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+002cda: COPTIC CAPITAL LETTER OLD COPTIC SHIMA*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+002cdb: COPTIC SMALL LETTER OLD COPTIC SHIMA*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+002cdc: COPTIC CAPITAL LETTER OLD NUBIAN SHIMA*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+002cdd: COPTIC SMALL LETTER OLD NUBIAN SHIMA*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+002cde: COPTIC CAPITAL LETTER OLD NUBIAN NGI*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+002cdf: COPTIC SMALL LETTER OLD NUBIAN NGI*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+002ce0: COPTIC CAPITAL LETTER OLD NUBIAN NYI*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+002ce1: COPTIC SMALL LETTER OLD NUBIAN NYI*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+002ce2: COPTIC CAPITAL LETTER OLD NUBIAN WAU*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+002ce3: COPTIC SMALL LETTER OLD NUBIAN WAU*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+002ce4: COPTIC SYMBOL KAI*/ - 0, /* U+002ce5: COPTIC SYMBOL MI RO*/ - 0, /* U+002ce6: COPTIC SYMBOL PI RO*/ - 0, /* U+002ce7: COPTIC SYMBOL STAUROS*/ - 0, /* U+002ce8: COPTIC SYMBOL TAU RO*/ - 0, /* U+002ce9: COPTIC SYMBOL KHI RO*/ - 0, /* U+002cea: COPTIC SYMBOL SHIMA SIMA*/ - 0, /* U+002ceb: */ - 0, /* U+002cec: */ - 0, /* U+002ced: */ - 0, /* U+002cee: */ - 0, /* U+002cef: */ - 0, /* U+002cf0: */ - 0, /* U+002cf1: */ - 0, /* U+002cf2: */ - 0, /* U+002cf3: */ - 0, /* U+002cf4: */ - 0, /* U+002cf5: */ - 0, /* U+002cf6: */ - 0, /* U+002cf7: */ - 0, /* U+002cf8: */ - 0, /* U+002cf9: COPTIC OLD NUBIAN FULL STOP*/ - 0, /* U+002cfa: COPTIC OLD NUBIAN DIRECT QUESTION MARK*/ - 0, /* U+002cfb: COPTIC OLD NUBIAN INDIRECT QUESTION MARK*/ - 0, /* U+002cfc: COPTIC OLD NUBIAN VERSE DIVIDER*/ - 0, /* U+002cfd: COPTIC FRACTION ONE HALF*/ - 0, /* U+002cfe: COPTIC FULL STOP*/ - 0, /* U+002cff: COPTIC MORPHOLOGICAL DIVIDER*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+002d00: GEORGIAN SMALL LETTER AN*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+002d01: GEORGIAN SMALL LETTER BAN*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+002d02: GEORGIAN SMALL LETTER GAN*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+002d03: GEORGIAN SMALL LETTER DON*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+002d04: GEORGIAN SMALL LETTER EN*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+002d05: GEORGIAN SMALL LETTER VIN*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+002d06: GEORGIAN SMALL LETTER ZEN*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+002d07: GEORGIAN SMALL LETTER TAN*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+002d08: GEORGIAN SMALL LETTER IN*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+002d09: GEORGIAN SMALL LETTER KAN*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+002d0a: GEORGIAN SMALL LETTER LAS*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+002d0b: GEORGIAN SMALL LETTER MAN*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+002d0c: GEORGIAN SMALL LETTER NAR*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+002d0d: GEORGIAN SMALL LETTER ON*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+002d0e: GEORGIAN SMALL LETTER PAR*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+002d0f: GEORGIAN SMALL LETTER ZHAR*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+002d10: GEORGIAN SMALL LETTER RAE*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+002d11: GEORGIAN SMALL LETTER SAN*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+002d12: GEORGIAN SMALL LETTER TAR*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+002d13: GEORGIAN SMALL LETTER UN*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+002d14: GEORGIAN SMALL LETTER PHAR*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+002d15: GEORGIAN SMALL LETTER KHAR*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+002d16: GEORGIAN SMALL LETTER GHAN*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+002d17: GEORGIAN SMALL LETTER QAR*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+002d18: GEORGIAN SMALL LETTER SHIN*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+002d19: GEORGIAN SMALL LETTER CHIN*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+002d1a: GEORGIAN SMALL LETTER CAN*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+002d1b: GEORGIAN SMALL LETTER JIL*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+002d1c: GEORGIAN SMALL LETTER CIL*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+002d1d: GEORGIAN SMALL LETTER CHAR*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+002d1e: GEORGIAN SMALL LETTER XAN*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+002d1f: GEORGIAN SMALL LETTER JHAN*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+002d20: GEORGIAN SMALL LETTER HAE*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+002d21: GEORGIAN SMALL LETTER HE*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+002d22: GEORGIAN SMALL LETTER HIE*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+002d23: GEORGIAN SMALL LETTER WE*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+002d24: GEORGIAN SMALL LETTER HAR*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+002d25: GEORGIAN SMALL LETTER HOE*/ - 0, /* U+002d26: */ - 0, /* U+002d27: */ - 0, /* U+002d28: */ - 0, /* U+002d29: */ - 0, /* U+002d2a: */ - 0, /* U+002d2b: */ - 0, /* U+002d2c: */ - 0, /* U+002d2d: */ - 0, /* U+002d2e: */ - 0, /* U+002d2f: */ - RTUNI_ALPHA, /* U+002d30: TIFINAGH LETTER YA*/ - RTUNI_ALPHA, /* U+002d31: TIFINAGH LETTER YAB*/ - RTUNI_ALPHA, /* U+002d32: TIFINAGH LETTER YABH*/ - RTUNI_ALPHA, /* U+002d33: TIFINAGH LETTER YAG*/ - RTUNI_ALPHA, /* U+002d34: TIFINAGH LETTER YAGHH*/ - RTUNI_ALPHA, /* U+002d35: TIFINAGH LETTER BERBER ACADEMY YAJ*/ - RTUNI_ALPHA, /* U+002d36: TIFINAGH LETTER YAJ*/ - RTUNI_ALPHA, /* U+002d37: TIFINAGH LETTER YAD*/ - RTUNI_ALPHA, /* U+002d38: TIFINAGH LETTER YADH*/ - RTUNI_ALPHA, /* U+002d39: TIFINAGH LETTER YADD*/ - RTUNI_ALPHA, /* U+002d3a: TIFINAGH LETTER YADDH*/ - RTUNI_ALPHA, /* U+002d3b: TIFINAGH LETTER YEY*/ - RTUNI_ALPHA, /* U+002d3c: TIFINAGH LETTER YAF*/ - RTUNI_ALPHA, /* U+002d3d: TIFINAGH LETTER YAK*/ - RTUNI_ALPHA, /* U+002d3e: TIFINAGH LETTER TUAREG YAK*/ - RTUNI_ALPHA, /* U+002d3f: TIFINAGH LETTER YAKHH*/ - RTUNI_ALPHA, /* U+002d40: TIFINAGH LETTER YAH*/ - RTUNI_ALPHA, /* U+002d41: TIFINAGH LETTER BERBER ACADEMY YAH*/ - RTUNI_ALPHA, /* U+002d42: TIFINAGH LETTER TUAREG YAH*/ - RTUNI_ALPHA, /* U+002d43: TIFINAGH LETTER YAHH*/ - RTUNI_ALPHA, /* U+002d44: TIFINAGH LETTER YAA*/ - RTUNI_ALPHA, /* U+002d45: TIFINAGH LETTER YAKH*/ - RTUNI_ALPHA, /* U+002d46: TIFINAGH LETTER TUAREG YAKH*/ - RTUNI_ALPHA, /* U+002d47: TIFINAGH LETTER YAQ*/ - RTUNI_ALPHA, /* U+002d48: TIFINAGH LETTER TUAREG YAQ*/ - RTUNI_ALPHA, /* U+002d49: TIFINAGH LETTER YI*/ - RTUNI_ALPHA, /* U+002d4a: TIFINAGH LETTER YAZH*/ - RTUNI_ALPHA, /* U+002d4b: TIFINAGH LETTER AHAGGAR YAZH*/ - RTUNI_ALPHA, /* U+002d4c: TIFINAGH LETTER TUAREG YAZH*/ - RTUNI_ALPHA, /* U+002d4d: TIFINAGH LETTER YAL*/ - RTUNI_ALPHA, /* U+002d4e: TIFINAGH LETTER YAM*/ - RTUNI_ALPHA, /* U+002d4f: TIFINAGH LETTER YAN*/ - RTUNI_ALPHA, /* U+002d50: TIFINAGH LETTER TUAREG YAGN*/ - RTUNI_ALPHA, /* U+002d51: TIFINAGH LETTER TUAREG YANG*/ - RTUNI_ALPHA, /* U+002d52: TIFINAGH LETTER YAP*/ - RTUNI_ALPHA, /* U+002d53: TIFINAGH LETTER YU*/ - RTUNI_ALPHA, /* U+002d54: TIFINAGH LETTER YAR*/ - RTUNI_ALPHA, /* U+002d55: TIFINAGH LETTER YARR*/ - RTUNI_ALPHA, /* U+002d56: TIFINAGH LETTER YAGH*/ - RTUNI_ALPHA, /* U+002d57: TIFINAGH LETTER TUAREG YAGH*/ - RTUNI_ALPHA, /* U+002d58: TIFINAGH LETTER AYER YAGH*/ - RTUNI_ALPHA, /* U+002d59: TIFINAGH LETTER YAS*/ - RTUNI_ALPHA, /* U+002d5a: TIFINAGH LETTER YASS*/ - RTUNI_ALPHA, /* U+002d5b: TIFINAGH LETTER YASH*/ - RTUNI_ALPHA, /* U+002d5c: TIFINAGH LETTER YAT*/ - RTUNI_ALPHA, /* U+002d5d: TIFINAGH LETTER YATH*/ - RTUNI_ALPHA, /* U+002d5e: TIFINAGH LETTER YACH*/ - RTUNI_ALPHA, /* U+002d5f: TIFINAGH LETTER YATT*/ - RTUNI_ALPHA, /* U+002d60: TIFINAGH LETTER YAV*/ - RTUNI_ALPHA, /* U+002d61: TIFINAGH LETTER YAW*/ - RTUNI_ALPHA, /* U+002d62: TIFINAGH LETTER YAY*/ - RTUNI_ALPHA, /* U+002d63: TIFINAGH LETTER YAZ*/ - RTUNI_ALPHA, /* U+002d64: TIFINAGH LETTER TAWELLEMET YAZ*/ - RTUNI_ALPHA, /* U+002d65: TIFINAGH LETTER YAZZ*/ - 0, /* U+002d66: */ - 0, /* U+002d67: */ - 0, /* U+002d68: */ - 0, /* U+002d69: */ - 0, /* U+002d6a: */ - 0, /* U+002d6b: */ - 0, /* U+002d6c: */ - 0, /* U+002d6d: */ - 0, /* U+002d6e: */ - RTUNI_ALPHA, /* U+002d6f: TIFINAGH MODIFIER LETTER LABIALIZATION MARK*/ - 0, /* U+002d70: */ - 0, /* U+002d71: */ - 0, /* U+002d72: */ - 0, /* U+002d73: */ - 0, /* U+002d74: */ - 0, /* U+002d75: */ - 0, /* U+002d76: */ - 0, /* U+002d77: */ - 0, /* U+002d78: */ - 0, /* U+002d79: */ - 0, /* U+002d7a: */ - 0, /* U+002d7b: */ - 0, /* U+002d7c: */ - 0, /* U+002d7d: */ - 0, /* U+002d7e: */ - 0, /* U+002d7f: */ - RTUNI_ALPHA, /* U+002d80: ETHIOPIC SYLLABLE LOA*/ - RTUNI_ALPHA, /* U+002d81: ETHIOPIC SYLLABLE MOA*/ - RTUNI_ALPHA, /* U+002d82: ETHIOPIC SYLLABLE ROA*/ - RTUNI_ALPHA, /* U+002d83: ETHIOPIC SYLLABLE SOA*/ - RTUNI_ALPHA, /* U+002d84: ETHIOPIC SYLLABLE SHOA*/ - RTUNI_ALPHA, /* U+002d85: ETHIOPIC SYLLABLE BOA*/ - RTUNI_ALPHA, /* U+002d86: ETHIOPIC SYLLABLE TOA*/ - RTUNI_ALPHA, /* U+002d87: ETHIOPIC SYLLABLE COA*/ - RTUNI_ALPHA, /* U+002d88: ETHIOPIC SYLLABLE NOA*/ - RTUNI_ALPHA, /* U+002d89: ETHIOPIC SYLLABLE NYOA*/ - RTUNI_ALPHA, /* U+002d8a: ETHIOPIC SYLLABLE GLOTTAL OA*/ - RTUNI_ALPHA, /* U+002d8b: ETHIOPIC SYLLABLE ZOA*/ - RTUNI_ALPHA, /* U+002d8c: ETHIOPIC SYLLABLE DOA*/ - RTUNI_ALPHA, /* U+002d8d: ETHIOPIC SYLLABLE DDOA*/ - RTUNI_ALPHA, /* U+002d8e: ETHIOPIC SYLLABLE JOA*/ - RTUNI_ALPHA, /* U+002d8f: ETHIOPIC SYLLABLE THOA*/ - RTUNI_ALPHA, /* U+002d90: ETHIOPIC SYLLABLE CHOA*/ - RTUNI_ALPHA, /* U+002d91: ETHIOPIC SYLLABLE PHOA*/ - RTUNI_ALPHA, /* U+002d92: ETHIOPIC SYLLABLE POA*/ - RTUNI_ALPHA, /* U+002d93: ETHIOPIC SYLLABLE GGWA*/ - RTUNI_ALPHA, /* U+002d94: ETHIOPIC SYLLABLE GGWI*/ - RTUNI_ALPHA, /* U+002d95: ETHIOPIC SYLLABLE GGWEE*/ - RTUNI_ALPHA, /* U+002d96: ETHIOPIC SYLLABLE GGWE*/ - 0, /* U+002d97: */ - 0, /* U+002d98: */ - 0, /* U+002d99: */ - 0, /* U+002d9a: */ - 0, /* U+002d9b: */ - 0, /* U+002d9c: */ - 0, /* U+002d9d: */ - 0, /* U+002d9e: */ - 0, /* U+002d9f: */ - RTUNI_ALPHA, /* U+002da0: ETHIOPIC SYLLABLE SSA*/ - RTUNI_ALPHA, /* U+002da1: ETHIOPIC SYLLABLE SSU*/ - RTUNI_ALPHA, /* U+002da2: ETHIOPIC SYLLABLE SSI*/ - RTUNI_ALPHA, /* U+002da3: ETHIOPIC SYLLABLE SSAA*/ - RTUNI_ALPHA, /* U+002da4: ETHIOPIC SYLLABLE SSEE*/ - RTUNI_ALPHA, /* U+002da5: ETHIOPIC SYLLABLE SSE*/ - RTUNI_ALPHA, /* U+002da6: ETHIOPIC SYLLABLE SSO*/ - 0, /* U+002da7: */ - RTUNI_ALPHA, /* U+002da8: ETHIOPIC SYLLABLE CCA*/ - RTUNI_ALPHA, /* U+002da9: ETHIOPIC SYLLABLE CCU*/ - RTUNI_ALPHA, /* U+002daa: ETHIOPIC SYLLABLE CCI*/ - RTUNI_ALPHA, /* U+002dab: ETHIOPIC SYLLABLE CCAA*/ - RTUNI_ALPHA, /* U+002dac: ETHIOPIC SYLLABLE CCEE*/ - RTUNI_ALPHA, /* U+002dad: ETHIOPIC SYLLABLE CCE*/ - RTUNI_ALPHA, /* U+002dae: ETHIOPIC SYLLABLE CCO*/ - 0, /* U+002daf: */ - RTUNI_ALPHA, /* U+002db0: ETHIOPIC SYLLABLE ZZA*/ - RTUNI_ALPHA, /* U+002db1: ETHIOPIC SYLLABLE ZZU*/ - RTUNI_ALPHA, /* U+002db2: ETHIOPIC SYLLABLE ZZI*/ - RTUNI_ALPHA, /* U+002db3: ETHIOPIC SYLLABLE ZZAA*/ - RTUNI_ALPHA, /* U+002db4: ETHIOPIC SYLLABLE ZZEE*/ - RTUNI_ALPHA, /* U+002db5: ETHIOPIC SYLLABLE ZZE*/ - RTUNI_ALPHA, /* U+002db6: ETHIOPIC SYLLABLE ZZO*/ - 0, /* U+002db7: */ - RTUNI_ALPHA, /* U+002db8: ETHIOPIC SYLLABLE CCHA*/ - RTUNI_ALPHA, /* U+002db9: ETHIOPIC SYLLABLE CCHU*/ - RTUNI_ALPHA, /* U+002dba: ETHIOPIC SYLLABLE CCHI*/ - RTUNI_ALPHA, /* U+002dbb: ETHIOPIC SYLLABLE CCHAA*/ - RTUNI_ALPHA, /* U+002dbc: ETHIOPIC SYLLABLE CCHEE*/ - RTUNI_ALPHA, /* U+002dbd: ETHIOPIC SYLLABLE CCHE*/ - RTUNI_ALPHA, /* U+002dbe: ETHIOPIC SYLLABLE CCHO*/ - 0, /* U+002dbf: */ - RTUNI_ALPHA, /* U+002dc0: ETHIOPIC SYLLABLE QYA*/ - RTUNI_ALPHA, /* U+002dc1: ETHIOPIC SYLLABLE QYU*/ - RTUNI_ALPHA, /* U+002dc2: ETHIOPIC SYLLABLE QYI*/ - RTUNI_ALPHA, /* U+002dc3: ETHIOPIC SYLLABLE QYAA*/ - RTUNI_ALPHA, /* U+002dc4: ETHIOPIC SYLLABLE QYEE*/ - RTUNI_ALPHA, /* U+002dc5: ETHIOPIC SYLLABLE QYE*/ - RTUNI_ALPHA, /* U+002dc6: ETHIOPIC SYLLABLE QYO*/ - 0, /* U+002dc7: */ - RTUNI_ALPHA, /* U+002dc8: ETHIOPIC SYLLABLE KYA*/ - RTUNI_ALPHA, /* U+002dc9: ETHIOPIC SYLLABLE KYU*/ - RTUNI_ALPHA, /* U+002dca: ETHIOPIC SYLLABLE KYI*/ - RTUNI_ALPHA, /* U+002dcb: ETHIOPIC SYLLABLE KYAA*/ - RTUNI_ALPHA, /* U+002dcc: ETHIOPIC SYLLABLE KYEE*/ - RTUNI_ALPHA, /* U+002dcd: ETHIOPIC SYLLABLE KYE*/ - RTUNI_ALPHA, /* U+002dce: ETHIOPIC SYLLABLE KYO*/ - 0, /* U+002dcf: */ - RTUNI_ALPHA, /* U+002dd0: ETHIOPIC SYLLABLE XYA*/ - RTUNI_ALPHA, /* U+002dd1: ETHIOPIC SYLLABLE XYU*/ - RTUNI_ALPHA, /* U+002dd2: ETHIOPIC SYLLABLE XYI*/ - RTUNI_ALPHA, /* U+002dd3: ETHIOPIC SYLLABLE XYAA*/ - RTUNI_ALPHA, /* U+002dd4: ETHIOPIC SYLLABLE XYEE*/ - RTUNI_ALPHA, /* U+002dd5: ETHIOPIC SYLLABLE XYE*/ - RTUNI_ALPHA, /* U+002dd6: ETHIOPIC SYLLABLE XYO*/ - 0, /* U+002dd7: */ - RTUNI_ALPHA, /* U+002dd8: ETHIOPIC SYLLABLE GYA*/ - RTUNI_ALPHA, /* U+002dd9: ETHIOPIC SYLLABLE GYU*/ - RTUNI_ALPHA, /* U+002dda: ETHIOPIC SYLLABLE GYI*/ - RTUNI_ALPHA, /* U+002ddb: ETHIOPIC SYLLABLE GYAA*/ - RTUNI_ALPHA, /* U+002ddc: ETHIOPIC SYLLABLE GYEE*/ - RTUNI_ALPHA, /* U+002ddd: ETHIOPIC SYLLABLE GYE*/ - RTUNI_ALPHA, /* U+002dde: ETHIOPIC SYLLABLE GYO*/ - 0, /* U+002ddf: */ - 0, /* U+002de0: */ - 0, /* U+002de1: */ - 0, /* U+002de2: */ - 0, /* U+002de3: */ - 0, /* U+002de4: */ - 0, /* U+002de5: */ - 0, /* U+002de6: */ - 0, /* U+002de7: */ - 0, /* U+002de8: */ - 0, /* U+002de9: */ - 0, /* U+002dea: */ - 0, /* U+002deb: */ - 0, /* U+002dec: */ - 0, /* U+002ded: */ - 0, /* U+002dee: */ - 0, /* U+002def: */ - 0, /* U+002df0: */ - 0, /* U+002df1: */ - 0, /* U+002df2: */ - 0, /* U+002df3: */ - 0, /* U+002df4: */ - 0, /* U+002df5: */ - 0, /* U+002df6: */ - 0, /* U+002df7: */ - 0, /* U+002df8: */ - 0, /* U+002df9: */ - 0, /* U+002dfa: */ - 0, /* U+002dfb: */ - 0, /* U+002dfc: */ - 0, /* U+002dfd: */ - 0, /* U+002dfe: */ - 0, /* U+002dff: */ - 0, /* U+002e00: RIGHT ANGLE SUBSTITUTION MARKER*/ - 0, /* U+002e01: RIGHT ANGLE DOTTED SUBSTITUTION MARKER*/ - 0, /* U+002e02: LEFT SUBSTITUTION BRACKET*/ - 0, /* U+002e03: RIGHT SUBSTITUTION BRACKET*/ - 0, /* U+002e04: LEFT DOTTED SUBSTITUTION BRACKET*/ - 0, /* U+002e05: RIGHT DOTTED SUBSTITUTION BRACKET*/ - 0, /* U+002e06: RAISED INTERPOLATION MARKER*/ - 0, /* U+002e07: RAISED DOTTED INTERPOLATION MARKER*/ - 0, /* U+002e08: DOTTED TRANSPOSITION MARKER*/ - 0, /* U+002e09: LEFT TRANSPOSITION BRACKET*/ - 0, /* U+002e0a: RIGHT TRANSPOSITION BRACKET*/ - 0, /* U+002e0b: RAISED SQUARE*/ - 0, /* U+002e0c: LEFT RAISED OMISSION BRACKET*/ - 0, /* U+002e0d: RIGHT RAISED OMISSION BRACKET*/ - 0, /* U+002e0e: EDITORIAL CORONIS*/ - 0, /* U+002e0f: PARAGRAPHOS*/ - 0, /* U+002e10: FORKED PARAGRAPHOS*/ - 0, /* U+002e11: REVERSED FORKED PARAGRAPHOS*/ - 0, /* U+002e12: HYPODIASTOLE*/ - 0, /* U+002e13: DOTTED OBELOS*/ - 0, /* U+002e14: DOWNWARDS ANCORA*/ - 0, /* U+002e15: UPWARDS ANCORA*/ - 0, /* U+002e16: DOTTED RIGHT-POINTING ANGLE*/ - 0, /* U+002e17: DOUBLE OBLIQUE HYPHEN*/ - 0, /* U+002e18: */ - 0, /* U+002e19: */ - 0, /* U+002e1a: */ - 0, /* U+002e1b: */ - 0, /* U+002e1c: LEFT LOW PARAPHRASE BRACKET*/ - 0, /* U+002e1d: RIGHT LOW PARAPHRASE BRACKET*/ - 0, /* U+002e1e: */ - 0, /* U+002e1f: */ - 0, /* U+002e20: */ - 0, /* U+002e21: */ - 0, /* U+002e22: */ - 0, /* U+002e23: */ - 0, /* U+002e24: */ - 0, /* U+002e25: */ - 0, /* U+002e26: */ - 0, /* U+002e27: */ - 0, /* U+002e28: */ - 0, /* U+002e29: */ - 0, /* U+002e2a: */ - 0, /* U+002e2b: */ - 0, /* U+002e2c: */ - 0, /* U+002e2d: */ - 0, /* U+002e2e: */ - 0, /* U+002e2f: */ - 0, /* U+002e30: */ - 0, /* U+002e31: */ - 0, /* U+002e32: */ - 0, /* U+002e33: */ - 0, /* U+002e34: */ - 0, /* U+002e35: */ - 0, /* U+002e36: */ - 0, /* U+002e37: */ - 0, /* U+002e38: */ - 0, /* U+002e39: */ - 0, /* U+002e3a: */ - 0, /* U+002e3b: */ - 0, /* U+002e3c: */ - 0, /* U+002e3d: */ - 0, /* U+002e3e: */ - 0, /* U+002e3f: */ - 0, /* U+002e40: */ - 0, /* U+002e41: */ - 0, /* U+002e42: */ - 0, /* U+002e43: */ - 0, /* U+002e44: */ - 0, /* U+002e45: */ - 0, /* U+002e46: */ - 0, /* U+002e47: */ - 0, /* U+002e48: */ - 0, /* U+002e49: */ - 0, /* U+002e4a: */ - 0, /* U+002e4b: */ - 0, /* U+002e4c: */ - 0, /* U+002e4d: */ - 0, /* U+002e4e: */ - 0, /* U+002e4f: */ - 0, /* U+002e50: */ - 0, /* U+002e51: */ - 0, /* U+002e52: */ - 0, /* U+002e53: */ - 0, /* U+002e54: */ - 0, /* U+002e55: */ - 0, /* U+002e56: */ - 0, /* U+002e57: */ - 0, /* U+002e58: */ - 0, /* U+002e59: */ - 0, /* U+002e5a: */ - 0, /* U+002e5b: */ - 0, /* U+002e5c: */ - 0, /* U+002e5d: */ - 0, /* U+002e5e: */ - 0, /* U+002e5f: */ - 0, /* U+002e60: */ - 0, /* U+002e61: */ - 0, /* U+002e62: */ - 0, /* U+002e63: */ - 0, /* U+002e64: */ - 0, /* U+002e65: */ - 0, /* U+002e66: */ - 0, /* U+002e67: */ - 0, /* U+002e68: */ - 0, /* U+002e69: */ - 0, /* U+002e6a: */ - 0, /* U+002e6b: */ - 0, /* U+002e6c: */ - 0, /* U+002e6d: */ - 0, /* U+002e6e: */ - 0, /* U+002e6f: */ - 0, /* U+002e70: */ - 0, /* U+002e71: */ - 0, /* U+002e72: */ - 0, /* U+002e73: */ - 0, /* U+002e74: */ - 0, /* U+002e75: */ - 0, /* U+002e76: */ - 0, /* U+002e77: */ - 0, /* U+002e78: */ - 0, /* U+002e79: */ - 0, /* U+002e7a: */ - 0, /* U+002e7b: */ - 0, /* U+002e7c: */ - 0, /* U+002e7d: */ - 0, /* U+002e7e: */ - 0, /* U+002e7f: */ - 0, /* U+002e80: CJK RADICAL REPEAT*/ - 0, /* U+002e81: CJK RADICAL CLIFF*/ - 0, /* U+002e82: CJK RADICAL SECOND ONE*/ - 0, /* U+002e83: CJK RADICAL SECOND TWO*/ - 0, /* U+002e84: CJK RADICAL SECOND THREE*/ - 0, /* U+002e85: CJK RADICAL PERSON*/ - 0, /* U+002e86: CJK RADICAL BOX*/ - 0, /* U+002e87: CJK RADICAL TABLE*/ - 0, /* U+002e88: CJK RADICAL KNIFE ONE*/ - 0, /* U+002e89: CJK RADICAL KNIFE TWO*/ - 0, /* U+002e8a: CJK RADICAL DIVINATION*/ - 0, /* U+002e8b: CJK RADICAL SEAL*/ - 0, /* U+002e8c: CJK RADICAL SMALL ONE*/ - 0, /* U+002e8d: CJK RADICAL SMALL TWO*/ - 0, /* U+002e8e: CJK RADICAL LAME ONE*/ - 0, /* U+002e8f: CJK RADICAL LAME TWO*/ - 0, /* U+002e90: CJK RADICAL LAME THREE*/ - 0, /* U+002e91: CJK RADICAL LAME FOUR*/ - 0, /* U+002e92: CJK RADICAL SNAKE*/ - 0, /* U+002e93: CJK RADICAL THREAD*/ - 0, /* U+002e94: CJK RADICAL SNOUT ONE*/ - 0, /* U+002e95: CJK RADICAL SNOUT TWO*/ - 0, /* U+002e96: CJK RADICAL HEART ONE*/ - 0, /* U+002e97: CJK RADICAL HEART TWO*/ - 0, /* U+002e98: CJK RADICAL HAND*/ - 0, /* U+002e99: CJK RADICAL RAP*/ - 0, /* U+002e9a: */ - 0, /* U+002e9b: CJK RADICAL CHOKE*/ - 0, /* U+002e9c: CJK RADICAL SUN*/ - 0, /* U+002e9d: CJK RADICAL MOON*/ - 0, /* U+002e9e: CJK RADICAL DEATH*/ - 0, /* U+002e9f: CJK RADICAL MOTHER*/ - 0, /* U+002ea0: CJK RADICAL CIVILIAN*/ - 0, /* U+002ea1: CJK RADICAL WATER ONE*/ - 0, /* U+002ea2: CJK RADICAL WATER TWO*/ - 0, /* U+002ea3: CJK RADICAL FIRE*/ - 0, /* U+002ea4: CJK RADICAL PAW ONE*/ - 0, /* U+002ea5: CJK RADICAL PAW TWO*/ - 0, /* U+002ea6: CJK RADICAL SIMPLIFIED HALF TREE TRUNK*/ - 0, /* U+002ea7: CJK RADICAL COW*/ - 0, /* U+002ea8: CJK RADICAL DOG*/ - 0, /* U+002ea9: CJK RADICAL JADE*/ - 0, /* U+002eaa: CJK RADICAL BOLT OF CLOTH*/ - 0, /* U+002eab: CJK RADICAL EYE*/ - 0, /* U+002eac: CJK RADICAL SPIRIT ONE*/ - 0, /* U+002ead: CJK RADICAL SPIRIT TWO*/ - 0, /* U+002eae: CJK RADICAL BAMBOO*/ - 0, /* U+002eaf: CJK RADICAL SILK*/ - 0, /* U+002eb0: CJK RADICAL C-SIMPLIFIED SILK*/ - 0, /* U+002eb1: CJK RADICAL NET ONE*/ - 0, /* U+002eb2: CJK RADICAL NET TWO*/ - 0, /* U+002eb3: CJK RADICAL NET THREE*/ - 0, /* U+002eb4: CJK RADICAL NET FOUR*/ - 0, /* U+002eb5: CJK RADICAL MESH*/ - 0, /* U+002eb6: CJK RADICAL SHEEP*/ - 0, /* U+002eb7: CJK RADICAL RAM*/ - 0, /* U+002eb8: CJK RADICAL EWE*/ - 0, /* U+002eb9: CJK RADICAL OLD*/ - 0, /* U+002eba: CJK RADICAL BRUSH ONE*/ - 0, /* U+002ebb: CJK RADICAL BRUSH TWO*/ - 0, /* U+002ebc: CJK RADICAL MEAT*/ - 0, /* U+002ebd: CJK RADICAL MORTAR*/ - 0, /* U+002ebe: CJK RADICAL GRASS ONE*/ - 0, /* U+002ebf: CJK RADICAL GRASS TWO*/ - 0, /* U+002ec0: CJK RADICAL GRASS THREE*/ - 0, /* U+002ec1: CJK RADICAL TIGER*/ - 0, /* U+002ec2: CJK RADICAL CLOTHES*/ - 0, /* U+002ec3: CJK RADICAL WEST ONE*/ - 0, /* U+002ec4: CJK RADICAL WEST TWO*/ - 0, /* U+002ec5: CJK RADICAL C-SIMPLIFIED SEE*/ - 0, /* U+002ec6: CJK RADICAL SIMPLIFIED HORN*/ - 0, /* U+002ec7: CJK RADICAL HORN*/ - 0, /* U+002ec8: CJK RADICAL C-SIMPLIFIED SPEECH*/ - 0, /* U+002ec9: CJK RADICAL C-SIMPLIFIED SHELL*/ - 0, /* U+002eca: CJK RADICAL FOOT*/ - 0, /* U+002ecb: CJK RADICAL C-SIMPLIFIED CART*/ - 0, /* U+002ecc: CJK RADICAL SIMPLIFIED WALK*/ - 0, /* U+002ecd: CJK RADICAL WALK ONE*/ - 0, /* U+002ece: CJK RADICAL WALK TWO*/ - 0, /* U+002ecf: CJK RADICAL CITY*/ - 0, /* U+002ed0: CJK RADICAL C-SIMPLIFIED GOLD*/ - 0, /* U+002ed1: CJK RADICAL LONG ONE*/ - 0, /* U+002ed2: CJK RADICAL LONG TWO*/ - 0, /* U+002ed3: CJK RADICAL C-SIMPLIFIED LONG*/ - 0, /* U+002ed4: CJK RADICAL C-SIMPLIFIED GATE*/ - 0, /* U+002ed5: CJK RADICAL MOUND ONE*/ - 0, /* U+002ed6: CJK RADICAL MOUND TWO*/ - 0, /* U+002ed7: CJK RADICAL RAIN*/ - 0, /* U+002ed8: CJK RADICAL BLUE*/ - 0, /* U+002ed9: CJK RADICAL C-SIMPLIFIED TANNED LEATHER*/ - 0, /* U+002eda: CJK RADICAL C-SIMPLIFIED LEAF*/ - 0, /* U+002edb: CJK RADICAL C-SIMPLIFIED WIND*/ - 0, /* U+002edc: CJK RADICAL C-SIMPLIFIED FLY*/ - 0, /* U+002edd: CJK RADICAL EAT ONE*/ - 0, /* U+002ede: CJK RADICAL EAT TWO*/ - 0, /* U+002edf: CJK RADICAL EAT THREE*/ - 0, /* U+002ee0: CJK RADICAL C-SIMPLIFIED EAT*/ - 0, /* U+002ee1: CJK RADICAL HEAD*/ - 0, /* U+002ee2: CJK RADICAL C-SIMPLIFIED HORSE*/ - 0, /* U+002ee3: CJK RADICAL BONE*/ - 0, /* U+002ee4: CJK RADICAL GHOST*/ - 0, /* U+002ee5: CJK RADICAL C-SIMPLIFIED FISH*/ - 0, /* U+002ee6: CJK RADICAL C-SIMPLIFIED BIRD*/ - 0, /* U+002ee7: CJK RADICAL C-SIMPLIFIED SALT*/ - 0, /* U+002ee8: CJK RADICAL SIMPLIFIED WHEAT*/ - 0, /* U+002ee9: CJK RADICAL SIMPLIFIED YELLOW*/ - 0, /* U+002eea: CJK RADICAL C-SIMPLIFIED FROG*/ - 0, /* U+002eeb: CJK RADICAL J-SIMPLIFIED EVEN*/ - 0, /* U+002eec: CJK RADICAL C-SIMPLIFIED EVEN*/ - 0, /* U+002eed: CJK RADICAL J-SIMPLIFIED TOOTH*/ - 0, /* U+002eee: CJK RADICAL C-SIMPLIFIED TOOTH*/ - 0, /* U+002eef: CJK RADICAL J-SIMPLIFIED DRAGON*/ - 0, /* U+002ef0: CJK RADICAL C-SIMPLIFIED DRAGON*/ - 0, /* U+002ef1: CJK RADICAL TURTLE*/ - 0, /* U+002ef2: CJK RADICAL J-SIMPLIFIED TURTLE*/ - 0, /* U+002ef3: CJK RADICAL C-SIMPLIFIED TURTLE*/ - 0, /* U+002ef4: */ - 0, /* U+002ef5: */ - 0, /* U+002ef6: */ - 0, /* U+002ef7: */ - 0, /* U+002ef8: */ - 0, /* U+002ef9: */ - 0, /* U+002efa: */ - 0, /* U+002efb: */ - 0, /* U+002efc: */ - 0, /* U+002efd: */ - 0, /* U+002efe: */ - 0, /* U+002eff: */ - 0, /* U+002f00: KANGXI RADICAL ONE*/ - 0, /* U+002f01: KANGXI RADICAL LINE*/ - 0, /* U+002f02: KANGXI RADICAL DOT*/ - 0, /* U+002f03: KANGXI RADICAL SLASH*/ - 0, /* U+002f04: KANGXI RADICAL SECOND*/ - 0, /* U+002f05: KANGXI RADICAL HOOK*/ - 0, /* U+002f06: KANGXI RADICAL TWO*/ - 0, /* U+002f07: KANGXI RADICAL LID*/ - 0, /* U+002f08: KANGXI RADICAL MAN*/ - 0, /* U+002f09: KANGXI RADICAL LEGS*/ - 0, /* U+002f0a: KANGXI RADICAL ENTER*/ - 0, /* U+002f0b: KANGXI RADICAL EIGHT*/ - 0, /* U+002f0c: KANGXI RADICAL DOWN BOX*/ - 0, /* U+002f0d: KANGXI RADICAL COVER*/ - 0, /* U+002f0e: KANGXI RADICAL ICE*/ - 0, /* U+002f0f: KANGXI RADICAL TABLE*/ - 0, /* U+002f10: KANGXI RADICAL OPEN BOX*/ - 0, /* U+002f11: KANGXI RADICAL KNIFE*/ - 0, /* U+002f12: KANGXI RADICAL POWER*/ - 0, /* U+002f13: KANGXI RADICAL WRAP*/ - 0, /* U+002f14: KANGXI RADICAL SPOON*/ - 0, /* U+002f15: KANGXI RADICAL RIGHT OPEN BOX*/ - 0, /* U+002f16: KANGXI RADICAL HIDING ENCLOSURE*/ - 0, /* U+002f17: KANGXI RADICAL TEN*/ - 0, /* U+002f18: KANGXI RADICAL DIVINATION*/ - 0, /* U+002f19: KANGXI RADICAL SEAL*/ - 0, /* U+002f1a: KANGXI RADICAL CLIFF*/ - 0, /* U+002f1b: KANGXI RADICAL PRIVATE*/ - 0, /* U+002f1c: KANGXI RADICAL AGAIN*/ - 0, /* U+002f1d: KANGXI RADICAL MOUTH*/ - 0, /* U+002f1e: KANGXI RADICAL ENCLOSURE*/ - 0, /* U+002f1f: KANGXI RADICAL EARTH*/ - 0, /* U+002f20: KANGXI RADICAL SCHOLAR*/ - 0, /* U+002f21: KANGXI RADICAL GO*/ - 0, /* U+002f22: KANGXI RADICAL GO SLOWLY*/ - 0, /* U+002f23: KANGXI RADICAL EVENING*/ - 0, /* U+002f24: KANGXI RADICAL BIG*/ - 0, /* U+002f25: KANGXI RADICAL WOMAN*/ - 0, /* U+002f26: KANGXI RADICAL CHILD*/ - 0, /* U+002f27: KANGXI RADICAL ROOF*/ - 0, /* U+002f28: KANGXI RADICAL INCH*/ - 0, /* U+002f29: KANGXI RADICAL SMALL*/ - 0, /* U+002f2a: KANGXI RADICAL LAME*/ - 0, /* U+002f2b: KANGXI RADICAL CORPSE*/ - 0, /* U+002f2c: KANGXI RADICAL SPROUT*/ - 0, /* U+002f2d: KANGXI RADICAL MOUNTAIN*/ - 0, /* U+002f2e: KANGXI RADICAL RIVER*/ - 0, /* U+002f2f: KANGXI RADICAL WORK*/ - 0, /* U+002f30: KANGXI RADICAL ONESELF*/ - 0, /* U+002f31: KANGXI RADICAL TURBAN*/ - 0, /* U+002f32: KANGXI RADICAL DRY*/ - 0, /* U+002f33: KANGXI RADICAL SHORT THREAD*/ - 0, /* U+002f34: KANGXI RADICAL DOTTED CLIFF*/ - 0, /* U+002f35: KANGXI RADICAL LONG STRIDE*/ - 0, /* U+002f36: KANGXI RADICAL TWO HANDS*/ - 0, /* U+002f37: KANGXI RADICAL SHOOT*/ - 0, /* U+002f38: KANGXI RADICAL BOW*/ - 0, /* U+002f39: KANGXI RADICAL SNOUT*/ - 0, /* U+002f3a: KANGXI RADICAL BRISTLE*/ - 0, /* U+002f3b: KANGXI RADICAL STEP*/ - 0, /* U+002f3c: KANGXI RADICAL HEART*/ - 0, /* U+002f3d: KANGXI RADICAL HALBERD*/ - 0, /* U+002f3e: KANGXI RADICAL DOOR*/ - 0, /* U+002f3f: KANGXI RADICAL HAND*/ - 0, /* U+002f40: KANGXI RADICAL BRANCH*/ - 0, /* U+002f41: KANGXI RADICAL RAP*/ - 0, /* U+002f42: KANGXI RADICAL SCRIPT*/ - 0, /* U+002f43: KANGXI RADICAL DIPPER*/ - 0, /* U+002f44: KANGXI RADICAL AXE*/ - 0, /* U+002f45: KANGXI RADICAL SQUARE*/ - 0, /* U+002f46: KANGXI RADICAL NOT*/ - 0, /* U+002f47: KANGXI RADICAL SUN*/ - 0, /* U+002f48: KANGXI RADICAL SAY*/ - 0, /* U+002f49: KANGXI RADICAL MOON*/ - 0, /* U+002f4a: KANGXI RADICAL TREE*/ - 0, /* U+002f4b: KANGXI RADICAL LACK*/ - 0, /* U+002f4c: KANGXI RADICAL STOP*/ - 0, /* U+002f4d: KANGXI RADICAL DEATH*/ - 0, /* U+002f4e: KANGXI RADICAL WEAPON*/ - 0, /* U+002f4f: KANGXI RADICAL DO NOT*/ - 0, /* U+002f50: KANGXI RADICAL COMPARE*/ - 0, /* U+002f51: KANGXI RADICAL FUR*/ - 0, /* U+002f52: KANGXI RADICAL CLAN*/ - 0, /* U+002f53: KANGXI RADICAL STEAM*/ - 0, /* U+002f54: KANGXI RADICAL WATER*/ - 0, /* U+002f55: KANGXI RADICAL FIRE*/ - 0, /* U+002f56: KANGXI RADICAL CLAW*/ - 0, /* U+002f57: KANGXI RADICAL FATHER*/ - 0, /* U+002f58: KANGXI RADICAL DOUBLE X*/ - 0, /* U+002f59: KANGXI RADICAL HALF TREE TRUNK*/ - 0, /* U+002f5a: KANGXI RADICAL SLICE*/ - 0, /* U+002f5b: KANGXI RADICAL FANG*/ - 0, /* U+002f5c: KANGXI RADICAL COW*/ - 0, /* U+002f5d: KANGXI RADICAL DOG*/ - 0, /* U+002f5e: KANGXI RADICAL PROFOUND*/ - 0, /* U+002f5f: KANGXI RADICAL JADE*/ - 0, /* U+002f60: KANGXI RADICAL MELON*/ - 0, /* U+002f61: KANGXI RADICAL TILE*/ - 0, /* U+002f62: KANGXI RADICAL SWEET*/ - 0, /* U+002f63: KANGXI RADICAL LIFE*/ - 0, /* U+002f64: KANGXI RADICAL USE*/ - 0, /* U+002f65: KANGXI RADICAL FIELD*/ - 0, /* U+002f66: KANGXI RADICAL BOLT OF CLOTH*/ - 0, /* U+002f67: KANGXI RADICAL SICKNESS*/ - 0, /* U+002f68: KANGXI RADICAL DOTTED TENT*/ - 0, /* U+002f69: KANGXI RADICAL WHITE*/ - 0, /* U+002f6a: KANGXI RADICAL SKIN*/ - 0, /* U+002f6b: KANGXI RADICAL DISH*/ - 0, /* U+002f6c: KANGXI RADICAL EYE*/ - 0, /* U+002f6d: KANGXI RADICAL SPEAR*/ - 0, /* U+002f6e: KANGXI RADICAL ARROW*/ - 0, /* U+002f6f: KANGXI RADICAL STONE*/ - 0, /* U+002f70: KANGXI RADICAL SPIRIT*/ - 0, /* U+002f71: KANGXI RADICAL TRACK*/ - 0, /* U+002f72: KANGXI RADICAL GRAIN*/ - 0, /* U+002f73: KANGXI RADICAL CAVE*/ - 0, /* U+002f74: KANGXI RADICAL STAND*/ - 0, /* U+002f75: KANGXI RADICAL BAMBOO*/ - 0, /* U+002f76: KANGXI RADICAL RICE*/ - 0, /* U+002f77: KANGXI RADICAL SILK*/ - 0, /* U+002f78: KANGXI RADICAL JAR*/ - 0, /* U+002f79: KANGXI RADICAL NET*/ - 0, /* U+002f7a: KANGXI RADICAL SHEEP*/ - 0, /* U+002f7b: KANGXI RADICAL FEATHER*/ - 0, /* U+002f7c: KANGXI RADICAL OLD*/ - 0, /* U+002f7d: KANGXI RADICAL AND*/ - 0, /* U+002f7e: KANGXI RADICAL PLOW*/ - 0, /* U+002f7f: KANGXI RADICAL EAR*/ - 0, /* U+002f80: KANGXI RADICAL BRUSH*/ - 0, /* U+002f81: KANGXI RADICAL MEAT*/ - 0, /* U+002f82: KANGXI RADICAL MINISTER*/ - 0, /* U+002f83: KANGXI RADICAL SELF*/ - 0, /* U+002f84: KANGXI RADICAL ARRIVE*/ - 0, /* U+002f85: KANGXI RADICAL MORTAR*/ - 0, /* U+002f86: KANGXI RADICAL TONGUE*/ - 0, /* U+002f87: KANGXI RADICAL OPPOSE*/ - 0, /* U+002f88: KANGXI RADICAL BOAT*/ - 0, /* U+002f89: KANGXI RADICAL STOPPING*/ - 0, /* U+002f8a: KANGXI RADICAL COLOR*/ - 0, /* U+002f8b: KANGXI RADICAL GRASS*/ - 0, /* U+002f8c: KANGXI RADICAL TIGER*/ - 0, /* U+002f8d: KANGXI RADICAL INSECT*/ - 0, /* U+002f8e: KANGXI RADICAL BLOOD*/ - 0, /* U+002f8f: KANGXI RADICAL WALK ENCLOSURE*/ - 0, /* U+002f90: KANGXI RADICAL CLOTHES*/ - 0, /* U+002f91: KANGXI RADICAL WEST*/ - 0, /* U+002f92: KANGXI RADICAL SEE*/ - 0, /* U+002f93: KANGXI RADICAL HORN*/ - 0, /* U+002f94: KANGXI RADICAL SPEECH*/ - 0, /* U+002f95: KANGXI RADICAL VALLEY*/ - 0, /* U+002f96: KANGXI RADICAL BEAN*/ - 0, /* U+002f97: KANGXI RADICAL PIG*/ - 0, /* U+002f98: KANGXI RADICAL BADGER*/ - 0, /* U+002f99: KANGXI RADICAL SHELL*/ - 0, /* U+002f9a: KANGXI RADICAL RED*/ - 0, /* U+002f9b: KANGXI RADICAL RUN*/ - 0, /* U+002f9c: KANGXI RADICAL FOOT*/ - 0, /* U+002f9d: KANGXI RADICAL BODY*/ - 0, /* U+002f9e: KANGXI RADICAL CART*/ - 0, /* U+002f9f: KANGXI RADICAL BITTER*/ - 0, /* U+002fa0: KANGXI RADICAL MORNING*/ - 0, /* U+002fa1: KANGXI RADICAL WALK*/ - 0, /* U+002fa2: KANGXI RADICAL CITY*/ - 0, /* U+002fa3: KANGXI RADICAL WINE*/ - 0, /* U+002fa4: KANGXI RADICAL DISTINGUISH*/ - 0, /* U+002fa5: KANGXI RADICAL VILLAGE*/ - 0, /* U+002fa6: KANGXI RADICAL GOLD*/ - 0, /* U+002fa7: KANGXI RADICAL LONG*/ - 0, /* U+002fa8: KANGXI RADICAL GATE*/ - 0, /* U+002fa9: KANGXI RADICAL MOUND*/ - 0, /* U+002faa: KANGXI RADICAL SLAVE*/ - 0, /* U+002fab: KANGXI RADICAL SHORT TAILED BIRD*/ - 0, /* U+002fac: KANGXI RADICAL RAIN*/ - 0, /* U+002fad: KANGXI RADICAL BLUE*/ - 0, /* U+002fae: KANGXI RADICAL WRONG*/ - 0, /* U+002faf: KANGXI RADICAL FACE*/ - 0, /* U+002fb0: KANGXI RADICAL LEATHER*/ - 0, /* U+002fb1: KANGXI RADICAL TANNED LEATHER*/ - 0, /* U+002fb2: KANGXI RADICAL LEEK*/ - 0, /* U+002fb3: KANGXI RADICAL SOUND*/ - 0, /* U+002fb4: KANGXI RADICAL LEAF*/ - 0, /* U+002fb5: KANGXI RADICAL WIND*/ - 0, /* U+002fb6: KANGXI RADICAL FLY*/ - 0, /* U+002fb7: KANGXI RADICAL EAT*/ - 0, /* U+002fb8: KANGXI RADICAL HEAD*/ - 0, /* U+002fb9: KANGXI RADICAL FRAGRANT*/ - 0, /* U+002fba: KANGXI RADICAL HORSE*/ - 0, /* U+002fbb: KANGXI RADICAL BONE*/ - 0, /* U+002fbc: KANGXI RADICAL TALL*/ - 0, /* U+002fbd: KANGXI RADICAL HAIR*/ - 0, /* U+002fbe: KANGXI RADICAL FIGHT*/ - 0, /* U+002fbf: KANGXI RADICAL SACRIFICIAL WINE*/ - 0, /* U+002fc0: KANGXI RADICAL CAULDRON*/ - 0, /* U+002fc1: KANGXI RADICAL GHOST*/ - 0, /* U+002fc2: KANGXI RADICAL FISH*/ - 0, /* U+002fc3: KANGXI RADICAL BIRD*/ - 0, /* U+002fc4: KANGXI RADICAL SALT*/ - 0, /* U+002fc5: KANGXI RADICAL DEER*/ - 0, /* U+002fc6: KANGXI RADICAL WHEAT*/ - 0, /* U+002fc7: KANGXI RADICAL HEMP*/ - 0, /* U+002fc8: KANGXI RADICAL YELLOW*/ - 0, /* U+002fc9: KANGXI RADICAL MILLET*/ - 0, /* U+002fca: KANGXI RADICAL BLACK*/ - 0, /* U+002fcb: KANGXI RADICAL EMBROIDERY*/ - 0, /* U+002fcc: KANGXI RADICAL FROG*/ - 0, /* U+002fcd: KANGXI RADICAL TRIPOD*/ - 0, /* U+002fce: KANGXI RADICAL DRUM*/ - 0, /* U+002fcf: KANGXI RADICAL RAT*/ - 0, /* U+002fd0: KANGXI RADICAL NOSE*/ - 0, /* U+002fd1: KANGXI RADICAL EVEN*/ - 0, /* U+002fd2: KANGXI RADICAL TOOTH*/ - 0, /* U+002fd3: KANGXI RADICAL DRAGON*/ - 0, /* U+002fd4: KANGXI RADICAL TURTLE*/ - 0, /* U+002fd5: KANGXI RADICAL FLUTE*/ - 0, /* U+002fd6: */ - 0, /* U+002fd7: */ - 0, /* U+002fd8: */ - 0, /* U+002fd9: */ - 0, /* U+002fda: */ - 0, /* U+002fdb: */ - 0, /* U+002fdc: */ - 0, /* U+002fdd: */ - 0, /* U+002fde: */ - 0, /* U+002fdf: */ - 0, /* U+002fe0: */ - 0, /* U+002fe1: */ - 0, /* U+002fe2: */ - 0, /* U+002fe3: */ - 0, /* U+002fe4: */ - 0, /* U+002fe5: */ - 0, /* U+002fe6: */ - 0, /* U+002fe7: */ - 0, /* U+002fe8: */ - 0, /* U+002fe9: */ - 0, /* U+002fea: */ - 0, /* U+002feb: */ - 0, /* U+002fec: */ - 0, /* U+002fed: */ - 0, /* U+002fee: */ - 0, /* U+002fef: */ - 0, /* U+002ff0: IDEOGRAPHIC DESCRIPTION CHARACTER LEFT TO RIGHT*/ - 0, /* U+002ff1: IDEOGRAPHIC DESCRIPTION CHARACTER ABOVE TO BELOW*/ - 0, /* U+002ff2: IDEOGRAPHIC DESCRIPTION CHARACTER LEFT TO MIDDLE AND RIGHT*/ - 0, /* U+002ff3: IDEOGRAPHIC DESCRIPTION CHARACTER ABOVE TO MIDDLE AND BELOW*/ - 0, /* U+002ff4: IDEOGRAPHIC DESCRIPTION CHARACTER FULL SURROUND*/ - 0, /* U+002ff5: IDEOGRAPHIC DESCRIPTION CHARACTER SURROUND FROM ABOVE*/ - 0, /* U+002ff6: IDEOGRAPHIC DESCRIPTION CHARACTER SURROUND FROM BELOW*/ - 0, /* U+002ff7: IDEOGRAPHIC DESCRIPTION CHARACTER SURROUND FROM LEFT*/ - 0, /* U+002ff8: IDEOGRAPHIC DESCRIPTION CHARACTER SURROUND FROM UPPER LEFT*/ - 0, /* U+002ff9: IDEOGRAPHIC DESCRIPTION CHARACTER SURROUND FROM UPPER RIGHT*/ - 0, /* U+002ffa: IDEOGRAPHIC DESCRIPTION CHARACTER SURROUND FROM LOWER LEFT*/ - 0, /* U+002ffb: IDEOGRAPHIC DESCRIPTION CHARACTER OVERLAID*/ - 0, /* U+002ffc: */ - 0, /* U+002ffd: */ - 0, /* U+002ffe: */ - 0, /* U+002fff: */ - RTUNI_WSPACE, /* U+003000: IDEOGRAPHIC SPACE*/ - 0, /* U+003001: IDEOGRAPHIC COMMA*/ - 0, /* U+003002: IDEOGRAPHIC FULL STOP*/ - 0, /* U+003003: DITTO MARK*/ - 0, /* U+003004: JAPANESE INDUSTRIAL STANDARD SYMBOL*/ - RTUNI_ALPHA, /* U+003005: IDEOGRAPHIC ITERATION MARK*/ - RTUNI_ALPHA, /* U+003006: IDEOGRAPHIC CLOSING MARK*/ - RTUNI_ALPHA, /* U+003007: IDEOGRAPHIC NUMBER ZERO*/ - 0, /* U+003008: LEFT ANGLE BRACKET*/ - 0, /* U+003009: RIGHT ANGLE BRACKET*/ - 0, /* U+00300a: LEFT DOUBLE ANGLE BRACKET*/ - 0, /* U+00300b: RIGHT DOUBLE ANGLE BRACKET*/ - 0, /* U+00300c: LEFT CORNER BRACKET*/ - 0, /* U+00300d: RIGHT CORNER BRACKET*/ - 0, /* U+00300e: LEFT WHITE CORNER BRACKET*/ - 0, /* U+00300f: RIGHT WHITE CORNER BRACKET*/ - 0, /* U+003010: LEFT BLACK LENTICULAR BRACKET*/ - 0, /* U+003011: RIGHT BLACK LENTICULAR BRACKET*/ - 0, /* U+003012: POSTAL MARK*/ - 0, /* U+003013: GETA MARK*/ - 0, /* U+003014: LEFT TORTOISE SHELL BRACKET*/ - 0, /* U+003015: RIGHT TORTOISE SHELL BRACKET*/ - 0, /* U+003016: LEFT WHITE LENTICULAR BRACKET*/ - 0, /* U+003017: RIGHT WHITE LENTICULAR BRACKET*/ - 0, /* U+003018: LEFT WHITE TORTOISE SHELL BRACKET*/ - 0, /* U+003019: RIGHT WHITE TORTOISE SHELL BRACKET*/ - 0, /* U+00301a: LEFT WHITE SQUARE BRACKET*/ - 0, /* U+00301b: RIGHT WHITE SQUARE BRACKET*/ - 0, /* U+00301c: WAVE DASH*/ - 0, /* U+00301d: REVERSED DOUBLE PRIME QUOTATION MARK*/ - 0, /* U+00301e: DOUBLE PRIME QUOTATION MARK*/ - 0, /* U+00301f: LOW DOUBLE PRIME QUOTATION MARK*/ - 0, /* U+003020: POSTAL MARK FACE*/ - RTUNI_ALPHA, /* U+003021: HANGZHOU NUMERAL ONE*/ - RTUNI_ALPHA, /* U+003022: HANGZHOU NUMERAL TWO*/ - RTUNI_ALPHA, /* U+003023: HANGZHOU NUMERAL THREE*/ - RTUNI_ALPHA, /* U+003024: HANGZHOU NUMERAL FOUR*/ - RTUNI_ALPHA, /* U+003025: HANGZHOU NUMERAL FIVE*/ - RTUNI_ALPHA, /* U+003026: HANGZHOU NUMERAL SIX*/ - RTUNI_ALPHA, /* U+003027: HANGZHOU NUMERAL SEVEN*/ - RTUNI_ALPHA, /* U+003028: HANGZHOU NUMERAL EIGHT*/ - RTUNI_ALPHA, /* U+003029: HANGZHOU NUMERAL NINE*/ - 0, /* U+00302a: IDEOGRAPHIC LEVEL TONE MARK*/ - 0, /* U+00302b: IDEOGRAPHIC RISING TONE MARK*/ - 0, /* U+00302c: IDEOGRAPHIC DEPARTING TONE MARK*/ - 0, /* U+00302d: IDEOGRAPHIC ENTERING TONE MARK*/ - 0, /* U+00302e: HANGUL SINGLE DOT TONE MARK*/ - 0, /* U+00302f: HANGUL DOUBLE DOT TONE MARK*/ - 0, /* U+003030: WAVY DASH*/ - RTUNI_ALPHA, /* U+003031: VERTICAL KANA REPEAT MARK*/ - RTUNI_ALPHA, /* U+003032: VERTICAL KANA REPEAT WITH VOICED SOUND MARK*/ - RTUNI_ALPHA, /* U+003033: VERTICAL KANA REPEAT MARK UPPER HALF*/ - RTUNI_ALPHA, /* U+003034: VERTICAL KANA REPEAT WITH VOICED SOUND MARK UPPER HALF*/ - RTUNI_ALPHA, /* U+003035: VERTICAL KANA REPEAT MARK LOWER HALF*/ - 0, /* U+003036: CIRCLED POSTAL MARK*/ - 0, /* U+003037: IDEOGRAPHIC TELEGRAPH LINE FEED SEPARATOR SYMBOL*/ - RTUNI_ALPHA, /* U+003038: HANGZHOU NUMERAL TEN*/ - RTUNI_ALPHA, /* U+003039: HANGZHOU NUMERAL TWENTY*/ - RTUNI_ALPHA, /* U+00303a: HANGZHOU NUMERAL THIRTY*/ - RTUNI_ALPHA, /* U+00303b: VERTICAL IDEOGRAPHIC ITERATION MARK*/ - RTUNI_ALPHA, /* U+00303c: MASU MARK*/ - 0, /* U+00303d: PART ALTERNATION MARK*/ - 0, /* U+00303e: IDEOGRAPHIC VARIATION INDICATOR*/ - 0, /* U+00303f: IDEOGRAPHIC HALF FILL SPACE*/ - 0, /* U+003040: */ - RTUNI_ALPHA, /* U+003041: HIRAGANA LETTER SMALL A*/ - RTUNI_ALPHA, /* U+003042: HIRAGANA LETTER A*/ - RTUNI_ALPHA, /* U+003043: HIRAGANA LETTER SMALL I*/ - RTUNI_ALPHA, /* U+003044: HIRAGANA LETTER I*/ - RTUNI_ALPHA, /* U+003045: HIRAGANA LETTER SMALL U*/ - RTUNI_ALPHA, /* U+003046: HIRAGANA LETTER U*/ - RTUNI_ALPHA, /* U+003047: HIRAGANA LETTER SMALL E*/ - RTUNI_ALPHA, /* U+003048: HIRAGANA LETTER E*/ - RTUNI_ALPHA, /* U+003049: HIRAGANA LETTER SMALL O*/ - RTUNI_ALPHA, /* U+00304a: HIRAGANA LETTER O*/ - RTUNI_ALPHA, /* U+00304b: HIRAGANA LETTER KA*/ - RTUNI_ALPHA, /* U+00304c: HIRAGANA LETTER GA*/ - RTUNI_ALPHA, /* U+00304d: HIRAGANA LETTER KI*/ - RTUNI_ALPHA, /* U+00304e: HIRAGANA LETTER GI*/ - RTUNI_ALPHA, /* U+00304f: HIRAGANA LETTER KU*/ - RTUNI_ALPHA, /* U+003050: HIRAGANA LETTER GU*/ - RTUNI_ALPHA, /* U+003051: HIRAGANA LETTER KE*/ - RTUNI_ALPHA, /* U+003052: HIRAGANA LETTER GE*/ - RTUNI_ALPHA, /* U+003053: HIRAGANA LETTER KO*/ - RTUNI_ALPHA, /* U+003054: HIRAGANA LETTER GO*/ - RTUNI_ALPHA, /* U+003055: HIRAGANA LETTER SA*/ - RTUNI_ALPHA, /* U+003056: HIRAGANA LETTER ZA*/ - RTUNI_ALPHA, /* U+003057: HIRAGANA LETTER SI*/ - RTUNI_ALPHA, /* U+003058: HIRAGANA LETTER ZI*/ - RTUNI_ALPHA, /* U+003059: HIRAGANA LETTER SU*/ - RTUNI_ALPHA, /* U+00305a: HIRAGANA LETTER ZU*/ - RTUNI_ALPHA, /* U+00305b: HIRAGANA LETTER SE*/ - RTUNI_ALPHA, /* U+00305c: HIRAGANA LETTER ZE*/ - RTUNI_ALPHA, /* U+00305d: HIRAGANA LETTER SO*/ - RTUNI_ALPHA, /* U+00305e: HIRAGANA LETTER ZO*/ - RTUNI_ALPHA, /* U+00305f: HIRAGANA LETTER TA*/ - RTUNI_ALPHA, /* U+003060: HIRAGANA LETTER DA*/ - RTUNI_ALPHA, /* U+003061: HIRAGANA LETTER TI*/ - RTUNI_ALPHA, /* U+003062: HIRAGANA LETTER DI*/ - RTUNI_ALPHA, /* U+003063: HIRAGANA LETTER SMALL TU*/ - RTUNI_ALPHA, /* U+003064: HIRAGANA LETTER TU*/ - RTUNI_ALPHA, /* U+003065: HIRAGANA LETTER DU*/ - RTUNI_ALPHA, /* U+003066: HIRAGANA LETTER TE*/ - RTUNI_ALPHA, /* U+003067: HIRAGANA LETTER DE*/ - RTUNI_ALPHA, /* U+003068: HIRAGANA LETTER TO*/ - RTUNI_ALPHA, /* U+003069: HIRAGANA LETTER DO*/ - RTUNI_ALPHA, /* U+00306a: HIRAGANA LETTER NA*/ - RTUNI_ALPHA, /* U+00306b: HIRAGANA LETTER NI*/ - RTUNI_ALPHA, /* U+00306c: HIRAGANA LETTER NU*/ - RTUNI_ALPHA, /* U+00306d: HIRAGANA LETTER NE*/ - RTUNI_ALPHA, /* U+00306e: HIRAGANA LETTER NO*/ - RTUNI_ALPHA, /* U+00306f: HIRAGANA LETTER HA*/ - RTUNI_ALPHA, /* U+003070: HIRAGANA LETTER BA*/ - RTUNI_ALPHA, /* U+003071: HIRAGANA LETTER PA*/ - RTUNI_ALPHA, /* U+003072: HIRAGANA LETTER HI*/ - RTUNI_ALPHA, /* U+003073: HIRAGANA LETTER BI*/ - RTUNI_ALPHA, /* U+003074: HIRAGANA LETTER PI*/ - RTUNI_ALPHA, /* U+003075: HIRAGANA LETTER HU*/ - RTUNI_ALPHA, /* U+003076: HIRAGANA LETTER BU*/ - RTUNI_ALPHA, /* U+003077: HIRAGANA LETTER PU*/ - RTUNI_ALPHA, /* U+003078: HIRAGANA LETTER HE*/ - RTUNI_ALPHA, /* U+003079: HIRAGANA LETTER BE*/ - RTUNI_ALPHA, /* U+00307a: HIRAGANA LETTER PE*/ - RTUNI_ALPHA, /* U+00307b: HIRAGANA LETTER HO*/ - RTUNI_ALPHA, /* U+00307c: HIRAGANA LETTER BO*/ - RTUNI_ALPHA, /* U+00307d: HIRAGANA LETTER PO*/ - RTUNI_ALPHA, /* U+00307e: HIRAGANA LETTER MA*/ - RTUNI_ALPHA, /* U+00307f: HIRAGANA LETTER MI*/ - RTUNI_ALPHA, /* U+003080: HIRAGANA LETTER MU*/ - RTUNI_ALPHA, /* U+003081: HIRAGANA LETTER ME*/ - RTUNI_ALPHA, /* U+003082: HIRAGANA LETTER MO*/ - RTUNI_ALPHA, /* U+003083: HIRAGANA LETTER SMALL YA*/ - RTUNI_ALPHA, /* U+003084: HIRAGANA LETTER YA*/ - RTUNI_ALPHA, /* U+003085: HIRAGANA LETTER SMALL YU*/ - RTUNI_ALPHA, /* U+003086: HIRAGANA LETTER YU*/ - RTUNI_ALPHA, /* U+003087: HIRAGANA LETTER SMALL YO*/ - RTUNI_ALPHA, /* U+003088: HIRAGANA LETTER YO*/ - RTUNI_ALPHA, /* U+003089: HIRAGANA LETTER RA*/ - RTUNI_ALPHA, /* U+00308a: HIRAGANA LETTER RI*/ - RTUNI_ALPHA, /* U+00308b: HIRAGANA LETTER RU*/ - RTUNI_ALPHA, /* U+00308c: HIRAGANA LETTER RE*/ - RTUNI_ALPHA, /* U+00308d: HIRAGANA LETTER RO*/ - RTUNI_ALPHA, /* U+00308e: HIRAGANA LETTER SMALL WA*/ - RTUNI_ALPHA, /* U+00308f: HIRAGANA LETTER WA*/ - RTUNI_ALPHA, /* U+003090: HIRAGANA LETTER WI*/ - RTUNI_ALPHA, /* U+003091: HIRAGANA LETTER WE*/ - RTUNI_ALPHA, /* U+003092: HIRAGANA LETTER WO*/ - RTUNI_ALPHA, /* U+003093: HIRAGANA LETTER N*/ - RTUNI_ALPHA, /* U+003094: HIRAGANA LETTER VU*/ - RTUNI_ALPHA, /* U+003095: HIRAGANA LETTER SMALL KA*/ - RTUNI_ALPHA, /* U+003096: HIRAGANA LETTER SMALL KE*/ - 0, /* U+003097: */ - 0, /* U+003098: */ - 0, /* U+003099: COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK*/ - 0, /* U+00309a: COMBINING KATAKANA-HIRAGANA SEMI-VOICED SOUND MARK*/ - 0, /* U+00309b: KATAKANA-HIRAGANA VOICED SOUND MARK*/ - 0, /* U+00309c: KATAKANA-HIRAGANA SEMI-VOICED SOUND MARK*/ - RTUNI_ALPHA, /* U+00309d: HIRAGANA ITERATION MARK*/ - RTUNI_ALPHA, /* U+00309e: HIRAGANA VOICED ITERATION MARK*/ - RTUNI_ALPHA, /* U+00309f: HIRAGANA DIGRAPH YORI*/ - 0, /* U+0030a0: KATAKANA-HIRAGANA DOUBLE HYPHEN*/ - RTUNI_ALPHA, /* U+0030a1: KATAKANA LETTER SMALL A*/ - RTUNI_ALPHA, /* U+0030a2: KATAKANA LETTER A*/ - RTUNI_ALPHA, /* U+0030a3: KATAKANA LETTER SMALL I*/ - RTUNI_ALPHA, /* U+0030a4: KATAKANA LETTER I*/ - RTUNI_ALPHA, /* U+0030a5: KATAKANA LETTER SMALL U*/ - RTUNI_ALPHA, /* U+0030a6: KATAKANA LETTER U*/ - RTUNI_ALPHA, /* U+0030a7: KATAKANA LETTER SMALL E*/ - RTUNI_ALPHA, /* U+0030a8: KATAKANA LETTER E*/ - RTUNI_ALPHA, /* U+0030a9: KATAKANA LETTER SMALL O*/ - RTUNI_ALPHA, /* U+0030aa: KATAKANA LETTER O*/ - RTUNI_ALPHA, /* U+0030ab: KATAKANA LETTER KA*/ - RTUNI_ALPHA, /* U+0030ac: KATAKANA LETTER GA*/ - RTUNI_ALPHA, /* U+0030ad: KATAKANA LETTER KI*/ - RTUNI_ALPHA, /* U+0030ae: KATAKANA LETTER GI*/ - RTUNI_ALPHA, /* U+0030af: KATAKANA LETTER KU*/ - RTUNI_ALPHA, /* U+0030b0: KATAKANA LETTER GU*/ - RTUNI_ALPHA, /* U+0030b1: KATAKANA LETTER KE*/ - RTUNI_ALPHA, /* U+0030b2: KATAKANA LETTER GE*/ - RTUNI_ALPHA, /* U+0030b3: KATAKANA LETTER KO*/ - RTUNI_ALPHA, /* U+0030b4: KATAKANA LETTER GO*/ - RTUNI_ALPHA, /* U+0030b5: KATAKANA LETTER SA*/ - RTUNI_ALPHA, /* U+0030b6: KATAKANA LETTER ZA*/ - RTUNI_ALPHA, /* U+0030b7: KATAKANA LETTER SI*/ - RTUNI_ALPHA, /* U+0030b8: KATAKANA LETTER ZI*/ - RTUNI_ALPHA, /* U+0030b9: KATAKANA LETTER SU*/ - RTUNI_ALPHA, /* U+0030ba: KATAKANA LETTER ZU*/ - RTUNI_ALPHA, /* U+0030bb: KATAKANA LETTER SE*/ - RTUNI_ALPHA, /* U+0030bc: KATAKANA LETTER ZE*/ - RTUNI_ALPHA, /* U+0030bd: KATAKANA LETTER SO*/ - RTUNI_ALPHA, /* U+0030be: KATAKANA LETTER ZO*/ - RTUNI_ALPHA, /* U+0030bf: KATAKANA LETTER TA*/ - RTUNI_ALPHA, /* U+0030c0: KATAKANA LETTER DA*/ - RTUNI_ALPHA, /* U+0030c1: KATAKANA LETTER TI*/ - RTUNI_ALPHA, /* U+0030c2: KATAKANA LETTER DI*/ - RTUNI_ALPHA, /* U+0030c3: KATAKANA LETTER SMALL TU*/ - RTUNI_ALPHA, /* U+0030c4: KATAKANA LETTER TU*/ - RTUNI_ALPHA, /* U+0030c5: KATAKANA LETTER DU*/ - RTUNI_ALPHA, /* U+0030c6: KATAKANA LETTER TE*/ - RTUNI_ALPHA, /* U+0030c7: KATAKANA LETTER DE*/ - RTUNI_ALPHA, /* U+0030c8: KATAKANA LETTER TO*/ - RTUNI_ALPHA, /* U+0030c9: KATAKANA LETTER DO*/ - RTUNI_ALPHA, /* U+0030ca: KATAKANA LETTER NA*/ - RTUNI_ALPHA, /* U+0030cb: KATAKANA LETTER NI*/ - RTUNI_ALPHA, /* U+0030cc: KATAKANA LETTER NU*/ - RTUNI_ALPHA, /* U+0030cd: KATAKANA LETTER NE*/ - RTUNI_ALPHA, /* U+0030ce: KATAKANA LETTER NO*/ - RTUNI_ALPHA, /* U+0030cf: KATAKANA LETTER HA*/ - RTUNI_ALPHA, /* U+0030d0: KATAKANA LETTER BA*/ - RTUNI_ALPHA, /* U+0030d1: KATAKANA LETTER PA*/ - RTUNI_ALPHA, /* U+0030d2: KATAKANA LETTER HI*/ - RTUNI_ALPHA, /* U+0030d3: KATAKANA LETTER BI*/ - RTUNI_ALPHA, /* U+0030d4: KATAKANA LETTER PI*/ - RTUNI_ALPHA, /* U+0030d5: KATAKANA LETTER HU*/ - RTUNI_ALPHA, /* U+0030d6: KATAKANA LETTER BU*/ - RTUNI_ALPHA, /* U+0030d7: KATAKANA LETTER PU*/ - RTUNI_ALPHA, /* U+0030d8: KATAKANA LETTER HE*/ - RTUNI_ALPHA, /* U+0030d9: KATAKANA LETTER BE*/ - RTUNI_ALPHA, /* U+0030da: KATAKANA LETTER PE*/ - RTUNI_ALPHA, /* U+0030db: KATAKANA LETTER HO*/ - RTUNI_ALPHA, /* U+0030dc: KATAKANA LETTER BO*/ - RTUNI_ALPHA, /* U+0030dd: KATAKANA LETTER PO*/ - RTUNI_ALPHA, /* U+0030de: KATAKANA LETTER MA*/ - RTUNI_ALPHA, /* U+0030df: KATAKANA LETTER MI*/ - RTUNI_ALPHA, /* U+0030e0: KATAKANA LETTER MU*/ - RTUNI_ALPHA, /* U+0030e1: KATAKANA LETTER ME*/ - RTUNI_ALPHA, /* U+0030e2: KATAKANA LETTER MO*/ - RTUNI_ALPHA, /* U+0030e3: KATAKANA LETTER SMALL YA*/ - RTUNI_ALPHA, /* U+0030e4: KATAKANA LETTER YA*/ - RTUNI_ALPHA, /* U+0030e5: KATAKANA LETTER SMALL YU*/ - RTUNI_ALPHA, /* U+0030e6: KATAKANA LETTER YU*/ - RTUNI_ALPHA, /* U+0030e7: KATAKANA LETTER SMALL YO*/ - RTUNI_ALPHA, /* U+0030e8: KATAKANA LETTER YO*/ - RTUNI_ALPHA, /* U+0030e9: KATAKANA LETTER RA*/ - RTUNI_ALPHA, /* U+0030ea: KATAKANA LETTER RI*/ - RTUNI_ALPHA, /* U+0030eb: KATAKANA LETTER RU*/ - RTUNI_ALPHA, /* U+0030ec: KATAKANA LETTER RE*/ - RTUNI_ALPHA, /* U+0030ed: KATAKANA LETTER RO*/ - RTUNI_ALPHA, /* U+0030ee: KATAKANA LETTER SMALL WA*/ - RTUNI_ALPHA, /* U+0030ef: KATAKANA LETTER WA*/ - RTUNI_ALPHA, /* U+0030f0: KATAKANA LETTER WI*/ - RTUNI_ALPHA, /* U+0030f1: KATAKANA LETTER WE*/ - RTUNI_ALPHA, /* U+0030f2: KATAKANA LETTER WO*/ - RTUNI_ALPHA, /* U+0030f3: KATAKANA LETTER N*/ - RTUNI_ALPHA, /* U+0030f4: KATAKANA LETTER VU*/ - RTUNI_ALPHA, /* U+0030f5: KATAKANA LETTER SMALL KA*/ - RTUNI_ALPHA, /* U+0030f6: KATAKANA LETTER SMALL KE*/ - RTUNI_ALPHA, /* U+0030f7: KATAKANA LETTER VA*/ - RTUNI_ALPHA, /* U+0030f8: KATAKANA LETTER VI*/ - RTUNI_ALPHA, /* U+0030f9: KATAKANA LETTER VE*/ - RTUNI_ALPHA, /* U+0030fa: KATAKANA LETTER VO*/ - 0, /* U+0030fb: KATAKANA MIDDLE DOT*/ - RTUNI_ALPHA, /* U+0030fc: KATAKANA-HIRAGANA PROLONGED SOUND MARK*/ - RTUNI_ALPHA, /* U+0030fd: KATAKANA ITERATION MARK*/ - RTUNI_ALPHA, /* U+0030fe: KATAKANA VOICED ITERATION MARK*/ - RTUNI_ALPHA, /* U+0030ff: KATAKANA DIGRAPH KOTO*/ - 0, /* U+003100: */ - 0, /* U+003101: */ - 0, /* U+003102: */ - 0, /* U+003103: */ - 0, /* U+003104: */ - RTUNI_ALPHA, /* U+003105: BOPOMOFO LETTER B*/ - RTUNI_ALPHA, /* U+003106: BOPOMOFO LETTER P*/ - RTUNI_ALPHA, /* U+003107: BOPOMOFO LETTER M*/ - RTUNI_ALPHA, /* U+003108: BOPOMOFO LETTER F*/ - RTUNI_ALPHA, /* U+003109: BOPOMOFO LETTER D*/ - RTUNI_ALPHA, /* U+00310a: BOPOMOFO LETTER T*/ - RTUNI_ALPHA, /* U+00310b: BOPOMOFO LETTER N*/ - RTUNI_ALPHA, /* U+00310c: BOPOMOFO LETTER L*/ - RTUNI_ALPHA, /* U+00310d: BOPOMOFO LETTER G*/ - RTUNI_ALPHA, /* U+00310e: BOPOMOFO LETTER K*/ - RTUNI_ALPHA, /* U+00310f: BOPOMOFO LETTER H*/ - RTUNI_ALPHA, /* U+003110: BOPOMOFO LETTER J*/ - RTUNI_ALPHA, /* U+003111: BOPOMOFO LETTER Q*/ - RTUNI_ALPHA, /* U+003112: BOPOMOFO LETTER X*/ - RTUNI_ALPHA, /* U+003113: BOPOMOFO LETTER ZH*/ - RTUNI_ALPHA, /* U+003114: BOPOMOFO LETTER CH*/ - RTUNI_ALPHA, /* U+003115: BOPOMOFO LETTER SH*/ - RTUNI_ALPHA, /* U+003116: BOPOMOFO LETTER R*/ - RTUNI_ALPHA, /* U+003117: BOPOMOFO LETTER Z*/ - RTUNI_ALPHA, /* U+003118: BOPOMOFO LETTER C*/ - RTUNI_ALPHA, /* U+003119: BOPOMOFO LETTER S*/ - RTUNI_ALPHA, /* U+00311a: BOPOMOFO LETTER A*/ - RTUNI_ALPHA, /* U+00311b: BOPOMOFO LETTER O*/ - RTUNI_ALPHA, /* U+00311c: BOPOMOFO LETTER E*/ - RTUNI_ALPHA, /* U+00311d: BOPOMOFO LETTER EH*/ - RTUNI_ALPHA, /* U+00311e: BOPOMOFO LETTER AI*/ - RTUNI_ALPHA, /* U+00311f: BOPOMOFO LETTER EI*/ - RTUNI_ALPHA, /* U+003120: BOPOMOFO LETTER AU*/ - RTUNI_ALPHA, /* U+003121: BOPOMOFO LETTER OU*/ - RTUNI_ALPHA, /* U+003122: BOPOMOFO LETTER AN*/ - RTUNI_ALPHA, /* U+003123: BOPOMOFO LETTER EN*/ - RTUNI_ALPHA, /* U+003124: BOPOMOFO LETTER ANG*/ - RTUNI_ALPHA, /* U+003125: BOPOMOFO LETTER ENG*/ - RTUNI_ALPHA, /* U+003126: BOPOMOFO LETTER ER*/ - RTUNI_ALPHA, /* U+003127: BOPOMOFO LETTER I*/ - RTUNI_ALPHA, /* U+003128: BOPOMOFO LETTER U*/ - RTUNI_ALPHA, /* U+003129: BOPOMOFO LETTER IU*/ - RTUNI_ALPHA, /* U+00312a: BOPOMOFO LETTER V*/ - RTUNI_ALPHA, /* U+00312b: BOPOMOFO LETTER NG*/ - RTUNI_ALPHA, /* U+00312c: BOPOMOFO LETTER GN*/ - 0, /* U+00312d: */ - 0, /* U+00312e: */ - 0, /* U+00312f: */ - 0, /* U+003130: */ - RTUNI_ALPHA, /* U+003131: HANGUL LETTER KIYEOK*/ - RTUNI_ALPHA, /* U+003132: HANGUL LETTER SSANGKIYEOK*/ - RTUNI_ALPHA, /* U+003133: HANGUL LETTER KIYEOK-SIOS*/ - RTUNI_ALPHA, /* U+003134: HANGUL LETTER NIEUN*/ - RTUNI_ALPHA, /* U+003135: HANGUL LETTER NIEUN-CIEUC*/ - RTUNI_ALPHA, /* U+003136: HANGUL LETTER NIEUN-HIEUH*/ - RTUNI_ALPHA, /* U+003137: HANGUL LETTER TIKEUT*/ - RTUNI_ALPHA, /* U+003138: HANGUL LETTER SSANGTIKEUT*/ - RTUNI_ALPHA, /* U+003139: HANGUL LETTER RIEUL*/ - RTUNI_ALPHA, /* U+00313a: HANGUL LETTER RIEUL-KIYEOK*/ - RTUNI_ALPHA, /* U+00313b: HANGUL LETTER RIEUL-MIEUM*/ - RTUNI_ALPHA, /* U+00313c: HANGUL LETTER RIEUL-PIEUP*/ - RTUNI_ALPHA, /* U+00313d: HANGUL LETTER RIEUL-SIOS*/ - RTUNI_ALPHA, /* U+00313e: HANGUL LETTER RIEUL-THIEUTH*/ - RTUNI_ALPHA, /* U+00313f: HANGUL LETTER RIEUL-PHIEUPH*/ - RTUNI_ALPHA, /* U+003140: HANGUL LETTER RIEUL-HIEUH*/ - RTUNI_ALPHA, /* U+003141: HANGUL LETTER MIEUM*/ - RTUNI_ALPHA, /* U+003142: HANGUL LETTER PIEUP*/ - RTUNI_ALPHA, /* U+003143: HANGUL LETTER SSANGPIEUP*/ - RTUNI_ALPHA, /* U+003144: HANGUL LETTER PIEUP-SIOS*/ - RTUNI_ALPHA, /* U+003145: HANGUL LETTER SIOS*/ - RTUNI_ALPHA, /* U+003146: HANGUL LETTER SSANGSIOS*/ - RTUNI_ALPHA, /* U+003147: HANGUL LETTER IEUNG*/ - RTUNI_ALPHA, /* U+003148: HANGUL LETTER CIEUC*/ - RTUNI_ALPHA, /* U+003149: HANGUL LETTER SSANGCIEUC*/ - RTUNI_ALPHA, /* U+00314a: HANGUL LETTER CHIEUCH*/ - RTUNI_ALPHA, /* U+00314b: HANGUL LETTER KHIEUKH*/ - RTUNI_ALPHA, /* U+00314c: HANGUL LETTER THIEUTH*/ - RTUNI_ALPHA, /* U+00314d: HANGUL LETTER PHIEUPH*/ - RTUNI_ALPHA, /* U+00314e: HANGUL LETTER HIEUH*/ - RTUNI_ALPHA, /* U+00314f: HANGUL LETTER A*/ - RTUNI_ALPHA, /* U+003150: HANGUL LETTER AE*/ - RTUNI_ALPHA, /* U+003151: HANGUL LETTER YA*/ - RTUNI_ALPHA, /* U+003152: HANGUL LETTER YAE*/ - RTUNI_ALPHA, /* U+003153: HANGUL LETTER EO*/ - RTUNI_ALPHA, /* U+003154: HANGUL LETTER E*/ - RTUNI_ALPHA, /* U+003155: HANGUL LETTER YEO*/ - RTUNI_ALPHA, /* U+003156: HANGUL LETTER YE*/ - RTUNI_ALPHA, /* U+003157: HANGUL LETTER O*/ - RTUNI_ALPHA, /* U+003158: HANGUL LETTER WA*/ - RTUNI_ALPHA, /* U+003159: HANGUL LETTER WAE*/ - RTUNI_ALPHA, /* U+00315a: HANGUL LETTER OE*/ - RTUNI_ALPHA, /* U+00315b: HANGUL LETTER YO*/ - RTUNI_ALPHA, /* U+00315c: HANGUL LETTER U*/ - RTUNI_ALPHA, /* U+00315d: HANGUL LETTER WEO*/ - RTUNI_ALPHA, /* U+00315e: HANGUL LETTER WE*/ - RTUNI_ALPHA, /* U+00315f: HANGUL LETTER WI*/ - RTUNI_ALPHA, /* U+003160: HANGUL LETTER YU*/ - RTUNI_ALPHA, /* U+003161: HANGUL LETTER EU*/ - RTUNI_ALPHA, /* U+003162: HANGUL LETTER YI*/ - RTUNI_ALPHA, /* U+003163: HANGUL LETTER I*/ - RTUNI_ALPHA, /* U+003164: HANGUL FILLER*/ - RTUNI_ALPHA, /* U+003165: HANGUL LETTER SSANGNIEUN*/ - RTUNI_ALPHA, /* U+003166: HANGUL LETTER NIEUN-TIKEUT*/ - RTUNI_ALPHA, /* U+003167: HANGUL LETTER NIEUN-SIOS*/ - RTUNI_ALPHA, /* U+003168: HANGUL LETTER NIEUN-PANSIOS*/ - RTUNI_ALPHA, /* U+003169: HANGUL LETTER RIEUL-KIYEOK-SIOS*/ - RTUNI_ALPHA, /* U+00316a: HANGUL LETTER RIEUL-TIKEUT*/ - RTUNI_ALPHA, /* U+00316b: HANGUL LETTER RIEUL-PIEUP-SIOS*/ - RTUNI_ALPHA, /* U+00316c: HANGUL LETTER RIEUL-PANSIOS*/ - RTUNI_ALPHA, /* U+00316d: HANGUL LETTER RIEUL-YEORINHIEUH*/ - RTUNI_ALPHA, /* U+00316e: HANGUL LETTER MIEUM-PIEUP*/ - RTUNI_ALPHA, /* U+00316f: HANGUL LETTER MIEUM-SIOS*/ - RTUNI_ALPHA, /* U+003170: HANGUL LETTER MIEUM-PANSIOS*/ - RTUNI_ALPHA, /* U+003171: HANGUL LETTER KAPYEOUNMIEUM*/ - RTUNI_ALPHA, /* U+003172: HANGUL LETTER PIEUP-KIYEOK*/ - RTUNI_ALPHA, /* U+003173: HANGUL LETTER PIEUP-TIKEUT*/ - RTUNI_ALPHA, /* U+003174: HANGUL LETTER PIEUP-SIOS-KIYEOK*/ - RTUNI_ALPHA, /* U+003175: HANGUL LETTER PIEUP-SIOS-TIKEUT*/ - RTUNI_ALPHA, /* U+003176: HANGUL LETTER PIEUP-CIEUC*/ - RTUNI_ALPHA, /* U+003177: HANGUL LETTER PIEUP-THIEUTH*/ - RTUNI_ALPHA, /* U+003178: HANGUL LETTER KAPYEOUNPIEUP*/ - RTUNI_ALPHA, /* U+003179: HANGUL LETTER KAPYEOUNSSANGPIEUP*/ - RTUNI_ALPHA, /* U+00317a: HANGUL LETTER SIOS-KIYEOK*/ - RTUNI_ALPHA, /* U+00317b: HANGUL LETTER SIOS-NIEUN*/ - RTUNI_ALPHA, /* U+00317c: HANGUL LETTER SIOS-TIKEUT*/ - RTUNI_ALPHA, /* U+00317d: HANGUL LETTER SIOS-PIEUP*/ - RTUNI_ALPHA, /* U+00317e: HANGUL LETTER SIOS-CIEUC*/ - RTUNI_ALPHA, /* U+00317f: HANGUL LETTER PANSIOS*/ - RTUNI_ALPHA, /* U+003180: HANGUL LETTER SSANGIEUNG*/ - RTUNI_ALPHA, /* U+003181: HANGUL LETTER YESIEUNG*/ - RTUNI_ALPHA, /* U+003182: HANGUL LETTER YESIEUNG-SIOS*/ - RTUNI_ALPHA, /* U+003183: HANGUL LETTER YESIEUNG-PANSIOS*/ - RTUNI_ALPHA, /* U+003184: HANGUL LETTER KAPYEOUNPHIEUPH*/ - RTUNI_ALPHA, /* U+003185: HANGUL LETTER SSANGHIEUH*/ - RTUNI_ALPHA, /* U+003186: HANGUL LETTER YEORINHIEUH*/ - RTUNI_ALPHA, /* U+003187: HANGUL LETTER YO-YA*/ - RTUNI_ALPHA, /* U+003188: HANGUL LETTER YO-YAE*/ - RTUNI_ALPHA, /* U+003189: HANGUL LETTER YO-I*/ - RTUNI_ALPHA, /* U+00318a: HANGUL LETTER YU-YEO*/ - RTUNI_ALPHA, /* U+00318b: HANGUL LETTER YU-YE*/ - RTUNI_ALPHA, /* U+00318c: HANGUL LETTER YU-I*/ - RTUNI_ALPHA, /* U+00318d: HANGUL LETTER ARAEA*/ - RTUNI_ALPHA, /* U+00318e: HANGUL LETTER ARAEAE*/ - 0, /* U+00318f: */ - 0, /* U+003190: IDEOGRAPHIC ANNOTATION LINKING MARK*/ - 0, /* U+003191: IDEOGRAPHIC ANNOTATION REVERSE MARK*/ - 0, /* U+003192: IDEOGRAPHIC ANNOTATION ONE MARK*/ - 0, /* U+003193: IDEOGRAPHIC ANNOTATION TWO MARK*/ - 0, /* U+003194: IDEOGRAPHIC ANNOTATION THREE MARK*/ - 0, /* U+003195: IDEOGRAPHIC ANNOTATION FOUR MARK*/ - 0, /* U+003196: IDEOGRAPHIC ANNOTATION TOP MARK*/ - 0, /* U+003197: IDEOGRAPHIC ANNOTATION MIDDLE MARK*/ - 0, /* U+003198: IDEOGRAPHIC ANNOTATION BOTTOM MARK*/ - 0, /* U+003199: IDEOGRAPHIC ANNOTATION FIRST MARK*/ - 0, /* U+00319a: IDEOGRAPHIC ANNOTATION SECOND MARK*/ - 0, /* U+00319b: IDEOGRAPHIC ANNOTATION THIRD MARK*/ - 0, /* U+00319c: IDEOGRAPHIC ANNOTATION FOURTH MARK*/ - 0, /* U+00319d: IDEOGRAPHIC ANNOTATION HEAVEN MARK*/ - 0, /* U+00319e: IDEOGRAPHIC ANNOTATION EARTH MARK*/ - 0, /* U+00319f: IDEOGRAPHIC ANNOTATION MAN MARK*/ - RTUNI_ALPHA, /* U+0031a0: BOPOMOFO LETTER BU*/ - RTUNI_ALPHA, /* U+0031a1: BOPOMOFO LETTER ZI*/ - RTUNI_ALPHA, /* U+0031a2: BOPOMOFO LETTER JI*/ - RTUNI_ALPHA, /* U+0031a3: BOPOMOFO LETTER GU*/ - RTUNI_ALPHA, /* U+0031a4: BOPOMOFO LETTER EE*/ - RTUNI_ALPHA, /* U+0031a5: BOPOMOFO LETTER ENN*/ - RTUNI_ALPHA, /* U+0031a6: BOPOMOFO LETTER OO*/ - RTUNI_ALPHA, /* U+0031a7: BOPOMOFO LETTER ONN*/ - RTUNI_ALPHA, /* U+0031a8: BOPOMOFO LETTER IR*/ - RTUNI_ALPHA, /* U+0031a9: BOPOMOFO LETTER ANN*/ - RTUNI_ALPHA, /* U+0031aa: BOPOMOFO LETTER INN*/ - RTUNI_ALPHA, /* U+0031ab: BOPOMOFO LETTER UNN*/ - RTUNI_ALPHA, /* U+0031ac: BOPOMOFO LETTER IM*/ - RTUNI_ALPHA, /* U+0031ad: BOPOMOFO LETTER NGG*/ - RTUNI_ALPHA, /* U+0031ae: BOPOMOFO LETTER AINN*/ - RTUNI_ALPHA, /* U+0031af: BOPOMOFO LETTER AUNN*/ - RTUNI_ALPHA, /* U+0031b0: BOPOMOFO LETTER AM*/ - RTUNI_ALPHA, /* U+0031b1: BOPOMOFO LETTER OM*/ - RTUNI_ALPHA, /* U+0031b2: BOPOMOFO LETTER ONG*/ - RTUNI_ALPHA, /* U+0031b3: BOPOMOFO LETTER INNN*/ - RTUNI_ALPHA, /* U+0031b4: BOPOMOFO FINAL LETTER P*/ - RTUNI_ALPHA, /* U+0031b5: BOPOMOFO FINAL LETTER T*/ - RTUNI_ALPHA, /* U+0031b6: BOPOMOFO FINAL LETTER K*/ - RTUNI_ALPHA, /* U+0031b7: BOPOMOFO FINAL LETTER H*/ - 0, /* U+0031b8: */ - 0, /* U+0031b9: */ - 0, /* U+0031ba: */ - 0, /* U+0031bb: */ - 0, /* U+0031bc: */ - 0, /* U+0031bd: */ - 0, /* U+0031be: */ - 0, /* U+0031bf: */ - 0, /* U+0031c0: CJK STROKE T*/ - 0, /* U+0031c1: CJK STROKE WG*/ - 0, /* U+0031c2: CJK STROKE XG*/ - 0, /* U+0031c3: CJK STROKE BXG*/ - 0, /* U+0031c4: CJK STROKE SW*/ - 0, /* U+0031c5: CJK STROKE HZZ*/ - 0, /* U+0031c6: CJK STROKE HZG*/ - 0, /* U+0031c7: CJK STROKE HP*/ - 0, /* U+0031c8: CJK STROKE HZWG*/ - 0, /* U+0031c9: CJK STROKE SZWG*/ - 0, /* U+0031ca: CJK STROKE HZT*/ - 0, /* U+0031cb: CJK STROKE HZZP*/ - 0, /* U+0031cc: CJK STROKE HPWG*/ - 0, /* U+0031cd: CJK STROKE HZW*/ - 0, /* U+0031ce: CJK STROKE HZZZ*/ - 0, /* U+0031cf: CJK STROKE N*/ - 0, /* U+0031d0: */ - 0, /* U+0031d1: */ - 0, /* U+0031d2: */ - 0, /* U+0031d3: */ - 0, /* U+0031d4: */ - 0, /* U+0031d5: */ - 0, /* U+0031d6: */ - 0, /* U+0031d7: */ - 0, /* U+0031d8: */ - 0, /* U+0031d9: */ - 0, /* U+0031da: */ - 0, /* U+0031db: */ - 0, /* U+0031dc: */ - 0, /* U+0031dd: */ - 0, /* U+0031de: */ - 0, /* U+0031df: */ - 0, /* U+0031e0: */ - 0, /* U+0031e1: */ - 0, /* U+0031e2: */ - 0, /* U+0031e3: */ - 0, /* U+0031e4: */ - 0, /* U+0031e5: */ - 0, /* U+0031e6: */ - 0, /* U+0031e7: */ - 0, /* U+0031e8: */ - 0, /* U+0031e9: */ - 0, /* U+0031ea: */ - 0, /* U+0031eb: */ - 0, /* U+0031ec: */ - 0, /* U+0031ed: */ - 0, /* U+0031ee: */ - 0, /* U+0031ef: */ - RTUNI_ALPHA, /* U+0031f0: KATAKANA LETTER SMALL KU*/ - RTUNI_ALPHA, /* U+0031f1: KATAKANA LETTER SMALL SI*/ - RTUNI_ALPHA, /* U+0031f2: KATAKANA LETTER SMALL SU*/ - RTUNI_ALPHA, /* U+0031f3: KATAKANA LETTER SMALL TO*/ - RTUNI_ALPHA, /* U+0031f4: KATAKANA LETTER SMALL NU*/ - RTUNI_ALPHA, /* U+0031f5: KATAKANA LETTER SMALL HA*/ - RTUNI_ALPHA, /* U+0031f6: KATAKANA LETTER SMALL HI*/ - RTUNI_ALPHA, /* U+0031f7: KATAKANA LETTER SMALL HU*/ - RTUNI_ALPHA, /* U+0031f8: KATAKANA LETTER SMALL HE*/ - RTUNI_ALPHA, /* U+0031f9: KATAKANA LETTER SMALL HO*/ - RTUNI_ALPHA, /* U+0031fa: KATAKANA LETTER SMALL MU*/ - RTUNI_ALPHA, /* U+0031fb: KATAKANA LETTER SMALL RA*/ - RTUNI_ALPHA, /* U+0031fc: KATAKANA LETTER SMALL RI*/ - RTUNI_ALPHA, /* U+0031fd: KATAKANA LETTER SMALL RU*/ - RTUNI_ALPHA, /* U+0031fe: KATAKANA LETTER SMALL RE*/ - RTUNI_ALPHA, /* U+0031ff: KATAKANA LETTER SMALL RO*/ - 0, /* U+003200: PARENTHESIZED HANGUL KIYEOK*/ - 0, /* U+003201: PARENTHESIZED HANGUL NIEUN*/ - 0, /* U+003202: PARENTHESIZED HANGUL TIKEUT*/ - 0, /* U+003203: PARENTHESIZED HANGUL RIEUL*/ - 0, /* U+003204: PARENTHESIZED HANGUL MIEUM*/ - 0, /* U+003205: PARENTHESIZED HANGUL PIEUP*/ - 0, /* U+003206: PARENTHESIZED HANGUL SIOS*/ - 0, /* U+003207: PARENTHESIZED HANGUL IEUNG*/ - 0, /* U+003208: PARENTHESIZED HANGUL CIEUC*/ - 0, /* U+003209: PARENTHESIZED HANGUL CHIEUCH*/ - 0, /* U+00320a: PARENTHESIZED HANGUL KHIEUKH*/ - 0, /* U+00320b: PARENTHESIZED HANGUL THIEUTH*/ - 0, /* U+00320c: PARENTHESIZED HANGUL PHIEUPH*/ - 0, /* U+00320d: PARENTHESIZED HANGUL HIEUH*/ - 0, /* U+00320e: PARENTHESIZED HANGUL KIYEOK A*/ - 0, /* U+00320f: PARENTHESIZED HANGUL NIEUN A*/ - 0, /* U+003210: PARENTHESIZED HANGUL TIKEUT A*/ - 0, /* U+003211: PARENTHESIZED HANGUL RIEUL A*/ - 0, /* U+003212: PARENTHESIZED HANGUL MIEUM A*/ - 0, /* U+003213: PARENTHESIZED HANGUL PIEUP A*/ - 0, /* U+003214: PARENTHESIZED HANGUL SIOS A*/ - 0, /* U+003215: PARENTHESIZED HANGUL IEUNG A*/ - 0, /* U+003216: PARENTHESIZED HANGUL CIEUC A*/ - 0, /* U+003217: PARENTHESIZED HANGUL CHIEUCH A*/ - 0, /* U+003218: PARENTHESIZED HANGUL KHIEUKH A*/ - 0, /* U+003219: PARENTHESIZED HANGUL THIEUTH A*/ - 0, /* U+00321a: PARENTHESIZED HANGUL PHIEUPH A*/ - 0, /* U+00321b: PARENTHESIZED HANGUL HIEUH A*/ - 0, /* U+00321c: PARENTHESIZED HANGUL CIEUC U*/ - 0, /* U+00321d: PARENTHESIZED KOREAN CHARACTER OJEON*/ - 0, /* U+00321e: PARENTHESIZED KOREAN CHARACTER O HU*/ - 0, /* U+00321f: */ - 0, /* U+003220: PARENTHESIZED IDEOGRAPH ONE*/ - 0, /* U+003221: PARENTHESIZED IDEOGRAPH TWO*/ - 0, /* U+003222: PARENTHESIZED IDEOGRAPH THREE*/ - 0, /* U+003223: PARENTHESIZED IDEOGRAPH FOUR*/ - 0, /* U+003224: PARENTHESIZED IDEOGRAPH FIVE*/ - 0, /* U+003225: PARENTHESIZED IDEOGRAPH SIX*/ - 0, /* U+003226: PARENTHESIZED IDEOGRAPH SEVEN*/ - 0, /* U+003227: PARENTHESIZED IDEOGRAPH EIGHT*/ - 0, /* U+003228: PARENTHESIZED IDEOGRAPH NINE*/ - 0, /* U+003229: PARENTHESIZED IDEOGRAPH TEN*/ - 0, /* U+00322a: PARENTHESIZED IDEOGRAPH MOON*/ - 0, /* U+00322b: PARENTHESIZED IDEOGRAPH FIRE*/ - 0, /* U+00322c: PARENTHESIZED IDEOGRAPH WATER*/ - 0, /* U+00322d: PARENTHESIZED IDEOGRAPH WOOD*/ - 0, /* U+00322e: PARENTHESIZED IDEOGRAPH METAL*/ - 0, /* U+00322f: PARENTHESIZED IDEOGRAPH EARTH*/ - 0, /* U+003230: PARENTHESIZED IDEOGRAPH SUN*/ - 0, /* U+003231: PARENTHESIZED IDEOGRAPH STOCK*/ - 0, /* U+003232: PARENTHESIZED IDEOGRAPH HAVE*/ - 0, /* U+003233: PARENTHESIZED IDEOGRAPH SOCIETY*/ - 0, /* U+003234: PARENTHESIZED IDEOGRAPH NAME*/ - 0, /* U+003235: PARENTHESIZED IDEOGRAPH SPECIAL*/ - 0, /* U+003236: PARENTHESIZED IDEOGRAPH FINANCIAL*/ - 0, /* U+003237: PARENTHESIZED IDEOGRAPH CONGRATULATION*/ - 0, /* U+003238: PARENTHESIZED IDEOGRAPH LABOR*/ - 0, /* U+003239: PARENTHESIZED IDEOGRAPH REPRESENT*/ - 0, /* U+00323a: PARENTHESIZED IDEOGRAPH CALL*/ - 0, /* U+00323b: PARENTHESIZED IDEOGRAPH STUDY*/ - 0, /* U+00323c: PARENTHESIZED IDEOGRAPH SUPERVISE*/ - 0, /* U+00323d: PARENTHESIZED IDEOGRAPH ENTERPRISE*/ - 0, /* U+00323e: PARENTHESIZED IDEOGRAPH RESOURCE*/ - 0, /* U+00323f: PARENTHESIZED IDEOGRAPH ALLIANCE*/ - 0, /* U+003240: PARENTHESIZED IDEOGRAPH FESTIVAL*/ - 0, /* U+003241: PARENTHESIZED IDEOGRAPH REST*/ - 0, /* U+003242: PARENTHESIZED IDEOGRAPH SELF*/ - 0, /* U+003243: PARENTHESIZED IDEOGRAPH REACH*/ - 0, /* U+003244: */ - 0, /* U+003245: */ - 0, /* U+003246: */ - 0, /* U+003247: */ - 0, /* U+003248: */ - 0, /* U+003249: */ - 0, /* U+00324a: */ - 0, /* U+00324b: */ - 0, /* U+00324c: */ - 0, /* U+00324d: */ - 0, /* U+00324e: */ - 0, /* U+00324f: */ - 0, /* U+003250: PARTNERSHIP SIGN*/ - 0, /* U+003251: CIRCLED NUMBER TWENTY ONE*/ - 0, /* U+003252: CIRCLED NUMBER TWENTY TWO*/ - 0, /* U+003253: CIRCLED NUMBER TWENTY THREE*/ - 0, /* U+003254: CIRCLED NUMBER TWENTY FOUR*/ - 0, /* U+003255: CIRCLED NUMBER TWENTY FIVE*/ - 0, /* U+003256: CIRCLED NUMBER TWENTY SIX*/ - 0, /* U+003257: CIRCLED NUMBER TWENTY SEVEN*/ - 0, /* U+003258: CIRCLED NUMBER TWENTY EIGHT*/ - 0, /* U+003259: CIRCLED NUMBER TWENTY NINE*/ - 0, /* U+00325a: CIRCLED NUMBER THIRTY*/ - 0, /* U+00325b: CIRCLED NUMBER THIRTY ONE*/ - 0, /* U+00325c: CIRCLED NUMBER THIRTY TWO*/ - 0, /* U+00325d: CIRCLED NUMBER THIRTY THREE*/ - 0, /* U+00325e: CIRCLED NUMBER THIRTY FOUR*/ - 0, /* U+00325f: CIRCLED NUMBER THIRTY FIVE*/ - 0, /* U+003260: CIRCLED HANGUL KIYEOK*/ - 0, /* U+003261: CIRCLED HANGUL NIEUN*/ - 0, /* U+003262: CIRCLED HANGUL TIKEUT*/ - 0, /* U+003263: CIRCLED HANGUL RIEUL*/ - 0, /* U+003264: CIRCLED HANGUL MIEUM*/ - 0, /* U+003265: CIRCLED HANGUL PIEUP*/ - 0, /* U+003266: CIRCLED HANGUL SIOS*/ - 0, /* U+003267: CIRCLED HANGUL IEUNG*/ - 0, /* U+003268: CIRCLED HANGUL CIEUC*/ - 0, /* U+003269: CIRCLED HANGUL CHIEUCH*/ - 0, /* U+00326a: CIRCLED HANGUL KHIEUKH*/ - 0, /* U+00326b: CIRCLED HANGUL THIEUTH*/ - 0, /* U+00326c: CIRCLED HANGUL PHIEUPH*/ - 0, /* U+00326d: CIRCLED HANGUL HIEUH*/ - 0, /* U+00326e: CIRCLED HANGUL KIYEOK A*/ - 0, /* U+00326f: CIRCLED HANGUL NIEUN A*/ - 0, /* U+003270: CIRCLED HANGUL TIKEUT A*/ - 0, /* U+003271: CIRCLED HANGUL RIEUL A*/ - 0, /* U+003272: CIRCLED HANGUL MIEUM A*/ - 0, /* U+003273: CIRCLED HANGUL PIEUP A*/ - 0, /* U+003274: CIRCLED HANGUL SIOS A*/ - 0, /* U+003275: CIRCLED HANGUL IEUNG A*/ - 0, /* U+003276: CIRCLED HANGUL CIEUC A*/ - 0, /* U+003277: CIRCLED HANGUL CHIEUCH A*/ - 0, /* U+003278: CIRCLED HANGUL KHIEUKH A*/ - 0, /* U+003279: CIRCLED HANGUL THIEUTH A*/ - 0, /* U+00327a: CIRCLED HANGUL PHIEUPH A*/ - 0, /* U+00327b: CIRCLED HANGUL HIEUH A*/ - 0, /* U+00327c: CIRCLED KOREAN CHARACTER CHAMKO*/ - 0, /* U+00327d: CIRCLED KOREAN CHARACTER JUEUI*/ - 0, /* U+00327e: CIRCLED HANGUL IEUNG U*/ - 0, /* U+00327f: KOREAN STANDARD SYMBOL*/ - 0, /* U+003280: CIRCLED IDEOGRAPH ONE*/ - 0, /* U+003281: CIRCLED IDEOGRAPH TWO*/ - 0, /* U+003282: CIRCLED IDEOGRAPH THREE*/ - 0, /* U+003283: CIRCLED IDEOGRAPH FOUR*/ - 0, /* U+003284: CIRCLED IDEOGRAPH FIVE*/ - 0, /* U+003285: CIRCLED IDEOGRAPH SIX*/ - 0, /* U+003286: CIRCLED IDEOGRAPH SEVEN*/ - 0, /* U+003287: CIRCLED IDEOGRAPH EIGHT*/ - 0, /* U+003288: CIRCLED IDEOGRAPH NINE*/ - 0, /* U+003289: CIRCLED IDEOGRAPH TEN*/ - 0, /* U+00328a: CIRCLED IDEOGRAPH MOON*/ - 0, /* U+00328b: CIRCLED IDEOGRAPH FIRE*/ - 0, /* U+00328c: CIRCLED IDEOGRAPH WATER*/ - 0, /* U+00328d: CIRCLED IDEOGRAPH WOOD*/ - 0, /* U+00328e: CIRCLED IDEOGRAPH METAL*/ - 0, /* U+00328f: CIRCLED IDEOGRAPH EARTH*/ - 0, /* U+003290: CIRCLED IDEOGRAPH SUN*/ - 0, /* U+003291: CIRCLED IDEOGRAPH STOCK*/ - 0, /* U+003292: CIRCLED IDEOGRAPH HAVE*/ - 0, /* U+003293: CIRCLED IDEOGRAPH SOCIETY*/ - 0, /* U+003294: CIRCLED IDEOGRAPH NAME*/ - 0, /* U+003295: CIRCLED IDEOGRAPH SPECIAL*/ - 0, /* U+003296: CIRCLED IDEOGRAPH FINANCIAL*/ - 0, /* U+003297: CIRCLED IDEOGRAPH CONGRATULATION*/ - 0, /* U+003298: CIRCLED IDEOGRAPH LABOR*/ - 0, /* U+003299: CIRCLED IDEOGRAPH SECRET*/ - 0, /* U+00329a: CIRCLED IDEOGRAPH MALE*/ - 0, /* U+00329b: CIRCLED IDEOGRAPH FEMALE*/ - 0, /* U+00329c: CIRCLED IDEOGRAPH SUITABLE*/ - 0, /* U+00329d: CIRCLED IDEOGRAPH EXCELLENT*/ - 0, /* U+00329e: CIRCLED IDEOGRAPH PRINT*/ - 0, /* U+00329f: CIRCLED IDEOGRAPH ATTENTION*/ - 0, /* U+0032a0: CIRCLED IDEOGRAPH ITEM*/ - 0, /* U+0032a1: CIRCLED IDEOGRAPH REST*/ - 0, /* U+0032a2: CIRCLED IDEOGRAPH COPY*/ - 0, /* U+0032a3: CIRCLED IDEOGRAPH CORRECT*/ - 0, /* U+0032a4: CIRCLED IDEOGRAPH HIGH*/ - 0, /* U+0032a5: CIRCLED IDEOGRAPH CENTRE*/ - 0, /* U+0032a6: CIRCLED IDEOGRAPH LOW*/ - 0, /* U+0032a7: CIRCLED IDEOGRAPH LEFT*/ - 0, /* U+0032a8: CIRCLED IDEOGRAPH RIGHT*/ - 0, /* U+0032a9: CIRCLED IDEOGRAPH MEDICINE*/ - 0, /* U+0032aa: CIRCLED IDEOGRAPH RELIGION*/ - 0, /* U+0032ab: CIRCLED IDEOGRAPH STUDY*/ - 0, /* U+0032ac: CIRCLED IDEOGRAPH SUPERVISE*/ - 0, /* U+0032ad: CIRCLED IDEOGRAPH ENTERPRISE*/ - 0, /* U+0032ae: CIRCLED IDEOGRAPH RESOURCE*/ - 0, /* U+0032af: CIRCLED IDEOGRAPH ALLIANCE*/ - 0, /* U+0032b0: CIRCLED IDEOGRAPH NIGHT*/ - 0, /* U+0032b1: CIRCLED NUMBER THIRTY SIX*/ - 0, /* U+0032b2: CIRCLED NUMBER THIRTY SEVEN*/ - 0, /* U+0032b3: CIRCLED NUMBER THIRTY EIGHT*/ - 0, /* U+0032b4: CIRCLED NUMBER THIRTY NINE*/ - 0, /* U+0032b5: CIRCLED NUMBER FORTY*/ - 0, /* U+0032b6: CIRCLED NUMBER FORTY ONE*/ - 0, /* U+0032b7: CIRCLED NUMBER FORTY TWO*/ - 0, /* U+0032b8: CIRCLED NUMBER FORTY THREE*/ - 0, /* U+0032b9: CIRCLED NUMBER FORTY FOUR*/ - 0, /* U+0032ba: CIRCLED NUMBER FORTY FIVE*/ - 0, /* U+0032bb: CIRCLED NUMBER FORTY SIX*/ - 0, /* U+0032bc: CIRCLED NUMBER FORTY SEVEN*/ - 0, /* U+0032bd: CIRCLED NUMBER FORTY EIGHT*/ - 0, /* U+0032be: CIRCLED NUMBER FORTY NINE*/ - 0, /* U+0032bf: CIRCLED NUMBER FIFTY*/ - 0, /* U+0032c0: IDEOGRAPHIC TELEGRAPH SYMBOL FOR JANUARY*/ - 0, /* U+0032c1: IDEOGRAPHIC TELEGRAPH SYMBOL FOR FEBRUARY*/ - 0, /* U+0032c2: IDEOGRAPHIC TELEGRAPH SYMBOL FOR MARCH*/ - 0, /* U+0032c3: IDEOGRAPHIC TELEGRAPH SYMBOL FOR APRIL*/ - 0, /* U+0032c4: IDEOGRAPHIC TELEGRAPH SYMBOL FOR MAY*/ - 0, /* U+0032c5: IDEOGRAPHIC TELEGRAPH SYMBOL FOR JUNE*/ - 0, /* U+0032c6: IDEOGRAPHIC TELEGRAPH SYMBOL FOR JULY*/ - 0, /* U+0032c7: IDEOGRAPHIC TELEGRAPH SYMBOL FOR AUGUST*/ - 0, /* U+0032c8: IDEOGRAPHIC TELEGRAPH SYMBOL FOR SEPTEMBER*/ - 0, /* U+0032c9: IDEOGRAPHIC TELEGRAPH SYMBOL FOR OCTOBER*/ - 0, /* U+0032ca: IDEOGRAPHIC TELEGRAPH SYMBOL FOR NOVEMBER*/ - 0, /* U+0032cb: IDEOGRAPHIC TELEGRAPH SYMBOL FOR DECEMBER*/ - 0, /* U+0032cc: SQUARE HG*/ - 0, /* U+0032cd: SQUARE ERG*/ - 0, /* U+0032ce: SQUARE EV*/ - 0, /* U+0032cf: LIMITED LIABILITY SIGN*/ - 0, /* U+0032d0: CIRCLED KATAKANA A*/ - 0, /* U+0032d1: CIRCLED KATAKANA I*/ - 0, /* U+0032d2: CIRCLED KATAKANA U*/ - 0, /* U+0032d3: CIRCLED KATAKANA E*/ - 0, /* U+0032d4: CIRCLED KATAKANA O*/ - 0, /* U+0032d5: CIRCLED KATAKANA KA*/ - 0, /* U+0032d6: CIRCLED KATAKANA KI*/ - 0, /* U+0032d7: CIRCLED KATAKANA KU*/ - 0, /* U+0032d8: CIRCLED KATAKANA KE*/ - 0, /* U+0032d9: CIRCLED KATAKANA KO*/ - 0, /* U+0032da: CIRCLED KATAKANA SA*/ - 0, /* U+0032db: CIRCLED KATAKANA SI*/ - 0, /* U+0032dc: CIRCLED KATAKANA SU*/ - 0, /* U+0032dd: CIRCLED KATAKANA SE*/ - 0, /* U+0032de: CIRCLED KATAKANA SO*/ - 0, /* U+0032df: CIRCLED KATAKANA TA*/ - 0, /* U+0032e0: CIRCLED KATAKANA TI*/ - 0, /* U+0032e1: CIRCLED KATAKANA TU*/ - 0, /* U+0032e2: CIRCLED KATAKANA TE*/ - 0, /* U+0032e3: CIRCLED KATAKANA TO*/ - 0, /* U+0032e4: CIRCLED KATAKANA NA*/ - 0, /* U+0032e5: CIRCLED KATAKANA NI*/ - 0, /* U+0032e6: CIRCLED KATAKANA NU*/ - 0, /* U+0032e7: CIRCLED KATAKANA NE*/ - 0, /* U+0032e8: CIRCLED KATAKANA NO*/ - 0, /* U+0032e9: CIRCLED KATAKANA HA*/ - 0, /* U+0032ea: CIRCLED KATAKANA HI*/ - 0, /* U+0032eb: CIRCLED KATAKANA HU*/ - 0, /* U+0032ec: CIRCLED KATAKANA HE*/ - 0, /* U+0032ed: CIRCLED KATAKANA HO*/ - 0, /* U+0032ee: CIRCLED KATAKANA MA*/ - 0, /* U+0032ef: CIRCLED KATAKANA MI*/ - 0, /* U+0032f0: CIRCLED KATAKANA MU*/ - 0, /* U+0032f1: CIRCLED KATAKANA ME*/ - 0, /* U+0032f2: CIRCLED KATAKANA MO*/ - 0, /* U+0032f3: CIRCLED KATAKANA YA*/ - 0, /* U+0032f4: CIRCLED KATAKANA YU*/ - 0, /* U+0032f5: CIRCLED KATAKANA YO*/ - 0, /* U+0032f6: CIRCLED KATAKANA RA*/ - 0, /* U+0032f7: CIRCLED KATAKANA RI*/ - 0, /* U+0032f8: CIRCLED KATAKANA RU*/ - 0, /* U+0032f9: CIRCLED KATAKANA RE*/ - 0, /* U+0032fa: CIRCLED KATAKANA RO*/ - 0, /* U+0032fb: CIRCLED KATAKANA WA*/ - 0, /* U+0032fc: CIRCLED KATAKANA WI*/ - 0, /* U+0032fd: CIRCLED KATAKANA WE*/ - 0, /* U+0032fe: CIRCLED KATAKANA WO*/ - 0, /* U+0032ff: */ - 0, /* U+003300: SQUARE APAATO*/ - 0, /* U+003301: SQUARE ARUHUA*/ - 0, /* U+003302: SQUARE ANPEA*/ - 0, /* U+003303: SQUARE AARU*/ - 0, /* U+003304: SQUARE ININGU*/ - 0, /* U+003305: SQUARE INTI*/ - 0, /* U+003306: SQUARE UON*/ - 0, /* U+003307: SQUARE ESUKUUDO*/ - 0, /* U+003308: SQUARE EEKAA*/ - 0, /* U+003309: SQUARE ONSU*/ - 0, /* U+00330a: SQUARE OOMU*/ - 0, /* U+00330b: SQUARE KAIRI*/ - 0, /* U+00330c: SQUARE KARATTO*/ - 0, /* U+00330d: SQUARE KARORII*/ - 0, /* U+00330e: SQUARE GARON*/ - 0, /* U+00330f: SQUARE GANMA*/ - 0, /* U+003310: SQUARE GIGA*/ - 0, /* U+003311: SQUARE GINII*/ - 0, /* U+003312: SQUARE KYURII*/ - 0, /* U+003313: SQUARE GIRUDAA*/ - 0, /* U+003314: SQUARE KIRO*/ - 0, /* U+003315: SQUARE KIROGURAMU*/ - 0, /* U+003316: SQUARE KIROMEETORU*/ - 0, /* U+003317: SQUARE KIROWATTO*/ - 0, /* U+003318: SQUARE GURAMU*/ - 0, /* U+003319: SQUARE GURAMUTON*/ - 0, /* U+00331a: SQUARE KURUZEIRO*/ - 0, /* U+00331b: SQUARE KUROONE*/ - 0, /* U+00331c: SQUARE KEESU*/ - 0, /* U+00331d: SQUARE KORUNA*/ - 0, /* U+00331e: SQUARE KOOPO*/ - 0, /* U+00331f: SQUARE SAIKURU*/ - 0, /* U+003320: SQUARE SANTIIMU*/ - 0, /* U+003321: SQUARE SIRINGU*/ - 0, /* U+003322: SQUARE SENTI*/ - 0, /* U+003323: SQUARE SENTO*/ - 0, /* U+003324: SQUARE DAASU*/ - 0, /* U+003325: SQUARE DESI*/ - 0, /* U+003326: SQUARE DORU*/ - 0, /* U+003327: SQUARE TON*/ - 0, /* U+003328: SQUARE NANO*/ - 0, /* U+003329: SQUARE NOTTO*/ - 0, /* U+00332a: SQUARE HAITU*/ - 0, /* U+00332b: SQUARE PAASENTO*/ - 0, /* U+00332c: SQUARE PAATU*/ - 0, /* U+00332d: SQUARE BAARERU*/ - 0, /* U+00332e: SQUARE PIASUTORU*/ - 0, /* U+00332f: SQUARE PIKURU*/ - 0, /* U+003330: SQUARE PIKO*/ - 0, /* U+003331: SQUARE BIRU*/ - 0, /* U+003332: SQUARE HUARADDO*/ - 0, /* U+003333: SQUARE HUIITO*/ - 0, /* U+003334: SQUARE BUSSYERU*/ - 0, /* U+003335: SQUARE HURAN*/ - 0, /* U+003336: SQUARE HEKUTAARU*/ - 0, /* U+003337: SQUARE PESO*/ - 0, /* U+003338: SQUARE PENIHI*/ - 0, /* U+003339: SQUARE HERUTU*/ - 0, /* U+00333a: SQUARE PENSU*/ - 0, /* U+00333b: SQUARE PEEZI*/ - 0, /* U+00333c: SQUARE BEETA*/ - 0, /* U+00333d: SQUARE POINTO*/ - 0, /* U+00333e: SQUARE BORUTO*/ - 0, /* U+00333f: SQUARE HON*/ - 0, /* U+003340: SQUARE PONDO*/ - 0, /* U+003341: SQUARE HOORU*/ - 0, /* U+003342: SQUARE HOON*/ - 0, /* U+003343: SQUARE MAIKURO*/ - 0, /* U+003344: SQUARE MAIRU*/ - 0, /* U+003345: SQUARE MAHHA*/ - 0, /* U+003346: SQUARE MARUKU*/ - 0, /* U+003347: SQUARE MANSYON*/ - 0, /* U+003348: SQUARE MIKURON*/ - 0, /* U+003349: SQUARE MIRI*/ - 0, /* U+00334a: SQUARE MIRIBAARU*/ - 0, /* U+00334b: SQUARE MEGA*/ - 0, /* U+00334c: SQUARE MEGATON*/ - 0, /* U+00334d: SQUARE MEETORU*/ - 0, /* U+00334e: SQUARE YAADO*/ - 0, /* U+00334f: SQUARE YAARU*/ - 0, /* U+003350: SQUARE YUAN*/ - 0, /* U+003351: SQUARE RITTORU*/ - 0, /* U+003352: SQUARE RIRA*/ - 0, /* U+003353: SQUARE RUPII*/ - 0, /* U+003354: SQUARE RUUBURU*/ - 0, /* U+003355: SQUARE REMU*/ - 0, /* U+003356: SQUARE RENTOGEN*/ - 0, /* U+003357: SQUARE WATTO*/ - 0, /* U+003358: IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR ZERO*/ - 0, /* U+003359: IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR ONE*/ - 0, /* U+00335a: IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR TWO*/ - 0, /* U+00335b: IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR THREE*/ - 0, /* U+00335c: IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR FOUR*/ - 0, /* U+00335d: IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR FIVE*/ - 0, /* U+00335e: IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR SIX*/ - 0, /* U+00335f: IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR SEVEN*/ - 0, /* U+003360: IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR EIGHT*/ - 0, /* U+003361: IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR NINE*/ - 0, /* U+003362: IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR TEN*/ - 0, /* U+003363: IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR ELEVEN*/ - 0, /* U+003364: IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR TWELVE*/ - 0, /* U+003365: IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR THIRTEEN*/ - 0, /* U+003366: IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR FOURTEEN*/ - 0, /* U+003367: IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR FIFTEEN*/ - 0, /* U+003368: IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR SIXTEEN*/ - 0, /* U+003369: IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR SEVENTEEN*/ - 0, /* U+00336a: IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR EIGHTEEN*/ - 0, /* U+00336b: IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR NINETEEN*/ - 0, /* U+00336c: IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR TWENTY*/ - 0, /* U+00336d: IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR TWENTY-ONE*/ - 0, /* U+00336e: IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR TWENTY-TWO*/ - 0, /* U+00336f: IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR TWENTY-THREE*/ - 0, /* U+003370: IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR TWENTY-FOUR*/ - 0, /* U+003371: SQUARE HPA*/ - 0, /* U+003372: SQUARE DA*/ - 0, /* U+003373: SQUARE AU*/ - 0, /* U+003374: SQUARE BAR*/ - 0, /* U+003375: SQUARE OV*/ - 0, /* U+003376: SQUARE PC*/ - 0, /* U+003377: SQUARE DM*/ - 0, /* U+003378: SQUARE DM SQUARED*/ - 0, /* U+003379: SQUARE DM CUBED*/ - 0, /* U+00337a: SQUARE IU*/ - 0, /* U+00337b: SQUARE ERA NAME HEISEI*/ - 0, /* U+00337c: SQUARE ERA NAME SYOUWA*/ - 0, /* U+00337d: SQUARE ERA NAME TAISYOU*/ - 0, /* U+00337e: SQUARE ERA NAME MEIZI*/ - 0, /* U+00337f: SQUARE CORPORATION*/ - 0, /* U+003380: SQUARE PA AMPS*/ - 0, /* U+003381: SQUARE NA*/ - 0, /* U+003382: SQUARE MU A*/ - 0, /* U+003383: SQUARE MA*/ - 0, /* U+003384: SQUARE KA*/ - 0, /* U+003385: SQUARE KB*/ - 0, /* U+003386: SQUARE MB*/ - 0, /* U+003387: SQUARE GB*/ - 0, /* U+003388: SQUARE CAL*/ - 0, /* U+003389: SQUARE KCAL*/ - 0, /* U+00338a: SQUARE PF*/ - 0, /* U+00338b: SQUARE NF*/ - 0, /* U+00338c: SQUARE MU F*/ - 0, /* U+00338d: SQUARE MU G*/ - 0, /* U+00338e: SQUARE MG*/ - 0, /* U+00338f: SQUARE KG*/ - 0, /* U+003390: SQUARE HZ*/ - 0, /* U+003391: SQUARE KHZ*/ - 0, /* U+003392: SQUARE MHZ*/ - 0, /* U+003393: SQUARE GHZ*/ - 0, /* U+003394: SQUARE THZ*/ - 0, /* U+003395: SQUARE MU L*/ - 0, /* U+003396: SQUARE ML*/ - 0, /* U+003397: SQUARE DL*/ - 0, /* U+003398: SQUARE KL*/ - 0, /* U+003399: SQUARE FM*/ - 0, /* U+00339a: SQUARE NM*/ - 0, /* U+00339b: SQUARE MU M*/ - 0, /* U+00339c: SQUARE MM*/ - 0, /* U+00339d: SQUARE CM*/ - 0, /* U+00339e: SQUARE KM*/ - 0, /* U+00339f: SQUARE MM SQUARED*/ - 0, /* U+0033a0: SQUARE CM SQUARED*/ - 0, /* U+0033a1: SQUARE M SQUARED*/ - 0, /* U+0033a2: SQUARE KM SQUARED*/ - 0, /* U+0033a3: SQUARE MM CUBED*/ - 0, /* U+0033a4: SQUARE CM CUBED*/ - 0, /* U+0033a5: SQUARE M CUBED*/ - 0, /* U+0033a6: SQUARE KM CUBED*/ - 0, /* U+0033a7: SQUARE M OVER S*/ - 0, /* U+0033a8: SQUARE M OVER S SQUARED*/ - 0, /* U+0033a9: SQUARE PA*/ - 0, /* U+0033aa: SQUARE KPA*/ - 0, /* U+0033ab: SQUARE MPA*/ - 0, /* U+0033ac: SQUARE GPA*/ - 0, /* U+0033ad: SQUARE RAD*/ - 0, /* U+0033ae: SQUARE RAD OVER S*/ - 0, /* U+0033af: SQUARE RAD OVER S SQUARED*/ - 0, /* U+0033b0: SQUARE PS*/ - 0, /* U+0033b1: SQUARE NS*/ - 0, /* U+0033b2: SQUARE MU S*/ - 0, /* U+0033b3: SQUARE MS*/ - 0, /* U+0033b4: SQUARE PV*/ - 0, /* U+0033b5: SQUARE NV*/ - 0, /* U+0033b6: SQUARE MU V*/ - 0, /* U+0033b7: SQUARE MV*/ - 0, /* U+0033b8: SQUARE KV*/ - 0, /* U+0033b9: SQUARE MV MEGA*/ - 0, /* U+0033ba: SQUARE PW*/ - 0, /* U+0033bb: SQUARE NW*/ - 0, /* U+0033bc: SQUARE MU W*/ - 0, /* U+0033bd: SQUARE MW*/ - 0, /* U+0033be: SQUARE KW*/ - 0, /* U+0033bf: SQUARE MW MEGA*/ - 0, /* U+0033c0: SQUARE K OHM*/ - 0, /* U+0033c1: SQUARE M OHM*/ - 0, /* U+0033c2: SQUARE AM*/ - 0, /* U+0033c3: SQUARE BQ*/ - 0, /* U+0033c4: SQUARE CC*/ - 0, /* U+0033c5: SQUARE CD*/ - 0, /* U+0033c6: SQUARE C OVER KG*/ - 0, /* U+0033c7: SQUARE CO*/ - 0, /* U+0033c8: SQUARE DB*/ - 0, /* U+0033c9: SQUARE GY*/ - 0, /* U+0033ca: SQUARE HA*/ - 0, /* U+0033cb: SQUARE HP*/ - 0, /* U+0033cc: SQUARE IN*/ - 0, /* U+0033cd: SQUARE KK*/ - 0, /* U+0033ce: SQUARE KM CAPITAL*/ - 0, /* U+0033cf: SQUARE KT*/ - 0, /* U+0033d0: SQUARE LM*/ - 0, /* U+0033d1: SQUARE LN*/ - 0, /* U+0033d2: SQUARE LOG*/ - 0, /* U+0033d3: SQUARE LX*/ - 0, /* U+0033d4: SQUARE MB SMALL*/ - 0, /* U+0033d5: SQUARE MIL*/ - 0, /* U+0033d6: SQUARE MOL*/ - 0, /* U+0033d7: SQUARE PH*/ - 0, /* U+0033d8: SQUARE PM*/ - 0, /* U+0033d9: SQUARE PPM*/ - 0, /* U+0033da: SQUARE PR*/ - 0, /* U+0033db: SQUARE SR*/ - 0, /* U+0033dc: SQUARE SV*/ - 0, /* U+0033dd: SQUARE WB*/ - 0, /* U+0033de: SQUARE V OVER M*/ - 0, /* U+0033df: SQUARE A OVER M*/ - 0, /* U+0033e0: IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY ONE*/ - 0, /* U+0033e1: IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWO*/ - 0, /* U+0033e2: IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY THREE*/ - 0, /* U+0033e3: IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY FOUR*/ - 0, /* U+0033e4: IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY FIVE*/ - 0, /* U+0033e5: IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY SIX*/ - 0, /* U+0033e6: IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY SEVEN*/ - 0, /* U+0033e7: IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY EIGHT*/ - 0, /* U+0033e8: IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY NINE*/ - 0, /* U+0033e9: IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TEN*/ - 0, /* U+0033ea: IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY ELEVEN*/ - 0, /* U+0033eb: IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWELVE*/ - 0, /* U+0033ec: IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY THIRTEEN*/ - 0, /* U+0033ed: IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY FOURTEEN*/ - 0, /* U+0033ee: IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY FIFTEEN*/ - 0, /* U+0033ef: IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY SIXTEEN*/ - 0, /* U+0033f0: IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY SEVENTEEN*/ - 0, /* U+0033f1: IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY EIGHTEEN*/ - 0, /* U+0033f2: IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY NINETEEN*/ - 0, /* U+0033f3: IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY*/ - 0, /* U+0033f4: IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-ONE*/ - 0, /* U+0033f5: IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-TWO*/ - 0, /* U+0033f6: IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-THREE*/ - 0, /* U+0033f7: IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-FOUR*/ - 0, /* U+0033f8: IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-FIVE*/ - 0, /* U+0033f9: IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-SIX*/ - 0, /* U+0033fa: IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-SEVEN*/ - 0, /* U+0033fb: IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-EIGHT*/ - 0, /* U+0033fc: IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-NINE*/ - 0, /* U+0033fd: IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY THIRTY*/ - 0, /* U+0033fe: IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY THIRTY-ONE*/ - 0, /* U+0033ff: SQUARE GAL*/ - RTUNI_ALPHA, /* U+003400: */ -}; - -static const uint8_t g_afRTUniFlags0x004db5[] = -{ - RTUNI_ALPHA, /* U+004db5: */ - 0, /* U+004db6: */ - 0, /* U+004db7: */ - 0, /* U+004db8: */ - 0, /* U+004db9: */ - 0, /* U+004dba: */ - 0, /* U+004dbb: */ - 0, /* U+004dbc: */ - 0, /* U+004dbd: */ - 0, /* U+004dbe: */ - 0, /* U+004dbf: */ - 0, /* U+004dc0: HEXAGRAM FOR THE CREATIVE HEAVEN*/ - 0, /* U+004dc1: HEXAGRAM FOR THE RECEPTIVE EARTH*/ - 0, /* U+004dc2: HEXAGRAM FOR DIFFICULTY AT THE BEGINNING*/ - 0, /* U+004dc3: HEXAGRAM FOR YOUTHFUL FOLLY*/ - 0, /* U+004dc4: HEXAGRAM FOR WAITING*/ - 0, /* U+004dc5: HEXAGRAM FOR CONFLICT*/ - 0, /* U+004dc6: HEXAGRAM FOR THE ARMY*/ - 0, /* U+004dc7: HEXAGRAM FOR HOLDING TOGETHER*/ - 0, /* U+004dc8: HEXAGRAM FOR SMALL TAMING*/ - 0, /* U+004dc9: HEXAGRAM FOR TREADING*/ - 0, /* U+004dca: HEXAGRAM FOR PEACE*/ - 0, /* U+004dcb: HEXAGRAM FOR STANDSTILL*/ - 0, /* U+004dcc: HEXAGRAM FOR FELLOWSHIP*/ - 0, /* U+004dcd: HEXAGRAM FOR GREAT POSSESSION*/ - 0, /* U+004dce: HEXAGRAM FOR MODESTY*/ - 0, /* U+004dcf: HEXAGRAM FOR ENTHUSIASM*/ - 0, /* U+004dd0: HEXAGRAM FOR FOLLOWING*/ - 0, /* U+004dd1: HEXAGRAM FOR WORK ON THE DECAYED*/ - 0, /* U+004dd2: HEXAGRAM FOR APPROACH*/ - 0, /* U+004dd3: HEXAGRAM FOR CONTEMPLATION*/ - 0, /* U+004dd4: HEXAGRAM FOR BITING THROUGH*/ - 0, /* U+004dd5: HEXAGRAM FOR GRACE*/ - 0, /* U+004dd6: HEXAGRAM FOR SPLITTING APART*/ - 0, /* U+004dd7: HEXAGRAM FOR RETURN*/ - 0, /* U+004dd8: HEXAGRAM FOR INNOCENCE*/ - 0, /* U+004dd9: HEXAGRAM FOR GREAT TAMING*/ - 0, /* U+004dda: HEXAGRAM FOR MOUTH CORNERS*/ - 0, /* U+004ddb: HEXAGRAM FOR GREAT PREPONDERANCE*/ - 0, /* U+004ddc: HEXAGRAM FOR THE ABYSMAL WATER*/ - 0, /* U+004ddd: HEXAGRAM FOR THE CLINGING FIRE*/ - 0, /* U+004dde: HEXAGRAM FOR INFLUENCE*/ - 0, /* U+004ddf: HEXAGRAM FOR DURATION*/ - 0, /* U+004de0: HEXAGRAM FOR RETREAT*/ - 0, /* U+004de1: HEXAGRAM FOR GREAT POWER*/ - 0, /* U+004de2: HEXAGRAM FOR PROGRESS*/ - 0, /* U+004de3: HEXAGRAM FOR DARKENING OF THE LIGHT*/ - 0, /* U+004de4: HEXAGRAM FOR THE FAMILY*/ - 0, /* U+004de5: HEXAGRAM FOR OPPOSITION*/ - 0, /* U+004de6: HEXAGRAM FOR OBSTRUCTION*/ - 0, /* U+004de7: HEXAGRAM FOR DELIVERANCE*/ - 0, /* U+004de8: HEXAGRAM FOR DECREASE*/ - 0, /* U+004de9: HEXAGRAM FOR INCREASE*/ - 0, /* U+004dea: HEXAGRAM FOR BREAKTHROUGH*/ - 0, /* U+004deb: HEXAGRAM FOR COMING TO MEET*/ - 0, /* U+004dec: HEXAGRAM FOR GATHERING TOGETHER*/ - 0, /* U+004ded: HEXAGRAM FOR PUSHING UPWARD*/ - 0, /* U+004dee: HEXAGRAM FOR OPPRESSION*/ - 0, /* U+004def: HEXAGRAM FOR THE WELL*/ - 0, /* U+004df0: HEXAGRAM FOR REVOLUTION*/ - 0, /* U+004df1: HEXAGRAM FOR THE CAULDRON*/ - 0, /* U+004df2: HEXAGRAM FOR THE AROUSING THUNDER*/ - 0, /* U+004df3: HEXAGRAM FOR THE KEEPING STILL MOUNTAIN*/ - 0, /* U+004df4: HEXAGRAM FOR DEVELOPMENT*/ - 0, /* U+004df5: HEXAGRAM FOR THE MARRYING MAIDEN*/ - 0, /* U+004df6: HEXAGRAM FOR ABUNDANCE*/ - 0, /* U+004df7: HEXAGRAM FOR THE WANDERER*/ - 0, /* U+004df8: HEXAGRAM FOR THE GENTLE WIND*/ - 0, /* U+004df9: HEXAGRAM FOR THE JOYOUS LAKE*/ - 0, /* U+004dfa: HEXAGRAM FOR DISPERSION*/ - 0, /* U+004dfb: HEXAGRAM FOR LIMITATION*/ - 0, /* U+004dfc: HEXAGRAM FOR INNER TRUTH*/ - 0, /* U+004dfd: HEXAGRAM FOR SMALL PREPONDERANCE*/ - 0, /* U+004dfe: HEXAGRAM FOR AFTER COMPLETION*/ - 0, /* U+004dff: HEXAGRAM FOR BEFORE COMPLETION*/ - RTUNI_ALPHA, /* U+004e00: */ -}; - -static const uint8_t g_afRTUniFlags0x009fbb[] = -{ - RTUNI_ALPHA, /* U+009fbb: */ - 0, /* U+009fbc: */ - 0, /* U+009fbd: */ - 0, /* U+009fbe: */ - 0, /* U+009fbf: */ - 0, /* U+009fc0: */ - 0, /* U+009fc1: */ - 0, /* U+009fc2: */ - 0, /* U+009fc3: */ - 0, /* U+009fc4: */ - 0, /* U+009fc5: */ - 0, /* U+009fc6: */ - 0, /* U+009fc7: */ - 0, /* U+009fc8: */ - 0, /* U+009fc9: */ - 0, /* U+009fca: */ - 0, /* U+009fcb: */ - 0, /* U+009fcc: */ - 0, /* U+009fcd: */ - 0, /* U+009fce: */ - 0, /* U+009fcf: */ - 0, /* U+009fd0: */ - 0, /* U+009fd1: */ - 0, /* U+009fd2: */ - 0, /* U+009fd3: */ - 0, /* U+009fd4: */ - 0, /* U+009fd5: */ - 0, /* U+009fd6: */ - 0, /* U+009fd7: */ - 0, /* U+009fd8: */ - 0, /* U+009fd9: */ - 0, /* U+009fda: */ - 0, /* U+009fdb: */ - 0, /* U+009fdc: */ - 0, /* U+009fdd: */ - 0, /* U+009fde: */ - 0, /* U+009fdf: */ - 0, /* U+009fe0: */ - 0, /* U+009fe1: */ - 0, /* U+009fe2: */ - 0, /* U+009fe3: */ - 0, /* U+009fe4: */ - 0, /* U+009fe5: */ - 0, /* U+009fe6: */ - 0, /* U+009fe7: */ - 0, /* U+009fe8: */ - 0, /* U+009fe9: */ - 0, /* U+009fea: */ - 0, /* U+009feb: */ - 0, /* U+009fec: */ - 0, /* U+009fed: */ - 0, /* U+009fee: */ - 0, /* U+009fef: */ - 0, /* U+009ff0: */ - 0, /* U+009ff1: */ - 0, /* U+009ff2: */ - 0, /* U+009ff3: */ - 0, /* U+009ff4: */ - 0, /* U+009ff5: */ - 0, /* U+009ff6: */ - 0, /* U+009ff7: */ - 0, /* U+009ff8: */ - 0, /* U+009ff9: */ - 0, /* U+009ffa: */ - 0, /* U+009ffb: */ - 0, /* U+009ffc: */ - 0, /* U+009ffd: */ - 0, /* U+009ffe: */ - 0, /* U+009fff: */ - RTUNI_ALPHA, /* U+00a000: YI SYLLABLE IT*/ - RTUNI_ALPHA, /* U+00a001: YI SYLLABLE IX*/ - RTUNI_ALPHA, /* U+00a002: YI SYLLABLE I*/ - RTUNI_ALPHA, /* U+00a003: YI SYLLABLE IP*/ - RTUNI_ALPHA, /* U+00a004: YI SYLLABLE IET*/ - RTUNI_ALPHA, /* U+00a005: YI SYLLABLE IEX*/ - RTUNI_ALPHA, /* U+00a006: YI SYLLABLE IE*/ - RTUNI_ALPHA, /* U+00a007: YI SYLLABLE IEP*/ - RTUNI_ALPHA, /* U+00a008: YI SYLLABLE AT*/ - RTUNI_ALPHA, /* U+00a009: YI SYLLABLE AX*/ - RTUNI_ALPHA, /* U+00a00a: YI SYLLABLE A*/ - RTUNI_ALPHA, /* U+00a00b: YI SYLLABLE AP*/ - RTUNI_ALPHA, /* U+00a00c: YI SYLLABLE UOX*/ - RTUNI_ALPHA, /* U+00a00d: YI SYLLABLE UO*/ - RTUNI_ALPHA, /* U+00a00e: YI SYLLABLE UOP*/ - RTUNI_ALPHA, /* U+00a00f: YI SYLLABLE OT*/ - RTUNI_ALPHA, /* U+00a010: YI SYLLABLE OX*/ - RTUNI_ALPHA, /* U+00a011: YI SYLLABLE O*/ - RTUNI_ALPHA, /* U+00a012: YI SYLLABLE OP*/ - RTUNI_ALPHA, /* U+00a013: YI SYLLABLE EX*/ - RTUNI_ALPHA, /* U+00a014: YI SYLLABLE E*/ - RTUNI_ALPHA, /* U+00a015: YI SYLLABLE WU*/ - RTUNI_ALPHA, /* U+00a016: YI SYLLABLE BIT*/ - RTUNI_ALPHA, /* U+00a017: YI SYLLABLE BIX*/ - RTUNI_ALPHA, /* U+00a018: YI SYLLABLE BI*/ - RTUNI_ALPHA, /* U+00a019: YI SYLLABLE BIP*/ - RTUNI_ALPHA, /* U+00a01a: YI SYLLABLE BIET*/ - RTUNI_ALPHA, /* U+00a01b: YI SYLLABLE BIEX*/ - RTUNI_ALPHA, /* U+00a01c: YI SYLLABLE BIE*/ - RTUNI_ALPHA, /* U+00a01d: YI SYLLABLE BIEP*/ - RTUNI_ALPHA, /* U+00a01e: YI SYLLABLE BAT*/ - RTUNI_ALPHA, /* U+00a01f: YI SYLLABLE BAX*/ - RTUNI_ALPHA, /* U+00a020: YI SYLLABLE BA*/ - RTUNI_ALPHA, /* U+00a021: YI SYLLABLE BAP*/ - RTUNI_ALPHA, /* U+00a022: YI SYLLABLE BUOX*/ - RTUNI_ALPHA, /* U+00a023: YI SYLLABLE BUO*/ - RTUNI_ALPHA, /* U+00a024: YI SYLLABLE BUOP*/ - RTUNI_ALPHA, /* U+00a025: YI SYLLABLE BOT*/ - RTUNI_ALPHA, /* U+00a026: YI SYLLABLE BOX*/ - RTUNI_ALPHA, /* U+00a027: YI SYLLABLE BO*/ - RTUNI_ALPHA, /* U+00a028: YI SYLLABLE BOP*/ - RTUNI_ALPHA, /* U+00a029: YI SYLLABLE BEX*/ - RTUNI_ALPHA, /* U+00a02a: YI SYLLABLE BE*/ - RTUNI_ALPHA, /* U+00a02b: YI SYLLABLE BEP*/ - RTUNI_ALPHA, /* U+00a02c: YI SYLLABLE BUT*/ - RTUNI_ALPHA, /* U+00a02d: YI SYLLABLE BUX*/ - RTUNI_ALPHA, /* U+00a02e: YI SYLLABLE BU*/ - RTUNI_ALPHA, /* U+00a02f: YI SYLLABLE BUP*/ - RTUNI_ALPHA, /* U+00a030: YI SYLLABLE BURX*/ - RTUNI_ALPHA, /* U+00a031: YI SYLLABLE BUR*/ - RTUNI_ALPHA, /* U+00a032: YI SYLLABLE BYT*/ - RTUNI_ALPHA, /* U+00a033: YI SYLLABLE BYX*/ - RTUNI_ALPHA, /* U+00a034: YI SYLLABLE BY*/ - RTUNI_ALPHA, /* U+00a035: YI SYLLABLE BYP*/ - RTUNI_ALPHA, /* U+00a036: YI SYLLABLE BYRX*/ - RTUNI_ALPHA, /* U+00a037: YI SYLLABLE BYR*/ - RTUNI_ALPHA, /* U+00a038: YI SYLLABLE PIT*/ - RTUNI_ALPHA, /* U+00a039: YI SYLLABLE PIX*/ - RTUNI_ALPHA, /* U+00a03a: YI SYLLABLE PI*/ - RTUNI_ALPHA, /* U+00a03b: YI SYLLABLE PIP*/ - RTUNI_ALPHA, /* U+00a03c: YI SYLLABLE PIEX*/ - RTUNI_ALPHA, /* U+00a03d: YI SYLLABLE PIE*/ - RTUNI_ALPHA, /* U+00a03e: YI SYLLABLE PIEP*/ - RTUNI_ALPHA, /* U+00a03f: YI SYLLABLE PAT*/ - RTUNI_ALPHA, /* U+00a040: YI SYLLABLE PAX*/ - RTUNI_ALPHA, /* U+00a041: YI SYLLABLE PA*/ - RTUNI_ALPHA, /* U+00a042: YI SYLLABLE PAP*/ - RTUNI_ALPHA, /* U+00a043: YI SYLLABLE PUOX*/ - RTUNI_ALPHA, /* U+00a044: YI SYLLABLE PUO*/ - RTUNI_ALPHA, /* U+00a045: YI SYLLABLE PUOP*/ - RTUNI_ALPHA, /* U+00a046: YI SYLLABLE POT*/ - RTUNI_ALPHA, /* U+00a047: YI SYLLABLE POX*/ - RTUNI_ALPHA, /* U+00a048: YI SYLLABLE PO*/ - RTUNI_ALPHA, /* U+00a049: YI SYLLABLE POP*/ - RTUNI_ALPHA, /* U+00a04a: YI SYLLABLE PUT*/ - RTUNI_ALPHA, /* U+00a04b: YI SYLLABLE PUX*/ - RTUNI_ALPHA, /* U+00a04c: YI SYLLABLE PU*/ - RTUNI_ALPHA, /* U+00a04d: YI SYLLABLE PUP*/ - RTUNI_ALPHA, /* U+00a04e: YI SYLLABLE PURX*/ - RTUNI_ALPHA, /* U+00a04f: YI SYLLABLE PUR*/ - RTUNI_ALPHA, /* U+00a050: YI SYLLABLE PYT*/ - RTUNI_ALPHA, /* U+00a051: YI SYLLABLE PYX*/ - RTUNI_ALPHA, /* U+00a052: YI SYLLABLE PY*/ - RTUNI_ALPHA, /* U+00a053: YI SYLLABLE PYP*/ - RTUNI_ALPHA, /* U+00a054: YI SYLLABLE PYRX*/ - RTUNI_ALPHA, /* U+00a055: YI SYLLABLE PYR*/ - RTUNI_ALPHA, /* U+00a056: YI SYLLABLE BBIT*/ - RTUNI_ALPHA, /* U+00a057: YI SYLLABLE BBIX*/ - RTUNI_ALPHA, /* U+00a058: YI SYLLABLE BBI*/ - RTUNI_ALPHA, /* U+00a059: YI SYLLABLE BBIP*/ - RTUNI_ALPHA, /* U+00a05a: YI SYLLABLE BBIET*/ - RTUNI_ALPHA, /* U+00a05b: YI SYLLABLE BBIEX*/ - RTUNI_ALPHA, /* U+00a05c: YI SYLLABLE BBIE*/ - RTUNI_ALPHA, /* U+00a05d: YI SYLLABLE BBIEP*/ - RTUNI_ALPHA, /* U+00a05e: YI SYLLABLE BBAT*/ - RTUNI_ALPHA, /* U+00a05f: YI SYLLABLE BBAX*/ - RTUNI_ALPHA, /* U+00a060: YI SYLLABLE BBA*/ - RTUNI_ALPHA, /* U+00a061: YI SYLLABLE BBAP*/ - RTUNI_ALPHA, /* U+00a062: YI SYLLABLE BBUOX*/ - RTUNI_ALPHA, /* U+00a063: YI SYLLABLE BBUO*/ - RTUNI_ALPHA, /* U+00a064: YI SYLLABLE BBUOP*/ - RTUNI_ALPHA, /* U+00a065: YI SYLLABLE BBOT*/ - RTUNI_ALPHA, /* U+00a066: YI SYLLABLE BBOX*/ - RTUNI_ALPHA, /* U+00a067: YI SYLLABLE BBO*/ - RTUNI_ALPHA, /* U+00a068: YI SYLLABLE BBOP*/ - RTUNI_ALPHA, /* U+00a069: YI SYLLABLE BBEX*/ - RTUNI_ALPHA, /* U+00a06a: YI SYLLABLE BBE*/ - RTUNI_ALPHA, /* U+00a06b: YI SYLLABLE BBEP*/ - RTUNI_ALPHA, /* U+00a06c: YI SYLLABLE BBUT*/ - RTUNI_ALPHA, /* U+00a06d: YI SYLLABLE BBUX*/ - RTUNI_ALPHA, /* U+00a06e: YI SYLLABLE BBU*/ - RTUNI_ALPHA, /* U+00a06f: YI SYLLABLE BBUP*/ - RTUNI_ALPHA, /* U+00a070: YI SYLLABLE BBURX*/ - RTUNI_ALPHA, /* U+00a071: YI SYLLABLE BBUR*/ - RTUNI_ALPHA, /* U+00a072: YI SYLLABLE BBYT*/ - RTUNI_ALPHA, /* U+00a073: YI SYLLABLE BBYX*/ - RTUNI_ALPHA, /* U+00a074: YI SYLLABLE BBY*/ - RTUNI_ALPHA, /* U+00a075: YI SYLLABLE BBYP*/ - RTUNI_ALPHA, /* U+00a076: YI SYLLABLE NBIT*/ - RTUNI_ALPHA, /* U+00a077: YI SYLLABLE NBIX*/ - RTUNI_ALPHA, /* U+00a078: YI SYLLABLE NBI*/ - RTUNI_ALPHA, /* U+00a079: YI SYLLABLE NBIP*/ - RTUNI_ALPHA, /* U+00a07a: YI SYLLABLE NBIEX*/ - RTUNI_ALPHA, /* U+00a07b: YI SYLLABLE NBIE*/ - RTUNI_ALPHA, /* U+00a07c: YI SYLLABLE NBIEP*/ - RTUNI_ALPHA, /* U+00a07d: YI SYLLABLE NBAT*/ - RTUNI_ALPHA, /* U+00a07e: YI SYLLABLE NBAX*/ - RTUNI_ALPHA, /* U+00a07f: YI SYLLABLE NBA*/ - RTUNI_ALPHA, /* U+00a080: YI SYLLABLE NBAP*/ - RTUNI_ALPHA, /* U+00a081: YI SYLLABLE NBOT*/ - RTUNI_ALPHA, /* U+00a082: YI SYLLABLE NBOX*/ - RTUNI_ALPHA, /* U+00a083: YI SYLLABLE NBO*/ - RTUNI_ALPHA, /* U+00a084: YI SYLLABLE NBOP*/ - RTUNI_ALPHA, /* U+00a085: YI SYLLABLE NBUT*/ - RTUNI_ALPHA, /* U+00a086: YI SYLLABLE NBUX*/ - RTUNI_ALPHA, /* U+00a087: YI SYLLABLE NBU*/ - RTUNI_ALPHA, /* U+00a088: YI SYLLABLE NBUP*/ - RTUNI_ALPHA, /* U+00a089: YI SYLLABLE NBURX*/ - RTUNI_ALPHA, /* U+00a08a: YI SYLLABLE NBUR*/ - RTUNI_ALPHA, /* U+00a08b: YI SYLLABLE NBYT*/ - RTUNI_ALPHA, /* U+00a08c: YI SYLLABLE NBYX*/ - RTUNI_ALPHA, /* U+00a08d: YI SYLLABLE NBY*/ - RTUNI_ALPHA, /* U+00a08e: YI SYLLABLE NBYP*/ - RTUNI_ALPHA, /* U+00a08f: YI SYLLABLE NBYRX*/ - RTUNI_ALPHA, /* U+00a090: YI SYLLABLE NBYR*/ - RTUNI_ALPHA, /* U+00a091: YI SYLLABLE HMIT*/ - RTUNI_ALPHA, /* U+00a092: YI SYLLABLE HMIX*/ - RTUNI_ALPHA, /* U+00a093: YI SYLLABLE HMI*/ - RTUNI_ALPHA, /* U+00a094: YI SYLLABLE HMIP*/ - RTUNI_ALPHA, /* U+00a095: YI SYLLABLE HMIEX*/ - RTUNI_ALPHA, /* U+00a096: YI SYLLABLE HMIE*/ - RTUNI_ALPHA, /* U+00a097: YI SYLLABLE HMIEP*/ - RTUNI_ALPHA, /* U+00a098: YI SYLLABLE HMAT*/ - RTUNI_ALPHA, /* U+00a099: YI SYLLABLE HMAX*/ - RTUNI_ALPHA, /* U+00a09a: YI SYLLABLE HMA*/ - RTUNI_ALPHA, /* U+00a09b: YI SYLLABLE HMAP*/ - RTUNI_ALPHA, /* U+00a09c: YI SYLLABLE HMUOX*/ - RTUNI_ALPHA, /* U+00a09d: YI SYLLABLE HMUO*/ - RTUNI_ALPHA, /* U+00a09e: YI SYLLABLE HMUOP*/ - RTUNI_ALPHA, /* U+00a09f: YI SYLLABLE HMOT*/ - RTUNI_ALPHA, /* U+00a0a0: YI SYLLABLE HMOX*/ - RTUNI_ALPHA, /* U+00a0a1: YI SYLLABLE HMO*/ - RTUNI_ALPHA, /* U+00a0a2: YI SYLLABLE HMOP*/ - RTUNI_ALPHA, /* U+00a0a3: YI SYLLABLE HMUT*/ - RTUNI_ALPHA, /* U+00a0a4: YI SYLLABLE HMUX*/ - RTUNI_ALPHA, /* U+00a0a5: YI SYLLABLE HMU*/ - RTUNI_ALPHA, /* U+00a0a6: YI SYLLABLE HMUP*/ - RTUNI_ALPHA, /* U+00a0a7: YI SYLLABLE HMURX*/ - RTUNI_ALPHA, /* U+00a0a8: YI SYLLABLE HMUR*/ - RTUNI_ALPHA, /* U+00a0a9: YI SYLLABLE HMYX*/ - RTUNI_ALPHA, /* U+00a0aa: YI SYLLABLE HMY*/ - RTUNI_ALPHA, /* U+00a0ab: YI SYLLABLE HMYP*/ - RTUNI_ALPHA, /* U+00a0ac: YI SYLLABLE HMYRX*/ - RTUNI_ALPHA, /* U+00a0ad: YI SYLLABLE HMYR*/ - RTUNI_ALPHA, /* U+00a0ae: YI SYLLABLE MIT*/ - RTUNI_ALPHA, /* U+00a0af: YI SYLLABLE MIX*/ - RTUNI_ALPHA, /* U+00a0b0: YI SYLLABLE MI*/ - RTUNI_ALPHA, /* U+00a0b1: YI SYLLABLE MIP*/ - RTUNI_ALPHA, /* U+00a0b2: YI SYLLABLE MIEX*/ - RTUNI_ALPHA, /* U+00a0b3: YI SYLLABLE MIE*/ - RTUNI_ALPHA, /* U+00a0b4: YI SYLLABLE MIEP*/ - RTUNI_ALPHA, /* U+00a0b5: YI SYLLABLE MAT*/ - RTUNI_ALPHA, /* U+00a0b6: YI SYLLABLE MAX*/ - RTUNI_ALPHA, /* U+00a0b7: YI SYLLABLE MA*/ - RTUNI_ALPHA, /* U+00a0b8: YI SYLLABLE MAP*/ - RTUNI_ALPHA, /* U+00a0b9: YI SYLLABLE MUOT*/ - RTUNI_ALPHA, /* U+00a0ba: YI SYLLABLE MUOX*/ - RTUNI_ALPHA, /* U+00a0bb: YI SYLLABLE MUO*/ - RTUNI_ALPHA, /* U+00a0bc: YI SYLLABLE MUOP*/ - RTUNI_ALPHA, /* U+00a0bd: YI SYLLABLE MOT*/ - RTUNI_ALPHA, /* U+00a0be: YI SYLLABLE MOX*/ - RTUNI_ALPHA, /* U+00a0bf: YI SYLLABLE MO*/ - RTUNI_ALPHA, /* U+00a0c0: YI SYLLABLE MOP*/ - RTUNI_ALPHA, /* U+00a0c1: YI SYLLABLE MEX*/ - RTUNI_ALPHA, /* U+00a0c2: YI SYLLABLE ME*/ - RTUNI_ALPHA, /* U+00a0c3: YI SYLLABLE MUT*/ - RTUNI_ALPHA, /* U+00a0c4: YI SYLLABLE MUX*/ - RTUNI_ALPHA, /* U+00a0c5: YI SYLLABLE MU*/ - RTUNI_ALPHA, /* U+00a0c6: YI SYLLABLE MUP*/ - RTUNI_ALPHA, /* U+00a0c7: YI SYLLABLE MURX*/ - RTUNI_ALPHA, /* U+00a0c8: YI SYLLABLE MUR*/ - RTUNI_ALPHA, /* U+00a0c9: YI SYLLABLE MYT*/ - RTUNI_ALPHA, /* U+00a0ca: YI SYLLABLE MYX*/ - RTUNI_ALPHA, /* U+00a0cb: YI SYLLABLE MY*/ - RTUNI_ALPHA, /* U+00a0cc: YI SYLLABLE MYP*/ - RTUNI_ALPHA, /* U+00a0cd: YI SYLLABLE FIT*/ - RTUNI_ALPHA, /* U+00a0ce: YI SYLLABLE FIX*/ - RTUNI_ALPHA, /* U+00a0cf: YI SYLLABLE FI*/ - RTUNI_ALPHA, /* U+00a0d0: YI SYLLABLE FIP*/ - RTUNI_ALPHA, /* U+00a0d1: YI SYLLABLE FAT*/ - RTUNI_ALPHA, /* U+00a0d2: YI SYLLABLE FAX*/ - RTUNI_ALPHA, /* U+00a0d3: YI SYLLABLE FA*/ - RTUNI_ALPHA, /* U+00a0d4: YI SYLLABLE FAP*/ - RTUNI_ALPHA, /* U+00a0d5: YI SYLLABLE FOX*/ - RTUNI_ALPHA, /* U+00a0d6: YI SYLLABLE FO*/ - RTUNI_ALPHA, /* U+00a0d7: YI SYLLABLE FOP*/ - RTUNI_ALPHA, /* U+00a0d8: YI SYLLABLE FUT*/ - RTUNI_ALPHA, /* U+00a0d9: YI SYLLABLE FUX*/ - RTUNI_ALPHA, /* U+00a0da: YI SYLLABLE FU*/ - RTUNI_ALPHA, /* U+00a0db: YI SYLLABLE FUP*/ - RTUNI_ALPHA, /* U+00a0dc: YI SYLLABLE FURX*/ - RTUNI_ALPHA, /* U+00a0dd: YI SYLLABLE FUR*/ - RTUNI_ALPHA, /* U+00a0de: YI SYLLABLE FYT*/ - RTUNI_ALPHA, /* U+00a0df: YI SYLLABLE FYX*/ - RTUNI_ALPHA, /* U+00a0e0: YI SYLLABLE FY*/ - RTUNI_ALPHA, /* U+00a0e1: YI SYLLABLE FYP*/ - RTUNI_ALPHA, /* U+00a0e2: YI SYLLABLE VIT*/ - RTUNI_ALPHA, /* U+00a0e3: YI SYLLABLE VIX*/ - RTUNI_ALPHA, /* U+00a0e4: YI SYLLABLE VI*/ - RTUNI_ALPHA, /* U+00a0e5: YI SYLLABLE VIP*/ - RTUNI_ALPHA, /* U+00a0e6: YI SYLLABLE VIET*/ - RTUNI_ALPHA, /* U+00a0e7: YI SYLLABLE VIEX*/ - RTUNI_ALPHA, /* U+00a0e8: YI SYLLABLE VIE*/ - RTUNI_ALPHA, /* U+00a0e9: YI SYLLABLE VIEP*/ - RTUNI_ALPHA, /* U+00a0ea: YI SYLLABLE VAT*/ - RTUNI_ALPHA, /* U+00a0eb: YI SYLLABLE VAX*/ - RTUNI_ALPHA, /* U+00a0ec: YI SYLLABLE VA*/ - RTUNI_ALPHA, /* U+00a0ed: YI SYLLABLE VAP*/ - RTUNI_ALPHA, /* U+00a0ee: YI SYLLABLE VOT*/ - RTUNI_ALPHA, /* U+00a0ef: YI SYLLABLE VOX*/ - RTUNI_ALPHA, /* U+00a0f0: YI SYLLABLE VO*/ - RTUNI_ALPHA, /* U+00a0f1: YI SYLLABLE VOP*/ - RTUNI_ALPHA, /* U+00a0f2: YI SYLLABLE VEX*/ - RTUNI_ALPHA, /* U+00a0f3: YI SYLLABLE VEP*/ - RTUNI_ALPHA, /* U+00a0f4: YI SYLLABLE VUT*/ - RTUNI_ALPHA, /* U+00a0f5: YI SYLLABLE VUX*/ - RTUNI_ALPHA, /* U+00a0f6: YI SYLLABLE VU*/ - RTUNI_ALPHA, /* U+00a0f7: YI SYLLABLE VUP*/ - RTUNI_ALPHA, /* U+00a0f8: YI SYLLABLE VURX*/ - RTUNI_ALPHA, /* U+00a0f9: YI SYLLABLE VUR*/ - RTUNI_ALPHA, /* U+00a0fa: YI SYLLABLE VYT*/ - RTUNI_ALPHA, /* U+00a0fb: YI SYLLABLE VYX*/ - RTUNI_ALPHA, /* U+00a0fc: YI SYLLABLE VY*/ - RTUNI_ALPHA, /* U+00a0fd: YI SYLLABLE VYP*/ - RTUNI_ALPHA, /* U+00a0fe: YI SYLLABLE VYRX*/ - RTUNI_ALPHA, /* U+00a0ff: YI SYLLABLE VYR*/ - RTUNI_ALPHA, /* U+00a100: YI SYLLABLE DIT*/ - RTUNI_ALPHA, /* U+00a101: YI SYLLABLE DIX*/ - RTUNI_ALPHA, /* U+00a102: YI SYLLABLE DI*/ - RTUNI_ALPHA, /* U+00a103: YI SYLLABLE DIP*/ - RTUNI_ALPHA, /* U+00a104: YI SYLLABLE DIEX*/ - RTUNI_ALPHA, /* U+00a105: YI SYLLABLE DIE*/ - RTUNI_ALPHA, /* U+00a106: YI SYLLABLE DIEP*/ - RTUNI_ALPHA, /* U+00a107: YI SYLLABLE DAT*/ - RTUNI_ALPHA, /* U+00a108: YI SYLLABLE DAX*/ - RTUNI_ALPHA, /* U+00a109: YI SYLLABLE DA*/ - RTUNI_ALPHA, /* U+00a10a: YI SYLLABLE DAP*/ - RTUNI_ALPHA, /* U+00a10b: YI SYLLABLE DUOX*/ - RTUNI_ALPHA, /* U+00a10c: YI SYLLABLE DUO*/ - RTUNI_ALPHA, /* U+00a10d: YI SYLLABLE DOT*/ - RTUNI_ALPHA, /* U+00a10e: YI SYLLABLE DOX*/ - RTUNI_ALPHA, /* U+00a10f: YI SYLLABLE DO*/ - RTUNI_ALPHA, /* U+00a110: YI SYLLABLE DOP*/ - RTUNI_ALPHA, /* U+00a111: YI SYLLABLE DEX*/ - RTUNI_ALPHA, /* U+00a112: YI SYLLABLE DE*/ - RTUNI_ALPHA, /* U+00a113: YI SYLLABLE DEP*/ - RTUNI_ALPHA, /* U+00a114: YI SYLLABLE DUT*/ - RTUNI_ALPHA, /* U+00a115: YI SYLLABLE DUX*/ - RTUNI_ALPHA, /* U+00a116: YI SYLLABLE DU*/ - RTUNI_ALPHA, /* U+00a117: YI SYLLABLE DUP*/ - RTUNI_ALPHA, /* U+00a118: YI SYLLABLE DURX*/ - RTUNI_ALPHA, /* U+00a119: YI SYLLABLE DUR*/ - RTUNI_ALPHA, /* U+00a11a: YI SYLLABLE TIT*/ - RTUNI_ALPHA, /* U+00a11b: YI SYLLABLE TIX*/ - RTUNI_ALPHA, /* U+00a11c: YI SYLLABLE TI*/ - RTUNI_ALPHA, /* U+00a11d: YI SYLLABLE TIP*/ - RTUNI_ALPHA, /* U+00a11e: YI SYLLABLE TIEX*/ - RTUNI_ALPHA, /* U+00a11f: YI SYLLABLE TIE*/ - RTUNI_ALPHA, /* U+00a120: YI SYLLABLE TIEP*/ - RTUNI_ALPHA, /* U+00a121: YI SYLLABLE TAT*/ - RTUNI_ALPHA, /* U+00a122: YI SYLLABLE TAX*/ - RTUNI_ALPHA, /* U+00a123: YI SYLLABLE TA*/ - RTUNI_ALPHA, /* U+00a124: YI SYLLABLE TAP*/ - RTUNI_ALPHA, /* U+00a125: YI SYLLABLE TUOT*/ - RTUNI_ALPHA, /* U+00a126: YI SYLLABLE TUOX*/ - RTUNI_ALPHA, /* U+00a127: YI SYLLABLE TUO*/ - RTUNI_ALPHA, /* U+00a128: YI SYLLABLE TUOP*/ - RTUNI_ALPHA, /* U+00a129: YI SYLLABLE TOT*/ - RTUNI_ALPHA, /* U+00a12a: YI SYLLABLE TOX*/ - RTUNI_ALPHA, /* U+00a12b: YI SYLLABLE TO*/ - RTUNI_ALPHA, /* U+00a12c: YI SYLLABLE TOP*/ - RTUNI_ALPHA, /* U+00a12d: YI SYLLABLE TEX*/ - RTUNI_ALPHA, /* U+00a12e: YI SYLLABLE TE*/ - RTUNI_ALPHA, /* U+00a12f: YI SYLLABLE TEP*/ - RTUNI_ALPHA, /* U+00a130: YI SYLLABLE TUT*/ - RTUNI_ALPHA, /* U+00a131: YI SYLLABLE TUX*/ - RTUNI_ALPHA, /* U+00a132: YI SYLLABLE TU*/ - RTUNI_ALPHA, /* U+00a133: YI SYLLABLE TUP*/ - RTUNI_ALPHA, /* U+00a134: YI SYLLABLE TURX*/ - RTUNI_ALPHA, /* U+00a135: YI SYLLABLE TUR*/ - RTUNI_ALPHA, /* U+00a136: YI SYLLABLE DDIT*/ - RTUNI_ALPHA, /* U+00a137: YI SYLLABLE DDIX*/ - RTUNI_ALPHA, /* U+00a138: YI SYLLABLE DDI*/ - RTUNI_ALPHA, /* U+00a139: YI SYLLABLE DDIP*/ - RTUNI_ALPHA, /* U+00a13a: YI SYLLABLE DDIEX*/ - RTUNI_ALPHA, /* U+00a13b: YI SYLLABLE DDIE*/ - RTUNI_ALPHA, /* U+00a13c: YI SYLLABLE DDIEP*/ - RTUNI_ALPHA, /* U+00a13d: YI SYLLABLE DDAT*/ - RTUNI_ALPHA, /* U+00a13e: YI SYLLABLE DDAX*/ - RTUNI_ALPHA, /* U+00a13f: YI SYLLABLE DDA*/ - RTUNI_ALPHA, /* U+00a140: YI SYLLABLE DDAP*/ - RTUNI_ALPHA, /* U+00a141: YI SYLLABLE DDUOX*/ - RTUNI_ALPHA, /* U+00a142: YI SYLLABLE DDUO*/ - RTUNI_ALPHA, /* U+00a143: YI SYLLABLE DDUOP*/ - RTUNI_ALPHA, /* U+00a144: YI SYLLABLE DDOT*/ - RTUNI_ALPHA, /* U+00a145: YI SYLLABLE DDOX*/ - RTUNI_ALPHA, /* U+00a146: YI SYLLABLE DDO*/ - RTUNI_ALPHA, /* U+00a147: YI SYLLABLE DDOP*/ - RTUNI_ALPHA, /* U+00a148: YI SYLLABLE DDEX*/ - RTUNI_ALPHA, /* U+00a149: YI SYLLABLE DDE*/ - RTUNI_ALPHA, /* U+00a14a: YI SYLLABLE DDEP*/ - RTUNI_ALPHA, /* U+00a14b: YI SYLLABLE DDUT*/ - RTUNI_ALPHA, /* U+00a14c: YI SYLLABLE DDUX*/ - RTUNI_ALPHA, /* U+00a14d: YI SYLLABLE DDU*/ - RTUNI_ALPHA, /* U+00a14e: YI SYLLABLE DDUP*/ - RTUNI_ALPHA, /* U+00a14f: YI SYLLABLE DDURX*/ - RTUNI_ALPHA, /* U+00a150: YI SYLLABLE DDUR*/ - RTUNI_ALPHA, /* U+00a151: YI SYLLABLE NDIT*/ - RTUNI_ALPHA, /* U+00a152: YI SYLLABLE NDIX*/ - RTUNI_ALPHA, /* U+00a153: YI SYLLABLE NDI*/ - RTUNI_ALPHA, /* U+00a154: YI SYLLABLE NDIP*/ - RTUNI_ALPHA, /* U+00a155: YI SYLLABLE NDIEX*/ - RTUNI_ALPHA, /* U+00a156: YI SYLLABLE NDIE*/ - RTUNI_ALPHA, /* U+00a157: YI SYLLABLE NDAT*/ - RTUNI_ALPHA, /* U+00a158: YI SYLLABLE NDAX*/ - RTUNI_ALPHA, /* U+00a159: YI SYLLABLE NDA*/ - RTUNI_ALPHA, /* U+00a15a: YI SYLLABLE NDAP*/ - RTUNI_ALPHA, /* U+00a15b: YI SYLLABLE NDOT*/ - RTUNI_ALPHA, /* U+00a15c: YI SYLLABLE NDOX*/ - RTUNI_ALPHA, /* U+00a15d: YI SYLLABLE NDO*/ - RTUNI_ALPHA, /* U+00a15e: YI SYLLABLE NDOP*/ - RTUNI_ALPHA, /* U+00a15f: YI SYLLABLE NDEX*/ - RTUNI_ALPHA, /* U+00a160: YI SYLLABLE NDE*/ - RTUNI_ALPHA, /* U+00a161: YI SYLLABLE NDEP*/ - RTUNI_ALPHA, /* U+00a162: YI SYLLABLE NDUT*/ - RTUNI_ALPHA, /* U+00a163: YI SYLLABLE NDUX*/ - RTUNI_ALPHA, /* U+00a164: YI SYLLABLE NDU*/ - RTUNI_ALPHA, /* U+00a165: YI SYLLABLE NDUP*/ - RTUNI_ALPHA, /* U+00a166: YI SYLLABLE NDURX*/ - RTUNI_ALPHA, /* U+00a167: YI SYLLABLE NDUR*/ - RTUNI_ALPHA, /* U+00a168: YI SYLLABLE HNIT*/ - RTUNI_ALPHA, /* U+00a169: YI SYLLABLE HNIX*/ - RTUNI_ALPHA, /* U+00a16a: YI SYLLABLE HNI*/ - RTUNI_ALPHA, /* U+00a16b: YI SYLLABLE HNIP*/ - RTUNI_ALPHA, /* U+00a16c: YI SYLLABLE HNIET*/ - RTUNI_ALPHA, /* U+00a16d: YI SYLLABLE HNIEX*/ - RTUNI_ALPHA, /* U+00a16e: YI SYLLABLE HNIE*/ - RTUNI_ALPHA, /* U+00a16f: YI SYLLABLE HNIEP*/ - RTUNI_ALPHA, /* U+00a170: YI SYLLABLE HNAT*/ - RTUNI_ALPHA, /* U+00a171: YI SYLLABLE HNAX*/ - RTUNI_ALPHA, /* U+00a172: YI SYLLABLE HNA*/ - RTUNI_ALPHA, /* U+00a173: YI SYLLABLE HNAP*/ - RTUNI_ALPHA, /* U+00a174: YI SYLLABLE HNUOX*/ - RTUNI_ALPHA, /* U+00a175: YI SYLLABLE HNUO*/ - RTUNI_ALPHA, /* U+00a176: YI SYLLABLE HNOT*/ - RTUNI_ALPHA, /* U+00a177: YI SYLLABLE HNOX*/ - RTUNI_ALPHA, /* U+00a178: YI SYLLABLE HNOP*/ - RTUNI_ALPHA, /* U+00a179: YI SYLLABLE HNEX*/ - RTUNI_ALPHA, /* U+00a17a: YI SYLLABLE HNE*/ - RTUNI_ALPHA, /* U+00a17b: YI SYLLABLE HNEP*/ - RTUNI_ALPHA, /* U+00a17c: YI SYLLABLE HNUT*/ - RTUNI_ALPHA, /* U+00a17d: YI SYLLABLE NIT*/ - RTUNI_ALPHA, /* U+00a17e: YI SYLLABLE NIX*/ - RTUNI_ALPHA, /* U+00a17f: YI SYLLABLE NI*/ - RTUNI_ALPHA, /* U+00a180: YI SYLLABLE NIP*/ - RTUNI_ALPHA, /* U+00a181: YI SYLLABLE NIEX*/ - RTUNI_ALPHA, /* U+00a182: YI SYLLABLE NIE*/ - RTUNI_ALPHA, /* U+00a183: YI SYLLABLE NIEP*/ - RTUNI_ALPHA, /* U+00a184: YI SYLLABLE NAX*/ - RTUNI_ALPHA, /* U+00a185: YI SYLLABLE NA*/ - RTUNI_ALPHA, /* U+00a186: YI SYLLABLE NAP*/ - RTUNI_ALPHA, /* U+00a187: YI SYLLABLE NUOX*/ - RTUNI_ALPHA, /* U+00a188: YI SYLLABLE NUO*/ - RTUNI_ALPHA, /* U+00a189: YI SYLLABLE NUOP*/ - RTUNI_ALPHA, /* U+00a18a: YI SYLLABLE NOT*/ - RTUNI_ALPHA, /* U+00a18b: YI SYLLABLE NOX*/ - RTUNI_ALPHA, /* U+00a18c: YI SYLLABLE NO*/ - RTUNI_ALPHA, /* U+00a18d: YI SYLLABLE NOP*/ - RTUNI_ALPHA, /* U+00a18e: YI SYLLABLE NEX*/ - RTUNI_ALPHA, /* U+00a18f: YI SYLLABLE NE*/ - RTUNI_ALPHA, /* U+00a190: YI SYLLABLE NEP*/ - RTUNI_ALPHA, /* U+00a191: YI SYLLABLE NUT*/ - RTUNI_ALPHA, /* U+00a192: YI SYLLABLE NUX*/ - RTUNI_ALPHA, /* U+00a193: YI SYLLABLE NU*/ - RTUNI_ALPHA, /* U+00a194: YI SYLLABLE NUP*/ - RTUNI_ALPHA, /* U+00a195: YI SYLLABLE NURX*/ - RTUNI_ALPHA, /* U+00a196: YI SYLLABLE NUR*/ - RTUNI_ALPHA, /* U+00a197: YI SYLLABLE HLIT*/ - RTUNI_ALPHA, /* U+00a198: YI SYLLABLE HLIX*/ - RTUNI_ALPHA, /* U+00a199: YI SYLLABLE HLI*/ - RTUNI_ALPHA, /* U+00a19a: YI SYLLABLE HLIP*/ - RTUNI_ALPHA, /* U+00a19b: YI SYLLABLE HLIEX*/ - RTUNI_ALPHA, /* U+00a19c: YI SYLLABLE HLIE*/ - RTUNI_ALPHA, /* U+00a19d: YI SYLLABLE HLIEP*/ - RTUNI_ALPHA, /* U+00a19e: YI SYLLABLE HLAT*/ - RTUNI_ALPHA, /* U+00a19f: YI SYLLABLE HLAX*/ - RTUNI_ALPHA, /* U+00a1a0: YI SYLLABLE HLA*/ - RTUNI_ALPHA, /* U+00a1a1: YI SYLLABLE HLAP*/ - RTUNI_ALPHA, /* U+00a1a2: YI SYLLABLE HLUOX*/ - RTUNI_ALPHA, /* U+00a1a3: YI SYLLABLE HLUO*/ - RTUNI_ALPHA, /* U+00a1a4: YI SYLLABLE HLUOP*/ - RTUNI_ALPHA, /* U+00a1a5: YI SYLLABLE HLOX*/ - RTUNI_ALPHA, /* U+00a1a6: YI SYLLABLE HLO*/ - RTUNI_ALPHA, /* U+00a1a7: YI SYLLABLE HLOP*/ - RTUNI_ALPHA, /* U+00a1a8: YI SYLLABLE HLEX*/ - RTUNI_ALPHA, /* U+00a1a9: YI SYLLABLE HLE*/ - RTUNI_ALPHA, /* U+00a1aa: YI SYLLABLE HLEP*/ - RTUNI_ALPHA, /* U+00a1ab: YI SYLLABLE HLUT*/ - RTUNI_ALPHA, /* U+00a1ac: YI SYLLABLE HLUX*/ - RTUNI_ALPHA, /* U+00a1ad: YI SYLLABLE HLU*/ - RTUNI_ALPHA, /* U+00a1ae: YI SYLLABLE HLUP*/ - RTUNI_ALPHA, /* U+00a1af: YI SYLLABLE HLURX*/ - RTUNI_ALPHA, /* U+00a1b0: YI SYLLABLE HLUR*/ - RTUNI_ALPHA, /* U+00a1b1: YI SYLLABLE HLYT*/ - RTUNI_ALPHA, /* U+00a1b2: YI SYLLABLE HLYX*/ - RTUNI_ALPHA, /* U+00a1b3: YI SYLLABLE HLY*/ - RTUNI_ALPHA, /* U+00a1b4: YI SYLLABLE HLYP*/ - RTUNI_ALPHA, /* U+00a1b5: YI SYLLABLE HLYRX*/ - RTUNI_ALPHA, /* U+00a1b6: YI SYLLABLE HLYR*/ - RTUNI_ALPHA, /* U+00a1b7: YI SYLLABLE LIT*/ - RTUNI_ALPHA, /* U+00a1b8: YI SYLLABLE LIX*/ - RTUNI_ALPHA, /* U+00a1b9: YI SYLLABLE LI*/ - RTUNI_ALPHA, /* U+00a1ba: YI SYLLABLE LIP*/ - RTUNI_ALPHA, /* U+00a1bb: YI SYLLABLE LIET*/ - RTUNI_ALPHA, /* U+00a1bc: YI SYLLABLE LIEX*/ - RTUNI_ALPHA, /* U+00a1bd: YI SYLLABLE LIE*/ - RTUNI_ALPHA, /* U+00a1be: YI SYLLABLE LIEP*/ - RTUNI_ALPHA, /* U+00a1bf: YI SYLLABLE LAT*/ - RTUNI_ALPHA, /* U+00a1c0: YI SYLLABLE LAX*/ - RTUNI_ALPHA, /* U+00a1c1: YI SYLLABLE LA*/ - RTUNI_ALPHA, /* U+00a1c2: YI SYLLABLE LAP*/ - RTUNI_ALPHA, /* U+00a1c3: YI SYLLABLE LUOT*/ - RTUNI_ALPHA, /* U+00a1c4: YI SYLLABLE LUOX*/ - RTUNI_ALPHA, /* U+00a1c5: YI SYLLABLE LUO*/ - RTUNI_ALPHA, /* U+00a1c6: YI SYLLABLE LUOP*/ - RTUNI_ALPHA, /* U+00a1c7: YI SYLLABLE LOT*/ - RTUNI_ALPHA, /* U+00a1c8: YI SYLLABLE LOX*/ - RTUNI_ALPHA, /* U+00a1c9: YI SYLLABLE LO*/ - RTUNI_ALPHA, /* U+00a1ca: YI SYLLABLE LOP*/ - RTUNI_ALPHA, /* U+00a1cb: YI SYLLABLE LEX*/ - RTUNI_ALPHA, /* U+00a1cc: YI SYLLABLE LE*/ - RTUNI_ALPHA, /* U+00a1cd: YI SYLLABLE LEP*/ - RTUNI_ALPHA, /* U+00a1ce: YI SYLLABLE LUT*/ - RTUNI_ALPHA, /* U+00a1cf: YI SYLLABLE LUX*/ - RTUNI_ALPHA, /* U+00a1d0: YI SYLLABLE LU*/ - RTUNI_ALPHA, /* U+00a1d1: YI SYLLABLE LUP*/ - RTUNI_ALPHA, /* U+00a1d2: YI SYLLABLE LURX*/ - RTUNI_ALPHA, /* U+00a1d3: YI SYLLABLE LUR*/ - RTUNI_ALPHA, /* U+00a1d4: YI SYLLABLE LYT*/ - RTUNI_ALPHA, /* U+00a1d5: YI SYLLABLE LYX*/ - RTUNI_ALPHA, /* U+00a1d6: YI SYLLABLE LY*/ - RTUNI_ALPHA, /* U+00a1d7: YI SYLLABLE LYP*/ - RTUNI_ALPHA, /* U+00a1d8: YI SYLLABLE LYRX*/ - RTUNI_ALPHA, /* U+00a1d9: YI SYLLABLE LYR*/ - RTUNI_ALPHA, /* U+00a1da: YI SYLLABLE GIT*/ - RTUNI_ALPHA, /* U+00a1db: YI SYLLABLE GIX*/ - RTUNI_ALPHA, /* U+00a1dc: YI SYLLABLE GI*/ - RTUNI_ALPHA, /* U+00a1dd: YI SYLLABLE GIP*/ - RTUNI_ALPHA, /* U+00a1de: YI SYLLABLE GIET*/ - RTUNI_ALPHA, /* U+00a1df: YI SYLLABLE GIEX*/ - RTUNI_ALPHA, /* U+00a1e0: YI SYLLABLE GIE*/ - RTUNI_ALPHA, /* U+00a1e1: YI SYLLABLE GIEP*/ - RTUNI_ALPHA, /* U+00a1e2: YI SYLLABLE GAT*/ - RTUNI_ALPHA, /* U+00a1e3: YI SYLLABLE GAX*/ - RTUNI_ALPHA, /* U+00a1e4: YI SYLLABLE GA*/ - RTUNI_ALPHA, /* U+00a1e5: YI SYLLABLE GAP*/ - RTUNI_ALPHA, /* U+00a1e6: YI SYLLABLE GUOT*/ - RTUNI_ALPHA, /* U+00a1e7: YI SYLLABLE GUOX*/ - RTUNI_ALPHA, /* U+00a1e8: YI SYLLABLE GUO*/ - RTUNI_ALPHA, /* U+00a1e9: YI SYLLABLE GUOP*/ - RTUNI_ALPHA, /* U+00a1ea: YI SYLLABLE GOT*/ - RTUNI_ALPHA, /* U+00a1eb: YI SYLLABLE GOX*/ - RTUNI_ALPHA, /* U+00a1ec: YI SYLLABLE GO*/ - RTUNI_ALPHA, /* U+00a1ed: YI SYLLABLE GOP*/ - RTUNI_ALPHA, /* U+00a1ee: YI SYLLABLE GET*/ - RTUNI_ALPHA, /* U+00a1ef: YI SYLLABLE GEX*/ - RTUNI_ALPHA, /* U+00a1f0: YI SYLLABLE GE*/ - RTUNI_ALPHA, /* U+00a1f1: YI SYLLABLE GEP*/ - RTUNI_ALPHA, /* U+00a1f2: YI SYLLABLE GUT*/ - RTUNI_ALPHA, /* U+00a1f3: YI SYLLABLE GUX*/ - RTUNI_ALPHA, /* U+00a1f4: YI SYLLABLE GU*/ - RTUNI_ALPHA, /* U+00a1f5: YI SYLLABLE GUP*/ - RTUNI_ALPHA, /* U+00a1f6: YI SYLLABLE GURX*/ - RTUNI_ALPHA, /* U+00a1f7: YI SYLLABLE GUR*/ - RTUNI_ALPHA, /* U+00a1f8: YI SYLLABLE KIT*/ - RTUNI_ALPHA, /* U+00a1f9: YI SYLLABLE KIX*/ - RTUNI_ALPHA, /* U+00a1fa: YI SYLLABLE KI*/ - RTUNI_ALPHA, /* U+00a1fb: YI SYLLABLE KIP*/ - RTUNI_ALPHA, /* U+00a1fc: YI SYLLABLE KIEX*/ - RTUNI_ALPHA, /* U+00a1fd: YI SYLLABLE KIE*/ - RTUNI_ALPHA, /* U+00a1fe: YI SYLLABLE KIEP*/ - RTUNI_ALPHA, /* U+00a1ff: YI SYLLABLE KAT*/ - RTUNI_ALPHA, /* U+00a200: YI SYLLABLE KAX*/ - RTUNI_ALPHA, /* U+00a201: YI SYLLABLE KA*/ - RTUNI_ALPHA, /* U+00a202: YI SYLLABLE KAP*/ - RTUNI_ALPHA, /* U+00a203: YI SYLLABLE KUOX*/ - RTUNI_ALPHA, /* U+00a204: YI SYLLABLE KUO*/ - RTUNI_ALPHA, /* U+00a205: YI SYLLABLE KUOP*/ - RTUNI_ALPHA, /* U+00a206: YI SYLLABLE KOT*/ - RTUNI_ALPHA, /* U+00a207: YI SYLLABLE KOX*/ - RTUNI_ALPHA, /* U+00a208: YI SYLLABLE KO*/ - RTUNI_ALPHA, /* U+00a209: YI SYLLABLE KOP*/ - RTUNI_ALPHA, /* U+00a20a: YI SYLLABLE KET*/ - RTUNI_ALPHA, /* U+00a20b: YI SYLLABLE KEX*/ - RTUNI_ALPHA, /* U+00a20c: YI SYLLABLE KE*/ - RTUNI_ALPHA, /* U+00a20d: YI SYLLABLE KEP*/ - RTUNI_ALPHA, /* U+00a20e: YI SYLLABLE KUT*/ - RTUNI_ALPHA, /* U+00a20f: YI SYLLABLE KUX*/ - RTUNI_ALPHA, /* U+00a210: YI SYLLABLE KU*/ - RTUNI_ALPHA, /* U+00a211: YI SYLLABLE KUP*/ - RTUNI_ALPHA, /* U+00a212: YI SYLLABLE KURX*/ - RTUNI_ALPHA, /* U+00a213: YI SYLLABLE KUR*/ - RTUNI_ALPHA, /* U+00a214: YI SYLLABLE GGIT*/ - RTUNI_ALPHA, /* U+00a215: YI SYLLABLE GGIX*/ - RTUNI_ALPHA, /* U+00a216: YI SYLLABLE GGI*/ - RTUNI_ALPHA, /* U+00a217: YI SYLLABLE GGIEX*/ - RTUNI_ALPHA, /* U+00a218: YI SYLLABLE GGIE*/ - RTUNI_ALPHA, /* U+00a219: YI SYLLABLE GGIEP*/ - RTUNI_ALPHA, /* U+00a21a: YI SYLLABLE GGAT*/ - RTUNI_ALPHA, /* U+00a21b: YI SYLLABLE GGAX*/ - RTUNI_ALPHA, /* U+00a21c: YI SYLLABLE GGA*/ - RTUNI_ALPHA, /* U+00a21d: YI SYLLABLE GGAP*/ - RTUNI_ALPHA, /* U+00a21e: YI SYLLABLE GGUOT*/ - RTUNI_ALPHA, /* U+00a21f: YI SYLLABLE GGUOX*/ - RTUNI_ALPHA, /* U+00a220: YI SYLLABLE GGUO*/ - RTUNI_ALPHA, /* U+00a221: YI SYLLABLE GGUOP*/ - RTUNI_ALPHA, /* U+00a222: YI SYLLABLE GGOT*/ - RTUNI_ALPHA, /* U+00a223: YI SYLLABLE GGOX*/ - RTUNI_ALPHA, /* U+00a224: YI SYLLABLE GGO*/ - RTUNI_ALPHA, /* U+00a225: YI SYLLABLE GGOP*/ - RTUNI_ALPHA, /* U+00a226: YI SYLLABLE GGET*/ - RTUNI_ALPHA, /* U+00a227: YI SYLLABLE GGEX*/ - RTUNI_ALPHA, /* U+00a228: YI SYLLABLE GGE*/ - RTUNI_ALPHA, /* U+00a229: YI SYLLABLE GGEP*/ - RTUNI_ALPHA, /* U+00a22a: YI SYLLABLE GGUT*/ - RTUNI_ALPHA, /* U+00a22b: YI SYLLABLE GGUX*/ - RTUNI_ALPHA, /* U+00a22c: YI SYLLABLE GGU*/ - RTUNI_ALPHA, /* U+00a22d: YI SYLLABLE GGUP*/ - RTUNI_ALPHA, /* U+00a22e: YI SYLLABLE GGURX*/ - RTUNI_ALPHA, /* U+00a22f: YI SYLLABLE GGUR*/ - RTUNI_ALPHA, /* U+00a230: YI SYLLABLE MGIEX*/ - RTUNI_ALPHA, /* U+00a231: YI SYLLABLE MGIE*/ - RTUNI_ALPHA, /* U+00a232: YI SYLLABLE MGAT*/ - RTUNI_ALPHA, /* U+00a233: YI SYLLABLE MGAX*/ - RTUNI_ALPHA, /* U+00a234: YI SYLLABLE MGA*/ - RTUNI_ALPHA, /* U+00a235: YI SYLLABLE MGAP*/ - RTUNI_ALPHA, /* U+00a236: YI SYLLABLE MGUOX*/ - RTUNI_ALPHA, /* U+00a237: YI SYLLABLE MGUO*/ - RTUNI_ALPHA, /* U+00a238: YI SYLLABLE MGUOP*/ - RTUNI_ALPHA, /* U+00a239: YI SYLLABLE MGOT*/ - RTUNI_ALPHA, /* U+00a23a: YI SYLLABLE MGOX*/ - RTUNI_ALPHA, /* U+00a23b: YI SYLLABLE MGO*/ - RTUNI_ALPHA, /* U+00a23c: YI SYLLABLE MGOP*/ - RTUNI_ALPHA, /* U+00a23d: YI SYLLABLE MGEX*/ - RTUNI_ALPHA, /* U+00a23e: YI SYLLABLE MGE*/ - RTUNI_ALPHA, /* U+00a23f: YI SYLLABLE MGEP*/ - RTUNI_ALPHA, /* U+00a240: YI SYLLABLE MGUT*/ - RTUNI_ALPHA, /* U+00a241: YI SYLLABLE MGUX*/ - RTUNI_ALPHA, /* U+00a242: YI SYLLABLE MGU*/ - RTUNI_ALPHA, /* U+00a243: YI SYLLABLE MGUP*/ - RTUNI_ALPHA, /* U+00a244: YI SYLLABLE MGURX*/ - RTUNI_ALPHA, /* U+00a245: YI SYLLABLE MGUR*/ - RTUNI_ALPHA, /* U+00a246: YI SYLLABLE HXIT*/ - RTUNI_ALPHA, /* U+00a247: YI SYLLABLE HXIX*/ - RTUNI_ALPHA, /* U+00a248: YI SYLLABLE HXI*/ - RTUNI_ALPHA, /* U+00a249: YI SYLLABLE HXIP*/ - RTUNI_ALPHA, /* U+00a24a: YI SYLLABLE HXIET*/ - RTUNI_ALPHA, /* U+00a24b: YI SYLLABLE HXIEX*/ - RTUNI_ALPHA, /* U+00a24c: YI SYLLABLE HXIE*/ - RTUNI_ALPHA, /* U+00a24d: YI SYLLABLE HXIEP*/ - RTUNI_ALPHA, /* U+00a24e: YI SYLLABLE HXAT*/ - RTUNI_ALPHA, /* U+00a24f: YI SYLLABLE HXAX*/ - RTUNI_ALPHA, /* U+00a250: YI SYLLABLE HXA*/ - RTUNI_ALPHA, /* U+00a251: YI SYLLABLE HXAP*/ - RTUNI_ALPHA, /* U+00a252: YI SYLLABLE HXUOT*/ - RTUNI_ALPHA, /* U+00a253: YI SYLLABLE HXUOX*/ - RTUNI_ALPHA, /* U+00a254: YI SYLLABLE HXUO*/ - RTUNI_ALPHA, /* U+00a255: YI SYLLABLE HXUOP*/ - RTUNI_ALPHA, /* U+00a256: YI SYLLABLE HXOT*/ - RTUNI_ALPHA, /* U+00a257: YI SYLLABLE HXOX*/ - RTUNI_ALPHA, /* U+00a258: YI SYLLABLE HXO*/ - RTUNI_ALPHA, /* U+00a259: YI SYLLABLE HXOP*/ - RTUNI_ALPHA, /* U+00a25a: YI SYLLABLE HXEX*/ - RTUNI_ALPHA, /* U+00a25b: YI SYLLABLE HXE*/ - RTUNI_ALPHA, /* U+00a25c: YI SYLLABLE HXEP*/ - RTUNI_ALPHA, /* U+00a25d: YI SYLLABLE NGIEX*/ - RTUNI_ALPHA, /* U+00a25e: YI SYLLABLE NGIE*/ - RTUNI_ALPHA, /* U+00a25f: YI SYLLABLE NGIEP*/ - RTUNI_ALPHA, /* U+00a260: YI SYLLABLE NGAT*/ - RTUNI_ALPHA, /* U+00a261: YI SYLLABLE NGAX*/ - RTUNI_ALPHA, /* U+00a262: YI SYLLABLE NGA*/ - RTUNI_ALPHA, /* U+00a263: YI SYLLABLE NGAP*/ - RTUNI_ALPHA, /* U+00a264: YI SYLLABLE NGUOT*/ - RTUNI_ALPHA, /* U+00a265: YI SYLLABLE NGUOX*/ - RTUNI_ALPHA, /* U+00a266: YI SYLLABLE NGUO*/ - RTUNI_ALPHA, /* U+00a267: YI SYLLABLE NGOT*/ - RTUNI_ALPHA, /* U+00a268: YI SYLLABLE NGOX*/ - RTUNI_ALPHA, /* U+00a269: YI SYLLABLE NGO*/ - RTUNI_ALPHA, /* U+00a26a: YI SYLLABLE NGOP*/ - RTUNI_ALPHA, /* U+00a26b: YI SYLLABLE NGEX*/ - RTUNI_ALPHA, /* U+00a26c: YI SYLLABLE NGE*/ - RTUNI_ALPHA, /* U+00a26d: YI SYLLABLE NGEP*/ - RTUNI_ALPHA, /* U+00a26e: YI SYLLABLE HIT*/ - RTUNI_ALPHA, /* U+00a26f: YI SYLLABLE HIEX*/ - RTUNI_ALPHA, /* U+00a270: YI SYLLABLE HIE*/ - RTUNI_ALPHA, /* U+00a271: YI SYLLABLE HAT*/ - RTUNI_ALPHA, /* U+00a272: YI SYLLABLE HAX*/ - RTUNI_ALPHA, /* U+00a273: YI SYLLABLE HA*/ - RTUNI_ALPHA, /* U+00a274: YI SYLLABLE HAP*/ - RTUNI_ALPHA, /* U+00a275: YI SYLLABLE HUOT*/ - RTUNI_ALPHA, /* U+00a276: YI SYLLABLE HUOX*/ - RTUNI_ALPHA, /* U+00a277: YI SYLLABLE HUO*/ - RTUNI_ALPHA, /* U+00a278: YI SYLLABLE HUOP*/ - RTUNI_ALPHA, /* U+00a279: YI SYLLABLE HOT*/ - RTUNI_ALPHA, /* U+00a27a: YI SYLLABLE HOX*/ - RTUNI_ALPHA, /* U+00a27b: YI SYLLABLE HO*/ - RTUNI_ALPHA, /* U+00a27c: YI SYLLABLE HOP*/ - RTUNI_ALPHA, /* U+00a27d: YI SYLLABLE HEX*/ - RTUNI_ALPHA, /* U+00a27e: YI SYLLABLE HE*/ - RTUNI_ALPHA, /* U+00a27f: YI SYLLABLE HEP*/ - RTUNI_ALPHA, /* U+00a280: YI SYLLABLE WAT*/ - RTUNI_ALPHA, /* U+00a281: YI SYLLABLE WAX*/ - RTUNI_ALPHA, /* U+00a282: YI SYLLABLE WA*/ - RTUNI_ALPHA, /* U+00a283: YI SYLLABLE WAP*/ - RTUNI_ALPHA, /* U+00a284: YI SYLLABLE WUOX*/ - RTUNI_ALPHA, /* U+00a285: YI SYLLABLE WUO*/ - RTUNI_ALPHA, /* U+00a286: YI SYLLABLE WUOP*/ - RTUNI_ALPHA, /* U+00a287: YI SYLLABLE WOX*/ - RTUNI_ALPHA, /* U+00a288: YI SYLLABLE WO*/ - RTUNI_ALPHA, /* U+00a289: YI SYLLABLE WOP*/ - RTUNI_ALPHA, /* U+00a28a: YI SYLLABLE WEX*/ - RTUNI_ALPHA, /* U+00a28b: YI SYLLABLE WE*/ - RTUNI_ALPHA, /* U+00a28c: YI SYLLABLE WEP*/ - RTUNI_ALPHA, /* U+00a28d: YI SYLLABLE ZIT*/ - RTUNI_ALPHA, /* U+00a28e: YI SYLLABLE ZIX*/ - RTUNI_ALPHA, /* U+00a28f: YI SYLLABLE ZI*/ - RTUNI_ALPHA, /* U+00a290: YI SYLLABLE ZIP*/ - RTUNI_ALPHA, /* U+00a291: YI SYLLABLE ZIEX*/ - RTUNI_ALPHA, /* U+00a292: YI SYLLABLE ZIE*/ - RTUNI_ALPHA, /* U+00a293: YI SYLLABLE ZIEP*/ - RTUNI_ALPHA, /* U+00a294: YI SYLLABLE ZAT*/ - RTUNI_ALPHA, /* U+00a295: YI SYLLABLE ZAX*/ - RTUNI_ALPHA, /* U+00a296: YI SYLLABLE ZA*/ - RTUNI_ALPHA, /* U+00a297: YI SYLLABLE ZAP*/ - RTUNI_ALPHA, /* U+00a298: YI SYLLABLE ZUOX*/ - RTUNI_ALPHA, /* U+00a299: YI SYLLABLE ZUO*/ - RTUNI_ALPHA, /* U+00a29a: YI SYLLABLE ZUOP*/ - RTUNI_ALPHA, /* U+00a29b: YI SYLLABLE ZOT*/ - RTUNI_ALPHA, /* U+00a29c: YI SYLLABLE ZOX*/ - RTUNI_ALPHA, /* U+00a29d: YI SYLLABLE ZO*/ - RTUNI_ALPHA, /* U+00a29e: YI SYLLABLE ZOP*/ - RTUNI_ALPHA, /* U+00a29f: YI SYLLABLE ZEX*/ - RTUNI_ALPHA, /* U+00a2a0: YI SYLLABLE ZE*/ - RTUNI_ALPHA, /* U+00a2a1: YI SYLLABLE ZEP*/ - RTUNI_ALPHA, /* U+00a2a2: YI SYLLABLE ZUT*/ - RTUNI_ALPHA, /* U+00a2a3: YI SYLLABLE ZUX*/ - RTUNI_ALPHA, /* U+00a2a4: YI SYLLABLE ZU*/ - RTUNI_ALPHA, /* U+00a2a5: YI SYLLABLE ZUP*/ - RTUNI_ALPHA, /* U+00a2a6: YI SYLLABLE ZURX*/ - RTUNI_ALPHA, /* U+00a2a7: YI SYLLABLE ZUR*/ - RTUNI_ALPHA, /* U+00a2a8: YI SYLLABLE ZYT*/ - RTUNI_ALPHA, /* U+00a2a9: YI SYLLABLE ZYX*/ - RTUNI_ALPHA, /* U+00a2aa: YI SYLLABLE ZY*/ - RTUNI_ALPHA, /* U+00a2ab: YI SYLLABLE ZYP*/ - RTUNI_ALPHA, /* U+00a2ac: YI SYLLABLE ZYRX*/ - RTUNI_ALPHA, /* U+00a2ad: YI SYLLABLE ZYR*/ - RTUNI_ALPHA, /* U+00a2ae: YI SYLLABLE CIT*/ - RTUNI_ALPHA, /* U+00a2af: YI SYLLABLE CIX*/ - RTUNI_ALPHA, /* U+00a2b0: YI SYLLABLE CI*/ - RTUNI_ALPHA, /* U+00a2b1: YI SYLLABLE CIP*/ - RTUNI_ALPHA, /* U+00a2b2: YI SYLLABLE CIET*/ - RTUNI_ALPHA, /* U+00a2b3: YI SYLLABLE CIEX*/ - RTUNI_ALPHA, /* U+00a2b4: YI SYLLABLE CIE*/ - RTUNI_ALPHA, /* U+00a2b5: YI SYLLABLE CIEP*/ - RTUNI_ALPHA, /* U+00a2b6: YI SYLLABLE CAT*/ - RTUNI_ALPHA, /* U+00a2b7: YI SYLLABLE CAX*/ - RTUNI_ALPHA, /* U+00a2b8: YI SYLLABLE CA*/ - RTUNI_ALPHA, /* U+00a2b9: YI SYLLABLE CAP*/ - RTUNI_ALPHA, /* U+00a2ba: YI SYLLABLE CUOX*/ - RTUNI_ALPHA, /* U+00a2bb: YI SYLLABLE CUO*/ - RTUNI_ALPHA, /* U+00a2bc: YI SYLLABLE CUOP*/ - RTUNI_ALPHA, /* U+00a2bd: YI SYLLABLE COT*/ - RTUNI_ALPHA, /* U+00a2be: YI SYLLABLE COX*/ - RTUNI_ALPHA, /* U+00a2bf: YI SYLLABLE CO*/ - RTUNI_ALPHA, /* U+00a2c0: YI SYLLABLE COP*/ - RTUNI_ALPHA, /* U+00a2c1: YI SYLLABLE CEX*/ - RTUNI_ALPHA, /* U+00a2c2: YI SYLLABLE CE*/ - RTUNI_ALPHA, /* U+00a2c3: YI SYLLABLE CEP*/ - RTUNI_ALPHA, /* U+00a2c4: YI SYLLABLE CUT*/ - RTUNI_ALPHA, /* U+00a2c5: YI SYLLABLE CUX*/ - RTUNI_ALPHA, /* U+00a2c6: YI SYLLABLE CU*/ - RTUNI_ALPHA, /* U+00a2c7: YI SYLLABLE CUP*/ - RTUNI_ALPHA, /* U+00a2c8: YI SYLLABLE CURX*/ - RTUNI_ALPHA, /* U+00a2c9: YI SYLLABLE CUR*/ - RTUNI_ALPHA, /* U+00a2ca: YI SYLLABLE CYT*/ - RTUNI_ALPHA, /* U+00a2cb: YI SYLLABLE CYX*/ - RTUNI_ALPHA, /* U+00a2cc: YI SYLLABLE CY*/ - RTUNI_ALPHA, /* U+00a2cd: YI SYLLABLE CYP*/ - RTUNI_ALPHA, /* U+00a2ce: YI SYLLABLE CYRX*/ - RTUNI_ALPHA, /* U+00a2cf: YI SYLLABLE CYR*/ - RTUNI_ALPHA, /* U+00a2d0: YI SYLLABLE ZZIT*/ - RTUNI_ALPHA, /* U+00a2d1: YI SYLLABLE ZZIX*/ - RTUNI_ALPHA, /* U+00a2d2: YI SYLLABLE ZZI*/ - RTUNI_ALPHA, /* U+00a2d3: YI SYLLABLE ZZIP*/ - RTUNI_ALPHA, /* U+00a2d4: YI SYLLABLE ZZIET*/ - RTUNI_ALPHA, /* U+00a2d5: YI SYLLABLE ZZIEX*/ - RTUNI_ALPHA, /* U+00a2d6: YI SYLLABLE ZZIE*/ - RTUNI_ALPHA, /* U+00a2d7: YI SYLLABLE ZZIEP*/ - RTUNI_ALPHA, /* U+00a2d8: YI SYLLABLE ZZAT*/ - RTUNI_ALPHA, /* U+00a2d9: YI SYLLABLE ZZAX*/ - RTUNI_ALPHA, /* U+00a2da: YI SYLLABLE ZZA*/ - RTUNI_ALPHA, /* U+00a2db: YI SYLLABLE ZZAP*/ - RTUNI_ALPHA, /* U+00a2dc: YI SYLLABLE ZZOX*/ - RTUNI_ALPHA, /* U+00a2dd: YI SYLLABLE ZZO*/ - RTUNI_ALPHA, /* U+00a2de: YI SYLLABLE ZZOP*/ - RTUNI_ALPHA, /* U+00a2df: YI SYLLABLE ZZEX*/ - RTUNI_ALPHA, /* U+00a2e0: YI SYLLABLE ZZE*/ - RTUNI_ALPHA, /* U+00a2e1: YI SYLLABLE ZZEP*/ - RTUNI_ALPHA, /* U+00a2e2: YI SYLLABLE ZZUX*/ - RTUNI_ALPHA, /* U+00a2e3: YI SYLLABLE ZZU*/ - RTUNI_ALPHA, /* U+00a2e4: YI SYLLABLE ZZUP*/ - RTUNI_ALPHA, /* U+00a2e5: YI SYLLABLE ZZURX*/ - RTUNI_ALPHA, /* U+00a2e6: YI SYLLABLE ZZUR*/ - RTUNI_ALPHA, /* U+00a2e7: YI SYLLABLE ZZYT*/ - RTUNI_ALPHA, /* U+00a2e8: YI SYLLABLE ZZYX*/ - RTUNI_ALPHA, /* U+00a2e9: YI SYLLABLE ZZY*/ - RTUNI_ALPHA, /* U+00a2ea: YI SYLLABLE ZZYP*/ - RTUNI_ALPHA, /* U+00a2eb: YI SYLLABLE ZZYRX*/ - RTUNI_ALPHA, /* U+00a2ec: YI SYLLABLE ZZYR*/ - RTUNI_ALPHA, /* U+00a2ed: YI SYLLABLE NZIT*/ - RTUNI_ALPHA, /* U+00a2ee: YI SYLLABLE NZIX*/ - RTUNI_ALPHA, /* U+00a2ef: YI SYLLABLE NZI*/ - RTUNI_ALPHA, /* U+00a2f0: YI SYLLABLE NZIP*/ - RTUNI_ALPHA, /* U+00a2f1: YI SYLLABLE NZIEX*/ - RTUNI_ALPHA, /* U+00a2f2: YI SYLLABLE NZIE*/ - RTUNI_ALPHA, /* U+00a2f3: YI SYLLABLE NZIEP*/ - RTUNI_ALPHA, /* U+00a2f4: YI SYLLABLE NZAT*/ - RTUNI_ALPHA, /* U+00a2f5: YI SYLLABLE NZAX*/ - RTUNI_ALPHA, /* U+00a2f6: YI SYLLABLE NZA*/ - RTUNI_ALPHA, /* U+00a2f7: YI SYLLABLE NZAP*/ - RTUNI_ALPHA, /* U+00a2f8: YI SYLLABLE NZUOX*/ - RTUNI_ALPHA, /* U+00a2f9: YI SYLLABLE NZUO*/ - RTUNI_ALPHA, /* U+00a2fa: YI SYLLABLE NZOX*/ - RTUNI_ALPHA, /* U+00a2fb: YI SYLLABLE NZOP*/ - RTUNI_ALPHA, /* U+00a2fc: YI SYLLABLE NZEX*/ - RTUNI_ALPHA, /* U+00a2fd: YI SYLLABLE NZE*/ - RTUNI_ALPHA, /* U+00a2fe: YI SYLLABLE NZUX*/ - RTUNI_ALPHA, /* U+00a2ff: YI SYLLABLE NZU*/ - RTUNI_ALPHA, /* U+00a300: YI SYLLABLE NZUP*/ - RTUNI_ALPHA, /* U+00a301: YI SYLLABLE NZURX*/ - RTUNI_ALPHA, /* U+00a302: YI SYLLABLE NZUR*/ - RTUNI_ALPHA, /* U+00a303: YI SYLLABLE NZYT*/ - RTUNI_ALPHA, /* U+00a304: YI SYLLABLE NZYX*/ - RTUNI_ALPHA, /* U+00a305: YI SYLLABLE NZY*/ - RTUNI_ALPHA, /* U+00a306: YI SYLLABLE NZYP*/ - RTUNI_ALPHA, /* U+00a307: YI SYLLABLE NZYRX*/ - RTUNI_ALPHA, /* U+00a308: YI SYLLABLE NZYR*/ - RTUNI_ALPHA, /* U+00a309: YI SYLLABLE SIT*/ - RTUNI_ALPHA, /* U+00a30a: YI SYLLABLE SIX*/ - RTUNI_ALPHA, /* U+00a30b: YI SYLLABLE SI*/ - RTUNI_ALPHA, /* U+00a30c: YI SYLLABLE SIP*/ - RTUNI_ALPHA, /* U+00a30d: YI SYLLABLE SIEX*/ - RTUNI_ALPHA, /* U+00a30e: YI SYLLABLE SIE*/ - RTUNI_ALPHA, /* U+00a30f: YI SYLLABLE SIEP*/ - RTUNI_ALPHA, /* U+00a310: YI SYLLABLE SAT*/ - RTUNI_ALPHA, /* U+00a311: YI SYLLABLE SAX*/ - RTUNI_ALPHA, /* U+00a312: YI SYLLABLE SA*/ - RTUNI_ALPHA, /* U+00a313: YI SYLLABLE SAP*/ - RTUNI_ALPHA, /* U+00a314: YI SYLLABLE SUOX*/ - RTUNI_ALPHA, /* U+00a315: YI SYLLABLE SUO*/ - RTUNI_ALPHA, /* U+00a316: YI SYLLABLE SUOP*/ - RTUNI_ALPHA, /* U+00a317: YI SYLLABLE SOT*/ - RTUNI_ALPHA, /* U+00a318: YI SYLLABLE SOX*/ - RTUNI_ALPHA, /* U+00a319: YI SYLLABLE SO*/ - RTUNI_ALPHA, /* U+00a31a: YI SYLLABLE SOP*/ - RTUNI_ALPHA, /* U+00a31b: YI SYLLABLE SEX*/ - RTUNI_ALPHA, /* U+00a31c: YI SYLLABLE SE*/ - RTUNI_ALPHA, /* U+00a31d: YI SYLLABLE SEP*/ - RTUNI_ALPHA, /* U+00a31e: YI SYLLABLE SUT*/ - RTUNI_ALPHA, /* U+00a31f: YI SYLLABLE SUX*/ - RTUNI_ALPHA, /* U+00a320: YI SYLLABLE SU*/ - RTUNI_ALPHA, /* U+00a321: YI SYLLABLE SUP*/ - RTUNI_ALPHA, /* U+00a322: YI SYLLABLE SURX*/ - RTUNI_ALPHA, /* U+00a323: YI SYLLABLE SUR*/ - RTUNI_ALPHA, /* U+00a324: YI SYLLABLE SYT*/ - RTUNI_ALPHA, /* U+00a325: YI SYLLABLE SYX*/ - RTUNI_ALPHA, /* U+00a326: YI SYLLABLE SY*/ - RTUNI_ALPHA, /* U+00a327: YI SYLLABLE SYP*/ - RTUNI_ALPHA, /* U+00a328: YI SYLLABLE SYRX*/ - RTUNI_ALPHA, /* U+00a329: YI SYLLABLE SYR*/ - RTUNI_ALPHA, /* U+00a32a: YI SYLLABLE SSIT*/ - RTUNI_ALPHA, /* U+00a32b: YI SYLLABLE SSIX*/ - RTUNI_ALPHA, /* U+00a32c: YI SYLLABLE SSI*/ - RTUNI_ALPHA, /* U+00a32d: YI SYLLABLE SSIP*/ - RTUNI_ALPHA, /* U+00a32e: YI SYLLABLE SSIEX*/ - RTUNI_ALPHA, /* U+00a32f: YI SYLLABLE SSIE*/ - RTUNI_ALPHA, /* U+00a330: YI SYLLABLE SSIEP*/ - RTUNI_ALPHA, /* U+00a331: YI SYLLABLE SSAT*/ - RTUNI_ALPHA, /* U+00a332: YI SYLLABLE SSAX*/ - RTUNI_ALPHA, /* U+00a333: YI SYLLABLE SSA*/ - RTUNI_ALPHA, /* U+00a334: YI SYLLABLE SSAP*/ - RTUNI_ALPHA, /* U+00a335: YI SYLLABLE SSOT*/ - RTUNI_ALPHA, /* U+00a336: YI SYLLABLE SSOX*/ - RTUNI_ALPHA, /* U+00a337: YI SYLLABLE SSO*/ - RTUNI_ALPHA, /* U+00a338: YI SYLLABLE SSOP*/ - RTUNI_ALPHA, /* U+00a339: YI SYLLABLE SSEX*/ - RTUNI_ALPHA, /* U+00a33a: YI SYLLABLE SSE*/ - RTUNI_ALPHA, /* U+00a33b: YI SYLLABLE SSEP*/ - RTUNI_ALPHA, /* U+00a33c: YI SYLLABLE SSUT*/ - RTUNI_ALPHA, /* U+00a33d: YI SYLLABLE SSUX*/ - RTUNI_ALPHA, /* U+00a33e: YI SYLLABLE SSU*/ - RTUNI_ALPHA, /* U+00a33f: YI SYLLABLE SSUP*/ - RTUNI_ALPHA, /* U+00a340: YI SYLLABLE SSYT*/ - RTUNI_ALPHA, /* U+00a341: YI SYLLABLE SSYX*/ - RTUNI_ALPHA, /* U+00a342: YI SYLLABLE SSY*/ - RTUNI_ALPHA, /* U+00a343: YI SYLLABLE SSYP*/ - RTUNI_ALPHA, /* U+00a344: YI SYLLABLE SSYRX*/ - RTUNI_ALPHA, /* U+00a345: YI SYLLABLE SSYR*/ - RTUNI_ALPHA, /* U+00a346: YI SYLLABLE ZHAT*/ - RTUNI_ALPHA, /* U+00a347: YI SYLLABLE ZHAX*/ - RTUNI_ALPHA, /* U+00a348: YI SYLLABLE ZHA*/ - RTUNI_ALPHA, /* U+00a349: YI SYLLABLE ZHAP*/ - RTUNI_ALPHA, /* U+00a34a: YI SYLLABLE ZHUOX*/ - RTUNI_ALPHA, /* U+00a34b: YI SYLLABLE ZHUO*/ - RTUNI_ALPHA, /* U+00a34c: YI SYLLABLE ZHUOP*/ - RTUNI_ALPHA, /* U+00a34d: YI SYLLABLE ZHOT*/ - RTUNI_ALPHA, /* U+00a34e: YI SYLLABLE ZHOX*/ - RTUNI_ALPHA, /* U+00a34f: YI SYLLABLE ZHO*/ - RTUNI_ALPHA, /* U+00a350: YI SYLLABLE ZHOP*/ - RTUNI_ALPHA, /* U+00a351: YI SYLLABLE ZHET*/ - RTUNI_ALPHA, /* U+00a352: YI SYLLABLE ZHEX*/ - RTUNI_ALPHA, /* U+00a353: YI SYLLABLE ZHE*/ - RTUNI_ALPHA, /* U+00a354: YI SYLLABLE ZHEP*/ - RTUNI_ALPHA, /* U+00a355: YI SYLLABLE ZHUT*/ - RTUNI_ALPHA, /* U+00a356: YI SYLLABLE ZHUX*/ - RTUNI_ALPHA, /* U+00a357: YI SYLLABLE ZHU*/ - RTUNI_ALPHA, /* U+00a358: YI SYLLABLE ZHUP*/ - RTUNI_ALPHA, /* U+00a359: YI SYLLABLE ZHURX*/ - RTUNI_ALPHA, /* U+00a35a: YI SYLLABLE ZHUR*/ - RTUNI_ALPHA, /* U+00a35b: YI SYLLABLE ZHYT*/ - RTUNI_ALPHA, /* U+00a35c: YI SYLLABLE ZHYX*/ - RTUNI_ALPHA, /* U+00a35d: YI SYLLABLE ZHY*/ - RTUNI_ALPHA, /* U+00a35e: YI SYLLABLE ZHYP*/ - RTUNI_ALPHA, /* U+00a35f: YI SYLLABLE ZHYRX*/ - RTUNI_ALPHA, /* U+00a360: YI SYLLABLE ZHYR*/ - RTUNI_ALPHA, /* U+00a361: YI SYLLABLE CHAT*/ - RTUNI_ALPHA, /* U+00a362: YI SYLLABLE CHAX*/ - RTUNI_ALPHA, /* U+00a363: YI SYLLABLE CHA*/ - RTUNI_ALPHA, /* U+00a364: YI SYLLABLE CHAP*/ - RTUNI_ALPHA, /* U+00a365: YI SYLLABLE CHUOT*/ - RTUNI_ALPHA, /* U+00a366: YI SYLLABLE CHUOX*/ - RTUNI_ALPHA, /* U+00a367: YI SYLLABLE CHUO*/ - RTUNI_ALPHA, /* U+00a368: YI SYLLABLE CHUOP*/ - RTUNI_ALPHA, /* U+00a369: YI SYLLABLE CHOT*/ - RTUNI_ALPHA, /* U+00a36a: YI SYLLABLE CHOX*/ - RTUNI_ALPHA, /* U+00a36b: YI SYLLABLE CHO*/ - RTUNI_ALPHA, /* U+00a36c: YI SYLLABLE CHOP*/ - RTUNI_ALPHA, /* U+00a36d: YI SYLLABLE CHET*/ - RTUNI_ALPHA, /* U+00a36e: YI SYLLABLE CHEX*/ - RTUNI_ALPHA, /* U+00a36f: YI SYLLABLE CHE*/ - RTUNI_ALPHA, /* U+00a370: YI SYLLABLE CHEP*/ - RTUNI_ALPHA, /* U+00a371: YI SYLLABLE CHUX*/ - RTUNI_ALPHA, /* U+00a372: YI SYLLABLE CHU*/ - RTUNI_ALPHA, /* U+00a373: YI SYLLABLE CHUP*/ - RTUNI_ALPHA, /* U+00a374: YI SYLLABLE CHURX*/ - RTUNI_ALPHA, /* U+00a375: YI SYLLABLE CHUR*/ - RTUNI_ALPHA, /* U+00a376: YI SYLLABLE CHYT*/ - RTUNI_ALPHA, /* U+00a377: YI SYLLABLE CHYX*/ - RTUNI_ALPHA, /* U+00a378: YI SYLLABLE CHY*/ - RTUNI_ALPHA, /* U+00a379: YI SYLLABLE CHYP*/ - RTUNI_ALPHA, /* U+00a37a: YI SYLLABLE CHYRX*/ - RTUNI_ALPHA, /* U+00a37b: YI SYLLABLE CHYR*/ - RTUNI_ALPHA, /* U+00a37c: YI SYLLABLE RRAX*/ - RTUNI_ALPHA, /* U+00a37d: YI SYLLABLE RRA*/ - RTUNI_ALPHA, /* U+00a37e: YI SYLLABLE RRUOX*/ - RTUNI_ALPHA, /* U+00a37f: YI SYLLABLE RRUO*/ - RTUNI_ALPHA, /* U+00a380: YI SYLLABLE RROT*/ - RTUNI_ALPHA, /* U+00a381: YI SYLLABLE RROX*/ - RTUNI_ALPHA, /* U+00a382: YI SYLLABLE RRO*/ - RTUNI_ALPHA, /* U+00a383: YI SYLLABLE RROP*/ - RTUNI_ALPHA, /* U+00a384: YI SYLLABLE RRET*/ - RTUNI_ALPHA, /* U+00a385: YI SYLLABLE RREX*/ - RTUNI_ALPHA, /* U+00a386: YI SYLLABLE RRE*/ - RTUNI_ALPHA, /* U+00a387: YI SYLLABLE RREP*/ - RTUNI_ALPHA, /* U+00a388: YI SYLLABLE RRUT*/ - RTUNI_ALPHA, /* U+00a389: YI SYLLABLE RRUX*/ - RTUNI_ALPHA, /* U+00a38a: YI SYLLABLE RRU*/ - RTUNI_ALPHA, /* U+00a38b: YI SYLLABLE RRUP*/ - RTUNI_ALPHA, /* U+00a38c: YI SYLLABLE RRURX*/ - RTUNI_ALPHA, /* U+00a38d: YI SYLLABLE RRUR*/ - RTUNI_ALPHA, /* U+00a38e: YI SYLLABLE RRYT*/ - RTUNI_ALPHA, /* U+00a38f: YI SYLLABLE RRYX*/ - RTUNI_ALPHA, /* U+00a390: YI SYLLABLE RRY*/ - RTUNI_ALPHA, /* U+00a391: YI SYLLABLE RRYP*/ - RTUNI_ALPHA, /* U+00a392: YI SYLLABLE RRYRX*/ - RTUNI_ALPHA, /* U+00a393: YI SYLLABLE RRYR*/ - RTUNI_ALPHA, /* U+00a394: YI SYLLABLE NRAT*/ - RTUNI_ALPHA, /* U+00a395: YI SYLLABLE NRAX*/ - RTUNI_ALPHA, /* U+00a396: YI SYLLABLE NRA*/ - RTUNI_ALPHA, /* U+00a397: YI SYLLABLE NRAP*/ - RTUNI_ALPHA, /* U+00a398: YI SYLLABLE NROX*/ - RTUNI_ALPHA, /* U+00a399: YI SYLLABLE NRO*/ - RTUNI_ALPHA, /* U+00a39a: YI SYLLABLE NROP*/ - RTUNI_ALPHA, /* U+00a39b: YI SYLLABLE NRET*/ - RTUNI_ALPHA, /* U+00a39c: YI SYLLABLE NREX*/ - RTUNI_ALPHA, /* U+00a39d: YI SYLLABLE NRE*/ - RTUNI_ALPHA, /* U+00a39e: YI SYLLABLE NREP*/ - RTUNI_ALPHA, /* U+00a39f: YI SYLLABLE NRUT*/ - RTUNI_ALPHA, /* U+00a3a0: YI SYLLABLE NRUX*/ - RTUNI_ALPHA, /* U+00a3a1: YI SYLLABLE NRU*/ - RTUNI_ALPHA, /* U+00a3a2: YI SYLLABLE NRUP*/ - RTUNI_ALPHA, /* U+00a3a3: YI SYLLABLE NRURX*/ - RTUNI_ALPHA, /* U+00a3a4: YI SYLLABLE NRUR*/ - RTUNI_ALPHA, /* U+00a3a5: YI SYLLABLE NRYT*/ - RTUNI_ALPHA, /* U+00a3a6: YI SYLLABLE NRYX*/ - RTUNI_ALPHA, /* U+00a3a7: YI SYLLABLE NRY*/ - RTUNI_ALPHA, /* U+00a3a8: YI SYLLABLE NRYP*/ - RTUNI_ALPHA, /* U+00a3a9: YI SYLLABLE NRYRX*/ - RTUNI_ALPHA, /* U+00a3aa: YI SYLLABLE NRYR*/ - RTUNI_ALPHA, /* U+00a3ab: YI SYLLABLE SHAT*/ - RTUNI_ALPHA, /* U+00a3ac: YI SYLLABLE SHAX*/ - RTUNI_ALPHA, /* U+00a3ad: YI SYLLABLE SHA*/ - RTUNI_ALPHA, /* U+00a3ae: YI SYLLABLE SHAP*/ - RTUNI_ALPHA, /* U+00a3af: YI SYLLABLE SHUOX*/ - RTUNI_ALPHA, /* U+00a3b0: YI SYLLABLE SHUO*/ - RTUNI_ALPHA, /* U+00a3b1: YI SYLLABLE SHUOP*/ - RTUNI_ALPHA, /* U+00a3b2: YI SYLLABLE SHOT*/ - RTUNI_ALPHA, /* U+00a3b3: YI SYLLABLE SHOX*/ - RTUNI_ALPHA, /* U+00a3b4: YI SYLLABLE SHO*/ - RTUNI_ALPHA, /* U+00a3b5: YI SYLLABLE SHOP*/ - RTUNI_ALPHA, /* U+00a3b6: YI SYLLABLE SHET*/ - RTUNI_ALPHA, /* U+00a3b7: YI SYLLABLE SHEX*/ - RTUNI_ALPHA, /* U+00a3b8: YI SYLLABLE SHE*/ - RTUNI_ALPHA, /* U+00a3b9: YI SYLLABLE SHEP*/ - RTUNI_ALPHA, /* U+00a3ba: YI SYLLABLE SHUT*/ - RTUNI_ALPHA, /* U+00a3bb: YI SYLLABLE SHUX*/ - RTUNI_ALPHA, /* U+00a3bc: YI SYLLABLE SHU*/ - RTUNI_ALPHA, /* U+00a3bd: YI SYLLABLE SHUP*/ - RTUNI_ALPHA, /* U+00a3be: YI SYLLABLE SHURX*/ - RTUNI_ALPHA, /* U+00a3bf: YI SYLLABLE SHUR*/ - RTUNI_ALPHA, /* U+00a3c0: YI SYLLABLE SHYT*/ - RTUNI_ALPHA, /* U+00a3c1: YI SYLLABLE SHYX*/ - RTUNI_ALPHA, /* U+00a3c2: YI SYLLABLE SHY*/ - RTUNI_ALPHA, /* U+00a3c3: YI SYLLABLE SHYP*/ - RTUNI_ALPHA, /* U+00a3c4: YI SYLLABLE SHYRX*/ - RTUNI_ALPHA, /* U+00a3c5: YI SYLLABLE SHYR*/ - RTUNI_ALPHA, /* U+00a3c6: YI SYLLABLE RAT*/ - RTUNI_ALPHA, /* U+00a3c7: YI SYLLABLE RAX*/ - RTUNI_ALPHA, /* U+00a3c8: YI SYLLABLE RA*/ - RTUNI_ALPHA, /* U+00a3c9: YI SYLLABLE RAP*/ - RTUNI_ALPHA, /* U+00a3ca: YI SYLLABLE RUOX*/ - RTUNI_ALPHA, /* U+00a3cb: YI SYLLABLE RUO*/ - RTUNI_ALPHA, /* U+00a3cc: YI SYLLABLE RUOP*/ - RTUNI_ALPHA, /* U+00a3cd: YI SYLLABLE ROT*/ - RTUNI_ALPHA, /* U+00a3ce: YI SYLLABLE ROX*/ - RTUNI_ALPHA, /* U+00a3cf: YI SYLLABLE RO*/ - RTUNI_ALPHA, /* U+00a3d0: YI SYLLABLE ROP*/ - RTUNI_ALPHA, /* U+00a3d1: YI SYLLABLE REX*/ - RTUNI_ALPHA, /* U+00a3d2: YI SYLLABLE RE*/ - RTUNI_ALPHA, /* U+00a3d3: YI SYLLABLE REP*/ - RTUNI_ALPHA, /* U+00a3d4: YI SYLLABLE RUT*/ - RTUNI_ALPHA, /* U+00a3d5: YI SYLLABLE RUX*/ - RTUNI_ALPHA, /* U+00a3d6: YI SYLLABLE RU*/ - RTUNI_ALPHA, /* U+00a3d7: YI SYLLABLE RUP*/ - RTUNI_ALPHA, /* U+00a3d8: YI SYLLABLE RURX*/ - RTUNI_ALPHA, /* U+00a3d9: YI SYLLABLE RUR*/ - RTUNI_ALPHA, /* U+00a3da: YI SYLLABLE RYT*/ - RTUNI_ALPHA, /* U+00a3db: YI SYLLABLE RYX*/ - RTUNI_ALPHA, /* U+00a3dc: YI SYLLABLE RY*/ - RTUNI_ALPHA, /* U+00a3dd: YI SYLLABLE RYP*/ - RTUNI_ALPHA, /* U+00a3de: YI SYLLABLE RYRX*/ - RTUNI_ALPHA, /* U+00a3df: YI SYLLABLE RYR*/ - RTUNI_ALPHA, /* U+00a3e0: YI SYLLABLE JIT*/ - RTUNI_ALPHA, /* U+00a3e1: YI SYLLABLE JIX*/ - RTUNI_ALPHA, /* U+00a3e2: YI SYLLABLE JI*/ - RTUNI_ALPHA, /* U+00a3e3: YI SYLLABLE JIP*/ - RTUNI_ALPHA, /* U+00a3e4: YI SYLLABLE JIET*/ - RTUNI_ALPHA, /* U+00a3e5: YI SYLLABLE JIEX*/ - RTUNI_ALPHA, /* U+00a3e6: YI SYLLABLE JIE*/ - RTUNI_ALPHA, /* U+00a3e7: YI SYLLABLE JIEP*/ - RTUNI_ALPHA, /* U+00a3e8: YI SYLLABLE JUOT*/ - RTUNI_ALPHA, /* U+00a3e9: YI SYLLABLE JUOX*/ - RTUNI_ALPHA, /* U+00a3ea: YI SYLLABLE JUO*/ - RTUNI_ALPHA, /* U+00a3eb: YI SYLLABLE JUOP*/ - RTUNI_ALPHA, /* U+00a3ec: YI SYLLABLE JOT*/ - RTUNI_ALPHA, /* U+00a3ed: YI SYLLABLE JOX*/ - RTUNI_ALPHA, /* U+00a3ee: YI SYLLABLE JO*/ - RTUNI_ALPHA, /* U+00a3ef: YI SYLLABLE JOP*/ - RTUNI_ALPHA, /* U+00a3f0: YI SYLLABLE JUT*/ - RTUNI_ALPHA, /* U+00a3f1: YI SYLLABLE JUX*/ - RTUNI_ALPHA, /* U+00a3f2: YI SYLLABLE JU*/ - RTUNI_ALPHA, /* U+00a3f3: YI SYLLABLE JUP*/ - RTUNI_ALPHA, /* U+00a3f4: YI SYLLABLE JURX*/ - RTUNI_ALPHA, /* U+00a3f5: YI SYLLABLE JUR*/ - RTUNI_ALPHA, /* U+00a3f6: YI SYLLABLE JYT*/ - RTUNI_ALPHA, /* U+00a3f7: YI SYLLABLE JYX*/ - RTUNI_ALPHA, /* U+00a3f8: YI SYLLABLE JY*/ - RTUNI_ALPHA, /* U+00a3f9: YI SYLLABLE JYP*/ - RTUNI_ALPHA, /* U+00a3fa: YI SYLLABLE JYRX*/ - RTUNI_ALPHA, /* U+00a3fb: YI SYLLABLE JYR*/ - RTUNI_ALPHA, /* U+00a3fc: YI SYLLABLE QIT*/ - RTUNI_ALPHA, /* U+00a3fd: YI SYLLABLE QIX*/ - RTUNI_ALPHA, /* U+00a3fe: YI SYLLABLE QI*/ - RTUNI_ALPHA, /* U+00a3ff: YI SYLLABLE QIP*/ - RTUNI_ALPHA, /* U+00a400: YI SYLLABLE QIET*/ - RTUNI_ALPHA, /* U+00a401: YI SYLLABLE QIEX*/ - RTUNI_ALPHA, /* U+00a402: YI SYLLABLE QIE*/ - RTUNI_ALPHA, /* U+00a403: YI SYLLABLE QIEP*/ - RTUNI_ALPHA, /* U+00a404: YI SYLLABLE QUOT*/ - RTUNI_ALPHA, /* U+00a405: YI SYLLABLE QUOX*/ - RTUNI_ALPHA, /* U+00a406: YI SYLLABLE QUO*/ - RTUNI_ALPHA, /* U+00a407: YI SYLLABLE QUOP*/ - RTUNI_ALPHA, /* U+00a408: YI SYLLABLE QOT*/ - RTUNI_ALPHA, /* U+00a409: YI SYLLABLE QOX*/ - RTUNI_ALPHA, /* U+00a40a: YI SYLLABLE QO*/ - RTUNI_ALPHA, /* U+00a40b: YI SYLLABLE QOP*/ - RTUNI_ALPHA, /* U+00a40c: YI SYLLABLE QUT*/ - RTUNI_ALPHA, /* U+00a40d: YI SYLLABLE QUX*/ - RTUNI_ALPHA, /* U+00a40e: YI SYLLABLE QU*/ - RTUNI_ALPHA, /* U+00a40f: YI SYLLABLE QUP*/ - RTUNI_ALPHA, /* U+00a410: YI SYLLABLE QURX*/ - RTUNI_ALPHA, /* U+00a411: YI SYLLABLE QUR*/ - RTUNI_ALPHA, /* U+00a412: YI SYLLABLE QYT*/ - RTUNI_ALPHA, /* U+00a413: YI SYLLABLE QYX*/ - RTUNI_ALPHA, /* U+00a414: YI SYLLABLE QY*/ - RTUNI_ALPHA, /* U+00a415: YI SYLLABLE QYP*/ - RTUNI_ALPHA, /* U+00a416: YI SYLLABLE QYRX*/ - RTUNI_ALPHA, /* U+00a417: YI SYLLABLE QYR*/ - RTUNI_ALPHA, /* U+00a418: YI SYLLABLE JJIT*/ - RTUNI_ALPHA, /* U+00a419: YI SYLLABLE JJIX*/ - RTUNI_ALPHA, /* U+00a41a: YI SYLLABLE JJI*/ - RTUNI_ALPHA, /* U+00a41b: YI SYLLABLE JJIP*/ - RTUNI_ALPHA, /* U+00a41c: YI SYLLABLE JJIET*/ - RTUNI_ALPHA, /* U+00a41d: YI SYLLABLE JJIEX*/ - RTUNI_ALPHA, /* U+00a41e: YI SYLLABLE JJIE*/ - RTUNI_ALPHA, /* U+00a41f: YI SYLLABLE JJIEP*/ - RTUNI_ALPHA, /* U+00a420: YI SYLLABLE JJUOX*/ - RTUNI_ALPHA, /* U+00a421: YI SYLLABLE JJUO*/ - RTUNI_ALPHA, /* U+00a422: YI SYLLABLE JJUOP*/ - RTUNI_ALPHA, /* U+00a423: YI SYLLABLE JJOT*/ - RTUNI_ALPHA, /* U+00a424: YI SYLLABLE JJOX*/ - RTUNI_ALPHA, /* U+00a425: YI SYLLABLE JJO*/ - RTUNI_ALPHA, /* U+00a426: YI SYLLABLE JJOP*/ - RTUNI_ALPHA, /* U+00a427: YI SYLLABLE JJUT*/ - RTUNI_ALPHA, /* U+00a428: YI SYLLABLE JJUX*/ - RTUNI_ALPHA, /* U+00a429: YI SYLLABLE JJU*/ - RTUNI_ALPHA, /* U+00a42a: YI SYLLABLE JJUP*/ - RTUNI_ALPHA, /* U+00a42b: YI SYLLABLE JJURX*/ - RTUNI_ALPHA, /* U+00a42c: YI SYLLABLE JJUR*/ - RTUNI_ALPHA, /* U+00a42d: YI SYLLABLE JJYT*/ - RTUNI_ALPHA, /* U+00a42e: YI SYLLABLE JJYX*/ - RTUNI_ALPHA, /* U+00a42f: YI SYLLABLE JJY*/ - RTUNI_ALPHA, /* U+00a430: YI SYLLABLE JJYP*/ - RTUNI_ALPHA, /* U+00a431: YI SYLLABLE NJIT*/ - RTUNI_ALPHA, /* U+00a432: YI SYLLABLE NJIX*/ - RTUNI_ALPHA, /* U+00a433: YI SYLLABLE NJI*/ - RTUNI_ALPHA, /* U+00a434: YI SYLLABLE NJIP*/ - RTUNI_ALPHA, /* U+00a435: YI SYLLABLE NJIET*/ - RTUNI_ALPHA, /* U+00a436: YI SYLLABLE NJIEX*/ - RTUNI_ALPHA, /* U+00a437: YI SYLLABLE NJIE*/ - RTUNI_ALPHA, /* U+00a438: YI SYLLABLE NJIEP*/ - RTUNI_ALPHA, /* U+00a439: YI SYLLABLE NJUOX*/ - RTUNI_ALPHA, /* U+00a43a: YI SYLLABLE NJUO*/ - RTUNI_ALPHA, /* U+00a43b: YI SYLLABLE NJOT*/ - RTUNI_ALPHA, /* U+00a43c: YI SYLLABLE NJOX*/ - RTUNI_ALPHA, /* U+00a43d: YI SYLLABLE NJO*/ - RTUNI_ALPHA, /* U+00a43e: YI SYLLABLE NJOP*/ - RTUNI_ALPHA, /* U+00a43f: YI SYLLABLE NJUX*/ - RTUNI_ALPHA, /* U+00a440: YI SYLLABLE NJU*/ - RTUNI_ALPHA, /* U+00a441: YI SYLLABLE NJUP*/ - RTUNI_ALPHA, /* U+00a442: YI SYLLABLE NJURX*/ - RTUNI_ALPHA, /* U+00a443: YI SYLLABLE NJUR*/ - RTUNI_ALPHA, /* U+00a444: YI SYLLABLE NJYT*/ - RTUNI_ALPHA, /* U+00a445: YI SYLLABLE NJYX*/ - RTUNI_ALPHA, /* U+00a446: YI SYLLABLE NJY*/ - RTUNI_ALPHA, /* U+00a447: YI SYLLABLE NJYP*/ - RTUNI_ALPHA, /* U+00a448: YI SYLLABLE NJYRX*/ - RTUNI_ALPHA, /* U+00a449: YI SYLLABLE NJYR*/ - RTUNI_ALPHA, /* U+00a44a: YI SYLLABLE NYIT*/ - RTUNI_ALPHA, /* U+00a44b: YI SYLLABLE NYIX*/ - RTUNI_ALPHA, /* U+00a44c: YI SYLLABLE NYI*/ - RTUNI_ALPHA, /* U+00a44d: YI SYLLABLE NYIP*/ - RTUNI_ALPHA, /* U+00a44e: YI SYLLABLE NYIET*/ - RTUNI_ALPHA, /* U+00a44f: YI SYLLABLE NYIEX*/ - RTUNI_ALPHA, /* U+00a450: YI SYLLABLE NYIE*/ - RTUNI_ALPHA, /* U+00a451: YI SYLLABLE NYIEP*/ - RTUNI_ALPHA, /* U+00a452: YI SYLLABLE NYUOX*/ - RTUNI_ALPHA, /* U+00a453: YI SYLLABLE NYUO*/ - RTUNI_ALPHA, /* U+00a454: YI SYLLABLE NYUOP*/ - RTUNI_ALPHA, /* U+00a455: YI SYLLABLE NYOT*/ - RTUNI_ALPHA, /* U+00a456: YI SYLLABLE NYOX*/ - RTUNI_ALPHA, /* U+00a457: YI SYLLABLE NYO*/ - RTUNI_ALPHA, /* U+00a458: YI SYLLABLE NYOP*/ - RTUNI_ALPHA, /* U+00a459: YI SYLLABLE NYUT*/ - RTUNI_ALPHA, /* U+00a45a: YI SYLLABLE NYUX*/ - RTUNI_ALPHA, /* U+00a45b: YI SYLLABLE NYU*/ - RTUNI_ALPHA, /* U+00a45c: YI SYLLABLE NYUP*/ - RTUNI_ALPHA, /* U+00a45d: YI SYLLABLE XIT*/ - RTUNI_ALPHA, /* U+00a45e: YI SYLLABLE XIX*/ - RTUNI_ALPHA, /* U+00a45f: YI SYLLABLE XI*/ - RTUNI_ALPHA, /* U+00a460: YI SYLLABLE XIP*/ - RTUNI_ALPHA, /* U+00a461: YI SYLLABLE XIET*/ - RTUNI_ALPHA, /* U+00a462: YI SYLLABLE XIEX*/ - RTUNI_ALPHA, /* U+00a463: YI SYLLABLE XIE*/ - RTUNI_ALPHA, /* U+00a464: YI SYLLABLE XIEP*/ - RTUNI_ALPHA, /* U+00a465: YI SYLLABLE XUOX*/ - RTUNI_ALPHA, /* U+00a466: YI SYLLABLE XUO*/ - RTUNI_ALPHA, /* U+00a467: YI SYLLABLE XOT*/ - RTUNI_ALPHA, /* U+00a468: YI SYLLABLE XOX*/ - RTUNI_ALPHA, /* U+00a469: YI SYLLABLE XO*/ - RTUNI_ALPHA, /* U+00a46a: YI SYLLABLE XOP*/ - RTUNI_ALPHA, /* U+00a46b: YI SYLLABLE XYT*/ - RTUNI_ALPHA, /* U+00a46c: YI SYLLABLE XYX*/ - RTUNI_ALPHA, /* U+00a46d: YI SYLLABLE XY*/ - RTUNI_ALPHA, /* U+00a46e: YI SYLLABLE XYP*/ - RTUNI_ALPHA, /* U+00a46f: YI SYLLABLE XYRX*/ - RTUNI_ALPHA, /* U+00a470: YI SYLLABLE XYR*/ - RTUNI_ALPHA, /* U+00a471: YI SYLLABLE YIT*/ - RTUNI_ALPHA, /* U+00a472: YI SYLLABLE YIX*/ - RTUNI_ALPHA, /* U+00a473: YI SYLLABLE YI*/ - RTUNI_ALPHA, /* U+00a474: YI SYLLABLE YIP*/ - RTUNI_ALPHA, /* U+00a475: YI SYLLABLE YIET*/ - RTUNI_ALPHA, /* U+00a476: YI SYLLABLE YIEX*/ - RTUNI_ALPHA, /* U+00a477: YI SYLLABLE YIE*/ - RTUNI_ALPHA, /* U+00a478: YI SYLLABLE YIEP*/ - RTUNI_ALPHA, /* U+00a479: YI SYLLABLE YUOT*/ - RTUNI_ALPHA, /* U+00a47a: YI SYLLABLE YUOX*/ - RTUNI_ALPHA, /* U+00a47b: YI SYLLABLE YUO*/ - RTUNI_ALPHA, /* U+00a47c: YI SYLLABLE YUOP*/ - RTUNI_ALPHA, /* U+00a47d: YI SYLLABLE YOT*/ - RTUNI_ALPHA, /* U+00a47e: YI SYLLABLE YOX*/ - RTUNI_ALPHA, /* U+00a47f: YI SYLLABLE YO*/ - RTUNI_ALPHA, /* U+00a480: YI SYLLABLE YOP*/ - RTUNI_ALPHA, /* U+00a481: YI SYLLABLE YUT*/ - RTUNI_ALPHA, /* U+00a482: YI SYLLABLE YUX*/ - RTUNI_ALPHA, /* U+00a483: YI SYLLABLE YU*/ - RTUNI_ALPHA, /* U+00a484: YI SYLLABLE YUP*/ - RTUNI_ALPHA, /* U+00a485: YI SYLLABLE YURX*/ - RTUNI_ALPHA, /* U+00a486: YI SYLLABLE YUR*/ - RTUNI_ALPHA, /* U+00a487: YI SYLLABLE YYT*/ - RTUNI_ALPHA, /* U+00a488: YI SYLLABLE YYX*/ - RTUNI_ALPHA, /* U+00a489: YI SYLLABLE YY*/ - RTUNI_ALPHA, /* U+00a48a: YI SYLLABLE YYP*/ - RTUNI_ALPHA, /* U+00a48b: YI SYLLABLE YYRX*/ - RTUNI_ALPHA, /* U+00a48c: YI SYLLABLE YYR*/ - 0, /* U+00a48d: */ - 0, /* U+00a48e: */ - 0, /* U+00a48f: */ - 0, /* U+00a490: YI RADICAL QOT*/ - 0, /* U+00a491: YI RADICAL LI*/ - 0, /* U+00a492: YI RADICAL KIT*/ - 0, /* U+00a493: YI RADICAL NYIP*/ - 0, /* U+00a494: YI RADICAL CYP*/ - 0, /* U+00a495: YI RADICAL SSI*/ - 0, /* U+00a496: YI RADICAL GGOP*/ - 0, /* U+00a497: YI RADICAL GEP*/ - 0, /* U+00a498: YI RADICAL MI*/ - 0, /* U+00a499: YI RADICAL HXIT*/ - 0, /* U+00a49a: YI RADICAL LYR*/ - 0, /* U+00a49b: YI RADICAL BBUT*/ - 0, /* U+00a49c: YI RADICAL MOP*/ - 0, /* U+00a49d: YI RADICAL YO*/ - 0, /* U+00a49e: YI RADICAL PUT*/ - 0, /* U+00a49f: YI RADICAL HXUO*/ - 0, /* U+00a4a0: YI RADICAL TAT*/ - 0, /* U+00a4a1: YI RADICAL GA*/ - 0, /* U+00a4a2: YI RADICAL ZUP*/ - 0, /* U+00a4a3: YI RADICAL CYT*/ - 0, /* U+00a4a4: YI RADICAL DDUR*/ - 0, /* U+00a4a5: YI RADICAL BUR*/ - 0, /* U+00a4a6: YI RADICAL GGUO*/ - 0, /* U+00a4a7: YI RADICAL NYOP*/ - 0, /* U+00a4a8: YI RADICAL TU*/ - 0, /* U+00a4a9: YI RADICAL OP*/ - 0, /* U+00a4aa: YI RADICAL JJUT*/ - 0, /* U+00a4ab: YI RADICAL ZOT*/ - 0, /* U+00a4ac: YI RADICAL PYT*/ - 0, /* U+00a4ad: YI RADICAL HMO*/ - 0, /* U+00a4ae: YI RADICAL YIT*/ - 0, /* U+00a4af: YI RADICAL VUR*/ - 0, /* U+00a4b0: YI RADICAL SHY*/ - 0, /* U+00a4b1: YI RADICAL VEP*/ - 0, /* U+00a4b2: YI RADICAL ZA*/ - 0, /* U+00a4b3: YI RADICAL JO*/ - 0, /* U+00a4b4: YI RADICAL NZUP*/ - 0, /* U+00a4b5: YI RADICAL JJY*/ - 0, /* U+00a4b6: YI RADICAL GOT*/ - 0, /* U+00a4b7: YI RADICAL JJIE*/ - 0, /* U+00a4b8: YI RADICAL WO*/ - 0, /* U+00a4b9: YI RADICAL DU*/ - 0, /* U+00a4ba: YI RADICAL SHUR*/ - 0, /* U+00a4bb: YI RADICAL LIE*/ - 0, /* U+00a4bc: YI RADICAL CY*/ - 0, /* U+00a4bd: YI RADICAL CUOP*/ - 0, /* U+00a4be: YI RADICAL CIP*/ - 0, /* U+00a4bf: YI RADICAL HXOP*/ - 0, /* U+00a4c0: YI RADICAL SHAT*/ - 0, /* U+00a4c1: YI RADICAL ZUR*/ - 0, /* U+00a4c2: YI RADICAL SHOP*/ - 0, /* U+00a4c3: YI RADICAL CHE*/ - 0, /* U+00a4c4: YI RADICAL ZZIET*/ - 0, /* U+00a4c5: YI RADICAL NBIE*/ - 0, /* U+00a4c6: YI RADICAL KE*/ - 0, /* U+00a4c7: */ - 0, /* U+00a4c8: */ - 0, /* U+00a4c9: */ - 0, /* U+00a4ca: */ - 0, /* U+00a4cb: */ - 0, /* U+00a4cc: */ - 0, /* U+00a4cd: */ - 0, /* U+00a4ce: */ - 0, /* U+00a4cf: */ - 0, /* U+00a4d0: */ - 0, /* U+00a4d1: */ - 0, /* U+00a4d2: */ - 0, /* U+00a4d3: */ - 0, /* U+00a4d4: */ - 0, /* U+00a4d5: */ - 0, /* U+00a4d6: */ - 0, /* U+00a4d7: */ - 0, /* U+00a4d8: */ - 0, /* U+00a4d9: */ - 0, /* U+00a4da: */ - 0, /* U+00a4db: */ - 0, /* U+00a4dc: */ - 0, /* U+00a4dd: */ - 0, /* U+00a4de: */ - 0, /* U+00a4df: */ - 0, /* U+00a4e0: */ - 0, /* U+00a4e1: */ - 0, /* U+00a4e2: */ - 0, /* U+00a4e3: */ - 0, /* U+00a4e4: */ - 0, /* U+00a4e5: */ - 0, /* U+00a4e6: */ - 0, /* U+00a4e7: */ - 0, /* U+00a4e8: */ - 0, /* U+00a4e9: */ - 0, /* U+00a4ea: */ - 0, /* U+00a4eb: */ - 0, /* U+00a4ec: */ - 0, /* U+00a4ed: */ - 0, /* U+00a4ee: */ - 0, /* U+00a4ef: */ - 0, /* U+00a4f0: */ - 0, /* U+00a4f1: */ - 0, /* U+00a4f2: */ - 0, /* U+00a4f3: */ - 0, /* U+00a4f4: */ - 0, /* U+00a4f5: */ - 0, /* U+00a4f6: */ - 0, /* U+00a4f7: */ - 0, /* U+00a4f8: */ - 0, /* U+00a4f9: */ - 0, /* U+00a4fa: */ - 0, /* U+00a4fb: */ - 0, /* U+00a4fc: */ - 0, /* U+00a4fd: */ - 0, /* U+00a4fe: */ - 0, /* U+00a4ff: */ - 0, /* U+00a500: */ - 0, /* U+00a501: */ - 0, /* U+00a502: */ - 0, /* U+00a503: */ - 0, /* U+00a504: */ - 0, /* U+00a505: */ - 0, /* U+00a506: */ - 0, /* U+00a507: */ - 0, /* U+00a508: */ - 0, /* U+00a509: */ - 0, /* U+00a50a: */ - 0, /* U+00a50b: */ - 0, /* U+00a50c: */ - 0, /* U+00a50d: */ - 0, /* U+00a50e: */ - 0, /* U+00a50f: */ - 0, /* U+00a510: */ - 0, /* U+00a511: */ - 0, /* U+00a512: */ - 0, /* U+00a513: */ - 0, /* U+00a514: */ - 0, /* U+00a515: */ - 0, /* U+00a516: */ - 0, /* U+00a517: */ - 0, /* U+00a518: */ - 0, /* U+00a519: */ - 0, /* U+00a51a: */ - 0, /* U+00a51b: */ - 0, /* U+00a51c: */ - 0, /* U+00a51d: */ - 0, /* U+00a51e: */ - 0, /* U+00a51f: */ - 0, /* U+00a520: */ - 0, /* U+00a521: */ - 0, /* U+00a522: */ - 0, /* U+00a523: */ - 0, /* U+00a524: */ - 0, /* U+00a525: */ - 0, /* U+00a526: */ - 0, /* U+00a527: */ - 0, /* U+00a528: */ - 0, /* U+00a529: */ - 0, /* U+00a52a: */ - 0, /* U+00a52b: */ - 0, /* U+00a52c: */ - 0, /* U+00a52d: */ - 0, /* U+00a52e: */ - 0, /* U+00a52f: */ - 0, /* U+00a530: */ - 0, /* U+00a531: */ - 0, /* U+00a532: */ - 0, /* U+00a533: */ - 0, /* U+00a534: */ - 0, /* U+00a535: */ - 0, /* U+00a536: */ - 0, /* U+00a537: */ - 0, /* U+00a538: */ - 0, /* U+00a539: */ - 0, /* U+00a53a: */ - 0, /* U+00a53b: */ - 0, /* U+00a53c: */ - 0, /* U+00a53d: */ - 0, /* U+00a53e: */ - 0, /* U+00a53f: */ - 0, /* U+00a540: */ - 0, /* U+00a541: */ - 0, /* U+00a542: */ - 0, /* U+00a543: */ - 0, /* U+00a544: */ - 0, /* U+00a545: */ - 0, /* U+00a546: */ - 0, /* U+00a547: */ - 0, /* U+00a548: */ - 0, /* U+00a549: */ - 0, /* U+00a54a: */ - 0, /* U+00a54b: */ - 0, /* U+00a54c: */ - 0, /* U+00a54d: */ - 0, /* U+00a54e: */ - 0, /* U+00a54f: */ - 0, /* U+00a550: */ - 0, /* U+00a551: */ - 0, /* U+00a552: */ - 0, /* U+00a553: */ - 0, /* U+00a554: */ - 0, /* U+00a555: */ - 0, /* U+00a556: */ - 0, /* U+00a557: */ - 0, /* U+00a558: */ - 0, /* U+00a559: */ - 0, /* U+00a55a: */ - 0, /* U+00a55b: */ - 0, /* U+00a55c: */ - 0, /* U+00a55d: */ - 0, /* U+00a55e: */ - 0, /* U+00a55f: */ - 0, /* U+00a560: */ - 0, /* U+00a561: */ - 0, /* U+00a562: */ - 0, /* U+00a563: */ - 0, /* U+00a564: */ - 0, /* U+00a565: */ - 0, /* U+00a566: */ - 0, /* U+00a567: */ - 0, /* U+00a568: */ - 0, /* U+00a569: */ - 0, /* U+00a56a: */ - 0, /* U+00a56b: */ - 0, /* U+00a56c: */ - 0, /* U+00a56d: */ - 0, /* U+00a56e: */ - 0, /* U+00a56f: */ - 0, /* U+00a570: */ - 0, /* U+00a571: */ - 0, /* U+00a572: */ - 0, /* U+00a573: */ - 0, /* U+00a574: */ - 0, /* U+00a575: */ - 0, /* U+00a576: */ - 0, /* U+00a577: */ - 0, /* U+00a578: */ - 0, /* U+00a579: */ - 0, /* U+00a57a: */ - 0, /* U+00a57b: */ - 0, /* U+00a57c: */ - 0, /* U+00a57d: */ - 0, /* U+00a57e: */ - 0, /* U+00a57f: */ - 0, /* U+00a580: */ - 0, /* U+00a581: */ - 0, /* U+00a582: */ - 0, /* U+00a583: */ - 0, /* U+00a584: */ - 0, /* U+00a585: */ - 0, /* U+00a586: */ - 0, /* U+00a587: */ - 0, /* U+00a588: */ - 0, /* U+00a589: */ - 0, /* U+00a58a: */ - 0, /* U+00a58b: */ - 0, /* U+00a58c: */ - 0, /* U+00a58d: */ - 0, /* U+00a58e: */ - 0, /* U+00a58f: */ - 0, /* U+00a590: */ - 0, /* U+00a591: */ - 0, /* U+00a592: */ - 0, /* U+00a593: */ - 0, /* U+00a594: */ - 0, /* U+00a595: */ - 0, /* U+00a596: */ - 0, /* U+00a597: */ - 0, /* U+00a598: */ - 0, /* U+00a599: */ - 0, /* U+00a59a: */ - 0, /* U+00a59b: */ - 0, /* U+00a59c: */ - 0, /* U+00a59d: */ - 0, /* U+00a59e: */ - 0, /* U+00a59f: */ - 0, /* U+00a5a0: */ - 0, /* U+00a5a1: */ - 0, /* U+00a5a2: */ - 0, /* U+00a5a3: */ - 0, /* U+00a5a4: */ - 0, /* U+00a5a5: */ - 0, /* U+00a5a6: */ - 0, /* U+00a5a7: */ - 0, /* U+00a5a8: */ - 0, /* U+00a5a9: */ - 0, /* U+00a5aa: */ - 0, /* U+00a5ab: */ - 0, /* U+00a5ac: */ - 0, /* U+00a5ad: */ - 0, /* U+00a5ae: */ - 0, /* U+00a5af: */ - 0, /* U+00a5b0: */ - 0, /* U+00a5b1: */ - 0, /* U+00a5b2: */ - 0, /* U+00a5b3: */ - 0, /* U+00a5b4: */ - 0, /* U+00a5b5: */ - 0, /* U+00a5b6: */ - 0, /* U+00a5b7: */ - 0, /* U+00a5b8: */ - 0, /* U+00a5b9: */ - 0, /* U+00a5ba: */ - 0, /* U+00a5bb: */ - 0, /* U+00a5bc: */ - 0, /* U+00a5bd: */ - 0, /* U+00a5be: */ - 0, /* U+00a5bf: */ - 0, /* U+00a5c0: */ - 0, /* U+00a5c1: */ - 0, /* U+00a5c2: */ - 0, /* U+00a5c3: */ - 0, /* U+00a5c4: */ - 0, /* U+00a5c5: */ - 0, /* U+00a5c6: */ - 0, /* U+00a5c7: */ - 0, /* U+00a5c8: */ - 0, /* U+00a5c9: */ - 0, /* U+00a5ca: */ - 0, /* U+00a5cb: */ - 0, /* U+00a5cc: */ - 0, /* U+00a5cd: */ - 0, /* U+00a5ce: */ - 0, /* U+00a5cf: */ - 0, /* U+00a5d0: */ - 0, /* U+00a5d1: */ - 0, /* U+00a5d2: */ - 0, /* U+00a5d3: */ - 0, /* U+00a5d4: */ - 0, /* U+00a5d5: */ - 0, /* U+00a5d6: */ - 0, /* U+00a5d7: */ - 0, /* U+00a5d8: */ - 0, /* U+00a5d9: */ - 0, /* U+00a5da: */ - 0, /* U+00a5db: */ - 0, /* U+00a5dc: */ - 0, /* U+00a5dd: */ - 0, /* U+00a5de: */ - 0, /* U+00a5df: */ - 0, /* U+00a5e0: */ - 0, /* U+00a5e1: */ - 0, /* U+00a5e2: */ - 0, /* U+00a5e3: */ - 0, /* U+00a5e4: */ - 0, /* U+00a5e5: */ - 0, /* U+00a5e6: */ - 0, /* U+00a5e7: */ - 0, /* U+00a5e8: */ - 0, /* U+00a5e9: */ - 0, /* U+00a5ea: */ - 0, /* U+00a5eb: */ - 0, /* U+00a5ec: */ - 0, /* U+00a5ed: */ - 0, /* U+00a5ee: */ - 0, /* U+00a5ef: */ - 0, /* U+00a5f0: */ - 0, /* U+00a5f1: */ - 0, /* U+00a5f2: */ - 0, /* U+00a5f3: */ - 0, /* U+00a5f4: */ - 0, /* U+00a5f5: */ - 0, /* U+00a5f6: */ - 0, /* U+00a5f7: */ - 0, /* U+00a5f8: */ - 0, /* U+00a5f9: */ - 0, /* U+00a5fa: */ - 0, /* U+00a5fb: */ - 0, /* U+00a5fc: */ - 0, /* U+00a5fd: */ - 0, /* U+00a5fe: */ - 0, /* U+00a5ff: */ - 0, /* U+00a600: */ - 0, /* U+00a601: */ - 0, /* U+00a602: */ - 0, /* U+00a603: */ - 0, /* U+00a604: */ - 0, /* U+00a605: */ - 0, /* U+00a606: */ - 0, /* U+00a607: */ - 0, /* U+00a608: */ - 0, /* U+00a609: */ - 0, /* U+00a60a: */ - 0, /* U+00a60b: */ - 0, /* U+00a60c: */ - 0, /* U+00a60d: */ - 0, /* U+00a60e: */ - 0, /* U+00a60f: */ - 0, /* U+00a610: */ - 0, /* U+00a611: */ - 0, /* U+00a612: */ - 0, /* U+00a613: */ - 0, /* U+00a614: */ - 0, /* U+00a615: */ - 0, /* U+00a616: */ - 0, /* U+00a617: */ - 0, /* U+00a618: */ - 0, /* U+00a619: */ - 0, /* U+00a61a: */ - 0, /* U+00a61b: */ - 0, /* U+00a61c: */ - 0, /* U+00a61d: */ - 0, /* U+00a61e: */ - 0, /* U+00a61f: */ - 0, /* U+00a620: */ - 0, /* U+00a621: */ - 0, /* U+00a622: */ - 0, /* U+00a623: */ - 0, /* U+00a624: */ - 0, /* U+00a625: */ - 0, /* U+00a626: */ - 0, /* U+00a627: */ - 0, /* U+00a628: */ - 0, /* U+00a629: */ - 0, /* U+00a62a: */ - 0, /* U+00a62b: */ - 0, /* U+00a62c: */ - 0, /* U+00a62d: */ - 0, /* U+00a62e: */ - 0, /* U+00a62f: */ - 0, /* U+00a630: */ - 0, /* U+00a631: */ - 0, /* U+00a632: */ - 0, /* U+00a633: */ - 0, /* U+00a634: */ - 0, /* U+00a635: */ - 0, /* U+00a636: */ - 0, /* U+00a637: */ - 0, /* U+00a638: */ - 0, /* U+00a639: */ - 0, /* U+00a63a: */ - 0, /* U+00a63b: */ - 0, /* U+00a63c: */ - 0, /* U+00a63d: */ - 0, /* U+00a63e: */ - 0, /* U+00a63f: */ - 0, /* U+00a640: */ - 0, /* U+00a641: */ - 0, /* U+00a642: */ - 0, /* U+00a643: */ - 0, /* U+00a644: */ - 0, /* U+00a645: */ - 0, /* U+00a646: */ - 0, /* U+00a647: */ - 0, /* U+00a648: */ - 0, /* U+00a649: */ - 0, /* U+00a64a: */ - 0, /* U+00a64b: */ - 0, /* U+00a64c: */ - 0, /* U+00a64d: */ - 0, /* U+00a64e: */ - 0, /* U+00a64f: */ - 0, /* U+00a650: */ - 0, /* U+00a651: */ - 0, /* U+00a652: */ - 0, /* U+00a653: */ - 0, /* U+00a654: */ - 0, /* U+00a655: */ - 0, /* U+00a656: */ - 0, /* U+00a657: */ - 0, /* U+00a658: */ - 0, /* U+00a659: */ - 0, /* U+00a65a: */ - 0, /* U+00a65b: */ - 0, /* U+00a65c: */ - 0, /* U+00a65d: */ - 0, /* U+00a65e: */ - 0, /* U+00a65f: */ - 0, /* U+00a660: */ - 0, /* U+00a661: */ - 0, /* U+00a662: */ - 0, /* U+00a663: */ - 0, /* U+00a664: */ - 0, /* U+00a665: */ - 0, /* U+00a666: */ - 0, /* U+00a667: */ - 0, /* U+00a668: */ - 0, /* U+00a669: */ - 0, /* U+00a66a: */ - 0, /* U+00a66b: */ - 0, /* U+00a66c: */ - 0, /* U+00a66d: */ - 0, /* U+00a66e: */ - 0, /* U+00a66f: */ - 0, /* U+00a670: */ - 0, /* U+00a671: */ - 0, /* U+00a672: */ - 0, /* U+00a673: */ - 0, /* U+00a674: */ - 0, /* U+00a675: */ - 0, /* U+00a676: */ - 0, /* U+00a677: */ - 0, /* U+00a678: */ - 0, /* U+00a679: */ - 0, /* U+00a67a: */ - 0, /* U+00a67b: */ - 0, /* U+00a67c: */ - 0, /* U+00a67d: */ - 0, /* U+00a67e: */ - 0, /* U+00a67f: */ - 0, /* U+00a680: */ - 0, /* U+00a681: */ - 0, /* U+00a682: */ - 0, /* U+00a683: */ - 0, /* U+00a684: */ - 0, /* U+00a685: */ - 0, /* U+00a686: */ - 0, /* U+00a687: */ - 0, /* U+00a688: */ - 0, /* U+00a689: */ - 0, /* U+00a68a: */ - 0, /* U+00a68b: */ - 0, /* U+00a68c: */ - 0, /* U+00a68d: */ - 0, /* U+00a68e: */ - 0, /* U+00a68f: */ - 0, /* U+00a690: */ - 0, /* U+00a691: */ - 0, /* U+00a692: */ - 0, /* U+00a693: */ - 0, /* U+00a694: */ - 0, /* U+00a695: */ - 0, /* U+00a696: */ - 0, /* U+00a697: */ - 0, /* U+00a698: */ - 0, /* U+00a699: */ - 0, /* U+00a69a: */ - 0, /* U+00a69b: */ - 0, /* U+00a69c: */ - 0, /* U+00a69d: */ - 0, /* U+00a69e: */ - 0, /* U+00a69f: */ - 0, /* U+00a6a0: */ - 0, /* U+00a6a1: */ - 0, /* U+00a6a2: */ - 0, /* U+00a6a3: */ - 0, /* U+00a6a4: */ - 0, /* U+00a6a5: */ - 0, /* U+00a6a6: */ - 0, /* U+00a6a7: */ - 0, /* U+00a6a8: */ - 0, /* U+00a6a9: */ - 0, /* U+00a6aa: */ - 0, /* U+00a6ab: */ - 0, /* U+00a6ac: */ - 0, /* U+00a6ad: */ - 0, /* U+00a6ae: */ - 0, /* U+00a6af: */ - 0, /* U+00a6b0: */ - 0, /* U+00a6b1: */ - 0, /* U+00a6b2: */ - 0, /* U+00a6b3: */ - 0, /* U+00a6b4: */ - 0, /* U+00a6b5: */ - 0, /* U+00a6b6: */ - 0, /* U+00a6b7: */ - 0, /* U+00a6b8: */ - 0, /* U+00a6b9: */ - 0, /* U+00a6ba: */ - 0, /* U+00a6bb: */ - 0, /* U+00a6bc: */ - 0, /* U+00a6bd: */ - 0, /* U+00a6be: */ - 0, /* U+00a6bf: */ - 0, /* U+00a6c0: */ - 0, /* U+00a6c1: */ - 0, /* U+00a6c2: */ - 0, /* U+00a6c3: */ - 0, /* U+00a6c4: */ - 0, /* U+00a6c5: */ - 0, /* U+00a6c6: */ - 0, /* U+00a6c7: */ - 0, /* U+00a6c8: */ - 0, /* U+00a6c9: */ - 0, /* U+00a6ca: */ - 0, /* U+00a6cb: */ - 0, /* U+00a6cc: */ - 0, /* U+00a6cd: */ - 0, /* U+00a6ce: */ - 0, /* U+00a6cf: */ - 0, /* U+00a6d0: */ - 0, /* U+00a6d1: */ - 0, /* U+00a6d2: */ - 0, /* U+00a6d3: */ - 0, /* U+00a6d4: */ - 0, /* U+00a6d5: */ - 0, /* U+00a6d6: */ - 0, /* U+00a6d7: */ - 0, /* U+00a6d8: */ - 0, /* U+00a6d9: */ - 0, /* U+00a6da: */ - 0, /* U+00a6db: */ - 0, /* U+00a6dc: */ - 0, /* U+00a6dd: */ - 0, /* U+00a6de: */ - 0, /* U+00a6df: */ - 0, /* U+00a6e0: */ - 0, /* U+00a6e1: */ - 0, /* U+00a6e2: */ - 0, /* U+00a6e3: */ - 0, /* U+00a6e4: */ - 0, /* U+00a6e5: */ - 0, /* U+00a6e6: */ - 0, /* U+00a6e7: */ - 0, /* U+00a6e8: */ - 0, /* U+00a6e9: */ - 0, /* U+00a6ea: */ - 0, /* U+00a6eb: */ - 0, /* U+00a6ec: */ - 0, /* U+00a6ed: */ - 0, /* U+00a6ee: */ - 0, /* U+00a6ef: */ - 0, /* U+00a6f0: */ - 0, /* U+00a6f1: */ - 0, /* U+00a6f2: */ - 0, /* U+00a6f3: */ - 0, /* U+00a6f4: */ - 0, /* U+00a6f5: */ - 0, /* U+00a6f6: */ - 0, /* U+00a6f7: */ - 0, /* U+00a6f8: */ - 0, /* U+00a6f9: */ - 0, /* U+00a6fa: */ - 0, /* U+00a6fb: */ - 0, /* U+00a6fc: */ - 0, /* U+00a6fd: */ - 0, /* U+00a6fe: */ - 0, /* U+00a6ff: */ - 0, /* U+00a700: MODIFIER LETTER CHINESE TONE YIN PING*/ - 0, /* U+00a701: MODIFIER LETTER CHINESE TONE YANG PING*/ - 0, /* U+00a702: MODIFIER LETTER CHINESE TONE YIN SHANG*/ - 0, /* U+00a703: MODIFIER LETTER CHINESE TONE YANG SHANG*/ - 0, /* U+00a704: MODIFIER LETTER CHINESE TONE YIN QU*/ - 0, /* U+00a705: MODIFIER LETTER CHINESE TONE YANG QU*/ - 0, /* U+00a706: MODIFIER LETTER CHINESE TONE YIN RU*/ - 0, /* U+00a707: MODIFIER LETTER CHINESE TONE YANG RU*/ - 0, /* U+00a708: MODIFIER LETTER EXTRA-HIGH DOTTED TONE BAR*/ - 0, /* U+00a709: MODIFIER LETTER HIGH DOTTED TONE BAR*/ - 0, /* U+00a70a: MODIFIER LETTER MID DOTTED TONE BAR*/ - 0, /* U+00a70b: MODIFIER LETTER LOW DOTTED TONE BAR*/ - 0, /* U+00a70c: MODIFIER LETTER EXTRA-LOW DOTTED TONE BAR*/ - 0, /* U+00a70d: MODIFIER LETTER EXTRA-HIGH DOTTED LEFT-STEM TONE BAR*/ - 0, /* U+00a70e: MODIFIER LETTER HIGH DOTTED LEFT-STEM TONE BAR*/ - 0, /* U+00a70f: MODIFIER LETTER MID DOTTED LEFT-STEM TONE BAR*/ - 0, /* U+00a710: MODIFIER LETTER LOW DOTTED LEFT-STEM TONE BAR*/ - 0, /* U+00a711: MODIFIER LETTER EXTRA-LOW DOTTED LEFT-STEM TONE BAR*/ - 0, /* U+00a712: MODIFIER LETTER EXTRA-HIGH LEFT-STEM TONE BAR*/ - 0, /* U+00a713: MODIFIER LETTER HIGH LEFT-STEM TONE BAR*/ - 0, /* U+00a714: MODIFIER LETTER MID LEFT-STEM TONE BAR*/ - 0, /* U+00a715: MODIFIER LETTER LOW LEFT-STEM TONE BAR*/ - 0, /* U+00a716: MODIFIER LETTER EXTRA-LOW LEFT-STEM TONE BAR*/ - 0, /* U+00a717: */ - 0, /* U+00a718: */ - 0, /* U+00a719: */ - 0, /* U+00a71a: */ - 0, /* U+00a71b: */ - 0, /* U+00a71c: */ - 0, /* U+00a71d: */ - 0, /* U+00a71e: */ - 0, /* U+00a71f: */ - 0, /* U+00a720: */ - 0, /* U+00a721: */ - 0, /* U+00a722: */ - 0, /* U+00a723: */ - 0, /* U+00a724: */ - 0, /* U+00a725: */ - 0, /* U+00a726: */ - 0, /* U+00a727: */ - 0, /* U+00a728: */ - 0, /* U+00a729: */ - 0, /* U+00a72a: */ - 0, /* U+00a72b: */ - 0, /* U+00a72c: */ - 0, /* U+00a72d: */ - 0, /* U+00a72e: */ - 0, /* U+00a72f: */ - 0, /* U+00a730: */ - 0, /* U+00a731: */ - 0, /* U+00a732: */ - 0, /* U+00a733: */ - 0, /* U+00a734: */ - 0, /* U+00a735: */ - 0, /* U+00a736: */ - 0, /* U+00a737: */ - 0, /* U+00a738: */ - 0, /* U+00a739: */ - 0, /* U+00a73a: */ - 0, /* U+00a73b: */ - 0, /* U+00a73c: */ - 0, /* U+00a73d: */ - 0, /* U+00a73e: */ - 0, /* U+00a73f: */ - 0, /* U+00a740: */ - 0, /* U+00a741: */ - 0, /* U+00a742: */ - 0, /* U+00a743: */ - 0, /* U+00a744: */ - 0, /* U+00a745: */ - 0, /* U+00a746: */ - 0, /* U+00a747: */ - 0, /* U+00a748: */ - 0, /* U+00a749: */ - 0, /* U+00a74a: */ - 0, /* U+00a74b: */ - 0, /* U+00a74c: */ - 0, /* U+00a74d: */ - 0, /* U+00a74e: */ - 0, /* U+00a74f: */ - 0, /* U+00a750: */ - 0, /* U+00a751: */ - 0, /* U+00a752: */ - 0, /* U+00a753: */ - 0, /* U+00a754: */ - 0, /* U+00a755: */ - 0, /* U+00a756: */ - 0, /* U+00a757: */ - 0, /* U+00a758: */ - 0, /* U+00a759: */ - 0, /* U+00a75a: */ - 0, /* U+00a75b: */ - 0, /* U+00a75c: */ - 0, /* U+00a75d: */ - 0, /* U+00a75e: */ - 0, /* U+00a75f: */ - 0, /* U+00a760: */ - 0, /* U+00a761: */ - 0, /* U+00a762: */ - 0, /* U+00a763: */ - 0, /* U+00a764: */ - 0, /* U+00a765: */ - 0, /* U+00a766: */ - 0, /* U+00a767: */ - 0, /* U+00a768: */ - 0, /* U+00a769: */ - 0, /* U+00a76a: */ - 0, /* U+00a76b: */ - 0, /* U+00a76c: */ - 0, /* U+00a76d: */ - 0, /* U+00a76e: */ - 0, /* U+00a76f: */ - 0, /* U+00a770: */ - 0, /* U+00a771: */ - 0, /* U+00a772: */ - 0, /* U+00a773: */ - 0, /* U+00a774: */ - 0, /* U+00a775: */ - 0, /* U+00a776: */ - 0, /* U+00a777: */ - 0, /* U+00a778: */ - 0, /* U+00a779: */ - 0, /* U+00a77a: */ - 0, /* U+00a77b: */ - 0, /* U+00a77c: */ - 0, /* U+00a77d: */ - 0, /* U+00a77e: */ - 0, /* U+00a77f: */ - 0, /* U+00a780: */ - 0, /* U+00a781: */ - 0, /* U+00a782: */ - 0, /* U+00a783: */ - 0, /* U+00a784: */ - 0, /* U+00a785: */ - 0, /* U+00a786: */ - 0, /* U+00a787: */ - 0, /* U+00a788: */ - 0, /* U+00a789: */ - 0, /* U+00a78a: */ - 0, /* U+00a78b: */ - 0, /* U+00a78c: */ - 0, /* U+00a78d: */ - 0, /* U+00a78e: */ - 0, /* U+00a78f: */ - 0, /* U+00a790: */ - 0, /* U+00a791: */ - 0, /* U+00a792: */ - 0, /* U+00a793: */ - 0, /* U+00a794: */ - 0, /* U+00a795: */ - 0, /* U+00a796: */ - 0, /* U+00a797: */ - 0, /* U+00a798: */ - 0, /* U+00a799: */ - 0, /* U+00a79a: */ - 0, /* U+00a79b: */ - 0, /* U+00a79c: */ - 0, /* U+00a79d: */ - 0, /* U+00a79e: */ - 0, /* U+00a79f: */ - 0, /* U+00a7a0: */ - 0, /* U+00a7a1: */ - 0, /* U+00a7a2: */ - 0, /* U+00a7a3: */ - 0, /* U+00a7a4: */ - 0, /* U+00a7a5: */ - 0, /* U+00a7a6: */ - 0, /* U+00a7a7: */ - 0, /* U+00a7a8: */ - 0, /* U+00a7a9: */ - 0, /* U+00a7aa: */ - 0, /* U+00a7ab: */ - 0, /* U+00a7ac: */ - 0, /* U+00a7ad: */ - 0, /* U+00a7ae: */ - 0, /* U+00a7af: */ - 0, /* U+00a7b0: */ - 0, /* U+00a7b1: */ - 0, /* U+00a7b2: */ - 0, /* U+00a7b3: */ - 0, /* U+00a7b4: */ - 0, /* U+00a7b5: */ - 0, /* U+00a7b6: */ - 0, /* U+00a7b7: */ - 0, /* U+00a7b8: */ - 0, /* U+00a7b9: */ - 0, /* U+00a7ba: */ - 0, /* U+00a7bb: */ - 0, /* U+00a7bc: */ - 0, /* U+00a7bd: */ - 0, /* U+00a7be: */ - 0, /* U+00a7bf: */ - 0, /* U+00a7c0: */ - 0, /* U+00a7c1: */ - 0, /* U+00a7c2: */ - 0, /* U+00a7c3: */ - 0, /* U+00a7c4: */ - 0, /* U+00a7c5: */ - 0, /* U+00a7c6: */ - 0, /* U+00a7c7: */ - 0, /* U+00a7c8: */ - 0, /* U+00a7c9: */ - 0, /* U+00a7ca: */ - 0, /* U+00a7cb: */ - 0, /* U+00a7cc: */ - 0, /* U+00a7cd: */ - 0, /* U+00a7ce: */ - 0, /* U+00a7cf: */ - 0, /* U+00a7d0: */ - 0, /* U+00a7d1: */ - 0, /* U+00a7d2: */ - 0, /* U+00a7d3: */ - 0, /* U+00a7d4: */ - 0, /* U+00a7d5: */ - 0, /* U+00a7d6: */ - 0, /* U+00a7d7: */ - 0, /* U+00a7d8: */ - 0, /* U+00a7d9: */ - 0, /* U+00a7da: */ - 0, /* U+00a7db: */ - 0, /* U+00a7dc: */ - 0, /* U+00a7dd: */ - 0, /* U+00a7de: */ - 0, /* U+00a7df: */ - 0, /* U+00a7e0: */ - 0, /* U+00a7e1: */ - 0, /* U+00a7e2: */ - 0, /* U+00a7e3: */ - 0, /* U+00a7e4: */ - 0, /* U+00a7e5: */ - 0, /* U+00a7e6: */ - 0, /* U+00a7e7: */ - 0, /* U+00a7e8: */ - 0, /* U+00a7e9: */ - 0, /* U+00a7ea: */ - 0, /* U+00a7eb: */ - 0, /* U+00a7ec: */ - 0, /* U+00a7ed: */ - 0, /* U+00a7ee: */ - 0, /* U+00a7ef: */ - 0, /* U+00a7f0: */ - 0, /* U+00a7f1: */ - 0, /* U+00a7f2: */ - 0, /* U+00a7f3: */ - 0, /* U+00a7f4: */ - 0, /* U+00a7f5: */ - 0, /* U+00a7f6: */ - 0, /* U+00a7f7: */ - 0, /* U+00a7f8: */ - 0, /* U+00a7f9: */ - 0, /* U+00a7fa: */ - 0, /* U+00a7fb: */ - 0, /* U+00a7fc: */ - 0, /* U+00a7fd: */ - 0, /* U+00a7fe: */ - 0, /* U+00a7ff: */ - RTUNI_ALPHA, /* U+00a800: SYLOTI NAGRI LETTER A*/ - RTUNI_ALPHA, /* U+00a801: SYLOTI NAGRI LETTER I*/ - 0, /* U+00a802: SYLOTI NAGRI SIGN DVISVARA*/ - RTUNI_ALPHA, /* U+00a803: SYLOTI NAGRI LETTER U*/ - RTUNI_ALPHA, /* U+00a804: SYLOTI NAGRI LETTER E*/ - RTUNI_ALPHA, /* U+00a805: SYLOTI NAGRI LETTER O*/ - 0, /* U+00a806: SYLOTI NAGRI SIGN HASANTA*/ - RTUNI_ALPHA, /* U+00a807: SYLOTI NAGRI LETTER KO*/ - RTUNI_ALPHA, /* U+00a808: SYLOTI NAGRI LETTER KHO*/ - RTUNI_ALPHA, /* U+00a809: SYLOTI NAGRI LETTER GO*/ - RTUNI_ALPHA, /* U+00a80a: SYLOTI NAGRI LETTER GHO*/ - 0, /* U+00a80b: SYLOTI NAGRI SIGN ANUSVARA*/ - RTUNI_ALPHA, /* U+00a80c: SYLOTI NAGRI LETTER CO*/ - RTUNI_ALPHA, /* U+00a80d: SYLOTI NAGRI LETTER CHO*/ - RTUNI_ALPHA, /* U+00a80e: SYLOTI NAGRI LETTER JO*/ - RTUNI_ALPHA, /* U+00a80f: SYLOTI NAGRI LETTER JHO*/ - RTUNI_ALPHA, /* U+00a810: SYLOTI NAGRI LETTER TTO*/ - RTUNI_ALPHA, /* U+00a811: SYLOTI NAGRI LETTER TTHO*/ - RTUNI_ALPHA, /* U+00a812: SYLOTI NAGRI LETTER DDO*/ - RTUNI_ALPHA, /* U+00a813: SYLOTI NAGRI LETTER DDHO*/ - RTUNI_ALPHA, /* U+00a814: SYLOTI NAGRI LETTER TO*/ - RTUNI_ALPHA, /* U+00a815: SYLOTI NAGRI LETTER THO*/ - RTUNI_ALPHA, /* U+00a816: SYLOTI NAGRI LETTER DO*/ - RTUNI_ALPHA, /* U+00a817: SYLOTI NAGRI LETTER DHO*/ - RTUNI_ALPHA, /* U+00a818: SYLOTI NAGRI LETTER NO*/ - RTUNI_ALPHA, /* U+00a819: SYLOTI NAGRI LETTER PO*/ - RTUNI_ALPHA, /* U+00a81a: SYLOTI NAGRI LETTER PHO*/ - RTUNI_ALPHA, /* U+00a81b: SYLOTI NAGRI LETTER BO*/ - RTUNI_ALPHA, /* U+00a81c: SYLOTI NAGRI LETTER BHO*/ - RTUNI_ALPHA, /* U+00a81d: SYLOTI NAGRI LETTER MO*/ - RTUNI_ALPHA, /* U+00a81e: SYLOTI NAGRI LETTER RO*/ - RTUNI_ALPHA, /* U+00a81f: SYLOTI NAGRI LETTER LO*/ - RTUNI_ALPHA, /* U+00a820: SYLOTI NAGRI LETTER RRO*/ - RTUNI_ALPHA, /* U+00a821: SYLOTI NAGRI LETTER SO*/ - RTUNI_ALPHA, /* U+00a822: SYLOTI NAGRI LETTER HO*/ - RTUNI_ALPHA, /* U+00a823: SYLOTI NAGRI VOWEL SIGN A*/ - RTUNI_ALPHA, /* U+00a824: SYLOTI NAGRI VOWEL SIGN I*/ - RTUNI_ALPHA, /* U+00a825: SYLOTI NAGRI VOWEL SIGN U*/ - RTUNI_ALPHA, /* U+00a826: SYLOTI NAGRI VOWEL SIGN E*/ - RTUNI_ALPHA, /* U+00a827: SYLOTI NAGRI VOWEL SIGN OO*/ - 0, /* U+00a828: SYLOTI NAGRI POETRY MARK-1*/ - 0, /* U+00a829: SYLOTI NAGRI POETRY MARK-2*/ - 0, /* U+00a82a: SYLOTI NAGRI POETRY MARK-3*/ - 0, /* U+00a82b: SYLOTI NAGRI POETRY MARK-4*/ - 0, /* U+00a82c: */ - 0, /* U+00a82d: */ - 0, /* U+00a82e: */ - 0, /* U+00a82f: */ - 0, /* U+00a830: */ - 0, /* U+00a831: */ - 0, /* U+00a832: */ - 0, /* U+00a833: */ - 0, /* U+00a834: */ - 0, /* U+00a835: */ - 0, /* U+00a836: */ - 0, /* U+00a837: */ - 0, /* U+00a838: */ - 0, /* U+00a839: */ - 0, /* U+00a83a: */ - 0, /* U+00a83b: */ - 0, /* U+00a83c: */ - 0, /* U+00a83d: */ - 0, /* U+00a83e: */ - 0, /* U+00a83f: */ - 0, /* U+00a840: */ - 0, /* U+00a841: */ - 0, /* U+00a842: */ - 0, /* U+00a843: */ - 0, /* U+00a844: */ - 0, /* U+00a845: */ - 0, /* U+00a846: */ - 0, /* U+00a847: */ - 0, /* U+00a848: */ - 0, /* U+00a849: */ - 0, /* U+00a84a: */ - 0, /* U+00a84b: */ - 0, /* U+00a84c: */ - 0, /* U+00a84d: */ - 0, /* U+00a84e: */ - 0, /* U+00a84f: */ - 0, /* U+00a850: */ - 0, /* U+00a851: */ - 0, /* U+00a852: */ - 0, /* U+00a853: */ - 0, /* U+00a854: */ - 0, /* U+00a855: */ - 0, /* U+00a856: */ - 0, /* U+00a857: */ - 0, /* U+00a858: */ - 0, /* U+00a859: */ - 0, /* U+00a85a: */ - 0, /* U+00a85b: */ - 0, /* U+00a85c: */ - 0, /* U+00a85d: */ - 0, /* U+00a85e: */ - 0, /* U+00a85f: */ - 0, /* U+00a860: */ - 0, /* U+00a861: */ - 0, /* U+00a862: */ - 0, /* U+00a863: */ - 0, /* U+00a864: */ - 0, /* U+00a865: */ - 0, /* U+00a866: */ - 0, /* U+00a867: */ - 0, /* U+00a868: */ - 0, /* U+00a869: */ - 0, /* U+00a86a: */ - 0, /* U+00a86b: */ - 0, /* U+00a86c: */ - 0, /* U+00a86d: */ - 0, /* U+00a86e: */ - 0, /* U+00a86f: */ - 0, /* U+00a870: */ - 0, /* U+00a871: */ - 0, /* U+00a872: */ - 0, /* U+00a873: */ - 0, /* U+00a874: */ - 0, /* U+00a875: */ - 0, /* U+00a876: */ - 0, /* U+00a877: */ - 0, /* U+00a878: */ - 0, /* U+00a879: */ - 0, /* U+00a87a: */ - 0, /* U+00a87b: */ - 0, /* U+00a87c: */ - 0, /* U+00a87d: */ - 0, /* U+00a87e: */ - 0, /* U+00a87f: */ - 0, /* U+00a880: */ - 0, /* U+00a881: */ - 0, /* U+00a882: */ - 0, /* U+00a883: */ - 0, /* U+00a884: */ - 0, /* U+00a885: */ - 0, /* U+00a886: */ - 0, /* U+00a887: */ - 0, /* U+00a888: */ - 0, /* U+00a889: */ - 0, /* U+00a88a: */ - 0, /* U+00a88b: */ - 0, /* U+00a88c: */ - 0, /* U+00a88d: */ - 0, /* U+00a88e: */ - 0, /* U+00a88f: */ - 0, /* U+00a890: */ - 0, /* U+00a891: */ - 0, /* U+00a892: */ - 0, /* U+00a893: */ - 0, /* U+00a894: */ - 0, /* U+00a895: */ - 0, /* U+00a896: */ - 0, /* U+00a897: */ - 0, /* U+00a898: */ - 0, /* U+00a899: */ - 0, /* U+00a89a: */ - 0, /* U+00a89b: */ - 0, /* U+00a89c: */ - 0, /* U+00a89d: */ - 0, /* U+00a89e: */ - 0, /* U+00a89f: */ - 0, /* U+00a8a0: */ - 0, /* U+00a8a1: */ - 0, /* U+00a8a2: */ - 0, /* U+00a8a3: */ - 0, /* U+00a8a4: */ - 0, /* U+00a8a5: */ - 0, /* U+00a8a6: */ - 0, /* U+00a8a7: */ - 0, /* U+00a8a8: */ - 0, /* U+00a8a9: */ - 0, /* U+00a8aa: */ - 0, /* U+00a8ab: */ - 0, /* U+00a8ac: */ - 0, /* U+00a8ad: */ - 0, /* U+00a8ae: */ - 0, /* U+00a8af: */ - 0, /* U+00a8b0: */ - 0, /* U+00a8b1: */ - 0, /* U+00a8b2: */ - 0, /* U+00a8b3: */ - 0, /* U+00a8b4: */ - 0, /* U+00a8b5: */ - 0, /* U+00a8b6: */ - 0, /* U+00a8b7: */ - 0, /* U+00a8b8: */ - 0, /* U+00a8b9: */ - 0, /* U+00a8ba: */ - 0, /* U+00a8bb: */ - 0, /* U+00a8bc: */ - 0, /* U+00a8bd: */ - 0, /* U+00a8be: */ - 0, /* U+00a8bf: */ - 0, /* U+00a8c0: */ - 0, /* U+00a8c1: */ - 0, /* U+00a8c2: */ - 0, /* U+00a8c3: */ - 0, /* U+00a8c4: */ - 0, /* U+00a8c5: */ - 0, /* U+00a8c6: */ - 0, /* U+00a8c7: */ - 0, /* U+00a8c8: */ - 0, /* U+00a8c9: */ - 0, /* U+00a8ca: */ - 0, /* U+00a8cb: */ - 0, /* U+00a8cc: */ - 0, /* U+00a8cd: */ - 0, /* U+00a8ce: */ - 0, /* U+00a8cf: */ - 0, /* U+00a8d0: */ - 0, /* U+00a8d1: */ - 0, /* U+00a8d2: */ - 0, /* U+00a8d3: */ - 0, /* U+00a8d4: */ - 0, /* U+00a8d5: */ - 0, /* U+00a8d6: */ - 0, /* U+00a8d7: */ - 0, /* U+00a8d8: */ - 0, /* U+00a8d9: */ - 0, /* U+00a8da: */ - 0, /* U+00a8db: */ - 0, /* U+00a8dc: */ - 0, /* U+00a8dd: */ - 0, /* U+00a8de: */ - 0, /* U+00a8df: */ - 0, /* U+00a8e0: */ - 0, /* U+00a8e1: */ - 0, /* U+00a8e2: */ - 0, /* U+00a8e3: */ - 0, /* U+00a8e4: */ - 0, /* U+00a8e5: */ - 0, /* U+00a8e6: */ - 0, /* U+00a8e7: */ - 0, /* U+00a8e8: */ - 0, /* U+00a8e9: */ - 0, /* U+00a8ea: */ - 0, /* U+00a8eb: */ - 0, /* U+00a8ec: */ - 0, /* U+00a8ed: */ - 0, /* U+00a8ee: */ - 0, /* U+00a8ef: */ - 0, /* U+00a8f0: */ - 0, /* U+00a8f1: */ - 0, /* U+00a8f2: */ - 0, /* U+00a8f3: */ - 0, /* U+00a8f4: */ - 0, /* U+00a8f5: */ - 0, /* U+00a8f6: */ - 0, /* U+00a8f7: */ - 0, /* U+00a8f8: */ - 0, /* U+00a8f9: */ - 0, /* U+00a8fa: */ - 0, /* U+00a8fb: */ - 0, /* U+00a8fc: */ - 0, /* U+00a8fd: */ - 0, /* U+00a8fe: */ - 0, /* U+00a8ff: */ - 0, /* U+00a900: */ - 0, /* U+00a901: */ - 0, /* U+00a902: */ - 0, /* U+00a903: */ - 0, /* U+00a904: */ - 0, /* U+00a905: */ - 0, /* U+00a906: */ - 0, /* U+00a907: */ - 0, /* U+00a908: */ - 0, /* U+00a909: */ - 0, /* U+00a90a: */ - 0, /* U+00a90b: */ - 0, /* U+00a90c: */ - 0, /* U+00a90d: */ - 0, /* U+00a90e: */ - 0, /* U+00a90f: */ - 0, /* U+00a910: */ - 0, /* U+00a911: */ - 0, /* U+00a912: */ - 0, /* U+00a913: */ - 0, /* U+00a914: */ - 0, /* U+00a915: */ - 0, /* U+00a916: */ - 0, /* U+00a917: */ - 0, /* U+00a918: */ - 0, /* U+00a919: */ - 0, /* U+00a91a: */ - 0, /* U+00a91b: */ - 0, /* U+00a91c: */ - 0, /* U+00a91d: */ - 0, /* U+00a91e: */ - 0, /* U+00a91f: */ - 0, /* U+00a920: */ - 0, /* U+00a921: */ - 0, /* U+00a922: */ - 0, /* U+00a923: */ - 0, /* U+00a924: */ - 0, /* U+00a925: */ - 0, /* U+00a926: */ - 0, /* U+00a927: */ - 0, /* U+00a928: */ - 0, /* U+00a929: */ - 0, /* U+00a92a: */ - 0, /* U+00a92b: */ - 0, /* U+00a92c: */ - 0, /* U+00a92d: */ - 0, /* U+00a92e: */ - 0, /* U+00a92f: */ - 0, /* U+00a930: */ - 0, /* U+00a931: */ - 0, /* U+00a932: */ - 0, /* U+00a933: */ - 0, /* U+00a934: */ - 0, /* U+00a935: */ - 0, /* U+00a936: */ - 0, /* U+00a937: */ - 0, /* U+00a938: */ - 0, /* U+00a939: */ - 0, /* U+00a93a: */ - 0, /* U+00a93b: */ - 0, /* U+00a93c: */ - 0, /* U+00a93d: */ - 0, /* U+00a93e: */ - 0, /* U+00a93f: */ - 0, /* U+00a940: */ - 0, /* U+00a941: */ - 0, /* U+00a942: */ - 0, /* U+00a943: */ - 0, /* U+00a944: */ - 0, /* U+00a945: */ - 0, /* U+00a946: */ - 0, /* U+00a947: */ - 0, /* U+00a948: */ - 0, /* U+00a949: */ - 0, /* U+00a94a: */ - 0, /* U+00a94b: */ - 0, /* U+00a94c: */ - 0, /* U+00a94d: */ - 0, /* U+00a94e: */ - 0, /* U+00a94f: */ - 0, /* U+00a950: */ - 0, /* U+00a951: */ - 0, /* U+00a952: */ - 0, /* U+00a953: */ - 0, /* U+00a954: */ - 0, /* U+00a955: */ - 0, /* U+00a956: */ - 0, /* U+00a957: */ - 0, /* U+00a958: */ - 0, /* U+00a959: */ - 0, /* U+00a95a: */ - 0, /* U+00a95b: */ - 0, /* U+00a95c: */ - 0, /* U+00a95d: */ - 0, /* U+00a95e: */ - 0, /* U+00a95f: */ - 0, /* U+00a960: */ - 0, /* U+00a961: */ - 0, /* U+00a962: */ - 0, /* U+00a963: */ - 0, /* U+00a964: */ - 0, /* U+00a965: */ - 0, /* U+00a966: */ - 0, /* U+00a967: */ - 0, /* U+00a968: */ - 0, /* U+00a969: */ - 0, /* U+00a96a: */ - 0, /* U+00a96b: */ - 0, /* U+00a96c: */ - 0, /* U+00a96d: */ - 0, /* U+00a96e: */ - 0, /* U+00a96f: */ - 0, /* U+00a970: */ - 0, /* U+00a971: */ - 0, /* U+00a972: */ - 0, /* U+00a973: */ - 0, /* U+00a974: */ - 0, /* U+00a975: */ - 0, /* U+00a976: */ - 0, /* U+00a977: */ - 0, /* U+00a978: */ - 0, /* U+00a979: */ - 0, /* U+00a97a: */ - 0, /* U+00a97b: */ - 0, /* U+00a97c: */ - 0, /* U+00a97d: */ - 0, /* U+00a97e: */ - 0, /* U+00a97f: */ - 0, /* U+00a980: */ - 0, /* U+00a981: */ - 0, /* U+00a982: */ - 0, /* U+00a983: */ - 0, /* U+00a984: */ - 0, /* U+00a985: */ - 0, /* U+00a986: */ - 0, /* U+00a987: */ - 0, /* U+00a988: */ - 0, /* U+00a989: */ - 0, /* U+00a98a: */ - 0, /* U+00a98b: */ - 0, /* U+00a98c: */ - 0, /* U+00a98d: */ - 0, /* U+00a98e: */ - 0, /* U+00a98f: */ - 0, /* U+00a990: */ - 0, /* U+00a991: */ - 0, /* U+00a992: */ - 0, /* U+00a993: */ - 0, /* U+00a994: */ - 0, /* U+00a995: */ - 0, /* U+00a996: */ - 0, /* U+00a997: */ - 0, /* U+00a998: */ - 0, /* U+00a999: */ - 0, /* U+00a99a: */ - 0, /* U+00a99b: */ - 0, /* U+00a99c: */ - 0, /* U+00a99d: */ - 0, /* U+00a99e: */ - 0, /* U+00a99f: */ - 0, /* U+00a9a0: */ - 0, /* U+00a9a1: */ - 0, /* U+00a9a2: */ - 0, /* U+00a9a3: */ - 0, /* U+00a9a4: */ - 0, /* U+00a9a5: */ - 0, /* U+00a9a6: */ - 0, /* U+00a9a7: */ - 0, /* U+00a9a8: */ - 0, /* U+00a9a9: */ - 0, /* U+00a9aa: */ - 0, /* U+00a9ab: */ - 0, /* U+00a9ac: */ - 0, /* U+00a9ad: */ - 0, /* U+00a9ae: */ - 0, /* U+00a9af: */ - 0, /* U+00a9b0: */ - 0, /* U+00a9b1: */ - 0, /* U+00a9b2: */ - 0, /* U+00a9b3: */ - 0, /* U+00a9b4: */ - 0, /* U+00a9b5: */ - 0, /* U+00a9b6: */ - 0, /* U+00a9b7: */ - 0, /* U+00a9b8: */ - 0, /* U+00a9b9: */ - 0, /* U+00a9ba: */ - 0, /* U+00a9bb: */ - 0, /* U+00a9bc: */ - 0, /* U+00a9bd: */ - 0, /* U+00a9be: */ - 0, /* U+00a9bf: */ - 0, /* U+00a9c0: */ - 0, /* U+00a9c1: */ - 0, /* U+00a9c2: */ - 0, /* U+00a9c3: */ - 0, /* U+00a9c4: */ - 0, /* U+00a9c5: */ - 0, /* U+00a9c6: */ - 0, /* U+00a9c7: */ - 0, /* U+00a9c8: */ - 0, /* U+00a9c9: */ - 0, /* U+00a9ca: */ - 0, /* U+00a9cb: */ - 0, /* U+00a9cc: */ - 0, /* U+00a9cd: */ - 0, /* U+00a9ce: */ - 0, /* U+00a9cf: */ - 0, /* U+00a9d0: */ - 0, /* U+00a9d1: */ - 0, /* U+00a9d2: */ - 0, /* U+00a9d3: */ - 0, /* U+00a9d4: */ - 0, /* U+00a9d5: */ - 0, /* U+00a9d6: */ - 0, /* U+00a9d7: */ - 0, /* U+00a9d8: */ - 0, /* U+00a9d9: */ - 0, /* U+00a9da: */ - 0, /* U+00a9db: */ - 0, /* U+00a9dc: */ - 0, /* U+00a9dd: */ - 0, /* U+00a9de: */ - 0, /* U+00a9df: */ - 0, /* U+00a9e0: */ - 0, /* U+00a9e1: */ - 0, /* U+00a9e2: */ - 0, /* U+00a9e3: */ - 0, /* U+00a9e4: */ - 0, /* U+00a9e5: */ - 0, /* U+00a9e6: */ - 0, /* U+00a9e7: */ - 0, /* U+00a9e8: */ - 0, /* U+00a9e9: */ - 0, /* U+00a9ea: */ - 0, /* U+00a9eb: */ - 0, /* U+00a9ec: */ - 0, /* U+00a9ed: */ - 0, /* U+00a9ee: */ - 0, /* U+00a9ef: */ - 0, /* U+00a9f0: */ - 0, /* U+00a9f1: */ - 0, /* U+00a9f2: */ - 0, /* U+00a9f3: */ - 0, /* U+00a9f4: */ - 0, /* U+00a9f5: */ - 0, /* U+00a9f6: */ - 0, /* U+00a9f7: */ - 0, /* U+00a9f8: */ - 0, /* U+00a9f9: */ - 0, /* U+00a9fa: */ - 0, /* U+00a9fb: */ - 0, /* U+00a9fc: */ - 0, /* U+00a9fd: */ - 0, /* U+00a9fe: */ - 0, /* U+00a9ff: */ - 0, /* U+00aa00: */ - 0, /* U+00aa01: */ - 0, /* U+00aa02: */ - 0, /* U+00aa03: */ - 0, /* U+00aa04: */ - 0, /* U+00aa05: */ - 0, /* U+00aa06: */ - 0, /* U+00aa07: */ - 0, /* U+00aa08: */ - 0, /* U+00aa09: */ - 0, /* U+00aa0a: */ - 0, /* U+00aa0b: */ - 0, /* U+00aa0c: */ - 0, /* U+00aa0d: */ - 0, /* U+00aa0e: */ - 0, /* U+00aa0f: */ - 0, /* U+00aa10: */ - 0, /* U+00aa11: */ - 0, /* U+00aa12: */ - 0, /* U+00aa13: */ - 0, /* U+00aa14: */ - 0, /* U+00aa15: */ - 0, /* U+00aa16: */ - 0, /* U+00aa17: */ - 0, /* U+00aa18: */ - 0, /* U+00aa19: */ - 0, /* U+00aa1a: */ - 0, /* U+00aa1b: */ - 0, /* U+00aa1c: */ - 0, /* U+00aa1d: */ - 0, /* U+00aa1e: */ - 0, /* U+00aa1f: */ - 0, /* U+00aa20: */ - 0, /* U+00aa21: */ - 0, /* U+00aa22: */ - 0, /* U+00aa23: */ - 0, /* U+00aa24: */ - 0, /* U+00aa25: */ - 0, /* U+00aa26: */ - 0, /* U+00aa27: */ - 0, /* U+00aa28: */ - 0, /* U+00aa29: */ - 0, /* U+00aa2a: */ - 0, /* U+00aa2b: */ - 0, /* U+00aa2c: */ - 0, /* U+00aa2d: */ - 0, /* U+00aa2e: */ - 0, /* U+00aa2f: */ - 0, /* U+00aa30: */ - 0, /* U+00aa31: */ - 0, /* U+00aa32: */ - 0, /* U+00aa33: */ - 0, /* U+00aa34: */ - 0, /* U+00aa35: */ - 0, /* U+00aa36: */ - 0, /* U+00aa37: */ - 0, /* U+00aa38: */ - 0, /* U+00aa39: */ - 0, /* U+00aa3a: */ - 0, /* U+00aa3b: */ - 0, /* U+00aa3c: */ - 0, /* U+00aa3d: */ - 0, /* U+00aa3e: */ - 0, /* U+00aa3f: */ - 0, /* U+00aa40: */ - 0, /* U+00aa41: */ - 0, /* U+00aa42: */ - 0, /* U+00aa43: */ - 0, /* U+00aa44: */ - 0, /* U+00aa45: */ - 0, /* U+00aa46: */ - 0, /* U+00aa47: */ - 0, /* U+00aa48: */ - 0, /* U+00aa49: */ - 0, /* U+00aa4a: */ - 0, /* U+00aa4b: */ - 0, /* U+00aa4c: */ - 0, /* U+00aa4d: */ - 0, /* U+00aa4e: */ - 0, /* U+00aa4f: */ - 0, /* U+00aa50: */ - 0, /* U+00aa51: */ - 0, /* U+00aa52: */ - 0, /* U+00aa53: */ - 0, /* U+00aa54: */ - 0, /* U+00aa55: */ - 0, /* U+00aa56: */ - 0, /* U+00aa57: */ - 0, /* U+00aa58: */ - 0, /* U+00aa59: */ - 0, /* U+00aa5a: */ - 0, /* U+00aa5b: */ - 0, /* U+00aa5c: */ - 0, /* U+00aa5d: */ - 0, /* U+00aa5e: */ - 0, /* U+00aa5f: */ - 0, /* U+00aa60: */ - 0, /* U+00aa61: */ - 0, /* U+00aa62: */ - 0, /* U+00aa63: */ - 0, /* U+00aa64: */ - 0, /* U+00aa65: */ - 0, /* U+00aa66: */ - 0, /* U+00aa67: */ - 0, /* U+00aa68: */ - 0, /* U+00aa69: */ - 0, /* U+00aa6a: */ - 0, /* U+00aa6b: */ - 0, /* U+00aa6c: */ - 0, /* U+00aa6d: */ - 0, /* U+00aa6e: */ - 0, /* U+00aa6f: */ - 0, /* U+00aa70: */ - 0, /* U+00aa71: */ - 0, /* U+00aa72: */ - 0, /* U+00aa73: */ - 0, /* U+00aa74: */ - 0, /* U+00aa75: */ - 0, /* U+00aa76: */ - 0, /* U+00aa77: */ - 0, /* U+00aa78: */ - 0, /* U+00aa79: */ - 0, /* U+00aa7a: */ - 0, /* U+00aa7b: */ - 0, /* U+00aa7c: */ - 0, /* U+00aa7d: */ - 0, /* U+00aa7e: */ - 0, /* U+00aa7f: */ - 0, /* U+00aa80: */ - 0, /* U+00aa81: */ - 0, /* U+00aa82: */ - 0, /* U+00aa83: */ - 0, /* U+00aa84: */ - 0, /* U+00aa85: */ - 0, /* U+00aa86: */ - 0, /* U+00aa87: */ - 0, /* U+00aa88: */ - 0, /* U+00aa89: */ - 0, /* U+00aa8a: */ - 0, /* U+00aa8b: */ - 0, /* U+00aa8c: */ - 0, /* U+00aa8d: */ - 0, /* U+00aa8e: */ - 0, /* U+00aa8f: */ - 0, /* U+00aa90: */ - 0, /* U+00aa91: */ - 0, /* U+00aa92: */ - 0, /* U+00aa93: */ - 0, /* U+00aa94: */ - 0, /* U+00aa95: */ - 0, /* U+00aa96: */ - 0, /* U+00aa97: */ - 0, /* U+00aa98: */ - 0, /* U+00aa99: */ - 0, /* U+00aa9a: */ - 0, /* U+00aa9b: */ - 0, /* U+00aa9c: */ - 0, /* U+00aa9d: */ - 0, /* U+00aa9e: */ - 0, /* U+00aa9f: */ - 0, /* U+00aaa0: */ - 0, /* U+00aaa1: */ - 0, /* U+00aaa2: */ - 0, /* U+00aaa3: */ - 0, /* U+00aaa4: */ - 0, /* U+00aaa5: */ - 0, /* U+00aaa6: */ - 0, /* U+00aaa7: */ - 0, /* U+00aaa8: */ - 0, /* U+00aaa9: */ - 0, /* U+00aaaa: */ - 0, /* U+00aaab: */ - 0, /* U+00aaac: */ - 0, /* U+00aaad: */ - 0, /* U+00aaae: */ - 0, /* U+00aaaf: */ - 0, /* U+00aab0: */ - 0, /* U+00aab1: */ - 0, /* U+00aab2: */ - 0, /* U+00aab3: */ - 0, /* U+00aab4: */ - 0, /* U+00aab5: */ - 0, /* U+00aab6: */ - 0, /* U+00aab7: */ - 0, /* U+00aab8: */ - 0, /* U+00aab9: */ - 0, /* U+00aaba: */ - 0, /* U+00aabb: */ - 0, /* U+00aabc: */ - 0, /* U+00aabd: */ - 0, /* U+00aabe: */ - 0, /* U+00aabf: */ - 0, /* U+00aac0: */ - 0, /* U+00aac1: */ - 0, /* U+00aac2: */ - 0, /* U+00aac3: */ - 0, /* U+00aac4: */ - 0, /* U+00aac5: */ - 0, /* U+00aac6: */ - 0, /* U+00aac7: */ - 0, /* U+00aac8: */ - 0, /* U+00aac9: */ - 0, /* U+00aaca: */ - 0, /* U+00aacb: */ - 0, /* U+00aacc: */ - 0, /* U+00aacd: */ - 0, /* U+00aace: */ - 0, /* U+00aacf: */ - 0, /* U+00aad0: */ - 0, /* U+00aad1: */ - 0, /* U+00aad2: */ - 0, /* U+00aad3: */ - 0, /* U+00aad4: */ - 0, /* U+00aad5: */ - 0, /* U+00aad6: */ - 0, /* U+00aad7: */ - 0, /* U+00aad8: */ - 0, /* U+00aad9: */ - 0, /* U+00aada: */ - 0, /* U+00aadb: */ - 0, /* U+00aadc: */ - 0, /* U+00aadd: */ - 0, /* U+00aade: */ - 0, /* U+00aadf: */ - 0, /* U+00aae0: */ - 0, /* U+00aae1: */ - 0, /* U+00aae2: */ - 0, /* U+00aae3: */ - 0, /* U+00aae4: */ - 0, /* U+00aae5: */ - 0, /* U+00aae6: */ - 0, /* U+00aae7: */ - 0, /* U+00aae8: */ - 0, /* U+00aae9: */ - 0, /* U+00aaea: */ - 0, /* U+00aaeb: */ - 0, /* U+00aaec: */ - 0, /* U+00aaed: */ - 0, /* U+00aaee: */ - 0, /* U+00aaef: */ - 0, /* U+00aaf0: */ - 0, /* U+00aaf1: */ - 0, /* U+00aaf2: */ - 0, /* U+00aaf3: */ - 0, /* U+00aaf4: */ - 0, /* U+00aaf5: */ - 0, /* U+00aaf6: */ - 0, /* U+00aaf7: */ - 0, /* U+00aaf8: */ - 0, /* U+00aaf9: */ - 0, /* U+00aafa: */ - 0, /* U+00aafb: */ - 0, /* U+00aafc: */ - 0, /* U+00aafd: */ - 0, /* U+00aafe: */ - 0, /* U+00aaff: */ - 0, /* U+00ab00: */ - 0, /* U+00ab01: */ - 0, /* U+00ab02: */ - 0, /* U+00ab03: */ - 0, /* U+00ab04: */ - 0, /* U+00ab05: */ - 0, /* U+00ab06: */ - 0, /* U+00ab07: */ - 0, /* U+00ab08: */ - 0, /* U+00ab09: */ - 0, /* U+00ab0a: */ - 0, /* U+00ab0b: */ - 0, /* U+00ab0c: */ - 0, /* U+00ab0d: */ - 0, /* U+00ab0e: */ - 0, /* U+00ab0f: */ - 0, /* U+00ab10: */ - 0, /* U+00ab11: */ - 0, /* U+00ab12: */ - 0, /* U+00ab13: */ - 0, /* U+00ab14: */ - 0, /* U+00ab15: */ - 0, /* U+00ab16: */ - 0, /* U+00ab17: */ - 0, /* U+00ab18: */ - 0, /* U+00ab19: */ - 0, /* U+00ab1a: */ - 0, /* U+00ab1b: */ - 0, /* U+00ab1c: */ - 0, /* U+00ab1d: */ - 0, /* U+00ab1e: */ - 0, /* U+00ab1f: */ - 0, /* U+00ab20: */ - 0, /* U+00ab21: */ - 0, /* U+00ab22: */ - 0, /* U+00ab23: */ - 0, /* U+00ab24: */ - 0, /* U+00ab25: */ - 0, /* U+00ab26: */ - 0, /* U+00ab27: */ - 0, /* U+00ab28: */ - 0, /* U+00ab29: */ - 0, /* U+00ab2a: */ - 0, /* U+00ab2b: */ - 0, /* U+00ab2c: */ - 0, /* U+00ab2d: */ - 0, /* U+00ab2e: */ - 0, /* U+00ab2f: */ - 0, /* U+00ab30: */ - 0, /* U+00ab31: */ - 0, /* U+00ab32: */ - 0, /* U+00ab33: */ - 0, /* U+00ab34: */ - 0, /* U+00ab35: */ - 0, /* U+00ab36: */ - 0, /* U+00ab37: */ - 0, /* U+00ab38: */ - 0, /* U+00ab39: */ - 0, /* U+00ab3a: */ - 0, /* U+00ab3b: */ - 0, /* U+00ab3c: */ - 0, /* U+00ab3d: */ - 0, /* U+00ab3e: */ - 0, /* U+00ab3f: */ - 0, /* U+00ab40: */ - 0, /* U+00ab41: */ - 0, /* U+00ab42: */ - 0, /* U+00ab43: */ - 0, /* U+00ab44: */ - 0, /* U+00ab45: */ - 0, /* U+00ab46: */ - 0, /* U+00ab47: */ - 0, /* U+00ab48: */ - 0, /* U+00ab49: */ - 0, /* U+00ab4a: */ - 0, /* U+00ab4b: */ - 0, /* U+00ab4c: */ - 0, /* U+00ab4d: */ - 0, /* U+00ab4e: */ - 0, /* U+00ab4f: */ - 0, /* U+00ab50: */ - 0, /* U+00ab51: */ - 0, /* U+00ab52: */ - 0, /* U+00ab53: */ - 0, /* U+00ab54: */ - 0, /* U+00ab55: */ - 0, /* U+00ab56: */ - 0, /* U+00ab57: */ - 0, /* U+00ab58: */ - 0, /* U+00ab59: */ - 0, /* U+00ab5a: */ - 0, /* U+00ab5b: */ - 0, /* U+00ab5c: */ - 0, /* U+00ab5d: */ - 0, /* U+00ab5e: */ - 0, /* U+00ab5f: */ - 0, /* U+00ab60: */ - 0, /* U+00ab61: */ - 0, /* U+00ab62: */ - 0, /* U+00ab63: */ - 0, /* U+00ab64: */ - 0, /* U+00ab65: */ - 0, /* U+00ab66: */ - 0, /* U+00ab67: */ - 0, /* U+00ab68: */ - 0, /* U+00ab69: */ - 0, /* U+00ab6a: */ - 0, /* U+00ab6b: */ - 0, /* U+00ab6c: */ - 0, /* U+00ab6d: */ - 0, /* U+00ab6e: */ - 0, /* U+00ab6f: */ - 0, /* U+00ab70: */ - 0, /* U+00ab71: */ - 0, /* U+00ab72: */ - 0, /* U+00ab73: */ - 0, /* U+00ab74: */ - 0, /* U+00ab75: */ - 0, /* U+00ab76: */ - 0, /* U+00ab77: */ - 0, /* U+00ab78: */ - 0, /* U+00ab79: */ - 0, /* U+00ab7a: */ - 0, /* U+00ab7b: */ - 0, /* U+00ab7c: */ - 0, /* U+00ab7d: */ - 0, /* U+00ab7e: */ - 0, /* U+00ab7f: */ - 0, /* U+00ab80: */ - 0, /* U+00ab81: */ - 0, /* U+00ab82: */ - 0, /* U+00ab83: */ - 0, /* U+00ab84: */ - 0, /* U+00ab85: */ - 0, /* U+00ab86: */ - 0, /* U+00ab87: */ - 0, /* U+00ab88: */ - 0, /* U+00ab89: */ - 0, /* U+00ab8a: */ - 0, /* U+00ab8b: */ - 0, /* U+00ab8c: */ - 0, /* U+00ab8d: */ - 0, /* U+00ab8e: */ - 0, /* U+00ab8f: */ - 0, /* U+00ab90: */ - 0, /* U+00ab91: */ - 0, /* U+00ab92: */ - 0, /* U+00ab93: */ - 0, /* U+00ab94: */ - 0, /* U+00ab95: */ - 0, /* U+00ab96: */ - 0, /* U+00ab97: */ - 0, /* U+00ab98: */ - 0, /* U+00ab99: */ - 0, /* U+00ab9a: */ - 0, /* U+00ab9b: */ - 0, /* U+00ab9c: */ - 0, /* U+00ab9d: */ - 0, /* U+00ab9e: */ - 0, /* U+00ab9f: */ - 0, /* U+00aba0: */ - 0, /* U+00aba1: */ - 0, /* U+00aba2: */ - 0, /* U+00aba3: */ - 0, /* U+00aba4: */ - 0, /* U+00aba5: */ - 0, /* U+00aba6: */ - 0, /* U+00aba7: */ - 0, /* U+00aba8: */ - 0, /* U+00aba9: */ - 0, /* U+00abaa: */ - 0, /* U+00abab: */ - 0, /* U+00abac: */ - 0, /* U+00abad: */ - 0, /* U+00abae: */ - 0, /* U+00abaf: */ - 0, /* U+00abb0: */ - 0, /* U+00abb1: */ - 0, /* U+00abb2: */ - 0, /* U+00abb3: */ - 0, /* U+00abb4: */ - 0, /* U+00abb5: */ - 0, /* U+00abb6: */ - 0, /* U+00abb7: */ - 0, /* U+00abb8: */ - 0, /* U+00abb9: */ - 0, /* U+00abba: */ - 0, /* U+00abbb: */ - 0, /* U+00abbc: */ - 0, /* U+00abbd: */ - 0, /* U+00abbe: */ - 0, /* U+00abbf: */ - 0, /* U+00abc0: */ - 0, /* U+00abc1: */ - 0, /* U+00abc2: */ - 0, /* U+00abc3: */ - 0, /* U+00abc4: */ - 0, /* U+00abc5: */ - 0, /* U+00abc6: */ - 0, /* U+00abc7: */ - 0, /* U+00abc8: */ - 0, /* U+00abc9: */ - 0, /* U+00abca: */ - 0, /* U+00abcb: */ - 0, /* U+00abcc: */ - 0, /* U+00abcd: */ - 0, /* U+00abce: */ - 0, /* U+00abcf: */ - 0, /* U+00abd0: */ - 0, /* U+00abd1: */ - 0, /* U+00abd2: */ - 0, /* U+00abd3: */ - 0, /* U+00abd4: */ - 0, /* U+00abd5: */ - 0, /* U+00abd6: */ - 0, /* U+00abd7: */ - 0, /* U+00abd8: */ - 0, /* U+00abd9: */ - 0, /* U+00abda: */ - 0, /* U+00abdb: */ - 0, /* U+00abdc: */ - 0, /* U+00abdd: */ - 0, /* U+00abde: */ - 0, /* U+00abdf: */ - 0, /* U+00abe0: */ - 0, /* U+00abe1: */ - 0, /* U+00abe2: */ - 0, /* U+00abe3: */ - 0, /* U+00abe4: */ - 0, /* U+00abe5: */ - 0, /* U+00abe6: */ - 0, /* U+00abe7: */ - 0, /* U+00abe8: */ - 0, /* U+00abe9: */ - 0, /* U+00abea: */ - 0, /* U+00abeb: */ - 0, /* U+00abec: */ - 0, /* U+00abed: */ - 0, /* U+00abee: */ - 0, /* U+00abef: */ - 0, /* U+00abf0: */ - 0, /* U+00abf1: */ - 0, /* U+00abf2: */ - 0, /* U+00abf3: */ - 0, /* U+00abf4: */ - 0, /* U+00abf5: */ - 0, /* U+00abf6: */ - 0, /* U+00abf7: */ - 0, /* U+00abf8: */ - 0, /* U+00abf9: */ - 0, /* U+00abfa: */ - 0, /* U+00abfb: */ - 0, /* U+00abfc: */ - 0, /* U+00abfd: */ - 0, /* U+00abfe: */ - 0, /* U+00abff: */ - RTUNI_ALPHA, /* U+00ac00: */ -}; - -static const uint8_t g_afRTUniFlags0x00d7a3[] = -{ - RTUNI_ALPHA, /* U+00d7a3: */ -}; - -static const uint8_t g_afRTUniFlags0x00f900[] = -{ - RTUNI_ALPHA, /* U+00f900: CJK COMPATIBILITY IDEOGRAPH-F900*/ - RTUNI_ALPHA, /* U+00f901: CJK COMPATIBILITY IDEOGRAPH-F901*/ - RTUNI_ALPHA, /* U+00f902: CJK COMPATIBILITY IDEOGRAPH-F902*/ - RTUNI_ALPHA, /* U+00f903: CJK COMPATIBILITY IDEOGRAPH-F903*/ - RTUNI_ALPHA, /* U+00f904: CJK COMPATIBILITY IDEOGRAPH-F904*/ - RTUNI_ALPHA, /* U+00f905: CJK COMPATIBILITY IDEOGRAPH-F905*/ - RTUNI_ALPHA, /* U+00f906: CJK COMPATIBILITY IDEOGRAPH-F906*/ - RTUNI_ALPHA, /* U+00f907: CJK COMPATIBILITY IDEOGRAPH-F907*/ - RTUNI_ALPHA, /* U+00f908: CJK COMPATIBILITY IDEOGRAPH-F908*/ - RTUNI_ALPHA, /* U+00f909: CJK COMPATIBILITY IDEOGRAPH-F909*/ - RTUNI_ALPHA, /* U+00f90a: CJK COMPATIBILITY IDEOGRAPH-F90A*/ - RTUNI_ALPHA, /* U+00f90b: CJK COMPATIBILITY IDEOGRAPH-F90B*/ - RTUNI_ALPHA, /* U+00f90c: CJK COMPATIBILITY IDEOGRAPH-F90C*/ - RTUNI_ALPHA, /* U+00f90d: CJK COMPATIBILITY IDEOGRAPH-F90D*/ - RTUNI_ALPHA, /* U+00f90e: CJK COMPATIBILITY IDEOGRAPH-F90E*/ - RTUNI_ALPHA, /* U+00f90f: CJK COMPATIBILITY IDEOGRAPH-F90F*/ - RTUNI_ALPHA, /* U+00f910: CJK COMPATIBILITY IDEOGRAPH-F910*/ - RTUNI_ALPHA, /* U+00f911: CJK COMPATIBILITY IDEOGRAPH-F911*/ - RTUNI_ALPHA, /* U+00f912: CJK COMPATIBILITY IDEOGRAPH-F912*/ - RTUNI_ALPHA, /* U+00f913: CJK COMPATIBILITY IDEOGRAPH-F913*/ - RTUNI_ALPHA, /* U+00f914: CJK COMPATIBILITY IDEOGRAPH-F914*/ - RTUNI_ALPHA, /* U+00f915: CJK COMPATIBILITY IDEOGRAPH-F915*/ - RTUNI_ALPHA, /* U+00f916: CJK COMPATIBILITY IDEOGRAPH-F916*/ - RTUNI_ALPHA, /* U+00f917: CJK COMPATIBILITY IDEOGRAPH-F917*/ - RTUNI_ALPHA, /* U+00f918: CJK COMPATIBILITY IDEOGRAPH-F918*/ - RTUNI_ALPHA, /* U+00f919: CJK COMPATIBILITY IDEOGRAPH-F919*/ - RTUNI_ALPHA, /* U+00f91a: CJK COMPATIBILITY IDEOGRAPH-F91A*/ - RTUNI_ALPHA, /* U+00f91b: CJK COMPATIBILITY IDEOGRAPH-F91B*/ - RTUNI_ALPHA, /* U+00f91c: CJK COMPATIBILITY IDEOGRAPH-F91C*/ - RTUNI_ALPHA, /* U+00f91d: CJK COMPATIBILITY IDEOGRAPH-F91D*/ - RTUNI_ALPHA, /* U+00f91e: CJK COMPATIBILITY IDEOGRAPH-F91E*/ - RTUNI_ALPHA, /* U+00f91f: CJK COMPATIBILITY IDEOGRAPH-F91F*/ - RTUNI_ALPHA, /* U+00f920: CJK COMPATIBILITY IDEOGRAPH-F920*/ - RTUNI_ALPHA, /* U+00f921: CJK COMPATIBILITY IDEOGRAPH-F921*/ - RTUNI_ALPHA, /* U+00f922: CJK COMPATIBILITY IDEOGRAPH-F922*/ - RTUNI_ALPHA, /* U+00f923: CJK COMPATIBILITY IDEOGRAPH-F923*/ - RTUNI_ALPHA, /* U+00f924: CJK COMPATIBILITY IDEOGRAPH-F924*/ - RTUNI_ALPHA, /* U+00f925: CJK COMPATIBILITY IDEOGRAPH-F925*/ - RTUNI_ALPHA, /* U+00f926: CJK COMPATIBILITY IDEOGRAPH-F926*/ - RTUNI_ALPHA, /* U+00f927: CJK COMPATIBILITY IDEOGRAPH-F927*/ - RTUNI_ALPHA, /* U+00f928: CJK COMPATIBILITY IDEOGRAPH-F928*/ - RTUNI_ALPHA, /* U+00f929: CJK COMPATIBILITY IDEOGRAPH-F929*/ - RTUNI_ALPHA, /* U+00f92a: CJK COMPATIBILITY IDEOGRAPH-F92A*/ - RTUNI_ALPHA, /* U+00f92b: CJK COMPATIBILITY IDEOGRAPH-F92B*/ - RTUNI_ALPHA, /* U+00f92c: CJK COMPATIBILITY IDEOGRAPH-F92C*/ - RTUNI_ALPHA, /* U+00f92d: CJK COMPATIBILITY IDEOGRAPH-F92D*/ - RTUNI_ALPHA, /* U+00f92e: CJK COMPATIBILITY IDEOGRAPH-F92E*/ - RTUNI_ALPHA, /* U+00f92f: CJK COMPATIBILITY IDEOGRAPH-F92F*/ - RTUNI_ALPHA, /* U+00f930: CJK COMPATIBILITY IDEOGRAPH-F930*/ - RTUNI_ALPHA, /* U+00f931: CJK COMPATIBILITY IDEOGRAPH-F931*/ - RTUNI_ALPHA, /* U+00f932: CJK COMPATIBILITY IDEOGRAPH-F932*/ - RTUNI_ALPHA, /* U+00f933: CJK COMPATIBILITY IDEOGRAPH-F933*/ - RTUNI_ALPHA, /* U+00f934: CJK COMPATIBILITY IDEOGRAPH-F934*/ - RTUNI_ALPHA, /* U+00f935: CJK COMPATIBILITY IDEOGRAPH-F935*/ - RTUNI_ALPHA, /* U+00f936: CJK COMPATIBILITY IDEOGRAPH-F936*/ - RTUNI_ALPHA, /* U+00f937: CJK COMPATIBILITY IDEOGRAPH-F937*/ - RTUNI_ALPHA, /* U+00f938: CJK COMPATIBILITY IDEOGRAPH-F938*/ - RTUNI_ALPHA, /* U+00f939: CJK COMPATIBILITY IDEOGRAPH-F939*/ - RTUNI_ALPHA, /* U+00f93a: CJK COMPATIBILITY IDEOGRAPH-F93A*/ - RTUNI_ALPHA, /* U+00f93b: CJK COMPATIBILITY IDEOGRAPH-F93B*/ - RTUNI_ALPHA, /* U+00f93c: CJK COMPATIBILITY IDEOGRAPH-F93C*/ - RTUNI_ALPHA, /* U+00f93d: CJK COMPATIBILITY IDEOGRAPH-F93D*/ - RTUNI_ALPHA, /* U+00f93e: CJK COMPATIBILITY IDEOGRAPH-F93E*/ - RTUNI_ALPHA, /* U+00f93f: CJK COMPATIBILITY IDEOGRAPH-F93F*/ - RTUNI_ALPHA, /* U+00f940: CJK COMPATIBILITY IDEOGRAPH-F940*/ - RTUNI_ALPHA, /* U+00f941: CJK COMPATIBILITY IDEOGRAPH-F941*/ - RTUNI_ALPHA, /* U+00f942: CJK COMPATIBILITY IDEOGRAPH-F942*/ - RTUNI_ALPHA, /* U+00f943: CJK COMPATIBILITY IDEOGRAPH-F943*/ - RTUNI_ALPHA, /* U+00f944: CJK COMPATIBILITY IDEOGRAPH-F944*/ - RTUNI_ALPHA, /* U+00f945: CJK COMPATIBILITY IDEOGRAPH-F945*/ - RTUNI_ALPHA, /* U+00f946: CJK COMPATIBILITY IDEOGRAPH-F946*/ - RTUNI_ALPHA, /* U+00f947: CJK COMPATIBILITY IDEOGRAPH-F947*/ - RTUNI_ALPHA, /* U+00f948: CJK COMPATIBILITY IDEOGRAPH-F948*/ - RTUNI_ALPHA, /* U+00f949: CJK COMPATIBILITY IDEOGRAPH-F949*/ - RTUNI_ALPHA, /* U+00f94a: CJK COMPATIBILITY IDEOGRAPH-F94A*/ - RTUNI_ALPHA, /* U+00f94b: CJK COMPATIBILITY IDEOGRAPH-F94B*/ - RTUNI_ALPHA, /* U+00f94c: CJK COMPATIBILITY IDEOGRAPH-F94C*/ - RTUNI_ALPHA, /* U+00f94d: CJK COMPATIBILITY IDEOGRAPH-F94D*/ - RTUNI_ALPHA, /* U+00f94e: CJK COMPATIBILITY IDEOGRAPH-F94E*/ - RTUNI_ALPHA, /* U+00f94f: CJK COMPATIBILITY IDEOGRAPH-F94F*/ - RTUNI_ALPHA, /* U+00f950: CJK COMPATIBILITY IDEOGRAPH-F950*/ - RTUNI_ALPHA, /* U+00f951: CJK COMPATIBILITY IDEOGRAPH-F951*/ - RTUNI_ALPHA, /* U+00f952: CJK COMPATIBILITY IDEOGRAPH-F952*/ - RTUNI_ALPHA, /* U+00f953: CJK COMPATIBILITY IDEOGRAPH-F953*/ - RTUNI_ALPHA, /* U+00f954: CJK COMPATIBILITY IDEOGRAPH-F954*/ - RTUNI_ALPHA, /* U+00f955: CJK COMPATIBILITY IDEOGRAPH-F955*/ - RTUNI_ALPHA, /* U+00f956: CJK COMPATIBILITY IDEOGRAPH-F956*/ - RTUNI_ALPHA, /* U+00f957: CJK COMPATIBILITY IDEOGRAPH-F957*/ - RTUNI_ALPHA, /* U+00f958: CJK COMPATIBILITY IDEOGRAPH-F958*/ - RTUNI_ALPHA, /* U+00f959: CJK COMPATIBILITY IDEOGRAPH-F959*/ - RTUNI_ALPHA, /* U+00f95a: CJK COMPATIBILITY IDEOGRAPH-F95A*/ - RTUNI_ALPHA, /* U+00f95b: CJK COMPATIBILITY IDEOGRAPH-F95B*/ - RTUNI_ALPHA, /* U+00f95c: CJK COMPATIBILITY IDEOGRAPH-F95C*/ - RTUNI_ALPHA, /* U+00f95d: CJK COMPATIBILITY IDEOGRAPH-F95D*/ - RTUNI_ALPHA, /* U+00f95e: CJK COMPATIBILITY IDEOGRAPH-F95E*/ - RTUNI_ALPHA, /* U+00f95f: CJK COMPATIBILITY IDEOGRAPH-F95F*/ - RTUNI_ALPHA, /* U+00f960: CJK COMPATIBILITY IDEOGRAPH-F960*/ - RTUNI_ALPHA, /* U+00f961: CJK COMPATIBILITY IDEOGRAPH-F961*/ - RTUNI_ALPHA, /* U+00f962: CJK COMPATIBILITY IDEOGRAPH-F962*/ - RTUNI_ALPHA, /* U+00f963: CJK COMPATIBILITY IDEOGRAPH-F963*/ - RTUNI_ALPHA, /* U+00f964: CJK COMPATIBILITY IDEOGRAPH-F964*/ - RTUNI_ALPHA, /* U+00f965: CJK COMPATIBILITY IDEOGRAPH-F965*/ - RTUNI_ALPHA, /* U+00f966: CJK COMPATIBILITY IDEOGRAPH-F966*/ - RTUNI_ALPHA, /* U+00f967: CJK COMPATIBILITY IDEOGRAPH-F967*/ - RTUNI_ALPHA, /* U+00f968: CJK COMPATIBILITY IDEOGRAPH-F968*/ - RTUNI_ALPHA, /* U+00f969: CJK COMPATIBILITY IDEOGRAPH-F969*/ - RTUNI_ALPHA, /* U+00f96a: CJK COMPATIBILITY IDEOGRAPH-F96A*/ - RTUNI_ALPHA, /* U+00f96b: CJK COMPATIBILITY IDEOGRAPH-F96B*/ - RTUNI_ALPHA, /* U+00f96c: CJK COMPATIBILITY IDEOGRAPH-F96C*/ - RTUNI_ALPHA, /* U+00f96d: CJK COMPATIBILITY IDEOGRAPH-F96D*/ - RTUNI_ALPHA, /* U+00f96e: CJK COMPATIBILITY IDEOGRAPH-F96E*/ - RTUNI_ALPHA, /* U+00f96f: CJK COMPATIBILITY IDEOGRAPH-F96F*/ - RTUNI_ALPHA, /* U+00f970: CJK COMPATIBILITY IDEOGRAPH-F970*/ - RTUNI_ALPHA, /* U+00f971: CJK COMPATIBILITY IDEOGRAPH-F971*/ - RTUNI_ALPHA, /* U+00f972: CJK COMPATIBILITY IDEOGRAPH-F972*/ - RTUNI_ALPHA, /* U+00f973: CJK COMPATIBILITY IDEOGRAPH-F973*/ - RTUNI_ALPHA, /* U+00f974: CJK COMPATIBILITY IDEOGRAPH-F974*/ - RTUNI_ALPHA, /* U+00f975: CJK COMPATIBILITY IDEOGRAPH-F975*/ - RTUNI_ALPHA, /* U+00f976: CJK COMPATIBILITY IDEOGRAPH-F976*/ - RTUNI_ALPHA, /* U+00f977: CJK COMPATIBILITY IDEOGRAPH-F977*/ - RTUNI_ALPHA, /* U+00f978: CJK COMPATIBILITY IDEOGRAPH-F978*/ - RTUNI_ALPHA, /* U+00f979: CJK COMPATIBILITY IDEOGRAPH-F979*/ - RTUNI_ALPHA, /* U+00f97a: CJK COMPATIBILITY IDEOGRAPH-F97A*/ - RTUNI_ALPHA, /* U+00f97b: CJK COMPATIBILITY IDEOGRAPH-F97B*/ - RTUNI_ALPHA, /* U+00f97c: CJK COMPATIBILITY IDEOGRAPH-F97C*/ - RTUNI_ALPHA, /* U+00f97d: CJK COMPATIBILITY IDEOGRAPH-F97D*/ - RTUNI_ALPHA, /* U+00f97e: CJK COMPATIBILITY IDEOGRAPH-F97E*/ - RTUNI_ALPHA, /* U+00f97f: CJK COMPATIBILITY IDEOGRAPH-F97F*/ - RTUNI_ALPHA, /* U+00f980: CJK COMPATIBILITY IDEOGRAPH-F980*/ - RTUNI_ALPHA, /* U+00f981: CJK COMPATIBILITY IDEOGRAPH-F981*/ - RTUNI_ALPHA, /* U+00f982: CJK COMPATIBILITY IDEOGRAPH-F982*/ - RTUNI_ALPHA, /* U+00f983: CJK COMPATIBILITY IDEOGRAPH-F983*/ - RTUNI_ALPHA, /* U+00f984: CJK COMPATIBILITY IDEOGRAPH-F984*/ - RTUNI_ALPHA, /* U+00f985: CJK COMPATIBILITY IDEOGRAPH-F985*/ - RTUNI_ALPHA, /* U+00f986: CJK COMPATIBILITY IDEOGRAPH-F986*/ - RTUNI_ALPHA, /* U+00f987: CJK COMPATIBILITY IDEOGRAPH-F987*/ - RTUNI_ALPHA, /* U+00f988: CJK COMPATIBILITY IDEOGRAPH-F988*/ - RTUNI_ALPHA, /* U+00f989: CJK COMPATIBILITY IDEOGRAPH-F989*/ - RTUNI_ALPHA, /* U+00f98a: CJK COMPATIBILITY IDEOGRAPH-F98A*/ - RTUNI_ALPHA, /* U+00f98b: CJK COMPATIBILITY IDEOGRAPH-F98B*/ - RTUNI_ALPHA, /* U+00f98c: CJK COMPATIBILITY IDEOGRAPH-F98C*/ - RTUNI_ALPHA, /* U+00f98d: CJK COMPATIBILITY IDEOGRAPH-F98D*/ - RTUNI_ALPHA, /* U+00f98e: CJK COMPATIBILITY IDEOGRAPH-F98E*/ - RTUNI_ALPHA, /* U+00f98f: CJK COMPATIBILITY IDEOGRAPH-F98F*/ - RTUNI_ALPHA, /* U+00f990: CJK COMPATIBILITY IDEOGRAPH-F990*/ - RTUNI_ALPHA, /* U+00f991: CJK COMPATIBILITY IDEOGRAPH-F991*/ - RTUNI_ALPHA, /* U+00f992: CJK COMPATIBILITY IDEOGRAPH-F992*/ - RTUNI_ALPHA, /* U+00f993: CJK COMPATIBILITY IDEOGRAPH-F993*/ - RTUNI_ALPHA, /* U+00f994: CJK COMPATIBILITY IDEOGRAPH-F994*/ - RTUNI_ALPHA, /* U+00f995: CJK COMPATIBILITY IDEOGRAPH-F995*/ - RTUNI_ALPHA, /* U+00f996: CJK COMPATIBILITY IDEOGRAPH-F996*/ - RTUNI_ALPHA, /* U+00f997: CJK COMPATIBILITY IDEOGRAPH-F997*/ - RTUNI_ALPHA, /* U+00f998: CJK COMPATIBILITY IDEOGRAPH-F998*/ - RTUNI_ALPHA, /* U+00f999: CJK COMPATIBILITY IDEOGRAPH-F999*/ - RTUNI_ALPHA, /* U+00f99a: CJK COMPATIBILITY IDEOGRAPH-F99A*/ - RTUNI_ALPHA, /* U+00f99b: CJK COMPATIBILITY IDEOGRAPH-F99B*/ - RTUNI_ALPHA, /* U+00f99c: CJK COMPATIBILITY IDEOGRAPH-F99C*/ - RTUNI_ALPHA, /* U+00f99d: CJK COMPATIBILITY IDEOGRAPH-F99D*/ - RTUNI_ALPHA, /* U+00f99e: CJK COMPATIBILITY IDEOGRAPH-F99E*/ - RTUNI_ALPHA, /* U+00f99f: CJK COMPATIBILITY IDEOGRAPH-F99F*/ - RTUNI_ALPHA, /* U+00f9a0: CJK COMPATIBILITY IDEOGRAPH-F9A0*/ - RTUNI_ALPHA, /* U+00f9a1: CJK COMPATIBILITY IDEOGRAPH-F9A1*/ - RTUNI_ALPHA, /* U+00f9a2: CJK COMPATIBILITY IDEOGRAPH-F9A2*/ - RTUNI_ALPHA, /* U+00f9a3: CJK COMPATIBILITY IDEOGRAPH-F9A3*/ - RTUNI_ALPHA, /* U+00f9a4: CJK COMPATIBILITY IDEOGRAPH-F9A4*/ - RTUNI_ALPHA, /* U+00f9a5: CJK COMPATIBILITY IDEOGRAPH-F9A5*/ - RTUNI_ALPHA, /* U+00f9a6: CJK COMPATIBILITY IDEOGRAPH-F9A6*/ - RTUNI_ALPHA, /* U+00f9a7: CJK COMPATIBILITY IDEOGRAPH-F9A7*/ - RTUNI_ALPHA, /* U+00f9a8: CJK COMPATIBILITY IDEOGRAPH-F9A8*/ - RTUNI_ALPHA, /* U+00f9a9: CJK COMPATIBILITY IDEOGRAPH-F9A9*/ - RTUNI_ALPHA, /* U+00f9aa: CJK COMPATIBILITY IDEOGRAPH-F9AA*/ - RTUNI_ALPHA, /* U+00f9ab: CJK COMPATIBILITY IDEOGRAPH-F9AB*/ - RTUNI_ALPHA, /* U+00f9ac: CJK COMPATIBILITY IDEOGRAPH-F9AC*/ - RTUNI_ALPHA, /* U+00f9ad: CJK COMPATIBILITY IDEOGRAPH-F9AD*/ - RTUNI_ALPHA, /* U+00f9ae: CJK COMPATIBILITY IDEOGRAPH-F9AE*/ - RTUNI_ALPHA, /* U+00f9af: CJK COMPATIBILITY IDEOGRAPH-F9AF*/ - RTUNI_ALPHA, /* U+00f9b0: CJK COMPATIBILITY IDEOGRAPH-F9B0*/ - RTUNI_ALPHA, /* U+00f9b1: CJK COMPATIBILITY IDEOGRAPH-F9B1*/ - RTUNI_ALPHA, /* U+00f9b2: CJK COMPATIBILITY IDEOGRAPH-F9B2*/ - RTUNI_ALPHA, /* U+00f9b3: CJK COMPATIBILITY IDEOGRAPH-F9B3*/ - RTUNI_ALPHA, /* U+00f9b4: CJK COMPATIBILITY IDEOGRAPH-F9B4*/ - RTUNI_ALPHA, /* U+00f9b5: CJK COMPATIBILITY IDEOGRAPH-F9B5*/ - RTUNI_ALPHA, /* U+00f9b6: CJK COMPATIBILITY IDEOGRAPH-F9B6*/ - RTUNI_ALPHA, /* U+00f9b7: CJK COMPATIBILITY IDEOGRAPH-F9B7*/ - RTUNI_ALPHA, /* U+00f9b8: CJK COMPATIBILITY IDEOGRAPH-F9B8*/ - RTUNI_ALPHA, /* U+00f9b9: CJK COMPATIBILITY IDEOGRAPH-F9B9*/ - RTUNI_ALPHA, /* U+00f9ba: CJK COMPATIBILITY IDEOGRAPH-F9BA*/ - RTUNI_ALPHA, /* U+00f9bb: CJK COMPATIBILITY IDEOGRAPH-F9BB*/ - RTUNI_ALPHA, /* U+00f9bc: CJK COMPATIBILITY IDEOGRAPH-F9BC*/ - RTUNI_ALPHA, /* U+00f9bd: CJK COMPATIBILITY IDEOGRAPH-F9BD*/ - RTUNI_ALPHA, /* U+00f9be: CJK COMPATIBILITY IDEOGRAPH-F9BE*/ - RTUNI_ALPHA, /* U+00f9bf: CJK COMPATIBILITY IDEOGRAPH-F9BF*/ - RTUNI_ALPHA, /* U+00f9c0: CJK COMPATIBILITY IDEOGRAPH-F9C0*/ - RTUNI_ALPHA, /* U+00f9c1: CJK COMPATIBILITY IDEOGRAPH-F9C1*/ - RTUNI_ALPHA, /* U+00f9c2: CJK COMPATIBILITY IDEOGRAPH-F9C2*/ - RTUNI_ALPHA, /* U+00f9c3: CJK COMPATIBILITY IDEOGRAPH-F9C3*/ - RTUNI_ALPHA, /* U+00f9c4: CJK COMPATIBILITY IDEOGRAPH-F9C4*/ - RTUNI_ALPHA, /* U+00f9c5: CJK COMPATIBILITY IDEOGRAPH-F9C5*/ - RTUNI_ALPHA, /* U+00f9c6: CJK COMPATIBILITY IDEOGRAPH-F9C6*/ - RTUNI_ALPHA, /* U+00f9c7: CJK COMPATIBILITY IDEOGRAPH-F9C7*/ - RTUNI_ALPHA, /* U+00f9c8: CJK COMPATIBILITY IDEOGRAPH-F9C8*/ - RTUNI_ALPHA, /* U+00f9c9: CJK COMPATIBILITY IDEOGRAPH-F9C9*/ - RTUNI_ALPHA, /* U+00f9ca: CJK COMPATIBILITY IDEOGRAPH-F9CA*/ - RTUNI_ALPHA, /* U+00f9cb: CJK COMPATIBILITY IDEOGRAPH-F9CB*/ - RTUNI_ALPHA, /* U+00f9cc: CJK COMPATIBILITY IDEOGRAPH-F9CC*/ - RTUNI_ALPHA, /* U+00f9cd: CJK COMPATIBILITY IDEOGRAPH-F9CD*/ - RTUNI_ALPHA, /* U+00f9ce: CJK COMPATIBILITY IDEOGRAPH-F9CE*/ - RTUNI_ALPHA, /* U+00f9cf: CJK COMPATIBILITY IDEOGRAPH-F9CF*/ - RTUNI_ALPHA, /* U+00f9d0: CJK COMPATIBILITY IDEOGRAPH-F9D0*/ - RTUNI_ALPHA, /* U+00f9d1: CJK COMPATIBILITY IDEOGRAPH-F9D1*/ - RTUNI_ALPHA, /* U+00f9d2: CJK COMPATIBILITY IDEOGRAPH-F9D2*/ - RTUNI_ALPHA, /* U+00f9d3: CJK COMPATIBILITY IDEOGRAPH-F9D3*/ - RTUNI_ALPHA, /* U+00f9d4: CJK COMPATIBILITY IDEOGRAPH-F9D4*/ - RTUNI_ALPHA, /* U+00f9d5: CJK COMPATIBILITY IDEOGRAPH-F9D5*/ - RTUNI_ALPHA, /* U+00f9d6: CJK COMPATIBILITY IDEOGRAPH-F9D6*/ - RTUNI_ALPHA, /* U+00f9d7: CJK COMPATIBILITY IDEOGRAPH-F9D7*/ - RTUNI_ALPHA, /* U+00f9d8: CJK COMPATIBILITY IDEOGRAPH-F9D8*/ - RTUNI_ALPHA, /* U+00f9d9: CJK COMPATIBILITY IDEOGRAPH-F9D9*/ - RTUNI_ALPHA, /* U+00f9da: CJK COMPATIBILITY IDEOGRAPH-F9DA*/ - RTUNI_ALPHA, /* U+00f9db: CJK COMPATIBILITY IDEOGRAPH-F9DB*/ - RTUNI_ALPHA, /* U+00f9dc: CJK COMPATIBILITY IDEOGRAPH-F9DC*/ - RTUNI_ALPHA, /* U+00f9dd: CJK COMPATIBILITY IDEOGRAPH-F9DD*/ - RTUNI_ALPHA, /* U+00f9de: CJK COMPATIBILITY IDEOGRAPH-F9DE*/ - RTUNI_ALPHA, /* U+00f9df: CJK COMPATIBILITY IDEOGRAPH-F9DF*/ - RTUNI_ALPHA, /* U+00f9e0: CJK COMPATIBILITY IDEOGRAPH-F9E0*/ - RTUNI_ALPHA, /* U+00f9e1: CJK COMPATIBILITY IDEOGRAPH-F9E1*/ - RTUNI_ALPHA, /* U+00f9e2: CJK COMPATIBILITY IDEOGRAPH-F9E2*/ - RTUNI_ALPHA, /* U+00f9e3: CJK COMPATIBILITY IDEOGRAPH-F9E3*/ - RTUNI_ALPHA, /* U+00f9e4: CJK COMPATIBILITY IDEOGRAPH-F9E4*/ - RTUNI_ALPHA, /* U+00f9e5: CJK COMPATIBILITY IDEOGRAPH-F9E5*/ - RTUNI_ALPHA, /* U+00f9e6: CJK COMPATIBILITY IDEOGRAPH-F9E6*/ - RTUNI_ALPHA, /* U+00f9e7: CJK COMPATIBILITY IDEOGRAPH-F9E7*/ - RTUNI_ALPHA, /* U+00f9e8: CJK COMPATIBILITY IDEOGRAPH-F9E8*/ - RTUNI_ALPHA, /* U+00f9e9: CJK COMPATIBILITY IDEOGRAPH-F9E9*/ - RTUNI_ALPHA, /* U+00f9ea: CJK COMPATIBILITY IDEOGRAPH-F9EA*/ - RTUNI_ALPHA, /* U+00f9eb: CJK COMPATIBILITY IDEOGRAPH-F9EB*/ - RTUNI_ALPHA, /* U+00f9ec: CJK COMPATIBILITY IDEOGRAPH-F9EC*/ - RTUNI_ALPHA, /* U+00f9ed: CJK COMPATIBILITY IDEOGRAPH-F9ED*/ - RTUNI_ALPHA, /* U+00f9ee: CJK COMPATIBILITY IDEOGRAPH-F9EE*/ - RTUNI_ALPHA, /* U+00f9ef: CJK COMPATIBILITY IDEOGRAPH-F9EF*/ - RTUNI_ALPHA, /* U+00f9f0: CJK COMPATIBILITY IDEOGRAPH-F9F0*/ - RTUNI_ALPHA, /* U+00f9f1: CJK COMPATIBILITY IDEOGRAPH-F9F1*/ - RTUNI_ALPHA, /* U+00f9f2: CJK COMPATIBILITY IDEOGRAPH-F9F2*/ - RTUNI_ALPHA, /* U+00f9f3: CJK COMPATIBILITY IDEOGRAPH-F9F3*/ - RTUNI_ALPHA, /* U+00f9f4: CJK COMPATIBILITY IDEOGRAPH-F9F4*/ - RTUNI_ALPHA, /* U+00f9f5: CJK COMPATIBILITY IDEOGRAPH-F9F5*/ - RTUNI_ALPHA, /* U+00f9f6: CJK COMPATIBILITY IDEOGRAPH-F9F6*/ - RTUNI_ALPHA, /* U+00f9f7: CJK COMPATIBILITY IDEOGRAPH-F9F7*/ - RTUNI_ALPHA, /* U+00f9f8: CJK COMPATIBILITY IDEOGRAPH-F9F8*/ - RTUNI_ALPHA, /* U+00f9f9: CJK COMPATIBILITY IDEOGRAPH-F9F9*/ - RTUNI_ALPHA, /* U+00f9fa: CJK COMPATIBILITY IDEOGRAPH-F9FA*/ - RTUNI_ALPHA, /* U+00f9fb: CJK COMPATIBILITY IDEOGRAPH-F9FB*/ - RTUNI_ALPHA, /* U+00f9fc: CJK COMPATIBILITY IDEOGRAPH-F9FC*/ - RTUNI_ALPHA, /* U+00f9fd: CJK COMPATIBILITY IDEOGRAPH-F9FD*/ - RTUNI_ALPHA, /* U+00f9fe: CJK COMPATIBILITY IDEOGRAPH-F9FE*/ - RTUNI_ALPHA, /* U+00f9ff: CJK COMPATIBILITY IDEOGRAPH-F9FF*/ - RTUNI_ALPHA, /* U+00fa00: CJK COMPATIBILITY IDEOGRAPH-FA00*/ - RTUNI_ALPHA, /* U+00fa01: CJK COMPATIBILITY IDEOGRAPH-FA01*/ - RTUNI_ALPHA, /* U+00fa02: CJK COMPATIBILITY IDEOGRAPH-FA02*/ - RTUNI_ALPHA, /* U+00fa03: CJK COMPATIBILITY IDEOGRAPH-FA03*/ - RTUNI_ALPHA, /* U+00fa04: CJK COMPATIBILITY IDEOGRAPH-FA04*/ - RTUNI_ALPHA, /* U+00fa05: CJK COMPATIBILITY IDEOGRAPH-FA05*/ - RTUNI_ALPHA, /* U+00fa06: CJK COMPATIBILITY IDEOGRAPH-FA06*/ - RTUNI_ALPHA, /* U+00fa07: CJK COMPATIBILITY IDEOGRAPH-FA07*/ - RTUNI_ALPHA, /* U+00fa08: CJK COMPATIBILITY IDEOGRAPH-FA08*/ - RTUNI_ALPHA, /* U+00fa09: CJK COMPATIBILITY IDEOGRAPH-FA09*/ - RTUNI_ALPHA, /* U+00fa0a: CJK COMPATIBILITY IDEOGRAPH-FA0A*/ - RTUNI_ALPHA, /* U+00fa0b: CJK COMPATIBILITY IDEOGRAPH-FA0B*/ - RTUNI_ALPHA, /* U+00fa0c: CJK COMPATIBILITY IDEOGRAPH-FA0C*/ - RTUNI_ALPHA, /* U+00fa0d: CJK COMPATIBILITY IDEOGRAPH-FA0D*/ - RTUNI_ALPHA, /* U+00fa0e: CJK COMPATIBILITY IDEOGRAPH-FA0E*/ - RTUNI_ALPHA, /* U+00fa0f: CJK COMPATIBILITY IDEOGRAPH-FA0F*/ - RTUNI_ALPHA, /* U+00fa10: CJK COMPATIBILITY IDEOGRAPH-FA10*/ - RTUNI_ALPHA, /* U+00fa11: CJK COMPATIBILITY IDEOGRAPH-FA11*/ - RTUNI_ALPHA, /* U+00fa12: CJK COMPATIBILITY IDEOGRAPH-FA12*/ - RTUNI_ALPHA, /* U+00fa13: CJK COMPATIBILITY IDEOGRAPH-FA13*/ - RTUNI_ALPHA, /* U+00fa14: CJK COMPATIBILITY IDEOGRAPH-FA14*/ - RTUNI_ALPHA, /* U+00fa15: CJK COMPATIBILITY IDEOGRAPH-FA15*/ - RTUNI_ALPHA, /* U+00fa16: CJK COMPATIBILITY IDEOGRAPH-FA16*/ - RTUNI_ALPHA, /* U+00fa17: CJK COMPATIBILITY IDEOGRAPH-FA17*/ - RTUNI_ALPHA, /* U+00fa18: CJK COMPATIBILITY IDEOGRAPH-FA18*/ - RTUNI_ALPHA, /* U+00fa19: CJK COMPATIBILITY IDEOGRAPH-FA19*/ - RTUNI_ALPHA, /* U+00fa1a: CJK COMPATIBILITY IDEOGRAPH-FA1A*/ - RTUNI_ALPHA, /* U+00fa1b: CJK COMPATIBILITY IDEOGRAPH-FA1B*/ - RTUNI_ALPHA, /* U+00fa1c: CJK COMPATIBILITY IDEOGRAPH-FA1C*/ - RTUNI_ALPHA, /* U+00fa1d: CJK COMPATIBILITY IDEOGRAPH-FA1D*/ - RTUNI_ALPHA, /* U+00fa1e: CJK COMPATIBILITY IDEOGRAPH-FA1E*/ - RTUNI_ALPHA, /* U+00fa1f: CJK COMPATIBILITY IDEOGRAPH-FA1F*/ - RTUNI_ALPHA, /* U+00fa20: CJK COMPATIBILITY IDEOGRAPH-FA20*/ - RTUNI_ALPHA, /* U+00fa21: CJK COMPATIBILITY IDEOGRAPH-FA21*/ - RTUNI_ALPHA, /* U+00fa22: CJK COMPATIBILITY IDEOGRAPH-FA22*/ - RTUNI_ALPHA, /* U+00fa23: CJK COMPATIBILITY IDEOGRAPH-FA23*/ - RTUNI_ALPHA, /* U+00fa24: CJK COMPATIBILITY IDEOGRAPH-FA24*/ - RTUNI_ALPHA, /* U+00fa25: CJK COMPATIBILITY IDEOGRAPH-FA25*/ - RTUNI_ALPHA, /* U+00fa26: CJK COMPATIBILITY IDEOGRAPH-FA26*/ - RTUNI_ALPHA, /* U+00fa27: CJK COMPATIBILITY IDEOGRAPH-FA27*/ - RTUNI_ALPHA, /* U+00fa28: CJK COMPATIBILITY IDEOGRAPH-FA28*/ - RTUNI_ALPHA, /* U+00fa29: CJK COMPATIBILITY IDEOGRAPH-FA29*/ - RTUNI_ALPHA, /* U+00fa2a: CJK COMPATIBILITY IDEOGRAPH-FA2A*/ - RTUNI_ALPHA, /* U+00fa2b: CJK COMPATIBILITY IDEOGRAPH-FA2B*/ - RTUNI_ALPHA, /* U+00fa2c: CJK COMPATIBILITY IDEOGRAPH-FA2C*/ - RTUNI_ALPHA, /* U+00fa2d: CJK COMPATIBILITY IDEOGRAPH-FA2D*/ - 0, /* U+00fa2e: */ - 0, /* U+00fa2f: */ - RTUNI_ALPHA, /* U+00fa30: CJK COMPATIBILITY IDEOGRAPH-FA30*/ - RTUNI_ALPHA, /* U+00fa31: CJK COMPATIBILITY IDEOGRAPH-FA31*/ - RTUNI_ALPHA, /* U+00fa32: CJK COMPATIBILITY IDEOGRAPH-FA32*/ - RTUNI_ALPHA, /* U+00fa33: CJK COMPATIBILITY IDEOGRAPH-FA33*/ - RTUNI_ALPHA, /* U+00fa34: CJK COMPATIBILITY IDEOGRAPH-FA34*/ - RTUNI_ALPHA, /* U+00fa35: CJK COMPATIBILITY IDEOGRAPH-FA35*/ - RTUNI_ALPHA, /* U+00fa36: CJK COMPATIBILITY IDEOGRAPH-FA36*/ - RTUNI_ALPHA, /* U+00fa37: CJK COMPATIBILITY IDEOGRAPH-FA37*/ - RTUNI_ALPHA, /* U+00fa38: CJK COMPATIBILITY IDEOGRAPH-FA38*/ - RTUNI_ALPHA, /* U+00fa39: CJK COMPATIBILITY IDEOGRAPH-FA39*/ - RTUNI_ALPHA, /* U+00fa3a: CJK COMPATIBILITY IDEOGRAPH-FA3A*/ - RTUNI_ALPHA, /* U+00fa3b: CJK COMPATIBILITY IDEOGRAPH-FA3B*/ - RTUNI_ALPHA, /* U+00fa3c: CJK COMPATIBILITY IDEOGRAPH-FA3C*/ - RTUNI_ALPHA, /* U+00fa3d: CJK COMPATIBILITY IDEOGRAPH-FA3D*/ - RTUNI_ALPHA, /* U+00fa3e: CJK COMPATIBILITY IDEOGRAPH-FA3E*/ - RTUNI_ALPHA, /* U+00fa3f: CJK COMPATIBILITY IDEOGRAPH-FA3F*/ - RTUNI_ALPHA, /* U+00fa40: CJK COMPATIBILITY IDEOGRAPH-FA40*/ - RTUNI_ALPHA, /* U+00fa41: CJK COMPATIBILITY IDEOGRAPH-FA41*/ - RTUNI_ALPHA, /* U+00fa42: CJK COMPATIBILITY IDEOGRAPH-FA42*/ - RTUNI_ALPHA, /* U+00fa43: CJK COMPATIBILITY IDEOGRAPH-FA43*/ - RTUNI_ALPHA, /* U+00fa44: CJK COMPATIBILITY IDEOGRAPH-FA44*/ - RTUNI_ALPHA, /* U+00fa45: CJK COMPATIBILITY IDEOGRAPH-FA45*/ - RTUNI_ALPHA, /* U+00fa46: CJK COMPATIBILITY IDEOGRAPH-FA46*/ - RTUNI_ALPHA, /* U+00fa47: CJK COMPATIBILITY IDEOGRAPH-FA47*/ - RTUNI_ALPHA, /* U+00fa48: CJK COMPATIBILITY IDEOGRAPH-FA48*/ - RTUNI_ALPHA, /* U+00fa49: CJK COMPATIBILITY IDEOGRAPH-FA49*/ - RTUNI_ALPHA, /* U+00fa4a: CJK COMPATIBILITY IDEOGRAPH-FA4A*/ - RTUNI_ALPHA, /* U+00fa4b: CJK COMPATIBILITY IDEOGRAPH-FA4B*/ - RTUNI_ALPHA, /* U+00fa4c: CJK COMPATIBILITY IDEOGRAPH-FA4C*/ - RTUNI_ALPHA, /* U+00fa4d: CJK COMPATIBILITY IDEOGRAPH-FA4D*/ - RTUNI_ALPHA, /* U+00fa4e: CJK COMPATIBILITY IDEOGRAPH-FA4E*/ - RTUNI_ALPHA, /* U+00fa4f: CJK COMPATIBILITY IDEOGRAPH-FA4F*/ - RTUNI_ALPHA, /* U+00fa50: CJK COMPATIBILITY IDEOGRAPH-FA50*/ - RTUNI_ALPHA, /* U+00fa51: CJK COMPATIBILITY IDEOGRAPH-FA51*/ - RTUNI_ALPHA, /* U+00fa52: CJK COMPATIBILITY IDEOGRAPH-FA52*/ - RTUNI_ALPHA, /* U+00fa53: CJK COMPATIBILITY IDEOGRAPH-FA53*/ - RTUNI_ALPHA, /* U+00fa54: CJK COMPATIBILITY IDEOGRAPH-FA54*/ - RTUNI_ALPHA, /* U+00fa55: CJK COMPATIBILITY IDEOGRAPH-FA55*/ - RTUNI_ALPHA, /* U+00fa56: CJK COMPATIBILITY IDEOGRAPH-FA56*/ - RTUNI_ALPHA, /* U+00fa57: CJK COMPATIBILITY IDEOGRAPH-FA57*/ - RTUNI_ALPHA, /* U+00fa58: CJK COMPATIBILITY IDEOGRAPH-FA58*/ - RTUNI_ALPHA, /* U+00fa59: CJK COMPATIBILITY IDEOGRAPH-FA59*/ - RTUNI_ALPHA, /* U+00fa5a: CJK COMPATIBILITY IDEOGRAPH-FA5A*/ - RTUNI_ALPHA, /* U+00fa5b: CJK COMPATIBILITY IDEOGRAPH-FA5B*/ - RTUNI_ALPHA, /* U+00fa5c: CJK COMPATIBILITY IDEOGRAPH-FA5C*/ - RTUNI_ALPHA, /* U+00fa5d: CJK COMPATIBILITY IDEOGRAPH-FA5D*/ - RTUNI_ALPHA, /* U+00fa5e: CJK COMPATIBILITY IDEOGRAPH-FA5E*/ - RTUNI_ALPHA, /* U+00fa5f: CJK COMPATIBILITY IDEOGRAPH-FA5F*/ - RTUNI_ALPHA, /* U+00fa60: CJK COMPATIBILITY IDEOGRAPH-FA60*/ - RTUNI_ALPHA, /* U+00fa61: CJK COMPATIBILITY IDEOGRAPH-FA61*/ - RTUNI_ALPHA, /* U+00fa62: CJK COMPATIBILITY IDEOGRAPH-FA62*/ - RTUNI_ALPHA, /* U+00fa63: CJK COMPATIBILITY IDEOGRAPH-FA63*/ - RTUNI_ALPHA, /* U+00fa64: CJK COMPATIBILITY IDEOGRAPH-FA64*/ - RTUNI_ALPHA, /* U+00fa65: CJK COMPATIBILITY IDEOGRAPH-FA65*/ - RTUNI_ALPHA, /* U+00fa66: CJK COMPATIBILITY IDEOGRAPH-FA66*/ - RTUNI_ALPHA, /* U+00fa67: CJK COMPATIBILITY IDEOGRAPH-FA67*/ - RTUNI_ALPHA, /* U+00fa68: CJK COMPATIBILITY IDEOGRAPH-FA68*/ - RTUNI_ALPHA, /* U+00fa69: CJK COMPATIBILITY IDEOGRAPH-FA69*/ - RTUNI_ALPHA, /* U+00fa6a: CJK COMPATIBILITY IDEOGRAPH-FA6A*/ - 0, /* U+00fa6b: */ - 0, /* U+00fa6c: */ - 0, /* U+00fa6d: */ - 0, /* U+00fa6e: */ - 0, /* U+00fa6f: */ - RTUNI_ALPHA, /* U+00fa70: CJK COMPATIBILITY IDEOGRAPH-FA70*/ - RTUNI_ALPHA, /* U+00fa71: CJK COMPATIBILITY IDEOGRAPH-FA71*/ - RTUNI_ALPHA, /* U+00fa72: CJK COMPATIBILITY IDEOGRAPH-FA72*/ - RTUNI_ALPHA, /* U+00fa73: CJK COMPATIBILITY IDEOGRAPH-FA73*/ - RTUNI_ALPHA, /* U+00fa74: CJK COMPATIBILITY IDEOGRAPH-FA74*/ - RTUNI_ALPHA, /* U+00fa75: CJK COMPATIBILITY IDEOGRAPH-FA75*/ - RTUNI_ALPHA, /* U+00fa76: CJK COMPATIBILITY IDEOGRAPH-FA76*/ - RTUNI_ALPHA, /* U+00fa77: CJK COMPATIBILITY IDEOGRAPH-FA77*/ - RTUNI_ALPHA, /* U+00fa78: CJK COMPATIBILITY IDEOGRAPH-FA78*/ - RTUNI_ALPHA, /* U+00fa79: CJK COMPATIBILITY IDEOGRAPH-FA79*/ - RTUNI_ALPHA, /* U+00fa7a: CJK COMPATIBILITY IDEOGRAPH-FA7A*/ - RTUNI_ALPHA, /* U+00fa7b: CJK COMPATIBILITY IDEOGRAPH-FA7B*/ - RTUNI_ALPHA, /* U+00fa7c: CJK COMPATIBILITY IDEOGRAPH-FA7C*/ - RTUNI_ALPHA, /* U+00fa7d: CJK COMPATIBILITY IDEOGRAPH-FA7D*/ - RTUNI_ALPHA, /* U+00fa7e: CJK COMPATIBILITY IDEOGRAPH-FA7E*/ - RTUNI_ALPHA, /* U+00fa7f: CJK COMPATIBILITY IDEOGRAPH-FA7F*/ - RTUNI_ALPHA, /* U+00fa80: CJK COMPATIBILITY IDEOGRAPH-FA80*/ - RTUNI_ALPHA, /* U+00fa81: CJK COMPATIBILITY IDEOGRAPH-FA81*/ - RTUNI_ALPHA, /* U+00fa82: CJK COMPATIBILITY IDEOGRAPH-FA82*/ - RTUNI_ALPHA, /* U+00fa83: CJK COMPATIBILITY IDEOGRAPH-FA83*/ - RTUNI_ALPHA, /* U+00fa84: CJK COMPATIBILITY IDEOGRAPH-FA84*/ - RTUNI_ALPHA, /* U+00fa85: CJK COMPATIBILITY IDEOGRAPH-FA85*/ - RTUNI_ALPHA, /* U+00fa86: CJK COMPATIBILITY IDEOGRAPH-FA86*/ - RTUNI_ALPHA, /* U+00fa87: CJK COMPATIBILITY IDEOGRAPH-FA87*/ - RTUNI_ALPHA, /* U+00fa88: CJK COMPATIBILITY IDEOGRAPH-FA88*/ - RTUNI_ALPHA, /* U+00fa89: CJK COMPATIBILITY IDEOGRAPH-FA89*/ - RTUNI_ALPHA, /* U+00fa8a: CJK COMPATIBILITY IDEOGRAPH-FA8A*/ - RTUNI_ALPHA, /* U+00fa8b: CJK COMPATIBILITY IDEOGRAPH-FA8B*/ - RTUNI_ALPHA, /* U+00fa8c: CJK COMPATIBILITY IDEOGRAPH-FA8C*/ - RTUNI_ALPHA, /* U+00fa8d: CJK COMPATIBILITY IDEOGRAPH-FA8D*/ - RTUNI_ALPHA, /* U+00fa8e: CJK COMPATIBILITY IDEOGRAPH-FA8E*/ - RTUNI_ALPHA, /* U+00fa8f: CJK COMPATIBILITY IDEOGRAPH-FA8F*/ - RTUNI_ALPHA, /* U+00fa90: CJK COMPATIBILITY IDEOGRAPH-FA90*/ - RTUNI_ALPHA, /* U+00fa91: CJK COMPATIBILITY IDEOGRAPH-FA91*/ - RTUNI_ALPHA, /* U+00fa92: CJK COMPATIBILITY IDEOGRAPH-FA92*/ - RTUNI_ALPHA, /* U+00fa93: CJK COMPATIBILITY IDEOGRAPH-FA93*/ - RTUNI_ALPHA, /* U+00fa94: CJK COMPATIBILITY IDEOGRAPH-FA94*/ - RTUNI_ALPHA, /* U+00fa95: CJK COMPATIBILITY IDEOGRAPH-FA95*/ - RTUNI_ALPHA, /* U+00fa96: CJK COMPATIBILITY IDEOGRAPH-FA96*/ - RTUNI_ALPHA, /* U+00fa97: CJK COMPATIBILITY IDEOGRAPH-FA97*/ - RTUNI_ALPHA, /* U+00fa98: CJK COMPATIBILITY IDEOGRAPH-FA98*/ - RTUNI_ALPHA, /* U+00fa99: CJK COMPATIBILITY IDEOGRAPH-FA99*/ - RTUNI_ALPHA, /* U+00fa9a: CJK COMPATIBILITY IDEOGRAPH-FA9A*/ - RTUNI_ALPHA, /* U+00fa9b: CJK COMPATIBILITY IDEOGRAPH-FA9B*/ - RTUNI_ALPHA, /* U+00fa9c: CJK COMPATIBILITY IDEOGRAPH-FA9C*/ - RTUNI_ALPHA, /* U+00fa9d: CJK COMPATIBILITY IDEOGRAPH-FA9D*/ - RTUNI_ALPHA, /* U+00fa9e: CJK COMPATIBILITY IDEOGRAPH-FA9E*/ - RTUNI_ALPHA, /* U+00fa9f: CJK COMPATIBILITY IDEOGRAPH-FA9F*/ - RTUNI_ALPHA, /* U+00faa0: CJK COMPATIBILITY IDEOGRAPH-FAA0*/ - RTUNI_ALPHA, /* U+00faa1: CJK COMPATIBILITY IDEOGRAPH-FAA1*/ - RTUNI_ALPHA, /* U+00faa2: CJK COMPATIBILITY IDEOGRAPH-FAA2*/ - RTUNI_ALPHA, /* U+00faa3: CJK COMPATIBILITY IDEOGRAPH-FAA3*/ - RTUNI_ALPHA, /* U+00faa4: CJK COMPATIBILITY IDEOGRAPH-FAA4*/ - RTUNI_ALPHA, /* U+00faa5: CJK COMPATIBILITY IDEOGRAPH-FAA5*/ - RTUNI_ALPHA, /* U+00faa6: CJK COMPATIBILITY IDEOGRAPH-FAA6*/ - RTUNI_ALPHA, /* U+00faa7: CJK COMPATIBILITY IDEOGRAPH-FAA7*/ - RTUNI_ALPHA, /* U+00faa8: CJK COMPATIBILITY IDEOGRAPH-FAA8*/ - RTUNI_ALPHA, /* U+00faa9: CJK COMPATIBILITY IDEOGRAPH-FAA9*/ - RTUNI_ALPHA, /* U+00faaa: CJK COMPATIBILITY IDEOGRAPH-FAAA*/ - RTUNI_ALPHA, /* U+00faab: CJK COMPATIBILITY IDEOGRAPH-FAAB*/ - RTUNI_ALPHA, /* U+00faac: CJK COMPATIBILITY IDEOGRAPH-FAAC*/ - RTUNI_ALPHA, /* U+00faad: CJK COMPATIBILITY IDEOGRAPH-FAAD*/ - RTUNI_ALPHA, /* U+00faae: CJK COMPATIBILITY IDEOGRAPH-FAAE*/ - RTUNI_ALPHA, /* U+00faaf: CJK COMPATIBILITY IDEOGRAPH-FAAF*/ - RTUNI_ALPHA, /* U+00fab0: CJK COMPATIBILITY IDEOGRAPH-FAB0*/ - RTUNI_ALPHA, /* U+00fab1: CJK COMPATIBILITY IDEOGRAPH-FAB1*/ - RTUNI_ALPHA, /* U+00fab2: CJK COMPATIBILITY IDEOGRAPH-FAB2*/ - RTUNI_ALPHA, /* U+00fab3: CJK COMPATIBILITY IDEOGRAPH-FAB3*/ - RTUNI_ALPHA, /* U+00fab4: CJK COMPATIBILITY IDEOGRAPH-FAB4*/ - RTUNI_ALPHA, /* U+00fab5: CJK COMPATIBILITY IDEOGRAPH-FAB5*/ - RTUNI_ALPHA, /* U+00fab6: CJK COMPATIBILITY IDEOGRAPH-FAB6*/ - RTUNI_ALPHA, /* U+00fab7: CJK COMPATIBILITY IDEOGRAPH-FAB7*/ - RTUNI_ALPHA, /* U+00fab8: CJK COMPATIBILITY IDEOGRAPH-FAB8*/ - RTUNI_ALPHA, /* U+00fab9: CJK COMPATIBILITY IDEOGRAPH-FAB9*/ - RTUNI_ALPHA, /* U+00faba: CJK COMPATIBILITY IDEOGRAPH-FABA*/ - RTUNI_ALPHA, /* U+00fabb: CJK COMPATIBILITY IDEOGRAPH-FABB*/ - RTUNI_ALPHA, /* U+00fabc: CJK COMPATIBILITY IDEOGRAPH-FABC*/ - RTUNI_ALPHA, /* U+00fabd: CJK COMPATIBILITY IDEOGRAPH-FABD*/ - RTUNI_ALPHA, /* U+00fabe: CJK COMPATIBILITY IDEOGRAPH-FABE*/ - RTUNI_ALPHA, /* U+00fabf: CJK COMPATIBILITY IDEOGRAPH-FABF*/ - RTUNI_ALPHA, /* U+00fac0: CJK COMPATIBILITY IDEOGRAPH-FAC0*/ - RTUNI_ALPHA, /* U+00fac1: CJK COMPATIBILITY IDEOGRAPH-FAC1*/ - RTUNI_ALPHA, /* U+00fac2: CJK COMPATIBILITY IDEOGRAPH-FAC2*/ - RTUNI_ALPHA, /* U+00fac3: CJK COMPATIBILITY IDEOGRAPH-FAC3*/ - RTUNI_ALPHA, /* U+00fac4: CJK COMPATIBILITY IDEOGRAPH-FAC4*/ - RTUNI_ALPHA, /* U+00fac5: CJK COMPATIBILITY IDEOGRAPH-FAC5*/ - RTUNI_ALPHA, /* U+00fac6: CJK COMPATIBILITY IDEOGRAPH-FAC6*/ - RTUNI_ALPHA, /* U+00fac7: CJK COMPATIBILITY IDEOGRAPH-FAC7*/ - RTUNI_ALPHA, /* U+00fac8: CJK COMPATIBILITY IDEOGRAPH-FAC8*/ - RTUNI_ALPHA, /* U+00fac9: CJK COMPATIBILITY IDEOGRAPH-FAC9*/ - RTUNI_ALPHA, /* U+00faca: CJK COMPATIBILITY IDEOGRAPH-FACA*/ - RTUNI_ALPHA, /* U+00facb: CJK COMPATIBILITY IDEOGRAPH-FACB*/ - RTUNI_ALPHA, /* U+00facc: CJK COMPATIBILITY IDEOGRAPH-FACC*/ - RTUNI_ALPHA, /* U+00facd: CJK COMPATIBILITY IDEOGRAPH-FACD*/ - RTUNI_ALPHA, /* U+00face: CJK COMPATIBILITY IDEOGRAPH-FACE*/ - RTUNI_ALPHA, /* U+00facf: CJK COMPATIBILITY IDEOGRAPH-FACF*/ - RTUNI_ALPHA, /* U+00fad0: CJK COMPATIBILITY IDEOGRAPH-FAD0*/ - RTUNI_ALPHA, /* U+00fad1: CJK COMPATIBILITY IDEOGRAPH-FAD1*/ - RTUNI_ALPHA, /* U+00fad2: CJK COMPATIBILITY IDEOGRAPH-FAD2*/ - RTUNI_ALPHA, /* U+00fad3: CJK COMPATIBILITY IDEOGRAPH-FAD3*/ - RTUNI_ALPHA, /* U+00fad4: CJK COMPATIBILITY IDEOGRAPH-FAD4*/ - RTUNI_ALPHA, /* U+00fad5: CJK COMPATIBILITY IDEOGRAPH-FAD5*/ - RTUNI_ALPHA, /* U+00fad6: CJK COMPATIBILITY IDEOGRAPH-FAD6*/ - RTUNI_ALPHA, /* U+00fad7: CJK COMPATIBILITY IDEOGRAPH-FAD7*/ - RTUNI_ALPHA, /* U+00fad8: CJK COMPATIBILITY IDEOGRAPH-FAD8*/ - RTUNI_ALPHA, /* U+00fad9: CJK COMPATIBILITY IDEOGRAPH-FAD9*/ - 0, /* U+00fada: */ - 0, /* U+00fadb: */ - 0, /* U+00fadc: */ - 0, /* U+00fadd: */ - 0, /* U+00fade: */ - 0, /* U+00fadf: */ - 0, /* U+00fae0: */ - 0, /* U+00fae1: */ - 0, /* U+00fae2: */ - 0, /* U+00fae3: */ - 0, /* U+00fae4: */ - 0, /* U+00fae5: */ - 0, /* U+00fae6: */ - 0, /* U+00fae7: */ - 0, /* U+00fae8: */ - 0, /* U+00fae9: */ - 0, /* U+00faea: */ - 0, /* U+00faeb: */ - 0, /* U+00faec: */ - 0, /* U+00faed: */ - 0, /* U+00faee: */ - 0, /* U+00faef: */ - 0, /* U+00faf0: */ - 0, /* U+00faf1: */ - 0, /* U+00faf2: */ - 0, /* U+00faf3: */ - 0, /* U+00faf4: */ - 0, /* U+00faf5: */ - 0, /* U+00faf6: */ - 0, /* U+00faf7: */ - 0, /* U+00faf8: */ - 0, /* U+00faf9: */ - 0, /* U+00fafa: */ - 0, /* U+00fafb: */ - 0, /* U+00fafc: */ - 0, /* U+00fafd: */ - 0, /* U+00fafe: */ - 0, /* U+00faff: */ - RTUNI_ALPHA | RTUNI_LOWER, /* U+00fb00: LATIN SMALL LIGATURE FF*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+00fb01: LATIN SMALL LIGATURE FI*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+00fb02: LATIN SMALL LIGATURE FL*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+00fb03: LATIN SMALL LIGATURE FFI*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+00fb04: LATIN SMALL LIGATURE FFL*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+00fb05: LATIN SMALL LIGATURE LONG S T*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+00fb06: LATIN SMALL LIGATURE ST*/ - 0, /* U+00fb07: */ - 0, /* U+00fb08: */ - 0, /* U+00fb09: */ - 0, /* U+00fb0a: */ - 0, /* U+00fb0b: */ - 0, /* U+00fb0c: */ - 0, /* U+00fb0d: */ - 0, /* U+00fb0e: */ - 0, /* U+00fb0f: */ - 0, /* U+00fb10: */ - 0, /* U+00fb11: */ - 0, /* U+00fb12: */ - RTUNI_ALPHA | RTUNI_LOWER, /* U+00fb13: ARMENIAN SMALL LIGATURE MEN NOW*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+00fb14: ARMENIAN SMALL LIGATURE MEN ECH*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+00fb15: ARMENIAN SMALL LIGATURE MEN INI*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+00fb16: ARMENIAN SMALL LIGATURE VEW NOW*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+00fb17: ARMENIAN SMALL LIGATURE MEN XEH*/ - 0, /* U+00fb18: */ - 0, /* U+00fb19: */ - 0, /* U+00fb1a: */ - 0, /* U+00fb1b: */ - 0, /* U+00fb1c: */ - RTUNI_ALPHA, /* U+00fb1d: HEBREW LETTER YOD WITH HIRIQ*/ - RTUNI_ALPHA, /* U+00fb1e: HEBREW POINT JUDEO-SPANISH VARIKA*/ - RTUNI_ALPHA, /* U+00fb1f: HEBREW LIGATURE YIDDISH YOD YOD PATAH*/ - RTUNI_ALPHA, /* U+00fb20: HEBREW LETTER ALTERNATIVE AYIN*/ - RTUNI_ALPHA, /* U+00fb21: HEBREW LETTER WIDE ALEF*/ - RTUNI_ALPHA, /* U+00fb22: HEBREW LETTER WIDE DALET*/ - RTUNI_ALPHA, /* U+00fb23: HEBREW LETTER WIDE HE*/ - RTUNI_ALPHA, /* U+00fb24: HEBREW LETTER WIDE KAF*/ - RTUNI_ALPHA, /* U+00fb25: HEBREW LETTER WIDE LAMED*/ - RTUNI_ALPHA, /* U+00fb26: HEBREW LETTER WIDE FINAL MEM*/ - RTUNI_ALPHA, /* U+00fb27: HEBREW LETTER WIDE RESH*/ - RTUNI_ALPHA, /* U+00fb28: HEBREW LETTER WIDE TAV*/ - 0, /* U+00fb29: HEBREW LETTER ALTERNATIVE PLUS SIGN*/ - RTUNI_ALPHA, /* U+00fb2a: HEBREW LETTER SHIN WITH SHIN DOT*/ - RTUNI_ALPHA, /* U+00fb2b: HEBREW LETTER SHIN WITH SIN DOT*/ - RTUNI_ALPHA, /* U+00fb2c: HEBREW LETTER SHIN WITH DAGESH AND SHIN DOT*/ - RTUNI_ALPHA, /* U+00fb2d: HEBREW LETTER SHIN WITH DAGESH AND SIN DOT*/ - RTUNI_ALPHA, /* U+00fb2e: HEBREW LETTER ALEF WITH PATAH*/ - RTUNI_ALPHA, /* U+00fb2f: HEBREW LETTER ALEF WITH QAMATS*/ - RTUNI_ALPHA, /* U+00fb30: HEBREW LETTER ALEF WITH MAPIQ*/ - RTUNI_ALPHA, /* U+00fb31: HEBREW LETTER BET WITH DAGESH*/ - RTUNI_ALPHA, /* U+00fb32: HEBREW LETTER GIMEL WITH DAGESH*/ - RTUNI_ALPHA, /* U+00fb33: HEBREW LETTER DALET WITH DAGESH*/ - RTUNI_ALPHA, /* U+00fb34: HEBREW LETTER HE WITH MAPIQ*/ - RTUNI_ALPHA, /* U+00fb35: HEBREW LETTER VAV WITH DAGESH*/ - RTUNI_ALPHA, /* U+00fb36: HEBREW LETTER ZAYIN WITH DAGESH*/ - 0, /* U+00fb37: */ - RTUNI_ALPHA, /* U+00fb38: HEBREW LETTER TET WITH DAGESH*/ - RTUNI_ALPHA, /* U+00fb39: HEBREW LETTER YOD WITH DAGESH*/ - RTUNI_ALPHA, /* U+00fb3a: HEBREW LETTER FINAL KAF WITH DAGESH*/ - RTUNI_ALPHA, /* U+00fb3b: HEBREW LETTER KAF WITH DAGESH*/ - RTUNI_ALPHA, /* U+00fb3c: HEBREW LETTER LAMED WITH DAGESH*/ - 0, /* U+00fb3d: */ - RTUNI_ALPHA, /* U+00fb3e: HEBREW LETTER MEM WITH DAGESH*/ - 0, /* U+00fb3f: */ - RTUNI_ALPHA, /* U+00fb40: HEBREW LETTER NUN WITH DAGESH*/ - RTUNI_ALPHA, /* U+00fb41: HEBREW LETTER SAMEKH WITH DAGESH*/ - 0, /* U+00fb42: */ - RTUNI_ALPHA, /* U+00fb43: HEBREW LETTER FINAL PE WITH DAGESH*/ - RTUNI_ALPHA, /* U+00fb44: HEBREW LETTER PE WITH DAGESH*/ - 0, /* U+00fb45: */ - RTUNI_ALPHA, /* U+00fb46: HEBREW LETTER TSADI WITH DAGESH*/ - RTUNI_ALPHA, /* U+00fb47: HEBREW LETTER QOF WITH DAGESH*/ - RTUNI_ALPHA, /* U+00fb48: HEBREW LETTER RESH WITH DAGESH*/ - RTUNI_ALPHA, /* U+00fb49: HEBREW LETTER SHIN WITH DAGESH*/ - RTUNI_ALPHA, /* U+00fb4a: HEBREW LETTER TAV WITH DAGESH*/ - RTUNI_ALPHA, /* U+00fb4b: HEBREW LETTER VAV WITH HOLAM*/ - RTUNI_ALPHA, /* U+00fb4c: HEBREW LETTER BET WITH RAFE*/ - RTUNI_ALPHA, /* U+00fb4d: HEBREW LETTER KAF WITH RAFE*/ - RTUNI_ALPHA, /* U+00fb4e: HEBREW LETTER PE WITH RAFE*/ - RTUNI_ALPHA, /* U+00fb4f: HEBREW LIGATURE ALEF LAMED*/ - RTUNI_ALPHA, /* U+00fb50: ARABIC LETTER ALEF WASLA ISOLATED FORM*/ - RTUNI_ALPHA, /* U+00fb51: ARABIC LETTER ALEF WASLA FINAL FORM*/ - RTUNI_ALPHA, /* U+00fb52: ARABIC LETTER BEEH ISOLATED FORM*/ - RTUNI_ALPHA, /* U+00fb53: ARABIC LETTER BEEH FINAL FORM*/ - RTUNI_ALPHA, /* U+00fb54: ARABIC LETTER BEEH INITIAL FORM*/ - RTUNI_ALPHA, /* U+00fb55: ARABIC LETTER BEEH MEDIAL FORM*/ - RTUNI_ALPHA, /* U+00fb56: ARABIC LETTER PEH ISOLATED FORM*/ - RTUNI_ALPHA, /* U+00fb57: ARABIC LETTER PEH FINAL FORM*/ - RTUNI_ALPHA, /* U+00fb58: ARABIC LETTER PEH INITIAL FORM*/ - RTUNI_ALPHA, /* U+00fb59: ARABIC LETTER PEH MEDIAL FORM*/ - RTUNI_ALPHA, /* U+00fb5a: ARABIC LETTER BEHEH ISOLATED FORM*/ - RTUNI_ALPHA, /* U+00fb5b: ARABIC LETTER BEHEH FINAL FORM*/ - RTUNI_ALPHA, /* U+00fb5c: ARABIC LETTER BEHEH INITIAL FORM*/ - RTUNI_ALPHA, /* U+00fb5d: ARABIC LETTER BEHEH MEDIAL FORM*/ - RTUNI_ALPHA, /* U+00fb5e: ARABIC LETTER TTEHEH ISOLATED FORM*/ - RTUNI_ALPHA, /* U+00fb5f: ARABIC LETTER TTEHEH FINAL FORM*/ - RTUNI_ALPHA, /* U+00fb60: ARABIC LETTER TTEHEH INITIAL FORM*/ - RTUNI_ALPHA, /* U+00fb61: ARABIC LETTER TTEHEH MEDIAL FORM*/ - RTUNI_ALPHA, /* U+00fb62: ARABIC LETTER TEHEH ISOLATED FORM*/ - RTUNI_ALPHA, /* U+00fb63: ARABIC LETTER TEHEH FINAL FORM*/ - RTUNI_ALPHA, /* U+00fb64: ARABIC LETTER TEHEH INITIAL FORM*/ - RTUNI_ALPHA, /* U+00fb65: ARABIC LETTER TEHEH MEDIAL FORM*/ - RTUNI_ALPHA, /* U+00fb66: ARABIC LETTER TTEH ISOLATED FORM*/ - RTUNI_ALPHA, /* U+00fb67: ARABIC LETTER TTEH FINAL FORM*/ - RTUNI_ALPHA, /* U+00fb68: ARABIC LETTER TTEH INITIAL FORM*/ - RTUNI_ALPHA, /* U+00fb69: ARABIC LETTER TTEH MEDIAL FORM*/ - RTUNI_ALPHA, /* U+00fb6a: ARABIC LETTER VEH ISOLATED FORM*/ - RTUNI_ALPHA, /* U+00fb6b: ARABIC LETTER VEH FINAL FORM*/ - RTUNI_ALPHA, /* U+00fb6c: ARABIC LETTER VEH INITIAL FORM*/ - RTUNI_ALPHA, /* U+00fb6d: ARABIC LETTER VEH MEDIAL FORM*/ - RTUNI_ALPHA, /* U+00fb6e: ARABIC LETTER PEHEH ISOLATED FORM*/ - RTUNI_ALPHA, /* U+00fb6f: ARABIC LETTER PEHEH FINAL FORM*/ - RTUNI_ALPHA, /* U+00fb70: ARABIC LETTER PEHEH INITIAL FORM*/ - RTUNI_ALPHA, /* U+00fb71: ARABIC LETTER PEHEH MEDIAL FORM*/ - RTUNI_ALPHA, /* U+00fb72: ARABIC LETTER DYEH ISOLATED FORM*/ - RTUNI_ALPHA, /* U+00fb73: ARABIC LETTER DYEH FINAL FORM*/ - RTUNI_ALPHA, /* U+00fb74: ARABIC LETTER DYEH INITIAL FORM*/ - RTUNI_ALPHA, /* U+00fb75: ARABIC LETTER DYEH MEDIAL FORM*/ - RTUNI_ALPHA, /* U+00fb76: ARABIC LETTER NYEH ISOLATED FORM*/ - RTUNI_ALPHA, /* U+00fb77: ARABIC LETTER NYEH FINAL FORM*/ - RTUNI_ALPHA, /* U+00fb78: ARABIC LETTER NYEH INITIAL FORM*/ - RTUNI_ALPHA, /* U+00fb79: ARABIC LETTER NYEH MEDIAL FORM*/ - RTUNI_ALPHA, /* U+00fb7a: ARABIC LETTER TCHEH ISOLATED FORM*/ - RTUNI_ALPHA, /* U+00fb7b: ARABIC LETTER TCHEH FINAL FORM*/ - RTUNI_ALPHA, /* U+00fb7c: ARABIC LETTER TCHEH INITIAL FORM*/ - RTUNI_ALPHA, /* U+00fb7d: ARABIC LETTER TCHEH MEDIAL FORM*/ - RTUNI_ALPHA, /* U+00fb7e: ARABIC LETTER TCHEHEH ISOLATED FORM*/ - RTUNI_ALPHA, /* U+00fb7f: ARABIC LETTER TCHEHEH FINAL FORM*/ - RTUNI_ALPHA, /* U+00fb80: ARABIC LETTER TCHEHEH INITIAL FORM*/ - RTUNI_ALPHA, /* U+00fb81: ARABIC LETTER TCHEHEH MEDIAL FORM*/ - RTUNI_ALPHA, /* U+00fb82: ARABIC LETTER DDAHAL ISOLATED FORM*/ - RTUNI_ALPHA, /* U+00fb83: ARABIC LETTER DDAHAL FINAL FORM*/ - RTUNI_ALPHA, /* U+00fb84: ARABIC LETTER DAHAL ISOLATED FORM*/ - RTUNI_ALPHA, /* U+00fb85: ARABIC LETTER DAHAL FINAL FORM*/ - RTUNI_ALPHA, /* U+00fb86: ARABIC LETTER DUL ISOLATED FORM*/ - RTUNI_ALPHA, /* U+00fb87: ARABIC LETTER DUL FINAL FORM*/ - RTUNI_ALPHA, /* U+00fb88: ARABIC LETTER DDAL ISOLATED FORM*/ - RTUNI_ALPHA, /* U+00fb89: ARABIC LETTER DDAL FINAL FORM*/ - RTUNI_ALPHA, /* U+00fb8a: ARABIC LETTER JEH ISOLATED FORM*/ - RTUNI_ALPHA, /* U+00fb8b: ARABIC LETTER JEH FINAL FORM*/ - RTUNI_ALPHA, /* U+00fb8c: ARABIC LETTER RREH ISOLATED FORM*/ - RTUNI_ALPHA, /* U+00fb8d: ARABIC LETTER RREH FINAL FORM*/ - RTUNI_ALPHA, /* U+00fb8e: ARABIC LETTER KEHEH ISOLATED FORM*/ - RTUNI_ALPHA, /* U+00fb8f: ARABIC LETTER KEHEH FINAL FORM*/ - RTUNI_ALPHA, /* U+00fb90: ARABIC LETTER KEHEH INITIAL FORM*/ - RTUNI_ALPHA, /* U+00fb91: ARABIC LETTER KEHEH MEDIAL FORM*/ - RTUNI_ALPHA, /* U+00fb92: ARABIC LETTER GAF ISOLATED FORM*/ - RTUNI_ALPHA, /* U+00fb93: ARABIC LETTER GAF FINAL FORM*/ - RTUNI_ALPHA, /* U+00fb94: ARABIC LETTER GAF INITIAL FORM*/ - RTUNI_ALPHA, /* U+00fb95: ARABIC LETTER GAF MEDIAL FORM*/ - RTUNI_ALPHA, /* U+00fb96: ARABIC LETTER GUEH ISOLATED FORM*/ - RTUNI_ALPHA, /* U+00fb97: ARABIC LETTER GUEH FINAL FORM*/ - RTUNI_ALPHA, /* U+00fb98: ARABIC LETTER GUEH INITIAL FORM*/ - RTUNI_ALPHA, /* U+00fb99: ARABIC LETTER GUEH MEDIAL FORM*/ - RTUNI_ALPHA, /* U+00fb9a: ARABIC LETTER NGOEH ISOLATED FORM*/ - RTUNI_ALPHA, /* U+00fb9b: ARABIC LETTER NGOEH FINAL FORM*/ - RTUNI_ALPHA, /* U+00fb9c: ARABIC LETTER NGOEH INITIAL FORM*/ - RTUNI_ALPHA, /* U+00fb9d: ARABIC LETTER NGOEH MEDIAL FORM*/ - RTUNI_ALPHA, /* U+00fb9e: ARABIC LETTER NOON GHUNNA ISOLATED FORM*/ - RTUNI_ALPHA, /* U+00fb9f: ARABIC LETTER NOON GHUNNA FINAL FORM*/ - RTUNI_ALPHA, /* U+00fba0: ARABIC LETTER RNOON ISOLATED FORM*/ - RTUNI_ALPHA, /* U+00fba1: ARABIC LETTER RNOON FINAL FORM*/ - RTUNI_ALPHA, /* U+00fba2: ARABIC LETTER RNOON INITIAL FORM*/ - RTUNI_ALPHA, /* U+00fba3: ARABIC LETTER RNOON MEDIAL FORM*/ - RTUNI_ALPHA, /* U+00fba4: ARABIC LETTER HEH WITH YEH ABOVE ISOLATED FORM*/ - RTUNI_ALPHA, /* U+00fba5: ARABIC LETTER HEH WITH YEH ABOVE FINAL FORM*/ - RTUNI_ALPHA, /* U+00fba6: ARABIC LETTER HEH GOAL ISOLATED FORM*/ - RTUNI_ALPHA, /* U+00fba7: ARABIC LETTER HEH GOAL FINAL FORM*/ - RTUNI_ALPHA, /* U+00fba8: ARABIC LETTER HEH GOAL INITIAL FORM*/ - RTUNI_ALPHA, /* U+00fba9: ARABIC LETTER HEH GOAL MEDIAL FORM*/ - RTUNI_ALPHA, /* U+00fbaa: ARABIC LETTER HEH DOACHASHMEE ISOLATED FORM*/ - RTUNI_ALPHA, /* U+00fbab: ARABIC LETTER HEH DOACHASHMEE FINAL FORM*/ - RTUNI_ALPHA, /* U+00fbac: ARABIC LETTER HEH DOACHASHMEE INITIAL FORM*/ - RTUNI_ALPHA, /* U+00fbad: ARABIC LETTER HEH DOACHASHMEE MEDIAL FORM*/ - RTUNI_ALPHA, /* U+00fbae: ARABIC LETTER YEH BARREE ISOLATED FORM*/ - RTUNI_ALPHA, /* U+00fbaf: ARABIC LETTER YEH BARREE FINAL FORM*/ - RTUNI_ALPHA, /* U+00fbb0: ARABIC LETTER YEH BARREE WITH HAMZA ABOVE ISOLATED FORM*/ - RTUNI_ALPHA, /* U+00fbb1: ARABIC LETTER YEH BARREE WITH HAMZA ABOVE FINAL FORM*/ - 0, /* U+00fbb2: */ - 0, /* U+00fbb3: */ - 0, /* U+00fbb4: */ - 0, /* U+00fbb5: */ - 0, /* U+00fbb6: */ - 0, /* U+00fbb7: */ - 0, /* U+00fbb8: */ - 0, /* U+00fbb9: */ - 0, /* U+00fbba: */ - 0, /* U+00fbbb: */ - 0, /* U+00fbbc: */ - 0, /* U+00fbbd: */ - 0, /* U+00fbbe: */ - 0, /* U+00fbbf: */ - 0, /* U+00fbc0: */ - 0, /* U+00fbc1: */ - 0, /* U+00fbc2: */ - 0, /* U+00fbc3: */ - 0, /* U+00fbc4: */ - 0, /* U+00fbc5: */ - 0, /* U+00fbc6: */ - 0, /* U+00fbc7: */ - 0, /* U+00fbc8: */ - 0, /* U+00fbc9: */ - 0, /* U+00fbca: */ - 0, /* U+00fbcb: */ - 0, /* U+00fbcc: */ - 0, /* U+00fbcd: */ - 0, /* U+00fbce: */ - 0, /* U+00fbcf: */ - 0, /* U+00fbd0: */ - 0, /* U+00fbd1: */ - 0, /* U+00fbd2: */ - RTUNI_ALPHA, /* U+00fbd3: ARABIC LETTER NG ISOLATED FORM*/ - RTUNI_ALPHA, /* U+00fbd4: ARABIC LETTER NG FINAL FORM*/ - RTUNI_ALPHA, /* U+00fbd5: ARABIC LETTER NG INITIAL FORM*/ - RTUNI_ALPHA, /* U+00fbd6: ARABIC LETTER NG MEDIAL FORM*/ - RTUNI_ALPHA, /* U+00fbd7: ARABIC LETTER U ISOLATED FORM*/ - RTUNI_ALPHA, /* U+00fbd8: ARABIC LETTER U FINAL FORM*/ - RTUNI_ALPHA, /* U+00fbd9: ARABIC LETTER OE ISOLATED FORM*/ - RTUNI_ALPHA, /* U+00fbda: ARABIC LETTER OE FINAL FORM*/ - RTUNI_ALPHA, /* U+00fbdb: ARABIC LETTER YU ISOLATED FORM*/ - RTUNI_ALPHA, /* U+00fbdc: ARABIC LETTER YU FINAL FORM*/ - RTUNI_ALPHA, /* U+00fbdd: ARABIC LETTER U WITH HAMZA ABOVE ISOLATED FORM*/ - RTUNI_ALPHA, /* U+00fbde: ARABIC LETTER VE ISOLATED FORM*/ - RTUNI_ALPHA, /* U+00fbdf: ARABIC LETTER VE FINAL FORM*/ - RTUNI_ALPHA, /* U+00fbe0: ARABIC LETTER KIRGHIZ OE ISOLATED FORM*/ - RTUNI_ALPHA, /* U+00fbe1: ARABIC LETTER KIRGHIZ OE FINAL FORM*/ - RTUNI_ALPHA, /* U+00fbe2: ARABIC LETTER KIRGHIZ YU ISOLATED FORM*/ - RTUNI_ALPHA, /* U+00fbe3: ARABIC LETTER KIRGHIZ YU FINAL FORM*/ - RTUNI_ALPHA, /* U+00fbe4: ARABIC LETTER E ISOLATED FORM*/ - RTUNI_ALPHA, /* U+00fbe5: ARABIC LETTER E FINAL FORM*/ - RTUNI_ALPHA, /* U+00fbe6: ARABIC LETTER E INITIAL FORM*/ - RTUNI_ALPHA, /* U+00fbe7: ARABIC LETTER E MEDIAL FORM*/ - RTUNI_ALPHA, /* U+00fbe8: ARABIC LETTER UIGHUR KAZAKH KIRGHIZ ALEF MAKSURA INITIAL FORM*/ - RTUNI_ALPHA, /* U+00fbe9: ARABIC LETTER UIGHUR KAZAKH KIRGHIZ ALEF MAKSURA MEDIAL FORM*/ - RTUNI_ALPHA, /* U+00fbea: ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH ALEF ISOLATED FORM*/ - RTUNI_ALPHA, /* U+00fbeb: ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH ALEF FINAL FORM*/ - RTUNI_ALPHA, /* U+00fbec: ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH AE ISOLATED FORM*/ - RTUNI_ALPHA, /* U+00fbed: ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH AE FINAL FORM*/ - RTUNI_ALPHA, /* U+00fbee: ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH WAW ISOLATED FORM*/ - RTUNI_ALPHA, /* U+00fbef: ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH WAW FINAL FORM*/ - RTUNI_ALPHA, /* U+00fbf0: ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH U ISOLATED FORM*/ - RTUNI_ALPHA, /* U+00fbf1: ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH U FINAL FORM*/ - RTUNI_ALPHA, /* U+00fbf2: ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH OE ISOLATED FORM*/ - RTUNI_ALPHA, /* U+00fbf3: ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH OE FINAL FORM*/ - RTUNI_ALPHA, /* U+00fbf4: ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH YU ISOLATED FORM*/ - RTUNI_ALPHA, /* U+00fbf5: ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH YU FINAL FORM*/ - RTUNI_ALPHA, /* U+00fbf6: ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH E ISOLATED FORM*/ - RTUNI_ALPHA, /* U+00fbf7: ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH E FINAL FORM*/ - RTUNI_ALPHA, /* U+00fbf8: ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH E INITIAL FORM*/ - RTUNI_ALPHA, /* U+00fbf9: ARABIC LIGATURE UIGHUR KIRGHIZ YEH WITH HAMZA ABOVE WITH ALEF MAKSURA ISOLATED FORM*/ - RTUNI_ALPHA, /* U+00fbfa: ARABIC LIGATURE UIGHUR KIRGHIZ YEH WITH HAMZA ABOVE WITH ALEF MAKSURA FINAL FORM*/ - RTUNI_ALPHA, /* U+00fbfb: ARABIC LIGATURE UIGHUR KIRGHIZ YEH WITH HAMZA ABOVE WITH ALEF MAKSURA INITIAL FORM*/ - RTUNI_ALPHA, /* U+00fbfc: ARABIC LETTER FARSI YEH ISOLATED FORM*/ - RTUNI_ALPHA, /* U+00fbfd: ARABIC LETTER FARSI YEH FINAL FORM*/ - RTUNI_ALPHA, /* U+00fbfe: ARABIC LETTER FARSI YEH INITIAL FORM*/ - RTUNI_ALPHA, /* U+00fbff: ARABIC LETTER FARSI YEH MEDIAL FORM*/ - RTUNI_ALPHA, /* U+00fc00: ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH JEEM ISOLATED FORM*/ - RTUNI_ALPHA, /* U+00fc01: ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH HAH ISOLATED FORM*/ - RTUNI_ALPHA, /* U+00fc02: ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH MEEM ISOLATED FORM*/ - RTUNI_ALPHA, /* U+00fc03: ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH ALEF MAKSURA ISOLATED FORM*/ - RTUNI_ALPHA, /* U+00fc04: ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH YEH ISOLATED FORM*/ - RTUNI_ALPHA, /* U+00fc05: ARABIC LIGATURE BEH WITH JEEM ISOLATED FORM*/ - RTUNI_ALPHA, /* U+00fc06: ARABIC LIGATURE BEH WITH HAH ISOLATED FORM*/ - RTUNI_ALPHA, /* U+00fc07: ARABIC LIGATURE BEH WITH KHAH ISOLATED FORM*/ - RTUNI_ALPHA, /* U+00fc08: ARABIC LIGATURE BEH WITH MEEM ISOLATED FORM*/ - RTUNI_ALPHA, /* U+00fc09: ARABIC LIGATURE BEH WITH ALEF MAKSURA ISOLATED FORM*/ - RTUNI_ALPHA, /* U+00fc0a: ARABIC LIGATURE BEH WITH YEH ISOLATED FORM*/ - RTUNI_ALPHA, /* U+00fc0b: ARABIC LIGATURE TEH WITH JEEM ISOLATED FORM*/ - RTUNI_ALPHA, /* U+00fc0c: ARABIC LIGATURE TEH WITH HAH ISOLATED FORM*/ - RTUNI_ALPHA, /* U+00fc0d: ARABIC LIGATURE TEH WITH KHAH ISOLATED FORM*/ - RTUNI_ALPHA, /* U+00fc0e: ARABIC LIGATURE TEH WITH MEEM ISOLATED FORM*/ - RTUNI_ALPHA, /* U+00fc0f: ARABIC LIGATURE TEH WITH ALEF MAKSURA ISOLATED FORM*/ - RTUNI_ALPHA, /* U+00fc10: ARABIC LIGATURE TEH WITH YEH ISOLATED FORM*/ - RTUNI_ALPHA, /* U+00fc11: ARABIC LIGATURE THEH WITH JEEM ISOLATED FORM*/ - RTUNI_ALPHA, /* U+00fc12: ARABIC LIGATURE THEH WITH MEEM ISOLATED FORM*/ - RTUNI_ALPHA, /* U+00fc13: ARABIC LIGATURE THEH WITH ALEF MAKSURA ISOLATED FORM*/ - RTUNI_ALPHA, /* U+00fc14: ARABIC LIGATURE THEH WITH YEH ISOLATED FORM*/ - RTUNI_ALPHA, /* U+00fc15: ARABIC LIGATURE JEEM WITH HAH ISOLATED FORM*/ - RTUNI_ALPHA, /* U+00fc16: ARABIC LIGATURE JEEM WITH MEEM ISOLATED FORM*/ - RTUNI_ALPHA, /* U+00fc17: ARABIC LIGATURE HAH WITH JEEM ISOLATED FORM*/ - RTUNI_ALPHA, /* U+00fc18: ARABIC LIGATURE HAH WITH MEEM ISOLATED FORM*/ - RTUNI_ALPHA, /* U+00fc19: ARABIC LIGATURE KHAH WITH JEEM ISOLATED FORM*/ - RTUNI_ALPHA, /* U+00fc1a: ARABIC LIGATURE KHAH WITH HAH ISOLATED FORM*/ - RTUNI_ALPHA, /* U+00fc1b: ARABIC LIGATURE KHAH WITH MEEM ISOLATED FORM*/ - RTUNI_ALPHA, /* U+00fc1c: ARABIC LIGATURE SEEN WITH JEEM ISOLATED FORM*/ - RTUNI_ALPHA, /* U+00fc1d: ARABIC LIGATURE SEEN WITH HAH ISOLATED FORM*/ - RTUNI_ALPHA, /* U+00fc1e: ARABIC LIGATURE SEEN WITH KHAH ISOLATED FORM*/ - RTUNI_ALPHA, /* U+00fc1f: ARABIC LIGATURE SEEN WITH MEEM ISOLATED FORM*/ - RTUNI_ALPHA, /* U+00fc20: ARABIC LIGATURE SAD WITH HAH ISOLATED FORM*/ - RTUNI_ALPHA, /* U+00fc21: ARABIC LIGATURE SAD WITH MEEM ISOLATED FORM*/ - RTUNI_ALPHA, /* U+00fc22: ARABIC LIGATURE DAD WITH JEEM ISOLATED FORM*/ - RTUNI_ALPHA, /* U+00fc23: ARABIC LIGATURE DAD WITH HAH ISOLATED FORM*/ - RTUNI_ALPHA, /* U+00fc24: ARABIC LIGATURE DAD WITH KHAH ISOLATED FORM*/ - RTUNI_ALPHA, /* U+00fc25: ARABIC LIGATURE DAD WITH MEEM ISOLATED FORM*/ - RTUNI_ALPHA, /* U+00fc26: ARABIC LIGATURE TAH WITH HAH ISOLATED FORM*/ - RTUNI_ALPHA, /* U+00fc27: ARABIC LIGATURE TAH WITH MEEM ISOLATED FORM*/ - RTUNI_ALPHA, /* U+00fc28: ARABIC LIGATURE ZAH WITH MEEM ISOLATED FORM*/ - RTUNI_ALPHA, /* U+00fc29: ARABIC LIGATURE AIN WITH JEEM ISOLATED FORM*/ - RTUNI_ALPHA, /* U+00fc2a: ARABIC LIGATURE AIN WITH MEEM ISOLATED FORM*/ - RTUNI_ALPHA, /* U+00fc2b: ARABIC LIGATURE GHAIN WITH JEEM ISOLATED FORM*/ - RTUNI_ALPHA, /* U+00fc2c: ARABIC LIGATURE GHAIN WITH MEEM ISOLATED FORM*/ - RTUNI_ALPHA, /* U+00fc2d: ARABIC LIGATURE FEH WITH JEEM ISOLATED FORM*/ - RTUNI_ALPHA, /* U+00fc2e: ARABIC LIGATURE FEH WITH HAH ISOLATED FORM*/ - RTUNI_ALPHA, /* U+00fc2f: ARABIC LIGATURE FEH WITH KHAH ISOLATED FORM*/ - RTUNI_ALPHA, /* U+00fc30: ARABIC LIGATURE FEH WITH MEEM ISOLATED FORM*/ - RTUNI_ALPHA, /* U+00fc31: ARABIC LIGATURE FEH WITH ALEF MAKSURA ISOLATED FORM*/ - RTUNI_ALPHA, /* U+00fc32: ARABIC LIGATURE FEH WITH YEH ISOLATED FORM*/ - RTUNI_ALPHA, /* U+00fc33: ARABIC LIGATURE QAF WITH HAH ISOLATED FORM*/ - RTUNI_ALPHA, /* U+00fc34: ARABIC LIGATURE QAF WITH MEEM ISOLATED FORM*/ - RTUNI_ALPHA, /* U+00fc35: ARABIC LIGATURE QAF WITH ALEF MAKSURA ISOLATED FORM*/ - RTUNI_ALPHA, /* U+00fc36: ARABIC LIGATURE QAF WITH YEH ISOLATED FORM*/ - RTUNI_ALPHA, /* U+00fc37: ARABIC LIGATURE KAF WITH ALEF ISOLATED FORM*/ - RTUNI_ALPHA, /* U+00fc38: ARABIC LIGATURE KAF WITH JEEM ISOLATED FORM*/ - RTUNI_ALPHA, /* U+00fc39: ARABIC LIGATURE KAF WITH HAH ISOLATED FORM*/ - RTUNI_ALPHA, /* U+00fc3a: ARABIC LIGATURE KAF WITH KHAH ISOLATED FORM*/ - RTUNI_ALPHA, /* U+00fc3b: ARABIC LIGATURE KAF WITH LAM ISOLATED FORM*/ - RTUNI_ALPHA, /* U+00fc3c: ARABIC LIGATURE KAF WITH MEEM ISOLATED FORM*/ - RTUNI_ALPHA, /* U+00fc3d: ARABIC LIGATURE KAF WITH ALEF MAKSURA ISOLATED FORM*/ - RTUNI_ALPHA, /* U+00fc3e: ARABIC LIGATURE KAF WITH YEH ISOLATED FORM*/ - RTUNI_ALPHA, /* U+00fc3f: ARABIC LIGATURE LAM WITH JEEM ISOLATED FORM*/ - RTUNI_ALPHA, /* U+00fc40: ARABIC LIGATURE LAM WITH HAH ISOLATED FORM*/ - RTUNI_ALPHA, /* U+00fc41: ARABIC LIGATURE LAM WITH KHAH ISOLATED FORM*/ - RTUNI_ALPHA, /* U+00fc42: ARABIC LIGATURE LAM WITH MEEM ISOLATED FORM*/ - RTUNI_ALPHA, /* U+00fc43: ARABIC LIGATURE LAM WITH ALEF MAKSURA ISOLATED FORM*/ - RTUNI_ALPHA, /* U+00fc44: ARABIC LIGATURE LAM WITH YEH ISOLATED FORM*/ - RTUNI_ALPHA, /* U+00fc45: ARABIC LIGATURE MEEM WITH JEEM ISOLATED FORM*/ - RTUNI_ALPHA, /* U+00fc46: ARABIC LIGATURE MEEM WITH HAH ISOLATED FORM*/ - RTUNI_ALPHA, /* U+00fc47: ARABIC LIGATURE MEEM WITH KHAH ISOLATED FORM*/ - RTUNI_ALPHA, /* U+00fc48: ARABIC LIGATURE MEEM WITH MEEM ISOLATED FORM*/ - RTUNI_ALPHA, /* U+00fc49: ARABIC LIGATURE MEEM WITH ALEF MAKSURA ISOLATED FORM*/ - RTUNI_ALPHA, /* U+00fc4a: ARABIC LIGATURE MEEM WITH YEH ISOLATED FORM*/ - RTUNI_ALPHA, /* U+00fc4b: ARABIC LIGATURE NOON WITH JEEM ISOLATED FORM*/ - RTUNI_ALPHA, /* U+00fc4c: ARABIC LIGATURE NOON WITH HAH ISOLATED FORM*/ - RTUNI_ALPHA, /* U+00fc4d: ARABIC LIGATURE NOON WITH KHAH ISOLATED FORM*/ - RTUNI_ALPHA, /* U+00fc4e: ARABIC LIGATURE NOON WITH MEEM ISOLATED FORM*/ - RTUNI_ALPHA, /* U+00fc4f: ARABIC LIGATURE NOON WITH ALEF MAKSURA ISOLATED FORM*/ - RTUNI_ALPHA, /* U+00fc50: ARABIC LIGATURE NOON WITH YEH ISOLATED FORM*/ - RTUNI_ALPHA, /* U+00fc51: ARABIC LIGATURE HEH WITH JEEM ISOLATED FORM*/ - RTUNI_ALPHA, /* U+00fc52: ARABIC LIGATURE HEH WITH MEEM ISOLATED FORM*/ - RTUNI_ALPHA, /* U+00fc53: ARABIC LIGATURE HEH WITH ALEF MAKSURA ISOLATED FORM*/ - RTUNI_ALPHA, /* U+00fc54: ARABIC LIGATURE HEH WITH YEH ISOLATED FORM*/ - RTUNI_ALPHA, /* U+00fc55: ARABIC LIGATURE YEH WITH JEEM ISOLATED FORM*/ - RTUNI_ALPHA, /* U+00fc56: ARABIC LIGATURE YEH WITH HAH ISOLATED FORM*/ - RTUNI_ALPHA, /* U+00fc57: ARABIC LIGATURE YEH WITH KHAH ISOLATED FORM*/ - RTUNI_ALPHA, /* U+00fc58: ARABIC LIGATURE YEH WITH MEEM ISOLATED FORM*/ - RTUNI_ALPHA, /* U+00fc59: ARABIC LIGATURE YEH WITH ALEF MAKSURA ISOLATED FORM*/ - RTUNI_ALPHA, /* U+00fc5a: ARABIC LIGATURE YEH WITH YEH ISOLATED FORM*/ - RTUNI_ALPHA, /* U+00fc5b: ARABIC LIGATURE THAL WITH SUPERSCRIPT ALEF ISOLATED FORM*/ - RTUNI_ALPHA, /* U+00fc5c: ARABIC LIGATURE REH WITH SUPERSCRIPT ALEF ISOLATED FORM*/ - RTUNI_ALPHA, /* U+00fc5d: ARABIC LIGATURE ALEF MAKSURA WITH SUPERSCRIPT ALEF ISOLATED FORM*/ - RTUNI_ALPHA, /* U+00fc5e: ARABIC LIGATURE SHADDA WITH DAMMATAN ISOLATED FORM*/ - RTUNI_ALPHA, /* U+00fc5f: ARABIC LIGATURE SHADDA WITH KASRATAN ISOLATED FORM*/ - RTUNI_ALPHA, /* U+00fc60: ARABIC LIGATURE SHADDA WITH FATHA ISOLATED FORM*/ - RTUNI_ALPHA, /* U+00fc61: ARABIC LIGATURE SHADDA WITH DAMMA ISOLATED FORM*/ - RTUNI_ALPHA, /* U+00fc62: ARABIC LIGATURE SHADDA WITH KASRA ISOLATED FORM*/ - RTUNI_ALPHA, /* U+00fc63: ARABIC LIGATURE SHADDA WITH SUPERSCRIPT ALEF ISOLATED FORM*/ - RTUNI_ALPHA, /* U+00fc64: ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH REH FINAL FORM*/ - RTUNI_ALPHA, /* U+00fc65: ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH ZAIN FINAL FORM*/ - RTUNI_ALPHA, /* U+00fc66: ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH MEEM FINAL FORM*/ - RTUNI_ALPHA, /* U+00fc67: ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH NOON FINAL FORM*/ - RTUNI_ALPHA, /* U+00fc68: ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH ALEF MAKSURA FINAL FORM*/ - RTUNI_ALPHA, /* U+00fc69: ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH YEH FINAL FORM*/ - RTUNI_ALPHA, /* U+00fc6a: ARABIC LIGATURE BEH WITH REH FINAL FORM*/ - RTUNI_ALPHA, /* U+00fc6b: ARABIC LIGATURE BEH WITH ZAIN FINAL FORM*/ - RTUNI_ALPHA, /* U+00fc6c: ARABIC LIGATURE BEH WITH MEEM FINAL FORM*/ - RTUNI_ALPHA, /* U+00fc6d: ARABIC LIGATURE BEH WITH NOON FINAL FORM*/ - RTUNI_ALPHA, /* U+00fc6e: ARABIC LIGATURE BEH WITH ALEF MAKSURA FINAL FORM*/ - RTUNI_ALPHA, /* U+00fc6f: ARABIC LIGATURE BEH WITH YEH FINAL FORM*/ - RTUNI_ALPHA, /* U+00fc70: ARABIC LIGATURE TEH WITH REH FINAL FORM*/ - RTUNI_ALPHA, /* U+00fc71: ARABIC LIGATURE TEH WITH ZAIN FINAL FORM*/ - RTUNI_ALPHA, /* U+00fc72: ARABIC LIGATURE TEH WITH MEEM FINAL FORM*/ - RTUNI_ALPHA, /* U+00fc73: ARABIC LIGATURE TEH WITH NOON FINAL FORM*/ - RTUNI_ALPHA, /* U+00fc74: ARABIC LIGATURE TEH WITH ALEF MAKSURA FINAL FORM*/ - RTUNI_ALPHA, /* U+00fc75: ARABIC LIGATURE TEH WITH YEH FINAL FORM*/ - RTUNI_ALPHA, /* U+00fc76: ARABIC LIGATURE THEH WITH REH FINAL FORM*/ - RTUNI_ALPHA, /* U+00fc77: ARABIC LIGATURE THEH WITH ZAIN FINAL FORM*/ - RTUNI_ALPHA, /* U+00fc78: ARABIC LIGATURE THEH WITH MEEM FINAL FORM*/ - RTUNI_ALPHA, /* U+00fc79: ARABIC LIGATURE THEH WITH NOON FINAL FORM*/ - RTUNI_ALPHA, /* U+00fc7a: ARABIC LIGATURE THEH WITH ALEF MAKSURA FINAL FORM*/ - RTUNI_ALPHA, /* U+00fc7b: ARABIC LIGATURE THEH WITH YEH FINAL FORM*/ - RTUNI_ALPHA, /* U+00fc7c: ARABIC LIGATURE FEH WITH ALEF MAKSURA FINAL FORM*/ - RTUNI_ALPHA, /* U+00fc7d: ARABIC LIGATURE FEH WITH YEH FINAL FORM*/ - RTUNI_ALPHA, /* U+00fc7e: ARABIC LIGATURE QAF WITH ALEF MAKSURA FINAL FORM*/ - RTUNI_ALPHA, /* U+00fc7f: ARABIC LIGATURE QAF WITH YEH FINAL FORM*/ - RTUNI_ALPHA, /* U+00fc80: ARABIC LIGATURE KAF WITH ALEF FINAL FORM*/ - RTUNI_ALPHA, /* U+00fc81: ARABIC LIGATURE KAF WITH LAM FINAL FORM*/ - RTUNI_ALPHA, /* U+00fc82: ARABIC LIGATURE KAF WITH MEEM FINAL FORM*/ - RTUNI_ALPHA, /* U+00fc83: ARABIC LIGATURE KAF WITH ALEF MAKSURA FINAL FORM*/ - RTUNI_ALPHA, /* U+00fc84: ARABIC LIGATURE KAF WITH YEH FINAL FORM*/ - RTUNI_ALPHA, /* U+00fc85: ARABIC LIGATURE LAM WITH MEEM FINAL FORM*/ - RTUNI_ALPHA, /* U+00fc86: ARABIC LIGATURE LAM WITH ALEF MAKSURA FINAL FORM*/ - RTUNI_ALPHA, /* U+00fc87: ARABIC LIGATURE LAM WITH YEH FINAL FORM*/ - RTUNI_ALPHA, /* U+00fc88: ARABIC LIGATURE MEEM WITH ALEF FINAL FORM*/ - RTUNI_ALPHA, /* U+00fc89: ARABIC LIGATURE MEEM WITH MEEM FINAL FORM*/ - RTUNI_ALPHA, /* U+00fc8a: ARABIC LIGATURE NOON WITH REH FINAL FORM*/ - RTUNI_ALPHA, /* U+00fc8b: ARABIC LIGATURE NOON WITH ZAIN FINAL FORM*/ - RTUNI_ALPHA, /* U+00fc8c: ARABIC LIGATURE NOON WITH MEEM FINAL FORM*/ - RTUNI_ALPHA, /* U+00fc8d: ARABIC LIGATURE NOON WITH NOON FINAL FORM*/ - RTUNI_ALPHA, /* U+00fc8e: ARABIC LIGATURE NOON WITH ALEF MAKSURA FINAL FORM*/ - RTUNI_ALPHA, /* U+00fc8f: ARABIC LIGATURE NOON WITH YEH FINAL FORM*/ - RTUNI_ALPHA, /* U+00fc90: ARABIC LIGATURE ALEF MAKSURA WITH SUPERSCRIPT ALEF FINAL FORM*/ - RTUNI_ALPHA, /* U+00fc91: ARABIC LIGATURE YEH WITH REH FINAL FORM*/ - RTUNI_ALPHA, /* U+00fc92: ARABIC LIGATURE YEH WITH ZAIN FINAL FORM*/ - RTUNI_ALPHA, /* U+00fc93: ARABIC LIGATURE YEH WITH MEEM FINAL FORM*/ - RTUNI_ALPHA, /* U+00fc94: ARABIC LIGATURE YEH WITH NOON FINAL FORM*/ - RTUNI_ALPHA, /* U+00fc95: ARABIC LIGATURE YEH WITH ALEF MAKSURA FINAL FORM*/ - RTUNI_ALPHA, /* U+00fc96: ARABIC LIGATURE YEH WITH YEH FINAL FORM*/ - RTUNI_ALPHA, /* U+00fc97: ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH JEEM INITIAL FORM*/ - RTUNI_ALPHA, /* U+00fc98: ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH HAH INITIAL FORM*/ - RTUNI_ALPHA, /* U+00fc99: ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH KHAH INITIAL FORM*/ - RTUNI_ALPHA, /* U+00fc9a: ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH MEEM INITIAL FORM*/ - RTUNI_ALPHA, /* U+00fc9b: ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH HEH INITIAL FORM*/ - RTUNI_ALPHA, /* U+00fc9c: ARABIC LIGATURE BEH WITH JEEM INITIAL FORM*/ - RTUNI_ALPHA, /* U+00fc9d: ARABIC LIGATURE BEH WITH HAH INITIAL FORM*/ - RTUNI_ALPHA, /* U+00fc9e: ARABIC LIGATURE BEH WITH KHAH INITIAL FORM*/ - RTUNI_ALPHA, /* U+00fc9f: ARABIC LIGATURE BEH WITH MEEM INITIAL FORM*/ - RTUNI_ALPHA, /* U+00fca0: ARABIC LIGATURE BEH WITH HEH INITIAL FORM*/ - RTUNI_ALPHA, /* U+00fca1: ARABIC LIGATURE TEH WITH JEEM INITIAL FORM*/ - RTUNI_ALPHA, /* U+00fca2: ARABIC LIGATURE TEH WITH HAH INITIAL FORM*/ - RTUNI_ALPHA, /* U+00fca3: ARABIC LIGATURE TEH WITH KHAH INITIAL FORM*/ - RTUNI_ALPHA, /* U+00fca4: ARABIC LIGATURE TEH WITH MEEM INITIAL FORM*/ - RTUNI_ALPHA, /* U+00fca5: ARABIC LIGATURE TEH WITH HEH INITIAL FORM*/ - RTUNI_ALPHA, /* U+00fca6: ARABIC LIGATURE THEH WITH MEEM INITIAL FORM*/ - RTUNI_ALPHA, /* U+00fca7: ARABIC LIGATURE JEEM WITH HAH INITIAL FORM*/ - RTUNI_ALPHA, /* U+00fca8: ARABIC LIGATURE JEEM WITH MEEM INITIAL FORM*/ - RTUNI_ALPHA, /* U+00fca9: ARABIC LIGATURE HAH WITH JEEM INITIAL FORM*/ - RTUNI_ALPHA, /* U+00fcaa: ARABIC LIGATURE HAH WITH MEEM INITIAL FORM*/ - RTUNI_ALPHA, /* U+00fcab: ARABIC LIGATURE KHAH WITH JEEM INITIAL FORM*/ - RTUNI_ALPHA, /* U+00fcac: ARABIC LIGATURE KHAH WITH MEEM INITIAL FORM*/ - RTUNI_ALPHA, /* U+00fcad: ARABIC LIGATURE SEEN WITH JEEM INITIAL FORM*/ - RTUNI_ALPHA, /* U+00fcae: ARABIC LIGATURE SEEN WITH HAH INITIAL FORM*/ - RTUNI_ALPHA, /* U+00fcaf: ARABIC LIGATURE SEEN WITH KHAH INITIAL FORM*/ - RTUNI_ALPHA, /* U+00fcb0: ARABIC LIGATURE SEEN WITH MEEM INITIAL FORM*/ - RTUNI_ALPHA, /* U+00fcb1: ARABIC LIGATURE SAD WITH HAH INITIAL FORM*/ - RTUNI_ALPHA, /* U+00fcb2: ARABIC LIGATURE SAD WITH KHAH INITIAL FORM*/ - RTUNI_ALPHA, /* U+00fcb3: ARABIC LIGATURE SAD WITH MEEM INITIAL FORM*/ - RTUNI_ALPHA, /* U+00fcb4: ARABIC LIGATURE DAD WITH JEEM INITIAL FORM*/ - RTUNI_ALPHA, /* U+00fcb5: ARABIC LIGATURE DAD WITH HAH INITIAL FORM*/ - RTUNI_ALPHA, /* U+00fcb6: ARABIC LIGATURE DAD WITH KHAH INITIAL FORM*/ - RTUNI_ALPHA, /* U+00fcb7: ARABIC LIGATURE DAD WITH MEEM INITIAL FORM*/ - RTUNI_ALPHA, /* U+00fcb8: ARABIC LIGATURE TAH WITH HAH INITIAL FORM*/ - RTUNI_ALPHA, /* U+00fcb9: ARABIC LIGATURE ZAH WITH MEEM INITIAL FORM*/ - RTUNI_ALPHA, /* U+00fcba: ARABIC LIGATURE AIN WITH JEEM INITIAL FORM*/ - RTUNI_ALPHA, /* U+00fcbb: ARABIC LIGATURE AIN WITH MEEM INITIAL FORM*/ - RTUNI_ALPHA, /* U+00fcbc: ARABIC LIGATURE GHAIN WITH JEEM INITIAL FORM*/ - RTUNI_ALPHA, /* U+00fcbd: ARABIC LIGATURE GHAIN WITH MEEM INITIAL FORM*/ - RTUNI_ALPHA, /* U+00fcbe: ARABIC LIGATURE FEH WITH JEEM INITIAL FORM*/ - RTUNI_ALPHA, /* U+00fcbf: ARABIC LIGATURE FEH WITH HAH INITIAL FORM*/ - RTUNI_ALPHA, /* U+00fcc0: ARABIC LIGATURE FEH WITH KHAH INITIAL FORM*/ - RTUNI_ALPHA, /* U+00fcc1: ARABIC LIGATURE FEH WITH MEEM INITIAL FORM*/ - RTUNI_ALPHA, /* U+00fcc2: ARABIC LIGATURE QAF WITH HAH INITIAL FORM*/ - RTUNI_ALPHA, /* U+00fcc3: ARABIC LIGATURE QAF WITH MEEM INITIAL FORM*/ - RTUNI_ALPHA, /* U+00fcc4: ARABIC LIGATURE KAF WITH JEEM INITIAL FORM*/ - RTUNI_ALPHA, /* U+00fcc5: ARABIC LIGATURE KAF WITH HAH INITIAL FORM*/ - RTUNI_ALPHA, /* U+00fcc6: ARABIC LIGATURE KAF WITH KHAH INITIAL FORM*/ - RTUNI_ALPHA, /* U+00fcc7: ARABIC LIGATURE KAF WITH LAM INITIAL FORM*/ - RTUNI_ALPHA, /* U+00fcc8: ARABIC LIGATURE KAF WITH MEEM INITIAL FORM*/ - RTUNI_ALPHA, /* U+00fcc9: ARABIC LIGATURE LAM WITH JEEM INITIAL FORM*/ - RTUNI_ALPHA, /* U+00fcca: ARABIC LIGATURE LAM WITH HAH INITIAL FORM*/ - RTUNI_ALPHA, /* U+00fccb: ARABIC LIGATURE LAM WITH KHAH INITIAL FORM*/ - RTUNI_ALPHA, /* U+00fccc: ARABIC LIGATURE LAM WITH MEEM INITIAL FORM*/ - RTUNI_ALPHA, /* U+00fccd: ARABIC LIGATURE LAM WITH HEH INITIAL FORM*/ - RTUNI_ALPHA, /* U+00fcce: ARABIC LIGATURE MEEM WITH JEEM INITIAL FORM*/ - RTUNI_ALPHA, /* U+00fccf: ARABIC LIGATURE MEEM WITH HAH INITIAL FORM*/ - RTUNI_ALPHA, /* U+00fcd0: ARABIC LIGATURE MEEM WITH KHAH INITIAL FORM*/ - RTUNI_ALPHA, /* U+00fcd1: ARABIC LIGATURE MEEM WITH MEEM INITIAL FORM*/ - RTUNI_ALPHA, /* U+00fcd2: ARABIC LIGATURE NOON WITH JEEM INITIAL FORM*/ - RTUNI_ALPHA, /* U+00fcd3: ARABIC LIGATURE NOON WITH HAH INITIAL FORM*/ - RTUNI_ALPHA, /* U+00fcd4: ARABIC LIGATURE NOON WITH KHAH INITIAL FORM*/ - RTUNI_ALPHA, /* U+00fcd5: ARABIC LIGATURE NOON WITH MEEM INITIAL FORM*/ - RTUNI_ALPHA, /* U+00fcd6: ARABIC LIGATURE NOON WITH HEH INITIAL FORM*/ - RTUNI_ALPHA, /* U+00fcd7: ARABIC LIGATURE HEH WITH JEEM INITIAL FORM*/ - RTUNI_ALPHA, /* U+00fcd8: ARABIC LIGATURE HEH WITH MEEM INITIAL FORM*/ - RTUNI_ALPHA, /* U+00fcd9: ARABIC LIGATURE HEH WITH SUPERSCRIPT ALEF INITIAL FORM*/ - RTUNI_ALPHA, /* U+00fcda: ARABIC LIGATURE YEH WITH JEEM INITIAL FORM*/ - RTUNI_ALPHA, /* U+00fcdb: ARABIC LIGATURE YEH WITH HAH INITIAL FORM*/ - RTUNI_ALPHA, /* U+00fcdc: ARABIC LIGATURE YEH WITH KHAH INITIAL FORM*/ - RTUNI_ALPHA, /* U+00fcdd: ARABIC LIGATURE YEH WITH MEEM INITIAL FORM*/ - RTUNI_ALPHA, /* U+00fcde: ARABIC LIGATURE YEH WITH HEH INITIAL FORM*/ - RTUNI_ALPHA, /* U+00fcdf: ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH MEEM MEDIAL FORM*/ - RTUNI_ALPHA, /* U+00fce0: ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH HEH MEDIAL FORM*/ - RTUNI_ALPHA, /* U+00fce1: ARABIC LIGATURE BEH WITH MEEM MEDIAL FORM*/ - RTUNI_ALPHA, /* U+00fce2: ARABIC LIGATURE BEH WITH HEH MEDIAL FORM*/ - RTUNI_ALPHA, /* U+00fce3: ARABIC LIGATURE TEH WITH MEEM MEDIAL FORM*/ - RTUNI_ALPHA, /* U+00fce4: ARABIC LIGATURE TEH WITH HEH MEDIAL FORM*/ - RTUNI_ALPHA, /* U+00fce5: ARABIC LIGATURE THEH WITH MEEM MEDIAL FORM*/ - RTUNI_ALPHA, /* U+00fce6: ARABIC LIGATURE THEH WITH HEH MEDIAL FORM*/ - RTUNI_ALPHA, /* U+00fce7: ARABIC LIGATURE SEEN WITH MEEM MEDIAL FORM*/ - RTUNI_ALPHA, /* U+00fce8: ARABIC LIGATURE SEEN WITH HEH MEDIAL FORM*/ - RTUNI_ALPHA, /* U+00fce9: ARABIC LIGATURE SHEEN WITH MEEM MEDIAL FORM*/ - RTUNI_ALPHA, /* U+00fcea: ARABIC LIGATURE SHEEN WITH HEH MEDIAL FORM*/ - RTUNI_ALPHA, /* U+00fceb: ARABIC LIGATURE KAF WITH LAM MEDIAL FORM*/ - RTUNI_ALPHA, /* U+00fcec: ARABIC LIGATURE KAF WITH MEEM MEDIAL FORM*/ - RTUNI_ALPHA, /* U+00fced: ARABIC LIGATURE LAM WITH MEEM MEDIAL FORM*/ - RTUNI_ALPHA, /* U+00fcee: ARABIC LIGATURE NOON WITH MEEM MEDIAL FORM*/ - RTUNI_ALPHA, /* U+00fcef: ARABIC LIGATURE NOON WITH HEH MEDIAL FORM*/ - RTUNI_ALPHA, /* U+00fcf0: ARABIC LIGATURE YEH WITH MEEM MEDIAL FORM*/ - RTUNI_ALPHA, /* U+00fcf1: ARABIC LIGATURE YEH WITH HEH MEDIAL FORM*/ - RTUNI_ALPHA, /* U+00fcf2: ARABIC LIGATURE SHADDA WITH FATHA MEDIAL FORM*/ - RTUNI_ALPHA, /* U+00fcf3: ARABIC LIGATURE SHADDA WITH DAMMA MEDIAL FORM*/ - RTUNI_ALPHA, /* U+00fcf4: ARABIC LIGATURE SHADDA WITH KASRA MEDIAL FORM*/ - RTUNI_ALPHA, /* U+00fcf5: ARABIC LIGATURE TAH WITH ALEF MAKSURA ISOLATED FORM*/ - RTUNI_ALPHA, /* U+00fcf6: ARABIC LIGATURE TAH WITH YEH ISOLATED FORM*/ - RTUNI_ALPHA, /* U+00fcf7: ARABIC LIGATURE AIN WITH ALEF MAKSURA ISOLATED FORM*/ - RTUNI_ALPHA, /* U+00fcf8: ARABIC LIGATURE AIN WITH YEH ISOLATED FORM*/ - RTUNI_ALPHA, /* U+00fcf9: ARABIC LIGATURE GHAIN WITH ALEF MAKSURA ISOLATED FORM*/ - RTUNI_ALPHA, /* U+00fcfa: ARABIC LIGATURE GHAIN WITH YEH ISOLATED FORM*/ - RTUNI_ALPHA, /* U+00fcfb: ARABIC LIGATURE SEEN WITH ALEF MAKSURA ISOLATED FORM*/ - RTUNI_ALPHA, /* U+00fcfc: ARABIC LIGATURE SEEN WITH YEH ISOLATED FORM*/ - RTUNI_ALPHA, /* U+00fcfd: ARABIC LIGATURE SHEEN WITH ALEF MAKSURA ISOLATED FORM*/ - RTUNI_ALPHA, /* U+00fcfe: ARABIC LIGATURE SHEEN WITH YEH ISOLATED FORM*/ - RTUNI_ALPHA, /* U+00fcff: ARABIC LIGATURE HAH WITH ALEF MAKSURA ISOLATED FORM*/ - RTUNI_ALPHA, /* U+00fd00: ARABIC LIGATURE HAH WITH YEH ISOLATED FORM*/ - RTUNI_ALPHA, /* U+00fd01: ARABIC LIGATURE JEEM WITH ALEF MAKSURA ISOLATED FORM*/ - RTUNI_ALPHA, /* U+00fd02: ARABIC LIGATURE JEEM WITH YEH ISOLATED FORM*/ - RTUNI_ALPHA, /* U+00fd03: ARABIC LIGATURE KHAH WITH ALEF MAKSURA ISOLATED FORM*/ - RTUNI_ALPHA, /* U+00fd04: ARABIC LIGATURE KHAH WITH YEH ISOLATED FORM*/ - RTUNI_ALPHA, /* U+00fd05: ARABIC LIGATURE SAD WITH ALEF MAKSURA ISOLATED FORM*/ - RTUNI_ALPHA, /* U+00fd06: ARABIC LIGATURE SAD WITH YEH ISOLATED FORM*/ - RTUNI_ALPHA, /* U+00fd07: ARABIC LIGATURE DAD WITH ALEF MAKSURA ISOLATED FORM*/ - RTUNI_ALPHA, /* U+00fd08: ARABIC LIGATURE DAD WITH YEH ISOLATED FORM*/ - RTUNI_ALPHA, /* U+00fd09: ARABIC LIGATURE SHEEN WITH JEEM ISOLATED FORM*/ - RTUNI_ALPHA, /* U+00fd0a: ARABIC LIGATURE SHEEN WITH HAH ISOLATED FORM*/ - RTUNI_ALPHA, /* U+00fd0b: ARABIC LIGATURE SHEEN WITH KHAH ISOLATED FORM*/ - RTUNI_ALPHA, /* U+00fd0c: ARABIC LIGATURE SHEEN WITH MEEM ISOLATED FORM*/ - RTUNI_ALPHA, /* U+00fd0d: ARABIC LIGATURE SHEEN WITH REH ISOLATED FORM*/ - RTUNI_ALPHA, /* U+00fd0e: ARABIC LIGATURE SEEN WITH REH ISOLATED FORM*/ - RTUNI_ALPHA, /* U+00fd0f: ARABIC LIGATURE SAD WITH REH ISOLATED FORM*/ - RTUNI_ALPHA, /* U+00fd10: ARABIC LIGATURE DAD WITH REH ISOLATED FORM*/ - RTUNI_ALPHA, /* U+00fd11: ARABIC LIGATURE TAH WITH ALEF MAKSURA FINAL FORM*/ - RTUNI_ALPHA, /* U+00fd12: ARABIC LIGATURE TAH WITH YEH FINAL FORM*/ - RTUNI_ALPHA, /* U+00fd13: ARABIC LIGATURE AIN WITH ALEF MAKSURA FINAL FORM*/ - RTUNI_ALPHA, /* U+00fd14: ARABIC LIGATURE AIN WITH YEH FINAL FORM*/ - RTUNI_ALPHA, /* U+00fd15: ARABIC LIGATURE GHAIN WITH ALEF MAKSURA FINAL FORM*/ - RTUNI_ALPHA, /* U+00fd16: ARABIC LIGATURE GHAIN WITH YEH FINAL FORM*/ - RTUNI_ALPHA, /* U+00fd17: ARABIC LIGATURE SEEN WITH ALEF MAKSURA FINAL FORM*/ - RTUNI_ALPHA, /* U+00fd18: ARABIC LIGATURE SEEN WITH YEH FINAL FORM*/ - RTUNI_ALPHA, /* U+00fd19: ARABIC LIGATURE SHEEN WITH ALEF MAKSURA FINAL FORM*/ - RTUNI_ALPHA, /* U+00fd1a: ARABIC LIGATURE SHEEN WITH YEH FINAL FORM*/ - RTUNI_ALPHA, /* U+00fd1b: ARABIC LIGATURE HAH WITH ALEF MAKSURA FINAL FORM*/ - RTUNI_ALPHA, /* U+00fd1c: ARABIC LIGATURE HAH WITH YEH FINAL FORM*/ - RTUNI_ALPHA, /* U+00fd1d: ARABIC LIGATURE JEEM WITH ALEF MAKSURA FINAL FORM*/ - RTUNI_ALPHA, /* U+00fd1e: ARABIC LIGATURE JEEM WITH YEH FINAL FORM*/ - RTUNI_ALPHA, /* U+00fd1f: ARABIC LIGATURE KHAH WITH ALEF MAKSURA FINAL FORM*/ - RTUNI_ALPHA, /* U+00fd20: ARABIC LIGATURE KHAH WITH YEH FINAL FORM*/ - RTUNI_ALPHA, /* U+00fd21: ARABIC LIGATURE SAD WITH ALEF MAKSURA FINAL FORM*/ - RTUNI_ALPHA, /* U+00fd22: ARABIC LIGATURE SAD WITH YEH FINAL FORM*/ - RTUNI_ALPHA, /* U+00fd23: ARABIC LIGATURE DAD WITH ALEF MAKSURA FINAL FORM*/ - RTUNI_ALPHA, /* U+00fd24: ARABIC LIGATURE DAD WITH YEH FINAL FORM*/ - RTUNI_ALPHA, /* U+00fd25: ARABIC LIGATURE SHEEN WITH JEEM FINAL FORM*/ - RTUNI_ALPHA, /* U+00fd26: ARABIC LIGATURE SHEEN WITH HAH FINAL FORM*/ - RTUNI_ALPHA, /* U+00fd27: ARABIC LIGATURE SHEEN WITH KHAH FINAL FORM*/ - RTUNI_ALPHA, /* U+00fd28: ARABIC LIGATURE SHEEN WITH MEEM FINAL FORM*/ - RTUNI_ALPHA, /* U+00fd29: ARABIC LIGATURE SHEEN WITH REH FINAL FORM*/ - RTUNI_ALPHA, /* U+00fd2a: ARABIC LIGATURE SEEN WITH REH FINAL FORM*/ - RTUNI_ALPHA, /* U+00fd2b: ARABIC LIGATURE SAD WITH REH FINAL FORM*/ - RTUNI_ALPHA, /* U+00fd2c: ARABIC LIGATURE DAD WITH REH FINAL FORM*/ - RTUNI_ALPHA, /* U+00fd2d: ARABIC LIGATURE SHEEN WITH JEEM INITIAL FORM*/ - RTUNI_ALPHA, /* U+00fd2e: ARABIC LIGATURE SHEEN WITH HAH INITIAL FORM*/ - RTUNI_ALPHA, /* U+00fd2f: ARABIC LIGATURE SHEEN WITH KHAH INITIAL FORM*/ - RTUNI_ALPHA, /* U+00fd30: ARABIC LIGATURE SHEEN WITH MEEM INITIAL FORM*/ - RTUNI_ALPHA, /* U+00fd31: ARABIC LIGATURE SEEN WITH HEH INITIAL FORM*/ - RTUNI_ALPHA, /* U+00fd32: ARABIC LIGATURE SHEEN WITH HEH INITIAL FORM*/ - RTUNI_ALPHA, /* U+00fd33: ARABIC LIGATURE TAH WITH MEEM INITIAL FORM*/ - RTUNI_ALPHA, /* U+00fd34: ARABIC LIGATURE SEEN WITH JEEM MEDIAL FORM*/ - RTUNI_ALPHA, /* U+00fd35: ARABIC LIGATURE SEEN WITH HAH MEDIAL FORM*/ - RTUNI_ALPHA, /* U+00fd36: ARABIC LIGATURE SEEN WITH KHAH MEDIAL FORM*/ - RTUNI_ALPHA, /* U+00fd37: ARABIC LIGATURE SHEEN WITH JEEM MEDIAL FORM*/ - RTUNI_ALPHA, /* U+00fd38: ARABIC LIGATURE SHEEN WITH HAH MEDIAL FORM*/ - RTUNI_ALPHA, /* U+00fd39: ARABIC LIGATURE SHEEN WITH KHAH MEDIAL FORM*/ - RTUNI_ALPHA, /* U+00fd3a: ARABIC LIGATURE TAH WITH MEEM MEDIAL FORM*/ - RTUNI_ALPHA, /* U+00fd3b: ARABIC LIGATURE ZAH WITH MEEM MEDIAL FORM*/ - RTUNI_ALPHA, /* U+00fd3c: ARABIC LIGATURE ALEF WITH FATHATAN FINAL FORM*/ - RTUNI_ALPHA, /* U+00fd3d: ARABIC LIGATURE ALEF WITH FATHATAN ISOLATED FORM*/ - 0, /* U+00fd3e: ORNATE LEFT PARENTHESIS*/ - 0, /* U+00fd3f: ORNATE RIGHT PARENTHESIS*/ - 0, /* U+00fd40: */ - 0, /* U+00fd41: */ - 0, /* U+00fd42: */ - 0, /* U+00fd43: */ - 0, /* U+00fd44: */ - 0, /* U+00fd45: */ - 0, /* U+00fd46: */ - 0, /* U+00fd47: */ - 0, /* U+00fd48: */ - 0, /* U+00fd49: */ - 0, /* U+00fd4a: */ - 0, /* U+00fd4b: */ - 0, /* U+00fd4c: */ - 0, /* U+00fd4d: */ - 0, /* U+00fd4e: */ - 0, /* U+00fd4f: */ - RTUNI_ALPHA, /* U+00fd50: ARABIC LIGATURE TEH WITH JEEM WITH MEEM INITIAL FORM*/ - RTUNI_ALPHA, /* U+00fd51: ARABIC LIGATURE TEH WITH HAH WITH JEEM FINAL FORM*/ - RTUNI_ALPHA, /* U+00fd52: ARABIC LIGATURE TEH WITH HAH WITH JEEM INITIAL FORM*/ - RTUNI_ALPHA, /* U+00fd53: ARABIC LIGATURE TEH WITH HAH WITH MEEM INITIAL FORM*/ - RTUNI_ALPHA, /* U+00fd54: ARABIC LIGATURE TEH WITH KHAH WITH MEEM INITIAL FORM*/ - RTUNI_ALPHA, /* U+00fd55: ARABIC LIGATURE TEH WITH MEEM WITH JEEM INITIAL FORM*/ - RTUNI_ALPHA, /* U+00fd56: ARABIC LIGATURE TEH WITH MEEM WITH HAH INITIAL FORM*/ - RTUNI_ALPHA, /* U+00fd57: ARABIC LIGATURE TEH WITH MEEM WITH KHAH INITIAL FORM*/ - RTUNI_ALPHA, /* U+00fd58: ARABIC LIGATURE JEEM WITH MEEM WITH HAH FINAL FORM*/ - RTUNI_ALPHA, /* U+00fd59: ARABIC LIGATURE JEEM WITH MEEM WITH HAH INITIAL FORM*/ - RTUNI_ALPHA, /* U+00fd5a: ARABIC LIGATURE HAH WITH MEEM WITH YEH FINAL FORM*/ - RTUNI_ALPHA, /* U+00fd5b: ARABIC LIGATURE HAH WITH MEEM WITH ALEF MAKSURA FINAL FORM*/ - RTUNI_ALPHA, /* U+00fd5c: ARABIC LIGATURE SEEN WITH HAH WITH JEEM INITIAL FORM*/ - RTUNI_ALPHA, /* U+00fd5d: ARABIC LIGATURE SEEN WITH JEEM WITH HAH INITIAL FORM*/ - RTUNI_ALPHA, /* U+00fd5e: ARABIC LIGATURE SEEN WITH JEEM WITH ALEF MAKSURA FINAL FORM*/ - RTUNI_ALPHA, /* U+00fd5f: ARABIC LIGATURE SEEN WITH MEEM WITH HAH FINAL FORM*/ - RTUNI_ALPHA, /* U+00fd60: ARABIC LIGATURE SEEN WITH MEEM WITH HAH INITIAL FORM*/ - RTUNI_ALPHA, /* U+00fd61: ARABIC LIGATURE SEEN WITH MEEM WITH JEEM INITIAL FORM*/ - RTUNI_ALPHA, /* U+00fd62: ARABIC LIGATURE SEEN WITH MEEM WITH MEEM FINAL FORM*/ - RTUNI_ALPHA, /* U+00fd63: ARABIC LIGATURE SEEN WITH MEEM WITH MEEM INITIAL FORM*/ - RTUNI_ALPHA, /* U+00fd64: ARABIC LIGATURE SAD WITH HAH WITH HAH FINAL FORM*/ - RTUNI_ALPHA, /* U+00fd65: ARABIC LIGATURE SAD WITH HAH WITH HAH INITIAL FORM*/ - RTUNI_ALPHA, /* U+00fd66: ARABIC LIGATURE SAD WITH MEEM WITH MEEM FINAL FORM*/ - RTUNI_ALPHA, /* U+00fd67: ARABIC LIGATURE SHEEN WITH HAH WITH MEEM FINAL FORM*/ - RTUNI_ALPHA, /* U+00fd68: ARABIC LIGATURE SHEEN WITH HAH WITH MEEM INITIAL FORM*/ - RTUNI_ALPHA, /* U+00fd69: ARABIC LIGATURE SHEEN WITH JEEM WITH YEH FINAL FORM*/ - RTUNI_ALPHA, /* U+00fd6a: ARABIC LIGATURE SHEEN WITH MEEM WITH KHAH FINAL FORM*/ - RTUNI_ALPHA, /* U+00fd6b: ARABIC LIGATURE SHEEN WITH MEEM WITH KHAH INITIAL FORM*/ - RTUNI_ALPHA, /* U+00fd6c: ARABIC LIGATURE SHEEN WITH MEEM WITH MEEM FINAL FORM*/ - RTUNI_ALPHA, /* U+00fd6d: ARABIC LIGATURE SHEEN WITH MEEM WITH MEEM INITIAL FORM*/ - RTUNI_ALPHA, /* U+00fd6e: ARABIC LIGATURE DAD WITH HAH WITH ALEF MAKSURA FINAL FORM*/ - RTUNI_ALPHA, /* U+00fd6f: ARABIC LIGATURE DAD WITH KHAH WITH MEEM FINAL FORM*/ - RTUNI_ALPHA, /* U+00fd70: ARABIC LIGATURE DAD WITH KHAH WITH MEEM INITIAL FORM*/ - RTUNI_ALPHA, /* U+00fd71: ARABIC LIGATURE TAH WITH MEEM WITH HAH FINAL FORM*/ - RTUNI_ALPHA, /* U+00fd72: ARABIC LIGATURE TAH WITH MEEM WITH HAH INITIAL FORM*/ - RTUNI_ALPHA, /* U+00fd73: ARABIC LIGATURE TAH WITH MEEM WITH MEEM INITIAL FORM*/ - RTUNI_ALPHA, /* U+00fd74: ARABIC LIGATURE TAH WITH MEEM WITH YEH FINAL FORM*/ - RTUNI_ALPHA, /* U+00fd75: ARABIC LIGATURE AIN WITH JEEM WITH MEEM FINAL FORM*/ - RTUNI_ALPHA, /* U+00fd76: ARABIC LIGATURE AIN WITH MEEM WITH MEEM FINAL FORM*/ - RTUNI_ALPHA, /* U+00fd77: ARABIC LIGATURE AIN WITH MEEM WITH MEEM INITIAL FORM*/ - RTUNI_ALPHA, /* U+00fd78: ARABIC LIGATURE AIN WITH MEEM WITH ALEF MAKSURA FINAL FORM*/ - RTUNI_ALPHA, /* U+00fd79: ARABIC LIGATURE GHAIN WITH MEEM WITH MEEM FINAL FORM*/ - RTUNI_ALPHA, /* U+00fd7a: ARABIC LIGATURE GHAIN WITH MEEM WITH YEH FINAL FORM*/ - RTUNI_ALPHA, /* U+00fd7b: ARABIC LIGATURE GHAIN WITH MEEM WITH ALEF MAKSURA FINAL FORM*/ - RTUNI_ALPHA, /* U+00fd7c: ARABIC LIGATURE FEH WITH KHAH WITH MEEM FINAL FORM*/ - RTUNI_ALPHA, /* U+00fd7d: ARABIC LIGATURE FEH WITH KHAH WITH MEEM INITIAL FORM*/ - RTUNI_ALPHA, /* U+00fd7e: ARABIC LIGATURE QAF WITH MEEM WITH HAH FINAL FORM*/ - RTUNI_ALPHA, /* U+00fd7f: ARABIC LIGATURE QAF WITH MEEM WITH MEEM FINAL FORM*/ - RTUNI_ALPHA, /* U+00fd80: ARABIC LIGATURE LAM WITH HAH WITH MEEM FINAL FORM*/ - RTUNI_ALPHA, /* U+00fd81: ARABIC LIGATURE LAM WITH HAH WITH YEH FINAL FORM*/ - RTUNI_ALPHA, /* U+00fd82: ARABIC LIGATURE LAM WITH HAH WITH ALEF MAKSURA FINAL FORM*/ - RTUNI_ALPHA, /* U+00fd83: ARABIC LIGATURE LAM WITH JEEM WITH JEEM INITIAL FORM*/ - RTUNI_ALPHA, /* U+00fd84: ARABIC LIGATURE LAM WITH JEEM WITH JEEM FINAL FORM*/ - RTUNI_ALPHA, /* U+00fd85: ARABIC LIGATURE LAM WITH KHAH WITH MEEM FINAL FORM*/ - RTUNI_ALPHA, /* U+00fd86: ARABIC LIGATURE LAM WITH KHAH WITH MEEM INITIAL FORM*/ - RTUNI_ALPHA, /* U+00fd87: ARABIC LIGATURE LAM WITH MEEM WITH HAH FINAL FORM*/ - RTUNI_ALPHA, /* U+00fd88: ARABIC LIGATURE LAM WITH MEEM WITH HAH INITIAL FORM*/ - RTUNI_ALPHA, /* U+00fd89: ARABIC LIGATURE MEEM WITH HAH WITH JEEM INITIAL FORM*/ - RTUNI_ALPHA, /* U+00fd8a: ARABIC LIGATURE MEEM WITH HAH WITH MEEM INITIAL FORM*/ - RTUNI_ALPHA, /* U+00fd8b: ARABIC LIGATURE MEEM WITH HAH WITH YEH FINAL FORM*/ - RTUNI_ALPHA, /* U+00fd8c: ARABIC LIGATURE MEEM WITH JEEM WITH HAH INITIAL FORM*/ - RTUNI_ALPHA, /* U+00fd8d: ARABIC LIGATURE MEEM WITH JEEM WITH MEEM INITIAL FORM*/ - RTUNI_ALPHA, /* U+00fd8e: ARABIC LIGATURE MEEM WITH KHAH WITH JEEM INITIAL FORM*/ - RTUNI_ALPHA, /* U+00fd8f: ARABIC LIGATURE MEEM WITH KHAH WITH MEEM INITIAL FORM*/ - 0, /* U+00fd90: */ - 0, /* U+00fd91: */ - RTUNI_ALPHA, /* U+00fd92: ARABIC LIGATURE MEEM WITH JEEM WITH KHAH INITIAL FORM*/ - RTUNI_ALPHA, /* U+00fd93: ARABIC LIGATURE HEH WITH MEEM WITH JEEM INITIAL FORM*/ - RTUNI_ALPHA, /* U+00fd94: ARABIC LIGATURE HEH WITH MEEM WITH MEEM INITIAL FORM*/ - RTUNI_ALPHA, /* U+00fd95: ARABIC LIGATURE NOON WITH HAH WITH MEEM INITIAL FORM*/ - RTUNI_ALPHA, /* U+00fd96: ARABIC LIGATURE NOON WITH HAH WITH ALEF MAKSURA FINAL FORM*/ - RTUNI_ALPHA, /* U+00fd97: ARABIC LIGATURE NOON WITH JEEM WITH MEEM FINAL FORM*/ - RTUNI_ALPHA, /* U+00fd98: ARABIC LIGATURE NOON WITH JEEM WITH MEEM INITIAL FORM*/ - RTUNI_ALPHA, /* U+00fd99: ARABIC LIGATURE NOON WITH JEEM WITH ALEF MAKSURA FINAL FORM*/ - RTUNI_ALPHA, /* U+00fd9a: ARABIC LIGATURE NOON WITH MEEM WITH YEH FINAL FORM*/ - RTUNI_ALPHA, /* U+00fd9b: ARABIC LIGATURE NOON WITH MEEM WITH ALEF MAKSURA FINAL FORM*/ - RTUNI_ALPHA, /* U+00fd9c: ARABIC LIGATURE YEH WITH MEEM WITH MEEM FINAL FORM*/ - RTUNI_ALPHA, /* U+00fd9d: ARABIC LIGATURE YEH WITH MEEM WITH MEEM INITIAL FORM*/ - RTUNI_ALPHA, /* U+00fd9e: ARABIC LIGATURE BEH WITH KHAH WITH YEH FINAL FORM*/ - RTUNI_ALPHA, /* U+00fd9f: ARABIC LIGATURE TEH WITH JEEM WITH YEH FINAL FORM*/ - RTUNI_ALPHA, /* U+00fda0: ARABIC LIGATURE TEH WITH JEEM WITH ALEF MAKSURA FINAL FORM*/ - RTUNI_ALPHA, /* U+00fda1: ARABIC LIGATURE TEH WITH KHAH WITH YEH FINAL FORM*/ - RTUNI_ALPHA, /* U+00fda2: ARABIC LIGATURE TEH WITH KHAH WITH ALEF MAKSURA FINAL FORM*/ - RTUNI_ALPHA, /* U+00fda3: ARABIC LIGATURE TEH WITH MEEM WITH YEH FINAL FORM*/ - RTUNI_ALPHA, /* U+00fda4: ARABIC LIGATURE TEH WITH MEEM WITH ALEF MAKSURA FINAL FORM*/ - RTUNI_ALPHA, /* U+00fda5: ARABIC LIGATURE JEEM WITH MEEM WITH YEH FINAL FORM*/ - RTUNI_ALPHA, /* U+00fda6: ARABIC LIGATURE JEEM WITH HAH WITH ALEF MAKSURA FINAL FORM*/ - RTUNI_ALPHA, /* U+00fda7: ARABIC LIGATURE JEEM WITH MEEM WITH ALEF MAKSURA FINAL FORM*/ - RTUNI_ALPHA, /* U+00fda8: ARABIC LIGATURE SEEN WITH KHAH WITH ALEF MAKSURA FINAL FORM*/ - RTUNI_ALPHA, /* U+00fda9: ARABIC LIGATURE SAD WITH HAH WITH YEH FINAL FORM*/ - RTUNI_ALPHA, /* U+00fdaa: ARABIC LIGATURE SHEEN WITH HAH WITH YEH FINAL FORM*/ - RTUNI_ALPHA, /* U+00fdab: ARABIC LIGATURE DAD WITH HAH WITH YEH FINAL FORM*/ - RTUNI_ALPHA, /* U+00fdac: ARABIC LIGATURE LAM WITH JEEM WITH YEH FINAL FORM*/ - RTUNI_ALPHA, /* U+00fdad: ARABIC LIGATURE LAM WITH MEEM WITH YEH FINAL FORM*/ - RTUNI_ALPHA, /* U+00fdae: ARABIC LIGATURE YEH WITH HAH WITH YEH FINAL FORM*/ - RTUNI_ALPHA, /* U+00fdaf: ARABIC LIGATURE YEH WITH JEEM WITH YEH FINAL FORM*/ - RTUNI_ALPHA, /* U+00fdb0: ARABIC LIGATURE YEH WITH MEEM WITH YEH FINAL FORM*/ - RTUNI_ALPHA, /* U+00fdb1: ARABIC LIGATURE MEEM WITH MEEM WITH YEH FINAL FORM*/ - RTUNI_ALPHA, /* U+00fdb2: ARABIC LIGATURE QAF WITH MEEM WITH YEH FINAL FORM*/ - RTUNI_ALPHA, /* U+00fdb3: ARABIC LIGATURE NOON WITH HAH WITH YEH FINAL FORM*/ - RTUNI_ALPHA, /* U+00fdb4: ARABIC LIGATURE QAF WITH MEEM WITH HAH INITIAL FORM*/ - RTUNI_ALPHA, /* U+00fdb5: ARABIC LIGATURE LAM WITH HAH WITH MEEM INITIAL FORM*/ - RTUNI_ALPHA, /* U+00fdb6: ARABIC LIGATURE AIN WITH MEEM WITH YEH FINAL FORM*/ - RTUNI_ALPHA, /* U+00fdb7: ARABIC LIGATURE KAF WITH MEEM WITH YEH FINAL FORM*/ - RTUNI_ALPHA, /* U+00fdb8: ARABIC LIGATURE NOON WITH JEEM WITH HAH INITIAL FORM*/ - RTUNI_ALPHA, /* U+00fdb9: ARABIC LIGATURE MEEM WITH KHAH WITH YEH FINAL FORM*/ - RTUNI_ALPHA, /* U+00fdba: ARABIC LIGATURE LAM WITH JEEM WITH MEEM INITIAL FORM*/ - RTUNI_ALPHA, /* U+00fdbb: ARABIC LIGATURE KAF WITH MEEM WITH MEEM FINAL FORM*/ - RTUNI_ALPHA, /* U+00fdbc: ARABIC LIGATURE LAM WITH JEEM WITH MEEM FINAL FORM*/ - RTUNI_ALPHA, /* U+00fdbd: ARABIC LIGATURE NOON WITH JEEM WITH HAH FINAL FORM*/ - RTUNI_ALPHA, /* U+00fdbe: ARABIC LIGATURE JEEM WITH HAH WITH YEH FINAL FORM*/ - RTUNI_ALPHA, /* U+00fdbf: ARABIC LIGATURE HAH WITH JEEM WITH YEH FINAL FORM*/ - RTUNI_ALPHA, /* U+00fdc0: ARABIC LIGATURE MEEM WITH JEEM WITH YEH FINAL FORM*/ - RTUNI_ALPHA, /* U+00fdc1: ARABIC LIGATURE FEH WITH MEEM WITH YEH FINAL FORM*/ - RTUNI_ALPHA, /* U+00fdc2: ARABIC LIGATURE BEH WITH HAH WITH YEH FINAL FORM*/ - RTUNI_ALPHA, /* U+00fdc3: ARABIC LIGATURE KAF WITH MEEM WITH MEEM INITIAL FORM*/ - RTUNI_ALPHA, /* U+00fdc4: ARABIC LIGATURE AIN WITH JEEM WITH MEEM INITIAL FORM*/ - RTUNI_ALPHA, /* U+00fdc5: ARABIC LIGATURE SAD WITH MEEM WITH MEEM INITIAL FORM*/ - RTUNI_ALPHA, /* U+00fdc6: ARABIC LIGATURE SEEN WITH KHAH WITH YEH FINAL FORM*/ - RTUNI_ALPHA, /* U+00fdc7: ARABIC LIGATURE NOON WITH JEEM WITH YEH FINAL FORM*/ - 0, /* U+00fdc8: */ - 0, /* U+00fdc9: */ - 0, /* U+00fdca: */ - 0, /* U+00fdcb: */ - 0, /* U+00fdcc: */ - 0, /* U+00fdcd: */ - 0, /* U+00fdce: */ - 0, /* U+00fdcf: */ - 0, /* U+00fdd0: */ - 0, /* U+00fdd1: */ - 0, /* U+00fdd2: */ - 0, /* U+00fdd3: */ - 0, /* U+00fdd4: */ - 0, /* U+00fdd5: */ - 0, /* U+00fdd6: */ - 0, /* U+00fdd7: */ - 0, /* U+00fdd8: */ - 0, /* U+00fdd9: */ - 0, /* U+00fdda: */ - 0, /* U+00fddb: */ - 0, /* U+00fddc: */ - 0, /* U+00fddd: */ - 0, /* U+00fdde: */ - 0, /* U+00fddf: */ - 0, /* U+00fde0: */ - 0, /* U+00fde1: */ - 0, /* U+00fde2: */ - 0, /* U+00fde3: */ - 0, /* U+00fde4: */ - 0, /* U+00fde5: */ - 0, /* U+00fde6: */ - 0, /* U+00fde7: */ - 0, /* U+00fde8: */ - 0, /* U+00fde9: */ - 0, /* U+00fdea: */ - 0, /* U+00fdeb: */ - 0, /* U+00fdec: */ - 0, /* U+00fded: */ - 0, /* U+00fdee: */ - 0, /* U+00fdef: */ - RTUNI_ALPHA, /* U+00fdf0: ARABIC LIGATURE SALLA USED AS KORANIC STOP SIGN ISOLATED FORM*/ - RTUNI_ALPHA, /* U+00fdf1: ARABIC LIGATURE QALA USED AS KORANIC STOP SIGN ISOLATED FORM*/ - RTUNI_ALPHA, /* U+00fdf2: ARABIC LIGATURE ALLAH ISOLATED FORM*/ - RTUNI_ALPHA, /* U+00fdf3: ARABIC LIGATURE AKBAR ISOLATED FORM*/ - RTUNI_ALPHA, /* U+00fdf4: ARABIC LIGATURE MOHAMMAD ISOLATED FORM*/ - RTUNI_ALPHA, /* U+00fdf5: ARABIC LIGATURE SALAM ISOLATED FORM*/ - RTUNI_ALPHA, /* U+00fdf6: ARABIC LIGATURE RASOUL ISOLATED FORM*/ - RTUNI_ALPHA, /* U+00fdf7: ARABIC LIGATURE ALAYHE ISOLATED FORM*/ - RTUNI_ALPHA, /* U+00fdf8: ARABIC LIGATURE WASALLAM ISOLATED FORM*/ - RTUNI_ALPHA, /* U+00fdf9: ARABIC LIGATURE SALLA ISOLATED FORM*/ - RTUNI_ALPHA, /* U+00fdfa: ARABIC LIGATURE SALLALLAHOU ALAYHE WASALLAM*/ - RTUNI_ALPHA, /* U+00fdfb: ARABIC LIGATURE JALLAJALALOUHOU*/ - 0, /* U+00fdfc: RIAL SIGN*/ - 0, /* U+00fdfd: ARABIC LIGATURE BISMILLAH AR-RAHMAN AR-RAHEEM*/ - 0, /* U+00fdfe: */ - 0, /* U+00fdff: */ - 0, /* U+00fe00: VARIATION SELECTOR-1*/ - 0, /* U+00fe01: VARIATION SELECTOR-2*/ - 0, /* U+00fe02: VARIATION SELECTOR-3*/ - 0, /* U+00fe03: VARIATION SELECTOR-4*/ - 0, /* U+00fe04: VARIATION SELECTOR-5*/ - 0, /* U+00fe05: VARIATION SELECTOR-6*/ - 0, /* U+00fe06: VARIATION SELECTOR-7*/ - 0, /* U+00fe07: VARIATION SELECTOR-8*/ - 0, /* U+00fe08: VARIATION SELECTOR-9*/ - 0, /* U+00fe09: VARIATION SELECTOR-10*/ - 0, /* U+00fe0a: VARIATION SELECTOR-11*/ - 0, /* U+00fe0b: VARIATION SELECTOR-12*/ - 0, /* U+00fe0c: VARIATION SELECTOR-13*/ - 0, /* U+00fe0d: VARIATION SELECTOR-14*/ - 0, /* U+00fe0e: VARIATION SELECTOR-15*/ - 0, /* U+00fe0f: VARIATION SELECTOR-16*/ - 0, /* U+00fe10: PRESENTATION FORM FOR VERTICAL COMMA*/ - 0, /* U+00fe11: PRESENTATION FORM FOR VERTICAL IDEOGRAPHIC COMMA*/ - 0, /* U+00fe12: PRESENTATION FORM FOR VERTICAL IDEOGRAPHIC FULL STOP*/ - 0, /* U+00fe13: PRESENTATION FORM FOR VERTICAL COLON*/ - 0, /* U+00fe14: PRESENTATION FORM FOR VERTICAL SEMICOLON*/ - 0, /* U+00fe15: PRESENTATION FORM FOR VERTICAL EXCLAMATION MARK*/ - 0, /* U+00fe16: PRESENTATION FORM FOR VERTICAL QUESTION MARK*/ - 0, /* U+00fe17: PRESENTATION FORM FOR VERTICAL LEFT WHITE LENTICULAR BRACKET*/ - 0, /* U+00fe18: PRESENTATION FORM FOR VERTICAL RIGHT WHITE LENTICULAR BRAKCET*/ - 0, /* U+00fe19: PRESENTATION FORM FOR VERTICAL HORIZONTAL ELLIPSIS*/ - 0, /* U+00fe1a: */ - 0, /* U+00fe1b: */ - 0, /* U+00fe1c: */ - 0, /* U+00fe1d: */ - 0, /* U+00fe1e: */ - 0, /* U+00fe1f: */ - 0, /* U+00fe20: COMBINING LIGATURE LEFT HALF*/ - 0, /* U+00fe21: COMBINING LIGATURE RIGHT HALF*/ - 0, /* U+00fe22: COMBINING DOUBLE TILDE LEFT HALF*/ - 0, /* U+00fe23: COMBINING DOUBLE TILDE RIGHT HALF*/ - 0, /* U+00fe24: */ - 0, /* U+00fe25: */ - 0, /* U+00fe26: */ - 0, /* U+00fe27: */ - 0, /* U+00fe28: */ - 0, /* U+00fe29: */ - 0, /* U+00fe2a: */ - 0, /* U+00fe2b: */ - 0, /* U+00fe2c: */ - 0, /* U+00fe2d: */ - 0, /* U+00fe2e: */ - 0, /* U+00fe2f: */ - 0, /* U+00fe30: PRESENTATION FORM FOR VERTICAL TWO DOT LEADER*/ - 0, /* U+00fe31: PRESENTATION FORM FOR VERTICAL EM DASH*/ - 0, /* U+00fe32: PRESENTATION FORM FOR VERTICAL EN DASH*/ - 0, /* U+00fe33: PRESENTATION FORM FOR VERTICAL LOW LINE*/ - 0, /* U+00fe34: PRESENTATION FORM FOR VERTICAL WAVY LOW LINE*/ - 0, /* U+00fe35: PRESENTATION FORM FOR VERTICAL LEFT PARENTHESIS*/ - 0, /* U+00fe36: PRESENTATION FORM FOR VERTICAL RIGHT PARENTHESIS*/ - 0, /* U+00fe37: PRESENTATION FORM FOR VERTICAL LEFT CURLY BRACKET*/ - 0, /* U+00fe38: PRESENTATION FORM FOR VERTICAL RIGHT CURLY BRACKET*/ - 0, /* U+00fe39: PRESENTATION FORM FOR VERTICAL LEFT TORTOISE SHELL BRACKET*/ - 0, /* U+00fe3a: PRESENTATION FORM FOR VERTICAL RIGHT TORTOISE SHELL BRACKET*/ - 0, /* U+00fe3b: PRESENTATION FORM FOR VERTICAL LEFT BLACK LENTICULAR BRACKET*/ - 0, /* U+00fe3c: PRESENTATION FORM FOR VERTICAL RIGHT BLACK LENTICULAR BRACKET*/ - 0, /* U+00fe3d: PRESENTATION FORM FOR VERTICAL LEFT DOUBLE ANGLE BRACKET*/ - 0, /* U+00fe3e: PRESENTATION FORM FOR VERTICAL RIGHT DOUBLE ANGLE BRACKET*/ - 0, /* U+00fe3f: PRESENTATION FORM FOR VERTICAL LEFT ANGLE BRACKET*/ - 0, /* U+00fe40: PRESENTATION FORM FOR VERTICAL RIGHT ANGLE BRACKET*/ - 0, /* U+00fe41: PRESENTATION FORM FOR VERTICAL LEFT CORNER BRACKET*/ - 0, /* U+00fe42: PRESENTATION FORM FOR VERTICAL RIGHT CORNER BRACKET*/ - 0, /* U+00fe43: PRESENTATION FORM FOR VERTICAL LEFT WHITE CORNER BRACKET*/ - 0, /* U+00fe44: PRESENTATION FORM FOR VERTICAL RIGHT WHITE CORNER BRACKET*/ - 0, /* U+00fe45: SESAME DOT*/ - 0, /* U+00fe46: WHITE SESAME DOT*/ - 0, /* U+00fe47: PRESENTATION FORM FOR VERTICAL LEFT SQUARE BRACKET*/ - 0, /* U+00fe48: PRESENTATION FORM FOR VERTICAL RIGHT SQUARE BRACKET*/ - 0, /* U+00fe49: DASHED OVERLINE*/ - 0, /* U+00fe4a: CENTRELINE OVERLINE*/ - 0, /* U+00fe4b: WAVY OVERLINE*/ - 0, /* U+00fe4c: DOUBLE WAVY OVERLINE*/ - 0, /* U+00fe4d: DASHED LOW LINE*/ - 0, /* U+00fe4e: CENTRELINE LOW LINE*/ - 0, /* U+00fe4f: WAVY LOW LINE*/ - 0, /* U+00fe50: SMALL COMMA*/ - 0, /* U+00fe51: SMALL IDEOGRAPHIC COMMA*/ - 0, /* U+00fe52: SMALL FULL STOP*/ - 0, /* U+00fe53: */ - 0, /* U+00fe54: SMALL SEMICOLON*/ - 0, /* U+00fe55: SMALL COLON*/ - 0, /* U+00fe56: SMALL QUESTION MARK*/ - 0, /* U+00fe57: SMALL EXCLAMATION MARK*/ - 0, /* U+00fe58: SMALL EM DASH*/ - 0, /* U+00fe59: SMALL LEFT PARENTHESIS*/ - 0, /* U+00fe5a: SMALL RIGHT PARENTHESIS*/ - 0, /* U+00fe5b: SMALL LEFT CURLY BRACKET*/ - 0, /* U+00fe5c: SMALL RIGHT CURLY BRACKET*/ - 0, /* U+00fe5d: SMALL LEFT TORTOISE SHELL BRACKET*/ - 0, /* U+00fe5e: SMALL RIGHT TORTOISE SHELL BRACKET*/ - 0, /* U+00fe5f: SMALL NUMBER SIGN*/ - 0, /* U+00fe60: SMALL AMPERSAND*/ - 0, /* U+00fe61: SMALL ASTERISK*/ - 0, /* U+00fe62: SMALL PLUS SIGN*/ - 0, /* U+00fe63: SMALL HYPHEN-MINUS*/ - 0, /* U+00fe64: SMALL LESS-THAN SIGN*/ - 0, /* U+00fe65: SMALL GREATER-THAN SIGN*/ - 0, /* U+00fe66: SMALL EQUALS SIGN*/ - 0, /* U+00fe67: */ - 0, /* U+00fe68: SMALL REVERSE SOLIDUS*/ - 0, /* U+00fe69: SMALL DOLLAR SIGN*/ - 0, /* U+00fe6a: SMALL PERCENT SIGN*/ - 0, /* U+00fe6b: SMALL COMMERCIAL AT*/ - 0, /* U+00fe6c: */ - 0, /* U+00fe6d: */ - 0, /* U+00fe6e: */ - 0, /* U+00fe6f: */ - RTUNI_ALPHA, /* U+00fe70: ARABIC FATHATAN ISOLATED FORM*/ - RTUNI_ALPHA, /* U+00fe71: ARABIC TATWEEL WITH FATHATAN ABOVE*/ - RTUNI_ALPHA, /* U+00fe72: ARABIC DAMMATAN ISOLATED FORM*/ - RTUNI_ALPHA, /* U+00fe73: ARABIC TAIL FRAGMENT*/ - RTUNI_ALPHA, /* U+00fe74: ARABIC KASRATAN ISOLATED FORM*/ - 0, /* U+00fe75: */ - RTUNI_ALPHA, /* U+00fe76: ARABIC FATHA ISOLATED FORM*/ - RTUNI_ALPHA, /* U+00fe77: ARABIC FATHA MEDIAL FORM*/ - RTUNI_ALPHA, /* U+00fe78: ARABIC DAMMA ISOLATED FORM*/ - RTUNI_ALPHA, /* U+00fe79: ARABIC DAMMA MEDIAL FORM*/ - RTUNI_ALPHA, /* U+00fe7a: ARABIC KASRA ISOLATED FORM*/ - RTUNI_ALPHA, /* U+00fe7b: ARABIC KASRA MEDIAL FORM*/ - RTUNI_ALPHA, /* U+00fe7c: ARABIC SHADDA ISOLATED FORM*/ - RTUNI_ALPHA, /* U+00fe7d: ARABIC SHADDA MEDIAL FORM*/ - RTUNI_ALPHA, /* U+00fe7e: ARABIC SUKUN ISOLATED FORM*/ - RTUNI_ALPHA, /* U+00fe7f: ARABIC SUKUN MEDIAL FORM*/ - RTUNI_ALPHA, /* U+00fe80: ARABIC LETTER HAMZA ISOLATED FORM*/ - RTUNI_ALPHA, /* U+00fe81: ARABIC LETTER ALEF WITH MADDA ABOVE ISOLATED FORM*/ - RTUNI_ALPHA, /* U+00fe82: ARABIC LETTER ALEF WITH MADDA ABOVE FINAL FORM*/ - RTUNI_ALPHA, /* U+00fe83: ARABIC LETTER ALEF WITH HAMZA ABOVE ISOLATED FORM*/ - RTUNI_ALPHA, /* U+00fe84: ARABIC LETTER ALEF WITH HAMZA ABOVE FINAL FORM*/ - RTUNI_ALPHA, /* U+00fe85: ARABIC LETTER WAW WITH HAMZA ABOVE ISOLATED FORM*/ - RTUNI_ALPHA, /* U+00fe86: ARABIC LETTER WAW WITH HAMZA ABOVE FINAL FORM*/ - RTUNI_ALPHA, /* U+00fe87: ARABIC LETTER ALEF WITH HAMZA BELOW ISOLATED FORM*/ - RTUNI_ALPHA, /* U+00fe88: ARABIC LETTER ALEF WITH HAMZA BELOW FINAL FORM*/ - RTUNI_ALPHA, /* U+00fe89: ARABIC LETTER YEH WITH HAMZA ABOVE ISOLATED FORM*/ - RTUNI_ALPHA, /* U+00fe8a: ARABIC LETTER YEH WITH HAMZA ABOVE FINAL FORM*/ - RTUNI_ALPHA, /* U+00fe8b: ARABIC LETTER YEH WITH HAMZA ABOVE INITIAL FORM*/ - RTUNI_ALPHA, /* U+00fe8c: ARABIC LETTER YEH WITH HAMZA ABOVE MEDIAL FORM*/ - RTUNI_ALPHA, /* U+00fe8d: ARABIC LETTER ALEF ISOLATED FORM*/ - RTUNI_ALPHA, /* U+00fe8e: ARABIC LETTER ALEF FINAL FORM*/ - RTUNI_ALPHA, /* U+00fe8f: ARABIC LETTER BEH ISOLATED FORM*/ - RTUNI_ALPHA, /* U+00fe90: ARABIC LETTER BEH FINAL FORM*/ - RTUNI_ALPHA, /* U+00fe91: ARABIC LETTER BEH INITIAL FORM*/ - RTUNI_ALPHA, /* U+00fe92: ARABIC LETTER BEH MEDIAL FORM*/ - RTUNI_ALPHA, /* U+00fe93: ARABIC LETTER TEH MARBUTA ISOLATED FORM*/ - RTUNI_ALPHA, /* U+00fe94: ARABIC LETTER TEH MARBUTA FINAL FORM*/ - RTUNI_ALPHA, /* U+00fe95: ARABIC LETTER TEH ISOLATED FORM*/ - RTUNI_ALPHA, /* U+00fe96: ARABIC LETTER TEH FINAL FORM*/ - RTUNI_ALPHA, /* U+00fe97: ARABIC LETTER TEH INITIAL FORM*/ - RTUNI_ALPHA, /* U+00fe98: ARABIC LETTER TEH MEDIAL FORM*/ - RTUNI_ALPHA, /* U+00fe99: ARABIC LETTER THEH ISOLATED FORM*/ - RTUNI_ALPHA, /* U+00fe9a: ARABIC LETTER THEH FINAL FORM*/ - RTUNI_ALPHA, /* U+00fe9b: ARABIC LETTER THEH INITIAL FORM*/ - RTUNI_ALPHA, /* U+00fe9c: ARABIC LETTER THEH MEDIAL FORM*/ - RTUNI_ALPHA, /* U+00fe9d: ARABIC LETTER JEEM ISOLATED FORM*/ - RTUNI_ALPHA, /* U+00fe9e: ARABIC LETTER JEEM FINAL FORM*/ - RTUNI_ALPHA, /* U+00fe9f: ARABIC LETTER JEEM INITIAL FORM*/ - RTUNI_ALPHA, /* U+00fea0: ARABIC LETTER JEEM MEDIAL FORM*/ - RTUNI_ALPHA, /* U+00fea1: ARABIC LETTER HAH ISOLATED FORM*/ - RTUNI_ALPHA, /* U+00fea2: ARABIC LETTER HAH FINAL FORM*/ - RTUNI_ALPHA, /* U+00fea3: ARABIC LETTER HAH INITIAL FORM*/ - RTUNI_ALPHA, /* U+00fea4: ARABIC LETTER HAH MEDIAL FORM*/ - RTUNI_ALPHA, /* U+00fea5: ARABIC LETTER KHAH ISOLATED FORM*/ - RTUNI_ALPHA, /* U+00fea6: ARABIC LETTER KHAH FINAL FORM*/ - RTUNI_ALPHA, /* U+00fea7: ARABIC LETTER KHAH INITIAL FORM*/ - RTUNI_ALPHA, /* U+00fea8: ARABIC LETTER KHAH MEDIAL FORM*/ - RTUNI_ALPHA, /* U+00fea9: ARABIC LETTER DAL ISOLATED FORM*/ - RTUNI_ALPHA, /* U+00feaa: ARABIC LETTER DAL FINAL FORM*/ - RTUNI_ALPHA, /* U+00feab: ARABIC LETTER THAL ISOLATED FORM*/ - RTUNI_ALPHA, /* U+00feac: ARABIC LETTER THAL FINAL FORM*/ - RTUNI_ALPHA, /* U+00fead: ARABIC LETTER REH ISOLATED FORM*/ - RTUNI_ALPHA, /* U+00feae: ARABIC LETTER REH FINAL FORM*/ - RTUNI_ALPHA, /* U+00feaf: ARABIC LETTER ZAIN ISOLATED FORM*/ - RTUNI_ALPHA, /* U+00feb0: ARABIC LETTER ZAIN FINAL FORM*/ - RTUNI_ALPHA, /* U+00feb1: ARABIC LETTER SEEN ISOLATED FORM*/ - RTUNI_ALPHA, /* U+00feb2: ARABIC LETTER SEEN FINAL FORM*/ - RTUNI_ALPHA, /* U+00feb3: ARABIC LETTER SEEN INITIAL FORM*/ - RTUNI_ALPHA, /* U+00feb4: ARABIC LETTER SEEN MEDIAL FORM*/ - RTUNI_ALPHA, /* U+00feb5: ARABIC LETTER SHEEN ISOLATED FORM*/ - RTUNI_ALPHA, /* U+00feb6: ARABIC LETTER SHEEN FINAL FORM*/ - RTUNI_ALPHA, /* U+00feb7: ARABIC LETTER SHEEN INITIAL FORM*/ - RTUNI_ALPHA, /* U+00feb8: ARABIC LETTER SHEEN MEDIAL FORM*/ - RTUNI_ALPHA, /* U+00feb9: ARABIC LETTER SAD ISOLATED FORM*/ - RTUNI_ALPHA, /* U+00feba: ARABIC LETTER SAD FINAL FORM*/ - RTUNI_ALPHA, /* U+00febb: ARABIC LETTER SAD INITIAL FORM*/ - RTUNI_ALPHA, /* U+00febc: ARABIC LETTER SAD MEDIAL FORM*/ - RTUNI_ALPHA, /* U+00febd: ARABIC LETTER DAD ISOLATED FORM*/ - RTUNI_ALPHA, /* U+00febe: ARABIC LETTER DAD FINAL FORM*/ - RTUNI_ALPHA, /* U+00febf: ARABIC LETTER DAD INITIAL FORM*/ - RTUNI_ALPHA, /* U+00fec0: ARABIC LETTER DAD MEDIAL FORM*/ - RTUNI_ALPHA, /* U+00fec1: ARABIC LETTER TAH ISOLATED FORM*/ - RTUNI_ALPHA, /* U+00fec2: ARABIC LETTER TAH FINAL FORM*/ - RTUNI_ALPHA, /* U+00fec3: ARABIC LETTER TAH INITIAL FORM*/ - RTUNI_ALPHA, /* U+00fec4: ARABIC LETTER TAH MEDIAL FORM*/ - RTUNI_ALPHA, /* U+00fec5: ARABIC LETTER ZAH ISOLATED FORM*/ - RTUNI_ALPHA, /* U+00fec6: ARABIC LETTER ZAH FINAL FORM*/ - RTUNI_ALPHA, /* U+00fec7: ARABIC LETTER ZAH INITIAL FORM*/ - RTUNI_ALPHA, /* U+00fec8: ARABIC LETTER ZAH MEDIAL FORM*/ - RTUNI_ALPHA, /* U+00fec9: ARABIC LETTER AIN ISOLATED FORM*/ - RTUNI_ALPHA, /* U+00feca: ARABIC LETTER AIN FINAL FORM*/ - RTUNI_ALPHA, /* U+00fecb: ARABIC LETTER AIN INITIAL FORM*/ - RTUNI_ALPHA, /* U+00fecc: ARABIC LETTER AIN MEDIAL FORM*/ - RTUNI_ALPHA, /* U+00fecd: ARABIC LETTER GHAIN ISOLATED FORM*/ - RTUNI_ALPHA, /* U+00fece: ARABIC LETTER GHAIN FINAL FORM*/ - RTUNI_ALPHA, /* U+00fecf: ARABIC LETTER GHAIN INITIAL FORM*/ - RTUNI_ALPHA, /* U+00fed0: ARABIC LETTER GHAIN MEDIAL FORM*/ - RTUNI_ALPHA, /* U+00fed1: ARABIC LETTER FEH ISOLATED FORM*/ - RTUNI_ALPHA, /* U+00fed2: ARABIC LETTER FEH FINAL FORM*/ - RTUNI_ALPHA, /* U+00fed3: ARABIC LETTER FEH INITIAL FORM*/ - RTUNI_ALPHA, /* U+00fed4: ARABIC LETTER FEH MEDIAL FORM*/ - RTUNI_ALPHA, /* U+00fed5: ARABIC LETTER QAF ISOLATED FORM*/ - RTUNI_ALPHA, /* U+00fed6: ARABIC LETTER QAF FINAL FORM*/ - RTUNI_ALPHA, /* U+00fed7: ARABIC LETTER QAF INITIAL FORM*/ - RTUNI_ALPHA, /* U+00fed8: ARABIC LETTER QAF MEDIAL FORM*/ - RTUNI_ALPHA, /* U+00fed9: ARABIC LETTER KAF ISOLATED FORM*/ - RTUNI_ALPHA, /* U+00feda: ARABIC LETTER KAF FINAL FORM*/ - RTUNI_ALPHA, /* U+00fedb: ARABIC LETTER KAF INITIAL FORM*/ - RTUNI_ALPHA, /* U+00fedc: ARABIC LETTER KAF MEDIAL FORM*/ - RTUNI_ALPHA, /* U+00fedd: ARABIC LETTER LAM ISOLATED FORM*/ - RTUNI_ALPHA, /* U+00fede: ARABIC LETTER LAM FINAL FORM*/ - RTUNI_ALPHA, /* U+00fedf: ARABIC LETTER LAM INITIAL FORM*/ - RTUNI_ALPHA, /* U+00fee0: ARABIC LETTER LAM MEDIAL FORM*/ - RTUNI_ALPHA, /* U+00fee1: ARABIC LETTER MEEM ISOLATED FORM*/ - RTUNI_ALPHA, /* U+00fee2: ARABIC LETTER MEEM FINAL FORM*/ - RTUNI_ALPHA, /* U+00fee3: ARABIC LETTER MEEM INITIAL FORM*/ - RTUNI_ALPHA, /* U+00fee4: ARABIC LETTER MEEM MEDIAL FORM*/ - RTUNI_ALPHA, /* U+00fee5: ARABIC LETTER NOON ISOLATED FORM*/ - RTUNI_ALPHA, /* U+00fee6: ARABIC LETTER NOON FINAL FORM*/ - RTUNI_ALPHA, /* U+00fee7: ARABIC LETTER NOON INITIAL FORM*/ - RTUNI_ALPHA, /* U+00fee8: ARABIC LETTER NOON MEDIAL FORM*/ - RTUNI_ALPHA, /* U+00fee9: ARABIC LETTER HEH ISOLATED FORM*/ - RTUNI_ALPHA, /* U+00feea: ARABIC LETTER HEH FINAL FORM*/ - RTUNI_ALPHA, /* U+00feeb: ARABIC LETTER HEH INITIAL FORM*/ - RTUNI_ALPHA, /* U+00feec: ARABIC LETTER HEH MEDIAL FORM*/ - RTUNI_ALPHA, /* U+00feed: ARABIC LETTER WAW ISOLATED FORM*/ - RTUNI_ALPHA, /* U+00feee: ARABIC LETTER WAW FINAL FORM*/ - RTUNI_ALPHA, /* U+00feef: ARABIC LETTER ALEF MAKSURA ISOLATED FORM*/ - RTUNI_ALPHA, /* U+00fef0: ARABIC LETTER ALEF MAKSURA FINAL FORM*/ - RTUNI_ALPHA, /* U+00fef1: ARABIC LETTER YEH ISOLATED FORM*/ - RTUNI_ALPHA, /* U+00fef2: ARABIC LETTER YEH FINAL FORM*/ - RTUNI_ALPHA, /* U+00fef3: ARABIC LETTER YEH INITIAL FORM*/ - RTUNI_ALPHA, /* U+00fef4: ARABIC LETTER YEH MEDIAL FORM*/ - RTUNI_ALPHA, /* U+00fef5: ARABIC LIGATURE LAM WITH ALEF WITH MADDA ABOVE ISOLATED FORM*/ - RTUNI_ALPHA, /* U+00fef6: ARABIC LIGATURE LAM WITH ALEF WITH MADDA ABOVE FINAL FORM*/ - RTUNI_ALPHA, /* U+00fef7: ARABIC LIGATURE LAM WITH ALEF WITH HAMZA ABOVE ISOLATED FORM*/ - RTUNI_ALPHA, /* U+00fef8: ARABIC LIGATURE LAM WITH ALEF WITH HAMZA ABOVE FINAL FORM*/ - RTUNI_ALPHA, /* U+00fef9: ARABIC LIGATURE LAM WITH ALEF WITH HAMZA BELOW ISOLATED FORM*/ - RTUNI_ALPHA, /* U+00fefa: ARABIC LIGATURE LAM WITH ALEF WITH HAMZA BELOW FINAL FORM*/ - RTUNI_ALPHA, /* U+00fefb: ARABIC LIGATURE LAM WITH ALEF ISOLATED FORM*/ - RTUNI_ALPHA, /* U+00fefc: ARABIC LIGATURE LAM WITH ALEF FINAL FORM*/ - 0, /* U+00fefd: */ - 0, /* U+00fefe: */ - 0, /* U+00feff: ZERO WIDTH NO-BREAK SPACE*/ - 0, /* U+00ff00: */ - 0, /* U+00ff01: FULLWIDTH EXCLAMATION MARK*/ - 0, /* U+00ff02: FULLWIDTH QUOTATION MARK*/ - 0, /* U+00ff03: FULLWIDTH NUMBER SIGN*/ - 0, /* U+00ff04: FULLWIDTH DOLLAR SIGN*/ - 0, /* U+00ff05: FULLWIDTH PERCENT SIGN*/ - 0, /* U+00ff06: FULLWIDTH AMPERSAND*/ - 0, /* U+00ff07: FULLWIDTH APOSTROPHE*/ - 0, /* U+00ff08: FULLWIDTH LEFT PARENTHESIS*/ - 0, /* U+00ff09: FULLWIDTH RIGHT PARENTHESIS*/ - 0, /* U+00ff0a: FULLWIDTH ASTERISK*/ - 0, /* U+00ff0b: FULLWIDTH PLUS SIGN*/ - 0, /* U+00ff0c: FULLWIDTH COMMA*/ - 0, /* U+00ff0d: FULLWIDTH HYPHEN-MINUS*/ - 0, /* U+00ff0e: FULLWIDTH FULL STOP*/ - 0, /* U+00ff0f: FULLWIDTH SOLIDUS*/ - RTUNI_XDIGIT | RTUNI_DDIGIT, /* U+00ff10: FULLWIDTH DIGIT ZERO*/ - RTUNI_XDIGIT | RTUNI_DDIGIT, /* U+00ff11: FULLWIDTH DIGIT ONE*/ - RTUNI_XDIGIT | RTUNI_DDIGIT, /* U+00ff12: FULLWIDTH DIGIT TWO*/ - RTUNI_XDIGIT | RTUNI_DDIGIT, /* U+00ff13: FULLWIDTH DIGIT THREE*/ - RTUNI_XDIGIT | RTUNI_DDIGIT, /* U+00ff14: FULLWIDTH DIGIT FOUR*/ - RTUNI_XDIGIT | RTUNI_DDIGIT, /* U+00ff15: FULLWIDTH DIGIT FIVE*/ - RTUNI_XDIGIT | RTUNI_DDIGIT, /* U+00ff16: FULLWIDTH DIGIT SIX*/ - RTUNI_XDIGIT | RTUNI_DDIGIT, /* U+00ff17: FULLWIDTH DIGIT SEVEN*/ - RTUNI_XDIGIT | RTUNI_DDIGIT, /* U+00ff18: FULLWIDTH DIGIT EIGHT*/ - RTUNI_XDIGIT | RTUNI_DDIGIT, /* U+00ff19: FULLWIDTH DIGIT NINE*/ - 0, /* U+00ff1a: FULLWIDTH COLON*/ - 0, /* U+00ff1b: FULLWIDTH SEMICOLON*/ - 0, /* U+00ff1c: FULLWIDTH LESS-THAN SIGN*/ - 0, /* U+00ff1d: FULLWIDTH EQUALS SIGN*/ - 0, /* U+00ff1e: FULLWIDTH GREATER-THAN SIGN*/ - 0, /* U+00ff1f: FULLWIDTH QUESTION MARK*/ - 0, /* U+00ff20: FULLWIDTH COMMERCIAL AT*/ - RTUNI_ALPHA | RTUNI_XDIGIT | RTUNI_UPPER, /* U+00ff21: FULLWIDTH LATIN CAPITAL LETTER A*/ - RTUNI_ALPHA | RTUNI_XDIGIT | RTUNI_UPPER, /* U+00ff22: FULLWIDTH LATIN CAPITAL LETTER B*/ - RTUNI_ALPHA | RTUNI_XDIGIT | RTUNI_UPPER, /* U+00ff23: FULLWIDTH LATIN CAPITAL LETTER C*/ - RTUNI_ALPHA | RTUNI_XDIGIT | RTUNI_UPPER, /* U+00ff24: FULLWIDTH LATIN CAPITAL LETTER D*/ - RTUNI_ALPHA | RTUNI_XDIGIT | RTUNI_UPPER, /* U+00ff25: FULLWIDTH LATIN CAPITAL LETTER E*/ - RTUNI_ALPHA | RTUNI_XDIGIT | RTUNI_UPPER, /* U+00ff26: FULLWIDTH LATIN CAPITAL LETTER F*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+00ff27: FULLWIDTH LATIN CAPITAL LETTER G*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+00ff28: FULLWIDTH LATIN CAPITAL LETTER H*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+00ff29: FULLWIDTH LATIN CAPITAL LETTER I*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+00ff2a: FULLWIDTH LATIN CAPITAL LETTER J*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+00ff2b: FULLWIDTH LATIN CAPITAL LETTER K*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+00ff2c: FULLWIDTH LATIN CAPITAL LETTER L*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+00ff2d: FULLWIDTH LATIN CAPITAL LETTER M*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+00ff2e: FULLWIDTH LATIN CAPITAL LETTER N*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+00ff2f: FULLWIDTH LATIN CAPITAL LETTER O*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+00ff30: FULLWIDTH LATIN CAPITAL LETTER P*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+00ff31: FULLWIDTH LATIN CAPITAL LETTER Q*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+00ff32: FULLWIDTH LATIN CAPITAL LETTER R*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+00ff33: FULLWIDTH LATIN CAPITAL LETTER S*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+00ff34: FULLWIDTH LATIN CAPITAL LETTER T*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+00ff35: FULLWIDTH LATIN CAPITAL LETTER U*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+00ff36: FULLWIDTH LATIN CAPITAL LETTER V*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+00ff37: FULLWIDTH LATIN CAPITAL LETTER W*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+00ff38: FULLWIDTH LATIN CAPITAL LETTER X*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+00ff39: FULLWIDTH LATIN CAPITAL LETTER Y*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+00ff3a: FULLWIDTH LATIN CAPITAL LETTER Z*/ - 0, /* U+00ff3b: FULLWIDTH LEFT SQUARE BRACKET*/ - 0, /* U+00ff3c: FULLWIDTH REVERSE SOLIDUS*/ - 0, /* U+00ff3d: FULLWIDTH RIGHT SQUARE BRACKET*/ - 0, /* U+00ff3e: FULLWIDTH CIRCUMFLEX ACCENT*/ - 0, /* U+00ff3f: FULLWIDTH LOW LINE*/ - 0, /* U+00ff40: FULLWIDTH GRAVE ACCENT*/ - RTUNI_ALPHA | RTUNI_XDIGIT | RTUNI_LOWER, /* U+00ff41: FULLWIDTH LATIN SMALL LETTER A*/ - RTUNI_ALPHA | RTUNI_XDIGIT | RTUNI_LOWER, /* U+00ff42: FULLWIDTH LATIN SMALL LETTER B*/ - RTUNI_ALPHA | RTUNI_XDIGIT | RTUNI_LOWER, /* U+00ff43: FULLWIDTH LATIN SMALL LETTER C*/ - RTUNI_ALPHA | RTUNI_XDIGIT | RTUNI_LOWER, /* U+00ff44: FULLWIDTH LATIN SMALL LETTER D*/ - RTUNI_ALPHA | RTUNI_XDIGIT | RTUNI_LOWER, /* U+00ff45: FULLWIDTH LATIN SMALL LETTER E*/ - RTUNI_ALPHA | RTUNI_XDIGIT | RTUNI_LOWER, /* U+00ff46: FULLWIDTH LATIN SMALL LETTER F*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+00ff47: FULLWIDTH LATIN SMALL LETTER G*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+00ff48: FULLWIDTH LATIN SMALL LETTER H*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+00ff49: FULLWIDTH LATIN SMALL LETTER I*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+00ff4a: FULLWIDTH LATIN SMALL LETTER J*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+00ff4b: FULLWIDTH LATIN SMALL LETTER K*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+00ff4c: FULLWIDTH LATIN SMALL LETTER L*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+00ff4d: FULLWIDTH LATIN SMALL LETTER M*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+00ff4e: FULLWIDTH LATIN SMALL LETTER N*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+00ff4f: FULLWIDTH LATIN SMALL LETTER O*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+00ff50: FULLWIDTH LATIN SMALL LETTER P*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+00ff51: FULLWIDTH LATIN SMALL LETTER Q*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+00ff52: FULLWIDTH LATIN SMALL LETTER R*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+00ff53: FULLWIDTH LATIN SMALL LETTER S*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+00ff54: FULLWIDTH LATIN SMALL LETTER T*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+00ff55: FULLWIDTH LATIN SMALL LETTER U*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+00ff56: FULLWIDTH LATIN SMALL LETTER V*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+00ff57: FULLWIDTH LATIN SMALL LETTER W*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+00ff58: FULLWIDTH LATIN SMALL LETTER X*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+00ff59: FULLWIDTH LATIN SMALL LETTER Y*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+00ff5a: FULLWIDTH LATIN SMALL LETTER Z*/ - 0, /* U+00ff5b: FULLWIDTH LEFT CURLY BRACKET*/ - 0, /* U+00ff5c: FULLWIDTH VERTICAL LINE*/ - 0, /* U+00ff5d: FULLWIDTH RIGHT CURLY BRACKET*/ - 0, /* U+00ff5e: FULLWIDTH TILDE*/ - 0, /* U+00ff5f: FULLWIDTH LEFT WHITE PARENTHESIS*/ - 0, /* U+00ff60: FULLWIDTH RIGHT WHITE PARENTHESIS*/ - 0, /* U+00ff61: HALFWIDTH IDEOGRAPHIC FULL STOP*/ - 0, /* U+00ff62: HALFWIDTH LEFT CORNER BRACKET*/ - 0, /* U+00ff63: HALFWIDTH RIGHT CORNER BRACKET*/ - 0, /* U+00ff64: HALFWIDTH IDEOGRAPHIC COMMA*/ - 0, /* U+00ff65: HALFWIDTH KATAKANA MIDDLE DOT*/ - RTUNI_ALPHA, /* U+00ff66: HALFWIDTH KATAKANA LETTER WO*/ - RTUNI_ALPHA, /* U+00ff67: HALFWIDTH KATAKANA LETTER SMALL A*/ - RTUNI_ALPHA, /* U+00ff68: HALFWIDTH KATAKANA LETTER SMALL I*/ - RTUNI_ALPHA, /* U+00ff69: HALFWIDTH KATAKANA LETTER SMALL U*/ - RTUNI_ALPHA, /* U+00ff6a: HALFWIDTH KATAKANA LETTER SMALL E*/ - RTUNI_ALPHA, /* U+00ff6b: HALFWIDTH KATAKANA LETTER SMALL O*/ - RTUNI_ALPHA, /* U+00ff6c: HALFWIDTH KATAKANA LETTER SMALL YA*/ - RTUNI_ALPHA, /* U+00ff6d: HALFWIDTH KATAKANA LETTER SMALL YU*/ - RTUNI_ALPHA, /* U+00ff6e: HALFWIDTH KATAKANA LETTER SMALL YO*/ - RTUNI_ALPHA, /* U+00ff6f: HALFWIDTH KATAKANA LETTER SMALL TU*/ - RTUNI_ALPHA, /* U+00ff70: HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK*/ - RTUNI_ALPHA, /* U+00ff71: HALFWIDTH KATAKANA LETTER A*/ - RTUNI_ALPHA, /* U+00ff72: HALFWIDTH KATAKANA LETTER I*/ - RTUNI_ALPHA, /* U+00ff73: HALFWIDTH KATAKANA LETTER U*/ - RTUNI_ALPHA, /* U+00ff74: HALFWIDTH KATAKANA LETTER E*/ - RTUNI_ALPHA, /* U+00ff75: HALFWIDTH KATAKANA LETTER O*/ - RTUNI_ALPHA, /* U+00ff76: HALFWIDTH KATAKANA LETTER KA*/ - RTUNI_ALPHA, /* U+00ff77: HALFWIDTH KATAKANA LETTER KI*/ - RTUNI_ALPHA, /* U+00ff78: HALFWIDTH KATAKANA LETTER KU*/ - RTUNI_ALPHA, /* U+00ff79: HALFWIDTH KATAKANA LETTER KE*/ - RTUNI_ALPHA, /* U+00ff7a: HALFWIDTH KATAKANA LETTER KO*/ - RTUNI_ALPHA, /* U+00ff7b: HALFWIDTH KATAKANA LETTER SA*/ - RTUNI_ALPHA, /* U+00ff7c: HALFWIDTH KATAKANA LETTER SI*/ - RTUNI_ALPHA, /* U+00ff7d: HALFWIDTH KATAKANA LETTER SU*/ - RTUNI_ALPHA, /* U+00ff7e: HALFWIDTH KATAKANA LETTER SE*/ - RTUNI_ALPHA, /* U+00ff7f: HALFWIDTH KATAKANA LETTER SO*/ - RTUNI_ALPHA, /* U+00ff80: HALFWIDTH KATAKANA LETTER TA*/ - RTUNI_ALPHA, /* U+00ff81: HALFWIDTH KATAKANA LETTER TI*/ - RTUNI_ALPHA, /* U+00ff82: HALFWIDTH KATAKANA LETTER TU*/ - RTUNI_ALPHA, /* U+00ff83: HALFWIDTH KATAKANA LETTER TE*/ - RTUNI_ALPHA, /* U+00ff84: HALFWIDTH KATAKANA LETTER TO*/ - RTUNI_ALPHA, /* U+00ff85: HALFWIDTH KATAKANA LETTER NA*/ - RTUNI_ALPHA, /* U+00ff86: HALFWIDTH KATAKANA LETTER NI*/ - RTUNI_ALPHA, /* U+00ff87: HALFWIDTH KATAKANA LETTER NU*/ - RTUNI_ALPHA, /* U+00ff88: HALFWIDTH KATAKANA LETTER NE*/ - RTUNI_ALPHA, /* U+00ff89: HALFWIDTH KATAKANA LETTER NO*/ - RTUNI_ALPHA, /* U+00ff8a: HALFWIDTH KATAKANA LETTER HA*/ - RTUNI_ALPHA, /* U+00ff8b: HALFWIDTH KATAKANA LETTER HI*/ - RTUNI_ALPHA, /* U+00ff8c: HALFWIDTH KATAKANA LETTER HU*/ - RTUNI_ALPHA, /* U+00ff8d: HALFWIDTH KATAKANA LETTER HE*/ - RTUNI_ALPHA, /* U+00ff8e: HALFWIDTH KATAKANA LETTER HO*/ - RTUNI_ALPHA, /* U+00ff8f: HALFWIDTH KATAKANA LETTER MA*/ - RTUNI_ALPHA, /* U+00ff90: HALFWIDTH KATAKANA LETTER MI*/ - RTUNI_ALPHA, /* U+00ff91: HALFWIDTH KATAKANA LETTER MU*/ - RTUNI_ALPHA, /* U+00ff92: HALFWIDTH KATAKANA LETTER ME*/ - RTUNI_ALPHA, /* U+00ff93: HALFWIDTH KATAKANA LETTER MO*/ - RTUNI_ALPHA, /* U+00ff94: HALFWIDTH KATAKANA LETTER YA*/ - RTUNI_ALPHA, /* U+00ff95: HALFWIDTH KATAKANA LETTER YU*/ - RTUNI_ALPHA, /* U+00ff96: HALFWIDTH KATAKANA LETTER YO*/ - RTUNI_ALPHA, /* U+00ff97: HALFWIDTH KATAKANA LETTER RA*/ - RTUNI_ALPHA, /* U+00ff98: HALFWIDTH KATAKANA LETTER RI*/ - RTUNI_ALPHA, /* U+00ff99: HALFWIDTH KATAKANA LETTER RU*/ - RTUNI_ALPHA, /* U+00ff9a: HALFWIDTH KATAKANA LETTER RE*/ - RTUNI_ALPHA, /* U+00ff9b: HALFWIDTH KATAKANA LETTER RO*/ - RTUNI_ALPHA, /* U+00ff9c: HALFWIDTH KATAKANA LETTER WA*/ - RTUNI_ALPHA, /* U+00ff9d: HALFWIDTH KATAKANA LETTER N*/ - RTUNI_ALPHA, /* U+00ff9e: HALFWIDTH KATAKANA VOICED SOUND MARK*/ - RTUNI_ALPHA, /* U+00ff9f: HALFWIDTH KATAKANA SEMI-VOICED SOUND MARK*/ - RTUNI_ALPHA, /* U+00ffa0: HALFWIDTH HANGUL FILLER*/ - RTUNI_ALPHA, /* U+00ffa1: HALFWIDTH HANGUL LETTER KIYEOK*/ - RTUNI_ALPHA, /* U+00ffa2: HALFWIDTH HANGUL LETTER SSANGKIYEOK*/ - RTUNI_ALPHA, /* U+00ffa3: HALFWIDTH HANGUL LETTER KIYEOK-SIOS*/ - RTUNI_ALPHA, /* U+00ffa4: HALFWIDTH HANGUL LETTER NIEUN*/ - RTUNI_ALPHA, /* U+00ffa5: HALFWIDTH HANGUL LETTER NIEUN-CIEUC*/ - RTUNI_ALPHA, /* U+00ffa6: HALFWIDTH HANGUL LETTER NIEUN-HIEUH*/ - RTUNI_ALPHA, /* U+00ffa7: HALFWIDTH HANGUL LETTER TIKEUT*/ - RTUNI_ALPHA, /* U+00ffa8: HALFWIDTH HANGUL LETTER SSANGTIKEUT*/ - RTUNI_ALPHA, /* U+00ffa9: HALFWIDTH HANGUL LETTER RIEUL*/ - RTUNI_ALPHA, /* U+00ffaa: HALFWIDTH HANGUL LETTER RIEUL-KIYEOK*/ - RTUNI_ALPHA, /* U+00ffab: HALFWIDTH HANGUL LETTER RIEUL-MIEUM*/ - RTUNI_ALPHA, /* U+00ffac: HALFWIDTH HANGUL LETTER RIEUL-PIEUP*/ - RTUNI_ALPHA, /* U+00ffad: HALFWIDTH HANGUL LETTER RIEUL-SIOS*/ - RTUNI_ALPHA, /* U+00ffae: HALFWIDTH HANGUL LETTER RIEUL-THIEUTH*/ - RTUNI_ALPHA, /* U+00ffaf: HALFWIDTH HANGUL LETTER RIEUL-PHIEUPH*/ - RTUNI_ALPHA, /* U+00ffb0: HALFWIDTH HANGUL LETTER RIEUL-HIEUH*/ - RTUNI_ALPHA, /* U+00ffb1: HALFWIDTH HANGUL LETTER MIEUM*/ - RTUNI_ALPHA, /* U+00ffb2: HALFWIDTH HANGUL LETTER PIEUP*/ - RTUNI_ALPHA, /* U+00ffb3: HALFWIDTH HANGUL LETTER SSANGPIEUP*/ - RTUNI_ALPHA, /* U+00ffb4: HALFWIDTH HANGUL LETTER PIEUP-SIOS*/ - RTUNI_ALPHA, /* U+00ffb5: HALFWIDTH HANGUL LETTER SIOS*/ - RTUNI_ALPHA, /* U+00ffb6: HALFWIDTH HANGUL LETTER SSANGSIOS*/ - RTUNI_ALPHA, /* U+00ffb7: HALFWIDTH HANGUL LETTER IEUNG*/ - RTUNI_ALPHA, /* U+00ffb8: HALFWIDTH HANGUL LETTER CIEUC*/ - RTUNI_ALPHA, /* U+00ffb9: HALFWIDTH HANGUL LETTER SSANGCIEUC*/ - RTUNI_ALPHA, /* U+00ffba: HALFWIDTH HANGUL LETTER CHIEUCH*/ - RTUNI_ALPHA, /* U+00ffbb: HALFWIDTH HANGUL LETTER KHIEUKH*/ - RTUNI_ALPHA, /* U+00ffbc: HALFWIDTH HANGUL LETTER THIEUTH*/ - RTUNI_ALPHA, /* U+00ffbd: HALFWIDTH HANGUL LETTER PHIEUPH*/ - RTUNI_ALPHA, /* U+00ffbe: HALFWIDTH HANGUL LETTER HIEUH*/ - 0, /* U+00ffbf: */ - 0, /* U+00ffc0: */ - 0, /* U+00ffc1: */ - RTUNI_ALPHA, /* U+00ffc2: HALFWIDTH HANGUL LETTER A*/ - RTUNI_ALPHA, /* U+00ffc3: HALFWIDTH HANGUL LETTER AE*/ - RTUNI_ALPHA, /* U+00ffc4: HALFWIDTH HANGUL LETTER YA*/ - RTUNI_ALPHA, /* U+00ffc5: HALFWIDTH HANGUL LETTER YAE*/ - RTUNI_ALPHA, /* U+00ffc6: HALFWIDTH HANGUL LETTER EO*/ - RTUNI_ALPHA, /* U+00ffc7: HALFWIDTH HANGUL LETTER E*/ - 0, /* U+00ffc8: */ - 0, /* U+00ffc9: */ - RTUNI_ALPHA, /* U+00ffca: HALFWIDTH HANGUL LETTER YEO*/ - RTUNI_ALPHA, /* U+00ffcb: HALFWIDTH HANGUL LETTER YE*/ - RTUNI_ALPHA, /* U+00ffcc: HALFWIDTH HANGUL LETTER O*/ - RTUNI_ALPHA, /* U+00ffcd: HALFWIDTH HANGUL LETTER WA*/ - RTUNI_ALPHA, /* U+00ffce: HALFWIDTH HANGUL LETTER WAE*/ - RTUNI_ALPHA, /* U+00ffcf: HALFWIDTH HANGUL LETTER OE*/ - 0, /* U+00ffd0: */ - 0, /* U+00ffd1: */ - RTUNI_ALPHA, /* U+00ffd2: HALFWIDTH HANGUL LETTER YO*/ - RTUNI_ALPHA, /* U+00ffd3: HALFWIDTH HANGUL LETTER U*/ - RTUNI_ALPHA, /* U+00ffd4: HALFWIDTH HANGUL LETTER WEO*/ - RTUNI_ALPHA, /* U+00ffd5: HALFWIDTH HANGUL LETTER WE*/ - RTUNI_ALPHA, /* U+00ffd6: HALFWIDTH HANGUL LETTER WI*/ - RTUNI_ALPHA, /* U+00ffd7: HALFWIDTH HANGUL LETTER YU*/ - 0, /* U+00ffd8: */ - 0, /* U+00ffd9: */ - RTUNI_ALPHA, /* U+00ffda: HALFWIDTH HANGUL LETTER EU*/ - RTUNI_ALPHA, /* U+00ffdb: HALFWIDTH HANGUL LETTER YI*/ - RTUNI_ALPHA, /* U+00ffdc: HALFWIDTH HANGUL LETTER I*/ - 0, /* U+00ffdd: */ - 0, /* U+00ffde: */ - 0, /* U+00ffdf: */ - 0, /* U+00ffe0: FULLWIDTH CENT SIGN*/ - 0, /* U+00ffe1: FULLWIDTH POUND SIGN*/ - 0, /* U+00ffe2: FULLWIDTH NOT SIGN*/ - 0, /* U+00ffe3: FULLWIDTH MACRON*/ - 0, /* U+00ffe4: FULLWIDTH BROKEN BAR*/ - 0, /* U+00ffe5: FULLWIDTH YEN SIGN*/ - 0, /* U+00ffe6: FULLWIDTH WON SIGN*/ - 0, /* U+00ffe7: */ - 0, /* U+00ffe8: HALFWIDTH FORMS LIGHT VERTICAL*/ - 0, /* U+00ffe9: HALFWIDTH LEFTWARDS ARROW*/ - 0, /* U+00ffea: HALFWIDTH UPWARDS ARROW*/ - 0, /* U+00ffeb: HALFWIDTH RIGHTWARDS ARROW*/ - 0, /* U+00ffec: HALFWIDTH DOWNWARDS ARROW*/ - 0, /* U+00ffed: HALFWIDTH BLACK SQUARE*/ - 0, /* U+00ffee: HALFWIDTH WHITE CIRCLE*/ - 0, /* U+00ffef: */ - 0, /* U+00fff0: */ - 0, /* U+00fff1: */ - 0, /* U+00fff2: */ - 0, /* U+00fff3: */ - 0, /* U+00fff4: */ - 0, /* U+00fff5: */ - 0, /* U+00fff6: */ - 0, /* U+00fff7: */ - 0, /* U+00fff8: */ - 0, /* U+00fff9: INTERLINEAR ANNOTATION ANCHOR*/ - 0, /* U+00fffa: INTERLINEAR ANNOTATION SEPARATOR*/ - 0, /* U+00fffb: INTERLINEAR ANNOTATION TERMINATOR*/ - 0, /* U+00fffc: OBJECT REPLACEMENT CHARACTER*/ - 0, /* U+00fffd: REPLACEMENT CHARACTER*/ - 0, /* U+00fffe: */ - 0, /* U+00ffff: */ - RTUNI_ALPHA, /* U+010000: LINEAR B SYLLABLE B008 A*/ - RTUNI_ALPHA, /* U+010001: LINEAR B SYLLABLE B038 E*/ - RTUNI_ALPHA, /* U+010002: LINEAR B SYLLABLE B028 I*/ - RTUNI_ALPHA, /* U+010003: LINEAR B SYLLABLE B061 O*/ - RTUNI_ALPHA, /* U+010004: LINEAR B SYLLABLE B010 U*/ - RTUNI_ALPHA, /* U+010005: LINEAR B SYLLABLE B001 DA*/ - RTUNI_ALPHA, /* U+010006: LINEAR B SYLLABLE B045 DE*/ - RTUNI_ALPHA, /* U+010007: LINEAR B SYLLABLE B007 DI*/ - RTUNI_ALPHA, /* U+010008: LINEAR B SYLLABLE B014 DO*/ - RTUNI_ALPHA, /* U+010009: LINEAR B SYLLABLE B051 DU*/ - RTUNI_ALPHA, /* U+01000a: LINEAR B SYLLABLE B057 JA*/ - RTUNI_ALPHA, /* U+01000b: LINEAR B SYLLABLE B046 JE*/ - 0, /* U+01000c: */ - RTUNI_ALPHA, /* U+01000d: LINEAR B SYLLABLE B036 JO*/ - RTUNI_ALPHA, /* U+01000e: LINEAR B SYLLABLE B065 JU*/ - RTUNI_ALPHA, /* U+01000f: LINEAR B SYLLABLE B077 KA*/ - RTUNI_ALPHA, /* U+010010: LINEAR B SYLLABLE B044 KE*/ - RTUNI_ALPHA, /* U+010011: LINEAR B SYLLABLE B067 KI*/ - RTUNI_ALPHA, /* U+010012: LINEAR B SYLLABLE B070 KO*/ - RTUNI_ALPHA, /* U+010013: LINEAR B SYLLABLE B081 KU*/ - RTUNI_ALPHA, /* U+010014: LINEAR B SYLLABLE B080 MA*/ - RTUNI_ALPHA, /* U+010015: LINEAR B SYLLABLE B013 ME*/ - RTUNI_ALPHA, /* U+010016: LINEAR B SYLLABLE B073 MI*/ - RTUNI_ALPHA, /* U+010017: LINEAR B SYLLABLE B015 MO*/ - RTUNI_ALPHA, /* U+010018: LINEAR B SYLLABLE B023 MU*/ - RTUNI_ALPHA, /* U+010019: LINEAR B SYLLABLE B006 NA*/ - RTUNI_ALPHA, /* U+01001a: LINEAR B SYLLABLE B024 NE*/ - RTUNI_ALPHA, /* U+01001b: LINEAR B SYLLABLE B030 NI*/ - RTUNI_ALPHA, /* U+01001c: LINEAR B SYLLABLE B052 NO*/ - RTUNI_ALPHA, /* U+01001d: LINEAR B SYLLABLE B055 NU*/ - RTUNI_ALPHA, /* U+01001e: LINEAR B SYLLABLE B003 PA*/ - RTUNI_ALPHA, /* U+01001f: LINEAR B SYLLABLE B072 PE*/ - RTUNI_ALPHA, /* U+010020: LINEAR B SYLLABLE B039 PI*/ - RTUNI_ALPHA, /* U+010021: LINEAR B SYLLABLE B011 PO*/ - RTUNI_ALPHA, /* U+010022: LINEAR B SYLLABLE B050 PU*/ - RTUNI_ALPHA, /* U+010023: LINEAR B SYLLABLE B016 QA*/ - RTUNI_ALPHA, /* U+010024: LINEAR B SYLLABLE B078 QE*/ - RTUNI_ALPHA, /* U+010025: LINEAR B SYLLABLE B021 QI*/ - RTUNI_ALPHA, /* U+010026: LINEAR B SYLLABLE B032 QO*/ - 0, /* U+010027: */ - RTUNI_ALPHA, /* U+010028: LINEAR B SYLLABLE B060 RA*/ - RTUNI_ALPHA, /* U+010029: LINEAR B SYLLABLE B027 RE*/ - RTUNI_ALPHA, /* U+01002a: LINEAR B SYLLABLE B053 RI*/ - RTUNI_ALPHA, /* U+01002b: LINEAR B SYLLABLE B002 RO*/ - RTUNI_ALPHA, /* U+01002c: LINEAR B SYLLABLE B026 RU*/ - RTUNI_ALPHA, /* U+01002d: LINEAR B SYLLABLE B031 SA*/ - RTUNI_ALPHA, /* U+01002e: LINEAR B SYLLABLE B009 SE*/ - RTUNI_ALPHA, /* U+01002f: LINEAR B SYLLABLE B041 SI*/ - RTUNI_ALPHA, /* U+010030: LINEAR B SYLLABLE B012 SO*/ - RTUNI_ALPHA, /* U+010031: LINEAR B SYLLABLE B058 SU*/ - RTUNI_ALPHA, /* U+010032: LINEAR B SYLLABLE B059 TA*/ - RTUNI_ALPHA, /* U+010033: LINEAR B SYLLABLE B004 TE*/ - RTUNI_ALPHA, /* U+010034: LINEAR B SYLLABLE B037 TI*/ - RTUNI_ALPHA, /* U+010035: LINEAR B SYLLABLE B005 TO*/ - RTUNI_ALPHA, /* U+010036: LINEAR B SYLLABLE B069 TU*/ - RTUNI_ALPHA, /* U+010037: LINEAR B SYLLABLE B054 WA*/ - RTUNI_ALPHA, /* U+010038: LINEAR B SYLLABLE B075 WE*/ - RTUNI_ALPHA, /* U+010039: LINEAR B SYLLABLE B040 WI*/ - RTUNI_ALPHA, /* U+01003a: LINEAR B SYLLABLE B042 WO*/ - 0, /* U+01003b: */ - RTUNI_ALPHA, /* U+01003c: LINEAR B SYLLABLE B017 ZA*/ - RTUNI_ALPHA, /* U+01003d: LINEAR B SYLLABLE B074 ZE*/ - 0, /* U+01003e: */ - RTUNI_ALPHA, /* U+01003f: LINEAR B SYLLABLE B020 ZO*/ - RTUNI_ALPHA, /* U+010040: LINEAR B SYLLABLE B025 A2*/ - RTUNI_ALPHA, /* U+010041: LINEAR B SYLLABLE B043 A3*/ - RTUNI_ALPHA, /* U+010042: LINEAR B SYLLABLE B085 AU*/ - RTUNI_ALPHA, /* U+010043: LINEAR B SYLLABLE B071 DWE*/ - RTUNI_ALPHA, /* U+010044: LINEAR B SYLLABLE B090 DWO*/ - RTUNI_ALPHA, /* U+010045: LINEAR B SYLLABLE B048 NWA*/ - RTUNI_ALPHA, /* U+010046: LINEAR B SYLLABLE B029 PU2*/ - RTUNI_ALPHA, /* U+010047: LINEAR B SYLLABLE B062 PTE*/ - RTUNI_ALPHA, /* U+010048: LINEAR B SYLLABLE B076 RA2*/ - RTUNI_ALPHA, /* U+010049: LINEAR B SYLLABLE B033 RA3*/ - RTUNI_ALPHA, /* U+01004a: LINEAR B SYLLABLE B068 RO2*/ - RTUNI_ALPHA, /* U+01004b: LINEAR B SYLLABLE B066 TA2*/ - RTUNI_ALPHA, /* U+01004c: LINEAR B SYLLABLE B087 TWE*/ - RTUNI_ALPHA, /* U+01004d: LINEAR B SYLLABLE B091 TWO*/ - 0, /* U+01004e: */ - 0, /* U+01004f: */ - RTUNI_ALPHA, /* U+010050: LINEAR B SYMBOL B018*/ - RTUNI_ALPHA, /* U+010051: LINEAR B SYMBOL B019*/ - RTUNI_ALPHA, /* U+010052: LINEAR B SYMBOL B022*/ - RTUNI_ALPHA, /* U+010053: LINEAR B SYMBOL B034*/ - RTUNI_ALPHA, /* U+010054: LINEAR B SYMBOL B047*/ - RTUNI_ALPHA, /* U+010055: LINEAR B SYMBOL B049*/ - RTUNI_ALPHA, /* U+010056: LINEAR B SYMBOL B056*/ - RTUNI_ALPHA, /* U+010057: LINEAR B SYMBOL B063*/ - RTUNI_ALPHA, /* U+010058: LINEAR B SYMBOL B064*/ - RTUNI_ALPHA, /* U+010059: LINEAR B SYMBOL B079*/ - RTUNI_ALPHA, /* U+01005a: LINEAR B SYMBOL B082*/ - RTUNI_ALPHA, /* U+01005b: LINEAR B SYMBOL B083*/ - RTUNI_ALPHA, /* U+01005c: LINEAR B SYMBOL B086*/ - RTUNI_ALPHA, /* U+01005d: LINEAR B SYMBOL B089*/ - 0, /* U+01005e: */ - 0, /* U+01005f: */ - 0, /* U+010060: */ - 0, /* U+010061: */ - 0, /* U+010062: */ - 0, /* U+010063: */ - 0, /* U+010064: */ - 0, /* U+010065: */ - 0, /* U+010066: */ - 0, /* U+010067: */ - 0, /* U+010068: */ - 0, /* U+010069: */ - 0, /* U+01006a: */ - 0, /* U+01006b: */ - 0, /* U+01006c: */ - 0, /* U+01006d: */ - 0, /* U+01006e: */ - 0, /* U+01006f: */ - 0, /* U+010070: */ - 0, /* U+010071: */ - 0, /* U+010072: */ - 0, /* U+010073: */ - 0, /* U+010074: */ - 0, /* U+010075: */ - 0, /* U+010076: */ - 0, /* U+010077: */ - 0, /* U+010078: */ - 0, /* U+010079: */ - 0, /* U+01007a: */ - 0, /* U+01007b: */ - 0, /* U+01007c: */ - 0, /* U+01007d: */ - 0, /* U+01007e: */ - 0, /* U+01007f: */ - RTUNI_ALPHA, /* U+010080: LINEAR B IDEOGRAM B100 MAN*/ - RTUNI_ALPHA, /* U+010081: LINEAR B IDEOGRAM B102 WOMAN*/ - RTUNI_ALPHA, /* U+010082: LINEAR B IDEOGRAM B104 DEER*/ - RTUNI_ALPHA, /* U+010083: LINEAR B IDEOGRAM B105 EQUID*/ - RTUNI_ALPHA, /* U+010084: LINEAR B IDEOGRAM B105F MARE*/ - RTUNI_ALPHA, /* U+010085: LINEAR B IDEOGRAM B105M STALLION*/ - RTUNI_ALPHA, /* U+010086: LINEAR B IDEOGRAM B106F EWE*/ - RTUNI_ALPHA, /* U+010087: LINEAR B IDEOGRAM B106M RAM*/ - RTUNI_ALPHA, /* U+010088: LINEAR B IDEOGRAM B107F SHE-GOAT*/ - RTUNI_ALPHA, /* U+010089: LINEAR B IDEOGRAM B107M HE-GOAT*/ - RTUNI_ALPHA, /* U+01008a: LINEAR B IDEOGRAM B108F SOW*/ - RTUNI_ALPHA, /* U+01008b: LINEAR B IDEOGRAM B108M BOAR*/ - RTUNI_ALPHA, /* U+01008c: LINEAR B IDEOGRAM B109F COW*/ - RTUNI_ALPHA, /* U+01008d: LINEAR B IDEOGRAM B109M BULL*/ - RTUNI_ALPHA, /* U+01008e: LINEAR B IDEOGRAM B120 WHEAT*/ - RTUNI_ALPHA, /* U+01008f: LINEAR B IDEOGRAM B121 BARLEY*/ - RTUNI_ALPHA, /* U+010090: LINEAR B IDEOGRAM B122 OLIVE*/ - RTUNI_ALPHA, /* U+010091: LINEAR B IDEOGRAM B123 SPICE*/ - RTUNI_ALPHA, /* U+010092: LINEAR B IDEOGRAM B125 CYPERUS*/ - RTUNI_ALPHA, /* U+010093: LINEAR B MONOGRAM B127 KAPO*/ - RTUNI_ALPHA, /* U+010094: LINEAR B MONOGRAM B128 KANAKO*/ - RTUNI_ALPHA, /* U+010095: LINEAR B IDEOGRAM B130 OIL*/ - RTUNI_ALPHA, /* U+010096: LINEAR B IDEOGRAM B131 WINE*/ - RTUNI_ALPHA, /* U+010097: LINEAR B IDEOGRAM B132*/ - RTUNI_ALPHA, /* U+010098: LINEAR B MONOGRAM B133 AREPA*/ - RTUNI_ALPHA, /* U+010099: LINEAR B MONOGRAM B135 MERI*/ - RTUNI_ALPHA, /* U+01009a: LINEAR B IDEOGRAM B140 BRONZE*/ - RTUNI_ALPHA, /* U+01009b: LINEAR B IDEOGRAM B141 GOLD*/ - RTUNI_ALPHA, /* U+01009c: LINEAR B IDEOGRAM B142*/ - RTUNI_ALPHA, /* U+01009d: LINEAR B IDEOGRAM B145 WOOL*/ - RTUNI_ALPHA, /* U+01009e: LINEAR B IDEOGRAM B146*/ - RTUNI_ALPHA, /* U+01009f: LINEAR B IDEOGRAM B150*/ - RTUNI_ALPHA, /* U+0100a0: LINEAR B IDEOGRAM B151 HORN*/ - RTUNI_ALPHA, /* U+0100a1: LINEAR B IDEOGRAM B152*/ - RTUNI_ALPHA, /* U+0100a2: LINEAR B IDEOGRAM B153*/ - RTUNI_ALPHA, /* U+0100a3: LINEAR B IDEOGRAM B154*/ - RTUNI_ALPHA, /* U+0100a4: LINEAR B MONOGRAM B156 TURO2*/ - RTUNI_ALPHA, /* U+0100a5: LINEAR B IDEOGRAM B157*/ - RTUNI_ALPHA, /* U+0100a6: LINEAR B IDEOGRAM B158*/ - RTUNI_ALPHA, /* U+0100a7: LINEAR B IDEOGRAM B159 CLOTH*/ - RTUNI_ALPHA, /* U+0100a8: LINEAR B IDEOGRAM B160*/ - RTUNI_ALPHA, /* U+0100a9: LINEAR B IDEOGRAM B161*/ - RTUNI_ALPHA, /* U+0100aa: LINEAR B IDEOGRAM B162 GARMENT*/ - RTUNI_ALPHA, /* U+0100ab: LINEAR B IDEOGRAM B163 ARMOUR*/ - RTUNI_ALPHA, /* U+0100ac: LINEAR B IDEOGRAM B164*/ - RTUNI_ALPHA, /* U+0100ad: LINEAR B IDEOGRAM B165*/ - RTUNI_ALPHA, /* U+0100ae: LINEAR B IDEOGRAM B166*/ - RTUNI_ALPHA, /* U+0100af: LINEAR B IDEOGRAM B167*/ - RTUNI_ALPHA, /* U+0100b0: LINEAR B IDEOGRAM B168*/ - RTUNI_ALPHA, /* U+0100b1: LINEAR B IDEOGRAM B169*/ - RTUNI_ALPHA, /* U+0100b2: LINEAR B IDEOGRAM B170*/ - RTUNI_ALPHA, /* U+0100b3: LINEAR B IDEOGRAM B171*/ - RTUNI_ALPHA, /* U+0100b4: LINEAR B IDEOGRAM B172*/ - RTUNI_ALPHA, /* U+0100b5: LINEAR B IDEOGRAM B173 MONTH*/ - RTUNI_ALPHA, /* U+0100b6: LINEAR B IDEOGRAM B174*/ - RTUNI_ALPHA, /* U+0100b7: LINEAR B IDEOGRAM B176 TREE*/ - RTUNI_ALPHA, /* U+0100b8: LINEAR B IDEOGRAM B177*/ - RTUNI_ALPHA, /* U+0100b9: LINEAR B IDEOGRAM B178*/ - RTUNI_ALPHA, /* U+0100ba: LINEAR B IDEOGRAM B179*/ - RTUNI_ALPHA, /* U+0100bb: LINEAR B IDEOGRAM B180*/ - RTUNI_ALPHA, /* U+0100bc: LINEAR B IDEOGRAM B181*/ - RTUNI_ALPHA, /* U+0100bd: LINEAR B IDEOGRAM B182*/ - RTUNI_ALPHA, /* U+0100be: LINEAR B IDEOGRAM B183*/ - RTUNI_ALPHA, /* U+0100bf: LINEAR B IDEOGRAM B184*/ - RTUNI_ALPHA, /* U+0100c0: LINEAR B IDEOGRAM B185*/ - RTUNI_ALPHA, /* U+0100c1: LINEAR B IDEOGRAM B189*/ - RTUNI_ALPHA, /* U+0100c2: LINEAR B IDEOGRAM B190*/ - RTUNI_ALPHA, /* U+0100c3: LINEAR B IDEOGRAM B191 HELMET*/ - RTUNI_ALPHA, /* U+0100c4: LINEAR B IDEOGRAM B220 FOOTSTOOL*/ - RTUNI_ALPHA, /* U+0100c5: LINEAR B IDEOGRAM B225 BATHTUB*/ - RTUNI_ALPHA, /* U+0100c6: LINEAR B IDEOGRAM B230 SPEAR*/ - RTUNI_ALPHA, /* U+0100c7: LINEAR B IDEOGRAM B231 ARROW*/ - RTUNI_ALPHA, /* U+0100c8: LINEAR B IDEOGRAM B232*/ - RTUNI_ALPHA, /* U+0100c9: LINEAR B IDEOGRAM B233 SWORD*/ - RTUNI_ALPHA, /* U+0100ca: LINEAR B IDEOGRAM B234*/ - RTUNI_ALPHA, /* U+0100cb: LINEAR B IDEOGRAM B236*/ - RTUNI_ALPHA, /* U+0100cc: LINEAR B IDEOGRAM B240 WHEELED CHARIOT*/ - RTUNI_ALPHA, /* U+0100cd: LINEAR B IDEOGRAM B241 CHARIOT*/ - RTUNI_ALPHA, /* U+0100ce: LINEAR B IDEOGRAM B242 CHARIOT FRAME*/ - RTUNI_ALPHA, /* U+0100cf: LINEAR B IDEOGRAM B243 WHEEL*/ - RTUNI_ALPHA, /* U+0100d0: LINEAR B IDEOGRAM B245*/ - RTUNI_ALPHA, /* U+0100d1: LINEAR B IDEOGRAM B246*/ - RTUNI_ALPHA, /* U+0100d2: LINEAR B MONOGRAM B247 DIPTE*/ - RTUNI_ALPHA, /* U+0100d3: LINEAR B IDEOGRAM B248*/ - RTUNI_ALPHA, /* U+0100d4: LINEAR B IDEOGRAM B249*/ - RTUNI_ALPHA, /* U+0100d5: LINEAR B IDEOGRAM B251*/ - RTUNI_ALPHA, /* U+0100d6: LINEAR B IDEOGRAM B252*/ - RTUNI_ALPHA, /* U+0100d7: LINEAR B IDEOGRAM B253*/ - RTUNI_ALPHA, /* U+0100d8: LINEAR B IDEOGRAM B254 DART*/ - RTUNI_ALPHA, /* U+0100d9: LINEAR B IDEOGRAM B255*/ - RTUNI_ALPHA, /* U+0100da: LINEAR B IDEOGRAM B256*/ - RTUNI_ALPHA, /* U+0100db: LINEAR B IDEOGRAM B257*/ - RTUNI_ALPHA, /* U+0100dc: LINEAR B IDEOGRAM B258*/ - RTUNI_ALPHA, /* U+0100dd: LINEAR B IDEOGRAM B259*/ - RTUNI_ALPHA, /* U+0100de: LINEAR B IDEOGRAM VESSEL B155*/ - RTUNI_ALPHA, /* U+0100df: LINEAR B IDEOGRAM VESSEL B200*/ - RTUNI_ALPHA, /* U+0100e0: LINEAR B IDEOGRAM VESSEL B201*/ - RTUNI_ALPHA, /* U+0100e1: LINEAR B IDEOGRAM VESSEL B202*/ - RTUNI_ALPHA, /* U+0100e2: LINEAR B IDEOGRAM VESSEL B203*/ - RTUNI_ALPHA, /* U+0100e3: LINEAR B IDEOGRAM VESSEL B204*/ - RTUNI_ALPHA, /* U+0100e4: LINEAR B IDEOGRAM VESSEL B205*/ - RTUNI_ALPHA, /* U+0100e5: LINEAR B IDEOGRAM VESSEL B206*/ - RTUNI_ALPHA, /* U+0100e6: LINEAR B IDEOGRAM VESSEL B207*/ - RTUNI_ALPHA, /* U+0100e7: LINEAR B IDEOGRAM VESSEL B208*/ - RTUNI_ALPHA, /* U+0100e8: LINEAR B IDEOGRAM VESSEL B209*/ - RTUNI_ALPHA, /* U+0100e9: LINEAR B IDEOGRAM VESSEL B210*/ - RTUNI_ALPHA, /* U+0100ea: LINEAR B IDEOGRAM VESSEL B211*/ - RTUNI_ALPHA, /* U+0100eb: LINEAR B IDEOGRAM VESSEL B212*/ - RTUNI_ALPHA, /* U+0100ec: LINEAR B IDEOGRAM VESSEL B213*/ - RTUNI_ALPHA, /* U+0100ed: LINEAR B IDEOGRAM VESSEL B214*/ - RTUNI_ALPHA, /* U+0100ee: LINEAR B IDEOGRAM VESSEL B215*/ - RTUNI_ALPHA, /* U+0100ef: LINEAR B IDEOGRAM VESSEL B216*/ - RTUNI_ALPHA, /* U+0100f0: LINEAR B IDEOGRAM VESSEL B217*/ - RTUNI_ALPHA, /* U+0100f1: LINEAR B IDEOGRAM VESSEL B218*/ - RTUNI_ALPHA, /* U+0100f2: LINEAR B IDEOGRAM VESSEL B219*/ - RTUNI_ALPHA, /* U+0100f3: LINEAR B IDEOGRAM VESSEL B221*/ - RTUNI_ALPHA, /* U+0100f4: LINEAR B IDEOGRAM VESSEL B222*/ - RTUNI_ALPHA, /* U+0100f5: LINEAR B IDEOGRAM VESSEL B226*/ - RTUNI_ALPHA, /* U+0100f6: LINEAR B IDEOGRAM VESSEL B227*/ - RTUNI_ALPHA, /* U+0100f7: LINEAR B IDEOGRAM VESSEL B228*/ - RTUNI_ALPHA, /* U+0100f8: LINEAR B IDEOGRAM VESSEL B229*/ - RTUNI_ALPHA, /* U+0100f9: LINEAR B IDEOGRAM VESSEL B250*/ - RTUNI_ALPHA, /* U+0100fa: LINEAR B IDEOGRAM VESSEL B305*/ - 0, /* U+0100fb: */ - 0, /* U+0100fc: */ - 0, /* U+0100fd: */ - 0, /* U+0100fe: */ - 0, /* U+0100ff: */ - 0, /* U+010100: AEGEAN WORD SEPARATOR LINE*/ - 0, /* U+010101: AEGEAN WORD SEPARATOR DOT*/ - 0, /* U+010102: AEGEAN CHECK MARK*/ - 0, /* U+010103: */ - 0, /* U+010104: */ - 0, /* U+010105: */ - 0, /* U+010106: */ - 0, /* U+010107: AEGEAN NUMBER ONE*/ - 0, /* U+010108: AEGEAN NUMBER TWO*/ - 0, /* U+010109: AEGEAN NUMBER THREE*/ - 0, /* U+01010a: AEGEAN NUMBER FOUR*/ - 0, /* U+01010b: AEGEAN NUMBER FIVE*/ - 0, /* U+01010c: AEGEAN NUMBER SIX*/ - 0, /* U+01010d: AEGEAN NUMBER SEVEN*/ - 0, /* U+01010e: AEGEAN NUMBER EIGHT*/ - 0, /* U+01010f: AEGEAN NUMBER NINE*/ - 0, /* U+010110: AEGEAN NUMBER TEN*/ - 0, /* U+010111: AEGEAN NUMBER TWENTY*/ - 0, /* U+010112: AEGEAN NUMBER THIRTY*/ - 0, /* U+010113: AEGEAN NUMBER FORTY*/ - 0, /* U+010114: AEGEAN NUMBER FIFTY*/ - 0, /* U+010115: AEGEAN NUMBER SIXTY*/ - 0, /* U+010116: AEGEAN NUMBER SEVENTY*/ - 0, /* U+010117: AEGEAN NUMBER EIGHTY*/ - 0, /* U+010118: AEGEAN NUMBER NINETY*/ - 0, /* U+010119: AEGEAN NUMBER ONE HUNDRED*/ - 0, /* U+01011a: AEGEAN NUMBER TWO HUNDRED*/ - 0, /* U+01011b: AEGEAN NUMBER THREE HUNDRED*/ - 0, /* U+01011c: AEGEAN NUMBER FOUR HUNDRED*/ - 0, /* U+01011d: AEGEAN NUMBER FIVE HUNDRED*/ - 0, /* U+01011e: AEGEAN NUMBER SIX HUNDRED*/ - 0, /* U+01011f: AEGEAN NUMBER SEVEN HUNDRED*/ - 0, /* U+010120: AEGEAN NUMBER EIGHT HUNDRED*/ - 0, /* U+010121: AEGEAN NUMBER NINE HUNDRED*/ - 0, /* U+010122: AEGEAN NUMBER ONE THOUSAND*/ - 0, /* U+010123: AEGEAN NUMBER TWO THOUSAND*/ - 0, /* U+010124: AEGEAN NUMBER THREE THOUSAND*/ - 0, /* U+010125: AEGEAN NUMBER FOUR THOUSAND*/ - 0, /* U+010126: AEGEAN NUMBER FIVE THOUSAND*/ - 0, /* U+010127: AEGEAN NUMBER SIX THOUSAND*/ - 0, /* U+010128: AEGEAN NUMBER SEVEN THOUSAND*/ - 0, /* U+010129: AEGEAN NUMBER EIGHT THOUSAND*/ - 0, /* U+01012a: AEGEAN NUMBER NINE THOUSAND*/ - 0, /* U+01012b: AEGEAN NUMBER TEN THOUSAND*/ - 0, /* U+01012c: AEGEAN NUMBER TWENTY THOUSAND*/ - 0, /* U+01012d: AEGEAN NUMBER THIRTY THOUSAND*/ - 0, /* U+01012e: AEGEAN NUMBER FORTY THOUSAND*/ - 0, /* U+01012f: AEGEAN NUMBER FIFTY THOUSAND*/ - 0, /* U+010130: AEGEAN NUMBER SIXTY THOUSAND*/ - 0, /* U+010131: AEGEAN NUMBER SEVENTY THOUSAND*/ - 0, /* U+010132: AEGEAN NUMBER EIGHTY THOUSAND*/ - 0, /* U+010133: AEGEAN NUMBER NINETY THOUSAND*/ - 0, /* U+010134: */ - 0, /* U+010135: */ - 0, /* U+010136: */ - 0, /* U+010137: AEGEAN WEIGHT BASE UNIT*/ - 0, /* U+010138: AEGEAN WEIGHT FIRST SUBUNIT*/ - 0, /* U+010139: AEGEAN WEIGHT SECOND SUBUNIT*/ - 0, /* U+01013a: AEGEAN WEIGHT THIRD SUBUNIT*/ - 0, /* U+01013b: AEGEAN WEIGHT FOURTH SUBUNIT*/ - 0, /* U+01013c: AEGEAN DRY MEASURE FIRST SUBUNIT*/ - 0, /* U+01013d: AEGEAN LIQUID MEASURE FIRST SUBUNIT*/ - 0, /* U+01013e: AEGEAN MEASURE SECOND SUBUNIT*/ - 0, /* U+01013f: AEGEAN MEASURE THIRD SUBUNIT*/ - RTUNI_ALPHA, /* U+010140: GREEK ACROPHONIC ATTIC ONE QUARTER*/ - RTUNI_ALPHA, /* U+010141: GREEK ACROPHONIC ATTIC ONE HALF*/ - RTUNI_ALPHA, /* U+010142: GREEK ACROPHONIC ATTIC ONE DRACHMA*/ - RTUNI_ALPHA, /* U+010143: GREEK ACROPHONIC ATTIC FIVE*/ - RTUNI_ALPHA, /* U+010144: GREEK ACROPHONIC ATTIC FIFTY*/ - RTUNI_ALPHA, /* U+010145: GREEK ACROPHONIC ATTIC FIVE HUNDRED*/ - RTUNI_ALPHA, /* U+010146: GREEK ACROPHONIC ATTIC FIVE THOUSAND*/ - RTUNI_ALPHA, /* U+010147: GREEK ACROPHONIC ATTIC FIFTY THOUSAND*/ - RTUNI_ALPHA, /* U+010148: GREEK ACROPHONIC ATTIC FIVE TALENTS*/ - RTUNI_ALPHA, /* U+010149: GREEK ACROPHONIC ATTIC TEN TALENTS*/ - RTUNI_ALPHA, /* U+01014a: GREEK ACROPHONIC ATTIC FIFTY TALENTS*/ - RTUNI_ALPHA, /* U+01014b: GREEK ACROPHONIC ATTIC ONE HUNDRED TALENTS*/ - RTUNI_ALPHA, /* U+01014c: GREEK ACROPHONIC ATTIC FIVE HUNDRED TALENTS*/ - RTUNI_ALPHA, /* U+01014d: GREEK ACROPHONIC ATTIC ONE THOUSAND TALENTS*/ - RTUNI_ALPHA, /* U+01014e: GREEK ACROPHONIC ATTIC FIVE THOUSAND TALENTS*/ - RTUNI_ALPHA, /* U+01014f: GREEK ACROPHONIC ATTIC FIVE STATERS*/ - RTUNI_ALPHA, /* U+010150: GREEK ACROPHONIC ATTIC TEN STATERS*/ - RTUNI_ALPHA, /* U+010151: GREEK ACROPHONIC ATTIC FIFTY STATERS*/ - RTUNI_ALPHA, /* U+010152: GREEK ACROPHONIC ATTIC ONE HUNDRED STATERS*/ - RTUNI_ALPHA, /* U+010153: GREEK ACROPHONIC ATTIC FIVE HUNDRED STATERS*/ - RTUNI_ALPHA, /* U+010154: GREEK ACROPHONIC ATTIC ONE THOUSAND STATERS*/ - RTUNI_ALPHA, /* U+010155: GREEK ACROPHONIC ATTIC TEN THOUSAND STATERS*/ - RTUNI_ALPHA, /* U+010156: GREEK ACROPHONIC ATTIC FIFTY THOUSAND STATERS*/ - RTUNI_ALPHA, /* U+010157: GREEK ACROPHONIC ATTIC TEN MNAS*/ - RTUNI_ALPHA, /* U+010158: GREEK ACROPHONIC HERAEUM ONE PLETHRON*/ - RTUNI_ALPHA, /* U+010159: GREEK ACROPHONIC THESPIAN ONE*/ - RTUNI_ALPHA, /* U+01015a: GREEK ACROPHONIC HERMIONIAN ONE*/ - RTUNI_ALPHA, /* U+01015b: GREEK ACROPHONIC EPIDAUREAN TWO*/ - RTUNI_ALPHA, /* U+01015c: GREEK ACROPHONIC THESPIAN TWO*/ - RTUNI_ALPHA, /* U+01015d: GREEK ACROPHONIC CYRENAIC TWO DRACHMAS*/ - RTUNI_ALPHA, /* U+01015e: GREEK ACROPHONIC EPIDAUREAN TWO DRACHMAS*/ - RTUNI_ALPHA, /* U+01015f: GREEK ACROPHONIC TROEZENIAN FIVE*/ - RTUNI_ALPHA, /* U+010160: GREEK ACROPHONIC TROEZENIAN TEN*/ - RTUNI_ALPHA, /* U+010161: GREEK ACROPHONIC TROEZENIAN TEN ALTERNATE FORM*/ - RTUNI_ALPHA, /* U+010162: GREEK ACROPHONIC HERMIONIAN TEN*/ - RTUNI_ALPHA, /* U+010163: GREEK ACROPHONIC MESSENIAN TEN*/ - RTUNI_ALPHA, /* U+010164: GREEK ACROPHONIC THESPIAN TEN*/ - RTUNI_ALPHA, /* U+010165: GREEK ACROPHONIC THESPIAN THIRTY*/ - RTUNI_ALPHA, /* U+010166: GREEK ACROPHONIC TROEZENIAN FIFTY*/ - RTUNI_ALPHA, /* U+010167: GREEK ACROPHONIC TROEZENIAN FIFTY ALTERNATE FORM*/ - RTUNI_ALPHA, /* U+010168: GREEK ACROPHONIC HERMIONIAN FIFTY*/ - RTUNI_ALPHA, /* U+010169: GREEK ACROPHONIC THESPIAN FIFTY*/ - RTUNI_ALPHA, /* U+01016a: GREEK ACROPHONIC THESPIAN ONE HUNDRED*/ - RTUNI_ALPHA, /* U+01016b: GREEK ACROPHONIC THESPIAN THREE HUNDRED*/ - RTUNI_ALPHA, /* U+01016c: GREEK ACROPHONIC EPIDAUREAN FIVE HUNDRED*/ - RTUNI_ALPHA, /* U+01016d: GREEK ACROPHONIC TROEZENIAN FIVE HUNDRED*/ - RTUNI_ALPHA, /* U+01016e: GREEK ACROPHONIC THESPIAN FIVE HUNDRED*/ - RTUNI_ALPHA, /* U+01016f: GREEK ACROPHONIC CARYSTIAN FIVE HUNDRED*/ - RTUNI_ALPHA, /* U+010170: GREEK ACROPHONIC NAXIAN FIVE HUNDRED*/ - RTUNI_ALPHA, /* U+010171: GREEK ACROPHONIC THESPIAN ONE THOUSAND*/ - RTUNI_ALPHA, /* U+010172: GREEK ACROPHONIC THESPIAN FIVE THOUSAND*/ - RTUNI_ALPHA, /* U+010173: GREEK ACROPHONIC DELPHIC FIVE MNAS*/ - RTUNI_ALPHA, /* U+010174: GREEK ACROPHONIC STRATIAN FIFTY MNAS*/ - 0, /* U+010175: GREEK ONE HALF SIGN*/ - 0, /* U+010176: GREEK ONE HALF SIGN ALTERNATE FORM*/ - 0, /* U+010177: GREEK TWO THIRDS SIGN*/ - 0, /* U+010178: GREEK THREE QUARTERS SIGN*/ - 0, /* U+010179: GREEK YEAR SIGN*/ - 0, /* U+01017a: GREEK TALENT SIGN*/ - 0, /* U+01017b: GREEK DRACHMA SIGN*/ - 0, /* U+01017c: GREEK OBOL SIGN*/ - 0, /* U+01017d: GREEK TWO OBOLS SIGN*/ - 0, /* U+01017e: GREEK THREE OBOLS SIGN*/ - 0, /* U+01017f: GREEK FOUR OBOLS SIGN*/ - 0, /* U+010180: GREEK FIVE OBOLS SIGN*/ - 0, /* U+010181: GREEK METRETES SIGN*/ - 0, /* U+010182: GREEK KYATHOS BASE SIGN*/ - 0, /* U+010183: GREEK LITRA SIGN*/ - 0, /* U+010184: GREEK OUNKIA SIGN*/ - 0, /* U+010185: GREEK XESTES SIGN*/ - 0, /* U+010186: GREEK ARTABE SIGN*/ - 0, /* U+010187: GREEK AROURA SIGN*/ - 0, /* U+010188: GREEK GRAMMA SIGN*/ - 0, /* U+010189: GREEK TRYBLION BASE SIGN*/ - 0, /* U+01018a: GREEK ZERO SIGN*/ - 0, /* U+01018b: */ - 0, /* U+01018c: */ - 0, /* U+01018d: */ - 0, /* U+01018e: */ - 0, /* U+01018f: */ - 0, /* U+010190: */ - 0, /* U+010191: */ - 0, /* U+010192: */ - 0, /* U+010193: */ - 0, /* U+010194: */ - 0, /* U+010195: */ - 0, /* U+010196: */ - 0, /* U+010197: */ - 0, /* U+010198: */ - 0, /* U+010199: */ - 0, /* U+01019a: */ - 0, /* U+01019b: */ - 0, /* U+01019c: */ - 0, /* U+01019d: */ - 0, /* U+01019e: */ - 0, /* U+01019f: */ - 0, /* U+0101a0: */ - 0, /* U+0101a1: */ - 0, /* U+0101a2: */ - 0, /* U+0101a3: */ - 0, /* U+0101a4: */ - 0, /* U+0101a5: */ - 0, /* U+0101a6: */ - 0, /* U+0101a7: */ - 0, /* U+0101a8: */ - 0, /* U+0101a9: */ - 0, /* U+0101aa: */ - 0, /* U+0101ab: */ - 0, /* U+0101ac: */ - 0, /* U+0101ad: */ - 0, /* U+0101ae: */ - 0, /* U+0101af: */ - 0, /* U+0101b0: */ - 0, /* U+0101b1: */ - 0, /* U+0101b2: */ - 0, /* U+0101b3: */ - 0, /* U+0101b4: */ - 0, /* U+0101b5: */ - 0, /* U+0101b6: */ - 0, /* U+0101b7: */ - 0, /* U+0101b8: */ - 0, /* U+0101b9: */ - 0, /* U+0101ba: */ - 0, /* U+0101bb: */ - 0, /* U+0101bc: */ - 0, /* U+0101bd: */ - 0, /* U+0101be: */ - 0, /* U+0101bf: */ - 0, /* U+0101c0: */ - 0, /* U+0101c1: */ - 0, /* U+0101c2: */ - 0, /* U+0101c3: */ - 0, /* U+0101c4: */ - 0, /* U+0101c5: */ - 0, /* U+0101c6: */ - 0, /* U+0101c7: */ - 0, /* U+0101c8: */ - 0, /* U+0101c9: */ - 0, /* U+0101ca: */ - 0, /* U+0101cb: */ - 0, /* U+0101cc: */ - 0, /* U+0101cd: */ - 0, /* U+0101ce: */ - 0, /* U+0101cf: */ - 0, /* U+0101d0: */ - 0, /* U+0101d1: */ - 0, /* U+0101d2: */ - 0, /* U+0101d3: */ - 0, /* U+0101d4: */ - 0, /* U+0101d5: */ - 0, /* U+0101d6: */ - 0, /* U+0101d7: */ - 0, /* U+0101d8: */ - 0, /* U+0101d9: */ - 0, /* U+0101da: */ - 0, /* U+0101db: */ - 0, /* U+0101dc: */ - 0, /* U+0101dd: */ - 0, /* U+0101de: */ - 0, /* U+0101df: */ - 0, /* U+0101e0: */ - 0, /* U+0101e1: */ - 0, /* U+0101e2: */ - 0, /* U+0101e3: */ - 0, /* U+0101e4: */ - 0, /* U+0101e5: */ - 0, /* U+0101e6: */ - 0, /* U+0101e7: */ - 0, /* U+0101e8: */ - 0, /* U+0101e9: */ - 0, /* U+0101ea: */ - 0, /* U+0101eb: */ - 0, /* U+0101ec: */ - 0, /* U+0101ed: */ - 0, /* U+0101ee: */ - 0, /* U+0101ef: */ - 0, /* U+0101f0: */ - 0, /* U+0101f1: */ - 0, /* U+0101f2: */ - 0, /* U+0101f3: */ - 0, /* U+0101f4: */ - 0, /* U+0101f5: */ - 0, /* U+0101f6: */ - 0, /* U+0101f7: */ - 0, /* U+0101f8: */ - 0, /* U+0101f9: */ - 0, /* U+0101fa: */ - 0, /* U+0101fb: */ - 0, /* U+0101fc: */ - 0, /* U+0101fd: */ - 0, /* U+0101fe: */ - 0, /* U+0101ff: */ - 0, /* U+010200: */ - 0, /* U+010201: */ - 0, /* U+010202: */ - 0, /* U+010203: */ - 0, /* U+010204: */ - 0, /* U+010205: */ - 0, /* U+010206: */ - 0, /* U+010207: */ - 0, /* U+010208: */ - 0, /* U+010209: */ - 0, /* U+01020a: */ - 0, /* U+01020b: */ - 0, /* U+01020c: */ - 0, /* U+01020d: */ - 0, /* U+01020e: */ - 0, /* U+01020f: */ - 0, /* U+010210: */ - 0, /* U+010211: */ - 0, /* U+010212: */ - 0, /* U+010213: */ - 0, /* U+010214: */ - 0, /* U+010215: */ - 0, /* U+010216: */ - 0, /* U+010217: */ - 0, /* U+010218: */ - 0, /* U+010219: */ - 0, /* U+01021a: */ - 0, /* U+01021b: */ - 0, /* U+01021c: */ - 0, /* U+01021d: */ - 0, /* U+01021e: */ - 0, /* U+01021f: */ - 0, /* U+010220: */ - 0, /* U+010221: */ - 0, /* U+010222: */ - 0, /* U+010223: */ - 0, /* U+010224: */ - 0, /* U+010225: */ - 0, /* U+010226: */ - 0, /* U+010227: */ - 0, /* U+010228: */ - 0, /* U+010229: */ - 0, /* U+01022a: */ - 0, /* U+01022b: */ - 0, /* U+01022c: */ - 0, /* U+01022d: */ - 0, /* U+01022e: */ - 0, /* U+01022f: */ - 0, /* U+010230: */ - 0, /* U+010231: */ - 0, /* U+010232: */ - 0, /* U+010233: */ - 0, /* U+010234: */ - 0, /* U+010235: */ - 0, /* U+010236: */ - 0, /* U+010237: */ - 0, /* U+010238: */ - 0, /* U+010239: */ - 0, /* U+01023a: */ - 0, /* U+01023b: */ - 0, /* U+01023c: */ - 0, /* U+01023d: */ - 0, /* U+01023e: */ - 0, /* U+01023f: */ - 0, /* U+010240: */ - 0, /* U+010241: */ - 0, /* U+010242: */ - 0, /* U+010243: */ - 0, /* U+010244: */ - 0, /* U+010245: */ - 0, /* U+010246: */ - 0, /* U+010247: */ - 0, /* U+010248: */ - 0, /* U+010249: */ - 0, /* U+01024a: */ - 0, /* U+01024b: */ - 0, /* U+01024c: */ - 0, /* U+01024d: */ - 0, /* U+01024e: */ - 0, /* U+01024f: */ - 0, /* U+010250: */ - 0, /* U+010251: */ - 0, /* U+010252: */ - 0, /* U+010253: */ - 0, /* U+010254: */ - 0, /* U+010255: */ - 0, /* U+010256: */ - 0, /* U+010257: */ - 0, /* U+010258: */ - 0, /* U+010259: */ - 0, /* U+01025a: */ - 0, /* U+01025b: */ - 0, /* U+01025c: */ - 0, /* U+01025d: */ - 0, /* U+01025e: */ - 0, /* U+01025f: */ - 0, /* U+010260: */ - 0, /* U+010261: */ - 0, /* U+010262: */ - 0, /* U+010263: */ - 0, /* U+010264: */ - 0, /* U+010265: */ - 0, /* U+010266: */ - 0, /* U+010267: */ - 0, /* U+010268: */ - 0, /* U+010269: */ - 0, /* U+01026a: */ - 0, /* U+01026b: */ - 0, /* U+01026c: */ - 0, /* U+01026d: */ - 0, /* U+01026e: */ - 0, /* U+01026f: */ - 0, /* U+010270: */ - 0, /* U+010271: */ - 0, /* U+010272: */ - 0, /* U+010273: */ - 0, /* U+010274: */ - 0, /* U+010275: */ - 0, /* U+010276: */ - 0, /* U+010277: */ - 0, /* U+010278: */ - 0, /* U+010279: */ - 0, /* U+01027a: */ - 0, /* U+01027b: */ - 0, /* U+01027c: */ - 0, /* U+01027d: */ - 0, /* U+01027e: */ - 0, /* U+01027f: */ - 0, /* U+010280: */ - 0, /* U+010281: */ - 0, /* U+010282: */ - 0, /* U+010283: */ - 0, /* U+010284: */ - 0, /* U+010285: */ - 0, /* U+010286: */ - 0, /* U+010287: */ - 0, /* U+010288: */ - 0, /* U+010289: */ - 0, /* U+01028a: */ - 0, /* U+01028b: */ - 0, /* U+01028c: */ - 0, /* U+01028d: */ - 0, /* U+01028e: */ - 0, /* U+01028f: */ - 0, /* U+010290: */ - 0, /* U+010291: */ - 0, /* U+010292: */ - 0, /* U+010293: */ - 0, /* U+010294: */ - 0, /* U+010295: */ - 0, /* U+010296: */ - 0, /* U+010297: */ - 0, /* U+010298: */ - 0, /* U+010299: */ - 0, /* U+01029a: */ - 0, /* U+01029b: */ - 0, /* U+01029c: */ - 0, /* U+01029d: */ - 0, /* U+01029e: */ - 0, /* U+01029f: */ - 0, /* U+0102a0: */ - 0, /* U+0102a1: */ - 0, /* U+0102a2: */ - 0, /* U+0102a3: */ - 0, /* U+0102a4: */ - 0, /* U+0102a5: */ - 0, /* U+0102a6: */ - 0, /* U+0102a7: */ - 0, /* U+0102a8: */ - 0, /* U+0102a9: */ - 0, /* U+0102aa: */ - 0, /* U+0102ab: */ - 0, /* U+0102ac: */ - 0, /* U+0102ad: */ - 0, /* U+0102ae: */ - 0, /* U+0102af: */ - 0, /* U+0102b0: */ - 0, /* U+0102b1: */ - 0, /* U+0102b2: */ - 0, /* U+0102b3: */ - 0, /* U+0102b4: */ - 0, /* U+0102b5: */ - 0, /* U+0102b6: */ - 0, /* U+0102b7: */ - 0, /* U+0102b8: */ - 0, /* U+0102b9: */ - 0, /* U+0102ba: */ - 0, /* U+0102bb: */ - 0, /* U+0102bc: */ - 0, /* U+0102bd: */ - 0, /* U+0102be: */ - 0, /* U+0102bf: */ - 0, /* U+0102c0: */ - 0, /* U+0102c1: */ - 0, /* U+0102c2: */ - 0, /* U+0102c3: */ - 0, /* U+0102c4: */ - 0, /* U+0102c5: */ - 0, /* U+0102c6: */ - 0, /* U+0102c7: */ - 0, /* U+0102c8: */ - 0, /* U+0102c9: */ - 0, /* U+0102ca: */ - 0, /* U+0102cb: */ - 0, /* U+0102cc: */ - 0, /* U+0102cd: */ - 0, /* U+0102ce: */ - 0, /* U+0102cf: */ - 0, /* U+0102d0: */ - 0, /* U+0102d1: */ - 0, /* U+0102d2: */ - 0, /* U+0102d3: */ - 0, /* U+0102d4: */ - 0, /* U+0102d5: */ - 0, /* U+0102d6: */ - 0, /* U+0102d7: */ - 0, /* U+0102d8: */ - 0, /* U+0102d9: */ - 0, /* U+0102da: */ - 0, /* U+0102db: */ - 0, /* U+0102dc: */ - 0, /* U+0102dd: */ - 0, /* U+0102de: */ - 0, /* U+0102df: */ - 0, /* U+0102e0: */ - 0, /* U+0102e1: */ - 0, /* U+0102e2: */ - 0, /* U+0102e3: */ - 0, /* U+0102e4: */ - 0, /* U+0102e5: */ - 0, /* U+0102e6: */ - 0, /* U+0102e7: */ - 0, /* U+0102e8: */ - 0, /* U+0102e9: */ - 0, /* U+0102ea: */ - 0, /* U+0102eb: */ - 0, /* U+0102ec: */ - 0, /* U+0102ed: */ - 0, /* U+0102ee: */ - 0, /* U+0102ef: */ - 0, /* U+0102f0: */ - 0, /* U+0102f1: */ - 0, /* U+0102f2: */ - 0, /* U+0102f3: */ - 0, /* U+0102f4: */ - 0, /* U+0102f5: */ - 0, /* U+0102f6: */ - 0, /* U+0102f7: */ - 0, /* U+0102f8: */ - 0, /* U+0102f9: */ - 0, /* U+0102fa: */ - 0, /* U+0102fb: */ - 0, /* U+0102fc: */ - 0, /* U+0102fd: */ - 0, /* U+0102fe: */ - 0, /* U+0102ff: */ - RTUNI_ALPHA, /* U+010300: OLD ITALIC LETTER A*/ - RTUNI_ALPHA, /* U+010301: OLD ITALIC LETTER BE*/ - RTUNI_ALPHA, /* U+010302: OLD ITALIC LETTER KE*/ - RTUNI_ALPHA, /* U+010303: OLD ITALIC LETTER DE*/ - RTUNI_ALPHA, /* U+010304: OLD ITALIC LETTER E*/ - RTUNI_ALPHA, /* U+010305: OLD ITALIC LETTER VE*/ - RTUNI_ALPHA, /* U+010306: OLD ITALIC LETTER ZE*/ - RTUNI_ALPHA, /* U+010307: OLD ITALIC LETTER HE*/ - RTUNI_ALPHA, /* U+010308: OLD ITALIC LETTER THE*/ - RTUNI_ALPHA, /* U+010309: OLD ITALIC LETTER I*/ - RTUNI_ALPHA, /* U+01030a: OLD ITALIC LETTER KA*/ - RTUNI_ALPHA, /* U+01030b: OLD ITALIC LETTER EL*/ - RTUNI_ALPHA, /* U+01030c: OLD ITALIC LETTER EM*/ - RTUNI_ALPHA, /* U+01030d: OLD ITALIC LETTER EN*/ - RTUNI_ALPHA, /* U+01030e: OLD ITALIC LETTER ESH*/ - RTUNI_ALPHA, /* U+01030f: OLD ITALIC LETTER O*/ - RTUNI_ALPHA, /* U+010310: OLD ITALIC LETTER PE*/ - RTUNI_ALPHA, /* U+010311: OLD ITALIC LETTER SHE*/ - RTUNI_ALPHA, /* U+010312: OLD ITALIC LETTER KU*/ - RTUNI_ALPHA, /* U+010313: OLD ITALIC LETTER ER*/ - RTUNI_ALPHA, /* U+010314: OLD ITALIC LETTER ES*/ - RTUNI_ALPHA, /* U+010315: OLD ITALIC LETTER TE*/ - RTUNI_ALPHA, /* U+010316: OLD ITALIC LETTER U*/ - RTUNI_ALPHA, /* U+010317: OLD ITALIC LETTER EKS*/ - RTUNI_ALPHA, /* U+010318: OLD ITALIC LETTER PHE*/ - RTUNI_ALPHA, /* U+010319: OLD ITALIC LETTER KHE*/ - RTUNI_ALPHA, /* U+01031a: OLD ITALIC LETTER EF*/ - RTUNI_ALPHA, /* U+01031b: OLD ITALIC LETTER ERS*/ - RTUNI_ALPHA, /* U+01031c: OLD ITALIC LETTER CHE*/ - RTUNI_ALPHA, /* U+01031d: OLD ITALIC LETTER II*/ - RTUNI_ALPHA, /* U+01031e: OLD ITALIC LETTER UU*/ - 0, /* U+01031f: */ - 0, /* U+010320: OLD ITALIC NUMERAL ONE*/ - 0, /* U+010321: OLD ITALIC NUMERAL FIVE*/ - 0, /* U+010322: OLD ITALIC NUMERAL TEN*/ - 0, /* U+010323: OLD ITALIC NUMERAL FIFTY*/ - 0, /* U+010324: */ - 0, /* U+010325: */ - 0, /* U+010326: */ - 0, /* U+010327: */ - 0, /* U+010328: */ - 0, /* U+010329: */ - 0, /* U+01032a: */ - 0, /* U+01032b: */ - 0, /* U+01032c: */ - 0, /* U+01032d: */ - 0, /* U+01032e: */ - 0, /* U+01032f: */ - RTUNI_ALPHA, /* U+010330: GOTHIC LETTER AHSA*/ - RTUNI_ALPHA, /* U+010331: GOTHIC LETTER BAIRKAN*/ - RTUNI_ALPHA, /* U+010332: GOTHIC LETTER GIBA*/ - RTUNI_ALPHA, /* U+010333: GOTHIC LETTER DAGS*/ - RTUNI_ALPHA, /* U+010334: GOTHIC LETTER AIHVUS*/ - RTUNI_ALPHA, /* U+010335: GOTHIC LETTER QAIRTHRA*/ - RTUNI_ALPHA, /* U+010336: GOTHIC LETTER IUJA*/ - RTUNI_ALPHA, /* U+010337: GOTHIC LETTER HAGL*/ - RTUNI_ALPHA, /* U+010338: GOTHIC LETTER THIUTH*/ - RTUNI_ALPHA, /* U+010339: GOTHIC LETTER EIS*/ - RTUNI_ALPHA, /* U+01033a: GOTHIC LETTER KUSMA*/ - RTUNI_ALPHA, /* U+01033b: GOTHIC LETTER LAGUS*/ - RTUNI_ALPHA, /* U+01033c: GOTHIC LETTER MANNA*/ - RTUNI_ALPHA, /* U+01033d: GOTHIC LETTER NAUTHS*/ - RTUNI_ALPHA, /* U+01033e: GOTHIC LETTER JER*/ - RTUNI_ALPHA, /* U+01033f: GOTHIC LETTER URUS*/ - RTUNI_ALPHA, /* U+010340: GOTHIC LETTER PAIRTHRA*/ - RTUNI_ALPHA, /* U+010341: GOTHIC LETTER NINETY*/ - RTUNI_ALPHA, /* U+010342: GOTHIC LETTER RAIDA*/ - RTUNI_ALPHA, /* U+010343: GOTHIC LETTER SAUIL*/ - RTUNI_ALPHA, /* U+010344: GOTHIC LETTER TEIWS*/ - RTUNI_ALPHA, /* U+010345: GOTHIC LETTER WINJA*/ - RTUNI_ALPHA, /* U+010346: GOTHIC LETTER FAIHU*/ - RTUNI_ALPHA, /* U+010347: GOTHIC LETTER IGGWS*/ - RTUNI_ALPHA, /* U+010348: GOTHIC LETTER HWAIR*/ - RTUNI_ALPHA, /* U+010349: GOTHIC LETTER OTHAL*/ - RTUNI_ALPHA, /* U+01034a: GOTHIC LETTER NINE HUNDRED*/ - 0, /* U+01034b: */ - 0, /* U+01034c: */ - 0, /* U+01034d: */ - 0, /* U+01034e: */ - 0, /* U+01034f: */ - 0, /* U+010350: */ - 0, /* U+010351: */ - 0, /* U+010352: */ - 0, /* U+010353: */ - 0, /* U+010354: */ - 0, /* U+010355: */ - 0, /* U+010356: */ - 0, /* U+010357: */ - 0, /* U+010358: */ - 0, /* U+010359: */ - 0, /* U+01035a: */ - 0, /* U+01035b: */ - 0, /* U+01035c: */ - 0, /* U+01035d: */ - 0, /* U+01035e: */ - 0, /* U+01035f: */ - 0, /* U+010360: */ - 0, /* U+010361: */ - 0, /* U+010362: */ - 0, /* U+010363: */ - 0, /* U+010364: */ - 0, /* U+010365: */ - 0, /* U+010366: */ - 0, /* U+010367: */ - 0, /* U+010368: */ - 0, /* U+010369: */ - 0, /* U+01036a: */ - 0, /* U+01036b: */ - 0, /* U+01036c: */ - 0, /* U+01036d: */ - 0, /* U+01036e: */ - 0, /* U+01036f: */ - 0, /* U+010370: */ - 0, /* U+010371: */ - 0, /* U+010372: */ - 0, /* U+010373: */ - 0, /* U+010374: */ - 0, /* U+010375: */ - 0, /* U+010376: */ - 0, /* U+010377: */ - 0, /* U+010378: */ - 0, /* U+010379: */ - 0, /* U+01037a: */ - 0, /* U+01037b: */ - 0, /* U+01037c: */ - 0, /* U+01037d: */ - 0, /* U+01037e: */ - 0, /* U+01037f: */ - RTUNI_ALPHA, /* U+010380: UGARITIC LETTER ALPA*/ - RTUNI_ALPHA, /* U+010381: UGARITIC LETTER BETA*/ - RTUNI_ALPHA, /* U+010382: UGARITIC LETTER GAMLA*/ - RTUNI_ALPHA, /* U+010383: UGARITIC LETTER KHA*/ - RTUNI_ALPHA, /* U+010384: UGARITIC LETTER DELTA*/ - RTUNI_ALPHA, /* U+010385: UGARITIC LETTER HO*/ - RTUNI_ALPHA, /* U+010386: UGARITIC LETTER WO*/ - RTUNI_ALPHA, /* U+010387: UGARITIC LETTER ZETA*/ - RTUNI_ALPHA, /* U+010388: UGARITIC LETTER HOTA*/ - RTUNI_ALPHA, /* U+010389: UGARITIC LETTER TET*/ - RTUNI_ALPHA, /* U+01038a: UGARITIC LETTER YOD*/ - RTUNI_ALPHA, /* U+01038b: UGARITIC LETTER KAF*/ - RTUNI_ALPHA, /* U+01038c: UGARITIC LETTER SHIN*/ - RTUNI_ALPHA, /* U+01038d: UGARITIC LETTER LAMDA*/ - RTUNI_ALPHA, /* U+01038e: UGARITIC LETTER MEM*/ - RTUNI_ALPHA, /* U+01038f: UGARITIC LETTER DHAL*/ - RTUNI_ALPHA, /* U+010390: UGARITIC LETTER NUN*/ - RTUNI_ALPHA, /* U+010391: UGARITIC LETTER ZU*/ - RTUNI_ALPHA, /* U+010392: UGARITIC LETTER SAMKA*/ - RTUNI_ALPHA, /* U+010393: UGARITIC LETTER AIN*/ - RTUNI_ALPHA, /* U+010394: UGARITIC LETTER PU*/ - RTUNI_ALPHA, /* U+010395: UGARITIC LETTER SADE*/ - RTUNI_ALPHA, /* U+010396: UGARITIC LETTER QOPA*/ - RTUNI_ALPHA, /* U+010397: UGARITIC LETTER RASHA*/ - RTUNI_ALPHA, /* U+010398: UGARITIC LETTER THANNA*/ - RTUNI_ALPHA, /* U+010399: UGARITIC LETTER GHAIN*/ - RTUNI_ALPHA, /* U+01039a: UGARITIC LETTER TO*/ - RTUNI_ALPHA, /* U+01039b: UGARITIC LETTER I*/ - RTUNI_ALPHA, /* U+01039c: UGARITIC LETTER U*/ - RTUNI_ALPHA, /* U+01039d: UGARITIC LETTER SSU*/ - 0, /* U+01039e: */ - 0, /* U+01039f: UGARITIC WORD DIVIDER*/ - RTUNI_ALPHA, /* U+0103a0: OLD PERSIAN SIGN A*/ - RTUNI_ALPHA, /* U+0103a1: OLD PERSIAN SIGN I*/ - RTUNI_ALPHA, /* U+0103a2: OLD PERSIAN SIGN U*/ - RTUNI_ALPHA, /* U+0103a3: OLD PERSIAN SIGN KA*/ - RTUNI_ALPHA, /* U+0103a4: OLD PERSIAN SIGN KU*/ - RTUNI_ALPHA, /* U+0103a5: OLD PERSIAN SIGN GA*/ - RTUNI_ALPHA, /* U+0103a6: OLD PERSIAN SIGN GU*/ - RTUNI_ALPHA, /* U+0103a7: OLD PERSIAN SIGN XA*/ - RTUNI_ALPHA, /* U+0103a8: OLD PERSIAN SIGN CA*/ - RTUNI_ALPHA, /* U+0103a9: OLD PERSIAN SIGN JA*/ - RTUNI_ALPHA, /* U+0103aa: OLD PERSIAN SIGN JI*/ - RTUNI_ALPHA, /* U+0103ab: OLD PERSIAN SIGN TA*/ - RTUNI_ALPHA, /* U+0103ac: OLD PERSIAN SIGN TU*/ - RTUNI_ALPHA, /* U+0103ad: OLD PERSIAN SIGN DA*/ - RTUNI_ALPHA, /* U+0103ae: OLD PERSIAN SIGN DI*/ - RTUNI_ALPHA, /* U+0103af: OLD PERSIAN SIGN DU*/ - RTUNI_ALPHA, /* U+0103b0: OLD PERSIAN SIGN THA*/ - RTUNI_ALPHA, /* U+0103b1: OLD PERSIAN SIGN PA*/ - RTUNI_ALPHA, /* U+0103b2: OLD PERSIAN SIGN BA*/ - RTUNI_ALPHA, /* U+0103b3: OLD PERSIAN SIGN FA*/ - RTUNI_ALPHA, /* U+0103b4: OLD PERSIAN SIGN NA*/ - RTUNI_ALPHA, /* U+0103b5: OLD PERSIAN SIGN NU*/ - RTUNI_ALPHA, /* U+0103b6: OLD PERSIAN SIGN MA*/ - RTUNI_ALPHA, /* U+0103b7: OLD PERSIAN SIGN MI*/ - RTUNI_ALPHA, /* U+0103b8: OLD PERSIAN SIGN MU*/ - RTUNI_ALPHA, /* U+0103b9: OLD PERSIAN SIGN YA*/ - RTUNI_ALPHA, /* U+0103ba: OLD PERSIAN SIGN VA*/ - RTUNI_ALPHA, /* U+0103bb: OLD PERSIAN SIGN VI*/ - RTUNI_ALPHA, /* U+0103bc: OLD PERSIAN SIGN RA*/ - RTUNI_ALPHA, /* U+0103bd: OLD PERSIAN SIGN RU*/ - RTUNI_ALPHA, /* U+0103be: OLD PERSIAN SIGN LA*/ - RTUNI_ALPHA, /* U+0103bf: OLD PERSIAN SIGN SA*/ - RTUNI_ALPHA, /* U+0103c0: OLD PERSIAN SIGN ZA*/ - RTUNI_ALPHA, /* U+0103c1: OLD PERSIAN SIGN SHA*/ - RTUNI_ALPHA, /* U+0103c2: OLD PERSIAN SIGN SSA*/ - RTUNI_ALPHA, /* U+0103c3: OLD PERSIAN SIGN HA*/ - 0, /* U+0103c4: */ - 0, /* U+0103c5: */ - 0, /* U+0103c6: */ - 0, /* U+0103c7: */ - RTUNI_ALPHA, /* U+0103c8: OLD PERSIAN SIGN AURAMAZDAA*/ - RTUNI_ALPHA, /* U+0103c9: OLD PERSIAN SIGN AURAMAZDAA-2*/ - RTUNI_ALPHA, /* U+0103ca: OLD PERSIAN SIGN AURAMAZDAAHA*/ - RTUNI_ALPHA, /* U+0103cb: OLD PERSIAN SIGN XSHAAYATHIYA*/ - RTUNI_ALPHA, /* U+0103cc: OLD PERSIAN SIGN DAHYAAUSH*/ - RTUNI_ALPHA, /* U+0103cd: OLD PERSIAN SIGN DAHYAAUSH-2*/ - RTUNI_ALPHA, /* U+0103ce: OLD PERSIAN SIGN BAGA*/ - RTUNI_ALPHA, /* U+0103cf: OLD PERSIAN SIGN BUUMISH*/ - 0, /* U+0103d0: OLD PERSIAN WORD DIVIDER*/ - RTUNI_ALPHA, /* U+0103d1: OLD PERSIAN NUMBER ONE*/ - RTUNI_ALPHA, /* U+0103d2: OLD PERSIAN NUMBER TWO*/ - RTUNI_ALPHA, /* U+0103d3: OLD PERSIAN NUMBER TEN*/ - RTUNI_ALPHA, /* U+0103d4: OLD PERSIAN NUMBER TWENTY*/ - RTUNI_ALPHA, /* U+0103d5: OLD PERSIAN NUMBER HUNDRED*/ - 0, /* U+0103d6: */ - 0, /* U+0103d7: */ - 0, /* U+0103d8: */ - 0, /* U+0103d9: */ - 0, /* U+0103da: */ - 0, /* U+0103db: */ - 0, /* U+0103dc: */ - 0, /* U+0103dd: */ - 0, /* U+0103de: */ - 0, /* U+0103df: */ - 0, /* U+0103e0: */ - 0, /* U+0103e1: */ - 0, /* U+0103e2: */ - 0, /* U+0103e3: */ - 0, /* U+0103e4: */ - 0, /* U+0103e5: */ - 0, /* U+0103e6: */ - 0, /* U+0103e7: */ - 0, /* U+0103e8: */ - 0, /* U+0103e9: */ - 0, /* U+0103ea: */ - 0, /* U+0103eb: */ - 0, /* U+0103ec: */ - 0, /* U+0103ed: */ - 0, /* U+0103ee: */ - 0, /* U+0103ef: */ - 0, /* U+0103f0: */ - 0, /* U+0103f1: */ - 0, /* U+0103f2: */ - 0, /* U+0103f3: */ - 0, /* U+0103f4: */ - 0, /* U+0103f5: */ - 0, /* U+0103f6: */ - 0, /* U+0103f7: */ - 0, /* U+0103f8: */ - 0, /* U+0103f9: */ - 0, /* U+0103fa: */ - 0, /* U+0103fb: */ - 0, /* U+0103fc: */ - 0, /* U+0103fd: */ - 0, /* U+0103fe: */ - 0, /* U+0103ff: */ - RTUNI_ALPHA | RTUNI_UPPER, /* U+010400: DESERET CAPITAL LETTER LONG I*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+010401: DESERET CAPITAL LETTER LONG E*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+010402: DESERET CAPITAL LETTER LONG A*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+010403: DESERET CAPITAL LETTER LONG AH*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+010404: DESERET CAPITAL LETTER LONG O*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+010405: DESERET CAPITAL LETTER LONG OO*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+010406: DESERET CAPITAL LETTER SHORT I*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+010407: DESERET CAPITAL LETTER SHORT E*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+010408: DESERET CAPITAL LETTER SHORT A*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+010409: DESERET CAPITAL LETTER SHORT AH*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+01040a: DESERET CAPITAL LETTER SHORT O*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+01040b: DESERET CAPITAL LETTER SHORT OO*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+01040c: DESERET CAPITAL LETTER AY*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+01040d: DESERET CAPITAL LETTER OW*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+01040e: DESERET CAPITAL LETTER WU*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+01040f: DESERET CAPITAL LETTER YEE*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+010410: DESERET CAPITAL LETTER H*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+010411: DESERET CAPITAL LETTER PEE*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+010412: DESERET CAPITAL LETTER BEE*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+010413: DESERET CAPITAL LETTER TEE*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+010414: DESERET CAPITAL LETTER DEE*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+010415: DESERET CAPITAL LETTER CHEE*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+010416: DESERET CAPITAL LETTER JEE*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+010417: DESERET CAPITAL LETTER KAY*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+010418: DESERET CAPITAL LETTER GAY*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+010419: DESERET CAPITAL LETTER EF*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+01041a: DESERET CAPITAL LETTER VEE*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+01041b: DESERET CAPITAL LETTER ETH*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+01041c: DESERET CAPITAL LETTER THEE*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+01041d: DESERET CAPITAL LETTER ES*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+01041e: DESERET CAPITAL LETTER ZEE*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+01041f: DESERET CAPITAL LETTER ESH*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+010420: DESERET CAPITAL LETTER ZHEE*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+010421: DESERET CAPITAL LETTER ER*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+010422: DESERET CAPITAL LETTER EL*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+010423: DESERET CAPITAL LETTER EM*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+010424: DESERET CAPITAL LETTER EN*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+010425: DESERET CAPITAL LETTER ENG*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+010426: DESERET CAPITAL LETTER OI*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+010427: DESERET CAPITAL LETTER EW*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+010428: DESERET SMALL LETTER LONG I*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+010429: DESERET SMALL LETTER LONG E*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01042a: DESERET SMALL LETTER LONG A*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01042b: DESERET SMALL LETTER LONG AH*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01042c: DESERET SMALL LETTER LONG O*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01042d: DESERET SMALL LETTER LONG OO*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01042e: DESERET SMALL LETTER SHORT I*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01042f: DESERET SMALL LETTER SHORT E*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+010430: DESERET SMALL LETTER SHORT A*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+010431: DESERET SMALL LETTER SHORT AH*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+010432: DESERET SMALL LETTER SHORT O*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+010433: DESERET SMALL LETTER SHORT OO*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+010434: DESERET SMALL LETTER AY*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+010435: DESERET SMALL LETTER OW*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+010436: DESERET SMALL LETTER WU*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+010437: DESERET SMALL LETTER YEE*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+010438: DESERET SMALL LETTER H*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+010439: DESERET SMALL LETTER PEE*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01043a: DESERET SMALL LETTER BEE*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01043b: DESERET SMALL LETTER TEE*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01043c: DESERET SMALL LETTER DEE*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01043d: DESERET SMALL LETTER CHEE*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01043e: DESERET SMALL LETTER JEE*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01043f: DESERET SMALL LETTER KAY*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+010440: DESERET SMALL LETTER GAY*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+010441: DESERET SMALL LETTER EF*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+010442: DESERET SMALL LETTER VEE*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+010443: DESERET SMALL LETTER ETH*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+010444: DESERET SMALL LETTER THEE*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+010445: DESERET SMALL LETTER ES*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+010446: DESERET SMALL LETTER ZEE*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+010447: DESERET SMALL LETTER ESH*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+010448: DESERET SMALL LETTER ZHEE*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+010449: DESERET SMALL LETTER ER*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01044a: DESERET SMALL LETTER EL*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01044b: DESERET SMALL LETTER EM*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01044c: DESERET SMALL LETTER EN*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01044d: DESERET SMALL LETTER ENG*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01044e: DESERET SMALL LETTER OI*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01044f: DESERET SMALL LETTER EW*/ - RTUNI_ALPHA, /* U+010450: SHAVIAN LETTER PEEP*/ - RTUNI_ALPHA, /* U+010451: SHAVIAN LETTER TOT*/ - RTUNI_ALPHA, /* U+010452: SHAVIAN LETTER KICK*/ - RTUNI_ALPHA, /* U+010453: SHAVIAN LETTER FEE*/ - RTUNI_ALPHA, /* U+010454: SHAVIAN LETTER THIGH*/ - RTUNI_ALPHA, /* U+010455: SHAVIAN LETTER SO*/ - RTUNI_ALPHA, /* U+010456: SHAVIAN LETTER SURE*/ - RTUNI_ALPHA, /* U+010457: SHAVIAN LETTER CHURCH*/ - RTUNI_ALPHA, /* U+010458: SHAVIAN LETTER YEA*/ - RTUNI_ALPHA, /* U+010459: SHAVIAN LETTER HUNG*/ - RTUNI_ALPHA, /* U+01045a: SHAVIAN LETTER BIB*/ - RTUNI_ALPHA, /* U+01045b: SHAVIAN LETTER DEAD*/ - RTUNI_ALPHA, /* U+01045c: SHAVIAN LETTER GAG*/ - RTUNI_ALPHA, /* U+01045d: SHAVIAN LETTER VOW*/ - RTUNI_ALPHA, /* U+01045e: SHAVIAN LETTER THEY*/ - RTUNI_ALPHA, /* U+01045f: SHAVIAN LETTER ZOO*/ - RTUNI_ALPHA, /* U+010460: SHAVIAN LETTER MEASURE*/ - RTUNI_ALPHA, /* U+010461: SHAVIAN LETTER JUDGE*/ - RTUNI_ALPHA, /* U+010462: SHAVIAN LETTER WOE*/ - RTUNI_ALPHA, /* U+010463: SHAVIAN LETTER HA-HA*/ - RTUNI_ALPHA, /* U+010464: SHAVIAN LETTER LOLL*/ - RTUNI_ALPHA, /* U+010465: SHAVIAN LETTER MIME*/ - RTUNI_ALPHA, /* U+010466: SHAVIAN LETTER IF*/ - RTUNI_ALPHA, /* U+010467: SHAVIAN LETTER EGG*/ - RTUNI_ALPHA, /* U+010468: SHAVIAN LETTER ASH*/ - RTUNI_ALPHA, /* U+010469: SHAVIAN LETTER ADO*/ - RTUNI_ALPHA, /* U+01046a: SHAVIAN LETTER ON*/ - RTUNI_ALPHA, /* U+01046b: SHAVIAN LETTER WOOL*/ - RTUNI_ALPHA, /* U+01046c: SHAVIAN LETTER OUT*/ - RTUNI_ALPHA, /* U+01046d: SHAVIAN LETTER AH*/ - RTUNI_ALPHA, /* U+01046e: SHAVIAN LETTER ROAR*/ - RTUNI_ALPHA, /* U+01046f: SHAVIAN LETTER NUN*/ - RTUNI_ALPHA, /* U+010470: SHAVIAN LETTER EAT*/ - RTUNI_ALPHA, /* U+010471: SHAVIAN LETTER AGE*/ - RTUNI_ALPHA, /* U+010472: SHAVIAN LETTER ICE*/ - RTUNI_ALPHA, /* U+010473: SHAVIAN LETTER UP*/ - RTUNI_ALPHA, /* U+010474: SHAVIAN LETTER OAK*/ - RTUNI_ALPHA, /* U+010475: SHAVIAN LETTER OOZE*/ - RTUNI_ALPHA, /* U+010476: SHAVIAN LETTER OIL*/ - RTUNI_ALPHA, /* U+010477: SHAVIAN LETTER AWE*/ - RTUNI_ALPHA, /* U+010478: SHAVIAN LETTER ARE*/ - RTUNI_ALPHA, /* U+010479: SHAVIAN LETTER OR*/ - RTUNI_ALPHA, /* U+01047a: SHAVIAN LETTER AIR*/ - RTUNI_ALPHA, /* U+01047b: SHAVIAN LETTER ERR*/ - RTUNI_ALPHA, /* U+01047c: SHAVIAN LETTER ARRAY*/ - RTUNI_ALPHA, /* U+01047d: SHAVIAN LETTER EAR*/ - RTUNI_ALPHA, /* U+01047e: SHAVIAN LETTER IAN*/ - RTUNI_ALPHA, /* U+01047f: SHAVIAN LETTER YEW*/ - RTUNI_ALPHA, /* U+010480: OSMANYA LETTER ALEF*/ - RTUNI_ALPHA, /* U+010481: OSMANYA LETTER BA*/ - RTUNI_ALPHA, /* U+010482: OSMANYA LETTER TA*/ - RTUNI_ALPHA, /* U+010483: OSMANYA LETTER JA*/ - RTUNI_ALPHA, /* U+010484: OSMANYA LETTER XA*/ - RTUNI_ALPHA, /* U+010485: OSMANYA LETTER KHA*/ - RTUNI_ALPHA, /* U+010486: OSMANYA LETTER DEEL*/ - RTUNI_ALPHA, /* U+010487: OSMANYA LETTER RA*/ - RTUNI_ALPHA, /* U+010488: OSMANYA LETTER SA*/ - RTUNI_ALPHA, /* U+010489: OSMANYA LETTER SHIIN*/ - RTUNI_ALPHA, /* U+01048a: OSMANYA LETTER DHA*/ - RTUNI_ALPHA, /* U+01048b: OSMANYA LETTER CAYN*/ - RTUNI_ALPHA, /* U+01048c: OSMANYA LETTER GA*/ - RTUNI_ALPHA, /* U+01048d: OSMANYA LETTER FA*/ - RTUNI_ALPHA, /* U+01048e: OSMANYA LETTER QAAF*/ - RTUNI_ALPHA, /* U+01048f: OSMANYA LETTER KAAF*/ - RTUNI_ALPHA, /* U+010490: OSMANYA LETTER LAAN*/ - RTUNI_ALPHA, /* U+010491: OSMANYA LETTER MIIN*/ - RTUNI_ALPHA, /* U+010492: OSMANYA LETTER NUUN*/ - RTUNI_ALPHA, /* U+010493: OSMANYA LETTER WAW*/ - RTUNI_ALPHA, /* U+010494: OSMANYA LETTER HA*/ - RTUNI_ALPHA, /* U+010495: OSMANYA LETTER YA*/ - RTUNI_ALPHA, /* U+010496: OSMANYA LETTER A*/ - RTUNI_ALPHA, /* U+010497: OSMANYA LETTER E*/ - RTUNI_ALPHA, /* U+010498: OSMANYA LETTER I*/ - RTUNI_ALPHA, /* U+010499: OSMANYA LETTER O*/ - RTUNI_ALPHA, /* U+01049a: OSMANYA LETTER U*/ - RTUNI_ALPHA, /* U+01049b: OSMANYA LETTER AA*/ - RTUNI_ALPHA, /* U+01049c: OSMANYA LETTER EE*/ - RTUNI_ALPHA, /* U+01049d: OSMANYA LETTER OO*/ - 0, /* U+01049e: */ - 0, /* U+01049f: */ - RTUNI_DDIGIT, /* U+0104a0: OSMANYA DIGIT ZERO*/ - RTUNI_DDIGIT, /* U+0104a1: OSMANYA DIGIT ONE*/ - RTUNI_DDIGIT, /* U+0104a2: OSMANYA DIGIT TWO*/ - RTUNI_DDIGIT, /* U+0104a3: OSMANYA DIGIT THREE*/ - RTUNI_DDIGIT, /* U+0104a4: OSMANYA DIGIT FOUR*/ - RTUNI_DDIGIT, /* U+0104a5: OSMANYA DIGIT FIVE*/ - RTUNI_DDIGIT, /* U+0104a6: OSMANYA DIGIT SIX*/ - RTUNI_DDIGIT, /* U+0104a7: OSMANYA DIGIT SEVEN*/ - RTUNI_DDIGIT, /* U+0104a8: OSMANYA DIGIT EIGHT*/ - RTUNI_DDIGIT, /* U+0104a9: OSMANYA DIGIT NINE*/ - 0, /* U+0104aa: */ - 0, /* U+0104ab: */ - 0, /* U+0104ac: */ - 0, /* U+0104ad: */ - 0, /* U+0104ae: */ - 0, /* U+0104af: */ - 0, /* U+0104b0: */ - 0, /* U+0104b1: */ - 0, /* U+0104b2: */ - 0, /* U+0104b3: */ - 0, /* U+0104b4: */ - 0, /* U+0104b5: */ - 0, /* U+0104b6: */ - 0, /* U+0104b7: */ - 0, /* U+0104b8: */ - 0, /* U+0104b9: */ - 0, /* U+0104ba: */ - 0, /* U+0104bb: */ - 0, /* U+0104bc: */ - 0, /* U+0104bd: */ - 0, /* U+0104be: */ - 0, /* U+0104bf: */ - 0, /* U+0104c0: */ - 0, /* U+0104c1: */ - 0, /* U+0104c2: */ - 0, /* U+0104c3: */ - 0, /* U+0104c4: */ - 0, /* U+0104c5: */ - 0, /* U+0104c6: */ - 0, /* U+0104c7: */ - 0, /* U+0104c8: */ - 0, /* U+0104c9: */ - 0, /* U+0104ca: */ - 0, /* U+0104cb: */ - 0, /* U+0104cc: */ - 0, /* U+0104cd: */ - 0, /* U+0104ce: */ - 0, /* U+0104cf: */ - 0, /* U+0104d0: */ - 0, /* U+0104d1: */ - 0, /* U+0104d2: */ - 0, /* U+0104d3: */ - 0, /* U+0104d4: */ - 0, /* U+0104d5: */ - 0, /* U+0104d6: */ - 0, /* U+0104d7: */ - 0, /* U+0104d8: */ - 0, /* U+0104d9: */ - 0, /* U+0104da: */ - 0, /* U+0104db: */ - 0, /* U+0104dc: */ - 0, /* U+0104dd: */ - 0, /* U+0104de: */ - 0, /* U+0104df: */ - 0, /* U+0104e0: */ - 0, /* U+0104e1: */ - 0, /* U+0104e2: */ - 0, /* U+0104e3: */ - 0, /* U+0104e4: */ - 0, /* U+0104e5: */ - 0, /* U+0104e6: */ - 0, /* U+0104e7: */ - 0, /* U+0104e8: */ - 0, /* U+0104e9: */ - 0, /* U+0104ea: */ - 0, /* U+0104eb: */ - 0, /* U+0104ec: */ - 0, /* U+0104ed: */ - 0, /* U+0104ee: */ - 0, /* U+0104ef: */ - 0, /* U+0104f0: */ - 0, /* U+0104f1: */ - 0, /* U+0104f2: */ - 0, /* U+0104f3: */ - 0, /* U+0104f4: */ - 0, /* U+0104f5: */ - 0, /* U+0104f6: */ - 0, /* U+0104f7: */ - 0, /* U+0104f8: */ - 0, /* U+0104f9: */ - 0, /* U+0104fa: */ - 0, /* U+0104fb: */ - 0, /* U+0104fc: */ - 0, /* U+0104fd: */ - 0, /* U+0104fe: */ - 0, /* U+0104ff: */ - 0, /* U+010500: */ - 0, /* U+010501: */ - 0, /* U+010502: */ - 0, /* U+010503: */ - 0, /* U+010504: */ - 0, /* U+010505: */ - 0, /* U+010506: */ - 0, /* U+010507: */ - 0, /* U+010508: */ - 0, /* U+010509: */ - 0, /* U+01050a: */ - 0, /* U+01050b: */ - 0, /* U+01050c: */ - 0, /* U+01050d: */ - 0, /* U+01050e: */ - 0, /* U+01050f: */ - 0, /* U+010510: */ - 0, /* U+010511: */ - 0, /* U+010512: */ - 0, /* U+010513: */ - 0, /* U+010514: */ - 0, /* U+010515: */ - 0, /* U+010516: */ - 0, /* U+010517: */ - 0, /* U+010518: */ - 0, /* U+010519: */ - 0, /* U+01051a: */ - 0, /* U+01051b: */ - 0, /* U+01051c: */ - 0, /* U+01051d: */ - 0, /* U+01051e: */ - 0, /* U+01051f: */ - 0, /* U+010520: */ - 0, /* U+010521: */ - 0, /* U+010522: */ - 0, /* U+010523: */ - 0, /* U+010524: */ - 0, /* U+010525: */ - 0, /* U+010526: */ - 0, /* U+010527: */ - 0, /* U+010528: */ - 0, /* U+010529: */ - 0, /* U+01052a: */ - 0, /* U+01052b: */ - 0, /* U+01052c: */ - 0, /* U+01052d: */ - 0, /* U+01052e: */ - 0, /* U+01052f: */ - 0, /* U+010530: */ - 0, /* U+010531: */ - 0, /* U+010532: */ - 0, /* U+010533: */ - 0, /* U+010534: */ - 0, /* U+010535: */ - 0, /* U+010536: */ - 0, /* U+010537: */ - 0, /* U+010538: */ - 0, /* U+010539: */ - 0, /* U+01053a: */ - 0, /* U+01053b: */ - 0, /* U+01053c: */ - 0, /* U+01053d: */ - 0, /* U+01053e: */ - 0, /* U+01053f: */ - 0, /* U+010540: */ - 0, /* U+010541: */ - 0, /* U+010542: */ - 0, /* U+010543: */ - 0, /* U+010544: */ - 0, /* U+010545: */ - 0, /* U+010546: */ - 0, /* U+010547: */ - 0, /* U+010548: */ - 0, /* U+010549: */ - 0, /* U+01054a: */ - 0, /* U+01054b: */ - 0, /* U+01054c: */ - 0, /* U+01054d: */ - 0, /* U+01054e: */ - 0, /* U+01054f: */ - 0, /* U+010550: */ - 0, /* U+010551: */ - 0, /* U+010552: */ - 0, /* U+010553: */ - 0, /* U+010554: */ - 0, /* U+010555: */ - 0, /* U+010556: */ - 0, /* U+010557: */ - 0, /* U+010558: */ - 0, /* U+010559: */ - 0, /* U+01055a: */ - 0, /* U+01055b: */ - 0, /* U+01055c: */ - 0, /* U+01055d: */ - 0, /* U+01055e: */ - 0, /* U+01055f: */ - 0, /* U+010560: */ - 0, /* U+010561: */ - 0, /* U+010562: */ - 0, /* U+010563: */ - 0, /* U+010564: */ - 0, /* U+010565: */ - 0, /* U+010566: */ - 0, /* U+010567: */ - 0, /* U+010568: */ - 0, /* U+010569: */ - 0, /* U+01056a: */ - 0, /* U+01056b: */ - 0, /* U+01056c: */ - 0, /* U+01056d: */ - 0, /* U+01056e: */ - 0, /* U+01056f: */ - 0, /* U+010570: */ - 0, /* U+010571: */ - 0, /* U+010572: */ - 0, /* U+010573: */ - 0, /* U+010574: */ - 0, /* U+010575: */ - 0, /* U+010576: */ - 0, /* U+010577: */ - 0, /* U+010578: */ - 0, /* U+010579: */ - 0, /* U+01057a: */ - 0, /* U+01057b: */ - 0, /* U+01057c: */ - 0, /* U+01057d: */ - 0, /* U+01057e: */ - 0, /* U+01057f: */ - 0, /* U+010580: */ - 0, /* U+010581: */ - 0, /* U+010582: */ - 0, /* U+010583: */ - 0, /* U+010584: */ - 0, /* U+010585: */ - 0, /* U+010586: */ - 0, /* U+010587: */ - 0, /* U+010588: */ - 0, /* U+010589: */ - 0, /* U+01058a: */ - 0, /* U+01058b: */ - 0, /* U+01058c: */ - 0, /* U+01058d: */ - 0, /* U+01058e: */ - 0, /* U+01058f: */ - 0, /* U+010590: */ - 0, /* U+010591: */ - 0, /* U+010592: */ - 0, /* U+010593: */ - 0, /* U+010594: */ - 0, /* U+010595: */ - 0, /* U+010596: */ - 0, /* U+010597: */ - 0, /* U+010598: */ - 0, /* U+010599: */ - 0, /* U+01059a: */ - 0, /* U+01059b: */ - 0, /* U+01059c: */ - 0, /* U+01059d: */ - 0, /* U+01059e: */ - 0, /* U+01059f: */ - 0, /* U+0105a0: */ - 0, /* U+0105a1: */ - 0, /* U+0105a2: */ - 0, /* U+0105a3: */ - 0, /* U+0105a4: */ - 0, /* U+0105a5: */ - 0, /* U+0105a6: */ - 0, /* U+0105a7: */ - 0, /* U+0105a8: */ - 0, /* U+0105a9: */ - 0, /* U+0105aa: */ - 0, /* U+0105ab: */ - 0, /* U+0105ac: */ - 0, /* U+0105ad: */ - 0, /* U+0105ae: */ - 0, /* U+0105af: */ - 0, /* U+0105b0: */ - 0, /* U+0105b1: */ - 0, /* U+0105b2: */ - 0, /* U+0105b3: */ - 0, /* U+0105b4: */ - 0, /* U+0105b5: */ - 0, /* U+0105b6: */ - 0, /* U+0105b7: */ - 0, /* U+0105b8: */ - 0, /* U+0105b9: */ - 0, /* U+0105ba: */ - 0, /* U+0105bb: */ - 0, /* U+0105bc: */ - 0, /* U+0105bd: */ - 0, /* U+0105be: */ - 0, /* U+0105bf: */ - 0, /* U+0105c0: */ - 0, /* U+0105c1: */ - 0, /* U+0105c2: */ - 0, /* U+0105c3: */ - 0, /* U+0105c4: */ - 0, /* U+0105c5: */ - 0, /* U+0105c6: */ - 0, /* U+0105c7: */ - 0, /* U+0105c8: */ - 0, /* U+0105c9: */ - 0, /* U+0105ca: */ - 0, /* U+0105cb: */ - 0, /* U+0105cc: */ - 0, /* U+0105cd: */ - 0, /* U+0105ce: */ - 0, /* U+0105cf: */ - 0, /* U+0105d0: */ - 0, /* U+0105d1: */ - 0, /* U+0105d2: */ - 0, /* U+0105d3: */ - 0, /* U+0105d4: */ - 0, /* U+0105d5: */ - 0, /* U+0105d6: */ - 0, /* U+0105d7: */ - 0, /* U+0105d8: */ - 0, /* U+0105d9: */ - 0, /* U+0105da: */ - 0, /* U+0105db: */ - 0, /* U+0105dc: */ - 0, /* U+0105dd: */ - 0, /* U+0105de: */ - 0, /* U+0105df: */ - 0, /* U+0105e0: */ - 0, /* U+0105e1: */ - 0, /* U+0105e2: */ - 0, /* U+0105e3: */ - 0, /* U+0105e4: */ - 0, /* U+0105e5: */ - 0, /* U+0105e6: */ - 0, /* U+0105e7: */ - 0, /* U+0105e8: */ - 0, /* U+0105e9: */ - 0, /* U+0105ea: */ - 0, /* U+0105eb: */ - 0, /* U+0105ec: */ - 0, /* U+0105ed: */ - 0, /* U+0105ee: */ - 0, /* U+0105ef: */ - 0, /* U+0105f0: */ - 0, /* U+0105f1: */ - 0, /* U+0105f2: */ - 0, /* U+0105f3: */ - 0, /* U+0105f4: */ - 0, /* U+0105f5: */ - 0, /* U+0105f6: */ - 0, /* U+0105f7: */ - 0, /* U+0105f8: */ - 0, /* U+0105f9: */ - 0, /* U+0105fa: */ - 0, /* U+0105fb: */ - 0, /* U+0105fc: */ - 0, /* U+0105fd: */ - 0, /* U+0105fe: */ - 0, /* U+0105ff: */ - 0, /* U+010600: */ - 0, /* U+010601: */ - 0, /* U+010602: */ - 0, /* U+010603: */ - 0, /* U+010604: */ - 0, /* U+010605: */ - 0, /* U+010606: */ - 0, /* U+010607: */ - 0, /* U+010608: */ - 0, /* U+010609: */ - 0, /* U+01060a: */ - 0, /* U+01060b: */ - 0, /* U+01060c: */ - 0, /* U+01060d: */ - 0, /* U+01060e: */ - 0, /* U+01060f: */ - 0, /* U+010610: */ - 0, /* U+010611: */ - 0, /* U+010612: */ - 0, /* U+010613: */ - 0, /* U+010614: */ - 0, /* U+010615: */ - 0, /* U+010616: */ - 0, /* U+010617: */ - 0, /* U+010618: */ - 0, /* U+010619: */ - 0, /* U+01061a: */ - 0, /* U+01061b: */ - 0, /* U+01061c: */ - 0, /* U+01061d: */ - 0, /* U+01061e: */ - 0, /* U+01061f: */ - 0, /* U+010620: */ - 0, /* U+010621: */ - 0, /* U+010622: */ - 0, /* U+010623: */ - 0, /* U+010624: */ - 0, /* U+010625: */ - 0, /* U+010626: */ - 0, /* U+010627: */ - 0, /* U+010628: */ - 0, /* U+010629: */ - 0, /* U+01062a: */ - 0, /* U+01062b: */ - 0, /* U+01062c: */ - 0, /* U+01062d: */ - 0, /* U+01062e: */ - 0, /* U+01062f: */ - 0, /* U+010630: */ - 0, /* U+010631: */ - 0, /* U+010632: */ - 0, /* U+010633: */ - 0, /* U+010634: */ - 0, /* U+010635: */ - 0, /* U+010636: */ - 0, /* U+010637: */ - 0, /* U+010638: */ - 0, /* U+010639: */ - 0, /* U+01063a: */ - 0, /* U+01063b: */ - 0, /* U+01063c: */ - 0, /* U+01063d: */ - 0, /* U+01063e: */ - 0, /* U+01063f: */ - 0, /* U+010640: */ - 0, /* U+010641: */ - 0, /* U+010642: */ - 0, /* U+010643: */ - 0, /* U+010644: */ - 0, /* U+010645: */ - 0, /* U+010646: */ - 0, /* U+010647: */ - 0, /* U+010648: */ - 0, /* U+010649: */ - 0, /* U+01064a: */ - 0, /* U+01064b: */ - 0, /* U+01064c: */ - 0, /* U+01064d: */ - 0, /* U+01064e: */ - 0, /* U+01064f: */ - 0, /* U+010650: */ - 0, /* U+010651: */ - 0, /* U+010652: */ - 0, /* U+010653: */ - 0, /* U+010654: */ - 0, /* U+010655: */ - 0, /* U+010656: */ - 0, /* U+010657: */ - 0, /* U+010658: */ - 0, /* U+010659: */ - 0, /* U+01065a: */ - 0, /* U+01065b: */ - 0, /* U+01065c: */ - 0, /* U+01065d: */ - 0, /* U+01065e: */ - 0, /* U+01065f: */ - 0, /* U+010660: */ - 0, /* U+010661: */ - 0, /* U+010662: */ - 0, /* U+010663: */ - 0, /* U+010664: */ - 0, /* U+010665: */ - 0, /* U+010666: */ - 0, /* U+010667: */ - 0, /* U+010668: */ - 0, /* U+010669: */ - 0, /* U+01066a: */ - 0, /* U+01066b: */ - 0, /* U+01066c: */ - 0, /* U+01066d: */ - 0, /* U+01066e: */ - 0, /* U+01066f: */ - 0, /* U+010670: */ - 0, /* U+010671: */ - 0, /* U+010672: */ - 0, /* U+010673: */ - 0, /* U+010674: */ - 0, /* U+010675: */ - 0, /* U+010676: */ - 0, /* U+010677: */ - 0, /* U+010678: */ - 0, /* U+010679: */ - 0, /* U+01067a: */ - 0, /* U+01067b: */ - 0, /* U+01067c: */ - 0, /* U+01067d: */ - 0, /* U+01067e: */ - 0, /* U+01067f: */ - 0, /* U+010680: */ - 0, /* U+010681: */ - 0, /* U+010682: */ - 0, /* U+010683: */ - 0, /* U+010684: */ - 0, /* U+010685: */ - 0, /* U+010686: */ - 0, /* U+010687: */ - 0, /* U+010688: */ - 0, /* U+010689: */ - 0, /* U+01068a: */ - 0, /* U+01068b: */ - 0, /* U+01068c: */ - 0, /* U+01068d: */ - 0, /* U+01068e: */ - 0, /* U+01068f: */ - 0, /* U+010690: */ - 0, /* U+010691: */ - 0, /* U+010692: */ - 0, /* U+010693: */ - 0, /* U+010694: */ - 0, /* U+010695: */ - 0, /* U+010696: */ - 0, /* U+010697: */ - 0, /* U+010698: */ - 0, /* U+010699: */ - 0, /* U+01069a: */ - 0, /* U+01069b: */ - 0, /* U+01069c: */ - 0, /* U+01069d: */ - 0, /* U+01069e: */ - 0, /* U+01069f: */ - 0, /* U+0106a0: */ - 0, /* U+0106a1: */ - 0, /* U+0106a2: */ - 0, /* U+0106a3: */ - 0, /* U+0106a4: */ - 0, /* U+0106a5: */ - 0, /* U+0106a6: */ - 0, /* U+0106a7: */ - 0, /* U+0106a8: */ - 0, /* U+0106a9: */ - 0, /* U+0106aa: */ - 0, /* U+0106ab: */ - 0, /* U+0106ac: */ - 0, /* U+0106ad: */ - 0, /* U+0106ae: */ - 0, /* U+0106af: */ - 0, /* U+0106b0: */ - 0, /* U+0106b1: */ - 0, /* U+0106b2: */ - 0, /* U+0106b3: */ - 0, /* U+0106b4: */ - 0, /* U+0106b5: */ - 0, /* U+0106b6: */ - 0, /* U+0106b7: */ - 0, /* U+0106b8: */ - 0, /* U+0106b9: */ - 0, /* U+0106ba: */ - 0, /* U+0106bb: */ - 0, /* U+0106bc: */ - 0, /* U+0106bd: */ - 0, /* U+0106be: */ - 0, /* U+0106bf: */ - 0, /* U+0106c0: */ - 0, /* U+0106c1: */ - 0, /* U+0106c2: */ - 0, /* U+0106c3: */ - 0, /* U+0106c4: */ - 0, /* U+0106c5: */ - 0, /* U+0106c6: */ - 0, /* U+0106c7: */ - 0, /* U+0106c8: */ - 0, /* U+0106c9: */ - 0, /* U+0106ca: */ - 0, /* U+0106cb: */ - 0, /* U+0106cc: */ - 0, /* U+0106cd: */ - 0, /* U+0106ce: */ - 0, /* U+0106cf: */ - 0, /* U+0106d0: */ - 0, /* U+0106d1: */ - 0, /* U+0106d2: */ - 0, /* U+0106d3: */ - 0, /* U+0106d4: */ - 0, /* U+0106d5: */ - 0, /* U+0106d6: */ - 0, /* U+0106d7: */ - 0, /* U+0106d8: */ - 0, /* U+0106d9: */ - 0, /* U+0106da: */ - 0, /* U+0106db: */ - 0, /* U+0106dc: */ - 0, /* U+0106dd: */ - 0, /* U+0106de: */ - 0, /* U+0106df: */ - 0, /* U+0106e0: */ - 0, /* U+0106e1: */ - 0, /* U+0106e2: */ - 0, /* U+0106e3: */ - 0, /* U+0106e4: */ - 0, /* U+0106e5: */ - 0, /* U+0106e6: */ - 0, /* U+0106e7: */ - 0, /* U+0106e8: */ - 0, /* U+0106e9: */ - 0, /* U+0106ea: */ - 0, /* U+0106eb: */ - 0, /* U+0106ec: */ - 0, /* U+0106ed: */ - 0, /* U+0106ee: */ - 0, /* U+0106ef: */ - 0, /* U+0106f0: */ - 0, /* U+0106f1: */ - 0, /* U+0106f2: */ - 0, /* U+0106f3: */ - 0, /* U+0106f4: */ - 0, /* U+0106f5: */ - 0, /* U+0106f6: */ - 0, /* U+0106f7: */ - 0, /* U+0106f8: */ - 0, /* U+0106f9: */ - 0, /* U+0106fa: */ - 0, /* U+0106fb: */ - 0, /* U+0106fc: */ - 0, /* U+0106fd: */ - 0, /* U+0106fe: */ - 0, /* U+0106ff: */ - 0, /* U+010700: */ - 0, /* U+010701: */ - 0, /* U+010702: */ - 0, /* U+010703: */ - 0, /* U+010704: */ - 0, /* U+010705: */ - 0, /* U+010706: */ - 0, /* U+010707: */ - 0, /* U+010708: */ - 0, /* U+010709: */ - 0, /* U+01070a: */ - 0, /* U+01070b: */ - 0, /* U+01070c: */ - 0, /* U+01070d: */ - 0, /* U+01070e: */ - 0, /* U+01070f: */ - 0, /* U+010710: */ - 0, /* U+010711: */ - 0, /* U+010712: */ - 0, /* U+010713: */ - 0, /* U+010714: */ - 0, /* U+010715: */ - 0, /* U+010716: */ - 0, /* U+010717: */ - 0, /* U+010718: */ - 0, /* U+010719: */ - 0, /* U+01071a: */ - 0, /* U+01071b: */ - 0, /* U+01071c: */ - 0, /* U+01071d: */ - 0, /* U+01071e: */ - 0, /* U+01071f: */ - 0, /* U+010720: */ - 0, /* U+010721: */ - 0, /* U+010722: */ - 0, /* U+010723: */ - 0, /* U+010724: */ - 0, /* U+010725: */ - 0, /* U+010726: */ - 0, /* U+010727: */ - 0, /* U+010728: */ - 0, /* U+010729: */ - 0, /* U+01072a: */ - 0, /* U+01072b: */ - 0, /* U+01072c: */ - 0, /* U+01072d: */ - 0, /* U+01072e: */ - 0, /* U+01072f: */ - 0, /* U+010730: */ - 0, /* U+010731: */ - 0, /* U+010732: */ - 0, /* U+010733: */ - 0, /* U+010734: */ - 0, /* U+010735: */ - 0, /* U+010736: */ - 0, /* U+010737: */ - 0, /* U+010738: */ - 0, /* U+010739: */ - 0, /* U+01073a: */ - 0, /* U+01073b: */ - 0, /* U+01073c: */ - 0, /* U+01073d: */ - 0, /* U+01073e: */ - 0, /* U+01073f: */ - 0, /* U+010740: */ - 0, /* U+010741: */ - 0, /* U+010742: */ - 0, /* U+010743: */ - 0, /* U+010744: */ - 0, /* U+010745: */ - 0, /* U+010746: */ - 0, /* U+010747: */ - 0, /* U+010748: */ - 0, /* U+010749: */ - 0, /* U+01074a: */ - 0, /* U+01074b: */ - 0, /* U+01074c: */ - 0, /* U+01074d: */ - 0, /* U+01074e: */ - 0, /* U+01074f: */ - 0, /* U+010750: */ - 0, /* U+010751: */ - 0, /* U+010752: */ - 0, /* U+010753: */ - 0, /* U+010754: */ - 0, /* U+010755: */ - 0, /* U+010756: */ - 0, /* U+010757: */ - 0, /* U+010758: */ - 0, /* U+010759: */ - 0, /* U+01075a: */ - 0, /* U+01075b: */ - 0, /* U+01075c: */ - 0, /* U+01075d: */ - 0, /* U+01075e: */ - 0, /* U+01075f: */ - 0, /* U+010760: */ - 0, /* U+010761: */ - 0, /* U+010762: */ - 0, /* U+010763: */ - 0, /* U+010764: */ - 0, /* U+010765: */ - 0, /* U+010766: */ - 0, /* U+010767: */ - 0, /* U+010768: */ - 0, /* U+010769: */ - 0, /* U+01076a: */ - 0, /* U+01076b: */ - 0, /* U+01076c: */ - 0, /* U+01076d: */ - 0, /* U+01076e: */ - 0, /* U+01076f: */ - 0, /* U+010770: */ - 0, /* U+010771: */ - 0, /* U+010772: */ - 0, /* U+010773: */ - 0, /* U+010774: */ - 0, /* U+010775: */ - 0, /* U+010776: */ - 0, /* U+010777: */ - 0, /* U+010778: */ - 0, /* U+010779: */ - 0, /* U+01077a: */ - 0, /* U+01077b: */ - 0, /* U+01077c: */ - 0, /* U+01077d: */ - 0, /* U+01077e: */ - 0, /* U+01077f: */ - 0, /* U+010780: */ - 0, /* U+010781: */ - 0, /* U+010782: */ - 0, /* U+010783: */ - 0, /* U+010784: */ - 0, /* U+010785: */ - 0, /* U+010786: */ - 0, /* U+010787: */ - 0, /* U+010788: */ - 0, /* U+010789: */ - 0, /* U+01078a: */ - 0, /* U+01078b: */ - 0, /* U+01078c: */ - 0, /* U+01078d: */ - 0, /* U+01078e: */ - 0, /* U+01078f: */ - 0, /* U+010790: */ - 0, /* U+010791: */ - 0, /* U+010792: */ - 0, /* U+010793: */ - 0, /* U+010794: */ - 0, /* U+010795: */ - 0, /* U+010796: */ - 0, /* U+010797: */ - 0, /* U+010798: */ - 0, /* U+010799: */ - 0, /* U+01079a: */ - 0, /* U+01079b: */ - 0, /* U+01079c: */ - 0, /* U+01079d: */ - 0, /* U+01079e: */ - 0, /* U+01079f: */ - 0, /* U+0107a0: */ - 0, /* U+0107a1: */ - 0, /* U+0107a2: */ - 0, /* U+0107a3: */ - 0, /* U+0107a4: */ - 0, /* U+0107a5: */ - 0, /* U+0107a6: */ - 0, /* U+0107a7: */ - 0, /* U+0107a8: */ - 0, /* U+0107a9: */ - 0, /* U+0107aa: */ - 0, /* U+0107ab: */ - 0, /* U+0107ac: */ - 0, /* U+0107ad: */ - 0, /* U+0107ae: */ - 0, /* U+0107af: */ - 0, /* U+0107b0: */ - 0, /* U+0107b1: */ - 0, /* U+0107b2: */ - 0, /* U+0107b3: */ - 0, /* U+0107b4: */ - 0, /* U+0107b5: */ - 0, /* U+0107b6: */ - 0, /* U+0107b7: */ - 0, /* U+0107b8: */ - 0, /* U+0107b9: */ - 0, /* U+0107ba: */ - 0, /* U+0107bb: */ - 0, /* U+0107bc: */ - 0, /* U+0107bd: */ - 0, /* U+0107be: */ - 0, /* U+0107bf: */ - 0, /* U+0107c0: */ - 0, /* U+0107c1: */ - 0, /* U+0107c2: */ - 0, /* U+0107c3: */ - 0, /* U+0107c4: */ - 0, /* U+0107c5: */ - 0, /* U+0107c6: */ - 0, /* U+0107c7: */ - 0, /* U+0107c8: */ - 0, /* U+0107c9: */ - 0, /* U+0107ca: */ - 0, /* U+0107cb: */ - 0, /* U+0107cc: */ - 0, /* U+0107cd: */ - 0, /* U+0107ce: */ - 0, /* U+0107cf: */ - 0, /* U+0107d0: */ - 0, /* U+0107d1: */ - 0, /* U+0107d2: */ - 0, /* U+0107d3: */ - 0, /* U+0107d4: */ - 0, /* U+0107d5: */ - 0, /* U+0107d6: */ - 0, /* U+0107d7: */ - 0, /* U+0107d8: */ - 0, /* U+0107d9: */ - 0, /* U+0107da: */ - 0, /* U+0107db: */ - 0, /* U+0107dc: */ - 0, /* U+0107dd: */ - 0, /* U+0107de: */ - 0, /* U+0107df: */ - 0, /* U+0107e0: */ - 0, /* U+0107e1: */ - 0, /* U+0107e2: */ - 0, /* U+0107e3: */ - 0, /* U+0107e4: */ - 0, /* U+0107e5: */ - 0, /* U+0107e6: */ - 0, /* U+0107e7: */ - 0, /* U+0107e8: */ - 0, /* U+0107e9: */ - 0, /* U+0107ea: */ - 0, /* U+0107eb: */ - 0, /* U+0107ec: */ - 0, /* U+0107ed: */ - 0, /* U+0107ee: */ - 0, /* U+0107ef: */ - 0, /* U+0107f0: */ - 0, /* U+0107f1: */ - 0, /* U+0107f2: */ - 0, /* U+0107f3: */ - 0, /* U+0107f4: */ - 0, /* U+0107f5: */ - 0, /* U+0107f6: */ - 0, /* U+0107f7: */ - 0, /* U+0107f8: */ - 0, /* U+0107f9: */ - 0, /* U+0107fa: */ - 0, /* U+0107fb: */ - 0, /* U+0107fc: */ - 0, /* U+0107fd: */ - 0, /* U+0107fe: */ - 0, /* U+0107ff: */ - RTUNI_ALPHA, /* U+010800: CYPRIOT SYLLABLE A*/ - RTUNI_ALPHA, /* U+010801: CYPRIOT SYLLABLE E*/ - RTUNI_ALPHA, /* U+010802: CYPRIOT SYLLABLE I*/ - RTUNI_ALPHA, /* U+010803: CYPRIOT SYLLABLE O*/ - RTUNI_ALPHA, /* U+010804: CYPRIOT SYLLABLE U*/ - RTUNI_ALPHA, /* U+010805: CYPRIOT SYLLABLE JA*/ - 0, /* U+010806: */ - 0, /* U+010807: */ - RTUNI_ALPHA, /* U+010808: CYPRIOT SYLLABLE JO*/ - 0, /* U+010809: */ - RTUNI_ALPHA, /* U+01080a: CYPRIOT SYLLABLE KA*/ - RTUNI_ALPHA, /* U+01080b: CYPRIOT SYLLABLE KE*/ - RTUNI_ALPHA, /* U+01080c: CYPRIOT SYLLABLE KI*/ - RTUNI_ALPHA, /* U+01080d: CYPRIOT SYLLABLE KO*/ - RTUNI_ALPHA, /* U+01080e: CYPRIOT SYLLABLE KU*/ - RTUNI_ALPHA, /* U+01080f: CYPRIOT SYLLABLE LA*/ - RTUNI_ALPHA, /* U+010810: CYPRIOT SYLLABLE LE*/ - RTUNI_ALPHA, /* U+010811: CYPRIOT SYLLABLE LI*/ - RTUNI_ALPHA, /* U+010812: CYPRIOT SYLLABLE LO*/ - RTUNI_ALPHA, /* U+010813: CYPRIOT SYLLABLE LU*/ - RTUNI_ALPHA, /* U+010814: CYPRIOT SYLLABLE MA*/ - RTUNI_ALPHA, /* U+010815: CYPRIOT SYLLABLE ME*/ - RTUNI_ALPHA, /* U+010816: CYPRIOT SYLLABLE MI*/ - RTUNI_ALPHA, /* U+010817: CYPRIOT SYLLABLE MO*/ - RTUNI_ALPHA, /* U+010818: CYPRIOT SYLLABLE MU*/ - RTUNI_ALPHA, /* U+010819: CYPRIOT SYLLABLE NA*/ - RTUNI_ALPHA, /* U+01081a: CYPRIOT SYLLABLE NE*/ - RTUNI_ALPHA, /* U+01081b: CYPRIOT SYLLABLE NI*/ - RTUNI_ALPHA, /* U+01081c: CYPRIOT SYLLABLE NO*/ - RTUNI_ALPHA, /* U+01081d: CYPRIOT SYLLABLE NU*/ - RTUNI_ALPHA, /* U+01081e: CYPRIOT SYLLABLE PA*/ - RTUNI_ALPHA, /* U+01081f: CYPRIOT SYLLABLE PE*/ - RTUNI_ALPHA, /* U+010820: CYPRIOT SYLLABLE PI*/ - RTUNI_ALPHA, /* U+010821: CYPRIOT SYLLABLE PO*/ - RTUNI_ALPHA, /* U+010822: CYPRIOT SYLLABLE PU*/ - RTUNI_ALPHA, /* U+010823: CYPRIOT SYLLABLE RA*/ - RTUNI_ALPHA, /* U+010824: CYPRIOT SYLLABLE RE*/ - RTUNI_ALPHA, /* U+010825: CYPRIOT SYLLABLE RI*/ - RTUNI_ALPHA, /* U+010826: CYPRIOT SYLLABLE RO*/ - RTUNI_ALPHA, /* U+010827: CYPRIOT SYLLABLE RU*/ - RTUNI_ALPHA, /* U+010828: CYPRIOT SYLLABLE SA*/ - RTUNI_ALPHA, /* U+010829: CYPRIOT SYLLABLE SE*/ - RTUNI_ALPHA, /* U+01082a: CYPRIOT SYLLABLE SI*/ - RTUNI_ALPHA, /* U+01082b: CYPRIOT SYLLABLE SO*/ - RTUNI_ALPHA, /* U+01082c: CYPRIOT SYLLABLE SU*/ - RTUNI_ALPHA, /* U+01082d: CYPRIOT SYLLABLE TA*/ - RTUNI_ALPHA, /* U+01082e: CYPRIOT SYLLABLE TE*/ - RTUNI_ALPHA, /* U+01082f: CYPRIOT SYLLABLE TI*/ - RTUNI_ALPHA, /* U+010830: CYPRIOT SYLLABLE TO*/ - RTUNI_ALPHA, /* U+010831: CYPRIOT SYLLABLE TU*/ - RTUNI_ALPHA, /* U+010832: CYPRIOT SYLLABLE WA*/ - RTUNI_ALPHA, /* U+010833: CYPRIOT SYLLABLE WE*/ - RTUNI_ALPHA, /* U+010834: CYPRIOT SYLLABLE WI*/ - RTUNI_ALPHA, /* U+010835: CYPRIOT SYLLABLE WO*/ - 0, /* U+010836: */ - RTUNI_ALPHA, /* U+010837: CYPRIOT SYLLABLE XA*/ - RTUNI_ALPHA, /* U+010838: CYPRIOT SYLLABLE XE*/ - 0, /* U+010839: */ - 0, /* U+01083a: */ - 0, /* U+01083b: */ - RTUNI_ALPHA, /* U+01083c: CYPRIOT SYLLABLE ZA*/ - 0, /* U+01083d: */ - 0, /* U+01083e: */ - RTUNI_ALPHA, /* U+01083f: CYPRIOT SYLLABLE ZO*/ - 0, /* U+010840: */ - 0, /* U+010841: */ - 0, /* U+010842: */ - 0, /* U+010843: */ - 0, /* U+010844: */ - 0, /* U+010845: */ - 0, /* U+010846: */ - 0, /* U+010847: */ - 0, /* U+010848: */ - 0, /* U+010849: */ - 0, /* U+01084a: */ - 0, /* U+01084b: */ - 0, /* U+01084c: */ - 0, /* U+01084d: */ - 0, /* U+01084e: */ - 0, /* U+01084f: */ - 0, /* U+010850: */ - 0, /* U+010851: */ - 0, /* U+010852: */ - 0, /* U+010853: */ - 0, /* U+010854: */ - 0, /* U+010855: */ - 0, /* U+010856: */ - 0, /* U+010857: */ - 0, /* U+010858: */ - 0, /* U+010859: */ - 0, /* U+01085a: */ - 0, /* U+01085b: */ - 0, /* U+01085c: */ - 0, /* U+01085d: */ - 0, /* U+01085e: */ - 0, /* U+01085f: */ - 0, /* U+010860: */ - 0, /* U+010861: */ - 0, /* U+010862: */ - 0, /* U+010863: */ - 0, /* U+010864: */ - 0, /* U+010865: */ - 0, /* U+010866: */ - 0, /* U+010867: */ - 0, /* U+010868: */ - 0, /* U+010869: */ - 0, /* U+01086a: */ - 0, /* U+01086b: */ - 0, /* U+01086c: */ - 0, /* U+01086d: */ - 0, /* U+01086e: */ - 0, /* U+01086f: */ - 0, /* U+010870: */ - 0, /* U+010871: */ - 0, /* U+010872: */ - 0, /* U+010873: */ - 0, /* U+010874: */ - 0, /* U+010875: */ - 0, /* U+010876: */ - 0, /* U+010877: */ - 0, /* U+010878: */ - 0, /* U+010879: */ - 0, /* U+01087a: */ - 0, /* U+01087b: */ - 0, /* U+01087c: */ - 0, /* U+01087d: */ - 0, /* U+01087e: */ - 0, /* U+01087f: */ - 0, /* U+010880: */ - 0, /* U+010881: */ - 0, /* U+010882: */ - 0, /* U+010883: */ - 0, /* U+010884: */ - 0, /* U+010885: */ - 0, /* U+010886: */ - 0, /* U+010887: */ - 0, /* U+010888: */ - 0, /* U+010889: */ - 0, /* U+01088a: */ - 0, /* U+01088b: */ - 0, /* U+01088c: */ - 0, /* U+01088d: */ - 0, /* U+01088e: */ - 0, /* U+01088f: */ - 0, /* U+010890: */ - 0, /* U+010891: */ - 0, /* U+010892: */ - 0, /* U+010893: */ - 0, /* U+010894: */ - 0, /* U+010895: */ - 0, /* U+010896: */ - 0, /* U+010897: */ - 0, /* U+010898: */ - 0, /* U+010899: */ - 0, /* U+01089a: */ - 0, /* U+01089b: */ - 0, /* U+01089c: */ - 0, /* U+01089d: */ - 0, /* U+01089e: */ - 0, /* U+01089f: */ - 0, /* U+0108a0: */ - 0, /* U+0108a1: */ - 0, /* U+0108a2: */ - 0, /* U+0108a3: */ - 0, /* U+0108a4: */ - 0, /* U+0108a5: */ - 0, /* U+0108a6: */ - 0, /* U+0108a7: */ - 0, /* U+0108a8: */ - 0, /* U+0108a9: */ - 0, /* U+0108aa: */ - 0, /* U+0108ab: */ - 0, /* U+0108ac: */ - 0, /* U+0108ad: */ - 0, /* U+0108ae: */ - 0, /* U+0108af: */ - 0, /* U+0108b0: */ - 0, /* U+0108b1: */ - 0, /* U+0108b2: */ - 0, /* U+0108b3: */ - 0, /* U+0108b4: */ - 0, /* U+0108b5: */ - 0, /* U+0108b6: */ - 0, /* U+0108b7: */ - 0, /* U+0108b8: */ - 0, /* U+0108b9: */ - 0, /* U+0108ba: */ - 0, /* U+0108bb: */ - 0, /* U+0108bc: */ - 0, /* U+0108bd: */ - 0, /* U+0108be: */ - 0, /* U+0108bf: */ - 0, /* U+0108c0: */ - 0, /* U+0108c1: */ - 0, /* U+0108c2: */ - 0, /* U+0108c3: */ - 0, /* U+0108c4: */ - 0, /* U+0108c5: */ - 0, /* U+0108c6: */ - 0, /* U+0108c7: */ - 0, /* U+0108c8: */ - 0, /* U+0108c9: */ - 0, /* U+0108ca: */ - 0, /* U+0108cb: */ - 0, /* U+0108cc: */ - 0, /* U+0108cd: */ - 0, /* U+0108ce: */ - 0, /* U+0108cf: */ - 0, /* U+0108d0: */ - 0, /* U+0108d1: */ - 0, /* U+0108d2: */ - 0, /* U+0108d3: */ - 0, /* U+0108d4: */ - 0, /* U+0108d5: */ - 0, /* U+0108d6: */ - 0, /* U+0108d7: */ - 0, /* U+0108d8: */ - 0, /* U+0108d9: */ - 0, /* U+0108da: */ - 0, /* U+0108db: */ - 0, /* U+0108dc: */ - 0, /* U+0108dd: */ - 0, /* U+0108de: */ - 0, /* U+0108df: */ - 0, /* U+0108e0: */ - 0, /* U+0108e1: */ - 0, /* U+0108e2: */ - 0, /* U+0108e3: */ - 0, /* U+0108e4: */ - 0, /* U+0108e5: */ - 0, /* U+0108e6: */ - 0, /* U+0108e7: */ - 0, /* U+0108e8: */ - 0, /* U+0108e9: */ - 0, /* U+0108ea: */ - 0, /* U+0108eb: */ - 0, /* U+0108ec: */ - 0, /* U+0108ed: */ - 0, /* U+0108ee: */ - 0, /* U+0108ef: */ - 0, /* U+0108f0: */ - 0, /* U+0108f1: */ - 0, /* U+0108f2: */ - 0, /* U+0108f3: */ - 0, /* U+0108f4: */ - 0, /* U+0108f5: */ - 0, /* U+0108f6: */ - 0, /* U+0108f7: */ - 0, /* U+0108f8: */ - 0, /* U+0108f9: */ - 0, /* U+0108fa: */ - 0, /* U+0108fb: */ - 0, /* U+0108fc: */ - 0, /* U+0108fd: */ - 0, /* U+0108fe: */ - 0, /* U+0108ff: */ - 0, /* U+010900: */ - 0, /* U+010901: */ - 0, /* U+010902: */ - 0, /* U+010903: */ - 0, /* U+010904: */ - 0, /* U+010905: */ - 0, /* U+010906: */ - 0, /* U+010907: */ - 0, /* U+010908: */ - 0, /* U+010909: */ - 0, /* U+01090a: */ - 0, /* U+01090b: */ - 0, /* U+01090c: */ - 0, /* U+01090d: */ - 0, /* U+01090e: */ - 0, /* U+01090f: */ - 0, /* U+010910: */ - 0, /* U+010911: */ - 0, /* U+010912: */ - 0, /* U+010913: */ - 0, /* U+010914: */ - 0, /* U+010915: */ - 0, /* U+010916: */ - 0, /* U+010917: */ - 0, /* U+010918: */ - 0, /* U+010919: */ - 0, /* U+01091a: */ - 0, /* U+01091b: */ - 0, /* U+01091c: */ - 0, /* U+01091d: */ - 0, /* U+01091e: */ - 0, /* U+01091f: */ - 0, /* U+010920: */ - 0, /* U+010921: */ - 0, /* U+010922: */ - 0, /* U+010923: */ - 0, /* U+010924: */ - 0, /* U+010925: */ - 0, /* U+010926: */ - 0, /* U+010927: */ - 0, /* U+010928: */ - 0, /* U+010929: */ - 0, /* U+01092a: */ - 0, /* U+01092b: */ - 0, /* U+01092c: */ - 0, /* U+01092d: */ - 0, /* U+01092e: */ - 0, /* U+01092f: */ - 0, /* U+010930: */ - 0, /* U+010931: */ - 0, /* U+010932: */ - 0, /* U+010933: */ - 0, /* U+010934: */ - 0, /* U+010935: */ - 0, /* U+010936: */ - 0, /* U+010937: */ - 0, /* U+010938: */ - 0, /* U+010939: */ - 0, /* U+01093a: */ - 0, /* U+01093b: */ - 0, /* U+01093c: */ - 0, /* U+01093d: */ - 0, /* U+01093e: */ - 0, /* U+01093f: */ - 0, /* U+010940: */ - 0, /* U+010941: */ - 0, /* U+010942: */ - 0, /* U+010943: */ - 0, /* U+010944: */ - 0, /* U+010945: */ - 0, /* U+010946: */ - 0, /* U+010947: */ - 0, /* U+010948: */ - 0, /* U+010949: */ - 0, /* U+01094a: */ - 0, /* U+01094b: */ - 0, /* U+01094c: */ - 0, /* U+01094d: */ - 0, /* U+01094e: */ - 0, /* U+01094f: */ - 0, /* U+010950: */ - 0, /* U+010951: */ - 0, /* U+010952: */ - 0, /* U+010953: */ - 0, /* U+010954: */ - 0, /* U+010955: */ - 0, /* U+010956: */ - 0, /* U+010957: */ - 0, /* U+010958: */ - 0, /* U+010959: */ - 0, /* U+01095a: */ - 0, /* U+01095b: */ - 0, /* U+01095c: */ - 0, /* U+01095d: */ - 0, /* U+01095e: */ - 0, /* U+01095f: */ - 0, /* U+010960: */ - 0, /* U+010961: */ - 0, /* U+010962: */ - 0, /* U+010963: */ - 0, /* U+010964: */ - 0, /* U+010965: */ - 0, /* U+010966: */ - 0, /* U+010967: */ - 0, /* U+010968: */ - 0, /* U+010969: */ - 0, /* U+01096a: */ - 0, /* U+01096b: */ - 0, /* U+01096c: */ - 0, /* U+01096d: */ - 0, /* U+01096e: */ - 0, /* U+01096f: */ - 0, /* U+010970: */ - 0, /* U+010971: */ - 0, /* U+010972: */ - 0, /* U+010973: */ - 0, /* U+010974: */ - 0, /* U+010975: */ - 0, /* U+010976: */ - 0, /* U+010977: */ - 0, /* U+010978: */ - 0, /* U+010979: */ - 0, /* U+01097a: */ - 0, /* U+01097b: */ - 0, /* U+01097c: */ - 0, /* U+01097d: */ - 0, /* U+01097e: */ - 0, /* U+01097f: */ - 0, /* U+010980: */ - 0, /* U+010981: */ - 0, /* U+010982: */ - 0, /* U+010983: */ - 0, /* U+010984: */ - 0, /* U+010985: */ - 0, /* U+010986: */ - 0, /* U+010987: */ - 0, /* U+010988: */ - 0, /* U+010989: */ - 0, /* U+01098a: */ - 0, /* U+01098b: */ - 0, /* U+01098c: */ - 0, /* U+01098d: */ - 0, /* U+01098e: */ - 0, /* U+01098f: */ - 0, /* U+010990: */ - 0, /* U+010991: */ - 0, /* U+010992: */ - 0, /* U+010993: */ - 0, /* U+010994: */ - 0, /* U+010995: */ - 0, /* U+010996: */ - 0, /* U+010997: */ - 0, /* U+010998: */ - 0, /* U+010999: */ - 0, /* U+01099a: */ - 0, /* U+01099b: */ - 0, /* U+01099c: */ - 0, /* U+01099d: */ - 0, /* U+01099e: */ - 0, /* U+01099f: */ - 0, /* U+0109a0: */ - 0, /* U+0109a1: */ - 0, /* U+0109a2: */ - 0, /* U+0109a3: */ - 0, /* U+0109a4: */ - 0, /* U+0109a5: */ - 0, /* U+0109a6: */ - 0, /* U+0109a7: */ - 0, /* U+0109a8: */ - 0, /* U+0109a9: */ - 0, /* U+0109aa: */ - 0, /* U+0109ab: */ - 0, /* U+0109ac: */ - 0, /* U+0109ad: */ - 0, /* U+0109ae: */ - 0, /* U+0109af: */ - 0, /* U+0109b0: */ - 0, /* U+0109b1: */ - 0, /* U+0109b2: */ - 0, /* U+0109b3: */ - 0, /* U+0109b4: */ - 0, /* U+0109b5: */ - 0, /* U+0109b6: */ - 0, /* U+0109b7: */ - 0, /* U+0109b8: */ - 0, /* U+0109b9: */ - 0, /* U+0109ba: */ - 0, /* U+0109bb: */ - 0, /* U+0109bc: */ - 0, /* U+0109bd: */ - 0, /* U+0109be: */ - 0, /* U+0109bf: */ - 0, /* U+0109c0: */ - 0, /* U+0109c1: */ - 0, /* U+0109c2: */ - 0, /* U+0109c3: */ - 0, /* U+0109c4: */ - 0, /* U+0109c5: */ - 0, /* U+0109c6: */ - 0, /* U+0109c7: */ - 0, /* U+0109c8: */ - 0, /* U+0109c9: */ - 0, /* U+0109ca: */ - 0, /* U+0109cb: */ - 0, /* U+0109cc: */ - 0, /* U+0109cd: */ - 0, /* U+0109ce: */ - 0, /* U+0109cf: */ - 0, /* U+0109d0: */ - 0, /* U+0109d1: */ - 0, /* U+0109d2: */ - 0, /* U+0109d3: */ - 0, /* U+0109d4: */ - 0, /* U+0109d5: */ - 0, /* U+0109d6: */ - 0, /* U+0109d7: */ - 0, /* U+0109d8: */ - 0, /* U+0109d9: */ - 0, /* U+0109da: */ - 0, /* U+0109db: */ - 0, /* U+0109dc: */ - 0, /* U+0109dd: */ - 0, /* U+0109de: */ - 0, /* U+0109df: */ - 0, /* U+0109e0: */ - 0, /* U+0109e1: */ - 0, /* U+0109e2: */ - 0, /* U+0109e3: */ - 0, /* U+0109e4: */ - 0, /* U+0109e5: */ - 0, /* U+0109e6: */ - 0, /* U+0109e7: */ - 0, /* U+0109e8: */ - 0, /* U+0109e9: */ - 0, /* U+0109ea: */ - 0, /* U+0109eb: */ - 0, /* U+0109ec: */ - 0, /* U+0109ed: */ - 0, /* U+0109ee: */ - 0, /* U+0109ef: */ - 0, /* U+0109f0: */ - 0, /* U+0109f1: */ - 0, /* U+0109f2: */ - 0, /* U+0109f3: */ - 0, /* U+0109f4: */ - 0, /* U+0109f5: */ - 0, /* U+0109f6: */ - 0, /* U+0109f7: */ - 0, /* U+0109f8: */ - 0, /* U+0109f9: */ - 0, /* U+0109fa: */ - 0, /* U+0109fb: */ - 0, /* U+0109fc: */ - 0, /* U+0109fd: */ - 0, /* U+0109fe: */ - 0, /* U+0109ff: */ - RTUNI_ALPHA, /* U+010a00: KHAROSHTHI LETTER A*/ - RTUNI_ALPHA, /* U+010a01: KHAROSHTHI VOWEL SIGN I*/ - RTUNI_ALPHA, /* U+010a02: KHAROSHTHI VOWEL SIGN U*/ - RTUNI_ALPHA, /* U+010a03: KHAROSHTHI VOWEL SIGN VOCALIC R*/ - 0, /* U+010a04: */ - RTUNI_ALPHA, /* U+010a05: KHAROSHTHI VOWEL SIGN E*/ - RTUNI_ALPHA, /* U+010a06: KHAROSHTHI VOWEL SIGN O*/ - 0, /* U+010a07: */ - 0, /* U+010a08: */ - 0, /* U+010a09: */ - 0, /* U+010a0a: */ - 0, /* U+010a0b: */ - RTUNI_ALPHA, /* U+010a0c: KHAROSHTHI VOWEL LENGTH MARK*/ - RTUNI_ALPHA, /* U+010a0d: KHAROSHTHI SIGN DOUBLE RING BELOW*/ - RTUNI_ALPHA, /* U+010a0e: KHAROSHTHI SIGN ANUSVARA*/ - RTUNI_ALPHA, /* U+010a0f: KHAROSHTHI SIGN VISARGA*/ - RTUNI_ALPHA, /* U+010a10: KHAROSHTHI LETTER KA*/ - RTUNI_ALPHA, /* U+010a11: KHAROSHTHI LETTER KHA*/ - RTUNI_ALPHA, /* U+010a12: KHAROSHTHI LETTER GA*/ - RTUNI_ALPHA, /* U+010a13: KHAROSHTHI LETTER GHA*/ - 0, /* U+010a14: */ - RTUNI_ALPHA, /* U+010a15: KHAROSHTHI LETTER CA*/ - RTUNI_ALPHA, /* U+010a16: KHAROSHTHI LETTER CHA*/ - RTUNI_ALPHA, /* U+010a17: KHAROSHTHI LETTER JA*/ - 0, /* U+010a18: */ - RTUNI_ALPHA, /* U+010a19: KHAROSHTHI LETTER NYA*/ - RTUNI_ALPHA, /* U+010a1a: KHAROSHTHI LETTER TTA*/ - RTUNI_ALPHA, /* U+010a1b: KHAROSHTHI LETTER TTHA*/ - RTUNI_ALPHA, /* U+010a1c: KHAROSHTHI LETTER DDA*/ - RTUNI_ALPHA, /* U+010a1d: KHAROSHTHI LETTER DDHA*/ - RTUNI_ALPHA, /* U+010a1e: KHAROSHTHI LETTER NNA*/ - RTUNI_ALPHA, /* U+010a1f: KHAROSHTHI LETTER TA*/ - RTUNI_ALPHA, /* U+010a20: KHAROSHTHI LETTER THA*/ - RTUNI_ALPHA, /* U+010a21: KHAROSHTHI LETTER DA*/ - RTUNI_ALPHA, /* U+010a22: KHAROSHTHI LETTER DHA*/ - RTUNI_ALPHA, /* U+010a23: KHAROSHTHI LETTER NA*/ - RTUNI_ALPHA, /* U+010a24: KHAROSHTHI LETTER PA*/ - RTUNI_ALPHA, /* U+010a25: KHAROSHTHI LETTER PHA*/ - RTUNI_ALPHA, /* U+010a26: KHAROSHTHI LETTER BA*/ - RTUNI_ALPHA, /* U+010a27: KHAROSHTHI LETTER BHA*/ - RTUNI_ALPHA, /* U+010a28: KHAROSHTHI LETTER MA*/ - RTUNI_ALPHA, /* U+010a29: KHAROSHTHI LETTER YA*/ - RTUNI_ALPHA, /* U+010a2a: KHAROSHTHI LETTER RA*/ - RTUNI_ALPHA, /* U+010a2b: KHAROSHTHI LETTER LA*/ - RTUNI_ALPHA, /* U+010a2c: KHAROSHTHI LETTER VA*/ - RTUNI_ALPHA, /* U+010a2d: KHAROSHTHI LETTER SHA*/ - RTUNI_ALPHA, /* U+010a2e: KHAROSHTHI LETTER SSA*/ - RTUNI_ALPHA, /* U+010a2f: KHAROSHTHI LETTER SA*/ - RTUNI_ALPHA, /* U+010a30: KHAROSHTHI LETTER ZA*/ - RTUNI_ALPHA, /* U+010a31: KHAROSHTHI LETTER HA*/ - RTUNI_ALPHA, /* U+010a32: KHAROSHTHI LETTER KKA*/ - RTUNI_ALPHA, /* U+010a33: KHAROSHTHI LETTER TTTHA*/ -}; - -static const uint8_t g_afRTUniFlags0x01d400[] = -{ - RTUNI_ALPHA | RTUNI_UPPER, /* U+01d400: MATHEMATICAL BOLD CAPITAL A*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+01d401: MATHEMATICAL BOLD CAPITAL B*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+01d402: MATHEMATICAL BOLD CAPITAL C*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+01d403: MATHEMATICAL BOLD CAPITAL D*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+01d404: MATHEMATICAL BOLD CAPITAL E*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+01d405: MATHEMATICAL BOLD CAPITAL F*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+01d406: MATHEMATICAL BOLD CAPITAL G*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+01d407: MATHEMATICAL BOLD CAPITAL H*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+01d408: MATHEMATICAL BOLD CAPITAL I*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+01d409: MATHEMATICAL BOLD CAPITAL J*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+01d40a: MATHEMATICAL BOLD CAPITAL K*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+01d40b: MATHEMATICAL BOLD CAPITAL L*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+01d40c: MATHEMATICAL BOLD CAPITAL M*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+01d40d: MATHEMATICAL BOLD CAPITAL N*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+01d40e: MATHEMATICAL BOLD CAPITAL O*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+01d40f: MATHEMATICAL BOLD CAPITAL P*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+01d410: MATHEMATICAL BOLD CAPITAL Q*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+01d411: MATHEMATICAL BOLD CAPITAL R*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+01d412: MATHEMATICAL BOLD CAPITAL S*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+01d413: MATHEMATICAL BOLD CAPITAL T*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+01d414: MATHEMATICAL BOLD CAPITAL U*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+01d415: MATHEMATICAL BOLD CAPITAL V*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+01d416: MATHEMATICAL BOLD CAPITAL W*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+01d417: MATHEMATICAL BOLD CAPITAL X*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+01d418: MATHEMATICAL BOLD CAPITAL Y*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+01d419: MATHEMATICAL BOLD CAPITAL Z*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01d41a: MATHEMATICAL BOLD SMALL A*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01d41b: MATHEMATICAL BOLD SMALL B*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01d41c: MATHEMATICAL BOLD SMALL C*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01d41d: MATHEMATICAL BOLD SMALL D*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01d41e: MATHEMATICAL BOLD SMALL E*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01d41f: MATHEMATICAL BOLD SMALL F*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01d420: MATHEMATICAL BOLD SMALL G*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01d421: MATHEMATICAL BOLD SMALL H*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01d422: MATHEMATICAL BOLD SMALL I*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01d423: MATHEMATICAL BOLD SMALL J*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01d424: MATHEMATICAL BOLD SMALL K*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01d425: MATHEMATICAL BOLD SMALL L*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01d426: MATHEMATICAL BOLD SMALL M*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01d427: MATHEMATICAL BOLD SMALL N*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01d428: MATHEMATICAL BOLD SMALL O*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01d429: MATHEMATICAL BOLD SMALL P*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01d42a: MATHEMATICAL BOLD SMALL Q*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01d42b: MATHEMATICAL BOLD SMALL R*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01d42c: MATHEMATICAL BOLD SMALL S*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01d42d: MATHEMATICAL BOLD SMALL T*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01d42e: MATHEMATICAL BOLD SMALL U*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01d42f: MATHEMATICAL BOLD SMALL V*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01d430: MATHEMATICAL BOLD SMALL W*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01d431: MATHEMATICAL BOLD SMALL X*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01d432: MATHEMATICAL BOLD SMALL Y*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01d433: MATHEMATICAL BOLD SMALL Z*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+01d434: MATHEMATICAL ITALIC CAPITAL A*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+01d435: MATHEMATICAL ITALIC CAPITAL B*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+01d436: MATHEMATICAL ITALIC CAPITAL C*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+01d437: MATHEMATICAL ITALIC CAPITAL D*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+01d438: MATHEMATICAL ITALIC CAPITAL E*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+01d439: MATHEMATICAL ITALIC CAPITAL F*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+01d43a: MATHEMATICAL ITALIC CAPITAL G*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+01d43b: MATHEMATICAL ITALIC CAPITAL H*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+01d43c: MATHEMATICAL ITALIC CAPITAL I*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+01d43d: MATHEMATICAL ITALIC CAPITAL J*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+01d43e: MATHEMATICAL ITALIC CAPITAL K*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+01d43f: MATHEMATICAL ITALIC CAPITAL L*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+01d440: MATHEMATICAL ITALIC CAPITAL M*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+01d441: MATHEMATICAL ITALIC CAPITAL N*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+01d442: MATHEMATICAL ITALIC CAPITAL O*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+01d443: MATHEMATICAL ITALIC CAPITAL P*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+01d444: MATHEMATICAL ITALIC CAPITAL Q*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+01d445: MATHEMATICAL ITALIC CAPITAL R*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+01d446: MATHEMATICAL ITALIC CAPITAL S*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+01d447: MATHEMATICAL ITALIC CAPITAL T*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+01d448: MATHEMATICAL ITALIC CAPITAL U*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+01d449: MATHEMATICAL ITALIC CAPITAL V*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+01d44a: MATHEMATICAL ITALIC CAPITAL W*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+01d44b: MATHEMATICAL ITALIC CAPITAL X*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+01d44c: MATHEMATICAL ITALIC CAPITAL Y*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+01d44d: MATHEMATICAL ITALIC CAPITAL Z*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01d44e: MATHEMATICAL ITALIC SMALL A*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01d44f: MATHEMATICAL ITALIC SMALL B*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01d450: MATHEMATICAL ITALIC SMALL C*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01d451: MATHEMATICAL ITALIC SMALL D*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01d452: MATHEMATICAL ITALIC SMALL E*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01d453: MATHEMATICAL ITALIC SMALL F*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01d454: MATHEMATICAL ITALIC SMALL G*/ - 0, /* U+01d455: */ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01d456: MATHEMATICAL ITALIC SMALL I*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01d457: MATHEMATICAL ITALIC SMALL J*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01d458: MATHEMATICAL ITALIC SMALL K*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01d459: MATHEMATICAL ITALIC SMALL L*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01d45a: MATHEMATICAL ITALIC SMALL M*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01d45b: MATHEMATICAL ITALIC SMALL N*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01d45c: MATHEMATICAL ITALIC SMALL O*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01d45d: MATHEMATICAL ITALIC SMALL P*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01d45e: MATHEMATICAL ITALIC SMALL Q*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01d45f: MATHEMATICAL ITALIC SMALL R*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01d460: MATHEMATICAL ITALIC SMALL S*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01d461: MATHEMATICAL ITALIC SMALL T*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01d462: MATHEMATICAL ITALIC SMALL U*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01d463: MATHEMATICAL ITALIC SMALL V*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01d464: MATHEMATICAL ITALIC SMALL W*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01d465: MATHEMATICAL ITALIC SMALL X*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01d466: MATHEMATICAL ITALIC SMALL Y*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01d467: MATHEMATICAL ITALIC SMALL Z*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+01d468: MATHEMATICAL BOLD ITALIC CAPITAL A*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+01d469: MATHEMATICAL BOLD ITALIC CAPITAL B*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+01d46a: MATHEMATICAL BOLD ITALIC CAPITAL C*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+01d46b: MATHEMATICAL BOLD ITALIC CAPITAL D*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+01d46c: MATHEMATICAL BOLD ITALIC CAPITAL E*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+01d46d: MATHEMATICAL BOLD ITALIC CAPITAL F*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+01d46e: MATHEMATICAL BOLD ITALIC CAPITAL G*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+01d46f: MATHEMATICAL BOLD ITALIC CAPITAL H*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+01d470: MATHEMATICAL BOLD ITALIC CAPITAL I*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+01d471: MATHEMATICAL BOLD ITALIC CAPITAL J*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+01d472: MATHEMATICAL BOLD ITALIC CAPITAL K*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+01d473: MATHEMATICAL BOLD ITALIC CAPITAL L*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+01d474: MATHEMATICAL BOLD ITALIC CAPITAL M*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+01d475: MATHEMATICAL BOLD ITALIC CAPITAL N*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+01d476: MATHEMATICAL BOLD ITALIC CAPITAL O*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+01d477: MATHEMATICAL BOLD ITALIC CAPITAL P*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+01d478: MATHEMATICAL BOLD ITALIC CAPITAL Q*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+01d479: MATHEMATICAL BOLD ITALIC CAPITAL R*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+01d47a: MATHEMATICAL BOLD ITALIC CAPITAL S*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+01d47b: MATHEMATICAL BOLD ITALIC CAPITAL T*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+01d47c: MATHEMATICAL BOLD ITALIC CAPITAL U*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+01d47d: MATHEMATICAL BOLD ITALIC CAPITAL V*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+01d47e: MATHEMATICAL BOLD ITALIC CAPITAL W*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+01d47f: MATHEMATICAL BOLD ITALIC CAPITAL X*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+01d480: MATHEMATICAL BOLD ITALIC CAPITAL Y*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+01d481: MATHEMATICAL BOLD ITALIC CAPITAL Z*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01d482: MATHEMATICAL BOLD ITALIC SMALL A*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01d483: MATHEMATICAL BOLD ITALIC SMALL B*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01d484: MATHEMATICAL BOLD ITALIC SMALL C*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01d485: MATHEMATICAL BOLD ITALIC SMALL D*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01d486: MATHEMATICAL BOLD ITALIC SMALL E*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01d487: MATHEMATICAL BOLD ITALIC SMALL F*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01d488: MATHEMATICAL BOLD ITALIC SMALL G*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01d489: MATHEMATICAL BOLD ITALIC SMALL H*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01d48a: MATHEMATICAL BOLD ITALIC SMALL I*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01d48b: MATHEMATICAL BOLD ITALIC SMALL J*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01d48c: MATHEMATICAL BOLD ITALIC SMALL K*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01d48d: MATHEMATICAL BOLD ITALIC SMALL L*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01d48e: MATHEMATICAL BOLD ITALIC SMALL M*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01d48f: MATHEMATICAL BOLD ITALIC SMALL N*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01d490: MATHEMATICAL BOLD ITALIC SMALL O*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01d491: MATHEMATICAL BOLD ITALIC SMALL P*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01d492: MATHEMATICAL BOLD ITALIC SMALL Q*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01d493: MATHEMATICAL BOLD ITALIC SMALL R*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01d494: MATHEMATICAL BOLD ITALIC SMALL S*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01d495: MATHEMATICAL BOLD ITALIC SMALL T*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01d496: MATHEMATICAL BOLD ITALIC SMALL U*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01d497: MATHEMATICAL BOLD ITALIC SMALL V*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01d498: MATHEMATICAL BOLD ITALIC SMALL W*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01d499: MATHEMATICAL BOLD ITALIC SMALL X*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01d49a: MATHEMATICAL BOLD ITALIC SMALL Y*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01d49b: MATHEMATICAL BOLD ITALIC SMALL Z*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+01d49c: MATHEMATICAL SCRIPT CAPITAL A*/ - 0, /* U+01d49d: */ - RTUNI_ALPHA | RTUNI_UPPER, /* U+01d49e: MATHEMATICAL SCRIPT CAPITAL C*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+01d49f: MATHEMATICAL SCRIPT CAPITAL D*/ - 0, /* U+01d4a0: */ - 0, /* U+01d4a1: */ - RTUNI_ALPHA | RTUNI_UPPER, /* U+01d4a2: MATHEMATICAL SCRIPT CAPITAL G*/ - 0, /* U+01d4a3: */ - 0, /* U+01d4a4: */ - RTUNI_ALPHA | RTUNI_UPPER, /* U+01d4a5: MATHEMATICAL SCRIPT CAPITAL J*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+01d4a6: MATHEMATICAL SCRIPT CAPITAL K*/ - 0, /* U+01d4a7: */ - 0, /* U+01d4a8: */ - RTUNI_ALPHA | RTUNI_UPPER, /* U+01d4a9: MATHEMATICAL SCRIPT CAPITAL N*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+01d4aa: MATHEMATICAL SCRIPT CAPITAL O*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+01d4ab: MATHEMATICAL SCRIPT CAPITAL P*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+01d4ac: MATHEMATICAL SCRIPT CAPITAL Q*/ - 0, /* U+01d4ad: */ - RTUNI_ALPHA | RTUNI_UPPER, /* U+01d4ae: MATHEMATICAL SCRIPT CAPITAL S*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+01d4af: MATHEMATICAL SCRIPT CAPITAL T*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+01d4b0: MATHEMATICAL SCRIPT CAPITAL U*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+01d4b1: MATHEMATICAL SCRIPT CAPITAL V*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+01d4b2: MATHEMATICAL SCRIPT CAPITAL W*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+01d4b3: MATHEMATICAL SCRIPT CAPITAL X*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+01d4b4: MATHEMATICAL SCRIPT CAPITAL Y*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+01d4b5: MATHEMATICAL SCRIPT CAPITAL Z*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01d4b6: MATHEMATICAL SCRIPT SMALL A*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01d4b7: MATHEMATICAL SCRIPT SMALL B*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01d4b8: MATHEMATICAL SCRIPT SMALL C*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01d4b9: MATHEMATICAL SCRIPT SMALL D*/ - 0, /* U+01d4ba: */ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01d4bb: MATHEMATICAL SCRIPT SMALL F*/ - 0, /* U+01d4bc: */ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01d4bd: MATHEMATICAL SCRIPT SMALL H*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01d4be: MATHEMATICAL SCRIPT SMALL I*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01d4bf: MATHEMATICAL SCRIPT SMALL J*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01d4c0: MATHEMATICAL SCRIPT SMALL K*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01d4c1: MATHEMATICAL SCRIPT SMALL L*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01d4c2: MATHEMATICAL SCRIPT SMALL M*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01d4c3: MATHEMATICAL SCRIPT SMALL N*/ - 0, /* U+01d4c4: */ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01d4c5: MATHEMATICAL SCRIPT SMALL P*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01d4c6: MATHEMATICAL SCRIPT SMALL Q*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01d4c7: MATHEMATICAL SCRIPT SMALL R*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01d4c8: MATHEMATICAL SCRIPT SMALL S*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01d4c9: MATHEMATICAL SCRIPT SMALL T*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01d4ca: MATHEMATICAL SCRIPT SMALL U*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01d4cb: MATHEMATICAL SCRIPT SMALL V*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01d4cc: MATHEMATICAL SCRIPT SMALL W*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01d4cd: MATHEMATICAL SCRIPT SMALL X*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01d4ce: MATHEMATICAL SCRIPT SMALL Y*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01d4cf: MATHEMATICAL SCRIPT SMALL Z*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+01d4d0: MATHEMATICAL BOLD SCRIPT CAPITAL A*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+01d4d1: MATHEMATICAL BOLD SCRIPT CAPITAL B*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+01d4d2: MATHEMATICAL BOLD SCRIPT CAPITAL C*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+01d4d3: MATHEMATICAL BOLD SCRIPT CAPITAL D*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+01d4d4: MATHEMATICAL BOLD SCRIPT CAPITAL E*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+01d4d5: MATHEMATICAL BOLD SCRIPT CAPITAL F*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+01d4d6: MATHEMATICAL BOLD SCRIPT CAPITAL G*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+01d4d7: MATHEMATICAL BOLD SCRIPT CAPITAL H*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+01d4d8: MATHEMATICAL BOLD SCRIPT CAPITAL I*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+01d4d9: MATHEMATICAL BOLD SCRIPT CAPITAL J*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+01d4da: MATHEMATICAL BOLD SCRIPT CAPITAL K*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+01d4db: MATHEMATICAL BOLD SCRIPT CAPITAL L*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+01d4dc: MATHEMATICAL BOLD SCRIPT CAPITAL M*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+01d4dd: MATHEMATICAL BOLD SCRIPT CAPITAL N*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+01d4de: MATHEMATICAL BOLD SCRIPT CAPITAL O*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+01d4df: MATHEMATICAL BOLD SCRIPT CAPITAL P*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+01d4e0: MATHEMATICAL BOLD SCRIPT CAPITAL Q*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+01d4e1: MATHEMATICAL BOLD SCRIPT CAPITAL R*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+01d4e2: MATHEMATICAL BOLD SCRIPT CAPITAL S*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+01d4e3: MATHEMATICAL BOLD SCRIPT CAPITAL T*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+01d4e4: MATHEMATICAL BOLD SCRIPT CAPITAL U*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+01d4e5: MATHEMATICAL BOLD SCRIPT CAPITAL V*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+01d4e6: MATHEMATICAL BOLD SCRIPT CAPITAL W*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+01d4e7: MATHEMATICAL BOLD SCRIPT CAPITAL X*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+01d4e8: MATHEMATICAL BOLD SCRIPT CAPITAL Y*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+01d4e9: MATHEMATICAL BOLD SCRIPT CAPITAL Z*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01d4ea: MATHEMATICAL BOLD SCRIPT SMALL A*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01d4eb: MATHEMATICAL BOLD SCRIPT SMALL B*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01d4ec: MATHEMATICAL BOLD SCRIPT SMALL C*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01d4ed: MATHEMATICAL BOLD SCRIPT SMALL D*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01d4ee: MATHEMATICAL BOLD SCRIPT SMALL E*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01d4ef: MATHEMATICAL BOLD SCRIPT SMALL F*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01d4f0: MATHEMATICAL BOLD SCRIPT SMALL G*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01d4f1: MATHEMATICAL BOLD SCRIPT SMALL H*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01d4f2: MATHEMATICAL BOLD SCRIPT SMALL I*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01d4f3: MATHEMATICAL BOLD SCRIPT SMALL J*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01d4f4: MATHEMATICAL BOLD SCRIPT SMALL K*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01d4f5: MATHEMATICAL BOLD SCRIPT SMALL L*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01d4f6: MATHEMATICAL BOLD SCRIPT SMALL M*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01d4f7: MATHEMATICAL BOLD SCRIPT SMALL N*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01d4f8: MATHEMATICAL BOLD SCRIPT SMALL O*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01d4f9: MATHEMATICAL BOLD SCRIPT SMALL P*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01d4fa: MATHEMATICAL BOLD SCRIPT SMALL Q*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01d4fb: MATHEMATICAL BOLD SCRIPT SMALL R*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01d4fc: MATHEMATICAL BOLD SCRIPT SMALL S*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01d4fd: MATHEMATICAL BOLD SCRIPT SMALL T*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01d4fe: MATHEMATICAL BOLD SCRIPT SMALL U*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01d4ff: MATHEMATICAL BOLD SCRIPT SMALL V*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01d500: MATHEMATICAL BOLD SCRIPT SMALL W*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01d501: MATHEMATICAL BOLD SCRIPT SMALL X*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01d502: MATHEMATICAL BOLD SCRIPT SMALL Y*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01d503: MATHEMATICAL BOLD SCRIPT SMALL Z*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+01d504: MATHEMATICAL FRAKTUR CAPITAL A*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+01d505: MATHEMATICAL FRAKTUR CAPITAL B*/ - 0, /* U+01d506: */ - RTUNI_ALPHA | RTUNI_UPPER, /* U+01d507: MATHEMATICAL FRAKTUR CAPITAL D*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+01d508: MATHEMATICAL FRAKTUR CAPITAL E*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+01d509: MATHEMATICAL FRAKTUR CAPITAL F*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+01d50a: MATHEMATICAL FRAKTUR CAPITAL G*/ - 0, /* U+01d50b: */ - 0, /* U+01d50c: */ - RTUNI_ALPHA | RTUNI_UPPER, /* U+01d50d: MATHEMATICAL FRAKTUR CAPITAL J*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+01d50e: MATHEMATICAL FRAKTUR CAPITAL K*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+01d50f: MATHEMATICAL FRAKTUR CAPITAL L*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+01d510: MATHEMATICAL FRAKTUR CAPITAL M*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+01d511: MATHEMATICAL FRAKTUR CAPITAL N*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+01d512: MATHEMATICAL FRAKTUR CAPITAL O*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+01d513: MATHEMATICAL FRAKTUR CAPITAL P*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+01d514: MATHEMATICAL FRAKTUR CAPITAL Q*/ - 0, /* U+01d515: */ - RTUNI_ALPHA | RTUNI_UPPER, /* U+01d516: MATHEMATICAL FRAKTUR CAPITAL S*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+01d517: MATHEMATICAL FRAKTUR CAPITAL T*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+01d518: MATHEMATICAL FRAKTUR CAPITAL U*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+01d519: MATHEMATICAL FRAKTUR CAPITAL V*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+01d51a: MATHEMATICAL FRAKTUR CAPITAL W*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+01d51b: MATHEMATICAL FRAKTUR CAPITAL X*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+01d51c: MATHEMATICAL FRAKTUR CAPITAL Y*/ - 0, /* U+01d51d: */ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01d51e: MATHEMATICAL FRAKTUR SMALL A*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01d51f: MATHEMATICAL FRAKTUR SMALL B*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01d520: MATHEMATICAL FRAKTUR SMALL C*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01d521: MATHEMATICAL FRAKTUR SMALL D*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01d522: MATHEMATICAL FRAKTUR SMALL E*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01d523: MATHEMATICAL FRAKTUR SMALL F*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01d524: MATHEMATICAL FRAKTUR SMALL G*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01d525: MATHEMATICAL FRAKTUR SMALL H*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01d526: MATHEMATICAL FRAKTUR SMALL I*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01d527: MATHEMATICAL FRAKTUR SMALL J*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01d528: MATHEMATICAL FRAKTUR SMALL K*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01d529: MATHEMATICAL FRAKTUR SMALL L*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01d52a: MATHEMATICAL FRAKTUR SMALL M*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01d52b: MATHEMATICAL FRAKTUR SMALL N*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01d52c: MATHEMATICAL FRAKTUR SMALL O*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01d52d: MATHEMATICAL FRAKTUR SMALL P*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01d52e: MATHEMATICAL FRAKTUR SMALL Q*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01d52f: MATHEMATICAL FRAKTUR SMALL R*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01d530: MATHEMATICAL FRAKTUR SMALL S*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01d531: MATHEMATICAL FRAKTUR SMALL T*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01d532: MATHEMATICAL FRAKTUR SMALL U*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01d533: MATHEMATICAL FRAKTUR SMALL V*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01d534: MATHEMATICAL FRAKTUR SMALL W*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01d535: MATHEMATICAL FRAKTUR SMALL X*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01d536: MATHEMATICAL FRAKTUR SMALL Y*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01d537: MATHEMATICAL FRAKTUR SMALL Z*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+01d538: MATHEMATICAL DOUBLE-STRUCK CAPITAL A*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+01d539: MATHEMATICAL DOUBLE-STRUCK CAPITAL B*/ - 0, /* U+01d53a: */ - RTUNI_ALPHA | RTUNI_UPPER, /* U+01d53b: MATHEMATICAL DOUBLE-STRUCK CAPITAL D*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+01d53c: MATHEMATICAL DOUBLE-STRUCK CAPITAL E*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+01d53d: MATHEMATICAL DOUBLE-STRUCK CAPITAL F*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+01d53e: MATHEMATICAL DOUBLE-STRUCK CAPITAL G*/ - 0, /* U+01d53f: */ - RTUNI_ALPHA | RTUNI_UPPER, /* U+01d540: MATHEMATICAL DOUBLE-STRUCK CAPITAL I*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+01d541: MATHEMATICAL DOUBLE-STRUCK CAPITAL J*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+01d542: MATHEMATICAL DOUBLE-STRUCK CAPITAL K*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+01d543: MATHEMATICAL DOUBLE-STRUCK CAPITAL L*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+01d544: MATHEMATICAL DOUBLE-STRUCK CAPITAL M*/ - 0, /* U+01d545: */ - RTUNI_ALPHA | RTUNI_UPPER, /* U+01d546: MATHEMATICAL DOUBLE-STRUCK CAPITAL O*/ - 0, /* U+01d547: */ - 0, /* U+01d548: */ - 0, /* U+01d549: */ - RTUNI_ALPHA | RTUNI_UPPER, /* U+01d54a: MATHEMATICAL DOUBLE-STRUCK CAPITAL S*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+01d54b: MATHEMATICAL DOUBLE-STRUCK CAPITAL T*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+01d54c: MATHEMATICAL DOUBLE-STRUCK CAPITAL U*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+01d54d: MATHEMATICAL DOUBLE-STRUCK CAPITAL V*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+01d54e: MATHEMATICAL DOUBLE-STRUCK CAPITAL W*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+01d54f: MATHEMATICAL DOUBLE-STRUCK CAPITAL X*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+01d550: MATHEMATICAL DOUBLE-STRUCK CAPITAL Y*/ - 0, /* U+01d551: */ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01d552: MATHEMATICAL DOUBLE-STRUCK SMALL A*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01d553: MATHEMATICAL DOUBLE-STRUCK SMALL B*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01d554: MATHEMATICAL DOUBLE-STRUCK SMALL C*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01d555: MATHEMATICAL DOUBLE-STRUCK SMALL D*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01d556: MATHEMATICAL DOUBLE-STRUCK SMALL E*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01d557: MATHEMATICAL DOUBLE-STRUCK SMALL F*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01d558: MATHEMATICAL DOUBLE-STRUCK SMALL G*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01d559: MATHEMATICAL DOUBLE-STRUCK SMALL H*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01d55a: MATHEMATICAL DOUBLE-STRUCK SMALL I*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01d55b: MATHEMATICAL DOUBLE-STRUCK SMALL J*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01d55c: MATHEMATICAL DOUBLE-STRUCK SMALL K*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01d55d: MATHEMATICAL DOUBLE-STRUCK SMALL L*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01d55e: MATHEMATICAL DOUBLE-STRUCK SMALL M*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01d55f: MATHEMATICAL DOUBLE-STRUCK SMALL N*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01d560: MATHEMATICAL DOUBLE-STRUCK SMALL O*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01d561: MATHEMATICAL DOUBLE-STRUCK SMALL P*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01d562: MATHEMATICAL DOUBLE-STRUCK SMALL Q*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01d563: MATHEMATICAL DOUBLE-STRUCK SMALL R*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01d564: MATHEMATICAL DOUBLE-STRUCK SMALL S*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01d565: MATHEMATICAL DOUBLE-STRUCK SMALL T*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01d566: MATHEMATICAL DOUBLE-STRUCK SMALL U*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01d567: MATHEMATICAL DOUBLE-STRUCK SMALL V*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01d568: MATHEMATICAL DOUBLE-STRUCK SMALL W*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01d569: MATHEMATICAL DOUBLE-STRUCK SMALL X*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01d56a: MATHEMATICAL DOUBLE-STRUCK SMALL Y*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01d56b: MATHEMATICAL DOUBLE-STRUCK SMALL Z*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+01d56c: MATHEMATICAL BOLD FRAKTUR CAPITAL A*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+01d56d: MATHEMATICAL BOLD FRAKTUR CAPITAL B*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+01d56e: MATHEMATICAL BOLD FRAKTUR CAPITAL C*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+01d56f: MATHEMATICAL BOLD FRAKTUR CAPITAL D*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+01d570: MATHEMATICAL BOLD FRAKTUR CAPITAL E*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+01d571: MATHEMATICAL BOLD FRAKTUR CAPITAL F*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+01d572: MATHEMATICAL BOLD FRAKTUR CAPITAL G*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+01d573: MATHEMATICAL BOLD FRAKTUR CAPITAL H*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+01d574: MATHEMATICAL BOLD FRAKTUR CAPITAL I*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+01d575: MATHEMATICAL BOLD FRAKTUR CAPITAL J*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+01d576: MATHEMATICAL BOLD FRAKTUR CAPITAL K*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+01d577: MATHEMATICAL BOLD FRAKTUR CAPITAL L*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+01d578: MATHEMATICAL BOLD FRAKTUR CAPITAL M*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+01d579: MATHEMATICAL BOLD FRAKTUR CAPITAL N*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+01d57a: MATHEMATICAL BOLD FRAKTUR CAPITAL O*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+01d57b: MATHEMATICAL BOLD FRAKTUR CAPITAL P*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+01d57c: MATHEMATICAL BOLD FRAKTUR CAPITAL Q*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+01d57d: MATHEMATICAL BOLD FRAKTUR CAPITAL R*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+01d57e: MATHEMATICAL BOLD FRAKTUR CAPITAL S*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+01d57f: MATHEMATICAL BOLD FRAKTUR CAPITAL T*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+01d580: MATHEMATICAL BOLD FRAKTUR CAPITAL U*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+01d581: MATHEMATICAL BOLD FRAKTUR CAPITAL V*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+01d582: MATHEMATICAL BOLD FRAKTUR CAPITAL W*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+01d583: MATHEMATICAL BOLD FRAKTUR CAPITAL X*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+01d584: MATHEMATICAL BOLD FRAKTUR CAPITAL Y*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+01d585: MATHEMATICAL BOLD FRAKTUR CAPITAL Z*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01d586: MATHEMATICAL BOLD FRAKTUR SMALL A*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01d587: MATHEMATICAL BOLD FRAKTUR SMALL B*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01d588: MATHEMATICAL BOLD FRAKTUR SMALL C*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01d589: MATHEMATICAL BOLD FRAKTUR SMALL D*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01d58a: MATHEMATICAL BOLD FRAKTUR SMALL E*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01d58b: MATHEMATICAL BOLD FRAKTUR SMALL F*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01d58c: MATHEMATICAL BOLD FRAKTUR SMALL G*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01d58d: MATHEMATICAL BOLD FRAKTUR SMALL H*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01d58e: MATHEMATICAL BOLD FRAKTUR SMALL I*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01d58f: MATHEMATICAL BOLD FRAKTUR SMALL J*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01d590: MATHEMATICAL BOLD FRAKTUR SMALL K*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01d591: MATHEMATICAL BOLD FRAKTUR SMALL L*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01d592: MATHEMATICAL BOLD FRAKTUR SMALL M*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01d593: MATHEMATICAL BOLD FRAKTUR SMALL N*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01d594: MATHEMATICAL BOLD FRAKTUR SMALL O*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01d595: MATHEMATICAL BOLD FRAKTUR SMALL P*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01d596: MATHEMATICAL BOLD FRAKTUR SMALL Q*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01d597: MATHEMATICAL BOLD FRAKTUR SMALL R*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01d598: MATHEMATICAL BOLD FRAKTUR SMALL S*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01d599: MATHEMATICAL BOLD FRAKTUR SMALL T*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01d59a: MATHEMATICAL BOLD FRAKTUR SMALL U*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01d59b: MATHEMATICAL BOLD FRAKTUR SMALL V*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01d59c: MATHEMATICAL BOLD FRAKTUR SMALL W*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01d59d: MATHEMATICAL BOLD FRAKTUR SMALL X*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01d59e: MATHEMATICAL BOLD FRAKTUR SMALL Y*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01d59f: MATHEMATICAL BOLD FRAKTUR SMALL Z*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+01d5a0: MATHEMATICAL SANS-SERIF CAPITAL A*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+01d5a1: MATHEMATICAL SANS-SERIF CAPITAL B*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+01d5a2: MATHEMATICAL SANS-SERIF CAPITAL C*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+01d5a3: MATHEMATICAL SANS-SERIF CAPITAL D*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+01d5a4: MATHEMATICAL SANS-SERIF CAPITAL E*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+01d5a5: MATHEMATICAL SANS-SERIF CAPITAL F*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+01d5a6: MATHEMATICAL SANS-SERIF CAPITAL G*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+01d5a7: MATHEMATICAL SANS-SERIF CAPITAL H*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+01d5a8: MATHEMATICAL SANS-SERIF CAPITAL I*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+01d5a9: MATHEMATICAL SANS-SERIF CAPITAL J*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+01d5aa: MATHEMATICAL SANS-SERIF CAPITAL K*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+01d5ab: MATHEMATICAL SANS-SERIF CAPITAL L*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+01d5ac: MATHEMATICAL SANS-SERIF CAPITAL M*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+01d5ad: MATHEMATICAL SANS-SERIF CAPITAL N*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+01d5ae: MATHEMATICAL SANS-SERIF CAPITAL O*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+01d5af: MATHEMATICAL SANS-SERIF CAPITAL P*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+01d5b0: MATHEMATICAL SANS-SERIF CAPITAL Q*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+01d5b1: MATHEMATICAL SANS-SERIF CAPITAL R*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+01d5b2: MATHEMATICAL SANS-SERIF CAPITAL S*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+01d5b3: MATHEMATICAL SANS-SERIF CAPITAL T*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+01d5b4: MATHEMATICAL SANS-SERIF CAPITAL U*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+01d5b5: MATHEMATICAL SANS-SERIF CAPITAL V*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+01d5b6: MATHEMATICAL SANS-SERIF CAPITAL W*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+01d5b7: MATHEMATICAL SANS-SERIF CAPITAL X*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+01d5b8: MATHEMATICAL SANS-SERIF CAPITAL Y*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+01d5b9: MATHEMATICAL SANS-SERIF CAPITAL Z*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01d5ba: MATHEMATICAL SANS-SERIF SMALL A*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01d5bb: MATHEMATICAL SANS-SERIF SMALL B*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01d5bc: MATHEMATICAL SANS-SERIF SMALL C*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01d5bd: MATHEMATICAL SANS-SERIF SMALL D*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01d5be: MATHEMATICAL SANS-SERIF SMALL E*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01d5bf: MATHEMATICAL SANS-SERIF SMALL F*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01d5c0: MATHEMATICAL SANS-SERIF SMALL G*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01d5c1: MATHEMATICAL SANS-SERIF SMALL H*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01d5c2: MATHEMATICAL SANS-SERIF SMALL I*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01d5c3: MATHEMATICAL SANS-SERIF SMALL J*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01d5c4: MATHEMATICAL SANS-SERIF SMALL K*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01d5c5: MATHEMATICAL SANS-SERIF SMALL L*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01d5c6: MATHEMATICAL SANS-SERIF SMALL M*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01d5c7: MATHEMATICAL SANS-SERIF SMALL N*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01d5c8: MATHEMATICAL SANS-SERIF SMALL O*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01d5c9: MATHEMATICAL SANS-SERIF SMALL P*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01d5ca: MATHEMATICAL SANS-SERIF SMALL Q*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01d5cb: MATHEMATICAL SANS-SERIF SMALL R*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01d5cc: MATHEMATICAL SANS-SERIF SMALL S*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01d5cd: MATHEMATICAL SANS-SERIF SMALL T*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01d5ce: MATHEMATICAL SANS-SERIF SMALL U*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01d5cf: MATHEMATICAL SANS-SERIF SMALL V*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01d5d0: MATHEMATICAL SANS-SERIF SMALL W*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01d5d1: MATHEMATICAL SANS-SERIF SMALL X*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01d5d2: MATHEMATICAL SANS-SERIF SMALL Y*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01d5d3: MATHEMATICAL SANS-SERIF SMALL Z*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+01d5d4: MATHEMATICAL SANS-SERIF BOLD CAPITAL A*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+01d5d5: MATHEMATICAL SANS-SERIF BOLD CAPITAL B*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+01d5d6: MATHEMATICAL SANS-SERIF BOLD CAPITAL C*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+01d5d7: MATHEMATICAL SANS-SERIF BOLD CAPITAL D*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+01d5d8: MATHEMATICAL SANS-SERIF BOLD CAPITAL E*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+01d5d9: MATHEMATICAL SANS-SERIF BOLD CAPITAL F*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+01d5da: MATHEMATICAL SANS-SERIF BOLD CAPITAL G*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+01d5db: MATHEMATICAL SANS-SERIF BOLD CAPITAL H*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+01d5dc: MATHEMATICAL SANS-SERIF BOLD CAPITAL I*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+01d5dd: MATHEMATICAL SANS-SERIF BOLD CAPITAL J*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+01d5de: MATHEMATICAL SANS-SERIF BOLD CAPITAL K*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+01d5df: MATHEMATICAL SANS-SERIF BOLD CAPITAL L*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+01d5e0: MATHEMATICAL SANS-SERIF BOLD CAPITAL M*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+01d5e1: MATHEMATICAL SANS-SERIF BOLD CAPITAL N*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+01d5e2: MATHEMATICAL SANS-SERIF BOLD CAPITAL O*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+01d5e3: MATHEMATICAL SANS-SERIF BOLD CAPITAL P*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+01d5e4: MATHEMATICAL SANS-SERIF BOLD CAPITAL Q*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+01d5e5: MATHEMATICAL SANS-SERIF BOLD CAPITAL R*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+01d5e6: MATHEMATICAL SANS-SERIF BOLD CAPITAL S*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+01d5e7: MATHEMATICAL SANS-SERIF BOLD CAPITAL T*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+01d5e8: MATHEMATICAL SANS-SERIF BOLD CAPITAL U*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+01d5e9: MATHEMATICAL SANS-SERIF BOLD CAPITAL V*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+01d5ea: MATHEMATICAL SANS-SERIF BOLD CAPITAL W*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+01d5eb: MATHEMATICAL SANS-SERIF BOLD CAPITAL X*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+01d5ec: MATHEMATICAL SANS-SERIF BOLD CAPITAL Y*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+01d5ed: MATHEMATICAL SANS-SERIF BOLD CAPITAL Z*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01d5ee: MATHEMATICAL SANS-SERIF BOLD SMALL A*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01d5ef: MATHEMATICAL SANS-SERIF BOLD SMALL B*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01d5f0: MATHEMATICAL SANS-SERIF BOLD SMALL C*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01d5f1: MATHEMATICAL SANS-SERIF BOLD SMALL D*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01d5f2: MATHEMATICAL SANS-SERIF BOLD SMALL E*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01d5f3: MATHEMATICAL SANS-SERIF BOLD SMALL F*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01d5f4: MATHEMATICAL SANS-SERIF BOLD SMALL G*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01d5f5: MATHEMATICAL SANS-SERIF BOLD SMALL H*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01d5f6: MATHEMATICAL SANS-SERIF BOLD SMALL I*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01d5f7: MATHEMATICAL SANS-SERIF BOLD SMALL J*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01d5f8: MATHEMATICAL SANS-SERIF BOLD SMALL K*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01d5f9: MATHEMATICAL SANS-SERIF BOLD SMALL L*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01d5fa: MATHEMATICAL SANS-SERIF BOLD SMALL M*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01d5fb: MATHEMATICAL SANS-SERIF BOLD SMALL N*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01d5fc: MATHEMATICAL SANS-SERIF BOLD SMALL O*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01d5fd: MATHEMATICAL SANS-SERIF BOLD SMALL P*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01d5fe: MATHEMATICAL SANS-SERIF BOLD SMALL Q*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01d5ff: MATHEMATICAL SANS-SERIF BOLD SMALL R*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01d600: MATHEMATICAL SANS-SERIF BOLD SMALL S*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01d601: MATHEMATICAL SANS-SERIF BOLD SMALL T*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01d602: MATHEMATICAL SANS-SERIF BOLD SMALL U*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01d603: MATHEMATICAL SANS-SERIF BOLD SMALL V*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01d604: MATHEMATICAL SANS-SERIF BOLD SMALL W*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01d605: MATHEMATICAL SANS-SERIF BOLD SMALL X*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01d606: MATHEMATICAL SANS-SERIF BOLD SMALL Y*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01d607: MATHEMATICAL SANS-SERIF BOLD SMALL Z*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+01d608: MATHEMATICAL SANS-SERIF ITALIC CAPITAL A*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+01d609: MATHEMATICAL SANS-SERIF ITALIC CAPITAL B*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+01d60a: MATHEMATICAL SANS-SERIF ITALIC CAPITAL C*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+01d60b: MATHEMATICAL SANS-SERIF ITALIC CAPITAL D*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+01d60c: MATHEMATICAL SANS-SERIF ITALIC CAPITAL E*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+01d60d: MATHEMATICAL SANS-SERIF ITALIC CAPITAL F*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+01d60e: MATHEMATICAL SANS-SERIF ITALIC CAPITAL G*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+01d60f: MATHEMATICAL SANS-SERIF ITALIC CAPITAL H*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+01d610: MATHEMATICAL SANS-SERIF ITALIC CAPITAL I*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+01d611: MATHEMATICAL SANS-SERIF ITALIC CAPITAL J*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+01d612: MATHEMATICAL SANS-SERIF ITALIC CAPITAL K*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+01d613: MATHEMATICAL SANS-SERIF ITALIC CAPITAL L*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+01d614: MATHEMATICAL SANS-SERIF ITALIC CAPITAL M*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+01d615: MATHEMATICAL SANS-SERIF ITALIC CAPITAL N*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+01d616: MATHEMATICAL SANS-SERIF ITALIC CAPITAL O*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+01d617: MATHEMATICAL SANS-SERIF ITALIC CAPITAL P*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+01d618: MATHEMATICAL SANS-SERIF ITALIC CAPITAL Q*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+01d619: MATHEMATICAL SANS-SERIF ITALIC CAPITAL R*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+01d61a: MATHEMATICAL SANS-SERIF ITALIC CAPITAL S*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+01d61b: MATHEMATICAL SANS-SERIF ITALIC CAPITAL T*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+01d61c: MATHEMATICAL SANS-SERIF ITALIC CAPITAL U*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+01d61d: MATHEMATICAL SANS-SERIF ITALIC CAPITAL V*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+01d61e: MATHEMATICAL SANS-SERIF ITALIC CAPITAL W*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+01d61f: MATHEMATICAL SANS-SERIF ITALIC CAPITAL X*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+01d620: MATHEMATICAL SANS-SERIF ITALIC CAPITAL Y*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+01d621: MATHEMATICAL SANS-SERIF ITALIC CAPITAL Z*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01d622: MATHEMATICAL SANS-SERIF ITALIC SMALL A*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01d623: MATHEMATICAL SANS-SERIF ITALIC SMALL B*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01d624: MATHEMATICAL SANS-SERIF ITALIC SMALL C*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01d625: MATHEMATICAL SANS-SERIF ITALIC SMALL D*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01d626: MATHEMATICAL SANS-SERIF ITALIC SMALL E*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01d627: MATHEMATICAL SANS-SERIF ITALIC SMALL F*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01d628: MATHEMATICAL SANS-SERIF ITALIC SMALL G*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01d629: MATHEMATICAL SANS-SERIF ITALIC SMALL H*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01d62a: MATHEMATICAL SANS-SERIF ITALIC SMALL I*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01d62b: MATHEMATICAL SANS-SERIF ITALIC SMALL J*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01d62c: MATHEMATICAL SANS-SERIF ITALIC SMALL K*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01d62d: MATHEMATICAL SANS-SERIF ITALIC SMALL L*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01d62e: MATHEMATICAL SANS-SERIF ITALIC SMALL M*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01d62f: MATHEMATICAL SANS-SERIF ITALIC SMALL N*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01d630: MATHEMATICAL SANS-SERIF ITALIC SMALL O*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01d631: MATHEMATICAL SANS-SERIF ITALIC SMALL P*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01d632: MATHEMATICAL SANS-SERIF ITALIC SMALL Q*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01d633: MATHEMATICAL SANS-SERIF ITALIC SMALL R*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01d634: MATHEMATICAL SANS-SERIF ITALIC SMALL S*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01d635: MATHEMATICAL SANS-SERIF ITALIC SMALL T*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01d636: MATHEMATICAL SANS-SERIF ITALIC SMALL U*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01d637: MATHEMATICAL SANS-SERIF ITALIC SMALL V*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01d638: MATHEMATICAL SANS-SERIF ITALIC SMALL W*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01d639: MATHEMATICAL SANS-SERIF ITALIC SMALL X*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01d63a: MATHEMATICAL SANS-SERIF ITALIC SMALL Y*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01d63b: MATHEMATICAL SANS-SERIF ITALIC SMALL Z*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+01d63c: MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL A*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+01d63d: MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL B*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+01d63e: MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL C*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+01d63f: MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL D*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+01d640: MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL E*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+01d641: MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL F*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+01d642: MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL G*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+01d643: MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL H*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+01d644: MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL I*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+01d645: MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL J*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+01d646: MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL K*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+01d647: MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL L*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+01d648: MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL M*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+01d649: MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL N*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+01d64a: MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL O*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+01d64b: MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL P*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+01d64c: MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL Q*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+01d64d: MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL R*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+01d64e: MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL S*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+01d64f: MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL T*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+01d650: MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL U*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+01d651: MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL V*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+01d652: MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL W*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+01d653: MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL X*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+01d654: MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL Y*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+01d655: MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL Z*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01d656: MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL A*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01d657: MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL B*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01d658: MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL C*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01d659: MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL D*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01d65a: MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL E*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01d65b: MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL F*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01d65c: MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL G*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01d65d: MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL H*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01d65e: MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL I*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01d65f: MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL J*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01d660: MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL K*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01d661: MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL L*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01d662: MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL M*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01d663: MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL N*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01d664: MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL O*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01d665: MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL P*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01d666: MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL Q*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01d667: MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL R*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01d668: MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL S*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01d669: MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL T*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01d66a: MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL U*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01d66b: MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL V*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01d66c: MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL W*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01d66d: MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL X*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01d66e: MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL Y*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01d66f: MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL Z*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+01d670: MATHEMATICAL MONOSPACE CAPITAL A*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+01d671: MATHEMATICAL MONOSPACE CAPITAL B*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+01d672: MATHEMATICAL MONOSPACE CAPITAL C*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+01d673: MATHEMATICAL MONOSPACE CAPITAL D*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+01d674: MATHEMATICAL MONOSPACE CAPITAL E*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+01d675: MATHEMATICAL MONOSPACE CAPITAL F*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+01d676: MATHEMATICAL MONOSPACE CAPITAL G*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+01d677: MATHEMATICAL MONOSPACE CAPITAL H*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+01d678: MATHEMATICAL MONOSPACE CAPITAL I*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+01d679: MATHEMATICAL MONOSPACE CAPITAL J*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+01d67a: MATHEMATICAL MONOSPACE CAPITAL K*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+01d67b: MATHEMATICAL MONOSPACE CAPITAL L*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+01d67c: MATHEMATICAL MONOSPACE CAPITAL M*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+01d67d: MATHEMATICAL MONOSPACE CAPITAL N*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+01d67e: MATHEMATICAL MONOSPACE CAPITAL O*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+01d67f: MATHEMATICAL MONOSPACE CAPITAL P*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+01d680: MATHEMATICAL MONOSPACE CAPITAL Q*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+01d681: MATHEMATICAL MONOSPACE CAPITAL R*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+01d682: MATHEMATICAL MONOSPACE CAPITAL S*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+01d683: MATHEMATICAL MONOSPACE CAPITAL T*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+01d684: MATHEMATICAL MONOSPACE CAPITAL U*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+01d685: MATHEMATICAL MONOSPACE CAPITAL V*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+01d686: MATHEMATICAL MONOSPACE CAPITAL W*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+01d687: MATHEMATICAL MONOSPACE CAPITAL X*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+01d688: MATHEMATICAL MONOSPACE CAPITAL Y*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+01d689: MATHEMATICAL MONOSPACE CAPITAL Z*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01d68a: MATHEMATICAL MONOSPACE SMALL A*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01d68b: MATHEMATICAL MONOSPACE SMALL B*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01d68c: MATHEMATICAL MONOSPACE SMALL C*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01d68d: MATHEMATICAL MONOSPACE SMALL D*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01d68e: MATHEMATICAL MONOSPACE SMALL E*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01d68f: MATHEMATICAL MONOSPACE SMALL F*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01d690: MATHEMATICAL MONOSPACE SMALL G*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01d691: MATHEMATICAL MONOSPACE SMALL H*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01d692: MATHEMATICAL MONOSPACE SMALL I*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01d693: MATHEMATICAL MONOSPACE SMALL J*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01d694: MATHEMATICAL MONOSPACE SMALL K*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01d695: MATHEMATICAL MONOSPACE SMALL L*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01d696: MATHEMATICAL MONOSPACE SMALL M*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01d697: MATHEMATICAL MONOSPACE SMALL N*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01d698: MATHEMATICAL MONOSPACE SMALL O*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01d699: MATHEMATICAL MONOSPACE SMALL P*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01d69a: MATHEMATICAL MONOSPACE SMALL Q*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01d69b: MATHEMATICAL MONOSPACE SMALL R*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01d69c: MATHEMATICAL MONOSPACE SMALL S*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01d69d: MATHEMATICAL MONOSPACE SMALL T*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01d69e: MATHEMATICAL MONOSPACE SMALL U*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01d69f: MATHEMATICAL MONOSPACE SMALL V*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01d6a0: MATHEMATICAL MONOSPACE SMALL W*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01d6a1: MATHEMATICAL MONOSPACE SMALL X*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01d6a2: MATHEMATICAL MONOSPACE SMALL Y*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01d6a3: MATHEMATICAL MONOSPACE SMALL Z*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01d6a4: MATHEMATICAL ITALIC SMALL DOTLESS I*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01d6a5: MATHEMATICAL ITALIC SMALL DOTLESS J*/ - 0, /* U+01d6a6: */ - 0, /* U+01d6a7: */ - RTUNI_ALPHA | RTUNI_UPPER, /* U+01d6a8: MATHEMATICAL BOLD CAPITAL ALPHA*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+01d6a9: MATHEMATICAL BOLD CAPITAL BETA*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+01d6aa: MATHEMATICAL BOLD CAPITAL GAMMA*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+01d6ab: MATHEMATICAL BOLD CAPITAL DELTA*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+01d6ac: MATHEMATICAL BOLD CAPITAL EPSILON*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+01d6ad: MATHEMATICAL BOLD CAPITAL ZETA*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+01d6ae: MATHEMATICAL BOLD CAPITAL ETA*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+01d6af: MATHEMATICAL BOLD CAPITAL THETA*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+01d6b0: MATHEMATICAL BOLD CAPITAL IOTA*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+01d6b1: MATHEMATICAL BOLD CAPITAL KAPPA*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+01d6b2: MATHEMATICAL BOLD CAPITAL LAMDA*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+01d6b3: MATHEMATICAL BOLD CAPITAL MU*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+01d6b4: MATHEMATICAL BOLD CAPITAL NU*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+01d6b5: MATHEMATICAL BOLD CAPITAL XI*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+01d6b6: MATHEMATICAL BOLD CAPITAL OMICRON*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+01d6b7: MATHEMATICAL BOLD CAPITAL PI*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+01d6b8: MATHEMATICAL BOLD CAPITAL RHO*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+01d6b9: MATHEMATICAL BOLD CAPITAL THETA SYMBOL*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+01d6ba: MATHEMATICAL BOLD CAPITAL SIGMA*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+01d6bb: MATHEMATICAL BOLD CAPITAL TAU*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+01d6bc: MATHEMATICAL BOLD CAPITAL UPSILON*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+01d6bd: MATHEMATICAL BOLD CAPITAL PHI*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+01d6be: MATHEMATICAL BOLD CAPITAL CHI*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+01d6bf: MATHEMATICAL BOLD CAPITAL PSI*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+01d6c0: MATHEMATICAL BOLD CAPITAL OMEGA*/ - 0, /* U+01d6c1: MATHEMATICAL BOLD NABLA*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01d6c2: MATHEMATICAL BOLD SMALL ALPHA*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01d6c3: MATHEMATICAL BOLD SMALL BETA*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01d6c4: MATHEMATICAL BOLD SMALL GAMMA*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01d6c5: MATHEMATICAL BOLD SMALL DELTA*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01d6c6: MATHEMATICAL BOLD SMALL EPSILON*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01d6c7: MATHEMATICAL BOLD SMALL ZETA*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01d6c8: MATHEMATICAL BOLD SMALL ETA*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01d6c9: MATHEMATICAL BOLD SMALL THETA*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01d6ca: MATHEMATICAL BOLD SMALL IOTA*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01d6cb: MATHEMATICAL BOLD SMALL KAPPA*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01d6cc: MATHEMATICAL BOLD SMALL LAMDA*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01d6cd: MATHEMATICAL BOLD SMALL MU*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01d6ce: MATHEMATICAL BOLD SMALL NU*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01d6cf: MATHEMATICAL BOLD SMALL XI*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01d6d0: MATHEMATICAL BOLD SMALL OMICRON*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01d6d1: MATHEMATICAL BOLD SMALL PI*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01d6d2: MATHEMATICAL BOLD SMALL RHO*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01d6d3: MATHEMATICAL BOLD SMALL FINAL SIGMA*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01d6d4: MATHEMATICAL BOLD SMALL SIGMA*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01d6d5: MATHEMATICAL BOLD SMALL TAU*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01d6d6: MATHEMATICAL BOLD SMALL UPSILON*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01d6d7: MATHEMATICAL BOLD SMALL PHI*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01d6d8: MATHEMATICAL BOLD SMALL CHI*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01d6d9: MATHEMATICAL BOLD SMALL PSI*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01d6da: MATHEMATICAL BOLD SMALL OMEGA*/ - 0, /* U+01d6db: MATHEMATICAL BOLD PARTIAL DIFFERENTIAL*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01d6dc: MATHEMATICAL BOLD EPSILON SYMBOL*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01d6dd: MATHEMATICAL BOLD THETA SYMBOL*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01d6de: MATHEMATICAL BOLD KAPPA SYMBOL*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01d6df: MATHEMATICAL BOLD PHI SYMBOL*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01d6e0: MATHEMATICAL BOLD RHO SYMBOL*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01d6e1: MATHEMATICAL BOLD PI SYMBOL*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+01d6e2: MATHEMATICAL ITALIC CAPITAL ALPHA*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+01d6e3: MATHEMATICAL ITALIC CAPITAL BETA*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+01d6e4: MATHEMATICAL ITALIC CAPITAL GAMMA*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+01d6e5: MATHEMATICAL ITALIC CAPITAL DELTA*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+01d6e6: MATHEMATICAL ITALIC CAPITAL EPSILON*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+01d6e7: MATHEMATICAL ITALIC CAPITAL ZETA*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+01d6e8: MATHEMATICAL ITALIC CAPITAL ETA*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+01d6e9: MATHEMATICAL ITALIC CAPITAL THETA*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+01d6ea: MATHEMATICAL ITALIC CAPITAL IOTA*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+01d6eb: MATHEMATICAL ITALIC CAPITAL KAPPA*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+01d6ec: MATHEMATICAL ITALIC CAPITAL LAMDA*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+01d6ed: MATHEMATICAL ITALIC CAPITAL MU*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+01d6ee: MATHEMATICAL ITALIC CAPITAL NU*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+01d6ef: MATHEMATICAL ITALIC CAPITAL XI*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+01d6f0: MATHEMATICAL ITALIC CAPITAL OMICRON*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+01d6f1: MATHEMATICAL ITALIC CAPITAL PI*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+01d6f2: MATHEMATICAL ITALIC CAPITAL RHO*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+01d6f3: MATHEMATICAL ITALIC CAPITAL THETA SYMBOL*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+01d6f4: MATHEMATICAL ITALIC CAPITAL SIGMA*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+01d6f5: MATHEMATICAL ITALIC CAPITAL TAU*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+01d6f6: MATHEMATICAL ITALIC CAPITAL UPSILON*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+01d6f7: MATHEMATICAL ITALIC CAPITAL PHI*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+01d6f8: MATHEMATICAL ITALIC CAPITAL CHI*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+01d6f9: MATHEMATICAL ITALIC CAPITAL PSI*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+01d6fa: MATHEMATICAL ITALIC CAPITAL OMEGA*/ - 0, /* U+01d6fb: MATHEMATICAL ITALIC NABLA*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01d6fc: MATHEMATICAL ITALIC SMALL ALPHA*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01d6fd: MATHEMATICAL ITALIC SMALL BETA*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01d6fe: MATHEMATICAL ITALIC SMALL GAMMA*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01d6ff: MATHEMATICAL ITALIC SMALL DELTA*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01d700: MATHEMATICAL ITALIC SMALL EPSILON*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01d701: MATHEMATICAL ITALIC SMALL ZETA*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01d702: MATHEMATICAL ITALIC SMALL ETA*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01d703: MATHEMATICAL ITALIC SMALL THETA*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01d704: MATHEMATICAL ITALIC SMALL IOTA*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01d705: MATHEMATICAL ITALIC SMALL KAPPA*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01d706: MATHEMATICAL ITALIC SMALL LAMDA*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01d707: MATHEMATICAL ITALIC SMALL MU*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01d708: MATHEMATICAL ITALIC SMALL NU*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01d709: MATHEMATICAL ITALIC SMALL XI*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01d70a: MATHEMATICAL ITALIC SMALL OMICRON*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01d70b: MATHEMATICAL ITALIC SMALL PI*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01d70c: MATHEMATICAL ITALIC SMALL RHO*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01d70d: MATHEMATICAL ITALIC SMALL FINAL SIGMA*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01d70e: MATHEMATICAL ITALIC SMALL SIGMA*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01d70f: MATHEMATICAL ITALIC SMALL TAU*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01d710: MATHEMATICAL ITALIC SMALL UPSILON*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01d711: MATHEMATICAL ITALIC SMALL PHI*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01d712: MATHEMATICAL ITALIC SMALL CHI*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01d713: MATHEMATICAL ITALIC SMALL PSI*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01d714: MATHEMATICAL ITALIC SMALL OMEGA*/ - 0, /* U+01d715: MATHEMATICAL ITALIC PARTIAL DIFFERENTIAL*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01d716: MATHEMATICAL ITALIC EPSILON SYMBOL*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01d717: MATHEMATICAL ITALIC THETA SYMBOL*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01d718: MATHEMATICAL ITALIC KAPPA SYMBOL*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01d719: MATHEMATICAL ITALIC PHI SYMBOL*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01d71a: MATHEMATICAL ITALIC RHO SYMBOL*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01d71b: MATHEMATICAL ITALIC PI SYMBOL*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+01d71c: MATHEMATICAL BOLD ITALIC CAPITAL ALPHA*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+01d71d: MATHEMATICAL BOLD ITALIC CAPITAL BETA*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+01d71e: MATHEMATICAL BOLD ITALIC CAPITAL GAMMA*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+01d71f: MATHEMATICAL BOLD ITALIC CAPITAL DELTA*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+01d720: MATHEMATICAL BOLD ITALIC CAPITAL EPSILON*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+01d721: MATHEMATICAL BOLD ITALIC CAPITAL ZETA*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+01d722: MATHEMATICAL BOLD ITALIC CAPITAL ETA*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+01d723: MATHEMATICAL BOLD ITALIC CAPITAL THETA*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+01d724: MATHEMATICAL BOLD ITALIC CAPITAL IOTA*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+01d725: MATHEMATICAL BOLD ITALIC CAPITAL KAPPA*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+01d726: MATHEMATICAL BOLD ITALIC CAPITAL LAMDA*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+01d727: MATHEMATICAL BOLD ITALIC CAPITAL MU*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+01d728: MATHEMATICAL BOLD ITALIC CAPITAL NU*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+01d729: MATHEMATICAL BOLD ITALIC CAPITAL XI*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+01d72a: MATHEMATICAL BOLD ITALIC CAPITAL OMICRON*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+01d72b: MATHEMATICAL BOLD ITALIC CAPITAL PI*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+01d72c: MATHEMATICAL BOLD ITALIC CAPITAL RHO*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+01d72d: MATHEMATICAL BOLD ITALIC CAPITAL THETA SYMBOL*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+01d72e: MATHEMATICAL BOLD ITALIC CAPITAL SIGMA*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+01d72f: MATHEMATICAL BOLD ITALIC CAPITAL TAU*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+01d730: MATHEMATICAL BOLD ITALIC CAPITAL UPSILON*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+01d731: MATHEMATICAL BOLD ITALIC CAPITAL PHI*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+01d732: MATHEMATICAL BOLD ITALIC CAPITAL CHI*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+01d733: MATHEMATICAL BOLD ITALIC CAPITAL PSI*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+01d734: MATHEMATICAL BOLD ITALIC CAPITAL OMEGA*/ - 0, /* U+01d735: MATHEMATICAL BOLD ITALIC NABLA*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01d736: MATHEMATICAL BOLD ITALIC SMALL ALPHA*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01d737: MATHEMATICAL BOLD ITALIC SMALL BETA*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01d738: MATHEMATICAL BOLD ITALIC SMALL GAMMA*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01d739: MATHEMATICAL BOLD ITALIC SMALL DELTA*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01d73a: MATHEMATICAL BOLD ITALIC SMALL EPSILON*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01d73b: MATHEMATICAL BOLD ITALIC SMALL ZETA*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01d73c: MATHEMATICAL BOLD ITALIC SMALL ETA*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01d73d: MATHEMATICAL BOLD ITALIC SMALL THETA*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01d73e: MATHEMATICAL BOLD ITALIC SMALL IOTA*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01d73f: MATHEMATICAL BOLD ITALIC SMALL KAPPA*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01d740: MATHEMATICAL BOLD ITALIC SMALL LAMDA*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01d741: MATHEMATICAL BOLD ITALIC SMALL MU*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01d742: MATHEMATICAL BOLD ITALIC SMALL NU*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01d743: MATHEMATICAL BOLD ITALIC SMALL XI*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01d744: MATHEMATICAL BOLD ITALIC SMALL OMICRON*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01d745: MATHEMATICAL BOLD ITALIC SMALL PI*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01d746: MATHEMATICAL BOLD ITALIC SMALL RHO*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01d747: MATHEMATICAL BOLD ITALIC SMALL FINAL SIGMA*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01d748: MATHEMATICAL BOLD ITALIC SMALL SIGMA*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01d749: MATHEMATICAL BOLD ITALIC SMALL TAU*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01d74a: MATHEMATICAL BOLD ITALIC SMALL UPSILON*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01d74b: MATHEMATICAL BOLD ITALIC SMALL PHI*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01d74c: MATHEMATICAL BOLD ITALIC SMALL CHI*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01d74d: MATHEMATICAL BOLD ITALIC SMALL PSI*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01d74e: MATHEMATICAL BOLD ITALIC SMALL OMEGA*/ - 0, /* U+01d74f: MATHEMATICAL BOLD ITALIC PARTIAL DIFFERENTIAL*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01d750: MATHEMATICAL BOLD ITALIC EPSILON SYMBOL*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01d751: MATHEMATICAL BOLD ITALIC THETA SYMBOL*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01d752: MATHEMATICAL BOLD ITALIC KAPPA SYMBOL*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01d753: MATHEMATICAL BOLD ITALIC PHI SYMBOL*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01d754: MATHEMATICAL BOLD ITALIC RHO SYMBOL*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01d755: MATHEMATICAL BOLD ITALIC PI SYMBOL*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+01d756: MATHEMATICAL SANS-SERIF BOLD CAPITAL ALPHA*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+01d757: MATHEMATICAL SANS-SERIF BOLD CAPITAL BETA*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+01d758: MATHEMATICAL SANS-SERIF BOLD CAPITAL GAMMA*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+01d759: MATHEMATICAL SANS-SERIF BOLD CAPITAL DELTA*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+01d75a: MATHEMATICAL SANS-SERIF BOLD CAPITAL EPSILON*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+01d75b: MATHEMATICAL SANS-SERIF BOLD CAPITAL ZETA*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+01d75c: MATHEMATICAL SANS-SERIF BOLD CAPITAL ETA*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+01d75d: MATHEMATICAL SANS-SERIF BOLD CAPITAL THETA*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+01d75e: MATHEMATICAL SANS-SERIF BOLD CAPITAL IOTA*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+01d75f: MATHEMATICAL SANS-SERIF BOLD CAPITAL KAPPA*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+01d760: MATHEMATICAL SANS-SERIF BOLD CAPITAL LAMDA*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+01d761: MATHEMATICAL SANS-SERIF BOLD CAPITAL MU*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+01d762: MATHEMATICAL SANS-SERIF BOLD CAPITAL NU*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+01d763: MATHEMATICAL SANS-SERIF BOLD CAPITAL XI*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+01d764: MATHEMATICAL SANS-SERIF BOLD CAPITAL OMICRON*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+01d765: MATHEMATICAL SANS-SERIF BOLD CAPITAL PI*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+01d766: MATHEMATICAL SANS-SERIF BOLD CAPITAL RHO*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+01d767: MATHEMATICAL SANS-SERIF BOLD CAPITAL THETA SYMBOL*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+01d768: MATHEMATICAL SANS-SERIF BOLD CAPITAL SIGMA*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+01d769: MATHEMATICAL SANS-SERIF BOLD CAPITAL TAU*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+01d76a: MATHEMATICAL SANS-SERIF BOLD CAPITAL UPSILON*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+01d76b: MATHEMATICAL SANS-SERIF BOLD CAPITAL PHI*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+01d76c: MATHEMATICAL SANS-SERIF BOLD CAPITAL CHI*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+01d76d: MATHEMATICAL SANS-SERIF BOLD CAPITAL PSI*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+01d76e: MATHEMATICAL SANS-SERIF BOLD CAPITAL OMEGA*/ - 0, /* U+01d76f: MATHEMATICAL SANS-SERIF BOLD NABLA*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01d770: MATHEMATICAL SANS-SERIF BOLD SMALL ALPHA*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01d771: MATHEMATICAL SANS-SERIF BOLD SMALL BETA*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01d772: MATHEMATICAL SANS-SERIF BOLD SMALL GAMMA*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01d773: MATHEMATICAL SANS-SERIF BOLD SMALL DELTA*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01d774: MATHEMATICAL SANS-SERIF BOLD SMALL EPSILON*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01d775: MATHEMATICAL SANS-SERIF BOLD SMALL ZETA*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01d776: MATHEMATICAL SANS-SERIF BOLD SMALL ETA*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01d777: MATHEMATICAL SANS-SERIF BOLD SMALL THETA*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01d778: MATHEMATICAL SANS-SERIF BOLD SMALL IOTA*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01d779: MATHEMATICAL SANS-SERIF BOLD SMALL KAPPA*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01d77a: MATHEMATICAL SANS-SERIF BOLD SMALL LAMDA*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01d77b: MATHEMATICAL SANS-SERIF BOLD SMALL MU*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01d77c: MATHEMATICAL SANS-SERIF BOLD SMALL NU*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01d77d: MATHEMATICAL SANS-SERIF BOLD SMALL XI*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01d77e: MATHEMATICAL SANS-SERIF BOLD SMALL OMICRON*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01d77f: MATHEMATICAL SANS-SERIF BOLD SMALL PI*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01d780: MATHEMATICAL SANS-SERIF BOLD SMALL RHO*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01d781: MATHEMATICAL SANS-SERIF BOLD SMALL FINAL SIGMA*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01d782: MATHEMATICAL SANS-SERIF BOLD SMALL SIGMA*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01d783: MATHEMATICAL SANS-SERIF BOLD SMALL TAU*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01d784: MATHEMATICAL SANS-SERIF BOLD SMALL UPSILON*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01d785: MATHEMATICAL SANS-SERIF BOLD SMALL PHI*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01d786: MATHEMATICAL SANS-SERIF BOLD SMALL CHI*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01d787: MATHEMATICAL SANS-SERIF BOLD SMALL PSI*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01d788: MATHEMATICAL SANS-SERIF BOLD SMALL OMEGA*/ - 0, /* U+01d789: MATHEMATICAL SANS-SERIF BOLD PARTIAL DIFFERENTIAL*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01d78a: MATHEMATICAL SANS-SERIF BOLD EPSILON SYMBOL*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01d78b: MATHEMATICAL SANS-SERIF BOLD THETA SYMBOL*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01d78c: MATHEMATICAL SANS-SERIF BOLD KAPPA SYMBOL*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01d78d: MATHEMATICAL SANS-SERIF BOLD PHI SYMBOL*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01d78e: MATHEMATICAL SANS-SERIF BOLD RHO SYMBOL*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01d78f: MATHEMATICAL SANS-SERIF BOLD PI SYMBOL*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+01d790: MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL ALPHA*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+01d791: MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL BETA*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+01d792: MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL GAMMA*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+01d793: MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL DELTA*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+01d794: MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL EPSILON*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+01d795: MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL ZETA*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+01d796: MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL ETA*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+01d797: MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL THETA*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+01d798: MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL IOTA*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+01d799: MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL KAPPA*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+01d79a: MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL LAMDA*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+01d79b: MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL MU*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+01d79c: MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL NU*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+01d79d: MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL XI*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+01d79e: MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL OMICRON*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+01d79f: MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL PI*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+01d7a0: MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL RHO*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+01d7a1: MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL THETA SYMBOL*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+01d7a2: MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL SIGMA*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+01d7a3: MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL TAU*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+01d7a4: MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL UPSILON*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+01d7a5: MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL PHI*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+01d7a6: MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL CHI*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+01d7a7: MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL PSI*/ - RTUNI_ALPHA | RTUNI_UPPER, /* U+01d7a8: MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL OMEGA*/ - 0, /* U+01d7a9: MATHEMATICAL SANS-SERIF BOLD ITALIC NABLA*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01d7aa: MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL ALPHA*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01d7ab: MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL BETA*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01d7ac: MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL GAMMA*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01d7ad: MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL DELTA*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01d7ae: MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL EPSILON*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01d7af: MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL ZETA*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01d7b0: MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL ETA*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01d7b1: MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL THETA*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01d7b2: MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL IOTA*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01d7b3: MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL KAPPA*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01d7b4: MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL LAMDA*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01d7b5: MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL MU*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01d7b6: MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL NU*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01d7b7: MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL XI*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01d7b8: MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL OMICRON*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01d7b9: MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL PI*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01d7ba: MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL RHO*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01d7bb: MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL FINAL SIGMA*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01d7bc: MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL SIGMA*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01d7bd: MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL TAU*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01d7be: MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL UPSILON*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01d7bf: MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL PHI*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01d7c0: MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL CHI*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01d7c1: MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL PSI*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01d7c2: MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL OMEGA*/ - 0, /* U+01d7c3: MATHEMATICAL SANS-SERIF BOLD ITALIC PARTIAL DIFFERENTIAL*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01d7c4: MATHEMATICAL SANS-SERIF BOLD ITALIC EPSILON SYMBOL*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01d7c5: MATHEMATICAL SANS-SERIF BOLD ITALIC THETA SYMBOL*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01d7c6: MATHEMATICAL SANS-SERIF BOLD ITALIC KAPPA SYMBOL*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01d7c7: MATHEMATICAL SANS-SERIF BOLD ITALIC PHI SYMBOL*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01d7c8: MATHEMATICAL SANS-SERIF BOLD ITALIC RHO SYMBOL*/ - RTUNI_ALPHA | RTUNI_LOWER, /* U+01d7c9: MATHEMATICAL SANS-SERIF BOLD ITALIC PI SYMBOL*/ - 0, /* U+01d7ca: */ - 0, /* U+01d7cb: */ - 0, /* U+01d7cc: */ - 0, /* U+01d7cd: */ - RTUNI_DDIGIT, /* U+01d7ce: MATHEMATICAL BOLD DIGIT ZERO*/ - RTUNI_DDIGIT, /* U+01d7cf: MATHEMATICAL BOLD DIGIT ONE*/ - RTUNI_DDIGIT, /* U+01d7d0: MATHEMATICAL BOLD DIGIT TWO*/ - RTUNI_DDIGIT, /* U+01d7d1: MATHEMATICAL BOLD DIGIT THREE*/ - RTUNI_DDIGIT, /* U+01d7d2: MATHEMATICAL BOLD DIGIT FOUR*/ - RTUNI_DDIGIT, /* U+01d7d3: MATHEMATICAL BOLD DIGIT FIVE*/ - RTUNI_DDIGIT, /* U+01d7d4: MATHEMATICAL BOLD DIGIT SIX*/ - RTUNI_DDIGIT, /* U+01d7d5: MATHEMATICAL BOLD DIGIT SEVEN*/ - RTUNI_DDIGIT, /* U+01d7d6: MATHEMATICAL BOLD DIGIT EIGHT*/ - RTUNI_DDIGIT, /* U+01d7d7: MATHEMATICAL BOLD DIGIT NINE*/ - RTUNI_DDIGIT, /* U+01d7d8: MATHEMATICAL DOUBLE-STRUCK DIGIT ZERO*/ - RTUNI_DDIGIT, /* U+01d7d9: MATHEMATICAL DOUBLE-STRUCK DIGIT ONE*/ - RTUNI_DDIGIT, /* U+01d7da: MATHEMATICAL DOUBLE-STRUCK DIGIT TWO*/ - RTUNI_DDIGIT, /* U+01d7db: MATHEMATICAL DOUBLE-STRUCK DIGIT THREE*/ - RTUNI_DDIGIT, /* U+01d7dc: MATHEMATICAL DOUBLE-STRUCK DIGIT FOUR*/ - RTUNI_DDIGIT, /* U+01d7dd: MATHEMATICAL DOUBLE-STRUCK DIGIT FIVE*/ - RTUNI_DDIGIT, /* U+01d7de: MATHEMATICAL DOUBLE-STRUCK DIGIT SIX*/ - RTUNI_DDIGIT, /* U+01d7df: MATHEMATICAL DOUBLE-STRUCK DIGIT SEVEN*/ - RTUNI_DDIGIT, /* U+01d7e0: MATHEMATICAL DOUBLE-STRUCK DIGIT EIGHT*/ - RTUNI_DDIGIT, /* U+01d7e1: MATHEMATICAL DOUBLE-STRUCK DIGIT NINE*/ - RTUNI_DDIGIT, /* U+01d7e2: MATHEMATICAL SANS-SERIF DIGIT ZERO*/ - RTUNI_DDIGIT, /* U+01d7e3: MATHEMATICAL SANS-SERIF DIGIT ONE*/ - RTUNI_DDIGIT, /* U+01d7e4: MATHEMATICAL SANS-SERIF DIGIT TWO*/ - RTUNI_DDIGIT, /* U+01d7e5: MATHEMATICAL SANS-SERIF DIGIT THREE*/ - RTUNI_DDIGIT, /* U+01d7e6: MATHEMATICAL SANS-SERIF DIGIT FOUR*/ - RTUNI_DDIGIT, /* U+01d7e7: MATHEMATICAL SANS-SERIF DIGIT FIVE*/ - RTUNI_DDIGIT, /* U+01d7e8: MATHEMATICAL SANS-SERIF DIGIT SIX*/ - RTUNI_DDIGIT, /* U+01d7e9: MATHEMATICAL SANS-SERIF DIGIT SEVEN*/ - RTUNI_DDIGIT, /* U+01d7ea: MATHEMATICAL SANS-SERIF DIGIT EIGHT*/ - RTUNI_DDIGIT, /* U+01d7eb: MATHEMATICAL SANS-SERIF DIGIT NINE*/ - RTUNI_DDIGIT, /* U+01d7ec: MATHEMATICAL SANS-SERIF BOLD DIGIT ZERO*/ - RTUNI_DDIGIT, /* U+01d7ed: MATHEMATICAL SANS-SERIF BOLD DIGIT ONE*/ - RTUNI_DDIGIT, /* U+01d7ee: MATHEMATICAL SANS-SERIF BOLD DIGIT TWO*/ - RTUNI_DDIGIT, /* U+01d7ef: MATHEMATICAL SANS-SERIF BOLD DIGIT THREE*/ - RTUNI_DDIGIT, /* U+01d7f0: MATHEMATICAL SANS-SERIF BOLD DIGIT FOUR*/ - RTUNI_DDIGIT, /* U+01d7f1: MATHEMATICAL SANS-SERIF BOLD DIGIT FIVE*/ - RTUNI_DDIGIT, /* U+01d7f2: MATHEMATICAL SANS-SERIF BOLD DIGIT SIX*/ - RTUNI_DDIGIT, /* U+01d7f3: MATHEMATICAL SANS-SERIF BOLD DIGIT SEVEN*/ - RTUNI_DDIGIT, /* U+01d7f4: MATHEMATICAL SANS-SERIF BOLD DIGIT EIGHT*/ - RTUNI_DDIGIT, /* U+01d7f5: MATHEMATICAL SANS-SERIF BOLD DIGIT NINE*/ - RTUNI_DDIGIT, /* U+01d7f6: MATHEMATICAL MONOSPACE DIGIT ZERO*/ - RTUNI_DDIGIT, /* U+01d7f7: MATHEMATICAL MONOSPACE DIGIT ONE*/ - RTUNI_DDIGIT, /* U+01d7f8: MATHEMATICAL MONOSPACE DIGIT TWO*/ - RTUNI_DDIGIT, /* U+01d7f9: MATHEMATICAL MONOSPACE DIGIT THREE*/ - RTUNI_DDIGIT, /* U+01d7fa: MATHEMATICAL MONOSPACE DIGIT FOUR*/ - RTUNI_DDIGIT, /* U+01d7fb: MATHEMATICAL MONOSPACE DIGIT FIVE*/ - RTUNI_DDIGIT, /* U+01d7fc: MATHEMATICAL MONOSPACE DIGIT SIX*/ - RTUNI_DDIGIT, /* U+01d7fd: MATHEMATICAL MONOSPACE DIGIT SEVEN*/ - RTUNI_DDIGIT, /* U+01d7fe: MATHEMATICAL MONOSPACE DIGIT EIGHT*/ - RTUNI_DDIGIT, /* U+01d7ff: MATHEMATICAL MONOSPACE DIGIT NINE*/ -}; - -static const uint8_t g_afRTUniFlags0x020000[] = -{ - RTUNI_ALPHA, /* U+020000: */ -}; - -static const uint8_t g_afRTUniFlags0x02a6d6[] = -{ - RTUNI_ALPHA, /* U+02a6d6: */ -}; - -static const uint8_t g_afRTUniFlags0x02f800[] = -{ - RTUNI_ALPHA, /* U+02f800: CJK COMPATIBILITY IDEOGRAPH-2F800*/ - RTUNI_ALPHA, /* U+02f801: CJK COMPATIBILITY IDEOGRAPH-2F801*/ - RTUNI_ALPHA, /* U+02f802: CJK COMPATIBILITY IDEOGRAPH-2F802*/ - RTUNI_ALPHA, /* U+02f803: CJK COMPATIBILITY IDEOGRAPH-2F803*/ - RTUNI_ALPHA, /* U+02f804: CJK COMPATIBILITY IDEOGRAPH-2F804*/ - RTUNI_ALPHA, /* U+02f805: CJK COMPATIBILITY IDEOGRAPH-2F805*/ - RTUNI_ALPHA, /* U+02f806: CJK COMPATIBILITY IDEOGRAPH-2F806*/ - RTUNI_ALPHA, /* U+02f807: CJK COMPATIBILITY IDEOGRAPH-2F807*/ - RTUNI_ALPHA, /* U+02f808: CJK COMPATIBILITY IDEOGRAPH-2F808*/ - RTUNI_ALPHA, /* U+02f809: CJK COMPATIBILITY IDEOGRAPH-2F809*/ - RTUNI_ALPHA, /* U+02f80a: CJK COMPATIBILITY IDEOGRAPH-2F80A*/ - RTUNI_ALPHA, /* U+02f80b: CJK COMPATIBILITY IDEOGRAPH-2F80B*/ - RTUNI_ALPHA, /* U+02f80c: CJK COMPATIBILITY IDEOGRAPH-2F80C*/ - RTUNI_ALPHA, /* U+02f80d: CJK COMPATIBILITY IDEOGRAPH-2F80D*/ - RTUNI_ALPHA, /* U+02f80e: CJK COMPATIBILITY IDEOGRAPH-2F80E*/ - RTUNI_ALPHA, /* U+02f80f: CJK COMPATIBILITY IDEOGRAPH-2F80F*/ - RTUNI_ALPHA, /* U+02f810: CJK COMPATIBILITY IDEOGRAPH-2F810*/ - RTUNI_ALPHA, /* U+02f811: CJK COMPATIBILITY IDEOGRAPH-2F811*/ - RTUNI_ALPHA, /* U+02f812: CJK COMPATIBILITY IDEOGRAPH-2F812*/ - RTUNI_ALPHA, /* U+02f813: CJK COMPATIBILITY IDEOGRAPH-2F813*/ - RTUNI_ALPHA, /* U+02f814: CJK COMPATIBILITY IDEOGRAPH-2F814*/ - RTUNI_ALPHA, /* U+02f815: CJK COMPATIBILITY IDEOGRAPH-2F815*/ - RTUNI_ALPHA, /* U+02f816: CJK COMPATIBILITY IDEOGRAPH-2F816*/ - RTUNI_ALPHA, /* U+02f817: CJK COMPATIBILITY IDEOGRAPH-2F817*/ - RTUNI_ALPHA, /* U+02f818: CJK COMPATIBILITY IDEOGRAPH-2F818*/ - RTUNI_ALPHA, /* U+02f819: CJK COMPATIBILITY IDEOGRAPH-2F819*/ - RTUNI_ALPHA, /* U+02f81a: CJK COMPATIBILITY IDEOGRAPH-2F81A*/ - RTUNI_ALPHA, /* U+02f81b: CJK COMPATIBILITY IDEOGRAPH-2F81B*/ - RTUNI_ALPHA, /* U+02f81c: CJK COMPATIBILITY IDEOGRAPH-2F81C*/ - RTUNI_ALPHA, /* U+02f81d: CJK COMPATIBILITY IDEOGRAPH-2F81D*/ - RTUNI_ALPHA, /* U+02f81e: CJK COMPATIBILITY IDEOGRAPH-2F81E*/ - RTUNI_ALPHA, /* U+02f81f: CJK COMPATIBILITY IDEOGRAPH-2F81F*/ - RTUNI_ALPHA, /* U+02f820: CJK COMPATIBILITY IDEOGRAPH-2F820*/ - RTUNI_ALPHA, /* U+02f821: CJK COMPATIBILITY IDEOGRAPH-2F821*/ - RTUNI_ALPHA, /* U+02f822: CJK COMPATIBILITY IDEOGRAPH-2F822*/ - RTUNI_ALPHA, /* U+02f823: CJK COMPATIBILITY IDEOGRAPH-2F823*/ - RTUNI_ALPHA, /* U+02f824: CJK COMPATIBILITY IDEOGRAPH-2F824*/ - RTUNI_ALPHA, /* U+02f825: CJK COMPATIBILITY IDEOGRAPH-2F825*/ - RTUNI_ALPHA, /* U+02f826: CJK COMPATIBILITY IDEOGRAPH-2F826*/ - RTUNI_ALPHA, /* U+02f827: CJK COMPATIBILITY IDEOGRAPH-2F827*/ - RTUNI_ALPHA, /* U+02f828: CJK COMPATIBILITY IDEOGRAPH-2F828*/ - RTUNI_ALPHA, /* U+02f829: CJK COMPATIBILITY IDEOGRAPH-2F829*/ - RTUNI_ALPHA, /* U+02f82a: CJK COMPATIBILITY IDEOGRAPH-2F82A*/ - RTUNI_ALPHA, /* U+02f82b: CJK COMPATIBILITY IDEOGRAPH-2F82B*/ - RTUNI_ALPHA, /* U+02f82c: CJK COMPATIBILITY IDEOGRAPH-2F82C*/ - RTUNI_ALPHA, /* U+02f82d: CJK COMPATIBILITY IDEOGRAPH-2F82D*/ - RTUNI_ALPHA, /* U+02f82e: CJK COMPATIBILITY IDEOGRAPH-2F82E*/ - RTUNI_ALPHA, /* U+02f82f: CJK COMPATIBILITY IDEOGRAPH-2F82F*/ - RTUNI_ALPHA, /* U+02f830: CJK COMPATIBILITY IDEOGRAPH-2F830*/ - RTUNI_ALPHA, /* U+02f831: CJK COMPATIBILITY IDEOGRAPH-2F831*/ - RTUNI_ALPHA, /* U+02f832: CJK COMPATIBILITY IDEOGRAPH-2F832*/ - RTUNI_ALPHA, /* U+02f833: CJK COMPATIBILITY IDEOGRAPH-2F833*/ - RTUNI_ALPHA, /* U+02f834: CJK COMPATIBILITY IDEOGRAPH-2F834*/ - RTUNI_ALPHA, /* U+02f835: CJK COMPATIBILITY IDEOGRAPH-2F835*/ - RTUNI_ALPHA, /* U+02f836: CJK COMPATIBILITY IDEOGRAPH-2F836*/ - RTUNI_ALPHA, /* U+02f837: CJK COMPATIBILITY IDEOGRAPH-2F837*/ - RTUNI_ALPHA, /* U+02f838: CJK COMPATIBILITY IDEOGRAPH-2F838*/ - RTUNI_ALPHA, /* U+02f839: CJK COMPATIBILITY IDEOGRAPH-2F839*/ - RTUNI_ALPHA, /* U+02f83a: CJK COMPATIBILITY IDEOGRAPH-2F83A*/ - RTUNI_ALPHA, /* U+02f83b: CJK COMPATIBILITY IDEOGRAPH-2F83B*/ - RTUNI_ALPHA, /* U+02f83c: CJK COMPATIBILITY IDEOGRAPH-2F83C*/ - RTUNI_ALPHA, /* U+02f83d: CJK COMPATIBILITY IDEOGRAPH-2F83D*/ - RTUNI_ALPHA, /* U+02f83e: CJK COMPATIBILITY IDEOGRAPH-2F83E*/ - RTUNI_ALPHA, /* U+02f83f: CJK COMPATIBILITY IDEOGRAPH-2F83F*/ - RTUNI_ALPHA, /* U+02f840: CJK COMPATIBILITY IDEOGRAPH-2F840*/ - RTUNI_ALPHA, /* U+02f841: CJK COMPATIBILITY IDEOGRAPH-2F841*/ - RTUNI_ALPHA, /* U+02f842: CJK COMPATIBILITY IDEOGRAPH-2F842*/ - RTUNI_ALPHA, /* U+02f843: CJK COMPATIBILITY IDEOGRAPH-2F843*/ - RTUNI_ALPHA, /* U+02f844: CJK COMPATIBILITY IDEOGRAPH-2F844*/ - RTUNI_ALPHA, /* U+02f845: CJK COMPATIBILITY IDEOGRAPH-2F845*/ - RTUNI_ALPHA, /* U+02f846: CJK COMPATIBILITY IDEOGRAPH-2F846*/ - RTUNI_ALPHA, /* U+02f847: CJK COMPATIBILITY IDEOGRAPH-2F847*/ - RTUNI_ALPHA, /* U+02f848: CJK COMPATIBILITY IDEOGRAPH-2F848*/ - RTUNI_ALPHA, /* U+02f849: CJK COMPATIBILITY IDEOGRAPH-2F849*/ - RTUNI_ALPHA, /* U+02f84a: CJK COMPATIBILITY IDEOGRAPH-2F84A*/ - RTUNI_ALPHA, /* U+02f84b: CJK COMPATIBILITY IDEOGRAPH-2F84B*/ - RTUNI_ALPHA, /* U+02f84c: CJK COMPATIBILITY IDEOGRAPH-2F84C*/ - RTUNI_ALPHA, /* U+02f84d: CJK COMPATIBILITY IDEOGRAPH-2F84D*/ - RTUNI_ALPHA, /* U+02f84e: CJK COMPATIBILITY IDEOGRAPH-2F84E*/ - RTUNI_ALPHA, /* U+02f84f: CJK COMPATIBILITY IDEOGRAPH-2F84F*/ - RTUNI_ALPHA, /* U+02f850: CJK COMPATIBILITY IDEOGRAPH-2F850*/ - RTUNI_ALPHA, /* U+02f851: CJK COMPATIBILITY IDEOGRAPH-2F851*/ - RTUNI_ALPHA, /* U+02f852: CJK COMPATIBILITY IDEOGRAPH-2F852*/ - RTUNI_ALPHA, /* U+02f853: CJK COMPATIBILITY IDEOGRAPH-2F853*/ - RTUNI_ALPHA, /* U+02f854: CJK COMPATIBILITY IDEOGRAPH-2F854*/ - RTUNI_ALPHA, /* U+02f855: CJK COMPATIBILITY IDEOGRAPH-2F855*/ - RTUNI_ALPHA, /* U+02f856: CJK COMPATIBILITY IDEOGRAPH-2F856*/ - RTUNI_ALPHA, /* U+02f857: CJK COMPATIBILITY IDEOGRAPH-2F857*/ - RTUNI_ALPHA, /* U+02f858: CJK COMPATIBILITY IDEOGRAPH-2F858*/ - RTUNI_ALPHA, /* U+02f859: CJK COMPATIBILITY IDEOGRAPH-2F859*/ - RTUNI_ALPHA, /* U+02f85a: CJK COMPATIBILITY IDEOGRAPH-2F85A*/ - RTUNI_ALPHA, /* U+02f85b: CJK COMPATIBILITY IDEOGRAPH-2F85B*/ - RTUNI_ALPHA, /* U+02f85c: CJK COMPATIBILITY IDEOGRAPH-2F85C*/ - RTUNI_ALPHA, /* U+02f85d: CJK COMPATIBILITY IDEOGRAPH-2F85D*/ - RTUNI_ALPHA, /* U+02f85e: CJK COMPATIBILITY IDEOGRAPH-2F85E*/ - RTUNI_ALPHA, /* U+02f85f: CJK COMPATIBILITY IDEOGRAPH-2F85F*/ - RTUNI_ALPHA, /* U+02f860: CJK COMPATIBILITY IDEOGRAPH-2F860*/ - RTUNI_ALPHA, /* U+02f861: CJK COMPATIBILITY IDEOGRAPH-2F861*/ - RTUNI_ALPHA, /* U+02f862: CJK COMPATIBILITY IDEOGRAPH-2F862*/ - RTUNI_ALPHA, /* U+02f863: CJK COMPATIBILITY IDEOGRAPH-2F863*/ - RTUNI_ALPHA, /* U+02f864: CJK COMPATIBILITY IDEOGRAPH-2F864*/ - RTUNI_ALPHA, /* U+02f865: CJK COMPATIBILITY IDEOGRAPH-2F865*/ - RTUNI_ALPHA, /* U+02f866: CJK COMPATIBILITY IDEOGRAPH-2F866*/ - RTUNI_ALPHA, /* U+02f867: CJK COMPATIBILITY IDEOGRAPH-2F867*/ - RTUNI_ALPHA, /* U+02f868: CJK COMPATIBILITY IDEOGRAPH-2F868*/ - RTUNI_ALPHA, /* U+02f869: CJK COMPATIBILITY IDEOGRAPH-2F869*/ - RTUNI_ALPHA, /* U+02f86a: CJK COMPATIBILITY IDEOGRAPH-2F86A*/ - RTUNI_ALPHA, /* U+02f86b: CJK COMPATIBILITY IDEOGRAPH-2F86B*/ - RTUNI_ALPHA, /* U+02f86c: CJK COMPATIBILITY IDEOGRAPH-2F86C*/ - RTUNI_ALPHA, /* U+02f86d: CJK COMPATIBILITY IDEOGRAPH-2F86D*/ - RTUNI_ALPHA, /* U+02f86e: CJK COMPATIBILITY IDEOGRAPH-2F86E*/ - RTUNI_ALPHA, /* U+02f86f: CJK COMPATIBILITY IDEOGRAPH-2F86F*/ - RTUNI_ALPHA, /* U+02f870: CJK COMPATIBILITY IDEOGRAPH-2F870*/ - RTUNI_ALPHA, /* U+02f871: CJK COMPATIBILITY IDEOGRAPH-2F871*/ - RTUNI_ALPHA, /* U+02f872: CJK COMPATIBILITY IDEOGRAPH-2F872*/ - RTUNI_ALPHA, /* U+02f873: CJK COMPATIBILITY IDEOGRAPH-2F873*/ - RTUNI_ALPHA, /* U+02f874: CJK COMPATIBILITY IDEOGRAPH-2F874*/ - RTUNI_ALPHA, /* U+02f875: CJK COMPATIBILITY IDEOGRAPH-2F875*/ - RTUNI_ALPHA, /* U+02f876: CJK COMPATIBILITY IDEOGRAPH-2F876*/ - RTUNI_ALPHA, /* U+02f877: CJK COMPATIBILITY IDEOGRAPH-2F877*/ - RTUNI_ALPHA, /* U+02f878: CJK COMPATIBILITY IDEOGRAPH-2F878*/ - RTUNI_ALPHA, /* U+02f879: CJK COMPATIBILITY IDEOGRAPH-2F879*/ - RTUNI_ALPHA, /* U+02f87a: CJK COMPATIBILITY IDEOGRAPH-2F87A*/ - RTUNI_ALPHA, /* U+02f87b: CJK COMPATIBILITY IDEOGRAPH-2F87B*/ - RTUNI_ALPHA, /* U+02f87c: CJK COMPATIBILITY IDEOGRAPH-2F87C*/ - RTUNI_ALPHA, /* U+02f87d: CJK COMPATIBILITY IDEOGRAPH-2F87D*/ - RTUNI_ALPHA, /* U+02f87e: CJK COMPATIBILITY IDEOGRAPH-2F87E*/ - RTUNI_ALPHA, /* U+02f87f: CJK COMPATIBILITY IDEOGRAPH-2F87F*/ - RTUNI_ALPHA, /* U+02f880: CJK COMPATIBILITY IDEOGRAPH-2F880*/ - RTUNI_ALPHA, /* U+02f881: CJK COMPATIBILITY IDEOGRAPH-2F881*/ - RTUNI_ALPHA, /* U+02f882: CJK COMPATIBILITY IDEOGRAPH-2F882*/ - RTUNI_ALPHA, /* U+02f883: CJK COMPATIBILITY IDEOGRAPH-2F883*/ - RTUNI_ALPHA, /* U+02f884: CJK COMPATIBILITY IDEOGRAPH-2F884*/ - RTUNI_ALPHA, /* U+02f885: CJK COMPATIBILITY IDEOGRAPH-2F885*/ - RTUNI_ALPHA, /* U+02f886: CJK COMPATIBILITY IDEOGRAPH-2F886*/ - RTUNI_ALPHA, /* U+02f887: CJK COMPATIBILITY IDEOGRAPH-2F887*/ - RTUNI_ALPHA, /* U+02f888: CJK COMPATIBILITY IDEOGRAPH-2F888*/ - RTUNI_ALPHA, /* U+02f889: CJK COMPATIBILITY IDEOGRAPH-2F889*/ - RTUNI_ALPHA, /* U+02f88a: CJK COMPATIBILITY IDEOGRAPH-2F88A*/ - RTUNI_ALPHA, /* U+02f88b: CJK COMPATIBILITY IDEOGRAPH-2F88B*/ - RTUNI_ALPHA, /* U+02f88c: CJK COMPATIBILITY IDEOGRAPH-2F88C*/ - RTUNI_ALPHA, /* U+02f88d: CJK COMPATIBILITY IDEOGRAPH-2F88D*/ - RTUNI_ALPHA, /* U+02f88e: CJK COMPATIBILITY IDEOGRAPH-2F88E*/ - RTUNI_ALPHA, /* U+02f88f: CJK COMPATIBILITY IDEOGRAPH-2F88F*/ - RTUNI_ALPHA, /* U+02f890: CJK COMPATIBILITY IDEOGRAPH-2F890*/ - RTUNI_ALPHA, /* U+02f891: CJK COMPATIBILITY IDEOGRAPH-2F891*/ - RTUNI_ALPHA, /* U+02f892: CJK COMPATIBILITY IDEOGRAPH-2F892*/ - RTUNI_ALPHA, /* U+02f893: CJK COMPATIBILITY IDEOGRAPH-2F893*/ - RTUNI_ALPHA, /* U+02f894: CJK COMPATIBILITY IDEOGRAPH-2F894*/ - RTUNI_ALPHA, /* U+02f895: CJK COMPATIBILITY IDEOGRAPH-2F895*/ - RTUNI_ALPHA, /* U+02f896: CJK COMPATIBILITY IDEOGRAPH-2F896*/ - RTUNI_ALPHA, /* U+02f897: CJK COMPATIBILITY IDEOGRAPH-2F897*/ - RTUNI_ALPHA, /* U+02f898: CJK COMPATIBILITY IDEOGRAPH-2F898*/ - RTUNI_ALPHA, /* U+02f899: CJK COMPATIBILITY IDEOGRAPH-2F899*/ - RTUNI_ALPHA, /* U+02f89a: CJK COMPATIBILITY IDEOGRAPH-2F89A*/ - RTUNI_ALPHA, /* U+02f89b: CJK COMPATIBILITY IDEOGRAPH-2F89B*/ - RTUNI_ALPHA, /* U+02f89c: CJK COMPATIBILITY IDEOGRAPH-2F89C*/ - RTUNI_ALPHA, /* U+02f89d: CJK COMPATIBILITY IDEOGRAPH-2F89D*/ - RTUNI_ALPHA, /* U+02f89e: CJK COMPATIBILITY IDEOGRAPH-2F89E*/ - RTUNI_ALPHA, /* U+02f89f: CJK COMPATIBILITY IDEOGRAPH-2F89F*/ - RTUNI_ALPHA, /* U+02f8a0: CJK COMPATIBILITY IDEOGRAPH-2F8A0*/ - RTUNI_ALPHA, /* U+02f8a1: CJK COMPATIBILITY IDEOGRAPH-2F8A1*/ - RTUNI_ALPHA, /* U+02f8a2: CJK COMPATIBILITY IDEOGRAPH-2F8A2*/ - RTUNI_ALPHA, /* U+02f8a3: CJK COMPATIBILITY IDEOGRAPH-2F8A3*/ - RTUNI_ALPHA, /* U+02f8a4: CJK COMPATIBILITY IDEOGRAPH-2F8A4*/ - RTUNI_ALPHA, /* U+02f8a5: CJK COMPATIBILITY IDEOGRAPH-2F8A5*/ - RTUNI_ALPHA, /* U+02f8a6: CJK COMPATIBILITY IDEOGRAPH-2F8A6*/ - RTUNI_ALPHA, /* U+02f8a7: CJK COMPATIBILITY IDEOGRAPH-2F8A7*/ - RTUNI_ALPHA, /* U+02f8a8: CJK COMPATIBILITY IDEOGRAPH-2F8A8*/ - RTUNI_ALPHA, /* U+02f8a9: CJK COMPATIBILITY IDEOGRAPH-2F8A9*/ - RTUNI_ALPHA, /* U+02f8aa: CJK COMPATIBILITY IDEOGRAPH-2F8AA*/ - RTUNI_ALPHA, /* U+02f8ab: CJK COMPATIBILITY IDEOGRAPH-2F8AB*/ - RTUNI_ALPHA, /* U+02f8ac: CJK COMPATIBILITY IDEOGRAPH-2F8AC*/ - RTUNI_ALPHA, /* U+02f8ad: CJK COMPATIBILITY IDEOGRAPH-2F8AD*/ - RTUNI_ALPHA, /* U+02f8ae: CJK COMPATIBILITY IDEOGRAPH-2F8AE*/ - RTUNI_ALPHA, /* U+02f8af: CJK COMPATIBILITY IDEOGRAPH-2F8AF*/ - RTUNI_ALPHA, /* U+02f8b0: CJK COMPATIBILITY IDEOGRAPH-2F8B0*/ - RTUNI_ALPHA, /* U+02f8b1: CJK COMPATIBILITY IDEOGRAPH-2F8B1*/ - RTUNI_ALPHA, /* U+02f8b2: CJK COMPATIBILITY IDEOGRAPH-2F8B2*/ - RTUNI_ALPHA, /* U+02f8b3: CJK COMPATIBILITY IDEOGRAPH-2F8B3*/ - RTUNI_ALPHA, /* U+02f8b4: CJK COMPATIBILITY IDEOGRAPH-2F8B4*/ - RTUNI_ALPHA, /* U+02f8b5: CJK COMPATIBILITY IDEOGRAPH-2F8B5*/ - RTUNI_ALPHA, /* U+02f8b6: CJK COMPATIBILITY IDEOGRAPH-2F8B6*/ - RTUNI_ALPHA, /* U+02f8b7: CJK COMPATIBILITY IDEOGRAPH-2F8B7*/ - RTUNI_ALPHA, /* U+02f8b8: CJK COMPATIBILITY IDEOGRAPH-2F8B8*/ - RTUNI_ALPHA, /* U+02f8b9: CJK COMPATIBILITY IDEOGRAPH-2F8B9*/ - RTUNI_ALPHA, /* U+02f8ba: CJK COMPATIBILITY IDEOGRAPH-2F8BA*/ - RTUNI_ALPHA, /* U+02f8bb: CJK COMPATIBILITY IDEOGRAPH-2F8BB*/ - RTUNI_ALPHA, /* U+02f8bc: CJK COMPATIBILITY IDEOGRAPH-2F8BC*/ - RTUNI_ALPHA, /* U+02f8bd: CJK COMPATIBILITY IDEOGRAPH-2F8BD*/ - RTUNI_ALPHA, /* U+02f8be: CJK COMPATIBILITY IDEOGRAPH-2F8BE*/ - RTUNI_ALPHA, /* U+02f8bf: CJK COMPATIBILITY IDEOGRAPH-2F8BF*/ - RTUNI_ALPHA, /* U+02f8c0: CJK COMPATIBILITY IDEOGRAPH-2F8C0*/ - RTUNI_ALPHA, /* U+02f8c1: CJK COMPATIBILITY IDEOGRAPH-2F8C1*/ - RTUNI_ALPHA, /* U+02f8c2: CJK COMPATIBILITY IDEOGRAPH-2F8C2*/ - RTUNI_ALPHA, /* U+02f8c3: CJK COMPATIBILITY IDEOGRAPH-2F8C3*/ - RTUNI_ALPHA, /* U+02f8c4: CJK COMPATIBILITY IDEOGRAPH-2F8C4*/ - RTUNI_ALPHA, /* U+02f8c5: CJK COMPATIBILITY IDEOGRAPH-2F8C5*/ - RTUNI_ALPHA, /* U+02f8c6: CJK COMPATIBILITY IDEOGRAPH-2F8C6*/ - RTUNI_ALPHA, /* U+02f8c7: CJK COMPATIBILITY IDEOGRAPH-2F8C7*/ - RTUNI_ALPHA, /* U+02f8c8: CJK COMPATIBILITY IDEOGRAPH-2F8C8*/ - RTUNI_ALPHA, /* U+02f8c9: CJK COMPATIBILITY IDEOGRAPH-2F8C9*/ - RTUNI_ALPHA, /* U+02f8ca: CJK COMPATIBILITY IDEOGRAPH-2F8CA*/ - RTUNI_ALPHA, /* U+02f8cb: CJK COMPATIBILITY IDEOGRAPH-2F8CB*/ - RTUNI_ALPHA, /* U+02f8cc: CJK COMPATIBILITY IDEOGRAPH-2F8CC*/ - RTUNI_ALPHA, /* U+02f8cd: CJK COMPATIBILITY IDEOGRAPH-2F8CD*/ - RTUNI_ALPHA, /* U+02f8ce: CJK COMPATIBILITY IDEOGRAPH-2F8CE*/ - RTUNI_ALPHA, /* U+02f8cf: CJK COMPATIBILITY IDEOGRAPH-2F8CF*/ - RTUNI_ALPHA, /* U+02f8d0: CJK COMPATIBILITY IDEOGRAPH-2F8D0*/ - RTUNI_ALPHA, /* U+02f8d1: CJK COMPATIBILITY IDEOGRAPH-2F8D1*/ - RTUNI_ALPHA, /* U+02f8d2: CJK COMPATIBILITY IDEOGRAPH-2F8D2*/ - RTUNI_ALPHA, /* U+02f8d3: CJK COMPATIBILITY IDEOGRAPH-2F8D3*/ - RTUNI_ALPHA, /* U+02f8d4: CJK COMPATIBILITY IDEOGRAPH-2F8D4*/ - RTUNI_ALPHA, /* U+02f8d5: CJK COMPATIBILITY IDEOGRAPH-2F8D5*/ - RTUNI_ALPHA, /* U+02f8d6: CJK COMPATIBILITY IDEOGRAPH-2F8D6*/ - RTUNI_ALPHA, /* U+02f8d7: CJK COMPATIBILITY IDEOGRAPH-2F8D7*/ - RTUNI_ALPHA, /* U+02f8d8: CJK COMPATIBILITY IDEOGRAPH-2F8D8*/ - RTUNI_ALPHA, /* U+02f8d9: CJK COMPATIBILITY IDEOGRAPH-2F8D9*/ - RTUNI_ALPHA, /* U+02f8da: CJK COMPATIBILITY IDEOGRAPH-2F8DA*/ - RTUNI_ALPHA, /* U+02f8db: CJK COMPATIBILITY IDEOGRAPH-2F8DB*/ - RTUNI_ALPHA, /* U+02f8dc: CJK COMPATIBILITY IDEOGRAPH-2F8DC*/ - RTUNI_ALPHA, /* U+02f8dd: CJK COMPATIBILITY IDEOGRAPH-2F8DD*/ - RTUNI_ALPHA, /* U+02f8de: CJK COMPATIBILITY IDEOGRAPH-2F8DE*/ - RTUNI_ALPHA, /* U+02f8df: CJK COMPATIBILITY IDEOGRAPH-2F8DF*/ - RTUNI_ALPHA, /* U+02f8e0: CJK COMPATIBILITY IDEOGRAPH-2F8E0*/ - RTUNI_ALPHA, /* U+02f8e1: CJK COMPATIBILITY IDEOGRAPH-2F8E1*/ - RTUNI_ALPHA, /* U+02f8e2: CJK COMPATIBILITY IDEOGRAPH-2F8E2*/ - RTUNI_ALPHA, /* U+02f8e3: CJK COMPATIBILITY IDEOGRAPH-2F8E3*/ - RTUNI_ALPHA, /* U+02f8e4: CJK COMPATIBILITY IDEOGRAPH-2F8E4*/ - RTUNI_ALPHA, /* U+02f8e5: CJK COMPATIBILITY IDEOGRAPH-2F8E5*/ - RTUNI_ALPHA, /* U+02f8e6: CJK COMPATIBILITY IDEOGRAPH-2F8E6*/ - RTUNI_ALPHA, /* U+02f8e7: CJK COMPATIBILITY IDEOGRAPH-2F8E7*/ - RTUNI_ALPHA, /* U+02f8e8: CJK COMPATIBILITY IDEOGRAPH-2F8E8*/ - RTUNI_ALPHA, /* U+02f8e9: CJK COMPATIBILITY IDEOGRAPH-2F8E9*/ - RTUNI_ALPHA, /* U+02f8ea: CJK COMPATIBILITY IDEOGRAPH-2F8EA*/ - RTUNI_ALPHA, /* U+02f8eb: CJK COMPATIBILITY IDEOGRAPH-2F8EB*/ - RTUNI_ALPHA, /* U+02f8ec: CJK COMPATIBILITY IDEOGRAPH-2F8EC*/ - RTUNI_ALPHA, /* U+02f8ed: CJK COMPATIBILITY IDEOGRAPH-2F8ED*/ - RTUNI_ALPHA, /* U+02f8ee: CJK COMPATIBILITY IDEOGRAPH-2F8EE*/ - RTUNI_ALPHA, /* U+02f8ef: CJK COMPATIBILITY IDEOGRAPH-2F8EF*/ - RTUNI_ALPHA, /* U+02f8f0: CJK COMPATIBILITY IDEOGRAPH-2F8F0*/ - RTUNI_ALPHA, /* U+02f8f1: CJK COMPATIBILITY IDEOGRAPH-2F8F1*/ - RTUNI_ALPHA, /* U+02f8f2: CJK COMPATIBILITY IDEOGRAPH-2F8F2*/ - RTUNI_ALPHA, /* U+02f8f3: CJK COMPATIBILITY IDEOGRAPH-2F8F3*/ - RTUNI_ALPHA, /* U+02f8f4: CJK COMPATIBILITY IDEOGRAPH-2F8F4*/ - RTUNI_ALPHA, /* U+02f8f5: CJK COMPATIBILITY IDEOGRAPH-2F8F5*/ - RTUNI_ALPHA, /* U+02f8f6: CJK COMPATIBILITY IDEOGRAPH-2F8F6*/ - RTUNI_ALPHA, /* U+02f8f7: CJK COMPATIBILITY IDEOGRAPH-2F8F7*/ - RTUNI_ALPHA, /* U+02f8f8: CJK COMPATIBILITY IDEOGRAPH-2F8F8*/ - RTUNI_ALPHA, /* U+02f8f9: CJK COMPATIBILITY IDEOGRAPH-2F8F9*/ - RTUNI_ALPHA, /* U+02f8fa: CJK COMPATIBILITY IDEOGRAPH-2F8FA*/ - RTUNI_ALPHA, /* U+02f8fb: CJK COMPATIBILITY IDEOGRAPH-2F8FB*/ - RTUNI_ALPHA, /* U+02f8fc: CJK COMPATIBILITY IDEOGRAPH-2F8FC*/ - RTUNI_ALPHA, /* U+02f8fd: CJK COMPATIBILITY IDEOGRAPH-2F8FD*/ - RTUNI_ALPHA, /* U+02f8fe: CJK COMPATIBILITY IDEOGRAPH-2F8FE*/ - RTUNI_ALPHA, /* U+02f8ff: CJK COMPATIBILITY IDEOGRAPH-2F8FF*/ - RTUNI_ALPHA, /* U+02f900: CJK COMPATIBILITY IDEOGRAPH-2F900*/ - RTUNI_ALPHA, /* U+02f901: CJK COMPATIBILITY IDEOGRAPH-2F901*/ - RTUNI_ALPHA, /* U+02f902: CJK COMPATIBILITY IDEOGRAPH-2F902*/ - RTUNI_ALPHA, /* U+02f903: CJK COMPATIBILITY IDEOGRAPH-2F903*/ - RTUNI_ALPHA, /* U+02f904: CJK COMPATIBILITY IDEOGRAPH-2F904*/ - RTUNI_ALPHA, /* U+02f905: CJK COMPATIBILITY IDEOGRAPH-2F905*/ - RTUNI_ALPHA, /* U+02f906: CJK COMPATIBILITY IDEOGRAPH-2F906*/ - RTUNI_ALPHA, /* U+02f907: CJK COMPATIBILITY IDEOGRAPH-2F907*/ - RTUNI_ALPHA, /* U+02f908: CJK COMPATIBILITY IDEOGRAPH-2F908*/ - RTUNI_ALPHA, /* U+02f909: CJK COMPATIBILITY IDEOGRAPH-2F909*/ - RTUNI_ALPHA, /* U+02f90a: CJK COMPATIBILITY IDEOGRAPH-2F90A*/ - RTUNI_ALPHA, /* U+02f90b: CJK COMPATIBILITY IDEOGRAPH-2F90B*/ - RTUNI_ALPHA, /* U+02f90c: CJK COMPATIBILITY IDEOGRAPH-2F90C*/ - RTUNI_ALPHA, /* U+02f90d: CJK COMPATIBILITY IDEOGRAPH-2F90D*/ - RTUNI_ALPHA, /* U+02f90e: CJK COMPATIBILITY IDEOGRAPH-2F90E*/ - RTUNI_ALPHA, /* U+02f90f: CJK COMPATIBILITY IDEOGRAPH-2F90F*/ - RTUNI_ALPHA, /* U+02f910: CJK COMPATIBILITY IDEOGRAPH-2F910*/ - RTUNI_ALPHA, /* U+02f911: CJK COMPATIBILITY IDEOGRAPH-2F911*/ - RTUNI_ALPHA, /* U+02f912: CJK COMPATIBILITY IDEOGRAPH-2F912*/ - RTUNI_ALPHA, /* U+02f913: CJK COMPATIBILITY IDEOGRAPH-2F913*/ - RTUNI_ALPHA, /* U+02f914: CJK COMPATIBILITY IDEOGRAPH-2F914*/ - RTUNI_ALPHA, /* U+02f915: CJK COMPATIBILITY IDEOGRAPH-2F915*/ - RTUNI_ALPHA, /* U+02f916: CJK COMPATIBILITY IDEOGRAPH-2F916*/ - RTUNI_ALPHA, /* U+02f917: CJK COMPATIBILITY IDEOGRAPH-2F917*/ - RTUNI_ALPHA, /* U+02f918: CJK COMPATIBILITY IDEOGRAPH-2F918*/ - RTUNI_ALPHA, /* U+02f919: CJK COMPATIBILITY IDEOGRAPH-2F919*/ - RTUNI_ALPHA, /* U+02f91a: CJK COMPATIBILITY IDEOGRAPH-2F91A*/ - RTUNI_ALPHA, /* U+02f91b: CJK COMPATIBILITY IDEOGRAPH-2F91B*/ - RTUNI_ALPHA, /* U+02f91c: CJK COMPATIBILITY IDEOGRAPH-2F91C*/ - RTUNI_ALPHA, /* U+02f91d: CJK COMPATIBILITY IDEOGRAPH-2F91D*/ - RTUNI_ALPHA, /* U+02f91e: CJK COMPATIBILITY IDEOGRAPH-2F91E*/ - RTUNI_ALPHA, /* U+02f91f: CJK COMPATIBILITY IDEOGRAPH-2F91F*/ - RTUNI_ALPHA, /* U+02f920: CJK COMPATIBILITY IDEOGRAPH-2F920*/ - RTUNI_ALPHA, /* U+02f921: CJK COMPATIBILITY IDEOGRAPH-2F921*/ - RTUNI_ALPHA, /* U+02f922: CJK COMPATIBILITY IDEOGRAPH-2F922*/ - RTUNI_ALPHA, /* U+02f923: CJK COMPATIBILITY IDEOGRAPH-2F923*/ - RTUNI_ALPHA, /* U+02f924: CJK COMPATIBILITY IDEOGRAPH-2F924*/ - RTUNI_ALPHA, /* U+02f925: CJK COMPATIBILITY IDEOGRAPH-2F925*/ - RTUNI_ALPHA, /* U+02f926: CJK COMPATIBILITY IDEOGRAPH-2F926*/ - RTUNI_ALPHA, /* U+02f927: CJK COMPATIBILITY IDEOGRAPH-2F927*/ - RTUNI_ALPHA, /* U+02f928: CJK COMPATIBILITY IDEOGRAPH-2F928*/ - RTUNI_ALPHA, /* U+02f929: CJK COMPATIBILITY IDEOGRAPH-2F929*/ - RTUNI_ALPHA, /* U+02f92a: CJK COMPATIBILITY IDEOGRAPH-2F92A*/ - RTUNI_ALPHA, /* U+02f92b: CJK COMPATIBILITY IDEOGRAPH-2F92B*/ - RTUNI_ALPHA, /* U+02f92c: CJK COMPATIBILITY IDEOGRAPH-2F92C*/ - RTUNI_ALPHA, /* U+02f92d: CJK COMPATIBILITY IDEOGRAPH-2F92D*/ - RTUNI_ALPHA, /* U+02f92e: CJK COMPATIBILITY IDEOGRAPH-2F92E*/ - RTUNI_ALPHA, /* U+02f92f: CJK COMPATIBILITY IDEOGRAPH-2F92F*/ - RTUNI_ALPHA, /* U+02f930: CJK COMPATIBILITY IDEOGRAPH-2F930*/ - RTUNI_ALPHA, /* U+02f931: CJK COMPATIBILITY IDEOGRAPH-2F931*/ - RTUNI_ALPHA, /* U+02f932: CJK COMPATIBILITY IDEOGRAPH-2F932*/ - RTUNI_ALPHA, /* U+02f933: CJK COMPATIBILITY IDEOGRAPH-2F933*/ - RTUNI_ALPHA, /* U+02f934: CJK COMPATIBILITY IDEOGRAPH-2F934*/ - RTUNI_ALPHA, /* U+02f935: CJK COMPATIBILITY IDEOGRAPH-2F935*/ - RTUNI_ALPHA, /* U+02f936: CJK COMPATIBILITY IDEOGRAPH-2F936*/ - RTUNI_ALPHA, /* U+02f937: CJK COMPATIBILITY IDEOGRAPH-2F937*/ - RTUNI_ALPHA, /* U+02f938: CJK COMPATIBILITY IDEOGRAPH-2F938*/ - RTUNI_ALPHA, /* U+02f939: CJK COMPATIBILITY IDEOGRAPH-2F939*/ - RTUNI_ALPHA, /* U+02f93a: CJK COMPATIBILITY IDEOGRAPH-2F93A*/ - RTUNI_ALPHA, /* U+02f93b: CJK COMPATIBILITY IDEOGRAPH-2F93B*/ - RTUNI_ALPHA, /* U+02f93c: CJK COMPATIBILITY IDEOGRAPH-2F93C*/ - RTUNI_ALPHA, /* U+02f93d: CJK COMPATIBILITY IDEOGRAPH-2F93D*/ - RTUNI_ALPHA, /* U+02f93e: CJK COMPATIBILITY IDEOGRAPH-2F93E*/ - RTUNI_ALPHA, /* U+02f93f: CJK COMPATIBILITY IDEOGRAPH-2F93F*/ - RTUNI_ALPHA, /* U+02f940: CJK COMPATIBILITY IDEOGRAPH-2F940*/ - RTUNI_ALPHA, /* U+02f941: CJK COMPATIBILITY IDEOGRAPH-2F941*/ - RTUNI_ALPHA, /* U+02f942: CJK COMPATIBILITY IDEOGRAPH-2F942*/ - RTUNI_ALPHA, /* U+02f943: CJK COMPATIBILITY IDEOGRAPH-2F943*/ - RTUNI_ALPHA, /* U+02f944: CJK COMPATIBILITY IDEOGRAPH-2F944*/ - RTUNI_ALPHA, /* U+02f945: CJK COMPATIBILITY IDEOGRAPH-2F945*/ - RTUNI_ALPHA, /* U+02f946: CJK COMPATIBILITY IDEOGRAPH-2F946*/ - RTUNI_ALPHA, /* U+02f947: CJK COMPATIBILITY IDEOGRAPH-2F947*/ - RTUNI_ALPHA, /* U+02f948: CJK COMPATIBILITY IDEOGRAPH-2F948*/ - RTUNI_ALPHA, /* U+02f949: CJK COMPATIBILITY IDEOGRAPH-2F949*/ - RTUNI_ALPHA, /* U+02f94a: CJK COMPATIBILITY IDEOGRAPH-2F94A*/ - RTUNI_ALPHA, /* U+02f94b: CJK COMPATIBILITY IDEOGRAPH-2F94B*/ - RTUNI_ALPHA, /* U+02f94c: CJK COMPATIBILITY IDEOGRAPH-2F94C*/ - RTUNI_ALPHA, /* U+02f94d: CJK COMPATIBILITY IDEOGRAPH-2F94D*/ - RTUNI_ALPHA, /* U+02f94e: CJK COMPATIBILITY IDEOGRAPH-2F94E*/ - RTUNI_ALPHA, /* U+02f94f: CJK COMPATIBILITY IDEOGRAPH-2F94F*/ - RTUNI_ALPHA, /* U+02f950: CJK COMPATIBILITY IDEOGRAPH-2F950*/ - RTUNI_ALPHA, /* U+02f951: CJK COMPATIBILITY IDEOGRAPH-2F951*/ - RTUNI_ALPHA, /* U+02f952: CJK COMPATIBILITY IDEOGRAPH-2F952*/ - RTUNI_ALPHA, /* U+02f953: CJK COMPATIBILITY IDEOGRAPH-2F953*/ - RTUNI_ALPHA, /* U+02f954: CJK COMPATIBILITY IDEOGRAPH-2F954*/ - RTUNI_ALPHA, /* U+02f955: CJK COMPATIBILITY IDEOGRAPH-2F955*/ - RTUNI_ALPHA, /* U+02f956: CJK COMPATIBILITY IDEOGRAPH-2F956*/ - RTUNI_ALPHA, /* U+02f957: CJK COMPATIBILITY IDEOGRAPH-2F957*/ - RTUNI_ALPHA, /* U+02f958: CJK COMPATIBILITY IDEOGRAPH-2F958*/ - RTUNI_ALPHA, /* U+02f959: CJK COMPATIBILITY IDEOGRAPH-2F959*/ - RTUNI_ALPHA, /* U+02f95a: CJK COMPATIBILITY IDEOGRAPH-2F95A*/ - RTUNI_ALPHA, /* U+02f95b: CJK COMPATIBILITY IDEOGRAPH-2F95B*/ - RTUNI_ALPHA, /* U+02f95c: CJK COMPATIBILITY IDEOGRAPH-2F95C*/ - RTUNI_ALPHA, /* U+02f95d: CJK COMPATIBILITY IDEOGRAPH-2F95D*/ - RTUNI_ALPHA, /* U+02f95e: CJK COMPATIBILITY IDEOGRAPH-2F95E*/ - RTUNI_ALPHA, /* U+02f95f: CJK COMPATIBILITY IDEOGRAPH-2F95F*/ - RTUNI_ALPHA, /* U+02f960: CJK COMPATIBILITY IDEOGRAPH-2F960*/ - RTUNI_ALPHA, /* U+02f961: CJK COMPATIBILITY IDEOGRAPH-2F961*/ - RTUNI_ALPHA, /* U+02f962: CJK COMPATIBILITY IDEOGRAPH-2F962*/ - RTUNI_ALPHA, /* U+02f963: CJK COMPATIBILITY IDEOGRAPH-2F963*/ - RTUNI_ALPHA, /* U+02f964: CJK COMPATIBILITY IDEOGRAPH-2F964*/ - RTUNI_ALPHA, /* U+02f965: CJK COMPATIBILITY IDEOGRAPH-2F965*/ - RTUNI_ALPHA, /* U+02f966: CJK COMPATIBILITY IDEOGRAPH-2F966*/ - RTUNI_ALPHA, /* U+02f967: CJK COMPATIBILITY IDEOGRAPH-2F967*/ - RTUNI_ALPHA, /* U+02f968: CJK COMPATIBILITY IDEOGRAPH-2F968*/ - RTUNI_ALPHA, /* U+02f969: CJK COMPATIBILITY IDEOGRAPH-2F969*/ - RTUNI_ALPHA, /* U+02f96a: CJK COMPATIBILITY IDEOGRAPH-2F96A*/ - RTUNI_ALPHA, /* U+02f96b: CJK COMPATIBILITY IDEOGRAPH-2F96B*/ - RTUNI_ALPHA, /* U+02f96c: CJK COMPATIBILITY IDEOGRAPH-2F96C*/ - RTUNI_ALPHA, /* U+02f96d: CJK COMPATIBILITY IDEOGRAPH-2F96D*/ - RTUNI_ALPHA, /* U+02f96e: CJK COMPATIBILITY IDEOGRAPH-2F96E*/ - RTUNI_ALPHA, /* U+02f96f: CJK COMPATIBILITY IDEOGRAPH-2F96F*/ - RTUNI_ALPHA, /* U+02f970: CJK COMPATIBILITY IDEOGRAPH-2F970*/ - RTUNI_ALPHA, /* U+02f971: CJK COMPATIBILITY IDEOGRAPH-2F971*/ - RTUNI_ALPHA, /* U+02f972: CJK COMPATIBILITY IDEOGRAPH-2F972*/ - RTUNI_ALPHA, /* U+02f973: CJK COMPATIBILITY IDEOGRAPH-2F973*/ - RTUNI_ALPHA, /* U+02f974: CJK COMPATIBILITY IDEOGRAPH-2F974*/ - RTUNI_ALPHA, /* U+02f975: CJK COMPATIBILITY IDEOGRAPH-2F975*/ - RTUNI_ALPHA, /* U+02f976: CJK COMPATIBILITY IDEOGRAPH-2F976*/ - RTUNI_ALPHA, /* U+02f977: CJK COMPATIBILITY IDEOGRAPH-2F977*/ - RTUNI_ALPHA, /* U+02f978: CJK COMPATIBILITY IDEOGRAPH-2F978*/ - RTUNI_ALPHA, /* U+02f979: CJK COMPATIBILITY IDEOGRAPH-2F979*/ - RTUNI_ALPHA, /* U+02f97a: CJK COMPATIBILITY IDEOGRAPH-2F97A*/ - RTUNI_ALPHA, /* U+02f97b: CJK COMPATIBILITY IDEOGRAPH-2F97B*/ - RTUNI_ALPHA, /* U+02f97c: CJK COMPATIBILITY IDEOGRAPH-2F97C*/ - RTUNI_ALPHA, /* U+02f97d: CJK COMPATIBILITY IDEOGRAPH-2F97D*/ - RTUNI_ALPHA, /* U+02f97e: CJK COMPATIBILITY IDEOGRAPH-2F97E*/ - RTUNI_ALPHA, /* U+02f97f: CJK COMPATIBILITY IDEOGRAPH-2F97F*/ - RTUNI_ALPHA, /* U+02f980: CJK COMPATIBILITY IDEOGRAPH-2F980*/ - RTUNI_ALPHA, /* U+02f981: CJK COMPATIBILITY IDEOGRAPH-2F981*/ - RTUNI_ALPHA, /* U+02f982: CJK COMPATIBILITY IDEOGRAPH-2F982*/ - RTUNI_ALPHA, /* U+02f983: CJK COMPATIBILITY IDEOGRAPH-2F983*/ - RTUNI_ALPHA, /* U+02f984: CJK COMPATIBILITY IDEOGRAPH-2F984*/ - RTUNI_ALPHA, /* U+02f985: CJK COMPATIBILITY IDEOGRAPH-2F985*/ - RTUNI_ALPHA, /* U+02f986: CJK COMPATIBILITY IDEOGRAPH-2F986*/ - RTUNI_ALPHA, /* U+02f987: CJK COMPATIBILITY IDEOGRAPH-2F987*/ - RTUNI_ALPHA, /* U+02f988: CJK COMPATIBILITY IDEOGRAPH-2F988*/ - RTUNI_ALPHA, /* U+02f989: CJK COMPATIBILITY IDEOGRAPH-2F989*/ - RTUNI_ALPHA, /* U+02f98a: CJK COMPATIBILITY IDEOGRAPH-2F98A*/ - RTUNI_ALPHA, /* U+02f98b: CJK COMPATIBILITY IDEOGRAPH-2F98B*/ - RTUNI_ALPHA, /* U+02f98c: CJK COMPATIBILITY IDEOGRAPH-2F98C*/ - RTUNI_ALPHA, /* U+02f98d: CJK COMPATIBILITY IDEOGRAPH-2F98D*/ - RTUNI_ALPHA, /* U+02f98e: CJK COMPATIBILITY IDEOGRAPH-2F98E*/ - RTUNI_ALPHA, /* U+02f98f: CJK COMPATIBILITY IDEOGRAPH-2F98F*/ - RTUNI_ALPHA, /* U+02f990: CJK COMPATIBILITY IDEOGRAPH-2F990*/ - RTUNI_ALPHA, /* U+02f991: CJK COMPATIBILITY IDEOGRAPH-2F991*/ - RTUNI_ALPHA, /* U+02f992: CJK COMPATIBILITY IDEOGRAPH-2F992*/ - RTUNI_ALPHA, /* U+02f993: CJK COMPATIBILITY IDEOGRAPH-2F993*/ - RTUNI_ALPHA, /* U+02f994: CJK COMPATIBILITY IDEOGRAPH-2F994*/ - RTUNI_ALPHA, /* U+02f995: CJK COMPATIBILITY IDEOGRAPH-2F995*/ - RTUNI_ALPHA, /* U+02f996: CJK COMPATIBILITY IDEOGRAPH-2F996*/ - RTUNI_ALPHA, /* U+02f997: CJK COMPATIBILITY IDEOGRAPH-2F997*/ - RTUNI_ALPHA, /* U+02f998: CJK COMPATIBILITY IDEOGRAPH-2F998*/ - RTUNI_ALPHA, /* U+02f999: CJK COMPATIBILITY IDEOGRAPH-2F999*/ - RTUNI_ALPHA, /* U+02f99a: CJK COMPATIBILITY IDEOGRAPH-2F99A*/ - RTUNI_ALPHA, /* U+02f99b: CJK COMPATIBILITY IDEOGRAPH-2F99B*/ - RTUNI_ALPHA, /* U+02f99c: CJK COMPATIBILITY IDEOGRAPH-2F99C*/ - RTUNI_ALPHA, /* U+02f99d: CJK COMPATIBILITY IDEOGRAPH-2F99D*/ - RTUNI_ALPHA, /* U+02f99e: CJK COMPATIBILITY IDEOGRAPH-2F99E*/ - RTUNI_ALPHA, /* U+02f99f: CJK COMPATIBILITY IDEOGRAPH-2F99F*/ - RTUNI_ALPHA, /* U+02f9a0: CJK COMPATIBILITY IDEOGRAPH-2F9A0*/ - RTUNI_ALPHA, /* U+02f9a1: CJK COMPATIBILITY IDEOGRAPH-2F9A1*/ - RTUNI_ALPHA, /* U+02f9a2: CJK COMPATIBILITY IDEOGRAPH-2F9A2*/ - RTUNI_ALPHA, /* U+02f9a3: CJK COMPATIBILITY IDEOGRAPH-2F9A3*/ - RTUNI_ALPHA, /* U+02f9a4: CJK COMPATIBILITY IDEOGRAPH-2F9A4*/ - RTUNI_ALPHA, /* U+02f9a5: CJK COMPATIBILITY IDEOGRAPH-2F9A5*/ - RTUNI_ALPHA, /* U+02f9a6: CJK COMPATIBILITY IDEOGRAPH-2F9A6*/ - RTUNI_ALPHA, /* U+02f9a7: CJK COMPATIBILITY IDEOGRAPH-2F9A7*/ - RTUNI_ALPHA, /* U+02f9a8: CJK COMPATIBILITY IDEOGRAPH-2F9A8*/ - RTUNI_ALPHA, /* U+02f9a9: CJK COMPATIBILITY IDEOGRAPH-2F9A9*/ - RTUNI_ALPHA, /* U+02f9aa: CJK COMPATIBILITY IDEOGRAPH-2F9AA*/ - RTUNI_ALPHA, /* U+02f9ab: CJK COMPATIBILITY IDEOGRAPH-2F9AB*/ - RTUNI_ALPHA, /* U+02f9ac: CJK COMPATIBILITY IDEOGRAPH-2F9AC*/ - RTUNI_ALPHA, /* U+02f9ad: CJK COMPATIBILITY IDEOGRAPH-2F9AD*/ - RTUNI_ALPHA, /* U+02f9ae: CJK COMPATIBILITY IDEOGRAPH-2F9AE*/ - RTUNI_ALPHA, /* U+02f9af: CJK COMPATIBILITY IDEOGRAPH-2F9AF*/ - RTUNI_ALPHA, /* U+02f9b0: CJK COMPATIBILITY IDEOGRAPH-2F9B0*/ - RTUNI_ALPHA, /* U+02f9b1: CJK COMPATIBILITY IDEOGRAPH-2F9B1*/ - RTUNI_ALPHA, /* U+02f9b2: CJK COMPATIBILITY IDEOGRAPH-2F9B2*/ - RTUNI_ALPHA, /* U+02f9b3: CJK COMPATIBILITY IDEOGRAPH-2F9B3*/ - RTUNI_ALPHA, /* U+02f9b4: CJK COMPATIBILITY IDEOGRAPH-2F9B4*/ - RTUNI_ALPHA, /* U+02f9b5: CJK COMPATIBILITY IDEOGRAPH-2F9B5*/ - RTUNI_ALPHA, /* U+02f9b6: CJK COMPATIBILITY IDEOGRAPH-2F9B6*/ - RTUNI_ALPHA, /* U+02f9b7: CJK COMPATIBILITY IDEOGRAPH-2F9B7*/ - RTUNI_ALPHA, /* U+02f9b8: CJK COMPATIBILITY IDEOGRAPH-2F9B8*/ - RTUNI_ALPHA, /* U+02f9b9: CJK COMPATIBILITY IDEOGRAPH-2F9B9*/ - RTUNI_ALPHA, /* U+02f9ba: CJK COMPATIBILITY IDEOGRAPH-2F9BA*/ - RTUNI_ALPHA, /* U+02f9bb: CJK COMPATIBILITY IDEOGRAPH-2F9BB*/ - RTUNI_ALPHA, /* U+02f9bc: CJK COMPATIBILITY IDEOGRAPH-2F9BC*/ - RTUNI_ALPHA, /* U+02f9bd: CJK COMPATIBILITY IDEOGRAPH-2F9BD*/ - RTUNI_ALPHA, /* U+02f9be: CJK COMPATIBILITY IDEOGRAPH-2F9BE*/ - RTUNI_ALPHA, /* U+02f9bf: CJK COMPATIBILITY IDEOGRAPH-2F9BF*/ - RTUNI_ALPHA, /* U+02f9c0: CJK COMPATIBILITY IDEOGRAPH-2F9C0*/ - RTUNI_ALPHA, /* U+02f9c1: CJK COMPATIBILITY IDEOGRAPH-2F9C1*/ - RTUNI_ALPHA, /* U+02f9c2: CJK COMPATIBILITY IDEOGRAPH-2F9C2*/ - RTUNI_ALPHA, /* U+02f9c3: CJK COMPATIBILITY IDEOGRAPH-2F9C3*/ - RTUNI_ALPHA, /* U+02f9c4: CJK COMPATIBILITY IDEOGRAPH-2F9C4*/ - RTUNI_ALPHA, /* U+02f9c5: CJK COMPATIBILITY IDEOGRAPH-2F9C5*/ - RTUNI_ALPHA, /* U+02f9c6: CJK COMPATIBILITY IDEOGRAPH-2F9C6*/ - RTUNI_ALPHA, /* U+02f9c7: CJK COMPATIBILITY IDEOGRAPH-2F9C7*/ - RTUNI_ALPHA, /* U+02f9c8: CJK COMPATIBILITY IDEOGRAPH-2F9C8*/ - RTUNI_ALPHA, /* U+02f9c9: CJK COMPATIBILITY IDEOGRAPH-2F9C9*/ - RTUNI_ALPHA, /* U+02f9ca: CJK COMPATIBILITY IDEOGRAPH-2F9CA*/ - RTUNI_ALPHA, /* U+02f9cb: CJK COMPATIBILITY IDEOGRAPH-2F9CB*/ - RTUNI_ALPHA, /* U+02f9cc: CJK COMPATIBILITY IDEOGRAPH-2F9CC*/ - RTUNI_ALPHA, /* U+02f9cd: CJK COMPATIBILITY IDEOGRAPH-2F9CD*/ - RTUNI_ALPHA, /* U+02f9ce: CJK COMPATIBILITY IDEOGRAPH-2F9CE*/ - RTUNI_ALPHA, /* U+02f9cf: CJK COMPATIBILITY IDEOGRAPH-2F9CF*/ - RTUNI_ALPHA, /* U+02f9d0: CJK COMPATIBILITY IDEOGRAPH-2F9D0*/ - RTUNI_ALPHA, /* U+02f9d1: CJK COMPATIBILITY IDEOGRAPH-2F9D1*/ - RTUNI_ALPHA, /* U+02f9d2: CJK COMPATIBILITY IDEOGRAPH-2F9D2*/ - RTUNI_ALPHA, /* U+02f9d3: CJK COMPATIBILITY IDEOGRAPH-2F9D3*/ - RTUNI_ALPHA, /* U+02f9d4: CJK COMPATIBILITY IDEOGRAPH-2F9D4*/ - RTUNI_ALPHA, /* U+02f9d5: CJK COMPATIBILITY IDEOGRAPH-2F9D5*/ - RTUNI_ALPHA, /* U+02f9d6: CJK COMPATIBILITY IDEOGRAPH-2F9D6*/ - RTUNI_ALPHA, /* U+02f9d7: CJK COMPATIBILITY IDEOGRAPH-2F9D7*/ - RTUNI_ALPHA, /* U+02f9d8: CJK COMPATIBILITY IDEOGRAPH-2F9D8*/ - RTUNI_ALPHA, /* U+02f9d9: CJK COMPATIBILITY IDEOGRAPH-2F9D9*/ - RTUNI_ALPHA, /* U+02f9da: CJK COMPATIBILITY IDEOGRAPH-2F9DA*/ - RTUNI_ALPHA, /* U+02f9db: CJK COMPATIBILITY IDEOGRAPH-2F9DB*/ - RTUNI_ALPHA, /* U+02f9dc: CJK COMPATIBILITY IDEOGRAPH-2F9DC*/ - RTUNI_ALPHA, /* U+02f9dd: CJK COMPATIBILITY IDEOGRAPH-2F9DD*/ - RTUNI_ALPHA, /* U+02f9de: CJK COMPATIBILITY IDEOGRAPH-2F9DE*/ - RTUNI_ALPHA, /* U+02f9df: CJK COMPATIBILITY IDEOGRAPH-2F9DF*/ - RTUNI_ALPHA, /* U+02f9e0: CJK COMPATIBILITY IDEOGRAPH-2F9E0*/ - RTUNI_ALPHA, /* U+02f9e1: CJK COMPATIBILITY IDEOGRAPH-2F9E1*/ - RTUNI_ALPHA, /* U+02f9e2: CJK COMPATIBILITY IDEOGRAPH-2F9E2*/ - RTUNI_ALPHA, /* U+02f9e3: CJK COMPATIBILITY IDEOGRAPH-2F9E3*/ - RTUNI_ALPHA, /* U+02f9e4: CJK COMPATIBILITY IDEOGRAPH-2F9E4*/ - RTUNI_ALPHA, /* U+02f9e5: CJK COMPATIBILITY IDEOGRAPH-2F9E5*/ - RTUNI_ALPHA, /* U+02f9e6: CJK COMPATIBILITY IDEOGRAPH-2F9E6*/ - RTUNI_ALPHA, /* U+02f9e7: CJK COMPATIBILITY IDEOGRAPH-2F9E7*/ - RTUNI_ALPHA, /* U+02f9e8: CJK COMPATIBILITY IDEOGRAPH-2F9E8*/ - RTUNI_ALPHA, /* U+02f9e9: CJK COMPATIBILITY IDEOGRAPH-2F9E9*/ - RTUNI_ALPHA, /* U+02f9ea: CJK COMPATIBILITY IDEOGRAPH-2F9EA*/ - RTUNI_ALPHA, /* U+02f9eb: CJK COMPATIBILITY IDEOGRAPH-2F9EB*/ - RTUNI_ALPHA, /* U+02f9ec: CJK COMPATIBILITY IDEOGRAPH-2F9EC*/ - RTUNI_ALPHA, /* U+02f9ed: CJK COMPATIBILITY IDEOGRAPH-2F9ED*/ - RTUNI_ALPHA, /* U+02f9ee: CJK COMPATIBILITY IDEOGRAPH-2F9EE*/ - RTUNI_ALPHA, /* U+02f9ef: CJK COMPATIBILITY IDEOGRAPH-2F9EF*/ - RTUNI_ALPHA, /* U+02f9f0: CJK COMPATIBILITY IDEOGRAPH-2F9F0*/ - RTUNI_ALPHA, /* U+02f9f1: CJK COMPATIBILITY IDEOGRAPH-2F9F1*/ - RTUNI_ALPHA, /* U+02f9f2: CJK COMPATIBILITY IDEOGRAPH-2F9F2*/ - RTUNI_ALPHA, /* U+02f9f3: CJK COMPATIBILITY IDEOGRAPH-2F9F3*/ - RTUNI_ALPHA, /* U+02f9f4: CJK COMPATIBILITY IDEOGRAPH-2F9F4*/ - RTUNI_ALPHA, /* U+02f9f5: CJK COMPATIBILITY IDEOGRAPH-2F9F5*/ - RTUNI_ALPHA, /* U+02f9f6: CJK COMPATIBILITY IDEOGRAPH-2F9F6*/ - RTUNI_ALPHA, /* U+02f9f7: CJK COMPATIBILITY IDEOGRAPH-2F9F7*/ - RTUNI_ALPHA, /* U+02f9f8: CJK COMPATIBILITY IDEOGRAPH-2F9F8*/ - RTUNI_ALPHA, /* U+02f9f9: CJK COMPATIBILITY IDEOGRAPH-2F9F9*/ - RTUNI_ALPHA, /* U+02f9fa: CJK COMPATIBILITY IDEOGRAPH-2F9FA*/ - RTUNI_ALPHA, /* U+02f9fb: CJK COMPATIBILITY IDEOGRAPH-2F9FB*/ - RTUNI_ALPHA, /* U+02f9fc: CJK COMPATIBILITY IDEOGRAPH-2F9FC*/ - RTUNI_ALPHA, /* U+02f9fd: CJK COMPATIBILITY IDEOGRAPH-2F9FD*/ - RTUNI_ALPHA, /* U+02f9fe: CJK COMPATIBILITY IDEOGRAPH-2F9FE*/ - RTUNI_ALPHA, /* U+02f9ff: CJK COMPATIBILITY IDEOGRAPH-2F9FF*/ - RTUNI_ALPHA, /* U+02fa00: CJK COMPATIBILITY IDEOGRAPH-2FA00*/ - RTUNI_ALPHA, /* U+02fa01: CJK COMPATIBILITY IDEOGRAPH-2FA01*/ - RTUNI_ALPHA, /* U+02fa02: CJK COMPATIBILITY IDEOGRAPH-2FA02*/ - RTUNI_ALPHA, /* U+02fa03: CJK COMPATIBILITY IDEOGRAPH-2FA03*/ - RTUNI_ALPHA, /* U+02fa04: CJK COMPATIBILITY IDEOGRAPH-2FA04*/ - RTUNI_ALPHA, /* U+02fa05: CJK COMPATIBILITY IDEOGRAPH-2FA05*/ - RTUNI_ALPHA, /* U+02fa06: CJK COMPATIBILITY IDEOGRAPH-2FA06*/ - RTUNI_ALPHA, /* U+02fa07: CJK COMPATIBILITY IDEOGRAPH-2FA07*/ - RTUNI_ALPHA, /* U+02fa08: CJK COMPATIBILITY IDEOGRAPH-2FA08*/ - RTUNI_ALPHA, /* U+02fa09: CJK COMPATIBILITY IDEOGRAPH-2FA09*/ - RTUNI_ALPHA, /* U+02fa0a: CJK COMPATIBILITY IDEOGRAPH-2FA0A*/ - RTUNI_ALPHA, /* U+02fa0b: CJK COMPATIBILITY IDEOGRAPH-2FA0B*/ - RTUNI_ALPHA, /* U+02fa0c: CJK COMPATIBILITY IDEOGRAPH-2FA0C*/ - RTUNI_ALPHA, /* U+02fa0d: CJK COMPATIBILITY IDEOGRAPH-2FA0D*/ - RTUNI_ALPHA, /* U+02fa0e: CJK COMPATIBILITY IDEOGRAPH-2FA0E*/ - RTUNI_ALPHA, /* U+02fa0f: CJK COMPATIBILITY IDEOGRAPH-2FA0F*/ - RTUNI_ALPHA, /* U+02fa10: CJK COMPATIBILITY IDEOGRAPH-2FA10*/ - RTUNI_ALPHA, /* U+02fa11: CJK COMPATIBILITY IDEOGRAPH-2FA11*/ - RTUNI_ALPHA, /* U+02fa12: CJK COMPATIBILITY IDEOGRAPH-2FA12*/ - RTUNI_ALPHA, /* U+02fa13: CJK COMPATIBILITY IDEOGRAPH-2FA13*/ - RTUNI_ALPHA, /* U+02fa14: CJK COMPATIBILITY IDEOGRAPH-2FA14*/ - RTUNI_ALPHA, /* U+02fa15: CJK COMPATIBILITY IDEOGRAPH-2FA15*/ - RTUNI_ALPHA, /* U+02fa16: CJK COMPATIBILITY IDEOGRAPH-2FA16*/ - RTUNI_ALPHA, /* U+02fa17: CJK COMPATIBILITY IDEOGRAPH-2FA17*/ - RTUNI_ALPHA, /* U+02fa18: CJK COMPATIBILITY IDEOGRAPH-2FA18*/ - RTUNI_ALPHA, /* U+02fa19: CJK COMPATIBILITY IDEOGRAPH-2FA19*/ - RTUNI_ALPHA, /* U+02fa1a: CJK COMPATIBILITY IDEOGRAPH-2FA1A*/ - RTUNI_ALPHA, /* U+02fa1b: CJK COMPATIBILITY IDEOGRAPH-2FA1B*/ - RTUNI_ALPHA, /* U+02fa1c: CJK COMPATIBILITY IDEOGRAPH-2FA1C*/ - RTUNI_ALPHA, /* U+02fa1d: CJK COMPATIBILITY IDEOGRAPH-2FA1D*/ -}; - - -const RTUNIFLAGSRANGE g_aRTUniFlagsRanges[] = -{ - { 0x000000, 0x003401, &g_afRTUniFlags0x000000[0] }, - { 0x004db5, 0x004e01, &g_afRTUniFlags0x004db5[0] }, - { 0x009fbb, 0x00ac01, &g_afRTUniFlags0x009fbb[0] }, - { 0x00d7a3, 0x00d7a4, &g_afRTUniFlags0x00d7a3[0] }, - { 0x00f900, 0x010a34, &g_afRTUniFlags0x00f900[0] }, - { 0x01d400, 0x01d800, &g_afRTUniFlags0x01d400[0] }, - { 0x020000, 0x020001, &g_afRTUniFlags0x020000[0] }, - { 0x02a6d6, 0x02a6d7, &g_afRTUniFlags0x02a6d6[0] }, - { 0x02f800, 0x02fa1e, &g_afRTUniFlags0x02f800[0] }, - { ~(RTUNICP)0, ~(RTUNICP)0, NULL } -}; - - -static const RTUNICP g_afRTUniUpper0x000000[] = -{ - 0x00, /* U+000000: */ - 0x01, /* U+000001: */ - 0x02, /* U+000002: */ - 0x03, /* U+000003: */ - 0x04, /* U+000004: */ - 0x05, /* U+000005: */ - 0x06, /* U+000006: */ - 0x07, /* U+000007: */ - 0x08, /* U+000008: */ - 0x09, /* U+000009: */ - 0x0a, /* U+00000a: */ - 0x0b, /* U+00000b: */ - 0x0c, /* U+00000c: */ - 0x0d, /* U+00000d: */ - 0x0e, /* U+00000e: */ - 0x0f, /* U+00000f: */ - 0x10, /* U+000010: */ - 0x11, /* U+000011: */ - 0x12, /* U+000012: */ - 0x13, /* U+000013: */ - 0x14, /* U+000014: */ - 0x15, /* U+000015: */ - 0x16, /* U+000016: */ - 0x17, /* U+000017: */ - 0x18, /* U+000018: */ - 0x19, /* U+000019: */ - 0x1a, /* U+00001a: */ - 0x1b, /* U+00001b: */ - 0x1c, /* U+00001c: */ - 0x1d, /* U+00001d: */ - 0x1e, /* U+00001e: */ - 0x1f, /* U+00001f: */ - 0x20, /* U+000020: SPACE*/ - 0x21, /* U+000021: EXCLAMATION MARK*/ - 0x22, /* U+000022: QUOTATION MARK*/ - 0x23, /* U+000023: NUMBER SIGN*/ - 0x24, /* U+000024: DOLLAR SIGN*/ - 0x25, /* U+000025: PERCENT SIGN*/ - 0x26, /* U+000026: AMPERSAND*/ - 0x27, /* U+000027: APOSTROPHE*/ - 0x28, /* U+000028: LEFT PARENTHESIS*/ - 0x29, /* U+000029: RIGHT PARENTHESIS*/ - 0x2a, /* U+00002a: ASTERISK*/ - 0x2b, /* U+00002b: PLUS SIGN*/ - 0x2c, /* U+00002c: COMMA*/ - 0x2d, /* U+00002d: HYPHEN-MINUS*/ - 0x2e, /* U+00002e: FULL STOP*/ - 0x2f, /* U+00002f: SOLIDUS*/ - 0x30, /* U+000030: DIGIT ZERO*/ - 0x31, /* U+000031: DIGIT ONE*/ - 0x32, /* U+000032: DIGIT TWO*/ - 0x33, /* U+000033: DIGIT THREE*/ - 0x34, /* U+000034: DIGIT FOUR*/ - 0x35, /* U+000035: DIGIT FIVE*/ - 0x36, /* U+000036: DIGIT SIX*/ - 0x37, /* U+000037: DIGIT SEVEN*/ - 0x38, /* U+000038: DIGIT EIGHT*/ - 0x39, /* U+000039: DIGIT NINE*/ - 0x3a, /* U+00003a: COLON*/ - 0x3b, /* U+00003b: SEMICOLON*/ - 0x3c, /* U+00003c: LESS-THAN SIGN*/ - 0x3d, /* U+00003d: EQUALS SIGN*/ - 0x3e, /* U+00003e: GREATER-THAN SIGN*/ - 0x3f, /* U+00003f: QUESTION MARK*/ - 0x40, /* U+000040: COMMERCIAL AT*/ - 0x41, /* U+000041: LATIN CAPITAL LETTER A*/ - 0x42, /* U+000042: LATIN CAPITAL LETTER B*/ - 0x43, /* U+000043: LATIN CAPITAL LETTER C*/ - 0x44, /* U+000044: LATIN CAPITAL LETTER D*/ - 0x45, /* U+000045: LATIN CAPITAL LETTER E*/ - 0x46, /* U+000046: LATIN CAPITAL LETTER F*/ - 0x47, /* U+000047: LATIN CAPITAL LETTER G*/ - 0x48, /* U+000048: LATIN CAPITAL LETTER H*/ - 0x49, /* U+000049: LATIN CAPITAL LETTER I*/ - 0x4a, /* U+00004a: LATIN CAPITAL LETTER J*/ - 0x4b, /* U+00004b: LATIN CAPITAL LETTER K*/ - 0x4c, /* U+00004c: LATIN CAPITAL LETTER L*/ - 0x4d, /* U+00004d: LATIN CAPITAL LETTER M*/ - 0x4e, /* U+00004e: LATIN CAPITAL LETTER N*/ - 0x4f, /* U+00004f: LATIN CAPITAL LETTER O*/ - 0x50, /* U+000050: LATIN CAPITAL LETTER P*/ - 0x51, /* U+000051: LATIN CAPITAL LETTER Q*/ - 0x52, /* U+000052: LATIN CAPITAL LETTER R*/ - 0x53, /* U+000053: LATIN CAPITAL LETTER S*/ - 0x54, /* U+000054: LATIN CAPITAL LETTER T*/ - 0x55, /* U+000055: LATIN CAPITAL LETTER U*/ - 0x56, /* U+000056: LATIN CAPITAL LETTER V*/ - 0x57, /* U+000057: LATIN CAPITAL LETTER W*/ - 0x58, /* U+000058: LATIN CAPITAL LETTER X*/ - 0x59, /* U+000059: LATIN CAPITAL LETTER Y*/ - 0x5a, /* U+00005a: LATIN CAPITAL LETTER Z*/ - 0x5b, /* U+00005b: LEFT SQUARE BRACKET*/ - 0x5c, /* U+00005c: REVERSE SOLIDUS*/ - 0x5d, /* U+00005d: RIGHT SQUARE BRACKET*/ - 0x5e, /* U+00005e: CIRCUMFLEX ACCENT*/ - 0x5f, /* U+00005f: LOW LINE*/ - 0x60, /* U+000060: GRAVE ACCENT*/ - 0x41, /* U+000061: LATIN SMALL LETTER A*/ - 0x42, /* U+000062: LATIN SMALL LETTER B*/ - 0x43, /* U+000063: LATIN SMALL LETTER C*/ - 0x44, /* U+000064: LATIN SMALL LETTER D*/ - 0x45, /* U+000065: LATIN SMALL LETTER E*/ - 0x46, /* U+000066: LATIN SMALL LETTER F*/ - 0x47, /* U+000067: LATIN SMALL LETTER G*/ - 0x48, /* U+000068: LATIN SMALL LETTER H*/ - 0x49, /* U+000069: LATIN SMALL LETTER I*/ - 0x4a, /* U+00006a: LATIN SMALL LETTER J*/ - 0x4b, /* U+00006b: LATIN SMALL LETTER K*/ - 0x4c, /* U+00006c: LATIN SMALL LETTER L*/ - 0x4d, /* U+00006d: LATIN SMALL LETTER M*/ - 0x4e, /* U+00006e: LATIN SMALL LETTER N*/ - 0x4f, /* U+00006f: LATIN SMALL LETTER O*/ - 0x50, /* U+000070: LATIN SMALL LETTER P*/ - 0x51, /* U+000071: LATIN SMALL LETTER Q*/ - 0x52, /* U+000072: LATIN SMALL LETTER R*/ - 0x53, /* U+000073: LATIN SMALL LETTER S*/ - 0x54, /* U+000074: LATIN SMALL LETTER T*/ - 0x55, /* U+000075: LATIN SMALL LETTER U*/ - 0x56, /* U+000076: LATIN SMALL LETTER V*/ - 0x57, /* U+000077: LATIN SMALL LETTER W*/ - 0x58, /* U+000078: LATIN SMALL LETTER X*/ - 0x59, /* U+000079: LATIN SMALL LETTER Y*/ - 0x5a, /* U+00007a: LATIN SMALL LETTER Z*/ - 0x7b, /* U+00007b: LEFT CURLY BRACKET*/ - 0x7c, /* U+00007c: VERTICAL LINE*/ - 0x7d, /* U+00007d: RIGHT CURLY BRACKET*/ - 0x7e, /* U+00007e: TILDE*/ - 0x7f, /* U+00007f: */ - 0x80, /* U+000080: */ - 0x81, /* U+000081: */ - 0x82, /* U+000082: */ - 0x83, /* U+000083: */ - 0x84, /* U+000084: */ - 0x85, /* U+000085: */ - 0x86, /* U+000086: */ - 0x87, /* U+000087: */ - 0x88, /* U+000088: */ - 0x89, /* U+000089: */ - 0x8a, /* U+00008a: */ - 0x8b, /* U+00008b: */ - 0x8c, /* U+00008c: */ - 0x8d, /* U+00008d: */ - 0x8e, /* U+00008e: */ - 0x8f, /* U+00008f: */ - 0x90, /* U+000090: */ - 0x91, /* U+000091: */ - 0x92, /* U+000092: */ - 0x93, /* U+000093: */ - 0x94, /* U+000094: */ - 0x95, /* U+000095: */ - 0x96, /* U+000096: */ - 0x97, /* U+000097: */ - 0x98, /* U+000098: */ - 0x99, /* U+000099: */ - 0x9a, /* U+00009a: */ - 0x9b, /* U+00009b: */ - 0x9c, /* U+00009c: */ - 0x9d, /* U+00009d: */ - 0x9e, /* U+00009e: */ - 0x9f, /* U+00009f: */ - 0xa0, /* U+0000a0: NO-BREAK SPACE*/ - 0xa1, /* U+0000a1: INVERTED EXCLAMATION MARK*/ - 0xa2, /* U+0000a2: CENT SIGN*/ - 0xa3, /* U+0000a3: POUND SIGN*/ - 0xa4, /* U+0000a4: CURRENCY SIGN*/ - 0xa5, /* U+0000a5: YEN SIGN*/ - 0xa6, /* U+0000a6: BROKEN BAR*/ - 0xa7, /* U+0000a7: SECTION SIGN*/ - 0xa8, /* U+0000a8: DIAERESIS*/ - 0xa9, /* U+0000a9: COPYRIGHT SIGN*/ - 0xaa, /* U+0000aa: FEMININE ORDINAL INDICATOR*/ - 0xab, /* U+0000ab: LEFT-POINTING DOUBLE ANGLE QUOTATION MARK*/ - 0xac, /* U+0000ac: NOT SIGN*/ - 0xad, /* U+0000ad: SOFT HYPHEN*/ - 0xae, /* U+0000ae: REGISTERED SIGN*/ - 0xaf, /* U+0000af: MACRON*/ - 0xb0, /* U+0000b0: DEGREE SIGN*/ - 0xb1, /* U+0000b1: PLUS-MINUS SIGN*/ - 0xb2, /* U+0000b2: SUPERSCRIPT TWO*/ - 0xb3, /* U+0000b3: SUPERSCRIPT THREE*/ - 0xb4, /* U+0000b4: ACUTE ACCENT*/ - 0x39c, /* U+0000b5: MICRO SIGN*/ - 0xb6, /* U+0000b6: PILCROW SIGN*/ - 0xb7, /* U+0000b7: MIDDLE DOT*/ - 0xb8, /* U+0000b8: CEDILLA*/ - 0xb9, /* U+0000b9: SUPERSCRIPT ONE*/ - 0xba, /* U+0000ba: MASCULINE ORDINAL INDICATOR*/ - 0xbb, /* U+0000bb: RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK*/ - 0xbc, /* U+0000bc: VULGAR FRACTION ONE QUARTER*/ - 0xbd, /* U+0000bd: VULGAR FRACTION ONE HALF*/ - 0xbe, /* U+0000be: VULGAR FRACTION THREE QUARTERS*/ - 0xbf, /* U+0000bf: INVERTED QUESTION MARK*/ - 0xc0, /* U+0000c0: LATIN CAPITAL LETTER A WITH GRAVE*/ - 0xc1, /* U+0000c1: LATIN CAPITAL LETTER A WITH ACUTE*/ - 0xc2, /* U+0000c2: LATIN CAPITAL LETTER A WITH CIRCUMFLEX*/ - 0xc3, /* U+0000c3: LATIN CAPITAL LETTER A WITH TILDE*/ - 0xc4, /* U+0000c4: LATIN CAPITAL LETTER A WITH DIAERESIS*/ - 0xc5, /* U+0000c5: LATIN CAPITAL LETTER A WITH RING ABOVE*/ - 0xc6, /* U+0000c6: LATIN CAPITAL LETTER AE*/ - 0xc7, /* U+0000c7: LATIN CAPITAL LETTER C WITH CEDILLA*/ - 0xc8, /* U+0000c8: LATIN CAPITAL LETTER E WITH GRAVE*/ - 0xc9, /* U+0000c9: LATIN CAPITAL LETTER E WITH ACUTE*/ - 0xca, /* U+0000ca: LATIN CAPITAL LETTER E WITH CIRCUMFLEX*/ - 0xcb, /* U+0000cb: LATIN CAPITAL LETTER E WITH DIAERESIS*/ - 0xcc, /* U+0000cc: LATIN CAPITAL LETTER I WITH GRAVE*/ - 0xcd, /* U+0000cd: LATIN CAPITAL LETTER I WITH ACUTE*/ - 0xce, /* U+0000ce: LATIN CAPITAL LETTER I WITH CIRCUMFLEX*/ - 0xcf, /* U+0000cf: LATIN CAPITAL LETTER I WITH DIAERESIS*/ - 0xd0, /* U+0000d0: LATIN CAPITAL LETTER ETH*/ - 0xd1, /* U+0000d1: LATIN CAPITAL LETTER N WITH TILDE*/ - 0xd2, /* U+0000d2: LATIN CAPITAL LETTER O WITH GRAVE*/ - 0xd3, /* U+0000d3: LATIN CAPITAL LETTER O WITH ACUTE*/ - 0xd4, /* U+0000d4: LATIN CAPITAL LETTER O WITH CIRCUMFLEX*/ - 0xd5, /* U+0000d5: LATIN CAPITAL LETTER O WITH TILDE*/ - 0xd6, /* U+0000d6: LATIN CAPITAL LETTER O WITH DIAERESIS*/ - 0xd7, /* U+0000d7: MULTIPLICATION SIGN*/ - 0xd8, /* U+0000d8: LATIN CAPITAL LETTER O WITH STROKE*/ - 0xd9, /* U+0000d9: LATIN CAPITAL LETTER U WITH GRAVE*/ - 0xda, /* U+0000da: LATIN CAPITAL LETTER U WITH ACUTE*/ - 0xdb, /* U+0000db: LATIN CAPITAL LETTER U WITH CIRCUMFLEX*/ - 0xdc, /* U+0000dc: LATIN CAPITAL LETTER U WITH DIAERESIS*/ - 0xdd, /* U+0000dd: LATIN CAPITAL LETTER Y WITH ACUTE*/ - 0xde, /* U+0000de: LATIN CAPITAL LETTER THORN*/ - 0xdf, /* U+0000df: LATIN SMALL LETTER SHARP S*/ - 0xc0, /* U+0000e0: LATIN SMALL LETTER A WITH GRAVE*/ - 0xc1, /* U+0000e1: LATIN SMALL LETTER A WITH ACUTE*/ - 0xc2, /* U+0000e2: LATIN SMALL LETTER A WITH CIRCUMFLEX*/ - 0xc3, /* U+0000e3: LATIN SMALL LETTER A WITH TILDE*/ - 0xc4, /* U+0000e4: LATIN SMALL LETTER A WITH DIAERESIS*/ - 0xc5, /* U+0000e5: LATIN SMALL LETTER A WITH RING ABOVE*/ - 0xc6, /* U+0000e6: LATIN SMALL LETTER AE*/ - 0xc7, /* U+0000e7: LATIN SMALL LETTER C WITH CEDILLA*/ - 0xc8, /* U+0000e8: LATIN SMALL LETTER E WITH GRAVE*/ - 0xc9, /* U+0000e9: LATIN SMALL LETTER E WITH ACUTE*/ - 0xca, /* U+0000ea: LATIN SMALL LETTER E WITH CIRCUMFLEX*/ - 0xcb, /* U+0000eb: LATIN SMALL LETTER E WITH DIAERESIS*/ - 0xcc, /* U+0000ec: LATIN SMALL LETTER I WITH GRAVE*/ - 0xcd, /* U+0000ed: LATIN SMALL LETTER I WITH ACUTE*/ - 0xce, /* U+0000ee: LATIN SMALL LETTER I WITH CIRCUMFLEX*/ - 0xcf, /* U+0000ef: LATIN SMALL LETTER I WITH DIAERESIS*/ - 0xd0, /* U+0000f0: LATIN SMALL LETTER ETH*/ - 0xd1, /* U+0000f1: LATIN SMALL LETTER N WITH TILDE*/ - 0xd2, /* U+0000f2: LATIN SMALL LETTER O WITH GRAVE*/ - 0xd3, /* U+0000f3: LATIN SMALL LETTER O WITH ACUTE*/ - 0xd4, /* U+0000f4: LATIN SMALL LETTER O WITH CIRCUMFLEX*/ - 0xd5, /* U+0000f5: LATIN SMALL LETTER O WITH TILDE*/ - 0xd6, /* U+0000f6: LATIN SMALL LETTER O WITH DIAERESIS*/ - 0xf7, /* U+0000f7: DIVISION SIGN*/ - 0xd8, /* U+0000f8: LATIN SMALL LETTER O WITH STROKE*/ - 0xd9, /* U+0000f9: LATIN SMALL LETTER U WITH GRAVE*/ - 0xda, /* U+0000fa: LATIN SMALL LETTER U WITH ACUTE*/ - 0xdb, /* U+0000fb: LATIN SMALL LETTER U WITH CIRCUMFLEX*/ - 0xdc, /* U+0000fc: LATIN SMALL LETTER U WITH DIAERESIS*/ - 0xdd, /* U+0000fd: LATIN SMALL LETTER Y WITH ACUTE*/ - 0xde, /* U+0000fe: LATIN SMALL LETTER THORN*/ - 0x178, /* U+0000ff: LATIN SMALL LETTER Y WITH DIAERESIS*/ - 0x100, /* U+000100: LATIN CAPITAL LETTER A WITH MACRON*/ - 0x100, /* U+000101: LATIN SMALL LETTER A WITH MACRON*/ - 0x102, /* U+000102: LATIN CAPITAL LETTER A WITH BREVE*/ - 0x102, /* U+000103: LATIN SMALL LETTER A WITH BREVE*/ - 0x104, /* U+000104: LATIN CAPITAL LETTER A WITH OGONEK*/ - 0x104, /* U+000105: LATIN SMALL LETTER A WITH OGONEK*/ - 0x106, /* U+000106: LATIN CAPITAL LETTER C WITH ACUTE*/ - 0x106, /* U+000107: LATIN SMALL LETTER C WITH ACUTE*/ - 0x108, /* U+000108: LATIN CAPITAL LETTER C WITH CIRCUMFLEX*/ - 0x108, /* U+000109: LATIN SMALL LETTER C WITH CIRCUMFLEX*/ - 0x10a, /* U+00010a: LATIN CAPITAL LETTER C WITH DOT ABOVE*/ - 0x10a, /* U+00010b: LATIN SMALL LETTER C WITH DOT ABOVE*/ - 0x10c, /* U+00010c: LATIN CAPITAL LETTER C WITH CARON*/ - 0x10c, /* U+00010d: LATIN SMALL LETTER C WITH CARON*/ - 0x10e, /* U+00010e: LATIN CAPITAL LETTER D WITH CARON*/ - 0x10e, /* U+00010f: LATIN SMALL LETTER D WITH CARON*/ - 0x110, /* U+000110: LATIN CAPITAL LETTER D WITH STROKE*/ - 0x110, /* U+000111: LATIN SMALL LETTER D WITH STROKE*/ - 0x112, /* U+000112: LATIN CAPITAL LETTER E WITH MACRON*/ - 0x112, /* U+000113: LATIN SMALL LETTER E WITH MACRON*/ - 0x114, /* U+000114: LATIN CAPITAL LETTER E WITH BREVE*/ - 0x114, /* U+000115: LATIN SMALL LETTER E WITH BREVE*/ - 0x116, /* U+000116: LATIN CAPITAL LETTER E WITH DOT ABOVE*/ - 0x116, /* U+000117: LATIN SMALL LETTER E WITH DOT ABOVE*/ - 0x118, /* U+000118: LATIN CAPITAL LETTER E WITH OGONEK*/ - 0x118, /* U+000119: LATIN SMALL LETTER E WITH OGONEK*/ - 0x11a, /* U+00011a: LATIN CAPITAL LETTER E WITH CARON*/ - 0x11a, /* U+00011b: LATIN SMALL LETTER E WITH CARON*/ - 0x11c, /* U+00011c: LATIN CAPITAL LETTER G WITH CIRCUMFLEX*/ - 0x11c, /* U+00011d: LATIN SMALL LETTER G WITH CIRCUMFLEX*/ - 0x11e, /* U+00011e: LATIN CAPITAL LETTER G WITH BREVE*/ - 0x11e, /* U+00011f: LATIN SMALL LETTER G WITH BREVE*/ - 0x120, /* U+000120: LATIN CAPITAL LETTER G WITH DOT ABOVE*/ - 0x120, /* U+000121: LATIN SMALL LETTER G WITH DOT ABOVE*/ - 0x122, /* U+000122: LATIN CAPITAL LETTER G WITH CEDILLA*/ - 0x122, /* U+000123: LATIN SMALL LETTER G WITH CEDILLA*/ - 0x124, /* U+000124: LATIN CAPITAL LETTER H WITH CIRCUMFLEX*/ - 0x124, /* U+000125: LATIN SMALL LETTER H WITH CIRCUMFLEX*/ - 0x126, /* U+000126: LATIN CAPITAL LETTER H WITH STROKE*/ - 0x126, /* U+000127: LATIN SMALL LETTER H WITH STROKE*/ - 0x128, /* U+000128: LATIN CAPITAL LETTER I WITH TILDE*/ - 0x128, /* U+000129: LATIN SMALL LETTER I WITH TILDE*/ - 0x12a, /* U+00012a: LATIN CAPITAL LETTER I WITH MACRON*/ - 0x12a, /* U+00012b: LATIN SMALL LETTER I WITH MACRON*/ - 0x12c, /* U+00012c: LATIN CAPITAL LETTER I WITH BREVE*/ - 0x12c, /* U+00012d: LATIN SMALL LETTER I WITH BREVE*/ - 0x12e, /* U+00012e: LATIN CAPITAL LETTER I WITH OGONEK*/ - 0x12e, /* U+00012f: LATIN SMALL LETTER I WITH OGONEK*/ - 0x130, /* U+000130: LATIN CAPITAL LETTER I WITH DOT ABOVE*/ - 0x49, /* U+000131: LATIN SMALL LETTER DOTLESS I*/ - 0x132, /* U+000132: LATIN CAPITAL LIGATURE IJ*/ - 0x132, /* U+000133: LATIN SMALL LIGATURE IJ*/ - 0x134, /* U+000134: LATIN CAPITAL LETTER J WITH CIRCUMFLEX*/ - 0x134, /* U+000135: LATIN SMALL LETTER J WITH CIRCUMFLEX*/ - 0x136, /* U+000136: LATIN CAPITAL LETTER K WITH CEDILLA*/ - 0x136, /* U+000137: LATIN SMALL LETTER K WITH CEDILLA*/ - 0x138, /* U+000138: LATIN SMALL LETTER KRA*/ - 0x139, /* U+000139: LATIN CAPITAL LETTER L WITH ACUTE*/ - 0x139, /* U+00013a: LATIN SMALL LETTER L WITH ACUTE*/ - 0x13b, /* U+00013b: LATIN CAPITAL LETTER L WITH CEDILLA*/ - 0x13b, /* U+00013c: LATIN SMALL LETTER L WITH CEDILLA*/ - 0x13d, /* U+00013d: LATIN CAPITAL LETTER L WITH CARON*/ - 0x13d, /* U+00013e: LATIN SMALL LETTER L WITH CARON*/ - 0x13f, /* U+00013f: LATIN CAPITAL LETTER L WITH MIDDLE DOT*/ - 0x13f, /* U+000140: LATIN SMALL LETTER L WITH MIDDLE DOT*/ - 0x141, /* U+000141: LATIN CAPITAL LETTER L WITH STROKE*/ - 0x141, /* U+000142: LATIN SMALL LETTER L WITH STROKE*/ - 0x143, /* U+000143: LATIN CAPITAL LETTER N WITH ACUTE*/ - 0x143, /* U+000144: LATIN SMALL LETTER N WITH ACUTE*/ - 0x145, /* U+000145: LATIN CAPITAL LETTER N WITH CEDILLA*/ - 0x145, /* U+000146: LATIN SMALL LETTER N WITH CEDILLA*/ - 0x147, /* U+000147: LATIN CAPITAL LETTER N WITH CARON*/ - 0x147, /* U+000148: LATIN SMALL LETTER N WITH CARON*/ - 0x149, /* U+000149: LATIN SMALL LETTER N PRECEDED BY APOSTROPHE*/ - 0x14a, /* U+00014a: LATIN CAPITAL LETTER ENG*/ - 0x14a, /* U+00014b: LATIN SMALL LETTER ENG*/ - 0x14c, /* U+00014c: LATIN CAPITAL LETTER O WITH MACRON*/ - 0x14c, /* U+00014d: LATIN SMALL LETTER O WITH MACRON*/ - 0x14e, /* U+00014e: LATIN CAPITAL LETTER O WITH BREVE*/ - 0x14e, /* U+00014f: LATIN SMALL LETTER O WITH BREVE*/ - 0x150, /* U+000150: LATIN CAPITAL LETTER O WITH DOUBLE ACUTE*/ - 0x150, /* U+000151: LATIN SMALL LETTER O WITH DOUBLE ACUTE*/ - 0x152, /* U+000152: LATIN CAPITAL LIGATURE OE*/ - 0x152, /* U+000153: LATIN SMALL LIGATURE OE*/ - 0x154, /* U+000154: LATIN CAPITAL LETTER R WITH ACUTE*/ - 0x154, /* U+000155: LATIN SMALL LETTER R WITH ACUTE*/ - 0x156, /* U+000156: LATIN CAPITAL LETTER R WITH CEDILLA*/ - 0x156, /* U+000157: LATIN SMALL LETTER R WITH CEDILLA*/ - 0x158, /* U+000158: LATIN CAPITAL LETTER R WITH CARON*/ - 0x158, /* U+000159: LATIN SMALL LETTER R WITH CARON*/ - 0x15a, /* U+00015a: LATIN CAPITAL LETTER S WITH ACUTE*/ - 0x15a, /* U+00015b: LATIN SMALL LETTER S WITH ACUTE*/ - 0x15c, /* U+00015c: LATIN CAPITAL LETTER S WITH CIRCUMFLEX*/ - 0x15c, /* U+00015d: LATIN SMALL LETTER S WITH CIRCUMFLEX*/ - 0x15e, /* U+00015e: LATIN CAPITAL LETTER S WITH CEDILLA*/ - 0x15e, /* U+00015f: LATIN SMALL LETTER S WITH CEDILLA*/ - 0x160, /* U+000160: LATIN CAPITAL LETTER S WITH CARON*/ - 0x160, /* U+000161: LATIN SMALL LETTER S WITH CARON*/ - 0x162, /* U+000162: LATIN CAPITAL LETTER T WITH CEDILLA*/ - 0x162, /* U+000163: LATIN SMALL LETTER T WITH CEDILLA*/ - 0x164, /* U+000164: LATIN CAPITAL LETTER T WITH CARON*/ - 0x164, /* U+000165: LATIN SMALL LETTER T WITH CARON*/ - 0x166, /* U+000166: LATIN CAPITAL LETTER T WITH STROKE*/ - 0x166, /* U+000167: LATIN SMALL LETTER T WITH STROKE*/ - 0x168, /* U+000168: LATIN CAPITAL LETTER U WITH TILDE*/ - 0x168, /* U+000169: LATIN SMALL LETTER U WITH TILDE*/ - 0x16a, /* U+00016a: LATIN CAPITAL LETTER U WITH MACRON*/ - 0x16a, /* U+00016b: LATIN SMALL LETTER U WITH MACRON*/ - 0x16c, /* U+00016c: LATIN CAPITAL LETTER U WITH BREVE*/ - 0x16c, /* U+00016d: LATIN SMALL LETTER U WITH BREVE*/ - 0x16e, /* U+00016e: LATIN CAPITAL LETTER U WITH RING ABOVE*/ - 0x16e, /* U+00016f: LATIN SMALL LETTER U WITH RING ABOVE*/ - 0x170, /* U+000170: LATIN CAPITAL LETTER U WITH DOUBLE ACUTE*/ - 0x170, /* U+000171: LATIN SMALL LETTER U WITH DOUBLE ACUTE*/ - 0x172, /* U+000172: LATIN CAPITAL LETTER U WITH OGONEK*/ - 0x172, /* U+000173: LATIN SMALL LETTER U WITH OGONEK*/ - 0x174, /* U+000174: LATIN CAPITAL LETTER W WITH CIRCUMFLEX*/ - 0x174, /* U+000175: LATIN SMALL LETTER W WITH CIRCUMFLEX*/ - 0x176, /* U+000176: LATIN CAPITAL LETTER Y WITH CIRCUMFLEX*/ - 0x176, /* U+000177: LATIN SMALL LETTER Y WITH CIRCUMFLEX*/ - 0x178, /* U+000178: LATIN CAPITAL LETTER Y WITH DIAERESIS*/ - 0x179, /* U+000179: LATIN CAPITAL LETTER Z WITH ACUTE*/ - 0x179, /* U+00017a: LATIN SMALL LETTER Z WITH ACUTE*/ - 0x17b, /* U+00017b: LATIN CAPITAL LETTER Z WITH DOT ABOVE*/ - 0x17b, /* U+00017c: LATIN SMALL LETTER Z WITH DOT ABOVE*/ - 0x17d, /* U+00017d: LATIN CAPITAL LETTER Z WITH CARON*/ - 0x17d, /* U+00017e: LATIN SMALL LETTER Z WITH CARON*/ - 0x53, /* U+00017f: LATIN SMALL LETTER LONG S*/ - 0x180, /* U+000180: LATIN SMALL LETTER B WITH STROKE*/ - 0x181, /* U+000181: LATIN CAPITAL LETTER B WITH HOOK*/ - 0x182, /* U+000182: LATIN CAPITAL LETTER B WITH TOPBAR*/ - 0x182, /* U+000183: LATIN SMALL LETTER B WITH TOPBAR*/ - 0x184, /* U+000184: LATIN CAPITAL LETTER TONE SIX*/ - 0x184, /* U+000185: LATIN SMALL LETTER TONE SIX*/ - 0x186, /* U+000186: LATIN CAPITAL LETTER OPEN O*/ - 0x187, /* U+000187: LATIN CAPITAL LETTER C WITH HOOK*/ - 0x187, /* U+000188: LATIN SMALL LETTER C WITH HOOK*/ - 0x189, /* U+000189: LATIN CAPITAL LETTER AFRICAN D*/ - 0x18a, /* U+00018a: LATIN CAPITAL LETTER D WITH HOOK*/ - 0x18b, /* U+00018b: LATIN CAPITAL LETTER D WITH TOPBAR*/ - 0x18b, /* U+00018c: LATIN SMALL LETTER D WITH TOPBAR*/ - 0x18d, /* U+00018d: LATIN SMALL LETTER TURNED DELTA*/ - 0x18e, /* U+00018e: LATIN CAPITAL LETTER REVERSED E*/ - 0x18f, /* U+00018f: LATIN CAPITAL LETTER SCHWA*/ - 0x190, /* U+000190: LATIN CAPITAL LETTER OPEN E*/ - 0x191, /* U+000191: LATIN CAPITAL LETTER F WITH HOOK*/ - 0x191, /* U+000192: LATIN SMALL LETTER F WITH HOOK*/ - 0x193, /* U+000193: LATIN CAPITAL LETTER G WITH HOOK*/ - 0x194, /* U+000194: LATIN CAPITAL LETTER GAMMA*/ - 0x1f6, /* U+000195: LATIN SMALL LETTER HV*/ - 0x196, /* U+000196: LATIN CAPITAL LETTER IOTA*/ - 0x197, /* U+000197: LATIN CAPITAL LETTER I WITH STROKE*/ - 0x198, /* U+000198: LATIN CAPITAL LETTER K WITH HOOK*/ - 0x198, /* U+000199: LATIN SMALL LETTER K WITH HOOK*/ - 0x23d, /* U+00019a: LATIN SMALL LETTER L WITH BAR*/ - 0x19b, /* U+00019b: LATIN SMALL LETTER LAMBDA WITH STROKE*/ - 0x19c, /* U+00019c: LATIN CAPITAL LETTER TURNED M*/ - 0x19d, /* U+00019d: LATIN CAPITAL LETTER N WITH LEFT HOOK*/ - 0x220, /* U+00019e: LATIN SMALL LETTER N WITH LONG RIGHT LEG*/ - 0x19f, /* U+00019f: LATIN CAPITAL LETTER O WITH MIDDLE TILDE*/ - 0x1a0, /* U+0001a0: LATIN CAPITAL LETTER O WITH HORN*/ - 0x1a0, /* U+0001a1: LATIN SMALL LETTER O WITH HORN*/ - 0x1a2, /* U+0001a2: LATIN CAPITAL LETTER OI*/ - 0x1a2, /* U+0001a3: LATIN SMALL LETTER OI*/ - 0x1a4, /* U+0001a4: LATIN CAPITAL LETTER P WITH HOOK*/ - 0x1a4, /* U+0001a5: LATIN SMALL LETTER P WITH HOOK*/ - 0x1a6, /* U+0001a6: LATIN LETTER YR*/ - 0x1a7, /* U+0001a7: LATIN CAPITAL LETTER TONE TWO*/ - 0x1a7, /* U+0001a8: LATIN SMALL LETTER TONE TWO*/ - 0x1a9, /* U+0001a9: LATIN CAPITAL LETTER ESH*/ - 0x1aa, /* U+0001aa: LATIN LETTER REVERSED ESH LOOP*/ - 0x1ab, /* U+0001ab: LATIN SMALL LETTER T WITH PALATAL HOOK*/ - 0x1ac, /* U+0001ac: LATIN CAPITAL LETTER T WITH HOOK*/ - 0x1ac, /* U+0001ad: LATIN SMALL LETTER T WITH HOOK*/ - 0x1ae, /* U+0001ae: LATIN CAPITAL LETTER T WITH RETROFLEX HOOK*/ - 0x1af, /* U+0001af: LATIN CAPITAL LETTER U WITH HORN*/ - 0x1af, /* U+0001b0: LATIN SMALL LETTER U WITH HORN*/ - 0x1b1, /* U+0001b1: LATIN CAPITAL LETTER UPSILON*/ - 0x1b2, /* U+0001b2: LATIN CAPITAL LETTER V WITH HOOK*/ - 0x1b3, /* U+0001b3: LATIN CAPITAL LETTER Y WITH HOOK*/ - 0x1b3, /* U+0001b4: LATIN SMALL LETTER Y WITH HOOK*/ - 0x1b5, /* U+0001b5: LATIN CAPITAL LETTER Z WITH STROKE*/ - 0x1b5, /* U+0001b6: LATIN SMALL LETTER Z WITH STROKE*/ - 0x1b7, /* U+0001b7: LATIN CAPITAL LETTER EZH*/ - 0x1b8, /* U+0001b8: LATIN CAPITAL LETTER EZH REVERSED*/ - 0x1b8, /* U+0001b9: LATIN SMALL LETTER EZH REVERSED*/ - 0x1ba, /* U+0001ba: LATIN SMALL LETTER EZH WITH TAIL*/ - 0x1bb, /* U+0001bb: LATIN LETTER TWO WITH STROKE*/ - 0x1bc, /* U+0001bc: LATIN CAPITAL LETTER TONE FIVE*/ - 0x1bc, /* U+0001bd: LATIN SMALL LETTER TONE FIVE*/ - 0x1be, /* U+0001be: LATIN LETTER INVERTED GLOTTAL STOP WITH STROKE*/ - 0x1f7, /* U+0001bf: LATIN LETTER WYNN*/ - 0x1c0, /* U+0001c0: LATIN LETTER DENTAL CLICK*/ - 0x1c1, /* U+0001c1: LATIN LETTER LATERAL CLICK*/ - 0x1c2, /* U+0001c2: LATIN LETTER ALVEOLAR CLICK*/ - 0x1c3, /* U+0001c3: LATIN LETTER RETROFLEX CLICK*/ - 0x1c4, /* U+0001c4: LATIN CAPITAL LETTER DZ WITH CARON*/ - 0x1c4, /* U+0001c5: LATIN CAPITAL LETTER D WITH SMALL LETTER Z WITH CARON*/ - 0x1c4, /* U+0001c6: LATIN SMALL LETTER DZ WITH CARON*/ - 0x1c7, /* U+0001c7: LATIN CAPITAL LETTER LJ*/ - 0x1c7, /* U+0001c8: LATIN CAPITAL LETTER L WITH SMALL LETTER J*/ - 0x1c7, /* U+0001c9: LATIN SMALL LETTER LJ*/ - 0x1ca, /* U+0001ca: LATIN CAPITAL LETTER NJ*/ - 0x1ca, /* U+0001cb: LATIN CAPITAL LETTER N WITH SMALL LETTER J*/ - 0x1ca, /* U+0001cc: LATIN SMALL LETTER NJ*/ - 0x1cd, /* U+0001cd: LATIN CAPITAL LETTER A WITH CARON*/ - 0x1cd, /* U+0001ce: LATIN SMALL LETTER A WITH CARON*/ - 0x1cf, /* U+0001cf: LATIN CAPITAL LETTER I WITH CARON*/ - 0x1cf, /* U+0001d0: LATIN SMALL LETTER I WITH CARON*/ - 0x1d1, /* U+0001d1: LATIN CAPITAL LETTER O WITH CARON*/ - 0x1d1, /* U+0001d2: LATIN SMALL LETTER O WITH CARON*/ - 0x1d3, /* U+0001d3: LATIN CAPITAL LETTER U WITH CARON*/ - 0x1d3, /* U+0001d4: LATIN SMALL LETTER U WITH CARON*/ - 0x1d5, /* U+0001d5: LATIN CAPITAL LETTER U WITH DIAERESIS AND MACRON*/ - 0x1d5, /* U+0001d6: LATIN SMALL LETTER U WITH DIAERESIS AND MACRON*/ - 0x1d7, /* U+0001d7: LATIN CAPITAL LETTER U WITH DIAERESIS AND ACUTE*/ - 0x1d7, /* U+0001d8: LATIN SMALL LETTER U WITH DIAERESIS AND ACUTE*/ - 0x1d9, /* U+0001d9: LATIN CAPITAL LETTER U WITH DIAERESIS AND CARON*/ - 0x1d9, /* U+0001da: LATIN SMALL LETTER U WITH DIAERESIS AND CARON*/ - 0x1db, /* U+0001db: LATIN CAPITAL LETTER U WITH DIAERESIS AND GRAVE*/ - 0x1db, /* U+0001dc: LATIN SMALL LETTER U WITH DIAERESIS AND GRAVE*/ - 0x18e, /* U+0001dd: LATIN SMALL LETTER TURNED E*/ - 0x1de, /* U+0001de: LATIN CAPITAL LETTER A WITH DIAERESIS AND MACRON*/ - 0x1de, /* U+0001df: LATIN SMALL LETTER A WITH DIAERESIS AND MACRON*/ - 0x1e0, /* U+0001e0: LATIN CAPITAL LETTER A WITH DOT ABOVE AND MACRON*/ - 0x1e0, /* U+0001e1: LATIN SMALL LETTER A WITH DOT ABOVE AND MACRON*/ - 0x1e2, /* U+0001e2: LATIN CAPITAL LETTER AE WITH MACRON*/ - 0x1e2, /* U+0001e3: LATIN SMALL LETTER AE WITH MACRON*/ - 0x1e4, /* U+0001e4: LATIN CAPITAL LETTER G WITH STROKE*/ - 0x1e4, /* U+0001e5: LATIN SMALL LETTER G WITH STROKE*/ - 0x1e6, /* U+0001e6: LATIN CAPITAL LETTER G WITH CARON*/ - 0x1e6, /* U+0001e7: LATIN SMALL LETTER G WITH CARON*/ - 0x1e8, /* U+0001e8: LATIN CAPITAL LETTER K WITH CARON*/ - 0x1e8, /* U+0001e9: LATIN SMALL LETTER K WITH CARON*/ - 0x1ea, /* U+0001ea: LATIN CAPITAL LETTER O WITH OGONEK*/ - 0x1ea, /* U+0001eb: LATIN SMALL LETTER O WITH OGONEK*/ - 0x1ec, /* U+0001ec: LATIN CAPITAL LETTER O WITH OGONEK AND MACRON*/ - 0x1ec, /* U+0001ed: LATIN SMALL LETTER O WITH OGONEK AND MACRON*/ - 0x1ee, /* U+0001ee: LATIN CAPITAL LETTER EZH WITH CARON*/ - 0x1ee, /* U+0001ef: LATIN SMALL LETTER EZH WITH CARON*/ - 0x1f0, /* U+0001f0: LATIN SMALL LETTER J WITH CARON*/ - 0x1f1, /* U+0001f1: LATIN CAPITAL LETTER DZ*/ - 0x1f1, /* U+0001f2: LATIN CAPITAL LETTER D WITH SMALL LETTER Z*/ - 0x1f1, /* U+0001f3: LATIN SMALL LETTER DZ*/ - 0x1f4, /* U+0001f4: LATIN CAPITAL LETTER G WITH ACUTE*/ - 0x1f4, /* U+0001f5: LATIN SMALL LETTER G WITH ACUTE*/ - 0x1f6, /* U+0001f6: LATIN CAPITAL LETTER HWAIR*/ - 0x1f7, /* U+0001f7: LATIN CAPITAL LETTER WYNN*/ - 0x1f8, /* U+0001f8: LATIN CAPITAL LETTER N WITH GRAVE*/ - 0x1f8, /* U+0001f9: LATIN SMALL LETTER N WITH GRAVE*/ - 0x1fa, /* U+0001fa: LATIN CAPITAL LETTER A WITH RING ABOVE AND ACUTE*/ - 0x1fa, /* U+0001fb: LATIN SMALL LETTER A WITH RING ABOVE AND ACUTE*/ - 0x1fc, /* U+0001fc: LATIN CAPITAL LETTER AE WITH ACUTE*/ - 0x1fc, /* U+0001fd: LATIN SMALL LETTER AE WITH ACUTE*/ - 0x1fe, /* U+0001fe: LATIN CAPITAL LETTER O WITH STROKE AND ACUTE*/ - 0x1fe, /* U+0001ff: LATIN SMALL LETTER O WITH STROKE AND ACUTE*/ - 0x200, /* U+000200: LATIN CAPITAL LETTER A WITH DOUBLE GRAVE*/ - 0x200, /* U+000201: LATIN SMALL LETTER A WITH DOUBLE GRAVE*/ - 0x202, /* U+000202: LATIN CAPITAL LETTER A WITH INVERTED BREVE*/ - 0x202, /* U+000203: LATIN SMALL LETTER A WITH INVERTED BREVE*/ - 0x204, /* U+000204: LATIN CAPITAL LETTER E WITH DOUBLE GRAVE*/ - 0x204, /* U+000205: LATIN SMALL LETTER E WITH DOUBLE GRAVE*/ - 0x206, /* U+000206: LATIN CAPITAL LETTER E WITH INVERTED BREVE*/ - 0x206, /* U+000207: LATIN SMALL LETTER E WITH INVERTED BREVE*/ - 0x208, /* U+000208: LATIN CAPITAL LETTER I WITH DOUBLE GRAVE*/ - 0x208, /* U+000209: LATIN SMALL LETTER I WITH DOUBLE GRAVE*/ - 0x20a, /* U+00020a: LATIN CAPITAL LETTER I WITH INVERTED BREVE*/ - 0x20a, /* U+00020b: LATIN SMALL LETTER I WITH INVERTED BREVE*/ - 0x20c, /* U+00020c: LATIN CAPITAL LETTER O WITH DOUBLE GRAVE*/ - 0x20c, /* U+00020d: LATIN SMALL LETTER O WITH DOUBLE GRAVE*/ - 0x20e, /* U+00020e: LATIN CAPITAL LETTER O WITH INVERTED BREVE*/ - 0x20e, /* U+00020f: LATIN SMALL LETTER O WITH INVERTED BREVE*/ - 0x210, /* U+000210: LATIN CAPITAL LETTER R WITH DOUBLE GRAVE*/ - 0x210, /* U+000211: LATIN SMALL LETTER R WITH DOUBLE GRAVE*/ - 0x212, /* U+000212: LATIN CAPITAL LETTER R WITH INVERTED BREVE*/ - 0x212, /* U+000213: LATIN SMALL LETTER R WITH INVERTED BREVE*/ - 0x214, /* U+000214: LATIN CAPITAL LETTER U WITH DOUBLE GRAVE*/ - 0x214, /* U+000215: LATIN SMALL LETTER U WITH DOUBLE GRAVE*/ - 0x216, /* U+000216: LATIN CAPITAL LETTER U WITH INVERTED BREVE*/ - 0x216, /* U+000217: LATIN SMALL LETTER U WITH INVERTED BREVE*/ - 0x218, /* U+000218: LATIN CAPITAL LETTER S WITH COMMA BELOW*/ - 0x218, /* U+000219: LATIN SMALL LETTER S WITH COMMA BELOW*/ - 0x21a, /* U+00021a: LATIN CAPITAL LETTER T WITH COMMA BELOW*/ - 0x21a, /* U+00021b: LATIN SMALL LETTER T WITH COMMA BELOW*/ - 0x21c, /* U+00021c: LATIN CAPITAL LETTER YOGH*/ - 0x21c, /* U+00021d: LATIN SMALL LETTER YOGH*/ - 0x21e, /* U+00021e: LATIN CAPITAL LETTER H WITH CARON*/ - 0x21e, /* U+00021f: LATIN SMALL LETTER H WITH CARON*/ - 0x220, /* U+000220: LATIN CAPITAL LETTER N WITH LONG RIGHT LEG*/ - 0x221, /* U+000221: LATIN SMALL LETTER D WITH CURL*/ - 0x222, /* U+000222: LATIN CAPITAL LETTER OU*/ - 0x222, /* U+000223: LATIN SMALL LETTER OU*/ - 0x224, /* U+000224: LATIN CAPITAL LETTER Z WITH HOOK*/ - 0x224, /* U+000225: LATIN SMALL LETTER Z WITH HOOK*/ - 0x226, /* U+000226: LATIN CAPITAL LETTER A WITH DOT ABOVE*/ - 0x226, /* U+000227: LATIN SMALL LETTER A WITH DOT ABOVE*/ - 0x228, /* U+000228: LATIN CAPITAL LETTER E WITH CEDILLA*/ - 0x228, /* U+000229: LATIN SMALL LETTER E WITH CEDILLA*/ - 0x22a, /* U+00022a: LATIN CAPITAL LETTER O WITH DIAERESIS AND MACRON*/ - 0x22a, /* U+00022b: LATIN SMALL LETTER O WITH DIAERESIS AND MACRON*/ - 0x22c, /* U+00022c: LATIN CAPITAL LETTER O WITH TILDE AND MACRON*/ - 0x22c, /* U+00022d: LATIN SMALL LETTER O WITH TILDE AND MACRON*/ - 0x22e, /* U+00022e: LATIN CAPITAL LETTER O WITH DOT ABOVE*/ - 0x22e, /* U+00022f: LATIN SMALL LETTER O WITH DOT ABOVE*/ - 0x230, /* U+000230: LATIN CAPITAL LETTER O WITH DOT ABOVE AND MACRON*/ - 0x230, /* U+000231: LATIN SMALL LETTER O WITH DOT ABOVE AND MACRON*/ - 0x232, /* U+000232: LATIN CAPITAL LETTER Y WITH MACRON*/ - 0x232, /* U+000233: LATIN SMALL LETTER Y WITH MACRON*/ - 0x234, /* U+000234: LATIN SMALL LETTER L WITH CURL*/ - 0x235, /* U+000235: LATIN SMALL LETTER N WITH CURL*/ - 0x236, /* U+000236: LATIN SMALL LETTER T WITH CURL*/ - 0x237, /* U+000237: LATIN SMALL LETTER DOTLESS J*/ - 0x238, /* U+000238: LATIN SMALL LETTER DB DIGRAPH*/ - 0x239, /* U+000239: LATIN SMALL LETTER QP DIGRAPH*/ - 0x23a, /* U+00023a: LATIN CAPITAL LETTER A WITH STROKE*/ - 0x23b, /* U+00023b: LATIN CAPITAL LETTER C WITH STROKE*/ - 0x23b, /* U+00023c: LATIN SMALL LETTER C WITH STROKE*/ - 0x23d, /* U+00023d: LATIN CAPITAL LETTER L WITH BAR*/ - 0x23e, /* U+00023e: LATIN CAPITAL LETTER T WITH DIAGONAL STROKE*/ - 0x23f, /* U+00023f: LATIN SMALL LETTER S WITH SWASH TAIL*/ - 0x240, /* U+000240: LATIN SMALL LETTER Z WITH SWASH TAIL*/ - 0x241, /* U+000241: LATIN CAPITAL LETTER GLOTTAL STOP*/ - 0x242, /* U+000242: */ - 0x243, /* U+000243: */ - 0x244, /* U+000244: */ - 0x245, /* U+000245: */ - 0x246, /* U+000246: */ - 0x247, /* U+000247: */ - 0x248, /* U+000248: */ - 0x249, /* U+000249: */ - 0x24a, /* U+00024a: */ - 0x24b, /* U+00024b: */ - 0x24c, /* U+00024c: */ - 0x24d, /* U+00024d: */ - 0x24e, /* U+00024e: */ - 0x24f, /* U+00024f: */ - 0x250, /* U+000250: LATIN SMALL LETTER TURNED A*/ - 0x251, /* U+000251: LATIN SMALL LETTER ALPHA*/ - 0x252, /* U+000252: LATIN SMALL LETTER TURNED ALPHA*/ - 0x181, /* U+000253: LATIN SMALL LETTER B WITH HOOK*/ - 0x186, /* U+000254: LATIN SMALL LETTER OPEN O*/ - 0x255, /* U+000255: LATIN SMALL LETTER C WITH CURL*/ - 0x189, /* U+000256: LATIN SMALL LETTER D WITH TAIL*/ - 0x18a, /* U+000257: LATIN SMALL LETTER D WITH HOOK*/ - 0x258, /* U+000258: LATIN SMALL LETTER REVERSED E*/ - 0x18f, /* U+000259: LATIN SMALL LETTER SCHWA*/ - 0x25a, /* U+00025a: LATIN SMALL LETTER SCHWA WITH HOOK*/ - 0x190, /* U+00025b: LATIN SMALL LETTER OPEN E*/ - 0x25c, /* U+00025c: LATIN SMALL LETTER REVERSED OPEN E*/ - 0x25d, /* U+00025d: LATIN SMALL LETTER REVERSED OPEN E WITH HOOK*/ - 0x25e, /* U+00025e: LATIN SMALL LETTER CLOSED REVERSED OPEN E*/ - 0x25f, /* U+00025f: LATIN SMALL LETTER DOTLESS J WITH STROKE*/ - 0x193, /* U+000260: LATIN SMALL LETTER G WITH HOOK*/ - 0x261, /* U+000261: LATIN SMALL LETTER SCRIPT G*/ - 0x262, /* U+000262: LATIN LETTER SMALL CAPITAL G*/ - 0x194, /* U+000263: LATIN SMALL LETTER GAMMA*/ - 0x264, /* U+000264: LATIN SMALL LETTER RAMS HORN*/ - 0x265, /* U+000265: LATIN SMALL LETTER TURNED H*/ - 0x266, /* U+000266: LATIN SMALL LETTER H WITH HOOK*/ - 0x267, /* U+000267: LATIN SMALL LETTER HENG WITH HOOK*/ - 0x197, /* U+000268: LATIN SMALL LETTER I WITH STROKE*/ - 0x196, /* U+000269: LATIN SMALL LETTER IOTA*/ - 0x26a, /* U+00026a: LATIN LETTER SMALL CAPITAL I*/ - 0x26b, /* U+00026b: LATIN SMALL LETTER L WITH MIDDLE TILDE*/ - 0x26c, /* U+00026c: LATIN SMALL LETTER L WITH BELT*/ - 0x26d, /* U+00026d: LATIN SMALL LETTER L WITH RETROFLEX HOOK*/ - 0x26e, /* U+00026e: LATIN SMALL LETTER LEZH*/ - 0x19c, /* U+00026f: LATIN SMALL LETTER TURNED M*/ - 0x270, /* U+000270: LATIN SMALL LETTER TURNED M WITH LONG LEG*/ - 0x271, /* U+000271: LATIN SMALL LETTER M WITH HOOK*/ - 0x19d, /* U+000272: LATIN SMALL LETTER N WITH LEFT HOOK*/ - 0x273, /* U+000273: LATIN SMALL LETTER N WITH RETROFLEX HOOK*/ - 0x274, /* U+000274: LATIN LETTER SMALL CAPITAL N*/ - 0x19f, /* U+000275: LATIN SMALL LETTER BARRED O*/ - 0x276, /* U+000276: LATIN LETTER SMALL CAPITAL OE*/ - 0x277, /* U+000277: LATIN SMALL LETTER CLOSED OMEGA*/ - 0x278, /* U+000278: LATIN SMALL LETTER PHI*/ - 0x279, /* U+000279: LATIN SMALL LETTER TURNED R*/ - 0x27a, /* U+00027a: LATIN SMALL LETTER TURNED R WITH LONG LEG*/ - 0x27b, /* U+00027b: LATIN SMALL LETTER TURNED R WITH HOOK*/ - 0x27c, /* U+00027c: LATIN SMALL LETTER R WITH LONG LEG*/ - 0x27d, /* U+00027d: LATIN SMALL LETTER R WITH TAIL*/ - 0x27e, /* U+00027e: LATIN SMALL LETTER R WITH FISHHOOK*/ - 0x27f, /* U+00027f: LATIN SMALL LETTER REVERSED R WITH FISHHOOK*/ - 0x1a6, /* U+000280: LATIN LETTER SMALL CAPITAL R*/ - 0x281, /* U+000281: LATIN LETTER SMALL CAPITAL INVERTED R*/ - 0x282, /* U+000282: LATIN SMALL LETTER S WITH HOOK*/ - 0x1a9, /* U+000283: LATIN SMALL LETTER ESH*/ - 0x284, /* U+000284: LATIN SMALL LETTER DOTLESS J WITH STROKE AND HOOK*/ - 0x285, /* U+000285: LATIN SMALL LETTER SQUAT REVERSED ESH*/ - 0x286, /* U+000286: LATIN SMALL LETTER ESH WITH CURL*/ - 0x287, /* U+000287: LATIN SMALL LETTER TURNED T*/ - 0x1ae, /* U+000288: LATIN SMALL LETTER T WITH RETROFLEX HOOK*/ - 0x289, /* U+000289: LATIN SMALL LETTER U BAR*/ - 0x1b1, /* U+00028a: LATIN SMALL LETTER UPSILON*/ - 0x1b2, /* U+00028b: LATIN SMALL LETTER V WITH HOOK*/ - 0x28c, /* U+00028c: LATIN SMALL LETTER TURNED V*/ - 0x28d, /* U+00028d: LATIN SMALL LETTER TURNED W*/ - 0x28e, /* U+00028e: LATIN SMALL LETTER TURNED Y*/ - 0x28f, /* U+00028f: LATIN LETTER SMALL CAPITAL Y*/ - 0x290, /* U+000290: LATIN SMALL LETTER Z WITH RETROFLEX HOOK*/ - 0x291, /* U+000291: LATIN SMALL LETTER Z WITH CURL*/ - 0x1b7, /* U+000292: LATIN SMALL LETTER EZH*/ - 0x293, /* U+000293: LATIN SMALL LETTER EZH WITH CURL*/ - 0x241, /* U+000294: LATIN LETTER GLOTTAL STOP*/ - 0x295, /* U+000295: LATIN LETTER PHARYNGEAL VOICED FRICATIVE*/ - 0x296, /* U+000296: LATIN LETTER INVERTED GLOTTAL STOP*/ - 0x297, /* U+000297: LATIN LETTER STRETCHED C*/ - 0x298, /* U+000298: LATIN LETTER BILABIAL CLICK*/ - 0x299, /* U+000299: LATIN LETTER SMALL CAPITAL B*/ - 0x29a, /* U+00029a: LATIN SMALL LETTER CLOSED OPEN E*/ - 0x29b, /* U+00029b: LATIN LETTER SMALL CAPITAL G WITH HOOK*/ - 0x29c, /* U+00029c: LATIN LETTER SMALL CAPITAL H*/ - 0x29d, /* U+00029d: LATIN SMALL LETTER J WITH CROSSED-TAIL*/ - 0x29e, /* U+00029e: LATIN SMALL LETTER TURNED K*/ - 0x29f, /* U+00029f: LATIN LETTER SMALL CAPITAL L*/ - 0x2a0, /* U+0002a0: LATIN SMALL LETTER Q WITH HOOK*/ - 0x2a1, /* U+0002a1: LATIN LETTER GLOTTAL STOP WITH STROKE*/ - 0x2a2, /* U+0002a2: LATIN LETTER REVERSED GLOTTAL STOP WITH STROKE*/ - 0x2a3, /* U+0002a3: LATIN SMALL LETTER DZ DIGRAPH*/ - 0x2a4, /* U+0002a4: LATIN SMALL LETTER DEZH DIGRAPH*/ - 0x2a5, /* U+0002a5: LATIN SMALL LETTER DZ DIGRAPH WITH CURL*/ - 0x2a6, /* U+0002a6: LATIN SMALL LETTER TS DIGRAPH*/ - 0x2a7, /* U+0002a7: LATIN SMALL LETTER TESH DIGRAPH*/ - 0x2a8, /* U+0002a8: LATIN SMALL LETTER TC DIGRAPH WITH CURL*/ - 0x2a9, /* U+0002a9: LATIN SMALL LETTER FENG DIGRAPH*/ - 0x2aa, /* U+0002aa: LATIN SMALL LETTER LS DIGRAPH*/ - 0x2ab, /* U+0002ab: LATIN SMALL LETTER LZ DIGRAPH*/ - 0x2ac, /* U+0002ac: LATIN LETTER BILABIAL PERCUSSIVE*/ - 0x2ad, /* U+0002ad: LATIN LETTER BIDENTAL PERCUSSIVE*/ - 0x2ae, /* U+0002ae: LATIN SMALL LETTER TURNED H WITH FISHHOOK*/ - 0x2af, /* U+0002af: LATIN SMALL LETTER TURNED H WITH FISHHOOK AND TAIL*/ - 0x2b0, /* U+0002b0: MODIFIER LETTER SMALL H*/ - 0x2b1, /* U+0002b1: MODIFIER LETTER SMALL H WITH HOOK*/ - 0x2b2, /* U+0002b2: MODIFIER LETTER SMALL J*/ - 0x2b3, /* U+0002b3: MODIFIER LETTER SMALL R*/ - 0x2b4, /* U+0002b4: MODIFIER LETTER SMALL TURNED R*/ - 0x2b5, /* U+0002b5: MODIFIER LETTER SMALL TURNED R WITH HOOK*/ - 0x2b6, /* U+0002b6: MODIFIER LETTER SMALL CAPITAL INVERTED R*/ - 0x2b7, /* U+0002b7: MODIFIER LETTER SMALL W*/ - 0x2b8, /* U+0002b8: MODIFIER LETTER SMALL Y*/ - 0x2b9, /* U+0002b9: MODIFIER LETTER PRIME*/ - 0x2ba, /* U+0002ba: MODIFIER LETTER DOUBLE PRIME*/ - 0x2bb, /* U+0002bb: MODIFIER LETTER TURNED COMMA*/ - 0x2bc, /* U+0002bc: MODIFIER LETTER APOSTROPHE*/ - 0x2bd, /* U+0002bd: MODIFIER LETTER REVERSED COMMA*/ - 0x2be, /* U+0002be: MODIFIER LETTER RIGHT HALF RING*/ - 0x2bf, /* U+0002bf: MODIFIER LETTER LEFT HALF RING*/ - 0x2c0, /* U+0002c0: MODIFIER LETTER GLOTTAL STOP*/ - 0x2c1, /* U+0002c1: MODIFIER LETTER REVERSED GLOTTAL STOP*/ - 0x2c2, /* U+0002c2: MODIFIER LETTER LEFT ARROWHEAD*/ - 0x2c3, /* U+0002c3: MODIFIER LETTER RIGHT ARROWHEAD*/ - 0x2c4, /* U+0002c4: MODIFIER LETTER UP ARROWHEAD*/ - 0x2c5, /* U+0002c5: MODIFIER LETTER DOWN ARROWHEAD*/ - 0x2c6, /* U+0002c6: MODIFIER LETTER CIRCUMFLEX ACCENT*/ - 0x2c7, /* U+0002c7: CARON*/ - 0x2c8, /* U+0002c8: MODIFIER LETTER VERTICAL LINE*/ - 0x2c9, /* U+0002c9: MODIFIER LETTER MACRON*/ - 0x2ca, /* U+0002ca: MODIFIER LETTER ACUTE ACCENT*/ - 0x2cb, /* U+0002cb: MODIFIER LETTER GRAVE ACCENT*/ - 0x2cc, /* U+0002cc: MODIFIER LETTER LOW VERTICAL LINE*/ - 0x2cd, /* U+0002cd: MODIFIER LETTER LOW MACRON*/ - 0x2ce, /* U+0002ce: MODIFIER LETTER LOW GRAVE ACCENT*/ - 0x2cf, /* U+0002cf: MODIFIER LETTER LOW ACUTE ACCENT*/ - 0x2d0, /* U+0002d0: MODIFIER LETTER TRIANGULAR COLON*/ - 0x2d1, /* U+0002d1: MODIFIER LETTER HALF TRIANGULAR COLON*/ - 0x2d2, /* U+0002d2: MODIFIER LETTER CENTRED RIGHT HALF RING*/ - 0x2d3, /* U+0002d3: MODIFIER LETTER CENTRED LEFT HALF RING*/ - 0x2d4, /* U+0002d4: MODIFIER LETTER UP TACK*/ - 0x2d5, /* U+0002d5: MODIFIER LETTER DOWN TACK*/ - 0x2d6, /* U+0002d6: MODIFIER LETTER PLUS SIGN*/ - 0x2d7, /* U+0002d7: MODIFIER LETTER MINUS SIGN*/ - 0x2d8, /* U+0002d8: BREVE*/ - 0x2d9, /* U+0002d9: DOT ABOVE*/ - 0x2da, /* U+0002da: RING ABOVE*/ - 0x2db, /* U+0002db: OGONEK*/ - 0x2dc, /* U+0002dc: SMALL TILDE*/ - 0x2dd, /* U+0002dd: DOUBLE ACUTE ACCENT*/ - 0x2de, /* U+0002de: MODIFIER LETTER RHOTIC HOOK*/ - 0x2df, /* U+0002df: MODIFIER LETTER CROSS ACCENT*/ - 0x2e0, /* U+0002e0: MODIFIER LETTER SMALL GAMMA*/ - 0x2e1, /* U+0002e1: MODIFIER LETTER SMALL L*/ - 0x2e2, /* U+0002e2: MODIFIER LETTER SMALL S*/ - 0x2e3, /* U+0002e3: MODIFIER LETTER SMALL X*/ - 0x2e4, /* U+0002e4: MODIFIER LETTER SMALL REVERSED GLOTTAL STOP*/ - 0x2e5, /* U+0002e5: MODIFIER LETTER EXTRA-HIGH TONE BAR*/ - 0x2e6, /* U+0002e6: MODIFIER LETTER HIGH TONE BAR*/ - 0x2e7, /* U+0002e7: MODIFIER LETTER MID TONE BAR*/ - 0x2e8, /* U+0002e8: MODIFIER LETTER LOW TONE BAR*/ - 0x2e9, /* U+0002e9: MODIFIER LETTER EXTRA-LOW TONE BAR*/ - 0x2ea, /* U+0002ea: MODIFIER LETTER YIN DEPARTING TONE MARK*/ - 0x2eb, /* U+0002eb: MODIFIER LETTER YANG DEPARTING TONE MARK*/ - 0x2ec, /* U+0002ec: MODIFIER LETTER VOICING*/ - 0x2ed, /* U+0002ed: MODIFIER LETTER UNASPIRATED*/ - 0x2ee, /* U+0002ee: MODIFIER LETTER DOUBLE APOSTROPHE*/ - 0x2ef, /* U+0002ef: MODIFIER LETTER LOW DOWN ARROWHEAD*/ - 0x2f0, /* U+0002f0: MODIFIER LETTER LOW UP ARROWHEAD*/ - 0x2f1, /* U+0002f1: MODIFIER LETTER LOW LEFT ARROWHEAD*/ - 0x2f2, /* U+0002f2: MODIFIER LETTER LOW RIGHT ARROWHEAD*/ - 0x2f3, /* U+0002f3: MODIFIER LETTER LOW RING*/ - 0x2f4, /* U+0002f4: MODIFIER LETTER MIDDLE GRAVE ACCENT*/ - 0x2f5, /* U+0002f5: MODIFIER LETTER MIDDLE DOUBLE GRAVE ACCENT*/ - 0x2f6, /* U+0002f6: MODIFIER LETTER MIDDLE DOUBLE ACUTE ACCENT*/ - 0x2f7, /* U+0002f7: MODIFIER LETTER LOW TILDE*/ - 0x2f8, /* U+0002f8: MODIFIER LETTER RAISED COLON*/ - 0x2f9, /* U+0002f9: MODIFIER LETTER BEGIN HIGH TONE*/ - 0x2fa, /* U+0002fa: MODIFIER LETTER END HIGH TONE*/ - 0x2fb, /* U+0002fb: MODIFIER LETTER BEGIN LOW TONE*/ - 0x2fc, /* U+0002fc: MODIFIER LETTER END LOW TONE*/ - 0x2fd, /* U+0002fd: MODIFIER LETTER SHELF*/ - 0x2fe, /* U+0002fe: MODIFIER LETTER OPEN SHELF*/ - 0x2ff, /* U+0002ff: MODIFIER LETTER LOW LEFT ARROW*/ - 0x300, /* U+000300: COMBINING GRAVE ACCENT*/ - 0x301, /* U+000301: COMBINING ACUTE ACCENT*/ - 0x302, /* U+000302: COMBINING CIRCUMFLEX ACCENT*/ - 0x303, /* U+000303: COMBINING TILDE*/ - 0x304, /* U+000304: COMBINING MACRON*/ - 0x305, /* U+000305: COMBINING OVERLINE*/ - 0x306, /* U+000306: COMBINING BREVE*/ - 0x307, /* U+000307: COMBINING DOT ABOVE*/ - 0x308, /* U+000308: COMBINING DIAERESIS*/ - 0x309, /* U+000309: COMBINING HOOK ABOVE*/ - 0x30a, /* U+00030a: COMBINING RING ABOVE*/ - 0x30b, /* U+00030b: COMBINING DOUBLE ACUTE ACCENT*/ - 0x30c, /* U+00030c: COMBINING CARON*/ - 0x30d, /* U+00030d: COMBINING VERTICAL LINE ABOVE*/ - 0x30e, /* U+00030e: COMBINING DOUBLE VERTICAL LINE ABOVE*/ - 0x30f, /* U+00030f: COMBINING DOUBLE GRAVE ACCENT*/ - 0x310, /* U+000310: COMBINING CANDRABINDU*/ - 0x311, /* U+000311: COMBINING INVERTED BREVE*/ - 0x312, /* U+000312: COMBINING TURNED COMMA ABOVE*/ - 0x313, /* U+000313: COMBINING COMMA ABOVE*/ - 0x314, /* U+000314: COMBINING REVERSED COMMA ABOVE*/ - 0x315, /* U+000315: COMBINING COMMA ABOVE RIGHT*/ - 0x316, /* U+000316: COMBINING GRAVE ACCENT BELOW*/ - 0x317, /* U+000317: COMBINING ACUTE ACCENT BELOW*/ - 0x318, /* U+000318: COMBINING LEFT TACK BELOW*/ - 0x319, /* U+000319: COMBINING RIGHT TACK BELOW*/ - 0x31a, /* U+00031a: COMBINING LEFT ANGLE ABOVE*/ - 0x31b, /* U+00031b: COMBINING HORN*/ - 0x31c, /* U+00031c: COMBINING LEFT HALF RING BELOW*/ - 0x31d, /* U+00031d: COMBINING UP TACK BELOW*/ - 0x31e, /* U+00031e: COMBINING DOWN TACK BELOW*/ - 0x31f, /* U+00031f: COMBINING PLUS SIGN BELOW*/ - 0x320, /* U+000320: COMBINING MINUS SIGN BELOW*/ - 0x321, /* U+000321: COMBINING PALATALIZED HOOK BELOW*/ - 0x322, /* U+000322: COMBINING RETROFLEX HOOK BELOW*/ - 0x323, /* U+000323: COMBINING DOT BELOW*/ - 0x324, /* U+000324: COMBINING DIAERESIS BELOW*/ - 0x325, /* U+000325: COMBINING RING BELOW*/ - 0x326, /* U+000326: COMBINING COMMA BELOW*/ - 0x327, /* U+000327: COMBINING CEDILLA*/ - 0x328, /* U+000328: COMBINING OGONEK*/ - 0x329, /* U+000329: COMBINING VERTICAL LINE BELOW*/ - 0x32a, /* U+00032a: COMBINING BRIDGE BELOW*/ - 0x32b, /* U+00032b: COMBINING INVERTED DOUBLE ARCH BELOW*/ - 0x32c, /* U+00032c: COMBINING CARON BELOW*/ - 0x32d, /* U+00032d: COMBINING CIRCUMFLEX ACCENT BELOW*/ - 0x32e, /* U+00032e: COMBINING BREVE BELOW*/ - 0x32f, /* U+00032f: COMBINING INVERTED BREVE BELOW*/ - 0x330, /* U+000330: COMBINING TILDE BELOW*/ - 0x331, /* U+000331: COMBINING MACRON BELOW*/ - 0x332, /* U+000332: COMBINING LOW LINE*/ - 0x333, /* U+000333: COMBINING DOUBLE LOW LINE*/ - 0x334, /* U+000334: COMBINING TILDE OVERLAY*/ - 0x335, /* U+000335: COMBINING SHORT STROKE OVERLAY*/ - 0x336, /* U+000336: COMBINING LONG STROKE OVERLAY*/ - 0x337, /* U+000337: COMBINING SHORT SOLIDUS OVERLAY*/ - 0x338, /* U+000338: COMBINING LONG SOLIDUS OVERLAY*/ - 0x339, /* U+000339: COMBINING RIGHT HALF RING BELOW*/ - 0x33a, /* U+00033a: COMBINING INVERTED BRIDGE BELOW*/ - 0x33b, /* U+00033b: COMBINING SQUARE BELOW*/ - 0x33c, /* U+00033c: COMBINING SEAGULL BELOW*/ - 0x33d, /* U+00033d: COMBINING X ABOVE*/ - 0x33e, /* U+00033e: COMBINING VERTICAL TILDE*/ - 0x33f, /* U+00033f: COMBINING DOUBLE OVERLINE*/ - 0x340, /* U+000340: COMBINING GRAVE TONE MARK*/ - 0x341, /* U+000341: COMBINING ACUTE TONE MARK*/ - 0x342, /* U+000342: COMBINING GREEK PERISPOMENI*/ - 0x343, /* U+000343: COMBINING GREEK KORONIS*/ - 0x344, /* U+000344: COMBINING GREEK DIALYTIKA TONOS*/ - 0x399, /* U+000345: COMBINING GREEK YPOGEGRAMMENI*/ - 0x346, /* U+000346: COMBINING BRIDGE ABOVE*/ - 0x347, /* U+000347: COMBINING EQUALS SIGN BELOW*/ - 0x348, /* U+000348: COMBINING DOUBLE VERTICAL LINE BELOW*/ - 0x349, /* U+000349: COMBINING LEFT ANGLE BELOW*/ - 0x34a, /* U+00034a: COMBINING NOT TILDE ABOVE*/ - 0x34b, /* U+00034b: COMBINING HOMOTHETIC ABOVE*/ - 0x34c, /* U+00034c: COMBINING ALMOST EQUAL TO ABOVE*/ - 0x34d, /* U+00034d: COMBINING LEFT RIGHT ARROW BELOW*/ - 0x34e, /* U+00034e: COMBINING UPWARDS ARROW BELOW*/ - 0x34f, /* U+00034f: COMBINING GRAPHEME JOINER*/ - 0x350, /* U+000350: COMBINING RIGHT ARROWHEAD ABOVE*/ - 0x351, /* U+000351: COMBINING LEFT HALF RING ABOVE*/ - 0x352, /* U+000352: COMBINING FERMATA*/ - 0x353, /* U+000353: COMBINING X BELOW*/ - 0x354, /* U+000354: COMBINING LEFT ARROWHEAD BELOW*/ - 0x355, /* U+000355: COMBINING RIGHT ARROWHEAD BELOW*/ - 0x356, /* U+000356: COMBINING RIGHT ARROWHEAD AND UP ARROWHEAD BELOW*/ - 0x357, /* U+000357: COMBINING RIGHT HALF RING ABOVE*/ - 0x358, /* U+000358: COMBINING DOT ABOVE RIGHT*/ - 0x359, /* U+000359: COMBINING ASTERISK BELOW*/ - 0x35a, /* U+00035a: COMBINING DOUBLE RING BELOW*/ - 0x35b, /* U+00035b: COMBINING ZIGZAG ABOVE*/ - 0x35c, /* U+00035c: COMBINING DOUBLE BREVE BELOW*/ - 0x35d, /* U+00035d: COMBINING DOUBLE BREVE*/ - 0x35e, /* U+00035e: COMBINING DOUBLE MACRON*/ - 0x35f, /* U+00035f: COMBINING DOUBLE MACRON BELOW*/ - 0x360, /* U+000360: COMBINING DOUBLE TILDE*/ - 0x361, /* U+000361: COMBINING DOUBLE INVERTED BREVE*/ - 0x362, /* U+000362: COMBINING DOUBLE RIGHTWARDS ARROW BELOW*/ - 0x363, /* U+000363: COMBINING LATIN SMALL LETTER A*/ - 0x364, /* U+000364: COMBINING LATIN SMALL LETTER E*/ - 0x365, /* U+000365: COMBINING LATIN SMALL LETTER I*/ - 0x366, /* U+000366: COMBINING LATIN SMALL LETTER O*/ - 0x367, /* U+000367: COMBINING LATIN SMALL LETTER U*/ - 0x368, /* U+000368: COMBINING LATIN SMALL LETTER C*/ - 0x369, /* U+000369: COMBINING LATIN SMALL LETTER D*/ - 0x36a, /* U+00036a: COMBINING LATIN SMALL LETTER H*/ - 0x36b, /* U+00036b: COMBINING LATIN SMALL LETTER M*/ - 0x36c, /* U+00036c: COMBINING LATIN SMALL LETTER R*/ - 0x36d, /* U+00036d: COMBINING LATIN SMALL LETTER T*/ - 0x36e, /* U+00036e: COMBINING LATIN SMALL LETTER V*/ - 0x36f, /* U+00036f: COMBINING LATIN SMALL LETTER X*/ - 0x370, /* U+000370: */ - 0x371, /* U+000371: */ - 0x372, /* U+000372: */ - 0x373, /* U+000373: */ - 0x374, /* U+000374: GREEK NUMERAL SIGN*/ - 0x375, /* U+000375: GREEK LOWER NUMERAL SIGN*/ - 0x376, /* U+000376: */ - 0x377, /* U+000377: */ - 0x378, /* U+000378: */ - 0x379, /* U+000379: */ - 0x37a, /* U+00037a: GREEK YPOGEGRAMMENI*/ - 0x37b, /* U+00037b: */ - 0x37c, /* U+00037c: */ - 0x37d, /* U+00037d: */ - 0x37e, /* U+00037e: GREEK QUESTION MARK*/ - 0x37f, /* U+00037f: */ - 0x380, /* U+000380: */ - 0x381, /* U+000381: */ - 0x382, /* U+000382: */ - 0x383, /* U+000383: */ - 0x384, /* U+000384: GREEK TONOS*/ - 0x385, /* U+000385: GREEK DIALYTIKA TONOS*/ - 0x386, /* U+000386: GREEK CAPITAL LETTER ALPHA WITH TONOS*/ - 0x387, /* U+000387: GREEK ANO TELEIA*/ - 0x388, /* U+000388: GREEK CAPITAL LETTER EPSILON WITH TONOS*/ - 0x389, /* U+000389: GREEK CAPITAL LETTER ETA WITH TONOS*/ - 0x38a, /* U+00038a: GREEK CAPITAL LETTER IOTA WITH TONOS*/ - 0x38b, /* U+00038b: */ - 0x38c, /* U+00038c: GREEK CAPITAL LETTER OMICRON WITH TONOS*/ - 0x38d, /* U+00038d: */ - 0x38e, /* U+00038e: GREEK CAPITAL LETTER UPSILON WITH TONOS*/ - 0x38f, /* U+00038f: GREEK CAPITAL LETTER OMEGA WITH TONOS*/ - 0x390, /* U+000390: GREEK SMALL LETTER IOTA WITH DIALYTIKA AND TONOS*/ - 0x391, /* U+000391: GREEK CAPITAL LETTER ALPHA*/ - 0x392, /* U+000392: GREEK CAPITAL LETTER BETA*/ - 0x393, /* U+000393: GREEK CAPITAL LETTER GAMMA*/ - 0x394, /* U+000394: GREEK CAPITAL LETTER DELTA*/ - 0x395, /* U+000395: GREEK CAPITAL LETTER EPSILON*/ - 0x396, /* U+000396: GREEK CAPITAL LETTER ZETA*/ - 0x397, /* U+000397: GREEK CAPITAL LETTER ETA*/ - 0x398, /* U+000398: GREEK CAPITAL LETTER THETA*/ - 0x399, /* U+000399: GREEK CAPITAL LETTER IOTA*/ - 0x39a, /* U+00039a: GREEK CAPITAL LETTER KAPPA*/ - 0x39b, /* U+00039b: GREEK CAPITAL LETTER LAMDA*/ - 0x39c, /* U+00039c: GREEK CAPITAL LETTER MU*/ - 0x39d, /* U+00039d: GREEK CAPITAL LETTER NU*/ - 0x39e, /* U+00039e: GREEK CAPITAL LETTER XI*/ - 0x39f, /* U+00039f: GREEK CAPITAL LETTER OMICRON*/ - 0x3a0, /* U+0003a0: GREEK CAPITAL LETTER PI*/ - 0x3a1, /* U+0003a1: GREEK CAPITAL LETTER RHO*/ - 0x3a2, /* U+0003a2: */ - 0x3a3, /* U+0003a3: GREEK CAPITAL LETTER SIGMA*/ - 0x3a4, /* U+0003a4: GREEK CAPITAL LETTER TAU*/ - 0x3a5, /* U+0003a5: GREEK CAPITAL LETTER UPSILON*/ - 0x3a6, /* U+0003a6: GREEK CAPITAL LETTER PHI*/ - 0x3a7, /* U+0003a7: GREEK CAPITAL LETTER CHI*/ - 0x3a8, /* U+0003a8: GREEK CAPITAL LETTER PSI*/ - 0x3a9, /* U+0003a9: GREEK CAPITAL LETTER OMEGA*/ - 0x3aa, /* U+0003aa: GREEK CAPITAL LETTER IOTA WITH DIALYTIKA*/ - 0x3ab, /* U+0003ab: GREEK CAPITAL LETTER UPSILON WITH DIALYTIKA*/ - 0x386, /* U+0003ac: GREEK SMALL LETTER ALPHA WITH TONOS*/ - 0x388, /* U+0003ad: GREEK SMALL LETTER EPSILON WITH TONOS*/ - 0x389, /* U+0003ae: GREEK SMALL LETTER ETA WITH TONOS*/ - 0x38a, /* U+0003af: GREEK SMALL LETTER IOTA WITH TONOS*/ - 0x3b0, /* U+0003b0: GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND TONOS*/ - 0x391, /* U+0003b1: GREEK SMALL LETTER ALPHA*/ - 0x392, /* U+0003b2: GREEK SMALL LETTER BETA*/ - 0x393, /* U+0003b3: GREEK SMALL LETTER GAMMA*/ - 0x394, /* U+0003b4: GREEK SMALL LETTER DELTA*/ - 0x395, /* U+0003b5: GREEK SMALL LETTER EPSILON*/ - 0x396, /* U+0003b6: GREEK SMALL LETTER ZETA*/ - 0x397, /* U+0003b7: GREEK SMALL LETTER ETA*/ - 0x398, /* U+0003b8: GREEK SMALL LETTER THETA*/ - 0x399, /* U+0003b9: GREEK SMALL LETTER IOTA*/ - 0x39a, /* U+0003ba: GREEK SMALL LETTER KAPPA*/ - 0x39b, /* U+0003bb: GREEK SMALL LETTER LAMDA*/ - 0x39c, /* U+0003bc: GREEK SMALL LETTER MU*/ - 0x39d, /* U+0003bd: GREEK SMALL LETTER NU*/ - 0x39e, /* U+0003be: GREEK SMALL LETTER XI*/ - 0x39f, /* U+0003bf: GREEK SMALL LETTER OMICRON*/ - 0x3a0, /* U+0003c0: GREEK SMALL LETTER PI*/ - 0x3a1, /* U+0003c1: GREEK SMALL LETTER RHO*/ - 0x3a3, /* U+0003c2: GREEK SMALL LETTER FINAL SIGMA*/ - 0x3a3, /* U+0003c3: GREEK SMALL LETTER SIGMA*/ - 0x3a4, /* U+0003c4: GREEK SMALL LETTER TAU*/ - 0x3a5, /* U+0003c5: GREEK SMALL LETTER UPSILON*/ - 0x3a6, /* U+0003c6: GREEK SMALL LETTER PHI*/ - 0x3a7, /* U+0003c7: GREEK SMALL LETTER CHI*/ - 0x3a8, /* U+0003c8: GREEK SMALL LETTER PSI*/ - 0x3a9, /* U+0003c9: GREEK SMALL LETTER OMEGA*/ - 0x3aa, /* U+0003ca: GREEK SMALL LETTER IOTA WITH DIALYTIKA*/ - 0x3ab, /* U+0003cb: GREEK SMALL LETTER UPSILON WITH DIALYTIKA*/ - 0x38c, /* U+0003cc: GREEK SMALL LETTER OMICRON WITH TONOS*/ - 0x38e, /* U+0003cd: GREEK SMALL LETTER UPSILON WITH TONOS*/ - 0x38f, /* U+0003ce: GREEK SMALL LETTER OMEGA WITH TONOS*/ - 0x3cf, /* U+0003cf: */ - 0x392, /* U+0003d0: GREEK BETA SYMBOL*/ - 0x398, /* U+0003d1: GREEK THETA SYMBOL*/ - 0x3d2, /* U+0003d2: GREEK UPSILON WITH HOOK SYMBOL*/ - 0x3d3, /* U+0003d3: GREEK UPSILON WITH ACUTE AND HOOK SYMBOL*/ - 0x3d4, /* U+0003d4: GREEK UPSILON WITH DIAERESIS AND HOOK SYMBOL*/ - 0x3a6, /* U+0003d5: GREEK PHI SYMBOL*/ - 0x3a0, /* U+0003d6: GREEK PI SYMBOL*/ - 0x3d7, /* U+0003d7: GREEK KAI SYMBOL*/ - 0x3d8, /* U+0003d8: GREEK LETTER ARCHAIC KOPPA*/ - 0x3d8, /* U+0003d9: GREEK SMALL LETTER ARCHAIC KOPPA*/ - 0x3da, /* U+0003da: GREEK LETTER STIGMA*/ - 0x3da, /* U+0003db: GREEK SMALL LETTER STIGMA*/ - 0x3dc, /* U+0003dc: GREEK LETTER DIGAMMA*/ - 0x3dc, /* U+0003dd: GREEK SMALL LETTER DIGAMMA*/ - 0x3de, /* U+0003de: GREEK LETTER KOPPA*/ - 0x3de, /* U+0003df: GREEK SMALL LETTER KOPPA*/ - 0x3e0, /* U+0003e0: GREEK LETTER SAMPI*/ - 0x3e0, /* U+0003e1: GREEK SMALL LETTER SAMPI*/ - 0x3e2, /* U+0003e2: COPTIC CAPITAL LETTER SHEI*/ - 0x3e2, /* U+0003e3: COPTIC SMALL LETTER SHEI*/ - 0x3e4, /* U+0003e4: COPTIC CAPITAL LETTER FEI*/ - 0x3e4, /* U+0003e5: COPTIC SMALL LETTER FEI*/ - 0x3e6, /* U+0003e6: COPTIC CAPITAL LETTER KHEI*/ - 0x3e6, /* U+0003e7: COPTIC SMALL LETTER KHEI*/ - 0x3e8, /* U+0003e8: COPTIC CAPITAL LETTER HORI*/ - 0x3e8, /* U+0003e9: COPTIC SMALL LETTER HORI*/ - 0x3ea, /* U+0003ea: COPTIC CAPITAL LETTER GANGIA*/ - 0x3ea, /* U+0003eb: COPTIC SMALL LETTER GANGIA*/ - 0x3ec, /* U+0003ec: COPTIC CAPITAL LETTER SHIMA*/ - 0x3ec, /* U+0003ed: COPTIC SMALL LETTER SHIMA*/ - 0x3ee, /* U+0003ee: COPTIC CAPITAL LETTER DEI*/ - 0x3ee, /* U+0003ef: COPTIC SMALL LETTER DEI*/ - 0x39a, /* U+0003f0: GREEK KAPPA SYMBOL*/ - 0x3a1, /* U+0003f1: GREEK RHO SYMBOL*/ - 0x3f9, /* U+0003f2: GREEK LUNATE SIGMA SYMBOL*/ - 0x3f3, /* U+0003f3: GREEK LETTER YOT*/ - 0x3f4, /* U+0003f4: GREEK CAPITAL THETA SYMBOL*/ - 0x395, /* U+0003f5: GREEK LUNATE EPSILON SYMBOL*/ - 0x3f6, /* U+0003f6: GREEK REVERSED LUNATE EPSILON SYMBOL*/ - 0x3f7, /* U+0003f7: GREEK CAPITAL LETTER SHO*/ - 0x3f7, /* U+0003f8: GREEK SMALL LETTER SHO*/ - 0x3f9, /* U+0003f9: GREEK CAPITAL LUNATE SIGMA SYMBOL*/ - 0x3fa, /* U+0003fa: GREEK CAPITAL LETTER SAN*/ - 0x3fa, /* U+0003fb: GREEK SMALL LETTER SAN*/ - 0x3fc, /* U+0003fc: GREEK RHO WITH STROKE SYMBOL*/ - 0x3fd, /* U+0003fd: GREEK CAPITAL REVERSED LUNATE SIGMA SYMBOL*/ - 0x3fe, /* U+0003fe: GREEK CAPITAL DOTTED LUNATE SIGMA SYMBOL*/ - 0x3ff, /* U+0003ff: GREEK CAPITAL REVERSED DOTTED LUNATE SIGMA SYMBOL*/ - 0x400, /* U+000400: CYRILLIC CAPITAL LETTER IE WITH GRAVE*/ - 0x401, /* U+000401: CYRILLIC CAPITAL LETTER IO*/ - 0x402, /* U+000402: CYRILLIC CAPITAL LETTER DJE*/ - 0x403, /* U+000403: CYRILLIC CAPITAL LETTER GJE*/ - 0x404, /* U+000404: CYRILLIC CAPITAL LETTER UKRAINIAN IE*/ - 0x405, /* U+000405: CYRILLIC CAPITAL LETTER DZE*/ - 0x406, /* U+000406: CYRILLIC CAPITAL LETTER BYELORUSSIAN-UKRAINIAN I*/ - 0x407, /* U+000407: CYRILLIC CAPITAL LETTER YI*/ - 0x408, /* U+000408: CYRILLIC CAPITAL LETTER JE*/ - 0x409, /* U+000409: CYRILLIC CAPITAL LETTER LJE*/ - 0x40a, /* U+00040a: CYRILLIC CAPITAL LETTER NJE*/ - 0x40b, /* U+00040b: CYRILLIC CAPITAL LETTER TSHE*/ - 0x40c, /* U+00040c: CYRILLIC CAPITAL LETTER KJE*/ - 0x40d, /* U+00040d: CYRILLIC CAPITAL LETTER I WITH GRAVE*/ - 0x40e, /* U+00040e: CYRILLIC CAPITAL LETTER SHORT U*/ - 0x40f, /* U+00040f: CYRILLIC CAPITAL LETTER DZHE*/ - 0x410, /* U+000410: CYRILLIC CAPITAL LETTER A*/ - 0x411, /* U+000411: CYRILLIC CAPITAL LETTER BE*/ - 0x412, /* U+000412: CYRILLIC CAPITAL LETTER VE*/ - 0x413, /* U+000413: CYRILLIC CAPITAL LETTER GHE*/ - 0x414, /* U+000414: CYRILLIC CAPITAL LETTER DE*/ - 0x415, /* U+000415: CYRILLIC CAPITAL LETTER IE*/ - 0x416, /* U+000416: CYRILLIC CAPITAL LETTER ZHE*/ - 0x417, /* U+000417: CYRILLIC CAPITAL LETTER ZE*/ - 0x418, /* U+000418: CYRILLIC CAPITAL LETTER I*/ - 0x419, /* U+000419: CYRILLIC CAPITAL LETTER SHORT I*/ - 0x41a, /* U+00041a: CYRILLIC CAPITAL LETTER KA*/ - 0x41b, /* U+00041b: CYRILLIC CAPITAL LETTER EL*/ - 0x41c, /* U+00041c: CYRILLIC CAPITAL LETTER EM*/ - 0x41d, /* U+00041d: CYRILLIC CAPITAL LETTER EN*/ - 0x41e, /* U+00041e: CYRILLIC CAPITAL LETTER O*/ - 0x41f, /* U+00041f: CYRILLIC CAPITAL LETTER PE*/ - 0x420, /* U+000420: CYRILLIC CAPITAL LETTER ER*/ - 0x421, /* U+000421: CYRILLIC CAPITAL LETTER ES*/ - 0x422, /* U+000422: CYRILLIC CAPITAL LETTER TE*/ - 0x423, /* U+000423: CYRILLIC CAPITAL LETTER U*/ - 0x424, /* U+000424: CYRILLIC CAPITAL LETTER EF*/ - 0x425, /* U+000425: CYRILLIC CAPITAL LETTER HA*/ - 0x426, /* U+000426: CYRILLIC CAPITAL LETTER TSE*/ - 0x427, /* U+000427: CYRILLIC CAPITAL LETTER CHE*/ - 0x428, /* U+000428: CYRILLIC CAPITAL LETTER SHA*/ - 0x429, /* U+000429: CYRILLIC CAPITAL LETTER SHCHA*/ - 0x42a, /* U+00042a: CYRILLIC CAPITAL LETTER HARD SIGN*/ - 0x42b, /* U+00042b: CYRILLIC CAPITAL LETTER YERU*/ - 0x42c, /* U+00042c: CYRILLIC CAPITAL LETTER SOFT SIGN*/ - 0x42d, /* U+00042d: CYRILLIC CAPITAL LETTER E*/ - 0x42e, /* U+00042e: CYRILLIC CAPITAL LETTER YU*/ - 0x42f, /* U+00042f: CYRILLIC CAPITAL LETTER YA*/ - 0x410, /* U+000430: CYRILLIC SMALL LETTER A*/ - 0x411, /* U+000431: CYRILLIC SMALL LETTER BE*/ - 0x412, /* U+000432: CYRILLIC SMALL LETTER VE*/ - 0x413, /* U+000433: CYRILLIC SMALL LETTER GHE*/ - 0x414, /* U+000434: CYRILLIC SMALL LETTER DE*/ - 0x415, /* U+000435: CYRILLIC SMALL LETTER IE*/ - 0x416, /* U+000436: CYRILLIC SMALL LETTER ZHE*/ - 0x417, /* U+000437: CYRILLIC SMALL LETTER ZE*/ - 0x418, /* U+000438: CYRILLIC SMALL LETTER I*/ - 0x419, /* U+000439: CYRILLIC SMALL LETTER SHORT I*/ - 0x41a, /* U+00043a: CYRILLIC SMALL LETTER KA*/ - 0x41b, /* U+00043b: CYRILLIC SMALL LETTER EL*/ - 0x41c, /* U+00043c: CYRILLIC SMALL LETTER EM*/ - 0x41d, /* U+00043d: CYRILLIC SMALL LETTER EN*/ - 0x41e, /* U+00043e: CYRILLIC SMALL LETTER O*/ - 0x41f, /* U+00043f: CYRILLIC SMALL LETTER PE*/ - 0x420, /* U+000440: CYRILLIC SMALL LETTER ER*/ - 0x421, /* U+000441: CYRILLIC SMALL LETTER ES*/ - 0x422, /* U+000442: CYRILLIC SMALL LETTER TE*/ - 0x423, /* U+000443: CYRILLIC SMALL LETTER U*/ - 0x424, /* U+000444: CYRILLIC SMALL LETTER EF*/ - 0x425, /* U+000445: CYRILLIC SMALL LETTER HA*/ - 0x426, /* U+000446: CYRILLIC SMALL LETTER TSE*/ - 0x427, /* U+000447: CYRILLIC SMALL LETTER CHE*/ - 0x428, /* U+000448: CYRILLIC SMALL LETTER SHA*/ - 0x429, /* U+000449: CYRILLIC SMALL LETTER SHCHA*/ - 0x42a, /* U+00044a: CYRILLIC SMALL LETTER HARD SIGN*/ - 0x42b, /* U+00044b: CYRILLIC SMALL LETTER YERU*/ - 0x42c, /* U+00044c: CYRILLIC SMALL LETTER SOFT SIGN*/ - 0x42d, /* U+00044d: CYRILLIC SMALL LETTER E*/ - 0x42e, /* U+00044e: CYRILLIC SMALL LETTER YU*/ - 0x42f, /* U+00044f: CYRILLIC SMALL LETTER YA*/ - 0x400, /* U+000450: CYRILLIC SMALL LETTER IE WITH GRAVE*/ - 0x401, /* U+000451: CYRILLIC SMALL LETTER IO*/ - 0x402, /* U+000452: CYRILLIC SMALL LETTER DJE*/ - 0x403, /* U+000453: CYRILLIC SMALL LETTER GJE*/ - 0x404, /* U+000454: CYRILLIC SMALL LETTER UKRAINIAN IE*/ - 0x405, /* U+000455: CYRILLIC SMALL LETTER DZE*/ - 0x406, /* U+000456: CYRILLIC SMALL LETTER BYELORUSSIAN-UKRAINIAN I*/ - 0x407, /* U+000457: CYRILLIC SMALL LETTER YI*/ - 0x408, /* U+000458: CYRILLIC SMALL LETTER JE*/ - 0x409, /* U+000459: CYRILLIC SMALL LETTER LJE*/ - 0x40a, /* U+00045a: CYRILLIC SMALL LETTER NJE*/ - 0x40b, /* U+00045b: CYRILLIC SMALL LETTER TSHE*/ - 0x40c, /* U+00045c: CYRILLIC SMALL LETTER KJE*/ - 0x40d, /* U+00045d: CYRILLIC SMALL LETTER I WITH GRAVE*/ - 0x40e, /* U+00045e: CYRILLIC SMALL LETTER SHORT U*/ - 0x40f, /* U+00045f: CYRILLIC SMALL LETTER DZHE*/ - 0x460, /* U+000460: CYRILLIC CAPITAL LETTER OMEGA*/ - 0x460, /* U+000461: CYRILLIC SMALL LETTER OMEGA*/ - 0x462, /* U+000462: CYRILLIC CAPITAL LETTER YAT*/ - 0x462, /* U+000463: CYRILLIC SMALL LETTER YAT*/ - 0x464, /* U+000464: CYRILLIC CAPITAL LETTER IOTIFIED E*/ - 0x464, /* U+000465: CYRILLIC SMALL LETTER IOTIFIED E*/ - 0x466, /* U+000466: CYRILLIC CAPITAL LETTER LITTLE YUS*/ - 0x466, /* U+000467: CYRILLIC SMALL LETTER LITTLE YUS*/ - 0x468, /* U+000468: CYRILLIC CAPITAL LETTER IOTIFIED LITTLE YUS*/ - 0x468, /* U+000469: CYRILLIC SMALL LETTER IOTIFIED LITTLE YUS*/ - 0x46a, /* U+00046a: CYRILLIC CAPITAL LETTER BIG YUS*/ - 0x46a, /* U+00046b: CYRILLIC SMALL LETTER BIG YUS*/ - 0x46c, /* U+00046c: CYRILLIC CAPITAL LETTER IOTIFIED BIG YUS*/ - 0x46c, /* U+00046d: CYRILLIC SMALL LETTER IOTIFIED BIG YUS*/ - 0x46e, /* U+00046e: CYRILLIC CAPITAL LETTER KSI*/ - 0x46e, /* U+00046f: CYRILLIC SMALL LETTER KSI*/ - 0x470, /* U+000470: CYRILLIC CAPITAL LETTER PSI*/ - 0x470, /* U+000471: CYRILLIC SMALL LETTER PSI*/ - 0x472, /* U+000472: CYRILLIC CAPITAL LETTER FITA*/ - 0x472, /* U+000473: CYRILLIC SMALL LETTER FITA*/ - 0x474, /* U+000474: CYRILLIC CAPITAL LETTER IZHITSA*/ - 0x474, /* U+000475: CYRILLIC SMALL LETTER IZHITSA*/ - 0x476, /* U+000476: CYRILLIC CAPITAL LETTER IZHITSA WITH DOUBLE GRAVE ACCENT*/ - 0x476, /* U+000477: CYRILLIC SMALL LETTER IZHITSA WITH DOUBLE GRAVE ACCENT*/ - 0x478, /* U+000478: CYRILLIC CAPITAL LETTER UK*/ - 0x478, /* U+000479: CYRILLIC SMALL LETTER UK*/ - 0x47a, /* U+00047a: CYRILLIC CAPITAL LETTER ROUND OMEGA*/ - 0x47a, /* U+00047b: CYRILLIC SMALL LETTER ROUND OMEGA*/ - 0x47c, /* U+00047c: CYRILLIC CAPITAL LETTER OMEGA WITH TITLO*/ - 0x47c, /* U+00047d: CYRILLIC SMALL LETTER OMEGA WITH TITLO*/ - 0x47e, /* U+00047e: CYRILLIC CAPITAL LETTER OT*/ - 0x47e, /* U+00047f: CYRILLIC SMALL LETTER OT*/ - 0x480, /* U+000480: CYRILLIC CAPITAL LETTER KOPPA*/ - 0x480, /* U+000481: CYRILLIC SMALL LETTER KOPPA*/ - 0x482, /* U+000482: CYRILLIC THOUSANDS SIGN*/ - 0x483, /* U+000483: COMBINING CYRILLIC TITLO*/ - 0x484, /* U+000484: COMBINING CYRILLIC PALATALIZATION*/ - 0x485, /* U+000485: COMBINING CYRILLIC DASIA PNEUMATA*/ - 0x486, /* U+000486: COMBINING CYRILLIC PSILI PNEUMATA*/ - 0x487, /* U+000487: */ - 0x488, /* U+000488: COMBINING CYRILLIC HUNDRED THOUSANDS SIGN*/ - 0x489, /* U+000489: COMBINING CYRILLIC MILLIONS SIGN*/ - 0x48a, /* U+00048a: CYRILLIC CAPITAL LETTER SHORT I WITH TAIL*/ - 0x48a, /* U+00048b: CYRILLIC SMALL LETTER SHORT I WITH TAIL*/ - 0x48c, /* U+00048c: CYRILLIC CAPITAL LETTER SEMISOFT SIGN*/ - 0x48c, /* U+00048d: CYRILLIC SMALL LETTER SEMISOFT SIGN*/ - 0x48e, /* U+00048e: CYRILLIC CAPITAL LETTER ER WITH TICK*/ - 0x48e, /* U+00048f: CYRILLIC SMALL LETTER ER WITH TICK*/ - 0x490, /* U+000490: CYRILLIC CAPITAL LETTER GHE WITH UPTURN*/ - 0x490, /* U+000491: CYRILLIC SMALL LETTER GHE WITH UPTURN*/ - 0x492, /* U+000492: CYRILLIC CAPITAL LETTER GHE WITH STROKE*/ - 0x492, /* U+000493: CYRILLIC SMALL LETTER GHE WITH STROKE*/ - 0x494, /* U+000494: CYRILLIC CAPITAL LETTER GHE WITH MIDDLE HOOK*/ - 0x494, /* U+000495: CYRILLIC SMALL LETTER GHE WITH MIDDLE HOOK*/ - 0x496, /* U+000496: CYRILLIC CAPITAL LETTER ZHE WITH DESCENDER*/ - 0x496, /* U+000497: CYRILLIC SMALL LETTER ZHE WITH DESCENDER*/ - 0x498, /* U+000498: CYRILLIC CAPITAL LETTER ZE WITH DESCENDER*/ - 0x498, /* U+000499: CYRILLIC SMALL LETTER ZE WITH DESCENDER*/ - 0x49a, /* U+00049a: CYRILLIC CAPITAL LETTER KA WITH DESCENDER*/ - 0x49a, /* U+00049b: CYRILLIC SMALL LETTER KA WITH DESCENDER*/ - 0x49c, /* U+00049c: CYRILLIC CAPITAL LETTER KA WITH VERTICAL STROKE*/ - 0x49c, /* U+00049d: CYRILLIC SMALL LETTER KA WITH VERTICAL STROKE*/ - 0x49e, /* U+00049e: CYRILLIC CAPITAL LETTER KA WITH STROKE*/ - 0x49e, /* U+00049f: CYRILLIC SMALL LETTER KA WITH STROKE*/ - 0x4a0, /* U+0004a0: CYRILLIC CAPITAL LETTER BASHKIR KA*/ - 0x4a0, /* U+0004a1: CYRILLIC SMALL LETTER BASHKIR KA*/ - 0x4a2, /* U+0004a2: CYRILLIC CAPITAL LETTER EN WITH DESCENDER*/ - 0x4a2, /* U+0004a3: CYRILLIC SMALL LETTER EN WITH DESCENDER*/ - 0x4a4, /* U+0004a4: CYRILLIC CAPITAL LIGATURE EN GHE*/ - 0x4a4, /* U+0004a5: CYRILLIC SMALL LIGATURE EN GHE*/ - 0x4a6, /* U+0004a6: CYRILLIC CAPITAL LETTER PE WITH MIDDLE HOOK*/ - 0x4a6, /* U+0004a7: CYRILLIC SMALL LETTER PE WITH MIDDLE HOOK*/ - 0x4a8, /* U+0004a8: CYRILLIC CAPITAL LETTER ABKHASIAN HA*/ - 0x4a8, /* U+0004a9: CYRILLIC SMALL LETTER ABKHASIAN HA*/ - 0x4aa, /* U+0004aa: CYRILLIC CAPITAL LETTER ES WITH DESCENDER*/ - 0x4aa, /* U+0004ab: CYRILLIC SMALL LETTER ES WITH DESCENDER*/ - 0x4ac, /* U+0004ac: CYRILLIC CAPITAL LETTER TE WITH DESCENDER*/ - 0x4ac, /* U+0004ad: CYRILLIC SMALL LETTER TE WITH DESCENDER*/ - 0x4ae, /* U+0004ae: CYRILLIC CAPITAL LETTER STRAIGHT U*/ - 0x4ae, /* U+0004af: CYRILLIC SMALL LETTER STRAIGHT U*/ - 0x4b0, /* U+0004b0: CYRILLIC CAPITAL LETTER STRAIGHT U WITH STROKE*/ - 0x4b0, /* U+0004b1: CYRILLIC SMALL LETTER STRAIGHT U WITH STROKE*/ - 0x4b2, /* U+0004b2: CYRILLIC CAPITAL LETTER HA WITH DESCENDER*/ - 0x4b2, /* U+0004b3: CYRILLIC SMALL LETTER HA WITH DESCENDER*/ - 0x4b4, /* U+0004b4: CYRILLIC CAPITAL LIGATURE TE TSE*/ - 0x4b4, /* U+0004b5: CYRILLIC SMALL LIGATURE TE TSE*/ - 0x4b6, /* U+0004b6: CYRILLIC CAPITAL LETTER CHE WITH DESCENDER*/ - 0x4b6, /* U+0004b7: CYRILLIC SMALL LETTER CHE WITH DESCENDER*/ - 0x4b8, /* U+0004b8: CYRILLIC CAPITAL LETTER CHE WITH VERTICAL STROKE*/ - 0x4b8, /* U+0004b9: CYRILLIC SMALL LETTER CHE WITH VERTICAL STROKE*/ - 0x4ba, /* U+0004ba: CYRILLIC CAPITAL LETTER SHHA*/ - 0x4ba, /* U+0004bb: CYRILLIC SMALL LETTER SHHA*/ - 0x4bc, /* U+0004bc: CYRILLIC CAPITAL LETTER ABKHASIAN CHE*/ - 0x4bc, /* U+0004bd: CYRILLIC SMALL LETTER ABKHASIAN CHE*/ - 0x4be, /* U+0004be: CYRILLIC CAPITAL LETTER ABKHASIAN CHE WITH DESCENDER*/ - 0x4be, /* U+0004bf: CYRILLIC SMALL LETTER ABKHASIAN CHE WITH DESCENDER*/ - 0x4c0, /* U+0004c0: CYRILLIC LETTER PALOCHKA*/ - 0x4c1, /* U+0004c1: CYRILLIC CAPITAL LETTER ZHE WITH BREVE*/ - 0x4c1, /* U+0004c2: CYRILLIC SMALL LETTER ZHE WITH BREVE*/ - 0x4c3, /* U+0004c3: CYRILLIC CAPITAL LETTER KA WITH HOOK*/ - 0x4c3, /* U+0004c4: CYRILLIC SMALL LETTER KA WITH HOOK*/ - 0x4c5, /* U+0004c5: CYRILLIC CAPITAL LETTER EL WITH TAIL*/ - 0x4c5, /* U+0004c6: CYRILLIC SMALL LETTER EL WITH TAIL*/ - 0x4c7, /* U+0004c7: CYRILLIC CAPITAL LETTER EN WITH HOOK*/ - 0x4c7, /* U+0004c8: CYRILLIC SMALL LETTER EN WITH HOOK*/ - 0x4c9, /* U+0004c9: CYRILLIC CAPITAL LETTER EN WITH TAIL*/ - 0x4c9, /* U+0004ca: CYRILLIC SMALL LETTER EN WITH TAIL*/ - 0x4cb, /* U+0004cb: CYRILLIC CAPITAL LETTER KHAKASSIAN CHE*/ - 0x4cb, /* U+0004cc: CYRILLIC SMALL LETTER KHAKASSIAN CHE*/ - 0x4cd, /* U+0004cd: CYRILLIC CAPITAL LETTER EM WITH TAIL*/ - 0x4cd, /* U+0004ce: CYRILLIC SMALL LETTER EM WITH TAIL*/ - 0x4cf, /* U+0004cf: */ - 0x4d0, /* U+0004d0: CYRILLIC CAPITAL LETTER A WITH BREVE*/ - 0x4d0, /* U+0004d1: CYRILLIC SMALL LETTER A WITH BREVE*/ - 0x4d2, /* U+0004d2: CYRILLIC CAPITAL LETTER A WITH DIAERESIS*/ - 0x4d2, /* U+0004d3: CYRILLIC SMALL LETTER A WITH DIAERESIS*/ - 0x4d4, /* U+0004d4: CYRILLIC CAPITAL LIGATURE A IE*/ - 0x4d4, /* U+0004d5: CYRILLIC SMALL LIGATURE A IE*/ - 0x4d6, /* U+0004d6: CYRILLIC CAPITAL LETTER IE WITH BREVE*/ - 0x4d6, /* U+0004d7: CYRILLIC SMALL LETTER IE WITH BREVE*/ - 0x4d8, /* U+0004d8: CYRILLIC CAPITAL LETTER SCHWA*/ - 0x4d8, /* U+0004d9: CYRILLIC SMALL LETTER SCHWA*/ - 0x4da, /* U+0004da: CYRILLIC CAPITAL LETTER SCHWA WITH DIAERESIS*/ - 0x4da, /* U+0004db: CYRILLIC SMALL LETTER SCHWA WITH DIAERESIS*/ - 0x4dc, /* U+0004dc: CYRILLIC CAPITAL LETTER ZHE WITH DIAERESIS*/ - 0x4dc, /* U+0004dd: CYRILLIC SMALL LETTER ZHE WITH DIAERESIS*/ - 0x4de, /* U+0004de: CYRILLIC CAPITAL LETTER ZE WITH DIAERESIS*/ - 0x4de, /* U+0004df: CYRILLIC SMALL LETTER ZE WITH DIAERESIS*/ - 0x4e0, /* U+0004e0: CYRILLIC CAPITAL LETTER ABKHASIAN DZE*/ - 0x4e0, /* U+0004e1: CYRILLIC SMALL LETTER ABKHASIAN DZE*/ - 0x4e2, /* U+0004e2: CYRILLIC CAPITAL LETTER I WITH MACRON*/ - 0x4e2, /* U+0004e3: CYRILLIC SMALL LETTER I WITH MACRON*/ - 0x4e4, /* U+0004e4: CYRILLIC CAPITAL LETTER I WITH DIAERESIS*/ - 0x4e4, /* U+0004e5: CYRILLIC SMALL LETTER I WITH DIAERESIS*/ - 0x4e6, /* U+0004e6: CYRILLIC CAPITAL LETTER O WITH DIAERESIS*/ - 0x4e6, /* U+0004e7: CYRILLIC SMALL LETTER O WITH DIAERESIS*/ - 0x4e8, /* U+0004e8: CYRILLIC CAPITAL LETTER BARRED O*/ - 0x4e8, /* U+0004e9: CYRILLIC SMALL LETTER BARRED O*/ - 0x4ea, /* U+0004ea: CYRILLIC CAPITAL LETTER BARRED O WITH DIAERESIS*/ - 0x4ea, /* U+0004eb: CYRILLIC SMALL LETTER BARRED O WITH DIAERESIS*/ - 0x4ec, /* U+0004ec: CYRILLIC CAPITAL LETTER E WITH DIAERESIS*/ - 0x4ec, /* U+0004ed: CYRILLIC SMALL LETTER E WITH DIAERESIS*/ - 0x4ee, /* U+0004ee: CYRILLIC CAPITAL LETTER U WITH MACRON*/ - 0x4ee, /* U+0004ef: CYRILLIC SMALL LETTER U WITH MACRON*/ - 0x4f0, /* U+0004f0: CYRILLIC CAPITAL LETTER U WITH DIAERESIS*/ - 0x4f0, /* U+0004f1: CYRILLIC SMALL LETTER U WITH DIAERESIS*/ - 0x4f2, /* U+0004f2: CYRILLIC CAPITAL LETTER U WITH DOUBLE ACUTE*/ - 0x4f2, /* U+0004f3: CYRILLIC SMALL LETTER U WITH DOUBLE ACUTE*/ - 0x4f4, /* U+0004f4: CYRILLIC CAPITAL LETTER CHE WITH DIAERESIS*/ - 0x4f4, /* U+0004f5: CYRILLIC SMALL LETTER CHE WITH DIAERESIS*/ - 0x4f6, /* U+0004f6: CYRILLIC CAPITAL LETTER GHE WITH DESCENDER*/ - 0x4f6, /* U+0004f7: CYRILLIC SMALL LETTER GHE WITH DESCENDER*/ - 0x4f8, /* U+0004f8: CYRILLIC CAPITAL LETTER YERU WITH DIAERESIS*/ - 0x4f8, /* U+0004f9: CYRILLIC SMALL LETTER YERU WITH DIAERESIS*/ - 0x4fa, /* U+0004fa: */ - 0x4fb, /* U+0004fb: */ - 0x4fc, /* U+0004fc: */ - 0x4fd, /* U+0004fd: */ - 0x4fe, /* U+0004fe: */ - 0x4ff, /* U+0004ff: */ - 0x500, /* U+000500: CYRILLIC CAPITAL LETTER KOMI DE*/ - 0x500, /* U+000501: CYRILLIC SMALL LETTER KOMI DE*/ - 0x502, /* U+000502: CYRILLIC CAPITAL LETTER KOMI DJE*/ - 0x502, /* U+000503: CYRILLIC SMALL LETTER KOMI DJE*/ - 0x504, /* U+000504: CYRILLIC CAPITAL LETTER KOMI ZJE*/ - 0x504, /* U+000505: CYRILLIC SMALL LETTER KOMI ZJE*/ - 0x506, /* U+000506: CYRILLIC CAPITAL LETTER KOMI DZJE*/ - 0x506, /* U+000507: CYRILLIC SMALL LETTER KOMI DZJE*/ - 0x508, /* U+000508: CYRILLIC CAPITAL LETTER KOMI LJE*/ - 0x508, /* U+000509: CYRILLIC SMALL LETTER KOMI LJE*/ - 0x50a, /* U+00050a: CYRILLIC CAPITAL LETTER KOMI NJE*/ - 0x50a, /* U+00050b: CYRILLIC SMALL LETTER KOMI NJE*/ - 0x50c, /* U+00050c: CYRILLIC CAPITAL LETTER KOMI SJE*/ - 0x50c, /* U+00050d: CYRILLIC SMALL LETTER KOMI SJE*/ - 0x50e, /* U+00050e: CYRILLIC CAPITAL LETTER KOMI TJE*/ - 0x50e, /* U+00050f: CYRILLIC SMALL LETTER KOMI TJE*/ - 0x510, /* U+000510: */ - 0x511, /* U+000511: */ - 0x512, /* U+000512: */ - 0x513, /* U+000513: */ - 0x514, /* U+000514: */ - 0x515, /* U+000515: */ - 0x516, /* U+000516: */ - 0x517, /* U+000517: */ - 0x518, /* U+000518: */ - 0x519, /* U+000519: */ - 0x51a, /* U+00051a: */ - 0x51b, /* U+00051b: */ - 0x51c, /* U+00051c: */ - 0x51d, /* U+00051d: */ - 0x51e, /* U+00051e: */ - 0x51f, /* U+00051f: */ - 0x520, /* U+000520: */ - 0x521, /* U+000521: */ - 0x522, /* U+000522: */ - 0x523, /* U+000523: */ - 0x524, /* U+000524: */ - 0x525, /* U+000525: */ - 0x526, /* U+000526: */ - 0x527, /* U+000527: */ - 0x528, /* U+000528: */ - 0x529, /* U+000529: */ - 0x52a, /* U+00052a: */ - 0x52b, /* U+00052b: */ - 0x52c, /* U+00052c: */ - 0x52d, /* U+00052d: */ - 0x52e, /* U+00052e: */ - 0x52f, /* U+00052f: */ - 0x530, /* U+000530: */ - 0x531, /* U+000531: ARMENIAN CAPITAL LETTER AYB*/ - 0x532, /* U+000532: ARMENIAN CAPITAL LETTER BEN*/ - 0x533, /* U+000533: ARMENIAN CAPITAL LETTER GIM*/ - 0x534, /* U+000534: ARMENIAN CAPITAL LETTER DA*/ - 0x535, /* U+000535: ARMENIAN CAPITAL LETTER ECH*/ - 0x536, /* U+000536: ARMENIAN CAPITAL LETTER ZA*/ - 0x537, /* U+000537: ARMENIAN CAPITAL LETTER EH*/ - 0x538, /* U+000538: ARMENIAN CAPITAL LETTER ET*/ - 0x539, /* U+000539: ARMENIAN CAPITAL LETTER TO*/ - 0x53a, /* U+00053a: ARMENIAN CAPITAL LETTER ZHE*/ - 0x53b, /* U+00053b: ARMENIAN CAPITAL LETTER INI*/ - 0x53c, /* U+00053c: ARMENIAN CAPITAL LETTER LIWN*/ - 0x53d, /* U+00053d: ARMENIAN CAPITAL LETTER XEH*/ - 0x53e, /* U+00053e: ARMENIAN CAPITAL LETTER CA*/ - 0x53f, /* U+00053f: ARMENIAN CAPITAL LETTER KEN*/ - 0x540, /* U+000540: ARMENIAN CAPITAL LETTER HO*/ - 0x541, /* U+000541: ARMENIAN CAPITAL LETTER JA*/ - 0x542, /* U+000542: ARMENIAN CAPITAL LETTER GHAD*/ - 0x543, /* U+000543: ARMENIAN CAPITAL LETTER CHEH*/ - 0x544, /* U+000544: ARMENIAN CAPITAL LETTER MEN*/ - 0x545, /* U+000545: ARMENIAN CAPITAL LETTER YI*/ - 0x546, /* U+000546: ARMENIAN CAPITAL LETTER NOW*/ - 0x547, /* U+000547: ARMENIAN CAPITAL LETTER SHA*/ - 0x548, /* U+000548: ARMENIAN CAPITAL LETTER VO*/ - 0x549, /* U+000549: ARMENIAN CAPITAL LETTER CHA*/ - 0x54a, /* U+00054a: ARMENIAN CAPITAL LETTER PEH*/ - 0x54b, /* U+00054b: ARMENIAN CAPITAL LETTER JHEH*/ - 0x54c, /* U+00054c: ARMENIAN CAPITAL LETTER RA*/ - 0x54d, /* U+00054d: ARMENIAN CAPITAL LETTER SEH*/ - 0x54e, /* U+00054e: ARMENIAN CAPITAL LETTER VEW*/ - 0x54f, /* U+00054f: ARMENIAN CAPITAL LETTER TIWN*/ - 0x550, /* U+000550: ARMENIAN CAPITAL LETTER REH*/ - 0x551, /* U+000551: ARMENIAN CAPITAL LETTER CO*/ - 0x552, /* U+000552: ARMENIAN CAPITAL LETTER YIWN*/ - 0x553, /* U+000553: ARMENIAN CAPITAL LETTER PIWR*/ - 0x554, /* U+000554: ARMENIAN CAPITAL LETTER KEH*/ - 0x555, /* U+000555: ARMENIAN CAPITAL LETTER OH*/ - 0x556, /* U+000556: ARMENIAN CAPITAL LETTER FEH*/ - 0x557, /* U+000557: */ - 0x558, /* U+000558: */ - 0x559, /* U+000559: ARMENIAN MODIFIER LETTER LEFT HALF RING*/ - 0x55a, /* U+00055a: ARMENIAN APOSTROPHE*/ - 0x55b, /* U+00055b: ARMENIAN EMPHASIS MARK*/ - 0x55c, /* U+00055c: ARMENIAN EXCLAMATION MARK*/ - 0x55d, /* U+00055d: ARMENIAN COMMA*/ - 0x55e, /* U+00055e: ARMENIAN QUESTION MARK*/ - 0x55f, /* U+00055f: ARMENIAN ABBREVIATION MARK*/ - 0x560, /* U+000560: */ - 0x531, /* U+000561: ARMENIAN SMALL LETTER AYB*/ - 0x532, /* U+000562: ARMENIAN SMALL LETTER BEN*/ - 0x533, /* U+000563: ARMENIAN SMALL LETTER GIM*/ - 0x534, /* U+000564: ARMENIAN SMALL LETTER DA*/ - 0x535, /* U+000565: ARMENIAN SMALL LETTER ECH*/ - 0x536, /* U+000566: ARMENIAN SMALL LETTER ZA*/ - 0x537, /* U+000567: ARMENIAN SMALL LETTER EH*/ - 0x538, /* U+000568: ARMENIAN SMALL LETTER ET*/ - 0x539, /* U+000569: ARMENIAN SMALL LETTER TO*/ - 0x53a, /* U+00056a: ARMENIAN SMALL LETTER ZHE*/ - 0x53b, /* U+00056b: ARMENIAN SMALL LETTER INI*/ - 0x53c, /* U+00056c: ARMENIAN SMALL LETTER LIWN*/ - 0x53d, /* U+00056d: ARMENIAN SMALL LETTER XEH*/ - 0x53e, /* U+00056e: ARMENIAN SMALL LETTER CA*/ - 0x53f, /* U+00056f: ARMENIAN SMALL LETTER KEN*/ - 0x540, /* U+000570: ARMENIAN SMALL LETTER HO*/ - 0x541, /* U+000571: ARMENIAN SMALL LETTER JA*/ - 0x542, /* U+000572: ARMENIAN SMALL LETTER GHAD*/ - 0x543, /* U+000573: ARMENIAN SMALL LETTER CHEH*/ - 0x544, /* U+000574: ARMENIAN SMALL LETTER MEN*/ - 0x545, /* U+000575: ARMENIAN SMALL LETTER YI*/ - 0x546, /* U+000576: ARMENIAN SMALL LETTER NOW*/ - 0x547, /* U+000577: ARMENIAN SMALL LETTER SHA*/ - 0x548, /* U+000578: ARMENIAN SMALL LETTER VO*/ - 0x549, /* U+000579: ARMENIAN SMALL LETTER CHA*/ - 0x54a, /* U+00057a: ARMENIAN SMALL LETTER PEH*/ - 0x54b, /* U+00057b: ARMENIAN SMALL LETTER JHEH*/ - 0x54c, /* U+00057c: ARMENIAN SMALL LETTER RA*/ - 0x54d, /* U+00057d: ARMENIAN SMALL LETTER SEH*/ - 0x54e, /* U+00057e: ARMENIAN SMALL LETTER VEW*/ - 0x54f, /* U+00057f: ARMENIAN SMALL LETTER TIWN*/ - 0x550, /* U+000580: ARMENIAN SMALL LETTER REH*/ - 0x551, /* U+000581: ARMENIAN SMALL LETTER CO*/ - 0x552, /* U+000582: ARMENIAN SMALL LETTER YIWN*/ - 0x553, /* U+000583: ARMENIAN SMALL LETTER PIWR*/ - 0x554, /* U+000584: ARMENIAN SMALL LETTER KEH*/ - 0x555, /* U+000585: ARMENIAN SMALL LETTER OH*/ - 0x556, /* U+000586: ARMENIAN SMALL LETTER FEH*/ -}; - -static const RTUNICP g_afRTUniUpper0x001e01[] = -{ - 0x1e00, /* U+001e01: LATIN SMALL LETTER A WITH RING BELOW*/ - 0x1e02, /* U+001e02: LATIN CAPITAL LETTER B WITH DOT ABOVE*/ - 0x1e02, /* U+001e03: LATIN SMALL LETTER B WITH DOT ABOVE*/ - 0x1e04, /* U+001e04: LATIN CAPITAL LETTER B WITH DOT BELOW*/ - 0x1e04, /* U+001e05: LATIN SMALL LETTER B WITH DOT BELOW*/ - 0x1e06, /* U+001e06: LATIN CAPITAL LETTER B WITH LINE BELOW*/ - 0x1e06, /* U+001e07: LATIN SMALL LETTER B WITH LINE BELOW*/ - 0x1e08, /* U+001e08: LATIN CAPITAL LETTER C WITH CEDILLA AND ACUTE*/ - 0x1e08, /* U+001e09: LATIN SMALL LETTER C WITH CEDILLA AND ACUTE*/ - 0x1e0a, /* U+001e0a: LATIN CAPITAL LETTER D WITH DOT ABOVE*/ - 0x1e0a, /* U+001e0b: LATIN SMALL LETTER D WITH DOT ABOVE*/ - 0x1e0c, /* U+001e0c: LATIN CAPITAL LETTER D WITH DOT BELOW*/ - 0x1e0c, /* U+001e0d: LATIN SMALL LETTER D WITH DOT BELOW*/ - 0x1e0e, /* U+001e0e: LATIN CAPITAL LETTER D WITH LINE BELOW*/ - 0x1e0e, /* U+001e0f: LATIN SMALL LETTER D WITH LINE BELOW*/ - 0x1e10, /* U+001e10: LATIN CAPITAL LETTER D WITH CEDILLA*/ - 0x1e10, /* U+001e11: LATIN SMALL LETTER D WITH CEDILLA*/ - 0x1e12, /* U+001e12: LATIN CAPITAL LETTER D WITH CIRCUMFLEX BELOW*/ - 0x1e12, /* U+001e13: LATIN SMALL LETTER D WITH CIRCUMFLEX BELOW*/ - 0x1e14, /* U+001e14: LATIN CAPITAL LETTER E WITH MACRON AND GRAVE*/ - 0x1e14, /* U+001e15: LATIN SMALL LETTER E WITH MACRON AND GRAVE*/ - 0x1e16, /* U+001e16: LATIN CAPITAL LETTER E WITH MACRON AND ACUTE*/ - 0x1e16, /* U+001e17: LATIN SMALL LETTER E WITH MACRON AND ACUTE*/ - 0x1e18, /* U+001e18: LATIN CAPITAL LETTER E WITH CIRCUMFLEX BELOW*/ - 0x1e18, /* U+001e19: LATIN SMALL LETTER E WITH CIRCUMFLEX BELOW*/ - 0x1e1a, /* U+001e1a: LATIN CAPITAL LETTER E WITH TILDE BELOW*/ - 0x1e1a, /* U+001e1b: LATIN SMALL LETTER E WITH TILDE BELOW*/ - 0x1e1c, /* U+001e1c: LATIN CAPITAL LETTER E WITH CEDILLA AND BREVE*/ - 0x1e1c, /* U+001e1d: LATIN SMALL LETTER E WITH CEDILLA AND BREVE*/ - 0x1e1e, /* U+001e1e: LATIN CAPITAL LETTER F WITH DOT ABOVE*/ - 0x1e1e, /* U+001e1f: LATIN SMALL LETTER F WITH DOT ABOVE*/ - 0x1e20, /* U+001e20: LATIN CAPITAL LETTER G WITH MACRON*/ - 0x1e20, /* U+001e21: LATIN SMALL LETTER G WITH MACRON*/ - 0x1e22, /* U+001e22: LATIN CAPITAL LETTER H WITH DOT ABOVE*/ - 0x1e22, /* U+001e23: LATIN SMALL LETTER H WITH DOT ABOVE*/ - 0x1e24, /* U+001e24: LATIN CAPITAL LETTER H WITH DOT BELOW*/ - 0x1e24, /* U+001e25: LATIN SMALL LETTER H WITH DOT BELOW*/ - 0x1e26, /* U+001e26: LATIN CAPITAL LETTER H WITH DIAERESIS*/ - 0x1e26, /* U+001e27: LATIN SMALL LETTER H WITH DIAERESIS*/ - 0x1e28, /* U+001e28: LATIN CAPITAL LETTER H WITH CEDILLA*/ - 0x1e28, /* U+001e29: LATIN SMALL LETTER H WITH CEDILLA*/ - 0x1e2a, /* U+001e2a: LATIN CAPITAL LETTER H WITH BREVE BELOW*/ - 0x1e2a, /* U+001e2b: LATIN SMALL LETTER H WITH BREVE BELOW*/ - 0x1e2c, /* U+001e2c: LATIN CAPITAL LETTER I WITH TILDE BELOW*/ - 0x1e2c, /* U+001e2d: LATIN SMALL LETTER I WITH TILDE BELOW*/ - 0x1e2e, /* U+001e2e: LATIN CAPITAL LETTER I WITH DIAERESIS AND ACUTE*/ - 0x1e2e, /* U+001e2f: LATIN SMALL LETTER I WITH DIAERESIS AND ACUTE*/ - 0x1e30, /* U+001e30: LATIN CAPITAL LETTER K WITH ACUTE*/ - 0x1e30, /* U+001e31: LATIN SMALL LETTER K WITH ACUTE*/ - 0x1e32, /* U+001e32: LATIN CAPITAL LETTER K WITH DOT BELOW*/ - 0x1e32, /* U+001e33: LATIN SMALL LETTER K WITH DOT BELOW*/ - 0x1e34, /* U+001e34: LATIN CAPITAL LETTER K WITH LINE BELOW*/ - 0x1e34, /* U+001e35: LATIN SMALL LETTER K WITH LINE BELOW*/ - 0x1e36, /* U+001e36: LATIN CAPITAL LETTER L WITH DOT BELOW*/ - 0x1e36, /* U+001e37: LATIN SMALL LETTER L WITH DOT BELOW*/ - 0x1e38, /* U+001e38: LATIN CAPITAL LETTER L WITH DOT BELOW AND MACRON*/ - 0x1e38, /* U+001e39: LATIN SMALL LETTER L WITH DOT BELOW AND MACRON*/ - 0x1e3a, /* U+001e3a: LATIN CAPITAL LETTER L WITH LINE BELOW*/ - 0x1e3a, /* U+001e3b: LATIN SMALL LETTER L WITH LINE BELOW*/ - 0x1e3c, /* U+001e3c: LATIN CAPITAL LETTER L WITH CIRCUMFLEX BELOW*/ - 0x1e3c, /* U+001e3d: LATIN SMALL LETTER L WITH CIRCUMFLEX BELOW*/ - 0x1e3e, /* U+001e3e: LATIN CAPITAL LETTER M WITH ACUTE*/ - 0x1e3e, /* U+001e3f: LATIN SMALL LETTER M WITH ACUTE*/ - 0x1e40, /* U+001e40: LATIN CAPITAL LETTER M WITH DOT ABOVE*/ - 0x1e40, /* U+001e41: LATIN SMALL LETTER M WITH DOT ABOVE*/ - 0x1e42, /* U+001e42: LATIN CAPITAL LETTER M WITH DOT BELOW*/ - 0x1e42, /* U+001e43: LATIN SMALL LETTER M WITH DOT BELOW*/ - 0x1e44, /* U+001e44: LATIN CAPITAL LETTER N WITH DOT ABOVE*/ - 0x1e44, /* U+001e45: LATIN SMALL LETTER N WITH DOT ABOVE*/ - 0x1e46, /* U+001e46: LATIN CAPITAL LETTER N WITH DOT BELOW*/ - 0x1e46, /* U+001e47: LATIN SMALL LETTER N WITH DOT BELOW*/ - 0x1e48, /* U+001e48: LATIN CAPITAL LETTER N WITH LINE BELOW*/ - 0x1e48, /* U+001e49: LATIN SMALL LETTER N WITH LINE BELOW*/ - 0x1e4a, /* U+001e4a: LATIN CAPITAL LETTER N WITH CIRCUMFLEX BELOW*/ - 0x1e4a, /* U+001e4b: LATIN SMALL LETTER N WITH CIRCUMFLEX BELOW*/ - 0x1e4c, /* U+001e4c: LATIN CAPITAL LETTER O WITH TILDE AND ACUTE*/ - 0x1e4c, /* U+001e4d: LATIN SMALL LETTER O WITH TILDE AND ACUTE*/ - 0x1e4e, /* U+001e4e: LATIN CAPITAL LETTER O WITH TILDE AND DIAERESIS*/ - 0x1e4e, /* U+001e4f: LATIN SMALL LETTER O WITH TILDE AND DIAERESIS*/ - 0x1e50, /* U+001e50: LATIN CAPITAL LETTER O WITH MACRON AND GRAVE*/ - 0x1e50, /* U+001e51: LATIN SMALL LETTER O WITH MACRON AND GRAVE*/ - 0x1e52, /* U+001e52: LATIN CAPITAL LETTER O WITH MACRON AND ACUTE*/ - 0x1e52, /* U+001e53: LATIN SMALL LETTER O WITH MACRON AND ACUTE*/ - 0x1e54, /* U+001e54: LATIN CAPITAL LETTER P WITH ACUTE*/ - 0x1e54, /* U+001e55: LATIN SMALL LETTER P WITH ACUTE*/ - 0x1e56, /* U+001e56: LATIN CAPITAL LETTER P WITH DOT ABOVE*/ - 0x1e56, /* U+001e57: LATIN SMALL LETTER P WITH DOT ABOVE*/ - 0x1e58, /* U+001e58: LATIN CAPITAL LETTER R WITH DOT ABOVE*/ - 0x1e58, /* U+001e59: LATIN SMALL LETTER R WITH DOT ABOVE*/ - 0x1e5a, /* U+001e5a: LATIN CAPITAL LETTER R WITH DOT BELOW*/ - 0x1e5a, /* U+001e5b: LATIN SMALL LETTER R WITH DOT BELOW*/ - 0x1e5c, /* U+001e5c: LATIN CAPITAL LETTER R WITH DOT BELOW AND MACRON*/ - 0x1e5c, /* U+001e5d: LATIN SMALL LETTER R WITH DOT BELOW AND MACRON*/ - 0x1e5e, /* U+001e5e: LATIN CAPITAL LETTER R WITH LINE BELOW*/ - 0x1e5e, /* U+001e5f: LATIN SMALL LETTER R WITH LINE BELOW*/ - 0x1e60, /* U+001e60: LATIN CAPITAL LETTER S WITH DOT ABOVE*/ - 0x1e60, /* U+001e61: LATIN SMALL LETTER S WITH DOT ABOVE*/ - 0x1e62, /* U+001e62: LATIN CAPITAL LETTER S WITH DOT BELOW*/ - 0x1e62, /* U+001e63: LATIN SMALL LETTER S WITH DOT BELOW*/ - 0x1e64, /* U+001e64: LATIN CAPITAL LETTER S WITH ACUTE AND DOT ABOVE*/ - 0x1e64, /* U+001e65: LATIN SMALL LETTER S WITH ACUTE AND DOT ABOVE*/ - 0x1e66, /* U+001e66: LATIN CAPITAL LETTER S WITH CARON AND DOT ABOVE*/ - 0x1e66, /* U+001e67: LATIN SMALL LETTER S WITH CARON AND DOT ABOVE*/ - 0x1e68, /* U+001e68: LATIN CAPITAL LETTER S WITH DOT BELOW AND DOT ABOVE*/ - 0x1e68, /* U+001e69: LATIN SMALL LETTER S WITH DOT BELOW AND DOT ABOVE*/ - 0x1e6a, /* U+001e6a: LATIN CAPITAL LETTER T WITH DOT ABOVE*/ - 0x1e6a, /* U+001e6b: LATIN SMALL LETTER T WITH DOT ABOVE*/ - 0x1e6c, /* U+001e6c: LATIN CAPITAL LETTER T WITH DOT BELOW*/ - 0x1e6c, /* U+001e6d: LATIN SMALL LETTER T WITH DOT BELOW*/ - 0x1e6e, /* U+001e6e: LATIN CAPITAL LETTER T WITH LINE BELOW*/ - 0x1e6e, /* U+001e6f: LATIN SMALL LETTER T WITH LINE BELOW*/ - 0x1e70, /* U+001e70: LATIN CAPITAL LETTER T WITH CIRCUMFLEX BELOW*/ - 0x1e70, /* U+001e71: LATIN SMALL LETTER T WITH CIRCUMFLEX BELOW*/ - 0x1e72, /* U+001e72: LATIN CAPITAL LETTER U WITH DIAERESIS BELOW*/ - 0x1e72, /* U+001e73: LATIN SMALL LETTER U WITH DIAERESIS BELOW*/ - 0x1e74, /* U+001e74: LATIN CAPITAL LETTER U WITH TILDE BELOW*/ - 0x1e74, /* U+001e75: LATIN SMALL LETTER U WITH TILDE BELOW*/ - 0x1e76, /* U+001e76: LATIN CAPITAL LETTER U WITH CIRCUMFLEX BELOW*/ - 0x1e76, /* U+001e77: LATIN SMALL LETTER U WITH CIRCUMFLEX BELOW*/ - 0x1e78, /* U+001e78: LATIN CAPITAL LETTER U WITH TILDE AND ACUTE*/ - 0x1e78, /* U+001e79: LATIN SMALL LETTER U WITH TILDE AND ACUTE*/ - 0x1e7a, /* U+001e7a: LATIN CAPITAL LETTER U WITH MACRON AND DIAERESIS*/ - 0x1e7a, /* U+001e7b: LATIN SMALL LETTER U WITH MACRON AND DIAERESIS*/ - 0x1e7c, /* U+001e7c: LATIN CAPITAL LETTER V WITH TILDE*/ - 0x1e7c, /* U+001e7d: LATIN SMALL LETTER V WITH TILDE*/ - 0x1e7e, /* U+001e7e: LATIN CAPITAL LETTER V WITH DOT BELOW*/ - 0x1e7e, /* U+001e7f: LATIN SMALL LETTER V WITH DOT BELOW*/ - 0x1e80, /* U+001e80: LATIN CAPITAL LETTER W WITH GRAVE*/ - 0x1e80, /* U+001e81: LATIN SMALL LETTER W WITH GRAVE*/ - 0x1e82, /* U+001e82: LATIN CAPITAL LETTER W WITH ACUTE*/ - 0x1e82, /* U+001e83: LATIN SMALL LETTER W WITH ACUTE*/ - 0x1e84, /* U+001e84: LATIN CAPITAL LETTER W WITH DIAERESIS*/ - 0x1e84, /* U+001e85: LATIN SMALL LETTER W WITH DIAERESIS*/ - 0x1e86, /* U+001e86: LATIN CAPITAL LETTER W WITH DOT ABOVE*/ - 0x1e86, /* U+001e87: LATIN SMALL LETTER W WITH DOT ABOVE*/ - 0x1e88, /* U+001e88: LATIN CAPITAL LETTER W WITH DOT BELOW*/ - 0x1e88, /* U+001e89: LATIN SMALL LETTER W WITH DOT BELOW*/ - 0x1e8a, /* U+001e8a: LATIN CAPITAL LETTER X WITH DOT ABOVE*/ - 0x1e8a, /* U+001e8b: LATIN SMALL LETTER X WITH DOT ABOVE*/ - 0x1e8c, /* U+001e8c: LATIN CAPITAL LETTER X WITH DIAERESIS*/ - 0x1e8c, /* U+001e8d: LATIN SMALL LETTER X WITH DIAERESIS*/ - 0x1e8e, /* U+001e8e: LATIN CAPITAL LETTER Y WITH DOT ABOVE*/ - 0x1e8e, /* U+001e8f: LATIN SMALL LETTER Y WITH DOT ABOVE*/ - 0x1e90, /* U+001e90: LATIN CAPITAL LETTER Z WITH CIRCUMFLEX*/ - 0x1e90, /* U+001e91: LATIN SMALL LETTER Z WITH CIRCUMFLEX*/ - 0x1e92, /* U+001e92: LATIN CAPITAL LETTER Z WITH DOT BELOW*/ - 0x1e92, /* U+001e93: LATIN SMALL LETTER Z WITH DOT BELOW*/ - 0x1e94, /* U+001e94: LATIN CAPITAL LETTER Z WITH LINE BELOW*/ - 0x1e94, /* U+001e95: LATIN SMALL LETTER Z WITH LINE BELOW*/ - 0x1e96, /* U+001e96: LATIN SMALL LETTER H WITH LINE BELOW*/ - 0x1e97, /* U+001e97: LATIN SMALL LETTER T WITH DIAERESIS*/ - 0x1e98, /* U+001e98: LATIN SMALL LETTER W WITH RING ABOVE*/ - 0x1e99, /* U+001e99: LATIN SMALL LETTER Y WITH RING ABOVE*/ - 0x1e9a, /* U+001e9a: LATIN SMALL LETTER A WITH RIGHT HALF RING*/ - 0x1e60, /* U+001e9b: LATIN SMALL LETTER LONG S WITH DOT ABOVE*/ - 0x1e9c, /* U+001e9c: */ - 0x1e9d, /* U+001e9d: */ - 0x1e9e, /* U+001e9e: */ - 0x1e9f, /* U+001e9f: */ - 0x1ea0, /* U+001ea0: LATIN CAPITAL LETTER A WITH DOT BELOW*/ - 0x1ea0, /* U+001ea1: LATIN SMALL LETTER A WITH DOT BELOW*/ - 0x1ea2, /* U+001ea2: LATIN CAPITAL LETTER A WITH HOOK ABOVE*/ - 0x1ea2, /* U+001ea3: LATIN SMALL LETTER A WITH HOOK ABOVE*/ - 0x1ea4, /* U+001ea4: LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND ACUTE*/ - 0x1ea4, /* U+001ea5: LATIN SMALL LETTER A WITH CIRCUMFLEX AND ACUTE*/ - 0x1ea6, /* U+001ea6: LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND GRAVE*/ - 0x1ea6, /* U+001ea7: LATIN SMALL LETTER A WITH CIRCUMFLEX AND GRAVE*/ - 0x1ea8, /* U+001ea8: LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND HOOK ABOVE*/ - 0x1ea8, /* U+001ea9: LATIN SMALL LETTER A WITH CIRCUMFLEX AND HOOK ABOVE*/ - 0x1eaa, /* U+001eaa: LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND TILDE*/ - 0x1eaa, /* U+001eab: LATIN SMALL LETTER A WITH CIRCUMFLEX AND TILDE*/ - 0x1eac, /* U+001eac: LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND DOT BELOW*/ - 0x1eac, /* U+001ead: LATIN SMALL LETTER A WITH CIRCUMFLEX AND DOT BELOW*/ - 0x1eae, /* U+001eae: LATIN CAPITAL LETTER A WITH BREVE AND ACUTE*/ - 0x1eae, /* U+001eaf: LATIN SMALL LETTER A WITH BREVE AND ACUTE*/ - 0x1eb0, /* U+001eb0: LATIN CAPITAL LETTER A WITH BREVE AND GRAVE*/ - 0x1eb0, /* U+001eb1: LATIN SMALL LETTER A WITH BREVE AND GRAVE*/ - 0x1eb2, /* U+001eb2: LATIN CAPITAL LETTER A WITH BREVE AND HOOK ABOVE*/ - 0x1eb2, /* U+001eb3: LATIN SMALL LETTER A WITH BREVE AND HOOK ABOVE*/ - 0x1eb4, /* U+001eb4: LATIN CAPITAL LETTER A WITH BREVE AND TILDE*/ - 0x1eb4, /* U+001eb5: LATIN SMALL LETTER A WITH BREVE AND TILDE*/ - 0x1eb6, /* U+001eb6: LATIN CAPITAL LETTER A WITH BREVE AND DOT BELOW*/ - 0x1eb6, /* U+001eb7: LATIN SMALL LETTER A WITH BREVE AND DOT BELOW*/ - 0x1eb8, /* U+001eb8: LATIN CAPITAL LETTER E WITH DOT BELOW*/ - 0x1eb8, /* U+001eb9: LATIN SMALL LETTER E WITH DOT BELOW*/ - 0x1eba, /* U+001eba: LATIN CAPITAL LETTER E WITH HOOK ABOVE*/ - 0x1eba, /* U+001ebb: LATIN SMALL LETTER E WITH HOOK ABOVE*/ - 0x1ebc, /* U+001ebc: LATIN CAPITAL LETTER E WITH TILDE*/ - 0x1ebc, /* U+001ebd: LATIN SMALL LETTER E WITH TILDE*/ - 0x1ebe, /* U+001ebe: LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND ACUTE*/ - 0x1ebe, /* U+001ebf: LATIN SMALL LETTER E WITH CIRCUMFLEX AND ACUTE*/ - 0x1ec0, /* U+001ec0: LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND GRAVE*/ - 0x1ec0, /* U+001ec1: LATIN SMALL LETTER E WITH CIRCUMFLEX AND GRAVE*/ - 0x1ec2, /* U+001ec2: LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND HOOK ABOVE*/ - 0x1ec2, /* U+001ec3: LATIN SMALL LETTER E WITH CIRCUMFLEX AND HOOK ABOVE*/ - 0x1ec4, /* U+001ec4: LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND TILDE*/ - 0x1ec4, /* U+001ec5: LATIN SMALL LETTER E WITH CIRCUMFLEX AND TILDE*/ - 0x1ec6, /* U+001ec6: LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND DOT BELOW*/ - 0x1ec6, /* U+001ec7: LATIN SMALL LETTER E WITH CIRCUMFLEX AND DOT BELOW*/ - 0x1ec8, /* U+001ec8: LATIN CAPITAL LETTER I WITH HOOK ABOVE*/ - 0x1ec8, /* U+001ec9: LATIN SMALL LETTER I WITH HOOK ABOVE*/ - 0x1eca, /* U+001eca: LATIN CAPITAL LETTER I WITH DOT BELOW*/ - 0x1eca, /* U+001ecb: LATIN SMALL LETTER I WITH DOT BELOW*/ - 0x1ecc, /* U+001ecc: LATIN CAPITAL LETTER O WITH DOT BELOW*/ - 0x1ecc, /* U+001ecd: LATIN SMALL LETTER O WITH DOT BELOW*/ - 0x1ece, /* U+001ece: LATIN CAPITAL LETTER O WITH HOOK ABOVE*/ - 0x1ece, /* U+001ecf: LATIN SMALL LETTER O WITH HOOK ABOVE*/ - 0x1ed0, /* U+001ed0: LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND ACUTE*/ - 0x1ed0, /* U+001ed1: LATIN SMALL LETTER O WITH CIRCUMFLEX AND ACUTE*/ - 0x1ed2, /* U+001ed2: LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND GRAVE*/ - 0x1ed2, /* U+001ed3: LATIN SMALL LETTER O WITH CIRCUMFLEX AND GRAVE*/ - 0x1ed4, /* U+001ed4: LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND HOOK ABOVE*/ - 0x1ed4, /* U+001ed5: LATIN SMALL LETTER O WITH CIRCUMFLEX AND HOOK ABOVE*/ - 0x1ed6, /* U+001ed6: LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND TILDE*/ - 0x1ed6, /* U+001ed7: LATIN SMALL LETTER O WITH CIRCUMFLEX AND TILDE*/ - 0x1ed8, /* U+001ed8: LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND DOT BELOW*/ - 0x1ed8, /* U+001ed9: LATIN SMALL LETTER O WITH CIRCUMFLEX AND DOT BELOW*/ - 0x1eda, /* U+001eda: LATIN CAPITAL LETTER O WITH HORN AND ACUTE*/ - 0x1eda, /* U+001edb: LATIN SMALL LETTER O WITH HORN AND ACUTE*/ - 0x1edc, /* U+001edc: LATIN CAPITAL LETTER O WITH HORN AND GRAVE*/ - 0x1edc, /* U+001edd: LATIN SMALL LETTER O WITH HORN AND GRAVE*/ - 0x1ede, /* U+001ede: LATIN CAPITAL LETTER O WITH HORN AND HOOK ABOVE*/ - 0x1ede, /* U+001edf: LATIN SMALL LETTER O WITH HORN AND HOOK ABOVE*/ - 0x1ee0, /* U+001ee0: LATIN CAPITAL LETTER O WITH HORN AND TILDE*/ - 0x1ee0, /* U+001ee1: LATIN SMALL LETTER O WITH HORN AND TILDE*/ - 0x1ee2, /* U+001ee2: LATIN CAPITAL LETTER O WITH HORN AND DOT BELOW*/ - 0x1ee2, /* U+001ee3: LATIN SMALL LETTER O WITH HORN AND DOT BELOW*/ - 0x1ee4, /* U+001ee4: LATIN CAPITAL LETTER U WITH DOT BELOW*/ - 0x1ee4, /* U+001ee5: LATIN SMALL LETTER U WITH DOT BELOW*/ - 0x1ee6, /* U+001ee6: LATIN CAPITAL LETTER U WITH HOOK ABOVE*/ - 0x1ee6, /* U+001ee7: LATIN SMALL LETTER U WITH HOOK ABOVE*/ - 0x1ee8, /* U+001ee8: LATIN CAPITAL LETTER U WITH HORN AND ACUTE*/ - 0x1ee8, /* U+001ee9: LATIN SMALL LETTER U WITH HORN AND ACUTE*/ - 0x1eea, /* U+001eea: LATIN CAPITAL LETTER U WITH HORN AND GRAVE*/ - 0x1eea, /* U+001eeb: LATIN SMALL LETTER U WITH HORN AND GRAVE*/ - 0x1eec, /* U+001eec: LATIN CAPITAL LETTER U WITH HORN AND HOOK ABOVE*/ - 0x1eec, /* U+001eed: LATIN SMALL LETTER U WITH HORN AND HOOK ABOVE*/ - 0x1eee, /* U+001eee: LATIN CAPITAL LETTER U WITH HORN AND TILDE*/ - 0x1eee, /* U+001eef: LATIN SMALL LETTER U WITH HORN AND TILDE*/ - 0x1ef0, /* U+001ef0: LATIN CAPITAL LETTER U WITH HORN AND DOT BELOW*/ - 0x1ef0, /* U+001ef1: LATIN SMALL LETTER U WITH HORN AND DOT BELOW*/ - 0x1ef2, /* U+001ef2: LATIN CAPITAL LETTER Y WITH GRAVE*/ - 0x1ef2, /* U+001ef3: LATIN SMALL LETTER Y WITH GRAVE*/ - 0x1ef4, /* U+001ef4: LATIN CAPITAL LETTER Y WITH DOT BELOW*/ - 0x1ef4, /* U+001ef5: LATIN SMALL LETTER Y WITH DOT BELOW*/ - 0x1ef6, /* U+001ef6: LATIN CAPITAL LETTER Y WITH HOOK ABOVE*/ - 0x1ef6, /* U+001ef7: LATIN SMALL LETTER Y WITH HOOK ABOVE*/ - 0x1ef8, /* U+001ef8: LATIN CAPITAL LETTER Y WITH TILDE*/ - 0x1ef8, /* U+001ef9: LATIN SMALL LETTER Y WITH TILDE*/ - 0x1efa, /* U+001efa: */ - 0x1efb, /* U+001efb: */ - 0x1efc, /* U+001efc: */ - 0x1efd, /* U+001efd: */ - 0x1efe, /* U+001efe: */ - 0x1eff, /* U+001eff: */ - 0x1f08, /* U+001f00: GREEK SMALL LETTER ALPHA WITH PSILI*/ - 0x1f09, /* U+001f01: GREEK SMALL LETTER ALPHA WITH DASIA*/ - 0x1f0a, /* U+001f02: GREEK SMALL LETTER ALPHA WITH PSILI AND VARIA*/ - 0x1f0b, /* U+001f03: GREEK SMALL LETTER ALPHA WITH DASIA AND VARIA*/ - 0x1f0c, /* U+001f04: GREEK SMALL LETTER ALPHA WITH PSILI AND OXIA*/ - 0x1f0d, /* U+001f05: GREEK SMALL LETTER ALPHA WITH DASIA AND OXIA*/ - 0x1f0e, /* U+001f06: GREEK SMALL LETTER ALPHA WITH PSILI AND PERISPOMENI*/ - 0x1f0f, /* U+001f07: GREEK SMALL LETTER ALPHA WITH DASIA AND PERISPOMENI*/ - 0x1f08, /* U+001f08: GREEK CAPITAL LETTER ALPHA WITH PSILI*/ - 0x1f09, /* U+001f09: GREEK CAPITAL LETTER ALPHA WITH DASIA*/ - 0x1f0a, /* U+001f0a: GREEK CAPITAL LETTER ALPHA WITH PSILI AND VARIA*/ - 0x1f0b, /* U+001f0b: GREEK CAPITAL LETTER ALPHA WITH DASIA AND VARIA*/ - 0x1f0c, /* U+001f0c: GREEK CAPITAL LETTER ALPHA WITH PSILI AND OXIA*/ - 0x1f0d, /* U+001f0d: GREEK CAPITAL LETTER ALPHA WITH DASIA AND OXIA*/ - 0x1f0e, /* U+001f0e: GREEK CAPITAL LETTER ALPHA WITH PSILI AND PERISPOMENI*/ - 0x1f0f, /* U+001f0f: GREEK CAPITAL LETTER ALPHA WITH DASIA AND PERISPOMENI*/ - 0x1f18, /* U+001f10: GREEK SMALL LETTER EPSILON WITH PSILI*/ - 0x1f19, /* U+001f11: GREEK SMALL LETTER EPSILON WITH DASIA*/ - 0x1f1a, /* U+001f12: GREEK SMALL LETTER EPSILON WITH PSILI AND VARIA*/ - 0x1f1b, /* U+001f13: GREEK SMALL LETTER EPSILON WITH DASIA AND VARIA*/ - 0x1f1c, /* U+001f14: GREEK SMALL LETTER EPSILON WITH PSILI AND OXIA*/ - 0x1f1d, /* U+001f15: GREEK SMALL LETTER EPSILON WITH DASIA AND OXIA*/ - 0x1f16, /* U+001f16: */ - 0x1f17, /* U+001f17: */ - 0x1f18, /* U+001f18: GREEK CAPITAL LETTER EPSILON WITH PSILI*/ - 0x1f19, /* U+001f19: GREEK CAPITAL LETTER EPSILON WITH DASIA*/ - 0x1f1a, /* U+001f1a: GREEK CAPITAL LETTER EPSILON WITH PSILI AND VARIA*/ - 0x1f1b, /* U+001f1b: GREEK CAPITAL LETTER EPSILON WITH DASIA AND VARIA*/ - 0x1f1c, /* U+001f1c: GREEK CAPITAL LETTER EPSILON WITH PSILI AND OXIA*/ - 0x1f1d, /* U+001f1d: GREEK CAPITAL LETTER EPSILON WITH DASIA AND OXIA*/ - 0x1f1e, /* U+001f1e: */ - 0x1f1f, /* U+001f1f: */ - 0x1f28, /* U+001f20: GREEK SMALL LETTER ETA WITH PSILI*/ - 0x1f29, /* U+001f21: GREEK SMALL LETTER ETA WITH DASIA*/ - 0x1f2a, /* U+001f22: GREEK SMALL LETTER ETA WITH PSILI AND VARIA*/ - 0x1f2b, /* U+001f23: GREEK SMALL LETTER ETA WITH DASIA AND VARIA*/ - 0x1f2c, /* U+001f24: GREEK SMALL LETTER ETA WITH PSILI AND OXIA*/ - 0x1f2d, /* U+001f25: GREEK SMALL LETTER ETA WITH DASIA AND OXIA*/ - 0x1f2e, /* U+001f26: GREEK SMALL LETTER ETA WITH PSILI AND PERISPOMENI*/ - 0x1f2f, /* U+001f27: GREEK SMALL LETTER ETA WITH DASIA AND PERISPOMENI*/ - 0x1f28, /* U+001f28: GREEK CAPITAL LETTER ETA WITH PSILI*/ - 0x1f29, /* U+001f29: GREEK CAPITAL LETTER ETA WITH DASIA*/ - 0x1f2a, /* U+001f2a: GREEK CAPITAL LETTER ETA WITH PSILI AND VARIA*/ - 0x1f2b, /* U+001f2b: GREEK CAPITAL LETTER ETA WITH DASIA AND VARIA*/ - 0x1f2c, /* U+001f2c: GREEK CAPITAL LETTER ETA WITH PSILI AND OXIA*/ - 0x1f2d, /* U+001f2d: GREEK CAPITAL LETTER ETA WITH DASIA AND OXIA*/ - 0x1f2e, /* U+001f2e: GREEK CAPITAL LETTER ETA WITH PSILI AND PERISPOMENI*/ - 0x1f2f, /* U+001f2f: GREEK CAPITAL LETTER ETA WITH DASIA AND PERISPOMENI*/ - 0x1f38, /* U+001f30: GREEK SMALL LETTER IOTA WITH PSILI*/ - 0x1f39, /* U+001f31: GREEK SMALL LETTER IOTA WITH DASIA*/ - 0x1f3a, /* U+001f32: GREEK SMALL LETTER IOTA WITH PSILI AND VARIA*/ - 0x1f3b, /* U+001f33: GREEK SMALL LETTER IOTA WITH DASIA AND VARIA*/ - 0x1f3c, /* U+001f34: GREEK SMALL LETTER IOTA WITH PSILI AND OXIA*/ - 0x1f3d, /* U+001f35: GREEK SMALL LETTER IOTA WITH DASIA AND OXIA*/ - 0x1f3e, /* U+001f36: GREEK SMALL LETTER IOTA WITH PSILI AND PERISPOMENI*/ - 0x1f3f, /* U+001f37: GREEK SMALL LETTER IOTA WITH DASIA AND PERISPOMENI*/ - 0x1f38, /* U+001f38: GREEK CAPITAL LETTER IOTA WITH PSILI*/ - 0x1f39, /* U+001f39: GREEK CAPITAL LETTER IOTA WITH DASIA*/ - 0x1f3a, /* U+001f3a: GREEK CAPITAL LETTER IOTA WITH PSILI AND VARIA*/ - 0x1f3b, /* U+001f3b: GREEK CAPITAL LETTER IOTA WITH DASIA AND VARIA*/ - 0x1f3c, /* U+001f3c: GREEK CAPITAL LETTER IOTA WITH PSILI AND OXIA*/ - 0x1f3d, /* U+001f3d: GREEK CAPITAL LETTER IOTA WITH DASIA AND OXIA*/ - 0x1f3e, /* U+001f3e: GREEK CAPITAL LETTER IOTA WITH PSILI AND PERISPOMENI*/ - 0x1f3f, /* U+001f3f: GREEK CAPITAL LETTER IOTA WITH DASIA AND PERISPOMENI*/ - 0x1f48, /* U+001f40: GREEK SMALL LETTER OMICRON WITH PSILI*/ - 0x1f49, /* U+001f41: GREEK SMALL LETTER OMICRON WITH DASIA*/ - 0x1f4a, /* U+001f42: GREEK SMALL LETTER OMICRON WITH PSILI AND VARIA*/ - 0x1f4b, /* U+001f43: GREEK SMALL LETTER OMICRON WITH DASIA AND VARIA*/ - 0x1f4c, /* U+001f44: GREEK SMALL LETTER OMICRON WITH PSILI AND OXIA*/ - 0x1f4d, /* U+001f45: GREEK SMALL LETTER OMICRON WITH DASIA AND OXIA*/ - 0x1f46, /* U+001f46: */ - 0x1f47, /* U+001f47: */ - 0x1f48, /* U+001f48: GREEK CAPITAL LETTER OMICRON WITH PSILI*/ - 0x1f49, /* U+001f49: GREEK CAPITAL LETTER OMICRON WITH DASIA*/ - 0x1f4a, /* U+001f4a: GREEK CAPITAL LETTER OMICRON WITH PSILI AND VARIA*/ - 0x1f4b, /* U+001f4b: GREEK CAPITAL LETTER OMICRON WITH DASIA AND VARIA*/ - 0x1f4c, /* U+001f4c: GREEK CAPITAL LETTER OMICRON WITH PSILI AND OXIA*/ - 0x1f4d, /* U+001f4d: GREEK CAPITAL LETTER OMICRON WITH DASIA AND OXIA*/ - 0x1f4e, /* U+001f4e: */ - 0x1f4f, /* U+001f4f: */ - 0x1f50, /* U+001f50: GREEK SMALL LETTER UPSILON WITH PSILI*/ - 0x1f59, /* U+001f51: GREEK SMALL LETTER UPSILON WITH DASIA*/ - 0x1f52, /* U+001f52: GREEK SMALL LETTER UPSILON WITH PSILI AND VARIA*/ - 0x1f5b, /* U+001f53: GREEK SMALL LETTER UPSILON WITH DASIA AND VARIA*/ - 0x1f54, /* U+001f54: GREEK SMALL LETTER UPSILON WITH PSILI AND OXIA*/ - 0x1f5d, /* U+001f55: GREEK SMALL LETTER UPSILON WITH DASIA AND OXIA*/ - 0x1f56, /* U+001f56: GREEK SMALL LETTER UPSILON WITH PSILI AND PERISPOMENI*/ - 0x1f5f, /* U+001f57: GREEK SMALL LETTER UPSILON WITH DASIA AND PERISPOMENI*/ - 0x1f58, /* U+001f58: */ - 0x1f59, /* U+001f59: GREEK CAPITAL LETTER UPSILON WITH DASIA*/ - 0x1f5a, /* U+001f5a: */ - 0x1f5b, /* U+001f5b: GREEK CAPITAL LETTER UPSILON WITH DASIA AND VARIA*/ - 0x1f5c, /* U+001f5c: */ - 0x1f5d, /* U+001f5d: GREEK CAPITAL LETTER UPSILON WITH DASIA AND OXIA*/ - 0x1f5e, /* U+001f5e: */ - 0x1f5f, /* U+001f5f: GREEK CAPITAL LETTER UPSILON WITH DASIA AND PERISPOMENI*/ - 0x1f68, /* U+001f60: GREEK SMALL LETTER OMEGA WITH PSILI*/ - 0x1f69, /* U+001f61: GREEK SMALL LETTER OMEGA WITH DASIA*/ - 0x1f6a, /* U+001f62: GREEK SMALL LETTER OMEGA WITH PSILI AND VARIA*/ - 0x1f6b, /* U+001f63: GREEK SMALL LETTER OMEGA WITH DASIA AND VARIA*/ - 0x1f6c, /* U+001f64: GREEK SMALL LETTER OMEGA WITH PSILI AND OXIA*/ - 0x1f6d, /* U+001f65: GREEK SMALL LETTER OMEGA WITH DASIA AND OXIA*/ - 0x1f6e, /* U+001f66: GREEK SMALL LETTER OMEGA WITH PSILI AND PERISPOMENI*/ - 0x1f6f, /* U+001f67: GREEK SMALL LETTER OMEGA WITH DASIA AND PERISPOMENI*/ - 0x1f68, /* U+001f68: GREEK CAPITAL LETTER OMEGA WITH PSILI*/ - 0x1f69, /* U+001f69: GREEK CAPITAL LETTER OMEGA WITH DASIA*/ - 0x1f6a, /* U+001f6a: GREEK CAPITAL LETTER OMEGA WITH PSILI AND VARIA*/ - 0x1f6b, /* U+001f6b: GREEK CAPITAL LETTER OMEGA WITH DASIA AND VARIA*/ - 0x1f6c, /* U+001f6c: GREEK CAPITAL LETTER OMEGA WITH PSILI AND OXIA*/ - 0x1f6d, /* U+001f6d: GREEK CAPITAL LETTER OMEGA WITH DASIA AND OXIA*/ - 0x1f6e, /* U+001f6e: GREEK CAPITAL LETTER OMEGA WITH PSILI AND PERISPOMENI*/ - 0x1f6f, /* U+001f6f: GREEK CAPITAL LETTER OMEGA WITH DASIA AND PERISPOMENI*/ - 0x1fba, /* U+001f70: GREEK SMALL LETTER ALPHA WITH VARIA*/ - 0x1fbb, /* U+001f71: GREEK SMALL LETTER ALPHA WITH OXIA*/ - 0x1fc8, /* U+001f72: GREEK SMALL LETTER EPSILON WITH VARIA*/ - 0x1fc9, /* U+001f73: GREEK SMALL LETTER EPSILON WITH OXIA*/ - 0x1fca, /* U+001f74: GREEK SMALL LETTER ETA WITH VARIA*/ - 0x1fcb, /* U+001f75: GREEK SMALL LETTER ETA WITH OXIA*/ - 0x1fda, /* U+001f76: GREEK SMALL LETTER IOTA WITH VARIA*/ - 0x1fdb, /* U+001f77: GREEK SMALL LETTER IOTA WITH OXIA*/ - 0x1ff8, /* U+001f78: GREEK SMALL LETTER OMICRON WITH VARIA*/ - 0x1ff9, /* U+001f79: GREEK SMALL LETTER OMICRON WITH OXIA*/ - 0x1fea, /* U+001f7a: GREEK SMALL LETTER UPSILON WITH VARIA*/ - 0x1feb, /* U+001f7b: GREEK SMALL LETTER UPSILON WITH OXIA*/ - 0x1ffa, /* U+001f7c: GREEK SMALL LETTER OMEGA WITH VARIA*/ - 0x1ffb, /* U+001f7d: GREEK SMALL LETTER OMEGA WITH OXIA*/ - 0x1f7e, /* U+001f7e: */ - 0x1f7f, /* U+001f7f: */ - 0x1f88, /* U+001f80: GREEK SMALL LETTER ALPHA WITH PSILI AND YPOGEGRAMMENI*/ - 0x1f89, /* U+001f81: GREEK SMALL LETTER ALPHA WITH DASIA AND YPOGEGRAMMENI*/ - 0x1f8a, /* U+001f82: GREEK SMALL LETTER ALPHA WITH PSILI AND VARIA AND YPOGEGRAMMENI*/ - 0x1f8b, /* U+001f83: GREEK SMALL LETTER ALPHA WITH DASIA AND VARIA AND YPOGEGRAMMENI*/ - 0x1f8c, /* U+001f84: GREEK SMALL LETTER ALPHA WITH PSILI AND OXIA AND YPOGEGRAMMENI*/ - 0x1f8d, /* U+001f85: GREEK SMALL LETTER ALPHA WITH DASIA AND OXIA AND YPOGEGRAMMENI*/ - 0x1f8e, /* U+001f86: GREEK SMALL LETTER ALPHA WITH PSILI AND PERISPOMENI AND YPOGEGRAMMENI*/ - 0x1f8f, /* U+001f87: GREEK SMALL LETTER ALPHA WITH DASIA AND PERISPOMENI AND YPOGEGRAMMENI*/ - 0x1f88, /* U+001f88: GREEK CAPITAL LETTER ALPHA WITH PSILI AND PROSGEGRAMMENI*/ - 0x1f89, /* U+001f89: GREEK CAPITAL LETTER ALPHA WITH DASIA AND PROSGEGRAMMENI*/ - 0x1f8a, /* U+001f8a: GREEK CAPITAL LETTER ALPHA WITH PSILI AND VARIA AND PROSGEGRAMMENI*/ - 0x1f8b, /* U+001f8b: GREEK CAPITAL LETTER ALPHA WITH DASIA AND VARIA AND PROSGEGRAMMENI*/ - 0x1f8c, /* U+001f8c: GREEK CAPITAL LETTER ALPHA WITH PSILI AND OXIA AND PROSGEGRAMMENI*/ - 0x1f8d, /* U+001f8d: GREEK CAPITAL LETTER ALPHA WITH DASIA AND OXIA AND PROSGEGRAMMENI*/ - 0x1f8e, /* U+001f8e: GREEK CAPITAL LETTER ALPHA WITH PSILI AND PERISPOMENI AND PROSGEGRAMMENI*/ - 0x1f8f, /* U+001f8f: GREEK CAPITAL LETTER ALPHA WITH DASIA AND PERISPOMENI AND PROSGEGRAMMENI*/ - 0x1f98, /* U+001f90: GREEK SMALL LETTER ETA WITH PSILI AND YPOGEGRAMMENI*/ - 0x1f99, /* U+001f91: GREEK SMALL LETTER ETA WITH DASIA AND YPOGEGRAMMENI*/ - 0x1f9a, /* U+001f92: GREEK SMALL LETTER ETA WITH PSILI AND VARIA AND YPOGEGRAMMENI*/ - 0x1f9b, /* U+001f93: GREEK SMALL LETTER ETA WITH DASIA AND VARIA AND YPOGEGRAMMENI*/ - 0x1f9c, /* U+001f94: GREEK SMALL LETTER ETA WITH PSILI AND OXIA AND YPOGEGRAMMENI*/ - 0x1f9d, /* U+001f95: GREEK SMALL LETTER ETA WITH DASIA AND OXIA AND YPOGEGRAMMENI*/ - 0x1f9e, /* U+001f96: GREEK SMALL LETTER ETA WITH PSILI AND PERISPOMENI AND YPOGEGRAMMENI*/ - 0x1f9f, /* U+001f97: GREEK SMALL LETTER ETA WITH DASIA AND PERISPOMENI AND YPOGEGRAMMENI*/ - 0x1f98, /* U+001f98: GREEK CAPITAL LETTER ETA WITH PSILI AND PROSGEGRAMMENI*/ - 0x1f99, /* U+001f99: GREEK CAPITAL LETTER ETA WITH DASIA AND PROSGEGRAMMENI*/ - 0x1f9a, /* U+001f9a: GREEK CAPITAL LETTER ETA WITH PSILI AND VARIA AND PROSGEGRAMMENI*/ - 0x1f9b, /* U+001f9b: GREEK CAPITAL LETTER ETA WITH DASIA AND VARIA AND PROSGEGRAMMENI*/ - 0x1f9c, /* U+001f9c: GREEK CAPITAL LETTER ETA WITH PSILI AND OXIA AND PROSGEGRAMMENI*/ - 0x1f9d, /* U+001f9d: GREEK CAPITAL LETTER ETA WITH DASIA AND OXIA AND PROSGEGRAMMENI*/ - 0x1f9e, /* U+001f9e: GREEK CAPITAL LETTER ETA WITH PSILI AND PERISPOMENI AND PROSGEGRAMMENI*/ - 0x1f9f, /* U+001f9f: GREEK CAPITAL LETTER ETA WITH DASIA AND PERISPOMENI AND PROSGEGRAMMENI*/ - 0x1fa8, /* U+001fa0: GREEK SMALL LETTER OMEGA WITH PSILI AND YPOGEGRAMMENI*/ - 0x1fa9, /* U+001fa1: GREEK SMALL LETTER OMEGA WITH DASIA AND YPOGEGRAMMENI*/ - 0x1faa, /* U+001fa2: GREEK SMALL LETTER OMEGA WITH PSILI AND VARIA AND YPOGEGRAMMENI*/ - 0x1fab, /* U+001fa3: GREEK SMALL LETTER OMEGA WITH DASIA AND VARIA AND YPOGEGRAMMENI*/ - 0x1fac, /* U+001fa4: GREEK SMALL LETTER OMEGA WITH PSILI AND OXIA AND YPOGEGRAMMENI*/ - 0x1fad, /* U+001fa5: GREEK SMALL LETTER OMEGA WITH DASIA AND OXIA AND YPOGEGRAMMENI*/ - 0x1fae, /* U+001fa6: GREEK SMALL LETTER OMEGA WITH PSILI AND PERISPOMENI AND YPOGEGRAMMENI*/ - 0x1faf, /* U+001fa7: GREEK SMALL LETTER OMEGA WITH DASIA AND PERISPOMENI AND YPOGEGRAMMENI*/ - 0x1fa8, /* U+001fa8: GREEK CAPITAL LETTER OMEGA WITH PSILI AND PROSGEGRAMMENI*/ - 0x1fa9, /* U+001fa9: GREEK CAPITAL LETTER OMEGA WITH DASIA AND PROSGEGRAMMENI*/ - 0x1faa, /* U+001faa: GREEK CAPITAL LETTER OMEGA WITH PSILI AND VARIA AND PROSGEGRAMMENI*/ - 0x1fab, /* U+001fab: GREEK CAPITAL LETTER OMEGA WITH DASIA AND VARIA AND PROSGEGRAMMENI*/ - 0x1fac, /* U+001fac: GREEK CAPITAL LETTER OMEGA WITH PSILI AND OXIA AND PROSGEGRAMMENI*/ - 0x1fad, /* U+001fad: GREEK CAPITAL LETTER OMEGA WITH DASIA AND OXIA AND PROSGEGRAMMENI*/ - 0x1fae, /* U+001fae: GREEK CAPITAL LETTER OMEGA WITH PSILI AND PERISPOMENI AND PROSGEGRAMMENI*/ - 0x1faf, /* U+001faf: GREEK CAPITAL LETTER OMEGA WITH DASIA AND PERISPOMENI AND PROSGEGRAMMENI*/ - 0x1fb8, /* U+001fb0: GREEK SMALL LETTER ALPHA WITH VRACHY*/ - 0x1fb9, /* U+001fb1: GREEK SMALL LETTER ALPHA WITH MACRON*/ - 0x1fb2, /* U+001fb2: GREEK SMALL LETTER ALPHA WITH VARIA AND YPOGEGRAMMENI*/ - 0x1fbc, /* U+001fb3: GREEK SMALL LETTER ALPHA WITH YPOGEGRAMMENI*/ - 0x1fb4, /* U+001fb4: GREEK SMALL LETTER ALPHA WITH OXIA AND YPOGEGRAMMENI*/ - 0x1fb5, /* U+001fb5: */ - 0x1fb6, /* U+001fb6: GREEK SMALL LETTER ALPHA WITH PERISPOMENI*/ - 0x1fb7, /* U+001fb7: GREEK SMALL LETTER ALPHA WITH PERISPOMENI AND YPOGEGRAMMENI*/ - 0x1fb8, /* U+001fb8: GREEK CAPITAL LETTER ALPHA WITH VRACHY*/ - 0x1fb9, /* U+001fb9: GREEK CAPITAL LETTER ALPHA WITH MACRON*/ - 0x1fba, /* U+001fba: GREEK CAPITAL LETTER ALPHA WITH VARIA*/ - 0x1fbb, /* U+001fbb: GREEK CAPITAL LETTER ALPHA WITH OXIA*/ - 0x1fbc, /* U+001fbc: GREEK CAPITAL LETTER ALPHA WITH PROSGEGRAMMENI*/ - 0x1fbd, /* U+001fbd: GREEK KORONIS*/ - 0x399, /* U+001fbe: GREEK PROSGEGRAMMENI*/ - 0x1fbf, /* U+001fbf: GREEK PSILI*/ - 0x1fc0, /* U+001fc0: GREEK PERISPOMENI*/ - 0x1fc1, /* U+001fc1: GREEK DIALYTIKA AND PERISPOMENI*/ - 0x1fc2, /* U+001fc2: GREEK SMALL LETTER ETA WITH VARIA AND YPOGEGRAMMENI*/ - 0x1fcc, /* U+001fc3: GREEK SMALL LETTER ETA WITH YPOGEGRAMMENI*/ - 0x1fc4, /* U+001fc4: GREEK SMALL LETTER ETA WITH OXIA AND YPOGEGRAMMENI*/ - 0x1fc5, /* U+001fc5: */ - 0x1fc6, /* U+001fc6: GREEK SMALL LETTER ETA WITH PERISPOMENI*/ - 0x1fc7, /* U+001fc7: GREEK SMALL LETTER ETA WITH PERISPOMENI AND YPOGEGRAMMENI*/ - 0x1fc8, /* U+001fc8: GREEK CAPITAL LETTER EPSILON WITH VARIA*/ - 0x1fc9, /* U+001fc9: GREEK CAPITAL LETTER EPSILON WITH OXIA*/ - 0x1fca, /* U+001fca: GREEK CAPITAL LETTER ETA WITH VARIA*/ - 0x1fcb, /* U+001fcb: GREEK CAPITAL LETTER ETA WITH OXIA*/ - 0x1fcc, /* U+001fcc: GREEK CAPITAL LETTER ETA WITH PROSGEGRAMMENI*/ - 0x1fcd, /* U+001fcd: GREEK PSILI AND VARIA*/ - 0x1fce, /* U+001fce: GREEK PSILI AND OXIA*/ - 0x1fcf, /* U+001fcf: GREEK PSILI AND PERISPOMENI*/ - 0x1fd8, /* U+001fd0: GREEK SMALL LETTER IOTA WITH VRACHY*/ - 0x1fd9, /* U+001fd1: GREEK SMALL LETTER IOTA WITH MACRON*/ - 0x1fd2, /* U+001fd2: GREEK SMALL LETTER IOTA WITH DIALYTIKA AND VARIA*/ - 0x1fd3, /* U+001fd3: GREEK SMALL LETTER IOTA WITH DIALYTIKA AND OXIA*/ - 0x1fd4, /* U+001fd4: */ - 0x1fd5, /* U+001fd5: */ - 0x1fd6, /* U+001fd6: GREEK SMALL LETTER IOTA WITH PERISPOMENI*/ - 0x1fd7, /* U+001fd7: GREEK SMALL LETTER IOTA WITH DIALYTIKA AND PERISPOMENI*/ - 0x1fd8, /* U+001fd8: GREEK CAPITAL LETTER IOTA WITH VRACHY*/ - 0x1fd9, /* U+001fd9: GREEK CAPITAL LETTER IOTA WITH MACRON*/ - 0x1fda, /* U+001fda: GREEK CAPITAL LETTER IOTA WITH VARIA*/ - 0x1fdb, /* U+001fdb: GREEK CAPITAL LETTER IOTA WITH OXIA*/ - 0x1fdc, /* U+001fdc: */ - 0x1fdd, /* U+001fdd: GREEK DASIA AND VARIA*/ - 0x1fde, /* U+001fde: GREEK DASIA AND OXIA*/ - 0x1fdf, /* U+001fdf: GREEK DASIA AND PERISPOMENI*/ - 0x1fe8, /* U+001fe0: GREEK SMALL LETTER UPSILON WITH VRACHY*/ - 0x1fe9, /* U+001fe1: GREEK SMALL LETTER UPSILON WITH MACRON*/ - 0x1fe2, /* U+001fe2: GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND VARIA*/ - 0x1fe3, /* U+001fe3: GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND OXIA*/ - 0x1fe4, /* U+001fe4: GREEK SMALL LETTER RHO WITH PSILI*/ - 0x1fec, /* U+001fe5: GREEK SMALL LETTER RHO WITH DASIA*/ - 0x1fe6, /* U+001fe6: GREEK SMALL LETTER UPSILON WITH PERISPOMENI*/ - 0x1fe7, /* U+001fe7: GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND PERISPOMENI*/ - 0x1fe8, /* U+001fe8: GREEK CAPITAL LETTER UPSILON WITH VRACHY*/ - 0x1fe9, /* U+001fe9: GREEK CAPITAL LETTER UPSILON WITH MACRON*/ - 0x1fea, /* U+001fea: GREEK CAPITAL LETTER UPSILON WITH VARIA*/ - 0x1feb, /* U+001feb: GREEK CAPITAL LETTER UPSILON WITH OXIA*/ - 0x1fec, /* U+001fec: GREEK CAPITAL LETTER RHO WITH DASIA*/ - 0x1fed, /* U+001fed: GREEK DIALYTIKA AND VARIA*/ - 0x1fee, /* U+001fee: GREEK DIALYTIKA AND OXIA*/ - 0x1fef, /* U+001fef: GREEK VARIA*/ - 0x1ff0, /* U+001ff0: */ - 0x1ff1, /* U+001ff1: */ - 0x1ff2, /* U+001ff2: GREEK SMALL LETTER OMEGA WITH VARIA AND YPOGEGRAMMENI*/ - 0x1ffc, /* U+001ff3: GREEK SMALL LETTER OMEGA WITH YPOGEGRAMMENI*/ - 0x1ff4, /* U+001ff4: GREEK SMALL LETTER OMEGA WITH OXIA AND YPOGEGRAMMENI*/ - 0x1ff5, /* U+001ff5: */ - 0x1ff6, /* U+001ff6: GREEK SMALL LETTER OMEGA WITH PERISPOMENI*/ - 0x1ff7, /* U+001ff7: GREEK SMALL LETTER OMEGA WITH PERISPOMENI AND YPOGEGRAMMENI*/ - 0x1ff8, /* U+001ff8: GREEK CAPITAL LETTER OMICRON WITH VARIA*/ - 0x1ff9, /* U+001ff9: GREEK CAPITAL LETTER OMICRON WITH OXIA*/ - 0x1ffa, /* U+001ffa: GREEK CAPITAL LETTER OMEGA WITH VARIA*/ - 0x1ffb, /* U+001ffb: GREEK CAPITAL LETTER OMEGA WITH OXIA*/ - 0x1ffc, /* U+001ffc: GREEK CAPITAL LETTER OMEGA WITH PROSGEGRAMMENI*/ - 0x1ffd, /* U+001ffd: GREEK OXIA*/ - 0x1ffe, /* U+001ffe: GREEK DASIA*/ - 0x1fff, /* U+001fff: */ - 0x2000, /* U+002000: EN QUAD*/ - 0x2001, /* U+002001: EM QUAD*/ - 0x2002, /* U+002002: EN SPACE*/ - 0x2003, /* U+002003: EM SPACE*/ - 0x2004, /* U+002004: THREE-PER-EM SPACE*/ - 0x2005, /* U+002005: FOUR-PER-EM SPACE*/ - 0x2006, /* U+002006: SIX-PER-EM SPACE*/ - 0x2007, /* U+002007: FIGURE SPACE*/ - 0x2008, /* U+002008: PUNCTUATION SPACE*/ - 0x2009, /* U+002009: THIN SPACE*/ - 0x200a, /* U+00200a: HAIR SPACE*/ - 0x200b, /* U+00200b: ZERO WIDTH SPACE*/ - 0x200c, /* U+00200c: ZERO WIDTH NON-JOINER*/ - 0x200d, /* U+00200d: ZERO WIDTH JOINER*/ - 0x200e, /* U+00200e: LEFT-TO-RIGHT MARK*/ - 0x200f, /* U+00200f: RIGHT-TO-LEFT MARK*/ - 0x2010, /* U+002010: HYPHEN*/ - 0x2011, /* U+002011: NON-BREAKING HYPHEN*/ - 0x2012, /* U+002012: FIGURE DASH*/ - 0x2013, /* U+002013: EN DASH*/ - 0x2014, /* U+002014: EM DASH*/ - 0x2015, /* U+002015: HORIZONTAL BAR*/ - 0x2016, /* U+002016: DOUBLE VERTICAL LINE*/ - 0x2017, /* U+002017: DOUBLE LOW LINE*/ - 0x2018, /* U+002018: LEFT SINGLE QUOTATION MARK*/ - 0x2019, /* U+002019: RIGHT SINGLE QUOTATION MARK*/ - 0x201a, /* U+00201a: SINGLE LOW-9 QUOTATION MARK*/ - 0x201b, /* U+00201b: SINGLE HIGH-REVERSED-9 QUOTATION MARK*/ - 0x201c, /* U+00201c: LEFT DOUBLE QUOTATION MARK*/ - 0x201d, /* U+00201d: RIGHT DOUBLE QUOTATION MARK*/ - 0x201e, /* U+00201e: DOUBLE LOW-9 QUOTATION MARK*/ - 0x201f, /* U+00201f: DOUBLE HIGH-REVERSED-9 QUOTATION MARK*/ - 0x2020, /* U+002020: DAGGER*/ - 0x2021, /* U+002021: DOUBLE DAGGER*/ - 0x2022, /* U+002022: BULLET*/ - 0x2023, /* U+002023: TRIANGULAR BULLET*/ - 0x2024, /* U+002024: ONE DOT LEADER*/ - 0x2025, /* U+002025: TWO DOT LEADER*/ - 0x2026, /* U+002026: HORIZONTAL ELLIPSIS*/ - 0x2027, /* U+002027: HYPHENATION POINT*/ - 0x2028, /* U+002028: LINE SEPARATOR*/ - 0x2029, /* U+002029: PARAGRAPH SEPARATOR*/ - 0x202a, /* U+00202a: LEFT-TO-RIGHT EMBEDDING*/ - 0x202b, /* U+00202b: RIGHT-TO-LEFT EMBEDDING*/ - 0x202c, /* U+00202c: POP DIRECTIONAL FORMATTING*/ - 0x202d, /* U+00202d: LEFT-TO-RIGHT OVERRIDE*/ - 0x202e, /* U+00202e: RIGHT-TO-LEFT OVERRIDE*/ - 0x202f, /* U+00202f: NARROW NO-BREAK SPACE*/ - 0x2030, /* U+002030: PER MILLE SIGN*/ - 0x2031, /* U+002031: PER TEN THOUSAND SIGN*/ - 0x2032, /* U+002032: PRIME*/ - 0x2033, /* U+002033: DOUBLE PRIME*/ - 0x2034, /* U+002034: TRIPLE PRIME*/ - 0x2035, /* U+002035: REVERSED PRIME*/ - 0x2036, /* U+002036: REVERSED DOUBLE PRIME*/ - 0x2037, /* U+002037: REVERSED TRIPLE PRIME*/ - 0x2038, /* U+002038: CARET*/ - 0x2039, /* U+002039: SINGLE LEFT-POINTING ANGLE QUOTATION MARK*/ - 0x203a, /* U+00203a: SINGLE RIGHT-POINTING ANGLE QUOTATION MARK*/ - 0x203b, /* U+00203b: REFERENCE MARK*/ - 0x203c, /* U+00203c: DOUBLE EXCLAMATION MARK*/ - 0x203d, /* U+00203d: INTERROBANG*/ - 0x203e, /* U+00203e: OVERLINE*/ - 0x203f, /* U+00203f: UNDERTIE*/ - 0x2040, /* U+002040: CHARACTER TIE*/ - 0x2041, /* U+002041: CARET INSERTION POINT*/ - 0x2042, /* U+002042: ASTERISM*/ - 0x2043, /* U+002043: HYPHEN BULLET*/ - 0x2044, /* U+002044: FRACTION SLASH*/ - 0x2045, /* U+002045: LEFT SQUARE BRACKET WITH QUILL*/ - 0x2046, /* U+002046: RIGHT SQUARE BRACKET WITH QUILL*/ - 0x2047, /* U+002047: DOUBLE QUESTION MARK*/ - 0x2048, /* U+002048: QUESTION EXCLAMATION MARK*/ - 0x2049, /* U+002049: EXCLAMATION QUESTION MARK*/ - 0x204a, /* U+00204a: TIRONIAN SIGN ET*/ - 0x204b, /* U+00204b: REVERSED PILCROW SIGN*/ - 0x204c, /* U+00204c: BLACK LEFTWARDS BULLET*/ - 0x204d, /* U+00204d: BLACK RIGHTWARDS BULLET*/ - 0x204e, /* U+00204e: LOW ASTERISK*/ - 0x204f, /* U+00204f: REVERSED SEMICOLON*/ - 0x2050, /* U+002050: CLOSE UP*/ - 0x2051, /* U+002051: TWO ASTERISKS ALIGNED VERTICALLY*/ - 0x2052, /* U+002052: COMMERCIAL MINUS SIGN*/ - 0x2053, /* U+002053: SWUNG DASH*/ - 0x2054, /* U+002054: INVERTED UNDERTIE*/ - 0x2055, /* U+002055: FLOWER PUNCTUATION MARK*/ - 0x2056, /* U+002056: THREE DOT PUNCTUATION*/ - 0x2057, /* U+002057: QUADRUPLE PRIME*/ - 0x2058, /* U+002058: FOUR DOT PUNCTUATION*/ - 0x2059, /* U+002059: FIVE DOT PUNCTUATION*/ - 0x205a, /* U+00205a: TWO DOT PUNCTUATION*/ - 0x205b, /* U+00205b: FOUR DOT MARK*/ - 0x205c, /* U+00205c: DOTTED CROSS*/ - 0x205d, /* U+00205d: TRICOLON*/ - 0x205e, /* U+00205e: VERTICAL FOUR DOTS*/ - 0x205f, /* U+00205f: MEDIUM MATHEMATICAL SPACE*/ - 0x2060, /* U+002060: WORD JOINER*/ - 0x2061, /* U+002061: FUNCTION APPLICATION*/ - 0x2062, /* U+002062: INVISIBLE TIMES*/ - 0x2063, /* U+002063: INVISIBLE SEPARATOR*/ - 0x2064, /* U+002064: */ - 0x2065, /* U+002065: */ - 0x2066, /* U+002066: */ - 0x2067, /* U+002067: */ - 0x2068, /* U+002068: */ - 0x2069, /* U+002069: */ - 0x206a, /* U+00206a: INHIBIT SYMMETRIC SWAPPING*/ - 0x206b, /* U+00206b: ACTIVATE SYMMETRIC SWAPPING*/ - 0x206c, /* U+00206c: INHIBIT ARABIC FORM SHAPING*/ - 0x206d, /* U+00206d: ACTIVATE ARABIC FORM SHAPING*/ - 0x206e, /* U+00206e: NATIONAL DIGIT SHAPES*/ - 0x206f, /* U+00206f: NOMINAL DIGIT SHAPES*/ - 0x2070, /* U+002070: SUPERSCRIPT ZERO*/ - 0x2071, /* U+002071: SUPERSCRIPT LATIN SMALL LETTER I*/ - 0x2072, /* U+002072: */ - 0x2073, /* U+002073: */ - 0x2074, /* U+002074: SUPERSCRIPT FOUR*/ - 0x2075, /* U+002075: SUPERSCRIPT FIVE*/ - 0x2076, /* U+002076: SUPERSCRIPT SIX*/ - 0x2077, /* U+002077: SUPERSCRIPT SEVEN*/ - 0x2078, /* U+002078: SUPERSCRIPT EIGHT*/ - 0x2079, /* U+002079: SUPERSCRIPT NINE*/ - 0x207a, /* U+00207a: SUPERSCRIPT PLUS SIGN*/ - 0x207b, /* U+00207b: SUPERSCRIPT MINUS*/ - 0x207c, /* U+00207c: SUPERSCRIPT EQUALS SIGN*/ - 0x207d, /* U+00207d: SUPERSCRIPT LEFT PARENTHESIS*/ - 0x207e, /* U+00207e: SUPERSCRIPT RIGHT PARENTHESIS*/ - 0x207f, /* U+00207f: SUPERSCRIPT LATIN SMALL LETTER N*/ - 0x2080, /* U+002080: SUBSCRIPT ZERO*/ - 0x2081, /* U+002081: SUBSCRIPT ONE*/ - 0x2082, /* U+002082: SUBSCRIPT TWO*/ - 0x2083, /* U+002083: SUBSCRIPT THREE*/ - 0x2084, /* U+002084: SUBSCRIPT FOUR*/ - 0x2085, /* U+002085: SUBSCRIPT FIVE*/ - 0x2086, /* U+002086: SUBSCRIPT SIX*/ - 0x2087, /* U+002087: SUBSCRIPT SEVEN*/ - 0x2088, /* U+002088: SUBSCRIPT EIGHT*/ - 0x2089, /* U+002089: SUBSCRIPT NINE*/ - 0x208a, /* U+00208a: SUBSCRIPT PLUS SIGN*/ - 0x208b, /* U+00208b: SUBSCRIPT MINUS*/ - 0x208c, /* U+00208c: SUBSCRIPT EQUALS SIGN*/ - 0x208d, /* U+00208d: SUBSCRIPT LEFT PARENTHESIS*/ - 0x208e, /* U+00208e: SUBSCRIPT RIGHT PARENTHESIS*/ - 0x208f, /* U+00208f: */ - 0x2090, /* U+002090: LATIN SUBSCRIPT SMALL LETTER A*/ - 0x2091, /* U+002091: LATIN SUBSCRIPT SMALL LETTER E*/ - 0x2092, /* U+002092: LATIN SUBSCRIPT SMALL LETTER O*/ - 0x2093, /* U+002093: LATIN SUBSCRIPT SMALL LETTER X*/ - 0x2094, /* U+002094: LATIN SUBSCRIPT SMALL LETTER SCHWA*/ - 0x2095, /* U+002095: */ - 0x2096, /* U+002096: */ - 0x2097, /* U+002097: */ - 0x2098, /* U+002098: */ - 0x2099, /* U+002099: */ - 0x209a, /* U+00209a: */ - 0x209b, /* U+00209b: */ - 0x209c, /* U+00209c: */ - 0x209d, /* U+00209d: */ - 0x209e, /* U+00209e: */ - 0x209f, /* U+00209f: */ - 0x20a0, /* U+0020a0: EURO-CURRENCY SIGN*/ - 0x20a1, /* U+0020a1: COLON SIGN*/ - 0x20a2, /* U+0020a2: CRUZEIRO SIGN*/ - 0x20a3, /* U+0020a3: FRENCH FRANC SIGN*/ - 0x20a4, /* U+0020a4: LIRA SIGN*/ - 0x20a5, /* U+0020a5: MILL SIGN*/ - 0x20a6, /* U+0020a6: NAIRA SIGN*/ - 0x20a7, /* U+0020a7: PESETA SIGN*/ - 0x20a8, /* U+0020a8: RUPEE SIGN*/ - 0x20a9, /* U+0020a9: WON SIGN*/ - 0x20aa, /* U+0020aa: NEW SHEQEL SIGN*/ - 0x20ab, /* U+0020ab: DONG SIGN*/ - 0x20ac, /* U+0020ac: EURO SIGN*/ - 0x20ad, /* U+0020ad: KIP SIGN*/ - 0x20ae, /* U+0020ae: TUGRIK SIGN*/ - 0x20af, /* U+0020af: DRACHMA SIGN*/ - 0x20b0, /* U+0020b0: GERMAN PENNY SIGN*/ - 0x20b1, /* U+0020b1: PESO SIGN*/ - 0x20b2, /* U+0020b2: GUARANI SIGN*/ - 0x20b3, /* U+0020b3: AUSTRAL SIGN*/ - 0x20b4, /* U+0020b4: HRYVNIA SIGN*/ - 0x20b5, /* U+0020b5: CEDI SIGN*/ - 0x20b6, /* U+0020b6: */ - 0x20b7, /* U+0020b7: */ - 0x20b8, /* U+0020b8: */ - 0x20b9, /* U+0020b9: */ - 0x20ba, /* U+0020ba: */ - 0x20bb, /* U+0020bb: */ - 0x20bc, /* U+0020bc: */ - 0x20bd, /* U+0020bd: */ - 0x20be, /* U+0020be: */ - 0x20bf, /* U+0020bf: */ - 0x20c0, /* U+0020c0: */ - 0x20c1, /* U+0020c1: */ - 0x20c2, /* U+0020c2: */ - 0x20c3, /* U+0020c3: */ - 0x20c4, /* U+0020c4: */ - 0x20c5, /* U+0020c5: */ - 0x20c6, /* U+0020c6: */ - 0x20c7, /* U+0020c7: */ - 0x20c8, /* U+0020c8: */ - 0x20c9, /* U+0020c9: */ - 0x20ca, /* U+0020ca: */ - 0x20cb, /* U+0020cb: */ - 0x20cc, /* U+0020cc: */ - 0x20cd, /* U+0020cd: */ - 0x20ce, /* U+0020ce: */ - 0x20cf, /* U+0020cf: */ - 0x20d0, /* U+0020d0: COMBINING LEFT HARPOON ABOVE*/ - 0x20d1, /* U+0020d1: COMBINING RIGHT HARPOON ABOVE*/ - 0x20d2, /* U+0020d2: COMBINING LONG VERTICAL LINE OVERLAY*/ - 0x20d3, /* U+0020d3: COMBINING SHORT VERTICAL LINE OVERLAY*/ - 0x20d4, /* U+0020d4: COMBINING ANTICLOCKWISE ARROW ABOVE*/ - 0x20d5, /* U+0020d5: COMBINING CLOCKWISE ARROW ABOVE*/ - 0x20d6, /* U+0020d6: COMBINING LEFT ARROW ABOVE*/ - 0x20d7, /* U+0020d7: COMBINING RIGHT ARROW ABOVE*/ - 0x20d8, /* U+0020d8: COMBINING RING OVERLAY*/ - 0x20d9, /* U+0020d9: COMBINING CLOCKWISE RING OVERLAY*/ - 0x20da, /* U+0020da: COMBINING ANTICLOCKWISE RING OVERLAY*/ - 0x20db, /* U+0020db: COMBINING THREE DOTS ABOVE*/ - 0x20dc, /* U+0020dc: COMBINING FOUR DOTS ABOVE*/ - 0x20dd, /* U+0020dd: COMBINING ENCLOSING CIRCLE*/ - 0x20de, /* U+0020de: COMBINING ENCLOSING SQUARE*/ - 0x20df, /* U+0020df: COMBINING ENCLOSING DIAMOND*/ - 0x20e0, /* U+0020e0: COMBINING ENCLOSING CIRCLE BACKSLASH*/ - 0x20e1, /* U+0020e1: COMBINING LEFT RIGHT ARROW ABOVE*/ - 0x20e2, /* U+0020e2: COMBINING ENCLOSING SCREEN*/ - 0x20e3, /* U+0020e3: COMBINING ENCLOSING KEYCAP*/ - 0x20e4, /* U+0020e4: COMBINING ENCLOSING UPWARD POINTING TRIANGLE*/ - 0x20e5, /* U+0020e5: COMBINING REVERSE SOLIDUS OVERLAY*/ - 0x20e6, /* U+0020e6: COMBINING DOUBLE VERTICAL STROKE OVERLAY*/ - 0x20e7, /* U+0020e7: COMBINING ANNUITY SYMBOL*/ - 0x20e8, /* U+0020e8: COMBINING TRIPLE UNDERDOT*/ - 0x20e9, /* U+0020e9: COMBINING WIDE BRIDGE ABOVE*/ - 0x20ea, /* U+0020ea: COMBINING LEFTWARDS ARROW OVERLAY*/ - 0x20eb, /* U+0020eb: COMBINING LONG DOUBLE SOLIDUS OVERLAY*/ - 0x20ec, /* U+0020ec: */ - 0x20ed, /* U+0020ed: */ - 0x20ee, /* U+0020ee: */ - 0x20ef, /* U+0020ef: */ - 0x20f0, /* U+0020f0: */ - 0x20f1, /* U+0020f1: */ - 0x20f2, /* U+0020f2: */ - 0x20f3, /* U+0020f3: */ - 0x20f4, /* U+0020f4: */ - 0x20f5, /* U+0020f5: */ - 0x20f6, /* U+0020f6: */ - 0x20f7, /* U+0020f7: */ - 0x20f8, /* U+0020f8: */ - 0x20f9, /* U+0020f9: */ - 0x20fa, /* U+0020fa: */ - 0x20fb, /* U+0020fb: */ - 0x20fc, /* U+0020fc: */ - 0x20fd, /* U+0020fd: */ - 0x20fe, /* U+0020fe: */ - 0x20ff, /* U+0020ff: */ - 0x2100, /* U+002100: ACCOUNT OF*/ - 0x2101, /* U+002101: ADDRESSED TO THE SUBJECT*/ - 0x2102, /* U+002102: DOUBLE-STRUCK CAPITAL C*/ - 0x2103, /* U+002103: DEGREE CELSIUS*/ - 0x2104, /* U+002104: CENTRE LINE SYMBOL*/ - 0x2105, /* U+002105: CARE OF*/ - 0x2106, /* U+002106: CADA UNA*/ - 0x2107, /* U+002107: EULER CONSTANT*/ - 0x2108, /* U+002108: SCRUPLE*/ - 0x2109, /* U+002109: DEGREE FAHRENHEIT*/ - 0x210a, /* U+00210a: SCRIPT SMALL G*/ - 0x210b, /* U+00210b: SCRIPT CAPITAL H*/ - 0x210c, /* U+00210c: BLACK-LETTER CAPITAL H*/ - 0x210d, /* U+00210d: DOUBLE-STRUCK CAPITAL H*/ - 0x210e, /* U+00210e: PLANCK CONSTANT*/ - 0x210f, /* U+00210f: PLANCK CONSTANT OVER TWO PI*/ - 0x2110, /* U+002110: SCRIPT CAPITAL I*/ - 0x2111, /* U+002111: BLACK-LETTER CAPITAL I*/ - 0x2112, /* U+002112: SCRIPT CAPITAL L*/ - 0x2113, /* U+002113: SCRIPT SMALL L*/ - 0x2114, /* U+002114: L B BAR SYMBOL*/ - 0x2115, /* U+002115: DOUBLE-STRUCK CAPITAL N*/ - 0x2116, /* U+002116: NUMERO SIGN*/ - 0x2117, /* U+002117: SOUND RECORDING COPYRIGHT*/ - 0x2118, /* U+002118: SCRIPT CAPITAL P*/ - 0x2119, /* U+002119: DOUBLE-STRUCK CAPITAL P*/ - 0x211a, /* U+00211a: DOUBLE-STRUCK CAPITAL Q*/ - 0x211b, /* U+00211b: SCRIPT CAPITAL R*/ - 0x211c, /* U+00211c: BLACK-LETTER CAPITAL R*/ - 0x211d, /* U+00211d: DOUBLE-STRUCK CAPITAL R*/ - 0x211e, /* U+00211e: PRESCRIPTION TAKE*/ - 0x211f, /* U+00211f: RESPONSE*/ - 0x2120, /* U+002120: SERVICE MARK*/ - 0x2121, /* U+002121: TELEPHONE SIGN*/ - 0x2122, /* U+002122: TRADE MARK SIGN*/ - 0x2123, /* U+002123: VERSICLE*/ - 0x2124, /* U+002124: DOUBLE-STRUCK CAPITAL Z*/ - 0x2125, /* U+002125: OUNCE SIGN*/ - 0x2126, /* U+002126: OHM SIGN*/ - 0x2127, /* U+002127: INVERTED OHM SIGN*/ - 0x2128, /* U+002128: BLACK-LETTER CAPITAL Z*/ - 0x2129, /* U+002129: TURNED GREEK SMALL LETTER IOTA*/ - 0x212a, /* U+00212a: KELVIN SIGN*/ - 0x212b, /* U+00212b: ANGSTROM SIGN*/ - 0x212c, /* U+00212c: SCRIPT CAPITAL B*/ - 0x212d, /* U+00212d: BLACK-LETTER CAPITAL C*/ - 0x212e, /* U+00212e: ESTIMATED SYMBOL*/ - 0x212f, /* U+00212f: SCRIPT SMALL E*/ - 0x2130, /* U+002130: SCRIPT CAPITAL E*/ - 0x2131, /* U+002131: SCRIPT CAPITAL F*/ - 0x2132, /* U+002132: TURNED CAPITAL F*/ - 0x2133, /* U+002133: SCRIPT CAPITAL M*/ - 0x2134, /* U+002134: SCRIPT SMALL O*/ - 0x2135, /* U+002135: ALEF SYMBOL*/ - 0x2136, /* U+002136: BET SYMBOL*/ - 0x2137, /* U+002137: GIMEL SYMBOL*/ - 0x2138, /* U+002138: DALET SYMBOL*/ - 0x2139, /* U+002139: INFORMATION SOURCE*/ - 0x213a, /* U+00213a: ROTATED CAPITAL Q*/ - 0x213b, /* U+00213b: FACSIMILE SIGN*/ - 0x213c, /* U+00213c: DOUBLE-STRUCK SMALL PI*/ - 0x213d, /* U+00213d: DOUBLE-STRUCK SMALL GAMMA*/ - 0x213e, /* U+00213e: DOUBLE-STRUCK CAPITAL GAMMA*/ - 0x213f, /* U+00213f: DOUBLE-STRUCK CAPITAL PI*/ - 0x2140, /* U+002140: DOUBLE-STRUCK N-ARY SUMMATION*/ - 0x2141, /* U+002141: TURNED SANS-SERIF CAPITAL G*/ - 0x2142, /* U+002142: TURNED SANS-SERIF CAPITAL L*/ - 0x2143, /* U+002143: REVERSED SANS-SERIF CAPITAL L*/ - 0x2144, /* U+002144: TURNED SANS-SERIF CAPITAL Y*/ - 0x2145, /* U+002145: DOUBLE-STRUCK ITALIC CAPITAL D*/ - 0x2146, /* U+002146: DOUBLE-STRUCK ITALIC SMALL D*/ - 0x2147, /* U+002147: DOUBLE-STRUCK ITALIC SMALL E*/ - 0x2148, /* U+002148: DOUBLE-STRUCK ITALIC SMALL I*/ - 0x2149, /* U+002149: DOUBLE-STRUCK ITALIC SMALL J*/ - 0x214a, /* U+00214a: PROPERTY LINE*/ - 0x214b, /* U+00214b: TURNED AMPERSAND*/ - 0x214c, /* U+00214c: PER SIGN*/ - 0x214d, /* U+00214d: */ - 0x214e, /* U+00214e: */ - 0x214f, /* U+00214f: */ - 0x2150, /* U+002150: */ - 0x2151, /* U+002151: */ - 0x2152, /* U+002152: */ - 0x2153, /* U+002153: VULGAR FRACTION ONE THIRD*/ - 0x2154, /* U+002154: VULGAR FRACTION TWO THIRDS*/ - 0x2155, /* U+002155: VULGAR FRACTION ONE FIFTH*/ - 0x2156, /* U+002156: VULGAR FRACTION TWO FIFTHS*/ - 0x2157, /* U+002157: VULGAR FRACTION THREE FIFTHS*/ - 0x2158, /* U+002158: VULGAR FRACTION FOUR FIFTHS*/ - 0x2159, /* U+002159: VULGAR FRACTION ONE SIXTH*/ - 0x215a, /* U+00215a: VULGAR FRACTION FIVE SIXTHS*/ - 0x215b, /* U+00215b: VULGAR FRACTION ONE EIGHTH*/ - 0x215c, /* U+00215c: VULGAR FRACTION THREE EIGHTHS*/ - 0x215d, /* U+00215d: VULGAR FRACTION FIVE EIGHTHS*/ - 0x215e, /* U+00215e: VULGAR FRACTION SEVEN EIGHTHS*/ - 0x215f, /* U+00215f: FRACTION NUMERATOR ONE*/ - 0x2160, /* U+002160: ROMAN NUMERAL ONE*/ - 0x2161, /* U+002161: ROMAN NUMERAL TWO*/ - 0x2162, /* U+002162: ROMAN NUMERAL THREE*/ - 0x2163, /* U+002163: ROMAN NUMERAL FOUR*/ - 0x2164, /* U+002164: ROMAN NUMERAL FIVE*/ - 0x2165, /* U+002165: ROMAN NUMERAL SIX*/ - 0x2166, /* U+002166: ROMAN NUMERAL SEVEN*/ - 0x2167, /* U+002167: ROMAN NUMERAL EIGHT*/ - 0x2168, /* U+002168: ROMAN NUMERAL NINE*/ - 0x2169, /* U+002169: ROMAN NUMERAL TEN*/ - 0x216a, /* U+00216a: ROMAN NUMERAL ELEVEN*/ - 0x216b, /* U+00216b: ROMAN NUMERAL TWELVE*/ - 0x216c, /* U+00216c: ROMAN NUMERAL FIFTY*/ - 0x216d, /* U+00216d: ROMAN NUMERAL ONE HUNDRED*/ - 0x216e, /* U+00216e: ROMAN NUMERAL FIVE HUNDRED*/ - 0x216f, /* U+00216f: ROMAN NUMERAL ONE THOUSAND*/ - 0x2160, /* U+002170: SMALL ROMAN NUMERAL ONE*/ - 0x2161, /* U+002171: SMALL ROMAN NUMERAL TWO*/ - 0x2162, /* U+002172: SMALL ROMAN NUMERAL THREE*/ - 0x2163, /* U+002173: SMALL ROMAN NUMERAL FOUR*/ - 0x2164, /* U+002174: SMALL ROMAN NUMERAL FIVE*/ - 0x2165, /* U+002175: SMALL ROMAN NUMERAL SIX*/ - 0x2166, /* U+002176: SMALL ROMAN NUMERAL SEVEN*/ - 0x2167, /* U+002177: SMALL ROMAN NUMERAL EIGHT*/ - 0x2168, /* U+002178: SMALL ROMAN NUMERAL NINE*/ - 0x2169, /* U+002179: SMALL ROMAN NUMERAL TEN*/ - 0x216a, /* U+00217a: SMALL ROMAN NUMERAL ELEVEN*/ - 0x216b, /* U+00217b: SMALL ROMAN NUMERAL TWELVE*/ - 0x216c, /* U+00217c: SMALL ROMAN NUMERAL FIFTY*/ - 0x216d, /* U+00217d: SMALL ROMAN NUMERAL ONE HUNDRED*/ - 0x216e, /* U+00217e: SMALL ROMAN NUMERAL FIVE HUNDRED*/ - 0x216f, /* U+00217f: SMALL ROMAN NUMERAL ONE THOUSAND*/ - 0x2180, /* U+002180: ROMAN NUMERAL ONE THOUSAND C D*/ - 0x2181, /* U+002181: ROMAN NUMERAL FIVE THOUSAND*/ - 0x2182, /* U+002182: ROMAN NUMERAL TEN THOUSAND*/ - 0x2183, /* U+002183: ROMAN NUMERAL REVERSED ONE HUNDRED*/ - 0x2184, /* U+002184: */ - 0x2185, /* U+002185: */ - 0x2186, /* U+002186: */ - 0x2187, /* U+002187: */ - 0x2188, /* U+002188: */ - 0x2189, /* U+002189: */ - 0x218a, /* U+00218a: */ - 0x218b, /* U+00218b: */ - 0x218c, /* U+00218c: */ - 0x218d, /* U+00218d: */ - 0x218e, /* U+00218e: */ - 0x218f, /* U+00218f: */ - 0x2190, /* U+002190: LEFTWARDS ARROW*/ - 0x2191, /* U+002191: UPWARDS ARROW*/ - 0x2192, /* U+002192: RIGHTWARDS ARROW*/ - 0x2193, /* U+002193: DOWNWARDS ARROW*/ - 0x2194, /* U+002194: LEFT RIGHT ARROW*/ - 0x2195, /* U+002195: UP DOWN ARROW*/ - 0x2196, /* U+002196: NORTH WEST ARROW*/ - 0x2197, /* U+002197: NORTH EAST ARROW*/ - 0x2198, /* U+002198: SOUTH EAST ARROW*/ - 0x2199, /* U+002199: SOUTH WEST ARROW*/ - 0x219a, /* U+00219a: LEFTWARDS ARROW WITH STROKE*/ - 0x219b, /* U+00219b: RIGHTWARDS ARROW WITH STROKE*/ - 0x219c, /* U+00219c: LEFTWARDS WAVE ARROW*/ - 0x219d, /* U+00219d: RIGHTWARDS WAVE ARROW*/ - 0x219e, /* U+00219e: LEFTWARDS TWO HEADED ARROW*/ - 0x219f, /* U+00219f: UPWARDS TWO HEADED ARROW*/ - 0x21a0, /* U+0021a0: RIGHTWARDS TWO HEADED ARROW*/ - 0x21a1, /* U+0021a1: DOWNWARDS TWO HEADED ARROW*/ - 0x21a2, /* U+0021a2: LEFTWARDS ARROW WITH TAIL*/ - 0x21a3, /* U+0021a3: RIGHTWARDS ARROW WITH TAIL*/ - 0x21a4, /* U+0021a4: LEFTWARDS ARROW FROM BAR*/ - 0x21a5, /* U+0021a5: UPWARDS ARROW FROM BAR*/ - 0x21a6, /* U+0021a6: RIGHTWARDS ARROW FROM BAR*/ - 0x21a7, /* U+0021a7: DOWNWARDS ARROW FROM BAR*/ - 0x21a8, /* U+0021a8: UP DOWN ARROW WITH BASE*/ - 0x21a9, /* U+0021a9: LEFTWARDS ARROW WITH HOOK*/ - 0x21aa, /* U+0021aa: RIGHTWARDS ARROW WITH HOOK*/ - 0x21ab, /* U+0021ab: LEFTWARDS ARROW WITH LOOP*/ - 0x21ac, /* U+0021ac: RIGHTWARDS ARROW WITH LOOP*/ - 0x21ad, /* U+0021ad: LEFT RIGHT WAVE ARROW*/ - 0x21ae, /* U+0021ae: LEFT RIGHT ARROW WITH STROKE*/ - 0x21af, /* U+0021af: DOWNWARDS ZIGZAG ARROW*/ - 0x21b0, /* U+0021b0: UPWARDS ARROW WITH TIP LEFTWARDS*/ - 0x21b1, /* U+0021b1: UPWARDS ARROW WITH TIP RIGHTWARDS*/ - 0x21b2, /* U+0021b2: DOWNWARDS ARROW WITH TIP LEFTWARDS*/ - 0x21b3, /* U+0021b3: DOWNWARDS ARROW WITH TIP RIGHTWARDS*/ - 0x21b4, /* U+0021b4: RIGHTWARDS ARROW WITH CORNER DOWNWARDS*/ - 0x21b5, /* U+0021b5: DOWNWARDS ARROW WITH CORNER LEFTWARDS*/ - 0x21b6, /* U+0021b6: ANTICLOCKWISE TOP SEMICIRCLE ARROW*/ - 0x21b7, /* U+0021b7: CLOCKWISE TOP SEMICIRCLE ARROW*/ - 0x21b8, /* U+0021b8: NORTH WEST ARROW TO LONG BAR*/ - 0x21b9, /* U+0021b9: LEFTWARDS ARROW TO BAR OVER RIGHTWARDS ARROW TO BAR*/ - 0x21ba, /* U+0021ba: ANTICLOCKWISE OPEN CIRCLE ARROW*/ - 0x21bb, /* U+0021bb: CLOCKWISE OPEN CIRCLE ARROW*/ - 0x21bc, /* U+0021bc: LEFTWARDS HARPOON WITH BARB UPWARDS*/ - 0x21bd, /* U+0021bd: LEFTWARDS HARPOON WITH BARB DOWNWARDS*/ - 0x21be, /* U+0021be: UPWARDS HARPOON WITH BARB RIGHTWARDS*/ - 0x21bf, /* U+0021bf: UPWARDS HARPOON WITH BARB LEFTWARDS*/ - 0x21c0, /* U+0021c0: RIGHTWARDS HARPOON WITH BARB UPWARDS*/ - 0x21c1, /* U+0021c1: RIGHTWARDS HARPOON WITH BARB DOWNWARDS*/ - 0x21c2, /* U+0021c2: DOWNWARDS HARPOON WITH BARB RIGHTWARDS*/ - 0x21c3, /* U+0021c3: DOWNWARDS HARPOON WITH BARB LEFTWARDS*/ - 0x21c4, /* U+0021c4: RIGHTWARDS ARROW OVER LEFTWARDS ARROW*/ - 0x21c5, /* U+0021c5: UPWARDS ARROW LEFTWARDS OF DOWNWARDS ARROW*/ - 0x21c6, /* U+0021c6: LEFTWARDS ARROW OVER RIGHTWARDS ARROW*/ - 0x21c7, /* U+0021c7: LEFTWARDS PAIRED ARROWS*/ - 0x21c8, /* U+0021c8: UPWARDS PAIRED ARROWS*/ - 0x21c9, /* U+0021c9: RIGHTWARDS PAIRED ARROWS*/ - 0x21ca, /* U+0021ca: DOWNWARDS PAIRED ARROWS*/ - 0x21cb, /* U+0021cb: LEFTWARDS HARPOON OVER RIGHTWARDS HARPOON*/ - 0x21cc, /* U+0021cc: RIGHTWARDS HARPOON OVER LEFTWARDS HARPOON*/ - 0x21cd, /* U+0021cd: LEFTWARDS DOUBLE ARROW WITH STROKE*/ - 0x21ce, /* U+0021ce: LEFT RIGHT DOUBLE ARROW WITH STROKE*/ - 0x21cf, /* U+0021cf: RIGHTWARDS DOUBLE ARROW WITH STROKE*/ - 0x21d0, /* U+0021d0: LEFTWARDS DOUBLE ARROW*/ - 0x21d1, /* U+0021d1: UPWARDS DOUBLE ARROW*/ - 0x21d2, /* U+0021d2: RIGHTWARDS DOUBLE ARROW*/ - 0x21d3, /* U+0021d3: DOWNWARDS DOUBLE ARROW*/ - 0x21d4, /* U+0021d4: LEFT RIGHT DOUBLE ARROW*/ - 0x21d5, /* U+0021d5: UP DOWN DOUBLE ARROW*/ - 0x21d6, /* U+0021d6: NORTH WEST DOUBLE ARROW*/ - 0x21d7, /* U+0021d7: NORTH EAST DOUBLE ARROW*/ - 0x21d8, /* U+0021d8: SOUTH EAST DOUBLE ARROW*/ - 0x21d9, /* U+0021d9: SOUTH WEST DOUBLE ARROW*/ - 0x21da, /* U+0021da: LEFTWARDS TRIPLE ARROW*/ - 0x21db, /* U+0021db: RIGHTWARDS TRIPLE ARROW*/ - 0x21dc, /* U+0021dc: LEFTWARDS SQUIGGLE ARROW*/ - 0x21dd, /* U+0021dd: RIGHTWARDS SQUIGGLE ARROW*/ - 0x21de, /* U+0021de: UPWARDS ARROW WITH DOUBLE STROKE*/ - 0x21df, /* U+0021df: DOWNWARDS ARROW WITH DOUBLE STROKE*/ - 0x21e0, /* U+0021e0: LEFTWARDS DASHED ARROW*/ - 0x21e1, /* U+0021e1: UPWARDS DASHED ARROW*/ - 0x21e2, /* U+0021e2: RIGHTWARDS DASHED ARROW*/ - 0x21e3, /* U+0021e3: DOWNWARDS DASHED ARROW*/ - 0x21e4, /* U+0021e4: LEFTWARDS ARROW TO BAR*/ - 0x21e5, /* U+0021e5: RIGHTWARDS ARROW TO BAR*/ - 0x21e6, /* U+0021e6: LEFTWARDS WHITE ARROW*/ - 0x21e7, /* U+0021e7: UPWARDS WHITE ARROW*/ - 0x21e8, /* U+0021e8: RIGHTWARDS WHITE ARROW*/ - 0x21e9, /* U+0021e9: DOWNWARDS WHITE ARROW*/ - 0x21ea, /* U+0021ea: UPWARDS WHITE ARROW FROM BAR*/ - 0x21eb, /* U+0021eb: UPWARDS WHITE ARROW ON PEDESTAL*/ - 0x21ec, /* U+0021ec: UPWARDS WHITE ARROW ON PEDESTAL WITH HORIZONTAL BAR*/ - 0x21ed, /* U+0021ed: UPWARDS WHITE ARROW ON PEDESTAL WITH VERTICAL BAR*/ - 0x21ee, /* U+0021ee: UPWARDS WHITE DOUBLE ARROW*/ - 0x21ef, /* U+0021ef: UPWARDS WHITE DOUBLE ARROW ON PEDESTAL*/ - 0x21f0, /* U+0021f0: RIGHTWARDS WHITE ARROW FROM WALL*/ - 0x21f1, /* U+0021f1: NORTH WEST ARROW TO CORNER*/ - 0x21f2, /* U+0021f2: SOUTH EAST ARROW TO CORNER*/ - 0x21f3, /* U+0021f3: UP DOWN WHITE ARROW*/ - 0x21f4, /* U+0021f4: RIGHT ARROW WITH SMALL CIRCLE*/ - 0x21f5, /* U+0021f5: DOWNWARDS ARROW LEFTWARDS OF UPWARDS ARROW*/ - 0x21f6, /* U+0021f6: THREE RIGHTWARDS ARROWS*/ - 0x21f7, /* U+0021f7: LEFTWARDS ARROW WITH VERTICAL STROKE*/ - 0x21f8, /* U+0021f8: RIGHTWARDS ARROW WITH VERTICAL STROKE*/ - 0x21f9, /* U+0021f9: LEFT RIGHT ARROW WITH VERTICAL STROKE*/ - 0x21fa, /* U+0021fa: LEFTWARDS ARROW WITH DOUBLE VERTICAL STROKE*/ - 0x21fb, /* U+0021fb: RIGHTWARDS ARROW WITH DOUBLE VERTICAL STROKE*/ - 0x21fc, /* U+0021fc: LEFT RIGHT ARROW WITH DOUBLE VERTICAL STROKE*/ - 0x21fd, /* U+0021fd: LEFTWARDS OPEN-HEADED ARROW*/ - 0x21fe, /* U+0021fe: RIGHTWARDS OPEN-HEADED ARROW*/ - 0x21ff, /* U+0021ff: LEFT RIGHT OPEN-HEADED ARROW*/ - 0x2200, /* U+002200: FOR ALL*/ - 0x2201, /* U+002201: COMPLEMENT*/ - 0x2202, /* U+002202: PARTIAL DIFFERENTIAL*/ - 0x2203, /* U+002203: THERE EXISTS*/ - 0x2204, /* U+002204: THERE DOES NOT EXIST*/ - 0x2205, /* U+002205: EMPTY SET*/ - 0x2206, /* U+002206: INCREMENT*/ - 0x2207, /* U+002207: NABLA*/ - 0x2208, /* U+002208: ELEMENT OF*/ - 0x2209, /* U+002209: NOT AN ELEMENT OF*/ - 0x220a, /* U+00220a: SMALL ELEMENT OF*/ - 0x220b, /* U+00220b: CONTAINS AS MEMBER*/ - 0x220c, /* U+00220c: DOES NOT CONTAIN AS MEMBER*/ - 0x220d, /* U+00220d: SMALL CONTAINS AS MEMBER*/ - 0x220e, /* U+00220e: END OF PROOF*/ - 0x220f, /* U+00220f: N-ARY PRODUCT*/ - 0x2210, /* U+002210: N-ARY COPRODUCT*/ - 0x2211, /* U+002211: N-ARY SUMMATION*/ - 0x2212, /* U+002212: MINUS SIGN*/ - 0x2213, /* U+002213: MINUS-OR-PLUS SIGN*/ - 0x2214, /* U+002214: DOT PLUS*/ - 0x2215, /* U+002215: DIVISION SLASH*/ - 0x2216, /* U+002216: SET MINUS*/ - 0x2217, /* U+002217: ASTERISK OPERATOR*/ - 0x2218, /* U+002218: RING OPERATOR*/ - 0x2219, /* U+002219: BULLET OPERATOR*/ - 0x221a, /* U+00221a: SQUARE ROOT*/ - 0x221b, /* U+00221b: CUBE ROOT*/ - 0x221c, /* U+00221c: FOURTH ROOT*/ - 0x221d, /* U+00221d: PROPORTIONAL TO*/ - 0x221e, /* U+00221e: INFINITY*/ - 0x221f, /* U+00221f: RIGHT ANGLE*/ - 0x2220, /* U+002220: ANGLE*/ - 0x2221, /* U+002221: MEASURED ANGLE*/ - 0x2222, /* U+002222: SPHERICAL ANGLE*/ - 0x2223, /* U+002223: DIVIDES*/ - 0x2224, /* U+002224: DOES NOT DIVIDE*/ - 0x2225, /* U+002225: PARALLEL TO*/ - 0x2226, /* U+002226: NOT PARALLEL TO*/ - 0x2227, /* U+002227: LOGICAL AND*/ - 0x2228, /* U+002228: LOGICAL OR*/ - 0x2229, /* U+002229: INTERSECTION*/ - 0x222a, /* U+00222a: UNION*/ - 0x222b, /* U+00222b: INTEGRAL*/ - 0x222c, /* U+00222c: DOUBLE INTEGRAL*/ - 0x222d, /* U+00222d: TRIPLE INTEGRAL*/ - 0x222e, /* U+00222e: CONTOUR INTEGRAL*/ - 0x222f, /* U+00222f: SURFACE INTEGRAL*/ - 0x2230, /* U+002230: VOLUME INTEGRAL*/ - 0x2231, /* U+002231: CLOCKWISE INTEGRAL*/ - 0x2232, /* U+002232: CLOCKWISE CONTOUR INTEGRAL*/ - 0x2233, /* U+002233: ANTICLOCKWISE CONTOUR INTEGRAL*/ - 0x2234, /* U+002234: THEREFORE*/ - 0x2235, /* U+002235: BECAUSE*/ - 0x2236, /* U+002236: RATIO*/ - 0x2237, /* U+002237: PROPORTION*/ - 0x2238, /* U+002238: DOT MINUS*/ - 0x2239, /* U+002239: EXCESS*/ - 0x223a, /* U+00223a: GEOMETRIC PROPORTION*/ - 0x223b, /* U+00223b: HOMOTHETIC*/ - 0x223c, /* U+00223c: TILDE OPERATOR*/ - 0x223d, /* U+00223d: REVERSED TILDE*/ - 0x223e, /* U+00223e: INVERTED LAZY S*/ - 0x223f, /* U+00223f: SINE WAVE*/ - 0x2240, /* U+002240: WREATH PRODUCT*/ - 0x2241, /* U+002241: NOT TILDE*/ - 0x2242, /* U+002242: MINUS TILDE*/ - 0x2243, /* U+002243: ASYMPTOTICALLY EQUAL TO*/ - 0x2244, /* U+002244: NOT ASYMPTOTICALLY EQUAL TO*/ - 0x2245, /* U+002245: APPROXIMATELY EQUAL TO*/ - 0x2246, /* U+002246: APPROXIMATELY BUT NOT ACTUALLY EQUAL TO*/ - 0x2247, /* U+002247: NEITHER APPROXIMATELY NOR ACTUALLY EQUAL TO*/ - 0x2248, /* U+002248: ALMOST EQUAL TO*/ - 0x2249, /* U+002249: NOT ALMOST EQUAL TO*/ - 0x224a, /* U+00224a: ALMOST EQUAL OR EQUAL TO*/ - 0x224b, /* U+00224b: TRIPLE TILDE*/ - 0x224c, /* U+00224c: ALL EQUAL TO*/ - 0x224d, /* U+00224d: EQUIVALENT TO*/ - 0x224e, /* U+00224e: GEOMETRICALLY EQUIVALENT TO*/ - 0x224f, /* U+00224f: DIFFERENCE BETWEEN*/ - 0x2250, /* U+002250: APPROACHES THE LIMIT*/ - 0x2251, /* U+002251: GEOMETRICALLY EQUAL TO*/ - 0x2252, /* U+002252: APPROXIMATELY EQUAL TO OR THE IMAGE OF*/ - 0x2253, /* U+002253: IMAGE OF OR APPROXIMATELY EQUAL TO*/ - 0x2254, /* U+002254: COLON EQUALS*/ - 0x2255, /* U+002255: EQUALS COLON*/ - 0x2256, /* U+002256: RING IN EQUAL TO*/ - 0x2257, /* U+002257: RING EQUAL TO*/ - 0x2258, /* U+002258: CORRESPONDS TO*/ - 0x2259, /* U+002259: ESTIMATES*/ - 0x225a, /* U+00225a: EQUIANGULAR TO*/ - 0x225b, /* U+00225b: STAR EQUALS*/ - 0x225c, /* U+00225c: DELTA EQUAL TO*/ - 0x225d, /* U+00225d: EQUAL TO BY DEFINITION*/ - 0x225e, /* U+00225e: MEASURED BY*/ - 0x225f, /* U+00225f: QUESTIONED EQUAL TO*/ - 0x2260, /* U+002260: NOT EQUAL TO*/ - 0x2261, /* U+002261: IDENTICAL TO*/ - 0x2262, /* U+002262: NOT IDENTICAL TO*/ - 0x2263, /* U+002263: STRICTLY EQUIVALENT TO*/ - 0x2264, /* U+002264: LESS-THAN OR EQUAL TO*/ - 0x2265, /* U+002265: GREATER-THAN OR EQUAL TO*/ - 0x2266, /* U+002266: LESS-THAN OVER EQUAL TO*/ - 0x2267, /* U+002267: GREATER-THAN OVER EQUAL TO*/ - 0x2268, /* U+002268: LESS-THAN BUT NOT EQUAL TO*/ - 0x2269, /* U+002269: GREATER-THAN BUT NOT EQUAL TO*/ - 0x226a, /* U+00226a: MUCH LESS-THAN*/ - 0x226b, /* U+00226b: MUCH GREATER-THAN*/ - 0x226c, /* U+00226c: BETWEEN*/ - 0x226d, /* U+00226d: NOT EQUIVALENT TO*/ - 0x226e, /* U+00226e: NOT LESS-THAN*/ - 0x226f, /* U+00226f: NOT GREATER-THAN*/ - 0x2270, /* U+002270: NEITHER LESS-THAN NOR EQUAL TO*/ - 0x2271, /* U+002271: NEITHER GREATER-THAN NOR EQUAL TO*/ - 0x2272, /* U+002272: LESS-THAN OR EQUIVALENT TO*/ - 0x2273, /* U+002273: GREATER-THAN OR EQUIVALENT TO*/ - 0x2274, /* U+002274: NEITHER LESS-THAN NOR EQUIVALENT TO*/ - 0x2275, /* U+002275: NEITHER GREATER-THAN NOR EQUIVALENT TO*/ - 0x2276, /* U+002276: LESS-THAN OR GREATER-THAN*/ - 0x2277, /* U+002277: GREATER-THAN OR LESS-THAN*/ - 0x2278, /* U+002278: NEITHER LESS-THAN NOR GREATER-THAN*/ - 0x2279, /* U+002279: NEITHER GREATER-THAN NOR LESS-THAN*/ - 0x227a, /* U+00227a: PRECEDES*/ - 0x227b, /* U+00227b: SUCCEEDS*/ - 0x227c, /* U+00227c: PRECEDES OR EQUAL TO*/ - 0x227d, /* U+00227d: SUCCEEDS OR EQUAL TO*/ - 0x227e, /* U+00227e: PRECEDES OR EQUIVALENT TO*/ - 0x227f, /* U+00227f: SUCCEEDS OR EQUIVALENT TO*/ - 0x2280, /* U+002280: DOES NOT PRECEDE*/ - 0x2281, /* U+002281: DOES NOT SUCCEED*/ - 0x2282, /* U+002282: SUBSET OF*/ - 0x2283, /* U+002283: SUPERSET OF*/ - 0x2284, /* U+002284: NOT A SUBSET OF*/ - 0x2285, /* U+002285: NOT A SUPERSET OF*/ - 0x2286, /* U+002286: SUBSET OF OR EQUAL TO*/ - 0x2287, /* U+002287: SUPERSET OF OR EQUAL TO*/ - 0x2288, /* U+002288: NEITHER A SUBSET OF NOR EQUAL TO*/ - 0x2289, /* U+002289: NEITHER A SUPERSET OF NOR EQUAL TO*/ - 0x228a, /* U+00228a: SUBSET OF WITH NOT EQUAL TO*/ - 0x228b, /* U+00228b: SUPERSET OF WITH NOT EQUAL TO*/ - 0x228c, /* U+00228c: MULTISET*/ - 0x228d, /* U+00228d: MULTISET MULTIPLICATION*/ - 0x228e, /* U+00228e: MULTISET UNION*/ - 0x228f, /* U+00228f: SQUARE IMAGE OF*/ - 0x2290, /* U+002290: SQUARE ORIGINAL OF*/ - 0x2291, /* U+002291: SQUARE IMAGE OF OR EQUAL TO*/ - 0x2292, /* U+002292: SQUARE ORIGINAL OF OR EQUAL TO*/ - 0x2293, /* U+002293: SQUARE CAP*/ - 0x2294, /* U+002294: SQUARE CUP*/ - 0x2295, /* U+002295: CIRCLED PLUS*/ - 0x2296, /* U+002296: CIRCLED MINUS*/ - 0x2297, /* U+002297: CIRCLED TIMES*/ - 0x2298, /* U+002298: CIRCLED DIVISION SLASH*/ - 0x2299, /* U+002299: CIRCLED DOT OPERATOR*/ - 0x229a, /* U+00229a: CIRCLED RING OPERATOR*/ - 0x229b, /* U+00229b: CIRCLED ASTERISK OPERATOR*/ - 0x229c, /* U+00229c: CIRCLED EQUALS*/ - 0x229d, /* U+00229d: CIRCLED DASH*/ - 0x229e, /* U+00229e: SQUARED PLUS*/ - 0x229f, /* U+00229f: SQUARED MINUS*/ - 0x22a0, /* U+0022a0: SQUARED TIMES*/ - 0x22a1, /* U+0022a1: SQUARED DOT OPERATOR*/ - 0x22a2, /* U+0022a2: RIGHT TACK*/ - 0x22a3, /* U+0022a3: LEFT TACK*/ - 0x22a4, /* U+0022a4: DOWN TACK*/ - 0x22a5, /* U+0022a5: UP TACK*/ - 0x22a6, /* U+0022a6: ASSERTION*/ - 0x22a7, /* U+0022a7: MODELS*/ - 0x22a8, /* U+0022a8: TRUE*/ - 0x22a9, /* U+0022a9: FORCES*/ - 0x22aa, /* U+0022aa: TRIPLE VERTICAL BAR RIGHT TURNSTILE*/ - 0x22ab, /* U+0022ab: DOUBLE VERTICAL BAR DOUBLE RIGHT TURNSTILE*/ - 0x22ac, /* U+0022ac: DOES NOT PROVE*/ - 0x22ad, /* U+0022ad: NOT TRUE*/ - 0x22ae, /* U+0022ae: DOES NOT FORCE*/ - 0x22af, /* U+0022af: NEGATED DOUBLE VERTICAL BAR DOUBLE RIGHT TURNSTILE*/ - 0x22b0, /* U+0022b0: PRECEDES UNDER RELATION*/ - 0x22b1, /* U+0022b1: SUCCEEDS UNDER RELATION*/ - 0x22b2, /* U+0022b2: NORMAL SUBGROUP OF*/ - 0x22b3, /* U+0022b3: CONTAINS AS NORMAL SUBGROUP*/ - 0x22b4, /* U+0022b4: NORMAL SUBGROUP OF OR EQUAL TO*/ - 0x22b5, /* U+0022b5: CONTAINS AS NORMAL SUBGROUP OR EQUAL TO*/ - 0x22b6, /* U+0022b6: ORIGINAL OF*/ - 0x22b7, /* U+0022b7: IMAGE OF*/ - 0x22b8, /* U+0022b8: MULTIMAP*/ - 0x22b9, /* U+0022b9: HERMITIAN CONJUGATE MATRIX*/ - 0x22ba, /* U+0022ba: INTERCALATE*/ - 0x22bb, /* U+0022bb: XOR*/ - 0x22bc, /* U+0022bc: NAND*/ - 0x22bd, /* U+0022bd: NOR*/ - 0x22be, /* U+0022be: RIGHT ANGLE WITH ARC*/ - 0x22bf, /* U+0022bf: RIGHT TRIANGLE*/ - 0x22c0, /* U+0022c0: N-ARY LOGICAL AND*/ - 0x22c1, /* U+0022c1: N-ARY LOGICAL OR*/ - 0x22c2, /* U+0022c2: N-ARY INTERSECTION*/ - 0x22c3, /* U+0022c3: N-ARY UNION*/ - 0x22c4, /* U+0022c4: DIAMOND OPERATOR*/ - 0x22c5, /* U+0022c5: DOT OPERATOR*/ - 0x22c6, /* U+0022c6: STAR OPERATOR*/ - 0x22c7, /* U+0022c7: DIVISION TIMES*/ - 0x22c8, /* U+0022c8: BOWTIE*/ - 0x22c9, /* U+0022c9: LEFT NORMAL FACTOR SEMIDIRECT PRODUCT*/ - 0x22ca, /* U+0022ca: RIGHT NORMAL FACTOR SEMIDIRECT PRODUCT*/ - 0x22cb, /* U+0022cb: LEFT SEMIDIRECT PRODUCT*/ - 0x22cc, /* U+0022cc: RIGHT SEMIDIRECT PRODUCT*/ - 0x22cd, /* U+0022cd: REVERSED TILDE EQUALS*/ - 0x22ce, /* U+0022ce: CURLY LOGICAL OR*/ - 0x22cf, /* U+0022cf: CURLY LOGICAL AND*/ - 0x22d0, /* U+0022d0: DOUBLE SUBSET*/ - 0x22d1, /* U+0022d1: DOUBLE SUPERSET*/ - 0x22d2, /* U+0022d2: DOUBLE INTERSECTION*/ - 0x22d3, /* U+0022d3: DOUBLE UNION*/ - 0x22d4, /* U+0022d4: PITCHFORK*/ - 0x22d5, /* U+0022d5: EQUAL AND PARALLEL TO*/ - 0x22d6, /* U+0022d6: LESS-THAN WITH DOT*/ - 0x22d7, /* U+0022d7: GREATER-THAN WITH DOT*/ - 0x22d8, /* U+0022d8: VERY MUCH LESS-THAN*/ - 0x22d9, /* U+0022d9: VERY MUCH GREATER-THAN*/ - 0x22da, /* U+0022da: LESS-THAN EQUAL TO OR GREATER-THAN*/ - 0x22db, /* U+0022db: GREATER-THAN EQUAL TO OR LESS-THAN*/ - 0x22dc, /* U+0022dc: EQUAL TO OR LESS-THAN*/ - 0x22dd, /* U+0022dd: EQUAL TO OR GREATER-THAN*/ - 0x22de, /* U+0022de: EQUAL TO OR PRECEDES*/ - 0x22df, /* U+0022df: EQUAL TO OR SUCCEEDS*/ - 0x22e0, /* U+0022e0: DOES NOT PRECEDE OR EQUAL*/ - 0x22e1, /* U+0022e1: DOES NOT SUCCEED OR EQUAL*/ - 0x22e2, /* U+0022e2: NOT SQUARE IMAGE OF OR EQUAL TO*/ - 0x22e3, /* U+0022e3: NOT SQUARE ORIGINAL OF OR EQUAL TO*/ - 0x22e4, /* U+0022e4: SQUARE IMAGE OF OR NOT EQUAL TO*/ - 0x22e5, /* U+0022e5: SQUARE ORIGINAL OF OR NOT EQUAL TO*/ - 0x22e6, /* U+0022e6: LESS-THAN BUT NOT EQUIVALENT TO*/ - 0x22e7, /* U+0022e7: GREATER-THAN BUT NOT EQUIVALENT TO*/ - 0x22e8, /* U+0022e8: PRECEDES BUT NOT EQUIVALENT TO*/ - 0x22e9, /* U+0022e9: SUCCEEDS BUT NOT EQUIVALENT TO*/ - 0x22ea, /* U+0022ea: NOT NORMAL SUBGROUP OF*/ - 0x22eb, /* U+0022eb: DOES NOT CONTAIN AS NORMAL SUBGROUP*/ - 0x22ec, /* U+0022ec: NOT NORMAL SUBGROUP OF OR EQUAL TO*/ - 0x22ed, /* U+0022ed: DOES NOT CONTAIN AS NORMAL SUBGROUP OR EQUAL*/ - 0x22ee, /* U+0022ee: VERTICAL ELLIPSIS*/ - 0x22ef, /* U+0022ef: MIDLINE HORIZONTAL ELLIPSIS*/ - 0x22f0, /* U+0022f0: UP RIGHT DIAGONAL ELLIPSIS*/ - 0x22f1, /* U+0022f1: DOWN RIGHT DIAGONAL ELLIPSIS*/ - 0x22f2, /* U+0022f2: ELEMENT OF WITH LONG HORIZONTAL STROKE*/ - 0x22f3, /* U+0022f3: ELEMENT OF WITH VERTICAL BAR AT END OF HORIZONTAL STROKE*/ - 0x22f4, /* U+0022f4: SMALL ELEMENT OF WITH VERTICAL BAR AT END OF HORIZONTAL STROKE*/ - 0x22f5, /* U+0022f5: ELEMENT OF WITH DOT ABOVE*/ - 0x22f6, /* U+0022f6: ELEMENT OF WITH OVERBAR*/ - 0x22f7, /* U+0022f7: SMALL ELEMENT OF WITH OVERBAR*/ - 0x22f8, /* U+0022f8: ELEMENT OF WITH UNDERBAR*/ - 0x22f9, /* U+0022f9: ELEMENT OF WITH TWO HORIZONTAL STROKES*/ - 0x22fa, /* U+0022fa: CONTAINS WITH LONG HORIZONTAL STROKE*/ - 0x22fb, /* U+0022fb: CONTAINS WITH VERTICAL BAR AT END OF HORIZONTAL STROKE*/ - 0x22fc, /* U+0022fc: SMALL CONTAINS WITH VERTICAL BAR AT END OF HORIZONTAL STROKE*/ - 0x22fd, /* U+0022fd: CONTAINS WITH OVERBAR*/ - 0x22fe, /* U+0022fe: SMALL CONTAINS WITH OVERBAR*/ - 0x22ff, /* U+0022ff: Z NOTATION BAG MEMBERSHIP*/ - 0x2300, /* U+002300: DIAMETER SIGN*/ - 0x2301, /* U+002301: ELECTRIC ARROW*/ - 0x2302, /* U+002302: HOUSE*/ - 0x2303, /* U+002303: UP ARROWHEAD*/ - 0x2304, /* U+002304: DOWN ARROWHEAD*/ - 0x2305, /* U+002305: PROJECTIVE*/ - 0x2306, /* U+002306: PERSPECTIVE*/ - 0x2307, /* U+002307: WAVY LINE*/ - 0x2308, /* U+002308: LEFT CEILING*/ - 0x2309, /* U+002309: RIGHT CEILING*/ - 0x230a, /* U+00230a: LEFT FLOOR*/ - 0x230b, /* U+00230b: RIGHT FLOOR*/ - 0x230c, /* U+00230c: BOTTOM RIGHT CROP*/ - 0x230d, /* U+00230d: BOTTOM LEFT CROP*/ - 0x230e, /* U+00230e: TOP RIGHT CROP*/ - 0x230f, /* U+00230f: TOP LEFT CROP*/ - 0x2310, /* U+002310: REVERSED NOT SIGN*/ - 0x2311, /* U+002311: SQUARE LOZENGE*/ - 0x2312, /* U+002312: ARC*/ - 0x2313, /* U+002313: SEGMENT*/ - 0x2314, /* U+002314: SECTOR*/ - 0x2315, /* U+002315: TELEPHONE RECORDER*/ - 0x2316, /* U+002316: POSITION INDICATOR*/ - 0x2317, /* U+002317: VIEWDATA SQUARE*/ - 0x2318, /* U+002318: PLACE OF INTEREST SIGN*/ - 0x2319, /* U+002319: TURNED NOT SIGN*/ - 0x231a, /* U+00231a: WATCH*/ - 0x231b, /* U+00231b: HOURGLASS*/ - 0x231c, /* U+00231c: TOP LEFT CORNER*/ - 0x231d, /* U+00231d: TOP RIGHT CORNER*/ - 0x231e, /* U+00231e: BOTTOM LEFT CORNER*/ - 0x231f, /* U+00231f: BOTTOM RIGHT CORNER*/ - 0x2320, /* U+002320: TOP HALF INTEGRAL*/ - 0x2321, /* U+002321: BOTTOM HALF INTEGRAL*/ - 0x2322, /* U+002322: FROWN*/ - 0x2323, /* U+002323: SMILE*/ - 0x2324, /* U+002324: UP ARROWHEAD BETWEEN TWO HORIZONTAL BARS*/ - 0x2325, /* U+002325: OPTION KEY*/ - 0x2326, /* U+002326: ERASE TO THE RIGHT*/ - 0x2327, /* U+002327: X IN A RECTANGLE BOX*/ - 0x2328, /* U+002328: KEYBOARD*/ - 0x2329, /* U+002329: LEFT-POINTING ANGLE BRACKET*/ - 0x232a, /* U+00232a: RIGHT-POINTING ANGLE BRACKET*/ - 0x232b, /* U+00232b: ERASE TO THE LEFT*/ - 0x232c, /* U+00232c: BENZENE RING*/ - 0x232d, /* U+00232d: CYLINDRICITY*/ - 0x232e, /* U+00232e: ALL AROUND-PROFILE*/ - 0x232f, /* U+00232f: SYMMETRY*/ - 0x2330, /* U+002330: TOTAL RUNOUT*/ - 0x2331, /* U+002331: DIMENSION ORIGIN*/ - 0x2332, /* U+002332: CONICAL TAPER*/ - 0x2333, /* U+002333: SLOPE*/ - 0x2334, /* U+002334: COUNTERBORE*/ - 0x2335, /* U+002335: COUNTERSINK*/ - 0x2336, /* U+002336: APL FUNCTIONAL SYMBOL I-BEAM*/ - 0x2337, /* U+002337: APL FUNCTIONAL SYMBOL SQUISH QUAD*/ - 0x2338, /* U+002338: APL FUNCTIONAL SYMBOL QUAD EQUAL*/ - 0x2339, /* U+002339: APL FUNCTIONAL SYMBOL QUAD DIVIDE*/ - 0x233a, /* U+00233a: APL FUNCTIONAL SYMBOL QUAD DIAMOND*/ - 0x233b, /* U+00233b: APL FUNCTIONAL SYMBOL QUAD JOT*/ - 0x233c, /* U+00233c: APL FUNCTIONAL SYMBOL QUAD CIRCLE*/ - 0x233d, /* U+00233d: APL FUNCTIONAL SYMBOL CIRCLE STILE*/ - 0x233e, /* U+00233e: APL FUNCTIONAL SYMBOL CIRCLE JOT*/ - 0x233f, /* U+00233f: APL FUNCTIONAL SYMBOL SLASH BAR*/ - 0x2340, /* U+002340: APL FUNCTIONAL SYMBOL BACKSLASH BAR*/ - 0x2341, /* U+002341: APL FUNCTIONAL SYMBOL QUAD SLASH*/ - 0x2342, /* U+002342: APL FUNCTIONAL SYMBOL QUAD BACKSLASH*/ - 0x2343, /* U+002343: APL FUNCTIONAL SYMBOL QUAD LESS-THAN*/ - 0x2344, /* U+002344: APL FUNCTIONAL SYMBOL QUAD GREATER-THAN*/ - 0x2345, /* U+002345: APL FUNCTIONAL SYMBOL LEFTWARDS VANE*/ - 0x2346, /* U+002346: APL FUNCTIONAL SYMBOL RIGHTWARDS VANE*/ - 0x2347, /* U+002347: APL FUNCTIONAL SYMBOL QUAD LEFTWARDS ARROW*/ - 0x2348, /* U+002348: APL FUNCTIONAL SYMBOL QUAD RIGHTWARDS ARROW*/ - 0x2349, /* U+002349: APL FUNCTIONAL SYMBOL CIRCLE BACKSLASH*/ - 0x234a, /* U+00234a: APL FUNCTIONAL SYMBOL DOWN TACK UNDERBAR*/ - 0x234b, /* U+00234b: APL FUNCTIONAL SYMBOL DELTA STILE*/ - 0x234c, /* U+00234c: APL FUNCTIONAL SYMBOL QUAD DOWN CARET*/ - 0x234d, /* U+00234d: APL FUNCTIONAL SYMBOL QUAD DELTA*/ - 0x234e, /* U+00234e: APL FUNCTIONAL SYMBOL DOWN TACK JOT*/ - 0x234f, /* U+00234f: APL FUNCTIONAL SYMBOL UPWARDS VANE*/ - 0x2350, /* U+002350: APL FUNCTIONAL SYMBOL QUAD UPWARDS ARROW*/ - 0x2351, /* U+002351: APL FUNCTIONAL SYMBOL UP TACK OVERBAR*/ - 0x2352, /* U+002352: APL FUNCTIONAL SYMBOL DEL STILE*/ - 0x2353, /* U+002353: APL FUNCTIONAL SYMBOL QUAD UP CARET*/ - 0x2354, /* U+002354: APL FUNCTIONAL SYMBOL QUAD DEL*/ - 0x2355, /* U+002355: APL FUNCTIONAL SYMBOL UP TACK JOT*/ - 0x2356, /* U+002356: APL FUNCTIONAL SYMBOL DOWNWARDS VANE*/ - 0x2357, /* U+002357: APL FUNCTIONAL SYMBOL QUAD DOWNWARDS ARROW*/ - 0x2358, /* U+002358: APL FUNCTIONAL SYMBOL QUOTE UNDERBAR*/ - 0x2359, /* U+002359: APL FUNCTIONAL SYMBOL DELTA UNDERBAR*/ - 0x235a, /* U+00235a: APL FUNCTIONAL SYMBOL DIAMOND UNDERBAR*/ - 0x235b, /* U+00235b: APL FUNCTIONAL SYMBOL JOT UNDERBAR*/ - 0x235c, /* U+00235c: APL FUNCTIONAL SYMBOL CIRCLE UNDERBAR*/ - 0x235d, /* U+00235d: APL FUNCTIONAL SYMBOL UP SHOE JOT*/ - 0x235e, /* U+00235e: APL FUNCTIONAL SYMBOL QUOTE QUAD*/ - 0x235f, /* U+00235f: APL FUNCTIONAL SYMBOL CIRCLE STAR*/ - 0x2360, /* U+002360: APL FUNCTIONAL SYMBOL QUAD COLON*/ - 0x2361, /* U+002361: APL FUNCTIONAL SYMBOL UP TACK DIAERESIS*/ - 0x2362, /* U+002362: APL FUNCTIONAL SYMBOL DEL DIAERESIS*/ - 0x2363, /* U+002363: APL FUNCTIONAL SYMBOL STAR DIAERESIS*/ - 0x2364, /* U+002364: APL FUNCTIONAL SYMBOL JOT DIAERESIS*/ - 0x2365, /* U+002365: APL FUNCTIONAL SYMBOL CIRCLE DIAERESIS*/ - 0x2366, /* U+002366: APL FUNCTIONAL SYMBOL DOWN SHOE STILE*/ - 0x2367, /* U+002367: APL FUNCTIONAL SYMBOL LEFT SHOE STILE*/ - 0x2368, /* U+002368: APL FUNCTIONAL SYMBOL TILDE DIAERESIS*/ - 0x2369, /* U+002369: APL FUNCTIONAL SYMBOL GREATER-THAN DIAERESIS*/ - 0x236a, /* U+00236a: APL FUNCTIONAL SYMBOL COMMA BAR*/ - 0x236b, /* U+00236b: APL FUNCTIONAL SYMBOL DEL TILDE*/ - 0x236c, /* U+00236c: APL FUNCTIONAL SYMBOL ZILDE*/ - 0x236d, /* U+00236d: APL FUNCTIONAL SYMBOL STILE TILDE*/ - 0x236e, /* U+00236e: APL FUNCTIONAL SYMBOL SEMICOLON UNDERBAR*/ - 0x236f, /* U+00236f: APL FUNCTIONAL SYMBOL QUAD NOT EQUAL*/ - 0x2370, /* U+002370: APL FUNCTIONAL SYMBOL QUAD QUESTION*/ - 0x2371, /* U+002371: APL FUNCTIONAL SYMBOL DOWN CARET TILDE*/ - 0x2372, /* U+002372: APL FUNCTIONAL SYMBOL UP CARET TILDE*/ - 0x2373, /* U+002373: APL FUNCTIONAL SYMBOL IOTA*/ - 0x2374, /* U+002374: APL FUNCTIONAL SYMBOL RHO*/ - 0x2375, /* U+002375: APL FUNCTIONAL SYMBOL OMEGA*/ - 0x2376, /* U+002376: APL FUNCTIONAL SYMBOL ALPHA UNDERBAR*/ - 0x2377, /* U+002377: APL FUNCTIONAL SYMBOL EPSILON UNDERBAR*/ - 0x2378, /* U+002378: APL FUNCTIONAL SYMBOL IOTA UNDERBAR*/ - 0x2379, /* U+002379: APL FUNCTIONAL SYMBOL OMEGA UNDERBAR*/ - 0x237a, /* U+00237a: APL FUNCTIONAL SYMBOL ALPHA*/ - 0x237b, /* U+00237b: NOT CHECK MARK*/ - 0x237c, /* U+00237c: RIGHT ANGLE WITH DOWNWARDS ZIGZAG ARROW*/ - 0x237d, /* U+00237d: SHOULDERED OPEN BOX*/ - 0x237e, /* U+00237e: BELL SYMBOL*/ - 0x237f, /* U+00237f: VERTICAL LINE WITH MIDDLE DOT*/ - 0x2380, /* U+002380: INSERTION SYMBOL*/ - 0x2381, /* U+002381: CONTINUOUS UNDERLINE SYMBOL*/ - 0x2382, /* U+002382: DISCONTINUOUS UNDERLINE SYMBOL*/ - 0x2383, /* U+002383: EMPHASIS SYMBOL*/ - 0x2384, /* U+002384: COMPOSITION SYMBOL*/ - 0x2385, /* U+002385: WHITE SQUARE WITH CENTRE VERTICAL LINE*/ - 0x2386, /* U+002386: ENTER SYMBOL*/ - 0x2387, /* U+002387: ALTERNATIVE KEY SYMBOL*/ - 0x2388, /* U+002388: HELM SYMBOL*/ - 0x2389, /* U+002389: CIRCLED HORIZONTAL BAR WITH NOTCH*/ - 0x238a, /* U+00238a: CIRCLED TRIANGLE DOWN*/ - 0x238b, /* U+00238b: BROKEN CIRCLE WITH NORTHWEST ARROW*/ - 0x238c, /* U+00238c: UNDO SYMBOL*/ - 0x238d, /* U+00238d: MONOSTABLE SYMBOL*/ - 0x238e, /* U+00238e: HYSTERESIS SYMBOL*/ - 0x238f, /* U+00238f: OPEN-CIRCUIT-OUTPUT H-TYPE SYMBOL*/ - 0x2390, /* U+002390: OPEN-CIRCUIT-OUTPUT L-TYPE SYMBOL*/ - 0x2391, /* U+002391: PASSIVE-PULL-DOWN-OUTPUT SYMBOL*/ - 0x2392, /* U+002392: PASSIVE-PULL-UP-OUTPUT SYMBOL*/ - 0x2393, /* U+002393: DIRECT CURRENT SYMBOL FORM TWO*/ - 0x2394, /* U+002394: SOFTWARE-FUNCTION SYMBOL*/ - 0x2395, /* U+002395: APL FUNCTIONAL SYMBOL QUAD*/ - 0x2396, /* U+002396: DECIMAL SEPARATOR KEY SYMBOL*/ - 0x2397, /* U+002397: PREVIOUS PAGE*/ - 0x2398, /* U+002398: NEXT PAGE*/ - 0x2399, /* U+002399: PRINT SCREEN SYMBOL*/ - 0x239a, /* U+00239a: CLEAR SCREEN SYMBOL*/ - 0x239b, /* U+00239b: LEFT PARENTHESIS UPPER HOOK*/ - 0x239c, /* U+00239c: LEFT PARENTHESIS EXTENSION*/ - 0x239d, /* U+00239d: LEFT PARENTHESIS LOWER HOOK*/ - 0x239e, /* U+00239e: RIGHT PARENTHESIS UPPER HOOK*/ - 0x239f, /* U+00239f: RIGHT PARENTHESIS EXTENSION*/ - 0x23a0, /* U+0023a0: RIGHT PARENTHESIS LOWER HOOK*/ - 0x23a1, /* U+0023a1: LEFT SQUARE BRACKET UPPER CORNER*/ - 0x23a2, /* U+0023a2: LEFT SQUARE BRACKET EXTENSION*/ - 0x23a3, /* U+0023a3: LEFT SQUARE BRACKET LOWER CORNER*/ - 0x23a4, /* U+0023a4: RIGHT SQUARE BRACKET UPPER CORNER*/ - 0x23a5, /* U+0023a5: RIGHT SQUARE BRACKET EXTENSION*/ - 0x23a6, /* U+0023a6: RIGHT SQUARE BRACKET LOWER CORNER*/ - 0x23a7, /* U+0023a7: LEFT CURLY BRACKET UPPER HOOK*/ - 0x23a8, /* U+0023a8: LEFT CURLY BRACKET MIDDLE PIECE*/ - 0x23a9, /* U+0023a9: LEFT CURLY BRACKET LOWER HOOK*/ - 0x23aa, /* U+0023aa: CURLY BRACKET EXTENSION*/ - 0x23ab, /* U+0023ab: RIGHT CURLY BRACKET UPPER HOOK*/ - 0x23ac, /* U+0023ac: RIGHT CURLY BRACKET MIDDLE PIECE*/ - 0x23ad, /* U+0023ad: RIGHT CURLY BRACKET LOWER HOOK*/ - 0x23ae, /* U+0023ae: INTEGRAL EXTENSION*/ - 0x23af, /* U+0023af: HORIZONTAL LINE EXTENSION*/ - 0x23b0, /* U+0023b0: UPPER LEFT OR LOWER RIGHT CURLY BRACKET SECTION*/ - 0x23b1, /* U+0023b1: UPPER RIGHT OR LOWER LEFT CURLY BRACKET SECTION*/ - 0x23b2, /* U+0023b2: SUMMATION TOP*/ - 0x23b3, /* U+0023b3: SUMMATION BOTTOM*/ - 0x23b4, /* U+0023b4: TOP SQUARE BRACKET*/ - 0x23b5, /* U+0023b5: BOTTOM SQUARE BRACKET*/ - 0x23b6, /* U+0023b6: BOTTOM SQUARE BRACKET OVER TOP SQUARE BRACKET*/ - 0x23b7, /* U+0023b7: RADICAL SYMBOL BOTTOM*/ - 0x23b8, /* U+0023b8: LEFT VERTICAL BOX LINE*/ - 0x23b9, /* U+0023b9: RIGHT VERTICAL BOX LINE*/ - 0x23ba, /* U+0023ba: HORIZONTAL SCAN LINE-1*/ - 0x23bb, /* U+0023bb: HORIZONTAL SCAN LINE-3*/ - 0x23bc, /* U+0023bc: HORIZONTAL SCAN LINE-7*/ - 0x23bd, /* U+0023bd: HORIZONTAL SCAN LINE-9*/ - 0x23be, /* U+0023be: DENTISTRY SYMBOL LIGHT VERTICAL AND TOP RIGHT*/ - 0x23bf, /* U+0023bf: DENTISTRY SYMBOL LIGHT VERTICAL AND BOTTOM RIGHT*/ - 0x23c0, /* U+0023c0: DENTISTRY SYMBOL LIGHT VERTICAL WITH CIRCLE*/ - 0x23c1, /* U+0023c1: DENTISTRY SYMBOL LIGHT DOWN AND HORIZONTAL WITH CIRCLE*/ - 0x23c2, /* U+0023c2: DENTISTRY SYMBOL LIGHT UP AND HORIZONTAL WITH CIRCLE*/ - 0x23c3, /* U+0023c3: DENTISTRY SYMBOL LIGHT VERTICAL WITH TRIANGLE*/ - 0x23c4, /* U+0023c4: DENTISTRY SYMBOL LIGHT DOWN AND HORIZONTAL WITH TRIANGLE*/ - 0x23c5, /* U+0023c5: DENTISTRY SYMBOL LIGHT UP AND HORIZONTAL WITH TRIANGLE*/ - 0x23c6, /* U+0023c6: DENTISTRY SYMBOL LIGHT VERTICAL AND WAVE*/ - 0x23c7, /* U+0023c7: DENTISTRY SYMBOL LIGHT DOWN AND HORIZONTAL WITH WAVE*/ - 0x23c8, /* U+0023c8: DENTISTRY SYMBOL LIGHT UP AND HORIZONTAL WITH WAVE*/ - 0x23c9, /* U+0023c9: DENTISTRY SYMBOL LIGHT DOWN AND HORIZONTAL*/ - 0x23ca, /* U+0023ca: DENTISTRY SYMBOL LIGHT UP AND HORIZONTAL*/ - 0x23cb, /* U+0023cb: DENTISTRY SYMBOL LIGHT VERTICAL AND TOP LEFT*/ - 0x23cc, /* U+0023cc: DENTISTRY SYMBOL LIGHT VERTICAL AND BOTTOM LEFT*/ - 0x23cd, /* U+0023cd: SQUARE FOOT*/ - 0x23ce, /* U+0023ce: RETURN SYMBOL*/ - 0x23cf, /* U+0023cf: EJECT SYMBOL*/ - 0x23d0, /* U+0023d0: VERTICAL LINE EXTENSION*/ - 0x23d1, /* U+0023d1: METRICAL BREVE*/ - 0x23d2, /* U+0023d2: METRICAL LONG OVER SHORT*/ - 0x23d3, /* U+0023d3: METRICAL SHORT OVER LONG*/ - 0x23d4, /* U+0023d4: METRICAL LONG OVER TWO SHORTS*/ - 0x23d5, /* U+0023d5: METRICAL TWO SHORTS OVER LONG*/ - 0x23d6, /* U+0023d6: METRICAL TWO SHORTS JOINED*/ - 0x23d7, /* U+0023d7: METRICAL TRISEME*/ - 0x23d8, /* U+0023d8: METRICAL TETRASEME*/ - 0x23d9, /* U+0023d9: METRICAL PENTASEME*/ - 0x23da, /* U+0023da: EARTH GROUND*/ - 0x23db, /* U+0023db: FUSE*/ - 0x23dc, /* U+0023dc: */ - 0x23dd, /* U+0023dd: */ - 0x23de, /* U+0023de: */ - 0x23df, /* U+0023df: */ - 0x23e0, /* U+0023e0: */ - 0x23e1, /* U+0023e1: */ - 0x23e2, /* U+0023e2: */ - 0x23e3, /* U+0023e3: */ - 0x23e4, /* U+0023e4: */ - 0x23e5, /* U+0023e5: */ - 0x23e6, /* U+0023e6: */ - 0x23e7, /* U+0023e7: */ - 0x23e8, /* U+0023e8: */ - 0x23e9, /* U+0023e9: */ - 0x23ea, /* U+0023ea: */ - 0x23eb, /* U+0023eb: */ - 0x23ec, /* U+0023ec: */ - 0x23ed, /* U+0023ed: */ - 0x23ee, /* U+0023ee: */ - 0x23ef, /* U+0023ef: */ - 0x23f0, /* U+0023f0: */ - 0x23f1, /* U+0023f1: */ - 0x23f2, /* U+0023f2: */ - 0x23f3, /* U+0023f3: */ - 0x23f4, /* U+0023f4: */ - 0x23f5, /* U+0023f5: */ - 0x23f6, /* U+0023f6: */ - 0x23f7, /* U+0023f7: */ - 0x23f8, /* U+0023f8: */ - 0x23f9, /* U+0023f9: */ - 0x23fa, /* U+0023fa: */ - 0x23fb, /* U+0023fb: */ - 0x23fc, /* U+0023fc: */ - 0x23fd, /* U+0023fd: */ - 0x23fe, /* U+0023fe: */ - 0x23ff, /* U+0023ff: */ - 0x2400, /* U+002400: SYMBOL FOR NULL*/ - 0x2401, /* U+002401: SYMBOL FOR START OF HEADING*/ - 0x2402, /* U+002402: SYMBOL FOR START OF TEXT*/ - 0x2403, /* U+002403: SYMBOL FOR END OF TEXT*/ - 0x2404, /* U+002404: SYMBOL FOR END OF TRANSMISSION*/ - 0x2405, /* U+002405: SYMBOL FOR ENQUIRY*/ - 0x2406, /* U+002406: SYMBOL FOR ACKNOWLEDGE*/ - 0x2407, /* U+002407: SYMBOL FOR BELL*/ - 0x2408, /* U+002408: SYMBOL FOR BACKSPACE*/ - 0x2409, /* U+002409: SYMBOL FOR HORIZONTAL TABULATION*/ - 0x240a, /* U+00240a: SYMBOL FOR LINE FEED*/ - 0x240b, /* U+00240b: SYMBOL FOR VERTICAL TABULATION*/ - 0x240c, /* U+00240c: SYMBOL FOR FORM FEED*/ - 0x240d, /* U+00240d: SYMBOL FOR CARRIAGE RETURN*/ - 0x240e, /* U+00240e: SYMBOL FOR SHIFT OUT*/ - 0x240f, /* U+00240f: SYMBOL FOR SHIFT IN*/ - 0x2410, /* U+002410: SYMBOL FOR DATA LINK ESCAPE*/ - 0x2411, /* U+002411: SYMBOL FOR DEVICE CONTROL ONE*/ - 0x2412, /* U+002412: SYMBOL FOR DEVICE CONTROL TWO*/ - 0x2413, /* U+002413: SYMBOL FOR DEVICE CONTROL THREE*/ - 0x2414, /* U+002414: SYMBOL FOR DEVICE CONTROL FOUR*/ - 0x2415, /* U+002415: SYMBOL FOR NEGATIVE ACKNOWLEDGE*/ - 0x2416, /* U+002416: SYMBOL FOR SYNCHRONOUS IDLE*/ - 0x2417, /* U+002417: SYMBOL FOR END OF TRANSMISSION BLOCK*/ - 0x2418, /* U+002418: SYMBOL FOR CANCEL*/ - 0x2419, /* U+002419: SYMBOL FOR END OF MEDIUM*/ - 0x241a, /* U+00241a: SYMBOL FOR SUBSTITUTE*/ - 0x241b, /* U+00241b: SYMBOL FOR ESCAPE*/ - 0x241c, /* U+00241c: SYMBOL FOR FILE SEPARATOR*/ - 0x241d, /* U+00241d: SYMBOL FOR GROUP SEPARATOR*/ - 0x241e, /* U+00241e: SYMBOL FOR RECORD SEPARATOR*/ - 0x241f, /* U+00241f: SYMBOL FOR UNIT SEPARATOR*/ - 0x2420, /* U+002420: SYMBOL FOR SPACE*/ - 0x2421, /* U+002421: SYMBOL FOR DELETE*/ - 0x2422, /* U+002422: BLANK SYMBOL*/ - 0x2423, /* U+002423: OPEN BOX*/ - 0x2424, /* U+002424: SYMBOL FOR NEWLINE*/ - 0x2425, /* U+002425: SYMBOL FOR DELETE FORM TWO*/ - 0x2426, /* U+002426: SYMBOL FOR SUBSTITUTE FORM TWO*/ - 0x2427, /* U+002427: */ - 0x2428, /* U+002428: */ - 0x2429, /* U+002429: */ - 0x242a, /* U+00242a: */ - 0x242b, /* U+00242b: */ - 0x242c, /* U+00242c: */ - 0x242d, /* U+00242d: */ - 0x242e, /* U+00242e: */ - 0x242f, /* U+00242f: */ - 0x2430, /* U+002430: */ - 0x2431, /* U+002431: */ - 0x2432, /* U+002432: */ - 0x2433, /* U+002433: */ - 0x2434, /* U+002434: */ - 0x2435, /* U+002435: */ - 0x2436, /* U+002436: */ - 0x2437, /* U+002437: */ - 0x2438, /* U+002438: */ - 0x2439, /* U+002439: */ - 0x243a, /* U+00243a: */ - 0x243b, /* U+00243b: */ - 0x243c, /* U+00243c: */ - 0x243d, /* U+00243d: */ - 0x243e, /* U+00243e: */ - 0x243f, /* U+00243f: */ - 0x2440, /* U+002440: OCR HOOK*/ - 0x2441, /* U+002441: OCR CHAIR*/ - 0x2442, /* U+002442: OCR FORK*/ - 0x2443, /* U+002443: OCR INVERTED FORK*/ - 0x2444, /* U+002444: OCR BELT BUCKLE*/ - 0x2445, /* U+002445: OCR BOW TIE*/ - 0x2446, /* U+002446: OCR BRANCH BANK IDENTIFICATION*/ - 0x2447, /* U+002447: OCR AMOUNT OF CHECK*/ - 0x2448, /* U+002448: OCR DASH*/ - 0x2449, /* U+002449: OCR CUSTOMER ACCOUNT NUMBER*/ - 0x244a, /* U+00244a: OCR DOUBLE BACKSLASH*/ - 0x244b, /* U+00244b: */ - 0x244c, /* U+00244c: */ - 0x244d, /* U+00244d: */ - 0x244e, /* U+00244e: */ - 0x244f, /* U+00244f: */ - 0x2450, /* U+002450: */ - 0x2451, /* U+002451: */ - 0x2452, /* U+002452: */ - 0x2453, /* U+002453: */ - 0x2454, /* U+002454: */ - 0x2455, /* U+002455: */ - 0x2456, /* U+002456: */ - 0x2457, /* U+002457: */ - 0x2458, /* U+002458: */ - 0x2459, /* U+002459: */ - 0x245a, /* U+00245a: */ - 0x245b, /* U+00245b: */ - 0x245c, /* U+00245c: */ - 0x245d, /* U+00245d: */ - 0x245e, /* U+00245e: */ - 0x245f, /* U+00245f: */ - 0x2460, /* U+002460: CIRCLED DIGIT ONE*/ - 0x2461, /* U+002461: CIRCLED DIGIT TWO*/ - 0x2462, /* U+002462: CIRCLED DIGIT THREE*/ - 0x2463, /* U+002463: CIRCLED DIGIT FOUR*/ - 0x2464, /* U+002464: CIRCLED DIGIT FIVE*/ - 0x2465, /* U+002465: CIRCLED DIGIT SIX*/ - 0x2466, /* U+002466: CIRCLED DIGIT SEVEN*/ - 0x2467, /* U+002467: CIRCLED DIGIT EIGHT*/ - 0x2468, /* U+002468: CIRCLED DIGIT NINE*/ - 0x2469, /* U+002469: CIRCLED NUMBER TEN*/ - 0x246a, /* U+00246a: CIRCLED NUMBER ELEVEN*/ - 0x246b, /* U+00246b: CIRCLED NUMBER TWELVE*/ - 0x246c, /* U+00246c: CIRCLED NUMBER THIRTEEN*/ - 0x246d, /* U+00246d: CIRCLED NUMBER FOURTEEN*/ - 0x246e, /* U+00246e: CIRCLED NUMBER FIFTEEN*/ - 0x246f, /* U+00246f: CIRCLED NUMBER SIXTEEN*/ - 0x2470, /* U+002470: CIRCLED NUMBER SEVENTEEN*/ - 0x2471, /* U+002471: CIRCLED NUMBER EIGHTEEN*/ - 0x2472, /* U+002472: CIRCLED NUMBER NINETEEN*/ - 0x2473, /* U+002473: CIRCLED NUMBER TWENTY*/ - 0x2474, /* U+002474: PARENTHESIZED DIGIT ONE*/ - 0x2475, /* U+002475: PARENTHESIZED DIGIT TWO*/ - 0x2476, /* U+002476: PARENTHESIZED DIGIT THREE*/ - 0x2477, /* U+002477: PARENTHESIZED DIGIT FOUR*/ - 0x2478, /* U+002478: PARENTHESIZED DIGIT FIVE*/ - 0x2479, /* U+002479: PARENTHESIZED DIGIT SIX*/ - 0x247a, /* U+00247a: PARENTHESIZED DIGIT SEVEN*/ - 0x247b, /* U+00247b: PARENTHESIZED DIGIT EIGHT*/ - 0x247c, /* U+00247c: PARENTHESIZED DIGIT NINE*/ - 0x247d, /* U+00247d: PARENTHESIZED NUMBER TEN*/ - 0x247e, /* U+00247e: PARENTHESIZED NUMBER ELEVEN*/ - 0x247f, /* U+00247f: PARENTHESIZED NUMBER TWELVE*/ - 0x2480, /* U+002480: PARENTHESIZED NUMBER THIRTEEN*/ - 0x2481, /* U+002481: PARENTHESIZED NUMBER FOURTEEN*/ - 0x2482, /* U+002482: PARENTHESIZED NUMBER FIFTEEN*/ - 0x2483, /* U+002483: PARENTHESIZED NUMBER SIXTEEN*/ - 0x2484, /* U+002484: PARENTHESIZED NUMBER SEVENTEEN*/ - 0x2485, /* U+002485: PARENTHESIZED NUMBER EIGHTEEN*/ - 0x2486, /* U+002486: PARENTHESIZED NUMBER NINETEEN*/ - 0x2487, /* U+002487: PARENTHESIZED NUMBER TWENTY*/ - 0x2488, /* U+002488: DIGIT ONE FULL STOP*/ - 0x2489, /* U+002489: DIGIT TWO FULL STOP*/ - 0x248a, /* U+00248a: DIGIT THREE FULL STOP*/ - 0x248b, /* U+00248b: DIGIT FOUR FULL STOP*/ - 0x248c, /* U+00248c: DIGIT FIVE FULL STOP*/ - 0x248d, /* U+00248d: DIGIT SIX FULL STOP*/ - 0x248e, /* U+00248e: DIGIT SEVEN FULL STOP*/ - 0x248f, /* U+00248f: DIGIT EIGHT FULL STOP*/ - 0x2490, /* U+002490: DIGIT NINE FULL STOP*/ - 0x2491, /* U+002491: NUMBER TEN FULL STOP*/ - 0x2492, /* U+002492: NUMBER ELEVEN FULL STOP*/ - 0x2493, /* U+002493: NUMBER TWELVE FULL STOP*/ - 0x2494, /* U+002494: NUMBER THIRTEEN FULL STOP*/ - 0x2495, /* U+002495: NUMBER FOURTEEN FULL STOP*/ - 0x2496, /* U+002496: NUMBER FIFTEEN FULL STOP*/ - 0x2497, /* U+002497: NUMBER SIXTEEN FULL STOP*/ - 0x2498, /* U+002498: NUMBER SEVENTEEN FULL STOP*/ - 0x2499, /* U+002499: NUMBER EIGHTEEN FULL STOP*/ - 0x249a, /* U+00249a: NUMBER NINETEEN FULL STOP*/ - 0x249b, /* U+00249b: NUMBER TWENTY FULL STOP*/ - 0x249c, /* U+00249c: PARENTHESIZED LATIN SMALL LETTER A*/ - 0x249d, /* U+00249d: PARENTHESIZED LATIN SMALL LETTER B*/ - 0x249e, /* U+00249e: PARENTHESIZED LATIN SMALL LETTER C*/ - 0x249f, /* U+00249f: PARENTHESIZED LATIN SMALL LETTER D*/ - 0x24a0, /* U+0024a0: PARENTHESIZED LATIN SMALL LETTER E*/ - 0x24a1, /* U+0024a1: PARENTHESIZED LATIN SMALL LETTER F*/ - 0x24a2, /* U+0024a2: PARENTHESIZED LATIN SMALL LETTER G*/ - 0x24a3, /* U+0024a3: PARENTHESIZED LATIN SMALL LETTER H*/ - 0x24a4, /* U+0024a4: PARENTHESIZED LATIN SMALL LETTER I*/ - 0x24a5, /* U+0024a5: PARENTHESIZED LATIN SMALL LETTER J*/ - 0x24a6, /* U+0024a6: PARENTHESIZED LATIN SMALL LETTER K*/ - 0x24a7, /* U+0024a7: PARENTHESIZED LATIN SMALL LETTER L*/ - 0x24a8, /* U+0024a8: PARENTHESIZED LATIN SMALL LETTER M*/ - 0x24a9, /* U+0024a9: PARENTHESIZED LATIN SMALL LETTER N*/ - 0x24aa, /* U+0024aa: PARENTHESIZED LATIN SMALL LETTER O*/ - 0x24ab, /* U+0024ab: PARENTHESIZED LATIN SMALL LETTER P*/ - 0x24ac, /* U+0024ac: PARENTHESIZED LATIN SMALL LETTER Q*/ - 0x24ad, /* U+0024ad: PARENTHESIZED LATIN SMALL LETTER R*/ - 0x24ae, /* U+0024ae: PARENTHESIZED LATIN SMALL LETTER S*/ - 0x24af, /* U+0024af: PARENTHESIZED LATIN SMALL LETTER T*/ - 0x24b0, /* U+0024b0: PARENTHESIZED LATIN SMALL LETTER U*/ - 0x24b1, /* U+0024b1: PARENTHESIZED LATIN SMALL LETTER V*/ - 0x24b2, /* U+0024b2: PARENTHESIZED LATIN SMALL LETTER W*/ - 0x24b3, /* U+0024b3: PARENTHESIZED LATIN SMALL LETTER X*/ - 0x24b4, /* U+0024b4: PARENTHESIZED LATIN SMALL LETTER Y*/ - 0x24b5, /* U+0024b5: PARENTHESIZED LATIN SMALL LETTER Z*/ - 0x24b6, /* U+0024b6: CIRCLED LATIN CAPITAL LETTER A*/ - 0x24b7, /* U+0024b7: CIRCLED LATIN CAPITAL LETTER B*/ - 0x24b8, /* U+0024b8: CIRCLED LATIN CAPITAL LETTER C*/ - 0x24b9, /* U+0024b9: CIRCLED LATIN CAPITAL LETTER D*/ - 0x24ba, /* U+0024ba: CIRCLED LATIN CAPITAL LETTER E*/ - 0x24bb, /* U+0024bb: CIRCLED LATIN CAPITAL LETTER F*/ - 0x24bc, /* U+0024bc: CIRCLED LATIN CAPITAL LETTER G*/ - 0x24bd, /* U+0024bd: CIRCLED LATIN CAPITAL LETTER H*/ - 0x24be, /* U+0024be: CIRCLED LATIN CAPITAL LETTER I*/ - 0x24bf, /* U+0024bf: CIRCLED LATIN CAPITAL LETTER J*/ - 0x24c0, /* U+0024c0: CIRCLED LATIN CAPITAL LETTER K*/ - 0x24c1, /* U+0024c1: CIRCLED LATIN CAPITAL LETTER L*/ - 0x24c2, /* U+0024c2: CIRCLED LATIN CAPITAL LETTER M*/ - 0x24c3, /* U+0024c3: CIRCLED LATIN CAPITAL LETTER N*/ - 0x24c4, /* U+0024c4: CIRCLED LATIN CAPITAL LETTER O*/ - 0x24c5, /* U+0024c5: CIRCLED LATIN CAPITAL LETTER P*/ - 0x24c6, /* U+0024c6: CIRCLED LATIN CAPITAL LETTER Q*/ - 0x24c7, /* U+0024c7: CIRCLED LATIN CAPITAL LETTER R*/ - 0x24c8, /* U+0024c8: CIRCLED LATIN CAPITAL LETTER S*/ - 0x24c9, /* U+0024c9: CIRCLED LATIN CAPITAL LETTER T*/ - 0x24ca, /* U+0024ca: CIRCLED LATIN CAPITAL LETTER U*/ - 0x24cb, /* U+0024cb: CIRCLED LATIN CAPITAL LETTER V*/ - 0x24cc, /* U+0024cc: CIRCLED LATIN CAPITAL LETTER W*/ - 0x24cd, /* U+0024cd: CIRCLED LATIN CAPITAL LETTER X*/ - 0x24ce, /* U+0024ce: CIRCLED LATIN CAPITAL LETTER Y*/ - 0x24cf, /* U+0024cf: CIRCLED LATIN CAPITAL LETTER Z*/ - 0x24b6, /* U+0024d0: CIRCLED LATIN SMALL LETTER A*/ - 0x24b7, /* U+0024d1: CIRCLED LATIN SMALL LETTER B*/ - 0x24b8, /* U+0024d2: CIRCLED LATIN SMALL LETTER C*/ - 0x24b9, /* U+0024d3: CIRCLED LATIN SMALL LETTER D*/ - 0x24ba, /* U+0024d4: CIRCLED LATIN SMALL LETTER E*/ - 0x24bb, /* U+0024d5: CIRCLED LATIN SMALL LETTER F*/ - 0x24bc, /* U+0024d6: CIRCLED LATIN SMALL LETTER G*/ - 0x24bd, /* U+0024d7: CIRCLED LATIN SMALL LETTER H*/ - 0x24be, /* U+0024d8: CIRCLED LATIN SMALL LETTER I*/ - 0x24bf, /* U+0024d9: CIRCLED LATIN SMALL LETTER J*/ - 0x24c0, /* U+0024da: CIRCLED LATIN SMALL LETTER K*/ - 0x24c1, /* U+0024db: CIRCLED LATIN SMALL LETTER L*/ - 0x24c2, /* U+0024dc: CIRCLED LATIN SMALL LETTER M*/ - 0x24c3, /* U+0024dd: CIRCLED LATIN SMALL LETTER N*/ - 0x24c4, /* U+0024de: CIRCLED LATIN SMALL LETTER O*/ - 0x24c5, /* U+0024df: CIRCLED LATIN SMALL LETTER P*/ - 0x24c6, /* U+0024e0: CIRCLED LATIN SMALL LETTER Q*/ - 0x24c7, /* U+0024e1: CIRCLED LATIN SMALL LETTER R*/ - 0x24c8, /* U+0024e2: CIRCLED LATIN SMALL LETTER S*/ - 0x24c9, /* U+0024e3: CIRCLED LATIN SMALL LETTER T*/ - 0x24ca, /* U+0024e4: CIRCLED LATIN SMALL LETTER U*/ - 0x24cb, /* U+0024e5: CIRCLED LATIN SMALL LETTER V*/ - 0x24cc, /* U+0024e6: CIRCLED LATIN SMALL LETTER W*/ - 0x24cd, /* U+0024e7: CIRCLED LATIN SMALL LETTER X*/ - 0x24ce, /* U+0024e8: CIRCLED LATIN SMALL LETTER Y*/ - 0x24cf, /* U+0024e9: CIRCLED LATIN SMALL LETTER Z*/ -}; - -static const RTUNICP g_afRTUniUpper0x002c30[] = -{ - 0x2c00, /* U+002c30: GLAGOLITIC SMALL LETTER AZU*/ - 0x2c01, /* U+002c31: GLAGOLITIC SMALL LETTER BUKY*/ - 0x2c02, /* U+002c32: GLAGOLITIC SMALL LETTER VEDE*/ - 0x2c03, /* U+002c33: GLAGOLITIC SMALL LETTER GLAGOLI*/ - 0x2c04, /* U+002c34: GLAGOLITIC SMALL LETTER DOBRO*/ - 0x2c05, /* U+002c35: GLAGOLITIC SMALL LETTER YESTU*/ - 0x2c06, /* U+002c36: GLAGOLITIC SMALL LETTER ZHIVETE*/ - 0x2c07, /* U+002c37: GLAGOLITIC SMALL LETTER DZELO*/ - 0x2c08, /* U+002c38: GLAGOLITIC SMALL LETTER ZEMLJA*/ - 0x2c09, /* U+002c39: GLAGOLITIC SMALL LETTER IZHE*/ - 0x2c0a, /* U+002c3a: GLAGOLITIC SMALL LETTER INITIAL IZHE*/ - 0x2c0b, /* U+002c3b: GLAGOLITIC SMALL LETTER I*/ - 0x2c0c, /* U+002c3c: GLAGOLITIC SMALL LETTER DJERVI*/ - 0x2c0d, /* U+002c3d: GLAGOLITIC SMALL LETTER KAKO*/ - 0x2c0e, /* U+002c3e: GLAGOLITIC SMALL LETTER LJUDIJE*/ - 0x2c0f, /* U+002c3f: GLAGOLITIC SMALL LETTER MYSLITE*/ - 0x2c10, /* U+002c40: GLAGOLITIC SMALL LETTER NASHI*/ - 0x2c11, /* U+002c41: GLAGOLITIC SMALL LETTER ONU*/ - 0x2c12, /* U+002c42: GLAGOLITIC SMALL LETTER POKOJI*/ - 0x2c13, /* U+002c43: GLAGOLITIC SMALL LETTER RITSI*/ - 0x2c14, /* U+002c44: GLAGOLITIC SMALL LETTER SLOVO*/ - 0x2c15, /* U+002c45: GLAGOLITIC SMALL LETTER TVRIDO*/ - 0x2c16, /* U+002c46: GLAGOLITIC SMALL LETTER UKU*/ - 0x2c17, /* U+002c47: GLAGOLITIC SMALL LETTER FRITU*/ - 0x2c18, /* U+002c48: GLAGOLITIC SMALL LETTER HERU*/ - 0x2c19, /* U+002c49: GLAGOLITIC SMALL LETTER OTU*/ - 0x2c1a, /* U+002c4a: GLAGOLITIC SMALL LETTER PE*/ - 0x2c1b, /* U+002c4b: GLAGOLITIC SMALL LETTER SHTA*/ - 0x2c1c, /* U+002c4c: GLAGOLITIC SMALL LETTER TSI*/ - 0x2c1d, /* U+002c4d: GLAGOLITIC SMALL LETTER CHRIVI*/ - 0x2c1e, /* U+002c4e: GLAGOLITIC SMALL LETTER SHA*/ - 0x2c1f, /* U+002c4f: GLAGOLITIC SMALL LETTER YERU*/ - 0x2c20, /* U+002c50: GLAGOLITIC SMALL LETTER YERI*/ - 0x2c21, /* U+002c51: GLAGOLITIC SMALL LETTER YATI*/ - 0x2c22, /* U+002c52: GLAGOLITIC SMALL LETTER SPIDERY HA*/ - 0x2c23, /* U+002c53: GLAGOLITIC SMALL LETTER YU*/ - 0x2c24, /* U+002c54: GLAGOLITIC SMALL LETTER SMALL YUS*/ - 0x2c25, /* U+002c55: GLAGOLITIC SMALL LETTER SMALL YUS WITH TAIL*/ - 0x2c26, /* U+002c56: GLAGOLITIC SMALL LETTER YO*/ - 0x2c27, /* U+002c57: GLAGOLITIC SMALL LETTER IOTATED SMALL YUS*/ - 0x2c28, /* U+002c58: GLAGOLITIC SMALL LETTER BIG YUS*/ - 0x2c29, /* U+002c59: GLAGOLITIC SMALL LETTER IOTATED BIG YUS*/ - 0x2c2a, /* U+002c5a: GLAGOLITIC SMALL LETTER FITA*/ - 0x2c2b, /* U+002c5b: GLAGOLITIC SMALL LETTER IZHITSA*/ - 0x2c2c, /* U+002c5c: GLAGOLITIC SMALL LETTER SHTAPIC*/ - 0x2c2d, /* U+002c5d: GLAGOLITIC SMALL LETTER TROKUTASTI A*/ - 0x2c2e, /* U+002c5e: GLAGOLITIC SMALL LETTER LATINATE MYSLITE*/ - 0x2c5f, /* U+002c5f: */ - 0x2c60, /* U+002c60: */ - 0x2c61, /* U+002c61: */ - 0x2c62, /* U+002c62: */ - 0x2c63, /* U+002c63: */ - 0x2c64, /* U+002c64: */ - 0x2c65, /* U+002c65: */ - 0x2c66, /* U+002c66: */ - 0x2c67, /* U+002c67: */ - 0x2c68, /* U+002c68: */ - 0x2c69, /* U+002c69: */ - 0x2c6a, /* U+002c6a: */ - 0x2c6b, /* U+002c6b: */ - 0x2c6c, /* U+002c6c: */ - 0x2c6d, /* U+002c6d: */ - 0x2c6e, /* U+002c6e: */ - 0x2c6f, /* U+002c6f: */ - 0x2c70, /* U+002c70: */ - 0x2c71, /* U+002c71: */ - 0x2c72, /* U+002c72: */ - 0x2c73, /* U+002c73: */ - 0x2c74, /* U+002c74: */ - 0x2c75, /* U+002c75: */ - 0x2c76, /* U+002c76: */ - 0x2c77, /* U+002c77: */ - 0x2c78, /* U+002c78: */ - 0x2c79, /* U+002c79: */ - 0x2c7a, /* U+002c7a: */ - 0x2c7b, /* U+002c7b: */ - 0x2c7c, /* U+002c7c: */ - 0x2c7d, /* U+002c7d: */ - 0x2c7e, /* U+002c7e: */ - 0x2c7f, /* U+002c7f: */ - 0x2c80, /* U+002c80: COPTIC CAPITAL LETTER ALFA*/ - 0x2c80, /* U+002c81: COPTIC SMALL LETTER ALFA*/ - 0x2c82, /* U+002c82: COPTIC CAPITAL LETTER VIDA*/ - 0x2c82, /* U+002c83: COPTIC SMALL LETTER VIDA*/ - 0x2c84, /* U+002c84: COPTIC CAPITAL LETTER GAMMA*/ - 0x2c84, /* U+002c85: COPTIC SMALL LETTER GAMMA*/ - 0x2c86, /* U+002c86: COPTIC CAPITAL LETTER DALDA*/ - 0x2c86, /* U+002c87: COPTIC SMALL LETTER DALDA*/ - 0x2c88, /* U+002c88: COPTIC CAPITAL LETTER EIE*/ - 0x2c88, /* U+002c89: COPTIC SMALL LETTER EIE*/ - 0x2c8a, /* U+002c8a: COPTIC CAPITAL LETTER SOU*/ - 0x2c8a, /* U+002c8b: COPTIC SMALL LETTER SOU*/ - 0x2c8c, /* U+002c8c: COPTIC CAPITAL LETTER ZATA*/ - 0x2c8c, /* U+002c8d: COPTIC SMALL LETTER ZATA*/ - 0x2c8e, /* U+002c8e: COPTIC CAPITAL LETTER HATE*/ - 0x2c8e, /* U+002c8f: COPTIC SMALL LETTER HATE*/ - 0x2c90, /* U+002c90: COPTIC CAPITAL LETTER THETHE*/ - 0x2c90, /* U+002c91: COPTIC SMALL LETTER THETHE*/ - 0x2c92, /* U+002c92: COPTIC CAPITAL LETTER IAUDA*/ - 0x2c92, /* U+002c93: COPTIC SMALL LETTER IAUDA*/ - 0x2c94, /* U+002c94: COPTIC CAPITAL LETTER KAPA*/ - 0x2c94, /* U+002c95: COPTIC SMALL LETTER KAPA*/ - 0x2c96, /* U+002c96: COPTIC CAPITAL LETTER LAULA*/ - 0x2c96, /* U+002c97: COPTIC SMALL LETTER LAULA*/ - 0x2c98, /* U+002c98: COPTIC CAPITAL LETTER MI*/ - 0x2c98, /* U+002c99: COPTIC SMALL LETTER MI*/ - 0x2c9a, /* U+002c9a: COPTIC CAPITAL LETTER NI*/ - 0x2c9a, /* U+002c9b: COPTIC SMALL LETTER NI*/ - 0x2c9c, /* U+002c9c: COPTIC CAPITAL LETTER KSI*/ - 0x2c9c, /* U+002c9d: COPTIC SMALL LETTER KSI*/ - 0x2c9e, /* U+002c9e: COPTIC CAPITAL LETTER O*/ - 0x2c9e, /* U+002c9f: COPTIC SMALL LETTER O*/ - 0x2ca0, /* U+002ca0: COPTIC CAPITAL LETTER PI*/ - 0x2ca0, /* U+002ca1: COPTIC SMALL LETTER PI*/ - 0x2ca2, /* U+002ca2: COPTIC CAPITAL LETTER RO*/ - 0x2ca2, /* U+002ca3: COPTIC SMALL LETTER RO*/ - 0x2ca4, /* U+002ca4: COPTIC CAPITAL LETTER SIMA*/ - 0x2ca4, /* U+002ca5: COPTIC SMALL LETTER SIMA*/ - 0x2ca6, /* U+002ca6: COPTIC CAPITAL LETTER TAU*/ - 0x2ca6, /* U+002ca7: COPTIC SMALL LETTER TAU*/ - 0x2ca8, /* U+002ca8: COPTIC CAPITAL LETTER UA*/ - 0x2ca8, /* U+002ca9: COPTIC SMALL LETTER UA*/ - 0x2caa, /* U+002caa: COPTIC CAPITAL LETTER FI*/ - 0x2caa, /* U+002cab: COPTIC SMALL LETTER FI*/ - 0x2cac, /* U+002cac: COPTIC CAPITAL LETTER KHI*/ - 0x2cac, /* U+002cad: COPTIC SMALL LETTER KHI*/ - 0x2cae, /* U+002cae: COPTIC CAPITAL LETTER PSI*/ - 0x2cae, /* U+002caf: COPTIC SMALL LETTER PSI*/ - 0x2cb0, /* U+002cb0: COPTIC CAPITAL LETTER OOU*/ - 0x2cb0, /* U+002cb1: COPTIC SMALL LETTER OOU*/ - 0x2cb2, /* U+002cb2: COPTIC CAPITAL LETTER DIALECT-P ALEF*/ - 0x2cb2, /* U+002cb3: COPTIC SMALL LETTER DIALECT-P ALEF*/ - 0x2cb4, /* U+002cb4: COPTIC CAPITAL LETTER OLD COPTIC AIN*/ - 0x2cb4, /* U+002cb5: COPTIC SMALL LETTER OLD COPTIC AIN*/ - 0x2cb6, /* U+002cb6: COPTIC CAPITAL LETTER CRYPTOGRAMMIC EIE*/ - 0x2cb6, /* U+002cb7: COPTIC SMALL LETTER CRYPTOGRAMMIC EIE*/ - 0x2cb8, /* U+002cb8: COPTIC CAPITAL LETTER DIALECT-P KAPA*/ - 0x2cb8, /* U+002cb9: COPTIC SMALL LETTER DIALECT-P KAPA*/ - 0x2cba, /* U+002cba: COPTIC CAPITAL LETTER DIALECT-P NI*/ - 0x2cba, /* U+002cbb: COPTIC SMALL LETTER DIALECT-P NI*/ - 0x2cbc, /* U+002cbc: COPTIC CAPITAL LETTER CRYPTOGRAMMIC NI*/ - 0x2cbc, /* U+002cbd: COPTIC SMALL LETTER CRYPTOGRAMMIC NI*/ - 0x2cbe, /* U+002cbe: COPTIC CAPITAL LETTER OLD COPTIC OOU*/ - 0x2cbe, /* U+002cbf: COPTIC SMALL LETTER OLD COPTIC OOU*/ - 0x2cc0, /* U+002cc0: COPTIC CAPITAL LETTER SAMPI*/ - 0x2cc0, /* U+002cc1: COPTIC SMALL LETTER SAMPI*/ - 0x2cc2, /* U+002cc2: COPTIC CAPITAL LETTER CROSSED SHEI*/ - 0x2cc2, /* U+002cc3: COPTIC SMALL LETTER CROSSED SHEI*/ - 0x2cc4, /* U+002cc4: COPTIC CAPITAL LETTER OLD COPTIC SHEI*/ - 0x2cc4, /* U+002cc5: COPTIC SMALL LETTER OLD COPTIC SHEI*/ - 0x2cc6, /* U+002cc6: COPTIC CAPITAL LETTER OLD COPTIC ESH*/ - 0x2cc6, /* U+002cc7: COPTIC SMALL LETTER OLD COPTIC ESH*/ - 0x2cc8, /* U+002cc8: COPTIC CAPITAL LETTER AKHMIMIC KHEI*/ - 0x2cc8, /* U+002cc9: COPTIC SMALL LETTER AKHMIMIC KHEI*/ - 0x2cca, /* U+002cca: COPTIC CAPITAL LETTER DIALECT-P HORI*/ - 0x2cca, /* U+002ccb: COPTIC SMALL LETTER DIALECT-P HORI*/ - 0x2ccc, /* U+002ccc: COPTIC CAPITAL LETTER OLD COPTIC HORI*/ - 0x2ccc, /* U+002ccd: COPTIC SMALL LETTER OLD COPTIC HORI*/ - 0x2cce, /* U+002cce: COPTIC CAPITAL LETTER OLD COPTIC HA*/ - 0x2cce, /* U+002ccf: COPTIC SMALL LETTER OLD COPTIC HA*/ - 0x2cd0, /* U+002cd0: COPTIC CAPITAL LETTER L-SHAPED HA*/ - 0x2cd0, /* U+002cd1: COPTIC SMALL LETTER L-SHAPED HA*/ - 0x2cd2, /* U+002cd2: COPTIC CAPITAL LETTER OLD COPTIC HEI*/ - 0x2cd2, /* U+002cd3: COPTIC SMALL LETTER OLD COPTIC HEI*/ - 0x2cd4, /* U+002cd4: COPTIC CAPITAL LETTER OLD COPTIC HAT*/ - 0x2cd4, /* U+002cd5: COPTIC SMALL LETTER OLD COPTIC HAT*/ - 0x2cd6, /* U+002cd6: COPTIC CAPITAL LETTER OLD COPTIC GANGIA*/ - 0x2cd6, /* U+002cd7: COPTIC SMALL LETTER OLD COPTIC GANGIA*/ - 0x2cd8, /* U+002cd8: COPTIC CAPITAL LETTER OLD COPTIC DJA*/ - 0x2cd8, /* U+002cd9: COPTIC SMALL LETTER OLD COPTIC DJA*/ - 0x2cda, /* U+002cda: COPTIC CAPITAL LETTER OLD COPTIC SHIMA*/ - 0x2cda, /* U+002cdb: COPTIC SMALL LETTER OLD COPTIC SHIMA*/ - 0x2cdc, /* U+002cdc: COPTIC CAPITAL LETTER OLD NUBIAN SHIMA*/ - 0x2cdc, /* U+002cdd: COPTIC SMALL LETTER OLD NUBIAN SHIMA*/ - 0x2cde, /* U+002cde: COPTIC CAPITAL LETTER OLD NUBIAN NGI*/ - 0x2cde, /* U+002cdf: COPTIC SMALL LETTER OLD NUBIAN NGI*/ - 0x2ce0, /* U+002ce0: COPTIC CAPITAL LETTER OLD NUBIAN NYI*/ - 0x2ce0, /* U+002ce1: COPTIC SMALL LETTER OLD NUBIAN NYI*/ - 0x2ce2, /* U+002ce2: COPTIC CAPITAL LETTER OLD NUBIAN WAU*/ - 0x2ce2, /* U+002ce3: COPTIC SMALL LETTER OLD NUBIAN WAU*/ - 0x2ce4, /* U+002ce4: COPTIC SYMBOL KAI*/ - 0x2ce5, /* U+002ce5: COPTIC SYMBOL MI RO*/ - 0x2ce6, /* U+002ce6: COPTIC SYMBOL PI RO*/ - 0x2ce7, /* U+002ce7: COPTIC SYMBOL STAUROS*/ - 0x2ce8, /* U+002ce8: COPTIC SYMBOL TAU RO*/ - 0x2ce9, /* U+002ce9: COPTIC SYMBOL KHI RO*/ - 0x2cea, /* U+002cea: COPTIC SYMBOL SHIMA SIMA*/ - 0x2ceb, /* U+002ceb: */ - 0x2cec, /* U+002cec: */ - 0x2ced, /* U+002ced: */ - 0x2cee, /* U+002cee: */ - 0x2cef, /* U+002cef: */ - 0x2cf0, /* U+002cf0: */ - 0x2cf1, /* U+002cf1: */ - 0x2cf2, /* U+002cf2: */ - 0x2cf3, /* U+002cf3: */ - 0x2cf4, /* U+002cf4: */ - 0x2cf5, /* U+002cf5: */ - 0x2cf6, /* U+002cf6: */ - 0x2cf7, /* U+002cf7: */ - 0x2cf8, /* U+002cf8: */ - 0x2cf9, /* U+002cf9: COPTIC OLD NUBIAN FULL STOP*/ - 0x2cfa, /* U+002cfa: COPTIC OLD NUBIAN DIRECT QUESTION MARK*/ - 0x2cfb, /* U+002cfb: COPTIC OLD NUBIAN INDIRECT QUESTION MARK*/ - 0x2cfc, /* U+002cfc: COPTIC OLD NUBIAN VERSE DIVIDER*/ - 0x2cfd, /* U+002cfd: COPTIC FRACTION ONE HALF*/ - 0x2cfe, /* U+002cfe: COPTIC FULL STOP*/ - 0x2cff, /* U+002cff: COPTIC MORPHOLOGICAL DIVIDER*/ - 0x10a0, /* U+002d00: GEORGIAN SMALL LETTER AN*/ - 0x10a1, /* U+002d01: GEORGIAN SMALL LETTER BAN*/ - 0x10a2, /* U+002d02: GEORGIAN SMALL LETTER GAN*/ - 0x10a3, /* U+002d03: GEORGIAN SMALL LETTER DON*/ - 0x10a4, /* U+002d04: GEORGIAN SMALL LETTER EN*/ - 0x10a5, /* U+002d05: GEORGIAN SMALL LETTER VIN*/ - 0x10a6, /* U+002d06: GEORGIAN SMALL LETTER ZEN*/ - 0x10a7, /* U+002d07: GEORGIAN SMALL LETTER TAN*/ - 0x10a8, /* U+002d08: GEORGIAN SMALL LETTER IN*/ - 0x10a9, /* U+002d09: GEORGIAN SMALL LETTER KAN*/ - 0x10aa, /* U+002d0a: GEORGIAN SMALL LETTER LAS*/ - 0x10ab, /* U+002d0b: GEORGIAN SMALL LETTER MAN*/ - 0x10ac, /* U+002d0c: GEORGIAN SMALL LETTER NAR*/ - 0x10ad, /* U+002d0d: GEORGIAN SMALL LETTER ON*/ - 0x10ae, /* U+002d0e: GEORGIAN SMALL LETTER PAR*/ - 0x10af, /* U+002d0f: GEORGIAN SMALL LETTER ZHAR*/ - 0x10b0, /* U+002d10: GEORGIAN SMALL LETTER RAE*/ - 0x10b1, /* U+002d11: GEORGIAN SMALL LETTER SAN*/ - 0x10b2, /* U+002d12: GEORGIAN SMALL LETTER TAR*/ - 0x10b3, /* U+002d13: GEORGIAN SMALL LETTER UN*/ - 0x10b4, /* U+002d14: GEORGIAN SMALL LETTER PHAR*/ - 0x10b5, /* U+002d15: GEORGIAN SMALL LETTER KHAR*/ - 0x10b6, /* U+002d16: GEORGIAN SMALL LETTER GHAN*/ - 0x10b7, /* U+002d17: GEORGIAN SMALL LETTER QAR*/ - 0x10b8, /* U+002d18: GEORGIAN SMALL LETTER SHIN*/ - 0x10b9, /* U+002d19: GEORGIAN SMALL LETTER CHIN*/ - 0x10ba, /* U+002d1a: GEORGIAN SMALL LETTER CAN*/ - 0x10bb, /* U+002d1b: GEORGIAN SMALL LETTER JIL*/ - 0x10bc, /* U+002d1c: GEORGIAN SMALL LETTER CIL*/ - 0x10bd, /* U+002d1d: GEORGIAN SMALL LETTER CHAR*/ - 0x10be, /* U+002d1e: GEORGIAN SMALL LETTER XAN*/ - 0x10bf, /* U+002d1f: GEORGIAN SMALL LETTER JHAN*/ - 0x10c0, /* U+002d20: GEORGIAN SMALL LETTER HAE*/ - 0x10c1, /* U+002d21: GEORGIAN SMALL LETTER HE*/ - 0x10c2, /* U+002d22: GEORGIAN SMALL LETTER HIE*/ - 0x10c3, /* U+002d23: GEORGIAN SMALL LETTER WE*/ - 0x10c4, /* U+002d24: GEORGIAN SMALL LETTER HAR*/ - 0x10c5, /* U+002d25: GEORGIAN SMALL LETTER HOE*/ -}; - -static const RTUNICP g_afRTUniUpper0x00ff41[] = -{ - 0xff21, /* U+00ff41: FULLWIDTH LATIN SMALL LETTER A*/ - 0xff22, /* U+00ff42: FULLWIDTH LATIN SMALL LETTER B*/ - 0xff23, /* U+00ff43: FULLWIDTH LATIN SMALL LETTER C*/ - 0xff24, /* U+00ff44: FULLWIDTH LATIN SMALL LETTER D*/ - 0xff25, /* U+00ff45: FULLWIDTH LATIN SMALL LETTER E*/ - 0xff26, /* U+00ff46: FULLWIDTH LATIN SMALL LETTER F*/ - 0xff27, /* U+00ff47: FULLWIDTH LATIN SMALL LETTER G*/ - 0xff28, /* U+00ff48: FULLWIDTH LATIN SMALL LETTER H*/ - 0xff29, /* U+00ff49: FULLWIDTH LATIN SMALL LETTER I*/ - 0xff2a, /* U+00ff4a: FULLWIDTH LATIN SMALL LETTER J*/ - 0xff2b, /* U+00ff4b: FULLWIDTH LATIN SMALL LETTER K*/ - 0xff2c, /* U+00ff4c: FULLWIDTH LATIN SMALL LETTER L*/ - 0xff2d, /* U+00ff4d: FULLWIDTH LATIN SMALL LETTER M*/ - 0xff2e, /* U+00ff4e: FULLWIDTH LATIN SMALL LETTER N*/ - 0xff2f, /* U+00ff4f: FULLWIDTH LATIN SMALL LETTER O*/ - 0xff30, /* U+00ff50: FULLWIDTH LATIN SMALL LETTER P*/ - 0xff31, /* U+00ff51: FULLWIDTH LATIN SMALL LETTER Q*/ - 0xff32, /* U+00ff52: FULLWIDTH LATIN SMALL LETTER R*/ - 0xff33, /* U+00ff53: FULLWIDTH LATIN SMALL LETTER S*/ - 0xff34, /* U+00ff54: FULLWIDTH LATIN SMALL LETTER T*/ - 0xff35, /* U+00ff55: FULLWIDTH LATIN SMALL LETTER U*/ - 0xff36, /* U+00ff56: FULLWIDTH LATIN SMALL LETTER V*/ - 0xff37, /* U+00ff57: FULLWIDTH LATIN SMALL LETTER W*/ - 0xff38, /* U+00ff58: FULLWIDTH LATIN SMALL LETTER X*/ - 0xff39, /* U+00ff59: FULLWIDTH LATIN SMALL LETTER Y*/ - 0xff3a, /* U+00ff5a: FULLWIDTH LATIN SMALL LETTER Z*/ -}; - -static const RTUNICP g_afRTUniUpper0x010428[] = -{ - 0x10400, /* U+010428: DESERET SMALL LETTER LONG I*/ - 0x10401, /* U+010429: DESERET SMALL LETTER LONG E*/ - 0x10402, /* U+01042a: DESERET SMALL LETTER LONG A*/ - 0x10403, /* U+01042b: DESERET SMALL LETTER LONG AH*/ - 0x10404, /* U+01042c: DESERET SMALL LETTER LONG O*/ - 0x10405, /* U+01042d: DESERET SMALL LETTER LONG OO*/ - 0x10406, /* U+01042e: DESERET SMALL LETTER SHORT I*/ - 0x10407, /* U+01042f: DESERET SMALL LETTER SHORT E*/ - 0x10408, /* U+010430: DESERET SMALL LETTER SHORT A*/ - 0x10409, /* U+010431: DESERET SMALL LETTER SHORT AH*/ - 0x1040a, /* U+010432: DESERET SMALL LETTER SHORT O*/ - 0x1040b, /* U+010433: DESERET SMALL LETTER SHORT OO*/ - 0x1040c, /* U+010434: DESERET SMALL LETTER AY*/ - 0x1040d, /* U+010435: DESERET SMALL LETTER OW*/ - 0x1040e, /* U+010436: DESERET SMALL LETTER WU*/ - 0x1040f, /* U+010437: DESERET SMALL LETTER YEE*/ - 0x10410, /* U+010438: DESERET SMALL LETTER H*/ - 0x10411, /* U+010439: DESERET SMALL LETTER PEE*/ - 0x10412, /* U+01043a: DESERET SMALL LETTER BEE*/ - 0x10413, /* U+01043b: DESERET SMALL LETTER TEE*/ - 0x10414, /* U+01043c: DESERET SMALL LETTER DEE*/ - 0x10415, /* U+01043d: DESERET SMALL LETTER CHEE*/ - 0x10416, /* U+01043e: DESERET SMALL LETTER JEE*/ - 0x10417, /* U+01043f: DESERET SMALL LETTER KAY*/ - 0x10418, /* U+010440: DESERET SMALL LETTER GAY*/ - 0x10419, /* U+010441: DESERET SMALL LETTER EF*/ - 0x1041a, /* U+010442: DESERET SMALL LETTER VEE*/ - 0x1041b, /* U+010443: DESERET SMALL LETTER ETH*/ - 0x1041c, /* U+010444: DESERET SMALL LETTER THEE*/ - 0x1041d, /* U+010445: DESERET SMALL LETTER ES*/ - 0x1041e, /* U+010446: DESERET SMALL LETTER ZEE*/ - 0x1041f, /* U+010447: DESERET SMALL LETTER ESH*/ - 0x10420, /* U+010448: DESERET SMALL LETTER ZHEE*/ - 0x10421, /* U+010449: DESERET SMALL LETTER ER*/ - 0x10422, /* U+01044a: DESERET SMALL LETTER EL*/ - 0x10423, /* U+01044b: DESERET SMALL LETTER EM*/ - 0x10424, /* U+01044c: DESERET SMALL LETTER EN*/ - 0x10425, /* U+01044d: DESERET SMALL LETTER ENG*/ - 0x10426, /* U+01044e: DESERET SMALL LETTER OI*/ - 0x10427, /* U+01044f: DESERET SMALL LETTER EW*/ -}; - - -const RTUNICASERANGE g_aRTUniUpperRanges[] = -{ - { 0x000000, 0x000587, &g_afRTUniUpper0x000000[0] }, - { 0x001e01, 0x0024ea, &g_afRTUniUpper0x001e01[0] }, - { 0x002c30, 0x002d26, &g_afRTUniUpper0x002c30[0] }, - { 0x00ff41, 0x00ff5b, &g_afRTUniUpper0x00ff41[0] }, - { 0x010428, 0x010450, &g_afRTUniUpper0x010428[0] }, - { ~(RTUNICP)0, ~(RTUNICP)0, NULL } -}; - - -static const RTUNICP g_afRTUniLower0x000000[] = -{ - 0x00, /* U+000000: */ - 0x01, /* U+000001: */ - 0x02, /* U+000002: */ - 0x03, /* U+000003: */ - 0x04, /* U+000004: */ - 0x05, /* U+000005: */ - 0x06, /* U+000006: */ - 0x07, /* U+000007: */ - 0x08, /* U+000008: */ - 0x09, /* U+000009: */ - 0x0a, /* U+00000a: */ - 0x0b, /* U+00000b: */ - 0x0c, /* U+00000c: */ - 0x0d, /* U+00000d: */ - 0x0e, /* U+00000e: */ - 0x0f, /* U+00000f: */ - 0x10, /* U+000010: */ - 0x11, /* U+000011: */ - 0x12, /* U+000012: */ - 0x13, /* U+000013: */ - 0x14, /* U+000014: */ - 0x15, /* U+000015: */ - 0x16, /* U+000016: */ - 0x17, /* U+000017: */ - 0x18, /* U+000018: */ - 0x19, /* U+000019: */ - 0x1a, /* U+00001a: */ - 0x1b, /* U+00001b: */ - 0x1c, /* U+00001c: */ - 0x1d, /* U+00001d: */ - 0x1e, /* U+00001e: */ - 0x1f, /* U+00001f: */ - 0x20, /* U+000020: SPACE*/ - 0x21, /* U+000021: EXCLAMATION MARK*/ - 0x22, /* U+000022: QUOTATION MARK*/ - 0x23, /* U+000023: NUMBER SIGN*/ - 0x24, /* U+000024: DOLLAR SIGN*/ - 0x25, /* U+000025: PERCENT SIGN*/ - 0x26, /* U+000026: AMPERSAND*/ - 0x27, /* U+000027: APOSTROPHE*/ - 0x28, /* U+000028: LEFT PARENTHESIS*/ - 0x29, /* U+000029: RIGHT PARENTHESIS*/ - 0x2a, /* U+00002a: ASTERISK*/ - 0x2b, /* U+00002b: PLUS SIGN*/ - 0x2c, /* U+00002c: COMMA*/ - 0x2d, /* U+00002d: HYPHEN-MINUS*/ - 0x2e, /* U+00002e: FULL STOP*/ - 0x2f, /* U+00002f: SOLIDUS*/ - 0x30, /* U+000030: DIGIT ZERO*/ - 0x31, /* U+000031: DIGIT ONE*/ - 0x32, /* U+000032: DIGIT TWO*/ - 0x33, /* U+000033: DIGIT THREE*/ - 0x34, /* U+000034: DIGIT FOUR*/ - 0x35, /* U+000035: DIGIT FIVE*/ - 0x36, /* U+000036: DIGIT SIX*/ - 0x37, /* U+000037: DIGIT SEVEN*/ - 0x38, /* U+000038: DIGIT EIGHT*/ - 0x39, /* U+000039: DIGIT NINE*/ - 0x3a, /* U+00003a: COLON*/ - 0x3b, /* U+00003b: SEMICOLON*/ - 0x3c, /* U+00003c: LESS-THAN SIGN*/ - 0x3d, /* U+00003d: EQUALS SIGN*/ - 0x3e, /* U+00003e: GREATER-THAN SIGN*/ - 0x3f, /* U+00003f: QUESTION MARK*/ - 0x40, /* U+000040: COMMERCIAL AT*/ - 0x61, /* U+000041: LATIN CAPITAL LETTER A*/ - 0x62, /* U+000042: LATIN CAPITAL LETTER B*/ - 0x63, /* U+000043: LATIN CAPITAL LETTER C*/ - 0x64, /* U+000044: LATIN CAPITAL LETTER D*/ - 0x65, /* U+000045: LATIN CAPITAL LETTER E*/ - 0x66, /* U+000046: LATIN CAPITAL LETTER F*/ - 0x67, /* U+000047: LATIN CAPITAL LETTER G*/ - 0x68, /* U+000048: LATIN CAPITAL LETTER H*/ - 0x69, /* U+000049: LATIN CAPITAL LETTER I*/ - 0x6a, /* U+00004a: LATIN CAPITAL LETTER J*/ - 0x6b, /* U+00004b: LATIN CAPITAL LETTER K*/ - 0x6c, /* U+00004c: LATIN CAPITAL LETTER L*/ - 0x6d, /* U+00004d: LATIN CAPITAL LETTER M*/ - 0x6e, /* U+00004e: LATIN CAPITAL LETTER N*/ - 0x6f, /* U+00004f: LATIN CAPITAL LETTER O*/ - 0x70, /* U+000050: LATIN CAPITAL LETTER P*/ - 0x71, /* U+000051: LATIN CAPITAL LETTER Q*/ - 0x72, /* U+000052: LATIN CAPITAL LETTER R*/ - 0x73, /* U+000053: LATIN CAPITAL LETTER S*/ - 0x74, /* U+000054: LATIN CAPITAL LETTER T*/ - 0x75, /* U+000055: LATIN CAPITAL LETTER U*/ - 0x76, /* U+000056: LATIN CAPITAL LETTER V*/ - 0x77, /* U+000057: LATIN CAPITAL LETTER W*/ - 0x78, /* U+000058: LATIN CAPITAL LETTER X*/ - 0x79, /* U+000059: LATIN CAPITAL LETTER Y*/ - 0x7a, /* U+00005a: LATIN CAPITAL LETTER Z*/ - 0x5b, /* U+00005b: LEFT SQUARE BRACKET*/ - 0x5c, /* U+00005c: REVERSE SOLIDUS*/ - 0x5d, /* U+00005d: RIGHT SQUARE BRACKET*/ - 0x5e, /* U+00005e: CIRCUMFLEX ACCENT*/ - 0x5f, /* U+00005f: LOW LINE*/ - 0x60, /* U+000060: GRAVE ACCENT*/ - 0x61, /* U+000061: LATIN SMALL LETTER A*/ - 0x62, /* U+000062: LATIN SMALL LETTER B*/ - 0x63, /* U+000063: LATIN SMALL LETTER C*/ - 0x64, /* U+000064: LATIN SMALL LETTER D*/ - 0x65, /* U+000065: LATIN SMALL LETTER E*/ - 0x66, /* U+000066: LATIN SMALL LETTER F*/ - 0x67, /* U+000067: LATIN SMALL LETTER G*/ - 0x68, /* U+000068: LATIN SMALL LETTER H*/ - 0x69, /* U+000069: LATIN SMALL LETTER I*/ - 0x6a, /* U+00006a: LATIN SMALL LETTER J*/ - 0x6b, /* U+00006b: LATIN SMALL LETTER K*/ - 0x6c, /* U+00006c: LATIN SMALL LETTER L*/ - 0x6d, /* U+00006d: LATIN SMALL LETTER M*/ - 0x6e, /* U+00006e: LATIN SMALL LETTER N*/ - 0x6f, /* U+00006f: LATIN SMALL LETTER O*/ - 0x70, /* U+000070: LATIN SMALL LETTER P*/ - 0x71, /* U+000071: LATIN SMALL LETTER Q*/ - 0x72, /* U+000072: LATIN SMALL LETTER R*/ - 0x73, /* U+000073: LATIN SMALL LETTER S*/ - 0x74, /* U+000074: LATIN SMALL LETTER T*/ - 0x75, /* U+000075: LATIN SMALL LETTER U*/ - 0x76, /* U+000076: LATIN SMALL LETTER V*/ - 0x77, /* U+000077: LATIN SMALL LETTER W*/ - 0x78, /* U+000078: LATIN SMALL LETTER X*/ - 0x79, /* U+000079: LATIN SMALL LETTER Y*/ - 0x7a, /* U+00007a: LATIN SMALL LETTER Z*/ - 0x7b, /* U+00007b: LEFT CURLY BRACKET*/ - 0x7c, /* U+00007c: VERTICAL LINE*/ - 0x7d, /* U+00007d: RIGHT CURLY BRACKET*/ - 0x7e, /* U+00007e: TILDE*/ - 0x7f, /* U+00007f: */ - 0x80, /* U+000080: */ - 0x81, /* U+000081: */ - 0x82, /* U+000082: */ - 0x83, /* U+000083: */ - 0x84, /* U+000084: */ - 0x85, /* U+000085: */ - 0x86, /* U+000086: */ - 0x87, /* U+000087: */ - 0x88, /* U+000088: */ - 0x89, /* U+000089: */ - 0x8a, /* U+00008a: */ - 0x8b, /* U+00008b: */ - 0x8c, /* U+00008c: */ - 0x8d, /* U+00008d: */ - 0x8e, /* U+00008e: */ - 0x8f, /* U+00008f: */ - 0x90, /* U+000090: */ - 0x91, /* U+000091: */ - 0x92, /* U+000092: */ - 0x93, /* U+000093: */ - 0x94, /* U+000094: */ - 0x95, /* U+000095: */ - 0x96, /* U+000096: */ - 0x97, /* U+000097: */ - 0x98, /* U+000098: */ - 0x99, /* U+000099: */ - 0x9a, /* U+00009a: */ - 0x9b, /* U+00009b: */ - 0x9c, /* U+00009c: */ - 0x9d, /* U+00009d: */ - 0x9e, /* U+00009e: */ - 0x9f, /* U+00009f: */ - 0xa0, /* U+0000a0: NO-BREAK SPACE*/ - 0xa1, /* U+0000a1: INVERTED EXCLAMATION MARK*/ - 0xa2, /* U+0000a2: CENT SIGN*/ - 0xa3, /* U+0000a3: POUND SIGN*/ - 0xa4, /* U+0000a4: CURRENCY SIGN*/ - 0xa5, /* U+0000a5: YEN SIGN*/ - 0xa6, /* U+0000a6: BROKEN BAR*/ - 0xa7, /* U+0000a7: SECTION SIGN*/ - 0xa8, /* U+0000a8: DIAERESIS*/ - 0xa9, /* U+0000a9: COPYRIGHT SIGN*/ - 0xaa, /* U+0000aa: FEMININE ORDINAL INDICATOR*/ - 0xab, /* U+0000ab: LEFT-POINTING DOUBLE ANGLE QUOTATION MARK*/ - 0xac, /* U+0000ac: NOT SIGN*/ - 0xad, /* U+0000ad: SOFT HYPHEN*/ - 0xae, /* U+0000ae: REGISTERED SIGN*/ - 0xaf, /* U+0000af: MACRON*/ - 0xb0, /* U+0000b0: DEGREE SIGN*/ - 0xb1, /* U+0000b1: PLUS-MINUS SIGN*/ - 0xb2, /* U+0000b2: SUPERSCRIPT TWO*/ - 0xb3, /* U+0000b3: SUPERSCRIPT THREE*/ - 0xb4, /* U+0000b4: ACUTE ACCENT*/ - 0xb5, /* U+0000b5: MICRO SIGN*/ - 0xb6, /* U+0000b6: PILCROW SIGN*/ - 0xb7, /* U+0000b7: MIDDLE DOT*/ - 0xb8, /* U+0000b8: CEDILLA*/ - 0xb9, /* U+0000b9: SUPERSCRIPT ONE*/ - 0xba, /* U+0000ba: MASCULINE ORDINAL INDICATOR*/ - 0xbb, /* U+0000bb: RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK*/ - 0xbc, /* U+0000bc: VULGAR FRACTION ONE QUARTER*/ - 0xbd, /* U+0000bd: VULGAR FRACTION ONE HALF*/ - 0xbe, /* U+0000be: VULGAR FRACTION THREE QUARTERS*/ - 0xbf, /* U+0000bf: INVERTED QUESTION MARK*/ - 0xe0, /* U+0000c0: LATIN CAPITAL LETTER A WITH GRAVE*/ - 0xe1, /* U+0000c1: LATIN CAPITAL LETTER A WITH ACUTE*/ - 0xe2, /* U+0000c2: LATIN CAPITAL LETTER A WITH CIRCUMFLEX*/ - 0xe3, /* U+0000c3: LATIN CAPITAL LETTER A WITH TILDE*/ - 0xe4, /* U+0000c4: LATIN CAPITAL LETTER A WITH DIAERESIS*/ - 0xe5, /* U+0000c5: LATIN CAPITAL LETTER A WITH RING ABOVE*/ - 0xe6, /* U+0000c6: LATIN CAPITAL LETTER AE*/ - 0xe7, /* U+0000c7: LATIN CAPITAL LETTER C WITH CEDILLA*/ - 0xe8, /* U+0000c8: LATIN CAPITAL LETTER E WITH GRAVE*/ - 0xe9, /* U+0000c9: LATIN CAPITAL LETTER E WITH ACUTE*/ - 0xea, /* U+0000ca: LATIN CAPITAL LETTER E WITH CIRCUMFLEX*/ - 0xeb, /* U+0000cb: LATIN CAPITAL LETTER E WITH DIAERESIS*/ - 0xec, /* U+0000cc: LATIN CAPITAL LETTER I WITH GRAVE*/ - 0xed, /* U+0000cd: LATIN CAPITAL LETTER I WITH ACUTE*/ - 0xee, /* U+0000ce: LATIN CAPITAL LETTER I WITH CIRCUMFLEX*/ - 0xef, /* U+0000cf: LATIN CAPITAL LETTER I WITH DIAERESIS*/ - 0xf0, /* U+0000d0: LATIN CAPITAL LETTER ETH*/ - 0xf1, /* U+0000d1: LATIN CAPITAL LETTER N WITH TILDE*/ - 0xf2, /* U+0000d2: LATIN CAPITAL LETTER O WITH GRAVE*/ - 0xf3, /* U+0000d3: LATIN CAPITAL LETTER O WITH ACUTE*/ - 0xf4, /* U+0000d4: LATIN CAPITAL LETTER O WITH CIRCUMFLEX*/ - 0xf5, /* U+0000d5: LATIN CAPITAL LETTER O WITH TILDE*/ - 0xf6, /* U+0000d6: LATIN CAPITAL LETTER O WITH DIAERESIS*/ - 0xd7, /* U+0000d7: MULTIPLICATION SIGN*/ - 0xf8, /* U+0000d8: LATIN CAPITAL LETTER O WITH STROKE*/ - 0xf9, /* U+0000d9: LATIN CAPITAL LETTER U WITH GRAVE*/ - 0xfa, /* U+0000da: LATIN CAPITAL LETTER U WITH ACUTE*/ - 0xfb, /* U+0000db: LATIN CAPITAL LETTER U WITH CIRCUMFLEX*/ - 0xfc, /* U+0000dc: LATIN CAPITAL LETTER U WITH DIAERESIS*/ - 0xfd, /* U+0000dd: LATIN CAPITAL LETTER Y WITH ACUTE*/ - 0xfe, /* U+0000de: LATIN CAPITAL LETTER THORN*/ - 0xdf, /* U+0000df: LATIN SMALL LETTER SHARP S*/ - 0xe0, /* U+0000e0: LATIN SMALL LETTER A WITH GRAVE*/ - 0xe1, /* U+0000e1: LATIN SMALL LETTER A WITH ACUTE*/ - 0xe2, /* U+0000e2: LATIN SMALL LETTER A WITH CIRCUMFLEX*/ - 0xe3, /* U+0000e3: LATIN SMALL LETTER A WITH TILDE*/ - 0xe4, /* U+0000e4: LATIN SMALL LETTER A WITH DIAERESIS*/ - 0xe5, /* U+0000e5: LATIN SMALL LETTER A WITH RING ABOVE*/ - 0xe6, /* U+0000e6: LATIN SMALL LETTER AE*/ - 0xe7, /* U+0000e7: LATIN SMALL LETTER C WITH CEDILLA*/ - 0xe8, /* U+0000e8: LATIN SMALL LETTER E WITH GRAVE*/ - 0xe9, /* U+0000e9: LATIN SMALL LETTER E WITH ACUTE*/ - 0xea, /* U+0000ea: LATIN SMALL LETTER E WITH CIRCUMFLEX*/ - 0xeb, /* U+0000eb: LATIN SMALL LETTER E WITH DIAERESIS*/ - 0xec, /* U+0000ec: LATIN SMALL LETTER I WITH GRAVE*/ - 0xed, /* U+0000ed: LATIN SMALL LETTER I WITH ACUTE*/ - 0xee, /* U+0000ee: LATIN SMALL LETTER I WITH CIRCUMFLEX*/ - 0xef, /* U+0000ef: LATIN SMALL LETTER I WITH DIAERESIS*/ - 0xf0, /* U+0000f0: LATIN SMALL LETTER ETH*/ - 0xf1, /* U+0000f1: LATIN SMALL LETTER N WITH TILDE*/ - 0xf2, /* U+0000f2: LATIN SMALL LETTER O WITH GRAVE*/ - 0xf3, /* U+0000f3: LATIN SMALL LETTER O WITH ACUTE*/ - 0xf4, /* U+0000f4: LATIN SMALL LETTER O WITH CIRCUMFLEX*/ - 0xf5, /* U+0000f5: LATIN SMALL LETTER O WITH TILDE*/ - 0xf6, /* U+0000f6: LATIN SMALL LETTER O WITH DIAERESIS*/ - 0xf7, /* U+0000f7: DIVISION SIGN*/ - 0xf8, /* U+0000f8: LATIN SMALL LETTER O WITH STROKE*/ - 0xf9, /* U+0000f9: LATIN SMALL LETTER U WITH GRAVE*/ - 0xfa, /* U+0000fa: LATIN SMALL LETTER U WITH ACUTE*/ - 0xfb, /* U+0000fb: LATIN SMALL LETTER U WITH CIRCUMFLEX*/ - 0xfc, /* U+0000fc: LATIN SMALL LETTER U WITH DIAERESIS*/ - 0xfd, /* U+0000fd: LATIN SMALL LETTER Y WITH ACUTE*/ - 0xfe, /* U+0000fe: LATIN SMALL LETTER THORN*/ - 0xff, /* U+0000ff: LATIN SMALL LETTER Y WITH DIAERESIS*/ - 0x101, /* U+000100: LATIN CAPITAL LETTER A WITH MACRON*/ - 0x101, /* U+000101: LATIN SMALL LETTER A WITH MACRON*/ - 0x103, /* U+000102: LATIN CAPITAL LETTER A WITH BREVE*/ - 0x103, /* U+000103: LATIN SMALL LETTER A WITH BREVE*/ - 0x105, /* U+000104: LATIN CAPITAL LETTER A WITH OGONEK*/ - 0x105, /* U+000105: LATIN SMALL LETTER A WITH OGONEK*/ - 0x107, /* U+000106: LATIN CAPITAL LETTER C WITH ACUTE*/ - 0x107, /* U+000107: LATIN SMALL LETTER C WITH ACUTE*/ - 0x109, /* U+000108: LATIN CAPITAL LETTER C WITH CIRCUMFLEX*/ - 0x109, /* U+000109: LATIN SMALL LETTER C WITH CIRCUMFLEX*/ - 0x10b, /* U+00010a: LATIN CAPITAL LETTER C WITH DOT ABOVE*/ - 0x10b, /* U+00010b: LATIN SMALL LETTER C WITH DOT ABOVE*/ - 0x10d, /* U+00010c: LATIN CAPITAL LETTER C WITH CARON*/ - 0x10d, /* U+00010d: LATIN SMALL LETTER C WITH CARON*/ - 0x10f, /* U+00010e: LATIN CAPITAL LETTER D WITH CARON*/ - 0x10f, /* U+00010f: LATIN SMALL LETTER D WITH CARON*/ - 0x111, /* U+000110: LATIN CAPITAL LETTER D WITH STROKE*/ - 0x111, /* U+000111: LATIN SMALL LETTER D WITH STROKE*/ - 0x113, /* U+000112: LATIN CAPITAL LETTER E WITH MACRON*/ - 0x113, /* U+000113: LATIN SMALL LETTER E WITH MACRON*/ - 0x115, /* U+000114: LATIN CAPITAL LETTER E WITH BREVE*/ - 0x115, /* U+000115: LATIN SMALL LETTER E WITH BREVE*/ - 0x117, /* U+000116: LATIN CAPITAL LETTER E WITH DOT ABOVE*/ - 0x117, /* U+000117: LATIN SMALL LETTER E WITH DOT ABOVE*/ - 0x119, /* U+000118: LATIN CAPITAL LETTER E WITH OGONEK*/ - 0x119, /* U+000119: LATIN SMALL LETTER E WITH OGONEK*/ - 0x11b, /* U+00011a: LATIN CAPITAL LETTER E WITH CARON*/ - 0x11b, /* U+00011b: LATIN SMALL LETTER E WITH CARON*/ - 0x11d, /* U+00011c: LATIN CAPITAL LETTER G WITH CIRCUMFLEX*/ - 0x11d, /* U+00011d: LATIN SMALL LETTER G WITH CIRCUMFLEX*/ - 0x11f, /* U+00011e: LATIN CAPITAL LETTER G WITH BREVE*/ - 0x11f, /* U+00011f: LATIN SMALL LETTER G WITH BREVE*/ - 0x121, /* U+000120: LATIN CAPITAL LETTER G WITH DOT ABOVE*/ - 0x121, /* U+000121: LATIN SMALL LETTER G WITH DOT ABOVE*/ - 0x123, /* U+000122: LATIN CAPITAL LETTER G WITH CEDILLA*/ - 0x123, /* U+000123: LATIN SMALL LETTER G WITH CEDILLA*/ - 0x125, /* U+000124: LATIN CAPITAL LETTER H WITH CIRCUMFLEX*/ - 0x125, /* U+000125: LATIN SMALL LETTER H WITH CIRCUMFLEX*/ - 0x127, /* U+000126: LATIN CAPITAL LETTER H WITH STROKE*/ - 0x127, /* U+000127: LATIN SMALL LETTER H WITH STROKE*/ - 0x129, /* U+000128: LATIN CAPITAL LETTER I WITH TILDE*/ - 0x129, /* U+000129: LATIN SMALL LETTER I WITH TILDE*/ - 0x12b, /* U+00012a: LATIN CAPITAL LETTER I WITH MACRON*/ - 0x12b, /* U+00012b: LATIN SMALL LETTER I WITH MACRON*/ - 0x12d, /* U+00012c: LATIN CAPITAL LETTER I WITH BREVE*/ - 0x12d, /* U+00012d: LATIN SMALL LETTER I WITH BREVE*/ - 0x12f, /* U+00012e: LATIN CAPITAL LETTER I WITH OGONEK*/ - 0x12f, /* U+00012f: LATIN SMALL LETTER I WITH OGONEK*/ - 0x69, /* U+000130: LATIN CAPITAL LETTER I WITH DOT ABOVE*/ - 0x131, /* U+000131: LATIN SMALL LETTER DOTLESS I*/ - 0x133, /* U+000132: LATIN CAPITAL LIGATURE IJ*/ - 0x133, /* U+000133: LATIN SMALL LIGATURE IJ*/ - 0x135, /* U+000134: LATIN CAPITAL LETTER J WITH CIRCUMFLEX*/ - 0x135, /* U+000135: LATIN SMALL LETTER J WITH CIRCUMFLEX*/ - 0x137, /* U+000136: LATIN CAPITAL LETTER K WITH CEDILLA*/ - 0x137, /* U+000137: LATIN SMALL LETTER K WITH CEDILLA*/ - 0x138, /* U+000138: LATIN SMALL LETTER KRA*/ - 0x13a, /* U+000139: LATIN CAPITAL LETTER L WITH ACUTE*/ - 0x13a, /* U+00013a: LATIN SMALL LETTER L WITH ACUTE*/ - 0x13c, /* U+00013b: LATIN CAPITAL LETTER L WITH CEDILLA*/ - 0x13c, /* U+00013c: LATIN SMALL LETTER L WITH CEDILLA*/ - 0x13e, /* U+00013d: LATIN CAPITAL LETTER L WITH CARON*/ - 0x13e, /* U+00013e: LATIN SMALL LETTER L WITH CARON*/ - 0x140, /* U+00013f: LATIN CAPITAL LETTER L WITH MIDDLE DOT*/ - 0x140, /* U+000140: LATIN SMALL LETTER L WITH MIDDLE DOT*/ - 0x142, /* U+000141: LATIN CAPITAL LETTER L WITH STROKE*/ - 0x142, /* U+000142: LATIN SMALL LETTER L WITH STROKE*/ - 0x144, /* U+000143: LATIN CAPITAL LETTER N WITH ACUTE*/ - 0x144, /* U+000144: LATIN SMALL LETTER N WITH ACUTE*/ - 0x146, /* U+000145: LATIN CAPITAL LETTER N WITH CEDILLA*/ - 0x146, /* U+000146: LATIN SMALL LETTER N WITH CEDILLA*/ - 0x148, /* U+000147: LATIN CAPITAL LETTER N WITH CARON*/ - 0x148, /* U+000148: LATIN SMALL LETTER N WITH CARON*/ - 0x149, /* U+000149: LATIN SMALL LETTER N PRECEDED BY APOSTROPHE*/ - 0x14b, /* U+00014a: LATIN CAPITAL LETTER ENG*/ - 0x14b, /* U+00014b: LATIN SMALL LETTER ENG*/ - 0x14d, /* U+00014c: LATIN CAPITAL LETTER O WITH MACRON*/ - 0x14d, /* U+00014d: LATIN SMALL LETTER O WITH MACRON*/ - 0x14f, /* U+00014e: LATIN CAPITAL LETTER O WITH BREVE*/ - 0x14f, /* U+00014f: LATIN SMALL LETTER O WITH BREVE*/ - 0x151, /* U+000150: LATIN CAPITAL LETTER O WITH DOUBLE ACUTE*/ - 0x151, /* U+000151: LATIN SMALL LETTER O WITH DOUBLE ACUTE*/ - 0x153, /* U+000152: LATIN CAPITAL LIGATURE OE*/ - 0x153, /* U+000153: LATIN SMALL LIGATURE OE*/ - 0x155, /* U+000154: LATIN CAPITAL LETTER R WITH ACUTE*/ - 0x155, /* U+000155: LATIN SMALL LETTER R WITH ACUTE*/ - 0x157, /* U+000156: LATIN CAPITAL LETTER R WITH CEDILLA*/ - 0x157, /* U+000157: LATIN SMALL LETTER R WITH CEDILLA*/ - 0x159, /* U+000158: LATIN CAPITAL LETTER R WITH CARON*/ - 0x159, /* U+000159: LATIN SMALL LETTER R WITH CARON*/ - 0x15b, /* U+00015a: LATIN CAPITAL LETTER S WITH ACUTE*/ - 0x15b, /* U+00015b: LATIN SMALL LETTER S WITH ACUTE*/ - 0x15d, /* U+00015c: LATIN CAPITAL LETTER S WITH CIRCUMFLEX*/ - 0x15d, /* U+00015d: LATIN SMALL LETTER S WITH CIRCUMFLEX*/ - 0x15f, /* U+00015e: LATIN CAPITAL LETTER S WITH CEDILLA*/ - 0x15f, /* U+00015f: LATIN SMALL LETTER S WITH CEDILLA*/ - 0x161, /* U+000160: LATIN CAPITAL LETTER S WITH CARON*/ - 0x161, /* U+000161: LATIN SMALL LETTER S WITH CARON*/ - 0x163, /* U+000162: LATIN CAPITAL LETTER T WITH CEDILLA*/ - 0x163, /* U+000163: LATIN SMALL LETTER T WITH CEDILLA*/ - 0x165, /* U+000164: LATIN CAPITAL LETTER T WITH CARON*/ - 0x165, /* U+000165: LATIN SMALL LETTER T WITH CARON*/ - 0x167, /* U+000166: LATIN CAPITAL LETTER T WITH STROKE*/ - 0x167, /* U+000167: LATIN SMALL LETTER T WITH STROKE*/ - 0x169, /* U+000168: LATIN CAPITAL LETTER U WITH TILDE*/ - 0x169, /* U+000169: LATIN SMALL LETTER U WITH TILDE*/ - 0x16b, /* U+00016a: LATIN CAPITAL LETTER U WITH MACRON*/ - 0x16b, /* U+00016b: LATIN SMALL LETTER U WITH MACRON*/ - 0x16d, /* U+00016c: LATIN CAPITAL LETTER U WITH BREVE*/ - 0x16d, /* U+00016d: LATIN SMALL LETTER U WITH BREVE*/ - 0x16f, /* U+00016e: LATIN CAPITAL LETTER U WITH RING ABOVE*/ - 0x16f, /* U+00016f: LATIN SMALL LETTER U WITH RING ABOVE*/ - 0x171, /* U+000170: LATIN CAPITAL LETTER U WITH DOUBLE ACUTE*/ - 0x171, /* U+000171: LATIN SMALL LETTER U WITH DOUBLE ACUTE*/ - 0x173, /* U+000172: LATIN CAPITAL LETTER U WITH OGONEK*/ - 0x173, /* U+000173: LATIN SMALL LETTER U WITH OGONEK*/ - 0x175, /* U+000174: LATIN CAPITAL LETTER W WITH CIRCUMFLEX*/ - 0x175, /* U+000175: LATIN SMALL LETTER W WITH CIRCUMFLEX*/ - 0x177, /* U+000176: LATIN CAPITAL LETTER Y WITH CIRCUMFLEX*/ - 0x177, /* U+000177: LATIN SMALL LETTER Y WITH CIRCUMFLEX*/ - 0xff, /* U+000178: LATIN CAPITAL LETTER Y WITH DIAERESIS*/ - 0x17a, /* U+000179: LATIN CAPITAL LETTER Z WITH ACUTE*/ - 0x17a, /* U+00017a: LATIN SMALL LETTER Z WITH ACUTE*/ - 0x17c, /* U+00017b: LATIN CAPITAL LETTER Z WITH DOT ABOVE*/ - 0x17c, /* U+00017c: LATIN SMALL LETTER Z WITH DOT ABOVE*/ - 0x17e, /* U+00017d: LATIN CAPITAL LETTER Z WITH CARON*/ - 0x17e, /* U+00017e: LATIN SMALL LETTER Z WITH CARON*/ - 0x17f, /* U+00017f: LATIN SMALL LETTER LONG S*/ - 0x180, /* U+000180: LATIN SMALL LETTER B WITH STROKE*/ - 0x253, /* U+000181: LATIN CAPITAL LETTER B WITH HOOK*/ - 0x183, /* U+000182: LATIN CAPITAL LETTER B WITH TOPBAR*/ - 0x183, /* U+000183: LATIN SMALL LETTER B WITH TOPBAR*/ - 0x185, /* U+000184: LATIN CAPITAL LETTER TONE SIX*/ - 0x185, /* U+000185: LATIN SMALL LETTER TONE SIX*/ - 0x254, /* U+000186: LATIN CAPITAL LETTER OPEN O*/ - 0x188, /* U+000187: LATIN CAPITAL LETTER C WITH HOOK*/ - 0x188, /* U+000188: LATIN SMALL LETTER C WITH HOOK*/ - 0x256, /* U+000189: LATIN CAPITAL LETTER AFRICAN D*/ - 0x257, /* U+00018a: LATIN CAPITAL LETTER D WITH HOOK*/ - 0x18c, /* U+00018b: LATIN CAPITAL LETTER D WITH TOPBAR*/ - 0x18c, /* U+00018c: LATIN SMALL LETTER D WITH TOPBAR*/ - 0x18d, /* U+00018d: LATIN SMALL LETTER TURNED DELTA*/ - 0x1dd, /* U+00018e: LATIN CAPITAL LETTER REVERSED E*/ - 0x259, /* U+00018f: LATIN CAPITAL LETTER SCHWA*/ - 0x25b, /* U+000190: LATIN CAPITAL LETTER OPEN E*/ - 0x192, /* U+000191: LATIN CAPITAL LETTER F WITH HOOK*/ - 0x192, /* U+000192: LATIN SMALL LETTER F WITH HOOK*/ - 0x260, /* U+000193: LATIN CAPITAL LETTER G WITH HOOK*/ - 0x263, /* U+000194: LATIN CAPITAL LETTER GAMMA*/ - 0x195, /* U+000195: LATIN SMALL LETTER HV*/ - 0x269, /* U+000196: LATIN CAPITAL LETTER IOTA*/ - 0x268, /* U+000197: LATIN CAPITAL LETTER I WITH STROKE*/ - 0x199, /* U+000198: LATIN CAPITAL LETTER K WITH HOOK*/ - 0x199, /* U+000199: LATIN SMALL LETTER K WITH HOOK*/ - 0x19a, /* U+00019a: LATIN SMALL LETTER L WITH BAR*/ - 0x19b, /* U+00019b: LATIN SMALL LETTER LAMBDA WITH STROKE*/ - 0x26f, /* U+00019c: LATIN CAPITAL LETTER TURNED M*/ - 0x272, /* U+00019d: LATIN CAPITAL LETTER N WITH LEFT HOOK*/ - 0x19e, /* U+00019e: LATIN SMALL LETTER N WITH LONG RIGHT LEG*/ - 0x275, /* U+00019f: LATIN CAPITAL LETTER O WITH MIDDLE TILDE*/ - 0x1a1, /* U+0001a0: LATIN CAPITAL LETTER O WITH HORN*/ - 0x1a1, /* U+0001a1: LATIN SMALL LETTER O WITH HORN*/ - 0x1a3, /* U+0001a2: LATIN CAPITAL LETTER OI*/ - 0x1a3, /* U+0001a3: LATIN SMALL LETTER OI*/ - 0x1a5, /* U+0001a4: LATIN CAPITAL LETTER P WITH HOOK*/ - 0x1a5, /* U+0001a5: LATIN SMALL LETTER P WITH HOOK*/ - 0x280, /* U+0001a6: LATIN LETTER YR*/ - 0x1a8, /* U+0001a7: LATIN CAPITAL LETTER TONE TWO*/ - 0x1a8, /* U+0001a8: LATIN SMALL LETTER TONE TWO*/ - 0x283, /* U+0001a9: LATIN CAPITAL LETTER ESH*/ - 0x1aa, /* U+0001aa: LATIN LETTER REVERSED ESH LOOP*/ - 0x1ab, /* U+0001ab: LATIN SMALL LETTER T WITH PALATAL HOOK*/ - 0x1ad, /* U+0001ac: LATIN CAPITAL LETTER T WITH HOOK*/ - 0x1ad, /* U+0001ad: LATIN SMALL LETTER T WITH HOOK*/ - 0x288, /* U+0001ae: LATIN CAPITAL LETTER T WITH RETROFLEX HOOK*/ - 0x1b0, /* U+0001af: LATIN CAPITAL LETTER U WITH HORN*/ - 0x1b0, /* U+0001b0: LATIN SMALL LETTER U WITH HORN*/ - 0x28a, /* U+0001b1: LATIN CAPITAL LETTER UPSILON*/ - 0x28b, /* U+0001b2: LATIN CAPITAL LETTER V WITH HOOK*/ - 0x1b4, /* U+0001b3: LATIN CAPITAL LETTER Y WITH HOOK*/ - 0x1b4, /* U+0001b4: LATIN SMALL LETTER Y WITH HOOK*/ - 0x1b6, /* U+0001b5: LATIN CAPITAL LETTER Z WITH STROKE*/ - 0x1b6, /* U+0001b6: LATIN SMALL LETTER Z WITH STROKE*/ - 0x292, /* U+0001b7: LATIN CAPITAL LETTER EZH*/ - 0x1b9, /* U+0001b8: LATIN CAPITAL LETTER EZH REVERSED*/ - 0x1b9, /* U+0001b9: LATIN SMALL LETTER EZH REVERSED*/ - 0x1ba, /* U+0001ba: LATIN SMALL LETTER EZH WITH TAIL*/ - 0x1bb, /* U+0001bb: LATIN LETTER TWO WITH STROKE*/ - 0x1bd, /* U+0001bc: LATIN CAPITAL LETTER TONE FIVE*/ - 0x1bd, /* U+0001bd: LATIN SMALL LETTER TONE FIVE*/ - 0x1be, /* U+0001be: LATIN LETTER INVERTED GLOTTAL STOP WITH STROKE*/ - 0x1bf, /* U+0001bf: LATIN LETTER WYNN*/ - 0x1c0, /* U+0001c0: LATIN LETTER DENTAL CLICK*/ - 0x1c1, /* U+0001c1: LATIN LETTER LATERAL CLICK*/ - 0x1c2, /* U+0001c2: LATIN LETTER ALVEOLAR CLICK*/ - 0x1c3, /* U+0001c3: LATIN LETTER RETROFLEX CLICK*/ - 0x1c6, /* U+0001c4: LATIN CAPITAL LETTER DZ WITH CARON*/ - 0x1c6, /* U+0001c5: LATIN CAPITAL LETTER D WITH SMALL LETTER Z WITH CARON*/ - 0x1c6, /* U+0001c6: LATIN SMALL LETTER DZ WITH CARON*/ - 0x1c9, /* U+0001c7: LATIN CAPITAL LETTER LJ*/ - 0x1c9, /* U+0001c8: LATIN CAPITAL LETTER L WITH SMALL LETTER J*/ - 0x1c9, /* U+0001c9: LATIN SMALL LETTER LJ*/ - 0x1cc, /* U+0001ca: LATIN CAPITAL LETTER NJ*/ - 0x1cc, /* U+0001cb: LATIN CAPITAL LETTER N WITH SMALL LETTER J*/ - 0x1cc, /* U+0001cc: LATIN SMALL LETTER NJ*/ - 0x1ce, /* U+0001cd: LATIN CAPITAL LETTER A WITH CARON*/ - 0x1ce, /* U+0001ce: LATIN SMALL LETTER A WITH CARON*/ - 0x1d0, /* U+0001cf: LATIN CAPITAL LETTER I WITH CARON*/ - 0x1d0, /* U+0001d0: LATIN SMALL LETTER I WITH CARON*/ - 0x1d2, /* U+0001d1: LATIN CAPITAL LETTER O WITH CARON*/ - 0x1d2, /* U+0001d2: LATIN SMALL LETTER O WITH CARON*/ - 0x1d4, /* U+0001d3: LATIN CAPITAL LETTER U WITH CARON*/ - 0x1d4, /* U+0001d4: LATIN SMALL LETTER U WITH CARON*/ - 0x1d6, /* U+0001d5: LATIN CAPITAL LETTER U WITH DIAERESIS AND MACRON*/ - 0x1d6, /* U+0001d6: LATIN SMALL LETTER U WITH DIAERESIS AND MACRON*/ - 0x1d8, /* U+0001d7: LATIN CAPITAL LETTER U WITH DIAERESIS AND ACUTE*/ - 0x1d8, /* U+0001d8: LATIN SMALL LETTER U WITH DIAERESIS AND ACUTE*/ - 0x1da, /* U+0001d9: LATIN CAPITAL LETTER U WITH DIAERESIS AND CARON*/ - 0x1da, /* U+0001da: LATIN SMALL LETTER U WITH DIAERESIS AND CARON*/ - 0x1dc, /* U+0001db: LATIN CAPITAL LETTER U WITH DIAERESIS AND GRAVE*/ - 0x1dc, /* U+0001dc: LATIN SMALL LETTER U WITH DIAERESIS AND GRAVE*/ - 0x1dd, /* U+0001dd: LATIN SMALL LETTER TURNED E*/ - 0x1df, /* U+0001de: LATIN CAPITAL LETTER A WITH DIAERESIS AND MACRON*/ - 0x1df, /* U+0001df: LATIN SMALL LETTER A WITH DIAERESIS AND MACRON*/ - 0x1e1, /* U+0001e0: LATIN CAPITAL LETTER A WITH DOT ABOVE AND MACRON*/ - 0x1e1, /* U+0001e1: LATIN SMALL LETTER A WITH DOT ABOVE AND MACRON*/ - 0x1e3, /* U+0001e2: LATIN CAPITAL LETTER AE WITH MACRON*/ - 0x1e3, /* U+0001e3: LATIN SMALL LETTER AE WITH MACRON*/ - 0x1e5, /* U+0001e4: LATIN CAPITAL LETTER G WITH STROKE*/ - 0x1e5, /* U+0001e5: LATIN SMALL LETTER G WITH STROKE*/ - 0x1e7, /* U+0001e6: LATIN CAPITAL LETTER G WITH CARON*/ - 0x1e7, /* U+0001e7: LATIN SMALL LETTER G WITH CARON*/ - 0x1e9, /* U+0001e8: LATIN CAPITAL LETTER K WITH CARON*/ - 0x1e9, /* U+0001e9: LATIN SMALL LETTER K WITH CARON*/ - 0x1eb, /* U+0001ea: LATIN CAPITAL LETTER O WITH OGONEK*/ - 0x1eb, /* U+0001eb: LATIN SMALL LETTER O WITH OGONEK*/ - 0x1ed, /* U+0001ec: LATIN CAPITAL LETTER O WITH OGONEK AND MACRON*/ - 0x1ed, /* U+0001ed: LATIN SMALL LETTER O WITH OGONEK AND MACRON*/ - 0x1ef, /* U+0001ee: LATIN CAPITAL LETTER EZH WITH CARON*/ - 0x1ef, /* U+0001ef: LATIN SMALL LETTER EZH WITH CARON*/ - 0x1f0, /* U+0001f0: LATIN SMALL LETTER J WITH CARON*/ - 0x1f3, /* U+0001f1: LATIN CAPITAL LETTER DZ*/ - 0x1f3, /* U+0001f2: LATIN CAPITAL LETTER D WITH SMALL LETTER Z*/ - 0x1f3, /* U+0001f3: LATIN SMALL LETTER DZ*/ - 0x1f5, /* U+0001f4: LATIN CAPITAL LETTER G WITH ACUTE*/ - 0x1f5, /* U+0001f5: LATIN SMALL LETTER G WITH ACUTE*/ - 0x195, /* U+0001f6: LATIN CAPITAL LETTER HWAIR*/ - 0x1bf, /* U+0001f7: LATIN CAPITAL LETTER WYNN*/ - 0x1f9, /* U+0001f8: LATIN CAPITAL LETTER N WITH GRAVE*/ - 0x1f9, /* U+0001f9: LATIN SMALL LETTER N WITH GRAVE*/ - 0x1fb, /* U+0001fa: LATIN CAPITAL LETTER A WITH RING ABOVE AND ACUTE*/ - 0x1fb, /* U+0001fb: LATIN SMALL LETTER A WITH RING ABOVE AND ACUTE*/ - 0x1fd, /* U+0001fc: LATIN CAPITAL LETTER AE WITH ACUTE*/ - 0x1fd, /* U+0001fd: LATIN SMALL LETTER AE WITH ACUTE*/ - 0x1ff, /* U+0001fe: LATIN CAPITAL LETTER O WITH STROKE AND ACUTE*/ - 0x1ff, /* U+0001ff: LATIN SMALL LETTER O WITH STROKE AND ACUTE*/ - 0x201, /* U+000200: LATIN CAPITAL LETTER A WITH DOUBLE GRAVE*/ - 0x201, /* U+000201: LATIN SMALL LETTER A WITH DOUBLE GRAVE*/ - 0x203, /* U+000202: LATIN CAPITAL LETTER A WITH INVERTED BREVE*/ - 0x203, /* U+000203: LATIN SMALL LETTER A WITH INVERTED BREVE*/ - 0x205, /* U+000204: LATIN CAPITAL LETTER E WITH DOUBLE GRAVE*/ - 0x205, /* U+000205: LATIN SMALL LETTER E WITH DOUBLE GRAVE*/ - 0x207, /* U+000206: LATIN CAPITAL LETTER E WITH INVERTED BREVE*/ - 0x207, /* U+000207: LATIN SMALL LETTER E WITH INVERTED BREVE*/ - 0x209, /* U+000208: LATIN CAPITAL LETTER I WITH DOUBLE GRAVE*/ - 0x209, /* U+000209: LATIN SMALL LETTER I WITH DOUBLE GRAVE*/ - 0x20b, /* U+00020a: LATIN CAPITAL LETTER I WITH INVERTED BREVE*/ - 0x20b, /* U+00020b: LATIN SMALL LETTER I WITH INVERTED BREVE*/ - 0x20d, /* U+00020c: LATIN CAPITAL LETTER O WITH DOUBLE GRAVE*/ - 0x20d, /* U+00020d: LATIN SMALL LETTER O WITH DOUBLE GRAVE*/ - 0x20f, /* U+00020e: LATIN CAPITAL LETTER O WITH INVERTED BREVE*/ - 0x20f, /* U+00020f: LATIN SMALL LETTER O WITH INVERTED BREVE*/ - 0x211, /* U+000210: LATIN CAPITAL LETTER R WITH DOUBLE GRAVE*/ - 0x211, /* U+000211: LATIN SMALL LETTER R WITH DOUBLE GRAVE*/ - 0x213, /* U+000212: LATIN CAPITAL LETTER R WITH INVERTED BREVE*/ - 0x213, /* U+000213: LATIN SMALL LETTER R WITH INVERTED BREVE*/ - 0x215, /* U+000214: LATIN CAPITAL LETTER U WITH DOUBLE GRAVE*/ - 0x215, /* U+000215: LATIN SMALL LETTER U WITH DOUBLE GRAVE*/ - 0x217, /* U+000216: LATIN CAPITAL LETTER U WITH INVERTED BREVE*/ - 0x217, /* U+000217: LATIN SMALL LETTER U WITH INVERTED BREVE*/ - 0x219, /* U+000218: LATIN CAPITAL LETTER S WITH COMMA BELOW*/ - 0x219, /* U+000219: LATIN SMALL LETTER S WITH COMMA BELOW*/ - 0x21b, /* U+00021a: LATIN CAPITAL LETTER T WITH COMMA BELOW*/ - 0x21b, /* U+00021b: LATIN SMALL LETTER T WITH COMMA BELOW*/ - 0x21d, /* U+00021c: LATIN CAPITAL LETTER YOGH*/ - 0x21d, /* U+00021d: LATIN SMALL LETTER YOGH*/ - 0x21f, /* U+00021e: LATIN CAPITAL LETTER H WITH CARON*/ - 0x21f, /* U+00021f: LATIN SMALL LETTER H WITH CARON*/ - 0x19e, /* U+000220: LATIN CAPITAL LETTER N WITH LONG RIGHT LEG*/ - 0x221, /* U+000221: LATIN SMALL LETTER D WITH CURL*/ - 0x223, /* U+000222: LATIN CAPITAL LETTER OU*/ - 0x223, /* U+000223: LATIN SMALL LETTER OU*/ - 0x225, /* U+000224: LATIN CAPITAL LETTER Z WITH HOOK*/ - 0x225, /* U+000225: LATIN SMALL LETTER Z WITH HOOK*/ - 0x227, /* U+000226: LATIN CAPITAL LETTER A WITH DOT ABOVE*/ - 0x227, /* U+000227: LATIN SMALL LETTER A WITH DOT ABOVE*/ - 0x229, /* U+000228: LATIN CAPITAL LETTER E WITH CEDILLA*/ - 0x229, /* U+000229: LATIN SMALL LETTER E WITH CEDILLA*/ - 0x22b, /* U+00022a: LATIN CAPITAL LETTER O WITH DIAERESIS AND MACRON*/ - 0x22b, /* U+00022b: LATIN SMALL LETTER O WITH DIAERESIS AND MACRON*/ - 0x22d, /* U+00022c: LATIN CAPITAL LETTER O WITH TILDE AND MACRON*/ - 0x22d, /* U+00022d: LATIN SMALL LETTER O WITH TILDE AND MACRON*/ - 0x22f, /* U+00022e: LATIN CAPITAL LETTER O WITH DOT ABOVE*/ - 0x22f, /* U+00022f: LATIN SMALL LETTER O WITH DOT ABOVE*/ - 0x231, /* U+000230: LATIN CAPITAL LETTER O WITH DOT ABOVE AND MACRON*/ - 0x231, /* U+000231: LATIN SMALL LETTER O WITH DOT ABOVE AND MACRON*/ - 0x233, /* U+000232: LATIN CAPITAL LETTER Y WITH MACRON*/ - 0x233, /* U+000233: LATIN SMALL LETTER Y WITH MACRON*/ - 0x234, /* U+000234: LATIN SMALL LETTER L WITH CURL*/ - 0x235, /* U+000235: LATIN SMALL LETTER N WITH CURL*/ - 0x236, /* U+000236: LATIN SMALL LETTER T WITH CURL*/ - 0x237, /* U+000237: LATIN SMALL LETTER DOTLESS J*/ - 0x238, /* U+000238: LATIN SMALL LETTER DB DIGRAPH*/ - 0x239, /* U+000239: LATIN SMALL LETTER QP DIGRAPH*/ - 0x23a, /* U+00023a: LATIN CAPITAL LETTER A WITH STROKE*/ - 0x23c, /* U+00023b: LATIN CAPITAL LETTER C WITH STROKE*/ - 0x23c, /* U+00023c: LATIN SMALL LETTER C WITH STROKE*/ - 0x19a, /* U+00023d: LATIN CAPITAL LETTER L WITH BAR*/ - 0x23e, /* U+00023e: LATIN CAPITAL LETTER T WITH DIAGONAL STROKE*/ - 0x23f, /* U+00023f: LATIN SMALL LETTER S WITH SWASH TAIL*/ - 0x240, /* U+000240: LATIN SMALL LETTER Z WITH SWASH TAIL*/ - 0x294, /* U+000241: LATIN CAPITAL LETTER GLOTTAL STOP*/ - 0x242, /* U+000242: */ - 0x243, /* U+000243: */ - 0x244, /* U+000244: */ - 0x245, /* U+000245: */ - 0x246, /* U+000246: */ - 0x247, /* U+000247: */ - 0x248, /* U+000248: */ - 0x249, /* U+000249: */ - 0x24a, /* U+00024a: */ - 0x24b, /* U+00024b: */ - 0x24c, /* U+00024c: */ - 0x24d, /* U+00024d: */ - 0x24e, /* U+00024e: */ - 0x24f, /* U+00024f: */ - 0x250, /* U+000250: LATIN SMALL LETTER TURNED A*/ - 0x251, /* U+000251: LATIN SMALL LETTER ALPHA*/ - 0x252, /* U+000252: LATIN SMALL LETTER TURNED ALPHA*/ - 0x253, /* U+000253: LATIN SMALL LETTER B WITH HOOK*/ - 0x254, /* U+000254: LATIN SMALL LETTER OPEN O*/ - 0x255, /* U+000255: LATIN SMALL LETTER C WITH CURL*/ - 0x256, /* U+000256: LATIN SMALL LETTER D WITH TAIL*/ - 0x257, /* U+000257: LATIN SMALL LETTER D WITH HOOK*/ - 0x258, /* U+000258: LATIN SMALL LETTER REVERSED E*/ - 0x259, /* U+000259: LATIN SMALL LETTER SCHWA*/ - 0x25a, /* U+00025a: LATIN SMALL LETTER SCHWA WITH HOOK*/ - 0x25b, /* U+00025b: LATIN SMALL LETTER OPEN E*/ - 0x25c, /* U+00025c: LATIN SMALL LETTER REVERSED OPEN E*/ - 0x25d, /* U+00025d: LATIN SMALL LETTER REVERSED OPEN E WITH HOOK*/ - 0x25e, /* U+00025e: LATIN SMALL LETTER CLOSED REVERSED OPEN E*/ - 0x25f, /* U+00025f: LATIN SMALL LETTER DOTLESS J WITH STROKE*/ - 0x260, /* U+000260: LATIN SMALL LETTER G WITH HOOK*/ - 0x261, /* U+000261: LATIN SMALL LETTER SCRIPT G*/ - 0x262, /* U+000262: LATIN LETTER SMALL CAPITAL G*/ - 0x263, /* U+000263: LATIN SMALL LETTER GAMMA*/ - 0x264, /* U+000264: LATIN SMALL LETTER RAMS HORN*/ - 0x265, /* U+000265: LATIN SMALL LETTER TURNED H*/ - 0x266, /* U+000266: LATIN SMALL LETTER H WITH HOOK*/ - 0x267, /* U+000267: LATIN SMALL LETTER HENG WITH HOOK*/ - 0x268, /* U+000268: LATIN SMALL LETTER I WITH STROKE*/ - 0x269, /* U+000269: LATIN SMALL LETTER IOTA*/ - 0x26a, /* U+00026a: LATIN LETTER SMALL CAPITAL I*/ - 0x26b, /* U+00026b: LATIN SMALL LETTER L WITH MIDDLE TILDE*/ - 0x26c, /* U+00026c: LATIN SMALL LETTER L WITH BELT*/ - 0x26d, /* U+00026d: LATIN SMALL LETTER L WITH RETROFLEX HOOK*/ - 0x26e, /* U+00026e: LATIN SMALL LETTER LEZH*/ - 0x26f, /* U+00026f: LATIN SMALL LETTER TURNED M*/ - 0x270, /* U+000270: LATIN SMALL LETTER TURNED M WITH LONG LEG*/ - 0x271, /* U+000271: LATIN SMALL LETTER M WITH HOOK*/ - 0x272, /* U+000272: LATIN SMALL LETTER N WITH LEFT HOOK*/ - 0x273, /* U+000273: LATIN SMALL LETTER N WITH RETROFLEX HOOK*/ - 0x274, /* U+000274: LATIN LETTER SMALL CAPITAL N*/ - 0x275, /* U+000275: LATIN SMALL LETTER BARRED O*/ - 0x276, /* U+000276: LATIN LETTER SMALL CAPITAL OE*/ - 0x277, /* U+000277: LATIN SMALL LETTER CLOSED OMEGA*/ - 0x278, /* U+000278: LATIN SMALL LETTER PHI*/ - 0x279, /* U+000279: LATIN SMALL LETTER TURNED R*/ - 0x27a, /* U+00027a: LATIN SMALL LETTER TURNED R WITH LONG LEG*/ - 0x27b, /* U+00027b: LATIN SMALL LETTER TURNED R WITH HOOK*/ - 0x27c, /* U+00027c: LATIN SMALL LETTER R WITH LONG LEG*/ - 0x27d, /* U+00027d: LATIN SMALL LETTER R WITH TAIL*/ - 0x27e, /* U+00027e: LATIN SMALL LETTER R WITH FISHHOOK*/ - 0x27f, /* U+00027f: LATIN SMALL LETTER REVERSED R WITH FISHHOOK*/ - 0x280, /* U+000280: LATIN LETTER SMALL CAPITAL R*/ - 0x281, /* U+000281: LATIN LETTER SMALL CAPITAL INVERTED R*/ - 0x282, /* U+000282: LATIN SMALL LETTER S WITH HOOK*/ - 0x283, /* U+000283: LATIN SMALL LETTER ESH*/ - 0x284, /* U+000284: LATIN SMALL LETTER DOTLESS J WITH STROKE AND HOOK*/ - 0x285, /* U+000285: LATIN SMALL LETTER SQUAT REVERSED ESH*/ - 0x286, /* U+000286: LATIN SMALL LETTER ESH WITH CURL*/ - 0x287, /* U+000287: LATIN SMALL LETTER TURNED T*/ - 0x288, /* U+000288: LATIN SMALL LETTER T WITH RETROFLEX HOOK*/ - 0x289, /* U+000289: LATIN SMALL LETTER U BAR*/ - 0x28a, /* U+00028a: LATIN SMALL LETTER UPSILON*/ - 0x28b, /* U+00028b: LATIN SMALL LETTER V WITH HOOK*/ - 0x28c, /* U+00028c: LATIN SMALL LETTER TURNED V*/ - 0x28d, /* U+00028d: LATIN SMALL LETTER TURNED W*/ - 0x28e, /* U+00028e: LATIN SMALL LETTER TURNED Y*/ - 0x28f, /* U+00028f: LATIN LETTER SMALL CAPITAL Y*/ - 0x290, /* U+000290: LATIN SMALL LETTER Z WITH RETROFLEX HOOK*/ - 0x291, /* U+000291: LATIN SMALL LETTER Z WITH CURL*/ - 0x292, /* U+000292: LATIN SMALL LETTER EZH*/ - 0x293, /* U+000293: LATIN SMALL LETTER EZH WITH CURL*/ - 0x294, /* U+000294: LATIN LETTER GLOTTAL STOP*/ - 0x295, /* U+000295: LATIN LETTER PHARYNGEAL VOICED FRICATIVE*/ - 0x296, /* U+000296: LATIN LETTER INVERTED GLOTTAL STOP*/ - 0x297, /* U+000297: LATIN LETTER STRETCHED C*/ - 0x298, /* U+000298: LATIN LETTER BILABIAL CLICK*/ - 0x299, /* U+000299: LATIN LETTER SMALL CAPITAL B*/ - 0x29a, /* U+00029a: LATIN SMALL LETTER CLOSED OPEN E*/ - 0x29b, /* U+00029b: LATIN LETTER SMALL CAPITAL G WITH HOOK*/ - 0x29c, /* U+00029c: LATIN LETTER SMALL CAPITAL H*/ - 0x29d, /* U+00029d: LATIN SMALL LETTER J WITH CROSSED-TAIL*/ - 0x29e, /* U+00029e: LATIN SMALL LETTER TURNED K*/ - 0x29f, /* U+00029f: LATIN LETTER SMALL CAPITAL L*/ - 0x2a0, /* U+0002a0: LATIN SMALL LETTER Q WITH HOOK*/ - 0x2a1, /* U+0002a1: LATIN LETTER GLOTTAL STOP WITH STROKE*/ - 0x2a2, /* U+0002a2: LATIN LETTER REVERSED GLOTTAL STOP WITH STROKE*/ - 0x2a3, /* U+0002a3: LATIN SMALL LETTER DZ DIGRAPH*/ - 0x2a4, /* U+0002a4: LATIN SMALL LETTER DEZH DIGRAPH*/ - 0x2a5, /* U+0002a5: LATIN SMALL LETTER DZ DIGRAPH WITH CURL*/ - 0x2a6, /* U+0002a6: LATIN SMALL LETTER TS DIGRAPH*/ - 0x2a7, /* U+0002a7: LATIN SMALL LETTER TESH DIGRAPH*/ - 0x2a8, /* U+0002a8: LATIN SMALL LETTER TC DIGRAPH WITH CURL*/ - 0x2a9, /* U+0002a9: LATIN SMALL LETTER FENG DIGRAPH*/ - 0x2aa, /* U+0002aa: LATIN SMALL LETTER LS DIGRAPH*/ - 0x2ab, /* U+0002ab: LATIN SMALL LETTER LZ DIGRAPH*/ - 0x2ac, /* U+0002ac: LATIN LETTER BILABIAL PERCUSSIVE*/ - 0x2ad, /* U+0002ad: LATIN LETTER BIDENTAL PERCUSSIVE*/ - 0x2ae, /* U+0002ae: LATIN SMALL LETTER TURNED H WITH FISHHOOK*/ - 0x2af, /* U+0002af: LATIN SMALL LETTER TURNED H WITH FISHHOOK AND TAIL*/ - 0x2b0, /* U+0002b0: MODIFIER LETTER SMALL H*/ - 0x2b1, /* U+0002b1: MODIFIER LETTER SMALL H WITH HOOK*/ - 0x2b2, /* U+0002b2: MODIFIER LETTER SMALL J*/ - 0x2b3, /* U+0002b3: MODIFIER LETTER SMALL R*/ - 0x2b4, /* U+0002b4: MODIFIER LETTER SMALL TURNED R*/ - 0x2b5, /* U+0002b5: MODIFIER LETTER SMALL TURNED R WITH HOOK*/ - 0x2b6, /* U+0002b6: MODIFIER LETTER SMALL CAPITAL INVERTED R*/ - 0x2b7, /* U+0002b7: MODIFIER LETTER SMALL W*/ - 0x2b8, /* U+0002b8: MODIFIER LETTER SMALL Y*/ - 0x2b9, /* U+0002b9: MODIFIER LETTER PRIME*/ - 0x2ba, /* U+0002ba: MODIFIER LETTER DOUBLE PRIME*/ - 0x2bb, /* U+0002bb: MODIFIER LETTER TURNED COMMA*/ - 0x2bc, /* U+0002bc: MODIFIER LETTER APOSTROPHE*/ - 0x2bd, /* U+0002bd: MODIFIER LETTER REVERSED COMMA*/ - 0x2be, /* U+0002be: MODIFIER LETTER RIGHT HALF RING*/ - 0x2bf, /* U+0002bf: MODIFIER LETTER LEFT HALF RING*/ - 0x2c0, /* U+0002c0: MODIFIER LETTER GLOTTAL STOP*/ - 0x2c1, /* U+0002c1: MODIFIER LETTER REVERSED GLOTTAL STOP*/ - 0x2c2, /* U+0002c2: MODIFIER LETTER LEFT ARROWHEAD*/ - 0x2c3, /* U+0002c3: MODIFIER LETTER RIGHT ARROWHEAD*/ - 0x2c4, /* U+0002c4: MODIFIER LETTER UP ARROWHEAD*/ - 0x2c5, /* U+0002c5: MODIFIER LETTER DOWN ARROWHEAD*/ - 0x2c6, /* U+0002c6: MODIFIER LETTER CIRCUMFLEX ACCENT*/ - 0x2c7, /* U+0002c7: CARON*/ - 0x2c8, /* U+0002c8: MODIFIER LETTER VERTICAL LINE*/ - 0x2c9, /* U+0002c9: MODIFIER LETTER MACRON*/ - 0x2ca, /* U+0002ca: MODIFIER LETTER ACUTE ACCENT*/ - 0x2cb, /* U+0002cb: MODIFIER LETTER GRAVE ACCENT*/ - 0x2cc, /* U+0002cc: MODIFIER LETTER LOW VERTICAL LINE*/ - 0x2cd, /* U+0002cd: MODIFIER LETTER LOW MACRON*/ - 0x2ce, /* U+0002ce: MODIFIER LETTER LOW GRAVE ACCENT*/ - 0x2cf, /* U+0002cf: MODIFIER LETTER LOW ACUTE ACCENT*/ - 0x2d0, /* U+0002d0: MODIFIER LETTER TRIANGULAR COLON*/ - 0x2d1, /* U+0002d1: MODIFIER LETTER HALF TRIANGULAR COLON*/ - 0x2d2, /* U+0002d2: MODIFIER LETTER CENTRED RIGHT HALF RING*/ - 0x2d3, /* U+0002d3: MODIFIER LETTER CENTRED LEFT HALF RING*/ - 0x2d4, /* U+0002d4: MODIFIER LETTER UP TACK*/ - 0x2d5, /* U+0002d5: MODIFIER LETTER DOWN TACK*/ - 0x2d6, /* U+0002d6: MODIFIER LETTER PLUS SIGN*/ - 0x2d7, /* U+0002d7: MODIFIER LETTER MINUS SIGN*/ - 0x2d8, /* U+0002d8: BREVE*/ - 0x2d9, /* U+0002d9: DOT ABOVE*/ - 0x2da, /* U+0002da: RING ABOVE*/ - 0x2db, /* U+0002db: OGONEK*/ - 0x2dc, /* U+0002dc: SMALL TILDE*/ - 0x2dd, /* U+0002dd: DOUBLE ACUTE ACCENT*/ - 0x2de, /* U+0002de: MODIFIER LETTER RHOTIC HOOK*/ - 0x2df, /* U+0002df: MODIFIER LETTER CROSS ACCENT*/ - 0x2e0, /* U+0002e0: MODIFIER LETTER SMALL GAMMA*/ - 0x2e1, /* U+0002e1: MODIFIER LETTER SMALL L*/ - 0x2e2, /* U+0002e2: MODIFIER LETTER SMALL S*/ - 0x2e3, /* U+0002e3: MODIFIER LETTER SMALL X*/ - 0x2e4, /* U+0002e4: MODIFIER LETTER SMALL REVERSED GLOTTAL STOP*/ - 0x2e5, /* U+0002e5: MODIFIER LETTER EXTRA-HIGH TONE BAR*/ - 0x2e6, /* U+0002e6: MODIFIER LETTER HIGH TONE BAR*/ - 0x2e7, /* U+0002e7: MODIFIER LETTER MID TONE BAR*/ - 0x2e8, /* U+0002e8: MODIFIER LETTER LOW TONE BAR*/ - 0x2e9, /* U+0002e9: MODIFIER LETTER EXTRA-LOW TONE BAR*/ - 0x2ea, /* U+0002ea: MODIFIER LETTER YIN DEPARTING TONE MARK*/ - 0x2eb, /* U+0002eb: MODIFIER LETTER YANG DEPARTING TONE MARK*/ - 0x2ec, /* U+0002ec: MODIFIER LETTER VOICING*/ - 0x2ed, /* U+0002ed: MODIFIER LETTER UNASPIRATED*/ - 0x2ee, /* U+0002ee: MODIFIER LETTER DOUBLE APOSTROPHE*/ - 0x2ef, /* U+0002ef: MODIFIER LETTER LOW DOWN ARROWHEAD*/ - 0x2f0, /* U+0002f0: MODIFIER LETTER LOW UP ARROWHEAD*/ - 0x2f1, /* U+0002f1: MODIFIER LETTER LOW LEFT ARROWHEAD*/ - 0x2f2, /* U+0002f2: MODIFIER LETTER LOW RIGHT ARROWHEAD*/ - 0x2f3, /* U+0002f3: MODIFIER LETTER LOW RING*/ - 0x2f4, /* U+0002f4: MODIFIER LETTER MIDDLE GRAVE ACCENT*/ - 0x2f5, /* U+0002f5: MODIFIER LETTER MIDDLE DOUBLE GRAVE ACCENT*/ - 0x2f6, /* U+0002f6: MODIFIER LETTER MIDDLE DOUBLE ACUTE ACCENT*/ - 0x2f7, /* U+0002f7: MODIFIER LETTER LOW TILDE*/ - 0x2f8, /* U+0002f8: MODIFIER LETTER RAISED COLON*/ - 0x2f9, /* U+0002f9: MODIFIER LETTER BEGIN HIGH TONE*/ - 0x2fa, /* U+0002fa: MODIFIER LETTER END HIGH TONE*/ - 0x2fb, /* U+0002fb: MODIFIER LETTER BEGIN LOW TONE*/ - 0x2fc, /* U+0002fc: MODIFIER LETTER END LOW TONE*/ - 0x2fd, /* U+0002fd: MODIFIER LETTER SHELF*/ - 0x2fe, /* U+0002fe: MODIFIER LETTER OPEN SHELF*/ - 0x2ff, /* U+0002ff: MODIFIER LETTER LOW LEFT ARROW*/ - 0x300, /* U+000300: COMBINING GRAVE ACCENT*/ - 0x301, /* U+000301: COMBINING ACUTE ACCENT*/ - 0x302, /* U+000302: COMBINING CIRCUMFLEX ACCENT*/ - 0x303, /* U+000303: COMBINING TILDE*/ - 0x304, /* U+000304: COMBINING MACRON*/ - 0x305, /* U+000305: COMBINING OVERLINE*/ - 0x306, /* U+000306: COMBINING BREVE*/ - 0x307, /* U+000307: COMBINING DOT ABOVE*/ - 0x308, /* U+000308: COMBINING DIAERESIS*/ - 0x309, /* U+000309: COMBINING HOOK ABOVE*/ - 0x30a, /* U+00030a: COMBINING RING ABOVE*/ - 0x30b, /* U+00030b: COMBINING DOUBLE ACUTE ACCENT*/ - 0x30c, /* U+00030c: COMBINING CARON*/ - 0x30d, /* U+00030d: COMBINING VERTICAL LINE ABOVE*/ - 0x30e, /* U+00030e: COMBINING DOUBLE VERTICAL LINE ABOVE*/ - 0x30f, /* U+00030f: COMBINING DOUBLE GRAVE ACCENT*/ - 0x310, /* U+000310: COMBINING CANDRABINDU*/ - 0x311, /* U+000311: COMBINING INVERTED BREVE*/ - 0x312, /* U+000312: COMBINING TURNED COMMA ABOVE*/ - 0x313, /* U+000313: COMBINING COMMA ABOVE*/ - 0x314, /* U+000314: COMBINING REVERSED COMMA ABOVE*/ - 0x315, /* U+000315: COMBINING COMMA ABOVE RIGHT*/ - 0x316, /* U+000316: COMBINING GRAVE ACCENT BELOW*/ - 0x317, /* U+000317: COMBINING ACUTE ACCENT BELOW*/ - 0x318, /* U+000318: COMBINING LEFT TACK BELOW*/ - 0x319, /* U+000319: COMBINING RIGHT TACK BELOW*/ - 0x31a, /* U+00031a: COMBINING LEFT ANGLE ABOVE*/ - 0x31b, /* U+00031b: COMBINING HORN*/ - 0x31c, /* U+00031c: COMBINING LEFT HALF RING BELOW*/ - 0x31d, /* U+00031d: COMBINING UP TACK BELOW*/ - 0x31e, /* U+00031e: COMBINING DOWN TACK BELOW*/ - 0x31f, /* U+00031f: COMBINING PLUS SIGN BELOW*/ - 0x320, /* U+000320: COMBINING MINUS SIGN BELOW*/ - 0x321, /* U+000321: COMBINING PALATALIZED HOOK BELOW*/ - 0x322, /* U+000322: COMBINING RETROFLEX HOOK BELOW*/ - 0x323, /* U+000323: COMBINING DOT BELOW*/ - 0x324, /* U+000324: COMBINING DIAERESIS BELOW*/ - 0x325, /* U+000325: COMBINING RING BELOW*/ - 0x326, /* U+000326: COMBINING COMMA BELOW*/ - 0x327, /* U+000327: COMBINING CEDILLA*/ - 0x328, /* U+000328: COMBINING OGONEK*/ - 0x329, /* U+000329: COMBINING VERTICAL LINE BELOW*/ - 0x32a, /* U+00032a: COMBINING BRIDGE BELOW*/ - 0x32b, /* U+00032b: COMBINING INVERTED DOUBLE ARCH BELOW*/ - 0x32c, /* U+00032c: COMBINING CARON BELOW*/ - 0x32d, /* U+00032d: COMBINING CIRCUMFLEX ACCENT BELOW*/ - 0x32e, /* U+00032e: COMBINING BREVE BELOW*/ - 0x32f, /* U+00032f: COMBINING INVERTED BREVE BELOW*/ - 0x330, /* U+000330: COMBINING TILDE BELOW*/ - 0x331, /* U+000331: COMBINING MACRON BELOW*/ - 0x332, /* U+000332: COMBINING LOW LINE*/ - 0x333, /* U+000333: COMBINING DOUBLE LOW LINE*/ - 0x334, /* U+000334: COMBINING TILDE OVERLAY*/ - 0x335, /* U+000335: COMBINING SHORT STROKE OVERLAY*/ - 0x336, /* U+000336: COMBINING LONG STROKE OVERLAY*/ - 0x337, /* U+000337: COMBINING SHORT SOLIDUS OVERLAY*/ - 0x338, /* U+000338: COMBINING LONG SOLIDUS OVERLAY*/ - 0x339, /* U+000339: COMBINING RIGHT HALF RING BELOW*/ - 0x33a, /* U+00033a: COMBINING INVERTED BRIDGE BELOW*/ - 0x33b, /* U+00033b: COMBINING SQUARE BELOW*/ - 0x33c, /* U+00033c: COMBINING SEAGULL BELOW*/ - 0x33d, /* U+00033d: COMBINING X ABOVE*/ - 0x33e, /* U+00033e: COMBINING VERTICAL TILDE*/ - 0x33f, /* U+00033f: COMBINING DOUBLE OVERLINE*/ - 0x340, /* U+000340: COMBINING GRAVE TONE MARK*/ - 0x341, /* U+000341: COMBINING ACUTE TONE MARK*/ - 0x342, /* U+000342: COMBINING GREEK PERISPOMENI*/ - 0x343, /* U+000343: COMBINING GREEK KORONIS*/ - 0x344, /* U+000344: COMBINING GREEK DIALYTIKA TONOS*/ - 0x345, /* U+000345: COMBINING GREEK YPOGEGRAMMENI*/ - 0x346, /* U+000346: COMBINING BRIDGE ABOVE*/ - 0x347, /* U+000347: COMBINING EQUALS SIGN BELOW*/ - 0x348, /* U+000348: COMBINING DOUBLE VERTICAL LINE BELOW*/ - 0x349, /* U+000349: COMBINING LEFT ANGLE BELOW*/ - 0x34a, /* U+00034a: COMBINING NOT TILDE ABOVE*/ - 0x34b, /* U+00034b: COMBINING HOMOTHETIC ABOVE*/ - 0x34c, /* U+00034c: COMBINING ALMOST EQUAL TO ABOVE*/ - 0x34d, /* U+00034d: COMBINING LEFT RIGHT ARROW BELOW*/ - 0x34e, /* U+00034e: COMBINING UPWARDS ARROW BELOW*/ - 0x34f, /* U+00034f: COMBINING GRAPHEME JOINER*/ - 0x350, /* U+000350: COMBINING RIGHT ARROWHEAD ABOVE*/ - 0x351, /* U+000351: COMBINING LEFT HALF RING ABOVE*/ - 0x352, /* U+000352: COMBINING FERMATA*/ - 0x353, /* U+000353: COMBINING X BELOW*/ - 0x354, /* U+000354: COMBINING LEFT ARROWHEAD BELOW*/ - 0x355, /* U+000355: COMBINING RIGHT ARROWHEAD BELOW*/ - 0x356, /* U+000356: COMBINING RIGHT ARROWHEAD AND UP ARROWHEAD BELOW*/ - 0x357, /* U+000357: COMBINING RIGHT HALF RING ABOVE*/ - 0x358, /* U+000358: COMBINING DOT ABOVE RIGHT*/ - 0x359, /* U+000359: COMBINING ASTERISK BELOW*/ - 0x35a, /* U+00035a: COMBINING DOUBLE RING BELOW*/ - 0x35b, /* U+00035b: COMBINING ZIGZAG ABOVE*/ - 0x35c, /* U+00035c: COMBINING DOUBLE BREVE BELOW*/ - 0x35d, /* U+00035d: COMBINING DOUBLE BREVE*/ - 0x35e, /* U+00035e: COMBINING DOUBLE MACRON*/ - 0x35f, /* U+00035f: COMBINING DOUBLE MACRON BELOW*/ - 0x360, /* U+000360: COMBINING DOUBLE TILDE*/ - 0x361, /* U+000361: COMBINING DOUBLE INVERTED BREVE*/ - 0x362, /* U+000362: COMBINING DOUBLE RIGHTWARDS ARROW BELOW*/ - 0x363, /* U+000363: COMBINING LATIN SMALL LETTER A*/ - 0x364, /* U+000364: COMBINING LATIN SMALL LETTER E*/ - 0x365, /* U+000365: COMBINING LATIN SMALL LETTER I*/ - 0x366, /* U+000366: COMBINING LATIN SMALL LETTER O*/ - 0x367, /* U+000367: COMBINING LATIN SMALL LETTER U*/ - 0x368, /* U+000368: COMBINING LATIN SMALL LETTER C*/ - 0x369, /* U+000369: COMBINING LATIN SMALL LETTER D*/ - 0x36a, /* U+00036a: COMBINING LATIN SMALL LETTER H*/ - 0x36b, /* U+00036b: COMBINING LATIN SMALL LETTER M*/ - 0x36c, /* U+00036c: COMBINING LATIN SMALL LETTER R*/ - 0x36d, /* U+00036d: COMBINING LATIN SMALL LETTER T*/ - 0x36e, /* U+00036e: COMBINING LATIN SMALL LETTER V*/ - 0x36f, /* U+00036f: COMBINING LATIN SMALL LETTER X*/ - 0x370, /* U+000370: */ - 0x371, /* U+000371: */ - 0x372, /* U+000372: */ - 0x373, /* U+000373: */ - 0x374, /* U+000374: GREEK NUMERAL SIGN*/ - 0x375, /* U+000375: GREEK LOWER NUMERAL SIGN*/ - 0x376, /* U+000376: */ - 0x377, /* U+000377: */ - 0x378, /* U+000378: */ - 0x379, /* U+000379: */ - 0x37a, /* U+00037a: GREEK YPOGEGRAMMENI*/ - 0x37b, /* U+00037b: */ - 0x37c, /* U+00037c: */ - 0x37d, /* U+00037d: */ - 0x37e, /* U+00037e: GREEK QUESTION MARK*/ - 0x37f, /* U+00037f: */ - 0x380, /* U+000380: */ - 0x381, /* U+000381: */ - 0x382, /* U+000382: */ - 0x383, /* U+000383: */ - 0x384, /* U+000384: GREEK TONOS*/ - 0x385, /* U+000385: GREEK DIALYTIKA TONOS*/ - 0x3ac, /* U+000386: GREEK CAPITAL LETTER ALPHA WITH TONOS*/ - 0x387, /* U+000387: GREEK ANO TELEIA*/ - 0x3ad, /* U+000388: GREEK CAPITAL LETTER EPSILON WITH TONOS*/ - 0x3ae, /* U+000389: GREEK CAPITAL LETTER ETA WITH TONOS*/ - 0x3af, /* U+00038a: GREEK CAPITAL LETTER IOTA WITH TONOS*/ - 0x38b, /* U+00038b: */ - 0x3cc, /* U+00038c: GREEK CAPITAL LETTER OMICRON WITH TONOS*/ - 0x38d, /* U+00038d: */ - 0x3cd, /* U+00038e: GREEK CAPITAL LETTER UPSILON WITH TONOS*/ - 0x3ce, /* U+00038f: GREEK CAPITAL LETTER OMEGA WITH TONOS*/ - 0x390, /* U+000390: GREEK SMALL LETTER IOTA WITH DIALYTIKA AND TONOS*/ - 0x3b1, /* U+000391: GREEK CAPITAL LETTER ALPHA*/ - 0x3b2, /* U+000392: GREEK CAPITAL LETTER BETA*/ - 0x3b3, /* U+000393: GREEK CAPITAL LETTER GAMMA*/ - 0x3b4, /* U+000394: GREEK CAPITAL LETTER DELTA*/ - 0x3b5, /* U+000395: GREEK CAPITAL LETTER EPSILON*/ - 0x3b6, /* U+000396: GREEK CAPITAL LETTER ZETA*/ - 0x3b7, /* U+000397: GREEK CAPITAL LETTER ETA*/ - 0x3b8, /* U+000398: GREEK CAPITAL LETTER THETA*/ - 0x3b9, /* U+000399: GREEK CAPITAL LETTER IOTA*/ - 0x3ba, /* U+00039a: GREEK CAPITAL LETTER KAPPA*/ - 0x3bb, /* U+00039b: GREEK CAPITAL LETTER LAMDA*/ - 0x3bc, /* U+00039c: GREEK CAPITAL LETTER MU*/ - 0x3bd, /* U+00039d: GREEK CAPITAL LETTER NU*/ - 0x3be, /* U+00039e: GREEK CAPITAL LETTER XI*/ - 0x3bf, /* U+00039f: GREEK CAPITAL LETTER OMICRON*/ - 0x3c0, /* U+0003a0: GREEK CAPITAL LETTER PI*/ - 0x3c1, /* U+0003a1: GREEK CAPITAL LETTER RHO*/ - 0x3a2, /* U+0003a2: */ - 0x3c3, /* U+0003a3: GREEK CAPITAL LETTER SIGMA*/ - 0x3c4, /* U+0003a4: GREEK CAPITAL LETTER TAU*/ - 0x3c5, /* U+0003a5: GREEK CAPITAL LETTER UPSILON*/ - 0x3c6, /* U+0003a6: GREEK CAPITAL LETTER PHI*/ - 0x3c7, /* U+0003a7: GREEK CAPITAL LETTER CHI*/ - 0x3c8, /* U+0003a8: GREEK CAPITAL LETTER PSI*/ - 0x3c9, /* U+0003a9: GREEK CAPITAL LETTER OMEGA*/ - 0x3ca, /* U+0003aa: GREEK CAPITAL LETTER IOTA WITH DIALYTIKA*/ - 0x3cb, /* U+0003ab: GREEK CAPITAL LETTER UPSILON WITH DIALYTIKA*/ - 0x3ac, /* U+0003ac: GREEK SMALL LETTER ALPHA WITH TONOS*/ - 0x3ad, /* U+0003ad: GREEK SMALL LETTER EPSILON WITH TONOS*/ - 0x3ae, /* U+0003ae: GREEK SMALL LETTER ETA WITH TONOS*/ - 0x3af, /* U+0003af: GREEK SMALL LETTER IOTA WITH TONOS*/ - 0x3b0, /* U+0003b0: GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND TONOS*/ - 0x3b1, /* U+0003b1: GREEK SMALL LETTER ALPHA*/ - 0x3b2, /* U+0003b2: GREEK SMALL LETTER BETA*/ - 0x3b3, /* U+0003b3: GREEK SMALL LETTER GAMMA*/ - 0x3b4, /* U+0003b4: GREEK SMALL LETTER DELTA*/ - 0x3b5, /* U+0003b5: GREEK SMALL LETTER EPSILON*/ - 0x3b6, /* U+0003b6: GREEK SMALL LETTER ZETA*/ - 0x3b7, /* U+0003b7: GREEK SMALL LETTER ETA*/ - 0x3b8, /* U+0003b8: GREEK SMALL LETTER THETA*/ - 0x3b9, /* U+0003b9: GREEK SMALL LETTER IOTA*/ - 0x3ba, /* U+0003ba: GREEK SMALL LETTER KAPPA*/ - 0x3bb, /* U+0003bb: GREEK SMALL LETTER LAMDA*/ - 0x3bc, /* U+0003bc: GREEK SMALL LETTER MU*/ - 0x3bd, /* U+0003bd: GREEK SMALL LETTER NU*/ - 0x3be, /* U+0003be: GREEK SMALL LETTER XI*/ - 0x3bf, /* U+0003bf: GREEK SMALL LETTER OMICRON*/ - 0x3c0, /* U+0003c0: GREEK SMALL LETTER PI*/ - 0x3c1, /* U+0003c1: GREEK SMALL LETTER RHO*/ - 0x3c2, /* U+0003c2: GREEK SMALL LETTER FINAL SIGMA*/ - 0x3c3, /* U+0003c3: GREEK SMALL LETTER SIGMA*/ - 0x3c4, /* U+0003c4: GREEK SMALL LETTER TAU*/ - 0x3c5, /* U+0003c5: GREEK SMALL LETTER UPSILON*/ - 0x3c6, /* U+0003c6: GREEK SMALL LETTER PHI*/ - 0x3c7, /* U+0003c7: GREEK SMALL LETTER CHI*/ - 0x3c8, /* U+0003c8: GREEK SMALL LETTER PSI*/ - 0x3c9, /* U+0003c9: GREEK SMALL LETTER OMEGA*/ - 0x3ca, /* U+0003ca: GREEK SMALL LETTER IOTA WITH DIALYTIKA*/ - 0x3cb, /* U+0003cb: GREEK SMALL LETTER UPSILON WITH DIALYTIKA*/ - 0x3cc, /* U+0003cc: GREEK SMALL LETTER OMICRON WITH TONOS*/ - 0x3cd, /* U+0003cd: GREEK SMALL LETTER UPSILON WITH TONOS*/ - 0x3ce, /* U+0003ce: GREEK SMALL LETTER OMEGA WITH TONOS*/ - 0x3cf, /* U+0003cf: */ - 0x3d0, /* U+0003d0: GREEK BETA SYMBOL*/ - 0x3d1, /* U+0003d1: GREEK THETA SYMBOL*/ - 0x3d2, /* U+0003d2: GREEK UPSILON WITH HOOK SYMBOL*/ - 0x3d3, /* U+0003d3: GREEK UPSILON WITH ACUTE AND HOOK SYMBOL*/ - 0x3d4, /* U+0003d4: GREEK UPSILON WITH DIAERESIS AND HOOK SYMBOL*/ - 0x3d5, /* U+0003d5: GREEK PHI SYMBOL*/ - 0x3d6, /* U+0003d6: GREEK PI SYMBOL*/ - 0x3d7, /* U+0003d7: GREEK KAI SYMBOL*/ - 0x3d9, /* U+0003d8: GREEK LETTER ARCHAIC KOPPA*/ - 0x3d9, /* U+0003d9: GREEK SMALL LETTER ARCHAIC KOPPA*/ - 0x3db, /* U+0003da: GREEK LETTER STIGMA*/ - 0x3db, /* U+0003db: GREEK SMALL LETTER STIGMA*/ - 0x3dd, /* U+0003dc: GREEK LETTER DIGAMMA*/ - 0x3dd, /* U+0003dd: GREEK SMALL LETTER DIGAMMA*/ - 0x3df, /* U+0003de: GREEK LETTER KOPPA*/ - 0x3df, /* U+0003df: GREEK SMALL LETTER KOPPA*/ - 0x3e1, /* U+0003e0: GREEK LETTER SAMPI*/ - 0x3e1, /* U+0003e1: GREEK SMALL LETTER SAMPI*/ - 0x3e3, /* U+0003e2: COPTIC CAPITAL LETTER SHEI*/ - 0x3e3, /* U+0003e3: COPTIC SMALL LETTER SHEI*/ - 0x3e5, /* U+0003e4: COPTIC CAPITAL LETTER FEI*/ - 0x3e5, /* U+0003e5: COPTIC SMALL LETTER FEI*/ - 0x3e7, /* U+0003e6: COPTIC CAPITAL LETTER KHEI*/ - 0x3e7, /* U+0003e7: COPTIC SMALL LETTER KHEI*/ - 0x3e9, /* U+0003e8: COPTIC CAPITAL LETTER HORI*/ - 0x3e9, /* U+0003e9: COPTIC SMALL LETTER HORI*/ - 0x3eb, /* U+0003ea: COPTIC CAPITAL LETTER GANGIA*/ - 0x3eb, /* U+0003eb: COPTIC SMALL LETTER GANGIA*/ - 0x3ed, /* U+0003ec: COPTIC CAPITAL LETTER SHIMA*/ - 0x3ed, /* U+0003ed: COPTIC SMALL LETTER SHIMA*/ - 0x3ef, /* U+0003ee: COPTIC CAPITAL LETTER DEI*/ - 0x3ef, /* U+0003ef: COPTIC SMALL LETTER DEI*/ - 0x3f0, /* U+0003f0: GREEK KAPPA SYMBOL*/ - 0x3f1, /* U+0003f1: GREEK RHO SYMBOL*/ - 0x3f2, /* U+0003f2: GREEK LUNATE SIGMA SYMBOL*/ - 0x3f3, /* U+0003f3: GREEK LETTER YOT*/ - 0x3b8, /* U+0003f4: GREEK CAPITAL THETA SYMBOL*/ - 0x3f5, /* U+0003f5: GREEK LUNATE EPSILON SYMBOL*/ - 0x3f6, /* U+0003f6: GREEK REVERSED LUNATE EPSILON SYMBOL*/ - 0x3f8, /* U+0003f7: GREEK CAPITAL LETTER SHO*/ - 0x3f8, /* U+0003f8: GREEK SMALL LETTER SHO*/ - 0x3f2, /* U+0003f9: GREEK CAPITAL LUNATE SIGMA SYMBOL*/ - 0x3fb, /* U+0003fa: GREEK CAPITAL LETTER SAN*/ - 0x3fb, /* U+0003fb: GREEK SMALL LETTER SAN*/ - 0x3fc, /* U+0003fc: GREEK RHO WITH STROKE SYMBOL*/ - 0x3fd, /* U+0003fd: GREEK CAPITAL REVERSED LUNATE SIGMA SYMBOL*/ - 0x3fe, /* U+0003fe: GREEK CAPITAL DOTTED LUNATE SIGMA SYMBOL*/ - 0x3ff, /* U+0003ff: GREEK CAPITAL REVERSED DOTTED LUNATE SIGMA SYMBOL*/ - 0x450, /* U+000400: CYRILLIC CAPITAL LETTER IE WITH GRAVE*/ - 0x451, /* U+000401: CYRILLIC CAPITAL LETTER IO*/ - 0x452, /* U+000402: CYRILLIC CAPITAL LETTER DJE*/ - 0x453, /* U+000403: CYRILLIC CAPITAL LETTER GJE*/ - 0x454, /* U+000404: CYRILLIC CAPITAL LETTER UKRAINIAN IE*/ - 0x455, /* U+000405: CYRILLIC CAPITAL LETTER DZE*/ - 0x456, /* U+000406: CYRILLIC CAPITAL LETTER BYELORUSSIAN-UKRAINIAN I*/ - 0x457, /* U+000407: CYRILLIC CAPITAL LETTER YI*/ - 0x458, /* U+000408: CYRILLIC CAPITAL LETTER JE*/ - 0x459, /* U+000409: CYRILLIC CAPITAL LETTER LJE*/ - 0x45a, /* U+00040a: CYRILLIC CAPITAL LETTER NJE*/ - 0x45b, /* U+00040b: CYRILLIC CAPITAL LETTER TSHE*/ - 0x45c, /* U+00040c: CYRILLIC CAPITAL LETTER KJE*/ - 0x45d, /* U+00040d: CYRILLIC CAPITAL LETTER I WITH GRAVE*/ - 0x45e, /* U+00040e: CYRILLIC CAPITAL LETTER SHORT U*/ - 0x45f, /* U+00040f: CYRILLIC CAPITAL LETTER DZHE*/ - 0x430, /* U+000410: CYRILLIC CAPITAL LETTER A*/ - 0x431, /* U+000411: CYRILLIC CAPITAL LETTER BE*/ - 0x432, /* U+000412: CYRILLIC CAPITAL LETTER VE*/ - 0x433, /* U+000413: CYRILLIC CAPITAL LETTER GHE*/ - 0x434, /* U+000414: CYRILLIC CAPITAL LETTER DE*/ - 0x435, /* U+000415: CYRILLIC CAPITAL LETTER IE*/ - 0x436, /* U+000416: CYRILLIC CAPITAL LETTER ZHE*/ - 0x437, /* U+000417: CYRILLIC CAPITAL LETTER ZE*/ - 0x438, /* U+000418: CYRILLIC CAPITAL LETTER I*/ - 0x439, /* U+000419: CYRILLIC CAPITAL LETTER SHORT I*/ - 0x43a, /* U+00041a: CYRILLIC CAPITAL LETTER KA*/ - 0x43b, /* U+00041b: CYRILLIC CAPITAL LETTER EL*/ - 0x43c, /* U+00041c: CYRILLIC CAPITAL LETTER EM*/ - 0x43d, /* U+00041d: CYRILLIC CAPITAL LETTER EN*/ - 0x43e, /* U+00041e: CYRILLIC CAPITAL LETTER O*/ - 0x43f, /* U+00041f: CYRILLIC CAPITAL LETTER PE*/ - 0x440, /* U+000420: CYRILLIC CAPITAL LETTER ER*/ - 0x441, /* U+000421: CYRILLIC CAPITAL LETTER ES*/ - 0x442, /* U+000422: CYRILLIC CAPITAL LETTER TE*/ - 0x443, /* U+000423: CYRILLIC CAPITAL LETTER U*/ - 0x444, /* U+000424: CYRILLIC CAPITAL LETTER EF*/ - 0x445, /* U+000425: CYRILLIC CAPITAL LETTER HA*/ - 0x446, /* U+000426: CYRILLIC CAPITAL LETTER TSE*/ - 0x447, /* U+000427: CYRILLIC CAPITAL LETTER CHE*/ - 0x448, /* U+000428: CYRILLIC CAPITAL LETTER SHA*/ - 0x449, /* U+000429: CYRILLIC CAPITAL LETTER SHCHA*/ - 0x44a, /* U+00042a: CYRILLIC CAPITAL LETTER HARD SIGN*/ - 0x44b, /* U+00042b: CYRILLIC CAPITAL LETTER YERU*/ - 0x44c, /* U+00042c: CYRILLIC CAPITAL LETTER SOFT SIGN*/ - 0x44d, /* U+00042d: CYRILLIC CAPITAL LETTER E*/ - 0x44e, /* U+00042e: CYRILLIC CAPITAL LETTER YU*/ - 0x44f, /* U+00042f: CYRILLIC CAPITAL LETTER YA*/ - 0x430, /* U+000430: CYRILLIC SMALL LETTER A*/ - 0x431, /* U+000431: CYRILLIC SMALL LETTER BE*/ - 0x432, /* U+000432: CYRILLIC SMALL LETTER VE*/ - 0x433, /* U+000433: CYRILLIC SMALL LETTER GHE*/ - 0x434, /* U+000434: CYRILLIC SMALL LETTER DE*/ - 0x435, /* U+000435: CYRILLIC SMALL LETTER IE*/ - 0x436, /* U+000436: CYRILLIC SMALL LETTER ZHE*/ - 0x437, /* U+000437: CYRILLIC SMALL LETTER ZE*/ - 0x438, /* U+000438: CYRILLIC SMALL LETTER I*/ - 0x439, /* U+000439: CYRILLIC SMALL LETTER SHORT I*/ - 0x43a, /* U+00043a: CYRILLIC SMALL LETTER KA*/ - 0x43b, /* U+00043b: CYRILLIC SMALL LETTER EL*/ - 0x43c, /* U+00043c: CYRILLIC SMALL LETTER EM*/ - 0x43d, /* U+00043d: CYRILLIC SMALL LETTER EN*/ - 0x43e, /* U+00043e: CYRILLIC SMALL LETTER O*/ - 0x43f, /* U+00043f: CYRILLIC SMALL LETTER PE*/ - 0x440, /* U+000440: CYRILLIC SMALL LETTER ER*/ - 0x441, /* U+000441: CYRILLIC SMALL LETTER ES*/ - 0x442, /* U+000442: CYRILLIC SMALL LETTER TE*/ - 0x443, /* U+000443: CYRILLIC SMALL LETTER U*/ - 0x444, /* U+000444: CYRILLIC SMALL LETTER EF*/ - 0x445, /* U+000445: CYRILLIC SMALL LETTER HA*/ - 0x446, /* U+000446: CYRILLIC SMALL LETTER TSE*/ - 0x447, /* U+000447: CYRILLIC SMALL LETTER CHE*/ - 0x448, /* U+000448: CYRILLIC SMALL LETTER SHA*/ - 0x449, /* U+000449: CYRILLIC SMALL LETTER SHCHA*/ - 0x44a, /* U+00044a: CYRILLIC SMALL LETTER HARD SIGN*/ - 0x44b, /* U+00044b: CYRILLIC SMALL LETTER YERU*/ - 0x44c, /* U+00044c: CYRILLIC SMALL LETTER SOFT SIGN*/ - 0x44d, /* U+00044d: CYRILLIC SMALL LETTER E*/ - 0x44e, /* U+00044e: CYRILLIC SMALL LETTER YU*/ - 0x44f, /* U+00044f: CYRILLIC SMALL LETTER YA*/ - 0x450, /* U+000450: CYRILLIC SMALL LETTER IE WITH GRAVE*/ - 0x451, /* U+000451: CYRILLIC SMALL LETTER IO*/ - 0x452, /* U+000452: CYRILLIC SMALL LETTER DJE*/ - 0x453, /* U+000453: CYRILLIC SMALL LETTER GJE*/ - 0x454, /* U+000454: CYRILLIC SMALL LETTER UKRAINIAN IE*/ - 0x455, /* U+000455: CYRILLIC SMALL LETTER DZE*/ - 0x456, /* U+000456: CYRILLIC SMALL LETTER BYELORUSSIAN-UKRAINIAN I*/ - 0x457, /* U+000457: CYRILLIC SMALL LETTER YI*/ - 0x458, /* U+000458: CYRILLIC SMALL LETTER JE*/ - 0x459, /* U+000459: CYRILLIC SMALL LETTER LJE*/ - 0x45a, /* U+00045a: CYRILLIC SMALL LETTER NJE*/ - 0x45b, /* U+00045b: CYRILLIC SMALL LETTER TSHE*/ - 0x45c, /* U+00045c: CYRILLIC SMALL LETTER KJE*/ - 0x45d, /* U+00045d: CYRILLIC SMALL LETTER I WITH GRAVE*/ - 0x45e, /* U+00045e: CYRILLIC SMALL LETTER SHORT U*/ - 0x45f, /* U+00045f: CYRILLIC SMALL LETTER DZHE*/ - 0x461, /* U+000460: CYRILLIC CAPITAL LETTER OMEGA*/ - 0x461, /* U+000461: CYRILLIC SMALL LETTER OMEGA*/ - 0x463, /* U+000462: CYRILLIC CAPITAL LETTER YAT*/ - 0x463, /* U+000463: CYRILLIC SMALL LETTER YAT*/ - 0x465, /* U+000464: CYRILLIC CAPITAL LETTER IOTIFIED E*/ - 0x465, /* U+000465: CYRILLIC SMALL LETTER IOTIFIED E*/ - 0x467, /* U+000466: CYRILLIC CAPITAL LETTER LITTLE YUS*/ - 0x467, /* U+000467: CYRILLIC SMALL LETTER LITTLE YUS*/ - 0x469, /* U+000468: CYRILLIC CAPITAL LETTER IOTIFIED LITTLE YUS*/ - 0x469, /* U+000469: CYRILLIC SMALL LETTER IOTIFIED LITTLE YUS*/ - 0x46b, /* U+00046a: CYRILLIC CAPITAL LETTER BIG YUS*/ - 0x46b, /* U+00046b: CYRILLIC SMALL LETTER BIG YUS*/ - 0x46d, /* U+00046c: CYRILLIC CAPITAL LETTER IOTIFIED BIG YUS*/ - 0x46d, /* U+00046d: CYRILLIC SMALL LETTER IOTIFIED BIG YUS*/ - 0x46f, /* U+00046e: CYRILLIC CAPITAL LETTER KSI*/ - 0x46f, /* U+00046f: CYRILLIC SMALL LETTER KSI*/ - 0x471, /* U+000470: CYRILLIC CAPITAL LETTER PSI*/ - 0x471, /* U+000471: CYRILLIC SMALL LETTER PSI*/ - 0x473, /* U+000472: CYRILLIC CAPITAL LETTER FITA*/ - 0x473, /* U+000473: CYRILLIC SMALL LETTER FITA*/ - 0x475, /* U+000474: CYRILLIC CAPITAL LETTER IZHITSA*/ - 0x475, /* U+000475: CYRILLIC SMALL LETTER IZHITSA*/ - 0x477, /* U+000476: CYRILLIC CAPITAL LETTER IZHITSA WITH DOUBLE GRAVE ACCENT*/ - 0x477, /* U+000477: CYRILLIC SMALL LETTER IZHITSA WITH DOUBLE GRAVE ACCENT*/ - 0x479, /* U+000478: CYRILLIC CAPITAL LETTER UK*/ - 0x479, /* U+000479: CYRILLIC SMALL LETTER UK*/ - 0x47b, /* U+00047a: CYRILLIC CAPITAL LETTER ROUND OMEGA*/ - 0x47b, /* U+00047b: CYRILLIC SMALL LETTER ROUND OMEGA*/ - 0x47d, /* U+00047c: CYRILLIC CAPITAL LETTER OMEGA WITH TITLO*/ - 0x47d, /* U+00047d: CYRILLIC SMALL LETTER OMEGA WITH TITLO*/ - 0x47f, /* U+00047e: CYRILLIC CAPITAL LETTER OT*/ - 0x47f, /* U+00047f: CYRILLIC SMALL LETTER OT*/ - 0x481, /* U+000480: CYRILLIC CAPITAL LETTER KOPPA*/ - 0x481, /* U+000481: CYRILLIC SMALL LETTER KOPPA*/ - 0x482, /* U+000482: CYRILLIC THOUSANDS SIGN*/ - 0x483, /* U+000483: COMBINING CYRILLIC TITLO*/ - 0x484, /* U+000484: COMBINING CYRILLIC PALATALIZATION*/ - 0x485, /* U+000485: COMBINING CYRILLIC DASIA PNEUMATA*/ - 0x486, /* U+000486: COMBINING CYRILLIC PSILI PNEUMATA*/ - 0x487, /* U+000487: */ - 0x488, /* U+000488: COMBINING CYRILLIC HUNDRED THOUSANDS SIGN*/ - 0x489, /* U+000489: COMBINING CYRILLIC MILLIONS SIGN*/ - 0x48b, /* U+00048a: CYRILLIC CAPITAL LETTER SHORT I WITH TAIL*/ - 0x48b, /* U+00048b: CYRILLIC SMALL LETTER SHORT I WITH TAIL*/ - 0x48d, /* U+00048c: CYRILLIC CAPITAL LETTER SEMISOFT SIGN*/ - 0x48d, /* U+00048d: CYRILLIC SMALL LETTER SEMISOFT SIGN*/ - 0x48f, /* U+00048e: CYRILLIC CAPITAL LETTER ER WITH TICK*/ - 0x48f, /* U+00048f: CYRILLIC SMALL LETTER ER WITH TICK*/ - 0x491, /* U+000490: CYRILLIC CAPITAL LETTER GHE WITH UPTURN*/ - 0x491, /* U+000491: CYRILLIC SMALL LETTER GHE WITH UPTURN*/ - 0x493, /* U+000492: CYRILLIC CAPITAL LETTER GHE WITH STROKE*/ - 0x493, /* U+000493: CYRILLIC SMALL LETTER GHE WITH STROKE*/ - 0x495, /* U+000494: CYRILLIC CAPITAL LETTER GHE WITH MIDDLE HOOK*/ - 0x495, /* U+000495: CYRILLIC SMALL LETTER GHE WITH MIDDLE HOOK*/ - 0x497, /* U+000496: CYRILLIC CAPITAL LETTER ZHE WITH DESCENDER*/ - 0x497, /* U+000497: CYRILLIC SMALL LETTER ZHE WITH DESCENDER*/ - 0x499, /* U+000498: CYRILLIC CAPITAL LETTER ZE WITH DESCENDER*/ - 0x499, /* U+000499: CYRILLIC SMALL LETTER ZE WITH DESCENDER*/ - 0x49b, /* U+00049a: CYRILLIC CAPITAL LETTER KA WITH DESCENDER*/ - 0x49b, /* U+00049b: CYRILLIC SMALL LETTER KA WITH DESCENDER*/ - 0x49d, /* U+00049c: CYRILLIC CAPITAL LETTER KA WITH VERTICAL STROKE*/ - 0x49d, /* U+00049d: CYRILLIC SMALL LETTER KA WITH VERTICAL STROKE*/ - 0x49f, /* U+00049e: CYRILLIC CAPITAL LETTER KA WITH STROKE*/ - 0x49f, /* U+00049f: CYRILLIC SMALL LETTER KA WITH STROKE*/ - 0x4a1, /* U+0004a0: CYRILLIC CAPITAL LETTER BASHKIR KA*/ - 0x4a1, /* U+0004a1: CYRILLIC SMALL LETTER BASHKIR KA*/ - 0x4a3, /* U+0004a2: CYRILLIC CAPITAL LETTER EN WITH DESCENDER*/ - 0x4a3, /* U+0004a3: CYRILLIC SMALL LETTER EN WITH DESCENDER*/ - 0x4a5, /* U+0004a4: CYRILLIC CAPITAL LIGATURE EN GHE*/ - 0x4a5, /* U+0004a5: CYRILLIC SMALL LIGATURE EN GHE*/ - 0x4a7, /* U+0004a6: CYRILLIC CAPITAL LETTER PE WITH MIDDLE HOOK*/ - 0x4a7, /* U+0004a7: CYRILLIC SMALL LETTER PE WITH MIDDLE HOOK*/ - 0x4a9, /* U+0004a8: CYRILLIC CAPITAL LETTER ABKHASIAN HA*/ - 0x4a9, /* U+0004a9: CYRILLIC SMALL LETTER ABKHASIAN HA*/ - 0x4ab, /* U+0004aa: CYRILLIC CAPITAL LETTER ES WITH DESCENDER*/ - 0x4ab, /* U+0004ab: CYRILLIC SMALL LETTER ES WITH DESCENDER*/ - 0x4ad, /* U+0004ac: CYRILLIC CAPITAL LETTER TE WITH DESCENDER*/ - 0x4ad, /* U+0004ad: CYRILLIC SMALL LETTER TE WITH DESCENDER*/ - 0x4af, /* U+0004ae: CYRILLIC CAPITAL LETTER STRAIGHT U*/ - 0x4af, /* U+0004af: CYRILLIC SMALL LETTER STRAIGHT U*/ - 0x4b1, /* U+0004b0: CYRILLIC CAPITAL LETTER STRAIGHT U WITH STROKE*/ - 0x4b1, /* U+0004b1: CYRILLIC SMALL LETTER STRAIGHT U WITH STROKE*/ - 0x4b3, /* U+0004b2: CYRILLIC CAPITAL LETTER HA WITH DESCENDER*/ - 0x4b3, /* U+0004b3: CYRILLIC SMALL LETTER HA WITH DESCENDER*/ - 0x4b5, /* U+0004b4: CYRILLIC CAPITAL LIGATURE TE TSE*/ - 0x4b5, /* U+0004b5: CYRILLIC SMALL LIGATURE TE TSE*/ - 0x4b7, /* U+0004b6: CYRILLIC CAPITAL LETTER CHE WITH DESCENDER*/ - 0x4b7, /* U+0004b7: CYRILLIC SMALL LETTER CHE WITH DESCENDER*/ - 0x4b9, /* U+0004b8: CYRILLIC CAPITAL LETTER CHE WITH VERTICAL STROKE*/ - 0x4b9, /* U+0004b9: CYRILLIC SMALL LETTER CHE WITH VERTICAL STROKE*/ - 0x4bb, /* U+0004ba: CYRILLIC CAPITAL LETTER SHHA*/ - 0x4bb, /* U+0004bb: CYRILLIC SMALL LETTER SHHA*/ - 0x4bd, /* U+0004bc: CYRILLIC CAPITAL LETTER ABKHASIAN CHE*/ - 0x4bd, /* U+0004bd: CYRILLIC SMALL LETTER ABKHASIAN CHE*/ - 0x4bf, /* U+0004be: CYRILLIC CAPITAL LETTER ABKHASIAN CHE WITH DESCENDER*/ - 0x4bf, /* U+0004bf: CYRILLIC SMALL LETTER ABKHASIAN CHE WITH DESCENDER*/ - 0x4c0, /* U+0004c0: CYRILLIC LETTER PALOCHKA*/ - 0x4c2, /* U+0004c1: CYRILLIC CAPITAL LETTER ZHE WITH BREVE*/ - 0x4c2, /* U+0004c2: CYRILLIC SMALL LETTER ZHE WITH BREVE*/ - 0x4c4, /* U+0004c3: CYRILLIC CAPITAL LETTER KA WITH HOOK*/ - 0x4c4, /* U+0004c4: CYRILLIC SMALL LETTER KA WITH HOOK*/ - 0x4c6, /* U+0004c5: CYRILLIC CAPITAL LETTER EL WITH TAIL*/ - 0x4c6, /* U+0004c6: CYRILLIC SMALL LETTER EL WITH TAIL*/ - 0x4c8, /* U+0004c7: CYRILLIC CAPITAL LETTER EN WITH HOOK*/ - 0x4c8, /* U+0004c8: CYRILLIC SMALL LETTER EN WITH HOOK*/ - 0x4ca, /* U+0004c9: CYRILLIC CAPITAL LETTER EN WITH TAIL*/ - 0x4ca, /* U+0004ca: CYRILLIC SMALL LETTER EN WITH TAIL*/ - 0x4cc, /* U+0004cb: CYRILLIC CAPITAL LETTER KHAKASSIAN CHE*/ - 0x4cc, /* U+0004cc: CYRILLIC SMALL LETTER KHAKASSIAN CHE*/ - 0x4ce, /* U+0004cd: CYRILLIC CAPITAL LETTER EM WITH TAIL*/ - 0x4ce, /* U+0004ce: CYRILLIC SMALL LETTER EM WITH TAIL*/ - 0x4cf, /* U+0004cf: */ - 0x4d1, /* U+0004d0: CYRILLIC CAPITAL LETTER A WITH BREVE*/ - 0x4d1, /* U+0004d1: CYRILLIC SMALL LETTER A WITH BREVE*/ - 0x4d3, /* U+0004d2: CYRILLIC CAPITAL LETTER A WITH DIAERESIS*/ - 0x4d3, /* U+0004d3: CYRILLIC SMALL LETTER A WITH DIAERESIS*/ - 0x4d5, /* U+0004d4: CYRILLIC CAPITAL LIGATURE A IE*/ - 0x4d5, /* U+0004d5: CYRILLIC SMALL LIGATURE A IE*/ - 0x4d7, /* U+0004d6: CYRILLIC CAPITAL LETTER IE WITH BREVE*/ - 0x4d7, /* U+0004d7: CYRILLIC SMALL LETTER IE WITH BREVE*/ - 0x4d9, /* U+0004d8: CYRILLIC CAPITAL LETTER SCHWA*/ - 0x4d9, /* U+0004d9: CYRILLIC SMALL LETTER SCHWA*/ - 0x4db, /* U+0004da: CYRILLIC CAPITAL LETTER SCHWA WITH DIAERESIS*/ - 0x4db, /* U+0004db: CYRILLIC SMALL LETTER SCHWA WITH DIAERESIS*/ - 0x4dd, /* U+0004dc: CYRILLIC CAPITAL LETTER ZHE WITH DIAERESIS*/ - 0x4dd, /* U+0004dd: CYRILLIC SMALL LETTER ZHE WITH DIAERESIS*/ - 0x4df, /* U+0004de: CYRILLIC CAPITAL LETTER ZE WITH DIAERESIS*/ - 0x4df, /* U+0004df: CYRILLIC SMALL LETTER ZE WITH DIAERESIS*/ - 0x4e1, /* U+0004e0: CYRILLIC CAPITAL LETTER ABKHASIAN DZE*/ - 0x4e1, /* U+0004e1: CYRILLIC SMALL LETTER ABKHASIAN DZE*/ - 0x4e3, /* U+0004e2: CYRILLIC CAPITAL LETTER I WITH MACRON*/ - 0x4e3, /* U+0004e3: CYRILLIC SMALL LETTER I WITH MACRON*/ - 0x4e5, /* U+0004e4: CYRILLIC CAPITAL LETTER I WITH DIAERESIS*/ - 0x4e5, /* U+0004e5: CYRILLIC SMALL LETTER I WITH DIAERESIS*/ - 0x4e7, /* U+0004e6: CYRILLIC CAPITAL LETTER O WITH DIAERESIS*/ - 0x4e7, /* U+0004e7: CYRILLIC SMALL LETTER O WITH DIAERESIS*/ - 0x4e9, /* U+0004e8: CYRILLIC CAPITAL LETTER BARRED O*/ - 0x4e9, /* U+0004e9: CYRILLIC SMALL LETTER BARRED O*/ - 0x4eb, /* U+0004ea: CYRILLIC CAPITAL LETTER BARRED O WITH DIAERESIS*/ - 0x4eb, /* U+0004eb: CYRILLIC SMALL LETTER BARRED O WITH DIAERESIS*/ - 0x4ed, /* U+0004ec: CYRILLIC CAPITAL LETTER E WITH DIAERESIS*/ - 0x4ed, /* U+0004ed: CYRILLIC SMALL LETTER E WITH DIAERESIS*/ - 0x4ef, /* U+0004ee: CYRILLIC CAPITAL LETTER U WITH MACRON*/ - 0x4ef, /* U+0004ef: CYRILLIC SMALL LETTER U WITH MACRON*/ - 0x4f1, /* U+0004f0: CYRILLIC CAPITAL LETTER U WITH DIAERESIS*/ - 0x4f1, /* U+0004f1: CYRILLIC SMALL LETTER U WITH DIAERESIS*/ - 0x4f3, /* U+0004f2: CYRILLIC CAPITAL LETTER U WITH DOUBLE ACUTE*/ - 0x4f3, /* U+0004f3: CYRILLIC SMALL LETTER U WITH DOUBLE ACUTE*/ - 0x4f5, /* U+0004f4: CYRILLIC CAPITAL LETTER CHE WITH DIAERESIS*/ - 0x4f5, /* U+0004f5: CYRILLIC SMALL LETTER CHE WITH DIAERESIS*/ - 0x4f7, /* U+0004f6: CYRILLIC CAPITAL LETTER GHE WITH DESCENDER*/ - 0x4f7, /* U+0004f7: CYRILLIC SMALL LETTER GHE WITH DESCENDER*/ - 0x4f9, /* U+0004f8: CYRILLIC CAPITAL LETTER YERU WITH DIAERESIS*/ - 0x4f9, /* U+0004f9: CYRILLIC SMALL LETTER YERU WITH DIAERESIS*/ - 0x4fa, /* U+0004fa: */ - 0x4fb, /* U+0004fb: */ - 0x4fc, /* U+0004fc: */ - 0x4fd, /* U+0004fd: */ - 0x4fe, /* U+0004fe: */ - 0x4ff, /* U+0004ff: */ - 0x501, /* U+000500: CYRILLIC CAPITAL LETTER KOMI DE*/ - 0x501, /* U+000501: CYRILLIC SMALL LETTER KOMI DE*/ - 0x503, /* U+000502: CYRILLIC CAPITAL LETTER KOMI DJE*/ - 0x503, /* U+000503: CYRILLIC SMALL LETTER KOMI DJE*/ - 0x505, /* U+000504: CYRILLIC CAPITAL LETTER KOMI ZJE*/ - 0x505, /* U+000505: CYRILLIC SMALL LETTER KOMI ZJE*/ - 0x507, /* U+000506: CYRILLIC CAPITAL LETTER KOMI DZJE*/ - 0x507, /* U+000507: CYRILLIC SMALL LETTER KOMI DZJE*/ - 0x509, /* U+000508: CYRILLIC CAPITAL LETTER KOMI LJE*/ - 0x509, /* U+000509: CYRILLIC SMALL LETTER KOMI LJE*/ - 0x50b, /* U+00050a: CYRILLIC CAPITAL LETTER KOMI NJE*/ - 0x50b, /* U+00050b: CYRILLIC SMALL LETTER KOMI NJE*/ - 0x50d, /* U+00050c: CYRILLIC CAPITAL LETTER KOMI SJE*/ - 0x50d, /* U+00050d: CYRILLIC SMALL LETTER KOMI SJE*/ - 0x50f, /* U+00050e: CYRILLIC CAPITAL LETTER KOMI TJE*/ - 0x50f, /* U+00050f: CYRILLIC SMALL LETTER KOMI TJE*/ - 0x510, /* U+000510: */ - 0x511, /* U+000511: */ - 0x512, /* U+000512: */ - 0x513, /* U+000513: */ - 0x514, /* U+000514: */ - 0x515, /* U+000515: */ - 0x516, /* U+000516: */ - 0x517, /* U+000517: */ - 0x518, /* U+000518: */ - 0x519, /* U+000519: */ - 0x51a, /* U+00051a: */ - 0x51b, /* U+00051b: */ - 0x51c, /* U+00051c: */ - 0x51d, /* U+00051d: */ - 0x51e, /* U+00051e: */ - 0x51f, /* U+00051f: */ - 0x520, /* U+000520: */ - 0x521, /* U+000521: */ - 0x522, /* U+000522: */ - 0x523, /* U+000523: */ - 0x524, /* U+000524: */ - 0x525, /* U+000525: */ - 0x526, /* U+000526: */ - 0x527, /* U+000527: */ - 0x528, /* U+000528: */ - 0x529, /* U+000529: */ - 0x52a, /* U+00052a: */ - 0x52b, /* U+00052b: */ - 0x52c, /* U+00052c: */ - 0x52d, /* U+00052d: */ - 0x52e, /* U+00052e: */ - 0x52f, /* U+00052f: */ - 0x530, /* U+000530: */ - 0x561, /* U+000531: ARMENIAN CAPITAL LETTER AYB*/ - 0x562, /* U+000532: ARMENIAN CAPITAL LETTER BEN*/ - 0x563, /* U+000533: ARMENIAN CAPITAL LETTER GIM*/ - 0x564, /* U+000534: ARMENIAN CAPITAL LETTER DA*/ - 0x565, /* U+000535: ARMENIAN CAPITAL LETTER ECH*/ - 0x566, /* U+000536: ARMENIAN CAPITAL LETTER ZA*/ - 0x567, /* U+000537: ARMENIAN CAPITAL LETTER EH*/ - 0x568, /* U+000538: ARMENIAN CAPITAL LETTER ET*/ - 0x569, /* U+000539: ARMENIAN CAPITAL LETTER TO*/ - 0x56a, /* U+00053a: ARMENIAN CAPITAL LETTER ZHE*/ - 0x56b, /* U+00053b: ARMENIAN CAPITAL LETTER INI*/ - 0x56c, /* U+00053c: ARMENIAN CAPITAL LETTER LIWN*/ - 0x56d, /* U+00053d: ARMENIAN CAPITAL LETTER XEH*/ - 0x56e, /* U+00053e: ARMENIAN CAPITAL LETTER CA*/ - 0x56f, /* U+00053f: ARMENIAN CAPITAL LETTER KEN*/ - 0x570, /* U+000540: ARMENIAN CAPITAL LETTER HO*/ - 0x571, /* U+000541: ARMENIAN CAPITAL LETTER JA*/ - 0x572, /* U+000542: ARMENIAN CAPITAL LETTER GHAD*/ - 0x573, /* U+000543: ARMENIAN CAPITAL LETTER CHEH*/ - 0x574, /* U+000544: ARMENIAN CAPITAL LETTER MEN*/ - 0x575, /* U+000545: ARMENIAN CAPITAL LETTER YI*/ - 0x576, /* U+000546: ARMENIAN CAPITAL LETTER NOW*/ - 0x577, /* U+000547: ARMENIAN CAPITAL LETTER SHA*/ - 0x578, /* U+000548: ARMENIAN CAPITAL LETTER VO*/ - 0x579, /* U+000549: ARMENIAN CAPITAL LETTER CHA*/ - 0x57a, /* U+00054a: ARMENIAN CAPITAL LETTER PEH*/ - 0x57b, /* U+00054b: ARMENIAN CAPITAL LETTER JHEH*/ - 0x57c, /* U+00054c: ARMENIAN CAPITAL LETTER RA*/ - 0x57d, /* U+00054d: ARMENIAN CAPITAL LETTER SEH*/ - 0x57e, /* U+00054e: ARMENIAN CAPITAL LETTER VEW*/ - 0x57f, /* U+00054f: ARMENIAN CAPITAL LETTER TIWN*/ - 0x580, /* U+000550: ARMENIAN CAPITAL LETTER REH*/ - 0x581, /* U+000551: ARMENIAN CAPITAL LETTER CO*/ - 0x582, /* U+000552: ARMENIAN CAPITAL LETTER YIWN*/ - 0x583, /* U+000553: ARMENIAN CAPITAL LETTER PIWR*/ - 0x584, /* U+000554: ARMENIAN CAPITAL LETTER KEH*/ - 0x585, /* U+000555: ARMENIAN CAPITAL LETTER OH*/ - 0x586, /* U+000556: ARMENIAN CAPITAL LETTER FEH*/ -}; - -static const RTUNICP g_afRTUniLower0x0010a0[] = -{ - 0x2d00, /* U+0010a0: GEORGIAN CAPITAL LETTER AN*/ - 0x2d01, /* U+0010a1: GEORGIAN CAPITAL LETTER BAN*/ - 0x2d02, /* U+0010a2: GEORGIAN CAPITAL LETTER GAN*/ - 0x2d03, /* U+0010a3: GEORGIAN CAPITAL LETTER DON*/ - 0x2d04, /* U+0010a4: GEORGIAN CAPITAL LETTER EN*/ - 0x2d05, /* U+0010a5: GEORGIAN CAPITAL LETTER VIN*/ - 0x2d06, /* U+0010a6: GEORGIAN CAPITAL LETTER ZEN*/ - 0x2d07, /* U+0010a7: GEORGIAN CAPITAL LETTER TAN*/ - 0x2d08, /* U+0010a8: GEORGIAN CAPITAL LETTER IN*/ - 0x2d09, /* U+0010a9: GEORGIAN CAPITAL LETTER KAN*/ - 0x2d0a, /* U+0010aa: GEORGIAN CAPITAL LETTER LAS*/ - 0x2d0b, /* U+0010ab: GEORGIAN CAPITAL LETTER MAN*/ - 0x2d0c, /* U+0010ac: GEORGIAN CAPITAL LETTER NAR*/ - 0x2d0d, /* U+0010ad: GEORGIAN CAPITAL LETTER ON*/ - 0x2d0e, /* U+0010ae: GEORGIAN CAPITAL LETTER PAR*/ - 0x2d0f, /* U+0010af: GEORGIAN CAPITAL LETTER ZHAR*/ - 0x2d10, /* U+0010b0: GEORGIAN CAPITAL LETTER RAE*/ - 0x2d11, /* U+0010b1: GEORGIAN CAPITAL LETTER SAN*/ - 0x2d12, /* U+0010b2: GEORGIAN CAPITAL LETTER TAR*/ - 0x2d13, /* U+0010b3: GEORGIAN CAPITAL LETTER UN*/ - 0x2d14, /* U+0010b4: GEORGIAN CAPITAL LETTER PHAR*/ - 0x2d15, /* U+0010b5: GEORGIAN CAPITAL LETTER KHAR*/ - 0x2d16, /* U+0010b6: GEORGIAN CAPITAL LETTER GHAN*/ - 0x2d17, /* U+0010b7: GEORGIAN CAPITAL LETTER QAR*/ - 0x2d18, /* U+0010b8: GEORGIAN CAPITAL LETTER SHIN*/ - 0x2d19, /* U+0010b9: GEORGIAN CAPITAL LETTER CHIN*/ - 0x2d1a, /* U+0010ba: GEORGIAN CAPITAL LETTER CAN*/ - 0x2d1b, /* U+0010bb: GEORGIAN CAPITAL LETTER JIL*/ - 0x2d1c, /* U+0010bc: GEORGIAN CAPITAL LETTER CIL*/ - 0x2d1d, /* U+0010bd: GEORGIAN CAPITAL LETTER CHAR*/ - 0x2d1e, /* U+0010be: GEORGIAN CAPITAL LETTER XAN*/ - 0x2d1f, /* U+0010bf: GEORGIAN CAPITAL LETTER JHAN*/ - 0x2d20, /* U+0010c0: GEORGIAN CAPITAL LETTER HAE*/ - 0x2d21, /* U+0010c1: GEORGIAN CAPITAL LETTER HE*/ - 0x2d22, /* U+0010c2: GEORGIAN CAPITAL LETTER HIE*/ - 0x2d23, /* U+0010c3: GEORGIAN CAPITAL LETTER WE*/ - 0x2d24, /* U+0010c4: GEORGIAN CAPITAL LETTER HAR*/ - 0x2d25, /* U+0010c5: GEORGIAN CAPITAL LETTER HOE*/ -}; - -static const RTUNICP g_afRTUniLower0x001e00[] = -{ - 0x1e01, /* U+001e00: LATIN CAPITAL LETTER A WITH RING BELOW*/ - 0x1e01, /* U+001e01: LATIN SMALL LETTER A WITH RING BELOW*/ - 0x1e03, /* U+001e02: LATIN CAPITAL LETTER B WITH DOT ABOVE*/ - 0x1e03, /* U+001e03: LATIN SMALL LETTER B WITH DOT ABOVE*/ - 0x1e05, /* U+001e04: LATIN CAPITAL LETTER B WITH DOT BELOW*/ - 0x1e05, /* U+001e05: LATIN SMALL LETTER B WITH DOT BELOW*/ - 0x1e07, /* U+001e06: LATIN CAPITAL LETTER B WITH LINE BELOW*/ - 0x1e07, /* U+001e07: LATIN SMALL LETTER B WITH LINE BELOW*/ - 0x1e09, /* U+001e08: LATIN CAPITAL LETTER C WITH CEDILLA AND ACUTE*/ - 0x1e09, /* U+001e09: LATIN SMALL LETTER C WITH CEDILLA AND ACUTE*/ - 0x1e0b, /* U+001e0a: LATIN CAPITAL LETTER D WITH DOT ABOVE*/ - 0x1e0b, /* U+001e0b: LATIN SMALL LETTER D WITH DOT ABOVE*/ - 0x1e0d, /* U+001e0c: LATIN CAPITAL LETTER D WITH DOT BELOW*/ - 0x1e0d, /* U+001e0d: LATIN SMALL LETTER D WITH DOT BELOW*/ - 0x1e0f, /* U+001e0e: LATIN CAPITAL LETTER D WITH LINE BELOW*/ - 0x1e0f, /* U+001e0f: LATIN SMALL LETTER D WITH LINE BELOW*/ - 0x1e11, /* U+001e10: LATIN CAPITAL LETTER D WITH CEDILLA*/ - 0x1e11, /* U+001e11: LATIN SMALL LETTER D WITH CEDILLA*/ - 0x1e13, /* U+001e12: LATIN CAPITAL LETTER D WITH CIRCUMFLEX BELOW*/ - 0x1e13, /* U+001e13: LATIN SMALL LETTER D WITH CIRCUMFLEX BELOW*/ - 0x1e15, /* U+001e14: LATIN CAPITAL LETTER E WITH MACRON AND GRAVE*/ - 0x1e15, /* U+001e15: LATIN SMALL LETTER E WITH MACRON AND GRAVE*/ - 0x1e17, /* U+001e16: LATIN CAPITAL LETTER E WITH MACRON AND ACUTE*/ - 0x1e17, /* U+001e17: LATIN SMALL LETTER E WITH MACRON AND ACUTE*/ - 0x1e19, /* U+001e18: LATIN CAPITAL LETTER E WITH CIRCUMFLEX BELOW*/ - 0x1e19, /* U+001e19: LATIN SMALL LETTER E WITH CIRCUMFLEX BELOW*/ - 0x1e1b, /* U+001e1a: LATIN CAPITAL LETTER E WITH TILDE BELOW*/ - 0x1e1b, /* U+001e1b: LATIN SMALL LETTER E WITH TILDE BELOW*/ - 0x1e1d, /* U+001e1c: LATIN CAPITAL LETTER E WITH CEDILLA AND BREVE*/ - 0x1e1d, /* U+001e1d: LATIN SMALL LETTER E WITH CEDILLA AND BREVE*/ - 0x1e1f, /* U+001e1e: LATIN CAPITAL LETTER F WITH DOT ABOVE*/ - 0x1e1f, /* U+001e1f: LATIN SMALL LETTER F WITH DOT ABOVE*/ - 0x1e21, /* U+001e20: LATIN CAPITAL LETTER G WITH MACRON*/ - 0x1e21, /* U+001e21: LATIN SMALL LETTER G WITH MACRON*/ - 0x1e23, /* U+001e22: LATIN CAPITAL LETTER H WITH DOT ABOVE*/ - 0x1e23, /* U+001e23: LATIN SMALL LETTER H WITH DOT ABOVE*/ - 0x1e25, /* U+001e24: LATIN CAPITAL LETTER H WITH DOT BELOW*/ - 0x1e25, /* U+001e25: LATIN SMALL LETTER H WITH DOT BELOW*/ - 0x1e27, /* U+001e26: LATIN CAPITAL LETTER H WITH DIAERESIS*/ - 0x1e27, /* U+001e27: LATIN SMALL LETTER H WITH DIAERESIS*/ - 0x1e29, /* U+001e28: LATIN CAPITAL LETTER H WITH CEDILLA*/ - 0x1e29, /* U+001e29: LATIN SMALL LETTER H WITH CEDILLA*/ - 0x1e2b, /* U+001e2a: LATIN CAPITAL LETTER H WITH BREVE BELOW*/ - 0x1e2b, /* U+001e2b: LATIN SMALL LETTER H WITH BREVE BELOW*/ - 0x1e2d, /* U+001e2c: LATIN CAPITAL LETTER I WITH TILDE BELOW*/ - 0x1e2d, /* U+001e2d: LATIN SMALL LETTER I WITH TILDE BELOW*/ - 0x1e2f, /* U+001e2e: LATIN CAPITAL LETTER I WITH DIAERESIS AND ACUTE*/ - 0x1e2f, /* U+001e2f: LATIN SMALL LETTER I WITH DIAERESIS AND ACUTE*/ - 0x1e31, /* U+001e30: LATIN CAPITAL LETTER K WITH ACUTE*/ - 0x1e31, /* U+001e31: LATIN SMALL LETTER K WITH ACUTE*/ - 0x1e33, /* U+001e32: LATIN CAPITAL LETTER K WITH DOT BELOW*/ - 0x1e33, /* U+001e33: LATIN SMALL LETTER K WITH DOT BELOW*/ - 0x1e35, /* U+001e34: LATIN CAPITAL LETTER K WITH LINE BELOW*/ - 0x1e35, /* U+001e35: LATIN SMALL LETTER K WITH LINE BELOW*/ - 0x1e37, /* U+001e36: LATIN CAPITAL LETTER L WITH DOT BELOW*/ - 0x1e37, /* U+001e37: LATIN SMALL LETTER L WITH DOT BELOW*/ - 0x1e39, /* U+001e38: LATIN CAPITAL LETTER L WITH DOT BELOW AND MACRON*/ - 0x1e39, /* U+001e39: LATIN SMALL LETTER L WITH DOT BELOW AND MACRON*/ - 0x1e3b, /* U+001e3a: LATIN CAPITAL LETTER L WITH LINE BELOW*/ - 0x1e3b, /* U+001e3b: LATIN SMALL LETTER L WITH LINE BELOW*/ - 0x1e3d, /* U+001e3c: LATIN CAPITAL LETTER L WITH CIRCUMFLEX BELOW*/ - 0x1e3d, /* U+001e3d: LATIN SMALL LETTER L WITH CIRCUMFLEX BELOW*/ - 0x1e3f, /* U+001e3e: LATIN CAPITAL LETTER M WITH ACUTE*/ - 0x1e3f, /* U+001e3f: LATIN SMALL LETTER M WITH ACUTE*/ - 0x1e41, /* U+001e40: LATIN CAPITAL LETTER M WITH DOT ABOVE*/ - 0x1e41, /* U+001e41: LATIN SMALL LETTER M WITH DOT ABOVE*/ - 0x1e43, /* U+001e42: LATIN CAPITAL LETTER M WITH DOT BELOW*/ - 0x1e43, /* U+001e43: LATIN SMALL LETTER M WITH DOT BELOW*/ - 0x1e45, /* U+001e44: LATIN CAPITAL LETTER N WITH DOT ABOVE*/ - 0x1e45, /* U+001e45: LATIN SMALL LETTER N WITH DOT ABOVE*/ - 0x1e47, /* U+001e46: LATIN CAPITAL LETTER N WITH DOT BELOW*/ - 0x1e47, /* U+001e47: LATIN SMALL LETTER N WITH DOT BELOW*/ - 0x1e49, /* U+001e48: LATIN CAPITAL LETTER N WITH LINE BELOW*/ - 0x1e49, /* U+001e49: LATIN SMALL LETTER N WITH LINE BELOW*/ - 0x1e4b, /* U+001e4a: LATIN CAPITAL LETTER N WITH CIRCUMFLEX BELOW*/ - 0x1e4b, /* U+001e4b: LATIN SMALL LETTER N WITH CIRCUMFLEX BELOW*/ - 0x1e4d, /* U+001e4c: LATIN CAPITAL LETTER O WITH TILDE AND ACUTE*/ - 0x1e4d, /* U+001e4d: LATIN SMALL LETTER O WITH TILDE AND ACUTE*/ - 0x1e4f, /* U+001e4e: LATIN CAPITAL LETTER O WITH TILDE AND DIAERESIS*/ - 0x1e4f, /* U+001e4f: LATIN SMALL LETTER O WITH TILDE AND DIAERESIS*/ - 0x1e51, /* U+001e50: LATIN CAPITAL LETTER O WITH MACRON AND GRAVE*/ - 0x1e51, /* U+001e51: LATIN SMALL LETTER O WITH MACRON AND GRAVE*/ - 0x1e53, /* U+001e52: LATIN CAPITAL LETTER O WITH MACRON AND ACUTE*/ - 0x1e53, /* U+001e53: LATIN SMALL LETTER O WITH MACRON AND ACUTE*/ - 0x1e55, /* U+001e54: LATIN CAPITAL LETTER P WITH ACUTE*/ - 0x1e55, /* U+001e55: LATIN SMALL LETTER P WITH ACUTE*/ - 0x1e57, /* U+001e56: LATIN CAPITAL LETTER P WITH DOT ABOVE*/ - 0x1e57, /* U+001e57: LATIN SMALL LETTER P WITH DOT ABOVE*/ - 0x1e59, /* U+001e58: LATIN CAPITAL LETTER R WITH DOT ABOVE*/ - 0x1e59, /* U+001e59: LATIN SMALL LETTER R WITH DOT ABOVE*/ - 0x1e5b, /* U+001e5a: LATIN CAPITAL LETTER R WITH DOT BELOW*/ - 0x1e5b, /* U+001e5b: LATIN SMALL LETTER R WITH DOT BELOW*/ - 0x1e5d, /* U+001e5c: LATIN CAPITAL LETTER R WITH DOT BELOW AND MACRON*/ - 0x1e5d, /* U+001e5d: LATIN SMALL LETTER R WITH DOT BELOW AND MACRON*/ - 0x1e5f, /* U+001e5e: LATIN CAPITAL LETTER R WITH LINE BELOW*/ - 0x1e5f, /* U+001e5f: LATIN SMALL LETTER R WITH LINE BELOW*/ - 0x1e61, /* U+001e60: LATIN CAPITAL LETTER S WITH DOT ABOVE*/ - 0x1e61, /* U+001e61: LATIN SMALL LETTER S WITH DOT ABOVE*/ - 0x1e63, /* U+001e62: LATIN CAPITAL LETTER S WITH DOT BELOW*/ - 0x1e63, /* U+001e63: LATIN SMALL LETTER S WITH DOT BELOW*/ - 0x1e65, /* U+001e64: LATIN CAPITAL LETTER S WITH ACUTE AND DOT ABOVE*/ - 0x1e65, /* U+001e65: LATIN SMALL LETTER S WITH ACUTE AND DOT ABOVE*/ - 0x1e67, /* U+001e66: LATIN CAPITAL LETTER S WITH CARON AND DOT ABOVE*/ - 0x1e67, /* U+001e67: LATIN SMALL LETTER S WITH CARON AND DOT ABOVE*/ - 0x1e69, /* U+001e68: LATIN CAPITAL LETTER S WITH DOT BELOW AND DOT ABOVE*/ - 0x1e69, /* U+001e69: LATIN SMALL LETTER S WITH DOT BELOW AND DOT ABOVE*/ - 0x1e6b, /* U+001e6a: LATIN CAPITAL LETTER T WITH DOT ABOVE*/ - 0x1e6b, /* U+001e6b: LATIN SMALL LETTER T WITH DOT ABOVE*/ - 0x1e6d, /* U+001e6c: LATIN CAPITAL LETTER T WITH DOT BELOW*/ - 0x1e6d, /* U+001e6d: LATIN SMALL LETTER T WITH DOT BELOW*/ - 0x1e6f, /* U+001e6e: LATIN CAPITAL LETTER T WITH LINE BELOW*/ - 0x1e6f, /* U+001e6f: LATIN SMALL LETTER T WITH LINE BELOW*/ - 0x1e71, /* U+001e70: LATIN CAPITAL LETTER T WITH CIRCUMFLEX BELOW*/ - 0x1e71, /* U+001e71: LATIN SMALL LETTER T WITH CIRCUMFLEX BELOW*/ - 0x1e73, /* U+001e72: LATIN CAPITAL LETTER U WITH DIAERESIS BELOW*/ - 0x1e73, /* U+001e73: LATIN SMALL LETTER U WITH DIAERESIS BELOW*/ - 0x1e75, /* U+001e74: LATIN CAPITAL LETTER U WITH TILDE BELOW*/ - 0x1e75, /* U+001e75: LATIN SMALL LETTER U WITH TILDE BELOW*/ - 0x1e77, /* U+001e76: LATIN CAPITAL LETTER U WITH CIRCUMFLEX BELOW*/ - 0x1e77, /* U+001e77: LATIN SMALL LETTER U WITH CIRCUMFLEX BELOW*/ - 0x1e79, /* U+001e78: LATIN CAPITAL LETTER U WITH TILDE AND ACUTE*/ - 0x1e79, /* U+001e79: LATIN SMALL LETTER U WITH TILDE AND ACUTE*/ - 0x1e7b, /* U+001e7a: LATIN CAPITAL LETTER U WITH MACRON AND DIAERESIS*/ - 0x1e7b, /* U+001e7b: LATIN SMALL LETTER U WITH MACRON AND DIAERESIS*/ - 0x1e7d, /* U+001e7c: LATIN CAPITAL LETTER V WITH TILDE*/ - 0x1e7d, /* U+001e7d: LATIN SMALL LETTER V WITH TILDE*/ - 0x1e7f, /* U+001e7e: LATIN CAPITAL LETTER V WITH DOT BELOW*/ - 0x1e7f, /* U+001e7f: LATIN SMALL LETTER V WITH DOT BELOW*/ - 0x1e81, /* U+001e80: LATIN CAPITAL LETTER W WITH GRAVE*/ - 0x1e81, /* U+001e81: LATIN SMALL LETTER W WITH GRAVE*/ - 0x1e83, /* U+001e82: LATIN CAPITAL LETTER W WITH ACUTE*/ - 0x1e83, /* U+001e83: LATIN SMALL LETTER W WITH ACUTE*/ - 0x1e85, /* U+001e84: LATIN CAPITAL LETTER W WITH DIAERESIS*/ - 0x1e85, /* U+001e85: LATIN SMALL LETTER W WITH DIAERESIS*/ - 0x1e87, /* U+001e86: LATIN CAPITAL LETTER W WITH DOT ABOVE*/ - 0x1e87, /* U+001e87: LATIN SMALL LETTER W WITH DOT ABOVE*/ - 0x1e89, /* U+001e88: LATIN CAPITAL LETTER W WITH DOT BELOW*/ - 0x1e89, /* U+001e89: LATIN SMALL LETTER W WITH DOT BELOW*/ - 0x1e8b, /* U+001e8a: LATIN CAPITAL LETTER X WITH DOT ABOVE*/ - 0x1e8b, /* U+001e8b: LATIN SMALL LETTER X WITH DOT ABOVE*/ - 0x1e8d, /* U+001e8c: LATIN CAPITAL LETTER X WITH DIAERESIS*/ - 0x1e8d, /* U+001e8d: LATIN SMALL LETTER X WITH DIAERESIS*/ - 0x1e8f, /* U+001e8e: LATIN CAPITAL LETTER Y WITH DOT ABOVE*/ - 0x1e8f, /* U+001e8f: LATIN SMALL LETTER Y WITH DOT ABOVE*/ - 0x1e91, /* U+001e90: LATIN CAPITAL LETTER Z WITH CIRCUMFLEX*/ - 0x1e91, /* U+001e91: LATIN SMALL LETTER Z WITH CIRCUMFLEX*/ - 0x1e93, /* U+001e92: LATIN CAPITAL LETTER Z WITH DOT BELOW*/ - 0x1e93, /* U+001e93: LATIN SMALL LETTER Z WITH DOT BELOW*/ - 0x1e95, /* U+001e94: LATIN CAPITAL LETTER Z WITH LINE BELOW*/ - 0x1e95, /* U+001e95: LATIN SMALL LETTER Z WITH LINE BELOW*/ - 0x1e96, /* U+001e96: LATIN SMALL LETTER H WITH LINE BELOW*/ - 0x1e97, /* U+001e97: LATIN SMALL LETTER T WITH DIAERESIS*/ - 0x1e98, /* U+001e98: LATIN SMALL LETTER W WITH RING ABOVE*/ - 0x1e99, /* U+001e99: LATIN SMALL LETTER Y WITH RING ABOVE*/ - 0x1e9a, /* U+001e9a: LATIN SMALL LETTER A WITH RIGHT HALF RING*/ - 0x1e9b, /* U+001e9b: LATIN SMALL LETTER LONG S WITH DOT ABOVE*/ - 0x1e9c, /* U+001e9c: */ - 0x1e9d, /* U+001e9d: */ - 0x1e9e, /* U+001e9e: */ - 0x1e9f, /* U+001e9f: */ - 0x1ea1, /* U+001ea0: LATIN CAPITAL LETTER A WITH DOT BELOW*/ - 0x1ea1, /* U+001ea1: LATIN SMALL LETTER A WITH DOT BELOW*/ - 0x1ea3, /* U+001ea2: LATIN CAPITAL LETTER A WITH HOOK ABOVE*/ - 0x1ea3, /* U+001ea3: LATIN SMALL LETTER A WITH HOOK ABOVE*/ - 0x1ea5, /* U+001ea4: LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND ACUTE*/ - 0x1ea5, /* U+001ea5: LATIN SMALL LETTER A WITH CIRCUMFLEX AND ACUTE*/ - 0x1ea7, /* U+001ea6: LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND GRAVE*/ - 0x1ea7, /* U+001ea7: LATIN SMALL LETTER A WITH CIRCUMFLEX AND GRAVE*/ - 0x1ea9, /* U+001ea8: LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND HOOK ABOVE*/ - 0x1ea9, /* U+001ea9: LATIN SMALL LETTER A WITH CIRCUMFLEX AND HOOK ABOVE*/ - 0x1eab, /* U+001eaa: LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND TILDE*/ - 0x1eab, /* U+001eab: LATIN SMALL LETTER A WITH CIRCUMFLEX AND TILDE*/ - 0x1ead, /* U+001eac: LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND DOT BELOW*/ - 0x1ead, /* U+001ead: LATIN SMALL LETTER A WITH CIRCUMFLEX AND DOT BELOW*/ - 0x1eaf, /* U+001eae: LATIN CAPITAL LETTER A WITH BREVE AND ACUTE*/ - 0x1eaf, /* U+001eaf: LATIN SMALL LETTER A WITH BREVE AND ACUTE*/ - 0x1eb1, /* U+001eb0: LATIN CAPITAL LETTER A WITH BREVE AND GRAVE*/ - 0x1eb1, /* U+001eb1: LATIN SMALL LETTER A WITH BREVE AND GRAVE*/ - 0x1eb3, /* U+001eb2: LATIN CAPITAL LETTER A WITH BREVE AND HOOK ABOVE*/ - 0x1eb3, /* U+001eb3: LATIN SMALL LETTER A WITH BREVE AND HOOK ABOVE*/ - 0x1eb5, /* U+001eb4: LATIN CAPITAL LETTER A WITH BREVE AND TILDE*/ - 0x1eb5, /* U+001eb5: LATIN SMALL LETTER A WITH BREVE AND TILDE*/ - 0x1eb7, /* U+001eb6: LATIN CAPITAL LETTER A WITH BREVE AND DOT BELOW*/ - 0x1eb7, /* U+001eb7: LATIN SMALL LETTER A WITH BREVE AND DOT BELOW*/ - 0x1eb9, /* U+001eb8: LATIN CAPITAL LETTER E WITH DOT BELOW*/ - 0x1eb9, /* U+001eb9: LATIN SMALL LETTER E WITH DOT BELOW*/ - 0x1ebb, /* U+001eba: LATIN CAPITAL LETTER E WITH HOOK ABOVE*/ - 0x1ebb, /* U+001ebb: LATIN SMALL LETTER E WITH HOOK ABOVE*/ - 0x1ebd, /* U+001ebc: LATIN CAPITAL LETTER E WITH TILDE*/ - 0x1ebd, /* U+001ebd: LATIN SMALL LETTER E WITH TILDE*/ - 0x1ebf, /* U+001ebe: LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND ACUTE*/ - 0x1ebf, /* U+001ebf: LATIN SMALL LETTER E WITH CIRCUMFLEX AND ACUTE*/ - 0x1ec1, /* U+001ec0: LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND GRAVE*/ - 0x1ec1, /* U+001ec1: LATIN SMALL LETTER E WITH CIRCUMFLEX AND GRAVE*/ - 0x1ec3, /* U+001ec2: LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND HOOK ABOVE*/ - 0x1ec3, /* U+001ec3: LATIN SMALL LETTER E WITH CIRCUMFLEX AND HOOK ABOVE*/ - 0x1ec5, /* U+001ec4: LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND TILDE*/ - 0x1ec5, /* U+001ec5: LATIN SMALL LETTER E WITH CIRCUMFLEX AND TILDE*/ - 0x1ec7, /* U+001ec6: LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND DOT BELOW*/ - 0x1ec7, /* U+001ec7: LATIN SMALL LETTER E WITH CIRCUMFLEX AND DOT BELOW*/ - 0x1ec9, /* U+001ec8: LATIN CAPITAL LETTER I WITH HOOK ABOVE*/ - 0x1ec9, /* U+001ec9: LATIN SMALL LETTER I WITH HOOK ABOVE*/ - 0x1ecb, /* U+001eca: LATIN CAPITAL LETTER I WITH DOT BELOW*/ - 0x1ecb, /* U+001ecb: LATIN SMALL LETTER I WITH DOT BELOW*/ - 0x1ecd, /* U+001ecc: LATIN CAPITAL LETTER O WITH DOT BELOW*/ - 0x1ecd, /* U+001ecd: LATIN SMALL LETTER O WITH DOT BELOW*/ - 0x1ecf, /* U+001ece: LATIN CAPITAL LETTER O WITH HOOK ABOVE*/ - 0x1ecf, /* U+001ecf: LATIN SMALL LETTER O WITH HOOK ABOVE*/ - 0x1ed1, /* U+001ed0: LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND ACUTE*/ - 0x1ed1, /* U+001ed1: LATIN SMALL LETTER O WITH CIRCUMFLEX AND ACUTE*/ - 0x1ed3, /* U+001ed2: LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND GRAVE*/ - 0x1ed3, /* U+001ed3: LATIN SMALL LETTER O WITH CIRCUMFLEX AND GRAVE*/ - 0x1ed5, /* U+001ed4: LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND HOOK ABOVE*/ - 0x1ed5, /* U+001ed5: LATIN SMALL LETTER O WITH CIRCUMFLEX AND HOOK ABOVE*/ - 0x1ed7, /* U+001ed6: LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND TILDE*/ - 0x1ed7, /* U+001ed7: LATIN SMALL LETTER O WITH CIRCUMFLEX AND TILDE*/ - 0x1ed9, /* U+001ed8: LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND DOT BELOW*/ - 0x1ed9, /* U+001ed9: LATIN SMALL LETTER O WITH CIRCUMFLEX AND DOT BELOW*/ - 0x1edb, /* U+001eda: LATIN CAPITAL LETTER O WITH HORN AND ACUTE*/ - 0x1edb, /* U+001edb: LATIN SMALL LETTER O WITH HORN AND ACUTE*/ - 0x1edd, /* U+001edc: LATIN CAPITAL LETTER O WITH HORN AND GRAVE*/ - 0x1edd, /* U+001edd: LATIN SMALL LETTER O WITH HORN AND GRAVE*/ - 0x1edf, /* U+001ede: LATIN CAPITAL LETTER O WITH HORN AND HOOK ABOVE*/ - 0x1edf, /* U+001edf: LATIN SMALL LETTER O WITH HORN AND HOOK ABOVE*/ - 0x1ee1, /* U+001ee0: LATIN CAPITAL LETTER O WITH HORN AND TILDE*/ - 0x1ee1, /* U+001ee1: LATIN SMALL LETTER O WITH HORN AND TILDE*/ - 0x1ee3, /* U+001ee2: LATIN CAPITAL LETTER O WITH HORN AND DOT BELOW*/ - 0x1ee3, /* U+001ee3: LATIN SMALL LETTER O WITH HORN AND DOT BELOW*/ - 0x1ee5, /* U+001ee4: LATIN CAPITAL LETTER U WITH DOT BELOW*/ - 0x1ee5, /* U+001ee5: LATIN SMALL LETTER U WITH DOT BELOW*/ - 0x1ee7, /* U+001ee6: LATIN CAPITAL LETTER U WITH HOOK ABOVE*/ - 0x1ee7, /* U+001ee7: LATIN SMALL LETTER U WITH HOOK ABOVE*/ - 0x1ee9, /* U+001ee8: LATIN CAPITAL LETTER U WITH HORN AND ACUTE*/ - 0x1ee9, /* U+001ee9: LATIN SMALL LETTER U WITH HORN AND ACUTE*/ - 0x1eeb, /* U+001eea: LATIN CAPITAL LETTER U WITH HORN AND GRAVE*/ - 0x1eeb, /* U+001eeb: LATIN SMALL LETTER U WITH HORN AND GRAVE*/ - 0x1eed, /* U+001eec: LATIN CAPITAL LETTER U WITH HORN AND HOOK ABOVE*/ - 0x1eed, /* U+001eed: LATIN SMALL LETTER U WITH HORN AND HOOK ABOVE*/ - 0x1eef, /* U+001eee: LATIN CAPITAL LETTER U WITH HORN AND TILDE*/ - 0x1eef, /* U+001eef: LATIN SMALL LETTER U WITH HORN AND TILDE*/ - 0x1ef1, /* U+001ef0: LATIN CAPITAL LETTER U WITH HORN AND DOT BELOW*/ - 0x1ef1, /* U+001ef1: LATIN SMALL LETTER U WITH HORN AND DOT BELOW*/ - 0x1ef3, /* U+001ef2: LATIN CAPITAL LETTER Y WITH GRAVE*/ - 0x1ef3, /* U+001ef3: LATIN SMALL LETTER Y WITH GRAVE*/ - 0x1ef5, /* U+001ef4: LATIN CAPITAL LETTER Y WITH DOT BELOW*/ - 0x1ef5, /* U+001ef5: LATIN SMALL LETTER Y WITH DOT BELOW*/ - 0x1ef7, /* U+001ef6: LATIN CAPITAL LETTER Y WITH HOOK ABOVE*/ - 0x1ef7, /* U+001ef7: LATIN SMALL LETTER Y WITH HOOK ABOVE*/ - 0x1ef9, /* U+001ef8: LATIN CAPITAL LETTER Y WITH TILDE*/ - 0x1ef9, /* U+001ef9: LATIN SMALL LETTER Y WITH TILDE*/ - 0x1efa, /* U+001efa: */ - 0x1efb, /* U+001efb: */ - 0x1efc, /* U+001efc: */ - 0x1efd, /* U+001efd: */ - 0x1efe, /* U+001efe: */ - 0x1eff, /* U+001eff: */ - 0x1f00, /* U+001f00: GREEK SMALL LETTER ALPHA WITH PSILI*/ - 0x1f01, /* U+001f01: GREEK SMALL LETTER ALPHA WITH DASIA*/ - 0x1f02, /* U+001f02: GREEK SMALL LETTER ALPHA WITH PSILI AND VARIA*/ - 0x1f03, /* U+001f03: GREEK SMALL LETTER ALPHA WITH DASIA AND VARIA*/ - 0x1f04, /* U+001f04: GREEK SMALL LETTER ALPHA WITH PSILI AND OXIA*/ - 0x1f05, /* U+001f05: GREEK SMALL LETTER ALPHA WITH DASIA AND OXIA*/ - 0x1f06, /* U+001f06: GREEK SMALL LETTER ALPHA WITH PSILI AND PERISPOMENI*/ - 0x1f07, /* U+001f07: GREEK SMALL LETTER ALPHA WITH DASIA AND PERISPOMENI*/ - 0x1f00, /* U+001f08: GREEK CAPITAL LETTER ALPHA WITH PSILI*/ - 0x1f01, /* U+001f09: GREEK CAPITAL LETTER ALPHA WITH DASIA*/ - 0x1f02, /* U+001f0a: GREEK CAPITAL LETTER ALPHA WITH PSILI AND VARIA*/ - 0x1f03, /* U+001f0b: GREEK CAPITAL LETTER ALPHA WITH DASIA AND VARIA*/ - 0x1f04, /* U+001f0c: GREEK CAPITAL LETTER ALPHA WITH PSILI AND OXIA*/ - 0x1f05, /* U+001f0d: GREEK CAPITAL LETTER ALPHA WITH DASIA AND OXIA*/ - 0x1f06, /* U+001f0e: GREEK CAPITAL LETTER ALPHA WITH PSILI AND PERISPOMENI*/ - 0x1f07, /* U+001f0f: GREEK CAPITAL LETTER ALPHA WITH DASIA AND PERISPOMENI*/ - 0x1f10, /* U+001f10: GREEK SMALL LETTER EPSILON WITH PSILI*/ - 0x1f11, /* U+001f11: GREEK SMALL LETTER EPSILON WITH DASIA*/ - 0x1f12, /* U+001f12: GREEK SMALL LETTER EPSILON WITH PSILI AND VARIA*/ - 0x1f13, /* U+001f13: GREEK SMALL LETTER EPSILON WITH DASIA AND VARIA*/ - 0x1f14, /* U+001f14: GREEK SMALL LETTER EPSILON WITH PSILI AND OXIA*/ - 0x1f15, /* U+001f15: GREEK SMALL LETTER EPSILON WITH DASIA AND OXIA*/ - 0x1f16, /* U+001f16: */ - 0x1f17, /* U+001f17: */ - 0x1f10, /* U+001f18: GREEK CAPITAL LETTER EPSILON WITH PSILI*/ - 0x1f11, /* U+001f19: GREEK CAPITAL LETTER EPSILON WITH DASIA*/ - 0x1f12, /* U+001f1a: GREEK CAPITAL LETTER EPSILON WITH PSILI AND VARIA*/ - 0x1f13, /* U+001f1b: GREEK CAPITAL LETTER EPSILON WITH DASIA AND VARIA*/ - 0x1f14, /* U+001f1c: GREEK CAPITAL LETTER EPSILON WITH PSILI AND OXIA*/ - 0x1f15, /* U+001f1d: GREEK CAPITAL LETTER EPSILON WITH DASIA AND OXIA*/ - 0x1f1e, /* U+001f1e: */ - 0x1f1f, /* U+001f1f: */ - 0x1f20, /* U+001f20: GREEK SMALL LETTER ETA WITH PSILI*/ - 0x1f21, /* U+001f21: GREEK SMALL LETTER ETA WITH DASIA*/ - 0x1f22, /* U+001f22: GREEK SMALL LETTER ETA WITH PSILI AND VARIA*/ - 0x1f23, /* U+001f23: GREEK SMALL LETTER ETA WITH DASIA AND VARIA*/ - 0x1f24, /* U+001f24: GREEK SMALL LETTER ETA WITH PSILI AND OXIA*/ - 0x1f25, /* U+001f25: GREEK SMALL LETTER ETA WITH DASIA AND OXIA*/ - 0x1f26, /* U+001f26: GREEK SMALL LETTER ETA WITH PSILI AND PERISPOMENI*/ - 0x1f27, /* U+001f27: GREEK SMALL LETTER ETA WITH DASIA AND PERISPOMENI*/ - 0x1f20, /* U+001f28: GREEK CAPITAL LETTER ETA WITH PSILI*/ - 0x1f21, /* U+001f29: GREEK CAPITAL LETTER ETA WITH DASIA*/ - 0x1f22, /* U+001f2a: GREEK CAPITAL LETTER ETA WITH PSILI AND VARIA*/ - 0x1f23, /* U+001f2b: GREEK CAPITAL LETTER ETA WITH DASIA AND VARIA*/ - 0x1f24, /* U+001f2c: GREEK CAPITAL LETTER ETA WITH PSILI AND OXIA*/ - 0x1f25, /* U+001f2d: GREEK CAPITAL LETTER ETA WITH DASIA AND OXIA*/ - 0x1f26, /* U+001f2e: GREEK CAPITAL LETTER ETA WITH PSILI AND PERISPOMENI*/ - 0x1f27, /* U+001f2f: GREEK CAPITAL LETTER ETA WITH DASIA AND PERISPOMENI*/ - 0x1f30, /* U+001f30: GREEK SMALL LETTER IOTA WITH PSILI*/ - 0x1f31, /* U+001f31: GREEK SMALL LETTER IOTA WITH DASIA*/ - 0x1f32, /* U+001f32: GREEK SMALL LETTER IOTA WITH PSILI AND VARIA*/ - 0x1f33, /* U+001f33: GREEK SMALL LETTER IOTA WITH DASIA AND VARIA*/ - 0x1f34, /* U+001f34: GREEK SMALL LETTER IOTA WITH PSILI AND OXIA*/ - 0x1f35, /* U+001f35: GREEK SMALL LETTER IOTA WITH DASIA AND OXIA*/ - 0x1f36, /* U+001f36: GREEK SMALL LETTER IOTA WITH PSILI AND PERISPOMENI*/ - 0x1f37, /* U+001f37: GREEK SMALL LETTER IOTA WITH DASIA AND PERISPOMENI*/ - 0x1f30, /* U+001f38: GREEK CAPITAL LETTER IOTA WITH PSILI*/ - 0x1f31, /* U+001f39: GREEK CAPITAL LETTER IOTA WITH DASIA*/ - 0x1f32, /* U+001f3a: GREEK CAPITAL LETTER IOTA WITH PSILI AND VARIA*/ - 0x1f33, /* U+001f3b: GREEK CAPITAL LETTER IOTA WITH DASIA AND VARIA*/ - 0x1f34, /* U+001f3c: GREEK CAPITAL LETTER IOTA WITH PSILI AND OXIA*/ - 0x1f35, /* U+001f3d: GREEK CAPITAL LETTER IOTA WITH DASIA AND OXIA*/ - 0x1f36, /* U+001f3e: GREEK CAPITAL LETTER IOTA WITH PSILI AND PERISPOMENI*/ - 0x1f37, /* U+001f3f: GREEK CAPITAL LETTER IOTA WITH DASIA AND PERISPOMENI*/ - 0x1f40, /* U+001f40: GREEK SMALL LETTER OMICRON WITH PSILI*/ - 0x1f41, /* U+001f41: GREEK SMALL LETTER OMICRON WITH DASIA*/ - 0x1f42, /* U+001f42: GREEK SMALL LETTER OMICRON WITH PSILI AND VARIA*/ - 0x1f43, /* U+001f43: GREEK SMALL LETTER OMICRON WITH DASIA AND VARIA*/ - 0x1f44, /* U+001f44: GREEK SMALL LETTER OMICRON WITH PSILI AND OXIA*/ - 0x1f45, /* U+001f45: GREEK SMALL LETTER OMICRON WITH DASIA AND OXIA*/ - 0x1f46, /* U+001f46: */ - 0x1f47, /* U+001f47: */ - 0x1f40, /* U+001f48: GREEK CAPITAL LETTER OMICRON WITH PSILI*/ - 0x1f41, /* U+001f49: GREEK CAPITAL LETTER OMICRON WITH DASIA*/ - 0x1f42, /* U+001f4a: GREEK CAPITAL LETTER OMICRON WITH PSILI AND VARIA*/ - 0x1f43, /* U+001f4b: GREEK CAPITAL LETTER OMICRON WITH DASIA AND VARIA*/ - 0x1f44, /* U+001f4c: GREEK CAPITAL LETTER OMICRON WITH PSILI AND OXIA*/ - 0x1f45, /* U+001f4d: GREEK CAPITAL LETTER OMICRON WITH DASIA AND OXIA*/ - 0x1f4e, /* U+001f4e: */ - 0x1f4f, /* U+001f4f: */ - 0x1f50, /* U+001f50: GREEK SMALL LETTER UPSILON WITH PSILI*/ - 0x1f51, /* U+001f51: GREEK SMALL LETTER UPSILON WITH DASIA*/ - 0x1f52, /* U+001f52: GREEK SMALL LETTER UPSILON WITH PSILI AND VARIA*/ - 0x1f53, /* U+001f53: GREEK SMALL LETTER UPSILON WITH DASIA AND VARIA*/ - 0x1f54, /* U+001f54: GREEK SMALL LETTER UPSILON WITH PSILI AND OXIA*/ - 0x1f55, /* U+001f55: GREEK SMALL LETTER UPSILON WITH DASIA AND OXIA*/ - 0x1f56, /* U+001f56: GREEK SMALL LETTER UPSILON WITH PSILI AND PERISPOMENI*/ - 0x1f57, /* U+001f57: GREEK SMALL LETTER UPSILON WITH DASIA AND PERISPOMENI*/ - 0x1f58, /* U+001f58: */ - 0x1f51, /* U+001f59: GREEK CAPITAL LETTER UPSILON WITH DASIA*/ - 0x1f5a, /* U+001f5a: */ - 0x1f53, /* U+001f5b: GREEK CAPITAL LETTER UPSILON WITH DASIA AND VARIA*/ - 0x1f5c, /* U+001f5c: */ - 0x1f55, /* U+001f5d: GREEK CAPITAL LETTER UPSILON WITH DASIA AND OXIA*/ - 0x1f5e, /* U+001f5e: */ - 0x1f57, /* U+001f5f: GREEK CAPITAL LETTER UPSILON WITH DASIA AND PERISPOMENI*/ - 0x1f60, /* U+001f60: GREEK SMALL LETTER OMEGA WITH PSILI*/ - 0x1f61, /* U+001f61: GREEK SMALL LETTER OMEGA WITH DASIA*/ - 0x1f62, /* U+001f62: GREEK SMALL LETTER OMEGA WITH PSILI AND VARIA*/ - 0x1f63, /* U+001f63: GREEK SMALL LETTER OMEGA WITH DASIA AND VARIA*/ - 0x1f64, /* U+001f64: GREEK SMALL LETTER OMEGA WITH PSILI AND OXIA*/ - 0x1f65, /* U+001f65: GREEK SMALL LETTER OMEGA WITH DASIA AND OXIA*/ - 0x1f66, /* U+001f66: GREEK SMALL LETTER OMEGA WITH PSILI AND PERISPOMENI*/ - 0x1f67, /* U+001f67: GREEK SMALL LETTER OMEGA WITH DASIA AND PERISPOMENI*/ - 0x1f60, /* U+001f68: GREEK CAPITAL LETTER OMEGA WITH PSILI*/ - 0x1f61, /* U+001f69: GREEK CAPITAL LETTER OMEGA WITH DASIA*/ - 0x1f62, /* U+001f6a: GREEK CAPITAL LETTER OMEGA WITH PSILI AND VARIA*/ - 0x1f63, /* U+001f6b: GREEK CAPITAL LETTER OMEGA WITH DASIA AND VARIA*/ - 0x1f64, /* U+001f6c: GREEK CAPITAL LETTER OMEGA WITH PSILI AND OXIA*/ - 0x1f65, /* U+001f6d: GREEK CAPITAL LETTER OMEGA WITH DASIA AND OXIA*/ - 0x1f66, /* U+001f6e: GREEK CAPITAL LETTER OMEGA WITH PSILI AND PERISPOMENI*/ - 0x1f67, /* U+001f6f: GREEK CAPITAL LETTER OMEGA WITH DASIA AND PERISPOMENI*/ - 0x1f70, /* U+001f70: GREEK SMALL LETTER ALPHA WITH VARIA*/ - 0x1f71, /* U+001f71: GREEK SMALL LETTER ALPHA WITH OXIA*/ - 0x1f72, /* U+001f72: GREEK SMALL LETTER EPSILON WITH VARIA*/ - 0x1f73, /* U+001f73: GREEK SMALL LETTER EPSILON WITH OXIA*/ - 0x1f74, /* U+001f74: GREEK SMALL LETTER ETA WITH VARIA*/ - 0x1f75, /* U+001f75: GREEK SMALL LETTER ETA WITH OXIA*/ - 0x1f76, /* U+001f76: GREEK SMALL LETTER IOTA WITH VARIA*/ - 0x1f77, /* U+001f77: GREEK SMALL LETTER IOTA WITH OXIA*/ - 0x1f78, /* U+001f78: GREEK SMALL LETTER OMICRON WITH VARIA*/ - 0x1f79, /* U+001f79: GREEK SMALL LETTER OMICRON WITH OXIA*/ - 0x1f7a, /* U+001f7a: GREEK SMALL LETTER UPSILON WITH VARIA*/ - 0x1f7b, /* U+001f7b: GREEK SMALL LETTER UPSILON WITH OXIA*/ - 0x1f7c, /* U+001f7c: GREEK SMALL LETTER OMEGA WITH VARIA*/ - 0x1f7d, /* U+001f7d: GREEK SMALL LETTER OMEGA WITH OXIA*/ - 0x1f7e, /* U+001f7e: */ - 0x1f7f, /* U+001f7f: */ - 0x1f80, /* U+001f80: GREEK SMALL LETTER ALPHA WITH PSILI AND YPOGEGRAMMENI*/ - 0x1f81, /* U+001f81: GREEK SMALL LETTER ALPHA WITH DASIA AND YPOGEGRAMMENI*/ - 0x1f82, /* U+001f82: GREEK SMALL LETTER ALPHA WITH PSILI AND VARIA AND YPOGEGRAMMENI*/ - 0x1f83, /* U+001f83: GREEK SMALL LETTER ALPHA WITH DASIA AND VARIA AND YPOGEGRAMMENI*/ - 0x1f84, /* U+001f84: GREEK SMALL LETTER ALPHA WITH PSILI AND OXIA AND YPOGEGRAMMENI*/ - 0x1f85, /* U+001f85: GREEK SMALL LETTER ALPHA WITH DASIA AND OXIA AND YPOGEGRAMMENI*/ - 0x1f86, /* U+001f86: GREEK SMALL LETTER ALPHA WITH PSILI AND PERISPOMENI AND YPOGEGRAMMENI*/ - 0x1f87, /* U+001f87: GREEK SMALL LETTER ALPHA WITH DASIA AND PERISPOMENI AND YPOGEGRAMMENI*/ - 0x1f80, /* U+001f88: GREEK CAPITAL LETTER ALPHA WITH PSILI AND PROSGEGRAMMENI*/ - 0x1f81, /* U+001f89: GREEK CAPITAL LETTER ALPHA WITH DASIA AND PROSGEGRAMMENI*/ - 0x1f82, /* U+001f8a: GREEK CAPITAL LETTER ALPHA WITH PSILI AND VARIA AND PROSGEGRAMMENI*/ - 0x1f83, /* U+001f8b: GREEK CAPITAL LETTER ALPHA WITH DASIA AND VARIA AND PROSGEGRAMMENI*/ - 0x1f84, /* U+001f8c: GREEK CAPITAL LETTER ALPHA WITH PSILI AND OXIA AND PROSGEGRAMMENI*/ - 0x1f85, /* U+001f8d: GREEK CAPITAL LETTER ALPHA WITH DASIA AND OXIA AND PROSGEGRAMMENI*/ - 0x1f86, /* U+001f8e: GREEK CAPITAL LETTER ALPHA WITH PSILI AND PERISPOMENI AND PROSGEGRAMMENI*/ - 0x1f87, /* U+001f8f: GREEK CAPITAL LETTER ALPHA WITH DASIA AND PERISPOMENI AND PROSGEGRAMMENI*/ - 0x1f90, /* U+001f90: GREEK SMALL LETTER ETA WITH PSILI AND YPOGEGRAMMENI*/ - 0x1f91, /* U+001f91: GREEK SMALL LETTER ETA WITH DASIA AND YPOGEGRAMMENI*/ - 0x1f92, /* U+001f92: GREEK SMALL LETTER ETA WITH PSILI AND VARIA AND YPOGEGRAMMENI*/ - 0x1f93, /* U+001f93: GREEK SMALL LETTER ETA WITH DASIA AND VARIA AND YPOGEGRAMMENI*/ - 0x1f94, /* U+001f94: GREEK SMALL LETTER ETA WITH PSILI AND OXIA AND YPOGEGRAMMENI*/ - 0x1f95, /* U+001f95: GREEK SMALL LETTER ETA WITH DASIA AND OXIA AND YPOGEGRAMMENI*/ - 0x1f96, /* U+001f96: GREEK SMALL LETTER ETA WITH PSILI AND PERISPOMENI AND YPOGEGRAMMENI*/ - 0x1f97, /* U+001f97: GREEK SMALL LETTER ETA WITH DASIA AND PERISPOMENI AND YPOGEGRAMMENI*/ - 0x1f90, /* U+001f98: GREEK CAPITAL LETTER ETA WITH PSILI AND PROSGEGRAMMENI*/ - 0x1f91, /* U+001f99: GREEK CAPITAL LETTER ETA WITH DASIA AND PROSGEGRAMMENI*/ - 0x1f92, /* U+001f9a: GREEK CAPITAL LETTER ETA WITH PSILI AND VARIA AND PROSGEGRAMMENI*/ - 0x1f93, /* U+001f9b: GREEK CAPITAL LETTER ETA WITH DASIA AND VARIA AND PROSGEGRAMMENI*/ - 0x1f94, /* U+001f9c: GREEK CAPITAL LETTER ETA WITH PSILI AND OXIA AND PROSGEGRAMMENI*/ - 0x1f95, /* U+001f9d: GREEK CAPITAL LETTER ETA WITH DASIA AND OXIA AND PROSGEGRAMMENI*/ - 0x1f96, /* U+001f9e: GREEK CAPITAL LETTER ETA WITH PSILI AND PERISPOMENI AND PROSGEGRAMMENI*/ - 0x1f97, /* U+001f9f: GREEK CAPITAL LETTER ETA WITH DASIA AND PERISPOMENI AND PROSGEGRAMMENI*/ - 0x1fa0, /* U+001fa0: GREEK SMALL LETTER OMEGA WITH PSILI AND YPOGEGRAMMENI*/ - 0x1fa1, /* U+001fa1: GREEK SMALL LETTER OMEGA WITH DASIA AND YPOGEGRAMMENI*/ - 0x1fa2, /* U+001fa2: GREEK SMALL LETTER OMEGA WITH PSILI AND VARIA AND YPOGEGRAMMENI*/ - 0x1fa3, /* U+001fa3: GREEK SMALL LETTER OMEGA WITH DASIA AND VARIA AND YPOGEGRAMMENI*/ - 0x1fa4, /* U+001fa4: GREEK SMALL LETTER OMEGA WITH PSILI AND OXIA AND YPOGEGRAMMENI*/ - 0x1fa5, /* U+001fa5: GREEK SMALL LETTER OMEGA WITH DASIA AND OXIA AND YPOGEGRAMMENI*/ - 0x1fa6, /* U+001fa6: GREEK SMALL LETTER OMEGA WITH PSILI AND PERISPOMENI AND YPOGEGRAMMENI*/ - 0x1fa7, /* U+001fa7: GREEK SMALL LETTER OMEGA WITH DASIA AND PERISPOMENI AND YPOGEGRAMMENI*/ - 0x1fa0, /* U+001fa8: GREEK CAPITAL LETTER OMEGA WITH PSILI AND PROSGEGRAMMENI*/ - 0x1fa1, /* U+001fa9: GREEK CAPITAL LETTER OMEGA WITH DASIA AND PROSGEGRAMMENI*/ - 0x1fa2, /* U+001faa: GREEK CAPITAL LETTER OMEGA WITH PSILI AND VARIA AND PROSGEGRAMMENI*/ - 0x1fa3, /* U+001fab: GREEK CAPITAL LETTER OMEGA WITH DASIA AND VARIA AND PROSGEGRAMMENI*/ - 0x1fa4, /* U+001fac: GREEK CAPITAL LETTER OMEGA WITH PSILI AND OXIA AND PROSGEGRAMMENI*/ - 0x1fa5, /* U+001fad: GREEK CAPITAL LETTER OMEGA WITH DASIA AND OXIA AND PROSGEGRAMMENI*/ - 0x1fa6, /* U+001fae: GREEK CAPITAL LETTER OMEGA WITH PSILI AND PERISPOMENI AND PROSGEGRAMMENI*/ - 0x1fa7, /* U+001faf: GREEK CAPITAL LETTER OMEGA WITH DASIA AND PERISPOMENI AND PROSGEGRAMMENI*/ - 0x1fb0, /* U+001fb0: GREEK SMALL LETTER ALPHA WITH VRACHY*/ - 0x1fb1, /* U+001fb1: GREEK SMALL LETTER ALPHA WITH MACRON*/ - 0x1fb2, /* U+001fb2: GREEK SMALL LETTER ALPHA WITH VARIA AND YPOGEGRAMMENI*/ - 0x1fb3, /* U+001fb3: GREEK SMALL LETTER ALPHA WITH YPOGEGRAMMENI*/ - 0x1fb4, /* U+001fb4: GREEK SMALL LETTER ALPHA WITH OXIA AND YPOGEGRAMMENI*/ - 0x1fb5, /* U+001fb5: */ - 0x1fb6, /* U+001fb6: GREEK SMALL LETTER ALPHA WITH PERISPOMENI*/ - 0x1fb7, /* U+001fb7: GREEK SMALL LETTER ALPHA WITH PERISPOMENI AND YPOGEGRAMMENI*/ - 0x1fb0, /* U+001fb8: GREEK CAPITAL LETTER ALPHA WITH VRACHY*/ - 0x1fb1, /* U+001fb9: GREEK CAPITAL LETTER ALPHA WITH MACRON*/ - 0x1f70, /* U+001fba: GREEK CAPITAL LETTER ALPHA WITH VARIA*/ - 0x1f71, /* U+001fbb: GREEK CAPITAL LETTER ALPHA WITH OXIA*/ - 0x1fb3, /* U+001fbc: GREEK CAPITAL LETTER ALPHA WITH PROSGEGRAMMENI*/ - 0x1fbd, /* U+001fbd: GREEK KORONIS*/ - 0x1fbe, /* U+001fbe: GREEK PROSGEGRAMMENI*/ - 0x1fbf, /* U+001fbf: GREEK PSILI*/ - 0x1fc0, /* U+001fc0: GREEK PERISPOMENI*/ - 0x1fc1, /* U+001fc1: GREEK DIALYTIKA AND PERISPOMENI*/ - 0x1fc2, /* U+001fc2: GREEK SMALL LETTER ETA WITH VARIA AND YPOGEGRAMMENI*/ - 0x1fc3, /* U+001fc3: GREEK SMALL LETTER ETA WITH YPOGEGRAMMENI*/ - 0x1fc4, /* U+001fc4: GREEK SMALL LETTER ETA WITH OXIA AND YPOGEGRAMMENI*/ - 0x1fc5, /* U+001fc5: */ - 0x1fc6, /* U+001fc6: GREEK SMALL LETTER ETA WITH PERISPOMENI*/ - 0x1fc7, /* U+001fc7: GREEK SMALL LETTER ETA WITH PERISPOMENI AND YPOGEGRAMMENI*/ - 0x1f72, /* U+001fc8: GREEK CAPITAL LETTER EPSILON WITH VARIA*/ - 0x1f73, /* U+001fc9: GREEK CAPITAL LETTER EPSILON WITH OXIA*/ - 0x1f74, /* U+001fca: GREEK CAPITAL LETTER ETA WITH VARIA*/ - 0x1f75, /* U+001fcb: GREEK CAPITAL LETTER ETA WITH OXIA*/ - 0x1fc3, /* U+001fcc: GREEK CAPITAL LETTER ETA WITH PROSGEGRAMMENI*/ - 0x1fcd, /* U+001fcd: GREEK PSILI AND VARIA*/ - 0x1fce, /* U+001fce: GREEK PSILI AND OXIA*/ - 0x1fcf, /* U+001fcf: GREEK PSILI AND PERISPOMENI*/ - 0x1fd0, /* U+001fd0: GREEK SMALL LETTER IOTA WITH VRACHY*/ - 0x1fd1, /* U+001fd1: GREEK SMALL LETTER IOTA WITH MACRON*/ - 0x1fd2, /* U+001fd2: GREEK SMALL LETTER IOTA WITH DIALYTIKA AND VARIA*/ - 0x1fd3, /* U+001fd3: GREEK SMALL LETTER IOTA WITH DIALYTIKA AND OXIA*/ - 0x1fd4, /* U+001fd4: */ - 0x1fd5, /* U+001fd5: */ - 0x1fd6, /* U+001fd6: GREEK SMALL LETTER IOTA WITH PERISPOMENI*/ - 0x1fd7, /* U+001fd7: GREEK SMALL LETTER IOTA WITH DIALYTIKA AND PERISPOMENI*/ - 0x1fd0, /* U+001fd8: GREEK CAPITAL LETTER IOTA WITH VRACHY*/ - 0x1fd1, /* U+001fd9: GREEK CAPITAL LETTER IOTA WITH MACRON*/ - 0x1f76, /* U+001fda: GREEK CAPITAL LETTER IOTA WITH VARIA*/ - 0x1f77, /* U+001fdb: GREEK CAPITAL LETTER IOTA WITH OXIA*/ - 0x1fdc, /* U+001fdc: */ - 0x1fdd, /* U+001fdd: GREEK DASIA AND VARIA*/ - 0x1fde, /* U+001fde: GREEK DASIA AND OXIA*/ - 0x1fdf, /* U+001fdf: GREEK DASIA AND PERISPOMENI*/ - 0x1fe0, /* U+001fe0: GREEK SMALL LETTER UPSILON WITH VRACHY*/ - 0x1fe1, /* U+001fe1: GREEK SMALL LETTER UPSILON WITH MACRON*/ - 0x1fe2, /* U+001fe2: GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND VARIA*/ - 0x1fe3, /* U+001fe3: GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND OXIA*/ - 0x1fe4, /* U+001fe4: GREEK SMALL LETTER RHO WITH PSILI*/ - 0x1fe5, /* U+001fe5: GREEK SMALL LETTER RHO WITH DASIA*/ - 0x1fe6, /* U+001fe6: GREEK SMALL LETTER UPSILON WITH PERISPOMENI*/ - 0x1fe7, /* U+001fe7: GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND PERISPOMENI*/ - 0x1fe0, /* U+001fe8: GREEK CAPITAL LETTER UPSILON WITH VRACHY*/ - 0x1fe1, /* U+001fe9: GREEK CAPITAL LETTER UPSILON WITH MACRON*/ - 0x1f7a, /* U+001fea: GREEK CAPITAL LETTER UPSILON WITH VARIA*/ - 0x1f7b, /* U+001feb: GREEK CAPITAL LETTER UPSILON WITH OXIA*/ - 0x1fe5, /* U+001fec: GREEK CAPITAL LETTER RHO WITH DASIA*/ - 0x1fed, /* U+001fed: GREEK DIALYTIKA AND VARIA*/ - 0x1fee, /* U+001fee: GREEK DIALYTIKA AND OXIA*/ - 0x1fef, /* U+001fef: GREEK VARIA*/ - 0x1ff0, /* U+001ff0: */ - 0x1ff1, /* U+001ff1: */ - 0x1ff2, /* U+001ff2: GREEK SMALL LETTER OMEGA WITH VARIA AND YPOGEGRAMMENI*/ - 0x1ff3, /* U+001ff3: GREEK SMALL LETTER OMEGA WITH YPOGEGRAMMENI*/ - 0x1ff4, /* U+001ff4: GREEK SMALL LETTER OMEGA WITH OXIA AND YPOGEGRAMMENI*/ - 0x1ff5, /* U+001ff5: */ - 0x1ff6, /* U+001ff6: GREEK SMALL LETTER OMEGA WITH PERISPOMENI*/ - 0x1ff7, /* U+001ff7: GREEK SMALL LETTER OMEGA WITH PERISPOMENI AND YPOGEGRAMMENI*/ - 0x1f78, /* U+001ff8: GREEK CAPITAL LETTER OMICRON WITH VARIA*/ - 0x1f79, /* U+001ff9: GREEK CAPITAL LETTER OMICRON WITH OXIA*/ - 0x1f7c, /* U+001ffa: GREEK CAPITAL LETTER OMEGA WITH VARIA*/ - 0x1f7d, /* U+001ffb: GREEK CAPITAL LETTER OMEGA WITH OXIA*/ - 0x1ff3, /* U+001ffc: GREEK CAPITAL LETTER OMEGA WITH PROSGEGRAMMENI*/ - 0x1ffd, /* U+001ffd: GREEK OXIA*/ - 0x1ffe, /* U+001ffe: GREEK DASIA*/ - 0x1fff, /* U+001fff: */ - 0x2000, /* U+002000: EN QUAD*/ - 0x2001, /* U+002001: EM QUAD*/ - 0x2002, /* U+002002: EN SPACE*/ - 0x2003, /* U+002003: EM SPACE*/ - 0x2004, /* U+002004: THREE-PER-EM SPACE*/ - 0x2005, /* U+002005: FOUR-PER-EM SPACE*/ - 0x2006, /* U+002006: SIX-PER-EM SPACE*/ - 0x2007, /* U+002007: FIGURE SPACE*/ - 0x2008, /* U+002008: PUNCTUATION SPACE*/ - 0x2009, /* U+002009: THIN SPACE*/ - 0x200a, /* U+00200a: HAIR SPACE*/ - 0x200b, /* U+00200b: ZERO WIDTH SPACE*/ - 0x200c, /* U+00200c: ZERO WIDTH NON-JOINER*/ - 0x200d, /* U+00200d: ZERO WIDTH JOINER*/ - 0x200e, /* U+00200e: LEFT-TO-RIGHT MARK*/ - 0x200f, /* U+00200f: RIGHT-TO-LEFT MARK*/ - 0x2010, /* U+002010: HYPHEN*/ - 0x2011, /* U+002011: NON-BREAKING HYPHEN*/ - 0x2012, /* U+002012: FIGURE DASH*/ - 0x2013, /* U+002013: EN DASH*/ - 0x2014, /* U+002014: EM DASH*/ - 0x2015, /* U+002015: HORIZONTAL BAR*/ - 0x2016, /* U+002016: DOUBLE VERTICAL LINE*/ - 0x2017, /* U+002017: DOUBLE LOW LINE*/ - 0x2018, /* U+002018: LEFT SINGLE QUOTATION MARK*/ - 0x2019, /* U+002019: RIGHT SINGLE QUOTATION MARK*/ - 0x201a, /* U+00201a: SINGLE LOW-9 QUOTATION MARK*/ - 0x201b, /* U+00201b: SINGLE HIGH-REVERSED-9 QUOTATION MARK*/ - 0x201c, /* U+00201c: LEFT DOUBLE QUOTATION MARK*/ - 0x201d, /* U+00201d: RIGHT DOUBLE QUOTATION MARK*/ - 0x201e, /* U+00201e: DOUBLE LOW-9 QUOTATION MARK*/ - 0x201f, /* U+00201f: DOUBLE HIGH-REVERSED-9 QUOTATION MARK*/ - 0x2020, /* U+002020: DAGGER*/ - 0x2021, /* U+002021: DOUBLE DAGGER*/ - 0x2022, /* U+002022: BULLET*/ - 0x2023, /* U+002023: TRIANGULAR BULLET*/ - 0x2024, /* U+002024: ONE DOT LEADER*/ - 0x2025, /* U+002025: TWO DOT LEADER*/ - 0x2026, /* U+002026: HORIZONTAL ELLIPSIS*/ - 0x2027, /* U+002027: HYPHENATION POINT*/ - 0x2028, /* U+002028: LINE SEPARATOR*/ - 0x2029, /* U+002029: PARAGRAPH SEPARATOR*/ - 0x202a, /* U+00202a: LEFT-TO-RIGHT EMBEDDING*/ - 0x202b, /* U+00202b: RIGHT-TO-LEFT EMBEDDING*/ - 0x202c, /* U+00202c: POP DIRECTIONAL FORMATTING*/ - 0x202d, /* U+00202d: LEFT-TO-RIGHT OVERRIDE*/ - 0x202e, /* U+00202e: RIGHT-TO-LEFT OVERRIDE*/ - 0x202f, /* U+00202f: NARROW NO-BREAK SPACE*/ - 0x2030, /* U+002030: PER MILLE SIGN*/ - 0x2031, /* U+002031: PER TEN THOUSAND SIGN*/ - 0x2032, /* U+002032: PRIME*/ - 0x2033, /* U+002033: DOUBLE PRIME*/ - 0x2034, /* U+002034: TRIPLE PRIME*/ - 0x2035, /* U+002035: REVERSED PRIME*/ - 0x2036, /* U+002036: REVERSED DOUBLE PRIME*/ - 0x2037, /* U+002037: REVERSED TRIPLE PRIME*/ - 0x2038, /* U+002038: CARET*/ - 0x2039, /* U+002039: SINGLE LEFT-POINTING ANGLE QUOTATION MARK*/ - 0x203a, /* U+00203a: SINGLE RIGHT-POINTING ANGLE QUOTATION MARK*/ - 0x203b, /* U+00203b: REFERENCE MARK*/ - 0x203c, /* U+00203c: DOUBLE EXCLAMATION MARK*/ - 0x203d, /* U+00203d: INTERROBANG*/ - 0x203e, /* U+00203e: OVERLINE*/ - 0x203f, /* U+00203f: UNDERTIE*/ - 0x2040, /* U+002040: CHARACTER TIE*/ - 0x2041, /* U+002041: CARET INSERTION POINT*/ - 0x2042, /* U+002042: ASTERISM*/ - 0x2043, /* U+002043: HYPHEN BULLET*/ - 0x2044, /* U+002044: FRACTION SLASH*/ - 0x2045, /* U+002045: LEFT SQUARE BRACKET WITH QUILL*/ - 0x2046, /* U+002046: RIGHT SQUARE BRACKET WITH QUILL*/ - 0x2047, /* U+002047: DOUBLE QUESTION MARK*/ - 0x2048, /* U+002048: QUESTION EXCLAMATION MARK*/ - 0x2049, /* U+002049: EXCLAMATION QUESTION MARK*/ - 0x204a, /* U+00204a: TIRONIAN SIGN ET*/ - 0x204b, /* U+00204b: REVERSED PILCROW SIGN*/ - 0x204c, /* U+00204c: BLACK LEFTWARDS BULLET*/ - 0x204d, /* U+00204d: BLACK RIGHTWARDS BULLET*/ - 0x204e, /* U+00204e: LOW ASTERISK*/ - 0x204f, /* U+00204f: REVERSED SEMICOLON*/ - 0x2050, /* U+002050: CLOSE UP*/ - 0x2051, /* U+002051: TWO ASTERISKS ALIGNED VERTICALLY*/ - 0x2052, /* U+002052: COMMERCIAL MINUS SIGN*/ - 0x2053, /* U+002053: SWUNG DASH*/ - 0x2054, /* U+002054: INVERTED UNDERTIE*/ - 0x2055, /* U+002055: FLOWER PUNCTUATION MARK*/ - 0x2056, /* U+002056: THREE DOT PUNCTUATION*/ - 0x2057, /* U+002057: QUADRUPLE PRIME*/ - 0x2058, /* U+002058: FOUR DOT PUNCTUATION*/ - 0x2059, /* U+002059: FIVE DOT PUNCTUATION*/ - 0x205a, /* U+00205a: TWO DOT PUNCTUATION*/ - 0x205b, /* U+00205b: FOUR DOT MARK*/ - 0x205c, /* U+00205c: DOTTED CROSS*/ - 0x205d, /* U+00205d: TRICOLON*/ - 0x205e, /* U+00205e: VERTICAL FOUR DOTS*/ - 0x205f, /* U+00205f: MEDIUM MATHEMATICAL SPACE*/ - 0x2060, /* U+002060: WORD JOINER*/ - 0x2061, /* U+002061: FUNCTION APPLICATION*/ - 0x2062, /* U+002062: INVISIBLE TIMES*/ - 0x2063, /* U+002063: INVISIBLE SEPARATOR*/ - 0x2064, /* U+002064: */ - 0x2065, /* U+002065: */ - 0x2066, /* U+002066: */ - 0x2067, /* U+002067: */ - 0x2068, /* U+002068: */ - 0x2069, /* U+002069: */ - 0x206a, /* U+00206a: INHIBIT SYMMETRIC SWAPPING*/ - 0x206b, /* U+00206b: ACTIVATE SYMMETRIC SWAPPING*/ - 0x206c, /* U+00206c: INHIBIT ARABIC FORM SHAPING*/ - 0x206d, /* U+00206d: ACTIVATE ARABIC FORM SHAPING*/ - 0x206e, /* U+00206e: NATIONAL DIGIT SHAPES*/ - 0x206f, /* U+00206f: NOMINAL DIGIT SHAPES*/ - 0x2070, /* U+002070: SUPERSCRIPT ZERO*/ - 0x2071, /* U+002071: SUPERSCRIPT LATIN SMALL LETTER I*/ - 0x2072, /* U+002072: */ - 0x2073, /* U+002073: */ - 0x2074, /* U+002074: SUPERSCRIPT FOUR*/ - 0x2075, /* U+002075: SUPERSCRIPT FIVE*/ - 0x2076, /* U+002076: SUPERSCRIPT SIX*/ - 0x2077, /* U+002077: SUPERSCRIPT SEVEN*/ - 0x2078, /* U+002078: SUPERSCRIPT EIGHT*/ - 0x2079, /* U+002079: SUPERSCRIPT NINE*/ - 0x207a, /* U+00207a: SUPERSCRIPT PLUS SIGN*/ - 0x207b, /* U+00207b: SUPERSCRIPT MINUS*/ - 0x207c, /* U+00207c: SUPERSCRIPT EQUALS SIGN*/ - 0x207d, /* U+00207d: SUPERSCRIPT LEFT PARENTHESIS*/ - 0x207e, /* U+00207e: SUPERSCRIPT RIGHT PARENTHESIS*/ - 0x207f, /* U+00207f: SUPERSCRIPT LATIN SMALL LETTER N*/ - 0x2080, /* U+002080: SUBSCRIPT ZERO*/ - 0x2081, /* U+002081: SUBSCRIPT ONE*/ - 0x2082, /* U+002082: SUBSCRIPT TWO*/ - 0x2083, /* U+002083: SUBSCRIPT THREE*/ - 0x2084, /* U+002084: SUBSCRIPT FOUR*/ - 0x2085, /* U+002085: SUBSCRIPT FIVE*/ - 0x2086, /* U+002086: SUBSCRIPT SIX*/ - 0x2087, /* U+002087: SUBSCRIPT SEVEN*/ - 0x2088, /* U+002088: SUBSCRIPT EIGHT*/ - 0x2089, /* U+002089: SUBSCRIPT NINE*/ - 0x208a, /* U+00208a: SUBSCRIPT PLUS SIGN*/ - 0x208b, /* U+00208b: SUBSCRIPT MINUS*/ - 0x208c, /* U+00208c: SUBSCRIPT EQUALS SIGN*/ - 0x208d, /* U+00208d: SUBSCRIPT LEFT PARENTHESIS*/ - 0x208e, /* U+00208e: SUBSCRIPT RIGHT PARENTHESIS*/ - 0x208f, /* U+00208f: */ - 0x2090, /* U+002090: LATIN SUBSCRIPT SMALL LETTER A*/ - 0x2091, /* U+002091: LATIN SUBSCRIPT SMALL LETTER E*/ - 0x2092, /* U+002092: LATIN SUBSCRIPT SMALL LETTER O*/ - 0x2093, /* U+002093: LATIN SUBSCRIPT SMALL LETTER X*/ - 0x2094, /* U+002094: LATIN SUBSCRIPT SMALL LETTER SCHWA*/ - 0x2095, /* U+002095: */ - 0x2096, /* U+002096: */ - 0x2097, /* U+002097: */ - 0x2098, /* U+002098: */ - 0x2099, /* U+002099: */ - 0x209a, /* U+00209a: */ - 0x209b, /* U+00209b: */ - 0x209c, /* U+00209c: */ - 0x209d, /* U+00209d: */ - 0x209e, /* U+00209e: */ - 0x209f, /* U+00209f: */ - 0x20a0, /* U+0020a0: EURO-CURRENCY SIGN*/ - 0x20a1, /* U+0020a1: COLON SIGN*/ - 0x20a2, /* U+0020a2: CRUZEIRO SIGN*/ - 0x20a3, /* U+0020a3: FRENCH FRANC SIGN*/ - 0x20a4, /* U+0020a4: LIRA SIGN*/ - 0x20a5, /* U+0020a5: MILL SIGN*/ - 0x20a6, /* U+0020a6: NAIRA SIGN*/ - 0x20a7, /* U+0020a7: PESETA SIGN*/ - 0x20a8, /* U+0020a8: RUPEE SIGN*/ - 0x20a9, /* U+0020a9: WON SIGN*/ - 0x20aa, /* U+0020aa: NEW SHEQEL SIGN*/ - 0x20ab, /* U+0020ab: DONG SIGN*/ - 0x20ac, /* U+0020ac: EURO SIGN*/ - 0x20ad, /* U+0020ad: KIP SIGN*/ - 0x20ae, /* U+0020ae: TUGRIK SIGN*/ - 0x20af, /* U+0020af: DRACHMA SIGN*/ - 0x20b0, /* U+0020b0: GERMAN PENNY SIGN*/ - 0x20b1, /* U+0020b1: PESO SIGN*/ - 0x20b2, /* U+0020b2: GUARANI SIGN*/ - 0x20b3, /* U+0020b3: AUSTRAL SIGN*/ - 0x20b4, /* U+0020b4: HRYVNIA SIGN*/ - 0x20b5, /* U+0020b5: CEDI SIGN*/ - 0x20b6, /* U+0020b6: */ - 0x20b7, /* U+0020b7: */ - 0x20b8, /* U+0020b8: */ - 0x20b9, /* U+0020b9: */ - 0x20ba, /* U+0020ba: */ - 0x20bb, /* U+0020bb: */ - 0x20bc, /* U+0020bc: */ - 0x20bd, /* U+0020bd: */ - 0x20be, /* U+0020be: */ - 0x20bf, /* U+0020bf: */ - 0x20c0, /* U+0020c0: */ - 0x20c1, /* U+0020c1: */ - 0x20c2, /* U+0020c2: */ - 0x20c3, /* U+0020c3: */ - 0x20c4, /* U+0020c4: */ - 0x20c5, /* U+0020c5: */ - 0x20c6, /* U+0020c6: */ - 0x20c7, /* U+0020c7: */ - 0x20c8, /* U+0020c8: */ - 0x20c9, /* U+0020c9: */ - 0x20ca, /* U+0020ca: */ - 0x20cb, /* U+0020cb: */ - 0x20cc, /* U+0020cc: */ - 0x20cd, /* U+0020cd: */ - 0x20ce, /* U+0020ce: */ - 0x20cf, /* U+0020cf: */ - 0x20d0, /* U+0020d0: COMBINING LEFT HARPOON ABOVE*/ - 0x20d1, /* U+0020d1: COMBINING RIGHT HARPOON ABOVE*/ - 0x20d2, /* U+0020d2: COMBINING LONG VERTICAL LINE OVERLAY*/ - 0x20d3, /* U+0020d3: COMBINING SHORT VERTICAL LINE OVERLAY*/ - 0x20d4, /* U+0020d4: COMBINING ANTICLOCKWISE ARROW ABOVE*/ - 0x20d5, /* U+0020d5: COMBINING CLOCKWISE ARROW ABOVE*/ - 0x20d6, /* U+0020d6: COMBINING LEFT ARROW ABOVE*/ - 0x20d7, /* U+0020d7: COMBINING RIGHT ARROW ABOVE*/ - 0x20d8, /* U+0020d8: COMBINING RING OVERLAY*/ - 0x20d9, /* U+0020d9: COMBINING CLOCKWISE RING OVERLAY*/ - 0x20da, /* U+0020da: COMBINING ANTICLOCKWISE RING OVERLAY*/ - 0x20db, /* U+0020db: COMBINING THREE DOTS ABOVE*/ - 0x20dc, /* U+0020dc: COMBINING FOUR DOTS ABOVE*/ - 0x20dd, /* U+0020dd: COMBINING ENCLOSING CIRCLE*/ - 0x20de, /* U+0020de: COMBINING ENCLOSING SQUARE*/ - 0x20df, /* U+0020df: COMBINING ENCLOSING DIAMOND*/ - 0x20e0, /* U+0020e0: COMBINING ENCLOSING CIRCLE BACKSLASH*/ - 0x20e1, /* U+0020e1: COMBINING LEFT RIGHT ARROW ABOVE*/ - 0x20e2, /* U+0020e2: COMBINING ENCLOSING SCREEN*/ - 0x20e3, /* U+0020e3: COMBINING ENCLOSING KEYCAP*/ - 0x20e4, /* U+0020e4: COMBINING ENCLOSING UPWARD POINTING TRIANGLE*/ - 0x20e5, /* U+0020e5: COMBINING REVERSE SOLIDUS OVERLAY*/ - 0x20e6, /* U+0020e6: COMBINING DOUBLE VERTICAL STROKE OVERLAY*/ - 0x20e7, /* U+0020e7: COMBINING ANNUITY SYMBOL*/ - 0x20e8, /* U+0020e8: COMBINING TRIPLE UNDERDOT*/ - 0x20e9, /* U+0020e9: COMBINING WIDE BRIDGE ABOVE*/ - 0x20ea, /* U+0020ea: COMBINING LEFTWARDS ARROW OVERLAY*/ - 0x20eb, /* U+0020eb: COMBINING LONG DOUBLE SOLIDUS OVERLAY*/ - 0x20ec, /* U+0020ec: */ - 0x20ed, /* U+0020ed: */ - 0x20ee, /* U+0020ee: */ - 0x20ef, /* U+0020ef: */ - 0x20f0, /* U+0020f0: */ - 0x20f1, /* U+0020f1: */ - 0x20f2, /* U+0020f2: */ - 0x20f3, /* U+0020f3: */ - 0x20f4, /* U+0020f4: */ - 0x20f5, /* U+0020f5: */ - 0x20f6, /* U+0020f6: */ - 0x20f7, /* U+0020f7: */ - 0x20f8, /* U+0020f8: */ - 0x20f9, /* U+0020f9: */ - 0x20fa, /* U+0020fa: */ - 0x20fb, /* U+0020fb: */ - 0x20fc, /* U+0020fc: */ - 0x20fd, /* U+0020fd: */ - 0x20fe, /* U+0020fe: */ - 0x20ff, /* U+0020ff: */ - 0x2100, /* U+002100: ACCOUNT OF*/ - 0x2101, /* U+002101: ADDRESSED TO THE SUBJECT*/ - 0x2102, /* U+002102: DOUBLE-STRUCK CAPITAL C*/ - 0x2103, /* U+002103: DEGREE CELSIUS*/ - 0x2104, /* U+002104: CENTRE LINE SYMBOL*/ - 0x2105, /* U+002105: CARE OF*/ - 0x2106, /* U+002106: CADA UNA*/ - 0x2107, /* U+002107: EULER CONSTANT*/ - 0x2108, /* U+002108: SCRUPLE*/ - 0x2109, /* U+002109: DEGREE FAHRENHEIT*/ - 0x210a, /* U+00210a: SCRIPT SMALL G*/ - 0x210b, /* U+00210b: SCRIPT CAPITAL H*/ - 0x210c, /* U+00210c: BLACK-LETTER CAPITAL H*/ - 0x210d, /* U+00210d: DOUBLE-STRUCK CAPITAL H*/ - 0x210e, /* U+00210e: PLANCK CONSTANT*/ - 0x210f, /* U+00210f: PLANCK CONSTANT OVER TWO PI*/ - 0x2110, /* U+002110: SCRIPT CAPITAL I*/ - 0x2111, /* U+002111: BLACK-LETTER CAPITAL I*/ - 0x2112, /* U+002112: SCRIPT CAPITAL L*/ - 0x2113, /* U+002113: SCRIPT SMALL L*/ - 0x2114, /* U+002114: L B BAR SYMBOL*/ - 0x2115, /* U+002115: DOUBLE-STRUCK CAPITAL N*/ - 0x2116, /* U+002116: NUMERO SIGN*/ - 0x2117, /* U+002117: SOUND RECORDING COPYRIGHT*/ - 0x2118, /* U+002118: SCRIPT CAPITAL P*/ - 0x2119, /* U+002119: DOUBLE-STRUCK CAPITAL P*/ - 0x211a, /* U+00211a: DOUBLE-STRUCK CAPITAL Q*/ - 0x211b, /* U+00211b: SCRIPT CAPITAL R*/ - 0x211c, /* U+00211c: BLACK-LETTER CAPITAL R*/ - 0x211d, /* U+00211d: DOUBLE-STRUCK CAPITAL R*/ - 0x211e, /* U+00211e: PRESCRIPTION TAKE*/ - 0x211f, /* U+00211f: RESPONSE*/ - 0x2120, /* U+002120: SERVICE MARK*/ - 0x2121, /* U+002121: TELEPHONE SIGN*/ - 0x2122, /* U+002122: TRADE MARK SIGN*/ - 0x2123, /* U+002123: VERSICLE*/ - 0x2124, /* U+002124: DOUBLE-STRUCK CAPITAL Z*/ - 0x2125, /* U+002125: OUNCE SIGN*/ - 0x3c9, /* U+002126: OHM SIGN*/ - 0x2127, /* U+002127: INVERTED OHM SIGN*/ - 0x2128, /* U+002128: BLACK-LETTER CAPITAL Z*/ - 0x2129, /* U+002129: TURNED GREEK SMALL LETTER IOTA*/ - 0x6b, /* U+00212a: KELVIN SIGN*/ - 0xe5, /* U+00212b: ANGSTROM SIGN*/ - 0x212c, /* U+00212c: SCRIPT CAPITAL B*/ - 0x212d, /* U+00212d: BLACK-LETTER CAPITAL C*/ - 0x212e, /* U+00212e: ESTIMATED SYMBOL*/ - 0x212f, /* U+00212f: SCRIPT SMALL E*/ - 0x2130, /* U+002130: SCRIPT CAPITAL E*/ - 0x2131, /* U+002131: SCRIPT CAPITAL F*/ - 0x2132, /* U+002132: TURNED CAPITAL F*/ - 0x2133, /* U+002133: SCRIPT CAPITAL M*/ - 0x2134, /* U+002134: SCRIPT SMALL O*/ - 0x2135, /* U+002135: ALEF SYMBOL*/ - 0x2136, /* U+002136: BET SYMBOL*/ - 0x2137, /* U+002137: GIMEL SYMBOL*/ - 0x2138, /* U+002138: DALET SYMBOL*/ - 0x2139, /* U+002139: INFORMATION SOURCE*/ - 0x213a, /* U+00213a: ROTATED CAPITAL Q*/ - 0x213b, /* U+00213b: FACSIMILE SIGN*/ - 0x213c, /* U+00213c: DOUBLE-STRUCK SMALL PI*/ - 0x213d, /* U+00213d: DOUBLE-STRUCK SMALL GAMMA*/ - 0x213e, /* U+00213e: DOUBLE-STRUCK CAPITAL GAMMA*/ - 0x213f, /* U+00213f: DOUBLE-STRUCK CAPITAL PI*/ - 0x2140, /* U+002140: DOUBLE-STRUCK N-ARY SUMMATION*/ - 0x2141, /* U+002141: TURNED SANS-SERIF CAPITAL G*/ - 0x2142, /* U+002142: TURNED SANS-SERIF CAPITAL L*/ - 0x2143, /* U+002143: REVERSED SANS-SERIF CAPITAL L*/ - 0x2144, /* U+002144: TURNED SANS-SERIF CAPITAL Y*/ - 0x2145, /* U+002145: DOUBLE-STRUCK ITALIC CAPITAL D*/ - 0x2146, /* U+002146: DOUBLE-STRUCK ITALIC SMALL D*/ - 0x2147, /* U+002147: DOUBLE-STRUCK ITALIC SMALL E*/ - 0x2148, /* U+002148: DOUBLE-STRUCK ITALIC SMALL I*/ - 0x2149, /* U+002149: DOUBLE-STRUCK ITALIC SMALL J*/ - 0x214a, /* U+00214a: PROPERTY LINE*/ - 0x214b, /* U+00214b: TURNED AMPERSAND*/ - 0x214c, /* U+00214c: PER SIGN*/ - 0x214d, /* U+00214d: */ - 0x214e, /* U+00214e: */ - 0x214f, /* U+00214f: */ - 0x2150, /* U+002150: */ - 0x2151, /* U+002151: */ - 0x2152, /* U+002152: */ - 0x2153, /* U+002153: VULGAR FRACTION ONE THIRD*/ - 0x2154, /* U+002154: VULGAR FRACTION TWO THIRDS*/ - 0x2155, /* U+002155: VULGAR FRACTION ONE FIFTH*/ - 0x2156, /* U+002156: VULGAR FRACTION TWO FIFTHS*/ - 0x2157, /* U+002157: VULGAR FRACTION THREE FIFTHS*/ - 0x2158, /* U+002158: VULGAR FRACTION FOUR FIFTHS*/ - 0x2159, /* U+002159: VULGAR FRACTION ONE SIXTH*/ - 0x215a, /* U+00215a: VULGAR FRACTION FIVE SIXTHS*/ - 0x215b, /* U+00215b: VULGAR FRACTION ONE EIGHTH*/ - 0x215c, /* U+00215c: VULGAR FRACTION THREE EIGHTHS*/ - 0x215d, /* U+00215d: VULGAR FRACTION FIVE EIGHTHS*/ - 0x215e, /* U+00215e: VULGAR FRACTION SEVEN EIGHTHS*/ - 0x215f, /* U+00215f: FRACTION NUMERATOR ONE*/ - 0x2170, /* U+002160: ROMAN NUMERAL ONE*/ - 0x2171, /* U+002161: ROMAN NUMERAL TWO*/ - 0x2172, /* U+002162: ROMAN NUMERAL THREE*/ - 0x2173, /* U+002163: ROMAN NUMERAL FOUR*/ - 0x2174, /* U+002164: ROMAN NUMERAL FIVE*/ - 0x2175, /* U+002165: ROMAN NUMERAL SIX*/ - 0x2176, /* U+002166: ROMAN NUMERAL SEVEN*/ - 0x2177, /* U+002167: ROMAN NUMERAL EIGHT*/ - 0x2178, /* U+002168: ROMAN NUMERAL NINE*/ - 0x2179, /* U+002169: ROMAN NUMERAL TEN*/ - 0x217a, /* U+00216a: ROMAN NUMERAL ELEVEN*/ - 0x217b, /* U+00216b: ROMAN NUMERAL TWELVE*/ - 0x217c, /* U+00216c: ROMAN NUMERAL FIFTY*/ - 0x217d, /* U+00216d: ROMAN NUMERAL ONE HUNDRED*/ - 0x217e, /* U+00216e: ROMAN NUMERAL FIVE HUNDRED*/ - 0x217f, /* U+00216f: ROMAN NUMERAL ONE THOUSAND*/ - 0x2170, /* U+002170: SMALL ROMAN NUMERAL ONE*/ - 0x2171, /* U+002171: SMALL ROMAN NUMERAL TWO*/ - 0x2172, /* U+002172: SMALL ROMAN NUMERAL THREE*/ - 0x2173, /* U+002173: SMALL ROMAN NUMERAL FOUR*/ - 0x2174, /* U+002174: SMALL ROMAN NUMERAL FIVE*/ - 0x2175, /* U+002175: SMALL ROMAN NUMERAL SIX*/ - 0x2176, /* U+002176: SMALL ROMAN NUMERAL SEVEN*/ - 0x2177, /* U+002177: SMALL ROMAN NUMERAL EIGHT*/ - 0x2178, /* U+002178: SMALL ROMAN NUMERAL NINE*/ - 0x2179, /* U+002179: SMALL ROMAN NUMERAL TEN*/ - 0x217a, /* U+00217a: SMALL ROMAN NUMERAL ELEVEN*/ - 0x217b, /* U+00217b: SMALL ROMAN NUMERAL TWELVE*/ - 0x217c, /* U+00217c: SMALL ROMAN NUMERAL FIFTY*/ - 0x217d, /* U+00217d: SMALL ROMAN NUMERAL ONE HUNDRED*/ - 0x217e, /* U+00217e: SMALL ROMAN NUMERAL FIVE HUNDRED*/ - 0x217f, /* U+00217f: SMALL ROMAN NUMERAL ONE THOUSAND*/ - 0x2180, /* U+002180: ROMAN NUMERAL ONE THOUSAND C D*/ - 0x2181, /* U+002181: ROMAN NUMERAL FIVE THOUSAND*/ - 0x2182, /* U+002182: ROMAN NUMERAL TEN THOUSAND*/ - 0x2183, /* U+002183: ROMAN NUMERAL REVERSED ONE HUNDRED*/ - 0x2184, /* U+002184: */ - 0x2185, /* U+002185: */ - 0x2186, /* U+002186: */ - 0x2187, /* U+002187: */ - 0x2188, /* U+002188: */ - 0x2189, /* U+002189: */ - 0x218a, /* U+00218a: */ - 0x218b, /* U+00218b: */ - 0x218c, /* U+00218c: */ - 0x218d, /* U+00218d: */ - 0x218e, /* U+00218e: */ - 0x218f, /* U+00218f: */ - 0x2190, /* U+002190: LEFTWARDS ARROW*/ - 0x2191, /* U+002191: UPWARDS ARROW*/ - 0x2192, /* U+002192: RIGHTWARDS ARROW*/ - 0x2193, /* U+002193: DOWNWARDS ARROW*/ - 0x2194, /* U+002194: LEFT RIGHT ARROW*/ - 0x2195, /* U+002195: UP DOWN ARROW*/ - 0x2196, /* U+002196: NORTH WEST ARROW*/ - 0x2197, /* U+002197: NORTH EAST ARROW*/ - 0x2198, /* U+002198: SOUTH EAST ARROW*/ - 0x2199, /* U+002199: SOUTH WEST ARROW*/ - 0x219a, /* U+00219a: LEFTWARDS ARROW WITH STROKE*/ - 0x219b, /* U+00219b: RIGHTWARDS ARROW WITH STROKE*/ - 0x219c, /* U+00219c: LEFTWARDS WAVE ARROW*/ - 0x219d, /* U+00219d: RIGHTWARDS WAVE ARROW*/ - 0x219e, /* U+00219e: LEFTWARDS TWO HEADED ARROW*/ - 0x219f, /* U+00219f: UPWARDS TWO HEADED ARROW*/ - 0x21a0, /* U+0021a0: RIGHTWARDS TWO HEADED ARROW*/ - 0x21a1, /* U+0021a1: DOWNWARDS TWO HEADED ARROW*/ - 0x21a2, /* U+0021a2: LEFTWARDS ARROW WITH TAIL*/ - 0x21a3, /* U+0021a3: RIGHTWARDS ARROW WITH TAIL*/ - 0x21a4, /* U+0021a4: LEFTWARDS ARROW FROM BAR*/ - 0x21a5, /* U+0021a5: UPWARDS ARROW FROM BAR*/ - 0x21a6, /* U+0021a6: RIGHTWARDS ARROW FROM BAR*/ - 0x21a7, /* U+0021a7: DOWNWARDS ARROW FROM BAR*/ - 0x21a8, /* U+0021a8: UP DOWN ARROW WITH BASE*/ - 0x21a9, /* U+0021a9: LEFTWARDS ARROW WITH HOOK*/ - 0x21aa, /* U+0021aa: RIGHTWARDS ARROW WITH HOOK*/ - 0x21ab, /* U+0021ab: LEFTWARDS ARROW WITH LOOP*/ - 0x21ac, /* U+0021ac: RIGHTWARDS ARROW WITH LOOP*/ - 0x21ad, /* U+0021ad: LEFT RIGHT WAVE ARROW*/ - 0x21ae, /* U+0021ae: LEFT RIGHT ARROW WITH STROKE*/ - 0x21af, /* U+0021af: DOWNWARDS ZIGZAG ARROW*/ - 0x21b0, /* U+0021b0: UPWARDS ARROW WITH TIP LEFTWARDS*/ - 0x21b1, /* U+0021b1: UPWARDS ARROW WITH TIP RIGHTWARDS*/ - 0x21b2, /* U+0021b2: DOWNWARDS ARROW WITH TIP LEFTWARDS*/ - 0x21b3, /* U+0021b3: DOWNWARDS ARROW WITH TIP RIGHTWARDS*/ - 0x21b4, /* U+0021b4: RIGHTWARDS ARROW WITH CORNER DOWNWARDS*/ - 0x21b5, /* U+0021b5: DOWNWARDS ARROW WITH CORNER LEFTWARDS*/ - 0x21b6, /* U+0021b6: ANTICLOCKWISE TOP SEMICIRCLE ARROW*/ - 0x21b7, /* U+0021b7: CLOCKWISE TOP SEMICIRCLE ARROW*/ - 0x21b8, /* U+0021b8: NORTH WEST ARROW TO LONG BAR*/ - 0x21b9, /* U+0021b9: LEFTWARDS ARROW TO BAR OVER RIGHTWARDS ARROW TO BAR*/ - 0x21ba, /* U+0021ba: ANTICLOCKWISE OPEN CIRCLE ARROW*/ - 0x21bb, /* U+0021bb: CLOCKWISE OPEN CIRCLE ARROW*/ - 0x21bc, /* U+0021bc: LEFTWARDS HARPOON WITH BARB UPWARDS*/ - 0x21bd, /* U+0021bd: LEFTWARDS HARPOON WITH BARB DOWNWARDS*/ - 0x21be, /* U+0021be: UPWARDS HARPOON WITH BARB RIGHTWARDS*/ - 0x21bf, /* U+0021bf: UPWARDS HARPOON WITH BARB LEFTWARDS*/ - 0x21c0, /* U+0021c0: RIGHTWARDS HARPOON WITH BARB UPWARDS*/ - 0x21c1, /* U+0021c1: RIGHTWARDS HARPOON WITH BARB DOWNWARDS*/ - 0x21c2, /* U+0021c2: DOWNWARDS HARPOON WITH BARB RIGHTWARDS*/ - 0x21c3, /* U+0021c3: DOWNWARDS HARPOON WITH BARB LEFTWARDS*/ - 0x21c4, /* U+0021c4: RIGHTWARDS ARROW OVER LEFTWARDS ARROW*/ - 0x21c5, /* U+0021c5: UPWARDS ARROW LEFTWARDS OF DOWNWARDS ARROW*/ - 0x21c6, /* U+0021c6: LEFTWARDS ARROW OVER RIGHTWARDS ARROW*/ - 0x21c7, /* U+0021c7: LEFTWARDS PAIRED ARROWS*/ - 0x21c8, /* U+0021c8: UPWARDS PAIRED ARROWS*/ - 0x21c9, /* U+0021c9: RIGHTWARDS PAIRED ARROWS*/ - 0x21ca, /* U+0021ca: DOWNWARDS PAIRED ARROWS*/ - 0x21cb, /* U+0021cb: LEFTWARDS HARPOON OVER RIGHTWARDS HARPOON*/ - 0x21cc, /* U+0021cc: RIGHTWARDS HARPOON OVER LEFTWARDS HARPOON*/ - 0x21cd, /* U+0021cd: LEFTWARDS DOUBLE ARROW WITH STROKE*/ - 0x21ce, /* U+0021ce: LEFT RIGHT DOUBLE ARROW WITH STROKE*/ - 0x21cf, /* U+0021cf: RIGHTWARDS DOUBLE ARROW WITH STROKE*/ - 0x21d0, /* U+0021d0: LEFTWARDS DOUBLE ARROW*/ - 0x21d1, /* U+0021d1: UPWARDS DOUBLE ARROW*/ - 0x21d2, /* U+0021d2: RIGHTWARDS DOUBLE ARROW*/ - 0x21d3, /* U+0021d3: DOWNWARDS DOUBLE ARROW*/ - 0x21d4, /* U+0021d4: LEFT RIGHT DOUBLE ARROW*/ - 0x21d5, /* U+0021d5: UP DOWN DOUBLE ARROW*/ - 0x21d6, /* U+0021d6: NORTH WEST DOUBLE ARROW*/ - 0x21d7, /* U+0021d7: NORTH EAST DOUBLE ARROW*/ - 0x21d8, /* U+0021d8: SOUTH EAST DOUBLE ARROW*/ - 0x21d9, /* U+0021d9: SOUTH WEST DOUBLE ARROW*/ - 0x21da, /* U+0021da: LEFTWARDS TRIPLE ARROW*/ - 0x21db, /* U+0021db: RIGHTWARDS TRIPLE ARROW*/ - 0x21dc, /* U+0021dc: LEFTWARDS SQUIGGLE ARROW*/ - 0x21dd, /* U+0021dd: RIGHTWARDS SQUIGGLE ARROW*/ - 0x21de, /* U+0021de: UPWARDS ARROW WITH DOUBLE STROKE*/ - 0x21df, /* U+0021df: DOWNWARDS ARROW WITH DOUBLE STROKE*/ - 0x21e0, /* U+0021e0: LEFTWARDS DASHED ARROW*/ - 0x21e1, /* U+0021e1: UPWARDS DASHED ARROW*/ - 0x21e2, /* U+0021e2: RIGHTWARDS DASHED ARROW*/ - 0x21e3, /* U+0021e3: DOWNWARDS DASHED ARROW*/ - 0x21e4, /* U+0021e4: LEFTWARDS ARROW TO BAR*/ - 0x21e5, /* U+0021e5: RIGHTWARDS ARROW TO BAR*/ - 0x21e6, /* U+0021e6: LEFTWARDS WHITE ARROW*/ - 0x21e7, /* U+0021e7: UPWARDS WHITE ARROW*/ - 0x21e8, /* U+0021e8: RIGHTWARDS WHITE ARROW*/ - 0x21e9, /* U+0021e9: DOWNWARDS WHITE ARROW*/ - 0x21ea, /* U+0021ea: UPWARDS WHITE ARROW FROM BAR*/ - 0x21eb, /* U+0021eb: UPWARDS WHITE ARROW ON PEDESTAL*/ - 0x21ec, /* U+0021ec: UPWARDS WHITE ARROW ON PEDESTAL WITH HORIZONTAL BAR*/ - 0x21ed, /* U+0021ed: UPWARDS WHITE ARROW ON PEDESTAL WITH VERTICAL BAR*/ - 0x21ee, /* U+0021ee: UPWARDS WHITE DOUBLE ARROW*/ - 0x21ef, /* U+0021ef: UPWARDS WHITE DOUBLE ARROW ON PEDESTAL*/ - 0x21f0, /* U+0021f0: RIGHTWARDS WHITE ARROW FROM WALL*/ - 0x21f1, /* U+0021f1: NORTH WEST ARROW TO CORNER*/ - 0x21f2, /* U+0021f2: SOUTH EAST ARROW TO CORNER*/ - 0x21f3, /* U+0021f3: UP DOWN WHITE ARROW*/ - 0x21f4, /* U+0021f4: RIGHT ARROW WITH SMALL CIRCLE*/ - 0x21f5, /* U+0021f5: DOWNWARDS ARROW LEFTWARDS OF UPWARDS ARROW*/ - 0x21f6, /* U+0021f6: THREE RIGHTWARDS ARROWS*/ - 0x21f7, /* U+0021f7: LEFTWARDS ARROW WITH VERTICAL STROKE*/ - 0x21f8, /* U+0021f8: RIGHTWARDS ARROW WITH VERTICAL STROKE*/ - 0x21f9, /* U+0021f9: LEFT RIGHT ARROW WITH VERTICAL STROKE*/ - 0x21fa, /* U+0021fa: LEFTWARDS ARROW WITH DOUBLE VERTICAL STROKE*/ - 0x21fb, /* U+0021fb: RIGHTWARDS ARROW WITH DOUBLE VERTICAL STROKE*/ - 0x21fc, /* U+0021fc: LEFT RIGHT ARROW WITH DOUBLE VERTICAL STROKE*/ - 0x21fd, /* U+0021fd: LEFTWARDS OPEN-HEADED ARROW*/ - 0x21fe, /* U+0021fe: RIGHTWARDS OPEN-HEADED ARROW*/ - 0x21ff, /* U+0021ff: LEFT RIGHT OPEN-HEADED ARROW*/ - 0x2200, /* U+002200: FOR ALL*/ - 0x2201, /* U+002201: COMPLEMENT*/ - 0x2202, /* U+002202: PARTIAL DIFFERENTIAL*/ - 0x2203, /* U+002203: THERE EXISTS*/ - 0x2204, /* U+002204: THERE DOES NOT EXIST*/ - 0x2205, /* U+002205: EMPTY SET*/ - 0x2206, /* U+002206: INCREMENT*/ - 0x2207, /* U+002207: NABLA*/ - 0x2208, /* U+002208: ELEMENT OF*/ - 0x2209, /* U+002209: NOT AN ELEMENT OF*/ - 0x220a, /* U+00220a: SMALL ELEMENT OF*/ - 0x220b, /* U+00220b: CONTAINS AS MEMBER*/ - 0x220c, /* U+00220c: DOES NOT CONTAIN AS MEMBER*/ - 0x220d, /* U+00220d: SMALL CONTAINS AS MEMBER*/ - 0x220e, /* U+00220e: END OF PROOF*/ - 0x220f, /* U+00220f: N-ARY PRODUCT*/ - 0x2210, /* U+002210: N-ARY COPRODUCT*/ - 0x2211, /* U+002211: N-ARY SUMMATION*/ - 0x2212, /* U+002212: MINUS SIGN*/ - 0x2213, /* U+002213: MINUS-OR-PLUS SIGN*/ - 0x2214, /* U+002214: DOT PLUS*/ - 0x2215, /* U+002215: DIVISION SLASH*/ - 0x2216, /* U+002216: SET MINUS*/ - 0x2217, /* U+002217: ASTERISK OPERATOR*/ - 0x2218, /* U+002218: RING OPERATOR*/ - 0x2219, /* U+002219: BULLET OPERATOR*/ - 0x221a, /* U+00221a: SQUARE ROOT*/ - 0x221b, /* U+00221b: CUBE ROOT*/ - 0x221c, /* U+00221c: FOURTH ROOT*/ - 0x221d, /* U+00221d: PROPORTIONAL TO*/ - 0x221e, /* U+00221e: INFINITY*/ - 0x221f, /* U+00221f: RIGHT ANGLE*/ - 0x2220, /* U+002220: ANGLE*/ - 0x2221, /* U+002221: MEASURED ANGLE*/ - 0x2222, /* U+002222: SPHERICAL ANGLE*/ - 0x2223, /* U+002223: DIVIDES*/ - 0x2224, /* U+002224: DOES NOT DIVIDE*/ - 0x2225, /* U+002225: PARALLEL TO*/ - 0x2226, /* U+002226: NOT PARALLEL TO*/ - 0x2227, /* U+002227: LOGICAL AND*/ - 0x2228, /* U+002228: LOGICAL OR*/ - 0x2229, /* U+002229: INTERSECTION*/ - 0x222a, /* U+00222a: UNION*/ - 0x222b, /* U+00222b: INTEGRAL*/ - 0x222c, /* U+00222c: DOUBLE INTEGRAL*/ - 0x222d, /* U+00222d: TRIPLE INTEGRAL*/ - 0x222e, /* U+00222e: CONTOUR INTEGRAL*/ - 0x222f, /* U+00222f: SURFACE INTEGRAL*/ - 0x2230, /* U+002230: VOLUME INTEGRAL*/ - 0x2231, /* U+002231: CLOCKWISE INTEGRAL*/ - 0x2232, /* U+002232: CLOCKWISE CONTOUR INTEGRAL*/ - 0x2233, /* U+002233: ANTICLOCKWISE CONTOUR INTEGRAL*/ - 0x2234, /* U+002234: THEREFORE*/ - 0x2235, /* U+002235: BECAUSE*/ - 0x2236, /* U+002236: RATIO*/ - 0x2237, /* U+002237: PROPORTION*/ - 0x2238, /* U+002238: DOT MINUS*/ - 0x2239, /* U+002239: EXCESS*/ - 0x223a, /* U+00223a: GEOMETRIC PROPORTION*/ - 0x223b, /* U+00223b: HOMOTHETIC*/ - 0x223c, /* U+00223c: TILDE OPERATOR*/ - 0x223d, /* U+00223d: REVERSED TILDE*/ - 0x223e, /* U+00223e: INVERTED LAZY S*/ - 0x223f, /* U+00223f: SINE WAVE*/ - 0x2240, /* U+002240: WREATH PRODUCT*/ - 0x2241, /* U+002241: NOT TILDE*/ - 0x2242, /* U+002242: MINUS TILDE*/ - 0x2243, /* U+002243: ASYMPTOTICALLY EQUAL TO*/ - 0x2244, /* U+002244: NOT ASYMPTOTICALLY EQUAL TO*/ - 0x2245, /* U+002245: APPROXIMATELY EQUAL TO*/ - 0x2246, /* U+002246: APPROXIMATELY BUT NOT ACTUALLY EQUAL TO*/ - 0x2247, /* U+002247: NEITHER APPROXIMATELY NOR ACTUALLY EQUAL TO*/ - 0x2248, /* U+002248: ALMOST EQUAL TO*/ - 0x2249, /* U+002249: NOT ALMOST EQUAL TO*/ - 0x224a, /* U+00224a: ALMOST EQUAL OR EQUAL TO*/ - 0x224b, /* U+00224b: TRIPLE TILDE*/ - 0x224c, /* U+00224c: ALL EQUAL TO*/ - 0x224d, /* U+00224d: EQUIVALENT TO*/ - 0x224e, /* U+00224e: GEOMETRICALLY EQUIVALENT TO*/ - 0x224f, /* U+00224f: DIFFERENCE BETWEEN*/ - 0x2250, /* U+002250: APPROACHES THE LIMIT*/ - 0x2251, /* U+002251: GEOMETRICALLY EQUAL TO*/ - 0x2252, /* U+002252: APPROXIMATELY EQUAL TO OR THE IMAGE OF*/ - 0x2253, /* U+002253: IMAGE OF OR APPROXIMATELY EQUAL TO*/ - 0x2254, /* U+002254: COLON EQUALS*/ - 0x2255, /* U+002255: EQUALS COLON*/ - 0x2256, /* U+002256: RING IN EQUAL TO*/ - 0x2257, /* U+002257: RING EQUAL TO*/ - 0x2258, /* U+002258: CORRESPONDS TO*/ - 0x2259, /* U+002259: ESTIMATES*/ - 0x225a, /* U+00225a: EQUIANGULAR TO*/ - 0x225b, /* U+00225b: STAR EQUALS*/ - 0x225c, /* U+00225c: DELTA EQUAL TO*/ - 0x225d, /* U+00225d: EQUAL TO BY DEFINITION*/ - 0x225e, /* U+00225e: MEASURED BY*/ - 0x225f, /* U+00225f: QUESTIONED EQUAL TO*/ - 0x2260, /* U+002260: NOT EQUAL TO*/ - 0x2261, /* U+002261: IDENTICAL TO*/ - 0x2262, /* U+002262: NOT IDENTICAL TO*/ - 0x2263, /* U+002263: STRICTLY EQUIVALENT TO*/ - 0x2264, /* U+002264: LESS-THAN OR EQUAL TO*/ - 0x2265, /* U+002265: GREATER-THAN OR EQUAL TO*/ - 0x2266, /* U+002266: LESS-THAN OVER EQUAL TO*/ - 0x2267, /* U+002267: GREATER-THAN OVER EQUAL TO*/ - 0x2268, /* U+002268: LESS-THAN BUT NOT EQUAL TO*/ - 0x2269, /* U+002269: GREATER-THAN BUT NOT EQUAL TO*/ - 0x226a, /* U+00226a: MUCH LESS-THAN*/ - 0x226b, /* U+00226b: MUCH GREATER-THAN*/ - 0x226c, /* U+00226c: BETWEEN*/ - 0x226d, /* U+00226d: NOT EQUIVALENT TO*/ - 0x226e, /* U+00226e: NOT LESS-THAN*/ - 0x226f, /* U+00226f: NOT GREATER-THAN*/ - 0x2270, /* U+002270: NEITHER LESS-THAN NOR EQUAL TO*/ - 0x2271, /* U+002271: NEITHER GREATER-THAN NOR EQUAL TO*/ - 0x2272, /* U+002272: LESS-THAN OR EQUIVALENT TO*/ - 0x2273, /* U+002273: GREATER-THAN OR EQUIVALENT TO*/ - 0x2274, /* U+002274: NEITHER LESS-THAN NOR EQUIVALENT TO*/ - 0x2275, /* U+002275: NEITHER GREATER-THAN NOR EQUIVALENT TO*/ - 0x2276, /* U+002276: LESS-THAN OR GREATER-THAN*/ - 0x2277, /* U+002277: GREATER-THAN OR LESS-THAN*/ - 0x2278, /* U+002278: NEITHER LESS-THAN NOR GREATER-THAN*/ - 0x2279, /* U+002279: NEITHER GREATER-THAN NOR LESS-THAN*/ - 0x227a, /* U+00227a: PRECEDES*/ - 0x227b, /* U+00227b: SUCCEEDS*/ - 0x227c, /* U+00227c: PRECEDES OR EQUAL TO*/ - 0x227d, /* U+00227d: SUCCEEDS OR EQUAL TO*/ - 0x227e, /* U+00227e: PRECEDES OR EQUIVALENT TO*/ - 0x227f, /* U+00227f: SUCCEEDS OR EQUIVALENT TO*/ - 0x2280, /* U+002280: DOES NOT PRECEDE*/ - 0x2281, /* U+002281: DOES NOT SUCCEED*/ - 0x2282, /* U+002282: SUBSET OF*/ - 0x2283, /* U+002283: SUPERSET OF*/ - 0x2284, /* U+002284: NOT A SUBSET OF*/ - 0x2285, /* U+002285: NOT A SUPERSET OF*/ - 0x2286, /* U+002286: SUBSET OF OR EQUAL TO*/ - 0x2287, /* U+002287: SUPERSET OF OR EQUAL TO*/ - 0x2288, /* U+002288: NEITHER A SUBSET OF NOR EQUAL TO*/ - 0x2289, /* U+002289: NEITHER A SUPERSET OF NOR EQUAL TO*/ - 0x228a, /* U+00228a: SUBSET OF WITH NOT EQUAL TO*/ - 0x228b, /* U+00228b: SUPERSET OF WITH NOT EQUAL TO*/ - 0x228c, /* U+00228c: MULTISET*/ - 0x228d, /* U+00228d: MULTISET MULTIPLICATION*/ - 0x228e, /* U+00228e: MULTISET UNION*/ - 0x228f, /* U+00228f: SQUARE IMAGE OF*/ - 0x2290, /* U+002290: SQUARE ORIGINAL OF*/ - 0x2291, /* U+002291: SQUARE IMAGE OF OR EQUAL TO*/ - 0x2292, /* U+002292: SQUARE ORIGINAL OF OR EQUAL TO*/ - 0x2293, /* U+002293: SQUARE CAP*/ - 0x2294, /* U+002294: SQUARE CUP*/ - 0x2295, /* U+002295: CIRCLED PLUS*/ - 0x2296, /* U+002296: CIRCLED MINUS*/ - 0x2297, /* U+002297: CIRCLED TIMES*/ - 0x2298, /* U+002298: CIRCLED DIVISION SLASH*/ - 0x2299, /* U+002299: CIRCLED DOT OPERATOR*/ - 0x229a, /* U+00229a: CIRCLED RING OPERATOR*/ - 0x229b, /* U+00229b: CIRCLED ASTERISK OPERATOR*/ - 0x229c, /* U+00229c: CIRCLED EQUALS*/ - 0x229d, /* U+00229d: CIRCLED DASH*/ - 0x229e, /* U+00229e: SQUARED PLUS*/ - 0x229f, /* U+00229f: SQUARED MINUS*/ - 0x22a0, /* U+0022a0: SQUARED TIMES*/ - 0x22a1, /* U+0022a1: SQUARED DOT OPERATOR*/ - 0x22a2, /* U+0022a2: RIGHT TACK*/ - 0x22a3, /* U+0022a3: LEFT TACK*/ - 0x22a4, /* U+0022a4: DOWN TACK*/ - 0x22a5, /* U+0022a5: UP TACK*/ - 0x22a6, /* U+0022a6: ASSERTION*/ - 0x22a7, /* U+0022a7: MODELS*/ - 0x22a8, /* U+0022a8: TRUE*/ - 0x22a9, /* U+0022a9: FORCES*/ - 0x22aa, /* U+0022aa: TRIPLE VERTICAL BAR RIGHT TURNSTILE*/ - 0x22ab, /* U+0022ab: DOUBLE VERTICAL BAR DOUBLE RIGHT TURNSTILE*/ - 0x22ac, /* U+0022ac: DOES NOT PROVE*/ - 0x22ad, /* U+0022ad: NOT TRUE*/ - 0x22ae, /* U+0022ae: DOES NOT FORCE*/ - 0x22af, /* U+0022af: NEGATED DOUBLE VERTICAL BAR DOUBLE RIGHT TURNSTILE*/ - 0x22b0, /* U+0022b0: PRECEDES UNDER RELATION*/ - 0x22b1, /* U+0022b1: SUCCEEDS UNDER RELATION*/ - 0x22b2, /* U+0022b2: NORMAL SUBGROUP OF*/ - 0x22b3, /* U+0022b3: CONTAINS AS NORMAL SUBGROUP*/ - 0x22b4, /* U+0022b4: NORMAL SUBGROUP OF OR EQUAL TO*/ - 0x22b5, /* U+0022b5: CONTAINS AS NORMAL SUBGROUP OR EQUAL TO*/ - 0x22b6, /* U+0022b6: ORIGINAL OF*/ - 0x22b7, /* U+0022b7: IMAGE OF*/ - 0x22b8, /* U+0022b8: MULTIMAP*/ - 0x22b9, /* U+0022b9: HERMITIAN CONJUGATE MATRIX*/ - 0x22ba, /* U+0022ba: INTERCALATE*/ - 0x22bb, /* U+0022bb: XOR*/ - 0x22bc, /* U+0022bc: NAND*/ - 0x22bd, /* U+0022bd: NOR*/ - 0x22be, /* U+0022be: RIGHT ANGLE WITH ARC*/ - 0x22bf, /* U+0022bf: RIGHT TRIANGLE*/ - 0x22c0, /* U+0022c0: N-ARY LOGICAL AND*/ - 0x22c1, /* U+0022c1: N-ARY LOGICAL OR*/ - 0x22c2, /* U+0022c2: N-ARY INTERSECTION*/ - 0x22c3, /* U+0022c3: N-ARY UNION*/ - 0x22c4, /* U+0022c4: DIAMOND OPERATOR*/ - 0x22c5, /* U+0022c5: DOT OPERATOR*/ - 0x22c6, /* U+0022c6: STAR OPERATOR*/ - 0x22c7, /* U+0022c7: DIVISION TIMES*/ - 0x22c8, /* U+0022c8: BOWTIE*/ - 0x22c9, /* U+0022c9: LEFT NORMAL FACTOR SEMIDIRECT PRODUCT*/ - 0x22ca, /* U+0022ca: RIGHT NORMAL FACTOR SEMIDIRECT PRODUCT*/ - 0x22cb, /* U+0022cb: LEFT SEMIDIRECT PRODUCT*/ - 0x22cc, /* U+0022cc: RIGHT SEMIDIRECT PRODUCT*/ - 0x22cd, /* U+0022cd: REVERSED TILDE EQUALS*/ - 0x22ce, /* U+0022ce: CURLY LOGICAL OR*/ - 0x22cf, /* U+0022cf: CURLY LOGICAL AND*/ - 0x22d0, /* U+0022d0: DOUBLE SUBSET*/ - 0x22d1, /* U+0022d1: DOUBLE SUPERSET*/ - 0x22d2, /* U+0022d2: DOUBLE INTERSECTION*/ - 0x22d3, /* U+0022d3: DOUBLE UNION*/ - 0x22d4, /* U+0022d4: PITCHFORK*/ - 0x22d5, /* U+0022d5: EQUAL AND PARALLEL TO*/ - 0x22d6, /* U+0022d6: LESS-THAN WITH DOT*/ - 0x22d7, /* U+0022d7: GREATER-THAN WITH DOT*/ - 0x22d8, /* U+0022d8: VERY MUCH LESS-THAN*/ - 0x22d9, /* U+0022d9: VERY MUCH GREATER-THAN*/ - 0x22da, /* U+0022da: LESS-THAN EQUAL TO OR GREATER-THAN*/ - 0x22db, /* U+0022db: GREATER-THAN EQUAL TO OR LESS-THAN*/ - 0x22dc, /* U+0022dc: EQUAL TO OR LESS-THAN*/ - 0x22dd, /* U+0022dd: EQUAL TO OR GREATER-THAN*/ - 0x22de, /* U+0022de: EQUAL TO OR PRECEDES*/ - 0x22df, /* U+0022df: EQUAL TO OR SUCCEEDS*/ - 0x22e0, /* U+0022e0: DOES NOT PRECEDE OR EQUAL*/ - 0x22e1, /* U+0022e1: DOES NOT SUCCEED OR EQUAL*/ - 0x22e2, /* U+0022e2: NOT SQUARE IMAGE OF OR EQUAL TO*/ - 0x22e3, /* U+0022e3: NOT SQUARE ORIGINAL OF OR EQUAL TO*/ - 0x22e4, /* U+0022e4: SQUARE IMAGE OF OR NOT EQUAL TO*/ - 0x22e5, /* U+0022e5: SQUARE ORIGINAL OF OR NOT EQUAL TO*/ - 0x22e6, /* U+0022e6: LESS-THAN BUT NOT EQUIVALENT TO*/ - 0x22e7, /* U+0022e7: GREATER-THAN BUT NOT EQUIVALENT TO*/ - 0x22e8, /* U+0022e8: PRECEDES BUT NOT EQUIVALENT TO*/ - 0x22e9, /* U+0022e9: SUCCEEDS BUT NOT EQUIVALENT TO*/ - 0x22ea, /* U+0022ea: NOT NORMAL SUBGROUP OF*/ - 0x22eb, /* U+0022eb: DOES NOT CONTAIN AS NORMAL SUBGROUP*/ - 0x22ec, /* U+0022ec: NOT NORMAL SUBGROUP OF OR EQUAL TO*/ - 0x22ed, /* U+0022ed: DOES NOT CONTAIN AS NORMAL SUBGROUP OR EQUAL*/ - 0x22ee, /* U+0022ee: VERTICAL ELLIPSIS*/ - 0x22ef, /* U+0022ef: MIDLINE HORIZONTAL ELLIPSIS*/ - 0x22f0, /* U+0022f0: UP RIGHT DIAGONAL ELLIPSIS*/ - 0x22f1, /* U+0022f1: DOWN RIGHT DIAGONAL ELLIPSIS*/ - 0x22f2, /* U+0022f2: ELEMENT OF WITH LONG HORIZONTAL STROKE*/ - 0x22f3, /* U+0022f3: ELEMENT OF WITH VERTICAL BAR AT END OF HORIZONTAL STROKE*/ - 0x22f4, /* U+0022f4: SMALL ELEMENT OF WITH VERTICAL BAR AT END OF HORIZONTAL STROKE*/ - 0x22f5, /* U+0022f5: ELEMENT OF WITH DOT ABOVE*/ - 0x22f6, /* U+0022f6: ELEMENT OF WITH OVERBAR*/ - 0x22f7, /* U+0022f7: SMALL ELEMENT OF WITH OVERBAR*/ - 0x22f8, /* U+0022f8: ELEMENT OF WITH UNDERBAR*/ - 0x22f9, /* U+0022f9: ELEMENT OF WITH TWO HORIZONTAL STROKES*/ - 0x22fa, /* U+0022fa: CONTAINS WITH LONG HORIZONTAL STROKE*/ - 0x22fb, /* U+0022fb: CONTAINS WITH VERTICAL BAR AT END OF HORIZONTAL STROKE*/ - 0x22fc, /* U+0022fc: SMALL CONTAINS WITH VERTICAL BAR AT END OF HORIZONTAL STROKE*/ - 0x22fd, /* U+0022fd: CONTAINS WITH OVERBAR*/ - 0x22fe, /* U+0022fe: SMALL CONTAINS WITH OVERBAR*/ - 0x22ff, /* U+0022ff: Z NOTATION BAG MEMBERSHIP*/ - 0x2300, /* U+002300: DIAMETER SIGN*/ - 0x2301, /* U+002301: ELECTRIC ARROW*/ - 0x2302, /* U+002302: HOUSE*/ - 0x2303, /* U+002303: UP ARROWHEAD*/ - 0x2304, /* U+002304: DOWN ARROWHEAD*/ - 0x2305, /* U+002305: PROJECTIVE*/ - 0x2306, /* U+002306: PERSPECTIVE*/ - 0x2307, /* U+002307: WAVY LINE*/ - 0x2308, /* U+002308: LEFT CEILING*/ - 0x2309, /* U+002309: RIGHT CEILING*/ - 0x230a, /* U+00230a: LEFT FLOOR*/ - 0x230b, /* U+00230b: RIGHT FLOOR*/ - 0x230c, /* U+00230c: BOTTOM RIGHT CROP*/ - 0x230d, /* U+00230d: BOTTOM LEFT CROP*/ - 0x230e, /* U+00230e: TOP RIGHT CROP*/ - 0x230f, /* U+00230f: TOP LEFT CROP*/ - 0x2310, /* U+002310: REVERSED NOT SIGN*/ - 0x2311, /* U+002311: SQUARE LOZENGE*/ - 0x2312, /* U+002312: ARC*/ - 0x2313, /* U+002313: SEGMENT*/ - 0x2314, /* U+002314: SECTOR*/ - 0x2315, /* U+002315: TELEPHONE RECORDER*/ - 0x2316, /* U+002316: POSITION INDICATOR*/ - 0x2317, /* U+002317: VIEWDATA SQUARE*/ - 0x2318, /* U+002318: PLACE OF INTEREST SIGN*/ - 0x2319, /* U+002319: TURNED NOT SIGN*/ - 0x231a, /* U+00231a: WATCH*/ - 0x231b, /* U+00231b: HOURGLASS*/ - 0x231c, /* U+00231c: TOP LEFT CORNER*/ - 0x231d, /* U+00231d: TOP RIGHT CORNER*/ - 0x231e, /* U+00231e: BOTTOM LEFT CORNER*/ - 0x231f, /* U+00231f: BOTTOM RIGHT CORNER*/ - 0x2320, /* U+002320: TOP HALF INTEGRAL*/ - 0x2321, /* U+002321: BOTTOM HALF INTEGRAL*/ - 0x2322, /* U+002322: FROWN*/ - 0x2323, /* U+002323: SMILE*/ - 0x2324, /* U+002324: UP ARROWHEAD BETWEEN TWO HORIZONTAL BARS*/ - 0x2325, /* U+002325: OPTION KEY*/ - 0x2326, /* U+002326: ERASE TO THE RIGHT*/ - 0x2327, /* U+002327: X IN A RECTANGLE BOX*/ - 0x2328, /* U+002328: KEYBOARD*/ - 0x2329, /* U+002329: LEFT-POINTING ANGLE BRACKET*/ - 0x232a, /* U+00232a: RIGHT-POINTING ANGLE BRACKET*/ - 0x232b, /* U+00232b: ERASE TO THE LEFT*/ - 0x232c, /* U+00232c: BENZENE RING*/ - 0x232d, /* U+00232d: CYLINDRICITY*/ - 0x232e, /* U+00232e: ALL AROUND-PROFILE*/ - 0x232f, /* U+00232f: SYMMETRY*/ - 0x2330, /* U+002330: TOTAL RUNOUT*/ - 0x2331, /* U+002331: DIMENSION ORIGIN*/ - 0x2332, /* U+002332: CONICAL TAPER*/ - 0x2333, /* U+002333: SLOPE*/ - 0x2334, /* U+002334: COUNTERBORE*/ - 0x2335, /* U+002335: COUNTERSINK*/ - 0x2336, /* U+002336: APL FUNCTIONAL SYMBOL I-BEAM*/ - 0x2337, /* U+002337: APL FUNCTIONAL SYMBOL SQUISH QUAD*/ - 0x2338, /* U+002338: APL FUNCTIONAL SYMBOL QUAD EQUAL*/ - 0x2339, /* U+002339: APL FUNCTIONAL SYMBOL QUAD DIVIDE*/ - 0x233a, /* U+00233a: APL FUNCTIONAL SYMBOL QUAD DIAMOND*/ - 0x233b, /* U+00233b: APL FUNCTIONAL SYMBOL QUAD JOT*/ - 0x233c, /* U+00233c: APL FUNCTIONAL SYMBOL QUAD CIRCLE*/ - 0x233d, /* U+00233d: APL FUNCTIONAL SYMBOL CIRCLE STILE*/ - 0x233e, /* U+00233e: APL FUNCTIONAL SYMBOL CIRCLE JOT*/ - 0x233f, /* U+00233f: APL FUNCTIONAL SYMBOL SLASH BAR*/ - 0x2340, /* U+002340: APL FUNCTIONAL SYMBOL BACKSLASH BAR*/ - 0x2341, /* U+002341: APL FUNCTIONAL SYMBOL QUAD SLASH*/ - 0x2342, /* U+002342: APL FUNCTIONAL SYMBOL QUAD BACKSLASH*/ - 0x2343, /* U+002343: APL FUNCTIONAL SYMBOL QUAD LESS-THAN*/ - 0x2344, /* U+002344: APL FUNCTIONAL SYMBOL QUAD GREATER-THAN*/ - 0x2345, /* U+002345: APL FUNCTIONAL SYMBOL LEFTWARDS VANE*/ - 0x2346, /* U+002346: APL FUNCTIONAL SYMBOL RIGHTWARDS VANE*/ - 0x2347, /* U+002347: APL FUNCTIONAL SYMBOL QUAD LEFTWARDS ARROW*/ - 0x2348, /* U+002348: APL FUNCTIONAL SYMBOL QUAD RIGHTWARDS ARROW*/ - 0x2349, /* U+002349: APL FUNCTIONAL SYMBOL CIRCLE BACKSLASH*/ - 0x234a, /* U+00234a: APL FUNCTIONAL SYMBOL DOWN TACK UNDERBAR*/ - 0x234b, /* U+00234b: APL FUNCTIONAL SYMBOL DELTA STILE*/ - 0x234c, /* U+00234c: APL FUNCTIONAL SYMBOL QUAD DOWN CARET*/ - 0x234d, /* U+00234d: APL FUNCTIONAL SYMBOL QUAD DELTA*/ - 0x234e, /* U+00234e: APL FUNCTIONAL SYMBOL DOWN TACK JOT*/ - 0x234f, /* U+00234f: APL FUNCTIONAL SYMBOL UPWARDS VANE*/ - 0x2350, /* U+002350: APL FUNCTIONAL SYMBOL QUAD UPWARDS ARROW*/ - 0x2351, /* U+002351: APL FUNCTIONAL SYMBOL UP TACK OVERBAR*/ - 0x2352, /* U+002352: APL FUNCTIONAL SYMBOL DEL STILE*/ - 0x2353, /* U+002353: APL FUNCTIONAL SYMBOL QUAD UP CARET*/ - 0x2354, /* U+002354: APL FUNCTIONAL SYMBOL QUAD DEL*/ - 0x2355, /* U+002355: APL FUNCTIONAL SYMBOL UP TACK JOT*/ - 0x2356, /* U+002356: APL FUNCTIONAL SYMBOL DOWNWARDS VANE*/ - 0x2357, /* U+002357: APL FUNCTIONAL SYMBOL QUAD DOWNWARDS ARROW*/ - 0x2358, /* U+002358: APL FUNCTIONAL SYMBOL QUOTE UNDERBAR*/ - 0x2359, /* U+002359: APL FUNCTIONAL SYMBOL DELTA UNDERBAR*/ - 0x235a, /* U+00235a: APL FUNCTIONAL SYMBOL DIAMOND UNDERBAR*/ - 0x235b, /* U+00235b: APL FUNCTIONAL SYMBOL JOT UNDERBAR*/ - 0x235c, /* U+00235c: APL FUNCTIONAL SYMBOL CIRCLE UNDERBAR*/ - 0x235d, /* U+00235d: APL FUNCTIONAL SYMBOL UP SHOE JOT*/ - 0x235e, /* U+00235e: APL FUNCTIONAL SYMBOL QUOTE QUAD*/ - 0x235f, /* U+00235f: APL FUNCTIONAL SYMBOL CIRCLE STAR*/ - 0x2360, /* U+002360: APL FUNCTIONAL SYMBOL QUAD COLON*/ - 0x2361, /* U+002361: APL FUNCTIONAL SYMBOL UP TACK DIAERESIS*/ - 0x2362, /* U+002362: APL FUNCTIONAL SYMBOL DEL DIAERESIS*/ - 0x2363, /* U+002363: APL FUNCTIONAL SYMBOL STAR DIAERESIS*/ - 0x2364, /* U+002364: APL FUNCTIONAL SYMBOL JOT DIAERESIS*/ - 0x2365, /* U+002365: APL FUNCTIONAL SYMBOL CIRCLE DIAERESIS*/ - 0x2366, /* U+002366: APL FUNCTIONAL SYMBOL DOWN SHOE STILE*/ - 0x2367, /* U+002367: APL FUNCTIONAL SYMBOL LEFT SHOE STILE*/ - 0x2368, /* U+002368: APL FUNCTIONAL SYMBOL TILDE DIAERESIS*/ - 0x2369, /* U+002369: APL FUNCTIONAL SYMBOL GREATER-THAN DIAERESIS*/ - 0x236a, /* U+00236a: APL FUNCTIONAL SYMBOL COMMA BAR*/ - 0x236b, /* U+00236b: APL FUNCTIONAL SYMBOL DEL TILDE*/ - 0x236c, /* U+00236c: APL FUNCTIONAL SYMBOL ZILDE*/ - 0x236d, /* U+00236d: APL FUNCTIONAL SYMBOL STILE TILDE*/ - 0x236e, /* U+00236e: APL FUNCTIONAL SYMBOL SEMICOLON UNDERBAR*/ - 0x236f, /* U+00236f: APL FUNCTIONAL SYMBOL QUAD NOT EQUAL*/ - 0x2370, /* U+002370: APL FUNCTIONAL SYMBOL QUAD QUESTION*/ - 0x2371, /* U+002371: APL FUNCTIONAL SYMBOL DOWN CARET TILDE*/ - 0x2372, /* U+002372: APL FUNCTIONAL SYMBOL UP CARET TILDE*/ - 0x2373, /* U+002373: APL FUNCTIONAL SYMBOL IOTA*/ - 0x2374, /* U+002374: APL FUNCTIONAL SYMBOL RHO*/ - 0x2375, /* U+002375: APL FUNCTIONAL SYMBOL OMEGA*/ - 0x2376, /* U+002376: APL FUNCTIONAL SYMBOL ALPHA UNDERBAR*/ - 0x2377, /* U+002377: APL FUNCTIONAL SYMBOL EPSILON UNDERBAR*/ - 0x2378, /* U+002378: APL FUNCTIONAL SYMBOL IOTA UNDERBAR*/ - 0x2379, /* U+002379: APL FUNCTIONAL SYMBOL OMEGA UNDERBAR*/ - 0x237a, /* U+00237a: APL FUNCTIONAL SYMBOL ALPHA*/ - 0x237b, /* U+00237b: NOT CHECK MARK*/ - 0x237c, /* U+00237c: RIGHT ANGLE WITH DOWNWARDS ZIGZAG ARROW*/ - 0x237d, /* U+00237d: SHOULDERED OPEN BOX*/ - 0x237e, /* U+00237e: BELL SYMBOL*/ - 0x237f, /* U+00237f: VERTICAL LINE WITH MIDDLE DOT*/ - 0x2380, /* U+002380: INSERTION SYMBOL*/ - 0x2381, /* U+002381: CONTINUOUS UNDERLINE SYMBOL*/ - 0x2382, /* U+002382: DISCONTINUOUS UNDERLINE SYMBOL*/ - 0x2383, /* U+002383: EMPHASIS SYMBOL*/ - 0x2384, /* U+002384: COMPOSITION SYMBOL*/ - 0x2385, /* U+002385: WHITE SQUARE WITH CENTRE VERTICAL LINE*/ - 0x2386, /* U+002386: ENTER SYMBOL*/ - 0x2387, /* U+002387: ALTERNATIVE KEY SYMBOL*/ - 0x2388, /* U+002388: HELM SYMBOL*/ - 0x2389, /* U+002389: CIRCLED HORIZONTAL BAR WITH NOTCH*/ - 0x238a, /* U+00238a: CIRCLED TRIANGLE DOWN*/ - 0x238b, /* U+00238b: BROKEN CIRCLE WITH NORTHWEST ARROW*/ - 0x238c, /* U+00238c: UNDO SYMBOL*/ - 0x238d, /* U+00238d: MONOSTABLE SYMBOL*/ - 0x238e, /* U+00238e: HYSTERESIS SYMBOL*/ - 0x238f, /* U+00238f: OPEN-CIRCUIT-OUTPUT H-TYPE SYMBOL*/ - 0x2390, /* U+002390: OPEN-CIRCUIT-OUTPUT L-TYPE SYMBOL*/ - 0x2391, /* U+002391: PASSIVE-PULL-DOWN-OUTPUT SYMBOL*/ - 0x2392, /* U+002392: PASSIVE-PULL-UP-OUTPUT SYMBOL*/ - 0x2393, /* U+002393: DIRECT CURRENT SYMBOL FORM TWO*/ - 0x2394, /* U+002394: SOFTWARE-FUNCTION SYMBOL*/ - 0x2395, /* U+002395: APL FUNCTIONAL SYMBOL QUAD*/ - 0x2396, /* U+002396: DECIMAL SEPARATOR KEY SYMBOL*/ - 0x2397, /* U+002397: PREVIOUS PAGE*/ - 0x2398, /* U+002398: NEXT PAGE*/ - 0x2399, /* U+002399: PRINT SCREEN SYMBOL*/ - 0x239a, /* U+00239a: CLEAR SCREEN SYMBOL*/ - 0x239b, /* U+00239b: LEFT PARENTHESIS UPPER HOOK*/ - 0x239c, /* U+00239c: LEFT PARENTHESIS EXTENSION*/ - 0x239d, /* U+00239d: LEFT PARENTHESIS LOWER HOOK*/ - 0x239e, /* U+00239e: RIGHT PARENTHESIS UPPER HOOK*/ - 0x239f, /* U+00239f: RIGHT PARENTHESIS EXTENSION*/ - 0x23a0, /* U+0023a0: RIGHT PARENTHESIS LOWER HOOK*/ - 0x23a1, /* U+0023a1: LEFT SQUARE BRACKET UPPER CORNER*/ - 0x23a2, /* U+0023a2: LEFT SQUARE BRACKET EXTENSION*/ - 0x23a3, /* U+0023a3: LEFT SQUARE BRACKET LOWER CORNER*/ - 0x23a4, /* U+0023a4: RIGHT SQUARE BRACKET UPPER CORNER*/ - 0x23a5, /* U+0023a5: RIGHT SQUARE BRACKET EXTENSION*/ - 0x23a6, /* U+0023a6: RIGHT SQUARE BRACKET LOWER CORNER*/ - 0x23a7, /* U+0023a7: LEFT CURLY BRACKET UPPER HOOK*/ - 0x23a8, /* U+0023a8: LEFT CURLY BRACKET MIDDLE PIECE*/ - 0x23a9, /* U+0023a9: LEFT CURLY BRACKET LOWER HOOK*/ - 0x23aa, /* U+0023aa: CURLY BRACKET EXTENSION*/ - 0x23ab, /* U+0023ab: RIGHT CURLY BRACKET UPPER HOOK*/ - 0x23ac, /* U+0023ac: RIGHT CURLY BRACKET MIDDLE PIECE*/ - 0x23ad, /* U+0023ad: RIGHT CURLY BRACKET LOWER HOOK*/ - 0x23ae, /* U+0023ae: INTEGRAL EXTENSION*/ - 0x23af, /* U+0023af: HORIZONTAL LINE EXTENSION*/ - 0x23b0, /* U+0023b0: UPPER LEFT OR LOWER RIGHT CURLY BRACKET SECTION*/ - 0x23b1, /* U+0023b1: UPPER RIGHT OR LOWER LEFT CURLY BRACKET SECTION*/ - 0x23b2, /* U+0023b2: SUMMATION TOP*/ - 0x23b3, /* U+0023b3: SUMMATION BOTTOM*/ - 0x23b4, /* U+0023b4: TOP SQUARE BRACKET*/ - 0x23b5, /* U+0023b5: BOTTOM SQUARE BRACKET*/ - 0x23b6, /* U+0023b6: BOTTOM SQUARE BRACKET OVER TOP SQUARE BRACKET*/ - 0x23b7, /* U+0023b7: RADICAL SYMBOL BOTTOM*/ - 0x23b8, /* U+0023b8: LEFT VERTICAL BOX LINE*/ - 0x23b9, /* U+0023b9: RIGHT VERTICAL BOX LINE*/ - 0x23ba, /* U+0023ba: HORIZONTAL SCAN LINE-1*/ - 0x23bb, /* U+0023bb: HORIZONTAL SCAN LINE-3*/ - 0x23bc, /* U+0023bc: HORIZONTAL SCAN LINE-7*/ - 0x23bd, /* U+0023bd: HORIZONTAL SCAN LINE-9*/ - 0x23be, /* U+0023be: DENTISTRY SYMBOL LIGHT VERTICAL AND TOP RIGHT*/ - 0x23bf, /* U+0023bf: DENTISTRY SYMBOL LIGHT VERTICAL AND BOTTOM RIGHT*/ - 0x23c0, /* U+0023c0: DENTISTRY SYMBOL LIGHT VERTICAL WITH CIRCLE*/ - 0x23c1, /* U+0023c1: DENTISTRY SYMBOL LIGHT DOWN AND HORIZONTAL WITH CIRCLE*/ - 0x23c2, /* U+0023c2: DENTISTRY SYMBOL LIGHT UP AND HORIZONTAL WITH CIRCLE*/ - 0x23c3, /* U+0023c3: DENTISTRY SYMBOL LIGHT VERTICAL WITH TRIANGLE*/ - 0x23c4, /* U+0023c4: DENTISTRY SYMBOL LIGHT DOWN AND HORIZONTAL WITH TRIANGLE*/ - 0x23c5, /* U+0023c5: DENTISTRY SYMBOL LIGHT UP AND HORIZONTAL WITH TRIANGLE*/ - 0x23c6, /* U+0023c6: DENTISTRY SYMBOL LIGHT VERTICAL AND WAVE*/ - 0x23c7, /* U+0023c7: DENTISTRY SYMBOL LIGHT DOWN AND HORIZONTAL WITH WAVE*/ - 0x23c8, /* U+0023c8: DENTISTRY SYMBOL LIGHT UP AND HORIZONTAL WITH WAVE*/ - 0x23c9, /* U+0023c9: DENTISTRY SYMBOL LIGHT DOWN AND HORIZONTAL*/ - 0x23ca, /* U+0023ca: DENTISTRY SYMBOL LIGHT UP AND HORIZONTAL*/ - 0x23cb, /* U+0023cb: DENTISTRY SYMBOL LIGHT VERTICAL AND TOP LEFT*/ - 0x23cc, /* U+0023cc: DENTISTRY SYMBOL LIGHT VERTICAL AND BOTTOM LEFT*/ - 0x23cd, /* U+0023cd: SQUARE FOOT*/ - 0x23ce, /* U+0023ce: RETURN SYMBOL*/ - 0x23cf, /* U+0023cf: EJECT SYMBOL*/ - 0x23d0, /* U+0023d0: VERTICAL LINE EXTENSION*/ - 0x23d1, /* U+0023d1: METRICAL BREVE*/ - 0x23d2, /* U+0023d2: METRICAL LONG OVER SHORT*/ - 0x23d3, /* U+0023d3: METRICAL SHORT OVER LONG*/ - 0x23d4, /* U+0023d4: METRICAL LONG OVER TWO SHORTS*/ - 0x23d5, /* U+0023d5: METRICAL TWO SHORTS OVER LONG*/ - 0x23d6, /* U+0023d6: METRICAL TWO SHORTS JOINED*/ - 0x23d7, /* U+0023d7: METRICAL TRISEME*/ - 0x23d8, /* U+0023d8: METRICAL TETRASEME*/ - 0x23d9, /* U+0023d9: METRICAL PENTASEME*/ - 0x23da, /* U+0023da: EARTH GROUND*/ - 0x23db, /* U+0023db: FUSE*/ - 0x23dc, /* U+0023dc: */ - 0x23dd, /* U+0023dd: */ - 0x23de, /* U+0023de: */ - 0x23df, /* U+0023df: */ - 0x23e0, /* U+0023e0: */ - 0x23e1, /* U+0023e1: */ - 0x23e2, /* U+0023e2: */ - 0x23e3, /* U+0023e3: */ - 0x23e4, /* U+0023e4: */ - 0x23e5, /* U+0023e5: */ - 0x23e6, /* U+0023e6: */ - 0x23e7, /* U+0023e7: */ - 0x23e8, /* U+0023e8: */ - 0x23e9, /* U+0023e9: */ - 0x23ea, /* U+0023ea: */ - 0x23eb, /* U+0023eb: */ - 0x23ec, /* U+0023ec: */ - 0x23ed, /* U+0023ed: */ - 0x23ee, /* U+0023ee: */ - 0x23ef, /* U+0023ef: */ - 0x23f0, /* U+0023f0: */ - 0x23f1, /* U+0023f1: */ - 0x23f2, /* U+0023f2: */ - 0x23f3, /* U+0023f3: */ - 0x23f4, /* U+0023f4: */ - 0x23f5, /* U+0023f5: */ - 0x23f6, /* U+0023f6: */ - 0x23f7, /* U+0023f7: */ - 0x23f8, /* U+0023f8: */ - 0x23f9, /* U+0023f9: */ - 0x23fa, /* U+0023fa: */ - 0x23fb, /* U+0023fb: */ - 0x23fc, /* U+0023fc: */ - 0x23fd, /* U+0023fd: */ - 0x23fe, /* U+0023fe: */ - 0x23ff, /* U+0023ff: */ - 0x2400, /* U+002400: SYMBOL FOR NULL*/ - 0x2401, /* U+002401: SYMBOL FOR START OF HEADING*/ - 0x2402, /* U+002402: SYMBOL FOR START OF TEXT*/ - 0x2403, /* U+002403: SYMBOL FOR END OF TEXT*/ - 0x2404, /* U+002404: SYMBOL FOR END OF TRANSMISSION*/ - 0x2405, /* U+002405: SYMBOL FOR ENQUIRY*/ - 0x2406, /* U+002406: SYMBOL FOR ACKNOWLEDGE*/ - 0x2407, /* U+002407: SYMBOL FOR BELL*/ - 0x2408, /* U+002408: SYMBOL FOR BACKSPACE*/ - 0x2409, /* U+002409: SYMBOL FOR HORIZONTAL TABULATION*/ - 0x240a, /* U+00240a: SYMBOL FOR LINE FEED*/ - 0x240b, /* U+00240b: SYMBOL FOR VERTICAL TABULATION*/ - 0x240c, /* U+00240c: SYMBOL FOR FORM FEED*/ - 0x240d, /* U+00240d: SYMBOL FOR CARRIAGE RETURN*/ - 0x240e, /* U+00240e: SYMBOL FOR SHIFT OUT*/ - 0x240f, /* U+00240f: SYMBOL FOR SHIFT IN*/ - 0x2410, /* U+002410: SYMBOL FOR DATA LINK ESCAPE*/ - 0x2411, /* U+002411: SYMBOL FOR DEVICE CONTROL ONE*/ - 0x2412, /* U+002412: SYMBOL FOR DEVICE CONTROL TWO*/ - 0x2413, /* U+002413: SYMBOL FOR DEVICE CONTROL THREE*/ - 0x2414, /* U+002414: SYMBOL FOR DEVICE CONTROL FOUR*/ - 0x2415, /* U+002415: SYMBOL FOR NEGATIVE ACKNOWLEDGE*/ - 0x2416, /* U+002416: SYMBOL FOR SYNCHRONOUS IDLE*/ - 0x2417, /* U+002417: SYMBOL FOR END OF TRANSMISSION BLOCK*/ - 0x2418, /* U+002418: SYMBOL FOR CANCEL*/ - 0x2419, /* U+002419: SYMBOL FOR END OF MEDIUM*/ - 0x241a, /* U+00241a: SYMBOL FOR SUBSTITUTE*/ - 0x241b, /* U+00241b: SYMBOL FOR ESCAPE*/ - 0x241c, /* U+00241c: SYMBOL FOR FILE SEPARATOR*/ - 0x241d, /* U+00241d: SYMBOL FOR GROUP SEPARATOR*/ - 0x241e, /* U+00241e: SYMBOL FOR RECORD SEPARATOR*/ - 0x241f, /* U+00241f: SYMBOL FOR UNIT SEPARATOR*/ - 0x2420, /* U+002420: SYMBOL FOR SPACE*/ - 0x2421, /* U+002421: SYMBOL FOR DELETE*/ - 0x2422, /* U+002422: BLANK SYMBOL*/ - 0x2423, /* U+002423: OPEN BOX*/ - 0x2424, /* U+002424: SYMBOL FOR NEWLINE*/ - 0x2425, /* U+002425: SYMBOL FOR DELETE FORM TWO*/ - 0x2426, /* U+002426: SYMBOL FOR SUBSTITUTE FORM TWO*/ - 0x2427, /* U+002427: */ - 0x2428, /* U+002428: */ - 0x2429, /* U+002429: */ - 0x242a, /* U+00242a: */ - 0x242b, /* U+00242b: */ - 0x242c, /* U+00242c: */ - 0x242d, /* U+00242d: */ - 0x242e, /* U+00242e: */ - 0x242f, /* U+00242f: */ - 0x2430, /* U+002430: */ - 0x2431, /* U+002431: */ - 0x2432, /* U+002432: */ - 0x2433, /* U+002433: */ - 0x2434, /* U+002434: */ - 0x2435, /* U+002435: */ - 0x2436, /* U+002436: */ - 0x2437, /* U+002437: */ - 0x2438, /* U+002438: */ - 0x2439, /* U+002439: */ - 0x243a, /* U+00243a: */ - 0x243b, /* U+00243b: */ - 0x243c, /* U+00243c: */ - 0x243d, /* U+00243d: */ - 0x243e, /* U+00243e: */ - 0x243f, /* U+00243f: */ - 0x2440, /* U+002440: OCR HOOK*/ - 0x2441, /* U+002441: OCR CHAIR*/ - 0x2442, /* U+002442: OCR FORK*/ - 0x2443, /* U+002443: OCR INVERTED FORK*/ - 0x2444, /* U+002444: OCR BELT BUCKLE*/ - 0x2445, /* U+002445: OCR BOW TIE*/ - 0x2446, /* U+002446: OCR BRANCH BANK IDENTIFICATION*/ - 0x2447, /* U+002447: OCR AMOUNT OF CHECK*/ - 0x2448, /* U+002448: OCR DASH*/ - 0x2449, /* U+002449: OCR CUSTOMER ACCOUNT NUMBER*/ - 0x244a, /* U+00244a: OCR DOUBLE BACKSLASH*/ - 0x244b, /* U+00244b: */ - 0x244c, /* U+00244c: */ - 0x244d, /* U+00244d: */ - 0x244e, /* U+00244e: */ - 0x244f, /* U+00244f: */ - 0x2450, /* U+002450: */ - 0x2451, /* U+002451: */ - 0x2452, /* U+002452: */ - 0x2453, /* U+002453: */ - 0x2454, /* U+002454: */ - 0x2455, /* U+002455: */ - 0x2456, /* U+002456: */ - 0x2457, /* U+002457: */ - 0x2458, /* U+002458: */ - 0x2459, /* U+002459: */ - 0x245a, /* U+00245a: */ - 0x245b, /* U+00245b: */ - 0x245c, /* U+00245c: */ - 0x245d, /* U+00245d: */ - 0x245e, /* U+00245e: */ - 0x245f, /* U+00245f: */ - 0x2460, /* U+002460: CIRCLED DIGIT ONE*/ - 0x2461, /* U+002461: CIRCLED DIGIT TWO*/ - 0x2462, /* U+002462: CIRCLED DIGIT THREE*/ - 0x2463, /* U+002463: CIRCLED DIGIT FOUR*/ - 0x2464, /* U+002464: CIRCLED DIGIT FIVE*/ - 0x2465, /* U+002465: CIRCLED DIGIT SIX*/ - 0x2466, /* U+002466: CIRCLED DIGIT SEVEN*/ - 0x2467, /* U+002467: CIRCLED DIGIT EIGHT*/ - 0x2468, /* U+002468: CIRCLED DIGIT NINE*/ - 0x2469, /* U+002469: CIRCLED NUMBER TEN*/ - 0x246a, /* U+00246a: CIRCLED NUMBER ELEVEN*/ - 0x246b, /* U+00246b: CIRCLED NUMBER TWELVE*/ - 0x246c, /* U+00246c: CIRCLED NUMBER THIRTEEN*/ - 0x246d, /* U+00246d: CIRCLED NUMBER FOURTEEN*/ - 0x246e, /* U+00246e: CIRCLED NUMBER FIFTEEN*/ - 0x246f, /* U+00246f: CIRCLED NUMBER SIXTEEN*/ - 0x2470, /* U+002470: CIRCLED NUMBER SEVENTEEN*/ - 0x2471, /* U+002471: CIRCLED NUMBER EIGHTEEN*/ - 0x2472, /* U+002472: CIRCLED NUMBER NINETEEN*/ - 0x2473, /* U+002473: CIRCLED NUMBER TWENTY*/ - 0x2474, /* U+002474: PARENTHESIZED DIGIT ONE*/ - 0x2475, /* U+002475: PARENTHESIZED DIGIT TWO*/ - 0x2476, /* U+002476: PARENTHESIZED DIGIT THREE*/ - 0x2477, /* U+002477: PARENTHESIZED DIGIT FOUR*/ - 0x2478, /* U+002478: PARENTHESIZED DIGIT FIVE*/ - 0x2479, /* U+002479: PARENTHESIZED DIGIT SIX*/ - 0x247a, /* U+00247a: PARENTHESIZED DIGIT SEVEN*/ - 0x247b, /* U+00247b: PARENTHESIZED DIGIT EIGHT*/ - 0x247c, /* U+00247c: PARENTHESIZED DIGIT NINE*/ - 0x247d, /* U+00247d: PARENTHESIZED NUMBER TEN*/ - 0x247e, /* U+00247e: PARENTHESIZED NUMBER ELEVEN*/ - 0x247f, /* U+00247f: PARENTHESIZED NUMBER TWELVE*/ - 0x2480, /* U+002480: PARENTHESIZED NUMBER THIRTEEN*/ - 0x2481, /* U+002481: PARENTHESIZED NUMBER FOURTEEN*/ - 0x2482, /* U+002482: PARENTHESIZED NUMBER FIFTEEN*/ - 0x2483, /* U+002483: PARENTHESIZED NUMBER SIXTEEN*/ - 0x2484, /* U+002484: PARENTHESIZED NUMBER SEVENTEEN*/ - 0x2485, /* U+002485: PARENTHESIZED NUMBER EIGHTEEN*/ - 0x2486, /* U+002486: PARENTHESIZED NUMBER NINETEEN*/ - 0x2487, /* U+002487: PARENTHESIZED NUMBER TWENTY*/ - 0x2488, /* U+002488: DIGIT ONE FULL STOP*/ - 0x2489, /* U+002489: DIGIT TWO FULL STOP*/ - 0x248a, /* U+00248a: DIGIT THREE FULL STOP*/ - 0x248b, /* U+00248b: DIGIT FOUR FULL STOP*/ - 0x248c, /* U+00248c: DIGIT FIVE FULL STOP*/ - 0x248d, /* U+00248d: DIGIT SIX FULL STOP*/ - 0x248e, /* U+00248e: DIGIT SEVEN FULL STOP*/ - 0x248f, /* U+00248f: DIGIT EIGHT FULL STOP*/ - 0x2490, /* U+002490: DIGIT NINE FULL STOP*/ - 0x2491, /* U+002491: NUMBER TEN FULL STOP*/ - 0x2492, /* U+002492: NUMBER ELEVEN FULL STOP*/ - 0x2493, /* U+002493: NUMBER TWELVE FULL STOP*/ - 0x2494, /* U+002494: NUMBER THIRTEEN FULL STOP*/ - 0x2495, /* U+002495: NUMBER FOURTEEN FULL STOP*/ - 0x2496, /* U+002496: NUMBER FIFTEEN FULL STOP*/ - 0x2497, /* U+002497: NUMBER SIXTEEN FULL STOP*/ - 0x2498, /* U+002498: NUMBER SEVENTEEN FULL STOP*/ - 0x2499, /* U+002499: NUMBER EIGHTEEN FULL STOP*/ - 0x249a, /* U+00249a: NUMBER NINETEEN FULL STOP*/ - 0x249b, /* U+00249b: NUMBER TWENTY FULL STOP*/ - 0x249c, /* U+00249c: PARENTHESIZED LATIN SMALL LETTER A*/ - 0x249d, /* U+00249d: PARENTHESIZED LATIN SMALL LETTER B*/ - 0x249e, /* U+00249e: PARENTHESIZED LATIN SMALL LETTER C*/ - 0x249f, /* U+00249f: PARENTHESIZED LATIN SMALL LETTER D*/ - 0x24a0, /* U+0024a0: PARENTHESIZED LATIN SMALL LETTER E*/ - 0x24a1, /* U+0024a1: PARENTHESIZED LATIN SMALL LETTER F*/ - 0x24a2, /* U+0024a2: PARENTHESIZED LATIN SMALL LETTER G*/ - 0x24a3, /* U+0024a3: PARENTHESIZED LATIN SMALL LETTER H*/ - 0x24a4, /* U+0024a4: PARENTHESIZED LATIN SMALL LETTER I*/ - 0x24a5, /* U+0024a5: PARENTHESIZED LATIN SMALL LETTER J*/ - 0x24a6, /* U+0024a6: PARENTHESIZED LATIN SMALL LETTER K*/ - 0x24a7, /* U+0024a7: PARENTHESIZED LATIN SMALL LETTER L*/ - 0x24a8, /* U+0024a8: PARENTHESIZED LATIN SMALL LETTER M*/ - 0x24a9, /* U+0024a9: PARENTHESIZED LATIN SMALL LETTER N*/ - 0x24aa, /* U+0024aa: PARENTHESIZED LATIN SMALL LETTER O*/ - 0x24ab, /* U+0024ab: PARENTHESIZED LATIN SMALL LETTER P*/ - 0x24ac, /* U+0024ac: PARENTHESIZED LATIN SMALL LETTER Q*/ - 0x24ad, /* U+0024ad: PARENTHESIZED LATIN SMALL LETTER R*/ - 0x24ae, /* U+0024ae: PARENTHESIZED LATIN SMALL LETTER S*/ - 0x24af, /* U+0024af: PARENTHESIZED LATIN SMALL LETTER T*/ - 0x24b0, /* U+0024b0: PARENTHESIZED LATIN SMALL LETTER U*/ - 0x24b1, /* U+0024b1: PARENTHESIZED LATIN SMALL LETTER V*/ - 0x24b2, /* U+0024b2: PARENTHESIZED LATIN SMALL LETTER W*/ - 0x24b3, /* U+0024b3: PARENTHESIZED LATIN SMALL LETTER X*/ - 0x24b4, /* U+0024b4: PARENTHESIZED LATIN SMALL LETTER Y*/ - 0x24b5, /* U+0024b5: PARENTHESIZED LATIN SMALL LETTER Z*/ - 0x24d0, /* U+0024b6: CIRCLED LATIN CAPITAL LETTER A*/ - 0x24d1, /* U+0024b7: CIRCLED LATIN CAPITAL LETTER B*/ - 0x24d2, /* U+0024b8: CIRCLED LATIN CAPITAL LETTER C*/ - 0x24d3, /* U+0024b9: CIRCLED LATIN CAPITAL LETTER D*/ - 0x24d4, /* U+0024ba: CIRCLED LATIN CAPITAL LETTER E*/ - 0x24d5, /* U+0024bb: CIRCLED LATIN CAPITAL LETTER F*/ - 0x24d6, /* U+0024bc: CIRCLED LATIN CAPITAL LETTER G*/ - 0x24d7, /* U+0024bd: CIRCLED LATIN CAPITAL LETTER H*/ - 0x24d8, /* U+0024be: CIRCLED LATIN CAPITAL LETTER I*/ - 0x24d9, /* U+0024bf: CIRCLED LATIN CAPITAL LETTER J*/ - 0x24da, /* U+0024c0: CIRCLED LATIN CAPITAL LETTER K*/ - 0x24db, /* U+0024c1: CIRCLED LATIN CAPITAL LETTER L*/ - 0x24dc, /* U+0024c2: CIRCLED LATIN CAPITAL LETTER M*/ - 0x24dd, /* U+0024c3: CIRCLED LATIN CAPITAL LETTER N*/ - 0x24de, /* U+0024c4: CIRCLED LATIN CAPITAL LETTER O*/ - 0x24df, /* U+0024c5: CIRCLED LATIN CAPITAL LETTER P*/ - 0x24e0, /* U+0024c6: CIRCLED LATIN CAPITAL LETTER Q*/ - 0x24e1, /* U+0024c7: CIRCLED LATIN CAPITAL LETTER R*/ - 0x24e2, /* U+0024c8: CIRCLED LATIN CAPITAL LETTER S*/ - 0x24e3, /* U+0024c9: CIRCLED LATIN CAPITAL LETTER T*/ - 0x24e4, /* U+0024ca: CIRCLED LATIN CAPITAL LETTER U*/ - 0x24e5, /* U+0024cb: CIRCLED LATIN CAPITAL LETTER V*/ - 0x24e6, /* U+0024cc: CIRCLED LATIN CAPITAL LETTER W*/ - 0x24e7, /* U+0024cd: CIRCLED LATIN CAPITAL LETTER X*/ - 0x24e8, /* U+0024ce: CIRCLED LATIN CAPITAL LETTER Y*/ - 0x24e9, /* U+0024cf: CIRCLED LATIN CAPITAL LETTER Z*/ -}; - -static const RTUNICP g_afRTUniLower0x002c00[] = -{ - 0x2c30, /* U+002c00: GLAGOLITIC CAPITAL LETTER AZU*/ - 0x2c31, /* U+002c01: GLAGOLITIC CAPITAL LETTER BUKY*/ - 0x2c32, /* U+002c02: GLAGOLITIC CAPITAL LETTER VEDE*/ - 0x2c33, /* U+002c03: GLAGOLITIC CAPITAL LETTER GLAGOLI*/ - 0x2c34, /* U+002c04: GLAGOLITIC CAPITAL LETTER DOBRO*/ - 0x2c35, /* U+002c05: GLAGOLITIC CAPITAL LETTER YESTU*/ - 0x2c36, /* U+002c06: GLAGOLITIC CAPITAL LETTER ZHIVETE*/ - 0x2c37, /* U+002c07: GLAGOLITIC CAPITAL LETTER DZELO*/ - 0x2c38, /* U+002c08: GLAGOLITIC CAPITAL LETTER ZEMLJA*/ - 0x2c39, /* U+002c09: GLAGOLITIC CAPITAL LETTER IZHE*/ - 0x2c3a, /* U+002c0a: GLAGOLITIC CAPITAL LETTER INITIAL IZHE*/ - 0x2c3b, /* U+002c0b: GLAGOLITIC CAPITAL LETTER I*/ - 0x2c3c, /* U+002c0c: GLAGOLITIC CAPITAL LETTER DJERVI*/ - 0x2c3d, /* U+002c0d: GLAGOLITIC CAPITAL LETTER KAKO*/ - 0x2c3e, /* U+002c0e: GLAGOLITIC CAPITAL LETTER LJUDIJE*/ - 0x2c3f, /* U+002c0f: GLAGOLITIC CAPITAL LETTER MYSLITE*/ - 0x2c40, /* U+002c10: GLAGOLITIC CAPITAL LETTER NASHI*/ - 0x2c41, /* U+002c11: GLAGOLITIC CAPITAL LETTER ONU*/ - 0x2c42, /* U+002c12: GLAGOLITIC CAPITAL LETTER POKOJI*/ - 0x2c43, /* U+002c13: GLAGOLITIC CAPITAL LETTER RITSI*/ - 0x2c44, /* U+002c14: GLAGOLITIC CAPITAL LETTER SLOVO*/ - 0x2c45, /* U+002c15: GLAGOLITIC CAPITAL LETTER TVRIDO*/ - 0x2c46, /* U+002c16: GLAGOLITIC CAPITAL LETTER UKU*/ - 0x2c47, /* U+002c17: GLAGOLITIC CAPITAL LETTER FRITU*/ - 0x2c48, /* U+002c18: GLAGOLITIC CAPITAL LETTER HERU*/ - 0x2c49, /* U+002c19: GLAGOLITIC CAPITAL LETTER OTU*/ - 0x2c4a, /* U+002c1a: GLAGOLITIC CAPITAL LETTER PE*/ - 0x2c4b, /* U+002c1b: GLAGOLITIC CAPITAL LETTER SHTA*/ - 0x2c4c, /* U+002c1c: GLAGOLITIC CAPITAL LETTER TSI*/ - 0x2c4d, /* U+002c1d: GLAGOLITIC CAPITAL LETTER CHRIVI*/ - 0x2c4e, /* U+002c1e: GLAGOLITIC CAPITAL LETTER SHA*/ - 0x2c4f, /* U+002c1f: GLAGOLITIC CAPITAL LETTER YERU*/ - 0x2c50, /* U+002c20: GLAGOLITIC CAPITAL LETTER YERI*/ - 0x2c51, /* U+002c21: GLAGOLITIC CAPITAL LETTER YATI*/ - 0x2c52, /* U+002c22: GLAGOLITIC CAPITAL LETTER SPIDERY HA*/ - 0x2c53, /* U+002c23: GLAGOLITIC CAPITAL LETTER YU*/ - 0x2c54, /* U+002c24: GLAGOLITIC CAPITAL LETTER SMALL YUS*/ - 0x2c55, /* U+002c25: GLAGOLITIC CAPITAL LETTER SMALL YUS WITH TAIL*/ - 0x2c56, /* U+002c26: GLAGOLITIC CAPITAL LETTER YO*/ - 0x2c57, /* U+002c27: GLAGOLITIC CAPITAL LETTER IOTATED SMALL YUS*/ - 0x2c58, /* U+002c28: GLAGOLITIC CAPITAL LETTER BIG YUS*/ - 0x2c59, /* U+002c29: GLAGOLITIC CAPITAL LETTER IOTATED BIG YUS*/ - 0x2c5a, /* U+002c2a: GLAGOLITIC CAPITAL LETTER FITA*/ - 0x2c5b, /* U+002c2b: GLAGOLITIC CAPITAL LETTER IZHITSA*/ - 0x2c5c, /* U+002c2c: GLAGOLITIC CAPITAL LETTER SHTAPIC*/ - 0x2c5d, /* U+002c2d: GLAGOLITIC CAPITAL LETTER TROKUTASTI A*/ - 0x2c5e, /* U+002c2e: GLAGOLITIC CAPITAL LETTER LATINATE MYSLITE*/ - 0x2c2f, /* U+002c2f: */ - 0x2c30, /* U+002c30: GLAGOLITIC SMALL LETTER AZU*/ - 0x2c31, /* U+002c31: GLAGOLITIC SMALL LETTER BUKY*/ - 0x2c32, /* U+002c32: GLAGOLITIC SMALL LETTER VEDE*/ - 0x2c33, /* U+002c33: GLAGOLITIC SMALL LETTER GLAGOLI*/ - 0x2c34, /* U+002c34: GLAGOLITIC SMALL LETTER DOBRO*/ - 0x2c35, /* U+002c35: GLAGOLITIC SMALL LETTER YESTU*/ - 0x2c36, /* U+002c36: GLAGOLITIC SMALL LETTER ZHIVETE*/ - 0x2c37, /* U+002c37: GLAGOLITIC SMALL LETTER DZELO*/ - 0x2c38, /* U+002c38: GLAGOLITIC SMALL LETTER ZEMLJA*/ - 0x2c39, /* U+002c39: GLAGOLITIC SMALL LETTER IZHE*/ - 0x2c3a, /* U+002c3a: GLAGOLITIC SMALL LETTER INITIAL IZHE*/ - 0x2c3b, /* U+002c3b: GLAGOLITIC SMALL LETTER I*/ - 0x2c3c, /* U+002c3c: GLAGOLITIC SMALL LETTER DJERVI*/ - 0x2c3d, /* U+002c3d: GLAGOLITIC SMALL LETTER KAKO*/ - 0x2c3e, /* U+002c3e: GLAGOLITIC SMALL LETTER LJUDIJE*/ - 0x2c3f, /* U+002c3f: GLAGOLITIC SMALL LETTER MYSLITE*/ - 0x2c40, /* U+002c40: GLAGOLITIC SMALL LETTER NASHI*/ - 0x2c41, /* U+002c41: GLAGOLITIC SMALL LETTER ONU*/ - 0x2c42, /* U+002c42: GLAGOLITIC SMALL LETTER POKOJI*/ - 0x2c43, /* U+002c43: GLAGOLITIC SMALL LETTER RITSI*/ - 0x2c44, /* U+002c44: GLAGOLITIC SMALL LETTER SLOVO*/ - 0x2c45, /* U+002c45: GLAGOLITIC SMALL LETTER TVRIDO*/ - 0x2c46, /* U+002c46: GLAGOLITIC SMALL LETTER UKU*/ - 0x2c47, /* U+002c47: GLAGOLITIC SMALL LETTER FRITU*/ - 0x2c48, /* U+002c48: GLAGOLITIC SMALL LETTER HERU*/ - 0x2c49, /* U+002c49: GLAGOLITIC SMALL LETTER OTU*/ - 0x2c4a, /* U+002c4a: GLAGOLITIC SMALL LETTER PE*/ - 0x2c4b, /* U+002c4b: GLAGOLITIC SMALL LETTER SHTA*/ - 0x2c4c, /* U+002c4c: GLAGOLITIC SMALL LETTER TSI*/ - 0x2c4d, /* U+002c4d: GLAGOLITIC SMALL LETTER CHRIVI*/ - 0x2c4e, /* U+002c4e: GLAGOLITIC SMALL LETTER SHA*/ - 0x2c4f, /* U+002c4f: GLAGOLITIC SMALL LETTER YERU*/ - 0x2c50, /* U+002c50: GLAGOLITIC SMALL LETTER YERI*/ - 0x2c51, /* U+002c51: GLAGOLITIC SMALL LETTER YATI*/ - 0x2c52, /* U+002c52: GLAGOLITIC SMALL LETTER SPIDERY HA*/ - 0x2c53, /* U+002c53: GLAGOLITIC SMALL LETTER YU*/ - 0x2c54, /* U+002c54: GLAGOLITIC SMALL LETTER SMALL YUS*/ - 0x2c55, /* U+002c55: GLAGOLITIC SMALL LETTER SMALL YUS WITH TAIL*/ - 0x2c56, /* U+002c56: GLAGOLITIC SMALL LETTER YO*/ - 0x2c57, /* U+002c57: GLAGOLITIC SMALL LETTER IOTATED SMALL YUS*/ - 0x2c58, /* U+002c58: GLAGOLITIC SMALL LETTER BIG YUS*/ - 0x2c59, /* U+002c59: GLAGOLITIC SMALL LETTER IOTATED BIG YUS*/ - 0x2c5a, /* U+002c5a: GLAGOLITIC SMALL LETTER FITA*/ - 0x2c5b, /* U+002c5b: GLAGOLITIC SMALL LETTER IZHITSA*/ - 0x2c5c, /* U+002c5c: GLAGOLITIC SMALL LETTER SHTAPIC*/ - 0x2c5d, /* U+002c5d: GLAGOLITIC SMALL LETTER TROKUTASTI A*/ - 0x2c5e, /* U+002c5e: GLAGOLITIC SMALL LETTER LATINATE MYSLITE*/ - 0x2c5f, /* U+002c5f: */ - 0x2c60, /* U+002c60: */ - 0x2c61, /* U+002c61: */ - 0x2c62, /* U+002c62: */ - 0x2c63, /* U+002c63: */ - 0x2c64, /* U+002c64: */ - 0x2c65, /* U+002c65: */ - 0x2c66, /* U+002c66: */ - 0x2c67, /* U+002c67: */ - 0x2c68, /* U+002c68: */ - 0x2c69, /* U+002c69: */ - 0x2c6a, /* U+002c6a: */ - 0x2c6b, /* U+002c6b: */ - 0x2c6c, /* U+002c6c: */ - 0x2c6d, /* U+002c6d: */ - 0x2c6e, /* U+002c6e: */ - 0x2c6f, /* U+002c6f: */ - 0x2c70, /* U+002c70: */ - 0x2c71, /* U+002c71: */ - 0x2c72, /* U+002c72: */ - 0x2c73, /* U+002c73: */ - 0x2c74, /* U+002c74: */ - 0x2c75, /* U+002c75: */ - 0x2c76, /* U+002c76: */ - 0x2c77, /* U+002c77: */ - 0x2c78, /* U+002c78: */ - 0x2c79, /* U+002c79: */ - 0x2c7a, /* U+002c7a: */ - 0x2c7b, /* U+002c7b: */ - 0x2c7c, /* U+002c7c: */ - 0x2c7d, /* U+002c7d: */ - 0x2c7e, /* U+002c7e: */ - 0x2c7f, /* U+002c7f: */ - 0x2c81, /* U+002c80: COPTIC CAPITAL LETTER ALFA*/ - 0x2c81, /* U+002c81: COPTIC SMALL LETTER ALFA*/ - 0x2c83, /* U+002c82: COPTIC CAPITAL LETTER VIDA*/ - 0x2c83, /* U+002c83: COPTIC SMALL LETTER VIDA*/ - 0x2c85, /* U+002c84: COPTIC CAPITAL LETTER GAMMA*/ - 0x2c85, /* U+002c85: COPTIC SMALL LETTER GAMMA*/ - 0x2c87, /* U+002c86: COPTIC CAPITAL LETTER DALDA*/ - 0x2c87, /* U+002c87: COPTIC SMALL LETTER DALDA*/ - 0x2c89, /* U+002c88: COPTIC CAPITAL LETTER EIE*/ - 0x2c89, /* U+002c89: COPTIC SMALL LETTER EIE*/ - 0x2c8b, /* U+002c8a: COPTIC CAPITAL LETTER SOU*/ - 0x2c8b, /* U+002c8b: COPTIC SMALL LETTER SOU*/ - 0x2c8d, /* U+002c8c: COPTIC CAPITAL LETTER ZATA*/ - 0x2c8d, /* U+002c8d: COPTIC SMALL LETTER ZATA*/ - 0x2c8f, /* U+002c8e: COPTIC CAPITAL LETTER HATE*/ - 0x2c8f, /* U+002c8f: COPTIC SMALL LETTER HATE*/ - 0x2c91, /* U+002c90: COPTIC CAPITAL LETTER THETHE*/ - 0x2c91, /* U+002c91: COPTIC SMALL LETTER THETHE*/ - 0x2c93, /* U+002c92: COPTIC CAPITAL LETTER IAUDA*/ - 0x2c93, /* U+002c93: COPTIC SMALL LETTER IAUDA*/ - 0x2c95, /* U+002c94: COPTIC CAPITAL LETTER KAPA*/ - 0x2c95, /* U+002c95: COPTIC SMALL LETTER KAPA*/ - 0x2c97, /* U+002c96: COPTIC CAPITAL LETTER LAULA*/ - 0x2c97, /* U+002c97: COPTIC SMALL LETTER LAULA*/ - 0x2c99, /* U+002c98: COPTIC CAPITAL LETTER MI*/ - 0x2c99, /* U+002c99: COPTIC SMALL LETTER MI*/ - 0x2c9b, /* U+002c9a: COPTIC CAPITAL LETTER NI*/ - 0x2c9b, /* U+002c9b: COPTIC SMALL LETTER NI*/ - 0x2c9d, /* U+002c9c: COPTIC CAPITAL LETTER KSI*/ - 0x2c9d, /* U+002c9d: COPTIC SMALL LETTER KSI*/ - 0x2c9f, /* U+002c9e: COPTIC CAPITAL LETTER O*/ - 0x2c9f, /* U+002c9f: COPTIC SMALL LETTER O*/ - 0x2ca1, /* U+002ca0: COPTIC CAPITAL LETTER PI*/ - 0x2ca1, /* U+002ca1: COPTIC SMALL LETTER PI*/ - 0x2ca3, /* U+002ca2: COPTIC CAPITAL LETTER RO*/ - 0x2ca3, /* U+002ca3: COPTIC SMALL LETTER RO*/ - 0x2ca5, /* U+002ca4: COPTIC CAPITAL LETTER SIMA*/ - 0x2ca5, /* U+002ca5: COPTIC SMALL LETTER SIMA*/ - 0x2ca7, /* U+002ca6: COPTIC CAPITAL LETTER TAU*/ - 0x2ca7, /* U+002ca7: COPTIC SMALL LETTER TAU*/ - 0x2ca9, /* U+002ca8: COPTIC CAPITAL LETTER UA*/ - 0x2ca9, /* U+002ca9: COPTIC SMALL LETTER UA*/ - 0x2cab, /* U+002caa: COPTIC CAPITAL LETTER FI*/ - 0x2cab, /* U+002cab: COPTIC SMALL LETTER FI*/ - 0x2cad, /* U+002cac: COPTIC CAPITAL LETTER KHI*/ - 0x2cad, /* U+002cad: COPTIC SMALL LETTER KHI*/ - 0x2caf, /* U+002cae: COPTIC CAPITAL LETTER PSI*/ - 0x2caf, /* U+002caf: COPTIC SMALL LETTER PSI*/ - 0x2cb1, /* U+002cb0: COPTIC CAPITAL LETTER OOU*/ - 0x2cb1, /* U+002cb1: COPTIC SMALL LETTER OOU*/ - 0x2cb3, /* U+002cb2: COPTIC CAPITAL LETTER DIALECT-P ALEF*/ - 0x2cb3, /* U+002cb3: COPTIC SMALL LETTER DIALECT-P ALEF*/ - 0x2cb5, /* U+002cb4: COPTIC CAPITAL LETTER OLD COPTIC AIN*/ - 0x2cb5, /* U+002cb5: COPTIC SMALL LETTER OLD COPTIC AIN*/ - 0x2cb7, /* U+002cb6: COPTIC CAPITAL LETTER CRYPTOGRAMMIC EIE*/ - 0x2cb7, /* U+002cb7: COPTIC SMALL LETTER CRYPTOGRAMMIC EIE*/ - 0x2cb9, /* U+002cb8: COPTIC CAPITAL LETTER DIALECT-P KAPA*/ - 0x2cb9, /* U+002cb9: COPTIC SMALL LETTER DIALECT-P KAPA*/ - 0x2cbb, /* U+002cba: COPTIC CAPITAL LETTER DIALECT-P NI*/ - 0x2cbb, /* U+002cbb: COPTIC SMALL LETTER DIALECT-P NI*/ - 0x2cbd, /* U+002cbc: COPTIC CAPITAL LETTER CRYPTOGRAMMIC NI*/ - 0x2cbd, /* U+002cbd: COPTIC SMALL LETTER CRYPTOGRAMMIC NI*/ - 0x2cbf, /* U+002cbe: COPTIC CAPITAL LETTER OLD COPTIC OOU*/ - 0x2cbf, /* U+002cbf: COPTIC SMALL LETTER OLD COPTIC OOU*/ - 0x2cc1, /* U+002cc0: COPTIC CAPITAL LETTER SAMPI*/ - 0x2cc1, /* U+002cc1: COPTIC SMALL LETTER SAMPI*/ - 0x2cc3, /* U+002cc2: COPTIC CAPITAL LETTER CROSSED SHEI*/ - 0x2cc3, /* U+002cc3: COPTIC SMALL LETTER CROSSED SHEI*/ - 0x2cc5, /* U+002cc4: COPTIC CAPITAL LETTER OLD COPTIC SHEI*/ - 0x2cc5, /* U+002cc5: COPTIC SMALL LETTER OLD COPTIC SHEI*/ - 0x2cc7, /* U+002cc6: COPTIC CAPITAL LETTER OLD COPTIC ESH*/ - 0x2cc7, /* U+002cc7: COPTIC SMALL LETTER OLD COPTIC ESH*/ - 0x2cc9, /* U+002cc8: COPTIC CAPITAL LETTER AKHMIMIC KHEI*/ - 0x2cc9, /* U+002cc9: COPTIC SMALL LETTER AKHMIMIC KHEI*/ - 0x2ccb, /* U+002cca: COPTIC CAPITAL LETTER DIALECT-P HORI*/ - 0x2ccb, /* U+002ccb: COPTIC SMALL LETTER DIALECT-P HORI*/ - 0x2ccd, /* U+002ccc: COPTIC CAPITAL LETTER OLD COPTIC HORI*/ - 0x2ccd, /* U+002ccd: COPTIC SMALL LETTER OLD COPTIC HORI*/ - 0x2ccf, /* U+002cce: COPTIC CAPITAL LETTER OLD COPTIC HA*/ - 0x2ccf, /* U+002ccf: COPTIC SMALL LETTER OLD COPTIC HA*/ - 0x2cd1, /* U+002cd0: COPTIC CAPITAL LETTER L-SHAPED HA*/ - 0x2cd1, /* U+002cd1: COPTIC SMALL LETTER L-SHAPED HA*/ - 0x2cd3, /* U+002cd2: COPTIC CAPITAL LETTER OLD COPTIC HEI*/ - 0x2cd3, /* U+002cd3: COPTIC SMALL LETTER OLD COPTIC HEI*/ - 0x2cd5, /* U+002cd4: COPTIC CAPITAL LETTER OLD COPTIC HAT*/ - 0x2cd5, /* U+002cd5: COPTIC SMALL LETTER OLD COPTIC HAT*/ - 0x2cd7, /* U+002cd6: COPTIC CAPITAL LETTER OLD COPTIC GANGIA*/ - 0x2cd7, /* U+002cd7: COPTIC SMALL LETTER OLD COPTIC GANGIA*/ - 0x2cd9, /* U+002cd8: COPTIC CAPITAL LETTER OLD COPTIC DJA*/ - 0x2cd9, /* U+002cd9: COPTIC SMALL LETTER OLD COPTIC DJA*/ - 0x2cdb, /* U+002cda: COPTIC CAPITAL LETTER OLD COPTIC SHIMA*/ - 0x2cdb, /* U+002cdb: COPTIC SMALL LETTER OLD COPTIC SHIMA*/ - 0x2cdd, /* U+002cdc: COPTIC CAPITAL LETTER OLD NUBIAN SHIMA*/ - 0x2cdd, /* U+002cdd: COPTIC SMALL LETTER OLD NUBIAN SHIMA*/ - 0x2cdf, /* U+002cde: COPTIC CAPITAL LETTER OLD NUBIAN NGI*/ - 0x2cdf, /* U+002cdf: COPTIC SMALL LETTER OLD NUBIAN NGI*/ - 0x2ce1, /* U+002ce0: COPTIC CAPITAL LETTER OLD NUBIAN NYI*/ - 0x2ce1, /* U+002ce1: COPTIC SMALL LETTER OLD NUBIAN NYI*/ - 0x2ce3, /* U+002ce2: COPTIC CAPITAL LETTER OLD NUBIAN WAU*/ -}; - -static const RTUNICP g_afRTUniLower0x00ff21[] = -{ - 0xff41, /* U+00ff21: FULLWIDTH LATIN CAPITAL LETTER A*/ - 0xff42, /* U+00ff22: FULLWIDTH LATIN CAPITAL LETTER B*/ - 0xff43, /* U+00ff23: FULLWIDTH LATIN CAPITAL LETTER C*/ - 0xff44, /* U+00ff24: FULLWIDTH LATIN CAPITAL LETTER D*/ - 0xff45, /* U+00ff25: FULLWIDTH LATIN CAPITAL LETTER E*/ - 0xff46, /* U+00ff26: FULLWIDTH LATIN CAPITAL LETTER F*/ - 0xff47, /* U+00ff27: FULLWIDTH LATIN CAPITAL LETTER G*/ - 0xff48, /* U+00ff28: FULLWIDTH LATIN CAPITAL LETTER H*/ - 0xff49, /* U+00ff29: FULLWIDTH LATIN CAPITAL LETTER I*/ - 0xff4a, /* U+00ff2a: FULLWIDTH LATIN CAPITAL LETTER J*/ - 0xff4b, /* U+00ff2b: FULLWIDTH LATIN CAPITAL LETTER K*/ - 0xff4c, /* U+00ff2c: FULLWIDTH LATIN CAPITAL LETTER L*/ - 0xff4d, /* U+00ff2d: FULLWIDTH LATIN CAPITAL LETTER M*/ - 0xff4e, /* U+00ff2e: FULLWIDTH LATIN CAPITAL LETTER N*/ - 0xff4f, /* U+00ff2f: FULLWIDTH LATIN CAPITAL LETTER O*/ - 0xff50, /* U+00ff30: FULLWIDTH LATIN CAPITAL LETTER P*/ - 0xff51, /* U+00ff31: FULLWIDTH LATIN CAPITAL LETTER Q*/ - 0xff52, /* U+00ff32: FULLWIDTH LATIN CAPITAL LETTER R*/ - 0xff53, /* U+00ff33: FULLWIDTH LATIN CAPITAL LETTER S*/ - 0xff54, /* U+00ff34: FULLWIDTH LATIN CAPITAL LETTER T*/ - 0xff55, /* U+00ff35: FULLWIDTH LATIN CAPITAL LETTER U*/ - 0xff56, /* U+00ff36: FULLWIDTH LATIN CAPITAL LETTER V*/ - 0xff57, /* U+00ff37: FULLWIDTH LATIN CAPITAL LETTER W*/ - 0xff58, /* U+00ff38: FULLWIDTH LATIN CAPITAL LETTER X*/ - 0xff59, /* U+00ff39: FULLWIDTH LATIN CAPITAL LETTER Y*/ - 0xff5a, /* U+00ff3a: FULLWIDTH LATIN CAPITAL LETTER Z*/ -}; - -static const RTUNICP g_afRTUniLower0x010400[] = -{ - 0x10428, /* U+010400: DESERET CAPITAL LETTER LONG I*/ - 0x10429, /* U+010401: DESERET CAPITAL LETTER LONG E*/ - 0x1042a, /* U+010402: DESERET CAPITAL LETTER LONG A*/ - 0x1042b, /* U+010403: DESERET CAPITAL LETTER LONG AH*/ - 0x1042c, /* U+010404: DESERET CAPITAL LETTER LONG O*/ - 0x1042d, /* U+010405: DESERET CAPITAL LETTER LONG OO*/ - 0x1042e, /* U+010406: DESERET CAPITAL LETTER SHORT I*/ - 0x1042f, /* U+010407: DESERET CAPITAL LETTER SHORT E*/ - 0x10430, /* U+010408: DESERET CAPITAL LETTER SHORT A*/ - 0x10431, /* U+010409: DESERET CAPITAL LETTER SHORT AH*/ - 0x10432, /* U+01040a: DESERET CAPITAL LETTER SHORT O*/ - 0x10433, /* U+01040b: DESERET CAPITAL LETTER SHORT OO*/ - 0x10434, /* U+01040c: DESERET CAPITAL LETTER AY*/ - 0x10435, /* U+01040d: DESERET CAPITAL LETTER OW*/ - 0x10436, /* U+01040e: DESERET CAPITAL LETTER WU*/ - 0x10437, /* U+01040f: DESERET CAPITAL LETTER YEE*/ - 0x10438, /* U+010410: DESERET CAPITAL LETTER H*/ - 0x10439, /* U+010411: DESERET CAPITAL LETTER PEE*/ - 0x1043a, /* U+010412: DESERET CAPITAL LETTER BEE*/ - 0x1043b, /* U+010413: DESERET CAPITAL LETTER TEE*/ - 0x1043c, /* U+010414: DESERET CAPITAL LETTER DEE*/ - 0x1043d, /* U+010415: DESERET CAPITAL LETTER CHEE*/ - 0x1043e, /* U+010416: DESERET CAPITAL LETTER JEE*/ - 0x1043f, /* U+010417: DESERET CAPITAL LETTER KAY*/ - 0x10440, /* U+010418: DESERET CAPITAL LETTER GAY*/ - 0x10441, /* U+010419: DESERET CAPITAL LETTER EF*/ - 0x10442, /* U+01041a: DESERET CAPITAL LETTER VEE*/ - 0x10443, /* U+01041b: DESERET CAPITAL LETTER ETH*/ - 0x10444, /* U+01041c: DESERET CAPITAL LETTER THEE*/ - 0x10445, /* U+01041d: DESERET CAPITAL LETTER ES*/ - 0x10446, /* U+01041e: DESERET CAPITAL LETTER ZEE*/ - 0x10447, /* U+01041f: DESERET CAPITAL LETTER ESH*/ - 0x10448, /* U+010420: DESERET CAPITAL LETTER ZHEE*/ - 0x10449, /* U+010421: DESERET CAPITAL LETTER ER*/ - 0x1044a, /* U+010422: DESERET CAPITAL LETTER EL*/ - 0x1044b, /* U+010423: DESERET CAPITAL LETTER EM*/ - 0x1044c, /* U+010424: DESERET CAPITAL LETTER EN*/ - 0x1044d, /* U+010425: DESERET CAPITAL LETTER ENG*/ - 0x1044e, /* U+010426: DESERET CAPITAL LETTER OI*/ - 0x1044f, /* U+010427: DESERET CAPITAL LETTER EW*/ -}; - - -const RTUNICASERANGE g_aRTUniLowerRanges[] = -{ - { 0x000000, 0x000557, &g_afRTUniLower0x000000[0] }, - { 0x0010a0, 0x0010c6, &g_afRTUniLower0x0010a0[0] }, - { 0x001e00, 0x0024d0, &g_afRTUniLower0x001e00[0] }, - { 0x002c00, 0x002ce3, &g_afRTUniLower0x002c00[0] }, - { 0x00ff21, 0x00ff3b, &g_afRTUniLower0x00ff21[0] }, - { 0x010400, 0x010428, &g_afRTUniLower0x010400[0] }, - { ~(RTUNICP)0, ~(RTUNICP)0, NULL } -}; - diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Runtime/common/string/unidata-flags.cpp virtualbox-4.1.44-dfsg/src/VBox/Runtime/common/string/unidata-flags.cpp --- virtualbox-4.1.12-dfsg/src/VBox/Runtime/common/string/unidata-flags.cpp 1970-01-01 00:00:00.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Runtime/common/string/unidata-flags.cpp 2015-11-11 15:09:04.000000000 +0000 @@ -0,0 +1,47008 @@ +/* $Id: unidata-flags.cpp $ */ +/** @file + * IPRT - Unicode Tables. + * + * Automatically Generated from d:\src\unicode\6.3.0\ + * by ..\..\..\..\..\out\win.amd64\debug\obj\uniread\uniread.exe (May 22 2014 19:07:40) + */ + +/* + * Copyright (C) 2006-2014 Oracle Corporation + * + * This file is part of VirtualBox Open Source Edition (OSE), as + * available from http://www.virtualbox.org. This file is free software; + * you can redistribute it and/or modify it under the terms of the GNU + * General Public License (GPL) as published by the Free Software + * Foundation, in version 2 as it comes in the "COPYING" file of the + * VirtualBox OSE distribution. VirtualBox OSE is distributed in the + * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind. + * + * The contents of this file may alternatively be used under the terms + * of the Common Development and Distribution License Version 1.0 + * (CDDL) only, as it comes in the "COPYING.CDDL" file of the + * VirtualBox OSE distribution, in which case the provisions of the + * CDDL are applicable instead of those of the GPL. + * + * You may elect to license modified versions of this file under the + * terms and conditions of either the GPL or the CDDL or both. + */ + +#include + +static const uint8_t g_afRTUniFlags0x000000[] = +{ + 0, /* U+000000: */ + 0, /* U+000001: */ + 0, /* U+000002: */ + 0, /* U+000003: */ + 0, /* U+000004: */ + 0, /* U+000005: */ + 0, /* U+000006: */ + 0, /* U+000007: */ + 0, /* U+000008: */ + RTUNI_WSPACE, /* U+000009: */ + RTUNI_WSPACE, /* U+00000a: */ + RTUNI_WSPACE, /* U+00000b: */ + RTUNI_WSPACE, /* U+00000c: */ + RTUNI_WSPACE, /* U+00000d: */ + 0, /* U+00000e: */ + 0, /* U+00000f: */ + 0, /* U+000010: */ + 0, /* U+000011: */ + 0, /* U+000012: */ + 0, /* U+000013: */ + 0, /* U+000014: */ + 0, /* U+000015: */ + 0, /* U+000016: */ + 0, /* U+000017: */ + 0, /* U+000018: */ + 0, /* U+000019: */ + 0, /* U+00001a: */ + 0, /* U+00001b: */ + 0, /* U+00001c: */ + 0, /* U+00001d: */ + 0, /* U+00001e: */ + 0, /* U+00001f: */ + RTUNI_WSPACE, /* U+000020: SPACE*/ + 0, /* U+000021: EXCLAMATION MARK*/ + 0, /* U+000022: QUOTATION MARK*/ + 0, /* U+000023: NUMBER SIGN*/ + 0, /* U+000024: DOLLAR SIGN*/ + 0, /* U+000025: PERCENT SIGN*/ + 0, /* U+000026: AMPERSAND*/ + 0, /* U+000027: APOSTROPHE*/ + 0, /* U+000028: LEFT PARENTHESIS*/ + 0, /* U+000029: RIGHT PARENTHESIS*/ + 0, /* U+00002a: ASTERISK*/ + 0, /* U+00002b: PLUS SIGN*/ + 0, /* U+00002c: COMMA*/ + 0, /* U+00002d: HYPHEN-MINUS*/ + 0, /* U+00002e: FULL STOP*/ + 0, /* U+00002f: SOLIDUS*/ + RTUNI_XDIGIT | RTUNI_DDIGIT, /* U+000030: DIGIT ZERO*/ + RTUNI_XDIGIT | RTUNI_DDIGIT, /* U+000031: DIGIT ONE*/ + RTUNI_XDIGIT | RTUNI_DDIGIT, /* U+000032: DIGIT TWO*/ + RTUNI_XDIGIT | RTUNI_DDIGIT, /* U+000033: DIGIT THREE*/ + RTUNI_XDIGIT | RTUNI_DDIGIT, /* U+000034: DIGIT FOUR*/ + RTUNI_XDIGIT | RTUNI_DDIGIT, /* U+000035: DIGIT FIVE*/ + RTUNI_XDIGIT | RTUNI_DDIGIT, /* U+000036: DIGIT SIX*/ + RTUNI_XDIGIT | RTUNI_DDIGIT, /* U+000037: DIGIT SEVEN*/ + RTUNI_XDIGIT | RTUNI_DDIGIT, /* U+000038: DIGIT EIGHT*/ + RTUNI_XDIGIT | RTUNI_DDIGIT, /* U+000039: DIGIT NINE*/ + 0, /* U+00003a: COLON*/ + 0, /* U+00003b: SEMICOLON*/ + 0, /* U+00003c: LESS-THAN SIGN*/ + 0, /* U+00003d: EQUALS SIGN*/ + 0, /* U+00003e: GREATER-THAN SIGN*/ + 0, /* U+00003f: QUESTION MARK*/ + 0, /* U+000040: COMMERCIAL AT*/ + RTUNI_ALPHA | RTUNI_XDIGIT | RTUNI_UPPER, /* U+000041: LATIN CAPITAL LETTER A*/ + RTUNI_ALPHA | RTUNI_XDIGIT | RTUNI_UPPER, /* U+000042: LATIN CAPITAL LETTER B*/ + RTUNI_ALPHA | RTUNI_XDIGIT | RTUNI_UPPER, /* U+000043: LATIN CAPITAL LETTER C*/ + RTUNI_ALPHA | RTUNI_XDIGIT | RTUNI_UPPER, /* U+000044: LATIN CAPITAL LETTER D*/ + RTUNI_ALPHA | RTUNI_XDIGIT | RTUNI_UPPER, /* U+000045: LATIN CAPITAL LETTER E*/ + RTUNI_ALPHA | RTUNI_XDIGIT | RTUNI_UPPER, /* U+000046: LATIN CAPITAL LETTER F*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+000047: LATIN CAPITAL LETTER G*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+000048: LATIN CAPITAL LETTER H*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+000049: LATIN CAPITAL LETTER I*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+00004a: LATIN CAPITAL LETTER J*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+00004b: LATIN CAPITAL LETTER K*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+00004c: LATIN CAPITAL LETTER L*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+00004d: LATIN CAPITAL LETTER M*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+00004e: LATIN CAPITAL LETTER N*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+00004f: LATIN CAPITAL LETTER O*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+000050: LATIN CAPITAL LETTER P*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+000051: LATIN CAPITAL LETTER Q*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+000052: LATIN CAPITAL LETTER R*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+000053: LATIN CAPITAL LETTER S*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+000054: LATIN CAPITAL LETTER T*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+000055: LATIN CAPITAL LETTER U*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+000056: LATIN CAPITAL LETTER V*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+000057: LATIN CAPITAL LETTER W*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+000058: LATIN CAPITAL LETTER X*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+000059: LATIN CAPITAL LETTER Y*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+00005a: LATIN CAPITAL LETTER Z*/ + 0, /* U+00005b: LEFT SQUARE BRACKET*/ + 0, /* U+00005c: REVERSE SOLIDUS*/ + 0, /* U+00005d: RIGHT SQUARE BRACKET*/ + 0, /* U+00005e: CIRCUMFLEX ACCENT*/ + 0, /* U+00005f: LOW LINE*/ + 0, /* U+000060: GRAVE ACCENT*/ + RTUNI_ALPHA | RTUNI_XDIGIT | RTUNI_LOWER, /* U+000061: LATIN SMALL LETTER A*/ + RTUNI_ALPHA | RTUNI_XDIGIT | RTUNI_LOWER, /* U+000062: LATIN SMALL LETTER B*/ + RTUNI_ALPHA | RTUNI_XDIGIT | RTUNI_LOWER, /* U+000063: LATIN SMALL LETTER C*/ + RTUNI_ALPHA | RTUNI_XDIGIT | RTUNI_LOWER, /* U+000064: LATIN SMALL LETTER D*/ + RTUNI_ALPHA | RTUNI_XDIGIT | RTUNI_LOWER, /* U+000065: LATIN SMALL LETTER E*/ + RTUNI_ALPHA | RTUNI_XDIGIT | RTUNI_LOWER, /* U+000066: LATIN SMALL LETTER F*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+000067: LATIN SMALL LETTER G*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+000068: LATIN SMALL LETTER H*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+000069: LATIN SMALL LETTER I*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00006a: LATIN SMALL LETTER J*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00006b: LATIN SMALL LETTER K*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00006c: LATIN SMALL LETTER L*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00006d: LATIN SMALL LETTER M*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00006e: LATIN SMALL LETTER N*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00006f: LATIN SMALL LETTER O*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+000070: LATIN SMALL LETTER P*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+000071: LATIN SMALL LETTER Q*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+000072: LATIN SMALL LETTER R*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+000073: LATIN SMALL LETTER S*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+000074: LATIN SMALL LETTER T*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+000075: LATIN SMALL LETTER U*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+000076: LATIN SMALL LETTER V*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+000077: LATIN SMALL LETTER W*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+000078: LATIN SMALL LETTER X*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+000079: LATIN SMALL LETTER Y*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00007a: LATIN SMALL LETTER Z*/ + 0, /* U+00007b: LEFT CURLY BRACKET*/ + 0, /* U+00007c: VERTICAL LINE*/ + 0, /* U+00007d: RIGHT CURLY BRACKET*/ + 0, /* U+00007e: TILDE*/ + 0, /* U+00007f: */ + 0, /* U+000080: */ + 0, /* U+000081: */ + 0, /* U+000082: */ + 0, /* U+000083: */ + 0, /* U+000084: */ + RTUNI_WSPACE, /* U+000085: */ + 0, /* U+000086: */ + 0, /* U+000087: */ + 0, /* U+000088: */ + 0, /* U+000089: */ + 0, /* U+00008a: */ + 0, /* U+00008b: */ + 0, /* U+00008c: */ + 0, /* U+00008d: */ + 0, /* U+00008e: */ + 0, /* U+00008f: */ + 0, /* U+000090: */ + 0, /* U+000091: */ + 0, /* U+000092: */ + 0, /* U+000093: */ + 0, /* U+000094: */ + 0, /* U+000095: */ + 0, /* U+000096: */ + 0, /* U+000097: */ + 0, /* U+000098: */ + 0, /* U+000099: */ + 0, /* U+00009a: */ + 0, /* U+00009b: */ + 0, /* U+00009c: */ + 0, /* U+00009d: */ + 0, /* U+00009e: */ + 0, /* U+00009f: */ + RTUNI_WSPACE, /* U+0000a0: NO-BREAK SPACE*/ + 0, /* U+0000a1: INVERTED EXCLAMATION MARK*/ + 0, /* U+0000a2: CENT SIGN*/ + 0, /* U+0000a3: POUND SIGN*/ + 0, /* U+0000a4: CURRENCY SIGN*/ + 0, /* U+0000a5: YEN SIGN*/ + 0, /* U+0000a6: BROKEN BAR*/ + 0, /* U+0000a7: SECTION SIGN*/ + 0, /* U+0000a8: DIAERESIS*/ + 0, /* U+0000a9: COPYRIGHT SIGN*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+0000aa: FEMININE ORDINAL INDICATOR*/ + 0, /* U+0000ab: LEFT-POINTING DOUBLE ANGLE QUOTATION MARK*/ + 0, /* U+0000ac: NOT SIGN*/ + 0, /* U+0000ad: SOFT HYPHEN*/ + 0, /* U+0000ae: REGISTERED SIGN*/ + 0, /* U+0000af: MACRON*/ + 0, /* U+0000b0: DEGREE SIGN*/ + 0, /* U+0000b1: PLUS-MINUS SIGN*/ + 0, /* U+0000b2: SUPERSCRIPT TWO*/ + 0, /* U+0000b3: SUPERSCRIPT THREE*/ + 0, /* U+0000b4: ACUTE ACCENT*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+0000b5: MICRO SIGN*/ + 0, /* U+0000b6: PILCROW SIGN*/ + 0, /* U+0000b7: MIDDLE DOT*/ + 0, /* U+0000b8: CEDILLA*/ + 0, /* U+0000b9: SUPERSCRIPT ONE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+0000ba: MASCULINE ORDINAL INDICATOR*/ + 0, /* U+0000bb: RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK*/ + 0, /* U+0000bc: VULGAR FRACTION ONE QUARTER*/ + 0, /* U+0000bd: VULGAR FRACTION ONE HALF*/ + 0, /* U+0000be: VULGAR FRACTION THREE QUARTERS*/ + 0, /* U+0000bf: INVERTED QUESTION MARK*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+0000c0: LATIN CAPITAL LETTER A WITH GRAVE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+0000c1: LATIN CAPITAL LETTER A WITH ACUTE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+0000c2: LATIN CAPITAL LETTER A WITH CIRCUMFLEX*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+0000c3: LATIN CAPITAL LETTER A WITH TILDE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+0000c4: LATIN CAPITAL LETTER A WITH DIAERESIS*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+0000c5: LATIN CAPITAL LETTER A WITH RING ABOVE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+0000c6: LATIN CAPITAL LETTER AE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+0000c7: LATIN CAPITAL LETTER C WITH CEDILLA*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+0000c8: LATIN CAPITAL LETTER E WITH GRAVE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+0000c9: LATIN CAPITAL LETTER E WITH ACUTE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+0000ca: LATIN CAPITAL LETTER E WITH CIRCUMFLEX*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+0000cb: LATIN CAPITAL LETTER E WITH DIAERESIS*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+0000cc: LATIN CAPITAL LETTER I WITH GRAVE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+0000cd: LATIN CAPITAL LETTER I WITH ACUTE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+0000ce: LATIN CAPITAL LETTER I WITH CIRCUMFLEX*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+0000cf: LATIN CAPITAL LETTER I WITH DIAERESIS*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+0000d0: LATIN CAPITAL LETTER ETH*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+0000d1: LATIN CAPITAL LETTER N WITH TILDE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+0000d2: LATIN CAPITAL LETTER O WITH GRAVE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+0000d3: LATIN CAPITAL LETTER O WITH ACUTE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+0000d4: LATIN CAPITAL LETTER O WITH CIRCUMFLEX*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+0000d5: LATIN CAPITAL LETTER O WITH TILDE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+0000d6: LATIN CAPITAL LETTER O WITH DIAERESIS*/ + 0, /* U+0000d7: MULTIPLICATION SIGN*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+0000d8: LATIN CAPITAL LETTER O WITH STROKE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+0000d9: LATIN CAPITAL LETTER U WITH GRAVE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+0000da: LATIN CAPITAL LETTER U WITH ACUTE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+0000db: LATIN CAPITAL LETTER U WITH CIRCUMFLEX*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+0000dc: LATIN CAPITAL LETTER U WITH DIAERESIS*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+0000dd: LATIN CAPITAL LETTER Y WITH ACUTE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+0000de: LATIN CAPITAL LETTER THORN*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+0000df: LATIN SMALL LETTER SHARP S*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+0000e0: LATIN SMALL LETTER A WITH GRAVE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+0000e1: LATIN SMALL LETTER A WITH ACUTE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+0000e2: LATIN SMALL LETTER A WITH CIRCUMFLEX*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+0000e3: LATIN SMALL LETTER A WITH TILDE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+0000e4: LATIN SMALL LETTER A WITH DIAERESIS*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+0000e5: LATIN SMALL LETTER A WITH RING ABOVE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+0000e6: LATIN SMALL LETTER AE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+0000e7: LATIN SMALL LETTER C WITH CEDILLA*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+0000e8: LATIN SMALL LETTER E WITH GRAVE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+0000e9: LATIN SMALL LETTER E WITH ACUTE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+0000ea: LATIN SMALL LETTER E WITH CIRCUMFLEX*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+0000eb: LATIN SMALL LETTER E WITH DIAERESIS*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+0000ec: LATIN SMALL LETTER I WITH GRAVE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+0000ed: LATIN SMALL LETTER I WITH ACUTE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+0000ee: LATIN SMALL LETTER I WITH CIRCUMFLEX*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+0000ef: LATIN SMALL LETTER I WITH DIAERESIS*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+0000f0: LATIN SMALL LETTER ETH*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+0000f1: LATIN SMALL LETTER N WITH TILDE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+0000f2: LATIN SMALL LETTER O WITH GRAVE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+0000f3: LATIN SMALL LETTER O WITH ACUTE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+0000f4: LATIN SMALL LETTER O WITH CIRCUMFLEX*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+0000f5: LATIN SMALL LETTER O WITH TILDE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+0000f6: LATIN SMALL LETTER O WITH DIAERESIS*/ + 0, /* U+0000f7: DIVISION SIGN*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+0000f8: LATIN SMALL LETTER O WITH STROKE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+0000f9: LATIN SMALL LETTER U WITH GRAVE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+0000fa: LATIN SMALL LETTER U WITH ACUTE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+0000fb: LATIN SMALL LETTER U WITH CIRCUMFLEX*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+0000fc: LATIN SMALL LETTER U WITH DIAERESIS*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+0000fd: LATIN SMALL LETTER Y WITH ACUTE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+0000fe: LATIN SMALL LETTER THORN*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+0000ff: LATIN SMALL LETTER Y WITH DIAERESIS*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+000100: LATIN CAPITAL LETTER A WITH MACRON*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+000101: LATIN SMALL LETTER A WITH MACRON*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+000102: LATIN CAPITAL LETTER A WITH BREVE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+000103: LATIN SMALL LETTER A WITH BREVE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+000104: LATIN CAPITAL LETTER A WITH OGONEK*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+000105: LATIN SMALL LETTER A WITH OGONEK*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+000106: LATIN CAPITAL LETTER C WITH ACUTE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+000107: LATIN SMALL LETTER C WITH ACUTE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+000108: LATIN CAPITAL LETTER C WITH CIRCUMFLEX*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+000109: LATIN SMALL LETTER C WITH CIRCUMFLEX*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+00010a: LATIN CAPITAL LETTER C WITH DOT ABOVE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00010b: LATIN SMALL LETTER C WITH DOT ABOVE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+00010c: LATIN CAPITAL LETTER C WITH CARON*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00010d: LATIN SMALL LETTER C WITH CARON*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+00010e: LATIN CAPITAL LETTER D WITH CARON*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00010f: LATIN SMALL LETTER D WITH CARON*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+000110: LATIN CAPITAL LETTER D WITH STROKE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+000111: LATIN SMALL LETTER D WITH STROKE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+000112: LATIN CAPITAL LETTER E WITH MACRON*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+000113: LATIN SMALL LETTER E WITH MACRON*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+000114: LATIN CAPITAL LETTER E WITH BREVE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+000115: LATIN SMALL LETTER E WITH BREVE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+000116: LATIN CAPITAL LETTER E WITH DOT ABOVE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+000117: LATIN SMALL LETTER E WITH DOT ABOVE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+000118: LATIN CAPITAL LETTER E WITH OGONEK*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+000119: LATIN SMALL LETTER E WITH OGONEK*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+00011a: LATIN CAPITAL LETTER E WITH CARON*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00011b: LATIN SMALL LETTER E WITH CARON*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+00011c: LATIN CAPITAL LETTER G WITH CIRCUMFLEX*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00011d: LATIN SMALL LETTER G WITH CIRCUMFLEX*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+00011e: LATIN CAPITAL LETTER G WITH BREVE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00011f: LATIN SMALL LETTER G WITH BREVE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+000120: LATIN CAPITAL LETTER G WITH DOT ABOVE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+000121: LATIN SMALL LETTER G WITH DOT ABOVE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+000122: LATIN CAPITAL LETTER G WITH CEDILLA*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+000123: LATIN SMALL LETTER G WITH CEDILLA*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+000124: LATIN CAPITAL LETTER H WITH CIRCUMFLEX*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+000125: LATIN SMALL LETTER H WITH CIRCUMFLEX*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+000126: LATIN CAPITAL LETTER H WITH STROKE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+000127: LATIN SMALL LETTER H WITH STROKE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+000128: LATIN CAPITAL LETTER I WITH TILDE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+000129: LATIN SMALL LETTER I WITH TILDE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+00012a: LATIN CAPITAL LETTER I WITH MACRON*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00012b: LATIN SMALL LETTER I WITH MACRON*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+00012c: LATIN CAPITAL LETTER I WITH BREVE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00012d: LATIN SMALL LETTER I WITH BREVE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+00012e: LATIN CAPITAL LETTER I WITH OGONEK*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00012f: LATIN SMALL LETTER I WITH OGONEK*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+000130: LATIN CAPITAL LETTER I WITH DOT ABOVE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+000131: LATIN SMALL LETTER DOTLESS I*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+000132: LATIN CAPITAL LIGATURE IJ*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+000133: LATIN SMALL LIGATURE IJ*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+000134: LATIN CAPITAL LETTER J WITH CIRCUMFLEX*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+000135: LATIN SMALL LETTER J WITH CIRCUMFLEX*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+000136: LATIN CAPITAL LETTER K WITH CEDILLA*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+000137: LATIN SMALL LETTER K WITH CEDILLA*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+000138: LATIN SMALL LETTER KRA*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+000139: LATIN CAPITAL LETTER L WITH ACUTE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00013a: LATIN SMALL LETTER L WITH ACUTE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+00013b: LATIN CAPITAL LETTER L WITH CEDILLA*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00013c: LATIN SMALL LETTER L WITH CEDILLA*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+00013d: LATIN CAPITAL LETTER L WITH CARON*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00013e: LATIN SMALL LETTER L WITH CARON*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+00013f: LATIN CAPITAL LETTER L WITH MIDDLE DOT*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+000140: LATIN SMALL LETTER L WITH MIDDLE DOT*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+000141: LATIN CAPITAL LETTER L WITH STROKE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+000142: LATIN SMALL LETTER L WITH STROKE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+000143: LATIN CAPITAL LETTER N WITH ACUTE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+000144: LATIN SMALL LETTER N WITH ACUTE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+000145: LATIN CAPITAL LETTER N WITH CEDILLA*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+000146: LATIN SMALL LETTER N WITH CEDILLA*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+000147: LATIN CAPITAL LETTER N WITH CARON*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+000148: LATIN SMALL LETTER N WITH CARON*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+000149: LATIN SMALL LETTER N PRECEDED BY APOSTROPHE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+00014a: LATIN CAPITAL LETTER ENG*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00014b: LATIN SMALL LETTER ENG*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+00014c: LATIN CAPITAL LETTER O WITH MACRON*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00014d: LATIN SMALL LETTER O WITH MACRON*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+00014e: LATIN CAPITAL LETTER O WITH BREVE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00014f: LATIN SMALL LETTER O WITH BREVE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+000150: LATIN CAPITAL LETTER O WITH DOUBLE ACUTE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+000151: LATIN SMALL LETTER O WITH DOUBLE ACUTE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+000152: LATIN CAPITAL LIGATURE OE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+000153: LATIN SMALL LIGATURE OE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+000154: LATIN CAPITAL LETTER R WITH ACUTE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+000155: LATIN SMALL LETTER R WITH ACUTE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+000156: LATIN CAPITAL LETTER R WITH CEDILLA*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+000157: LATIN SMALL LETTER R WITH CEDILLA*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+000158: LATIN CAPITAL LETTER R WITH CARON*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+000159: LATIN SMALL LETTER R WITH CARON*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+00015a: LATIN CAPITAL LETTER S WITH ACUTE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00015b: LATIN SMALL LETTER S WITH ACUTE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+00015c: LATIN CAPITAL LETTER S WITH CIRCUMFLEX*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00015d: LATIN SMALL LETTER S WITH CIRCUMFLEX*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+00015e: LATIN CAPITAL LETTER S WITH CEDILLA*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00015f: LATIN SMALL LETTER S WITH CEDILLA*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+000160: LATIN CAPITAL LETTER S WITH CARON*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+000161: LATIN SMALL LETTER S WITH CARON*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+000162: LATIN CAPITAL LETTER T WITH CEDILLA*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+000163: LATIN SMALL LETTER T WITH CEDILLA*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+000164: LATIN CAPITAL LETTER T WITH CARON*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+000165: LATIN SMALL LETTER T WITH CARON*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+000166: LATIN CAPITAL LETTER T WITH STROKE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+000167: LATIN SMALL LETTER T WITH STROKE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+000168: LATIN CAPITAL LETTER U WITH TILDE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+000169: LATIN SMALL LETTER U WITH TILDE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+00016a: LATIN CAPITAL LETTER U WITH MACRON*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00016b: LATIN SMALL LETTER U WITH MACRON*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+00016c: LATIN CAPITAL LETTER U WITH BREVE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00016d: LATIN SMALL LETTER U WITH BREVE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+00016e: LATIN CAPITAL LETTER U WITH RING ABOVE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00016f: LATIN SMALL LETTER U WITH RING ABOVE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+000170: LATIN CAPITAL LETTER U WITH DOUBLE ACUTE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+000171: LATIN SMALL LETTER U WITH DOUBLE ACUTE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+000172: LATIN CAPITAL LETTER U WITH OGONEK*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+000173: LATIN SMALL LETTER U WITH OGONEK*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+000174: LATIN CAPITAL LETTER W WITH CIRCUMFLEX*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+000175: LATIN SMALL LETTER W WITH CIRCUMFLEX*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+000176: LATIN CAPITAL LETTER Y WITH CIRCUMFLEX*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+000177: LATIN SMALL LETTER Y WITH CIRCUMFLEX*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+000178: LATIN CAPITAL LETTER Y WITH DIAERESIS*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+000179: LATIN CAPITAL LETTER Z WITH ACUTE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00017a: LATIN SMALL LETTER Z WITH ACUTE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+00017b: LATIN CAPITAL LETTER Z WITH DOT ABOVE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00017c: LATIN SMALL LETTER Z WITH DOT ABOVE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+00017d: LATIN CAPITAL LETTER Z WITH CARON*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00017e: LATIN SMALL LETTER Z WITH CARON*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00017f: LATIN SMALL LETTER LONG S*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+000180: LATIN SMALL LETTER B WITH STROKE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+000181: LATIN CAPITAL LETTER B WITH HOOK*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+000182: LATIN CAPITAL LETTER B WITH TOPBAR*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+000183: LATIN SMALL LETTER B WITH TOPBAR*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+000184: LATIN CAPITAL LETTER TONE SIX*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+000185: LATIN SMALL LETTER TONE SIX*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+000186: LATIN CAPITAL LETTER OPEN O*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+000187: LATIN CAPITAL LETTER C WITH HOOK*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+000188: LATIN SMALL LETTER C WITH HOOK*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+000189: LATIN CAPITAL LETTER AFRICAN D*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+00018a: LATIN CAPITAL LETTER D WITH HOOK*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+00018b: LATIN CAPITAL LETTER D WITH TOPBAR*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00018c: LATIN SMALL LETTER D WITH TOPBAR*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00018d: LATIN SMALL LETTER TURNED DELTA*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+00018e: LATIN CAPITAL LETTER REVERSED E*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+00018f: LATIN CAPITAL LETTER SCHWA*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+000190: LATIN CAPITAL LETTER OPEN E*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+000191: LATIN CAPITAL LETTER F WITH HOOK*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+000192: LATIN SMALL LETTER F WITH HOOK*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+000193: LATIN CAPITAL LETTER G WITH HOOK*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+000194: LATIN CAPITAL LETTER GAMMA*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+000195: LATIN SMALL LETTER HV*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+000196: LATIN CAPITAL LETTER IOTA*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+000197: LATIN CAPITAL LETTER I WITH STROKE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+000198: LATIN CAPITAL LETTER K WITH HOOK*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+000199: LATIN SMALL LETTER K WITH HOOK*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00019a: LATIN SMALL LETTER L WITH BAR*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00019b: LATIN SMALL LETTER LAMBDA WITH STROKE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+00019c: LATIN CAPITAL LETTER TURNED M*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+00019d: LATIN CAPITAL LETTER N WITH LEFT HOOK*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00019e: LATIN SMALL LETTER N WITH LONG RIGHT LEG*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+00019f: LATIN CAPITAL LETTER O WITH MIDDLE TILDE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+0001a0: LATIN CAPITAL LETTER O WITH HORN*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+0001a1: LATIN SMALL LETTER O WITH HORN*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+0001a2: LATIN CAPITAL LETTER OI*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+0001a3: LATIN SMALL LETTER OI*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+0001a4: LATIN CAPITAL LETTER P WITH HOOK*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+0001a5: LATIN SMALL LETTER P WITH HOOK*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+0001a6: LATIN LETTER YR*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+0001a7: LATIN CAPITAL LETTER TONE TWO*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+0001a8: LATIN SMALL LETTER TONE TWO*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+0001a9: LATIN CAPITAL LETTER ESH*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+0001aa: LATIN LETTER REVERSED ESH LOOP*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+0001ab: LATIN SMALL LETTER T WITH PALATAL HOOK*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+0001ac: LATIN CAPITAL LETTER T WITH HOOK*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+0001ad: LATIN SMALL LETTER T WITH HOOK*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+0001ae: LATIN CAPITAL LETTER T WITH RETROFLEX HOOK*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+0001af: LATIN CAPITAL LETTER U WITH HORN*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+0001b0: LATIN SMALL LETTER U WITH HORN*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+0001b1: LATIN CAPITAL LETTER UPSILON*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+0001b2: LATIN CAPITAL LETTER V WITH HOOK*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+0001b3: LATIN CAPITAL LETTER Y WITH HOOK*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+0001b4: LATIN SMALL LETTER Y WITH HOOK*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+0001b5: LATIN CAPITAL LETTER Z WITH STROKE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+0001b6: LATIN SMALL LETTER Z WITH STROKE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+0001b7: LATIN CAPITAL LETTER EZH*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+0001b8: LATIN CAPITAL LETTER EZH REVERSED*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+0001b9: LATIN SMALL LETTER EZH REVERSED*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+0001ba: LATIN SMALL LETTER EZH WITH TAIL*/ + RTUNI_ALPHA, /* U+0001bb: LATIN LETTER TWO WITH STROKE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+0001bc: LATIN CAPITAL LETTER TONE FIVE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+0001bd: LATIN SMALL LETTER TONE FIVE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+0001be: LATIN LETTER INVERTED GLOTTAL STOP WITH STROKE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+0001bf: LATIN LETTER WYNN*/ + RTUNI_ALPHA, /* U+0001c0: LATIN LETTER DENTAL CLICK*/ + RTUNI_ALPHA, /* U+0001c1: LATIN LETTER LATERAL CLICK*/ + RTUNI_ALPHA, /* U+0001c2: LATIN LETTER ALVEOLAR CLICK*/ + RTUNI_ALPHA, /* U+0001c3: LATIN LETTER RETROFLEX CLICK*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+0001c4: LATIN CAPITAL LETTER DZ WITH CARON*/ + RTUNI_ALPHA, /* U+0001c5: LATIN CAPITAL LETTER D WITH SMALL LETTER Z WITH CARON*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+0001c6: LATIN SMALL LETTER DZ WITH CARON*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+0001c7: LATIN CAPITAL LETTER LJ*/ + RTUNI_ALPHA, /* U+0001c8: LATIN CAPITAL LETTER L WITH SMALL LETTER J*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+0001c9: LATIN SMALL LETTER LJ*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+0001ca: LATIN CAPITAL LETTER NJ*/ + RTUNI_ALPHA, /* U+0001cb: LATIN CAPITAL LETTER N WITH SMALL LETTER J*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+0001cc: LATIN SMALL LETTER NJ*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+0001cd: LATIN CAPITAL LETTER A WITH CARON*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+0001ce: LATIN SMALL LETTER A WITH CARON*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+0001cf: LATIN CAPITAL LETTER I WITH CARON*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+0001d0: LATIN SMALL LETTER I WITH CARON*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+0001d1: LATIN CAPITAL LETTER O WITH CARON*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+0001d2: LATIN SMALL LETTER O WITH CARON*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+0001d3: LATIN CAPITAL LETTER U WITH CARON*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+0001d4: LATIN SMALL LETTER U WITH CARON*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+0001d5: LATIN CAPITAL LETTER U WITH DIAERESIS AND MACRON*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+0001d6: LATIN SMALL LETTER U WITH DIAERESIS AND MACRON*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+0001d7: LATIN CAPITAL LETTER U WITH DIAERESIS AND ACUTE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+0001d8: LATIN SMALL LETTER U WITH DIAERESIS AND ACUTE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+0001d9: LATIN CAPITAL LETTER U WITH DIAERESIS AND CARON*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+0001da: LATIN SMALL LETTER U WITH DIAERESIS AND CARON*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+0001db: LATIN CAPITAL LETTER U WITH DIAERESIS AND GRAVE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+0001dc: LATIN SMALL LETTER U WITH DIAERESIS AND GRAVE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+0001dd: LATIN SMALL LETTER TURNED E*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+0001de: LATIN CAPITAL LETTER A WITH DIAERESIS AND MACRON*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+0001df: LATIN SMALL LETTER A WITH DIAERESIS AND MACRON*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+0001e0: LATIN CAPITAL LETTER A WITH DOT ABOVE AND MACRON*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+0001e1: LATIN SMALL LETTER A WITH DOT ABOVE AND MACRON*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+0001e2: LATIN CAPITAL LETTER AE WITH MACRON*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+0001e3: LATIN SMALL LETTER AE WITH MACRON*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+0001e4: LATIN CAPITAL LETTER G WITH STROKE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+0001e5: LATIN SMALL LETTER G WITH STROKE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+0001e6: LATIN CAPITAL LETTER G WITH CARON*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+0001e7: LATIN SMALL LETTER G WITH CARON*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+0001e8: LATIN CAPITAL LETTER K WITH CARON*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+0001e9: LATIN SMALL LETTER K WITH CARON*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+0001ea: LATIN CAPITAL LETTER O WITH OGONEK*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+0001eb: LATIN SMALL LETTER O WITH OGONEK*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+0001ec: LATIN CAPITAL LETTER O WITH OGONEK AND MACRON*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+0001ed: LATIN SMALL LETTER O WITH OGONEK AND MACRON*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+0001ee: LATIN CAPITAL LETTER EZH WITH CARON*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+0001ef: LATIN SMALL LETTER EZH WITH CARON*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+0001f0: LATIN SMALL LETTER J WITH CARON*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+0001f1: LATIN CAPITAL LETTER DZ*/ + RTUNI_ALPHA, /* U+0001f2: LATIN CAPITAL LETTER D WITH SMALL LETTER Z*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+0001f3: LATIN SMALL LETTER DZ*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+0001f4: LATIN CAPITAL LETTER G WITH ACUTE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+0001f5: LATIN SMALL LETTER G WITH ACUTE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+0001f6: LATIN CAPITAL LETTER HWAIR*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+0001f7: LATIN CAPITAL LETTER WYNN*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+0001f8: LATIN CAPITAL LETTER N WITH GRAVE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+0001f9: LATIN SMALL LETTER N WITH GRAVE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+0001fa: LATIN CAPITAL LETTER A WITH RING ABOVE AND ACUTE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+0001fb: LATIN SMALL LETTER A WITH RING ABOVE AND ACUTE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+0001fc: LATIN CAPITAL LETTER AE WITH ACUTE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+0001fd: LATIN SMALL LETTER AE WITH ACUTE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+0001fe: LATIN CAPITAL LETTER O WITH STROKE AND ACUTE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+0001ff: LATIN SMALL LETTER O WITH STROKE AND ACUTE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+000200: LATIN CAPITAL LETTER A WITH DOUBLE GRAVE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+000201: LATIN SMALL LETTER A WITH DOUBLE GRAVE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+000202: LATIN CAPITAL LETTER A WITH INVERTED BREVE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+000203: LATIN SMALL LETTER A WITH INVERTED BREVE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+000204: LATIN CAPITAL LETTER E WITH DOUBLE GRAVE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+000205: LATIN SMALL LETTER E WITH DOUBLE GRAVE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+000206: LATIN CAPITAL LETTER E WITH INVERTED BREVE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+000207: LATIN SMALL LETTER E WITH INVERTED BREVE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+000208: LATIN CAPITAL LETTER I WITH DOUBLE GRAVE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+000209: LATIN SMALL LETTER I WITH DOUBLE GRAVE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+00020a: LATIN CAPITAL LETTER I WITH INVERTED BREVE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00020b: LATIN SMALL LETTER I WITH INVERTED BREVE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+00020c: LATIN CAPITAL LETTER O WITH DOUBLE GRAVE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00020d: LATIN SMALL LETTER O WITH DOUBLE GRAVE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+00020e: LATIN CAPITAL LETTER O WITH INVERTED BREVE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00020f: LATIN SMALL LETTER O WITH INVERTED BREVE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+000210: LATIN CAPITAL LETTER R WITH DOUBLE GRAVE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+000211: LATIN SMALL LETTER R WITH DOUBLE GRAVE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+000212: LATIN CAPITAL LETTER R WITH INVERTED BREVE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+000213: LATIN SMALL LETTER R WITH INVERTED BREVE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+000214: LATIN CAPITAL LETTER U WITH DOUBLE GRAVE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+000215: LATIN SMALL LETTER U WITH DOUBLE GRAVE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+000216: LATIN CAPITAL LETTER U WITH INVERTED BREVE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+000217: LATIN SMALL LETTER U WITH INVERTED BREVE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+000218: LATIN CAPITAL LETTER S WITH COMMA BELOW*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+000219: LATIN SMALL LETTER S WITH COMMA BELOW*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+00021a: LATIN CAPITAL LETTER T WITH COMMA BELOW*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00021b: LATIN SMALL LETTER T WITH COMMA BELOW*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+00021c: LATIN CAPITAL LETTER YOGH*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00021d: LATIN SMALL LETTER YOGH*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+00021e: LATIN CAPITAL LETTER H WITH CARON*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00021f: LATIN SMALL LETTER H WITH CARON*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+000220: LATIN CAPITAL LETTER N WITH LONG RIGHT LEG*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+000221: LATIN SMALL LETTER D WITH CURL*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+000222: LATIN CAPITAL LETTER OU*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+000223: LATIN SMALL LETTER OU*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+000224: LATIN CAPITAL LETTER Z WITH HOOK*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+000225: LATIN SMALL LETTER Z WITH HOOK*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+000226: LATIN CAPITAL LETTER A WITH DOT ABOVE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+000227: LATIN SMALL LETTER A WITH DOT ABOVE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+000228: LATIN CAPITAL LETTER E WITH CEDILLA*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+000229: LATIN SMALL LETTER E WITH CEDILLA*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+00022a: LATIN CAPITAL LETTER O WITH DIAERESIS AND MACRON*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00022b: LATIN SMALL LETTER O WITH DIAERESIS AND MACRON*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+00022c: LATIN CAPITAL LETTER O WITH TILDE AND MACRON*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00022d: LATIN SMALL LETTER O WITH TILDE AND MACRON*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+00022e: LATIN CAPITAL LETTER O WITH DOT ABOVE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00022f: LATIN SMALL LETTER O WITH DOT ABOVE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+000230: LATIN CAPITAL LETTER O WITH DOT ABOVE AND MACRON*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+000231: LATIN SMALL LETTER O WITH DOT ABOVE AND MACRON*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+000232: LATIN CAPITAL LETTER Y WITH MACRON*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+000233: LATIN SMALL LETTER Y WITH MACRON*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+000234: LATIN SMALL LETTER L WITH CURL*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+000235: LATIN SMALL LETTER N WITH CURL*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+000236: LATIN SMALL LETTER T WITH CURL*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+000237: LATIN SMALL LETTER DOTLESS J*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+000238: LATIN SMALL LETTER DB DIGRAPH*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+000239: LATIN SMALL LETTER QP DIGRAPH*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+00023a: LATIN CAPITAL LETTER A WITH STROKE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+00023b: LATIN CAPITAL LETTER C WITH STROKE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00023c: LATIN SMALL LETTER C WITH STROKE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+00023d: LATIN CAPITAL LETTER L WITH BAR*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+00023e: LATIN CAPITAL LETTER T WITH DIAGONAL STROKE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00023f: LATIN SMALL LETTER S WITH SWASH TAIL*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+000240: LATIN SMALL LETTER Z WITH SWASH TAIL*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+000241: LATIN CAPITAL LETTER GLOTTAL STOP*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+000242: LATIN SMALL LETTER GLOTTAL STOP*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+000243: LATIN CAPITAL LETTER B WITH STROKE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+000244: LATIN CAPITAL LETTER U BAR*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+000245: LATIN CAPITAL LETTER TURNED V*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+000246: LATIN CAPITAL LETTER E WITH STROKE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+000247: LATIN SMALL LETTER E WITH STROKE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+000248: LATIN CAPITAL LETTER J WITH STROKE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+000249: LATIN SMALL LETTER J WITH STROKE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+00024a: LATIN CAPITAL LETTER SMALL Q WITH HOOK TAIL*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00024b: LATIN SMALL LETTER Q WITH HOOK TAIL*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+00024c: LATIN CAPITAL LETTER R WITH STROKE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00024d: LATIN SMALL LETTER R WITH STROKE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+00024e: LATIN CAPITAL LETTER Y WITH STROKE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00024f: LATIN SMALL LETTER Y WITH STROKE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+000250: LATIN SMALL LETTER TURNED A*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+000251: LATIN SMALL LETTER ALPHA*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+000252: LATIN SMALL LETTER TURNED ALPHA*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+000253: LATIN SMALL LETTER B WITH HOOK*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+000254: LATIN SMALL LETTER OPEN O*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+000255: LATIN SMALL LETTER C WITH CURL*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+000256: LATIN SMALL LETTER D WITH TAIL*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+000257: LATIN SMALL LETTER D WITH HOOK*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+000258: LATIN SMALL LETTER REVERSED E*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+000259: LATIN SMALL LETTER SCHWA*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00025a: LATIN SMALL LETTER SCHWA WITH HOOK*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00025b: LATIN SMALL LETTER OPEN E*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00025c: LATIN SMALL LETTER REVERSED OPEN E*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00025d: LATIN SMALL LETTER REVERSED OPEN E WITH HOOK*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00025e: LATIN SMALL LETTER CLOSED REVERSED OPEN E*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00025f: LATIN SMALL LETTER DOTLESS J WITH STROKE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+000260: LATIN SMALL LETTER G WITH HOOK*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+000261: LATIN SMALL LETTER SCRIPT G*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+000262: LATIN LETTER SMALL CAPITAL G*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+000263: LATIN SMALL LETTER GAMMA*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+000264: LATIN SMALL LETTER RAMS HORN*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+000265: LATIN SMALL LETTER TURNED H*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+000266: LATIN SMALL LETTER H WITH HOOK*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+000267: LATIN SMALL LETTER HENG WITH HOOK*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+000268: LATIN SMALL LETTER I WITH STROKE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+000269: LATIN SMALL LETTER IOTA*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00026a: LATIN LETTER SMALL CAPITAL I*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00026b: LATIN SMALL LETTER L WITH MIDDLE TILDE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00026c: LATIN SMALL LETTER L WITH BELT*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00026d: LATIN SMALL LETTER L WITH RETROFLEX HOOK*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00026e: LATIN SMALL LETTER LEZH*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00026f: LATIN SMALL LETTER TURNED M*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+000270: LATIN SMALL LETTER TURNED M WITH LONG LEG*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+000271: LATIN SMALL LETTER M WITH HOOK*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+000272: LATIN SMALL LETTER N WITH LEFT HOOK*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+000273: LATIN SMALL LETTER N WITH RETROFLEX HOOK*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+000274: LATIN LETTER SMALL CAPITAL N*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+000275: LATIN SMALL LETTER BARRED O*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+000276: LATIN LETTER SMALL CAPITAL OE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+000277: LATIN SMALL LETTER CLOSED OMEGA*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+000278: LATIN SMALL LETTER PHI*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+000279: LATIN SMALL LETTER TURNED R*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00027a: LATIN SMALL LETTER TURNED R WITH LONG LEG*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00027b: LATIN SMALL LETTER TURNED R WITH HOOK*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00027c: LATIN SMALL LETTER R WITH LONG LEG*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00027d: LATIN SMALL LETTER R WITH TAIL*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00027e: LATIN SMALL LETTER R WITH FISHHOOK*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00027f: LATIN SMALL LETTER REVERSED R WITH FISHHOOK*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+000280: LATIN LETTER SMALL CAPITAL R*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+000281: LATIN LETTER SMALL CAPITAL INVERTED R*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+000282: LATIN SMALL LETTER S WITH HOOK*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+000283: LATIN SMALL LETTER ESH*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+000284: LATIN SMALL LETTER DOTLESS J WITH STROKE AND HOOK*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+000285: LATIN SMALL LETTER SQUAT REVERSED ESH*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+000286: LATIN SMALL LETTER ESH WITH CURL*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+000287: LATIN SMALL LETTER TURNED T*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+000288: LATIN SMALL LETTER T WITH RETROFLEX HOOK*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+000289: LATIN SMALL LETTER U BAR*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00028a: LATIN SMALL LETTER UPSILON*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00028b: LATIN SMALL LETTER V WITH HOOK*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00028c: LATIN SMALL LETTER TURNED V*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00028d: LATIN SMALL LETTER TURNED W*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00028e: LATIN SMALL LETTER TURNED Y*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00028f: LATIN LETTER SMALL CAPITAL Y*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+000290: LATIN SMALL LETTER Z WITH RETROFLEX HOOK*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+000291: LATIN SMALL LETTER Z WITH CURL*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+000292: LATIN SMALL LETTER EZH*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+000293: LATIN SMALL LETTER EZH WITH CURL*/ + RTUNI_ALPHA, /* U+000294: LATIN LETTER GLOTTAL STOP*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+000295: LATIN LETTER PHARYNGEAL VOICED FRICATIVE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+000296: LATIN LETTER INVERTED GLOTTAL STOP*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+000297: LATIN LETTER STRETCHED C*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+000298: LATIN LETTER BILABIAL CLICK*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+000299: LATIN LETTER SMALL CAPITAL B*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00029a: LATIN SMALL LETTER CLOSED OPEN E*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00029b: LATIN LETTER SMALL CAPITAL G WITH HOOK*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00029c: LATIN LETTER SMALL CAPITAL H*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00029d: LATIN SMALL LETTER J WITH CROSSED-TAIL*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00029e: LATIN SMALL LETTER TURNED K*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00029f: LATIN LETTER SMALL CAPITAL L*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+0002a0: LATIN SMALL LETTER Q WITH HOOK*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+0002a1: LATIN LETTER GLOTTAL STOP WITH STROKE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+0002a2: LATIN LETTER REVERSED GLOTTAL STOP WITH STROKE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+0002a3: LATIN SMALL LETTER DZ DIGRAPH*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+0002a4: LATIN SMALL LETTER DEZH DIGRAPH*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+0002a5: LATIN SMALL LETTER DZ DIGRAPH WITH CURL*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+0002a6: LATIN SMALL LETTER TS DIGRAPH*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+0002a7: LATIN SMALL LETTER TESH DIGRAPH*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+0002a8: LATIN SMALL LETTER TC DIGRAPH WITH CURL*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+0002a9: LATIN SMALL LETTER FENG DIGRAPH*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+0002aa: LATIN SMALL LETTER LS DIGRAPH*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+0002ab: LATIN SMALL LETTER LZ DIGRAPH*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+0002ac: LATIN LETTER BILABIAL PERCUSSIVE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+0002ad: LATIN LETTER BIDENTAL PERCUSSIVE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+0002ae: LATIN SMALL LETTER TURNED H WITH FISHHOOK*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+0002af: LATIN SMALL LETTER TURNED H WITH FISHHOOK AND TAIL*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+0002b0: MODIFIER LETTER SMALL H*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+0002b1: MODIFIER LETTER SMALL H WITH HOOK*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+0002b2: MODIFIER LETTER SMALL J*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+0002b3: MODIFIER LETTER SMALL R*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+0002b4: MODIFIER LETTER SMALL TURNED R*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+0002b5: MODIFIER LETTER SMALL TURNED R WITH HOOK*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+0002b6: MODIFIER LETTER SMALL CAPITAL INVERTED R*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+0002b7: MODIFIER LETTER SMALL W*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+0002b8: MODIFIER LETTER SMALL Y*/ + RTUNI_ALPHA, /* U+0002b9: MODIFIER LETTER PRIME*/ + RTUNI_ALPHA, /* U+0002ba: MODIFIER LETTER DOUBLE PRIME*/ + RTUNI_ALPHA, /* U+0002bb: MODIFIER LETTER TURNED COMMA*/ + RTUNI_ALPHA, /* U+0002bc: MODIFIER LETTER APOSTROPHE*/ + RTUNI_ALPHA, /* U+0002bd: MODIFIER LETTER REVERSED COMMA*/ + RTUNI_ALPHA, /* U+0002be: MODIFIER LETTER RIGHT HALF RING*/ + RTUNI_ALPHA, /* U+0002bf: MODIFIER LETTER LEFT HALF RING*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+0002c0: MODIFIER LETTER GLOTTAL STOP*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+0002c1: MODIFIER LETTER REVERSED GLOTTAL STOP*/ + 0, /* U+0002c2: MODIFIER LETTER LEFT ARROWHEAD*/ + 0, /* U+0002c3: MODIFIER LETTER RIGHT ARROWHEAD*/ + 0, /* U+0002c4: MODIFIER LETTER UP ARROWHEAD*/ + 0, /* U+0002c5: MODIFIER LETTER DOWN ARROWHEAD*/ + RTUNI_ALPHA, /* U+0002c6: MODIFIER LETTER CIRCUMFLEX ACCENT*/ + RTUNI_ALPHA, /* U+0002c7: CARON*/ + RTUNI_ALPHA, /* U+0002c8: MODIFIER LETTER VERTICAL LINE*/ + RTUNI_ALPHA, /* U+0002c9: MODIFIER LETTER MACRON*/ + RTUNI_ALPHA, /* U+0002ca: MODIFIER LETTER ACUTE ACCENT*/ + RTUNI_ALPHA, /* U+0002cb: MODIFIER LETTER GRAVE ACCENT*/ + RTUNI_ALPHA, /* U+0002cc: MODIFIER LETTER LOW VERTICAL LINE*/ + RTUNI_ALPHA, /* U+0002cd: MODIFIER LETTER LOW MACRON*/ + RTUNI_ALPHA, /* U+0002ce: MODIFIER LETTER LOW GRAVE ACCENT*/ + RTUNI_ALPHA, /* U+0002cf: MODIFIER LETTER LOW ACUTE ACCENT*/ + RTUNI_ALPHA, /* U+0002d0: MODIFIER LETTER TRIANGULAR COLON*/ + RTUNI_ALPHA, /* U+0002d1: MODIFIER LETTER HALF TRIANGULAR COLON*/ + 0, /* U+0002d2: MODIFIER LETTER CENTRED RIGHT HALF RING*/ + 0, /* U+0002d3: MODIFIER LETTER CENTRED LEFT HALF RING*/ + 0, /* U+0002d4: MODIFIER LETTER UP TACK*/ + 0, /* U+0002d5: MODIFIER LETTER DOWN TACK*/ + 0, /* U+0002d6: MODIFIER LETTER PLUS SIGN*/ + 0, /* U+0002d7: MODIFIER LETTER MINUS SIGN*/ + 0, /* U+0002d8: BREVE*/ + 0, /* U+0002d9: DOT ABOVE*/ + 0, /* U+0002da: RING ABOVE*/ + 0, /* U+0002db: OGONEK*/ + 0, /* U+0002dc: SMALL TILDE*/ + 0, /* U+0002dd: DOUBLE ACUTE ACCENT*/ + 0, /* U+0002de: MODIFIER LETTER RHOTIC HOOK*/ + 0, /* U+0002df: MODIFIER LETTER CROSS ACCENT*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+0002e0: MODIFIER LETTER SMALL GAMMA*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+0002e1: MODIFIER LETTER SMALL L*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+0002e2: MODIFIER LETTER SMALL S*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+0002e3: MODIFIER LETTER SMALL X*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+0002e4: MODIFIER LETTER SMALL REVERSED GLOTTAL STOP*/ + 0, /* U+0002e5: MODIFIER LETTER EXTRA-HIGH TONE BAR*/ + 0, /* U+0002e6: MODIFIER LETTER HIGH TONE BAR*/ + 0, /* U+0002e7: MODIFIER LETTER MID TONE BAR*/ + 0, /* U+0002e8: MODIFIER LETTER LOW TONE BAR*/ + 0, /* U+0002e9: MODIFIER LETTER EXTRA-LOW TONE BAR*/ + 0, /* U+0002ea: MODIFIER LETTER YIN DEPARTING TONE MARK*/ + 0, /* U+0002eb: MODIFIER LETTER YANG DEPARTING TONE MARK*/ + RTUNI_ALPHA, /* U+0002ec: MODIFIER LETTER VOICING*/ + 0, /* U+0002ed: MODIFIER LETTER UNASPIRATED*/ + RTUNI_ALPHA, /* U+0002ee: MODIFIER LETTER DOUBLE APOSTROPHE*/ + 0, /* U+0002ef: MODIFIER LETTER LOW DOWN ARROWHEAD*/ + 0, /* U+0002f0: MODIFIER LETTER LOW UP ARROWHEAD*/ + 0, /* U+0002f1: MODIFIER LETTER LOW LEFT ARROWHEAD*/ + 0, /* U+0002f2: MODIFIER LETTER LOW RIGHT ARROWHEAD*/ + 0, /* U+0002f3: MODIFIER LETTER LOW RING*/ + 0, /* U+0002f4: MODIFIER LETTER MIDDLE GRAVE ACCENT*/ + 0, /* U+0002f5: MODIFIER LETTER MIDDLE DOUBLE GRAVE ACCENT*/ + 0, /* U+0002f6: MODIFIER LETTER MIDDLE DOUBLE ACUTE ACCENT*/ + 0, /* U+0002f7: MODIFIER LETTER LOW TILDE*/ + 0, /* U+0002f8: MODIFIER LETTER RAISED COLON*/ + 0, /* U+0002f9: MODIFIER LETTER BEGIN HIGH TONE*/ + 0, /* U+0002fa: MODIFIER LETTER END HIGH TONE*/ + 0, /* U+0002fb: MODIFIER LETTER BEGIN LOW TONE*/ + 0, /* U+0002fc: MODIFIER LETTER END LOW TONE*/ + 0, /* U+0002fd: MODIFIER LETTER SHELF*/ + 0, /* U+0002fe: MODIFIER LETTER OPEN SHELF*/ + 0, /* U+0002ff: MODIFIER LETTER LOW LEFT ARROW*/ + 0, /* U+000300: COMBINING GRAVE ACCENT*/ + 0, /* U+000301: COMBINING ACUTE ACCENT*/ + 0, /* U+000302: COMBINING CIRCUMFLEX ACCENT*/ + 0, /* U+000303: COMBINING TILDE*/ + 0, /* U+000304: COMBINING MACRON*/ + 0, /* U+000305: COMBINING OVERLINE*/ + 0, /* U+000306: COMBINING BREVE*/ + 0, /* U+000307: COMBINING DOT ABOVE*/ + 0, /* U+000308: COMBINING DIAERESIS*/ + 0, /* U+000309: COMBINING HOOK ABOVE*/ + 0, /* U+00030a: COMBINING RING ABOVE*/ + 0, /* U+00030b: COMBINING DOUBLE ACUTE ACCENT*/ + 0, /* U+00030c: COMBINING CARON*/ + 0, /* U+00030d: COMBINING VERTICAL LINE ABOVE*/ + 0, /* U+00030e: COMBINING DOUBLE VERTICAL LINE ABOVE*/ + 0, /* U+00030f: COMBINING DOUBLE GRAVE ACCENT*/ + 0, /* U+000310: COMBINING CANDRABINDU*/ + 0, /* U+000311: COMBINING INVERTED BREVE*/ + 0, /* U+000312: COMBINING TURNED COMMA ABOVE*/ + 0, /* U+000313: COMBINING COMMA ABOVE*/ + 0, /* U+000314: COMBINING REVERSED COMMA ABOVE*/ + 0, /* U+000315: COMBINING COMMA ABOVE RIGHT*/ + 0, /* U+000316: COMBINING GRAVE ACCENT BELOW*/ + 0, /* U+000317: COMBINING ACUTE ACCENT BELOW*/ + 0, /* U+000318: COMBINING LEFT TACK BELOW*/ + 0, /* U+000319: COMBINING RIGHT TACK BELOW*/ + 0, /* U+00031a: COMBINING LEFT ANGLE ABOVE*/ + 0, /* U+00031b: COMBINING HORN*/ + 0, /* U+00031c: COMBINING LEFT HALF RING BELOW*/ + 0, /* U+00031d: COMBINING UP TACK BELOW*/ + 0, /* U+00031e: COMBINING DOWN TACK BELOW*/ + 0, /* U+00031f: COMBINING PLUS SIGN BELOW*/ + 0, /* U+000320: COMBINING MINUS SIGN BELOW*/ + 0, /* U+000321: COMBINING PALATALIZED HOOK BELOW*/ + 0, /* U+000322: COMBINING RETROFLEX HOOK BELOW*/ + 0, /* U+000323: COMBINING DOT BELOW*/ + 0, /* U+000324: COMBINING DIAERESIS BELOW*/ + 0, /* U+000325: COMBINING RING BELOW*/ + 0, /* U+000326: COMBINING COMMA BELOW*/ + 0, /* U+000327: COMBINING CEDILLA*/ + 0, /* U+000328: COMBINING OGONEK*/ + 0, /* U+000329: COMBINING VERTICAL LINE BELOW*/ + 0, /* U+00032a: COMBINING BRIDGE BELOW*/ + 0, /* U+00032b: COMBINING INVERTED DOUBLE ARCH BELOW*/ + 0, /* U+00032c: COMBINING CARON BELOW*/ + 0, /* U+00032d: COMBINING CIRCUMFLEX ACCENT BELOW*/ + 0, /* U+00032e: COMBINING BREVE BELOW*/ + 0, /* U+00032f: COMBINING INVERTED BREVE BELOW*/ + 0, /* U+000330: COMBINING TILDE BELOW*/ + 0, /* U+000331: COMBINING MACRON BELOW*/ + 0, /* U+000332: COMBINING LOW LINE*/ + 0, /* U+000333: COMBINING DOUBLE LOW LINE*/ + 0, /* U+000334: COMBINING TILDE OVERLAY*/ + 0, /* U+000335: COMBINING SHORT STROKE OVERLAY*/ + 0, /* U+000336: COMBINING LONG STROKE OVERLAY*/ + 0, /* U+000337: COMBINING SHORT SOLIDUS OVERLAY*/ + 0, /* U+000338: COMBINING LONG SOLIDUS OVERLAY*/ + 0, /* U+000339: COMBINING RIGHT HALF RING BELOW*/ + 0, /* U+00033a: COMBINING INVERTED BRIDGE BELOW*/ + 0, /* U+00033b: COMBINING SQUARE BELOW*/ + 0, /* U+00033c: COMBINING SEAGULL BELOW*/ + 0, /* U+00033d: COMBINING X ABOVE*/ + 0, /* U+00033e: COMBINING VERTICAL TILDE*/ + 0, /* U+00033f: COMBINING DOUBLE OVERLINE*/ + 0, /* U+000340: COMBINING GRAVE TONE MARK*/ + 0, /* U+000341: COMBINING ACUTE TONE MARK*/ + 0, /* U+000342: COMBINING GREEK PERISPOMENI*/ + 0, /* U+000343: COMBINING GREEK KORONIS*/ + 0, /* U+000344: COMBINING GREEK DIALYTIKA TONOS*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+000345: COMBINING GREEK YPOGEGRAMMENI*/ + 0, /* U+000346: COMBINING BRIDGE ABOVE*/ + 0, /* U+000347: COMBINING EQUALS SIGN BELOW*/ + 0, /* U+000348: COMBINING DOUBLE VERTICAL LINE BELOW*/ + 0, /* U+000349: COMBINING LEFT ANGLE BELOW*/ + 0, /* U+00034a: COMBINING NOT TILDE ABOVE*/ + 0, /* U+00034b: COMBINING HOMOTHETIC ABOVE*/ + 0, /* U+00034c: COMBINING ALMOST EQUAL TO ABOVE*/ + 0, /* U+00034d: COMBINING LEFT RIGHT ARROW BELOW*/ + 0, /* U+00034e: COMBINING UPWARDS ARROW BELOW*/ + 0, /* U+00034f: COMBINING GRAPHEME JOINER*/ + 0, /* U+000350: COMBINING RIGHT ARROWHEAD ABOVE*/ + 0, /* U+000351: COMBINING LEFT HALF RING ABOVE*/ + 0, /* U+000352: COMBINING FERMATA*/ + 0, /* U+000353: COMBINING X BELOW*/ + 0, /* U+000354: COMBINING LEFT ARROWHEAD BELOW*/ + 0, /* U+000355: COMBINING RIGHT ARROWHEAD BELOW*/ + 0, /* U+000356: COMBINING RIGHT ARROWHEAD AND UP ARROWHEAD BELOW*/ + 0, /* U+000357: COMBINING RIGHT HALF RING ABOVE*/ + 0, /* U+000358: COMBINING DOT ABOVE RIGHT*/ + 0, /* U+000359: COMBINING ASTERISK BELOW*/ + 0, /* U+00035a: COMBINING DOUBLE RING BELOW*/ + 0, /* U+00035b: COMBINING ZIGZAG ABOVE*/ + 0, /* U+00035c: COMBINING DOUBLE BREVE BELOW*/ + 0, /* U+00035d: COMBINING DOUBLE BREVE*/ + 0, /* U+00035e: COMBINING DOUBLE MACRON*/ + 0, /* U+00035f: COMBINING DOUBLE MACRON BELOW*/ + 0, /* U+000360: COMBINING DOUBLE TILDE*/ + 0, /* U+000361: COMBINING DOUBLE INVERTED BREVE*/ + 0, /* U+000362: COMBINING DOUBLE RIGHTWARDS ARROW BELOW*/ + 0, /* U+000363: COMBINING LATIN SMALL LETTER A*/ + 0, /* U+000364: COMBINING LATIN SMALL LETTER E*/ + 0, /* U+000365: COMBINING LATIN SMALL LETTER I*/ + 0, /* U+000366: COMBINING LATIN SMALL LETTER O*/ + 0, /* U+000367: COMBINING LATIN SMALL LETTER U*/ + 0, /* U+000368: COMBINING LATIN SMALL LETTER C*/ + 0, /* U+000369: COMBINING LATIN SMALL LETTER D*/ + 0, /* U+00036a: COMBINING LATIN SMALL LETTER H*/ + 0, /* U+00036b: COMBINING LATIN SMALL LETTER M*/ + 0, /* U+00036c: COMBINING LATIN SMALL LETTER R*/ + 0, /* U+00036d: COMBINING LATIN SMALL LETTER T*/ + 0, /* U+00036e: COMBINING LATIN SMALL LETTER V*/ + 0, /* U+00036f: COMBINING LATIN SMALL LETTER X*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+000370: GREEK CAPITAL LETTER HETA*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+000371: GREEK SMALL LETTER HETA*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+000372: GREEK CAPITAL LETTER ARCHAIC SAMPI*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+000373: GREEK SMALL LETTER ARCHAIC SAMPI*/ + RTUNI_ALPHA, /* U+000374: GREEK NUMERAL SIGN*/ + 0, /* U+000375: GREEK LOWER NUMERAL SIGN*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+000376: GREEK CAPITAL LETTER PAMPHYLIAN DIGAMMA*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+000377: GREEK SMALL LETTER PAMPHYLIAN DIGAMMA*/ + 0, /* U+000378: */ + 0, /* U+000379: */ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00037a: GREEK YPOGEGRAMMENI*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00037b: GREEK SMALL REVERSED LUNATE SIGMA SYMBOL*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00037c: GREEK SMALL DOTTED LUNATE SIGMA SYMBOL*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00037d: GREEK SMALL REVERSED DOTTED LUNATE SIGMA SYMBOL*/ + 0, /* U+00037e: GREEK QUESTION MARK*/ + 0, /* U+00037f: */ + 0, /* U+000380: */ + 0, /* U+000381: */ + 0, /* U+000382: */ + 0, /* U+000383: */ + 0, /* U+000384: GREEK TONOS*/ + 0, /* U+000385: GREEK DIALYTIKA TONOS*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+000386: GREEK CAPITAL LETTER ALPHA WITH TONOS*/ + 0, /* U+000387: GREEK ANO TELEIA*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+000388: GREEK CAPITAL LETTER EPSILON WITH TONOS*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+000389: GREEK CAPITAL LETTER ETA WITH TONOS*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+00038a: GREEK CAPITAL LETTER IOTA WITH TONOS*/ + 0, /* U+00038b: */ + RTUNI_ALPHA | RTUNI_UPPER, /* U+00038c: GREEK CAPITAL LETTER OMICRON WITH TONOS*/ + 0, /* U+00038d: */ + RTUNI_ALPHA | RTUNI_UPPER, /* U+00038e: GREEK CAPITAL LETTER UPSILON WITH TONOS*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+00038f: GREEK CAPITAL LETTER OMEGA WITH TONOS*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+000390: GREEK SMALL LETTER IOTA WITH DIALYTIKA AND TONOS*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+000391: GREEK CAPITAL LETTER ALPHA*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+000392: GREEK CAPITAL LETTER BETA*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+000393: GREEK CAPITAL LETTER GAMMA*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+000394: GREEK CAPITAL LETTER DELTA*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+000395: GREEK CAPITAL LETTER EPSILON*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+000396: GREEK CAPITAL LETTER ZETA*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+000397: GREEK CAPITAL LETTER ETA*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+000398: GREEK CAPITAL LETTER THETA*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+000399: GREEK CAPITAL LETTER IOTA*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+00039a: GREEK CAPITAL LETTER KAPPA*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+00039b: GREEK CAPITAL LETTER LAMDA*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+00039c: GREEK CAPITAL LETTER MU*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+00039d: GREEK CAPITAL LETTER NU*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+00039e: GREEK CAPITAL LETTER XI*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+00039f: GREEK CAPITAL LETTER OMICRON*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+0003a0: GREEK CAPITAL LETTER PI*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+0003a1: GREEK CAPITAL LETTER RHO*/ + 0, /* U+0003a2: */ + RTUNI_ALPHA | RTUNI_UPPER, /* U+0003a3: GREEK CAPITAL LETTER SIGMA*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+0003a4: GREEK CAPITAL LETTER TAU*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+0003a5: GREEK CAPITAL LETTER UPSILON*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+0003a6: GREEK CAPITAL LETTER PHI*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+0003a7: GREEK CAPITAL LETTER CHI*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+0003a8: GREEK CAPITAL LETTER PSI*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+0003a9: GREEK CAPITAL LETTER OMEGA*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+0003aa: GREEK CAPITAL LETTER IOTA WITH DIALYTIKA*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+0003ab: GREEK CAPITAL LETTER UPSILON WITH DIALYTIKA*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+0003ac: GREEK SMALL LETTER ALPHA WITH TONOS*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+0003ad: GREEK SMALL LETTER EPSILON WITH TONOS*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+0003ae: GREEK SMALL LETTER ETA WITH TONOS*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+0003af: GREEK SMALL LETTER IOTA WITH TONOS*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+0003b0: GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND TONOS*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+0003b1: GREEK SMALL LETTER ALPHA*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+0003b2: GREEK SMALL LETTER BETA*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+0003b3: GREEK SMALL LETTER GAMMA*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+0003b4: GREEK SMALL LETTER DELTA*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+0003b5: GREEK SMALL LETTER EPSILON*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+0003b6: GREEK SMALL LETTER ZETA*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+0003b7: GREEK SMALL LETTER ETA*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+0003b8: GREEK SMALL LETTER THETA*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+0003b9: GREEK SMALL LETTER IOTA*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+0003ba: GREEK SMALL LETTER KAPPA*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+0003bb: GREEK SMALL LETTER LAMDA*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+0003bc: GREEK SMALL LETTER MU*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+0003bd: GREEK SMALL LETTER NU*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+0003be: GREEK SMALL LETTER XI*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+0003bf: GREEK SMALL LETTER OMICRON*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+0003c0: GREEK SMALL LETTER PI*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+0003c1: GREEK SMALL LETTER RHO*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+0003c2: GREEK SMALL LETTER FINAL SIGMA*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+0003c3: GREEK SMALL LETTER SIGMA*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+0003c4: GREEK SMALL LETTER TAU*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+0003c5: GREEK SMALL LETTER UPSILON*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+0003c6: GREEK SMALL LETTER PHI*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+0003c7: GREEK SMALL LETTER CHI*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+0003c8: GREEK SMALL LETTER PSI*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+0003c9: GREEK SMALL LETTER OMEGA*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+0003ca: GREEK SMALL LETTER IOTA WITH DIALYTIKA*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+0003cb: GREEK SMALL LETTER UPSILON WITH DIALYTIKA*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+0003cc: GREEK SMALL LETTER OMICRON WITH TONOS*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+0003cd: GREEK SMALL LETTER UPSILON WITH TONOS*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+0003ce: GREEK SMALL LETTER OMEGA WITH TONOS*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+0003cf: GREEK CAPITAL KAI SYMBOL*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+0003d0: GREEK BETA SYMBOL*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+0003d1: GREEK THETA SYMBOL*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+0003d2: GREEK UPSILON WITH HOOK SYMBOL*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+0003d3: GREEK UPSILON WITH ACUTE AND HOOK SYMBOL*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+0003d4: GREEK UPSILON WITH DIAERESIS AND HOOK SYMBOL*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+0003d5: GREEK PHI SYMBOL*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+0003d6: GREEK PI SYMBOL*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+0003d7: GREEK KAI SYMBOL*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+0003d8: GREEK LETTER ARCHAIC KOPPA*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+0003d9: GREEK SMALL LETTER ARCHAIC KOPPA*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+0003da: GREEK LETTER STIGMA*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+0003db: GREEK SMALL LETTER STIGMA*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+0003dc: GREEK LETTER DIGAMMA*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+0003dd: GREEK SMALL LETTER DIGAMMA*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+0003de: GREEK LETTER KOPPA*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+0003df: GREEK SMALL LETTER KOPPA*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+0003e0: GREEK LETTER SAMPI*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+0003e1: GREEK SMALL LETTER SAMPI*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+0003e2: COPTIC CAPITAL LETTER SHEI*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+0003e3: COPTIC SMALL LETTER SHEI*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+0003e4: COPTIC CAPITAL LETTER FEI*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+0003e5: COPTIC SMALL LETTER FEI*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+0003e6: COPTIC CAPITAL LETTER KHEI*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+0003e7: COPTIC SMALL LETTER KHEI*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+0003e8: COPTIC CAPITAL LETTER HORI*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+0003e9: COPTIC SMALL LETTER HORI*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+0003ea: COPTIC CAPITAL LETTER GANGIA*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+0003eb: COPTIC SMALL LETTER GANGIA*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+0003ec: COPTIC CAPITAL LETTER SHIMA*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+0003ed: COPTIC SMALL LETTER SHIMA*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+0003ee: COPTIC CAPITAL LETTER DEI*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+0003ef: COPTIC SMALL LETTER DEI*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+0003f0: GREEK KAPPA SYMBOL*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+0003f1: GREEK RHO SYMBOL*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+0003f2: GREEK LUNATE SIGMA SYMBOL*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+0003f3: GREEK LETTER YOT*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+0003f4: GREEK CAPITAL THETA SYMBOL*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+0003f5: GREEK LUNATE EPSILON SYMBOL*/ + 0, /* U+0003f6: GREEK REVERSED LUNATE EPSILON SYMBOL*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+0003f7: GREEK CAPITAL LETTER SHO*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+0003f8: GREEK SMALL LETTER SHO*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+0003f9: GREEK CAPITAL LUNATE SIGMA SYMBOL*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+0003fa: GREEK CAPITAL LETTER SAN*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+0003fb: GREEK SMALL LETTER SAN*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+0003fc: GREEK RHO WITH STROKE SYMBOL*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+0003fd: GREEK CAPITAL REVERSED LUNATE SIGMA SYMBOL*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+0003fe: GREEK CAPITAL DOTTED LUNATE SIGMA SYMBOL*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+0003ff: GREEK CAPITAL REVERSED DOTTED LUNATE SIGMA SYMBOL*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+000400: CYRILLIC CAPITAL LETTER IE WITH GRAVE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+000401: CYRILLIC CAPITAL LETTER IO*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+000402: CYRILLIC CAPITAL LETTER DJE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+000403: CYRILLIC CAPITAL LETTER GJE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+000404: CYRILLIC CAPITAL LETTER UKRAINIAN IE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+000405: CYRILLIC CAPITAL LETTER DZE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+000406: CYRILLIC CAPITAL LETTER BYELORUSSIAN-UKRAINIAN I*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+000407: CYRILLIC CAPITAL LETTER YI*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+000408: CYRILLIC CAPITAL LETTER JE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+000409: CYRILLIC CAPITAL LETTER LJE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+00040a: CYRILLIC CAPITAL LETTER NJE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+00040b: CYRILLIC CAPITAL LETTER TSHE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+00040c: CYRILLIC CAPITAL LETTER KJE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+00040d: CYRILLIC CAPITAL LETTER I WITH GRAVE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+00040e: CYRILLIC CAPITAL LETTER SHORT U*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+00040f: CYRILLIC CAPITAL LETTER DZHE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+000410: CYRILLIC CAPITAL LETTER A*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+000411: CYRILLIC CAPITAL LETTER BE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+000412: CYRILLIC CAPITAL LETTER VE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+000413: CYRILLIC CAPITAL LETTER GHE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+000414: CYRILLIC CAPITAL LETTER DE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+000415: CYRILLIC CAPITAL LETTER IE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+000416: CYRILLIC CAPITAL LETTER ZHE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+000417: CYRILLIC CAPITAL LETTER ZE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+000418: CYRILLIC CAPITAL LETTER I*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+000419: CYRILLIC CAPITAL LETTER SHORT I*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+00041a: CYRILLIC CAPITAL LETTER KA*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+00041b: CYRILLIC CAPITAL LETTER EL*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+00041c: CYRILLIC CAPITAL LETTER EM*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+00041d: CYRILLIC CAPITAL LETTER EN*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+00041e: CYRILLIC CAPITAL LETTER O*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+00041f: CYRILLIC CAPITAL LETTER PE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+000420: CYRILLIC CAPITAL LETTER ER*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+000421: CYRILLIC CAPITAL LETTER ES*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+000422: CYRILLIC CAPITAL LETTER TE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+000423: CYRILLIC CAPITAL LETTER U*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+000424: CYRILLIC CAPITAL LETTER EF*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+000425: CYRILLIC CAPITAL LETTER HA*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+000426: CYRILLIC CAPITAL LETTER TSE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+000427: CYRILLIC CAPITAL LETTER CHE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+000428: CYRILLIC CAPITAL LETTER SHA*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+000429: CYRILLIC CAPITAL LETTER SHCHA*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+00042a: CYRILLIC CAPITAL LETTER HARD SIGN*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+00042b: CYRILLIC CAPITAL LETTER YERU*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+00042c: CYRILLIC CAPITAL LETTER SOFT SIGN*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+00042d: CYRILLIC CAPITAL LETTER E*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+00042e: CYRILLIC CAPITAL LETTER YU*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+00042f: CYRILLIC CAPITAL LETTER YA*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+000430: CYRILLIC SMALL LETTER A*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+000431: CYRILLIC SMALL LETTER BE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+000432: CYRILLIC SMALL LETTER VE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+000433: CYRILLIC SMALL LETTER GHE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+000434: CYRILLIC SMALL LETTER DE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+000435: CYRILLIC SMALL LETTER IE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+000436: CYRILLIC SMALL LETTER ZHE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+000437: CYRILLIC SMALL LETTER ZE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+000438: CYRILLIC SMALL LETTER I*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+000439: CYRILLIC SMALL LETTER SHORT I*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00043a: CYRILLIC SMALL LETTER KA*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00043b: CYRILLIC SMALL LETTER EL*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00043c: CYRILLIC SMALL LETTER EM*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00043d: CYRILLIC SMALL LETTER EN*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00043e: CYRILLIC SMALL LETTER O*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00043f: CYRILLIC SMALL LETTER PE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+000440: CYRILLIC SMALL LETTER ER*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+000441: CYRILLIC SMALL LETTER ES*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+000442: CYRILLIC SMALL LETTER TE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+000443: CYRILLIC SMALL LETTER U*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+000444: CYRILLIC SMALL LETTER EF*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+000445: CYRILLIC SMALL LETTER HA*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+000446: CYRILLIC SMALL LETTER TSE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+000447: CYRILLIC SMALL LETTER CHE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+000448: CYRILLIC SMALL LETTER SHA*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+000449: CYRILLIC SMALL LETTER SHCHA*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00044a: CYRILLIC SMALL LETTER HARD SIGN*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00044b: CYRILLIC SMALL LETTER YERU*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00044c: CYRILLIC SMALL LETTER SOFT SIGN*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00044d: CYRILLIC SMALL LETTER E*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00044e: CYRILLIC SMALL LETTER YU*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00044f: CYRILLIC SMALL LETTER YA*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+000450: CYRILLIC SMALL LETTER IE WITH GRAVE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+000451: CYRILLIC SMALL LETTER IO*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+000452: CYRILLIC SMALL LETTER DJE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+000453: CYRILLIC SMALL LETTER GJE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+000454: CYRILLIC SMALL LETTER UKRAINIAN IE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+000455: CYRILLIC SMALL LETTER DZE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+000456: CYRILLIC SMALL LETTER BYELORUSSIAN-UKRAINIAN I*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+000457: CYRILLIC SMALL LETTER YI*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+000458: CYRILLIC SMALL LETTER JE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+000459: CYRILLIC SMALL LETTER LJE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00045a: CYRILLIC SMALL LETTER NJE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00045b: CYRILLIC SMALL LETTER TSHE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00045c: CYRILLIC SMALL LETTER KJE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00045d: CYRILLIC SMALL LETTER I WITH GRAVE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00045e: CYRILLIC SMALL LETTER SHORT U*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00045f: CYRILLIC SMALL LETTER DZHE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+000460: CYRILLIC CAPITAL LETTER OMEGA*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+000461: CYRILLIC SMALL LETTER OMEGA*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+000462: CYRILLIC CAPITAL LETTER YAT*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+000463: CYRILLIC SMALL LETTER YAT*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+000464: CYRILLIC CAPITAL LETTER IOTIFIED E*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+000465: CYRILLIC SMALL LETTER IOTIFIED E*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+000466: CYRILLIC CAPITAL LETTER LITTLE YUS*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+000467: CYRILLIC SMALL LETTER LITTLE YUS*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+000468: CYRILLIC CAPITAL LETTER IOTIFIED LITTLE YUS*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+000469: CYRILLIC SMALL LETTER IOTIFIED LITTLE YUS*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+00046a: CYRILLIC CAPITAL LETTER BIG YUS*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00046b: CYRILLIC SMALL LETTER BIG YUS*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+00046c: CYRILLIC CAPITAL LETTER IOTIFIED BIG YUS*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00046d: CYRILLIC SMALL LETTER IOTIFIED BIG YUS*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+00046e: CYRILLIC CAPITAL LETTER KSI*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00046f: CYRILLIC SMALL LETTER KSI*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+000470: CYRILLIC CAPITAL LETTER PSI*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+000471: CYRILLIC SMALL LETTER PSI*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+000472: CYRILLIC CAPITAL LETTER FITA*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+000473: CYRILLIC SMALL LETTER FITA*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+000474: CYRILLIC CAPITAL LETTER IZHITSA*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+000475: CYRILLIC SMALL LETTER IZHITSA*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+000476: CYRILLIC CAPITAL LETTER IZHITSA WITH DOUBLE GRAVE ACCENT*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+000477: CYRILLIC SMALL LETTER IZHITSA WITH DOUBLE GRAVE ACCENT*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+000478: CYRILLIC CAPITAL LETTER UK*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+000479: CYRILLIC SMALL LETTER UK*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+00047a: CYRILLIC CAPITAL LETTER ROUND OMEGA*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00047b: CYRILLIC SMALL LETTER ROUND OMEGA*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+00047c: CYRILLIC CAPITAL LETTER OMEGA WITH TITLO*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00047d: CYRILLIC SMALL LETTER OMEGA WITH TITLO*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+00047e: CYRILLIC CAPITAL LETTER OT*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00047f: CYRILLIC SMALL LETTER OT*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+000480: CYRILLIC CAPITAL LETTER KOPPA*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+000481: CYRILLIC SMALL LETTER KOPPA*/ + 0, /* U+000482: CYRILLIC THOUSANDS SIGN*/ + 0, /* U+000483: COMBINING CYRILLIC TITLO*/ + 0, /* U+000484: COMBINING CYRILLIC PALATALIZATION*/ + 0, /* U+000485: COMBINING CYRILLIC DASIA PNEUMATA*/ + 0, /* U+000486: COMBINING CYRILLIC PSILI PNEUMATA*/ + 0, /* U+000487: COMBINING CYRILLIC POKRYTIE*/ + 0, /* U+000488: COMBINING CYRILLIC HUNDRED THOUSANDS SIGN*/ + 0, /* U+000489: COMBINING CYRILLIC MILLIONS SIGN*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+00048a: CYRILLIC CAPITAL LETTER SHORT I WITH TAIL*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00048b: CYRILLIC SMALL LETTER SHORT I WITH TAIL*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+00048c: CYRILLIC CAPITAL LETTER SEMISOFT SIGN*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00048d: CYRILLIC SMALL LETTER SEMISOFT SIGN*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+00048e: CYRILLIC CAPITAL LETTER ER WITH TICK*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00048f: CYRILLIC SMALL LETTER ER WITH TICK*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+000490: CYRILLIC CAPITAL LETTER GHE WITH UPTURN*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+000491: CYRILLIC SMALL LETTER GHE WITH UPTURN*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+000492: CYRILLIC CAPITAL LETTER GHE WITH STROKE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+000493: CYRILLIC SMALL LETTER GHE WITH STROKE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+000494: CYRILLIC CAPITAL LETTER GHE WITH MIDDLE HOOK*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+000495: CYRILLIC SMALL LETTER GHE WITH MIDDLE HOOK*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+000496: CYRILLIC CAPITAL LETTER ZHE WITH DESCENDER*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+000497: CYRILLIC SMALL LETTER ZHE WITH DESCENDER*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+000498: CYRILLIC CAPITAL LETTER ZE WITH DESCENDER*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+000499: CYRILLIC SMALL LETTER ZE WITH DESCENDER*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+00049a: CYRILLIC CAPITAL LETTER KA WITH DESCENDER*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00049b: CYRILLIC SMALL LETTER KA WITH DESCENDER*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+00049c: CYRILLIC CAPITAL LETTER KA WITH VERTICAL STROKE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00049d: CYRILLIC SMALL LETTER KA WITH VERTICAL STROKE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+00049e: CYRILLIC CAPITAL LETTER KA WITH STROKE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00049f: CYRILLIC SMALL LETTER KA WITH STROKE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+0004a0: CYRILLIC CAPITAL LETTER BASHKIR KA*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+0004a1: CYRILLIC SMALL LETTER BASHKIR KA*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+0004a2: CYRILLIC CAPITAL LETTER EN WITH DESCENDER*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+0004a3: CYRILLIC SMALL LETTER EN WITH DESCENDER*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+0004a4: CYRILLIC CAPITAL LIGATURE EN GHE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+0004a5: CYRILLIC SMALL LIGATURE EN GHE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+0004a6: CYRILLIC CAPITAL LETTER PE WITH MIDDLE HOOK*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+0004a7: CYRILLIC SMALL LETTER PE WITH MIDDLE HOOK*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+0004a8: CYRILLIC CAPITAL LETTER ABKHASIAN HA*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+0004a9: CYRILLIC SMALL LETTER ABKHASIAN HA*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+0004aa: CYRILLIC CAPITAL LETTER ES WITH DESCENDER*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+0004ab: CYRILLIC SMALL LETTER ES WITH DESCENDER*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+0004ac: CYRILLIC CAPITAL LETTER TE WITH DESCENDER*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+0004ad: CYRILLIC SMALL LETTER TE WITH DESCENDER*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+0004ae: CYRILLIC CAPITAL LETTER STRAIGHT U*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+0004af: CYRILLIC SMALL LETTER STRAIGHT U*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+0004b0: CYRILLIC CAPITAL LETTER STRAIGHT U WITH STROKE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+0004b1: CYRILLIC SMALL LETTER STRAIGHT U WITH STROKE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+0004b2: CYRILLIC CAPITAL LETTER HA WITH DESCENDER*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+0004b3: CYRILLIC SMALL LETTER HA WITH DESCENDER*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+0004b4: CYRILLIC CAPITAL LIGATURE TE TSE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+0004b5: CYRILLIC SMALL LIGATURE TE TSE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+0004b6: CYRILLIC CAPITAL LETTER CHE WITH DESCENDER*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+0004b7: CYRILLIC SMALL LETTER CHE WITH DESCENDER*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+0004b8: CYRILLIC CAPITAL LETTER CHE WITH VERTICAL STROKE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+0004b9: CYRILLIC SMALL LETTER CHE WITH VERTICAL STROKE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+0004ba: CYRILLIC CAPITAL LETTER SHHA*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+0004bb: CYRILLIC SMALL LETTER SHHA*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+0004bc: CYRILLIC CAPITAL LETTER ABKHASIAN CHE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+0004bd: CYRILLIC SMALL LETTER ABKHASIAN CHE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+0004be: CYRILLIC CAPITAL LETTER ABKHASIAN CHE WITH DESCENDER*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+0004bf: CYRILLIC SMALL LETTER ABKHASIAN CHE WITH DESCENDER*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+0004c0: CYRILLIC LETTER PALOCHKA*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+0004c1: CYRILLIC CAPITAL LETTER ZHE WITH BREVE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+0004c2: CYRILLIC SMALL LETTER ZHE WITH BREVE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+0004c3: CYRILLIC CAPITAL LETTER KA WITH HOOK*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+0004c4: CYRILLIC SMALL LETTER KA WITH HOOK*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+0004c5: CYRILLIC CAPITAL LETTER EL WITH TAIL*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+0004c6: CYRILLIC SMALL LETTER EL WITH TAIL*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+0004c7: CYRILLIC CAPITAL LETTER EN WITH HOOK*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+0004c8: CYRILLIC SMALL LETTER EN WITH HOOK*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+0004c9: CYRILLIC CAPITAL LETTER EN WITH TAIL*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+0004ca: CYRILLIC SMALL LETTER EN WITH TAIL*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+0004cb: CYRILLIC CAPITAL LETTER KHAKASSIAN CHE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+0004cc: CYRILLIC SMALL LETTER KHAKASSIAN CHE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+0004cd: CYRILLIC CAPITAL LETTER EM WITH TAIL*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+0004ce: CYRILLIC SMALL LETTER EM WITH TAIL*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+0004cf: CYRILLIC SMALL LETTER PALOCHKA*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+0004d0: CYRILLIC CAPITAL LETTER A WITH BREVE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+0004d1: CYRILLIC SMALL LETTER A WITH BREVE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+0004d2: CYRILLIC CAPITAL LETTER A WITH DIAERESIS*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+0004d3: CYRILLIC SMALL LETTER A WITH DIAERESIS*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+0004d4: CYRILLIC CAPITAL LIGATURE A IE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+0004d5: CYRILLIC SMALL LIGATURE A IE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+0004d6: CYRILLIC CAPITAL LETTER IE WITH BREVE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+0004d7: CYRILLIC SMALL LETTER IE WITH BREVE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+0004d8: CYRILLIC CAPITAL LETTER SCHWA*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+0004d9: CYRILLIC SMALL LETTER SCHWA*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+0004da: CYRILLIC CAPITAL LETTER SCHWA WITH DIAERESIS*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+0004db: CYRILLIC SMALL LETTER SCHWA WITH DIAERESIS*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+0004dc: CYRILLIC CAPITAL LETTER ZHE WITH DIAERESIS*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+0004dd: CYRILLIC SMALL LETTER ZHE WITH DIAERESIS*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+0004de: CYRILLIC CAPITAL LETTER ZE WITH DIAERESIS*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+0004df: CYRILLIC SMALL LETTER ZE WITH DIAERESIS*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+0004e0: CYRILLIC CAPITAL LETTER ABKHASIAN DZE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+0004e1: CYRILLIC SMALL LETTER ABKHASIAN DZE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+0004e2: CYRILLIC CAPITAL LETTER I WITH MACRON*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+0004e3: CYRILLIC SMALL LETTER I WITH MACRON*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+0004e4: CYRILLIC CAPITAL LETTER I WITH DIAERESIS*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+0004e5: CYRILLIC SMALL LETTER I WITH DIAERESIS*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+0004e6: CYRILLIC CAPITAL LETTER O WITH DIAERESIS*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+0004e7: CYRILLIC SMALL LETTER O WITH DIAERESIS*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+0004e8: CYRILLIC CAPITAL LETTER BARRED O*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+0004e9: CYRILLIC SMALL LETTER BARRED O*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+0004ea: CYRILLIC CAPITAL LETTER BARRED O WITH DIAERESIS*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+0004eb: CYRILLIC SMALL LETTER BARRED O WITH DIAERESIS*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+0004ec: CYRILLIC CAPITAL LETTER E WITH DIAERESIS*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+0004ed: CYRILLIC SMALL LETTER E WITH DIAERESIS*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+0004ee: CYRILLIC CAPITAL LETTER U WITH MACRON*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+0004ef: CYRILLIC SMALL LETTER U WITH MACRON*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+0004f0: CYRILLIC CAPITAL LETTER U WITH DIAERESIS*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+0004f1: CYRILLIC SMALL LETTER U WITH DIAERESIS*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+0004f2: CYRILLIC CAPITAL LETTER U WITH DOUBLE ACUTE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+0004f3: CYRILLIC SMALL LETTER U WITH DOUBLE ACUTE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+0004f4: CYRILLIC CAPITAL LETTER CHE WITH DIAERESIS*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+0004f5: CYRILLIC SMALL LETTER CHE WITH DIAERESIS*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+0004f6: CYRILLIC CAPITAL LETTER GHE WITH DESCENDER*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+0004f7: CYRILLIC SMALL LETTER GHE WITH DESCENDER*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+0004f8: CYRILLIC CAPITAL LETTER YERU WITH DIAERESIS*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+0004f9: CYRILLIC SMALL LETTER YERU WITH DIAERESIS*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+0004fa: CYRILLIC CAPITAL LETTER GHE WITH STROKE AND HOOK*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+0004fb: CYRILLIC SMALL LETTER GHE WITH STROKE AND HOOK*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+0004fc: CYRILLIC CAPITAL LETTER HA WITH HOOK*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+0004fd: CYRILLIC SMALL LETTER HA WITH HOOK*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+0004fe: CYRILLIC CAPITAL LETTER HA WITH STROKE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+0004ff: CYRILLIC SMALL LETTER HA WITH STROKE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+000500: CYRILLIC CAPITAL LETTER KOMI DE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+000501: CYRILLIC SMALL LETTER KOMI DE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+000502: CYRILLIC CAPITAL LETTER KOMI DJE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+000503: CYRILLIC SMALL LETTER KOMI DJE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+000504: CYRILLIC CAPITAL LETTER KOMI ZJE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+000505: CYRILLIC SMALL LETTER KOMI ZJE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+000506: CYRILLIC CAPITAL LETTER KOMI DZJE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+000507: CYRILLIC SMALL LETTER KOMI DZJE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+000508: CYRILLIC CAPITAL LETTER KOMI LJE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+000509: CYRILLIC SMALL LETTER KOMI LJE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+00050a: CYRILLIC CAPITAL LETTER KOMI NJE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00050b: CYRILLIC SMALL LETTER KOMI NJE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+00050c: CYRILLIC CAPITAL LETTER KOMI SJE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00050d: CYRILLIC SMALL LETTER KOMI SJE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+00050e: CYRILLIC CAPITAL LETTER KOMI TJE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00050f: CYRILLIC SMALL LETTER KOMI TJE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+000510: CYRILLIC CAPITAL LETTER REVERSED ZE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+000511: CYRILLIC SMALL LETTER REVERSED ZE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+000512: CYRILLIC CAPITAL LETTER EL WITH HOOK*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+000513: CYRILLIC SMALL LETTER EL WITH HOOK*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+000514: CYRILLIC CAPITAL LETTER LHA*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+000515: CYRILLIC SMALL LETTER LHA*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+000516: CYRILLIC CAPITAL LETTER RHA*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+000517: CYRILLIC SMALL LETTER RHA*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+000518: CYRILLIC CAPITAL LETTER YAE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+000519: CYRILLIC SMALL LETTER YAE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+00051a: CYRILLIC CAPITAL LETTER QA*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00051b: CYRILLIC SMALL LETTER QA*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+00051c: CYRILLIC CAPITAL LETTER WE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00051d: CYRILLIC SMALL LETTER WE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+00051e: CYRILLIC CAPITAL LETTER ALEUT KA*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00051f: CYRILLIC SMALL LETTER ALEUT KA*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+000520: CYRILLIC CAPITAL LETTER EL WITH MIDDLE HOOK*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+000521: CYRILLIC SMALL LETTER EL WITH MIDDLE HOOK*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+000522: CYRILLIC CAPITAL LETTER EN WITH MIDDLE HOOK*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+000523: CYRILLIC SMALL LETTER EN WITH MIDDLE HOOK*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+000524: CYRILLIC CAPITAL LETTER PE WITH DESCENDER*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+000525: CYRILLIC SMALL LETTER PE WITH DESCENDER*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+000526: CYRILLIC CAPITAL LETTER SHHA WITH DESCENDER*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+000527: CYRILLIC SMALL LETTER SHHA WITH DESCENDER*/ + 0, /* U+000528: */ + 0, /* U+000529: */ + 0, /* U+00052a: */ + 0, /* U+00052b: */ + 0, /* U+00052c: */ + 0, /* U+00052d: */ + 0, /* U+00052e: */ + 0, /* U+00052f: */ + 0, /* U+000530: */ + RTUNI_ALPHA | RTUNI_UPPER, /* U+000531: ARMENIAN CAPITAL LETTER AYB*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+000532: ARMENIAN CAPITAL LETTER BEN*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+000533: ARMENIAN CAPITAL LETTER GIM*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+000534: ARMENIAN CAPITAL LETTER DA*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+000535: ARMENIAN CAPITAL LETTER ECH*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+000536: ARMENIAN CAPITAL LETTER ZA*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+000537: ARMENIAN CAPITAL LETTER EH*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+000538: ARMENIAN CAPITAL LETTER ET*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+000539: ARMENIAN CAPITAL LETTER TO*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+00053a: ARMENIAN CAPITAL LETTER ZHE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+00053b: ARMENIAN CAPITAL LETTER INI*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+00053c: ARMENIAN CAPITAL LETTER LIWN*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+00053d: ARMENIAN CAPITAL LETTER XEH*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+00053e: ARMENIAN CAPITAL LETTER CA*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+00053f: ARMENIAN CAPITAL LETTER KEN*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+000540: ARMENIAN CAPITAL LETTER HO*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+000541: ARMENIAN CAPITAL LETTER JA*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+000542: ARMENIAN CAPITAL LETTER GHAD*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+000543: ARMENIAN CAPITAL LETTER CHEH*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+000544: ARMENIAN CAPITAL LETTER MEN*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+000545: ARMENIAN CAPITAL LETTER YI*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+000546: ARMENIAN CAPITAL LETTER NOW*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+000547: ARMENIAN CAPITAL LETTER SHA*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+000548: ARMENIAN CAPITAL LETTER VO*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+000549: ARMENIAN CAPITAL LETTER CHA*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+00054a: ARMENIAN CAPITAL LETTER PEH*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+00054b: ARMENIAN CAPITAL LETTER JHEH*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+00054c: ARMENIAN CAPITAL LETTER RA*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+00054d: ARMENIAN CAPITAL LETTER SEH*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+00054e: ARMENIAN CAPITAL LETTER VEW*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+00054f: ARMENIAN CAPITAL LETTER TIWN*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+000550: ARMENIAN CAPITAL LETTER REH*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+000551: ARMENIAN CAPITAL LETTER CO*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+000552: ARMENIAN CAPITAL LETTER YIWN*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+000553: ARMENIAN CAPITAL LETTER PIWR*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+000554: ARMENIAN CAPITAL LETTER KEH*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+000555: ARMENIAN CAPITAL LETTER OH*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+000556: ARMENIAN CAPITAL LETTER FEH*/ + 0, /* U+000557: */ + 0, /* U+000558: */ + RTUNI_ALPHA, /* U+000559: ARMENIAN MODIFIER LETTER LEFT HALF RING*/ + 0, /* U+00055a: ARMENIAN APOSTROPHE*/ + 0, /* U+00055b: ARMENIAN EMPHASIS MARK*/ + 0, /* U+00055c: ARMENIAN EXCLAMATION MARK*/ + 0, /* U+00055d: ARMENIAN COMMA*/ + 0, /* U+00055e: ARMENIAN QUESTION MARK*/ + 0, /* U+00055f: ARMENIAN ABBREVIATION MARK*/ + 0, /* U+000560: */ + RTUNI_ALPHA | RTUNI_LOWER, /* U+000561: ARMENIAN SMALL LETTER AYB*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+000562: ARMENIAN SMALL LETTER BEN*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+000563: ARMENIAN SMALL LETTER GIM*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+000564: ARMENIAN SMALL LETTER DA*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+000565: ARMENIAN SMALL LETTER ECH*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+000566: ARMENIAN SMALL LETTER ZA*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+000567: ARMENIAN SMALL LETTER EH*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+000568: ARMENIAN SMALL LETTER ET*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+000569: ARMENIAN SMALL LETTER TO*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00056a: ARMENIAN SMALL LETTER ZHE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00056b: ARMENIAN SMALL LETTER INI*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00056c: ARMENIAN SMALL LETTER LIWN*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00056d: ARMENIAN SMALL LETTER XEH*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00056e: ARMENIAN SMALL LETTER CA*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00056f: ARMENIAN SMALL LETTER KEN*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+000570: ARMENIAN SMALL LETTER HO*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+000571: ARMENIAN SMALL LETTER JA*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+000572: ARMENIAN SMALL LETTER GHAD*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+000573: ARMENIAN SMALL LETTER CHEH*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+000574: ARMENIAN SMALL LETTER MEN*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+000575: ARMENIAN SMALL LETTER YI*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+000576: ARMENIAN SMALL LETTER NOW*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+000577: ARMENIAN SMALL LETTER SHA*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+000578: ARMENIAN SMALL LETTER VO*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+000579: ARMENIAN SMALL LETTER CHA*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00057a: ARMENIAN SMALL LETTER PEH*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00057b: ARMENIAN SMALL LETTER JHEH*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00057c: ARMENIAN SMALL LETTER RA*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00057d: ARMENIAN SMALL LETTER SEH*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00057e: ARMENIAN SMALL LETTER VEW*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00057f: ARMENIAN SMALL LETTER TIWN*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+000580: ARMENIAN SMALL LETTER REH*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+000581: ARMENIAN SMALL LETTER CO*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+000582: ARMENIAN SMALL LETTER YIWN*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+000583: ARMENIAN SMALL LETTER PIWR*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+000584: ARMENIAN SMALL LETTER KEH*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+000585: ARMENIAN SMALL LETTER OH*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+000586: ARMENIAN SMALL LETTER FEH*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+000587: ARMENIAN SMALL LIGATURE ECH YIWN*/ + 0, /* U+000588: */ + 0, /* U+000589: ARMENIAN FULL STOP*/ + 0, /* U+00058a: ARMENIAN HYPHEN*/ + 0, /* U+00058b: */ + 0, /* U+00058c: */ + 0, /* U+00058d: */ + 0, /* U+00058e: */ + 0, /* U+00058f: ARMENIAN DRAM SIGN*/ + 0, /* U+000590: */ + 0, /* U+000591: HEBREW ACCENT ETNAHTA*/ + 0, /* U+000592: HEBREW ACCENT SEGOL*/ + 0, /* U+000593: HEBREW ACCENT SHALSHELET*/ + 0, /* U+000594: HEBREW ACCENT ZAQEF QATAN*/ + 0, /* U+000595: HEBREW ACCENT ZAQEF GADOL*/ + 0, /* U+000596: HEBREW ACCENT TIPEHA*/ + 0, /* U+000597: HEBREW ACCENT REVIA*/ + 0, /* U+000598: HEBREW ACCENT ZARQA*/ + 0, /* U+000599: HEBREW ACCENT PASHTA*/ + 0, /* U+00059a: HEBREW ACCENT YETIV*/ + 0, /* U+00059b: HEBREW ACCENT TEVIR*/ + 0, /* U+00059c: HEBREW ACCENT GERESH*/ + 0, /* U+00059d: HEBREW ACCENT GERESH MUQDAM*/ + 0, /* U+00059e: HEBREW ACCENT GERSHAYIM*/ + 0, /* U+00059f: HEBREW ACCENT QARNEY PARA*/ + 0, /* U+0005a0: HEBREW ACCENT TELISHA GEDOLA*/ + 0, /* U+0005a1: HEBREW ACCENT PAZER*/ + 0, /* U+0005a2: HEBREW ACCENT ATNAH HAFUKH*/ + 0, /* U+0005a3: HEBREW ACCENT MUNAH*/ + 0, /* U+0005a4: HEBREW ACCENT MAHAPAKH*/ + 0, /* U+0005a5: HEBREW ACCENT MERKHA*/ + 0, /* U+0005a6: HEBREW ACCENT MERKHA KEFULA*/ + 0, /* U+0005a7: HEBREW ACCENT DARGA*/ + 0, /* U+0005a8: HEBREW ACCENT QADMA*/ + 0, /* U+0005a9: HEBREW ACCENT TELISHA QETANA*/ + 0, /* U+0005aa: HEBREW ACCENT YERAH BEN YOMO*/ + 0, /* U+0005ab: HEBREW ACCENT OLE*/ + 0, /* U+0005ac: HEBREW ACCENT ILUY*/ + 0, /* U+0005ad: HEBREW ACCENT DEHI*/ + 0, /* U+0005ae: HEBREW ACCENT ZINOR*/ + 0, /* U+0005af: HEBREW MARK MASORA CIRCLE*/ + RTUNI_ALPHA, /* U+0005b0: HEBREW POINT SHEVA*/ + RTUNI_ALPHA, /* U+0005b1: HEBREW POINT HATAF SEGOL*/ + RTUNI_ALPHA, /* U+0005b2: HEBREW POINT HATAF PATAH*/ + RTUNI_ALPHA, /* U+0005b3: HEBREW POINT HATAF QAMATS*/ + RTUNI_ALPHA, /* U+0005b4: HEBREW POINT HIRIQ*/ + RTUNI_ALPHA, /* U+0005b5: HEBREW POINT TSERE*/ + RTUNI_ALPHA, /* U+0005b6: HEBREW POINT SEGOL*/ + RTUNI_ALPHA, /* U+0005b7: HEBREW POINT PATAH*/ + RTUNI_ALPHA, /* U+0005b8: HEBREW POINT QAMATS*/ + RTUNI_ALPHA, /* U+0005b9: HEBREW POINT HOLAM*/ + RTUNI_ALPHA, /* U+0005ba: HEBREW POINT HOLAM HASER FOR VAV*/ + RTUNI_ALPHA, /* U+0005bb: HEBREW POINT QUBUTS*/ + RTUNI_ALPHA, /* U+0005bc: HEBREW POINT DAGESH OR MAPIQ*/ + RTUNI_ALPHA, /* U+0005bd: HEBREW POINT METEG*/ + 0, /* U+0005be: HEBREW PUNCTUATION MAQAF*/ + RTUNI_ALPHA, /* U+0005bf: HEBREW POINT RAFE*/ + 0, /* U+0005c0: HEBREW PUNCTUATION PASEQ*/ + RTUNI_ALPHA, /* U+0005c1: HEBREW POINT SHIN DOT*/ + RTUNI_ALPHA, /* U+0005c2: HEBREW POINT SIN DOT*/ + 0, /* U+0005c3: HEBREW PUNCTUATION SOF PASUQ*/ + RTUNI_ALPHA, /* U+0005c4: HEBREW MARK UPPER DOT*/ + RTUNI_ALPHA, /* U+0005c5: HEBREW MARK LOWER DOT*/ + 0, /* U+0005c6: HEBREW PUNCTUATION NUN HAFUKHA*/ + RTUNI_ALPHA, /* U+0005c7: HEBREW POINT QAMATS QATAN*/ + 0, /* U+0005c8: */ + 0, /* U+0005c9: */ + 0, /* U+0005ca: */ + 0, /* U+0005cb: */ + 0, /* U+0005cc: */ + 0, /* U+0005cd: */ + 0, /* U+0005ce: */ + 0, /* U+0005cf: */ + RTUNI_ALPHA, /* U+0005d0: HEBREW LETTER ALEF*/ + RTUNI_ALPHA, /* U+0005d1: HEBREW LETTER BET*/ + RTUNI_ALPHA, /* U+0005d2: HEBREW LETTER GIMEL*/ + RTUNI_ALPHA, /* U+0005d3: HEBREW LETTER DALET*/ + RTUNI_ALPHA, /* U+0005d4: HEBREW LETTER HE*/ + RTUNI_ALPHA, /* U+0005d5: HEBREW LETTER VAV*/ + RTUNI_ALPHA, /* U+0005d6: HEBREW LETTER ZAYIN*/ + RTUNI_ALPHA, /* U+0005d7: HEBREW LETTER HET*/ + RTUNI_ALPHA, /* U+0005d8: HEBREW LETTER TET*/ + RTUNI_ALPHA, /* U+0005d9: HEBREW LETTER YOD*/ + RTUNI_ALPHA, /* U+0005da: HEBREW LETTER FINAL KAF*/ + RTUNI_ALPHA, /* U+0005db: HEBREW LETTER KAF*/ + RTUNI_ALPHA, /* U+0005dc: HEBREW LETTER LAMED*/ + RTUNI_ALPHA, /* U+0005dd: HEBREW LETTER FINAL MEM*/ + RTUNI_ALPHA, /* U+0005de: HEBREW LETTER MEM*/ + RTUNI_ALPHA, /* U+0005df: HEBREW LETTER FINAL NUN*/ + RTUNI_ALPHA, /* U+0005e0: HEBREW LETTER NUN*/ + RTUNI_ALPHA, /* U+0005e1: HEBREW LETTER SAMEKH*/ + RTUNI_ALPHA, /* U+0005e2: HEBREW LETTER AYIN*/ + RTUNI_ALPHA, /* U+0005e3: HEBREW LETTER FINAL PE*/ + RTUNI_ALPHA, /* U+0005e4: HEBREW LETTER PE*/ + RTUNI_ALPHA, /* U+0005e5: HEBREW LETTER FINAL TSADI*/ + RTUNI_ALPHA, /* U+0005e6: HEBREW LETTER TSADI*/ + RTUNI_ALPHA, /* U+0005e7: HEBREW LETTER QOF*/ + RTUNI_ALPHA, /* U+0005e8: HEBREW LETTER RESH*/ + RTUNI_ALPHA, /* U+0005e9: HEBREW LETTER SHIN*/ + RTUNI_ALPHA, /* U+0005ea: HEBREW LETTER TAV*/ + 0, /* U+0005eb: */ + 0, /* U+0005ec: */ + 0, /* U+0005ed: */ + 0, /* U+0005ee: */ + 0, /* U+0005ef: */ + RTUNI_ALPHA, /* U+0005f0: HEBREW LIGATURE YIDDISH DOUBLE VAV*/ + RTUNI_ALPHA, /* U+0005f1: HEBREW LIGATURE YIDDISH VAV YOD*/ + RTUNI_ALPHA, /* U+0005f2: HEBREW LIGATURE YIDDISH DOUBLE YOD*/ + 0, /* U+0005f3: HEBREW PUNCTUATION GERESH*/ + 0, /* U+0005f4: HEBREW PUNCTUATION GERSHAYIM*/ + 0, /* U+0005f5: */ + 0, /* U+0005f6: */ + 0, /* U+0005f7: */ + 0, /* U+0005f8: */ + 0, /* U+0005f9: */ + 0, /* U+0005fa: */ + 0, /* U+0005fb: */ + 0, /* U+0005fc: */ + 0, /* U+0005fd: */ + 0, /* U+0005fe: */ + 0, /* U+0005ff: */ + 0, /* U+000600: ARABIC NUMBER SIGN*/ + 0, /* U+000601: ARABIC SIGN SANAH*/ + 0, /* U+000602: ARABIC FOOTNOTE MARKER*/ + 0, /* U+000603: ARABIC SIGN SAFHA*/ + 0, /* U+000604: ARABIC SIGN SAMVAT*/ + 0, /* U+000605: */ + 0, /* U+000606: ARABIC-INDIC CUBE ROOT*/ + 0, /* U+000607: ARABIC-INDIC FOURTH ROOT*/ + 0, /* U+000608: ARABIC RAY*/ + 0, /* U+000609: ARABIC-INDIC PER MILLE SIGN*/ + 0, /* U+00060a: ARABIC-INDIC PER TEN THOUSAND SIGN*/ + 0, /* U+00060b: AFGHANI SIGN*/ + 0, /* U+00060c: ARABIC COMMA*/ + 0, /* U+00060d: ARABIC DATE SEPARATOR*/ + 0, /* U+00060e: ARABIC POETIC VERSE SIGN*/ + 0, /* U+00060f: ARABIC SIGN MISRA*/ + RTUNI_ALPHA, /* U+000610: ARABIC SIGN SALLALLAHOU ALAYHE WASSALLAM*/ + RTUNI_ALPHA, /* U+000611: ARABIC SIGN ALAYHE ASSALLAM*/ + RTUNI_ALPHA, /* U+000612: ARABIC SIGN RAHMATULLAH ALAYHE*/ + RTUNI_ALPHA, /* U+000613: ARABIC SIGN RADI ALLAHOU ANHU*/ + RTUNI_ALPHA, /* U+000614: ARABIC SIGN TAKHALLUS*/ + RTUNI_ALPHA, /* U+000615: ARABIC SMALL HIGH TAH*/ + RTUNI_ALPHA, /* U+000616: ARABIC SMALL HIGH LIGATURE ALEF WITH LAM WITH YEH*/ + RTUNI_ALPHA, /* U+000617: ARABIC SMALL HIGH ZAIN*/ + RTUNI_ALPHA, /* U+000618: ARABIC SMALL FATHA*/ + RTUNI_ALPHA, /* U+000619: ARABIC SMALL DAMMA*/ + RTUNI_ALPHA, /* U+00061a: ARABIC SMALL KASRA*/ + 0, /* U+00061b: ARABIC SEMICOLON*/ + 0, /* U+00061c: ARABIC LETTER MARK*/ + 0, /* U+00061d: */ + 0, /* U+00061e: ARABIC TRIPLE DOT PUNCTUATION MARK*/ + 0, /* U+00061f: ARABIC QUESTION MARK*/ + RTUNI_ALPHA, /* U+000620: ARABIC LETTER KASHMIRI YEH*/ + RTUNI_ALPHA, /* U+000621: ARABIC LETTER HAMZA*/ + RTUNI_ALPHA, /* U+000622: ARABIC LETTER ALEF WITH MADDA ABOVE*/ + RTUNI_ALPHA, /* U+000623: ARABIC LETTER ALEF WITH HAMZA ABOVE*/ + RTUNI_ALPHA, /* U+000624: ARABIC LETTER WAW WITH HAMZA ABOVE*/ + RTUNI_ALPHA, /* U+000625: ARABIC LETTER ALEF WITH HAMZA BELOW*/ + RTUNI_ALPHA, /* U+000626: ARABIC LETTER YEH WITH HAMZA ABOVE*/ + RTUNI_ALPHA, /* U+000627: ARABIC LETTER ALEF*/ + RTUNI_ALPHA, /* U+000628: ARABIC LETTER BEH*/ + RTUNI_ALPHA, /* U+000629: ARABIC LETTER TEH MARBUTA*/ + RTUNI_ALPHA, /* U+00062a: ARABIC LETTER TEH*/ + RTUNI_ALPHA, /* U+00062b: ARABIC LETTER THEH*/ + RTUNI_ALPHA, /* U+00062c: ARABIC LETTER JEEM*/ + RTUNI_ALPHA, /* U+00062d: ARABIC LETTER HAH*/ + RTUNI_ALPHA, /* U+00062e: ARABIC LETTER KHAH*/ + RTUNI_ALPHA, /* U+00062f: ARABIC LETTER DAL*/ + RTUNI_ALPHA, /* U+000630: ARABIC LETTER THAL*/ + RTUNI_ALPHA, /* U+000631: ARABIC LETTER REH*/ + RTUNI_ALPHA, /* U+000632: ARABIC LETTER ZAIN*/ + RTUNI_ALPHA, /* U+000633: ARABIC LETTER SEEN*/ + RTUNI_ALPHA, /* U+000634: ARABIC LETTER SHEEN*/ + RTUNI_ALPHA, /* U+000635: ARABIC LETTER SAD*/ + RTUNI_ALPHA, /* U+000636: ARABIC LETTER DAD*/ + RTUNI_ALPHA, /* U+000637: ARABIC LETTER TAH*/ + RTUNI_ALPHA, /* U+000638: ARABIC LETTER ZAH*/ + RTUNI_ALPHA, /* U+000639: ARABIC LETTER AIN*/ + RTUNI_ALPHA, /* U+00063a: ARABIC LETTER GHAIN*/ + RTUNI_ALPHA, /* U+00063b: ARABIC LETTER KEHEH WITH TWO DOTS ABOVE*/ + RTUNI_ALPHA, /* U+00063c: ARABIC LETTER KEHEH WITH THREE DOTS BELOW*/ + RTUNI_ALPHA, /* U+00063d: ARABIC LETTER FARSI YEH WITH INVERTED V*/ + RTUNI_ALPHA, /* U+00063e: ARABIC LETTER FARSI YEH WITH TWO DOTS ABOVE*/ + RTUNI_ALPHA, /* U+00063f: ARABIC LETTER FARSI YEH WITH THREE DOTS ABOVE*/ + RTUNI_ALPHA, /* U+000640: ARABIC TATWEEL*/ + RTUNI_ALPHA, /* U+000641: ARABIC LETTER FEH*/ + RTUNI_ALPHA, /* U+000642: ARABIC LETTER QAF*/ + RTUNI_ALPHA, /* U+000643: ARABIC LETTER KAF*/ + RTUNI_ALPHA, /* U+000644: ARABIC LETTER LAM*/ + RTUNI_ALPHA, /* U+000645: ARABIC LETTER MEEM*/ + RTUNI_ALPHA, /* U+000646: ARABIC LETTER NOON*/ + RTUNI_ALPHA, /* U+000647: ARABIC LETTER HEH*/ + RTUNI_ALPHA, /* U+000648: ARABIC LETTER WAW*/ + RTUNI_ALPHA, /* U+000649: ARABIC LETTER ALEF MAKSURA*/ + RTUNI_ALPHA, /* U+00064a: ARABIC LETTER YEH*/ + RTUNI_ALPHA, /* U+00064b: ARABIC FATHATAN*/ + RTUNI_ALPHA, /* U+00064c: ARABIC DAMMATAN*/ + RTUNI_ALPHA, /* U+00064d: ARABIC KASRATAN*/ + RTUNI_ALPHA, /* U+00064e: ARABIC FATHA*/ + RTUNI_ALPHA, /* U+00064f: ARABIC DAMMA*/ + RTUNI_ALPHA, /* U+000650: ARABIC KASRA*/ + RTUNI_ALPHA, /* U+000651: ARABIC SHADDA*/ + RTUNI_ALPHA, /* U+000652: ARABIC SUKUN*/ + RTUNI_ALPHA, /* U+000653: ARABIC MADDAH ABOVE*/ + RTUNI_ALPHA, /* U+000654: ARABIC HAMZA ABOVE*/ + RTUNI_ALPHA, /* U+000655: ARABIC HAMZA BELOW*/ + RTUNI_ALPHA, /* U+000656: ARABIC SUBSCRIPT ALEF*/ + RTUNI_ALPHA, /* U+000657: ARABIC INVERTED DAMMA*/ + 0, /* U+000658: ARABIC MARK NOON GHUNNA*/ + RTUNI_ALPHA, /* U+000659: ARABIC ZWARAKAY*/ + RTUNI_ALPHA, /* U+00065a: ARABIC VOWEL SIGN SMALL V ABOVE*/ + RTUNI_ALPHA, /* U+00065b: ARABIC VOWEL SIGN INVERTED SMALL V ABOVE*/ + RTUNI_ALPHA, /* U+00065c: ARABIC VOWEL SIGN DOT BELOW*/ + RTUNI_ALPHA, /* U+00065d: ARABIC REVERSED DAMMA*/ + RTUNI_ALPHA, /* U+00065e: ARABIC FATHA WITH TWO DOTS*/ + RTUNI_ALPHA, /* U+00065f: ARABIC WAVY HAMZA BELOW*/ + RTUNI_DDIGIT, /* U+000660: ARABIC-INDIC DIGIT ZERO*/ + RTUNI_DDIGIT, /* U+000661: ARABIC-INDIC DIGIT ONE*/ + RTUNI_DDIGIT, /* U+000662: ARABIC-INDIC DIGIT TWO*/ + RTUNI_DDIGIT, /* U+000663: ARABIC-INDIC DIGIT THREE*/ + RTUNI_DDIGIT, /* U+000664: ARABIC-INDIC DIGIT FOUR*/ + RTUNI_DDIGIT, /* U+000665: ARABIC-INDIC DIGIT FIVE*/ + RTUNI_DDIGIT, /* U+000666: ARABIC-INDIC DIGIT SIX*/ + RTUNI_DDIGIT, /* U+000667: ARABIC-INDIC DIGIT SEVEN*/ + RTUNI_DDIGIT, /* U+000668: ARABIC-INDIC DIGIT EIGHT*/ + RTUNI_DDIGIT, /* U+000669: ARABIC-INDIC DIGIT NINE*/ + 0, /* U+00066a: ARABIC PERCENT SIGN*/ + 0, /* U+00066b: ARABIC DECIMAL SEPARATOR*/ + 0, /* U+00066c: ARABIC THOUSANDS SEPARATOR*/ + 0, /* U+00066d: ARABIC FIVE POINTED STAR*/ + RTUNI_ALPHA, /* U+00066e: ARABIC LETTER DOTLESS BEH*/ + RTUNI_ALPHA, /* U+00066f: ARABIC LETTER DOTLESS QAF*/ + RTUNI_ALPHA, /* U+000670: ARABIC LETTER SUPERSCRIPT ALEF*/ + RTUNI_ALPHA, /* U+000671: ARABIC LETTER ALEF WASLA*/ + RTUNI_ALPHA, /* U+000672: ARABIC LETTER ALEF WITH WAVY HAMZA ABOVE*/ + RTUNI_ALPHA, /* U+000673: ARABIC LETTER ALEF WITH WAVY HAMZA BELOW*/ + RTUNI_ALPHA, /* U+000674: ARABIC LETTER HIGH HAMZA*/ + RTUNI_ALPHA, /* U+000675: ARABIC LETTER HIGH HAMZA ALEF*/ + RTUNI_ALPHA, /* U+000676: ARABIC LETTER HIGH HAMZA WAW*/ + RTUNI_ALPHA, /* U+000677: ARABIC LETTER U WITH HAMZA ABOVE*/ + RTUNI_ALPHA, /* U+000678: ARABIC LETTER HIGH HAMZA YEH*/ + RTUNI_ALPHA, /* U+000679: ARABIC LETTER TTEH*/ + RTUNI_ALPHA, /* U+00067a: ARABIC LETTER TTEHEH*/ + RTUNI_ALPHA, /* U+00067b: ARABIC LETTER BEEH*/ + RTUNI_ALPHA, /* U+00067c: ARABIC LETTER TEH WITH RING*/ + RTUNI_ALPHA, /* U+00067d: ARABIC LETTER TEH WITH THREE DOTS ABOVE DOWNWARDS*/ + RTUNI_ALPHA, /* U+00067e: ARABIC LETTER PEH*/ + RTUNI_ALPHA, /* U+00067f: ARABIC LETTER TEHEH*/ + RTUNI_ALPHA, /* U+000680: ARABIC LETTER BEHEH*/ + RTUNI_ALPHA, /* U+000681: ARABIC LETTER HAH WITH HAMZA ABOVE*/ + RTUNI_ALPHA, /* U+000682: ARABIC LETTER HAH WITH TWO DOTS VERTICAL ABOVE*/ + RTUNI_ALPHA, /* U+000683: ARABIC LETTER NYEH*/ + RTUNI_ALPHA, /* U+000684: ARABIC LETTER DYEH*/ + RTUNI_ALPHA, /* U+000685: ARABIC LETTER HAH WITH THREE DOTS ABOVE*/ + RTUNI_ALPHA, /* U+000686: ARABIC LETTER TCHEH*/ + RTUNI_ALPHA, /* U+000687: ARABIC LETTER TCHEHEH*/ + RTUNI_ALPHA, /* U+000688: ARABIC LETTER DDAL*/ + RTUNI_ALPHA, /* U+000689: ARABIC LETTER DAL WITH RING*/ + RTUNI_ALPHA, /* U+00068a: ARABIC LETTER DAL WITH DOT BELOW*/ + RTUNI_ALPHA, /* U+00068b: ARABIC LETTER DAL WITH DOT BELOW AND SMALL TAH*/ + RTUNI_ALPHA, /* U+00068c: ARABIC LETTER DAHAL*/ + RTUNI_ALPHA, /* U+00068d: ARABIC LETTER DDAHAL*/ + RTUNI_ALPHA, /* U+00068e: ARABIC LETTER DUL*/ + RTUNI_ALPHA, /* U+00068f: ARABIC LETTER DAL WITH THREE DOTS ABOVE DOWNWARDS*/ + RTUNI_ALPHA, /* U+000690: ARABIC LETTER DAL WITH FOUR DOTS ABOVE*/ + RTUNI_ALPHA, /* U+000691: ARABIC LETTER RREH*/ + RTUNI_ALPHA, /* U+000692: ARABIC LETTER REH WITH SMALL V*/ + RTUNI_ALPHA, /* U+000693: ARABIC LETTER REH WITH RING*/ + RTUNI_ALPHA, /* U+000694: ARABIC LETTER REH WITH DOT BELOW*/ + RTUNI_ALPHA, /* U+000695: ARABIC LETTER REH WITH SMALL V BELOW*/ + RTUNI_ALPHA, /* U+000696: ARABIC LETTER REH WITH DOT BELOW AND DOT ABOVE*/ + RTUNI_ALPHA, /* U+000697: ARABIC LETTER REH WITH TWO DOTS ABOVE*/ + RTUNI_ALPHA, /* U+000698: ARABIC LETTER JEH*/ + RTUNI_ALPHA, /* U+000699: ARABIC LETTER REH WITH FOUR DOTS ABOVE*/ + RTUNI_ALPHA, /* U+00069a: ARABIC LETTER SEEN WITH DOT BELOW AND DOT ABOVE*/ + RTUNI_ALPHA, /* U+00069b: ARABIC LETTER SEEN WITH THREE DOTS BELOW*/ + RTUNI_ALPHA, /* U+00069c: ARABIC LETTER SEEN WITH THREE DOTS BELOW AND THREE DOTS ABOVE*/ + RTUNI_ALPHA, /* U+00069d: ARABIC LETTER SAD WITH TWO DOTS BELOW*/ + RTUNI_ALPHA, /* U+00069e: ARABIC LETTER SAD WITH THREE DOTS ABOVE*/ + RTUNI_ALPHA, /* U+00069f: ARABIC LETTER TAH WITH THREE DOTS ABOVE*/ + RTUNI_ALPHA, /* U+0006a0: ARABIC LETTER AIN WITH THREE DOTS ABOVE*/ + RTUNI_ALPHA, /* U+0006a1: ARABIC LETTER DOTLESS FEH*/ + RTUNI_ALPHA, /* U+0006a2: ARABIC LETTER FEH WITH DOT MOVED BELOW*/ + RTUNI_ALPHA, /* U+0006a3: ARABIC LETTER FEH WITH DOT BELOW*/ + RTUNI_ALPHA, /* U+0006a4: ARABIC LETTER VEH*/ + RTUNI_ALPHA, /* U+0006a5: ARABIC LETTER FEH WITH THREE DOTS BELOW*/ + RTUNI_ALPHA, /* U+0006a6: ARABIC LETTER PEHEH*/ + RTUNI_ALPHA, /* U+0006a7: ARABIC LETTER QAF WITH DOT ABOVE*/ + RTUNI_ALPHA, /* U+0006a8: ARABIC LETTER QAF WITH THREE DOTS ABOVE*/ + RTUNI_ALPHA, /* U+0006a9: ARABIC LETTER KEHEH*/ + RTUNI_ALPHA, /* U+0006aa: ARABIC LETTER SWASH KAF*/ + RTUNI_ALPHA, /* U+0006ab: ARABIC LETTER KAF WITH RING*/ + RTUNI_ALPHA, /* U+0006ac: ARABIC LETTER KAF WITH DOT ABOVE*/ + RTUNI_ALPHA, /* U+0006ad: ARABIC LETTER NG*/ + RTUNI_ALPHA, /* U+0006ae: ARABIC LETTER KAF WITH THREE DOTS BELOW*/ + RTUNI_ALPHA, /* U+0006af: ARABIC LETTER GAF*/ + RTUNI_ALPHA, /* U+0006b0: ARABIC LETTER GAF WITH RING*/ + RTUNI_ALPHA, /* U+0006b1: ARABIC LETTER NGOEH*/ + RTUNI_ALPHA, /* U+0006b2: ARABIC LETTER GAF WITH TWO DOTS BELOW*/ + RTUNI_ALPHA, /* U+0006b3: ARABIC LETTER GUEH*/ + RTUNI_ALPHA, /* U+0006b4: ARABIC LETTER GAF WITH THREE DOTS ABOVE*/ + RTUNI_ALPHA, /* U+0006b5: ARABIC LETTER LAM WITH SMALL V*/ + RTUNI_ALPHA, /* U+0006b6: ARABIC LETTER LAM WITH DOT ABOVE*/ + RTUNI_ALPHA, /* U+0006b7: ARABIC LETTER LAM WITH THREE DOTS ABOVE*/ + RTUNI_ALPHA, /* U+0006b8: ARABIC LETTER LAM WITH THREE DOTS BELOW*/ + RTUNI_ALPHA, /* U+0006b9: ARABIC LETTER NOON WITH DOT BELOW*/ + RTUNI_ALPHA, /* U+0006ba: ARABIC LETTER NOON GHUNNA*/ + RTUNI_ALPHA, /* U+0006bb: ARABIC LETTER RNOON*/ + RTUNI_ALPHA, /* U+0006bc: ARABIC LETTER NOON WITH RING*/ + RTUNI_ALPHA, /* U+0006bd: ARABIC LETTER NOON WITH THREE DOTS ABOVE*/ + RTUNI_ALPHA, /* U+0006be: ARABIC LETTER HEH DOACHASHMEE*/ + RTUNI_ALPHA, /* U+0006bf: ARABIC LETTER TCHEH WITH DOT ABOVE*/ + RTUNI_ALPHA, /* U+0006c0: ARABIC LETTER HEH WITH YEH ABOVE*/ + RTUNI_ALPHA, /* U+0006c1: ARABIC LETTER HEH GOAL*/ + RTUNI_ALPHA, /* U+0006c2: ARABIC LETTER HEH GOAL WITH HAMZA ABOVE*/ + RTUNI_ALPHA, /* U+0006c3: ARABIC LETTER TEH MARBUTA GOAL*/ + RTUNI_ALPHA, /* U+0006c4: ARABIC LETTER WAW WITH RING*/ + RTUNI_ALPHA, /* U+0006c5: ARABIC LETTER KIRGHIZ OE*/ + RTUNI_ALPHA, /* U+0006c6: ARABIC LETTER OE*/ + RTUNI_ALPHA, /* U+0006c7: ARABIC LETTER U*/ + RTUNI_ALPHA, /* U+0006c8: ARABIC LETTER YU*/ + RTUNI_ALPHA, /* U+0006c9: ARABIC LETTER KIRGHIZ YU*/ + RTUNI_ALPHA, /* U+0006ca: ARABIC LETTER WAW WITH TWO DOTS ABOVE*/ + RTUNI_ALPHA, /* U+0006cb: ARABIC LETTER VE*/ + RTUNI_ALPHA, /* U+0006cc: ARABIC LETTER FARSI YEH*/ + RTUNI_ALPHA, /* U+0006cd: ARABIC LETTER YEH WITH TAIL*/ + RTUNI_ALPHA, /* U+0006ce: ARABIC LETTER YEH WITH SMALL V*/ + RTUNI_ALPHA, /* U+0006cf: ARABIC LETTER WAW WITH DOT ABOVE*/ + RTUNI_ALPHA, /* U+0006d0: ARABIC LETTER E*/ + RTUNI_ALPHA, /* U+0006d1: ARABIC LETTER YEH WITH THREE DOTS BELOW*/ + RTUNI_ALPHA, /* U+0006d2: ARABIC LETTER YEH BARREE*/ + RTUNI_ALPHA, /* U+0006d3: ARABIC LETTER YEH BARREE WITH HAMZA ABOVE*/ + 0, /* U+0006d4: ARABIC FULL STOP*/ + RTUNI_ALPHA, /* U+0006d5: ARABIC LETTER AE*/ + RTUNI_ALPHA, /* U+0006d6: ARABIC SMALL HIGH LIGATURE SAD WITH LAM WITH ALEF MAKSURA*/ + RTUNI_ALPHA, /* U+0006d7: ARABIC SMALL HIGH LIGATURE QAF WITH LAM WITH ALEF MAKSURA*/ + RTUNI_ALPHA, /* U+0006d8: ARABIC SMALL HIGH MEEM INITIAL FORM*/ + RTUNI_ALPHA, /* U+0006d9: ARABIC SMALL HIGH LAM ALEF*/ + RTUNI_ALPHA, /* U+0006da: ARABIC SMALL HIGH JEEM*/ + RTUNI_ALPHA, /* U+0006db: ARABIC SMALL HIGH THREE DOTS*/ + RTUNI_ALPHA, /* U+0006dc: ARABIC SMALL HIGH SEEN*/ + 0, /* U+0006dd: ARABIC END OF AYAH*/ + 0, /* U+0006de: ARABIC START OF RUB EL HIZB*/ + 0, /* U+0006df: ARABIC SMALL HIGH ROUNDED ZERO*/ + 0, /* U+0006e0: ARABIC SMALL HIGH UPRIGHT RECTANGULAR ZERO*/ + RTUNI_ALPHA, /* U+0006e1: ARABIC SMALL HIGH DOTLESS HEAD OF KHAH*/ + RTUNI_ALPHA, /* U+0006e2: ARABIC SMALL HIGH MEEM ISOLATED FORM*/ + RTUNI_ALPHA, /* U+0006e3: ARABIC SMALL LOW SEEN*/ + RTUNI_ALPHA, /* U+0006e4: ARABIC SMALL HIGH MADDA*/ + RTUNI_ALPHA, /* U+0006e5: ARABIC SMALL WAW*/ + RTUNI_ALPHA, /* U+0006e6: ARABIC SMALL YEH*/ + RTUNI_ALPHA, /* U+0006e7: ARABIC SMALL HIGH YEH*/ + RTUNI_ALPHA, /* U+0006e8: ARABIC SMALL HIGH NOON*/ + 0, /* U+0006e9: ARABIC PLACE OF SAJDAH*/ + 0, /* U+0006ea: ARABIC EMPTY CENTRE LOW STOP*/ + 0, /* U+0006eb: ARABIC EMPTY CENTRE HIGH STOP*/ + 0, /* U+0006ec: ARABIC ROUNDED HIGH STOP WITH FILLED CENTRE*/ + RTUNI_ALPHA, /* U+0006ed: ARABIC SMALL LOW MEEM*/ + RTUNI_ALPHA, /* U+0006ee: ARABIC LETTER DAL WITH INVERTED V*/ + RTUNI_ALPHA, /* U+0006ef: ARABIC LETTER REH WITH INVERTED V*/ + RTUNI_DDIGIT, /* U+0006f0: EXTENDED ARABIC-INDIC DIGIT ZERO*/ + RTUNI_DDIGIT, /* U+0006f1: EXTENDED ARABIC-INDIC DIGIT ONE*/ + RTUNI_DDIGIT, /* U+0006f2: EXTENDED ARABIC-INDIC DIGIT TWO*/ + RTUNI_DDIGIT, /* U+0006f3: EXTENDED ARABIC-INDIC DIGIT THREE*/ + RTUNI_DDIGIT, /* U+0006f4: EXTENDED ARABIC-INDIC DIGIT FOUR*/ + RTUNI_DDIGIT, /* U+0006f5: EXTENDED ARABIC-INDIC DIGIT FIVE*/ + RTUNI_DDIGIT, /* U+0006f6: EXTENDED ARABIC-INDIC DIGIT SIX*/ + RTUNI_DDIGIT, /* U+0006f7: EXTENDED ARABIC-INDIC DIGIT SEVEN*/ + RTUNI_DDIGIT, /* U+0006f8: EXTENDED ARABIC-INDIC DIGIT EIGHT*/ + RTUNI_DDIGIT, /* U+0006f9: EXTENDED ARABIC-INDIC DIGIT NINE*/ + RTUNI_ALPHA, /* U+0006fa: ARABIC LETTER SHEEN WITH DOT BELOW*/ + RTUNI_ALPHA, /* U+0006fb: ARABIC LETTER DAD WITH DOT BELOW*/ + RTUNI_ALPHA, /* U+0006fc: ARABIC LETTER GHAIN WITH DOT BELOW*/ + 0, /* U+0006fd: ARABIC SIGN SINDHI AMPERSAND*/ + 0, /* U+0006fe: ARABIC SIGN SINDHI POSTPOSITION MEN*/ + RTUNI_ALPHA, /* U+0006ff: ARABIC LETTER HEH WITH INVERTED V*/ + 0, /* U+000700: SYRIAC END OF PARAGRAPH*/ + 0, /* U+000701: SYRIAC SUPRALINEAR FULL STOP*/ + 0, /* U+000702: SYRIAC SUBLINEAR FULL STOP*/ + 0, /* U+000703: SYRIAC SUPRALINEAR COLON*/ + 0, /* U+000704: SYRIAC SUBLINEAR COLON*/ + 0, /* U+000705: SYRIAC HORIZONTAL COLON*/ + 0, /* U+000706: SYRIAC COLON SKEWED LEFT*/ + 0, /* U+000707: SYRIAC COLON SKEWED RIGHT*/ + 0, /* U+000708: SYRIAC SUPRALINEAR COLON SKEWED LEFT*/ + 0, /* U+000709: SYRIAC SUBLINEAR COLON SKEWED RIGHT*/ + 0, /* U+00070a: SYRIAC CONTRACTION*/ + 0, /* U+00070b: SYRIAC HARKLEAN OBELUS*/ + 0, /* U+00070c: SYRIAC HARKLEAN METOBELUS*/ + 0, /* U+00070d: SYRIAC HARKLEAN ASTERISCUS*/ + 0, /* U+00070e: */ + 0, /* U+00070f: SYRIAC ABBREVIATION MARK*/ + RTUNI_ALPHA, /* U+000710: SYRIAC LETTER ALAPH*/ + RTUNI_ALPHA, /* U+000711: SYRIAC LETTER SUPERSCRIPT ALAPH*/ + RTUNI_ALPHA, /* U+000712: SYRIAC LETTER BETH*/ + RTUNI_ALPHA, /* U+000713: SYRIAC LETTER GAMAL*/ + RTUNI_ALPHA, /* U+000714: SYRIAC LETTER GAMAL GARSHUNI*/ + RTUNI_ALPHA, /* U+000715: SYRIAC LETTER DALATH*/ + RTUNI_ALPHA, /* U+000716: SYRIAC LETTER DOTLESS DALATH RISH*/ + RTUNI_ALPHA, /* U+000717: SYRIAC LETTER HE*/ + RTUNI_ALPHA, /* U+000718: SYRIAC LETTER WAW*/ + RTUNI_ALPHA, /* U+000719: SYRIAC LETTER ZAIN*/ + RTUNI_ALPHA, /* U+00071a: SYRIAC LETTER HETH*/ + RTUNI_ALPHA, /* U+00071b: SYRIAC LETTER TETH*/ + RTUNI_ALPHA, /* U+00071c: SYRIAC LETTER TETH GARSHUNI*/ + RTUNI_ALPHA, /* U+00071d: SYRIAC LETTER YUDH*/ + RTUNI_ALPHA, /* U+00071e: SYRIAC LETTER YUDH HE*/ + RTUNI_ALPHA, /* U+00071f: SYRIAC LETTER KAPH*/ + RTUNI_ALPHA, /* U+000720: SYRIAC LETTER LAMADH*/ + RTUNI_ALPHA, /* U+000721: SYRIAC LETTER MIM*/ + RTUNI_ALPHA, /* U+000722: SYRIAC LETTER NUN*/ + RTUNI_ALPHA, /* U+000723: SYRIAC LETTER SEMKATH*/ + RTUNI_ALPHA, /* U+000724: SYRIAC LETTER FINAL SEMKATH*/ + RTUNI_ALPHA, /* U+000725: SYRIAC LETTER E*/ + RTUNI_ALPHA, /* U+000726: SYRIAC LETTER PE*/ + RTUNI_ALPHA, /* U+000727: SYRIAC LETTER REVERSED PE*/ + RTUNI_ALPHA, /* U+000728: SYRIAC LETTER SADHE*/ + RTUNI_ALPHA, /* U+000729: SYRIAC LETTER QAPH*/ + RTUNI_ALPHA, /* U+00072a: SYRIAC LETTER RISH*/ + RTUNI_ALPHA, /* U+00072b: SYRIAC LETTER SHIN*/ + RTUNI_ALPHA, /* U+00072c: SYRIAC LETTER TAW*/ + RTUNI_ALPHA, /* U+00072d: SYRIAC LETTER PERSIAN BHETH*/ + RTUNI_ALPHA, /* U+00072e: SYRIAC LETTER PERSIAN GHAMAL*/ + RTUNI_ALPHA, /* U+00072f: SYRIAC LETTER PERSIAN DHALATH*/ + RTUNI_ALPHA, /* U+000730: SYRIAC PTHAHA ABOVE*/ + RTUNI_ALPHA, /* U+000731: SYRIAC PTHAHA BELOW*/ + RTUNI_ALPHA, /* U+000732: SYRIAC PTHAHA DOTTED*/ + RTUNI_ALPHA, /* U+000733: SYRIAC ZQAPHA ABOVE*/ + RTUNI_ALPHA, /* U+000734: SYRIAC ZQAPHA BELOW*/ + RTUNI_ALPHA, /* U+000735: SYRIAC ZQAPHA DOTTED*/ + RTUNI_ALPHA, /* U+000736: SYRIAC RBASA ABOVE*/ + RTUNI_ALPHA, /* U+000737: SYRIAC RBASA BELOW*/ + RTUNI_ALPHA, /* U+000738: SYRIAC DOTTED ZLAMA HORIZONTAL*/ + RTUNI_ALPHA, /* U+000739: SYRIAC DOTTED ZLAMA ANGULAR*/ + RTUNI_ALPHA, /* U+00073a: SYRIAC HBASA ABOVE*/ + RTUNI_ALPHA, /* U+00073b: SYRIAC HBASA BELOW*/ + RTUNI_ALPHA, /* U+00073c: SYRIAC HBASA-ESASA DOTTED*/ + RTUNI_ALPHA, /* U+00073d: SYRIAC ESASA ABOVE*/ + RTUNI_ALPHA, /* U+00073e: SYRIAC ESASA BELOW*/ + RTUNI_ALPHA, /* U+00073f: SYRIAC RWAHA*/ + 0, /* U+000740: SYRIAC FEMININE DOT*/ + 0, /* U+000741: SYRIAC QUSHSHAYA*/ + 0, /* U+000742: SYRIAC RUKKAKHA*/ + 0, /* U+000743: SYRIAC TWO VERTICAL DOTS ABOVE*/ + 0, /* U+000744: SYRIAC TWO VERTICAL DOTS BELOW*/ + 0, /* U+000745: SYRIAC THREE DOTS ABOVE*/ + 0, /* U+000746: SYRIAC THREE DOTS BELOW*/ + 0, /* U+000747: SYRIAC OBLIQUE LINE ABOVE*/ + 0, /* U+000748: SYRIAC OBLIQUE LINE BELOW*/ + 0, /* U+000749: SYRIAC MUSIC*/ + 0, /* U+00074a: SYRIAC BARREKH*/ + 0, /* U+00074b: */ + 0, /* U+00074c: */ + RTUNI_ALPHA, /* U+00074d: SYRIAC LETTER SOGDIAN ZHAIN*/ + RTUNI_ALPHA, /* U+00074e: SYRIAC LETTER SOGDIAN KHAPH*/ + RTUNI_ALPHA, /* U+00074f: SYRIAC LETTER SOGDIAN FE*/ + RTUNI_ALPHA, /* U+000750: ARABIC LETTER BEH WITH THREE DOTS HORIZONTALLY BELOW*/ + RTUNI_ALPHA, /* U+000751: ARABIC LETTER BEH WITH DOT BELOW AND THREE DOTS ABOVE*/ + RTUNI_ALPHA, /* U+000752: ARABIC LETTER BEH WITH THREE DOTS POINTING UPWARDS BELOW*/ + RTUNI_ALPHA, /* U+000753: ARABIC LETTER BEH WITH THREE DOTS POINTING UPWARDS BELOW AND TWO DOTS ABOVE*/ + RTUNI_ALPHA, /* U+000754: ARABIC LETTER BEH WITH TWO DOTS BELOW AND DOT ABOVE*/ + RTUNI_ALPHA, /* U+000755: ARABIC LETTER BEH WITH INVERTED SMALL V BELOW*/ + RTUNI_ALPHA, /* U+000756: ARABIC LETTER BEH WITH SMALL V*/ + RTUNI_ALPHA, /* U+000757: ARABIC LETTER HAH WITH TWO DOTS ABOVE*/ + RTUNI_ALPHA, /* U+000758: ARABIC LETTER HAH WITH THREE DOTS POINTING UPWARDS BELOW*/ + RTUNI_ALPHA, /* U+000759: ARABIC LETTER DAL WITH TWO DOTS VERTICALLY BELOW AND SMALL TAH*/ + RTUNI_ALPHA, /* U+00075a: ARABIC LETTER DAL WITH INVERTED SMALL V BELOW*/ + RTUNI_ALPHA, /* U+00075b: ARABIC LETTER REH WITH STROKE*/ + RTUNI_ALPHA, /* U+00075c: ARABIC LETTER SEEN WITH FOUR DOTS ABOVE*/ + RTUNI_ALPHA, /* U+00075d: ARABIC LETTER AIN WITH TWO DOTS ABOVE*/ + RTUNI_ALPHA, /* U+00075e: ARABIC LETTER AIN WITH THREE DOTS POINTING DOWNWARDS ABOVE*/ + RTUNI_ALPHA, /* U+00075f: ARABIC LETTER AIN WITH TWO DOTS VERTICALLY ABOVE*/ + RTUNI_ALPHA, /* U+000760: ARABIC LETTER FEH WITH TWO DOTS BELOW*/ + RTUNI_ALPHA, /* U+000761: ARABIC LETTER FEH WITH THREE DOTS POINTING UPWARDS BELOW*/ + RTUNI_ALPHA, /* U+000762: ARABIC LETTER KEHEH WITH DOT ABOVE*/ + RTUNI_ALPHA, /* U+000763: ARABIC LETTER KEHEH WITH THREE DOTS ABOVE*/ + RTUNI_ALPHA, /* U+000764: ARABIC LETTER KEHEH WITH THREE DOTS POINTING UPWARDS BELOW*/ + RTUNI_ALPHA, /* U+000765: ARABIC LETTER MEEM WITH DOT ABOVE*/ + RTUNI_ALPHA, /* U+000766: ARABIC LETTER MEEM WITH DOT BELOW*/ + RTUNI_ALPHA, /* U+000767: ARABIC LETTER NOON WITH TWO DOTS BELOW*/ + RTUNI_ALPHA, /* U+000768: ARABIC LETTER NOON WITH SMALL TAH*/ + RTUNI_ALPHA, /* U+000769: ARABIC LETTER NOON WITH SMALL V*/ + RTUNI_ALPHA, /* U+00076a: ARABIC LETTER LAM WITH BAR*/ + RTUNI_ALPHA, /* U+00076b: ARABIC LETTER REH WITH TWO DOTS VERTICALLY ABOVE*/ + RTUNI_ALPHA, /* U+00076c: ARABIC LETTER REH WITH HAMZA ABOVE*/ + RTUNI_ALPHA, /* U+00076d: ARABIC LETTER SEEN WITH TWO DOTS VERTICALLY ABOVE*/ + RTUNI_ALPHA, /* U+00076e: ARABIC LETTER HAH WITH SMALL ARABIC LETTER TAH BELOW*/ + RTUNI_ALPHA, /* U+00076f: ARABIC LETTER HAH WITH SMALL ARABIC LETTER TAH AND TWO DOTS*/ + RTUNI_ALPHA, /* U+000770: ARABIC LETTER SEEN WITH SMALL ARABIC LETTER TAH AND TWO DOTS*/ + RTUNI_ALPHA, /* U+000771: ARABIC LETTER REH WITH SMALL ARABIC LETTER TAH AND TWO DOTS*/ + RTUNI_ALPHA, /* U+000772: ARABIC LETTER HAH WITH SMALL ARABIC LETTER TAH ABOVE*/ + RTUNI_ALPHA, /* U+000773: ARABIC LETTER ALEF WITH EXTENDED ARABIC-INDIC DIGIT TWO ABOVE*/ + RTUNI_ALPHA, /* U+000774: ARABIC LETTER ALEF WITH EXTENDED ARABIC-INDIC DIGIT THREE ABOVE*/ + RTUNI_ALPHA, /* U+000775: ARABIC LETTER FARSI YEH WITH EXTENDED ARABIC-INDIC DIGIT TWO ABOVE*/ + RTUNI_ALPHA, /* U+000776: ARABIC LETTER FARSI YEH WITH EXTENDED ARABIC-INDIC DIGIT THREE ABOVE*/ + RTUNI_ALPHA, /* U+000777: ARABIC LETTER FARSI YEH WITH EXTENDED ARABIC-INDIC DIGIT FOUR BELOW*/ + RTUNI_ALPHA, /* U+000778: ARABIC LETTER WAW WITH EXTENDED ARABIC-INDIC DIGIT TWO ABOVE*/ + RTUNI_ALPHA, /* U+000779: ARABIC LETTER WAW WITH EXTENDED ARABIC-INDIC DIGIT THREE ABOVE*/ + RTUNI_ALPHA, /* U+00077a: ARABIC LETTER YEH BARREE WITH EXTENDED ARABIC-INDIC DIGIT TWO ABOVE*/ + RTUNI_ALPHA, /* U+00077b: ARABIC LETTER YEH BARREE WITH EXTENDED ARABIC-INDIC DIGIT THREE ABOVE*/ + RTUNI_ALPHA, /* U+00077c: ARABIC LETTER HAH WITH EXTENDED ARABIC-INDIC DIGIT FOUR BELOW*/ + RTUNI_ALPHA, /* U+00077d: ARABIC LETTER SEEN WITH EXTENDED ARABIC-INDIC DIGIT FOUR ABOVE*/ + RTUNI_ALPHA, /* U+00077e: ARABIC LETTER SEEN WITH INVERTED V*/ + RTUNI_ALPHA, /* U+00077f: ARABIC LETTER KAF WITH TWO DOTS ABOVE*/ + RTUNI_ALPHA, /* U+000780: THAANA LETTER HAA*/ + RTUNI_ALPHA, /* U+000781: THAANA LETTER SHAVIYANI*/ + RTUNI_ALPHA, /* U+000782: THAANA LETTER NOONU*/ + RTUNI_ALPHA, /* U+000783: THAANA LETTER RAA*/ + RTUNI_ALPHA, /* U+000784: THAANA LETTER BAA*/ + RTUNI_ALPHA, /* U+000785: THAANA LETTER LHAVIYANI*/ + RTUNI_ALPHA, /* U+000786: THAANA LETTER KAAFU*/ + RTUNI_ALPHA, /* U+000787: THAANA LETTER ALIFU*/ + RTUNI_ALPHA, /* U+000788: THAANA LETTER VAAVU*/ + RTUNI_ALPHA, /* U+000789: THAANA LETTER MEEMU*/ + RTUNI_ALPHA, /* U+00078a: THAANA LETTER FAAFU*/ + RTUNI_ALPHA, /* U+00078b: THAANA LETTER DHAALU*/ + RTUNI_ALPHA, /* U+00078c: THAANA LETTER THAA*/ + RTUNI_ALPHA, /* U+00078d: THAANA LETTER LAAMU*/ + RTUNI_ALPHA, /* U+00078e: THAANA LETTER GAAFU*/ + RTUNI_ALPHA, /* U+00078f: THAANA LETTER GNAVIYANI*/ + RTUNI_ALPHA, /* U+000790: THAANA LETTER SEENU*/ + RTUNI_ALPHA, /* U+000791: THAANA LETTER DAVIYANI*/ + RTUNI_ALPHA, /* U+000792: THAANA LETTER ZAVIYANI*/ + RTUNI_ALPHA, /* U+000793: THAANA LETTER TAVIYANI*/ + RTUNI_ALPHA, /* U+000794: THAANA LETTER YAA*/ + RTUNI_ALPHA, /* U+000795: THAANA LETTER PAVIYANI*/ + RTUNI_ALPHA, /* U+000796: THAANA LETTER JAVIYANI*/ + RTUNI_ALPHA, /* U+000797: THAANA LETTER CHAVIYANI*/ + RTUNI_ALPHA, /* U+000798: THAANA LETTER TTAA*/ + RTUNI_ALPHA, /* U+000799: THAANA LETTER HHAA*/ + RTUNI_ALPHA, /* U+00079a: THAANA LETTER KHAA*/ + RTUNI_ALPHA, /* U+00079b: THAANA LETTER THAALU*/ + RTUNI_ALPHA, /* U+00079c: THAANA LETTER ZAA*/ + RTUNI_ALPHA, /* U+00079d: THAANA LETTER SHEENU*/ + RTUNI_ALPHA, /* U+00079e: THAANA LETTER SAADHU*/ + RTUNI_ALPHA, /* U+00079f: THAANA LETTER DAADHU*/ + RTUNI_ALPHA, /* U+0007a0: THAANA LETTER TO*/ + RTUNI_ALPHA, /* U+0007a1: THAANA LETTER ZO*/ + RTUNI_ALPHA, /* U+0007a2: THAANA LETTER AINU*/ + RTUNI_ALPHA, /* U+0007a3: THAANA LETTER GHAINU*/ + RTUNI_ALPHA, /* U+0007a4: THAANA LETTER QAAFU*/ + RTUNI_ALPHA, /* U+0007a5: THAANA LETTER WAAVU*/ + RTUNI_ALPHA, /* U+0007a6: THAANA ABAFILI*/ + RTUNI_ALPHA, /* U+0007a7: THAANA AABAAFILI*/ + RTUNI_ALPHA, /* U+0007a8: THAANA IBIFILI*/ + RTUNI_ALPHA, /* U+0007a9: THAANA EEBEEFILI*/ + RTUNI_ALPHA, /* U+0007aa: THAANA UBUFILI*/ + RTUNI_ALPHA, /* U+0007ab: THAANA OOBOOFILI*/ + RTUNI_ALPHA, /* U+0007ac: THAANA EBEFILI*/ + RTUNI_ALPHA, /* U+0007ad: THAANA EYBEYFILI*/ + RTUNI_ALPHA, /* U+0007ae: THAANA OBOFILI*/ + RTUNI_ALPHA, /* U+0007af: THAANA OABOAFILI*/ + RTUNI_ALPHA, /* U+0007b0: THAANA SUKUN*/ + RTUNI_ALPHA, /* U+0007b1: THAANA LETTER NAA*/ + 0, /* U+0007b2: */ + 0, /* U+0007b3: */ + 0, /* U+0007b4: */ + 0, /* U+0007b5: */ + 0, /* U+0007b6: */ + 0, /* U+0007b7: */ + 0, /* U+0007b8: */ + 0, /* U+0007b9: */ + 0, /* U+0007ba: */ + 0, /* U+0007bb: */ + 0, /* U+0007bc: */ + 0, /* U+0007bd: */ + 0, /* U+0007be: */ + 0, /* U+0007bf: */ + RTUNI_DDIGIT, /* U+0007c0: NKO DIGIT ZERO*/ + RTUNI_DDIGIT, /* U+0007c1: NKO DIGIT ONE*/ + RTUNI_DDIGIT, /* U+0007c2: NKO DIGIT TWO*/ + RTUNI_DDIGIT, /* U+0007c3: NKO DIGIT THREE*/ + RTUNI_DDIGIT, /* U+0007c4: NKO DIGIT FOUR*/ + RTUNI_DDIGIT, /* U+0007c5: NKO DIGIT FIVE*/ + RTUNI_DDIGIT, /* U+0007c6: NKO DIGIT SIX*/ + RTUNI_DDIGIT, /* U+0007c7: NKO DIGIT SEVEN*/ + RTUNI_DDIGIT, /* U+0007c8: NKO DIGIT EIGHT*/ + RTUNI_DDIGIT, /* U+0007c9: NKO DIGIT NINE*/ + RTUNI_ALPHA, /* U+0007ca: NKO LETTER A*/ + RTUNI_ALPHA, /* U+0007cb: NKO LETTER EE*/ + RTUNI_ALPHA, /* U+0007cc: NKO LETTER I*/ + RTUNI_ALPHA, /* U+0007cd: NKO LETTER E*/ + RTUNI_ALPHA, /* U+0007ce: NKO LETTER U*/ + RTUNI_ALPHA, /* U+0007cf: NKO LETTER OO*/ + RTUNI_ALPHA, /* U+0007d0: NKO LETTER O*/ + RTUNI_ALPHA, /* U+0007d1: NKO LETTER DAGBASINNA*/ + RTUNI_ALPHA, /* U+0007d2: NKO LETTER N*/ + RTUNI_ALPHA, /* U+0007d3: NKO LETTER BA*/ + RTUNI_ALPHA, /* U+0007d4: NKO LETTER PA*/ + RTUNI_ALPHA, /* U+0007d5: NKO LETTER TA*/ + RTUNI_ALPHA, /* U+0007d6: NKO LETTER JA*/ + RTUNI_ALPHA, /* U+0007d7: NKO LETTER CHA*/ + RTUNI_ALPHA, /* U+0007d8: NKO LETTER DA*/ + RTUNI_ALPHA, /* U+0007d9: NKO LETTER RA*/ + RTUNI_ALPHA, /* U+0007da: NKO LETTER RRA*/ + RTUNI_ALPHA, /* U+0007db: NKO LETTER SA*/ + RTUNI_ALPHA, /* U+0007dc: NKO LETTER GBA*/ + RTUNI_ALPHA, /* U+0007dd: NKO LETTER FA*/ + RTUNI_ALPHA, /* U+0007de: NKO LETTER KA*/ + RTUNI_ALPHA, /* U+0007df: NKO LETTER LA*/ + RTUNI_ALPHA, /* U+0007e0: NKO LETTER NA WOLOSO*/ + RTUNI_ALPHA, /* U+0007e1: NKO LETTER MA*/ + RTUNI_ALPHA, /* U+0007e2: NKO LETTER NYA*/ + RTUNI_ALPHA, /* U+0007e3: NKO LETTER NA*/ + RTUNI_ALPHA, /* U+0007e4: NKO LETTER HA*/ + RTUNI_ALPHA, /* U+0007e5: NKO LETTER WA*/ + RTUNI_ALPHA, /* U+0007e6: NKO LETTER YA*/ + RTUNI_ALPHA, /* U+0007e7: NKO LETTER NYA WOLOSO*/ + RTUNI_ALPHA, /* U+0007e8: NKO LETTER JONA JA*/ + RTUNI_ALPHA, /* U+0007e9: NKO LETTER JONA CHA*/ + RTUNI_ALPHA, /* U+0007ea: NKO LETTER JONA RA*/ + 0, /* U+0007eb: NKO COMBINING SHORT HIGH TONE*/ + 0, /* U+0007ec: NKO COMBINING SHORT LOW TONE*/ + 0, /* U+0007ed: NKO COMBINING SHORT RISING TONE*/ + 0, /* U+0007ee: NKO COMBINING LONG DESCENDING TONE*/ + 0, /* U+0007ef: NKO COMBINING LONG HIGH TONE*/ + 0, /* U+0007f0: NKO COMBINING LONG LOW TONE*/ + 0, /* U+0007f1: NKO COMBINING LONG RISING TONE*/ + 0, /* U+0007f2: NKO COMBINING NASALIZATION MARK*/ + 0, /* U+0007f3: NKO COMBINING DOUBLE DOT ABOVE*/ + RTUNI_ALPHA, /* U+0007f4: NKO HIGH TONE APOSTROPHE*/ + RTUNI_ALPHA, /* U+0007f5: NKO LOW TONE APOSTROPHE*/ + 0, /* U+0007f6: NKO SYMBOL OO DENNEN*/ + 0, /* U+0007f7: NKO SYMBOL GBAKURUNEN*/ + 0, /* U+0007f8: NKO COMMA*/ + 0, /* U+0007f9: NKO EXCLAMATION MARK*/ + RTUNI_ALPHA, /* U+0007fa: NKO LAJANYALAN*/ + 0, /* U+0007fb: */ + 0, /* U+0007fc: */ + 0, /* U+0007fd: */ + 0, /* U+0007fe: */ + 0, /* U+0007ff: */ + RTUNI_ALPHA, /* U+000800: SAMARITAN LETTER ALAF*/ + RTUNI_ALPHA, /* U+000801: SAMARITAN LETTER BIT*/ + RTUNI_ALPHA, /* U+000802: SAMARITAN LETTER GAMAN*/ + RTUNI_ALPHA, /* U+000803: SAMARITAN LETTER DALAT*/ + RTUNI_ALPHA, /* U+000804: SAMARITAN LETTER IY*/ + RTUNI_ALPHA, /* U+000805: SAMARITAN LETTER BAA*/ + RTUNI_ALPHA, /* U+000806: SAMARITAN LETTER ZEN*/ + RTUNI_ALPHA, /* U+000807: SAMARITAN LETTER IT*/ + RTUNI_ALPHA, /* U+000808: SAMARITAN LETTER TIT*/ + RTUNI_ALPHA, /* U+000809: SAMARITAN LETTER YUT*/ + RTUNI_ALPHA, /* U+00080a: SAMARITAN LETTER KAAF*/ + RTUNI_ALPHA, /* U+00080b: SAMARITAN LETTER LABAT*/ + RTUNI_ALPHA, /* U+00080c: SAMARITAN LETTER MIM*/ + RTUNI_ALPHA, /* U+00080d: SAMARITAN LETTER NUN*/ + RTUNI_ALPHA, /* U+00080e: SAMARITAN LETTER SINGAAT*/ + RTUNI_ALPHA, /* U+00080f: SAMARITAN LETTER IN*/ + RTUNI_ALPHA, /* U+000810: SAMARITAN LETTER FI*/ + RTUNI_ALPHA, /* U+000811: SAMARITAN LETTER TSAADIY*/ + RTUNI_ALPHA, /* U+000812: SAMARITAN LETTER QUF*/ + RTUNI_ALPHA, /* U+000813: SAMARITAN LETTER RISH*/ + RTUNI_ALPHA, /* U+000814: SAMARITAN LETTER SHAN*/ + RTUNI_ALPHA, /* U+000815: SAMARITAN LETTER TAAF*/ + RTUNI_ALPHA, /* U+000816: SAMARITAN MARK IN*/ + RTUNI_ALPHA, /* U+000817: SAMARITAN MARK IN-ALAF*/ + 0, /* U+000818: SAMARITAN MARK OCCLUSION*/ + 0, /* U+000819: SAMARITAN MARK DAGESH*/ + RTUNI_ALPHA, /* U+00081a: SAMARITAN MODIFIER LETTER EPENTHETIC YUT*/ + RTUNI_ALPHA, /* U+00081b: SAMARITAN MARK EPENTHETIC YUT*/ + RTUNI_ALPHA, /* U+00081c: SAMARITAN VOWEL SIGN LONG E*/ + RTUNI_ALPHA, /* U+00081d: SAMARITAN VOWEL SIGN E*/ + RTUNI_ALPHA, /* U+00081e: SAMARITAN VOWEL SIGN OVERLONG AA*/ + RTUNI_ALPHA, /* U+00081f: SAMARITAN VOWEL SIGN LONG AA*/ + RTUNI_ALPHA, /* U+000820: SAMARITAN VOWEL SIGN AA*/ + RTUNI_ALPHA, /* U+000821: SAMARITAN VOWEL SIGN OVERLONG A*/ + RTUNI_ALPHA, /* U+000822: SAMARITAN VOWEL SIGN LONG A*/ + RTUNI_ALPHA, /* U+000823: SAMARITAN VOWEL SIGN A*/ + RTUNI_ALPHA, /* U+000824: SAMARITAN MODIFIER LETTER SHORT A*/ + RTUNI_ALPHA, /* U+000825: SAMARITAN VOWEL SIGN SHORT A*/ + RTUNI_ALPHA, /* U+000826: SAMARITAN VOWEL SIGN LONG U*/ + RTUNI_ALPHA, /* U+000827: SAMARITAN VOWEL SIGN U*/ + RTUNI_ALPHA, /* U+000828: SAMARITAN MODIFIER LETTER I*/ + RTUNI_ALPHA, /* U+000829: SAMARITAN VOWEL SIGN LONG I*/ + RTUNI_ALPHA, /* U+00082a: SAMARITAN VOWEL SIGN I*/ + RTUNI_ALPHA, /* U+00082b: SAMARITAN VOWEL SIGN O*/ + RTUNI_ALPHA, /* U+00082c: SAMARITAN VOWEL SIGN SUKUN*/ + 0, /* U+00082d: SAMARITAN MARK NEQUDAA*/ + 0, /* U+00082e: */ + 0, /* U+00082f: */ + 0, /* U+000830: SAMARITAN PUNCTUATION NEQUDAA*/ + 0, /* U+000831: SAMARITAN PUNCTUATION AFSAAQ*/ + 0, /* U+000832: SAMARITAN PUNCTUATION ANGED*/ + 0, /* U+000833: SAMARITAN PUNCTUATION BAU*/ + 0, /* U+000834: SAMARITAN PUNCTUATION ATMAAU*/ + 0, /* U+000835: SAMARITAN PUNCTUATION SHIYYAALAA*/ + 0, /* U+000836: SAMARITAN ABBREVIATION MARK*/ + 0, /* U+000837: SAMARITAN PUNCTUATION MELODIC QITSA*/ + 0, /* U+000838: SAMARITAN PUNCTUATION ZIQAA*/ + 0, /* U+000839: SAMARITAN PUNCTUATION QITSA*/ + 0, /* U+00083a: SAMARITAN PUNCTUATION ZAEF*/ + 0, /* U+00083b: SAMARITAN PUNCTUATION TURU*/ + 0, /* U+00083c: SAMARITAN PUNCTUATION ARKAANU*/ + 0, /* U+00083d: SAMARITAN PUNCTUATION SOF MASHFAAT*/ + 0, /* U+00083e: SAMARITAN PUNCTUATION ANNAAU*/ + 0, /* U+00083f: */ + RTUNI_ALPHA, /* U+000840: MANDAIC LETTER HALQA*/ + RTUNI_ALPHA, /* U+000841: MANDAIC LETTER AB*/ + RTUNI_ALPHA, /* U+000842: MANDAIC LETTER AG*/ + RTUNI_ALPHA, /* U+000843: MANDAIC LETTER AD*/ + RTUNI_ALPHA, /* U+000844: MANDAIC LETTER AH*/ + RTUNI_ALPHA, /* U+000845: MANDAIC LETTER USHENNA*/ + RTUNI_ALPHA, /* U+000846: MANDAIC LETTER AZ*/ + RTUNI_ALPHA, /* U+000847: MANDAIC LETTER IT*/ + RTUNI_ALPHA, /* U+000848: MANDAIC LETTER ATT*/ + RTUNI_ALPHA, /* U+000849: MANDAIC LETTER AKSA*/ + RTUNI_ALPHA, /* U+00084a: MANDAIC LETTER AK*/ + RTUNI_ALPHA, /* U+00084b: MANDAIC LETTER AL*/ + RTUNI_ALPHA, /* U+00084c: MANDAIC LETTER AM*/ + RTUNI_ALPHA, /* U+00084d: MANDAIC LETTER AN*/ + RTUNI_ALPHA, /* U+00084e: MANDAIC LETTER AS*/ + RTUNI_ALPHA, /* U+00084f: MANDAIC LETTER IN*/ + RTUNI_ALPHA, /* U+000850: MANDAIC LETTER AP*/ + RTUNI_ALPHA, /* U+000851: MANDAIC LETTER ASZ*/ + RTUNI_ALPHA, /* U+000852: MANDAIC LETTER AQ*/ + RTUNI_ALPHA, /* U+000853: MANDAIC LETTER AR*/ + RTUNI_ALPHA, /* U+000854: MANDAIC LETTER ASH*/ + RTUNI_ALPHA, /* U+000855: MANDAIC LETTER AT*/ + RTUNI_ALPHA, /* U+000856: MANDAIC LETTER DUSHENNA*/ + RTUNI_ALPHA, /* U+000857: MANDAIC LETTER KAD*/ + RTUNI_ALPHA, /* U+000858: MANDAIC LETTER AIN*/ + 0, /* U+000859: MANDAIC AFFRICATION MARK*/ + 0, /* U+00085a: MANDAIC VOCALIZATION MARK*/ + 0, /* U+00085b: MANDAIC GEMINATION MARK*/ + 0, /* U+00085c: */ + 0, /* U+00085d: */ + 0, /* U+00085e: MANDAIC PUNCTUATION*/ + 0, /* U+00085f: */ + 0, /* U+000860: */ + 0, /* U+000861: */ + 0, /* U+000862: */ + 0, /* U+000863: */ + 0, /* U+000864: */ + 0, /* U+000865: */ + 0, /* U+000866: */ + 0, /* U+000867: */ + 0, /* U+000868: */ + 0, /* U+000869: */ + 0, /* U+00086a: */ + 0, /* U+00086b: */ + 0, /* U+00086c: */ + 0, /* U+00086d: */ + 0, /* U+00086e: */ + 0, /* U+00086f: */ + 0, /* U+000870: */ + 0, /* U+000871: */ + 0, /* U+000872: */ + 0, /* U+000873: */ + 0, /* U+000874: */ + 0, /* U+000875: */ + 0, /* U+000876: */ + 0, /* U+000877: */ + 0, /* U+000878: */ + 0, /* U+000879: */ + 0, /* U+00087a: */ + 0, /* U+00087b: */ + 0, /* U+00087c: */ + 0, /* U+00087d: */ + 0, /* U+00087e: */ + 0, /* U+00087f: */ + 0, /* U+000880: */ + 0, /* U+000881: */ + 0, /* U+000882: */ + 0, /* U+000883: */ + 0, /* U+000884: */ + 0, /* U+000885: */ + 0, /* U+000886: */ + 0, /* U+000887: */ + 0, /* U+000888: */ + 0, /* U+000889: */ + 0, /* U+00088a: */ + 0, /* U+00088b: */ + 0, /* U+00088c: */ + 0, /* U+00088d: */ + 0, /* U+00088e: */ + 0, /* U+00088f: */ + 0, /* U+000890: */ + 0, /* U+000891: */ + 0, /* U+000892: */ + 0, /* U+000893: */ + 0, /* U+000894: */ + 0, /* U+000895: */ + 0, /* U+000896: */ + 0, /* U+000897: */ + 0, /* U+000898: */ + 0, /* U+000899: */ + 0, /* U+00089a: */ + 0, /* U+00089b: */ + 0, /* U+00089c: */ + 0, /* U+00089d: */ + 0, /* U+00089e: */ + 0, /* U+00089f: */ + RTUNI_ALPHA, /* U+0008a0: ARABIC LETTER BEH WITH SMALL V BELOW*/ + 0, /* U+0008a1: */ + RTUNI_ALPHA, /* U+0008a2: ARABIC LETTER JEEM WITH TWO DOTS ABOVE*/ + RTUNI_ALPHA, /* U+0008a3: ARABIC LETTER TAH WITH TWO DOTS ABOVE*/ + RTUNI_ALPHA, /* U+0008a4: ARABIC LETTER FEH WITH DOT BELOW AND THREE DOTS ABOVE*/ + RTUNI_ALPHA, /* U+0008a5: ARABIC LETTER QAF WITH DOT BELOW*/ + RTUNI_ALPHA, /* U+0008a6: ARABIC LETTER LAM WITH DOUBLE BAR*/ + RTUNI_ALPHA, /* U+0008a7: ARABIC LETTER MEEM WITH THREE DOTS ABOVE*/ + RTUNI_ALPHA, /* U+0008a8: ARABIC LETTER YEH WITH TWO DOTS BELOW AND HAMZA ABOVE*/ + RTUNI_ALPHA, /* U+0008a9: ARABIC LETTER YEH WITH TWO DOTS BELOW AND DOT ABOVE*/ + RTUNI_ALPHA, /* U+0008aa: ARABIC LETTER REH WITH LOOP*/ + RTUNI_ALPHA, /* U+0008ab: ARABIC LETTER WAW WITH DOT WITHIN*/ + RTUNI_ALPHA, /* U+0008ac: ARABIC LETTER ROHINGYA YEH*/ + 0, /* U+0008ad: */ + 0, /* U+0008ae: */ + 0, /* U+0008af: */ + 0, /* U+0008b0: */ + 0, /* U+0008b1: */ + 0, /* U+0008b2: */ + 0, /* U+0008b3: */ + 0, /* U+0008b4: */ + 0, /* U+0008b5: */ + 0, /* U+0008b6: */ + 0, /* U+0008b7: */ + 0, /* U+0008b8: */ + 0, /* U+0008b9: */ + 0, /* U+0008ba: */ + 0, /* U+0008bb: */ + 0, /* U+0008bc: */ + 0, /* U+0008bd: */ + 0, /* U+0008be: */ + 0, /* U+0008bf: */ + 0, /* U+0008c0: */ + 0, /* U+0008c1: */ + 0, /* U+0008c2: */ + 0, /* U+0008c3: */ + 0, /* U+0008c4: */ + 0, /* U+0008c5: */ + 0, /* U+0008c6: */ + 0, /* U+0008c7: */ + 0, /* U+0008c8: */ + 0, /* U+0008c9: */ + 0, /* U+0008ca: */ + 0, /* U+0008cb: */ + 0, /* U+0008cc: */ + 0, /* U+0008cd: */ + 0, /* U+0008ce: */ + 0, /* U+0008cf: */ + 0, /* U+0008d0: */ + 0, /* U+0008d1: */ + 0, /* U+0008d2: */ + 0, /* U+0008d3: */ + 0, /* U+0008d4: */ + 0, /* U+0008d5: */ + 0, /* U+0008d6: */ + 0, /* U+0008d7: */ + 0, /* U+0008d8: */ + 0, /* U+0008d9: */ + 0, /* U+0008da: */ + 0, /* U+0008db: */ + 0, /* U+0008dc: */ + 0, /* U+0008dd: */ + 0, /* U+0008de: */ + 0, /* U+0008df: */ + 0, /* U+0008e0: */ + 0, /* U+0008e1: */ + 0, /* U+0008e2: */ + 0, /* U+0008e3: */ + RTUNI_ALPHA, /* U+0008e4: ARABIC CURLY FATHA*/ + RTUNI_ALPHA, /* U+0008e5: ARABIC CURLY DAMMA*/ + RTUNI_ALPHA, /* U+0008e6: ARABIC CURLY KASRA*/ + RTUNI_ALPHA, /* U+0008e7: ARABIC CURLY FATHATAN*/ + RTUNI_ALPHA, /* U+0008e8: ARABIC CURLY DAMMATAN*/ + RTUNI_ALPHA, /* U+0008e9: ARABIC CURLY KASRATAN*/ + 0, /* U+0008ea: ARABIC TONE ONE DOT ABOVE*/ + 0, /* U+0008eb: ARABIC TONE TWO DOTS ABOVE*/ + 0, /* U+0008ec: ARABIC TONE LOOP ABOVE*/ + 0, /* U+0008ed: ARABIC TONE ONE DOT BELOW*/ + 0, /* U+0008ee: ARABIC TONE TWO DOTS BELOW*/ + 0, /* U+0008ef: ARABIC TONE LOOP BELOW*/ + RTUNI_ALPHA, /* U+0008f0: ARABIC OPEN FATHATAN*/ + RTUNI_ALPHA, /* U+0008f1: ARABIC OPEN DAMMATAN*/ + RTUNI_ALPHA, /* U+0008f2: ARABIC OPEN KASRATAN*/ + RTUNI_ALPHA, /* U+0008f3: ARABIC SMALL HIGH WAW*/ + RTUNI_ALPHA, /* U+0008f4: ARABIC FATHA WITH RING*/ + RTUNI_ALPHA, /* U+0008f5: ARABIC FATHA WITH DOT ABOVE*/ + RTUNI_ALPHA, /* U+0008f6: ARABIC KASRA WITH DOT BELOW*/ + RTUNI_ALPHA, /* U+0008f7: ARABIC LEFT ARROWHEAD ABOVE*/ + RTUNI_ALPHA, /* U+0008f8: ARABIC RIGHT ARROWHEAD ABOVE*/ + RTUNI_ALPHA, /* U+0008f9: ARABIC LEFT ARROWHEAD BELOW*/ + RTUNI_ALPHA, /* U+0008fa: ARABIC RIGHT ARROWHEAD BELOW*/ + RTUNI_ALPHA, /* U+0008fb: ARABIC DOUBLE RIGHT ARROWHEAD ABOVE*/ + RTUNI_ALPHA, /* U+0008fc: ARABIC DOUBLE RIGHT ARROWHEAD ABOVE WITH DOT*/ + RTUNI_ALPHA, /* U+0008fd: ARABIC RIGHT ARROWHEAD ABOVE WITH DOT*/ + RTUNI_ALPHA, /* U+0008fe: ARABIC DAMMA WITH DOT*/ + 0, /* U+0008ff: */ + RTUNI_ALPHA, /* U+000900: DEVANAGARI SIGN INVERTED CANDRABINDU*/ + RTUNI_ALPHA, /* U+000901: DEVANAGARI SIGN CANDRABINDU*/ + RTUNI_ALPHA, /* U+000902: DEVANAGARI SIGN ANUSVARA*/ + RTUNI_ALPHA, /* U+000903: DEVANAGARI SIGN VISARGA*/ + RTUNI_ALPHA, /* U+000904: DEVANAGARI LETTER SHORT A*/ + RTUNI_ALPHA, /* U+000905: DEVANAGARI LETTER A*/ + RTUNI_ALPHA, /* U+000906: DEVANAGARI LETTER AA*/ + RTUNI_ALPHA, /* U+000907: DEVANAGARI LETTER I*/ + RTUNI_ALPHA, /* U+000908: DEVANAGARI LETTER II*/ + RTUNI_ALPHA, /* U+000909: DEVANAGARI LETTER U*/ + RTUNI_ALPHA, /* U+00090a: DEVANAGARI LETTER UU*/ + RTUNI_ALPHA, /* U+00090b: DEVANAGARI LETTER VOCALIC R*/ + RTUNI_ALPHA, /* U+00090c: DEVANAGARI LETTER VOCALIC L*/ + RTUNI_ALPHA, /* U+00090d: DEVANAGARI LETTER CANDRA E*/ + RTUNI_ALPHA, /* U+00090e: DEVANAGARI LETTER SHORT E*/ + RTUNI_ALPHA, /* U+00090f: DEVANAGARI LETTER E*/ + RTUNI_ALPHA, /* U+000910: DEVANAGARI LETTER AI*/ + RTUNI_ALPHA, /* U+000911: DEVANAGARI LETTER CANDRA O*/ + RTUNI_ALPHA, /* U+000912: DEVANAGARI LETTER SHORT O*/ + RTUNI_ALPHA, /* U+000913: DEVANAGARI LETTER O*/ + RTUNI_ALPHA, /* U+000914: DEVANAGARI LETTER AU*/ + RTUNI_ALPHA, /* U+000915: DEVANAGARI LETTER KA*/ + RTUNI_ALPHA, /* U+000916: DEVANAGARI LETTER KHA*/ + RTUNI_ALPHA, /* U+000917: DEVANAGARI LETTER GA*/ + RTUNI_ALPHA, /* U+000918: DEVANAGARI LETTER GHA*/ + RTUNI_ALPHA, /* U+000919: DEVANAGARI LETTER NGA*/ + RTUNI_ALPHA, /* U+00091a: DEVANAGARI LETTER CA*/ + RTUNI_ALPHA, /* U+00091b: DEVANAGARI LETTER CHA*/ + RTUNI_ALPHA, /* U+00091c: DEVANAGARI LETTER JA*/ + RTUNI_ALPHA, /* U+00091d: DEVANAGARI LETTER JHA*/ + RTUNI_ALPHA, /* U+00091e: DEVANAGARI LETTER NYA*/ + RTUNI_ALPHA, /* U+00091f: DEVANAGARI LETTER TTA*/ + RTUNI_ALPHA, /* U+000920: DEVANAGARI LETTER TTHA*/ + RTUNI_ALPHA, /* U+000921: DEVANAGARI LETTER DDA*/ + RTUNI_ALPHA, /* U+000922: DEVANAGARI LETTER DDHA*/ + RTUNI_ALPHA, /* U+000923: DEVANAGARI LETTER NNA*/ + RTUNI_ALPHA, /* U+000924: DEVANAGARI LETTER TA*/ + RTUNI_ALPHA, /* U+000925: DEVANAGARI LETTER THA*/ + RTUNI_ALPHA, /* U+000926: DEVANAGARI LETTER DA*/ + RTUNI_ALPHA, /* U+000927: DEVANAGARI LETTER DHA*/ + RTUNI_ALPHA, /* U+000928: DEVANAGARI LETTER NA*/ + RTUNI_ALPHA, /* U+000929: DEVANAGARI LETTER NNNA*/ + RTUNI_ALPHA, /* U+00092a: DEVANAGARI LETTER PA*/ + RTUNI_ALPHA, /* U+00092b: DEVANAGARI LETTER PHA*/ + RTUNI_ALPHA, /* U+00092c: DEVANAGARI LETTER BA*/ + RTUNI_ALPHA, /* U+00092d: DEVANAGARI LETTER BHA*/ + RTUNI_ALPHA, /* U+00092e: DEVANAGARI LETTER MA*/ + RTUNI_ALPHA, /* U+00092f: DEVANAGARI LETTER YA*/ + RTUNI_ALPHA, /* U+000930: DEVANAGARI LETTER RA*/ + RTUNI_ALPHA, /* U+000931: DEVANAGARI LETTER RRA*/ + RTUNI_ALPHA, /* U+000932: DEVANAGARI LETTER LA*/ + RTUNI_ALPHA, /* U+000933: DEVANAGARI LETTER LLA*/ + RTUNI_ALPHA, /* U+000934: DEVANAGARI LETTER LLLA*/ + RTUNI_ALPHA, /* U+000935: DEVANAGARI LETTER VA*/ + RTUNI_ALPHA, /* U+000936: DEVANAGARI LETTER SHA*/ + RTUNI_ALPHA, /* U+000937: DEVANAGARI LETTER SSA*/ + RTUNI_ALPHA, /* U+000938: DEVANAGARI LETTER SA*/ + RTUNI_ALPHA, /* U+000939: DEVANAGARI LETTER HA*/ + RTUNI_ALPHA, /* U+00093a: DEVANAGARI VOWEL SIGN OE*/ + RTUNI_ALPHA, /* U+00093b: DEVANAGARI VOWEL SIGN OOE*/ + 0, /* U+00093c: DEVANAGARI SIGN NUKTA*/ + RTUNI_ALPHA, /* U+00093d: DEVANAGARI SIGN AVAGRAHA*/ + RTUNI_ALPHA, /* U+00093e: DEVANAGARI VOWEL SIGN AA*/ + RTUNI_ALPHA, /* U+00093f: DEVANAGARI VOWEL SIGN I*/ + RTUNI_ALPHA, /* U+000940: DEVANAGARI VOWEL SIGN II*/ + RTUNI_ALPHA, /* U+000941: DEVANAGARI VOWEL SIGN U*/ + RTUNI_ALPHA, /* U+000942: DEVANAGARI VOWEL SIGN UU*/ + RTUNI_ALPHA, /* U+000943: DEVANAGARI VOWEL SIGN VOCALIC R*/ + RTUNI_ALPHA, /* U+000944: DEVANAGARI VOWEL SIGN VOCALIC RR*/ + RTUNI_ALPHA, /* U+000945: DEVANAGARI VOWEL SIGN CANDRA E*/ + RTUNI_ALPHA, /* U+000946: DEVANAGARI VOWEL SIGN SHORT E*/ + RTUNI_ALPHA, /* U+000947: DEVANAGARI VOWEL SIGN E*/ + RTUNI_ALPHA, /* U+000948: DEVANAGARI VOWEL SIGN AI*/ + RTUNI_ALPHA, /* U+000949: DEVANAGARI VOWEL SIGN CANDRA O*/ + RTUNI_ALPHA, /* U+00094a: DEVANAGARI VOWEL SIGN SHORT O*/ + RTUNI_ALPHA, /* U+00094b: DEVANAGARI VOWEL SIGN O*/ + RTUNI_ALPHA, /* U+00094c: DEVANAGARI VOWEL SIGN AU*/ + 0, /* U+00094d: DEVANAGARI SIGN VIRAMA*/ + RTUNI_ALPHA, /* U+00094e: DEVANAGARI VOWEL SIGN PRISHTHAMATRA E*/ + RTUNI_ALPHA, /* U+00094f: DEVANAGARI VOWEL SIGN AW*/ + RTUNI_ALPHA, /* U+000950: DEVANAGARI OM*/ + 0, /* U+000951: DEVANAGARI STRESS SIGN UDATTA*/ + 0, /* U+000952: DEVANAGARI STRESS SIGN ANUDATTA*/ + 0, /* U+000953: DEVANAGARI GRAVE ACCENT*/ + 0, /* U+000954: DEVANAGARI ACUTE ACCENT*/ + RTUNI_ALPHA, /* U+000955: DEVANAGARI VOWEL SIGN CANDRA LONG E*/ + RTUNI_ALPHA, /* U+000956: DEVANAGARI VOWEL SIGN UE*/ + RTUNI_ALPHA, /* U+000957: DEVANAGARI VOWEL SIGN UUE*/ + RTUNI_ALPHA, /* U+000958: DEVANAGARI LETTER QA*/ + RTUNI_ALPHA, /* U+000959: DEVANAGARI LETTER KHHA*/ + RTUNI_ALPHA, /* U+00095a: DEVANAGARI LETTER GHHA*/ + RTUNI_ALPHA, /* U+00095b: DEVANAGARI LETTER ZA*/ + RTUNI_ALPHA, /* U+00095c: DEVANAGARI LETTER DDDHA*/ + RTUNI_ALPHA, /* U+00095d: DEVANAGARI LETTER RHA*/ + RTUNI_ALPHA, /* U+00095e: DEVANAGARI LETTER FA*/ + RTUNI_ALPHA, /* U+00095f: DEVANAGARI LETTER YYA*/ + RTUNI_ALPHA, /* U+000960: DEVANAGARI LETTER VOCALIC RR*/ + RTUNI_ALPHA, /* U+000961: DEVANAGARI LETTER VOCALIC LL*/ + RTUNI_ALPHA, /* U+000962: DEVANAGARI VOWEL SIGN VOCALIC L*/ + RTUNI_ALPHA, /* U+000963: DEVANAGARI VOWEL SIGN VOCALIC LL*/ + 0, /* U+000964: DEVANAGARI DANDA*/ + 0, /* U+000965: DEVANAGARI DOUBLE DANDA*/ + RTUNI_DDIGIT, /* U+000966: DEVANAGARI DIGIT ZERO*/ + RTUNI_DDIGIT, /* U+000967: DEVANAGARI DIGIT ONE*/ + RTUNI_DDIGIT, /* U+000968: DEVANAGARI DIGIT TWO*/ + RTUNI_DDIGIT, /* U+000969: DEVANAGARI DIGIT THREE*/ + RTUNI_DDIGIT, /* U+00096a: DEVANAGARI DIGIT FOUR*/ + RTUNI_DDIGIT, /* U+00096b: DEVANAGARI DIGIT FIVE*/ + RTUNI_DDIGIT, /* U+00096c: DEVANAGARI DIGIT SIX*/ + RTUNI_DDIGIT, /* U+00096d: DEVANAGARI DIGIT SEVEN*/ + RTUNI_DDIGIT, /* U+00096e: DEVANAGARI DIGIT EIGHT*/ + RTUNI_DDIGIT, /* U+00096f: DEVANAGARI DIGIT NINE*/ + 0, /* U+000970: DEVANAGARI ABBREVIATION SIGN*/ + RTUNI_ALPHA, /* U+000971: DEVANAGARI SIGN HIGH SPACING DOT*/ + RTUNI_ALPHA, /* U+000972: DEVANAGARI LETTER CANDRA A*/ + RTUNI_ALPHA, /* U+000973: DEVANAGARI LETTER OE*/ + RTUNI_ALPHA, /* U+000974: DEVANAGARI LETTER OOE*/ + RTUNI_ALPHA, /* U+000975: DEVANAGARI LETTER AW*/ + RTUNI_ALPHA, /* U+000976: DEVANAGARI LETTER UE*/ + RTUNI_ALPHA, /* U+000977: DEVANAGARI LETTER UUE*/ + 0, /* U+000978: */ + RTUNI_ALPHA, /* U+000979: DEVANAGARI LETTER ZHA*/ + RTUNI_ALPHA, /* U+00097a: DEVANAGARI LETTER HEAVY YA*/ + RTUNI_ALPHA, /* U+00097b: DEVANAGARI LETTER GGA*/ + RTUNI_ALPHA, /* U+00097c: DEVANAGARI LETTER JJA*/ + RTUNI_ALPHA, /* U+00097d: DEVANAGARI LETTER GLOTTAL STOP*/ + RTUNI_ALPHA, /* U+00097e: DEVANAGARI LETTER DDDA*/ + RTUNI_ALPHA, /* U+00097f: DEVANAGARI LETTER BBA*/ + 0, /* U+000980: */ + RTUNI_ALPHA, /* U+000981: BENGALI SIGN CANDRABINDU*/ + RTUNI_ALPHA, /* U+000982: BENGALI SIGN ANUSVARA*/ + RTUNI_ALPHA, /* U+000983: BENGALI SIGN VISARGA*/ + 0, /* U+000984: */ + RTUNI_ALPHA, /* U+000985: BENGALI LETTER A*/ + RTUNI_ALPHA, /* U+000986: BENGALI LETTER AA*/ + RTUNI_ALPHA, /* U+000987: BENGALI LETTER I*/ + RTUNI_ALPHA, /* U+000988: BENGALI LETTER II*/ + RTUNI_ALPHA, /* U+000989: BENGALI LETTER U*/ + RTUNI_ALPHA, /* U+00098a: BENGALI LETTER UU*/ + RTUNI_ALPHA, /* U+00098b: BENGALI LETTER VOCALIC R*/ + RTUNI_ALPHA, /* U+00098c: BENGALI LETTER VOCALIC L*/ + 0, /* U+00098d: */ + 0, /* U+00098e: */ + RTUNI_ALPHA, /* U+00098f: BENGALI LETTER E*/ + RTUNI_ALPHA, /* U+000990: BENGALI LETTER AI*/ + 0, /* U+000991: */ + 0, /* U+000992: */ + RTUNI_ALPHA, /* U+000993: BENGALI LETTER O*/ + RTUNI_ALPHA, /* U+000994: BENGALI LETTER AU*/ + RTUNI_ALPHA, /* U+000995: BENGALI LETTER KA*/ + RTUNI_ALPHA, /* U+000996: BENGALI LETTER KHA*/ + RTUNI_ALPHA, /* U+000997: BENGALI LETTER GA*/ + RTUNI_ALPHA, /* U+000998: BENGALI LETTER GHA*/ + RTUNI_ALPHA, /* U+000999: BENGALI LETTER NGA*/ + RTUNI_ALPHA, /* U+00099a: BENGALI LETTER CA*/ + RTUNI_ALPHA, /* U+00099b: BENGALI LETTER CHA*/ + RTUNI_ALPHA, /* U+00099c: BENGALI LETTER JA*/ + RTUNI_ALPHA, /* U+00099d: BENGALI LETTER JHA*/ + RTUNI_ALPHA, /* U+00099e: BENGALI LETTER NYA*/ + RTUNI_ALPHA, /* U+00099f: BENGALI LETTER TTA*/ + RTUNI_ALPHA, /* U+0009a0: BENGALI LETTER TTHA*/ + RTUNI_ALPHA, /* U+0009a1: BENGALI LETTER DDA*/ + RTUNI_ALPHA, /* U+0009a2: BENGALI LETTER DDHA*/ + RTUNI_ALPHA, /* U+0009a3: BENGALI LETTER NNA*/ + RTUNI_ALPHA, /* U+0009a4: BENGALI LETTER TA*/ + RTUNI_ALPHA, /* U+0009a5: BENGALI LETTER THA*/ + RTUNI_ALPHA, /* U+0009a6: BENGALI LETTER DA*/ + RTUNI_ALPHA, /* U+0009a7: BENGALI LETTER DHA*/ + RTUNI_ALPHA, /* U+0009a8: BENGALI LETTER NA*/ + 0, /* U+0009a9: */ + RTUNI_ALPHA, /* U+0009aa: BENGALI LETTER PA*/ + RTUNI_ALPHA, /* U+0009ab: BENGALI LETTER PHA*/ + RTUNI_ALPHA, /* U+0009ac: BENGALI LETTER BA*/ + RTUNI_ALPHA, /* U+0009ad: BENGALI LETTER BHA*/ + RTUNI_ALPHA, /* U+0009ae: BENGALI LETTER MA*/ + RTUNI_ALPHA, /* U+0009af: BENGALI LETTER YA*/ + RTUNI_ALPHA, /* U+0009b0: BENGALI LETTER RA*/ + 0, /* U+0009b1: */ + RTUNI_ALPHA, /* U+0009b2: BENGALI LETTER LA*/ + 0, /* U+0009b3: */ + 0, /* U+0009b4: */ + 0, /* U+0009b5: */ + RTUNI_ALPHA, /* U+0009b6: BENGALI LETTER SHA*/ + RTUNI_ALPHA, /* U+0009b7: BENGALI LETTER SSA*/ + RTUNI_ALPHA, /* U+0009b8: BENGALI LETTER SA*/ + RTUNI_ALPHA, /* U+0009b9: BENGALI LETTER HA*/ + 0, /* U+0009ba: */ + 0, /* U+0009bb: */ + 0, /* U+0009bc: BENGALI SIGN NUKTA*/ + RTUNI_ALPHA, /* U+0009bd: BENGALI SIGN AVAGRAHA*/ + RTUNI_ALPHA, /* U+0009be: BENGALI VOWEL SIGN AA*/ + RTUNI_ALPHA, /* U+0009bf: BENGALI VOWEL SIGN I*/ + RTUNI_ALPHA, /* U+0009c0: BENGALI VOWEL SIGN II*/ + RTUNI_ALPHA, /* U+0009c1: BENGALI VOWEL SIGN U*/ + RTUNI_ALPHA, /* U+0009c2: BENGALI VOWEL SIGN UU*/ + RTUNI_ALPHA, /* U+0009c3: BENGALI VOWEL SIGN VOCALIC R*/ + RTUNI_ALPHA, /* U+0009c4: BENGALI VOWEL SIGN VOCALIC RR*/ + 0, /* U+0009c5: */ + 0, /* U+0009c6: */ + RTUNI_ALPHA, /* U+0009c7: BENGALI VOWEL SIGN E*/ + RTUNI_ALPHA, /* U+0009c8: BENGALI VOWEL SIGN AI*/ + 0, /* U+0009c9: */ + 0, /* U+0009ca: */ + RTUNI_ALPHA, /* U+0009cb: BENGALI VOWEL SIGN O*/ + RTUNI_ALPHA, /* U+0009cc: BENGALI VOWEL SIGN AU*/ + 0, /* U+0009cd: BENGALI SIGN VIRAMA*/ + RTUNI_ALPHA, /* U+0009ce: BENGALI LETTER KHANDA TA*/ + 0, /* U+0009cf: */ + 0, /* U+0009d0: */ + 0, /* U+0009d1: */ + 0, /* U+0009d2: */ + 0, /* U+0009d3: */ + 0, /* U+0009d4: */ + 0, /* U+0009d5: */ + 0, /* U+0009d6: */ + RTUNI_ALPHA, /* U+0009d7: BENGALI AU LENGTH MARK*/ + 0, /* U+0009d8: */ + 0, /* U+0009d9: */ + 0, /* U+0009da: */ + 0, /* U+0009db: */ + RTUNI_ALPHA, /* U+0009dc: BENGALI LETTER RRA*/ + RTUNI_ALPHA, /* U+0009dd: BENGALI LETTER RHA*/ + 0, /* U+0009de: */ + RTUNI_ALPHA, /* U+0009df: BENGALI LETTER YYA*/ + RTUNI_ALPHA, /* U+0009e0: BENGALI LETTER VOCALIC RR*/ + RTUNI_ALPHA, /* U+0009e1: BENGALI LETTER VOCALIC LL*/ + RTUNI_ALPHA, /* U+0009e2: BENGALI VOWEL SIGN VOCALIC L*/ + RTUNI_ALPHA, /* U+0009e3: BENGALI VOWEL SIGN VOCALIC LL*/ + 0, /* U+0009e4: */ + 0, /* U+0009e5: */ + RTUNI_DDIGIT, /* U+0009e6: BENGALI DIGIT ZERO*/ + RTUNI_DDIGIT, /* U+0009e7: BENGALI DIGIT ONE*/ + RTUNI_DDIGIT, /* U+0009e8: BENGALI DIGIT TWO*/ + RTUNI_DDIGIT, /* U+0009e9: BENGALI DIGIT THREE*/ + RTUNI_DDIGIT, /* U+0009ea: BENGALI DIGIT FOUR*/ + RTUNI_DDIGIT, /* U+0009eb: BENGALI DIGIT FIVE*/ + RTUNI_DDIGIT, /* U+0009ec: BENGALI DIGIT SIX*/ + RTUNI_DDIGIT, /* U+0009ed: BENGALI DIGIT SEVEN*/ + RTUNI_DDIGIT, /* U+0009ee: BENGALI DIGIT EIGHT*/ + RTUNI_DDIGIT, /* U+0009ef: BENGALI DIGIT NINE*/ + RTUNI_ALPHA, /* U+0009f0: BENGALI LETTER RA WITH MIDDLE DIAGONAL*/ + RTUNI_ALPHA, /* U+0009f1: BENGALI LETTER RA WITH LOWER DIAGONAL*/ + 0, /* U+0009f2: BENGALI RUPEE MARK*/ + 0, /* U+0009f3: BENGALI RUPEE SIGN*/ + 0, /* U+0009f4: BENGALI CURRENCY NUMERATOR ONE*/ + 0, /* U+0009f5: BENGALI CURRENCY NUMERATOR TWO*/ + 0, /* U+0009f6: BENGALI CURRENCY NUMERATOR THREE*/ + 0, /* U+0009f7: BENGALI CURRENCY NUMERATOR FOUR*/ + 0, /* U+0009f8: BENGALI CURRENCY NUMERATOR ONE LESS THAN THE DENOMINATOR*/ + 0, /* U+0009f9: BENGALI CURRENCY DENOMINATOR SIXTEEN*/ + 0, /* U+0009fa: BENGALI ISSHAR*/ + 0, /* U+0009fb: BENGALI GANDA MARK*/ + 0, /* U+0009fc: */ + 0, /* U+0009fd: */ + 0, /* U+0009fe: */ + 0, /* U+0009ff: */ + 0, /* U+000a00: */ + RTUNI_ALPHA, /* U+000a01: GURMUKHI SIGN ADAK BINDI*/ + RTUNI_ALPHA, /* U+000a02: GURMUKHI SIGN BINDI*/ + RTUNI_ALPHA, /* U+000a03: GURMUKHI SIGN VISARGA*/ + 0, /* U+000a04: */ + RTUNI_ALPHA, /* U+000a05: GURMUKHI LETTER A*/ + RTUNI_ALPHA, /* U+000a06: GURMUKHI LETTER AA*/ + RTUNI_ALPHA, /* U+000a07: GURMUKHI LETTER I*/ + RTUNI_ALPHA, /* U+000a08: GURMUKHI LETTER II*/ + RTUNI_ALPHA, /* U+000a09: GURMUKHI LETTER U*/ + RTUNI_ALPHA, /* U+000a0a: GURMUKHI LETTER UU*/ + 0, /* U+000a0b: */ + 0, /* U+000a0c: */ + 0, /* U+000a0d: */ + 0, /* U+000a0e: */ + RTUNI_ALPHA, /* U+000a0f: GURMUKHI LETTER EE*/ + RTUNI_ALPHA, /* U+000a10: GURMUKHI LETTER AI*/ + 0, /* U+000a11: */ + 0, /* U+000a12: */ + RTUNI_ALPHA, /* U+000a13: GURMUKHI LETTER OO*/ + RTUNI_ALPHA, /* U+000a14: GURMUKHI LETTER AU*/ + RTUNI_ALPHA, /* U+000a15: GURMUKHI LETTER KA*/ + RTUNI_ALPHA, /* U+000a16: GURMUKHI LETTER KHA*/ + RTUNI_ALPHA, /* U+000a17: GURMUKHI LETTER GA*/ + RTUNI_ALPHA, /* U+000a18: GURMUKHI LETTER GHA*/ + RTUNI_ALPHA, /* U+000a19: GURMUKHI LETTER NGA*/ + RTUNI_ALPHA, /* U+000a1a: GURMUKHI LETTER CA*/ + RTUNI_ALPHA, /* U+000a1b: GURMUKHI LETTER CHA*/ + RTUNI_ALPHA, /* U+000a1c: GURMUKHI LETTER JA*/ + RTUNI_ALPHA, /* U+000a1d: GURMUKHI LETTER JHA*/ + RTUNI_ALPHA, /* U+000a1e: GURMUKHI LETTER NYA*/ + RTUNI_ALPHA, /* U+000a1f: GURMUKHI LETTER TTA*/ + RTUNI_ALPHA, /* U+000a20: GURMUKHI LETTER TTHA*/ + RTUNI_ALPHA, /* U+000a21: GURMUKHI LETTER DDA*/ + RTUNI_ALPHA, /* U+000a22: GURMUKHI LETTER DDHA*/ + RTUNI_ALPHA, /* U+000a23: GURMUKHI LETTER NNA*/ + RTUNI_ALPHA, /* U+000a24: GURMUKHI LETTER TA*/ + RTUNI_ALPHA, /* U+000a25: GURMUKHI LETTER THA*/ + RTUNI_ALPHA, /* U+000a26: GURMUKHI LETTER DA*/ + RTUNI_ALPHA, /* U+000a27: GURMUKHI LETTER DHA*/ + RTUNI_ALPHA, /* U+000a28: GURMUKHI LETTER NA*/ + 0, /* U+000a29: */ + RTUNI_ALPHA, /* U+000a2a: GURMUKHI LETTER PA*/ + RTUNI_ALPHA, /* U+000a2b: GURMUKHI LETTER PHA*/ + RTUNI_ALPHA, /* U+000a2c: GURMUKHI LETTER BA*/ + RTUNI_ALPHA, /* U+000a2d: GURMUKHI LETTER BHA*/ + RTUNI_ALPHA, /* U+000a2e: GURMUKHI LETTER MA*/ + RTUNI_ALPHA, /* U+000a2f: GURMUKHI LETTER YA*/ + RTUNI_ALPHA, /* U+000a30: GURMUKHI LETTER RA*/ + 0, /* U+000a31: */ + RTUNI_ALPHA, /* U+000a32: GURMUKHI LETTER LA*/ + RTUNI_ALPHA, /* U+000a33: GURMUKHI LETTER LLA*/ + 0, /* U+000a34: */ + RTUNI_ALPHA, /* U+000a35: GURMUKHI LETTER VA*/ + RTUNI_ALPHA, /* U+000a36: GURMUKHI LETTER SHA*/ + 0, /* U+000a37: */ + RTUNI_ALPHA, /* U+000a38: GURMUKHI LETTER SA*/ + RTUNI_ALPHA, /* U+000a39: GURMUKHI LETTER HA*/ + 0, /* U+000a3a: */ + 0, /* U+000a3b: */ + 0, /* U+000a3c: GURMUKHI SIGN NUKTA*/ + 0, /* U+000a3d: */ + RTUNI_ALPHA, /* U+000a3e: GURMUKHI VOWEL SIGN AA*/ + RTUNI_ALPHA, /* U+000a3f: GURMUKHI VOWEL SIGN I*/ + RTUNI_ALPHA, /* U+000a40: GURMUKHI VOWEL SIGN II*/ + RTUNI_ALPHA, /* U+000a41: GURMUKHI VOWEL SIGN U*/ + RTUNI_ALPHA, /* U+000a42: GURMUKHI VOWEL SIGN UU*/ + 0, /* U+000a43: */ + 0, /* U+000a44: */ + 0, /* U+000a45: */ + 0, /* U+000a46: */ + RTUNI_ALPHA, /* U+000a47: GURMUKHI VOWEL SIGN EE*/ + RTUNI_ALPHA, /* U+000a48: GURMUKHI VOWEL SIGN AI*/ + 0, /* U+000a49: */ + 0, /* U+000a4a: */ + RTUNI_ALPHA, /* U+000a4b: GURMUKHI VOWEL SIGN OO*/ + RTUNI_ALPHA, /* U+000a4c: GURMUKHI VOWEL SIGN AU*/ + 0, /* U+000a4d: GURMUKHI SIGN VIRAMA*/ + 0, /* U+000a4e: */ + 0, /* U+000a4f: */ + 0, /* U+000a50: */ + RTUNI_ALPHA, /* U+000a51: GURMUKHI SIGN UDAAT*/ + 0, /* U+000a52: */ + 0, /* U+000a53: */ + 0, /* U+000a54: */ + 0, /* U+000a55: */ + 0, /* U+000a56: */ + 0, /* U+000a57: */ + 0, /* U+000a58: */ + RTUNI_ALPHA, /* U+000a59: GURMUKHI LETTER KHHA*/ + RTUNI_ALPHA, /* U+000a5a: GURMUKHI LETTER GHHA*/ + RTUNI_ALPHA, /* U+000a5b: GURMUKHI LETTER ZA*/ + RTUNI_ALPHA, /* U+000a5c: GURMUKHI LETTER RRA*/ + 0, /* U+000a5d: */ + RTUNI_ALPHA, /* U+000a5e: GURMUKHI LETTER FA*/ + 0, /* U+000a5f: */ + 0, /* U+000a60: */ + 0, /* U+000a61: */ + 0, /* U+000a62: */ + 0, /* U+000a63: */ + 0, /* U+000a64: */ + 0, /* U+000a65: */ + RTUNI_DDIGIT, /* U+000a66: GURMUKHI DIGIT ZERO*/ + RTUNI_DDIGIT, /* U+000a67: GURMUKHI DIGIT ONE*/ + RTUNI_DDIGIT, /* U+000a68: GURMUKHI DIGIT TWO*/ + RTUNI_DDIGIT, /* U+000a69: GURMUKHI DIGIT THREE*/ + RTUNI_DDIGIT, /* U+000a6a: GURMUKHI DIGIT FOUR*/ + RTUNI_DDIGIT, /* U+000a6b: GURMUKHI DIGIT FIVE*/ + RTUNI_DDIGIT, /* U+000a6c: GURMUKHI DIGIT SIX*/ + RTUNI_DDIGIT, /* U+000a6d: GURMUKHI DIGIT SEVEN*/ + RTUNI_DDIGIT, /* U+000a6e: GURMUKHI DIGIT EIGHT*/ + RTUNI_DDIGIT, /* U+000a6f: GURMUKHI DIGIT NINE*/ + RTUNI_ALPHA, /* U+000a70: GURMUKHI TIPPI*/ + RTUNI_ALPHA, /* U+000a71: GURMUKHI ADDAK*/ + RTUNI_ALPHA, /* U+000a72: GURMUKHI IRI*/ + RTUNI_ALPHA, /* U+000a73: GURMUKHI URA*/ + RTUNI_ALPHA, /* U+000a74: GURMUKHI EK ONKAR*/ + RTUNI_ALPHA, /* U+000a75: GURMUKHI SIGN YAKASH*/ + 0, /* U+000a76: */ + 0, /* U+000a77: */ + 0, /* U+000a78: */ + 0, /* U+000a79: */ + 0, /* U+000a7a: */ + 0, /* U+000a7b: */ + 0, /* U+000a7c: */ + 0, /* U+000a7d: */ + 0, /* U+000a7e: */ + 0, /* U+000a7f: */ + 0, /* U+000a80: */ + RTUNI_ALPHA, /* U+000a81: GUJARATI SIGN CANDRABINDU*/ + RTUNI_ALPHA, /* U+000a82: GUJARATI SIGN ANUSVARA*/ + RTUNI_ALPHA, /* U+000a83: GUJARATI SIGN VISARGA*/ + 0, /* U+000a84: */ + RTUNI_ALPHA, /* U+000a85: GUJARATI LETTER A*/ + RTUNI_ALPHA, /* U+000a86: GUJARATI LETTER AA*/ + RTUNI_ALPHA, /* U+000a87: GUJARATI LETTER I*/ + RTUNI_ALPHA, /* U+000a88: GUJARATI LETTER II*/ + RTUNI_ALPHA, /* U+000a89: GUJARATI LETTER U*/ + RTUNI_ALPHA, /* U+000a8a: GUJARATI LETTER UU*/ + RTUNI_ALPHA, /* U+000a8b: GUJARATI LETTER VOCALIC R*/ + RTUNI_ALPHA, /* U+000a8c: GUJARATI LETTER VOCALIC L*/ + RTUNI_ALPHA, /* U+000a8d: GUJARATI VOWEL CANDRA E*/ + 0, /* U+000a8e: */ + RTUNI_ALPHA, /* U+000a8f: GUJARATI LETTER E*/ + RTUNI_ALPHA, /* U+000a90: GUJARATI LETTER AI*/ + RTUNI_ALPHA, /* U+000a91: GUJARATI VOWEL CANDRA O*/ + 0, /* U+000a92: */ + RTUNI_ALPHA, /* U+000a93: GUJARATI LETTER O*/ + RTUNI_ALPHA, /* U+000a94: GUJARATI LETTER AU*/ + RTUNI_ALPHA, /* U+000a95: GUJARATI LETTER KA*/ + RTUNI_ALPHA, /* U+000a96: GUJARATI LETTER KHA*/ + RTUNI_ALPHA, /* U+000a97: GUJARATI LETTER GA*/ + RTUNI_ALPHA, /* U+000a98: GUJARATI LETTER GHA*/ + RTUNI_ALPHA, /* U+000a99: GUJARATI LETTER NGA*/ + RTUNI_ALPHA, /* U+000a9a: GUJARATI LETTER CA*/ + RTUNI_ALPHA, /* U+000a9b: GUJARATI LETTER CHA*/ + RTUNI_ALPHA, /* U+000a9c: GUJARATI LETTER JA*/ + RTUNI_ALPHA, /* U+000a9d: GUJARATI LETTER JHA*/ + RTUNI_ALPHA, /* U+000a9e: GUJARATI LETTER NYA*/ + RTUNI_ALPHA, /* U+000a9f: GUJARATI LETTER TTA*/ + RTUNI_ALPHA, /* U+000aa0: GUJARATI LETTER TTHA*/ + RTUNI_ALPHA, /* U+000aa1: GUJARATI LETTER DDA*/ + RTUNI_ALPHA, /* U+000aa2: GUJARATI LETTER DDHA*/ + RTUNI_ALPHA, /* U+000aa3: GUJARATI LETTER NNA*/ + RTUNI_ALPHA, /* U+000aa4: GUJARATI LETTER TA*/ + RTUNI_ALPHA, /* U+000aa5: GUJARATI LETTER THA*/ + RTUNI_ALPHA, /* U+000aa6: GUJARATI LETTER DA*/ + RTUNI_ALPHA, /* U+000aa7: GUJARATI LETTER DHA*/ + RTUNI_ALPHA, /* U+000aa8: GUJARATI LETTER NA*/ + 0, /* U+000aa9: */ + RTUNI_ALPHA, /* U+000aaa: GUJARATI LETTER PA*/ + RTUNI_ALPHA, /* U+000aab: GUJARATI LETTER PHA*/ + RTUNI_ALPHA, /* U+000aac: GUJARATI LETTER BA*/ + RTUNI_ALPHA, /* U+000aad: GUJARATI LETTER BHA*/ + RTUNI_ALPHA, /* U+000aae: GUJARATI LETTER MA*/ + RTUNI_ALPHA, /* U+000aaf: GUJARATI LETTER YA*/ + RTUNI_ALPHA, /* U+000ab0: GUJARATI LETTER RA*/ + 0, /* U+000ab1: */ + RTUNI_ALPHA, /* U+000ab2: GUJARATI LETTER LA*/ + RTUNI_ALPHA, /* U+000ab3: GUJARATI LETTER LLA*/ + 0, /* U+000ab4: */ + RTUNI_ALPHA, /* U+000ab5: GUJARATI LETTER VA*/ + RTUNI_ALPHA, /* U+000ab6: GUJARATI LETTER SHA*/ + RTUNI_ALPHA, /* U+000ab7: GUJARATI LETTER SSA*/ + RTUNI_ALPHA, /* U+000ab8: GUJARATI LETTER SA*/ + RTUNI_ALPHA, /* U+000ab9: GUJARATI LETTER HA*/ + 0, /* U+000aba: */ + 0, /* U+000abb: */ + 0, /* U+000abc: GUJARATI SIGN NUKTA*/ + RTUNI_ALPHA, /* U+000abd: GUJARATI SIGN AVAGRAHA*/ + RTUNI_ALPHA, /* U+000abe: GUJARATI VOWEL SIGN AA*/ + RTUNI_ALPHA, /* U+000abf: GUJARATI VOWEL SIGN I*/ + RTUNI_ALPHA, /* U+000ac0: GUJARATI VOWEL SIGN II*/ + RTUNI_ALPHA, /* U+000ac1: GUJARATI VOWEL SIGN U*/ + RTUNI_ALPHA, /* U+000ac2: GUJARATI VOWEL SIGN UU*/ + RTUNI_ALPHA, /* U+000ac3: GUJARATI VOWEL SIGN VOCALIC R*/ + RTUNI_ALPHA, /* U+000ac4: GUJARATI VOWEL SIGN VOCALIC RR*/ + RTUNI_ALPHA, /* U+000ac5: GUJARATI VOWEL SIGN CANDRA E*/ + 0, /* U+000ac6: */ + RTUNI_ALPHA, /* U+000ac7: GUJARATI VOWEL SIGN E*/ + RTUNI_ALPHA, /* U+000ac8: GUJARATI VOWEL SIGN AI*/ + RTUNI_ALPHA, /* U+000ac9: GUJARATI VOWEL SIGN CANDRA O*/ + 0, /* U+000aca: */ + RTUNI_ALPHA, /* U+000acb: GUJARATI VOWEL SIGN O*/ + RTUNI_ALPHA, /* U+000acc: GUJARATI VOWEL SIGN AU*/ + 0, /* U+000acd: GUJARATI SIGN VIRAMA*/ + 0, /* U+000ace: */ + 0, /* U+000acf: */ + RTUNI_ALPHA, /* U+000ad0: GUJARATI OM*/ + 0, /* U+000ad1: */ + 0, /* U+000ad2: */ + 0, /* U+000ad3: */ + 0, /* U+000ad4: */ + 0, /* U+000ad5: */ + 0, /* U+000ad6: */ + 0, /* U+000ad7: */ + 0, /* U+000ad8: */ + 0, /* U+000ad9: */ + 0, /* U+000ada: */ + 0, /* U+000adb: */ + 0, /* U+000adc: */ + 0, /* U+000add: */ + 0, /* U+000ade: */ + 0, /* U+000adf: */ + RTUNI_ALPHA, /* U+000ae0: GUJARATI LETTER VOCALIC RR*/ + RTUNI_ALPHA, /* U+000ae1: GUJARATI LETTER VOCALIC LL*/ + RTUNI_ALPHA, /* U+000ae2: GUJARATI VOWEL SIGN VOCALIC L*/ + RTUNI_ALPHA, /* U+000ae3: GUJARATI VOWEL SIGN VOCALIC LL*/ + 0, /* U+000ae4: */ + 0, /* U+000ae5: */ + RTUNI_DDIGIT, /* U+000ae6: GUJARATI DIGIT ZERO*/ + RTUNI_DDIGIT, /* U+000ae7: GUJARATI DIGIT ONE*/ + RTUNI_DDIGIT, /* U+000ae8: GUJARATI DIGIT TWO*/ + RTUNI_DDIGIT, /* U+000ae9: GUJARATI DIGIT THREE*/ + RTUNI_DDIGIT, /* U+000aea: GUJARATI DIGIT FOUR*/ + RTUNI_DDIGIT, /* U+000aeb: GUJARATI DIGIT FIVE*/ + RTUNI_DDIGIT, /* U+000aec: GUJARATI DIGIT SIX*/ + RTUNI_DDIGIT, /* U+000aed: GUJARATI DIGIT SEVEN*/ + RTUNI_DDIGIT, /* U+000aee: GUJARATI DIGIT EIGHT*/ + RTUNI_DDIGIT, /* U+000aef: GUJARATI DIGIT NINE*/ + 0, /* U+000af0: GUJARATI ABBREVIATION SIGN*/ + 0, /* U+000af1: GUJARATI RUPEE SIGN*/ + 0, /* U+000af2: */ + 0, /* U+000af3: */ + 0, /* U+000af4: */ + 0, /* U+000af5: */ + 0, /* U+000af6: */ + 0, /* U+000af7: */ + 0, /* U+000af8: */ + 0, /* U+000af9: */ + 0, /* U+000afa: */ + 0, /* U+000afb: */ + 0, /* U+000afc: */ + 0, /* U+000afd: */ + 0, /* U+000afe: */ + 0, /* U+000aff: */ + 0, /* U+000b00: */ + RTUNI_ALPHA, /* U+000b01: ORIYA SIGN CANDRABINDU*/ + RTUNI_ALPHA, /* U+000b02: ORIYA SIGN ANUSVARA*/ + RTUNI_ALPHA, /* U+000b03: ORIYA SIGN VISARGA*/ + 0, /* U+000b04: */ + RTUNI_ALPHA, /* U+000b05: ORIYA LETTER A*/ + RTUNI_ALPHA, /* U+000b06: ORIYA LETTER AA*/ + RTUNI_ALPHA, /* U+000b07: ORIYA LETTER I*/ + RTUNI_ALPHA, /* U+000b08: ORIYA LETTER II*/ + RTUNI_ALPHA, /* U+000b09: ORIYA LETTER U*/ + RTUNI_ALPHA, /* U+000b0a: ORIYA LETTER UU*/ + RTUNI_ALPHA, /* U+000b0b: ORIYA LETTER VOCALIC R*/ + RTUNI_ALPHA, /* U+000b0c: ORIYA LETTER VOCALIC L*/ + 0, /* U+000b0d: */ + 0, /* U+000b0e: */ + RTUNI_ALPHA, /* U+000b0f: ORIYA LETTER E*/ + RTUNI_ALPHA, /* U+000b10: ORIYA LETTER AI*/ + 0, /* U+000b11: */ + 0, /* U+000b12: */ + RTUNI_ALPHA, /* U+000b13: ORIYA LETTER O*/ + RTUNI_ALPHA, /* U+000b14: ORIYA LETTER AU*/ + RTUNI_ALPHA, /* U+000b15: ORIYA LETTER KA*/ + RTUNI_ALPHA, /* U+000b16: ORIYA LETTER KHA*/ + RTUNI_ALPHA, /* U+000b17: ORIYA LETTER GA*/ + RTUNI_ALPHA, /* U+000b18: ORIYA LETTER GHA*/ + RTUNI_ALPHA, /* U+000b19: ORIYA LETTER NGA*/ + RTUNI_ALPHA, /* U+000b1a: ORIYA LETTER CA*/ + RTUNI_ALPHA, /* U+000b1b: ORIYA LETTER CHA*/ + RTUNI_ALPHA, /* U+000b1c: ORIYA LETTER JA*/ + RTUNI_ALPHA, /* U+000b1d: ORIYA LETTER JHA*/ + RTUNI_ALPHA, /* U+000b1e: ORIYA LETTER NYA*/ + RTUNI_ALPHA, /* U+000b1f: ORIYA LETTER TTA*/ + RTUNI_ALPHA, /* U+000b20: ORIYA LETTER TTHA*/ + RTUNI_ALPHA, /* U+000b21: ORIYA LETTER DDA*/ + RTUNI_ALPHA, /* U+000b22: ORIYA LETTER DDHA*/ + RTUNI_ALPHA, /* U+000b23: ORIYA LETTER NNA*/ + RTUNI_ALPHA, /* U+000b24: ORIYA LETTER TA*/ + RTUNI_ALPHA, /* U+000b25: ORIYA LETTER THA*/ + RTUNI_ALPHA, /* U+000b26: ORIYA LETTER DA*/ + RTUNI_ALPHA, /* U+000b27: ORIYA LETTER DHA*/ + RTUNI_ALPHA, /* U+000b28: ORIYA LETTER NA*/ + 0, /* U+000b29: */ + RTUNI_ALPHA, /* U+000b2a: ORIYA LETTER PA*/ + RTUNI_ALPHA, /* U+000b2b: ORIYA LETTER PHA*/ + RTUNI_ALPHA, /* U+000b2c: ORIYA LETTER BA*/ + RTUNI_ALPHA, /* U+000b2d: ORIYA LETTER BHA*/ + RTUNI_ALPHA, /* U+000b2e: ORIYA LETTER MA*/ + RTUNI_ALPHA, /* U+000b2f: ORIYA LETTER YA*/ + RTUNI_ALPHA, /* U+000b30: ORIYA LETTER RA*/ + 0, /* U+000b31: */ + RTUNI_ALPHA, /* U+000b32: ORIYA LETTER LA*/ + RTUNI_ALPHA, /* U+000b33: ORIYA LETTER LLA*/ + 0, /* U+000b34: */ + RTUNI_ALPHA, /* U+000b35: ORIYA LETTER VA*/ + RTUNI_ALPHA, /* U+000b36: ORIYA LETTER SHA*/ + RTUNI_ALPHA, /* U+000b37: ORIYA LETTER SSA*/ + RTUNI_ALPHA, /* U+000b38: ORIYA LETTER SA*/ + RTUNI_ALPHA, /* U+000b39: ORIYA LETTER HA*/ + 0, /* U+000b3a: */ + 0, /* U+000b3b: */ + 0, /* U+000b3c: ORIYA SIGN NUKTA*/ + RTUNI_ALPHA, /* U+000b3d: ORIYA SIGN AVAGRAHA*/ + RTUNI_ALPHA, /* U+000b3e: ORIYA VOWEL SIGN AA*/ + RTUNI_ALPHA, /* U+000b3f: ORIYA VOWEL SIGN I*/ + RTUNI_ALPHA, /* U+000b40: ORIYA VOWEL SIGN II*/ + RTUNI_ALPHA, /* U+000b41: ORIYA VOWEL SIGN U*/ + RTUNI_ALPHA, /* U+000b42: ORIYA VOWEL SIGN UU*/ + RTUNI_ALPHA, /* U+000b43: ORIYA VOWEL SIGN VOCALIC R*/ + RTUNI_ALPHA, /* U+000b44: ORIYA VOWEL SIGN VOCALIC RR*/ + 0, /* U+000b45: */ + 0, /* U+000b46: */ + RTUNI_ALPHA, /* U+000b47: ORIYA VOWEL SIGN E*/ + RTUNI_ALPHA, /* U+000b48: ORIYA VOWEL SIGN AI*/ + 0, /* U+000b49: */ + 0, /* U+000b4a: */ + RTUNI_ALPHA, /* U+000b4b: ORIYA VOWEL SIGN O*/ + RTUNI_ALPHA, /* U+000b4c: ORIYA VOWEL SIGN AU*/ + 0, /* U+000b4d: ORIYA SIGN VIRAMA*/ + 0, /* U+000b4e: */ + 0, /* U+000b4f: */ + 0, /* U+000b50: */ + 0, /* U+000b51: */ + 0, /* U+000b52: */ + 0, /* U+000b53: */ + 0, /* U+000b54: */ + 0, /* U+000b55: */ + RTUNI_ALPHA, /* U+000b56: ORIYA AI LENGTH MARK*/ + RTUNI_ALPHA, /* U+000b57: ORIYA AU LENGTH MARK*/ + 0, /* U+000b58: */ + 0, /* U+000b59: */ + 0, /* U+000b5a: */ + 0, /* U+000b5b: */ + RTUNI_ALPHA, /* U+000b5c: ORIYA LETTER RRA*/ + RTUNI_ALPHA, /* U+000b5d: ORIYA LETTER RHA*/ + 0, /* U+000b5e: */ + RTUNI_ALPHA, /* U+000b5f: ORIYA LETTER YYA*/ + RTUNI_ALPHA, /* U+000b60: ORIYA LETTER VOCALIC RR*/ + RTUNI_ALPHA, /* U+000b61: ORIYA LETTER VOCALIC LL*/ + RTUNI_ALPHA, /* U+000b62: ORIYA VOWEL SIGN VOCALIC L*/ + RTUNI_ALPHA, /* U+000b63: ORIYA VOWEL SIGN VOCALIC LL*/ + 0, /* U+000b64: */ + 0, /* U+000b65: */ + RTUNI_DDIGIT, /* U+000b66: ORIYA DIGIT ZERO*/ + RTUNI_DDIGIT, /* U+000b67: ORIYA DIGIT ONE*/ + RTUNI_DDIGIT, /* U+000b68: ORIYA DIGIT TWO*/ + RTUNI_DDIGIT, /* U+000b69: ORIYA DIGIT THREE*/ + RTUNI_DDIGIT, /* U+000b6a: ORIYA DIGIT FOUR*/ + RTUNI_DDIGIT, /* U+000b6b: ORIYA DIGIT FIVE*/ + RTUNI_DDIGIT, /* U+000b6c: ORIYA DIGIT SIX*/ + RTUNI_DDIGIT, /* U+000b6d: ORIYA DIGIT SEVEN*/ + RTUNI_DDIGIT, /* U+000b6e: ORIYA DIGIT EIGHT*/ + RTUNI_DDIGIT, /* U+000b6f: ORIYA DIGIT NINE*/ + 0, /* U+000b70: ORIYA ISSHAR*/ + RTUNI_ALPHA, /* U+000b71: ORIYA LETTER WA*/ + 0, /* U+000b72: ORIYA FRACTION ONE QUARTER*/ + 0, /* U+000b73: ORIYA FRACTION ONE HALF*/ + 0, /* U+000b74: ORIYA FRACTION THREE QUARTERS*/ + 0, /* U+000b75: ORIYA FRACTION ONE SIXTEENTH*/ + 0, /* U+000b76: ORIYA FRACTION ONE EIGHTH*/ + 0, /* U+000b77: ORIYA FRACTION THREE SIXTEENTHS*/ + 0, /* U+000b78: */ + 0, /* U+000b79: */ + 0, /* U+000b7a: */ + 0, /* U+000b7b: */ + 0, /* U+000b7c: */ + 0, /* U+000b7d: */ + 0, /* U+000b7e: */ + 0, /* U+000b7f: */ + 0, /* U+000b80: */ + 0, /* U+000b81: */ + RTUNI_ALPHA, /* U+000b82: TAMIL SIGN ANUSVARA*/ + RTUNI_ALPHA, /* U+000b83: TAMIL SIGN VISARGA*/ + 0, /* U+000b84: */ + RTUNI_ALPHA, /* U+000b85: TAMIL LETTER A*/ + RTUNI_ALPHA, /* U+000b86: TAMIL LETTER AA*/ + RTUNI_ALPHA, /* U+000b87: TAMIL LETTER I*/ + RTUNI_ALPHA, /* U+000b88: TAMIL LETTER II*/ + RTUNI_ALPHA, /* U+000b89: TAMIL LETTER U*/ + RTUNI_ALPHA, /* U+000b8a: TAMIL LETTER UU*/ + 0, /* U+000b8b: */ + 0, /* U+000b8c: */ + 0, /* U+000b8d: */ + RTUNI_ALPHA, /* U+000b8e: TAMIL LETTER E*/ + RTUNI_ALPHA, /* U+000b8f: TAMIL LETTER EE*/ + RTUNI_ALPHA, /* U+000b90: TAMIL LETTER AI*/ + 0, /* U+000b91: */ + RTUNI_ALPHA, /* U+000b92: TAMIL LETTER O*/ + RTUNI_ALPHA, /* U+000b93: TAMIL LETTER OO*/ + RTUNI_ALPHA, /* U+000b94: TAMIL LETTER AU*/ + RTUNI_ALPHA, /* U+000b95: TAMIL LETTER KA*/ + 0, /* U+000b96: */ + 0, /* U+000b97: */ + 0, /* U+000b98: */ + RTUNI_ALPHA, /* U+000b99: TAMIL LETTER NGA*/ + RTUNI_ALPHA, /* U+000b9a: TAMIL LETTER CA*/ + 0, /* U+000b9b: */ + RTUNI_ALPHA, /* U+000b9c: TAMIL LETTER JA*/ + 0, /* U+000b9d: */ + RTUNI_ALPHA, /* U+000b9e: TAMIL LETTER NYA*/ + RTUNI_ALPHA, /* U+000b9f: TAMIL LETTER TTA*/ + 0, /* U+000ba0: */ + 0, /* U+000ba1: */ + 0, /* U+000ba2: */ + RTUNI_ALPHA, /* U+000ba3: TAMIL LETTER NNA*/ + RTUNI_ALPHA, /* U+000ba4: TAMIL LETTER TA*/ + 0, /* U+000ba5: */ + 0, /* U+000ba6: */ + 0, /* U+000ba7: */ + RTUNI_ALPHA, /* U+000ba8: TAMIL LETTER NA*/ + RTUNI_ALPHA, /* U+000ba9: TAMIL LETTER NNNA*/ + RTUNI_ALPHA, /* U+000baa: TAMIL LETTER PA*/ + 0, /* U+000bab: */ + 0, /* U+000bac: */ + 0, /* U+000bad: */ + RTUNI_ALPHA, /* U+000bae: TAMIL LETTER MA*/ + RTUNI_ALPHA, /* U+000baf: TAMIL LETTER YA*/ + RTUNI_ALPHA, /* U+000bb0: TAMIL LETTER RA*/ + RTUNI_ALPHA, /* U+000bb1: TAMIL LETTER RRA*/ + RTUNI_ALPHA, /* U+000bb2: TAMIL LETTER LA*/ + RTUNI_ALPHA, /* U+000bb3: TAMIL LETTER LLA*/ + RTUNI_ALPHA, /* U+000bb4: TAMIL LETTER LLLA*/ + RTUNI_ALPHA, /* U+000bb5: TAMIL LETTER VA*/ + RTUNI_ALPHA, /* U+000bb6: TAMIL LETTER SHA*/ + RTUNI_ALPHA, /* U+000bb7: TAMIL LETTER SSA*/ + RTUNI_ALPHA, /* U+000bb8: TAMIL LETTER SA*/ + RTUNI_ALPHA, /* U+000bb9: TAMIL LETTER HA*/ + 0, /* U+000bba: */ + 0, /* U+000bbb: */ + 0, /* U+000bbc: */ + 0, /* U+000bbd: */ + RTUNI_ALPHA, /* U+000bbe: TAMIL VOWEL SIGN AA*/ + RTUNI_ALPHA, /* U+000bbf: TAMIL VOWEL SIGN I*/ + RTUNI_ALPHA, /* U+000bc0: TAMIL VOWEL SIGN II*/ + RTUNI_ALPHA, /* U+000bc1: TAMIL VOWEL SIGN U*/ + RTUNI_ALPHA, /* U+000bc2: TAMIL VOWEL SIGN UU*/ + 0, /* U+000bc3: */ + 0, /* U+000bc4: */ + 0, /* U+000bc5: */ + RTUNI_ALPHA, /* U+000bc6: TAMIL VOWEL SIGN E*/ + RTUNI_ALPHA, /* U+000bc7: TAMIL VOWEL SIGN EE*/ + RTUNI_ALPHA, /* U+000bc8: TAMIL VOWEL SIGN AI*/ + 0, /* U+000bc9: */ + RTUNI_ALPHA, /* U+000bca: TAMIL VOWEL SIGN O*/ + RTUNI_ALPHA, /* U+000bcb: TAMIL VOWEL SIGN OO*/ + RTUNI_ALPHA, /* U+000bcc: TAMIL VOWEL SIGN AU*/ + 0, /* U+000bcd: TAMIL SIGN VIRAMA*/ + 0, /* U+000bce: */ + 0, /* U+000bcf: */ + RTUNI_ALPHA, /* U+000bd0: TAMIL OM*/ + 0, /* U+000bd1: */ + 0, /* U+000bd2: */ + 0, /* U+000bd3: */ + 0, /* U+000bd4: */ + 0, /* U+000bd5: */ + 0, /* U+000bd6: */ + RTUNI_ALPHA, /* U+000bd7: TAMIL AU LENGTH MARK*/ + 0, /* U+000bd8: */ + 0, /* U+000bd9: */ + 0, /* U+000bda: */ + 0, /* U+000bdb: */ + 0, /* U+000bdc: */ + 0, /* U+000bdd: */ + 0, /* U+000bde: */ + 0, /* U+000bdf: */ + 0, /* U+000be0: */ + 0, /* U+000be1: */ + 0, /* U+000be2: */ + 0, /* U+000be3: */ + 0, /* U+000be4: */ + 0, /* U+000be5: */ + RTUNI_DDIGIT, /* U+000be6: TAMIL DIGIT ZERO*/ + RTUNI_DDIGIT, /* U+000be7: TAMIL DIGIT ONE*/ + RTUNI_DDIGIT, /* U+000be8: TAMIL DIGIT TWO*/ + RTUNI_DDIGIT, /* U+000be9: TAMIL DIGIT THREE*/ + RTUNI_DDIGIT, /* U+000bea: TAMIL DIGIT FOUR*/ + RTUNI_DDIGIT, /* U+000beb: TAMIL DIGIT FIVE*/ + RTUNI_DDIGIT, /* U+000bec: TAMIL DIGIT SIX*/ + RTUNI_DDIGIT, /* U+000bed: TAMIL DIGIT SEVEN*/ + RTUNI_DDIGIT, /* U+000bee: TAMIL DIGIT EIGHT*/ + RTUNI_DDIGIT, /* U+000bef: TAMIL DIGIT NINE*/ + 0, /* U+000bf0: TAMIL NUMBER TEN*/ + 0, /* U+000bf1: TAMIL NUMBER ONE HUNDRED*/ + 0, /* U+000bf2: TAMIL NUMBER ONE THOUSAND*/ + 0, /* U+000bf3: TAMIL DAY SIGN*/ + 0, /* U+000bf4: TAMIL MONTH SIGN*/ + 0, /* U+000bf5: TAMIL YEAR SIGN*/ + 0, /* U+000bf6: TAMIL DEBIT SIGN*/ + 0, /* U+000bf7: TAMIL CREDIT SIGN*/ + 0, /* U+000bf8: TAMIL AS ABOVE SIGN*/ + 0, /* U+000bf9: TAMIL RUPEE SIGN*/ + 0, /* U+000bfa: TAMIL NUMBER SIGN*/ + 0, /* U+000bfb: */ + 0, /* U+000bfc: */ + 0, /* U+000bfd: */ + 0, /* U+000bfe: */ + 0, /* U+000bff: */ + 0, /* U+000c00: */ + RTUNI_ALPHA, /* U+000c01: TELUGU SIGN CANDRABINDU*/ + RTUNI_ALPHA, /* U+000c02: TELUGU SIGN ANUSVARA*/ + RTUNI_ALPHA, /* U+000c03: TELUGU SIGN VISARGA*/ + 0, /* U+000c04: */ + RTUNI_ALPHA, /* U+000c05: TELUGU LETTER A*/ + RTUNI_ALPHA, /* U+000c06: TELUGU LETTER AA*/ + RTUNI_ALPHA, /* U+000c07: TELUGU LETTER I*/ + RTUNI_ALPHA, /* U+000c08: TELUGU LETTER II*/ + RTUNI_ALPHA, /* U+000c09: TELUGU LETTER U*/ + RTUNI_ALPHA, /* U+000c0a: TELUGU LETTER UU*/ + RTUNI_ALPHA, /* U+000c0b: TELUGU LETTER VOCALIC R*/ + RTUNI_ALPHA, /* U+000c0c: TELUGU LETTER VOCALIC L*/ + 0, /* U+000c0d: */ + RTUNI_ALPHA, /* U+000c0e: TELUGU LETTER E*/ + RTUNI_ALPHA, /* U+000c0f: TELUGU LETTER EE*/ + RTUNI_ALPHA, /* U+000c10: TELUGU LETTER AI*/ + 0, /* U+000c11: */ + RTUNI_ALPHA, /* U+000c12: TELUGU LETTER O*/ + RTUNI_ALPHA, /* U+000c13: TELUGU LETTER OO*/ + RTUNI_ALPHA, /* U+000c14: TELUGU LETTER AU*/ + RTUNI_ALPHA, /* U+000c15: TELUGU LETTER KA*/ + RTUNI_ALPHA, /* U+000c16: TELUGU LETTER KHA*/ + RTUNI_ALPHA, /* U+000c17: TELUGU LETTER GA*/ + RTUNI_ALPHA, /* U+000c18: TELUGU LETTER GHA*/ + RTUNI_ALPHA, /* U+000c19: TELUGU LETTER NGA*/ + RTUNI_ALPHA, /* U+000c1a: TELUGU LETTER CA*/ + RTUNI_ALPHA, /* U+000c1b: TELUGU LETTER CHA*/ + RTUNI_ALPHA, /* U+000c1c: TELUGU LETTER JA*/ + RTUNI_ALPHA, /* U+000c1d: TELUGU LETTER JHA*/ + RTUNI_ALPHA, /* U+000c1e: TELUGU LETTER NYA*/ + RTUNI_ALPHA, /* U+000c1f: TELUGU LETTER TTA*/ + RTUNI_ALPHA, /* U+000c20: TELUGU LETTER TTHA*/ + RTUNI_ALPHA, /* U+000c21: TELUGU LETTER DDA*/ + RTUNI_ALPHA, /* U+000c22: TELUGU LETTER DDHA*/ + RTUNI_ALPHA, /* U+000c23: TELUGU LETTER NNA*/ + RTUNI_ALPHA, /* U+000c24: TELUGU LETTER TA*/ + RTUNI_ALPHA, /* U+000c25: TELUGU LETTER THA*/ + RTUNI_ALPHA, /* U+000c26: TELUGU LETTER DA*/ + RTUNI_ALPHA, /* U+000c27: TELUGU LETTER DHA*/ + RTUNI_ALPHA, /* U+000c28: TELUGU LETTER NA*/ + 0, /* U+000c29: */ + RTUNI_ALPHA, /* U+000c2a: TELUGU LETTER PA*/ + RTUNI_ALPHA, /* U+000c2b: TELUGU LETTER PHA*/ + RTUNI_ALPHA, /* U+000c2c: TELUGU LETTER BA*/ + RTUNI_ALPHA, /* U+000c2d: TELUGU LETTER BHA*/ + RTUNI_ALPHA, /* U+000c2e: TELUGU LETTER MA*/ + RTUNI_ALPHA, /* U+000c2f: TELUGU LETTER YA*/ + RTUNI_ALPHA, /* U+000c30: TELUGU LETTER RA*/ + RTUNI_ALPHA, /* U+000c31: TELUGU LETTER RRA*/ + RTUNI_ALPHA, /* U+000c32: TELUGU LETTER LA*/ + RTUNI_ALPHA, /* U+000c33: TELUGU LETTER LLA*/ + 0, /* U+000c34: */ + RTUNI_ALPHA, /* U+000c35: TELUGU LETTER VA*/ + RTUNI_ALPHA, /* U+000c36: TELUGU LETTER SHA*/ + RTUNI_ALPHA, /* U+000c37: TELUGU LETTER SSA*/ + RTUNI_ALPHA, /* U+000c38: TELUGU LETTER SA*/ + RTUNI_ALPHA, /* U+000c39: TELUGU LETTER HA*/ + 0, /* U+000c3a: */ + 0, /* U+000c3b: */ + 0, /* U+000c3c: */ + RTUNI_ALPHA, /* U+000c3d: TELUGU SIGN AVAGRAHA*/ + RTUNI_ALPHA, /* U+000c3e: TELUGU VOWEL SIGN AA*/ + RTUNI_ALPHA, /* U+000c3f: TELUGU VOWEL SIGN I*/ + RTUNI_ALPHA, /* U+000c40: TELUGU VOWEL SIGN II*/ + RTUNI_ALPHA, /* U+000c41: TELUGU VOWEL SIGN U*/ + RTUNI_ALPHA, /* U+000c42: TELUGU VOWEL SIGN UU*/ + RTUNI_ALPHA, /* U+000c43: TELUGU VOWEL SIGN VOCALIC R*/ + RTUNI_ALPHA, /* U+000c44: TELUGU VOWEL SIGN VOCALIC RR*/ + 0, /* U+000c45: */ + RTUNI_ALPHA, /* U+000c46: TELUGU VOWEL SIGN E*/ + RTUNI_ALPHA, /* U+000c47: TELUGU VOWEL SIGN EE*/ + RTUNI_ALPHA, /* U+000c48: TELUGU VOWEL SIGN AI*/ + 0, /* U+000c49: */ + RTUNI_ALPHA, /* U+000c4a: TELUGU VOWEL SIGN O*/ + RTUNI_ALPHA, /* U+000c4b: TELUGU VOWEL SIGN OO*/ + RTUNI_ALPHA, /* U+000c4c: TELUGU VOWEL SIGN AU*/ + 0, /* U+000c4d: TELUGU SIGN VIRAMA*/ + 0, /* U+000c4e: */ + 0, /* U+000c4f: */ + 0, /* U+000c50: */ + 0, /* U+000c51: */ + 0, /* U+000c52: */ + 0, /* U+000c53: */ + 0, /* U+000c54: */ + RTUNI_ALPHA, /* U+000c55: TELUGU LENGTH MARK*/ + RTUNI_ALPHA, /* U+000c56: TELUGU AI LENGTH MARK*/ + 0, /* U+000c57: */ + RTUNI_ALPHA, /* U+000c58: TELUGU LETTER TSA*/ + RTUNI_ALPHA, /* U+000c59: TELUGU LETTER DZA*/ + 0, /* U+000c5a: */ + 0, /* U+000c5b: */ + 0, /* U+000c5c: */ + 0, /* U+000c5d: */ + 0, /* U+000c5e: */ + 0, /* U+000c5f: */ + RTUNI_ALPHA, /* U+000c60: TELUGU LETTER VOCALIC RR*/ + RTUNI_ALPHA, /* U+000c61: TELUGU LETTER VOCALIC LL*/ + RTUNI_ALPHA, /* U+000c62: TELUGU VOWEL SIGN VOCALIC L*/ + RTUNI_ALPHA, /* U+000c63: TELUGU VOWEL SIGN VOCALIC LL*/ + 0, /* U+000c64: */ + 0, /* U+000c65: */ + RTUNI_DDIGIT, /* U+000c66: TELUGU DIGIT ZERO*/ + RTUNI_DDIGIT, /* U+000c67: TELUGU DIGIT ONE*/ + RTUNI_DDIGIT, /* U+000c68: TELUGU DIGIT TWO*/ + RTUNI_DDIGIT, /* U+000c69: TELUGU DIGIT THREE*/ + RTUNI_DDIGIT, /* U+000c6a: TELUGU DIGIT FOUR*/ + RTUNI_DDIGIT, /* U+000c6b: TELUGU DIGIT FIVE*/ + RTUNI_DDIGIT, /* U+000c6c: TELUGU DIGIT SIX*/ + RTUNI_DDIGIT, /* U+000c6d: TELUGU DIGIT SEVEN*/ + RTUNI_DDIGIT, /* U+000c6e: TELUGU DIGIT EIGHT*/ + RTUNI_DDIGIT, /* U+000c6f: TELUGU DIGIT NINE*/ + 0, /* U+000c70: */ + 0, /* U+000c71: */ + 0, /* U+000c72: */ + 0, /* U+000c73: */ + 0, /* U+000c74: */ + 0, /* U+000c75: */ + 0, /* U+000c76: */ + 0, /* U+000c77: */ + 0, /* U+000c78: TELUGU FRACTION DIGIT ZERO FOR ODD POWERS OF FOUR*/ + 0, /* U+000c79: TELUGU FRACTION DIGIT ONE FOR ODD POWERS OF FOUR*/ + 0, /* U+000c7a: TELUGU FRACTION DIGIT TWO FOR ODD POWERS OF FOUR*/ + 0, /* U+000c7b: TELUGU FRACTION DIGIT THREE FOR ODD POWERS OF FOUR*/ + 0, /* U+000c7c: TELUGU FRACTION DIGIT ONE FOR EVEN POWERS OF FOUR*/ + 0, /* U+000c7d: TELUGU FRACTION DIGIT TWO FOR EVEN POWERS OF FOUR*/ + 0, /* U+000c7e: TELUGU FRACTION DIGIT THREE FOR EVEN POWERS OF FOUR*/ + 0, /* U+000c7f: TELUGU SIGN TUUMU*/ + 0, /* U+000c80: */ + 0, /* U+000c81: */ + RTUNI_ALPHA, /* U+000c82: KANNADA SIGN ANUSVARA*/ + RTUNI_ALPHA, /* U+000c83: KANNADA SIGN VISARGA*/ + 0, /* U+000c84: */ + RTUNI_ALPHA, /* U+000c85: KANNADA LETTER A*/ + RTUNI_ALPHA, /* U+000c86: KANNADA LETTER AA*/ + RTUNI_ALPHA, /* U+000c87: KANNADA LETTER I*/ + RTUNI_ALPHA, /* U+000c88: KANNADA LETTER II*/ + RTUNI_ALPHA, /* U+000c89: KANNADA LETTER U*/ + RTUNI_ALPHA, /* U+000c8a: KANNADA LETTER UU*/ + RTUNI_ALPHA, /* U+000c8b: KANNADA LETTER VOCALIC R*/ + RTUNI_ALPHA, /* U+000c8c: KANNADA LETTER VOCALIC L*/ + 0, /* U+000c8d: */ + RTUNI_ALPHA, /* U+000c8e: KANNADA LETTER E*/ + RTUNI_ALPHA, /* U+000c8f: KANNADA LETTER EE*/ + RTUNI_ALPHA, /* U+000c90: KANNADA LETTER AI*/ + 0, /* U+000c91: */ + RTUNI_ALPHA, /* U+000c92: KANNADA LETTER O*/ + RTUNI_ALPHA, /* U+000c93: KANNADA LETTER OO*/ + RTUNI_ALPHA, /* U+000c94: KANNADA LETTER AU*/ + RTUNI_ALPHA, /* U+000c95: KANNADA LETTER KA*/ + RTUNI_ALPHA, /* U+000c96: KANNADA LETTER KHA*/ + RTUNI_ALPHA, /* U+000c97: KANNADA LETTER GA*/ + RTUNI_ALPHA, /* U+000c98: KANNADA LETTER GHA*/ + RTUNI_ALPHA, /* U+000c99: KANNADA LETTER NGA*/ + RTUNI_ALPHA, /* U+000c9a: KANNADA LETTER CA*/ + RTUNI_ALPHA, /* U+000c9b: KANNADA LETTER CHA*/ + RTUNI_ALPHA, /* U+000c9c: KANNADA LETTER JA*/ + RTUNI_ALPHA, /* U+000c9d: KANNADA LETTER JHA*/ + RTUNI_ALPHA, /* U+000c9e: KANNADA LETTER NYA*/ + RTUNI_ALPHA, /* U+000c9f: KANNADA LETTER TTA*/ + RTUNI_ALPHA, /* U+000ca0: KANNADA LETTER TTHA*/ + RTUNI_ALPHA, /* U+000ca1: KANNADA LETTER DDA*/ + RTUNI_ALPHA, /* U+000ca2: KANNADA LETTER DDHA*/ + RTUNI_ALPHA, /* U+000ca3: KANNADA LETTER NNA*/ + RTUNI_ALPHA, /* U+000ca4: KANNADA LETTER TA*/ + RTUNI_ALPHA, /* U+000ca5: KANNADA LETTER THA*/ + RTUNI_ALPHA, /* U+000ca6: KANNADA LETTER DA*/ + RTUNI_ALPHA, /* U+000ca7: KANNADA LETTER DHA*/ + RTUNI_ALPHA, /* U+000ca8: KANNADA LETTER NA*/ + 0, /* U+000ca9: */ + RTUNI_ALPHA, /* U+000caa: KANNADA LETTER PA*/ + RTUNI_ALPHA, /* U+000cab: KANNADA LETTER PHA*/ + RTUNI_ALPHA, /* U+000cac: KANNADA LETTER BA*/ + RTUNI_ALPHA, /* U+000cad: KANNADA LETTER BHA*/ + RTUNI_ALPHA, /* U+000cae: KANNADA LETTER MA*/ + RTUNI_ALPHA, /* U+000caf: KANNADA LETTER YA*/ + RTUNI_ALPHA, /* U+000cb0: KANNADA LETTER RA*/ + RTUNI_ALPHA, /* U+000cb1: KANNADA LETTER RRA*/ + RTUNI_ALPHA, /* U+000cb2: KANNADA LETTER LA*/ + RTUNI_ALPHA, /* U+000cb3: KANNADA LETTER LLA*/ + 0, /* U+000cb4: */ + RTUNI_ALPHA, /* U+000cb5: KANNADA LETTER VA*/ + RTUNI_ALPHA, /* U+000cb6: KANNADA LETTER SHA*/ + RTUNI_ALPHA, /* U+000cb7: KANNADA LETTER SSA*/ + RTUNI_ALPHA, /* U+000cb8: KANNADA LETTER SA*/ + RTUNI_ALPHA, /* U+000cb9: KANNADA LETTER HA*/ + 0, /* U+000cba: */ + 0, /* U+000cbb: */ + 0, /* U+000cbc: KANNADA SIGN NUKTA*/ + RTUNI_ALPHA, /* U+000cbd: KANNADA SIGN AVAGRAHA*/ + RTUNI_ALPHA, /* U+000cbe: KANNADA VOWEL SIGN AA*/ + RTUNI_ALPHA, /* U+000cbf: KANNADA VOWEL SIGN I*/ + RTUNI_ALPHA, /* U+000cc0: KANNADA VOWEL SIGN II*/ + RTUNI_ALPHA, /* U+000cc1: KANNADA VOWEL SIGN U*/ + RTUNI_ALPHA, /* U+000cc2: KANNADA VOWEL SIGN UU*/ + RTUNI_ALPHA, /* U+000cc3: KANNADA VOWEL SIGN VOCALIC R*/ + RTUNI_ALPHA, /* U+000cc4: KANNADA VOWEL SIGN VOCALIC RR*/ + 0, /* U+000cc5: */ + RTUNI_ALPHA, /* U+000cc6: KANNADA VOWEL SIGN E*/ + RTUNI_ALPHA, /* U+000cc7: KANNADA VOWEL SIGN EE*/ + RTUNI_ALPHA, /* U+000cc8: KANNADA VOWEL SIGN AI*/ + 0, /* U+000cc9: */ + RTUNI_ALPHA, /* U+000cca: KANNADA VOWEL SIGN O*/ + RTUNI_ALPHA, /* U+000ccb: KANNADA VOWEL SIGN OO*/ + RTUNI_ALPHA, /* U+000ccc: KANNADA VOWEL SIGN AU*/ + 0, /* U+000ccd: KANNADA SIGN VIRAMA*/ + 0, /* U+000cce: */ + 0, /* U+000ccf: */ + 0, /* U+000cd0: */ + 0, /* U+000cd1: */ + 0, /* U+000cd2: */ + 0, /* U+000cd3: */ + 0, /* U+000cd4: */ + RTUNI_ALPHA, /* U+000cd5: KANNADA LENGTH MARK*/ + RTUNI_ALPHA, /* U+000cd6: KANNADA AI LENGTH MARK*/ + 0, /* U+000cd7: */ + 0, /* U+000cd8: */ + 0, /* U+000cd9: */ + 0, /* U+000cda: */ + 0, /* U+000cdb: */ + 0, /* U+000cdc: */ + 0, /* U+000cdd: */ + RTUNI_ALPHA, /* U+000cde: KANNADA LETTER FA*/ + 0, /* U+000cdf: */ + RTUNI_ALPHA, /* U+000ce0: KANNADA LETTER VOCALIC RR*/ + RTUNI_ALPHA, /* U+000ce1: KANNADA LETTER VOCALIC LL*/ + RTUNI_ALPHA, /* U+000ce2: KANNADA VOWEL SIGN VOCALIC L*/ + RTUNI_ALPHA, /* U+000ce3: KANNADA VOWEL SIGN VOCALIC LL*/ + 0, /* U+000ce4: */ + 0, /* U+000ce5: */ + RTUNI_DDIGIT, /* U+000ce6: KANNADA DIGIT ZERO*/ + RTUNI_DDIGIT, /* U+000ce7: KANNADA DIGIT ONE*/ + RTUNI_DDIGIT, /* U+000ce8: KANNADA DIGIT TWO*/ + RTUNI_DDIGIT, /* U+000ce9: KANNADA DIGIT THREE*/ + RTUNI_DDIGIT, /* U+000cea: KANNADA DIGIT FOUR*/ + RTUNI_DDIGIT, /* U+000ceb: KANNADA DIGIT FIVE*/ + RTUNI_DDIGIT, /* U+000cec: KANNADA DIGIT SIX*/ + RTUNI_DDIGIT, /* U+000ced: KANNADA DIGIT SEVEN*/ + RTUNI_DDIGIT, /* U+000cee: KANNADA DIGIT EIGHT*/ + RTUNI_DDIGIT, /* U+000cef: KANNADA DIGIT NINE*/ + 0, /* U+000cf0: */ + RTUNI_ALPHA, /* U+000cf1: KANNADA SIGN JIHVAMULIYA*/ + RTUNI_ALPHA, /* U+000cf2: KANNADA SIGN UPADHMANIYA*/ + 0, /* U+000cf3: */ + 0, /* U+000cf4: */ + 0, /* U+000cf5: */ + 0, /* U+000cf6: */ + 0, /* U+000cf7: */ + 0, /* U+000cf8: */ + 0, /* U+000cf9: */ + 0, /* U+000cfa: */ + 0, /* U+000cfb: */ + 0, /* U+000cfc: */ + 0, /* U+000cfd: */ + 0, /* U+000cfe: */ + 0, /* U+000cff: */ + 0, /* U+000d00: */ + 0, /* U+000d01: */ + RTUNI_ALPHA, /* U+000d02: MALAYALAM SIGN ANUSVARA*/ + RTUNI_ALPHA, /* U+000d03: MALAYALAM SIGN VISARGA*/ + 0, /* U+000d04: */ + RTUNI_ALPHA, /* U+000d05: MALAYALAM LETTER A*/ + RTUNI_ALPHA, /* U+000d06: MALAYALAM LETTER AA*/ + RTUNI_ALPHA, /* U+000d07: MALAYALAM LETTER I*/ + RTUNI_ALPHA, /* U+000d08: MALAYALAM LETTER II*/ + RTUNI_ALPHA, /* U+000d09: MALAYALAM LETTER U*/ + RTUNI_ALPHA, /* U+000d0a: MALAYALAM LETTER UU*/ + RTUNI_ALPHA, /* U+000d0b: MALAYALAM LETTER VOCALIC R*/ + RTUNI_ALPHA, /* U+000d0c: MALAYALAM LETTER VOCALIC L*/ + 0, /* U+000d0d: */ + RTUNI_ALPHA, /* U+000d0e: MALAYALAM LETTER E*/ + RTUNI_ALPHA, /* U+000d0f: MALAYALAM LETTER EE*/ + RTUNI_ALPHA, /* U+000d10: MALAYALAM LETTER AI*/ + 0, /* U+000d11: */ + RTUNI_ALPHA, /* U+000d12: MALAYALAM LETTER O*/ + RTUNI_ALPHA, /* U+000d13: MALAYALAM LETTER OO*/ + RTUNI_ALPHA, /* U+000d14: MALAYALAM LETTER AU*/ + RTUNI_ALPHA, /* U+000d15: MALAYALAM LETTER KA*/ + RTUNI_ALPHA, /* U+000d16: MALAYALAM LETTER KHA*/ + RTUNI_ALPHA, /* U+000d17: MALAYALAM LETTER GA*/ + RTUNI_ALPHA, /* U+000d18: MALAYALAM LETTER GHA*/ + RTUNI_ALPHA, /* U+000d19: MALAYALAM LETTER NGA*/ + RTUNI_ALPHA, /* U+000d1a: MALAYALAM LETTER CA*/ + RTUNI_ALPHA, /* U+000d1b: MALAYALAM LETTER CHA*/ + RTUNI_ALPHA, /* U+000d1c: MALAYALAM LETTER JA*/ + RTUNI_ALPHA, /* U+000d1d: MALAYALAM LETTER JHA*/ + RTUNI_ALPHA, /* U+000d1e: MALAYALAM LETTER NYA*/ + RTUNI_ALPHA, /* U+000d1f: MALAYALAM LETTER TTA*/ + RTUNI_ALPHA, /* U+000d20: MALAYALAM LETTER TTHA*/ + RTUNI_ALPHA, /* U+000d21: MALAYALAM LETTER DDA*/ + RTUNI_ALPHA, /* U+000d22: MALAYALAM LETTER DDHA*/ + RTUNI_ALPHA, /* U+000d23: MALAYALAM LETTER NNA*/ + RTUNI_ALPHA, /* U+000d24: MALAYALAM LETTER TA*/ + RTUNI_ALPHA, /* U+000d25: MALAYALAM LETTER THA*/ + RTUNI_ALPHA, /* U+000d26: MALAYALAM LETTER DA*/ + RTUNI_ALPHA, /* U+000d27: MALAYALAM LETTER DHA*/ + RTUNI_ALPHA, /* U+000d28: MALAYALAM LETTER NA*/ + RTUNI_ALPHA, /* U+000d29: MALAYALAM LETTER NNNA*/ + RTUNI_ALPHA, /* U+000d2a: MALAYALAM LETTER PA*/ + RTUNI_ALPHA, /* U+000d2b: MALAYALAM LETTER PHA*/ + RTUNI_ALPHA, /* U+000d2c: MALAYALAM LETTER BA*/ + RTUNI_ALPHA, /* U+000d2d: MALAYALAM LETTER BHA*/ + RTUNI_ALPHA, /* U+000d2e: MALAYALAM LETTER MA*/ + RTUNI_ALPHA, /* U+000d2f: MALAYALAM LETTER YA*/ + RTUNI_ALPHA, /* U+000d30: MALAYALAM LETTER RA*/ + RTUNI_ALPHA, /* U+000d31: MALAYALAM LETTER RRA*/ + RTUNI_ALPHA, /* U+000d32: MALAYALAM LETTER LA*/ + RTUNI_ALPHA, /* U+000d33: MALAYALAM LETTER LLA*/ + RTUNI_ALPHA, /* U+000d34: MALAYALAM LETTER LLLA*/ + RTUNI_ALPHA, /* U+000d35: MALAYALAM LETTER VA*/ + RTUNI_ALPHA, /* U+000d36: MALAYALAM LETTER SHA*/ + RTUNI_ALPHA, /* U+000d37: MALAYALAM LETTER SSA*/ + RTUNI_ALPHA, /* U+000d38: MALAYALAM LETTER SA*/ + RTUNI_ALPHA, /* U+000d39: MALAYALAM LETTER HA*/ + RTUNI_ALPHA, /* U+000d3a: MALAYALAM LETTER TTTA*/ + 0, /* U+000d3b: */ + 0, /* U+000d3c: */ + RTUNI_ALPHA, /* U+000d3d: MALAYALAM SIGN AVAGRAHA*/ + RTUNI_ALPHA, /* U+000d3e: MALAYALAM VOWEL SIGN AA*/ + RTUNI_ALPHA, /* U+000d3f: MALAYALAM VOWEL SIGN I*/ + RTUNI_ALPHA, /* U+000d40: MALAYALAM VOWEL SIGN II*/ + RTUNI_ALPHA, /* U+000d41: MALAYALAM VOWEL SIGN U*/ + RTUNI_ALPHA, /* U+000d42: MALAYALAM VOWEL SIGN UU*/ + RTUNI_ALPHA, /* U+000d43: MALAYALAM VOWEL SIGN VOCALIC R*/ + RTUNI_ALPHA, /* U+000d44: MALAYALAM VOWEL SIGN VOCALIC RR*/ + 0, /* U+000d45: */ + RTUNI_ALPHA, /* U+000d46: MALAYALAM VOWEL SIGN E*/ + RTUNI_ALPHA, /* U+000d47: MALAYALAM VOWEL SIGN EE*/ + RTUNI_ALPHA, /* U+000d48: MALAYALAM VOWEL SIGN AI*/ + 0, /* U+000d49: */ + RTUNI_ALPHA, /* U+000d4a: MALAYALAM VOWEL SIGN O*/ + RTUNI_ALPHA, /* U+000d4b: MALAYALAM VOWEL SIGN OO*/ + RTUNI_ALPHA, /* U+000d4c: MALAYALAM VOWEL SIGN AU*/ + 0, /* U+000d4d: MALAYALAM SIGN VIRAMA*/ + RTUNI_ALPHA, /* U+000d4e: MALAYALAM LETTER DOT REPH*/ + 0, /* U+000d4f: */ + 0, /* U+000d50: */ + 0, /* U+000d51: */ + 0, /* U+000d52: */ + 0, /* U+000d53: */ + 0, /* U+000d54: */ + 0, /* U+000d55: */ + 0, /* U+000d56: */ + RTUNI_ALPHA, /* U+000d57: MALAYALAM AU LENGTH MARK*/ + 0, /* U+000d58: */ + 0, /* U+000d59: */ + 0, /* U+000d5a: */ + 0, /* U+000d5b: */ + 0, /* U+000d5c: */ + 0, /* U+000d5d: */ + 0, /* U+000d5e: */ + 0, /* U+000d5f: */ + RTUNI_ALPHA, /* U+000d60: MALAYALAM LETTER VOCALIC RR*/ + RTUNI_ALPHA, /* U+000d61: MALAYALAM LETTER VOCALIC LL*/ + RTUNI_ALPHA, /* U+000d62: MALAYALAM VOWEL SIGN VOCALIC L*/ + RTUNI_ALPHA, /* U+000d63: MALAYALAM VOWEL SIGN VOCALIC LL*/ + 0, /* U+000d64: */ + 0, /* U+000d65: */ + RTUNI_DDIGIT, /* U+000d66: MALAYALAM DIGIT ZERO*/ + RTUNI_DDIGIT, /* U+000d67: MALAYALAM DIGIT ONE*/ + RTUNI_DDIGIT, /* U+000d68: MALAYALAM DIGIT TWO*/ + RTUNI_DDIGIT, /* U+000d69: MALAYALAM DIGIT THREE*/ + RTUNI_DDIGIT, /* U+000d6a: MALAYALAM DIGIT FOUR*/ + RTUNI_DDIGIT, /* U+000d6b: MALAYALAM DIGIT FIVE*/ + RTUNI_DDIGIT, /* U+000d6c: MALAYALAM DIGIT SIX*/ + RTUNI_DDIGIT, /* U+000d6d: MALAYALAM DIGIT SEVEN*/ + RTUNI_DDIGIT, /* U+000d6e: MALAYALAM DIGIT EIGHT*/ + RTUNI_DDIGIT, /* U+000d6f: MALAYALAM DIGIT NINE*/ + 0, /* U+000d70: MALAYALAM NUMBER TEN*/ + 0, /* U+000d71: MALAYALAM NUMBER ONE HUNDRED*/ + 0, /* U+000d72: MALAYALAM NUMBER ONE THOUSAND*/ + 0, /* U+000d73: MALAYALAM FRACTION ONE QUARTER*/ + 0, /* U+000d74: MALAYALAM FRACTION ONE HALF*/ + 0, /* U+000d75: MALAYALAM FRACTION THREE QUARTERS*/ + 0, /* U+000d76: */ + 0, /* U+000d77: */ + 0, /* U+000d78: */ + 0, /* U+000d79: MALAYALAM DATE MARK*/ + RTUNI_ALPHA, /* U+000d7a: MALAYALAM LETTER CHILLU NN*/ + RTUNI_ALPHA, /* U+000d7b: MALAYALAM LETTER CHILLU N*/ + RTUNI_ALPHA, /* U+000d7c: MALAYALAM LETTER CHILLU RR*/ + RTUNI_ALPHA, /* U+000d7d: MALAYALAM LETTER CHILLU L*/ + RTUNI_ALPHA, /* U+000d7e: MALAYALAM LETTER CHILLU LL*/ + RTUNI_ALPHA, /* U+000d7f: MALAYALAM LETTER CHILLU K*/ + 0, /* U+000d80: */ + 0, /* U+000d81: */ + RTUNI_ALPHA, /* U+000d82: SINHALA SIGN ANUSVARAYA*/ + RTUNI_ALPHA, /* U+000d83: SINHALA SIGN VISARGAYA*/ + 0, /* U+000d84: */ + RTUNI_ALPHA, /* U+000d85: SINHALA LETTER AYANNA*/ + RTUNI_ALPHA, /* U+000d86: SINHALA LETTER AAYANNA*/ + RTUNI_ALPHA, /* U+000d87: SINHALA LETTER AEYANNA*/ + RTUNI_ALPHA, /* U+000d88: SINHALA LETTER AEEYANNA*/ + RTUNI_ALPHA, /* U+000d89: SINHALA LETTER IYANNA*/ + RTUNI_ALPHA, /* U+000d8a: SINHALA LETTER IIYANNA*/ + RTUNI_ALPHA, /* U+000d8b: SINHALA LETTER UYANNA*/ + RTUNI_ALPHA, /* U+000d8c: SINHALA LETTER UUYANNA*/ + RTUNI_ALPHA, /* U+000d8d: SINHALA LETTER IRUYANNA*/ + RTUNI_ALPHA, /* U+000d8e: SINHALA LETTER IRUUYANNA*/ + RTUNI_ALPHA, /* U+000d8f: SINHALA LETTER ILUYANNA*/ + RTUNI_ALPHA, /* U+000d90: SINHALA LETTER ILUUYANNA*/ + RTUNI_ALPHA, /* U+000d91: SINHALA LETTER EYANNA*/ + RTUNI_ALPHA, /* U+000d92: SINHALA LETTER EEYANNA*/ + RTUNI_ALPHA, /* U+000d93: SINHALA LETTER AIYANNA*/ + RTUNI_ALPHA, /* U+000d94: SINHALA LETTER OYANNA*/ + RTUNI_ALPHA, /* U+000d95: SINHALA LETTER OOYANNA*/ + RTUNI_ALPHA, /* U+000d96: SINHALA LETTER AUYANNA*/ + 0, /* U+000d97: */ + 0, /* U+000d98: */ + 0, /* U+000d99: */ + RTUNI_ALPHA, /* U+000d9a: SINHALA LETTER ALPAPRAANA KAYANNA*/ + RTUNI_ALPHA, /* U+000d9b: SINHALA LETTER MAHAAPRAANA KAYANNA*/ + RTUNI_ALPHA, /* U+000d9c: SINHALA LETTER ALPAPRAANA GAYANNA*/ + RTUNI_ALPHA, /* U+000d9d: SINHALA LETTER MAHAAPRAANA GAYANNA*/ + RTUNI_ALPHA, /* U+000d9e: SINHALA LETTER KANTAJA NAASIKYAYA*/ + RTUNI_ALPHA, /* U+000d9f: SINHALA LETTER SANYAKA GAYANNA*/ + RTUNI_ALPHA, /* U+000da0: SINHALA LETTER ALPAPRAANA CAYANNA*/ + RTUNI_ALPHA, /* U+000da1: SINHALA LETTER MAHAAPRAANA CAYANNA*/ + RTUNI_ALPHA, /* U+000da2: SINHALA LETTER ALPAPRAANA JAYANNA*/ + RTUNI_ALPHA, /* U+000da3: SINHALA LETTER MAHAAPRAANA JAYANNA*/ + RTUNI_ALPHA, /* U+000da4: SINHALA LETTER TAALUJA NAASIKYAYA*/ + RTUNI_ALPHA, /* U+000da5: SINHALA LETTER TAALUJA SANYOOGA NAAKSIKYAYA*/ + RTUNI_ALPHA, /* U+000da6: SINHALA LETTER SANYAKA JAYANNA*/ + RTUNI_ALPHA, /* U+000da7: SINHALA LETTER ALPAPRAANA TTAYANNA*/ + RTUNI_ALPHA, /* U+000da8: SINHALA LETTER MAHAAPRAANA TTAYANNA*/ + RTUNI_ALPHA, /* U+000da9: SINHALA LETTER ALPAPRAANA DDAYANNA*/ + RTUNI_ALPHA, /* U+000daa: SINHALA LETTER MAHAAPRAANA DDAYANNA*/ + RTUNI_ALPHA, /* U+000dab: SINHALA LETTER MUURDHAJA NAYANNA*/ + RTUNI_ALPHA, /* U+000dac: SINHALA LETTER SANYAKA DDAYANNA*/ + RTUNI_ALPHA, /* U+000dad: SINHALA LETTER ALPAPRAANA TAYANNA*/ + RTUNI_ALPHA, /* U+000dae: SINHALA LETTER MAHAAPRAANA TAYANNA*/ + RTUNI_ALPHA, /* U+000daf: SINHALA LETTER ALPAPRAANA DAYANNA*/ + RTUNI_ALPHA, /* U+000db0: SINHALA LETTER MAHAAPRAANA DAYANNA*/ + RTUNI_ALPHA, /* U+000db1: SINHALA LETTER DANTAJA NAYANNA*/ + 0, /* U+000db2: */ + RTUNI_ALPHA, /* U+000db3: SINHALA LETTER SANYAKA DAYANNA*/ + RTUNI_ALPHA, /* U+000db4: SINHALA LETTER ALPAPRAANA PAYANNA*/ + RTUNI_ALPHA, /* U+000db5: SINHALA LETTER MAHAAPRAANA PAYANNA*/ + RTUNI_ALPHA, /* U+000db6: SINHALA LETTER ALPAPRAANA BAYANNA*/ + RTUNI_ALPHA, /* U+000db7: SINHALA LETTER MAHAAPRAANA BAYANNA*/ + RTUNI_ALPHA, /* U+000db8: SINHALA LETTER MAYANNA*/ + RTUNI_ALPHA, /* U+000db9: SINHALA LETTER AMBA BAYANNA*/ + RTUNI_ALPHA, /* U+000dba: SINHALA LETTER YAYANNA*/ + RTUNI_ALPHA, /* U+000dbb: SINHALA LETTER RAYANNA*/ + 0, /* U+000dbc: */ + RTUNI_ALPHA, /* U+000dbd: SINHALA LETTER DANTAJA LAYANNA*/ + 0, /* U+000dbe: */ + 0, /* U+000dbf: */ + RTUNI_ALPHA, /* U+000dc0: SINHALA LETTER VAYANNA*/ + RTUNI_ALPHA, /* U+000dc1: SINHALA LETTER TAALUJA SAYANNA*/ + RTUNI_ALPHA, /* U+000dc2: SINHALA LETTER MUURDHAJA SAYANNA*/ + RTUNI_ALPHA, /* U+000dc3: SINHALA LETTER DANTAJA SAYANNA*/ + RTUNI_ALPHA, /* U+000dc4: SINHALA LETTER HAYANNA*/ + RTUNI_ALPHA, /* U+000dc5: SINHALA LETTER MUURDHAJA LAYANNA*/ + RTUNI_ALPHA, /* U+000dc6: SINHALA LETTER FAYANNA*/ + 0, /* U+000dc7: */ + 0, /* U+000dc8: */ + 0, /* U+000dc9: */ + 0, /* U+000dca: SINHALA SIGN AL-LAKUNA*/ + 0, /* U+000dcb: */ + 0, /* U+000dcc: */ + 0, /* U+000dcd: */ + 0, /* U+000dce: */ + RTUNI_ALPHA, /* U+000dcf: SINHALA VOWEL SIGN AELA-PILLA*/ + RTUNI_ALPHA, /* U+000dd0: SINHALA VOWEL SIGN KETTI AEDA-PILLA*/ + RTUNI_ALPHA, /* U+000dd1: SINHALA VOWEL SIGN DIGA AEDA-PILLA*/ + RTUNI_ALPHA, /* U+000dd2: SINHALA VOWEL SIGN KETTI IS-PILLA*/ + RTUNI_ALPHA, /* U+000dd3: SINHALA VOWEL SIGN DIGA IS-PILLA*/ + RTUNI_ALPHA, /* U+000dd4: SINHALA VOWEL SIGN KETTI PAA-PILLA*/ + 0, /* U+000dd5: */ + RTUNI_ALPHA, /* U+000dd6: SINHALA VOWEL SIGN DIGA PAA-PILLA*/ + 0, /* U+000dd7: */ + RTUNI_ALPHA, /* U+000dd8: SINHALA VOWEL SIGN GAETTA-PILLA*/ + RTUNI_ALPHA, /* U+000dd9: SINHALA VOWEL SIGN KOMBUVA*/ + RTUNI_ALPHA, /* U+000dda: SINHALA VOWEL SIGN DIGA KOMBUVA*/ + RTUNI_ALPHA, /* U+000ddb: SINHALA VOWEL SIGN KOMBU DEKA*/ + RTUNI_ALPHA, /* U+000ddc: SINHALA VOWEL SIGN KOMBUVA HAA AELA-PILLA*/ + RTUNI_ALPHA, /* U+000ddd: SINHALA VOWEL SIGN KOMBUVA HAA DIGA AELA-PILLA*/ + RTUNI_ALPHA, /* U+000dde: SINHALA VOWEL SIGN KOMBUVA HAA GAYANUKITTA*/ + RTUNI_ALPHA, /* U+000ddf: SINHALA VOWEL SIGN GAYANUKITTA*/ + 0, /* U+000de0: */ + 0, /* U+000de1: */ + 0, /* U+000de2: */ + 0, /* U+000de3: */ + 0, /* U+000de4: */ + 0, /* U+000de5: */ + 0, /* U+000de6: */ + 0, /* U+000de7: */ + 0, /* U+000de8: */ + 0, /* U+000de9: */ + 0, /* U+000dea: */ + 0, /* U+000deb: */ + 0, /* U+000dec: */ + 0, /* U+000ded: */ + 0, /* U+000dee: */ + 0, /* U+000def: */ + 0, /* U+000df0: */ + 0, /* U+000df1: */ + RTUNI_ALPHA, /* U+000df2: SINHALA VOWEL SIGN DIGA GAETTA-PILLA*/ + RTUNI_ALPHA, /* U+000df3: SINHALA VOWEL SIGN DIGA GAYANUKITTA*/ + 0, /* U+000df4: SINHALA PUNCTUATION KUNDDALIYA*/ + 0, /* U+000df5: */ + 0, /* U+000df6: */ + 0, /* U+000df7: */ + 0, /* U+000df8: */ + 0, /* U+000df9: */ + 0, /* U+000dfa: */ + 0, /* U+000dfb: */ + 0, /* U+000dfc: */ + 0, /* U+000dfd: */ + 0, /* U+000dfe: */ + 0, /* U+000dff: */ + 0, /* U+000e00: */ + RTUNI_ALPHA, /* U+000e01: THAI CHARACTER KO KAI*/ + RTUNI_ALPHA, /* U+000e02: THAI CHARACTER KHO KHAI*/ + RTUNI_ALPHA, /* U+000e03: THAI CHARACTER KHO KHUAT*/ + RTUNI_ALPHA, /* U+000e04: THAI CHARACTER KHO KHWAI*/ + RTUNI_ALPHA, /* U+000e05: THAI CHARACTER KHO KHON*/ + RTUNI_ALPHA, /* U+000e06: THAI CHARACTER KHO RAKHANG*/ + RTUNI_ALPHA, /* U+000e07: THAI CHARACTER NGO NGU*/ + RTUNI_ALPHA, /* U+000e08: THAI CHARACTER CHO CHAN*/ + RTUNI_ALPHA, /* U+000e09: THAI CHARACTER CHO CHING*/ + RTUNI_ALPHA, /* U+000e0a: THAI CHARACTER CHO CHANG*/ + RTUNI_ALPHA, /* U+000e0b: THAI CHARACTER SO SO*/ + RTUNI_ALPHA, /* U+000e0c: THAI CHARACTER CHO CHOE*/ + RTUNI_ALPHA, /* U+000e0d: THAI CHARACTER YO YING*/ + RTUNI_ALPHA, /* U+000e0e: THAI CHARACTER DO CHADA*/ + RTUNI_ALPHA, /* U+000e0f: THAI CHARACTER TO PATAK*/ + RTUNI_ALPHA, /* U+000e10: THAI CHARACTER THO THAN*/ + RTUNI_ALPHA, /* U+000e11: THAI CHARACTER THO NANGMONTHO*/ + RTUNI_ALPHA, /* U+000e12: THAI CHARACTER THO PHUTHAO*/ + RTUNI_ALPHA, /* U+000e13: THAI CHARACTER NO NEN*/ + RTUNI_ALPHA, /* U+000e14: THAI CHARACTER DO DEK*/ + RTUNI_ALPHA, /* U+000e15: THAI CHARACTER TO TAO*/ + RTUNI_ALPHA, /* U+000e16: THAI CHARACTER THO THUNG*/ + RTUNI_ALPHA, /* U+000e17: THAI CHARACTER THO THAHAN*/ + RTUNI_ALPHA, /* U+000e18: THAI CHARACTER THO THONG*/ + RTUNI_ALPHA, /* U+000e19: THAI CHARACTER NO NU*/ + RTUNI_ALPHA, /* U+000e1a: THAI CHARACTER BO BAIMAI*/ + RTUNI_ALPHA, /* U+000e1b: THAI CHARACTER PO PLA*/ + RTUNI_ALPHA, /* U+000e1c: THAI CHARACTER PHO PHUNG*/ + RTUNI_ALPHA, /* U+000e1d: THAI CHARACTER FO FA*/ + RTUNI_ALPHA, /* U+000e1e: THAI CHARACTER PHO PHAN*/ + RTUNI_ALPHA, /* U+000e1f: THAI CHARACTER FO FAN*/ + RTUNI_ALPHA, /* U+000e20: THAI CHARACTER PHO SAMPHAO*/ + RTUNI_ALPHA, /* U+000e21: THAI CHARACTER MO MA*/ + RTUNI_ALPHA, /* U+000e22: THAI CHARACTER YO YAK*/ + RTUNI_ALPHA, /* U+000e23: THAI CHARACTER RO RUA*/ + RTUNI_ALPHA, /* U+000e24: THAI CHARACTER RU*/ + RTUNI_ALPHA, /* U+000e25: THAI CHARACTER LO LING*/ + RTUNI_ALPHA, /* U+000e26: THAI CHARACTER LU*/ + RTUNI_ALPHA, /* U+000e27: THAI CHARACTER WO WAEN*/ + RTUNI_ALPHA, /* U+000e28: THAI CHARACTER SO SALA*/ + RTUNI_ALPHA, /* U+000e29: THAI CHARACTER SO RUSI*/ + RTUNI_ALPHA, /* U+000e2a: THAI CHARACTER SO SUA*/ + RTUNI_ALPHA, /* U+000e2b: THAI CHARACTER HO HIP*/ + RTUNI_ALPHA, /* U+000e2c: THAI CHARACTER LO CHULA*/ + RTUNI_ALPHA, /* U+000e2d: THAI CHARACTER O ANG*/ + RTUNI_ALPHA, /* U+000e2e: THAI CHARACTER HO NOKHUK*/ + RTUNI_ALPHA, /* U+000e2f: THAI CHARACTER PAIYANNOI*/ + RTUNI_ALPHA, /* U+000e30: THAI CHARACTER SARA A*/ + RTUNI_ALPHA, /* U+000e31: THAI CHARACTER MAI HAN-AKAT*/ + RTUNI_ALPHA, /* U+000e32: THAI CHARACTER SARA AA*/ + RTUNI_ALPHA, /* U+000e33: THAI CHARACTER SARA AM*/ + RTUNI_ALPHA, /* U+000e34: THAI CHARACTER SARA I*/ + RTUNI_ALPHA, /* U+000e35: THAI CHARACTER SARA II*/ + RTUNI_ALPHA, /* U+000e36: THAI CHARACTER SARA UE*/ + RTUNI_ALPHA, /* U+000e37: THAI CHARACTER SARA UEE*/ + RTUNI_ALPHA, /* U+000e38: THAI CHARACTER SARA U*/ + RTUNI_ALPHA, /* U+000e39: THAI CHARACTER SARA UU*/ + RTUNI_ALPHA, /* U+000e3a: THAI CHARACTER PHINTHU*/ + 0, /* U+000e3b: */ + 0, /* U+000e3c: */ + 0, /* U+000e3d: */ + 0, /* U+000e3e: */ + 0, /* U+000e3f: THAI CURRENCY SYMBOL BAHT*/ + RTUNI_ALPHA, /* U+000e40: THAI CHARACTER SARA E*/ + RTUNI_ALPHA, /* U+000e41: THAI CHARACTER SARA AE*/ + RTUNI_ALPHA, /* U+000e42: THAI CHARACTER SARA O*/ + RTUNI_ALPHA, /* U+000e43: THAI CHARACTER SARA AI MAIMUAN*/ + RTUNI_ALPHA, /* U+000e44: THAI CHARACTER SARA AI MAIMALAI*/ + RTUNI_ALPHA, /* U+000e45: THAI CHARACTER LAKKHANGYAO*/ + RTUNI_ALPHA, /* U+000e46: THAI CHARACTER MAIYAMOK*/ + 0, /* U+000e47: THAI CHARACTER MAITAIKHU*/ + 0, /* U+000e48: THAI CHARACTER MAI EK*/ + 0, /* U+000e49: THAI CHARACTER MAI THO*/ + 0, /* U+000e4a: THAI CHARACTER MAI TRI*/ + 0, /* U+000e4b: THAI CHARACTER MAI CHATTAWA*/ + 0, /* U+000e4c: THAI CHARACTER THANTHAKHAT*/ + RTUNI_ALPHA, /* U+000e4d: THAI CHARACTER NIKHAHIT*/ + 0, /* U+000e4e: THAI CHARACTER YAMAKKAN*/ + 0, /* U+000e4f: THAI CHARACTER FONGMAN*/ + RTUNI_DDIGIT, /* U+000e50: THAI DIGIT ZERO*/ + RTUNI_DDIGIT, /* U+000e51: THAI DIGIT ONE*/ + RTUNI_DDIGIT, /* U+000e52: THAI DIGIT TWO*/ + RTUNI_DDIGIT, /* U+000e53: THAI DIGIT THREE*/ + RTUNI_DDIGIT, /* U+000e54: THAI DIGIT FOUR*/ + RTUNI_DDIGIT, /* U+000e55: THAI DIGIT FIVE*/ + RTUNI_DDIGIT, /* U+000e56: THAI DIGIT SIX*/ + RTUNI_DDIGIT, /* U+000e57: THAI DIGIT SEVEN*/ + RTUNI_DDIGIT, /* U+000e58: THAI DIGIT EIGHT*/ + RTUNI_DDIGIT, /* U+000e59: THAI DIGIT NINE*/ + 0, /* U+000e5a: THAI CHARACTER ANGKHANKHU*/ + 0, /* U+000e5b: THAI CHARACTER KHOMUT*/ + 0, /* U+000e5c: */ + 0, /* U+000e5d: */ + 0, /* U+000e5e: */ + 0, /* U+000e5f: */ + 0, /* U+000e60: */ + 0, /* U+000e61: */ + 0, /* U+000e62: */ + 0, /* U+000e63: */ + 0, /* U+000e64: */ + 0, /* U+000e65: */ + 0, /* U+000e66: */ + 0, /* U+000e67: */ + 0, /* U+000e68: */ + 0, /* U+000e69: */ + 0, /* U+000e6a: */ + 0, /* U+000e6b: */ + 0, /* U+000e6c: */ + 0, /* U+000e6d: */ + 0, /* U+000e6e: */ + 0, /* U+000e6f: */ + 0, /* U+000e70: */ + 0, /* U+000e71: */ + 0, /* U+000e72: */ + 0, /* U+000e73: */ + 0, /* U+000e74: */ + 0, /* U+000e75: */ + 0, /* U+000e76: */ + 0, /* U+000e77: */ + 0, /* U+000e78: */ + 0, /* U+000e79: */ + 0, /* U+000e7a: */ + 0, /* U+000e7b: */ + 0, /* U+000e7c: */ + 0, /* U+000e7d: */ + 0, /* U+000e7e: */ + 0, /* U+000e7f: */ + 0, /* U+000e80: */ + RTUNI_ALPHA, /* U+000e81: LAO LETTER KO*/ + RTUNI_ALPHA, /* U+000e82: LAO LETTER KHO SUNG*/ + 0, /* U+000e83: */ + RTUNI_ALPHA, /* U+000e84: LAO LETTER KHO TAM*/ + 0, /* U+000e85: */ + 0, /* U+000e86: */ + RTUNI_ALPHA, /* U+000e87: LAO LETTER NGO*/ + RTUNI_ALPHA, /* U+000e88: LAO LETTER CO*/ + 0, /* U+000e89: */ + RTUNI_ALPHA, /* U+000e8a: LAO LETTER SO TAM*/ + 0, /* U+000e8b: */ + 0, /* U+000e8c: */ + RTUNI_ALPHA, /* U+000e8d: LAO LETTER NYO*/ + 0, /* U+000e8e: */ + 0, /* U+000e8f: */ + 0, /* U+000e90: */ + 0, /* U+000e91: */ + 0, /* U+000e92: */ + 0, /* U+000e93: */ + RTUNI_ALPHA, /* U+000e94: LAO LETTER DO*/ + RTUNI_ALPHA, /* U+000e95: LAO LETTER TO*/ + RTUNI_ALPHA, /* U+000e96: LAO LETTER THO SUNG*/ + RTUNI_ALPHA, /* U+000e97: LAO LETTER THO TAM*/ + 0, /* U+000e98: */ + RTUNI_ALPHA, /* U+000e99: LAO LETTER NO*/ + RTUNI_ALPHA, /* U+000e9a: LAO LETTER BO*/ + RTUNI_ALPHA, /* U+000e9b: LAO LETTER PO*/ + RTUNI_ALPHA, /* U+000e9c: LAO LETTER PHO SUNG*/ + RTUNI_ALPHA, /* U+000e9d: LAO LETTER FO TAM*/ + RTUNI_ALPHA, /* U+000e9e: LAO LETTER PHO TAM*/ + RTUNI_ALPHA, /* U+000e9f: LAO LETTER FO SUNG*/ + 0, /* U+000ea0: */ + RTUNI_ALPHA, /* U+000ea1: LAO LETTER MO*/ + RTUNI_ALPHA, /* U+000ea2: LAO LETTER YO*/ + RTUNI_ALPHA, /* U+000ea3: LAO LETTER LO LING*/ + 0, /* U+000ea4: */ + RTUNI_ALPHA, /* U+000ea5: LAO LETTER LO LOOT*/ + 0, /* U+000ea6: */ + RTUNI_ALPHA, /* U+000ea7: LAO LETTER WO*/ + 0, /* U+000ea8: */ + 0, /* U+000ea9: */ + RTUNI_ALPHA, /* U+000eaa: LAO LETTER SO SUNG*/ + RTUNI_ALPHA, /* U+000eab: LAO LETTER HO SUNG*/ + 0, /* U+000eac: */ + RTUNI_ALPHA, /* U+000ead: LAO LETTER O*/ + RTUNI_ALPHA, /* U+000eae: LAO LETTER HO TAM*/ + RTUNI_ALPHA, /* U+000eaf: LAO ELLIPSIS*/ + RTUNI_ALPHA, /* U+000eb0: LAO VOWEL SIGN A*/ + RTUNI_ALPHA, /* U+000eb1: LAO VOWEL SIGN MAI KAN*/ + RTUNI_ALPHA, /* U+000eb2: LAO VOWEL SIGN AA*/ + RTUNI_ALPHA, /* U+000eb3: LAO VOWEL SIGN AM*/ + RTUNI_ALPHA, /* U+000eb4: LAO VOWEL SIGN I*/ + RTUNI_ALPHA, /* U+000eb5: LAO VOWEL SIGN II*/ + RTUNI_ALPHA, /* U+000eb6: LAO VOWEL SIGN Y*/ + RTUNI_ALPHA, /* U+000eb7: LAO VOWEL SIGN YY*/ + RTUNI_ALPHA, /* U+000eb8: LAO VOWEL SIGN U*/ + RTUNI_ALPHA, /* U+000eb9: LAO VOWEL SIGN UU*/ + 0, /* U+000eba: */ + RTUNI_ALPHA, /* U+000ebb: LAO VOWEL SIGN MAI KON*/ + RTUNI_ALPHA, /* U+000ebc: LAO SEMIVOWEL SIGN LO*/ + RTUNI_ALPHA, /* U+000ebd: LAO SEMIVOWEL SIGN NYO*/ + 0, /* U+000ebe: */ + 0, /* U+000ebf: */ + RTUNI_ALPHA, /* U+000ec0: LAO VOWEL SIGN E*/ + RTUNI_ALPHA, /* U+000ec1: LAO VOWEL SIGN EI*/ + RTUNI_ALPHA, /* U+000ec2: LAO VOWEL SIGN O*/ + RTUNI_ALPHA, /* U+000ec3: LAO VOWEL SIGN AY*/ + RTUNI_ALPHA, /* U+000ec4: LAO VOWEL SIGN AI*/ + 0, /* U+000ec5: */ + RTUNI_ALPHA, /* U+000ec6: LAO KO LA*/ + 0, /* U+000ec7: */ + 0, /* U+000ec8: LAO TONE MAI EK*/ + 0, /* U+000ec9: LAO TONE MAI THO*/ + 0, /* U+000eca: LAO TONE MAI TI*/ + 0, /* U+000ecb: LAO TONE MAI CATAWA*/ + 0, /* U+000ecc: LAO CANCELLATION MARK*/ + RTUNI_ALPHA, /* U+000ecd: LAO NIGGAHITA*/ + 0, /* U+000ece: */ + 0, /* U+000ecf: */ + RTUNI_DDIGIT, /* U+000ed0: LAO DIGIT ZERO*/ + RTUNI_DDIGIT, /* U+000ed1: LAO DIGIT ONE*/ + RTUNI_DDIGIT, /* U+000ed2: LAO DIGIT TWO*/ + RTUNI_DDIGIT, /* U+000ed3: LAO DIGIT THREE*/ + RTUNI_DDIGIT, /* U+000ed4: LAO DIGIT FOUR*/ + RTUNI_DDIGIT, /* U+000ed5: LAO DIGIT FIVE*/ + RTUNI_DDIGIT, /* U+000ed6: LAO DIGIT SIX*/ + RTUNI_DDIGIT, /* U+000ed7: LAO DIGIT SEVEN*/ + RTUNI_DDIGIT, /* U+000ed8: LAO DIGIT EIGHT*/ + RTUNI_DDIGIT, /* U+000ed9: LAO DIGIT NINE*/ + 0, /* U+000eda: */ + 0, /* U+000edb: */ + RTUNI_ALPHA, /* U+000edc: LAO HO NO*/ + RTUNI_ALPHA, /* U+000edd: LAO HO MO*/ + RTUNI_ALPHA, /* U+000ede: LAO LETTER KHMU GO*/ + RTUNI_ALPHA, /* U+000edf: LAO LETTER KHMU NYO*/ + 0, /* U+000ee0: */ + 0, /* U+000ee1: */ + 0, /* U+000ee2: */ + 0, /* U+000ee3: */ + 0, /* U+000ee4: */ + 0, /* U+000ee5: */ + 0, /* U+000ee6: */ + 0, /* U+000ee7: */ + 0, /* U+000ee8: */ + 0, /* U+000ee9: */ + 0, /* U+000eea: */ + 0, /* U+000eeb: */ + 0, /* U+000eec: */ + 0, /* U+000eed: */ + 0, /* U+000eee: */ + 0, /* U+000eef: */ + 0, /* U+000ef0: */ + 0, /* U+000ef1: */ + 0, /* U+000ef2: */ + 0, /* U+000ef3: */ + 0, /* U+000ef4: */ + 0, /* U+000ef5: */ + 0, /* U+000ef6: */ + 0, /* U+000ef7: */ + 0, /* U+000ef8: */ + 0, /* U+000ef9: */ + 0, /* U+000efa: */ + 0, /* U+000efb: */ + 0, /* U+000efc: */ + 0, /* U+000efd: */ + 0, /* U+000efe: */ + 0, /* U+000eff: */ + RTUNI_ALPHA, /* U+000f00: TIBETAN SYLLABLE OM*/ + 0, /* U+000f01: TIBETAN MARK GTER YIG MGO TRUNCATED A*/ + 0, /* U+000f02: TIBETAN MARK GTER YIG MGO -UM RNAM BCAD MA*/ + 0, /* U+000f03: TIBETAN MARK GTER YIG MGO -UM GTER TSHEG MA*/ + 0, /* U+000f04: TIBETAN MARK INITIAL YIG MGO MDUN MA*/ + 0, /* U+000f05: TIBETAN MARK CLOSING YIG MGO SGAB MA*/ + 0, /* U+000f06: TIBETAN MARK CARET YIG MGO PHUR SHAD MA*/ + 0, /* U+000f07: TIBETAN MARK YIG MGO TSHEG SHAD MA*/ + 0, /* U+000f08: TIBETAN MARK SBRUL SHAD*/ + 0, /* U+000f09: TIBETAN MARK BSKUR YIG MGO*/ + 0, /* U+000f0a: TIBETAN MARK BKA- SHOG YIG MGO*/ + 0, /* U+000f0b: TIBETAN MARK INTERSYLLABIC TSHEG*/ + 0, /* U+000f0c: TIBETAN MARK DELIMITER TSHEG BSTAR*/ + 0, /* U+000f0d: TIBETAN MARK SHAD*/ + 0, /* U+000f0e: TIBETAN MARK NYIS SHAD*/ + 0, /* U+000f0f: TIBETAN MARK TSHEG SHAD*/ + 0, /* U+000f10: TIBETAN MARK NYIS TSHEG SHAD*/ + 0, /* U+000f11: TIBETAN MARK RIN CHEN SPUNGS SHAD*/ + 0, /* U+000f12: TIBETAN MARK RGYA GRAM SHAD*/ + 0, /* U+000f13: TIBETAN MARK CARET -DZUD RTAGS ME LONG CAN*/ + 0, /* U+000f14: TIBETAN MARK GTER TSHEG*/ + 0, /* U+000f15: TIBETAN LOGOTYPE SIGN CHAD RTAGS*/ + 0, /* U+000f16: TIBETAN LOGOTYPE SIGN LHAG RTAGS*/ + 0, /* U+000f17: TIBETAN ASTROLOGICAL SIGN SGRA GCAN -CHAR RTAGS*/ + 0, /* U+000f18: TIBETAN ASTROLOGICAL SIGN -KHYUD PA*/ + 0, /* U+000f19: TIBETAN ASTROLOGICAL SIGN SDONG TSHUGS*/ + 0, /* U+000f1a: TIBETAN SIGN RDEL DKAR GCIG*/ + 0, /* U+000f1b: TIBETAN SIGN RDEL DKAR GNYIS*/ + 0, /* U+000f1c: TIBETAN SIGN RDEL DKAR GSUM*/ + 0, /* U+000f1d: TIBETAN SIGN RDEL NAG GCIG*/ + 0, /* U+000f1e: TIBETAN SIGN RDEL NAG GNYIS*/ + 0, /* U+000f1f: TIBETAN SIGN RDEL DKAR RDEL NAG*/ + RTUNI_DDIGIT, /* U+000f20: TIBETAN DIGIT ZERO*/ + RTUNI_DDIGIT, /* U+000f21: TIBETAN DIGIT ONE*/ + RTUNI_DDIGIT, /* U+000f22: TIBETAN DIGIT TWO*/ + RTUNI_DDIGIT, /* U+000f23: TIBETAN DIGIT THREE*/ + RTUNI_DDIGIT, /* U+000f24: TIBETAN DIGIT FOUR*/ + RTUNI_DDIGIT, /* U+000f25: TIBETAN DIGIT FIVE*/ + RTUNI_DDIGIT, /* U+000f26: TIBETAN DIGIT SIX*/ + RTUNI_DDIGIT, /* U+000f27: TIBETAN DIGIT SEVEN*/ + RTUNI_DDIGIT, /* U+000f28: TIBETAN DIGIT EIGHT*/ + RTUNI_DDIGIT, /* U+000f29: TIBETAN DIGIT NINE*/ + 0, /* U+000f2a: TIBETAN DIGIT HALF ONE*/ + 0, /* U+000f2b: TIBETAN DIGIT HALF TWO*/ + 0, /* U+000f2c: TIBETAN DIGIT HALF THREE*/ + 0, /* U+000f2d: TIBETAN DIGIT HALF FOUR*/ + 0, /* U+000f2e: TIBETAN DIGIT HALF FIVE*/ + 0, /* U+000f2f: TIBETAN DIGIT HALF SIX*/ + 0, /* U+000f30: TIBETAN DIGIT HALF SEVEN*/ + 0, /* U+000f31: TIBETAN DIGIT HALF EIGHT*/ + 0, /* U+000f32: TIBETAN DIGIT HALF NINE*/ + 0, /* U+000f33: TIBETAN DIGIT HALF ZERO*/ + 0, /* U+000f34: TIBETAN MARK BSDUS RTAGS*/ + 0, /* U+000f35: TIBETAN MARK NGAS BZUNG NYI ZLA*/ + 0, /* U+000f36: TIBETAN MARK CARET -DZUD RTAGS BZHI MIG CAN*/ + 0, /* U+000f37: TIBETAN MARK NGAS BZUNG SGOR RTAGS*/ + 0, /* U+000f38: TIBETAN MARK CHE MGO*/ + 0, /* U+000f39: TIBETAN MARK TSA -PHRU*/ + 0, /* U+000f3a: TIBETAN MARK GUG RTAGS GYON*/ + 0, /* U+000f3b: TIBETAN MARK GUG RTAGS GYAS*/ + 0, /* U+000f3c: TIBETAN MARK ANG KHANG GYON*/ + 0, /* U+000f3d: TIBETAN MARK ANG KHANG GYAS*/ + 0, /* U+000f3e: TIBETAN SIGN YAR TSHES*/ + 0, /* U+000f3f: TIBETAN SIGN MAR TSHES*/ + RTUNI_ALPHA, /* U+000f40: TIBETAN LETTER KA*/ + RTUNI_ALPHA, /* U+000f41: TIBETAN LETTER KHA*/ + RTUNI_ALPHA, /* U+000f42: TIBETAN LETTER GA*/ + RTUNI_ALPHA, /* U+000f43: TIBETAN LETTER GHA*/ + RTUNI_ALPHA, /* U+000f44: TIBETAN LETTER NGA*/ + RTUNI_ALPHA, /* U+000f45: TIBETAN LETTER CA*/ + RTUNI_ALPHA, /* U+000f46: TIBETAN LETTER CHA*/ + RTUNI_ALPHA, /* U+000f47: TIBETAN LETTER JA*/ + 0, /* U+000f48: */ + RTUNI_ALPHA, /* U+000f49: TIBETAN LETTER NYA*/ + RTUNI_ALPHA, /* U+000f4a: TIBETAN LETTER TTA*/ + RTUNI_ALPHA, /* U+000f4b: TIBETAN LETTER TTHA*/ + RTUNI_ALPHA, /* U+000f4c: TIBETAN LETTER DDA*/ + RTUNI_ALPHA, /* U+000f4d: TIBETAN LETTER DDHA*/ + RTUNI_ALPHA, /* U+000f4e: TIBETAN LETTER NNA*/ + RTUNI_ALPHA, /* U+000f4f: TIBETAN LETTER TA*/ + RTUNI_ALPHA, /* U+000f50: TIBETAN LETTER THA*/ + RTUNI_ALPHA, /* U+000f51: TIBETAN LETTER DA*/ + RTUNI_ALPHA, /* U+000f52: TIBETAN LETTER DHA*/ + RTUNI_ALPHA, /* U+000f53: TIBETAN LETTER NA*/ + RTUNI_ALPHA, /* U+000f54: TIBETAN LETTER PA*/ + RTUNI_ALPHA, /* U+000f55: TIBETAN LETTER PHA*/ + RTUNI_ALPHA, /* U+000f56: TIBETAN LETTER BA*/ + RTUNI_ALPHA, /* U+000f57: TIBETAN LETTER BHA*/ + RTUNI_ALPHA, /* U+000f58: TIBETAN LETTER MA*/ + RTUNI_ALPHA, /* U+000f59: TIBETAN LETTER TSA*/ + RTUNI_ALPHA, /* U+000f5a: TIBETAN LETTER TSHA*/ + RTUNI_ALPHA, /* U+000f5b: TIBETAN LETTER DZA*/ + RTUNI_ALPHA, /* U+000f5c: TIBETAN LETTER DZHA*/ + RTUNI_ALPHA, /* U+000f5d: TIBETAN LETTER WA*/ + RTUNI_ALPHA, /* U+000f5e: TIBETAN LETTER ZHA*/ + RTUNI_ALPHA, /* U+000f5f: TIBETAN LETTER ZA*/ + RTUNI_ALPHA, /* U+000f60: TIBETAN LETTER -A*/ + RTUNI_ALPHA, /* U+000f61: TIBETAN LETTER YA*/ + RTUNI_ALPHA, /* U+000f62: TIBETAN LETTER RA*/ + RTUNI_ALPHA, /* U+000f63: TIBETAN LETTER LA*/ + RTUNI_ALPHA, /* U+000f64: TIBETAN LETTER SHA*/ + RTUNI_ALPHA, /* U+000f65: TIBETAN LETTER SSA*/ + RTUNI_ALPHA, /* U+000f66: TIBETAN LETTER SA*/ + RTUNI_ALPHA, /* U+000f67: TIBETAN LETTER HA*/ + RTUNI_ALPHA, /* U+000f68: TIBETAN LETTER A*/ + RTUNI_ALPHA, /* U+000f69: TIBETAN LETTER KSSA*/ + RTUNI_ALPHA, /* U+000f6a: TIBETAN LETTER FIXED-FORM RA*/ + RTUNI_ALPHA, /* U+000f6b: TIBETAN LETTER KKA*/ + RTUNI_ALPHA, /* U+000f6c: TIBETAN LETTER RRA*/ + 0, /* U+000f6d: */ + 0, /* U+000f6e: */ + 0, /* U+000f6f: */ + 0, /* U+000f70: */ + RTUNI_ALPHA, /* U+000f71: TIBETAN VOWEL SIGN AA*/ + RTUNI_ALPHA, /* U+000f72: TIBETAN VOWEL SIGN I*/ + RTUNI_ALPHA, /* U+000f73: TIBETAN VOWEL SIGN II*/ + RTUNI_ALPHA, /* U+000f74: TIBETAN VOWEL SIGN U*/ + RTUNI_ALPHA, /* U+000f75: TIBETAN VOWEL SIGN UU*/ + RTUNI_ALPHA, /* U+000f76: TIBETAN VOWEL SIGN VOCALIC R*/ + RTUNI_ALPHA, /* U+000f77: TIBETAN VOWEL SIGN VOCALIC RR*/ + RTUNI_ALPHA, /* U+000f78: TIBETAN VOWEL SIGN VOCALIC L*/ + RTUNI_ALPHA, /* U+000f79: TIBETAN VOWEL SIGN VOCALIC LL*/ + RTUNI_ALPHA, /* U+000f7a: TIBETAN VOWEL SIGN E*/ + RTUNI_ALPHA, /* U+000f7b: TIBETAN VOWEL SIGN EE*/ + RTUNI_ALPHA, /* U+000f7c: TIBETAN VOWEL SIGN O*/ + RTUNI_ALPHA, /* U+000f7d: TIBETAN VOWEL SIGN OO*/ + RTUNI_ALPHA, /* U+000f7e: TIBETAN SIGN RJES SU NGA RO*/ + RTUNI_ALPHA, /* U+000f7f: TIBETAN SIGN RNAM BCAD*/ + RTUNI_ALPHA, /* U+000f80: TIBETAN VOWEL SIGN REVERSED I*/ + RTUNI_ALPHA, /* U+000f81: TIBETAN VOWEL SIGN REVERSED II*/ + 0, /* U+000f82: TIBETAN SIGN NYI ZLA NAA DA*/ + 0, /* U+000f83: TIBETAN SIGN SNA LDAN*/ + 0, /* U+000f84: TIBETAN MARK HALANTA*/ + 0, /* U+000f85: TIBETAN MARK PALUTA*/ + 0, /* U+000f86: TIBETAN SIGN LCI RTAGS*/ + 0, /* U+000f87: TIBETAN SIGN YANG RTAGS*/ + RTUNI_ALPHA, /* U+000f88: TIBETAN SIGN LCE TSA CAN*/ + RTUNI_ALPHA, /* U+000f89: TIBETAN SIGN MCHU CAN*/ + RTUNI_ALPHA, /* U+000f8a: TIBETAN SIGN GRU CAN RGYINGS*/ + RTUNI_ALPHA, /* U+000f8b: TIBETAN SIGN GRU MED RGYINGS*/ + RTUNI_ALPHA, /* U+000f8c: TIBETAN SIGN INVERTED MCHU CAN*/ + RTUNI_ALPHA, /* U+000f8d: TIBETAN SUBJOINED SIGN LCE TSA CAN*/ + RTUNI_ALPHA, /* U+000f8e: TIBETAN SUBJOINED SIGN MCHU CAN*/ + RTUNI_ALPHA, /* U+000f8f: TIBETAN SUBJOINED SIGN INVERTED MCHU CAN*/ + RTUNI_ALPHA, /* U+000f90: TIBETAN SUBJOINED LETTER KA*/ + RTUNI_ALPHA, /* U+000f91: TIBETAN SUBJOINED LETTER KHA*/ + RTUNI_ALPHA, /* U+000f92: TIBETAN SUBJOINED LETTER GA*/ + RTUNI_ALPHA, /* U+000f93: TIBETAN SUBJOINED LETTER GHA*/ + RTUNI_ALPHA, /* U+000f94: TIBETAN SUBJOINED LETTER NGA*/ + RTUNI_ALPHA, /* U+000f95: TIBETAN SUBJOINED LETTER CA*/ + RTUNI_ALPHA, /* U+000f96: TIBETAN SUBJOINED LETTER CHA*/ + RTUNI_ALPHA, /* U+000f97: TIBETAN SUBJOINED LETTER JA*/ + 0, /* U+000f98: */ + RTUNI_ALPHA, /* U+000f99: TIBETAN SUBJOINED LETTER NYA*/ + RTUNI_ALPHA, /* U+000f9a: TIBETAN SUBJOINED LETTER TTA*/ + RTUNI_ALPHA, /* U+000f9b: TIBETAN SUBJOINED LETTER TTHA*/ + RTUNI_ALPHA, /* U+000f9c: TIBETAN SUBJOINED LETTER DDA*/ + RTUNI_ALPHA, /* U+000f9d: TIBETAN SUBJOINED LETTER DDHA*/ + RTUNI_ALPHA, /* U+000f9e: TIBETAN SUBJOINED LETTER NNA*/ + RTUNI_ALPHA, /* U+000f9f: TIBETAN SUBJOINED LETTER TA*/ + RTUNI_ALPHA, /* U+000fa0: TIBETAN SUBJOINED LETTER THA*/ + RTUNI_ALPHA, /* U+000fa1: TIBETAN SUBJOINED LETTER DA*/ + RTUNI_ALPHA, /* U+000fa2: TIBETAN SUBJOINED LETTER DHA*/ + RTUNI_ALPHA, /* U+000fa3: TIBETAN SUBJOINED LETTER NA*/ + RTUNI_ALPHA, /* U+000fa4: TIBETAN SUBJOINED LETTER PA*/ + RTUNI_ALPHA, /* U+000fa5: TIBETAN SUBJOINED LETTER PHA*/ + RTUNI_ALPHA, /* U+000fa6: TIBETAN SUBJOINED LETTER BA*/ + RTUNI_ALPHA, /* U+000fa7: TIBETAN SUBJOINED LETTER BHA*/ + RTUNI_ALPHA, /* U+000fa8: TIBETAN SUBJOINED LETTER MA*/ + RTUNI_ALPHA, /* U+000fa9: TIBETAN SUBJOINED LETTER TSA*/ + RTUNI_ALPHA, /* U+000faa: TIBETAN SUBJOINED LETTER TSHA*/ + RTUNI_ALPHA, /* U+000fab: TIBETAN SUBJOINED LETTER DZA*/ + RTUNI_ALPHA, /* U+000fac: TIBETAN SUBJOINED LETTER DZHA*/ + RTUNI_ALPHA, /* U+000fad: TIBETAN SUBJOINED LETTER WA*/ + RTUNI_ALPHA, /* U+000fae: TIBETAN SUBJOINED LETTER ZHA*/ + RTUNI_ALPHA, /* U+000faf: TIBETAN SUBJOINED LETTER ZA*/ + RTUNI_ALPHA, /* U+000fb0: TIBETAN SUBJOINED LETTER -A*/ + RTUNI_ALPHA, /* U+000fb1: TIBETAN SUBJOINED LETTER YA*/ + RTUNI_ALPHA, /* U+000fb2: TIBETAN SUBJOINED LETTER RA*/ + RTUNI_ALPHA, /* U+000fb3: TIBETAN SUBJOINED LETTER LA*/ + RTUNI_ALPHA, /* U+000fb4: TIBETAN SUBJOINED LETTER SHA*/ + RTUNI_ALPHA, /* U+000fb5: TIBETAN SUBJOINED LETTER SSA*/ + RTUNI_ALPHA, /* U+000fb6: TIBETAN SUBJOINED LETTER SA*/ + RTUNI_ALPHA, /* U+000fb7: TIBETAN SUBJOINED LETTER HA*/ + RTUNI_ALPHA, /* U+000fb8: TIBETAN SUBJOINED LETTER A*/ + RTUNI_ALPHA, /* U+000fb9: TIBETAN SUBJOINED LETTER KSSA*/ + RTUNI_ALPHA, /* U+000fba: TIBETAN SUBJOINED LETTER FIXED-FORM WA*/ + RTUNI_ALPHA, /* U+000fbb: TIBETAN SUBJOINED LETTER FIXED-FORM YA*/ + RTUNI_ALPHA, /* U+000fbc: TIBETAN SUBJOINED LETTER FIXED-FORM RA*/ + 0, /* U+000fbd: */ + 0, /* U+000fbe: TIBETAN KU RU KHA*/ + 0, /* U+000fbf: TIBETAN KU RU KHA BZHI MIG CAN*/ + 0, /* U+000fc0: TIBETAN CANTILLATION SIGN HEAVY BEAT*/ + 0, /* U+000fc1: TIBETAN CANTILLATION SIGN LIGHT BEAT*/ + 0, /* U+000fc2: TIBETAN CANTILLATION SIGN CANG TE-U*/ + 0, /* U+000fc3: TIBETAN CANTILLATION SIGN SBUB -CHAL*/ + 0, /* U+000fc4: TIBETAN SYMBOL DRIL BU*/ + 0, /* U+000fc5: TIBETAN SYMBOL RDO RJE*/ + 0, /* U+000fc6: TIBETAN SYMBOL PADMA GDAN*/ + 0, /* U+000fc7: TIBETAN SYMBOL RDO RJE RGYA GRAM*/ + 0, /* U+000fc8: TIBETAN SYMBOL PHUR PA*/ + 0, /* U+000fc9: TIBETAN SYMBOL NOR BU*/ + 0, /* U+000fca: TIBETAN SYMBOL NOR BU NYIS -KHYIL*/ + 0, /* U+000fcb: TIBETAN SYMBOL NOR BU GSUM -KHYIL*/ + 0, /* U+000fcc: TIBETAN SYMBOL NOR BU BZHI -KHYIL*/ + 0, /* U+000fcd: */ + 0, /* U+000fce: TIBETAN SIGN RDEL NAG RDEL DKAR*/ + 0, /* U+000fcf: TIBETAN SIGN RDEL NAG GSUM*/ + 0, /* U+000fd0: TIBETAN MARK BSKA- SHOG GI MGO RGYAN*/ + 0, /* U+000fd1: TIBETAN MARK MNYAM YIG GI MGO RGYAN*/ + 0, /* U+000fd2: TIBETAN MARK NYIS TSHEG*/ + 0, /* U+000fd3: TIBETAN MARK INITIAL BRDA RNYING YIG MGO MDUN MA*/ + 0, /* U+000fd4: TIBETAN MARK CLOSING BRDA RNYING YIG MGO SGAB MA*/ + 0, /* U+000fd5: RIGHT-FACING SVASTI SIGN*/ + 0, /* U+000fd6: LEFT-FACING SVASTI SIGN*/ + 0, /* U+000fd7: RIGHT-FACING SVASTI SIGN WITH DOTS*/ + 0, /* U+000fd8: LEFT-FACING SVASTI SIGN WITH DOTS*/ + 0, /* U+000fd9: TIBETAN MARK LEADING MCHAN RTAGS*/ + 0, /* U+000fda: TIBETAN MARK TRAILING MCHAN RTAGS*/ + 0, /* U+000fdb: */ + 0, /* U+000fdc: */ + 0, /* U+000fdd: */ + 0, /* U+000fde: */ + 0, /* U+000fdf: */ + 0, /* U+000fe0: */ + 0, /* U+000fe1: */ + 0, /* U+000fe2: */ + 0, /* U+000fe3: */ + 0, /* U+000fe4: */ + 0, /* U+000fe5: */ + 0, /* U+000fe6: */ + 0, /* U+000fe7: */ + 0, /* U+000fe8: */ + 0, /* U+000fe9: */ + 0, /* U+000fea: */ + 0, /* U+000feb: */ + 0, /* U+000fec: */ + 0, /* U+000fed: */ + 0, /* U+000fee: */ + 0, /* U+000fef: */ + 0, /* U+000ff0: */ + 0, /* U+000ff1: */ + 0, /* U+000ff2: */ + 0, /* U+000ff3: */ + 0, /* U+000ff4: */ + 0, /* U+000ff5: */ + 0, /* U+000ff6: */ + 0, /* U+000ff7: */ + 0, /* U+000ff8: */ + 0, /* U+000ff9: */ + 0, /* U+000ffa: */ + 0, /* U+000ffb: */ + 0, /* U+000ffc: */ + 0, /* U+000ffd: */ + 0, /* U+000ffe: */ + 0, /* U+000fff: */ + RTUNI_ALPHA, /* U+001000: MYANMAR LETTER KA*/ + RTUNI_ALPHA, /* U+001001: MYANMAR LETTER KHA*/ + RTUNI_ALPHA, /* U+001002: MYANMAR LETTER GA*/ + RTUNI_ALPHA, /* U+001003: MYANMAR LETTER GHA*/ + RTUNI_ALPHA, /* U+001004: MYANMAR LETTER NGA*/ + RTUNI_ALPHA, /* U+001005: MYANMAR LETTER CA*/ + RTUNI_ALPHA, /* U+001006: MYANMAR LETTER CHA*/ + RTUNI_ALPHA, /* U+001007: MYANMAR LETTER JA*/ + RTUNI_ALPHA, /* U+001008: MYANMAR LETTER JHA*/ + RTUNI_ALPHA, /* U+001009: MYANMAR LETTER NYA*/ + RTUNI_ALPHA, /* U+00100a: MYANMAR LETTER NNYA*/ + RTUNI_ALPHA, /* U+00100b: MYANMAR LETTER TTA*/ + RTUNI_ALPHA, /* U+00100c: MYANMAR LETTER TTHA*/ + RTUNI_ALPHA, /* U+00100d: MYANMAR LETTER DDA*/ + RTUNI_ALPHA, /* U+00100e: MYANMAR LETTER DDHA*/ + RTUNI_ALPHA, /* U+00100f: MYANMAR LETTER NNA*/ + RTUNI_ALPHA, /* U+001010: MYANMAR LETTER TA*/ + RTUNI_ALPHA, /* U+001011: MYANMAR LETTER THA*/ + RTUNI_ALPHA, /* U+001012: MYANMAR LETTER DA*/ + RTUNI_ALPHA, /* U+001013: MYANMAR LETTER DHA*/ + RTUNI_ALPHA, /* U+001014: MYANMAR LETTER NA*/ + RTUNI_ALPHA, /* U+001015: MYANMAR LETTER PA*/ + RTUNI_ALPHA, /* U+001016: MYANMAR LETTER PHA*/ + RTUNI_ALPHA, /* U+001017: MYANMAR LETTER BA*/ + RTUNI_ALPHA, /* U+001018: MYANMAR LETTER BHA*/ + RTUNI_ALPHA, /* U+001019: MYANMAR LETTER MA*/ + RTUNI_ALPHA, /* U+00101a: MYANMAR LETTER YA*/ + RTUNI_ALPHA, /* U+00101b: MYANMAR LETTER RA*/ + RTUNI_ALPHA, /* U+00101c: MYANMAR LETTER LA*/ + RTUNI_ALPHA, /* U+00101d: MYANMAR LETTER WA*/ + RTUNI_ALPHA, /* U+00101e: MYANMAR LETTER SA*/ + RTUNI_ALPHA, /* U+00101f: MYANMAR LETTER HA*/ + RTUNI_ALPHA, /* U+001020: MYANMAR LETTER LLA*/ + RTUNI_ALPHA, /* U+001021: MYANMAR LETTER A*/ + RTUNI_ALPHA, /* U+001022: MYANMAR LETTER SHAN A*/ + RTUNI_ALPHA, /* U+001023: MYANMAR LETTER I*/ + RTUNI_ALPHA, /* U+001024: MYANMAR LETTER II*/ + RTUNI_ALPHA, /* U+001025: MYANMAR LETTER U*/ + RTUNI_ALPHA, /* U+001026: MYANMAR LETTER UU*/ + RTUNI_ALPHA, /* U+001027: MYANMAR LETTER E*/ + RTUNI_ALPHA, /* U+001028: MYANMAR LETTER MON E*/ + RTUNI_ALPHA, /* U+001029: MYANMAR LETTER O*/ + RTUNI_ALPHA, /* U+00102a: MYANMAR LETTER AU*/ + RTUNI_ALPHA, /* U+00102b: MYANMAR VOWEL SIGN TALL AA*/ + RTUNI_ALPHA, /* U+00102c: MYANMAR VOWEL SIGN AA*/ + RTUNI_ALPHA, /* U+00102d: MYANMAR VOWEL SIGN I*/ + RTUNI_ALPHA, /* U+00102e: MYANMAR VOWEL SIGN II*/ + RTUNI_ALPHA, /* U+00102f: MYANMAR VOWEL SIGN U*/ + RTUNI_ALPHA, /* U+001030: MYANMAR VOWEL SIGN UU*/ + RTUNI_ALPHA, /* U+001031: MYANMAR VOWEL SIGN E*/ + RTUNI_ALPHA, /* U+001032: MYANMAR VOWEL SIGN AI*/ + RTUNI_ALPHA, /* U+001033: MYANMAR VOWEL SIGN MON II*/ + RTUNI_ALPHA, /* U+001034: MYANMAR VOWEL SIGN MON O*/ + RTUNI_ALPHA, /* U+001035: MYANMAR VOWEL SIGN E ABOVE*/ + RTUNI_ALPHA, /* U+001036: MYANMAR SIGN ANUSVARA*/ + 0, /* U+001037: MYANMAR SIGN DOT BELOW*/ + RTUNI_ALPHA, /* U+001038: MYANMAR SIGN VISARGA*/ + 0, /* U+001039: MYANMAR SIGN VIRAMA*/ + 0, /* U+00103a: MYANMAR SIGN ASAT*/ + RTUNI_ALPHA, /* U+00103b: MYANMAR CONSONANT SIGN MEDIAL YA*/ + RTUNI_ALPHA, /* U+00103c: MYANMAR CONSONANT SIGN MEDIAL RA*/ + RTUNI_ALPHA, /* U+00103d: MYANMAR CONSONANT SIGN MEDIAL WA*/ + RTUNI_ALPHA, /* U+00103e: MYANMAR CONSONANT SIGN MEDIAL HA*/ + RTUNI_ALPHA, /* U+00103f: MYANMAR LETTER GREAT SA*/ + RTUNI_DDIGIT, /* U+001040: MYANMAR DIGIT ZERO*/ + RTUNI_DDIGIT, /* U+001041: MYANMAR DIGIT ONE*/ + RTUNI_DDIGIT, /* U+001042: MYANMAR DIGIT TWO*/ + RTUNI_DDIGIT, /* U+001043: MYANMAR DIGIT THREE*/ + RTUNI_DDIGIT, /* U+001044: MYANMAR DIGIT FOUR*/ + RTUNI_DDIGIT, /* U+001045: MYANMAR DIGIT FIVE*/ + RTUNI_DDIGIT, /* U+001046: MYANMAR DIGIT SIX*/ + RTUNI_DDIGIT, /* U+001047: MYANMAR DIGIT SEVEN*/ + RTUNI_DDIGIT, /* U+001048: MYANMAR DIGIT EIGHT*/ + RTUNI_DDIGIT, /* U+001049: MYANMAR DIGIT NINE*/ + 0, /* U+00104a: MYANMAR SIGN LITTLE SECTION*/ + 0, /* U+00104b: MYANMAR SIGN SECTION*/ + 0, /* U+00104c: MYANMAR SYMBOL LOCATIVE*/ + 0, /* U+00104d: MYANMAR SYMBOL COMPLETED*/ + 0, /* U+00104e: MYANMAR SYMBOL AFOREMENTIONED*/ + 0, /* U+00104f: MYANMAR SYMBOL GENITIVE*/ + RTUNI_ALPHA, /* U+001050: MYANMAR LETTER SHA*/ + RTUNI_ALPHA, /* U+001051: MYANMAR LETTER SSA*/ + RTUNI_ALPHA, /* U+001052: MYANMAR LETTER VOCALIC R*/ + RTUNI_ALPHA, /* U+001053: MYANMAR LETTER VOCALIC RR*/ + RTUNI_ALPHA, /* U+001054: MYANMAR LETTER VOCALIC L*/ + RTUNI_ALPHA, /* U+001055: MYANMAR LETTER VOCALIC LL*/ + RTUNI_ALPHA, /* U+001056: MYANMAR VOWEL SIGN VOCALIC R*/ + RTUNI_ALPHA, /* U+001057: MYANMAR VOWEL SIGN VOCALIC RR*/ + RTUNI_ALPHA, /* U+001058: MYANMAR VOWEL SIGN VOCALIC L*/ + RTUNI_ALPHA, /* U+001059: MYANMAR VOWEL SIGN VOCALIC LL*/ + RTUNI_ALPHA, /* U+00105a: MYANMAR LETTER MON NGA*/ + RTUNI_ALPHA, /* U+00105b: MYANMAR LETTER MON JHA*/ + RTUNI_ALPHA, /* U+00105c: MYANMAR LETTER MON BBA*/ + RTUNI_ALPHA, /* U+00105d: MYANMAR LETTER MON BBE*/ + RTUNI_ALPHA, /* U+00105e: MYANMAR CONSONANT SIGN MON MEDIAL NA*/ + RTUNI_ALPHA, /* U+00105f: MYANMAR CONSONANT SIGN MON MEDIAL MA*/ + RTUNI_ALPHA, /* U+001060: MYANMAR CONSONANT SIGN MON MEDIAL LA*/ + RTUNI_ALPHA, /* U+001061: MYANMAR LETTER SGAW KAREN SHA*/ + RTUNI_ALPHA, /* U+001062: MYANMAR VOWEL SIGN SGAW KAREN EU*/ + 0, /* U+001063: MYANMAR TONE MARK SGAW KAREN HATHI*/ + 0, /* U+001064: MYANMAR TONE MARK SGAW KAREN KE PHO*/ + RTUNI_ALPHA, /* U+001065: MYANMAR LETTER WESTERN PWO KAREN THA*/ + RTUNI_ALPHA, /* U+001066: MYANMAR LETTER WESTERN PWO KAREN PWA*/ + RTUNI_ALPHA, /* U+001067: MYANMAR VOWEL SIGN WESTERN PWO KAREN EU*/ + RTUNI_ALPHA, /* U+001068: MYANMAR VOWEL SIGN WESTERN PWO KAREN UE*/ + 0, /* U+001069: MYANMAR SIGN WESTERN PWO KAREN TONE-1*/ + 0, /* U+00106a: MYANMAR SIGN WESTERN PWO KAREN TONE-2*/ + 0, /* U+00106b: MYANMAR SIGN WESTERN PWO KAREN TONE-3*/ + 0, /* U+00106c: MYANMAR SIGN WESTERN PWO KAREN TONE-4*/ + 0, /* U+00106d: MYANMAR SIGN WESTERN PWO KAREN TONE-5*/ + RTUNI_ALPHA, /* U+00106e: MYANMAR LETTER EASTERN PWO KAREN NNA*/ + RTUNI_ALPHA, /* U+00106f: MYANMAR LETTER EASTERN PWO KAREN YWA*/ + RTUNI_ALPHA, /* U+001070: MYANMAR LETTER EASTERN PWO KAREN GHWA*/ + RTUNI_ALPHA, /* U+001071: MYANMAR VOWEL SIGN GEBA KAREN I*/ + RTUNI_ALPHA, /* U+001072: MYANMAR VOWEL SIGN KAYAH OE*/ + RTUNI_ALPHA, /* U+001073: MYANMAR VOWEL SIGN KAYAH U*/ + RTUNI_ALPHA, /* U+001074: MYANMAR VOWEL SIGN KAYAH EE*/ + RTUNI_ALPHA, /* U+001075: MYANMAR LETTER SHAN KA*/ + RTUNI_ALPHA, /* U+001076: MYANMAR LETTER SHAN KHA*/ + RTUNI_ALPHA, /* U+001077: MYANMAR LETTER SHAN GA*/ + RTUNI_ALPHA, /* U+001078: MYANMAR LETTER SHAN CA*/ + RTUNI_ALPHA, /* U+001079: MYANMAR LETTER SHAN ZA*/ + RTUNI_ALPHA, /* U+00107a: MYANMAR LETTER SHAN NYA*/ + RTUNI_ALPHA, /* U+00107b: MYANMAR LETTER SHAN DA*/ + RTUNI_ALPHA, /* U+00107c: MYANMAR LETTER SHAN NA*/ + RTUNI_ALPHA, /* U+00107d: MYANMAR LETTER SHAN PHA*/ + RTUNI_ALPHA, /* U+00107e: MYANMAR LETTER SHAN FA*/ + RTUNI_ALPHA, /* U+00107f: MYANMAR LETTER SHAN BA*/ + RTUNI_ALPHA, /* U+001080: MYANMAR LETTER SHAN THA*/ + RTUNI_ALPHA, /* U+001081: MYANMAR LETTER SHAN HA*/ + RTUNI_ALPHA, /* U+001082: MYANMAR CONSONANT SIGN SHAN MEDIAL WA*/ + RTUNI_ALPHA, /* U+001083: MYANMAR VOWEL SIGN SHAN AA*/ + RTUNI_ALPHA, /* U+001084: MYANMAR VOWEL SIGN SHAN E*/ + RTUNI_ALPHA, /* U+001085: MYANMAR VOWEL SIGN SHAN E ABOVE*/ + RTUNI_ALPHA, /* U+001086: MYANMAR VOWEL SIGN SHAN FINAL Y*/ + 0, /* U+001087: MYANMAR SIGN SHAN TONE-2*/ + 0, /* U+001088: MYANMAR SIGN SHAN TONE-3*/ + 0, /* U+001089: MYANMAR SIGN SHAN TONE-5*/ + 0, /* U+00108a: MYANMAR SIGN SHAN TONE-6*/ + 0, /* U+00108b: MYANMAR SIGN SHAN COUNCIL TONE-2*/ + 0, /* U+00108c: MYANMAR SIGN SHAN COUNCIL TONE-3*/ + 0, /* U+00108d: MYANMAR SIGN SHAN COUNCIL EMPHATIC TONE*/ + RTUNI_ALPHA, /* U+00108e: MYANMAR LETTER RUMAI PALAUNG FA*/ + 0, /* U+00108f: MYANMAR SIGN RUMAI PALAUNG TONE-5*/ + RTUNI_DDIGIT, /* U+001090: MYANMAR SHAN DIGIT ZERO*/ + RTUNI_DDIGIT, /* U+001091: MYANMAR SHAN DIGIT ONE*/ + RTUNI_DDIGIT, /* U+001092: MYANMAR SHAN DIGIT TWO*/ + RTUNI_DDIGIT, /* U+001093: MYANMAR SHAN DIGIT THREE*/ + RTUNI_DDIGIT, /* U+001094: MYANMAR SHAN DIGIT FOUR*/ + RTUNI_DDIGIT, /* U+001095: MYANMAR SHAN DIGIT FIVE*/ + RTUNI_DDIGIT, /* U+001096: MYANMAR SHAN DIGIT SIX*/ + RTUNI_DDIGIT, /* U+001097: MYANMAR SHAN DIGIT SEVEN*/ + RTUNI_DDIGIT, /* U+001098: MYANMAR SHAN DIGIT EIGHT*/ + RTUNI_DDIGIT, /* U+001099: MYANMAR SHAN DIGIT NINE*/ + 0, /* U+00109a: MYANMAR SIGN KHAMTI TONE-1*/ + 0, /* U+00109b: MYANMAR SIGN KHAMTI TONE-3*/ + RTUNI_ALPHA, /* U+00109c: MYANMAR VOWEL SIGN AITON A*/ + RTUNI_ALPHA, /* U+00109d: MYANMAR VOWEL SIGN AITON AI*/ + 0, /* U+00109e: MYANMAR SYMBOL SHAN ONE*/ + 0, /* U+00109f: MYANMAR SYMBOL SHAN EXCLAMATION*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+0010a0: GEORGIAN CAPITAL LETTER AN*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+0010a1: GEORGIAN CAPITAL LETTER BAN*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+0010a2: GEORGIAN CAPITAL LETTER GAN*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+0010a3: GEORGIAN CAPITAL LETTER DON*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+0010a4: GEORGIAN CAPITAL LETTER EN*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+0010a5: GEORGIAN CAPITAL LETTER VIN*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+0010a6: GEORGIAN CAPITAL LETTER ZEN*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+0010a7: GEORGIAN CAPITAL LETTER TAN*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+0010a8: GEORGIAN CAPITAL LETTER IN*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+0010a9: GEORGIAN CAPITAL LETTER KAN*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+0010aa: GEORGIAN CAPITAL LETTER LAS*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+0010ab: GEORGIAN CAPITAL LETTER MAN*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+0010ac: GEORGIAN CAPITAL LETTER NAR*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+0010ad: GEORGIAN CAPITAL LETTER ON*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+0010ae: GEORGIAN CAPITAL LETTER PAR*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+0010af: GEORGIAN CAPITAL LETTER ZHAR*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+0010b0: GEORGIAN CAPITAL LETTER RAE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+0010b1: GEORGIAN CAPITAL LETTER SAN*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+0010b2: GEORGIAN CAPITAL LETTER TAR*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+0010b3: GEORGIAN CAPITAL LETTER UN*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+0010b4: GEORGIAN CAPITAL LETTER PHAR*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+0010b5: GEORGIAN CAPITAL LETTER KHAR*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+0010b6: GEORGIAN CAPITAL LETTER GHAN*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+0010b7: GEORGIAN CAPITAL LETTER QAR*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+0010b8: GEORGIAN CAPITAL LETTER SHIN*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+0010b9: GEORGIAN CAPITAL LETTER CHIN*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+0010ba: GEORGIAN CAPITAL LETTER CAN*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+0010bb: GEORGIAN CAPITAL LETTER JIL*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+0010bc: GEORGIAN CAPITAL LETTER CIL*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+0010bd: GEORGIAN CAPITAL LETTER CHAR*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+0010be: GEORGIAN CAPITAL LETTER XAN*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+0010bf: GEORGIAN CAPITAL LETTER JHAN*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+0010c0: GEORGIAN CAPITAL LETTER HAE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+0010c1: GEORGIAN CAPITAL LETTER HE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+0010c2: GEORGIAN CAPITAL LETTER HIE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+0010c3: GEORGIAN CAPITAL LETTER WE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+0010c4: GEORGIAN CAPITAL LETTER HAR*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+0010c5: GEORGIAN CAPITAL LETTER HOE*/ + 0, /* U+0010c6: */ + RTUNI_ALPHA | RTUNI_UPPER, /* U+0010c7: GEORGIAN CAPITAL LETTER YN*/ + 0, /* U+0010c8: */ + 0, /* U+0010c9: */ + 0, /* U+0010ca: */ + 0, /* U+0010cb: */ + 0, /* U+0010cc: */ + RTUNI_ALPHA | RTUNI_UPPER, /* U+0010cd: GEORGIAN CAPITAL LETTER AEN*/ + 0, /* U+0010ce: */ + 0, /* U+0010cf: */ + RTUNI_ALPHA, /* U+0010d0: GEORGIAN LETTER AN*/ + RTUNI_ALPHA, /* U+0010d1: GEORGIAN LETTER BAN*/ + RTUNI_ALPHA, /* U+0010d2: GEORGIAN LETTER GAN*/ + RTUNI_ALPHA, /* U+0010d3: GEORGIAN LETTER DON*/ + RTUNI_ALPHA, /* U+0010d4: GEORGIAN LETTER EN*/ + RTUNI_ALPHA, /* U+0010d5: GEORGIAN LETTER VIN*/ + RTUNI_ALPHA, /* U+0010d6: GEORGIAN LETTER ZEN*/ + RTUNI_ALPHA, /* U+0010d7: GEORGIAN LETTER TAN*/ + RTUNI_ALPHA, /* U+0010d8: GEORGIAN LETTER IN*/ + RTUNI_ALPHA, /* U+0010d9: GEORGIAN LETTER KAN*/ + RTUNI_ALPHA, /* U+0010da: GEORGIAN LETTER LAS*/ + RTUNI_ALPHA, /* U+0010db: GEORGIAN LETTER MAN*/ + RTUNI_ALPHA, /* U+0010dc: GEORGIAN LETTER NAR*/ + RTUNI_ALPHA, /* U+0010dd: GEORGIAN LETTER ON*/ + RTUNI_ALPHA, /* U+0010de: GEORGIAN LETTER PAR*/ + RTUNI_ALPHA, /* U+0010df: GEORGIAN LETTER ZHAR*/ + RTUNI_ALPHA, /* U+0010e0: GEORGIAN LETTER RAE*/ + RTUNI_ALPHA, /* U+0010e1: GEORGIAN LETTER SAN*/ + RTUNI_ALPHA, /* U+0010e2: GEORGIAN LETTER TAR*/ + RTUNI_ALPHA, /* U+0010e3: GEORGIAN LETTER UN*/ + RTUNI_ALPHA, /* U+0010e4: GEORGIAN LETTER PHAR*/ + RTUNI_ALPHA, /* U+0010e5: GEORGIAN LETTER KHAR*/ + RTUNI_ALPHA, /* U+0010e6: GEORGIAN LETTER GHAN*/ + RTUNI_ALPHA, /* U+0010e7: GEORGIAN LETTER QAR*/ + RTUNI_ALPHA, /* U+0010e8: GEORGIAN LETTER SHIN*/ + RTUNI_ALPHA, /* U+0010e9: GEORGIAN LETTER CHIN*/ + RTUNI_ALPHA, /* U+0010ea: GEORGIAN LETTER CAN*/ + RTUNI_ALPHA, /* U+0010eb: GEORGIAN LETTER JIL*/ + RTUNI_ALPHA, /* U+0010ec: GEORGIAN LETTER CIL*/ + RTUNI_ALPHA, /* U+0010ed: GEORGIAN LETTER CHAR*/ + RTUNI_ALPHA, /* U+0010ee: GEORGIAN LETTER XAN*/ + RTUNI_ALPHA, /* U+0010ef: GEORGIAN LETTER JHAN*/ + RTUNI_ALPHA, /* U+0010f0: GEORGIAN LETTER HAE*/ + RTUNI_ALPHA, /* U+0010f1: GEORGIAN LETTER HE*/ + RTUNI_ALPHA, /* U+0010f2: GEORGIAN LETTER HIE*/ + RTUNI_ALPHA, /* U+0010f3: GEORGIAN LETTER WE*/ + RTUNI_ALPHA, /* U+0010f4: GEORGIAN LETTER HAR*/ + RTUNI_ALPHA, /* U+0010f5: GEORGIAN LETTER HOE*/ + RTUNI_ALPHA, /* U+0010f6: GEORGIAN LETTER FI*/ + RTUNI_ALPHA, /* U+0010f7: GEORGIAN LETTER YN*/ + RTUNI_ALPHA, /* U+0010f8: GEORGIAN LETTER ELIFI*/ + RTUNI_ALPHA, /* U+0010f9: GEORGIAN LETTER TURNED GAN*/ + RTUNI_ALPHA, /* U+0010fa: GEORGIAN LETTER AIN*/ + 0, /* U+0010fb: GEORGIAN PARAGRAPH SEPARATOR*/ + RTUNI_ALPHA, /* U+0010fc: MODIFIER LETTER GEORGIAN NAR*/ + RTUNI_ALPHA, /* U+0010fd: GEORGIAN LETTER AEN*/ + RTUNI_ALPHA, /* U+0010fe: GEORGIAN LETTER HARD SIGN*/ + RTUNI_ALPHA, /* U+0010ff: GEORGIAN LETTER LABIAL SIGN*/ + RTUNI_ALPHA, /* U+001100: HANGUL CHOSEONG KIYEOK*/ + RTUNI_ALPHA, /* U+001101: HANGUL CHOSEONG SSANGKIYEOK*/ + RTUNI_ALPHA, /* U+001102: HANGUL CHOSEONG NIEUN*/ + RTUNI_ALPHA, /* U+001103: HANGUL CHOSEONG TIKEUT*/ + RTUNI_ALPHA, /* U+001104: HANGUL CHOSEONG SSANGTIKEUT*/ + RTUNI_ALPHA, /* U+001105: HANGUL CHOSEONG RIEUL*/ + RTUNI_ALPHA, /* U+001106: HANGUL CHOSEONG MIEUM*/ + RTUNI_ALPHA, /* U+001107: HANGUL CHOSEONG PIEUP*/ + RTUNI_ALPHA, /* U+001108: HANGUL CHOSEONG SSANGPIEUP*/ + RTUNI_ALPHA, /* U+001109: HANGUL CHOSEONG SIOS*/ + RTUNI_ALPHA, /* U+00110a: HANGUL CHOSEONG SSANGSIOS*/ + RTUNI_ALPHA, /* U+00110b: HANGUL CHOSEONG IEUNG*/ + RTUNI_ALPHA, /* U+00110c: HANGUL CHOSEONG CIEUC*/ + RTUNI_ALPHA, /* U+00110d: HANGUL CHOSEONG SSANGCIEUC*/ + RTUNI_ALPHA, /* U+00110e: HANGUL CHOSEONG CHIEUCH*/ + RTUNI_ALPHA, /* U+00110f: HANGUL CHOSEONG KHIEUKH*/ + RTUNI_ALPHA, /* U+001110: HANGUL CHOSEONG THIEUTH*/ + RTUNI_ALPHA, /* U+001111: HANGUL CHOSEONG PHIEUPH*/ + RTUNI_ALPHA, /* U+001112: HANGUL CHOSEONG HIEUH*/ + RTUNI_ALPHA, /* U+001113: HANGUL CHOSEONG NIEUN-KIYEOK*/ + RTUNI_ALPHA, /* U+001114: HANGUL CHOSEONG SSANGNIEUN*/ + RTUNI_ALPHA, /* U+001115: HANGUL CHOSEONG NIEUN-TIKEUT*/ + RTUNI_ALPHA, /* U+001116: HANGUL CHOSEONG NIEUN-PIEUP*/ + RTUNI_ALPHA, /* U+001117: HANGUL CHOSEONG TIKEUT-KIYEOK*/ + RTUNI_ALPHA, /* U+001118: HANGUL CHOSEONG RIEUL-NIEUN*/ + RTUNI_ALPHA, /* U+001119: HANGUL CHOSEONG SSANGRIEUL*/ + RTUNI_ALPHA, /* U+00111a: HANGUL CHOSEONG RIEUL-HIEUH*/ + RTUNI_ALPHA, /* U+00111b: HANGUL CHOSEONG KAPYEOUNRIEUL*/ + RTUNI_ALPHA, /* U+00111c: HANGUL CHOSEONG MIEUM-PIEUP*/ + RTUNI_ALPHA, /* U+00111d: HANGUL CHOSEONG KAPYEOUNMIEUM*/ + RTUNI_ALPHA, /* U+00111e: HANGUL CHOSEONG PIEUP-KIYEOK*/ + RTUNI_ALPHA, /* U+00111f: HANGUL CHOSEONG PIEUP-NIEUN*/ + RTUNI_ALPHA, /* U+001120: HANGUL CHOSEONG PIEUP-TIKEUT*/ + RTUNI_ALPHA, /* U+001121: HANGUL CHOSEONG PIEUP-SIOS*/ + RTUNI_ALPHA, /* U+001122: HANGUL CHOSEONG PIEUP-SIOS-KIYEOK*/ + RTUNI_ALPHA, /* U+001123: HANGUL CHOSEONG PIEUP-SIOS-TIKEUT*/ + RTUNI_ALPHA, /* U+001124: HANGUL CHOSEONG PIEUP-SIOS-PIEUP*/ + RTUNI_ALPHA, /* U+001125: HANGUL CHOSEONG PIEUP-SSANGSIOS*/ + RTUNI_ALPHA, /* U+001126: HANGUL CHOSEONG PIEUP-SIOS-CIEUC*/ + RTUNI_ALPHA, /* U+001127: HANGUL CHOSEONG PIEUP-CIEUC*/ + RTUNI_ALPHA, /* U+001128: HANGUL CHOSEONG PIEUP-CHIEUCH*/ + RTUNI_ALPHA, /* U+001129: HANGUL CHOSEONG PIEUP-THIEUTH*/ + RTUNI_ALPHA, /* U+00112a: HANGUL CHOSEONG PIEUP-PHIEUPH*/ + RTUNI_ALPHA, /* U+00112b: HANGUL CHOSEONG KAPYEOUNPIEUP*/ + RTUNI_ALPHA, /* U+00112c: HANGUL CHOSEONG KAPYEOUNSSANGPIEUP*/ + RTUNI_ALPHA, /* U+00112d: HANGUL CHOSEONG SIOS-KIYEOK*/ + RTUNI_ALPHA, /* U+00112e: HANGUL CHOSEONG SIOS-NIEUN*/ + RTUNI_ALPHA, /* U+00112f: HANGUL CHOSEONG SIOS-TIKEUT*/ + RTUNI_ALPHA, /* U+001130: HANGUL CHOSEONG SIOS-RIEUL*/ + RTUNI_ALPHA, /* U+001131: HANGUL CHOSEONG SIOS-MIEUM*/ + RTUNI_ALPHA, /* U+001132: HANGUL CHOSEONG SIOS-PIEUP*/ + RTUNI_ALPHA, /* U+001133: HANGUL CHOSEONG SIOS-PIEUP-KIYEOK*/ + RTUNI_ALPHA, /* U+001134: HANGUL CHOSEONG SIOS-SSANGSIOS*/ + RTUNI_ALPHA, /* U+001135: HANGUL CHOSEONG SIOS-IEUNG*/ + RTUNI_ALPHA, /* U+001136: HANGUL CHOSEONG SIOS-CIEUC*/ + RTUNI_ALPHA, /* U+001137: HANGUL CHOSEONG SIOS-CHIEUCH*/ + RTUNI_ALPHA, /* U+001138: HANGUL CHOSEONG SIOS-KHIEUKH*/ + RTUNI_ALPHA, /* U+001139: HANGUL CHOSEONG SIOS-THIEUTH*/ + RTUNI_ALPHA, /* U+00113a: HANGUL CHOSEONG SIOS-PHIEUPH*/ + RTUNI_ALPHA, /* U+00113b: HANGUL CHOSEONG SIOS-HIEUH*/ + RTUNI_ALPHA, /* U+00113c: HANGUL CHOSEONG CHITUEUMSIOS*/ + RTUNI_ALPHA, /* U+00113d: HANGUL CHOSEONG CHITUEUMSSANGSIOS*/ + RTUNI_ALPHA, /* U+00113e: HANGUL CHOSEONG CEONGCHIEUMSIOS*/ + RTUNI_ALPHA, /* U+00113f: HANGUL CHOSEONG CEONGCHIEUMSSANGSIOS*/ + RTUNI_ALPHA, /* U+001140: HANGUL CHOSEONG PANSIOS*/ + RTUNI_ALPHA, /* U+001141: HANGUL CHOSEONG IEUNG-KIYEOK*/ + RTUNI_ALPHA, /* U+001142: HANGUL CHOSEONG IEUNG-TIKEUT*/ + RTUNI_ALPHA, /* U+001143: HANGUL CHOSEONG IEUNG-MIEUM*/ + RTUNI_ALPHA, /* U+001144: HANGUL CHOSEONG IEUNG-PIEUP*/ + RTUNI_ALPHA, /* U+001145: HANGUL CHOSEONG IEUNG-SIOS*/ + RTUNI_ALPHA, /* U+001146: HANGUL CHOSEONG IEUNG-PANSIOS*/ + RTUNI_ALPHA, /* U+001147: HANGUL CHOSEONG SSANGIEUNG*/ + RTUNI_ALPHA, /* U+001148: HANGUL CHOSEONG IEUNG-CIEUC*/ + RTUNI_ALPHA, /* U+001149: HANGUL CHOSEONG IEUNG-CHIEUCH*/ + RTUNI_ALPHA, /* U+00114a: HANGUL CHOSEONG IEUNG-THIEUTH*/ + RTUNI_ALPHA, /* U+00114b: HANGUL CHOSEONG IEUNG-PHIEUPH*/ + RTUNI_ALPHA, /* U+00114c: HANGUL CHOSEONG YESIEUNG*/ + RTUNI_ALPHA, /* U+00114d: HANGUL CHOSEONG CIEUC-IEUNG*/ + RTUNI_ALPHA, /* U+00114e: HANGUL CHOSEONG CHITUEUMCIEUC*/ + RTUNI_ALPHA, /* U+00114f: HANGUL CHOSEONG CHITUEUMSSANGCIEUC*/ + RTUNI_ALPHA, /* U+001150: HANGUL CHOSEONG CEONGCHIEUMCIEUC*/ + RTUNI_ALPHA, /* U+001151: HANGUL CHOSEONG CEONGCHIEUMSSANGCIEUC*/ + RTUNI_ALPHA, /* U+001152: HANGUL CHOSEONG CHIEUCH-KHIEUKH*/ + RTUNI_ALPHA, /* U+001153: HANGUL CHOSEONG CHIEUCH-HIEUH*/ + RTUNI_ALPHA, /* U+001154: HANGUL CHOSEONG CHITUEUMCHIEUCH*/ + RTUNI_ALPHA, /* U+001155: HANGUL CHOSEONG CEONGCHIEUMCHIEUCH*/ + RTUNI_ALPHA, /* U+001156: HANGUL CHOSEONG PHIEUPH-PIEUP*/ + RTUNI_ALPHA, /* U+001157: HANGUL CHOSEONG KAPYEOUNPHIEUPH*/ + RTUNI_ALPHA, /* U+001158: HANGUL CHOSEONG SSANGHIEUH*/ + RTUNI_ALPHA, /* U+001159: HANGUL CHOSEONG YEORINHIEUH*/ + RTUNI_ALPHA, /* U+00115a: HANGUL CHOSEONG KIYEOK-TIKEUT*/ + RTUNI_ALPHA, /* U+00115b: HANGUL CHOSEONG NIEUN-SIOS*/ + RTUNI_ALPHA, /* U+00115c: HANGUL CHOSEONG NIEUN-CIEUC*/ + RTUNI_ALPHA, /* U+00115d: HANGUL CHOSEONG NIEUN-HIEUH*/ + RTUNI_ALPHA, /* U+00115e: HANGUL CHOSEONG TIKEUT-RIEUL*/ + RTUNI_ALPHA, /* U+00115f: HANGUL CHOSEONG FILLER*/ + RTUNI_ALPHA, /* U+001160: HANGUL JUNGSEONG FILLER*/ + RTUNI_ALPHA, /* U+001161: HANGUL JUNGSEONG A*/ + RTUNI_ALPHA, /* U+001162: HANGUL JUNGSEONG AE*/ + RTUNI_ALPHA, /* U+001163: HANGUL JUNGSEONG YA*/ + RTUNI_ALPHA, /* U+001164: HANGUL JUNGSEONG YAE*/ + RTUNI_ALPHA, /* U+001165: HANGUL JUNGSEONG EO*/ + RTUNI_ALPHA, /* U+001166: HANGUL JUNGSEONG E*/ + RTUNI_ALPHA, /* U+001167: HANGUL JUNGSEONG YEO*/ + RTUNI_ALPHA, /* U+001168: HANGUL JUNGSEONG YE*/ + RTUNI_ALPHA, /* U+001169: HANGUL JUNGSEONG O*/ + RTUNI_ALPHA, /* U+00116a: HANGUL JUNGSEONG WA*/ + RTUNI_ALPHA, /* U+00116b: HANGUL JUNGSEONG WAE*/ + RTUNI_ALPHA, /* U+00116c: HANGUL JUNGSEONG OE*/ + RTUNI_ALPHA, /* U+00116d: HANGUL JUNGSEONG YO*/ + RTUNI_ALPHA, /* U+00116e: HANGUL JUNGSEONG U*/ + RTUNI_ALPHA, /* U+00116f: HANGUL JUNGSEONG WEO*/ + RTUNI_ALPHA, /* U+001170: HANGUL JUNGSEONG WE*/ + RTUNI_ALPHA, /* U+001171: HANGUL JUNGSEONG WI*/ + RTUNI_ALPHA, /* U+001172: HANGUL JUNGSEONG YU*/ + RTUNI_ALPHA, /* U+001173: HANGUL JUNGSEONG EU*/ + RTUNI_ALPHA, /* U+001174: HANGUL JUNGSEONG YI*/ + RTUNI_ALPHA, /* U+001175: HANGUL JUNGSEONG I*/ + RTUNI_ALPHA, /* U+001176: HANGUL JUNGSEONG A-O*/ + RTUNI_ALPHA, /* U+001177: HANGUL JUNGSEONG A-U*/ + RTUNI_ALPHA, /* U+001178: HANGUL JUNGSEONG YA-O*/ + RTUNI_ALPHA, /* U+001179: HANGUL JUNGSEONG YA-YO*/ + RTUNI_ALPHA, /* U+00117a: HANGUL JUNGSEONG EO-O*/ + RTUNI_ALPHA, /* U+00117b: HANGUL JUNGSEONG EO-U*/ + RTUNI_ALPHA, /* U+00117c: HANGUL JUNGSEONG EO-EU*/ + RTUNI_ALPHA, /* U+00117d: HANGUL JUNGSEONG YEO-O*/ + RTUNI_ALPHA, /* U+00117e: HANGUL JUNGSEONG YEO-U*/ + RTUNI_ALPHA, /* U+00117f: HANGUL JUNGSEONG O-EO*/ + RTUNI_ALPHA, /* U+001180: HANGUL JUNGSEONG O-E*/ + RTUNI_ALPHA, /* U+001181: HANGUL JUNGSEONG O-YE*/ + RTUNI_ALPHA, /* U+001182: HANGUL JUNGSEONG O-O*/ + RTUNI_ALPHA, /* U+001183: HANGUL JUNGSEONG O-U*/ + RTUNI_ALPHA, /* U+001184: HANGUL JUNGSEONG YO-YA*/ + RTUNI_ALPHA, /* U+001185: HANGUL JUNGSEONG YO-YAE*/ + RTUNI_ALPHA, /* U+001186: HANGUL JUNGSEONG YO-YEO*/ + RTUNI_ALPHA, /* U+001187: HANGUL JUNGSEONG YO-O*/ + RTUNI_ALPHA, /* U+001188: HANGUL JUNGSEONG YO-I*/ + RTUNI_ALPHA, /* U+001189: HANGUL JUNGSEONG U-A*/ + RTUNI_ALPHA, /* U+00118a: HANGUL JUNGSEONG U-AE*/ + RTUNI_ALPHA, /* U+00118b: HANGUL JUNGSEONG U-EO-EU*/ + RTUNI_ALPHA, /* U+00118c: HANGUL JUNGSEONG U-YE*/ + RTUNI_ALPHA, /* U+00118d: HANGUL JUNGSEONG U-U*/ + RTUNI_ALPHA, /* U+00118e: HANGUL JUNGSEONG YU-A*/ + RTUNI_ALPHA, /* U+00118f: HANGUL JUNGSEONG YU-EO*/ + RTUNI_ALPHA, /* U+001190: HANGUL JUNGSEONG YU-E*/ + RTUNI_ALPHA, /* U+001191: HANGUL JUNGSEONG YU-YEO*/ + RTUNI_ALPHA, /* U+001192: HANGUL JUNGSEONG YU-YE*/ + RTUNI_ALPHA, /* U+001193: HANGUL JUNGSEONG YU-U*/ + RTUNI_ALPHA, /* U+001194: HANGUL JUNGSEONG YU-I*/ + RTUNI_ALPHA, /* U+001195: HANGUL JUNGSEONG EU-U*/ + RTUNI_ALPHA, /* U+001196: HANGUL JUNGSEONG EU-EU*/ + RTUNI_ALPHA, /* U+001197: HANGUL JUNGSEONG YI-U*/ + RTUNI_ALPHA, /* U+001198: HANGUL JUNGSEONG I-A*/ + RTUNI_ALPHA, /* U+001199: HANGUL JUNGSEONG I-YA*/ + RTUNI_ALPHA, /* U+00119a: HANGUL JUNGSEONG I-O*/ + RTUNI_ALPHA, /* U+00119b: HANGUL JUNGSEONG I-U*/ + RTUNI_ALPHA, /* U+00119c: HANGUL JUNGSEONG I-EU*/ + RTUNI_ALPHA, /* U+00119d: HANGUL JUNGSEONG I-ARAEA*/ + RTUNI_ALPHA, /* U+00119e: HANGUL JUNGSEONG ARAEA*/ + RTUNI_ALPHA, /* U+00119f: HANGUL JUNGSEONG ARAEA-EO*/ + RTUNI_ALPHA, /* U+0011a0: HANGUL JUNGSEONG ARAEA-U*/ + RTUNI_ALPHA, /* U+0011a1: HANGUL JUNGSEONG ARAEA-I*/ + RTUNI_ALPHA, /* U+0011a2: HANGUL JUNGSEONG SSANGARAEA*/ + RTUNI_ALPHA, /* U+0011a3: HANGUL JUNGSEONG A-EU*/ + RTUNI_ALPHA, /* U+0011a4: HANGUL JUNGSEONG YA-U*/ + RTUNI_ALPHA, /* U+0011a5: HANGUL JUNGSEONG YEO-YA*/ + RTUNI_ALPHA, /* U+0011a6: HANGUL JUNGSEONG O-YA*/ + RTUNI_ALPHA, /* U+0011a7: HANGUL JUNGSEONG O-YAE*/ + RTUNI_ALPHA, /* U+0011a8: HANGUL JONGSEONG KIYEOK*/ + RTUNI_ALPHA, /* U+0011a9: HANGUL JONGSEONG SSANGKIYEOK*/ + RTUNI_ALPHA, /* U+0011aa: HANGUL JONGSEONG KIYEOK-SIOS*/ + RTUNI_ALPHA, /* U+0011ab: HANGUL JONGSEONG NIEUN*/ + RTUNI_ALPHA, /* U+0011ac: HANGUL JONGSEONG NIEUN-CIEUC*/ + RTUNI_ALPHA, /* U+0011ad: HANGUL JONGSEONG NIEUN-HIEUH*/ + RTUNI_ALPHA, /* U+0011ae: HANGUL JONGSEONG TIKEUT*/ + RTUNI_ALPHA, /* U+0011af: HANGUL JONGSEONG RIEUL*/ + RTUNI_ALPHA, /* U+0011b0: HANGUL JONGSEONG RIEUL-KIYEOK*/ + RTUNI_ALPHA, /* U+0011b1: HANGUL JONGSEONG RIEUL-MIEUM*/ + RTUNI_ALPHA, /* U+0011b2: HANGUL JONGSEONG RIEUL-PIEUP*/ + RTUNI_ALPHA, /* U+0011b3: HANGUL JONGSEONG RIEUL-SIOS*/ + RTUNI_ALPHA, /* U+0011b4: HANGUL JONGSEONG RIEUL-THIEUTH*/ + RTUNI_ALPHA, /* U+0011b5: HANGUL JONGSEONG RIEUL-PHIEUPH*/ + RTUNI_ALPHA, /* U+0011b6: HANGUL JONGSEONG RIEUL-HIEUH*/ + RTUNI_ALPHA, /* U+0011b7: HANGUL JONGSEONG MIEUM*/ + RTUNI_ALPHA, /* U+0011b8: HANGUL JONGSEONG PIEUP*/ + RTUNI_ALPHA, /* U+0011b9: HANGUL JONGSEONG PIEUP-SIOS*/ + RTUNI_ALPHA, /* U+0011ba: HANGUL JONGSEONG SIOS*/ + RTUNI_ALPHA, /* U+0011bb: HANGUL JONGSEONG SSANGSIOS*/ + RTUNI_ALPHA, /* U+0011bc: HANGUL JONGSEONG IEUNG*/ + RTUNI_ALPHA, /* U+0011bd: HANGUL JONGSEONG CIEUC*/ + RTUNI_ALPHA, /* U+0011be: HANGUL JONGSEONG CHIEUCH*/ + RTUNI_ALPHA, /* U+0011bf: HANGUL JONGSEONG KHIEUKH*/ + RTUNI_ALPHA, /* U+0011c0: HANGUL JONGSEONG THIEUTH*/ + RTUNI_ALPHA, /* U+0011c1: HANGUL JONGSEONG PHIEUPH*/ + RTUNI_ALPHA, /* U+0011c2: HANGUL JONGSEONG HIEUH*/ + RTUNI_ALPHA, /* U+0011c3: HANGUL JONGSEONG KIYEOK-RIEUL*/ + RTUNI_ALPHA, /* U+0011c4: HANGUL JONGSEONG KIYEOK-SIOS-KIYEOK*/ + RTUNI_ALPHA, /* U+0011c5: HANGUL JONGSEONG NIEUN-KIYEOK*/ + RTUNI_ALPHA, /* U+0011c6: HANGUL JONGSEONG NIEUN-TIKEUT*/ + RTUNI_ALPHA, /* U+0011c7: HANGUL JONGSEONG NIEUN-SIOS*/ + RTUNI_ALPHA, /* U+0011c8: HANGUL JONGSEONG NIEUN-PANSIOS*/ + RTUNI_ALPHA, /* U+0011c9: HANGUL JONGSEONG NIEUN-THIEUTH*/ + RTUNI_ALPHA, /* U+0011ca: HANGUL JONGSEONG TIKEUT-KIYEOK*/ + RTUNI_ALPHA, /* U+0011cb: HANGUL JONGSEONG TIKEUT-RIEUL*/ + RTUNI_ALPHA, /* U+0011cc: HANGUL JONGSEONG RIEUL-KIYEOK-SIOS*/ + RTUNI_ALPHA, /* U+0011cd: HANGUL JONGSEONG RIEUL-NIEUN*/ + RTUNI_ALPHA, /* U+0011ce: HANGUL JONGSEONG RIEUL-TIKEUT*/ + RTUNI_ALPHA, /* U+0011cf: HANGUL JONGSEONG RIEUL-TIKEUT-HIEUH*/ + RTUNI_ALPHA, /* U+0011d0: HANGUL JONGSEONG SSANGRIEUL*/ + RTUNI_ALPHA, /* U+0011d1: HANGUL JONGSEONG RIEUL-MIEUM-KIYEOK*/ + RTUNI_ALPHA, /* U+0011d2: HANGUL JONGSEONG RIEUL-MIEUM-SIOS*/ + RTUNI_ALPHA, /* U+0011d3: HANGUL JONGSEONG RIEUL-PIEUP-SIOS*/ + RTUNI_ALPHA, /* U+0011d4: HANGUL JONGSEONG RIEUL-PIEUP-HIEUH*/ + RTUNI_ALPHA, /* U+0011d5: HANGUL JONGSEONG RIEUL-KAPYEOUNPIEUP*/ + RTUNI_ALPHA, /* U+0011d6: HANGUL JONGSEONG RIEUL-SSANGSIOS*/ + RTUNI_ALPHA, /* U+0011d7: HANGUL JONGSEONG RIEUL-PANSIOS*/ + RTUNI_ALPHA, /* U+0011d8: HANGUL JONGSEONG RIEUL-KHIEUKH*/ + RTUNI_ALPHA, /* U+0011d9: HANGUL JONGSEONG RIEUL-YEORINHIEUH*/ + RTUNI_ALPHA, /* U+0011da: HANGUL JONGSEONG MIEUM-KIYEOK*/ + RTUNI_ALPHA, /* U+0011db: HANGUL JONGSEONG MIEUM-RIEUL*/ + RTUNI_ALPHA, /* U+0011dc: HANGUL JONGSEONG MIEUM-PIEUP*/ + RTUNI_ALPHA, /* U+0011dd: HANGUL JONGSEONG MIEUM-SIOS*/ + RTUNI_ALPHA, /* U+0011de: HANGUL JONGSEONG MIEUM-SSANGSIOS*/ + RTUNI_ALPHA, /* U+0011df: HANGUL JONGSEONG MIEUM-PANSIOS*/ + RTUNI_ALPHA, /* U+0011e0: HANGUL JONGSEONG MIEUM-CHIEUCH*/ + RTUNI_ALPHA, /* U+0011e1: HANGUL JONGSEONG MIEUM-HIEUH*/ + RTUNI_ALPHA, /* U+0011e2: HANGUL JONGSEONG KAPYEOUNMIEUM*/ + RTUNI_ALPHA, /* U+0011e3: HANGUL JONGSEONG PIEUP-RIEUL*/ + RTUNI_ALPHA, /* U+0011e4: HANGUL JONGSEONG PIEUP-PHIEUPH*/ + RTUNI_ALPHA, /* U+0011e5: HANGUL JONGSEONG PIEUP-HIEUH*/ + RTUNI_ALPHA, /* U+0011e6: HANGUL JONGSEONG KAPYEOUNPIEUP*/ + RTUNI_ALPHA, /* U+0011e7: HANGUL JONGSEONG SIOS-KIYEOK*/ + RTUNI_ALPHA, /* U+0011e8: HANGUL JONGSEONG SIOS-TIKEUT*/ + RTUNI_ALPHA, /* U+0011e9: HANGUL JONGSEONG SIOS-RIEUL*/ + RTUNI_ALPHA, /* U+0011ea: HANGUL JONGSEONG SIOS-PIEUP*/ + RTUNI_ALPHA, /* U+0011eb: HANGUL JONGSEONG PANSIOS*/ + RTUNI_ALPHA, /* U+0011ec: HANGUL JONGSEONG IEUNG-KIYEOK*/ + RTUNI_ALPHA, /* U+0011ed: HANGUL JONGSEONG IEUNG-SSANGKIYEOK*/ + RTUNI_ALPHA, /* U+0011ee: HANGUL JONGSEONG SSANGIEUNG*/ + RTUNI_ALPHA, /* U+0011ef: HANGUL JONGSEONG IEUNG-KHIEUKH*/ + RTUNI_ALPHA, /* U+0011f0: HANGUL JONGSEONG YESIEUNG*/ + RTUNI_ALPHA, /* U+0011f1: HANGUL JONGSEONG YESIEUNG-SIOS*/ + RTUNI_ALPHA, /* U+0011f2: HANGUL JONGSEONG YESIEUNG-PANSIOS*/ + RTUNI_ALPHA, /* U+0011f3: HANGUL JONGSEONG PHIEUPH-PIEUP*/ + RTUNI_ALPHA, /* U+0011f4: HANGUL JONGSEONG KAPYEOUNPHIEUPH*/ + RTUNI_ALPHA, /* U+0011f5: HANGUL JONGSEONG HIEUH-NIEUN*/ + RTUNI_ALPHA, /* U+0011f6: HANGUL JONGSEONG HIEUH-RIEUL*/ + RTUNI_ALPHA, /* U+0011f7: HANGUL JONGSEONG HIEUH-MIEUM*/ + RTUNI_ALPHA, /* U+0011f8: HANGUL JONGSEONG HIEUH-PIEUP*/ + RTUNI_ALPHA, /* U+0011f9: HANGUL JONGSEONG YEORINHIEUH*/ + RTUNI_ALPHA, /* U+0011fa: HANGUL JONGSEONG KIYEOK-NIEUN*/ + RTUNI_ALPHA, /* U+0011fb: HANGUL JONGSEONG KIYEOK-PIEUP*/ + RTUNI_ALPHA, /* U+0011fc: HANGUL JONGSEONG KIYEOK-CHIEUCH*/ + RTUNI_ALPHA, /* U+0011fd: HANGUL JONGSEONG KIYEOK-KHIEUKH*/ + RTUNI_ALPHA, /* U+0011fe: HANGUL JONGSEONG KIYEOK-HIEUH*/ + RTUNI_ALPHA, /* U+0011ff: HANGUL JONGSEONG SSANGNIEUN*/ + RTUNI_ALPHA, /* U+001200: ETHIOPIC SYLLABLE HA*/ + RTUNI_ALPHA, /* U+001201: ETHIOPIC SYLLABLE HU*/ + RTUNI_ALPHA, /* U+001202: ETHIOPIC SYLLABLE HI*/ + RTUNI_ALPHA, /* U+001203: ETHIOPIC SYLLABLE HAA*/ + RTUNI_ALPHA, /* U+001204: ETHIOPIC SYLLABLE HEE*/ + RTUNI_ALPHA, /* U+001205: ETHIOPIC SYLLABLE HE*/ + RTUNI_ALPHA, /* U+001206: ETHIOPIC SYLLABLE HO*/ + RTUNI_ALPHA, /* U+001207: ETHIOPIC SYLLABLE HOA*/ + RTUNI_ALPHA, /* U+001208: ETHIOPIC SYLLABLE LA*/ + RTUNI_ALPHA, /* U+001209: ETHIOPIC SYLLABLE LU*/ + RTUNI_ALPHA, /* U+00120a: ETHIOPIC SYLLABLE LI*/ + RTUNI_ALPHA, /* U+00120b: ETHIOPIC SYLLABLE LAA*/ + RTUNI_ALPHA, /* U+00120c: ETHIOPIC SYLLABLE LEE*/ + RTUNI_ALPHA, /* U+00120d: ETHIOPIC SYLLABLE LE*/ + RTUNI_ALPHA, /* U+00120e: ETHIOPIC SYLLABLE LO*/ + RTUNI_ALPHA, /* U+00120f: ETHIOPIC SYLLABLE LWA*/ + RTUNI_ALPHA, /* U+001210: ETHIOPIC SYLLABLE HHA*/ + RTUNI_ALPHA, /* U+001211: ETHIOPIC SYLLABLE HHU*/ + RTUNI_ALPHA, /* U+001212: ETHIOPIC SYLLABLE HHI*/ + RTUNI_ALPHA, /* U+001213: ETHIOPIC SYLLABLE HHAA*/ + RTUNI_ALPHA, /* U+001214: ETHIOPIC SYLLABLE HHEE*/ + RTUNI_ALPHA, /* U+001215: ETHIOPIC SYLLABLE HHE*/ + RTUNI_ALPHA, /* U+001216: ETHIOPIC SYLLABLE HHO*/ + RTUNI_ALPHA, /* U+001217: ETHIOPIC SYLLABLE HHWA*/ + RTUNI_ALPHA, /* U+001218: ETHIOPIC SYLLABLE MA*/ + RTUNI_ALPHA, /* U+001219: ETHIOPIC SYLLABLE MU*/ + RTUNI_ALPHA, /* U+00121a: ETHIOPIC SYLLABLE MI*/ + RTUNI_ALPHA, /* U+00121b: ETHIOPIC SYLLABLE MAA*/ + RTUNI_ALPHA, /* U+00121c: ETHIOPIC SYLLABLE MEE*/ + RTUNI_ALPHA, /* U+00121d: ETHIOPIC SYLLABLE ME*/ + RTUNI_ALPHA, /* U+00121e: ETHIOPIC SYLLABLE MO*/ + RTUNI_ALPHA, /* U+00121f: ETHIOPIC SYLLABLE MWA*/ + RTUNI_ALPHA, /* U+001220: ETHIOPIC SYLLABLE SZA*/ + RTUNI_ALPHA, /* U+001221: ETHIOPIC SYLLABLE SZU*/ + RTUNI_ALPHA, /* U+001222: ETHIOPIC SYLLABLE SZI*/ + RTUNI_ALPHA, /* U+001223: ETHIOPIC SYLLABLE SZAA*/ + RTUNI_ALPHA, /* U+001224: ETHIOPIC SYLLABLE SZEE*/ + RTUNI_ALPHA, /* U+001225: ETHIOPIC SYLLABLE SZE*/ + RTUNI_ALPHA, /* U+001226: ETHIOPIC SYLLABLE SZO*/ + RTUNI_ALPHA, /* U+001227: ETHIOPIC SYLLABLE SZWA*/ + RTUNI_ALPHA, /* U+001228: ETHIOPIC SYLLABLE RA*/ + RTUNI_ALPHA, /* U+001229: ETHIOPIC SYLLABLE RU*/ + RTUNI_ALPHA, /* U+00122a: ETHIOPIC SYLLABLE RI*/ + RTUNI_ALPHA, /* U+00122b: ETHIOPIC SYLLABLE RAA*/ + RTUNI_ALPHA, /* U+00122c: ETHIOPIC SYLLABLE REE*/ + RTUNI_ALPHA, /* U+00122d: ETHIOPIC SYLLABLE RE*/ + RTUNI_ALPHA, /* U+00122e: ETHIOPIC SYLLABLE RO*/ + RTUNI_ALPHA, /* U+00122f: ETHIOPIC SYLLABLE RWA*/ + RTUNI_ALPHA, /* U+001230: ETHIOPIC SYLLABLE SA*/ + RTUNI_ALPHA, /* U+001231: ETHIOPIC SYLLABLE SU*/ + RTUNI_ALPHA, /* U+001232: ETHIOPIC SYLLABLE SI*/ + RTUNI_ALPHA, /* U+001233: ETHIOPIC SYLLABLE SAA*/ + RTUNI_ALPHA, /* U+001234: ETHIOPIC SYLLABLE SEE*/ + RTUNI_ALPHA, /* U+001235: ETHIOPIC SYLLABLE SE*/ + RTUNI_ALPHA, /* U+001236: ETHIOPIC SYLLABLE SO*/ + RTUNI_ALPHA, /* U+001237: ETHIOPIC SYLLABLE SWA*/ + RTUNI_ALPHA, /* U+001238: ETHIOPIC SYLLABLE SHA*/ + RTUNI_ALPHA, /* U+001239: ETHIOPIC SYLLABLE SHU*/ + RTUNI_ALPHA, /* U+00123a: ETHIOPIC SYLLABLE SHI*/ + RTUNI_ALPHA, /* U+00123b: ETHIOPIC SYLLABLE SHAA*/ + RTUNI_ALPHA, /* U+00123c: ETHIOPIC SYLLABLE SHEE*/ + RTUNI_ALPHA, /* U+00123d: ETHIOPIC SYLLABLE SHE*/ + RTUNI_ALPHA, /* U+00123e: ETHIOPIC SYLLABLE SHO*/ + RTUNI_ALPHA, /* U+00123f: ETHIOPIC SYLLABLE SHWA*/ + RTUNI_ALPHA, /* U+001240: ETHIOPIC SYLLABLE QA*/ + RTUNI_ALPHA, /* U+001241: ETHIOPIC SYLLABLE QU*/ + RTUNI_ALPHA, /* U+001242: ETHIOPIC SYLLABLE QI*/ + RTUNI_ALPHA, /* U+001243: ETHIOPIC SYLLABLE QAA*/ + RTUNI_ALPHA, /* U+001244: ETHIOPIC SYLLABLE QEE*/ + RTUNI_ALPHA, /* U+001245: ETHIOPIC SYLLABLE QE*/ + RTUNI_ALPHA, /* U+001246: ETHIOPIC SYLLABLE QO*/ + RTUNI_ALPHA, /* U+001247: ETHIOPIC SYLLABLE QOA*/ + RTUNI_ALPHA, /* U+001248: ETHIOPIC SYLLABLE QWA*/ + 0, /* U+001249: */ + RTUNI_ALPHA, /* U+00124a: ETHIOPIC SYLLABLE QWI*/ + RTUNI_ALPHA, /* U+00124b: ETHIOPIC SYLLABLE QWAA*/ + RTUNI_ALPHA, /* U+00124c: ETHIOPIC SYLLABLE QWEE*/ + RTUNI_ALPHA, /* U+00124d: ETHIOPIC SYLLABLE QWE*/ + 0, /* U+00124e: */ + 0, /* U+00124f: */ + RTUNI_ALPHA, /* U+001250: ETHIOPIC SYLLABLE QHA*/ + RTUNI_ALPHA, /* U+001251: ETHIOPIC SYLLABLE QHU*/ + RTUNI_ALPHA, /* U+001252: ETHIOPIC SYLLABLE QHI*/ + RTUNI_ALPHA, /* U+001253: ETHIOPIC SYLLABLE QHAA*/ + RTUNI_ALPHA, /* U+001254: ETHIOPIC SYLLABLE QHEE*/ + RTUNI_ALPHA, /* U+001255: ETHIOPIC SYLLABLE QHE*/ + RTUNI_ALPHA, /* U+001256: ETHIOPIC SYLLABLE QHO*/ + 0, /* U+001257: */ + RTUNI_ALPHA, /* U+001258: ETHIOPIC SYLLABLE QHWA*/ + 0, /* U+001259: */ + RTUNI_ALPHA, /* U+00125a: ETHIOPIC SYLLABLE QHWI*/ + RTUNI_ALPHA, /* U+00125b: ETHIOPIC SYLLABLE QHWAA*/ + RTUNI_ALPHA, /* U+00125c: ETHIOPIC SYLLABLE QHWEE*/ + RTUNI_ALPHA, /* U+00125d: ETHIOPIC SYLLABLE QHWE*/ + 0, /* U+00125e: */ + 0, /* U+00125f: */ + RTUNI_ALPHA, /* U+001260: ETHIOPIC SYLLABLE BA*/ + RTUNI_ALPHA, /* U+001261: ETHIOPIC SYLLABLE BU*/ + RTUNI_ALPHA, /* U+001262: ETHIOPIC SYLLABLE BI*/ + RTUNI_ALPHA, /* U+001263: ETHIOPIC SYLLABLE BAA*/ + RTUNI_ALPHA, /* U+001264: ETHIOPIC SYLLABLE BEE*/ + RTUNI_ALPHA, /* U+001265: ETHIOPIC SYLLABLE BE*/ + RTUNI_ALPHA, /* U+001266: ETHIOPIC SYLLABLE BO*/ + RTUNI_ALPHA, /* U+001267: ETHIOPIC SYLLABLE BWA*/ + RTUNI_ALPHA, /* U+001268: ETHIOPIC SYLLABLE VA*/ + RTUNI_ALPHA, /* U+001269: ETHIOPIC SYLLABLE VU*/ + RTUNI_ALPHA, /* U+00126a: ETHIOPIC SYLLABLE VI*/ + RTUNI_ALPHA, /* U+00126b: ETHIOPIC SYLLABLE VAA*/ + RTUNI_ALPHA, /* U+00126c: ETHIOPIC SYLLABLE VEE*/ + RTUNI_ALPHA, /* U+00126d: ETHIOPIC SYLLABLE VE*/ + RTUNI_ALPHA, /* U+00126e: ETHIOPIC SYLLABLE VO*/ + RTUNI_ALPHA, /* U+00126f: ETHIOPIC SYLLABLE VWA*/ + RTUNI_ALPHA, /* U+001270: ETHIOPIC SYLLABLE TA*/ + RTUNI_ALPHA, /* U+001271: ETHIOPIC SYLLABLE TU*/ + RTUNI_ALPHA, /* U+001272: ETHIOPIC SYLLABLE TI*/ + RTUNI_ALPHA, /* U+001273: ETHIOPIC SYLLABLE TAA*/ + RTUNI_ALPHA, /* U+001274: ETHIOPIC SYLLABLE TEE*/ + RTUNI_ALPHA, /* U+001275: ETHIOPIC SYLLABLE TE*/ + RTUNI_ALPHA, /* U+001276: ETHIOPIC SYLLABLE TO*/ + RTUNI_ALPHA, /* U+001277: ETHIOPIC SYLLABLE TWA*/ + RTUNI_ALPHA, /* U+001278: ETHIOPIC SYLLABLE CA*/ + RTUNI_ALPHA, /* U+001279: ETHIOPIC SYLLABLE CU*/ + RTUNI_ALPHA, /* U+00127a: ETHIOPIC SYLLABLE CI*/ + RTUNI_ALPHA, /* U+00127b: ETHIOPIC SYLLABLE CAA*/ + RTUNI_ALPHA, /* U+00127c: ETHIOPIC SYLLABLE CEE*/ + RTUNI_ALPHA, /* U+00127d: ETHIOPIC SYLLABLE CE*/ + RTUNI_ALPHA, /* U+00127e: ETHIOPIC SYLLABLE CO*/ + RTUNI_ALPHA, /* U+00127f: ETHIOPIC SYLLABLE CWA*/ + RTUNI_ALPHA, /* U+001280: ETHIOPIC SYLLABLE XA*/ + RTUNI_ALPHA, /* U+001281: ETHIOPIC SYLLABLE XU*/ + RTUNI_ALPHA, /* U+001282: ETHIOPIC SYLLABLE XI*/ + RTUNI_ALPHA, /* U+001283: ETHIOPIC SYLLABLE XAA*/ + RTUNI_ALPHA, /* U+001284: ETHIOPIC SYLLABLE XEE*/ + RTUNI_ALPHA, /* U+001285: ETHIOPIC SYLLABLE XE*/ + RTUNI_ALPHA, /* U+001286: ETHIOPIC SYLLABLE XO*/ + RTUNI_ALPHA, /* U+001287: ETHIOPIC SYLLABLE XOA*/ + RTUNI_ALPHA, /* U+001288: ETHIOPIC SYLLABLE XWA*/ + 0, /* U+001289: */ + RTUNI_ALPHA, /* U+00128a: ETHIOPIC SYLLABLE XWI*/ + RTUNI_ALPHA, /* U+00128b: ETHIOPIC SYLLABLE XWAA*/ + RTUNI_ALPHA, /* U+00128c: ETHIOPIC SYLLABLE XWEE*/ + RTUNI_ALPHA, /* U+00128d: ETHIOPIC SYLLABLE XWE*/ + 0, /* U+00128e: */ + 0, /* U+00128f: */ + RTUNI_ALPHA, /* U+001290: ETHIOPIC SYLLABLE NA*/ + RTUNI_ALPHA, /* U+001291: ETHIOPIC SYLLABLE NU*/ + RTUNI_ALPHA, /* U+001292: ETHIOPIC SYLLABLE NI*/ + RTUNI_ALPHA, /* U+001293: ETHIOPIC SYLLABLE NAA*/ + RTUNI_ALPHA, /* U+001294: ETHIOPIC SYLLABLE NEE*/ + RTUNI_ALPHA, /* U+001295: ETHIOPIC SYLLABLE NE*/ + RTUNI_ALPHA, /* U+001296: ETHIOPIC SYLLABLE NO*/ + RTUNI_ALPHA, /* U+001297: ETHIOPIC SYLLABLE NWA*/ + RTUNI_ALPHA, /* U+001298: ETHIOPIC SYLLABLE NYA*/ + RTUNI_ALPHA, /* U+001299: ETHIOPIC SYLLABLE NYU*/ + RTUNI_ALPHA, /* U+00129a: ETHIOPIC SYLLABLE NYI*/ + RTUNI_ALPHA, /* U+00129b: ETHIOPIC SYLLABLE NYAA*/ + RTUNI_ALPHA, /* U+00129c: ETHIOPIC SYLLABLE NYEE*/ + RTUNI_ALPHA, /* U+00129d: ETHIOPIC SYLLABLE NYE*/ + RTUNI_ALPHA, /* U+00129e: ETHIOPIC SYLLABLE NYO*/ + RTUNI_ALPHA, /* U+00129f: ETHIOPIC SYLLABLE NYWA*/ + RTUNI_ALPHA, /* U+0012a0: ETHIOPIC SYLLABLE GLOTTAL A*/ + RTUNI_ALPHA, /* U+0012a1: ETHIOPIC SYLLABLE GLOTTAL U*/ + RTUNI_ALPHA, /* U+0012a2: ETHIOPIC SYLLABLE GLOTTAL I*/ + RTUNI_ALPHA, /* U+0012a3: ETHIOPIC SYLLABLE GLOTTAL AA*/ + RTUNI_ALPHA, /* U+0012a4: ETHIOPIC SYLLABLE GLOTTAL EE*/ + RTUNI_ALPHA, /* U+0012a5: ETHIOPIC SYLLABLE GLOTTAL E*/ + RTUNI_ALPHA, /* U+0012a6: ETHIOPIC SYLLABLE GLOTTAL O*/ + RTUNI_ALPHA, /* U+0012a7: ETHIOPIC SYLLABLE GLOTTAL WA*/ + RTUNI_ALPHA, /* U+0012a8: ETHIOPIC SYLLABLE KA*/ + RTUNI_ALPHA, /* U+0012a9: ETHIOPIC SYLLABLE KU*/ + RTUNI_ALPHA, /* U+0012aa: ETHIOPIC SYLLABLE KI*/ + RTUNI_ALPHA, /* U+0012ab: ETHIOPIC SYLLABLE KAA*/ + RTUNI_ALPHA, /* U+0012ac: ETHIOPIC SYLLABLE KEE*/ + RTUNI_ALPHA, /* U+0012ad: ETHIOPIC SYLLABLE KE*/ + RTUNI_ALPHA, /* U+0012ae: ETHIOPIC SYLLABLE KO*/ + RTUNI_ALPHA, /* U+0012af: ETHIOPIC SYLLABLE KOA*/ + RTUNI_ALPHA, /* U+0012b0: ETHIOPIC SYLLABLE KWA*/ + 0, /* U+0012b1: */ + RTUNI_ALPHA, /* U+0012b2: ETHIOPIC SYLLABLE KWI*/ + RTUNI_ALPHA, /* U+0012b3: ETHIOPIC SYLLABLE KWAA*/ + RTUNI_ALPHA, /* U+0012b4: ETHIOPIC SYLLABLE KWEE*/ + RTUNI_ALPHA, /* U+0012b5: ETHIOPIC SYLLABLE KWE*/ + 0, /* U+0012b6: */ + 0, /* U+0012b7: */ + RTUNI_ALPHA, /* U+0012b8: ETHIOPIC SYLLABLE KXA*/ + RTUNI_ALPHA, /* U+0012b9: ETHIOPIC SYLLABLE KXU*/ + RTUNI_ALPHA, /* U+0012ba: ETHIOPIC SYLLABLE KXI*/ + RTUNI_ALPHA, /* U+0012bb: ETHIOPIC SYLLABLE KXAA*/ + RTUNI_ALPHA, /* U+0012bc: ETHIOPIC SYLLABLE KXEE*/ + RTUNI_ALPHA, /* U+0012bd: ETHIOPIC SYLLABLE KXE*/ + RTUNI_ALPHA, /* U+0012be: ETHIOPIC SYLLABLE KXO*/ + 0, /* U+0012bf: */ + RTUNI_ALPHA, /* U+0012c0: ETHIOPIC SYLLABLE KXWA*/ + 0, /* U+0012c1: */ + RTUNI_ALPHA, /* U+0012c2: ETHIOPIC SYLLABLE KXWI*/ + RTUNI_ALPHA, /* U+0012c3: ETHIOPIC SYLLABLE KXWAA*/ + RTUNI_ALPHA, /* U+0012c4: ETHIOPIC SYLLABLE KXWEE*/ + RTUNI_ALPHA, /* U+0012c5: ETHIOPIC SYLLABLE KXWE*/ + 0, /* U+0012c6: */ + 0, /* U+0012c7: */ + RTUNI_ALPHA, /* U+0012c8: ETHIOPIC SYLLABLE WA*/ + RTUNI_ALPHA, /* U+0012c9: ETHIOPIC SYLLABLE WU*/ + RTUNI_ALPHA, /* U+0012ca: ETHIOPIC SYLLABLE WI*/ + RTUNI_ALPHA, /* U+0012cb: ETHIOPIC SYLLABLE WAA*/ + RTUNI_ALPHA, /* U+0012cc: ETHIOPIC SYLLABLE WEE*/ + RTUNI_ALPHA, /* U+0012cd: ETHIOPIC SYLLABLE WE*/ + RTUNI_ALPHA, /* U+0012ce: ETHIOPIC SYLLABLE WO*/ + RTUNI_ALPHA, /* U+0012cf: ETHIOPIC SYLLABLE WOA*/ + RTUNI_ALPHA, /* U+0012d0: ETHIOPIC SYLLABLE PHARYNGEAL A*/ + RTUNI_ALPHA, /* U+0012d1: ETHIOPIC SYLLABLE PHARYNGEAL U*/ + RTUNI_ALPHA, /* U+0012d2: ETHIOPIC SYLLABLE PHARYNGEAL I*/ + RTUNI_ALPHA, /* U+0012d3: ETHIOPIC SYLLABLE PHARYNGEAL AA*/ + RTUNI_ALPHA, /* U+0012d4: ETHIOPIC SYLLABLE PHARYNGEAL EE*/ + RTUNI_ALPHA, /* U+0012d5: ETHIOPIC SYLLABLE PHARYNGEAL E*/ + RTUNI_ALPHA, /* U+0012d6: ETHIOPIC SYLLABLE PHARYNGEAL O*/ + 0, /* U+0012d7: */ + RTUNI_ALPHA, /* U+0012d8: ETHIOPIC SYLLABLE ZA*/ + RTUNI_ALPHA, /* U+0012d9: ETHIOPIC SYLLABLE ZU*/ + RTUNI_ALPHA, /* U+0012da: ETHIOPIC SYLLABLE ZI*/ + RTUNI_ALPHA, /* U+0012db: ETHIOPIC SYLLABLE ZAA*/ + RTUNI_ALPHA, /* U+0012dc: ETHIOPIC SYLLABLE ZEE*/ + RTUNI_ALPHA, /* U+0012dd: ETHIOPIC SYLLABLE ZE*/ + RTUNI_ALPHA, /* U+0012de: ETHIOPIC SYLLABLE ZO*/ + RTUNI_ALPHA, /* U+0012df: ETHIOPIC SYLLABLE ZWA*/ + RTUNI_ALPHA, /* U+0012e0: ETHIOPIC SYLLABLE ZHA*/ + RTUNI_ALPHA, /* U+0012e1: ETHIOPIC SYLLABLE ZHU*/ + RTUNI_ALPHA, /* U+0012e2: ETHIOPIC SYLLABLE ZHI*/ + RTUNI_ALPHA, /* U+0012e3: ETHIOPIC SYLLABLE ZHAA*/ + RTUNI_ALPHA, /* U+0012e4: ETHIOPIC SYLLABLE ZHEE*/ + RTUNI_ALPHA, /* U+0012e5: ETHIOPIC SYLLABLE ZHE*/ + RTUNI_ALPHA, /* U+0012e6: ETHIOPIC SYLLABLE ZHO*/ + RTUNI_ALPHA, /* U+0012e7: ETHIOPIC SYLLABLE ZHWA*/ + RTUNI_ALPHA, /* U+0012e8: ETHIOPIC SYLLABLE YA*/ + RTUNI_ALPHA, /* U+0012e9: ETHIOPIC SYLLABLE YU*/ + RTUNI_ALPHA, /* U+0012ea: ETHIOPIC SYLLABLE YI*/ + RTUNI_ALPHA, /* U+0012eb: ETHIOPIC SYLLABLE YAA*/ + RTUNI_ALPHA, /* U+0012ec: ETHIOPIC SYLLABLE YEE*/ + RTUNI_ALPHA, /* U+0012ed: ETHIOPIC SYLLABLE YE*/ + RTUNI_ALPHA, /* U+0012ee: ETHIOPIC SYLLABLE YO*/ + RTUNI_ALPHA, /* U+0012ef: ETHIOPIC SYLLABLE YOA*/ + RTUNI_ALPHA, /* U+0012f0: ETHIOPIC SYLLABLE DA*/ + RTUNI_ALPHA, /* U+0012f1: ETHIOPIC SYLLABLE DU*/ + RTUNI_ALPHA, /* U+0012f2: ETHIOPIC SYLLABLE DI*/ + RTUNI_ALPHA, /* U+0012f3: ETHIOPIC SYLLABLE DAA*/ + RTUNI_ALPHA, /* U+0012f4: ETHIOPIC SYLLABLE DEE*/ + RTUNI_ALPHA, /* U+0012f5: ETHIOPIC SYLLABLE DE*/ + RTUNI_ALPHA, /* U+0012f6: ETHIOPIC SYLLABLE DO*/ + RTUNI_ALPHA, /* U+0012f7: ETHIOPIC SYLLABLE DWA*/ + RTUNI_ALPHA, /* U+0012f8: ETHIOPIC SYLLABLE DDA*/ + RTUNI_ALPHA, /* U+0012f9: ETHIOPIC SYLLABLE DDU*/ + RTUNI_ALPHA, /* U+0012fa: ETHIOPIC SYLLABLE DDI*/ + RTUNI_ALPHA, /* U+0012fb: ETHIOPIC SYLLABLE DDAA*/ + RTUNI_ALPHA, /* U+0012fc: ETHIOPIC SYLLABLE DDEE*/ + RTUNI_ALPHA, /* U+0012fd: ETHIOPIC SYLLABLE DDE*/ + RTUNI_ALPHA, /* U+0012fe: ETHIOPIC SYLLABLE DDO*/ + RTUNI_ALPHA, /* U+0012ff: ETHIOPIC SYLLABLE DDWA*/ + RTUNI_ALPHA, /* U+001300: ETHIOPIC SYLLABLE JA*/ + RTUNI_ALPHA, /* U+001301: ETHIOPIC SYLLABLE JU*/ + RTUNI_ALPHA, /* U+001302: ETHIOPIC SYLLABLE JI*/ + RTUNI_ALPHA, /* U+001303: ETHIOPIC SYLLABLE JAA*/ + RTUNI_ALPHA, /* U+001304: ETHIOPIC SYLLABLE JEE*/ + RTUNI_ALPHA, /* U+001305: ETHIOPIC SYLLABLE JE*/ + RTUNI_ALPHA, /* U+001306: ETHIOPIC SYLLABLE JO*/ + RTUNI_ALPHA, /* U+001307: ETHIOPIC SYLLABLE JWA*/ + RTUNI_ALPHA, /* U+001308: ETHIOPIC SYLLABLE GA*/ + RTUNI_ALPHA, /* U+001309: ETHIOPIC SYLLABLE GU*/ + RTUNI_ALPHA, /* U+00130a: ETHIOPIC SYLLABLE GI*/ + RTUNI_ALPHA, /* U+00130b: ETHIOPIC SYLLABLE GAA*/ + RTUNI_ALPHA, /* U+00130c: ETHIOPIC SYLLABLE GEE*/ + RTUNI_ALPHA, /* U+00130d: ETHIOPIC SYLLABLE GE*/ + RTUNI_ALPHA, /* U+00130e: ETHIOPIC SYLLABLE GO*/ + RTUNI_ALPHA, /* U+00130f: ETHIOPIC SYLLABLE GOA*/ + RTUNI_ALPHA, /* U+001310: ETHIOPIC SYLLABLE GWA*/ + 0, /* U+001311: */ + RTUNI_ALPHA, /* U+001312: ETHIOPIC SYLLABLE GWI*/ + RTUNI_ALPHA, /* U+001313: ETHIOPIC SYLLABLE GWAA*/ + RTUNI_ALPHA, /* U+001314: ETHIOPIC SYLLABLE GWEE*/ + RTUNI_ALPHA, /* U+001315: ETHIOPIC SYLLABLE GWE*/ + 0, /* U+001316: */ + 0, /* U+001317: */ + RTUNI_ALPHA, /* U+001318: ETHIOPIC SYLLABLE GGA*/ + RTUNI_ALPHA, /* U+001319: ETHIOPIC SYLLABLE GGU*/ + RTUNI_ALPHA, /* U+00131a: ETHIOPIC SYLLABLE GGI*/ + RTUNI_ALPHA, /* U+00131b: ETHIOPIC SYLLABLE GGAA*/ + RTUNI_ALPHA, /* U+00131c: ETHIOPIC SYLLABLE GGEE*/ + RTUNI_ALPHA, /* U+00131d: ETHIOPIC SYLLABLE GGE*/ + RTUNI_ALPHA, /* U+00131e: ETHIOPIC SYLLABLE GGO*/ + RTUNI_ALPHA, /* U+00131f: ETHIOPIC SYLLABLE GGWAA*/ + RTUNI_ALPHA, /* U+001320: ETHIOPIC SYLLABLE THA*/ + RTUNI_ALPHA, /* U+001321: ETHIOPIC SYLLABLE THU*/ + RTUNI_ALPHA, /* U+001322: ETHIOPIC SYLLABLE THI*/ + RTUNI_ALPHA, /* U+001323: ETHIOPIC SYLLABLE THAA*/ + RTUNI_ALPHA, /* U+001324: ETHIOPIC SYLLABLE THEE*/ + RTUNI_ALPHA, /* U+001325: ETHIOPIC SYLLABLE THE*/ + RTUNI_ALPHA, /* U+001326: ETHIOPIC SYLLABLE THO*/ + RTUNI_ALPHA, /* U+001327: ETHIOPIC SYLLABLE THWA*/ + RTUNI_ALPHA, /* U+001328: ETHIOPIC SYLLABLE CHA*/ + RTUNI_ALPHA, /* U+001329: ETHIOPIC SYLLABLE CHU*/ + RTUNI_ALPHA, /* U+00132a: ETHIOPIC SYLLABLE CHI*/ + RTUNI_ALPHA, /* U+00132b: ETHIOPIC SYLLABLE CHAA*/ + RTUNI_ALPHA, /* U+00132c: ETHIOPIC SYLLABLE CHEE*/ + RTUNI_ALPHA, /* U+00132d: ETHIOPIC SYLLABLE CHE*/ + RTUNI_ALPHA, /* U+00132e: ETHIOPIC SYLLABLE CHO*/ + RTUNI_ALPHA, /* U+00132f: ETHIOPIC SYLLABLE CHWA*/ + RTUNI_ALPHA, /* U+001330: ETHIOPIC SYLLABLE PHA*/ + RTUNI_ALPHA, /* U+001331: ETHIOPIC SYLLABLE PHU*/ + RTUNI_ALPHA, /* U+001332: ETHIOPIC SYLLABLE PHI*/ + RTUNI_ALPHA, /* U+001333: ETHIOPIC SYLLABLE PHAA*/ + RTUNI_ALPHA, /* U+001334: ETHIOPIC SYLLABLE PHEE*/ + RTUNI_ALPHA, /* U+001335: ETHIOPIC SYLLABLE PHE*/ + RTUNI_ALPHA, /* U+001336: ETHIOPIC SYLLABLE PHO*/ + RTUNI_ALPHA, /* U+001337: ETHIOPIC SYLLABLE PHWA*/ + RTUNI_ALPHA, /* U+001338: ETHIOPIC SYLLABLE TSA*/ + RTUNI_ALPHA, /* U+001339: ETHIOPIC SYLLABLE TSU*/ + RTUNI_ALPHA, /* U+00133a: ETHIOPIC SYLLABLE TSI*/ + RTUNI_ALPHA, /* U+00133b: ETHIOPIC SYLLABLE TSAA*/ + RTUNI_ALPHA, /* U+00133c: ETHIOPIC SYLLABLE TSEE*/ + RTUNI_ALPHA, /* U+00133d: ETHIOPIC SYLLABLE TSE*/ + RTUNI_ALPHA, /* U+00133e: ETHIOPIC SYLLABLE TSO*/ + RTUNI_ALPHA, /* U+00133f: ETHIOPIC SYLLABLE TSWA*/ + RTUNI_ALPHA, /* U+001340: ETHIOPIC SYLLABLE TZA*/ + RTUNI_ALPHA, /* U+001341: ETHIOPIC SYLLABLE TZU*/ + RTUNI_ALPHA, /* U+001342: ETHIOPIC SYLLABLE TZI*/ + RTUNI_ALPHA, /* U+001343: ETHIOPIC SYLLABLE TZAA*/ + RTUNI_ALPHA, /* U+001344: ETHIOPIC SYLLABLE TZEE*/ + RTUNI_ALPHA, /* U+001345: ETHIOPIC SYLLABLE TZE*/ + RTUNI_ALPHA, /* U+001346: ETHIOPIC SYLLABLE TZO*/ + RTUNI_ALPHA, /* U+001347: ETHIOPIC SYLLABLE TZOA*/ + RTUNI_ALPHA, /* U+001348: ETHIOPIC SYLLABLE FA*/ + RTUNI_ALPHA, /* U+001349: ETHIOPIC SYLLABLE FU*/ + RTUNI_ALPHA, /* U+00134a: ETHIOPIC SYLLABLE FI*/ + RTUNI_ALPHA, /* U+00134b: ETHIOPIC SYLLABLE FAA*/ + RTUNI_ALPHA, /* U+00134c: ETHIOPIC SYLLABLE FEE*/ + RTUNI_ALPHA, /* U+00134d: ETHIOPIC SYLLABLE FE*/ + RTUNI_ALPHA, /* U+00134e: ETHIOPIC SYLLABLE FO*/ + RTUNI_ALPHA, /* U+00134f: ETHIOPIC SYLLABLE FWA*/ + RTUNI_ALPHA, /* U+001350: ETHIOPIC SYLLABLE PA*/ + RTUNI_ALPHA, /* U+001351: ETHIOPIC SYLLABLE PU*/ + RTUNI_ALPHA, /* U+001352: ETHIOPIC SYLLABLE PI*/ + RTUNI_ALPHA, /* U+001353: ETHIOPIC SYLLABLE PAA*/ + RTUNI_ALPHA, /* U+001354: ETHIOPIC SYLLABLE PEE*/ + RTUNI_ALPHA, /* U+001355: ETHIOPIC SYLLABLE PE*/ + RTUNI_ALPHA, /* U+001356: ETHIOPIC SYLLABLE PO*/ + RTUNI_ALPHA, /* U+001357: ETHIOPIC SYLLABLE PWA*/ + RTUNI_ALPHA, /* U+001358: ETHIOPIC SYLLABLE RYA*/ + RTUNI_ALPHA, /* U+001359: ETHIOPIC SYLLABLE MYA*/ + RTUNI_ALPHA, /* U+00135a: ETHIOPIC SYLLABLE FYA*/ + 0, /* U+00135b: */ + 0, /* U+00135c: */ + 0, /* U+00135d: ETHIOPIC COMBINING GEMINATION AND VOWEL LENGTH MARK*/ + 0, /* U+00135e: ETHIOPIC COMBINING VOWEL LENGTH MARK*/ + RTUNI_ALPHA, /* U+00135f: ETHIOPIC COMBINING GEMINATION MARK*/ + 0, /* U+001360: ETHIOPIC SECTION MARK*/ + 0, /* U+001361: ETHIOPIC WORDSPACE*/ + 0, /* U+001362: ETHIOPIC FULL STOP*/ + 0, /* U+001363: ETHIOPIC COMMA*/ + 0, /* U+001364: ETHIOPIC SEMICOLON*/ + 0, /* U+001365: ETHIOPIC COLON*/ + 0, /* U+001366: ETHIOPIC PREFACE COLON*/ + 0, /* U+001367: ETHIOPIC QUESTION MARK*/ + 0, /* U+001368: ETHIOPIC PARAGRAPH SEPARATOR*/ + 0, /* U+001369: ETHIOPIC DIGIT ONE*/ + 0, /* U+00136a: ETHIOPIC DIGIT TWO*/ + 0, /* U+00136b: ETHIOPIC DIGIT THREE*/ + 0, /* U+00136c: ETHIOPIC DIGIT FOUR*/ + 0, /* U+00136d: ETHIOPIC DIGIT FIVE*/ + 0, /* U+00136e: ETHIOPIC DIGIT SIX*/ + 0, /* U+00136f: ETHIOPIC DIGIT SEVEN*/ + 0, /* U+001370: ETHIOPIC DIGIT EIGHT*/ + 0, /* U+001371: ETHIOPIC DIGIT NINE*/ + 0, /* U+001372: ETHIOPIC NUMBER TEN*/ + 0, /* U+001373: ETHIOPIC NUMBER TWENTY*/ + 0, /* U+001374: ETHIOPIC NUMBER THIRTY*/ + 0, /* U+001375: ETHIOPIC NUMBER FORTY*/ + 0, /* U+001376: ETHIOPIC NUMBER FIFTY*/ + 0, /* U+001377: ETHIOPIC NUMBER SIXTY*/ + 0, /* U+001378: ETHIOPIC NUMBER SEVENTY*/ + 0, /* U+001379: ETHIOPIC NUMBER EIGHTY*/ + 0, /* U+00137a: ETHIOPIC NUMBER NINETY*/ + 0, /* U+00137b: ETHIOPIC NUMBER HUNDRED*/ + 0, /* U+00137c: ETHIOPIC NUMBER TEN THOUSAND*/ + 0, /* U+00137d: */ + 0, /* U+00137e: */ + 0, /* U+00137f: */ + RTUNI_ALPHA, /* U+001380: ETHIOPIC SYLLABLE SEBATBEIT MWA*/ + RTUNI_ALPHA, /* U+001381: ETHIOPIC SYLLABLE MWI*/ + RTUNI_ALPHA, /* U+001382: ETHIOPIC SYLLABLE MWEE*/ + RTUNI_ALPHA, /* U+001383: ETHIOPIC SYLLABLE MWE*/ + RTUNI_ALPHA, /* U+001384: ETHIOPIC SYLLABLE SEBATBEIT BWA*/ + RTUNI_ALPHA, /* U+001385: ETHIOPIC SYLLABLE BWI*/ + RTUNI_ALPHA, /* U+001386: ETHIOPIC SYLLABLE BWEE*/ + RTUNI_ALPHA, /* U+001387: ETHIOPIC SYLLABLE BWE*/ + RTUNI_ALPHA, /* U+001388: ETHIOPIC SYLLABLE SEBATBEIT FWA*/ + RTUNI_ALPHA, /* U+001389: ETHIOPIC SYLLABLE FWI*/ + RTUNI_ALPHA, /* U+00138a: ETHIOPIC SYLLABLE FWEE*/ + RTUNI_ALPHA, /* U+00138b: ETHIOPIC SYLLABLE FWE*/ + RTUNI_ALPHA, /* U+00138c: ETHIOPIC SYLLABLE SEBATBEIT PWA*/ + RTUNI_ALPHA, /* U+00138d: ETHIOPIC SYLLABLE PWI*/ + RTUNI_ALPHA, /* U+00138e: ETHIOPIC SYLLABLE PWEE*/ + RTUNI_ALPHA, /* U+00138f: ETHIOPIC SYLLABLE PWE*/ + 0, /* U+001390: ETHIOPIC TONAL MARK YIZET*/ + 0, /* U+001391: ETHIOPIC TONAL MARK DERET*/ + 0, /* U+001392: ETHIOPIC TONAL MARK RIKRIK*/ + 0, /* U+001393: ETHIOPIC TONAL MARK SHORT RIKRIK*/ + 0, /* U+001394: ETHIOPIC TONAL MARK DIFAT*/ + 0, /* U+001395: ETHIOPIC TONAL MARK KENAT*/ + 0, /* U+001396: ETHIOPIC TONAL MARK CHIRET*/ + 0, /* U+001397: ETHIOPIC TONAL MARK HIDET*/ + 0, /* U+001398: ETHIOPIC TONAL MARK DERET-HIDET*/ + 0, /* U+001399: ETHIOPIC TONAL MARK KURT*/ + 0, /* U+00139a: */ + 0, /* U+00139b: */ + 0, /* U+00139c: */ + 0, /* U+00139d: */ + 0, /* U+00139e: */ + 0, /* U+00139f: */ + RTUNI_ALPHA, /* U+0013a0: CHEROKEE LETTER A*/ + RTUNI_ALPHA, /* U+0013a1: CHEROKEE LETTER E*/ + RTUNI_ALPHA, /* U+0013a2: CHEROKEE LETTER I*/ + RTUNI_ALPHA, /* U+0013a3: CHEROKEE LETTER O*/ + RTUNI_ALPHA, /* U+0013a4: CHEROKEE LETTER U*/ + RTUNI_ALPHA, /* U+0013a5: CHEROKEE LETTER V*/ + RTUNI_ALPHA, /* U+0013a6: CHEROKEE LETTER GA*/ + RTUNI_ALPHA, /* U+0013a7: CHEROKEE LETTER KA*/ + RTUNI_ALPHA, /* U+0013a8: CHEROKEE LETTER GE*/ + RTUNI_ALPHA, /* U+0013a9: CHEROKEE LETTER GI*/ + RTUNI_ALPHA, /* U+0013aa: CHEROKEE LETTER GO*/ + RTUNI_ALPHA, /* U+0013ab: CHEROKEE LETTER GU*/ + RTUNI_ALPHA, /* U+0013ac: CHEROKEE LETTER GV*/ + RTUNI_ALPHA, /* U+0013ad: CHEROKEE LETTER HA*/ + RTUNI_ALPHA, /* U+0013ae: CHEROKEE LETTER HE*/ + RTUNI_ALPHA, /* U+0013af: CHEROKEE LETTER HI*/ + RTUNI_ALPHA, /* U+0013b0: CHEROKEE LETTER HO*/ + RTUNI_ALPHA, /* U+0013b1: CHEROKEE LETTER HU*/ + RTUNI_ALPHA, /* U+0013b2: CHEROKEE LETTER HV*/ + RTUNI_ALPHA, /* U+0013b3: CHEROKEE LETTER LA*/ + RTUNI_ALPHA, /* U+0013b4: CHEROKEE LETTER LE*/ + RTUNI_ALPHA, /* U+0013b5: CHEROKEE LETTER LI*/ + RTUNI_ALPHA, /* U+0013b6: CHEROKEE LETTER LO*/ + RTUNI_ALPHA, /* U+0013b7: CHEROKEE LETTER LU*/ + RTUNI_ALPHA, /* U+0013b8: CHEROKEE LETTER LV*/ + RTUNI_ALPHA, /* U+0013b9: CHEROKEE LETTER MA*/ + RTUNI_ALPHA, /* U+0013ba: CHEROKEE LETTER ME*/ + RTUNI_ALPHA, /* U+0013bb: CHEROKEE LETTER MI*/ + RTUNI_ALPHA, /* U+0013bc: CHEROKEE LETTER MO*/ + RTUNI_ALPHA, /* U+0013bd: CHEROKEE LETTER MU*/ + RTUNI_ALPHA, /* U+0013be: CHEROKEE LETTER NA*/ + RTUNI_ALPHA, /* U+0013bf: CHEROKEE LETTER HNA*/ + RTUNI_ALPHA, /* U+0013c0: CHEROKEE LETTER NAH*/ + RTUNI_ALPHA, /* U+0013c1: CHEROKEE LETTER NE*/ + RTUNI_ALPHA, /* U+0013c2: CHEROKEE LETTER NI*/ + RTUNI_ALPHA, /* U+0013c3: CHEROKEE LETTER NO*/ + RTUNI_ALPHA, /* U+0013c4: CHEROKEE LETTER NU*/ + RTUNI_ALPHA, /* U+0013c5: CHEROKEE LETTER NV*/ + RTUNI_ALPHA, /* U+0013c6: CHEROKEE LETTER QUA*/ + RTUNI_ALPHA, /* U+0013c7: CHEROKEE LETTER QUE*/ + RTUNI_ALPHA, /* U+0013c8: CHEROKEE LETTER QUI*/ + RTUNI_ALPHA, /* U+0013c9: CHEROKEE LETTER QUO*/ + RTUNI_ALPHA, /* U+0013ca: CHEROKEE LETTER QUU*/ + RTUNI_ALPHA, /* U+0013cb: CHEROKEE LETTER QUV*/ + RTUNI_ALPHA, /* U+0013cc: CHEROKEE LETTER SA*/ + RTUNI_ALPHA, /* U+0013cd: CHEROKEE LETTER S*/ + RTUNI_ALPHA, /* U+0013ce: CHEROKEE LETTER SE*/ + RTUNI_ALPHA, /* U+0013cf: CHEROKEE LETTER SI*/ + RTUNI_ALPHA, /* U+0013d0: CHEROKEE LETTER SO*/ + RTUNI_ALPHA, /* U+0013d1: CHEROKEE LETTER SU*/ + RTUNI_ALPHA, /* U+0013d2: CHEROKEE LETTER SV*/ + RTUNI_ALPHA, /* U+0013d3: CHEROKEE LETTER DA*/ + RTUNI_ALPHA, /* U+0013d4: CHEROKEE LETTER TA*/ + RTUNI_ALPHA, /* U+0013d5: CHEROKEE LETTER DE*/ + RTUNI_ALPHA, /* U+0013d6: CHEROKEE LETTER TE*/ + RTUNI_ALPHA, /* U+0013d7: CHEROKEE LETTER DI*/ + RTUNI_ALPHA, /* U+0013d8: CHEROKEE LETTER TI*/ + RTUNI_ALPHA, /* U+0013d9: CHEROKEE LETTER DO*/ + RTUNI_ALPHA, /* U+0013da: CHEROKEE LETTER DU*/ + RTUNI_ALPHA, /* U+0013db: CHEROKEE LETTER DV*/ + RTUNI_ALPHA, /* U+0013dc: CHEROKEE LETTER DLA*/ + RTUNI_ALPHA, /* U+0013dd: CHEROKEE LETTER TLA*/ + RTUNI_ALPHA, /* U+0013de: CHEROKEE LETTER TLE*/ + RTUNI_ALPHA, /* U+0013df: CHEROKEE LETTER TLI*/ + RTUNI_ALPHA, /* U+0013e0: CHEROKEE LETTER TLO*/ + RTUNI_ALPHA, /* U+0013e1: CHEROKEE LETTER TLU*/ + RTUNI_ALPHA, /* U+0013e2: CHEROKEE LETTER TLV*/ + RTUNI_ALPHA, /* U+0013e3: CHEROKEE LETTER TSA*/ + RTUNI_ALPHA, /* U+0013e4: CHEROKEE LETTER TSE*/ + RTUNI_ALPHA, /* U+0013e5: CHEROKEE LETTER TSI*/ + RTUNI_ALPHA, /* U+0013e6: CHEROKEE LETTER TSO*/ + RTUNI_ALPHA, /* U+0013e7: CHEROKEE LETTER TSU*/ + RTUNI_ALPHA, /* U+0013e8: CHEROKEE LETTER TSV*/ + RTUNI_ALPHA, /* U+0013e9: CHEROKEE LETTER WA*/ + RTUNI_ALPHA, /* U+0013ea: CHEROKEE LETTER WE*/ + RTUNI_ALPHA, /* U+0013eb: CHEROKEE LETTER WI*/ + RTUNI_ALPHA, /* U+0013ec: CHEROKEE LETTER WO*/ + RTUNI_ALPHA, /* U+0013ed: CHEROKEE LETTER WU*/ + RTUNI_ALPHA, /* U+0013ee: CHEROKEE LETTER WV*/ + RTUNI_ALPHA, /* U+0013ef: CHEROKEE LETTER YA*/ + RTUNI_ALPHA, /* U+0013f0: CHEROKEE LETTER YE*/ + RTUNI_ALPHA, /* U+0013f1: CHEROKEE LETTER YI*/ + RTUNI_ALPHA, /* U+0013f2: CHEROKEE LETTER YO*/ + RTUNI_ALPHA, /* U+0013f3: CHEROKEE LETTER YU*/ + RTUNI_ALPHA, /* U+0013f4: CHEROKEE LETTER YV*/ + 0, /* U+0013f5: */ + 0, /* U+0013f6: */ + 0, /* U+0013f7: */ + 0, /* U+0013f8: */ + 0, /* U+0013f9: */ + 0, /* U+0013fa: */ + 0, /* U+0013fb: */ + 0, /* U+0013fc: */ + 0, /* U+0013fd: */ + 0, /* U+0013fe: */ + 0, /* U+0013ff: */ + 0, /* U+001400: CANADIAN SYLLABICS HYPHEN*/ + RTUNI_ALPHA, /* U+001401: CANADIAN SYLLABICS E*/ + RTUNI_ALPHA, /* U+001402: CANADIAN SYLLABICS AAI*/ + RTUNI_ALPHA, /* U+001403: CANADIAN SYLLABICS I*/ + RTUNI_ALPHA, /* U+001404: CANADIAN SYLLABICS II*/ + RTUNI_ALPHA, /* U+001405: CANADIAN SYLLABICS O*/ + RTUNI_ALPHA, /* U+001406: CANADIAN SYLLABICS OO*/ + RTUNI_ALPHA, /* U+001407: CANADIAN SYLLABICS Y-CREE OO*/ + RTUNI_ALPHA, /* U+001408: CANADIAN SYLLABICS CARRIER EE*/ + RTUNI_ALPHA, /* U+001409: CANADIAN SYLLABICS CARRIER I*/ + RTUNI_ALPHA, /* U+00140a: CANADIAN SYLLABICS A*/ + RTUNI_ALPHA, /* U+00140b: CANADIAN SYLLABICS AA*/ + RTUNI_ALPHA, /* U+00140c: CANADIAN SYLLABICS WE*/ + RTUNI_ALPHA, /* U+00140d: CANADIAN SYLLABICS WEST-CREE WE*/ + RTUNI_ALPHA, /* U+00140e: CANADIAN SYLLABICS WI*/ + RTUNI_ALPHA, /* U+00140f: CANADIAN SYLLABICS WEST-CREE WI*/ + RTUNI_ALPHA, /* U+001410: CANADIAN SYLLABICS WII*/ + RTUNI_ALPHA, /* U+001411: CANADIAN SYLLABICS WEST-CREE WII*/ + RTUNI_ALPHA, /* U+001412: CANADIAN SYLLABICS WO*/ + RTUNI_ALPHA, /* U+001413: CANADIAN SYLLABICS WEST-CREE WO*/ + RTUNI_ALPHA, /* U+001414: CANADIAN SYLLABICS WOO*/ + RTUNI_ALPHA, /* U+001415: CANADIAN SYLLABICS WEST-CREE WOO*/ + RTUNI_ALPHA, /* U+001416: CANADIAN SYLLABICS NASKAPI WOO*/ + RTUNI_ALPHA, /* U+001417: CANADIAN SYLLABICS WA*/ + RTUNI_ALPHA, /* U+001418: CANADIAN SYLLABICS WEST-CREE WA*/ + RTUNI_ALPHA, /* U+001419: CANADIAN SYLLABICS WAA*/ + RTUNI_ALPHA, /* U+00141a: CANADIAN SYLLABICS WEST-CREE WAA*/ + RTUNI_ALPHA, /* U+00141b: CANADIAN SYLLABICS NASKAPI WAA*/ + RTUNI_ALPHA, /* U+00141c: CANADIAN SYLLABICS AI*/ + RTUNI_ALPHA, /* U+00141d: CANADIAN SYLLABICS Y-CREE W*/ + RTUNI_ALPHA, /* U+00141e: CANADIAN SYLLABICS GLOTTAL STOP*/ + RTUNI_ALPHA, /* U+00141f: CANADIAN SYLLABICS FINAL ACUTE*/ + RTUNI_ALPHA, /* U+001420: CANADIAN SYLLABICS FINAL GRAVE*/ + RTUNI_ALPHA, /* U+001421: CANADIAN SYLLABICS FINAL BOTTOM HALF RING*/ + RTUNI_ALPHA, /* U+001422: CANADIAN SYLLABICS FINAL TOP HALF RING*/ + RTUNI_ALPHA, /* U+001423: CANADIAN SYLLABICS FINAL RIGHT HALF RING*/ + RTUNI_ALPHA, /* U+001424: CANADIAN SYLLABICS FINAL RING*/ + RTUNI_ALPHA, /* U+001425: CANADIAN SYLLABICS FINAL DOUBLE ACUTE*/ + RTUNI_ALPHA, /* U+001426: CANADIAN SYLLABICS FINAL DOUBLE SHORT VERTICAL STROKES*/ + RTUNI_ALPHA, /* U+001427: CANADIAN SYLLABICS FINAL MIDDLE DOT*/ + RTUNI_ALPHA, /* U+001428: CANADIAN SYLLABICS FINAL SHORT HORIZONTAL STROKE*/ + RTUNI_ALPHA, /* U+001429: CANADIAN SYLLABICS FINAL PLUS*/ + RTUNI_ALPHA, /* U+00142a: CANADIAN SYLLABICS FINAL DOWN TACK*/ + RTUNI_ALPHA, /* U+00142b: CANADIAN SYLLABICS EN*/ + RTUNI_ALPHA, /* U+00142c: CANADIAN SYLLABICS IN*/ + RTUNI_ALPHA, /* U+00142d: CANADIAN SYLLABICS ON*/ + RTUNI_ALPHA, /* U+00142e: CANADIAN SYLLABICS AN*/ + RTUNI_ALPHA, /* U+00142f: CANADIAN SYLLABICS PE*/ + RTUNI_ALPHA, /* U+001430: CANADIAN SYLLABICS PAAI*/ + RTUNI_ALPHA, /* U+001431: CANADIAN SYLLABICS PI*/ + RTUNI_ALPHA, /* U+001432: CANADIAN SYLLABICS PII*/ + RTUNI_ALPHA, /* U+001433: CANADIAN SYLLABICS PO*/ + RTUNI_ALPHA, /* U+001434: CANADIAN SYLLABICS POO*/ + RTUNI_ALPHA, /* U+001435: CANADIAN SYLLABICS Y-CREE POO*/ + RTUNI_ALPHA, /* U+001436: CANADIAN SYLLABICS CARRIER HEE*/ + RTUNI_ALPHA, /* U+001437: CANADIAN SYLLABICS CARRIER HI*/ + RTUNI_ALPHA, /* U+001438: CANADIAN SYLLABICS PA*/ + RTUNI_ALPHA, /* U+001439: CANADIAN SYLLABICS PAA*/ + RTUNI_ALPHA, /* U+00143a: CANADIAN SYLLABICS PWE*/ + RTUNI_ALPHA, /* U+00143b: CANADIAN SYLLABICS WEST-CREE PWE*/ + RTUNI_ALPHA, /* U+00143c: CANADIAN SYLLABICS PWI*/ + RTUNI_ALPHA, /* U+00143d: CANADIAN SYLLABICS WEST-CREE PWI*/ + RTUNI_ALPHA, /* U+00143e: CANADIAN SYLLABICS PWII*/ + RTUNI_ALPHA, /* U+00143f: CANADIAN SYLLABICS WEST-CREE PWII*/ + RTUNI_ALPHA, /* U+001440: CANADIAN SYLLABICS PWO*/ + RTUNI_ALPHA, /* U+001441: CANADIAN SYLLABICS WEST-CREE PWO*/ + RTUNI_ALPHA, /* U+001442: CANADIAN SYLLABICS PWOO*/ + RTUNI_ALPHA, /* U+001443: CANADIAN SYLLABICS WEST-CREE PWOO*/ + RTUNI_ALPHA, /* U+001444: CANADIAN SYLLABICS PWA*/ + RTUNI_ALPHA, /* U+001445: CANADIAN SYLLABICS WEST-CREE PWA*/ + RTUNI_ALPHA, /* U+001446: CANADIAN SYLLABICS PWAA*/ + RTUNI_ALPHA, /* U+001447: CANADIAN SYLLABICS WEST-CREE PWAA*/ + RTUNI_ALPHA, /* U+001448: CANADIAN SYLLABICS Y-CREE PWAA*/ + RTUNI_ALPHA, /* U+001449: CANADIAN SYLLABICS P*/ + RTUNI_ALPHA, /* U+00144a: CANADIAN SYLLABICS WEST-CREE P*/ + RTUNI_ALPHA, /* U+00144b: CANADIAN SYLLABICS CARRIER H*/ + RTUNI_ALPHA, /* U+00144c: CANADIAN SYLLABICS TE*/ + RTUNI_ALPHA, /* U+00144d: CANADIAN SYLLABICS TAAI*/ + RTUNI_ALPHA, /* U+00144e: CANADIAN SYLLABICS TI*/ + RTUNI_ALPHA, /* U+00144f: CANADIAN SYLLABICS TII*/ + RTUNI_ALPHA, /* U+001450: CANADIAN SYLLABICS TO*/ + RTUNI_ALPHA, /* U+001451: CANADIAN SYLLABICS TOO*/ + RTUNI_ALPHA, /* U+001452: CANADIAN SYLLABICS Y-CREE TOO*/ + RTUNI_ALPHA, /* U+001453: CANADIAN SYLLABICS CARRIER DEE*/ + RTUNI_ALPHA, /* U+001454: CANADIAN SYLLABICS CARRIER DI*/ + RTUNI_ALPHA, /* U+001455: CANADIAN SYLLABICS TA*/ + RTUNI_ALPHA, /* U+001456: CANADIAN SYLLABICS TAA*/ + RTUNI_ALPHA, /* U+001457: CANADIAN SYLLABICS TWE*/ + RTUNI_ALPHA, /* U+001458: CANADIAN SYLLABICS WEST-CREE TWE*/ + RTUNI_ALPHA, /* U+001459: CANADIAN SYLLABICS TWI*/ + RTUNI_ALPHA, /* U+00145a: CANADIAN SYLLABICS WEST-CREE TWI*/ + RTUNI_ALPHA, /* U+00145b: CANADIAN SYLLABICS TWII*/ + RTUNI_ALPHA, /* U+00145c: CANADIAN SYLLABICS WEST-CREE TWII*/ + RTUNI_ALPHA, /* U+00145d: CANADIAN SYLLABICS TWO*/ + RTUNI_ALPHA, /* U+00145e: CANADIAN SYLLABICS WEST-CREE TWO*/ + RTUNI_ALPHA, /* U+00145f: CANADIAN SYLLABICS TWOO*/ + RTUNI_ALPHA, /* U+001460: CANADIAN SYLLABICS WEST-CREE TWOO*/ + RTUNI_ALPHA, /* U+001461: CANADIAN SYLLABICS TWA*/ + RTUNI_ALPHA, /* U+001462: CANADIAN SYLLABICS WEST-CREE TWA*/ + RTUNI_ALPHA, /* U+001463: CANADIAN SYLLABICS TWAA*/ + RTUNI_ALPHA, /* U+001464: CANADIAN SYLLABICS WEST-CREE TWAA*/ + RTUNI_ALPHA, /* U+001465: CANADIAN SYLLABICS NASKAPI TWAA*/ + RTUNI_ALPHA, /* U+001466: CANADIAN SYLLABICS T*/ + RTUNI_ALPHA, /* U+001467: CANADIAN SYLLABICS TTE*/ + RTUNI_ALPHA, /* U+001468: CANADIAN SYLLABICS TTI*/ + RTUNI_ALPHA, /* U+001469: CANADIAN SYLLABICS TTO*/ + RTUNI_ALPHA, /* U+00146a: CANADIAN SYLLABICS TTA*/ + RTUNI_ALPHA, /* U+00146b: CANADIAN SYLLABICS KE*/ + RTUNI_ALPHA, /* U+00146c: CANADIAN SYLLABICS KAAI*/ + RTUNI_ALPHA, /* U+00146d: CANADIAN SYLLABICS KI*/ + RTUNI_ALPHA, /* U+00146e: CANADIAN SYLLABICS KII*/ + RTUNI_ALPHA, /* U+00146f: CANADIAN SYLLABICS KO*/ + RTUNI_ALPHA, /* U+001470: CANADIAN SYLLABICS KOO*/ + RTUNI_ALPHA, /* U+001471: CANADIAN SYLLABICS Y-CREE KOO*/ + RTUNI_ALPHA, /* U+001472: CANADIAN SYLLABICS KA*/ + RTUNI_ALPHA, /* U+001473: CANADIAN SYLLABICS KAA*/ + RTUNI_ALPHA, /* U+001474: CANADIAN SYLLABICS KWE*/ + RTUNI_ALPHA, /* U+001475: CANADIAN SYLLABICS WEST-CREE KWE*/ + RTUNI_ALPHA, /* U+001476: CANADIAN SYLLABICS KWI*/ + RTUNI_ALPHA, /* U+001477: CANADIAN SYLLABICS WEST-CREE KWI*/ + RTUNI_ALPHA, /* U+001478: CANADIAN SYLLABICS KWII*/ + RTUNI_ALPHA, /* U+001479: CANADIAN SYLLABICS WEST-CREE KWII*/ + RTUNI_ALPHA, /* U+00147a: CANADIAN SYLLABICS KWO*/ + RTUNI_ALPHA, /* U+00147b: CANADIAN SYLLABICS WEST-CREE KWO*/ + RTUNI_ALPHA, /* U+00147c: CANADIAN SYLLABICS KWOO*/ + RTUNI_ALPHA, /* U+00147d: CANADIAN SYLLABICS WEST-CREE KWOO*/ + RTUNI_ALPHA, /* U+00147e: CANADIAN SYLLABICS KWA*/ + RTUNI_ALPHA, /* U+00147f: CANADIAN SYLLABICS WEST-CREE KWA*/ + RTUNI_ALPHA, /* U+001480: CANADIAN SYLLABICS KWAA*/ + RTUNI_ALPHA, /* U+001481: CANADIAN SYLLABICS WEST-CREE KWAA*/ + RTUNI_ALPHA, /* U+001482: CANADIAN SYLLABICS NASKAPI KWAA*/ + RTUNI_ALPHA, /* U+001483: CANADIAN SYLLABICS K*/ + RTUNI_ALPHA, /* U+001484: CANADIAN SYLLABICS KW*/ + RTUNI_ALPHA, /* U+001485: CANADIAN SYLLABICS SOUTH-SLAVEY KEH*/ + RTUNI_ALPHA, /* U+001486: CANADIAN SYLLABICS SOUTH-SLAVEY KIH*/ + RTUNI_ALPHA, /* U+001487: CANADIAN SYLLABICS SOUTH-SLAVEY KOH*/ + RTUNI_ALPHA, /* U+001488: CANADIAN SYLLABICS SOUTH-SLAVEY KAH*/ + RTUNI_ALPHA, /* U+001489: CANADIAN SYLLABICS CE*/ + RTUNI_ALPHA, /* U+00148a: CANADIAN SYLLABICS CAAI*/ + RTUNI_ALPHA, /* U+00148b: CANADIAN SYLLABICS CI*/ + RTUNI_ALPHA, /* U+00148c: CANADIAN SYLLABICS CII*/ + RTUNI_ALPHA, /* U+00148d: CANADIAN SYLLABICS CO*/ + RTUNI_ALPHA, /* U+00148e: CANADIAN SYLLABICS COO*/ + RTUNI_ALPHA, /* U+00148f: CANADIAN SYLLABICS Y-CREE COO*/ + RTUNI_ALPHA, /* U+001490: CANADIAN SYLLABICS CA*/ + RTUNI_ALPHA, /* U+001491: CANADIAN SYLLABICS CAA*/ + RTUNI_ALPHA, /* U+001492: CANADIAN SYLLABICS CWE*/ + RTUNI_ALPHA, /* U+001493: CANADIAN SYLLABICS WEST-CREE CWE*/ + RTUNI_ALPHA, /* U+001494: CANADIAN SYLLABICS CWI*/ + RTUNI_ALPHA, /* U+001495: CANADIAN SYLLABICS WEST-CREE CWI*/ + RTUNI_ALPHA, /* U+001496: CANADIAN SYLLABICS CWII*/ + RTUNI_ALPHA, /* U+001497: CANADIAN SYLLABICS WEST-CREE CWII*/ + RTUNI_ALPHA, /* U+001498: CANADIAN SYLLABICS CWO*/ + RTUNI_ALPHA, /* U+001499: CANADIAN SYLLABICS WEST-CREE CWO*/ + RTUNI_ALPHA, /* U+00149a: CANADIAN SYLLABICS CWOO*/ + RTUNI_ALPHA, /* U+00149b: CANADIAN SYLLABICS WEST-CREE CWOO*/ + RTUNI_ALPHA, /* U+00149c: CANADIAN SYLLABICS CWA*/ + RTUNI_ALPHA, /* U+00149d: CANADIAN SYLLABICS WEST-CREE CWA*/ + RTUNI_ALPHA, /* U+00149e: CANADIAN SYLLABICS CWAA*/ + RTUNI_ALPHA, /* U+00149f: CANADIAN SYLLABICS WEST-CREE CWAA*/ + RTUNI_ALPHA, /* U+0014a0: CANADIAN SYLLABICS NASKAPI CWAA*/ + RTUNI_ALPHA, /* U+0014a1: CANADIAN SYLLABICS C*/ + RTUNI_ALPHA, /* U+0014a2: CANADIAN SYLLABICS SAYISI TH*/ + RTUNI_ALPHA, /* U+0014a3: CANADIAN SYLLABICS ME*/ + RTUNI_ALPHA, /* U+0014a4: CANADIAN SYLLABICS MAAI*/ + RTUNI_ALPHA, /* U+0014a5: CANADIAN SYLLABICS MI*/ + RTUNI_ALPHA, /* U+0014a6: CANADIAN SYLLABICS MII*/ + RTUNI_ALPHA, /* U+0014a7: CANADIAN SYLLABICS MO*/ + RTUNI_ALPHA, /* U+0014a8: CANADIAN SYLLABICS MOO*/ + RTUNI_ALPHA, /* U+0014a9: CANADIAN SYLLABICS Y-CREE MOO*/ + RTUNI_ALPHA, /* U+0014aa: CANADIAN SYLLABICS MA*/ + RTUNI_ALPHA, /* U+0014ab: CANADIAN SYLLABICS MAA*/ + RTUNI_ALPHA, /* U+0014ac: CANADIAN SYLLABICS MWE*/ + RTUNI_ALPHA, /* U+0014ad: CANADIAN SYLLABICS WEST-CREE MWE*/ + RTUNI_ALPHA, /* U+0014ae: CANADIAN SYLLABICS MWI*/ + RTUNI_ALPHA, /* U+0014af: CANADIAN SYLLABICS WEST-CREE MWI*/ + RTUNI_ALPHA, /* U+0014b0: CANADIAN SYLLABICS MWII*/ + RTUNI_ALPHA, /* U+0014b1: CANADIAN SYLLABICS WEST-CREE MWII*/ + RTUNI_ALPHA, /* U+0014b2: CANADIAN SYLLABICS MWO*/ + RTUNI_ALPHA, /* U+0014b3: CANADIAN SYLLABICS WEST-CREE MWO*/ + RTUNI_ALPHA, /* U+0014b4: CANADIAN SYLLABICS MWOO*/ + RTUNI_ALPHA, /* U+0014b5: CANADIAN SYLLABICS WEST-CREE MWOO*/ + RTUNI_ALPHA, /* U+0014b6: CANADIAN SYLLABICS MWA*/ + RTUNI_ALPHA, /* U+0014b7: CANADIAN SYLLABICS WEST-CREE MWA*/ + RTUNI_ALPHA, /* U+0014b8: CANADIAN SYLLABICS MWAA*/ + RTUNI_ALPHA, /* U+0014b9: CANADIAN SYLLABICS WEST-CREE MWAA*/ + RTUNI_ALPHA, /* U+0014ba: CANADIAN SYLLABICS NASKAPI MWAA*/ + RTUNI_ALPHA, /* U+0014bb: CANADIAN SYLLABICS M*/ + RTUNI_ALPHA, /* U+0014bc: CANADIAN SYLLABICS WEST-CREE M*/ + RTUNI_ALPHA, /* U+0014bd: CANADIAN SYLLABICS MH*/ + RTUNI_ALPHA, /* U+0014be: CANADIAN SYLLABICS ATHAPASCAN M*/ + RTUNI_ALPHA, /* U+0014bf: CANADIAN SYLLABICS SAYISI M*/ + RTUNI_ALPHA, /* U+0014c0: CANADIAN SYLLABICS NE*/ + RTUNI_ALPHA, /* U+0014c1: CANADIAN SYLLABICS NAAI*/ + RTUNI_ALPHA, /* U+0014c2: CANADIAN SYLLABICS NI*/ + RTUNI_ALPHA, /* U+0014c3: CANADIAN SYLLABICS NII*/ + RTUNI_ALPHA, /* U+0014c4: CANADIAN SYLLABICS NO*/ + RTUNI_ALPHA, /* U+0014c5: CANADIAN SYLLABICS NOO*/ + RTUNI_ALPHA, /* U+0014c6: CANADIAN SYLLABICS Y-CREE NOO*/ + RTUNI_ALPHA, /* U+0014c7: CANADIAN SYLLABICS NA*/ + RTUNI_ALPHA, /* U+0014c8: CANADIAN SYLLABICS NAA*/ + RTUNI_ALPHA, /* U+0014c9: CANADIAN SYLLABICS NWE*/ + RTUNI_ALPHA, /* U+0014ca: CANADIAN SYLLABICS WEST-CREE NWE*/ + RTUNI_ALPHA, /* U+0014cb: CANADIAN SYLLABICS NWA*/ + RTUNI_ALPHA, /* U+0014cc: CANADIAN SYLLABICS WEST-CREE NWA*/ + RTUNI_ALPHA, /* U+0014cd: CANADIAN SYLLABICS NWAA*/ + RTUNI_ALPHA, /* U+0014ce: CANADIAN SYLLABICS WEST-CREE NWAA*/ + RTUNI_ALPHA, /* U+0014cf: CANADIAN SYLLABICS NASKAPI NWAA*/ + RTUNI_ALPHA, /* U+0014d0: CANADIAN SYLLABICS N*/ + RTUNI_ALPHA, /* U+0014d1: CANADIAN SYLLABICS CARRIER NG*/ + RTUNI_ALPHA, /* U+0014d2: CANADIAN SYLLABICS NH*/ + RTUNI_ALPHA, /* U+0014d3: CANADIAN SYLLABICS LE*/ + RTUNI_ALPHA, /* U+0014d4: CANADIAN SYLLABICS LAAI*/ + RTUNI_ALPHA, /* U+0014d5: CANADIAN SYLLABICS LI*/ + RTUNI_ALPHA, /* U+0014d6: CANADIAN SYLLABICS LII*/ + RTUNI_ALPHA, /* U+0014d7: CANADIAN SYLLABICS LO*/ + RTUNI_ALPHA, /* U+0014d8: CANADIAN SYLLABICS LOO*/ + RTUNI_ALPHA, /* U+0014d9: CANADIAN SYLLABICS Y-CREE LOO*/ + RTUNI_ALPHA, /* U+0014da: CANADIAN SYLLABICS LA*/ + RTUNI_ALPHA, /* U+0014db: CANADIAN SYLLABICS LAA*/ + RTUNI_ALPHA, /* U+0014dc: CANADIAN SYLLABICS LWE*/ + RTUNI_ALPHA, /* U+0014dd: CANADIAN SYLLABICS WEST-CREE LWE*/ + RTUNI_ALPHA, /* U+0014de: CANADIAN SYLLABICS LWI*/ + RTUNI_ALPHA, /* U+0014df: CANADIAN SYLLABICS WEST-CREE LWI*/ + RTUNI_ALPHA, /* U+0014e0: CANADIAN SYLLABICS LWII*/ + RTUNI_ALPHA, /* U+0014e1: CANADIAN SYLLABICS WEST-CREE LWII*/ + RTUNI_ALPHA, /* U+0014e2: CANADIAN SYLLABICS LWO*/ + RTUNI_ALPHA, /* U+0014e3: CANADIAN SYLLABICS WEST-CREE LWO*/ + RTUNI_ALPHA, /* U+0014e4: CANADIAN SYLLABICS LWOO*/ + RTUNI_ALPHA, /* U+0014e5: CANADIAN SYLLABICS WEST-CREE LWOO*/ + RTUNI_ALPHA, /* U+0014e6: CANADIAN SYLLABICS LWA*/ + RTUNI_ALPHA, /* U+0014e7: CANADIAN SYLLABICS WEST-CREE LWA*/ + RTUNI_ALPHA, /* U+0014e8: CANADIAN SYLLABICS LWAA*/ + RTUNI_ALPHA, /* U+0014e9: CANADIAN SYLLABICS WEST-CREE LWAA*/ + RTUNI_ALPHA, /* U+0014ea: CANADIAN SYLLABICS L*/ + RTUNI_ALPHA, /* U+0014eb: CANADIAN SYLLABICS WEST-CREE L*/ + RTUNI_ALPHA, /* U+0014ec: CANADIAN SYLLABICS MEDIAL L*/ + RTUNI_ALPHA, /* U+0014ed: CANADIAN SYLLABICS SE*/ + RTUNI_ALPHA, /* U+0014ee: CANADIAN SYLLABICS SAAI*/ + RTUNI_ALPHA, /* U+0014ef: CANADIAN SYLLABICS SI*/ + RTUNI_ALPHA, /* U+0014f0: CANADIAN SYLLABICS SII*/ + RTUNI_ALPHA, /* U+0014f1: CANADIAN SYLLABICS SO*/ + RTUNI_ALPHA, /* U+0014f2: CANADIAN SYLLABICS SOO*/ + RTUNI_ALPHA, /* U+0014f3: CANADIAN SYLLABICS Y-CREE SOO*/ + RTUNI_ALPHA, /* U+0014f4: CANADIAN SYLLABICS SA*/ + RTUNI_ALPHA, /* U+0014f5: CANADIAN SYLLABICS SAA*/ + RTUNI_ALPHA, /* U+0014f6: CANADIAN SYLLABICS SWE*/ + RTUNI_ALPHA, /* U+0014f7: CANADIAN SYLLABICS WEST-CREE SWE*/ + RTUNI_ALPHA, /* U+0014f8: CANADIAN SYLLABICS SWI*/ + RTUNI_ALPHA, /* U+0014f9: CANADIAN SYLLABICS WEST-CREE SWI*/ + RTUNI_ALPHA, /* U+0014fa: CANADIAN SYLLABICS SWII*/ + RTUNI_ALPHA, /* U+0014fb: CANADIAN SYLLABICS WEST-CREE SWII*/ + RTUNI_ALPHA, /* U+0014fc: CANADIAN SYLLABICS SWO*/ + RTUNI_ALPHA, /* U+0014fd: CANADIAN SYLLABICS WEST-CREE SWO*/ + RTUNI_ALPHA, /* U+0014fe: CANADIAN SYLLABICS SWOO*/ + RTUNI_ALPHA, /* U+0014ff: CANADIAN SYLLABICS WEST-CREE SWOO*/ + RTUNI_ALPHA, /* U+001500: CANADIAN SYLLABICS SWA*/ + RTUNI_ALPHA, /* U+001501: CANADIAN SYLLABICS WEST-CREE SWA*/ + RTUNI_ALPHA, /* U+001502: CANADIAN SYLLABICS SWAA*/ + RTUNI_ALPHA, /* U+001503: CANADIAN SYLLABICS WEST-CREE SWAA*/ + RTUNI_ALPHA, /* U+001504: CANADIAN SYLLABICS NASKAPI SWAA*/ + RTUNI_ALPHA, /* U+001505: CANADIAN SYLLABICS S*/ + RTUNI_ALPHA, /* U+001506: CANADIAN SYLLABICS ATHAPASCAN S*/ + RTUNI_ALPHA, /* U+001507: CANADIAN SYLLABICS SW*/ + RTUNI_ALPHA, /* U+001508: CANADIAN SYLLABICS BLACKFOOT S*/ + RTUNI_ALPHA, /* U+001509: CANADIAN SYLLABICS MOOSE-CREE SK*/ + RTUNI_ALPHA, /* U+00150a: CANADIAN SYLLABICS NASKAPI SKW*/ + RTUNI_ALPHA, /* U+00150b: CANADIAN SYLLABICS NASKAPI S-W*/ + RTUNI_ALPHA, /* U+00150c: CANADIAN SYLLABICS NASKAPI SPWA*/ + RTUNI_ALPHA, /* U+00150d: CANADIAN SYLLABICS NASKAPI STWA*/ + RTUNI_ALPHA, /* U+00150e: CANADIAN SYLLABICS NASKAPI SKWA*/ + RTUNI_ALPHA, /* U+00150f: CANADIAN SYLLABICS NASKAPI SCWA*/ + RTUNI_ALPHA, /* U+001510: CANADIAN SYLLABICS SHE*/ + RTUNI_ALPHA, /* U+001511: CANADIAN SYLLABICS SHI*/ + RTUNI_ALPHA, /* U+001512: CANADIAN SYLLABICS SHII*/ + RTUNI_ALPHA, /* U+001513: CANADIAN SYLLABICS SHO*/ + RTUNI_ALPHA, /* U+001514: CANADIAN SYLLABICS SHOO*/ + RTUNI_ALPHA, /* U+001515: CANADIAN SYLLABICS SHA*/ + RTUNI_ALPHA, /* U+001516: CANADIAN SYLLABICS SHAA*/ + RTUNI_ALPHA, /* U+001517: CANADIAN SYLLABICS SHWE*/ + RTUNI_ALPHA, /* U+001518: CANADIAN SYLLABICS WEST-CREE SHWE*/ + RTUNI_ALPHA, /* U+001519: CANADIAN SYLLABICS SHWI*/ + RTUNI_ALPHA, /* U+00151a: CANADIAN SYLLABICS WEST-CREE SHWI*/ + RTUNI_ALPHA, /* U+00151b: CANADIAN SYLLABICS SHWII*/ + RTUNI_ALPHA, /* U+00151c: CANADIAN SYLLABICS WEST-CREE SHWII*/ + RTUNI_ALPHA, /* U+00151d: CANADIAN SYLLABICS SHWO*/ + RTUNI_ALPHA, /* U+00151e: CANADIAN SYLLABICS WEST-CREE SHWO*/ + RTUNI_ALPHA, /* U+00151f: CANADIAN SYLLABICS SHWOO*/ + RTUNI_ALPHA, /* U+001520: CANADIAN SYLLABICS WEST-CREE SHWOO*/ + RTUNI_ALPHA, /* U+001521: CANADIAN SYLLABICS SHWA*/ + RTUNI_ALPHA, /* U+001522: CANADIAN SYLLABICS WEST-CREE SHWA*/ + RTUNI_ALPHA, /* U+001523: CANADIAN SYLLABICS SHWAA*/ + RTUNI_ALPHA, /* U+001524: CANADIAN SYLLABICS WEST-CREE SHWAA*/ + RTUNI_ALPHA, /* U+001525: CANADIAN SYLLABICS SH*/ + RTUNI_ALPHA, /* U+001526: CANADIAN SYLLABICS YE*/ + RTUNI_ALPHA, /* U+001527: CANADIAN SYLLABICS YAAI*/ + RTUNI_ALPHA, /* U+001528: CANADIAN SYLLABICS YI*/ + RTUNI_ALPHA, /* U+001529: CANADIAN SYLLABICS YII*/ + RTUNI_ALPHA, /* U+00152a: CANADIAN SYLLABICS YO*/ + RTUNI_ALPHA, /* U+00152b: CANADIAN SYLLABICS YOO*/ + RTUNI_ALPHA, /* U+00152c: CANADIAN SYLLABICS Y-CREE YOO*/ + RTUNI_ALPHA, /* U+00152d: CANADIAN SYLLABICS YA*/ + RTUNI_ALPHA, /* U+00152e: CANADIAN SYLLABICS YAA*/ + RTUNI_ALPHA, /* U+00152f: CANADIAN SYLLABICS YWE*/ + RTUNI_ALPHA, /* U+001530: CANADIAN SYLLABICS WEST-CREE YWE*/ + RTUNI_ALPHA, /* U+001531: CANADIAN SYLLABICS YWI*/ + RTUNI_ALPHA, /* U+001532: CANADIAN SYLLABICS WEST-CREE YWI*/ + RTUNI_ALPHA, /* U+001533: CANADIAN SYLLABICS YWII*/ + RTUNI_ALPHA, /* U+001534: CANADIAN SYLLABICS WEST-CREE YWII*/ + RTUNI_ALPHA, /* U+001535: CANADIAN SYLLABICS YWO*/ + RTUNI_ALPHA, /* U+001536: CANADIAN SYLLABICS WEST-CREE YWO*/ + RTUNI_ALPHA, /* U+001537: CANADIAN SYLLABICS YWOO*/ + RTUNI_ALPHA, /* U+001538: CANADIAN SYLLABICS WEST-CREE YWOO*/ + RTUNI_ALPHA, /* U+001539: CANADIAN SYLLABICS YWA*/ + RTUNI_ALPHA, /* U+00153a: CANADIAN SYLLABICS WEST-CREE YWA*/ + RTUNI_ALPHA, /* U+00153b: CANADIAN SYLLABICS YWAA*/ + RTUNI_ALPHA, /* U+00153c: CANADIAN SYLLABICS WEST-CREE YWAA*/ + RTUNI_ALPHA, /* U+00153d: CANADIAN SYLLABICS NASKAPI YWAA*/ + RTUNI_ALPHA, /* U+00153e: CANADIAN SYLLABICS Y*/ + RTUNI_ALPHA, /* U+00153f: CANADIAN SYLLABICS BIBLE-CREE Y*/ + RTUNI_ALPHA, /* U+001540: CANADIAN SYLLABICS WEST-CREE Y*/ + RTUNI_ALPHA, /* U+001541: CANADIAN SYLLABICS SAYISI YI*/ + RTUNI_ALPHA, /* U+001542: CANADIAN SYLLABICS RE*/ + RTUNI_ALPHA, /* U+001543: CANADIAN SYLLABICS R-CREE RE*/ + RTUNI_ALPHA, /* U+001544: CANADIAN SYLLABICS WEST-CREE LE*/ + RTUNI_ALPHA, /* U+001545: CANADIAN SYLLABICS RAAI*/ + RTUNI_ALPHA, /* U+001546: CANADIAN SYLLABICS RI*/ + RTUNI_ALPHA, /* U+001547: CANADIAN SYLLABICS RII*/ + RTUNI_ALPHA, /* U+001548: CANADIAN SYLLABICS RO*/ + RTUNI_ALPHA, /* U+001549: CANADIAN SYLLABICS ROO*/ + RTUNI_ALPHA, /* U+00154a: CANADIAN SYLLABICS WEST-CREE LO*/ + RTUNI_ALPHA, /* U+00154b: CANADIAN SYLLABICS RA*/ + RTUNI_ALPHA, /* U+00154c: CANADIAN SYLLABICS RAA*/ + RTUNI_ALPHA, /* U+00154d: CANADIAN SYLLABICS WEST-CREE LA*/ + RTUNI_ALPHA, /* U+00154e: CANADIAN SYLLABICS RWAA*/ + RTUNI_ALPHA, /* U+00154f: CANADIAN SYLLABICS WEST-CREE RWAA*/ + RTUNI_ALPHA, /* U+001550: CANADIAN SYLLABICS R*/ + RTUNI_ALPHA, /* U+001551: CANADIAN SYLLABICS WEST-CREE R*/ + RTUNI_ALPHA, /* U+001552: CANADIAN SYLLABICS MEDIAL R*/ + RTUNI_ALPHA, /* U+001553: CANADIAN SYLLABICS FE*/ + RTUNI_ALPHA, /* U+001554: CANADIAN SYLLABICS FAAI*/ + RTUNI_ALPHA, /* U+001555: CANADIAN SYLLABICS FI*/ + RTUNI_ALPHA, /* U+001556: CANADIAN SYLLABICS FII*/ + RTUNI_ALPHA, /* U+001557: CANADIAN SYLLABICS FO*/ + RTUNI_ALPHA, /* U+001558: CANADIAN SYLLABICS FOO*/ + RTUNI_ALPHA, /* U+001559: CANADIAN SYLLABICS FA*/ + RTUNI_ALPHA, /* U+00155a: CANADIAN SYLLABICS FAA*/ + RTUNI_ALPHA, /* U+00155b: CANADIAN SYLLABICS FWAA*/ + RTUNI_ALPHA, /* U+00155c: CANADIAN SYLLABICS WEST-CREE FWAA*/ + RTUNI_ALPHA, /* U+00155d: CANADIAN SYLLABICS F*/ + RTUNI_ALPHA, /* U+00155e: CANADIAN SYLLABICS THE*/ + RTUNI_ALPHA, /* U+00155f: CANADIAN SYLLABICS N-CREE THE*/ + RTUNI_ALPHA, /* U+001560: CANADIAN SYLLABICS THI*/ + RTUNI_ALPHA, /* U+001561: CANADIAN SYLLABICS N-CREE THI*/ + RTUNI_ALPHA, /* U+001562: CANADIAN SYLLABICS THII*/ + RTUNI_ALPHA, /* U+001563: CANADIAN SYLLABICS N-CREE THII*/ + RTUNI_ALPHA, /* U+001564: CANADIAN SYLLABICS THO*/ + RTUNI_ALPHA, /* U+001565: CANADIAN SYLLABICS THOO*/ + RTUNI_ALPHA, /* U+001566: CANADIAN SYLLABICS THA*/ + RTUNI_ALPHA, /* U+001567: CANADIAN SYLLABICS THAA*/ + RTUNI_ALPHA, /* U+001568: CANADIAN SYLLABICS THWAA*/ + RTUNI_ALPHA, /* U+001569: CANADIAN SYLLABICS WEST-CREE THWAA*/ + RTUNI_ALPHA, /* U+00156a: CANADIAN SYLLABICS TH*/ + RTUNI_ALPHA, /* U+00156b: CANADIAN SYLLABICS TTHE*/ + RTUNI_ALPHA, /* U+00156c: CANADIAN SYLLABICS TTHI*/ + RTUNI_ALPHA, /* U+00156d: CANADIAN SYLLABICS TTHO*/ + RTUNI_ALPHA, /* U+00156e: CANADIAN SYLLABICS TTHA*/ + RTUNI_ALPHA, /* U+00156f: CANADIAN SYLLABICS TTH*/ + RTUNI_ALPHA, /* U+001570: CANADIAN SYLLABICS TYE*/ + RTUNI_ALPHA, /* U+001571: CANADIAN SYLLABICS TYI*/ + RTUNI_ALPHA, /* U+001572: CANADIAN SYLLABICS TYO*/ + RTUNI_ALPHA, /* U+001573: CANADIAN SYLLABICS TYA*/ + RTUNI_ALPHA, /* U+001574: CANADIAN SYLLABICS NUNAVIK HE*/ + RTUNI_ALPHA, /* U+001575: CANADIAN SYLLABICS NUNAVIK HI*/ + RTUNI_ALPHA, /* U+001576: CANADIAN SYLLABICS NUNAVIK HII*/ + RTUNI_ALPHA, /* U+001577: CANADIAN SYLLABICS NUNAVIK HO*/ + RTUNI_ALPHA, /* U+001578: CANADIAN SYLLABICS NUNAVIK HOO*/ + RTUNI_ALPHA, /* U+001579: CANADIAN SYLLABICS NUNAVIK HA*/ + RTUNI_ALPHA, /* U+00157a: CANADIAN SYLLABICS NUNAVIK HAA*/ + RTUNI_ALPHA, /* U+00157b: CANADIAN SYLLABICS NUNAVIK H*/ + RTUNI_ALPHA, /* U+00157c: CANADIAN SYLLABICS NUNAVUT H*/ + RTUNI_ALPHA, /* U+00157d: CANADIAN SYLLABICS HK*/ + RTUNI_ALPHA, /* U+00157e: CANADIAN SYLLABICS QAAI*/ + RTUNI_ALPHA, /* U+00157f: CANADIAN SYLLABICS QI*/ + RTUNI_ALPHA, /* U+001580: CANADIAN SYLLABICS QII*/ + RTUNI_ALPHA, /* U+001581: CANADIAN SYLLABICS QO*/ + RTUNI_ALPHA, /* U+001582: CANADIAN SYLLABICS QOO*/ + RTUNI_ALPHA, /* U+001583: CANADIAN SYLLABICS QA*/ + RTUNI_ALPHA, /* U+001584: CANADIAN SYLLABICS QAA*/ + RTUNI_ALPHA, /* U+001585: CANADIAN SYLLABICS Q*/ + RTUNI_ALPHA, /* U+001586: CANADIAN SYLLABICS TLHE*/ + RTUNI_ALPHA, /* U+001587: CANADIAN SYLLABICS TLHI*/ + RTUNI_ALPHA, /* U+001588: CANADIAN SYLLABICS TLHO*/ + RTUNI_ALPHA, /* U+001589: CANADIAN SYLLABICS TLHA*/ + RTUNI_ALPHA, /* U+00158a: CANADIAN SYLLABICS WEST-CREE RE*/ + RTUNI_ALPHA, /* U+00158b: CANADIAN SYLLABICS WEST-CREE RI*/ + RTUNI_ALPHA, /* U+00158c: CANADIAN SYLLABICS WEST-CREE RO*/ + RTUNI_ALPHA, /* U+00158d: CANADIAN SYLLABICS WEST-CREE RA*/ + RTUNI_ALPHA, /* U+00158e: CANADIAN SYLLABICS NGAAI*/ + RTUNI_ALPHA, /* U+00158f: CANADIAN SYLLABICS NGI*/ + RTUNI_ALPHA, /* U+001590: CANADIAN SYLLABICS NGII*/ + RTUNI_ALPHA, /* U+001591: CANADIAN SYLLABICS NGO*/ + RTUNI_ALPHA, /* U+001592: CANADIAN SYLLABICS NGOO*/ + RTUNI_ALPHA, /* U+001593: CANADIAN SYLLABICS NGA*/ + RTUNI_ALPHA, /* U+001594: CANADIAN SYLLABICS NGAA*/ + RTUNI_ALPHA, /* U+001595: CANADIAN SYLLABICS NG*/ + RTUNI_ALPHA, /* U+001596: CANADIAN SYLLABICS NNG*/ + RTUNI_ALPHA, /* U+001597: CANADIAN SYLLABICS SAYISI SHE*/ + RTUNI_ALPHA, /* U+001598: CANADIAN SYLLABICS SAYISI SHI*/ + RTUNI_ALPHA, /* U+001599: CANADIAN SYLLABICS SAYISI SHO*/ + RTUNI_ALPHA, /* U+00159a: CANADIAN SYLLABICS SAYISI SHA*/ + RTUNI_ALPHA, /* U+00159b: CANADIAN SYLLABICS WOODS-CREE THE*/ + RTUNI_ALPHA, /* U+00159c: CANADIAN SYLLABICS WOODS-CREE THI*/ + RTUNI_ALPHA, /* U+00159d: CANADIAN SYLLABICS WOODS-CREE THO*/ + RTUNI_ALPHA, /* U+00159e: CANADIAN SYLLABICS WOODS-CREE THA*/ + RTUNI_ALPHA, /* U+00159f: CANADIAN SYLLABICS WOODS-CREE TH*/ + RTUNI_ALPHA, /* U+0015a0: CANADIAN SYLLABICS LHI*/ + RTUNI_ALPHA, /* U+0015a1: CANADIAN SYLLABICS LHII*/ + RTUNI_ALPHA, /* U+0015a2: CANADIAN SYLLABICS LHO*/ + RTUNI_ALPHA, /* U+0015a3: CANADIAN SYLLABICS LHOO*/ + RTUNI_ALPHA, /* U+0015a4: CANADIAN SYLLABICS LHA*/ + RTUNI_ALPHA, /* U+0015a5: CANADIAN SYLLABICS LHAA*/ + RTUNI_ALPHA, /* U+0015a6: CANADIAN SYLLABICS LH*/ + RTUNI_ALPHA, /* U+0015a7: CANADIAN SYLLABICS TH-CREE THE*/ + RTUNI_ALPHA, /* U+0015a8: CANADIAN SYLLABICS TH-CREE THI*/ + RTUNI_ALPHA, /* U+0015a9: CANADIAN SYLLABICS TH-CREE THII*/ + RTUNI_ALPHA, /* U+0015aa: CANADIAN SYLLABICS TH-CREE THO*/ + RTUNI_ALPHA, /* U+0015ab: CANADIAN SYLLABICS TH-CREE THOO*/ + RTUNI_ALPHA, /* U+0015ac: CANADIAN SYLLABICS TH-CREE THA*/ + RTUNI_ALPHA, /* U+0015ad: CANADIAN SYLLABICS TH-CREE THAA*/ + RTUNI_ALPHA, /* U+0015ae: CANADIAN SYLLABICS TH-CREE TH*/ + RTUNI_ALPHA, /* U+0015af: CANADIAN SYLLABICS AIVILIK B*/ + RTUNI_ALPHA, /* U+0015b0: CANADIAN SYLLABICS BLACKFOOT E*/ + RTUNI_ALPHA, /* U+0015b1: CANADIAN SYLLABICS BLACKFOOT I*/ + RTUNI_ALPHA, /* U+0015b2: CANADIAN SYLLABICS BLACKFOOT O*/ + RTUNI_ALPHA, /* U+0015b3: CANADIAN SYLLABICS BLACKFOOT A*/ + RTUNI_ALPHA, /* U+0015b4: CANADIAN SYLLABICS BLACKFOOT WE*/ + RTUNI_ALPHA, /* U+0015b5: CANADIAN SYLLABICS BLACKFOOT WI*/ + RTUNI_ALPHA, /* U+0015b6: CANADIAN SYLLABICS BLACKFOOT WO*/ + RTUNI_ALPHA, /* U+0015b7: CANADIAN SYLLABICS BLACKFOOT WA*/ + RTUNI_ALPHA, /* U+0015b8: CANADIAN SYLLABICS BLACKFOOT NE*/ + RTUNI_ALPHA, /* U+0015b9: CANADIAN SYLLABICS BLACKFOOT NI*/ + RTUNI_ALPHA, /* U+0015ba: CANADIAN SYLLABICS BLACKFOOT NO*/ + RTUNI_ALPHA, /* U+0015bb: CANADIAN SYLLABICS BLACKFOOT NA*/ + RTUNI_ALPHA, /* U+0015bc: CANADIAN SYLLABICS BLACKFOOT KE*/ + RTUNI_ALPHA, /* U+0015bd: CANADIAN SYLLABICS BLACKFOOT KI*/ + RTUNI_ALPHA, /* U+0015be: CANADIAN SYLLABICS BLACKFOOT KO*/ + RTUNI_ALPHA, /* U+0015bf: CANADIAN SYLLABICS BLACKFOOT KA*/ + RTUNI_ALPHA, /* U+0015c0: CANADIAN SYLLABICS SAYISI HE*/ + RTUNI_ALPHA, /* U+0015c1: CANADIAN SYLLABICS SAYISI HI*/ + RTUNI_ALPHA, /* U+0015c2: CANADIAN SYLLABICS SAYISI HO*/ + RTUNI_ALPHA, /* U+0015c3: CANADIAN SYLLABICS SAYISI HA*/ + RTUNI_ALPHA, /* U+0015c4: CANADIAN SYLLABICS CARRIER GHU*/ + RTUNI_ALPHA, /* U+0015c5: CANADIAN SYLLABICS CARRIER GHO*/ + RTUNI_ALPHA, /* U+0015c6: CANADIAN SYLLABICS CARRIER GHE*/ + RTUNI_ALPHA, /* U+0015c7: CANADIAN SYLLABICS CARRIER GHEE*/ + RTUNI_ALPHA, /* U+0015c8: CANADIAN SYLLABICS CARRIER GHI*/ + RTUNI_ALPHA, /* U+0015c9: CANADIAN SYLLABICS CARRIER GHA*/ + RTUNI_ALPHA, /* U+0015ca: CANADIAN SYLLABICS CARRIER RU*/ + RTUNI_ALPHA, /* U+0015cb: CANADIAN SYLLABICS CARRIER RO*/ + RTUNI_ALPHA, /* U+0015cc: CANADIAN SYLLABICS CARRIER RE*/ + RTUNI_ALPHA, /* U+0015cd: CANADIAN SYLLABICS CARRIER REE*/ + RTUNI_ALPHA, /* U+0015ce: CANADIAN SYLLABICS CARRIER RI*/ + RTUNI_ALPHA, /* U+0015cf: CANADIAN SYLLABICS CARRIER RA*/ + RTUNI_ALPHA, /* U+0015d0: CANADIAN SYLLABICS CARRIER WU*/ + RTUNI_ALPHA, /* U+0015d1: CANADIAN SYLLABICS CARRIER WO*/ + RTUNI_ALPHA, /* U+0015d2: CANADIAN SYLLABICS CARRIER WE*/ + RTUNI_ALPHA, /* U+0015d3: CANADIAN SYLLABICS CARRIER WEE*/ + RTUNI_ALPHA, /* U+0015d4: CANADIAN SYLLABICS CARRIER WI*/ + RTUNI_ALPHA, /* U+0015d5: CANADIAN SYLLABICS CARRIER WA*/ + RTUNI_ALPHA, /* U+0015d6: CANADIAN SYLLABICS CARRIER HWU*/ + RTUNI_ALPHA, /* U+0015d7: CANADIAN SYLLABICS CARRIER HWO*/ + RTUNI_ALPHA, /* U+0015d8: CANADIAN SYLLABICS CARRIER HWE*/ + RTUNI_ALPHA, /* U+0015d9: CANADIAN SYLLABICS CARRIER HWEE*/ + RTUNI_ALPHA, /* U+0015da: CANADIAN SYLLABICS CARRIER HWI*/ + RTUNI_ALPHA, /* U+0015db: CANADIAN SYLLABICS CARRIER HWA*/ + RTUNI_ALPHA, /* U+0015dc: CANADIAN SYLLABICS CARRIER THU*/ + RTUNI_ALPHA, /* U+0015dd: CANADIAN SYLLABICS CARRIER THO*/ + RTUNI_ALPHA, /* U+0015de: CANADIAN SYLLABICS CARRIER THE*/ + RTUNI_ALPHA, /* U+0015df: CANADIAN SYLLABICS CARRIER THEE*/ + RTUNI_ALPHA, /* U+0015e0: CANADIAN SYLLABICS CARRIER THI*/ + RTUNI_ALPHA, /* U+0015e1: CANADIAN SYLLABICS CARRIER THA*/ + RTUNI_ALPHA, /* U+0015e2: CANADIAN SYLLABICS CARRIER TTU*/ + RTUNI_ALPHA, /* U+0015e3: CANADIAN SYLLABICS CARRIER TTO*/ + RTUNI_ALPHA, /* U+0015e4: CANADIAN SYLLABICS CARRIER TTE*/ + RTUNI_ALPHA, /* U+0015e5: CANADIAN SYLLABICS CARRIER TTEE*/ + RTUNI_ALPHA, /* U+0015e6: CANADIAN SYLLABICS CARRIER TTI*/ + RTUNI_ALPHA, /* U+0015e7: CANADIAN SYLLABICS CARRIER TTA*/ + RTUNI_ALPHA, /* U+0015e8: CANADIAN SYLLABICS CARRIER PU*/ + RTUNI_ALPHA, /* U+0015e9: CANADIAN SYLLABICS CARRIER PO*/ + RTUNI_ALPHA, /* U+0015ea: CANADIAN SYLLABICS CARRIER PE*/ + RTUNI_ALPHA, /* U+0015eb: CANADIAN SYLLABICS CARRIER PEE*/ + RTUNI_ALPHA, /* U+0015ec: CANADIAN SYLLABICS CARRIER PI*/ + RTUNI_ALPHA, /* U+0015ed: CANADIAN SYLLABICS CARRIER PA*/ + RTUNI_ALPHA, /* U+0015ee: CANADIAN SYLLABICS CARRIER P*/ + RTUNI_ALPHA, /* U+0015ef: CANADIAN SYLLABICS CARRIER GU*/ + RTUNI_ALPHA, /* U+0015f0: CANADIAN SYLLABICS CARRIER GO*/ + RTUNI_ALPHA, /* U+0015f1: CANADIAN SYLLABICS CARRIER GE*/ + RTUNI_ALPHA, /* U+0015f2: CANADIAN SYLLABICS CARRIER GEE*/ + RTUNI_ALPHA, /* U+0015f3: CANADIAN SYLLABICS CARRIER GI*/ + RTUNI_ALPHA, /* U+0015f4: CANADIAN SYLLABICS CARRIER GA*/ + RTUNI_ALPHA, /* U+0015f5: CANADIAN SYLLABICS CARRIER KHU*/ + RTUNI_ALPHA, /* U+0015f6: CANADIAN SYLLABICS CARRIER KHO*/ + RTUNI_ALPHA, /* U+0015f7: CANADIAN SYLLABICS CARRIER KHE*/ + RTUNI_ALPHA, /* U+0015f8: CANADIAN SYLLABICS CARRIER KHEE*/ + RTUNI_ALPHA, /* U+0015f9: CANADIAN SYLLABICS CARRIER KHI*/ + RTUNI_ALPHA, /* U+0015fa: CANADIAN SYLLABICS CARRIER KHA*/ + RTUNI_ALPHA, /* U+0015fb: CANADIAN SYLLABICS CARRIER KKU*/ + RTUNI_ALPHA, /* U+0015fc: CANADIAN SYLLABICS CARRIER KKO*/ + RTUNI_ALPHA, /* U+0015fd: CANADIAN SYLLABICS CARRIER KKE*/ + RTUNI_ALPHA, /* U+0015fe: CANADIAN SYLLABICS CARRIER KKEE*/ + RTUNI_ALPHA, /* U+0015ff: CANADIAN SYLLABICS CARRIER KKI*/ + RTUNI_ALPHA, /* U+001600: CANADIAN SYLLABICS CARRIER KKA*/ + RTUNI_ALPHA, /* U+001601: CANADIAN SYLLABICS CARRIER KK*/ + RTUNI_ALPHA, /* U+001602: CANADIAN SYLLABICS CARRIER NU*/ + RTUNI_ALPHA, /* U+001603: CANADIAN SYLLABICS CARRIER NO*/ + RTUNI_ALPHA, /* U+001604: CANADIAN SYLLABICS CARRIER NE*/ + RTUNI_ALPHA, /* U+001605: CANADIAN SYLLABICS CARRIER NEE*/ + RTUNI_ALPHA, /* U+001606: CANADIAN SYLLABICS CARRIER NI*/ + RTUNI_ALPHA, /* U+001607: CANADIAN SYLLABICS CARRIER NA*/ + RTUNI_ALPHA, /* U+001608: CANADIAN SYLLABICS CARRIER MU*/ + RTUNI_ALPHA, /* U+001609: CANADIAN SYLLABICS CARRIER MO*/ + RTUNI_ALPHA, /* U+00160a: CANADIAN SYLLABICS CARRIER ME*/ + RTUNI_ALPHA, /* U+00160b: CANADIAN SYLLABICS CARRIER MEE*/ + RTUNI_ALPHA, /* U+00160c: CANADIAN SYLLABICS CARRIER MI*/ + RTUNI_ALPHA, /* U+00160d: CANADIAN SYLLABICS CARRIER MA*/ + RTUNI_ALPHA, /* U+00160e: CANADIAN SYLLABICS CARRIER YU*/ + RTUNI_ALPHA, /* U+00160f: CANADIAN SYLLABICS CARRIER YO*/ + RTUNI_ALPHA, /* U+001610: CANADIAN SYLLABICS CARRIER YE*/ + RTUNI_ALPHA, /* U+001611: CANADIAN SYLLABICS CARRIER YEE*/ + RTUNI_ALPHA, /* U+001612: CANADIAN SYLLABICS CARRIER YI*/ + RTUNI_ALPHA, /* U+001613: CANADIAN SYLLABICS CARRIER YA*/ + RTUNI_ALPHA, /* U+001614: CANADIAN SYLLABICS CARRIER JU*/ + RTUNI_ALPHA, /* U+001615: CANADIAN SYLLABICS SAYISI JU*/ + RTUNI_ALPHA, /* U+001616: CANADIAN SYLLABICS CARRIER JO*/ + RTUNI_ALPHA, /* U+001617: CANADIAN SYLLABICS CARRIER JE*/ + RTUNI_ALPHA, /* U+001618: CANADIAN SYLLABICS CARRIER JEE*/ + RTUNI_ALPHA, /* U+001619: CANADIAN SYLLABICS CARRIER JI*/ + RTUNI_ALPHA, /* U+00161a: CANADIAN SYLLABICS SAYISI JI*/ + RTUNI_ALPHA, /* U+00161b: CANADIAN SYLLABICS CARRIER JA*/ + RTUNI_ALPHA, /* U+00161c: CANADIAN SYLLABICS CARRIER JJU*/ + RTUNI_ALPHA, /* U+00161d: CANADIAN SYLLABICS CARRIER JJO*/ + RTUNI_ALPHA, /* U+00161e: CANADIAN SYLLABICS CARRIER JJE*/ + RTUNI_ALPHA, /* U+00161f: CANADIAN SYLLABICS CARRIER JJEE*/ + RTUNI_ALPHA, /* U+001620: CANADIAN SYLLABICS CARRIER JJI*/ + RTUNI_ALPHA, /* U+001621: CANADIAN SYLLABICS CARRIER JJA*/ + RTUNI_ALPHA, /* U+001622: CANADIAN SYLLABICS CARRIER LU*/ + RTUNI_ALPHA, /* U+001623: CANADIAN SYLLABICS CARRIER LO*/ + RTUNI_ALPHA, /* U+001624: CANADIAN SYLLABICS CARRIER LE*/ + RTUNI_ALPHA, /* U+001625: CANADIAN SYLLABICS CARRIER LEE*/ + RTUNI_ALPHA, /* U+001626: CANADIAN SYLLABICS CARRIER LI*/ + RTUNI_ALPHA, /* U+001627: CANADIAN SYLLABICS CARRIER LA*/ + RTUNI_ALPHA, /* U+001628: CANADIAN SYLLABICS CARRIER DLU*/ + RTUNI_ALPHA, /* U+001629: CANADIAN SYLLABICS CARRIER DLO*/ + RTUNI_ALPHA, /* U+00162a: CANADIAN SYLLABICS CARRIER DLE*/ + RTUNI_ALPHA, /* U+00162b: CANADIAN SYLLABICS CARRIER DLEE*/ + RTUNI_ALPHA, /* U+00162c: CANADIAN SYLLABICS CARRIER DLI*/ + RTUNI_ALPHA, /* U+00162d: CANADIAN SYLLABICS CARRIER DLA*/ + RTUNI_ALPHA, /* U+00162e: CANADIAN SYLLABICS CARRIER LHU*/ + RTUNI_ALPHA, /* U+00162f: CANADIAN SYLLABICS CARRIER LHO*/ + RTUNI_ALPHA, /* U+001630: CANADIAN SYLLABICS CARRIER LHE*/ + RTUNI_ALPHA, /* U+001631: CANADIAN SYLLABICS CARRIER LHEE*/ + RTUNI_ALPHA, /* U+001632: CANADIAN SYLLABICS CARRIER LHI*/ + RTUNI_ALPHA, /* U+001633: CANADIAN SYLLABICS CARRIER LHA*/ + RTUNI_ALPHA, /* U+001634: CANADIAN SYLLABICS CARRIER TLHU*/ + RTUNI_ALPHA, /* U+001635: CANADIAN SYLLABICS CARRIER TLHO*/ + RTUNI_ALPHA, /* U+001636: CANADIAN SYLLABICS CARRIER TLHE*/ + RTUNI_ALPHA, /* U+001637: CANADIAN SYLLABICS CARRIER TLHEE*/ + RTUNI_ALPHA, /* U+001638: CANADIAN SYLLABICS CARRIER TLHI*/ + RTUNI_ALPHA, /* U+001639: CANADIAN SYLLABICS CARRIER TLHA*/ + RTUNI_ALPHA, /* U+00163a: CANADIAN SYLLABICS CARRIER TLU*/ + RTUNI_ALPHA, /* U+00163b: CANADIAN SYLLABICS CARRIER TLO*/ + RTUNI_ALPHA, /* U+00163c: CANADIAN SYLLABICS CARRIER TLE*/ + RTUNI_ALPHA, /* U+00163d: CANADIAN SYLLABICS CARRIER TLEE*/ + RTUNI_ALPHA, /* U+00163e: CANADIAN SYLLABICS CARRIER TLI*/ + RTUNI_ALPHA, /* U+00163f: CANADIAN SYLLABICS CARRIER TLA*/ + RTUNI_ALPHA, /* U+001640: CANADIAN SYLLABICS CARRIER ZU*/ + RTUNI_ALPHA, /* U+001641: CANADIAN SYLLABICS CARRIER ZO*/ + RTUNI_ALPHA, /* U+001642: CANADIAN SYLLABICS CARRIER ZE*/ + RTUNI_ALPHA, /* U+001643: CANADIAN SYLLABICS CARRIER ZEE*/ + RTUNI_ALPHA, /* U+001644: CANADIAN SYLLABICS CARRIER ZI*/ + RTUNI_ALPHA, /* U+001645: CANADIAN SYLLABICS CARRIER ZA*/ + RTUNI_ALPHA, /* U+001646: CANADIAN SYLLABICS CARRIER Z*/ + RTUNI_ALPHA, /* U+001647: CANADIAN SYLLABICS CARRIER INITIAL Z*/ + RTUNI_ALPHA, /* U+001648: CANADIAN SYLLABICS CARRIER DZU*/ + RTUNI_ALPHA, /* U+001649: CANADIAN SYLLABICS CARRIER DZO*/ + RTUNI_ALPHA, /* U+00164a: CANADIAN SYLLABICS CARRIER DZE*/ + RTUNI_ALPHA, /* U+00164b: CANADIAN SYLLABICS CARRIER DZEE*/ + RTUNI_ALPHA, /* U+00164c: CANADIAN SYLLABICS CARRIER DZI*/ + RTUNI_ALPHA, /* U+00164d: CANADIAN SYLLABICS CARRIER DZA*/ + RTUNI_ALPHA, /* U+00164e: CANADIAN SYLLABICS CARRIER SU*/ + RTUNI_ALPHA, /* U+00164f: CANADIAN SYLLABICS CARRIER SO*/ + RTUNI_ALPHA, /* U+001650: CANADIAN SYLLABICS CARRIER SE*/ + RTUNI_ALPHA, /* U+001651: CANADIAN SYLLABICS CARRIER SEE*/ + RTUNI_ALPHA, /* U+001652: CANADIAN SYLLABICS CARRIER SI*/ + RTUNI_ALPHA, /* U+001653: CANADIAN SYLLABICS CARRIER SA*/ + RTUNI_ALPHA, /* U+001654: CANADIAN SYLLABICS CARRIER SHU*/ + RTUNI_ALPHA, /* U+001655: CANADIAN SYLLABICS CARRIER SHO*/ + RTUNI_ALPHA, /* U+001656: CANADIAN SYLLABICS CARRIER SHE*/ + RTUNI_ALPHA, /* U+001657: CANADIAN SYLLABICS CARRIER SHEE*/ + RTUNI_ALPHA, /* U+001658: CANADIAN SYLLABICS CARRIER SHI*/ + RTUNI_ALPHA, /* U+001659: CANADIAN SYLLABICS CARRIER SHA*/ + RTUNI_ALPHA, /* U+00165a: CANADIAN SYLLABICS CARRIER SH*/ + RTUNI_ALPHA, /* U+00165b: CANADIAN SYLLABICS CARRIER TSU*/ + RTUNI_ALPHA, /* U+00165c: CANADIAN SYLLABICS CARRIER TSO*/ + RTUNI_ALPHA, /* U+00165d: CANADIAN SYLLABICS CARRIER TSE*/ + RTUNI_ALPHA, /* U+00165e: CANADIAN SYLLABICS CARRIER TSEE*/ + RTUNI_ALPHA, /* U+00165f: CANADIAN SYLLABICS CARRIER TSI*/ + RTUNI_ALPHA, /* U+001660: CANADIAN SYLLABICS CARRIER TSA*/ + RTUNI_ALPHA, /* U+001661: CANADIAN SYLLABICS CARRIER CHU*/ + RTUNI_ALPHA, /* U+001662: CANADIAN SYLLABICS CARRIER CHO*/ + RTUNI_ALPHA, /* U+001663: CANADIAN SYLLABICS CARRIER CHE*/ + RTUNI_ALPHA, /* U+001664: CANADIAN SYLLABICS CARRIER CHEE*/ + RTUNI_ALPHA, /* U+001665: CANADIAN SYLLABICS CARRIER CHI*/ + RTUNI_ALPHA, /* U+001666: CANADIAN SYLLABICS CARRIER CHA*/ + RTUNI_ALPHA, /* U+001667: CANADIAN SYLLABICS CARRIER TTSU*/ + RTUNI_ALPHA, /* U+001668: CANADIAN SYLLABICS CARRIER TTSO*/ + RTUNI_ALPHA, /* U+001669: CANADIAN SYLLABICS CARRIER TTSE*/ + RTUNI_ALPHA, /* U+00166a: CANADIAN SYLLABICS CARRIER TTSEE*/ + RTUNI_ALPHA, /* U+00166b: CANADIAN SYLLABICS CARRIER TTSI*/ + RTUNI_ALPHA, /* U+00166c: CANADIAN SYLLABICS CARRIER TTSA*/ + 0, /* U+00166d: CANADIAN SYLLABICS CHI SIGN*/ + 0, /* U+00166e: CANADIAN SYLLABICS FULL STOP*/ + RTUNI_ALPHA, /* U+00166f: CANADIAN SYLLABICS QAI*/ + RTUNI_ALPHA, /* U+001670: CANADIAN SYLLABICS NGAI*/ + RTUNI_ALPHA, /* U+001671: CANADIAN SYLLABICS NNGI*/ + RTUNI_ALPHA, /* U+001672: CANADIAN SYLLABICS NNGII*/ + RTUNI_ALPHA, /* U+001673: CANADIAN SYLLABICS NNGO*/ + RTUNI_ALPHA, /* U+001674: CANADIAN SYLLABICS NNGOO*/ + RTUNI_ALPHA, /* U+001675: CANADIAN SYLLABICS NNGA*/ + RTUNI_ALPHA, /* U+001676: CANADIAN SYLLABICS NNGAA*/ + RTUNI_ALPHA, /* U+001677: CANADIAN SYLLABICS WOODS-CREE THWEE*/ + RTUNI_ALPHA, /* U+001678: CANADIAN SYLLABICS WOODS-CREE THWI*/ + RTUNI_ALPHA, /* U+001679: CANADIAN SYLLABICS WOODS-CREE THWII*/ + RTUNI_ALPHA, /* U+00167a: CANADIAN SYLLABICS WOODS-CREE THWO*/ + RTUNI_ALPHA, /* U+00167b: CANADIAN SYLLABICS WOODS-CREE THWOO*/ + RTUNI_ALPHA, /* U+00167c: CANADIAN SYLLABICS WOODS-CREE THWA*/ + RTUNI_ALPHA, /* U+00167d: CANADIAN SYLLABICS WOODS-CREE THWAA*/ + RTUNI_ALPHA, /* U+00167e: CANADIAN SYLLABICS WOODS-CREE FINAL TH*/ + RTUNI_ALPHA, /* U+00167f: CANADIAN SYLLABICS BLACKFOOT W*/ + RTUNI_WSPACE, /* U+001680: OGHAM SPACE MARK*/ + RTUNI_ALPHA, /* U+001681: OGHAM LETTER BEITH*/ + RTUNI_ALPHA, /* U+001682: OGHAM LETTER LUIS*/ + RTUNI_ALPHA, /* U+001683: OGHAM LETTER FEARN*/ + RTUNI_ALPHA, /* U+001684: OGHAM LETTER SAIL*/ + RTUNI_ALPHA, /* U+001685: OGHAM LETTER NION*/ + RTUNI_ALPHA, /* U+001686: OGHAM LETTER UATH*/ + RTUNI_ALPHA, /* U+001687: OGHAM LETTER DAIR*/ + RTUNI_ALPHA, /* U+001688: OGHAM LETTER TINNE*/ + RTUNI_ALPHA, /* U+001689: OGHAM LETTER COLL*/ + RTUNI_ALPHA, /* U+00168a: OGHAM LETTER CEIRT*/ + RTUNI_ALPHA, /* U+00168b: OGHAM LETTER MUIN*/ + RTUNI_ALPHA, /* U+00168c: OGHAM LETTER GORT*/ + RTUNI_ALPHA, /* U+00168d: OGHAM LETTER NGEADAL*/ + RTUNI_ALPHA, /* U+00168e: OGHAM LETTER STRAIF*/ + RTUNI_ALPHA, /* U+00168f: OGHAM LETTER RUIS*/ + RTUNI_ALPHA, /* U+001690: OGHAM LETTER AILM*/ + RTUNI_ALPHA, /* U+001691: OGHAM LETTER ONN*/ + RTUNI_ALPHA, /* U+001692: OGHAM LETTER UR*/ + RTUNI_ALPHA, /* U+001693: OGHAM LETTER EADHADH*/ + RTUNI_ALPHA, /* U+001694: OGHAM LETTER IODHADH*/ + RTUNI_ALPHA, /* U+001695: OGHAM LETTER EABHADH*/ + RTUNI_ALPHA, /* U+001696: OGHAM LETTER OR*/ + RTUNI_ALPHA, /* U+001697: OGHAM LETTER UILLEANN*/ + RTUNI_ALPHA, /* U+001698: OGHAM LETTER IFIN*/ + RTUNI_ALPHA, /* U+001699: OGHAM LETTER EAMHANCHOLL*/ + RTUNI_ALPHA, /* U+00169a: OGHAM LETTER PEITH*/ + 0, /* U+00169b: OGHAM FEATHER MARK*/ + 0, /* U+00169c: OGHAM REVERSED FEATHER MARK*/ + 0, /* U+00169d: */ + 0, /* U+00169e: */ + 0, /* U+00169f: */ + RTUNI_ALPHA, /* U+0016a0: RUNIC LETTER FEHU FEOH FE F*/ + RTUNI_ALPHA, /* U+0016a1: RUNIC LETTER V*/ + RTUNI_ALPHA, /* U+0016a2: RUNIC LETTER URUZ UR U*/ + RTUNI_ALPHA, /* U+0016a3: RUNIC LETTER YR*/ + RTUNI_ALPHA, /* U+0016a4: RUNIC LETTER Y*/ + RTUNI_ALPHA, /* U+0016a5: RUNIC LETTER W*/ + RTUNI_ALPHA, /* U+0016a6: RUNIC LETTER THURISAZ THURS THORN*/ + RTUNI_ALPHA, /* U+0016a7: RUNIC LETTER ETH*/ + RTUNI_ALPHA, /* U+0016a8: RUNIC LETTER ANSUZ A*/ + RTUNI_ALPHA, /* U+0016a9: RUNIC LETTER OS O*/ + RTUNI_ALPHA, /* U+0016aa: RUNIC LETTER AC A*/ + RTUNI_ALPHA, /* U+0016ab: RUNIC LETTER AESC*/ + RTUNI_ALPHA, /* U+0016ac: RUNIC LETTER LONG-BRANCH-OSS O*/ + RTUNI_ALPHA, /* U+0016ad: RUNIC LETTER SHORT-TWIG-OSS O*/ + RTUNI_ALPHA, /* U+0016ae: RUNIC LETTER O*/ + RTUNI_ALPHA, /* U+0016af: RUNIC LETTER OE*/ + RTUNI_ALPHA, /* U+0016b0: RUNIC LETTER ON*/ + RTUNI_ALPHA, /* U+0016b1: RUNIC LETTER RAIDO RAD REID R*/ + RTUNI_ALPHA, /* U+0016b2: RUNIC LETTER KAUNA*/ + RTUNI_ALPHA, /* U+0016b3: RUNIC LETTER CEN*/ + RTUNI_ALPHA, /* U+0016b4: RUNIC LETTER KAUN K*/ + RTUNI_ALPHA, /* U+0016b5: RUNIC LETTER G*/ + RTUNI_ALPHA, /* U+0016b6: RUNIC LETTER ENG*/ + RTUNI_ALPHA, /* U+0016b7: RUNIC LETTER GEBO GYFU G*/ + RTUNI_ALPHA, /* U+0016b8: RUNIC LETTER GAR*/ + RTUNI_ALPHA, /* U+0016b9: RUNIC LETTER WUNJO WYNN W*/ + RTUNI_ALPHA, /* U+0016ba: RUNIC LETTER HAGLAZ H*/ + RTUNI_ALPHA, /* U+0016bb: RUNIC LETTER HAEGL H*/ + RTUNI_ALPHA, /* U+0016bc: RUNIC LETTER LONG-BRANCH-HAGALL H*/ + RTUNI_ALPHA, /* U+0016bd: RUNIC LETTER SHORT-TWIG-HAGALL H*/ + RTUNI_ALPHA, /* U+0016be: RUNIC LETTER NAUDIZ NYD NAUD N*/ + RTUNI_ALPHA, /* U+0016bf: RUNIC LETTER SHORT-TWIG-NAUD N*/ + RTUNI_ALPHA, /* U+0016c0: RUNIC LETTER DOTTED-N*/ + RTUNI_ALPHA, /* U+0016c1: RUNIC LETTER ISAZ IS ISS I*/ + RTUNI_ALPHA, /* U+0016c2: RUNIC LETTER E*/ + RTUNI_ALPHA, /* U+0016c3: RUNIC LETTER JERAN J*/ + RTUNI_ALPHA, /* U+0016c4: RUNIC LETTER GER*/ + RTUNI_ALPHA, /* U+0016c5: RUNIC LETTER LONG-BRANCH-AR AE*/ + RTUNI_ALPHA, /* U+0016c6: RUNIC LETTER SHORT-TWIG-AR A*/ + RTUNI_ALPHA, /* U+0016c7: RUNIC LETTER IWAZ EOH*/ + RTUNI_ALPHA, /* U+0016c8: RUNIC LETTER PERTHO PEORTH P*/ + RTUNI_ALPHA, /* U+0016c9: RUNIC LETTER ALGIZ EOLHX*/ + RTUNI_ALPHA, /* U+0016ca: RUNIC LETTER SOWILO S*/ + RTUNI_ALPHA, /* U+0016cb: RUNIC LETTER SIGEL LONG-BRANCH-SOL S*/ + RTUNI_ALPHA, /* U+0016cc: RUNIC LETTER SHORT-TWIG-SOL S*/ + RTUNI_ALPHA, /* U+0016cd: RUNIC LETTER C*/ + RTUNI_ALPHA, /* U+0016ce: RUNIC LETTER Z*/ + RTUNI_ALPHA, /* U+0016cf: RUNIC LETTER TIWAZ TIR TYR T*/ + RTUNI_ALPHA, /* U+0016d0: RUNIC LETTER SHORT-TWIG-TYR T*/ + RTUNI_ALPHA, /* U+0016d1: RUNIC LETTER D*/ + RTUNI_ALPHA, /* U+0016d2: RUNIC LETTER BERKANAN BEORC BJARKAN B*/ + RTUNI_ALPHA, /* U+0016d3: RUNIC LETTER SHORT-TWIG-BJARKAN B*/ + RTUNI_ALPHA, /* U+0016d4: RUNIC LETTER DOTTED-P*/ + RTUNI_ALPHA, /* U+0016d5: RUNIC LETTER OPEN-P*/ + RTUNI_ALPHA, /* U+0016d6: RUNIC LETTER EHWAZ EH E*/ + RTUNI_ALPHA, /* U+0016d7: RUNIC LETTER MANNAZ MAN M*/ + RTUNI_ALPHA, /* U+0016d8: RUNIC LETTER LONG-BRANCH-MADR M*/ + RTUNI_ALPHA, /* U+0016d9: RUNIC LETTER SHORT-TWIG-MADR M*/ + RTUNI_ALPHA, /* U+0016da: RUNIC LETTER LAUKAZ LAGU LOGR L*/ + RTUNI_ALPHA, /* U+0016db: RUNIC LETTER DOTTED-L*/ + RTUNI_ALPHA, /* U+0016dc: RUNIC LETTER INGWAZ*/ + RTUNI_ALPHA, /* U+0016dd: RUNIC LETTER ING*/ + RTUNI_ALPHA, /* U+0016de: RUNIC LETTER DAGAZ DAEG D*/ + RTUNI_ALPHA, /* U+0016df: RUNIC LETTER OTHALAN ETHEL O*/ + RTUNI_ALPHA, /* U+0016e0: RUNIC LETTER EAR*/ + RTUNI_ALPHA, /* U+0016e1: RUNIC LETTER IOR*/ + RTUNI_ALPHA, /* U+0016e2: RUNIC LETTER CWEORTH*/ + RTUNI_ALPHA, /* U+0016e3: RUNIC LETTER CALC*/ + RTUNI_ALPHA, /* U+0016e4: RUNIC LETTER CEALC*/ + RTUNI_ALPHA, /* U+0016e5: RUNIC LETTER STAN*/ + RTUNI_ALPHA, /* U+0016e6: RUNIC LETTER LONG-BRANCH-YR*/ + RTUNI_ALPHA, /* U+0016e7: RUNIC LETTER SHORT-TWIG-YR*/ + RTUNI_ALPHA, /* U+0016e8: RUNIC LETTER ICELANDIC-YR*/ + RTUNI_ALPHA, /* U+0016e9: RUNIC LETTER Q*/ + RTUNI_ALPHA, /* U+0016ea: RUNIC LETTER X*/ + 0, /* U+0016eb: RUNIC SINGLE PUNCTUATION*/ + 0, /* U+0016ec: RUNIC MULTIPLE PUNCTUATION*/ + 0, /* U+0016ed: RUNIC CROSS PUNCTUATION*/ + RTUNI_ALPHA, /* U+0016ee: RUNIC ARLAUG SYMBOL*/ + RTUNI_ALPHA, /* U+0016ef: RUNIC TVIMADUR SYMBOL*/ + RTUNI_ALPHA, /* U+0016f0: RUNIC BELGTHOR SYMBOL*/ + 0, /* U+0016f1: */ + 0, /* U+0016f2: */ + 0, /* U+0016f3: */ + 0, /* U+0016f4: */ + 0, /* U+0016f5: */ + 0, /* U+0016f6: */ + 0, /* U+0016f7: */ + 0, /* U+0016f8: */ + 0, /* U+0016f9: */ + 0, /* U+0016fa: */ + 0, /* U+0016fb: */ + 0, /* U+0016fc: */ + 0, /* U+0016fd: */ + 0, /* U+0016fe: */ + 0, /* U+0016ff: */ + RTUNI_ALPHA, /* U+001700: TAGALOG LETTER A*/ + RTUNI_ALPHA, /* U+001701: TAGALOG LETTER I*/ + RTUNI_ALPHA, /* U+001702: TAGALOG LETTER U*/ + RTUNI_ALPHA, /* U+001703: TAGALOG LETTER KA*/ + RTUNI_ALPHA, /* U+001704: TAGALOG LETTER GA*/ + RTUNI_ALPHA, /* U+001705: TAGALOG LETTER NGA*/ + RTUNI_ALPHA, /* U+001706: TAGALOG LETTER TA*/ + RTUNI_ALPHA, /* U+001707: TAGALOG LETTER DA*/ + RTUNI_ALPHA, /* U+001708: TAGALOG LETTER NA*/ + RTUNI_ALPHA, /* U+001709: TAGALOG LETTER PA*/ + RTUNI_ALPHA, /* U+00170a: TAGALOG LETTER BA*/ + RTUNI_ALPHA, /* U+00170b: TAGALOG LETTER MA*/ + RTUNI_ALPHA, /* U+00170c: TAGALOG LETTER YA*/ + 0, /* U+00170d: */ + RTUNI_ALPHA, /* U+00170e: TAGALOG LETTER LA*/ + RTUNI_ALPHA, /* U+00170f: TAGALOG LETTER WA*/ + RTUNI_ALPHA, /* U+001710: TAGALOG LETTER SA*/ + RTUNI_ALPHA, /* U+001711: TAGALOG LETTER HA*/ + RTUNI_ALPHA, /* U+001712: TAGALOG VOWEL SIGN I*/ + RTUNI_ALPHA, /* U+001713: TAGALOG VOWEL SIGN U*/ + 0, /* U+001714: TAGALOG SIGN VIRAMA*/ + 0, /* U+001715: */ + 0, /* U+001716: */ + 0, /* U+001717: */ + 0, /* U+001718: */ + 0, /* U+001719: */ + 0, /* U+00171a: */ + 0, /* U+00171b: */ + 0, /* U+00171c: */ + 0, /* U+00171d: */ + 0, /* U+00171e: */ + 0, /* U+00171f: */ + RTUNI_ALPHA, /* U+001720: HANUNOO LETTER A*/ + RTUNI_ALPHA, /* U+001721: HANUNOO LETTER I*/ + RTUNI_ALPHA, /* U+001722: HANUNOO LETTER U*/ + RTUNI_ALPHA, /* U+001723: HANUNOO LETTER KA*/ + RTUNI_ALPHA, /* U+001724: HANUNOO LETTER GA*/ + RTUNI_ALPHA, /* U+001725: HANUNOO LETTER NGA*/ + RTUNI_ALPHA, /* U+001726: HANUNOO LETTER TA*/ + RTUNI_ALPHA, /* U+001727: HANUNOO LETTER DA*/ + RTUNI_ALPHA, /* U+001728: HANUNOO LETTER NA*/ + RTUNI_ALPHA, /* U+001729: HANUNOO LETTER PA*/ + RTUNI_ALPHA, /* U+00172a: HANUNOO LETTER BA*/ + RTUNI_ALPHA, /* U+00172b: HANUNOO LETTER MA*/ + RTUNI_ALPHA, /* U+00172c: HANUNOO LETTER YA*/ + RTUNI_ALPHA, /* U+00172d: HANUNOO LETTER RA*/ + RTUNI_ALPHA, /* U+00172e: HANUNOO LETTER LA*/ + RTUNI_ALPHA, /* U+00172f: HANUNOO LETTER WA*/ + RTUNI_ALPHA, /* U+001730: HANUNOO LETTER SA*/ + RTUNI_ALPHA, /* U+001731: HANUNOO LETTER HA*/ + RTUNI_ALPHA, /* U+001732: HANUNOO VOWEL SIGN I*/ + RTUNI_ALPHA, /* U+001733: HANUNOO VOWEL SIGN U*/ + 0, /* U+001734: HANUNOO SIGN PAMUDPOD*/ + 0, /* U+001735: PHILIPPINE SINGLE PUNCTUATION*/ + 0, /* U+001736: PHILIPPINE DOUBLE PUNCTUATION*/ + 0, /* U+001737: */ + 0, /* U+001738: */ + 0, /* U+001739: */ + 0, /* U+00173a: */ + 0, /* U+00173b: */ + 0, /* U+00173c: */ + 0, /* U+00173d: */ + 0, /* U+00173e: */ + 0, /* U+00173f: */ + RTUNI_ALPHA, /* U+001740: BUHID LETTER A*/ + RTUNI_ALPHA, /* U+001741: BUHID LETTER I*/ + RTUNI_ALPHA, /* U+001742: BUHID LETTER U*/ + RTUNI_ALPHA, /* U+001743: BUHID LETTER KA*/ + RTUNI_ALPHA, /* U+001744: BUHID LETTER GA*/ + RTUNI_ALPHA, /* U+001745: BUHID LETTER NGA*/ + RTUNI_ALPHA, /* U+001746: BUHID LETTER TA*/ + RTUNI_ALPHA, /* U+001747: BUHID LETTER DA*/ + RTUNI_ALPHA, /* U+001748: BUHID LETTER NA*/ + RTUNI_ALPHA, /* U+001749: BUHID LETTER PA*/ + RTUNI_ALPHA, /* U+00174a: BUHID LETTER BA*/ + RTUNI_ALPHA, /* U+00174b: BUHID LETTER MA*/ + RTUNI_ALPHA, /* U+00174c: BUHID LETTER YA*/ + RTUNI_ALPHA, /* U+00174d: BUHID LETTER RA*/ + RTUNI_ALPHA, /* U+00174e: BUHID LETTER LA*/ + RTUNI_ALPHA, /* U+00174f: BUHID LETTER WA*/ + RTUNI_ALPHA, /* U+001750: BUHID LETTER SA*/ + RTUNI_ALPHA, /* U+001751: BUHID LETTER HA*/ + RTUNI_ALPHA, /* U+001752: BUHID VOWEL SIGN I*/ + RTUNI_ALPHA, /* U+001753: BUHID VOWEL SIGN U*/ + 0, /* U+001754: */ + 0, /* U+001755: */ + 0, /* U+001756: */ + 0, /* U+001757: */ + 0, /* U+001758: */ + 0, /* U+001759: */ + 0, /* U+00175a: */ + 0, /* U+00175b: */ + 0, /* U+00175c: */ + 0, /* U+00175d: */ + 0, /* U+00175e: */ + 0, /* U+00175f: */ + RTUNI_ALPHA, /* U+001760: TAGBANWA LETTER A*/ + RTUNI_ALPHA, /* U+001761: TAGBANWA LETTER I*/ + RTUNI_ALPHA, /* U+001762: TAGBANWA LETTER U*/ + RTUNI_ALPHA, /* U+001763: TAGBANWA LETTER KA*/ + RTUNI_ALPHA, /* U+001764: TAGBANWA LETTER GA*/ + RTUNI_ALPHA, /* U+001765: TAGBANWA LETTER NGA*/ + RTUNI_ALPHA, /* U+001766: TAGBANWA LETTER TA*/ + RTUNI_ALPHA, /* U+001767: TAGBANWA LETTER DA*/ + RTUNI_ALPHA, /* U+001768: TAGBANWA LETTER NA*/ + RTUNI_ALPHA, /* U+001769: TAGBANWA LETTER PA*/ + RTUNI_ALPHA, /* U+00176a: TAGBANWA LETTER BA*/ + RTUNI_ALPHA, /* U+00176b: TAGBANWA LETTER MA*/ + RTUNI_ALPHA, /* U+00176c: TAGBANWA LETTER YA*/ + 0, /* U+00176d: */ + RTUNI_ALPHA, /* U+00176e: TAGBANWA LETTER LA*/ + RTUNI_ALPHA, /* U+00176f: TAGBANWA LETTER WA*/ + RTUNI_ALPHA, /* U+001770: TAGBANWA LETTER SA*/ + 0, /* U+001771: */ + RTUNI_ALPHA, /* U+001772: TAGBANWA VOWEL SIGN I*/ + RTUNI_ALPHA, /* U+001773: TAGBANWA VOWEL SIGN U*/ + 0, /* U+001774: */ + 0, /* U+001775: */ + 0, /* U+001776: */ + 0, /* U+001777: */ + 0, /* U+001778: */ + 0, /* U+001779: */ + 0, /* U+00177a: */ + 0, /* U+00177b: */ + 0, /* U+00177c: */ + 0, /* U+00177d: */ + 0, /* U+00177e: */ + 0, /* U+00177f: */ + RTUNI_ALPHA, /* U+001780: KHMER LETTER KA*/ + RTUNI_ALPHA, /* U+001781: KHMER LETTER KHA*/ + RTUNI_ALPHA, /* U+001782: KHMER LETTER KO*/ + RTUNI_ALPHA, /* U+001783: KHMER LETTER KHO*/ + RTUNI_ALPHA, /* U+001784: KHMER LETTER NGO*/ + RTUNI_ALPHA, /* U+001785: KHMER LETTER CA*/ + RTUNI_ALPHA, /* U+001786: KHMER LETTER CHA*/ + RTUNI_ALPHA, /* U+001787: KHMER LETTER CO*/ + RTUNI_ALPHA, /* U+001788: KHMER LETTER CHO*/ + RTUNI_ALPHA, /* U+001789: KHMER LETTER NYO*/ + RTUNI_ALPHA, /* U+00178a: KHMER LETTER DA*/ + RTUNI_ALPHA, /* U+00178b: KHMER LETTER TTHA*/ + RTUNI_ALPHA, /* U+00178c: KHMER LETTER DO*/ + RTUNI_ALPHA, /* U+00178d: KHMER LETTER TTHO*/ + RTUNI_ALPHA, /* U+00178e: KHMER LETTER NNO*/ + RTUNI_ALPHA, /* U+00178f: KHMER LETTER TA*/ + RTUNI_ALPHA, /* U+001790: KHMER LETTER THA*/ + RTUNI_ALPHA, /* U+001791: KHMER LETTER TO*/ + RTUNI_ALPHA, /* U+001792: KHMER LETTER THO*/ + RTUNI_ALPHA, /* U+001793: KHMER LETTER NO*/ + RTUNI_ALPHA, /* U+001794: KHMER LETTER BA*/ + RTUNI_ALPHA, /* U+001795: KHMER LETTER PHA*/ + RTUNI_ALPHA, /* U+001796: KHMER LETTER PO*/ + RTUNI_ALPHA, /* U+001797: KHMER LETTER PHO*/ + RTUNI_ALPHA, /* U+001798: KHMER LETTER MO*/ + RTUNI_ALPHA, /* U+001799: KHMER LETTER YO*/ + RTUNI_ALPHA, /* U+00179a: KHMER LETTER RO*/ + RTUNI_ALPHA, /* U+00179b: KHMER LETTER LO*/ + RTUNI_ALPHA, /* U+00179c: KHMER LETTER VO*/ + RTUNI_ALPHA, /* U+00179d: KHMER LETTER SHA*/ + RTUNI_ALPHA, /* U+00179e: KHMER LETTER SSO*/ + RTUNI_ALPHA, /* U+00179f: KHMER LETTER SA*/ + RTUNI_ALPHA, /* U+0017a0: KHMER LETTER HA*/ + RTUNI_ALPHA, /* U+0017a1: KHMER LETTER LA*/ + RTUNI_ALPHA, /* U+0017a2: KHMER LETTER QA*/ + RTUNI_ALPHA, /* U+0017a3: KHMER INDEPENDENT VOWEL QAQ*/ + RTUNI_ALPHA, /* U+0017a4: KHMER INDEPENDENT VOWEL QAA*/ + RTUNI_ALPHA, /* U+0017a5: KHMER INDEPENDENT VOWEL QI*/ + RTUNI_ALPHA, /* U+0017a6: KHMER INDEPENDENT VOWEL QII*/ + RTUNI_ALPHA, /* U+0017a7: KHMER INDEPENDENT VOWEL QU*/ + RTUNI_ALPHA, /* U+0017a8: KHMER INDEPENDENT VOWEL QUK*/ + RTUNI_ALPHA, /* U+0017a9: KHMER INDEPENDENT VOWEL QUU*/ + RTUNI_ALPHA, /* U+0017aa: KHMER INDEPENDENT VOWEL QUUV*/ + RTUNI_ALPHA, /* U+0017ab: KHMER INDEPENDENT VOWEL RY*/ + RTUNI_ALPHA, /* U+0017ac: KHMER INDEPENDENT VOWEL RYY*/ + RTUNI_ALPHA, /* U+0017ad: KHMER INDEPENDENT VOWEL LY*/ + RTUNI_ALPHA, /* U+0017ae: KHMER INDEPENDENT VOWEL LYY*/ + RTUNI_ALPHA, /* U+0017af: KHMER INDEPENDENT VOWEL QE*/ + RTUNI_ALPHA, /* U+0017b0: KHMER INDEPENDENT VOWEL QAI*/ + RTUNI_ALPHA, /* U+0017b1: KHMER INDEPENDENT VOWEL QOO TYPE ONE*/ + RTUNI_ALPHA, /* U+0017b2: KHMER INDEPENDENT VOWEL QOO TYPE TWO*/ + RTUNI_ALPHA, /* U+0017b3: KHMER INDEPENDENT VOWEL QAU*/ + 0, /* U+0017b4: KHMER VOWEL INHERENT AQ*/ + 0, /* U+0017b5: KHMER VOWEL INHERENT AA*/ + RTUNI_ALPHA, /* U+0017b6: KHMER VOWEL SIGN AA*/ + RTUNI_ALPHA, /* U+0017b7: KHMER VOWEL SIGN I*/ + RTUNI_ALPHA, /* U+0017b8: KHMER VOWEL SIGN II*/ + RTUNI_ALPHA, /* U+0017b9: KHMER VOWEL SIGN Y*/ + RTUNI_ALPHA, /* U+0017ba: KHMER VOWEL SIGN YY*/ + RTUNI_ALPHA, /* U+0017bb: KHMER VOWEL SIGN U*/ + RTUNI_ALPHA, /* U+0017bc: KHMER VOWEL SIGN UU*/ + RTUNI_ALPHA, /* U+0017bd: KHMER VOWEL SIGN UA*/ + RTUNI_ALPHA, /* U+0017be: KHMER VOWEL SIGN OE*/ + RTUNI_ALPHA, /* U+0017bf: KHMER VOWEL SIGN YA*/ + RTUNI_ALPHA, /* U+0017c0: KHMER VOWEL SIGN IE*/ + RTUNI_ALPHA, /* U+0017c1: KHMER VOWEL SIGN E*/ + RTUNI_ALPHA, /* U+0017c2: KHMER VOWEL SIGN AE*/ + RTUNI_ALPHA, /* U+0017c3: KHMER VOWEL SIGN AI*/ + RTUNI_ALPHA, /* U+0017c4: KHMER VOWEL SIGN OO*/ + RTUNI_ALPHA, /* U+0017c5: KHMER VOWEL SIGN AU*/ + RTUNI_ALPHA, /* U+0017c6: KHMER SIGN NIKAHIT*/ + RTUNI_ALPHA, /* U+0017c7: KHMER SIGN REAHMUK*/ + RTUNI_ALPHA, /* U+0017c8: KHMER SIGN YUUKALEAPINTU*/ + 0, /* U+0017c9: KHMER SIGN MUUSIKATOAN*/ + 0, /* U+0017ca: KHMER SIGN TRIISAP*/ + 0, /* U+0017cb: KHMER SIGN BANTOC*/ + 0, /* U+0017cc: KHMER SIGN ROBAT*/ + 0, /* U+0017cd: KHMER SIGN TOANDAKHIAT*/ + 0, /* U+0017ce: KHMER SIGN KAKABAT*/ + 0, /* U+0017cf: KHMER SIGN AHSDA*/ + 0, /* U+0017d0: KHMER SIGN SAMYOK SANNYA*/ + 0, /* U+0017d1: KHMER SIGN VIRIAM*/ + 0, /* U+0017d2: KHMER SIGN COENG*/ + 0, /* U+0017d3: KHMER SIGN BATHAMASAT*/ + 0, /* U+0017d4: KHMER SIGN KHAN*/ + 0, /* U+0017d5: KHMER SIGN BARIYOOSAN*/ + 0, /* U+0017d6: KHMER SIGN CAMNUC PII KUUH*/ + RTUNI_ALPHA, /* U+0017d7: KHMER SIGN LEK TOO*/ + 0, /* U+0017d8: KHMER SIGN BEYYAL*/ + 0, /* U+0017d9: KHMER SIGN PHNAEK MUAN*/ + 0, /* U+0017da: KHMER SIGN KOOMUUT*/ + 0, /* U+0017db: KHMER CURRENCY SYMBOL RIEL*/ + RTUNI_ALPHA, /* U+0017dc: KHMER SIGN AVAKRAHASANYA*/ + 0, /* U+0017dd: KHMER SIGN ATTHACAN*/ + 0, /* U+0017de: */ + 0, /* U+0017df: */ + RTUNI_DDIGIT, /* U+0017e0: KHMER DIGIT ZERO*/ + RTUNI_DDIGIT, /* U+0017e1: KHMER DIGIT ONE*/ + RTUNI_DDIGIT, /* U+0017e2: KHMER DIGIT TWO*/ + RTUNI_DDIGIT, /* U+0017e3: KHMER DIGIT THREE*/ + RTUNI_DDIGIT, /* U+0017e4: KHMER DIGIT FOUR*/ + RTUNI_DDIGIT, /* U+0017e5: KHMER DIGIT FIVE*/ + RTUNI_DDIGIT, /* U+0017e6: KHMER DIGIT SIX*/ + RTUNI_DDIGIT, /* U+0017e7: KHMER DIGIT SEVEN*/ + RTUNI_DDIGIT, /* U+0017e8: KHMER DIGIT EIGHT*/ + RTUNI_DDIGIT, /* U+0017e9: KHMER DIGIT NINE*/ + 0, /* U+0017ea: */ + 0, /* U+0017eb: */ + 0, /* U+0017ec: */ + 0, /* U+0017ed: */ + 0, /* U+0017ee: */ + 0, /* U+0017ef: */ + 0, /* U+0017f0: KHMER SYMBOL LEK ATTAK SON*/ + 0, /* U+0017f1: KHMER SYMBOL LEK ATTAK MUOY*/ + 0, /* U+0017f2: KHMER SYMBOL LEK ATTAK PII*/ + 0, /* U+0017f3: KHMER SYMBOL LEK ATTAK BEI*/ + 0, /* U+0017f4: KHMER SYMBOL LEK ATTAK BUON*/ + 0, /* U+0017f5: KHMER SYMBOL LEK ATTAK PRAM*/ + 0, /* U+0017f6: KHMER SYMBOL LEK ATTAK PRAM-MUOY*/ + 0, /* U+0017f7: KHMER SYMBOL LEK ATTAK PRAM-PII*/ + 0, /* U+0017f8: KHMER SYMBOL LEK ATTAK PRAM-BEI*/ + 0, /* U+0017f9: KHMER SYMBOL LEK ATTAK PRAM-BUON*/ + 0, /* U+0017fa: */ + 0, /* U+0017fb: */ + 0, /* U+0017fc: */ + 0, /* U+0017fd: */ + 0, /* U+0017fe: */ + 0, /* U+0017ff: */ + 0, /* U+001800: MONGOLIAN BIRGA*/ + 0, /* U+001801: MONGOLIAN ELLIPSIS*/ + 0, /* U+001802: MONGOLIAN COMMA*/ + 0, /* U+001803: MONGOLIAN FULL STOP*/ + 0, /* U+001804: MONGOLIAN COLON*/ + 0, /* U+001805: MONGOLIAN FOUR DOTS*/ + 0, /* U+001806: MONGOLIAN TODO SOFT HYPHEN*/ + 0, /* U+001807: MONGOLIAN SIBE SYLLABLE BOUNDARY MARKER*/ + 0, /* U+001808: MONGOLIAN MANCHU COMMA*/ + 0, /* U+001809: MONGOLIAN MANCHU FULL STOP*/ + 0, /* U+00180a: MONGOLIAN NIRUGU*/ + 0, /* U+00180b: MONGOLIAN FREE VARIATION SELECTOR ONE*/ + 0, /* U+00180c: MONGOLIAN FREE VARIATION SELECTOR TWO*/ + 0, /* U+00180d: MONGOLIAN FREE VARIATION SELECTOR THREE*/ + 0, /* U+00180e: MONGOLIAN VOWEL SEPARATOR*/ + 0, /* U+00180f: */ + RTUNI_DDIGIT, /* U+001810: MONGOLIAN DIGIT ZERO*/ + RTUNI_DDIGIT, /* U+001811: MONGOLIAN DIGIT ONE*/ + RTUNI_DDIGIT, /* U+001812: MONGOLIAN DIGIT TWO*/ + RTUNI_DDIGIT, /* U+001813: MONGOLIAN DIGIT THREE*/ + RTUNI_DDIGIT, /* U+001814: MONGOLIAN DIGIT FOUR*/ + RTUNI_DDIGIT, /* U+001815: MONGOLIAN DIGIT FIVE*/ + RTUNI_DDIGIT, /* U+001816: MONGOLIAN DIGIT SIX*/ + RTUNI_DDIGIT, /* U+001817: MONGOLIAN DIGIT SEVEN*/ + RTUNI_DDIGIT, /* U+001818: MONGOLIAN DIGIT EIGHT*/ + RTUNI_DDIGIT, /* U+001819: MONGOLIAN DIGIT NINE*/ + 0, /* U+00181a: */ + 0, /* U+00181b: */ + 0, /* U+00181c: */ + 0, /* U+00181d: */ + 0, /* U+00181e: */ + 0, /* U+00181f: */ + RTUNI_ALPHA, /* U+001820: MONGOLIAN LETTER A*/ + RTUNI_ALPHA, /* U+001821: MONGOLIAN LETTER E*/ + RTUNI_ALPHA, /* U+001822: MONGOLIAN LETTER I*/ + RTUNI_ALPHA, /* U+001823: MONGOLIAN LETTER O*/ + RTUNI_ALPHA, /* U+001824: MONGOLIAN LETTER U*/ + RTUNI_ALPHA, /* U+001825: MONGOLIAN LETTER OE*/ + RTUNI_ALPHA, /* U+001826: MONGOLIAN LETTER UE*/ + RTUNI_ALPHA, /* U+001827: MONGOLIAN LETTER EE*/ + RTUNI_ALPHA, /* U+001828: MONGOLIAN LETTER NA*/ + RTUNI_ALPHA, /* U+001829: MONGOLIAN LETTER ANG*/ + RTUNI_ALPHA, /* U+00182a: MONGOLIAN LETTER BA*/ + RTUNI_ALPHA, /* U+00182b: MONGOLIAN LETTER PA*/ + RTUNI_ALPHA, /* U+00182c: MONGOLIAN LETTER QA*/ + RTUNI_ALPHA, /* U+00182d: MONGOLIAN LETTER GA*/ + RTUNI_ALPHA, /* U+00182e: MONGOLIAN LETTER MA*/ + RTUNI_ALPHA, /* U+00182f: MONGOLIAN LETTER LA*/ + RTUNI_ALPHA, /* U+001830: MONGOLIAN LETTER SA*/ + RTUNI_ALPHA, /* U+001831: MONGOLIAN LETTER SHA*/ + RTUNI_ALPHA, /* U+001832: MONGOLIAN LETTER TA*/ + RTUNI_ALPHA, /* U+001833: MONGOLIAN LETTER DA*/ + RTUNI_ALPHA, /* U+001834: MONGOLIAN LETTER CHA*/ + RTUNI_ALPHA, /* U+001835: MONGOLIAN LETTER JA*/ + RTUNI_ALPHA, /* U+001836: MONGOLIAN LETTER YA*/ + RTUNI_ALPHA, /* U+001837: MONGOLIAN LETTER RA*/ + RTUNI_ALPHA, /* U+001838: MONGOLIAN LETTER WA*/ + RTUNI_ALPHA, /* U+001839: MONGOLIAN LETTER FA*/ + RTUNI_ALPHA, /* U+00183a: MONGOLIAN LETTER KA*/ + RTUNI_ALPHA, /* U+00183b: MONGOLIAN LETTER KHA*/ + RTUNI_ALPHA, /* U+00183c: MONGOLIAN LETTER TSA*/ + RTUNI_ALPHA, /* U+00183d: MONGOLIAN LETTER ZA*/ + RTUNI_ALPHA, /* U+00183e: MONGOLIAN LETTER HAA*/ + RTUNI_ALPHA, /* U+00183f: MONGOLIAN LETTER ZRA*/ + RTUNI_ALPHA, /* U+001840: MONGOLIAN LETTER LHA*/ + RTUNI_ALPHA, /* U+001841: MONGOLIAN LETTER ZHI*/ + RTUNI_ALPHA, /* U+001842: MONGOLIAN LETTER CHI*/ + RTUNI_ALPHA, /* U+001843: MONGOLIAN LETTER TODO LONG VOWEL SIGN*/ + RTUNI_ALPHA, /* U+001844: MONGOLIAN LETTER TODO E*/ + RTUNI_ALPHA, /* U+001845: MONGOLIAN LETTER TODO I*/ + RTUNI_ALPHA, /* U+001846: MONGOLIAN LETTER TODO O*/ + RTUNI_ALPHA, /* U+001847: MONGOLIAN LETTER TODO U*/ + RTUNI_ALPHA, /* U+001848: MONGOLIAN LETTER TODO OE*/ + RTUNI_ALPHA, /* U+001849: MONGOLIAN LETTER TODO UE*/ + RTUNI_ALPHA, /* U+00184a: MONGOLIAN LETTER TODO ANG*/ + RTUNI_ALPHA, /* U+00184b: MONGOLIAN LETTER TODO BA*/ + RTUNI_ALPHA, /* U+00184c: MONGOLIAN LETTER TODO PA*/ + RTUNI_ALPHA, /* U+00184d: MONGOLIAN LETTER TODO QA*/ + RTUNI_ALPHA, /* U+00184e: MONGOLIAN LETTER TODO GA*/ + RTUNI_ALPHA, /* U+00184f: MONGOLIAN LETTER TODO MA*/ + RTUNI_ALPHA, /* U+001850: MONGOLIAN LETTER TODO TA*/ + RTUNI_ALPHA, /* U+001851: MONGOLIAN LETTER TODO DA*/ + RTUNI_ALPHA, /* U+001852: MONGOLIAN LETTER TODO CHA*/ + RTUNI_ALPHA, /* U+001853: MONGOLIAN LETTER TODO JA*/ + RTUNI_ALPHA, /* U+001854: MONGOLIAN LETTER TODO TSA*/ + RTUNI_ALPHA, /* U+001855: MONGOLIAN LETTER TODO YA*/ + RTUNI_ALPHA, /* U+001856: MONGOLIAN LETTER TODO WA*/ + RTUNI_ALPHA, /* U+001857: MONGOLIAN LETTER TODO KA*/ + RTUNI_ALPHA, /* U+001858: MONGOLIAN LETTER TODO GAA*/ + RTUNI_ALPHA, /* U+001859: MONGOLIAN LETTER TODO HAA*/ + RTUNI_ALPHA, /* U+00185a: MONGOLIAN LETTER TODO JIA*/ + RTUNI_ALPHA, /* U+00185b: MONGOLIAN LETTER TODO NIA*/ + RTUNI_ALPHA, /* U+00185c: MONGOLIAN LETTER TODO DZA*/ + RTUNI_ALPHA, /* U+00185d: MONGOLIAN LETTER SIBE E*/ + RTUNI_ALPHA, /* U+00185e: MONGOLIAN LETTER SIBE I*/ + RTUNI_ALPHA, /* U+00185f: MONGOLIAN LETTER SIBE IY*/ + RTUNI_ALPHA, /* U+001860: MONGOLIAN LETTER SIBE UE*/ + RTUNI_ALPHA, /* U+001861: MONGOLIAN LETTER SIBE U*/ + RTUNI_ALPHA, /* U+001862: MONGOLIAN LETTER SIBE ANG*/ + RTUNI_ALPHA, /* U+001863: MONGOLIAN LETTER SIBE KA*/ + RTUNI_ALPHA, /* U+001864: MONGOLIAN LETTER SIBE GA*/ + RTUNI_ALPHA, /* U+001865: MONGOLIAN LETTER SIBE HA*/ + RTUNI_ALPHA, /* U+001866: MONGOLIAN LETTER SIBE PA*/ + RTUNI_ALPHA, /* U+001867: MONGOLIAN LETTER SIBE SHA*/ + RTUNI_ALPHA, /* U+001868: MONGOLIAN LETTER SIBE TA*/ + RTUNI_ALPHA, /* U+001869: MONGOLIAN LETTER SIBE DA*/ + RTUNI_ALPHA, /* U+00186a: MONGOLIAN LETTER SIBE JA*/ + RTUNI_ALPHA, /* U+00186b: MONGOLIAN LETTER SIBE FA*/ + RTUNI_ALPHA, /* U+00186c: MONGOLIAN LETTER SIBE GAA*/ + RTUNI_ALPHA, /* U+00186d: MONGOLIAN LETTER SIBE HAA*/ + RTUNI_ALPHA, /* U+00186e: MONGOLIAN LETTER SIBE TSA*/ + RTUNI_ALPHA, /* U+00186f: MONGOLIAN LETTER SIBE ZA*/ + RTUNI_ALPHA, /* U+001870: MONGOLIAN LETTER SIBE RAA*/ + RTUNI_ALPHA, /* U+001871: MONGOLIAN LETTER SIBE CHA*/ + RTUNI_ALPHA, /* U+001872: MONGOLIAN LETTER SIBE ZHA*/ + RTUNI_ALPHA, /* U+001873: MONGOLIAN LETTER MANCHU I*/ + RTUNI_ALPHA, /* U+001874: MONGOLIAN LETTER MANCHU KA*/ + RTUNI_ALPHA, /* U+001875: MONGOLIAN LETTER MANCHU RA*/ + RTUNI_ALPHA, /* U+001876: MONGOLIAN LETTER MANCHU FA*/ + RTUNI_ALPHA, /* U+001877: MONGOLIAN LETTER MANCHU ZHA*/ + 0, /* U+001878: */ + 0, /* U+001879: */ + 0, /* U+00187a: */ + 0, /* U+00187b: */ + 0, /* U+00187c: */ + 0, /* U+00187d: */ + 0, /* U+00187e: */ + 0, /* U+00187f: */ + RTUNI_ALPHA, /* U+001880: MONGOLIAN LETTER ALI GALI ANUSVARA ONE*/ + RTUNI_ALPHA, /* U+001881: MONGOLIAN LETTER ALI GALI VISARGA ONE*/ + RTUNI_ALPHA, /* U+001882: MONGOLIAN LETTER ALI GALI DAMARU*/ + RTUNI_ALPHA, /* U+001883: MONGOLIAN LETTER ALI GALI UBADAMA*/ + RTUNI_ALPHA, /* U+001884: MONGOLIAN LETTER ALI GALI INVERTED UBADAMA*/ + RTUNI_ALPHA, /* U+001885: MONGOLIAN LETTER ALI GALI BALUDA*/ + RTUNI_ALPHA, /* U+001886: MONGOLIAN LETTER ALI GALI THREE BALUDA*/ + RTUNI_ALPHA, /* U+001887: MONGOLIAN LETTER ALI GALI A*/ + RTUNI_ALPHA, /* U+001888: MONGOLIAN LETTER ALI GALI I*/ + RTUNI_ALPHA, /* U+001889: MONGOLIAN LETTER ALI GALI KA*/ + RTUNI_ALPHA, /* U+00188a: MONGOLIAN LETTER ALI GALI NGA*/ + RTUNI_ALPHA, /* U+00188b: MONGOLIAN LETTER ALI GALI CA*/ + RTUNI_ALPHA, /* U+00188c: MONGOLIAN LETTER ALI GALI TTA*/ + RTUNI_ALPHA, /* U+00188d: MONGOLIAN LETTER ALI GALI TTHA*/ + RTUNI_ALPHA, /* U+00188e: MONGOLIAN LETTER ALI GALI DDA*/ + RTUNI_ALPHA, /* U+00188f: MONGOLIAN LETTER ALI GALI NNA*/ + RTUNI_ALPHA, /* U+001890: MONGOLIAN LETTER ALI GALI TA*/ + RTUNI_ALPHA, /* U+001891: MONGOLIAN LETTER ALI GALI DA*/ + RTUNI_ALPHA, /* U+001892: MONGOLIAN LETTER ALI GALI PA*/ + RTUNI_ALPHA, /* U+001893: MONGOLIAN LETTER ALI GALI PHA*/ + RTUNI_ALPHA, /* U+001894: MONGOLIAN LETTER ALI GALI SSA*/ + RTUNI_ALPHA, /* U+001895: MONGOLIAN LETTER ALI GALI ZHA*/ + RTUNI_ALPHA, /* U+001896: MONGOLIAN LETTER ALI GALI ZA*/ + RTUNI_ALPHA, /* U+001897: MONGOLIAN LETTER ALI GALI AH*/ + RTUNI_ALPHA, /* U+001898: MONGOLIAN LETTER TODO ALI GALI TA*/ + RTUNI_ALPHA, /* U+001899: MONGOLIAN LETTER TODO ALI GALI ZHA*/ + RTUNI_ALPHA, /* U+00189a: MONGOLIAN LETTER MANCHU ALI GALI GHA*/ + RTUNI_ALPHA, /* U+00189b: MONGOLIAN LETTER MANCHU ALI GALI NGA*/ + RTUNI_ALPHA, /* U+00189c: MONGOLIAN LETTER MANCHU ALI GALI CA*/ + RTUNI_ALPHA, /* U+00189d: MONGOLIAN LETTER MANCHU ALI GALI JHA*/ + RTUNI_ALPHA, /* U+00189e: MONGOLIAN LETTER MANCHU ALI GALI TTA*/ + RTUNI_ALPHA, /* U+00189f: MONGOLIAN LETTER MANCHU ALI GALI DDHA*/ + RTUNI_ALPHA, /* U+0018a0: MONGOLIAN LETTER MANCHU ALI GALI TA*/ + RTUNI_ALPHA, /* U+0018a1: MONGOLIAN LETTER MANCHU ALI GALI DHA*/ + RTUNI_ALPHA, /* U+0018a2: MONGOLIAN LETTER MANCHU ALI GALI SSA*/ + RTUNI_ALPHA, /* U+0018a3: MONGOLIAN LETTER MANCHU ALI GALI CYA*/ + RTUNI_ALPHA, /* U+0018a4: MONGOLIAN LETTER MANCHU ALI GALI ZHA*/ + RTUNI_ALPHA, /* U+0018a5: MONGOLIAN LETTER MANCHU ALI GALI ZA*/ + RTUNI_ALPHA, /* U+0018a6: MONGOLIAN LETTER ALI GALI HALF U*/ + RTUNI_ALPHA, /* U+0018a7: MONGOLIAN LETTER ALI GALI HALF YA*/ + RTUNI_ALPHA, /* U+0018a8: MONGOLIAN LETTER MANCHU ALI GALI BHA*/ + RTUNI_ALPHA, /* U+0018a9: MONGOLIAN LETTER ALI GALI DAGALGA*/ + RTUNI_ALPHA, /* U+0018aa: MONGOLIAN LETTER MANCHU ALI GALI LHA*/ + 0, /* U+0018ab: */ + 0, /* U+0018ac: */ + 0, /* U+0018ad: */ + 0, /* U+0018ae: */ + 0, /* U+0018af: */ + RTUNI_ALPHA, /* U+0018b0: CANADIAN SYLLABICS OY*/ + RTUNI_ALPHA, /* U+0018b1: CANADIAN SYLLABICS AY*/ + RTUNI_ALPHA, /* U+0018b2: CANADIAN SYLLABICS AAY*/ + RTUNI_ALPHA, /* U+0018b3: CANADIAN SYLLABICS WAY*/ + RTUNI_ALPHA, /* U+0018b4: CANADIAN SYLLABICS POY*/ + RTUNI_ALPHA, /* U+0018b5: CANADIAN SYLLABICS PAY*/ + RTUNI_ALPHA, /* U+0018b6: CANADIAN SYLLABICS PWOY*/ + RTUNI_ALPHA, /* U+0018b7: CANADIAN SYLLABICS TAY*/ + RTUNI_ALPHA, /* U+0018b8: CANADIAN SYLLABICS KAY*/ + RTUNI_ALPHA, /* U+0018b9: CANADIAN SYLLABICS KWAY*/ + RTUNI_ALPHA, /* U+0018ba: CANADIAN SYLLABICS MAY*/ + RTUNI_ALPHA, /* U+0018bb: CANADIAN SYLLABICS NOY*/ + RTUNI_ALPHA, /* U+0018bc: CANADIAN SYLLABICS NAY*/ + RTUNI_ALPHA, /* U+0018bd: CANADIAN SYLLABICS LAY*/ + RTUNI_ALPHA, /* U+0018be: CANADIAN SYLLABICS SOY*/ + RTUNI_ALPHA, /* U+0018bf: CANADIAN SYLLABICS SAY*/ + RTUNI_ALPHA, /* U+0018c0: CANADIAN SYLLABICS SHOY*/ + RTUNI_ALPHA, /* U+0018c1: CANADIAN SYLLABICS SHAY*/ + RTUNI_ALPHA, /* U+0018c2: CANADIAN SYLLABICS SHWOY*/ + RTUNI_ALPHA, /* U+0018c3: CANADIAN SYLLABICS YOY*/ + RTUNI_ALPHA, /* U+0018c4: CANADIAN SYLLABICS YAY*/ + RTUNI_ALPHA, /* U+0018c5: CANADIAN SYLLABICS RAY*/ + RTUNI_ALPHA, /* U+0018c6: CANADIAN SYLLABICS NWI*/ + RTUNI_ALPHA, /* U+0018c7: CANADIAN SYLLABICS OJIBWAY NWI*/ + RTUNI_ALPHA, /* U+0018c8: CANADIAN SYLLABICS NWII*/ + RTUNI_ALPHA, /* U+0018c9: CANADIAN SYLLABICS OJIBWAY NWII*/ + RTUNI_ALPHA, /* U+0018ca: CANADIAN SYLLABICS NWO*/ + RTUNI_ALPHA, /* U+0018cb: CANADIAN SYLLABICS OJIBWAY NWO*/ + RTUNI_ALPHA, /* U+0018cc: CANADIAN SYLLABICS NWOO*/ + RTUNI_ALPHA, /* U+0018cd: CANADIAN SYLLABICS OJIBWAY NWOO*/ + RTUNI_ALPHA, /* U+0018ce: CANADIAN SYLLABICS RWEE*/ + RTUNI_ALPHA, /* U+0018cf: CANADIAN SYLLABICS RWI*/ + RTUNI_ALPHA, /* U+0018d0: CANADIAN SYLLABICS RWII*/ + RTUNI_ALPHA, /* U+0018d1: CANADIAN SYLLABICS RWO*/ + RTUNI_ALPHA, /* U+0018d2: CANADIAN SYLLABICS RWOO*/ + RTUNI_ALPHA, /* U+0018d3: CANADIAN SYLLABICS RWA*/ + RTUNI_ALPHA, /* U+0018d4: CANADIAN SYLLABICS OJIBWAY P*/ + RTUNI_ALPHA, /* U+0018d5: CANADIAN SYLLABICS OJIBWAY T*/ + RTUNI_ALPHA, /* U+0018d6: CANADIAN SYLLABICS OJIBWAY K*/ + RTUNI_ALPHA, /* U+0018d7: CANADIAN SYLLABICS OJIBWAY C*/ + RTUNI_ALPHA, /* U+0018d8: CANADIAN SYLLABICS OJIBWAY M*/ + RTUNI_ALPHA, /* U+0018d9: CANADIAN SYLLABICS OJIBWAY N*/ + RTUNI_ALPHA, /* U+0018da: CANADIAN SYLLABICS OJIBWAY S*/ + RTUNI_ALPHA, /* U+0018db: CANADIAN SYLLABICS OJIBWAY SH*/ + RTUNI_ALPHA, /* U+0018dc: CANADIAN SYLLABICS EASTERN W*/ + RTUNI_ALPHA, /* U+0018dd: CANADIAN SYLLABICS WESTERN W*/ + RTUNI_ALPHA, /* U+0018de: CANADIAN SYLLABICS FINAL SMALL RING*/ + RTUNI_ALPHA, /* U+0018df: CANADIAN SYLLABICS FINAL RAISED DOT*/ + RTUNI_ALPHA, /* U+0018e0: CANADIAN SYLLABICS R-CREE RWE*/ + RTUNI_ALPHA, /* U+0018e1: CANADIAN SYLLABICS WEST-CREE LOO*/ + RTUNI_ALPHA, /* U+0018e2: CANADIAN SYLLABICS WEST-CREE LAA*/ + RTUNI_ALPHA, /* U+0018e3: CANADIAN SYLLABICS THWE*/ + RTUNI_ALPHA, /* U+0018e4: CANADIAN SYLLABICS THWA*/ + RTUNI_ALPHA, /* U+0018e5: CANADIAN SYLLABICS TTHWE*/ + RTUNI_ALPHA, /* U+0018e6: CANADIAN SYLLABICS TTHOO*/ + RTUNI_ALPHA, /* U+0018e7: CANADIAN SYLLABICS TTHAA*/ + RTUNI_ALPHA, /* U+0018e8: CANADIAN SYLLABICS TLHWE*/ + RTUNI_ALPHA, /* U+0018e9: CANADIAN SYLLABICS TLHOO*/ + RTUNI_ALPHA, /* U+0018ea: CANADIAN SYLLABICS SAYISI SHWE*/ + RTUNI_ALPHA, /* U+0018eb: CANADIAN SYLLABICS SAYISI SHOO*/ + RTUNI_ALPHA, /* U+0018ec: CANADIAN SYLLABICS SAYISI HOO*/ + RTUNI_ALPHA, /* U+0018ed: CANADIAN SYLLABICS CARRIER GWU*/ + RTUNI_ALPHA, /* U+0018ee: CANADIAN SYLLABICS CARRIER DENE GEE*/ + RTUNI_ALPHA, /* U+0018ef: CANADIAN SYLLABICS CARRIER GAA*/ + RTUNI_ALPHA, /* U+0018f0: CANADIAN SYLLABICS CARRIER GWA*/ + RTUNI_ALPHA, /* U+0018f1: CANADIAN SYLLABICS SAYISI JUU*/ + RTUNI_ALPHA, /* U+0018f2: CANADIAN SYLLABICS CARRIER JWA*/ + RTUNI_ALPHA, /* U+0018f3: CANADIAN SYLLABICS BEAVER DENE L*/ + RTUNI_ALPHA, /* U+0018f4: CANADIAN SYLLABICS BEAVER DENE R*/ + RTUNI_ALPHA, /* U+0018f5: CANADIAN SYLLABICS CARRIER DENTAL S*/ + 0, /* U+0018f6: */ + 0, /* U+0018f7: */ + 0, /* U+0018f8: */ + 0, /* U+0018f9: */ + 0, /* U+0018fa: */ + 0, /* U+0018fb: */ + 0, /* U+0018fc: */ + 0, /* U+0018fd: */ + 0, /* U+0018fe: */ + 0, /* U+0018ff: */ + RTUNI_ALPHA, /* U+001900: LIMBU VOWEL-CARRIER LETTER*/ + RTUNI_ALPHA, /* U+001901: LIMBU LETTER KA*/ + RTUNI_ALPHA, /* U+001902: LIMBU LETTER KHA*/ + RTUNI_ALPHA, /* U+001903: LIMBU LETTER GA*/ + RTUNI_ALPHA, /* U+001904: LIMBU LETTER GHA*/ + RTUNI_ALPHA, /* U+001905: LIMBU LETTER NGA*/ + RTUNI_ALPHA, /* U+001906: LIMBU LETTER CA*/ + RTUNI_ALPHA, /* U+001907: LIMBU LETTER CHA*/ + RTUNI_ALPHA, /* U+001908: LIMBU LETTER JA*/ + RTUNI_ALPHA, /* U+001909: LIMBU LETTER JHA*/ + RTUNI_ALPHA, /* U+00190a: LIMBU LETTER YAN*/ + RTUNI_ALPHA, /* U+00190b: LIMBU LETTER TA*/ + RTUNI_ALPHA, /* U+00190c: LIMBU LETTER THA*/ + RTUNI_ALPHA, /* U+00190d: LIMBU LETTER DA*/ + RTUNI_ALPHA, /* U+00190e: LIMBU LETTER DHA*/ + RTUNI_ALPHA, /* U+00190f: LIMBU LETTER NA*/ + RTUNI_ALPHA, /* U+001910: LIMBU LETTER PA*/ + RTUNI_ALPHA, /* U+001911: LIMBU LETTER PHA*/ + RTUNI_ALPHA, /* U+001912: LIMBU LETTER BA*/ + RTUNI_ALPHA, /* U+001913: LIMBU LETTER BHA*/ + RTUNI_ALPHA, /* U+001914: LIMBU LETTER MA*/ + RTUNI_ALPHA, /* U+001915: LIMBU LETTER YA*/ + RTUNI_ALPHA, /* U+001916: LIMBU LETTER RA*/ + RTUNI_ALPHA, /* U+001917: LIMBU LETTER LA*/ + RTUNI_ALPHA, /* U+001918: LIMBU LETTER WA*/ + RTUNI_ALPHA, /* U+001919: LIMBU LETTER SHA*/ + RTUNI_ALPHA, /* U+00191a: LIMBU LETTER SSA*/ + RTUNI_ALPHA, /* U+00191b: LIMBU LETTER SA*/ + RTUNI_ALPHA, /* U+00191c: LIMBU LETTER HA*/ + 0, /* U+00191d: */ + 0, /* U+00191e: */ + 0, /* U+00191f: */ + RTUNI_ALPHA, /* U+001920: LIMBU VOWEL SIGN A*/ + RTUNI_ALPHA, /* U+001921: LIMBU VOWEL SIGN I*/ + RTUNI_ALPHA, /* U+001922: LIMBU VOWEL SIGN U*/ + RTUNI_ALPHA, /* U+001923: LIMBU VOWEL SIGN EE*/ + RTUNI_ALPHA, /* U+001924: LIMBU VOWEL SIGN AI*/ + RTUNI_ALPHA, /* U+001925: LIMBU VOWEL SIGN OO*/ + RTUNI_ALPHA, /* U+001926: LIMBU VOWEL SIGN AU*/ + RTUNI_ALPHA, /* U+001927: LIMBU VOWEL SIGN E*/ + RTUNI_ALPHA, /* U+001928: LIMBU VOWEL SIGN O*/ + RTUNI_ALPHA, /* U+001929: LIMBU SUBJOINED LETTER YA*/ + RTUNI_ALPHA, /* U+00192a: LIMBU SUBJOINED LETTER RA*/ + RTUNI_ALPHA, /* U+00192b: LIMBU SUBJOINED LETTER WA*/ + 0, /* U+00192c: */ + 0, /* U+00192d: */ + 0, /* U+00192e: */ + 0, /* U+00192f: */ + RTUNI_ALPHA, /* U+001930: LIMBU SMALL LETTER KA*/ + RTUNI_ALPHA, /* U+001931: LIMBU SMALL LETTER NGA*/ + RTUNI_ALPHA, /* U+001932: LIMBU SMALL LETTER ANUSVARA*/ + RTUNI_ALPHA, /* U+001933: LIMBU SMALL LETTER TA*/ + RTUNI_ALPHA, /* U+001934: LIMBU SMALL LETTER NA*/ + RTUNI_ALPHA, /* U+001935: LIMBU SMALL LETTER PA*/ + RTUNI_ALPHA, /* U+001936: LIMBU SMALL LETTER MA*/ + RTUNI_ALPHA, /* U+001937: LIMBU SMALL LETTER RA*/ + RTUNI_ALPHA, /* U+001938: LIMBU SMALL LETTER LA*/ + 0, /* U+001939: LIMBU SIGN MUKPHRENG*/ + 0, /* U+00193a: LIMBU SIGN KEMPHRENG*/ + 0, /* U+00193b: LIMBU SIGN SA-I*/ + 0, /* U+00193c: */ + 0, /* U+00193d: */ + 0, /* U+00193e: */ + 0, /* U+00193f: */ + 0, /* U+001940: LIMBU SIGN LOO*/ + 0, /* U+001941: */ + 0, /* U+001942: */ + 0, /* U+001943: */ + 0, /* U+001944: LIMBU EXCLAMATION MARK*/ + 0, /* U+001945: LIMBU QUESTION MARK*/ + RTUNI_DDIGIT, /* U+001946: LIMBU DIGIT ZERO*/ + RTUNI_DDIGIT, /* U+001947: LIMBU DIGIT ONE*/ + RTUNI_DDIGIT, /* U+001948: LIMBU DIGIT TWO*/ + RTUNI_DDIGIT, /* U+001949: LIMBU DIGIT THREE*/ + RTUNI_DDIGIT, /* U+00194a: LIMBU DIGIT FOUR*/ + RTUNI_DDIGIT, /* U+00194b: LIMBU DIGIT FIVE*/ + RTUNI_DDIGIT, /* U+00194c: LIMBU DIGIT SIX*/ + RTUNI_DDIGIT, /* U+00194d: LIMBU DIGIT SEVEN*/ + RTUNI_DDIGIT, /* U+00194e: LIMBU DIGIT EIGHT*/ + RTUNI_DDIGIT, /* U+00194f: LIMBU DIGIT NINE*/ + RTUNI_ALPHA, /* U+001950: TAI LE LETTER KA*/ + RTUNI_ALPHA, /* U+001951: TAI LE LETTER XA*/ + RTUNI_ALPHA, /* U+001952: TAI LE LETTER NGA*/ + RTUNI_ALPHA, /* U+001953: TAI LE LETTER TSA*/ + RTUNI_ALPHA, /* U+001954: TAI LE LETTER SA*/ + RTUNI_ALPHA, /* U+001955: TAI LE LETTER YA*/ + RTUNI_ALPHA, /* U+001956: TAI LE LETTER TA*/ + RTUNI_ALPHA, /* U+001957: TAI LE LETTER THA*/ + RTUNI_ALPHA, /* U+001958: TAI LE LETTER LA*/ + RTUNI_ALPHA, /* U+001959: TAI LE LETTER PA*/ + RTUNI_ALPHA, /* U+00195a: TAI LE LETTER PHA*/ + RTUNI_ALPHA, /* U+00195b: TAI LE LETTER MA*/ + RTUNI_ALPHA, /* U+00195c: TAI LE LETTER FA*/ + RTUNI_ALPHA, /* U+00195d: TAI LE LETTER VA*/ + RTUNI_ALPHA, /* U+00195e: TAI LE LETTER HA*/ + RTUNI_ALPHA, /* U+00195f: TAI LE LETTER QA*/ + RTUNI_ALPHA, /* U+001960: TAI LE LETTER KHA*/ + RTUNI_ALPHA, /* U+001961: TAI LE LETTER TSHA*/ + RTUNI_ALPHA, /* U+001962: TAI LE LETTER NA*/ + RTUNI_ALPHA, /* U+001963: TAI LE LETTER A*/ + RTUNI_ALPHA, /* U+001964: TAI LE LETTER I*/ + RTUNI_ALPHA, /* U+001965: TAI LE LETTER EE*/ + RTUNI_ALPHA, /* U+001966: TAI LE LETTER EH*/ + RTUNI_ALPHA, /* U+001967: TAI LE LETTER U*/ + RTUNI_ALPHA, /* U+001968: TAI LE LETTER OO*/ + RTUNI_ALPHA, /* U+001969: TAI LE LETTER O*/ + RTUNI_ALPHA, /* U+00196a: TAI LE LETTER UE*/ + RTUNI_ALPHA, /* U+00196b: TAI LE LETTER E*/ + RTUNI_ALPHA, /* U+00196c: TAI LE LETTER AUE*/ + RTUNI_ALPHA, /* U+00196d: TAI LE LETTER AI*/ + 0, /* U+00196e: */ + 0, /* U+00196f: */ + RTUNI_ALPHA, /* U+001970: TAI LE LETTER TONE-2*/ + RTUNI_ALPHA, /* U+001971: TAI LE LETTER TONE-3*/ + RTUNI_ALPHA, /* U+001972: TAI LE LETTER TONE-4*/ + RTUNI_ALPHA, /* U+001973: TAI LE LETTER TONE-5*/ + RTUNI_ALPHA, /* U+001974: TAI LE LETTER TONE-6*/ + 0, /* U+001975: */ + 0, /* U+001976: */ + 0, /* U+001977: */ + 0, /* U+001978: */ + 0, /* U+001979: */ + 0, /* U+00197a: */ + 0, /* U+00197b: */ + 0, /* U+00197c: */ + 0, /* U+00197d: */ + 0, /* U+00197e: */ + 0, /* U+00197f: */ + RTUNI_ALPHA, /* U+001980: NEW TAI LUE LETTER HIGH QA*/ + RTUNI_ALPHA, /* U+001981: NEW TAI LUE LETTER LOW QA*/ + RTUNI_ALPHA, /* U+001982: NEW TAI LUE LETTER HIGH KA*/ + RTUNI_ALPHA, /* U+001983: NEW TAI LUE LETTER HIGH XA*/ + RTUNI_ALPHA, /* U+001984: NEW TAI LUE LETTER HIGH NGA*/ + RTUNI_ALPHA, /* U+001985: NEW TAI LUE LETTER LOW KA*/ + RTUNI_ALPHA, /* U+001986: NEW TAI LUE LETTER LOW XA*/ + RTUNI_ALPHA, /* U+001987: NEW TAI LUE LETTER LOW NGA*/ + RTUNI_ALPHA, /* U+001988: NEW TAI LUE LETTER HIGH TSA*/ + RTUNI_ALPHA, /* U+001989: NEW TAI LUE LETTER HIGH SA*/ + RTUNI_ALPHA, /* U+00198a: NEW TAI LUE LETTER HIGH YA*/ + RTUNI_ALPHA, /* U+00198b: NEW TAI LUE LETTER LOW TSA*/ + RTUNI_ALPHA, /* U+00198c: NEW TAI LUE LETTER LOW SA*/ + RTUNI_ALPHA, /* U+00198d: NEW TAI LUE LETTER LOW YA*/ + RTUNI_ALPHA, /* U+00198e: NEW TAI LUE LETTER HIGH TA*/ + RTUNI_ALPHA, /* U+00198f: NEW TAI LUE LETTER HIGH THA*/ + RTUNI_ALPHA, /* U+001990: NEW TAI LUE LETTER HIGH NA*/ + RTUNI_ALPHA, /* U+001991: NEW TAI LUE LETTER LOW TA*/ + RTUNI_ALPHA, /* U+001992: NEW TAI LUE LETTER LOW THA*/ + RTUNI_ALPHA, /* U+001993: NEW TAI LUE LETTER LOW NA*/ + RTUNI_ALPHA, /* U+001994: NEW TAI LUE LETTER HIGH PA*/ + RTUNI_ALPHA, /* U+001995: NEW TAI LUE LETTER HIGH PHA*/ + RTUNI_ALPHA, /* U+001996: NEW TAI LUE LETTER HIGH MA*/ + RTUNI_ALPHA, /* U+001997: NEW TAI LUE LETTER LOW PA*/ + RTUNI_ALPHA, /* U+001998: NEW TAI LUE LETTER LOW PHA*/ + RTUNI_ALPHA, /* U+001999: NEW TAI LUE LETTER LOW MA*/ + RTUNI_ALPHA, /* U+00199a: NEW TAI LUE LETTER HIGH FA*/ + RTUNI_ALPHA, /* U+00199b: NEW TAI LUE LETTER HIGH VA*/ + RTUNI_ALPHA, /* U+00199c: NEW TAI LUE LETTER HIGH LA*/ + RTUNI_ALPHA, /* U+00199d: NEW TAI LUE LETTER LOW FA*/ + RTUNI_ALPHA, /* U+00199e: NEW TAI LUE LETTER LOW VA*/ + RTUNI_ALPHA, /* U+00199f: NEW TAI LUE LETTER LOW LA*/ + RTUNI_ALPHA, /* U+0019a0: NEW TAI LUE LETTER HIGH HA*/ + RTUNI_ALPHA, /* U+0019a1: NEW TAI LUE LETTER HIGH DA*/ + RTUNI_ALPHA, /* U+0019a2: NEW TAI LUE LETTER HIGH BA*/ + RTUNI_ALPHA, /* U+0019a3: NEW TAI LUE LETTER LOW HA*/ + RTUNI_ALPHA, /* U+0019a4: NEW TAI LUE LETTER LOW DA*/ + RTUNI_ALPHA, /* U+0019a5: NEW TAI LUE LETTER LOW BA*/ + RTUNI_ALPHA, /* U+0019a6: NEW TAI LUE LETTER HIGH KVA*/ + RTUNI_ALPHA, /* U+0019a7: NEW TAI LUE LETTER HIGH XVA*/ + RTUNI_ALPHA, /* U+0019a8: NEW TAI LUE LETTER LOW KVA*/ + RTUNI_ALPHA, /* U+0019a9: NEW TAI LUE LETTER LOW XVA*/ + RTUNI_ALPHA, /* U+0019aa: NEW TAI LUE LETTER HIGH SUA*/ + RTUNI_ALPHA, /* U+0019ab: NEW TAI LUE LETTER LOW SUA*/ + 0, /* U+0019ac: */ + 0, /* U+0019ad: */ + 0, /* U+0019ae: */ + 0, /* U+0019af: */ + RTUNI_ALPHA, /* U+0019b0: NEW TAI LUE VOWEL SIGN VOWEL SHORTENER*/ + RTUNI_ALPHA, /* U+0019b1: NEW TAI LUE VOWEL SIGN AA*/ + RTUNI_ALPHA, /* U+0019b2: NEW TAI LUE VOWEL SIGN II*/ + RTUNI_ALPHA, /* U+0019b3: NEW TAI LUE VOWEL SIGN U*/ + RTUNI_ALPHA, /* U+0019b4: NEW TAI LUE VOWEL SIGN UU*/ + RTUNI_ALPHA, /* U+0019b5: NEW TAI LUE VOWEL SIGN E*/ + RTUNI_ALPHA, /* U+0019b6: NEW TAI LUE VOWEL SIGN AE*/ + RTUNI_ALPHA, /* U+0019b7: NEW TAI LUE VOWEL SIGN O*/ + RTUNI_ALPHA, /* U+0019b8: NEW TAI LUE VOWEL SIGN OA*/ + RTUNI_ALPHA, /* U+0019b9: NEW TAI LUE VOWEL SIGN UE*/ + RTUNI_ALPHA, /* U+0019ba: NEW TAI LUE VOWEL SIGN AY*/ + RTUNI_ALPHA, /* U+0019bb: NEW TAI LUE VOWEL SIGN AAY*/ + RTUNI_ALPHA, /* U+0019bc: NEW TAI LUE VOWEL SIGN UY*/ + RTUNI_ALPHA, /* U+0019bd: NEW TAI LUE VOWEL SIGN OY*/ + RTUNI_ALPHA, /* U+0019be: NEW TAI LUE VOWEL SIGN OAY*/ + RTUNI_ALPHA, /* U+0019bf: NEW TAI LUE VOWEL SIGN UEY*/ + RTUNI_ALPHA, /* U+0019c0: NEW TAI LUE VOWEL SIGN IY*/ + RTUNI_ALPHA, /* U+0019c1: NEW TAI LUE LETTER FINAL V*/ + RTUNI_ALPHA, /* U+0019c2: NEW TAI LUE LETTER FINAL NG*/ + RTUNI_ALPHA, /* U+0019c3: NEW TAI LUE LETTER FINAL N*/ + RTUNI_ALPHA, /* U+0019c4: NEW TAI LUE LETTER FINAL M*/ + RTUNI_ALPHA, /* U+0019c5: NEW TAI LUE LETTER FINAL K*/ + RTUNI_ALPHA, /* U+0019c6: NEW TAI LUE LETTER FINAL D*/ + RTUNI_ALPHA, /* U+0019c7: NEW TAI LUE LETTER FINAL B*/ + RTUNI_ALPHA, /* U+0019c8: NEW TAI LUE TONE MARK-1*/ + RTUNI_ALPHA, /* U+0019c9: NEW TAI LUE TONE MARK-2*/ + 0, /* U+0019ca: */ + 0, /* U+0019cb: */ + 0, /* U+0019cc: */ + 0, /* U+0019cd: */ + 0, /* U+0019ce: */ + 0, /* U+0019cf: */ + RTUNI_DDIGIT, /* U+0019d0: NEW TAI LUE DIGIT ZERO*/ + RTUNI_DDIGIT, /* U+0019d1: NEW TAI LUE DIGIT ONE*/ + RTUNI_DDIGIT, /* U+0019d2: NEW TAI LUE DIGIT TWO*/ + RTUNI_DDIGIT, /* U+0019d3: NEW TAI LUE DIGIT THREE*/ + RTUNI_DDIGIT, /* U+0019d4: NEW TAI LUE DIGIT FOUR*/ + RTUNI_DDIGIT, /* U+0019d5: NEW TAI LUE DIGIT FIVE*/ + RTUNI_DDIGIT, /* U+0019d6: NEW TAI LUE DIGIT SIX*/ + RTUNI_DDIGIT, /* U+0019d7: NEW TAI LUE DIGIT SEVEN*/ + RTUNI_DDIGIT, /* U+0019d8: NEW TAI LUE DIGIT EIGHT*/ + RTUNI_DDIGIT, /* U+0019d9: NEW TAI LUE DIGIT NINE*/ + 0, /* U+0019da: NEW TAI LUE THAM DIGIT ONE*/ + 0, /* U+0019db: */ + 0, /* U+0019dc: */ + 0, /* U+0019dd: */ + 0, /* U+0019de: NEW TAI LUE SIGN LAE*/ + 0, /* U+0019df: NEW TAI LUE SIGN LAEV*/ + 0, /* U+0019e0: KHMER SYMBOL PATHAMASAT*/ + 0, /* U+0019e1: KHMER SYMBOL MUOY KOET*/ + 0, /* U+0019e2: KHMER SYMBOL PII KOET*/ + 0, /* U+0019e3: KHMER SYMBOL BEI KOET*/ + 0, /* U+0019e4: KHMER SYMBOL BUON KOET*/ + 0, /* U+0019e5: KHMER SYMBOL PRAM KOET*/ + 0, /* U+0019e6: KHMER SYMBOL PRAM-MUOY KOET*/ + 0, /* U+0019e7: KHMER SYMBOL PRAM-PII KOET*/ + 0, /* U+0019e8: KHMER SYMBOL PRAM-BEI KOET*/ + 0, /* U+0019e9: KHMER SYMBOL PRAM-BUON KOET*/ + 0, /* U+0019ea: KHMER SYMBOL DAP KOET*/ + 0, /* U+0019eb: KHMER SYMBOL DAP-MUOY KOET*/ + 0, /* U+0019ec: KHMER SYMBOL DAP-PII KOET*/ + 0, /* U+0019ed: KHMER SYMBOL DAP-BEI KOET*/ + 0, /* U+0019ee: KHMER SYMBOL DAP-BUON KOET*/ + 0, /* U+0019ef: KHMER SYMBOL DAP-PRAM KOET*/ + 0, /* U+0019f0: KHMER SYMBOL TUTEYASAT*/ + 0, /* U+0019f1: KHMER SYMBOL MUOY ROC*/ + 0, /* U+0019f2: KHMER SYMBOL PII ROC*/ + 0, /* U+0019f3: KHMER SYMBOL BEI ROC*/ + 0, /* U+0019f4: KHMER SYMBOL BUON ROC*/ + 0, /* U+0019f5: KHMER SYMBOL PRAM ROC*/ + 0, /* U+0019f6: KHMER SYMBOL PRAM-MUOY ROC*/ + 0, /* U+0019f7: KHMER SYMBOL PRAM-PII ROC*/ + 0, /* U+0019f8: KHMER SYMBOL PRAM-BEI ROC*/ + 0, /* U+0019f9: KHMER SYMBOL PRAM-BUON ROC*/ + 0, /* U+0019fa: KHMER SYMBOL DAP ROC*/ + 0, /* U+0019fb: KHMER SYMBOL DAP-MUOY ROC*/ + 0, /* U+0019fc: KHMER SYMBOL DAP-PII ROC*/ + 0, /* U+0019fd: KHMER SYMBOL DAP-BEI ROC*/ + 0, /* U+0019fe: KHMER SYMBOL DAP-BUON ROC*/ + 0, /* U+0019ff: KHMER SYMBOL DAP-PRAM ROC*/ + RTUNI_ALPHA, /* U+001a00: BUGINESE LETTER KA*/ + RTUNI_ALPHA, /* U+001a01: BUGINESE LETTER GA*/ + RTUNI_ALPHA, /* U+001a02: BUGINESE LETTER NGA*/ + RTUNI_ALPHA, /* U+001a03: BUGINESE LETTER NGKA*/ + RTUNI_ALPHA, /* U+001a04: BUGINESE LETTER PA*/ + RTUNI_ALPHA, /* U+001a05: BUGINESE LETTER BA*/ + RTUNI_ALPHA, /* U+001a06: BUGINESE LETTER MA*/ + RTUNI_ALPHA, /* U+001a07: BUGINESE LETTER MPA*/ + RTUNI_ALPHA, /* U+001a08: BUGINESE LETTER TA*/ + RTUNI_ALPHA, /* U+001a09: BUGINESE LETTER DA*/ + RTUNI_ALPHA, /* U+001a0a: BUGINESE LETTER NA*/ + RTUNI_ALPHA, /* U+001a0b: BUGINESE LETTER NRA*/ + RTUNI_ALPHA, /* U+001a0c: BUGINESE LETTER CA*/ + RTUNI_ALPHA, /* U+001a0d: BUGINESE LETTER JA*/ + RTUNI_ALPHA, /* U+001a0e: BUGINESE LETTER NYA*/ + RTUNI_ALPHA, /* U+001a0f: BUGINESE LETTER NYCA*/ + RTUNI_ALPHA, /* U+001a10: BUGINESE LETTER YA*/ + RTUNI_ALPHA, /* U+001a11: BUGINESE LETTER RA*/ + RTUNI_ALPHA, /* U+001a12: BUGINESE LETTER LA*/ + RTUNI_ALPHA, /* U+001a13: BUGINESE LETTER VA*/ + RTUNI_ALPHA, /* U+001a14: BUGINESE LETTER SA*/ + RTUNI_ALPHA, /* U+001a15: BUGINESE LETTER A*/ + RTUNI_ALPHA, /* U+001a16: BUGINESE LETTER HA*/ + RTUNI_ALPHA, /* U+001a17: BUGINESE VOWEL SIGN I*/ + RTUNI_ALPHA, /* U+001a18: BUGINESE VOWEL SIGN U*/ + RTUNI_ALPHA, /* U+001a19: BUGINESE VOWEL SIGN E*/ + RTUNI_ALPHA, /* U+001a1a: BUGINESE VOWEL SIGN O*/ + RTUNI_ALPHA, /* U+001a1b: BUGINESE VOWEL SIGN AE*/ + 0, /* U+001a1c: */ + 0, /* U+001a1d: */ + 0, /* U+001a1e: BUGINESE PALLAWA*/ + 0, /* U+001a1f: BUGINESE END OF SECTION*/ + RTUNI_ALPHA, /* U+001a20: TAI THAM LETTER HIGH KA*/ + RTUNI_ALPHA, /* U+001a21: TAI THAM LETTER HIGH KHA*/ + RTUNI_ALPHA, /* U+001a22: TAI THAM LETTER HIGH KXA*/ + RTUNI_ALPHA, /* U+001a23: TAI THAM LETTER LOW KA*/ + RTUNI_ALPHA, /* U+001a24: TAI THAM LETTER LOW KXA*/ + RTUNI_ALPHA, /* U+001a25: TAI THAM LETTER LOW KHA*/ + RTUNI_ALPHA, /* U+001a26: TAI THAM LETTER NGA*/ + RTUNI_ALPHA, /* U+001a27: TAI THAM LETTER HIGH CA*/ + RTUNI_ALPHA, /* U+001a28: TAI THAM LETTER HIGH CHA*/ + RTUNI_ALPHA, /* U+001a29: TAI THAM LETTER LOW CA*/ + RTUNI_ALPHA, /* U+001a2a: TAI THAM LETTER LOW SA*/ + RTUNI_ALPHA, /* U+001a2b: TAI THAM LETTER LOW CHA*/ + RTUNI_ALPHA, /* U+001a2c: TAI THAM LETTER NYA*/ + RTUNI_ALPHA, /* U+001a2d: TAI THAM LETTER RATA*/ + RTUNI_ALPHA, /* U+001a2e: TAI THAM LETTER HIGH RATHA*/ + RTUNI_ALPHA, /* U+001a2f: TAI THAM LETTER DA*/ + RTUNI_ALPHA, /* U+001a30: TAI THAM LETTER LOW RATHA*/ + RTUNI_ALPHA, /* U+001a31: TAI THAM LETTER RANA*/ + RTUNI_ALPHA, /* U+001a32: TAI THAM LETTER HIGH TA*/ + RTUNI_ALPHA, /* U+001a33: TAI THAM LETTER HIGH THA*/ + RTUNI_ALPHA, /* U+001a34: TAI THAM LETTER LOW TA*/ + RTUNI_ALPHA, /* U+001a35: TAI THAM LETTER LOW THA*/ + RTUNI_ALPHA, /* U+001a36: TAI THAM LETTER NA*/ + RTUNI_ALPHA, /* U+001a37: TAI THAM LETTER BA*/ + RTUNI_ALPHA, /* U+001a38: TAI THAM LETTER HIGH PA*/ + RTUNI_ALPHA, /* U+001a39: TAI THAM LETTER HIGH PHA*/ + RTUNI_ALPHA, /* U+001a3a: TAI THAM LETTER HIGH FA*/ + RTUNI_ALPHA, /* U+001a3b: TAI THAM LETTER LOW PA*/ + RTUNI_ALPHA, /* U+001a3c: TAI THAM LETTER LOW FA*/ + RTUNI_ALPHA, /* U+001a3d: TAI THAM LETTER LOW PHA*/ + RTUNI_ALPHA, /* U+001a3e: TAI THAM LETTER MA*/ + RTUNI_ALPHA, /* U+001a3f: TAI THAM LETTER LOW YA*/ + RTUNI_ALPHA, /* U+001a40: TAI THAM LETTER HIGH YA*/ + RTUNI_ALPHA, /* U+001a41: TAI THAM LETTER RA*/ + RTUNI_ALPHA, /* U+001a42: TAI THAM LETTER RUE*/ + RTUNI_ALPHA, /* U+001a43: TAI THAM LETTER LA*/ + RTUNI_ALPHA, /* U+001a44: TAI THAM LETTER LUE*/ + RTUNI_ALPHA, /* U+001a45: TAI THAM LETTER WA*/ + RTUNI_ALPHA, /* U+001a46: TAI THAM LETTER HIGH SHA*/ + RTUNI_ALPHA, /* U+001a47: TAI THAM LETTER HIGH SSA*/ + RTUNI_ALPHA, /* U+001a48: TAI THAM LETTER HIGH SA*/ + RTUNI_ALPHA, /* U+001a49: TAI THAM LETTER HIGH HA*/ + RTUNI_ALPHA, /* U+001a4a: TAI THAM LETTER LLA*/ + RTUNI_ALPHA, /* U+001a4b: TAI THAM LETTER A*/ + RTUNI_ALPHA, /* U+001a4c: TAI THAM LETTER LOW HA*/ + RTUNI_ALPHA, /* U+001a4d: TAI THAM LETTER I*/ + RTUNI_ALPHA, /* U+001a4e: TAI THAM LETTER II*/ + RTUNI_ALPHA, /* U+001a4f: TAI THAM LETTER U*/ + RTUNI_ALPHA, /* U+001a50: TAI THAM LETTER UU*/ + RTUNI_ALPHA, /* U+001a51: TAI THAM LETTER EE*/ + RTUNI_ALPHA, /* U+001a52: TAI THAM LETTER OO*/ + RTUNI_ALPHA, /* U+001a53: TAI THAM LETTER LAE*/ + RTUNI_ALPHA, /* U+001a54: TAI THAM LETTER GREAT SA*/ + RTUNI_ALPHA, /* U+001a55: TAI THAM CONSONANT SIGN MEDIAL RA*/ + RTUNI_ALPHA, /* U+001a56: TAI THAM CONSONANT SIGN MEDIAL LA*/ + RTUNI_ALPHA, /* U+001a57: TAI THAM CONSONANT SIGN LA TANG LAI*/ + RTUNI_ALPHA, /* U+001a58: TAI THAM SIGN MAI KANG LAI*/ + RTUNI_ALPHA, /* U+001a59: TAI THAM CONSONANT SIGN FINAL NGA*/ + RTUNI_ALPHA, /* U+001a5a: TAI THAM CONSONANT SIGN LOW PA*/ + RTUNI_ALPHA, /* U+001a5b: TAI THAM CONSONANT SIGN HIGH RATHA OR LOW PA*/ + RTUNI_ALPHA, /* U+001a5c: TAI THAM CONSONANT SIGN MA*/ + RTUNI_ALPHA, /* U+001a5d: TAI THAM CONSONANT SIGN BA*/ + RTUNI_ALPHA, /* U+001a5e: TAI THAM CONSONANT SIGN SA*/ + 0, /* U+001a5f: */ + 0, /* U+001a60: TAI THAM SIGN SAKOT*/ + RTUNI_ALPHA, /* U+001a61: TAI THAM VOWEL SIGN A*/ + RTUNI_ALPHA, /* U+001a62: TAI THAM VOWEL SIGN MAI SAT*/ + RTUNI_ALPHA, /* U+001a63: TAI THAM VOWEL SIGN AA*/ + RTUNI_ALPHA, /* U+001a64: TAI THAM VOWEL SIGN TALL AA*/ + RTUNI_ALPHA, /* U+001a65: TAI THAM VOWEL SIGN I*/ + RTUNI_ALPHA, /* U+001a66: TAI THAM VOWEL SIGN II*/ + RTUNI_ALPHA, /* U+001a67: TAI THAM VOWEL SIGN UE*/ + RTUNI_ALPHA, /* U+001a68: TAI THAM VOWEL SIGN UUE*/ + RTUNI_ALPHA, /* U+001a69: TAI THAM VOWEL SIGN U*/ + RTUNI_ALPHA, /* U+001a6a: TAI THAM VOWEL SIGN UU*/ + RTUNI_ALPHA, /* U+001a6b: TAI THAM VOWEL SIGN O*/ + RTUNI_ALPHA, /* U+001a6c: TAI THAM VOWEL SIGN OA BELOW*/ + RTUNI_ALPHA, /* U+001a6d: TAI THAM VOWEL SIGN OY*/ + RTUNI_ALPHA, /* U+001a6e: TAI THAM VOWEL SIGN E*/ + RTUNI_ALPHA, /* U+001a6f: TAI THAM VOWEL SIGN AE*/ + RTUNI_ALPHA, /* U+001a70: TAI THAM VOWEL SIGN OO*/ + RTUNI_ALPHA, /* U+001a71: TAI THAM VOWEL SIGN AI*/ + RTUNI_ALPHA, /* U+001a72: TAI THAM VOWEL SIGN THAM AI*/ + RTUNI_ALPHA, /* U+001a73: TAI THAM VOWEL SIGN OA ABOVE*/ + RTUNI_ALPHA, /* U+001a74: TAI THAM SIGN MAI KANG*/ + 0, /* U+001a75: TAI THAM SIGN TONE-1*/ + 0, /* U+001a76: TAI THAM SIGN TONE-2*/ + 0, /* U+001a77: TAI THAM SIGN KHUEN TONE-3*/ + 0, /* U+001a78: TAI THAM SIGN KHUEN TONE-4*/ + 0, /* U+001a79: TAI THAM SIGN KHUEN TONE-5*/ + 0, /* U+001a7a: TAI THAM SIGN RA HAAM*/ + 0, /* U+001a7b: TAI THAM SIGN MAI SAM*/ + 0, /* U+001a7c: TAI THAM SIGN KHUEN-LUE KARAN*/ + 0, /* U+001a7d: */ + 0, /* U+001a7e: */ + 0, /* U+001a7f: TAI THAM COMBINING CRYPTOGRAMMIC DOT*/ + RTUNI_DDIGIT, /* U+001a80: TAI THAM HORA DIGIT ZERO*/ + RTUNI_DDIGIT, /* U+001a81: TAI THAM HORA DIGIT ONE*/ + RTUNI_DDIGIT, /* U+001a82: TAI THAM HORA DIGIT TWO*/ + RTUNI_DDIGIT, /* U+001a83: TAI THAM HORA DIGIT THREE*/ + RTUNI_DDIGIT, /* U+001a84: TAI THAM HORA DIGIT FOUR*/ + RTUNI_DDIGIT, /* U+001a85: TAI THAM HORA DIGIT FIVE*/ + RTUNI_DDIGIT, /* U+001a86: TAI THAM HORA DIGIT SIX*/ + RTUNI_DDIGIT, /* U+001a87: TAI THAM HORA DIGIT SEVEN*/ + RTUNI_DDIGIT, /* U+001a88: TAI THAM HORA DIGIT EIGHT*/ + RTUNI_DDIGIT, /* U+001a89: TAI THAM HORA DIGIT NINE*/ + 0, /* U+001a8a: */ + 0, /* U+001a8b: */ + 0, /* U+001a8c: */ + 0, /* U+001a8d: */ + 0, /* U+001a8e: */ + 0, /* U+001a8f: */ + RTUNI_DDIGIT, /* U+001a90: TAI THAM THAM DIGIT ZERO*/ + RTUNI_DDIGIT, /* U+001a91: TAI THAM THAM DIGIT ONE*/ + RTUNI_DDIGIT, /* U+001a92: TAI THAM THAM DIGIT TWO*/ + RTUNI_DDIGIT, /* U+001a93: TAI THAM THAM DIGIT THREE*/ + RTUNI_DDIGIT, /* U+001a94: TAI THAM THAM DIGIT FOUR*/ + RTUNI_DDIGIT, /* U+001a95: TAI THAM THAM DIGIT FIVE*/ + RTUNI_DDIGIT, /* U+001a96: TAI THAM THAM DIGIT SIX*/ + RTUNI_DDIGIT, /* U+001a97: TAI THAM THAM DIGIT SEVEN*/ + RTUNI_DDIGIT, /* U+001a98: TAI THAM THAM DIGIT EIGHT*/ + RTUNI_DDIGIT, /* U+001a99: TAI THAM THAM DIGIT NINE*/ + 0, /* U+001a9a: */ + 0, /* U+001a9b: */ + 0, /* U+001a9c: */ + 0, /* U+001a9d: */ + 0, /* U+001a9e: */ + 0, /* U+001a9f: */ + 0, /* U+001aa0: TAI THAM SIGN WIANG*/ + 0, /* U+001aa1: TAI THAM SIGN WIANGWAAK*/ + 0, /* U+001aa2: TAI THAM SIGN SAWAN*/ + 0, /* U+001aa3: TAI THAM SIGN KEOW*/ + 0, /* U+001aa4: TAI THAM SIGN HOY*/ + 0, /* U+001aa5: TAI THAM SIGN DOKMAI*/ + 0, /* U+001aa6: TAI THAM SIGN REVERSED ROTATED RANA*/ + RTUNI_ALPHA, /* U+001aa7: TAI THAM SIGN MAI YAMOK*/ + 0, /* U+001aa8: TAI THAM SIGN KAAN*/ + 0, /* U+001aa9: TAI THAM SIGN KAANKUU*/ + 0, /* U+001aaa: TAI THAM SIGN SATKAAN*/ + 0, /* U+001aab: TAI THAM SIGN SATKAANKUU*/ + 0, /* U+001aac: TAI THAM SIGN HANG*/ + 0, /* U+001aad: TAI THAM SIGN CAANG*/ + 0, /* U+001aae: */ + 0, /* U+001aaf: */ + 0, /* U+001ab0: */ + 0, /* U+001ab1: */ + 0, /* U+001ab2: */ + 0, /* U+001ab3: */ + 0, /* U+001ab4: */ + 0, /* U+001ab5: */ + 0, /* U+001ab6: */ + 0, /* U+001ab7: */ + 0, /* U+001ab8: */ + 0, /* U+001ab9: */ + 0, /* U+001aba: */ + 0, /* U+001abb: */ + 0, /* U+001abc: */ + 0, /* U+001abd: */ + 0, /* U+001abe: */ + 0, /* U+001abf: */ + 0, /* U+001ac0: */ + 0, /* U+001ac1: */ + 0, /* U+001ac2: */ + 0, /* U+001ac3: */ + 0, /* U+001ac4: */ + 0, /* U+001ac5: */ + 0, /* U+001ac6: */ + 0, /* U+001ac7: */ + 0, /* U+001ac8: */ + 0, /* U+001ac9: */ + 0, /* U+001aca: */ + 0, /* U+001acb: */ + 0, /* U+001acc: */ + 0, /* U+001acd: */ + 0, /* U+001ace: */ + 0, /* U+001acf: */ + 0, /* U+001ad0: */ + 0, /* U+001ad1: */ + 0, /* U+001ad2: */ + 0, /* U+001ad3: */ + 0, /* U+001ad4: */ + 0, /* U+001ad5: */ + 0, /* U+001ad6: */ + 0, /* U+001ad7: */ + 0, /* U+001ad8: */ + 0, /* U+001ad9: */ + 0, /* U+001ada: */ + 0, /* U+001adb: */ + 0, /* U+001adc: */ + 0, /* U+001add: */ + 0, /* U+001ade: */ + 0, /* U+001adf: */ + 0, /* U+001ae0: */ + 0, /* U+001ae1: */ + 0, /* U+001ae2: */ + 0, /* U+001ae3: */ + 0, /* U+001ae4: */ + 0, /* U+001ae5: */ + 0, /* U+001ae6: */ + 0, /* U+001ae7: */ + 0, /* U+001ae8: */ + 0, /* U+001ae9: */ + 0, /* U+001aea: */ + 0, /* U+001aeb: */ + 0, /* U+001aec: */ + 0, /* U+001aed: */ + 0, /* U+001aee: */ + 0, /* U+001aef: */ + 0, /* U+001af0: */ + 0, /* U+001af1: */ + 0, /* U+001af2: */ + 0, /* U+001af3: */ + 0, /* U+001af4: */ + 0, /* U+001af5: */ + 0, /* U+001af6: */ + 0, /* U+001af7: */ + 0, /* U+001af8: */ + 0, /* U+001af9: */ + 0, /* U+001afa: */ + 0, /* U+001afb: */ + 0, /* U+001afc: */ + 0, /* U+001afd: */ + 0, /* U+001afe: */ + 0, /* U+001aff: */ + RTUNI_ALPHA, /* U+001b00: BALINESE SIGN ULU RICEM*/ + RTUNI_ALPHA, /* U+001b01: BALINESE SIGN ULU CANDRA*/ + RTUNI_ALPHA, /* U+001b02: BALINESE SIGN CECEK*/ + RTUNI_ALPHA, /* U+001b03: BALINESE SIGN SURANG*/ + RTUNI_ALPHA, /* U+001b04: BALINESE SIGN BISAH*/ + RTUNI_ALPHA, /* U+001b05: BALINESE LETTER AKARA*/ + RTUNI_ALPHA, /* U+001b06: BALINESE LETTER AKARA TEDUNG*/ + RTUNI_ALPHA, /* U+001b07: BALINESE LETTER IKARA*/ + RTUNI_ALPHA, /* U+001b08: BALINESE LETTER IKARA TEDUNG*/ + RTUNI_ALPHA, /* U+001b09: BALINESE LETTER UKARA*/ + RTUNI_ALPHA, /* U+001b0a: BALINESE LETTER UKARA TEDUNG*/ + RTUNI_ALPHA, /* U+001b0b: BALINESE LETTER RA REPA*/ + RTUNI_ALPHA, /* U+001b0c: BALINESE LETTER RA REPA TEDUNG*/ + RTUNI_ALPHA, /* U+001b0d: BALINESE LETTER LA LENGA*/ + RTUNI_ALPHA, /* U+001b0e: BALINESE LETTER LA LENGA TEDUNG*/ + RTUNI_ALPHA, /* U+001b0f: BALINESE LETTER EKARA*/ + RTUNI_ALPHA, /* U+001b10: BALINESE LETTER AIKARA*/ + RTUNI_ALPHA, /* U+001b11: BALINESE LETTER OKARA*/ + RTUNI_ALPHA, /* U+001b12: BALINESE LETTER OKARA TEDUNG*/ + RTUNI_ALPHA, /* U+001b13: BALINESE LETTER KA*/ + RTUNI_ALPHA, /* U+001b14: BALINESE LETTER KA MAHAPRANA*/ + RTUNI_ALPHA, /* U+001b15: BALINESE LETTER GA*/ + RTUNI_ALPHA, /* U+001b16: BALINESE LETTER GA GORA*/ + RTUNI_ALPHA, /* U+001b17: BALINESE LETTER NGA*/ + RTUNI_ALPHA, /* U+001b18: BALINESE LETTER CA*/ + RTUNI_ALPHA, /* U+001b19: BALINESE LETTER CA LACA*/ + RTUNI_ALPHA, /* U+001b1a: BALINESE LETTER JA*/ + RTUNI_ALPHA, /* U+001b1b: BALINESE LETTER JA JERA*/ + RTUNI_ALPHA, /* U+001b1c: BALINESE LETTER NYA*/ + RTUNI_ALPHA, /* U+001b1d: BALINESE LETTER TA LATIK*/ + RTUNI_ALPHA, /* U+001b1e: BALINESE LETTER TA MURDA MAHAPRANA*/ + RTUNI_ALPHA, /* U+001b1f: BALINESE LETTER DA MURDA ALPAPRANA*/ + RTUNI_ALPHA, /* U+001b20: BALINESE LETTER DA MURDA MAHAPRANA*/ + RTUNI_ALPHA, /* U+001b21: BALINESE LETTER NA RAMBAT*/ + RTUNI_ALPHA, /* U+001b22: BALINESE LETTER TA*/ + RTUNI_ALPHA, /* U+001b23: BALINESE LETTER TA TAWA*/ + RTUNI_ALPHA, /* U+001b24: BALINESE LETTER DA*/ + RTUNI_ALPHA, /* U+001b25: BALINESE LETTER DA MADU*/ + RTUNI_ALPHA, /* U+001b26: BALINESE LETTER NA*/ + RTUNI_ALPHA, /* U+001b27: BALINESE LETTER PA*/ + RTUNI_ALPHA, /* U+001b28: BALINESE LETTER PA KAPAL*/ + RTUNI_ALPHA, /* U+001b29: BALINESE LETTER BA*/ + RTUNI_ALPHA, /* U+001b2a: BALINESE LETTER BA KEMBANG*/ + RTUNI_ALPHA, /* U+001b2b: BALINESE LETTER MA*/ + RTUNI_ALPHA, /* U+001b2c: BALINESE LETTER YA*/ + RTUNI_ALPHA, /* U+001b2d: BALINESE LETTER RA*/ + RTUNI_ALPHA, /* U+001b2e: BALINESE LETTER LA*/ + RTUNI_ALPHA, /* U+001b2f: BALINESE LETTER WA*/ + RTUNI_ALPHA, /* U+001b30: BALINESE LETTER SA SAGA*/ + RTUNI_ALPHA, /* U+001b31: BALINESE LETTER SA SAPA*/ + RTUNI_ALPHA, /* U+001b32: BALINESE LETTER SA*/ + RTUNI_ALPHA, /* U+001b33: BALINESE LETTER HA*/ + 0, /* U+001b34: BALINESE SIGN REREKAN*/ + RTUNI_ALPHA, /* U+001b35: BALINESE VOWEL SIGN TEDUNG*/ + RTUNI_ALPHA, /* U+001b36: BALINESE VOWEL SIGN ULU*/ + RTUNI_ALPHA, /* U+001b37: BALINESE VOWEL SIGN ULU SARI*/ + RTUNI_ALPHA, /* U+001b38: BALINESE VOWEL SIGN SUKU*/ + RTUNI_ALPHA, /* U+001b39: BALINESE VOWEL SIGN SUKU ILUT*/ + RTUNI_ALPHA, /* U+001b3a: BALINESE VOWEL SIGN RA REPA*/ + RTUNI_ALPHA, /* U+001b3b: BALINESE VOWEL SIGN RA REPA TEDUNG*/ + RTUNI_ALPHA, /* U+001b3c: BALINESE VOWEL SIGN LA LENGA*/ + RTUNI_ALPHA, /* U+001b3d: BALINESE VOWEL SIGN LA LENGA TEDUNG*/ + RTUNI_ALPHA, /* U+001b3e: BALINESE VOWEL SIGN TALING*/ + RTUNI_ALPHA, /* U+001b3f: BALINESE VOWEL SIGN TALING REPA*/ + RTUNI_ALPHA, /* U+001b40: BALINESE VOWEL SIGN TALING TEDUNG*/ + RTUNI_ALPHA, /* U+001b41: BALINESE VOWEL SIGN TALING REPA TEDUNG*/ + RTUNI_ALPHA, /* U+001b42: BALINESE VOWEL SIGN PEPET*/ + RTUNI_ALPHA, /* U+001b43: BALINESE VOWEL SIGN PEPET TEDUNG*/ + 0, /* U+001b44: BALINESE ADEG ADEG*/ + RTUNI_ALPHA, /* U+001b45: BALINESE LETTER KAF SASAK*/ + RTUNI_ALPHA, /* U+001b46: BALINESE LETTER KHOT SASAK*/ + RTUNI_ALPHA, /* U+001b47: BALINESE LETTER TZIR SASAK*/ + RTUNI_ALPHA, /* U+001b48: BALINESE LETTER EF SASAK*/ + RTUNI_ALPHA, /* U+001b49: BALINESE LETTER VE SASAK*/ + RTUNI_ALPHA, /* U+001b4a: BALINESE LETTER ZAL SASAK*/ + RTUNI_ALPHA, /* U+001b4b: BALINESE LETTER ASYURA SASAK*/ + 0, /* U+001b4c: */ + 0, /* U+001b4d: */ + 0, /* U+001b4e: */ + 0, /* U+001b4f: */ + RTUNI_DDIGIT, /* U+001b50: BALINESE DIGIT ZERO*/ + RTUNI_DDIGIT, /* U+001b51: BALINESE DIGIT ONE*/ + RTUNI_DDIGIT, /* U+001b52: BALINESE DIGIT TWO*/ + RTUNI_DDIGIT, /* U+001b53: BALINESE DIGIT THREE*/ + RTUNI_DDIGIT, /* U+001b54: BALINESE DIGIT FOUR*/ + RTUNI_DDIGIT, /* U+001b55: BALINESE DIGIT FIVE*/ + RTUNI_DDIGIT, /* U+001b56: BALINESE DIGIT SIX*/ + RTUNI_DDIGIT, /* U+001b57: BALINESE DIGIT SEVEN*/ + RTUNI_DDIGIT, /* U+001b58: BALINESE DIGIT EIGHT*/ + RTUNI_DDIGIT, /* U+001b59: BALINESE DIGIT NINE*/ + 0, /* U+001b5a: BALINESE PANTI*/ + 0, /* U+001b5b: BALINESE PAMADA*/ + 0, /* U+001b5c: BALINESE WINDU*/ + 0, /* U+001b5d: BALINESE CARIK PAMUNGKAH*/ + 0, /* U+001b5e: BALINESE CARIK SIKI*/ + 0, /* U+001b5f: BALINESE CARIK PAREREN*/ + 0, /* U+001b60: BALINESE PAMENENG*/ + 0, /* U+001b61: BALINESE MUSICAL SYMBOL DONG*/ + 0, /* U+001b62: BALINESE MUSICAL SYMBOL DENG*/ + 0, /* U+001b63: BALINESE MUSICAL SYMBOL DUNG*/ + 0, /* U+001b64: BALINESE MUSICAL SYMBOL DANG*/ + 0, /* U+001b65: BALINESE MUSICAL SYMBOL DANG SURANG*/ + 0, /* U+001b66: BALINESE MUSICAL SYMBOL DING*/ + 0, /* U+001b67: BALINESE MUSICAL SYMBOL DAENG*/ + 0, /* U+001b68: BALINESE MUSICAL SYMBOL DEUNG*/ + 0, /* U+001b69: BALINESE MUSICAL SYMBOL DAING*/ + 0, /* U+001b6a: BALINESE MUSICAL SYMBOL DANG GEDE*/ + 0, /* U+001b6b: BALINESE MUSICAL SYMBOL COMBINING TEGEH*/ + 0, /* U+001b6c: BALINESE MUSICAL SYMBOL COMBINING ENDEP*/ + 0, /* U+001b6d: BALINESE MUSICAL SYMBOL COMBINING KEMPUL*/ + 0, /* U+001b6e: BALINESE MUSICAL SYMBOL COMBINING KEMPLI*/ + 0, /* U+001b6f: BALINESE MUSICAL SYMBOL COMBINING JEGOGAN*/ + 0, /* U+001b70: BALINESE MUSICAL SYMBOL COMBINING KEMPUL WITH JEGOGAN*/ + 0, /* U+001b71: BALINESE MUSICAL SYMBOL COMBINING KEMPLI WITH JEGOGAN*/ + 0, /* U+001b72: BALINESE MUSICAL SYMBOL COMBINING BENDE*/ + 0, /* U+001b73: BALINESE MUSICAL SYMBOL COMBINING GONG*/ + 0, /* U+001b74: BALINESE MUSICAL SYMBOL RIGHT-HAND OPEN DUG*/ + 0, /* U+001b75: BALINESE MUSICAL SYMBOL RIGHT-HAND OPEN DAG*/ + 0, /* U+001b76: BALINESE MUSICAL SYMBOL RIGHT-HAND CLOSED TUK*/ + 0, /* U+001b77: BALINESE MUSICAL SYMBOL RIGHT-HAND CLOSED TAK*/ + 0, /* U+001b78: BALINESE MUSICAL SYMBOL LEFT-HAND OPEN PANG*/ + 0, /* U+001b79: BALINESE MUSICAL SYMBOL LEFT-HAND OPEN PUNG*/ + 0, /* U+001b7a: BALINESE MUSICAL SYMBOL LEFT-HAND CLOSED PLAK*/ + 0, /* U+001b7b: BALINESE MUSICAL SYMBOL LEFT-HAND CLOSED PLUK*/ + 0, /* U+001b7c: BALINESE MUSICAL SYMBOL LEFT-HAND OPEN PING*/ + 0, /* U+001b7d: */ + 0, /* U+001b7e: */ + 0, /* U+001b7f: */ + RTUNI_ALPHA, /* U+001b80: SUNDANESE SIGN PANYECEK*/ + RTUNI_ALPHA, /* U+001b81: SUNDANESE SIGN PANGLAYAR*/ + RTUNI_ALPHA, /* U+001b82: SUNDANESE SIGN PANGWISAD*/ + RTUNI_ALPHA, /* U+001b83: SUNDANESE LETTER A*/ + RTUNI_ALPHA, /* U+001b84: SUNDANESE LETTER I*/ + RTUNI_ALPHA, /* U+001b85: SUNDANESE LETTER U*/ + RTUNI_ALPHA, /* U+001b86: SUNDANESE LETTER AE*/ + RTUNI_ALPHA, /* U+001b87: SUNDANESE LETTER O*/ + RTUNI_ALPHA, /* U+001b88: SUNDANESE LETTER E*/ + RTUNI_ALPHA, /* U+001b89: SUNDANESE LETTER EU*/ + RTUNI_ALPHA, /* U+001b8a: SUNDANESE LETTER KA*/ + RTUNI_ALPHA, /* U+001b8b: SUNDANESE LETTER QA*/ + RTUNI_ALPHA, /* U+001b8c: SUNDANESE LETTER GA*/ + RTUNI_ALPHA, /* U+001b8d: SUNDANESE LETTER NGA*/ + RTUNI_ALPHA, /* U+001b8e: SUNDANESE LETTER CA*/ + RTUNI_ALPHA, /* U+001b8f: SUNDANESE LETTER JA*/ + RTUNI_ALPHA, /* U+001b90: SUNDANESE LETTER ZA*/ + RTUNI_ALPHA, /* U+001b91: SUNDANESE LETTER NYA*/ + RTUNI_ALPHA, /* U+001b92: SUNDANESE LETTER TA*/ + RTUNI_ALPHA, /* U+001b93: SUNDANESE LETTER DA*/ + RTUNI_ALPHA, /* U+001b94: SUNDANESE LETTER NA*/ + RTUNI_ALPHA, /* U+001b95: SUNDANESE LETTER PA*/ + RTUNI_ALPHA, /* U+001b96: SUNDANESE LETTER FA*/ + RTUNI_ALPHA, /* U+001b97: SUNDANESE LETTER VA*/ + RTUNI_ALPHA, /* U+001b98: SUNDANESE LETTER BA*/ + RTUNI_ALPHA, /* U+001b99: SUNDANESE LETTER MA*/ + RTUNI_ALPHA, /* U+001b9a: SUNDANESE LETTER YA*/ + RTUNI_ALPHA, /* U+001b9b: SUNDANESE LETTER RA*/ + RTUNI_ALPHA, /* U+001b9c: SUNDANESE LETTER LA*/ + RTUNI_ALPHA, /* U+001b9d: SUNDANESE LETTER WA*/ + RTUNI_ALPHA, /* U+001b9e: SUNDANESE LETTER SA*/ + RTUNI_ALPHA, /* U+001b9f: SUNDANESE LETTER XA*/ + RTUNI_ALPHA, /* U+001ba0: SUNDANESE LETTER HA*/ + RTUNI_ALPHA, /* U+001ba1: SUNDANESE CONSONANT SIGN PAMINGKAL*/ + RTUNI_ALPHA, /* U+001ba2: SUNDANESE CONSONANT SIGN PANYAKRA*/ + RTUNI_ALPHA, /* U+001ba3: SUNDANESE CONSONANT SIGN PANYIKU*/ + RTUNI_ALPHA, /* U+001ba4: SUNDANESE VOWEL SIGN PANGHULU*/ + RTUNI_ALPHA, /* U+001ba5: SUNDANESE VOWEL SIGN PANYUKU*/ + RTUNI_ALPHA, /* U+001ba6: SUNDANESE VOWEL SIGN PANAELAENG*/ + RTUNI_ALPHA, /* U+001ba7: SUNDANESE VOWEL SIGN PANOLONG*/ + RTUNI_ALPHA, /* U+001ba8: SUNDANESE VOWEL SIGN PAMEPET*/ + RTUNI_ALPHA, /* U+001ba9: SUNDANESE VOWEL SIGN PANEULEUNG*/ + 0, /* U+001baa: SUNDANESE SIGN PAMAAEH*/ + 0, /* U+001bab: SUNDANESE SIGN VIRAMA*/ + RTUNI_ALPHA, /* U+001bac: SUNDANESE CONSONANT SIGN PASANGAN MA*/ + RTUNI_ALPHA, /* U+001bad: SUNDANESE CONSONANT SIGN PASANGAN WA*/ + RTUNI_ALPHA, /* U+001bae: SUNDANESE LETTER KHA*/ + RTUNI_ALPHA, /* U+001baf: SUNDANESE LETTER SYA*/ + RTUNI_DDIGIT, /* U+001bb0: SUNDANESE DIGIT ZERO*/ + RTUNI_DDIGIT, /* U+001bb1: SUNDANESE DIGIT ONE*/ + RTUNI_DDIGIT, /* U+001bb2: SUNDANESE DIGIT TWO*/ + RTUNI_DDIGIT, /* U+001bb3: SUNDANESE DIGIT THREE*/ + RTUNI_DDIGIT, /* U+001bb4: SUNDANESE DIGIT FOUR*/ + RTUNI_DDIGIT, /* U+001bb5: SUNDANESE DIGIT FIVE*/ + RTUNI_DDIGIT, /* U+001bb6: SUNDANESE DIGIT SIX*/ + RTUNI_DDIGIT, /* U+001bb7: SUNDANESE DIGIT SEVEN*/ + RTUNI_DDIGIT, /* U+001bb8: SUNDANESE DIGIT EIGHT*/ + RTUNI_DDIGIT, /* U+001bb9: SUNDANESE DIGIT NINE*/ + RTUNI_ALPHA, /* U+001bba: SUNDANESE AVAGRAHA*/ + RTUNI_ALPHA, /* U+001bbb: SUNDANESE LETTER REU*/ + RTUNI_ALPHA, /* U+001bbc: SUNDANESE LETTER LEU*/ + RTUNI_ALPHA, /* U+001bbd: SUNDANESE LETTER BHA*/ + RTUNI_ALPHA, /* U+001bbe: SUNDANESE LETTER FINAL K*/ + RTUNI_ALPHA, /* U+001bbf: SUNDANESE LETTER FINAL M*/ + RTUNI_ALPHA, /* U+001bc0: BATAK LETTER A*/ + RTUNI_ALPHA, /* U+001bc1: BATAK LETTER SIMALUNGUN A*/ + RTUNI_ALPHA, /* U+001bc2: BATAK LETTER HA*/ + RTUNI_ALPHA, /* U+001bc3: BATAK LETTER SIMALUNGUN HA*/ + RTUNI_ALPHA, /* U+001bc4: BATAK LETTER MANDAILING HA*/ + RTUNI_ALPHA, /* U+001bc5: BATAK LETTER BA*/ + RTUNI_ALPHA, /* U+001bc6: BATAK LETTER KARO BA*/ + RTUNI_ALPHA, /* U+001bc7: BATAK LETTER PA*/ + RTUNI_ALPHA, /* U+001bc8: BATAK LETTER SIMALUNGUN PA*/ + RTUNI_ALPHA, /* U+001bc9: BATAK LETTER NA*/ + RTUNI_ALPHA, /* U+001bca: BATAK LETTER MANDAILING NA*/ + RTUNI_ALPHA, /* U+001bcb: BATAK LETTER WA*/ + RTUNI_ALPHA, /* U+001bcc: BATAK LETTER SIMALUNGUN WA*/ + RTUNI_ALPHA, /* U+001bcd: BATAK LETTER PAKPAK WA*/ + RTUNI_ALPHA, /* U+001bce: BATAK LETTER GA*/ + RTUNI_ALPHA, /* U+001bcf: BATAK LETTER SIMALUNGUN GA*/ + RTUNI_ALPHA, /* U+001bd0: BATAK LETTER JA*/ + RTUNI_ALPHA, /* U+001bd1: BATAK LETTER DA*/ + RTUNI_ALPHA, /* U+001bd2: BATAK LETTER RA*/ + RTUNI_ALPHA, /* U+001bd3: BATAK LETTER SIMALUNGUN RA*/ + RTUNI_ALPHA, /* U+001bd4: BATAK LETTER MA*/ + RTUNI_ALPHA, /* U+001bd5: BATAK LETTER SIMALUNGUN MA*/ + RTUNI_ALPHA, /* U+001bd6: BATAK LETTER SOUTHERN TA*/ + RTUNI_ALPHA, /* U+001bd7: BATAK LETTER NORTHERN TA*/ + RTUNI_ALPHA, /* U+001bd8: BATAK LETTER SA*/ + RTUNI_ALPHA, /* U+001bd9: BATAK LETTER SIMALUNGUN SA*/ + RTUNI_ALPHA, /* U+001bda: BATAK LETTER MANDAILING SA*/ + RTUNI_ALPHA, /* U+001bdb: BATAK LETTER YA*/ + RTUNI_ALPHA, /* U+001bdc: BATAK LETTER SIMALUNGUN YA*/ + RTUNI_ALPHA, /* U+001bdd: BATAK LETTER NGA*/ + RTUNI_ALPHA, /* U+001bde: BATAK LETTER LA*/ + RTUNI_ALPHA, /* U+001bdf: BATAK LETTER SIMALUNGUN LA*/ + RTUNI_ALPHA, /* U+001be0: BATAK LETTER NYA*/ + RTUNI_ALPHA, /* U+001be1: BATAK LETTER CA*/ + RTUNI_ALPHA, /* U+001be2: BATAK LETTER NDA*/ + RTUNI_ALPHA, /* U+001be3: BATAK LETTER MBA*/ + RTUNI_ALPHA, /* U+001be4: BATAK LETTER I*/ + RTUNI_ALPHA, /* U+001be5: BATAK LETTER U*/ + 0, /* U+001be6: BATAK SIGN TOMPI*/ + RTUNI_ALPHA, /* U+001be7: BATAK VOWEL SIGN E*/ + RTUNI_ALPHA, /* U+001be8: BATAK VOWEL SIGN PAKPAK E*/ + RTUNI_ALPHA, /* U+001be9: BATAK VOWEL SIGN EE*/ + RTUNI_ALPHA, /* U+001bea: BATAK VOWEL SIGN I*/ + RTUNI_ALPHA, /* U+001beb: BATAK VOWEL SIGN KARO I*/ + RTUNI_ALPHA, /* U+001bec: BATAK VOWEL SIGN O*/ + RTUNI_ALPHA, /* U+001bed: BATAK VOWEL SIGN KARO O*/ + RTUNI_ALPHA, /* U+001bee: BATAK VOWEL SIGN U*/ + RTUNI_ALPHA, /* U+001bef: BATAK VOWEL SIGN U FOR SIMALUNGUN SA*/ + RTUNI_ALPHA, /* U+001bf0: BATAK CONSONANT SIGN NG*/ + RTUNI_ALPHA, /* U+001bf1: BATAK CONSONANT SIGN H*/ + 0, /* U+001bf2: BATAK PANGOLAT*/ + 0, /* U+001bf3: BATAK PANONGONAN*/ + 0, /* U+001bf4: */ + 0, /* U+001bf5: */ + 0, /* U+001bf6: */ + 0, /* U+001bf7: */ + 0, /* U+001bf8: */ + 0, /* U+001bf9: */ + 0, /* U+001bfa: */ + 0, /* U+001bfb: */ + 0, /* U+001bfc: BATAK SYMBOL BINDU NA METEK*/ + 0, /* U+001bfd: BATAK SYMBOL BINDU PINARBORAS*/ + 0, /* U+001bfe: BATAK SYMBOL BINDU JUDUL*/ + 0, /* U+001bff: BATAK SYMBOL BINDU PANGOLAT*/ + RTUNI_ALPHA, /* U+001c00: LEPCHA LETTER KA*/ + RTUNI_ALPHA, /* U+001c01: LEPCHA LETTER KLA*/ + RTUNI_ALPHA, /* U+001c02: LEPCHA LETTER KHA*/ + RTUNI_ALPHA, /* U+001c03: LEPCHA LETTER GA*/ + RTUNI_ALPHA, /* U+001c04: LEPCHA LETTER GLA*/ + RTUNI_ALPHA, /* U+001c05: LEPCHA LETTER NGA*/ + RTUNI_ALPHA, /* U+001c06: LEPCHA LETTER CA*/ + RTUNI_ALPHA, /* U+001c07: LEPCHA LETTER CHA*/ + RTUNI_ALPHA, /* U+001c08: LEPCHA LETTER JA*/ + RTUNI_ALPHA, /* U+001c09: LEPCHA LETTER NYA*/ + RTUNI_ALPHA, /* U+001c0a: LEPCHA LETTER TA*/ + RTUNI_ALPHA, /* U+001c0b: LEPCHA LETTER THA*/ + RTUNI_ALPHA, /* U+001c0c: LEPCHA LETTER DA*/ + RTUNI_ALPHA, /* U+001c0d: LEPCHA LETTER NA*/ + RTUNI_ALPHA, /* U+001c0e: LEPCHA LETTER PA*/ + RTUNI_ALPHA, /* U+001c0f: LEPCHA LETTER PLA*/ + RTUNI_ALPHA, /* U+001c10: LEPCHA LETTER PHA*/ + RTUNI_ALPHA, /* U+001c11: LEPCHA LETTER FA*/ + RTUNI_ALPHA, /* U+001c12: LEPCHA LETTER FLA*/ + RTUNI_ALPHA, /* U+001c13: LEPCHA LETTER BA*/ + RTUNI_ALPHA, /* U+001c14: LEPCHA LETTER BLA*/ + RTUNI_ALPHA, /* U+001c15: LEPCHA LETTER MA*/ + RTUNI_ALPHA, /* U+001c16: LEPCHA LETTER MLA*/ + RTUNI_ALPHA, /* U+001c17: LEPCHA LETTER TSA*/ + RTUNI_ALPHA, /* U+001c18: LEPCHA LETTER TSHA*/ + RTUNI_ALPHA, /* U+001c19: LEPCHA LETTER DZA*/ + RTUNI_ALPHA, /* U+001c1a: LEPCHA LETTER YA*/ + RTUNI_ALPHA, /* U+001c1b: LEPCHA LETTER RA*/ + RTUNI_ALPHA, /* U+001c1c: LEPCHA LETTER LA*/ + RTUNI_ALPHA, /* U+001c1d: LEPCHA LETTER HA*/ + RTUNI_ALPHA, /* U+001c1e: LEPCHA LETTER HLA*/ + RTUNI_ALPHA, /* U+001c1f: LEPCHA LETTER VA*/ + RTUNI_ALPHA, /* U+001c20: LEPCHA LETTER SA*/ + RTUNI_ALPHA, /* U+001c21: LEPCHA LETTER SHA*/ + RTUNI_ALPHA, /* U+001c22: LEPCHA LETTER WA*/ + RTUNI_ALPHA, /* U+001c23: LEPCHA LETTER A*/ + RTUNI_ALPHA, /* U+001c24: LEPCHA SUBJOINED LETTER YA*/ + RTUNI_ALPHA, /* U+001c25: LEPCHA SUBJOINED LETTER RA*/ + RTUNI_ALPHA, /* U+001c26: LEPCHA VOWEL SIGN AA*/ + RTUNI_ALPHA, /* U+001c27: LEPCHA VOWEL SIGN I*/ + RTUNI_ALPHA, /* U+001c28: LEPCHA VOWEL SIGN O*/ + RTUNI_ALPHA, /* U+001c29: LEPCHA VOWEL SIGN OO*/ + RTUNI_ALPHA, /* U+001c2a: LEPCHA VOWEL SIGN U*/ + RTUNI_ALPHA, /* U+001c2b: LEPCHA VOWEL SIGN UU*/ + RTUNI_ALPHA, /* U+001c2c: LEPCHA VOWEL SIGN E*/ + RTUNI_ALPHA, /* U+001c2d: LEPCHA CONSONANT SIGN K*/ + RTUNI_ALPHA, /* U+001c2e: LEPCHA CONSONANT SIGN M*/ + RTUNI_ALPHA, /* U+001c2f: LEPCHA CONSONANT SIGN L*/ + RTUNI_ALPHA, /* U+001c30: LEPCHA CONSONANT SIGN N*/ + RTUNI_ALPHA, /* U+001c31: LEPCHA CONSONANT SIGN P*/ + RTUNI_ALPHA, /* U+001c32: LEPCHA CONSONANT SIGN R*/ + RTUNI_ALPHA, /* U+001c33: LEPCHA CONSONANT SIGN T*/ + RTUNI_ALPHA, /* U+001c34: LEPCHA CONSONANT SIGN NYIN-DO*/ + RTUNI_ALPHA, /* U+001c35: LEPCHA CONSONANT SIGN KANG*/ + 0, /* U+001c36: LEPCHA SIGN RAN*/ + 0, /* U+001c37: LEPCHA SIGN NUKTA*/ + 0, /* U+001c38: */ + 0, /* U+001c39: */ + 0, /* U+001c3a: */ + 0, /* U+001c3b: LEPCHA PUNCTUATION TA-ROL*/ + 0, /* U+001c3c: LEPCHA PUNCTUATION NYET THYOOM TA-ROL*/ + 0, /* U+001c3d: LEPCHA PUNCTUATION CER-WA*/ + 0, /* U+001c3e: LEPCHA PUNCTUATION TSHOOK CER-WA*/ + 0, /* U+001c3f: LEPCHA PUNCTUATION TSHOOK*/ + RTUNI_DDIGIT, /* U+001c40: LEPCHA DIGIT ZERO*/ + RTUNI_DDIGIT, /* U+001c41: LEPCHA DIGIT ONE*/ + RTUNI_DDIGIT, /* U+001c42: LEPCHA DIGIT TWO*/ + RTUNI_DDIGIT, /* U+001c43: LEPCHA DIGIT THREE*/ + RTUNI_DDIGIT, /* U+001c44: LEPCHA DIGIT FOUR*/ + RTUNI_DDIGIT, /* U+001c45: LEPCHA DIGIT FIVE*/ + RTUNI_DDIGIT, /* U+001c46: LEPCHA DIGIT SIX*/ + RTUNI_DDIGIT, /* U+001c47: LEPCHA DIGIT SEVEN*/ + RTUNI_DDIGIT, /* U+001c48: LEPCHA DIGIT EIGHT*/ + RTUNI_DDIGIT, /* U+001c49: LEPCHA DIGIT NINE*/ + 0, /* U+001c4a: */ + 0, /* U+001c4b: */ + 0, /* U+001c4c: */ + RTUNI_ALPHA, /* U+001c4d: LEPCHA LETTER TTA*/ + RTUNI_ALPHA, /* U+001c4e: LEPCHA LETTER TTHA*/ + RTUNI_ALPHA, /* U+001c4f: LEPCHA LETTER DDA*/ + RTUNI_DDIGIT, /* U+001c50: OL CHIKI DIGIT ZERO*/ + RTUNI_DDIGIT, /* U+001c51: OL CHIKI DIGIT ONE*/ + RTUNI_DDIGIT, /* U+001c52: OL CHIKI DIGIT TWO*/ + RTUNI_DDIGIT, /* U+001c53: OL CHIKI DIGIT THREE*/ + RTUNI_DDIGIT, /* U+001c54: OL CHIKI DIGIT FOUR*/ + RTUNI_DDIGIT, /* U+001c55: OL CHIKI DIGIT FIVE*/ + RTUNI_DDIGIT, /* U+001c56: OL CHIKI DIGIT SIX*/ + RTUNI_DDIGIT, /* U+001c57: OL CHIKI DIGIT SEVEN*/ + RTUNI_DDIGIT, /* U+001c58: OL CHIKI DIGIT EIGHT*/ + RTUNI_DDIGIT, /* U+001c59: OL CHIKI DIGIT NINE*/ + RTUNI_ALPHA, /* U+001c5a: OL CHIKI LETTER LA*/ + RTUNI_ALPHA, /* U+001c5b: OL CHIKI LETTER AT*/ + RTUNI_ALPHA, /* U+001c5c: OL CHIKI LETTER AG*/ + RTUNI_ALPHA, /* U+001c5d: OL CHIKI LETTER ANG*/ + RTUNI_ALPHA, /* U+001c5e: OL CHIKI LETTER AL*/ + RTUNI_ALPHA, /* U+001c5f: OL CHIKI LETTER LAA*/ + RTUNI_ALPHA, /* U+001c60: OL CHIKI LETTER AAK*/ + RTUNI_ALPHA, /* U+001c61: OL CHIKI LETTER AAJ*/ + RTUNI_ALPHA, /* U+001c62: OL CHIKI LETTER AAM*/ + RTUNI_ALPHA, /* U+001c63: OL CHIKI LETTER AAW*/ + RTUNI_ALPHA, /* U+001c64: OL CHIKI LETTER LI*/ + RTUNI_ALPHA, /* U+001c65: OL CHIKI LETTER IS*/ + RTUNI_ALPHA, /* U+001c66: OL CHIKI LETTER IH*/ + RTUNI_ALPHA, /* U+001c67: OL CHIKI LETTER INY*/ + RTUNI_ALPHA, /* U+001c68: OL CHIKI LETTER IR*/ + RTUNI_ALPHA, /* U+001c69: OL CHIKI LETTER LU*/ + RTUNI_ALPHA, /* U+001c6a: OL CHIKI LETTER UC*/ + RTUNI_ALPHA, /* U+001c6b: OL CHIKI LETTER UD*/ + RTUNI_ALPHA, /* U+001c6c: OL CHIKI LETTER UNN*/ + RTUNI_ALPHA, /* U+001c6d: OL CHIKI LETTER UY*/ + RTUNI_ALPHA, /* U+001c6e: OL CHIKI LETTER LE*/ + RTUNI_ALPHA, /* U+001c6f: OL CHIKI LETTER EP*/ + RTUNI_ALPHA, /* U+001c70: OL CHIKI LETTER EDD*/ + RTUNI_ALPHA, /* U+001c71: OL CHIKI LETTER EN*/ + RTUNI_ALPHA, /* U+001c72: OL CHIKI LETTER ERR*/ + RTUNI_ALPHA, /* U+001c73: OL CHIKI LETTER LO*/ + RTUNI_ALPHA, /* U+001c74: OL CHIKI LETTER OTT*/ + RTUNI_ALPHA, /* U+001c75: OL CHIKI LETTER OB*/ + RTUNI_ALPHA, /* U+001c76: OL CHIKI LETTER OV*/ + RTUNI_ALPHA, /* U+001c77: OL CHIKI LETTER OH*/ + RTUNI_ALPHA, /* U+001c78: OL CHIKI MU TTUDDAG*/ + RTUNI_ALPHA, /* U+001c79: OL CHIKI GAAHLAA TTUDDAAG*/ + RTUNI_ALPHA, /* U+001c7a: OL CHIKI MU-GAAHLAA TTUDDAAG*/ + RTUNI_ALPHA, /* U+001c7b: OL CHIKI RELAA*/ + RTUNI_ALPHA, /* U+001c7c: OL CHIKI PHAARKAA*/ + RTUNI_ALPHA, /* U+001c7d: OL CHIKI AHAD*/ + 0, /* U+001c7e: OL CHIKI PUNCTUATION MUCAAD*/ + 0, /* U+001c7f: OL CHIKI PUNCTUATION DOUBLE MUCAAD*/ + 0, /* U+001c80: */ + 0, /* U+001c81: */ + 0, /* U+001c82: */ + 0, /* U+001c83: */ + 0, /* U+001c84: */ + 0, /* U+001c85: */ + 0, /* U+001c86: */ + 0, /* U+001c87: */ + 0, /* U+001c88: */ + 0, /* U+001c89: */ + 0, /* U+001c8a: */ + 0, /* U+001c8b: */ + 0, /* U+001c8c: */ + 0, /* U+001c8d: */ + 0, /* U+001c8e: */ + 0, /* U+001c8f: */ + 0, /* U+001c90: */ + 0, /* U+001c91: */ + 0, /* U+001c92: */ + 0, /* U+001c93: */ + 0, /* U+001c94: */ + 0, /* U+001c95: */ + 0, /* U+001c96: */ + 0, /* U+001c97: */ + 0, /* U+001c98: */ + 0, /* U+001c99: */ + 0, /* U+001c9a: */ + 0, /* U+001c9b: */ + 0, /* U+001c9c: */ + 0, /* U+001c9d: */ + 0, /* U+001c9e: */ + 0, /* U+001c9f: */ + 0, /* U+001ca0: */ + 0, /* U+001ca1: */ + 0, /* U+001ca2: */ + 0, /* U+001ca3: */ + 0, /* U+001ca4: */ + 0, /* U+001ca5: */ + 0, /* U+001ca6: */ + 0, /* U+001ca7: */ + 0, /* U+001ca8: */ + 0, /* U+001ca9: */ + 0, /* U+001caa: */ + 0, /* U+001cab: */ + 0, /* U+001cac: */ + 0, /* U+001cad: */ + 0, /* U+001cae: */ + 0, /* U+001caf: */ + 0, /* U+001cb0: */ + 0, /* U+001cb1: */ + 0, /* U+001cb2: */ + 0, /* U+001cb3: */ + 0, /* U+001cb4: */ + 0, /* U+001cb5: */ + 0, /* U+001cb6: */ + 0, /* U+001cb7: */ + 0, /* U+001cb8: */ + 0, /* U+001cb9: */ + 0, /* U+001cba: */ + 0, /* U+001cbb: */ + 0, /* U+001cbc: */ + 0, /* U+001cbd: */ + 0, /* U+001cbe: */ + 0, /* U+001cbf: */ + 0, /* U+001cc0: SUNDANESE PUNCTUATION BINDU SURYA*/ + 0, /* U+001cc1: SUNDANESE PUNCTUATION BINDU PANGLONG*/ + 0, /* U+001cc2: SUNDANESE PUNCTUATION BINDU PURNAMA*/ + 0, /* U+001cc3: SUNDANESE PUNCTUATION BINDU CAKRA*/ + 0, /* U+001cc4: SUNDANESE PUNCTUATION BINDU LEU SATANGA*/ + 0, /* U+001cc5: SUNDANESE PUNCTUATION BINDU KA SATANGA*/ + 0, /* U+001cc6: SUNDANESE PUNCTUATION BINDU DA SATANGA*/ + 0, /* U+001cc7: SUNDANESE PUNCTUATION BINDU BA SATANGA*/ + 0, /* U+001cc8: */ + 0, /* U+001cc9: */ + 0, /* U+001cca: */ + 0, /* U+001ccb: */ + 0, /* U+001ccc: */ + 0, /* U+001ccd: */ + 0, /* U+001cce: */ + 0, /* U+001ccf: */ + 0, /* U+001cd0: VEDIC TONE KARSHANA*/ + 0, /* U+001cd1: VEDIC TONE SHARA*/ + 0, /* U+001cd2: VEDIC TONE PRENKHA*/ + 0, /* U+001cd3: VEDIC SIGN NIHSHVASA*/ + 0, /* U+001cd4: VEDIC SIGN YAJURVEDIC MIDLINE SVARITA*/ + 0, /* U+001cd5: VEDIC TONE YAJURVEDIC AGGRAVATED INDEPENDENT SVARITA*/ + 0, /* U+001cd6: VEDIC TONE YAJURVEDIC INDEPENDENT SVARITA*/ + 0, /* U+001cd7: VEDIC TONE YAJURVEDIC KATHAKA INDEPENDENT SVARITA*/ + 0, /* U+001cd8: VEDIC TONE CANDRA BELOW*/ + 0, /* U+001cd9: VEDIC TONE YAJURVEDIC KATHAKA INDEPENDENT SVARITA SCHROEDER*/ + 0, /* U+001cda: VEDIC TONE DOUBLE SVARITA*/ + 0, /* U+001cdb: VEDIC TONE TRIPLE SVARITA*/ + 0, /* U+001cdc: VEDIC TONE KATHAKA ANUDATTA*/ + 0, /* U+001cdd: VEDIC TONE DOT BELOW*/ + 0, /* U+001cde: VEDIC TONE TWO DOTS BELOW*/ + 0, /* U+001cdf: VEDIC TONE THREE DOTS BELOW*/ + 0, /* U+001ce0: VEDIC TONE RIGVEDIC KASHMIRI INDEPENDENT SVARITA*/ + 0, /* U+001ce1: VEDIC TONE ATHARVAVEDIC INDEPENDENT SVARITA*/ + 0, /* U+001ce2: VEDIC SIGN VISARGA SVARITA*/ + 0, /* U+001ce3: VEDIC SIGN VISARGA UDATTA*/ + 0, /* U+001ce4: VEDIC SIGN REVERSED VISARGA UDATTA*/ + 0, /* U+001ce5: VEDIC SIGN VISARGA ANUDATTA*/ + 0, /* U+001ce6: VEDIC SIGN REVERSED VISARGA ANUDATTA*/ + 0, /* U+001ce7: VEDIC SIGN VISARGA UDATTA WITH TAIL*/ + 0, /* U+001ce8: VEDIC SIGN VISARGA ANUDATTA WITH TAIL*/ + RTUNI_ALPHA, /* U+001ce9: VEDIC SIGN ANUSVARA ANTARGOMUKHA*/ + RTUNI_ALPHA, /* U+001cea: VEDIC SIGN ANUSVARA BAHIRGOMUKHA*/ + RTUNI_ALPHA, /* U+001ceb: VEDIC SIGN ANUSVARA VAMAGOMUKHA*/ + RTUNI_ALPHA, /* U+001cec: VEDIC SIGN ANUSVARA VAMAGOMUKHA WITH TAIL*/ + 0, /* U+001ced: VEDIC SIGN TIRYAK*/ + RTUNI_ALPHA, /* U+001cee: VEDIC SIGN HEXIFORM LONG ANUSVARA*/ + RTUNI_ALPHA, /* U+001cef: VEDIC SIGN LONG ANUSVARA*/ + RTUNI_ALPHA, /* U+001cf0: VEDIC SIGN RTHANG LONG ANUSVARA*/ + RTUNI_ALPHA, /* U+001cf1: VEDIC SIGN ANUSVARA UBHAYATO MUKHA*/ + RTUNI_ALPHA, /* U+001cf2: VEDIC SIGN ARDHAVISARGA*/ + RTUNI_ALPHA, /* U+001cf3: VEDIC SIGN ROTATED ARDHAVISARGA*/ + 0, /* U+001cf4: VEDIC TONE CANDRA ABOVE*/ + RTUNI_ALPHA, /* U+001cf5: VEDIC SIGN JIHVAMULIYA*/ + RTUNI_ALPHA, /* U+001cf6: VEDIC SIGN UPADHMANIYA*/ + 0, /* U+001cf7: */ + 0, /* U+001cf8: */ + 0, /* U+001cf9: */ + 0, /* U+001cfa: */ + 0, /* U+001cfb: */ + 0, /* U+001cfc: */ + 0, /* U+001cfd: */ + 0, /* U+001cfe: */ + 0, /* U+001cff: */ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001d00: LATIN LETTER SMALL CAPITAL A*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001d01: LATIN LETTER SMALL CAPITAL AE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001d02: LATIN SMALL LETTER TURNED AE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001d03: LATIN LETTER SMALL CAPITAL BARRED B*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001d04: LATIN LETTER SMALL CAPITAL C*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001d05: LATIN LETTER SMALL CAPITAL D*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001d06: LATIN LETTER SMALL CAPITAL ETH*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001d07: LATIN LETTER SMALL CAPITAL E*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001d08: LATIN SMALL LETTER TURNED OPEN E*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001d09: LATIN SMALL LETTER TURNED I*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001d0a: LATIN LETTER SMALL CAPITAL J*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001d0b: LATIN LETTER SMALL CAPITAL K*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001d0c: LATIN LETTER SMALL CAPITAL L WITH STROKE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001d0d: LATIN LETTER SMALL CAPITAL M*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001d0e: LATIN LETTER SMALL CAPITAL REVERSED N*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001d0f: LATIN LETTER SMALL CAPITAL O*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001d10: LATIN LETTER SMALL CAPITAL OPEN O*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001d11: LATIN SMALL LETTER SIDEWAYS O*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001d12: LATIN SMALL LETTER SIDEWAYS OPEN O*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001d13: LATIN SMALL LETTER SIDEWAYS O WITH STROKE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001d14: LATIN SMALL LETTER TURNED OE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001d15: LATIN LETTER SMALL CAPITAL OU*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001d16: LATIN SMALL LETTER TOP HALF O*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001d17: LATIN SMALL LETTER BOTTOM HALF O*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001d18: LATIN LETTER SMALL CAPITAL P*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001d19: LATIN LETTER SMALL CAPITAL REVERSED R*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001d1a: LATIN LETTER SMALL CAPITAL TURNED R*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001d1b: LATIN LETTER SMALL CAPITAL T*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001d1c: LATIN LETTER SMALL CAPITAL U*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001d1d: LATIN SMALL LETTER SIDEWAYS U*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001d1e: LATIN SMALL LETTER SIDEWAYS DIAERESIZED U*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001d1f: LATIN SMALL LETTER SIDEWAYS TURNED M*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001d20: LATIN LETTER SMALL CAPITAL V*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001d21: LATIN LETTER SMALL CAPITAL W*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001d22: LATIN LETTER SMALL CAPITAL Z*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001d23: LATIN LETTER SMALL CAPITAL EZH*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001d24: LATIN LETTER VOICED LARYNGEAL SPIRANT*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001d25: LATIN LETTER AIN*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001d26: GREEK LETTER SMALL CAPITAL GAMMA*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001d27: GREEK LETTER SMALL CAPITAL LAMDA*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001d28: GREEK LETTER SMALL CAPITAL PI*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001d29: GREEK LETTER SMALL CAPITAL RHO*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001d2a: GREEK LETTER SMALL CAPITAL PSI*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001d2b: CYRILLIC LETTER SMALL CAPITAL EL*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001d2c: MODIFIER LETTER CAPITAL A*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001d2d: MODIFIER LETTER CAPITAL AE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001d2e: MODIFIER LETTER CAPITAL B*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001d2f: MODIFIER LETTER CAPITAL BARRED B*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001d30: MODIFIER LETTER CAPITAL D*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001d31: MODIFIER LETTER CAPITAL E*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001d32: MODIFIER LETTER CAPITAL REVERSED E*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001d33: MODIFIER LETTER CAPITAL G*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001d34: MODIFIER LETTER CAPITAL H*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001d35: MODIFIER LETTER CAPITAL I*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001d36: MODIFIER LETTER CAPITAL J*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001d37: MODIFIER LETTER CAPITAL K*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001d38: MODIFIER LETTER CAPITAL L*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001d39: MODIFIER LETTER CAPITAL M*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001d3a: MODIFIER LETTER CAPITAL N*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001d3b: MODIFIER LETTER CAPITAL REVERSED N*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001d3c: MODIFIER LETTER CAPITAL O*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001d3d: MODIFIER LETTER CAPITAL OU*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001d3e: MODIFIER LETTER CAPITAL P*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001d3f: MODIFIER LETTER CAPITAL R*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001d40: MODIFIER LETTER CAPITAL T*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001d41: MODIFIER LETTER CAPITAL U*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001d42: MODIFIER LETTER CAPITAL W*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001d43: MODIFIER LETTER SMALL A*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001d44: MODIFIER LETTER SMALL TURNED A*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001d45: MODIFIER LETTER SMALL ALPHA*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001d46: MODIFIER LETTER SMALL TURNED AE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001d47: MODIFIER LETTER SMALL B*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001d48: MODIFIER LETTER SMALL D*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001d49: MODIFIER LETTER SMALL E*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001d4a: MODIFIER LETTER SMALL SCHWA*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001d4b: MODIFIER LETTER SMALL OPEN E*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001d4c: MODIFIER LETTER SMALL TURNED OPEN E*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001d4d: MODIFIER LETTER SMALL G*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001d4e: MODIFIER LETTER SMALL TURNED I*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001d4f: MODIFIER LETTER SMALL K*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001d50: MODIFIER LETTER SMALL M*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001d51: MODIFIER LETTER SMALL ENG*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001d52: MODIFIER LETTER SMALL O*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001d53: MODIFIER LETTER SMALL OPEN O*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001d54: MODIFIER LETTER SMALL TOP HALF O*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001d55: MODIFIER LETTER SMALL BOTTOM HALF O*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001d56: MODIFIER LETTER SMALL P*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001d57: MODIFIER LETTER SMALL T*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001d58: MODIFIER LETTER SMALL U*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001d59: MODIFIER LETTER SMALL SIDEWAYS U*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001d5a: MODIFIER LETTER SMALL TURNED M*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001d5b: MODIFIER LETTER SMALL V*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001d5c: MODIFIER LETTER SMALL AIN*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001d5d: MODIFIER LETTER SMALL BETA*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001d5e: MODIFIER LETTER SMALL GREEK GAMMA*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001d5f: MODIFIER LETTER SMALL DELTA*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001d60: MODIFIER LETTER SMALL GREEK PHI*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001d61: MODIFIER LETTER SMALL CHI*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001d62: LATIN SUBSCRIPT SMALL LETTER I*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001d63: LATIN SUBSCRIPT SMALL LETTER R*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001d64: LATIN SUBSCRIPT SMALL LETTER U*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001d65: LATIN SUBSCRIPT SMALL LETTER V*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001d66: GREEK SUBSCRIPT SMALL LETTER BETA*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001d67: GREEK SUBSCRIPT SMALL LETTER GAMMA*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001d68: GREEK SUBSCRIPT SMALL LETTER RHO*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001d69: GREEK SUBSCRIPT SMALL LETTER PHI*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001d6a: GREEK SUBSCRIPT SMALL LETTER CHI*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001d6b: LATIN SMALL LETTER UE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001d6c: LATIN SMALL LETTER B WITH MIDDLE TILDE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001d6d: LATIN SMALL LETTER D WITH MIDDLE TILDE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001d6e: LATIN SMALL LETTER F WITH MIDDLE TILDE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001d6f: LATIN SMALL LETTER M WITH MIDDLE TILDE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001d70: LATIN SMALL LETTER N WITH MIDDLE TILDE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001d71: LATIN SMALL LETTER P WITH MIDDLE TILDE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001d72: LATIN SMALL LETTER R WITH MIDDLE TILDE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001d73: LATIN SMALL LETTER R WITH FISHHOOK AND MIDDLE TILDE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001d74: LATIN SMALL LETTER S WITH MIDDLE TILDE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001d75: LATIN SMALL LETTER T WITH MIDDLE TILDE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001d76: LATIN SMALL LETTER Z WITH MIDDLE TILDE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001d77: LATIN SMALL LETTER TURNED G*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001d78: MODIFIER LETTER CYRILLIC EN*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001d79: LATIN SMALL LETTER INSULAR G*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001d7a: LATIN SMALL LETTER TH WITH STRIKETHROUGH*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001d7b: LATIN SMALL CAPITAL LETTER I WITH STROKE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001d7c: LATIN SMALL LETTER IOTA WITH STROKE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001d7d: LATIN SMALL LETTER P WITH STROKE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001d7e: LATIN SMALL CAPITAL LETTER U WITH STROKE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001d7f: LATIN SMALL LETTER UPSILON WITH STROKE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001d80: LATIN SMALL LETTER B WITH PALATAL HOOK*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001d81: LATIN SMALL LETTER D WITH PALATAL HOOK*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001d82: LATIN SMALL LETTER F WITH PALATAL HOOK*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001d83: LATIN SMALL LETTER G WITH PALATAL HOOK*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001d84: LATIN SMALL LETTER K WITH PALATAL HOOK*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001d85: LATIN SMALL LETTER L WITH PALATAL HOOK*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001d86: LATIN SMALL LETTER M WITH PALATAL HOOK*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001d87: LATIN SMALL LETTER N WITH PALATAL HOOK*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001d88: LATIN SMALL LETTER P WITH PALATAL HOOK*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001d89: LATIN SMALL LETTER R WITH PALATAL HOOK*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001d8a: LATIN SMALL LETTER S WITH PALATAL HOOK*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001d8b: LATIN SMALL LETTER ESH WITH PALATAL HOOK*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001d8c: LATIN SMALL LETTER V WITH PALATAL HOOK*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001d8d: LATIN SMALL LETTER X WITH PALATAL HOOK*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001d8e: LATIN SMALL LETTER Z WITH PALATAL HOOK*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001d8f: LATIN SMALL LETTER A WITH RETROFLEX HOOK*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001d90: LATIN SMALL LETTER ALPHA WITH RETROFLEX HOOK*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001d91: LATIN SMALL LETTER D WITH HOOK AND TAIL*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001d92: LATIN SMALL LETTER E WITH RETROFLEX HOOK*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001d93: LATIN SMALL LETTER OPEN E WITH RETROFLEX HOOK*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001d94: LATIN SMALL LETTER REVERSED OPEN E WITH RETROFLEX HOOK*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001d95: LATIN SMALL LETTER SCHWA WITH RETROFLEX HOOK*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001d96: LATIN SMALL LETTER I WITH RETROFLEX HOOK*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001d97: LATIN SMALL LETTER OPEN O WITH RETROFLEX HOOK*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001d98: LATIN SMALL LETTER ESH WITH RETROFLEX HOOK*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001d99: LATIN SMALL LETTER U WITH RETROFLEX HOOK*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001d9a: LATIN SMALL LETTER EZH WITH RETROFLEX HOOK*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001d9b: MODIFIER LETTER SMALL TURNED ALPHA*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001d9c: MODIFIER LETTER SMALL C*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001d9d: MODIFIER LETTER SMALL C WITH CURL*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001d9e: MODIFIER LETTER SMALL ETH*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001d9f: MODIFIER LETTER SMALL REVERSED OPEN E*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001da0: MODIFIER LETTER SMALL F*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001da1: MODIFIER LETTER SMALL DOTLESS J WITH STROKE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001da2: MODIFIER LETTER SMALL SCRIPT G*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001da3: MODIFIER LETTER SMALL TURNED H*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001da4: MODIFIER LETTER SMALL I WITH STROKE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001da5: MODIFIER LETTER SMALL IOTA*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001da6: MODIFIER LETTER SMALL CAPITAL I*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001da7: MODIFIER LETTER SMALL CAPITAL I WITH STROKE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001da8: MODIFIER LETTER SMALL J WITH CROSSED-TAIL*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001da9: MODIFIER LETTER SMALL L WITH RETROFLEX HOOK*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001daa: MODIFIER LETTER SMALL L WITH PALATAL HOOK*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001dab: MODIFIER LETTER SMALL CAPITAL L*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001dac: MODIFIER LETTER SMALL M WITH HOOK*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001dad: MODIFIER LETTER SMALL TURNED M WITH LONG LEG*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001dae: MODIFIER LETTER SMALL N WITH LEFT HOOK*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001daf: MODIFIER LETTER SMALL N WITH RETROFLEX HOOK*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001db0: MODIFIER LETTER SMALL CAPITAL N*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001db1: MODIFIER LETTER SMALL BARRED O*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001db2: MODIFIER LETTER SMALL PHI*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001db3: MODIFIER LETTER SMALL S WITH HOOK*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001db4: MODIFIER LETTER SMALL ESH*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001db5: MODIFIER LETTER SMALL T WITH PALATAL HOOK*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001db6: MODIFIER LETTER SMALL U BAR*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001db7: MODIFIER LETTER SMALL UPSILON*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001db8: MODIFIER LETTER SMALL CAPITAL U*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001db9: MODIFIER LETTER SMALL V WITH HOOK*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001dba: MODIFIER LETTER SMALL TURNED V*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001dbb: MODIFIER LETTER SMALL Z*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001dbc: MODIFIER LETTER SMALL Z WITH RETROFLEX HOOK*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001dbd: MODIFIER LETTER SMALL Z WITH CURL*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001dbe: MODIFIER LETTER SMALL EZH*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001dbf: MODIFIER LETTER SMALL THETA*/ + 0, /* U+001dc0: COMBINING DOTTED GRAVE ACCENT*/ + 0, /* U+001dc1: COMBINING DOTTED ACUTE ACCENT*/ + 0, /* U+001dc2: COMBINING SNAKE BELOW*/ + 0, /* U+001dc3: COMBINING SUSPENSION MARK*/ + 0, /* U+001dc4: COMBINING MACRON-ACUTE*/ + 0, /* U+001dc5: COMBINING GRAVE-MACRON*/ + 0, /* U+001dc6: COMBINING MACRON-GRAVE*/ + 0, /* U+001dc7: COMBINING ACUTE-MACRON*/ + 0, /* U+001dc8: COMBINING GRAVE-ACUTE-GRAVE*/ + 0, /* U+001dc9: COMBINING ACUTE-GRAVE-ACUTE*/ + 0, /* U+001dca: COMBINING LATIN SMALL LETTER R BELOW*/ + 0, /* U+001dcb: COMBINING BREVE-MACRON*/ + 0, /* U+001dcc: COMBINING MACRON-BREVE*/ + 0, /* U+001dcd: COMBINING DOUBLE CIRCUMFLEX ABOVE*/ + 0, /* U+001dce: COMBINING OGONEK ABOVE*/ + 0, /* U+001dcf: COMBINING ZIGZAG BELOW*/ + 0, /* U+001dd0: COMBINING IS BELOW*/ + 0, /* U+001dd1: COMBINING UR ABOVE*/ + 0, /* U+001dd2: COMBINING US ABOVE*/ + 0, /* U+001dd3: COMBINING LATIN SMALL LETTER FLATTENED OPEN A ABOVE*/ + 0, /* U+001dd4: COMBINING LATIN SMALL LETTER AE*/ + 0, /* U+001dd5: COMBINING LATIN SMALL LETTER AO*/ + 0, /* U+001dd6: COMBINING LATIN SMALL LETTER AV*/ + 0, /* U+001dd7: COMBINING LATIN SMALL LETTER C CEDILLA*/ + 0, /* U+001dd8: COMBINING LATIN SMALL LETTER INSULAR D*/ + 0, /* U+001dd9: COMBINING LATIN SMALL LETTER ETH*/ + 0, /* U+001dda: COMBINING LATIN SMALL LETTER G*/ + 0, /* U+001ddb: COMBINING LATIN LETTER SMALL CAPITAL G*/ + 0, /* U+001ddc: COMBINING LATIN SMALL LETTER K*/ + 0, /* U+001ddd: COMBINING LATIN SMALL LETTER L*/ + 0, /* U+001dde: COMBINING LATIN LETTER SMALL CAPITAL L*/ + 0, /* U+001ddf: COMBINING LATIN LETTER SMALL CAPITAL M*/ + 0, /* U+001de0: COMBINING LATIN SMALL LETTER N*/ + 0, /* U+001de1: COMBINING LATIN LETTER SMALL CAPITAL N*/ + 0, /* U+001de2: COMBINING LATIN LETTER SMALL CAPITAL R*/ + 0, /* U+001de3: COMBINING LATIN SMALL LETTER R ROTUNDA*/ + 0, /* U+001de4: COMBINING LATIN SMALL LETTER S*/ + 0, /* U+001de5: COMBINING LATIN SMALL LETTER LONG S*/ + 0, /* U+001de6: COMBINING LATIN SMALL LETTER Z*/ + 0, /* U+001de7: */ + 0, /* U+001de8: */ + 0, /* U+001de9: */ + 0, /* U+001dea: */ + 0, /* U+001deb: */ + 0, /* U+001dec: */ + 0, /* U+001ded: */ + 0, /* U+001dee: */ + 0, /* U+001def: */ + 0, /* U+001df0: */ + 0, /* U+001df1: */ + 0, /* U+001df2: */ + 0, /* U+001df3: */ + 0, /* U+001df4: */ + 0, /* U+001df5: */ + 0, /* U+001df6: */ + 0, /* U+001df7: */ + 0, /* U+001df8: */ + 0, /* U+001df9: */ + 0, /* U+001dfa: */ + 0, /* U+001dfb: */ + 0, /* U+001dfc: COMBINING DOUBLE INVERTED BREVE BELOW*/ + 0, /* U+001dfd: COMBINING ALMOST EQUAL TO BELOW*/ + 0, /* U+001dfe: COMBINING LEFT ARROWHEAD ABOVE*/ + 0, /* U+001dff: COMBINING RIGHT ARROWHEAD AND DOWN ARROWHEAD BELOW*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+001e00: LATIN CAPITAL LETTER A WITH RING BELOW*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001e01: LATIN SMALL LETTER A WITH RING BELOW*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+001e02: LATIN CAPITAL LETTER B WITH DOT ABOVE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001e03: LATIN SMALL LETTER B WITH DOT ABOVE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+001e04: LATIN CAPITAL LETTER B WITH DOT BELOW*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001e05: LATIN SMALL LETTER B WITH DOT BELOW*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+001e06: LATIN CAPITAL LETTER B WITH LINE BELOW*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001e07: LATIN SMALL LETTER B WITH LINE BELOW*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+001e08: LATIN CAPITAL LETTER C WITH CEDILLA AND ACUTE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001e09: LATIN SMALL LETTER C WITH CEDILLA AND ACUTE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+001e0a: LATIN CAPITAL LETTER D WITH DOT ABOVE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001e0b: LATIN SMALL LETTER D WITH DOT ABOVE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+001e0c: LATIN CAPITAL LETTER D WITH DOT BELOW*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001e0d: LATIN SMALL LETTER D WITH DOT BELOW*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+001e0e: LATIN CAPITAL LETTER D WITH LINE BELOW*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001e0f: LATIN SMALL LETTER D WITH LINE BELOW*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+001e10: LATIN CAPITAL LETTER D WITH CEDILLA*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001e11: LATIN SMALL LETTER D WITH CEDILLA*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+001e12: LATIN CAPITAL LETTER D WITH CIRCUMFLEX BELOW*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001e13: LATIN SMALL LETTER D WITH CIRCUMFLEX BELOW*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+001e14: LATIN CAPITAL LETTER E WITH MACRON AND GRAVE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001e15: LATIN SMALL LETTER E WITH MACRON AND GRAVE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+001e16: LATIN CAPITAL LETTER E WITH MACRON AND ACUTE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001e17: LATIN SMALL LETTER E WITH MACRON AND ACUTE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+001e18: LATIN CAPITAL LETTER E WITH CIRCUMFLEX BELOW*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001e19: LATIN SMALL LETTER E WITH CIRCUMFLEX BELOW*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+001e1a: LATIN CAPITAL LETTER E WITH TILDE BELOW*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001e1b: LATIN SMALL LETTER E WITH TILDE BELOW*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+001e1c: LATIN CAPITAL LETTER E WITH CEDILLA AND BREVE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001e1d: LATIN SMALL LETTER E WITH CEDILLA AND BREVE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+001e1e: LATIN CAPITAL LETTER F WITH DOT ABOVE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001e1f: LATIN SMALL LETTER F WITH DOT ABOVE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+001e20: LATIN CAPITAL LETTER G WITH MACRON*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001e21: LATIN SMALL LETTER G WITH MACRON*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+001e22: LATIN CAPITAL LETTER H WITH DOT ABOVE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001e23: LATIN SMALL LETTER H WITH DOT ABOVE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+001e24: LATIN CAPITAL LETTER H WITH DOT BELOW*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001e25: LATIN SMALL LETTER H WITH DOT BELOW*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+001e26: LATIN CAPITAL LETTER H WITH DIAERESIS*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001e27: LATIN SMALL LETTER H WITH DIAERESIS*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+001e28: LATIN CAPITAL LETTER H WITH CEDILLA*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001e29: LATIN SMALL LETTER H WITH CEDILLA*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+001e2a: LATIN CAPITAL LETTER H WITH BREVE BELOW*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001e2b: LATIN SMALL LETTER H WITH BREVE BELOW*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+001e2c: LATIN CAPITAL LETTER I WITH TILDE BELOW*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001e2d: LATIN SMALL LETTER I WITH TILDE BELOW*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+001e2e: LATIN CAPITAL LETTER I WITH DIAERESIS AND ACUTE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001e2f: LATIN SMALL LETTER I WITH DIAERESIS AND ACUTE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+001e30: LATIN CAPITAL LETTER K WITH ACUTE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001e31: LATIN SMALL LETTER K WITH ACUTE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+001e32: LATIN CAPITAL LETTER K WITH DOT BELOW*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001e33: LATIN SMALL LETTER K WITH DOT BELOW*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+001e34: LATIN CAPITAL LETTER K WITH LINE BELOW*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001e35: LATIN SMALL LETTER K WITH LINE BELOW*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+001e36: LATIN CAPITAL LETTER L WITH DOT BELOW*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001e37: LATIN SMALL LETTER L WITH DOT BELOW*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+001e38: LATIN CAPITAL LETTER L WITH DOT BELOW AND MACRON*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001e39: LATIN SMALL LETTER L WITH DOT BELOW AND MACRON*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+001e3a: LATIN CAPITAL LETTER L WITH LINE BELOW*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001e3b: LATIN SMALL LETTER L WITH LINE BELOW*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+001e3c: LATIN CAPITAL LETTER L WITH CIRCUMFLEX BELOW*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001e3d: LATIN SMALL LETTER L WITH CIRCUMFLEX BELOW*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+001e3e: LATIN CAPITAL LETTER M WITH ACUTE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001e3f: LATIN SMALL LETTER M WITH ACUTE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+001e40: LATIN CAPITAL LETTER M WITH DOT ABOVE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001e41: LATIN SMALL LETTER M WITH DOT ABOVE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+001e42: LATIN CAPITAL LETTER M WITH DOT BELOW*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001e43: LATIN SMALL LETTER M WITH DOT BELOW*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+001e44: LATIN CAPITAL LETTER N WITH DOT ABOVE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001e45: LATIN SMALL LETTER N WITH DOT ABOVE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+001e46: LATIN CAPITAL LETTER N WITH DOT BELOW*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001e47: LATIN SMALL LETTER N WITH DOT BELOW*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+001e48: LATIN CAPITAL LETTER N WITH LINE BELOW*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001e49: LATIN SMALL LETTER N WITH LINE BELOW*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+001e4a: LATIN CAPITAL LETTER N WITH CIRCUMFLEX BELOW*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001e4b: LATIN SMALL LETTER N WITH CIRCUMFLEX BELOW*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+001e4c: LATIN CAPITAL LETTER O WITH TILDE AND ACUTE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001e4d: LATIN SMALL LETTER O WITH TILDE AND ACUTE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+001e4e: LATIN CAPITAL LETTER O WITH TILDE AND DIAERESIS*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001e4f: LATIN SMALL LETTER O WITH TILDE AND DIAERESIS*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+001e50: LATIN CAPITAL LETTER O WITH MACRON AND GRAVE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001e51: LATIN SMALL LETTER O WITH MACRON AND GRAVE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+001e52: LATIN CAPITAL LETTER O WITH MACRON AND ACUTE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001e53: LATIN SMALL LETTER O WITH MACRON AND ACUTE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+001e54: LATIN CAPITAL LETTER P WITH ACUTE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001e55: LATIN SMALL LETTER P WITH ACUTE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+001e56: LATIN CAPITAL LETTER P WITH DOT ABOVE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001e57: LATIN SMALL LETTER P WITH DOT ABOVE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+001e58: LATIN CAPITAL LETTER R WITH DOT ABOVE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001e59: LATIN SMALL LETTER R WITH DOT ABOVE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+001e5a: LATIN CAPITAL LETTER R WITH DOT BELOW*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001e5b: LATIN SMALL LETTER R WITH DOT BELOW*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+001e5c: LATIN CAPITAL LETTER R WITH DOT BELOW AND MACRON*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001e5d: LATIN SMALL LETTER R WITH DOT BELOW AND MACRON*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+001e5e: LATIN CAPITAL LETTER R WITH LINE BELOW*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001e5f: LATIN SMALL LETTER R WITH LINE BELOW*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+001e60: LATIN CAPITAL LETTER S WITH DOT ABOVE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001e61: LATIN SMALL LETTER S WITH DOT ABOVE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+001e62: LATIN CAPITAL LETTER S WITH DOT BELOW*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001e63: LATIN SMALL LETTER S WITH DOT BELOW*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+001e64: LATIN CAPITAL LETTER S WITH ACUTE AND DOT ABOVE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001e65: LATIN SMALL LETTER S WITH ACUTE AND DOT ABOVE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+001e66: LATIN CAPITAL LETTER S WITH CARON AND DOT ABOVE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001e67: LATIN SMALL LETTER S WITH CARON AND DOT ABOVE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+001e68: LATIN CAPITAL LETTER S WITH DOT BELOW AND DOT ABOVE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001e69: LATIN SMALL LETTER S WITH DOT BELOW AND DOT ABOVE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+001e6a: LATIN CAPITAL LETTER T WITH DOT ABOVE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001e6b: LATIN SMALL LETTER T WITH DOT ABOVE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+001e6c: LATIN CAPITAL LETTER T WITH DOT BELOW*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001e6d: LATIN SMALL LETTER T WITH DOT BELOW*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+001e6e: LATIN CAPITAL LETTER T WITH LINE BELOW*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001e6f: LATIN SMALL LETTER T WITH LINE BELOW*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+001e70: LATIN CAPITAL LETTER T WITH CIRCUMFLEX BELOW*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001e71: LATIN SMALL LETTER T WITH CIRCUMFLEX BELOW*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+001e72: LATIN CAPITAL LETTER U WITH DIAERESIS BELOW*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001e73: LATIN SMALL LETTER U WITH DIAERESIS BELOW*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+001e74: LATIN CAPITAL LETTER U WITH TILDE BELOW*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001e75: LATIN SMALL LETTER U WITH TILDE BELOW*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+001e76: LATIN CAPITAL LETTER U WITH CIRCUMFLEX BELOW*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001e77: LATIN SMALL LETTER U WITH CIRCUMFLEX BELOW*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+001e78: LATIN CAPITAL LETTER U WITH TILDE AND ACUTE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001e79: LATIN SMALL LETTER U WITH TILDE AND ACUTE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+001e7a: LATIN CAPITAL LETTER U WITH MACRON AND DIAERESIS*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001e7b: LATIN SMALL LETTER U WITH MACRON AND DIAERESIS*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+001e7c: LATIN CAPITAL LETTER V WITH TILDE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001e7d: LATIN SMALL LETTER V WITH TILDE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+001e7e: LATIN CAPITAL LETTER V WITH DOT BELOW*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001e7f: LATIN SMALL LETTER V WITH DOT BELOW*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+001e80: LATIN CAPITAL LETTER W WITH GRAVE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001e81: LATIN SMALL LETTER W WITH GRAVE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+001e82: LATIN CAPITAL LETTER W WITH ACUTE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001e83: LATIN SMALL LETTER W WITH ACUTE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+001e84: LATIN CAPITAL LETTER W WITH DIAERESIS*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001e85: LATIN SMALL LETTER W WITH DIAERESIS*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+001e86: LATIN CAPITAL LETTER W WITH DOT ABOVE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001e87: LATIN SMALL LETTER W WITH DOT ABOVE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+001e88: LATIN CAPITAL LETTER W WITH DOT BELOW*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001e89: LATIN SMALL LETTER W WITH DOT BELOW*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+001e8a: LATIN CAPITAL LETTER X WITH DOT ABOVE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001e8b: LATIN SMALL LETTER X WITH DOT ABOVE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+001e8c: LATIN CAPITAL LETTER X WITH DIAERESIS*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001e8d: LATIN SMALL LETTER X WITH DIAERESIS*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+001e8e: LATIN CAPITAL LETTER Y WITH DOT ABOVE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001e8f: LATIN SMALL LETTER Y WITH DOT ABOVE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+001e90: LATIN CAPITAL LETTER Z WITH CIRCUMFLEX*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001e91: LATIN SMALL LETTER Z WITH CIRCUMFLEX*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+001e92: LATIN CAPITAL LETTER Z WITH DOT BELOW*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001e93: LATIN SMALL LETTER Z WITH DOT BELOW*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+001e94: LATIN CAPITAL LETTER Z WITH LINE BELOW*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001e95: LATIN SMALL LETTER Z WITH LINE BELOW*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001e96: LATIN SMALL LETTER H WITH LINE BELOW*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001e97: LATIN SMALL LETTER T WITH DIAERESIS*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001e98: LATIN SMALL LETTER W WITH RING ABOVE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001e99: LATIN SMALL LETTER Y WITH RING ABOVE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001e9a: LATIN SMALL LETTER A WITH RIGHT HALF RING*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001e9b: LATIN SMALL LETTER LONG S WITH DOT ABOVE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001e9c: LATIN SMALL LETTER LONG S WITH DIAGONAL STROKE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001e9d: LATIN SMALL LETTER LONG S WITH HIGH STROKE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+001e9e: LATIN CAPITAL LETTER SHARP S*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001e9f: LATIN SMALL LETTER DELTA*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+001ea0: LATIN CAPITAL LETTER A WITH DOT BELOW*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001ea1: LATIN SMALL LETTER A WITH DOT BELOW*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+001ea2: LATIN CAPITAL LETTER A WITH HOOK ABOVE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001ea3: LATIN SMALL LETTER A WITH HOOK ABOVE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+001ea4: LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND ACUTE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001ea5: LATIN SMALL LETTER A WITH CIRCUMFLEX AND ACUTE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+001ea6: LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND GRAVE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001ea7: LATIN SMALL LETTER A WITH CIRCUMFLEX AND GRAVE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+001ea8: LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND HOOK ABOVE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001ea9: LATIN SMALL LETTER A WITH CIRCUMFLEX AND HOOK ABOVE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+001eaa: LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND TILDE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001eab: LATIN SMALL LETTER A WITH CIRCUMFLEX AND TILDE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+001eac: LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND DOT BELOW*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001ead: LATIN SMALL LETTER A WITH CIRCUMFLEX AND DOT BELOW*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+001eae: LATIN CAPITAL LETTER A WITH BREVE AND ACUTE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001eaf: LATIN SMALL LETTER A WITH BREVE AND ACUTE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+001eb0: LATIN CAPITAL LETTER A WITH BREVE AND GRAVE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001eb1: LATIN SMALL LETTER A WITH BREVE AND GRAVE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+001eb2: LATIN CAPITAL LETTER A WITH BREVE AND HOOK ABOVE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001eb3: LATIN SMALL LETTER A WITH BREVE AND HOOK ABOVE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+001eb4: LATIN CAPITAL LETTER A WITH BREVE AND TILDE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001eb5: LATIN SMALL LETTER A WITH BREVE AND TILDE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+001eb6: LATIN CAPITAL LETTER A WITH BREVE AND DOT BELOW*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001eb7: LATIN SMALL LETTER A WITH BREVE AND DOT BELOW*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+001eb8: LATIN CAPITAL LETTER E WITH DOT BELOW*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001eb9: LATIN SMALL LETTER E WITH DOT BELOW*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+001eba: LATIN CAPITAL LETTER E WITH HOOK ABOVE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001ebb: LATIN SMALL LETTER E WITH HOOK ABOVE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+001ebc: LATIN CAPITAL LETTER E WITH TILDE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001ebd: LATIN SMALL LETTER E WITH TILDE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+001ebe: LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND ACUTE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001ebf: LATIN SMALL LETTER E WITH CIRCUMFLEX AND ACUTE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+001ec0: LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND GRAVE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001ec1: LATIN SMALL LETTER E WITH CIRCUMFLEX AND GRAVE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+001ec2: LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND HOOK ABOVE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001ec3: LATIN SMALL LETTER E WITH CIRCUMFLEX AND HOOK ABOVE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+001ec4: LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND TILDE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001ec5: LATIN SMALL LETTER E WITH CIRCUMFLEX AND TILDE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+001ec6: LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND DOT BELOW*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001ec7: LATIN SMALL LETTER E WITH CIRCUMFLEX AND DOT BELOW*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+001ec8: LATIN CAPITAL LETTER I WITH HOOK ABOVE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001ec9: LATIN SMALL LETTER I WITH HOOK ABOVE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+001eca: LATIN CAPITAL LETTER I WITH DOT BELOW*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001ecb: LATIN SMALL LETTER I WITH DOT BELOW*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+001ecc: LATIN CAPITAL LETTER O WITH DOT BELOW*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001ecd: LATIN SMALL LETTER O WITH DOT BELOW*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+001ece: LATIN CAPITAL LETTER O WITH HOOK ABOVE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001ecf: LATIN SMALL LETTER O WITH HOOK ABOVE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+001ed0: LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND ACUTE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001ed1: LATIN SMALL LETTER O WITH CIRCUMFLEX AND ACUTE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+001ed2: LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND GRAVE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001ed3: LATIN SMALL LETTER O WITH CIRCUMFLEX AND GRAVE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+001ed4: LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND HOOK ABOVE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001ed5: LATIN SMALL LETTER O WITH CIRCUMFLEX AND HOOK ABOVE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+001ed6: LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND TILDE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001ed7: LATIN SMALL LETTER O WITH CIRCUMFLEX AND TILDE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+001ed8: LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND DOT BELOW*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001ed9: LATIN SMALL LETTER O WITH CIRCUMFLEX AND DOT BELOW*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+001eda: LATIN CAPITAL LETTER O WITH HORN AND ACUTE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001edb: LATIN SMALL LETTER O WITH HORN AND ACUTE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+001edc: LATIN CAPITAL LETTER O WITH HORN AND GRAVE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001edd: LATIN SMALL LETTER O WITH HORN AND GRAVE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+001ede: LATIN CAPITAL LETTER O WITH HORN AND HOOK ABOVE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001edf: LATIN SMALL LETTER O WITH HORN AND HOOK ABOVE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+001ee0: LATIN CAPITAL LETTER O WITH HORN AND TILDE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001ee1: LATIN SMALL LETTER O WITH HORN AND TILDE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+001ee2: LATIN CAPITAL LETTER O WITH HORN AND DOT BELOW*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001ee3: LATIN SMALL LETTER O WITH HORN AND DOT BELOW*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+001ee4: LATIN CAPITAL LETTER U WITH DOT BELOW*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001ee5: LATIN SMALL LETTER U WITH DOT BELOW*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+001ee6: LATIN CAPITAL LETTER U WITH HOOK ABOVE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001ee7: LATIN SMALL LETTER U WITH HOOK ABOVE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+001ee8: LATIN CAPITAL LETTER U WITH HORN AND ACUTE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001ee9: LATIN SMALL LETTER U WITH HORN AND ACUTE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+001eea: LATIN CAPITAL LETTER U WITH HORN AND GRAVE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001eeb: LATIN SMALL LETTER U WITH HORN AND GRAVE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+001eec: LATIN CAPITAL LETTER U WITH HORN AND HOOK ABOVE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001eed: LATIN SMALL LETTER U WITH HORN AND HOOK ABOVE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+001eee: LATIN CAPITAL LETTER U WITH HORN AND TILDE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001eef: LATIN SMALL LETTER U WITH HORN AND TILDE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+001ef0: LATIN CAPITAL LETTER U WITH HORN AND DOT BELOW*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001ef1: LATIN SMALL LETTER U WITH HORN AND DOT BELOW*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+001ef2: LATIN CAPITAL LETTER Y WITH GRAVE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001ef3: LATIN SMALL LETTER Y WITH GRAVE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+001ef4: LATIN CAPITAL LETTER Y WITH DOT BELOW*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001ef5: LATIN SMALL LETTER Y WITH DOT BELOW*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+001ef6: LATIN CAPITAL LETTER Y WITH HOOK ABOVE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001ef7: LATIN SMALL LETTER Y WITH HOOK ABOVE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+001ef8: LATIN CAPITAL LETTER Y WITH TILDE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001ef9: LATIN SMALL LETTER Y WITH TILDE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+001efa: LATIN CAPITAL LETTER MIDDLE-WELSH LL*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001efb: LATIN SMALL LETTER MIDDLE-WELSH LL*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+001efc: LATIN CAPITAL LETTER MIDDLE-WELSH V*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001efd: LATIN SMALL LETTER MIDDLE-WELSH V*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+001efe: LATIN CAPITAL LETTER Y WITH LOOP*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001eff: LATIN SMALL LETTER Y WITH LOOP*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001f00: GREEK SMALL LETTER ALPHA WITH PSILI*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001f01: GREEK SMALL LETTER ALPHA WITH DASIA*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001f02: GREEK SMALL LETTER ALPHA WITH PSILI AND VARIA*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001f03: GREEK SMALL LETTER ALPHA WITH DASIA AND VARIA*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001f04: GREEK SMALL LETTER ALPHA WITH PSILI AND OXIA*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001f05: GREEK SMALL LETTER ALPHA WITH DASIA AND OXIA*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001f06: GREEK SMALL LETTER ALPHA WITH PSILI AND PERISPOMENI*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001f07: GREEK SMALL LETTER ALPHA WITH DASIA AND PERISPOMENI*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+001f08: GREEK CAPITAL LETTER ALPHA WITH PSILI*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+001f09: GREEK CAPITAL LETTER ALPHA WITH DASIA*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+001f0a: GREEK CAPITAL LETTER ALPHA WITH PSILI AND VARIA*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+001f0b: GREEK CAPITAL LETTER ALPHA WITH DASIA AND VARIA*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+001f0c: GREEK CAPITAL LETTER ALPHA WITH PSILI AND OXIA*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+001f0d: GREEK CAPITAL LETTER ALPHA WITH DASIA AND OXIA*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+001f0e: GREEK CAPITAL LETTER ALPHA WITH PSILI AND PERISPOMENI*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+001f0f: GREEK CAPITAL LETTER ALPHA WITH DASIA AND PERISPOMENI*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001f10: GREEK SMALL LETTER EPSILON WITH PSILI*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001f11: GREEK SMALL LETTER EPSILON WITH DASIA*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001f12: GREEK SMALL LETTER EPSILON WITH PSILI AND VARIA*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001f13: GREEK SMALL LETTER EPSILON WITH DASIA AND VARIA*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001f14: GREEK SMALL LETTER EPSILON WITH PSILI AND OXIA*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001f15: GREEK SMALL LETTER EPSILON WITH DASIA AND OXIA*/ + 0, /* U+001f16: */ + 0, /* U+001f17: */ + RTUNI_ALPHA | RTUNI_UPPER, /* U+001f18: GREEK CAPITAL LETTER EPSILON WITH PSILI*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+001f19: GREEK CAPITAL LETTER EPSILON WITH DASIA*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+001f1a: GREEK CAPITAL LETTER EPSILON WITH PSILI AND VARIA*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+001f1b: GREEK CAPITAL LETTER EPSILON WITH DASIA AND VARIA*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+001f1c: GREEK CAPITAL LETTER EPSILON WITH PSILI AND OXIA*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+001f1d: GREEK CAPITAL LETTER EPSILON WITH DASIA AND OXIA*/ + 0, /* U+001f1e: */ + 0, /* U+001f1f: */ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001f20: GREEK SMALL LETTER ETA WITH PSILI*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001f21: GREEK SMALL LETTER ETA WITH DASIA*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001f22: GREEK SMALL LETTER ETA WITH PSILI AND VARIA*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001f23: GREEK SMALL LETTER ETA WITH DASIA AND VARIA*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001f24: GREEK SMALL LETTER ETA WITH PSILI AND OXIA*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001f25: GREEK SMALL LETTER ETA WITH DASIA AND OXIA*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001f26: GREEK SMALL LETTER ETA WITH PSILI AND PERISPOMENI*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001f27: GREEK SMALL LETTER ETA WITH DASIA AND PERISPOMENI*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+001f28: GREEK CAPITAL LETTER ETA WITH PSILI*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+001f29: GREEK CAPITAL LETTER ETA WITH DASIA*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+001f2a: GREEK CAPITAL LETTER ETA WITH PSILI AND VARIA*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+001f2b: GREEK CAPITAL LETTER ETA WITH DASIA AND VARIA*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+001f2c: GREEK CAPITAL LETTER ETA WITH PSILI AND OXIA*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+001f2d: GREEK CAPITAL LETTER ETA WITH DASIA AND OXIA*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+001f2e: GREEK CAPITAL LETTER ETA WITH PSILI AND PERISPOMENI*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+001f2f: GREEK CAPITAL LETTER ETA WITH DASIA AND PERISPOMENI*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001f30: GREEK SMALL LETTER IOTA WITH PSILI*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001f31: GREEK SMALL LETTER IOTA WITH DASIA*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001f32: GREEK SMALL LETTER IOTA WITH PSILI AND VARIA*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001f33: GREEK SMALL LETTER IOTA WITH DASIA AND VARIA*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001f34: GREEK SMALL LETTER IOTA WITH PSILI AND OXIA*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001f35: GREEK SMALL LETTER IOTA WITH DASIA AND OXIA*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001f36: GREEK SMALL LETTER IOTA WITH PSILI AND PERISPOMENI*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001f37: GREEK SMALL LETTER IOTA WITH DASIA AND PERISPOMENI*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+001f38: GREEK CAPITAL LETTER IOTA WITH PSILI*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+001f39: GREEK CAPITAL LETTER IOTA WITH DASIA*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+001f3a: GREEK CAPITAL LETTER IOTA WITH PSILI AND VARIA*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+001f3b: GREEK CAPITAL LETTER IOTA WITH DASIA AND VARIA*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+001f3c: GREEK CAPITAL LETTER IOTA WITH PSILI AND OXIA*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+001f3d: GREEK CAPITAL LETTER IOTA WITH DASIA AND OXIA*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+001f3e: GREEK CAPITAL LETTER IOTA WITH PSILI AND PERISPOMENI*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+001f3f: GREEK CAPITAL LETTER IOTA WITH DASIA AND PERISPOMENI*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001f40: GREEK SMALL LETTER OMICRON WITH PSILI*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001f41: GREEK SMALL LETTER OMICRON WITH DASIA*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001f42: GREEK SMALL LETTER OMICRON WITH PSILI AND VARIA*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001f43: GREEK SMALL LETTER OMICRON WITH DASIA AND VARIA*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001f44: GREEK SMALL LETTER OMICRON WITH PSILI AND OXIA*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001f45: GREEK SMALL LETTER OMICRON WITH DASIA AND OXIA*/ + 0, /* U+001f46: */ + 0, /* U+001f47: */ + RTUNI_ALPHA | RTUNI_UPPER, /* U+001f48: GREEK CAPITAL LETTER OMICRON WITH PSILI*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+001f49: GREEK CAPITAL LETTER OMICRON WITH DASIA*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+001f4a: GREEK CAPITAL LETTER OMICRON WITH PSILI AND VARIA*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+001f4b: GREEK CAPITAL LETTER OMICRON WITH DASIA AND VARIA*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+001f4c: GREEK CAPITAL LETTER OMICRON WITH PSILI AND OXIA*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+001f4d: GREEK CAPITAL LETTER OMICRON WITH DASIA AND OXIA*/ + 0, /* U+001f4e: */ + 0, /* U+001f4f: */ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001f50: GREEK SMALL LETTER UPSILON WITH PSILI*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001f51: GREEK SMALL LETTER UPSILON WITH DASIA*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001f52: GREEK SMALL LETTER UPSILON WITH PSILI AND VARIA*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001f53: GREEK SMALL LETTER UPSILON WITH DASIA AND VARIA*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001f54: GREEK SMALL LETTER UPSILON WITH PSILI AND OXIA*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001f55: GREEK SMALL LETTER UPSILON WITH DASIA AND OXIA*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001f56: GREEK SMALL LETTER UPSILON WITH PSILI AND PERISPOMENI*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001f57: GREEK SMALL LETTER UPSILON WITH DASIA AND PERISPOMENI*/ + 0, /* U+001f58: */ + RTUNI_ALPHA | RTUNI_UPPER, /* U+001f59: GREEK CAPITAL LETTER UPSILON WITH DASIA*/ + 0, /* U+001f5a: */ + RTUNI_ALPHA | RTUNI_UPPER, /* U+001f5b: GREEK CAPITAL LETTER UPSILON WITH DASIA AND VARIA*/ + 0, /* U+001f5c: */ + RTUNI_ALPHA | RTUNI_UPPER, /* U+001f5d: GREEK CAPITAL LETTER UPSILON WITH DASIA AND OXIA*/ + 0, /* U+001f5e: */ + RTUNI_ALPHA | RTUNI_UPPER, /* U+001f5f: GREEK CAPITAL LETTER UPSILON WITH DASIA AND PERISPOMENI*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001f60: GREEK SMALL LETTER OMEGA WITH PSILI*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001f61: GREEK SMALL LETTER OMEGA WITH DASIA*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001f62: GREEK SMALL LETTER OMEGA WITH PSILI AND VARIA*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001f63: GREEK SMALL LETTER OMEGA WITH DASIA AND VARIA*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001f64: GREEK SMALL LETTER OMEGA WITH PSILI AND OXIA*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001f65: GREEK SMALL LETTER OMEGA WITH DASIA AND OXIA*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001f66: GREEK SMALL LETTER OMEGA WITH PSILI AND PERISPOMENI*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001f67: GREEK SMALL LETTER OMEGA WITH DASIA AND PERISPOMENI*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+001f68: GREEK CAPITAL LETTER OMEGA WITH PSILI*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+001f69: GREEK CAPITAL LETTER OMEGA WITH DASIA*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+001f6a: GREEK CAPITAL LETTER OMEGA WITH PSILI AND VARIA*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+001f6b: GREEK CAPITAL LETTER OMEGA WITH DASIA AND VARIA*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+001f6c: GREEK CAPITAL LETTER OMEGA WITH PSILI AND OXIA*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+001f6d: GREEK CAPITAL LETTER OMEGA WITH DASIA AND OXIA*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+001f6e: GREEK CAPITAL LETTER OMEGA WITH PSILI AND PERISPOMENI*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+001f6f: GREEK CAPITAL LETTER OMEGA WITH DASIA AND PERISPOMENI*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001f70: GREEK SMALL LETTER ALPHA WITH VARIA*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001f71: GREEK SMALL LETTER ALPHA WITH OXIA*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001f72: GREEK SMALL LETTER EPSILON WITH VARIA*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001f73: GREEK SMALL LETTER EPSILON WITH OXIA*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001f74: GREEK SMALL LETTER ETA WITH VARIA*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001f75: GREEK SMALL LETTER ETA WITH OXIA*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001f76: GREEK SMALL LETTER IOTA WITH VARIA*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001f77: GREEK SMALL LETTER IOTA WITH OXIA*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001f78: GREEK SMALL LETTER OMICRON WITH VARIA*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001f79: GREEK SMALL LETTER OMICRON WITH OXIA*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001f7a: GREEK SMALL LETTER UPSILON WITH VARIA*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001f7b: GREEK SMALL LETTER UPSILON WITH OXIA*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001f7c: GREEK SMALL LETTER OMEGA WITH VARIA*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001f7d: GREEK SMALL LETTER OMEGA WITH OXIA*/ + 0, /* U+001f7e: */ + 0, /* U+001f7f: */ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001f80: GREEK SMALL LETTER ALPHA WITH PSILI AND YPOGEGRAMMENI*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001f81: GREEK SMALL LETTER ALPHA WITH DASIA AND YPOGEGRAMMENI*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001f82: GREEK SMALL LETTER ALPHA WITH PSILI AND VARIA AND YPOGEGRAMMENI*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001f83: GREEK SMALL LETTER ALPHA WITH DASIA AND VARIA AND YPOGEGRAMMENI*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001f84: GREEK SMALL LETTER ALPHA WITH PSILI AND OXIA AND YPOGEGRAMMENI*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001f85: GREEK SMALL LETTER ALPHA WITH DASIA AND OXIA AND YPOGEGRAMMENI*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001f86: GREEK SMALL LETTER ALPHA WITH PSILI AND PERISPOMENI AND YPOGEGRAMMENI*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001f87: GREEK SMALL LETTER ALPHA WITH DASIA AND PERISPOMENI AND YPOGEGRAMMENI*/ + RTUNI_ALPHA, /* U+001f88: GREEK CAPITAL LETTER ALPHA WITH PSILI AND PROSGEGRAMMENI*/ + RTUNI_ALPHA, /* U+001f89: GREEK CAPITAL LETTER ALPHA WITH DASIA AND PROSGEGRAMMENI*/ + RTUNI_ALPHA, /* U+001f8a: GREEK CAPITAL LETTER ALPHA WITH PSILI AND VARIA AND PROSGEGRAMMENI*/ + RTUNI_ALPHA, /* U+001f8b: GREEK CAPITAL LETTER ALPHA WITH DASIA AND VARIA AND PROSGEGRAMMENI*/ + RTUNI_ALPHA, /* U+001f8c: GREEK CAPITAL LETTER ALPHA WITH PSILI AND OXIA AND PROSGEGRAMMENI*/ + RTUNI_ALPHA, /* U+001f8d: GREEK CAPITAL LETTER ALPHA WITH DASIA AND OXIA AND PROSGEGRAMMENI*/ + RTUNI_ALPHA, /* U+001f8e: GREEK CAPITAL LETTER ALPHA WITH PSILI AND PERISPOMENI AND PROSGEGRAMMENI*/ + RTUNI_ALPHA, /* U+001f8f: GREEK CAPITAL LETTER ALPHA WITH DASIA AND PERISPOMENI AND PROSGEGRAMMENI*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001f90: GREEK SMALL LETTER ETA WITH PSILI AND YPOGEGRAMMENI*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001f91: GREEK SMALL LETTER ETA WITH DASIA AND YPOGEGRAMMENI*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001f92: GREEK SMALL LETTER ETA WITH PSILI AND VARIA AND YPOGEGRAMMENI*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001f93: GREEK SMALL LETTER ETA WITH DASIA AND VARIA AND YPOGEGRAMMENI*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001f94: GREEK SMALL LETTER ETA WITH PSILI AND OXIA AND YPOGEGRAMMENI*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001f95: GREEK SMALL LETTER ETA WITH DASIA AND OXIA AND YPOGEGRAMMENI*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001f96: GREEK SMALL LETTER ETA WITH PSILI AND PERISPOMENI AND YPOGEGRAMMENI*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001f97: GREEK SMALL LETTER ETA WITH DASIA AND PERISPOMENI AND YPOGEGRAMMENI*/ + RTUNI_ALPHA, /* U+001f98: GREEK CAPITAL LETTER ETA WITH PSILI AND PROSGEGRAMMENI*/ + RTUNI_ALPHA, /* U+001f99: GREEK CAPITAL LETTER ETA WITH DASIA AND PROSGEGRAMMENI*/ + RTUNI_ALPHA, /* U+001f9a: GREEK CAPITAL LETTER ETA WITH PSILI AND VARIA AND PROSGEGRAMMENI*/ + RTUNI_ALPHA, /* U+001f9b: GREEK CAPITAL LETTER ETA WITH DASIA AND VARIA AND PROSGEGRAMMENI*/ + RTUNI_ALPHA, /* U+001f9c: GREEK CAPITAL LETTER ETA WITH PSILI AND OXIA AND PROSGEGRAMMENI*/ + RTUNI_ALPHA, /* U+001f9d: GREEK CAPITAL LETTER ETA WITH DASIA AND OXIA AND PROSGEGRAMMENI*/ + RTUNI_ALPHA, /* U+001f9e: GREEK CAPITAL LETTER ETA WITH PSILI AND PERISPOMENI AND PROSGEGRAMMENI*/ + RTUNI_ALPHA, /* U+001f9f: GREEK CAPITAL LETTER ETA WITH DASIA AND PERISPOMENI AND PROSGEGRAMMENI*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001fa0: GREEK SMALL LETTER OMEGA WITH PSILI AND YPOGEGRAMMENI*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001fa1: GREEK SMALL LETTER OMEGA WITH DASIA AND YPOGEGRAMMENI*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001fa2: GREEK SMALL LETTER OMEGA WITH PSILI AND VARIA AND YPOGEGRAMMENI*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001fa3: GREEK SMALL LETTER OMEGA WITH DASIA AND VARIA AND YPOGEGRAMMENI*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001fa4: GREEK SMALL LETTER OMEGA WITH PSILI AND OXIA AND YPOGEGRAMMENI*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001fa5: GREEK SMALL LETTER OMEGA WITH DASIA AND OXIA AND YPOGEGRAMMENI*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001fa6: GREEK SMALL LETTER OMEGA WITH PSILI AND PERISPOMENI AND YPOGEGRAMMENI*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001fa7: GREEK SMALL LETTER OMEGA WITH DASIA AND PERISPOMENI AND YPOGEGRAMMENI*/ + RTUNI_ALPHA, /* U+001fa8: GREEK CAPITAL LETTER OMEGA WITH PSILI AND PROSGEGRAMMENI*/ + RTUNI_ALPHA, /* U+001fa9: GREEK CAPITAL LETTER OMEGA WITH DASIA AND PROSGEGRAMMENI*/ + RTUNI_ALPHA, /* U+001faa: GREEK CAPITAL LETTER OMEGA WITH PSILI AND VARIA AND PROSGEGRAMMENI*/ + RTUNI_ALPHA, /* U+001fab: GREEK CAPITAL LETTER OMEGA WITH DASIA AND VARIA AND PROSGEGRAMMENI*/ + RTUNI_ALPHA, /* U+001fac: GREEK CAPITAL LETTER OMEGA WITH PSILI AND OXIA AND PROSGEGRAMMENI*/ + RTUNI_ALPHA, /* U+001fad: GREEK CAPITAL LETTER OMEGA WITH DASIA AND OXIA AND PROSGEGRAMMENI*/ + RTUNI_ALPHA, /* U+001fae: GREEK CAPITAL LETTER OMEGA WITH PSILI AND PERISPOMENI AND PROSGEGRAMMENI*/ + RTUNI_ALPHA, /* U+001faf: GREEK CAPITAL LETTER OMEGA WITH DASIA AND PERISPOMENI AND PROSGEGRAMMENI*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001fb0: GREEK SMALL LETTER ALPHA WITH VRACHY*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001fb1: GREEK SMALL LETTER ALPHA WITH MACRON*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001fb2: GREEK SMALL LETTER ALPHA WITH VARIA AND YPOGEGRAMMENI*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001fb3: GREEK SMALL LETTER ALPHA WITH YPOGEGRAMMENI*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001fb4: GREEK SMALL LETTER ALPHA WITH OXIA AND YPOGEGRAMMENI*/ + 0, /* U+001fb5: */ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001fb6: GREEK SMALL LETTER ALPHA WITH PERISPOMENI*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001fb7: GREEK SMALL LETTER ALPHA WITH PERISPOMENI AND YPOGEGRAMMENI*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+001fb8: GREEK CAPITAL LETTER ALPHA WITH VRACHY*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+001fb9: GREEK CAPITAL LETTER ALPHA WITH MACRON*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+001fba: GREEK CAPITAL LETTER ALPHA WITH VARIA*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+001fbb: GREEK CAPITAL LETTER ALPHA WITH OXIA*/ + RTUNI_ALPHA, /* U+001fbc: GREEK CAPITAL LETTER ALPHA WITH PROSGEGRAMMENI*/ + 0, /* U+001fbd: GREEK KORONIS*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001fbe: GREEK PROSGEGRAMMENI*/ + 0, /* U+001fbf: GREEK PSILI*/ + 0, /* U+001fc0: GREEK PERISPOMENI*/ + 0, /* U+001fc1: GREEK DIALYTIKA AND PERISPOMENI*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001fc2: GREEK SMALL LETTER ETA WITH VARIA AND YPOGEGRAMMENI*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001fc3: GREEK SMALL LETTER ETA WITH YPOGEGRAMMENI*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001fc4: GREEK SMALL LETTER ETA WITH OXIA AND YPOGEGRAMMENI*/ + 0, /* U+001fc5: */ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001fc6: GREEK SMALL LETTER ETA WITH PERISPOMENI*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001fc7: GREEK SMALL LETTER ETA WITH PERISPOMENI AND YPOGEGRAMMENI*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+001fc8: GREEK CAPITAL LETTER EPSILON WITH VARIA*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+001fc9: GREEK CAPITAL LETTER EPSILON WITH OXIA*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+001fca: GREEK CAPITAL LETTER ETA WITH VARIA*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+001fcb: GREEK CAPITAL LETTER ETA WITH OXIA*/ + RTUNI_ALPHA, /* U+001fcc: GREEK CAPITAL LETTER ETA WITH PROSGEGRAMMENI*/ + 0, /* U+001fcd: GREEK PSILI AND VARIA*/ + 0, /* U+001fce: GREEK PSILI AND OXIA*/ + 0, /* U+001fcf: GREEK PSILI AND PERISPOMENI*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001fd0: GREEK SMALL LETTER IOTA WITH VRACHY*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001fd1: GREEK SMALL LETTER IOTA WITH MACRON*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001fd2: GREEK SMALL LETTER IOTA WITH DIALYTIKA AND VARIA*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001fd3: GREEK SMALL LETTER IOTA WITH DIALYTIKA AND OXIA*/ + 0, /* U+001fd4: */ + 0, /* U+001fd5: */ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001fd6: GREEK SMALL LETTER IOTA WITH PERISPOMENI*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001fd7: GREEK SMALL LETTER IOTA WITH DIALYTIKA AND PERISPOMENI*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+001fd8: GREEK CAPITAL LETTER IOTA WITH VRACHY*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+001fd9: GREEK CAPITAL LETTER IOTA WITH MACRON*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+001fda: GREEK CAPITAL LETTER IOTA WITH VARIA*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+001fdb: GREEK CAPITAL LETTER IOTA WITH OXIA*/ + 0, /* U+001fdc: */ + 0, /* U+001fdd: GREEK DASIA AND VARIA*/ + 0, /* U+001fde: GREEK DASIA AND OXIA*/ + 0, /* U+001fdf: GREEK DASIA AND PERISPOMENI*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001fe0: GREEK SMALL LETTER UPSILON WITH VRACHY*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001fe1: GREEK SMALL LETTER UPSILON WITH MACRON*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001fe2: GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND VARIA*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001fe3: GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND OXIA*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001fe4: GREEK SMALL LETTER RHO WITH PSILI*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001fe5: GREEK SMALL LETTER RHO WITH DASIA*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001fe6: GREEK SMALL LETTER UPSILON WITH PERISPOMENI*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001fe7: GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND PERISPOMENI*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+001fe8: GREEK CAPITAL LETTER UPSILON WITH VRACHY*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+001fe9: GREEK CAPITAL LETTER UPSILON WITH MACRON*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+001fea: GREEK CAPITAL LETTER UPSILON WITH VARIA*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+001feb: GREEK CAPITAL LETTER UPSILON WITH OXIA*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+001fec: GREEK CAPITAL LETTER RHO WITH DASIA*/ + 0, /* U+001fed: GREEK DIALYTIKA AND VARIA*/ + 0, /* U+001fee: GREEK DIALYTIKA AND OXIA*/ + 0, /* U+001fef: GREEK VARIA*/ + 0, /* U+001ff0: */ + 0, /* U+001ff1: */ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001ff2: GREEK SMALL LETTER OMEGA WITH VARIA AND YPOGEGRAMMENI*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001ff3: GREEK SMALL LETTER OMEGA WITH YPOGEGRAMMENI*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001ff4: GREEK SMALL LETTER OMEGA WITH OXIA AND YPOGEGRAMMENI*/ + 0, /* U+001ff5: */ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001ff6: GREEK SMALL LETTER OMEGA WITH PERISPOMENI*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001ff7: GREEK SMALL LETTER OMEGA WITH PERISPOMENI AND YPOGEGRAMMENI*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+001ff8: GREEK CAPITAL LETTER OMICRON WITH VARIA*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+001ff9: GREEK CAPITAL LETTER OMICRON WITH OXIA*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+001ffa: GREEK CAPITAL LETTER OMEGA WITH VARIA*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+001ffb: GREEK CAPITAL LETTER OMEGA WITH OXIA*/ + RTUNI_ALPHA, /* U+001ffc: GREEK CAPITAL LETTER OMEGA WITH PROSGEGRAMMENI*/ + 0, /* U+001ffd: GREEK OXIA*/ + 0, /* U+001ffe: GREEK DASIA*/ + 0, /* U+001fff: */ + RTUNI_WSPACE, /* U+002000: EN QUAD*/ + RTUNI_WSPACE, /* U+002001: EM QUAD*/ + RTUNI_WSPACE, /* U+002002: EN SPACE*/ + RTUNI_WSPACE, /* U+002003: EM SPACE*/ + RTUNI_WSPACE, /* U+002004: THREE-PER-EM SPACE*/ + RTUNI_WSPACE, /* U+002005: FOUR-PER-EM SPACE*/ + RTUNI_WSPACE, /* U+002006: SIX-PER-EM SPACE*/ + RTUNI_WSPACE, /* U+002007: FIGURE SPACE*/ + RTUNI_WSPACE, /* U+002008: PUNCTUATION SPACE*/ + RTUNI_WSPACE, /* U+002009: THIN SPACE*/ + RTUNI_WSPACE, /* U+00200a: HAIR SPACE*/ + 0, /* U+00200b: ZERO WIDTH SPACE*/ + 0, /* U+00200c: ZERO WIDTH NON-JOINER*/ + 0, /* U+00200d: ZERO WIDTH JOINER*/ + 0, /* U+00200e: LEFT-TO-RIGHT MARK*/ + 0, /* U+00200f: RIGHT-TO-LEFT MARK*/ + 0, /* U+002010: HYPHEN*/ + 0, /* U+002011: NON-BREAKING HYPHEN*/ + 0, /* U+002012: FIGURE DASH*/ + 0, /* U+002013: EN DASH*/ + 0, /* U+002014: EM DASH*/ + 0, /* U+002015: HORIZONTAL BAR*/ + 0, /* U+002016: DOUBLE VERTICAL LINE*/ + 0, /* U+002017: DOUBLE LOW LINE*/ + 0, /* U+002018: LEFT SINGLE QUOTATION MARK*/ + 0, /* U+002019: RIGHT SINGLE QUOTATION MARK*/ + 0, /* U+00201a: SINGLE LOW-9 QUOTATION MARK*/ + 0, /* U+00201b: SINGLE HIGH-REVERSED-9 QUOTATION MARK*/ + 0, /* U+00201c: LEFT DOUBLE QUOTATION MARK*/ + 0, /* U+00201d: RIGHT DOUBLE QUOTATION MARK*/ + 0, /* U+00201e: DOUBLE LOW-9 QUOTATION MARK*/ + 0, /* U+00201f: DOUBLE HIGH-REVERSED-9 QUOTATION MARK*/ + 0, /* U+002020: DAGGER*/ + 0, /* U+002021: DOUBLE DAGGER*/ + 0, /* U+002022: BULLET*/ + 0, /* U+002023: TRIANGULAR BULLET*/ + 0, /* U+002024: ONE DOT LEADER*/ + 0, /* U+002025: TWO DOT LEADER*/ + 0, /* U+002026: HORIZONTAL ELLIPSIS*/ + 0, /* U+002027: HYPHENATION POINT*/ + RTUNI_WSPACE, /* U+002028: LINE SEPARATOR*/ + RTUNI_WSPACE, /* U+002029: PARAGRAPH SEPARATOR*/ + 0, /* U+00202a: LEFT-TO-RIGHT EMBEDDING*/ + 0, /* U+00202b: RIGHT-TO-LEFT EMBEDDING*/ + 0, /* U+00202c: POP DIRECTIONAL FORMATTING*/ + 0, /* U+00202d: LEFT-TO-RIGHT OVERRIDE*/ + 0, /* U+00202e: RIGHT-TO-LEFT OVERRIDE*/ + RTUNI_WSPACE, /* U+00202f: NARROW NO-BREAK SPACE*/ + 0, /* U+002030: PER MILLE SIGN*/ + 0, /* U+002031: PER TEN THOUSAND SIGN*/ + 0, /* U+002032: PRIME*/ + 0, /* U+002033: DOUBLE PRIME*/ + 0, /* U+002034: TRIPLE PRIME*/ + 0, /* U+002035: REVERSED PRIME*/ + 0, /* U+002036: REVERSED DOUBLE PRIME*/ + 0, /* U+002037: REVERSED TRIPLE PRIME*/ + 0, /* U+002038: CARET*/ + 0, /* U+002039: SINGLE LEFT-POINTING ANGLE QUOTATION MARK*/ + 0, /* U+00203a: SINGLE RIGHT-POINTING ANGLE QUOTATION MARK*/ + 0, /* U+00203b: REFERENCE MARK*/ + 0, /* U+00203c: DOUBLE EXCLAMATION MARK*/ + 0, /* U+00203d: INTERROBANG*/ + 0, /* U+00203e: OVERLINE*/ + 0, /* U+00203f: UNDERTIE*/ + 0, /* U+002040: CHARACTER TIE*/ + 0, /* U+002041: CARET INSERTION POINT*/ + 0, /* U+002042: ASTERISM*/ + 0, /* U+002043: HYPHEN BULLET*/ + 0, /* U+002044: FRACTION SLASH*/ + 0, /* U+002045: LEFT SQUARE BRACKET WITH QUILL*/ + 0, /* U+002046: RIGHT SQUARE BRACKET WITH QUILL*/ + 0, /* U+002047: DOUBLE QUESTION MARK*/ + 0, /* U+002048: QUESTION EXCLAMATION MARK*/ + 0, /* U+002049: EXCLAMATION QUESTION MARK*/ + 0, /* U+00204a: TIRONIAN SIGN ET*/ + 0, /* U+00204b: REVERSED PILCROW SIGN*/ + 0, /* U+00204c: BLACK LEFTWARDS BULLET*/ + 0, /* U+00204d: BLACK RIGHTWARDS BULLET*/ + 0, /* U+00204e: LOW ASTERISK*/ + 0, /* U+00204f: REVERSED SEMICOLON*/ + 0, /* U+002050: CLOSE UP*/ + 0, /* U+002051: TWO ASTERISKS ALIGNED VERTICALLY*/ + 0, /* U+002052: COMMERCIAL MINUS SIGN*/ + 0, /* U+002053: SWUNG DASH*/ + 0, /* U+002054: INVERTED UNDERTIE*/ + 0, /* U+002055: FLOWER PUNCTUATION MARK*/ + 0, /* U+002056: THREE DOT PUNCTUATION*/ + 0, /* U+002057: QUADRUPLE PRIME*/ + 0, /* U+002058: FOUR DOT PUNCTUATION*/ + 0, /* U+002059: FIVE DOT PUNCTUATION*/ + 0, /* U+00205a: TWO DOT PUNCTUATION*/ + 0, /* U+00205b: FOUR DOT MARK*/ + 0, /* U+00205c: DOTTED CROSS*/ + 0, /* U+00205d: TRICOLON*/ + 0, /* U+00205e: VERTICAL FOUR DOTS*/ + RTUNI_WSPACE, /* U+00205f: MEDIUM MATHEMATICAL SPACE*/ + 0, /* U+002060: WORD JOINER*/ + 0, /* U+002061: FUNCTION APPLICATION*/ + 0, /* U+002062: INVISIBLE TIMES*/ + 0, /* U+002063: INVISIBLE SEPARATOR*/ + 0, /* U+002064: INVISIBLE PLUS*/ + 0, /* U+002065: */ + 0, /* U+002066: LEFT-TO-RIGHT ISOLATE*/ + 0, /* U+002067: RIGHT-TO-LEFT ISOLATE*/ + 0, /* U+002068: FIRST STRONG ISOLATE*/ + 0, /* U+002069: POP DIRECTIONAL ISOLATE*/ + 0, /* U+00206a: INHIBIT SYMMETRIC SWAPPING*/ + 0, /* U+00206b: ACTIVATE SYMMETRIC SWAPPING*/ + 0, /* U+00206c: INHIBIT ARABIC FORM SHAPING*/ + 0, /* U+00206d: ACTIVATE ARABIC FORM SHAPING*/ + 0, /* U+00206e: NATIONAL DIGIT SHAPES*/ + 0, /* U+00206f: NOMINAL DIGIT SHAPES*/ + 0, /* U+002070: SUPERSCRIPT ZERO*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+002071: SUPERSCRIPT LATIN SMALL LETTER I*/ + 0, /* U+002072: */ + 0, /* U+002073: */ + 0, /* U+002074: SUPERSCRIPT FOUR*/ + 0, /* U+002075: SUPERSCRIPT FIVE*/ + 0, /* U+002076: SUPERSCRIPT SIX*/ + 0, /* U+002077: SUPERSCRIPT SEVEN*/ + 0, /* U+002078: SUPERSCRIPT EIGHT*/ + 0, /* U+002079: SUPERSCRIPT NINE*/ + 0, /* U+00207a: SUPERSCRIPT PLUS SIGN*/ + 0, /* U+00207b: SUPERSCRIPT MINUS*/ + 0, /* U+00207c: SUPERSCRIPT EQUALS SIGN*/ + 0, /* U+00207d: SUPERSCRIPT LEFT PARENTHESIS*/ + 0, /* U+00207e: SUPERSCRIPT RIGHT PARENTHESIS*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00207f: SUPERSCRIPT LATIN SMALL LETTER N*/ + 0, /* U+002080: SUBSCRIPT ZERO*/ + 0, /* U+002081: SUBSCRIPT ONE*/ + 0, /* U+002082: SUBSCRIPT TWO*/ + 0, /* U+002083: SUBSCRIPT THREE*/ + 0, /* U+002084: SUBSCRIPT FOUR*/ + 0, /* U+002085: SUBSCRIPT FIVE*/ + 0, /* U+002086: SUBSCRIPT SIX*/ + 0, /* U+002087: SUBSCRIPT SEVEN*/ + 0, /* U+002088: SUBSCRIPT EIGHT*/ + 0, /* U+002089: SUBSCRIPT NINE*/ + 0, /* U+00208a: SUBSCRIPT PLUS SIGN*/ + 0, /* U+00208b: SUBSCRIPT MINUS*/ + 0, /* U+00208c: SUBSCRIPT EQUALS SIGN*/ + 0, /* U+00208d: SUBSCRIPT LEFT PARENTHESIS*/ + 0, /* U+00208e: SUBSCRIPT RIGHT PARENTHESIS*/ + 0, /* U+00208f: */ + RTUNI_ALPHA | RTUNI_LOWER, /* U+002090: LATIN SUBSCRIPT SMALL LETTER A*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+002091: LATIN SUBSCRIPT SMALL LETTER E*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+002092: LATIN SUBSCRIPT SMALL LETTER O*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+002093: LATIN SUBSCRIPT SMALL LETTER X*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+002094: LATIN SUBSCRIPT SMALL LETTER SCHWA*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+002095: LATIN SUBSCRIPT SMALL LETTER H*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+002096: LATIN SUBSCRIPT SMALL LETTER K*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+002097: LATIN SUBSCRIPT SMALL LETTER L*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+002098: LATIN SUBSCRIPT SMALL LETTER M*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+002099: LATIN SUBSCRIPT SMALL LETTER N*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00209a: LATIN SUBSCRIPT SMALL LETTER P*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00209b: LATIN SUBSCRIPT SMALL LETTER S*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00209c: LATIN SUBSCRIPT SMALL LETTER T*/ + 0, /* U+00209d: */ + 0, /* U+00209e: */ + 0, /* U+00209f: */ + 0, /* U+0020a0: EURO-CURRENCY SIGN*/ + 0, /* U+0020a1: COLON SIGN*/ + 0, /* U+0020a2: CRUZEIRO SIGN*/ + 0, /* U+0020a3: FRENCH FRANC SIGN*/ + 0, /* U+0020a4: LIRA SIGN*/ + 0, /* U+0020a5: MILL SIGN*/ + 0, /* U+0020a6: NAIRA SIGN*/ + 0, /* U+0020a7: PESETA SIGN*/ + 0, /* U+0020a8: RUPEE SIGN*/ + 0, /* U+0020a9: WON SIGN*/ + 0, /* U+0020aa: NEW SHEQEL SIGN*/ + 0, /* U+0020ab: DONG SIGN*/ + 0, /* U+0020ac: EURO SIGN*/ + 0, /* U+0020ad: KIP SIGN*/ + 0, /* U+0020ae: TUGRIK SIGN*/ + 0, /* U+0020af: DRACHMA SIGN*/ + 0, /* U+0020b0: GERMAN PENNY SIGN*/ + 0, /* U+0020b1: PESO SIGN*/ + 0, /* U+0020b2: GUARANI SIGN*/ + 0, /* U+0020b3: AUSTRAL SIGN*/ + 0, /* U+0020b4: HRYVNIA SIGN*/ + 0, /* U+0020b5: CEDI SIGN*/ + 0, /* U+0020b6: LIVRE TOURNOIS SIGN*/ + 0, /* U+0020b7: SPESMILO SIGN*/ + 0, /* U+0020b8: TENGE SIGN*/ + 0, /* U+0020b9: INDIAN RUPEE SIGN*/ + 0, /* U+0020ba: TURKISH LIRA SIGN*/ + 0, /* U+0020bb: */ + 0, /* U+0020bc: */ + 0, /* U+0020bd: */ + 0, /* U+0020be: */ + 0, /* U+0020bf: */ + 0, /* U+0020c0: */ + 0, /* U+0020c1: */ + 0, /* U+0020c2: */ + 0, /* U+0020c3: */ + 0, /* U+0020c4: */ + 0, /* U+0020c5: */ + 0, /* U+0020c6: */ + 0, /* U+0020c7: */ + 0, /* U+0020c8: */ + 0, /* U+0020c9: */ + 0, /* U+0020ca: */ + 0, /* U+0020cb: */ + 0, /* U+0020cc: */ + 0, /* U+0020cd: */ + 0, /* U+0020ce: */ + 0, /* U+0020cf: */ + 0, /* U+0020d0: COMBINING LEFT HARPOON ABOVE*/ + 0, /* U+0020d1: COMBINING RIGHT HARPOON ABOVE*/ + 0, /* U+0020d2: COMBINING LONG VERTICAL LINE OVERLAY*/ + 0, /* U+0020d3: COMBINING SHORT VERTICAL LINE OVERLAY*/ + 0, /* U+0020d4: COMBINING ANTICLOCKWISE ARROW ABOVE*/ + 0, /* U+0020d5: COMBINING CLOCKWISE ARROW ABOVE*/ + 0, /* U+0020d6: COMBINING LEFT ARROW ABOVE*/ + 0, /* U+0020d7: COMBINING RIGHT ARROW ABOVE*/ + 0, /* U+0020d8: COMBINING RING OVERLAY*/ + 0, /* U+0020d9: COMBINING CLOCKWISE RING OVERLAY*/ + 0, /* U+0020da: COMBINING ANTICLOCKWISE RING OVERLAY*/ + 0, /* U+0020db: COMBINING THREE DOTS ABOVE*/ + 0, /* U+0020dc: COMBINING FOUR DOTS ABOVE*/ + 0, /* U+0020dd: COMBINING ENCLOSING CIRCLE*/ + 0, /* U+0020de: COMBINING ENCLOSING SQUARE*/ + 0, /* U+0020df: COMBINING ENCLOSING DIAMOND*/ + 0, /* U+0020e0: COMBINING ENCLOSING CIRCLE BACKSLASH*/ + 0, /* U+0020e1: COMBINING LEFT RIGHT ARROW ABOVE*/ + 0, /* U+0020e2: COMBINING ENCLOSING SCREEN*/ + 0, /* U+0020e3: COMBINING ENCLOSING KEYCAP*/ + 0, /* U+0020e4: COMBINING ENCLOSING UPWARD POINTING TRIANGLE*/ + 0, /* U+0020e5: COMBINING REVERSE SOLIDUS OVERLAY*/ + 0, /* U+0020e6: COMBINING DOUBLE VERTICAL STROKE OVERLAY*/ + 0, /* U+0020e7: COMBINING ANNUITY SYMBOL*/ + 0, /* U+0020e8: COMBINING TRIPLE UNDERDOT*/ + 0, /* U+0020e9: COMBINING WIDE BRIDGE ABOVE*/ + 0, /* U+0020ea: COMBINING LEFTWARDS ARROW OVERLAY*/ + 0, /* U+0020eb: COMBINING LONG DOUBLE SOLIDUS OVERLAY*/ + 0, /* U+0020ec: COMBINING RIGHTWARDS HARPOON WITH BARB DOWNWARDS*/ + 0, /* U+0020ed: COMBINING LEFTWARDS HARPOON WITH BARB DOWNWARDS*/ + 0, /* U+0020ee: COMBINING LEFT ARROW BELOW*/ + 0, /* U+0020ef: COMBINING RIGHT ARROW BELOW*/ + 0, /* U+0020f0: COMBINING ASTERISK ABOVE*/ + 0, /* U+0020f1: */ + 0, /* U+0020f2: */ + 0, /* U+0020f3: */ + 0, /* U+0020f4: */ + 0, /* U+0020f5: */ + 0, /* U+0020f6: */ + 0, /* U+0020f7: */ + 0, /* U+0020f8: */ + 0, /* U+0020f9: */ + 0, /* U+0020fa: */ + 0, /* U+0020fb: */ + 0, /* U+0020fc: */ + 0, /* U+0020fd: */ + 0, /* U+0020fe: */ + 0, /* U+0020ff: */ + 0, /* U+002100: ACCOUNT OF*/ + 0, /* U+002101: ADDRESSED TO THE SUBJECT*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+002102: DOUBLE-STRUCK CAPITAL C*/ + 0, /* U+002103: DEGREE CELSIUS*/ + 0, /* U+002104: CENTRE LINE SYMBOL*/ + 0, /* U+002105: CARE OF*/ + 0, /* U+002106: CADA UNA*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+002107: EULER CONSTANT*/ + 0, /* U+002108: SCRUPLE*/ + 0, /* U+002109: DEGREE FAHRENHEIT*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00210a: SCRIPT SMALL G*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+00210b: SCRIPT CAPITAL H*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+00210c: BLACK-LETTER CAPITAL H*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+00210d: DOUBLE-STRUCK CAPITAL H*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00210e: PLANCK CONSTANT*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00210f: PLANCK CONSTANT OVER TWO PI*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+002110: SCRIPT CAPITAL I*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+002111: BLACK-LETTER CAPITAL I*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+002112: SCRIPT CAPITAL L*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+002113: SCRIPT SMALL L*/ + 0, /* U+002114: L B BAR SYMBOL*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+002115: DOUBLE-STRUCK CAPITAL N*/ + 0, /* U+002116: NUMERO SIGN*/ + 0, /* U+002117: SOUND RECORDING COPYRIGHT*/ + 0, /* U+002118: SCRIPT CAPITAL P*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+002119: DOUBLE-STRUCK CAPITAL P*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+00211a: DOUBLE-STRUCK CAPITAL Q*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+00211b: SCRIPT CAPITAL R*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+00211c: BLACK-LETTER CAPITAL R*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+00211d: DOUBLE-STRUCK CAPITAL R*/ + 0, /* U+00211e: PRESCRIPTION TAKE*/ + 0, /* U+00211f: RESPONSE*/ + 0, /* U+002120: SERVICE MARK*/ + 0, /* U+002121: TELEPHONE SIGN*/ + 0, /* U+002122: TRADE MARK SIGN*/ + 0, /* U+002123: VERSICLE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+002124: DOUBLE-STRUCK CAPITAL Z*/ + 0, /* U+002125: OUNCE SIGN*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+002126: OHM SIGN*/ + 0, /* U+002127: INVERTED OHM SIGN*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+002128: BLACK-LETTER CAPITAL Z*/ + 0, /* U+002129: TURNED GREEK SMALL LETTER IOTA*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+00212a: KELVIN SIGN*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+00212b: ANGSTROM SIGN*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+00212c: SCRIPT CAPITAL B*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+00212d: BLACK-LETTER CAPITAL C*/ + 0, /* U+00212e: ESTIMATED SYMBOL*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00212f: SCRIPT SMALL E*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+002130: SCRIPT CAPITAL E*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+002131: SCRIPT CAPITAL F*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+002132: TURNED CAPITAL F*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+002133: SCRIPT CAPITAL M*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+002134: SCRIPT SMALL O*/ + RTUNI_ALPHA, /* U+002135: ALEF SYMBOL*/ + RTUNI_ALPHA, /* U+002136: BET SYMBOL*/ + RTUNI_ALPHA, /* U+002137: GIMEL SYMBOL*/ + RTUNI_ALPHA, /* U+002138: DALET SYMBOL*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+002139: INFORMATION SOURCE*/ + 0, /* U+00213a: ROTATED CAPITAL Q*/ + 0, /* U+00213b: FACSIMILE SIGN*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00213c: DOUBLE-STRUCK SMALL PI*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00213d: DOUBLE-STRUCK SMALL GAMMA*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+00213e: DOUBLE-STRUCK CAPITAL GAMMA*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+00213f: DOUBLE-STRUCK CAPITAL PI*/ + 0, /* U+002140: DOUBLE-STRUCK N-ARY SUMMATION*/ + 0, /* U+002141: TURNED SANS-SERIF CAPITAL G*/ + 0, /* U+002142: TURNED SANS-SERIF CAPITAL L*/ + 0, /* U+002143: REVERSED SANS-SERIF CAPITAL L*/ + 0, /* U+002144: TURNED SANS-SERIF CAPITAL Y*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+002145: DOUBLE-STRUCK ITALIC CAPITAL D*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+002146: DOUBLE-STRUCK ITALIC SMALL D*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+002147: DOUBLE-STRUCK ITALIC SMALL E*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+002148: DOUBLE-STRUCK ITALIC SMALL I*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+002149: DOUBLE-STRUCK ITALIC SMALL J*/ + 0, /* U+00214a: PROPERTY LINE*/ + 0, /* U+00214b: TURNED AMPERSAND*/ + 0, /* U+00214c: PER SIGN*/ + 0, /* U+00214d: AKTIESELSKAB*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00214e: TURNED SMALL F*/ + 0, /* U+00214f: SYMBOL FOR SAMARITAN SOURCE*/ + 0, /* U+002150: VULGAR FRACTION ONE SEVENTH*/ + 0, /* U+002151: VULGAR FRACTION ONE NINTH*/ + 0, /* U+002152: VULGAR FRACTION ONE TENTH*/ + 0, /* U+002153: VULGAR FRACTION ONE THIRD*/ + 0, /* U+002154: VULGAR FRACTION TWO THIRDS*/ + 0, /* U+002155: VULGAR FRACTION ONE FIFTH*/ + 0, /* U+002156: VULGAR FRACTION TWO FIFTHS*/ + 0, /* U+002157: VULGAR FRACTION THREE FIFTHS*/ + 0, /* U+002158: VULGAR FRACTION FOUR FIFTHS*/ + 0, /* U+002159: VULGAR FRACTION ONE SIXTH*/ + 0, /* U+00215a: VULGAR FRACTION FIVE SIXTHS*/ + 0, /* U+00215b: VULGAR FRACTION ONE EIGHTH*/ + 0, /* U+00215c: VULGAR FRACTION THREE EIGHTHS*/ + 0, /* U+00215d: VULGAR FRACTION FIVE EIGHTHS*/ + 0, /* U+00215e: VULGAR FRACTION SEVEN EIGHTHS*/ + 0, /* U+00215f: FRACTION NUMERATOR ONE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+002160: ROMAN NUMERAL ONE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+002161: ROMAN NUMERAL TWO*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+002162: ROMAN NUMERAL THREE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+002163: ROMAN NUMERAL FOUR*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+002164: ROMAN NUMERAL FIVE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+002165: ROMAN NUMERAL SIX*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+002166: ROMAN NUMERAL SEVEN*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+002167: ROMAN NUMERAL EIGHT*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+002168: ROMAN NUMERAL NINE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+002169: ROMAN NUMERAL TEN*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+00216a: ROMAN NUMERAL ELEVEN*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+00216b: ROMAN NUMERAL TWELVE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+00216c: ROMAN NUMERAL FIFTY*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+00216d: ROMAN NUMERAL ONE HUNDRED*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+00216e: ROMAN NUMERAL FIVE HUNDRED*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+00216f: ROMAN NUMERAL ONE THOUSAND*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+002170: SMALL ROMAN NUMERAL ONE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+002171: SMALL ROMAN NUMERAL TWO*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+002172: SMALL ROMAN NUMERAL THREE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+002173: SMALL ROMAN NUMERAL FOUR*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+002174: SMALL ROMAN NUMERAL FIVE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+002175: SMALL ROMAN NUMERAL SIX*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+002176: SMALL ROMAN NUMERAL SEVEN*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+002177: SMALL ROMAN NUMERAL EIGHT*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+002178: SMALL ROMAN NUMERAL NINE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+002179: SMALL ROMAN NUMERAL TEN*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00217a: SMALL ROMAN NUMERAL ELEVEN*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00217b: SMALL ROMAN NUMERAL TWELVE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00217c: SMALL ROMAN NUMERAL FIFTY*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00217d: SMALL ROMAN NUMERAL ONE HUNDRED*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00217e: SMALL ROMAN NUMERAL FIVE HUNDRED*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00217f: SMALL ROMAN NUMERAL ONE THOUSAND*/ + RTUNI_ALPHA, /* U+002180: ROMAN NUMERAL ONE THOUSAND C D*/ + RTUNI_ALPHA, /* U+002181: ROMAN NUMERAL FIVE THOUSAND*/ + RTUNI_ALPHA, /* U+002182: ROMAN NUMERAL TEN THOUSAND*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+002183: ROMAN NUMERAL REVERSED ONE HUNDRED*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+002184: LATIN SMALL LETTER REVERSED C*/ + RTUNI_ALPHA, /* U+002185: ROMAN NUMERAL SIX LATE FORM*/ + RTUNI_ALPHA, /* U+002186: ROMAN NUMERAL FIFTY EARLY FORM*/ + RTUNI_ALPHA, /* U+002187: ROMAN NUMERAL FIFTY THOUSAND*/ + RTUNI_ALPHA, /* U+002188: ROMAN NUMERAL ONE HUNDRED THOUSAND*/ + 0, /* U+002189: VULGAR FRACTION ZERO THIRDS*/ + 0, /* U+00218a: */ + 0, /* U+00218b: */ + 0, /* U+00218c: */ + 0, /* U+00218d: */ + 0, /* U+00218e: */ + 0, /* U+00218f: */ + 0, /* U+002190: LEFTWARDS ARROW*/ + 0, /* U+002191: UPWARDS ARROW*/ + 0, /* U+002192: RIGHTWARDS ARROW*/ + 0, /* U+002193: DOWNWARDS ARROW*/ + 0, /* U+002194: LEFT RIGHT ARROW*/ + 0, /* U+002195: UP DOWN ARROW*/ + 0, /* U+002196: NORTH WEST ARROW*/ + 0, /* U+002197: NORTH EAST ARROW*/ + 0, /* U+002198: SOUTH EAST ARROW*/ + 0, /* U+002199: SOUTH WEST ARROW*/ + 0, /* U+00219a: LEFTWARDS ARROW WITH STROKE*/ + 0, /* U+00219b: RIGHTWARDS ARROW WITH STROKE*/ + 0, /* U+00219c: LEFTWARDS WAVE ARROW*/ + 0, /* U+00219d: RIGHTWARDS WAVE ARROW*/ + 0, /* U+00219e: LEFTWARDS TWO HEADED ARROW*/ + 0, /* U+00219f: UPWARDS TWO HEADED ARROW*/ + 0, /* U+0021a0: RIGHTWARDS TWO HEADED ARROW*/ + 0, /* U+0021a1: DOWNWARDS TWO HEADED ARROW*/ + 0, /* U+0021a2: LEFTWARDS ARROW WITH TAIL*/ + 0, /* U+0021a3: RIGHTWARDS ARROW WITH TAIL*/ + 0, /* U+0021a4: LEFTWARDS ARROW FROM BAR*/ + 0, /* U+0021a5: UPWARDS ARROW FROM BAR*/ + 0, /* U+0021a6: RIGHTWARDS ARROW FROM BAR*/ + 0, /* U+0021a7: DOWNWARDS ARROW FROM BAR*/ + 0, /* U+0021a8: UP DOWN ARROW WITH BASE*/ + 0, /* U+0021a9: LEFTWARDS ARROW WITH HOOK*/ + 0, /* U+0021aa: RIGHTWARDS ARROW WITH HOOK*/ + 0, /* U+0021ab: LEFTWARDS ARROW WITH LOOP*/ + 0, /* U+0021ac: RIGHTWARDS ARROW WITH LOOP*/ + 0, /* U+0021ad: LEFT RIGHT WAVE ARROW*/ + 0, /* U+0021ae: LEFT RIGHT ARROW WITH STROKE*/ + 0, /* U+0021af: DOWNWARDS ZIGZAG ARROW*/ + 0, /* U+0021b0: UPWARDS ARROW WITH TIP LEFTWARDS*/ + 0, /* U+0021b1: UPWARDS ARROW WITH TIP RIGHTWARDS*/ + 0, /* U+0021b2: DOWNWARDS ARROW WITH TIP LEFTWARDS*/ + 0, /* U+0021b3: DOWNWARDS ARROW WITH TIP RIGHTWARDS*/ + 0, /* U+0021b4: RIGHTWARDS ARROW WITH CORNER DOWNWARDS*/ + 0, /* U+0021b5: DOWNWARDS ARROW WITH CORNER LEFTWARDS*/ + 0, /* U+0021b6: ANTICLOCKWISE TOP SEMICIRCLE ARROW*/ + 0, /* U+0021b7: CLOCKWISE TOP SEMICIRCLE ARROW*/ + 0, /* U+0021b8: NORTH WEST ARROW TO LONG BAR*/ + 0, /* U+0021b9: LEFTWARDS ARROW TO BAR OVER RIGHTWARDS ARROW TO BAR*/ + 0, /* U+0021ba: ANTICLOCKWISE OPEN CIRCLE ARROW*/ + 0, /* U+0021bb: CLOCKWISE OPEN CIRCLE ARROW*/ + 0, /* U+0021bc: LEFTWARDS HARPOON WITH BARB UPWARDS*/ + 0, /* U+0021bd: LEFTWARDS HARPOON WITH BARB DOWNWARDS*/ + 0, /* U+0021be: UPWARDS HARPOON WITH BARB RIGHTWARDS*/ + 0, /* U+0021bf: UPWARDS HARPOON WITH BARB LEFTWARDS*/ + 0, /* U+0021c0: RIGHTWARDS HARPOON WITH BARB UPWARDS*/ + 0, /* U+0021c1: RIGHTWARDS HARPOON WITH BARB DOWNWARDS*/ + 0, /* U+0021c2: DOWNWARDS HARPOON WITH BARB RIGHTWARDS*/ + 0, /* U+0021c3: DOWNWARDS HARPOON WITH BARB LEFTWARDS*/ + 0, /* U+0021c4: RIGHTWARDS ARROW OVER LEFTWARDS ARROW*/ + 0, /* U+0021c5: UPWARDS ARROW LEFTWARDS OF DOWNWARDS ARROW*/ + 0, /* U+0021c6: LEFTWARDS ARROW OVER RIGHTWARDS ARROW*/ + 0, /* U+0021c7: LEFTWARDS PAIRED ARROWS*/ + 0, /* U+0021c8: UPWARDS PAIRED ARROWS*/ + 0, /* U+0021c9: RIGHTWARDS PAIRED ARROWS*/ + 0, /* U+0021ca: DOWNWARDS PAIRED ARROWS*/ + 0, /* U+0021cb: LEFTWARDS HARPOON OVER RIGHTWARDS HARPOON*/ + 0, /* U+0021cc: RIGHTWARDS HARPOON OVER LEFTWARDS HARPOON*/ + 0, /* U+0021cd: LEFTWARDS DOUBLE ARROW WITH STROKE*/ + 0, /* U+0021ce: LEFT RIGHT DOUBLE ARROW WITH STROKE*/ + 0, /* U+0021cf: RIGHTWARDS DOUBLE ARROW WITH STROKE*/ + 0, /* U+0021d0: LEFTWARDS DOUBLE ARROW*/ + 0, /* U+0021d1: UPWARDS DOUBLE ARROW*/ + 0, /* U+0021d2: RIGHTWARDS DOUBLE ARROW*/ + 0, /* U+0021d3: DOWNWARDS DOUBLE ARROW*/ + 0, /* U+0021d4: LEFT RIGHT DOUBLE ARROW*/ + 0, /* U+0021d5: UP DOWN DOUBLE ARROW*/ + 0, /* U+0021d6: NORTH WEST DOUBLE ARROW*/ + 0, /* U+0021d7: NORTH EAST DOUBLE ARROW*/ + 0, /* U+0021d8: SOUTH EAST DOUBLE ARROW*/ + 0, /* U+0021d9: SOUTH WEST DOUBLE ARROW*/ + 0, /* U+0021da: LEFTWARDS TRIPLE ARROW*/ + 0, /* U+0021db: RIGHTWARDS TRIPLE ARROW*/ + 0, /* U+0021dc: LEFTWARDS SQUIGGLE ARROW*/ + 0, /* U+0021dd: RIGHTWARDS SQUIGGLE ARROW*/ + 0, /* U+0021de: UPWARDS ARROW WITH DOUBLE STROKE*/ + 0, /* U+0021df: DOWNWARDS ARROW WITH DOUBLE STROKE*/ + 0, /* U+0021e0: LEFTWARDS DASHED ARROW*/ + 0, /* U+0021e1: UPWARDS DASHED ARROW*/ + 0, /* U+0021e2: RIGHTWARDS DASHED ARROW*/ + 0, /* U+0021e3: DOWNWARDS DASHED ARROW*/ + 0, /* U+0021e4: LEFTWARDS ARROW TO BAR*/ + 0, /* U+0021e5: RIGHTWARDS ARROW TO BAR*/ + 0, /* U+0021e6: LEFTWARDS WHITE ARROW*/ + 0, /* U+0021e7: UPWARDS WHITE ARROW*/ + 0, /* U+0021e8: RIGHTWARDS WHITE ARROW*/ + 0, /* U+0021e9: DOWNWARDS WHITE ARROW*/ + 0, /* U+0021ea: UPWARDS WHITE ARROW FROM BAR*/ + 0, /* U+0021eb: UPWARDS WHITE ARROW ON PEDESTAL*/ + 0, /* U+0021ec: UPWARDS WHITE ARROW ON PEDESTAL WITH HORIZONTAL BAR*/ + 0, /* U+0021ed: UPWARDS WHITE ARROW ON PEDESTAL WITH VERTICAL BAR*/ + 0, /* U+0021ee: UPWARDS WHITE DOUBLE ARROW*/ + 0, /* U+0021ef: UPWARDS WHITE DOUBLE ARROW ON PEDESTAL*/ + 0, /* U+0021f0: RIGHTWARDS WHITE ARROW FROM WALL*/ + 0, /* U+0021f1: NORTH WEST ARROW TO CORNER*/ + 0, /* U+0021f2: SOUTH EAST ARROW TO CORNER*/ + 0, /* U+0021f3: UP DOWN WHITE ARROW*/ + 0, /* U+0021f4: RIGHT ARROW WITH SMALL CIRCLE*/ + 0, /* U+0021f5: DOWNWARDS ARROW LEFTWARDS OF UPWARDS ARROW*/ + 0, /* U+0021f6: THREE RIGHTWARDS ARROWS*/ + 0, /* U+0021f7: LEFTWARDS ARROW WITH VERTICAL STROKE*/ + 0, /* U+0021f8: RIGHTWARDS ARROW WITH VERTICAL STROKE*/ + 0, /* U+0021f9: LEFT RIGHT ARROW WITH VERTICAL STROKE*/ + 0, /* U+0021fa: LEFTWARDS ARROW WITH DOUBLE VERTICAL STROKE*/ + 0, /* U+0021fb: RIGHTWARDS ARROW WITH DOUBLE VERTICAL STROKE*/ + 0, /* U+0021fc: LEFT RIGHT ARROW WITH DOUBLE VERTICAL STROKE*/ + 0, /* U+0021fd: LEFTWARDS OPEN-HEADED ARROW*/ + 0, /* U+0021fe: RIGHTWARDS OPEN-HEADED ARROW*/ + 0, /* U+0021ff: LEFT RIGHT OPEN-HEADED ARROW*/ + 0, /* U+002200: FOR ALL*/ + 0, /* U+002201: COMPLEMENT*/ + 0, /* U+002202: PARTIAL DIFFERENTIAL*/ + 0, /* U+002203: THERE EXISTS*/ + 0, /* U+002204: THERE DOES NOT EXIST*/ + 0, /* U+002205: EMPTY SET*/ + 0, /* U+002206: INCREMENT*/ + 0, /* U+002207: NABLA*/ + 0, /* U+002208: ELEMENT OF*/ + 0, /* U+002209: NOT AN ELEMENT OF*/ + 0, /* U+00220a: SMALL ELEMENT OF*/ + 0, /* U+00220b: CONTAINS AS MEMBER*/ + 0, /* U+00220c: DOES NOT CONTAIN AS MEMBER*/ + 0, /* U+00220d: SMALL CONTAINS AS MEMBER*/ + 0, /* U+00220e: END OF PROOF*/ + 0, /* U+00220f: N-ARY PRODUCT*/ + 0, /* U+002210: N-ARY COPRODUCT*/ + 0, /* U+002211: N-ARY SUMMATION*/ + 0, /* U+002212: MINUS SIGN*/ + 0, /* U+002213: MINUS-OR-PLUS SIGN*/ + 0, /* U+002214: DOT PLUS*/ + 0, /* U+002215: DIVISION SLASH*/ + 0, /* U+002216: SET MINUS*/ + 0, /* U+002217: ASTERISK OPERATOR*/ + 0, /* U+002218: RING OPERATOR*/ + 0, /* U+002219: BULLET OPERATOR*/ + 0, /* U+00221a: SQUARE ROOT*/ + 0, /* U+00221b: CUBE ROOT*/ + 0, /* U+00221c: FOURTH ROOT*/ + 0, /* U+00221d: PROPORTIONAL TO*/ + 0, /* U+00221e: INFINITY*/ + 0, /* U+00221f: RIGHT ANGLE*/ + 0, /* U+002220: ANGLE*/ + 0, /* U+002221: MEASURED ANGLE*/ + 0, /* U+002222: SPHERICAL ANGLE*/ + 0, /* U+002223: DIVIDES*/ + 0, /* U+002224: DOES NOT DIVIDE*/ + 0, /* U+002225: PARALLEL TO*/ + 0, /* U+002226: NOT PARALLEL TO*/ + 0, /* U+002227: LOGICAL AND*/ + 0, /* U+002228: LOGICAL OR*/ + 0, /* U+002229: INTERSECTION*/ + 0, /* U+00222a: UNION*/ + 0, /* U+00222b: INTEGRAL*/ + 0, /* U+00222c: DOUBLE INTEGRAL*/ + 0, /* U+00222d: TRIPLE INTEGRAL*/ + 0, /* U+00222e: CONTOUR INTEGRAL*/ + 0, /* U+00222f: SURFACE INTEGRAL*/ + 0, /* U+002230: VOLUME INTEGRAL*/ + 0, /* U+002231: CLOCKWISE INTEGRAL*/ + 0, /* U+002232: CLOCKWISE CONTOUR INTEGRAL*/ + 0, /* U+002233: ANTICLOCKWISE CONTOUR INTEGRAL*/ + 0, /* U+002234: THEREFORE*/ + 0, /* U+002235: BECAUSE*/ + 0, /* U+002236: RATIO*/ + 0, /* U+002237: PROPORTION*/ + 0, /* U+002238: DOT MINUS*/ + 0, /* U+002239: EXCESS*/ + 0, /* U+00223a: GEOMETRIC PROPORTION*/ + 0, /* U+00223b: HOMOTHETIC*/ + 0, /* U+00223c: TILDE OPERATOR*/ + 0, /* U+00223d: REVERSED TILDE*/ + 0, /* U+00223e: INVERTED LAZY S*/ + 0, /* U+00223f: SINE WAVE*/ + 0, /* U+002240: WREATH PRODUCT*/ + 0, /* U+002241: NOT TILDE*/ + 0, /* U+002242: MINUS TILDE*/ + 0, /* U+002243: ASYMPTOTICALLY EQUAL TO*/ + 0, /* U+002244: NOT ASYMPTOTICALLY EQUAL TO*/ + 0, /* U+002245: APPROXIMATELY EQUAL TO*/ + 0, /* U+002246: APPROXIMATELY BUT NOT ACTUALLY EQUAL TO*/ + 0, /* U+002247: NEITHER APPROXIMATELY NOR ACTUALLY EQUAL TO*/ + 0, /* U+002248: ALMOST EQUAL TO*/ + 0, /* U+002249: NOT ALMOST EQUAL TO*/ + 0, /* U+00224a: ALMOST EQUAL OR EQUAL TO*/ + 0, /* U+00224b: TRIPLE TILDE*/ + 0, /* U+00224c: ALL EQUAL TO*/ + 0, /* U+00224d: EQUIVALENT TO*/ + 0, /* U+00224e: GEOMETRICALLY EQUIVALENT TO*/ + 0, /* U+00224f: DIFFERENCE BETWEEN*/ + 0, /* U+002250: APPROACHES THE LIMIT*/ + 0, /* U+002251: GEOMETRICALLY EQUAL TO*/ + 0, /* U+002252: APPROXIMATELY EQUAL TO OR THE IMAGE OF*/ + 0, /* U+002253: IMAGE OF OR APPROXIMATELY EQUAL TO*/ + 0, /* U+002254: COLON EQUALS*/ + 0, /* U+002255: EQUALS COLON*/ + 0, /* U+002256: RING IN EQUAL TO*/ + 0, /* U+002257: RING EQUAL TO*/ + 0, /* U+002258: CORRESPONDS TO*/ + 0, /* U+002259: ESTIMATES*/ + 0, /* U+00225a: EQUIANGULAR TO*/ + 0, /* U+00225b: STAR EQUALS*/ + 0, /* U+00225c: DELTA EQUAL TO*/ + 0, /* U+00225d: EQUAL TO BY DEFINITION*/ + 0, /* U+00225e: MEASURED BY*/ + 0, /* U+00225f: QUESTIONED EQUAL TO*/ + 0, /* U+002260: NOT EQUAL TO*/ + 0, /* U+002261: IDENTICAL TO*/ + 0, /* U+002262: NOT IDENTICAL TO*/ + 0, /* U+002263: STRICTLY EQUIVALENT TO*/ + 0, /* U+002264: LESS-THAN OR EQUAL TO*/ + 0, /* U+002265: GREATER-THAN OR EQUAL TO*/ + 0, /* U+002266: LESS-THAN OVER EQUAL TO*/ + 0, /* U+002267: GREATER-THAN OVER EQUAL TO*/ + 0, /* U+002268: LESS-THAN BUT NOT EQUAL TO*/ + 0, /* U+002269: GREATER-THAN BUT NOT EQUAL TO*/ + 0, /* U+00226a: MUCH LESS-THAN*/ + 0, /* U+00226b: MUCH GREATER-THAN*/ + 0, /* U+00226c: BETWEEN*/ + 0, /* U+00226d: NOT EQUIVALENT TO*/ + 0, /* U+00226e: NOT LESS-THAN*/ + 0, /* U+00226f: NOT GREATER-THAN*/ + 0, /* U+002270: NEITHER LESS-THAN NOR EQUAL TO*/ + 0, /* U+002271: NEITHER GREATER-THAN NOR EQUAL TO*/ + 0, /* U+002272: LESS-THAN OR EQUIVALENT TO*/ + 0, /* U+002273: GREATER-THAN OR EQUIVALENT TO*/ + 0, /* U+002274: NEITHER LESS-THAN NOR EQUIVALENT TO*/ + 0, /* U+002275: NEITHER GREATER-THAN NOR EQUIVALENT TO*/ + 0, /* U+002276: LESS-THAN OR GREATER-THAN*/ + 0, /* U+002277: GREATER-THAN OR LESS-THAN*/ + 0, /* U+002278: NEITHER LESS-THAN NOR GREATER-THAN*/ + 0, /* U+002279: NEITHER GREATER-THAN NOR LESS-THAN*/ + 0, /* U+00227a: PRECEDES*/ + 0, /* U+00227b: SUCCEEDS*/ + 0, /* U+00227c: PRECEDES OR EQUAL TO*/ + 0, /* U+00227d: SUCCEEDS OR EQUAL TO*/ + 0, /* U+00227e: PRECEDES OR EQUIVALENT TO*/ + 0, /* U+00227f: SUCCEEDS OR EQUIVALENT TO*/ + 0, /* U+002280: DOES NOT PRECEDE*/ + 0, /* U+002281: DOES NOT SUCCEED*/ + 0, /* U+002282: SUBSET OF*/ + 0, /* U+002283: SUPERSET OF*/ + 0, /* U+002284: NOT A SUBSET OF*/ + 0, /* U+002285: NOT A SUPERSET OF*/ + 0, /* U+002286: SUBSET OF OR EQUAL TO*/ + 0, /* U+002287: SUPERSET OF OR EQUAL TO*/ + 0, /* U+002288: NEITHER A SUBSET OF NOR EQUAL TO*/ + 0, /* U+002289: NEITHER A SUPERSET OF NOR EQUAL TO*/ + 0, /* U+00228a: SUBSET OF WITH NOT EQUAL TO*/ + 0, /* U+00228b: SUPERSET OF WITH NOT EQUAL TO*/ + 0, /* U+00228c: MULTISET*/ + 0, /* U+00228d: MULTISET MULTIPLICATION*/ + 0, /* U+00228e: MULTISET UNION*/ + 0, /* U+00228f: SQUARE IMAGE OF*/ + 0, /* U+002290: SQUARE ORIGINAL OF*/ + 0, /* U+002291: SQUARE IMAGE OF OR EQUAL TO*/ + 0, /* U+002292: SQUARE ORIGINAL OF OR EQUAL TO*/ + 0, /* U+002293: SQUARE CAP*/ + 0, /* U+002294: SQUARE CUP*/ + 0, /* U+002295: CIRCLED PLUS*/ + 0, /* U+002296: CIRCLED MINUS*/ + 0, /* U+002297: CIRCLED TIMES*/ + 0, /* U+002298: CIRCLED DIVISION SLASH*/ + 0, /* U+002299: CIRCLED DOT OPERATOR*/ + 0, /* U+00229a: CIRCLED RING OPERATOR*/ + 0, /* U+00229b: CIRCLED ASTERISK OPERATOR*/ + 0, /* U+00229c: CIRCLED EQUALS*/ + 0, /* U+00229d: CIRCLED DASH*/ + 0, /* U+00229e: SQUARED PLUS*/ + 0, /* U+00229f: SQUARED MINUS*/ + 0, /* U+0022a0: SQUARED TIMES*/ + 0, /* U+0022a1: SQUARED DOT OPERATOR*/ + 0, /* U+0022a2: RIGHT TACK*/ + 0, /* U+0022a3: LEFT TACK*/ + 0, /* U+0022a4: DOWN TACK*/ + 0, /* U+0022a5: UP TACK*/ + 0, /* U+0022a6: ASSERTION*/ + 0, /* U+0022a7: MODELS*/ + 0, /* U+0022a8: TRUE*/ + 0, /* U+0022a9: FORCES*/ + 0, /* U+0022aa: TRIPLE VERTICAL BAR RIGHT TURNSTILE*/ + 0, /* U+0022ab: DOUBLE VERTICAL BAR DOUBLE RIGHT TURNSTILE*/ + 0, /* U+0022ac: DOES NOT PROVE*/ + 0, /* U+0022ad: NOT TRUE*/ + 0, /* U+0022ae: DOES NOT FORCE*/ + 0, /* U+0022af: NEGATED DOUBLE VERTICAL BAR DOUBLE RIGHT TURNSTILE*/ + 0, /* U+0022b0: PRECEDES UNDER RELATION*/ + 0, /* U+0022b1: SUCCEEDS UNDER RELATION*/ + 0, /* U+0022b2: NORMAL SUBGROUP OF*/ + 0, /* U+0022b3: CONTAINS AS NORMAL SUBGROUP*/ + 0, /* U+0022b4: NORMAL SUBGROUP OF OR EQUAL TO*/ + 0, /* U+0022b5: CONTAINS AS NORMAL SUBGROUP OR EQUAL TO*/ + 0, /* U+0022b6: ORIGINAL OF*/ + 0, /* U+0022b7: IMAGE OF*/ + 0, /* U+0022b8: MULTIMAP*/ + 0, /* U+0022b9: HERMITIAN CONJUGATE MATRIX*/ + 0, /* U+0022ba: INTERCALATE*/ + 0, /* U+0022bb: XOR*/ + 0, /* U+0022bc: NAND*/ + 0, /* U+0022bd: NOR*/ + 0, /* U+0022be: RIGHT ANGLE WITH ARC*/ + 0, /* U+0022bf: RIGHT TRIANGLE*/ + 0, /* U+0022c0: N-ARY LOGICAL AND*/ + 0, /* U+0022c1: N-ARY LOGICAL OR*/ + 0, /* U+0022c2: N-ARY INTERSECTION*/ + 0, /* U+0022c3: N-ARY UNION*/ + 0, /* U+0022c4: DIAMOND OPERATOR*/ + 0, /* U+0022c5: DOT OPERATOR*/ + 0, /* U+0022c6: STAR OPERATOR*/ + 0, /* U+0022c7: DIVISION TIMES*/ + 0, /* U+0022c8: BOWTIE*/ + 0, /* U+0022c9: LEFT NORMAL FACTOR SEMIDIRECT PRODUCT*/ + 0, /* U+0022ca: RIGHT NORMAL FACTOR SEMIDIRECT PRODUCT*/ + 0, /* U+0022cb: LEFT SEMIDIRECT PRODUCT*/ + 0, /* U+0022cc: RIGHT SEMIDIRECT PRODUCT*/ + 0, /* U+0022cd: REVERSED TILDE EQUALS*/ + 0, /* U+0022ce: CURLY LOGICAL OR*/ + 0, /* U+0022cf: CURLY LOGICAL AND*/ + 0, /* U+0022d0: DOUBLE SUBSET*/ + 0, /* U+0022d1: DOUBLE SUPERSET*/ + 0, /* U+0022d2: DOUBLE INTERSECTION*/ + 0, /* U+0022d3: DOUBLE UNION*/ + 0, /* U+0022d4: PITCHFORK*/ + 0, /* U+0022d5: EQUAL AND PARALLEL TO*/ + 0, /* U+0022d6: LESS-THAN WITH DOT*/ + 0, /* U+0022d7: GREATER-THAN WITH DOT*/ + 0, /* U+0022d8: VERY MUCH LESS-THAN*/ + 0, /* U+0022d9: VERY MUCH GREATER-THAN*/ + 0, /* U+0022da: LESS-THAN EQUAL TO OR GREATER-THAN*/ + 0, /* U+0022db: GREATER-THAN EQUAL TO OR LESS-THAN*/ + 0, /* U+0022dc: EQUAL TO OR LESS-THAN*/ + 0, /* U+0022dd: EQUAL TO OR GREATER-THAN*/ + 0, /* U+0022de: EQUAL TO OR PRECEDES*/ + 0, /* U+0022df: EQUAL TO OR SUCCEEDS*/ + 0, /* U+0022e0: DOES NOT PRECEDE OR EQUAL*/ + 0, /* U+0022e1: DOES NOT SUCCEED OR EQUAL*/ + 0, /* U+0022e2: NOT SQUARE IMAGE OF OR EQUAL TO*/ + 0, /* U+0022e3: NOT SQUARE ORIGINAL OF OR EQUAL TO*/ + 0, /* U+0022e4: SQUARE IMAGE OF OR NOT EQUAL TO*/ + 0, /* U+0022e5: SQUARE ORIGINAL OF OR NOT EQUAL TO*/ + 0, /* U+0022e6: LESS-THAN BUT NOT EQUIVALENT TO*/ + 0, /* U+0022e7: GREATER-THAN BUT NOT EQUIVALENT TO*/ + 0, /* U+0022e8: PRECEDES BUT NOT EQUIVALENT TO*/ + 0, /* U+0022e9: SUCCEEDS BUT NOT EQUIVALENT TO*/ + 0, /* U+0022ea: NOT NORMAL SUBGROUP OF*/ + 0, /* U+0022eb: DOES NOT CONTAIN AS NORMAL SUBGROUP*/ + 0, /* U+0022ec: NOT NORMAL SUBGROUP OF OR EQUAL TO*/ + 0, /* U+0022ed: DOES NOT CONTAIN AS NORMAL SUBGROUP OR EQUAL*/ + 0, /* U+0022ee: VERTICAL ELLIPSIS*/ + 0, /* U+0022ef: MIDLINE HORIZONTAL ELLIPSIS*/ + 0, /* U+0022f0: UP RIGHT DIAGONAL ELLIPSIS*/ + 0, /* U+0022f1: DOWN RIGHT DIAGONAL ELLIPSIS*/ + 0, /* U+0022f2: ELEMENT OF WITH LONG HORIZONTAL STROKE*/ + 0, /* U+0022f3: ELEMENT OF WITH VERTICAL BAR AT END OF HORIZONTAL STROKE*/ + 0, /* U+0022f4: SMALL ELEMENT OF WITH VERTICAL BAR AT END OF HORIZONTAL STROKE*/ + 0, /* U+0022f5: ELEMENT OF WITH DOT ABOVE*/ + 0, /* U+0022f6: ELEMENT OF WITH OVERBAR*/ + 0, /* U+0022f7: SMALL ELEMENT OF WITH OVERBAR*/ + 0, /* U+0022f8: ELEMENT OF WITH UNDERBAR*/ + 0, /* U+0022f9: ELEMENT OF WITH TWO HORIZONTAL STROKES*/ + 0, /* U+0022fa: CONTAINS WITH LONG HORIZONTAL STROKE*/ + 0, /* U+0022fb: CONTAINS WITH VERTICAL BAR AT END OF HORIZONTAL STROKE*/ + 0, /* U+0022fc: SMALL CONTAINS WITH VERTICAL BAR AT END OF HORIZONTAL STROKE*/ + 0, /* U+0022fd: CONTAINS WITH OVERBAR*/ + 0, /* U+0022fe: SMALL CONTAINS WITH OVERBAR*/ + 0, /* U+0022ff: Z NOTATION BAG MEMBERSHIP*/ + 0, /* U+002300: DIAMETER SIGN*/ + 0, /* U+002301: ELECTRIC ARROW*/ + 0, /* U+002302: HOUSE*/ + 0, /* U+002303: UP ARROWHEAD*/ + 0, /* U+002304: DOWN ARROWHEAD*/ + 0, /* U+002305: PROJECTIVE*/ + 0, /* U+002306: PERSPECTIVE*/ + 0, /* U+002307: WAVY LINE*/ + 0, /* U+002308: LEFT CEILING*/ + 0, /* U+002309: RIGHT CEILING*/ + 0, /* U+00230a: LEFT FLOOR*/ + 0, /* U+00230b: RIGHT FLOOR*/ + 0, /* U+00230c: BOTTOM RIGHT CROP*/ + 0, /* U+00230d: BOTTOM LEFT CROP*/ + 0, /* U+00230e: TOP RIGHT CROP*/ + 0, /* U+00230f: TOP LEFT CROP*/ + 0, /* U+002310: REVERSED NOT SIGN*/ + 0, /* U+002311: SQUARE LOZENGE*/ + 0, /* U+002312: ARC*/ + 0, /* U+002313: SEGMENT*/ + 0, /* U+002314: SECTOR*/ + 0, /* U+002315: TELEPHONE RECORDER*/ + 0, /* U+002316: POSITION INDICATOR*/ + 0, /* U+002317: VIEWDATA SQUARE*/ + 0, /* U+002318: PLACE OF INTEREST SIGN*/ + 0, /* U+002319: TURNED NOT SIGN*/ + 0, /* U+00231a: WATCH*/ + 0, /* U+00231b: HOURGLASS*/ + 0, /* U+00231c: TOP LEFT CORNER*/ + 0, /* U+00231d: TOP RIGHT CORNER*/ + 0, /* U+00231e: BOTTOM LEFT CORNER*/ + 0, /* U+00231f: BOTTOM RIGHT CORNER*/ + 0, /* U+002320: TOP HALF INTEGRAL*/ + 0, /* U+002321: BOTTOM HALF INTEGRAL*/ + 0, /* U+002322: FROWN*/ + 0, /* U+002323: SMILE*/ + 0, /* U+002324: UP ARROWHEAD BETWEEN TWO HORIZONTAL BARS*/ + 0, /* U+002325: OPTION KEY*/ + 0, /* U+002326: ERASE TO THE RIGHT*/ + 0, /* U+002327: X IN A RECTANGLE BOX*/ + 0, /* U+002328: KEYBOARD*/ + 0, /* U+002329: LEFT-POINTING ANGLE BRACKET*/ + 0, /* U+00232a: RIGHT-POINTING ANGLE BRACKET*/ + 0, /* U+00232b: ERASE TO THE LEFT*/ + 0, /* U+00232c: BENZENE RING*/ + 0, /* U+00232d: CYLINDRICITY*/ + 0, /* U+00232e: ALL AROUND-PROFILE*/ + 0, /* U+00232f: SYMMETRY*/ + 0, /* U+002330: TOTAL RUNOUT*/ + 0, /* U+002331: DIMENSION ORIGIN*/ + 0, /* U+002332: CONICAL TAPER*/ + 0, /* U+002333: SLOPE*/ + 0, /* U+002334: COUNTERBORE*/ + 0, /* U+002335: COUNTERSINK*/ + 0, /* U+002336: APL FUNCTIONAL SYMBOL I-BEAM*/ + 0, /* U+002337: APL FUNCTIONAL SYMBOL SQUISH QUAD*/ + 0, /* U+002338: APL FUNCTIONAL SYMBOL QUAD EQUAL*/ + 0, /* U+002339: APL FUNCTIONAL SYMBOL QUAD DIVIDE*/ + 0, /* U+00233a: APL FUNCTIONAL SYMBOL QUAD DIAMOND*/ + 0, /* U+00233b: APL FUNCTIONAL SYMBOL QUAD JOT*/ + 0, /* U+00233c: APL FUNCTIONAL SYMBOL QUAD CIRCLE*/ + 0, /* U+00233d: APL FUNCTIONAL SYMBOL CIRCLE STILE*/ + 0, /* U+00233e: APL FUNCTIONAL SYMBOL CIRCLE JOT*/ + 0, /* U+00233f: APL FUNCTIONAL SYMBOL SLASH BAR*/ + 0, /* U+002340: APL FUNCTIONAL SYMBOL BACKSLASH BAR*/ + 0, /* U+002341: APL FUNCTIONAL SYMBOL QUAD SLASH*/ + 0, /* U+002342: APL FUNCTIONAL SYMBOL QUAD BACKSLASH*/ + 0, /* U+002343: APL FUNCTIONAL SYMBOL QUAD LESS-THAN*/ + 0, /* U+002344: APL FUNCTIONAL SYMBOL QUAD GREATER-THAN*/ + 0, /* U+002345: APL FUNCTIONAL SYMBOL LEFTWARDS VANE*/ + 0, /* U+002346: APL FUNCTIONAL SYMBOL RIGHTWARDS VANE*/ + 0, /* U+002347: APL FUNCTIONAL SYMBOL QUAD LEFTWARDS ARROW*/ + 0, /* U+002348: APL FUNCTIONAL SYMBOL QUAD RIGHTWARDS ARROW*/ + 0, /* U+002349: APL FUNCTIONAL SYMBOL CIRCLE BACKSLASH*/ + 0, /* U+00234a: APL FUNCTIONAL SYMBOL DOWN TACK UNDERBAR*/ + 0, /* U+00234b: APL FUNCTIONAL SYMBOL DELTA STILE*/ + 0, /* U+00234c: APL FUNCTIONAL SYMBOL QUAD DOWN CARET*/ + 0, /* U+00234d: APL FUNCTIONAL SYMBOL QUAD DELTA*/ + 0, /* U+00234e: APL FUNCTIONAL SYMBOL DOWN TACK JOT*/ + 0, /* U+00234f: APL FUNCTIONAL SYMBOL UPWARDS VANE*/ + 0, /* U+002350: APL FUNCTIONAL SYMBOL QUAD UPWARDS ARROW*/ + 0, /* U+002351: APL FUNCTIONAL SYMBOL UP TACK OVERBAR*/ + 0, /* U+002352: APL FUNCTIONAL SYMBOL DEL STILE*/ + 0, /* U+002353: APL FUNCTIONAL SYMBOL QUAD UP CARET*/ + 0, /* U+002354: APL FUNCTIONAL SYMBOL QUAD DEL*/ + 0, /* U+002355: APL FUNCTIONAL SYMBOL UP TACK JOT*/ + 0, /* U+002356: APL FUNCTIONAL SYMBOL DOWNWARDS VANE*/ + 0, /* U+002357: APL FUNCTIONAL SYMBOL QUAD DOWNWARDS ARROW*/ + 0, /* U+002358: APL FUNCTIONAL SYMBOL QUOTE UNDERBAR*/ + 0, /* U+002359: APL FUNCTIONAL SYMBOL DELTA UNDERBAR*/ + 0, /* U+00235a: APL FUNCTIONAL SYMBOL DIAMOND UNDERBAR*/ + 0, /* U+00235b: APL FUNCTIONAL SYMBOL JOT UNDERBAR*/ + 0, /* U+00235c: APL FUNCTIONAL SYMBOL CIRCLE UNDERBAR*/ + 0, /* U+00235d: APL FUNCTIONAL SYMBOL UP SHOE JOT*/ + 0, /* U+00235e: APL FUNCTIONAL SYMBOL QUOTE QUAD*/ + 0, /* U+00235f: APL FUNCTIONAL SYMBOL CIRCLE STAR*/ + 0, /* U+002360: APL FUNCTIONAL SYMBOL QUAD COLON*/ + 0, /* U+002361: APL FUNCTIONAL SYMBOL UP TACK DIAERESIS*/ + 0, /* U+002362: APL FUNCTIONAL SYMBOL DEL DIAERESIS*/ + 0, /* U+002363: APL FUNCTIONAL SYMBOL STAR DIAERESIS*/ + 0, /* U+002364: APL FUNCTIONAL SYMBOL JOT DIAERESIS*/ + 0, /* U+002365: APL FUNCTIONAL SYMBOL CIRCLE DIAERESIS*/ + 0, /* U+002366: APL FUNCTIONAL SYMBOL DOWN SHOE STILE*/ + 0, /* U+002367: APL FUNCTIONAL SYMBOL LEFT SHOE STILE*/ + 0, /* U+002368: APL FUNCTIONAL SYMBOL TILDE DIAERESIS*/ + 0, /* U+002369: APL FUNCTIONAL SYMBOL GREATER-THAN DIAERESIS*/ + 0, /* U+00236a: APL FUNCTIONAL SYMBOL COMMA BAR*/ + 0, /* U+00236b: APL FUNCTIONAL SYMBOL DEL TILDE*/ + 0, /* U+00236c: APL FUNCTIONAL SYMBOL ZILDE*/ + 0, /* U+00236d: APL FUNCTIONAL SYMBOL STILE TILDE*/ + 0, /* U+00236e: APL FUNCTIONAL SYMBOL SEMICOLON UNDERBAR*/ + 0, /* U+00236f: APL FUNCTIONAL SYMBOL QUAD NOT EQUAL*/ + 0, /* U+002370: APL FUNCTIONAL SYMBOL QUAD QUESTION*/ + 0, /* U+002371: APL FUNCTIONAL SYMBOL DOWN CARET TILDE*/ + 0, /* U+002372: APL FUNCTIONAL SYMBOL UP CARET TILDE*/ + 0, /* U+002373: APL FUNCTIONAL SYMBOL IOTA*/ + 0, /* U+002374: APL FUNCTIONAL SYMBOL RHO*/ + 0, /* U+002375: APL FUNCTIONAL SYMBOL OMEGA*/ + 0, /* U+002376: APL FUNCTIONAL SYMBOL ALPHA UNDERBAR*/ + 0, /* U+002377: APL FUNCTIONAL SYMBOL EPSILON UNDERBAR*/ + 0, /* U+002378: APL FUNCTIONAL SYMBOL IOTA UNDERBAR*/ + 0, /* U+002379: APL FUNCTIONAL SYMBOL OMEGA UNDERBAR*/ + 0, /* U+00237a: APL FUNCTIONAL SYMBOL ALPHA*/ + 0, /* U+00237b: NOT CHECK MARK*/ + 0, /* U+00237c: RIGHT ANGLE WITH DOWNWARDS ZIGZAG ARROW*/ + 0, /* U+00237d: SHOULDERED OPEN BOX*/ + 0, /* U+00237e: BELL SYMBOL*/ + 0, /* U+00237f: VERTICAL LINE WITH MIDDLE DOT*/ + 0, /* U+002380: INSERTION SYMBOL*/ + 0, /* U+002381: CONTINUOUS UNDERLINE SYMBOL*/ + 0, /* U+002382: DISCONTINUOUS UNDERLINE SYMBOL*/ + 0, /* U+002383: EMPHASIS SYMBOL*/ + 0, /* U+002384: COMPOSITION SYMBOL*/ + 0, /* U+002385: WHITE SQUARE WITH CENTRE VERTICAL LINE*/ + 0, /* U+002386: ENTER SYMBOL*/ + 0, /* U+002387: ALTERNATIVE KEY SYMBOL*/ + 0, /* U+002388: HELM SYMBOL*/ + 0, /* U+002389: CIRCLED HORIZONTAL BAR WITH NOTCH*/ + 0, /* U+00238a: CIRCLED TRIANGLE DOWN*/ + 0, /* U+00238b: BROKEN CIRCLE WITH NORTHWEST ARROW*/ + 0, /* U+00238c: UNDO SYMBOL*/ + 0, /* U+00238d: MONOSTABLE SYMBOL*/ + 0, /* U+00238e: HYSTERESIS SYMBOL*/ + 0, /* U+00238f: OPEN-CIRCUIT-OUTPUT H-TYPE SYMBOL*/ + 0, /* U+002390: OPEN-CIRCUIT-OUTPUT L-TYPE SYMBOL*/ + 0, /* U+002391: PASSIVE-PULL-DOWN-OUTPUT SYMBOL*/ + 0, /* U+002392: PASSIVE-PULL-UP-OUTPUT SYMBOL*/ + 0, /* U+002393: DIRECT CURRENT SYMBOL FORM TWO*/ + 0, /* U+002394: SOFTWARE-FUNCTION SYMBOL*/ + 0, /* U+002395: APL FUNCTIONAL SYMBOL QUAD*/ + 0, /* U+002396: DECIMAL SEPARATOR KEY SYMBOL*/ + 0, /* U+002397: PREVIOUS PAGE*/ + 0, /* U+002398: NEXT PAGE*/ + 0, /* U+002399: PRINT SCREEN SYMBOL*/ + 0, /* U+00239a: CLEAR SCREEN SYMBOL*/ + 0, /* U+00239b: LEFT PARENTHESIS UPPER HOOK*/ + 0, /* U+00239c: LEFT PARENTHESIS EXTENSION*/ + 0, /* U+00239d: LEFT PARENTHESIS LOWER HOOK*/ + 0, /* U+00239e: RIGHT PARENTHESIS UPPER HOOK*/ + 0, /* U+00239f: RIGHT PARENTHESIS EXTENSION*/ + 0, /* U+0023a0: RIGHT PARENTHESIS LOWER HOOK*/ + 0, /* U+0023a1: LEFT SQUARE BRACKET UPPER CORNER*/ + 0, /* U+0023a2: LEFT SQUARE BRACKET EXTENSION*/ + 0, /* U+0023a3: LEFT SQUARE BRACKET LOWER CORNER*/ + 0, /* U+0023a4: RIGHT SQUARE BRACKET UPPER CORNER*/ + 0, /* U+0023a5: RIGHT SQUARE BRACKET EXTENSION*/ + 0, /* U+0023a6: RIGHT SQUARE BRACKET LOWER CORNER*/ + 0, /* U+0023a7: LEFT CURLY BRACKET UPPER HOOK*/ + 0, /* U+0023a8: LEFT CURLY BRACKET MIDDLE PIECE*/ + 0, /* U+0023a9: LEFT CURLY BRACKET LOWER HOOK*/ + 0, /* U+0023aa: CURLY BRACKET EXTENSION*/ + 0, /* U+0023ab: RIGHT CURLY BRACKET UPPER HOOK*/ + 0, /* U+0023ac: RIGHT CURLY BRACKET MIDDLE PIECE*/ + 0, /* U+0023ad: RIGHT CURLY BRACKET LOWER HOOK*/ + 0, /* U+0023ae: INTEGRAL EXTENSION*/ + 0, /* U+0023af: HORIZONTAL LINE EXTENSION*/ + 0, /* U+0023b0: UPPER LEFT OR LOWER RIGHT CURLY BRACKET SECTION*/ + 0, /* U+0023b1: UPPER RIGHT OR LOWER LEFT CURLY BRACKET SECTION*/ + 0, /* U+0023b2: SUMMATION TOP*/ + 0, /* U+0023b3: SUMMATION BOTTOM*/ + 0, /* U+0023b4: TOP SQUARE BRACKET*/ + 0, /* U+0023b5: BOTTOM SQUARE BRACKET*/ + 0, /* U+0023b6: BOTTOM SQUARE BRACKET OVER TOP SQUARE BRACKET*/ + 0, /* U+0023b7: RADICAL SYMBOL BOTTOM*/ + 0, /* U+0023b8: LEFT VERTICAL BOX LINE*/ + 0, /* U+0023b9: RIGHT VERTICAL BOX LINE*/ + 0, /* U+0023ba: HORIZONTAL SCAN LINE-1*/ + 0, /* U+0023bb: HORIZONTAL SCAN LINE-3*/ + 0, /* U+0023bc: HORIZONTAL SCAN LINE-7*/ + 0, /* U+0023bd: HORIZONTAL SCAN LINE-9*/ + 0, /* U+0023be: DENTISTRY SYMBOL LIGHT VERTICAL AND TOP RIGHT*/ + 0, /* U+0023bf: DENTISTRY SYMBOL LIGHT VERTICAL AND BOTTOM RIGHT*/ + 0, /* U+0023c0: DENTISTRY SYMBOL LIGHT VERTICAL WITH CIRCLE*/ + 0, /* U+0023c1: DENTISTRY SYMBOL LIGHT DOWN AND HORIZONTAL WITH CIRCLE*/ + 0, /* U+0023c2: DENTISTRY SYMBOL LIGHT UP AND HORIZONTAL WITH CIRCLE*/ + 0, /* U+0023c3: DENTISTRY SYMBOL LIGHT VERTICAL WITH TRIANGLE*/ + 0, /* U+0023c4: DENTISTRY SYMBOL LIGHT DOWN AND HORIZONTAL WITH TRIANGLE*/ + 0, /* U+0023c5: DENTISTRY SYMBOL LIGHT UP AND HORIZONTAL WITH TRIANGLE*/ + 0, /* U+0023c6: DENTISTRY SYMBOL LIGHT VERTICAL AND WAVE*/ + 0, /* U+0023c7: DENTISTRY SYMBOL LIGHT DOWN AND HORIZONTAL WITH WAVE*/ + 0, /* U+0023c8: DENTISTRY SYMBOL LIGHT UP AND HORIZONTAL WITH WAVE*/ + 0, /* U+0023c9: DENTISTRY SYMBOL LIGHT DOWN AND HORIZONTAL*/ + 0, /* U+0023ca: DENTISTRY SYMBOL LIGHT UP AND HORIZONTAL*/ + 0, /* U+0023cb: DENTISTRY SYMBOL LIGHT VERTICAL AND TOP LEFT*/ + 0, /* U+0023cc: DENTISTRY SYMBOL LIGHT VERTICAL AND BOTTOM LEFT*/ + 0, /* U+0023cd: SQUARE FOOT*/ + 0, /* U+0023ce: RETURN SYMBOL*/ + 0, /* U+0023cf: EJECT SYMBOL*/ + 0, /* U+0023d0: VERTICAL LINE EXTENSION*/ + 0, /* U+0023d1: METRICAL BREVE*/ + 0, /* U+0023d2: METRICAL LONG OVER SHORT*/ + 0, /* U+0023d3: METRICAL SHORT OVER LONG*/ + 0, /* U+0023d4: METRICAL LONG OVER TWO SHORTS*/ + 0, /* U+0023d5: METRICAL TWO SHORTS OVER LONG*/ + 0, /* U+0023d6: METRICAL TWO SHORTS JOINED*/ + 0, /* U+0023d7: METRICAL TRISEME*/ + 0, /* U+0023d8: METRICAL TETRASEME*/ + 0, /* U+0023d9: METRICAL PENTASEME*/ + 0, /* U+0023da: EARTH GROUND*/ + 0, /* U+0023db: FUSE*/ + 0, /* U+0023dc: TOP PARENTHESIS*/ + 0, /* U+0023dd: BOTTOM PARENTHESIS*/ + 0, /* U+0023de: TOP CURLY BRACKET*/ + 0, /* U+0023df: BOTTOM CURLY BRACKET*/ + 0, /* U+0023e0: TOP TORTOISE SHELL BRACKET*/ + 0, /* U+0023e1: BOTTOM TORTOISE SHELL BRACKET*/ + 0, /* U+0023e2: WHITE TRAPEZIUM*/ + 0, /* U+0023e3: BENZENE RING WITH CIRCLE*/ + 0, /* U+0023e4: STRAIGHTNESS*/ + 0, /* U+0023e5: FLATNESS*/ + 0, /* U+0023e6: AC CURRENT*/ + 0, /* U+0023e7: ELECTRICAL INTERSECTION*/ + 0, /* U+0023e8: DECIMAL EXPONENT SYMBOL*/ + 0, /* U+0023e9: BLACK RIGHT-POINTING DOUBLE TRIANGLE*/ + 0, /* U+0023ea: BLACK LEFT-POINTING DOUBLE TRIANGLE*/ + 0, /* U+0023eb: BLACK UP-POINTING DOUBLE TRIANGLE*/ + 0, /* U+0023ec: BLACK DOWN-POINTING DOUBLE TRIANGLE*/ + 0, /* U+0023ed: BLACK RIGHT-POINTING DOUBLE TRIANGLE WITH VERTICAL BAR*/ + 0, /* U+0023ee: BLACK LEFT-POINTING DOUBLE TRIANGLE WITH VERTICAL BAR*/ + 0, /* U+0023ef: BLACK RIGHT-POINTING TRIANGLE WITH DOUBLE VERTICAL BAR*/ + 0, /* U+0023f0: ALARM CLOCK*/ + 0, /* U+0023f1: STOPWATCH*/ + 0, /* U+0023f2: TIMER CLOCK*/ + 0, /* U+0023f3: HOURGLASS WITH FLOWING SAND*/ + 0, /* U+0023f4: */ + 0, /* U+0023f5: */ + 0, /* U+0023f6: */ + 0, /* U+0023f7: */ + 0, /* U+0023f8: */ + 0, /* U+0023f9: */ + 0, /* U+0023fa: */ + 0, /* U+0023fb: */ + 0, /* U+0023fc: */ + 0, /* U+0023fd: */ + 0, /* U+0023fe: */ + 0, /* U+0023ff: */ + 0, /* U+002400: SYMBOL FOR NULL*/ + 0, /* U+002401: SYMBOL FOR START OF HEADING*/ + 0, /* U+002402: SYMBOL FOR START OF TEXT*/ + 0, /* U+002403: SYMBOL FOR END OF TEXT*/ + 0, /* U+002404: SYMBOL FOR END OF TRANSMISSION*/ + 0, /* U+002405: SYMBOL FOR ENQUIRY*/ + 0, /* U+002406: SYMBOL FOR ACKNOWLEDGE*/ + 0, /* U+002407: SYMBOL FOR BELL*/ + 0, /* U+002408: SYMBOL FOR BACKSPACE*/ + 0, /* U+002409: SYMBOL FOR HORIZONTAL TABULATION*/ + 0, /* U+00240a: SYMBOL FOR LINE FEED*/ + 0, /* U+00240b: SYMBOL FOR VERTICAL TABULATION*/ + 0, /* U+00240c: SYMBOL FOR FORM FEED*/ + 0, /* U+00240d: SYMBOL FOR CARRIAGE RETURN*/ + 0, /* U+00240e: SYMBOL FOR SHIFT OUT*/ + 0, /* U+00240f: SYMBOL FOR SHIFT IN*/ + 0, /* U+002410: SYMBOL FOR DATA LINK ESCAPE*/ + 0, /* U+002411: SYMBOL FOR DEVICE CONTROL ONE*/ + 0, /* U+002412: SYMBOL FOR DEVICE CONTROL TWO*/ + 0, /* U+002413: SYMBOL FOR DEVICE CONTROL THREE*/ + 0, /* U+002414: SYMBOL FOR DEVICE CONTROL FOUR*/ + 0, /* U+002415: SYMBOL FOR NEGATIVE ACKNOWLEDGE*/ + 0, /* U+002416: SYMBOL FOR SYNCHRONOUS IDLE*/ + 0, /* U+002417: SYMBOL FOR END OF TRANSMISSION BLOCK*/ + 0, /* U+002418: SYMBOL FOR CANCEL*/ + 0, /* U+002419: SYMBOL FOR END OF MEDIUM*/ + 0, /* U+00241a: SYMBOL FOR SUBSTITUTE*/ + 0, /* U+00241b: SYMBOL FOR ESCAPE*/ + 0, /* U+00241c: SYMBOL FOR FILE SEPARATOR*/ + 0, /* U+00241d: SYMBOL FOR GROUP SEPARATOR*/ + 0, /* U+00241e: SYMBOL FOR RECORD SEPARATOR*/ + 0, /* U+00241f: SYMBOL FOR UNIT SEPARATOR*/ + 0, /* U+002420: SYMBOL FOR SPACE*/ + 0, /* U+002421: SYMBOL FOR DELETE*/ + 0, /* U+002422: BLANK SYMBOL*/ + 0, /* U+002423: OPEN BOX*/ + 0, /* U+002424: SYMBOL FOR NEWLINE*/ + 0, /* U+002425: SYMBOL FOR DELETE FORM TWO*/ + 0, /* U+002426: SYMBOL FOR SUBSTITUTE FORM TWO*/ + 0, /* U+002427: */ + 0, /* U+002428: */ + 0, /* U+002429: */ + 0, /* U+00242a: */ + 0, /* U+00242b: */ + 0, /* U+00242c: */ + 0, /* U+00242d: */ + 0, /* U+00242e: */ + 0, /* U+00242f: */ + 0, /* U+002430: */ + 0, /* U+002431: */ + 0, /* U+002432: */ + 0, /* U+002433: */ + 0, /* U+002434: */ + 0, /* U+002435: */ + 0, /* U+002436: */ + 0, /* U+002437: */ + 0, /* U+002438: */ + 0, /* U+002439: */ + 0, /* U+00243a: */ + 0, /* U+00243b: */ + 0, /* U+00243c: */ + 0, /* U+00243d: */ + 0, /* U+00243e: */ + 0, /* U+00243f: */ + 0, /* U+002440: OCR HOOK*/ + 0, /* U+002441: OCR CHAIR*/ + 0, /* U+002442: OCR FORK*/ + 0, /* U+002443: OCR INVERTED FORK*/ + 0, /* U+002444: OCR BELT BUCKLE*/ + 0, /* U+002445: OCR BOW TIE*/ + 0, /* U+002446: OCR BRANCH BANK IDENTIFICATION*/ + 0, /* U+002447: OCR AMOUNT OF CHECK*/ + 0, /* U+002448: OCR DASH*/ + 0, /* U+002449: OCR CUSTOMER ACCOUNT NUMBER*/ + 0, /* U+00244a: OCR DOUBLE BACKSLASH*/ + 0, /* U+00244b: */ + 0, /* U+00244c: */ + 0, /* U+00244d: */ + 0, /* U+00244e: */ + 0, /* U+00244f: */ + 0, /* U+002450: */ + 0, /* U+002451: */ + 0, /* U+002452: */ + 0, /* U+002453: */ + 0, /* U+002454: */ + 0, /* U+002455: */ + 0, /* U+002456: */ + 0, /* U+002457: */ + 0, /* U+002458: */ + 0, /* U+002459: */ + 0, /* U+00245a: */ + 0, /* U+00245b: */ + 0, /* U+00245c: */ + 0, /* U+00245d: */ + 0, /* U+00245e: */ + 0, /* U+00245f: */ + 0, /* U+002460: CIRCLED DIGIT ONE*/ + 0, /* U+002461: CIRCLED DIGIT TWO*/ + 0, /* U+002462: CIRCLED DIGIT THREE*/ + 0, /* U+002463: CIRCLED DIGIT FOUR*/ + 0, /* U+002464: CIRCLED DIGIT FIVE*/ + 0, /* U+002465: CIRCLED DIGIT SIX*/ + 0, /* U+002466: CIRCLED DIGIT SEVEN*/ + 0, /* U+002467: CIRCLED DIGIT EIGHT*/ + 0, /* U+002468: CIRCLED DIGIT NINE*/ + 0, /* U+002469: CIRCLED NUMBER TEN*/ + 0, /* U+00246a: CIRCLED NUMBER ELEVEN*/ + 0, /* U+00246b: CIRCLED NUMBER TWELVE*/ + 0, /* U+00246c: CIRCLED NUMBER THIRTEEN*/ + 0, /* U+00246d: CIRCLED NUMBER FOURTEEN*/ + 0, /* U+00246e: CIRCLED NUMBER FIFTEEN*/ + 0, /* U+00246f: CIRCLED NUMBER SIXTEEN*/ + 0, /* U+002470: CIRCLED NUMBER SEVENTEEN*/ + 0, /* U+002471: CIRCLED NUMBER EIGHTEEN*/ + 0, /* U+002472: CIRCLED NUMBER NINETEEN*/ + 0, /* U+002473: CIRCLED NUMBER TWENTY*/ + 0, /* U+002474: PARENTHESIZED DIGIT ONE*/ + 0, /* U+002475: PARENTHESIZED DIGIT TWO*/ + 0, /* U+002476: PARENTHESIZED DIGIT THREE*/ + 0, /* U+002477: PARENTHESIZED DIGIT FOUR*/ + 0, /* U+002478: PARENTHESIZED DIGIT FIVE*/ + 0, /* U+002479: PARENTHESIZED DIGIT SIX*/ + 0, /* U+00247a: PARENTHESIZED DIGIT SEVEN*/ + 0, /* U+00247b: PARENTHESIZED DIGIT EIGHT*/ + 0, /* U+00247c: PARENTHESIZED DIGIT NINE*/ + 0, /* U+00247d: PARENTHESIZED NUMBER TEN*/ + 0, /* U+00247e: PARENTHESIZED NUMBER ELEVEN*/ + 0, /* U+00247f: PARENTHESIZED NUMBER TWELVE*/ + 0, /* U+002480: PARENTHESIZED NUMBER THIRTEEN*/ + 0, /* U+002481: PARENTHESIZED NUMBER FOURTEEN*/ + 0, /* U+002482: PARENTHESIZED NUMBER FIFTEEN*/ + 0, /* U+002483: PARENTHESIZED NUMBER SIXTEEN*/ + 0, /* U+002484: PARENTHESIZED NUMBER SEVENTEEN*/ + 0, /* U+002485: PARENTHESIZED NUMBER EIGHTEEN*/ + 0, /* U+002486: PARENTHESIZED NUMBER NINETEEN*/ + 0, /* U+002487: PARENTHESIZED NUMBER TWENTY*/ + 0, /* U+002488: DIGIT ONE FULL STOP*/ + 0, /* U+002489: DIGIT TWO FULL STOP*/ + 0, /* U+00248a: DIGIT THREE FULL STOP*/ + 0, /* U+00248b: DIGIT FOUR FULL STOP*/ + 0, /* U+00248c: DIGIT FIVE FULL STOP*/ + 0, /* U+00248d: DIGIT SIX FULL STOP*/ + 0, /* U+00248e: DIGIT SEVEN FULL STOP*/ + 0, /* U+00248f: DIGIT EIGHT FULL STOP*/ + 0, /* U+002490: DIGIT NINE FULL STOP*/ + 0, /* U+002491: NUMBER TEN FULL STOP*/ + 0, /* U+002492: NUMBER ELEVEN FULL STOP*/ + 0, /* U+002493: NUMBER TWELVE FULL STOP*/ + 0, /* U+002494: NUMBER THIRTEEN FULL STOP*/ + 0, /* U+002495: NUMBER FOURTEEN FULL STOP*/ + 0, /* U+002496: NUMBER FIFTEEN FULL STOP*/ + 0, /* U+002497: NUMBER SIXTEEN FULL STOP*/ + 0, /* U+002498: NUMBER SEVENTEEN FULL STOP*/ + 0, /* U+002499: NUMBER EIGHTEEN FULL STOP*/ + 0, /* U+00249a: NUMBER NINETEEN FULL STOP*/ + 0, /* U+00249b: NUMBER TWENTY FULL STOP*/ + 0, /* U+00249c: PARENTHESIZED LATIN SMALL LETTER A*/ + 0, /* U+00249d: PARENTHESIZED LATIN SMALL LETTER B*/ + 0, /* U+00249e: PARENTHESIZED LATIN SMALL LETTER C*/ + 0, /* U+00249f: PARENTHESIZED LATIN SMALL LETTER D*/ + 0, /* U+0024a0: PARENTHESIZED LATIN SMALL LETTER E*/ + 0, /* U+0024a1: PARENTHESIZED LATIN SMALL LETTER F*/ + 0, /* U+0024a2: PARENTHESIZED LATIN SMALL LETTER G*/ + 0, /* U+0024a3: PARENTHESIZED LATIN SMALL LETTER H*/ + 0, /* U+0024a4: PARENTHESIZED LATIN SMALL LETTER I*/ + 0, /* U+0024a5: PARENTHESIZED LATIN SMALL LETTER J*/ + 0, /* U+0024a6: PARENTHESIZED LATIN SMALL LETTER K*/ + 0, /* U+0024a7: PARENTHESIZED LATIN SMALL LETTER L*/ + 0, /* U+0024a8: PARENTHESIZED LATIN SMALL LETTER M*/ + 0, /* U+0024a9: PARENTHESIZED LATIN SMALL LETTER N*/ + 0, /* U+0024aa: PARENTHESIZED LATIN SMALL LETTER O*/ + 0, /* U+0024ab: PARENTHESIZED LATIN SMALL LETTER P*/ + 0, /* U+0024ac: PARENTHESIZED LATIN SMALL LETTER Q*/ + 0, /* U+0024ad: PARENTHESIZED LATIN SMALL LETTER R*/ + 0, /* U+0024ae: PARENTHESIZED LATIN SMALL LETTER S*/ + 0, /* U+0024af: PARENTHESIZED LATIN SMALL LETTER T*/ + 0, /* U+0024b0: PARENTHESIZED LATIN SMALL LETTER U*/ + 0, /* U+0024b1: PARENTHESIZED LATIN SMALL LETTER V*/ + 0, /* U+0024b2: PARENTHESIZED LATIN SMALL LETTER W*/ + 0, /* U+0024b3: PARENTHESIZED LATIN SMALL LETTER X*/ + 0, /* U+0024b4: PARENTHESIZED LATIN SMALL LETTER Y*/ + 0, /* U+0024b5: PARENTHESIZED LATIN SMALL LETTER Z*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+0024b6: CIRCLED LATIN CAPITAL LETTER A*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+0024b7: CIRCLED LATIN CAPITAL LETTER B*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+0024b8: CIRCLED LATIN CAPITAL LETTER C*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+0024b9: CIRCLED LATIN CAPITAL LETTER D*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+0024ba: CIRCLED LATIN CAPITAL LETTER E*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+0024bb: CIRCLED LATIN CAPITAL LETTER F*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+0024bc: CIRCLED LATIN CAPITAL LETTER G*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+0024bd: CIRCLED LATIN CAPITAL LETTER H*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+0024be: CIRCLED LATIN CAPITAL LETTER I*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+0024bf: CIRCLED LATIN CAPITAL LETTER J*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+0024c0: CIRCLED LATIN CAPITAL LETTER K*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+0024c1: CIRCLED LATIN CAPITAL LETTER L*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+0024c2: CIRCLED LATIN CAPITAL LETTER M*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+0024c3: CIRCLED LATIN CAPITAL LETTER N*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+0024c4: CIRCLED LATIN CAPITAL LETTER O*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+0024c5: CIRCLED LATIN CAPITAL LETTER P*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+0024c6: CIRCLED LATIN CAPITAL LETTER Q*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+0024c7: CIRCLED LATIN CAPITAL LETTER R*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+0024c8: CIRCLED LATIN CAPITAL LETTER S*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+0024c9: CIRCLED LATIN CAPITAL LETTER T*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+0024ca: CIRCLED LATIN CAPITAL LETTER U*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+0024cb: CIRCLED LATIN CAPITAL LETTER V*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+0024cc: CIRCLED LATIN CAPITAL LETTER W*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+0024cd: CIRCLED LATIN CAPITAL LETTER X*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+0024ce: CIRCLED LATIN CAPITAL LETTER Y*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+0024cf: CIRCLED LATIN CAPITAL LETTER Z*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+0024d0: CIRCLED LATIN SMALL LETTER A*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+0024d1: CIRCLED LATIN SMALL LETTER B*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+0024d2: CIRCLED LATIN SMALL LETTER C*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+0024d3: CIRCLED LATIN SMALL LETTER D*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+0024d4: CIRCLED LATIN SMALL LETTER E*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+0024d5: CIRCLED LATIN SMALL LETTER F*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+0024d6: CIRCLED LATIN SMALL LETTER G*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+0024d7: CIRCLED LATIN SMALL LETTER H*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+0024d8: CIRCLED LATIN SMALL LETTER I*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+0024d9: CIRCLED LATIN SMALL LETTER J*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+0024da: CIRCLED LATIN SMALL LETTER K*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+0024db: CIRCLED LATIN SMALL LETTER L*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+0024dc: CIRCLED LATIN SMALL LETTER M*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+0024dd: CIRCLED LATIN SMALL LETTER N*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+0024de: CIRCLED LATIN SMALL LETTER O*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+0024df: CIRCLED LATIN SMALL LETTER P*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+0024e0: CIRCLED LATIN SMALL LETTER Q*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+0024e1: CIRCLED LATIN SMALL LETTER R*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+0024e2: CIRCLED LATIN SMALL LETTER S*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+0024e3: CIRCLED LATIN SMALL LETTER T*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+0024e4: CIRCLED LATIN SMALL LETTER U*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+0024e5: CIRCLED LATIN SMALL LETTER V*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+0024e6: CIRCLED LATIN SMALL LETTER W*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+0024e7: CIRCLED LATIN SMALL LETTER X*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+0024e8: CIRCLED LATIN SMALL LETTER Y*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+0024e9: CIRCLED LATIN SMALL LETTER Z*/ + 0, /* U+0024ea: CIRCLED DIGIT ZERO*/ + 0, /* U+0024eb: NEGATIVE CIRCLED NUMBER ELEVEN*/ + 0, /* U+0024ec: NEGATIVE CIRCLED NUMBER TWELVE*/ + 0, /* U+0024ed: NEGATIVE CIRCLED NUMBER THIRTEEN*/ + 0, /* U+0024ee: NEGATIVE CIRCLED NUMBER FOURTEEN*/ + 0, /* U+0024ef: NEGATIVE CIRCLED NUMBER FIFTEEN*/ + 0, /* U+0024f0: NEGATIVE CIRCLED NUMBER SIXTEEN*/ + 0, /* U+0024f1: NEGATIVE CIRCLED NUMBER SEVENTEEN*/ + 0, /* U+0024f2: NEGATIVE CIRCLED NUMBER EIGHTEEN*/ + 0, /* U+0024f3: NEGATIVE CIRCLED NUMBER NINETEEN*/ + 0, /* U+0024f4: NEGATIVE CIRCLED NUMBER TWENTY*/ + 0, /* U+0024f5: DOUBLE CIRCLED DIGIT ONE*/ + 0, /* U+0024f6: DOUBLE CIRCLED DIGIT TWO*/ + 0, /* U+0024f7: DOUBLE CIRCLED DIGIT THREE*/ + 0, /* U+0024f8: DOUBLE CIRCLED DIGIT FOUR*/ + 0, /* U+0024f9: DOUBLE CIRCLED DIGIT FIVE*/ + 0, /* U+0024fa: DOUBLE CIRCLED DIGIT SIX*/ + 0, /* U+0024fb: DOUBLE CIRCLED DIGIT SEVEN*/ + 0, /* U+0024fc: DOUBLE CIRCLED DIGIT EIGHT*/ + 0, /* U+0024fd: DOUBLE CIRCLED DIGIT NINE*/ + 0, /* U+0024fe: DOUBLE CIRCLED NUMBER TEN*/ + 0, /* U+0024ff: NEGATIVE CIRCLED DIGIT ZERO*/ + 0, /* U+002500: BOX DRAWINGS LIGHT HORIZONTAL*/ + 0, /* U+002501: BOX DRAWINGS HEAVY HORIZONTAL*/ + 0, /* U+002502: BOX DRAWINGS LIGHT VERTICAL*/ + 0, /* U+002503: BOX DRAWINGS HEAVY VERTICAL*/ + 0, /* U+002504: BOX DRAWINGS LIGHT TRIPLE DASH HORIZONTAL*/ + 0, /* U+002505: BOX DRAWINGS HEAVY TRIPLE DASH HORIZONTAL*/ + 0, /* U+002506: BOX DRAWINGS LIGHT TRIPLE DASH VERTICAL*/ + 0, /* U+002507: BOX DRAWINGS HEAVY TRIPLE DASH VERTICAL*/ + 0, /* U+002508: BOX DRAWINGS LIGHT QUADRUPLE DASH HORIZONTAL*/ + 0, /* U+002509: BOX DRAWINGS HEAVY QUADRUPLE DASH HORIZONTAL*/ + 0, /* U+00250a: BOX DRAWINGS LIGHT QUADRUPLE DASH VERTICAL*/ + 0, /* U+00250b: BOX DRAWINGS HEAVY QUADRUPLE DASH VERTICAL*/ + 0, /* U+00250c: BOX DRAWINGS LIGHT DOWN AND RIGHT*/ + 0, /* U+00250d: BOX DRAWINGS DOWN LIGHT AND RIGHT HEAVY*/ + 0, /* U+00250e: BOX DRAWINGS DOWN HEAVY AND RIGHT LIGHT*/ + 0, /* U+00250f: BOX DRAWINGS HEAVY DOWN AND RIGHT*/ + 0, /* U+002510: BOX DRAWINGS LIGHT DOWN AND LEFT*/ + 0, /* U+002511: BOX DRAWINGS DOWN LIGHT AND LEFT HEAVY*/ + 0, /* U+002512: BOX DRAWINGS DOWN HEAVY AND LEFT LIGHT*/ + 0, /* U+002513: BOX DRAWINGS HEAVY DOWN AND LEFT*/ + 0, /* U+002514: BOX DRAWINGS LIGHT UP AND RIGHT*/ + 0, /* U+002515: BOX DRAWINGS UP LIGHT AND RIGHT HEAVY*/ + 0, /* U+002516: BOX DRAWINGS UP HEAVY AND RIGHT LIGHT*/ + 0, /* U+002517: BOX DRAWINGS HEAVY UP AND RIGHT*/ + 0, /* U+002518: BOX DRAWINGS LIGHT UP AND LEFT*/ + 0, /* U+002519: BOX DRAWINGS UP LIGHT AND LEFT HEAVY*/ + 0, /* U+00251a: BOX DRAWINGS UP HEAVY AND LEFT LIGHT*/ + 0, /* U+00251b: BOX DRAWINGS HEAVY UP AND LEFT*/ + 0, /* U+00251c: BOX DRAWINGS LIGHT VERTICAL AND RIGHT*/ + 0, /* U+00251d: BOX DRAWINGS VERTICAL LIGHT AND RIGHT HEAVY*/ + 0, /* U+00251e: BOX DRAWINGS UP HEAVY AND RIGHT DOWN LIGHT*/ + 0, /* U+00251f: BOX DRAWINGS DOWN HEAVY AND RIGHT UP LIGHT*/ + 0, /* U+002520: BOX DRAWINGS VERTICAL HEAVY AND RIGHT LIGHT*/ + 0, /* U+002521: BOX DRAWINGS DOWN LIGHT AND RIGHT UP HEAVY*/ + 0, /* U+002522: BOX DRAWINGS UP LIGHT AND RIGHT DOWN HEAVY*/ + 0, /* U+002523: BOX DRAWINGS HEAVY VERTICAL AND RIGHT*/ + 0, /* U+002524: BOX DRAWINGS LIGHT VERTICAL AND LEFT*/ + 0, /* U+002525: BOX DRAWINGS VERTICAL LIGHT AND LEFT HEAVY*/ + 0, /* U+002526: BOX DRAWINGS UP HEAVY AND LEFT DOWN LIGHT*/ + 0, /* U+002527: BOX DRAWINGS DOWN HEAVY AND LEFT UP LIGHT*/ + 0, /* U+002528: BOX DRAWINGS VERTICAL HEAVY AND LEFT LIGHT*/ + 0, /* U+002529: BOX DRAWINGS DOWN LIGHT AND LEFT UP HEAVY*/ + 0, /* U+00252a: BOX DRAWINGS UP LIGHT AND LEFT DOWN HEAVY*/ + 0, /* U+00252b: BOX DRAWINGS HEAVY VERTICAL AND LEFT*/ + 0, /* U+00252c: BOX DRAWINGS LIGHT DOWN AND HORIZONTAL*/ + 0, /* U+00252d: BOX DRAWINGS LEFT HEAVY AND RIGHT DOWN LIGHT*/ + 0, /* U+00252e: BOX DRAWINGS RIGHT HEAVY AND LEFT DOWN LIGHT*/ + 0, /* U+00252f: BOX DRAWINGS DOWN LIGHT AND HORIZONTAL HEAVY*/ + 0, /* U+002530: BOX DRAWINGS DOWN HEAVY AND HORIZONTAL LIGHT*/ + 0, /* U+002531: BOX DRAWINGS RIGHT LIGHT AND LEFT DOWN HEAVY*/ + 0, /* U+002532: BOX DRAWINGS LEFT LIGHT AND RIGHT DOWN HEAVY*/ + 0, /* U+002533: BOX DRAWINGS HEAVY DOWN AND HORIZONTAL*/ + 0, /* U+002534: BOX DRAWINGS LIGHT UP AND HORIZONTAL*/ + 0, /* U+002535: BOX DRAWINGS LEFT HEAVY AND RIGHT UP LIGHT*/ + 0, /* U+002536: BOX DRAWINGS RIGHT HEAVY AND LEFT UP LIGHT*/ + 0, /* U+002537: BOX DRAWINGS UP LIGHT AND HORIZONTAL HEAVY*/ + 0, /* U+002538: BOX DRAWINGS UP HEAVY AND HORIZONTAL LIGHT*/ + 0, /* U+002539: BOX DRAWINGS RIGHT LIGHT AND LEFT UP HEAVY*/ + 0, /* U+00253a: BOX DRAWINGS LEFT LIGHT AND RIGHT UP HEAVY*/ + 0, /* U+00253b: BOX DRAWINGS HEAVY UP AND HORIZONTAL*/ + 0, /* U+00253c: BOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL*/ + 0, /* U+00253d: BOX DRAWINGS LEFT HEAVY AND RIGHT VERTICAL LIGHT*/ + 0, /* U+00253e: BOX DRAWINGS RIGHT HEAVY AND LEFT VERTICAL LIGHT*/ + 0, /* U+00253f: BOX DRAWINGS VERTICAL LIGHT AND HORIZONTAL HEAVY*/ + 0, /* U+002540: BOX DRAWINGS UP HEAVY AND DOWN HORIZONTAL LIGHT*/ + 0, /* U+002541: BOX DRAWINGS DOWN HEAVY AND UP HORIZONTAL LIGHT*/ + 0, /* U+002542: BOX DRAWINGS VERTICAL HEAVY AND HORIZONTAL LIGHT*/ + 0, /* U+002543: BOX DRAWINGS LEFT UP HEAVY AND RIGHT DOWN LIGHT*/ + 0, /* U+002544: BOX DRAWINGS RIGHT UP HEAVY AND LEFT DOWN LIGHT*/ + 0, /* U+002545: BOX DRAWINGS LEFT DOWN HEAVY AND RIGHT UP LIGHT*/ + 0, /* U+002546: BOX DRAWINGS RIGHT DOWN HEAVY AND LEFT UP LIGHT*/ + 0, /* U+002547: BOX DRAWINGS DOWN LIGHT AND UP HORIZONTAL HEAVY*/ + 0, /* U+002548: BOX DRAWINGS UP LIGHT AND DOWN HORIZONTAL HEAVY*/ + 0, /* U+002549: BOX DRAWINGS RIGHT LIGHT AND LEFT VERTICAL HEAVY*/ + 0, /* U+00254a: BOX DRAWINGS LEFT LIGHT AND RIGHT VERTICAL HEAVY*/ + 0, /* U+00254b: BOX DRAWINGS HEAVY VERTICAL AND HORIZONTAL*/ + 0, /* U+00254c: BOX DRAWINGS LIGHT DOUBLE DASH HORIZONTAL*/ + 0, /* U+00254d: BOX DRAWINGS HEAVY DOUBLE DASH HORIZONTAL*/ + 0, /* U+00254e: BOX DRAWINGS LIGHT DOUBLE DASH VERTICAL*/ + 0, /* U+00254f: BOX DRAWINGS HEAVY DOUBLE DASH VERTICAL*/ + 0, /* U+002550: BOX DRAWINGS DOUBLE HORIZONTAL*/ + 0, /* U+002551: BOX DRAWINGS DOUBLE VERTICAL*/ + 0, /* U+002552: BOX DRAWINGS DOWN SINGLE AND RIGHT DOUBLE*/ + 0, /* U+002553: BOX DRAWINGS DOWN DOUBLE AND RIGHT SINGLE*/ + 0, /* U+002554: BOX DRAWINGS DOUBLE DOWN AND RIGHT*/ + 0, /* U+002555: BOX DRAWINGS DOWN SINGLE AND LEFT DOUBLE*/ + 0, /* U+002556: BOX DRAWINGS DOWN DOUBLE AND LEFT SINGLE*/ + 0, /* U+002557: BOX DRAWINGS DOUBLE DOWN AND LEFT*/ + 0, /* U+002558: BOX DRAWINGS UP SINGLE AND RIGHT DOUBLE*/ + 0, /* U+002559: BOX DRAWINGS UP DOUBLE AND RIGHT SINGLE*/ + 0, /* U+00255a: BOX DRAWINGS DOUBLE UP AND RIGHT*/ + 0, /* U+00255b: BOX DRAWINGS UP SINGLE AND LEFT DOUBLE*/ + 0, /* U+00255c: BOX DRAWINGS UP DOUBLE AND LEFT SINGLE*/ + 0, /* U+00255d: BOX DRAWINGS DOUBLE UP AND LEFT*/ + 0, /* U+00255e: BOX DRAWINGS VERTICAL SINGLE AND RIGHT DOUBLE*/ + 0, /* U+00255f: BOX DRAWINGS VERTICAL DOUBLE AND RIGHT SINGLE*/ + 0, /* U+002560: BOX DRAWINGS DOUBLE VERTICAL AND RIGHT*/ + 0, /* U+002561: BOX DRAWINGS VERTICAL SINGLE AND LEFT DOUBLE*/ + 0, /* U+002562: BOX DRAWINGS VERTICAL DOUBLE AND LEFT SINGLE*/ + 0, /* U+002563: BOX DRAWINGS DOUBLE VERTICAL AND LEFT*/ + 0, /* U+002564: BOX DRAWINGS DOWN SINGLE AND HORIZONTAL DOUBLE*/ + 0, /* U+002565: BOX DRAWINGS DOWN DOUBLE AND HORIZONTAL SINGLE*/ + 0, /* U+002566: BOX DRAWINGS DOUBLE DOWN AND HORIZONTAL*/ + 0, /* U+002567: BOX DRAWINGS UP SINGLE AND HORIZONTAL DOUBLE*/ + 0, /* U+002568: BOX DRAWINGS UP DOUBLE AND HORIZONTAL SINGLE*/ + 0, /* U+002569: BOX DRAWINGS DOUBLE UP AND HORIZONTAL*/ + 0, /* U+00256a: BOX DRAWINGS VERTICAL SINGLE AND HORIZONTAL DOUBLE*/ + 0, /* U+00256b: BOX DRAWINGS VERTICAL DOUBLE AND HORIZONTAL SINGLE*/ + 0, /* U+00256c: BOX DRAWINGS DOUBLE VERTICAL AND HORIZONTAL*/ + 0, /* U+00256d: BOX DRAWINGS LIGHT ARC DOWN AND RIGHT*/ + 0, /* U+00256e: BOX DRAWINGS LIGHT ARC DOWN AND LEFT*/ + 0, /* U+00256f: BOX DRAWINGS LIGHT ARC UP AND LEFT*/ + 0, /* U+002570: BOX DRAWINGS LIGHT ARC UP AND RIGHT*/ + 0, /* U+002571: BOX DRAWINGS LIGHT DIAGONAL UPPER RIGHT TO LOWER LEFT*/ + 0, /* U+002572: BOX DRAWINGS LIGHT DIAGONAL UPPER LEFT TO LOWER RIGHT*/ + 0, /* U+002573: BOX DRAWINGS LIGHT DIAGONAL CROSS*/ + 0, /* U+002574: BOX DRAWINGS LIGHT LEFT*/ + 0, /* U+002575: BOX DRAWINGS LIGHT UP*/ + 0, /* U+002576: BOX DRAWINGS LIGHT RIGHT*/ + 0, /* U+002577: BOX DRAWINGS LIGHT DOWN*/ + 0, /* U+002578: BOX DRAWINGS HEAVY LEFT*/ + 0, /* U+002579: BOX DRAWINGS HEAVY UP*/ + 0, /* U+00257a: BOX DRAWINGS HEAVY RIGHT*/ + 0, /* U+00257b: BOX DRAWINGS HEAVY DOWN*/ + 0, /* U+00257c: BOX DRAWINGS LIGHT LEFT AND HEAVY RIGHT*/ + 0, /* U+00257d: BOX DRAWINGS LIGHT UP AND HEAVY DOWN*/ + 0, /* U+00257e: BOX DRAWINGS HEAVY LEFT AND LIGHT RIGHT*/ + 0, /* U+00257f: BOX DRAWINGS HEAVY UP AND LIGHT DOWN*/ + 0, /* U+002580: UPPER HALF BLOCK*/ + 0, /* U+002581: LOWER ONE EIGHTH BLOCK*/ + 0, /* U+002582: LOWER ONE QUARTER BLOCK*/ + 0, /* U+002583: LOWER THREE EIGHTHS BLOCK*/ + 0, /* U+002584: LOWER HALF BLOCK*/ + 0, /* U+002585: LOWER FIVE EIGHTHS BLOCK*/ + 0, /* U+002586: LOWER THREE QUARTERS BLOCK*/ + 0, /* U+002587: LOWER SEVEN EIGHTHS BLOCK*/ + 0, /* U+002588: FULL BLOCK*/ + 0, /* U+002589: LEFT SEVEN EIGHTHS BLOCK*/ + 0, /* U+00258a: LEFT THREE QUARTERS BLOCK*/ + 0, /* U+00258b: LEFT FIVE EIGHTHS BLOCK*/ + 0, /* U+00258c: LEFT HALF BLOCK*/ + 0, /* U+00258d: LEFT THREE EIGHTHS BLOCK*/ + 0, /* U+00258e: LEFT ONE QUARTER BLOCK*/ + 0, /* U+00258f: LEFT ONE EIGHTH BLOCK*/ + 0, /* U+002590: RIGHT HALF BLOCK*/ + 0, /* U+002591: LIGHT SHADE*/ + 0, /* U+002592: MEDIUM SHADE*/ + 0, /* U+002593: DARK SHADE*/ + 0, /* U+002594: UPPER ONE EIGHTH BLOCK*/ + 0, /* U+002595: RIGHT ONE EIGHTH BLOCK*/ + 0, /* U+002596: QUADRANT LOWER LEFT*/ + 0, /* U+002597: QUADRANT LOWER RIGHT*/ + 0, /* U+002598: QUADRANT UPPER LEFT*/ + 0, /* U+002599: QUADRANT UPPER LEFT AND LOWER LEFT AND LOWER RIGHT*/ + 0, /* U+00259a: QUADRANT UPPER LEFT AND LOWER RIGHT*/ + 0, /* U+00259b: QUADRANT UPPER LEFT AND UPPER RIGHT AND LOWER LEFT*/ + 0, /* U+00259c: QUADRANT UPPER LEFT AND UPPER RIGHT AND LOWER RIGHT*/ + 0, /* U+00259d: QUADRANT UPPER RIGHT*/ + 0, /* U+00259e: QUADRANT UPPER RIGHT AND LOWER LEFT*/ + 0, /* U+00259f: QUADRANT UPPER RIGHT AND LOWER LEFT AND LOWER RIGHT*/ + 0, /* U+0025a0: BLACK SQUARE*/ + 0, /* U+0025a1: WHITE SQUARE*/ + 0, /* U+0025a2: WHITE SQUARE WITH ROUNDED CORNERS*/ + 0, /* U+0025a3: WHITE SQUARE CONTAINING BLACK SMALL SQUARE*/ + 0, /* U+0025a4: SQUARE WITH HORIZONTAL FILL*/ + 0, /* U+0025a5: SQUARE WITH VERTICAL FILL*/ + 0, /* U+0025a6: SQUARE WITH ORTHOGONAL CROSSHATCH FILL*/ + 0, /* U+0025a7: SQUARE WITH UPPER LEFT TO LOWER RIGHT FILL*/ + 0, /* U+0025a8: SQUARE WITH UPPER RIGHT TO LOWER LEFT FILL*/ + 0, /* U+0025a9: SQUARE WITH DIAGONAL CROSSHATCH FILL*/ + 0, /* U+0025aa: BLACK SMALL SQUARE*/ + 0, /* U+0025ab: WHITE SMALL SQUARE*/ + 0, /* U+0025ac: BLACK RECTANGLE*/ + 0, /* U+0025ad: WHITE RECTANGLE*/ + 0, /* U+0025ae: BLACK VERTICAL RECTANGLE*/ + 0, /* U+0025af: WHITE VERTICAL RECTANGLE*/ + 0, /* U+0025b0: BLACK PARALLELOGRAM*/ + 0, /* U+0025b1: WHITE PARALLELOGRAM*/ + 0, /* U+0025b2: BLACK UP-POINTING TRIANGLE*/ + 0, /* U+0025b3: WHITE UP-POINTING TRIANGLE*/ + 0, /* U+0025b4: BLACK UP-POINTING SMALL TRIANGLE*/ + 0, /* U+0025b5: WHITE UP-POINTING SMALL TRIANGLE*/ + 0, /* U+0025b6: BLACK RIGHT-POINTING TRIANGLE*/ + 0, /* U+0025b7: WHITE RIGHT-POINTING TRIANGLE*/ + 0, /* U+0025b8: BLACK RIGHT-POINTING SMALL TRIANGLE*/ + 0, /* U+0025b9: WHITE RIGHT-POINTING SMALL TRIANGLE*/ + 0, /* U+0025ba: BLACK RIGHT-POINTING POINTER*/ + 0, /* U+0025bb: WHITE RIGHT-POINTING POINTER*/ + 0, /* U+0025bc: BLACK DOWN-POINTING TRIANGLE*/ + 0, /* U+0025bd: WHITE DOWN-POINTING TRIANGLE*/ + 0, /* U+0025be: BLACK DOWN-POINTING SMALL TRIANGLE*/ + 0, /* U+0025bf: WHITE DOWN-POINTING SMALL TRIANGLE*/ + 0, /* U+0025c0: BLACK LEFT-POINTING TRIANGLE*/ + 0, /* U+0025c1: WHITE LEFT-POINTING TRIANGLE*/ + 0, /* U+0025c2: BLACK LEFT-POINTING SMALL TRIANGLE*/ + 0, /* U+0025c3: WHITE LEFT-POINTING SMALL TRIANGLE*/ + 0, /* U+0025c4: BLACK LEFT-POINTING POINTER*/ + 0, /* U+0025c5: WHITE LEFT-POINTING POINTER*/ + 0, /* U+0025c6: BLACK DIAMOND*/ + 0, /* U+0025c7: WHITE DIAMOND*/ + 0, /* U+0025c8: WHITE DIAMOND CONTAINING BLACK SMALL DIAMOND*/ + 0, /* U+0025c9: FISHEYE*/ + 0, /* U+0025ca: LOZENGE*/ + 0, /* U+0025cb: WHITE CIRCLE*/ + 0, /* U+0025cc: DOTTED CIRCLE*/ + 0, /* U+0025cd: CIRCLE WITH VERTICAL FILL*/ + 0, /* U+0025ce: BULLSEYE*/ + 0, /* U+0025cf: BLACK CIRCLE*/ + 0, /* U+0025d0: CIRCLE WITH LEFT HALF BLACK*/ + 0, /* U+0025d1: CIRCLE WITH RIGHT HALF BLACK*/ + 0, /* U+0025d2: CIRCLE WITH LOWER HALF BLACK*/ + 0, /* U+0025d3: CIRCLE WITH UPPER HALF BLACK*/ + 0, /* U+0025d4: CIRCLE WITH UPPER RIGHT QUADRANT BLACK*/ + 0, /* U+0025d5: CIRCLE WITH ALL BUT UPPER LEFT QUADRANT BLACK*/ + 0, /* U+0025d6: LEFT HALF BLACK CIRCLE*/ + 0, /* U+0025d7: RIGHT HALF BLACK CIRCLE*/ + 0, /* U+0025d8: INVERSE BULLET*/ + 0, /* U+0025d9: INVERSE WHITE CIRCLE*/ + 0, /* U+0025da: UPPER HALF INVERSE WHITE CIRCLE*/ + 0, /* U+0025db: LOWER HALF INVERSE WHITE CIRCLE*/ + 0, /* U+0025dc: UPPER LEFT QUADRANT CIRCULAR ARC*/ + 0, /* U+0025dd: UPPER RIGHT QUADRANT CIRCULAR ARC*/ + 0, /* U+0025de: LOWER RIGHT QUADRANT CIRCULAR ARC*/ + 0, /* U+0025df: LOWER LEFT QUADRANT CIRCULAR ARC*/ + 0, /* U+0025e0: UPPER HALF CIRCLE*/ + 0, /* U+0025e1: LOWER HALF CIRCLE*/ + 0, /* U+0025e2: BLACK LOWER RIGHT TRIANGLE*/ + 0, /* U+0025e3: BLACK LOWER LEFT TRIANGLE*/ + 0, /* U+0025e4: BLACK UPPER LEFT TRIANGLE*/ + 0, /* U+0025e5: BLACK UPPER RIGHT TRIANGLE*/ + 0, /* U+0025e6: WHITE BULLET*/ + 0, /* U+0025e7: SQUARE WITH LEFT HALF BLACK*/ + 0, /* U+0025e8: SQUARE WITH RIGHT HALF BLACK*/ + 0, /* U+0025e9: SQUARE WITH UPPER LEFT DIAGONAL HALF BLACK*/ + 0, /* U+0025ea: SQUARE WITH LOWER RIGHT DIAGONAL HALF BLACK*/ + 0, /* U+0025eb: WHITE SQUARE WITH VERTICAL BISECTING LINE*/ + 0, /* U+0025ec: WHITE UP-POINTING TRIANGLE WITH DOT*/ + 0, /* U+0025ed: UP-POINTING TRIANGLE WITH LEFT HALF BLACK*/ + 0, /* U+0025ee: UP-POINTING TRIANGLE WITH RIGHT HALF BLACK*/ + 0, /* U+0025ef: LARGE CIRCLE*/ + 0, /* U+0025f0: WHITE SQUARE WITH UPPER LEFT QUADRANT*/ + 0, /* U+0025f1: WHITE SQUARE WITH LOWER LEFT QUADRANT*/ + 0, /* U+0025f2: WHITE SQUARE WITH LOWER RIGHT QUADRANT*/ + 0, /* U+0025f3: WHITE SQUARE WITH UPPER RIGHT QUADRANT*/ + 0, /* U+0025f4: WHITE CIRCLE WITH UPPER LEFT QUADRANT*/ + 0, /* U+0025f5: WHITE CIRCLE WITH LOWER LEFT QUADRANT*/ + 0, /* U+0025f6: WHITE CIRCLE WITH LOWER RIGHT QUADRANT*/ + 0, /* U+0025f7: WHITE CIRCLE WITH UPPER RIGHT QUADRANT*/ + 0, /* U+0025f8: UPPER LEFT TRIANGLE*/ + 0, /* U+0025f9: UPPER RIGHT TRIANGLE*/ + 0, /* U+0025fa: LOWER LEFT TRIANGLE*/ + 0, /* U+0025fb: WHITE MEDIUM SQUARE*/ + 0, /* U+0025fc: BLACK MEDIUM SQUARE*/ + 0, /* U+0025fd: WHITE MEDIUM SMALL SQUARE*/ + 0, /* U+0025fe: BLACK MEDIUM SMALL SQUARE*/ + 0, /* U+0025ff: LOWER RIGHT TRIANGLE*/ + 0, /* U+002600: BLACK SUN WITH RAYS*/ + 0, /* U+002601: CLOUD*/ + 0, /* U+002602: UMBRELLA*/ + 0, /* U+002603: SNOWMAN*/ + 0, /* U+002604: COMET*/ + 0, /* U+002605: BLACK STAR*/ + 0, /* U+002606: WHITE STAR*/ + 0, /* U+002607: LIGHTNING*/ + 0, /* U+002608: THUNDERSTORM*/ + 0, /* U+002609: SUN*/ + 0, /* U+00260a: ASCENDING NODE*/ + 0, /* U+00260b: DESCENDING NODE*/ + 0, /* U+00260c: CONJUNCTION*/ + 0, /* U+00260d: OPPOSITION*/ + 0, /* U+00260e: BLACK TELEPHONE*/ + 0, /* U+00260f: WHITE TELEPHONE*/ + 0, /* U+002610: BALLOT BOX*/ + 0, /* U+002611: BALLOT BOX WITH CHECK*/ + 0, /* U+002612: BALLOT BOX WITH X*/ + 0, /* U+002613: SALTIRE*/ + 0, /* U+002614: UMBRELLA WITH RAIN DROPS*/ + 0, /* U+002615: HOT BEVERAGE*/ + 0, /* U+002616: WHITE SHOGI PIECE*/ + 0, /* U+002617: BLACK SHOGI PIECE*/ + 0, /* U+002618: SHAMROCK*/ + 0, /* U+002619: REVERSED ROTATED FLORAL HEART BULLET*/ + 0, /* U+00261a: BLACK LEFT POINTING INDEX*/ + 0, /* U+00261b: BLACK RIGHT POINTING INDEX*/ + 0, /* U+00261c: WHITE LEFT POINTING INDEX*/ + 0, /* U+00261d: WHITE UP POINTING INDEX*/ + 0, /* U+00261e: WHITE RIGHT POINTING INDEX*/ + 0, /* U+00261f: WHITE DOWN POINTING INDEX*/ + 0, /* U+002620: SKULL AND CROSSBONES*/ + 0, /* U+002621: CAUTION SIGN*/ + 0, /* U+002622: RADIOACTIVE SIGN*/ + 0, /* U+002623: BIOHAZARD SIGN*/ + 0, /* U+002624: CADUCEUS*/ + 0, /* U+002625: ANKH*/ + 0, /* U+002626: ORTHODOX CROSS*/ + 0, /* U+002627: CHI RHO*/ + 0, /* U+002628: CROSS OF LORRAINE*/ + 0, /* U+002629: CROSS OF JERUSALEM*/ + 0, /* U+00262a: STAR AND CRESCENT*/ + 0, /* U+00262b: FARSI SYMBOL*/ + 0, /* U+00262c: ADI SHAKTI*/ + 0, /* U+00262d: HAMMER AND SICKLE*/ + 0, /* U+00262e: PEACE SYMBOL*/ + 0, /* U+00262f: YIN YANG*/ + 0, /* U+002630: TRIGRAM FOR HEAVEN*/ + 0, /* U+002631: TRIGRAM FOR LAKE*/ + 0, /* U+002632: TRIGRAM FOR FIRE*/ + 0, /* U+002633: TRIGRAM FOR THUNDER*/ + 0, /* U+002634: TRIGRAM FOR WIND*/ + 0, /* U+002635: TRIGRAM FOR WATER*/ + 0, /* U+002636: TRIGRAM FOR MOUNTAIN*/ + 0, /* U+002637: TRIGRAM FOR EARTH*/ + 0, /* U+002638: WHEEL OF DHARMA*/ + 0, /* U+002639: WHITE FROWNING FACE*/ + 0, /* U+00263a: WHITE SMILING FACE*/ + 0, /* U+00263b: BLACK SMILING FACE*/ + 0, /* U+00263c: WHITE SUN WITH RAYS*/ + 0, /* U+00263d: FIRST QUARTER MOON*/ + 0, /* U+00263e: LAST QUARTER MOON*/ + 0, /* U+00263f: MERCURY*/ + 0, /* U+002640: FEMALE SIGN*/ + 0, /* U+002641: EARTH*/ + 0, /* U+002642: MALE SIGN*/ + 0, /* U+002643: JUPITER*/ + 0, /* U+002644: SATURN*/ + 0, /* U+002645: URANUS*/ + 0, /* U+002646: NEPTUNE*/ + 0, /* U+002647: PLUTO*/ + 0, /* U+002648: ARIES*/ + 0, /* U+002649: TAURUS*/ + 0, /* U+00264a: GEMINI*/ + 0, /* U+00264b: CANCER*/ + 0, /* U+00264c: LEO*/ + 0, /* U+00264d: VIRGO*/ + 0, /* U+00264e: LIBRA*/ + 0, /* U+00264f: SCORPIUS*/ + 0, /* U+002650: SAGITTARIUS*/ + 0, /* U+002651: CAPRICORN*/ + 0, /* U+002652: AQUARIUS*/ + 0, /* U+002653: PISCES*/ + 0, /* U+002654: WHITE CHESS KING*/ + 0, /* U+002655: WHITE CHESS QUEEN*/ + 0, /* U+002656: WHITE CHESS ROOK*/ + 0, /* U+002657: WHITE CHESS BISHOP*/ + 0, /* U+002658: WHITE CHESS KNIGHT*/ + 0, /* U+002659: WHITE CHESS PAWN*/ + 0, /* U+00265a: BLACK CHESS KING*/ + 0, /* U+00265b: BLACK CHESS QUEEN*/ + 0, /* U+00265c: BLACK CHESS ROOK*/ + 0, /* U+00265d: BLACK CHESS BISHOP*/ + 0, /* U+00265e: BLACK CHESS KNIGHT*/ + 0, /* U+00265f: BLACK CHESS PAWN*/ + 0, /* U+002660: BLACK SPADE SUIT*/ + 0, /* U+002661: WHITE HEART SUIT*/ + 0, /* U+002662: WHITE DIAMOND SUIT*/ + 0, /* U+002663: BLACK CLUB SUIT*/ + 0, /* U+002664: WHITE SPADE SUIT*/ + 0, /* U+002665: BLACK HEART SUIT*/ + 0, /* U+002666: BLACK DIAMOND SUIT*/ + 0, /* U+002667: WHITE CLUB SUIT*/ + 0, /* U+002668: HOT SPRINGS*/ + 0, /* U+002669: QUARTER NOTE*/ + 0, /* U+00266a: EIGHTH NOTE*/ + 0, /* U+00266b: BEAMED EIGHTH NOTES*/ + 0, /* U+00266c: BEAMED SIXTEENTH NOTES*/ + 0, /* U+00266d: MUSIC FLAT SIGN*/ + 0, /* U+00266e: MUSIC NATURAL SIGN*/ + 0, /* U+00266f: MUSIC SHARP SIGN*/ + 0, /* U+002670: WEST SYRIAC CROSS*/ + 0, /* U+002671: EAST SYRIAC CROSS*/ + 0, /* U+002672: UNIVERSAL RECYCLING SYMBOL*/ + 0, /* U+002673: RECYCLING SYMBOL FOR TYPE-1 PLASTICS*/ + 0, /* U+002674: RECYCLING SYMBOL FOR TYPE-2 PLASTICS*/ + 0, /* U+002675: RECYCLING SYMBOL FOR TYPE-3 PLASTICS*/ + 0, /* U+002676: RECYCLING SYMBOL FOR TYPE-4 PLASTICS*/ + 0, /* U+002677: RECYCLING SYMBOL FOR TYPE-5 PLASTICS*/ + 0, /* U+002678: RECYCLING SYMBOL FOR TYPE-6 PLASTICS*/ + 0, /* U+002679: RECYCLING SYMBOL FOR TYPE-7 PLASTICS*/ + 0, /* U+00267a: RECYCLING SYMBOL FOR GENERIC MATERIALS*/ + 0, /* U+00267b: BLACK UNIVERSAL RECYCLING SYMBOL*/ + 0, /* U+00267c: RECYCLED PAPER SYMBOL*/ + 0, /* U+00267d: PARTIALLY-RECYCLED PAPER SYMBOL*/ + 0, /* U+00267e: PERMANENT PAPER SIGN*/ + 0, /* U+00267f: WHEELCHAIR SYMBOL*/ + 0, /* U+002680: DIE FACE-1*/ + 0, /* U+002681: DIE FACE-2*/ + 0, /* U+002682: DIE FACE-3*/ + 0, /* U+002683: DIE FACE-4*/ + 0, /* U+002684: DIE FACE-5*/ + 0, /* U+002685: DIE FACE-6*/ + 0, /* U+002686: WHITE CIRCLE WITH DOT RIGHT*/ + 0, /* U+002687: WHITE CIRCLE WITH TWO DOTS*/ + 0, /* U+002688: BLACK CIRCLE WITH WHITE DOT RIGHT*/ + 0, /* U+002689: BLACK CIRCLE WITH TWO WHITE DOTS*/ + 0, /* U+00268a: MONOGRAM FOR YANG*/ + 0, /* U+00268b: MONOGRAM FOR YIN*/ + 0, /* U+00268c: DIGRAM FOR GREATER YANG*/ + 0, /* U+00268d: DIGRAM FOR LESSER YIN*/ + 0, /* U+00268e: DIGRAM FOR LESSER YANG*/ + 0, /* U+00268f: DIGRAM FOR GREATER YIN*/ + 0, /* U+002690: WHITE FLAG*/ + 0, /* U+002691: BLACK FLAG*/ + 0, /* U+002692: HAMMER AND PICK*/ + 0, /* U+002693: ANCHOR*/ + 0, /* U+002694: CROSSED SWORDS*/ + 0, /* U+002695: STAFF OF AESCULAPIUS*/ + 0, /* U+002696: SCALES*/ + 0, /* U+002697: ALEMBIC*/ + 0, /* U+002698: FLOWER*/ + 0, /* U+002699: GEAR*/ + 0, /* U+00269a: STAFF OF HERMES*/ + 0, /* U+00269b: ATOM SYMBOL*/ + 0, /* U+00269c: FLEUR-DE-LIS*/ + 0, /* U+00269d: OUTLINED WHITE STAR*/ + 0, /* U+00269e: THREE LINES CONVERGING RIGHT*/ + 0, /* U+00269f: THREE LINES CONVERGING LEFT*/ + 0, /* U+0026a0: WARNING SIGN*/ + 0, /* U+0026a1: HIGH VOLTAGE SIGN*/ + 0, /* U+0026a2: DOUBLED FEMALE SIGN*/ + 0, /* U+0026a3: DOUBLED MALE SIGN*/ + 0, /* U+0026a4: INTERLOCKED FEMALE AND MALE SIGN*/ + 0, /* U+0026a5: MALE AND FEMALE SIGN*/ + 0, /* U+0026a6: MALE WITH STROKE SIGN*/ + 0, /* U+0026a7: MALE WITH STROKE AND MALE AND FEMALE SIGN*/ + 0, /* U+0026a8: VERTICAL MALE WITH STROKE SIGN*/ + 0, /* U+0026a9: HORIZONTAL MALE WITH STROKE SIGN*/ + 0, /* U+0026aa: MEDIUM WHITE CIRCLE*/ + 0, /* U+0026ab: MEDIUM BLACK CIRCLE*/ + 0, /* U+0026ac: MEDIUM SMALL WHITE CIRCLE*/ + 0, /* U+0026ad: MARRIAGE SYMBOL*/ + 0, /* U+0026ae: DIVORCE SYMBOL*/ + 0, /* U+0026af: UNMARRIED PARTNERSHIP SYMBOL*/ + 0, /* U+0026b0: COFFIN*/ + 0, /* U+0026b1: FUNERAL URN*/ + 0, /* U+0026b2: NEUTER*/ + 0, /* U+0026b3: CERES*/ + 0, /* U+0026b4: PALLAS*/ + 0, /* U+0026b5: JUNO*/ + 0, /* U+0026b6: VESTA*/ + 0, /* U+0026b7: CHIRON*/ + 0, /* U+0026b8: BLACK MOON LILITH*/ + 0, /* U+0026b9: SEXTILE*/ + 0, /* U+0026ba: SEMISEXTILE*/ + 0, /* U+0026bb: QUINCUNX*/ + 0, /* U+0026bc: SESQUIQUADRATE*/ + 0, /* U+0026bd: SOCCER BALL*/ + 0, /* U+0026be: BASEBALL*/ + 0, /* U+0026bf: SQUARED KEY*/ + 0, /* U+0026c0: WHITE DRAUGHTS MAN*/ + 0, /* U+0026c1: WHITE DRAUGHTS KING*/ + 0, /* U+0026c2: BLACK DRAUGHTS MAN*/ + 0, /* U+0026c3: BLACK DRAUGHTS KING*/ + 0, /* U+0026c4: SNOWMAN WITHOUT SNOW*/ + 0, /* U+0026c5: SUN BEHIND CLOUD*/ + 0, /* U+0026c6: RAIN*/ + 0, /* U+0026c7: BLACK SNOWMAN*/ + 0, /* U+0026c8: THUNDER CLOUD AND RAIN*/ + 0, /* U+0026c9: TURNED WHITE SHOGI PIECE*/ + 0, /* U+0026ca: TURNED BLACK SHOGI PIECE*/ + 0, /* U+0026cb: WHITE DIAMOND IN SQUARE*/ + 0, /* U+0026cc: CROSSING LANES*/ + 0, /* U+0026cd: DISABLED CAR*/ + 0, /* U+0026ce: OPHIUCHUS*/ + 0, /* U+0026cf: PICK*/ + 0, /* U+0026d0: CAR SLIDING*/ + 0, /* U+0026d1: HELMET WITH WHITE CROSS*/ + 0, /* U+0026d2: CIRCLED CROSSING LANES*/ + 0, /* U+0026d3: CHAINS*/ + 0, /* U+0026d4: NO ENTRY*/ + 0, /* U+0026d5: ALTERNATE ONE-WAY LEFT WAY TRAFFIC*/ + 0, /* U+0026d6: BLACK TWO-WAY LEFT WAY TRAFFIC*/ + 0, /* U+0026d7: WHITE TWO-WAY LEFT WAY TRAFFIC*/ + 0, /* U+0026d8: BLACK LEFT LANE MERGE*/ + 0, /* U+0026d9: WHITE LEFT LANE MERGE*/ + 0, /* U+0026da: DRIVE SLOW SIGN*/ + 0, /* U+0026db: HEAVY WHITE DOWN-POINTING TRIANGLE*/ + 0, /* U+0026dc: LEFT CLOSED ENTRY*/ + 0, /* U+0026dd: SQUARED SALTIRE*/ + 0, /* U+0026de: FALLING DIAGONAL IN WHITE CIRCLE IN BLACK SQUARE*/ + 0, /* U+0026df: BLACK TRUCK*/ + 0, /* U+0026e0: RESTRICTED LEFT ENTRY-1*/ + 0, /* U+0026e1: RESTRICTED LEFT ENTRY-2*/ + 0, /* U+0026e2: ASTRONOMICAL SYMBOL FOR URANUS*/ + 0, /* U+0026e3: HEAVY CIRCLE WITH STROKE AND TWO DOTS ABOVE*/ + 0, /* U+0026e4: PENTAGRAM*/ + 0, /* U+0026e5: RIGHT-HANDED INTERLACED PENTAGRAM*/ + 0, /* U+0026e6: LEFT-HANDED INTERLACED PENTAGRAM*/ + 0, /* U+0026e7: INVERTED PENTAGRAM*/ + 0, /* U+0026e8: BLACK CROSS ON SHIELD*/ + 0, /* U+0026e9: SHINTO SHRINE*/ + 0, /* U+0026ea: CHURCH*/ + 0, /* U+0026eb: CASTLE*/ + 0, /* U+0026ec: HISTORIC SITE*/ + 0, /* U+0026ed: GEAR WITHOUT HUB*/ + 0, /* U+0026ee: GEAR WITH HANDLES*/ + 0, /* U+0026ef: MAP SYMBOL FOR LIGHTHOUSE*/ + 0, /* U+0026f0: MOUNTAIN*/ + 0, /* U+0026f1: UMBRELLA ON GROUND*/ + 0, /* U+0026f2: FOUNTAIN*/ + 0, /* U+0026f3: FLAG IN HOLE*/ + 0, /* U+0026f4: FERRY*/ + 0, /* U+0026f5: SAILBOAT*/ + 0, /* U+0026f6: SQUARE FOUR CORNERS*/ + 0, /* U+0026f7: SKIER*/ + 0, /* U+0026f8: ICE SKATE*/ + 0, /* U+0026f9: PERSON WITH BALL*/ + 0, /* U+0026fa: TENT*/ + 0, /* U+0026fb: JAPANESE BANK SYMBOL*/ + 0, /* U+0026fc: HEADSTONE GRAVEYARD SYMBOL*/ + 0, /* U+0026fd: FUEL PUMP*/ + 0, /* U+0026fe: CUP ON BLACK SQUARE*/ + 0, /* U+0026ff: WHITE FLAG WITH HORIZONTAL MIDDLE BLACK STRIPE*/ + 0, /* U+002700: */ + 0, /* U+002701: UPPER BLADE SCISSORS*/ + 0, /* U+002702: BLACK SCISSORS*/ + 0, /* U+002703: LOWER BLADE SCISSORS*/ + 0, /* U+002704: WHITE SCISSORS*/ + 0, /* U+002705: WHITE HEAVY CHECK MARK*/ + 0, /* U+002706: TELEPHONE LOCATION SIGN*/ + 0, /* U+002707: TAPE DRIVE*/ + 0, /* U+002708: AIRPLANE*/ + 0, /* U+002709: ENVELOPE*/ + 0, /* U+00270a: RAISED FIST*/ + 0, /* U+00270b: RAISED HAND*/ + 0, /* U+00270c: VICTORY HAND*/ + 0, /* U+00270d: WRITING HAND*/ + 0, /* U+00270e: LOWER RIGHT PENCIL*/ + 0, /* U+00270f: PENCIL*/ + 0, /* U+002710: UPPER RIGHT PENCIL*/ + 0, /* U+002711: WHITE NIB*/ + 0, /* U+002712: BLACK NIB*/ + 0, /* U+002713: CHECK MARK*/ + 0, /* U+002714: HEAVY CHECK MARK*/ + 0, /* U+002715: MULTIPLICATION X*/ + 0, /* U+002716: HEAVY MULTIPLICATION X*/ + 0, /* U+002717: BALLOT X*/ + 0, /* U+002718: HEAVY BALLOT X*/ + 0, /* U+002719: OUTLINED GREEK CROSS*/ + 0, /* U+00271a: HEAVY GREEK CROSS*/ + 0, /* U+00271b: OPEN CENTRE CROSS*/ + 0, /* U+00271c: HEAVY OPEN CENTRE CROSS*/ + 0, /* U+00271d: LATIN CROSS*/ + 0, /* U+00271e: SHADOWED WHITE LATIN CROSS*/ + 0, /* U+00271f: OUTLINED LATIN CROSS*/ + 0, /* U+002720: MALTESE CROSS*/ + 0, /* U+002721: STAR OF DAVID*/ + 0, /* U+002722: FOUR TEARDROP-SPOKED ASTERISK*/ + 0, /* U+002723: FOUR BALLOON-SPOKED ASTERISK*/ + 0, /* U+002724: HEAVY FOUR BALLOON-SPOKED ASTERISK*/ + 0, /* U+002725: FOUR CLUB-SPOKED ASTERISK*/ + 0, /* U+002726: BLACK FOUR POINTED STAR*/ + 0, /* U+002727: WHITE FOUR POINTED STAR*/ + 0, /* U+002728: SPARKLES*/ + 0, /* U+002729: STRESS OUTLINED WHITE STAR*/ + 0, /* U+00272a: CIRCLED WHITE STAR*/ + 0, /* U+00272b: OPEN CENTRE BLACK STAR*/ + 0, /* U+00272c: BLACK CENTRE WHITE STAR*/ + 0, /* U+00272d: OUTLINED BLACK STAR*/ + 0, /* U+00272e: HEAVY OUTLINED BLACK STAR*/ + 0, /* U+00272f: PINWHEEL STAR*/ + 0, /* U+002730: SHADOWED WHITE STAR*/ + 0, /* U+002731: HEAVY ASTERISK*/ + 0, /* U+002732: OPEN CENTRE ASTERISK*/ + 0, /* U+002733: EIGHT SPOKED ASTERISK*/ + 0, /* U+002734: EIGHT POINTED BLACK STAR*/ + 0, /* U+002735: EIGHT POINTED PINWHEEL STAR*/ + 0, /* U+002736: SIX POINTED BLACK STAR*/ + 0, /* U+002737: EIGHT POINTED RECTILINEAR BLACK STAR*/ + 0, /* U+002738: HEAVY EIGHT POINTED RECTILINEAR BLACK STAR*/ + 0, /* U+002739: TWELVE POINTED BLACK STAR*/ + 0, /* U+00273a: SIXTEEN POINTED ASTERISK*/ + 0, /* U+00273b: TEARDROP-SPOKED ASTERISK*/ + 0, /* U+00273c: OPEN CENTRE TEARDROP-SPOKED ASTERISK*/ + 0, /* U+00273d: HEAVY TEARDROP-SPOKED ASTERISK*/ + 0, /* U+00273e: SIX PETALLED BLACK AND WHITE FLORETTE*/ + 0, /* U+00273f: BLACK FLORETTE*/ + 0, /* U+002740: WHITE FLORETTE*/ + 0, /* U+002741: EIGHT PETALLED OUTLINED BLACK FLORETTE*/ + 0, /* U+002742: CIRCLED OPEN CENTRE EIGHT POINTED STAR*/ + 0, /* U+002743: HEAVY TEARDROP-SPOKED PINWHEEL ASTERISK*/ + 0, /* U+002744: SNOWFLAKE*/ + 0, /* U+002745: TIGHT TRIFOLIATE SNOWFLAKE*/ + 0, /* U+002746: HEAVY CHEVRON SNOWFLAKE*/ + 0, /* U+002747: SPARKLE*/ + 0, /* U+002748: HEAVY SPARKLE*/ + 0, /* U+002749: BALLOON-SPOKED ASTERISK*/ + 0, /* U+00274a: EIGHT TEARDROP-SPOKED PROPELLER ASTERISK*/ + 0, /* U+00274b: HEAVY EIGHT TEARDROP-SPOKED PROPELLER ASTERISK*/ + 0, /* U+00274c: CROSS MARK*/ + 0, /* U+00274d: SHADOWED WHITE CIRCLE*/ + 0, /* U+00274e: NEGATIVE SQUARED CROSS MARK*/ + 0, /* U+00274f: LOWER RIGHT DROP-SHADOWED WHITE SQUARE*/ + 0, /* U+002750: UPPER RIGHT DROP-SHADOWED WHITE SQUARE*/ + 0, /* U+002751: LOWER RIGHT SHADOWED WHITE SQUARE*/ + 0, /* U+002752: UPPER RIGHT SHADOWED WHITE SQUARE*/ + 0, /* U+002753: BLACK QUESTION MARK ORNAMENT*/ + 0, /* U+002754: WHITE QUESTION MARK ORNAMENT*/ + 0, /* U+002755: WHITE EXCLAMATION MARK ORNAMENT*/ + 0, /* U+002756: BLACK DIAMOND MINUS WHITE X*/ + 0, /* U+002757: HEAVY EXCLAMATION MARK SYMBOL*/ + 0, /* U+002758: LIGHT VERTICAL BAR*/ + 0, /* U+002759: MEDIUM VERTICAL BAR*/ + 0, /* U+00275a: HEAVY VERTICAL BAR*/ + 0, /* U+00275b: HEAVY SINGLE TURNED COMMA QUOTATION MARK ORNAMENT*/ + 0, /* U+00275c: HEAVY SINGLE COMMA QUOTATION MARK ORNAMENT*/ + 0, /* U+00275d: HEAVY DOUBLE TURNED COMMA QUOTATION MARK ORNAMENT*/ + 0, /* U+00275e: HEAVY DOUBLE COMMA QUOTATION MARK ORNAMENT*/ + 0, /* U+00275f: HEAVY LOW SINGLE COMMA QUOTATION MARK ORNAMENT*/ + 0, /* U+002760: HEAVY LOW DOUBLE COMMA QUOTATION MARK ORNAMENT*/ + 0, /* U+002761: CURVED STEM PARAGRAPH SIGN ORNAMENT*/ + 0, /* U+002762: HEAVY EXCLAMATION MARK ORNAMENT*/ + 0, /* U+002763: HEAVY HEART EXCLAMATION MARK ORNAMENT*/ + 0, /* U+002764: HEAVY BLACK HEART*/ + 0, /* U+002765: ROTATED HEAVY BLACK HEART BULLET*/ + 0, /* U+002766: FLORAL HEART*/ + 0, /* U+002767: ROTATED FLORAL HEART BULLET*/ + 0, /* U+002768: MEDIUM LEFT PARENTHESIS ORNAMENT*/ + 0, /* U+002769: MEDIUM RIGHT PARENTHESIS ORNAMENT*/ + 0, /* U+00276a: MEDIUM FLATTENED LEFT PARENTHESIS ORNAMENT*/ + 0, /* U+00276b: MEDIUM FLATTENED RIGHT PARENTHESIS ORNAMENT*/ + 0, /* U+00276c: MEDIUM LEFT-POINTING ANGLE BRACKET ORNAMENT*/ + 0, /* U+00276d: MEDIUM RIGHT-POINTING ANGLE BRACKET ORNAMENT*/ + 0, /* U+00276e: HEAVY LEFT-POINTING ANGLE QUOTATION MARK ORNAMENT*/ + 0, /* U+00276f: HEAVY RIGHT-POINTING ANGLE QUOTATION MARK ORNAMENT*/ + 0, /* U+002770: HEAVY LEFT-POINTING ANGLE BRACKET ORNAMENT*/ + 0, /* U+002771: HEAVY RIGHT-POINTING ANGLE BRACKET ORNAMENT*/ + 0, /* U+002772: LIGHT LEFT TORTOISE SHELL BRACKET ORNAMENT*/ + 0, /* U+002773: LIGHT RIGHT TORTOISE SHELL BRACKET ORNAMENT*/ + 0, /* U+002774: MEDIUM LEFT CURLY BRACKET ORNAMENT*/ + 0, /* U+002775: MEDIUM RIGHT CURLY BRACKET ORNAMENT*/ + 0, /* U+002776: DINGBAT NEGATIVE CIRCLED DIGIT ONE*/ + 0, /* U+002777: DINGBAT NEGATIVE CIRCLED DIGIT TWO*/ + 0, /* U+002778: DINGBAT NEGATIVE CIRCLED DIGIT THREE*/ + 0, /* U+002779: DINGBAT NEGATIVE CIRCLED DIGIT FOUR*/ + 0, /* U+00277a: DINGBAT NEGATIVE CIRCLED DIGIT FIVE*/ + 0, /* U+00277b: DINGBAT NEGATIVE CIRCLED DIGIT SIX*/ + 0, /* U+00277c: DINGBAT NEGATIVE CIRCLED DIGIT SEVEN*/ + 0, /* U+00277d: DINGBAT NEGATIVE CIRCLED DIGIT EIGHT*/ + 0, /* U+00277e: DINGBAT NEGATIVE CIRCLED DIGIT NINE*/ + 0, /* U+00277f: DINGBAT NEGATIVE CIRCLED NUMBER TEN*/ + 0, /* U+002780: DINGBAT CIRCLED SANS-SERIF DIGIT ONE*/ + 0, /* U+002781: DINGBAT CIRCLED SANS-SERIF DIGIT TWO*/ + 0, /* U+002782: DINGBAT CIRCLED SANS-SERIF DIGIT THREE*/ + 0, /* U+002783: DINGBAT CIRCLED SANS-SERIF DIGIT FOUR*/ + 0, /* U+002784: DINGBAT CIRCLED SANS-SERIF DIGIT FIVE*/ + 0, /* U+002785: DINGBAT CIRCLED SANS-SERIF DIGIT SIX*/ + 0, /* U+002786: DINGBAT CIRCLED SANS-SERIF DIGIT SEVEN*/ + 0, /* U+002787: DINGBAT CIRCLED SANS-SERIF DIGIT EIGHT*/ + 0, /* U+002788: DINGBAT CIRCLED SANS-SERIF DIGIT NINE*/ + 0, /* U+002789: DINGBAT CIRCLED SANS-SERIF NUMBER TEN*/ + 0, /* U+00278a: DINGBAT NEGATIVE CIRCLED SANS-SERIF DIGIT ONE*/ + 0, /* U+00278b: DINGBAT NEGATIVE CIRCLED SANS-SERIF DIGIT TWO*/ + 0, /* U+00278c: DINGBAT NEGATIVE CIRCLED SANS-SERIF DIGIT THREE*/ + 0, /* U+00278d: DINGBAT NEGATIVE CIRCLED SANS-SERIF DIGIT FOUR*/ + 0, /* U+00278e: DINGBAT NEGATIVE CIRCLED SANS-SERIF DIGIT FIVE*/ + 0, /* U+00278f: DINGBAT NEGATIVE CIRCLED SANS-SERIF DIGIT SIX*/ + 0, /* U+002790: DINGBAT NEGATIVE CIRCLED SANS-SERIF DIGIT SEVEN*/ + 0, /* U+002791: DINGBAT NEGATIVE CIRCLED SANS-SERIF DIGIT EIGHT*/ + 0, /* U+002792: DINGBAT NEGATIVE CIRCLED SANS-SERIF DIGIT NINE*/ + 0, /* U+002793: DINGBAT NEGATIVE CIRCLED SANS-SERIF NUMBER TEN*/ + 0, /* U+002794: HEAVY WIDE-HEADED RIGHTWARDS ARROW*/ + 0, /* U+002795: HEAVY PLUS SIGN*/ + 0, /* U+002796: HEAVY MINUS SIGN*/ + 0, /* U+002797: HEAVY DIVISION SIGN*/ + 0, /* U+002798: HEAVY SOUTH EAST ARROW*/ + 0, /* U+002799: HEAVY RIGHTWARDS ARROW*/ + 0, /* U+00279a: HEAVY NORTH EAST ARROW*/ + 0, /* U+00279b: DRAFTING POINT RIGHTWARDS ARROW*/ + 0, /* U+00279c: HEAVY ROUND-TIPPED RIGHTWARDS ARROW*/ + 0, /* U+00279d: TRIANGLE-HEADED RIGHTWARDS ARROW*/ + 0, /* U+00279e: HEAVY TRIANGLE-HEADED RIGHTWARDS ARROW*/ + 0, /* U+00279f: DASHED TRIANGLE-HEADED RIGHTWARDS ARROW*/ + 0, /* U+0027a0: HEAVY DASHED TRIANGLE-HEADED RIGHTWARDS ARROW*/ + 0, /* U+0027a1: BLACK RIGHTWARDS ARROW*/ + 0, /* U+0027a2: THREE-D TOP-LIGHTED RIGHTWARDS ARROWHEAD*/ + 0, /* U+0027a3: THREE-D BOTTOM-LIGHTED RIGHTWARDS ARROWHEAD*/ + 0, /* U+0027a4: BLACK RIGHTWARDS ARROWHEAD*/ + 0, /* U+0027a5: HEAVY BLACK CURVED DOWNWARDS AND RIGHTWARDS ARROW*/ + 0, /* U+0027a6: HEAVY BLACK CURVED UPWARDS AND RIGHTWARDS ARROW*/ + 0, /* U+0027a7: SQUAT BLACK RIGHTWARDS ARROW*/ + 0, /* U+0027a8: HEAVY CONCAVE-POINTED BLACK RIGHTWARDS ARROW*/ + 0, /* U+0027a9: RIGHT-SHADED WHITE RIGHTWARDS ARROW*/ + 0, /* U+0027aa: LEFT-SHADED WHITE RIGHTWARDS ARROW*/ + 0, /* U+0027ab: BACK-TILTED SHADOWED WHITE RIGHTWARDS ARROW*/ + 0, /* U+0027ac: FRONT-TILTED SHADOWED WHITE RIGHTWARDS ARROW*/ + 0, /* U+0027ad: HEAVY LOWER RIGHT-SHADOWED WHITE RIGHTWARDS ARROW*/ + 0, /* U+0027ae: HEAVY UPPER RIGHT-SHADOWED WHITE RIGHTWARDS ARROW*/ + 0, /* U+0027af: NOTCHED LOWER RIGHT-SHADOWED WHITE RIGHTWARDS ARROW*/ + 0, /* U+0027b0: CURLY LOOP*/ + 0, /* U+0027b1: NOTCHED UPPER RIGHT-SHADOWED WHITE RIGHTWARDS ARROW*/ + 0, /* U+0027b2: CIRCLED HEAVY WHITE RIGHTWARDS ARROW*/ + 0, /* U+0027b3: WHITE-FEATHERED RIGHTWARDS ARROW*/ + 0, /* U+0027b4: BLACK-FEATHERED SOUTH EAST ARROW*/ + 0, /* U+0027b5: BLACK-FEATHERED RIGHTWARDS ARROW*/ + 0, /* U+0027b6: BLACK-FEATHERED NORTH EAST ARROW*/ + 0, /* U+0027b7: HEAVY BLACK-FEATHERED SOUTH EAST ARROW*/ + 0, /* U+0027b8: HEAVY BLACK-FEATHERED RIGHTWARDS ARROW*/ + 0, /* U+0027b9: HEAVY BLACK-FEATHERED NORTH EAST ARROW*/ + 0, /* U+0027ba: TEARDROP-BARBED RIGHTWARDS ARROW*/ + 0, /* U+0027bb: HEAVY TEARDROP-SHANKED RIGHTWARDS ARROW*/ + 0, /* U+0027bc: WEDGE-TAILED RIGHTWARDS ARROW*/ + 0, /* U+0027bd: HEAVY WEDGE-TAILED RIGHTWARDS ARROW*/ + 0, /* U+0027be: OPEN-OUTLINED RIGHTWARDS ARROW*/ + 0, /* U+0027bf: DOUBLE CURLY LOOP*/ + 0, /* U+0027c0: THREE DIMENSIONAL ANGLE*/ + 0, /* U+0027c1: WHITE TRIANGLE CONTAINING SMALL WHITE TRIANGLE*/ + 0, /* U+0027c2: PERPENDICULAR*/ + 0, /* U+0027c3: OPEN SUBSET*/ + 0, /* U+0027c4: OPEN SUPERSET*/ + 0, /* U+0027c5: LEFT S-SHAPED BAG DELIMITER*/ + 0, /* U+0027c6: RIGHT S-SHAPED BAG DELIMITER*/ + 0, /* U+0027c7: OR WITH DOT INSIDE*/ + 0, /* U+0027c8: REVERSE SOLIDUS PRECEDING SUBSET*/ + 0, /* U+0027c9: SUPERSET PRECEDING SOLIDUS*/ + 0, /* U+0027ca: VERTICAL BAR WITH HORIZONTAL STROKE*/ + 0, /* U+0027cb: MATHEMATICAL RISING DIAGONAL*/ + 0, /* U+0027cc: LONG DIVISION*/ + 0, /* U+0027cd: MATHEMATICAL FALLING DIAGONAL*/ + 0, /* U+0027ce: SQUARED LOGICAL AND*/ + 0, /* U+0027cf: SQUARED LOGICAL OR*/ + 0, /* U+0027d0: WHITE DIAMOND WITH CENTRED DOT*/ + 0, /* U+0027d1: AND WITH DOT*/ + 0, /* U+0027d2: ELEMENT OF OPENING UPWARDS*/ + 0, /* U+0027d3: LOWER RIGHT CORNER WITH DOT*/ + 0, /* U+0027d4: UPPER LEFT CORNER WITH DOT*/ + 0, /* U+0027d5: LEFT OUTER JOIN*/ + 0, /* U+0027d6: RIGHT OUTER JOIN*/ + 0, /* U+0027d7: FULL OUTER JOIN*/ + 0, /* U+0027d8: LARGE UP TACK*/ + 0, /* U+0027d9: LARGE DOWN TACK*/ + 0, /* U+0027da: LEFT AND RIGHT DOUBLE TURNSTILE*/ + 0, /* U+0027db: LEFT AND RIGHT TACK*/ + 0, /* U+0027dc: LEFT MULTIMAP*/ + 0, /* U+0027dd: LONG RIGHT TACK*/ + 0, /* U+0027de: LONG LEFT TACK*/ + 0, /* U+0027df: UP TACK WITH CIRCLE ABOVE*/ + 0, /* U+0027e0: LOZENGE DIVIDED BY HORIZONTAL RULE*/ + 0, /* U+0027e1: WHITE CONCAVE-SIDED DIAMOND*/ + 0, /* U+0027e2: WHITE CONCAVE-SIDED DIAMOND WITH LEFTWARDS TICK*/ + 0, /* U+0027e3: WHITE CONCAVE-SIDED DIAMOND WITH RIGHTWARDS TICK*/ + 0, /* U+0027e4: WHITE SQUARE WITH LEFTWARDS TICK*/ + 0, /* U+0027e5: WHITE SQUARE WITH RIGHTWARDS TICK*/ + 0, /* U+0027e6: MATHEMATICAL LEFT WHITE SQUARE BRACKET*/ + 0, /* U+0027e7: MATHEMATICAL RIGHT WHITE SQUARE BRACKET*/ + 0, /* U+0027e8: MATHEMATICAL LEFT ANGLE BRACKET*/ + 0, /* U+0027e9: MATHEMATICAL RIGHT ANGLE BRACKET*/ + 0, /* U+0027ea: MATHEMATICAL LEFT DOUBLE ANGLE BRACKET*/ + 0, /* U+0027eb: MATHEMATICAL RIGHT DOUBLE ANGLE BRACKET*/ + 0, /* U+0027ec: MATHEMATICAL LEFT WHITE TORTOISE SHELL BRACKET*/ + 0, /* U+0027ed: MATHEMATICAL RIGHT WHITE TORTOISE SHELL BRACKET*/ + 0, /* U+0027ee: MATHEMATICAL LEFT FLATTENED PARENTHESIS*/ + 0, /* U+0027ef: MATHEMATICAL RIGHT FLATTENED PARENTHESIS*/ + 0, /* U+0027f0: UPWARDS QUADRUPLE ARROW*/ + 0, /* U+0027f1: DOWNWARDS QUADRUPLE ARROW*/ + 0, /* U+0027f2: ANTICLOCKWISE GAPPED CIRCLE ARROW*/ + 0, /* U+0027f3: CLOCKWISE GAPPED CIRCLE ARROW*/ + 0, /* U+0027f4: RIGHT ARROW WITH CIRCLED PLUS*/ + 0, /* U+0027f5: LONG LEFTWARDS ARROW*/ + 0, /* U+0027f6: LONG RIGHTWARDS ARROW*/ + 0, /* U+0027f7: LONG LEFT RIGHT ARROW*/ + 0, /* U+0027f8: LONG LEFTWARDS DOUBLE ARROW*/ + 0, /* U+0027f9: LONG RIGHTWARDS DOUBLE ARROW*/ + 0, /* U+0027fa: LONG LEFT RIGHT DOUBLE ARROW*/ + 0, /* U+0027fb: LONG LEFTWARDS ARROW FROM BAR*/ + 0, /* U+0027fc: LONG RIGHTWARDS ARROW FROM BAR*/ + 0, /* U+0027fd: LONG LEFTWARDS DOUBLE ARROW FROM BAR*/ + 0, /* U+0027fe: LONG RIGHTWARDS DOUBLE ARROW FROM BAR*/ + 0, /* U+0027ff: LONG RIGHTWARDS SQUIGGLE ARROW*/ + 0, /* U+002800: BRAILLE PATTERN BLANK*/ + 0, /* U+002801: BRAILLE PATTERN DOTS-1*/ + 0, /* U+002802: BRAILLE PATTERN DOTS-2*/ + 0, /* U+002803: BRAILLE PATTERN DOTS-12*/ + 0, /* U+002804: BRAILLE PATTERN DOTS-3*/ + 0, /* U+002805: BRAILLE PATTERN DOTS-13*/ + 0, /* U+002806: BRAILLE PATTERN DOTS-23*/ + 0, /* U+002807: BRAILLE PATTERN DOTS-123*/ + 0, /* U+002808: BRAILLE PATTERN DOTS-4*/ + 0, /* U+002809: BRAILLE PATTERN DOTS-14*/ + 0, /* U+00280a: BRAILLE PATTERN DOTS-24*/ + 0, /* U+00280b: BRAILLE PATTERN DOTS-124*/ + 0, /* U+00280c: BRAILLE PATTERN DOTS-34*/ + 0, /* U+00280d: BRAILLE PATTERN DOTS-134*/ + 0, /* U+00280e: BRAILLE PATTERN DOTS-234*/ + 0, /* U+00280f: BRAILLE PATTERN DOTS-1234*/ + 0, /* U+002810: BRAILLE PATTERN DOTS-5*/ + 0, /* U+002811: BRAILLE PATTERN DOTS-15*/ + 0, /* U+002812: BRAILLE PATTERN DOTS-25*/ + 0, /* U+002813: BRAILLE PATTERN DOTS-125*/ + 0, /* U+002814: BRAILLE PATTERN DOTS-35*/ + 0, /* U+002815: BRAILLE PATTERN DOTS-135*/ + 0, /* U+002816: BRAILLE PATTERN DOTS-235*/ + 0, /* U+002817: BRAILLE PATTERN DOTS-1235*/ + 0, /* U+002818: BRAILLE PATTERN DOTS-45*/ + 0, /* U+002819: BRAILLE PATTERN DOTS-145*/ + 0, /* U+00281a: BRAILLE PATTERN DOTS-245*/ + 0, /* U+00281b: BRAILLE PATTERN DOTS-1245*/ + 0, /* U+00281c: BRAILLE PATTERN DOTS-345*/ + 0, /* U+00281d: BRAILLE PATTERN DOTS-1345*/ + 0, /* U+00281e: BRAILLE PATTERN DOTS-2345*/ + 0, /* U+00281f: BRAILLE PATTERN DOTS-12345*/ + 0, /* U+002820: BRAILLE PATTERN DOTS-6*/ + 0, /* U+002821: BRAILLE PATTERN DOTS-16*/ + 0, /* U+002822: BRAILLE PATTERN DOTS-26*/ + 0, /* U+002823: BRAILLE PATTERN DOTS-126*/ + 0, /* U+002824: BRAILLE PATTERN DOTS-36*/ + 0, /* U+002825: BRAILLE PATTERN DOTS-136*/ + 0, /* U+002826: BRAILLE PATTERN DOTS-236*/ + 0, /* U+002827: BRAILLE PATTERN DOTS-1236*/ + 0, /* U+002828: BRAILLE PATTERN DOTS-46*/ + 0, /* U+002829: BRAILLE PATTERN DOTS-146*/ + 0, /* U+00282a: BRAILLE PATTERN DOTS-246*/ + 0, /* U+00282b: BRAILLE PATTERN DOTS-1246*/ + 0, /* U+00282c: BRAILLE PATTERN DOTS-346*/ + 0, /* U+00282d: BRAILLE PATTERN DOTS-1346*/ + 0, /* U+00282e: BRAILLE PATTERN DOTS-2346*/ + 0, /* U+00282f: BRAILLE PATTERN DOTS-12346*/ + 0, /* U+002830: BRAILLE PATTERN DOTS-56*/ + 0, /* U+002831: BRAILLE PATTERN DOTS-156*/ + 0, /* U+002832: BRAILLE PATTERN DOTS-256*/ + 0, /* U+002833: BRAILLE PATTERN DOTS-1256*/ + 0, /* U+002834: BRAILLE PATTERN DOTS-356*/ + 0, /* U+002835: BRAILLE PATTERN DOTS-1356*/ + 0, /* U+002836: BRAILLE PATTERN DOTS-2356*/ + 0, /* U+002837: BRAILLE PATTERN DOTS-12356*/ + 0, /* U+002838: BRAILLE PATTERN DOTS-456*/ + 0, /* U+002839: BRAILLE PATTERN DOTS-1456*/ + 0, /* U+00283a: BRAILLE PATTERN DOTS-2456*/ + 0, /* U+00283b: BRAILLE PATTERN DOTS-12456*/ + 0, /* U+00283c: BRAILLE PATTERN DOTS-3456*/ + 0, /* U+00283d: BRAILLE PATTERN DOTS-13456*/ + 0, /* U+00283e: BRAILLE PATTERN DOTS-23456*/ + 0, /* U+00283f: BRAILLE PATTERN DOTS-123456*/ + 0, /* U+002840: BRAILLE PATTERN DOTS-7*/ + 0, /* U+002841: BRAILLE PATTERN DOTS-17*/ + 0, /* U+002842: BRAILLE PATTERN DOTS-27*/ + 0, /* U+002843: BRAILLE PATTERN DOTS-127*/ + 0, /* U+002844: BRAILLE PATTERN DOTS-37*/ + 0, /* U+002845: BRAILLE PATTERN DOTS-137*/ + 0, /* U+002846: BRAILLE PATTERN DOTS-237*/ + 0, /* U+002847: BRAILLE PATTERN DOTS-1237*/ + 0, /* U+002848: BRAILLE PATTERN DOTS-47*/ + 0, /* U+002849: BRAILLE PATTERN DOTS-147*/ + 0, /* U+00284a: BRAILLE PATTERN DOTS-247*/ + 0, /* U+00284b: BRAILLE PATTERN DOTS-1247*/ + 0, /* U+00284c: BRAILLE PATTERN DOTS-347*/ + 0, /* U+00284d: BRAILLE PATTERN DOTS-1347*/ + 0, /* U+00284e: BRAILLE PATTERN DOTS-2347*/ + 0, /* U+00284f: BRAILLE PATTERN DOTS-12347*/ + 0, /* U+002850: BRAILLE PATTERN DOTS-57*/ + 0, /* U+002851: BRAILLE PATTERN DOTS-157*/ + 0, /* U+002852: BRAILLE PATTERN DOTS-257*/ + 0, /* U+002853: BRAILLE PATTERN DOTS-1257*/ + 0, /* U+002854: BRAILLE PATTERN DOTS-357*/ + 0, /* U+002855: BRAILLE PATTERN DOTS-1357*/ + 0, /* U+002856: BRAILLE PATTERN DOTS-2357*/ + 0, /* U+002857: BRAILLE PATTERN DOTS-12357*/ + 0, /* U+002858: BRAILLE PATTERN DOTS-457*/ + 0, /* U+002859: BRAILLE PATTERN DOTS-1457*/ + 0, /* U+00285a: BRAILLE PATTERN DOTS-2457*/ + 0, /* U+00285b: BRAILLE PATTERN DOTS-12457*/ + 0, /* U+00285c: BRAILLE PATTERN DOTS-3457*/ + 0, /* U+00285d: BRAILLE PATTERN DOTS-13457*/ + 0, /* U+00285e: BRAILLE PATTERN DOTS-23457*/ + 0, /* U+00285f: BRAILLE PATTERN DOTS-123457*/ + 0, /* U+002860: BRAILLE PATTERN DOTS-67*/ + 0, /* U+002861: BRAILLE PATTERN DOTS-167*/ + 0, /* U+002862: BRAILLE PATTERN DOTS-267*/ + 0, /* U+002863: BRAILLE PATTERN DOTS-1267*/ + 0, /* U+002864: BRAILLE PATTERN DOTS-367*/ + 0, /* U+002865: BRAILLE PATTERN DOTS-1367*/ + 0, /* U+002866: BRAILLE PATTERN DOTS-2367*/ + 0, /* U+002867: BRAILLE PATTERN DOTS-12367*/ + 0, /* U+002868: BRAILLE PATTERN DOTS-467*/ + 0, /* U+002869: BRAILLE PATTERN DOTS-1467*/ + 0, /* U+00286a: BRAILLE PATTERN DOTS-2467*/ + 0, /* U+00286b: BRAILLE PATTERN DOTS-12467*/ + 0, /* U+00286c: BRAILLE PATTERN DOTS-3467*/ + 0, /* U+00286d: BRAILLE PATTERN DOTS-13467*/ + 0, /* U+00286e: BRAILLE PATTERN DOTS-23467*/ + 0, /* U+00286f: BRAILLE PATTERN DOTS-123467*/ + 0, /* U+002870: BRAILLE PATTERN DOTS-567*/ + 0, /* U+002871: BRAILLE PATTERN DOTS-1567*/ + 0, /* U+002872: BRAILLE PATTERN DOTS-2567*/ + 0, /* U+002873: BRAILLE PATTERN DOTS-12567*/ + 0, /* U+002874: BRAILLE PATTERN DOTS-3567*/ + 0, /* U+002875: BRAILLE PATTERN DOTS-13567*/ + 0, /* U+002876: BRAILLE PATTERN DOTS-23567*/ + 0, /* U+002877: BRAILLE PATTERN DOTS-123567*/ + 0, /* U+002878: BRAILLE PATTERN DOTS-4567*/ + 0, /* U+002879: BRAILLE PATTERN DOTS-14567*/ + 0, /* U+00287a: BRAILLE PATTERN DOTS-24567*/ + 0, /* U+00287b: BRAILLE PATTERN DOTS-124567*/ + 0, /* U+00287c: BRAILLE PATTERN DOTS-34567*/ + 0, /* U+00287d: BRAILLE PATTERN DOTS-134567*/ + 0, /* U+00287e: BRAILLE PATTERN DOTS-234567*/ + 0, /* U+00287f: BRAILLE PATTERN DOTS-1234567*/ + 0, /* U+002880: BRAILLE PATTERN DOTS-8*/ + 0, /* U+002881: BRAILLE PATTERN DOTS-18*/ + 0, /* U+002882: BRAILLE PATTERN DOTS-28*/ + 0, /* U+002883: BRAILLE PATTERN DOTS-128*/ + 0, /* U+002884: BRAILLE PATTERN DOTS-38*/ + 0, /* U+002885: BRAILLE PATTERN DOTS-138*/ + 0, /* U+002886: BRAILLE PATTERN DOTS-238*/ + 0, /* U+002887: BRAILLE PATTERN DOTS-1238*/ + 0, /* U+002888: BRAILLE PATTERN DOTS-48*/ + 0, /* U+002889: BRAILLE PATTERN DOTS-148*/ + 0, /* U+00288a: BRAILLE PATTERN DOTS-248*/ + 0, /* U+00288b: BRAILLE PATTERN DOTS-1248*/ + 0, /* U+00288c: BRAILLE PATTERN DOTS-348*/ + 0, /* U+00288d: BRAILLE PATTERN DOTS-1348*/ + 0, /* U+00288e: BRAILLE PATTERN DOTS-2348*/ + 0, /* U+00288f: BRAILLE PATTERN DOTS-12348*/ + 0, /* U+002890: BRAILLE PATTERN DOTS-58*/ + 0, /* U+002891: BRAILLE PATTERN DOTS-158*/ + 0, /* U+002892: BRAILLE PATTERN DOTS-258*/ + 0, /* U+002893: BRAILLE PATTERN DOTS-1258*/ + 0, /* U+002894: BRAILLE PATTERN DOTS-358*/ + 0, /* U+002895: BRAILLE PATTERN DOTS-1358*/ + 0, /* U+002896: BRAILLE PATTERN DOTS-2358*/ + 0, /* U+002897: BRAILLE PATTERN DOTS-12358*/ + 0, /* U+002898: BRAILLE PATTERN DOTS-458*/ + 0, /* U+002899: BRAILLE PATTERN DOTS-1458*/ + 0, /* U+00289a: BRAILLE PATTERN DOTS-2458*/ + 0, /* U+00289b: BRAILLE PATTERN DOTS-12458*/ + 0, /* U+00289c: BRAILLE PATTERN DOTS-3458*/ + 0, /* U+00289d: BRAILLE PATTERN DOTS-13458*/ + 0, /* U+00289e: BRAILLE PATTERN DOTS-23458*/ + 0, /* U+00289f: BRAILLE PATTERN DOTS-123458*/ + 0, /* U+0028a0: BRAILLE PATTERN DOTS-68*/ + 0, /* U+0028a1: BRAILLE PATTERN DOTS-168*/ + 0, /* U+0028a2: BRAILLE PATTERN DOTS-268*/ + 0, /* U+0028a3: BRAILLE PATTERN DOTS-1268*/ + 0, /* U+0028a4: BRAILLE PATTERN DOTS-368*/ + 0, /* U+0028a5: BRAILLE PATTERN DOTS-1368*/ + 0, /* U+0028a6: BRAILLE PATTERN DOTS-2368*/ + 0, /* U+0028a7: BRAILLE PATTERN DOTS-12368*/ + 0, /* U+0028a8: BRAILLE PATTERN DOTS-468*/ + 0, /* U+0028a9: BRAILLE PATTERN DOTS-1468*/ + 0, /* U+0028aa: BRAILLE PATTERN DOTS-2468*/ + 0, /* U+0028ab: BRAILLE PATTERN DOTS-12468*/ + 0, /* U+0028ac: BRAILLE PATTERN DOTS-3468*/ + 0, /* U+0028ad: BRAILLE PATTERN DOTS-13468*/ + 0, /* U+0028ae: BRAILLE PATTERN DOTS-23468*/ + 0, /* U+0028af: BRAILLE PATTERN DOTS-123468*/ + 0, /* U+0028b0: BRAILLE PATTERN DOTS-568*/ + 0, /* U+0028b1: BRAILLE PATTERN DOTS-1568*/ + 0, /* U+0028b2: BRAILLE PATTERN DOTS-2568*/ + 0, /* U+0028b3: BRAILLE PATTERN DOTS-12568*/ + 0, /* U+0028b4: BRAILLE PATTERN DOTS-3568*/ + 0, /* U+0028b5: BRAILLE PATTERN DOTS-13568*/ + 0, /* U+0028b6: BRAILLE PATTERN DOTS-23568*/ + 0, /* U+0028b7: BRAILLE PATTERN DOTS-123568*/ + 0, /* U+0028b8: BRAILLE PATTERN DOTS-4568*/ + 0, /* U+0028b9: BRAILLE PATTERN DOTS-14568*/ + 0, /* U+0028ba: BRAILLE PATTERN DOTS-24568*/ + 0, /* U+0028bb: BRAILLE PATTERN DOTS-124568*/ + 0, /* U+0028bc: BRAILLE PATTERN DOTS-34568*/ + 0, /* U+0028bd: BRAILLE PATTERN DOTS-134568*/ + 0, /* U+0028be: BRAILLE PATTERN DOTS-234568*/ + 0, /* U+0028bf: BRAILLE PATTERN DOTS-1234568*/ + 0, /* U+0028c0: BRAILLE PATTERN DOTS-78*/ + 0, /* U+0028c1: BRAILLE PATTERN DOTS-178*/ + 0, /* U+0028c2: BRAILLE PATTERN DOTS-278*/ + 0, /* U+0028c3: BRAILLE PATTERN DOTS-1278*/ + 0, /* U+0028c4: BRAILLE PATTERN DOTS-378*/ + 0, /* U+0028c5: BRAILLE PATTERN DOTS-1378*/ + 0, /* U+0028c6: BRAILLE PATTERN DOTS-2378*/ + 0, /* U+0028c7: BRAILLE PATTERN DOTS-12378*/ + 0, /* U+0028c8: BRAILLE PATTERN DOTS-478*/ + 0, /* U+0028c9: BRAILLE PATTERN DOTS-1478*/ + 0, /* U+0028ca: BRAILLE PATTERN DOTS-2478*/ + 0, /* U+0028cb: BRAILLE PATTERN DOTS-12478*/ + 0, /* U+0028cc: BRAILLE PATTERN DOTS-3478*/ + 0, /* U+0028cd: BRAILLE PATTERN DOTS-13478*/ + 0, /* U+0028ce: BRAILLE PATTERN DOTS-23478*/ + 0, /* U+0028cf: BRAILLE PATTERN DOTS-123478*/ + 0, /* U+0028d0: BRAILLE PATTERN DOTS-578*/ + 0, /* U+0028d1: BRAILLE PATTERN DOTS-1578*/ + 0, /* U+0028d2: BRAILLE PATTERN DOTS-2578*/ + 0, /* U+0028d3: BRAILLE PATTERN DOTS-12578*/ + 0, /* U+0028d4: BRAILLE PATTERN DOTS-3578*/ + 0, /* U+0028d5: BRAILLE PATTERN DOTS-13578*/ + 0, /* U+0028d6: BRAILLE PATTERN DOTS-23578*/ + 0, /* U+0028d7: BRAILLE PATTERN DOTS-123578*/ + 0, /* U+0028d8: BRAILLE PATTERN DOTS-4578*/ + 0, /* U+0028d9: BRAILLE PATTERN DOTS-14578*/ + 0, /* U+0028da: BRAILLE PATTERN DOTS-24578*/ + 0, /* U+0028db: BRAILLE PATTERN DOTS-124578*/ + 0, /* U+0028dc: BRAILLE PATTERN DOTS-34578*/ + 0, /* U+0028dd: BRAILLE PATTERN DOTS-134578*/ + 0, /* U+0028de: BRAILLE PATTERN DOTS-234578*/ + 0, /* U+0028df: BRAILLE PATTERN DOTS-1234578*/ + 0, /* U+0028e0: BRAILLE PATTERN DOTS-678*/ + 0, /* U+0028e1: BRAILLE PATTERN DOTS-1678*/ + 0, /* U+0028e2: BRAILLE PATTERN DOTS-2678*/ + 0, /* U+0028e3: BRAILLE PATTERN DOTS-12678*/ + 0, /* U+0028e4: BRAILLE PATTERN DOTS-3678*/ + 0, /* U+0028e5: BRAILLE PATTERN DOTS-13678*/ + 0, /* U+0028e6: BRAILLE PATTERN DOTS-23678*/ + 0, /* U+0028e7: BRAILLE PATTERN DOTS-123678*/ + 0, /* U+0028e8: BRAILLE PATTERN DOTS-4678*/ + 0, /* U+0028e9: BRAILLE PATTERN DOTS-14678*/ + 0, /* U+0028ea: BRAILLE PATTERN DOTS-24678*/ + 0, /* U+0028eb: BRAILLE PATTERN DOTS-124678*/ + 0, /* U+0028ec: BRAILLE PATTERN DOTS-34678*/ + 0, /* U+0028ed: BRAILLE PATTERN DOTS-134678*/ + 0, /* U+0028ee: BRAILLE PATTERN DOTS-234678*/ + 0, /* U+0028ef: BRAILLE PATTERN DOTS-1234678*/ + 0, /* U+0028f0: BRAILLE PATTERN DOTS-5678*/ + 0, /* U+0028f1: BRAILLE PATTERN DOTS-15678*/ + 0, /* U+0028f2: BRAILLE PATTERN DOTS-25678*/ + 0, /* U+0028f3: BRAILLE PATTERN DOTS-125678*/ + 0, /* U+0028f4: BRAILLE PATTERN DOTS-35678*/ + 0, /* U+0028f5: BRAILLE PATTERN DOTS-135678*/ + 0, /* U+0028f6: BRAILLE PATTERN DOTS-235678*/ + 0, /* U+0028f7: BRAILLE PATTERN DOTS-1235678*/ + 0, /* U+0028f8: BRAILLE PATTERN DOTS-45678*/ + 0, /* U+0028f9: BRAILLE PATTERN DOTS-145678*/ + 0, /* U+0028fa: BRAILLE PATTERN DOTS-245678*/ + 0, /* U+0028fb: BRAILLE PATTERN DOTS-1245678*/ + 0, /* U+0028fc: BRAILLE PATTERN DOTS-345678*/ + 0, /* U+0028fd: BRAILLE PATTERN DOTS-1345678*/ + 0, /* U+0028fe: BRAILLE PATTERN DOTS-2345678*/ + 0, /* U+0028ff: BRAILLE PATTERN DOTS-12345678*/ + 0, /* U+002900: RIGHTWARDS TWO-HEADED ARROW WITH VERTICAL STROKE*/ + 0, /* U+002901: RIGHTWARDS TWO-HEADED ARROW WITH DOUBLE VERTICAL STROKE*/ + 0, /* U+002902: LEFTWARDS DOUBLE ARROW WITH VERTICAL STROKE*/ + 0, /* U+002903: RIGHTWARDS DOUBLE ARROW WITH VERTICAL STROKE*/ + 0, /* U+002904: LEFT RIGHT DOUBLE ARROW WITH VERTICAL STROKE*/ + 0, /* U+002905: RIGHTWARDS TWO-HEADED ARROW FROM BAR*/ + 0, /* U+002906: LEFTWARDS DOUBLE ARROW FROM BAR*/ + 0, /* U+002907: RIGHTWARDS DOUBLE ARROW FROM BAR*/ + 0, /* U+002908: DOWNWARDS ARROW WITH HORIZONTAL STROKE*/ + 0, /* U+002909: UPWARDS ARROW WITH HORIZONTAL STROKE*/ + 0, /* U+00290a: UPWARDS TRIPLE ARROW*/ + 0, /* U+00290b: DOWNWARDS TRIPLE ARROW*/ + 0, /* U+00290c: LEFTWARDS DOUBLE DASH ARROW*/ + 0, /* U+00290d: RIGHTWARDS DOUBLE DASH ARROW*/ + 0, /* U+00290e: LEFTWARDS TRIPLE DASH ARROW*/ + 0, /* U+00290f: RIGHTWARDS TRIPLE DASH ARROW*/ + 0, /* U+002910: RIGHTWARDS TWO-HEADED TRIPLE DASH ARROW*/ + 0, /* U+002911: RIGHTWARDS ARROW WITH DOTTED STEM*/ + 0, /* U+002912: UPWARDS ARROW TO BAR*/ + 0, /* U+002913: DOWNWARDS ARROW TO BAR*/ + 0, /* U+002914: RIGHTWARDS ARROW WITH TAIL WITH VERTICAL STROKE*/ + 0, /* U+002915: RIGHTWARDS ARROW WITH TAIL WITH DOUBLE VERTICAL STROKE*/ + 0, /* U+002916: RIGHTWARDS TWO-HEADED ARROW WITH TAIL*/ + 0, /* U+002917: RIGHTWARDS TWO-HEADED ARROW WITH TAIL WITH VERTICAL STROKE*/ + 0, /* U+002918: RIGHTWARDS TWO-HEADED ARROW WITH TAIL WITH DOUBLE VERTICAL STROKE*/ + 0, /* U+002919: LEFTWARDS ARROW-TAIL*/ + 0, /* U+00291a: RIGHTWARDS ARROW-TAIL*/ + 0, /* U+00291b: LEFTWARDS DOUBLE ARROW-TAIL*/ + 0, /* U+00291c: RIGHTWARDS DOUBLE ARROW-TAIL*/ + 0, /* U+00291d: LEFTWARDS ARROW TO BLACK DIAMOND*/ + 0, /* U+00291e: RIGHTWARDS ARROW TO BLACK DIAMOND*/ + 0, /* U+00291f: LEFTWARDS ARROW FROM BAR TO BLACK DIAMOND*/ + 0, /* U+002920: RIGHTWARDS ARROW FROM BAR TO BLACK DIAMOND*/ + 0, /* U+002921: NORTH WEST AND SOUTH EAST ARROW*/ + 0, /* U+002922: NORTH EAST AND SOUTH WEST ARROW*/ + 0, /* U+002923: NORTH WEST ARROW WITH HOOK*/ + 0, /* U+002924: NORTH EAST ARROW WITH HOOK*/ + 0, /* U+002925: SOUTH EAST ARROW WITH HOOK*/ + 0, /* U+002926: SOUTH WEST ARROW WITH HOOK*/ + 0, /* U+002927: NORTH WEST ARROW AND NORTH EAST ARROW*/ + 0, /* U+002928: NORTH EAST ARROW AND SOUTH EAST ARROW*/ + 0, /* U+002929: SOUTH EAST ARROW AND SOUTH WEST ARROW*/ + 0, /* U+00292a: SOUTH WEST ARROW AND NORTH WEST ARROW*/ + 0, /* U+00292b: RISING DIAGONAL CROSSING FALLING DIAGONAL*/ + 0, /* U+00292c: FALLING DIAGONAL CROSSING RISING DIAGONAL*/ + 0, /* U+00292d: SOUTH EAST ARROW CROSSING NORTH EAST ARROW*/ + 0, /* U+00292e: NORTH EAST ARROW CROSSING SOUTH EAST ARROW*/ + 0, /* U+00292f: FALLING DIAGONAL CROSSING NORTH EAST ARROW*/ + 0, /* U+002930: RISING DIAGONAL CROSSING SOUTH EAST ARROW*/ + 0, /* U+002931: NORTH EAST ARROW CROSSING NORTH WEST ARROW*/ + 0, /* U+002932: NORTH WEST ARROW CROSSING NORTH EAST ARROW*/ + 0, /* U+002933: WAVE ARROW POINTING DIRECTLY RIGHT*/ + 0, /* U+002934: ARROW POINTING RIGHTWARDS THEN CURVING UPWARDS*/ + 0, /* U+002935: ARROW POINTING RIGHTWARDS THEN CURVING DOWNWARDS*/ + 0, /* U+002936: ARROW POINTING DOWNWARDS THEN CURVING LEFTWARDS*/ + 0, /* U+002937: ARROW POINTING DOWNWARDS THEN CURVING RIGHTWARDS*/ + 0, /* U+002938: RIGHT-SIDE ARC CLOCKWISE ARROW*/ + 0, /* U+002939: LEFT-SIDE ARC ANTICLOCKWISE ARROW*/ + 0, /* U+00293a: TOP ARC ANTICLOCKWISE ARROW*/ + 0, /* U+00293b: BOTTOM ARC ANTICLOCKWISE ARROW*/ + 0, /* U+00293c: TOP ARC CLOCKWISE ARROW WITH MINUS*/ + 0, /* U+00293d: TOP ARC ANTICLOCKWISE ARROW WITH PLUS*/ + 0, /* U+00293e: LOWER RIGHT SEMICIRCULAR CLOCKWISE ARROW*/ + 0, /* U+00293f: LOWER LEFT SEMICIRCULAR ANTICLOCKWISE ARROW*/ + 0, /* U+002940: ANTICLOCKWISE CLOSED CIRCLE ARROW*/ + 0, /* U+002941: CLOCKWISE CLOSED CIRCLE ARROW*/ + 0, /* U+002942: RIGHTWARDS ARROW ABOVE SHORT LEFTWARDS ARROW*/ + 0, /* U+002943: LEFTWARDS ARROW ABOVE SHORT RIGHTWARDS ARROW*/ + 0, /* U+002944: SHORT RIGHTWARDS ARROW ABOVE LEFTWARDS ARROW*/ + 0, /* U+002945: RIGHTWARDS ARROW WITH PLUS BELOW*/ + 0, /* U+002946: LEFTWARDS ARROW WITH PLUS BELOW*/ + 0, /* U+002947: RIGHTWARDS ARROW THROUGH X*/ + 0, /* U+002948: LEFT RIGHT ARROW THROUGH SMALL CIRCLE*/ + 0, /* U+002949: UPWARDS TWO-HEADED ARROW FROM SMALL CIRCLE*/ + 0, /* U+00294a: LEFT BARB UP RIGHT BARB DOWN HARPOON*/ + 0, /* U+00294b: LEFT BARB DOWN RIGHT BARB UP HARPOON*/ + 0, /* U+00294c: UP BARB RIGHT DOWN BARB LEFT HARPOON*/ + 0, /* U+00294d: UP BARB LEFT DOWN BARB RIGHT HARPOON*/ + 0, /* U+00294e: LEFT BARB UP RIGHT BARB UP HARPOON*/ + 0, /* U+00294f: UP BARB RIGHT DOWN BARB RIGHT HARPOON*/ + 0, /* U+002950: LEFT BARB DOWN RIGHT BARB DOWN HARPOON*/ + 0, /* U+002951: UP BARB LEFT DOWN BARB LEFT HARPOON*/ + 0, /* U+002952: LEFTWARDS HARPOON WITH BARB UP TO BAR*/ + 0, /* U+002953: RIGHTWARDS HARPOON WITH BARB UP TO BAR*/ + 0, /* U+002954: UPWARDS HARPOON WITH BARB RIGHT TO BAR*/ + 0, /* U+002955: DOWNWARDS HARPOON WITH BARB RIGHT TO BAR*/ + 0, /* U+002956: LEFTWARDS HARPOON WITH BARB DOWN TO BAR*/ + 0, /* U+002957: RIGHTWARDS HARPOON WITH BARB DOWN TO BAR*/ + 0, /* U+002958: UPWARDS HARPOON WITH BARB LEFT TO BAR*/ + 0, /* U+002959: DOWNWARDS HARPOON WITH BARB LEFT TO BAR*/ + 0, /* U+00295a: LEFTWARDS HARPOON WITH BARB UP FROM BAR*/ + 0, /* U+00295b: RIGHTWARDS HARPOON WITH BARB UP FROM BAR*/ + 0, /* U+00295c: UPWARDS HARPOON WITH BARB RIGHT FROM BAR*/ + 0, /* U+00295d: DOWNWARDS HARPOON WITH BARB RIGHT FROM BAR*/ + 0, /* U+00295e: LEFTWARDS HARPOON WITH BARB DOWN FROM BAR*/ + 0, /* U+00295f: RIGHTWARDS HARPOON WITH BARB DOWN FROM BAR*/ + 0, /* U+002960: UPWARDS HARPOON WITH BARB LEFT FROM BAR*/ + 0, /* U+002961: DOWNWARDS HARPOON WITH BARB LEFT FROM BAR*/ + 0, /* U+002962: LEFTWARDS HARPOON WITH BARB UP ABOVE LEFTWARDS HARPOON WITH BARB DOWN*/ + 0, /* U+002963: UPWARDS HARPOON WITH BARB LEFT BESIDE UPWARDS HARPOON WITH BARB RIGHT*/ + 0, /* U+002964: RIGHTWARDS HARPOON WITH BARB UP ABOVE RIGHTWARDS HARPOON WITH BARB DOWN*/ + 0, /* U+002965: DOWNWARDS HARPOON WITH BARB LEFT BESIDE DOWNWARDS HARPOON WITH BARB RIGHT*/ + 0, /* U+002966: LEFTWARDS HARPOON WITH BARB UP ABOVE RIGHTWARDS HARPOON WITH BARB UP*/ + 0, /* U+002967: LEFTWARDS HARPOON WITH BARB DOWN ABOVE RIGHTWARDS HARPOON WITH BARB DOWN*/ + 0, /* U+002968: RIGHTWARDS HARPOON WITH BARB UP ABOVE LEFTWARDS HARPOON WITH BARB UP*/ + 0, /* U+002969: RIGHTWARDS HARPOON WITH BARB DOWN ABOVE LEFTWARDS HARPOON WITH BARB DOWN*/ + 0, /* U+00296a: LEFTWARDS HARPOON WITH BARB UP ABOVE LONG DASH*/ + 0, /* U+00296b: LEFTWARDS HARPOON WITH BARB DOWN BELOW LONG DASH*/ + 0, /* U+00296c: RIGHTWARDS HARPOON WITH BARB UP ABOVE LONG DASH*/ + 0, /* U+00296d: RIGHTWARDS HARPOON WITH BARB DOWN BELOW LONG DASH*/ + 0, /* U+00296e: UPWARDS HARPOON WITH BARB LEFT BESIDE DOWNWARDS HARPOON WITH BARB RIGHT*/ + 0, /* U+00296f: DOWNWARDS HARPOON WITH BARB LEFT BESIDE UPWARDS HARPOON WITH BARB RIGHT*/ + 0, /* U+002970: RIGHT DOUBLE ARROW WITH ROUNDED HEAD*/ + 0, /* U+002971: EQUALS SIGN ABOVE RIGHTWARDS ARROW*/ + 0, /* U+002972: TILDE OPERATOR ABOVE RIGHTWARDS ARROW*/ + 0, /* U+002973: LEFTWARDS ARROW ABOVE TILDE OPERATOR*/ + 0, /* U+002974: RIGHTWARDS ARROW ABOVE TILDE OPERATOR*/ + 0, /* U+002975: RIGHTWARDS ARROW ABOVE ALMOST EQUAL TO*/ + 0, /* U+002976: LESS-THAN ABOVE LEFTWARDS ARROW*/ + 0, /* U+002977: LEFTWARDS ARROW THROUGH LESS-THAN*/ + 0, /* U+002978: GREATER-THAN ABOVE RIGHTWARDS ARROW*/ + 0, /* U+002979: SUBSET ABOVE RIGHTWARDS ARROW*/ + 0, /* U+00297a: LEFTWARDS ARROW THROUGH SUBSET*/ + 0, /* U+00297b: SUPERSET ABOVE LEFTWARDS ARROW*/ + 0, /* U+00297c: LEFT FISH TAIL*/ + 0, /* U+00297d: RIGHT FISH TAIL*/ + 0, /* U+00297e: UP FISH TAIL*/ + 0, /* U+00297f: DOWN FISH TAIL*/ + 0, /* U+002980: TRIPLE VERTICAL BAR DELIMITER*/ + 0, /* U+002981: Z NOTATION SPOT*/ + 0, /* U+002982: Z NOTATION TYPE COLON*/ + 0, /* U+002983: LEFT WHITE CURLY BRACKET*/ + 0, /* U+002984: RIGHT WHITE CURLY BRACKET*/ + 0, /* U+002985: LEFT WHITE PARENTHESIS*/ + 0, /* U+002986: RIGHT WHITE PARENTHESIS*/ + 0, /* U+002987: Z NOTATION LEFT IMAGE BRACKET*/ + 0, /* U+002988: Z NOTATION RIGHT IMAGE BRACKET*/ + 0, /* U+002989: Z NOTATION LEFT BINDING BRACKET*/ + 0, /* U+00298a: Z NOTATION RIGHT BINDING BRACKET*/ + 0, /* U+00298b: LEFT SQUARE BRACKET WITH UNDERBAR*/ + 0, /* U+00298c: RIGHT SQUARE BRACKET WITH UNDERBAR*/ + 0, /* U+00298d: LEFT SQUARE BRACKET WITH TICK IN TOP CORNER*/ + 0, /* U+00298e: RIGHT SQUARE BRACKET WITH TICK IN BOTTOM CORNER*/ + 0, /* U+00298f: LEFT SQUARE BRACKET WITH TICK IN BOTTOM CORNER*/ + 0, /* U+002990: RIGHT SQUARE BRACKET WITH TICK IN TOP CORNER*/ + 0, /* U+002991: LEFT ANGLE BRACKET WITH DOT*/ + 0, /* U+002992: RIGHT ANGLE BRACKET WITH DOT*/ + 0, /* U+002993: LEFT ARC LESS-THAN BRACKET*/ + 0, /* U+002994: RIGHT ARC GREATER-THAN BRACKET*/ + 0, /* U+002995: DOUBLE LEFT ARC GREATER-THAN BRACKET*/ + 0, /* U+002996: DOUBLE RIGHT ARC LESS-THAN BRACKET*/ + 0, /* U+002997: LEFT BLACK TORTOISE SHELL BRACKET*/ + 0, /* U+002998: RIGHT BLACK TORTOISE SHELL BRACKET*/ + 0, /* U+002999: DOTTED FENCE*/ + 0, /* U+00299a: VERTICAL ZIGZAG LINE*/ + 0, /* U+00299b: MEASURED ANGLE OPENING LEFT*/ + 0, /* U+00299c: RIGHT ANGLE VARIANT WITH SQUARE*/ + 0, /* U+00299d: MEASURED RIGHT ANGLE WITH DOT*/ + 0, /* U+00299e: ANGLE WITH S INSIDE*/ + 0, /* U+00299f: ACUTE ANGLE*/ + 0, /* U+0029a0: SPHERICAL ANGLE OPENING LEFT*/ + 0, /* U+0029a1: SPHERICAL ANGLE OPENING UP*/ + 0, /* U+0029a2: TURNED ANGLE*/ + 0, /* U+0029a3: REVERSED ANGLE*/ + 0, /* U+0029a4: ANGLE WITH UNDERBAR*/ + 0, /* U+0029a5: REVERSED ANGLE WITH UNDERBAR*/ + 0, /* U+0029a6: OBLIQUE ANGLE OPENING UP*/ + 0, /* U+0029a7: OBLIQUE ANGLE OPENING DOWN*/ + 0, /* U+0029a8: MEASURED ANGLE WITH OPEN ARM ENDING IN ARROW POINTING UP AND RIGHT*/ + 0, /* U+0029a9: MEASURED ANGLE WITH OPEN ARM ENDING IN ARROW POINTING UP AND LEFT*/ + 0, /* U+0029aa: MEASURED ANGLE WITH OPEN ARM ENDING IN ARROW POINTING DOWN AND RIGHT*/ + 0, /* U+0029ab: MEASURED ANGLE WITH OPEN ARM ENDING IN ARROW POINTING DOWN AND LEFT*/ + 0, /* U+0029ac: MEASURED ANGLE WITH OPEN ARM ENDING IN ARROW POINTING RIGHT AND UP*/ + 0, /* U+0029ad: MEASURED ANGLE WITH OPEN ARM ENDING IN ARROW POINTING LEFT AND UP*/ + 0, /* U+0029ae: MEASURED ANGLE WITH OPEN ARM ENDING IN ARROW POINTING RIGHT AND DOWN*/ + 0, /* U+0029af: MEASURED ANGLE WITH OPEN ARM ENDING IN ARROW POINTING LEFT AND DOWN*/ + 0, /* U+0029b0: REVERSED EMPTY SET*/ + 0, /* U+0029b1: EMPTY SET WITH OVERBAR*/ + 0, /* U+0029b2: EMPTY SET WITH SMALL CIRCLE ABOVE*/ + 0, /* U+0029b3: EMPTY SET WITH RIGHT ARROW ABOVE*/ + 0, /* U+0029b4: EMPTY SET WITH LEFT ARROW ABOVE*/ + 0, /* U+0029b5: CIRCLE WITH HORIZONTAL BAR*/ + 0, /* U+0029b6: CIRCLED VERTICAL BAR*/ + 0, /* U+0029b7: CIRCLED PARALLEL*/ + 0, /* U+0029b8: CIRCLED REVERSE SOLIDUS*/ + 0, /* U+0029b9: CIRCLED PERPENDICULAR*/ + 0, /* U+0029ba: CIRCLE DIVIDED BY HORIZONTAL BAR AND TOP HALF DIVIDED BY VERTICAL BAR*/ + 0, /* U+0029bb: CIRCLE WITH SUPERIMPOSED X*/ + 0, /* U+0029bc: CIRCLED ANTICLOCKWISE-ROTATED DIVISION SIGN*/ + 0, /* U+0029bd: UP ARROW THROUGH CIRCLE*/ + 0, /* U+0029be: CIRCLED WHITE BULLET*/ + 0, /* U+0029bf: CIRCLED BULLET*/ + 0, /* U+0029c0: CIRCLED LESS-THAN*/ + 0, /* U+0029c1: CIRCLED GREATER-THAN*/ + 0, /* U+0029c2: CIRCLE WITH SMALL CIRCLE TO THE RIGHT*/ + 0, /* U+0029c3: CIRCLE WITH TWO HORIZONTAL STROKES TO THE RIGHT*/ + 0, /* U+0029c4: SQUARED RISING DIAGONAL SLASH*/ + 0, /* U+0029c5: SQUARED FALLING DIAGONAL SLASH*/ + 0, /* U+0029c6: SQUARED ASTERISK*/ + 0, /* U+0029c7: SQUARED SMALL CIRCLE*/ + 0, /* U+0029c8: SQUARED SQUARE*/ + 0, /* U+0029c9: TWO JOINED SQUARES*/ + 0, /* U+0029ca: TRIANGLE WITH DOT ABOVE*/ + 0, /* U+0029cb: TRIANGLE WITH UNDERBAR*/ + 0, /* U+0029cc: S IN TRIANGLE*/ + 0, /* U+0029cd: TRIANGLE WITH SERIFS AT BOTTOM*/ + 0, /* U+0029ce: RIGHT TRIANGLE ABOVE LEFT TRIANGLE*/ + 0, /* U+0029cf: LEFT TRIANGLE BESIDE VERTICAL BAR*/ + 0, /* U+0029d0: VERTICAL BAR BESIDE RIGHT TRIANGLE*/ + 0, /* U+0029d1: BOWTIE WITH LEFT HALF BLACK*/ + 0, /* U+0029d2: BOWTIE WITH RIGHT HALF BLACK*/ + 0, /* U+0029d3: BLACK BOWTIE*/ + 0, /* U+0029d4: TIMES WITH LEFT HALF BLACK*/ + 0, /* U+0029d5: TIMES WITH RIGHT HALF BLACK*/ + 0, /* U+0029d6: WHITE HOURGLASS*/ + 0, /* U+0029d7: BLACK HOURGLASS*/ + 0, /* U+0029d8: LEFT WIGGLY FENCE*/ + 0, /* U+0029d9: RIGHT WIGGLY FENCE*/ + 0, /* U+0029da: LEFT DOUBLE WIGGLY FENCE*/ + 0, /* U+0029db: RIGHT DOUBLE WIGGLY FENCE*/ + 0, /* U+0029dc: INCOMPLETE INFINITY*/ + 0, /* U+0029dd: TIE OVER INFINITY*/ + 0, /* U+0029de: INFINITY NEGATED WITH VERTICAL BAR*/ + 0, /* U+0029df: DOUBLE-ENDED MULTIMAP*/ + 0, /* U+0029e0: SQUARE WITH CONTOURED OUTLINE*/ + 0, /* U+0029e1: INCREASES AS*/ + 0, /* U+0029e2: SHUFFLE PRODUCT*/ + 0, /* U+0029e3: EQUALS SIGN AND SLANTED PARALLEL*/ + 0, /* U+0029e4: EQUALS SIGN AND SLANTED PARALLEL WITH TILDE ABOVE*/ + 0, /* U+0029e5: IDENTICAL TO AND SLANTED PARALLEL*/ + 0, /* U+0029e6: GLEICH STARK*/ + 0, /* U+0029e7: THERMODYNAMIC*/ + 0, /* U+0029e8: DOWN-POINTING TRIANGLE WITH LEFT HALF BLACK*/ + 0, /* U+0029e9: DOWN-POINTING TRIANGLE WITH RIGHT HALF BLACK*/ + 0, /* U+0029ea: BLACK DIAMOND WITH DOWN ARROW*/ + 0, /* U+0029eb: BLACK LOZENGE*/ + 0, /* U+0029ec: WHITE CIRCLE WITH DOWN ARROW*/ + 0, /* U+0029ed: BLACK CIRCLE WITH DOWN ARROW*/ + 0, /* U+0029ee: ERROR-BARRED WHITE SQUARE*/ + 0, /* U+0029ef: ERROR-BARRED BLACK SQUARE*/ + 0, /* U+0029f0: ERROR-BARRED WHITE DIAMOND*/ + 0, /* U+0029f1: ERROR-BARRED BLACK DIAMOND*/ + 0, /* U+0029f2: ERROR-BARRED WHITE CIRCLE*/ + 0, /* U+0029f3: ERROR-BARRED BLACK CIRCLE*/ + 0, /* U+0029f4: RULE-DELAYED*/ + 0, /* U+0029f5: REVERSE SOLIDUS OPERATOR*/ + 0, /* U+0029f6: SOLIDUS WITH OVERBAR*/ + 0, /* U+0029f7: REVERSE SOLIDUS WITH HORIZONTAL STROKE*/ + 0, /* U+0029f8: BIG SOLIDUS*/ + 0, /* U+0029f9: BIG REVERSE SOLIDUS*/ + 0, /* U+0029fa: DOUBLE PLUS*/ + 0, /* U+0029fb: TRIPLE PLUS*/ + 0, /* U+0029fc: LEFT-POINTING CURVED ANGLE BRACKET*/ + 0, /* U+0029fd: RIGHT-POINTING CURVED ANGLE BRACKET*/ + 0, /* U+0029fe: TINY*/ + 0, /* U+0029ff: MINY*/ + 0, /* U+002a00: N-ARY CIRCLED DOT OPERATOR*/ + 0, /* U+002a01: N-ARY CIRCLED PLUS OPERATOR*/ + 0, /* U+002a02: N-ARY CIRCLED TIMES OPERATOR*/ + 0, /* U+002a03: N-ARY UNION OPERATOR WITH DOT*/ + 0, /* U+002a04: N-ARY UNION OPERATOR WITH PLUS*/ + 0, /* U+002a05: N-ARY SQUARE INTERSECTION OPERATOR*/ + 0, /* U+002a06: N-ARY SQUARE UNION OPERATOR*/ + 0, /* U+002a07: TWO LOGICAL AND OPERATOR*/ + 0, /* U+002a08: TWO LOGICAL OR OPERATOR*/ + 0, /* U+002a09: N-ARY TIMES OPERATOR*/ + 0, /* U+002a0a: MODULO TWO SUM*/ + 0, /* U+002a0b: SUMMATION WITH INTEGRAL*/ + 0, /* U+002a0c: QUADRUPLE INTEGRAL OPERATOR*/ + 0, /* U+002a0d: FINITE PART INTEGRAL*/ + 0, /* U+002a0e: INTEGRAL WITH DOUBLE STROKE*/ + 0, /* U+002a0f: INTEGRAL AVERAGE WITH SLASH*/ + 0, /* U+002a10: CIRCULATION FUNCTION*/ + 0, /* U+002a11: ANTICLOCKWISE INTEGRATION*/ + 0, /* U+002a12: LINE INTEGRATION WITH RECTANGULAR PATH AROUND POLE*/ + 0, /* U+002a13: LINE INTEGRATION WITH SEMICIRCULAR PATH AROUND POLE*/ + 0, /* U+002a14: LINE INTEGRATION NOT INCLUDING THE POLE*/ + 0, /* U+002a15: INTEGRAL AROUND A POINT OPERATOR*/ + 0, /* U+002a16: QUATERNION INTEGRAL OPERATOR*/ + 0, /* U+002a17: INTEGRAL WITH LEFTWARDS ARROW WITH HOOK*/ + 0, /* U+002a18: INTEGRAL WITH TIMES SIGN*/ + 0, /* U+002a19: INTEGRAL WITH INTERSECTION*/ + 0, /* U+002a1a: INTEGRAL WITH UNION*/ + 0, /* U+002a1b: INTEGRAL WITH OVERBAR*/ + 0, /* U+002a1c: INTEGRAL WITH UNDERBAR*/ + 0, /* U+002a1d: JOIN*/ + 0, /* U+002a1e: LARGE LEFT TRIANGLE OPERATOR*/ + 0, /* U+002a1f: Z NOTATION SCHEMA COMPOSITION*/ + 0, /* U+002a20: Z NOTATION SCHEMA PIPING*/ + 0, /* U+002a21: Z NOTATION SCHEMA PROJECTION*/ + 0, /* U+002a22: PLUS SIGN WITH SMALL CIRCLE ABOVE*/ + 0, /* U+002a23: PLUS SIGN WITH CIRCUMFLEX ACCENT ABOVE*/ + 0, /* U+002a24: PLUS SIGN WITH TILDE ABOVE*/ + 0, /* U+002a25: PLUS SIGN WITH DOT BELOW*/ + 0, /* U+002a26: PLUS SIGN WITH TILDE BELOW*/ + 0, /* U+002a27: PLUS SIGN WITH SUBSCRIPT TWO*/ + 0, /* U+002a28: PLUS SIGN WITH BLACK TRIANGLE*/ + 0, /* U+002a29: MINUS SIGN WITH COMMA ABOVE*/ + 0, /* U+002a2a: MINUS SIGN WITH DOT BELOW*/ + 0, /* U+002a2b: MINUS SIGN WITH FALLING DOTS*/ + 0, /* U+002a2c: MINUS SIGN WITH RISING DOTS*/ + 0, /* U+002a2d: PLUS SIGN IN LEFT HALF CIRCLE*/ + 0, /* U+002a2e: PLUS SIGN IN RIGHT HALF CIRCLE*/ + 0, /* U+002a2f: VECTOR OR CROSS PRODUCT*/ + 0, /* U+002a30: MULTIPLICATION SIGN WITH DOT ABOVE*/ + 0, /* U+002a31: MULTIPLICATION SIGN WITH UNDERBAR*/ + 0, /* U+002a32: SEMIDIRECT PRODUCT WITH BOTTOM CLOSED*/ + 0, /* U+002a33: SMASH PRODUCT*/ + 0, /* U+002a34: MULTIPLICATION SIGN IN LEFT HALF CIRCLE*/ + 0, /* U+002a35: MULTIPLICATION SIGN IN RIGHT HALF CIRCLE*/ + 0, /* U+002a36: CIRCLED MULTIPLICATION SIGN WITH CIRCUMFLEX ACCENT*/ + 0, /* U+002a37: MULTIPLICATION SIGN IN DOUBLE CIRCLE*/ + 0, /* U+002a38: CIRCLED DIVISION SIGN*/ + 0, /* U+002a39: PLUS SIGN IN TRIANGLE*/ + 0, /* U+002a3a: MINUS SIGN IN TRIANGLE*/ + 0, /* U+002a3b: MULTIPLICATION SIGN IN TRIANGLE*/ + 0, /* U+002a3c: INTERIOR PRODUCT*/ + 0, /* U+002a3d: RIGHTHAND INTERIOR PRODUCT*/ + 0, /* U+002a3e: Z NOTATION RELATIONAL COMPOSITION*/ + 0, /* U+002a3f: AMALGAMATION OR COPRODUCT*/ + 0, /* U+002a40: INTERSECTION WITH DOT*/ + 0, /* U+002a41: UNION WITH MINUS SIGN*/ + 0, /* U+002a42: UNION WITH OVERBAR*/ + 0, /* U+002a43: INTERSECTION WITH OVERBAR*/ + 0, /* U+002a44: INTERSECTION WITH LOGICAL AND*/ + 0, /* U+002a45: UNION WITH LOGICAL OR*/ + 0, /* U+002a46: UNION ABOVE INTERSECTION*/ + 0, /* U+002a47: INTERSECTION ABOVE UNION*/ + 0, /* U+002a48: UNION ABOVE BAR ABOVE INTERSECTION*/ + 0, /* U+002a49: INTERSECTION ABOVE BAR ABOVE UNION*/ + 0, /* U+002a4a: UNION BESIDE AND JOINED WITH UNION*/ + 0, /* U+002a4b: INTERSECTION BESIDE AND JOINED WITH INTERSECTION*/ + 0, /* U+002a4c: CLOSED UNION WITH SERIFS*/ + 0, /* U+002a4d: CLOSED INTERSECTION WITH SERIFS*/ + 0, /* U+002a4e: DOUBLE SQUARE INTERSECTION*/ + 0, /* U+002a4f: DOUBLE SQUARE UNION*/ + 0, /* U+002a50: CLOSED UNION WITH SERIFS AND SMASH PRODUCT*/ + 0, /* U+002a51: LOGICAL AND WITH DOT ABOVE*/ + 0, /* U+002a52: LOGICAL OR WITH DOT ABOVE*/ + 0, /* U+002a53: DOUBLE LOGICAL AND*/ + 0, /* U+002a54: DOUBLE LOGICAL OR*/ + 0, /* U+002a55: TWO INTERSECTING LOGICAL AND*/ + 0, /* U+002a56: TWO INTERSECTING LOGICAL OR*/ + 0, /* U+002a57: SLOPING LARGE OR*/ + 0, /* U+002a58: SLOPING LARGE AND*/ + 0, /* U+002a59: LOGICAL OR OVERLAPPING LOGICAL AND*/ + 0, /* U+002a5a: LOGICAL AND WITH MIDDLE STEM*/ + 0, /* U+002a5b: LOGICAL OR WITH MIDDLE STEM*/ + 0, /* U+002a5c: LOGICAL AND WITH HORIZONTAL DASH*/ + 0, /* U+002a5d: LOGICAL OR WITH HORIZONTAL DASH*/ + 0, /* U+002a5e: LOGICAL AND WITH DOUBLE OVERBAR*/ + 0, /* U+002a5f: LOGICAL AND WITH UNDERBAR*/ + 0, /* U+002a60: LOGICAL AND WITH DOUBLE UNDERBAR*/ + 0, /* U+002a61: SMALL VEE WITH UNDERBAR*/ + 0, /* U+002a62: LOGICAL OR WITH DOUBLE OVERBAR*/ + 0, /* U+002a63: LOGICAL OR WITH DOUBLE UNDERBAR*/ + 0, /* U+002a64: Z NOTATION DOMAIN ANTIRESTRICTION*/ + 0, /* U+002a65: Z NOTATION RANGE ANTIRESTRICTION*/ + 0, /* U+002a66: EQUALS SIGN WITH DOT BELOW*/ + 0, /* U+002a67: IDENTICAL WITH DOT ABOVE*/ + 0, /* U+002a68: TRIPLE HORIZONTAL BAR WITH DOUBLE VERTICAL STROKE*/ + 0, /* U+002a69: TRIPLE HORIZONTAL BAR WITH TRIPLE VERTICAL STROKE*/ + 0, /* U+002a6a: TILDE OPERATOR WITH DOT ABOVE*/ + 0, /* U+002a6b: TILDE OPERATOR WITH RISING DOTS*/ + 0, /* U+002a6c: SIMILAR MINUS SIMILAR*/ + 0, /* U+002a6d: CONGRUENT WITH DOT ABOVE*/ + 0, /* U+002a6e: EQUALS WITH ASTERISK*/ + 0, /* U+002a6f: ALMOST EQUAL TO WITH CIRCUMFLEX ACCENT*/ + 0, /* U+002a70: APPROXIMATELY EQUAL OR EQUAL TO*/ + 0, /* U+002a71: EQUALS SIGN ABOVE PLUS SIGN*/ + 0, /* U+002a72: PLUS SIGN ABOVE EQUALS SIGN*/ + 0, /* U+002a73: EQUALS SIGN ABOVE TILDE OPERATOR*/ + 0, /* U+002a74: DOUBLE COLON EQUAL*/ + 0, /* U+002a75: TWO CONSECUTIVE EQUALS SIGNS*/ + 0, /* U+002a76: THREE CONSECUTIVE EQUALS SIGNS*/ + 0, /* U+002a77: EQUALS SIGN WITH TWO DOTS ABOVE AND TWO DOTS BELOW*/ + 0, /* U+002a78: EQUIVALENT WITH FOUR DOTS ABOVE*/ + 0, /* U+002a79: LESS-THAN WITH CIRCLE INSIDE*/ + 0, /* U+002a7a: GREATER-THAN WITH CIRCLE INSIDE*/ + 0, /* U+002a7b: LESS-THAN WITH QUESTION MARK ABOVE*/ + 0, /* U+002a7c: GREATER-THAN WITH QUESTION MARK ABOVE*/ + 0, /* U+002a7d: LESS-THAN OR SLANTED EQUAL TO*/ + 0, /* U+002a7e: GREATER-THAN OR SLANTED EQUAL TO*/ + 0, /* U+002a7f: LESS-THAN OR SLANTED EQUAL TO WITH DOT INSIDE*/ + 0, /* U+002a80: GREATER-THAN OR SLANTED EQUAL TO WITH DOT INSIDE*/ + 0, /* U+002a81: LESS-THAN OR SLANTED EQUAL TO WITH DOT ABOVE*/ + 0, /* U+002a82: GREATER-THAN OR SLANTED EQUAL TO WITH DOT ABOVE*/ + 0, /* U+002a83: LESS-THAN OR SLANTED EQUAL TO WITH DOT ABOVE RIGHT*/ + 0, /* U+002a84: GREATER-THAN OR SLANTED EQUAL TO WITH DOT ABOVE LEFT*/ + 0, /* U+002a85: LESS-THAN OR APPROXIMATE*/ + 0, /* U+002a86: GREATER-THAN OR APPROXIMATE*/ + 0, /* U+002a87: LESS-THAN AND SINGLE-LINE NOT EQUAL TO*/ + 0, /* U+002a88: GREATER-THAN AND SINGLE-LINE NOT EQUAL TO*/ + 0, /* U+002a89: LESS-THAN AND NOT APPROXIMATE*/ + 0, /* U+002a8a: GREATER-THAN AND NOT APPROXIMATE*/ + 0, /* U+002a8b: LESS-THAN ABOVE DOUBLE-LINE EQUAL ABOVE GREATER-THAN*/ + 0, /* U+002a8c: GREATER-THAN ABOVE DOUBLE-LINE EQUAL ABOVE LESS-THAN*/ + 0, /* U+002a8d: LESS-THAN ABOVE SIMILAR OR EQUAL*/ + 0, /* U+002a8e: GREATER-THAN ABOVE SIMILAR OR EQUAL*/ + 0, /* U+002a8f: LESS-THAN ABOVE SIMILAR ABOVE GREATER-THAN*/ + 0, /* U+002a90: GREATER-THAN ABOVE SIMILAR ABOVE LESS-THAN*/ + 0, /* U+002a91: LESS-THAN ABOVE GREATER-THAN ABOVE DOUBLE-LINE EQUAL*/ + 0, /* U+002a92: GREATER-THAN ABOVE LESS-THAN ABOVE DOUBLE-LINE EQUAL*/ + 0, /* U+002a93: LESS-THAN ABOVE SLANTED EQUAL ABOVE GREATER-THAN ABOVE SLANTED EQUAL*/ + 0, /* U+002a94: GREATER-THAN ABOVE SLANTED EQUAL ABOVE LESS-THAN ABOVE SLANTED EQUAL*/ + 0, /* U+002a95: SLANTED EQUAL TO OR LESS-THAN*/ + 0, /* U+002a96: SLANTED EQUAL TO OR GREATER-THAN*/ + 0, /* U+002a97: SLANTED EQUAL TO OR LESS-THAN WITH DOT INSIDE*/ + 0, /* U+002a98: SLANTED EQUAL TO OR GREATER-THAN WITH DOT INSIDE*/ + 0, /* U+002a99: DOUBLE-LINE EQUAL TO OR LESS-THAN*/ + 0, /* U+002a9a: DOUBLE-LINE EQUAL TO OR GREATER-THAN*/ + 0, /* U+002a9b: DOUBLE-LINE SLANTED EQUAL TO OR LESS-THAN*/ + 0, /* U+002a9c: DOUBLE-LINE SLANTED EQUAL TO OR GREATER-THAN*/ + 0, /* U+002a9d: SIMILAR OR LESS-THAN*/ + 0, /* U+002a9e: SIMILAR OR GREATER-THAN*/ + 0, /* U+002a9f: SIMILAR ABOVE LESS-THAN ABOVE EQUALS SIGN*/ + 0, /* U+002aa0: SIMILAR ABOVE GREATER-THAN ABOVE EQUALS SIGN*/ + 0, /* U+002aa1: DOUBLE NESTED LESS-THAN*/ + 0, /* U+002aa2: DOUBLE NESTED GREATER-THAN*/ + 0, /* U+002aa3: DOUBLE NESTED LESS-THAN WITH UNDERBAR*/ + 0, /* U+002aa4: GREATER-THAN OVERLAPPING LESS-THAN*/ + 0, /* U+002aa5: GREATER-THAN BESIDE LESS-THAN*/ + 0, /* U+002aa6: LESS-THAN CLOSED BY CURVE*/ + 0, /* U+002aa7: GREATER-THAN CLOSED BY CURVE*/ + 0, /* U+002aa8: LESS-THAN CLOSED BY CURVE ABOVE SLANTED EQUAL*/ + 0, /* U+002aa9: GREATER-THAN CLOSED BY CURVE ABOVE SLANTED EQUAL*/ + 0, /* U+002aaa: SMALLER THAN*/ + 0, /* U+002aab: LARGER THAN*/ + 0, /* U+002aac: SMALLER THAN OR EQUAL TO*/ + 0, /* U+002aad: LARGER THAN OR EQUAL TO*/ + 0, /* U+002aae: EQUALS SIGN WITH BUMPY ABOVE*/ + 0, /* U+002aaf: PRECEDES ABOVE SINGLE-LINE EQUALS SIGN*/ + 0, /* U+002ab0: SUCCEEDS ABOVE SINGLE-LINE EQUALS SIGN*/ + 0, /* U+002ab1: PRECEDES ABOVE SINGLE-LINE NOT EQUAL TO*/ + 0, /* U+002ab2: SUCCEEDS ABOVE SINGLE-LINE NOT EQUAL TO*/ + 0, /* U+002ab3: PRECEDES ABOVE EQUALS SIGN*/ + 0, /* U+002ab4: SUCCEEDS ABOVE EQUALS SIGN*/ + 0, /* U+002ab5: PRECEDES ABOVE NOT EQUAL TO*/ + 0, /* U+002ab6: SUCCEEDS ABOVE NOT EQUAL TO*/ + 0, /* U+002ab7: PRECEDES ABOVE ALMOST EQUAL TO*/ + 0, /* U+002ab8: SUCCEEDS ABOVE ALMOST EQUAL TO*/ + 0, /* U+002ab9: PRECEDES ABOVE NOT ALMOST EQUAL TO*/ + 0, /* U+002aba: SUCCEEDS ABOVE NOT ALMOST EQUAL TO*/ + 0, /* U+002abb: DOUBLE PRECEDES*/ + 0, /* U+002abc: DOUBLE SUCCEEDS*/ + 0, /* U+002abd: SUBSET WITH DOT*/ + 0, /* U+002abe: SUPERSET WITH DOT*/ + 0, /* U+002abf: SUBSET WITH PLUS SIGN BELOW*/ + 0, /* U+002ac0: SUPERSET WITH PLUS SIGN BELOW*/ + 0, /* U+002ac1: SUBSET WITH MULTIPLICATION SIGN BELOW*/ + 0, /* U+002ac2: SUPERSET WITH MULTIPLICATION SIGN BELOW*/ + 0, /* U+002ac3: SUBSET OF OR EQUAL TO WITH DOT ABOVE*/ + 0, /* U+002ac4: SUPERSET OF OR EQUAL TO WITH DOT ABOVE*/ + 0, /* U+002ac5: SUBSET OF ABOVE EQUALS SIGN*/ + 0, /* U+002ac6: SUPERSET OF ABOVE EQUALS SIGN*/ + 0, /* U+002ac7: SUBSET OF ABOVE TILDE OPERATOR*/ + 0, /* U+002ac8: SUPERSET OF ABOVE TILDE OPERATOR*/ + 0, /* U+002ac9: SUBSET OF ABOVE ALMOST EQUAL TO*/ + 0, /* U+002aca: SUPERSET OF ABOVE ALMOST EQUAL TO*/ + 0, /* U+002acb: SUBSET OF ABOVE NOT EQUAL TO*/ + 0, /* U+002acc: SUPERSET OF ABOVE NOT EQUAL TO*/ + 0, /* U+002acd: SQUARE LEFT OPEN BOX OPERATOR*/ + 0, /* U+002ace: SQUARE RIGHT OPEN BOX OPERATOR*/ + 0, /* U+002acf: CLOSED SUBSET*/ + 0, /* U+002ad0: CLOSED SUPERSET*/ + 0, /* U+002ad1: CLOSED SUBSET OR EQUAL TO*/ + 0, /* U+002ad2: CLOSED SUPERSET OR EQUAL TO*/ + 0, /* U+002ad3: SUBSET ABOVE SUPERSET*/ + 0, /* U+002ad4: SUPERSET ABOVE SUBSET*/ + 0, /* U+002ad5: SUBSET ABOVE SUBSET*/ + 0, /* U+002ad6: SUPERSET ABOVE SUPERSET*/ + 0, /* U+002ad7: SUPERSET BESIDE SUBSET*/ + 0, /* U+002ad8: SUPERSET BESIDE AND JOINED BY DASH WITH SUBSET*/ + 0, /* U+002ad9: ELEMENT OF OPENING DOWNWARDS*/ + 0, /* U+002ada: PITCHFORK WITH TEE TOP*/ + 0, /* U+002adb: TRANSVERSAL INTERSECTION*/ + 0, /* U+002adc: FORKING*/ + 0, /* U+002add: NONFORKING*/ + 0, /* U+002ade: SHORT LEFT TACK*/ + 0, /* U+002adf: SHORT DOWN TACK*/ + 0, /* U+002ae0: SHORT UP TACK*/ + 0, /* U+002ae1: PERPENDICULAR WITH S*/ + 0, /* U+002ae2: VERTICAL BAR TRIPLE RIGHT TURNSTILE*/ + 0, /* U+002ae3: DOUBLE VERTICAL BAR LEFT TURNSTILE*/ + 0, /* U+002ae4: VERTICAL BAR DOUBLE LEFT TURNSTILE*/ + 0, /* U+002ae5: DOUBLE VERTICAL BAR DOUBLE LEFT TURNSTILE*/ + 0, /* U+002ae6: LONG DASH FROM LEFT MEMBER OF DOUBLE VERTICAL*/ + 0, /* U+002ae7: SHORT DOWN TACK WITH OVERBAR*/ + 0, /* U+002ae8: SHORT UP TACK WITH UNDERBAR*/ + 0, /* U+002ae9: SHORT UP TACK ABOVE SHORT DOWN TACK*/ + 0, /* U+002aea: DOUBLE DOWN TACK*/ + 0, /* U+002aeb: DOUBLE UP TACK*/ + 0, /* U+002aec: DOUBLE STROKE NOT SIGN*/ + 0, /* U+002aed: REVERSED DOUBLE STROKE NOT SIGN*/ + 0, /* U+002aee: DOES NOT DIVIDE WITH REVERSED NEGATION SLASH*/ + 0, /* U+002aef: VERTICAL LINE WITH CIRCLE ABOVE*/ + 0, /* U+002af0: VERTICAL LINE WITH CIRCLE BELOW*/ + 0, /* U+002af1: DOWN TACK WITH CIRCLE BELOW*/ + 0, /* U+002af2: PARALLEL WITH HORIZONTAL STROKE*/ + 0, /* U+002af3: PARALLEL WITH TILDE OPERATOR*/ + 0, /* U+002af4: TRIPLE VERTICAL BAR BINARY RELATION*/ + 0, /* U+002af5: TRIPLE VERTICAL BAR WITH HORIZONTAL STROKE*/ + 0, /* U+002af6: TRIPLE COLON OPERATOR*/ + 0, /* U+002af7: TRIPLE NESTED LESS-THAN*/ + 0, /* U+002af8: TRIPLE NESTED GREATER-THAN*/ + 0, /* U+002af9: DOUBLE-LINE SLANTED LESS-THAN OR EQUAL TO*/ + 0, /* U+002afa: DOUBLE-LINE SLANTED GREATER-THAN OR EQUAL TO*/ + 0, /* U+002afb: TRIPLE SOLIDUS BINARY RELATION*/ + 0, /* U+002afc: LARGE TRIPLE VERTICAL BAR OPERATOR*/ + 0, /* U+002afd: DOUBLE SOLIDUS OPERATOR*/ + 0, /* U+002afe: WHITE VERTICAL BAR*/ + 0, /* U+002aff: N-ARY WHITE VERTICAL BAR*/ + 0, /* U+002b00: NORTH EAST WHITE ARROW*/ + 0, /* U+002b01: NORTH WEST WHITE ARROW*/ + 0, /* U+002b02: SOUTH EAST WHITE ARROW*/ + 0, /* U+002b03: SOUTH WEST WHITE ARROW*/ + 0, /* U+002b04: LEFT RIGHT WHITE ARROW*/ + 0, /* U+002b05: LEFTWARDS BLACK ARROW*/ + 0, /* U+002b06: UPWARDS BLACK ARROW*/ + 0, /* U+002b07: DOWNWARDS BLACK ARROW*/ + 0, /* U+002b08: NORTH EAST BLACK ARROW*/ + 0, /* U+002b09: NORTH WEST BLACK ARROW*/ + 0, /* U+002b0a: SOUTH EAST BLACK ARROW*/ + 0, /* U+002b0b: SOUTH WEST BLACK ARROW*/ + 0, /* U+002b0c: LEFT RIGHT BLACK ARROW*/ + 0, /* U+002b0d: UP DOWN BLACK ARROW*/ + 0, /* U+002b0e: RIGHTWARDS ARROW WITH TIP DOWNWARDS*/ + 0, /* U+002b0f: RIGHTWARDS ARROW WITH TIP UPWARDS*/ + 0, /* U+002b10: LEFTWARDS ARROW WITH TIP DOWNWARDS*/ + 0, /* U+002b11: LEFTWARDS ARROW WITH TIP UPWARDS*/ + 0, /* U+002b12: SQUARE WITH TOP HALF BLACK*/ + 0, /* U+002b13: SQUARE WITH BOTTOM HALF BLACK*/ + 0, /* U+002b14: SQUARE WITH UPPER RIGHT DIAGONAL HALF BLACK*/ + 0, /* U+002b15: SQUARE WITH LOWER LEFT DIAGONAL HALF BLACK*/ + 0, /* U+002b16: DIAMOND WITH LEFT HALF BLACK*/ + 0, /* U+002b17: DIAMOND WITH RIGHT HALF BLACK*/ + 0, /* U+002b18: DIAMOND WITH TOP HALF BLACK*/ + 0, /* U+002b19: DIAMOND WITH BOTTOM HALF BLACK*/ + 0, /* U+002b1a: DOTTED SQUARE*/ + 0, /* U+002b1b: BLACK LARGE SQUARE*/ + 0, /* U+002b1c: WHITE LARGE SQUARE*/ + 0, /* U+002b1d: BLACK VERY SMALL SQUARE*/ + 0, /* U+002b1e: WHITE VERY SMALL SQUARE*/ + 0, /* U+002b1f: BLACK PENTAGON*/ + 0, /* U+002b20: WHITE PENTAGON*/ + 0, /* U+002b21: WHITE HEXAGON*/ + 0, /* U+002b22: BLACK HEXAGON*/ + 0, /* U+002b23: HORIZONTAL BLACK HEXAGON*/ + 0, /* U+002b24: BLACK LARGE CIRCLE*/ + 0, /* U+002b25: BLACK MEDIUM DIAMOND*/ + 0, /* U+002b26: WHITE MEDIUM DIAMOND*/ + 0, /* U+002b27: BLACK MEDIUM LOZENGE*/ + 0, /* U+002b28: WHITE MEDIUM LOZENGE*/ + 0, /* U+002b29: BLACK SMALL DIAMOND*/ + 0, /* U+002b2a: BLACK SMALL LOZENGE*/ + 0, /* U+002b2b: WHITE SMALL LOZENGE*/ + 0, /* U+002b2c: BLACK HORIZONTAL ELLIPSE*/ + 0, /* U+002b2d: WHITE HORIZONTAL ELLIPSE*/ + 0, /* U+002b2e: BLACK VERTICAL ELLIPSE*/ + 0, /* U+002b2f: WHITE VERTICAL ELLIPSE*/ + 0, /* U+002b30: LEFT ARROW WITH SMALL CIRCLE*/ + 0, /* U+002b31: THREE LEFTWARDS ARROWS*/ + 0, /* U+002b32: LEFT ARROW WITH CIRCLED PLUS*/ + 0, /* U+002b33: LONG LEFTWARDS SQUIGGLE ARROW*/ + 0, /* U+002b34: LEFTWARDS TWO-HEADED ARROW WITH VERTICAL STROKE*/ + 0, /* U+002b35: LEFTWARDS TWO-HEADED ARROW WITH DOUBLE VERTICAL STROKE*/ + 0, /* U+002b36: LEFTWARDS TWO-HEADED ARROW FROM BAR*/ + 0, /* U+002b37: LEFTWARDS TWO-HEADED TRIPLE DASH ARROW*/ + 0, /* U+002b38: LEFTWARDS ARROW WITH DOTTED STEM*/ + 0, /* U+002b39: LEFTWARDS ARROW WITH TAIL WITH VERTICAL STROKE*/ + 0, /* U+002b3a: LEFTWARDS ARROW WITH TAIL WITH DOUBLE VERTICAL STROKE*/ + 0, /* U+002b3b: LEFTWARDS TWO-HEADED ARROW WITH TAIL*/ + 0, /* U+002b3c: LEFTWARDS TWO-HEADED ARROW WITH TAIL WITH VERTICAL STROKE*/ + 0, /* U+002b3d: LEFTWARDS TWO-HEADED ARROW WITH TAIL WITH DOUBLE VERTICAL STROKE*/ + 0, /* U+002b3e: LEFTWARDS ARROW THROUGH X*/ + 0, /* U+002b3f: WAVE ARROW POINTING DIRECTLY LEFT*/ + 0, /* U+002b40: EQUALS SIGN ABOVE LEFTWARDS ARROW*/ + 0, /* U+002b41: REVERSE TILDE OPERATOR ABOVE LEFTWARDS ARROW*/ + 0, /* U+002b42: LEFTWARDS ARROW ABOVE REVERSE ALMOST EQUAL TO*/ + 0, /* U+002b43: RIGHTWARDS ARROW THROUGH GREATER-THAN*/ + 0, /* U+002b44: RIGHTWARDS ARROW THROUGH SUPERSET*/ + 0, /* U+002b45: LEFTWARDS QUADRUPLE ARROW*/ + 0, /* U+002b46: RIGHTWARDS QUADRUPLE ARROW*/ + 0, /* U+002b47: REVERSE TILDE OPERATOR ABOVE RIGHTWARDS ARROW*/ + 0, /* U+002b48: RIGHTWARDS ARROW ABOVE REVERSE ALMOST EQUAL TO*/ + 0, /* U+002b49: TILDE OPERATOR ABOVE LEFTWARDS ARROW*/ + 0, /* U+002b4a: LEFTWARDS ARROW ABOVE ALMOST EQUAL TO*/ + 0, /* U+002b4b: LEFTWARDS ARROW ABOVE REVERSE TILDE OPERATOR*/ + 0, /* U+002b4c: RIGHTWARDS ARROW ABOVE REVERSE TILDE OPERATOR*/ + 0, /* U+002b4d: */ + 0, /* U+002b4e: */ + 0, /* U+002b4f: */ + 0, /* U+002b50: WHITE MEDIUM STAR*/ + 0, /* U+002b51: BLACK SMALL STAR*/ + 0, /* U+002b52: WHITE SMALL STAR*/ + 0, /* U+002b53: BLACK RIGHT-POINTING PENTAGON*/ + 0, /* U+002b54: WHITE RIGHT-POINTING PENTAGON*/ + 0, /* U+002b55: HEAVY LARGE CIRCLE*/ + 0, /* U+002b56: HEAVY OVAL WITH OVAL INSIDE*/ + 0, /* U+002b57: HEAVY CIRCLE WITH CIRCLE INSIDE*/ + 0, /* U+002b58: HEAVY CIRCLE*/ + 0, /* U+002b59: HEAVY CIRCLED SALTIRE*/ + 0, /* U+002b5a: */ + 0, /* U+002b5b: */ + 0, /* U+002b5c: */ + 0, /* U+002b5d: */ + 0, /* U+002b5e: */ + 0, /* U+002b5f: */ + 0, /* U+002b60: */ + 0, /* U+002b61: */ + 0, /* U+002b62: */ + 0, /* U+002b63: */ + 0, /* U+002b64: */ + 0, /* U+002b65: */ + 0, /* U+002b66: */ + 0, /* U+002b67: */ + 0, /* U+002b68: */ + 0, /* U+002b69: */ + 0, /* U+002b6a: */ + 0, /* U+002b6b: */ + 0, /* U+002b6c: */ + 0, /* U+002b6d: */ + 0, /* U+002b6e: */ + 0, /* U+002b6f: */ + 0, /* U+002b70: */ + 0, /* U+002b71: */ + 0, /* U+002b72: */ + 0, /* U+002b73: */ + 0, /* U+002b74: */ + 0, /* U+002b75: */ + 0, /* U+002b76: */ + 0, /* U+002b77: */ + 0, /* U+002b78: */ + 0, /* U+002b79: */ + 0, /* U+002b7a: */ + 0, /* U+002b7b: */ + 0, /* U+002b7c: */ + 0, /* U+002b7d: */ + 0, /* U+002b7e: */ + 0, /* U+002b7f: */ + 0, /* U+002b80: */ + 0, /* U+002b81: */ + 0, /* U+002b82: */ + 0, /* U+002b83: */ + 0, /* U+002b84: */ + 0, /* U+002b85: */ + 0, /* U+002b86: */ + 0, /* U+002b87: */ + 0, /* U+002b88: */ + 0, /* U+002b89: */ + 0, /* U+002b8a: */ + 0, /* U+002b8b: */ + 0, /* U+002b8c: */ + 0, /* U+002b8d: */ + 0, /* U+002b8e: */ + 0, /* U+002b8f: */ + 0, /* U+002b90: */ + 0, /* U+002b91: */ + 0, /* U+002b92: */ + 0, /* U+002b93: */ + 0, /* U+002b94: */ + 0, /* U+002b95: */ + 0, /* U+002b96: */ + 0, /* U+002b97: */ + 0, /* U+002b98: */ + 0, /* U+002b99: */ + 0, /* U+002b9a: */ + 0, /* U+002b9b: */ + 0, /* U+002b9c: */ + 0, /* U+002b9d: */ + 0, /* U+002b9e: */ + 0, /* U+002b9f: */ + 0, /* U+002ba0: */ + 0, /* U+002ba1: */ + 0, /* U+002ba2: */ + 0, /* U+002ba3: */ + 0, /* U+002ba4: */ + 0, /* U+002ba5: */ + 0, /* U+002ba6: */ + 0, /* U+002ba7: */ + 0, /* U+002ba8: */ + 0, /* U+002ba9: */ + 0, /* U+002baa: */ + 0, /* U+002bab: */ + 0, /* U+002bac: */ + 0, /* U+002bad: */ + 0, /* U+002bae: */ + 0, /* U+002baf: */ + 0, /* U+002bb0: */ + 0, /* U+002bb1: */ + 0, /* U+002bb2: */ + 0, /* U+002bb3: */ + 0, /* U+002bb4: */ + 0, /* U+002bb5: */ + 0, /* U+002bb6: */ + 0, /* U+002bb7: */ + 0, /* U+002bb8: */ + 0, /* U+002bb9: */ + 0, /* U+002bba: */ + 0, /* U+002bbb: */ + 0, /* U+002bbc: */ + 0, /* U+002bbd: */ + 0, /* U+002bbe: */ + 0, /* U+002bbf: */ + 0, /* U+002bc0: */ + 0, /* U+002bc1: */ + 0, /* U+002bc2: */ + 0, /* U+002bc3: */ + 0, /* U+002bc4: */ + 0, /* U+002bc5: */ + 0, /* U+002bc6: */ + 0, /* U+002bc7: */ + 0, /* U+002bc8: */ + 0, /* U+002bc9: */ + 0, /* U+002bca: */ + 0, /* U+002bcb: */ + 0, /* U+002bcc: */ + 0, /* U+002bcd: */ + 0, /* U+002bce: */ + 0, /* U+002bcf: */ + 0, /* U+002bd0: */ + 0, /* U+002bd1: */ + 0, /* U+002bd2: */ + 0, /* U+002bd3: */ + 0, /* U+002bd4: */ + 0, /* U+002bd5: */ + 0, /* U+002bd6: */ + 0, /* U+002bd7: */ + 0, /* U+002bd8: */ + 0, /* U+002bd9: */ + 0, /* U+002bda: */ + 0, /* U+002bdb: */ + 0, /* U+002bdc: */ + 0, /* U+002bdd: */ + 0, /* U+002bde: */ + 0, /* U+002bdf: */ + 0, /* U+002be0: */ + 0, /* U+002be1: */ + 0, /* U+002be2: */ + 0, /* U+002be3: */ + 0, /* U+002be4: */ + 0, /* U+002be5: */ + 0, /* U+002be6: */ + 0, /* U+002be7: */ + 0, /* U+002be8: */ + 0, /* U+002be9: */ + 0, /* U+002bea: */ + 0, /* U+002beb: */ + 0, /* U+002bec: */ + 0, /* U+002bed: */ + 0, /* U+002bee: */ + 0, /* U+002bef: */ + 0, /* U+002bf0: */ + 0, /* U+002bf1: */ + 0, /* U+002bf2: */ + 0, /* U+002bf3: */ + 0, /* U+002bf4: */ + 0, /* U+002bf5: */ + 0, /* U+002bf6: */ + 0, /* U+002bf7: */ + 0, /* U+002bf8: */ + 0, /* U+002bf9: */ + 0, /* U+002bfa: */ + 0, /* U+002bfb: */ + 0, /* U+002bfc: */ + 0, /* U+002bfd: */ + 0, /* U+002bfe: */ + 0, /* U+002bff: */ + RTUNI_ALPHA | RTUNI_UPPER, /* U+002c00: GLAGOLITIC CAPITAL LETTER AZU*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+002c01: GLAGOLITIC CAPITAL LETTER BUKY*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+002c02: GLAGOLITIC CAPITAL LETTER VEDE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+002c03: GLAGOLITIC CAPITAL LETTER GLAGOLI*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+002c04: GLAGOLITIC CAPITAL LETTER DOBRO*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+002c05: GLAGOLITIC CAPITAL LETTER YESTU*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+002c06: GLAGOLITIC CAPITAL LETTER ZHIVETE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+002c07: GLAGOLITIC CAPITAL LETTER DZELO*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+002c08: GLAGOLITIC CAPITAL LETTER ZEMLJA*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+002c09: GLAGOLITIC CAPITAL LETTER IZHE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+002c0a: GLAGOLITIC CAPITAL LETTER INITIAL IZHE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+002c0b: GLAGOLITIC CAPITAL LETTER I*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+002c0c: GLAGOLITIC CAPITAL LETTER DJERVI*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+002c0d: GLAGOLITIC CAPITAL LETTER KAKO*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+002c0e: GLAGOLITIC CAPITAL LETTER LJUDIJE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+002c0f: GLAGOLITIC CAPITAL LETTER MYSLITE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+002c10: GLAGOLITIC CAPITAL LETTER NASHI*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+002c11: GLAGOLITIC CAPITAL LETTER ONU*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+002c12: GLAGOLITIC CAPITAL LETTER POKOJI*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+002c13: GLAGOLITIC CAPITAL LETTER RITSI*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+002c14: GLAGOLITIC CAPITAL LETTER SLOVO*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+002c15: GLAGOLITIC CAPITAL LETTER TVRIDO*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+002c16: GLAGOLITIC CAPITAL LETTER UKU*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+002c17: GLAGOLITIC CAPITAL LETTER FRITU*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+002c18: GLAGOLITIC CAPITAL LETTER HERU*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+002c19: GLAGOLITIC CAPITAL LETTER OTU*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+002c1a: GLAGOLITIC CAPITAL LETTER PE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+002c1b: GLAGOLITIC CAPITAL LETTER SHTA*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+002c1c: GLAGOLITIC CAPITAL LETTER TSI*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+002c1d: GLAGOLITIC CAPITAL LETTER CHRIVI*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+002c1e: GLAGOLITIC CAPITAL LETTER SHA*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+002c1f: GLAGOLITIC CAPITAL LETTER YERU*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+002c20: GLAGOLITIC CAPITAL LETTER YERI*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+002c21: GLAGOLITIC CAPITAL LETTER YATI*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+002c22: GLAGOLITIC CAPITAL LETTER SPIDERY HA*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+002c23: GLAGOLITIC CAPITAL LETTER YU*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+002c24: GLAGOLITIC CAPITAL LETTER SMALL YUS*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+002c25: GLAGOLITIC CAPITAL LETTER SMALL YUS WITH TAIL*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+002c26: GLAGOLITIC CAPITAL LETTER YO*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+002c27: GLAGOLITIC CAPITAL LETTER IOTATED SMALL YUS*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+002c28: GLAGOLITIC CAPITAL LETTER BIG YUS*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+002c29: GLAGOLITIC CAPITAL LETTER IOTATED BIG YUS*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+002c2a: GLAGOLITIC CAPITAL LETTER FITA*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+002c2b: GLAGOLITIC CAPITAL LETTER IZHITSA*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+002c2c: GLAGOLITIC CAPITAL LETTER SHTAPIC*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+002c2d: GLAGOLITIC CAPITAL LETTER TROKUTASTI A*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+002c2e: GLAGOLITIC CAPITAL LETTER LATINATE MYSLITE*/ + 0, /* U+002c2f: */ + RTUNI_ALPHA | RTUNI_LOWER, /* U+002c30: GLAGOLITIC SMALL LETTER AZU*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+002c31: GLAGOLITIC SMALL LETTER BUKY*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+002c32: GLAGOLITIC SMALL LETTER VEDE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+002c33: GLAGOLITIC SMALL LETTER GLAGOLI*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+002c34: GLAGOLITIC SMALL LETTER DOBRO*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+002c35: GLAGOLITIC SMALL LETTER YESTU*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+002c36: GLAGOLITIC SMALL LETTER ZHIVETE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+002c37: GLAGOLITIC SMALL LETTER DZELO*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+002c38: GLAGOLITIC SMALL LETTER ZEMLJA*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+002c39: GLAGOLITIC SMALL LETTER IZHE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+002c3a: GLAGOLITIC SMALL LETTER INITIAL IZHE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+002c3b: GLAGOLITIC SMALL LETTER I*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+002c3c: GLAGOLITIC SMALL LETTER DJERVI*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+002c3d: GLAGOLITIC SMALL LETTER KAKO*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+002c3e: GLAGOLITIC SMALL LETTER LJUDIJE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+002c3f: GLAGOLITIC SMALL LETTER MYSLITE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+002c40: GLAGOLITIC SMALL LETTER NASHI*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+002c41: GLAGOLITIC SMALL LETTER ONU*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+002c42: GLAGOLITIC SMALL LETTER POKOJI*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+002c43: GLAGOLITIC SMALL LETTER RITSI*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+002c44: GLAGOLITIC SMALL LETTER SLOVO*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+002c45: GLAGOLITIC SMALL LETTER TVRIDO*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+002c46: GLAGOLITIC SMALL LETTER UKU*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+002c47: GLAGOLITIC SMALL LETTER FRITU*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+002c48: GLAGOLITIC SMALL LETTER HERU*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+002c49: GLAGOLITIC SMALL LETTER OTU*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+002c4a: GLAGOLITIC SMALL LETTER PE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+002c4b: GLAGOLITIC SMALL LETTER SHTA*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+002c4c: GLAGOLITIC SMALL LETTER TSI*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+002c4d: GLAGOLITIC SMALL LETTER CHRIVI*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+002c4e: GLAGOLITIC SMALL LETTER SHA*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+002c4f: GLAGOLITIC SMALL LETTER YERU*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+002c50: GLAGOLITIC SMALL LETTER YERI*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+002c51: GLAGOLITIC SMALL LETTER YATI*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+002c52: GLAGOLITIC SMALL LETTER SPIDERY HA*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+002c53: GLAGOLITIC SMALL LETTER YU*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+002c54: GLAGOLITIC SMALL LETTER SMALL YUS*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+002c55: GLAGOLITIC SMALL LETTER SMALL YUS WITH TAIL*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+002c56: GLAGOLITIC SMALL LETTER YO*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+002c57: GLAGOLITIC SMALL LETTER IOTATED SMALL YUS*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+002c58: GLAGOLITIC SMALL LETTER BIG YUS*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+002c59: GLAGOLITIC SMALL LETTER IOTATED BIG YUS*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+002c5a: GLAGOLITIC SMALL LETTER FITA*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+002c5b: GLAGOLITIC SMALL LETTER IZHITSA*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+002c5c: GLAGOLITIC SMALL LETTER SHTAPIC*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+002c5d: GLAGOLITIC SMALL LETTER TROKUTASTI A*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+002c5e: GLAGOLITIC SMALL LETTER LATINATE MYSLITE*/ + 0, /* U+002c5f: */ + RTUNI_ALPHA | RTUNI_UPPER, /* U+002c60: LATIN CAPITAL LETTER L WITH DOUBLE BAR*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+002c61: LATIN SMALL LETTER L WITH DOUBLE BAR*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+002c62: LATIN CAPITAL LETTER L WITH MIDDLE TILDE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+002c63: LATIN CAPITAL LETTER P WITH STROKE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+002c64: LATIN CAPITAL LETTER R WITH TAIL*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+002c65: LATIN SMALL LETTER A WITH STROKE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+002c66: LATIN SMALL LETTER T WITH DIAGONAL STROKE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+002c67: LATIN CAPITAL LETTER H WITH DESCENDER*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+002c68: LATIN SMALL LETTER H WITH DESCENDER*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+002c69: LATIN CAPITAL LETTER K WITH DESCENDER*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+002c6a: LATIN SMALL LETTER K WITH DESCENDER*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+002c6b: LATIN CAPITAL LETTER Z WITH DESCENDER*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+002c6c: LATIN SMALL LETTER Z WITH DESCENDER*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+002c6d: LATIN CAPITAL LETTER ALPHA*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+002c6e: LATIN CAPITAL LETTER M WITH HOOK*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+002c6f: LATIN CAPITAL LETTER TURNED A*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+002c70: LATIN CAPITAL LETTER TURNED ALPHA*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+002c71: LATIN SMALL LETTER V WITH RIGHT HOOK*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+002c72: LATIN CAPITAL LETTER W WITH HOOK*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+002c73: LATIN SMALL LETTER W WITH HOOK*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+002c74: LATIN SMALL LETTER V WITH CURL*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+002c75: LATIN CAPITAL LETTER HALF H*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+002c76: LATIN SMALL LETTER HALF H*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+002c77: LATIN SMALL LETTER TAILLESS PHI*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+002c78: LATIN SMALL LETTER E WITH NOTCH*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+002c79: LATIN SMALL LETTER TURNED R WITH TAIL*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+002c7a: LATIN SMALL LETTER O WITH LOW RING INSIDE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+002c7b: LATIN LETTER SMALL CAPITAL TURNED E*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+002c7c: LATIN SUBSCRIPT SMALL LETTER J*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+002c7d: MODIFIER LETTER CAPITAL V*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+002c7e: LATIN CAPITAL LETTER S WITH SWASH TAIL*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+002c7f: LATIN CAPITAL LETTER Z WITH SWASH TAIL*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+002c80: COPTIC CAPITAL LETTER ALFA*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+002c81: COPTIC SMALL LETTER ALFA*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+002c82: COPTIC CAPITAL LETTER VIDA*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+002c83: COPTIC SMALL LETTER VIDA*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+002c84: COPTIC CAPITAL LETTER GAMMA*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+002c85: COPTIC SMALL LETTER GAMMA*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+002c86: COPTIC CAPITAL LETTER DALDA*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+002c87: COPTIC SMALL LETTER DALDA*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+002c88: COPTIC CAPITAL LETTER EIE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+002c89: COPTIC SMALL LETTER EIE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+002c8a: COPTIC CAPITAL LETTER SOU*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+002c8b: COPTIC SMALL LETTER SOU*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+002c8c: COPTIC CAPITAL LETTER ZATA*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+002c8d: COPTIC SMALL LETTER ZATA*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+002c8e: COPTIC CAPITAL LETTER HATE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+002c8f: COPTIC SMALL LETTER HATE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+002c90: COPTIC CAPITAL LETTER THETHE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+002c91: COPTIC SMALL LETTER THETHE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+002c92: COPTIC CAPITAL LETTER IAUDA*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+002c93: COPTIC SMALL LETTER IAUDA*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+002c94: COPTIC CAPITAL LETTER KAPA*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+002c95: COPTIC SMALL LETTER KAPA*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+002c96: COPTIC CAPITAL LETTER LAULA*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+002c97: COPTIC SMALL LETTER LAULA*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+002c98: COPTIC CAPITAL LETTER MI*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+002c99: COPTIC SMALL LETTER MI*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+002c9a: COPTIC CAPITAL LETTER NI*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+002c9b: COPTIC SMALL LETTER NI*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+002c9c: COPTIC CAPITAL LETTER KSI*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+002c9d: COPTIC SMALL LETTER KSI*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+002c9e: COPTIC CAPITAL LETTER O*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+002c9f: COPTIC SMALL LETTER O*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+002ca0: COPTIC CAPITAL LETTER PI*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+002ca1: COPTIC SMALL LETTER PI*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+002ca2: COPTIC CAPITAL LETTER RO*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+002ca3: COPTIC SMALL LETTER RO*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+002ca4: COPTIC CAPITAL LETTER SIMA*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+002ca5: COPTIC SMALL LETTER SIMA*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+002ca6: COPTIC CAPITAL LETTER TAU*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+002ca7: COPTIC SMALL LETTER TAU*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+002ca8: COPTIC CAPITAL LETTER UA*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+002ca9: COPTIC SMALL LETTER UA*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+002caa: COPTIC CAPITAL LETTER FI*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+002cab: COPTIC SMALL LETTER FI*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+002cac: COPTIC CAPITAL LETTER KHI*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+002cad: COPTIC SMALL LETTER KHI*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+002cae: COPTIC CAPITAL LETTER PSI*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+002caf: COPTIC SMALL LETTER PSI*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+002cb0: COPTIC CAPITAL LETTER OOU*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+002cb1: COPTIC SMALL LETTER OOU*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+002cb2: COPTIC CAPITAL LETTER DIALECT-P ALEF*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+002cb3: COPTIC SMALL LETTER DIALECT-P ALEF*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+002cb4: COPTIC CAPITAL LETTER OLD COPTIC AIN*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+002cb5: COPTIC SMALL LETTER OLD COPTIC AIN*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+002cb6: COPTIC CAPITAL LETTER CRYPTOGRAMMIC EIE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+002cb7: COPTIC SMALL LETTER CRYPTOGRAMMIC EIE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+002cb8: COPTIC CAPITAL LETTER DIALECT-P KAPA*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+002cb9: COPTIC SMALL LETTER DIALECT-P KAPA*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+002cba: COPTIC CAPITAL LETTER DIALECT-P NI*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+002cbb: COPTIC SMALL LETTER DIALECT-P NI*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+002cbc: COPTIC CAPITAL LETTER CRYPTOGRAMMIC NI*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+002cbd: COPTIC SMALL LETTER CRYPTOGRAMMIC NI*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+002cbe: COPTIC CAPITAL LETTER OLD COPTIC OOU*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+002cbf: COPTIC SMALL LETTER OLD COPTIC OOU*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+002cc0: COPTIC CAPITAL LETTER SAMPI*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+002cc1: COPTIC SMALL LETTER SAMPI*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+002cc2: COPTIC CAPITAL LETTER CROSSED SHEI*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+002cc3: COPTIC SMALL LETTER CROSSED SHEI*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+002cc4: COPTIC CAPITAL LETTER OLD COPTIC SHEI*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+002cc5: COPTIC SMALL LETTER OLD COPTIC SHEI*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+002cc6: COPTIC CAPITAL LETTER OLD COPTIC ESH*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+002cc7: COPTIC SMALL LETTER OLD COPTIC ESH*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+002cc8: COPTIC CAPITAL LETTER AKHMIMIC KHEI*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+002cc9: COPTIC SMALL LETTER AKHMIMIC KHEI*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+002cca: COPTIC CAPITAL LETTER DIALECT-P HORI*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+002ccb: COPTIC SMALL LETTER DIALECT-P HORI*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+002ccc: COPTIC CAPITAL LETTER OLD COPTIC HORI*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+002ccd: COPTIC SMALL LETTER OLD COPTIC HORI*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+002cce: COPTIC CAPITAL LETTER OLD COPTIC HA*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+002ccf: COPTIC SMALL LETTER OLD COPTIC HA*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+002cd0: COPTIC CAPITAL LETTER L-SHAPED HA*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+002cd1: COPTIC SMALL LETTER L-SHAPED HA*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+002cd2: COPTIC CAPITAL LETTER OLD COPTIC HEI*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+002cd3: COPTIC SMALL LETTER OLD COPTIC HEI*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+002cd4: COPTIC CAPITAL LETTER OLD COPTIC HAT*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+002cd5: COPTIC SMALL LETTER OLD COPTIC HAT*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+002cd6: COPTIC CAPITAL LETTER OLD COPTIC GANGIA*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+002cd7: COPTIC SMALL LETTER OLD COPTIC GANGIA*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+002cd8: COPTIC CAPITAL LETTER OLD COPTIC DJA*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+002cd9: COPTIC SMALL LETTER OLD COPTIC DJA*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+002cda: COPTIC CAPITAL LETTER OLD COPTIC SHIMA*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+002cdb: COPTIC SMALL LETTER OLD COPTIC SHIMA*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+002cdc: COPTIC CAPITAL LETTER OLD NUBIAN SHIMA*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+002cdd: COPTIC SMALL LETTER OLD NUBIAN SHIMA*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+002cde: COPTIC CAPITAL LETTER OLD NUBIAN NGI*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+002cdf: COPTIC SMALL LETTER OLD NUBIAN NGI*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+002ce0: COPTIC CAPITAL LETTER OLD NUBIAN NYI*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+002ce1: COPTIC SMALL LETTER OLD NUBIAN NYI*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+002ce2: COPTIC CAPITAL LETTER OLD NUBIAN WAU*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+002ce3: COPTIC SMALL LETTER OLD NUBIAN WAU*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+002ce4: COPTIC SYMBOL KAI*/ + 0, /* U+002ce5: COPTIC SYMBOL MI RO*/ + 0, /* U+002ce6: COPTIC SYMBOL PI RO*/ + 0, /* U+002ce7: COPTIC SYMBOL STAUROS*/ + 0, /* U+002ce8: COPTIC SYMBOL TAU RO*/ + 0, /* U+002ce9: COPTIC SYMBOL KHI RO*/ + 0, /* U+002cea: COPTIC SYMBOL SHIMA SIMA*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+002ceb: COPTIC CAPITAL LETTER CRYPTOGRAMMIC SHEI*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+002cec: COPTIC SMALL LETTER CRYPTOGRAMMIC SHEI*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+002ced: COPTIC CAPITAL LETTER CRYPTOGRAMMIC GANGIA*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+002cee: COPTIC SMALL LETTER CRYPTOGRAMMIC GANGIA*/ + 0, /* U+002cef: COPTIC COMBINING NI ABOVE*/ + 0, /* U+002cf0: COPTIC COMBINING SPIRITUS ASPER*/ + 0, /* U+002cf1: COPTIC COMBINING SPIRITUS LENIS*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+002cf2: COPTIC CAPITAL LETTER BOHAIRIC KHEI*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+002cf3: COPTIC SMALL LETTER BOHAIRIC KHEI*/ + 0, /* U+002cf4: */ + 0, /* U+002cf5: */ + 0, /* U+002cf6: */ + 0, /* U+002cf7: */ + 0, /* U+002cf8: */ + 0, /* U+002cf9: COPTIC OLD NUBIAN FULL STOP*/ + 0, /* U+002cfa: COPTIC OLD NUBIAN DIRECT QUESTION MARK*/ + 0, /* U+002cfb: COPTIC OLD NUBIAN INDIRECT QUESTION MARK*/ + 0, /* U+002cfc: COPTIC OLD NUBIAN VERSE DIVIDER*/ + 0, /* U+002cfd: COPTIC FRACTION ONE HALF*/ + 0, /* U+002cfe: COPTIC FULL STOP*/ + 0, /* U+002cff: COPTIC MORPHOLOGICAL DIVIDER*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+002d00: GEORGIAN SMALL LETTER AN*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+002d01: GEORGIAN SMALL LETTER BAN*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+002d02: GEORGIAN SMALL LETTER GAN*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+002d03: GEORGIAN SMALL LETTER DON*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+002d04: GEORGIAN SMALL LETTER EN*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+002d05: GEORGIAN SMALL LETTER VIN*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+002d06: GEORGIAN SMALL LETTER ZEN*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+002d07: GEORGIAN SMALL LETTER TAN*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+002d08: GEORGIAN SMALL LETTER IN*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+002d09: GEORGIAN SMALL LETTER KAN*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+002d0a: GEORGIAN SMALL LETTER LAS*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+002d0b: GEORGIAN SMALL LETTER MAN*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+002d0c: GEORGIAN SMALL LETTER NAR*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+002d0d: GEORGIAN SMALL LETTER ON*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+002d0e: GEORGIAN SMALL LETTER PAR*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+002d0f: GEORGIAN SMALL LETTER ZHAR*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+002d10: GEORGIAN SMALL LETTER RAE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+002d11: GEORGIAN SMALL LETTER SAN*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+002d12: GEORGIAN SMALL LETTER TAR*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+002d13: GEORGIAN SMALL LETTER UN*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+002d14: GEORGIAN SMALL LETTER PHAR*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+002d15: GEORGIAN SMALL LETTER KHAR*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+002d16: GEORGIAN SMALL LETTER GHAN*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+002d17: GEORGIAN SMALL LETTER QAR*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+002d18: GEORGIAN SMALL LETTER SHIN*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+002d19: GEORGIAN SMALL LETTER CHIN*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+002d1a: GEORGIAN SMALL LETTER CAN*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+002d1b: GEORGIAN SMALL LETTER JIL*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+002d1c: GEORGIAN SMALL LETTER CIL*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+002d1d: GEORGIAN SMALL LETTER CHAR*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+002d1e: GEORGIAN SMALL LETTER XAN*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+002d1f: GEORGIAN SMALL LETTER JHAN*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+002d20: GEORGIAN SMALL LETTER HAE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+002d21: GEORGIAN SMALL LETTER HE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+002d22: GEORGIAN SMALL LETTER HIE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+002d23: GEORGIAN SMALL LETTER WE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+002d24: GEORGIAN SMALL LETTER HAR*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+002d25: GEORGIAN SMALL LETTER HOE*/ + 0, /* U+002d26: */ + RTUNI_ALPHA | RTUNI_LOWER, /* U+002d27: GEORGIAN SMALL LETTER YN*/ + 0, /* U+002d28: */ + 0, /* U+002d29: */ + 0, /* U+002d2a: */ + 0, /* U+002d2b: */ + 0, /* U+002d2c: */ + RTUNI_ALPHA | RTUNI_LOWER, /* U+002d2d: GEORGIAN SMALL LETTER AEN*/ + 0, /* U+002d2e: */ + 0, /* U+002d2f: */ + RTUNI_ALPHA, /* U+002d30: TIFINAGH LETTER YA*/ + RTUNI_ALPHA, /* U+002d31: TIFINAGH LETTER YAB*/ + RTUNI_ALPHA, /* U+002d32: TIFINAGH LETTER YABH*/ + RTUNI_ALPHA, /* U+002d33: TIFINAGH LETTER YAG*/ + RTUNI_ALPHA, /* U+002d34: TIFINAGH LETTER YAGHH*/ + RTUNI_ALPHA, /* U+002d35: TIFINAGH LETTER BERBER ACADEMY YAJ*/ + RTUNI_ALPHA, /* U+002d36: TIFINAGH LETTER YAJ*/ + RTUNI_ALPHA, /* U+002d37: TIFINAGH LETTER YAD*/ + RTUNI_ALPHA, /* U+002d38: TIFINAGH LETTER YADH*/ + RTUNI_ALPHA, /* U+002d39: TIFINAGH LETTER YADD*/ + RTUNI_ALPHA, /* U+002d3a: TIFINAGH LETTER YADDH*/ + RTUNI_ALPHA, /* U+002d3b: TIFINAGH LETTER YEY*/ + RTUNI_ALPHA, /* U+002d3c: TIFINAGH LETTER YAF*/ + RTUNI_ALPHA, /* U+002d3d: TIFINAGH LETTER YAK*/ + RTUNI_ALPHA, /* U+002d3e: TIFINAGH LETTER TUAREG YAK*/ + RTUNI_ALPHA, /* U+002d3f: TIFINAGH LETTER YAKHH*/ + RTUNI_ALPHA, /* U+002d40: TIFINAGH LETTER YAH*/ + RTUNI_ALPHA, /* U+002d41: TIFINAGH LETTER BERBER ACADEMY YAH*/ + RTUNI_ALPHA, /* U+002d42: TIFINAGH LETTER TUAREG YAH*/ + RTUNI_ALPHA, /* U+002d43: TIFINAGH LETTER YAHH*/ + RTUNI_ALPHA, /* U+002d44: TIFINAGH LETTER YAA*/ + RTUNI_ALPHA, /* U+002d45: TIFINAGH LETTER YAKH*/ + RTUNI_ALPHA, /* U+002d46: TIFINAGH LETTER TUAREG YAKH*/ + RTUNI_ALPHA, /* U+002d47: TIFINAGH LETTER YAQ*/ + RTUNI_ALPHA, /* U+002d48: TIFINAGH LETTER TUAREG YAQ*/ + RTUNI_ALPHA, /* U+002d49: TIFINAGH LETTER YI*/ + RTUNI_ALPHA, /* U+002d4a: TIFINAGH LETTER YAZH*/ + RTUNI_ALPHA, /* U+002d4b: TIFINAGH LETTER AHAGGAR YAZH*/ + RTUNI_ALPHA, /* U+002d4c: TIFINAGH LETTER TUAREG YAZH*/ + RTUNI_ALPHA, /* U+002d4d: TIFINAGH LETTER YAL*/ + RTUNI_ALPHA, /* U+002d4e: TIFINAGH LETTER YAM*/ + RTUNI_ALPHA, /* U+002d4f: TIFINAGH LETTER YAN*/ + RTUNI_ALPHA, /* U+002d50: TIFINAGH LETTER TUAREG YAGN*/ + RTUNI_ALPHA, /* U+002d51: TIFINAGH LETTER TUAREG YANG*/ + RTUNI_ALPHA, /* U+002d52: TIFINAGH LETTER YAP*/ + RTUNI_ALPHA, /* U+002d53: TIFINAGH LETTER YU*/ + RTUNI_ALPHA, /* U+002d54: TIFINAGH LETTER YAR*/ + RTUNI_ALPHA, /* U+002d55: TIFINAGH LETTER YARR*/ + RTUNI_ALPHA, /* U+002d56: TIFINAGH LETTER YAGH*/ + RTUNI_ALPHA, /* U+002d57: TIFINAGH LETTER TUAREG YAGH*/ + RTUNI_ALPHA, /* U+002d58: TIFINAGH LETTER AYER YAGH*/ + RTUNI_ALPHA, /* U+002d59: TIFINAGH LETTER YAS*/ + RTUNI_ALPHA, /* U+002d5a: TIFINAGH LETTER YASS*/ + RTUNI_ALPHA, /* U+002d5b: TIFINAGH LETTER YASH*/ + RTUNI_ALPHA, /* U+002d5c: TIFINAGH LETTER YAT*/ + RTUNI_ALPHA, /* U+002d5d: TIFINAGH LETTER YATH*/ + RTUNI_ALPHA, /* U+002d5e: TIFINAGH LETTER YACH*/ + RTUNI_ALPHA, /* U+002d5f: TIFINAGH LETTER YATT*/ + RTUNI_ALPHA, /* U+002d60: TIFINAGH LETTER YAV*/ + RTUNI_ALPHA, /* U+002d61: TIFINAGH LETTER YAW*/ + RTUNI_ALPHA, /* U+002d62: TIFINAGH LETTER YAY*/ + RTUNI_ALPHA, /* U+002d63: TIFINAGH LETTER YAZ*/ + RTUNI_ALPHA, /* U+002d64: TIFINAGH LETTER TAWELLEMET YAZ*/ + RTUNI_ALPHA, /* U+002d65: TIFINAGH LETTER YAZZ*/ + RTUNI_ALPHA, /* U+002d66: TIFINAGH LETTER YE*/ + RTUNI_ALPHA, /* U+002d67: TIFINAGH LETTER YO*/ + 0, /* U+002d68: */ + 0, /* U+002d69: */ + 0, /* U+002d6a: */ + 0, /* U+002d6b: */ + 0, /* U+002d6c: */ + 0, /* U+002d6d: */ + 0, /* U+002d6e: */ + RTUNI_ALPHA, /* U+002d6f: TIFINAGH MODIFIER LETTER LABIALIZATION MARK*/ + 0, /* U+002d70: TIFINAGH SEPARATOR MARK*/ + 0, /* U+002d71: */ + 0, /* U+002d72: */ + 0, /* U+002d73: */ + 0, /* U+002d74: */ + 0, /* U+002d75: */ + 0, /* U+002d76: */ + 0, /* U+002d77: */ + 0, /* U+002d78: */ + 0, /* U+002d79: */ + 0, /* U+002d7a: */ + 0, /* U+002d7b: */ + 0, /* U+002d7c: */ + 0, /* U+002d7d: */ + 0, /* U+002d7e: */ + 0, /* U+002d7f: TIFINAGH CONSONANT JOINER*/ + RTUNI_ALPHA, /* U+002d80: ETHIOPIC SYLLABLE LOA*/ + RTUNI_ALPHA, /* U+002d81: ETHIOPIC SYLLABLE MOA*/ + RTUNI_ALPHA, /* U+002d82: ETHIOPIC SYLLABLE ROA*/ + RTUNI_ALPHA, /* U+002d83: ETHIOPIC SYLLABLE SOA*/ + RTUNI_ALPHA, /* U+002d84: ETHIOPIC SYLLABLE SHOA*/ + RTUNI_ALPHA, /* U+002d85: ETHIOPIC SYLLABLE BOA*/ + RTUNI_ALPHA, /* U+002d86: ETHIOPIC SYLLABLE TOA*/ + RTUNI_ALPHA, /* U+002d87: ETHIOPIC SYLLABLE COA*/ + RTUNI_ALPHA, /* U+002d88: ETHIOPIC SYLLABLE NOA*/ + RTUNI_ALPHA, /* U+002d89: ETHIOPIC SYLLABLE NYOA*/ + RTUNI_ALPHA, /* U+002d8a: ETHIOPIC SYLLABLE GLOTTAL OA*/ + RTUNI_ALPHA, /* U+002d8b: ETHIOPIC SYLLABLE ZOA*/ + RTUNI_ALPHA, /* U+002d8c: ETHIOPIC SYLLABLE DOA*/ + RTUNI_ALPHA, /* U+002d8d: ETHIOPIC SYLLABLE DDOA*/ + RTUNI_ALPHA, /* U+002d8e: ETHIOPIC SYLLABLE JOA*/ + RTUNI_ALPHA, /* U+002d8f: ETHIOPIC SYLLABLE THOA*/ + RTUNI_ALPHA, /* U+002d90: ETHIOPIC SYLLABLE CHOA*/ + RTUNI_ALPHA, /* U+002d91: ETHIOPIC SYLLABLE PHOA*/ + RTUNI_ALPHA, /* U+002d92: ETHIOPIC SYLLABLE POA*/ + RTUNI_ALPHA, /* U+002d93: ETHIOPIC SYLLABLE GGWA*/ + RTUNI_ALPHA, /* U+002d94: ETHIOPIC SYLLABLE GGWI*/ + RTUNI_ALPHA, /* U+002d95: ETHIOPIC SYLLABLE GGWEE*/ + RTUNI_ALPHA, /* U+002d96: ETHIOPIC SYLLABLE GGWE*/ + 0, /* U+002d97: */ + 0, /* U+002d98: */ + 0, /* U+002d99: */ + 0, /* U+002d9a: */ + 0, /* U+002d9b: */ + 0, /* U+002d9c: */ + 0, /* U+002d9d: */ + 0, /* U+002d9e: */ + 0, /* U+002d9f: */ + RTUNI_ALPHA, /* U+002da0: ETHIOPIC SYLLABLE SSA*/ + RTUNI_ALPHA, /* U+002da1: ETHIOPIC SYLLABLE SSU*/ + RTUNI_ALPHA, /* U+002da2: ETHIOPIC SYLLABLE SSI*/ + RTUNI_ALPHA, /* U+002da3: ETHIOPIC SYLLABLE SSAA*/ + RTUNI_ALPHA, /* U+002da4: ETHIOPIC SYLLABLE SSEE*/ + RTUNI_ALPHA, /* U+002da5: ETHIOPIC SYLLABLE SSE*/ + RTUNI_ALPHA, /* U+002da6: ETHIOPIC SYLLABLE SSO*/ + 0, /* U+002da7: */ + RTUNI_ALPHA, /* U+002da8: ETHIOPIC SYLLABLE CCA*/ + RTUNI_ALPHA, /* U+002da9: ETHIOPIC SYLLABLE CCU*/ + RTUNI_ALPHA, /* U+002daa: ETHIOPIC SYLLABLE CCI*/ + RTUNI_ALPHA, /* U+002dab: ETHIOPIC SYLLABLE CCAA*/ + RTUNI_ALPHA, /* U+002dac: ETHIOPIC SYLLABLE CCEE*/ + RTUNI_ALPHA, /* U+002dad: ETHIOPIC SYLLABLE CCE*/ + RTUNI_ALPHA, /* U+002dae: ETHIOPIC SYLLABLE CCO*/ + 0, /* U+002daf: */ + RTUNI_ALPHA, /* U+002db0: ETHIOPIC SYLLABLE ZZA*/ + RTUNI_ALPHA, /* U+002db1: ETHIOPIC SYLLABLE ZZU*/ + RTUNI_ALPHA, /* U+002db2: ETHIOPIC SYLLABLE ZZI*/ + RTUNI_ALPHA, /* U+002db3: ETHIOPIC SYLLABLE ZZAA*/ + RTUNI_ALPHA, /* U+002db4: ETHIOPIC SYLLABLE ZZEE*/ + RTUNI_ALPHA, /* U+002db5: ETHIOPIC SYLLABLE ZZE*/ + RTUNI_ALPHA, /* U+002db6: ETHIOPIC SYLLABLE ZZO*/ + 0, /* U+002db7: */ + RTUNI_ALPHA, /* U+002db8: ETHIOPIC SYLLABLE CCHA*/ + RTUNI_ALPHA, /* U+002db9: ETHIOPIC SYLLABLE CCHU*/ + RTUNI_ALPHA, /* U+002dba: ETHIOPIC SYLLABLE CCHI*/ + RTUNI_ALPHA, /* U+002dbb: ETHIOPIC SYLLABLE CCHAA*/ + RTUNI_ALPHA, /* U+002dbc: ETHIOPIC SYLLABLE CCHEE*/ + RTUNI_ALPHA, /* U+002dbd: ETHIOPIC SYLLABLE CCHE*/ + RTUNI_ALPHA, /* U+002dbe: ETHIOPIC SYLLABLE CCHO*/ + 0, /* U+002dbf: */ + RTUNI_ALPHA, /* U+002dc0: ETHIOPIC SYLLABLE QYA*/ + RTUNI_ALPHA, /* U+002dc1: ETHIOPIC SYLLABLE QYU*/ + RTUNI_ALPHA, /* U+002dc2: ETHIOPIC SYLLABLE QYI*/ + RTUNI_ALPHA, /* U+002dc3: ETHIOPIC SYLLABLE QYAA*/ + RTUNI_ALPHA, /* U+002dc4: ETHIOPIC SYLLABLE QYEE*/ + RTUNI_ALPHA, /* U+002dc5: ETHIOPIC SYLLABLE QYE*/ + RTUNI_ALPHA, /* U+002dc6: ETHIOPIC SYLLABLE QYO*/ + 0, /* U+002dc7: */ + RTUNI_ALPHA, /* U+002dc8: ETHIOPIC SYLLABLE KYA*/ + RTUNI_ALPHA, /* U+002dc9: ETHIOPIC SYLLABLE KYU*/ + RTUNI_ALPHA, /* U+002dca: ETHIOPIC SYLLABLE KYI*/ + RTUNI_ALPHA, /* U+002dcb: ETHIOPIC SYLLABLE KYAA*/ + RTUNI_ALPHA, /* U+002dcc: ETHIOPIC SYLLABLE KYEE*/ + RTUNI_ALPHA, /* U+002dcd: ETHIOPIC SYLLABLE KYE*/ + RTUNI_ALPHA, /* U+002dce: ETHIOPIC SYLLABLE KYO*/ + 0, /* U+002dcf: */ + RTUNI_ALPHA, /* U+002dd0: ETHIOPIC SYLLABLE XYA*/ + RTUNI_ALPHA, /* U+002dd1: ETHIOPIC SYLLABLE XYU*/ + RTUNI_ALPHA, /* U+002dd2: ETHIOPIC SYLLABLE XYI*/ + RTUNI_ALPHA, /* U+002dd3: ETHIOPIC SYLLABLE XYAA*/ + RTUNI_ALPHA, /* U+002dd4: ETHIOPIC SYLLABLE XYEE*/ + RTUNI_ALPHA, /* U+002dd5: ETHIOPIC SYLLABLE XYE*/ + RTUNI_ALPHA, /* U+002dd6: ETHIOPIC SYLLABLE XYO*/ + 0, /* U+002dd7: */ + RTUNI_ALPHA, /* U+002dd8: ETHIOPIC SYLLABLE GYA*/ + RTUNI_ALPHA, /* U+002dd9: ETHIOPIC SYLLABLE GYU*/ + RTUNI_ALPHA, /* U+002dda: ETHIOPIC SYLLABLE GYI*/ + RTUNI_ALPHA, /* U+002ddb: ETHIOPIC SYLLABLE GYAA*/ + RTUNI_ALPHA, /* U+002ddc: ETHIOPIC SYLLABLE GYEE*/ + RTUNI_ALPHA, /* U+002ddd: ETHIOPIC SYLLABLE GYE*/ + RTUNI_ALPHA, /* U+002dde: ETHIOPIC SYLLABLE GYO*/ + 0, /* U+002ddf: */ + RTUNI_ALPHA, /* U+002de0: COMBINING CYRILLIC LETTER BE*/ + RTUNI_ALPHA, /* U+002de1: COMBINING CYRILLIC LETTER VE*/ + RTUNI_ALPHA, /* U+002de2: COMBINING CYRILLIC LETTER GHE*/ + RTUNI_ALPHA, /* U+002de3: COMBINING CYRILLIC LETTER DE*/ + RTUNI_ALPHA, /* U+002de4: COMBINING CYRILLIC LETTER ZHE*/ + RTUNI_ALPHA, /* U+002de5: COMBINING CYRILLIC LETTER ZE*/ + RTUNI_ALPHA, /* U+002de6: COMBINING CYRILLIC LETTER KA*/ + RTUNI_ALPHA, /* U+002de7: COMBINING CYRILLIC LETTER EL*/ + RTUNI_ALPHA, /* U+002de8: COMBINING CYRILLIC LETTER EM*/ + RTUNI_ALPHA, /* U+002de9: COMBINING CYRILLIC LETTER EN*/ + RTUNI_ALPHA, /* U+002dea: COMBINING CYRILLIC LETTER O*/ + RTUNI_ALPHA, /* U+002deb: COMBINING CYRILLIC LETTER PE*/ + RTUNI_ALPHA, /* U+002dec: COMBINING CYRILLIC LETTER ER*/ + RTUNI_ALPHA, /* U+002ded: COMBINING CYRILLIC LETTER ES*/ + RTUNI_ALPHA, /* U+002dee: COMBINING CYRILLIC LETTER TE*/ + RTUNI_ALPHA, /* U+002def: COMBINING CYRILLIC LETTER HA*/ + RTUNI_ALPHA, /* U+002df0: COMBINING CYRILLIC LETTER TSE*/ + RTUNI_ALPHA, /* U+002df1: COMBINING CYRILLIC LETTER CHE*/ + RTUNI_ALPHA, /* U+002df2: COMBINING CYRILLIC LETTER SHA*/ + RTUNI_ALPHA, /* U+002df3: COMBINING CYRILLIC LETTER SHCHA*/ + RTUNI_ALPHA, /* U+002df4: COMBINING CYRILLIC LETTER FITA*/ + RTUNI_ALPHA, /* U+002df5: COMBINING CYRILLIC LETTER ES-TE*/ + RTUNI_ALPHA, /* U+002df6: COMBINING CYRILLIC LETTER A*/ + RTUNI_ALPHA, /* U+002df7: COMBINING CYRILLIC LETTER IE*/ + RTUNI_ALPHA, /* U+002df8: COMBINING CYRILLIC LETTER DJERV*/ + RTUNI_ALPHA, /* U+002df9: COMBINING CYRILLIC LETTER MONOGRAPH UK*/ + RTUNI_ALPHA, /* U+002dfa: COMBINING CYRILLIC LETTER YAT*/ + RTUNI_ALPHA, /* U+002dfb: COMBINING CYRILLIC LETTER YU*/ + RTUNI_ALPHA, /* U+002dfc: COMBINING CYRILLIC LETTER IOTIFIED A*/ + RTUNI_ALPHA, /* U+002dfd: COMBINING CYRILLIC LETTER LITTLE YUS*/ + RTUNI_ALPHA, /* U+002dfe: COMBINING CYRILLIC LETTER BIG YUS*/ + RTUNI_ALPHA, /* U+002dff: COMBINING CYRILLIC LETTER IOTIFIED BIG YUS*/ + 0, /* U+002e00: RIGHT ANGLE SUBSTITUTION MARKER*/ + 0, /* U+002e01: RIGHT ANGLE DOTTED SUBSTITUTION MARKER*/ + 0, /* U+002e02: LEFT SUBSTITUTION BRACKET*/ + 0, /* U+002e03: RIGHT SUBSTITUTION BRACKET*/ + 0, /* U+002e04: LEFT DOTTED SUBSTITUTION BRACKET*/ + 0, /* U+002e05: RIGHT DOTTED SUBSTITUTION BRACKET*/ + 0, /* U+002e06: RAISED INTERPOLATION MARKER*/ + 0, /* U+002e07: RAISED DOTTED INTERPOLATION MARKER*/ + 0, /* U+002e08: DOTTED TRANSPOSITION MARKER*/ + 0, /* U+002e09: LEFT TRANSPOSITION BRACKET*/ + 0, /* U+002e0a: RIGHT TRANSPOSITION BRACKET*/ + 0, /* U+002e0b: RAISED SQUARE*/ + 0, /* U+002e0c: LEFT RAISED OMISSION BRACKET*/ + 0, /* U+002e0d: RIGHT RAISED OMISSION BRACKET*/ + 0, /* U+002e0e: EDITORIAL CORONIS*/ + 0, /* U+002e0f: PARAGRAPHOS*/ + 0, /* U+002e10: FORKED PARAGRAPHOS*/ + 0, /* U+002e11: REVERSED FORKED PARAGRAPHOS*/ + 0, /* U+002e12: HYPODIASTOLE*/ + 0, /* U+002e13: DOTTED OBELOS*/ + 0, /* U+002e14: DOWNWARDS ANCORA*/ + 0, /* U+002e15: UPWARDS ANCORA*/ + 0, /* U+002e16: DOTTED RIGHT-POINTING ANGLE*/ + 0, /* U+002e17: DOUBLE OBLIQUE HYPHEN*/ + 0, /* U+002e18: INVERTED INTERROBANG*/ + 0, /* U+002e19: PALM BRANCH*/ + 0, /* U+002e1a: HYPHEN WITH DIAERESIS*/ + 0, /* U+002e1b: TILDE WITH RING ABOVE*/ + 0, /* U+002e1c: LEFT LOW PARAPHRASE BRACKET*/ + 0, /* U+002e1d: RIGHT LOW PARAPHRASE BRACKET*/ + 0, /* U+002e1e: TILDE WITH DOT ABOVE*/ + 0, /* U+002e1f: TILDE WITH DOT BELOW*/ + 0, /* U+002e20: LEFT VERTICAL BAR WITH QUILL*/ + 0, /* U+002e21: RIGHT VERTICAL BAR WITH QUILL*/ + 0, /* U+002e22: TOP LEFT HALF BRACKET*/ + 0, /* U+002e23: TOP RIGHT HALF BRACKET*/ + 0, /* U+002e24: BOTTOM LEFT HALF BRACKET*/ + 0, /* U+002e25: BOTTOM RIGHT HALF BRACKET*/ + 0, /* U+002e26: LEFT SIDEWAYS U BRACKET*/ + 0, /* U+002e27: RIGHT SIDEWAYS U BRACKET*/ + 0, /* U+002e28: LEFT DOUBLE PARENTHESIS*/ + 0, /* U+002e29: RIGHT DOUBLE PARENTHESIS*/ + 0, /* U+002e2a: TWO DOTS OVER ONE DOT PUNCTUATION*/ + 0, /* U+002e2b: ONE DOT OVER TWO DOTS PUNCTUATION*/ + 0, /* U+002e2c: SQUARED FOUR DOT PUNCTUATION*/ + 0, /* U+002e2d: FIVE DOT MARK*/ + 0, /* U+002e2e: REVERSED QUESTION MARK*/ + RTUNI_ALPHA, /* U+002e2f: VERTICAL TILDE*/ + 0, /* U+002e30: RING POINT*/ + 0, /* U+002e31: WORD SEPARATOR MIDDLE DOT*/ + 0, /* U+002e32: TURNED COMMA*/ + 0, /* U+002e33: RAISED DOT*/ + 0, /* U+002e34: RAISED COMMA*/ + 0, /* U+002e35: TURNED SEMICOLON*/ + 0, /* U+002e36: DAGGER WITH LEFT GUARD*/ + 0, /* U+002e37: DAGGER WITH RIGHT GUARD*/ + 0, /* U+002e38: TURNED DAGGER*/ + 0, /* U+002e39: TOP HALF SECTION SIGN*/ + 0, /* U+002e3a: TWO-EM DASH*/ + 0, /* U+002e3b: THREE-EM DASH*/ + 0, /* U+002e3c: */ + 0, /* U+002e3d: */ + 0, /* U+002e3e: */ + 0, /* U+002e3f: */ + 0, /* U+002e40: */ + 0, /* U+002e41: */ + 0, /* U+002e42: */ + 0, /* U+002e43: */ + 0, /* U+002e44: */ + 0, /* U+002e45: */ + 0, /* U+002e46: */ + 0, /* U+002e47: */ + 0, /* U+002e48: */ + 0, /* U+002e49: */ + 0, /* U+002e4a: */ + 0, /* U+002e4b: */ + 0, /* U+002e4c: */ + 0, /* U+002e4d: */ + 0, /* U+002e4e: */ + 0, /* U+002e4f: */ + 0, /* U+002e50: */ + 0, /* U+002e51: */ + 0, /* U+002e52: */ + 0, /* U+002e53: */ + 0, /* U+002e54: */ + 0, /* U+002e55: */ + 0, /* U+002e56: */ + 0, /* U+002e57: */ + 0, /* U+002e58: */ + 0, /* U+002e59: */ + 0, /* U+002e5a: */ + 0, /* U+002e5b: */ + 0, /* U+002e5c: */ + 0, /* U+002e5d: */ + 0, /* U+002e5e: */ + 0, /* U+002e5f: */ + 0, /* U+002e60: */ + 0, /* U+002e61: */ + 0, /* U+002e62: */ + 0, /* U+002e63: */ + 0, /* U+002e64: */ + 0, /* U+002e65: */ + 0, /* U+002e66: */ + 0, /* U+002e67: */ + 0, /* U+002e68: */ + 0, /* U+002e69: */ + 0, /* U+002e6a: */ + 0, /* U+002e6b: */ + 0, /* U+002e6c: */ + 0, /* U+002e6d: */ + 0, /* U+002e6e: */ + 0, /* U+002e6f: */ + 0, /* U+002e70: */ + 0, /* U+002e71: */ + 0, /* U+002e72: */ + 0, /* U+002e73: */ + 0, /* U+002e74: */ + 0, /* U+002e75: */ + 0, /* U+002e76: */ + 0, /* U+002e77: */ + 0, /* U+002e78: */ + 0, /* U+002e79: */ + 0, /* U+002e7a: */ + 0, /* U+002e7b: */ + 0, /* U+002e7c: */ + 0, /* U+002e7d: */ + 0, /* U+002e7e: */ + 0, /* U+002e7f: */ + 0, /* U+002e80: CJK RADICAL REPEAT*/ + 0, /* U+002e81: CJK RADICAL CLIFF*/ + 0, /* U+002e82: CJK RADICAL SECOND ONE*/ + 0, /* U+002e83: CJK RADICAL SECOND TWO*/ + 0, /* U+002e84: CJK RADICAL SECOND THREE*/ + 0, /* U+002e85: CJK RADICAL PERSON*/ + 0, /* U+002e86: CJK RADICAL BOX*/ + 0, /* U+002e87: CJK RADICAL TABLE*/ + 0, /* U+002e88: CJK RADICAL KNIFE ONE*/ + 0, /* U+002e89: CJK RADICAL KNIFE TWO*/ + 0, /* U+002e8a: CJK RADICAL DIVINATION*/ + 0, /* U+002e8b: CJK RADICAL SEAL*/ + 0, /* U+002e8c: CJK RADICAL SMALL ONE*/ + 0, /* U+002e8d: CJK RADICAL SMALL TWO*/ + 0, /* U+002e8e: CJK RADICAL LAME ONE*/ + 0, /* U+002e8f: CJK RADICAL LAME TWO*/ + 0, /* U+002e90: CJK RADICAL LAME THREE*/ + 0, /* U+002e91: CJK RADICAL LAME FOUR*/ + 0, /* U+002e92: CJK RADICAL SNAKE*/ + 0, /* U+002e93: CJK RADICAL THREAD*/ + 0, /* U+002e94: CJK RADICAL SNOUT ONE*/ + 0, /* U+002e95: CJK RADICAL SNOUT TWO*/ + 0, /* U+002e96: CJK RADICAL HEART ONE*/ + 0, /* U+002e97: CJK RADICAL HEART TWO*/ + 0, /* U+002e98: CJK RADICAL HAND*/ + 0, /* U+002e99: CJK RADICAL RAP*/ + 0, /* U+002e9a: */ + 0, /* U+002e9b: CJK RADICAL CHOKE*/ + 0, /* U+002e9c: CJK RADICAL SUN*/ + 0, /* U+002e9d: CJK RADICAL MOON*/ + 0, /* U+002e9e: CJK RADICAL DEATH*/ + 0, /* U+002e9f: CJK RADICAL MOTHER*/ + 0, /* U+002ea0: CJK RADICAL CIVILIAN*/ + 0, /* U+002ea1: CJK RADICAL WATER ONE*/ + 0, /* U+002ea2: CJK RADICAL WATER TWO*/ + 0, /* U+002ea3: CJK RADICAL FIRE*/ + 0, /* U+002ea4: CJK RADICAL PAW ONE*/ + 0, /* U+002ea5: CJK RADICAL PAW TWO*/ + 0, /* U+002ea6: CJK RADICAL SIMPLIFIED HALF TREE TRUNK*/ + 0, /* U+002ea7: CJK RADICAL COW*/ + 0, /* U+002ea8: CJK RADICAL DOG*/ + 0, /* U+002ea9: CJK RADICAL JADE*/ + 0, /* U+002eaa: CJK RADICAL BOLT OF CLOTH*/ + 0, /* U+002eab: CJK RADICAL EYE*/ + 0, /* U+002eac: CJK RADICAL SPIRIT ONE*/ + 0, /* U+002ead: CJK RADICAL SPIRIT TWO*/ + 0, /* U+002eae: CJK RADICAL BAMBOO*/ + 0, /* U+002eaf: CJK RADICAL SILK*/ + 0, /* U+002eb0: CJK RADICAL C-SIMPLIFIED SILK*/ + 0, /* U+002eb1: CJK RADICAL NET ONE*/ + 0, /* U+002eb2: CJK RADICAL NET TWO*/ + 0, /* U+002eb3: CJK RADICAL NET THREE*/ + 0, /* U+002eb4: CJK RADICAL NET FOUR*/ + 0, /* U+002eb5: CJK RADICAL MESH*/ + 0, /* U+002eb6: CJK RADICAL SHEEP*/ + 0, /* U+002eb7: CJK RADICAL RAM*/ + 0, /* U+002eb8: CJK RADICAL EWE*/ + 0, /* U+002eb9: CJK RADICAL OLD*/ + 0, /* U+002eba: CJK RADICAL BRUSH ONE*/ + 0, /* U+002ebb: CJK RADICAL BRUSH TWO*/ + 0, /* U+002ebc: CJK RADICAL MEAT*/ + 0, /* U+002ebd: CJK RADICAL MORTAR*/ + 0, /* U+002ebe: CJK RADICAL GRASS ONE*/ + 0, /* U+002ebf: CJK RADICAL GRASS TWO*/ + 0, /* U+002ec0: CJK RADICAL GRASS THREE*/ + 0, /* U+002ec1: CJK RADICAL TIGER*/ + 0, /* U+002ec2: CJK RADICAL CLOTHES*/ + 0, /* U+002ec3: CJK RADICAL WEST ONE*/ + 0, /* U+002ec4: CJK RADICAL WEST TWO*/ + 0, /* U+002ec5: CJK RADICAL C-SIMPLIFIED SEE*/ + 0, /* U+002ec6: CJK RADICAL SIMPLIFIED HORN*/ + 0, /* U+002ec7: CJK RADICAL HORN*/ + 0, /* U+002ec8: CJK RADICAL C-SIMPLIFIED SPEECH*/ + 0, /* U+002ec9: CJK RADICAL C-SIMPLIFIED SHELL*/ + 0, /* U+002eca: CJK RADICAL FOOT*/ + 0, /* U+002ecb: CJK RADICAL C-SIMPLIFIED CART*/ + 0, /* U+002ecc: CJK RADICAL SIMPLIFIED WALK*/ + 0, /* U+002ecd: CJK RADICAL WALK ONE*/ + 0, /* U+002ece: CJK RADICAL WALK TWO*/ + 0, /* U+002ecf: CJK RADICAL CITY*/ + 0, /* U+002ed0: CJK RADICAL C-SIMPLIFIED GOLD*/ + 0, /* U+002ed1: CJK RADICAL LONG ONE*/ + 0, /* U+002ed2: CJK RADICAL LONG TWO*/ + 0, /* U+002ed3: CJK RADICAL C-SIMPLIFIED LONG*/ + 0, /* U+002ed4: CJK RADICAL C-SIMPLIFIED GATE*/ + 0, /* U+002ed5: CJK RADICAL MOUND ONE*/ + 0, /* U+002ed6: CJK RADICAL MOUND TWO*/ + 0, /* U+002ed7: CJK RADICAL RAIN*/ + 0, /* U+002ed8: CJK RADICAL BLUE*/ + 0, /* U+002ed9: CJK RADICAL C-SIMPLIFIED TANNED LEATHER*/ + 0, /* U+002eda: CJK RADICAL C-SIMPLIFIED LEAF*/ + 0, /* U+002edb: CJK RADICAL C-SIMPLIFIED WIND*/ + 0, /* U+002edc: CJK RADICAL C-SIMPLIFIED FLY*/ + 0, /* U+002edd: CJK RADICAL EAT ONE*/ + 0, /* U+002ede: CJK RADICAL EAT TWO*/ + 0, /* U+002edf: CJK RADICAL EAT THREE*/ + 0, /* U+002ee0: CJK RADICAL C-SIMPLIFIED EAT*/ + 0, /* U+002ee1: CJK RADICAL HEAD*/ + 0, /* U+002ee2: CJK RADICAL C-SIMPLIFIED HORSE*/ + 0, /* U+002ee3: CJK RADICAL BONE*/ + 0, /* U+002ee4: CJK RADICAL GHOST*/ + 0, /* U+002ee5: CJK RADICAL C-SIMPLIFIED FISH*/ + 0, /* U+002ee6: CJK RADICAL C-SIMPLIFIED BIRD*/ + 0, /* U+002ee7: CJK RADICAL C-SIMPLIFIED SALT*/ + 0, /* U+002ee8: CJK RADICAL SIMPLIFIED WHEAT*/ + 0, /* U+002ee9: CJK RADICAL SIMPLIFIED YELLOW*/ + 0, /* U+002eea: CJK RADICAL C-SIMPLIFIED FROG*/ + 0, /* U+002eeb: CJK RADICAL J-SIMPLIFIED EVEN*/ + 0, /* U+002eec: CJK RADICAL C-SIMPLIFIED EVEN*/ + 0, /* U+002eed: CJK RADICAL J-SIMPLIFIED TOOTH*/ + 0, /* U+002eee: CJK RADICAL C-SIMPLIFIED TOOTH*/ + 0, /* U+002eef: CJK RADICAL J-SIMPLIFIED DRAGON*/ + 0, /* U+002ef0: CJK RADICAL C-SIMPLIFIED DRAGON*/ + 0, /* U+002ef1: CJK RADICAL TURTLE*/ + 0, /* U+002ef2: CJK RADICAL J-SIMPLIFIED TURTLE*/ + 0, /* U+002ef3: CJK RADICAL C-SIMPLIFIED TURTLE*/ + 0, /* U+002ef4: */ + 0, /* U+002ef5: */ + 0, /* U+002ef6: */ + 0, /* U+002ef7: */ + 0, /* U+002ef8: */ + 0, /* U+002ef9: */ + 0, /* U+002efa: */ + 0, /* U+002efb: */ + 0, /* U+002efc: */ + 0, /* U+002efd: */ + 0, /* U+002efe: */ + 0, /* U+002eff: */ + 0, /* U+002f00: KANGXI RADICAL ONE*/ + 0, /* U+002f01: KANGXI RADICAL LINE*/ + 0, /* U+002f02: KANGXI RADICAL DOT*/ + 0, /* U+002f03: KANGXI RADICAL SLASH*/ + 0, /* U+002f04: KANGXI RADICAL SECOND*/ + 0, /* U+002f05: KANGXI RADICAL HOOK*/ + 0, /* U+002f06: KANGXI RADICAL TWO*/ + 0, /* U+002f07: KANGXI RADICAL LID*/ + 0, /* U+002f08: KANGXI RADICAL MAN*/ + 0, /* U+002f09: KANGXI RADICAL LEGS*/ + 0, /* U+002f0a: KANGXI RADICAL ENTER*/ + 0, /* U+002f0b: KANGXI RADICAL EIGHT*/ + 0, /* U+002f0c: KANGXI RADICAL DOWN BOX*/ + 0, /* U+002f0d: KANGXI RADICAL COVER*/ + 0, /* U+002f0e: KANGXI RADICAL ICE*/ + 0, /* U+002f0f: KANGXI RADICAL TABLE*/ + 0, /* U+002f10: KANGXI RADICAL OPEN BOX*/ + 0, /* U+002f11: KANGXI RADICAL KNIFE*/ + 0, /* U+002f12: KANGXI RADICAL POWER*/ + 0, /* U+002f13: KANGXI RADICAL WRAP*/ + 0, /* U+002f14: KANGXI RADICAL SPOON*/ + 0, /* U+002f15: KANGXI RADICAL RIGHT OPEN BOX*/ + 0, /* U+002f16: KANGXI RADICAL HIDING ENCLOSURE*/ + 0, /* U+002f17: KANGXI RADICAL TEN*/ + 0, /* U+002f18: KANGXI RADICAL DIVINATION*/ + 0, /* U+002f19: KANGXI RADICAL SEAL*/ + 0, /* U+002f1a: KANGXI RADICAL CLIFF*/ + 0, /* U+002f1b: KANGXI RADICAL PRIVATE*/ + 0, /* U+002f1c: KANGXI RADICAL AGAIN*/ + 0, /* U+002f1d: KANGXI RADICAL MOUTH*/ + 0, /* U+002f1e: KANGXI RADICAL ENCLOSURE*/ + 0, /* U+002f1f: KANGXI RADICAL EARTH*/ + 0, /* U+002f20: KANGXI RADICAL SCHOLAR*/ + 0, /* U+002f21: KANGXI RADICAL GO*/ + 0, /* U+002f22: KANGXI RADICAL GO SLOWLY*/ + 0, /* U+002f23: KANGXI RADICAL EVENING*/ + 0, /* U+002f24: KANGXI RADICAL BIG*/ + 0, /* U+002f25: KANGXI RADICAL WOMAN*/ + 0, /* U+002f26: KANGXI RADICAL CHILD*/ + 0, /* U+002f27: KANGXI RADICAL ROOF*/ + 0, /* U+002f28: KANGXI RADICAL INCH*/ + 0, /* U+002f29: KANGXI RADICAL SMALL*/ + 0, /* U+002f2a: KANGXI RADICAL LAME*/ + 0, /* U+002f2b: KANGXI RADICAL CORPSE*/ + 0, /* U+002f2c: KANGXI RADICAL SPROUT*/ + 0, /* U+002f2d: KANGXI RADICAL MOUNTAIN*/ + 0, /* U+002f2e: KANGXI RADICAL RIVER*/ + 0, /* U+002f2f: KANGXI RADICAL WORK*/ + 0, /* U+002f30: KANGXI RADICAL ONESELF*/ + 0, /* U+002f31: KANGXI RADICAL TURBAN*/ + 0, /* U+002f32: KANGXI RADICAL DRY*/ + 0, /* U+002f33: KANGXI RADICAL SHORT THREAD*/ + 0, /* U+002f34: KANGXI RADICAL DOTTED CLIFF*/ + 0, /* U+002f35: KANGXI RADICAL LONG STRIDE*/ + 0, /* U+002f36: KANGXI RADICAL TWO HANDS*/ + 0, /* U+002f37: KANGXI RADICAL SHOOT*/ + 0, /* U+002f38: KANGXI RADICAL BOW*/ + 0, /* U+002f39: KANGXI RADICAL SNOUT*/ + 0, /* U+002f3a: KANGXI RADICAL BRISTLE*/ + 0, /* U+002f3b: KANGXI RADICAL STEP*/ + 0, /* U+002f3c: KANGXI RADICAL HEART*/ + 0, /* U+002f3d: KANGXI RADICAL HALBERD*/ + 0, /* U+002f3e: KANGXI RADICAL DOOR*/ + 0, /* U+002f3f: KANGXI RADICAL HAND*/ + 0, /* U+002f40: KANGXI RADICAL BRANCH*/ + 0, /* U+002f41: KANGXI RADICAL RAP*/ + 0, /* U+002f42: KANGXI RADICAL SCRIPT*/ + 0, /* U+002f43: KANGXI RADICAL DIPPER*/ + 0, /* U+002f44: KANGXI RADICAL AXE*/ + 0, /* U+002f45: KANGXI RADICAL SQUARE*/ + 0, /* U+002f46: KANGXI RADICAL NOT*/ + 0, /* U+002f47: KANGXI RADICAL SUN*/ + 0, /* U+002f48: KANGXI RADICAL SAY*/ + 0, /* U+002f49: KANGXI RADICAL MOON*/ + 0, /* U+002f4a: KANGXI RADICAL TREE*/ + 0, /* U+002f4b: KANGXI RADICAL LACK*/ + 0, /* U+002f4c: KANGXI RADICAL STOP*/ + 0, /* U+002f4d: KANGXI RADICAL DEATH*/ + 0, /* U+002f4e: KANGXI RADICAL WEAPON*/ + 0, /* U+002f4f: KANGXI RADICAL DO NOT*/ + 0, /* U+002f50: KANGXI RADICAL COMPARE*/ + 0, /* U+002f51: KANGXI RADICAL FUR*/ + 0, /* U+002f52: KANGXI RADICAL CLAN*/ + 0, /* U+002f53: KANGXI RADICAL STEAM*/ + 0, /* U+002f54: KANGXI RADICAL WATER*/ + 0, /* U+002f55: KANGXI RADICAL FIRE*/ + 0, /* U+002f56: KANGXI RADICAL CLAW*/ + 0, /* U+002f57: KANGXI RADICAL FATHER*/ + 0, /* U+002f58: KANGXI RADICAL DOUBLE X*/ + 0, /* U+002f59: KANGXI RADICAL HALF TREE TRUNK*/ + 0, /* U+002f5a: KANGXI RADICAL SLICE*/ + 0, /* U+002f5b: KANGXI RADICAL FANG*/ + 0, /* U+002f5c: KANGXI RADICAL COW*/ + 0, /* U+002f5d: KANGXI RADICAL DOG*/ + 0, /* U+002f5e: KANGXI RADICAL PROFOUND*/ + 0, /* U+002f5f: KANGXI RADICAL JADE*/ + 0, /* U+002f60: KANGXI RADICAL MELON*/ + 0, /* U+002f61: KANGXI RADICAL TILE*/ + 0, /* U+002f62: KANGXI RADICAL SWEET*/ + 0, /* U+002f63: KANGXI RADICAL LIFE*/ + 0, /* U+002f64: KANGXI RADICAL USE*/ + 0, /* U+002f65: KANGXI RADICAL FIELD*/ + 0, /* U+002f66: KANGXI RADICAL BOLT OF CLOTH*/ + 0, /* U+002f67: KANGXI RADICAL SICKNESS*/ + 0, /* U+002f68: KANGXI RADICAL DOTTED TENT*/ + 0, /* U+002f69: KANGXI RADICAL WHITE*/ + 0, /* U+002f6a: KANGXI RADICAL SKIN*/ + 0, /* U+002f6b: KANGXI RADICAL DISH*/ + 0, /* U+002f6c: KANGXI RADICAL EYE*/ + 0, /* U+002f6d: KANGXI RADICAL SPEAR*/ + 0, /* U+002f6e: KANGXI RADICAL ARROW*/ + 0, /* U+002f6f: KANGXI RADICAL STONE*/ + 0, /* U+002f70: KANGXI RADICAL SPIRIT*/ + 0, /* U+002f71: KANGXI RADICAL TRACK*/ + 0, /* U+002f72: KANGXI RADICAL GRAIN*/ + 0, /* U+002f73: KANGXI RADICAL CAVE*/ + 0, /* U+002f74: KANGXI RADICAL STAND*/ + 0, /* U+002f75: KANGXI RADICAL BAMBOO*/ + 0, /* U+002f76: KANGXI RADICAL RICE*/ + 0, /* U+002f77: KANGXI RADICAL SILK*/ + 0, /* U+002f78: KANGXI RADICAL JAR*/ + 0, /* U+002f79: KANGXI RADICAL NET*/ + 0, /* U+002f7a: KANGXI RADICAL SHEEP*/ + 0, /* U+002f7b: KANGXI RADICAL FEATHER*/ + 0, /* U+002f7c: KANGXI RADICAL OLD*/ + 0, /* U+002f7d: KANGXI RADICAL AND*/ + 0, /* U+002f7e: KANGXI RADICAL PLOW*/ + 0, /* U+002f7f: KANGXI RADICAL EAR*/ + 0, /* U+002f80: KANGXI RADICAL BRUSH*/ + 0, /* U+002f81: KANGXI RADICAL MEAT*/ + 0, /* U+002f82: KANGXI RADICAL MINISTER*/ + 0, /* U+002f83: KANGXI RADICAL SELF*/ + 0, /* U+002f84: KANGXI RADICAL ARRIVE*/ + 0, /* U+002f85: KANGXI RADICAL MORTAR*/ + 0, /* U+002f86: KANGXI RADICAL TONGUE*/ + 0, /* U+002f87: KANGXI RADICAL OPPOSE*/ + 0, /* U+002f88: KANGXI RADICAL BOAT*/ + 0, /* U+002f89: KANGXI RADICAL STOPPING*/ + 0, /* U+002f8a: KANGXI RADICAL COLOR*/ + 0, /* U+002f8b: KANGXI RADICAL GRASS*/ + 0, /* U+002f8c: KANGXI RADICAL TIGER*/ + 0, /* U+002f8d: KANGXI RADICAL INSECT*/ + 0, /* U+002f8e: KANGXI RADICAL BLOOD*/ + 0, /* U+002f8f: KANGXI RADICAL WALK ENCLOSURE*/ + 0, /* U+002f90: KANGXI RADICAL CLOTHES*/ + 0, /* U+002f91: KANGXI RADICAL WEST*/ + 0, /* U+002f92: KANGXI RADICAL SEE*/ + 0, /* U+002f93: KANGXI RADICAL HORN*/ + 0, /* U+002f94: KANGXI RADICAL SPEECH*/ + 0, /* U+002f95: KANGXI RADICAL VALLEY*/ + 0, /* U+002f96: KANGXI RADICAL BEAN*/ + 0, /* U+002f97: KANGXI RADICAL PIG*/ + 0, /* U+002f98: KANGXI RADICAL BADGER*/ + 0, /* U+002f99: KANGXI RADICAL SHELL*/ + 0, /* U+002f9a: KANGXI RADICAL RED*/ + 0, /* U+002f9b: KANGXI RADICAL RUN*/ + 0, /* U+002f9c: KANGXI RADICAL FOOT*/ + 0, /* U+002f9d: KANGXI RADICAL BODY*/ + 0, /* U+002f9e: KANGXI RADICAL CART*/ + 0, /* U+002f9f: KANGXI RADICAL BITTER*/ + 0, /* U+002fa0: KANGXI RADICAL MORNING*/ + 0, /* U+002fa1: KANGXI RADICAL WALK*/ + 0, /* U+002fa2: KANGXI RADICAL CITY*/ + 0, /* U+002fa3: KANGXI RADICAL WINE*/ + 0, /* U+002fa4: KANGXI RADICAL DISTINGUISH*/ + 0, /* U+002fa5: KANGXI RADICAL VILLAGE*/ + 0, /* U+002fa6: KANGXI RADICAL GOLD*/ + 0, /* U+002fa7: KANGXI RADICAL LONG*/ + 0, /* U+002fa8: KANGXI RADICAL GATE*/ + 0, /* U+002fa9: KANGXI RADICAL MOUND*/ + 0, /* U+002faa: KANGXI RADICAL SLAVE*/ + 0, /* U+002fab: KANGXI RADICAL SHORT TAILED BIRD*/ + 0, /* U+002fac: KANGXI RADICAL RAIN*/ + 0, /* U+002fad: KANGXI RADICAL BLUE*/ + 0, /* U+002fae: KANGXI RADICAL WRONG*/ + 0, /* U+002faf: KANGXI RADICAL FACE*/ + 0, /* U+002fb0: KANGXI RADICAL LEATHER*/ + 0, /* U+002fb1: KANGXI RADICAL TANNED LEATHER*/ + 0, /* U+002fb2: KANGXI RADICAL LEEK*/ + 0, /* U+002fb3: KANGXI RADICAL SOUND*/ + 0, /* U+002fb4: KANGXI RADICAL LEAF*/ + 0, /* U+002fb5: KANGXI RADICAL WIND*/ + 0, /* U+002fb6: KANGXI RADICAL FLY*/ + 0, /* U+002fb7: KANGXI RADICAL EAT*/ + 0, /* U+002fb8: KANGXI RADICAL HEAD*/ + 0, /* U+002fb9: KANGXI RADICAL FRAGRANT*/ + 0, /* U+002fba: KANGXI RADICAL HORSE*/ + 0, /* U+002fbb: KANGXI RADICAL BONE*/ + 0, /* U+002fbc: KANGXI RADICAL TALL*/ + 0, /* U+002fbd: KANGXI RADICAL HAIR*/ + 0, /* U+002fbe: KANGXI RADICAL FIGHT*/ + 0, /* U+002fbf: KANGXI RADICAL SACRIFICIAL WINE*/ + 0, /* U+002fc0: KANGXI RADICAL CAULDRON*/ + 0, /* U+002fc1: KANGXI RADICAL GHOST*/ + 0, /* U+002fc2: KANGXI RADICAL FISH*/ + 0, /* U+002fc3: KANGXI RADICAL BIRD*/ + 0, /* U+002fc4: KANGXI RADICAL SALT*/ + 0, /* U+002fc5: KANGXI RADICAL DEER*/ + 0, /* U+002fc6: KANGXI RADICAL WHEAT*/ + 0, /* U+002fc7: KANGXI RADICAL HEMP*/ + 0, /* U+002fc8: KANGXI RADICAL YELLOW*/ + 0, /* U+002fc9: KANGXI RADICAL MILLET*/ + 0, /* U+002fca: KANGXI RADICAL BLACK*/ + 0, /* U+002fcb: KANGXI RADICAL EMBROIDERY*/ + 0, /* U+002fcc: KANGXI RADICAL FROG*/ + 0, /* U+002fcd: KANGXI RADICAL TRIPOD*/ + 0, /* U+002fce: KANGXI RADICAL DRUM*/ + 0, /* U+002fcf: KANGXI RADICAL RAT*/ + 0, /* U+002fd0: KANGXI RADICAL NOSE*/ + 0, /* U+002fd1: KANGXI RADICAL EVEN*/ + 0, /* U+002fd2: KANGXI RADICAL TOOTH*/ + 0, /* U+002fd3: KANGXI RADICAL DRAGON*/ + 0, /* U+002fd4: KANGXI RADICAL TURTLE*/ + 0, /* U+002fd5: KANGXI RADICAL FLUTE*/ + 0, /* U+002fd6: */ + 0, /* U+002fd7: */ + 0, /* U+002fd8: */ + 0, /* U+002fd9: */ + 0, /* U+002fda: */ + 0, /* U+002fdb: */ + 0, /* U+002fdc: */ + 0, /* U+002fdd: */ + 0, /* U+002fde: */ + 0, /* U+002fdf: */ + 0, /* U+002fe0: */ + 0, /* U+002fe1: */ + 0, /* U+002fe2: */ + 0, /* U+002fe3: */ + 0, /* U+002fe4: */ + 0, /* U+002fe5: */ + 0, /* U+002fe6: */ + 0, /* U+002fe7: */ + 0, /* U+002fe8: */ + 0, /* U+002fe9: */ + 0, /* U+002fea: */ + 0, /* U+002feb: */ + 0, /* U+002fec: */ + 0, /* U+002fed: */ + 0, /* U+002fee: */ + 0, /* U+002fef: */ + 0, /* U+002ff0: IDEOGRAPHIC DESCRIPTION CHARACTER LEFT TO RIGHT*/ + 0, /* U+002ff1: IDEOGRAPHIC DESCRIPTION CHARACTER ABOVE TO BELOW*/ + 0, /* U+002ff2: IDEOGRAPHIC DESCRIPTION CHARACTER LEFT TO MIDDLE AND RIGHT*/ + 0, /* U+002ff3: IDEOGRAPHIC DESCRIPTION CHARACTER ABOVE TO MIDDLE AND BELOW*/ + 0, /* U+002ff4: IDEOGRAPHIC DESCRIPTION CHARACTER FULL SURROUND*/ + 0, /* U+002ff5: IDEOGRAPHIC DESCRIPTION CHARACTER SURROUND FROM ABOVE*/ + 0, /* U+002ff6: IDEOGRAPHIC DESCRIPTION CHARACTER SURROUND FROM BELOW*/ + 0, /* U+002ff7: IDEOGRAPHIC DESCRIPTION CHARACTER SURROUND FROM LEFT*/ + 0, /* U+002ff8: IDEOGRAPHIC DESCRIPTION CHARACTER SURROUND FROM UPPER LEFT*/ + 0, /* U+002ff9: IDEOGRAPHIC DESCRIPTION CHARACTER SURROUND FROM UPPER RIGHT*/ + 0, /* U+002ffa: IDEOGRAPHIC DESCRIPTION CHARACTER SURROUND FROM LOWER LEFT*/ + 0, /* U+002ffb: IDEOGRAPHIC DESCRIPTION CHARACTER OVERLAID*/ + 0, /* U+002ffc: */ + 0, /* U+002ffd: */ + 0, /* U+002ffe: */ + 0, /* U+002fff: */ + RTUNI_WSPACE, /* U+003000: IDEOGRAPHIC SPACE*/ + 0, /* U+003001: IDEOGRAPHIC COMMA*/ + 0, /* U+003002: IDEOGRAPHIC FULL STOP*/ + 0, /* U+003003: DITTO MARK*/ + 0, /* U+003004: JAPANESE INDUSTRIAL STANDARD SYMBOL*/ + RTUNI_ALPHA, /* U+003005: IDEOGRAPHIC ITERATION MARK*/ + RTUNI_ALPHA, /* U+003006: IDEOGRAPHIC CLOSING MARK*/ + RTUNI_ALPHA, /* U+003007: IDEOGRAPHIC NUMBER ZERO*/ + 0, /* U+003008: LEFT ANGLE BRACKET*/ + 0, /* U+003009: RIGHT ANGLE BRACKET*/ + 0, /* U+00300a: LEFT DOUBLE ANGLE BRACKET*/ + 0, /* U+00300b: RIGHT DOUBLE ANGLE BRACKET*/ + 0, /* U+00300c: LEFT CORNER BRACKET*/ + 0, /* U+00300d: RIGHT CORNER BRACKET*/ + 0, /* U+00300e: LEFT WHITE CORNER BRACKET*/ + 0, /* U+00300f: RIGHT WHITE CORNER BRACKET*/ + 0, /* U+003010: LEFT BLACK LENTICULAR BRACKET*/ + 0, /* U+003011: RIGHT BLACK LENTICULAR BRACKET*/ + 0, /* U+003012: POSTAL MARK*/ + 0, /* U+003013: GETA MARK*/ + 0, /* U+003014: LEFT TORTOISE SHELL BRACKET*/ + 0, /* U+003015: RIGHT TORTOISE SHELL BRACKET*/ + 0, /* U+003016: LEFT WHITE LENTICULAR BRACKET*/ + 0, /* U+003017: RIGHT WHITE LENTICULAR BRACKET*/ + 0, /* U+003018: LEFT WHITE TORTOISE SHELL BRACKET*/ + 0, /* U+003019: RIGHT WHITE TORTOISE SHELL BRACKET*/ + 0, /* U+00301a: LEFT WHITE SQUARE BRACKET*/ + 0, /* U+00301b: RIGHT WHITE SQUARE BRACKET*/ + 0, /* U+00301c: WAVE DASH*/ + 0, /* U+00301d: REVERSED DOUBLE PRIME QUOTATION MARK*/ + 0, /* U+00301e: DOUBLE PRIME QUOTATION MARK*/ + 0, /* U+00301f: LOW DOUBLE PRIME QUOTATION MARK*/ + 0, /* U+003020: POSTAL MARK FACE*/ + RTUNI_ALPHA, /* U+003021: HANGZHOU NUMERAL ONE*/ + RTUNI_ALPHA, /* U+003022: HANGZHOU NUMERAL TWO*/ + RTUNI_ALPHA, /* U+003023: HANGZHOU NUMERAL THREE*/ + RTUNI_ALPHA, /* U+003024: HANGZHOU NUMERAL FOUR*/ + RTUNI_ALPHA, /* U+003025: HANGZHOU NUMERAL FIVE*/ + RTUNI_ALPHA, /* U+003026: HANGZHOU NUMERAL SIX*/ + RTUNI_ALPHA, /* U+003027: HANGZHOU NUMERAL SEVEN*/ + RTUNI_ALPHA, /* U+003028: HANGZHOU NUMERAL EIGHT*/ + RTUNI_ALPHA, /* U+003029: HANGZHOU NUMERAL NINE*/ + 0, /* U+00302a: IDEOGRAPHIC LEVEL TONE MARK*/ + 0, /* U+00302b: IDEOGRAPHIC RISING TONE MARK*/ + 0, /* U+00302c: IDEOGRAPHIC DEPARTING TONE MARK*/ + 0, /* U+00302d: IDEOGRAPHIC ENTERING TONE MARK*/ + 0, /* U+00302e: HANGUL SINGLE DOT TONE MARK*/ + 0, /* U+00302f: HANGUL DOUBLE DOT TONE MARK*/ + 0, /* U+003030: WAVY DASH*/ + RTUNI_ALPHA, /* U+003031: VERTICAL KANA REPEAT MARK*/ + RTUNI_ALPHA, /* U+003032: VERTICAL KANA REPEAT WITH VOICED SOUND MARK*/ + RTUNI_ALPHA, /* U+003033: VERTICAL KANA REPEAT MARK UPPER HALF*/ + RTUNI_ALPHA, /* U+003034: VERTICAL KANA REPEAT WITH VOICED SOUND MARK UPPER HALF*/ + RTUNI_ALPHA, /* U+003035: VERTICAL KANA REPEAT MARK LOWER HALF*/ + 0, /* U+003036: CIRCLED POSTAL MARK*/ + 0, /* U+003037: IDEOGRAPHIC TELEGRAPH LINE FEED SEPARATOR SYMBOL*/ + RTUNI_ALPHA, /* U+003038: HANGZHOU NUMERAL TEN*/ + RTUNI_ALPHA, /* U+003039: HANGZHOU NUMERAL TWENTY*/ + RTUNI_ALPHA, /* U+00303a: HANGZHOU NUMERAL THIRTY*/ + RTUNI_ALPHA, /* U+00303b: VERTICAL IDEOGRAPHIC ITERATION MARK*/ + RTUNI_ALPHA, /* U+00303c: MASU MARK*/ + 0, /* U+00303d: PART ALTERNATION MARK*/ + 0, /* U+00303e: IDEOGRAPHIC VARIATION INDICATOR*/ + 0, /* U+00303f: IDEOGRAPHIC HALF FILL SPACE*/ + 0, /* U+003040: */ + RTUNI_ALPHA, /* U+003041: HIRAGANA LETTER SMALL A*/ + RTUNI_ALPHA, /* U+003042: HIRAGANA LETTER A*/ + RTUNI_ALPHA, /* U+003043: HIRAGANA LETTER SMALL I*/ + RTUNI_ALPHA, /* U+003044: HIRAGANA LETTER I*/ + RTUNI_ALPHA, /* U+003045: HIRAGANA LETTER SMALL U*/ + RTUNI_ALPHA, /* U+003046: HIRAGANA LETTER U*/ + RTUNI_ALPHA, /* U+003047: HIRAGANA LETTER SMALL E*/ + RTUNI_ALPHA, /* U+003048: HIRAGANA LETTER E*/ + RTUNI_ALPHA, /* U+003049: HIRAGANA LETTER SMALL O*/ + RTUNI_ALPHA, /* U+00304a: HIRAGANA LETTER O*/ + RTUNI_ALPHA, /* U+00304b: HIRAGANA LETTER KA*/ + RTUNI_ALPHA, /* U+00304c: HIRAGANA LETTER GA*/ + RTUNI_ALPHA, /* U+00304d: HIRAGANA LETTER KI*/ + RTUNI_ALPHA, /* U+00304e: HIRAGANA LETTER GI*/ + RTUNI_ALPHA, /* U+00304f: HIRAGANA LETTER KU*/ + RTUNI_ALPHA, /* U+003050: HIRAGANA LETTER GU*/ + RTUNI_ALPHA, /* U+003051: HIRAGANA LETTER KE*/ + RTUNI_ALPHA, /* U+003052: HIRAGANA LETTER GE*/ + RTUNI_ALPHA, /* U+003053: HIRAGANA LETTER KO*/ + RTUNI_ALPHA, /* U+003054: HIRAGANA LETTER GO*/ + RTUNI_ALPHA, /* U+003055: HIRAGANA LETTER SA*/ + RTUNI_ALPHA, /* U+003056: HIRAGANA LETTER ZA*/ + RTUNI_ALPHA, /* U+003057: HIRAGANA LETTER SI*/ + RTUNI_ALPHA, /* U+003058: HIRAGANA LETTER ZI*/ + RTUNI_ALPHA, /* U+003059: HIRAGANA LETTER SU*/ + RTUNI_ALPHA, /* U+00305a: HIRAGANA LETTER ZU*/ + RTUNI_ALPHA, /* U+00305b: HIRAGANA LETTER SE*/ + RTUNI_ALPHA, /* U+00305c: HIRAGANA LETTER ZE*/ + RTUNI_ALPHA, /* U+00305d: HIRAGANA LETTER SO*/ + RTUNI_ALPHA, /* U+00305e: HIRAGANA LETTER ZO*/ + RTUNI_ALPHA, /* U+00305f: HIRAGANA LETTER TA*/ + RTUNI_ALPHA, /* U+003060: HIRAGANA LETTER DA*/ + RTUNI_ALPHA, /* U+003061: HIRAGANA LETTER TI*/ + RTUNI_ALPHA, /* U+003062: HIRAGANA LETTER DI*/ + RTUNI_ALPHA, /* U+003063: HIRAGANA LETTER SMALL TU*/ + RTUNI_ALPHA, /* U+003064: HIRAGANA LETTER TU*/ + RTUNI_ALPHA, /* U+003065: HIRAGANA LETTER DU*/ + RTUNI_ALPHA, /* U+003066: HIRAGANA LETTER TE*/ + RTUNI_ALPHA, /* U+003067: HIRAGANA LETTER DE*/ + RTUNI_ALPHA, /* U+003068: HIRAGANA LETTER TO*/ + RTUNI_ALPHA, /* U+003069: HIRAGANA LETTER DO*/ + RTUNI_ALPHA, /* U+00306a: HIRAGANA LETTER NA*/ + RTUNI_ALPHA, /* U+00306b: HIRAGANA LETTER NI*/ + RTUNI_ALPHA, /* U+00306c: HIRAGANA LETTER NU*/ + RTUNI_ALPHA, /* U+00306d: HIRAGANA LETTER NE*/ + RTUNI_ALPHA, /* U+00306e: HIRAGANA LETTER NO*/ + RTUNI_ALPHA, /* U+00306f: HIRAGANA LETTER HA*/ + RTUNI_ALPHA, /* U+003070: HIRAGANA LETTER BA*/ + RTUNI_ALPHA, /* U+003071: HIRAGANA LETTER PA*/ + RTUNI_ALPHA, /* U+003072: HIRAGANA LETTER HI*/ + RTUNI_ALPHA, /* U+003073: HIRAGANA LETTER BI*/ + RTUNI_ALPHA, /* U+003074: HIRAGANA LETTER PI*/ + RTUNI_ALPHA, /* U+003075: HIRAGANA LETTER HU*/ + RTUNI_ALPHA, /* U+003076: HIRAGANA LETTER BU*/ + RTUNI_ALPHA, /* U+003077: HIRAGANA LETTER PU*/ + RTUNI_ALPHA, /* U+003078: HIRAGANA LETTER HE*/ + RTUNI_ALPHA, /* U+003079: HIRAGANA LETTER BE*/ + RTUNI_ALPHA, /* U+00307a: HIRAGANA LETTER PE*/ + RTUNI_ALPHA, /* U+00307b: HIRAGANA LETTER HO*/ + RTUNI_ALPHA, /* U+00307c: HIRAGANA LETTER BO*/ + RTUNI_ALPHA, /* U+00307d: HIRAGANA LETTER PO*/ + RTUNI_ALPHA, /* U+00307e: HIRAGANA LETTER MA*/ + RTUNI_ALPHA, /* U+00307f: HIRAGANA LETTER MI*/ + RTUNI_ALPHA, /* U+003080: HIRAGANA LETTER MU*/ + RTUNI_ALPHA, /* U+003081: HIRAGANA LETTER ME*/ + RTUNI_ALPHA, /* U+003082: HIRAGANA LETTER MO*/ + RTUNI_ALPHA, /* U+003083: HIRAGANA LETTER SMALL YA*/ + RTUNI_ALPHA, /* U+003084: HIRAGANA LETTER YA*/ + RTUNI_ALPHA, /* U+003085: HIRAGANA LETTER SMALL YU*/ + RTUNI_ALPHA, /* U+003086: HIRAGANA LETTER YU*/ + RTUNI_ALPHA, /* U+003087: HIRAGANA LETTER SMALL YO*/ + RTUNI_ALPHA, /* U+003088: HIRAGANA LETTER YO*/ + RTUNI_ALPHA, /* U+003089: HIRAGANA LETTER RA*/ + RTUNI_ALPHA, /* U+00308a: HIRAGANA LETTER RI*/ + RTUNI_ALPHA, /* U+00308b: HIRAGANA LETTER RU*/ + RTUNI_ALPHA, /* U+00308c: HIRAGANA LETTER RE*/ + RTUNI_ALPHA, /* U+00308d: HIRAGANA LETTER RO*/ + RTUNI_ALPHA, /* U+00308e: HIRAGANA LETTER SMALL WA*/ + RTUNI_ALPHA, /* U+00308f: HIRAGANA LETTER WA*/ + RTUNI_ALPHA, /* U+003090: HIRAGANA LETTER WI*/ + RTUNI_ALPHA, /* U+003091: HIRAGANA LETTER WE*/ + RTUNI_ALPHA, /* U+003092: HIRAGANA LETTER WO*/ + RTUNI_ALPHA, /* U+003093: HIRAGANA LETTER N*/ + RTUNI_ALPHA, /* U+003094: HIRAGANA LETTER VU*/ + RTUNI_ALPHA, /* U+003095: HIRAGANA LETTER SMALL KA*/ + RTUNI_ALPHA, /* U+003096: HIRAGANA LETTER SMALL KE*/ + 0, /* U+003097: */ + 0, /* U+003098: */ + 0, /* U+003099: COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK*/ + 0, /* U+00309a: COMBINING KATAKANA-HIRAGANA SEMI-VOICED SOUND MARK*/ + 0, /* U+00309b: KATAKANA-HIRAGANA VOICED SOUND MARK*/ + 0, /* U+00309c: KATAKANA-HIRAGANA SEMI-VOICED SOUND MARK*/ + RTUNI_ALPHA, /* U+00309d: HIRAGANA ITERATION MARK*/ + RTUNI_ALPHA, /* U+00309e: HIRAGANA VOICED ITERATION MARK*/ + RTUNI_ALPHA, /* U+00309f: HIRAGANA DIGRAPH YORI*/ + 0, /* U+0030a0: KATAKANA-HIRAGANA DOUBLE HYPHEN*/ + RTUNI_ALPHA, /* U+0030a1: KATAKANA LETTER SMALL A*/ + RTUNI_ALPHA, /* U+0030a2: KATAKANA LETTER A*/ + RTUNI_ALPHA, /* U+0030a3: KATAKANA LETTER SMALL I*/ + RTUNI_ALPHA, /* U+0030a4: KATAKANA LETTER I*/ + RTUNI_ALPHA, /* U+0030a5: KATAKANA LETTER SMALL U*/ + RTUNI_ALPHA, /* U+0030a6: KATAKANA LETTER U*/ + RTUNI_ALPHA, /* U+0030a7: KATAKANA LETTER SMALL E*/ + RTUNI_ALPHA, /* U+0030a8: KATAKANA LETTER E*/ + RTUNI_ALPHA, /* U+0030a9: KATAKANA LETTER SMALL O*/ + RTUNI_ALPHA, /* U+0030aa: KATAKANA LETTER O*/ + RTUNI_ALPHA, /* U+0030ab: KATAKANA LETTER KA*/ + RTUNI_ALPHA, /* U+0030ac: KATAKANA LETTER GA*/ + RTUNI_ALPHA, /* U+0030ad: KATAKANA LETTER KI*/ + RTUNI_ALPHA, /* U+0030ae: KATAKANA LETTER GI*/ + RTUNI_ALPHA, /* U+0030af: KATAKANA LETTER KU*/ + RTUNI_ALPHA, /* U+0030b0: KATAKANA LETTER GU*/ + RTUNI_ALPHA, /* U+0030b1: KATAKANA LETTER KE*/ + RTUNI_ALPHA, /* U+0030b2: KATAKANA LETTER GE*/ + RTUNI_ALPHA, /* U+0030b3: KATAKANA LETTER KO*/ + RTUNI_ALPHA, /* U+0030b4: KATAKANA LETTER GO*/ + RTUNI_ALPHA, /* U+0030b5: KATAKANA LETTER SA*/ + RTUNI_ALPHA, /* U+0030b6: KATAKANA LETTER ZA*/ + RTUNI_ALPHA, /* U+0030b7: KATAKANA LETTER SI*/ + RTUNI_ALPHA, /* U+0030b8: KATAKANA LETTER ZI*/ + RTUNI_ALPHA, /* U+0030b9: KATAKANA LETTER SU*/ + RTUNI_ALPHA, /* U+0030ba: KATAKANA LETTER ZU*/ + RTUNI_ALPHA, /* U+0030bb: KATAKANA LETTER SE*/ + RTUNI_ALPHA, /* U+0030bc: KATAKANA LETTER ZE*/ + RTUNI_ALPHA, /* U+0030bd: KATAKANA LETTER SO*/ + RTUNI_ALPHA, /* U+0030be: KATAKANA LETTER ZO*/ + RTUNI_ALPHA, /* U+0030bf: KATAKANA LETTER TA*/ + RTUNI_ALPHA, /* U+0030c0: KATAKANA LETTER DA*/ + RTUNI_ALPHA, /* U+0030c1: KATAKANA LETTER TI*/ + RTUNI_ALPHA, /* U+0030c2: KATAKANA LETTER DI*/ + RTUNI_ALPHA, /* U+0030c3: KATAKANA LETTER SMALL TU*/ + RTUNI_ALPHA, /* U+0030c4: KATAKANA LETTER TU*/ + RTUNI_ALPHA, /* U+0030c5: KATAKANA LETTER DU*/ + RTUNI_ALPHA, /* U+0030c6: KATAKANA LETTER TE*/ + RTUNI_ALPHA, /* U+0030c7: KATAKANA LETTER DE*/ + RTUNI_ALPHA, /* U+0030c8: KATAKANA LETTER TO*/ + RTUNI_ALPHA, /* U+0030c9: KATAKANA LETTER DO*/ + RTUNI_ALPHA, /* U+0030ca: KATAKANA LETTER NA*/ + RTUNI_ALPHA, /* U+0030cb: KATAKANA LETTER NI*/ + RTUNI_ALPHA, /* U+0030cc: KATAKANA LETTER NU*/ + RTUNI_ALPHA, /* U+0030cd: KATAKANA LETTER NE*/ + RTUNI_ALPHA, /* U+0030ce: KATAKANA LETTER NO*/ + RTUNI_ALPHA, /* U+0030cf: KATAKANA LETTER HA*/ + RTUNI_ALPHA, /* U+0030d0: KATAKANA LETTER BA*/ + RTUNI_ALPHA, /* U+0030d1: KATAKANA LETTER PA*/ + RTUNI_ALPHA, /* U+0030d2: KATAKANA LETTER HI*/ + RTUNI_ALPHA, /* U+0030d3: KATAKANA LETTER BI*/ + RTUNI_ALPHA, /* U+0030d4: KATAKANA LETTER PI*/ + RTUNI_ALPHA, /* U+0030d5: KATAKANA LETTER HU*/ + RTUNI_ALPHA, /* U+0030d6: KATAKANA LETTER BU*/ + RTUNI_ALPHA, /* U+0030d7: KATAKANA LETTER PU*/ + RTUNI_ALPHA, /* U+0030d8: KATAKANA LETTER HE*/ + RTUNI_ALPHA, /* U+0030d9: KATAKANA LETTER BE*/ + RTUNI_ALPHA, /* U+0030da: KATAKANA LETTER PE*/ + RTUNI_ALPHA, /* U+0030db: KATAKANA LETTER HO*/ + RTUNI_ALPHA, /* U+0030dc: KATAKANA LETTER BO*/ + RTUNI_ALPHA, /* U+0030dd: KATAKANA LETTER PO*/ + RTUNI_ALPHA, /* U+0030de: KATAKANA LETTER MA*/ + RTUNI_ALPHA, /* U+0030df: KATAKANA LETTER MI*/ + RTUNI_ALPHA, /* U+0030e0: KATAKANA LETTER MU*/ + RTUNI_ALPHA, /* U+0030e1: KATAKANA LETTER ME*/ + RTUNI_ALPHA, /* U+0030e2: KATAKANA LETTER MO*/ + RTUNI_ALPHA, /* U+0030e3: KATAKANA LETTER SMALL YA*/ + RTUNI_ALPHA, /* U+0030e4: KATAKANA LETTER YA*/ + RTUNI_ALPHA, /* U+0030e5: KATAKANA LETTER SMALL YU*/ + RTUNI_ALPHA, /* U+0030e6: KATAKANA LETTER YU*/ + RTUNI_ALPHA, /* U+0030e7: KATAKANA LETTER SMALL YO*/ + RTUNI_ALPHA, /* U+0030e8: KATAKANA LETTER YO*/ + RTUNI_ALPHA, /* U+0030e9: KATAKANA LETTER RA*/ + RTUNI_ALPHA, /* U+0030ea: KATAKANA LETTER RI*/ + RTUNI_ALPHA, /* U+0030eb: KATAKANA LETTER RU*/ + RTUNI_ALPHA, /* U+0030ec: KATAKANA LETTER RE*/ + RTUNI_ALPHA, /* U+0030ed: KATAKANA LETTER RO*/ + RTUNI_ALPHA, /* U+0030ee: KATAKANA LETTER SMALL WA*/ + RTUNI_ALPHA, /* U+0030ef: KATAKANA LETTER WA*/ + RTUNI_ALPHA, /* U+0030f0: KATAKANA LETTER WI*/ + RTUNI_ALPHA, /* U+0030f1: KATAKANA LETTER WE*/ + RTUNI_ALPHA, /* U+0030f2: KATAKANA LETTER WO*/ + RTUNI_ALPHA, /* U+0030f3: KATAKANA LETTER N*/ + RTUNI_ALPHA, /* U+0030f4: KATAKANA LETTER VU*/ + RTUNI_ALPHA, /* U+0030f5: KATAKANA LETTER SMALL KA*/ + RTUNI_ALPHA, /* U+0030f6: KATAKANA LETTER SMALL KE*/ + RTUNI_ALPHA, /* U+0030f7: KATAKANA LETTER VA*/ + RTUNI_ALPHA, /* U+0030f8: KATAKANA LETTER VI*/ + RTUNI_ALPHA, /* U+0030f9: KATAKANA LETTER VE*/ + RTUNI_ALPHA, /* U+0030fa: KATAKANA LETTER VO*/ + 0, /* U+0030fb: KATAKANA MIDDLE DOT*/ + RTUNI_ALPHA, /* U+0030fc: KATAKANA-HIRAGANA PROLONGED SOUND MARK*/ + RTUNI_ALPHA, /* U+0030fd: KATAKANA ITERATION MARK*/ + RTUNI_ALPHA, /* U+0030fe: KATAKANA VOICED ITERATION MARK*/ + RTUNI_ALPHA, /* U+0030ff: KATAKANA DIGRAPH KOTO*/ + 0, /* U+003100: */ + 0, /* U+003101: */ + 0, /* U+003102: */ + 0, /* U+003103: */ + 0, /* U+003104: */ + RTUNI_ALPHA, /* U+003105: BOPOMOFO LETTER B*/ + RTUNI_ALPHA, /* U+003106: BOPOMOFO LETTER P*/ + RTUNI_ALPHA, /* U+003107: BOPOMOFO LETTER M*/ + RTUNI_ALPHA, /* U+003108: BOPOMOFO LETTER F*/ + RTUNI_ALPHA, /* U+003109: BOPOMOFO LETTER D*/ + RTUNI_ALPHA, /* U+00310a: BOPOMOFO LETTER T*/ + RTUNI_ALPHA, /* U+00310b: BOPOMOFO LETTER N*/ + RTUNI_ALPHA, /* U+00310c: BOPOMOFO LETTER L*/ + RTUNI_ALPHA, /* U+00310d: BOPOMOFO LETTER G*/ + RTUNI_ALPHA, /* U+00310e: BOPOMOFO LETTER K*/ + RTUNI_ALPHA, /* U+00310f: BOPOMOFO LETTER H*/ + RTUNI_ALPHA, /* U+003110: BOPOMOFO LETTER J*/ + RTUNI_ALPHA, /* U+003111: BOPOMOFO LETTER Q*/ + RTUNI_ALPHA, /* U+003112: BOPOMOFO LETTER X*/ + RTUNI_ALPHA, /* U+003113: BOPOMOFO LETTER ZH*/ + RTUNI_ALPHA, /* U+003114: BOPOMOFO LETTER CH*/ + RTUNI_ALPHA, /* U+003115: BOPOMOFO LETTER SH*/ + RTUNI_ALPHA, /* U+003116: BOPOMOFO LETTER R*/ + RTUNI_ALPHA, /* U+003117: BOPOMOFO LETTER Z*/ + RTUNI_ALPHA, /* U+003118: BOPOMOFO LETTER C*/ + RTUNI_ALPHA, /* U+003119: BOPOMOFO LETTER S*/ + RTUNI_ALPHA, /* U+00311a: BOPOMOFO LETTER A*/ + RTUNI_ALPHA, /* U+00311b: BOPOMOFO LETTER O*/ + RTUNI_ALPHA, /* U+00311c: BOPOMOFO LETTER E*/ + RTUNI_ALPHA, /* U+00311d: BOPOMOFO LETTER EH*/ + RTUNI_ALPHA, /* U+00311e: BOPOMOFO LETTER AI*/ + RTUNI_ALPHA, /* U+00311f: BOPOMOFO LETTER EI*/ + RTUNI_ALPHA, /* U+003120: BOPOMOFO LETTER AU*/ + RTUNI_ALPHA, /* U+003121: BOPOMOFO LETTER OU*/ + RTUNI_ALPHA, /* U+003122: BOPOMOFO LETTER AN*/ + RTUNI_ALPHA, /* U+003123: BOPOMOFO LETTER EN*/ + RTUNI_ALPHA, /* U+003124: BOPOMOFO LETTER ANG*/ + RTUNI_ALPHA, /* U+003125: BOPOMOFO LETTER ENG*/ + RTUNI_ALPHA, /* U+003126: BOPOMOFO LETTER ER*/ + RTUNI_ALPHA, /* U+003127: BOPOMOFO LETTER I*/ + RTUNI_ALPHA, /* U+003128: BOPOMOFO LETTER U*/ + RTUNI_ALPHA, /* U+003129: BOPOMOFO LETTER IU*/ + RTUNI_ALPHA, /* U+00312a: BOPOMOFO LETTER V*/ + RTUNI_ALPHA, /* U+00312b: BOPOMOFO LETTER NG*/ + RTUNI_ALPHA, /* U+00312c: BOPOMOFO LETTER GN*/ + RTUNI_ALPHA, /* U+00312d: BOPOMOFO LETTER IH*/ + 0, /* U+00312e: */ + 0, /* U+00312f: */ + 0, /* U+003130: */ + RTUNI_ALPHA, /* U+003131: HANGUL LETTER KIYEOK*/ + RTUNI_ALPHA, /* U+003132: HANGUL LETTER SSANGKIYEOK*/ + RTUNI_ALPHA, /* U+003133: HANGUL LETTER KIYEOK-SIOS*/ + RTUNI_ALPHA, /* U+003134: HANGUL LETTER NIEUN*/ + RTUNI_ALPHA, /* U+003135: HANGUL LETTER NIEUN-CIEUC*/ + RTUNI_ALPHA, /* U+003136: HANGUL LETTER NIEUN-HIEUH*/ + RTUNI_ALPHA, /* U+003137: HANGUL LETTER TIKEUT*/ + RTUNI_ALPHA, /* U+003138: HANGUL LETTER SSANGTIKEUT*/ + RTUNI_ALPHA, /* U+003139: HANGUL LETTER RIEUL*/ + RTUNI_ALPHA, /* U+00313a: HANGUL LETTER RIEUL-KIYEOK*/ + RTUNI_ALPHA, /* U+00313b: HANGUL LETTER RIEUL-MIEUM*/ + RTUNI_ALPHA, /* U+00313c: HANGUL LETTER RIEUL-PIEUP*/ + RTUNI_ALPHA, /* U+00313d: HANGUL LETTER RIEUL-SIOS*/ + RTUNI_ALPHA, /* U+00313e: HANGUL LETTER RIEUL-THIEUTH*/ + RTUNI_ALPHA, /* U+00313f: HANGUL LETTER RIEUL-PHIEUPH*/ + RTUNI_ALPHA, /* U+003140: HANGUL LETTER RIEUL-HIEUH*/ + RTUNI_ALPHA, /* U+003141: HANGUL LETTER MIEUM*/ + RTUNI_ALPHA, /* U+003142: HANGUL LETTER PIEUP*/ + RTUNI_ALPHA, /* U+003143: HANGUL LETTER SSANGPIEUP*/ + RTUNI_ALPHA, /* U+003144: HANGUL LETTER PIEUP-SIOS*/ + RTUNI_ALPHA, /* U+003145: HANGUL LETTER SIOS*/ + RTUNI_ALPHA, /* U+003146: HANGUL LETTER SSANGSIOS*/ + RTUNI_ALPHA, /* U+003147: HANGUL LETTER IEUNG*/ + RTUNI_ALPHA, /* U+003148: HANGUL LETTER CIEUC*/ + RTUNI_ALPHA, /* U+003149: HANGUL LETTER SSANGCIEUC*/ + RTUNI_ALPHA, /* U+00314a: HANGUL LETTER CHIEUCH*/ + RTUNI_ALPHA, /* U+00314b: HANGUL LETTER KHIEUKH*/ + RTUNI_ALPHA, /* U+00314c: HANGUL LETTER THIEUTH*/ + RTUNI_ALPHA, /* U+00314d: HANGUL LETTER PHIEUPH*/ + RTUNI_ALPHA, /* U+00314e: HANGUL LETTER HIEUH*/ + RTUNI_ALPHA, /* U+00314f: HANGUL LETTER A*/ + RTUNI_ALPHA, /* U+003150: HANGUL LETTER AE*/ + RTUNI_ALPHA, /* U+003151: HANGUL LETTER YA*/ + RTUNI_ALPHA, /* U+003152: HANGUL LETTER YAE*/ + RTUNI_ALPHA, /* U+003153: HANGUL LETTER EO*/ + RTUNI_ALPHA, /* U+003154: HANGUL LETTER E*/ + RTUNI_ALPHA, /* U+003155: HANGUL LETTER YEO*/ + RTUNI_ALPHA, /* U+003156: HANGUL LETTER YE*/ + RTUNI_ALPHA, /* U+003157: HANGUL LETTER O*/ + RTUNI_ALPHA, /* U+003158: HANGUL LETTER WA*/ + RTUNI_ALPHA, /* U+003159: HANGUL LETTER WAE*/ + RTUNI_ALPHA, /* U+00315a: HANGUL LETTER OE*/ + RTUNI_ALPHA, /* U+00315b: HANGUL LETTER YO*/ + RTUNI_ALPHA, /* U+00315c: HANGUL LETTER U*/ + RTUNI_ALPHA, /* U+00315d: HANGUL LETTER WEO*/ + RTUNI_ALPHA, /* U+00315e: HANGUL LETTER WE*/ + RTUNI_ALPHA, /* U+00315f: HANGUL LETTER WI*/ + RTUNI_ALPHA, /* U+003160: HANGUL LETTER YU*/ + RTUNI_ALPHA, /* U+003161: HANGUL LETTER EU*/ + RTUNI_ALPHA, /* U+003162: HANGUL LETTER YI*/ + RTUNI_ALPHA, /* U+003163: HANGUL LETTER I*/ + RTUNI_ALPHA, /* U+003164: HANGUL FILLER*/ + RTUNI_ALPHA, /* U+003165: HANGUL LETTER SSANGNIEUN*/ + RTUNI_ALPHA, /* U+003166: HANGUL LETTER NIEUN-TIKEUT*/ + RTUNI_ALPHA, /* U+003167: HANGUL LETTER NIEUN-SIOS*/ + RTUNI_ALPHA, /* U+003168: HANGUL LETTER NIEUN-PANSIOS*/ + RTUNI_ALPHA, /* U+003169: HANGUL LETTER RIEUL-KIYEOK-SIOS*/ + RTUNI_ALPHA, /* U+00316a: HANGUL LETTER RIEUL-TIKEUT*/ + RTUNI_ALPHA, /* U+00316b: HANGUL LETTER RIEUL-PIEUP-SIOS*/ + RTUNI_ALPHA, /* U+00316c: HANGUL LETTER RIEUL-PANSIOS*/ + RTUNI_ALPHA, /* U+00316d: HANGUL LETTER RIEUL-YEORINHIEUH*/ + RTUNI_ALPHA, /* U+00316e: HANGUL LETTER MIEUM-PIEUP*/ + RTUNI_ALPHA, /* U+00316f: HANGUL LETTER MIEUM-SIOS*/ + RTUNI_ALPHA, /* U+003170: HANGUL LETTER MIEUM-PANSIOS*/ + RTUNI_ALPHA, /* U+003171: HANGUL LETTER KAPYEOUNMIEUM*/ + RTUNI_ALPHA, /* U+003172: HANGUL LETTER PIEUP-KIYEOK*/ + RTUNI_ALPHA, /* U+003173: HANGUL LETTER PIEUP-TIKEUT*/ + RTUNI_ALPHA, /* U+003174: HANGUL LETTER PIEUP-SIOS-KIYEOK*/ + RTUNI_ALPHA, /* U+003175: HANGUL LETTER PIEUP-SIOS-TIKEUT*/ + RTUNI_ALPHA, /* U+003176: HANGUL LETTER PIEUP-CIEUC*/ + RTUNI_ALPHA, /* U+003177: HANGUL LETTER PIEUP-THIEUTH*/ + RTUNI_ALPHA, /* U+003178: HANGUL LETTER KAPYEOUNPIEUP*/ + RTUNI_ALPHA, /* U+003179: HANGUL LETTER KAPYEOUNSSANGPIEUP*/ + RTUNI_ALPHA, /* U+00317a: HANGUL LETTER SIOS-KIYEOK*/ + RTUNI_ALPHA, /* U+00317b: HANGUL LETTER SIOS-NIEUN*/ + RTUNI_ALPHA, /* U+00317c: HANGUL LETTER SIOS-TIKEUT*/ + RTUNI_ALPHA, /* U+00317d: HANGUL LETTER SIOS-PIEUP*/ + RTUNI_ALPHA, /* U+00317e: HANGUL LETTER SIOS-CIEUC*/ + RTUNI_ALPHA, /* U+00317f: HANGUL LETTER PANSIOS*/ + RTUNI_ALPHA, /* U+003180: HANGUL LETTER SSANGIEUNG*/ + RTUNI_ALPHA, /* U+003181: HANGUL LETTER YESIEUNG*/ + RTUNI_ALPHA, /* U+003182: HANGUL LETTER YESIEUNG-SIOS*/ + RTUNI_ALPHA, /* U+003183: HANGUL LETTER YESIEUNG-PANSIOS*/ + RTUNI_ALPHA, /* U+003184: HANGUL LETTER KAPYEOUNPHIEUPH*/ + RTUNI_ALPHA, /* U+003185: HANGUL LETTER SSANGHIEUH*/ + RTUNI_ALPHA, /* U+003186: HANGUL LETTER YEORINHIEUH*/ + RTUNI_ALPHA, /* U+003187: HANGUL LETTER YO-YA*/ + RTUNI_ALPHA, /* U+003188: HANGUL LETTER YO-YAE*/ + RTUNI_ALPHA, /* U+003189: HANGUL LETTER YO-I*/ + RTUNI_ALPHA, /* U+00318a: HANGUL LETTER YU-YEO*/ + RTUNI_ALPHA, /* U+00318b: HANGUL LETTER YU-YE*/ + RTUNI_ALPHA, /* U+00318c: HANGUL LETTER YU-I*/ + RTUNI_ALPHA, /* U+00318d: HANGUL LETTER ARAEA*/ + RTUNI_ALPHA, /* U+00318e: HANGUL LETTER ARAEAE*/ + 0, /* U+00318f: */ + 0, /* U+003190: IDEOGRAPHIC ANNOTATION LINKING MARK*/ + 0, /* U+003191: IDEOGRAPHIC ANNOTATION REVERSE MARK*/ + 0, /* U+003192: IDEOGRAPHIC ANNOTATION ONE MARK*/ + 0, /* U+003193: IDEOGRAPHIC ANNOTATION TWO MARK*/ + 0, /* U+003194: IDEOGRAPHIC ANNOTATION THREE MARK*/ + 0, /* U+003195: IDEOGRAPHIC ANNOTATION FOUR MARK*/ + 0, /* U+003196: IDEOGRAPHIC ANNOTATION TOP MARK*/ + 0, /* U+003197: IDEOGRAPHIC ANNOTATION MIDDLE MARK*/ + 0, /* U+003198: IDEOGRAPHIC ANNOTATION BOTTOM MARK*/ + 0, /* U+003199: IDEOGRAPHIC ANNOTATION FIRST MARK*/ + 0, /* U+00319a: IDEOGRAPHIC ANNOTATION SECOND MARK*/ + 0, /* U+00319b: IDEOGRAPHIC ANNOTATION THIRD MARK*/ + 0, /* U+00319c: IDEOGRAPHIC ANNOTATION FOURTH MARK*/ + 0, /* U+00319d: IDEOGRAPHIC ANNOTATION HEAVEN MARK*/ + 0, /* U+00319e: IDEOGRAPHIC ANNOTATION EARTH MARK*/ + 0, /* U+00319f: IDEOGRAPHIC ANNOTATION MAN MARK*/ + RTUNI_ALPHA, /* U+0031a0: BOPOMOFO LETTER BU*/ + RTUNI_ALPHA, /* U+0031a1: BOPOMOFO LETTER ZI*/ + RTUNI_ALPHA, /* U+0031a2: BOPOMOFO LETTER JI*/ + RTUNI_ALPHA, /* U+0031a3: BOPOMOFO LETTER GU*/ + RTUNI_ALPHA, /* U+0031a4: BOPOMOFO LETTER EE*/ + RTUNI_ALPHA, /* U+0031a5: BOPOMOFO LETTER ENN*/ + RTUNI_ALPHA, /* U+0031a6: BOPOMOFO LETTER OO*/ + RTUNI_ALPHA, /* U+0031a7: BOPOMOFO LETTER ONN*/ + RTUNI_ALPHA, /* U+0031a8: BOPOMOFO LETTER IR*/ + RTUNI_ALPHA, /* U+0031a9: BOPOMOFO LETTER ANN*/ + RTUNI_ALPHA, /* U+0031aa: BOPOMOFO LETTER INN*/ + RTUNI_ALPHA, /* U+0031ab: BOPOMOFO LETTER UNN*/ + RTUNI_ALPHA, /* U+0031ac: BOPOMOFO LETTER IM*/ + RTUNI_ALPHA, /* U+0031ad: BOPOMOFO LETTER NGG*/ + RTUNI_ALPHA, /* U+0031ae: BOPOMOFO LETTER AINN*/ + RTUNI_ALPHA, /* U+0031af: BOPOMOFO LETTER AUNN*/ + RTUNI_ALPHA, /* U+0031b0: BOPOMOFO LETTER AM*/ + RTUNI_ALPHA, /* U+0031b1: BOPOMOFO LETTER OM*/ + RTUNI_ALPHA, /* U+0031b2: BOPOMOFO LETTER ONG*/ + RTUNI_ALPHA, /* U+0031b3: BOPOMOFO LETTER INNN*/ + RTUNI_ALPHA, /* U+0031b4: BOPOMOFO FINAL LETTER P*/ + RTUNI_ALPHA, /* U+0031b5: BOPOMOFO FINAL LETTER T*/ + RTUNI_ALPHA, /* U+0031b6: BOPOMOFO FINAL LETTER K*/ + RTUNI_ALPHA, /* U+0031b7: BOPOMOFO FINAL LETTER H*/ + RTUNI_ALPHA, /* U+0031b8: BOPOMOFO LETTER GH*/ + RTUNI_ALPHA, /* U+0031b9: BOPOMOFO LETTER LH*/ + RTUNI_ALPHA, /* U+0031ba: BOPOMOFO LETTER ZY*/ + 0, /* U+0031bb: */ + 0, /* U+0031bc: */ + 0, /* U+0031bd: */ + 0, /* U+0031be: */ + 0, /* U+0031bf: */ + 0, /* U+0031c0: CJK STROKE T*/ + 0, /* U+0031c1: CJK STROKE WG*/ + 0, /* U+0031c2: CJK STROKE XG*/ + 0, /* U+0031c3: CJK STROKE BXG*/ + 0, /* U+0031c4: CJK STROKE SW*/ + 0, /* U+0031c5: CJK STROKE HZZ*/ + 0, /* U+0031c6: CJK STROKE HZG*/ + 0, /* U+0031c7: CJK STROKE HP*/ + 0, /* U+0031c8: CJK STROKE HZWG*/ + 0, /* U+0031c9: CJK STROKE SZWG*/ + 0, /* U+0031ca: CJK STROKE HZT*/ + 0, /* U+0031cb: CJK STROKE HZZP*/ + 0, /* U+0031cc: CJK STROKE HPWG*/ + 0, /* U+0031cd: CJK STROKE HZW*/ + 0, /* U+0031ce: CJK STROKE HZZZ*/ + 0, /* U+0031cf: CJK STROKE N*/ + 0, /* U+0031d0: CJK STROKE H*/ + 0, /* U+0031d1: CJK STROKE S*/ + 0, /* U+0031d2: CJK STROKE P*/ + 0, /* U+0031d3: CJK STROKE SP*/ + 0, /* U+0031d4: CJK STROKE D*/ + 0, /* U+0031d5: CJK STROKE HZ*/ + 0, /* U+0031d6: CJK STROKE HG*/ + 0, /* U+0031d7: CJK STROKE SZ*/ + 0, /* U+0031d8: CJK STROKE SWZ*/ + 0, /* U+0031d9: CJK STROKE ST*/ + 0, /* U+0031da: CJK STROKE SG*/ + 0, /* U+0031db: CJK STROKE PD*/ + 0, /* U+0031dc: CJK STROKE PZ*/ + 0, /* U+0031dd: CJK STROKE TN*/ + 0, /* U+0031de: CJK STROKE SZZ*/ + 0, /* U+0031df: CJK STROKE SWG*/ + 0, /* U+0031e0: CJK STROKE HXWG*/ + 0, /* U+0031e1: CJK STROKE HZZZG*/ + 0, /* U+0031e2: CJK STROKE PG*/ + 0, /* U+0031e3: CJK STROKE Q*/ + 0, /* U+0031e4: */ + 0, /* U+0031e5: */ + 0, /* U+0031e6: */ + 0, /* U+0031e7: */ + 0, /* U+0031e8: */ + 0, /* U+0031e9: */ + 0, /* U+0031ea: */ + 0, /* U+0031eb: */ + 0, /* U+0031ec: */ + 0, /* U+0031ed: */ + 0, /* U+0031ee: */ + 0, /* U+0031ef: */ + RTUNI_ALPHA, /* U+0031f0: KATAKANA LETTER SMALL KU*/ + RTUNI_ALPHA, /* U+0031f1: KATAKANA LETTER SMALL SI*/ + RTUNI_ALPHA, /* U+0031f2: KATAKANA LETTER SMALL SU*/ + RTUNI_ALPHA, /* U+0031f3: KATAKANA LETTER SMALL TO*/ + RTUNI_ALPHA, /* U+0031f4: KATAKANA LETTER SMALL NU*/ + RTUNI_ALPHA, /* U+0031f5: KATAKANA LETTER SMALL HA*/ + RTUNI_ALPHA, /* U+0031f6: KATAKANA LETTER SMALL HI*/ + RTUNI_ALPHA, /* U+0031f7: KATAKANA LETTER SMALL HU*/ + RTUNI_ALPHA, /* U+0031f8: KATAKANA LETTER SMALL HE*/ + RTUNI_ALPHA, /* U+0031f9: KATAKANA LETTER SMALL HO*/ + RTUNI_ALPHA, /* U+0031fa: KATAKANA LETTER SMALL MU*/ + RTUNI_ALPHA, /* U+0031fb: KATAKANA LETTER SMALL RA*/ + RTUNI_ALPHA, /* U+0031fc: KATAKANA LETTER SMALL RI*/ + RTUNI_ALPHA, /* U+0031fd: KATAKANA LETTER SMALL RU*/ + RTUNI_ALPHA, /* U+0031fe: KATAKANA LETTER SMALL RE*/ + RTUNI_ALPHA, /* U+0031ff: KATAKANA LETTER SMALL RO*/ + 0, /* U+003200: PARENTHESIZED HANGUL KIYEOK*/ + 0, /* U+003201: PARENTHESIZED HANGUL NIEUN*/ + 0, /* U+003202: PARENTHESIZED HANGUL TIKEUT*/ + 0, /* U+003203: PARENTHESIZED HANGUL RIEUL*/ + 0, /* U+003204: PARENTHESIZED HANGUL MIEUM*/ + 0, /* U+003205: PARENTHESIZED HANGUL PIEUP*/ + 0, /* U+003206: PARENTHESIZED HANGUL SIOS*/ + 0, /* U+003207: PARENTHESIZED HANGUL IEUNG*/ + 0, /* U+003208: PARENTHESIZED HANGUL CIEUC*/ + 0, /* U+003209: PARENTHESIZED HANGUL CHIEUCH*/ + 0, /* U+00320a: PARENTHESIZED HANGUL KHIEUKH*/ + 0, /* U+00320b: PARENTHESIZED HANGUL THIEUTH*/ + 0, /* U+00320c: PARENTHESIZED HANGUL PHIEUPH*/ + 0, /* U+00320d: PARENTHESIZED HANGUL HIEUH*/ + 0, /* U+00320e: PARENTHESIZED HANGUL KIYEOK A*/ + 0, /* U+00320f: PARENTHESIZED HANGUL NIEUN A*/ + 0, /* U+003210: PARENTHESIZED HANGUL TIKEUT A*/ + 0, /* U+003211: PARENTHESIZED HANGUL RIEUL A*/ + 0, /* U+003212: PARENTHESIZED HANGUL MIEUM A*/ + 0, /* U+003213: PARENTHESIZED HANGUL PIEUP A*/ + 0, /* U+003214: PARENTHESIZED HANGUL SIOS A*/ + 0, /* U+003215: PARENTHESIZED HANGUL IEUNG A*/ + 0, /* U+003216: PARENTHESIZED HANGUL CIEUC A*/ + 0, /* U+003217: PARENTHESIZED HANGUL CHIEUCH A*/ + 0, /* U+003218: PARENTHESIZED HANGUL KHIEUKH A*/ + 0, /* U+003219: PARENTHESIZED HANGUL THIEUTH A*/ + 0, /* U+00321a: PARENTHESIZED HANGUL PHIEUPH A*/ + 0, /* U+00321b: PARENTHESIZED HANGUL HIEUH A*/ + 0, /* U+00321c: PARENTHESIZED HANGUL CIEUC U*/ + 0, /* U+00321d: PARENTHESIZED KOREAN CHARACTER OJEON*/ + 0, /* U+00321e: PARENTHESIZED KOREAN CHARACTER O HU*/ + 0, /* U+00321f: */ + 0, /* U+003220: PARENTHESIZED IDEOGRAPH ONE*/ + 0, /* U+003221: PARENTHESIZED IDEOGRAPH TWO*/ + 0, /* U+003222: PARENTHESIZED IDEOGRAPH THREE*/ + 0, /* U+003223: PARENTHESIZED IDEOGRAPH FOUR*/ + 0, /* U+003224: PARENTHESIZED IDEOGRAPH FIVE*/ + 0, /* U+003225: PARENTHESIZED IDEOGRAPH SIX*/ + 0, /* U+003226: PARENTHESIZED IDEOGRAPH SEVEN*/ + 0, /* U+003227: PARENTHESIZED IDEOGRAPH EIGHT*/ + 0, /* U+003228: PARENTHESIZED IDEOGRAPH NINE*/ + 0, /* U+003229: PARENTHESIZED IDEOGRAPH TEN*/ + 0, /* U+00322a: PARENTHESIZED IDEOGRAPH MOON*/ + 0, /* U+00322b: PARENTHESIZED IDEOGRAPH FIRE*/ + 0, /* U+00322c: PARENTHESIZED IDEOGRAPH WATER*/ + 0, /* U+00322d: PARENTHESIZED IDEOGRAPH WOOD*/ + 0, /* U+00322e: PARENTHESIZED IDEOGRAPH METAL*/ + 0, /* U+00322f: PARENTHESIZED IDEOGRAPH EARTH*/ + 0, /* U+003230: PARENTHESIZED IDEOGRAPH SUN*/ + 0, /* U+003231: PARENTHESIZED IDEOGRAPH STOCK*/ + 0, /* U+003232: PARENTHESIZED IDEOGRAPH HAVE*/ + 0, /* U+003233: PARENTHESIZED IDEOGRAPH SOCIETY*/ + 0, /* U+003234: PARENTHESIZED IDEOGRAPH NAME*/ + 0, /* U+003235: PARENTHESIZED IDEOGRAPH SPECIAL*/ + 0, /* U+003236: PARENTHESIZED IDEOGRAPH FINANCIAL*/ + 0, /* U+003237: PARENTHESIZED IDEOGRAPH CONGRATULATION*/ + 0, /* U+003238: PARENTHESIZED IDEOGRAPH LABOR*/ + 0, /* U+003239: PARENTHESIZED IDEOGRAPH REPRESENT*/ + 0, /* U+00323a: PARENTHESIZED IDEOGRAPH CALL*/ + 0, /* U+00323b: PARENTHESIZED IDEOGRAPH STUDY*/ + 0, /* U+00323c: PARENTHESIZED IDEOGRAPH SUPERVISE*/ + 0, /* U+00323d: PARENTHESIZED IDEOGRAPH ENTERPRISE*/ + 0, /* U+00323e: PARENTHESIZED IDEOGRAPH RESOURCE*/ + 0, /* U+00323f: PARENTHESIZED IDEOGRAPH ALLIANCE*/ + 0, /* U+003240: PARENTHESIZED IDEOGRAPH FESTIVAL*/ + 0, /* U+003241: PARENTHESIZED IDEOGRAPH REST*/ + 0, /* U+003242: PARENTHESIZED IDEOGRAPH SELF*/ + 0, /* U+003243: PARENTHESIZED IDEOGRAPH REACH*/ + 0, /* U+003244: CIRCLED IDEOGRAPH QUESTION*/ + 0, /* U+003245: CIRCLED IDEOGRAPH KINDERGARTEN*/ + 0, /* U+003246: CIRCLED IDEOGRAPH SCHOOL*/ + 0, /* U+003247: CIRCLED IDEOGRAPH KOTO*/ + 0, /* U+003248: CIRCLED NUMBER TEN ON BLACK SQUARE*/ + 0, /* U+003249: CIRCLED NUMBER TWENTY ON BLACK SQUARE*/ + 0, /* U+00324a: CIRCLED NUMBER THIRTY ON BLACK SQUARE*/ + 0, /* U+00324b: CIRCLED NUMBER FORTY ON BLACK SQUARE*/ + 0, /* U+00324c: CIRCLED NUMBER FIFTY ON BLACK SQUARE*/ + 0, /* U+00324d: CIRCLED NUMBER SIXTY ON BLACK SQUARE*/ + 0, /* U+00324e: CIRCLED NUMBER SEVENTY ON BLACK SQUARE*/ + 0, /* U+00324f: CIRCLED NUMBER EIGHTY ON BLACK SQUARE*/ + 0, /* U+003250: PARTNERSHIP SIGN*/ + 0, /* U+003251: CIRCLED NUMBER TWENTY ONE*/ + 0, /* U+003252: CIRCLED NUMBER TWENTY TWO*/ + 0, /* U+003253: CIRCLED NUMBER TWENTY THREE*/ + 0, /* U+003254: CIRCLED NUMBER TWENTY FOUR*/ + 0, /* U+003255: CIRCLED NUMBER TWENTY FIVE*/ + 0, /* U+003256: CIRCLED NUMBER TWENTY SIX*/ + 0, /* U+003257: CIRCLED NUMBER TWENTY SEVEN*/ + 0, /* U+003258: CIRCLED NUMBER TWENTY EIGHT*/ + 0, /* U+003259: CIRCLED NUMBER TWENTY NINE*/ + 0, /* U+00325a: CIRCLED NUMBER THIRTY*/ + 0, /* U+00325b: CIRCLED NUMBER THIRTY ONE*/ + 0, /* U+00325c: CIRCLED NUMBER THIRTY TWO*/ + 0, /* U+00325d: CIRCLED NUMBER THIRTY THREE*/ + 0, /* U+00325e: CIRCLED NUMBER THIRTY FOUR*/ + 0, /* U+00325f: CIRCLED NUMBER THIRTY FIVE*/ + 0, /* U+003260: CIRCLED HANGUL KIYEOK*/ + 0, /* U+003261: CIRCLED HANGUL NIEUN*/ + 0, /* U+003262: CIRCLED HANGUL TIKEUT*/ + 0, /* U+003263: CIRCLED HANGUL RIEUL*/ + 0, /* U+003264: CIRCLED HANGUL MIEUM*/ + 0, /* U+003265: CIRCLED HANGUL PIEUP*/ + 0, /* U+003266: CIRCLED HANGUL SIOS*/ + 0, /* U+003267: CIRCLED HANGUL IEUNG*/ + 0, /* U+003268: CIRCLED HANGUL CIEUC*/ + 0, /* U+003269: CIRCLED HANGUL CHIEUCH*/ + 0, /* U+00326a: CIRCLED HANGUL KHIEUKH*/ + 0, /* U+00326b: CIRCLED HANGUL THIEUTH*/ + 0, /* U+00326c: CIRCLED HANGUL PHIEUPH*/ + 0, /* U+00326d: CIRCLED HANGUL HIEUH*/ + 0, /* U+00326e: CIRCLED HANGUL KIYEOK A*/ + 0, /* U+00326f: CIRCLED HANGUL NIEUN A*/ + 0, /* U+003270: CIRCLED HANGUL TIKEUT A*/ + 0, /* U+003271: CIRCLED HANGUL RIEUL A*/ + 0, /* U+003272: CIRCLED HANGUL MIEUM A*/ + 0, /* U+003273: CIRCLED HANGUL PIEUP A*/ + 0, /* U+003274: CIRCLED HANGUL SIOS A*/ + 0, /* U+003275: CIRCLED HANGUL IEUNG A*/ + 0, /* U+003276: CIRCLED HANGUL CIEUC A*/ + 0, /* U+003277: CIRCLED HANGUL CHIEUCH A*/ + 0, /* U+003278: CIRCLED HANGUL KHIEUKH A*/ + 0, /* U+003279: CIRCLED HANGUL THIEUTH A*/ + 0, /* U+00327a: CIRCLED HANGUL PHIEUPH A*/ + 0, /* U+00327b: CIRCLED HANGUL HIEUH A*/ + 0, /* U+00327c: CIRCLED KOREAN CHARACTER CHAMKO*/ + 0, /* U+00327d: CIRCLED KOREAN CHARACTER JUEUI*/ + 0, /* U+00327e: CIRCLED HANGUL IEUNG U*/ + 0, /* U+00327f: KOREAN STANDARD SYMBOL*/ + 0, /* U+003280: CIRCLED IDEOGRAPH ONE*/ + 0, /* U+003281: CIRCLED IDEOGRAPH TWO*/ + 0, /* U+003282: CIRCLED IDEOGRAPH THREE*/ + 0, /* U+003283: CIRCLED IDEOGRAPH FOUR*/ + 0, /* U+003284: CIRCLED IDEOGRAPH FIVE*/ + 0, /* U+003285: CIRCLED IDEOGRAPH SIX*/ + 0, /* U+003286: CIRCLED IDEOGRAPH SEVEN*/ + 0, /* U+003287: CIRCLED IDEOGRAPH EIGHT*/ + 0, /* U+003288: CIRCLED IDEOGRAPH NINE*/ + 0, /* U+003289: CIRCLED IDEOGRAPH TEN*/ + 0, /* U+00328a: CIRCLED IDEOGRAPH MOON*/ + 0, /* U+00328b: CIRCLED IDEOGRAPH FIRE*/ + 0, /* U+00328c: CIRCLED IDEOGRAPH WATER*/ + 0, /* U+00328d: CIRCLED IDEOGRAPH WOOD*/ + 0, /* U+00328e: CIRCLED IDEOGRAPH METAL*/ + 0, /* U+00328f: CIRCLED IDEOGRAPH EARTH*/ + 0, /* U+003290: CIRCLED IDEOGRAPH SUN*/ + 0, /* U+003291: CIRCLED IDEOGRAPH STOCK*/ + 0, /* U+003292: CIRCLED IDEOGRAPH HAVE*/ + 0, /* U+003293: CIRCLED IDEOGRAPH SOCIETY*/ + 0, /* U+003294: CIRCLED IDEOGRAPH NAME*/ + 0, /* U+003295: CIRCLED IDEOGRAPH SPECIAL*/ + 0, /* U+003296: CIRCLED IDEOGRAPH FINANCIAL*/ + 0, /* U+003297: CIRCLED IDEOGRAPH CONGRATULATION*/ + 0, /* U+003298: CIRCLED IDEOGRAPH LABOR*/ + 0, /* U+003299: CIRCLED IDEOGRAPH SECRET*/ + 0, /* U+00329a: CIRCLED IDEOGRAPH MALE*/ + 0, /* U+00329b: CIRCLED IDEOGRAPH FEMALE*/ + 0, /* U+00329c: CIRCLED IDEOGRAPH SUITABLE*/ + 0, /* U+00329d: CIRCLED IDEOGRAPH EXCELLENT*/ + 0, /* U+00329e: CIRCLED IDEOGRAPH PRINT*/ + 0, /* U+00329f: CIRCLED IDEOGRAPH ATTENTION*/ + 0, /* U+0032a0: CIRCLED IDEOGRAPH ITEM*/ + 0, /* U+0032a1: CIRCLED IDEOGRAPH REST*/ + 0, /* U+0032a2: CIRCLED IDEOGRAPH COPY*/ + 0, /* U+0032a3: CIRCLED IDEOGRAPH CORRECT*/ + 0, /* U+0032a4: CIRCLED IDEOGRAPH HIGH*/ + 0, /* U+0032a5: CIRCLED IDEOGRAPH CENTRE*/ + 0, /* U+0032a6: CIRCLED IDEOGRAPH LOW*/ + 0, /* U+0032a7: CIRCLED IDEOGRAPH LEFT*/ + 0, /* U+0032a8: CIRCLED IDEOGRAPH RIGHT*/ + 0, /* U+0032a9: CIRCLED IDEOGRAPH MEDICINE*/ + 0, /* U+0032aa: CIRCLED IDEOGRAPH RELIGION*/ + 0, /* U+0032ab: CIRCLED IDEOGRAPH STUDY*/ + 0, /* U+0032ac: CIRCLED IDEOGRAPH SUPERVISE*/ + 0, /* U+0032ad: CIRCLED IDEOGRAPH ENTERPRISE*/ + 0, /* U+0032ae: CIRCLED IDEOGRAPH RESOURCE*/ + 0, /* U+0032af: CIRCLED IDEOGRAPH ALLIANCE*/ + 0, /* U+0032b0: CIRCLED IDEOGRAPH NIGHT*/ + 0, /* U+0032b1: CIRCLED NUMBER THIRTY SIX*/ + 0, /* U+0032b2: CIRCLED NUMBER THIRTY SEVEN*/ + 0, /* U+0032b3: CIRCLED NUMBER THIRTY EIGHT*/ + 0, /* U+0032b4: CIRCLED NUMBER THIRTY NINE*/ + 0, /* U+0032b5: CIRCLED NUMBER FORTY*/ + 0, /* U+0032b6: CIRCLED NUMBER FORTY ONE*/ + 0, /* U+0032b7: CIRCLED NUMBER FORTY TWO*/ + 0, /* U+0032b8: CIRCLED NUMBER FORTY THREE*/ + 0, /* U+0032b9: CIRCLED NUMBER FORTY FOUR*/ + 0, /* U+0032ba: CIRCLED NUMBER FORTY FIVE*/ + 0, /* U+0032bb: CIRCLED NUMBER FORTY SIX*/ + 0, /* U+0032bc: CIRCLED NUMBER FORTY SEVEN*/ + 0, /* U+0032bd: CIRCLED NUMBER FORTY EIGHT*/ + 0, /* U+0032be: CIRCLED NUMBER FORTY NINE*/ + 0, /* U+0032bf: CIRCLED NUMBER FIFTY*/ + 0, /* U+0032c0: IDEOGRAPHIC TELEGRAPH SYMBOL FOR JANUARY*/ + 0, /* U+0032c1: IDEOGRAPHIC TELEGRAPH SYMBOL FOR FEBRUARY*/ + 0, /* U+0032c2: IDEOGRAPHIC TELEGRAPH SYMBOL FOR MARCH*/ + 0, /* U+0032c3: IDEOGRAPHIC TELEGRAPH SYMBOL FOR APRIL*/ + 0, /* U+0032c4: IDEOGRAPHIC TELEGRAPH SYMBOL FOR MAY*/ + 0, /* U+0032c5: IDEOGRAPHIC TELEGRAPH SYMBOL FOR JUNE*/ + 0, /* U+0032c6: IDEOGRAPHIC TELEGRAPH SYMBOL FOR JULY*/ + 0, /* U+0032c7: IDEOGRAPHIC TELEGRAPH SYMBOL FOR AUGUST*/ + 0, /* U+0032c8: IDEOGRAPHIC TELEGRAPH SYMBOL FOR SEPTEMBER*/ + 0, /* U+0032c9: IDEOGRAPHIC TELEGRAPH SYMBOL FOR OCTOBER*/ + 0, /* U+0032ca: IDEOGRAPHIC TELEGRAPH SYMBOL FOR NOVEMBER*/ + 0, /* U+0032cb: IDEOGRAPHIC TELEGRAPH SYMBOL FOR DECEMBER*/ + 0, /* U+0032cc: SQUARE HG*/ + 0, /* U+0032cd: SQUARE ERG*/ + 0, /* U+0032ce: SQUARE EV*/ + 0, /* U+0032cf: LIMITED LIABILITY SIGN*/ + 0, /* U+0032d0: CIRCLED KATAKANA A*/ + 0, /* U+0032d1: CIRCLED KATAKANA I*/ + 0, /* U+0032d2: CIRCLED KATAKANA U*/ + 0, /* U+0032d3: CIRCLED KATAKANA E*/ + 0, /* U+0032d4: CIRCLED KATAKANA O*/ + 0, /* U+0032d5: CIRCLED KATAKANA KA*/ + 0, /* U+0032d6: CIRCLED KATAKANA KI*/ + 0, /* U+0032d7: CIRCLED KATAKANA KU*/ + 0, /* U+0032d8: CIRCLED KATAKANA KE*/ + 0, /* U+0032d9: CIRCLED KATAKANA KO*/ + 0, /* U+0032da: CIRCLED KATAKANA SA*/ + 0, /* U+0032db: CIRCLED KATAKANA SI*/ + 0, /* U+0032dc: CIRCLED KATAKANA SU*/ + 0, /* U+0032dd: CIRCLED KATAKANA SE*/ + 0, /* U+0032de: CIRCLED KATAKANA SO*/ + 0, /* U+0032df: CIRCLED KATAKANA TA*/ + 0, /* U+0032e0: CIRCLED KATAKANA TI*/ + 0, /* U+0032e1: CIRCLED KATAKANA TU*/ + 0, /* U+0032e2: CIRCLED KATAKANA TE*/ + 0, /* U+0032e3: CIRCLED KATAKANA TO*/ + 0, /* U+0032e4: CIRCLED KATAKANA NA*/ + 0, /* U+0032e5: CIRCLED KATAKANA NI*/ + 0, /* U+0032e6: CIRCLED KATAKANA NU*/ + 0, /* U+0032e7: CIRCLED KATAKANA NE*/ + 0, /* U+0032e8: CIRCLED KATAKANA NO*/ + 0, /* U+0032e9: CIRCLED KATAKANA HA*/ + 0, /* U+0032ea: CIRCLED KATAKANA HI*/ + 0, /* U+0032eb: CIRCLED KATAKANA HU*/ + 0, /* U+0032ec: CIRCLED KATAKANA HE*/ + 0, /* U+0032ed: CIRCLED KATAKANA HO*/ + 0, /* U+0032ee: CIRCLED KATAKANA MA*/ + 0, /* U+0032ef: CIRCLED KATAKANA MI*/ + 0, /* U+0032f0: CIRCLED KATAKANA MU*/ + 0, /* U+0032f1: CIRCLED KATAKANA ME*/ + 0, /* U+0032f2: CIRCLED KATAKANA MO*/ + 0, /* U+0032f3: CIRCLED KATAKANA YA*/ + 0, /* U+0032f4: CIRCLED KATAKANA YU*/ + 0, /* U+0032f5: CIRCLED KATAKANA YO*/ + 0, /* U+0032f6: CIRCLED KATAKANA RA*/ + 0, /* U+0032f7: CIRCLED KATAKANA RI*/ + 0, /* U+0032f8: CIRCLED KATAKANA RU*/ + 0, /* U+0032f9: CIRCLED KATAKANA RE*/ + 0, /* U+0032fa: CIRCLED KATAKANA RO*/ + 0, /* U+0032fb: CIRCLED KATAKANA WA*/ + 0, /* U+0032fc: CIRCLED KATAKANA WI*/ + 0, /* U+0032fd: CIRCLED KATAKANA WE*/ + 0, /* U+0032fe: CIRCLED KATAKANA WO*/ + 0, /* U+0032ff: */ + 0, /* U+003300: SQUARE APAATO*/ + 0, /* U+003301: SQUARE ARUHUA*/ + 0, /* U+003302: SQUARE ANPEA*/ + 0, /* U+003303: SQUARE AARU*/ + 0, /* U+003304: SQUARE ININGU*/ + 0, /* U+003305: SQUARE INTI*/ + 0, /* U+003306: SQUARE UON*/ + 0, /* U+003307: SQUARE ESUKUUDO*/ + 0, /* U+003308: SQUARE EEKAA*/ + 0, /* U+003309: SQUARE ONSU*/ + 0, /* U+00330a: SQUARE OOMU*/ + 0, /* U+00330b: SQUARE KAIRI*/ + 0, /* U+00330c: SQUARE KARATTO*/ + 0, /* U+00330d: SQUARE KARORII*/ + 0, /* U+00330e: SQUARE GARON*/ + 0, /* U+00330f: SQUARE GANMA*/ + 0, /* U+003310: SQUARE GIGA*/ + 0, /* U+003311: SQUARE GINII*/ + 0, /* U+003312: SQUARE KYURII*/ + 0, /* U+003313: SQUARE GIRUDAA*/ + 0, /* U+003314: SQUARE KIRO*/ + 0, /* U+003315: SQUARE KIROGURAMU*/ + 0, /* U+003316: SQUARE KIROMEETORU*/ + 0, /* U+003317: SQUARE KIROWATTO*/ + 0, /* U+003318: SQUARE GURAMU*/ + 0, /* U+003319: SQUARE GURAMUTON*/ + 0, /* U+00331a: SQUARE KURUZEIRO*/ + 0, /* U+00331b: SQUARE KUROONE*/ + 0, /* U+00331c: SQUARE KEESU*/ + 0, /* U+00331d: SQUARE KORUNA*/ + 0, /* U+00331e: SQUARE KOOPO*/ + 0, /* U+00331f: SQUARE SAIKURU*/ + 0, /* U+003320: SQUARE SANTIIMU*/ + 0, /* U+003321: SQUARE SIRINGU*/ + 0, /* U+003322: SQUARE SENTI*/ + 0, /* U+003323: SQUARE SENTO*/ + 0, /* U+003324: SQUARE DAASU*/ + 0, /* U+003325: SQUARE DESI*/ + 0, /* U+003326: SQUARE DORU*/ + 0, /* U+003327: SQUARE TON*/ + 0, /* U+003328: SQUARE NANO*/ + 0, /* U+003329: SQUARE NOTTO*/ + 0, /* U+00332a: SQUARE HAITU*/ + 0, /* U+00332b: SQUARE PAASENTO*/ + 0, /* U+00332c: SQUARE PAATU*/ + 0, /* U+00332d: SQUARE BAARERU*/ + 0, /* U+00332e: SQUARE PIASUTORU*/ + 0, /* U+00332f: SQUARE PIKURU*/ + 0, /* U+003330: SQUARE PIKO*/ + 0, /* U+003331: SQUARE BIRU*/ + 0, /* U+003332: SQUARE HUARADDO*/ + 0, /* U+003333: SQUARE HUIITO*/ + 0, /* U+003334: SQUARE BUSSYERU*/ + 0, /* U+003335: SQUARE HURAN*/ + 0, /* U+003336: SQUARE HEKUTAARU*/ + 0, /* U+003337: SQUARE PESO*/ + 0, /* U+003338: SQUARE PENIHI*/ + 0, /* U+003339: SQUARE HERUTU*/ + 0, /* U+00333a: SQUARE PENSU*/ + 0, /* U+00333b: SQUARE PEEZI*/ + 0, /* U+00333c: SQUARE BEETA*/ + 0, /* U+00333d: SQUARE POINTO*/ + 0, /* U+00333e: SQUARE BORUTO*/ + 0, /* U+00333f: SQUARE HON*/ + 0, /* U+003340: SQUARE PONDO*/ + 0, /* U+003341: SQUARE HOORU*/ + 0, /* U+003342: SQUARE HOON*/ + 0, /* U+003343: SQUARE MAIKURO*/ + 0, /* U+003344: SQUARE MAIRU*/ + 0, /* U+003345: SQUARE MAHHA*/ + 0, /* U+003346: SQUARE MARUKU*/ + 0, /* U+003347: SQUARE MANSYON*/ + 0, /* U+003348: SQUARE MIKURON*/ + 0, /* U+003349: SQUARE MIRI*/ + 0, /* U+00334a: SQUARE MIRIBAARU*/ + 0, /* U+00334b: SQUARE MEGA*/ + 0, /* U+00334c: SQUARE MEGATON*/ + 0, /* U+00334d: SQUARE MEETORU*/ + 0, /* U+00334e: SQUARE YAADO*/ + 0, /* U+00334f: SQUARE YAARU*/ + 0, /* U+003350: SQUARE YUAN*/ + 0, /* U+003351: SQUARE RITTORU*/ + 0, /* U+003352: SQUARE RIRA*/ + 0, /* U+003353: SQUARE RUPII*/ + 0, /* U+003354: SQUARE RUUBURU*/ + 0, /* U+003355: SQUARE REMU*/ + 0, /* U+003356: SQUARE RENTOGEN*/ + 0, /* U+003357: SQUARE WATTO*/ + 0, /* U+003358: IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR ZERO*/ + 0, /* U+003359: IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR ONE*/ + 0, /* U+00335a: IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR TWO*/ + 0, /* U+00335b: IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR THREE*/ + 0, /* U+00335c: IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR FOUR*/ + 0, /* U+00335d: IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR FIVE*/ + 0, /* U+00335e: IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR SIX*/ + 0, /* U+00335f: IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR SEVEN*/ + 0, /* U+003360: IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR EIGHT*/ + 0, /* U+003361: IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR NINE*/ + 0, /* U+003362: IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR TEN*/ + 0, /* U+003363: IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR ELEVEN*/ + 0, /* U+003364: IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR TWELVE*/ + 0, /* U+003365: IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR THIRTEEN*/ + 0, /* U+003366: IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR FOURTEEN*/ + 0, /* U+003367: IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR FIFTEEN*/ + 0, /* U+003368: IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR SIXTEEN*/ + 0, /* U+003369: IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR SEVENTEEN*/ + 0, /* U+00336a: IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR EIGHTEEN*/ + 0, /* U+00336b: IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR NINETEEN*/ + 0, /* U+00336c: IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR TWENTY*/ + 0, /* U+00336d: IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR TWENTY-ONE*/ + 0, /* U+00336e: IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR TWENTY-TWO*/ + 0, /* U+00336f: IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR TWENTY-THREE*/ + 0, /* U+003370: IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR TWENTY-FOUR*/ + 0, /* U+003371: SQUARE HPA*/ + 0, /* U+003372: SQUARE DA*/ + 0, /* U+003373: SQUARE AU*/ + 0, /* U+003374: SQUARE BAR*/ + 0, /* U+003375: SQUARE OV*/ + 0, /* U+003376: SQUARE PC*/ + 0, /* U+003377: SQUARE DM*/ + 0, /* U+003378: SQUARE DM SQUARED*/ + 0, /* U+003379: SQUARE DM CUBED*/ + 0, /* U+00337a: SQUARE IU*/ + 0, /* U+00337b: SQUARE ERA NAME HEISEI*/ + 0, /* U+00337c: SQUARE ERA NAME SYOUWA*/ + 0, /* U+00337d: SQUARE ERA NAME TAISYOU*/ + 0, /* U+00337e: SQUARE ERA NAME MEIZI*/ + 0, /* U+00337f: SQUARE CORPORATION*/ + 0, /* U+003380: SQUARE PA AMPS*/ + 0, /* U+003381: SQUARE NA*/ + 0, /* U+003382: SQUARE MU A*/ + 0, /* U+003383: SQUARE MA*/ + 0, /* U+003384: SQUARE KA*/ + 0, /* U+003385: SQUARE KB*/ + 0, /* U+003386: SQUARE MB*/ + 0, /* U+003387: SQUARE GB*/ + 0, /* U+003388: SQUARE CAL*/ + 0, /* U+003389: SQUARE KCAL*/ + 0, /* U+00338a: SQUARE PF*/ + 0, /* U+00338b: SQUARE NF*/ + 0, /* U+00338c: SQUARE MU F*/ + 0, /* U+00338d: SQUARE MU G*/ + 0, /* U+00338e: SQUARE MG*/ + 0, /* U+00338f: SQUARE KG*/ + 0, /* U+003390: SQUARE HZ*/ + 0, /* U+003391: SQUARE KHZ*/ + 0, /* U+003392: SQUARE MHZ*/ + 0, /* U+003393: SQUARE GHZ*/ + 0, /* U+003394: SQUARE THZ*/ + 0, /* U+003395: SQUARE MU L*/ + 0, /* U+003396: SQUARE ML*/ + 0, /* U+003397: SQUARE DL*/ + 0, /* U+003398: SQUARE KL*/ + 0, /* U+003399: SQUARE FM*/ + 0, /* U+00339a: SQUARE NM*/ + 0, /* U+00339b: SQUARE MU M*/ + 0, /* U+00339c: SQUARE MM*/ + 0, /* U+00339d: SQUARE CM*/ + 0, /* U+00339e: SQUARE KM*/ + 0, /* U+00339f: SQUARE MM SQUARED*/ + 0, /* U+0033a0: SQUARE CM SQUARED*/ + 0, /* U+0033a1: SQUARE M SQUARED*/ + 0, /* U+0033a2: SQUARE KM SQUARED*/ + 0, /* U+0033a3: SQUARE MM CUBED*/ + 0, /* U+0033a4: SQUARE CM CUBED*/ + 0, /* U+0033a5: SQUARE M CUBED*/ + 0, /* U+0033a6: SQUARE KM CUBED*/ + 0, /* U+0033a7: SQUARE M OVER S*/ + 0, /* U+0033a8: SQUARE M OVER S SQUARED*/ + 0, /* U+0033a9: SQUARE PA*/ + 0, /* U+0033aa: SQUARE KPA*/ + 0, /* U+0033ab: SQUARE MPA*/ + 0, /* U+0033ac: SQUARE GPA*/ + 0, /* U+0033ad: SQUARE RAD*/ + 0, /* U+0033ae: SQUARE RAD OVER S*/ + 0, /* U+0033af: SQUARE RAD OVER S SQUARED*/ + 0, /* U+0033b0: SQUARE PS*/ + 0, /* U+0033b1: SQUARE NS*/ + 0, /* U+0033b2: SQUARE MU S*/ + 0, /* U+0033b3: SQUARE MS*/ + 0, /* U+0033b4: SQUARE PV*/ + 0, /* U+0033b5: SQUARE NV*/ + 0, /* U+0033b6: SQUARE MU V*/ + 0, /* U+0033b7: SQUARE MV*/ + 0, /* U+0033b8: SQUARE KV*/ + 0, /* U+0033b9: SQUARE MV MEGA*/ + 0, /* U+0033ba: SQUARE PW*/ + 0, /* U+0033bb: SQUARE NW*/ + 0, /* U+0033bc: SQUARE MU W*/ + 0, /* U+0033bd: SQUARE MW*/ + 0, /* U+0033be: SQUARE KW*/ + 0, /* U+0033bf: SQUARE MW MEGA*/ + 0, /* U+0033c0: SQUARE K OHM*/ + 0, /* U+0033c1: SQUARE M OHM*/ + 0, /* U+0033c2: SQUARE AM*/ + 0, /* U+0033c3: SQUARE BQ*/ + 0, /* U+0033c4: SQUARE CC*/ + 0, /* U+0033c5: SQUARE CD*/ + 0, /* U+0033c6: SQUARE C OVER KG*/ + 0, /* U+0033c7: SQUARE CO*/ + 0, /* U+0033c8: SQUARE DB*/ + 0, /* U+0033c9: SQUARE GY*/ + 0, /* U+0033ca: SQUARE HA*/ + 0, /* U+0033cb: SQUARE HP*/ + 0, /* U+0033cc: SQUARE IN*/ + 0, /* U+0033cd: SQUARE KK*/ + 0, /* U+0033ce: SQUARE KM CAPITAL*/ + 0, /* U+0033cf: SQUARE KT*/ + 0, /* U+0033d0: SQUARE LM*/ + 0, /* U+0033d1: SQUARE LN*/ + 0, /* U+0033d2: SQUARE LOG*/ + 0, /* U+0033d3: SQUARE LX*/ + 0, /* U+0033d4: SQUARE MB SMALL*/ + 0, /* U+0033d5: SQUARE MIL*/ + 0, /* U+0033d6: SQUARE MOL*/ + 0, /* U+0033d7: SQUARE PH*/ + 0, /* U+0033d8: SQUARE PM*/ + 0, /* U+0033d9: SQUARE PPM*/ + 0, /* U+0033da: SQUARE PR*/ + 0, /* U+0033db: SQUARE SR*/ + 0, /* U+0033dc: SQUARE SV*/ + 0, /* U+0033dd: SQUARE WB*/ + 0, /* U+0033de: SQUARE V OVER M*/ + 0, /* U+0033df: SQUARE A OVER M*/ + 0, /* U+0033e0: IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY ONE*/ + 0, /* U+0033e1: IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWO*/ + 0, /* U+0033e2: IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY THREE*/ + 0, /* U+0033e3: IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY FOUR*/ + 0, /* U+0033e4: IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY FIVE*/ + 0, /* U+0033e5: IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY SIX*/ + 0, /* U+0033e6: IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY SEVEN*/ + 0, /* U+0033e7: IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY EIGHT*/ + 0, /* U+0033e8: IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY NINE*/ + 0, /* U+0033e9: IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TEN*/ + 0, /* U+0033ea: IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY ELEVEN*/ + 0, /* U+0033eb: IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWELVE*/ + 0, /* U+0033ec: IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY THIRTEEN*/ + 0, /* U+0033ed: IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY FOURTEEN*/ + 0, /* U+0033ee: IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY FIFTEEN*/ + 0, /* U+0033ef: IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY SIXTEEN*/ + 0, /* U+0033f0: IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY SEVENTEEN*/ + 0, /* U+0033f1: IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY EIGHTEEN*/ + 0, /* U+0033f2: IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY NINETEEN*/ + 0, /* U+0033f3: IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY*/ + 0, /* U+0033f4: IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-ONE*/ + 0, /* U+0033f5: IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-TWO*/ + 0, /* U+0033f6: IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-THREE*/ + 0, /* U+0033f7: IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-FOUR*/ + 0, /* U+0033f8: IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-FIVE*/ + 0, /* U+0033f9: IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-SIX*/ + 0, /* U+0033fa: IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-SEVEN*/ + 0, /* U+0033fb: IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-EIGHT*/ + 0, /* U+0033fc: IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-NINE*/ + 0, /* U+0033fd: IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY THIRTY*/ + 0, /* U+0033fe: IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY THIRTY-ONE*/ + 0, /* U+0033ff: SQUARE GAL*/ + RTUNI_ALPHA, /* U+003400: */ +}; + +static const uint8_t g_afRTUniFlags0x004db5[] = +{ + RTUNI_ALPHA, /* U+004db5: */ + 0, /* U+004db6: */ + 0, /* U+004db7: */ + 0, /* U+004db8: */ + 0, /* U+004db9: */ + 0, /* U+004dba: */ + 0, /* U+004dbb: */ + 0, /* U+004dbc: */ + 0, /* U+004dbd: */ + 0, /* U+004dbe: */ + 0, /* U+004dbf: */ + 0, /* U+004dc0: HEXAGRAM FOR THE CREATIVE HEAVEN*/ + 0, /* U+004dc1: HEXAGRAM FOR THE RECEPTIVE EARTH*/ + 0, /* U+004dc2: HEXAGRAM FOR DIFFICULTY AT THE BEGINNING*/ + 0, /* U+004dc3: HEXAGRAM FOR YOUTHFUL FOLLY*/ + 0, /* U+004dc4: HEXAGRAM FOR WAITING*/ + 0, /* U+004dc5: HEXAGRAM FOR CONFLICT*/ + 0, /* U+004dc6: HEXAGRAM FOR THE ARMY*/ + 0, /* U+004dc7: HEXAGRAM FOR HOLDING TOGETHER*/ + 0, /* U+004dc8: HEXAGRAM FOR SMALL TAMING*/ + 0, /* U+004dc9: HEXAGRAM FOR TREADING*/ + 0, /* U+004dca: HEXAGRAM FOR PEACE*/ + 0, /* U+004dcb: HEXAGRAM FOR STANDSTILL*/ + 0, /* U+004dcc: HEXAGRAM FOR FELLOWSHIP*/ + 0, /* U+004dcd: HEXAGRAM FOR GREAT POSSESSION*/ + 0, /* U+004dce: HEXAGRAM FOR MODESTY*/ + 0, /* U+004dcf: HEXAGRAM FOR ENTHUSIASM*/ + 0, /* U+004dd0: HEXAGRAM FOR FOLLOWING*/ + 0, /* U+004dd1: HEXAGRAM FOR WORK ON THE DECAYED*/ + 0, /* U+004dd2: HEXAGRAM FOR APPROACH*/ + 0, /* U+004dd3: HEXAGRAM FOR CONTEMPLATION*/ + 0, /* U+004dd4: HEXAGRAM FOR BITING THROUGH*/ + 0, /* U+004dd5: HEXAGRAM FOR GRACE*/ + 0, /* U+004dd6: HEXAGRAM FOR SPLITTING APART*/ + 0, /* U+004dd7: HEXAGRAM FOR RETURN*/ + 0, /* U+004dd8: HEXAGRAM FOR INNOCENCE*/ + 0, /* U+004dd9: HEXAGRAM FOR GREAT TAMING*/ + 0, /* U+004dda: HEXAGRAM FOR MOUTH CORNERS*/ + 0, /* U+004ddb: HEXAGRAM FOR GREAT PREPONDERANCE*/ + 0, /* U+004ddc: HEXAGRAM FOR THE ABYSMAL WATER*/ + 0, /* U+004ddd: HEXAGRAM FOR THE CLINGING FIRE*/ + 0, /* U+004dde: HEXAGRAM FOR INFLUENCE*/ + 0, /* U+004ddf: HEXAGRAM FOR DURATION*/ + 0, /* U+004de0: HEXAGRAM FOR RETREAT*/ + 0, /* U+004de1: HEXAGRAM FOR GREAT POWER*/ + 0, /* U+004de2: HEXAGRAM FOR PROGRESS*/ + 0, /* U+004de3: HEXAGRAM FOR DARKENING OF THE LIGHT*/ + 0, /* U+004de4: HEXAGRAM FOR THE FAMILY*/ + 0, /* U+004de5: HEXAGRAM FOR OPPOSITION*/ + 0, /* U+004de6: HEXAGRAM FOR OBSTRUCTION*/ + 0, /* U+004de7: HEXAGRAM FOR DELIVERANCE*/ + 0, /* U+004de8: HEXAGRAM FOR DECREASE*/ + 0, /* U+004de9: HEXAGRAM FOR INCREASE*/ + 0, /* U+004dea: HEXAGRAM FOR BREAKTHROUGH*/ + 0, /* U+004deb: HEXAGRAM FOR COMING TO MEET*/ + 0, /* U+004dec: HEXAGRAM FOR GATHERING TOGETHER*/ + 0, /* U+004ded: HEXAGRAM FOR PUSHING UPWARD*/ + 0, /* U+004dee: HEXAGRAM FOR OPPRESSION*/ + 0, /* U+004def: HEXAGRAM FOR THE WELL*/ + 0, /* U+004df0: HEXAGRAM FOR REVOLUTION*/ + 0, /* U+004df1: HEXAGRAM FOR THE CAULDRON*/ + 0, /* U+004df2: HEXAGRAM FOR THE AROUSING THUNDER*/ + 0, /* U+004df3: HEXAGRAM FOR THE KEEPING STILL MOUNTAIN*/ + 0, /* U+004df4: HEXAGRAM FOR DEVELOPMENT*/ + 0, /* U+004df5: HEXAGRAM FOR THE MARRYING MAIDEN*/ + 0, /* U+004df6: HEXAGRAM FOR ABUNDANCE*/ + 0, /* U+004df7: HEXAGRAM FOR THE WANDERER*/ + 0, /* U+004df8: HEXAGRAM FOR THE GENTLE WIND*/ + 0, /* U+004df9: HEXAGRAM FOR THE JOYOUS LAKE*/ + 0, /* U+004dfa: HEXAGRAM FOR DISPERSION*/ + 0, /* U+004dfb: HEXAGRAM FOR LIMITATION*/ + 0, /* U+004dfc: HEXAGRAM FOR INNER TRUTH*/ + 0, /* U+004dfd: HEXAGRAM FOR SMALL PREPONDERANCE*/ + 0, /* U+004dfe: HEXAGRAM FOR AFTER COMPLETION*/ + 0, /* U+004dff: HEXAGRAM FOR BEFORE COMPLETION*/ + RTUNI_ALPHA, /* U+004e00: */ +}; + +static const uint8_t g_afRTUniFlags0x009fcc[] = +{ + RTUNI_ALPHA, /* U+009fcc: */ + 0, /* U+009fcd: */ + 0, /* U+009fce: */ + 0, /* U+009fcf: */ + 0, /* U+009fd0: */ + 0, /* U+009fd1: */ + 0, /* U+009fd2: */ + 0, /* U+009fd3: */ + 0, /* U+009fd4: */ + 0, /* U+009fd5: */ + 0, /* U+009fd6: */ + 0, /* U+009fd7: */ + 0, /* U+009fd8: */ + 0, /* U+009fd9: */ + 0, /* U+009fda: */ + 0, /* U+009fdb: */ + 0, /* U+009fdc: */ + 0, /* U+009fdd: */ + 0, /* U+009fde: */ + 0, /* U+009fdf: */ + 0, /* U+009fe0: */ + 0, /* U+009fe1: */ + 0, /* U+009fe2: */ + 0, /* U+009fe3: */ + 0, /* U+009fe4: */ + 0, /* U+009fe5: */ + 0, /* U+009fe6: */ + 0, /* U+009fe7: */ + 0, /* U+009fe8: */ + 0, /* U+009fe9: */ + 0, /* U+009fea: */ + 0, /* U+009feb: */ + 0, /* U+009fec: */ + 0, /* U+009fed: */ + 0, /* U+009fee: */ + 0, /* U+009fef: */ + 0, /* U+009ff0: */ + 0, /* U+009ff1: */ + 0, /* U+009ff2: */ + 0, /* U+009ff3: */ + 0, /* U+009ff4: */ + 0, /* U+009ff5: */ + 0, /* U+009ff6: */ + 0, /* U+009ff7: */ + 0, /* U+009ff8: */ + 0, /* U+009ff9: */ + 0, /* U+009ffa: */ + 0, /* U+009ffb: */ + 0, /* U+009ffc: */ + 0, /* U+009ffd: */ + 0, /* U+009ffe: */ + 0, /* U+009fff: */ + RTUNI_ALPHA, /* U+00a000: YI SYLLABLE IT*/ + RTUNI_ALPHA, /* U+00a001: YI SYLLABLE IX*/ + RTUNI_ALPHA, /* U+00a002: YI SYLLABLE I*/ + RTUNI_ALPHA, /* U+00a003: YI SYLLABLE IP*/ + RTUNI_ALPHA, /* U+00a004: YI SYLLABLE IET*/ + RTUNI_ALPHA, /* U+00a005: YI SYLLABLE IEX*/ + RTUNI_ALPHA, /* U+00a006: YI SYLLABLE IE*/ + RTUNI_ALPHA, /* U+00a007: YI SYLLABLE IEP*/ + RTUNI_ALPHA, /* U+00a008: YI SYLLABLE AT*/ + RTUNI_ALPHA, /* U+00a009: YI SYLLABLE AX*/ + RTUNI_ALPHA, /* U+00a00a: YI SYLLABLE A*/ + RTUNI_ALPHA, /* U+00a00b: YI SYLLABLE AP*/ + RTUNI_ALPHA, /* U+00a00c: YI SYLLABLE UOX*/ + RTUNI_ALPHA, /* U+00a00d: YI SYLLABLE UO*/ + RTUNI_ALPHA, /* U+00a00e: YI SYLLABLE UOP*/ + RTUNI_ALPHA, /* U+00a00f: YI SYLLABLE OT*/ + RTUNI_ALPHA, /* U+00a010: YI SYLLABLE OX*/ + RTUNI_ALPHA, /* U+00a011: YI SYLLABLE O*/ + RTUNI_ALPHA, /* U+00a012: YI SYLLABLE OP*/ + RTUNI_ALPHA, /* U+00a013: YI SYLLABLE EX*/ + RTUNI_ALPHA, /* U+00a014: YI SYLLABLE E*/ + RTUNI_ALPHA, /* U+00a015: YI SYLLABLE WU*/ + RTUNI_ALPHA, /* U+00a016: YI SYLLABLE BIT*/ + RTUNI_ALPHA, /* U+00a017: YI SYLLABLE BIX*/ + RTUNI_ALPHA, /* U+00a018: YI SYLLABLE BI*/ + RTUNI_ALPHA, /* U+00a019: YI SYLLABLE BIP*/ + RTUNI_ALPHA, /* U+00a01a: YI SYLLABLE BIET*/ + RTUNI_ALPHA, /* U+00a01b: YI SYLLABLE BIEX*/ + RTUNI_ALPHA, /* U+00a01c: YI SYLLABLE BIE*/ + RTUNI_ALPHA, /* U+00a01d: YI SYLLABLE BIEP*/ + RTUNI_ALPHA, /* U+00a01e: YI SYLLABLE BAT*/ + RTUNI_ALPHA, /* U+00a01f: YI SYLLABLE BAX*/ + RTUNI_ALPHA, /* U+00a020: YI SYLLABLE BA*/ + RTUNI_ALPHA, /* U+00a021: YI SYLLABLE BAP*/ + RTUNI_ALPHA, /* U+00a022: YI SYLLABLE BUOX*/ + RTUNI_ALPHA, /* U+00a023: YI SYLLABLE BUO*/ + RTUNI_ALPHA, /* U+00a024: YI SYLLABLE BUOP*/ + RTUNI_ALPHA, /* U+00a025: YI SYLLABLE BOT*/ + RTUNI_ALPHA, /* U+00a026: YI SYLLABLE BOX*/ + RTUNI_ALPHA, /* U+00a027: YI SYLLABLE BO*/ + RTUNI_ALPHA, /* U+00a028: YI SYLLABLE BOP*/ + RTUNI_ALPHA, /* U+00a029: YI SYLLABLE BEX*/ + RTUNI_ALPHA, /* U+00a02a: YI SYLLABLE BE*/ + RTUNI_ALPHA, /* U+00a02b: YI SYLLABLE BEP*/ + RTUNI_ALPHA, /* U+00a02c: YI SYLLABLE BUT*/ + RTUNI_ALPHA, /* U+00a02d: YI SYLLABLE BUX*/ + RTUNI_ALPHA, /* U+00a02e: YI SYLLABLE BU*/ + RTUNI_ALPHA, /* U+00a02f: YI SYLLABLE BUP*/ + RTUNI_ALPHA, /* U+00a030: YI SYLLABLE BURX*/ + RTUNI_ALPHA, /* U+00a031: YI SYLLABLE BUR*/ + RTUNI_ALPHA, /* U+00a032: YI SYLLABLE BYT*/ + RTUNI_ALPHA, /* U+00a033: YI SYLLABLE BYX*/ + RTUNI_ALPHA, /* U+00a034: YI SYLLABLE BY*/ + RTUNI_ALPHA, /* U+00a035: YI SYLLABLE BYP*/ + RTUNI_ALPHA, /* U+00a036: YI SYLLABLE BYRX*/ + RTUNI_ALPHA, /* U+00a037: YI SYLLABLE BYR*/ + RTUNI_ALPHA, /* U+00a038: YI SYLLABLE PIT*/ + RTUNI_ALPHA, /* U+00a039: YI SYLLABLE PIX*/ + RTUNI_ALPHA, /* U+00a03a: YI SYLLABLE PI*/ + RTUNI_ALPHA, /* U+00a03b: YI SYLLABLE PIP*/ + RTUNI_ALPHA, /* U+00a03c: YI SYLLABLE PIEX*/ + RTUNI_ALPHA, /* U+00a03d: YI SYLLABLE PIE*/ + RTUNI_ALPHA, /* U+00a03e: YI SYLLABLE PIEP*/ + RTUNI_ALPHA, /* U+00a03f: YI SYLLABLE PAT*/ + RTUNI_ALPHA, /* U+00a040: YI SYLLABLE PAX*/ + RTUNI_ALPHA, /* U+00a041: YI SYLLABLE PA*/ + RTUNI_ALPHA, /* U+00a042: YI SYLLABLE PAP*/ + RTUNI_ALPHA, /* U+00a043: YI SYLLABLE PUOX*/ + RTUNI_ALPHA, /* U+00a044: YI SYLLABLE PUO*/ + RTUNI_ALPHA, /* U+00a045: YI SYLLABLE PUOP*/ + RTUNI_ALPHA, /* U+00a046: YI SYLLABLE POT*/ + RTUNI_ALPHA, /* U+00a047: YI SYLLABLE POX*/ + RTUNI_ALPHA, /* U+00a048: YI SYLLABLE PO*/ + RTUNI_ALPHA, /* U+00a049: YI SYLLABLE POP*/ + RTUNI_ALPHA, /* U+00a04a: YI SYLLABLE PUT*/ + RTUNI_ALPHA, /* U+00a04b: YI SYLLABLE PUX*/ + RTUNI_ALPHA, /* U+00a04c: YI SYLLABLE PU*/ + RTUNI_ALPHA, /* U+00a04d: YI SYLLABLE PUP*/ + RTUNI_ALPHA, /* U+00a04e: YI SYLLABLE PURX*/ + RTUNI_ALPHA, /* U+00a04f: YI SYLLABLE PUR*/ + RTUNI_ALPHA, /* U+00a050: YI SYLLABLE PYT*/ + RTUNI_ALPHA, /* U+00a051: YI SYLLABLE PYX*/ + RTUNI_ALPHA, /* U+00a052: YI SYLLABLE PY*/ + RTUNI_ALPHA, /* U+00a053: YI SYLLABLE PYP*/ + RTUNI_ALPHA, /* U+00a054: YI SYLLABLE PYRX*/ + RTUNI_ALPHA, /* U+00a055: YI SYLLABLE PYR*/ + RTUNI_ALPHA, /* U+00a056: YI SYLLABLE BBIT*/ + RTUNI_ALPHA, /* U+00a057: YI SYLLABLE BBIX*/ + RTUNI_ALPHA, /* U+00a058: YI SYLLABLE BBI*/ + RTUNI_ALPHA, /* U+00a059: YI SYLLABLE BBIP*/ + RTUNI_ALPHA, /* U+00a05a: YI SYLLABLE BBIET*/ + RTUNI_ALPHA, /* U+00a05b: YI SYLLABLE BBIEX*/ + RTUNI_ALPHA, /* U+00a05c: YI SYLLABLE BBIE*/ + RTUNI_ALPHA, /* U+00a05d: YI SYLLABLE BBIEP*/ + RTUNI_ALPHA, /* U+00a05e: YI SYLLABLE BBAT*/ + RTUNI_ALPHA, /* U+00a05f: YI SYLLABLE BBAX*/ + RTUNI_ALPHA, /* U+00a060: YI SYLLABLE BBA*/ + RTUNI_ALPHA, /* U+00a061: YI SYLLABLE BBAP*/ + RTUNI_ALPHA, /* U+00a062: YI SYLLABLE BBUOX*/ + RTUNI_ALPHA, /* U+00a063: YI SYLLABLE BBUO*/ + RTUNI_ALPHA, /* U+00a064: YI SYLLABLE BBUOP*/ + RTUNI_ALPHA, /* U+00a065: YI SYLLABLE BBOT*/ + RTUNI_ALPHA, /* U+00a066: YI SYLLABLE BBOX*/ + RTUNI_ALPHA, /* U+00a067: YI SYLLABLE BBO*/ + RTUNI_ALPHA, /* U+00a068: YI SYLLABLE BBOP*/ + RTUNI_ALPHA, /* U+00a069: YI SYLLABLE BBEX*/ + RTUNI_ALPHA, /* U+00a06a: YI SYLLABLE BBE*/ + RTUNI_ALPHA, /* U+00a06b: YI SYLLABLE BBEP*/ + RTUNI_ALPHA, /* U+00a06c: YI SYLLABLE BBUT*/ + RTUNI_ALPHA, /* U+00a06d: YI SYLLABLE BBUX*/ + RTUNI_ALPHA, /* U+00a06e: YI SYLLABLE BBU*/ + RTUNI_ALPHA, /* U+00a06f: YI SYLLABLE BBUP*/ + RTUNI_ALPHA, /* U+00a070: YI SYLLABLE BBURX*/ + RTUNI_ALPHA, /* U+00a071: YI SYLLABLE BBUR*/ + RTUNI_ALPHA, /* U+00a072: YI SYLLABLE BBYT*/ + RTUNI_ALPHA, /* U+00a073: YI SYLLABLE BBYX*/ + RTUNI_ALPHA, /* U+00a074: YI SYLLABLE BBY*/ + RTUNI_ALPHA, /* U+00a075: YI SYLLABLE BBYP*/ + RTUNI_ALPHA, /* U+00a076: YI SYLLABLE NBIT*/ + RTUNI_ALPHA, /* U+00a077: YI SYLLABLE NBIX*/ + RTUNI_ALPHA, /* U+00a078: YI SYLLABLE NBI*/ + RTUNI_ALPHA, /* U+00a079: YI SYLLABLE NBIP*/ + RTUNI_ALPHA, /* U+00a07a: YI SYLLABLE NBIEX*/ + RTUNI_ALPHA, /* U+00a07b: YI SYLLABLE NBIE*/ + RTUNI_ALPHA, /* U+00a07c: YI SYLLABLE NBIEP*/ + RTUNI_ALPHA, /* U+00a07d: YI SYLLABLE NBAT*/ + RTUNI_ALPHA, /* U+00a07e: YI SYLLABLE NBAX*/ + RTUNI_ALPHA, /* U+00a07f: YI SYLLABLE NBA*/ + RTUNI_ALPHA, /* U+00a080: YI SYLLABLE NBAP*/ + RTUNI_ALPHA, /* U+00a081: YI SYLLABLE NBOT*/ + RTUNI_ALPHA, /* U+00a082: YI SYLLABLE NBOX*/ + RTUNI_ALPHA, /* U+00a083: YI SYLLABLE NBO*/ + RTUNI_ALPHA, /* U+00a084: YI SYLLABLE NBOP*/ + RTUNI_ALPHA, /* U+00a085: YI SYLLABLE NBUT*/ + RTUNI_ALPHA, /* U+00a086: YI SYLLABLE NBUX*/ + RTUNI_ALPHA, /* U+00a087: YI SYLLABLE NBU*/ + RTUNI_ALPHA, /* U+00a088: YI SYLLABLE NBUP*/ + RTUNI_ALPHA, /* U+00a089: YI SYLLABLE NBURX*/ + RTUNI_ALPHA, /* U+00a08a: YI SYLLABLE NBUR*/ + RTUNI_ALPHA, /* U+00a08b: YI SYLLABLE NBYT*/ + RTUNI_ALPHA, /* U+00a08c: YI SYLLABLE NBYX*/ + RTUNI_ALPHA, /* U+00a08d: YI SYLLABLE NBY*/ + RTUNI_ALPHA, /* U+00a08e: YI SYLLABLE NBYP*/ + RTUNI_ALPHA, /* U+00a08f: YI SYLLABLE NBYRX*/ + RTUNI_ALPHA, /* U+00a090: YI SYLLABLE NBYR*/ + RTUNI_ALPHA, /* U+00a091: YI SYLLABLE HMIT*/ + RTUNI_ALPHA, /* U+00a092: YI SYLLABLE HMIX*/ + RTUNI_ALPHA, /* U+00a093: YI SYLLABLE HMI*/ + RTUNI_ALPHA, /* U+00a094: YI SYLLABLE HMIP*/ + RTUNI_ALPHA, /* U+00a095: YI SYLLABLE HMIEX*/ + RTUNI_ALPHA, /* U+00a096: YI SYLLABLE HMIE*/ + RTUNI_ALPHA, /* U+00a097: YI SYLLABLE HMIEP*/ + RTUNI_ALPHA, /* U+00a098: YI SYLLABLE HMAT*/ + RTUNI_ALPHA, /* U+00a099: YI SYLLABLE HMAX*/ + RTUNI_ALPHA, /* U+00a09a: YI SYLLABLE HMA*/ + RTUNI_ALPHA, /* U+00a09b: YI SYLLABLE HMAP*/ + RTUNI_ALPHA, /* U+00a09c: YI SYLLABLE HMUOX*/ + RTUNI_ALPHA, /* U+00a09d: YI SYLLABLE HMUO*/ + RTUNI_ALPHA, /* U+00a09e: YI SYLLABLE HMUOP*/ + RTUNI_ALPHA, /* U+00a09f: YI SYLLABLE HMOT*/ + RTUNI_ALPHA, /* U+00a0a0: YI SYLLABLE HMOX*/ + RTUNI_ALPHA, /* U+00a0a1: YI SYLLABLE HMO*/ + RTUNI_ALPHA, /* U+00a0a2: YI SYLLABLE HMOP*/ + RTUNI_ALPHA, /* U+00a0a3: YI SYLLABLE HMUT*/ + RTUNI_ALPHA, /* U+00a0a4: YI SYLLABLE HMUX*/ + RTUNI_ALPHA, /* U+00a0a5: YI SYLLABLE HMU*/ + RTUNI_ALPHA, /* U+00a0a6: YI SYLLABLE HMUP*/ + RTUNI_ALPHA, /* U+00a0a7: YI SYLLABLE HMURX*/ + RTUNI_ALPHA, /* U+00a0a8: YI SYLLABLE HMUR*/ + RTUNI_ALPHA, /* U+00a0a9: YI SYLLABLE HMYX*/ + RTUNI_ALPHA, /* U+00a0aa: YI SYLLABLE HMY*/ + RTUNI_ALPHA, /* U+00a0ab: YI SYLLABLE HMYP*/ + RTUNI_ALPHA, /* U+00a0ac: YI SYLLABLE HMYRX*/ + RTUNI_ALPHA, /* U+00a0ad: YI SYLLABLE HMYR*/ + RTUNI_ALPHA, /* U+00a0ae: YI SYLLABLE MIT*/ + RTUNI_ALPHA, /* U+00a0af: YI SYLLABLE MIX*/ + RTUNI_ALPHA, /* U+00a0b0: YI SYLLABLE MI*/ + RTUNI_ALPHA, /* U+00a0b1: YI SYLLABLE MIP*/ + RTUNI_ALPHA, /* U+00a0b2: YI SYLLABLE MIEX*/ + RTUNI_ALPHA, /* U+00a0b3: YI SYLLABLE MIE*/ + RTUNI_ALPHA, /* U+00a0b4: YI SYLLABLE MIEP*/ + RTUNI_ALPHA, /* U+00a0b5: YI SYLLABLE MAT*/ + RTUNI_ALPHA, /* U+00a0b6: YI SYLLABLE MAX*/ + RTUNI_ALPHA, /* U+00a0b7: YI SYLLABLE MA*/ + RTUNI_ALPHA, /* U+00a0b8: YI SYLLABLE MAP*/ + RTUNI_ALPHA, /* U+00a0b9: YI SYLLABLE MUOT*/ + RTUNI_ALPHA, /* U+00a0ba: YI SYLLABLE MUOX*/ + RTUNI_ALPHA, /* U+00a0bb: YI SYLLABLE MUO*/ + RTUNI_ALPHA, /* U+00a0bc: YI SYLLABLE MUOP*/ + RTUNI_ALPHA, /* U+00a0bd: YI SYLLABLE MOT*/ + RTUNI_ALPHA, /* U+00a0be: YI SYLLABLE MOX*/ + RTUNI_ALPHA, /* U+00a0bf: YI SYLLABLE MO*/ + RTUNI_ALPHA, /* U+00a0c0: YI SYLLABLE MOP*/ + RTUNI_ALPHA, /* U+00a0c1: YI SYLLABLE MEX*/ + RTUNI_ALPHA, /* U+00a0c2: YI SYLLABLE ME*/ + RTUNI_ALPHA, /* U+00a0c3: YI SYLLABLE MUT*/ + RTUNI_ALPHA, /* U+00a0c4: YI SYLLABLE MUX*/ + RTUNI_ALPHA, /* U+00a0c5: YI SYLLABLE MU*/ + RTUNI_ALPHA, /* U+00a0c6: YI SYLLABLE MUP*/ + RTUNI_ALPHA, /* U+00a0c7: YI SYLLABLE MURX*/ + RTUNI_ALPHA, /* U+00a0c8: YI SYLLABLE MUR*/ + RTUNI_ALPHA, /* U+00a0c9: YI SYLLABLE MYT*/ + RTUNI_ALPHA, /* U+00a0ca: YI SYLLABLE MYX*/ + RTUNI_ALPHA, /* U+00a0cb: YI SYLLABLE MY*/ + RTUNI_ALPHA, /* U+00a0cc: YI SYLLABLE MYP*/ + RTUNI_ALPHA, /* U+00a0cd: YI SYLLABLE FIT*/ + RTUNI_ALPHA, /* U+00a0ce: YI SYLLABLE FIX*/ + RTUNI_ALPHA, /* U+00a0cf: YI SYLLABLE FI*/ + RTUNI_ALPHA, /* U+00a0d0: YI SYLLABLE FIP*/ + RTUNI_ALPHA, /* U+00a0d1: YI SYLLABLE FAT*/ + RTUNI_ALPHA, /* U+00a0d2: YI SYLLABLE FAX*/ + RTUNI_ALPHA, /* U+00a0d3: YI SYLLABLE FA*/ + RTUNI_ALPHA, /* U+00a0d4: YI SYLLABLE FAP*/ + RTUNI_ALPHA, /* U+00a0d5: YI SYLLABLE FOX*/ + RTUNI_ALPHA, /* U+00a0d6: YI SYLLABLE FO*/ + RTUNI_ALPHA, /* U+00a0d7: YI SYLLABLE FOP*/ + RTUNI_ALPHA, /* U+00a0d8: YI SYLLABLE FUT*/ + RTUNI_ALPHA, /* U+00a0d9: YI SYLLABLE FUX*/ + RTUNI_ALPHA, /* U+00a0da: YI SYLLABLE FU*/ + RTUNI_ALPHA, /* U+00a0db: YI SYLLABLE FUP*/ + RTUNI_ALPHA, /* U+00a0dc: YI SYLLABLE FURX*/ + RTUNI_ALPHA, /* U+00a0dd: YI SYLLABLE FUR*/ + RTUNI_ALPHA, /* U+00a0de: YI SYLLABLE FYT*/ + RTUNI_ALPHA, /* U+00a0df: YI SYLLABLE FYX*/ + RTUNI_ALPHA, /* U+00a0e0: YI SYLLABLE FY*/ + RTUNI_ALPHA, /* U+00a0e1: YI SYLLABLE FYP*/ + RTUNI_ALPHA, /* U+00a0e2: YI SYLLABLE VIT*/ + RTUNI_ALPHA, /* U+00a0e3: YI SYLLABLE VIX*/ + RTUNI_ALPHA, /* U+00a0e4: YI SYLLABLE VI*/ + RTUNI_ALPHA, /* U+00a0e5: YI SYLLABLE VIP*/ + RTUNI_ALPHA, /* U+00a0e6: YI SYLLABLE VIET*/ + RTUNI_ALPHA, /* U+00a0e7: YI SYLLABLE VIEX*/ + RTUNI_ALPHA, /* U+00a0e8: YI SYLLABLE VIE*/ + RTUNI_ALPHA, /* U+00a0e9: YI SYLLABLE VIEP*/ + RTUNI_ALPHA, /* U+00a0ea: YI SYLLABLE VAT*/ + RTUNI_ALPHA, /* U+00a0eb: YI SYLLABLE VAX*/ + RTUNI_ALPHA, /* U+00a0ec: YI SYLLABLE VA*/ + RTUNI_ALPHA, /* U+00a0ed: YI SYLLABLE VAP*/ + RTUNI_ALPHA, /* U+00a0ee: YI SYLLABLE VOT*/ + RTUNI_ALPHA, /* U+00a0ef: YI SYLLABLE VOX*/ + RTUNI_ALPHA, /* U+00a0f0: YI SYLLABLE VO*/ + RTUNI_ALPHA, /* U+00a0f1: YI SYLLABLE VOP*/ + RTUNI_ALPHA, /* U+00a0f2: YI SYLLABLE VEX*/ + RTUNI_ALPHA, /* U+00a0f3: YI SYLLABLE VEP*/ + RTUNI_ALPHA, /* U+00a0f4: YI SYLLABLE VUT*/ + RTUNI_ALPHA, /* U+00a0f5: YI SYLLABLE VUX*/ + RTUNI_ALPHA, /* U+00a0f6: YI SYLLABLE VU*/ + RTUNI_ALPHA, /* U+00a0f7: YI SYLLABLE VUP*/ + RTUNI_ALPHA, /* U+00a0f8: YI SYLLABLE VURX*/ + RTUNI_ALPHA, /* U+00a0f9: YI SYLLABLE VUR*/ + RTUNI_ALPHA, /* U+00a0fa: YI SYLLABLE VYT*/ + RTUNI_ALPHA, /* U+00a0fb: YI SYLLABLE VYX*/ + RTUNI_ALPHA, /* U+00a0fc: YI SYLLABLE VY*/ + RTUNI_ALPHA, /* U+00a0fd: YI SYLLABLE VYP*/ + RTUNI_ALPHA, /* U+00a0fe: YI SYLLABLE VYRX*/ + RTUNI_ALPHA, /* U+00a0ff: YI SYLLABLE VYR*/ + RTUNI_ALPHA, /* U+00a100: YI SYLLABLE DIT*/ + RTUNI_ALPHA, /* U+00a101: YI SYLLABLE DIX*/ + RTUNI_ALPHA, /* U+00a102: YI SYLLABLE DI*/ + RTUNI_ALPHA, /* U+00a103: YI SYLLABLE DIP*/ + RTUNI_ALPHA, /* U+00a104: YI SYLLABLE DIEX*/ + RTUNI_ALPHA, /* U+00a105: YI SYLLABLE DIE*/ + RTUNI_ALPHA, /* U+00a106: YI SYLLABLE DIEP*/ + RTUNI_ALPHA, /* U+00a107: YI SYLLABLE DAT*/ + RTUNI_ALPHA, /* U+00a108: YI SYLLABLE DAX*/ + RTUNI_ALPHA, /* U+00a109: YI SYLLABLE DA*/ + RTUNI_ALPHA, /* U+00a10a: YI SYLLABLE DAP*/ + RTUNI_ALPHA, /* U+00a10b: YI SYLLABLE DUOX*/ + RTUNI_ALPHA, /* U+00a10c: YI SYLLABLE DUO*/ + RTUNI_ALPHA, /* U+00a10d: YI SYLLABLE DOT*/ + RTUNI_ALPHA, /* U+00a10e: YI SYLLABLE DOX*/ + RTUNI_ALPHA, /* U+00a10f: YI SYLLABLE DO*/ + RTUNI_ALPHA, /* U+00a110: YI SYLLABLE DOP*/ + RTUNI_ALPHA, /* U+00a111: YI SYLLABLE DEX*/ + RTUNI_ALPHA, /* U+00a112: YI SYLLABLE DE*/ + RTUNI_ALPHA, /* U+00a113: YI SYLLABLE DEP*/ + RTUNI_ALPHA, /* U+00a114: YI SYLLABLE DUT*/ + RTUNI_ALPHA, /* U+00a115: YI SYLLABLE DUX*/ + RTUNI_ALPHA, /* U+00a116: YI SYLLABLE DU*/ + RTUNI_ALPHA, /* U+00a117: YI SYLLABLE DUP*/ + RTUNI_ALPHA, /* U+00a118: YI SYLLABLE DURX*/ + RTUNI_ALPHA, /* U+00a119: YI SYLLABLE DUR*/ + RTUNI_ALPHA, /* U+00a11a: YI SYLLABLE TIT*/ + RTUNI_ALPHA, /* U+00a11b: YI SYLLABLE TIX*/ + RTUNI_ALPHA, /* U+00a11c: YI SYLLABLE TI*/ + RTUNI_ALPHA, /* U+00a11d: YI SYLLABLE TIP*/ + RTUNI_ALPHA, /* U+00a11e: YI SYLLABLE TIEX*/ + RTUNI_ALPHA, /* U+00a11f: YI SYLLABLE TIE*/ + RTUNI_ALPHA, /* U+00a120: YI SYLLABLE TIEP*/ + RTUNI_ALPHA, /* U+00a121: YI SYLLABLE TAT*/ + RTUNI_ALPHA, /* U+00a122: YI SYLLABLE TAX*/ + RTUNI_ALPHA, /* U+00a123: YI SYLLABLE TA*/ + RTUNI_ALPHA, /* U+00a124: YI SYLLABLE TAP*/ + RTUNI_ALPHA, /* U+00a125: YI SYLLABLE TUOT*/ + RTUNI_ALPHA, /* U+00a126: YI SYLLABLE TUOX*/ + RTUNI_ALPHA, /* U+00a127: YI SYLLABLE TUO*/ + RTUNI_ALPHA, /* U+00a128: YI SYLLABLE TUOP*/ + RTUNI_ALPHA, /* U+00a129: YI SYLLABLE TOT*/ + RTUNI_ALPHA, /* U+00a12a: YI SYLLABLE TOX*/ + RTUNI_ALPHA, /* U+00a12b: YI SYLLABLE TO*/ + RTUNI_ALPHA, /* U+00a12c: YI SYLLABLE TOP*/ + RTUNI_ALPHA, /* U+00a12d: YI SYLLABLE TEX*/ + RTUNI_ALPHA, /* U+00a12e: YI SYLLABLE TE*/ + RTUNI_ALPHA, /* U+00a12f: YI SYLLABLE TEP*/ + RTUNI_ALPHA, /* U+00a130: YI SYLLABLE TUT*/ + RTUNI_ALPHA, /* U+00a131: YI SYLLABLE TUX*/ + RTUNI_ALPHA, /* U+00a132: YI SYLLABLE TU*/ + RTUNI_ALPHA, /* U+00a133: YI SYLLABLE TUP*/ + RTUNI_ALPHA, /* U+00a134: YI SYLLABLE TURX*/ + RTUNI_ALPHA, /* U+00a135: YI SYLLABLE TUR*/ + RTUNI_ALPHA, /* U+00a136: YI SYLLABLE DDIT*/ + RTUNI_ALPHA, /* U+00a137: YI SYLLABLE DDIX*/ + RTUNI_ALPHA, /* U+00a138: YI SYLLABLE DDI*/ + RTUNI_ALPHA, /* U+00a139: YI SYLLABLE DDIP*/ + RTUNI_ALPHA, /* U+00a13a: YI SYLLABLE DDIEX*/ + RTUNI_ALPHA, /* U+00a13b: YI SYLLABLE DDIE*/ + RTUNI_ALPHA, /* U+00a13c: YI SYLLABLE DDIEP*/ + RTUNI_ALPHA, /* U+00a13d: YI SYLLABLE DDAT*/ + RTUNI_ALPHA, /* U+00a13e: YI SYLLABLE DDAX*/ + RTUNI_ALPHA, /* U+00a13f: YI SYLLABLE DDA*/ + RTUNI_ALPHA, /* U+00a140: YI SYLLABLE DDAP*/ + RTUNI_ALPHA, /* U+00a141: YI SYLLABLE DDUOX*/ + RTUNI_ALPHA, /* U+00a142: YI SYLLABLE DDUO*/ + RTUNI_ALPHA, /* U+00a143: YI SYLLABLE DDUOP*/ + RTUNI_ALPHA, /* U+00a144: YI SYLLABLE DDOT*/ + RTUNI_ALPHA, /* U+00a145: YI SYLLABLE DDOX*/ + RTUNI_ALPHA, /* U+00a146: YI SYLLABLE DDO*/ + RTUNI_ALPHA, /* U+00a147: YI SYLLABLE DDOP*/ + RTUNI_ALPHA, /* U+00a148: YI SYLLABLE DDEX*/ + RTUNI_ALPHA, /* U+00a149: YI SYLLABLE DDE*/ + RTUNI_ALPHA, /* U+00a14a: YI SYLLABLE DDEP*/ + RTUNI_ALPHA, /* U+00a14b: YI SYLLABLE DDUT*/ + RTUNI_ALPHA, /* U+00a14c: YI SYLLABLE DDUX*/ + RTUNI_ALPHA, /* U+00a14d: YI SYLLABLE DDU*/ + RTUNI_ALPHA, /* U+00a14e: YI SYLLABLE DDUP*/ + RTUNI_ALPHA, /* U+00a14f: YI SYLLABLE DDURX*/ + RTUNI_ALPHA, /* U+00a150: YI SYLLABLE DDUR*/ + RTUNI_ALPHA, /* U+00a151: YI SYLLABLE NDIT*/ + RTUNI_ALPHA, /* U+00a152: YI SYLLABLE NDIX*/ + RTUNI_ALPHA, /* U+00a153: YI SYLLABLE NDI*/ + RTUNI_ALPHA, /* U+00a154: YI SYLLABLE NDIP*/ + RTUNI_ALPHA, /* U+00a155: YI SYLLABLE NDIEX*/ + RTUNI_ALPHA, /* U+00a156: YI SYLLABLE NDIE*/ + RTUNI_ALPHA, /* U+00a157: YI SYLLABLE NDAT*/ + RTUNI_ALPHA, /* U+00a158: YI SYLLABLE NDAX*/ + RTUNI_ALPHA, /* U+00a159: YI SYLLABLE NDA*/ + RTUNI_ALPHA, /* U+00a15a: YI SYLLABLE NDAP*/ + RTUNI_ALPHA, /* U+00a15b: YI SYLLABLE NDOT*/ + RTUNI_ALPHA, /* U+00a15c: YI SYLLABLE NDOX*/ + RTUNI_ALPHA, /* U+00a15d: YI SYLLABLE NDO*/ + RTUNI_ALPHA, /* U+00a15e: YI SYLLABLE NDOP*/ + RTUNI_ALPHA, /* U+00a15f: YI SYLLABLE NDEX*/ + RTUNI_ALPHA, /* U+00a160: YI SYLLABLE NDE*/ + RTUNI_ALPHA, /* U+00a161: YI SYLLABLE NDEP*/ + RTUNI_ALPHA, /* U+00a162: YI SYLLABLE NDUT*/ + RTUNI_ALPHA, /* U+00a163: YI SYLLABLE NDUX*/ + RTUNI_ALPHA, /* U+00a164: YI SYLLABLE NDU*/ + RTUNI_ALPHA, /* U+00a165: YI SYLLABLE NDUP*/ + RTUNI_ALPHA, /* U+00a166: YI SYLLABLE NDURX*/ + RTUNI_ALPHA, /* U+00a167: YI SYLLABLE NDUR*/ + RTUNI_ALPHA, /* U+00a168: YI SYLLABLE HNIT*/ + RTUNI_ALPHA, /* U+00a169: YI SYLLABLE HNIX*/ + RTUNI_ALPHA, /* U+00a16a: YI SYLLABLE HNI*/ + RTUNI_ALPHA, /* U+00a16b: YI SYLLABLE HNIP*/ + RTUNI_ALPHA, /* U+00a16c: YI SYLLABLE HNIET*/ + RTUNI_ALPHA, /* U+00a16d: YI SYLLABLE HNIEX*/ + RTUNI_ALPHA, /* U+00a16e: YI SYLLABLE HNIE*/ + RTUNI_ALPHA, /* U+00a16f: YI SYLLABLE HNIEP*/ + RTUNI_ALPHA, /* U+00a170: YI SYLLABLE HNAT*/ + RTUNI_ALPHA, /* U+00a171: YI SYLLABLE HNAX*/ + RTUNI_ALPHA, /* U+00a172: YI SYLLABLE HNA*/ + RTUNI_ALPHA, /* U+00a173: YI SYLLABLE HNAP*/ + RTUNI_ALPHA, /* U+00a174: YI SYLLABLE HNUOX*/ + RTUNI_ALPHA, /* U+00a175: YI SYLLABLE HNUO*/ + RTUNI_ALPHA, /* U+00a176: YI SYLLABLE HNOT*/ + RTUNI_ALPHA, /* U+00a177: YI SYLLABLE HNOX*/ + RTUNI_ALPHA, /* U+00a178: YI SYLLABLE HNOP*/ + RTUNI_ALPHA, /* U+00a179: YI SYLLABLE HNEX*/ + RTUNI_ALPHA, /* U+00a17a: YI SYLLABLE HNE*/ + RTUNI_ALPHA, /* U+00a17b: YI SYLLABLE HNEP*/ + RTUNI_ALPHA, /* U+00a17c: YI SYLLABLE HNUT*/ + RTUNI_ALPHA, /* U+00a17d: YI SYLLABLE NIT*/ + RTUNI_ALPHA, /* U+00a17e: YI SYLLABLE NIX*/ + RTUNI_ALPHA, /* U+00a17f: YI SYLLABLE NI*/ + RTUNI_ALPHA, /* U+00a180: YI SYLLABLE NIP*/ + RTUNI_ALPHA, /* U+00a181: YI SYLLABLE NIEX*/ + RTUNI_ALPHA, /* U+00a182: YI SYLLABLE NIE*/ + RTUNI_ALPHA, /* U+00a183: YI SYLLABLE NIEP*/ + RTUNI_ALPHA, /* U+00a184: YI SYLLABLE NAX*/ + RTUNI_ALPHA, /* U+00a185: YI SYLLABLE NA*/ + RTUNI_ALPHA, /* U+00a186: YI SYLLABLE NAP*/ + RTUNI_ALPHA, /* U+00a187: YI SYLLABLE NUOX*/ + RTUNI_ALPHA, /* U+00a188: YI SYLLABLE NUO*/ + RTUNI_ALPHA, /* U+00a189: YI SYLLABLE NUOP*/ + RTUNI_ALPHA, /* U+00a18a: YI SYLLABLE NOT*/ + RTUNI_ALPHA, /* U+00a18b: YI SYLLABLE NOX*/ + RTUNI_ALPHA, /* U+00a18c: YI SYLLABLE NO*/ + RTUNI_ALPHA, /* U+00a18d: YI SYLLABLE NOP*/ + RTUNI_ALPHA, /* U+00a18e: YI SYLLABLE NEX*/ + RTUNI_ALPHA, /* U+00a18f: YI SYLLABLE NE*/ + RTUNI_ALPHA, /* U+00a190: YI SYLLABLE NEP*/ + RTUNI_ALPHA, /* U+00a191: YI SYLLABLE NUT*/ + RTUNI_ALPHA, /* U+00a192: YI SYLLABLE NUX*/ + RTUNI_ALPHA, /* U+00a193: YI SYLLABLE NU*/ + RTUNI_ALPHA, /* U+00a194: YI SYLLABLE NUP*/ + RTUNI_ALPHA, /* U+00a195: YI SYLLABLE NURX*/ + RTUNI_ALPHA, /* U+00a196: YI SYLLABLE NUR*/ + RTUNI_ALPHA, /* U+00a197: YI SYLLABLE HLIT*/ + RTUNI_ALPHA, /* U+00a198: YI SYLLABLE HLIX*/ + RTUNI_ALPHA, /* U+00a199: YI SYLLABLE HLI*/ + RTUNI_ALPHA, /* U+00a19a: YI SYLLABLE HLIP*/ + RTUNI_ALPHA, /* U+00a19b: YI SYLLABLE HLIEX*/ + RTUNI_ALPHA, /* U+00a19c: YI SYLLABLE HLIE*/ + RTUNI_ALPHA, /* U+00a19d: YI SYLLABLE HLIEP*/ + RTUNI_ALPHA, /* U+00a19e: YI SYLLABLE HLAT*/ + RTUNI_ALPHA, /* U+00a19f: YI SYLLABLE HLAX*/ + RTUNI_ALPHA, /* U+00a1a0: YI SYLLABLE HLA*/ + RTUNI_ALPHA, /* U+00a1a1: YI SYLLABLE HLAP*/ + RTUNI_ALPHA, /* U+00a1a2: YI SYLLABLE HLUOX*/ + RTUNI_ALPHA, /* U+00a1a3: YI SYLLABLE HLUO*/ + RTUNI_ALPHA, /* U+00a1a4: YI SYLLABLE HLUOP*/ + RTUNI_ALPHA, /* U+00a1a5: YI SYLLABLE HLOX*/ + RTUNI_ALPHA, /* U+00a1a6: YI SYLLABLE HLO*/ + RTUNI_ALPHA, /* U+00a1a7: YI SYLLABLE HLOP*/ + RTUNI_ALPHA, /* U+00a1a8: YI SYLLABLE HLEX*/ + RTUNI_ALPHA, /* U+00a1a9: YI SYLLABLE HLE*/ + RTUNI_ALPHA, /* U+00a1aa: YI SYLLABLE HLEP*/ + RTUNI_ALPHA, /* U+00a1ab: YI SYLLABLE HLUT*/ + RTUNI_ALPHA, /* U+00a1ac: YI SYLLABLE HLUX*/ + RTUNI_ALPHA, /* U+00a1ad: YI SYLLABLE HLU*/ + RTUNI_ALPHA, /* U+00a1ae: YI SYLLABLE HLUP*/ + RTUNI_ALPHA, /* U+00a1af: YI SYLLABLE HLURX*/ + RTUNI_ALPHA, /* U+00a1b0: YI SYLLABLE HLUR*/ + RTUNI_ALPHA, /* U+00a1b1: YI SYLLABLE HLYT*/ + RTUNI_ALPHA, /* U+00a1b2: YI SYLLABLE HLYX*/ + RTUNI_ALPHA, /* U+00a1b3: YI SYLLABLE HLY*/ + RTUNI_ALPHA, /* U+00a1b4: YI SYLLABLE HLYP*/ + RTUNI_ALPHA, /* U+00a1b5: YI SYLLABLE HLYRX*/ + RTUNI_ALPHA, /* U+00a1b6: YI SYLLABLE HLYR*/ + RTUNI_ALPHA, /* U+00a1b7: YI SYLLABLE LIT*/ + RTUNI_ALPHA, /* U+00a1b8: YI SYLLABLE LIX*/ + RTUNI_ALPHA, /* U+00a1b9: YI SYLLABLE LI*/ + RTUNI_ALPHA, /* U+00a1ba: YI SYLLABLE LIP*/ + RTUNI_ALPHA, /* U+00a1bb: YI SYLLABLE LIET*/ + RTUNI_ALPHA, /* U+00a1bc: YI SYLLABLE LIEX*/ + RTUNI_ALPHA, /* U+00a1bd: YI SYLLABLE LIE*/ + RTUNI_ALPHA, /* U+00a1be: YI SYLLABLE LIEP*/ + RTUNI_ALPHA, /* U+00a1bf: YI SYLLABLE LAT*/ + RTUNI_ALPHA, /* U+00a1c0: YI SYLLABLE LAX*/ + RTUNI_ALPHA, /* U+00a1c1: YI SYLLABLE LA*/ + RTUNI_ALPHA, /* U+00a1c2: YI SYLLABLE LAP*/ + RTUNI_ALPHA, /* U+00a1c3: YI SYLLABLE LUOT*/ + RTUNI_ALPHA, /* U+00a1c4: YI SYLLABLE LUOX*/ + RTUNI_ALPHA, /* U+00a1c5: YI SYLLABLE LUO*/ + RTUNI_ALPHA, /* U+00a1c6: YI SYLLABLE LUOP*/ + RTUNI_ALPHA, /* U+00a1c7: YI SYLLABLE LOT*/ + RTUNI_ALPHA, /* U+00a1c8: YI SYLLABLE LOX*/ + RTUNI_ALPHA, /* U+00a1c9: YI SYLLABLE LO*/ + RTUNI_ALPHA, /* U+00a1ca: YI SYLLABLE LOP*/ + RTUNI_ALPHA, /* U+00a1cb: YI SYLLABLE LEX*/ + RTUNI_ALPHA, /* U+00a1cc: YI SYLLABLE LE*/ + RTUNI_ALPHA, /* U+00a1cd: YI SYLLABLE LEP*/ + RTUNI_ALPHA, /* U+00a1ce: YI SYLLABLE LUT*/ + RTUNI_ALPHA, /* U+00a1cf: YI SYLLABLE LUX*/ + RTUNI_ALPHA, /* U+00a1d0: YI SYLLABLE LU*/ + RTUNI_ALPHA, /* U+00a1d1: YI SYLLABLE LUP*/ + RTUNI_ALPHA, /* U+00a1d2: YI SYLLABLE LURX*/ + RTUNI_ALPHA, /* U+00a1d3: YI SYLLABLE LUR*/ + RTUNI_ALPHA, /* U+00a1d4: YI SYLLABLE LYT*/ + RTUNI_ALPHA, /* U+00a1d5: YI SYLLABLE LYX*/ + RTUNI_ALPHA, /* U+00a1d6: YI SYLLABLE LY*/ + RTUNI_ALPHA, /* U+00a1d7: YI SYLLABLE LYP*/ + RTUNI_ALPHA, /* U+00a1d8: YI SYLLABLE LYRX*/ + RTUNI_ALPHA, /* U+00a1d9: YI SYLLABLE LYR*/ + RTUNI_ALPHA, /* U+00a1da: YI SYLLABLE GIT*/ + RTUNI_ALPHA, /* U+00a1db: YI SYLLABLE GIX*/ + RTUNI_ALPHA, /* U+00a1dc: YI SYLLABLE GI*/ + RTUNI_ALPHA, /* U+00a1dd: YI SYLLABLE GIP*/ + RTUNI_ALPHA, /* U+00a1de: YI SYLLABLE GIET*/ + RTUNI_ALPHA, /* U+00a1df: YI SYLLABLE GIEX*/ + RTUNI_ALPHA, /* U+00a1e0: YI SYLLABLE GIE*/ + RTUNI_ALPHA, /* U+00a1e1: YI SYLLABLE GIEP*/ + RTUNI_ALPHA, /* U+00a1e2: YI SYLLABLE GAT*/ + RTUNI_ALPHA, /* U+00a1e3: YI SYLLABLE GAX*/ + RTUNI_ALPHA, /* U+00a1e4: YI SYLLABLE GA*/ + RTUNI_ALPHA, /* U+00a1e5: YI SYLLABLE GAP*/ + RTUNI_ALPHA, /* U+00a1e6: YI SYLLABLE GUOT*/ + RTUNI_ALPHA, /* U+00a1e7: YI SYLLABLE GUOX*/ + RTUNI_ALPHA, /* U+00a1e8: YI SYLLABLE GUO*/ + RTUNI_ALPHA, /* U+00a1e9: YI SYLLABLE GUOP*/ + RTUNI_ALPHA, /* U+00a1ea: YI SYLLABLE GOT*/ + RTUNI_ALPHA, /* U+00a1eb: YI SYLLABLE GOX*/ + RTUNI_ALPHA, /* U+00a1ec: YI SYLLABLE GO*/ + RTUNI_ALPHA, /* U+00a1ed: YI SYLLABLE GOP*/ + RTUNI_ALPHA, /* U+00a1ee: YI SYLLABLE GET*/ + RTUNI_ALPHA, /* U+00a1ef: YI SYLLABLE GEX*/ + RTUNI_ALPHA, /* U+00a1f0: YI SYLLABLE GE*/ + RTUNI_ALPHA, /* U+00a1f1: YI SYLLABLE GEP*/ + RTUNI_ALPHA, /* U+00a1f2: YI SYLLABLE GUT*/ + RTUNI_ALPHA, /* U+00a1f3: YI SYLLABLE GUX*/ + RTUNI_ALPHA, /* U+00a1f4: YI SYLLABLE GU*/ + RTUNI_ALPHA, /* U+00a1f5: YI SYLLABLE GUP*/ + RTUNI_ALPHA, /* U+00a1f6: YI SYLLABLE GURX*/ + RTUNI_ALPHA, /* U+00a1f7: YI SYLLABLE GUR*/ + RTUNI_ALPHA, /* U+00a1f8: YI SYLLABLE KIT*/ + RTUNI_ALPHA, /* U+00a1f9: YI SYLLABLE KIX*/ + RTUNI_ALPHA, /* U+00a1fa: YI SYLLABLE KI*/ + RTUNI_ALPHA, /* U+00a1fb: YI SYLLABLE KIP*/ + RTUNI_ALPHA, /* U+00a1fc: YI SYLLABLE KIEX*/ + RTUNI_ALPHA, /* U+00a1fd: YI SYLLABLE KIE*/ + RTUNI_ALPHA, /* U+00a1fe: YI SYLLABLE KIEP*/ + RTUNI_ALPHA, /* U+00a1ff: YI SYLLABLE KAT*/ + RTUNI_ALPHA, /* U+00a200: YI SYLLABLE KAX*/ + RTUNI_ALPHA, /* U+00a201: YI SYLLABLE KA*/ + RTUNI_ALPHA, /* U+00a202: YI SYLLABLE KAP*/ + RTUNI_ALPHA, /* U+00a203: YI SYLLABLE KUOX*/ + RTUNI_ALPHA, /* U+00a204: YI SYLLABLE KUO*/ + RTUNI_ALPHA, /* U+00a205: YI SYLLABLE KUOP*/ + RTUNI_ALPHA, /* U+00a206: YI SYLLABLE KOT*/ + RTUNI_ALPHA, /* U+00a207: YI SYLLABLE KOX*/ + RTUNI_ALPHA, /* U+00a208: YI SYLLABLE KO*/ + RTUNI_ALPHA, /* U+00a209: YI SYLLABLE KOP*/ + RTUNI_ALPHA, /* U+00a20a: YI SYLLABLE KET*/ + RTUNI_ALPHA, /* U+00a20b: YI SYLLABLE KEX*/ + RTUNI_ALPHA, /* U+00a20c: YI SYLLABLE KE*/ + RTUNI_ALPHA, /* U+00a20d: YI SYLLABLE KEP*/ + RTUNI_ALPHA, /* U+00a20e: YI SYLLABLE KUT*/ + RTUNI_ALPHA, /* U+00a20f: YI SYLLABLE KUX*/ + RTUNI_ALPHA, /* U+00a210: YI SYLLABLE KU*/ + RTUNI_ALPHA, /* U+00a211: YI SYLLABLE KUP*/ + RTUNI_ALPHA, /* U+00a212: YI SYLLABLE KURX*/ + RTUNI_ALPHA, /* U+00a213: YI SYLLABLE KUR*/ + RTUNI_ALPHA, /* U+00a214: YI SYLLABLE GGIT*/ + RTUNI_ALPHA, /* U+00a215: YI SYLLABLE GGIX*/ + RTUNI_ALPHA, /* U+00a216: YI SYLLABLE GGI*/ + RTUNI_ALPHA, /* U+00a217: YI SYLLABLE GGIEX*/ + RTUNI_ALPHA, /* U+00a218: YI SYLLABLE GGIE*/ + RTUNI_ALPHA, /* U+00a219: YI SYLLABLE GGIEP*/ + RTUNI_ALPHA, /* U+00a21a: YI SYLLABLE GGAT*/ + RTUNI_ALPHA, /* U+00a21b: YI SYLLABLE GGAX*/ + RTUNI_ALPHA, /* U+00a21c: YI SYLLABLE GGA*/ + RTUNI_ALPHA, /* U+00a21d: YI SYLLABLE GGAP*/ + RTUNI_ALPHA, /* U+00a21e: YI SYLLABLE GGUOT*/ + RTUNI_ALPHA, /* U+00a21f: YI SYLLABLE GGUOX*/ + RTUNI_ALPHA, /* U+00a220: YI SYLLABLE GGUO*/ + RTUNI_ALPHA, /* U+00a221: YI SYLLABLE GGUOP*/ + RTUNI_ALPHA, /* U+00a222: YI SYLLABLE GGOT*/ + RTUNI_ALPHA, /* U+00a223: YI SYLLABLE GGOX*/ + RTUNI_ALPHA, /* U+00a224: YI SYLLABLE GGO*/ + RTUNI_ALPHA, /* U+00a225: YI SYLLABLE GGOP*/ + RTUNI_ALPHA, /* U+00a226: YI SYLLABLE GGET*/ + RTUNI_ALPHA, /* U+00a227: YI SYLLABLE GGEX*/ + RTUNI_ALPHA, /* U+00a228: YI SYLLABLE GGE*/ + RTUNI_ALPHA, /* U+00a229: YI SYLLABLE GGEP*/ + RTUNI_ALPHA, /* U+00a22a: YI SYLLABLE GGUT*/ + RTUNI_ALPHA, /* U+00a22b: YI SYLLABLE GGUX*/ + RTUNI_ALPHA, /* U+00a22c: YI SYLLABLE GGU*/ + RTUNI_ALPHA, /* U+00a22d: YI SYLLABLE GGUP*/ + RTUNI_ALPHA, /* U+00a22e: YI SYLLABLE GGURX*/ + RTUNI_ALPHA, /* U+00a22f: YI SYLLABLE GGUR*/ + RTUNI_ALPHA, /* U+00a230: YI SYLLABLE MGIEX*/ + RTUNI_ALPHA, /* U+00a231: YI SYLLABLE MGIE*/ + RTUNI_ALPHA, /* U+00a232: YI SYLLABLE MGAT*/ + RTUNI_ALPHA, /* U+00a233: YI SYLLABLE MGAX*/ + RTUNI_ALPHA, /* U+00a234: YI SYLLABLE MGA*/ + RTUNI_ALPHA, /* U+00a235: YI SYLLABLE MGAP*/ + RTUNI_ALPHA, /* U+00a236: YI SYLLABLE MGUOX*/ + RTUNI_ALPHA, /* U+00a237: YI SYLLABLE MGUO*/ + RTUNI_ALPHA, /* U+00a238: YI SYLLABLE MGUOP*/ + RTUNI_ALPHA, /* U+00a239: YI SYLLABLE MGOT*/ + RTUNI_ALPHA, /* U+00a23a: YI SYLLABLE MGOX*/ + RTUNI_ALPHA, /* U+00a23b: YI SYLLABLE MGO*/ + RTUNI_ALPHA, /* U+00a23c: YI SYLLABLE MGOP*/ + RTUNI_ALPHA, /* U+00a23d: YI SYLLABLE MGEX*/ + RTUNI_ALPHA, /* U+00a23e: YI SYLLABLE MGE*/ + RTUNI_ALPHA, /* U+00a23f: YI SYLLABLE MGEP*/ + RTUNI_ALPHA, /* U+00a240: YI SYLLABLE MGUT*/ + RTUNI_ALPHA, /* U+00a241: YI SYLLABLE MGUX*/ + RTUNI_ALPHA, /* U+00a242: YI SYLLABLE MGU*/ + RTUNI_ALPHA, /* U+00a243: YI SYLLABLE MGUP*/ + RTUNI_ALPHA, /* U+00a244: YI SYLLABLE MGURX*/ + RTUNI_ALPHA, /* U+00a245: YI SYLLABLE MGUR*/ + RTUNI_ALPHA, /* U+00a246: YI SYLLABLE HXIT*/ + RTUNI_ALPHA, /* U+00a247: YI SYLLABLE HXIX*/ + RTUNI_ALPHA, /* U+00a248: YI SYLLABLE HXI*/ + RTUNI_ALPHA, /* U+00a249: YI SYLLABLE HXIP*/ + RTUNI_ALPHA, /* U+00a24a: YI SYLLABLE HXIET*/ + RTUNI_ALPHA, /* U+00a24b: YI SYLLABLE HXIEX*/ + RTUNI_ALPHA, /* U+00a24c: YI SYLLABLE HXIE*/ + RTUNI_ALPHA, /* U+00a24d: YI SYLLABLE HXIEP*/ + RTUNI_ALPHA, /* U+00a24e: YI SYLLABLE HXAT*/ + RTUNI_ALPHA, /* U+00a24f: YI SYLLABLE HXAX*/ + RTUNI_ALPHA, /* U+00a250: YI SYLLABLE HXA*/ + RTUNI_ALPHA, /* U+00a251: YI SYLLABLE HXAP*/ + RTUNI_ALPHA, /* U+00a252: YI SYLLABLE HXUOT*/ + RTUNI_ALPHA, /* U+00a253: YI SYLLABLE HXUOX*/ + RTUNI_ALPHA, /* U+00a254: YI SYLLABLE HXUO*/ + RTUNI_ALPHA, /* U+00a255: YI SYLLABLE HXUOP*/ + RTUNI_ALPHA, /* U+00a256: YI SYLLABLE HXOT*/ + RTUNI_ALPHA, /* U+00a257: YI SYLLABLE HXOX*/ + RTUNI_ALPHA, /* U+00a258: YI SYLLABLE HXO*/ + RTUNI_ALPHA, /* U+00a259: YI SYLLABLE HXOP*/ + RTUNI_ALPHA, /* U+00a25a: YI SYLLABLE HXEX*/ + RTUNI_ALPHA, /* U+00a25b: YI SYLLABLE HXE*/ + RTUNI_ALPHA, /* U+00a25c: YI SYLLABLE HXEP*/ + RTUNI_ALPHA, /* U+00a25d: YI SYLLABLE NGIEX*/ + RTUNI_ALPHA, /* U+00a25e: YI SYLLABLE NGIE*/ + RTUNI_ALPHA, /* U+00a25f: YI SYLLABLE NGIEP*/ + RTUNI_ALPHA, /* U+00a260: YI SYLLABLE NGAT*/ + RTUNI_ALPHA, /* U+00a261: YI SYLLABLE NGAX*/ + RTUNI_ALPHA, /* U+00a262: YI SYLLABLE NGA*/ + RTUNI_ALPHA, /* U+00a263: YI SYLLABLE NGAP*/ + RTUNI_ALPHA, /* U+00a264: YI SYLLABLE NGUOT*/ + RTUNI_ALPHA, /* U+00a265: YI SYLLABLE NGUOX*/ + RTUNI_ALPHA, /* U+00a266: YI SYLLABLE NGUO*/ + RTUNI_ALPHA, /* U+00a267: YI SYLLABLE NGOT*/ + RTUNI_ALPHA, /* U+00a268: YI SYLLABLE NGOX*/ + RTUNI_ALPHA, /* U+00a269: YI SYLLABLE NGO*/ + RTUNI_ALPHA, /* U+00a26a: YI SYLLABLE NGOP*/ + RTUNI_ALPHA, /* U+00a26b: YI SYLLABLE NGEX*/ + RTUNI_ALPHA, /* U+00a26c: YI SYLLABLE NGE*/ + RTUNI_ALPHA, /* U+00a26d: YI SYLLABLE NGEP*/ + RTUNI_ALPHA, /* U+00a26e: YI SYLLABLE HIT*/ + RTUNI_ALPHA, /* U+00a26f: YI SYLLABLE HIEX*/ + RTUNI_ALPHA, /* U+00a270: YI SYLLABLE HIE*/ + RTUNI_ALPHA, /* U+00a271: YI SYLLABLE HAT*/ + RTUNI_ALPHA, /* U+00a272: YI SYLLABLE HAX*/ + RTUNI_ALPHA, /* U+00a273: YI SYLLABLE HA*/ + RTUNI_ALPHA, /* U+00a274: YI SYLLABLE HAP*/ + RTUNI_ALPHA, /* U+00a275: YI SYLLABLE HUOT*/ + RTUNI_ALPHA, /* U+00a276: YI SYLLABLE HUOX*/ + RTUNI_ALPHA, /* U+00a277: YI SYLLABLE HUO*/ + RTUNI_ALPHA, /* U+00a278: YI SYLLABLE HUOP*/ + RTUNI_ALPHA, /* U+00a279: YI SYLLABLE HOT*/ + RTUNI_ALPHA, /* U+00a27a: YI SYLLABLE HOX*/ + RTUNI_ALPHA, /* U+00a27b: YI SYLLABLE HO*/ + RTUNI_ALPHA, /* U+00a27c: YI SYLLABLE HOP*/ + RTUNI_ALPHA, /* U+00a27d: YI SYLLABLE HEX*/ + RTUNI_ALPHA, /* U+00a27e: YI SYLLABLE HE*/ + RTUNI_ALPHA, /* U+00a27f: YI SYLLABLE HEP*/ + RTUNI_ALPHA, /* U+00a280: YI SYLLABLE WAT*/ + RTUNI_ALPHA, /* U+00a281: YI SYLLABLE WAX*/ + RTUNI_ALPHA, /* U+00a282: YI SYLLABLE WA*/ + RTUNI_ALPHA, /* U+00a283: YI SYLLABLE WAP*/ + RTUNI_ALPHA, /* U+00a284: YI SYLLABLE WUOX*/ + RTUNI_ALPHA, /* U+00a285: YI SYLLABLE WUO*/ + RTUNI_ALPHA, /* U+00a286: YI SYLLABLE WUOP*/ + RTUNI_ALPHA, /* U+00a287: YI SYLLABLE WOX*/ + RTUNI_ALPHA, /* U+00a288: YI SYLLABLE WO*/ + RTUNI_ALPHA, /* U+00a289: YI SYLLABLE WOP*/ + RTUNI_ALPHA, /* U+00a28a: YI SYLLABLE WEX*/ + RTUNI_ALPHA, /* U+00a28b: YI SYLLABLE WE*/ + RTUNI_ALPHA, /* U+00a28c: YI SYLLABLE WEP*/ + RTUNI_ALPHA, /* U+00a28d: YI SYLLABLE ZIT*/ + RTUNI_ALPHA, /* U+00a28e: YI SYLLABLE ZIX*/ + RTUNI_ALPHA, /* U+00a28f: YI SYLLABLE ZI*/ + RTUNI_ALPHA, /* U+00a290: YI SYLLABLE ZIP*/ + RTUNI_ALPHA, /* U+00a291: YI SYLLABLE ZIEX*/ + RTUNI_ALPHA, /* U+00a292: YI SYLLABLE ZIE*/ + RTUNI_ALPHA, /* U+00a293: YI SYLLABLE ZIEP*/ + RTUNI_ALPHA, /* U+00a294: YI SYLLABLE ZAT*/ + RTUNI_ALPHA, /* U+00a295: YI SYLLABLE ZAX*/ + RTUNI_ALPHA, /* U+00a296: YI SYLLABLE ZA*/ + RTUNI_ALPHA, /* U+00a297: YI SYLLABLE ZAP*/ + RTUNI_ALPHA, /* U+00a298: YI SYLLABLE ZUOX*/ + RTUNI_ALPHA, /* U+00a299: YI SYLLABLE ZUO*/ + RTUNI_ALPHA, /* U+00a29a: YI SYLLABLE ZUOP*/ + RTUNI_ALPHA, /* U+00a29b: YI SYLLABLE ZOT*/ + RTUNI_ALPHA, /* U+00a29c: YI SYLLABLE ZOX*/ + RTUNI_ALPHA, /* U+00a29d: YI SYLLABLE ZO*/ + RTUNI_ALPHA, /* U+00a29e: YI SYLLABLE ZOP*/ + RTUNI_ALPHA, /* U+00a29f: YI SYLLABLE ZEX*/ + RTUNI_ALPHA, /* U+00a2a0: YI SYLLABLE ZE*/ + RTUNI_ALPHA, /* U+00a2a1: YI SYLLABLE ZEP*/ + RTUNI_ALPHA, /* U+00a2a2: YI SYLLABLE ZUT*/ + RTUNI_ALPHA, /* U+00a2a3: YI SYLLABLE ZUX*/ + RTUNI_ALPHA, /* U+00a2a4: YI SYLLABLE ZU*/ + RTUNI_ALPHA, /* U+00a2a5: YI SYLLABLE ZUP*/ + RTUNI_ALPHA, /* U+00a2a6: YI SYLLABLE ZURX*/ + RTUNI_ALPHA, /* U+00a2a7: YI SYLLABLE ZUR*/ + RTUNI_ALPHA, /* U+00a2a8: YI SYLLABLE ZYT*/ + RTUNI_ALPHA, /* U+00a2a9: YI SYLLABLE ZYX*/ + RTUNI_ALPHA, /* U+00a2aa: YI SYLLABLE ZY*/ + RTUNI_ALPHA, /* U+00a2ab: YI SYLLABLE ZYP*/ + RTUNI_ALPHA, /* U+00a2ac: YI SYLLABLE ZYRX*/ + RTUNI_ALPHA, /* U+00a2ad: YI SYLLABLE ZYR*/ + RTUNI_ALPHA, /* U+00a2ae: YI SYLLABLE CIT*/ + RTUNI_ALPHA, /* U+00a2af: YI SYLLABLE CIX*/ + RTUNI_ALPHA, /* U+00a2b0: YI SYLLABLE CI*/ + RTUNI_ALPHA, /* U+00a2b1: YI SYLLABLE CIP*/ + RTUNI_ALPHA, /* U+00a2b2: YI SYLLABLE CIET*/ + RTUNI_ALPHA, /* U+00a2b3: YI SYLLABLE CIEX*/ + RTUNI_ALPHA, /* U+00a2b4: YI SYLLABLE CIE*/ + RTUNI_ALPHA, /* U+00a2b5: YI SYLLABLE CIEP*/ + RTUNI_ALPHA, /* U+00a2b6: YI SYLLABLE CAT*/ + RTUNI_ALPHA, /* U+00a2b7: YI SYLLABLE CAX*/ + RTUNI_ALPHA, /* U+00a2b8: YI SYLLABLE CA*/ + RTUNI_ALPHA, /* U+00a2b9: YI SYLLABLE CAP*/ + RTUNI_ALPHA, /* U+00a2ba: YI SYLLABLE CUOX*/ + RTUNI_ALPHA, /* U+00a2bb: YI SYLLABLE CUO*/ + RTUNI_ALPHA, /* U+00a2bc: YI SYLLABLE CUOP*/ + RTUNI_ALPHA, /* U+00a2bd: YI SYLLABLE COT*/ + RTUNI_ALPHA, /* U+00a2be: YI SYLLABLE COX*/ + RTUNI_ALPHA, /* U+00a2bf: YI SYLLABLE CO*/ + RTUNI_ALPHA, /* U+00a2c0: YI SYLLABLE COP*/ + RTUNI_ALPHA, /* U+00a2c1: YI SYLLABLE CEX*/ + RTUNI_ALPHA, /* U+00a2c2: YI SYLLABLE CE*/ + RTUNI_ALPHA, /* U+00a2c3: YI SYLLABLE CEP*/ + RTUNI_ALPHA, /* U+00a2c4: YI SYLLABLE CUT*/ + RTUNI_ALPHA, /* U+00a2c5: YI SYLLABLE CUX*/ + RTUNI_ALPHA, /* U+00a2c6: YI SYLLABLE CU*/ + RTUNI_ALPHA, /* U+00a2c7: YI SYLLABLE CUP*/ + RTUNI_ALPHA, /* U+00a2c8: YI SYLLABLE CURX*/ + RTUNI_ALPHA, /* U+00a2c9: YI SYLLABLE CUR*/ + RTUNI_ALPHA, /* U+00a2ca: YI SYLLABLE CYT*/ + RTUNI_ALPHA, /* U+00a2cb: YI SYLLABLE CYX*/ + RTUNI_ALPHA, /* U+00a2cc: YI SYLLABLE CY*/ + RTUNI_ALPHA, /* U+00a2cd: YI SYLLABLE CYP*/ + RTUNI_ALPHA, /* U+00a2ce: YI SYLLABLE CYRX*/ + RTUNI_ALPHA, /* U+00a2cf: YI SYLLABLE CYR*/ + RTUNI_ALPHA, /* U+00a2d0: YI SYLLABLE ZZIT*/ + RTUNI_ALPHA, /* U+00a2d1: YI SYLLABLE ZZIX*/ + RTUNI_ALPHA, /* U+00a2d2: YI SYLLABLE ZZI*/ + RTUNI_ALPHA, /* U+00a2d3: YI SYLLABLE ZZIP*/ + RTUNI_ALPHA, /* U+00a2d4: YI SYLLABLE ZZIET*/ + RTUNI_ALPHA, /* U+00a2d5: YI SYLLABLE ZZIEX*/ + RTUNI_ALPHA, /* U+00a2d6: YI SYLLABLE ZZIE*/ + RTUNI_ALPHA, /* U+00a2d7: YI SYLLABLE ZZIEP*/ + RTUNI_ALPHA, /* U+00a2d8: YI SYLLABLE ZZAT*/ + RTUNI_ALPHA, /* U+00a2d9: YI SYLLABLE ZZAX*/ + RTUNI_ALPHA, /* U+00a2da: YI SYLLABLE ZZA*/ + RTUNI_ALPHA, /* U+00a2db: YI SYLLABLE ZZAP*/ + RTUNI_ALPHA, /* U+00a2dc: YI SYLLABLE ZZOX*/ + RTUNI_ALPHA, /* U+00a2dd: YI SYLLABLE ZZO*/ + RTUNI_ALPHA, /* U+00a2de: YI SYLLABLE ZZOP*/ + RTUNI_ALPHA, /* U+00a2df: YI SYLLABLE ZZEX*/ + RTUNI_ALPHA, /* U+00a2e0: YI SYLLABLE ZZE*/ + RTUNI_ALPHA, /* U+00a2e1: YI SYLLABLE ZZEP*/ + RTUNI_ALPHA, /* U+00a2e2: YI SYLLABLE ZZUX*/ + RTUNI_ALPHA, /* U+00a2e3: YI SYLLABLE ZZU*/ + RTUNI_ALPHA, /* U+00a2e4: YI SYLLABLE ZZUP*/ + RTUNI_ALPHA, /* U+00a2e5: YI SYLLABLE ZZURX*/ + RTUNI_ALPHA, /* U+00a2e6: YI SYLLABLE ZZUR*/ + RTUNI_ALPHA, /* U+00a2e7: YI SYLLABLE ZZYT*/ + RTUNI_ALPHA, /* U+00a2e8: YI SYLLABLE ZZYX*/ + RTUNI_ALPHA, /* U+00a2e9: YI SYLLABLE ZZY*/ + RTUNI_ALPHA, /* U+00a2ea: YI SYLLABLE ZZYP*/ + RTUNI_ALPHA, /* U+00a2eb: YI SYLLABLE ZZYRX*/ + RTUNI_ALPHA, /* U+00a2ec: YI SYLLABLE ZZYR*/ + RTUNI_ALPHA, /* U+00a2ed: YI SYLLABLE NZIT*/ + RTUNI_ALPHA, /* U+00a2ee: YI SYLLABLE NZIX*/ + RTUNI_ALPHA, /* U+00a2ef: YI SYLLABLE NZI*/ + RTUNI_ALPHA, /* U+00a2f0: YI SYLLABLE NZIP*/ + RTUNI_ALPHA, /* U+00a2f1: YI SYLLABLE NZIEX*/ + RTUNI_ALPHA, /* U+00a2f2: YI SYLLABLE NZIE*/ + RTUNI_ALPHA, /* U+00a2f3: YI SYLLABLE NZIEP*/ + RTUNI_ALPHA, /* U+00a2f4: YI SYLLABLE NZAT*/ + RTUNI_ALPHA, /* U+00a2f5: YI SYLLABLE NZAX*/ + RTUNI_ALPHA, /* U+00a2f6: YI SYLLABLE NZA*/ + RTUNI_ALPHA, /* U+00a2f7: YI SYLLABLE NZAP*/ + RTUNI_ALPHA, /* U+00a2f8: YI SYLLABLE NZUOX*/ + RTUNI_ALPHA, /* U+00a2f9: YI SYLLABLE NZUO*/ + RTUNI_ALPHA, /* U+00a2fa: YI SYLLABLE NZOX*/ + RTUNI_ALPHA, /* U+00a2fb: YI SYLLABLE NZOP*/ + RTUNI_ALPHA, /* U+00a2fc: YI SYLLABLE NZEX*/ + RTUNI_ALPHA, /* U+00a2fd: YI SYLLABLE NZE*/ + RTUNI_ALPHA, /* U+00a2fe: YI SYLLABLE NZUX*/ + RTUNI_ALPHA, /* U+00a2ff: YI SYLLABLE NZU*/ + RTUNI_ALPHA, /* U+00a300: YI SYLLABLE NZUP*/ + RTUNI_ALPHA, /* U+00a301: YI SYLLABLE NZURX*/ + RTUNI_ALPHA, /* U+00a302: YI SYLLABLE NZUR*/ + RTUNI_ALPHA, /* U+00a303: YI SYLLABLE NZYT*/ + RTUNI_ALPHA, /* U+00a304: YI SYLLABLE NZYX*/ + RTUNI_ALPHA, /* U+00a305: YI SYLLABLE NZY*/ + RTUNI_ALPHA, /* U+00a306: YI SYLLABLE NZYP*/ + RTUNI_ALPHA, /* U+00a307: YI SYLLABLE NZYRX*/ + RTUNI_ALPHA, /* U+00a308: YI SYLLABLE NZYR*/ + RTUNI_ALPHA, /* U+00a309: YI SYLLABLE SIT*/ + RTUNI_ALPHA, /* U+00a30a: YI SYLLABLE SIX*/ + RTUNI_ALPHA, /* U+00a30b: YI SYLLABLE SI*/ + RTUNI_ALPHA, /* U+00a30c: YI SYLLABLE SIP*/ + RTUNI_ALPHA, /* U+00a30d: YI SYLLABLE SIEX*/ + RTUNI_ALPHA, /* U+00a30e: YI SYLLABLE SIE*/ + RTUNI_ALPHA, /* U+00a30f: YI SYLLABLE SIEP*/ + RTUNI_ALPHA, /* U+00a310: YI SYLLABLE SAT*/ + RTUNI_ALPHA, /* U+00a311: YI SYLLABLE SAX*/ + RTUNI_ALPHA, /* U+00a312: YI SYLLABLE SA*/ + RTUNI_ALPHA, /* U+00a313: YI SYLLABLE SAP*/ + RTUNI_ALPHA, /* U+00a314: YI SYLLABLE SUOX*/ + RTUNI_ALPHA, /* U+00a315: YI SYLLABLE SUO*/ + RTUNI_ALPHA, /* U+00a316: YI SYLLABLE SUOP*/ + RTUNI_ALPHA, /* U+00a317: YI SYLLABLE SOT*/ + RTUNI_ALPHA, /* U+00a318: YI SYLLABLE SOX*/ + RTUNI_ALPHA, /* U+00a319: YI SYLLABLE SO*/ + RTUNI_ALPHA, /* U+00a31a: YI SYLLABLE SOP*/ + RTUNI_ALPHA, /* U+00a31b: YI SYLLABLE SEX*/ + RTUNI_ALPHA, /* U+00a31c: YI SYLLABLE SE*/ + RTUNI_ALPHA, /* U+00a31d: YI SYLLABLE SEP*/ + RTUNI_ALPHA, /* U+00a31e: YI SYLLABLE SUT*/ + RTUNI_ALPHA, /* U+00a31f: YI SYLLABLE SUX*/ + RTUNI_ALPHA, /* U+00a320: YI SYLLABLE SU*/ + RTUNI_ALPHA, /* U+00a321: YI SYLLABLE SUP*/ + RTUNI_ALPHA, /* U+00a322: YI SYLLABLE SURX*/ + RTUNI_ALPHA, /* U+00a323: YI SYLLABLE SUR*/ + RTUNI_ALPHA, /* U+00a324: YI SYLLABLE SYT*/ + RTUNI_ALPHA, /* U+00a325: YI SYLLABLE SYX*/ + RTUNI_ALPHA, /* U+00a326: YI SYLLABLE SY*/ + RTUNI_ALPHA, /* U+00a327: YI SYLLABLE SYP*/ + RTUNI_ALPHA, /* U+00a328: YI SYLLABLE SYRX*/ + RTUNI_ALPHA, /* U+00a329: YI SYLLABLE SYR*/ + RTUNI_ALPHA, /* U+00a32a: YI SYLLABLE SSIT*/ + RTUNI_ALPHA, /* U+00a32b: YI SYLLABLE SSIX*/ + RTUNI_ALPHA, /* U+00a32c: YI SYLLABLE SSI*/ + RTUNI_ALPHA, /* U+00a32d: YI SYLLABLE SSIP*/ + RTUNI_ALPHA, /* U+00a32e: YI SYLLABLE SSIEX*/ + RTUNI_ALPHA, /* U+00a32f: YI SYLLABLE SSIE*/ + RTUNI_ALPHA, /* U+00a330: YI SYLLABLE SSIEP*/ + RTUNI_ALPHA, /* U+00a331: YI SYLLABLE SSAT*/ + RTUNI_ALPHA, /* U+00a332: YI SYLLABLE SSAX*/ + RTUNI_ALPHA, /* U+00a333: YI SYLLABLE SSA*/ + RTUNI_ALPHA, /* U+00a334: YI SYLLABLE SSAP*/ + RTUNI_ALPHA, /* U+00a335: YI SYLLABLE SSOT*/ + RTUNI_ALPHA, /* U+00a336: YI SYLLABLE SSOX*/ + RTUNI_ALPHA, /* U+00a337: YI SYLLABLE SSO*/ + RTUNI_ALPHA, /* U+00a338: YI SYLLABLE SSOP*/ + RTUNI_ALPHA, /* U+00a339: YI SYLLABLE SSEX*/ + RTUNI_ALPHA, /* U+00a33a: YI SYLLABLE SSE*/ + RTUNI_ALPHA, /* U+00a33b: YI SYLLABLE SSEP*/ + RTUNI_ALPHA, /* U+00a33c: YI SYLLABLE SSUT*/ + RTUNI_ALPHA, /* U+00a33d: YI SYLLABLE SSUX*/ + RTUNI_ALPHA, /* U+00a33e: YI SYLLABLE SSU*/ + RTUNI_ALPHA, /* U+00a33f: YI SYLLABLE SSUP*/ + RTUNI_ALPHA, /* U+00a340: YI SYLLABLE SSYT*/ + RTUNI_ALPHA, /* U+00a341: YI SYLLABLE SSYX*/ + RTUNI_ALPHA, /* U+00a342: YI SYLLABLE SSY*/ + RTUNI_ALPHA, /* U+00a343: YI SYLLABLE SSYP*/ + RTUNI_ALPHA, /* U+00a344: YI SYLLABLE SSYRX*/ + RTUNI_ALPHA, /* U+00a345: YI SYLLABLE SSYR*/ + RTUNI_ALPHA, /* U+00a346: YI SYLLABLE ZHAT*/ + RTUNI_ALPHA, /* U+00a347: YI SYLLABLE ZHAX*/ + RTUNI_ALPHA, /* U+00a348: YI SYLLABLE ZHA*/ + RTUNI_ALPHA, /* U+00a349: YI SYLLABLE ZHAP*/ + RTUNI_ALPHA, /* U+00a34a: YI SYLLABLE ZHUOX*/ + RTUNI_ALPHA, /* U+00a34b: YI SYLLABLE ZHUO*/ + RTUNI_ALPHA, /* U+00a34c: YI SYLLABLE ZHUOP*/ + RTUNI_ALPHA, /* U+00a34d: YI SYLLABLE ZHOT*/ + RTUNI_ALPHA, /* U+00a34e: YI SYLLABLE ZHOX*/ + RTUNI_ALPHA, /* U+00a34f: YI SYLLABLE ZHO*/ + RTUNI_ALPHA, /* U+00a350: YI SYLLABLE ZHOP*/ + RTUNI_ALPHA, /* U+00a351: YI SYLLABLE ZHET*/ + RTUNI_ALPHA, /* U+00a352: YI SYLLABLE ZHEX*/ + RTUNI_ALPHA, /* U+00a353: YI SYLLABLE ZHE*/ + RTUNI_ALPHA, /* U+00a354: YI SYLLABLE ZHEP*/ + RTUNI_ALPHA, /* U+00a355: YI SYLLABLE ZHUT*/ + RTUNI_ALPHA, /* U+00a356: YI SYLLABLE ZHUX*/ + RTUNI_ALPHA, /* U+00a357: YI SYLLABLE ZHU*/ + RTUNI_ALPHA, /* U+00a358: YI SYLLABLE ZHUP*/ + RTUNI_ALPHA, /* U+00a359: YI SYLLABLE ZHURX*/ + RTUNI_ALPHA, /* U+00a35a: YI SYLLABLE ZHUR*/ + RTUNI_ALPHA, /* U+00a35b: YI SYLLABLE ZHYT*/ + RTUNI_ALPHA, /* U+00a35c: YI SYLLABLE ZHYX*/ + RTUNI_ALPHA, /* U+00a35d: YI SYLLABLE ZHY*/ + RTUNI_ALPHA, /* U+00a35e: YI SYLLABLE ZHYP*/ + RTUNI_ALPHA, /* U+00a35f: YI SYLLABLE ZHYRX*/ + RTUNI_ALPHA, /* U+00a360: YI SYLLABLE ZHYR*/ + RTUNI_ALPHA, /* U+00a361: YI SYLLABLE CHAT*/ + RTUNI_ALPHA, /* U+00a362: YI SYLLABLE CHAX*/ + RTUNI_ALPHA, /* U+00a363: YI SYLLABLE CHA*/ + RTUNI_ALPHA, /* U+00a364: YI SYLLABLE CHAP*/ + RTUNI_ALPHA, /* U+00a365: YI SYLLABLE CHUOT*/ + RTUNI_ALPHA, /* U+00a366: YI SYLLABLE CHUOX*/ + RTUNI_ALPHA, /* U+00a367: YI SYLLABLE CHUO*/ + RTUNI_ALPHA, /* U+00a368: YI SYLLABLE CHUOP*/ + RTUNI_ALPHA, /* U+00a369: YI SYLLABLE CHOT*/ + RTUNI_ALPHA, /* U+00a36a: YI SYLLABLE CHOX*/ + RTUNI_ALPHA, /* U+00a36b: YI SYLLABLE CHO*/ + RTUNI_ALPHA, /* U+00a36c: YI SYLLABLE CHOP*/ + RTUNI_ALPHA, /* U+00a36d: YI SYLLABLE CHET*/ + RTUNI_ALPHA, /* U+00a36e: YI SYLLABLE CHEX*/ + RTUNI_ALPHA, /* U+00a36f: YI SYLLABLE CHE*/ + RTUNI_ALPHA, /* U+00a370: YI SYLLABLE CHEP*/ + RTUNI_ALPHA, /* U+00a371: YI SYLLABLE CHUX*/ + RTUNI_ALPHA, /* U+00a372: YI SYLLABLE CHU*/ + RTUNI_ALPHA, /* U+00a373: YI SYLLABLE CHUP*/ + RTUNI_ALPHA, /* U+00a374: YI SYLLABLE CHURX*/ + RTUNI_ALPHA, /* U+00a375: YI SYLLABLE CHUR*/ + RTUNI_ALPHA, /* U+00a376: YI SYLLABLE CHYT*/ + RTUNI_ALPHA, /* U+00a377: YI SYLLABLE CHYX*/ + RTUNI_ALPHA, /* U+00a378: YI SYLLABLE CHY*/ + RTUNI_ALPHA, /* U+00a379: YI SYLLABLE CHYP*/ + RTUNI_ALPHA, /* U+00a37a: YI SYLLABLE CHYRX*/ + RTUNI_ALPHA, /* U+00a37b: YI SYLLABLE CHYR*/ + RTUNI_ALPHA, /* U+00a37c: YI SYLLABLE RRAX*/ + RTUNI_ALPHA, /* U+00a37d: YI SYLLABLE RRA*/ + RTUNI_ALPHA, /* U+00a37e: YI SYLLABLE RRUOX*/ + RTUNI_ALPHA, /* U+00a37f: YI SYLLABLE RRUO*/ + RTUNI_ALPHA, /* U+00a380: YI SYLLABLE RROT*/ + RTUNI_ALPHA, /* U+00a381: YI SYLLABLE RROX*/ + RTUNI_ALPHA, /* U+00a382: YI SYLLABLE RRO*/ + RTUNI_ALPHA, /* U+00a383: YI SYLLABLE RROP*/ + RTUNI_ALPHA, /* U+00a384: YI SYLLABLE RRET*/ + RTUNI_ALPHA, /* U+00a385: YI SYLLABLE RREX*/ + RTUNI_ALPHA, /* U+00a386: YI SYLLABLE RRE*/ + RTUNI_ALPHA, /* U+00a387: YI SYLLABLE RREP*/ + RTUNI_ALPHA, /* U+00a388: YI SYLLABLE RRUT*/ + RTUNI_ALPHA, /* U+00a389: YI SYLLABLE RRUX*/ + RTUNI_ALPHA, /* U+00a38a: YI SYLLABLE RRU*/ + RTUNI_ALPHA, /* U+00a38b: YI SYLLABLE RRUP*/ + RTUNI_ALPHA, /* U+00a38c: YI SYLLABLE RRURX*/ + RTUNI_ALPHA, /* U+00a38d: YI SYLLABLE RRUR*/ + RTUNI_ALPHA, /* U+00a38e: YI SYLLABLE RRYT*/ + RTUNI_ALPHA, /* U+00a38f: YI SYLLABLE RRYX*/ + RTUNI_ALPHA, /* U+00a390: YI SYLLABLE RRY*/ + RTUNI_ALPHA, /* U+00a391: YI SYLLABLE RRYP*/ + RTUNI_ALPHA, /* U+00a392: YI SYLLABLE RRYRX*/ + RTUNI_ALPHA, /* U+00a393: YI SYLLABLE RRYR*/ + RTUNI_ALPHA, /* U+00a394: YI SYLLABLE NRAT*/ + RTUNI_ALPHA, /* U+00a395: YI SYLLABLE NRAX*/ + RTUNI_ALPHA, /* U+00a396: YI SYLLABLE NRA*/ + RTUNI_ALPHA, /* U+00a397: YI SYLLABLE NRAP*/ + RTUNI_ALPHA, /* U+00a398: YI SYLLABLE NROX*/ + RTUNI_ALPHA, /* U+00a399: YI SYLLABLE NRO*/ + RTUNI_ALPHA, /* U+00a39a: YI SYLLABLE NROP*/ + RTUNI_ALPHA, /* U+00a39b: YI SYLLABLE NRET*/ + RTUNI_ALPHA, /* U+00a39c: YI SYLLABLE NREX*/ + RTUNI_ALPHA, /* U+00a39d: YI SYLLABLE NRE*/ + RTUNI_ALPHA, /* U+00a39e: YI SYLLABLE NREP*/ + RTUNI_ALPHA, /* U+00a39f: YI SYLLABLE NRUT*/ + RTUNI_ALPHA, /* U+00a3a0: YI SYLLABLE NRUX*/ + RTUNI_ALPHA, /* U+00a3a1: YI SYLLABLE NRU*/ + RTUNI_ALPHA, /* U+00a3a2: YI SYLLABLE NRUP*/ + RTUNI_ALPHA, /* U+00a3a3: YI SYLLABLE NRURX*/ + RTUNI_ALPHA, /* U+00a3a4: YI SYLLABLE NRUR*/ + RTUNI_ALPHA, /* U+00a3a5: YI SYLLABLE NRYT*/ + RTUNI_ALPHA, /* U+00a3a6: YI SYLLABLE NRYX*/ + RTUNI_ALPHA, /* U+00a3a7: YI SYLLABLE NRY*/ + RTUNI_ALPHA, /* U+00a3a8: YI SYLLABLE NRYP*/ + RTUNI_ALPHA, /* U+00a3a9: YI SYLLABLE NRYRX*/ + RTUNI_ALPHA, /* U+00a3aa: YI SYLLABLE NRYR*/ + RTUNI_ALPHA, /* U+00a3ab: YI SYLLABLE SHAT*/ + RTUNI_ALPHA, /* U+00a3ac: YI SYLLABLE SHAX*/ + RTUNI_ALPHA, /* U+00a3ad: YI SYLLABLE SHA*/ + RTUNI_ALPHA, /* U+00a3ae: YI SYLLABLE SHAP*/ + RTUNI_ALPHA, /* U+00a3af: YI SYLLABLE SHUOX*/ + RTUNI_ALPHA, /* U+00a3b0: YI SYLLABLE SHUO*/ + RTUNI_ALPHA, /* U+00a3b1: YI SYLLABLE SHUOP*/ + RTUNI_ALPHA, /* U+00a3b2: YI SYLLABLE SHOT*/ + RTUNI_ALPHA, /* U+00a3b3: YI SYLLABLE SHOX*/ + RTUNI_ALPHA, /* U+00a3b4: YI SYLLABLE SHO*/ + RTUNI_ALPHA, /* U+00a3b5: YI SYLLABLE SHOP*/ + RTUNI_ALPHA, /* U+00a3b6: YI SYLLABLE SHET*/ + RTUNI_ALPHA, /* U+00a3b7: YI SYLLABLE SHEX*/ + RTUNI_ALPHA, /* U+00a3b8: YI SYLLABLE SHE*/ + RTUNI_ALPHA, /* U+00a3b9: YI SYLLABLE SHEP*/ + RTUNI_ALPHA, /* U+00a3ba: YI SYLLABLE SHUT*/ + RTUNI_ALPHA, /* U+00a3bb: YI SYLLABLE SHUX*/ + RTUNI_ALPHA, /* U+00a3bc: YI SYLLABLE SHU*/ + RTUNI_ALPHA, /* U+00a3bd: YI SYLLABLE SHUP*/ + RTUNI_ALPHA, /* U+00a3be: YI SYLLABLE SHURX*/ + RTUNI_ALPHA, /* U+00a3bf: YI SYLLABLE SHUR*/ + RTUNI_ALPHA, /* U+00a3c0: YI SYLLABLE SHYT*/ + RTUNI_ALPHA, /* U+00a3c1: YI SYLLABLE SHYX*/ + RTUNI_ALPHA, /* U+00a3c2: YI SYLLABLE SHY*/ + RTUNI_ALPHA, /* U+00a3c3: YI SYLLABLE SHYP*/ + RTUNI_ALPHA, /* U+00a3c4: YI SYLLABLE SHYRX*/ + RTUNI_ALPHA, /* U+00a3c5: YI SYLLABLE SHYR*/ + RTUNI_ALPHA, /* U+00a3c6: YI SYLLABLE RAT*/ + RTUNI_ALPHA, /* U+00a3c7: YI SYLLABLE RAX*/ + RTUNI_ALPHA, /* U+00a3c8: YI SYLLABLE RA*/ + RTUNI_ALPHA, /* U+00a3c9: YI SYLLABLE RAP*/ + RTUNI_ALPHA, /* U+00a3ca: YI SYLLABLE RUOX*/ + RTUNI_ALPHA, /* U+00a3cb: YI SYLLABLE RUO*/ + RTUNI_ALPHA, /* U+00a3cc: YI SYLLABLE RUOP*/ + RTUNI_ALPHA, /* U+00a3cd: YI SYLLABLE ROT*/ + RTUNI_ALPHA, /* U+00a3ce: YI SYLLABLE ROX*/ + RTUNI_ALPHA, /* U+00a3cf: YI SYLLABLE RO*/ + RTUNI_ALPHA, /* U+00a3d0: YI SYLLABLE ROP*/ + RTUNI_ALPHA, /* U+00a3d1: YI SYLLABLE REX*/ + RTUNI_ALPHA, /* U+00a3d2: YI SYLLABLE RE*/ + RTUNI_ALPHA, /* U+00a3d3: YI SYLLABLE REP*/ + RTUNI_ALPHA, /* U+00a3d4: YI SYLLABLE RUT*/ + RTUNI_ALPHA, /* U+00a3d5: YI SYLLABLE RUX*/ + RTUNI_ALPHA, /* U+00a3d6: YI SYLLABLE RU*/ + RTUNI_ALPHA, /* U+00a3d7: YI SYLLABLE RUP*/ + RTUNI_ALPHA, /* U+00a3d8: YI SYLLABLE RURX*/ + RTUNI_ALPHA, /* U+00a3d9: YI SYLLABLE RUR*/ + RTUNI_ALPHA, /* U+00a3da: YI SYLLABLE RYT*/ + RTUNI_ALPHA, /* U+00a3db: YI SYLLABLE RYX*/ + RTUNI_ALPHA, /* U+00a3dc: YI SYLLABLE RY*/ + RTUNI_ALPHA, /* U+00a3dd: YI SYLLABLE RYP*/ + RTUNI_ALPHA, /* U+00a3de: YI SYLLABLE RYRX*/ + RTUNI_ALPHA, /* U+00a3df: YI SYLLABLE RYR*/ + RTUNI_ALPHA, /* U+00a3e0: YI SYLLABLE JIT*/ + RTUNI_ALPHA, /* U+00a3e1: YI SYLLABLE JIX*/ + RTUNI_ALPHA, /* U+00a3e2: YI SYLLABLE JI*/ + RTUNI_ALPHA, /* U+00a3e3: YI SYLLABLE JIP*/ + RTUNI_ALPHA, /* U+00a3e4: YI SYLLABLE JIET*/ + RTUNI_ALPHA, /* U+00a3e5: YI SYLLABLE JIEX*/ + RTUNI_ALPHA, /* U+00a3e6: YI SYLLABLE JIE*/ + RTUNI_ALPHA, /* U+00a3e7: YI SYLLABLE JIEP*/ + RTUNI_ALPHA, /* U+00a3e8: YI SYLLABLE JUOT*/ + RTUNI_ALPHA, /* U+00a3e9: YI SYLLABLE JUOX*/ + RTUNI_ALPHA, /* U+00a3ea: YI SYLLABLE JUO*/ + RTUNI_ALPHA, /* U+00a3eb: YI SYLLABLE JUOP*/ + RTUNI_ALPHA, /* U+00a3ec: YI SYLLABLE JOT*/ + RTUNI_ALPHA, /* U+00a3ed: YI SYLLABLE JOX*/ + RTUNI_ALPHA, /* U+00a3ee: YI SYLLABLE JO*/ + RTUNI_ALPHA, /* U+00a3ef: YI SYLLABLE JOP*/ + RTUNI_ALPHA, /* U+00a3f0: YI SYLLABLE JUT*/ + RTUNI_ALPHA, /* U+00a3f1: YI SYLLABLE JUX*/ + RTUNI_ALPHA, /* U+00a3f2: YI SYLLABLE JU*/ + RTUNI_ALPHA, /* U+00a3f3: YI SYLLABLE JUP*/ + RTUNI_ALPHA, /* U+00a3f4: YI SYLLABLE JURX*/ + RTUNI_ALPHA, /* U+00a3f5: YI SYLLABLE JUR*/ + RTUNI_ALPHA, /* U+00a3f6: YI SYLLABLE JYT*/ + RTUNI_ALPHA, /* U+00a3f7: YI SYLLABLE JYX*/ + RTUNI_ALPHA, /* U+00a3f8: YI SYLLABLE JY*/ + RTUNI_ALPHA, /* U+00a3f9: YI SYLLABLE JYP*/ + RTUNI_ALPHA, /* U+00a3fa: YI SYLLABLE JYRX*/ + RTUNI_ALPHA, /* U+00a3fb: YI SYLLABLE JYR*/ + RTUNI_ALPHA, /* U+00a3fc: YI SYLLABLE QIT*/ + RTUNI_ALPHA, /* U+00a3fd: YI SYLLABLE QIX*/ + RTUNI_ALPHA, /* U+00a3fe: YI SYLLABLE QI*/ + RTUNI_ALPHA, /* U+00a3ff: YI SYLLABLE QIP*/ + RTUNI_ALPHA, /* U+00a400: YI SYLLABLE QIET*/ + RTUNI_ALPHA, /* U+00a401: YI SYLLABLE QIEX*/ + RTUNI_ALPHA, /* U+00a402: YI SYLLABLE QIE*/ + RTUNI_ALPHA, /* U+00a403: YI SYLLABLE QIEP*/ + RTUNI_ALPHA, /* U+00a404: YI SYLLABLE QUOT*/ + RTUNI_ALPHA, /* U+00a405: YI SYLLABLE QUOX*/ + RTUNI_ALPHA, /* U+00a406: YI SYLLABLE QUO*/ + RTUNI_ALPHA, /* U+00a407: YI SYLLABLE QUOP*/ + RTUNI_ALPHA, /* U+00a408: YI SYLLABLE QOT*/ + RTUNI_ALPHA, /* U+00a409: YI SYLLABLE QOX*/ + RTUNI_ALPHA, /* U+00a40a: YI SYLLABLE QO*/ + RTUNI_ALPHA, /* U+00a40b: YI SYLLABLE QOP*/ + RTUNI_ALPHA, /* U+00a40c: YI SYLLABLE QUT*/ + RTUNI_ALPHA, /* U+00a40d: YI SYLLABLE QUX*/ + RTUNI_ALPHA, /* U+00a40e: YI SYLLABLE QU*/ + RTUNI_ALPHA, /* U+00a40f: YI SYLLABLE QUP*/ + RTUNI_ALPHA, /* U+00a410: YI SYLLABLE QURX*/ + RTUNI_ALPHA, /* U+00a411: YI SYLLABLE QUR*/ + RTUNI_ALPHA, /* U+00a412: YI SYLLABLE QYT*/ + RTUNI_ALPHA, /* U+00a413: YI SYLLABLE QYX*/ + RTUNI_ALPHA, /* U+00a414: YI SYLLABLE QY*/ + RTUNI_ALPHA, /* U+00a415: YI SYLLABLE QYP*/ + RTUNI_ALPHA, /* U+00a416: YI SYLLABLE QYRX*/ + RTUNI_ALPHA, /* U+00a417: YI SYLLABLE QYR*/ + RTUNI_ALPHA, /* U+00a418: YI SYLLABLE JJIT*/ + RTUNI_ALPHA, /* U+00a419: YI SYLLABLE JJIX*/ + RTUNI_ALPHA, /* U+00a41a: YI SYLLABLE JJI*/ + RTUNI_ALPHA, /* U+00a41b: YI SYLLABLE JJIP*/ + RTUNI_ALPHA, /* U+00a41c: YI SYLLABLE JJIET*/ + RTUNI_ALPHA, /* U+00a41d: YI SYLLABLE JJIEX*/ + RTUNI_ALPHA, /* U+00a41e: YI SYLLABLE JJIE*/ + RTUNI_ALPHA, /* U+00a41f: YI SYLLABLE JJIEP*/ + RTUNI_ALPHA, /* U+00a420: YI SYLLABLE JJUOX*/ + RTUNI_ALPHA, /* U+00a421: YI SYLLABLE JJUO*/ + RTUNI_ALPHA, /* U+00a422: YI SYLLABLE JJUOP*/ + RTUNI_ALPHA, /* U+00a423: YI SYLLABLE JJOT*/ + RTUNI_ALPHA, /* U+00a424: YI SYLLABLE JJOX*/ + RTUNI_ALPHA, /* U+00a425: YI SYLLABLE JJO*/ + RTUNI_ALPHA, /* U+00a426: YI SYLLABLE JJOP*/ + RTUNI_ALPHA, /* U+00a427: YI SYLLABLE JJUT*/ + RTUNI_ALPHA, /* U+00a428: YI SYLLABLE JJUX*/ + RTUNI_ALPHA, /* U+00a429: YI SYLLABLE JJU*/ + RTUNI_ALPHA, /* U+00a42a: YI SYLLABLE JJUP*/ + RTUNI_ALPHA, /* U+00a42b: YI SYLLABLE JJURX*/ + RTUNI_ALPHA, /* U+00a42c: YI SYLLABLE JJUR*/ + RTUNI_ALPHA, /* U+00a42d: YI SYLLABLE JJYT*/ + RTUNI_ALPHA, /* U+00a42e: YI SYLLABLE JJYX*/ + RTUNI_ALPHA, /* U+00a42f: YI SYLLABLE JJY*/ + RTUNI_ALPHA, /* U+00a430: YI SYLLABLE JJYP*/ + RTUNI_ALPHA, /* U+00a431: YI SYLLABLE NJIT*/ + RTUNI_ALPHA, /* U+00a432: YI SYLLABLE NJIX*/ + RTUNI_ALPHA, /* U+00a433: YI SYLLABLE NJI*/ + RTUNI_ALPHA, /* U+00a434: YI SYLLABLE NJIP*/ + RTUNI_ALPHA, /* U+00a435: YI SYLLABLE NJIET*/ + RTUNI_ALPHA, /* U+00a436: YI SYLLABLE NJIEX*/ + RTUNI_ALPHA, /* U+00a437: YI SYLLABLE NJIE*/ + RTUNI_ALPHA, /* U+00a438: YI SYLLABLE NJIEP*/ + RTUNI_ALPHA, /* U+00a439: YI SYLLABLE NJUOX*/ + RTUNI_ALPHA, /* U+00a43a: YI SYLLABLE NJUO*/ + RTUNI_ALPHA, /* U+00a43b: YI SYLLABLE NJOT*/ + RTUNI_ALPHA, /* U+00a43c: YI SYLLABLE NJOX*/ + RTUNI_ALPHA, /* U+00a43d: YI SYLLABLE NJO*/ + RTUNI_ALPHA, /* U+00a43e: YI SYLLABLE NJOP*/ + RTUNI_ALPHA, /* U+00a43f: YI SYLLABLE NJUX*/ + RTUNI_ALPHA, /* U+00a440: YI SYLLABLE NJU*/ + RTUNI_ALPHA, /* U+00a441: YI SYLLABLE NJUP*/ + RTUNI_ALPHA, /* U+00a442: YI SYLLABLE NJURX*/ + RTUNI_ALPHA, /* U+00a443: YI SYLLABLE NJUR*/ + RTUNI_ALPHA, /* U+00a444: YI SYLLABLE NJYT*/ + RTUNI_ALPHA, /* U+00a445: YI SYLLABLE NJYX*/ + RTUNI_ALPHA, /* U+00a446: YI SYLLABLE NJY*/ + RTUNI_ALPHA, /* U+00a447: YI SYLLABLE NJYP*/ + RTUNI_ALPHA, /* U+00a448: YI SYLLABLE NJYRX*/ + RTUNI_ALPHA, /* U+00a449: YI SYLLABLE NJYR*/ + RTUNI_ALPHA, /* U+00a44a: YI SYLLABLE NYIT*/ + RTUNI_ALPHA, /* U+00a44b: YI SYLLABLE NYIX*/ + RTUNI_ALPHA, /* U+00a44c: YI SYLLABLE NYI*/ + RTUNI_ALPHA, /* U+00a44d: YI SYLLABLE NYIP*/ + RTUNI_ALPHA, /* U+00a44e: YI SYLLABLE NYIET*/ + RTUNI_ALPHA, /* U+00a44f: YI SYLLABLE NYIEX*/ + RTUNI_ALPHA, /* U+00a450: YI SYLLABLE NYIE*/ + RTUNI_ALPHA, /* U+00a451: YI SYLLABLE NYIEP*/ + RTUNI_ALPHA, /* U+00a452: YI SYLLABLE NYUOX*/ + RTUNI_ALPHA, /* U+00a453: YI SYLLABLE NYUO*/ + RTUNI_ALPHA, /* U+00a454: YI SYLLABLE NYUOP*/ + RTUNI_ALPHA, /* U+00a455: YI SYLLABLE NYOT*/ + RTUNI_ALPHA, /* U+00a456: YI SYLLABLE NYOX*/ + RTUNI_ALPHA, /* U+00a457: YI SYLLABLE NYO*/ + RTUNI_ALPHA, /* U+00a458: YI SYLLABLE NYOP*/ + RTUNI_ALPHA, /* U+00a459: YI SYLLABLE NYUT*/ + RTUNI_ALPHA, /* U+00a45a: YI SYLLABLE NYUX*/ + RTUNI_ALPHA, /* U+00a45b: YI SYLLABLE NYU*/ + RTUNI_ALPHA, /* U+00a45c: YI SYLLABLE NYUP*/ + RTUNI_ALPHA, /* U+00a45d: YI SYLLABLE XIT*/ + RTUNI_ALPHA, /* U+00a45e: YI SYLLABLE XIX*/ + RTUNI_ALPHA, /* U+00a45f: YI SYLLABLE XI*/ + RTUNI_ALPHA, /* U+00a460: YI SYLLABLE XIP*/ + RTUNI_ALPHA, /* U+00a461: YI SYLLABLE XIET*/ + RTUNI_ALPHA, /* U+00a462: YI SYLLABLE XIEX*/ + RTUNI_ALPHA, /* U+00a463: YI SYLLABLE XIE*/ + RTUNI_ALPHA, /* U+00a464: YI SYLLABLE XIEP*/ + RTUNI_ALPHA, /* U+00a465: YI SYLLABLE XUOX*/ + RTUNI_ALPHA, /* U+00a466: YI SYLLABLE XUO*/ + RTUNI_ALPHA, /* U+00a467: YI SYLLABLE XOT*/ + RTUNI_ALPHA, /* U+00a468: YI SYLLABLE XOX*/ + RTUNI_ALPHA, /* U+00a469: YI SYLLABLE XO*/ + RTUNI_ALPHA, /* U+00a46a: YI SYLLABLE XOP*/ + RTUNI_ALPHA, /* U+00a46b: YI SYLLABLE XYT*/ + RTUNI_ALPHA, /* U+00a46c: YI SYLLABLE XYX*/ + RTUNI_ALPHA, /* U+00a46d: YI SYLLABLE XY*/ + RTUNI_ALPHA, /* U+00a46e: YI SYLLABLE XYP*/ + RTUNI_ALPHA, /* U+00a46f: YI SYLLABLE XYRX*/ + RTUNI_ALPHA, /* U+00a470: YI SYLLABLE XYR*/ + RTUNI_ALPHA, /* U+00a471: YI SYLLABLE YIT*/ + RTUNI_ALPHA, /* U+00a472: YI SYLLABLE YIX*/ + RTUNI_ALPHA, /* U+00a473: YI SYLLABLE YI*/ + RTUNI_ALPHA, /* U+00a474: YI SYLLABLE YIP*/ + RTUNI_ALPHA, /* U+00a475: YI SYLLABLE YIET*/ + RTUNI_ALPHA, /* U+00a476: YI SYLLABLE YIEX*/ + RTUNI_ALPHA, /* U+00a477: YI SYLLABLE YIE*/ + RTUNI_ALPHA, /* U+00a478: YI SYLLABLE YIEP*/ + RTUNI_ALPHA, /* U+00a479: YI SYLLABLE YUOT*/ + RTUNI_ALPHA, /* U+00a47a: YI SYLLABLE YUOX*/ + RTUNI_ALPHA, /* U+00a47b: YI SYLLABLE YUO*/ + RTUNI_ALPHA, /* U+00a47c: YI SYLLABLE YUOP*/ + RTUNI_ALPHA, /* U+00a47d: YI SYLLABLE YOT*/ + RTUNI_ALPHA, /* U+00a47e: YI SYLLABLE YOX*/ + RTUNI_ALPHA, /* U+00a47f: YI SYLLABLE YO*/ + RTUNI_ALPHA, /* U+00a480: YI SYLLABLE YOP*/ + RTUNI_ALPHA, /* U+00a481: YI SYLLABLE YUT*/ + RTUNI_ALPHA, /* U+00a482: YI SYLLABLE YUX*/ + RTUNI_ALPHA, /* U+00a483: YI SYLLABLE YU*/ + RTUNI_ALPHA, /* U+00a484: YI SYLLABLE YUP*/ + RTUNI_ALPHA, /* U+00a485: YI SYLLABLE YURX*/ + RTUNI_ALPHA, /* U+00a486: YI SYLLABLE YUR*/ + RTUNI_ALPHA, /* U+00a487: YI SYLLABLE YYT*/ + RTUNI_ALPHA, /* U+00a488: YI SYLLABLE YYX*/ + RTUNI_ALPHA, /* U+00a489: YI SYLLABLE YY*/ + RTUNI_ALPHA, /* U+00a48a: YI SYLLABLE YYP*/ + RTUNI_ALPHA, /* U+00a48b: YI SYLLABLE YYRX*/ + RTUNI_ALPHA, /* U+00a48c: YI SYLLABLE YYR*/ + 0, /* U+00a48d: */ + 0, /* U+00a48e: */ + 0, /* U+00a48f: */ + 0, /* U+00a490: YI RADICAL QOT*/ + 0, /* U+00a491: YI RADICAL LI*/ + 0, /* U+00a492: YI RADICAL KIT*/ + 0, /* U+00a493: YI RADICAL NYIP*/ + 0, /* U+00a494: YI RADICAL CYP*/ + 0, /* U+00a495: YI RADICAL SSI*/ + 0, /* U+00a496: YI RADICAL GGOP*/ + 0, /* U+00a497: YI RADICAL GEP*/ + 0, /* U+00a498: YI RADICAL MI*/ + 0, /* U+00a499: YI RADICAL HXIT*/ + 0, /* U+00a49a: YI RADICAL LYR*/ + 0, /* U+00a49b: YI RADICAL BBUT*/ + 0, /* U+00a49c: YI RADICAL MOP*/ + 0, /* U+00a49d: YI RADICAL YO*/ + 0, /* U+00a49e: YI RADICAL PUT*/ + 0, /* U+00a49f: YI RADICAL HXUO*/ + 0, /* U+00a4a0: YI RADICAL TAT*/ + 0, /* U+00a4a1: YI RADICAL GA*/ + 0, /* U+00a4a2: YI RADICAL ZUP*/ + 0, /* U+00a4a3: YI RADICAL CYT*/ + 0, /* U+00a4a4: YI RADICAL DDUR*/ + 0, /* U+00a4a5: YI RADICAL BUR*/ + 0, /* U+00a4a6: YI RADICAL GGUO*/ + 0, /* U+00a4a7: YI RADICAL NYOP*/ + 0, /* U+00a4a8: YI RADICAL TU*/ + 0, /* U+00a4a9: YI RADICAL OP*/ + 0, /* U+00a4aa: YI RADICAL JJUT*/ + 0, /* U+00a4ab: YI RADICAL ZOT*/ + 0, /* U+00a4ac: YI RADICAL PYT*/ + 0, /* U+00a4ad: YI RADICAL HMO*/ + 0, /* U+00a4ae: YI RADICAL YIT*/ + 0, /* U+00a4af: YI RADICAL VUR*/ + 0, /* U+00a4b0: YI RADICAL SHY*/ + 0, /* U+00a4b1: YI RADICAL VEP*/ + 0, /* U+00a4b2: YI RADICAL ZA*/ + 0, /* U+00a4b3: YI RADICAL JO*/ + 0, /* U+00a4b4: YI RADICAL NZUP*/ + 0, /* U+00a4b5: YI RADICAL JJY*/ + 0, /* U+00a4b6: YI RADICAL GOT*/ + 0, /* U+00a4b7: YI RADICAL JJIE*/ + 0, /* U+00a4b8: YI RADICAL WO*/ + 0, /* U+00a4b9: YI RADICAL DU*/ + 0, /* U+00a4ba: YI RADICAL SHUR*/ + 0, /* U+00a4bb: YI RADICAL LIE*/ + 0, /* U+00a4bc: YI RADICAL CY*/ + 0, /* U+00a4bd: YI RADICAL CUOP*/ + 0, /* U+00a4be: YI RADICAL CIP*/ + 0, /* U+00a4bf: YI RADICAL HXOP*/ + 0, /* U+00a4c0: YI RADICAL SHAT*/ + 0, /* U+00a4c1: YI RADICAL ZUR*/ + 0, /* U+00a4c2: YI RADICAL SHOP*/ + 0, /* U+00a4c3: YI RADICAL CHE*/ + 0, /* U+00a4c4: YI RADICAL ZZIET*/ + 0, /* U+00a4c5: YI RADICAL NBIE*/ + 0, /* U+00a4c6: YI RADICAL KE*/ + 0, /* U+00a4c7: */ + 0, /* U+00a4c8: */ + 0, /* U+00a4c9: */ + 0, /* U+00a4ca: */ + 0, /* U+00a4cb: */ + 0, /* U+00a4cc: */ + 0, /* U+00a4cd: */ + 0, /* U+00a4ce: */ + 0, /* U+00a4cf: */ + RTUNI_ALPHA, /* U+00a4d0: LISU LETTER BA*/ + RTUNI_ALPHA, /* U+00a4d1: LISU LETTER PA*/ + RTUNI_ALPHA, /* U+00a4d2: LISU LETTER PHA*/ + RTUNI_ALPHA, /* U+00a4d3: LISU LETTER DA*/ + RTUNI_ALPHA, /* U+00a4d4: LISU LETTER TA*/ + RTUNI_ALPHA, /* U+00a4d5: LISU LETTER THA*/ + RTUNI_ALPHA, /* U+00a4d6: LISU LETTER GA*/ + RTUNI_ALPHA, /* U+00a4d7: LISU LETTER KA*/ + RTUNI_ALPHA, /* U+00a4d8: LISU LETTER KHA*/ + RTUNI_ALPHA, /* U+00a4d9: LISU LETTER JA*/ + RTUNI_ALPHA, /* U+00a4da: LISU LETTER CA*/ + RTUNI_ALPHA, /* U+00a4db: LISU LETTER CHA*/ + RTUNI_ALPHA, /* U+00a4dc: LISU LETTER DZA*/ + RTUNI_ALPHA, /* U+00a4dd: LISU LETTER TSA*/ + RTUNI_ALPHA, /* U+00a4de: LISU LETTER TSHA*/ + RTUNI_ALPHA, /* U+00a4df: LISU LETTER MA*/ + RTUNI_ALPHA, /* U+00a4e0: LISU LETTER NA*/ + RTUNI_ALPHA, /* U+00a4e1: LISU LETTER LA*/ + RTUNI_ALPHA, /* U+00a4e2: LISU LETTER SA*/ + RTUNI_ALPHA, /* U+00a4e3: LISU LETTER ZHA*/ + RTUNI_ALPHA, /* U+00a4e4: LISU LETTER ZA*/ + RTUNI_ALPHA, /* U+00a4e5: LISU LETTER NGA*/ + RTUNI_ALPHA, /* U+00a4e6: LISU LETTER HA*/ + RTUNI_ALPHA, /* U+00a4e7: LISU LETTER XA*/ + RTUNI_ALPHA, /* U+00a4e8: LISU LETTER HHA*/ + RTUNI_ALPHA, /* U+00a4e9: LISU LETTER FA*/ + RTUNI_ALPHA, /* U+00a4ea: LISU LETTER WA*/ + RTUNI_ALPHA, /* U+00a4eb: LISU LETTER SHA*/ + RTUNI_ALPHA, /* U+00a4ec: LISU LETTER YA*/ + RTUNI_ALPHA, /* U+00a4ed: LISU LETTER GHA*/ + RTUNI_ALPHA, /* U+00a4ee: LISU LETTER A*/ + RTUNI_ALPHA, /* U+00a4ef: LISU LETTER AE*/ + RTUNI_ALPHA, /* U+00a4f0: LISU LETTER E*/ + RTUNI_ALPHA, /* U+00a4f1: LISU LETTER EU*/ + RTUNI_ALPHA, /* U+00a4f2: LISU LETTER I*/ + RTUNI_ALPHA, /* U+00a4f3: LISU LETTER O*/ + RTUNI_ALPHA, /* U+00a4f4: LISU LETTER U*/ + RTUNI_ALPHA, /* U+00a4f5: LISU LETTER UE*/ + RTUNI_ALPHA, /* U+00a4f6: LISU LETTER UH*/ + RTUNI_ALPHA, /* U+00a4f7: LISU LETTER OE*/ + RTUNI_ALPHA, /* U+00a4f8: LISU LETTER TONE MYA TI*/ + RTUNI_ALPHA, /* U+00a4f9: LISU LETTER TONE NA PO*/ + RTUNI_ALPHA, /* U+00a4fa: LISU LETTER TONE MYA CYA*/ + RTUNI_ALPHA, /* U+00a4fb: LISU LETTER TONE MYA BO*/ + RTUNI_ALPHA, /* U+00a4fc: LISU LETTER TONE MYA NA*/ + RTUNI_ALPHA, /* U+00a4fd: LISU LETTER TONE MYA JEU*/ + 0, /* U+00a4fe: LISU PUNCTUATION COMMA*/ + 0, /* U+00a4ff: LISU PUNCTUATION FULL STOP*/ + RTUNI_ALPHA, /* U+00a500: VAI SYLLABLE EE*/ + RTUNI_ALPHA, /* U+00a501: VAI SYLLABLE EEN*/ + RTUNI_ALPHA, /* U+00a502: VAI SYLLABLE HEE*/ + RTUNI_ALPHA, /* U+00a503: VAI SYLLABLE WEE*/ + RTUNI_ALPHA, /* U+00a504: VAI SYLLABLE WEEN*/ + RTUNI_ALPHA, /* U+00a505: VAI SYLLABLE PEE*/ + RTUNI_ALPHA, /* U+00a506: VAI SYLLABLE BHEE*/ + RTUNI_ALPHA, /* U+00a507: VAI SYLLABLE BEE*/ + RTUNI_ALPHA, /* U+00a508: VAI SYLLABLE MBEE*/ + RTUNI_ALPHA, /* U+00a509: VAI SYLLABLE KPEE*/ + RTUNI_ALPHA, /* U+00a50a: VAI SYLLABLE MGBEE*/ + RTUNI_ALPHA, /* U+00a50b: VAI SYLLABLE GBEE*/ + RTUNI_ALPHA, /* U+00a50c: VAI SYLLABLE FEE*/ + RTUNI_ALPHA, /* U+00a50d: VAI SYLLABLE VEE*/ + RTUNI_ALPHA, /* U+00a50e: VAI SYLLABLE TEE*/ + RTUNI_ALPHA, /* U+00a50f: VAI SYLLABLE THEE*/ + RTUNI_ALPHA, /* U+00a510: VAI SYLLABLE DHEE*/ + RTUNI_ALPHA, /* U+00a511: VAI SYLLABLE DHHEE*/ + RTUNI_ALPHA, /* U+00a512: VAI SYLLABLE LEE*/ + RTUNI_ALPHA, /* U+00a513: VAI SYLLABLE REE*/ + RTUNI_ALPHA, /* U+00a514: VAI SYLLABLE DEE*/ + RTUNI_ALPHA, /* U+00a515: VAI SYLLABLE NDEE*/ + RTUNI_ALPHA, /* U+00a516: VAI SYLLABLE SEE*/ + RTUNI_ALPHA, /* U+00a517: VAI SYLLABLE SHEE*/ + RTUNI_ALPHA, /* U+00a518: VAI SYLLABLE ZEE*/ + RTUNI_ALPHA, /* U+00a519: VAI SYLLABLE ZHEE*/ + RTUNI_ALPHA, /* U+00a51a: VAI SYLLABLE CEE*/ + RTUNI_ALPHA, /* U+00a51b: VAI SYLLABLE JEE*/ + RTUNI_ALPHA, /* U+00a51c: VAI SYLLABLE NJEE*/ + RTUNI_ALPHA, /* U+00a51d: VAI SYLLABLE YEE*/ + RTUNI_ALPHA, /* U+00a51e: VAI SYLLABLE KEE*/ + RTUNI_ALPHA, /* U+00a51f: VAI SYLLABLE NGGEE*/ + RTUNI_ALPHA, /* U+00a520: VAI SYLLABLE GEE*/ + RTUNI_ALPHA, /* U+00a521: VAI SYLLABLE MEE*/ + RTUNI_ALPHA, /* U+00a522: VAI SYLLABLE NEE*/ + RTUNI_ALPHA, /* U+00a523: VAI SYLLABLE NYEE*/ + RTUNI_ALPHA, /* U+00a524: VAI SYLLABLE I*/ + RTUNI_ALPHA, /* U+00a525: VAI SYLLABLE IN*/ + RTUNI_ALPHA, /* U+00a526: VAI SYLLABLE HI*/ + RTUNI_ALPHA, /* U+00a527: VAI SYLLABLE HIN*/ + RTUNI_ALPHA, /* U+00a528: VAI SYLLABLE WI*/ + RTUNI_ALPHA, /* U+00a529: VAI SYLLABLE WIN*/ + RTUNI_ALPHA, /* U+00a52a: VAI SYLLABLE PI*/ + RTUNI_ALPHA, /* U+00a52b: VAI SYLLABLE BHI*/ + RTUNI_ALPHA, /* U+00a52c: VAI SYLLABLE BI*/ + RTUNI_ALPHA, /* U+00a52d: VAI SYLLABLE MBI*/ + RTUNI_ALPHA, /* U+00a52e: VAI SYLLABLE KPI*/ + RTUNI_ALPHA, /* U+00a52f: VAI SYLLABLE MGBI*/ + RTUNI_ALPHA, /* U+00a530: VAI SYLLABLE GBI*/ + RTUNI_ALPHA, /* U+00a531: VAI SYLLABLE FI*/ + RTUNI_ALPHA, /* U+00a532: VAI SYLLABLE VI*/ + RTUNI_ALPHA, /* U+00a533: VAI SYLLABLE TI*/ + RTUNI_ALPHA, /* U+00a534: VAI SYLLABLE THI*/ + RTUNI_ALPHA, /* U+00a535: VAI SYLLABLE DHI*/ + RTUNI_ALPHA, /* U+00a536: VAI SYLLABLE DHHI*/ + RTUNI_ALPHA, /* U+00a537: VAI SYLLABLE LI*/ + RTUNI_ALPHA, /* U+00a538: VAI SYLLABLE RI*/ + RTUNI_ALPHA, /* U+00a539: VAI SYLLABLE DI*/ + RTUNI_ALPHA, /* U+00a53a: VAI SYLLABLE NDI*/ + RTUNI_ALPHA, /* U+00a53b: VAI SYLLABLE SI*/ + RTUNI_ALPHA, /* U+00a53c: VAI SYLLABLE SHI*/ + RTUNI_ALPHA, /* U+00a53d: VAI SYLLABLE ZI*/ + RTUNI_ALPHA, /* U+00a53e: VAI SYLLABLE ZHI*/ + RTUNI_ALPHA, /* U+00a53f: VAI SYLLABLE CI*/ + RTUNI_ALPHA, /* U+00a540: VAI SYLLABLE JI*/ + RTUNI_ALPHA, /* U+00a541: VAI SYLLABLE NJI*/ + RTUNI_ALPHA, /* U+00a542: VAI SYLLABLE YI*/ + RTUNI_ALPHA, /* U+00a543: VAI SYLLABLE KI*/ + RTUNI_ALPHA, /* U+00a544: VAI SYLLABLE NGGI*/ + RTUNI_ALPHA, /* U+00a545: VAI SYLLABLE GI*/ + RTUNI_ALPHA, /* U+00a546: VAI SYLLABLE MI*/ + RTUNI_ALPHA, /* U+00a547: VAI SYLLABLE NI*/ + RTUNI_ALPHA, /* U+00a548: VAI SYLLABLE NYI*/ + RTUNI_ALPHA, /* U+00a549: VAI SYLLABLE A*/ + RTUNI_ALPHA, /* U+00a54a: VAI SYLLABLE AN*/ + RTUNI_ALPHA, /* U+00a54b: VAI SYLLABLE NGAN*/ + RTUNI_ALPHA, /* U+00a54c: VAI SYLLABLE HA*/ + RTUNI_ALPHA, /* U+00a54d: VAI SYLLABLE HAN*/ + RTUNI_ALPHA, /* U+00a54e: VAI SYLLABLE WA*/ + RTUNI_ALPHA, /* U+00a54f: VAI SYLLABLE WAN*/ + RTUNI_ALPHA, /* U+00a550: VAI SYLLABLE PA*/ + RTUNI_ALPHA, /* U+00a551: VAI SYLLABLE BHA*/ + RTUNI_ALPHA, /* U+00a552: VAI SYLLABLE BA*/ + RTUNI_ALPHA, /* U+00a553: VAI SYLLABLE MBA*/ + RTUNI_ALPHA, /* U+00a554: VAI SYLLABLE KPA*/ + RTUNI_ALPHA, /* U+00a555: VAI SYLLABLE KPAN*/ + RTUNI_ALPHA, /* U+00a556: VAI SYLLABLE MGBA*/ + RTUNI_ALPHA, /* U+00a557: VAI SYLLABLE GBA*/ + RTUNI_ALPHA, /* U+00a558: VAI SYLLABLE FA*/ + RTUNI_ALPHA, /* U+00a559: VAI SYLLABLE VA*/ + RTUNI_ALPHA, /* U+00a55a: VAI SYLLABLE TA*/ + RTUNI_ALPHA, /* U+00a55b: VAI SYLLABLE THA*/ + RTUNI_ALPHA, /* U+00a55c: VAI SYLLABLE DHA*/ + RTUNI_ALPHA, /* U+00a55d: VAI SYLLABLE DHHA*/ + RTUNI_ALPHA, /* U+00a55e: VAI SYLLABLE LA*/ + RTUNI_ALPHA, /* U+00a55f: VAI SYLLABLE RA*/ + RTUNI_ALPHA, /* U+00a560: VAI SYLLABLE DA*/ + RTUNI_ALPHA, /* U+00a561: VAI SYLLABLE NDA*/ + RTUNI_ALPHA, /* U+00a562: VAI SYLLABLE SA*/ + RTUNI_ALPHA, /* U+00a563: VAI SYLLABLE SHA*/ + RTUNI_ALPHA, /* U+00a564: VAI SYLLABLE ZA*/ + RTUNI_ALPHA, /* U+00a565: VAI SYLLABLE ZHA*/ + RTUNI_ALPHA, /* U+00a566: VAI SYLLABLE CA*/ + RTUNI_ALPHA, /* U+00a567: VAI SYLLABLE JA*/ + RTUNI_ALPHA, /* U+00a568: VAI SYLLABLE NJA*/ + RTUNI_ALPHA, /* U+00a569: VAI SYLLABLE YA*/ + RTUNI_ALPHA, /* U+00a56a: VAI SYLLABLE KA*/ + RTUNI_ALPHA, /* U+00a56b: VAI SYLLABLE KAN*/ + RTUNI_ALPHA, /* U+00a56c: VAI SYLLABLE NGGA*/ + RTUNI_ALPHA, /* U+00a56d: VAI SYLLABLE GA*/ + RTUNI_ALPHA, /* U+00a56e: VAI SYLLABLE MA*/ + RTUNI_ALPHA, /* U+00a56f: VAI SYLLABLE NA*/ + RTUNI_ALPHA, /* U+00a570: VAI SYLLABLE NYA*/ + RTUNI_ALPHA, /* U+00a571: VAI SYLLABLE OO*/ + RTUNI_ALPHA, /* U+00a572: VAI SYLLABLE OON*/ + RTUNI_ALPHA, /* U+00a573: VAI SYLLABLE HOO*/ + RTUNI_ALPHA, /* U+00a574: VAI SYLLABLE WOO*/ + RTUNI_ALPHA, /* U+00a575: VAI SYLLABLE WOON*/ + RTUNI_ALPHA, /* U+00a576: VAI SYLLABLE POO*/ + RTUNI_ALPHA, /* U+00a577: VAI SYLLABLE BHOO*/ + RTUNI_ALPHA, /* U+00a578: VAI SYLLABLE BOO*/ + RTUNI_ALPHA, /* U+00a579: VAI SYLLABLE MBOO*/ + RTUNI_ALPHA, /* U+00a57a: VAI SYLLABLE KPOO*/ + RTUNI_ALPHA, /* U+00a57b: VAI SYLLABLE MGBOO*/ + RTUNI_ALPHA, /* U+00a57c: VAI SYLLABLE GBOO*/ + RTUNI_ALPHA, /* U+00a57d: VAI SYLLABLE FOO*/ + RTUNI_ALPHA, /* U+00a57e: VAI SYLLABLE VOO*/ + RTUNI_ALPHA, /* U+00a57f: VAI SYLLABLE TOO*/ + RTUNI_ALPHA, /* U+00a580: VAI SYLLABLE THOO*/ + RTUNI_ALPHA, /* U+00a581: VAI SYLLABLE DHOO*/ + RTUNI_ALPHA, /* U+00a582: VAI SYLLABLE DHHOO*/ + RTUNI_ALPHA, /* U+00a583: VAI SYLLABLE LOO*/ + RTUNI_ALPHA, /* U+00a584: VAI SYLLABLE ROO*/ + RTUNI_ALPHA, /* U+00a585: VAI SYLLABLE DOO*/ + RTUNI_ALPHA, /* U+00a586: VAI SYLLABLE NDOO*/ + RTUNI_ALPHA, /* U+00a587: VAI SYLLABLE SOO*/ + RTUNI_ALPHA, /* U+00a588: VAI SYLLABLE SHOO*/ + RTUNI_ALPHA, /* U+00a589: VAI SYLLABLE ZOO*/ + RTUNI_ALPHA, /* U+00a58a: VAI SYLLABLE ZHOO*/ + RTUNI_ALPHA, /* U+00a58b: VAI SYLLABLE COO*/ + RTUNI_ALPHA, /* U+00a58c: VAI SYLLABLE JOO*/ + RTUNI_ALPHA, /* U+00a58d: VAI SYLLABLE NJOO*/ + RTUNI_ALPHA, /* U+00a58e: VAI SYLLABLE YOO*/ + RTUNI_ALPHA, /* U+00a58f: VAI SYLLABLE KOO*/ + RTUNI_ALPHA, /* U+00a590: VAI SYLLABLE NGGOO*/ + RTUNI_ALPHA, /* U+00a591: VAI SYLLABLE GOO*/ + RTUNI_ALPHA, /* U+00a592: VAI SYLLABLE MOO*/ + RTUNI_ALPHA, /* U+00a593: VAI SYLLABLE NOO*/ + RTUNI_ALPHA, /* U+00a594: VAI SYLLABLE NYOO*/ + RTUNI_ALPHA, /* U+00a595: VAI SYLLABLE U*/ + RTUNI_ALPHA, /* U+00a596: VAI SYLLABLE UN*/ + RTUNI_ALPHA, /* U+00a597: VAI SYLLABLE HU*/ + RTUNI_ALPHA, /* U+00a598: VAI SYLLABLE HUN*/ + RTUNI_ALPHA, /* U+00a599: VAI SYLLABLE WU*/ + RTUNI_ALPHA, /* U+00a59a: VAI SYLLABLE WUN*/ + RTUNI_ALPHA, /* U+00a59b: VAI SYLLABLE PU*/ + RTUNI_ALPHA, /* U+00a59c: VAI SYLLABLE BHU*/ + RTUNI_ALPHA, /* U+00a59d: VAI SYLLABLE BU*/ + RTUNI_ALPHA, /* U+00a59e: VAI SYLLABLE MBU*/ + RTUNI_ALPHA, /* U+00a59f: VAI SYLLABLE KPU*/ + RTUNI_ALPHA, /* U+00a5a0: VAI SYLLABLE MGBU*/ + RTUNI_ALPHA, /* U+00a5a1: VAI SYLLABLE GBU*/ + RTUNI_ALPHA, /* U+00a5a2: VAI SYLLABLE FU*/ + RTUNI_ALPHA, /* U+00a5a3: VAI SYLLABLE VU*/ + RTUNI_ALPHA, /* U+00a5a4: VAI SYLLABLE TU*/ + RTUNI_ALPHA, /* U+00a5a5: VAI SYLLABLE THU*/ + RTUNI_ALPHA, /* U+00a5a6: VAI SYLLABLE DHU*/ + RTUNI_ALPHA, /* U+00a5a7: VAI SYLLABLE DHHU*/ + RTUNI_ALPHA, /* U+00a5a8: VAI SYLLABLE LU*/ + RTUNI_ALPHA, /* U+00a5a9: VAI SYLLABLE RU*/ + RTUNI_ALPHA, /* U+00a5aa: VAI SYLLABLE DU*/ + RTUNI_ALPHA, /* U+00a5ab: VAI SYLLABLE NDU*/ + RTUNI_ALPHA, /* U+00a5ac: VAI SYLLABLE SU*/ + RTUNI_ALPHA, /* U+00a5ad: VAI SYLLABLE SHU*/ + RTUNI_ALPHA, /* U+00a5ae: VAI SYLLABLE ZU*/ + RTUNI_ALPHA, /* U+00a5af: VAI SYLLABLE ZHU*/ + RTUNI_ALPHA, /* U+00a5b0: VAI SYLLABLE CU*/ + RTUNI_ALPHA, /* U+00a5b1: VAI SYLLABLE JU*/ + RTUNI_ALPHA, /* U+00a5b2: VAI SYLLABLE NJU*/ + RTUNI_ALPHA, /* U+00a5b3: VAI SYLLABLE YU*/ + RTUNI_ALPHA, /* U+00a5b4: VAI SYLLABLE KU*/ + RTUNI_ALPHA, /* U+00a5b5: VAI SYLLABLE NGGU*/ + RTUNI_ALPHA, /* U+00a5b6: VAI SYLLABLE GU*/ + RTUNI_ALPHA, /* U+00a5b7: VAI SYLLABLE MU*/ + RTUNI_ALPHA, /* U+00a5b8: VAI SYLLABLE NU*/ + RTUNI_ALPHA, /* U+00a5b9: VAI SYLLABLE NYU*/ + RTUNI_ALPHA, /* U+00a5ba: VAI SYLLABLE O*/ + RTUNI_ALPHA, /* U+00a5bb: VAI SYLLABLE ON*/ + RTUNI_ALPHA, /* U+00a5bc: VAI SYLLABLE NGON*/ + RTUNI_ALPHA, /* U+00a5bd: VAI SYLLABLE HO*/ + RTUNI_ALPHA, /* U+00a5be: VAI SYLLABLE HON*/ + RTUNI_ALPHA, /* U+00a5bf: VAI SYLLABLE WO*/ + RTUNI_ALPHA, /* U+00a5c0: VAI SYLLABLE WON*/ + RTUNI_ALPHA, /* U+00a5c1: VAI SYLLABLE PO*/ + RTUNI_ALPHA, /* U+00a5c2: VAI SYLLABLE BHO*/ + RTUNI_ALPHA, /* U+00a5c3: VAI SYLLABLE BO*/ + RTUNI_ALPHA, /* U+00a5c4: VAI SYLLABLE MBO*/ + RTUNI_ALPHA, /* U+00a5c5: VAI SYLLABLE KPO*/ + RTUNI_ALPHA, /* U+00a5c6: VAI SYLLABLE MGBO*/ + RTUNI_ALPHA, /* U+00a5c7: VAI SYLLABLE GBO*/ + RTUNI_ALPHA, /* U+00a5c8: VAI SYLLABLE GBON*/ + RTUNI_ALPHA, /* U+00a5c9: VAI SYLLABLE FO*/ + RTUNI_ALPHA, /* U+00a5ca: VAI SYLLABLE VO*/ + RTUNI_ALPHA, /* U+00a5cb: VAI SYLLABLE TO*/ + RTUNI_ALPHA, /* U+00a5cc: VAI SYLLABLE THO*/ + RTUNI_ALPHA, /* U+00a5cd: VAI SYLLABLE DHO*/ + RTUNI_ALPHA, /* U+00a5ce: VAI SYLLABLE DHHO*/ + RTUNI_ALPHA, /* U+00a5cf: VAI SYLLABLE LO*/ + RTUNI_ALPHA, /* U+00a5d0: VAI SYLLABLE RO*/ + RTUNI_ALPHA, /* U+00a5d1: VAI SYLLABLE DO*/ + RTUNI_ALPHA, /* U+00a5d2: VAI SYLLABLE NDO*/ + RTUNI_ALPHA, /* U+00a5d3: VAI SYLLABLE SO*/ + RTUNI_ALPHA, /* U+00a5d4: VAI SYLLABLE SHO*/ + RTUNI_ALPHA, /* U+00a5d5: VAI SYLLABLE ZO*/ + RTUNI_ALPHA, /* U+00a5d6: VAI SYLLABLE ZHO*/ + RTUNI_ALPHA, /* U+00a5d7: VAI SYLLABLE CO*/ + RTUNI_ALPHA, /* U+00a5d8: VAI SYLLABLE JO*/ + RTUNI_ALPHA, /* U+00a5d9: VAI SYLLABLE NJO*/ + RTUNI_ALPHA, /* U+00a5da: VAI SYLLABLE YO*/ + RTUNI_ALPHA, /* U+00a5db: VAI SYLLABLE KO*/ + RTUNI_ALPHA, /* U+00a5dc: VAI SYLLABLE NGGO*/ + RTUNI_ALPHA, /* U+00a5dd: VAI SYLLABLE GO*/ + RTUNI_ALPHA, /* U+00a5de: VAI SYLLABLE MO*/ + RTUNI_ALPHA, /* U+00a5df: VAI SYLLABLE NO*/ + RTUNI_ALPHA, /* U+00a5e0: VAI SYLLABLE NYO*/ + RTUNI_ALPHA, /* U+00a5e1: VAI SYLLABLE E*/ + RTUNI_ALPHA, /* U+00a5e2: VAI SYLLABLE EN*/ + RTUNI_ALPHA, /* U+00a5e3: VAI SYLLABLE NGEN*/ + RTUNI_ALPHA, /* U+00a5e4: VAI SYLLABLE HE*/ + RTUNI_ALPHA, /* U+00a5e5: VAI SYLLABLE HEN*/ + RTUNI_ALPHA, /* U+00a5e6: VAI SYLLABLE WE*/ + RTUNI_ALPHA, /* U+00a5e7: VAI SYLLABLE WEN*/ + RTUNI_ALPHA, /* U+00a5e8: VAI SYLLABLE PE*/ + RTUNI_ALPHA, /* U+00a5e9: VAI SYLLABLE BHE*/ + RTUNI_ALPHA, /* U+00a5ea: VAI SYLLABLE BE*/ + RTUNI_ALPHA, /* U+00a5eb: VAI SYLLABLE MBE*/ + RTUNI_ALPHA, /* U+00a5ec: VAI SYLLABLE KPE*/ + RTUNI_ALPHA, /* U+00a5ed: VAI SYLLABLE KPEN*/ + RTUNI_ALPHA, /* U+00a5ee: VAI SYLLABLE MGBE*/ + RTUNI_ALPHA, /* U+00a5ef: VAI SYLLABLE GBE*/ + RTUNI_ALPHA, /* U+00a5f0: VAI SYLLABLE GBEN*/ + RTUNI_ALPHA, /* U+00a5f1: VAI SYLLABLE FE*/ + RTUNI_ALPHA, /* U+00a5f2: VAI SYLLABLE VE*/ + RTUNI_ALPHA, /* U+00a5f3: VAI SYLLABLE TE*/ + RTUNI_ALPHA, /* U+00a5f4: VAI SYLLABLE THE*/ + RTUNI_ALPHA, /* U+00a5f5: VAI SYLLABLE DHE*/ + RTUNI_ALPHA, /* U+00a5f6: VAI SYLLABLE DHHE*/ + RTUNI_ALPHA, /* U+00a5f7: VAI SYLLABLE LE*/ + RTUNI_ALPHA, /* U+00a5f8: VAI SYLLABLE RE*/ + RTUNI_ALPHA, /* U+00a5f9: VAI SYLLABLE DE*/ + RTUNI_ALPHA, /* U+00a5fa: VAI SYLLABLE NDE*/ + RTUNI_ALPHA, /* U+00a5fb: VAI SYLLABLE SE*/ + RTUNI_ALPHA, /* U+00a5fc: VAI SYLLABLE SHE*/ + RTUNI_ALPHA, /* U+00a5fd: VAI SYLLABLE ZE*/ + RTUNI_ALPHA, /* U+00a5fe: VAI SYLLABLE ZHE*/ + RTUNI_ALPHA, /* U+00a5ff: VAI SYLLABLE CE*/ + RTUNI_ALPHA, /* U+00a600: VAI SYLLABLE JE*/ + RTUNI_ALPHA, /* U+00a601: VAI SYLLABLE NJE*/ + RTUNI_ALPHA, /* U+00a602: VAI SYLLABLE YE*/ + RTUNI_ALPHA, /* U+00a603: VAI SYLLABLE KE*/ + RTUNI_ALPHA, /* U+00a604: VAI SYLLABLE NGGE*/ + RTUNI_ALPHA, /* U+00a605: VAI SYLLABLE NGGEN*/ + RTUNI_ALPHA, /* U+00a606: VAI SYLLABLE GE*/ + RTUNI_ALPHA, /* U+00a607: VAI SYLLABLE GEN*/ + RTUNI_ALPHA, /* U+00a608: VAI SYLLABLE ME*/ + RTUNI_ALPHA, /* U+00a609: VAI SYLLABLE NE*/ + RTUNI_ALPHA, /* U+00a60a: VAI SYLLABLE NYE*/ + RTUNI_ALPHA, /* U+00a60b: VAI SYLLABLE NG*/ + RTUNI_ALPHA, /* U+00a60c: VAI SYLLABLE LENGTHENER*/ + 0, /* U+00a60d: VAI COMMA*/ + 0, /* U+00a60e: VAI FULL STOP*/ + 0, /* U+00a60f: VAI QUESTION MARK*/ + RTUNI_ALPHA, /* U+00a610: VAI SYLLABLE NDOLE FA*/ + RTUNI_ALPHA, /* U+00a611: VAI SYLLABLE NDOLE KA*/ + RTUNI_ALPHA, /* U+00a612: VAI SYLLABLE NDOLE SOO*/ + RTUNI_ALPHA, /* U+00a613: VAI SYMBOL FEENG*/ + RTUNI_ALPHA, /* U+00a614: VAI SYMBOL KEENG*/ + RTUNI_ALPHA, /* U+00a615: VAI SYMBOL TING*/ + RTUNI_ALPHA, /* U+00a616: VAI SYMBOL NII*/ + RTUNI_ALPHA, /* U+00a617: VAI SYMBOL BANG*/ + RTUNI_ALPHA, /* U+00a618: VAI SYMBOL FAA*/ + RTUNI_ALPHA, /* U+00a619: VAI SYMBOL TAA*/ + RTUNI_ALPHA, /* U+00a61a: VAI SYMBOL DANG*/ + RTUNI_ALPHA, /* U+00a61b: VAI SYMBOL DOONG*/ + RTUNI_ALPHA, /* U+00a61c: VAI SYMBOL KUNG*/ + RTUNI_ALPHA, /* U+00a61d: VAI SYMBOL TONG*/ + RTUNI_ALPHA, /* U+00a61e: VAI SYMBOL DO-O*/ + RTUNI_ALPHA, /* U+00a61f: VAI SYMBOL JONG*/ + RTUNI_DDIGIT, /* U+00a620: VAI DIGIT ZERO*/ + RTUNI_DDIGIT, /* U+00a621: VAI DIGIT ONE*/ + RTUNI_DDIGIT, /* U+00a622: VAI DIGIT TWO*/ + RTUNI_DDIGIT, /* U+00a623: VAI DIGIT THREE*/ + RTUNI_DDIGIT, /* U+00a624: VAI DIGIT FOUR*/ + RTUNI_DDIGIT, /* U+00a625: VAI DIGIT FIVE*/ + RTUNI_DDIGIT, /* U+00a626: VAI DIGIT SIX*/ + RTUNI_DDIGIT, /* U+00a627: VAI DIGIT SEVEN*/ + RTUNI_DDIGIT, /* U+00a628: VAI DIGIT EIGHT*/ + RTUNI_DDIGIT, /* U+00a629: VAI DIGIT NINE*/ + RTUNI_ALPHA, /* U+00a62a: VAI SYLLABLE NDOLE MA*/ + RTUNI_ALPHA, /* U+00a62b: VAI SYLLABLE NDOLE DO*/ + 0, /* U+00a62c: */ + 0, /* U+00a62d: */ + 0, /* U+00a62e: */ + 0, /* U+00a62f: */ + 0, /* U+00a630: */ + 0, /* U+00a631: */ + 0, /* U+00a632: */ + 0, /* U+00a633: */ + 0, /* U+00a634: */ + 0, /* U+00a635: */ + 0, /* U+00a636: */ + 0, /* U+00a637: */ + 0, /* U+00a638: */ + 0, /* U+00a639: */ + 0, /* U+00a63a: */ + 0, /* U+00a63b: */ + 0, /* U+00a63c: */ + 0, /* U+00a63d: */ + 0, /* U+00a63e: */ + 0, /* U+00a63f: */ + RTUNI_ALPHA | RTUNI_UPPER, /* U+00a640: CYRILLIC CAPITAL LETTER ZEMLYA*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00a641: CYRILLIC SMALL LETTER ZEMLYA*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+00a642: CYRILLIC CAPITAL LETTER DZELO*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00a643: CYRILLIC SMALL LETTER DZELO*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+00a644: CYRILLIC CAPITAL LETTER REVERSED DZE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00a645: CYRILLIC SMALL LETTER REVERSED DZE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+00a646: CYRILLIC CAPITAL LETTER IOTA*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00a647: CYRILLIC SMALL LETTER IOTA*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+00a648: CYRILLIC CAPITAL LETTER DJERV*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00a649: CYRILLIC SMALL LETTER DJERV*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+00a64a: CYRILLIC CAPITAL LETTER MONOGRAPH UK*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00a64b: CYRILLIC SMALL LETTER MONOGRAPH UK*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+00a64c: CYRILLIC CAPITAL LETTER BROAD OMEGA*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00a64d: CYRILLIC SMALL LETTER BROAD OMEGA*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+00a64e: CYRILLIC CAPITAL LETTER NEUTRAL YER*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00a64f: CYRILLIC SMALL LETTER NEUTRAL YER*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+00a650: CYRILLIC CAPITAL LETTER YERU WITH BACK YER*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00a651: CYRILLIC SMALL LETTER YERU WITH BACK YER*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+00a652: CYRILLIC CAPITAL LETTER IOTIFIED YAT*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00a653: CYRILLIC SMALL LETTER IOTIFIED YAT*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+00a654: CYRILLIC CAPITAL LETTER REVERSED YU*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00a655: CYRILLIC SMALL LETTER REVERSED YU*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+00a656: CYRILLIC CAPITAL LETTER IOTIFIED A*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00a657: CYRILLIC SMALL LETTER IOTIFIED A*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+00a658: CYRILLIC CAPITAL LETTER CLOSED LITTLE YUS*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00a659: CYRILLIC SMALL LETTER CLOSED LITTLE YUS*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+00a65a: CYRILLIC CAPITAL LETTER BLENDED YUS*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00a65b: CYRILLIC SMALL LETTER BLENDED YUS*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+00a65c: CYRILLIC CAPITAL LETTER IOTIFIED CLOSED LITTLE YUS*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00a65d: CYRILLIC SMALL LETTER IOTIFIED CLOSED LITTLE YUS*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+00a65e: CYRILLIC CAPITAL LETTER YN*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00a65f: CYRILLIC SMALL LETTER YN*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+00a660: CYRILLIC CAPITAL LETTER REVERSED TSE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00a661: CYRILLIC SMALL LETTER REVERSED TSE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+00a662: CYRILLIC CAPITAL LETTER SOFT DE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00a663: CYRILLIC SMALL LETTER SOFT DE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+00a664: CYRILLIC CAPITAL LETTER SOFT EL*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00a665: CYRILLIC SMALL LETTER SOFT EL*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+00a666: CYRILLIC CAPITAL LETTER SOFT EM*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00a667: CYRILLIC SMALL LETTER SOFT EM*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+00a668: CYRILLIC CAPITAL LETTER MONOCULAR O*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00a669: CYRILLIC SMALL LETTER MONOCULAR O*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+00a66a: CYRILLIC CAPITAL LETTER BINOCULAR O*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00a66b: CYRILLIC SMALL LETTER BINOCULAR O*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+00a66c: CYRILLIC CAPITAL LETTER DOUBLE MONOCULAR O*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00a66d: CYRILLIC SMALL LETTER DOUBLE MONOCULAR O*/ + RTUNI_ALPHA, /* U+00a66e: CYRILLIC LETTER MULTIOCULAR O*/ + 0, /* U+00a66f: COMBINING CYRILLIC VZMET*/ + 0, /* U+00a670: COMBINING CYRILLIC TEN MILLIONS SIGN*/ + 0, /* U+00a671: COMBINING CYRILLIC HUNDRED MILLIONS SIGN*/ + 0, /* U+00a672: COMBINING CYRILLIC THOUSAND MILLIONS SIGN*/ + 0, /* U+00a673: SLAVONIC ASTERISK*/ + RTUNI_ALPHA, /* U+00a674: COMBINING CYRILLIC LETTER UKRAINIAN IE*/ + RTUNI_ALPHA, /* U+00a675: COMBINING CYRILLIC LETTER I*/ + RTUNI_ALPHA, /* U+00a676: COMBINING CYRILLIC LETTER YI*/ + RTUNI_ALPHA, /* U+00a677: COMBINING CYRILLIC LETTER U*/ + RTUNI_ALPHA, /* U+00a678: COMBINING CYRILLIC LETTER HARD SIGN*/ + RTUNI_ALPHA, /* U+00a679: COMBINING CYRILLIC LETTER YERU*/ + RTUNI_ALPHA, /* U+00a67a: COMBINING CYRILLIC LETTER SOFT SIGN*/ + RTUNI_ALPHA, /* U+00a67b: COMBINING CYRILLIC LETTER OMEGA*/ + 0, /* U+00a67c: COMBINING CYRILLIC KAVYKA*/ + 0, /* U+00a67d: COMBINING CYRILLIC PAYEROK*/ + 0, /* U+00a67e: CYRILLIC KAVYKA*/ + RTUNI_ALPHA, /* U+00a67f: CYRILLIC PAYEROK*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+00a680: CYRILLIC CAPITAL LETTER DWE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00a681: CYRILLIC SMALL LETTER DWE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+00a682: CYRILLIC CAPITAL LETTER DZWE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00a683: CYRILLIC SMALL LETTER DZWE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+00a684: CYRILLIC CAPITAL LETTER ZHWE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00a685: CYRILLIC SMALL LETTER ZHWE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+00a686: CYRILLIC CAPITAL LETTER CCHE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00a687: CYRILLIC SMALL LETTER CCHE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+00a688: CYRILLIC CAPITAL LETTER DZZE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00a689: CYRILLIC SMALL LETTER DZZE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+00a68a: CYRILLIC CAPITAL LETTER TE WITH MIDDLE HOOK*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00a68b: CYRILLIC SMALL LETTER TE WITH MIDDLE HOOK*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+00a68c: CYRILLIC CAPITAL LETTER TWE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00a68d: CYRILLIC SMALL LETTER TWE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+00a68e: CYRILLIC CAPITAL LETTER TSWE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00a68f: CYRILLIC SMALL LETTER TSWE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+00a690: CYRILLIC CAPITAL LETTER TSSE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00a691: CYRILLIC SMALL LETTER TSSE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+00a692: CYRILLIC CAPITAL LETTER TCHE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00a693: CYRILLIC SMALL LETTER TCHE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+00a694: CYRILLIC CAPITAL LETTER HWE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00a695: CYRILLIC SMALL LETTER HWE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+00a696: CYRILLIC CAPITAL LETTER SHWE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00a697: CYRILLIC SMALL LETTER SHWE*/ + 0, /* U+00a698: */ + 0, /* U+00a699: */ + 0, /* U+00a69a: */ + 0, /* U+00a69b: */ + 0, /* U+00a69c: */ + 0, /* U+00a69d: */ + 0, /* U+00a69e: */ + RTUNI_ALPHA, /* U+00a69f: COMBINING CYRILLIC LETTER IOTIFIED E*/ + RTUNI_ALPHA, /* U+00a6a0: BAMUM LETTER A*/ + RTUNI_ALPHA, /* U+00a6a1: BAMUM LETTER KA*/ + RTUNI_ALPHA, /* U+00a6a2: BAMUM LETTER U*/ + RTUNI_ALPHA, /* U+00a6a3: BAMUM LETTER KU*/ + RTUNI_ALPHA, /* U+00a6a4: BAMUM LETTER EE*/ + RTUNI_ALPHA, /* U+00a6a5: BAMUM LETTER REE*/ + RTUNI_ALPHA, /* U+00a6a6: BAMUM LETTER TAE*/ + RTUNI_ALPHA, /* U+00a6a7: BAMUM LETTER O*/ + RTUNI_ALPHA, /* U+00a6a8: BAMUM LETTER NYI*/ + RTUNI_ALPHA, /* U+00a6a9: BAMUM LETTER I*/ + RTUNI_ALPHA, /* U+00a6aa: BAMUM LETTER LA*/ + RTUNI_ALPHA, /* U+00a6ab: BAMUM LETTER PA*/ + RTUNI_ALPHA, /* U+00a6ac: BAMUM LETTER RII*/ + RTUNI_ALPHA, /* U+00a6ad: BAMUM LETTER RIEE*/ + RTUNI_ALPHA, /* U+00a6ae: BAMUM LETTER LEEEE*/ + RTUNI_ALPHA, /* U+00a6af: BAMUM LETTER MEEEE*/ + RTUNI_ALPHA, /* U+00a6b0: BAMUM LETTER TAA*/ + RTUNI_ALPHA, /* U+00a6b1: BAMUM LETTER NDAA*/ + RTUNI_ALPHA, /* U+00a6b2: BAMUM LETTER NJAEM*/ + RTUNI_ALPHA, /* U+00a6b3: BAMUM LETTER M*/ + RTUNI_ALPHA, /* U+00a6b4: BAMUM LETTER SUU*/ + RTUNI_ALPHA, /* U+00a6b5: BAMUM LETTER MU*/ + RTUNI_ALPHA, /* U+00a6b6: BAMUM LETTER SHII*/ + RTUNI_ALPHA, /* U+00a6b7: BAMUM LETTER SI*/ + RTUNI_ALPHA, /* U+00a6b8: BAMUM LETTER SHEUX*/ + RTUNI_ALPHA, /* U+00a6b9: BAMUM LETTER SEUX*/ + RTUNI_ALPHA, /* U+00a6ba: BAMUM LETTER KYEE*/ + RTUNI_ALPHA, /* U+00a6bb: BAMUM LETTER KET*/ + RTUNI_ALPHA, /* U+00a6bc: BAMUM LETTER NUAE*/ + RTUNI_ALPHA, /* U+00a6bd: BAMUM LETTER NU*/ + RTUNI_ALPHA, /* U+00a6be: BAMUM LETTER NJUAE*/ + RTUNI_ALPHA, /* U+00a6bf: BAMUM LETTER YOQ*/ + RTUNI_ALPHA, /* U+00a6c0: BAMUM LETTER SHU*/ + RTUNI_ALPHA, /* U+00a6c1: BAMUM LETTER YUQ*/ + RTUNI_ALPHA, /* U+00a6c2: BAMUM LETTER YA*/ + RTUNI_ALPHA, /* U+00a6c3: BAMUM LETTER NSHA*/ + RTUNI_ALPHA, /* U+00a6c4: BAMUM LETTER KEUX*/ + RTUNI_ALPHA, /* U+00a6c5: BAMUM LETTER PEUX*/ + RTUNI_ALPHA, /* U+00a6c6: BAMUM LETTER NJEE*/ + RTUNI_ALPHA, /* U+00a6c7: BAMUM LETTER NTEE*/ + RTUNI_ALPHA, /* U+00a6c8: BAMUM LETTER PUE*/ + RTUNI_ALPHA, /* U+00a6c9: BAMUM LETTER WUE*/ + RTUNI_ALPHA, /* U+00a6ca: BAMUM LETTER PEE*/ + RTUNI_ALPHA, /* U+00a6cb: BAMUM LETTER FEE*/ + RTUNI_ALPHA, /* U+00a6cc: BAMUM LETTER RU*/ + RTUNI_ALPHA, /* U+00a6cd: BAMUM LETTER LU*/ + RTUNI_ALPHA, /* U+00a6ce: BAMUM LETTER MI*/ + RTUNI_ALPHA, /* U+00a6cf: BAMUM LETTER NI*/ + RTUNI_ALPHA, /* U+00a6d0: BAMUM LETTER REUX*/ + RTUNI_ALPHA, /* U+00a6d1: BAMUM LETTER RAE*/ + RTUNI_ALPHA, /* U+00a6d2: BAMUM LETTER KEN*/ + RTUNI_ALPHA, /* U+00a6d3: BAMUM LETTER NGKWAEN*/ + RTUNI_ALPHA, /* U+00a6d4: BAMUM LETTER NGGA*/ + RTUNI_ALPHA, /* U+00a6d5: BAMUM LETTER NGA*/ + RTUNI_ALPHA, /* U+00a6d6: BAMUM LETTER SHO*/ + RTUNI_ALPHA, /* U+00a6d7: BAMUM LETTER PUAE*/ + RTUNI_ALPHA, /* U+00a6d8: BAMUM LETTER FU*/ + RTUNI_ALPHA, /* U+00a6d9: BAMUM LETTER FOM*/ + RTUNI_ALPHA, /* U+00a6da: BAMUM LETTER WA*/ + RTUNI_ALPHA, /* U+00a6db: BAMUM LETTER NA*/ + RTUNI_ALPHA, /* U+00a6dc: BAMUM LETTER LI*/ + RTUNI_ALPHA, /* U+00a6dd: BAMUM LETTER PI*/ + RTUNI_ALPHA, /* U+00a6de: BAMUM LETTER LOQ*/ + RTUNI_ALPHA, /* U+00a6df: BAMUM LETTER KO*/ + RTUNI_ALPHA, /* U+00a6e0: BAMUM LETTER MBEN*/ + RTUNI_ALPHA, /* U+00a6e1: BAMUM LETTER REN*/ + RTUNI_ALPHA, /* U+00a6e2: BAMUM LETTER MEN*/ + RTUNI_ALPHA, /* U+00a6e3: BAMUM LETTER MA*/ + RTUNI_ALPHA, /* U+00a6e4: BAMUM LETTER TI*/ + RTUNI_ALPHA, /* U+00a6e5: BAMUM LETTER KI*/ + RTUNI_ALPHA, /* U+00a6e6: BAMUM LETTER MO*/ + RTUNI_ALPHA, /* U+00a6e7: BAMUM LETTER MBAA*/ + RTUNI_ALPHA, /* U+00a6e8: BAMUM LETTER TET*/ + RTUNI_ALPHA, /* U+00a6e9: BAMUM LETTER KPA*/ + RTUNI_ALPHA, /* U+00a6ea: BAMUM LETTER TEN*/ + RTUNI_ALPHA, /* U+00a6eb: BAMUM LETTER NTUU*/ + RTUNI_ALPHA, /* U+00a6ec: BAMUM LETTER SAMBA*/ + RTUNI_ALPHA, /* U+00a6ed: BAMUM LETTER FAAMAE*/ + RTUNI_ALPHA, /* U+00a6ee: BAMUM LETTER KOVUU*/ + RTUNI_ALPHA, /* U+00a6ef: BAMUM LETTER KOGHOM*/ + 0, /* U+00a6f0: BAMUM COMBINING MARK KOQNDON*/ + 0, /* U+00a6f1: BAMUM COMBINING MARK TUKWENTIS*/ + 0, /* U+00a6f2: BAMUM NJAEMLI*/ + 0, /* U+00a6f3: BAMUM FULL STOP*/ + 0, /* U+00a6f4: BAMUM COLON*/ + 0, /* U+00a6f5: BAMUM COMMA*/ + 0, /* U+00a6f6: BAMUM SEMICOLON*/ + 0, /* U+00a6f7: BAMUM QUESTION MARK*/ + 0, /* U+00a6f8: */ + 0, /* U+00a6f9: */ + 0, /* U+00a6fa: */ + 0, /* U+00a6fb: */ + 0, /* U+00a6fc: */ + 0, /* U+00a6fd: */ + 0, /* U+00a6fe: */ + 0, /* U+00a6ff: */ + 0, /* U+00a700: MODIFIER LETTER CHINESE TONE YIN PING*/ + 0, /* U+00a701: MODIFIER LETTER CHINESE TONE YANG PING*/ + 0, /* U+00a702: MODIFIER LETTER CHINESE TONE YIN SHANG*/ + 0, /* U+00a703: MODIFIER LETTER CHINESE TONE YANG SHANG*/ + 0, /* U+00a704: MODIFIER LETTER CHINESE TONE YIN QU*/ + 0, /* U+00a705: MODIFIER LETTER CHINESE TONE YANG QU*/ + 0, /* U+00a706: MODIFIER LETTER CHINESE TONE YIN RU*/ + 0, /* U+00a707: MODIFIER LETTER CHINESE TONE YANG RU*/ + 0, /* U+00a708: MODIFIER LETTER EXTRA-HIGH DOTTED TONE BAR*/ + 0, /* U+00a709: MODIFIER LETTER HIGH DOTTED TONE BAR*/ + 0, /* U+00a70a: MODIFIER LETTER MID DOTTED TONE BAR*/ + 0, /* U+00a70b: MODIFIER LETTER LOW DOTTED TONE BAR*/ + 0, /* U+00a70c: MODIFIER LETTER EXTRA-LOW DOTTED TONE BAR*/ + 0, /* U+00a70d: MODIFIER LETTER EXTRA-HIGH DOTTED LEFT-STEM TONE BAR*/ + 0, /* U+00a70e: MODIFIER LETTER HIGH DOTTED LEFT-STEM TONE BAR*/ + 0, /* U+00a70f: MODIFIER LETTER MID DOTTED LEFT-STEM TONE BAR*/ + 0, /* U+00a710: MODIFIER LETTER LOW DOTTED LEFT-STEM TONE BAR*/ + 0, /* U+00a711: MODIFIER LETTER EXTRA-LOW DOTTED LEFT-STEM TONE BAR*/ + 0, /* U+00a712: MODIFIER LETTER EXTRA-HIGH LEFT-STEM TONE BAR*/ + 0, /* U+00a713: MODIFIER LETTER HIGH LEFT-STEM TONE BAR*/ + 0, /* U+00a714: MODIFIER LETTER MID LEFT-STEM TONE BAR*/ + 0, /* U+00a715: MODIFIER LETTER LOW LEFT-STEM TONE BAR*/ + 0, /* U+00a716: MODIFIER LETTER EXTRA-LOW LEFT-STEM TONE BAR*/ + RTUNI_ALPHA, /* U+00a717: MODIFIER LETTER DOT VERTICAL BAR*/ + RTUNI_ALPHA, /* U+00a718: MODIFIER LETTER DOT SLASH*/ + RTUNI_ALPHA, /* U+00a719: MODIFIER LETTER DOT HORIZONTAL BAR*/ + RTUNI_ALPHA, /* U+00a71a: MODIFIER LETTER LOWER RIGHT CORNER ANGLE*/ + RTUNI_ALPHA, /* U+00a71b: MODIFIER LETTER RAISED UP ARROW*/ + RTUNI_ALPHA, /* U+00a71c: MODIFIER LETTER RAISED DOWN ARROW*/ + RTUNI_ALPHA, /* U+00a71d: MODIFIER LETTER RAISED EXCLAMATION MARK*/ + RTUNI_ALPHA, /* U+00a71e: MODIFIER LETTER RAISED INVERTED EXCLAMATION MARK*/ + RTUNI_ALPHA, /* U+00a71f: MODIFIER LETTER LOW INVERTED EXCLAMATION MARK*/ + 0, /* U+00a720: MODIFIER LETTER STRESS AND HIGH TONE*/ + 0, /* U+00a721: MODIFIER LETTER STRESS AND LOW TONE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+00a722: LATIN CAPITAL LETTER EGYPTOLOGICAL ALEF*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00a723: LATIN SMALL LETTER EGYPTOLOGICAL ALEF*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+00a724: LATIN CAPITAL LETTER EGYPTOLOGICAL AIN*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00a725: LATIN SMALL LETTER EGYPTOLOGICAL AIN*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+00a726: LATIN CAPITAL LETTER HENG*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00a727: LATIN SMALL LETTER HENG*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+00a728: LATIN CAPITAL LETTER TZ*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00a729: LATIN SMALL LETTER TZ*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+00a72a: LATIN CAPITAL LETTER TRESILLO*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00a72b: LATIN SMALL LETTER TRESILLO*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+00a72c: LATIN CAPITAL LETTER CUATRILLO*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00a72d: LATIN SMALL LETTER CUATRILLO*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+00a72e: LATIN CAPITAL LETTER CUATRILLO WITH COMMA*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00a72f: LATIN SMALL LETTER CUATRILLO WITH COMMA*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00a730: LATIN LETTER SMALL CAPITAL F*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00a731: LATIN LETTER SMALL CAPITAL S*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+00a732: LATIN CAPITAL LETTER AA*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00a733: LATIN SMALL LETTER AA*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+00a734: LATIN CAPITAL LETTER AO*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00a735: LATIN SMALL LETTER AO*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+00a736: LATIN CAPITAL LETTER AU*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00a737: LATIN SMALL LETTER AU*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+00a738: LATIN CAPITAL LETTER AV*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00a739: LATIN SMALL LETTER AV*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+00a73a: LATIN CAPITAL LETTER AV WITH HORIZONTAL BAR*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00a73b: LATIN SMALL LETTER AV WITH HORIZONTAL BAR*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+00a73c: LATIN CAPITAL LETTER AY*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00a73d: LATIN SMALL LETTER AY*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+00a73e: LATIN CAPITAL LETTER REVERSED C WITH DOT*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00a73f: LATIN SMALL LETTER REVERSED C WITH DOT*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+00a740: LATIN CAPITAL LETTER K WITH STROKE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00a741: LATIN SMALL LETTER K WITH STROKE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+00a742: LATIN CAPITAL LETTER K WITH DIAGONAL STROKE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00a743: LATIN SMALL LETTER K WITH DIAGONAL STROKE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+00a744: LATIN CAPITAL LETTER K WITH STROKE AND DIAGONAL STROKE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00a745: LATIN SMALL LETTER K WITH STROKE AND DIAGONAL STROKE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+00a746: LATIN CAPITAL LETTER BROKEN L*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00a747: LATIN SMALL LETTER BROKEN L*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+00a748: LATIN CAPITAL LETTER L WITH HIGH STROKE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00a749: LATIN SMALL LETTER L WITH HIGH STROKE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+00a74a: LATIN CAPITAL LETTER O WITH LONG STROKE OVERLAY*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00a74b: LATIN SMALL LETTER O WITH LONG STROKE OVERLAY*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+00a74c: LATIN CAPITAL LETTER O WITH LOOP*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00a74d: LATIN SMALL LETTER O WITH LOOP*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+00a74e: LATIN CAPITAL LETTER OO*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00a74f: LATIN SMALL LETTER OO*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+00a750: LATIN CAPITAL LETTER P WITH STROKE THROUGH DESCENDER*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00a751: LATIN SMALL LETTER P WITH STROKE THROUGH DESCENDER*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+00a752: LATIN CAPITAL LETTER P WITH FLOURISH*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00a753: LATIN SMALL LETTER P WITH FLOURISH*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+00a754: LATIN CAPITAL LETTER P WITH SQUIRREL TAIL*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00a755: LATIN SMALL LETTER P WITH SQUIRREL TAIL*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+00a756: LATIN CAPITAL LETTER Q WITH STROKE THROUGH DESCENDER*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00a757: LATIN SMALL LETTER Q WITH STROKE THROUGH DESCENDER*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+00a758: LATIN CAPITAL LETTER Q WITH DIAGONAL STROKE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00a759: LATIN SMALL LETTER Q WITH DIAGONAL STROKE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+00a75a: LATIN CAPITAL LETTER R ROTUNDA*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00a75b: LATIN SMALL LETTER R ROTUNDA*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+00a75c: LATIN CAPITAL LETTER RUM ROTUNDA*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00a75d: LATIN SMALL LETTER RUM ROTUNDA*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+00a75e: LATIN CAPITAL LETTER V WITH DIAGONAL STROKE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00a75f: LATIN SMALL LETTER V WITH DIAGONAL STROKE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+00a760: LATIN CAPITAL LETTER VY*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00a761: LATIN SMALL LETTER VY*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+00a762: LATIN CAPITAL LETTER VISIGOTHIC Z*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00a763: LATIN SMALL LETTER VISIGOTHIC Z*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+00a764: LATIN CAPITAL LETTER THORN WITH STROKE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00a765: LATIN SMALL LETTER THORN WITH STROKE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+00a766: LATIN CAPITAL LETTER THORN WITH STROKE THROUGH DESCENDER*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00a767: LATIN SMALL LETTER THORN WITH STROKE THROUGH DESCENDER*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+00a768: LATIN CAPITAL LETTER VEND*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00a769: LATIN SMALL LETTER VEND*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+00a76a: LATIN CAPITAL LETTER ET*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00a76b: LATIN SMALL LETTER ET*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+00a76c: LATIN CAPITAL LETTER IS*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00a76d: LATIN SMALL LETTER IS*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+00a76e: LATIN CAPITAL LETTER CON*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00a76f: LATIN SMALL LETTER CON*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00a770: MODIFIER LETTER US*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00a771: LATIN SMALL LETTER DUM*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00a772: LATIN SMALL LETTER LUM*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00a773: LATIN SMALL LETTER MUM*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00a774: LATIN SMALL LETTER NUM*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00a775: LATIN SMALL LETTER RUM*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00a776: LATIN LETTER SMALL CAPITAL RUM*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00a777: LATIN SMALL LETTER TUM*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00a778: LATIN SMALL LETTER UM*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+00a779: LATIN CAPITAL LETTER INSULAR D*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00a77a: LATIN SMALL LETTER INSULAR D*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+00a77b: LATIN CAPITAL LETTER INSULAR F*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00a77c: LATIN SMALL LETTER INSULAR F*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+00a77d: LATIN CAPITAL LETTER INSULAR G*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+00a77e: LATIN CAPITAL LETTER TURNED INSULAR G*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00a77f: LATIN SMALL LETTER TURNED INSULAR G*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+00a780: LATIN CAPITAL LETTER TURNED L*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00a781: LATIN SMALL LETTER TURNED L*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+00a782: LATIN CAPITAL LETTER INSULAR R*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00a783: LATIN SMALL LETTER INSULAR R*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+00a784: LATIN CAPITAL LETTER INSULAR S*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00a785: LATIN SMALL LETTER INSULAR S*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+00a786: LATIN CAPITAL LETTER INSULAR T*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00a787: LATIN SMALL LETTER INSULAR T*/ + RTUNI_ALPHA, /* U+00a788: MODIFIER LETTER LOW CIRCUMFLEX ACCENT*/ + 0, /* U+00a789: MODIFIER LETTER COLON*/ + 0, /* U+00a78a: MODIFIER LETTER SHORT EQUALS SIGN*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+00a78b: LATIN CAPITAL LETTER SALTILLO*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00a78c: LATIN SMALL LETTER SALTILLO*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+00a78d: LATIN CAPITAL LETTER TURNED H*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00a78e: LATIN SMALL LETTER L WITH RETROFLEX HOOK AND BELT*/ + 0, /* U+00a78f: */ + RTUNI_ALPHA | RTUNI_UPPER, /* U+00a790: LATIN CAPITAL LETTER N WITH DESCENDER*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00a791: LATIN SMALL LETTER N WITH DESCENDER*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+00a792: LATIN CAPITAL LETTER C WITH BAR*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00a793: LATIN SMALL LETTER C WITH BAR*/ + 0, /* U+00a794: */ + 0, /* U+00a795: */ + 0, /* U+00a796: */ + 0, /* U+00a797: */ + 0, /* U+00a798: */ + 0, /* U+00a799: */ + 0, /* U+00a79a: */ + 0, /* U+00a79b: */ + 0, /* U+00a79c: */ + 0, /* U+00a79d: */ + 0, /* U+00a79e: */ + 0, /* U+00a79f: */ + RTUNI_ALPHA | RTUNI_UPPER, /* U+00a7a0: LATIN CAPITAL LETTER G WITH OBLIQUE STROKE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00a7a1: LATIN SMALL LETTER G WITH OBLIQUE STROKE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+00a7a2: LATIN CAPITAL LETTER K WITH OBLIQUE STROKE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00a7a3: LATIN SMALL LETTER K WITH OBLIQUE STROKE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+00a7a4: LATIN CAPITAL LETTER N WITH OBLIQUE STROKE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00a7a5: LATIN SMALL LETTER N WITH OBLIQUE STROKE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+00a7a6: LATIN CAPITAL LETTER R WITH OBLIQUE STROKE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00a7a7: LATIN SMALL LETTER R WITH OBLIQUE STROKE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+00a7a8: LATIN CAPITAL LETTER S WITH OBLIQUE STROKE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00a7a9: LATIN SMALL LETTER S WITH OBLIQUE STROKE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+00a7aa: LATIN CAPITAL LETTER H WITH HOOK*/ + 0, /* U+00a7ab: */ + 0, /* U+00a7ac: */ + 0, /* U+00a7ad: */ + 0, /* U+00a7ae: */ + 0, /* U+00a7af: */ + 0, /* U+00a7b0: */ + 0, /* U+00a7b1: */ + 0, /* U+00a7b2: */ + 0, /* U+00a7b3: */ + 0, /* U+00a7b4: */ + 0, /* U+00a7b5: */ + 0, /* U+00a7b6: */ + 0, /* U+00a7b7: */ + 0, /* U+00a7b8: */ + 0, /* U+00a7b9: */ + 0, /* U+00a7ba: */ + 0, /* U+00a7bb: */ + 0, /* U+00a7bc: */ + 0, /* U+00a7bd: */ + 0, /* U+00a7be: */ + 0, /* U+00a7bf: */ + 0, /* U+00a7c0: */ + 0, /* U+00a7c1: */ + 0, /* U+00a7c2: */ + 0, /* U+00a7c3: */ + 0, /* U+00a7c4: */ + 0, /* U+00a7c5: */ + 0, /* U+00a7c6: */ + 0, /* U+00a7c7: */ + 0, /* U+00a7c8: */ + 0, /* U+00a7c9: */ + 0, /* U+00a7ca: */ + 0, /* U+00a7cb: */ + 0, /* U+00a7cc: */ + 0, /* U+00a7cd: */ + 0, /* U+00a7ce: */ + 0, /* U+00a7cf: */ + 0, /* U+00a7d0: */ + 0, /* U+00a7d1: */ + 0, /* U+00a7d2: */ + 0, /* U+00a7d3: */ + 0, /* U+00a7d4: */ + 0, /* U+00a7d5: */ + 0, /* U+00a7d6: */ + 0, /* U+00a7d7: */ + 0, /* U+00a7d8: */ + 0, /* U+00a7d9: */ + 0, /* U+00a7da: */ + 0, /* U+00a7db: */ + 0, /* U+00a7dc: */ + 0, /* U+00a7dd: */ + 0, /* U+00a7de: */ + 0, /* U+00a7df: */ + 0, /* U+00a7e0: */ + 0, /* U+00a7e1: */ + 0, /* U+00a7e2: */ + 0, /* U+00a7e3: */ + 0, /* U+00a7e4: */ + 0, /* U+00a7e5: */ + 0, /* U+00a7e6: */ + 0, /* U+00a7e7: */ + 0, /* U+00a7e8: */ + 0, /* U+00a7e9: */ + 0, /* U+00a7ea: */ + 0, /* U+00a7eb: */ + 0, /* U+00a7ec: */ + 0, /* U+00a7ed: */ + 0, /* U+00a7ee: */ + 0, /* U+00a7ef: */ + 0, /* U+00a7f0: */ + 0, /* U+00a7f1: */ + 0, /* U+00a7f2: */ + 0, /* U+00a7f3: */ + 0, /* U+00a7f4: */ + 0, /* U+00a7f5: */ + 0, /* U+00a7f6: */ + 0, /* U+00a7f7: */ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00a7f8: MODIFIER LETTER CAPITAL H WITH STROKE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00a7f9: MODIFIER LETTER SMALL LIGATURE OE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00a7fa: LATIN LETTER SMALL CAPITAL TURNED M*/ + RTUNI_ALPHA, /* U+00a7fb: LATIN EPIGRAPHIC LETTER REVERSED F*/ + RTUNI_ALPHA, /* U+00a7fc: LATIN EPIGRAPHIC LETTER REVERSED P*/ + RTUNI_ALPHA, /* U+00a7fd: LATIN EPIGRAPHIC LETTER INVERTED M*/ + RTUNI_ALPHA, /* U+00a7fe: LATIN EPIGRAPHIC LETTER I LONGA*/ + RTUNI_ALPHA, /* U+00a7ff: LATIN EPIGRAPHIC LETTER ARCHAIC M*/ + RTUNI_ALPHA, /* U+00a800: SYLOTI NAGRI LETTER A*/ + RTUNI_ALPHA, /* U+00a801: SYLOTI NAGRI LETTER I*/ + 0, /* U+00a802: SYLOTI NAGRI SIGN DVISVARA*/ + RTUNI_ALPHA, /* U+00a803: SYLOTI NAGRI LETTER U*/ + RTUNI_ALPHA, /* U+00a804: SYLOTI NAGRI LETTER E*/ + RTUNI_ALPHA, /* U+00a805: SYLOTI NAGRI LETTER O*/ + 0, /* U+00a806: SYLOTI NAGRI SIGN HASANTA*/ + RTUNI_ALPHA, /* U+00a807: SYLOTI NAGRI LETTER KO*/ + RTUNI_ALPHA, /* U+00a808: SYLOTI NAGRI LETTER KHO*/ + RTUNI_ALPHA, /* U+00a809: SYLOTI NAGRI LETTER GO*/ + RTUNI_ALPHA, /* U+00a80a: SYLOTI NAGRI LETTER GHO*/ + 0, /* U+00a80b: SYLOTI NAGRI SIGN ANUSVARA*/ + RTUNI_ALPHA, /* U+00a80c: SYLOTI NAGRI LETTER CO*/ + RTUNI_ALPHA, /* U+00a80d: SYLOTI NAGRI LETTER CHO*/ + RTUNI_ALPHA, /* U+00a80e: SYLOTI NAGRI LETTER JO*/ + RTUNI_ALPHA, /* U+00a80f: SYLOTI NAGRI LETTER JHO*/ + RTUNI_ALPHA, /* U+00a810: SYLOTI NAGRI LETTER TTO*/ + RTUNI_ALPHA, /* U+00a811: SYLOTI NAGRI LETTER TTHO*/ + RTUNI_ALPHA, /* U+00a812: SYLOTI NAGRI LETTER DDO*/ + RTUNI_ALPHA, /* U+00a813: SYLOTI NAGRI LETTER DDHO*/ + RTUNI_ALPHA, /* U+00a814: SYLOTI NAGRI LETTER TO*/ + RTUNI_ALPHA, /* U+00a815: SYLOTI NAGRI LETTER THO*/ + RTUNI_ALPHA, /* U+00a816: SYLOTI NAGRI LETTER DO*/ + RTUNI_ALPHA, /* U+00a817: SYLOTI NAGRI LETTER DHO*/ + RTUNI_ALPHA, /* U+00a818: SYLOTI NAGRI LETTER NO*/ + RTUNI_ALPHA, /* U+00a819: SYLOTI NAGRI LETTER PO*/ + RTUNI_ALPHA, /* U+00a81a: SYLOTI NAGRI LETTER PHO*/ + RTUNI_ALPHA, /* U+00a81b: SYLOTI NAGRI LETTER BO*/ + RTUNI_ALPHA, /* U+00a81c: SYLOTI NAGRI LETTER BHO*/ + RTUNI_ALPHA, /* U+00a81d: SYLOTI NAGRI LETTER MO*/ + RTUNI_ALPHA, /* U+00a81e: SYLOTI NAGRI LETTER RO*/ + RTUNI_ALPHA, /* U+00a81f: SYLOTI NAGRI LETTER LO*/ + RTUNI_ALPHA, /* U+00a820: SYLOTI NAGRI LETTER RRO*/ + RTUNI_ALPHA, /* U+00a821: SYLOTI NAGRI LETTER SO*/ + RTUNI_ALPHA, /* U+00a822: SYLOTI NAGRI LETTER HO*/ + RTUNI_ALPHA, /* U+00a823: SYLOTI NAGRI VOWEL SIGN A*/ + RTUNI_ALPHA, /* U+00a824: SYLOTI NAGRI VOWEL SIGN I*/ + RTUNI_ALPHA, /* U+00a825: SYLOTI NAGRI VOWEL SIGN U*/ + RTUNI_ALPHA, /* U+00a826: SYLOTI NAGRI VOWEL SIGN E*/ + RTUNI_ALPHA, /* U+00a827: SYLOTI NAGRI VOWEL SIGN OO*/ + 0, /* U+00a828: SYLOTI NAGRI POETRY MARK-1*/ + 0, /* U+00a829: SYLOTI NAGRI POETRY MARK-2*/ + 0, /* U+00a82a: SYLOTI NAGRI POETRY MARK-3*/ + 0, /* U+00a82b: SYLOTI NAGRI POETRY MARK-4*/ + 0, /* U+00a82c: */ + 0, /* U+00a82d: */ + 0, /* U+00a82e: */ + 0, /* U+00a82f: */ + 0, /* U+00a830: NORTH INDIC FRACTION ONE QUARTER*/ + 0, /* U+00a831: NORTH INDIC FRACTION ONE HALF*/ + 0, /* U+00a832: NORTH INDIC FRACTION THREE QUARTERS*/ + 0, /* U+00a833: NORTH INDIC FRACTION ONE SIXTEENTH*/ + 0, /* U+00a834: NORTH INDIC FRACTION ONE EIGHTH*/ + 0, /* U+00a835: NORTH INDIC FRACTION THREE SIXTEENTHS*/ + 0, /* U+00a836: NORTH INDIC QUARTER MARK*/ + 0, /* U+00a837: NORTH INDIC PLACEHOLDER MARK*/ + 0, /* U+00a838: NORTH INDIC RUPEE MARK*/ + 0, /* U+00a839: NORTH INDIC QUANTITY MARK*/ + 0, /* U+00a83a: */ + 0, /* U+00a83b: */ + 0, /* U+00a83c: */ + 0, /* U+00a83d: */ + 0, /* U+00a83e: */ + 0, /* U+00a83f: */ + RTUNI_ALPHA, /* U+00a840: PHAGS-PA LETTER KA*/ + RTUNI_ALPHA, /* U+00a841: PHAGS-PA LETTER KHA*/ + RTUNI_ALPHA, /* U+00a842: PHAGS-PA LETTER GA*/ + RTUNI_ALPHA, /* U+00a843: PHAGS-PA LETTER NGA*/ + RTUNI_ALPHA, /* U+00a844: PHAGS-PA LETTER CA*/ + RTUNI_ALPHA, /* U+00a845: PHAGS-PA LETTER CHA*/ + RTUNI_ALPHA, /* U+00a846: PHAGS-PA LETTER JA*/ + RTUNI_ALPHA, /* U+00a847: PHAGS-PA LETTER NYA*/ + RTUNI_ALPHA, /* U+00a848: PHAGS-PA LETTER TA*/ + RTUNI_ALPHA, /* U+00a849: PHAGS-PA LETTER THA*/ + RTUNI_ALPHA, /* U+00a84a: PHAGS-PA LETTER DA*/ + RTUNI_ALPHA, /* U+00a84b: PHAGS-PA LETTER NA*/ + RTUNI_ALPHA, /* U+00a84c: PHAGS-PA LETTER PA*/ + RTUNI_ALPHA, /* U+00a84d: PHAGS-PA LETTER PHA*/ + RTUNI_ALPHA, /* U+00a84e: PHAGS-PA LETTER BA*/ + RTUNI_ALPHA, /* U+00a84f: PHAGS-PA LETTER MA*/ + RTUNI_ALPHA, /* U+00a850: PHAGS-PA LETTER TSA*/ + RTUNI_ALPHA, /* U+00a851: PHAGS-PA LETTER TSHA*/ + RTUNI_ALPHA, /* U+00a852: PHAGS-PA LETTER DZA*/ + RTUNI_ALPHA, /* U+00a853: PHAGS-PA LETTER WA*/ + RTUNI_ALPHA, /* U+00a854: PHAGS-PA LETTER ZHA*/ + RTUNI_ALPHA, /* U+00a855: PHAGS-PA LETTER ZA*/ + RTUNI_ALPHA, /* U+00a856: PHAGS-PA LETTER SMALL A*/ + RTUNI_ALPHA, /* U+00a857: PHAGS-PA LETTER YA*/ + RTUNI_ALPHA, /* U+00a858: PHAGS-PA LETTER RA*/ + RTUNI_ALPHA, /* U+00a859: PHAGS-PA LETTER LA*/ + RTUNI_ALPHA, /* U+00a85a: PHAGS-PA LETTER SHA*/ + RTUNI_ALPHA, /* U+00a85b: PHAGS-PA LETTER SA*/ + RTUNI_ALPHA, /* U+00a85c: PHAGS-PA LETTER HA*/ + RTUNI_ALPHA, /* U+00a85d: PHAGS-PA LETTER A*/ + RTUNI_ALPHA, /* U+00a85e: PHAGS-PA LETTER I*/ + RTUNI_ALPHA, /* U+00a85f: PHAGS-PA LETTER U*/ + RTUNI_ALPHA, /* U+00a860: PHAGS-PA LETTER E*/ + RTUNI_ALPHA, /* U+00a861: PHAGS-PA LETTER O*/ + RTUNI_ALPHA, /* U+00a862: PHAGS-PA LETTER QA*/ + RTUNI_ALPHA, /* U+00a863: PHAGS-PA LETTER XA*/ + RTUNI_ALPHA, /* U+00a864: PHAGS-PA LETTER FA*/ + RTUNI_ALPHA, /* U+00a865: PHAGS-PA LETTER GGA*/ + RTUNI_ALPHA, /* U+00a866: PHAGS-PA LETTER EE*/ + RTUNI_ALPHA, /* U+00a867: PHAGS-PA SUBJOINED LETTER WA*/ + RTUNI_ALPHA, /* U+00a868: PHAGS-PA SUBJOINED LETTER YA*/ + RTUNI_ALPHA, /* U+00a869: PHAGS-PA LETTER TTA*/ + RTUNI_ALPHA, /* U+00a86a: PHAGS-PA LETTER TTHA*/ + RTUNI_ALPHA, /* U+00a86b: PHAGS-PA LETTER DDA*/ + RTUNI_ALPHA, /* U+00a86c: PHAGS-PA LETTER NNA*/ + RTUNI_ALPHA, /* U+00a86d: PHAGS-PA LETTER ALTERNATE YA*/ + RTUNI_ALPHA, /* U+00a86e: PHAGS-PA LETTER VOICELESS SHA*/ + RTUNI_ALPHA, /* U+00a86f: PHAGS-PA LETTER VOICED HA*/ + RTUNI_ALPHA, /* U+00a870: PHAGS-PA LETTER ASPIRATED FA*/ + RTUNI_ALPHA, /* U+00a871: PHAGS-PA SUBJOINED LETTER RA*/ + RTUNI_ALPHA, /* U+00a872: PHAGS-PA SUPERFIXED LETTER RA*/ + RTUNI_ALPHA, /* U+00a873: PHAGS-PA LETTER CANDRABINDU*/ + 0, /* U+00a874: PHAGS-PA SINGLE HEAD MARK*/ + 0, /* U+00a875: PHAGS-PA DOUBLE HEAD MARK*/ + 0, /* U+00a876: PHAGS-PA MARK SHAD*/ + 0, /* U+00a877: PHAGS-PA MARK DOUBLE SHAD*/ + 0, /* U+00a878: */ + 0, /* U+00a879: */ + 0, /* U+00a87a: */ + 0, /* U+00a87b: */ + 0, /* U+00a87c: */ + 0, /* U+00a87d: */ + 0, /* U+00a87e: */ + 0, /* U+00a87f: */ + RTUNI_ALPHA, /* U+00a880: SAURASHTRA SIGN ANUSVARA*/ + RTUNI_ALPHA, /* U+00a881: SAURASHTRA SIGN VISARGA*/ + RTUNI_ALPHA, /* U+00a882: SAURASHTRA LETTER A*/ + RTUNI_ALPHA, /* U+00a883: SAURASHTRA LETTER AA*/ + RTUNI_ALPHA, /* U+00a884: SAURASHTRA LETTER I*/ + RTUNI_ALPHA, /* U+00a885: SAURASHTRA LETTER II*/ + RTUNI_ALPHA, /* U+00a886: SAURASHTRA LETTER U*/ + RTUNI_ALPHA, /* U+00a887: SAURASHTRA LETTER UU*/ + RTUNI_ALPHA, /* U+00a888: SAURASHTRA LETTER VOCALIC R*/ + RTUNI_ALPHA, /* U+00a889: SAURASHTRA LETTER VOCALIC RR*/ + RTUNI_ALPHA, /* U+00a88a: SAURASHTRA LETTER VOCALIC L*/ + RTUNI_ALPHA, /* U+00a88b: SAURASHTRA LETTER VOCALIC LL*/ + RTUNI_ALPHA, /* U+00a88c: SAURASHTRA LETTER E*/ + RTUNI_ALPHA, /* U+00a88d: SAURASHTRA LETTER EE*/ + RTUNI_ALPHA, /* U+00a88e: SAURASHTRA LETTER AI*/ + RTUNI_ALPHA, /* U+00a88f: SAURASHTRA LETTER O*/ + RTUNI_ALPHA, /* U+00a890: SAURASHTRA LETTER OO*/ + RTUNI_ALPHA, /* U+00a891: SAURASHTRA LETTER AU*/ + RTUNI_ALPHA, /* U+00a892: SAURASHTRA LETTER KA*/ + RTUNI_ALPHA, /* U+00a893: SAURASHTRA LETTER KHA*/ + RTUNI_ALPHA, /* U+00a894: SAURASHTRA LETTER GA*/ + RTUNI_ALPHA, /* U+00a895: SAURASHTRA LETTER GHA*/ + RTUNI_ALPHA, /* U+00a896: SAURASHTRA LETTER NGA*/ + RTUNI_ALPHA, /* U+00a897: SAURASHTRA LETTER CA*/ + RTUNI_ALPHA, /* U+00a898: SAURASHTRA LETTER CHA*/ + RTUNI_ALPHA, /* U+00a899: SAURASHTRA LETTER JA*/ + RTUNI_ALPHA, /* U+00a89a: SAURASHTRA LETTER JHA*/ + RTUNI_ALPHA, /* U+00a89b: SAURASHTRA LETTER NYA*/ + RTUNI_ALPHA, /* U+00a89c: SAURASHTRA LETTER TTA*/ + RTUNI_ALPHA, /* U+00a89d: SAURASHTRA LETTER TTHA*/ + RTUNI_ALPHA, /* U+00a89e: SAURASHTRA LETTER DDA*/ + RTUNI_ALPHA, /* U+00a89f: SAURASHTRA LETTER DDHA*/ + RTUNI_ALPHA, /* U+00a8a0: SAURASHTRA LETTER NNA*/ + RTUNI_ALPHA, /* U+00a8a1: SAURASHTRA LETTER TA*/ + RTUNI_ALPHA, /* U+00a8a2: SAURASHTRA LETTER THA*/ + RTUNI_ALPHA, /* U+00a8a3: SAURASHTRA LETTER DA*/ + RTUNI_ALPHA, /* U+00a8a4: SAURASHTRA LETTER DHA*/ + RTUNI_ALPHA, /* U+00a8a5: SAURASHTRA LETTER NA*/ + RTUNI_ALPHA, /* U+00a8a6: SAURASHTRA LETTER PA*/ + RTUNI_ALPHA, /* U+00a8a7: SAURASHTRA LETTER PHA*/ + RTUNI_ALPHA, /* U+00a8a8: SAURASHTRA LETTER BA*/ + RTUNI_ALPHA, /* U+00a8a9: SAURASHTRA LETTER BHA*/ + RTUNI_ALPHA, /* U+00a8aa: SAURASHTRA LETTER MA*/ + RTUNI_ALPHA, /* U+00a8ab: SAURASHTRA LETTER YA*/ + RTUNI_ALPHA, /* U+00a8ac: SAURASHTRA LETTER RA*/ + RTUNI_ALPHA, /* U+00a8ad: SAURASHTRA LETTER LA*/ + RTUNI_ALPHA, /* U+00a8ae: SAURASHTRA LETTER VA*/ + RTUNI_ALPHA, /* U+00a8af: SAURASHTRA LETTER SHA*/ + RTUNI_ALPHA, /* U+00a8b0: SAURASHTRA LETTER SSA*/ + RTUNI_ALPHA, /* U+00a8b1: SAURASHTRA LETTER SA*/ + RTUNI_ALPHA, /* U+00a8b2: SAURASHTRA LETTER HA*/ + RTUNI_ALPHA, /* U+00a8b3: SAURASHTRA LETTER LLA*/ + RTUNI_ALPHA, /* U+00a8b4: SAURASHTRA CONSONANT SIGN HAARU*/ + RTUNI_ALPHA, /* U+00a8b5: SAURASHTRA VOWEL SIGN AA*/ + RTUNI_ALPHA, /* U+00a8b6: SAURASHTRA VOWEL SIGN I*/ + RTUNI_ALPHA, /* U+00a8b7: SAURASHTRA VOWEL SIGN II*/ + RTUNI_ALPHA, /* U+00a8b8: SAURASHTRA VOWEL SIGN U*/ + RTUNI_ALPHA, /* U+00a8b9: SAURASHTRA VOWEL SIGN UU*/ + RTUNI_ALPHA, /* U+00a8ba: SAURASHTRA VOWEL SIGN VOCALIC R*/ + RTUNI_ALPHA, /* U+00a8bb: SAURASHTRA VOWEL SIGN VOCALIC RR*/ + RTUNI_ALPHA, /* U+00a8bc: SAURASHTRA VOWEL SIGN VOCALIC L*/ + RTUNI_ALPHA, /* U+00a8bd: SAURASHTRA VOWEL SIGN VOCALIC LL*/ + RTUNI_ALPHA, /* U+00a8be: SAURASHTRA VOWEL SIGN E*/ + RTUNI_ALPHA, /* U+00a8bf: SAURASHTRA VOWEL SIGN EE*/ + RTUNI_ALPHA, /* U+00a8c0: SAURASHTRA VOWEL SIGN AI*/ + RTUNI_ALPHA, /* U+00a8c1: SAURASHTRA VOWEL SIGN O*/ + RTUNI_ALPHA, /* U+00a8c2: SAURASHTRA VOWEL SIGN OO*/ + RTUNI_ALPHA, /* U+00a8c3: SAURASHTRA VOWEL SIGN AU*/ + 0, /* U+00a8c4: SAURASHTRA SIGN VIRAMA*/ + 0, /* U+00a8c5: */ + 0, /* U+00a8c6: */ + 0, /* U+00a8c7: */ + 0, /* U+00a8c8: */ + 0, /* U+00a8c9: */ + 0, /* U+00a8ca: */ + 0, /* U+00a8cb: */ + 0, /* U+00a8cc: */ + 0, /* U+00a8cd: */ + 0, /* U+00a8ce: SAURASHTRA DANDA*/ + 0, /* U+00a8cf: SAURASHTRA DOUBLE DANDA*/ + RTUNI_DDIGIT, /* U+00a8d0: SAURASHTRA DIGIT ZERO*/ + RTUNI_DDIGIT, /* U+00a8d1: SAURASHTRA DIGIT ONE*/ + RTUNI_DDIGIT, /* U+00a8d2: SAURASHTRA DIGIT TWO*/ + RTUNI_DDIGIT, /* U+00a8d3: SAURASHTRA DIGIT THREE*/ + RTUNI_DDIGIT, /* U+00a8d4: SAURASHTRA DIGIT FOUR*/ + RTUNI_DDIGIT, /* U+00a8d5: SAURASHTRA DIGIT FIVE*/ + RTUNI_DDIGIT, /* U+00a8d6: SAURASHTRA DIGIT SIX*/ + RTUNI_DDIGIT, /* U+00a8d7: SAURASHTRA DIGIT SEVEN*/ + RTUNI_DDIGIT, /* U+00a8d8: SAURASHTRA DIGIT EIGHT*/ + RTUNI_DDIGIT, /* U+00a8d9: SAURASHTRA DIGIT NINE*/ + 0, /* U+00a8da: */ + 0, /* U+00a8db: */ + 0, /* U+00a8dc: */ + 0, /* U+00a8dd: */ + 0, /* U+00a8de: */ + 0, /* U+00a8df: */ + 0, /* U+00a8e0: COMBINING DEVANAGARI DIGIT ZERO*/ + 0, /* U+00a8e1: COMBINING DEVANAGARI DIGIT ONE*/ + 0, /* U+00a8e2: COMBINING DEVANAGARI DIGIT TWO*/ + 0, /* U+00a8e3: COMBINING DEVANAGARI DIGIT THREE*/ + 0, /* U+00a8e4: COMBINING DEVANAGARI DIGIT FOUR*/ + 0, /* U+00a8e5: COMBINING DEVANAGARI DIGIT FIVE*/ + 0, /* U+00a8e6: COMBINING DEVANAGARI DIGIT SIX*/ + 0, /* U+00a8e7: COMBINING DEVANAGARI DIGIT SEVEN*/ + 0, /* U+00a8e8: COMBINING DEVANAGARI DIGIT EIGHT*/ + 0, /* U+00a8e9: COMBINING DEVANAGARI DIGIT NINE*/ + 0, /* U+00a8ea: COMBINING DEVANAGARI LETTER A*/ + 0, /* U+00a8eb: COMBINING DEVANAGARI LETTER U*/ + 0, /* U+00a8ec: COMBINING DEVANAGARI LETTER KA*/ + 0, /* U+00a8ed: COMBINING DEVANAGARI LETTER NA*/ + 0, /* U+00a8ee: COMBINING DEVANAGARI LETTER PA*/ + 0, /* U+00a8ef: COMBINING DEVANAGARI LETTER RA*/ + 0, /* U+00a8f0: COMBINING DEVANAGARI LETTER VI*/ + 0, /* U+00a8f1: COMBINING DEVANAGARI SIGN AVAGRAHA*/ + RTUNI_ALPHA, /* U+00a8f2: DEVANAGARI SIGN SPACING CANDRABINDU*/ + RTUNI_ALPHA, /* U+00a8f3: DEVANAGARI SIGN CANDRABINDU VIRAMA*/ + RTUNI_ALPHA, /* U+00a8f4: DEVANAGARI SIGN DOUBLE CANDRABINDU VIRAMA*/ + RTUNI_ALPHA, /* U+00a8f5: DEVANAGARI SIGN CANDRABINDU TWO*/ + RTUNI_ALPHA, /* U+00a8f6: DEVANAGARI SIGN CANDRABINDU THREE*/ + RTUNI_ALPHA, /* U+00a8f7: DEVANAGARI SIGN CANDRABINDU AVAGRAHA*/ + 0, /* U+00a8f8: DEVANAGARI SIGN PUSHPIKA*/ + 0, /* U+00a8f9: DEVANAGARI GAP FILLER*/ + 0, /* U+00a8fa: DEVANAGARI CARET*/ + RTUNI_ALPHA, /* U+00a8fb: DEVANAGARI HEADSTROKE*/ + 0, /* U+00a8fc: */ + 0, /* U+00a8fd: */ + 0, /* U+00a8fe: */ + 0, /* U+00a8ff: */ + RTUNI_DDIGIT, /* U+00a900: KAYAH LI DIGIT ZERO*/ + RTUNI_DDIGIT, /* U+00a901: KAYAH LI DIGIT ONE*/ + RTUNI_DDIGIT, /* U+00a902: KAYAH LI DIGIT TWO*/ + RTUNI_DDIGIT, /* U+00a903: KAYAH LI DIGIT THREE*/ + RTUNI_DDIGIT, /* U+00a904: KAYAH LI DIGIT FOUR*/ + RTUNI_DDIGIT, /* U+00a905: KAYAH LI DIGIT FIVE*/ + RTUNI_DDIGIT, /* U+00a906: KAYAH LI DIGIT SIX*/ + RTUNI_DDIGIT, /* U+00a907: KAYAH LI DIGIT SEVEN*/ + RTUNI_DDIGIT, /* U+00a908: KAYAH LI DIGIT EIGHT*/ + RTUNI_DDIGIT, /* U+00a909: KAYAH LI DIGIT NINE*/ + RTUNI_ALPHA, /* U+00a90a: KAYAH LI LETTER KA*/ + RTUNI_ALPHA, /* U+00a90b: KAYAH LI LETTER KHA*/ + RTUNI_ALPHA, /* U+00a90c: KAYAH LI LETTER GA*/ + RTUNI_ALPHA, /* U+00a90d: KAYAH LI LETTER NGA*/ + RTUNI_ALPHA, /* U+00a90e: KAYAH LI LETTER SA*/ + RTUNI_ALPHA, /* U+00a90f: KAYAH LI LETTER SHA*/ + RTUNI_ALPHA, /* U+00a910: KAYAH LI LETTER ZA*/ + RTUNI_ALPHA, /* U+00a911: KAYAH LI LETTER NYA*/ + RTUNI_ALPHA, /* U+00a912: KAYAH LI LETTER TA*/ + RTUNI_ALPHA, /* U+00a913: KAYAH LI LETTER HTA*/ + RTUNI_ALPHA, /* U+00a914: KAYAH LI LETTER NA*/ + RTUNI_ALPHA, /* U+00a915: KAYAH LI LETTER PA*/ + RTUNI_ALPHA, /* U+00a916: KAYAH LI LETTER PHA*/ + RTUNI_ALPHA, /* U+00a917: KAYAH LI LETTER MA*/ + RTUNI_ALPHA, /* U+00a918: KAYAH LI LETTER DA*/ + RTUNI_ALPHA, /* U+00a919: KAYAH LI LETTER BA*/ + RTUNI_ALPHA, /* U+00a91a: KAYAH LI LETTER RA*/ + RTUNI_ALPHA, /* U+00a91b: KAYAH LI LETTER YA*/ + RTUNI_ALPHA, /* U+00a91c: KAYAH LI LETTER LA*/ + RTUNI_ALPHA, /* U+00a91d: KAYAH LI LETTER WA*/ + RTUNI_ALPHA, /* U+00a91e: KAYAH LI LETTER THA*/ + RTUNI_ALPHA, /* U+00a91f: KAYAH LI LETTER HA*/ + RTUNI_ALPHA, /* U+00a920: KAYAH LI LETTER VA*/ + RTUNI_ALPHA, /* U+00a921: KAYAH LI LETTER CA*/ + RTUNI_ALPHA, /* U+00a922: KAYAH LI LETTER A*/ + RTUNI_ALPHA, /* U+00a923: KAYAH LI LETTER OE*/ + RTUNI_ALPHA, /* U+00a924: KAYAH LI LETTER I*/ + RTUNI_ALPHA, /* U+00a925: KAYAH LI LETTER OO*/ + RTUNI_ALPHA, /* U+00a926: KAYAH LI VOWEL UE*/ + RTUNI_ALPHA, /* U+00a927: KAYAH LI VOWEL E*/ + RTUNI_ALPHA, /* U+00a928: KAYAH LI VOWEL U*/ + RTUNI_ALPHA, /* U+00a929: KAYAH LI VOWEL EE*/ + RTUNI_ALPHA, /* U+00a92a: KAYAH LI VOWEL O*/ + 0, /* U+00a92b: KAYAH LI TONE PLOPHU*/ + 0, /* U+00a92c: KAYAH LI TONE CALYA*/ + 0, /* U+00a92d: KAYAH LI TONE CALYA PLOPHU*/ + 0, /* U+00a92e: KAYAH LI SIGN CWI*/ + 0, /* U+00a92f: KAYAH LI SIGN SHYA*/ + RTUNI_ALPHA, /* U+00a930: REJANG LETTER KA*/ + RTUNI_ALPHA, /* U+00a931: REJANG LETTER GA*/ + RTUNI_ALPHA, /* U+00a932: REJANG LETTER NGA*/ + RTUNI_ALPHA, /* U+00a933: REJANG LETTER TA*/ + RTUNI_ALPHA, /* U+00a934: REJANG LETTER DA*/ + RTUNI_ALPHA, /* U+00a935: REJANG LETTER NA*/ + RTUNI_ALPHA, /* U+00a936: REJANG LETTER PA*/ + RTUNI_ALPHA, /* U+00a937: REJANG LETTER BA*/ + RTUNI_ALPHA, /* U+00a938: REJANG LETTER MA*/ + RTUNI_ALPHA, /* U+00a939: REJANG LETTER CA*/ + RTUNI_ALPHA, /* U+00a93a: REJANG LETTER JA*/ + RTUNI_ALPHA, /* U+00a93b: REJANG LETTER NYA*/ + RTUNI_ALPHA, /* U+00a93c: REJANG LETTER SA*/ + RTUNI_ALPHA, /* U+00a93d: REJANG LETTER RA*/ + RTUNI_ALPHA, /* U+00a93e: REJANG LETTER LA*/ + RTUNI_ALPHA, /* U+00a93f: REJANG LETTER YA*/ + RTUNI_ALPHA, /* U+00a940: REJANG LETTER WA*/ + RTUNI_ALPHA, /* U+00a941: REJANG LETTER HA*/ + RTUNI_ALPHA, /* U+00a942: REJANG LETTER MBA*/ + RTUNI_ALPHA, /* U+00a943: REJANG LETTER NGGA*/ + RTUNI_ALPHA, /* U+00a944: REJANG LETTER NDA*/ + RTUNI_ALPHA, /* U+00a945: REJANG LETTER NYJA*/ + RTUNI_ALPHA, /* U+00a946: REJANG LETTER A*/ + RTUNI_ALPHA, /* U+00a947: REJANG VOWEL SIGN I*/ + RTUNI_ALPHA, /* U+00a948: REJANG VOWEL SIGN U*/ + RTUNI_ALPHA, /* U+00a949: REJANG VOWEL SIGN E*/ + RTUNI_ALPHA, /* U+00a94a: REJANG VOWEL SIGN AI*/ + RTUNI_ALPHA, /* U+00a94b: REJANG VOWEL SIGN O*/ + RTUNI_ALPHA, /* U+00a94c: REJANG VOWEL SIGN AU*/ + RTUNI_ALPHA, /* U+00a94d: REJANG VOWEL SIGN EU*/ + RTUNI_ALPHA, /* U+00a94e: REJANG VOWEL SIGN EA*/ + RTUNI_ALPHA, /* U+00a94f: REJANG CONSONANT SIGN NG*/ + RTUNI_ALPHA, /* U+00a950: REJANG CONSONANT SIGN N*/ + RTUNI_ALPHA, /* U+00a951: REJANG CONSONANT SIGN R*/ + RTUNI_ALPHA, /* U+00a952: REJANG CONSONANT SIGN H*/ + 0, /* U+00a953: REJANG VIRAMA*/ + 0, /* U+00a954: */ + 0, /* U+00a955: */ + 0, /* U+00a956: */ + 0, /* U+00a957: */ + 0, /* U+00a958: */ + 0, /* U+00a959: */ + 0, /* U+00a95a: */ + 0, /* U+00a95b: */ + 0, /* U+00a95c: */ + 0, /* U+00a95d: */ + 0, /* U+00a95e: */ + 0, /* U+00a95f: REJANG SECTION MARK*/ + RTUNI_ALPHA, /* U+00a960: HANGUL CHOSEONG TIKEUT-MIEUM*/ + RTUNI_ALPHA, /* U+00a961: HANGUL CHOSEONG TIKEUT-PIEUP*/ + RTUNI_ALPHA, /* U+00a962: HANGUL CHOSEONG TIKEUT-SIOS*/ + RTUNI_ALPHA, /* U+00a963: HANGUL CHOSEONG TIKEUT-CIEUC*/ + RTUNI_ALPHA, /* U+00a964: HANGUL CHOSEONG RIEUL-KIYEOK*/ + RTUNI_ALPHA, /* U+00a965: HANGUL CHOSEONG RIEUL-SSANGKIYEOK*/ + RTUNI_ALPHA, /* U+00a966: HANGUL CHOSEONG RIEUL-TIKEUT*/ + RTUNI_ALPHA, /* U+00a967: HANGUL CHOSEONG RIEUL-SSANGTIKEUT*/ + RTUNI_ALPHA, /* U+00a968: HANGUL CHOSEONG RIEUL-MIEUM*/ + RTUNI_ALPHA, /* U+00a969: HANGUL CHOSEONG RIEUL-PIEUP*/ + RTUNI_ALPHA, /* U+00a96a: HANGUL CHOSEONG RIEUL-SSANGPIEUP*/ + RTUNI_ALPHA, /* U+00a96b: HANGUL CHOSEONG RIEUL-KAPYEOUNPIEUP*/ + RTUNI_ALPHA, /* U+00a96c: HANGUL CHOSEONG RIEUL-SIOS*/ + RTUNI_ALPHA, /* U+00a96d: HANGUL CHOSEONG RIEUL-CIEUC*/ + RTUNI_ALPHA, /* U+00a96e: HANGUL CHOSEONG RIEUL-KHIEUKH*/ + RTUNI_ALPHA, /* U+00a96f: HANGUL CHOSEONG MIEUM-KIYEOK*/ + RTUNI_ALPHA, /* U+00a970: HANGUL CHOSEONG MIEUM-TIKEUT*/ + RTUNI_ALPHA, /* U+00a971: HANGUL CHOSEONG MIEUM-SIOS*/ + RTUNI_ALPHA, /* U+00a972: HANGUL CHOSEONG PIEUP-SIOS-THIEUTH*/ + RTUNI_ALPHA, /* U+00a973: HANGUL CHOSEONG PIEUP-KHIEUKH*/ + RTUNI_ALPHA, /* U+00a974: HANGUL CHOSEONG PIEUP-HIEUH*/ + RTUNI_ALPHA, /* U+00a975: HANGUL CHOSEONG SSANGSIOS-PIEUP*/ + RTUNI_ALPHA, /* U+00a976: HANGUL CHOSEONG IEUNG-RIEUL*/ + RTUNI_ALPHA, /* U+00a977: HANGUL CHOSEONG IEUNG-HIEUH*/ + RTUNI_ALPHA, /* U+00a978: HANGUL CHOSEONG SSANGCIEUC-HIEUH*/ + RTUNI_ALPHA, /* U+00a979: HANGUL CHOSEONG SSANGTHIEUTH*/ + RTUNI_ALPHA, /* U+00a97a: HANGUL CHOSEONG PHIEUPH-HIEUH*/ + RTUNI_ALPHA, /* U+00a97b: HANGUL CHOSEONG HIEUH-SIOS*/ + RTUNI_ALPHA, /* U+00a97c: HANGUL CHOSEONG SSANGYEORINHIEUH*/ + 0, /* U+00a97d: */ + 0, /* U+00a97e: */ + 0, /* U+00a97f: */ + RTUNI_ALPHA, /* U+00a980: JAVANESE SIGN PANYANGGA*/ + RTUNI_ALPHA, /* U+00a981: JAVANESE SIGN CECAK*/ + RTUNI_ALPHA, /* U+00a982: JAVANESE SIGN LAYAR*/ + RTUNI_ALPHA, /* U+00a983: JAVANESE SIGN WIGNYAN*/ + RTUNI_ALPHA, /* U+00a984: JAVANESE LETTER A*/ + RTUNI_ALPHA, /* U+00a985: JAVANESE LETTER I KAWI*/ + RTUNI_ALPHA, /* U+00a986: JAVANESE LETTER I*/ + RTUNI_ALPHA, /* U+00a987: JAVANESE LETTER II*/ + RTUNI_ALPHA, /* U+00a988: JAVANESE LETTER U*/ + RTUNI_ALPHA, /* U+00a989: JAVANESE LETTER PA CEREK*/ + RTUNI_ALPHA, /* U+00a98a: JAVANESE LETTER NGA LELET*/ + RTUNI_ALPHA, /* U+00a98b: JAVANESE LETTER NGA LELET RASWADI*/ + RTUNI_ALPHA, /* U+00a98c: JAVANESE LETTER E*/ + RTUNI_ALPHA, /* U+00a98d: JAVANESE LETTER AI*/ + RTUNI_ALPHA, /* U+00a98e: JAVANESE LETTER O*/ + RTUNI_ALPHA, /* U+00a98f: JAVANESE LETTER KA*/ + RTUNI_ALPHA, /* U+00a990: JAVANESE LETTER KA SASAK*/ + RTUNI_ALPHA, /* U+00a991: JAVANESE LETTER KA MURDA*/ + RTUNI_ALPHA, /* U+00a992: JAVANESE LETTER GA*/ + RTUNI_ALPHA, /* U+00a993: JAVANESE LETTER GA MURDA*/ + RTUNI_ALPHA, /* U+00a994: JAVANESE LETTER NGA*/ + RTUNI_ALPHA, /* U+00a995: JAVANESE LETTER CA*/ + RTUNI_ALPHA, /* U+00a996: JAVANESE LETTER CA MURDA*/ + RTUNI_ALPHA, /* U+00a997: JAVANESE LETTER JA*/ + RTUNI_ALPHA, /* U+00a998: JAVANESE LETTER NYA MURDA*/ + RTUNI_ALPHA, /* U+00a999: JAVANESE LETTER JA MAHAPRANA*/ + RTUNI_ALPHA, /* U+00a99a: JAVANESE LETTER NYA*/ + RTUNI_ALPHA, /* U+00a99b: JAVANESE LETTER TTA*/ + RTUNI_ALPHA, /* U+00a99c: JAVANESE LETTER TTA MAHAPRANA*/ + RTUNI_ALPHA, /* U+00a99d: JAVANESE LETTER DDA*/ + RTUNI_ALPHA, /* U+00a99e: JAVANESE LETTER DDA MAHAPRANA*/ + RTUNI_ALPHA, /* U+00a99f: JAVANESE LETTER NA MURDA*/ + RTUNI_ALPHA, /* U+00a9a0: JAVANESE LETTER TA*/ + RTUNI_ALPHA, /* U+00a9a1: JAVANESE LETTER TA MURDA*/ + RTUNI_ALPHA, /* U+00a9a2: JAVANESE LETTER DA*/ + RTUNI_ALPHA, /* U+00a9a3: JAVANESE LETTER DA MAHAPRANA*/ + RTUNI_ALPHA, /* U+00a9a4: JAVANESE LETTER NA*/ + RTUNI_ALPHA, /* U+00a9a5: JAVANESE LETTER PA*/ + RTUNI_ALPHA, /* U+00a9a6: JAVANESE LETTER PA MURDA*/ + RTUNI_ALPHA, /* U+00a9a7: JAVANESE LETTER BA*/ + RTUNI_ALPHA, /* U+00a9a8: JAVANESE LETTER BA MURDA*/ + RTUNI_ALPHA, /* U+00a9a9: JAVANESE LETTER MA*/ + RTUNI_ALPHA, /* U+00a9aa: JAVANESE LETTER YA*/ + RTUNI_ALPHA, /* U+00a9ab: JAVANESE LETTER RA*/ + RTUNI_ALPHA, /* U+00a9ac: JAVANESE LETTER RA AGUNG*/ + RTUNI_ALPHA, /* U+00a9ad: JAVANESE LETTER LA*/ + RTUNI_ALPHA, /* U+00a9ae: JAVANESE LETTER WA*/ + RTUNI_ALPHA, /* U+00a9af: JAVANESE LETTER SA MURDA*/ + RTUNI_ALPHA, /* U+00a9b0: JAVANESE LETTER SA MAHAPRANA*/ + RTUNI_ALPHA, /* U+00a9b1: JAVANESE LETTER SA*/ + RTUNI_ALPHA, /* U+00a9b2: JAVANESE LETTER HA*/ + 0, /* U+00a9b3: JAVANESE SIGN CECAK TELU*/ + RTUNI_ALPHA, /* U+00a9b4: JAVANESE VOWEL SIGN TARUNG*/ + RTUNI_ALPHA, /* U+00a9b5: JAVANESE VOWEL SIGN TOLONG*/ + RTUNI_ALPHA, /* U+00a9b6: JAVANESE VOWEL SIGN WULU*/ + RTUNI_ALPHA, /* U+00a9b7: JAVANESE VOWEL SIGN WULU MELIK*/ + RTUNI_ALPHA, /* U+00a9b8: JAVANESE VOWEL SIGN SUKU*/ + RTUNI_ALPHA, /* U+00a9b9: JAVANESE VOWEL SIGN SUKU MENDUT*/ + RTUNI_ALPHA, /* U+00a9ba: JAVANESE VOWEL SIGN TALING*/ + RTUNI_ALPHA, /* U+00a9bb: JAVANESE VOWEL SIGN DIRGA MURE*/ + RTUNI_ALPHA, /* U+00a9bc: JAVANESE VOWEL SIGN PEPET*/ + RTUNI_ALPHA, /* U+00a9bd: JAVANESE CONSONANT SIGN KERET*/ + RTUNI_ALPHA, /* U+00a9be: JAVANESE CONSONANT SIGN PENGKAL*/ + RTUNI_ALPHA, /* U+00a9bf: JAVANESE CONSONANT SIGN CAKRA*/ + 0, /* U+00a9c0: JAVANESE PANGKON*/ + 0, /* U+00a9c1: JAVANESE LEFT RERENGGAN*/ + 0, /* U+00a9c2: JAVANESE RIGHT RERENGGAN*/ + 0, /* U+00a9c3: JAVANESE PADA ANDAP*/ + 0, /* U+00a9c4: JAVANESE PADA MADYA*/ + 0, /* U+00a9c5: JAVANESE PADA LUHUR*/ + 0, /* U+00a9c6: JAVANESE PADA WINDU*/ + 0, /* U+00a9c7: JAVANESE PADA PANGKAT*/ + 0, /* U+00a9c8: JAVANESE PADA LINGSA*/ + 0, /* U+00a9c9: JAVANESE PADA LUNGSI*/ + 0, /* U+00a9ca: JAVANESE PADA ADEG*/ + 0, /* U+00a9cb: JAVANESE PADA ADEG ADEG*/ + 0, /* U+00a9cc: JAVANESE PADA PISELEH*/ + 0, /* U+00a9cd: JAVANESE TURNED PADA PISELEH*/ + 0, /* U+00a9ce: */ + RTUNI_ALPHA, /* U+00a9cf: JAVANESE PANGRANGKEP*/ + RTUNI_DDIGIT, /* U+00a9d0: JAVANESE DIGIT ZERO*/ + RTUNI_DDIGIT, /* U+00a9d1: JAVANESE DIGIT ONE*/ + RTUNI_DDIGIT, /* U+00a9d2: JAVANESE DIGIT TWO*/ + RTUNI_DDIGIT, /* U+00a9d3: JAVANESE DIGIT THREE*/ + RTUNI_DDIGIT, /* U+00a9d4: JAVANESE DIGIT FOUR*/ + RTUNI_DDIGIT, /* U+00a9d5: JAVANESE DIGIT FIVE*/ + RTUNI_DDIGIT, /* U+00a9d6: JAVANESE DIGIT SIX*/ + RTUNI_DDIGIT, /* U+00a9d7: JAVANESE DIGIT SEVEN*/ + RTUNI_DDIGIT, /* U+00a9d8: JAVANESE DIGIT EIGHT*/ + RTUNI_DDIGIT, /* U+00a9d9: JAVANESE DIGIT NINE*/ + 0, /* U+00a9da: */ + 0, /* U+00a9db: */ + 0, /* U+00a9dc: */ + 0, /* U+00a9dd: */ + 0, /* U+00a9de: JAVANESE PADA TIRTA TUMETES*/ + 0, /* U+00a9df: JAVANESE PADA ISEN-ISEN*/ + 0, /* U+00a9e0: */ + 0, /* U+00a9e1: */ + 0, /* U+00a9e2: */ + 0, /* U+00a9e3: */ + 0, /* U+00a9e4: */ + 0, /* U+00a9e5: */ + 0, /* U+00a9e6: */ + 0, /* U+00a9e7: */ + 0, /* U+00a9e8: */ + 0, /* U+00a9e9: */ + 0, /* U+00a9ea: */ + 0, /* U+00a9eb: */ + 0, /* U+00a9ec: */ + 0, /* U+00a9ed: */ + 0, /* U+00a9ee: */ + 0, /* U+00a9ef: */ + 0, /* U+00a9f0: */ + 0, /* U+00a9f1: */ + 0, /* U+00a9f2: */ + 0, /* U+00a9f3: */ + 0, /* U+00a9f4: */ + 0, /* U+00a9f5: */ + 0, /* U+00a9f6: */ + 0, /* U+00a9f7: */ + 0, /* U+00a9f8: */ + 0, /* U+00a9f9: */ + 0, /* U+00a9fa: */ + 0, /* U+00a9fb: */ + 0, /* U+00a9fc: */ + 0, /* U+00a9fd: */ + 0, /* U+00a9fe: */ + 0, /* U+00a9ff: */ + RTUNI_ALPHA, /* U+00aa00: CHAM LETTER A*/ + RTUNI_ALPHA, /* U+00aa01: CHAM LETTER I*/ + RTUNI_ALPHA, /* U+00aa02: CHAM LETTER U*/ + RTUNI_ALPHA, /* U+00aa03: CHAM LETTER E*/ + RTUNI_ALPHA, /* U+00aa04: CHAM LETTER AI*/ + RTUNI_ALPHA, /* U+00aa05: CHAM LETTER O*/ + RTUNI_ALPHA, /* U+00aa06: CHAM LETTER KA*/ + RTUNI_ALPHA, /* U+00aa07: CHAM LETTER KHA*/ + RTUNI_ALPHA, /* U+00aa08: CHAM LETTER GA*/ + RTUNI_ALPHA, /* U+00aa09: CHAM LETTER GHA*/ + RTUNI_ALPHA, /* U+00aa0a: CHAM LETTER NGUE*/ + RTUNI_ALPHA, /* U+00aa0b: CHAM LETTER NGA*/ + RTUNI_ALPHA, /* U+00aa0c: CHAM LETTER CHA*/ + RTUNI_ALPHA, /* U+00aa0d: CHAM LETTER CHHA*/ + RTUNI_ALPHA, /* U+00aa0e: CHAM LETTER JA*/ + RTUNI_ALPHA, /* U+00aa0f: CHAM LETTER JHA*/ + RTUNI_ALPHA, /* U+00aa10: CHAM LETTER NHUE*/ + RTUNI_ALPHA, /* U+00aa11: CHAM LETTER NHA*/ + RTUNI_ALPHA, /* U+00aa12: CHAM LETTER NHJA*/ + RTUNI_ALPHA, /* U+00aa13: CHAM LETTER TA*/ + RTUNI_ALPHA, /* U+00aa14: CHAM LETTER THA*/ + RTUNI_ALPHA, /* U+00aa15: CHAM LETTER DA*/ + RTUNI_ALPHA, /* U+00aa16: CHAM LETTER DHA*/ + RTUNI_ALPHA, /* U+00aa17: CHAM LETTER NUE*/ + RTUNI_ALPHA, /* U+00aa18: CHAM LETTER NA*/ + RTUNI_ALPHA, /* U+00aa19: CHAM LETTER DDA*/ + RTUNI_ALPHA, /* U+00aa1a: CHAM LETTER PA*/ + RTUNI_ALPHA, /* U+00aa1b: CHAM LETTER PPA*/ + RTUNI_ALPHA, /* U+00aa1c: CHAM LETTER PHA*/ + RTUNI_ALPHA, /* U+00aa1d: CHAM LETTER BA*/ + RTUNI_ALPHA, /* U+00aa1e: CHAM LETTER BHA*/ + RTUNI_ALPHA, /* U+00aa1f: CHAM LETTER MUE*/ + RTUNI_ALPHA, /* U+00aa20: CHAM LETTER MA*/ + RTUNI_ALPHA, /* U+00aa21: CHAM LETTER BBA*/ + RTUNI_ALPHA, /* U+00aa22: CHAM LETTER YA*/ + RTUNI_ALPHA, /* U+00aa23: CHAM LETTER RA*/ + RTUNI_ALPHA, /* U+00aa24: CHAM LETTER LA*/ + RTUNI_ALPHA, /* U+00aa25: CHAM LETTER VA*/ + RTUNI_ALPHA, /* U+00aa26: CHAM LETTER SSA*/ + RTUNI_ALPHA, /* U+00aa27: CHAM LETTER SA*/ + RTUNI_ALPHA, /* U+00aa28: CHAM LETTER HA*/ + RTUNI_ALPHA, /* U+00aa29: CHAM VOWEL SIGN AA*/ + RTUNI_ALPHA, /* U+00aa2a: CHAM VOWEL SIGN I*/ + RTUNI_ALPHA, /* U+00aa2b: CHAM VOWEL SIGN II*/ + RTUNI_ALPHA, /* U+00aa2c: CHAM VOWEL SIGN EI*/ + RTUNI_ALPHA, /* U+00aa2d: CHAM VOWEL SIGN U*/ + RTUNI_ALPHA, /* U+00aa2e: CHAM VOWEL SIGN OE*/ + RTUNI_ALPHA, /* U+00aa2f: CHAM VOWEL SIGN O*/ + RTUNI_ALPHA, /* U+00aa30: CHAM VOWEL SIGN AI*/ + RTUNI_ALPHA, /* U+00aa31: CHAM VOWEL SIGN AU*/ + RTUNI_ALPHA, /* U+00aa32: CHAM VOWEL SIGN UE*/ + RTUNI_ALPHA, /* U+00aa33: CHAM CONSONANT SIGN YA*/ + RTUNI_ALPHA, /* U+00aa34: CHAM CONSONANT SIGN RA*/ + RTUNI_ALPHA, /* U+00aa35: CHAM CONSONANT SIGN LA*/ + RTUNI_ALPHA, /* U+00aa36: CHAM CONSONANT SIGN WA*/ + 0, /* U+00aa37: */ + 0, /* U+00aa38: */ + 0, /* U+00aa39: */ + 0, /* U+00aa3a: */ + 0, /* U+00aa3b: */ + 0, /* U+00aa3c: */ + 0, /* U+00aa3d: */ + 0, /* U+00aa3e: */ + 0, /* U+00aa3f: */ + RTUNI_ALPHA, /* U+00aa40: CHAM LETTER FINAL K*/ + RTUNI_ALPHA, /* U+00aa41: CHAM LETTER FINAL G*/ + RTUNI_ALPHA, /* U+00aa42: CHAM LETTER FINAL NG*/ + RTUNI_ALPHA, /* U+00aa43: CHAM CONSONANT SIGN FINAL NG*/ + RTUNI_ALPHA, /* U+00aa44: CHAM LETTER FINAL CH*/ + RTUNI_ALPHA, /* U+00aa45: CHAM LETTER FINAL T*/ + RTUNI_ALPHA, /* U+00aa46: CHAM LETTER FINAL N*/ + RTUNI_ALPHA, /* U+00aa47: CHAM LETTER FINAL P*/ + RTUNI_ALPHA, /* U+00aa48: CHAM LETTER FINAL Y*/ + RTUNI_ALPHA, /* U+00aa49: CHAM LETTER FINAL R*/ + RTUNI_ALPHA, /* U+00aa4a: CHAM LETTER FINAL L*/ + RTUNI_ALPHA, /* U+00aa4b: CHAM LETTER FINAL SS*/ + RTUNI_ALPHA, /* U+00aa4c: CHAM CONSONANT SIGN FINAL M*/ + RTUNI_ALPHA, /* U+00aa4d: CHAM CONSONANT SIGN FINAL H*/ + 0, /* U+00aa4e: */ + 0, /* U+00aa4f: */ + RTUNI_DDIGIT, /* U+00aa50: CHAM DIGIT ZERO*/ + RTUNI_DDIGIT, /* U+00aa51: CHAM DIGIT ONE*/ + RTUNI_DDIGIT, /* U+00aa52: CHAM DIGIT TWO*/ + RTUNI_DDIGIT, /* U+00aa53: CHAM DIGIT THREE*/ + RTUNI_DDIGIT, /* U+00aa54: CHAM DIGIT FOUR*/ + RTUNI_DDIGIT, /* U+00aa55: CHAM DIGIT FIVE*/ + RTUNI_DDIGIT, /* U+00aa56: CHAM DIGIT SIX*/ + RTUNI_DDIGIT, /* U+00aa57: CHAM DIGIT SEVEN*/ + RTUNI_DDIGIT, /* U+00aa58: CHAM DIGIT EIGHT*/ + RTUNI_DDIGIT, /* U+00aa59: CHAM DIGIT NINE*/ + 0, /* U+00aa5a: */ + 0, /* U+00aa5b: */ + 0, /* U+00aa5c: CHAM PUNCTUATION SPIRAL*/ + 0, /* U+00aa5d: CHAM PUNCTUATION DANDA*/ + 0, /* U+00aa5e: CHAM PUNCTUATION DOUBLE DANDA*/ + 0, /* U+00aa5f: CHAM PUNCTUATION TRIPLE DANDA*/ + RTUNI_ALPHA, /* U+00aa60: MYANMAR LETTER KHAMTI GA*/ + RTUNI_ALPHA, /* U+00aa61: MYANMAR LETTER KHAMTI CA*/ + RTUNI_ALPHA, /* U+00aa62: MYANMAR LETTER KHAMTI CHA*/ + RTUNI_ALPHA, /* U+00aa63: MYANMAR LETTER KHAMTI JA*/ + RTUNI_ALPHA, /* U+00aa64: MYANMAR LETTER KHAMTI JHA*/ + RTUNI_ALPHA, /* U+00aa65: MYANMAR LETTER KHAMTI NYA*/ + RTUNI_ALPHA, /* U+00aa66: MYANMAR LETTER KHAMTI TTA*/ + RTUNI_ALPHA, /* U+00aa67: MYANMAR LETTER KHAMTI TTHA*/ + RTUNI_ALPHA, /* U+00aa68: MYANMAR LETTER KHAMTI DDA*/ + RTUNI_ALPHA, /* U+00aa69: MYANMAR LETTER KHAMTI DDHA*/ + RTUNI_ALPHA, /* U+00aa6a: MYANMAR LETTER KHAMTI DHA*/ + RTUNI_ALPHA, /* U+00aa6b: MYANMAR LETTER KHAMTI NA*/ + RTUNI_ALPHA, /* U+00aa6c: MYANMAR LETTER KHAMTI SA*/ + RTUNI_ALPHA, /* U+00aa6d: MYANMAR LETTER KHAMTI HA*/ + RTUNI_ALPHA, /* U+00aa6e: MYANMAR LETTER KHAMTI HHA*/ + RTUNI_ALPHA, /* U+00aa6f: MYANMAR LETTER KHAMTI FA*/ + RTUNI_ALPHA, /* U+00aa70: MYANMAR MODIFIER LETTER KHAMTI REDUPLICATION*/ + RTUNI_ALPHA, /* U+00aa71: MYANMAR LETTER KHAMTI XA*/ + RTUNI_ALPHA, /* U+00aa72: MYANMAR LETTER KHAMTI ZA*/ + RTUNI_ALPHA, /* U+00aa73: MYANMAR LETTER KHAMTI RA*/ + RTUNI_ALPHA, /* U+00aa74: MYANMAR LOGOGRAM KHAMTI OAY*/ + RTUNI_ALPHA, /* U+00aa75: MYANMAR LOGOGRAM KHAMTI QN*/ + RTUNI_ALPHA, /* U+00aa76: MYANMAR LOGOGRAM KHAMTI HM*/ + 0, /* U+00aa77: MYANMAR SYMBOL AITON EXCLAMATION*/ + 0, /* U+00aa78: MYANMAR SYMBOL AITON ONE*/ + 0, /* U+00aa79: MYANMAR SYMBOL AITON TWO*/ + RTUNI_ALPHA, /* U+00aa7a: MYANMAR LETTER AITON RA*/ + 0, /* U+00aa7b: MYANMAR SIGN PAO KAREN TONE*/ + 0, /* U+00aa7c: */ + 0, /* U+00aa7d: */ + 0, /* U+00aa7e: */ + 0, /* U+00aa7f: */ + RTUNI_ALPHA, /* U+00aa80: TAI VIET LETTER LOW KO*/ + RTUNI_ALPHA, /* U+00aa81: TAI VIET LETTER HIGH KO*/ + RTUNI_ALPHA, /* U+00aa82: TAI VIET LETTER LOW KHO*/ + RTUNI_ALPHA, /* U+00aa83: TAI VIET LETTER HIGH KHO*/ + RTUNI_ALPHA, /* U+00aa84: TAI VIET LETTER LOW KHHO*/ + RTUNI_ALPHA, /* U+00aa85: TAI VIET LETTER HIGH KHHO*/ + RTUNI_ALPHA, /* U+00aa86: TAI VIET LETTER LOW GO*/ + RTUNI_ALPHA, /* U+00aa87: TAI VIET LETTER HIGH GO*/ + RTUNI_ALPHA, /* U+00aa88: TAI VIET LETTER LOW NGO*/ + RTUNI_ALPHA, /* U+00aa89: TAI VIET LETTER HIGH NGO*/ + RTUNI_ALPHA, /* U+00aa8a: TAI VIET LETTER LOW CO*/ + RTUNI_ALPHA, /* U+00aa8b: TAI VIET LETTER HIGH CO*/ + RTUNI_ALPHA, /* U+00aa8c: TAI VIET LETTER LOW CHO*/ + RTUNI_ALPHA, /* U+00aa8d: TAI VIET LETTER HIGH CHO*/ + RTUNI_ALPHA, /* U+00aa8e: TAI VIET LETTER LOW SO*/ + RTUNI_ALPHA, /* U+00aa8f: TAI VIET LETTER HIGH SO*/ + RTUNI_ALPHA, /* U+00aa90: TAI VIET LETTER LOW NYO*/ + RTUNI_ALPHA, /* U+00aa91: TAI VIET LETTER HIGH NYO*/ + RTUNI_ALPHA, /* U+00aa92: TAI VIET LETTER LOW DO*/ + RTUNI_ALPHA, /* U+00aa93: TAI VIET LETTER HIGH DO*/ + RTUNI_ALPHA, /* U+00aa94: TAI VIET LETTER LOW TO*/ + RTUNI_ALPHA, /* U+00aa95: TAI VIET LETTER HIGH TO*/ + RTUNI_ALPHA, /* U+00aa96: TAI VIET LETTER LOW THO*/ + RTUNI_ALPHA, /* U+00aa97: TAI VIET LETTER HIGH THO*/ + RTUNI_ALPHA, /* U+00aa98: TAI VIET LETTER LOW NO*/ + RTUNI_ALPHA, /* U+00aa99: TAI VIET LETTER HIGH NO*/ + RTUNI_ALPHA, /* U+00aa9a: TAI VIET LETTER LOW BO*/ + RTUNI_ALPHA, /* U+00aa9b: TAI VIET LETTER HIGH BO*/ + RTUNI_ALPHA, /* U+00aa9c: TAI VIET LETTER LOW PO*/ + RTUNI_ALPHA, /* U+00aa9d: TAI VIET LETTER HIGH PO*/ + RTUNI_ALPHA, /* U+00aa9e: TAI VIET LETTER LOW PHO*/ + RTUNI_ALPHA, /* U+00aa9f: TAI VIET LETTER HIGH PHO*/ + RTUNI_ALPHA, /* U+00aaa0: TAI VIET LETTER LOW FO*/ + RTUNI_ALPHA, /* U+00aaa1: TAI VIET LETTER HIGH FO*/ + RTUNI_ALPHA, /* U+00aaa2: TAI VIET LETTER LOW MO*/ + RTUNI_ALPHA, /* U+00aaa3: TAI VIET LETTER HIGH MO*/ + RTUNI_ALPHA, /* U+00aaa4: TAI VIET LETTER LOW YO*/ + RTUNI_ALPHA, /* U+00aaa5: TAI VIET LETTER HIGH YO*/ + RTUNI_ALPHA, /* U+00aaa6: TAI VIET LETTER LOW RO*/ + RTUNI_ALPHA, /* U+00aaa7: TAI VIET LETTER HIGH RO*/ + RTUNI_ALPHA, /* U+00aaa8: TAI VIET LETTER LOW LO*/ + RTUNI_ALPHA, /* U+00aaa9: TAI VIET LETTER HIGH LO*/ + RTUNI_ALPHA, /* U+00aaaa: TAI VIET LETTER LOW VO*/ + RTUNI_ALPHA, /* U+00aaab: TAI VIET LETTER HIGH VO*/ + RTUNI_ALPHA, /* U+00aaac: TAI VIET LETTER LOW HO*/ + RTUNI_ALPHA, /* U+00aaad: TAI VIET LETTER HIGH HO*/ + RTUNI_ALPHA, /* U+00aaae: TAI VIET LETTER LOW O*/ + RTUNI_ALPHA, /* U+00aaaf: TAI VIET LETTER HIGH O*/ + RTUNI_ALPHA, /* U+00aab0: TAI VIET MAI KANG*/ + RTUNI_ALPHA, /* U+00aab1: TAI VIET VOWEL AA*/ + RTUNI_ALPHA, /* U+00aab2: TAI VIET VOWEL I*/ + RTUNI_ALPHA, /* U+00aab3: TAI VIET VOWEL UE*/ + RTUNI_ALPHA, /* U+00aab4: TAI VIET VOWEL U*/ + RTUNI_ALPHA, /* U+00aab5: TAI VIET VOWEL E*/ + RTUNI_ALPHA, /* U+00aab6: TAI VIET VOWEL O*/ + RTUNI_ALPHA, /* U+00aab7: TAI VIET MAI KHIT*/ + RTUNI_ALPHA, /* U+00aab8: TAI VIET VOWEL IA*/ + RTUNI_ALPHA, /* U+00aab9: TAI VIET VOWEL UEA*/ + RTUNI_ALPHA, /* U+00aaba: TAI VIET VOWEL UA*/ + RTUNI_ALPHA, /* U+00aabb: TAI VIET VOWEL AUE*/ + RTUNI_ALPHA, /* U+00aabc: TAI VIET VOWEL AY*/ + RTUNI_ALPHA, /* U+00aabd: TAI VIET VOWEL AN*/ + RTUNI_ALPHA, /* U+00aabe: TAI VIET VOWEL AM*/ + 0, /* U+00aabf: TAI VIET TONE MAI EK*/ + RTUNI_ALPHA, /* U+00aac0: TAI VIET TONE MAI NUENG*/ + 0, /* U+00aac1: TAI VIET TONE MAI THO*/ + RTUNI_ALPHA, /* U+00aac2: TAI VIET TONE MAI SONG*/ + 0, /* U+00aac3: */ + 0, /* U+00aac4: */ + 0, /* U+00aac5: */ + 0, /* U+00aac6: */ + 0, /* U+00aac7: */ + 0, /* U+00aac8: */ + 0, /* U+00aac9: */ + 0, /* U+00aaca: */ + 0, /* U+00aacb: */ + 0, /* U+00aacc: */ + 0, /* U+00aacd: */ + 0, /* U+00aace: */ + 0, /* U+00aacf: */ + 0, /* U+00aad0: */ + 0, /* U+00aad1: */ + 0, /* U+00aad2: */ + 0, /* U+00aad3: */ + 0, /* U+00aad4: */ + 0, /* U+00aad5: */ + 0, /* U+00aad6: */ + 0, /* U+00aad7: */ + 0, /* U+00aad8: */ + 0, /* U+00aad9: */ + 0, /* U+00aada: */ + RTUNI_ALPHA, /* U+00aadb: TAI VIET SYMBOL KON*/ + RTUNI_ALPHA, /* U+00aadc: TAI VIET SYMBOL NUENG*/ + RTUNI_ALPHA, /* U+00aadd: TAI VIET SYMBOL SAM*/ + 0, /* U+00aade: TAI VIET SYMBOL HO HOI*/ + 0, /* U+00aadf: TAI VIET SYMBOL KOI KOI*/ + RTUNI_ALPHA, /* U+00aae0: MEETEI MAYEK LETTER E*/ + RTUNI_ALPHA, /* U+00aae1: MEETEI MAYEK LETTER O*/ + RTUNI_ALPHA, /* U+00aae2: MEETEI MAYEK LETTER CHA*/ + RTUNI_ALPHA, /* U+00aae3: MEETEI MAYEK LETTER NYA*/ + RTUNI_ALPHA, /* U+00aae4: MEETEI MAYEK LETTER TTA*/ + RTUNI_ALPHA, /* U+00aae5: MEETEI MAYEK LETTER TTHA*/ + RTUNI_ALPHA, /* U+00aae6: MEETEI MAYEK LETTER DDA*/ + RTUNI_ALPHA, /* U+00aae7: MEETEI MAYEK LETTER DDHA*/ + RTUNI_ALPHA, /* U+00aae8: MEETEI MAYEK LETTER NNA*/ + RTUNI_ALPHA, /* U+00aae9: MEETEI MAYEK LETTER SHA*/ + RTUNI_ALPHA, /* U+00aaea: MEETEI MAYEK LETTER SSA*/ + RTUNI_ALPHA, /* U+00aaeb: MEETEI MAYEK VOWEL SIGN II*/ + RTUNI_ALPHA, /* U+00aaec: MEETEI MAYEK VOWEL SIGN UU*/ + RTUNI_ALPHA, /* U+00aaed: MEETEI MAYEK VOWEL SIGN AAI*/ + RTUNI_ALPHA, /* U+00aaee: MEETEI MAYEK VOWEL SIGN AU*/ + RTUNI_ALPHA, /* U+00aaef: MEETEI MAYEK VOWEL SIGN AAU*/ + 0, /* U+00aaf0: MEETEI MAYEK CHEIKHAN*/ + 0, /* U+00aaf1: MEETEI MAYEK AHANG KHUDAM*/ + RTUNI_ALPHA, /* U+00aaf2: MEETEI MAYEK ANJI*/ + RTUNI_ALPHA, /* U+00aaf3: MEETEI MAYEK SYLLABLE REPETITION MARK*/ + RTUNI_ALPHA, /* U+00aaf4: MEETEI MAYEK WORD REPETITION MARK*/ + RTUNI_ALPHA, /* U+00aaf5: MEETEI MAYEK VOWEL SIGN VISARGA*/ + 0, /* U+00aaf6: MEETEI MAYEK VIRAMA*/ + 0, /* U+00aaf7: */ + 0, /* U+00aaf8: */ + 0, /* U+00aaf9: */ + 0, /* U+00aafa: */ + 0, /* U+00aafb: */ + 0, /* U+00aafc: */ + 0, /* U+00aafd: */ + 0, /* U+00aafe: */ + 0, /* U+00aaff: */ + 0, /* U+00ab00: */ + RTUNI_ALPHA, /* U+00ab01: ETHIOPIC SYLLABLE TTHU*/ + RTUNI_ALPHA, /* U+00ab02: ETHIOPIC SYLLABLE TTHI*/ + RTUNI_ALPHA, /* U+00ab03: ETHIOPIC SYLLABLE TTHAA*/ + RTUNI_ALPHA, /* U+00ab04: ETHIOPIC SYLLABLE TTHEE*/ + RTUNI_ALPHA, /* U+00ab05: ETHIOPIC SYLLABLE TTHE*/ + RTUNI_ALPHA, /* U+00ab06: ETHIOPIC SYLLABLE TTHO*/ + 0, /* U+00ab07: */ + 0, /* U+00ab08: */ + RTUNI_ALPHA, /* U+00ab09: ETHIOPIC SYLLABLE DDHU*/ + RTUNI_ALPHA, /* U+00ab0a: ETHIOPIC SYLLABLE DDHI*/ + RTUNI_ALPHA, /* U+00ab0b: ETHIOPIC SYLLABLE DDHAA*/ + RTUNI_ALPHA, /* U+00ab0c: ETHIOPIC SYLLABLE DDHEE*/ + RTUNI_ALPHA, /* U+00ab0d: ETHIOPIC SYLLABLE DDHE*/ + RTUNI_ALPHA, /* U+00ab0e: ETHIOPIC SYLLABLE DDHO*/ + 0, /* U+00ab0f: */ + 0, /* U+00ab10: */ + RTUNI_ALPHA, /* U+00ab11: ETHIOPIC SYLLABLE DZU*/ + RTUNI_ALPHA, /* U+00ab12: ETHIOPIC SYLLABLE DZI*/ + RTUNI_ALPHA, /* U+00ab13: ETHIOPIC SYLLABLE DZAA*/ + RTUNI_ALPHA, /* U+00ab14: ETHIOPIC SYLLABLE DZEE*/ + RTUNI_ALPHA, /* U+00ab15: ETHIOPIC SYLLABLE DZE*/ + RTUNI_ALPHA, /* U+00ab16: ETHIOPIC SYLLABLE DZO*/ + 0, /* U+00ab17: */ + 0, /* U+00ab18: */ + 0, /* U+00ab19: */ + 0, /* U+00ab1a: */ + 0, /* U+00ab1b: */ + 0, /* U+00ab1c: */ + 0, /* U+00ab1d: */ + 0, /* U+00ab1e: */ + 0, /* U+00ab1f: */ + RTUNI_ALPHA, /* U+00ab20: ETHIOPIC SYLLABLE CCHHA*/ + RTUNI_ALPHA, /* U+00ab21: ETHIOPIC SYLLABLE CCHHU*/ + RTUNI_ALPHA, /* U+00ab22: ETHIOPIC SYLLABLE CCHHI*/ + RTUNI_ALPHA, /* U+00ab23: ETHIOPIC SYLLABLE CCHHAA*/ + RTUNI_ALPHA, /* U+00ab24: ETHIOPIC SYLLABLE CCHHEE*/ + RTUNI_ALPHA, /* U+00ab25: ETHIOPIC SYLLABLE CCHHE*/ + RTUNI_ALPHA, /* U+00ab26: ETHIOPIC SYLLABLE CCHHO*/ + 0, /* U+00ab27: */ + RTUNI_ALPHA, /* U+00ab28: ETHIOPIC SYLLABLE BBA*/ + RTUNI_ALPHA, /* U+00ab29: ETHIOPIC SYLLABLE BBU*/ + RTUNI_ALPHA, /* U+00ab2a: ETHIOPIC SYLLABLE BBI*/ + RTUNI_ALPHA, /* U+00ab2b: ETHIOPIC SYLLABLE BBAA*/ + RTUNI_ALPHA, /* U+00ab2c: ETHIOPIC SYLLABLE BBEE*/ + RTUNI_ALPHA, /* U+00ab2d: ETHIOPIC SYLLABLE BBE*/ + RTUNI_ALPHA, /* U+00ab2e: ETHIOPIC SYLLABLE BBO*/ + 0, /* U+00ab2f: */ + 0, /* U+00ab30: */ + 0, /* U+00ab31: */ + 0, /* U+00ab32: */ + 0, /* U+00ab33: */ + 0, /* U+00ab34: */ + 0, /* U+00ab35: */ + 0, /* U+00ab36: */ + 0, /* U+00ab37: */ + 0, /* U+00ab38: */ + 0, /* U+00ab39: */ + 0, /* U+00ab3a: */ + 0, /* U+00ab3b: */ + 0, /* U+00ab3c: */ + 0, /* U+00ab3d: */ + 0, /* U+00ab3e: */ + 0, /* U+00ab3f: */ + 0, /* U+00ab40: */ + 0, /* U+00ab41: */ + 0, /* U+00ab42: */ + 0, /* U+00ab43: */ + 0, /* U+00ab44: */ + 0, /* U+00ab45: */ + 0, /* U+00ab46: */ + 0, /* U+00ab47: */ + 0, /* U+00ab48: */ + 0, /* U+00ab49: */ + 0, /* U+00ab4a: */ + 0, /* U+00ab4b: */ + 0, /* U+00ab4c: */ + 0, /* U+00ab4d: */ + 0, /* U+00ab4e: */ + 0, /* U+00ab4f: */ + 0, /* U+00ab50: */ + 0, /* U+00ab51: */ + 0, /* U+00ab52: */ + 0, /* U+00ab53: */ + 0, /* U+00ab54: */ + 0, /* U+00ab55: */ + 0, /* U+00ab56: */ + 0, /* U+00ab57: */ + 0, /* U+00ab58: */ + 0, /* U+00ab59: */ + 0, /* U+00ab5a: */ + 0, /* U+00ab5b: */ + 0, /* U+00ab5c: */ + 0, /* U+00ab5d: */ + 0, /* U+00ab5e: */ + 0, /* U+00ab5f: */ + 0, /* U+00ab60: */ + 0, /* U+00ab61: */ + 0, /* U+00ab62: */ + 0, /* U+00ab63: */ + 0, /* U+00ab64: */ + 0, /* U+00ab65: */ + 0, /* U+00ab66: */ + 0, /* U+00ab67: */ + 0, /* U+00ab68: */ + 0, /* U+00ab69: */ + 0, /* U+00ab6a: */ + 0, /* U+00ab6b: */ + 0, /* U+00ab6c: */ + 0, /* U+00ab6d: */ + 0, /* U+00ab6e: */ + 0, /* U+00ab6f: */ + 0, /* U+00ab70: */ + 0, /* U+00ab71: */ + 0, /* U+00ab72: */ + 0, /* U+00ab73: */ + 0, /* U+00ab74: */ + 0, /* U+00ab75: */ + 0, /* U+00ab76: */ + 0, /* U+00ab77: */ + 0, /* U+00ab78: */ + 0, /* U+00ab79: */ + 0, /* U+00ab7a: */ + 0, /* U+00ab7b: */ + 0, /* U+00ab7c: */ + 0, /* U+00ab7d: */ + 0, /* U+00ab7e: */ + 0, /* U+00ab7f: */ + 0, /* U+00ab80: */ + 0, /* U+00ab81: */ + 0, /* U+00ab82: */ + 0, /* U+00ab83: */ + 0, /* U+00ab84: */ + 0, /* U+00ab85: */ + 0, /* U+00ab86: */ + 0, /* U+00ab87: */ + 0, /* U+00ab88: */ + 0, /* U+00ab89: */ + 0, /* U+00ab8a: */ + 0, /* U+00ab8b: */ + 0, /* U+00ab8c: */ + 0, /* U+00ab8d: */ + 0, /* U+00ab8e: */ + 0, /* U+00ab8f: */ + 0, /* U+00ab90: */ + 0, /* U+00ab91: */ + 0, /* U+00ab92: */ + 0, /* U+00ab93: */ + 0, /* U+00ab94: */ + 0, /* U+00ab95: */ + 0, /* U+00ab96: */ + 0, /* U+00ab97: */ + 0, /* U+00ab98: */ + 0, /* U+00ab99: */ + 0, /* U+00ab9a: */ + 0, /* U+00ab9b: */ + 0, /* U+00ab9c: */ + 0, /* U+00ab9d: */ + 0, /* U+00ab9e: */ + 0, /* U+00ab9f: */ + 0, /* U+00aba0: */ + 0, /* U+00aba1: */ + 0, /* U+00aba2: */ + 0, /* U+00aba3: */ + 0, /* U+00aba4: */ + 0, /* U+00aba5: */ + 0, /* U+00aba6: */ + 0, /* U+00aba7: */ + 0, /* U+00aba8: */ + 0, /* U+00aba9: */ + 0, /* U+00abaa: */ + 0, /* U+00abab: */ + 0, /* U+00abac: */ + 0, /* U+00abad: */ + 0, /* U+00abae: */ + 0, /* U+00abaf: */ + 0, /* U+00abb0: */ + 0, /* U+00abb1: */ + 0, /* U+00abb2: */ + 0, /* U+00abb3: */ + 0, /* U+00abb4: */ + 0, /* U+00abb5: */ + 0, /* U+00abb6: */ + 0, /* U+00abb7: */ + 0, /* U+00abb8: */ + 0, /* U+00abb9: */ + 0, /* U+00abba: */ + 0, /* U+00abbb: */ + 0, /* U+00abbc: */ + 0, /* U+00abbd: */ + 0, /* U+00abbe: */ + 0, /* U+00abbf: */ + RTUNI_ALPHA, /* U+00abc0: MEETEI MAYEK LETTER KOK*/ + RTUNI_ALPHA, /* U+00abc1: MEETEI MAYEK LETTER SAM*/ + RTUNI_ALPHA, /* U+00abc2: MEETEI MAYEK LETTER LAI*/ + RTUNI_ALPHA, /* U+00abc3: MEETEI MAYEK LETTER MIT*/ + RTUNI_ALPHA, /* U+00abc4: MEETEI MAYEK LETTER PA*/ + RTUNI_ALPHA, /* U+00abc5: MEETEI MAYEK LETTER NA*/ + RTUNI_ALPHA, /* U+00abc6: MEETEI MAYEK LETTER CHIL*/ + RTUNI_ALPHA, /* U+00abc7: MEETEI MAYEK LETTER TIL*/ + RTUNI_ALPHA, /* U+00abc8: MEETEI MAYEK LETTER KHOU*/ + RTUNI_ALPHA, /* U+00abc9: MEETEI MAYEK LETTER NGOU*/ + RTUNI_ALPHA, /* U+00abca: MEETEI MAYEK LETTER THOU*/ + RTUNI_ALPHA, /* U+00abcb: MEETEI MAYEK LETTER WAI*/ + RTUNI_ALPHA, /* U+00abcc: MEETEI MAYEK LETTER YANG*/ + RTUNI_ALPHA, /* U+00abcd: MEETEI MAYEK LETTER HUK*/ + RTUNI_ALPHA, /* U+00abce: MEETEI MAYEK LETTER UN*/ + RTUNI_ALPHA, /* U+00abcf: MEETEI MAYEK LETTER I*/ + RTUNI_ALPHA, /* U+00abd0: MEETEI MAYEK LETTER PHAM*/ + RTUNI_ALPHA, /* U+00abd1: MEETEI MAYEK LETTER ATIYA*/ + RTUNI_ALPHA, /* U+00abd2: MEETEI MAYEK LETTER GOK*/ + RTUNI_ALPHA, /* U+00abd3: MEETEI MAYEK LETTER JHAM*/ + RTUNI_ALPHA, /* U+00abd4: MEETEI MAYEK LETTER RAI*/ + RTUNI_ALPHA, /* U+00abd5: MEETEI MAYEK LETTER BA*/ + RTUNI_ALPHA, /* U+00abd6: MEETEI MAYEK LETTER JIL*/ + RTUNI_ALPHA, /* U+00abd7: MEETEI MAYEK LETTER DIL*/ + RTUNI_ALPHA, /* U+00abd8: MEETEI MAYEK LETTER GHOU*/ + RTUNI_ALPHA, /* U+00abd9: MEETEI MAYEK LETTER DHOU*/ + RTUNI_ALPHA, /* U+00abda: MEETEI MAYEK LETTER BHAM*/ + RTUNI_ALPHA, /* U+00abdb: MEETEI MAYEK LETTER KOK LONSUM*/ + RTUNI_ALPHA, /* U+00abdc: MEETEI MAYEK LETTER LAI LONSUM*/ + RTUNI_ALPHA, /* U+00abdd: MEETEI MAYEK LETTER MIT LONSUM*/ + RTUNI_ALPHA, /* U+00abde: MEETEI MAYEK LETTER PA LONSUM*/ + RTUNI_ALPHA, /* U+00abdf: MEETEI MAYEK LETTER NA LONSUM*/ + RTUNI_ALPHA, /* U+00abe0: MEETEI MAYEK LETTER TIL LONSUM*/ + RTUNI_ALPHA, /* U+00abe1: MEETEI MAYEK LETTER NGOU LONSUM*/ + RTUNI_ALPHA, /* U+00abe2: MEETEI MAYEK LETTER I LONSUM*/ + RTUNI_ALPHA, /* U+00abe3: MEETEI MAYEK VOWEL SIGN ONAP*/ + RTUNI_ALPHA, /* U+00abe4: MEETEI MAYEK VOWEL SIGN INAP*/ + RTUNI_ALPHA, /* U+00abe5: MEETEI MAYEK VOWEL SIGN ANAP*/ + RTUNI_ALPHA, /* U+00abe6: MEETEI MAYEK VOWEL SIGN YENAP*/ + RTUNI_ALPHA, /* U+00abe7: MEETEI MAYEK VOWEL SIGN SOUNAP*/ + RTUNI_ALPHA, /* U+00abe8: MEETEI MAYEK VOWEL SIGN UNAP*/ + RTUNI_ALPHA, /* U+00abe9: MEETEI MAYEK VOWEL SIGN CHEINAP*/ + RTUNI_ALPHA, /* U+00abea: MEETEI MAYEK VOWEL SIGN NUNG*/ + 0, /* U+00abeb: MEETEI MAYEK CHEIKHEI*/ + 0, /* U+00abec: MEETEI MAYEK LUM IYEK*/ + 0, /* U+00abed: MEETEI MAYEK APUN IYEK*/ + 0, /* U+00abee: */ + 0, /* U+00abef: */ + RTUNI_DDIGIT, /* U+00abf0: MEETEI MAYEK DIGIT ZERO*/ + RTUNI_DDIGIT, /* U+00abf1: MEETEI MAYEK DIGIT ONE*/ + RTUNI_DDIGIT, /* U+00abf2: MEETEI MAYEK DIGIT TWO*/ + RTUNI_DDIGIT, /* U+00abf3: MEETEI MAYEK DIGIT THREE*/ + RTUNI_DDIGIT, /* U+00abf4: MEETEI MAYEK DIGIT FOUR*/ + RTUNI_DDIGIT, /* U+00abf5: MEETEI MAYEK DIGIT FIVE*/ + RTUNI_DDIGIT, /* U+00abf6: MEETEI MAYEK DIGIT SIX*/ + RTUNI_DDIGIT, /* U+00abf7: MEETEI MAYEK DIGIT SEVEN*/ + RTUNI_DDIGIT, /* U+00abf8: MEETEI MAYEK DIGIT EIGHT*/ + RTUNI_DDIGIT, /* U+00abf9: MEETEI MAYEK DIGIT NINE*/ + 0, /* U+00abfa: */ + 0, /* U+00abfb: */ + 0, /* U+00abfc: */ + 0, /* U+00abfd: */ + 0, /* U+00abfe: */ + 0, /* U+00abff: */ + RTUNI_ALPHA, /* U+00ac00: */ + RTUNI_ALPHA, /* U+00ac01: */ + RTUNI_ALPHA, /* U+00ac02: */ + RTUNI_ALPHA, /* U+00ac03: */ + RTUNI_ALPHA, /* U+00ac04: */ + RTUNI_ALPHA, /* U+00ac05: */ + RTUNI_ALPHA, /* U+00ac06: */ + RTUNI_ALPHA, /* U+00ac07: */ + RTUNI_ALPHA, /* U+00ac08: */ + RTUNI_ALPHA, /* U+00ac09: */ + RTUNI_ALPHA, /* U+00ac0a: */ + RTUNI_ALPHA, /* U+00ac0b: */ + RTUNI_ALPHA, /* U+00ac0c: */ + RTUNI_ALPHA, /* U+00ac0d: */ + RTUNI_ALPHA, /* U+00ac0e: */ + RTUNI_ALPHA, /* U+00ac0f: */ + RTUNI_ALPHA, /* U+00ac10: */ + RTUNI_ALPHA, /* U+00ac11: */ + RTUNI_ALPHA, /* U+00ac12: */ + RTUNI_ALPHA, /* U+00ac13: */ + RTUNI_ALPHA, /* U+00ac14: */ + RTUNI_ALPHA, /* U+00ac15: */ + RTUNI_ALPHA, /* U+00ac16: */ + RTUNI_ALPHA, /* U+00ac17: */ + RTUNI_ALPHA, /* U+00ac18: */ + RTUNI_ALPHA, /* U+00ac19: */ + RTUNI_ALPHA, /* U+00ac1a: */ + RTUNI_ALPHA, /* U+00ac1b: */ + RTUNI_ALPHA, /* U+00ac1c: */ + RTUNI_ALPHA, /* U+00ac1d: */ + RTUNI_ALPHA, /* U+00ac1e: */ + RTUNI_ALPHA, /* U+00ac1f: */ + RTUNI_ALPHA, /* U+00ac20: */ + RTUNI_ALPHA, /* U+00ac21: */ + RTUNI_ALPHA, /* U+00ac22: */ + RTUNI_ALPHA, /* U+00ac23: */ + RTUNI_ALPHA, /* U+00ac24: */ + RTUNI_ALPHA, /* U+00ac25: */ + RTUNI_ALPHA, /* U+00ac26: */ + RTUNI_ALPHA, /* U+00ac27: */ + RTUNI_ALPHA, /* U+00ac28: */ + RTUNI_ALPHA, /* U+00ac29: */ + RTUNI_ALPHA, /* U+00ac2a: */ + RTUNI_ALPHA, /* U+00ac2b: */ + RTUNI_ALPHA, /* U+00ac2c: */ + RTUNI_ALPHA, /* U+00ac2d: */ + RTUNI_ALPHA, /* U+00ac2e: */ + RTUNI_ALPHA, /* U+00ac2f: */ + RTUNI_ALPHA, /* U+00ac30: */ + RTUNI_ALPHA, /* U+00ac31: */ + RTUNI_ALPHA, /* U+00ac32: */ + RTUNI_ALPHA, /* U+00ac33: */ + RTUNI_ALPHA, /* U+00ac34: */ + RTUNI_ALPHA, /* U+00ac35: */ + RTUNI_ALPHA, /* U+00ac36: */ + RTUNI_ALPHA, /* U+00ac37: */ + RTUNI_ALPHA, /* U+00ac38: */ + RTUNI_ALPHA, /* U+00ac39: */ + RTUNI_ALPHA, /* U+00ac3a: */ + RTUNI_ALPHA, /* U+00ac3b: */ + RTUNI_ALPHA, /* U+00ac3c: */ + RTUNI_ALPHA, /* U+00ac3d: */ + RTUNI_ALPHA, /* U+00ac3e: */ + RTUNI_ALPHA, /* U+00ac3f: */ + RTUNI_ALPHA, /* U+00ac40: */ + RTUNI_ALPHA, /* U+00ac41: */ + RTUNI_ALPHA, /* U+00ac42: */ + RTUNI_ALPHA, /* U+00ac43: */ + RTUNI_ALPHA, /* U+00ac44: */ + RTUNI_ALPHA, /* U+00ac45: */ + RTUNI_ALPHA, /* U+00ac46: */ + RTUNI_ALPHA, /* U+00ac47: */ + RTUNI_ALPHA, /* U+00ac48: */ + RTUNI_ALPHA, /* U+00ac49: */ + RTUNI_ALPHA, /* U+00ac4a: */ + RTUNI_ALPHA, /* U+00ac4b: */ + RTUNI_ALPHA, /* U+00ac4c: */ + RTUNI_ALPHA, /* U+00ac4d: */ + RTUNI_ALPHA, /* U+00ac4e: */ + RTUNI_ALPHA, /* U+00ac4f: */ + RTUNI_ALPHA, /* U+00ac50: */ + RTUNI_ALPHA, /* U+00ac51: */ + RTUNI_ALPHA, /* U+00ac52: */ + RTUNI_ALPHA, /* U+00ac53: */ + RTUNI_ALPHA, /* U+00ac54: */ + RTUNI_ALPHA, /* U+00ac55: */ + RTUNI_ALPHA, /* U+00ac56: */ + RTUNI_ALPHA, /* U+00ac57: */ + RTUNI_ALPHA, /* U+00ac58: */ + RTUNI_ALPHA, /* U+00ac59: */ + RTUNI_ALPHA, /* U+00ac5a: */ + RTUNI_ALPHA, /* U+00ac5b: */ + RTUNI_ALPHA, /* U+00ac5c: */ + RTUNI_ALPHA, /* U+00ac5d: */ + RTUNI_ALPHA, /* U+00ac5e: */ + RTUNI_ALPHA, /* U+00ac5f: */ + RTUNI_ALPHA, /* U+00ac60: */ + RTUNI_ALPHA, /* U+00ac61: */ + RTUNI_ALPHA, /* U+00ac62: */ + RTUNI_ALPHA, /* U+00ac63: */ + RTUNI_ALPHA, /* U+00ac64: */ + RTUNI_ALPHA, /* U+00ac65: */ + RTUNI_ALPHA, /* U+00ac66: */ + RTUNI_ALPHA, /* U+00ac67: */ + RTUNI_ALPHA, /* U+00ac68: */ + RTUNI_ALPHA, /* U+00ac69: */ + RTUNI_ALPHA, /* U+00ac6a: */ + RTUNI_ALPHA, /* U+00ac6b: */ + RTUNI_ALPHA, /* U+00ac6c: */ + RTUNI_ALPHA, /* U+00ac6d: */ + RTUNI_ALPHA, /* U+00ac6e: */ + RTUNI_ALPHA, /* U+00ac6f: */ + RTUNI_ALPHA, /* U+00ac70: */ + RTUNI_ALPHA, /* U+00ac71: */ + RTUNI_ALPHA, /* U+00ac72: */ + RTUNI_ALPHA, /* U+00ac73: */ + RTUNI_ALPHA, /* U+00ac74: */ + RTUNI_ALPHA, /* U+00ac75: */ + RTUNI_ALPHA, /* U+00ac76: */ + RTUNI_ALPHA, /* U+00ac77: */ + RTUNI_ALPHA, /* U+00ac78: */ + RTUNI_ALPHA, /* U+00ac79: */ + RTUNI_ALPHA, /* U+00ac7a: */ + RTUNI_ALPHA, /* U+00ac7b: */ + RTUNI_ALPHA, /* U+00ac7c: */ + RTUNI_ALPHA, /* U+00ac7d: */ + RTUNI_ALPHA, /* U+00ac7e: */ + RTUNI_ALPHA, /* U+00ac7f: */ + RTUNI_ALPHA, /* U+00ac80: */ + RTUNI_ALPHA, /* U+00ac81: */ + RTUNI_ALPHA, /* U+00ac82: */ + RTUNI_ALPHA, /* U+00ac83: */ + RTUNI_ALPHA, /* U+00ac84: */ + RTUNI_ALPHA, /* U+00ac85: */ + RTUNI_ALPHA, /* U+00ac86: */ + RTUNI_ALPHA, /* U+00ac87: */ + RTUNI_ALPHA, /* U+00ac88: */ + RTUNI_ALPHA, /* U+00ac89: */ + RTUNI_ALPHA, /* U+00ac8a: */ + RTUNI_ALPHA, /* U+00ac8b: */ + RTUNI_ALPHA, /* U+00ac8c: */ + RTUNI_ALPHA, /* U+00ac8d: */ + RTUNI_ALPHA, /* U+00ac8e: */ + RTUNI_ALPHA, /* U+00ac8f: */ + RTUNI_ALPHA, /* U+00ac90: */ + RTUNI_ALPHA, /* U+00ac91: */ + RTUNI_ALPHA, /* U+00ac92: */ + RTUNI_ALPHA, /* U+00ac93: */ + RTUNI_ALPHA, /* U+00ac94: */ + RTUNI_ALPHA, /* U+00ac95: */ + RTUNI_ALPHA, /* U+00ac96: */ + RTUNI_ALPHA, /* U+00ac97: */ + RTUNI_ALPHA, /* U+00ac98: */ + RTUNI_ALPHA, /* U+00ac99: */ + RTUNI_ALPHA, /* U+00ac9a: */ + RTUNI_ALPHA, /* U+00ac9b: */ + RTUNI_ALPHA, /* U+00ac9c: */ + RTUNI_ALPHA, /* U+00ac9d: */ + RTUNI_ALPHA, /* U+00ac9e: */ + RTUNI_ALPHA, /* U+00ac9f: */ + RTUNI_ALPHA, /* U+00aca0: */ + RTUNI_ALPHA, /* U+00aca1: */ + RTUNI_ALPHA, /* U+00aca2: */ + RTUNI_ALPHA, /* U+00aca3: */ + RTUNI_ALPHA, /* U+00aca4: */ + RTUNI_ALPHA, /* U+00aca5: */ + RTUNI_ALPHA, /* U+00aca6: */ + RTUNI_ALPHA, /* U+00aca7: */ + RTUNI_ALPHA, /* U+00aca8: */ + RTUNI_ALPHA, /* U+00aca9: */ + RTUNI_ALPHA, /* U+00acaa: */ + RTUNI_ALPHA, /* U+00acab: */ + RTUNI_ALPHA, /* U+00acac: */ + RTUNI_ALPHA, /* U+00acad: */ + RTUNI_ALPHA, /* U+00acae: */ + RTUNI_ALPHA, /* U+00acaf: */ + RTUNI_ALPHA, /* U+00acb0: */ + RTUNI_ALPHA, /* U+00acb1: */ + RTUNI_ALPHA, /* U+00acb2: */ + RTUNI_ALPHA, /* U+00acb3: */ + RTUNI_ALPHA, /* U+00acb4: */ + RTUNI_ALPHA, /* U+00acb5: */ + RTUNI_ALPHA, /* U+00acb6: */ + RTUNI_ALPHA, /* U+00acb7: */ + RTUNI_ALPHA, /* U+00acb8: */ + RTUNI_ALPHA, /* U+00acb9: */ + RTUNI_ALPHA, /* U+00acba: */ + RTUNI_ALPHA, /* U+00acbb: */ + RTUNI_ALPHA, /* U+00acbc: */ + RTUNI_ALPHA, /* U+00acbd: */ + RTUNI_ALPHA, /* U+00acbe: */ + RTUNI_ALPHA, /* U+00acbf: */ + RTUNI_ALPHA, /* U+00acc0: */ + RTUNI_ALPHA, /* U+00acc1: */ + RTUNI_ALPHA, /* U+00acc2: */ + RTUNI_ALPHA, /* U+00acc3: */ + RTUNI_ALPHA, /* U+00acc4: */ + RTUNI_ALPHA, /* U+00acc5: */ + RTUNI_ALPHA, /* U+00acc6: */ + RTUNI_ALPHA, /* U+00acc7: */ + RTUNI_ALPHA, /* U+00acc8: */ + RTUNI_ALPHA, /* U+00acc9: */ + RTUNI_ALPHA, /* U+00acca: */ + RTUNI_ALPHA, /* U+00accb: */ + RTUNI_ALPHA, /* U+00accc: */ + RTUNI_ALPHA, /* U+00accd: */ + RTUNI_ALPHA, /* U+00acce: */ + RTUNI_ALPHA, /* U+00accf: */ + RTUNI_ALPHA, /* U+00acd0: */ + RTUNI_ALPHA, /* U+00acd1: */ + RTUNI_ALPHA, /* U+00acd2: */ + RTUNI_ALPHA, /* U+00acd3: */ + RTUNI_ALPHA, /* U+00acd4: */ + RTUNI_ALPHA, /* U+00acd5: */ + RTUNI_ALPHA, /* U+00acd6: */ + RTUNI_ALPHA, /* U+00acd7: */ + RTUNI_ALPHA, /* U+00acd8: */ + RTUNI_ALPHA, /* U+00acd9: */ + RTUNI_ALPHA, /* U+00acda: */ + RTUNI_ALPHA, /* U+00acdb: */ + RTUNI_ALPHA, /* U+00acdc: */ + RTUNI_ALPHA, /* U+00acdd: */ + RTUNI_ALPHA, /* U+00acde: */ + RTUNI_ALPHA, /* U+00acdf: */ + RTUNI_ALPHA, /* U+00ace0: */ + RTUNI_ALPHA, /* U+00ace1: */ + RTUNI_ALPHA, /* U+00ace2: */ + RTUNI_ALPHA, /* U+00ace3: */ + RTUNI_ALPHA, /* U+00ace4: */ + RTUNI_ALPHA, /* U+00ace5: */ + RTUNI_ALPHA, /* U+00ace6: */ + RTUNI_ALPHA, /* U+00ace7: */ + RTUNI_ALPHA, /* U+00ace8: */ + RTUNI_ALPHA, /* U+00ace9: */ + RTUNI_ALPHA, /* U+00acea: */ + RTUNI_ALPHA, /* U+00aceb: */ + RTUNI_ALPHA, /* U+00acec: */ + RTUNI_ALPHA, /* U+00aced: */ + RTUNI_ALPHA, /* U+00acee: */ + RTUNI_ALPHA, /* U+00acef: */ + RTUNI_ALPHA, /* U+00acf0: */ + RTUNI_ALPHA, /* U+00acf1: */ + RTUNI_ALPHA, /* U+00acf2: */ + RTUNI_ALPHA, /* U+00acf3: */ + RTUNI_ALPHA, /* U+00acf4: */ + RTUNI_ALPHA, /* U+00acf5: */ + RTUNI_ALPHA, /* U+00acf6: */ + RTUNI_ALPHA, /* U+00acf7: */ + RTUNI_ALPHA, /* U+00acf8: */ + RTUNI_ALPHA, /* U+00acf9: */ + RTUNI_ALPHA, /* U+00acfa: */ + RTUNI_ALPHA, /* U+00acfb: */ + RTUNI_ALPHA, /* U+00acfc: */ + RTUNI_ALPHA, /* U+00acfd: */ + RTUNI_ALPHA, /* U+00acfe: */ + RTUNI_ALPHA, /* U+00acff: */ + RTUNI_ALPHA, /* U+00ad00: */ + RTUNI_ALPHA, /* U+00ad01: */ + RTUNI_ALPHA, /* U+00ad02: */ + RTUNI_ALPHA, /* U+00ad03: */ + RTUNI_ALPHA, /* U+00ad04: */ + RTUNI_ALPHA, /* U+00ad05: */ + RTUNI_ALPHA, /* U+00ad06: */ + RTUNI_ALPHA, /* U+00ad07: */ + RTUNI_ALPHA, /* U+00ad08: */ + RTUNI_ALPHA, /* U+00ad09: */ + RTUNI_ALPHA, /* U+00ad0a: */ + RTUNI_ALPHA, /* U+00ad0b: */ + RTUNI_ALPHA, /* U+00ad0c: */ + RTUNI_ALPHA, /* U+00ad0d: */ + RTUNI_ALPHA, /* U+00ad0e: */ + RTUNI_ALPHA, /* U+00ad0f: */ + RTUNI_ALPHA, /* U+00ad10: */ + RTUNI_ALPHA, /* U+00ad11: */ + RTUNI_ALPHA, /* U+00ad12: */ + RTUNI_ALPHA, /* U+00ad13: */ + RTUNI_ALPHA, /* U+00ad14: */ + RTUNI_ALPHA, /* U+00ad15: */ + RTUNI_ALPHA, /* U+00ad16: */ + RTUNI_ALPHA, /* U+00ad17: */ + RTUNI_ALPHA, /* U+00ad18: */ + RTUNI_ALPHA, /* U+00ad19: */ + RTUNI_ALPHA, /* U+00ad1a: */ + RTUNI_ALPHA, /* U+00ad1b: */ + RTUNI_ALPHA, /* U+00ad1c: */ + RTUNI_ALPHA, /* U+00ad1d: */ + RTUNI_ALPHA, /* U+00ad1e: */ + RTUNI_ALPHA, /* U+00ad1f: */ + RTUNI_ALPHA, /* U+00ad20: */ + RTUNI_ALPHA, /* U+00ad21: */ + RTUNI_ALPHA, /* U+00ad22: */ + RTUNI_ALPHA, /* U+00ad23: */ + RTUNI_ALPHA, /* U+00ad24: */ + RTUNI_ALPHA, /* U+00ad25: */ + RTUNI_ALPHA, /* U+00ad26: */ + RTUNI_ALPHA, /* U+00ad27: */ + RTUNI_ALPHA, /* U+00ad28: */ + RTUNI_ALPHA, /* U+00ad29: */ + RTUNI_ALPHA, /* U+00ad2a: */ + RTUNI_ALPHA, /* U+00ad2b: */ + RTUNI_ALPHA, /* U+00ad2c: */ + RTUNI_ALPHA, /* U+00ad2d: */ + RTUNI_ALPHA, /* U+00ad2e: */ + RTUNI_ALPHA, /* U+00ad2f: */ + RTUNI_ALPHA, /* U+00ad30: */ + RTUNI_ALPHA, /* U+00ad31: */ + RTUNI_ALPHA, /* U+00ad32: */ + RTUNI_ALPHA, /* U+00ad33: */ + RTUNI_ALPHA, /* U+00ad34: */ + RTUNI_ALPHA, /* U+00ad35: */ + RTUNI_ALPHA, /* U+00ad36: */ + RTUNI_ALPHA, /* U+00ad37: */ + RTUNI_ALPHA, /* U+00ad38: */ + RTUNI_ALPHA, /* U+00ad39: */ + RTUNI_ALPHA, /* U+00ad3a: */ + RTUNI_ALPHA, /* U+00ad3b: */ + RTUNI_ALPHA, /* U+00ad3c: */ + RTUNI_ALPHA, /* U+00ad3d: */ + RTUNI_ALPHA, /* U+00ad3e: */ + RTUNI_ALPHA, /* U+00ad3f: */ + RTUNI_ALPHA, /* U+00ad40: */ + RTUNI_ALPHA, /* U+00ad41: */ + RTUNI_ALPHA, /* U+00ad42: */ + RTUNI_ALPHA, /* U+00ad43: */ + RTUNI_ALPHA, /* U+00ad44: */ + RTUNI_ALPHA, /* U+00ad45: */ + RTUNI_ALPHA, /* U+00ad46: */ + RTUNI_ALPHA, /* U+00ad47: */ + RTUNI_ALPHA, /* U+00ad48: */ + RTUNI_ALPHA, /* U+00ad49: */ + RTUNI_ALPHA, /* U+00ad4a: */ + RTUNI_ALPHA, /* U+00ad4b: */ + RTUNI_ALPHA, /* U+00ad4c: */ + RTUNI_ALPHA, /* U+00ad4d: */ + RTUNI_ALPHA, /* U+00ad4e: */ + RTUNI_ALPHA, /* U+00ad4f: */ + RTUNI_ALPHA, /* U+00ad50: */ + RTUNI_ALPHA, /* U+00ad51: */ + RTUNI_ALPHA, /* U+00ad52: */ + RTUNI_ALPHA, /* U+00ad53: */ + RTUNI_ALPHA, /* U+00ad54: */ + RTUNI_ALPHA, /* U+00ad55: */ + RTUNI_ALPHA, /* U+00ad56: */ + RTUNI_ALPHA, /* U+00ad57: */ + RTUNI_ALPHA, /* U+00ad58: */ + RTUNI_ALPHA, /* U+00ad59: */ + RTUNI_ALPHA, /* U+00ad5a: */ + RTUNI_ALPHA, /* U+00ad5b: */ + RTUNI_ALPHA, /* U+00ad5c: */ + RTUNI_ALPHA, /* U+00ad5d: */ + RTUNI_ALPHA, /* U+00ad5e: */ + RTUNI_ALPHA, /* U+00ad5f: */ + RTUNI_ALPHA, /* U+00ad60: */ + RTUNI_ALPHA, /* U+00ad61: */ + RTUNI_ALPHA, /* U+00ad62: */ + RTUNI_ALPHA, /* U+00ad63: */ + RTUNI_ALPHA, /* U+00ad64: */ + RTUNI_ALPHA, /* U+00ad65: */ + RTUNI_ALPHA, /* U+00ad66: */ + RTUNI_ALPHA, /* U+00ad67: */ + RTUNI_ALPHA, /* U+00ad68: */ + RTUNI_ALPHA, /* U+00ad69: */ + RTUNI_ALPHA, /* U+00ad6a: */ + RTUNI_ALPHA, /* U+00ad6b: */ + RTUNI_ALPHA, /* U+00ad6c: */ + RTUNI_ALPHA, /* U+00ad6d: */ + RTUNI_ALPHA, /* U+00ad6e: */ + RTUNI_ALPHA, /* U+00ad6f: */ + RTUNI_ALPHA, /* U+00ad70: */ + RTUNI_ALPHA, /* U+00ad71: */ + RTUNI_ALPHA, /* U+00ad72: */ + RTUNI_ALPHA, /* U+00ad73: */ + RTUNI_ALPHA, /* U+00ad74: */ + RTUNI_ALPHA, /* U+00ad75: */ + RTUNI_ALPHA, /* U+00ad76: */ + RTUNI_ALPHA, /* U+00ad77: */ + RTUNI_ALPHA, /* U+00ad78: */ + RTUNI_ALPHA, /* U+00ad79: */ + RTUNI_ALPHA, /* U+00ad7a: */ + RTUNI_ALPHA, /* U+00ad7b: */ + RTUNI_ALPHA, /* U+00ad7c: */ + RTUNI_ALPHA, /* U+00ad7d: */ + RTUNI_ALPHA, /* U+00ad7e: */ + RTUNI_ALPHA, /* U+00ad7f: */ + RTUNI_ALPHA, /* U+00ad80: */ + RTUNI_ALPHA, /* U+00ad81: */ + RTUNI_ALPHA, /* U+00ad82: */ + RTUNI_ALPHA, /* U+00ad83: */ + RTUNI_ALPHA, /* U+00ad84: */ + RTUNI_ALPHA, /* U+00ad85: */ + RTUNI_ALPHA, /* U+00ad86: */ + RTUNI_ALPHA, /* U+00ad87: */ + RTUNI_ALPHA, /* U+00ad88: */ + RTUNI_ALPHA, /* U+00ad89: */ + RTUNI_ALPHA, /* U+00ad8a: */ + RTUNI_ALPHA, /* U+00ad8b: */ + RTUNI_ALPHA, /* U+00ad8c: */ + RTUNI_ALPHA, /* U+00ad8d: */ + RTUNI_ALPHA, /* U+00ad8e: */ + RTUNI_ALPHA, /* U+00ad8f: */ + RTUNI_ALPHA, /* U+00ad90: */ + RTUNI_ALPHA, /* U+00ad91: */ + RTUNI_ALPHA, /* U+00ad92: */ + RTUNI_ALPHA, /* U+00ad93: */ + RTUNI_ALPHA, /* U+00ad94: */ + RTUNI_ALPHA, /* U+00ad95: */ + RTUNI_ALPHA, /* U+00ad96: */ + RTUNI_ALPHA, /* U+00ad97: */ + RTUNI_ALPHA, /* U+00ad98: */ + RTUNI_ALPHA, /* U+00ad99: */ + RTUNI_ALPHA, /* U+00ad9a: */ + RTUNI_ALPHA, /* U+00ad9b: */ + RTUNI_ALPHA, /* U+00ad9c: */ + RTUNI_ALPHA, /* U+00ad9d: */ + RTUNI_ALPHA, /* U+00ad9e: */ + RTUNI_ALPHA, /* U+00ad9f: */ + RTUNI_ALPHA, /* U+00ada0: */ + RTUNI_ALPHA, /* U+00ada1: */ + RTUNI_ALPHA, /* U+00ada2: */ + RTUNI_ALPHA, /* U+00ada3: */ + RTUNI_ALPHA, /* U+00ada4: */ + RTUNI_ALPHA, /* U+00ada5: */ + RTUNI_ALPHA, /* U+00ada6: */ + RTUNI_ALPHA, /* U+00ada7: */ + RTUNI_ALPHA, /* U+00ada8: */ + RTUNI_ALPHA, /* U+00ada9: */ + RTUNI_ALPHA, /* U+00adaa: */ + RTUNI_ALPHA, /* U+00adab: */ + RTUNI_ALPHA, /* U+00adac: */ + RTUNI_ALPHA, /* U+00adad: */ + RTUNI_ALPHA, /* U+00adae: */ + RTUNI_ALPHA, /* U+00adaf: */ + RTUNI_ALPHA, /* U+00adb0: */ + RTUNI_ALPHA, /* U+00adb1: */ + RTUNI_ALPHA, /* U+00adb2: */ + RTUNI_ALPHA, /* U+00adb3: */ + RTUNI_ALPHA, /* U+00adb4: */ + RTUNI_ALPHA, /* U+00adb5: */ + RTUNI_ALPHA, /* U+00adb6: */ + RTUNI_ALPHA, /* U+00adb7: */ + RTUNI_ALPHA, /* U+00adb8: */ + RTUNI_ALPHA, /* U+00adb9: */ + RTUNI_ALPHA, /* U+00adba: */ + RTUNI_ALPHA, /* U+00adbb: */ + RTUNI_ALPHA, /* U+00adbc: */ + RTUNI_ALPHA, /* U+00adbd: */ + RTUNI_ALPHA, /* U+00adbe: */ + RTUNI_ALPHA, /* U+00adbf: */ + RTUNI_ALPHA, /* U+00adc0: */ + RTUNI_ALPHA, /* U+00adc1: */ + RTUNI_ALPHA, /* U+00adc2: */ + RTUNI_ALPHA, /* U+00adc3: */ + RTUNI_ALPHA, /* U+00adc4: */ + RTUNI_ALPHA, /* U+00adc5: */ + RTUNI_ALPHA, /* U+00adc6: */ + RTUNI_ALPHA, /* U+00adc7: */ + RTUNI_ALPHA, /* U+00adc8: */ + RTUNI_ALPHA, /* U+00adc9: */ + RTUNI_ALPHA, /* U+00adca: */ + RTUNI_ALPHA, /* U+00adcb: */ + RTUNI_ALPHA, /* U+00adcc: */ + RTUNI_ALPHA, /* U+00adcd: */ + RTUNI_ALPHA, /* U+00adce: */ + RTUNI_ALPHA, /* U+00adcf: */ + RTUNI_ALPHA, /* U+00add0: */ + RTUNI_ALPHA, /* U+00add1: */ + RTUNI_ALPHA, /* U+00add2: */ + RTUNI_ALPHA, /* U+00add3: */ + RTUNI_ALPHA, /* U+00add4: */ + RTUNI_ALPHA, /* U+00add5: */ + RTUNI_ALPHA, /* U+00add6: */ + RTUNI_ALPHA, /* U+00add7: */ + RTUNI_ALPHA, /* U+00add8: */ + RTUNI_ALPHA, /* U+00add9: */ + RTUNI_ALPHA, /* U+00adda: */ + RTUNI_ALPHA, /* U+00addb: */ + RTUNI_ALPHA, /* U+00addc: */ + RTUNI_ALPHA, /* U+00addd: */ + RTUNI_ALPHA, /* U+00adde: */ + RTUNI_ALPHA, /* U+00addf: */ + RTUNI_ALPHA, /* U+00ade0: */ + RTUNI_ALPHA, /* U+00ade1: */ + RTUNI_ALPHA, /* U+00ade2: */ + RTUNI_ALPHA, /* U+00ade3: */ + RTUNI_ALPHA, /* U+00ade4: */ + RTUNI_ALPHA, /* U+00ade5: */ + RTUNI_ALPHA, /* U+00ade6: */ + RTUNI_ALPHA, /* U+00ade7: */ + RTUNI_ALPHA, /* U+00ade8: */ + RTUNI_ALPHA, /* U+00ade9: */ + RTUNI_ALPHA, /* U+00adea: */ + RTUNI_ALPHA, /* U+00adeb: */ + RTUNI_ALPHA, /* U+00adec: */ + RTUNI_ALPHA, /* U+00aded: */ + RTUNI_ALPHA, /* U+00adee: */ + RTUNI_ALPHA, /* U+00adef: */ + RTUNI_ALPHA, /* U+00adf0: */ + RTUNI_ALPHA, /* U+00adf1: */ + RTUNI_ALPHA, /* U+00adf2: */ + RTUNI_ALPHA, /* U+00adf3: */ + RTUNI_ALPHA, /* U+00adf4: */ + RTUNI_ALPHA, /* U+00adf5: */ + RTUNI_ALPHA, /* U+00adf6: */ + RTUNI_ALPHA, /* U+00adf7: */ + RTUNI_ALPHA, /* U+00adf8: */ + RTUNI_ALPHA, /* U+00adf9: */ + RTUNI_ALPHA, /* U+00adfa: */ + RTUNI_ALPHA, /* U+00adfb: */ + RTUNI_ALPHA, /* U+00adfc: */ + RTUNI_ALPHA, /* U+00adfd: */ + RTUNI_ALPHA, /* U+00adfe: */ + RTUNI_ALPHA, /* U+00adff: */ + RTUNI_ALPHA, /* U+00ae00: */ + RTUNI_ALPHA, /* U+00ae01: */ + RTUNI_ALPHA, /* U+00ae02: */ + RTUNI_ALPHA, /* U+00ae03: */ + RTUNI_ALPHA, /* U+00ae04: */ + RTUNI_ALPHA, /* U+00ae05: */ + RTUNI_ALPHA, /* U+00ae06: */ + RTUNI_ALPHA, /* U+00ae07: */ + RTUNI_ALPHA, /* U+00ae08: */ + RTUNI_ALPHA, /* U+00ae09: */ + RTUNI_ALPHA, /* U+00ae0a: */ + RTUNI_ALPHA, /* U+00ae0b: */ + RTUNI_ALPHA, /* U+00ae0c: */ + RTUNI_ALPHA, /* U+00ae0d: */ + RTUNI_ALPHA, /* U+00ae0e: */ + RTUNI_ALPHA, /* U+00ae0f: */ + RTUNI_ALPHA, /* U+00ae10: */ + RTUNI_ALPHA, /* U+00ae11: */ + RTUNI_ALPHA, /* U+00ae12: */ + RTUNI_ALPHA, /* U+00ae13: */ + RTUNI_ALPHA, /* U+00ae14: */ + RTUNI_ALPHA, /* U+00ae15: */ + RTUNI_ALPHA, /* U+00ae16: */ + RTUNI_ALPHA, /* U+00ae17: */ + RTUNI_ALPHA, /* U+00ae18: */ + RTUNI_ALPHA, /* U+00ae19: */ + RTUNI_ALPHA, /* U+00ae1a: */ + RTUNI_ALPHA, /* U+00ae1b: */ + RTUNI_ALPHA, /* U+00ae1c: */ + RTUNI_ALPHA, /* U+00ae1d: */ + RTUNI_ALPHA, /* U+00ae1e: */ + RTUNI_ALPHA, /* U+00ae1f: */ + RTUNI_ALPHA, /* U+00ae20: */ + RTUNI_ALPHA, /* U+00ae21: */ + RTUNI_ALPHA, /* U+00ae22: */ + RTUNI_ALPHA, /* U+00ae23: */ + RTUNI_ALPHA, /* U+00ae24: */ + RTUNI_ALPHA, /* U+00ae25: */ + RTUNI_ALPHA, /* U+00ae26: */ + RTUNI_ALPHA, /* U+00ae27: */ + RTUNI_ALPHA, /* U+00ae28: */ + RTUNI_ALPHA, /* U+00ae29: */ + RTUNI_ALPHA, /* U+00ae2a: */ + RTUNI_ALPHA, /* U+00ae2b: */ + RTUNI_ALPHA, /* U+00ae2c: */ + RTUNI_ALPHA, /* U+00ae2d: */ + RTUNI_ALPHA, /* U+00ae2e: */ + RTUNI_ALPHA, /* U+00ae2f: */ + RTUNI_ALPHA, /* U+00ae30: */ + RTUNI_ALPHA, /* U+00ae31: */ + RTUNI_ALPHA, /* U+00ae32: */ + RTUNI_ALPHA, /* U+00ae33: */ + RTUNI_ALPHA, /* U+00ae34: */ + RTUNI_ALPHA, /* U+00ae35: */ + RTUNI_ALPHA, /* U+00ae36: */ + RTUNI_ALPHA, /* U+00ae37: */ + RTUNI_ALPHA, /* U+00ae38: */ + RTUNI_ALPHA, /* U+00ae39: */ + RTUNI_ALPHA, /* U+00ae3a: */ + RTUNI_ALPHA, /* U+00ae3b: */ + RTUNI_ALPHA, /* U+00ae3c: */ + RTUNI_ALPHA, /* U+00ae3d: */ + RTUNI_ALPHA, /* U+00ae3e: */ + RTUNI_ALPHA, /* U+00ae3f: */ + RTUNI_ALPHA, /* U+00ae40: */ + RTUNI_ALPHA, /* U+00ae41: */ + RTUNI_ALPHA, /* U+00ae42: */ + RTUNI_ALPHA, /* U+00ae43: */ + RTUNI_ALPHA, /* U+00ae44: */ + RTUNI_ALPHA, /* U+00ae45: */ + RTUNI_ALPHA, /* U+00ae46: */ + RTUNI_ALPHA, /* U+00ae47: */ + RTUNI_ALPHA, /* U+00ae48: */ + RTUNI_ALPHA, /* U+00ae49: */ + RTUNI_ALPHA, /* U+00ae4a: */ + RTUNI_ALPHA, /* U+00ae4b: */ + RTUNI_ALPHA, /* U+00ae4c: */ + RTUNI_ALPHA, /* U+00ae4d: */ + RTUNI_ALPHA, /* U+00ae4e: */ + RTUNI_ALPHA, /* U+00ae4f: */ + RTUNI_ALPHA, /* U+00ae50: */ + RTUNI_ALPHA, /* U+00ae51: */ + RTUNI_ALPHA, /* U+00ae52: */ + RTUNI_ALPHA, /* U+00ae53: */ + RTUNI_ALPHA, /* U+00ae54: */ + RTUNI_ALPHA, /* U+00ae55: */ + RTUNI_ALPHA, /* U+00ae56: */ + RTUNI_ALPHA, /* U+00ae57: */ + RTUNI_ALPHA, /* U+00ae58: */ + RTUNI_ALPHA, /* U+00ae59: */ + RTUNI_ALPHA, /* U+00ae5a: */ + RTUNI_ALPHA, /* U+00ae5b: */ + RTUNI_ALPHA, /* U+00ae5c: */ + RTUNI_ALPHA, /* U+00ae5d: */ + RTUNI_ALPHA, /* U+00ae5e: */ + RTUNI_ALPHA, /* U+00ae5f: */ + RTUNI_ALPHA, /* U+00ae60: */ + RTUNI_ALPHA, /* U+00ae61: */ + RTUNI_ALPHA, /* U+00ae62: */ + RTUNI_ALPHA, /* U+00ae63: */ + RTUNI_ALPHA, /* U+00ae64: */ + RTUNI_ALPHA, /* U+00ae65: */ + RTUNI_ALPHA, /* U+00ae66: */ + RTUNI_ALPHA, /* U+00ae67: */ + RTUNI_ALPHA, /* U+00ae68: */ + RTUNI_ALPHA, /* U+00ae69: */ + RTUNI_ALPHA, /* U+00ae6a: */ + RTUNI_ALPHA, /* U+00ae6b: */ + RTUNI_ALPHA, /* U+00ae6c: */ + RTUNI_ALPHA, /* U+00ae6d: */ + RTUNI_ALPHA, /* U+00ae6e: */ + RTUNI_ALPHA, /* U+00ae6f: */ + RTUNI_ALPHA, /* U+00ae70: */ + RTUNI_ALPHA, /* U+00ae71: */ + RTUNI_ALPHA, /* U+00ae72: */ + RTUNI_ALPHA, /* U+00ae73: */ + RTUNI_ALPHA, /* U+00ae74: */ + RTUNI_ALPHA, /* U+00ae75: */ + RTUNI_ALPHA, /* U+00ae76: */ + RTUNI_ALPHA, /* U+00ae77: */ + RTUNI_ALPHA, /* U+00ae78: */ + RTUNI_ALPHA, /* U+00ae79: */ + RTUNI_ALPHA, /* U+00ae7a: */ + RTUNI_ALPHA, /* U+00ae7b: */ + RTUNI_ALPHA, /* U+00ae7c: */ + RTUNI_ALPHA, /* U+00ae7d: */ + RTUNI_ALPHA, /* U+00ae7e: */ + RTUNI_ALPHA, /* U+00ae7f: */ + RTUNI_ALPHA, /* U+00ae80: */ + RTUNI_ALPHA, /* U+00ae81: */ + RTUNI_ALPHA, /* U+00ae82: */ + RTUNI_ALPHA, /* U+00ae83: */ + RTUNI_ALPHA, /* U+00ae84: */ + RTUNI_ALPHA, /* U+00ae85: */ + RTUNI_ALPHA, /* U+00ae86: */ + RTUNI_ALPHA, /* U+00ae87: */ + RTUNI_ALPHA, /* U+00ae88: */ + RTUNI_ALPHA, /* U+00ae89: */ + RTUNI_ALPHA, /* U+00ae8a: */ + RTUNI_ALPHA, /* U+00ae8b: */ + RTUNI_ALPHA, /* U+00ae8c: */ + RTUNI_ALPHA, /* U+00ae8d: */ + RTUNI_ALPHA, /* U+00ae8e: */ + RTUNI_ALPHA, /* U+00ae8f: */ + RTUNI_ALPHA, /* U+00ae90: */ + RTUNI_ALPHA, /* U+00ae91: */ + RTUNI_ALPHA, /* U+00ae92: */ + RTUNI_ALPHA, /* U+00ae93: */ + RTUNI_ALPHA, /* U+00ae94: */ + RTUNI_ALPHA, /* U+00ae95: */ + RTUNI_ALPHA, /* U+00ae96: */ + RTUNI_ALPHA, /* U+00ae97: */ + RTUNI_ALPHA, /* U+00ae98: */ + RTUNI_ALPHA, /* U+00ae99: */ + RTUNI_ALPHA, /* U+00ae9a: */ + RTUNI_ALPHA, /* U+00ae9b: */ + RTUNI_ALPHA, /* U+00ae9c: */ + RTUNI_ALPHA, /* U+00ae9d: */ + RTUNI_ALPHA, /* U+00ae9e: */ + RTUNI_ALPHA, /* U+00ae9f: */ + RTUNI_ALPHA, /* U+00aea0: */ + RTUNI_ALPHA, /* U+00aea1: */ + RTUNI_ALPHA, /* U+00aea2: */ + RTUNI_ALPHA, /* U+00aea3: */ + RTUNI_ALPHA, /* U+00aea4: */ + RTUNI_ALPHA, /* U+00aea5: */ + RTUNI_ALPHA, /* U+00aea6: */ + RTUNI_ALPHA, /* U+00aea7: */ + RTUNI_ALPHA, /* U+00aea8: */ + RTUNI_ALPHA, /* U+00aea9: */ + RTUNI_ALPHA, /* U+00aeaa: */ + RTUNI_ALPHA, /* U+00aeab: */ + RTUNI_ALPHA, /* U+00aeac: */ + RTUNI_ALPHA, /* U+00aead: */ + RTUNI_ALPHA, /* U+00aeae: */ + RTUNI_ALPHA, /* U+00aeaf: */ + RTUNI_ALPHA, /* U+00aeb0: */ + RTUNI_ALPHA, /* U+00aeb1: */ + RTUNI_ALPHA, /* U+00aeb2: */ + RTUNI_ALPHA, /* U+00aeb3: */ + RTUNI_ALPHA, /* U+00aeb4: */ + RTUNI_ALPHA, /* U+00aeb5: */ + RTUNI_ALPHA, /* U+00aeb6: */ + RTUNI_ALPHA, /* U+00aeb7: */ + RTUNI_ALPHA, /* U+00aeb8: */ + RTUNI_ALPHA, /* U+00aeb9: */ + RTUNI_ALPHA, /* U+00aeba: */ + RTUNI_ALPHA, /* U+00aebb: */ + RTUNI_ALPHA, /* U+00aebc: */ + RTUNI_ALPHA, /* U+00aebd: */ + RTUNI_ALPHA, /* U+00aebe: */ + RTUNI_ALPHA, /* U+00aebf: */ + RTUNI_ALPHA, /* U+00aec0: */ + RTUNI_ALPHA, /* U+00aec1: */ + RTUNI_ALPHA, /* U+00aec2: */ + RTUNI_ALPHA, /* U+00aec3: */ + RTUNI_ALPHA, /* U+00aec4: */ + RTUNI_ALPHA, /* U+00aec5: */ + RTUNI_ALPHA, /* U+00aec6: */ + RTUNI_ALPHA, /* U+00aec7: */ + RTUNI_ALPHA, /* U+00aec8: */ + RTUNI_ALPHA, /* U+00aec9: */ + RTUNI_ALPHA, /* U+00aeca: */ + RTUNI_ALPHA, /* U+00aecb: */ + RTUNI_ALPHA, /* U+00aecc: */ + RTUNI_ALPHA, /* U+00aecd: */ + RTUNI_ALPHA, /* U+00aece: */ + RTUNI_ALPHA, /* U+00aecf: */ + RTUNI_ALPHA, /* U+00aed0: */ + RTUNI_ALPHA, /* U+00aed1: */ + RTUNI_ALPHA, /* U+00aed2: */ + RTUNI_ALPHA, /* U+00aed3: */ + RTUNI_ALPHA, /* U+00aed4: */ + RTUNI_ALPHA, /* U+00aed5: */ + RTUNI_ALPHA, /* U+00aed6: */ + RTUNI_ALPHA, /* U+00aed7: */ + RTUNI_ALPHA, /* U+00aed8: */ + RTUNI_ALPHA, /* U+00aed9: */ + RTUNI_ALPHA, /* U+00aeda: */ + RTUNI_ALPHA, /* U+00aedb: */ + RTUNI_ALPHA, /* U+00aedc: */ + RTUNI_ALPHA, /* U+00aedd: */ + RTUNI_ALPHA, /* U+00aede: */ + RTUNI_ALPHA, /* U+00aedf: */ + RTUNI_ALPHA, /* U+00aee0: */ + RTUNI_ALPHA, /* U+00aee1: */ + RTUNI_ALPHA, /* U+00aee2: */ + RTUNI_ALPHA, /* U+00aee3: */ + RTUNI_ALPHA, /* U+00aee4: */ + RTUNI_ALPHA, /* U+00aee5: */ + RTUNI_ALPHA, /* U+00aee6: */ + RTUNI_ALPHA, /* U+00aee7: */ + RTUNI_ALPHA, /* U+00aee8: */ + RTUNI_ALPHA, /* U+00aee9: */ + RTUNI_ALPHA, /* U+00aeea: */ + RTUNI_ALPHA, /* U+00aeeb: */ + RTUNI_ALPHA, /* U+00aeec: */ + RTUNI_ALPHA, /* U+00aeed: */ + RTUNI_ALPHA, /* U+00aeee: */ + RTUNI_ALPHA, /* U+00aeef: */ + RTUNI_ALPHA, /* U+00aef0: */ + RTUNI_ALPHA, /* U+00aef1: */ + RTUNI_ALPHA, /* U+00aef2: */ + RTUNI_ALPHA, /* U+00aef3: */ + RTUNI_ALPHA, /* U+00aef4: */ + RTUNI_ALPHA, /* U+00aef5: */ + RTUNI_ALPHA, /* U+00aef6: */ + RTUNI_ALPHA, /* U+00aef7: */ + RTUNI_ALPHA, /* U+00aef8: */ + RTUNI_ALPHA, /* U+00aef9: */ + RTUNI_ALPHA, /* U+00aefa: */ + RTUNI_ALPHA, /* U+00aefb: */ + RTUNI_ALPHA, /* U+00aefc: */ + RTUNI_ALPHA, /* U+00aefd: */ + RTUNI_ALPHA, /* U+00aefe: */ + RTUNI_ALPHA, /* U+00aeff: */ + RTUNI_ALPHA, /* U+00af00: */ + RTUNI_ALPHA, /* U+00af01: */ + RTUNI_ALPHA, /* U+00af02: */ + RTUNI_ALPHA, /* U+00af03: */ + RTUNI_ALPHA, /* U+00af04: */ + RTUNI_ALPHA, /* U+00af05: */ + RTUNI_ALPHA, /* U+00af06: */ + RTUNI_ALPHA, /* U+00af07: */ + RTUNI_ALPHA, /* U+00af08: */ + RTUNI_ALPHA, /* U+00af09: */ + RTUNI_ALPHA, /* U+00af0a: */ + RTUNI_ALPHA, /* U+00af0b: */ + RTUNI_ALPHA, /* U+00af0c: */ + RTUNI_ALPHA, /* U+00af0d: */ + RTUNI_ALPHA, /* U+00af0e: */ + RTUNI_ALPHA, /* U+00af0f: */ + RTUNI_ALPHA, /* U+00af10: */ + RTUNI_ALPHA, /* U+00af11: */ + RTUNI_ALPHA, /* U+00af12: */ + RTUNI_ALPHA, /* U+00af13: */ + RTUNI_ALPHA, /* U+00af14: */ + RTUNI_ALPHA, /* U+00af15: */ + RTUNI_ALPHA, /* U+00af16: */ + RTUNI_ALPHA, /* U+00af17: */ + RTUNI_ALPHA, /* U+00af18: */ + RTUNI_ALPHA, /* U+00af19: */ + RTUNI_ALPHA, /* U+00af1a: */ + RTUNI_ALPHA, /* U+00af1b: */ + RTUNI_ALPHA, /* U+00af1c: */ + RTUNI_ALPHA, /* U+00af1d: */ + RTUNI_ALPHA, /* U+00af1e: */ + RTUNI_ALPHA, /* U+00af1f: */ + RTUNI_ALPHA, /* U+00af20: */ + RTUNI_ALPHA, /* U+00af21: */ + RTUNI_ALPHA, /* U+00af22: */ + RTUNI_ALPHA, /* U+00af23: */ + RTUNI_ALPHA, /* U+00af24: */ + RTUNI_ALPHA, /* U+00af25: */ + RTUNI_ALPHA, /* U+00af26: */ + RTUNI_ALPHA, /* U+00af27: */ + RTUNI_ALPHA, /* U+00af28: */ + RTUNI_ALPHA, /* U+00af29: */ + RTUNI_ALPHA, /* U+00af2a: */ + RTUNI_ALPHA, /* U+00af2b: */ + RTUNI_ALPHA, /* U+00af2c: */ + RTUNI_ALPHA, /* U+00af2d: */ + RTUNI_ALPHA, /* U+00af2e: */ + RTUNI_ALPHA, /* U+00af2f: */ + RTUNI_ALPHA, /* U+00af30: */ + RTUNI_ALPHA, /* U+00af31: */ + RTUNI_ALPHA, /* U+00af32: */ + RTUNI_ALPHA, /* U+00af33: */ + RTUNI_ALPHA, /* U+00af34: */ + RTUNI_ALPHA, /* U+00af35: */ + RTUNI_ALPHA, /* U+00af36: */ + RTUNI_ALPHA, /* U+00af37: */ + RTUNI_ALPHA, /* U+00af38: */ + RTUNI_ALPHA, /* U+00af39: */ + RTUNI_ALPHA, /* U+00af3a: */ + RTUNI_ALPHA, /* U+00af3b: */ + RTUNI_ALPHA, /* U+00af3c: */ + RTUNI_ALPHA, /* U+00af3d: */ + RTUNI_ALPHA, /* U+00af3e: */ + RTUNI_ALPHA, /* U+00af3f: */ + RTUNI_ALPHA, /* U+00af40: */ + RTUNI_ALPHA, /* U+00af41: */ + RTUNI_ALPHA, /* U+00af42: */ + RTUNI_ALPHA, /* U+00af43: */ + RTUNI_ALPHA, /* U+00af44: */ + RTUNI_ALPHA, /* U+00af45: */ + RTUNI_ALPHA, /* U+00af46: */ + RTUNI_ALPHA, /* U+00af47: */ + RTUNI_ALPHA, /* U+00af48: */ + RTUNI_ALPHA, /* U+00af49: */ + RTUNI_ALPHA, /* U+00af4a: */ + RTUNI_ALPHA, /* U+00af4b: */ + RTUNI_ALPHA, /* U+00af4c: */ + RTUNI_ALPHA, /* U+00af4d: */ + RTUNI_ALPHA, /* U+00af4e: */ + RTUNI_ALPHA, /* U+00af4f: */ + RTUNI_ALPHA, /* U+00af50: */ + RTUNI_ALPHA, /* U+00af51: */ + RTUNI_ALPHA, /* U+00af52: */ + RTUNI_ALPHA, /* U+00af53: */ + RTUNI_ALPHA, /* U+00af54: */ + RTUNI_ALPHA, /* U+00af55: */ + RTUNI_ALPHA, /* U+00af56: */ + RTUNI_ALPHA, /* U+00af57: */ + RTUNI_ALPHA, /* U+00af58: */ + RTUNI_ALPHA, /* U+00af59: */ + RTUNI_ALPHA, /* U+00af5a: */ + RTUNI_ALPHA, /* U+00af5b: */ + RTUNI_ALPHA, /* U+00af5c: */ + RTUNI_ALPHA, /* U+00af5d: */ + RTUNI_ALPHA, /* U+00af5e: */ + RTUNI_ALPHA, /* U+00af5f: */ + RTUNI_ALPHA, /* U+00af60: */ + RTUNI_ALPHA, /* U+00af61: */ + RTUNI_ALPHA, /* U+00af62: */ + RTUNI_ALPHA, /* U+00af63: */ + RTUNI_ALPHA, /* U+00af64: */ + RTUNI_ALPHA, /* U+00af65: */ + RTUNI_ALPHA, /* U+00af66: */ + RTUNI_ALPHA, /* U+00af67: */ + RTUNI_ALPHA, /* U+00af68: */ + RTUNI_ALPHA, /* U+00af69: */ + RTUNI_ALPHA, /* U+00af6a: */ + RTUNI_ALPHA, /* U+00af6b: */ + RTUNI_ALPHA, /* U+00af6c: */ + RTUNI_ALPHA, /* U+00af6d: */ + RTUNI_ALPHA, /* U+00af6e: */ + RTUNI_ALPHA, /* U+00af6f: */ + RTUNI_ALPHA, /* U+00af70: */ + RTUNI_ALPHA, /* U+00af71: */ + RTUNI_ALPHA, /* U+00af72: */ + RTUNI_ALPHA, /* U+00af73: */ + RTUNI_ALPHA, /* U+00af74: */ + RTUNI_ALPHA, /* U+00af75: */ + RTUNI_ALPHA, /* U+00af76: */ + RTUNI_ALPHA, /* U+00af77: */ + RTUNI_ALPHA, /* U+00af78: */ + RTUNI_ALPHA, /* U+00af79: */ + RTUNI_ALPHA, /* U+00af7a: */ + RTUNI_ALPHA, /* U+00af7b: */ + RTUNI_ALPHA, /* U+00af7c: */ + RTUNI_ALPHA, /* U+00af7d: */ + RTUNI_ALPHA, /* U+00af7e: */ + RTUNI_ALPHA, /* U+00af7f: */ + RTUNI_ALPHA, /* U+00af80: */ + RTUNI_ALPHA, /* U+00af81: */ + RTUNI_ALPHA, /* U+00af82: */ + RTUNI_ALPHA, /* U+00af83: */ + RTUNI_ALPHA, /* U+00af84: */ + RTUNI_ALPHA, /* U+00af85: */ + RTUNI_ALPHA, /* U+00af86: */ + RTUNI_ALPHA, /* U+00af87: */ + RTUNI_ALPHA, /* U+00af88: */ + RTUNI_ALPHA, /* U+00af89: */ + RTUNI_ALPHA, /* U+00af8a: */ + RTUNI_ALPHA, /* U+00af8b: */ + RTUNI_ALPHA, /* U+00af8c: */ + RTUNI_ALPHA, /* U+00af8d: */ + RTUNI_ALPHA, /* U+00af8e: */ + RTUNI_ALPHA, /* U+00af8f: */ + RTUNI_ALPHA, /* U+00af90: */ + RTUNI_ALPHA, /* U+00af91: */ + RTUNI_ALPHA, /* U+00af92: */ + RTUNI_ALPHA, /* U+00af93: */ + RTUNI_ALPHA, /* U+00af94: */ + RTUNI_ALPHA, /* U+00af95: */ + RTUNI_ALPHA, /* U+00af96: */ + RTUNI_ALPHA, /* U+00af97: */ + RTUNI_ALPHA, /* U+00af98: */ + RTUNI_ALPHA, /* U+00af99: */ + RTUNI_ALPHA, /* U+00af9a: */ + RTUNI_ALPHA, /* U+00af9b: */ + RTUNI_ALPHA, /* U+00af9c: */ + RTUNI_ALPHA, /* U+00af9d: */ + RTUNI_ALPHA, /* U+00af9e: */ + RTUNI_ALPHA, /* U+00af9f: */ + RTUNI_ALPHA, /* U+00afa0: */ + RTUNI_ALPHA, /* U+00afa1: */ + RTUNI_ALPHA, /* U+00afa2: */ + RTUNI_ALPHA, /* U+00afa3: */ + RTUNI_ALPHA, /* U+00afa4: */ + RTUNI_ALPHA, /* U+00afa5: */ + RTUNI_ALPHA, /* U+00afa6: */ + RTUNI_ALPHA, /* U+00afa7: */ + RTUNI_ALPHA, /* U+00afa8: */ + RTUNI_ALPHA, /* U+00afa9: */ + RTUNI_ALPHA, /* U+00afaa: */ + RTUNI_ALPHA, /* U+00afab: */ + RTUNI_ALPHA, /* U+00afac: */ + RTUNI_ALPHA, /* U+00afad: */ + RTUNI_ALPHA, /* U+00afae: */ + RTUNI_ALPHA, /* U+00afaf: */ + RTUNI_ALPHA, /* U+00afb0: */ + RTUNI_ALPHA, /* U+00afb1: */ + RTUNI_ALPHA, /* U+00afb2: */ + RTUNI_ALPHA, /* U+00afb3: */ + RTUNI_ALPHA, /* U+00afb4: */ + RTUNI_ALPHA, /* U+00afb5: */ + RTUNI_ALPHA, /* U+00afb6: */ + RTUNI_ALPHA, /* U+00afb7: */ + RTUNI_ALPHA, /* U+00afb8: */ + RTUNI_ALPHA, /* U+00afb9: */ + RTUNI_ALPHA, /* U+00afba: */ + RTUNI_ALPHA, /* U+00afbb: */ + RTUNI_ALPHA, /* U+00afbc: */ + RTUNI_ALPHA, /* U+00afbd: */ + RTUNI_ALPHA, /* U+00afbe: */ + RTUNI_ALPHA, /* U+00afbf: */ + RTUNI_ALPHA, /* U+00afc0: */ + RTUNI_ALPHA, /* U+00afc1: */ + RTUNI_ALPHA, /* U+00afc2: */ + RTUNI_ALPHA, /* U+00afc3: */ + RTUNI_ALPHA, /* U+00afc4: */ + RTUNI_ALPHA, /* U+00afc5: */ + RTUNI_ALPHA, /* U+00afc6: */ + RTUNI_ALPHA, /* U+00afc7: */ + RTUNI_ALPHA, /* U+00afc8: */ + RTUNI_ALPHA, /* U+00afc9: */ + RTUNI_ALPHA, /* U+00afca: */ + RTUNI_ALPHA, /* U+00afcb: */ + RTUNI_ALPHA, /* U+00afcc: */ + RTUNI_ALPHA, /* U+00afcd: */ + RTUNI_ALPHA, /* U+00afce: */ + RTUNI_ALPHA, /* U+00afcf: */ + RTUNI_ALPHA, /* U+00afd0: */ + RTUNI_ALPHA, /* U+00afd1: */ + RTUNI_ALPHA, /* U+00afd2: */ + RTUNI_ALPHA, /* U+00afd3: */ + RTUNI_ALPHA, /* U+00afd4: */ + RTUNI_ALPHA, /* U+00afd5: */ + RTUNI_ALPHA, /* U+00afd6: */ + RTUNI_ALPHA, /* U+00afd7: */ + RTUNI_ALPHA, /* U+00afd8: */ + RTUNI_ALPHA, /* U+00afd9: */ + RTUNI_ALPHA, /* U+00afda: */ + RTUNI_ALPHA, /* U+00afdb: */ + RTUNI_ALPHA, /* U+00afdc: */ + RTUNI_ALPHA, /* U+00afdd: */ + RTUNI_ALPHA, /* U+00afde: */ + RTUNI_ALPHA, /* U+00afdf: */ + RTUNI_ALPHA, /* U+00afe0: */ + RTUNI_ALPHA, /* U+00afe1: */ + RTUNI_ALPHA, /* U+00afe2: */ + RTUNI_ALPHA, /* U+00afe3: */ + RTUNI_ALPHA, /* U+00afe4: */ + RTUNI_ALPHA, /* U+00afe5: */ + RTUNI_ALPHA, /* U+00afe6: */ + RTUNI_ALPHA, /* U+00afe7: */ + RTUNI_ALPHA, /* U+00afe8: */ + RTUNI_ALPHA, /* U+00afe9: */ + RTUNI_ALPHA, /* U+00afea: */ + RTUNI_ALPHA, /* U+00afeb: */ + RTUNI_ALPHA, /* U+00afec: */ + RTUNI_ALPHA, /* U+00afed: */ + RTUNI_ALPHA, /* U+00afee: */ + RTUNI_ALPHA, /* U+00afef: */ + RTUNI_ALPHA, /* U+00aff0: */ + RTUNI_ALPHA, /* U+00aff1: */ + RTUNI_ALPHA, /* U+00aff2: */ + RTUNI_ALPHA, /* U+00aff3: */ + RTUNI_ALPHA, /* U+00aff4: */ + RTUNI_ALPHA, /* U+00aff5: */ + RTUNI_ALPHA, /* U+00aff6: */ + RTUNI_ALPHA, /* U+00aff7: */ + RTUNI_ALPHA, /* U+00aff8: */ + RTUNI_ALPHA, /* U+00aff9: */ + RTUNI_ALPHA, /* U+00affa: */ + RTUNI_ALPHA, /* U+00affb: */ + RTUNI_ALPHA, /* U+00affc: */ + RTUNI_ALPHA, /* U+00affd: */ + RTUNI_ALPHA, /* U+00affe: */ + RTUNI_ALPHA, /* U+00afff: */ + RTUNI_ALPHA, /* U+00b000: */ + RTUNI_ALPHA, /* U+00b001: */ + RTUNI_ALPHA, /* U+00b002: */ + RTUNI_ALPHA, /* U+00b003: */ + RTUNI_ALPHA, /* U+00b004: */ + RTUNI_ALPHA, /* U+00b005: */ + RTUNI_ALPHA, /* U+00b006: */ + RTUNI_ALPHA, /* U+00b007: */ + RTUNI_ALPHA, /* U+00b008: */ + RTUNI_ALPHA, /* U+00b009: */ + RTUNI_ALPHA, /* U+00b00a: */ + RTUNI_ALPHA, /* U+00b00b: */ + RTUNI_ALPHA, /* U+00b00c: */ + RTUNI_ALPHA, /* U+00b00d: */ + RTUNI_ALPHA, /* U+00b00e: */ + RTUNI_ALPHA, /* U+00b00f: */ + RTUNI_ALPHA, /* U+00b010: */ + RTUNI_ALPHA, /* U+00b011: */ + RTUNI_ALPHA, /* U+00b012: */ + RTUNI_ALPHA, /* U+00b013: */ + RTUNI_ALPHA, /* U+00b014: */ + RTUNI_ALPHA, /* U+00b015: */ + RTUNI_ALPHA, /* U+00b016: */ + RTUNI_ALPHA, /* U+00b017: */ + RTUNI_ALPHA, /* U+00b018: */ + RTUNI_ALPHA, /* U+00b019: */ + RTUNI_ALPHA, /* U+00b01a: */ + RTUNI_ALPHA, /* U+00b01b: */ + RTUNI_ALPHA, /* U+00b01c: */ + RTUNI_ALPHA, /* U+00b01d: */ + RTUNI_ALPHA, /* U+00b01e: */ + RTUNI_ALPHA, /* U+00b01f: */ + RTUNI_ALPHA, /* U+00b020: */ + RTUNI_ALPHA, /* U+00b021: */ + RTUNI_ALPHA, /* U+00b022: */ + RTUNI_ALPHA, /* U+00b023: */ + RTUNI_ALPHA, /* U+00b024: */ + RTUNI_ALPHA, /* U+00b025: */ + RTUNI_ALPHA, /* U+00b026: */ + RTUNI_ALPHA, /* U+00b027: */ + RTUNI_ALPHA, /* U+00b028: */ + RTUNI_ALPHA, /* U+00b029: */ + RTUNI_ALPHA, /* U+00b02a: */ + RTUNI_ALPHA, /* U+00b02b: */ + RTUNI_ALPHA, /* U+00b02c: */ + RTUNI_ALPHA, /* U+00b02d: */ + RTUNI_ALPHA, /* U+00b02e: */ + RTUNI_ALPHA, /* U+00b02f: */ + RTUNI_ALPHA, /* U+00b030: */ + RTUNI_ALPHA, /* U+00b031: */ + RTUNI_ALPHA, /* U+00b032: */ + RTUNI_ALPHA, /* U+00b033: */ + RTUNI_ALPHA, /* U+00b034: */ + RTUNI_ALPHA, /* U+00b035: */ + RTUNI_ALPHA, /* U+00b036: */ + RTUNI_ALPHA, /* U+00b037: */ + RTUNI_ALPHA, /* U+00b038: */ + RTUNI_ALPHA, /* U+00b039: */ + RTUNI_ALPHA, /* U+00b03a: */ + RTUNI_ALPHA, /* U+00b03b: */ + RTUNI_ALPHA, /* U+00b03c: */ + RTUNI_ALPHA, /* U+00b03d: */ + RTUNI_ALPHA, /* U+00b03e: */ + RTUNI_ALPHA, /* U+00b03f: */ + RTUNI_ALPHA, /* U+00b040: */ + RTUNI_ALPHA, /* U+00b041: */ + RTUNI_ALPHA, /* U+00b042: */ + RTUNI_ALPHA, /* U+00b043: */ + RTUNI_ALPHA, /* U+00b044: */ + RTUNI_ALPHA, /* U+00b045: */ + RTUNI_ALPHA, /* U+00b046: */ + RTUNI_ALPHA, /* U+00b047: */ + RTUNI_ALPHA, /* U+00b048: */ + RTUNI_ALPHA, /* U+00b049: */ + RTUNI_ALPHA, /* U+00b04a: */ + RTUNI_ALPHA, /* U+00b04b: */ + RTUNI_ALPHA, /* U+00b04c: */ + RTUNI_ALPHA, /* U+00b04d: */ + RTUNI_ALPHA, /* U+00b04e: */ + RTUNI_ALPHA, /* U+00b04f: */ + RTUNI_ALPHA, /* U+00b050: */ + RTUNI_ALPHA, /* U+00b051: */ + RTUNI_ALPHA, /* U+00b052: */ + RTUNI_ALPHA, /* U+00b053: */ + RTUNI_ALPHA, /* U+00b054: */ + RTUNI_ALPHA, /* U+00b055: */ + RTUNI_ALPHA, /* U+00b056: */ + RTUNI_ALPHA, /* U+00b057: */ + RTUNI_ALPHA, /* U+00b058: */ + RTUNI_ALPHA, /* U+00b059: */ + RTUNI_ALPHA, /* U+00b05a: */ + RTUNI_ALPHA, /* U+00b05b: */ + RTUNI_ALPHA, /* U+00b05c: */ + RTUNI_ALPHA, /* U+00b05d: */ + RTUNI_ALPHA, /* U+00b05e: */ + RTUNI_ALPHA, /* U+00b05f: */ + RTUNI_ALPHA, /* U+00b060: */ + RTUNI_ALPHA, /* U+00b061: */ + RTUNI_ALPHA, /* U+00b062: */ + RTUNI_ALPHA, /* U+00b063: */ + RTUNI_ALPHA, /* U+00b064: */ + RTUNI_ALPHA, /* U+00b065: */ + RTUNI_ALPHA, /* U+00b066: */ + RTUNI_ALPHA, /* U+00b067: */ + RTUNI_ALPHA, /* U+00b068: */ + RTUNI_ALPHA, /* U+00b069: */ + RTUNI_ALPHA, /* U+00b06a: */ + RTUNI_ALPHA, /* U+00b06b: */ + RTUNI_ALPHA, /* U+00b06c: */ + RTUNI_ALPHA, /* U+00b06d: */ + RTUNI_ALPHA, /* U+00b06e: */ + RTUNI_ALPHA, /* U+00b06f: */ + RTUNI_ALPHA, /* U+00b070: */ + RTUNI_ALPHA, /* U+00b071: */ + RTUNI_ALPHA, /* U+00b072: */ + RTUNI_ALPHA, /* U+00b073: */ + RTUNI_ALPHA, /* U+00b074: */ + RTUNI_ALPHA, /* U+00b075: */ + RTUNI_ALPHA, /* U+00b076: */ + RTUNI_ALPHA, /* U+00b077: */ + RTUNI_ALPHA, /* U+00b078: */ + RTUNI_ALPHA, /* U+00b079: */ + RTUNI_ALPHA, /* U+00b07a: */ + RTUNI_ALPHA, /* U+00b07b: */ + RTUNI_ALPHA, /* U+00b07c: */ + RTUNI_ALPHA, /* U+00b07d: */ + RTUNI_ALPHA, /* U+00b07e: */ + RTUNI_ALPHA, /* U+00b07f: */ + RTUNI_ALPHA, /* U+00b080: */ + RTUNI_ALPHA, /* U+00b081: */ + RTUNI_ALPHA, /* U+00b082: */ + RTUNI_ALPHA, /* U+00b083: */ + RTUNI_ALPHA, /* U+00b084: */ + RTUNI_ALPHA, /* U+00b085: */ + RTUNI_ALPHA, /* U+00b086: */ + RTUNI_ALPHA, /* U+00b087: */ + RTUNI_ALPHA, /* U+00b088: */ + RTUNI_ALPHA, /* U+00b089: */ + RTUNI_ALPHA, /* U+00b08a: */ + RTUNI_ALPHA, /* U+00b08b: */ + RTUNI_ALPHA, /* U+00b08c: */ + RTUNI_ALPHA, /* U+00b08d: */ + RTUNI_ALPHA, /* U+00b08e: */ + RTUNI_ALPHA, /* U+00b08f: */ + RTUNI_ALPHA, /* U+00b090: */ + RTUNI_ALPHA, /* U+00b091: */ + RTUNI_ALPHA, /* U+00b092: */ + RTUNI_ALPHA, /* U+00b093: */ + RTUNI_ALPHA, /* U+00b094: */ + RTUNI_ALPHA, /* U+00b095: */ + RTUNI_ALPHA, /* U+00b096: */ + RTUNI_ALPHA, /* U+00b097: */ + RTUNI_ALPHA, /* U+00b098: */ + RTUNI_ALPHA, /* U+00b099: */ + RTUNI_ALPHA, /* U+00b09a: */ + RTUNI_ALPHA, /* U+00b09b: */ + RTUNI_ALPHA, /* U+00b09c: */ + RTUNI_ALPHA, /* U+00b09d: */ + RTUNI_ALPHA, /* U+00b09e: */ + RTUNI_ALPHA, /* U+00b09f: */ + RTUNI_ALPHA, /* U+00b0a0: */ + RTUNI_ALPHA, /* U+00b0a1: */ + RTUNI_ALPHA, /* U+00b0a2: */ + RTUNI_ALPHA, /* U+00b0a3: */ + RTUNI_ALPHA, /* U+00b0a4: */ + RTUNI_ALPHA, /* U+00b0a5: */ + RTUNI_ALPHA, /* U+00b0a6: */ + RTUNI_ALPHA, /* U+00b0a7: */ + RTUNI_ALPHA, /* U+00b0a8: */ + RTUNI_ALPHA, /* U+00b0a9: */ + RTUNI_ALPHA, /* U+00b0aa: */ + RTUNI_ALPHA, /* U+00b0ab: */ + RTUNI_ALPHA, /* U+00b0ac: */ + RTUNI_ALPHA, /* U+00b0ad: */ + RTUNI_ALPHA, /* U+00b0ae: */ + RTUNI_ALPHA, /* U+00b0af: */ + RTUNI_ALPHA, /* U+00b0b0: */ + RTUNI_ALPHA, /* U+00b0b1: */ + RTUNI_ALPHA, /* U+00b0b2: */ + RTUNI_ALPHA, /* U+00b0b3: */ + RTUNI_ALPHA, /* U+00b0b4: */ + RTUNI_ALPHA, /* U+00b0b5: */ + RTUNI_ALPHA, /* U+00b0b6: */ + RTUNI_ALPHA, /* U+00b0b7: */ + RTUNI_ALPHA, /* U+00b0b8: */ + RTUNI_ALPHA, /* U+00b0b9: */ + RTUNI_ALPHA, /* U+00b0ba: */ + RTUNI_ALPHA, /* U+00b0bb: */ + RTUNI_ALPHA, /* U+00b0bc: */ + RTUNI_ALPHA, /* U+00b0bd: */ + RTUNI_ALPHA, /* U+00b0be: */ + RTUNI_ALPHA, /* U+00b0bf: */ + RTUNI_ALPHA, /* U+00b0c0: */ + RTUNI_ALPHA, /* U+00b0c1: */ + RTUNI_ALPHA, /* U+00b0c2: */ + RTUNI_ALPHA, /* U+00b0c3: */ + RTUNI_ALPHA, /* U+00b0c4: */ + RTUNI_ALPHA, /* U+00b0c5: */ + RTUNI_ALPHA, /* U+00b0c6: */ + RTUNI_ALPHA, /* U+00b0c7: */ + RTUNI_ALPHA, /* U+00b0c8: */ + RTUNI_ALPHA, /* U+00b0c9: */ + RTUNI_ALPHA, /* U+00b0ca: */ + RTUNI_ALPHA, /* U+00b0cb: */ + RTUNI_ALPHA, /* U+00b0cc: */ + RTUNI_ALPHA, /* U+00b0cd: */ + RTUNI_ALPHA, /* U+00b0ce: */ + RTUNI_ALPHA, /* U+00b0cf: */ + RTUNI_ALPHA, /* U+00b0d0: */ + RTUNI_ALPHA, /* U+00b0d1: */ + RTUNI_ALPHA, /* U+00b0d2: */ + RTUNI_ALPHA, /* U+00b0d3: */ + RTUNI_ALPHA, /* U+00b0d4: */ + RTUNI_ALPHA, /* U+00b0d5: */ + RTUNI_ALPHA, /* U+00b0d6: */ + RTUNI_ALPHA, /* U+00b0d7: */ + RTUNI_ALPHA, /* U+00b0d8: */ + RTUNI_ALPHA, /* U+00b0d9: */ + RTUNI_ALPHA, /* U+00b0da: */ + RTUNI_ALPHA, /* U+00b0db: */ + RTUNI_ALPHA, /* U+00b0dc: */ + RTUNI_ALPHA, /* U+00b0dd: */ + RTUNI_ALPHA, /* U+00b0de: */ + RTUNI_ALPHA, /* U+00b0df: */ + RTUNI_ALPHA, /* U+00b0e0: */ + RTUNI_ALPHA, /* U+00b0e1: */ + RTUNI_ALPHA, /* U+00b0e2: */ + RTUNI_ALPHA, /* U+00b0e3: */ + RTUNI_ALPHA, /* U+00b0e4: */ + RTUNI_ALPHA, /* U+00b0e5: */ + RTUNI_ALPHA, /* U+00b0e6: */ + RTUNI_ALPHA, /* U+00b0e7: */ + RTUNI_ALPHA, /* U+00b0e8: */ + RTUNI_ALPHA, /* U+00b0e9: */ + RTUNI_ALPHA, /* U+00b0ea: */ + RTUNI_ALPHA, /* U+00b0eb: */ + RTUNI_ALPHA, /* U+00b0ec: */ + RTUNI_ALPHA, /* U+00b0ed: */ + RTUNI_ALPHA, /* U+00b0ee: */ + RTUNI_ALPHA, /* U+00b0ef: */ + RTUNI_ALPHA, /* U+00b0f0: */ + RTUNI_ALPHA, /* U+00b0f1: */ + RTUNI_ALPHA, /* U+00b0f2: */ + RTUNI_ALPHA, /* U+00b0f3: */ + RTUNI_ALPHA, /* U+00b0f4: */ + RTUNI_ALPHA, /* U+00b0f5: */ + RTUNI_ALPHA, /* U+00b0f6: */ + RTUNI_ALPHA, /* U+00b0f7: */ + RTUNI_ALPHA, /* U+00b0f8: */ + RTUNI_ALPHA, /* U+00b0f9: */ + RTUNI_ALPHA, /* U+00b0fa: */ + RTUNI_ALPHA, /* U+00b0fb: */ + RTUNI_ALPHA, /* U+00b0fc: */ + RTUNI_ALPHA, /* U+00b0fd: */ + RTUNI_ALPHA, /* U+00b0fe: */ + RTUNI_ALPHA, /* U+00b0ff: */ + RTUNI_ALPHA, /* U+00b100: */ + RTUNI_ALPHA, /* U+00b101: */ + RTUNI_ALPHA, /* U+00b102: */ + RTUNI_ALPHA, /* U+00b103: */ + RTUNI_ALPHA, /* U+00b104: */ + RTUNI_ALPHA, /* U+00b105: */ + RTUNI_ALPHA, /* U+00b106: */ + RTUNI_ALPHA, /* U+00b107: */ + RTUNI_ALPHA, /* U+00b108: */ + RTUNI_ALPHA, /* U+00b109: */ + RTUNI_ALPHA, /* U+00b10a: */ + RTUNI_ALPHA, /* U+00b10b: */ + RTUNI_ALPHA, /* U+00b10c: */ + RTUNI_ALPHA, /* U+00b10d: */ + RTUNI_ALPHA, /* U+00b10e: */ + RTUNI_ALPHA, /* U+00b10f: */ + RTUNI_ALPHA, /* U+00b110: */ + RTUNI_ALPHA, /* U+00b111: */ + RTUNI_ALPHA, /* U+00b112: */ + RTUNI_ALPHA, /* U+00b113: */ + RTUNI_ALPHA, /* U+00b114: */ + RTUNI_ALPHA, /* U+00b115: */ + RTUNI_ALPHA, /* U+00b116: */ + RTUNI_ALPHA, /* U+00b117: */ + RTUNI_ALPHA, /* U+00b118: */ + RTUNI_ALPHA, /* U+00b119: */ + RTUNI_ALPHA, /* U+00b11a: */ + RTUNI_ALPHA, /* U+00b11b: */ + RTUNI_ALPHA, /* U+00b11c: */ + RTUNI_ALPHA, /* U+00b11d: */ + RTUNI_ALPHA, /* U+00b11e: */ + RTUNI_ALPHA, /* U+00b11f: */ + RTUNI_ALPHA, /* U+00b120: */ + RTUNI_ALPHA, /* U+00b121: */ + RTUNI_ALPHA, /* U+00b122: */ + RTUNI_ALPHA, /* U+00b123: */ + RTUNI_ALPHA, /* U+00b124: */ + RTUNI_ALPHA, /* U+00b125: */ + RTUNI_ALPHA, /* U+00b126: */ + RTUNI_ALPHA, /* U+00b127: */ + RTUNI_ALPHA, /* U+00b128: */ + RTUNI_ALPHA, /* U+00b129: */ + RTUNI_ALPHA, /* U+00b12a: */ + RTUNI_ALPHA, /* U+00b12b: */ + RTUNI_ALPHA, /* U+00b12c: */ + RTUNI_ALPHA, /* U+00b12d: */ + RTUNI_ALPHA, /* U+00b12e: */ + RTUNI_ALPHA, /* U+00b12f: */ + RTUNI_ALPHA, /* U+00b130: */ + RTUNI_ALPHA, /* U+00b131: */ + RTUNI_ALPHA, /* U+00b132: */ + RTUNI_ALPHA, /* U+00b133: */ + RTUNI_ALPHA, /* U+00b134: */ + RTUNI_ALPHA, /* U+00b135: */ + RTUNI_ALPHA, /* U+00b136: */ + RTUNI_ALPHA, /* U+00b137: */ + RTUNI_ALPHA, /* U+00b138: */ + RTUNI_ALPHA, /* U+00b139: */ + RTUNI_ALPHA, /* U+00b13a: */ + RTUNI_ALPHA, /* U+00b13b: */ + RTUNI_ALPHA, /* U+00b13c: */ + RTUNI_ALPHA, /* U+00b13d: */ + RTUNI_ALPHA, /* U+00b13e: */ + RTUNI_ALPHA, /* U+00b13f: */ + RTUNI_ALPHA, /* U+00b140: */ + RTUNI_ALPHA, /* U+00b141: */ + RTUNI_ALPHA, /* U+00b142: */ + RTUNI_ALPHA, /* U+00b143: */ + RTUNI_ALPHA, /* U+00b144: */ + RTUNI_ALPHA, /* U+00b145: */ + RTUNI_ALPHA, /* U+00b146: */ + RTUNI_ALPHA, /* U+00b147: */ + RTUNI_ALPHA, /* U+00b148: */ + RTUNI_ALPHA, /* U+00b149: */ + RTUNI_ALPHA, /* U+00b14a: */ + RTUNI_ALPHA, /* U+00b14b: */ + RTUNI_ALPHA, /* U+00b14c: */ + RTUNI_ALPHA, /* U+00b14d: */ + RTUNI_ALPHA, /* U+00b14e: */ + RTUNI_ALPHA, /* U+00b14f: */ + RTUNI_ALPHA, /* U+00b150: */ + RTUNI_ALPHA, /* U+00b151: */ + RTUNI_ALPHA, /* U+00b152: */ + RTUNI_ALPHA, /* U+00b153: */ + RTUNI_ALPHA, /* U+00b154: */ + RTUNI_ALPHA, /* U+00b155: */ + RTUNI_ALPHA, /* U+00b156: */ + RTUNI_ALPHA, /* U+00b157: */ + RTUNI_ALPHA, /* U+00b158: */ + RTUNI_ALPHA, /* U+00b159: */ + RTUNI_ALPHA, /* U+00b15a: */ + RTUNI_ALPHA, /* U+00b15b: */ + RTUNI_ALPHA, /* U+00b15c: */ + RTUNI_ALPHA, /* U+00b15d: */ + RTUNI_ALPHA, /* U+00b15e: */ + RTUNI_ALPHA, /* U+00b15f: */ + RTUNI_ALPHA, /* U+00b160: */ + RTUNI_ALPHA, /* U+00b161: */ + RTUNI_ALPHA, /* U+00b162: */ + RTUNI_ALPHA, /* U+00b163: */ + RTUNI_ALPHA, /* U+00b164: */ + RTUNI_ALPHA, /* U+00b165: */ + RTUNI_ALPHA, /* U+00b166: */ + RTUNI_ALPHA, /* U+00b167: */ + RTUNI_ALPHA, /* U+00b168: */ + RTUNI_ALPHA, /* U+00b169: */ + RTUNI_ALPHA, /* U+00b16a: */ + RTUNI_ALPHA, /* U+00b16b: */ + RTUNI_ALPHA, /* U+00b16c: */ + RTUNI_ALPHA, /* U+00b16d: */ + RTUNI_ALPHA, /* U+00b16e: */ + RTUNI_ALPHA, /* U+00b16f: */ + RTUNI_ALPHA, /* U+00b170: */ + RTUNI_ALPHA, /* U+00b171: */ + RTUNI_ALPHA, /* U+00b172: */ + RTUNI_ALPHA, /* U+00b173: */ + RTUNI_ALPHA, /* U+00b174: */ + RTUNI_ALPHA, /* U+00b175: */ + RTUNI_ALPHA, /* U+00b176: */ + RTUNI_ALPHA, /* U+00b177: */ + RTUNI_ALPHA, /* U+00b178: */ + RTUNI_ALPHA, /* U+00b179: */ + RTUNI_ALPHA, /* U+00b17a: */ + RTUNI_ALPHA, /* U+00b17b: */ + RTUNI_ALPHA, /* U+00b17c: */ + RTUNI_ALPHA, /* U+00b17d: */ + RTUNI_ALPHA, /* U+00b17e: */ + RTUNI_ALPHA, /* U+00b17f: */ + RTUNI_ALPHA, /* U+00b180: */ + RTUNI_ALPHA, /* U+00b181: */ + RTUNI_ALPHA, /* U+00b182: */ + RTUNI_ALPHA, /* U+00b183: */ + RTUNI_ALPHA, /* U+00b184: */ + RTUNI_ALPHA, /* U+00b185: */ + RTUNI_ALPHA, /* U+00b186: */ + RTUNI_ALPHA, /* U+00b187: */ + RTUNI_ALPHA, /* U+00b188: */ + RTUNI_ALPHA, /* U+00b189: */ + RTUNI_ALPHA, /* U+00b18a: */ + RTUNI_ALPHA, /* U+00b18b: */ + RTUNI_ALPHA, /* U+00b18c: */ + RTUNI_ALPHA, /* U+00b18d: */ + RTUNI_ALPHA, /* U+00b18e: */ + RTUNI_ALPHA, /* U+00b18f: */ + RTUNI_ALPHA, /* U+00b190: */ + RTUNI_ALPHA, /* U+00b191: */ + RTUNI_ALPHA, /* U+00b192: */ + RTUNI_ALPHA, /* U+00b193: */ + RTUNI_ALPHA, /* U+00b194: */ + RTUNI_ALPHA, /* U+00b195: */ + RTUNI_ALPHA, /* U+00b196: */ + RTUNI_ALPHA, /* U+00b197: */ + RTUNI_ALPHA, /* U+00b198: */ + RTUNI_ALPHA, /* U+00b199: */ + RTUNI_ALPHA, /* U+00b19a: */ + RTUNI_ALPHA, /* U+00b19b: */ + RTUNI_ALPHA, /* U+00b19c: */ + RTUNI_ALPHA, /* U+00b19d: */ + RTUNI_ALPHA, /* U+00b19e: */ + RTUNI_ALPHA, /* U+00b19f: */ + RTUNI_ALPHA, /* U+00b1a0: */ + RTUNI_ALPHA, /* U+00b1a1: */ + RTUNI_ALPHA, /* U+00b1a2: */ + RTUNI_ALPHA, /* U+00b1a3: */ + RTUNI_ALPHA, /* U+00b1a4: */ + RTUNI_ALPHA, /* U+00b1a5: */ + RTUNI_ALPHA, /* U+00b1a6: */ + RTUNI_ALPHA, /* U+00b1a7: */ + RTUNI_ALPHA, /* U+00b1a8: */ + RTUNI_ALPHA, /* U+00b1a9: */ + RTUNI_ALPHA, /* U+00b1aa: */ + RTUNI_ALPHA, /* U+00b1ab: */ + RTUNI_ALPHA, /* U+00b1ac: */ + RTUNI_ALPHA, /* U+00b1ad: */ + RTUNI_ALPHA, /* U+00b1ae: */ + RTUNI_ALPHA, /* U+00b1af: */ + RTUNI_ALPHA, /* U+00b1b0: */ + RTUNI_ALPHA, /* U+00b1b1: */ + RTUNI_ALPHA, /* U+00b1b2: */ + RTUNI_ALPHA, /* U+00b1b3: */ + RTUNI_ALPHA, /* U+00b1b4: */ + RTUNI_ALPHA, /* U+00b1b5: */ + RTUNI_ALPHA, /* U+00b1b6: */ + RTUNI_ALPHA, /* U+00b1b7: */ + RTUNI_ALPHA, /* U+00b1b8: */ + RTUNI_ALPHA, /* U+00b1b9: */ + RTUNI_ALPHA, /* U+00b1ba: */ + RTUNI_ALPHA, /* U+00b1bb: */ + RTUNI_ALPHA, /* U+00b1bc: */ + RTUNI_ALPHA, /* U+00b1bd: */ + RTUNI_ALPHA, /* U+00b1be: */ + RTUNI_ALPHA, /* U+00b1bf: */ + RTUNI_ALPHA, /* U+00b1c0: */ + RTUNI_ALPHA, /* U+00b1c1: */ + RTUNI_ALPHA, /* U+00b1c2: */ + RTUNI_ALPHA, /* U+00b1c3: */ + RTUNI_ALPHA, /* U+00b1c4: */ + RTUNI_ALPHA, /* U+00b1c5: */ + RTUNI_ALPHA, /* U+00b1c6: */ + RTUNI_ALPHA, /* U+00b1c7: */ + RTUNI_ALPHA, /* U+00b1c8: */ + RTUNI_ALPHA, /* U+00b1c9: */ + RTUNI_ALPHA, /* U+00b1ca: */ + RTUNI_ALPHA, /* U+00b1cb: */ + RTUNI_ALPHA, /* U+00b1cc: */ + RTUNI_ALPHA, /* U+00b1cd: */ + RTUNI_ALPHA, /* U+00b1ce: */ + RTUNI_ALPHA, /* U+00b1cf: */ + RTUNI_ALPHA, /* U+00b1d0: */ + RTUNI_ALPHA, /* U+00b1d1: */ + RTUNI_ALPHA, /* U+00b1d2: */ + RTUNI_ALPHA, /* U+00b1d3: */ + RTUNI_ALPHA, /* U+00b1d4: */ + RTUNI_ALPHA, /* U+00b1d5: */ + RTUNI_ALPHA, /* U+00b1d6: */ + RTUNI_ALPHA, /* U+00b1d7: */ + RTUNI_ALPHA, /* U+00b1d8: */ + RTUNI_ALPHA, /* U+00b1d9: */ + RTUNI_ALPHA, /* U+00b1da: */ + RTUNI_ALPHA, /* U+00b1db: */ + RTUNI_ALPHA, /* U+00b1dc: */ + RTUNI_ALPHA, /* U+00b1dd: */ + RTUNI_ALPHA, /* U+00b1de: */ + RTUNI_ALPHA, /* U+00b1df: */ + RTUNI_ALPHA, /* U+00b1e0: */ + RTUNI_ALPHA, /* U+00b1e1: */ + RTUNI_ALPHA, /* U+00b1e2: */ + RTUNI_ALPHA, /* U+00b1e3: */ + RTUNI_ALPHA, /* U+00b1e4: */ + RTUNI_ALPHA, /* U+00b1e5: */ + RTUNI_ALPHA, /* U+00b1e6: */ + RTUNI_ALPHA, /* U+00b1e7: */ + RTUNI_ALPHA, /* U+00b1e8: */ + RTUNI_ALPHA, /* U+00b1e9: */ + RTUNI_ALPHA, /* U+00b1ea: */ + RTUNI_ALPHA, /* U+00b1eb: */ + RTUNI_ALPHA, /* U+00b1ec: */ + RTUNI_ALPHA, /* U+00b1ed: */ + RTUNI_ALPHA, /* U+00b1ee: */ + RTUNI_ALPHA, /* U+00b1ef: */ + RTUNI_ALPHA, /* U+00b1f0: */ + RTUNI_ALPHA, /* U+00b1f1: */ + RTUNI_ALPHA, /* U+00b1f2: */ + RTUNI_ALPHA, /* U+00b1f3: */ + RTUNI_ALPHA, /* U+00b1f4: */ + RTUNI_ALPHA, /* U+00b1f5: */ + RTUNI_ALPHA, /* U+00b1f6: */ + RTUNI_ALPHA, /* U+00b1f7: */ + RTUNI_ALPHA, /* U+00b1f8: */ + RTUNI_ALPHA, /* U+00b1f9: */ + RTUNI_ALPHA, /* U+00b1fa: */ + RTUNI_ALPHA, /* U+00b1fb: */ + RTUNI_ALPHA, /* U+00b1fc: */ + RTUNI_ALPHA, /* U+00b1fd: */ + RTUNI_ALPHA, /* U+00b1fe: */ + RTUNI_ALPHA, /* U+00b1ff: */ + RTUNI_ALPHA, /* U+00b200: */ + RTUNI_ALPHA, /* U+00b201: */ + RTUNI_ALPHA, /* U+00b202: */ + RTUNI_ALPHA, /* U+00b203: */ + RTUNI_ALPHA, /* U+00b204: */ + RTUNI_ALPHA, /* U+00b205: */ + RTUNI_ALPHA, /* U+00b206: */ + RTUNI_ALPHA, /* U+00b207: */ + RTUNI_ALPHA, /* U+00b208: */ + RTUNI_ALPHA, /* U+00b209: */ + RTUNI_ALPHA, /* U+00b20a: */ + RTUNI_ALPHA, /* U+00b20b: */ + RTUNI_ALPHA, /* U+00b20c: */ + RTUNI_ALPHA, /* U+00b20d: */ + RTUNI_ALPHA, /* U+00b20e: */ + RTUNI_ALPHA, /* U+00b20f: */ + RTUNI_ALPHA, /* U+00b210: */ + RTUNI_ALPHA, /* U+00b211: */ + RTUNI_ALPHA, /* U+00b212: */ + RTUNI_ALPHA, /* U+00b213: */ + RTUNI_ALPHA, /* U+00b214: */ + RTUNI_ALPHA, /* U+00b215: */ + RTUNI_ALPHA, /* U+00b216: */ + RTUNI_ALPHA, /* U+00b217: */ + RTUNI_ALPHA, /* U+00b218: */ + RTUNI_ALPHA, /* U+00b219: */ + RTUNI_ALPHA, /* U+00b21a: */ + RTUNI_ALPHA, /* U+00b21b: */ + RTUNI_ALPHA, /* U+00b21c: */ + RTUNI_ALPHA, /* U+00b21d: */ + RTUNI_ALPHA, /* U+00b21e: */ + RTUNI_ALPHA, /* U+00b21f: */ + RTUNI_ALPHA, /* U+00b220: */ + RTUNI_ALPHA, /* U+00b221: */ + RTUNI_ALPHA, /* U+00b222: */ + RTUNI_ALPHA, /* U+00b223: */ + RTUNI_ALPHA, /* U+00b224: */ + RTUNI_ALPHA, /* U+00b225: */ + RTUNI_ALPHA, /* U+00b226: */ + RTUNI_ALPHA, /* U+00b227: */ + RTUNI_ALPHA, /* U+00b228: */ + RTUNI_ALPHA, /* U+00b229: */ + RTUNI_ALPHA, /* U+00b22a: */ + RTUNI_ALPHA, /* U+00b22b: */ + RTUNI_ALPHA, /* U+00b22c: */ + RTUNI_ALPHA, /* U+00b22d: */ + RTUNI_ALPHA, /* U+00b22e: */ + RTUNI_ALPHA, /* U+00b22f: */ + RTUNI_ALPHA, /* U+00b230: */ + RTUNI_ALPHA, /* U+00b231: */ + RTUNI_ALPHA, /* U+00b232: */ + RTUNI_ALPHA, /* U+00b233: */ + RTUNI_ALPHA, /* U+00b234: */ + RTUNI_ALPHA, /* U+00b235: */ + RTUNI_ALPHA, /* U+00b236: */ + RTUNI_ALPHA, /* U+00b237: */ + RTUNI_ALPHA, /* U+00b238: */ + RTUNI_ALPHA, /* U+00b239: */ + RTUNI_ALPHA, /* U+00b23a: */ + RTUNI_ALPHA, /* U+00b23b: */ + RTUNI_ALPHA, /* U+00b23c: */ + RTUNI_ALPHA, /* U+00b23d: */ + RTUNI_ALPHA, /* U+00b23e: */ + RTUNI_ALPHA, /* U+00b23f: */ + RTUNI_ALPHA, /* U+00b240: */ + RTUNI_ALPHA, /* U+00b241: */ + RTUNI_ALPHA, /* U+00b242: */ + RTUNI_ALPHA, /* U+00b243: */ + RTUNI_ALPHA, /* U+00b244: */ + RTUNI_ALPHA, /* U+00b245: */ + RTUNI_ALPHA, /* U+00b246: */ + RTUNI_ALPHA, /* U+00b247: */ + RTUNI_ALPHA, /* U+00b248: */ + RTUNI_ALPHA, /* U+00b249: */ + RTUNI_ALPHA, /* U+00b24a: */ + RTUNI_ALPHA, /* U+00b24b: */ + RTUNI_ALPHA, /* U+00b24c: */ + RTUNI_ALPHA, /* U+00b24d: */ + RTUNI_ALPHA, /* U+00b24e: */ + RTUNI_ALPHA, /* U+00b24f: */ + RTUNI_ALPHA, /* U+00b250: */ + RTUNI_ALPHA, /* U+00b251: */ + RTUNI_ALPHA, /* U+00b252: */ + RTUNI_ALPHA, /* U+00b253: */ + RTUNI_ALPHA, /* U+00b254: */ + RTUNI_ALPHA, /* U+00b255: */ + RTUNI_ALPHA, /* U+00b256: */ + RTUNI_ALPHA, /* U+00b257: */ + RTUNI_ALPHA, /* U+00b258: */ + RTUNI_ALPHA, /* U+00b259: */ + RTUNI_ALPHA, /* U+00b25a: */ + RTUNI_ALPHA, /* U+00b25b: */ + RTUNI_ALPHA, /* U+00b25c: */ + RTUNI_ALPHA, /* U+00b25d: */ + RTUNI_ALPHA, /* U+00b25e: */ + RTUNI_ALPHA, /* U+00b25f: */ + RTUNI_ALPHA, /* U+00b260: */ + RTUNI_ALPHA, /* U+00b261: */ + RTUNI_ALPHA, /* U+00b262: */ + RTUNI_ALPHA, /* U+00b263: */ + RTUNI_ALPHA, /* U+00b264: */ + RTUNI_ALPHA, /* U+00b265: */ + RTUNI_ALPHA, /* U+00b266: */ + RTUNI_ALPHA, /* U+00b267: */ + RTUNI_ALPHA, /* U+00b268: */ + RTUNI_ALPHA, /* U+00b269: */ + RTUNI_ALPHA, /* U+00b26a: */ + RTUNI_ALPHA, /* U+00b26b: */ + RTUNI_ALPHA, /* U+00b26c: */ + RTUNI_ALPHA, /* U+00b26d: */ + RTUNI_ALPHA, /* U+00b26e: */ + RTUNI_ALPHA, /* U+00b26f: */ + RTUNI_ALPHA, /* U+00b270: */ + RTUNI_ALPHA, /* U+00b271: */ + RTUNI_ALPHA, /* U+00b272: */ + RTUNI_ALPHA, /* U+00b273: */ + RTUNI_ALPHA, /* U+00b274: */ + RTUNI_ALPHA, /* U+00b275: */ + RTUNI_ALPHA, /* U+00b276: */ + RTUNI_ALPHA, /* U+00b277: */ + RTUNI_ALPHA, /* U+00b278: */ + RTUNI_ALPHA, /* U+00b279: */ + RTUNI_ALPHA, /* U+00b27a: */ + RTUNI_ALPHA, /* U+00b27b: */ + RTUNI_ALPHA, /* U+00b27c: */ + RTUNI_ALPHA, /* U+00b27d: */ + RTUNI_ALPHA, /* U+00b27e: */ + RTUNI_ALPHA, /* U+00b27f: */ + RTUNI_ALPHA, /* U+00b280: */ + RTUNI_ALPHA, /* U+00b281: */ + RTUNI_ALPHA, /* U+00b282: */ + RTUNI_ALPHA, /* U+00b283: */ + RTUNI_ALPHA, /* U+00b284: */ + RTUNI_ALPHA, /* U+00b285: */ + RTUNI_ALPHA, /* U+00b286: */ + RTUNI_ALPHA, /* U+00b287: */ + RTUNI_ALPHA, /* U+00b288: */ + RTUNI_ALPHA, /* U+00b289: */ + RTUNI_ALPHA, /* U+00b28a: */ + RTUNI_ALPHA, /* U+00b28b: */ + RTUNI_ALPHA, /* U+00b28c: */ + RTUNI_ALPHA, /* U+00b28d: */ + RTUNI_ALPHA, /* U+00b28e: */ + RTUNI_ALPHA, /* U+00b28f: */ + RTUNI_ALPHA, /* U+00b290: */ + RTUNI_ALPHA, /* U+00b291: */ + RTUNI_ALPHA, /* U+00b292: */ + RTUNI_ALPHA, /* U+00b293: */ + RTUNI_ALPHA, /* U+00b294: */ + RTUNI_ALPHA, /* U+00b295: */ + RTUNI_ALPHA, /* U+00b296: */ + RTUNI_ALPHA, /* U+00b297: */ + RTUNI_ALPHA, /* U+00b298: */ + RTUNI_ALPHA, /* U+00b299: */ + RTUNI_ALPHA, /* U+00b29a: */ + RTUNI_ALPHA, /* U+00b29b: */ + RTUNI_ALPHA, /* U+00b29c: */ + RTUNI_ALPHA, /* U+00b29d: */ + RTUNI_ALPHA, /* U+00b29e: */ + RTUNI_ALPHA, /* U+00b29f: */ + RTUNI_ALPHA, /* U+00b2a0: */ + RTUNI_ALPHA, /* U+00b2a1: */ + RTUNI_ALPHA, /* U+00b2a2: */ + RTUNI_ALPHA, /* U+00b2a3: */ + RTUNI_ALPHA, /* U+00b2a4: */ + RTUNI_ALPHA, /* U+00b2a5: */ + RTUNI_ALPHA, /* U+00b2a6: */ + RTUNI_ALPHA, /* U+00b2a7: */ + RTUNI_ALPHA, /* U+00b2a8: */ + RTUNI_ALPHA, /* U+00b2a9: */ + RTUNI_ALPHA, /* U+00b2aa: */ + RTUNI_ALPHA, /* U+00b2ab: */ + RTUNI_ALPHA, /* U+00b2ac: */ + RTUNI_ALPHA, /* U+00b2ad: */ + RTUNI_ALPHA, /* U+00b2ae: */ + RTUNI_ALPHA, /* U+00b2af: */ + RTUNI_ALPHA, /* U+00b2b0: */ + RTUNI_ALPHA, /* U+00b2b1: */ + RTUNI_ALPHA, /* U+00b2b2: */ + RTUNI_ALPHA, /* U+00b2b3: */ + RTUNI_ALPHA, /* U+00b2b4: */ + RTUNI_ALPHA, /* U+00b2b5: */ + RTUNI_ALPHA, /* U+00b2b6: */ + RTUNI_ALPHA, /* U+00b2b7: */ + RTUNI_ALPHA, /* U+00b2b8: */ + RTUNI_ALPHA, /* U+00b2b9: */ + RTUNI_ALPHA, /* U+00b2ba: */ + RTUNI_ALPHA, /* U+00b2bb: */ + RTUNI_ALPHA, /* U+00b2bc: */ + RTUNI_ALPHA, /* U+00b2bd: */ + RTUNI_ALPHA, /* U+00b2be: */ + RTUNI_ALPHA, /* U+00b2bf: */ + RTUNI_ALPHA, /* U+00b2c0: */ + RTUNI_ALPHA, /* U+00b2c1: */ + RTUNI_ALPHA, /* U+00b2c2: */ + RTUNI_ALPHA, /* U+00b2c3: */ + RTUNI_ALPHA, /* U+00b2c4: */ + RTUNI_ALPHA, /* U+00b2c5: */ + RTUNI_ALPHA, /* U+00b2c6: */ + RTUNI_ALPHA, /* U+00b2c7: */ + RTUNI_ALPHA, /* U+00b2c8: */ + RTUNI_ALPHA, /* U+00b2c9: */ + RTUNI_ALPHA, /* U+00b2ca: */ + RTUNI_ALPHA, /* U+00b2cb: */ + RTUNI_ALPHA, /* U+00b2cc: */ + RTUNI_ALPHA, /* U+00b2cd: */ + RTUNI_ALPHA, /* U+00b2ce: */ + RTUNI_ALPHA, /* U+00b2cf: */ + RTUNI_ALPHA, /* U+00b2d0: */ + RTUNI_ALPHA, /* U+00b2d1: */ + RTUNI_ALPHA, /* U+00b2d2: */ + RTUNI_ALPHA, /* U+00b2d3: */ + RTUNI_ALPHA, /* U+00b2d4: */ + RTUNI_ALPHA, /* U+00b2d5: */ + RTUNI_ALPHA, /* U+00b2d6: */ + RTUNI_ALPHA, /* U+00b2d7: */ + RTUNI_ALPHA, /* U+00b2d8: */ + RTUNI_ALPHA, /* U+00b2d9: */ + RTUNI_ALPHA, /* U+00b2da: */ + RTUNI_ALPHA, /* U+00b2db: */ + RTUNI_ALPHA, /* U+00b2dc: */ + RTUNI_ALPHA, /* U+00b2dd: */ + RTUNI_ALPHA, /* U+00b2de: */ + RTUNI_ALPHA, /* U+00b2df: */ + RTUNI_ALPHA, /* U+00b2e0: */ + RTUNI_ALPHA, /* U+00b2e1: */ + RTUNI_ALPHA, /* U+00b2e2: */ + RTUNI_ALPHA, /* U+00b2e3: */ + RTUNI_ALPHA, /* U+00b2e4: */ + RTUNI_ALPHA, /* U+00b2e5: */ + RTUNI_ALPHA, /* U+00b2e6: */ + RTUNI_ALPHA, /* U+00b2e7: */ + RTUNI_ALPHA, /* U+00b2e8: */ + RTUNI_ALPHA, /* U+00b2e9: */ + RTUNI_ALPHA, /* U+00b2ea: */ + RTUNI_ALPHA, /* U+00b2eb: */ + RTUNI_ALPHA, /* U+00b2ec: */ + RTUNI_ALPHA, /* U+00b2ed: */ + RTUNI_ALPHA, /* U+00b2ee: */ + RTUNI_ALPHA, /* U+00b2ef: */ + RTUNI_ALPHA, /* U+00b2f0: */ + RTUNI_ALPHA, /* U+00b2f1: */ + RTUNI_ALPHA, /* U+00b2f2: */ + RTUNI_ALPHA, /* U+00b2f3: */ + RTUNI_ALPHA, /* U+00b2f4: */ + RTUNI_ALPHA, /* U+00b2f5: */ + RTUNI_ALPHA, /* U+00b2f6: */ + RTUNI_ALPHA, /* U+00b2f7: */ + RTUNI_ALPHA, /* U+00b2f8: */ + RTUNI_ALPHA, /* U+00b2f9: */ + RTUNI_ALPHA, /* U+00b2fa: */ + RTUNI_ALPHA, /* U+00b2fb: */ + RTUNI_ALPHA, /* U+00b2fc: */ + RTUNI_ALPHA, /* U+00b2fd: */ + RTUNI_ALPHA, /* U+00b2fe: */ + RTUNI_ALPHA, /* U+00b2ff: */ + RTUNI_ALPHA, /* U+00b300: */ + RTUNI_ALPHA, /* U+00b301: */ + RTUNI_ALPHA, /* U+00b302: */ + RTUNI_ALPHA, /* U+00b303: */ + RTUNI_ALPHA, /* U+00b304: */ + RTUNI_ALPHA, /* U+00b305: */ + RTUNI_ALPHA, /* U+00b306: */ + RTUNI_ALPHA, /* U+00b307: */ + RTUNI_ALPHA, /* U+00b308: */ + RTUNI_ALPHA, /* U+00b309: */ + RTUNI_ALPHA, /* U+00b30a: */ + RTUNI_ALPHA, /* U+00b30b: */ + RTUNI_ALPHA, /* U+00b30c: */ + RTUNI_ALPHA, /* U+00b30d: */ + RTUNI_ALPHA, /* U+00b30e: */ + RTUNI_ALPHA, /* U+00b30f: */ + RTUNI_ALPHA, /* U+00b310: */ + RTUNI_ALPHA, /* U+00b311: */ + RTUNI_ALPHA, /* U+00b312: */ + RTUNI_ALPHA, /* U+00b313: */ + RTUNI_ALPHA, /* U+00b314: */ + RTUNI_ALPHA, /* U+00b315: */ + RTUNI_ALPHA, /* U+00b316: */ + RTUNI_ALPHA, /* U+00b317: */ + RTUNI_ALPHA, /* U+00b318: */ + RTUNI_ALPHA, /* U+00b319: */ + RTUNI_ALPHA, /* U+00b31a: */ + RTUNI_ALPHA, /* U+00b31b: */ + RTUNI_ALPHA, /* U+00b31c: */ + RTUNI_ALPHA, /* U+00b31d: */ + RTUNI_ALPHA, /* U+00b31e: */ + RTUNI_ALPHA, /* U+00b31f: */ + RTUNI_ALPHA, /* U+00b320: */ + RTUNI_ALPHA, /* U+00b321: */ + RTUNI_ALPHA, /* U+00b322: */ + RTUNI_ALPHA, /* U+00b323: */ + RTUNI_ALPHA, /* U+00b324: */ + RTUNI_ALPHA, /* U+00b325: */ + RTUNI_ALPHA, /* U+00b326: */ + RTUNI_ALPHA, /* U+00b327: */ + RTUNI_ALPHA, /* U+00b328: */ + RTUNI_ALPHA, /* U+00b329: */ + RTUNI_ALPHA, /* U+00b32a: */ + RTUNI_ALPHA, /* U+00b32b: */ + RTUNI_ALPHA, /* U+00b32c: */ + RTUNI_ALPHA, /* U+00b32d: */ + RTUNI_ALPHA, /* U+00b32e: */ + RTUNI_ALPHA, /* U+00b32f: */ + RTUNI_ALPHA, /* U+00b330: */ + RTUNI_ALPHA, /* U+00b331: */ + RTUNI_ALPHA, /* U+00b332: */ + RTUNI_ALPHA, /* U+00b333: */ + RTUNI_ALPHA, /* U+00b334: */ + RTUNI_ALPHA, /* U+00b335: */ + RTUNI_ALPHA, /* U+00b336: */ + RTUNI_ALPHA, /* U+00b337: */ + RTUNI_ALPHA, /* U+00b338: */ + RTUNI_ALPHA, /* U+00b339: */ + RTUNI_ALPHA, /* U+00b33a: */ + RTUNI_ALPHA, /* U+00b33b: */ + RTUNI_ALPHA, /* U+00b33c: */ + RTUNI_ALPHA, /* U+00b33d: */ + RTUNI_ALPHA, /* U+00b33e: */ + RTUNI_ALPHA, /* U+00b33f: */ + RTUNI_ALPHA, /* U+00b340: */ + RTUNI_ALPHA, /* U+00b341: */ + RTUNI_ALPHA, /* U+00b342: */ + RTUNI_ALPHA, /* U+00b343: */ + RTUNI_ALPHA, /* U+00b344: */ + RTUNI_ALPHA, /* U+00b345: */ + RTUNI_ALPHA, /* U+00b346: */ + RTUNI_ALPHA, /* U+00b347: */ + RTUNI_ALPHA, /* U+00b348: */ + RTUNI_ALPHA, /* U+00b349: */ + RTUNI_ALPHA, /* U+00b34a: */ + RTUNI_ALPHA, /* U+00b34b: */ + RTUNI_ALPHA, /* U+00b34c: */ + RTUNI_ALPHA, /* U+00b34d: */ + RTUNI_ALPHA, /* U+00b34e: */ + RTUNI_ALPHA, /* U+00b34f: */ + RTUNI_ALPHA, /* U+00b350: */ + RTUNI_ALPHA, /* U+00b351: */ + RTUNI_ALPHA, /* U+00b352: */ + RTUNI_ALPHA, /* U+00b353: */ + RTUNI_ALPHA, /* U+00b354: */ + RTUNI_ALPHA, /* U+00b355: */ + RTUNI_ALPHA, /* U+00b356: */ + RTUNI_ALPHA, /* U+00b357: */ + RTUNI_ALPHA, /* U+00b358: */ + RTUNI_ALPHA, /* U+00b359: */ + RTUNI_ALPHA, /* U+00b35a: */ + RTUNI_ALPHA, /* U+00b35b: */ + RTUNI_ALPHA, /* U+00b35c: */ + RTUNI_ALPHA, /* U+00b35d: */ + RTUNI_ALPHA, /* U+00b35e: */ + RTUNI_ALPHA, /* U+00b35f: */ + RTUNI_ALPHA, /* U+00b360: */ + RTUNI_ALPHA, /* U+00b361: */ + RTUNI_ALPHA, /* U+00b362: */ + RTUNI_ALPHA, /* U+00b363: */ + RTUNI_ALPHA, /* U+00b364: */ + RTUNI_ALPHA, /* U+00b365: */ + RTUNI_ALPHA, /* U+00b366: */ + RTUNI_ALPHA, /* U+00b367: */ + RTUNI_ALPHA, /* U+00b368: */ + RTUNI_ALPHA, /* U+00b369: */ + RTUNI_ALPHA, /* U+00b36a: */ + RTUNI_ALPHA, /* U+00b36b: */ + RTUNI_ALPHA, /* U+00b36c: */ + RTUNI_ALPHA, /* U+00b36d: */ + RTUNI_ALPHA, /* U+00b36e: */ + RTUNI_ALPHA, /* U+00b36f: */ + RTUNI_ALPHA, /* U+00b370: */ + RTUNI_ALPHA, /* U+00b371: */ + RTUNI_ALPHA, /* U+00b372: */ + RTUNI_ALPHA, /* U+00b373: */ + RTUNI_ALPHA, /* U+00b374: */ + RTUNI_ALPHA, /* U+00b375: */ + RTUNI_ALPHA, /* U+00b376: */ + RTUNI_ALPHA, /* U+00b377: */ + RTUNI_ALPHA, /* U+00b378: */ + RTUNI_ALPHA, /* U+00b379: */ + RTUNI_ALPHA, /* U+00b37a: */ + RTUNI_ALPHA, /* U+00b37b: */ + RTUNI_ALPHA, /* U+00b37c: */ + RTUNI_ALPHA, /* U+00b37d: */ + RTUNI_ALPHA, /* U+00b37e: */ + RTUNI_ALPHA, /* U+00b37f: */ + RTUNI_ALPHA, /* U+00b380: */ + RTUNI_ALPHA, /* U+00b381: */ + RTUNI_ALPHA, /* U+00b382: */ + RTUNI_ALPHA, /* U+00b383: */ + RTUNI_ALPHA, /* U+00b384: */ + RTUNI_ALPHA, /* U+00b385: */ + RTUNI_ALPHA, /* U+00b386: */ + RTUNI_ALPHA, /* U+00b387: */ + RTUNI_ALPHA, /* U+00b388: */ + RTUNI_ALPHA, /* U+00b389: */ + RTUNI_ALPHA, /* U+00b38a: */ + RTUNI_ALPHA, /* U+00b38b: */ + RTUNI_ALPHA, /* U+00b38c: */ + RTUNI_ALPHA, /* U+00b38d: */ + RTUNI_ALPHA, /* U+00b38e: */ + RTUNI_ALPHA, /* U+00b38f: */ + RTUNI_ALPHA, /* U+00b390: */ + RTUNI_ALPHA, /* U+00b391: */ + RTUNI_ALPHA, /* U+00b392: */ + RTUNI_ALPHA, /* U+00b393: */ + RTUNI_ALPHA, /* U+00b394: */ + RTUNI_ALPHA, /* U+00b395: */ + RTUNI_ALPHA, /* U+00b396: */ + RTUNI_ALPHA, /* U+00b397: */ + RTUNI_ALPHA, /* U+00b398: */ + RTUNI_ALPHA, /* U+00b399: */ + RTUNI_ALPHA, /* U+00b39a: */ + RTUNI_ALPHA, /* U+00b39b: */ + RTUNI_ALPHA, /* U+00b39c: */ + RTUNI_ALPHA, /* U+00b39d: */ + RTUNI_ALPHA, /* U+00b39e: */ + RTUNI_ALPHA, /* U+00b39f: */ + RTUNI_ALPHA, /* U+00b3a0: */ + RTUNI_ALPHA, /* U+00b3a1: */ + RTUNI_ALPHA, /* U+00b3a2: */ + RTUNI_ALPHA, /* U+00b3a3: */ + RTUNI_ALPHA, /* U+00b3a4: */ + RTUNI_ALPHA, /* U+00b3a5: */ + RTUNI_ALPHA, /* U+00b3a6: */ + RTUNI_ALPHA, /* U+00b3a7: */ + RTUNI_ALPHA, /* U+00b3a8: */ + RTUNI_ALPHA, /* U+00b3a9: */ + RTUNI_ALPHA, /* U+00b3aa: */ + RTUNI_ALPHA, /* U+00b3ab: */ + RTUNI_ALPHA, /* U+00b3ac: */ + RTUNI_ALPHA, /* U+00b3ad: */ + RTUNI_ALPHA, /* U+00b3ae: */ + RTUNI_ALPHA, /* U+00b3af: */ + RTUNI_ALPHA, /* U+00b3b0: */ + RTUNI_ALPHA, /* U+00b3b1: */ + RTUNI_ALPHA, /* U+00b3b2: */ + RTUNI_ALPHA, /* U+00b3b3: */ + RTUNI_ALPHA, /* U+00b3b4: */ + RTUNI_ALPHA, /* U+00b3b5: */ + RTUNI_ALPHA, /* U+00b3b6: */ + RTUNI_ALPHA, /* U+00b3b7: */ + RTUNI_ALPHA, /* U+00b3b8: */ + RTUNI_ALPHA, /* U+00b3b9: */ + RTUNI_ALPHA, /* U+00b3ba: */ + RTUNI_ALPHA, /* U+00b3bb: */ + RTUNI_ALPHA, /* U+00b3bc: */ + RTUNI_ALPHA, /* U+00b3bd: */ + RTUNI_ALPHA, /* U+00b3be: */ + RTUNI_ALPHA, /* U+00b3bf: */ + RTUNI_ALPHA, /* U+00b3c0: */ + RTUNI_ALPHA, /* U+00b3c1: */ + RTUNI_ALPHA, /* U+00b3c2: */ + RTUNI_ALPHA, /* U+00b3c3: */ + RTUNI_ALPHA, /* U+00b3c4: */ + RTUNI_ALPHA, /* U+00b3c5: */ + RTUNI_ALPHA, /* U+00b3c6: */ + RTUNI_ALPHA, /* U+00b3c7: */ + RTUNI_ALPHA, /* U+00b3c8: */ + RTUNI_ALPHA, /* U+00b3c9: */ + RTUNI_ALPHA, /* U+00b3ca: */ + RTUNI_ALPHA, /* U+00b3cb: */ + RTUNI_ALPHA, /* U+00b3cc: */ + RTUNI_ALPHA, /* U+00b3cd: */ + RTUNI_ALPHA, /* U+00b3ce: */ + RTUNI_ALPHA, /* U+00b3cf: */ + RTUNI_ALPHA, /* U+00b3d0: */ + RTUNI_ALPHA, /* U+00b3d1: */ + RTUNI_ALPHA, /* U+00b3d2: */ + RTUNI_ALPHA, /* U+00b3d3: */ + RTUNI_ALPHA, /* U+00b3d4: */ + RTUNI_ALPHA, /* U+00b3d5: */ + RTUNI_ALPHA, /* U+00b3d6: */ + RTUNI_ALPHA, /* U+00b3d7: */ + RTUNI_ALPHA, /* U+00b3d8: */ + RTUNI_ALPHA, /* U+00b3d9: */ + RTUNI_ALPHA, /* U+00b3da: */ + RTUNI_ALPHA, /* U+00b3db: */ + RTUNI_ALPHA, /* U+00b3dc: */ + RTUNI_ALPHA, /* U+00b3dd: */ + RTUNI_ALPHA, /* U+00b3de: */ + RTUNI_ALPHA, /* U+00b3df: */ + RTUNI_ALPHA, /* U+00b3e0: */ + RTUNI_ALPHA, /* U+00b3e1: */ + RTUNI_ALPHA, /* U+00b3e2: */ + RTUNI_ALPHA, /* U+00b3e3: */ + RTUNI_ALPHA, /* U+00b3e4: */ + RTUNI_ALPHA, /* U+00b3e5: */ + RTUNI_ALPHA, /* U+00b3e6: */ + RTUNI_ALPHA, /* U+00b3e7: */ + RTUNI_ALPHA, /* U+00b3e8: */ + RTUNI_ALPHA, /* U+00b3e9: */ + RTUNI_ALPHA, /* U+00b3ea: */ + RTUNI_ALPHA, /* U+00b3eb: */ + RTUNI_ALPHA, /* U+00b3ec: */ + RTUNI_ALPHA, /* U+00b3ed: */ + RTUNI_ALPHA, /* U+00b3ee: */ + RTUNI_ALPHA, /* U+00b3ef: */ + RTUNI_ALPHA, /* U+00b3f0: */ + RTUNI_ALPHA, /* U+00b3f1: */ + RTUNI_ALPHA, /* U+00b3f2: */ + RTUNI_ALPHA, /* U+00b3f3: */ + RTUNI_ALPHA, /* U+00b3f4: */ + RTUNI_ALPHA, /* U+00b3f5: */ + RTUNI_ALPHA, /* U+00b3f6: */ + RTUNI_ALPHA, /* U+00b3f7: */ + RTUNI_ALPHA, /* U+00b3f8: */ + RTUNI_ALPHA, /* U+00b3f9: */ + RTUNI_ALPHA, /* U+00b3fa: */ + RTUNI_ALPHA, /* U+00b3fb: */ + RTUNI_ALPHA, /* U+00b3fc: */ + RTUNI_ALPHA, /* U+00b3fd: */ + RTUNI_ALPHA, /* U+00b3fe: */ + RTUNI_ALPHA, /* U+00b3ff: */ + RTUNI_ALPHA, /* U+00b400: */ + RTUNI_ALPHA, /* U+00b401: */ + RTUNI_ALPHA, /* U+00b402: */ + RTUNI_ALPHA, /* U+00b403: */ + RTUNI_ALPHA, /* U+00b404: */ + RTUNI_ALPHA, /* U+00b405: */ + RTUNI_ALPHA, /* U+00b406: */ + RTUNI_ALPHA, /* U+00b407: */ + RTUNI_ALPHA, /* U+00b408: */ + RTUNI_ALPHA, /* U+00b409: */ + RTUNI_ALPHA, /* U+00b40a: */ + RTUNI_ALPHA, /* U+00b40b: */ + RTUNI_ALPHA, /* U+00b40c: */ + RTUNI_ALPHA, /* U+00b40d: */ + RTUNI_ALPHA, /* U+00b40e: */ + RTUNI_ALPHA, /* U+00b40f: */ + RTUNI_ALPHA, /* U+00b410: */ + RTUNI_ALPHA, /* U+00b411: */ + RTUNI_ALPHA, /* U+00b412: */ + RTUNI_ALPHA, /* U+00b413: */ + RTUNI_ALPHA, /* U+00b414: */ + RTUNI_ALPHA, /* U+00b415: */ + RTUNI_ALPHA, /* U+00b416: */ + RTUNI_ALPHA, /* U+00b417: */ + RTUNI_ALPHA, /* U+00b418: */ + RTUNI_ALPHA, /* U+00b419: */ + RTUNI_ALPHA, /* U+00b41a: */ + RTUNI_ALPHA, /* U+00b41b: */ + RTUNI_ALPHA, /* U+00b41c: */ + RTUNI_ALPHA, /* U+00b41d: */ + RTUNI_ALPHA, /* U+00b41e: */ + RTUNI_ALPHA, /* U+00b41f: */ + RTUNI_ALPHA, /* U+00b420: */ + RTUNI_ALPHA, /* U+00b421: */ + RTUNI_ALPHA, /* U+00b422: */ + RTUNI_ALPHA, /* U+00b423: */ + RTUNI_ALPHA, /* U+00b424: */ + RTUNI_ALPHA, /* U+00b425: */ + RTUNI_ALPHA, /* U+00b426: */ + RTUNI_ALPHA, /* U+00b427: */ + RTUNI_ALPHA, /* U+00b428: */ + RTUNI_ALPHA, /* U+00b429: */ + RTUNI_ALPHA, /* U+00b42a: */ + RTUNI_ALPHA, /* U+00b42b: */ + RTUNI_ALPHA, /* U+00b42c: */ + RTUNI_ALPHA, /* U+00b42d: */ + RTUNI_ALPHA, /* U+00b42e: */ + RTUNI_ALPHA, /* U+00b42f: */ + RTUNI_ALPHA, /* U+00b430: */ + RTUNI_ALPHA, /* U+00b431: */ + RTUNI_ALPHA, /* U+00b432: */ + RTUNI_ALPHA, /* U+00b433: */ + RTUNI_ALPHA, /* U+00b434: */ + RTUNI_ALPHA, /* U+00b435: */ + RTUNI_ALPHA, /* U+00b436: */ + RTUNI_ALPHA, /* U+00b437: */ + RTUNI_ALPHA, /* U+00b438: */ + RTUNI_ALPHA, /* U+00b439: */ + RTUNI_ALPHA, /* U+00b43a: */ + RTUNI_ALPHA, /* U+00b43b: */ + RTUNI_ALPHA, /* U+00b43c: */ + RTUNI_ALPHA, /* U+00b43d: */ + RTUNI_ALPHA, /* U+00b43e: */ + RTUNI_ALPHA, /* U+00b43f: */ + RTUNI_ALPHA, /* U+00b440: */ + RTUNI_ALPHA, /* U+00b441: */ + RTUNI_ALPHA, /* U+00b442: */ + RTUNI_ALPHA, /* U+00b443: */ + RTUNI_ALPHA, /* U+00b444: */ + RTUNI_ALPHA, /* U+00b445: */ + RTUNI_ALPHA, /* U+00b446: */ + RTUNI_ALPHA, /* U+00b447: */ + RTUNI_ALPHA, /* U+00b448: */ + RTUNI_ALPHA, /* U+00b449: */ + RTUNI_ALPHA, /* U+00b44a: */ + RTUNI_ALPHA, /* U+00b44b: */ + RTUNI_ALPHA, /* U+00b44c: */ + RTUNI_ALPHA, /* U+00b44d: */ + RTUNI_ALPHA, /* U+00b44e: */ + RTUNI_ALPHA, /* U+00b44f: */ + RTUNI_ALPHA, /* U+00b450: */ + RTUNI_ALPHA, /* U+00b451: */ + RTUNI_ALPHA, /* U+00b452: */ + RTUNI_ALPHA, /* U+00b453: */ + RTUNI_ALPHA, /* U+00b454: */ + RTUNI_ALPHA, /* U+00b455: */ + RTUNI_ALPHA, /* U+00b456: */ + RTUNI_ALPHA, /* U+00b457: */ + RTUNI_ALPHA, /* U+00b458: */ + RTUNI_ALPHA, /* U+00b459: */ + RTUNI_ALPHA, /* U+00b45a: */ + RTUNI_ALPHA, /* U+00b45b: */ + RTUNI_ALPHA, /* U+00b45c: */ + RTUNI_ALPHA, /* U+00b45d: */ + RTUNI_ALPHA, /* U+00b45e: */ + RTUNI_ALPHA, /* U+00b45f: */ + RTUNI_ALPHA, /* U+00b460: */ + RTUNI_ALPHA, /* U+00b461: */ + RTUNI_ALPHA, /* U+00b462: */ + RTUNI_ALPHA, /* U+00b463: */ + RTUNI_ALPHA, /* U+00b464: */ + RTUNI_ALPHA, /* U+00b465: */ + RTUNI_ALPHA, /* U+00b466: */ + RTUNI_ALPHA, /* U+00b467: */ + RTUNI_ALPHA, /* U+00b468: */ + RTUNI_ALPHA, /* U+00b469: */ + RTUNI_ALPHA, /* U+00b46a: */ + RTUNI_ALPHA, /* U+00b46b: */ + RTUNI_ALPHA, /* U+00b46c: */ + RTUNI_ALPHA, /* U+00b46d: */ + RTUNI_ALPHA, /* U+00b46e: */ + RTUNI_ALPHA, /* U+00b46f: */ + RTUNI_ALPHA, /* U+00b470: */ + RTUNI_ALPHA, /* U+00b471: */ + RTUNI_ALPHA, /* U+00b472: */ + RTUNI_ALPHA, /* U+00b473: */ + RTUNI_ALPHA, /* U+00b474: */ + RTUNI_ALPHA, /* U+00b475: */ + RTUNI_ALPHA, /* U+00b476: */ + RTUNI_ALPHA, /* U+00b477: */ + RTUNI_ALPHA, /* U+00b478: */ + RTUNI_ALPHA, /* U+00b479: */ + RTUNI_ALPHA, /* U+00b47a: */ + RTUNI_ALPHA, /* U+00b47b: */ + RTUNI_ALPHA, /* U+00b47c: */ + RTUNI_ALPHA, /* U+00b47d: */ + RTUNI_ALPHA, /* U+00b47e: */ + RTUNI_ALPHA, /* U+00b47f: */ + RTUNI_ALPHA, /* U+00b480: */ + RTUNI_ALPHA, /* U+00b481: */ + RTUNI_ALPHA, /* U+00b482: */ + RTUNI_ALPHA, /* U+00b483: */ + RTUNI_ALPHA, /* U+00b484: */ + RTUNI_ALPHA, /* U+00b485: */ + RTUNI_ALPHA, /* U+00b486: */ + RTUNI_ALPHA, /* U+00b487: */ + RTUNI_ALPHA, /* U+00b488: */ + RTUNI_ALPHA, /* U+00b489: */ + RTUNI_ALPHA, /* U+00b48a: */ + RTUNI_ALPHA, /* U+00b48b: */ + RTUNI_ALPHA, /* U+00b48c: */ + RTUNI_ALPHA, /* U+00b48d: */ + RTUNI_ALPHA, /* U+00b48e: */ + RTUNI_ALPHA, /* U+00b48f: */ + RTUNI_ALPHA, /* U+00b490: */ + RTUNI_ALPHA, /* U+00b491: */ + RTUNI_ALPHA, /* U+00b492: */ + RTUNI_ALPHA, /* U+00b493: */ + RTUNI_ALPHA, /* U+00b494: */ + RTUNI_ALPHA, /* U+00b495: */ + RTUNI_ALPHA, /* U+00b496: */ + RTUNI_ALPHA, /* U+00b497: */ + RTUNI_ALPHA, /* U+00b498: */ + RTUNI_ALPHA, /* U+00b499: */ + RTUNI_ALPHA, /* U+00b49a: */ + RTUNI_ALPHA, /* U+00b49b: */ + RTUNI_ALPHA, /* U+00b49c: */ + RTUNI_ALPHA, /* U+00b49d: */ + RTUNI_ALPHA, /* U+00b49e: */ + RTUNI_ALPHA, /* U+00b49f: */ + RTUNI_ALPHA, /* U+00b4a0: */ + RTUNI_ALPHA, /* U+00b4a1: */ + RTUNI_ALPHA, /* U+00b4a2: */ + RTUNI_ALPHA, /* U+00b4a3: */ + RTUNI_ALPHA, /* U+00b4a4: */ + RTUNI_ALPHA, /* U+00b4a5: */ + RTUNI_ALPHA, /* U+00b4a6: */ + RTUNI_ALPHA, /* U+00b4a7: */ + RTUNI_ALPHA, /* U+00b4a8: */ + RTUNI_ALPHA, /* U+00b4a9: */ + RTUNI_ALPHA, /* U+00b4aa: */ + RTUNI_ALPHA, /* U+00b4ab: */ + RTUNI_ALPHA, /* U+00b4ac: */ + RTUNI_ALPHA, /* U+00b4ad: */ + RTUNI_ALPHA, /* U+00b4ae: */ + RTUNI_ALPHA, /* U+00b4af: */ + RTUNI_ALPHA, /* U+00b4b0: */ + RTUNI_ALPHA, /* U+00b4b1: */ + RTUNI_ALPHA, /* U+00b4b2: */ + RTUNI_ALPHA, /* U+00b4b3: */ + RTUNI_ALPHA, /* U+00b4b4: */ + RTUNI_ALPHA, /* U+00b4b5: */ + RTUNI_ALPHA, /* U+00b4b6: */ + RTUNI_ALPHA, /* U+00b4b7: */ + RTUNI_ALPHA, /* U+00b4b8: */ + RTUNI_ALPHA, /* U+00b4b9: */ + RTUNI_ALPHA, /* U+00b4ba: */ + RTUNI_ALPHA, /* U+00b4bb: */ + RTUNI_ALPHA, /* U+00b4bc: */ + RTUNI_ALPHA, /* U+00b4bd: */ + RTUNI_ALPHA, /* U+00b4be: */ + RTUNI_ALPHA, /* U+00b4bf: */ + RTUNI_ALPHA, /* U+00b4c0: */ + RTUNI_ALPHA, /* U+00b4c1: */ + RTUNI_ALPHA, /* U+00b4c2: */ + RTUNI_ALPHA, /* U+00b4c3: */ + RTUNI_ALPHA, /* U+00b4c4: */ + RTUNI_ALPHA, /* U+00b4c5: */ + RTUNI_ALPHA, /* U+00b4c6: */ + RTUNI_ALPHA, /* U+00b4c7: */ + RTUNI_ALPHA, /* U+00b4c8: */ + RTUNI_ALPHA, /* U+00b4c9: */ + RTUNI_ALPHA, /* U+00b4ca: */ + RTUNI_ALPHA, /* U+00b4cb: */ + RTUNI_ALPHA, /* U+00b4cc: */ + RTUNI_ALPHA, /* U+00b4cd: */ + RTUNI_ALPHA, /* U+00b4ce: */ + RTUNI_ALPHA, /* U+00b4cf: */ + RTUNI_ALPHA, /* U+00b4d0: */ + RTUNI_ALPHA, /* U+00b4d1: */ + RTUNI_ALPHA, /* U+00b4d2: */ + RTUNI_ALPHA, /* U+00b4d3: */ + RTUNI_ALPHA, /* U+00b4d4: */ + RTUNI_ALPHA, /* U+00b4d5: */ + RTUNI_ALPHA, /* U+00b4d6: */ + RTUNI_ALPHA, /* U+00b4d7: */ + RTUNI_ALPHA, /* U+00b4d8: */ + RTUNI_ALPHA, /* U+00b4d9: */ + RTUNI_ALPHA, /* U+00b4da: */ + RTUNI_ALPHA, /* U+00b4db: */ + RTUNI_ALPHA, /* U+00b4dc: */ + RTUNI_ALPHA, /* U+00b4dd: */ + RTUNI_ALPHA, /* U+00b4de: */ + RTUNI_ALPHA, /* U+00b4df: */ + RTUNI_ALPHA, /* U+00b4e0: */ + RTUNI_ALPHA, /* U+00b4e1: */ + RTUNI_ALPHA, /* U+00b4e2: */ + RTUNI_ALPHA, /* U+00b4e3: */ + RTUNI_ALPHA, /* U+00b4e4: */ + RTUNI_ALPHA, /* U+00b4e5: */ + RTUNI_ALPHA, /* U+00b4e6: */ + RTUNI_ALPHA, /* U+00b4e7: */ + RTUNI_ALPHA, /* U+00b4e8: */ + RTUNI_ALPHA, /* U+00b4e9: */ + RTUNI_ALPHA, /* U+00b4ea: */ + RTUNI_ALPHA, /* U+00b4eb: */ + RTUNI_ALPHA, /* U+00b4ec: */ + RTUNI_ALPHA, /* U+00b4ed: */ + RTUNI_ALPHA, /* U+00b4ee: */ + RTUNI_ALPHA, /* U+00b4ef: */ + RTUNI_ALPHA, /* U+00b4f0: */ + RTUNI_ALPHA, /* U+00b4f1: */ + RTUNI_ALPHA, /* U+00b4f2: */ + RTUNI_ALPHA, /* U+00b4f3: */ + RTUNI_ALPHA, /* U+00b4f4: */ + RTUNI_ALPHA, /* U+00b4f5: */ + RTUNI_ALPHA, /* U+00b4f6: */ + RTUNI_ALPHA, /* U+00b4f7: */ + RTUNI_ALPHA, /* U+00b4f8: */ + RTUNI_ALPHA, /* U+00b4f9: */ + RTUNI_ALPHA, /* U+00b4fa: */ + RTUNI_ALPHA, /* U+00b4fb: */ + RTUNI_ALPHA, /* U+00b4fc: */ + RTUNI_ALPHA, /* U+00b4fd: */ + RTUNI_ALPHA, /* U+00b4fe: */ + RTUNI_ALPHA, /* U+00b4ff: */ + RTUNI_ALPHA, /* U+00b500: */ + RTUNI_ALPHA, /* U+00b501: */ + RTUNI_ALPHA, /* U+00b502: */ + RTUNI_ALPHA, /* U+00b503: */ + RTUNI_ALPHA, /* U+00b504: */ + RTUNI_ALPHA, /* U+00b505: */ + RTUNI_ALPHA, /* U+00b506: */ + RTUNI_ALPHA, /* U+00b507: */ + RTUNI_ALPHA, /* U+00b508: */ + RTUNI_ALPHA, /* U+00b509: */ + RTUNI_ALPHA, /* U+00b50a: */ + RTUNI_ALPHA, /* U+00b50b: */ + RTUNI_ALPHA, /* U+00b50c: */ + RTUNI_ALPHA, /* U+00b50d: */ + RTUNI_ALPHA, /* U+00b50e: */ + RTUNI_ALPHA, /* U+00b50f: */ + RTUNI_ALPHA, /* U+00b510: */ + RTUNI_ALPHA, /* U+00b511: */ + RTUNI_ALPHA, /* U+00b512: */ + RTUNI_ALPHA, /* U+00b513: */ + RTUNI_ALPHA, /* U+00b514: */ + RTUNI_ALPHA, /* U+00b515: */ + RTUNI_ALPHA, /* U+00b516: */ + RTUNI_ALPHA, /* U+00b517: */ + RTUNI_ALPHA, /* U+00b518: */ + RTUNI_ALPHA, /* U+00b519: */ + RTUNI_ALPHA, /* U+00b51a: */ + RTUNI_ALPHA, /* U+00b51b: */ + RTUNI_ALPHA, /* U+00b51c: */ + RTUNI_ALPHA, /* U+00b51d: */ + RTUNI_ALPHA, /* U+00b51e: */ + RTUNI_ALPHA, /* U+00b51f: */ + RTUNI_ALPHA, /* U+00b520: */ + RTUNI_ALPHA, /* U+00b521: */ + RTUNI_ALPHA, /* U+00b522: */ + RTUNI_ALPHA, /* U+00b523: */ + RTUNI_ALPHA, /* U+00b524: */ + RTUNI_ALPHA, /* U+00b525: */ + RTUNI_ALPHA, /* U+00b526: */ + RTUNI_ALPHA, /* U+00b527: */ + RTUNI_ALPHA, /* U+00b528: */ + RTUNI_ALPHA, /* U+00b529: */ + RTUNI_ALPHA, /* U+00b52a: */ + RTUNI_ALPHA, /* U+00b52b: */ + RTUNI_ALPHA, /* U+00b52c: */ + RTUNI_ALPHA, /* U+00b52d: */ + RTUNI_ALPHA, /* U+00b52e: */ + RTUNI_ALPHA, /* U+00b52f: */ + RTUNI_ALPHA, /* U+00b530: */ + RTUNI_ALPHA, /* U+00b531: */ + RTUNI_ALPHA, /* U+00b532: */ + RTUNI_ALPHA, /* U+00b533: */ + RTUNI_ALPHA, /* U+00b534: */ + RTUNI_ALPHA, /* U+00b535: */ + RTUNI_ALPHA, /* U+00b536: */ + RTUNI_ALPHA, /* U+00b537: */ + RTUNI_ALPHA, /* U+00b538: */ + RTUNI_ALPHA, /* U+00b539: */ + RTUNI_ALPHA, /* U+00b53a: */ + RTUNI_ALPHA, /* U+00b53b: */ + RTUNI_ALPHA, /* U+00b53c: */ + RTUNI_ALPHA, /* U+00b53d: */ + RTUNI_ALPHA, /* U+00b53e: */ + RTUNI_ALPHA, /* U+00b53f: */ + RTUNI_ALPHA, /* U+00b540: */ + RTUNI_ALPHA, /* U+00b541: */ + RTUNI_ALPHA, /* U+00b542: */ + RTUNI_ALPHA, /* U+00b543: */ + RTUNI_ALPHA, /* U+00b544: */ + RTUNI_ALPHA, /* U+00b545: */ + RTUNI_ALPHA, /* U+00b546: */ + RTUNI_ALPHA, /* U+00b547: */ + RTUNI_ALPHA, /* U+00b548: */ + RTUNI_ALPHA, /* U+00b549: */ + RTUNI_ALPHA, /* U+00b54a: */ + RTUNI_ALPHA, /* U+00b54b: */ + RTUNI_ALPHA, /* U+00b54c: */ + RTUNI_ALPHA, /* U+00b54d: */ + RTUNI_ALPHA, /* U+00b54e: */ + RTUNI_ALPHA, /* U+00b54f: */ + RTUNI_ALPHA, /* U+00b550: */ + RTUNI_ALPHA, /* U+00b551: */ + RTUNI_ALPHA, /* U+00b552: */ + RTUNI_ALPHA, /* U+00b553: */ + RTUNI_ALPHA, /* U+00b554: */ + RTUNI_ALPHA, /* U+00b555: */ + RTUNI_ALPHA, /* U+00b556: */ + RTUNI_ALPHA, /* U+00b557: */ + RTUNI_ALPHA, /* U+00b558: */ + RTUNI_ALPHA, /* U+00b559: */ + RTUNI_ALPHA, /* U+00b55a: */ + RTUNI_ALPHA, /* U+00b55b: */ + RTUNI_ALPHA, /* U+00b55c: */ + RTUNI_ALPHA, /* U+00b55d: */ + RTUNI_ALPHA, /* U+00b55e: */ + RTUNI_ALPHA, /* U+00b55f: */ + RTUNI_ALPHA, /* U+00b560: */ + RTUNI_ALPHA, /* U+00b561: */ + RTUNI_ALPHA, /* U+00b562: */ + RTUNI_ALPHA, /* U+00b563: */ + RTUNI_ALPHA, /* U+00b564: */ + RTUNI_ALPHA, /* U+00b565: */ + RTUNI_ALPHA, /* U+00b566: */ + RTUNI_ALPHA, /* U+00b567: */ + RTUNI_ALPHA, /* U+00b568: */ + RTUNI_ALPHA, /* U+00b569: */ + RTUNI_ALPHA, /* U+00b56a: */ + RTUNI_ALPHA, /* U+00b56b: */ + RTUNI_ALPHA, /* U+00b56c: */ + RTUNI_ALPHA, /* U+00b56d: */ + RTUNI_ALPHA, /* U+00b56e: */ + RTUNI_ALPHA, /* U+00b56f: */ + RTUNI_ALPHA, /* U+00b570: */ + RTUNI_ALPHA, /* U+00b571: */ + RTUNI_ALPHA, /* U+00b572: */ + RTUNI_ALPHA, /* U+00b573: */ + RTUNI_ALPHA, /* U+00b574: */ + RTUNI_ALPHA, /* U+00b575: */ + RTUNI_ALPHA, /* U+00b576: */ + RTUNI_ALPHA, /* U+00b577: */ + RTUNI_ALPHA, /* U+00b578: */ + RTUNI_ALPHA, /* U+00b579: */ + RTUNI_ALPHA, /* U+00b57a: */ + RTUNI_ALPHA, /* U+00b57b: */ + RTUNI_ALPHA, /* U+00b57c: */ + RTUNI_ALPHA, /* U+00b57d: */ + RTUNI_ALPHA, /* U+00b57e: */ + RTUNI_ALPHA, /* U+00b57f: */ + RTUNI_ALPHA, /* U+00b580: */ + RTUNI_ALPHA, /* U+00b581: */ + RTUNI_ALPHA, /* U+00b582: */ + RTUNI_ALPHA, /* U+00b583: */ + RTUNI_ALPHA, /* U+00b584: */ + RTUNI_ALPHA, /* U+00b585: */ + RTUNI_ALPHA, /* U+00b586: */ + RTUNI_ALPHA, /* U+00b587: */ + RTUNI_ALPHA, /* U+00b588: */ + RTUNI_ALPHA, /* U+00b589: */ + RTUNI_ALPHA, /* U+00b58a: */ + RTUNI_ALPHA, /* U+00b58b: */ + RTUNI_ALPHA, /* U+00b58c: */ + RTUNI_ALPHA, /* U+00b58d: */ + RTUNI_ALPHA, /* U+00b58e: */ + RTUNI_ALPHA, /* U+00b58f: */ + RTUNI_ALPHA, /* U+00b590: */ + RTUNI_ALPHA, /* U+00b591: */ + RTUNI_ALPHA, /* U+00b592: */ + RTUNI_ALPHA, /* U+00b593: */ + RTUNI_ALPHA, /* U+00b594: */ + RTUNI_ALPHA, /* U+00b595: */ + RTUNI_ALPHA, /* U+00b596: */ + RTUNI_ALPHA, /* U+00b597: */ + RTUNI_ALPHA, /* U+00b598: */ + RTUNI_ALPHA, /* U+00b599: */ + RTUNI_ALPHA, /* U+00b59a: */ + RTUNI_ALPHA, /* U+00b59b: */ + RTUNI_ALPHA, /* U+00b59c: */ + RTUNI_ALPHA, /* U+00b59d: */ + RTUNI_ALPHA, /* U+00b59e: */ + RTUNI_ALPHA, /* U+00b59f: */ + RTUNI_ALPHA, /* U+00b5a0: */ + RTUNI_ALPHA, /* U+00b5a1: */ + RTUNI_ALPHA, /* U+00b5a2: */ + RTUNI_ALPHA, /* U+00b5a3: */ + RTUNI_ALPHA, /* U+00b5a4: */ + RTUNI_ALPHA, /* U+00b5a5: */ + RTUNI_ALPHA, /* U+00b5a6: */ + RTUNI_ALPHA, /* U+00b5a7: */ + RTUNI_ALPHA, /* U+00b5a8: */ + RTUNI_ALPHA, /* U+00b5a9: */ + RTUNI_ALPHA, /* U+00b5aa: */ + RTUNI_ALPHA, /* U+00b5ab: */ + RTUNI_ALPHA, /* U+00b5ac: */ + RTUNI_ALPHA, /* U+00b5ad: */ + RTUNI_ALPHA, /* U+00b5ae: */ + RTUNI_ALPHA, /* U+00b5af: */ + RTUNI_ALPHA, /* U+00b5b0: */ + RTUNI_ALPHA, /* U+00b5b1: */ + RTUNI_ALPHA, /* U+00b5b2: */ + RTUNI_ALPHA, /* U+00b5b3: */ + RTUNI_ALPHA, /* U+00b5b4: */ + RTUNI_ALPHA, /* U+00b5b5: */ + RTUNI_ALPHA, /* U+00b5b6: */ + RTUNI_ALPHA, /* U+00b5b7: */ + RTUNI_ALPHA, /* U+00b5b8: */ + RTUNI_ALPHA, /* U+00b5b9: */ + RTUNI_ALPHA, /* U+00b5ba: */ + RTUNI_ALPHA, /* U+00b5bb: */ + RTUNI_ALPHA, /* U+00b5bc: */ + RTUNI_ALPHA, /* U+00b5bd: */ + RTUNI_ALPHA, /* U+00b5be: */ + RTUNI_ALPHA, /* U+00b5bf: */ + RTUNI_ALPHA, /* U+00b5c0: */ + RTUNI_ALPHA, /* U+00b5c1: */ + RTUNI_ALPHA, /* U+00b5c2: */ + RTUNI_ALPHA, /* U+00b5c3: */ + RTUNI_ALPHA, /* U+00b5c4: */ + RTUNI_ALPHA, /* U+00b5c5: */ + RTUNI_ALPHA, /* U+00b5c6: */ + RTUNI_ALPHA, /* U+00b5c7: */ + RTUNI_ALPHA, /* U+00b5c8: */ + RTUNI_ALPHA, /* U+00b5c9: */ + RTUNI_ALPHA, /* U+00b5ca: */ + RTUNI_ALPHA, /* U+00b5cb: */ + RTUNI_ALPHA, /* U+00b5cc: */ + RTUNI_ALPHA, /* U+00b5cd: */ + RTUNI_ALPHA, /* U+00b5ce: */ + RTUNI_ALPHA, /* U+00b5cf: */ + RTUNI_ALPHA, /* U+00b5d0: */ + RTUNI_ALPHA, /* U+00b5d1: */ + RTUNI_ALPHA, /* U+00b5d2: */ + RTUNI_ALPHA, /* U+00b5d3: */ + RTUNI_ALPHA, /* U+00b5d4: */ + RTUNI_ALPHA, /* U+00b5d5: */ + RTUNI_ALPHA, /* U+00b5d6: */ + RTUNI_ALPHA, /* U+00b5d7: */ + RTUNI_ALPHA, /* U+00b5d8: */ + RTUNI_ALPHA, /* U+00b5d9: */ + RTUNI_ALPHA, /* U+00b5da: */ + RTUNI_ALPHA, /* U+00b5db: */ + RTUNI_ALPHA, /* U+00b5dc: */ + RTUNI_ALPHA, /* U+00b5dd: */ + RTUNI_ALPHA, /* U+00b5de: */ + RTUNI_ALPHA, /* U+00b5df: */ + RTUNI_ALPHA, /* U+00b5e0: */ + RTUNI_ALPHA, /* U+00b5e1: */ + RTUNI_ALPHA, /* U+00b5e2: */ + RTUNI_ALPHA, /* U+00b5e3: */ + RTUNI_ALPHA, /* U+00b5e4: */ + RTUNI_ALPHA, /* U+00b5e5: */ + RTUNI_ALPHA, /* U+00b5e6: */ + RTUNI_ALPHA, /* U+00b5e7: */ + RTUNI_ALPHA, /* U+00b5e8: */ + RTUNI_ALPHA, /* U+00b5e9: */ + RTUNI_ALPHA, /* U+00b5ea: */ + RTUNI_ALPHA, /* U+00b5eb: */ + RTUNI_ALPHA, /* U+00b5ec: */ + RTUNI_ALPHA, /* U+00b5ed: */ + RTUNI_ALPHA, /* U+00b5ee: */ + RTUNI_ALPHA, /* U+00b5ef: */ + RTUNI_ALPHA, /* U+00b5f0: */ + RTUNI_ALPHA, /* U+00b5f1: */ + RTUNI_ALPHA, /* U+00b5f2: */ + RTUNI_ALPHA, /* U+00b5f3: */ + RTUNI_ALPHA, /* U+00b5f4: */ + RTUNI_ALPHA, /* U+00b5f5: */ + RTUNI_ALPHA, /* U+00b5f6: */ + RTUNI_ALPHA, /* U+00b5f7: */ + RTUNI_ALPHA, /* U+00b5f8: */ + RTUNI_ALPHA, /* U+00b5f9: */ + RTUNI_ALPHA, /* U+00b5fa: */ + RTUNI_ALPHA, /* U+00b5fb: */ + RTUNI_ALPHA, /* U+00b5fc: */ + RTUNI_ALPHA, /* U+00b5fd: */ + RTUNI_ALPHA, /* U+00b5fe: */ + RTUNI_ALPHA, /* U+00b5ff: */ + RTUNI_ALPHA, /* U+00b600: */ + RTUNI_ALPHA, /* U+00b601: */ + RTUNI_ALPHA, /* U+00b602: */ + RTUNI_ALPHA, /* U+00b603: */ + RTUNI_ALPHA, /* U+00b604: */ + RTUNI_ALPHA, /* U+00b605: */ + RTUNI_ALPHA, /* U+00b606: */ + RTUNI_ALPHA, /* U+00b607: */ + RTUNI_ALPHA, /* U+00b608: */ + RTUNI_ALPHA, /* U+00b609: */ + RTUNI_ALPHA, /* U+00b60a: */ + RTUNI_ALPHA, /* U+00b60b: */ + RTUNI_ALPHA, /* U+00b60c: */ + RTUNI_ALPHA, /* U+00b60d: */ + RTUNI_ALPHA, /* U+00b60e: */ + RTUNI_ALPHA, /* U+00b60f: */ + RTUNI_ALPHA, /* U+00b610: */ + RTUNI_ALPHA, /* U+00b611: */ + RTUNI_ALPHA, /* U+00b612: */ + RTUNI_ALPHA, /* U+00b613: */ + RTUNI_ALPHA, /* U+00b614: */ + RTUNI_ALPHA, /* U+00b615: */ + RTUNI_ALPHA, /* U+00b616: */ + RTUNI_ALPHA, /* U+00b617: */ + RTUNI_ALPHA, /* U+00b618: */ + RTUNI_ALPHA, /* U+00b619: */ + RTUNI_ALPHA, /* U+00b61a: */ + RTUNI_ALPHA, /* U+00b61b: */ + RTUNI_ALPHA, /* U+00b61c: */ + RTUNI_ALPHA, /* U+00b61d: */ + RTUNI_ALPHA, /* U+00b61e: */ + RTUNI_ALPHA, /* U+00b61f: */ + RTUNI_ALPHA, /* U+00b620: */ + RTUNI_ALPHA, /* U+00b621: */ + RTUNI_ALPHA, /* U+00b622: */ + RTUNI_ALPHA, /* U+00b623: */ + RTUNI_ALPHA, /* U+00b624: */ + RTUNI_ALPHA, /* U+00b625: */ + RTUNI_ALPHA, /* U+00b626: */ + RTUNI_ALPHA, /* U+00b627: */ + RTUNI_ALPHA, /* U+00b628: */ + RTUNI_ALPHA, /* U+00b629: */ + RTUNI_ALPHA, /* U+00b62a: */ + RTUNI_ALPHA, /* U+00b62b: */ + RTUNI_ALPHA, /* U+00b62c: */ + RTUNI_ALPHA, /* U+00b62d: */ + RTUNI_ALPHA, /* U+00b62e: */ + RTUNI_ALPHA, /* U+00b62f: */ + RTUNI_ALPHA, /* U+00b630: */ + RTUNI_ALPHA, /* U+00b631: */ + RTUNI_ALPHA, /* U+00b632: */ + RTUNI_ALPHA, /* U+00b633: */ + RTUNI_ALPHA, /* U+00b634: */ + RTUNI_ALPHA, /* U+00b635: */ + RTUNI_ALPHA, /* U+00b636: */ + RTUNI_ALPHA, /* U+00b637: */ + RTUNI_ALPHA, /* U+00b638: */ + RTUNI_ALPHA, /* U+00b639: */ + RTUNI_ALPHA, /* U+00b63a: */ + RTUNI_ALPHA, /* U+00b63b: */ + RTUNI_ALPHA, /* U+00b63c: */ + RTUNI_ALPHA, /* U+00b63d: */ + RTUNI_ALPHA, /* U+00b63e: */ + RTUNI_ALPHA, /* U+00b63f: */ + RTUNI_ALPHA, /* U+00b640: */ + RTUNI_ALPHA, /* U+00b641: */ + RTUNI_ALPHA, /* U+00b642: */ + RTUNI_ALPHA, /* U+00b643: */ + RTUNI_ALPHA, /* U+00b644: */ + RTUNI_ALPHA, /* U+00b645: */ + RTUNI_ALPHA, /* U+00b646: */ + RTUNI_ALPHA, /* U+00b647: */ + RTUNI_ALPHA, /* U+00b648: */ + RTUNI_ALPHA, /* U+00b649: */ + RTUNI_ALPHA, /* U+00b64a: */ + RTUNI_ALPHA, /* U+00b64b: */ + RTUNI_ALPHA, /* U+00b64c: */ + RTUNI_ALPHA, /* U+00b64d: */ + RTUNI_ALPHA, /* U+00b64e: */ + RTUNI_ALPHA, /* U+00b64f: */ + RTUNI_ALPHA, /* U+00b650: */ + RTUNI_ALPHA, /* U+00b651: */ + RTUNI_ALPHA, /* U+00b652: */ + RTUNI_ALPHA, /* U+00b653: */ + RTUNI_ALPHA, /* U+00b654: */ + RTUNI_ALPHA, /* U+00b655: */ + RTUNI_ALPHA, /* U+00b656: */ + RTUNI_ALPHA, /* U+00b657: */ + RTUNI_ALPHA, /* U+00b658: */ + RTUNI_ALPHA, /* U+00b659: */ + RTUNI_ALPHA, /* U+00b65a: */ + RTUNI_ALPHA, /* U+00b65b: */ + RTUNI_ALPHA, /* U+00b65c: */ + RTUNI_ALPHA, /* U+00b65d: */ + RTUNI_ALPHA, /* U+00b65e: */ + RTUNI_ALPHA, /* U+00b65f: */ + RTUNI_ALPHA, /* U+00b660: */ + RTUNI_ALPHA, /* U+00b661: */ + RTUNI_ALPHA, /* U+00b662: */ + RTUNI_ALPHA, /* U+00b663: */ + RTUNI_ALPHA, /* U+00b664: */ + RTUNI_ALPHA, /* U+00b665: */ + RTUNI_ALPHA, /* U+00b666: */ + RTUNI_ALPHA, /* U+00b667: */ + RTUNI_ALPHA, /* U+00b668: */ + RTUNI_ALPHA, /* U+00b669: */ + RTUNI_ALPHA, /* U+00b66a: */ + RTUNI_ALPHA, /* U+00b66b: */ + RTUNI_ALPHA, /* U+00b66c: */ + RTUNI_ALPHA, /* U+00b66d: */ + RTUNI_ALPHA, /* U+00b66e: */ + RTUNI_ALPHA, /* U+00b66f: */ + RTUNI_ALPHA, /* U+00b670: */ + RTUNI_ALPHA, /* U+00b671: */ + RTUNI_ALPHA, /* U+00b672: */ + RTUNI_ALPHA, /* U+00b673: */ + RTUNI_ALPHA, /* U+00b674: */ + RTUNI_ALPHA, /* U+00b675: */ + RTUNI_ALPHA, /* U+00b676: */ + RTUNI_ALPHA, /* U+00b677: */ + RTUNI_ALPHA, /* U+00b678: */ + RTUNI_ALPHA, /* U+00b679: */ + RTUNI_ALPHA, /* U+00b67a: */ + RTUNI_ALPHA, /* U+00b67b: */ + RTUNI_ALPHA, /* U+00b67c: */ + RTUNI_ALPHA, /* U+00b67d: */ + RTUNI_ALPHA, /* U+00b67e: */ + RTUNI_ALPHA, /* U+00b67f: */ + RTUNI_ALPHA, /* U+00b680: */ + RTUNI_ALPHA, /* U+00b681: */ + RTUNI_ALPHA, /* U+00b682: */ + RTUNI_ALPHA, /* U+00b683: */ + RTUNI_ALPHA, /* U+00b684: */ + RTUNI_ALPHA, /* U+00b685: */ + RTUNI_ALPHA, /* U+00b686: */ + RTUNI_ALPHA, /* U+00b687: */ + RTUNI_ALPHA, /* U+00b688: */ + RTUNI_ALPHA, /* U+00b689: */ + RTUNI_ALPHA, /* U+00b68a: */ + RTUNI_ALPHA, /* U+00b68b: */ + RTUNI_ALPHA, /* U+00b68c: */ + RTUNI_ALPHA, /* U+00b68d: */ + RTUNI_ALPHA, /* U+00b68e: */ + RTUNI_ALPHA, /* U+00b68f: */ + RTUNI_ALPHA, /* U+00b690: */ + RTUNI_ALPHA, /* U+00b691: */ + RTUNI_ALPHA, /* U+00b692: */ + RTUNI_ALPHA, /* U+00b693: */ + RTUNI_ALPHA, /* U+00b694: */ + RTUNI_ALPHA, /* U+00b695: */ + RTUNI_ALPHA, /* U+00b696: */ + RTUNI_ALPHA, /* U+00b697: */ + RTUNI_ALPHA, /* U+00b698: */ + RTUNI_ALPHA, /* U+00b699: */ + RTUNI_ALPHA, /* U+00b69a: */ + RTUNI_ALPHA, /* U+00b69b: */ + RTUNI_ALPHA, /* U+00b69c: */ + RTUNI_ALPHA, /* U+00b69d: */ + RTUNI_ALPHA, /* U+00b69e: */ + RTUNI_ALPHA, /* U+00b69f: */ + RTUNI_ALPHA, /* U+00b6a0: */ + RTUNI_ALPHA, /* U+00b6a1: */ + RTUNI_ALPHA, /* U+00b6a2: */ + RTUNI_ALPHA, /* U+00b6a3: */ + RTUNI_ALPHA, /* U+00b6a4: */ + RTUNI_ALPHA, /* U+00b6a5: */ + RTUNI_ALPHA, /* U+00b6a6: */ + RTUNI_ALPHA, /* U+00b6a7: */ + RTUNI_ALPHA, /* U+00b6a8: */ + RTUNI_ALPHA, /* U+00b6a9: */ + RTUNI_ALPHA, /* U+00b6aa: */ + RTUNI_ALPHA, /* U+00b6ab: */ + RTUNI_ALPHA, /* U+00b6ac: */ + RTUNI_ALPHA, /* U+00b6ad: */ + RTUNI_ALPHA, /* U+00b6ae: */ + RTUNI_ALPHA, /* U+00b6af: */ + RTUNI_ALPHA, /* U+00b6b0: */ + RTUNI_ALPHA, /* U+00b6b1: */ + RTUNI_ALPHA, /* U+00b6b2: */ + RTUNI_ALPHA, /* U+00b6b3: */ + RTUNI_ALPHA, /* U+00b6b4: */ + RTUNI_ALPHA, /* U+00b6b5: */ + RTUNI_ALPHA, /* U+00b6b6: */ + RTUNI_ALPHA, /* U+00b6b7: */ + RTUNI_ALPHA, /* U+00b6b8: */ + RTUNI_ALPHA, /* U+00b6b9: */ + RTUNI_ALPHA, /* U+00b6ba: */ + RTUNI_ALPHA, /* U+00b6bb: */ + RTUNI_ALPHA, /* U+00b6bc: */ + RTUNI_ALPHA, /* U+00b6bd: */ + RTUNI_ALPHA, /* U+00b6be: */ + RTUNI_ALPHA, /* U+00b6bf: */ + RTUNI_ALPHA, /* U+00b6c0: */ + RTUNI_ALPHA, /* U+00b6c1: */ + RTUNI_ALPHA, /* U+00b6c2: */ + RTUNI_ALPHA, /* U+00b6c3: */ + RTUNI_ALPHA, /* U+00b6c4: */ + RTUNI_ALPHA, /* U+00b6c5: */ + RTUNI_ALPHA, /* U+00b6c6: */ + RTUNI_ALPHA, /* U+00b6c7: */ + RTUNI_ALPHA, /* U+00b6c8: */ + RTUNI_ALPHA, /* U+00b6c9: */ + RTUNI_ALPHA, /* U+00b6ca: */ + RTUNI_ALPHA, /* U+00b6cb: */ + RTUNI_ALPHA, /* U+00b6cc: */ + RTUNI_ALPHA, /* U+00b6cd: */ + RTUNI_ALPHA, /* U+00b6ce: */ + RTUNI_ALPHA, /* U+00b6cf: */ + RTUNI_ALPHA, /* U+00b6d0: */ + RTUNI_ALPHA, /* U+00b6d1: */ + RTUNI_ALPHA, /* U+00b6d2: */ + RTUNI_ALPHA, /* U+00b6d3: */ + RTUNI_ALPHA, /* U+00b6d4: */ + RTUNI_ALPHA, /* U+00b6d5: */ + RTUNI_ALPHA, /* U+00b6d6: */ + RTUNI_ALPHA, /* U+00b6d7: */ + RTUNI_ALPHA, /* U+00b6d8: */ + RTUNI_ALPHA, /* U+00b6d9: */ + RTUNI_ALPHA, /* U+00b6da: */ + RTUNI_ALPHA, /* U+00b6db: */ + RTUNI_ALPHA, /* U+00b6dc: */ + RTUNI_ALPHA, /* U+00b6dd: */ + RTUNI_ALPHA, /* U+00b6de: */ + RTUNI_ALPHA, /* U+00b6df: */ + RTUNI_ALPHA, /* U+00b6e0: */ + RTUNI_ALPHA, /* U+00b6e1: */ + RTUNI_ALPHA, /* U+00b6e2: */ + RTUNI_ALPHA, /* U+00b6e3: */ + RTUNI_ALPHA, /* U+00b6e4: */ + RTUNI_ALPHA, /* U+00b6e5: */ + RTUNI_ALPHA, /* U+00b6e6: */ + RTUNI_ALPHA, /* U+00b6e7: */ + RTUNI_ALPHA, /* U+00b6e8: */ + RTUNI_ALPHA, /* U+00b6e9: */ + RTUNI_ALPHA, /* U+00b6ea: */ + RTUNI_ALPHA, /* U+00b6eb: */ + RTUNI_ALPHA, /* U+00b6ec: */ + RTUNI_ALPHA, /* U+00b6ed: */ + RTUNI_ALPHA, /* U+00b6ee: */ + RTUNI_ALPHA, /* U+00b6ef: */ + RTUNI_ALPHA, /* U+00b6f0: */ + RTUNI_ALPHA, /* U+00b6f1: */ + RTUNI_ALPHA, /* U+00b6f2: */ + RTUNI_ALPHA, /* U+00b6f3: */ + RTUNI_ALPHA, /* U+00b6f4: */ + RTUNI_ALPHA, /* U+00b6f5: */ + RTUNI_ALPHA, /* U+00b6f6: */ + RTUNI_ALPHA, /* U+00b6f7: */ + RTUNI_ALPHA, /* U+00b6f8: */ + RTUNI_ALPHA, /* U+00b6f9: */ + RTUNI_ALPHA, /* U+00b6fa: */ + RTUNI_ALPHA, /* U+00b6fb: */ + RTUNI_ALPHA, /* U+00b6fc: */ + RTUNI_ALPHA, /* U+00b6fd: */ + RTUNI_ALPHA, /* U+00b6fe: */ + RTUNI_ALPHA, /* U+00b6ff: */ + RTUNI_ALPHA, /* U+00b700: */ + RTUNI_ALPHA, /* U+00b701: */ + RTUNI_ALPHA, /* U+00b702: */ + RTUNI_ALPHA, /* U+00b703: */ + RTUNI_ALPHA, /* U+00b704: */ + RTUNI_ALPHA, /* U+00b705: */ + RTUNI_ALPHA, /* U+00b706: */ + RTUNI_ALPHA, /* U+00b707: */ + RTUNI_ALPHA, /* U+00b708: */ + RTUNI_ALPHA, /* U+00b709: */ + RTUNI_ALPHA, /* U+00b70a: */ + RTUNI_ALPHA, /* U+00b70b: */ + RTUNI_ALPHA, /* U+00b70c: */ + RTUNI_ALPHA, /* U+00b70d: */ + RTUNI_ALPHA, /* U+00b70e: */ + RTUNI_ALPHA, /* U+00b70f: */ + RTUNI_ALPHA, /* U+00b710: */ + RTUNI_ALPHA, /* U+00b711: */ + RTUNI_ALPHA, /* U+00b712: */ + RTUNI_ALPHA, /* U+00b713: */ + RTUNI_ALPHA, /* U+00b714: */ + RTUNI_ALPHA, /* U+00b715: */ + RTUNI_ALPHA, /* U+00b716: */ + RTUNI_ALPHA, /* U+00b717: */ + RTUNI_ALPHA, /* U+00b718: */ + RTUNI_ALPHA, /* U+00b719: */ + RTUNI_ALPHA, /* U+00b71a: */ + RTUNI_ALPHA, /* U+00b71b: */ + RTUNI_ALPHA, /* U+00b71c: */ + RTUNI_ALPHA, /* U+00b71d: */ + RTUNI_ALPHA, /* U+00b71e: */ + RTUNI_ALPHA, /* U+00b71f: */ + RTUNI_ALPHA, /* U+00b720: */ + RTUNI_ALPHA, /* U+00b721: */ + RTUNI_ALPHA, /* U+00b722: */ + RTUNI_ALPHA, /* U+00b723: */ + RTUNI_ALPHA, /* U+00b724: */ + RTUNI_ALPHA, /* U+00b725: */ + RTUNI_ALPHA, /* U+00b726: */ + RTUNI_ALPHA, /* U+00b727: */ + RTUNI_ALPHA, /* U+00b728: */ + RTUNI_ALPHA, /* U+00b729: */ + RTUNI_ALPHA, /* U+00b72a: */ + RTUNI_ALPHA, /* U+00b72b: */ + RTUNI_ALPHA, /* U+00b72c: */ + RTUNI_ALPHA, /* U+00b72d: */ + RTUNI_ALPHA, /* U+00b72e: */ + RTUNI_ALPHA, /* U+00b72f: */ + RTUNI_ALPHA, /* U+00b730: */ + RTUNI_ALPHA, /* U+00b731: */ + RTUNI_ALPHA, /* U+00b732: */ + RTUNI_ALPHA, /* U+00b733: */ + RTUNI_ALPHA, /* U+00b734: */ + RTUNI_ALPHA, /* U+00b735: */ + RTUNI_ALPHA, /* U+00b736: */ + RTUNI_ALPHA, /* U+00b737: */ + RTUNI_ALPHA, /* U+00b738: */ + RTUNI_ALPHA, /* U+00b739: */ + RTUNI_ALPHA, /* U+00b73a: */ + RTUNI_ALPHA, /* U+00b73b: */ + RTUNI_ALPHA, /* U+00b73c: */ + RTUNI_ALPHA, /* U+00b73d: */ + RTUNI_ALPHA, /* U+00b73e: */ + RTUNI_ALPHA, /* U+00b73f: */ + RTUNI_ALPHA, /* U+00b740: */ + RTUNI_ALPHA, /* U+00b741: */ + RTUNI_ALPHA, /* U+00b742: */ + RTUNI_ALPHA, /* U+00b743: */ + RTUNI_ALPHA, /* U+00b744: */ + RTUNI_ALPHA, /* U+00b745: */ + RTUNI_ALPHA, /* U+00b746: */ + RTUNI_ALPHA, /* U+00b747: */ + RTUNI_ALPHA, /* U+00b748: */ + RTUNI_ALPHA, /* U+00b749: */ + RTUNI_ALPHA, /* U+00b74a: */ + RTUNI_ALPHA, /* U+00b74b: */ + RTUNI_ALPHA, /* U+00b74c: */ + RTUNI_ALPHA, /* U+00b74d: */ + RTUNI_ALPHA, /* U+00b74e: */ + RTUNI_ALPHA, /* U+00b74f: */ + RTUNI_ALPHA, /* U+00b750: */ + RTUNI_ALPHA, /* U+00b751: */ + RTUNI_ALPHA, /* U+00b752: */ + RTUNI_ALPHA, /* U+00b753: */ + RTUNI_ALPHA, /* U+00b754: */ + RTUNI_ALPHA, /* U+00b755: */ + RTUNI_ALPHA, /* U+00b756: */ + RTUNI_ALPHA, /* U+00b757: */ + RTUNI_ALPHA, /* U+00b758: */ + RTUNI_ALPHA, /* U+00b759: */ + RTUNI_ALPHA, /* U+00b75a: */ + RTUNI_ALPHA, /* U+00b75b: */ + RTUNI_ALPHA, /* U+00b75c: */ + RTUNI_ALPHA, /* U+00b75d: */ + RTUNI_ALPHA, /* U+00b75e: */ + RTUNI_ALPHA, /* U+00b75f: */ + RTUNI_ALPHA, /* U+00b760: */ + RTUNI_ALPHA, /* U+00b761: */ + RTUNI_ALPHA, /* U+00b762: */ + RTUNI_ALPHA, /* U+00b763: */ + RTUNI_ALPHA, /* U+00b764: */ + RTUNI_ALPHA, /* U+00b765: */ + RTUNI_ALPHA, /* U+00b766: */ + RTUNI_ALPHA, /* U+00b767: */ + RTUNI_ALPHA, /* U+00b768: */ + RTUNI_ALPHA, /* U+00b769: */ + RTUNI_ALPHA, /* U+00b76a: */ + RTUNI_ALPHA, /* U+00b76b: */ + RTUNI_ALPHA, /* U+00b76c: */ + RTUNI_ALPHA, /* U+00b76d: */ + RTUNI_ALPHA, /* U+00b76e: */ + RTUNI_ALPHA, /* U+00b76f: */ + RTUNI_ALPHA, /* U+00b770: */ + RTUNI_ALPHA, /* U+00b771: */ + RTUNI_ALPHA, /* U+00b772: */ + RTUNI_ALPHA, /* U+00b773: */ + RTUNI_ALPHA, /* U+00b774: */ + RTUNI_ALPHA, /* U+00b775: */ + RTUNI_ALPHA, /* U+00b776: */ + RTUNI_ALPHA, /* U+00b777: */ + RTUNI_ALPHA, /* U+00b778: */ + RTUNI_ALPHA, /* U+00b779: */ + RTUNI_ALPHA, /* U+00b77a: */ + RTUNI_ALPHA, /* U+00b77b: */ + RTUNI_ALPHA, /* U+00b77c: */ + RTUNI_ALPHA, /* U+00b77d: */ + RTUNI_ALPHA, /* U+00b77e: */ + RTUNI_ALPHA, /* U+00b77f: */ + RTUNI_ALPHA, /* U+00b780: */ + RTUNI_ALPHA, /* U+00b781: */ + RTUNI_ALPHA, /* U+00b782: */ + RTUNI_ALPHA, /* U+00b783: */ + RTUNI_ALPHA, /* U+00b784: */ + RTUNI_ALPHA, /* U+00b785: */ + RTUNI_ALPHA, /* U+00b786: */ + RTUNI_ALPHA, /* U+00b787: */ + RTUNI_ALPHA, /* U+00b788: */ + RTUNI_ALPHA, /* U+00b789: */ + RTUNI_ALPHA, /* U+00b78a: */ + RTUNI_ALPHA, /* U+00b78b: */ + RTUNI_ALPHA, /* U+00b78c: */ + RTUNI_ALPHA, /* U+00b78d: */ + RTUNI_ALPHA, /* U+00b78e: */ + RTUNI_ALPHA, /* U+00b78f: */ + RTUNI_ALPHA, /* U+00b790: */ + RTUNI_ALPHA, /* U+00b791: */ + RTUNI_ALPHA, /* U+00b792: */ + RTUNI_ALPHA, /* U+00b793: */ + RTUNI_ALPHA, /* U+00b794: */ + RTUNI_ALPHA, /* U+00b795: */ + RTUNI_ALPHA, /* U+00b796: */ + RTUNI_ALPHA, /* U+00b797: */ + RTUNI_ALPHA, /* U+00b798: */ + RTUNI_ALPHA, /* U+00b799: */ + RTUNI_ALPHA, /* U+00b79a: */ + RTUNI_ALPHA, /* U+00b79b: */ + RTUNI_ALPHA, /* U+00b79c: */ + RTUNI_ALPHA, /* U+00b79d: */ + RTUNI_ALPHA, /* U+00b79e: */ + RTUNI_ALPHA, /* U+00b79f: */ + RTUNI_ALPHA, /* U+00b7a0: */ + RTUNI_ALPHA, /* U+00b7a1: */ + RTUNI_ALPHA, /* U+00b7a2: */ + RTUNI_ALPHA, /* U+00b7a3: */ + RTUNI_ALPHA, /* U+00b7a4: */ + RTUNI_ALPHA, /* U+00b7a5: */ + RTUNI_ALPHA, /* U+00b7a6: */ + RTUNI_ALPHA, /* U+00b7a7: */ + RTUNI_ALPHA, /* U+00b7a8: */ + RTUNI_ALPHA, /* U+00b7a9: */ + RTUNI_ALPHA, /* U+00b7aa: */ + RTUNI_ALPHA, /* U+00b7ab: */ + RTUNI_ALPHA, /* U+00b7ac: */ + RTUNI_ALPHA, /* U+00b7ad: */ + RTUNI_ALPHA, /* U+00b7ae: */ + RTUNI_ALPHA, /* U+00b7af: */ + RTUNI_ALPHA, /* U+00b7b0: */ + RTUNI_ALPHA, /* U+00b7b1: */ + RTUNI_ALPHA, /* U+00b7b2: */ + RTUNI_ALPHA, /* U+00b7b3: */ + RTUNI_ALPHA, /* U+00b7b4: */ + RTUNI_ALPHA, /* U+00b7b5: */ + RTUNI_ALPHA, /* U+00b7b6: */ + RTUNI_ALPHA, /* U+00b7b7: */ + RTUNI_ALPHA, /* U+00b7b8: */ + RTUNI_ALPHA, /* U+00b7b9: */ + RTUNI_ALPHA, /* U+00b7ba: */ + RTUNI_ALPHA, /* U+00b7bb: */ + RTUNI_ALPHA, /* U+00b7bc: */ + RTUNI_ALPHA, /* U+00b7bd: */ + RTUNI_ALPHA, /* U+00b7be: */ + RTUNI_ALPHA, /* U+00b7bf: */ + RTUNI_ALPHA, /* U+00b7c0: */ + RTUNI_ALPHA, /* U+00b7c1: */ + RTUNI_ALPHA, /* U+00b7c2: */ + RTUNI_ALPHA, /* U+00b7c3: */ + RTUNI_ALPHA, /* U+00b7c4: */ + RTUNI_ALPHA, /* U+00b7c5: */ + RTUNI_ALPHA, /* U+00b7c6: */ + RTUNI_ALPHA, /* U+00b7c7: */ + RTUNI_ALPHA, /* U+00b7c8: */ + RTUNI_ALPHA, /* U+00b7c9: */ + RTUNI_ALPHA, /* U+00b7ca: */ + RTUNI_ALPHA, /* U+00b7cb: */ + RTUNI_ALPHA, /* U+00b7cc: */ + RTUNI_ALPHA, /* U+00b7cd: */ + RTUNI_ALPHA, /* U+00b7ce: */ + RTUNI_ALPHA, /* U+00b7cf: */ + RTUNI_ALPHA, /* U+00b7d0: */ + RTUNI_ALPHA, /* U+00b7d1: */ + RTUNI_ALPHA, /* U+00b7d2: */ + RTUNI_ALPHA, /* U+00b7d3: */ + RTUNI_ALPHA, /* U+00b7d4: */ + RTUNI_ALPHA, /* U+00b7d5: */ + RTUNI_ALPHA, /* U+00b7d6: */ + RTUNI_ALPHA, /* U+00b7d7: */ + RTUNI_ALPHA, /* U+00b7d8: */ + RTUNI_ALPHA, /* U+00b7d9: */ + RTUNI_ALPHA, /* U+00b7da: */ + RTUNI_ALPHA, /* U+00b7db: */ + RTUNI_ALPHA, /* U+00b7dc: */ + RTUNI_ALPHA, /* U+00b7dd: */ + RTUNI_ALPHA, /* U+00b7de: */ + RTUNI_ALPHA, /* U+00b7df: */ + RTUNI_ALPHA, /* U+00b7e0: */ + RTUNI_ALPHA, /* U+00b7e1: */ + RTUNI_ALPHA, /* U+00b7e2: */ + RTUNI_ALPHA, /* U+00b7e3: */ + RTUNI_ALPHA, /* U+00b7e4: */ + RTUNI_ALPHA, /* U+00b7e5: */ + RTUNI_ALPHA, /* U+00b7e6: */ + RTUNI_ALPHA, /* U+00b7e7: */ + RTUNI_ALPHA, /* U+00b7e8: */ + RTUNI_ALPHA, /* U+00b7e9: */ + RTUNI_ALPHA, /* U+00b7ea: */ + RTUNI_ALPHA, /* U+00b7eb: */ + RTUNI_ALPHA, /* U+00b7ec: */ + RTUNI_ALPHA, /* U+00b7ed: */ + RTUNI_ALPHA, /* U+00b7ee: */ + RTUNI_ALPHA, /* U+00b7ef: */ + RTUNI_ALPHA, /* U+00b7f0: */ + RTUNI_ALPHA, /* U+00b7f1: */ + RTUNI_ALPHA, /* U+00b7f2: */ + RTUNI_ALPHA, /* U+00b7f3: */ + RTUNI_ALPHA, /* U+00b7f4: */ + RTUNI_ALPHA, /* U+00b7f5: */ + RTUNI_ALPHA, /* U+00b7f6: */ + RTUNI_ALPHA, /* U+00b7f7: */ + RTUNI_ALPHA, /* U+00b7f8: */ + RTUNI_ALPHA, /* U+00b7f9: */ + RTUNI_ALPHA, /* U+00b7fa: */ + RTUNI_ALPHA, /* U+00b7fb: */ + RTUNI_ALPHA, /* U+00b7fc: */ + RTUNI_ALPHA, /* U+00b7fd: */ + RTUNI_ALPHA, /* U+00b7fe: */ + RTUNI_ALPHA, /* U+00b7ff: */ + RTUNI_ALPHA, /* U+00b800: */ + RTUNI_ALPHA, /* U+00b801: */ + RTUNI_ALPHA, /* U+00b802: */ + RTUNI_ALPHA, /* U+00b803: */ + RTUNI_ALPHA, /* U+00b804: */ + RTUNI_ALPHA, /* U+00b805: */ + RTUNI_ALPHA, /* U+00b806: */ + RTUNI_ALPHA, /* U+00b807: */ + RTUNI_ALPHA, /* U+00b808: */ + RTUNI_ALPHA, /* U+00b809: */ + RTUNI_ALPHA, /* U+00b80a: */ + RTUNI_ALPHA, /* U+00b80b: */ + RTUNI_ALPHA, /* U+00b80c: */ + RTUNI_ALPHA, /* U+00b80d: */ + RTUNI_ALPHA, /* U+00b80e: */ + RTUNI_ALPHA, /* U+00b80f: */ + RTUNI_ALPHA, /* U+00b810: */ + RTUNI_ALPHA, /* U+00b811: */ + RTUNI_ALPHA, /* U+00b812: */ + RTUNI_ALPHA, /* U+00b813: */ + RTUNI_ALPHA, /* U+00b814: */ + RTUNI_ALPHA, /* U+00b815: */ + RTUNI_ALPHA, /* U+00b816: */ + RTUNI_ALPHA, /* U+00b817: */ + RTUNI_ALPHA, /* U+00b818: */ + RTUNI_ALPHA, /* U+00b819: */ + RTUNI_ALPHA, /* U+00b81a: */ + RTUNI_ALPHA, /* U+00b81b: */ + RTUNI_ALPHA, /* U+00b81c: */ + RTUNI_ALPHA, /* U+00b81d: */ + RTUNI_ALPHA, /* U+00b81e: */ + RTUNI_ALPHA, /* U+00b81f: */ + RTUNI_ALPHA, /* U+00b820: */ + RTUNI_ALPHA, /* U+00b821: */ + RTUNI_ALPHA, /* U+00b822: */ + RTUNI_ALPHA, /* U+00b823: */ + RTUNI_ALPHA, /* U+00b824: */ + RTUNI_ALPHA, /* U+00b825: */ + RTUNI_ALPHA, /* U+00b826: */ + RTUNI_ALPHA, /* U+00b827: */ + RTUNI_ALPHA, /* U+00b828: */ + RTUNI_ALPHA, /* U+00b829: */ + RTUNI_ALPHA, /* U+00b82a: */ + RTUNI_ALPHA, /* U+00b82b: */ + RTUNI_ALPHA, /* U+00b82c: */ + RTUNI_ALPHA, /* U+00b82d: */ + RTUNI_ALPHA, /* U+00b82e: */ + RTUNI_ALPHA, /* U+00b82f: */ + RTUNI_ALPHA, /* U+00b830: */ + RTUNI_ALPHA, /* U+00b831: */ + RTUNI_ALPHA, /* U+00b832: */ + RTUNI_ALPHA, /* U+00b833: */ + RTUNI_ALPHA, /* U+00b834: */ + RTUNI_ALPHA, /* U+00b835: */ + RTUNI_ALPHA, /* U+00b836: */ + RTUNI_ALPHA, /* U+00b837: */ + RTUNI_ALPHA, /* U+00b838: */ + RTUNI_ALPHA, /* U+00b839: */ + RTUNI_ALPHA, /* U+00b83a: */ + RTUNI_ALPHA, /* U+00b83b: */ + RTUNI_ALPHA, /* U+00b83c: */ + RTUNI_ALPHA, /* U+00b83d: */ + RTUNI_ALPHA, /* U+00b83e: */ + RTUNI_ALPHA, /* U+00b83f: */ + RTUNI_ALPHA, /* U+00b840: */ + RTUNI_ALPHA, /* U+00b841: */ + RTUNI_ALPHA, /* U+00b842: */ + RTUNI_ALPHA, /* U+00b843: */ + RTUNI_ALPHA, /* U+00b844: */ + RTUNI_ALPHA, /* U+00b845: */ + RTUNI_ALPHA, /* U+00b846: */ + RTUNI_ALPHA, /* U+00b847: */ + RTUNI_ALPHA, /* U+00b848: */ + RTUNI_ALPHA, /* U+00b849: */ + RTUNI_ALPHA, /* U+00b84a: */ + RTUNI_ALPHA, /* U+00b84b: */ + RTUNI_ALPHA, /* U+00b84c: */ + RTUNI_ALPHA, /* U+00b84d: */ + RTUNI_ALPHA, /* U+00b84e: */ + RTUNI_ALPHA, /* U+00b84f: */ + RTUNI_ALPHA, /* U+00b850: */ + RTUNI_ALPHA, /* U+00b851: */ + RTUNI_ALPHA, /* U+00b852: */ + RTUNI_ALPHA, /* U+00b853: */ + RTUNI_ALPHA, /* U+00b854: */ + RTUNI_ALPHA, /* U+00b855: */ + RTUNI_ALPHA, /* U+00b856: */ + RTUNI_ALPHA, /* U+00b857: */ + RTUNI_ALPHA, /* U+00b858: */ + RTUNI_ALPHA, /* U+00b859: */ + RTUNI_ALPHA, /* U+00b85a: */ + RTUNI_ALPHA, /* U+00b85b: */ + RTUNI_ALPHA, /* U+00b85c: */ + RTUNI_ALPHA, /* U+00b85d: */ + RTUNI_ALPHA, /* U+00b85e: */ + RTUNI_ALPHA, /* U+00b85f: */ + RTUNI_ALPHA, /* U+00b860: */ + RTUNI_ALPHA, /* U+00b861: */ + RTUNI_ALPHA, /* U+00b862: */ + RTUNI_ALPHA, /* U+00b863: */ + RTUNI_ALPHA, /* U+00b864: */ + RTUNI_ALPHA, /* U+00b865: */ + RTUNI_ALPHA, /* U+00b866: */ + RTUNI_ALPHA, /* U+00b867: */ + RTUNI_ALPHA, /* U+00b868: */ + RTUNI_ALPHA, /* U+00b869: */ + RTUNI_ALPHA, /* U+00b86a: */ + RTUNI_ALPHA, /* U+00b86b: */ + RTUNI_ALPHA, /* U+00b86c: */ + RTUNI_ALPHA, /* U+00b86d: */ + RTUNI_ALPHA, /* U+00b86e: */ + RTUNI_ALPHA, /* U+00b86f: */ + RTUNI_ALPHA, /* U+00b870: */ + RTUNI_ALPHA, /* U+00b871: */ + RTUNI_ALPHA, /* U+00b872: */ + RTUNI_ALPHA, /* U+00b873: */ + RTUNI_ALPHA, /* U+00b874: */ + RTUNI_ALPHA, /* U+00b875: */ + RTUNI_ALPHA, /* U+00b876: */ + RTUNI_ALPHA, /* U+00b877: */ + RTUNI_ALPHA, /* U+00b878: */ + RTUNI_ALPHA, /* U+00b879: */ + RTUNI_ALPHA, /* U+00b87a: */ + RTUNI_ALPHA, /* U+00b87b: */ + RTUNI_ALPHA, /* U+00b87c: */ + RTUNI_ALPHA, /* U+00b87d: */ + RTUNI_ALPHA, /* U+00b87e: */ + RTUNI_ALPHA, /* U+00b87f: */ + RTUNI_ALPHA, /* U+00b880: */ + RTUNI_ALPHA, /* U+00b881: */ + RTUNI_ALPHA, /* U+00b882: */ + RTUNI_ALPHA, /* U+00b883: */ + RTUNI_ALPHA, /* U+00b884: */ + RTUNI_ALPHA, /* U+00b885: */ + RTUNI_ALPHA, /* U+00b886: */ + RTUNI_ALPHA, /* U+00b887: */ + RTUNI_ALPHA, /* U+00b888: */ + RTUNI_ALPHA, /* U+00b889: */ + RTUNI_ALPHA, /* U+00b88a: */ + RTUNI_ALPHA, /* U+00b88b: */ + RTUNI_ALPHA, /* U+00b88c: */ + RTUNI_ALPHA, /* U+00b88d: */ + RTUNI_ALPHA, /* U+00b88e: */ + RTUNI_ALPHA, /* U+00b88f: */ + RTUNI_ALPHA, /* U+00b890: */ + RTUNI_ALPHA, /* U+00b891: */ + RTUNI_ALPHA, /* U+00b892: */ + RTUNI_ALPHA, /* U+00b893: */ + RTUNI_ALPHA, /* U+00b894: */ + RTUNI_ALPHA, /* U+00b895: */ + RTUNI_ALPHA, /* U+00b896: */ + RTUNI_ALPHA, /* U+00b897: */ + RTUNI_ALPHA, /* U+00b898: */ + RTUNI_ALPHA, /* U+00b899: */ + RTUNI_ALPHA, /* U+00b89a: */ + RTUNI_ALPHA, /* U+00b89b: */ + RTUNI_ALPHA, /* U+00b89c: */ + RTUNI_ALPHA, /* U+00b89d: */ + RTUNI_ALPHA, /* U+00b89e: */ + RTUNI_ALPHA, /* U+00b89f: */ + RTUNI_ALPHA, /* U+00b8a0: */ + RTUNI_ALPHA, /* U+00b8a1: */ + RTUNI_ALPHA, /* U+00b8a2: */ + RTUNI_ALPHA, /* U+00b8a3: */ + RTUNI_ALPHA, /* U+00b8a4: */ + RTUNI_ALPHA, /* U+00b8a5: */ + RTUNI_ALPHA, /* U+00b8a6: */ + RTUNI_ALPHA, /* U+00b8a7: */ + RTUNI_ALPHA, /* U+00b8a8: */ + RTUNI_ALPHA, /* U+00b8a9: */ + RTUNI_ALPHA, /* U+00b8aa: */ + RTUNI_ALPHA, /* U+00b8ab: */ + RTUNI_ALPHA, /* U+00b8ac: */ + RTUNI_ALPHA, /* U+00b8ad: */ + RTUNI_ALPHA, /* U+00b8ae: */ + RTUNI_ALPHA, /* U+00b8af: */ + RTUNI_ALPHA, /* U+00b8b0: */ + RTUNI_ALPHA, /* U+00b8b1: */ + RTUNI_ALPHA, /* U+00b8b2: */ + RTUNI_ALPHA, /* U+00b8b3: */ + RTUNI_ALPHA, /* U+00b8b4: */ + RTUNI_ALPHA, /* U+00b8b5: */ + RTUNI_ALPHA, /* U+00b8b6: */ + RTUNI_ALPHA, /* U+00b8b7: */ + RTUNI_ALPHA, /* U+00b8b8: */ + RTUNI_ALPHA, /* U+00b8b9: */ + RTUNI_ALPHA, /* U+00b8ba: */ + RTUNI_ALPHA, /* U+00b8bb: */ + RTUNI_ALPHA, /* U+00b8bc: */ + RTUNI_ALPHA, /* U+00b8bd: */ + RTUNI_ALPHA, /* U+00b8be: */ + RTUNI_ALPHA, /* U+00b8bf: */ + RTUNI_ALPHA, /* U+00b8c0: */ + RTUNI_ALPHA, /* U+00b8c1: */ + RTUNI_ALPHA, /* U+00b8c2: */ + RTUNI_ALPHA, /* U+00b8c3: */ + RTUNI_ALPHA, /* U+00b8c4: */ + RTUNI_ALPHA, /* U+00b8c5: */ + RTUNI_ALPHA, /* U+00b8c6: */ + RTUNI_ALPHA, /* U+00b8c7: */ + RTUNI_ALPHA, /* U+00b8c8: */ + RTUNI_ALPHA, /* U+00b8c9: */ + RTUNI_ALPHA, /* U+00b8ca: */ + RTUNI_ALPHA, /* U+00b8cb: */ + RTUNI_ALPHA, /* U+00b8cc: */ + RTUNI_ALPHA, /* U+00b8cd: */ + RTUNI_ALPHA, /* U+00b8ce: */ + RTUNI_ALPHA, /* U+00b8cf: */ + RTUNI_ALPHA, /* U+00b8d0: */ + RTUNI_ALPHA, /* U+00b8d1: */ + RTUNI_ALPHA, /* U+00b8d2: */ + RTUNI_ALPHA, /* U+00b8d3: */ + RTUNI_ALPHA, /* U+00b8d4: */ + RTUNI_ALPHA, /* U+00b8d5: */ + RTUNI_ALPHA, /* U+00b8d6: */ + RTUNI_ALPHA, /* U+00b8d7: */ + RTUNI_ALPHA, /* U+00b8d8: */ + RTUNI_ALPHA, /* U+00b8d9: */ + RTUNI_ALPHA, /* U+00b8da: */ + RTUNI_ALPHA, /* U+00b8db: */ + RTUNI_ALPHA, /* U+00b8dc: */ + RTUNI_ALPHA, /* U+00b8dd: */ + RTUNI_ALPHA, /* U+00b8de: */ + RTUNI_ALPHA, /* U+00b8df: */ + RTUNI_ALPHA, /* U+00b8e0: */ + RTUNI_ALPHA, /* U+00b8e1: */ + RTUNI_ALPHA, /* U+00b8e2: */ + RTUNI_ALPHA, /* U+00b8e3: */ + RTUNI_ALPHA, /* U+00b8e4: */ + RTUNI_ALPHA, /* U+00b8e5: */ + RTUNI_ALPHA, /* U+00b8e6: */ + RTUNI_ALPHA, /* U+00b8e7: */ + RTUNI_ALPHA, /* U+00b8e8: */ + RTUNI_ALPHA, /* U+00b8e9: */ + RTUNI_ALPHA, /* U+00b8ea: */ + RTUNI_ALPHA, /* U+00b8eb: */ + RTUNI_ALPHA, /* U+00b8ec: */ + RTUNI_ALPHA, /* U+00b8ed: */ + RTUNI_ALPHA, /* U+00b8ee: */ + RTUNI_ALPHA, /* U+00b8ef: */ + RTUNI_ALPHA, /* U+00b8f0: */ + RTUNI_ALPHA, /* U+00b8f1: */ + RTUNI_ALPHA, /* U+00b8f2: */ + RTUNI_ALPHA, /* U+00b8f3: */ + RTUNI_ALPHA, /* U+00b8f4: */ + RTUNI_ALPHA, /* U+00b8f5: */ + RTUNI_ALPHA, /* U+00b8f6: */ + RTUNI_ALPHA, /* U+00b8f7: */ + RTUNI_ALPHA, /* U+00b8f8: */ + RTUNI_ALPHA, /* U+00b8f9: */ + RTUNI_ALPHA, /* U+00b8fa: */ + RTUNI_ALPHA, /* U+00b8fb: */ + RTUNI_ALPHA, /* U+00b8fc: */ + RTUNI_ALPHA, /* U+00b8fd: */ + RTUNI_ALPHA, /* U+00b8fe: */ + RTUNI_ALPHA, /* U+00b8ff: */ + RTUNI_ALPHA, /* U+00b900: */ + RTUNI_ALPHA, /* U+00b901: */ + RTUNI_ALPHA, /* U+00b902: */ + RTUNI_ALPHA, /* U+00b903: */ + RTUNI_ALPHA, /* U+00b904: */ + RTUNI_ALPHA, /* U+00b905: */ + RTUNI_ALPHA, /* U+00b906: */ + RTUNI_ALPHA, /* U+00b907: */ + RTUNI_ALPHA, /* U+00b908: */ + RTUNI_ALPHA, /* U+00b909: */ + RTUNI_ALPHA, /* U+00b90a: */ + RTUNI_ALPHA, /* U+00b90b: */ + RTUNI_ALPHA, /* U+00b90c: */ + RTUNI_ALPHA, /* U+00b90d: */ + RTUNI_ALPHA, /* U+00b90e: */ + RTUNI_ALPHA, /* U+00b90f: */ + RTUNI_ALPHA, /* U+00b910: */ + RTUNI_ALPHA, /* U+00b911: */ + RTUNI_ALPHA, /* U+00b912: */ + RTUNI_ALPHA, /* U+00b913: */ + RTUNI_ALPHA, /* U+00b914: */ + RTUNI_ALPHA, /* U+00b915: */ + RTUNI_ALPHA, /* U+00b916: */ + RTUNI_ALPHA, /* U+00b917: */ + RTUNI_ALPHA, /* U+00b918: */ + RTUNI_ALPHA, /* U+00b919: */ + RTUNI_ALPHA, /* U+00b91a: */ + RTUNI_ALPHA, /* U+00b91b: */ + RTUNI_ALPHA, /* U+00b91c: */ + RTUNI_ALPHA, /* U+00b91d: */ + RTUNI_ALPHA, /* U+00b91e: */ + RTUNI_ALPHA, /* U+00b91f: */ + RTUNI_ALPHA, /* U+00b920: */ + RTUNI_ALPHA, /* U+00b921: */ + RTUNI_ALPHA, /* U+00b922: */ + RTUNI_ALPHA, /* U+00b923: */ + RTUNI_ALPHA, /* U+00b924: */ + RTUNI_ALPHA, /* U+00b925: */ + RTUNI_ALPHA, /* U+00b926: */ + RTUNI_ALPHA, /* U+00b927: */ + RTUNI_ALPHA, /* U+00b928: */ + RTUNI_ALPHA, /* U+00b929: */ + RTUNI_ALPHA, /* U+00b92a: */ + RTUNI_ALPHA, /* U+00b92b: */ + RTUNI_ALPHA, /* U+00b92c: */ + RTUNI_ALPHA, /* U+00b92d: */ + RTUNI_ALPHA, /* U+00b92e: */ + RTUNI_ALPHA, /* U+00b92f: */ + RTUNI_ALPHA, /* U+00b930: */ + RTUNI_ALPHA, /* U+00b931: */ + RTUNI_ALPHA, /* U+00b932: */ + RTUNI_ALPHA, /* U+00b933: */ + RTUNI_ALPHA, /* U+00b934: */ + RTUNI_ALPHA, /* U+00b935: */ + RTUNI_ALPHA, /* U+00b936: */ + RTUNI_ALPHA, /* U+00b937: */ + RTUNI_ALPHA, /* U+00b938: */ + RTUNI_ALPHA, /* U+00b939: */ + RTUNI_ALPHA, /* U+00b93a: */ + RTUNI_ALPHA, /* U+00b93b: */ + RTUNI_ALPHA, /* U+00b93c: */ + RTUNI_ALPHA, /* U+00b93d: */ + RTUNI_ALPHA, /* U+00b93e: */ + RTUNI_ALPHA, /* U+00b93f: */ + RTUNI_ALPHA, /* U+00b940: */ + RTUNI_ALPHA, /* U+00b941: */ + RTUNI_ALPHA, /* U+00b942: */ + RTUNI_ALPHA, /* U+00b943: */ + RTUNI_ALPHA, /* U+00b944: */ + RTUNI_ALPHA, /* U+00b945: */ + RTUNI_ALPHA, /* U+00b946: */ + RTUNI_ALPHA, /* U+00b947: */ + RTUNI_ALPHA, /* U+00b948: */ + RTUNI_ALPHA, /* U+00b949: */ + RTUNI_ALPHA, /* U+00b94a: */ + RTUNI_ALPHA, /* U+00b94b: */ + RTUNI_ALPHA, /* U+00b94c: */ + RTUNI_ALPHA, /* U+00b94d: */ + RTUNI_ALPHA, /* U+00b94e: */ + RTUNI_ALPHA, /* U+00b94f: */ + RTUNI_ALPHA, /* U+00b950: */ + RTUNI_ALPHA, /* U+00b951: */ + RTUNI_ALPHA, /* U+00b952: */ + RTUNI_ALPHA, /* U+00b953: */ + RTUNI_ALPHA, /* U+00b954: */ + RTUNI_ALPHA, /* U+00b955: */ + RTUNI_ALPHA, /* U+00b956: */ + RTUNI_ALPHA, /* U+00b957: */ + RTUNI_ALPHA, /* U+00b958: */ + RTUNI_ALPHA, /* U+00b959: */ + RTUNI_ALPHA, /* U+00b95a: */ + RTUNI_ALPHA, /* U+00b95b: */ + RTUNI_ALPHA, /* U+00b95c: */ + RTUNI_ALPHA, /* U+00b95d: */ + RTUNI_ALPHA, /* U+00b95e: */ + RTUNI_ALPHA, /* U+00b95f: */ + RTUNI_ALPHA, /* U+00b960: */ + RTUNI_ALPHA, /* U+00b961: */ + RTUNI_ALPHA, /* U+00b962: */ + RTUNI_ALPHA, /* U+00b963: */ + RTUNI_ALPHA, /* U+00b964: */ + RTUNI_ALPHA, /* U+00b965: */ + RTUNI_ALPHA, /* U+00b966: */ + RTUNI_ALPHA, /* U+00b967: */ + RTUNI_ALPHA, /* U+00b968: */ + RTUNI_ALPHA, /* U+00b969: */ + RTUNI_ALPHA, /* U+00b96a: */ + RTUNI_ALPHA, /* U+00b96b: */ + RTUNI_ALPHA, /* U+00b96c: */ + RTUNI_ALPHA, /* U+00b96d: */ + RTUNI_ALPHA, /* U+00b96e: */ + RTUNI_ALPHA, /* U+00b96f: */ + RTUNI_ALPHA, /* U+00b970: */ + RTUNI_ALPHA, /* U+00b971: */ + RTUNI_ALPHA, /* U+00b972: */ + RTUNI_ALPHA, /* U+00b973: */ + RTUNI_ALPHA, /* U+00b974: */ + RTUNI_ALPHA, /* U+00b975: */ + RTUNI_ALPHA, /* U+00b976: */ + RTUNI_ALPHA, /* U+00b977: */ + RTUNI_ALPHA, /* U+00b978: */ + RTUNI_ALPHA, /* U+00b979: */ + RTUNI_ALPHA, /* U+00b97a: */ + RTUNI_ALPHA, /* U+00b97b: */ + RTUNI_ALPHA, /* U+00b97c: */ + RTUNI_ALPHA, /* U+00b97d: */ + RTUNI_ALPHA, /* U+00b97e: */ + RTUNI_ALPHA, /* U+00b97f: */ + RTUNI_ALPHA, /* U+00b980: */ + RTUNI_ALPHA, /* U+00b981: */ + RTUNI_ALPHA, /* U+00b982: */ + RTUNI_ALPHA, /* U+00b983: */ + RTUNI_ALPHA, /* U+00b984: */ + RTUNI_ALPHA, /* U+00b985: */ + RTUNI_ALPHA, /* U+00b986: */ + RTUNI_ALPHA, /* U+00b987: */ + RTUNI_ALPHA, /* U+00b988: */ + RTUNI_ALPHA, /* U+00b989: */ + RTUNI_ALPHA, /* U+00b98a: */ + RTUNI_ALPHA, /* U+00b98b: */ + RTUNI_ALPHA, /* U+00b98c: */ + RTUNI_ALPHA, /* U+00b98d: */ + RTUNI_ALPHA, /* U+00b98e: */ + RTUNI_ALPHA, /* U+00b98f: */ + RTUNI_ALPHA, /* U+00b990: */ + RTUNI_ALPHA, /* U+00b991: */ + RTUNI_ALPHA, /* U+00b992: */ + RTUNI_ALPHA, /* U+00b993: */ + RTUNI_ALPHA, /* U+00b994: */ + RTUNI_ALPHA, /* U+00b995: */ + RTUNI_ALPHA, /* U+00b996: */ + RTUNI_ALPHA, /* U+00b997: */ + RTUNI_ALPHA, /* U+00b998: */ + RTUNI_ALPHA, /* U+00b999: */ + RTUNI_ALPHA, /* U+00b99a: */ + RTUNI_ALPHA, /* U+00b99b: */ + RTUNI_ALPHA, /* U+00b99c: */ + RTUNI_ALPHA, /* U+00b99d: */ + RTUNI_ALPHA, /* U+00b99e: */ + RTUNI_ALPHA, /* U+00b99f: */ + RTUNI_ALPHA, /* U+00b9a0: */ + RTUNI_ALPHA, /* U+00b9a1: */ + RTUNI_ALPHA, /* U+00b9a2: */ + RTUNI_ALPHA, /* U+00b9a3: */ + RTUNI_ALPHA, /* U+00b9a4: */ + RTUNI_ALPHA, /* U+00b9a5: */ + RTUNI_ALPHA, /* U+00b9a6: */ + RTUNI_ALPHA, /* U+00b9a7: */ + RTUNI_ALPHA, /* U+00b9a8: */ + RTUNI_ALPHA, /* U+00b9a9: */ + RTUNI_ALPHA, /* U+00b9aa: */ + RTUNI_ALPHA, /* U+00b9ab: */ + RTUNI_ALPHA, /* U+00b9ac: */ + RTUNI_ALPHA, /* U+00b9ad: */ + RTUNI_ALPHA, /* U+00b9ae: */ + RTUNI_ALPHA, /* U+00b9af: */ + RTUNI_ALPHA, /* U+00b9b0: */ + RTUNI_ALPHA, /* U+00b9b1: */ + RTUNI_ALPHA, /* U+00b9b2: */ + RTUNI_ALPHA, /* U+00b9b3: */ + RTUNI_ALPHA, /* U+00b9b4: */ + RTUNI_ALPHA, /* U+00b9b5: */ + RTUNI_ALPHA, /* U+00b9b6: */ + RTUNI_ALPHA, /* U+00b9b7: */ + RTUNI_ALPHA, /* U+00b9b8: */ + RTUNI_ALPHA, /* U+00b9b9: */ + RTUNI_ALPHA, /* U+00b9ba: */ + RTUNI_ALPHA, /* U+00b9bb: */ + RTUNI_ALPHA, /* U+00b9bc: */ + RTUNI_ALPHA, /* U+00b9bd: */ + RTUNI_ALPHA, /* U+00b9be: */ + RTUNI_ALPHA, /* U+00b9bf: */ + RTUNI_ALPHA, /* U+00b9c0: */ + RTUNI_ALPHA, /* U+00b9c1: */ + RTUNI_ALPHA, /* U+00b9c2: */ + RTUNI_ALPHA, /* U+00b9c3: */ + RTUNI_ALPHA, /* U+00b9c4: */ + RTUNI_ALPHA, /* U+00b9c5: */ + RTUNI_ALPHA, /* U+00b9c6: */ + RTUNI_ALPHA, /* U+00b9c7: */ + RTUNI_ALPHA, /* U+00b9c8: */ + RTUNI_ALPHA, /* U+00b9c9: */ + RTUNI_ALPHA, /* U+00b9ca: */ + RTUNI_ALPHA, /* U+00b9cb: */ + RTUNI_ALPHA, /* U+00b9cc: */ + RTUNI_ALPHA, /* U+00b9cd: */ + RTUNI_ALPHA, /* U+00b9ce: */ + RTUNI_ALPHA, /* U+00b9cf: */ + RTUNI_ALPHA, /* U+00b9d0: */ + RTUNI_ALPHA, /* U+00b9d1: */ + RTUNI_ALPHA, /* U+00b9d2: */ + RTUNI_ALPHA, /* U+00b9d3: */ + RTUNI_ALPHA, /* U+00b9d4: */ + RTUNI_ALPHA, /* U+00b9d5: */ + RTUNI_ALPHA, /* U+00b9d6: */ + RTUNI_ALPHA, /* U+00b9d7: */ + RTUNI_ALPHA, /* U+00b9d8: */ + RTUNI_ALPHA, /* U+00b9d9: */ + RTUNI_ALPHA, /* U+00b9da: */ + RTUNI_ALPHA, /* U+00b9db: */ + RTUNI_ALPHA, /* U+00b9dc: */ + RTUNI_ALPHA, /* U+00b9dd: */ + RTUNI_ALPHA, /* U+00b9de: */ + RTUNI_ALPHA, /* U+00b9df: */ + RTUNI_ALPHA, /* U+00b9e0: */ + RTUNI_ALPHA, /* U+00b9e1: */ + RTUNI_ALPHA, /* U+00b9e2: */ + RTUNI_ALPHA, /* U+00b9e3: */ + RTUNI_ALPHA, /* U+00b9e4: */ + RTUNI_ALPHA, /* U+00b9e5: */ + RTUNI_ALPHA, /* U+00b9e6: */ + RTUNI_ALPHA, /* U+00b9e7: */ + RTUNI_ALPHA, /* U+00b9e8: */ + RTUNI_ALPHA, /* U+00b9e9: */ + RTUNI_ALPHA, /* U+00b9ea: */ + RTUNI_ALPHA, /* U+00b9eb: */ + RTUNI_ALPHA, /* U+00b9ec: */ + RTUNI_ALPHA, /* U+00b9ed: */ + RTUNI_ALPHA, /* U+00b9ee: */ + RTUNI_ALPHA, /* U+00b9ef: */ + RTUNI_ALPHA, /* U+00b9f0: */ + RTUNI_ALPHA, /* U+00b9f1: */ + RTUNI_ALPHA, /* U+00b9f2: */ + RTUNI_ALPHA, /* U+00b9f3: */ + RTUNI_ALPHA, /* U+00b9f4: */ + RTUNI_ALPHA, /* U+00b9f5: */ + RTUNI_ALPHA, /* U+00b9f6: */ + RTUNI_ALPHA, /* U+00b9f7: */ + RTUNI_ALPHA, /* U+00b9f8: */ + RTUNI_ALPHA, /* U+00b9f9: */ + RTUNI_ALPHA, /* U+00b9fa: */ + RTUNI_ALPHA, /* U+00b9fb: */ + RTUNI_ALPHA, /* U+00b9fc: */ + RTUNI_ALPHA, /* U+00b9fd: */ + RTUNI_ALPHA, /* U+00b9fe: */ + RTUNI_ALPHA, /* U+00b9ff: */ + RTUNI_ALPHA, /* U+00ba00: */ + RTUNI_ALPHA, /* U+00ba01: */ + RTUNI_ALPHA, /* U+00ba02: */ + RTUNI_ALPHA, /* U+00ba03: */ + RTUNI_ALPHA, /* U+00ba04: */ + RTUNI_ALPHA, /* U+00ba05: */ + RTUNI_ALPHA, /* U+00ba06: */ + RTUNI_ALPHA, /* U+00ba07: */ + RTUNI_ALPHA, /* U+00ba08: */ + RTUNI_ALPHA, /* U+00ba09: */ + RTUNI_ALPHA, /* U+00ba0a: */ + RTUNI_ALPHA, /* U+00ba0b: */ + RTUNI_ALPHA, /* U+00ba0c: */ + RTUNI_ALPHA, /* U+00ba0d: */ + RTUNI_ALPHA, /* U+00ba0e: */ + RTUNI_ALPHA, /* U+00ba0f: */ + RTUNI_ALPHA, /* U+00ba10: */ + RTUNI_ALPHA, /* U+00ba11: */ + RTUNI_ALPHA, /* U+00ba12: */ + RTUNI_ALPHA, /* U+00ba13: */ + RTUNI_ALPHA, /* U+00ba14: */ + RTUNI_ALPHA, /* U+00ba15: */ + RTUNI_ALPHA, /* U+00ba16: */ + RTUNI_ALPHA, /* U+00ba17: */ + RTUNI_ALPHA, /* U+00ba18: */ + RTUNI_ALPHA, /* U+00ba19: */ + RTUNI_ALPHA, /* U+00ba1a: */ + RTUNI_ALPHA, /* U+00ba1b: */ + RTUNI_ALPHA, /* U+00ba1c: */ + RTUNI_ALPHA, /* U+00ba1d: */ + RTUNI_ALPHA, /* U+00ba1e: */ + RTUNI_ALPHA, /* U+00ba1f: */ + RTUNI_ALPHA, /* U+00ba20: */ + RTUNI_ALPHA, /* U+00ba21: */ + RTUNI_ALPHA, /* U+00ba22: */ + RTUNI_ALPHA, /* U+00ba23: */ + RTUNI_ALPHA, /* U+00ba24: */ + RTUNI_ALPHA, /* U+00ba25: */ + RTUNI_ALPHA, /* U+00ba26: */ + RTUNI_ALPHA, /* U+00ba27: */ + RTUNI_ALPHA, /* U+00ba28: */ + RTUNI_ALPHA, /* U+00ba29: */ + RTUNI_ALPHA, /* U+00ba2a: */ + RTUNI_ALPHA, /* U+00ba2b: */ + RTUNI_ALPHA, /* U+00ba2c: */ + RTUNI_ALPHA, /* U+00ba2d: */ + RTUNI_ALPHA, /* U+00ba2e: */ + RTUNI_ALPHA, /* U+00ba2f: */ + RTUNI_ALPHA, /* U+00ba30: */ + RTUNI_ALPHA, /* U+00ba31: */ + RTUNI_ALPHA, /* U+00ba32: */ + RTUNI_ALPHA, /* U+00ba33: */ + RTUNI_ALPHA, /* U+00ba34: */ + RTUNI_ALPHA, /* U+00ba35: */ + RTUNI_ALPHA, /* U+00ba36: */ + RTUNI_ALPHA, /* U+00ba37: */ + RTUNI_ALPHA, /* U+00ba38: */ + RTUNI_ALPHA, /* U+00ba39: */ + RTUNI_ALPHA, /* U+00ba3a: */ + RTUNI_ALPHA, /* U+00ba3b: */ + RTUNI_ALPHA, /* U+00ba3c: */ + RTUNI_ALPHA, /* U+00ba3d: */ + RTUNI_ALPHA, /* U+00ba3e: */ + RTUNI_ALPHA, /* U+00ba3f: */ + RTUNI_ALPHA, /* U+00ba40: */ + RTUNI_ALPHA, /* U+00ba41: */ + RTUNI_ALPHA, /* U+00ba42: */ + RTUNI_ALPHA, /* U+00ba43: */ + RTUNI_ALPHA, /* U+00ba44: */ + RTUNI_ALPHA, /* U+00ba45: */ + RTUNI_ALPHA, /* U+00ba46: */ + RTUNI_ALPHA, /* U+00ba47: */ + RTUNI_ALPHA, /* U+00ba48: */ + RTUNI_ALPHA, /* U+00ba49: */ + RTUNI_ALPHA, /* U+00ba4a: */ + RTUNI_ALPHA, /* U+00ba4b: */ + RTUNI_ALPHA, /* U+00ba4c: */ + RTUNI_ALPHA, /* U+00ba4d: */ + RTUNI_ALPHA, /* U+00ba4e: */ + RTUNI_ALPHA, /* U+00ba4f: */ + RTUNI_ALPHA, /* U+00ba50: */ + RTUNI_ALPHA, /* U+00ba51: */ + RTUNI_ALPHA, /* U+00ba52: */ + RTUNI_ALPHA, /* U+00ba53: */ + RTUNI_ALPHA, /* U+00ba54: */ + RTUNI_ALPHA, /* U+00ba55: */ + RTUNI_ALPHA, /* U+00ba56: */ + RTUNI_ALPHA, /* U+00ba57: */ + RTUNI_ALPHA, /* U+00ba58: */ + RTUNI_ALPHA, /* U+00ba59: */ + RTUNI_ALPHA, /* U+00ba5a: */ + RTUNI_ALPHA, /* U+00ba5b: */ + RTUNI_ALPHA, /* U+00ba5c: */ + RTUNI_ALPHA, /* U+00ba5d: */ + RTUNI_ALPHA, /* U+00ba5e: */ + RTUNI_ALPHA, /* U+00ba5f: */ + RTUNI_ALPHA, /* U+00ba60: */ + RTUNI_ALPHA, /* U+00ba61: */ + RTUNI_ALPHA, /* U+00ba62: */ + RTUNI_ALPHA, /* U+00ba63: */ + RTUNI_ALPHA, /* U+00ba64: */ + RTUNI_ALPHA, /* U+00ba65: */ + RTUNI_ALPHA, /* U+00ba66: */ + RTUNI_ALPHA, /* U+00ba67: */ + RTUNI_ALPHA, /* U+00ba68: */ + RTUNI_ALPHA, /* U+00ba69: */ + RTUNI_ALPHA, /* U+00ba6a: */ + RTUNI_ALPHA, /* U+00ba6b: */ + RTUNI_ALPHA, /* U+00ba6c: */ + RTUNI_ALPHA, /* U+00ba6d: */ + RTUNI_ALPHA, /* U+00ba6e: */ + RTUNI_ALPHA, /* U+00ba6f: */ + RTUNI_ALPHA, /* U+00ba70: */ + RTUNI_ALPHA, /* U+00ba71: */ + RTUNI_ALPHA, /* U+00ba72: */ + RTUNI_ALPHA, /* U+00ba73: */ + RTUNI_ALPHA, /* U+00ba74: */ + RTUNI_ALPHA, /* U+00ba75: */ + RTUNI_ALPHA, /* U+00ba76: */ + RTUNI_ALPHA, /* U+00ba77: */ + RTUNI_ALPHA, /* U+00ba78: */ + RTUNI_ALPHA, /* U+00ba79: */ + RTUNI_ALPHA, /* U+00ba7a: */ + RTUNI_ALPHA, /* U+00ba7b: */ + RTUNI_ALPHA, /* U+00ba7c: */ + RTUNI_ALPHA, /* U+00ba7d: */ + RTUNI_ALPHA, /* U+00ba7e: */ + RTUNI_ALPHA, /* U+00ba7f: */ + RTUNI_ALPHA, /* U+00ba80: */ + RTUNI_ALPHA, /* U+00ba81: */ + RTUNI_ALPHA, /* U+00ba82: */ + RTUNI_ALPHA, /* U+00ba83: */ + RTUNI_ALPHA, /* U+00ba84: */ + RTUNI_ALPHA, /* U+00ba85: */ + RTUNI_ALPHA, /* U+00ba86: */ + RTUNI_ALPHA, /* U+00ba87: */ + RTUNI_ALPHA, /* U+00ba88: */ + RTUNI_ALPHA, /* U+00ba89: */ + RTUNI_ALPHA, /* U+00ba8a: */ + RTUNI_ALPHA, /* U+00ba8b: */ + RTUNI_ALPHA, /* U+00ba8c: */ + RTUNI_ALPHA, /* U+00ba8d: */ + RTUNI_ALPHA, /* U+00ba8e: */ + RTUNI_ALPHA, /* U+00ba8f: */ + RTUNI_ALPHA, /* U+00ba90: */ + RTUNI_ALPHA, /* U+00ba91: */ + RTUNI_ALPHA, /* U+00ba92: */ + RTUNI_ALPHA, /* U+00ba93: */ + RTUNI_ALPHA, /* U+00ba94: */ + RTUNI_ALPHA, /* U+00ba95: */ + RTUNI_ALPHA, /* U+00ba96: */ + RTUNI_ALPHA, /* U+00ba97: */ + RTUNI_ALPHA, /* U+00ba98: */ + RTUNI_ALPHA, /* U+00ba99: */ + RTUNI_ALPHA, /* U+00ba9a: */ + RTUNI_ALPHA, /* U+00ba9b: */ + RTUNI_ALPHA, /* U+00ba9c: */ + RTUNI_ALPHA, /* U+00ba9d: */ + RTUNI_ALPHA, /* U+00ba9e: */ + RTUNI_ALPHA, /* U+00ba9f: */ + RTUNI_ALPHA, /* U+00baa0: */ + RTUNI_ALPHA, /* U+00baa1: */ + RTUNI_ALPHA, /* U+00baa2: */ + RTUNI_ALPHA, /* U+00baa3: */ + RTUNI_ALPHA, /* U+00baa4: */ + RTUNI_ALPHA, /* U+00baa5: */ + RTUNI_ALPHA, /* U+00baa6: */ + RTUNI_ALPHA, /* U+00baa7: */ + RTUNI_ALPHA, /* U+00baa8: */ + RTUNI_ALPHA, /* U+00baa9: */ + RTUNI_ALPHA, /* U+00baaa: */ + RTUNI_ALPHA, /* U+00baab: */ + RTUNI_ALPHA, /* U+00baac: */ + RTUNI_ALPHA, /* U+00baad: */ + RTUNI_ALPHA, /* U+00baae: */ + RTUNI_ALPHA, /* U+00baaf: */ + RTUNI_ALPHA, /* U+00bab0: */ + RTUNI_ALPHA, /* U+00bab1: */ + RTUNI_ALPHA, /* U+00bab2: */ + RTUNI_ALPHA, /* U+00bab3: */ + RTUNI_ALPHA, /* U+00bab4: */ + RTUNI_ALPHA, /* U+00bab5: */ + RTUNI_ALPHA, /* U+00bab6: */ + RTUNI_ALPHA, /* U+00bab7: */ + RTUNI_ALPHA, /* U+00bab8: */ + RTUNI_ALPHA, /* U+00bab9: */ + RTUNI_ALPHA, /* U+00baba: */ + RTUNI_ALPHA, /* U+00babb: */ + RTUNI_ALPHA, /* U+00babc: */ + RTUNI_ALPHA, /* U+00babd: */ + RTUNI_ALPHA, /* U+00babe: */ + RTUNI_ALPHA, /* U+00babf: */ + RTUNI_ALPHA, /* U+00bac0: */ + RTUNI_ALPHA, /* U+00bac1: */ + RTUNI_ALPHA, /* U+00bac2: */ + RTUNI_ALPHA, /* U+00bac3: */ + RTUNI_ALPHA, /* U+00bac4: */ + RTUNI_ALPHA, /* U+00bac5: */ + RTUNI_ALPHA, /* U+00bac6: */ + RTUNI_ALPHA, /* U+00bac7: */ + RTUNI_ALPHA, /* U+00bac8: */ + RTUNI_ALPHA, /* U+00bac9: */ + RTUNI_ALPHA, /* U+00baca: */ + RTUNI_ALPHA, /* U+00bacb: */ + RTUNI_ALPHA, /* U+00bacc: */ + RTUNI_ALPHA, /* U+00bacd: */ + RTUNI_ALPHA, /* U+00bace: */ + RTUNI_ALPHA, /* U+00bacf: */ + RTUNI_ALPHA, /* U+00bad0: */ + RTUNI_ALPHA, /* U+00bad1: */ + RTUNI_ALPHA, /* U+00bad2: */ + RTUNI_ALPHA, /* U+00bad3: */ + RTUNI_ALPHA, /* U+00bad4: */ + RTUNI_ALPHA, /* U+00bad5: */ + RTUNI_ALPHA, /* U+00bad6: */ + RTUNI_ALPHA, /* U+00bad7: */ + RTUNI_ALPHA, /* U+00bad8: */ + RTUNI_ALPHA, /* U+00bad9: */ + RTUNI_ALPHA, /* U+00bada: */ + RTUNI_ALPHA, /* U+00badb: */ + RTUNI_ALPHA, /* U+00badc: */ + RTUNI_ALPHA, /* U+00badd: */ + RTUNI_ALPHA, /* U+00bade: */ + RTUNI_ALPHA, /* U+00badf: */ + RTUNI_ALPHA, /* U+00bae0: */ + RTUNI_ALPHA, /* U+00bae1: */ + RTUNI_ALPHA, /* U+00bae2: */ + RTUNI_ALPHA, /* U+00bae3: */ + RTUNI_ALPHA, /* U+00bae4: */ + RTUNI_ALPHA, /* U+00bae5: */ + RTUNI_ALPHA, /* U+00bae6: */ + RTUNI_ALPHA, /* U+00bae7: */ + RTUNI_ALPHA, /* U+00bae8: */ + RTUNI_ALPHA, /* U+00bae9: */ + RTUNI_ALPHA, /* U+00baea: */ + RTUNI_ALPHA, /* U+00baeb: */ + RTUNI_ALPHA, /* U+00baec: */ + RTUNI_ALPHA, /* U+00baed: */ + RTUNI_ALPHA, /* U+00baee: */ + RTUNI_ALPHA, /* U+00baef: */ + RTUNI_ALPHA, /* U+00baf0: */ + RTUNI_ALPHA, /* U+00baf1: */ + RTUNI_ALPHA, /* U+00baf2: */ + RTUNI_ALPHA, /* U+00baf3: */ + RTUNI_ALPHA, /* U+00baf4: */ + RTUNI_ALPHA, /* U+00baf5: */ + RTUNI_ALPHA, /* U+00baf6: */ + RTUNI_ALPHA, /* U+00baf7: */ + RTUNI_ALPHA, /* U+00baf8: */ + RTUNI_ALPHA, /* U+00baf9: */ + RTUNI_ALPHA, /* U+00bafa: */ + RTUNI_ALPHA, /* U+00bafb: */ + RTUNI_ALPHA, /* U+00bafc: */ + RTUNI_ALPHA, /* U+00bafd: */ + RTUNI_ALPHA, /* U+00bafe: */ + RTUNI_ALPHA, /* U+00baff: */ + RTUNI_ALPHA, /* U+00bb00: */ + RTUNI_ALPHA, /* U+00bb01: */ + RTUNI_ALPHA, /* U+00bb02: */ + RTUNI_ALPHA, /* U+00bb03: */ + RTUNI_ALPHA, /* U+00bb04: */ + RTUNI_ALPHA, /* U+00bb05: */ + RTUNI_ALPHA, /* U+00bb06: */ + RTUNI_ALPHA, /* U+00bb07: */ + RTUNI_ALPHA, /* U+00bb08: */ + RTUNI_ALPHA, /* U+00bb09: */ + RTUNI_ALPHA, /* U+00bb0a: */ + RTUNI_ALPHA, /* U+00bb0b: */ + RTUNI_ALPHA, /* U+00bb0c: */ + RTUNI_ALPHA, /* U+00bb0d: */ + RTUNI_ALPHA, /* U+00bb0e: */ + RTUNI_ALPHA, /* U+00bb0f: */ + RTUNI_ALPHA, /* U+00bb10: */ + RTUNI_ALPHA, /* U+00bb11: */ + RTUNI_ALPHA, /* U+00bb12: */ + RTUNI_ALPHA, /* U+00bb13: */ + RTUNI_ALPHA, /* U+00bb14: */ + RTUNI_ALPHA, /* U+00bb15: */ + RTUNI_ALPHA, /* U+00bb16: */ + RTUNI_ALPHA, /* U+00bb17: */ + RTUNI_ALPHA, /* U+00bb18: */ + RTUNI_ALPHA, /* U+00bb19: */ + RTUNI_ALPHA, /* U+00bb1a: */ + RTUNI_ALPHA, /* U+00bb1b: */ + RTUNI_ALPHA, /* U+00bb1c: */ + RTUNI_ALPHA, /* U+00bb1d: */ + RTUNI_ALPHA, /* U+00bb1e: */ + RTUNI_ALPHA, /* U+00bb1f: */ + RTUNI_ALPHA, /* U+00bb20: */ + RTUNI_ALPHA, /* U+00bb21: */ + RTUNI_ALPHA, /* U+00bb22: */ + RTUNI_ALPHA, /* U+00bb23: */ + RTUNI_ALPHA, /* U+00bb24: */ + RTUNI_ALPHA, /* U+00bb25: */ + RTUNI_ALPHA, /* U+00bb26: */ + RTUNI_ALPHA, /* U+00bb27: */ + RTUNI_ALPHA, /* U+00bb28: */ + RTUNI_ALPHA, /* U+00bb29: */ + RTUNI_ALPHA, /* U+00bb2a: */ + RTUNI_ALPHA, /* U+00bb2b: */ + RTUNI_ALPHA, /* U+00bb2c: */ + RTUNI_ALPHA, /* U+00bb2d: */ + RTUNI_ALPHA, /* U+00bb2e: */ + RTUNI_ALPHA, /* U+00bb2f: */ + RTUNI_ALPHA, /* U+00bb30: */ + RTUNI_ALPHA, /* U+00bb31: */ + RTUNI_ALPHA, /* U+00bb32: */ + RTUNI_ALPHA, /* U+00bb33: */ + RTUNI_ALPHA, /* U+00bb34: */ + RTUNI_ALPHA, /* U+00bb35: */ + RTUNI_ALPHA, /* U+00bb36: */ + RTUNI_ALPHA, /* U+00bb37: */ + RTUNI_ALPHA, /* U+00bb38: */ + RTUNI_ALPHA, /* U+00bb39: */ + RTUNI_ALPHA, /* U+00bb3a: */ + RTUNI_ALPHA, /* U+00bb3b: */ + RTUNI_ALPHA, /* U+00bb3c: */ + RTUNI_ALPHA, /* U+00bb3d: */ + RTUNI_ALPHA, /* U+00bb3e: */ + RTUNI_ALPHA, /* U+00bb3f: */ + RTUNI_ALPHA, /* U+00bb40: */ + RTUNI_ALPHA, /* U+00bb41: */ + RTUNI_ALPHA, /* U+00bb42: */ + RTUNI_ALPHA, /* U+00bb43: */ + RTUNI_ALPHA, /* U+00bb44: */ + RTUNI_ALPHA, /* U+00bb45: */ + RTUNI_ALPHA, /* U+00bb46: */ + RTUNI_ALPHA, /* U+00bb47: */ + RTUNI_ALPHA, /* U+00bb48: */ + RTUNI_ALPHA, /* U+00bb49: */ + RTUNI_ALPHA, /* U+00bb4a: */ + RTUNI_ALPHA, /* U+00bb4b: */ + RTUNI_ALPHA, /* U+00bb4c: */ + RTUNI_ALPHA, /* U+00bb4d: */ + RTUNI_ALPHA, /* U+00bb4e: */ + RTUNI_ALPHA, /* U+00bb4f: */ + RTUNI_ALPHA, /* U+00bb50: */ + RTUNI_ALPHA, /* U+00bb51: */ + RTUNI_ALPHA, /* U+00bb52: */ + RTUNI_ALPHA, /* U+00bb53: */ + RTUNI_ALPHA, /* U+00bb54: */ + RTUNI_ALPHA, /* U+00bb55: */ + RTUNI_ALPHA, /* U+00bb56: */ + RTUNI_ALPHA, /* U+00bb57: */ + RTUNI_ALPHA, /* U+00bb58: */ + RTUNI_ALPHA, /* U+00bb59: */ + RTUNI_ALPHA, /* U+00bb5a: */ + RTUNI_ALPHA, /* U+00bb5b: */ + RTUNI_ALPHA, /* U+00bb5c: */ + RTUNI_ALPHA, /* U+00bb5d: */ + RTUNI_ALPHA, /* U+00bb5e: */ + RTUNI_ALPHA, /* U+00bb5f: */ + RTUNI_ALPHA, /* U+00bb60: */ + RTUNI_ALPHA, /* U+00bb61: */ + RTUNI_ALPHA, /* U+00bb62: */ + RTUNI_ALPHA, /* U+00bb63: */ + RTUNI_ALPHA, /* U+00bb64: */ + RTUNI_ALPHA, /* U+00bb65: */ + RTUNI_ALPHA, /* U+00bb66: */ + RTUNI_ALPHA, /* U+00bb67: */ + RTUNI_ALPHA, /* U+00bb68: */ + RTUNI_ALPHA, /* U+00bb69: */ + RTUNI_ALPHA, /* U+00bb6a: */ + RTUNI_ALPHA, /* U+00bb6b: */ + RTUNI_ALPHA, /* U+00bb6c: */ + RTUNI_ALPHA, /* U+00bb6d: */ + RTUNI_ALPHA, /* U+00bb6e: */ + RTUNI_ALPHA, /* U+00bb6f: */ + RTUNI_ALPHA, /* U+00bb70: */ + RTUNI_ALPHA, /* U+00bb71: */ + RTUNI_ALPHA, /* U+00bb72: */ + RTUNI_ALPHA, /* U+00bb73: */ + RTUNI_ALPHA, /* U+00bb74: */ + RTUNI_ALPHA, /* U+00bb75: */ + RTUNI_ALPHA, /* U+00bb76: */ + RTUNI_ALPHA, /* U+00bb77: */ + RTUNI_ALPHA, /* U+00bb78: */ + RTUNI_ALPHA, /* U+00bb79: */ + RTUNI_ALPHA, /* U+00bb7a: */ + RTUNI_ALPHA, /* U+00bb7b: */ + RTUNI_ALPHA, /* U+00bb7c: */ + RTUNI_ALPHA, /* U+00bb7d: */ + RTUNI_ALPHA, /* U+00bb7e: */ + RTUNI_ALPHA, /* U+00bb7f: */ + RTUNI_ALPHA, /* U+00bb80: */ + RTUNI_ALPHA, /* U+00bb81: */ + RTUNI_ALPHA, /* U+00bb82: */ + RTUNI_ALPHA, /* U+00bb83: */ + RTUNI_ALPHA, /* U+00bb84: */ + RTUNI_ALPHA, /* U+00bb85: */ + RTUNI_ALPHA, /* U+00bb86: */ + RTUNI_ALPHA, /* U+00bb87: */ + RTUNI_ALPHA, /* U+00bb88: */ + RTUNI_ALPHA, /* U+00bb89: */ + RTUNI_ALPHA, /* U+00bb8a: */ + RTUNI_ALPHA, /* U+00bb8b: */ + RTUNI_ALPHA, /* U+00bb8c: */ + RTUNI_ALPHA, /* U+00bb8d: */ + RTUNI_ALPHA, /* U+00bb8e: */ + RTUNI_ALPHA, /* U+00bb8f: */ + RTUNI_ALPHA, /* U+00bb90: */ + RTUNI_ALPHA, /* U+00bb91: */ + RTUNI_ALPHA, /* U+00bb92: */ + RTUNI_ALPHA, /* U+00bb93: */ + RTUNI_ALPHA, /* U+00bb94: */ + RTUNI_ALPHA, /* U+00bb95: */ + RTUNI_ALPHA, /* U+00bb96: */ + RTUNI_ALPHA, /* U+00bb97: */ + RTUNI_ALPHA, /* U+00bb98: */ + RTUNI_ALPHA, /* U+00bb99: */ + RTUNI_ALPHA, /* U+00bb9a: */ + RTUNI_ALPHA, /* U+00bb9b: */ + RTUNI_ALPHA, /* U+00bb9c: */ + RTUNI_ALPHA, /* U+00bb9d: */ + RTUNI_ALPHA, /* U+00bb9e: */ + RTUNI_ALPHA, /* U+00bb9f: */ + RTUNI_ALPHA, /* U+00bba0: */ + RTUNI_ALPHA, /* U+00bba1: */ + RTUNI_ALPHA, /* U+00bba2: */ + RTUNI_ALPHA, /* U+00bba3: */ + RTUNI_ALPHA, /* U+00bba4: */ + RTUNI_ALPHA, /* U+00bba5: */ + RTUNI_ALPHA, /* U+00bba6: */ + RTUNI_ALPHA, /* U+00bba7: */ + RTUNI_ALPHA, /* U+00bba8: */ + RTUNI_ALPHA, /* U+00bba9: */ + RTUNI_ALPHA, /* U+00bbaa: */ + RTUNI_ALPHA, /* U+00bbab: */ + RTUNI_ALPHA, /* U+00bbac: */ + RTUNI_ALPHA, /* U+00bbad: */ + RTUNI_ALPHA, /* U+00bbae: */ + RTUNI_ALPHA, /* U+00bbaf: */ + RTUNI_ALPHA, /* U+00bbb0: */ + RTUNI_ALPHA, /* U+00bbb1: */ + RTUNI_ALPHA, /* U+00bbb2: */ + RTUNI_ALPHA, /* U+00bbb3: */ + RTUNI_ALPHA, /* U+00bbb4: */ + RTUNI_ALPHA, /* U+00bbb5: */ + RTUNI_ALPHA, /* U+00bbb6: */ + RTUNI_ALPHA, /* U+00bbb7: */ + RTUNI_ALPHA, /* U+00bbb8: */ + RTUNI_ALPHA, /* U+00bbb9: */ + RTUNI_ALPHA, /* U+00bbba: */ + RTUNI_ALPHA, /* U+00bbbb: */ + RTUNI_ALPHA, /* U+00bbbc: */ + RTUNI_ALPHA, /* U+00bbbd: */ + RTUNI_ALPHA, /* U+00bbbe: */ + RTUNI_ALPHA, /* U+00bbbf: */ + RTUNI_ALPHA, /* U+00bbc0: */ + RTUNI_ALPHA, /* U+00bbc1: */ + RTUNI_ALPHA, /* U+00bbc2: */ + RTUNI_ALPHA, /* U+00bbc3: */ + RTUNI_ALPHA, /* U+00bbc4: */ + RTUNI_ALPHA, /* U+00bbc5: */ + RTUNI_ALPHA, /* U+00bbc6: */ + RTUNI_ALPHA, /* U+00bbc7: */ + RTUNI_ALPHA, /* U+00bbc8: */ + RTUNI_ALPHA, /* U+00bbc9: */ + RTUNI_ALPHA, /* U+00bbca: */ + RTUNI_ALPHA, /* U+00bbcb: */ + RTUNI_ALPHA, /* U+00bbcc: */ + RTUNI_ALPHA, /* U+00bbcd: */ + RTUNI_ALPHA, /* U+00bbce: */ + RTUNI_ALPHA, /* U+00bbcf: */ + RTUNI_ALPHA, /* U+00bbd0: */ + RTUNI_ALPHA, /* U+00bbd1: */ + RTUNI_ALPHA, /* U+00bbd2: */ + RTUNI_ALPHA, /* U+00bbd3: */ + RTUNI_ALPHA, /* U+00bbd4: */ + RTUNI_ALPHA, /* U+00bbd5: */ + RTUNI_ALPHA, /* U+00bbd6: */ + RTUNI_ALPHA, /* U+00bbd7: */ + RTUNI_ALPHA, /* U+00bbd8: */ + RTUNI_ALPHA, /* U+00bbd9: */ + RTUNI_ALPHA, /* U+00bbda: */ + RTUNI_ALPHA, /* U+00bbdb: */ + RTUNI_ALPHA, /* U+00bbdc: */ + RTUNI_ALPHA, /* U+00bbdd: */ + RTUNI_ALPHA, /* U+00bbde: */ + RTUNI_ALPHA, /* U+00bbdf: */ + RTUNI_ALPHA, /* U+00bbe0: */ + RTUNI_ALPHA, /* U+00bbe1: */ + RTUNI_ALPHA, /* U+00bbe2: */ + RTUNI_ALPHA, /* U+00bbe3: */ + RTUNI_ALPHA, /* U+00bbe4: */ + RTUNI_ALPHA, /* U+00bbe5: */ + RTUNI_ALPHA, /* U+00bbe6: */ + RTUNI_ALPHA, /* U+00bbe7: */ + RTUNI_ALPHA, /* U+00bbe8: */ + RTUNI_ALPHA, /* U+00bbe9: */ + RTUNI_ALPHA, /* U+00bbea: */ + RTUNI_ALPHA, /* U+00bbeb: */ + RTUNI_ALPHA, /* U+00bbec: */ + RTUNI_ALPHA, /* U+00bbed: */ + RTUNI_ALPHA, /* U+00bbee: */ + RTUNI_ALPHA, /* U+00bbef: */ + RTUNI_ALPHA, /* U+00bbf0: */ + RTUNI_ALPHA, /* U+00bbf1: */ + RTUNI_ALPHA, /* U+00bbf2: */ + RTUNI_ALPHA, /* U+00bbf3: */ + RTUNI_ALPHA, /* U+00bbf4: */ + RTUNI_ALPHA, /* U+00bbf5: */ + RTUNI_ALPHA, /* U+00bbf6: */ + RTUNI_ALPHA, /* U+00bbf7: */ + RTUNI_ALPHA, /* U+00bbf8: */ + RTUNI_ALPHA, /* U+00bbf9: */ + RTUNI_ALPHA, /* U+00bbfa: */ + RTUNI_ALPHA, /* U+00bbfb: */ + RTUNI_ALPHA, /* U+00bbfc: */ + RTUNI_ALPHA, /* U+00bbfd: */ + RTUNI_ALPHA, /* U+00bbfe: */ + RTUNI_ALPHA, /* U+00bbff: */ + RTUNI_ALPHA, /* U+00bc00: */ + RTUNI_ALPHA, /* U+00bc01: */ + RTUNI_ALPHA, /* U+00bc02: */ + RTUNI_ALPHA, /* U+00bc03: */ + RTUNI_ALPHA, /* U+00bc04: */ + RTUNI_ALPHA, /* U+00bc05: */ + RTUNI_ALPHA, /* U+00bc06: */ + RTUNI_ALPHA, /* U+00bc07: */ + RTUNI_ALPHA, /* U+00bc08: */ + RTUNI_ALPHA, /* U+00bc09: */ + RTUNI_ALPHA, /* U+00bc0a: */ + RTUNI_ALPHA, /* U+00bc0b: */ + RTUNI_ALPHA, /* U+00bc0c: */ + RTUNI_ALPHA, /* U+00bc0d: */ + RTUNI_ALPHA, /* U+00bc0e: */ + RTUNI_ALPHA, /* U+00bc0f: */ + RTUNI_ALPHA, /* U+00bc10: */ + RTUNI_ALPHA, /* U+00bc11: */ + RTUNI_ALPHA, /* U+00bc12: */ + RTUNI_ALPHA, /* U+00bc13: */ + RTUNI_ALPHA, /* U+00bc14: */ + RTUNI_ALPHA, /* U+00bc15: */ + RTUNI_ALPHA, /* U+00bc16: */ + RTUNI_ALPHA, /* U+00bc17: */ + RTUNI_ALPHA, /* U+00bc18: */ + RTUNI_ALPHA, /* U+00bc19: */ + RTUNI_ALPHA, /* U+00bc1a: */ + RTUNI_ALPHA, /* U+00bc1b: */ + RTUNI_ALPHA, /* U+00bc1c: */ + RTUNI_ALPHA, /* U+00bc1d: */ + RTUNI_ALPHA, /* U+00bc1e: */ + RTUNI_ALPHA, /* U+00bc1f: */ + RTUNI_ALPHA, /* U+00bc20: */ + RTUNI_ALPHA, /* U+00bc21: */ + RTUNI_ALPHA, /* U+00bc22: */ + RTUNI_ALPHA, /* U+00bc23: */ + RTUNI_ALPHA, /* U+00bc24: */ + RTUNI_ALPHA, /* U+00bc25: */ + RTUNI_ALPHA, /* U+00bc26: */ + RTUNI_ALPHA, /* U+00bc27: */ + RTUNI_ALPHA, /* U+00bc28: */ + RTUNI_ALPHA, /* U+00bc29: */ + RTUNI_ALPHA, /* U+00bc2a: */ + RTUNI_ALPHA, /* U+00bc2b: */ + RTUNI_ALPHA, /* U+00bc2c: */ + RTUNI_ALPHA, /* U+00bc2d: */ + RTUNI_ALPHA, /* U+00bc2e: */ + RTUNI_ALPHA, /* U+00bc2f: */ + RTUNI_ALPHA, /* U+00bc30: */ + RTUNI_ALPHA, /* U+00bc31: */ + RTUNI_ALPHA, /* U+00bc32: */ + RTUNI_ALPHA, /* U+00bc33: */ + RTUNI_ALPHA, /* U+00bc34: */ + RTUNI_ALPHA, /* U+00bc35: */ + RTUNI_ALPHA, /* U+00bc36: */ + RTUNI_ALPHA, /* U+00bc37: */ + RTUNI_ALPHA, /* U+00bc38: */ + RTUNI_ALPHA, /* U+00bc39: */ + RTUNI_ALPHA, /* U+00bc3a: */ + RTUNI_ALPHA, /* U+00bc3b: */ + RTUNI_ALPHA, /* U+00bc3c: */ + RTUNI_ALPHA, /* U+00bc3d: */ + RTUNI_ALPHA, /* U+00bc3e: */ + RTUNI_ALPHA, /* U+00bc3f: */ + RTUNI_ALPHA, /* U+00bc40: */ + RTUNI_ALPHA, /* U+00bc41: */ + RTUNI_ALPHA, /* U+00bc42: */ + RTUNI_ALPHA, /* U+00bc43: */ + RTUNI_ALPHA, /* U+00bc44: */ + RTUNI_ALPHA, /* U+00bc45: */ + RTUNI_ALPHA, /* U+00bc46: */ + RTUNI_ALPHA, /* U+00bc47: */ + RTUNI_ALPHA, /* U+00bc48: */ + RTUNI_ALPHA, /* U+00bc49: */ + RTUNI_ALPHA, /* U+00bc4a: */ + RTUNI_ALPHA, /* U+00bc4b: */ + RTUNI_ALPHA, /* U+00bc4c: */ + RTUNI_ALPHA, /* U+00bc4d: */ + RTUNI_ALPHA, /* U+00bc4e: */ + RTUNI_ALPHA, /* U+00bc4f: */ + RTUNI_ALPHA, /* U+00bc50: */ + RTUNI_ALPHA, /* U+00bc51: */ + RTUNI_ALPHA, /* U+00bc52: */ + RTUNI_ALPHA, /* U+00bc53: */ + RTUNI_ALPHA, /* U+00bc54: */ + RTUNI_ALPHA, /* U+00bc55: */ + RTUNI_ALPHA, /* U+00bc56: */ + RTUNI_ALPHA, /* U+00bc57: */ + RTUNI_ALPHA, /* U+00bc58: */ + RTUNI_ALPHA, /* U+00bc59: */ + RTUNI_ALPHA, /* U+00bc5a: */ + RTUNI_ALPHA, /* U+00bc5b: */ + RTUNI_ALPHA, /* U+00bc5c: */ + RTUNI_ALPHA, /* U+00bc5d: */ + RTUNI_ALPHA, /* U+00bc5e: */ + RTUNI_ALPHA, /* U+00bc5f: */ + RTUNI_ALPHA, /* U+00bc60: */ + RTUNI_ALPHA, /* U+00bc61: */ + RTUNI_ALPHA, /* U+00bc62: */ + RTUNI_ALPHA, /* U+00bc63: */ + RTUNI_ALPHA, /* U+00bc64: */ + RTUNI_ALPHA, /* U+00bc65: */ + RTUNI_ALPHA, /* U+00bc66: */ + RTUNI_ALPHA, /* U+00bc67: */ + RTUNI_ALPHA, /* U+00bc68: */ + RTUNI_ALPHA, /* U+00bc69: */ + RTUNI_ALPHA, /* U+00bc6a: */ + RTUNI_ALPHA, /* U+00bc6b: */ + RTUNI_ALPHA, /* U+00bc6c: */ + RTUNI_ALPHA, /* U+00bc6d: */ + RTUNI_ALPHA, /* U+00bc6e: */ + RTUNI_ALPHA, /* U+00bc6f: */ + RTUNI_ALPHA, /* U+00bc70: */ + RTUNI_ALPHA, /* U+00bc71: */ + RTUNI_ALPHA, /* U+00bc72: */ + RTUNI_ALPHA, /* U+00bc73: */ + RTUNI_ALPHA, /* U+00bc74: */ + RTUNI_ALPHA, /* U+00bc75: */ + RTUNI_ALPHA, /* U+00bc76: */ + RTUNI_ALPHA, /* U+00bc77: */ + RTUNI_ALPHA, /* U+00bc78: */ + RTUNI_ALPHA, /* U+00bc79: */ + RTUNI_ALPHA, /* U+00bc7a: */ + RTUNI_ALPHA, /* U+00bc7b: */ + RTUNI_ALPHA, /* U+00bc7c: */ + RTUNI_ALPHA, /* U+00bc7d: */ + RTUNI_ALPHA, /* U+00bc7e: */ + RTUNI_ALPHA, /* U+00bc7f: */ + RTUNI_ALPHA, /* U+00bc80: */ + RTUNI_ALPHA, /* U+00bc81: */ + RTUNI_ALPHA, /* U+00bc82: */ + RTUNI_ALPHA, /* U+00bc83: */ + RTUNI_ALPHA, /* U+00bc84: */ + RTUNI_ALPHA, /* U+00bc85: */ + RTUNI_ALPHA, /* U+00bc86: */ + RTUNI_ALPHA, /* U+00bc87: */ + RTUNI_ALPHA, /* U+00bc88: */ + RTUNI_ALPHA, /* U+00bc89: */ + RTUNI_ALPHA, /* U+00bc8a: */ + RTUNI_ALPHA, /* U+00bc8b: */ + RTUNI_ALPHA, /* U+00bc8c: */ + RTUNI_ALPHA, /* U+00bc8d: */ + RTUNI_ALPHA, /* U+00bc8e: */ + RTUNI_ALPHA, /* U+00bc8f: */ + RTUNI_ALPHA, /* U+00bc90: */ + RTUNI_ALPHA, /* U+00bc91: */ + RTUNI_ALPHA, /* U+00bc92: */ + RTUNI_ALPHA, /* U+00bc93: */ + RTUNI_ALPHA, /* U+00bc94: */ + RTUNI_ALPHA, /* U+00bc95: */ + RTUNI_ALPHA, /* U+00bc96: */ + RTUNI_ALPHA, /* U+00bc97: */ + RTUNI_ALPHA, /* U+00bc98: */ + RTUNI_ALPHA, /* U+00bc99: */ + RTUNI_ALPHA, /* U+00bc9a: */ + RTUNI_ALPHA, /* U+00bc9b: */ + RTUNI_ALPHA, /* U+00bc9c: */ + RTUNI_ALPHA, /* U+00bc9d: */ + RTUNI_ALPHA, /* U+00bc9e: */ + RTUNI_ALPHA, /* U+00bc9f: */ + RTUNI_ALPHA, /* U+00bca0: */ + RTUNI_ALPHA, /* U+00bca1: */ + RTUNI_ALPHA, /* U+00bca2: */ + RTUNI_ALPHA, /* U+00bca3: */ + RTUNI_ALPHA, /* U+00bca4: */ + RTUNI_ALPHA, /* U+00bca5: */ + RTUNI_ALPHA, /* U+00bca6: */ + RTUNI_ALPHA, /* U+00bca7: */ + RTUNI_ALPHA, /* U+00bca8: */ + RTUNI_ALPHA, /* U+00bca9: */ + RTUNI_ALPHA, /* U+00bcaa: */ + RTUNI_ALPHA, /* U+00bcab: */ + RTUNI_ALPHA, /* U+00bcac: */ + RTUNI_ALPHA, /* U+00bcad: */ + RTUNI_ALPHA, /* U+00bcae: */ + RTUNI_ALPHA, /* U+00bcaf: */ + RTUNI_ALPHA, /* U+00bcb0: */ + RTUNI_ALPHA, /* U+00bcb1: */ + RTUNI_ALPHA, /* U+00bcb2: */ + RTUNI_ALPHA, /* U+00bcb3: */ + RTUNI_ALPHA, /* U+00bcb4: */ + RTUNI_ALPHA, /* U+00bcb5: */ + RTUNI_ALPHA, /* U+00bcb6: */ + RTUNI_ALPHA, /* U+00bcb7: */ + RTUNI_ALPHA, /* U+00bcb8: */ + RTUNI_ALPHA, /* U+00bcb9: */ + RTUNI_ALPHA, /* U+00bcba: */ + RTUNI_ALPHA, /* U+00bcbb: */ + RTUNI_ALPHA, /* U+00bcbc: */ + RTUNI_ALPHA, /* U+00bcbd: */ + RTUNI_ALPHA, /* U+00bcbe: */ + RTUNI_ALPHA, /* U+00bcbf: */ + RTUNI_ALPHA, /* U+00bcc0: */ + RTUNI_ALPHA, /* U+00bcc1: */ + RTUNI_ALPHA, /* U+00bcc2: */ + RTUNI_ALPHA, /* U+00bcc3: */ + RTUNI_ALPHA, /* U+00bcc4: */ + RTUNI_ALPHA, /* U+00bcc5: */ + RTUNI_ALPHA, /* U+00bcc6: */ + RTUNI_ALPHA, /* U+00bcc7: */ + RTUNI_ALPHA, /* U+00bcc8: */ + RTUNI_ALPHA, /* U+00bcc9: */ + RTUNI_ALPHA, /* U+00bcca: */ + RTUNI_ALPHA, /* U+00bccb: */ + RTUNI_ALPHA, /* U+00bccc: */ + RTUNI_ALPHA, /* U+00bccd: */ + RTUNI_ALPHA, /* U+00bcce: */ + RTUNI_ALPHA, /* U+00bccf: */ + RTUNI_ALPHA, /* U+00bcd0: */ + RTUNI_ALPHA, /* U+00bcd1: */ + RTUNI_ALPHA, /* U+00bcd2: */ + RTUNI_ALPHA, /* U+00bcd3: */ + RTUNI_ALPHA, /* U+00bcd4: */ + RTUNI_ALPHA, /* U+00bcd5: */ + RTUNI_ALPHA, /* U+00bcd6: */ + RTUNI_ALPHA, /* U+00bcd7: */ + RTUNI_ALPHA, /* U+00bcd8: */ + RTUNI_ALPHA, /* U+00bcd9: */ + RTUNI_ALPHA, /* U+00bcda: */ + RTUNI_ALPHA, /* U+00bcdb: */ + RTUNI_ALPHA, /* U+00bcdc: */ + RTUNI_ALPHA, /* U+00bcdd: */ + RTUNI_ALPHA, /* U+00bcde: */ + RTUNI_ALPHA, /* U+00bcdf: */ + RTUNI_ALPHA, /* U+00bce0: */ + RTUNI_ALPHA, /* U+00bce1: */ + RTUNI_ALPHA, /* U+00bce2: */ + RTUNI_ALPHA, /* U+00bce3: */ + RTUNI_ALPHA, /* U+00bce4: */ + RTUNI_ALPHA, /* U+00bce5: */ + RTUNI_ALPHA, /* U+00bce6: */ + RTUNI_ALPHA, /* U+00bce7: */ + RTUNI_ALPHA, /* U+00bce8: */ + RTUNI_ALPHA, /* U+00bce9: */ + RTUNI_ALPHA, /* U+00bcea: */ + RTUNI_ALPHA, /* U+00bceb: */ + RTUNI_ALPHA, /* U+00bcec: */ + RTUNI_ALPHA, /* U+00bced: */ + RTUNI_ALPHA, /* U+00bcee: */ + RTUNI_ALPHA, /* U+00bcef: */ + RTUNI_ALPHA, /* U+00bcf0: */ + RTUNI_ALPHA, /* U+00bcf1: */ + RTUNI_ALPHA, /* U+00bcf2: */ + RTUNI_ALPHA, /* U+00bcf3: */ + RTUNI_ALPHA, /* U+00bcf4: */ + RTUNI_ALPHA, /* U+00bcf5: */ + RTUNI_ALPHA, /* U+00bcf6: */ + RTUNI_ALPHA, /* U+00bcf7: */ + RTUNI_ALPHA, /* U+00bcf8: */ + RTUNI_ALPHA, /* U+00bcf9: */ + RTUNI_ALPHA, /* U+00bcfa: */ + RTUNI_ALPHA, /* U+00bcfb: */ + RTUNI_ALPHA, /* U+00bcfc: */ + RTUNI_ALPHA, /* U+00bcfd: */ + RTUNI_ALPHA, /* U+00bcfe: */ + RTUNI_ALPHA, /* U+00bcff: */ + RTUNI_ALPHA, /* U+00bd00: */ + RTUNI_ALPHA, /* U+00bd01: */ + RTUNI_ALPHA, /* U+00bd02: */ + RTUNI_ALPHA, /* U+00bd03: */ + RTUNI_ALPHA, /* U+00bd04: */ + RTUNI_ALPHA, /* U+00bd05: */ + RTUNI_ALPHA, /* U+00bd06: */ + RTUNI_ALPHA, /* U+00bd07: */ + RTUNI_ALPHA, /* U+00bd08: */ + RTUNI_ALPHA, /* U+00bd09: */ + RTUNI_ALPHA, /* U+00bd0a: */ + RTUNI_ALPHA, /* U+00bd0b: */ + RTUNI_ALPHA, /* U+00bd0c: */ + RTUNI_ALPHA, /* U+00bd0d: */ + RTUNI_ALPHA, /* U+00bd0e: */ + RTUNI_ALPHA, /* U+00bd0f: */ + RTUNI_ALPHA, /* U+00bd10: */ + RTUNI_ALPHA, /* U+00bd11: */ + RTUNI_ALPHA, /* U+00bd12: */ + RTUNI_ALPHA, /* U+00bd13: */ + RTUNI_ALPHA, /* U+00bd14: */ + RTUNI_ALPHA, /* U+00bd15: */ + RTUNI_ALPHA, /* U+00bd16: */ + RTUNI_ALPHA, /* U+00bd17: */ + RTUNI_ALPHA, /* U+00bd18: */ + RTUNI_ALPHA, /* U+00bd19: */ + RTUNI_ALPHA, /* U+00bd1a: */ + RTUNI_ALPHA, /* U+00bd1b: */ + RTUNI_ALPHA, /* U+00bd1c: */ + RTUNI_ALPHA, /* U+00bd1d: */ + RTUNI_ALPHA, /* U+00bd1e: */ + RTUNI_ALPHA, /* U+00bd1f: */ + RTUNI_ALPHA, /* U+00bd20: */ + RTUNI_ALPHA, /* U+00bd21: */ + RTUNI_ALPHA, /* U+00bd22: */ + RTUNI_ALPHA, /* U+00bd23: */ + RTUNI_ALPHA, /* U+00bd24: */ + RTUNI_ALPHA, /* U+00bd25: */ + RTUNI_ALPHA, /* U+00bd26: */ + RTUNI_ALPHA, /* U+00bd27: */ + RTUNI_ALPHA, /* U+00bd28: */ + RTUNI_ALPHA, /* U+00bd29: */ + RTUNI_ALPHA, /* U+00bd2a: */ + RTUNI_ALPHA, /* U+00bd2b: */ + RTUNI_ALPHA, /* U+00bd2c: */ + RTUNI_ALPHA, /* U+00bd2d: */ + RTUNI_ALPHA, /* U+00bd2e: */ + RTUNI_ALPHA, /* U+00bd2f: */ + RTUNI_ALPHA, /* U+00bd30: */ + RTUNI_ALPHA, /* U+00bd31: */ + RTUNI_ALPHA, /* U+00bd32: */ + RTUNI_ALPHA, /* U+00bd33: */ + RTUNI_ALPHA, /* U+00bd34: */ + RTUNI_ALPHA, /* U+00bd35: */ + RTUNI_ALPHA, /* U+00bd36: */ + RTUNI_ALPHA, /* U+00bd37: */ + RTUNI_ALPHA, /* U+00bd38: */ + RTUNI_ALPHA, /* U+00bd39: */ + RTUNI_ALPHA, /* U+00bd3a: */ + RTUNI_ALPHA, /* U+00bd3b: */ + RTUNI_ALPHA, /* U+00bd3c: */ + RTUNI_ALPHA, /* U+00bd3d: */ + RTUNI_ALPHA, /* U+00bd3e: */ + RTUNI_ALPHA, /* U+00bd3f: */ + RTUNI_ALPHA, /* U+00bd40: */ + RTUNI_ALPHA, /* U+00bd41: */ + RTUNI_ALPHA, /* U+00bd42: */ + RTUNI_ALPHA, /* U+00bd43: */ + RTUNI_ALPHA, /* U+00bd44: */ + RTUNI_ALPHA, /* U+00bd45: */ + RTUNI_ALPHA, /* U+00bd46: */ + RTUNI_ALPHA, /* U+00bd47: */ + RTUNI_ALPHA, /* U+00bd48: */ + RTUNI_ALPHA, /* U+00bd49: */ + RTUNI_ALPHA, /* U+00bd4a: */ + RTUNI_ALPHA, /* U+00bd4b: */ + RTUNI_ALPHA, /* U+00bd4c: */ + RTUNI_ALPHA, /* U+00bd4d: */ + RTUNI_ALPHA, /* U+00bd4e: */ + RTUNI_ALPHA, /* U+00bd4f: */ + RTUNI_ALPHA, /* U+00bd50: */ + RTUNI_ALPHA, /* U+00bd51: */ + RTUNI_ALPHA, /* U+00bd52: */ + RTUNI_ALPHA, /* U+00bd53: */ + RTUNI_ALPHA, /* U+00bd54: */ + RTUNI_ALPHA, /* U+00bd55: */ + RTUNI_ALPHA, /* U+00bd56: */ + RTUNI_ALPHA, /* U+00bd57: */ + RTUNI_ALPHA, /* U+00bd58: */ + RTUNI_ALPHA, /* U+00bd59: */ + RTUNI_ALPHA, /* U+00bd5a: */ + RTUNI_ALPHA, /* U+00bd5b: */ + RTUNI_ALPHA, /* U+00bd5c: */ + RTUNI_ALPHA, /* U+00bd5d: */ + RTUNI_ALPHA, /* U+00bd5e: */ + RTUNI_ALPHA, /* U+00bd5f: */ + RTUNI_ALPHA, /* U+00bd60: */ + RTUNI_ALPHA, /* U+00bd61: */ + RTUNI_ALPHA, /* U+00bd62: */ + RTUNI_ALPHA, /* U+00bd63: */ + RTUNI_ALPHA, /* U+00bd64: */ + RTUNI_ALPHA, /* U+00bd65: */ + RTUNI_ALPHA, /* U+00bd66: */ + RTUNI_ALPHA, /* U+00bd67: */ + RTUNI_ALPHA, /* U+00bd68: */ + RTUNI_ALPHA, /* U+00bd69: */ + RTUNI_ALPHA, /* U+00bd6a: */ + RTUNI_ALPHA, /* U+00bd6b: */ + RTUNI_ALPHA, /* U+00bd6c: */ + RTUNI_ALPHA, /* U+00bd6d: */ + RTUNI_ALPHA, /* U+00bd6e: */ + RTUNI_ALPHA, /* U+00bd6f: */ + RTUNI_ALPHA, /* U+00bd70: */ + RTUNI_ALPHA, /* U+00bd71: */ + RTUNI_ALPHA, /* U+00bd72: */ + RTUNI_ALPHA, /* U+00bd73: */ + RTUNI_ALPHA, /* U+00bd74: */ + RTUNI_ALPHA, /* U+00bd75: */ + RTUNI_ALPHA, /* U+00bd76: */ + RTUNI_ALPHA, /* U+00bd77: */ + RTUNI_ALPHA, /* U+00bd78: */ + RTUNI_ALPHA, /* U+00bd79: */ + RTUNI_ALPHA, /* U+00bd7a: */ + RTUNI_ALPHA, /* U+00bd7b: */ + RTUNI_ALPHA, /* U+00bd7c: */ + RTUNI_ALPHA, /* U+00bd7d: */ + RTUNI_ALPHA, /* U+00bd7e: */ + RTUNI_ALPHA, /* U+00bd7f: */ + RTUNI_ALPHA, /* U+00bd80: */ + RTUNI_ALPHA, /* U+00bd81: */ + RTUNI_ALPHA, /* U+00bd82: */ + RTUNI_ALPHA, /* U+00bd83: */ + RTUNI_ALPHA, /* U+00bd84: */ + RTUNI_ALPHA, /* U+00bd85: */ + RTUNI_ALPHA, /* U+00bd86: */ + RTUNI_ALPHA, /* U+00bd87: */ + RTUNI_ALPHA, /* U+00bd88: */ + RTUNI_ALPHA, /* U+00bd89: */ + RTUNI_ALPHA, /* U+00bd8a: */ + RTUNI_ALPHA, /* U+00bd8b: */ + RTUNI_ALPHA, /* U+00bd8c: */ + RTUNI_ALPHA, /* U+00bd8d: */ + RTUNI_ALPHA, /* U+00bd8e: */ + RTUNI_ALPHA, /* U+00bd8f: */ + RTUNI_ALPHA, /* U+00bd90: */ + RTUNI_ALPHA, /* U+00bd91: */ + RTUNI_ALPHA, /* U+00bd92: */ + RTUNI_ALPHA, /* U+00bd93: */ + RTUNI_ALPHA, /* U+00bd94: */ + RTUNI_ALPHA, /* U+00bd95: */ + RTUNI_ALPHA, /* U+00bd96: */ + RTUNI_ALPHA, /* U+00bd97: */ + RTUNI_ALPHA, /* U+00bd98: */ + RTUNI_ALPHA, /* U+00bd99: */ + RTUNI_ALPHA, /* U+00bd9a: */ + RTUNI_ALPHA, /* U+00bd9b: */ + RTUNI_ALPHA, /* U+00bd9c: */ + RTUNI_ALPHA, /* U+00bd9d: */ + RTUNI_ALPHA, /* U+00bd9e: */ + RTUNI_ALPHA, /* U+00bd9f: */ + RTUNI_ALPHA, /* U+00bda0: */ + RTUNI_ALPHA, /* U+00bda1: */ + RTUNI_ALPHA, /* U+00bda2: */ + RTUNI_ALPHA, /* U+00bda3: */ + RTUNI_ALPHA, /* U+00bda4: */ + RTUNI_ALPHA, /* U+00bda5: */ + RTUNI_ALPHA, /* U+00bda6: */ + RTUNI_ALPHA, /* U+00bda7: */ + RTUNI_ALPHA, /* U+00bda8: */ + RTUNI_ALPHA, /* U+00bda9: */ + RTUNI_ALPHA, /* U+00bdaa: */ + RTUNI_ALPHA, /* U+00bdab: */ + RTUNI_ALPHA, /* U+00bdac: */ + RTUNI_ALPHA, /* U+00bdad: */ + RTUNI_ALPHA, /* U+00bdae: */ + RTUNI_ALPHA, /* U+00bdaf: */ + RTUNI_ALPHA, /* U+00bdb0: */ + RTUNI_ALPHA, /* U+00bdb1: */ + RTUNI_ALPHA, /* U+00bdb2: */ + RTUNI_ALPHA, /* U+00bdb3: */ + RTUNI_ALPHA, /* U+00bdb4: */ + RTUNI_ALPHA, /* U+00bdb5: */ + RTUNI_ALPHA, /* U+00bdb6: */ + RTUNI_ALPHA, /* U+00bdb7: */ + RTUNI_ALPHA, /* U+00bdb8: */ + RTUNI_ALPHA, /* U+00bdb9: */ + RTUNI_ALPHA, /* U+00bdba: */ + RTUNI_ALPHA, /* U+00bdbb: */ + RTUNI_ALPHA, /* U+00bdbc: */ + RTUNI_ALPHA, /* U+00bdbd: */ + RTUNI_ALPHA, /* U+00bdbe: */ + RTUNI_ALPHA, /* U+00bdbf: */ + RTUNI_ALPHA, /* U+00bdc0: */ + RTUNI_ALPHA, /* U+00bdc1: */ + RTUNI_ALPHA, /* U+00bdc2: */ + RTUNI_ALPHA, /* U+00bdc3: */ + RTUNI_ALPHA, /* U+00bdc4: */ + RTUNI_ALPHA, /* U+00bdc5: */ + RTUNI_ALPHA, /* U+00bdc6: */ + RTUNI_ALPHA, /* U+00bdc7: */ + RTUNI_ALPHA, /* U+00bdc8: */ + RTUNI_ALPHA, /* U+00bdc9: */ + RTUNI_ALPHA, /* U+00bdca: */ + RTUNI_ALPHA, /* U+00bdcb: */ + RTUNI_ALPHA, /* U+00bdcc: */ + RTUNI_ALPHA, /* U+00bdcd: */ + RTUNI_ALPHA, /* U+00bdce: */ + RTUNI_ALPHA, /* U+00bdcf: */ + RTUNI_ALPHA, /* U+00bdd0: */ + RTUNI_ALPHA, /* U+00bdd1: */ + RTUNI_ALPHA, /* U+00bdd2: */ + RTUNI_ALPHA, /* U+00bdd3: */ + RTUNI_ALPHA, /* U+00bdd4: */ + RTUNI_ALPHA, /* U+00bdd5: */ + RTUNI_ALPHA, /* U+00bdd6: */ + RTUNI_ALPHA, /* U+00bdd7: */ + RTUNI_ALPHA, /* U+00bdd8: */ + RTUNI_ALPHA, /* U+00bdd9: */ + RTUNI_ALPHA, /* U+00bdda: */ + RTUNI_ALPHA, /* U+00bddb: */ + RTUNI_ALPHA, /* U+00bddc: */ + RTUNI_ALPHA, /* U+00bddd: */ + RTUNI_ALPHA, /* U+00bdde: */ + RTUNI_ALPHA, /* U+00bddf: */ + RTUNI_ALPHA, /* U+00bde0: */ + RTUNI_ALPHA, /* U+00bde1: */ + RTUNI_ALPHA, /* U+00bde2: */ + RTUNI_ALPHA, /* U+00bde3: */ + RTUNI_ALPHA, /* U+00bde4: */ + RTUNI_ALPHA, /* U+00bde5: */ + RTUNI_ALPHA, /* U+00bde6: */ + RTUNI_ALPHA, /* U+00bde7: */ + RTUNI_ALPHA, /* U+00bde8: */ + RTUNI_ALPHA, /* U+00bde9: */ + RTUNI_ALPHA, /* U+00bdea: */ + RTUNI_ALPHA, /* U+00bdeb: */ + RTUNI_ALPHA, /* U+00bdec: */ + RTUNI_ALPHA, /* U+00bded: */ + RTUNI_ALPHA, /* U+00bdee: */ + RTUNI_ALPHA, /* U+00bdef: */ + RTUNI_ALPHA, /* U+00bdf0: */ + RTUNI_ALPHA, /* U+00bdf1: */ + RTUNI_ALPHA, /* U+00bdf2: */ + RTUNI_ALPHA, /* U+00bdf3: */ + RTUNI_ALPHA, /* U+00bdf4: */ + RTUNI_ALPHA, /* U+00bdf5: */ + RTUNI_ALPHA, /* U+00bdf6: */ + RTUNI_ALPHA, /* U+00bdf7: */ + RTUNI_ALPHA, /* U+00bdf8: */ + RTUNI_ALPHA, /* U+00bdf9: */ + RTUNI_ALPHA, /* U+00bdfa: */ + RTUNI_ALPHA, /* U+00bdfb: */ + RTUNI_ALPHA, /* U+00bdfc: */ + RTUNI_ALPHA, /* U+00bdfd: */ + RTUNI_ALPHA, /* U+00bdfe: */ + RTUNI_ALPHA, /* U+00bdff: */ + RTUNI_ALPHA, /* U+00be00: */ + RTUNI_ALPHA, /* U+00be01: */ + RTUNI_ALPHA, /* U+00be02: */ + RTUNI_ALPHA, /* U+00be03: */ + RTUNI_ALPHA, /* U+00be04: */ + RTUNI_ALPHA, /* U+00be05: */ + RTUNI_ALPHA, /* U+00be06: */ + RTUNI_ALPHA, /* U+00be07: */ + RTUNI_ALPHA, /* U+00be08: */ + RTUNI_ALPHA, /* U+00be09: */ + RTUNI_ALPHA, /* U+00be0a: */ + RTUNI_ALPHA, /* U+00be0b: */ + RTUNI_ALPHA, /* U+00be0c: */ + RTUNI_ALPHA, /* U+00be0d: */ + RTUNI_ALPHA, /* U+00be0e: */ + RTUNI_ALPHA, /* U+00be0f: */ + RTUNI_ALPHA, /* U+00be10: */ + RTUNI_ALPHA, /* U+00be11: */ + RTUNI_ALPHA, /* U+00be12: */ + RTUNI_ALPHA, /* U+00be13: */ + RTUNI_ALPHA, /* U+00be14: */ + RTUNI_ALPHA, /* U+00be15: */ + RTUNI_ALPHA, /* U+00be16: */ + RTUNI_ALPHA, /* U+00be17: */ + RTUNI_ALPHA, /* U+00be18: */ + RTUNI_ALPHA, /* U+00be19: */ + RTUNI_ALPHA, /* U+00be1a: */ + RTUNI_ALPHA, /* U+00be1b: */ + RTUNI_ALPHA, /* U+00be1c: */ + RTUNI_ALPHA, /* U+00be1d: */ + RTUNI_ALPHA, /* U+00be1e: */ + RTUNI_ALPHA, /* U+00be1f: */ + RTUNI_ALPHA, /* U+00be20: */ + RTUNI_ALPHA, /* U+00be21: */ + RTUNI_ALPHA, /* U+00be22: */ + RTUNI_ALPHA, /* U+00be23: */ + RTUNI_ALPHA, /* U+00be24: */ + RTUNI_ALPHA, /* U+00be25: */ + RTUNI_ALPHA, /* U+00be26: */ + RTUNI_ALPHA, /* U+00be27: */ + RTUNI_ALPHA, /* U+00be28: */ + RTUNI_ALPHA, /* U+00be29: */ + RTUNI_ALPHA, /* U+00be2a: */ + RTUNI_ALPHA, /* U+00be2b: */ + RTUNI_ALPHA, /* U+00be2c: */ + RTUNI_ALPHA, /* U+00be2d: */ + RTUNI_ALPHA, /* U+00be2e: */ + RTUNI_ALPHA, /* U+00be2f: */ + RTUNI_ALPHA, /* U+00be30: */ + RTUNI_ALPHA, /* U+00be31: */ + RTUNI_ALPHA, /* U+00be32: */ + RTUNI_ALPHA, /* U+00be33: */ + RTUNI_ALPHA, /* U+00be34: */ + RTUNI_ALPHA, /* U+00be35: */ + RTUNI_ALPHA, /* U+00be36: */ + RTUNI_ALPHA, /* U+00be37: */ + RTUNI_ALPHA, /* U+00be38: */ + RTUNI_ALPHA, /* U+00be39: */ + RTUNI_ALPHA, /* U+00be3a: */ + RTUNI_ALPHA, /* U+00be3b: */ + RTUNI_ALPHA, /* U+00be3c: */ + RTUNI_ALPHA, /* U+00be3d: */ + RTUNI_ALPHA, /* U+00be3e: */ + RTUNI_ALPHA, /* U+00be3f: */ + RTUNI_ALPHA, /* U+00be40: */ + RTUNI_ALPHA, /* U+00be41: */ + RTUNI_ALPHA, /* U+00be42: */ + RTUNI_ALPHA, /* U+00be43: */ + RTUNI_ALPHA, /* U+00be44: */ + RTUNI_ALPHA, /* U+00be45: */ + RTUNI_ALPHA, /* U+00be46: */ + RTUNI_ALPHA, /* U+00be47: */ + RTUNI_ALPHA, /* U+00be48: */ + RTUNI_ALPHA, /* U+00be49: */ + RTUNI_ALPHA, /* U+00be4a: */ + RTUNI_ALPHA, /* U+00be4b: */ + RTUNI_ALPHA, /* U+00be4c: */ + RTUNI_ALPHA, /* U+00be4d: */ + RTUNI_ALPHA, /* U+00be4e: */ + RTUNI_ALPHA, /* U+00be4f: */ + RTUNI_ALPHA, /* U+00be50: */ + RTUNI_ALPHA, /* U+00be51: */ + RTUNI_ALPHA, /* U+00be52: */ + RTUNI_ALPHA, /* U+00be53: */ + RTUNI_ALPHA, /* U+00be54: */ + RTUNI_ALPHA, /* U+00be55: */ + RTUNI_ALPHA, /* U+00be56: */ + RTUNI_ALPHA, /* U+00be57: */ + RTUNI_ALPHA, /* U+00be58: */ + RTUNI_ALPHA, /* U+00be59: */ + RTUNI_ALPHA, /* U+00be5a: */ + RTUNI_ALPHA, /* U+00be5b: */ + RTUNI_ALPHA, /* U+00be5c: */ + RTUNI_ALPHA, /* U+00be5d: */ + RTUNI_ALPHA, /* U+00be5e: */ + RTUNI_ALPHA, /* U+00be5f: */ + RTUNI_ALPHA, /* U+00be60: */ + RTUNI_ALPHA, /* U+00be61: */ + RTUNI_ALPHA, /* U+00be62: */ + RTUNI_ALPHA, /* U+00be63: */ + RTUNI_ALPHA, /* U+00be64: */ + RTUNI_ALPHA, /* U+00be65: */ + RTUNI_ALPHA, /* U+00be66: */ + RTUNI_ALPHA, /* U+00be67: */ + RTUNI_ALPHA, /* U+00be68: */ + RTUNI_ALPHA, /* U+00be69: */ + RTUNI_ALPHA, /* U+00be6a: */ + RTUNI_ALPHA, /* U+00be6b: */ + RTUNI_ALPHA, /* U+00be6c: */ + RTUNI_ALPHA, /* U+00be6d: */ + RTUNI_ALPHA, /* U+00be6e: */ + RTUNI_ALPHA, /* U+00be6f: */ + RTUNI_ALPHA, /* U+00be70: */ + RTUNI_ALPHA, /* U+00be71: */ + RTUNI_ALPHA, /* U+00be72: */ + RTUNI_ALPHA, /* U+00be73: */ + RTUNI_ALPHA, /* U+00be74: */ + RTUNI_ALPHA, /* U+00be75: */ + RTUNI_ALPHA, /* U+00be76: */ + RTUNI_ALPHA, /* U+00be77: */ + RTUNI_ALPHA, /* U+00be78: */ + RTUNI_ALPHA, /* U+00be79: */ + RTUNI_ALPHA, /* U+00be7a: */ + RTUNI_ALPHA, /* U+00be7b: */ + RTUNI_ALPHA, /* U+00be7c: */ + RTUNI_ALPHA, /* U+00be7d: */ + RTUNI_ALPHA, /* U+00be7e: */ + RTUNI_ALPHA, /* U+00be7f: */ + RTUNI_ALPHA, /* U+00be80: */ + RTUNI_ALPHA, /* U+00be81: */ + RTUNI_ALPHA, /* U+00be82: */ + RTUNI_ALPHA, /* U+00be83: */ + RTUNI_ALPHA, /* U+00be84: */ + RTUNI_ALPHA, /* U+00be85: */ + RTUNI_ALPHA, /* U+00be86: */ + RTUNI_ALPHA, /* U+00be87: */ + RTUNI_ALPHA, /* U+00be88: */ + RTUNI_ALPHA, /* U+00be89: */ + RTUNI_ALPHA, /* U+00be8a: */ + RTUNI_ALPHA, /* U+00be8b: */ + RTUNI_ALPHA, /* U+00be8c: */ + RTUNI_ALPHA, /* U+00be8d: */ + RTUNI_ALPHA, /* U+00be8e: */ + RTUNI_ALPHA, /* U+00be8f: */ + RTUNI_ALPHA, /* U+00be90: */ + RTUNI_ALPHA, /* U+00be91: */ + RTUNI_ALPHA, /* U+00be92: */ + RTUNI_ALPHA, /* U+00be93: */ + RTUNI_ALPHA, /* U+00be94: */ + RTUNI_ALPHA, /* U+00be95: */ + RTUNI_ALPHA, /* U+00be96: */ + RTUNI_ALPHA, /* U+00be97: */ + RTUNI_ALPHA, /* U+00be98: */ + RTUNI_ALPHA, /* U+00be99: */ + RTUNI_ALPHA, /* U+00be9a: */ + RTUNI_ALPHA, /* U+00be9b: */ + RTUNI_ALPHA, /* U+00be9c: */ + RTUNI_ALPHA, /* U+00be9d: */ + RTUNI_ALPHA, /* U+00be9e: */ + RTUNI_ALPHA, /* U+00be9f: */ + RTUNI_ALPHA, /* U+00bea0: */ + RTUNI_ALPHA, /* U+00bea1: */ + RTUNI_ALPHA, /* U+00bea2: */ + RTUNI_ALPHA, /* U+00bea3: */ + RTUNI_ALPHA, /* U+00bea4: */ + RTUNI_ALPHA, /* U+00bea5: */ + RTUNI_ALPHA, /* U+00bea6: */ + RTUNI_ALPHA, /* U+00bea7: */ + RTUNI_ALPHA, /* U+00bea8: */ + RTUNI_ALPHA, /* U+00bea9: */ + RTUNI_ALPHA, /* U+00beaa: */ + RTUNI_ALPHA, /* U+00beab: */ + RTUNI_ALPHA, /* U+00beac: */ + RTUNI_ALPHA, /* U+00bead: */ + RTUNI_ALPHA, /* U+00beae: */ + RTUNI_ALPHA, /* U+00beaf: */ + RTUNI_ALPHA, /* U+00beb0: */ + RTUNI_ALPHA, /* U+00beb1: */ + RTUNI_ALPHA, /* U+00beb2: */ + RTUNI_ALPHA, /* U+00beb3: */ + RTUNI_ALPHA, /* U+00beb4: */ + RTUNI_ALPHA, /* U+00beb5: */ + RTUNI_ALPHA, /* U+00beb6: */ + RTUNI_ALPHA, /* U+00beb7: */ + RTUNI_ALPHA, /* U+00beb8: */ + RTUNI_ALPHA, /* U+00beb9: */ + RTUNI_ALPHA, /* U+00beba: */ + RTUNI_ALPHA, /* U+00bebb: */ + RTUNI_ALPHA, /* U+00bebc: */ + RTUNI_ALPHA, /* U+00bebd: */ + RTUNI_ALPHA, /* U+00bebe: */ + RTUNI_ALPHA, /* U+00bebf: */ + RTUNI_ALPHA, /* U+00bec0: */ + RTUNI_ALPHA, /* U+00bec1: */ + RTUNI_ALPHA, /* U+00bec2: */ + RTUNI_ALPHA, /* U+00bec3: */ + RTUNI_ALPHA, /* U+00bec4: */ + RTUNI_ALPHA, /* U+00bec5: */ + RTUNI_ALPHA, /* U+00bec6: */ + RTUNI_ALPHA, /* U+00bec7: */ + RTUNI_ALPHA, /* U+00bec8: */ + RTUNI_ALPHA, /* U+00bec9: */ + RTUNI_ALPHA, /* U+00beca: */ + RTUNI_ALPHA, /* U+00becb: */ + RTUNI_ALPHA, /* U+00becc: */ + RTUNI_ALPHA, /* U+00becd: */ + RTUNI_ALPHA, /* U+00bece: */ + RTUNI_ALPHA, /* U+00becf: */ + RTUNI_ALPHA, /* U+00bed0: */ + RTUNI_ALPHA, /* U+00bed1: */ + RTUNI_ALPHA, /* U+00bed2: */ + RTUNI_ALPHA, /* U+00bed3: */ + RTUNI_ALPHA, /* U+00bed4: */ + RTUNI_ALPHA, /* U+00bed5: */ + RTUNI_ALPHA, /* U+00bed6: */ + RTUNI_ALPHA, /* U+00bed7: */ + RTUNI_ALPHA, /* U+00bed8: */ + RTUNI_ALPHA, /* U+00bed9: */ + RTUNI_ALPHA, /* U+00beda: */ + RTUNI_ALPHA, /* U+00bedb: */ + RTUNI_ALPHA, /* U+00bedc: */ + RTUNI_ALPHA, /* U+00bedd: */ + RTUNI_ALPHA, /* U+00bede: */ + RTUNI_ALPHA, /* U+00bedf: */ + RTUNI_ALPHA, /* U+00bee0: */ + RTUNI_ALPHA, /* U+00bee1: */ + RTUNI_ALPHA, /* U+00bee2: */ + RTUNI_ALPHA, /* U+00bee3: */ + RTUNI_ALPHA, /* U+00bee4: */ + RTUNI_ALPHA, /* U+00bee5: */ + RTUNI_ALPHA, /* U+00bee6: */ + RTUNI_ALPHA, /* U+00bee7: */ + RTUNI_ALPHA, /* U+00bee8: */ + RTUNI_ALPHA, /* U+00bee9: */ + RTUNI_ALPHA, /* U+00beea: */ + RTUNI_ALPHA, /* U+00beeb: */ + RTUNI_ALPHA, /* U+00beec: */ + RTUNI_ALPHA, /* U+00beed: */ + RTUNI_ALPHA, /* U+00beee: */ + RTUNI_ALPHA, /* U+00beef: */ + RTUNI_ALPHA, /* U+00bef0: */ + RTUNI_ALPHA, /* U+00bef1: */ + RTUNI_ALPHA, /* U+00bef2: */ + RTUNI_ALPHA, /* U+00bef3: */ + RTUNI_ALPHA, /* U+00bef4: */ + RTUNI_ALPHA, /* U+00bef5: */ + RTUNI_ALPHA, /* U+00bef6: */ + RTUNI_ALPHA, /* U+00bef7: */ + RTUNI_ALPHA, /* U+00bef8: */ + RTUNI_ALPHA, /* U+00bef9: */ + RTUNI_ALPHA, /* U+00befa: */ + RTUNI_ALPHA, /* U+00befb: */ + RTUNI_ALPHA, /* U+00befc: */ + RTUNI_ALPHA, /* U+00befd: */ + RTUNI_ALPHA, /* U+00befe: */ + RTUNI_ALPHA, /* U+00beff: */ + RTUNI_ALPHA, /* U+00bf00: */ + RTUNI_ALPHA, /* U+00bf01: */ + RTUNI_ALPHA, /* U+00bf02: */ + RTUNI_ALPHA, /* U+00bf03: */ + RTUNI_ALPHA, /* U+00bf04: */ + RTUNI_ALPHA, /* U+00bf05: */ + RTUNI_ALPHA, /* U+00bf06: */ + RTUNI_ALPHA, /* U+00bf07: */ + RTUNI_ALPHA, /* U+00bf08: */ + RTUNI_ALPHA, /* U+00bf09: */ + RTUNI_ALPHA, /* U+00bf0a: */ + RTUNI_ALPHA, /* U+00bf0b: */ + RTUNI_ALPHA, /* U+00bf0c: */ + RTUNI_ALPHA, /* U+00bf0d: */ + RTUNI_ALPHA, /* U+00bf0e: */ + RTUNI_ALPHA, /* U+00bf0f: */ + RTUNI_ALPHA, /* U+00bf10: */ + RTUNI_ALPHA, /* U+00bf11: */ + RTUNI_ALPHA, /* U+00bf12: */ + RTUNI_ALPHA, /* U+00bf13: */ + RTUNI_ALPHA, /* U+00bf14: */ + RTUNI_ALPHA, /* U+00bf15: */ + RTUNI_ALPHA, /* U+00bf16: */ + RTUNI_ALPHA, /* U+00bf17: */ + RTUNI_ALPHA, /* U+00bf18: */ + RTUNI_ALPHA, /* U+00bf19: */ + RTUNI_ALPHA, /* U+00bf1a: */ + RTUNI_ALPHA, /* U+00bf1b: */ + RTUNI_ALPHA, /* U+00bf1c: */ + RTUNI_ALPHA, /* U+00bf1d: */ + RTUNI_ALPHA, /* U+00bf1e: */ + RTUNI_ALPHA, /* U+00bf1f: */ + RTUNI_ALPHA, /* U+00bf20: */ + RTUNI_ALPHA, /* U+00bf21: */ + RTUNI_ALPHA, /* U+00bf22: */ + RTUNI_ALPHA, /* U+00bf23: */ + RTUNI_ALPHA, /* U+00bf24: */ + RTUNI_ALPHA, /* U+00bf25: */ + RTUNI_ALPHA, /* U+00bf26: */ + RTUNI_ALPHA, /* U+00bf27: */ + RTUNI_ALPHA, /* U+00bf28: */ + RTUNI_ALPHA, /* U+00bf29: */ + RTUNI_ALPHA, /* U+00bf2a: */ + RTUNI_ALPHA, /* U+00bf2b: */ + RTUNI_ALPHA, /* U+00bf2c: */ + RTUNI_ALPHA, /* U+00bf2d: */ + RTUNI_ALPHA, /* U+00bf2e: */ + RTUNI_ALPHA, /* U+00bf2f: */ + RTUNI_ALPHA, /* U+00bf30: */ + RTUNI_ALPHA, /* U+00bf31: */ + RTUNI_ALPHA, /* U+00bf32: */ + RTUNI_ALPHA, /* U+00bf33: */ + RTUNI_ALPHA, /* U+00bf34: */ + RTUNI_ALPHA, /* U+00bf35: */ + RTUNI_ALPHA, /* U+00bf36: */ + RTUNI_ALPHA, /* U+00bf37: */ + RTUNI_ALPHA, /* U+00bf38: */ + RTUNI_ALPHA, /* U+00bf39: */ + RTUNI_ALPHA, /* U+00bf3a: */ + RTUNI_ALPHA, /* U+00bf3b: */ + RTUNI_ALPHA, /* U+00bf3c: */ + RTUNI_ALPHA, /* U+00bf3d: */ + RTUNI_ALPHA, /* U+00bf3e: */ + RTUNI_ALPHA, /* U+00bf3f: */ + RTUNI_ALPHA, /* U+00bf40: */ + RTUNI_ALPHA, /* U+00bf41: */ + RTUNI_ALPHA, /* U+00bf42: */ + RTUNI_ALPHA, /* U+00bf43: */ + RTUNI_ALPHA, /* U+00bf44: */ + RTUNI_ALPHA, /* U+00bf45: */ + RTUNI_ALPHA, /* U+00bf46: */ + RTUNI_ALPHA, /* U+00bf47: */ + RTUNI_ALPHA, /* U+00bf48: */ + RTUNI_ALPHA, /* U+00bf49: */ + RTUNI_ALPHA, /* U+00bf4a: */ + RTUNI_ALPHA, /* U+00bf4b: */ + RTUNI_ALPHA, /* U+00bf4c: */ + RTUNI_ALPHA, /* U+00bf4d: */ + RTUNI_ALPHA, /* U+00bf4e: */ + RTUNI_ALPHA, /* U+00bf4f: */ + RTUNI_ALPHA, /* U+00bf50: */ + RTUNI_ALPHA, /* U+00bf51: */ + RTUNI_ALPHA, /* U+00bf52: */ + RTUNI_ALPHA, /* U+00bf53: */ + RTUNI_ALPHA, /* U+00bf54: */ + RTUNI_ALPHA, /* U+00bf55: */ + RTUNI_ALPHA, /* U+00bf56: */ + RTUNI_ALPHA, /* U+00bf57: */ + RTUNI_ALPHA, /* U+00bf58: */ + RTUNI_ALPHA, /* U+00bf59: */ + RTUNI_ALPHA, /* U+00bf5a: */ + RTUNI_ALPHA, /* U+00bf5b: */ + RTUNI_ALPHA, /* U+00bf5c: */ + RTUNI_ALPHA, /* U+00bf5d: */ + RTUNI_ALPHA, /* U+00bf5e: */ + RTUNI_ALPHA, /* U+00bf5f: */ + RTUNI_ALPHA, /* U+00bf60: */ + RTUNI_ALPHA, /* U+00bf61: */ + RTUNI_ALPHA, /* U+00bf62: */ + RTUNI_ALPHA, /* U+00bf63: */ + RTUNI_ALPHA, /* U+00bf64: */ + RTUNI_ALPHA, /* U+00bf65: */ + RTUNI_ALPHA, /* U+00bf66: */ + RTUNI_ALPHA, /* U+00bf67: */ + RTUNI_ALPHA, /* U+00bf68: */ + RTUNI_ALPHA, /* U+00bf69: */ + RTUNI_ALPHA, /* U+00bf6a: */ + RTUNI_ALPHA, /* U+00bf6b: */ + RTUNI_ALPHA, /* U+00bf6c: */ + RTUNI_ALPHA, /* U+00bf6d: */ + RTUNI_ALPHA, /* U+00bf6e: */ + RTUNI_ALPHA, /* U+00bf6f: */ + RTUNI_ALPHA, /* U+00bf70: */ + RTUNI_ALPHA, /* U+00bf71: */ + RTUNI_ALPHA, /* U+00bf72: */ + RTUNI_ALPHA, /* U+00bf73: */ + RTUNI_ALPHA, /* U+00bf74: */ + RTUNI_ALPHA, /* U+00bf75: */ + RTUNI_ALPHA, /* U+00bf76: */ + RTUNI_ALPHA, /* U+00bf77: */ + RTUNI_ALPHA, /* U+00bf78: */ + RTUNI_ALPHA, /* U+00bf79: */ + RTUNI_ALPHA, /* U+00bf7a: */ + RTUNI_ALPHA, /* U+00bf7b: */ + RTUNI_ALPHA, /* U+00bf7c: */ + RTUNI_ALPHA, /* U+00bf7d: */ + RTUNI_ALPHA, /* U+00bf7e: */ + RTUNI_ALPHA, /* U+00bf7f: */ + RTUNI_ALPHA, /* U+00bf80: */ + RTUNI_ALPHA, /* U+00bf81: */ + RTUNI_ALPHA, /* U+00bf82: */ + RTUNI_ALPHA, /* U+00bf83: */ + RTUNI_ALPHA, /* U+00bf84: */ + RTUNI_ALPHA, /* U+00bf85: */ + RTUNI_ALPHA, /* U+00bf86: */ + RTUNI_ALPHA, /* U+00bf87: */ + RTUNI_ALPHA, /* U+00bf88: */ + RTUNI_ALPHA, /* U+00bf89: */ + RTUNI_ALPHA, /* U+00bf8a: */ + RTUNI_ALPHA, /* U+00bf8b: */ + RTUNI_ALPHA, /* U+00bf8c: */ + RTUNI_ALPHA, /* U+00bf8d: */ + RTUNI_ALPHA, /* U+00bf8e: */ + RTUNI_ALPHA, /* U+00bf8f: */ + RTUNI_ALPHA, /* U+00bf90: */ + RTUNI_ALPHA, /* U+00bf91: */ + RTUNI_ALPHA, /* U+00bf92: */ + RTUNI_ALPHA, /* U+00bf93: */ + RTUNI_ALPHA, /* U+00bf94: */ + RTUNI_ALPHA, /* U+00bf95: */ + RTUNI_ALPHA, /* U+00bf96: */ + RTUNI_ALPHA, /* U+00bf97: */ + RTUNI_ALPHA, /* U+00bf98: */ + RTUNI_ALPHA, /* U+00bf99: */ + RTUNI_ALPHA, /* U+00bf9a: */ + RTUNI_ALPHA, /* U+00bf9b: */ + RTUNI_ALPHA, /* U+00bf9c: */ + RTUNI_ALPHA, /* U+00bf9d: */ + RTUNI_ALPHA, /* U+00bf9e: */ + RTUNI_ALPHA, /* U+00bf9f: */ + RTUNI_ALPHA, /* U+00bfa0: */ + RTUNI_ALPHA, /* U+00bfa1: */ + RTUNI_ALPHA, /* U+00bfa2: */ + RTUNI_ALPHA, /* U+00bfa3: */ + RTUNI_ALPHA, /* U+00bfa4: */ + RTUNI_ALPHA, /* U+00bfa5: */ + RTUNI_ALPHA, /* U+00bfa6: */ + RTUNI_ALPHA, /* U+00bfa7: */ + RTUNI_ALPHA, /* U+00bfa8: */ + RTUNI_ALPHA, /* U+00bfa9: */ + RTUNI_ALPHA, /* U+00bfaa: */ + RTUNI_ALPHA, /* U+00bfab: */ + RTUNI_ALPHA, /* U+00bfac: */ + RTUNI_ALPHA, /* U+00bfad: */ + RTUNI_ALPHA, /* U+00bfae: */ + RTUNI_ALPHA, /* U+00bfaf: */ + RTUNI_ALPHA, /* U+00bfb0: */ + RTUNI_ALPHA, /* U+00bfb1: */ + RTUNI_ALPHA, /* U+00bfb2: */ + RTUNI_ALPHA, /* U+00bfb3: */ + RTUNI_ALPHA, /* U+00bfb4: */ + RTUNI_ALPHA, /* U+00bfb5: */ + RTUNI_ALPHA, /* U+00bfb6: */ + RTUNI_ALPHA, /* U+00bfb7: */ + RTUNI_ALPHA, /* U+00bfb8: */ + RTUNI_ALPHA, /* U+00bfb9: */ + RTUNI_ALPHA, /* U+00bfba: */ + RTUNI_ALPHA, /* U+00bfbb: */ + RTUNI_ALPHA, /* U+00bfbc: */ + RTUNI_ALPHA, /* U+00bfbd: */ + RTUNI_ALPHA, /* U+00bfbe: */ + RTUNI_ALPHA, /* U+00bfbf: */ + RTUNI_ALPHA, /* U+00bfc0: */ + RTUNI_ALPHA, /* U+00bfc1: */ + RTUNI_ALPHA, /* U+00bfc2: */ + RTUNI_ALPHA, /* U+00bfc3: */ + RTUNI_ALPHA, /* U+00bfc4: */ + RTUNI_ALPHA, /* U+00bfc5: */ + RTUNI_ALPHA, /* U+00bfc6: */ + RTUNI_ALPHA, /* U+00bfc7: */ + RTUNI_ALPHA, /* U+00bfc8: */ + RTUNI_ALPHA, /* U+00bfc9: */ + RTUNI_ALPHA, /* U+00bfca: */ + RTUNI_ALPHA, /* U+00bfcb: */ + RTUNI_ALPHA, /* U+00bfcc: */ + RTUNI_ALPHA, /* U+00bfcd: */ + RTUNI_ALPHA, /* U+00bfce: */ + RTUNI_ALPHA, /* U+00bfcf: */ + RTUNI_ALPHA, /* U+00bfd0: */ + RTUNI_ALPHA, /* U+00bfd1: */ + RTUNI_ALPHA, /* U+00bfd2: */ + RTUNI_ALPHA, /* U+00bfd3: */ + RTUNI_ALPHA, /* U+00bfd4: */ + RTUNI_ALPHA, /* U+00bfd5: */ + RTUNI_ALPHA, /* U+00bfd6: */ + RTUNI_ALPHA, /* U+00bfd7: */ + RTUNI_ALPHA, /* U+00bfd8: */ + RTUNI_ALPHA, /* U+00bfd9: */ + RTUNI_ALPHA, /* U+00bfda: */ + RTUNI_ALPHA, /* U+00bfdb: */ + RTUNI_ALPHA, /* U+00bfdc: */ + RTUNI_ALPHA, /* U+00bfdd: */ + RTUNI_ALPHA, /* U+00bfde: */ + RTUNI_ALPHA, /* U+00bfdf: */ + RTUNI_ALPHA, /* U+00bfe0: */ + RTUNI_ALPHA, /* U+00bfe1: */ + RTUNI_ALPHA, /* U+00bfe2: */ + RTUNI_ALPHA, /* U+00bfe3: */ + RTUNI_ALPHA, /* U+00bfe4: */ + RTUNI_ALPHA, /* U+00bfe5: */ + RTUNI_ALPHA, /* U+00bfe6: */ + RTUNI_ALPHA, /* U+00bfe7: */ + RTUNI_ALPHA, /* U+00bfe8: */ + RTUNI_ALPHA, /* U+00bfe9: */ + RTUNI_ALPHA, /* U+00bfea: */ + RTUNI_ALPHA, /* U+00bfeb: */ + RTUNI_ALPHA, /* U+00bfec: */ + RTUNI_ALPHA, /* U+00bfed: */ + RTUNI_ALPHA, /* U+00bfee: */ + RTUNI_ALPHA, /* U+00bfef: */ + RTUNI_ALPHA, /* U+00bff0: */ + RTUNI_ALPHA, /* U+00bff1: */ + RTUNI_ALPHA, /* U+00bff2: */ + RTUNI_ALPHA, /* U+00bff3: */ + RTUNI_ALPHA, /* U+00bff4: */ + RTUNI_ALPHA, /* U+00bff5: */ + RTUNI_ALPHA, /* U+00bff6: */ + RTUNI_ALPHA, /* U+00bff7: */ + RTUNI_ALPHA, /* U+00bff8: */ + RTUNI_ALPHA, /* U+00bff9: */ + RTUNI_ALPHA, /* U+00bffa: */ + RTUNI_ALPHA, /* U+00bffb: */ + RTUNI_ALPHA, /* U+00bffc: */ + RTUNI_ALPHA, /* U+00bffd: */ + RTUNI_ALPHA, /* U+00bffe: */ + RTUNI_ALPHA, /* U+00bfff: */ + RTUNI_ALPHA, /* U+00c000: */ + RTUNI_ALPHA, /* U+00c001: */ + RTUNI_ALPHA, /* U+00c002: */ + RTUNI_ALPHA, /* U+00c003: */ + RTUNI_ALPHA, /* U+00c004: */ + RTUNI_ALPHA, /* U+00c005: */ + RTUNI_ALPHA, /* U+00c006: */ + RTUNI_ALPHA, /* U+00c007: */ + RTUNI_ALPHA, /* U+00c008: */ + RTUNI_ALPHA, /* U+00c009: */ + RTUNI_ALPHA, /* U+00c00a: */ + RTUNI_ALPHA, /* U+00c00b: */ + RTUNI_ALPHA, /* U+00c00c: */ + RTUNI_ALPHA, /* U+00c00d: */ + RTUNI_ALPHA, /* U+00c00e: */ + RTUNI_ALPHA, /* U+00c00f: */ + RTUNI_ALPHA, /* U+00c010: */ + RTUNI_ALPHA, /* U+00c011: */ + RTUNI_ALPHA, /* U+00c012: */ + RTUNI_ALPHA, /* U+00c013: */ + RTUNI_ALPHA, /* U+00c014: */ + RTUNI_ALPHA, /* U+00c015: */ + RTUNI_ALPHA, /* U+00c016: */ + RTUNI_ALPHA, /* U+00c017: */ + RTUNI_ALPHA, /* U+00c018: */ + RTUNI_ALPHA, /* U+00c019: */ + RTUNI_ALPHA, /* U+00c01a: */ + RTUNI_ALPHA, /* U+00c01b: */ + RTUNI_ALPHA, /* U+00c01c: */ + RTUNI_ALPHA, /* U+00c01d: */ + RTUNI_ALPHA, /* U+00c01e: */ + RTUNI_ALPHA, /* U+00c01f: */ + RTUNI_ALPHA, /* U+00c020: */ + RTUNI_ALPHA, /* U+00c021: */ + RTUNI_ALPHA, /* U+00c022: */ + RTUNI_ALPHA, /* U+00c023: */ + RTUNI_ALPHA, /* U+00c024: */ + RTUNI_ALPHA, /* U+00c025: */ + RTUNI_ALPHA, /* U+00c026: */ + RTUNI_ALPHA, /* U+00c027: */ + RTUNI_ALPHA, /* U+00c028: */ + RTUNI_ALPHA, /* U+00c029: */ + RTUNI_ALPHA, /* U+00c02a: */ + RTUNI_ALPHA, /* U+00c02b: */ + RTUNI_ALPHA, /* U+00c02c: */ + RTUNI_ALPHA, /* U+00c02d: */ + RTUNI_ALPHA, /* U+00c02e: */ + RTUNI_ALPHA, /* U+00c02f: */ + RTUNI_ALPHA, /* U+00c030: */ + RTUNI_ALPHA, /* U+00c031: */ + RTUNI_ALPHA, /* U+00c032: */ + RTUNI_ALPHA, /* U+00c033: */ + RTUNI_ALPHA, /* U+00c034: */ + RTUNI_ALPHA, /* U+00c035: */ + RTUNI_ALPHA, /* U+00c036: */ + RTUNI_ALPHA, /* U+00c037: */ + RTUNI_ALPHA, /* U+00c038: */ + RTUNI_ALPHA, /* U+00c039: */ + RTUNI_ALPHA, /* U+00c03a: */ + RTUNI_ALPHA, /* U+00c03b: */ + RTUNI_ALPHA, /* U+00c03c: */ + RTUNI_ALPHA, /* U+00c03d: */ + RTUNI_ALPHA, /* U+00c03e: */ + RTUNI_ALPHA, /* U+00c03f: */ + RTUNI_ALPHA, /* U+00c040: */ + RTUNI_ALPHA, /* U+00c041: */ + RTUNI_ALPHA, /* U+00c042: */ + RTUNI_ALPHA, /* U+00c043: */ + RTUNI_ALPHA, /* U+00c044: */ + RTUNI_ALPHA, /* U+00c045: */ + RTUNI_ALPHA, /* U+00c046: */ + RTUNI_ALPHA, /* U+00c047: */ + RTUNI_ALPHA, /* U+00c048: */ + RTUNI_ALPHA, /* U+00c049: */ + RTUNI_ALPHA, /* U+00c04a: */ + RTUNI_ALPHA, /* U+00c04b: */ + RTUNI_ALPHA, /* U+00c04c: */ + RTUNI_ALPHA, /* U+00c04d: */ + RTUNI_ALPHA, /* U+00c04e: */ + RTUNI_ALPHA, /* U+00c04f: */ + RTUNI_ALPHA, /* U+00c050: */ + RTUNI_ALPHA, /* U+00c051: */ + RTUNI_ALPHA, /* U+00c052: */ + RTUNI_ALPHA, /* U+00c053: */ + RTUNI_ALPHA, /* U+00c054: */ + RTUNI_ALPHA, /* U+00c055: */ + RTUNI_ALPHA, /* U+00c056: */ + RTUNI_ALPHA, /* U+00c057: */ + RTUNI_ALPHA, /* U+00c058: */ + RTUNI_ALPHA, /* U+00c059: */ + RTUNI_ALPHA, /* U+00c05a: */ + RTUNI_ALPHA, /* U+00c05b: */ + RTUNI_ALPHA, /* U+00c05c: */ + RTUNI_ALPHA, /* U+00c05d: */ + RTUNI_ALPHA, /* U+00c05e: */ + RTUNI_ALPHA, /* U+00c05f: */ + RTUNI_ALPHA, /* U+00c060: */ + RTUNI_ALPHA, /* U+00c061: */ + RTUNI_ALPHA, /* U+00c062: */ + RTUNI_ALPHA, /* U+00c063: */ + RTUNI_ALPHA, /* U+00c064: */ + RTUNI_ALPHA, /* U+00c065: */ + RTUNI_ALPHA, /* U+00c066: */ + RTUNI_ALPHA, /* U+00c067: */ + RTUNI_ALPHA, /* U+00c068: */ + RTUNI_ALPHA, /* U+00c069: */ + RTUNI_ALPHA, /* U+00c06a: */ + RTUNI_ALPHA, /* U+00c06b: */ + RTUNI_ALPHA, /* U+00c06c: */ + RTUNI_ALPHA, /* U+00c06d: */ + RTUNI_ALPHA, /* U+00c06e: */ + RTUNI_ALPHA, /* U+00c06f: */ + RTUNI_ALPHA, /* U+00c070: */ + RTUNI_ALPHA, /* U+00c071: */ + RTUNI_ALPHA, /* U+00c072: */ + RTUNI_ALPHA, /* U+00c073: */ + RTUNI_ALPHA, /* U+00c074: */ + RTUNI_ALPHA, /* U+00c075: */ + RTUNI_ALPHA, /* U+00c076: */ + RTUNI_ALPHA, /* U+00c077: */ + RTUNI_ALPHA, /* U+00c078: */ + RTUNI_ALPHA, /* U+00c079: */ + RTUNI_ALPHA, /* U+00c07a: */ + RTUNI_ALPHA, /* U+00c07b: */ + RTUNI_ALPHA, /* U+00c07c: */ + RTUNI_ALPHA, /* U+00c07d: */ + RTUNI_ALPHA, /* U+00c07e: */ + RTUNI_ALPHA, /* U+00c07f: */ + RTUNI_ALPHA, /* U+00c080: */ + RTUNI_ALPHA, /* U+00c081: */ + RTUNI_ALPHA, /* U+00c082: */ + RTUNI_ALPHA, /* U+00c083: */ + RTUNI_ALPHA, /* U+00c084: */ + RTUNI_ALPHA, /* U+00c085: */ + RTUNI_ALPHA, /* U+00c086: */ + RTUNI_ALPHA, /* U+00c087: */ + RTUNI_ALPHA, /* U+00c088: */ + RTUNI_ALPHA, /* U+00c089: */ + RTUNI_ALPHA, /* U+00c08a: */ + RTUNI_ALPHA, /* U+00c08b: */ + RTUNI_ALPHA, /* U+00c08c: */ + RTUNI_ALPHA, /* U+00c08d: */ + RTUNI_ALPHA, /* U+00c08e: */ + RTUNI_ALPHA, /* U+00c08f: */ + RTUNI_ALPHA, /* U+00c090: */ + RTUNI_ALPHA, /* U+00c091: */ + RTUNI_ALPHA, /* U+00c092: */ + RTUNI_ALPHA, /* U+00c093: */ + RTUNI_ALPHA, /* U+00c094: */ + RTUNI_ALPHA, /* U+00c095: */ + RTUNI_ALPHA, /* U+00c096: */ + RTUNI_ALPHA, /* U+00c097: */ + RTUNI_ALPHA, /* U+00c098: */ + RTUNI_ALPHA, /* U+00c099: */ + RTUNI_ALPHA, /* U+00c09a: */ + RTUNI_ALPHA, /* U+00c09b: */ + RTUNI_ALPHA, /* U+00c09c: */ + RTUNI_ALPHA, /* U+00c09d: */ + RTUNI_ALPHA, /* U+00c09e: */ + RTUNI_ALPHA, /* U+00c09f: */ + RTUNI_ALPHA, /* U+00c0a0: */ + RTUNI_ALPHA, /* U+00c0a1: */ + RTUNI_ALPHA, /* U+00c0a2: */ + RTUNI_ALPHA, /* U+00c0a3: */ + RTUNI_ALPHA, /* U+00c0a4: */ + RTUNI_ALPHA, /* U+00c0a5: */ + RTUNI_ALPHA, /* U+00c0a6: */ + RTUNI_ALPHA, /* U+00c0a7: */ + RTUNI_ALPHA, /* U+00c0a8: */ + RTUNI_ALPHA, /* U+00c0a9: */ + RTUNI_ALPHA, /* U+00c0aa: */ + RTUNI_ALPHA, /* U+00c0ab: */ + RTUNI_ALPHA, /* U+00c0ac: */ + RTUNI_ALPHA, /* U+00c0ad: */ + RTUNI_ALPHA, /* U+00c0ae: */ + RTUNI_ALPHA, /* U+00c0af: */ + RTUNI_ALPHA, /* U+00c0b0: */ + RTUNI_ALPHA, /* U+00c0b1: */ + RTUNI_ALPHA, /* U+00c0b2: */ + RTUNI_ALPHA, /* U+00c0b3: */ + RTUNI_ALPHA, /* U+00c0b4: */ + RTUNI_ALPHA, /* U+00c0b5: */ + RTUNI_ALPHA, /* U+00c0b6: */ + RTUNI_ALPHA, /* U+00c0b7: */ + RTUNI_ALPHA, /* U+00c0b8: */ + RTUNI_ALPHA, /* U+00c0b9: */ + RTUNI_ALPHA, /* U+00c0ba: */ + RTUNI_ALPHA, /* U+00c0bb: */ + RTUNI_ALPHA, /* U+00c0bc: */ + RTUNI_ALPHA, /* U+00c0bd: */ + RTUNI_ALPHA, /* U+00c0be: */ + RTUNI_ALPHA, /* U+00c0bf: */ + RTUNI_ALPHA, /* U+00c0c0: */ + RTUNI_ALPHA, /* U+00c0c1: */ + RTUNI_ALPHA, /* U+00c0c2: */ + RTUNI_ALPHA, /* U+00c0c3: */ + RTUNI_ALPHA, /* U+00c0c4: */ + RTUNI_ALPHA, /* U+00c0c5: */ + RTUNI_ALPHA, /* U+00c0c6: */ + RTUNI_ALPHA, /* U+00c0c7: */ + RTUNI_ALPHA, /* U+00c0c8: */ + RTUNI_ALPHA, /* U+00c0c9: */ + RTUNI_ALPHA, /* U+00c0ca: */ + RTUNI_ALPHA, /* U+00c0cb: */ + RTUNI_ALPHA, /* U+00c0cc: */ + RTUNI_ALPHA, /* U+00c0cd: */ + RTUNI_ALPHA, /* U+00c0ce: */ + RTUNI_ALPHA, /* U+00c0cf: */ + RTUNI_ALPHA, /* U+00c0d0: */ + RTUNI_ALPHA, /* U+00c0d1: */ + RTUNI_ALPHA, /* U+00c0d2: */ + RTUNI_ALPHA, /* U+00c0d3: */ + RTUNI_ALPHA, /* U+00c0d4: */ + RTUNI_ALPHA, /* U+00c0d5: */ + RTUNI_ALPHA, /* U+00c0d6: */ + RTUNI_ALPHA, /* U+00c0d7: */ + RTUNI_ALPHA, /* U+00c0d8: */ + RTUNI_ALPHA, /* U+00c0d9: */ + RTUNI_ALPHA, /* U+00c0da: */ + RTUNI_ALPHA, /* U+00c0db: */ + RTUNI_ALPHA, /* U+00c0dc: */ + RTUNI_ALPHA, /* U+00c0dd: */ + RTUNI_ALPHA, /* U+00c0de: */ + RTUNI_ALPHA, /* U+00c0df: */ + RTUNI_ALPHA, /* U+00c0e0: */ + RTUNI_ALPHA, /* U+00c0e1: */ + RTUNI_ALPHA, /* U+00c0e2: */ + RTUNI_ALPHA, /* U+00c0e3: */ + RTUNI_ALPHA, /* U+00c0e4: */ + RTUNI_ALPHA, /* U+00c0e5: */ + RTUNI_ALPHA, /* U+00c0e6: */ + RTUNI_ALPHA, /* U+00c0e7: */ + RTUNI_ALPHA, /* U+00c0e8: */ + RTUNI_ALPHA, /* U+00c0e9: */ + RTUNI_ALPHA, /* U+00c0ea: */ + RTUNI_ALPHA, /* U+00c0eb: */ + RTUNI_ALPHA, /* U+00c0ec: */ + RTUNI_ALPHA, /* U+00c0ed: */ + RTUNI_ALPHA, /* U+00c0ee: */ + RTUNI_ALPHA, /* U+00c0ef: */ + RTUNI_ALPHA, /* U+00c0f0: */ + RTUNI_ALPHA, /* U+00c0f1: */ + RTUNI_ALPHA, /* U+00c0f2: */ + RTUNI_ALPHA, /* U+00c0f3: */ + RTUNI_ALPHA, /* U+00c0f4: */ + RTUNI_ALPHA, /* U+00c0f5: */ + RTUNI_ALPHA, /* U+00c0f6: */ + RTUNI_ALPHA, /* U+00c0f7: */ + RTUNI_ALPHA, /* U+00c0f8: */ + RTUNI_ALPHA, /* U+00c0f9: */ + RTUNI_ALPHA, /* U+00c0fa: */ + RTUNI_ALPHA, /* U+00c0fb: */ + RTUNI_ALPHA, /* U+00c0fc: */ + RTUNI_ALPHA, /* U+00c0fd: */ + RTUNI_ALPHA, /* U+00c0fe: */ + RTUNI_ALPHA, /* U+00c0ff: */ + RTUNI_ALPHA, /* U+00c100: */ + RTUNI_ALPHA, /* U+00c101: */ + RTUNI_ALPHA, /* U+00c102: */ + RTUNI_ALPHA, /* U+00c103: */ + RTUNI_ALPHA, /* U+00c104: */ + RTUNI_ALPHA, /* U+00c105: */ + RTUNI_ALPHA, /* U+00c106: */ + RTUNI_ALPHA, /* U+00c107: */ + RTUNI_ALPHA, /* U+00c108: */ + RTUNI_ALPHA, /* U+00c109: */ + RTUNI_ALPHA, /* U+00c10a: */ + RTUNI_ALPHA, /* U+00c10b: */ + RTUNI_ALPHA, /* U+00c10c: */ + RTUNI_ALPHA, /* U+00c10d: */ + RTUNI_ALPHA, /* U+00c10e: */ + RTUNI_ALPHA, /* U+00c10f: */ + RTUNI_ALPHA, /* U+00c110: */ + RTUNI_ALPHA, /* U+00c111: */ + RTUNI_ALPHA, /* U+00c112: */ + RTUNI_ALPHA, /* U+00c113: */ + RTUNI_ALPHA, /* U+00c114: */ + RTUNI_ALPHA, /* U+00c115: */ + RTUNI_ALPHA, /* U+00c116: */ + RTUNI_ALPHA, /* U+00c117: */ + RTUNI_ALPHA, /* U+00c118: */ + RTUNI_ALPHA, /* U+00c119: */ + RTUNI_ALPHA, /* U+00c11a: */ + RTUNI_ALPHA, /* U+00c11b: */ + RTUNI_ALPHA, /* U+00c11c: */ + RTUNI_ALPHA, /* U+00c11d: */ + RTUNI_ALPHA, /* U+00c11e: */ + RTUNI_ALPHA, /* U+00c11f: */ + RTUNI_ALPHA, /* U+00c120: */ + RTUNI_ALPHA, /* U+00c121: */ + RTUNI_ALPHA, /* U+00c122: */ + RTUNI_ALPHA, /* U+00c123: */ + RTUNI_ALPHA, /* U+00c124: */ + RTUNI_ALPHA, /* U+00c125: */ + RTUNI_ALPHA, /* U+00c126: */ + RTUNI_ALPHA, /* U+00c127: */ + RTUNI_ALPHA, /* U+00c128: */ + RTUNI_ALPHA, /* U+00c129: */ + RTUNI_ALPHA, /* U+00c12a: */ + RTUNI_ALPHA, /* U+00c12b: */ + RTUNI_ALPHA, /* U+00c12c: */ + RTUNI_ALPHA, /* U+00c12d: */ + RTUNI_ALPHA, /* U+00c12e: */ + RTUNI_ALPHA, /* U+00c12f: */ + RTUNI_ALPHA, /* U+00c130: */ + RTUNI_ALPHA, /* U+00c131: */ + RTUNI_ALPHA, /* U+00c132: */ + RTUNI_ALPHA, /* U+00c133: */ + RTUNI_ALPHA, /* U+00c134: */ + RTUNI_ALPHA, /* U+00c135: */ + RTUNI_ALPHA, /* U+00c136: */ + RTUNI_ALPHA, /* U+00c137: */ + RTUNI_ALPHA, /* U+00c138: */ + RTUNI_ALPHA, /* U+00c139: */ + RTUNI_ALPHA, /* U+00c13a: */ + RTUNI_ALPHA, /* U+00c13b: */ + RTUNI_ALPHA, /* U+00c13c: */ + RTUNI_ALPHA, /* U+00c13d: */ + RTUNI_ALPHA, /* U+00c13e: */ + RTUNI_ALPHA, /* U+00c13f: */ + RTUNI_ALPHA, /* U+00c140: */ + RTUNI_ALPHA, /* U+00c141: */ + RTUNI_ALPHA, /* U+00c142: */ + RTUNI_ALPHA, /* U+00c143: */ + RTUNI_ALPHA, /* U+00c144: */ + RTUNI_ALPHA, /* U+00c145: */ + RTUNI_ALPHA, /* U+00c146: */ + RTUNI_ALPHA, /* U+00c147: */ + RTUNI_ALPHA, /* U+00c148: */ + RTUNI_ALPHA, /* U+00c149: */ + RTUNI_ALPHA, /* U+00c14a: */ + RTUNI_ALPHA, /* U+00c14b: */ + RTUNI_ALPHA, /* U+00c14c: */ + RTUNI_ALPHA, /* U+00c14d: */ + RTUNI_ALPHA, /* U+00c14e: */ + RTUNI_ALPHA, /* U+00c14f: */ + RTUNI_ALPHA, /* U+00c150: */ + RTUNI_ALPHA, /* U+00c151: */ + RTUNI_ALPHA, /* U+00c152: */ + RTUNI_ALPHA, /* U+00c153: */ + RTUNI_ALPHA, /* U+00c154: */ + RTUNI_ALPHA, /* U+00c155: */ + RTUNI_ALPHA, /* U+00c156: */ + RTUNI_ALPHA, /* U+00c157: */ + RTUNI_ALPHA, /* U+00c158: */ + RTUNI_ALPHA, /* U+00c159: */ + RTUNI_ALPHA, /* U+00c15a: */ + RTUNI_ALPHA, /* U+00c15b: */ + RTUNI_ALPHA, /* U+00c15c: */ + RTUNI_ALPHA, /* U+00c15d: */ + RTUNI_ALPHA, /* U+00c15e: */ + RTUNI_ALPHA, /* U+00c15f: */ + RTUNI_ALPHA, /* U+00c160: */ + RTUNI_ALPHA, /* U+00c161: */ + RTUNI_ALPHA, /* U+00c162: */ + RTUNI_ALPHA, /* U+00c163: */ + RTUNI_ALPHA, /* U+00c164: */ + RTUNI_ALPHA, /* U+00c165: */ + RTUNI_ALPHA, /* U+00c166: */ + RTUNI_ALPHA, /* U+00c167: */ + RTUNI_ALPHA, /* U+00c168: */ + RTUNI_ALPHA, /* U+00c169: */ + RTUNI_ALPHA, /* U+00c16a: */ + RTUNI_ALPHA, /* U+00c16b: */ + RTUNI_ALPHA, /* U+00c16c: */ + RTUNI_ALPHA, /* U+00c16d: */ + RTUNI_ALPHA, /* U+00c16e: */ + RTUNI_ALPHA, /* U+00c16f: */ + RTUNI_ALPHA, /* U+00c170: */ + RTUNI_ALPHA, /* U+00c171: */ + RTUNI_ALPHA, /* U+00c172: */ + RTUNI_ALPHA, /* U+00c173: */ + RTUNI_ALPHA, /* U+00c174: */ + RTUNI_ALPHA, /* U+00c175: */ + RTUNI_ALPHA, /* U+00c176: */ + RTUNI_ALPHA, /* U+00c177: */ + RTUNI_ALPHA, /* U+00c178: */ + RTUNI_ALPHA, /* U+00c179: */ + RTUNI_ALPHA, /* U+00c17a: */ + RTUNI_ALPHA, /* U+00c17b: */ + RTUNI_ALPHA, /* U+00c17c: */ + RTUNI_ALPHA, /* U+00c17d: */ + RTUNI_ALPHA, /* U+00c17e: */ + RTUNI_ALPHA, /* U+00c17f: */ + RTUNI_ALPHA, /* U+00c180: */ + RTUNI_ALPHA, /* U+00c181: */ + RTUNI_ALPHA, /* U+00c182: */ + RTUNI_ALPHA, /* U+00c183: */ + RTUNI_ALPHA, /* U+00c184: */ + RTUNI_ALPHA, /* U+00c185: */ + RTUNI_ALPHA, /* U+00c186: */ + RTUNI_ALPHA, /* U+00c187: */ + RTUNI_ALPHA, /* U+00c188: */ + RTUNI_ALPHA, /* U+00c189: */ + RTUNI_ALPHA, /* U+00c18a: */ + RTUNI_ALPHA, /* U+00c18b: */ + RTUNI_ALPHA, /* U+00c18c: */ + RTUNI_ALPHA, /* U+00c18d: */ + RTUNI_ALPHA, /* U+00c18e: */ + RTUNI_ALPHA, /* U+00c18f: */ + RTUNI_ALPHA, /* U+00c190: */ + RTUNI_ALPHA, /* U+00c191: */ + RTUNI_ALPHA, /* U+00c192: */ + RTUNI_ALPHA, /* U+00c193: */ + RTUNI_ALPHA, /* U+00c194: */ + RTUNI_ALPHA, /* U+00c195: */ + RTUNI_ALPHA, /* U+00c196: */ + RTUNI_ALPHA, /* U+00c197: */ + RTUNI_ALPHA, /* U+00c198: */ + RTUNI_ALPHA, /* U+00c199: */ + RTUNI_ALPHA, /* U+00c19a: */ + RTUNI_ALPHA, /* U+00c19b: */ + RTUNI_ALPHA, /* U+00c19c: */ + RTUNI_ALPHA, /* U+00c19d: */ + RTUNI_ALPHA, /* U+00c19e: */ + RTUNI_ALPHA, /* U+00c19f: */ + RTUNI_ALPHA, /* U+00c1a0: */ + RTUNI_ALPHA, /* U+00c1a1: */ + RTUNI_ALPHA, /* U+00c1a2: */ + RTUNI_ALPHA, /* U+00c1a3: */ + RTUNI_ALPHA, /* U+00c1a4: */ + RTUNI_ALPHA, /* U+00c1a5: */ + RTUNI_ALPHA, /* U+00c1a6: */ + RTUNI_ALPHA, /* U+00c1a7: */ + RTUNI_ALPHA, /* U+00c1a8: */ + RTUNI_ALPHA, /* U+00c1a9: */ + RTUNI_ALPHA, /* U+00c1aa: */ + RTUNI_ALPHA, /* U+00c1ab: */ + RTUNI_ALPHA, /* U+00c1ac: */ + RTUNI_ALPHA, /* U+00c1ad: */ + RTUNI_ALPHA, /* U+00c1ae: */ + RTUNI_ALPHA, /* U+00c1af: */ + RTUNI_ALPHA, /* U+00c1b0: */ + RTUNI_ALPHA, /* U+00c1b1: */ + RTUNI_ALPHA, /* U+00c1b2: */ + RTUNI_ALPHA, /* U+00c1b3: */ + RTUNI_ALPHA, /* U+00c1b4: */ + RTUNI_ALPHA, /* U+00c1b5: */ + RTUNI_ALPHA, /* U+00c1b6: */ + RTUNI_ALPHA, /* U+00c1b7: */ + RTUNI_ALPHA, /* U+00c1b8: */ + RTUNI_ALPHA, /* U+00c1b9: */ + RTUNI_ALPHA, /* U+00c1ba: */ + RTUNI_ALPHA, /* U+00c1bb: */ + RTUNI_ALPHA, /* U+00c1bc: */ + RTUNI_ALPHA, /* U+00c1bd: */ + RTUNI_ALPHA, /* U+00c1be: */ + RTUNI_ALPHA, /* U+00c1bf: */ + RTUNI_ALPHA, /* U+00c1c0: */ + RTUNI_ALPHA, /* U+00c1c1: */ + RTUNI_ALPHA, /* U+00c1c2: */ + RTUNI_ALPHA, /* U+00c1c3: */ + RTUNI_ALPHA, /* U+00c1c4: */ + RTUNI_ALPHA, /* U+00c1c5: */ + RTUNI_ALPHA, /* U+00c1c6: */ + RTUNI_ALPHA, /* U+00c1c7: */ + RTUNI_ALPHA, /* U+00c1c8: */ + RTUNI_ALPHA, /* U+00c1c9: */ + RTUNI_ALPHA, /* U+00c1ca: */ + RTUNI_ALPHA, /* U+00c1cb: */ + RTUNI_ALPHA, /* U+00c1cc: */ + RTUNI_ALPHA, /* U+00c1cd: */ + RTUNI_ALPHA, /* U+00c1ce: */ + RTUNI_ALPHA, /* U+00c1cf: */ + RTUNI_ALPHA, /* U+00c1d0: */ + RTUNI_ALPHA, /* U+00c1d1: */ + RTUNI_ALPHA, /* U+00c1d2: */ + RTUNI_ALPHA, /* U+00c1d3: */ + RTUNI_ALPHA, /* U+00c1d4: */ + RTUNI_ALPHA, /* U+00c1d5: */ + RTUNI_ALPHA, /* U+00c1d6: */ + RTUNI_ALPHA, /* U+00c1d7: */ + RTUNI_ALPHA, /* U+00c1d8: */ + RTUNI_ALPHA, /* U+00c1d9: */ + RTUNI_ALPHA, /* U+00c1da: */ + RTUNI_ALPHA, /* U+00c1db: */ + RTUNI_ALPHA, /* U+00c1dc: */ + RTUNI_ALPHA, /* U+00c1dd: */ + RTUNI_ALPHA, /* U+00c1de: */ + RTUNI_ALPHA, /* U+00c1df: */ + RTUNI_ALPHA, /* U+00c1e0: */ + RTUNI_ALPHA, /* U+00c1e1: */ + RTUNI_ALPHA, /* U+00c1e2: */ + RTUNI_ALPHA, /* U+00c1e3: */ + RTUNI_ALPHA, /* U+00c1e4: */ + RTUNI_ALPHA, /* U+00c1e5: */ + RTUNI_ALPHA, /* U+00c1e6: */ + RTUNI_ALPHA, /* U+00c1e7: */ + RTUNI_ALPHA, /* U+00c1e8: */ + RTUNI_ALPHA, /* U+00c1e9: */ + RTUNI_ALPHA, /* U+00c1ea: */ + RTUNI_ALPHA, /* U+00c1eb: */ + RTUNI_ALPHA, /* U+00c1ec: */ + RTUNI_ALPHA, /* U+00c1ed: */ + RTUNI_ALPHA, /* U+00c1ee: */ + RTUNI_ALPHA, /* U+00c1ef: */ + RTUNI_ALPHA, /* U+00c1f0: */ + RTUNI_ALPHA, /* U+00c1f1: */ + RTUNI_ALPHA, /* U+00c1f2: */ + RTUNI_ALPHA, /* U+00c1f3: */ + RTUNI_ALPHA, /* U+00c1f4: */ + RTUNI_ALPHA, /* U+00c1f5: */ + RTUNI_ALPHA, /* U+00c1f6: */ + RTUNI_ALPHA, /* U+00c1f7: */ + RTUNI_ALPHA, /* U+00c1f8: */ + RTUNI_ALPHA, /* U+00c1f9: */ + RTUNI_ALPHA, /* U+00c1fa: */ + RTUNI_ALPHA, /* U+00c1fb: */ + RTUNI_ALPHA, /* U+00c1fc: */ + RTUNI_ALPHA, /* U+00c1fd: */ + RTUNI_ALPHA, /* U+00c1fe: */ + RTUNI_ALPHA, /* U+00c1ff: */ + RTUNI_ALPHA, /* U+00c200: */ + RTUNI_ALPHA, /* U+00c201: */ + RTUNI_ALPHA, /* U+00c202: */ + RTUNI_ALPHA, /* U+00c203: */ + RTUNI_ALPHA, /* U+00c204: */ + RTUNI_ALPHA, /* U+00c205: */ + RTUNI_ALPHA, /* U+00c206: */ + RTUNI_ALPHA, /* U+00c207: */ + RTUNI_ALPHA, /* U+00c208: */ + RTUNI_ALPHA, /* U+00c209: */ + RTUNI_ALPHA, /* U+00c20a: */ + RTUNI_ALPHA, /* U+00c20b: */ + RTUNI_ALPHA, /* U+00c20c: */ + RTUNI_ALPHA, /* U+00c20d: */ + RTUNI_ALPHA, /* U+00c20e: */ + RTUNI_ALPHA, /* U+00c20f: */ + RTUNI_ALPHA, /* U+00c210: */ + RTUNI_ALPHA, /* U+00c211: */ + RTUNI_ALPHA, /* U+00c212: */ + RTUNI_ALPHA, /* U+00c213: */ + RTUNI_ALPHA, /* U+00c214: */ + RTUNI_ALPHA, /* U+00c215: */ + RTUNI_ALPHA, /* U+00c216: */ + RTUNI_ALPHA, /* U+00c217: */ + RTUNI_ALPHA, /* U+00c218: */ + RTUNI_ALPHA, /* U+00c219: */ + RTUNI_ALPHA, /* U+00c21a: */ + RTUNI_ALPHA, /* U+00c21b: */ + RTUNI_ALPHA, /* U+00c21c: */ + RTUNI_ALPHA, /* U+00c21d: */ + RTUNI_ALPHA, /* U+00c21e: */ + RTUNI_ALPHA, /* U+00c21f: */ + RTUNI_ALPHA, /* U+00c220: */ + RTUNI_ALPHA, /* U+00c221: */ + RTUNI_ALPHA, /* U+00c222: */ + RTUNI_ALPHA, /* U+00c223: */ + RTUNI_ALPHA, /* U+00c224: */ + RTUNI_ALPHA, /* U+00c225: */ + RTUNI_ALPHA, /* U+00c226: */ + RTUNI_ALPHA, /* U+00c227: */ + RTUNI_ALPHA, /* U+00c228: */ + RTUNI_ALPHA, /* U+00c229: */ + RTUNI_ALPHA, /* U+00c22a: */ + RTUNI_ALPHA, /* U+00c22b: */ + RTUNI_ALPHA, /* U+00c22c: */ + RTUNI_ALPHA, /* U+00c22d: */ + RTUNI_ALPHA, /* U+00c22e: */ + RTUNI_ALPHA, /* U+00c22f: */ + RTUNI_ALPHA, /* U+00c230: */ + RTUNI_ALPHA, /* U+00c231: */ + RTUNI_ALPHA, /* U+00c232: */ + RTUNI_ALPHA, /* U+00c233: */ + RTUNI_ALPHA, /* U+00c234: */ + RTUNI_ALPHA, /* U+00c235: */ + RTUNI_ALPHA, /* U+00c236: */ + RTUNI_ALPHA, /* U+00c237: */ + RTUNI_ALPHA, /* U+00c238: */ + RTUNI_ALPHA, /* U+00c239: */ + RTUNI_ALPHA, /* U+00c23a: */ + RTUNI_ALPHA, /* U+00c23b: */ + RTUNI_ALPHA, /* U+00c23c: */ + RTUNI_ALPHA, /* U+00c23d: */ + RTUNI_ALPHA, /* U+00c23e: */ + RTUNI_ALPHA, /* U+00c23f: */ + RTUNI_ALPHA, /* U+00c240: */ + RTUNI_ALPHA, /* U+00c241: */ + RTUNI_ALPHA, /* U+00c242: */ + RTUNI_ALPHA, /* U+00c243: */ + RTUNI_ALPHA, /* U+00c244: */ + RTUNI_ALPHA, /* U+00c245: */ + RTUNI_ALPHA, /* U+00c246: */ + RTUNI_ALPHA, /* U+00c247: */ + RTUNI_ALPHA, /* U+00c248: */ + RTUNI_ALPHA, /* U+00c249: */ + RTUNI_ALPHA, /* U+00c24a: */ + RTUNI_ALPHA, /* U+00c24b: */ + RTUNI_ALPHA, /* U+00c24c: */ + RTUNI_ALPHA, /* U+00c24d: */ + RTUNI_ALPHA, /* U+00c24e: */ + RTUNI_ALPHA, /* U+00c24f: */ + RTUNI_ALPHA, /* U+00c250: */ + RTUNI_ALPHA, /* U+00c251: */ + RTUNI_ALPHA, /* U+00c252: */ + RTUNI_ALPHA, /* U+00c253: */ + RTUNI_ALPHA, /* U+00c254: */ + RTUNI_ALPHA, /* U+00c255: */ + RTUNI_ALPHA, /* U+00c256: */ + RTUNI_ALPHA, /* U+00c257: */ + RTUNI_ALPHA, /* U+00c258: */ + RTUNI_ALPHA, /* U+00c259: */ + RTUNI_ALPHA, /* U+00c25a: */ + RTUNI_ALPHA, /* U+00c25b: */ + RTUNI_ALPHA, /* U+00c25c: */ + RTUNI_ALPHA, /* U+00c25d: */ + RTUNI_ALPHA, /* U+00c25e: */ + RTUNI_ALPHA, /* U+00c25f: */ + RTUNI_ALPHA, /* U+00c260: */ + RTUNI_ALPHA, /* U+00c261: */ + RTUNI_ALPHA, /* U+00c262: */ + RTUNI_ALPHA, /* U+00c263: */ + RTUNI_ALPHA, /* U+00c264: */ + RTUNI_ALPHA, /* U+00c265: */ + RTUNI_ALPHA, /* U+00c266: */ + RTUNI_ALPHA, /* U+00c267: */ + RTUNI_ALPHA, /* U+00c268: */ + RTUNI_ALPHA, /* U+00c269: */ + RTUNI_ALPHA, /* U+00c26a: */ + RTUNI_ALPHA, /* U+00c26b: */ + RTUNI_ALPHA, /* U+00c26c: */ + RTUNI_ALPHA, /* U+00c26d: */ + RTUNI_ALPHA, /* U+00c26e: */ + RTUNI_ALPHA, /* U+00c26f: */ + RTUNI_ALPHA, /* U+00c270: */ + RTUNI_ALPHA, /* U+00c271: */ + RTUNI_ALPHA, /* U+00c272: */ + RTUNI_ALPHA, /* U+00c273: */ + RTUNI_ALPHA, /* U+00c274: */ + RTUNI_ALPHA, /* U+00c275: */ + RTUNI_ALPHA, /* U+00c276: */ + RTUNI_ALPHA, /* U+00c277: */ + RTUNI_ALPHA, /* U+00c278: */ + RTUNI_ALPHA, /* U+00c279: */ + RTUNI_ALPHA, /* U+00c27a: */ + RTUNI_ALPHA, /* U+00c27b: */ + RTUNI_ALPHA, /* U+00c27c: */ + RTUNI_ALPHA, /* U+00c27d: */ + RTUNI_ALPHA, /* U+00c27e: */ + RTUNI_ALPHA, /* U+00c27f: */ + RTUNI_ALPHA, /* U+00c280: */ + RTUNI_ALPHA, /* U+00c281: */ + RTUNI_ALPHA, /* U+00c282: */ + RTUNI_ALPHA, /* U+00c283: */ + RTUNI_ALPHA, /* U+00c284: */ + RTUNI_ALPHA, /* U+00c285: */ + RTUNI_ALPHA, /* U+00c286: */ + RTUNI_ALPHA, /* U+00c287: */ + RTUNI_ALPHA, /* U+00c288: */ + RTUNI_ALPHA, /* U+00c289: */ + RTUNI_ALPHA, /* U+00c28a: */ + RTUNI_ALPHA, /* U+00c28b: */ + RTUNI_ALPHA, /* U+00c28c: */ + RTUNI_ALPHA, /* U+00c28d: */ + RTUNI_ALPHA, /* U+00c28e: */ + RTUNI_ALPHA, /* U+00c28f: */ + RTUNI_ALPHA, /* U+00c290: */ + RTUNI_ALPHA, /* U+00c291: */ + RTUNI_ALPHA, /* U+00c292: */ + RTUNI_ALPHA, /* U+00c293: */ + RTUNI_ALPHA, /* U+00c294: */ + RTUNI_ALPHA, /* U+00c295: */ + RTUNI_ALPHA, /* U+00c296: */ + RTUNI_ALPHA, /* U+00c297: */ + RTUNI_ALPHA, /* U+00c298: */ + RTUNI_ALPHA, /* U+00c299: */ + RTUNI_ALPHA, /* U+00c29a: */ + RTUNI_ALPHA, /* U+00c29b: */ + RTUNI_ALPHA, /* U+00c29c: */ + RTUNI_ALPHA, /* U+00c29d: */ + RTUNI_ALPHA, /* U+00c29e: */ + RTUNI_ALPHA, /* U+00c29f: */ + RTUNI_ALPHA, /* U+00c2a0: */ + RTUNI_ALPHA, /* U+00c2a1: */ + RTUNI_ALPHA, /* U+00c2a2: */ + RTUNI_ALPHA, /* U+00c2a3: */ + RTUNI_ALPHA, /* U+00c2a4: */ + RTUNI_ALPHA, /* U+00c2a5: */ + RTUNI_ALPHA, /* U+00c2a6: */ + RTUNI_ALPHA, /* U+00c2a7: */ + RTUNI_ALPHA, /* U+00c2a8: */ + RTUNI_ALPHA, /* U+00c2a9: */ + RTUNI_ALPHA, /* U+00c2aa: */ + RTUNI_ALPHA, /* U+00c2ab: */ + RTUNI_ALPHA, /* U+00c2ac: */ + RTUNI_ALPHA, /* U+00c2ad: */ + RTUNI_ALPHA, /* U+00c2ae: */ + RTUNI_ALPHA, /* U+00c2af: */ + RTUNI_ALPHA, /* U+00c2b0: */ + RTUNI_ALPHA, /* U+00c2b1: */ + RTUNI_ALPHA, /* U+00c2b2: */ + RTUNI_ALPHA, /* U+00c2b3: */ + RTUNI_ALPHA, /* U+00c2b4: */ + RTUNI_ALPHA, /* U+00c2b5: */ + RTUNI_ALPHA, /* U+00c2b6: */ + RTUNI_ALPHA, /* U+00c2b7: */ + RTUNI_ALPHA, /* U+00c2b8: */ + RTUNI_ALPHA, /* U+00c2b9: */ + RTUNI_ALPHA, /* U+00c2ba: */ + RTUNI_ALPHA, /* U+00c2bb: */ + RTUNI_ALPHA, /* U+00c2bc: */ + RTUNI_ALPHA, /* U+00c2bd: */ + RTUNI_ALPHA, /* U+00c2be: */ + RTUNI_ALPHA, /* U+00c2bf: */ + RTUNI_ALPHA, /* U+00c2c0: */ + RTUNI_ALPHA, /* U+00c2c1: */ + RTUNI_ALPHA, /* U+00c2c2: */ + RTUNI_ALPHA, /* U+00c2c3: */ + RTUNI_ALPHA, /* U+00c2c4: */ + RTUNI_ALPHA, /* U+00c2c5: */ + RTUNI_ALPHA, /* U+00c2c6: */ + RTUNI_ALPHA, /* U+00c2c7: */ + RTUNI_ALPHA, /* U+00c2c8: */ + RTUNI_ALPHA, /* U+00c2c9: */ + RTUNI_ALPHA, /* U+00c2ca: */ + RTUNI_ALPHA, /* U+00c2cb: */ + RTUNI_ALPHA, /* U+00c2cc: */ + RTUNI_ALPHA, /* U+00c2cd: */ + RTUNI_ALPHA, /* U+00c2ce: */ + RTUNI_ALPHA, /* U+00c2cf: */ + RTUNI_ALPHA, /* U+00c2d0: */ + RTUNI_ALPHA, /* U+00c2d1: */ + RTUNI_ALPHA, /* U+00c2d2: */ + RTUNI_ALPHA, /* U+00c2d3: */ + RTUNI_ALPHA, /* U+00c2d4: */ + RTUNI_ALPHA, /* U+00c2d5: */ + RTUNI_ALPHA, /* U+00c2d6: */ + RTUNI_ALPHA, /* U+00c2d7: */ + RTUNI_ALPHA, /* U+00c2d8: */ + RTUNI_ALPHA, /* U+00c2d9: */ + RTUNI_ALPHA, /* U+00c2da: */ + RTUNI_ALPHA, /* U+00c2db: */ + RTUNI_ALPHA, /* U+00c2dc: */ + RTUNI_ALPHA, /* U+00c2dd: */ + RTUNI_ALPHA, /* U+00c2de: */ + RTUNI_ALPHA, /* U+00c2df: */ + RTUNI_ALPHA, /* U+00c2e0: */ + RTUNI_ALPHA, /* U+00c2e1: */ + RTUNI_ALPHA, /* U+00c2e2: */ + RTUNI_ALPHA, /* U+00c2e3: */ + RTUNI_ALPHA, /* U+00c2e4: */ + RTUNI_ALPHA, /* U+00c2e5: */ + RTUNI_ALPHA, /* U+00c2e6: */ + RTUNI_ALPHA, /* U+00c2e7: */ + RTUNI_ALPHA, /* U+00c2e8: */ + RTUNI_ALPHA, /* U+00c2e9: */ + RTUNI_ALPHA, /* U+00c2ea: */ + RTUNI_ALPHA, /* U+00c2eb: */ + RTUNI_ALPHA, /* U+00c2ec: */ + RTUNI_ALPHA, /* U+00c2ed: */ + RTUNI_ALPHA, /* U+00c2ee: */ + RTUNI_ALPHA, /* U+00c2ef: */ + RTUNI_ALPHA, /* U+00c2f0: */ + RTUNI_ALPHA, /* U+00c2f1: */ + RTUNI_ALPHA, /* U+00c2f2: */ + RTUNI_ALPHA, /* U+00c2f3: */ + RTUNI_ALPHA, /* U+00c2f4: */ + RTUNI_ALPHA, /* U+00c2f5: */ + RTUNI_ALPHA, /* U+00c2f6: */ + RTUNI_ALPHA, /* U+00c2f7: */ + RTUNI_ALPHA, /* U+00c2f8: */ + RTUNI_ALPHA, /* U+00c2f9: */ + RTUNI_ALPHA, /* U+00c2fa: */ + RTUNI_ALPHA, /* U+00c2fb: */ + RTUNI_ALPHA, /* U+00c2fc: */ + RTUNI_ALPHA, /* U+00c2fd: */ + RTUNI_ALPHA, /* U+00c2fe: */ + RTUNI_ALPHA, /* U+00c2ff: */ + RTUNI_ALPHA, /* U+00c300: */ + RTUNI_ALPHA, /* U+00c301: */ + RTUNI_ALPHA, /* U+00c302: */ + RTUNI_ALPHA, /* U+00c303: */ + RTUNI_ALPHA, /* U+00c304: */ + RTUNI_ALPHA, /* U+00c305: */ + RTUNI_ALPHA, /* U+00c306: */ + RTUNI_ALPHA, /* U+00c307: */ + RTUNI_ALPHA, /* U+00c308: */ + RTUNI_ALPHA, /* U+00c309: */ + RTUNI_ALPHA, /* U+00c30a: */ + RTUNI_ALPHA, /* U+00c30b: */ + RTUNI_ALPHA, /* U+00c30c: */ + RTUNI_ALPHA, /* U+00c30d: */ + RTUNI_ALPHA, /* U+00c30e: */ + RTUNI_ALPHA, /* U+00c30f: */ + RTUNI_ALPHA, /* U+00c310: */ + RTUNI_ALPHA, /* U+00c311: */ + RTUNI_ALPHA, /* U+00c312: */ + RTUNI_ALPHA, /* U+00c313: */ + RTUNI_ALPHA, /* U+00c314: */ + RTUNI_ALPHA, /* U+00c315: */ + RTUNI_ALPHA, /* U+00c316: */ + RTUNI_ALPHA, /* U+00c317: */ + RTUNI_ALPHA, /* U+00c318: */ + RTUNI_ALPHA, /* U+00c319: */ + RTUNI_ALPHA, /* U+00c31a: */ + RTUNI_ALPHA, /* U+00c31b: */ + RTUNI_ALPHA, /* U+00c31c: */ + RTUNI_ALPHA, /* U+00c31d: */ + RTUNI_ALPHA, /* U+00c31e: */ + RTUNI_ALPHA, /* U+00c31f: */ + RTUNI_ALPHA, /* U+00c320: */ + RTUNI_ALPHA, /* U+00c321: */ + RTUNI_ALPHA, /* U+00c322: */ + RTUNI_ALPHA, /* U+00c323: */ + RTUNI_ALPHA, /* U+00c324: */ + RTUNI_ALPHA, /* U+00c325: */ + RTUNI_ALPHA, /* U+00c326: */ + RTUNI_ALPHA, /* U+00c327: */ + RTUNI_ALPHA, /* U+00c328: */ + RTUNI_ALPHA, /* U+00c329: */ + RTUNI_ALPHA, /* U+00c32a: */ + RTUNI_ALPHA, /* U+00c32b: */ + RTUNI_ALPHA, /* U+00c32c: */ + RTUNI_ALPHA, /* U+00c32d: */ + RTUNI_ALPHA, /* U+00c32e: */ + RTUNI_ALPHA, /* U+00c32f: */ + RTUNI_ALPHA, /* U+00c330: */ + RTUNI_ALPHA, /* U+00c331: */ + RTUNI_ALPHA, /* U+00c332: */ + RTUNI_ALPHA, /* U+00c333: */ + RTUNI_ALPHA, /* U+00c334: */ + RTUNI_ALPHA, /* U+00c335: */ + RTUNI_ALPHA, /* U+00c336: */ + RTUNI_ALPHA, /* U+00c337: */ + RTUNI_ALPHA, /* U+00c338: */ + RTUNI_ALPHA, /* U+00c339: */ + RTUNI_ALPHA, /* U+00c33a: */ + RTUNI_ALPHA, /* U+00c33b: */ + RTUNI_ALPHA, /* U+00c33c: */ + RTUNI_ALPHA, /* U+00c33d: */ + RTUNI_ALPHA, /* U+00c33e: */ + RTUNI_ALPHA, /* U+00c33f: */ + RTUNI_ALPHA, /* U+00c340: */ + RTUNI_ALPHA, /* U+00c341: */ + RTUNI_ALPHA, /* U+00c342: */ + RTUNI_ALPHA, /* U+00c343: */ + RTUNI_ALPHA, /* U+00c344: */ + RTUNI_ALPHA, /* U+00c345: */ + RTUNI_ALPHA, /* U+00c346: */ + RTUNI_ALPHA, /* U+00c347: */ + RTUNI_ALPHA, /* U+00c348: */ + RTUNI_ALPHA, /* U+00c349: */ + RTUNI_ALPHA, /* U+00c34a: */ + RTUNI_ALPHA, /* U+00c34b: */ + RTUNI_ALPHA, /* U+00c34c: */ + RTUNI_ALPHA, /* U+00c34d: */ + RTUNI_ALPHA, /* U+00c34e: */ + RTUNI_ALPHA, /* U+00c34f: */ + RTUNI_ALPHA, /* U+00c350: */ + RTUNI_ALPHA, /* U+00c351: */ + RTUNI_ALPHA, /* U+00c352: */ + RTUNI_ALPHA, /* U+00c353: */ + RTUNI_ALPHA, /* U+00c354: */ + RTUNI_ALPHA, /* U+00c355: */ + RTUNI_ALPHA, /* U+00c356: */ + RTUNI_ALPHA, /* U+00c357: */ + RTUNI_ALPHA, /* U+00c358: */ + RTUNI_ALPHA, /* U+00c359: */ + RTUNI_ALPHA, /* U+00c35a: */ + RTUNI_ALPHA, /* U+00c35b: */ + RTUNI_ALPHA, /* U+00c35c: */ + RTUNI_ALPHA, /* U+00c35d: */ + RTUNI_ALPHA, /* U+00c35e: */ + RTUNI_ALPHA, /* U+00c35f: */ + RTUNI_ALPHA, /* U+00c360: */ + RTUNI_ALPHA, /* U+00c361: */ + RTUNI_ALPHA, /* U+00c362: */ + RTUNI_ALPHA, /* U+00c363: */ + RTUNI_ALPHA, /* U+00c364: */ + RTUNI_ALPHA, /* U+00c365: */ + RTUNI_ALPHA, /* U+00c366: */ + RTUNI_ALPHA, /* U+00c367: */ + RTUNI_ALPHA, /* U+00c368: */ + RTUNI_ALPHA, /* U+00c369: */ + RTUNI_ALPHA, /* U+00c36a: */ + RTUNI_ALPHA, /* U+00c36b: */ + RTUNI_ALPHA, /* U+00c36c: */ + RTUNI_ALPHA, /* U+00c36d: */ + RTUNI_ALPHA, /* U+00c36e: */ + RTUNI_ALPHA, /* U+00c36f: */ + RTUNI_ALPHA, /* U+00c370: */ + RTUNI_ALPHA, /* U+00c371: */ + RTUNI_ALPHA, /* U+00c372: */ + RTUNI_ALPHA, /* U+00c373: */ + RTUNI_ALPHA, /* U+00c374: */ + RTUNI_ALPHA, /* U+00c375: */ + RTUNI_ALPHA, /* U+00c376: */ + RTUNI_ALPHA, /* U+00c377: */ + RTUNI_ALPHA, /* U+00c378: */ + RTUNI_ALPHA, /* U+00c379: */ + RTUNI_ALPHA, /* U+00c37a: */ + RTUNI_ALPHA, /* U+00c37b: */ + RTUNI_ALPHA, /* U+00c37c: */ + RTUNI_ALPHA, /* U+00c37d: */ + RTUNI_ALPHA, /* U+00c37e: */ + RTUNI_ALPHA, /* U+00c37f: */ + RTUNI_ALPHA, /* U+00c380: */ + RTUNI_ALPHA, /* U+00c381: */ + RTUNI_ALPHA, /* U+00c382: */ + RTUNI_ALPHA, /* U+00c383: */ + RTUNI_ALPHA, /* U+00c384: */ + RTUNI_ALPHA, /* U+00c385: */ + RTUNI_ALPHA, /* U+00c386: */ + RTUNI_ALPHA, /* U+00c387: */ + RTUNI_ALPHA, /* U+00c388: */ + RTUNI_ALPHA, /* U+00c389: */ + RTUNI_ALPHA, /* U+00c38a: */ + RTUNI_ALPHA, /* U+00c38b: */ + RTUNI_ALPHA, /* U+00c38c: */ + RTUNI_ALPHA, /* U+00c38d: */ + RTUNI_ALPHA, /* U+00c38e: */ + RTUNI_ALPHA, /* U+00c38f: */ + RTUNI_ALPHA, /* U+00c390: */ + RTUNI_ALPHA, /* U+00c391: */ + RTUNI_ALPHA, /* U+00c392: */ + RTUNI_ALPHA, /* U+00c393: */ + RTUNI_ALPHA, /* U+00c394: */ + RTUNI_ALPHA, /* U+00c395: */ + RTUNI_ALPHA, /* U+00c396: */ + RTUNI_ALPHA, /* U+00c397: */ + RTUNI_ALPHA, /* U+00c398: */ + RTUNI_ALPHA, /* U+00c399: */ + RTUNI_ALPHA, /* U+00c39a: */ + RTUNI_ALPHA, /* U+00c39b: */ + RTUNI_ALPHA, /* U+00c39c: */ + RTUNI_ALPHA, /* U+00c39d: */ + RTUNI_ALPHA, /* U+00c39e: */ + RTUNI_ALPHA, /* U+00c39f: */ + RTUNI_ALPHA, /* U+00c3a0: */ + RTUNI_ALPHA, /* U+00c3a1: */ + RTUNI_ALPHA, /* U+00c3a2: */ + RTUNI_ALPHA, /* U+00c3a3: */ + RTUNI_ALPHA, /* U+00c3a4: */ + RTUNI_ALPHA, /* U+00c3a5: */ + RTUNI_ALPHA, /* U+00c3a6: */ + RTUNI_ALPHA, /* U+00c3a7: */ + RTUNI_ALPHA, /* U+00c3a8: */ + RTUNI_ALPHA, /* U+00c3a9: */ + RTUNI_ALPHA, /* U+00c3aa: */ + RTUNI_ALPHA, /* U+00c3ab: */ + RTUNI_ALPHA, /* U+00c3ac: */ + RTUNI_ALPHA, /* U+00c3ad: */ + RTUNI_ALPHA, /* U+00c3ae: */ + RTUNI_ALPHA, /* U+00c3af: */ + RTUNI_ALPHA, /* U+00c3b0: */ + RTUNI_ALPHA, /* U+00c3b1: */ + RTUNI_ALPHA, /* U+00c3b2: */ + RTUNI_ALPHA, /* U+00c3b3: */ + RTUNI_ALPHA, /* U+00c3b4: */ + RTUNI_ALPHA, /* U+00c3b5: */ + RTUNI_ALPHA, /* U+00c3b6: */ + RTUNI_ALPHA, /* U+00c3b7: */ + RTUNI_ALPHA, /* U+00c3b8: */ + RTUNI_ALPHA, /* U+00c3b9: */ + RTUNI_ALPHA, /* U+00c3ba: */ + RTUNI_ALPHA, /* U+00c3bb: */ + RTUNI_ALPHA, /* U+00c3bc: */ + RTUNI_ALPHA, /* U+00c3bd: */ + RTUNI_ALPHA, /* U+00c3be: */ + RTUNI_ALPHA, /* U+00c3bf: */ + RTUNI_ALPHA, /* U+00c3c0: */ + RTUNI_ALPHA, /* U+00c3c1: */ + RTUNI_ALPHA, /* U+00c3c2: */ + RTUNI_ALPHA, /* U+00c3c3: */ + RTUNI_ALPHA, /* U+00c3c4: */ + RTUNI_ALPHA, /* U+00c3c5: */ + RTUNI_ALPHA, /* U+00c3c6: */ + RTUNI_ALPHA, /* U+00c3c7: */ + RTUNI_ALPHA, /* U+00c3c8: */ + RTUNI_ALPHA, /* U+00c3c9: */ + RTUNI_ALPHA, /* U+00c3ca: */ + RTUNI_ALPHA, /* U+00c3cb: */ + RTUNI_ALPHA, /* U+00c3cc: */ + RTUNI_ALPHA, /* U+00c3cd: */ + RTUNI_ALPHA, /* U+00c3ce: */ + RTUNI_ALPHA, /* U+00c3cf: */ + RTUNI_ALPHA, /* U+00c3d0: */ + RTUNI_ALPHA, /* U+00c3d1: */ + RTUNI_ALPHA, /* U+00c3d2: */ + RTUNI_ALPHA, /* U+00c3d3: */ + RTUNI_ALPHA, /* U+00c3d4: */ + RTUNI_ALPHA, /* U+00c3d5: */ + RTUNI_ALPHA, /* U+00c3d6: */ + RTUNI_ALPHA, /* U+00c3d7: */ + RTUNI_ALPHA, /* U+00c3d8: */ + RTUNI_ALPHA, /* U+00c3d9: */ + RTUNI_ALPHA, /* U+00c3da: */ + RTUNI_ALPHA, /* U+00c3db: */ + RTUNI_ALPHA, /* U+00c3dc: */ + RTUNI_ALPHA, /* U+00c3dd: */ + RTUNI_ALPHA, /* U+00c3de: */ + RTUNI_ALPHA, /* U+00c3df: */ + RTUNI_ALPHA, /* U+00c3e0: */ + RTUNI_ALPHA, /* U+00c3e1: */ + RTUNI_ALPHA, /* U+00c3e2: */ + RTUNI_ALPHA, /* U+00c3e3: */ + RTUNI_ALPHA, /* U+00c3e4: */ + RTUNI_ALPHA, /* U+00c3e5: */ + RTUNI_ALPHA, /* U+00c3e6: */ + RTUNI_ALPHA, /* U+00c3e7: */ + RTUNI_ALPHA, /* U+00c3e8: */ + RTUNI_ALPHA, /* U+00c3e9: */ + RTUNI_ALPHA, /* U+00c3ea: */ + RTUNI_ALPHA, /* U+00c3eb: */ + RTUNI_ALPHA, /* U+00c3ec: */ + RTUNI_ALPHA, /* U+00c3ed: */ + RTUNI_ALPHA, /* U+00c3ee: */ + RTUNI_ALPHA, /* U+00c3ef: */ + RTUNI_ALPHA, /* U+00c3f0: */ + RTUNI_ALPHA, /* U+00c3f1: */ + RTUNI_ALPHA, /* U+00c3f2: */ + RTUNI_ALPHA, /* U+00c3f3: */ + RTUNI_ALPHA, /* U+00c3f4: */ + RTUNI_ALPHA, /* U+00c3f5: */ + RTUNI_ALPHA, /* U+00c3f6: */ + RTUNI_ALPHA, /* U+00c3f7: */ + RTUNI_ALPHA, /* U+00c3f8: */ + RTUNI_ALPHA, /* U+00c3f9: */ + RTUNI_ALPHA, /* U+00c3fa: */ + RTUNI_ALPHA, /* U+00c3fb: */ + RTUNI_ALPHA, /* U+00c3fc: */ + RTUNI_ALPHA, /* U+00c3fd: */ + RTUNI_ALPHA, /* U+00c3fe: */ + RTUNI_ALPHA, /* U+00c3ff: */ + RTUNI_ALPHA, /* U+00c400: */ + RTUNI_ALPHA, /* U+00c401: */ + RTUNI_ALPHA, /* U+00c402: */ + RTUNI_ALPHA, /* U+00c403: */ + RTUNI_ALPHA, /* U+00c404: */ + RTUNI_ALPHA, /* U+00c405: */ + RTUNI_ALPHA, /* U+00c406: */ + RTUNI_ALPHA, /* U+00c407: */ + RTUNI_ALPHA, /* U+00c408: */ + RTUNI_ALPHA, /* U+00c409: */ + RTUNI_ALPHA, /* U+00c40a: */ + RTUNI_ALPHA, /* U+00c40b: */ + RTUNI_ALPHA, /* U+00c40c: */ + RTUNI_ALPHA, /* U+00c40d: */ + RTUNI_ALPHA, /* U+00c40e: */ + RTUNI_ALPHA, /* U+00c40f: */ + RTUNI_ALPHA, /* U+00c410: */ + RTUNI_ALPHA, /* U+00c411: */ + RTUNI_ALPHA, /* U+00c412: */ + RTUNI_ALPHA, /* U+00c413: */ + RTUNI_ALPHA, /* U+00c414: */ + RTUNI_ALPHA, /* U+00c415: */ + RTUNI_ALPHA, /* U+00c416: */ + RTUNI_ALPHA, /* U+00c417: */ + RTUNI_ALPHA, /* U+00c418: */ + RTUNI_ALPHA, /* U+00c419: */ + RTUNI_ALPHA, /* U+00c41a: */ + RTUNI_ALPHA, /* U+00c41b: */ + RTUNI_ALPHA, /* U+00c41c: */ + RTUNI_ALPHA, /* U+00c41d: */ + RTUNI_ALPHA, /* U+00c41e: */ + RTUNI_ALPHA, /* U+00c41f: */ + RTUNI_ALPHA, /* U+00c420: */ + RTUNI_ALPHA, /* U+00c421: */ + RTUNI_ALPHA, /* U+00c422: */ + RTUNI_ALPHA, /* U+00c423: */ + RTUNI_ALPHA, /* U+00c424: */ + RTUNI_ALPHA, /* U+00c425: */ + RTUNI_ALPHA, /* U+00c426: */ + RTUNI_ALPHA, /* U+00c427: */ + RTUNI_ALPHA, /* U+00c428: */ + RTUNI_ALPHA, /* U+00c429: */ + RTUNI_ALPHA, /* U+00c42a: */ + RTUNI_ALPHA, /* U+00c42b: */ + RTUNI_ALPHA, /* U+00c42c: */ + RTUNI_ALPHA, /* U+00c42d: */ + RTUNI_ALPHA, /* U+00c42e: */ + RTUNI_ALPHA, /* U+00c42f: */ + RTUNI_ALPHA, /* U+00c430: */ + RTUNI_ALPHA, /* U+00c431: */ + RTUNI_ALPHA, /* U+00c432: */ + RTUNI_ALPHA, /* U+00c433: */ + RTUNI_ALPHA, /* U+00c434: */ + RTUNI_ALPHA, /* U+00c435: */ + RTUNI_ALPHA, /* U+00c436: */ + RTUNI_ALPHA, /* U+00c437: */ + RTUNI_ALPHA, /* U+00c438: */ + RTUNI_ALPHA, /* U+00c439: */ + RTUNI_ALPHA, /* U+00c43a: */ + RTUNI_ALPHA, /* U+00c43b: */ + RTUNI_ALPHA, /* U+00c43c: */ + RTUNI_ALPHA, /* U+00c43d: */ + RTUNI_ALPHA, /* U+00c43e: */ + RTUNI_ALPHA, /* U+00c43f: */ + RTUNI_ALPHA, /* U+00c440: */ + RTUNI_ALPHA, /* U+00c441: */ + RTUNI_ALPHA, /* U+00c442: */ + RTUNI_ALPHA, /* U+00c443: */ + RTUNI_ALPHA, /* U+00c444: */ + RTUNI_ALPHA, /* U+00c445: */ + RTUNI_ALPHA, /* U+00c446: */ + RTUNI_ALPHA, /* U+00c447: */ + RTUNI_ALPHA, /* U+00c448: */ + RTUNI_ALPHA, /* U+00c449: */ + RTUNI_ALPHA, /* U+00c44a: */ + RTUNI_ALPHA, /* U+00c44b: */ + RTUNI_ALPHA, /* U+00c44c: */ + RTUNI_ALPHA, /* U+00c44d: */ + RTUNI_ALPHA, /* U+00c44e: */ + RTUNI_ALPHA, /* U+00c44f: */ + RTUNI_ALPHA, /* U+00c450: */ + RTUNI_ALPHA, /* U+00c451: */ + RTUNI_ALPHA, /* U+00c452: */ + RTUNI_ALPHA, /* U+00c453: */ + RTUNI_ALPHA, /* U+00c454: */ + RTUNI_ALPHA, /* U+00c455: */ + RTUNI_ALPHA, /* U+00c456: */ + RTUNI_ALPHA, /* U+00c457: */ + RTUNI_ALPHA, /* U+00c458: */ + RTUNI_ALPHA, /* U+00c459: */ + RTUNI_ALPHA, /* U+00c45a: */ + RTUNI_ALPHA, /* U+00c45b: */ + RTUNI_ALPHA, /* U+00c45c: */ + RTUNI_ALPHA, /* U+00c45d: */ + RTUNI_ALPHA, /* U+00c45e: */ + RTUNI_ALPHA, /* U+00c45f: */ + RTUNI_ALPHA, /* U+00c460: */ + RTUNI_ALPHA, /* U+00c461: */ + RTUNI_ALPHA, /* U+00c462: */ + RTUNI_ALPHA, /* U+00c463: */ + RTUNI_ALPHA, /* U+00c464: */ + RTUNI_ALPHA, /* U+00c465: */ + RTUNI_ALPHA, /* U+00c466: */ + RTUNI_ALPHA, /* U+00c467: */ + RTUNI_ALPHA, /* U+00c468: */ + RTUNI_ALPHA, /* U+00c469: */ + RTUNI_ALPHA, /* U+00c46a: */ + RTUNI_ALPHA, /* U+00c46b: */ + RTUNI_ALPHA, /* U+00c46c: */ + RTUNI_ALPHA, /* U+00c46d: */ + RTUNI_ALPHA, /* U+00c46e: */ + RTUNI_ALPHA, /* U+00c46f: */ + RTUNI_ALPHA, /* U+00c470: */ + RTUNI_ALPHA, /* U+00c471: */ + RTUNI_ALPHA, /* U+00c472: */ + RTUNI_ALPHA, /* U+00c473: */ + RTUNI_ALPHA, /* U+00c474: */ + RTUNI_ALPHA, /* U+00c475: */ + RTUNI_ALPHA, /* U+00c476: */ + RTUNI_ALPHA, /* U+00c477: */ + RTUNI_ALPHA, /* U+00c478: */ + RTUNI_ALPHA, /* U+00c479: */ + RTUNI_ALPHA, /* U+00c47a: */ + RTUNI_ALPHA, /* U+00c47b: */ + RTUNI_ALPHA, /* U+00c47c: */ + RTUNI_ALPHA, /* U+00c47d: */ + RTUNI_ALPHA, /* U+00c47e: */ + RTUNI_ALPHA, /* U+00c47f: */ + RTUNI_ALPHA, /* U+00c480: */ + RTUNI_ALPHA, /* U+00c481: */ + RTUNI_ALPHA, /* U+00c482: */ + RTUNI_ALPHA, /* U+00c483: */ + RTUNI_ALPHA, /* U+00c484: */ + RTUNI_ALPHA, /* U+00c485: */ + RTUNI_ALPHA, /* U+00c486: */ + RTUNI_ALPHA, /* U+00c487: */ + RTUNI_ALPHA, /* U+00c488: */ + RTUNI_ALPHA, /* U+00c489: */ + RTUNI_ALPHA, /* U+00c48a: */ + RTUNI_ALPHA, /* U+00c48b: */ + RTUNI_ALPHA, /* U+00c48c: */ + RTUNI_ALPHA, /* U+00c48d: */ + RTUNI_ALPHA, /* U+00c48e: */ + RTUNI_ALPHA, /* U+00c48f: */ + RTUNI_ALPHA, /* U+00c490: */ + RTUNI_ALPHA, /* U+00c491: */ + RTUNI_ALPHA, /* U+00c492: */ + RTUNI_ALPHA, /* U+00c493: */ + RTUNI_ALPHA, /* U+00c494: */ + RTUNI_ALPHA, /* U+00c495: */ + RTUNI_ALPHA, /* U+00c496: */ + RTUNI_ALPHA, /* U+00c497: */ + RTUNI_ALPHA, /* U+00c498: */ + RTUNI_ALPHA, /* U+00c499: */ + RTUNI_ALPHA, /* U+00c49a: */ + RTUNI_ALPHA, /* U+00c49b: */ + RTUNI_ALPHA, /* U+00c49c: */ + RTUNI_ALPHA, /* U+00c49d: */ + RTUNI_ALPHA, /* U+00c49e: */ + RTUNI_ALPHA, /* U+00c49f: */ + RTUNI_ALPHA, /* U+00c4a0: */ + RTUNI_ALPHA, /* U+00c4a1: */ + RTUNI_ALPHA, /* U+00c4a2: */ + RTUNI_ALPHA, /* U+00c4a3: */ + RTUNI_ALPHA, /* U+00c4a4: */ + RTUNI_ALPHA, /* U+00c4a5: */ + RTUNI_ALPHA, /* U+00c4a6: */ + RTUNI_ALPHA, /* U+00c4a7: */ + RTUNI_ALPHA, /* U+00c4a8: */ + RTUNI_ALPHA, /* U+00c4a9: */ + RTUNI_ALPHA, /* U+00c4aa: */ + RTUNI_ALPHA, /* U+00c4ab: */ + RTUNI_ALPHA, /* U+00c4ac: */ + RTUNI_ALPHA, /* U+00c4ad: */ + RTUNI_ALPHA, /* U+00c4ae: */ + RTUNI_ALPHA, /* U+00c4af: */ + RTUNI_ALPHA, /* U+00c4b0: */ + RTUNI_ALPHA, /* U+00c4b1: */ + RTUNI_ALPHA, /* U+00c4b2: */ + RTUNI_ALPHA, /* U+00c4b3: */ + RTUNI_ALPHA, /* U+00c4b4: */ + RTUNI_ALPHA, /* U+00c4b5: */ + RTUNI_ALPHA, /* U+00c4b6: */ + RTUNI_ALPHA, /* U+00c4b7: */ + RTUNI_ALPHA, /* U+00c4b8: */ + RTUNI_ALPHA, /* U+00c4b9: */ + RTUNI_ALPHA, /* U+00c4ba: */ + RTUNI_ALPHA, /* U+00c4bb: */ + RTUNI_ALPHA, /* U+00c4bc: */ + RTUNI_ALPHA, /* U+00c4bd: */ + RTUNI_ALPHA, /* U+00c4be: */ + RTUNI_ALPHA, /* U+00c4bf: */ + RTUNI_ALPHA, /* U+00c4c0: */ + RTUNI_ALPHA, /* U+00c4c1: */ + RTUNI_ALPHA, /* U+00c4c2: */ + RTUNI_ALPHA, /* U+00c4c3: */ + RTUNI_ALPHA, /* U+00c4c4: */ + RTUNI_ALPHA, /* U+00c4c5: */ + RTUNI_ALPHA, /* U+00c4c6: */ + RTUNI_ALPHA, /* U+00c4c7: */ + RTUNI_ALPHA, /* U+00c4c8: */ + RTUNI_ALPHA, /* U+00c4c9: */ + RTUNI_ALPHA, /* U+00c4ca: */ + RTUNI_ALPHA, /* U+00c4cb: */ + RTUNI_ALPHA, /* U+00c4cc: */ + RTUNI_ALPHA, /* U+00c4cd: */ + RTUNI_ALPHA, /* U+00c4ce: */ + RTUNI_ALPHA, /* U+00c4cf: */ + RTUNI_ALPHA, /* U+00c4d0: */ + RTUNI_ALPHA, /* U+00c4d1: */ + RTUNI_ALPHA, /* U+00c4d2: */ + RTUNI_ALPHA, /* U+00c4d3: */ + RTUNI_ALPHA, /* U+00c4d4: */ + RTUNI_ALPHA, /* U+00c4d5: */ + RTUNI_ALPHA, /* U+00c4d6: */ + RTUNI_ALPHA, /* U+00c4d7: */ + RTUNI_ALPHA, /* U+00c4d8: */ + RTUNI_ALPHA, /* U+00c4d9: */ + RTUNI_ALPHA, /* U+00c4da: */ + RTUNI_ALPHA, /* U+00c4db: */ + RTUNI_ALPHA, /* U+00c4dc: */ + RTUNI_ALPHA, /* U+00c4dd: */ + RTUNI_ALPHA, /* U+00c4de: */ + RTUNI_ALPHA, /* U+00c4df: */ + RTUNI_ALPHA, /* U+00c4e0: */ + RTUNI_ALPHA, /* U+00c4e1: */ + RTUNI_ALPHA, /* U+00c4e2: */ + RTUNI_ALPHA, /* U+00c4e3: */ + RTUNI_ALPHA, /* U+00c4e4: */ + RTUNI_ALPHA, /* U+00c4e5: */ + RTUNI_ALPHA, /* U+00c4e6: */ + RTUNI_ALPHA, /* U+00c4e7: */ + RTUNI_ALPHA, /* U+00c4e8: */ + RTUNI_ALPHA, /* U+00c4e9: */ + RTUNI_ALPHA, /* U+00c4ea: */ + RTUNI_ALPHA, /* U+00c4eb: */ + RTUNI_ALPHA, /* U+00c4ec: */ + RTUNI_ALPHA, /* U+00c4ed: */ + RTUNI_ALPHA, /* U+00c4ee: */ + RTUNI_ALPHA, /* U+00c4ef: */ + RTUNI_ALPHA, /* U+00c4f0: */ + RTUNI_ALPHA, /* U+00c4f1: */ + RTUNI_ALPHA, /* U+00c4f2: */ + RTUNI_ALPHA, /* U+00c4f3: */ + RTUNI_ALPHA, /* U+00c4f4: */ + RTUNI_ALPHA, /* U+00c4f5: */ + RTUNI_ALPHA, /* U+00c4f6: */ + RTUNI_ALPHA, /* U+00c4f7: */ + RTUNI_ALPHA, /* U+00c4f8: */ + RTUNI_ALPHA, /* U+00c4f9: */ + RTUNI_ALPHA, /* U+00c4fa: */ + RTUNI_ALPHA, /* U+00c4fb: */ + RTUNI_ALPHA, /* U+00c4fc: */ + RTUNI_ALPHA, /* U+00c4fd: */ + RTUNI_ALPHA, /* U+00c4fe: */ + RTUNI_ALPHA, /* U+00c4ff: */ + RTUNI_ALPHA, /* U+00c500: */ + RTUNI_ALPHA, /* U+00c501: */ + RTUNI_ALPHA, /* U+00c502: */ + RTUNI_ALPHA, /* U+00c503: */ + RTUNI_ALPHA, /* U+00c504: */ + RTUNI_ALPHA, /* U+00c505: */ + RTUNI_ALPHA, /* U+00c506: */ + RTUNI_ALPHA, /* U+00c507: */ + RTUNI_ALPHA, /* U+00c508: */ + RTUNI_ALPHA, /* U+00c509: */ + RTUNI_ALPHA, /* U+00c50a: */ + RTUNI_ALPHA, /* U+00c50b: */ + RTUNI_ALPHA, /* U+00c50c: */ + RTUNI_ALPHA, /* U+00c50d: */ + RTUNI_ALPHA, /* U+00c50e: */ + RTUNI_ALPHA, /* U+00c50f: */ + RTUNI_ALPHA, /* U+00c510: */ + RTUNI_ALPHA, /* U+00c511: */ + RTUNI_ALPHA, /* U+00c512: */ + RTUNI_ALPHA, /* U+00c513: */ + RTUNI_ALPHA, /* U+00c514: */ + RTUNI_ALPHA, /* U+00c515: */ + RTUNI_ALPHA, /* U+00c516: */ + RTUNI_ALPHA, /* U+00c517: */ + RTUNI_ALPHA, /* U+00c518: */ + RTUNI_ALPHA, /* U+00c519: */ + RTUNI_ALPHA, /* U+00c51a: */ + RTUNI_ALPHA, /* U+00c51b: */ + RTUNI_ALPHA, /* U+00c51c: */ + RTUNI_ALPHA, /* U+00c51d: */ + RTUNI_ALPHA, /* U+00c51e: */ + RTUNI_ALPHA, /* U+00c51f: */ + RTUNI_ALPHA, /* U+00c520: */ + RTUNI_ALPHA, /* U+00c521: */ + RTUNI_ALPHA, /* U+00c522: */ + RTUNI_ALPHA, /* U+00c523: */ + RTUNI_ALPHA, /* U+00c524: */ + RTUNI_ALPHA, /* U+00c525: */ + RTUNI_ALPHA, /* U+00c526: */ + RTUNI_ALPHA, /* U+00c527: */ + RTUNI_ALPHA, /* U+00c528: */ + RTUNI_ALPHA, /* U+00c529: */ + RTUNI_ALPHA, /* U+00c52a: */ + RTUNI_ALPHA, /* U+00c52b: */ + RTUNI_ALPHA, /* U+00c52c: */ + RTUNI_ALPHA, /* U+00c52d: */ + RTUNI_ALPHA, /* U+00c52e: */ + RTUNI_ALPHA, /* U+00c52f: */ + RTUNI_ALPHA, /* U+00c530: */ + RTUNI_ALPHA, /* U+00c531: */ + RTUNI_ALPHA, /* U+00c532: */ + RTUNI_ALPHA, /* U+00c533: */ + RTUNI_ALPHA, /* U+00c534: */ + RTUNI_ALPHA, /* U+00c535: */ + RTUNI_ALPHA, /* U+00c536: */ + RTUNI_ALPHA, /* U+00c537: */ + RTUNI_ALPHA, /* U+00c538: */ + RTUNI_ALPHA, /* U+00c539: */ + RTUNI_ALPHA, /* U+00c53a: */ + RTUNI_ALPHA, /* U+00c53b: */ + RTUNI_ALPHA, /* U+00c53c: */ + RTUNI_ALPHA, /* U+00c53d: */ + RTUNI_ALPHA, /* U+00c53e: */ + RTUNI_ALPHA, /* U+00c53f: */ + RTUNI_ALPHA, /* U+00c540: */ + RTUNI_ALPHA, /* U+00c541: */ + RTUNI_ALPHA, /* U+00c542: */ + RTUNI_ALPHA, /* U+00c543: */ + RTUNI_ALPHA, /* U+00c544: */ + RTUNI_ALPHA, /* U+00c545: */ + RTUNI_ALPHA, /* U+00c546: */ + RTUNI_ALPHA, /* U+00c547: */ + RTUNI_ALPHA, /* U+00c548: */ + RTUNI_ALPHA, /* U+00c549: */ + RTUNI_ALPHA, /* U+00c54a: */ + RTUNI_ALPHA, /* U+00c54b: */ + RTUNI_ALPHA, /* U+00c54c: */ + RTUNI_ALPHA, /* U+00c54d: */ + RTUNI_ALPHA, /* U+00c54e: */ + RTUNI_ALPHA, /* U+00c54f: */ + RTUNI_ALPHA, /* U+00c550: */ + RTUNI_ALPHA, /* U+00c551: */ + RTUNI_ALPHA, /* U+00c552: */ + RTUNI_ALPHA, /* U+00c553: */ + RTUNI_ALPHA, /* U+00c554: */ + RTUNI_ALPHA, /* U+00c555: */ + RTUNI_ALPHA, /* U+00c556: */ + RTUNI_ALPHA, /* U+00c557: */ + RTUNI_ALPHA, /* U+00c558: */ + RTUNI_ALPHA, /* U+00c559: */ + RTUNI_ALPHA, /* U+00c55a: */ + RTUNI_ALPHA, /* U+00c55b: */ + RTUNI_ALPHA, /* U+00c55c: */ + RTUNI_ALPHA, /* U+00c55d: */ + RTUNI_ALPHA, /* U+00c55e: */ + RTUNI_ALPHA, /* U+00c55f: */ + RTUNI_ALPHA, /* U+00c560: */ + RTUNI_ALPHA, /* U+00c561: */ + RTUNI_ALPHA, /* U+00c562: */ + RTUNI_ALPHA, /* U+00c563: */ + RTUNI_ALPHA, /* U+00c564: */ + RTUNI_ALPHA, /* U+00c565: */ + RTUNI_ALPHA, /* U+00c566: */ + RTUNI_ALPHA, /* U+00c567: */ + RTUNI_ALPHA, /* U+00c568: */ + RTUNI_ALPHA, /* U+00c569: */ + RTUNI_ALPHA, /* U+00c56a: */ + RTUNI_ALPHA, /* U+00c56b: */ + RTUNI_ALPHA, /* U+00c56c: */ + RTUNI_ALPHA, /* U+00c56d: */ + RTUNI_ALPHA, /* U+00c56e: */ + RTUNI_ALPHA, /* U+00c56f: */ + RTUNI_ALPHA, /* U+00c570: */ + RTUNI_ALPHA, /* U+00c571: */ + RTUNI_ALPHA, /* U+00c572: */ + RTUNI_ALPHA, /* U+00c573: */ + RTUNI_ALPHA, /* U+00c574: */ + RTUNI_ALPHA, /* U+00c575: */ + RTUNI_ALPHA, /* U+00c576: */ + RTUNI_ALPHA, /* U+00c577: */ + RTUNI_ALPHA, /* U+00c578: */ + RTUNI_ALPHA, /* U+00c579: */ + RTUNI_ALPHA, /* U+00c57a: */ + RTUNI_ALPHA, /* U+00c57b: */ + RTUNI_ALPHA, /* U+00c57c: */ + RTUNI_ALPHA, /* U+00c57d: */ + RTUNI_ALPHA, /* U+00c57e: */ + RTUNI_ALPHA, /* U+00c57f: */ + RTUNI_ALPHA, /* U+00c580: */ + RTUNI_ALPHA, /* U+00c581: */ + RTUNI_ALPHA, /* U+00c582: */ + RTUNI_ALPHA, /* U+00c583: */ + RTUNI_ALPHA, /* U+00c584: */ + RTUNI_ALPHA, /* U+00c585: */ + RTUNI_ALPHA, /* U+00c586: */ + RTUNI_ALPHA, /* U+00c587: */ + RTUNI_ALPHA, /* U+00c588: */ + RTUNI_ALPHA, /* U+00c589: */ + RTUNI_ALPHA, /* U+00c58a: */ + RTUNI_ALPHA, /* U+00c58b: */ + RTUNI_ALPHA, /* U+00c58c: */ + RTUNI_ALPHA, /* U+00c58d: */ + RTUNI_ALPHA, /* U+00c58e: */ + RTUNI_ALPHA, /* U+00c58f: */ + RTUNI_ALPHA, /* U+00c590: */ + RTUNI_ALPHA, /* U+00c591: */ + RTUNI_ALPHA, /* U+00c592: */ + RTUNI_ALPHA, /* U+00c593: */ + RTUNI_ALPHA, /* U+00c594: */ + RTUNI_ALPHA, /* U+00c595: */ + RTUNI_ALPHA, /* U+00c596: */ + RTUNI_ALPHA, /* U+00c597: */ + RTUNI_ALPHA, /* U+00c598: */ + RTUNI_ALPHA, /* U+00c599: */ + RTUNI_ALPHA, /* U+00c59a: */ + RTUNI_ALPHA, /* U+00c59b: */ + RTUNI_ALPHA, /* U+00c59c: */ + RTUNI_ALPHA, /* U+00c59d: */ + RTUNI_ALPHA, /* U+00c59e: */ + RTUNI_ALPHA, /* U+00c59f: */ + RTUNI_ALPHA, /* U+00c5a0: */ + RTUNI_ALPHA, /* U+00c5a1: */ + RTUNI_ALPHA, /* U+00c5a2: */ + RTUNI_ALPHA, /* U+00c5a3: */ + RTUNI_ALPHA, /* U+00c5a4: */ + RTUNI_ALPHA, /* U+00c5a5: */ + RTUNI_ALPHA, /* U+00c5a6: */ + RTUNI_ALPHA, /* U+00c5a7: */ + RTUNI_ALPHA, /* U+00c5a8: */ + RTUNI_ALPHA, /* U+00c5a9: */ + RTUNI_ALPHA, /* U+00c5aa: */ + RTUNI_ALPHA, /* U+00c5ab: */ + RTUNI_ALPHA, /* U+00c5ac: */ + RTUNI_ALPHA, /* U+00c5ad: */ + RTUNI_ALPHA, /* U+00c5ae: */ + RTUNI_ALPHA, /* U+00c5af: */ + RTUNI_ALPHA, /* U+00c5b0: */ + RTUNI_ALPHA, /* U+00c5b1: */ + RTUNI_ALPHA, /* U+00c5b2: */ + RTUNI_ALPHA, /* U+00c5b3: */ + RTUNI_ALPHA, /* U+00c5b4: */ + RTUNI_ALPHA, /* U+00c5b5: */ + RTUNI_ALPHA, /* U+00c5b6: */ + RTUNI_ALPHA, /* U+00c5b7: */ + RTUNI_ALPHA, /* U+00c5b8: */ + RTUNI_ALPHA, /* U+00c5b9: */ + RTUNI_ALPHA, /* U+00c5ba: */ + RTUNI_ALPHA, /* U+00c5bb: */ + RTUNI_ALPHA, /* U+00c5bc: */ + RTUNI_ALPHA, /* U+00c5bd: */ + RTUNI_ALPHA, /* U+00c5be: */ + RTUNI_ALPHA, /* U+00c5bf: */ + RTUNI_ALPHA, /* U+00c5c0: */ + RTUNI_ALPHA, /* U+00c5c1: */ + RTUNI_ALPHA, /* U+00c5c2: */ + RTUNI_ALPHA, /* U+00c5c3: */ + RTUNI_ALPHA, /* U+00c5c4: */ + RTUNI_ALPHA, /* U+00c5c5: */ + RTUNI_ALPHA, /* U+00c5c6: */ + RTUNI_ALPHA, /* U+00c5c7: */ + RTUNI_ALPHA, /* U+00c5c8: */ + RTUNI_ALPHA, /* U+00c5c9: */ + RTUNI_ALPHA, /* U+00c5ca: */ + RTUNI_ALPHA, /* U+00c5cb: */ + RTUNI_ALPHA, /* U+00c5cc: */ + RTUNI_ALPHA, /* U+00c5cd: */ + RTUNI_ALPHA, /* U+00c5ce: */ + RTUNI_ALPHA, /* U+00c5cf: */ + RTUNI_ALPHA, /* U+00c5d0: */ + RTUNI_ALPHA, /* U+00c5d1: */ + RTUNI_ALPHA, /* U+00c5d2: */ + RTUNI_ALPHA, /* U+00c5d3: */ + RTUNI_ALPHA, /* U+00c5d4: */ + RTUNI_ALPHA, /* U+00c5d5: */ + RTUNI_ALPHA, /* U+00c5d6: */ + RTUNI_ALPHA, /* U+00c5d7: */ + RTUNI_ALPHA, /* U+00c5d8: */ + RTUNI_ALPHA, /* U+00c5d9: */ + RTUNI_ALPHA, /* U+00c5da: */ + RTUNI_ALPHA, /* U+00c5db: */ + RTUNI_ALPHA, /* U+00c5dc: */ + RTUNI_ALPHA, /* U+00c5dd: */ + RTUNI_ALPHA, /* U+00c5de: */ + RTUNI_ALPHA, /* U+00c5df: */ + RTUNI_ALPHA, /* U+00c5e0: */ + RTUNI_ALPHA, /* U+00c5e1: */ + RTUNI_ALPHA, /* U+00c5e2: */ + RTUNI_ALPHA, /* U+00c5e3: */ + RTUNI_ALPHA, /* U+00c5e4: */ + RTUNI_ALPHA, /* U+00c5e5: */ + RTUNI_ALPHA, /* U+00c5e6: */ + RTUNI_ALPHA, /* U+00c5e7: */ + RTUNI_ALPHA, /* U+00c5e8: */ + RTUNI_ALPHA, /* U+00c5e9: */ + RTUNI_ALPHA, /* U+00c5ea: */ + RTUNI_ALPHA, /* U+00c5eb: */ + RTUNI_ALPHA, /* U+00c5ec: */ + RTUNI_ALPHA, /* U+00c5ed: */ + RTUNI_ALPHA, /* U+00c5ee: */ + RTUNI_ALPHA, /* U+00c5ef: */ + RTUNI_ALPHA, /* U+00c5f0: */ + RTUNI_ALPHA, /* U+00c5f1: */ + RTUNI_ALPHA, /* U+00c5f2: */ + RTUNI_ALPHA, /* U+00c5f3: */ + RTUNI_ALPHA, /* U+00c5f4: */ + RTUNI_ALPHA, /* U+00c5f5: */ + RTUNI_ALPHA, /* U+00c5f6: */ + RTUNI_ALPHA, /* U+00c5f7: */ + RTUNI_ALPHA, /* U+00c5f8: */ + RTUNI_ALPHA, /* U+00c5f9: */ + RTUNI_ALPHA, /* U+00c5fa: */ + RTUNI_ALPHA, /* U+00c5fb: */ + RTUNI_ALPHA, /* U+00c5fc: */ + RTUNI_ALPHA, /* U+00c5fd: */ + RTUNI_ALPHA, /* U+00c5fe: */ + RTUNI_ALPHA, /* U+00c5ff: */ + RTUNI_ALPHA, /* U+00c600: */ + RTUNI_ALPHA, /* U+00c601: */ + RTUNI_ALPHA, /* U+00c602: */ + RTUNI_ALPHA, /* U+00c603: */ + RTUNI_ALPHA, /* U+00c604: */ + RTUNI_ALPHA, /* U+00c605: */ + RTUNI_ALPHA, /* U+00c606: */ + RTUNI_ALPHA, /* U+00c607: */ + RTUNI_ALPHA, /* U+00c608: */ + RTUNI_ALPHA, /* U+00c609: */ + RTUNI_ALPHA, /* U+00c60a: */ + RTUNI_ALPHA, /* U+00c60b: */ + RTUNI_ALPHA, /* U+00c60c: */ + RTUNI_ALPHA, /* U+00c60d: */ + RTUNI_ALPHA, /* U+00c60e: */ + RTUNI_ALPHA, /* U+00c60f: */ + RTUNI_ALPHA, /* U+00c610: */ + RTUNI_ALPHA, /* U+00c611: */ + RTUNI_ALPHA, /* U+00c612: */ + RTUNI_ALPHA, /* U+00c613: */ + RTUNI_ALPHA, /* U+00c614: */ + RTUNI_ALPHA, /* U+00c615: */ + RTUNI_ALPHA, /* U+00c616: */ + RTUNI_ALPHA, /* U+00c617: */ + RTUNI_ALPHA, /* U+00c618: */ + RTUNI_ALPHA, /* U+00c619: */ + RTUNI_ALPHA, /* U+00c61a: */ + RTUNI_ALPHA, /* U+00c61b: */ + RTUNI_ALPHA, /* U+00c61c: */ + RTUNI_ALPHA, /* U+00c61d: */ + RTUNI_ALPHA, /* U+00c61e: */ + RTUNI_ALPHA, /* U+00c61f: */ + RTUNI_ALPHA, /* U+00c620: */ + RTUNI_ALPHA, /* U+00c621: */ + RTUNI_ALPHA, /* U+00c622: */ + RTUNI_ALPHA, /* U+00c623: */ + RTUNI_ALPHA, /* U+00c624: */ + RTUNI_ALPHA, /* U+00c625: */ + RTUNI_ALPHA, /* U+00c626: */ + RTUNI_ALPHA, /* U+00c627: */ + RTUNI_ALPHA, /* U+00c628: */ + RTUNI_ALPHA, /* U+00c629: */ + RTUNI_ALPHA, /* U+00c62a: */ + RTUNI_ALPHA, /* U+00c62b: */ + RTUNI_ALPHA, /* U+00c62c: */ + RTUNI_ALPHA, /* U+00c62d: */ + RTUNI_ALPHA, /* U+00c62e: */ + RTUNI_ALPHA, /* U+00c62f: */ + RTUNI_ALPHA, /* U+00c630: */ + RTUNI_ALPHA, /* U+00c631: */ + RTUNI_ALPHA, /* U+00c632: */ + RTUNI_ALPHA, /* U+00c633: */ + RTUNI_ALPHA, /* U+00c634: */ + RTUNI_ALPHA, /* U+00c635: */ + RTUNI_ALPHA, /* U+00c636: */ + RTUNI_ALPHA, /* U+00c637: */ + RTUNI_ALPHA, /* U+00c638: */ + RTUNI_ALPHA, /* U+00c639: */ + RTUNI_ALPHA, /* U+00c63a: */ + RTUNI_ALPHA, /* U+00c63b: */ + RTUNI_ALPHA, /* U+00c63c: */ + RTUNI_ALPHA, /* U+00c63d: */ + RTUNI_ALPHA, /* U+00c63e: */ + RTUNI_ALPHA, /* U+00c63f: */ + RTUNI_ALPHA, /* U+00c640: */ + RTUNI_ALPHA, /* U+00c641: */ + RTUNI_ALPHA, /* U+00c642: */ + RTUNI_ALPHA, /* U+00c643: */ + RTUNI_ALPHA, /* U+00c644: */ + RTUNI_ALPHA, /* U+00c645: */ + RTUNI_ALPHA, /* U+00c646: */ + RTUNI_ALPHA, /* U+00c647: */ + RTUNI_ALPHA, /* U+00c648: */ + RTUNI_ALPHA, /* U+00c649: */ + RTUNI_ALPHA, /* U+00c64a: */ + RTUNI_ALPHA, /* U+00c64b: */ + RTUNI_ALPHA, /* U+00c64c: */ + RTUNI_ALPHA, /* U+00c64d: */ + RTUNI_ALPHA, /* U+00c64e: */ + RTUNI_ALPHA, /* U+00c64f: */ + RTUNI_ALPHA, /* U+00c650: */ + RTUNI_ALPHA, /* U+00c651: */ + RTUNI_ALPHA, /* U+00c652: */ + RTUNI_ALPHA, /* U+00c653: */ + RTUNI_ALPHA, /* U+00c654: */ + RTUNI_ALPHA, /* U+00c655: */ + RTUNI_ALPHA, /* U+00c656: */ + RTUNI_ALPHA, /* U+00c657: */ + RTUNI_ALPHA, /* U+00c658: */ + RTUNI_ALPHA, /* U+00c659: */ + RTUNI_ALPHA, /* U+00c65a: */ + RTUNI_ALPHA, /* U+00c65b: */ + RTUNI_ALPHA, /* U+00c65c: */ + RTUNI_ALPHA, /* U+00c65d: */ + RTUNI_ALPHA, /* U+00c65e: */ + RTUNI_ALPHA, /* U+00c65f: */ + RTUNI_ALPHA, /* U+00c660: */ + RTUNI_ALPHA, /* U+00c661: */ + RTUNI_ALPHA, /* U+00c662: */ + RTUNI_ALPHA, /* U+00c663: */ + RTUNI_ALPHA, /* U+00c664: */ + RTUNI_ALPHA, /* U+00c665: */ + RTUNI_ALPHA, /* U+00c666: */ + RTUNI_ALPHA, /* U+00c667: */ + RTUNI_ALPHA, /* U+00c668: */ + RTUNI_ALPHA, /* U+00c669: */ + RTUNI_ALPHA, /* U+00c66a: */ + RTUNI_ALPHA, /* U+00c66b: */ + RTUNI_ALPHA, /* U+00c66c: */ + RTUNI_ALPHA, /* U+00c66d: */ + RTUNI_ALPHA, /* U+00c66e: */ + RTUNI_ALPHA, /* U+00c66f: */ + RTUNI_ALPHA, /* U+00c670: */ + RTUNI_ALPHA, /* U+00c671: */ + RTUNI_ALPHA, /* U+00c672: */ + RTUNI_ALPHA, /* U+00c673: */ + RTUNI_ALPHA, /* U+00c674: */ + RTUNI_ALPHA, /* U+00c675: */ + RTUNI_ALPHA, /* U+00c676: */ + RTUNI_ALPHA, /* U+00c677: */ + RTUNI_ALPHA, /* U+00c678: */ + RTUNI_ALPHA, /* U+00c679: */ + RTUNI_ALPHA, /* U+00c67a: */ + RTUNI_ALPHA, /* U+00c67b: */ + RTUNI_ALPHA, /* U+00c67c: */ + RTUNI_ALPHA, /* U+00c67d: */ + RTUNI_ALPHA, /* U+00c67e: */ + RTUNI_ALPHA, /* U+00c67f: */ + RTUNI_ALPHA, /* U+00c680: */ + RTUNI_ALPHA, /* U+00c681: */ + RTUNI_ALPHA, /* U+00c682: */ + RTUNI_ALPHA, /* U+00c683: */ + RTUNI_ALPHA, /* U+00c684: */ + RTUNI_ALPHA, /* U+00c685: */ + RTUNI_ALPHA, /* U+00c686: */ + RTUNI_ALPHA, /* U+00c687: */ + RTUNI_ALPHA, /* U+00c688: */ + RTUNI_ALPHA, /* U+00c689: */ + RTUNI_ALPHA, /* U+00c68a: */ + RTUNI_ALPHA, /* U+00c68b: */ + RTUNI_ALPHA, /* U+00c68c: */ + RTUNI_ALPHA, /* U+00c68d: */ + RTUNI_ALPHA, /* U+00c68e: */ + RTUNI_ALPHA, /* U+00c68f: */ + RTUNI_ALPHA, /* U+00c690: */ + RTUNI_ALPHA, /* U+00c691: */ + RTUNI_ALPHA, /* U+00c692: */ + RTUNI_ALPHA, /* U+00c693: */ + RTUNI_ALPHA, /* U+00c694: */ + RTUNI_ALPHA, /* U+00c695: */ + RTUNI_ALPHA, /* U+00c696: */ + RTUNI_ALPHA, /* U+00c697: */ + RTUNI_ALPHA, /* U+00c698: */ + RTUNI_ALPHA, /* U+00c699: */ + RTUNI_ALPHA, /* U+00c69a: */ + RTUNI_ALPHA, /* U+00c69b: */ + RTUNI_ALPHA, /* U+00c69c: */ + RTUNI_ALPHA, /* U+00c69d: */ + RTUNI_ALPHA, /* U+00c69e: */ + RTUNI_ALPHA, /* U+00c69f: */ + RTUNI_ALPHA, /* U+00c6a0: */ + RTUNI_ALPHA, /* U+00c6a1: */ + RTUNI_ALPHA, /* U+00c6a2: */ + RTUNI_ALPHA, /* U+00c6a3: */ + RTUNI_ALPHA, /* U+00c6a4: */ + RTUNI_ALPHA, /* U+00c6a5: */ + RTUNI_ALPHA, /* U+00c6a6: */ + RTUNI_ALPHA, /* U+00c6a7: */ + RTUNI_ALPHA, /* U+00c6a8: */ + RTUNI_ALPHA, /* U+00c6a9: */ + RTUNI_ALPHA, /* U+00c6aa: */ + RTUNI_ALPHA, /* U+00c6ab: */ + RTUNI_ALPHA, /* U+00c6ac: */ + RTUNI_ALPHA, /* U+00c6ad: */ + RTUNI_ALPHA, /* U+00c6ae: */ + RTUNI_ALPHA, /* U+00c6af: */ + RTUNI_ALPHA, /* U+00c6b0: */ + RTUNI_ALPHA, /* U+00c6b1: */ + RTUNI_ALPHA, /* U+00c6b2: */ + RTUNI_ALPHA, /* U+00c6b3: */ + RTUNI_ALPHA, /* U+00c6b4: */ + RTUNI_ALPHA, /* U+00c6b5: */ + RTUNI_ALPHA, /* U+00c6b6: */ + RTUNI_ALPHA, /* U+00c6b7: */ + RTUNI_ALPHA, /* U+00c6b8: */ + RTUNI_ALPHA, /* U+00c6b9: */ + RTUNI_ALPHA, /* U+00c6ba: */ + RTUNI_ALPHA, /* U+00c6bb: */ + RTUNI_ALPHA, /* U+00c6bc: */ + RTUNI_ALPHA, /* U+00c6bd: */ + RTUNI_ALPHA, /* U+00c6be: */ + RTUNI_ALPHA, /* U+00c6bf: */ + RTUNI_ALPHA, /* U+00c6c0: */ + RTUNI_ALPHA, /* U+00c6c1: */ + RTUNI_ALPHA, /* U+00c6c2: */ + RTUNI_ALPHA, /* U+00c6c3: */ + RTUNI_ALPHA, /* U+00c6c4: */ + RTUNI_ALPHA, /* U+00c6c5: */ + RTUNI_ALPHA, /* U+00c6c6: */ + RTUNI_ALPHA, /* U+00c6c7: */ + RTUNI_ALPHA, /* U+00c6c8: */ + RTUNI_ALPHA, /* U+00c6c9: */ + RTUNI_ALPHA, /* U+00c6ca: */ + RTUNI_ALPHA, /* U+00c6cb: */ + RTUNI_ALPHA, /* U+00c6cc: */ + RTUNI_ALPHA, /* U+00c6cd: */ + RTUNI_ALPHA, /* U+00c6ce: */ + RTUNI_ALPHA, /* U+00c6cf: */ + RTUNI_ALPHA, /* U+00c6d0: */ + RTUNI_ALPHA, /* U+00c6d1: */ + RTUNI_ALPHA, /* U+00c6d2: */ + RTUNI_ALPHA, /* U+00c6d3: */ + RTUNI_ALPHA, /* U+00c6d4: */ + RTUNI_ALPHA, /* U+00c6d5: */ + RTUNI_ALPHA, /* U+00c6d6: */ + RTUNI_ALPHA, /* U+00c6d7: */ + RTUNI_ALPHA, /* U+00c6d8: */ + RTUNI_ALPHA, /* U+00c6d9: */ + RTUNI_ALPHA, /* U+00c6da: */ + RTUNI_ALPHA, /* U+00c6db: */ + RTUNI_ALPHA, /* U+00c6dc: */ + RTUNI_ALPHA, /* U+00c6dd: */ + RTUNI_ALPHA, /* U+00c6de: */ + RTUNI_ALPHA, /* U+00c6df: */ + RTUNI_ALPHA, /* U+00c6e0: */ + RTUNI_ALPHA, /* U+00c6e1: */ + RTUNI_ALPHA, /* U+00c6e2: */ + RTUNI_ALPHA, /* U+00c6e3: */ + RTUNI_ALPHA, /* U+00c6e4: */ + RTUNI_ALPHA, /* U+00c6e5: */ + RTUNI_ALPHA, /* U+00c6e6: */ + RTUNI_ALPHA, /* U+00c6e7: */ + RTUNI_ALPHA, /* U+00c6e8: */ + RTUNI_ALPHA, /* U+00c6e9: */ + RTUNI_ALPHA, /* U+00c6ea: */ + RTUNI_ALPHA, /* U+00c6eb: */ + RTUNI_ALPHA, /* U+00c6ec: */ + RTUNI_ALPHA, /* U+00c6ed: */ + RTUNI_ALPHA, /* U+00c6ee: */ + RTUNI_ALPHA, /* U+00c6ef: */ + RTUNI_ALPHA, /* U+00c6f0: */ + RTUNI_ALPHA, /* U+00c6f1: */ + RTUNI_ALPHA, /* U+00c6f2: */ + RTUNI_ALPHA, /* U+00c6f3: */ + RTUNI_ALPHA, /* U+00c6f4: */ + RTUNI_ALPHA, /* U+00c6f5: */ + RTUNI_ALPHA, /* U+00c6f6: */ + RTUNI_ALPHA, /* U+00c6f7: */ + RTUNI_ALPHA, /* U+00c6f8: */ + RTUNI_ALPHA, /* U+00c6f9: */ + RTUNI_ALPHA, /* U+00c6fa: */ + RTUNI_ALPHA, /* U+00c6fb: */ + RTUNI_ALPHA, /* U+00c6fc: */ + RTUNI_ALPHA, /* U+00c6fd: */ + RTUNI_ALPHA, /* U+00c6fe: */ + RTUNI_ALPHA, /* U+00c6ff: */ + RTUNI_ALPHA, /* U+00c700: */ + RTUNI_ALPHA, /* U+00c701: */ + RTUNI_ALPHA, /* U+00c702: */ + RTUNI_ALPHA, /* U+00c703: */ + RTUNI_ALPHA, /* U+00c704: */ + RTUNI_ALPHA, /* U+00c705: */ + RTUNI_ALPHA, /* U+00c706: */ + RTUNI_ALPHA, /* U+00c707: */ + RTUNI_ALPHA, /* U+00c708: */ + RTUNI_ALPHA, /* U+00c709: */ + RTUNI_ALPHA, /* U+00c70a: */ + RTUNI_ALPHA, /* U+00c70b: */ + RTUNI_ALPHA, /* U+00c70c: */ + RTUNI_ALPHA, /* U+00c70d: */ + RTUNI_ALPHA, /* U+00c70e: */ + RTUNI_ALPHA, /* U+00c70f: */ + RTUNI_ALPHA, /* U+00c710: */ + RTUNI_ALPHA, /* U+00c711: */ + RTUNI_ALPHA, /* U+00c712: */ + RTUNI_ALPHA, /* U+00c713: */ + RTUNI_ALPHA, /* U+00c714: */ + RTUNI_ALPHA, /* U+00c715: */ + RTUNI_ALPHA, /* U+00c716: */ + RTUNI_ALPHA, /* U+00c717: */ + RTUNI_ALPHA, /* U+00c718: */ + RTUNI_ALPHA, /* U+00c719: */ + RTUNI_ALPHA, /* U+00c71a: */ + RTUNI_ALPHA, /* U+00c71b: */ + RTUNI_ALPHA, /* U+00c71c: */ + RTUNI_ALPHA, /* U+00c71d: */ + RTUNI_ALPHA, /* U+00c71e: */ + RTUNI_ALPHA, /* U+00c71f: */ + RTUNI_ALPHA, /* U+00c720: */ + RTUNI_ALPHA, /* U+00c721: */ + RTUNI_ALPHA, /* U+00c722: */ + RTUNI_ALPHA, /* U+00c723: */ + RTUNI_ALPHA, /* U+00c724: */ + RTUNI_ALPHA, /* U+00c725: */ + RTUNI_ALPHA, /* U+00c726: */ + RTUNI_ALPHA, /* U+00c727: */ + RTUNI_ALPHA, /* U+00c728: */ + RTUNI_ALPHA, /* U+00c729: */ + RTUNI_ALPHA, /* U+00c72a: */ + RTUNI_ALPHA, /* U+00c72b: */ + RTUNI_ALPHA, /* U+00c72c: */ + RTUNI_ALPHA, /* U+00c72d: */ + RTUNI_ALPHA, /* U+00c72e: */ + RTUNI_ALPHA, /* U+00c72f: */ + RTUNI_ALPHA, /* U+00c730: */ + RTUNI_ALPHA, /* U+00c731: */ + RTUNI_ALPHA, /* U+00c732: */ + RTUNI_ALPHA, /* U+00c733: */ + RTUNI_ALPHA, /* U+00c734: */ + RTUNI_ALPHA, /* U+00c735: */ + RTUNI_ALPHA, /* U+00c736: */ + RTUNI_ALPHA, /* U+00c737: */ + RTUNI_ALPHA, /* U+00c738: */ + RTUNI_ALPHA, /* U+00c739: */ + RTUNI_ALPHA, /* U+00c73a: */ + RTUNI_ALPHA, /* U+00c73b: */ + RTUNI_ALPHA, /* U+00c73c: */ + RTUNI_ALPHA, /* U+00c73d: */ + RTUNI_ALPHA, /* U+00c73e: */ + RTUNI_ALPHA, /* U+00c73f: */ + RTUNI_ALPHA, /* U+00c740: */ + RTUNI_ALPHA, /* U+00c741: */ + RTUNI_ALPHA, /* U+00c742: */ + RTUNI_ALPHA, /* U+00c743: */ + RTUNI_ALPHA, /* U+00c744: */ + RTUNI_ALPHA, /* U+00c745: */ + RTUNI_ALPHA, /* U+00c746: */ + RTUNI_ALPHA, /* U+00c747: */ + RTUNI_ALPHA, /* U+00c748: */ + RTUNI_ALPHA, /* U+00c749: */ + RTUNI_ALPHA, /* U+00c74a: */ + RTUNI_ALPHA, /* U+00c74b: */ + RTUNI_ALPHA, /* U+00c74c: */ + RTUNI_ALPHA, /* U+00c74d: */ + RTUNI_ALPHA, /* U+00c74e: */ + RTUNI_ALPHA, /* U+00c74f: */ + RTUNI_ALPHA, /* U+00c750: */ + RTUNI_ALPHA, /* U+00c751: */ + RTUNI_ALPHA, /* U+00c752: */ + RTUNI_ALPHA, /* U+00c753: */ + RTUNI_ALPHA, /* U+00c754: */ + RTUNI_ALPHA, /* U+00c755: */ + RTUNI_ALPHA, /* U+00c756: */ + RTUNI_ALPHA, /* U+00c757: */ + RTUNI_ALPHA, /* U+00c758: */ + RTUNI_ALPHA, /* U+00c759: */ + RTUNI_ALPHA, /* U+00c75a: */ + RTUNI_ALPHA, /* U+00c75b: */ + RTUNI_ALPHA, /* U+00c75c: */ + RTUNI_ALPHA, /* U+00c75d: */ + RTUNI_ALPHA, /* U+00c75e: */ + RTUNI_ALPHA, /* U+00c75f: */ + RTUNI_ALPHA, /* U+00c760: */ + RTUNI_ALPHA, /* U+00c761: */ + RTUNI_ALPHA, /* U+00c762: */ + RTUNI_ALPHA, /* U+00c763: */ + RTUNI_ALPHA, /* U+00c764: */ + RTUNI_ALPHA, /* U+00c765: */ + RTUNI_ALPHA, /* U+00c766: */ + RTUNI_ALPHA, /* U+00c767: */ + RTUNI_ALPHA, /* U+00c768: */ + RTUNI_ALPHA, /* U+00c769: */ + RTUNI_ALPHA, /* U+00c76a: */ + RTUNI_ALPHA, /* U+00c76b: */ + RTUNI_ALPHA, /* U+00c76c: */ + RTUNI_ALPHA, /* U+00c76d: */ + RTUNI_ALPHA, /* U+00c76e: */ + RTUNI_ALPHA, /* U+00c76f: */ + RTUNI_ALPHA, /* U+00c770: */ + RTUNI_ALPHA, /* U+00c771: */ + RTUNI_ALPHA, /* U+00c772: */ + RTUNI_ALPHA, /* U+00c773: */ + RTUNI_ALPHA, /* U+00c774: */ + RTUNI_ALPHA, /* U+00c775: */ + RTUNI_ALPHA, /* U+00c776: */ + RTUNI_ALPHA, /* U+00c777: */ + RTUNI_ALPHA, /* U+00c778: */ + RTUNI_ALPHA, /* U+00c779: */ + RTUNI_ALPHA, /* U+00c77a: */ + RTUNI_ALPHA, /* U+00c77b: */ + RTUNI_ALPHA, /* U+00c77c: */ + RTUNI_ALPHA, /* U+00c77d: */ + RTUNI_ALPHA, /* U+00c77e: */ + RTUNI_ALPHA, /* U+00c77f: */ + RTUNI_ALPHA, /* U+00c780: */ + RTUNI_ALPHA, /* U+00c781: */ + RTUNI_ALPHA, /* U+00c782: */ + RTUNI_ALPHA, /* U+00c783: */ + RTUNI_ALPHA, /* U+00c784: */ + RTUNI_ALPHA, /* U+00c785: */ + RTUNI_ALPHA, /* U+00c786: */ + RTUNI_ALPHA, /* U+00c787: */ + RTUNI_ALPHA, /* U+00c788: */ + RTUNI_ALPHA, /* U+00c789: */ + RTUNI_ALPHA, /* U+00c78a: */ + RTUNI_ALPHA, /* U+00c78b: */ + RTUNI_ALPHA, /* U+00c78c: */ + RTUNI_ALPHA, /* U+00c78d: */ + RTUNI_ALPHA, /* U+00c78e: */ + RTUNI_ALPHA, /* U+00c78f: */ + RTUNI_ALPHA, /* U+00c790: */ + RTUNI_ALPHA, /* U+00c791: */ + RTUNI_ALPHA, /* U+00c792: */ + RTUNI_ALPHA, /* U+00c793: */ + RTUNI_ALPHA, /* U+00c794: */ + RTUNI_ALPHA, /* U+00c795: */ + RTUNI_ALPHA, /* U+00c796: */ + RTUNI_ALPHA, /* U+00c797: */ + RTUNI_ALPHA, /* U+00c798: */ + RTUNI_ALPHA, /* U+00c799: */ + RTUNI_ALPHA, /* U+00c79a: */ + RTUNI_ALPHA, /* U+00c79b: */ + RTUNI_ALPHA, /* U+00c79c: */ + RTUNI_ALPHA, /* U+00c79d: */ + RTUNI_ALPHA, /* U+00c79e: */ + RTUNI_ALPHA, /* U+00c79f: */ + RTUNI_ALPHA, /* U+00c7a0: */ + RTUNI_ALPHA, /* U+00c7a1: */ + RTUNI_ALPHA, /* U+00c7a2: */ + RTUNI_ALPHA, /* U+00c7a3: */ + RTUNI_ALPHA, /* U+00c7a4: */ + RTUNI_ALPHA, /* U+00c7a5: */ + RTUNI_ALPHA, /* U+00c7a6: */ + RTUNI_ALPHA, /* U+00c7a7: */ + RTUNI_ALPHA, /* U+00c7a8: */ + RTUNI_ALPHA, /* U+00c7a9: */ + RTUNI_ALPHA, /* U+00c7aa: */ + RTUNI_ALPHA, /* U+00c7ab: */ + RTUNI_ALPHA, /* U+00c7ac: */ + RTUNI_ALPHA, /* U+00c7ad: */ + RTUNI_ALPHA, /* U+00c7ae: */ + RTUNI_ALPHA, /* U+00c7af: */ + RTUNI_ALPHA, /* U+00c7b0: */ + RTUNI_ALPHA, /* U+00c7b1: */ + RTUNI_ALPHA, /* U+00c7b2: */ + RTUNI_ALPHA, /* U+00c7b3: */ + RTUNI_ALPHA, /* U+00c7b4: */ + RTUNI_ALPHA, /* U+00c7b5: */ + RTUNI_ALPHA, /* U+00c7b6: */ + RTUNI_ALPHA, /* U+00c7b7: */ + RTUNI_ALPHA, /* U+00c7b8: */ + RTUNI_ALPHA, /* U+00c7b9: */ + RTUNI_ALPHA, /* U+00c7ba: */ + RTUNI_ALPHA, /* U+00c7bb: */ + RTUNI_ALPHA, /* U+00c7bc: */ + RTUNI_ALPHA, /* U+00c7bd: */ + RTUNI_ALPHA, /* U+00c7be: */ + RTUNI_ALPHA, /* U+00c7bf: */ + RTUNI_ALPHA, /* U+00c7c0: */ + RTUNI_ALPHA, /* U+00c7c1: */ + RTUNI_ALPHA, /* U+00c7c2: */ + RTUNI_ALPHA, /* U+00c7c3: */ + RTUNI_ALPHA, /* U+00c7c4: */ + RTUNI_ALPHA, /* U+00c7c5: */ + RTUNI_ALPHA, /* U+00c7c6: */ + RTUNI_ALPHA, /* U+00c7c7: */ + RTUNI_ALPHA, /* U+00c7c8: */ + RTUNI_ALPHA, /* U+00c7c9: */ + RTUNI_ALPHA, /* U+00c7ca: */ + RTUNI_ALPHA, /* U+00c7cb: */ + RTUNI_ALPHA, /* U+00c7cc: */ + RTUNI_ALPHA, /* U+00c7cd: */ + RTUNI_ALPHA, /* U+00c7ce: */ + RTUNI_ALPHA, /* U+00c7cf: */ + RTUNI_ALPHA, /* U+00c7d0: */ + RTUNI_ALPHA, /* U+00c7d1: */ + RTUNI_ALPHA, /* U+00c7d2: */ + RTUNI_ALPHA, /* U+00c7d3: */ + RTUNI_ALPHA, /* U+00c7d4: */ + RTUNI_ALPHA, /* U+00c7d5: */ + RTUNI_ALPHA, /* U+00c7d6: */ + RTUNI_ALPHA, /* U+00c7d7: */ + RTUNI_ALPHA, /* U+00c7d8: */ + RTUNI_ALPHA, /* U+00c7d9: */ + RTUNI_ALPHA, /* U+00c7da: */ + RTUNI_ALPHA, /* U+00c7db: */ + RTUNI_ALPHA, /* U+00c7dc: */ + RTUNI_ALPHA, /* U+00c7dd: */ + RTUNI_ALPHA, /* U+00c7de: */ + RTUNI_ALPHA, /* U+00c7df: */ + RTUNI_ALPHA, /* U+00c7e0: */ + RTUNI_ALPHA, /* U+00c7e1: */ + RTUNI_ALPHA, /* U+00c7e2: */ + RTUNI_ALPHA, /* U+00c7e3: */ + RTUNI_ALPHA, /* U+00c7e4: */ + RTUNI_ALPHA, /* U+00c7e5: */ + RTUNI_ALPHA, /* U+00c7e6: */ + RTUNI_ALPHA, /* U+00c7e7: */ + RTUNI_ALPHA, /* U+00c7e8: */ + RTUNI_ALPHA, /* U+00c7e9: */ + RTUNI_ALPHA, /* U+00c7ea: */ + RTUNI_ALPHA, /* U+00c7eb: */ + RTUNI_ALPHA, /* U+00c7ec: */ + RTUNI_ALPHA, /* U+00c7ed: */ + RTUNI_ALPHA, /* U+00c7ee: */ + RTUNI_ALPHA, /* U+00c7ef: */ + RTUNI_ALPHA, /* U+00c7f0: */ + RTUNI_ALPHA, /* U+00c7f1: */ + RTUNI_ALPHA, /* U+00c7f2: */ + RTUNI_ALPHA, /* U+00c7f3: */ + RTUNI_ALPHA, /* U+00c7f4: */ + RTUNI_ALPHA, /* U+00c7f5: */ + RTUNI_ALPHA, /* U+00c7f6: */ + RTUNI_ALPHA, /* U+00c7f7: */ + RTUNI_ALPHA, /* U+00c7f8: */ + RTUNI_ALPHA, /* U+00c7f9: */ + RTUNI_ALPHA, /* U+00c7fa: */ + RTUNI_ALPHA, /* U+00c7fb: */ + RTUNI_ALPHA, /* U+00c7fc: */ + RTUNI_ALPHA, /* U+00c7fd: */ + RTUNI_ALPHA, /* U+00c7fe: */ + RTUNI_ALPHA, /* U+00c7ff: */ + RTUNI_ALPHA, /* U+00c800: */ + RTUNI_ALPHA, /* U+00c801: */ + RTUNI_ALPHA, /* U+00c802: */ + RTUNI_ALPHA, /* U+00c803: */ + RTUNI_ALPHA, /* U+00c804: */ + RTUNI_ALPHA, /* U+00c805: */ + RTUNI_ALPHA, /* U+00c806: */ + RTUNI_ALPHA, /* U+00c807: */ + RTUNI_ALPHA, /* U+00c808: */ + RTUNI_ALPHA, /* U+00c809: */ + RTUNI_ALPHA, /* U+00c80a: */ + RTUNI_ALPHA, /* U+00c80b: */ + RTUNI_ALPHA, /* U+00c80c: */ + RTUNI_ALPHA, /* U+00c80d: */ + RTUNI_ALPHA, /* U+00c80e: */ + RTUNI_ALPHA, /* U+00c80f: */ + RTUNI_ALPHA, /* U+00c810: */ + RTUNI_ALPHA, /* U+00c811: */ + RTUNI_ALPHA, /* U+00c812: */ + RTUNI_ALPHA, /* U+00c813: */ + RTUNI_ALPHA, /* U+00c814: */ + RTUNI_ALPHA, /* U+00c815: */ + RTUNI_ALPHA, /* U+00c816: */ + RTUNI_ALPHA, /* U+00c817: */ + RTUNI_ALPHA, /* U+00c818: */ + RTUNI_ALPHA, /* U+00c819: */ + RTUNI_ALPHA, /* U+00c81a: */ + RTUNI_ALPHA, /* U+00c81b: */ + RTUNI_ALPHA, /* U+00c81c: */ + RTUNI_ALPHA, /* U+00c81d: */ + RTUNI_ALPHA, /* U+00c81e: */ + RTUNI_ALPHA, /* U+00c81f: */ + RTUNI_ALPHA, /* U+00c820: */ + RTUNI_ALPHA, /* U+00c821: */ + RTUNI_ALPHA, /* U+00c822: */ + RTUNI_ALPHA, /* U+00c823: */ + RTUNI_ALPHA, /* U+00c824: */ + RTUNI_ALPHA, /* U+00c825: */ + RTUNI_ALPHA, /* U+00c826: */ + RTUNI_ALPHA, /* U+00c827: */ + RTUNI_ALPHA, /* U+00c828: */ + RTUNI_ALPHA, /* U+00c829: */ + RTUNI_ALPHA, /* U+00c82a: */ + RTUNI_ALPHA, /* U+00c82b: */ + RTUNI_ALPHA, /* U+00c82c: */ + RTUNI_ALPHA, /* U+00c82d: */ + RTUNI_ALPHA, /* U+00c82e: */ + RTUNI_ALPHA, /* U+00c82f: */ + RTUNI_ALPHA, /* U+00c830: */ + RTUNI_ALPHA, /* U+00c831: */ + RTUNI_ALPHA, /* U+00c832: */ + RTUNI_ALPHA, /* U+00c833: */ + RTUNI_ALPHA, /* U+00c834: */ + RTUNI_ALPHA, /* U+00c835: */ + RTUNI_ALPHA, /* U+00c836: */ + RTUNI_ALPHA, /* U+00c837: */ + RTUNI_ALPHA, /* U+00c838: */ + RTUNI_ALPHA, /* U+00c839: */ + RTUNI_ALPHA, /* U+00c83a: */ + RTUNI_ALPHA, /* U+00c83b: */ + RTUNI_ALPHA, /* U+00c83c: */ + RTUNI_ALPHA, /* U+00c83d: */ + RTUNI_ALPHA, /* U+00c83e: */ + RTUNI_ALPHA, /* U+00c83f: */ + RTUNI_ALPHA, /* U+00c840: */ + RTUNI_ALPHA, /* U+00c841: */ + RTUNI_ALPHA, /* U+00c842: */ + RTUNI_ALPHA, /* U+00c843: */ + RTUNI_ALPHA, /* U+00c844: */ + RTUNI_ALPHA, /* U+00c845: */ + RTUNI_ALPHA, /* U+00c846: */ + RTUNI_ALPHA, /* U+00c847: */ + RTUNI_ALPHA, /* U+00c848: */ + RTUNI_ALPHA, /* U+00c849: */ + RTUNI_ALPHA, /* U+00c84a: */ + RTUNI_ALPHA, /* U+00c84b: */ + RTUNI_ALPHA, /* U+00c84c: */ + RTUNI_ALPHA, /* U+00c84d: */ + RTUNI_ALPHA, /* U+00c84e: */ + RTUNI_ALPHA, /* U+00c84f: */ + RTUNI_ALPHA, /* U+00c850: */ + RTUNI_ALPHA, /* U+00c851: */ + RTUNI_ALPHA, /* U+00c852: */ + RTUNI_ALPHA, /* U+00c853: */ + RTUNI_ALPHA, /* U+00c854: */ + RTUNI_ALPHA, /* U+00c855: */ + RTUNI_ALPHA, /* U+00c856: */ + RTUNI_ALPHA, /* U+00c857: */ + RTUNI_ALPHA, /* U+00c858: */ + RTUNI_ALPHA, /* U+00c859: */ + RTUNI_ALPHA, /* U+00c85a: */ + RTUNI_ALPHA, /* U+00c85b: */ + RTUNI_ALPHA, /* U+00c85c: */ + RTUNI_ALPHA, /* U+00c85d: */ + RTUNI_ALPHA, /* U+00c85e: */ + RTUNI_ALPHA, /* U+00c85f: */ + RTUNI_ALPHA, /* U+00c860: */ + RTUNI_ALPHA, /* U+00c861: */ + RTUNI_ALPHA, /* U+00c862: */ + RTUNI_ALPHA, /* U+00c863: */ + RTUNI_ALPHA, /* U+00c864: */ + RTUNI_ALPHA, /* U+00c865: */ + RTUNI_ALPHA, /* U+00c866: */ + RTUNI_ALPHA, /* U+00c867: */ + RTUNI_ALPHA, /* U+00c868: */ + RTUNI_ALPHA, /* U+00c869: */ + RTUNI_ALPHA, /* U+00c86a: */ + RTUNI_ALPHA, /* U+00c86b: */ + RTUNI_ALPHA, /* U+00c86c: */ + RTUNI_ALPHA, /* U+00c86d: */ + RTUNI_ALPHA, /* U+00c86e: */ + RTUNI_ALPHA, /* U+00c86f: */ + RTUNI_ALPHA, /* U+00c870: */ + RTUNI_ALPHA, /* U+00c871: */ + RTUNI_ALPHA, /* U+00c872: */ + RTUNI_ALPHA, /* U+00c873: */ + RTUNI_ALPHA, /* U+00c874: */ + RTUNI_ALPHA, /* U+00c875: */ + RTUNI_ALPHA, /* U+00c876: */ + RTUNI_ALPHA, /* U+00c877: */ + RTUNI_ALPHA, /* U+00c878: */ + RTUNI_ALPHA, /* U+00c879: */ + RTUNI_ALPHA, /* U+00c87a: */ + RTUNI_ALPHA, /* U+00c87b: */ + RTUNI_ALPHA, /* U+00c87c: */ + RTUNI_ALPHA, /* U+00c87d: */ + RTUNI_ALPHA, /* U+00c87e: */ + RTUNI_ALPHA, /* U+00c87f: */ + RTUNI_ALPHA, /* U+00c880: */ + RTUNI_ALPHA, /* U+00c881: */ + RTUNI_ALPHA, /* U+00c882: */ + RTUNI_ALPHA, /* U+00c883: */ + RTUNI_ALPHA, /* U+00c884: */ + RTUNI_ALPHA, /* U+00c885: */ + RTUNI_ALPHA, /* U+00c886: */ + RTUNI_ALPHA, /* U+00c887: */ + RTUNI_ALPHA, /* U+00c888: */ + RTUNI_ALPHA, /* U+00c889: */ + RTUNI_ALPHA, /* U+00c88a: */ + RTUNI_ALPHA, /* U+00c88b: */ + RTUNI_ALPHA, /* U+00c88c: */ + RTUNI_ALPHA, /* U+00c88d: */ + RTUNI_ALPHA, /* U+00c88e: */ + RTUNI_ALPHA, /* U+00c88f: */ + RTUNI_ALPHA, /* U+00c890: */ + RTUNI_ALPHA, /* U+00c891: */ + RTUNI_ALPHA, /* U+00c892: */ + RTUNI_ALPHA, /* U+00c893: */ + RTUNI_ALPHA, /* U+00c894: */ + RTUNI_ALPHA, /* U+00c895: */ + RTUNI_ALPHA, /* U+00c896: */ + RTUNI_ALPHA, /* U+00c897: */ + RTUNI_ALPHA, /* U+00c898: */ + RTUNI_ALPHA, /* U+00c899: */ + RTUNI_ALPHA, /* U+00c89a: */ + RTUNI_ALPHA, /* U+00c89b: */ + RTUNI_ALPHA, /* U+00c89c: */ + RTUNI_ALPHA, /* U+00c89d: */ + RTUNI_ALPHA, /* U+00c89e: */ + RTUNI_ALPHA, /* U+00c89f: */ + RTUNI_ALPHA, /* U+00c8a0: */ + RTUNI_ALPHA, /* U+00c8a1: */ + RTUNI_ALPHA, /* U+00c8a2: */ + RTUNI_ALPHA, /* U+00c8a3: */ + RTUNI_ALPHA, /* U+00c8a4: */ + RTUNI_ALPHA, /* U+00c8a5: */ + RTUNI_ALPHA, /* U+00c8a6: */ + RTUNI_ALPHA, /* U+00c8a7: */ + RTUNI_ALPHA, /* U+00c8a8: */ + RTUNI_ALPHA, /* U+00c8a9: */ + RTUNI_ALPHA, /* U+00c8aa: */ + RTUNI_ALPHA, /* U+00c8ab: */ + RTUNI_ALPHA, /* U+00c8ac: */ + RTUNI_ALPHA, /* U+00c8ad: */ + RTUNI_ALPHA, /* U+00c8ae: */ + RTUNI_ALPHA, /* U+00c8af: */ + RTUNI_ALPHA, /* U+00c8b0: */ + RTUNI_ALPHA, /* U+00c8b1: */ + RTUNI_ALPHA, /* U+00c8b2: */ + RTUNI_ALPHA, /* U+00c8b3: */ + RTUNI_ALPHA, /* U+00c8b4: */ + RTUNI_ALPHA, /* U+00c8b5: */ + RTUNI_ALPHA, /* U+00c8b6: */ + RTUNI_ALPHA, /* U+00c8b7: */ + RTUNI_ALPHA, /* U+00c8b8: */ + RTUNI_ALPHA, /* U+00c8b9: */ + RTUNI_ALPHA, /* U+00c8ba: */ + RTUNI_ALPHA, /* U+00c8bb: */ + RTUNI_ALPHA, /* U+00c8bc: */ + RTUNI_ALPHA, /* U+00c8bd: */ + RTUNI_ALPHA, /* U+00c8be: */ + RTUNI_ALPHA, /* U+00c8bf: */ + RTUNI_ALPHA, /* U+00c8c0: */ + RTUNI_ALPHA, /* U+00c8c1: */ + RTUNI_ALPHA, /* U+00c8c2: */ + RTUNI_ALPHA, /* U+00c8c3: */ + RTUNI_ALPHA, /* U+00c8c4: */ + RTUNI_ALPHA, /* U+00c8c5: */ + RTUNI_ALPHA, /* U+00c8c6: */ + RTUNI_ALPHA, /* U+00c8c7: */ + RTUNI_ALPHA, /* U+00c8c8: */ + RTUNI_ALPHA, /* U+00c8c9: */ + RTUNI_ALPHA, /* U+00c8ca: */ + RTUNI_ALPHA, /* U+00c8cb: */ + RTUNI_ALPHA, /* U+00c8cc: */ + RTUNI_ALPHA, /* U+00c8cd: */ + RTUNI_ALPHA, /* U+00c8ce: */ + RTUNI_ALPHA, /* U+00c8cf: */ + RTUNI_ALPHA, /* U+00c8d0: */ + RTUNI_ALPHA, /* U+00c8d1: */ + RTUNI_ALPHA, /* U+00c8d2: */ + RTUNI_ALPHA, /* U+00c8d3: */ + RTUNI_ALPHA, /* U+00c8d4: */ + RTUNI_ALPHA, /* U+00c8d5: */ + RTUNI_ALPHA, /* U+00c8d6: */ + RTUNI_ALPHA, /* U+00c8d7: */ + RTUNI_ALPHA, /* U+00c8d8: */ + RTUNI_ALPHA, /* U+00c8d9: */ + RTUNI_ALPHA, /* U+00c8da: */ + RTUNI_ALPHA, /* U+00c8db: */ + RTUNI_ALPHA, /* U+00c8dc: */ + RTUNI_ALPHA, /* U+00c8dd: */ + RTUNI_ALPHA, /* U+00c8de: */ + RTUNI_ALPHA, /* U+00c8df: */ + RTUNI_ALPHA, /* U+00c8e0: */ + RTUNI_ALPHA, /* U+00c8e1: */ + RTUNI_ALPHA, /* U+00c8e2: */ + RTUNI_ALPHA, /* U+00c8e3: */ + RTUNI_ALPHA, /* U+00c8e4: */ + RTUNI_ALPHA, /* U+00c8e5: */ + RTUNI_ALPHA, /* U+00c8e6: */ + RTUNI_ALPHA, /* U+00c8e7: */ + RTUNI_ALPHA, /* U+00c8e8: */ + RTUNI_ALPHA, /* U+00c8e9: */ + RTUNI_ALPHA, /* U+00c8ea: */ + RTUNI_ALPHA, /* U+00c8eb: */ + RTUNI_ALPHA, /* U+00c8ec: */ + RTUNI_ALPHA, /* U+00c8ed: */ + RTUNI_ALPHA, /* U+00c8ee: */ + RTUNI_ALPHA, /* U+00c8ef: */ + RTUNI_ALPHA, /* U+00c8f0: */ + RTUNI_ALPHA, /* U+00c8f1: */ + RTUNI_ALPHA, /* U+00c8f2: */ + RTUNI_ALPHA, /* U+00c8f3: */ + RTUNI_ALPHA, /* U+00c8f4: */ + RTUNI_ALPHA, /* U+00c8f5: */ + RTUNI_ALPHA, /* U+00c8f6: */ + RTUNI_ALPHA, /* U+00c8f7: */ + RTUNI_ALPHA, /* U+00c8f8: */ + RTUNI_ALPHA, /* U+00c8f9: */ + RTUNI_ALPHA, /* U+00c8fa: */ + RTUNI_ALPHA, /* U+00c8fb: */ + RTUNI_ALPHA, /* U+00c8fc: */ + RTUNI_ALPHA, /* U+00c8fd: */ + RTUNI_ALPHA, /* U+00c8fe: */ + RTUNI_ALPHA, /* U+00c8ff: */ + RTUNI_ALPHA, /* U+00c900: */ + RTUNI_ALPHA, /* U+00c901: */ + RTUNI_ALPHA, /* U+00c902: */ + RTUNI_ALPHA, /* U+00c903: */ + RTUNI_ALPHA, /* U+00c904: */ + RTUNI_ALPHA, /* U+00c905: */ + RTUNI_ALPHA, /* U+00c906: */ + RTUNI_ALPHA, /* U+00c907: */ + RTUNI_ALPHA, /* U+00c908: */ + RTUNI_ALPHA, /* U+00c909: */ + RTUNI_ALPHA, /* U+00c90a: */ + RTUNI_ALPHA, /* U+00c90b: */ + RTUNI_ALPHA, /* U+00c90c: */ + RTUNI_ALPHA, /* U+00c90d: */ + RTUNI_ALPHA, /* U+00c90e: */ + RTUNI_ALPHA, /* U+00c90f: */ + RTUNI_ALPHA, /* U+00c910: */ + RTUNI_ALPHA, /* U+00c911: */ + RTUNI_ALPHA, /* U+00c912: */ + RTUNI_ALPHA, /* U+00c913: */ + RTUNI_ALPHA, /* U+00c914: */ + RTUNI_ALPHA, /* U+00c915: */ + RTUNI_ALPHA, /* U+00c916: */ + RTUNI_ALPHA, /* U+00c917: */ + RTUNI_ALPHA, /* U+00c918: */ + RTUNI_ALPHA, /* U+00c919: */ + RTUNI_ALPHA, /* U+00c91a: */ + RTUNI_ALPHA, /* U+00c91b: */ + RTUNI_ALPHA, /* U+00c91c: */ + RTUNI_ALPHA, /* U+00c91d: */ + RTUNI_ALPHA, /* U+00c91e: */ + RTUNI_ALPHA, /* U+00c91f: */ + RTUNI_ALPHA, /* U+00c920: */ + RTUNI_ALPHA, /* U+00c921: */ + RTUNI_ALPHA, /* U+00c922: */ + RTUNI_ALPHA, /* U+00c923: */ + RTUNI_ALPHA, /* U+00c924: */ + RTUNI_ALPHA, /* U+00c925: */ + RTUNI_ALPHA, /* U+00c926: */ + RTUNI_ALPHA, /* U+00c927: */ + RTUNI_ALPHA, /* U+00c928: */ + RTUNI_ALPHA, /* U+00c929: */ + RTUNI_ALPHA, /* U+00c92a: */ + RTUNI_ALPHA, /* U+00c92b: */ + RTUNI_ALPHA, /* U+00c92c: */ + RTUNI_ALPHA, /* U+00c92d: */ + RTUNI_ALPHA, /* U+00c92e: */ + RTUNI_ALPHA, /* U+00c92f: */ + RTUNI_ALPHA, /* U+00c930: */ + RTUNI_ALPHA, /* U+00c931: */ + RTUNI_ALPHA, /* U+00c932: */ + RTUNI_ALPHA, /* U+00c933: */ + RTUNI_ALPHA, /* U+00c934: */ + RTUNI_ALPHA, /* U+00c935: */ + RTUNI_ALPHA, /* U+00c936: */ + RTUNI_ALPHA, /* U+00c937: */ + RTUNI_ALPHA, /* U+00c938: */ + RTUNI_ALPHA, /* U+00c939: */ + RTUNI_ALPHA, /* U+00c93a: */ + RTUNI_ALPHA, /* U+00c93b: */ + RTUNI_ALPHA, /* U+00c93c: */ + RTUNI_ALPHA, /* U+00c93d: */ + RTUNI_ALPHA, /* U+00c93e: */ + RTUNI_ALPHA, /* U+00c93f: */ + RTUNI_ALPHA, /* U+00c940: */ + RTUNI_ALPHA, /* U+00c941: */ + RTUNI_ALPHA, /* U+00c942: */ + RTUNI_ALPHA, /* U+00c943: */ + RTUNI_ALPHA, /* U+00c944: */ + RTUNI_ALPHA, /* U+00c945: */ + RTUNI_ALPHA, /* U+00c946: */ + RTUNI_ALPHA, /* U+00c947: */ + RTUNI_ALPHA, /* U+00c948: */ + RTUNI_ALPHA, /* U+00c949: */ + RTUNI_ALPHA, /* U+00c94a: */ + RTUNI_ALPHA, /* U+00c94b: */ + RTUNI_ALPHA, /* U+00c94c: */ + RTUNI_ALPHA, /* U+00c94d: */ + RTUNI_ALPHA, /* U+00c94e: */ + RTUNI_ALPHA, /* U+00c94f: */ + RTUNI_ALPHA, /* U+00c950: */ + RTUNI_ALPHA, /* U+00c951: */ + RTUNI_ALPHA, /* U+00c952: */ + RTUNI_ALPHA, /* U+00c953: */ + RTUNI_ALPHA, /* U+00c954: */ + RTUNI_ALPHA, /* U+00c955: */ + RTUNI_ALPHA, /* U+00c956: */ + RTUNI_ALPHA, /* U+00c957: */ + RTUNI_ALPHA, /* U+00c958: */ + RTUNI_ALPHA, /* U+00c959: */ + RTUNI_ALPHA, /* U+00c95a: */ + RTUNI_ALPHA, /* U+00c95b: */ + RTUNI_ALPHA, /* U+00c95c: */ + RTUNI_ALPHA, /* U+00c95d: */ + RTUNI_ALPHA, /* U+00c95e: */ + RTUNI_ALPHA, /* U+00c95f: */ + RTUNI_ALPHA, /* U+00c960: */ + RTUNI_ALPHA, /* U+00c961: */ + RTUNI_ALPHA, /* U+00c962: */ + RTUNI_ALPHA, /* U+00c963: */ + RTUNI_ALPHA, /* U+00c964: */ + RTUNI_ALPHA, /* U+00c965: */ + RTUNI_ALPHA, /* U+00c966: */ + RTUNI_ALPHA, /* U+00c967: */ + RTUNI_ALPHA, /* U+00c968: */ + RTUNI_ALPHA, /* U+00c969: */ + RTUNI_ALPHA, /* U+00c96a: */ + RTUNI_ALPHA, /* U+00c96b: */ + RTUNI_ALPHA, /* U+00c96c: */ + RTUNI_ALPHA, /* U+00c96d: */ + RTUNI_ALPHA, /* U+00c96e: */ + RTUNI_ALPHA, /* U+00c96f: */ + RTUNI_ALPHA, /* U+00c970: */ + RTUNI_ALPHA, /* U+00c971: */ + RTUNI_ALPHA, /* U+00c972: */ + RTUNI_ALPHA, /* U+00c973: */ + RTUNI_ALPHA, /* U+00c974: */ + RTUNI_ALPHA, /* U+00c975: */ + RTUNI_ALPHA, /* U+00c976: */ + RTUNI_ALPHA, /* U+00c977: */ + RTUNI_ALPHA, /* U+00c978: */ + RTUNI_ALPHA, /* U+00c979: */ + RTUNI_ALPHA, /* U+00c97a: */ + RTUNI_ALPHA, /* U+00c97b: */ + RTUNI_ALPHA, /* U+00c97c: */ + RTUNI_ALPHA, /* U+00c97d: */ + RTUNI_ALPHA, /* U+00c97e: */ + RTUNI_ALPHA, /* U+00c97f: */ + RTUNI_ALPHA, /* U+00c980: */ + RTUNI_ALPHA, /* U+00c981: */ + RTUNI_ALPHA, /* U+00c982: */ + RTUNI_ALPHA, /* U+00c983: */ + RTUNI_ALPHA, /* U+00c984: */ + RTUNI_ALPHA, /* U+00c985: */ + RTUNI_ALPHA, /* U+00c986: */ + RTUNI_ALPHA, /* U+00c987: */ + RTUNI_ALPHA, /* U+00c988: */ + RTUNI_ALPHA, /* U+00c989: */ + RTUNI_ALPHA, /* U+00c98a: */ + RTUNI_ALPHA, /* U+00c98b: */ + RTUNI_ALPHA, /* U+00c98c: */ + RTUNI_ALPHA, /* U+00c98d: */ + RTUNI_ALPHA, /* U+00c98e: */ + RTUNI_ALPHA, /* U+00c98f: */ + RTUNI_ALPHA, /* U+00c990: */ + RTUNI_ALPHA, /* U+00c991: */ + RTUNI_ALPHA, /* U+00c992: */ + RTUNI_ALPHA, /* U+00c993: */ + RTUNI_ALPHA, /* U+00c994: */ + RTUNI_ALPHA, /* U+00c995: */ + RTUNI_ALPHA, /* U+00c996: */ + RTUNI_ALPHA, /* U+00c997: */ + RTUNI_ALPHA, /* U+00c998: */ + RTUNI_ALPHA, /* U+00c999: */ + RTUNI_ALPHA, /* U+00c99a: */ + RTUNI_ALPHA, /* U+00c99b: */ + RTUNI_ALPHA, /* U+00c99c: */ + RTUNI_ALPHA, /* U+00c99d: */ + RTUNI_ALPHA, /* U+00c99e: */ + RTUNI_ALPHA, /* U+00c99f: */ + RTUNI_ALPHA, /* U+00c9a0: */ + RTUNI_ALPHA, /* U+00c9a1: */ + RTUNI_ALPHA, /* U+00c9a2: */ + RTUNI_ALPHA, /* U+00c9a3: */ + RTUNI_ALPHA, /* U+00c9a4: */ + RTUNI_ALPHA, /* U+00c9a5: */ + RTUNI_ALPHA, /* U+00c9a6: */ + RTUNI_ALPHA, /* U+00c9a7: */ + RTUNI_ALPHA, /* U+00c9a8: */ + RTUNI_ALPHA, /* U+00c9a9: */ + RTUNI_ALPHA, /* U+00c9aa: */ + RTUNI_ALPHA, /* U+00c9ab: */ + RTUNI_ALPHA, /* U+00c9ac: */ + RTUNI_ALPHA, /* U+00c9ad: */ + RTUNI_ALPHA, /* U+00c9ae: */ + RTUNI_ALPHA, /* U+00c9af: */ + RTUNI_ALPHA, /* U+00c9b0: */ + RTUNI_ALPHA, /* U+00c9b1: */ + RTUNI_ALPHA, /* U+00c9b2: */ + RTUNI_ALPHA, /* U+00c9b3: */ + RTUNI_ALPHA, /* U+00c9b4: */ + RTUNI_ALPHA, /* U+00c9b5: */ + RTUNI_ALPHA, /* U+00c9b6: */ + RTUNI_ALPHA, /* U+00c9b7: */ + RTUNI_ALPHA, /* U+00c9b8: */ + RTUNI_ALPHA, /* U+00c9b9: */ + RTUNI_ALPHA, /* U+00c9ba: */ + RTUNI_ALPHA, /* U+00c9bb: */ + RTUNI_ALPHA, /* U+00c9bc: */ + RTUNI_ALPHA, /* U+00c9bd: */ + RTUNI_ALPHA, /* U+00c9be: */ + RTUNI_ALPHA, /* U+00c9bf: */ + RTUNI_ALPHA, /* U+00c9c0: */ + RTUNI_ALPHA, /* U+00c9c1: */ + RTUNI_ALPHA, /* U+00c9c2: */ + RTUNI_ALPHA, /* U+00c9c3: */ + RTUNI_ALPHA, /* U+00c9c4: */ + RTUNI_ALPHA, /* U+00c9c5: */ + RTUNI_ALPHA, /* U+00c9c6: */ + RTUNI_ALPHA, /* U+00c9c7: */ + RTUNI_ALPHA, /* U+00c9c8: */ + RTUNI_ALPHA, /* U+00c9c9: */ + RTUNI_ALPHA, /* U+00c9ca: */ + RTUNI_ALPHA, /* U+00c9cb: */ + RTUNI_ALPHA, /* U+00c9cc: */ + RTUNI_ALPHA, /* U+00c9cd: */ + RTUNI_ALPHA, /* U+00c9ce: */ + RTUNI_ALPHA, /* U+00c9cf: */ + RTUNI_ALPHA, /* U+00c9d0: */ + RTUNI_ALPHA, /* U+00c9d1: */ + RTUNI_ALPHA, /* U+00c9d2: */ + RTUNI_ALPHA, /* U+00c9d3: */ + RTUNI_ALPHA, /* U+00c9d4: */ + RTUNI_ALPHA, /* U+00c9d5: */ + RTUNI_ALPHA, /* U+00c9d6: */ + RTUNI_ALPHA, /* U+00c9d7: */ + RTUNI_ALPHA, /* U+00c9d8: */ + RTUNI_ALPHA, /* U+00c9d9: */ + RTUNI_ALPHA, /* U+00c9da: */ + RTUNI_ALPHA, /* U+00c9db: */ + RTUNI_ALPHA, /* U+00c9dc: */ + RTUNI_ALPHA, /* U+00c9dd: */ + RTUNI_ALPHA, /* U+00c9de: */ + RTUNI_ALPHA, /* U+00c9df: */ + RTUNI_ALPHA, /* U+00c9e0: */ + RTUNI_ALPHA, /* U+00c9e1: */ + RTUNI_ALPHA, /* U+00c9e2: */ + RTUNI_ALPHA, /* U+00c9e3: */ + RTUNI_ALPHA, /* U+00c9e4: */ + RTUNI_ALPHA, /* U+00c9e5: */ + RTUNI_ALPHA, /* U+00c9e6: */ + RTUNI_ALPHA, /* U+00c9e7: */ + RTUNI_ALPHA, /* U+00c9e8: */ + RTUNI_ALPHA, /* U+00c9e9: */ + RTUNI_ALPHA, /* U+00c9ea: */ + RTUNI_ALPHA, /* U+00c9eb: */ + RTUNI_ALPHA, /* U+00c9ec: */ + RTUNI_ALPHA, /* U+00c9ed: */ + RTUNI_ALPHA, /* U+00c9ee: */ + RTUNI_ALPHA, /* U+00c9ef: */ + RTUNI_ALPHA, /* U+00c9f0: */ + RTUNI_ALPHA, /* U+00c9f1: */ + RTUNI_ALPHA, /* U+00c9f2: */ + RTUNI_ALPHA, /* U+00c9f3: */ + RTUNI_ALPHA, /* U+00c9f4: */ + RTUNI_ALPHA, /* U+00c9f5: */ + RTUNI_ALPHA, /* U+00c9f6: */ + RTUNI_ALPHA, /* U+00c9f7: */ + RTUNI_ALPHA, /* U+00c9f8: */ + RTUNI_ALPHA, /* U+00c9f9: */ + RTUNI_ALPHA, /* U+00c9fa: */ + RTUNI_ALPHA, /* U+00c9fb: */ + RTUNI_ALPHA, /* U+00c9fc: */ + RTUNI_ALPHA, /* U+00c9fd: */ + RTUNI_ALPHA, /* U+00c9fe: */ + RTUNI_ALPHA, /* U+00c9ff: */ + RTUNI_ALPHA, /* U+00ca00: */ + RTUNI_ALPHA, /* U+00ca01: */ + RTUNI_ALPHA, /* U+00ca02: */ + RTUNI_ALPHA, /* U+00ca03: */ + RTUNI_ALPHA, /* U+00ca04: */ + RTUNI_ALPHA, /* U+00ca05: */ + RTUNI_ALPHA, /* U+00ca06: */ + RTUNI_ALPHA, /* U+00ca07: */ + RTUNI_ALPHA, /* U+00ca08: */ + RTUNI_ALPHA, /* U+00ca09: */ + RTUNI_ALPHA, /* U+00ca0a: */ + RTUNI_ALPHA, /* U+00ca0b: */ + RTUNI_ALPHA, /* U+00ca0c: */ + RTUNI_ALPHA, /* U+00ca0d: */ + RTUNI_ALPHA, /* U+00ca0e: */ + RTUNI_ALPHA, /* U+00ca0f: */ + RTUNI_ALPHA, /* U+00ca10: */ + RTUNI_ALPHA, /* U+00ca11: */ + RTUNI_ALPHA, /* U+00ca12: */ + RTUNI_ALPHA, /* U+00ca13: */ + RTUNI_ALPHA, /* U+00ca14: */ + RTUNI_ALPHA, /* U+00ca15: */ + RTUNI_ALPHA, /* U+00ca16: */ + RTUNI_ALPHA, /* U+00ca17: */ + RTUNI_ALPHA, /* U+00ca18: */ + RTUNI_ALPHA, /* U+00ca19: */ + RTUNI_ALPHA, /* U+00ca1a: */ + RTUNI_ALPHA, /* U+00ca1b: */ + RTUNI_ALPHA, /* U+00ca1c: */ + RTUNI_ALPHA, /* U+00ca1d: */ + RTUNI_ALPHA, /* U+00ca1e: */ + RTUNI_ALPHA, /* U+00ca1f: */ + RTUNI_ALPHA, /* U+00ca20: */ + RTUNI_ALPHA, /* U+00ca21: */ + RTUNI_ALPHA, /* U+00ca22: */ + RTUNI_ALPHA, /* U+00ca23: */ + RTUNI_ALPHA, /* U+00ca24: */ + RTUNI_ALPHA, /* U+00ca25: */ + RTUNI_ALPHA, /* U+00ca26: */ + RTUNI_ALPHA, /* U+00ca27: */ + RTUNI_ALPHA, /* U+00ca28: */ + RTUNI_ALPHA, /* U+00ca29: */ + RTUNI_ALPHA, /* U+00ca2a: */ + RTUNI_ALPHA, /* U+00ca2b: */ + RTUNI_ALPHA, /* U+00ca2c: */ + RTUNI_ALPHA, /* U+00ca2d: */ + RTUNI_ALPHA, /* U+00ca2e: */ + RTUNI_ALPHA, /* U+00ca2f: */ + RTUNI_ALPHA, /* U+00ca30: */ + RTUNI_ALPHA, /* U+00ca31: */ + RTUNI_ALPHA, /* U+00ca32: */ + RTUNI_ALPHA, /* U+00ca33: */ + RTUNI_ALPHA, /* U+00ca34: */ + RTUNI_ALPHA, /* U+00ca35: */ + RTUNI_ALPHA, /* U+00ca36: */ + RTUNI_ALPHA, /* U+00ca37: */ + RTUNI_ALPHA, /* U+00ca38: */ + RTUNI_ALPHA, /* U+00ca39: */ + RTUNI_ALPHA, /* U+00ca3a: */ + RTUNI_ALPHA, /* U+00ca3b: */ + RTUNI_ALPHA, /* U+00ca3c: */ + RTUNI_ALPHA, /* U+00ca3d: */ + RTUNI_ALPHA, /* U+00ca3e: */ + RTUNI_ALPHA, /* U+00ca3f: */ + RTUNI_ALPHA, /* U+00ca40: */ + RTUNI_ALPHA, /* U+00ca41: */ + RTUNI_ALPHA, /* U+00ca42: */ + RTUNI_ALPHA, /* U+00ca43: */ + RTUNI_ALPHA, /* U+00ca44: */ + RTUNI_ALPHA, /* U+00ca45: */ + RTUNI_ALPHA, /* U+00ca46: */ + RTUNI_ALPHA, /* U+00ca47: */ + RTUNI_ALPHA, /* U+00ca48: */ + RTUNI_ALPHA, /* U+00ca49: */ + RTUNI_ALPHA, /* U+00ca4a: */ + RTUNI_ALPHA, /* U+00ca4b: */ + RTUNI_ALPHA, /* U+00ca4c: */ + RTUNI_ALPHA, /* U+00ca4d: */ + RTUNI_ALPHA, /* U+00ca4e: */ + RTUNI_ALPHA, /* U+00ca4f: */ + RTUNI_ALPHA, /* U+00ca50: */ + RTUNI_ALPHA, /* U+00ca51: */ + RTUNI_ALPHA, /* U+00ca52: */ + RTUNI_ALPHA, /* U+00ca53: */ + RTUNI_ALPHA, /* U+00ca54: */ + RTUNI_ALPHA, /* U+00ca55: */ + RTUNI_ALPHA, /* U+00ca56: */ + RTUNI_ALPHA, /* U+00ca57: */ + RTUNI_ALPHA, /* U+00ca58: */ + RTUNI_ALPHA, /* U+00ca59: */ + RTUNI_ALPHA, /* U+00ca5a: */ + RTUNI_ALPHA, /* U+00ca5b: */ + RTUNI_ALPHA, /* U+00ca5c: */ + RTUNI_ALPHA, /* U+00ca5d: */ + RTUNI_ALPHA, /* U+00ca5e: */ + RTUNI_ALPHA, /* U+00ca5f: */ + RTUNI_ALPHA, /* U+00ca60: */ + RTUNI_ALPHA, /* U+00ca61: */ + RTUNI_ALPHA, /* U+00ca62: */ + RTUNI_ALPHA, /* U+00ca63: */ + RTUNI_ALPHA, /* U+00ca64: */ + RTUNI_ALPHA, /* U+00ca65: */ + RTUNI_ALPHA, /* U+00ca66: */ + RTUNI_ALPHA, /* U+00ca67: */ + RTUNI_ALPHA, /* U+00ca68: */ + RTUNI_ALPHA, /* U+00ca69: */ + RTUNI_ALPHA, /* U+00ca6a: */ + RTUNI_ALPHA, /* U+00ca6b: */ + RTUNI_ALPHA, /* U+00ca6c: */ + RTUNI_ALPHA, /* U+00ca6d: */ + RTUNI_ALPHA, /* U+00ca6e: */ + RTUNI_ALPHA, /* U+00ca6f: */ + RTUNI_ALPHA, /* U+00ca70: */ + RTUNI_ALPHA, /* U+00ca71: */ + RTUNI_ALPHA, /* U+00ca72: */ + RTUNI_ALPHA, /* U+00ca73: */ + RTUNI_ALPHA, /* U+00ca74: */ + RTUNI_ALPHA, /* U+00ca75: */ + RTUNI_ALPHA, /* U+00ca76: */ + RTUNI_ALPHA, /* U+00ca77: */ + RTUNI_ALPHA, /* U+00ca78: */ + RTUNI_ALPHA, /* U+00ca79: */ + RTUNI_ALPHA, /* U+00ca7a: */ + RTUNI_ALPHA, /* U+00ca7b: */ + RTUNI_ALPHA, /* U+00ca7c: */ + RTUNI_ALPHA, /* U+00ca7d: */ + RTUNI_ALPHA, /* U+00ca7e: */ + RTUNI_ALPHA, /* U+00ca7f: */ + RTUNI_ALPHA, /* U+00ca80: */ + RTUNI_ALPHA, /* U+00ca81: */ + RTUNI_ALPHA, /* U+00ca82: */ + RTUNI_ALPHA, /* U+00ca83: */ + RTUNI_ALPHA, /* U+00ca84: */ + RTUNI_ALPHA, /* U+00ca85: */ + RTUNI_ALPHA, /* U+00ca86: */ + RTUNI_ALPHA, /* U+00ca87: */ + RTUNI_ALPHA, /* U+00ca88: */ + RTUNI_ALPHA, /* U+00ca89: */ + RTUNI_ALPHA, /* U+00ca8a: */ + RTUNI_ALPHA, /* U+00ca8b: */ + RTUNI_ALPHA, /* U+00ca8c: */ + RTUNI_ALPHA, /* U+00ca8d: */ + RTUNI_ALPHA, /* U+00ca8e: */ + RTUNI_ALPHA, /* U+00ca8f: */ + RTUNI_ALPHA, /* U+00ca90: */ + RTUNI_ALPHA, /* U+00ca91: */ + RTUNI_ALPHA, /* U+00ca92: */ + RTUNI_ALPHA, /* U+00ca93: */ + RTUNI_ALPHA, /* U+00ca94: */ + RTUNI_ALPHA, /* U+00ca95: */ + RTUNI_ALPHA, /* U+00ca96: */ + RTUNI_ALPHA, /* U+00ca97: */ + RTUNI_ALPHA, /* U+00ca98: */ + RTUNI_ALPHA, /* U+00ca99: */ + RTUNI_ALPHA, /* U+00ca9a: */ + RTUNI_ALPHA, /* U+00ca9b: */ + RTUNI_ALPHA, /* U+00ca9c: */ + RTUNI_ALPHA, /* U+00ca9d: */ + RTUNI_ALPHA, /* U+00ca9e: */ + RTUNI_ALPHA, /* U+00ca9f: */ + RTUNI_ALPHA, /* U+00caa0: */ + RTUNI_ALPHA, /* U+00caa1: */ + RTUNI_ALPHA, /* U+00caa2: */ + RTUNI_ALPHA, /* U+00caa3: */ + RTUNI_ALPHA, /* U+00caa4: */ + RTUNI_ALPHA, /* U+00caa5: */ + RTUNI_ALPHA, /* U+00caa6: */ + RTUNI_ALPHA, /* U+00caa7: */ + RTUNI_ALPHA, /* U+00caa8: */ + RTUNI_ALPHA, /* U+00caa9: */ + RTUNI_ALPHA, /* U+00caaa: */ + RTUNI_ALPHA, /* U+00caab: */ + RTUNI_ALPHA, /* U+00caac: */ + RTUNI_ALPHA, /* U+00caad: */ + RTUNI_ALPHA, /* U+00caae: */ + RTUNI_ALPHA, /* U+00caaf: */ + RTUNI_ALPHA, /* U+00cab0: */ + RTUNI_ALPHA, /* U+00cab1: */ + RTUNI_ALPHA, /* U+00cab2: */ + RTUNI_ALPHA, /* U+00cab3: */ + RTUNI_ALPHA, /* U+00cab4: */ + RTUNI_ALPHA, /* U+00cab5: */ + RTUNI_ALPHA, /* U+00cab6: */ + RTUNI_ALPHA, /* U+00cab7: */ + RTUNI_ALPHA, /* U+00cab8: */ + RTUNI_ALPHA, /* U+00cab9: */ + RTUNI_ALPHA, /* U+00caba: */ + RTUNI_ALPHA, /* U+00cabb: */ + RTUNI_ALPHA, /* U+00cabc: */ + RTUNI_ALPHA, /* U+00cabd: */ + RTUNI_ALPHA, /* U+00cabe: */ + RTUNI_ALPHA, /* U+00cabf: */ + RTUNI_ALPHA, /* U+00cac0: */ + RTUNI_ALPHA, /* U+00cac1: */ + RTUNI_ALPHA, /* U+00cac2: */ + RTUNI_ALPHA, /* U+00cac3: */ + RTUNI_ALPHA, /* U+00cac4: */ + RTUNI_ALPHA, /* U+00cac5: */ + RTUNI_ALPHA, /* U+00cac6: */ + RTUNI_ALPHA, /* U+00cac7: */ + RTUNI_ALPHA, /* U+00cac8: */ + RTUNI_ALPHA, /* U+00cac9: */ + RTUNI_ALPHA, /* U+00caca: */ + RTUNI_ALPHA, /* U+00cacb: */ + RTUNI_ALPHA, /* U+00cacc: */ + RTUNI_ALPHA, /* U+00cacd: */ + RTUNI_ALPHA, /* U+00cace: */ + RTUNI_ALPHA, /* U+00cacf: */ + RTUNI_ALPHA, /* U+00cad0: */ + RTUNI_ALPHA, /* U+00cad1: */ + RTUNI_ALPHA, /* U+00cad2: */ + RTUNI_ALPHA, /* U+00cad3: */ + RTUNI_ALPHA, /* U+00cad4: */ + RTUNI_ALPHA, /* U+00cad5: */ + RTUNI_ALPHA, /* U+00cad6: */ + RTUNI_ALPHA, /* U+00cad7: */ + RTUNI_ALPHA, /* U+00cad8: */ + RTUNI_ALPHA, /* U+00cad9: */ + RTUNI_ALPHA, /* U+00cada: */ + RTUNI_ALPHA, /* U+00cadb: */ + RTUNI_ALPHA, /* U+00cadc: */ + RTUNI_ALPHA, /* U+00cadd: */ + RTUNI_ALPHA, /* U+00cade: */ + RTUNI_ALPHA, /* U+00cadf: */ + RTUNI_ALPHA, /* U+00cae0: */ + RTUNI_ALPHA, /* U+00cae1: */ + RTUNI_ALPHA, /* U+00cae2: */ + RTUNI_ALPHA, /* U+00cae3: */ + RTUNI_ALPHA, /* U+00cae4: */ + RTUNI_ALPHA, /* U+00cae5: */ + RTUNI_ALPHA, /* U+00cae6: */ + RTUNI_ALPHA, /* U+00cae7: */ + RTUNI_ALPHA, /* U+00cae8: */ + RTUNI_ALPHA, /* U+00cae9: */ + RTUNI_ALPHA, /* U+00caea: */ + RTUNI_ALPHA, /* U+00caeb: */ + RTUNI_ALPHA, /* U+00caec: */ + RTUNI_ALPHA, /* U+00caed: */ + RTUNI_ALPHA, /* U+00caee: */ + RTUNI_ALPHA, /* U+00caef: */ + RTUNI_ALPHA, /* U+00caf0: */ + RTUNI_ALPHA, /* U+00caf1: */ + RTUNI_ALPHA, /* U+00caf2: */ + RTUNI_ALPHA, /* U+00caf3: */ + RTUNI_ALPHA, /* U+00caf4: */ + RTUNI_ALPHA, /* U+00caf5: */ + RTUNI_ALPHA, /* U+00caf6: */ + RTUNI_ALPHA, /* U+00caf7: */ + RTUNI_ALPHA, /* U+00caf8: */ + RTUNI_ALPHA, /* U+00caf9: */ + RTUNI_ALPHA, /* U+00cafa: */ + RTUNI_ALPHA, /* U+00cafb: */ + RTUNI_ALPHA, /* U+00cafc: */ + RTUNI_ALPHA, /* U+00cafd: */ + RTUNI_ALPHA, /* U+00cafe: */ + RTUNI_ALPHA, /* U+00caff: */ + RTUNI_ALPHA, /* U+00cb00: */ + RTUNI_ALPHA, /* U+00cb01: */ + RTUNI_ALPHA, /* U+00cb02: */ + RTUNI_ALPHA, /* U+00cb03: */ + RTUNI_ALPHA, /* U+00cb04: */ + RTUNI_ALPHA, /* U+00cb05: */ + RTUNI_ALPHA, /* U+00cb06: */ + RTUNI_ALPHA, /* U+00cb07: */ + RTUNI_ALPHA, /* U+00cb08: */ + RTUNI_ALPHA, /* U+00cb09: */ + RTUNI_ALPHA, /* U+00cb0a: */ + RTUNI_ALPHA, /* U+00cb0b: */ + RTUNI_ALPHA, /* U+00cb0c: */ + RTUNI_ALPHA, /* U+00cb0d: */ + RTUNI_ALPHA, /* U+00cb0e: */ + RTUNI_ALPHA, /* U+00cb0f: */ + RTUNI_ALPHA, /* U+00cb10: */ + RTUNI_ALPHA, /* U+00cb11: */ + RTUNI_ALPHA, /* U+00cb12: */ + RTUNI_ALPHA, /* U+00cb13: */ + RTUNI_ALPHA, /* U+00cb14: */ + RTUNI_ALPHA, /* U+00cb15: */ + RTUNI_ALPHA, /* U+00cb16: */ + RTUNI_ALPHA, /* U+00cb17: */ + RTUNI_ALPHA, /* U+00cb18: */ + RTUNI_ALPHA, /* U+00cb19: */ + RTUNI_ALPHA, /* U+00cb1a: */ + RTUNI_ALPHA, /* U+00cb1b: */ + RTUNI_ALPHA, /* U+00cb1c: */ + RTUNI_ALPHA, /* U+00cb1d: */ + RTUNI_ALPHA, /* U+00cb1e: */ + RTUNI_ALPHA, /* U+00cb1f: */ + RTUNI_ALPHA, /* U+00cb20: */ + RTUNI_ALPHA, /* U+00cb21: */ + RTUNI_ALPHA, /* U+00cb22: */ + RTUNI_ALPHA, /* U+00cb23: */ + RTUNI_ALPHA, /* U+00cb24: */ + RTUNI_ALPHA, /* U+00cb25: */ + RTUNI_ALPHA, /* U+00cb26: */ + RTUNI_ALPHA, /* U+00cb27: */ + RTUNI_ALPHA, /* U+00cb28: */ + RTUNI_ALPHA, /* U+00cb29: */ + RTUNI_ALPHA, /* U+00cb2a: */ + RTUNI_ALPHA, /* U+00cb2b: */ + RTUNI_ALPHA, /* U+00cb2c: */ + RTUNI_ALPHA, /* U+00cb2d: */ + RTUNI_ALPHA, /* U+00cb2e: */ + RTUNI_ALPHA, /* U+00cb2f: */ + RTUNI_ALPHA, /* U+00cb30: */ + RTUNI_ALPHA, /* U+00cb31: */ + RTUNI_ALPHA, /* U+00cb32: */ + RTUNI_ALPHA, /* U+00cb33: */ + RTUNI_ALPHA, /* U+00cb34: */ + RTUNI_ALPHA, /* U+00cb35: */ + RTUNI_ALPHA, /* U+00cb36: */ + RTUNI_ALPHA, /* U+00cb37: */ + RTUNI_ALPHA, /* U+00cb38: */ + RTUNI_ALPHA, /* U+00cb39: */ + RTUNI_ALPHA, /* U+00cb3a: */ + RTUNI_ALPHA, /* U+00cb3b: */ + RTUNI_ALPHA, /* U+00cb3c: */ + RTUNI_ALPHA, /* U+00cb3d: */ + RTUNI_ALPHA, /* U+00cb3e: */ + RTUNI_ALPHA, /* U+00cb3f: */ + RTUNI_ALPHA, /* U+00cb40: */ + RTUNI_ALPHA, /* U+00cb41: */ + RTUNI_ALPHA, /* U+00cb42: */ + RTUNI_ALPHA, /* U+00cb43: */ + RTUNI_ALPHA, /* U+00cb44: */ + RTUNI_ALPHA, /* U+00cb45: */ + RTUNI_ALPHA, /* U+00cb46: */ + RTUNI_ALPHA, /* U+00cb47: */ + RTUNI_ALPHA, /* U+00cb48: */ + RTUNI_ALPHA, /* U+00cb49: */ + RTUNI_ALPHA, /* U+00cb4a: */ + RTUNI_ALPHA, /* U+00cb4b: */ + RTUNI_ALPHA, /* U+00cb4c: */ + RTUNI_ALPHA, /* U+00cb4d: */ + RTUNI_ALPHA, /* U+00cb4e: */ + RTUNI_ALPHA, /* U+00cb4f: */ + RTUNI_ALPHA, /* U+00cb50: */ + RTUNI_ALPHA, /* U+00cb51: */ + RTUNI_ALPHA, /* U+00cb52: */ + RTUNI_ALPHA, /* U+00cb53: */ + RTUNI_ALPHA, /* U+00cb54: */ + RTUNI_ALPHA, /* U+00cb55: */ + RTUNI_ALPHA, /* U+00cb56: */ + RTUNI_ALPHA, /* U+00cb57: */ + RTUNI_ALPHA, /* U+00cb58: */ + RTUNI_ALPHA, /* U+00cb59: */ + RTUNI_ALPHA, /* U+00cb5a: */ + RTUNI_ALPHA, /* U+00cb5b: */ + RTUNI_ALPHA, /* U+00cb5c: */ + RTUNI_ALPHA, /* U+00cb5d: */ + RTUNI_ALPHA, /* U+00cb5e: */ + RTUNI_ALPHA, /* U+00cb5f: */ + RTUNI_ALPHA, /* U+00cb60: */ + RTUNI_ALPHA, /* U+00cb61: */ + RTUNI_ALPHA, /* U+00cb62: */ + RTUNI_ALPHA, /* U+00cb63: */ + RTUNI_ALPHA, /* U+00cb64: */ + RTUNI_ALPHA, /* U+00cb65: */ + RTUNI_ALPHA, /* U+00cb66: */ + RTUNI_ALPHA, /* U+00cb67: */ + RTUNI_ALPHA, /* U+00cb68: */ + RTUNI_ALPHA, /* U+00cb69: */ + RTUNI_ALPHA, /* U+00cb6a: */ + RTUNI_ALPHA, /* U+00cb6b: */ + RTUNI_ALPHA, /* U+00cb6c: */ + RTUNI_ALPHA, /* U+00cb6d: */ + RTUNI_ALPHA, /* U+00cb6e: */ + RTUNI_ALPHA, /* U+00cb6f: */ + RTUNI_ALPHA, /* U+00cb70: */ + RTUNI_ALPHA, /* U+00cb71: */ + RTUNI_ALPHA, /* U+00cb72: */ + RTUNI_ALPHA, /* U+00cb73: */ + RTUNI_ALPHA, /* U+00cb74: */ + RTUNI_ALPHA, /* U+00cb75: */ + RTUNI_ALPHA, /* U+00cb76: */ + RTUNI_ALPHA, /* U+00cb77: */ + RTUNI_ALPHA, /* U+00cb78: */ + RTUNI_ALPHA, /* U+00cb79: */ + RTUNI_ALPHA, /* U+00cb7a: */ + RTUNI_ALPHA, /* U+00cb7b: */ + RTUNI_ALPHA, /* U+00cb7c: */ + RTUNI_ALPHA, /* U+00cb7d: */ + RTUNI_ALPHA, /* U+00cb7e: */ + RTUNI_ALPHA, /* U+00cb7f: */ + RTUNI_ALPHA, /* U+00cb80: */ + RTUNI_ALPHA, /* U+00cb81: */ + RTUNI_ALPHA, /* U+00cb82: */ + RTUNI_ALPHA, /* U+00cb83: */ + RTUNI_ALPHA, /* U+00cb84: */ + RTUNI_ALPHA, /* U+00cb85: */ + RTUNI_ALPHA, /* U+00cb86: */ + RTUNI_ALPHA, /* U+00cb87: */ + RTUNI_ALPHA, /* U+00cb88: */ + RTUNI_ALPHA, /* U+00cb89: */ + RTUNI_ALPHA, /* U+00cb8a: */ + RTUNI_ALPHA, /* U+00cb8b: */ + RTUNI_ALPHA, /* U+00cb8c: */ + RTUNI_ALPHA, /* U+00cb8d: */ + RTUNI_ALPHA, /* U+00cb8e: */ + RTUNI_ALPHA, /* U+00cb8f: */ + RTUNI_ALPHA, /* U+00cb90: */ + RTUNI_ALPHA, /* U+00cb91: */ + RTUNI_ALPHA, /* U+00cb92: */ + RTUNI_ALPHA, /* U+00cb93: */ + RTUNI_ALPHA, /* U+00cb94: */ + RTUNI_ALPHA, /* U+00cb95: */ + RTUNI_ALPHA, /* U+00cb96: */ + RTUNI_ALPHA, /* U+00cb97: */ + RTUNI_ALPHA, /* U+00cb98: */ + RTUNI_ALPHA, /* U+00cb99: */ + RTUNI_ALPHA, /* U+00cb9a: */ + RTUNI_ALPHA, /* U+00cb9b: */ + RTUNI_ALPHA, /* U+00cb9c: */ + RTUNI_ALPHA, /* U+00cb9d: */ + RTUNI_ALPHA, /* U+00cb9e: */ + RTUNI_ALPHA, /* U+00cb9f: */ + RTUNI_ALPHA, /* U+00cba0: */ + RTUNI_ALPHA, /* U+00cba1: */ + RTUNI_ALPHA, /* U+00cba2: */ + RTUNI_ALPHA, /* U+00cba3: */ + RTUNI_ALPHA, /* U+00cba4: */ + RTUNI_ALPHA, /* U+00cba5: */ + RTUNI_ALPHA, /* U+00cba6: */ + RTUNI_ALPHA, /* U+00cba7: */ + RTUNI_ALPHA, /* U+00cba8: */ + RTUNI_ALPHA, /* U+00cba9: */ + RTUNI_ALPHA, /* U+00cbaa: */ + RTUNI_ALPHA, /* U+00cbab: */ + RTUNI_ALPHA, /* U+00cbac: */ + RTUNI_ALPHA, /* U+00cbad: */ + RTUNI_ALPHA, /* U+00cbae: */ + RTUNI_ALPHA, /* U+00cbaf: */ + RTUNI_ALPHA, /* U+00cbb0: */ + RTUNI_ALPHA, /* U+00cbb1: */ + RTUNI_ALPHA, /* U+00cbb2: */ + RTUNI_ALPHA, /* U+00cbb3: */ + RTUNI_ALPHA, /* U+00cbb4: */ + RTUNI_ALPHA, /* U+00cbb5: */ + RTUNI_ALPHA, /* U+00cbb6: */ + RTUNI_ALPHA, /* U+00cbb7: */ + RTUNI_ALPHA, /* U+00cbb8: */ + RTUNI_ALPHA, /* U+00cbb9: */ + RTUNI_ALPHA, /* U+00cbba: */ + RTUNI_ALPHA, /* U+00cbbb: */ + RTUNI_ALPHA, /* U+00cbbc: */ + RTUNI_ALPHA, /* U+00cbbd: */ + RTUNI_ALPHA, /* U+00cbbe: */ + RTUNI_ALPHA, /* U+00cbbf: */ + RTUNI_ALPHA, /* U+00cbc0: */ + RTUNI_ALPHA, /* U+00cbc1: */ + RTUNI_ALPHA, /* U+00cbc2: */ + RTUNI_ALPHA, /* U+00cbc3: */ + RTUNI_ALPHA, /* U+00cbc4: */ + RTUNI_ALPHA, /* U+00cbc5: */ + RTUNI_ALPHA, /* U+00cbc6: */ + RTUNI_ALPHA, /* U+00cbc7: */ + RTUNI_ALPHA, /* U+00cbc8: */ + RTUNI_ALPHA, /* U+00cbc9: */ + RTUNI_ALPHA, /* U+00cbca: */ + RTUNI_ALPHA, /* U+00cbcb: */ + RTUNI_ALPHA, /* U+00cbcc: */ + RTUNI_ALPHA, /* U+00cbcd: */ + RTUNI_ALPHA, /* U+00cbce: */ + RTUNI_ALPHA, /* U+00cbcf: */ + RTUNI_ALPHA, /* U+00cbd0: */ + RTUNI_ALPHA, /* U+00cbd1: */ + RTUNI_ALPHA, /* U+00cbd2: */ + RTUNI_ALPHA, /* U+00cbd3: */ + RTUNI_ALPHA, /* U+00cbd4: */ + RTUNI_ALPHA, /* U+00cbd5: */ + RTUNI_ALPHA, /* U+00cbd6: */ + RTUNI_ALPHA, /* U+00cbd7: */ + RTUNI_ALPHA, /* U+00cbd8: */ + RTUNI_ALPHA, /* U+00cbd9: */ + RTUNI_ALPHA, /* U+00cbda: */ + RTUNI_ALPHA, /* U+00cbdb: */ + RTUNI_ALPHA, /* U+00cbdc: */ + RTUNI_ALPHA, /* U+00cbdd: */ + RTUNI_ALPHA, /* U+00cbde: */ + RTUNI_ALPHA, /* U+00cbdf: */ + RTUNI_ALPHA, /* U+00cbe0: */ + RTUNI_ALPHA, /* U+00cbe1: */ + RTUNI_ALPHA, /* U+00cbe2: */ + RTUNI_ALPHA, /* U+00cbe3: */ + RTUNI_ALPHA, /* U+00cbe4: */ + RTUNI_ALPHA, /* U+00cbe5: */ + RTUNI_ALPHA, /* U+00cbe6: */ + RTUNI_ALPHA, /* U+00cbe7: */ + RTUNI_ALPHA, /* U+00cbe8: */ + RTUNI_ALPHA, /* U+00cbe9: */ + RTUNI_ALPHA, /* U+00cbea: */ + RTUNI_ALPHA, /* U+00cbeb: */ + RTUNI_ALPHA, /* U+00cbec: */ + RTUNI_ALPHA, /* U+00cbed: */ + RTUNI_ALPHA, /* U+00cbee: */ + RTUNI_ALPHA, /* U+00cbef: */ + RTUNI_ALPHA, /* U+00cbf0: */ + RTUNI_ALPHA, /* U+00cbf1: */ + RTUNI_ALPHA, /* U+00cbf2: */ + RTUNI_ALPHA, /* U+00cbf3: */ + RTUNI_ALPHA, /* U+00cbf4: */ + RTUNI_ALPHA, /* U+00cbf5: */ + RTUNI_ALPHA, /* U+00cbf6: */ + RTUNI_ALPHA, /* U+00cbf7: */ + RTUNI_ALPHA, /* U+00cbf8: */ + RTUNI_ALPHA, /* U+00cbf9: */ + RTUNI_ALPHA, /* U+00cbfa: */ + RTUNI_ALPHA, /* U+00cbfb: */ + RTUNI_ALPHA, /* U+00cbfc: */ + RTUNI_ALPHA, /* U+00cbfd: */ + RTUNI_ALPHA, /* U+00cbfe: */ + RTUNI_ALPHA, /* U+00cbff: */ + RTUNI_ALPHA, /* U+00cc00: */ + RTUNI_ALPHA, /* U+00cc01: */ + RTUNI_ALPHA, /* U+00cc02: */ + RTUNI_ALPHA, /* U+00cc03: */ + RTUNI_ALPHA, /* U+00cc04: */ + RTUNI_ALPHA, /* U+00cc05: */ + RTUNI_ALPHA, /* U+00cc06: */ + RTUNI_ALPHA, /* U+00cc07: */ + RTUNI_ALPHA, /* U+00cc08: */ + RTUNI_ALPHA, /* U+00cc09: */ + RTUNI_ALPHA, /* U+00cc0a: */ + RTUNI_ALPHA, /* U+00cc0b: */ + RTUNI_ALPHA, /* U+00cc0c: */ + RTUNI_ALPHA, /* U+00cc0d: */ + RTUNI_ALPHA, /* U+00cc0e: */ + RTUNI_ALPHA, /* U+00cc0f: */ + RTUNI_ALPHA, /* U+00cc10: */ + RTUNI_ALPHA, /* U+00cc11: */ + RTUNI_ALPHA, /* U+00cc12: */ + RTUNI_ALPHA, /* U+00cc13: */ + RTUNI_ALPHA, /* U+00cc14: */ + RTUNI_ALPHA, /* U+00cc15: */ + RTUNI_ALPHA, /* U+00cc16: */ + RTUNI_ALPHA, /* U+00cc17: */ + RTUNI_ALPHA, /* U+00cc18: */ + RTUNI_ALPHA, /* U+00cc19: */ + RTUNI_ALPHA, /* U+00cc1a: */ + RTUNI_ALPHA, /* U+00cc1b: */ + RTUNI_ALPHA, /* U+00cc1c: */ + RTUNI_ALPHA, /* U+00cc1d: */ + RTUNI_ALPHA, /* U+00cc1e: */ + RTUNI_ALPHA, /* U+00cc1f: */ + RTUNI_ALPHA, /* U+00cc20: */ + RTUNI_ALPHA, /* U+00cc21: */ + RTUNI_ALPHA, /* U+00cc22: */ + RTUNI_ALPHA, /* U+00cc23: */ + RTUNI_ALPHA, /* U+00cc24: */ + RTUNI_ALPHA, /* U+00cc25: */ + RTUNI_ALPHA, /* U+00cc26: */ + RTUNI_ALPHA, /* U+00cc27: */ + RTUNI_ALPHA, /* U+00cc28: */ + RTUNI_ALPHA, /* U+00cc29: */ + RTUNI_ALPHA, /* U+00cc2a: */ + RTUNI_ALPHA, /* U+00cc2b: */ + RTUNI_ALPHA, /* U+00cc2c: */ + RTUNI_ALPHA, /* U+00cc2d: */ + RTUNI_ALPHA, /* U+00cc2e: */ + RTUNI_ALPHA, /* U+00cc2f: */ + RTUNI_ALPHA, /* U+00cc30: */ + RTUNI_ALPHA, /* U+00cc31: */ + RTUNI_ALPHA, /* U+00cc32: */ + RTUNI_ALPHA, /* U+00cc33: */ + RTUNI_ALPHA, /* U+00cc34: */ + RTUNI_ALPHA, /* U+00cc35: */ + RTUNI_ALPHA, /* U+00cc36: */ + RTUNI_ALPHA, /* U+00cc37: */ + RTUNI_ALPHA, /* U+00cc38: */ + RTUNI_ALPHA, /* U+00cc39: */ + RTUNI_ALPHA, /* U+00cc3a: */ + RTUNI_ALPHA, /* U+00cc3b: */ + RTUNI_ALPHA, /* U+00cc3c: */ + RTUNI_ALPHA, /* U+00cc3d: */ + RTUNI_ALPHA, /* U+00cc3e: */ + RTUNI_ALPHA, /* U+00cc3f: */ + RTUNI_ALPHA, /* U+00cc40: */ + RTUNI_ALPHA, /* U+00cc41: */ + RTUNI_ALPHA, /* U+00cc42: */ + RTUNI_ALPHA, /* U+00cc43: */ + RTUNI_ALPHA, /* U+00cc44: */ + RTUNI_ALPHA, /* U+00cc45: */ + RTUNI_ALPHA, /* U+00cc46: */ + RTUNI_ALPHA, /* U+00cc47: */ + RTUNI_ALPHA, /* U+00cc48: */ + RTUNI_ALPHA, /* U+00cc49: */ + RTUNI_ALPHA, /* U+00cc4a: */ + RTUNI_ALPHA, /* U+00cc4b: */ + RTUNI_ALPHA, /* U+00cc4c: */ + RTUNI_ALPHA, /* U+00cc4d: */ + RTUNI_ALPHA, /* U+00cc4e: */ + RTUNI_ALPHA, /* U+00cc4f: */ + RTUNI_ALPHA, /* U+00cc50: */ + RTUNI_ALPHA, /* U+00cc51: */ + RTUNI_ALPHA, /* U+00cc52: */ + RTUNI_ALPHA, /* U+00cc53: */ + RTUNI_ALPHA, /* U+00cc54: */ + RTUNI_ALPHA, /* U+00cc55: */ + RTUNI_ALPHA, /* U+00cc56: */ + RTUNI_ALPHA, /* U+00cc57: */ + RTUNI_ALPHA, /* U+00cc58: */ + RTUNI_ALPHA, /* U+00cc59: */ + RTUNI_ALPHA, /* U+00cc5a: */ + RTUNI_ALPHA, /* U+00cc5b: */ + RTUNI_ALPHA, /* U+00cc5c: */ + RTUNI_ALPHA, /* U+00cc5d: */ + RTUNI_ALPHA, /* U+00cc5e: */ + RTUNI_ALPHA, /* U+00cc5f: */ + RTUNI_ALPHA, /* U+00cc60: */ + RTUNI_ALPHA, /* U+00cc61: */ + RTUNI_ALPHA, /* U+00cc62: */ + RTUNI_ALPHA, /* U+00cc63: */ + RTUNI_ALPHA, /* U+00cc64: */ + RTUNI_ALPHA, /* U+00cc65: */ + RTUNI_ALPHA, /* U+00cc66: */ + RTUNI_ALPHA, /* U+00cc67: */ + RTUNI_ALPHA, /* U+00cc68: */ + RTUNI_ALPHA, /* U+00cc69: */ + RTUNI_ALPHA, /* U+00cc6a: */ + RTUNI_ALPHA, /* U+00cc6b: */ + RTUNI_ALPHA, /* U+00cc6c: */ + RTUNI_ALPHA, /* U+00cc6d: */ + RTUNI_ALPHA, /* U+00cc6e: */ + RTUNI_ALPHA, /* U+00cc6f: */ + RTUNI_ALPHA, /* U+00cc70: */ + RTUNI_ALPHA, /* U+00cc71: */ + RTUNI_ALPHA, /* U+00cc72: */ + RTUNI_ALPHA, /* U+00cc73: */ + RTUNI_ALPHA, /* U+00cc74: */ + RTUNI_ALPHA, /* U+00cc75: */ + RTUNI_ALPHA, /* U+00cc76: */ + RTUNI_ALPHA, /* U+00cc77: */ + RTUNI_ALPHA, /* U+00cc78: */ + RTUNI_ALPHA, /* U+00cc79: */ + RTUNI_ALPHA, /* U+00cc7a: */ + RTUNI_ALPHA, /* U+00cc7b: */ + RTUNI_ALPHA, /* U+00cc7c: */ + RTUNI_ALPHA, /* U+00cc7d: */ + RTUNI_ALPHA, /* U+00cc7e: */ + RTUNI_ALPHA, /* U+00cc7f: */ + RTUNI_ALPHA, /* U+00cc80: */ + RTUNI_ALPHA, /* U+00cc81: */ + RTUNI_ALPHA, /* U+00cc82: */ + RTUNI_ALPHA, /* U+00cc83: */ + RTUNI_ALPHA, /* U+00cc84: */ + RTUNI_ALPHA, /* U+00cc85: */ + RTUNI_ALPHA, /* U+00cc86: */ + RTUNI_ALPHA, /* U+00cc87: */ + RTUNI_ALPHA, /* U+00cc88: */ + RTUNI_ALPHA, /* U+00cc89: */ + RTUNI_ALPHA, /* U+00cc8a: */ + RTUNI_ALPHA, /* U+00cc8b: */ + RTUNI_ALPHA, /* U+00cc8c: */ + RTUNI_ALPHA, /* U+00cc8d: */ + RTUNI_ALPHA, /* U+00cc8e: */ + RTUNI_ALPHA, /* U+00cc8f: */ + RTUNI_ALPHA, /* U+00cc90: */ + RTUNI_ALPHA, /* U+00cc91: */ + RTUNI_ALPHA, /* U+00cc92: */ + RTUNI_ALPHA, /* U+00cc93: */ + RTUNI_ALPHA, /* U+00cc94: */ + RTUNI_ALPHA, /* U+00cc95: */ + RTUNI_ALPHA, /* U+00cc96: */ + RTUNI_ALPHA, /* U+00cc97: */ + RTUNI_ALPHA, /* U+00cc98: */ + RTUNI_ALPHA, /* U+00cc99: */ + RTUNI_ALPHA, /* U+00cc9a: */ + RTUNI_ALPHA, /* U+00cc9b: */ + RTUNI_ALPHA, /* U+00cc9c: */ + RTUNI_ALPHA, /* U+00cc9d: */ + RTUNI_ALPHA, /* U+00cc9e: */ + RTUNI_ALPHA, /* U+00cc9f: */ + RTUNI_ALPHA, /* U+00cca0: */ + RTUNI_ALPHA, /* U+00cca1: */ + RTUNI_ALPHA, /* U+00cca2: */ + RTUNI_ALPHA, /* U+00cca3: */ + RTUNI_ALPHA, /* U+00cca4: */ + RTUNI_ALPHA, /* U+00cca5: */ + RTUNI_ALPHA, /* U+00cca6: */ + RTUNI_ALPHA, /* U+00cca7: */ + RTUNI_ALPHA, /* U+00cca8: */ + RTUNI_ALPHA, /* U+00cca9: */ + RTUNI_ALPHA, /* U+00ccaa: */ + RTUNI_ALPHA, /* U+00ccab: */ + RTUNI_ALPHA, /* U+00ccac: */ + RTUNI_ALPHA, /* U+00ccad: */ + RTUNI_ALPHA, /* U+00ccae: */ + RTUNI_ALPHA, /* U+00ccaf: */ + RTUNI_ALPHA, /* U+00ccb0: */ + RTUNI_ALPHA, /* U+00ccb1: */ + RTUNI_ALPHA, /* U+00ccb2: */ + RTUNI_ALPHA, /* U+00ccb3: */ + RTUNI_ALPHA, /* U+00ccb4: */ + RTUNI_ALPHA, /* U+00ccb5: */ + RTUNI_ALPHA, /* U+00ccb6: */ + RTUNI_ALPHA, /* U+00ccb7: */ + RTUNI_ALPHA, /* U+00ccb8: */ + RTUNI_ALPHA, /* U+00ccb9: */ + RTUNI_ALPHA, /* U+00ccba: */ + RTUNI_ALPHA, /* U+00ccbb: */ + RTUNI_ALPHA, /* U+00ccbc: */ + RTUNI_ALPHA, /* U+00ccbd: */ + RTUNI_ALPHA, /* U+00ccbe: */ + RTUNI_ALPHA, /* U+00ccbf: */ + RTUNI_ALPHA, /* U+00ccc0: */ + RTUNI_ALPHA, /* U+00ccc1: */ + RTUNI_ALPHA, /* U+00ccc2: */ + RTUNI_ALPHA, /* U+00ccc3: */ + RTUNI_ALPHA, /* U+00ccc4: */ + RTUNI_ALPHA, /* U+00ccc5: */ + RTUNI_ALPHA, /* U+00ccc6: */ + RTUNI_ALPHA, /* U+00ccc7: */ + RTUNI_ALPHA, /* U+00ccc8: */ + RTUNI_ALPHA, /* U+00ccc9: */ + RTUNI_ALPHA, /* U+00ccca: */ + RTUNI_ALPHA, /* U+00cccb: */ + RTUNI_ALPHA, /* U+00cccc: */ + RTUNI_ALPHA, /* U+00cccd: */ + RTUNI_ALPHA, /* U+00ccce: */ + RTUNI_ALPHA, /* U+00cccf: */ + RTUNI_ALPHA, /* U+00ccd0: */ + RTUNI_ALPHA, /* U+00ccd1: */ + RTUNI_ALPHA, /* U+00ccd2: */ + RTUNI_ALPHA, /* U+00ccd3: */ + RTUNI_ALPHA, /* U+00ccd4: */ + RTUNI_ALPHA, /* U+00ccd5: */ + RTUNI_ALPHA, /* U+00ccd6: */ + RTUNI_ALPHA, /* U+00ccd7: */ + RTUNI_ALPHA, /* U+00ccd8: */ + RTUNI_ALPHA, /* U+00ccd9: */ + RTUNI_ALPHA, /* U+00ccda: */ + RTUNI_ALPHA, /* U+00ccdb: */ + RTUNI_ALPHA, /* U+00ccdc: */ + RTUNI_ALPHA, /* U+00ccdd: */ + RTUNI_ALPHA, /* U+00ccde: */ + RTUNI_ALPHA, /* U+00ccdf: */ + RTUNI_ALPHA, /* U+00cce0: */ + RTUNI_ALPHA, /* U+00cce1: */ + RTUNI_ALPHA, /* U+00cce2: */ + RTUNI_ALPHA, /* U+00cce3: */ + RTUNI_ALPHA, /* U+00cce4: */ + RTUNI_ALPHA, /* U+00cce5: */ + RTUNI_ALPHA, /* U+00cce6: */ + RTUNI_ALPHA, /* U+00cce7: */ + RTUNI_ALPHA, /* U+00cce8: */ + RTUNI_ALPHA, /* U+00cce9: */ + RTUNI_ALPHA, /* U+00ccea: */ + RTUNI_ALPHA, /* U+00cceb: */ + RTUNI_ALPHA, /* U+00ccec: */ + RTUNI_ALPHA, /* U+00cced: */ + RTUNI_ALPHA, /* U+00ccee: */ + RTUNI_ALPHA, /* U+00ccef: */ + RTUNI_ALPHA, /* U+00ccf0: */ + RTUNI_ALPHA, /* U+00ccf1: */ + RTUNI_ALPHA, /* U+00ccf2: */ + RTUNI_ALPHA, /* U+00ccf3: */ + RTUNI_ALPHA, /* U+00ccf4: */ + RTUNI_ALPHA, /* U+00ccf5: */ + RTUNI_ALPHA, /* U+00ccf6: */ + RTUNI_ALPHA, /* U+00ccf7: */ + RTUNI_ALPHA, /* U+00ccf8: */ + RTUNI_ALPHA, /* U+00ccf9: */ + RTUNI_ALPHA, /* U+00ccfa: */ + RTUNI_ALPHA, /* U+00ccfb: */ + RTUNI_ALPHA, /* U+00ccfc: */ + RTUNI_ALPHA, /* U+00ccfd: */ + RTUNI_ALPHA, /* U+00ccfe: */ + RTUNI_ALPHA, /* U+00ccff: */ + RTUNI_ALPHA, /* U+00cd00: */ + RTUNI_ALPHA, /* U+00cd01: */ + RTUNI_ALPHA, /* U+00cd02: */ + RTUNI_ALPHA, /* U+00cd03: */ + RTUNI_ALPHA, /* U+00cd04: */ + RTUNI_ALPHA, /* U+00cd05: */ + RTUNI_ALPHA, /* U+00cd06: */ + RTUNI_ALPHA, /* U+00cd07: */ + RTUNI_ALPHA, /* U+00cd08: */ + RTUNI_ALPHA, /* U+00cd09: */ + RTUNI_ALPHA, /* U+00cd0a: */ + RTUNI_ALPHA, /* U+00cd0b: */ + RTUNI_ALPHA, /* U+00cd0c: */ + RTUNI_ALPHA, /* U+00cd0d: */ + RTUNI_ALPHA, /* U+00cd0e: */ + RTUNI_ALPHA, /* U+00cd0f: */ + RTUNI_ALPHA, /* U+00cd10: */ + RTUNI_ALPHA, /* U+00cd11: */ + RTUNI_ALPHA, /* U+00cd12: */ + RTUNI_ALPHA, /* U+00cd13: */ + RTUNI_ALPHA, /* U+00cd14: */ + RTUNI_ALPHA, /* U+00cd15: */ + RTUNI_ALPHA, /* U+00cd16: */ + RTUNI_ALPHA, /* U+00cd17: */ + RTUNI_ALPHA, /* U+00cd18: */ + RTUNI_ALPHA, /* U+00cd19: */ + RTUNI_ALPHA, /* U+00cd1a: */ + RTUNI_ALPHA, /* U+00cd1b: */ + RTUNI_ALPHA, /* U+00cd1c: */ + RTUNI_ALPHA, /* U+00cd1d: */ + RTUNI_ALPHA, /* U+00cd1e: */ + RTUNI_ALPHA, /* U+00cd1f: */ + RTUNI_ALPHA, /* U+00cd20: */ + RTUNI_ALPHA, /* U+00cd21: */ + RTUNI_ALPHA, /* U+00cd22: */ + RTUNI_ALPHA, /* U+00cd23: */ + RTUNI_ALPHA, /* U+00cd24: */ + RTUNI_ALPHA, /* U+00cd25: */ + RTUNI_ALPHA, /* U+00cd26: */ + RTUNI_ALPHA, /* U+00cd27: */ + RTUNI_ALPHA, /* U+00cd28: */ + RTUNI_ALPHA, /* U+00cd29: */ + RTUNI_ALPHA, /* U+00cd2a: */ + RTUNI_ALPHA, /* U+00cd2b: */ + RTUNI_ALPHA, /* U+00cd2c: */ + RTUNI_ALPHA, /* U+00cd2d: */ + RTUNI_ALPHA, /* U+00cd2e: */ + RTUNI_ALPHA, /* U+00cd2f: */ + RTUNI_ALPHA, /* U+00cd30: */ + RTUNI_ALPHA, /* U+00cd31: */ + RTUNI_ALPHA, /* U+00cd32: */ + RTUNI_ALPHA, /* U+00cd33: */ + RTUNI_ALPHA, /* U+00cd34: */ + RTUNI_ALPHA, /* U+00cd35: */ + RTUNI_ALPHA, /* U+00cd36: */ + RTUNI_ALPHA, /* U+00cd37: */ + RTUNI_ALPHA, /* U+00cd38: */ + RTUNI_ALPHA, /* U+00cd39: */ + RTUNI_ALPHA, /* U+00cd3a: */ + RTUNI_ALPHA, /* U+00cd3b: */ + RTUNI_ALPHA, /* U+00cd3c: */ + RTUNI_ALPHA, /* U+00cd3d: */ + RTUNI_ALPHA, /* U+00cd3e: */ + RTUNI_ALPHA, /* U+00cd3f: */ + RTUNI_ALPHA, /* U+00cd40: */ + RTUNI_ALPHA, /* U+00cd41: */ + RTUNI_ALPHA, /* U+00cd42: */ + RTUNI_ALPHA, /* U+00cd43: */ + RTUNI_ALPHA, /* U+00cd44: */ + RTUNI_ALPHA, /* U+00cd45: */ + RTUNI_ALPHA, /* U+00cd46: */ + RTUNI_ALPHA, /* U+00cd47: */ + RTUNI_ALPHA, /* U+00cd48: */ + RTUNI_ALPHA, /* U+00cd49: */ + RTUNI_ALPHA, /* U+00cd4a: */ + RTUNI_ALPHA, /* U+00cd4b: */ + RTUNI_ALPHA, /* U+00cd4c: */ + RTUNI_ALPHA, /* U+00cd4d: */ + RTUNI_ALPHA, /* U+00cd4e: */ + RTUNI_ALPHA, /* U+00cd4f: */ + RTUNI_ALPHA, /* U+00cd50: */ + RTUNI_ALPHA, /* U+00cd51: */ + RTUNI_ALPHA, /* U+00cd52: */ + RTUNI_ALPHA, /* U+00cd53: */ + RTUNI_ALPHA, /* U+00cd54: */ + RTUNI_ALPHA, /* U+00cd55: */ + RTUNI_ALPHA, /* U+00cd56: */ + RTUNI_ALPHA, /* U+00cd57: */ + RTUNI_ALPHA, /* U+00cd58: */ + RTUNI_ALPHA, /* U+00cd59: */ + RTUNI_ALPHA, /* U+00cd5a: */ + RTUNI_ALPHA, /* U+00cd5b: */ + RTUNI_ALPHA, /* U+00cd5c: */ + RTUNI_ALPHA, /* U+00cd5d: */ + RTUNI_ALPHA, /* U+00cd5e: */ + RTUNI_ALPHA, /* U+00cd5f: */ + RTUNI_ALPHA, /* U+00cd60: */ + RTUNI_ALPHA, /* U+00cd61: */ + RTUNI_ALPHA, /* U+00cd62: */ + RTUNI_ALPHA, /* U+00cd63: */ + RTUNI_ALPHA, /* U+00cd64: */ + RTUNI_ALPHA, /* U+00cd65: */ + RTUNI_ALPHA, /* U+00cd66: */ + RTUNI_ALPHA, /* U+00cd67: */ + RTUNI_ALPHA, /* U+00cd68: */ + RTUNI_ALPHA, /* U+00cd69: */ + RTUNI_ALPHA, /* U+00cd6a: */ + RTUNI_ALPHA, /* U+00cd6b: */ + RTUNI_ALPHA, /* U+00cd6c: */ + RTUNI_ALPHA, /* U+00cd6d: */ + RTUNI_ALPHA, /* U+00cd6e: */ + RTUNI_ALPHA, /* U+00cd6f: */ + RTUNI_ALPHA, /* U+00cd70: */ + RTUNI_ALPHA, /* U+00cd71: */ + RTUNI_ALPHA, /* U+00cd72: */ + RTUNI_ALPHA, /* U+00cd73: */ + RTUNI_ALPHA, /* U+00cd74: */ + RTUNI_ALPHA, /* U+00cd75: */ + RTUNI_ALPHA, /* U+00cd76: */ + RTUNI_ALPHA, /* U+00cd77: */ + RTUNI_ALPHA, /* U+00cd78: */ + RTUNI_ALPHA, /* U+00cd79: */ + RTUNI_ALPHA, /* U+00cd7a: */ + RTUNI_ALPHA, /* U+00cd7b: */ + RTUNI_ALPHA, /* U+00cd7c: */ + RTUNI_ALPHA, /* U+00cd7d: */ + RTUNI_ALPHA, /* U+00cd7e: */ + RTUNI_ALPHA, /* U+00cd7f: */ + RTUNI_ALPHA, /* U+00cd80: */ + RTUNI_ALPHA, /* U+00cd81: */ + RTUNI_ALPHA, /* U+00cd82: */ + RTUNI_ALPHA, /* U+00cd83: */ + RTUNI_ALPHA, /* U+00cd84: */ + RTUNI_ALPHA, /* U+00cd85: */ + RTUNI_ALPHA, /* U+00cd86: */ + RTUNI_ALPHA, /* U+00cd87: */ + RTUNI_ALPHA, /* U+00cd88: */ + RTUNI_ALPHA, /* U+00cd89: */ + RTUNI_ALPHA, /* U+00cd8a: */ + RTUNI_ALPHA, /* U+00cd8b: */ + RTUNI_ALPHA, /* U+00cd8c: */ + RTUNI_ALPHA, /* U+00cd8d: */ + RTUNI_ALPHA, /* U+00cd8e: */ + RTUNI_ALPHA, /* U+00cd8f: */ + RTUNI_ALPHA, /* U+00cd90: */ + RTUNI_ALPHA, /* U+00cd91: */ + RTUNI_ALPHA, /* U+00cd92: */ + RTUNI_ALPHA, /* U+00cd93: */ + RTUNI_ALPHA, /* U+00cd94: */ + RTUNI_ALPHA, /* U+00cd95: */ + RTUNI_ALPHA, /* U+00cd96: */ + RTUNI_ALPHA, /* U+00cd97: */ + RTUNI_ALPHA, /* U+00cd98: */ + RTUNI_ALPHA, /* U+00cd99: */ + RTUNI_ALPHA, /* U+00cd9a: */ + RTUNI_ALPHA, /* U+00cd9b: */ + RTUNI_ALPHA, /* U+00cd9c: */ + RTUNI_ALPHA, /* U+00cd9d: */ + RTUNI_ALPHA, /* U+00cd9e: */ + RTUNI_ALPHA, /* U+00cd9f: */ + RTUNI_ALPHA, /* U+00cda0: */ + RTUNI_ALPHA, /* U+00cda1: */ + RTUNI_ALPHA, /* U+00cda2: */ + RTUNI_ALPHA, /* U+00cda3: */ + RTUNI_ALPHA, /* U+00cda4: */ + RTUNI_ALPHA, /* U+00cda5: */ + RTUNI_ALPHA, /* U+00cda6: */ + RTUNI_ALPHA, /* U+00cda7: */ + RTUNI_ALPHA, /* U+00cda8: */ + RTUNI_ALPHA, /* U+00cda9: */ + RTUNI_ALPHA, /* U+00cdaa: */ + RTUNI_ALPHA, /* U+00cdab: */ + RTUNI_ALPHA, /* U+00cdac: */ + RTUNI_ALPHA, /* U+00cdad: */ + RTUNI_ALPHA, /* U+00cdae: */ + RTUNI_ALPHA, /* U+00cdaf: */ + RTUNI_ALPHA, /* U+00cdb0: */ + RTUNI_ALPHA, /* U+00cdb1: */ + RTUNI_ALPHA, /* U+00cdb2: */ + RTUNI_ALPHA, /* U+00cdb3: */ + RTUNI_ALPHA, /* U+00cdb4: */ + RTUNI_ALPHA, /* U+00cdb5: */ + RTUNI_ALPHA, /* U+00cdb6: */ + RTUNI_ALPHA, /* U+00cdb7: */ + RTUNI_ALPHA, /* U+00cdb8: */ + RTUNI_ALPHA, /* U+00cdb9: */ + RTUNI_ALPHA, /* U+00cdba: */ + RTUNI_ALPHA, /* U+00cdbb: */ + RTUNI_ALPHA, /* U+00cdbc: */ + RTUNI_ALPHA, /* U+00cdbd: */ + RTUNI_ALPHA, /* U+00cdbe: */ + RTUNI_ALPHA, /* U+00cdbf: */ + RTUNI_ALPHA, /* U+00cdc0: */ + RTUNI_ALPHA, /* U+00cdc1: */ + RTUNI_ALPHA, /* U+00cdc2: */ + RTUNI_ALPHA, /* U+00cdc3: */ + RTUNI_ALPHA, /* U+00cdc4: */ + RTUNI_ALPHA, /* U+00cdc5: */ + RTUNI_ALPHA, /* U+00cdc6: */ + RTUNI_ALPHA, /* U+00cdc7: */ + RTUNI_ALPHA, /* U+00cdc8: */ + RTUNI_ALPHA, /* U+00cdc9: */ + RTUNI_ALPHA, /* U+00cdca: */ + RTUNI_ALPHA, /* U+00cdcb: */ + RTUNI_ALPHA, /* U+00cdcc: */ + RTUNI_ALPHA, /* U+00cdcd: */ + RTUNI_ALPHA, /* U+00cdce: */ + RTUNI_ALPHA, /* U+00cdcf: */ + RTUNI_ALPHA, /* U+00cdd0: */ + RTUNI_ALPHA, /* U+00cdd1: */ + RTUNI_ALPHA, /* U+00cdd2: */ + RTUNI_ALPHA, /* U+00cdd3: */ + RTUNI_ALPHA, /* U+00cdd4: */ + RTUNI_ALPHA, /* U+00cdd5: */ + RTUNI_ALPHA, /* U+00cdd6: */ + RTUNI_ALPHA, /* U+00cdd7: */ + RTUNI_ALPHA, /* U+00cdd8: */ + RTUNI_ALPHA, /* U+00cdd9: */ + RTUNI_ALPHA, /* U+00cdda: */ + RTUNI_ALPHA, /* U+00cddb: */ + RTUNI_ALPHA, /* U+00cddc: */ + RTUNI_ALPHA, /* U+00cddd: */ + RTUNI_ALPHA, /* U+00cdde: */ + RTUNI_ALPHA, /* U+00cddf: */ + RTUNI_ALPHA, /* U+00cde0: */ + RTUNI_ALPHA, /* U+00cde1: */ + RTUNI_ALPHA, /* U+00cde2: */ + RTUNI_ALPHA, /* U+00cde3: */ + RTUNI_ALPHA, /* U+00cde4: */ + RTUNI_ALPHA, /* U+00cde5: */ + RTUNI_ALPHA, /* U+00cde6: */ + RTUNI_ALPHA, /* U+00cde7: */ + RTUNI_ALPHA, /* U+00cde8: */ + RTUNI_ALPHA, /* U+00cde9: */ + RTUNI_ALPHA, /* U+00cdea: */ + RTUNI_ALPHA, /* U+00cdeb: */ + RTUNI_ALPHA, /* U+00cdec: */ + RTUNI_ALPHA, /* U+00cded: */ + RTUNI_ALPHA, /* U+00cdee: */ + RTUNI_ALPHA, /* U+00cdef: */ + RTUNI_ALPHA, /* U+00cdf0: */ + RTUNI_ALPHA, /* U+00cdf1: */ + RTUNI_ALPHA, /* U+00cdf2: */ + RTUNI_ALPHA, /* U+00cdf3: */ + RTUNI_ALPHA, /* U+00cdf4: */ + RTUNI_ALPHA, /* U+00cdf5: */ + RTUNI_ALPHA, /* U+00cdf6: */ + RTUNI_ALPHA, /* U+00cdf7: */ + RTUNI_ALPHA, /* U+00cdf8: */ + RTUNI_ALPHA, /* U+00cdf9: */ + RTUNI_ALPHA, /* U+00cdfa: */ + RTUNI_ALPHA, /* U+00cdfb: */ + RTUNI_ALPHA, /* U+00cdfc: */ + RTUNI_ALPHA, /* U+00cdfd: */ + RTUNI_ALPHA, /* U+00cdfe: */ + RTUNI_ALPHA, /* U+00cdff: */ + RTUNI_ALPHA, /* U+00ce00: */ + RTUNI_ALPHA, /* U+00ce01: */ + RTUNI_ALPHA, /* U+00ce02: */ + RTUNI_ALPHA, /* U+00ce03: */ + RTUNI_ALPHA, /* U+00ce04: */ + RTUNI_ALPHA, /* U+00ce05: */ + RTUNI_ALPHA, /* U+00ce06: */ + RTUNI_ALPHA, /* U+00ce07: */ + RTUNI_ALPHA, /* U+00ce08: */ + RTUNI_ALPHA, /* U+00ce09: */ + RTUNI_ALPHA, /* U+00ce0a: */ + RTUNI_ALPHA, /* U+00ce0b: */ + RTUNI_ALPHA, /* U+00ce0c: */ + RTUNI_ALPHA, /* U+00ce0d: */ + RTUNI_ALPHA, /* U+00ce0e: */ + RTUNI_ALPHA, /* U+00ce0f: */ + RTUNI_ALPHA, /* U+00ce10: */ + RTUNI_ALPHA, /* U+00ce11: */ + RTUNI_ALPHA, /* U+00ce12: */ + RTUNI_ALPHA, /* U+00ce13: */ + RTUNI_ALPHA, /* U+00ce14: */ + RTUNI_ALPHA, /* U+00ce15: */ + RTUNI_ALPHA, /* U+00ce16: */ + RTUNI_ALPHA, /* U+00ce17: */ + RTUNI_ALPHA, /* U+00ce18: */ + RTUNI_ALPHA, /* U+00ce19: */ + RTUNI_ALPHA, /* U+00ce1a: */ + RTUNI_ALPHA, /* U+00ce1b: */ + RTUNI_ALPHA, /* U+00ce1c: */ + RTUNI_ALPHA, /* U+00ce1d: */ + RTUNI_ALPHA, /* U+00ce1e: */ + RTUNI_ALPHA, /* U+00ce1f: */ + RTUNI_ALPHA, /* U+00ce20: */ + RTUNI_ALPHA, /* U+00ce21: */ + RTUNI_ALPHA, /* U+00ce22: */ + RTUNI_ALPHA, /* U+00ce23: */ + RTUNI_ALPHA, /* U+00ce24: */ + RTUNI_ALPHA, /* U+00ce25: */ + RTUNI_ALPHA, /* U+00ce26: */ + RTUNI_ALPHA, /* U+00ce27: */ + RTUNI_ALPHA, /* U+00ce28: */ + RTUNI_ALPHA, /* U+00ce29: */ + RTUNI_ALPHA, /* U+00ce2a: */ + RTUNI_ALPHA, /* U+00ce2b: */ + RTUNI_ALPHA, /* U+00ce2c: */ + RTUNI_ALPHA, /* U+00ce2d: */ + RTUNI_ALPHA, /* U+00ce2e: */ + RTUNI_ALPHA, /* U+00ce2f: */ + RTUNI_ALPHA, /* U+00ce30: */ + RTUNI_ALPHA, /* U+00ce31: */ + RTUNI_ALPHA, /* U+00ce32: */ + RTUNI_ALPHA, /* U+00ce33: */ + RTUNI_ALPHA, /* U+00ce34: */ + RTUNI_ALPHA, /* U+00ce35: */ + RTUNI_ALPHA, /* U+00ce36: */ + RTUNI_ALPHA, /* U+00ce37: */ + RTUNI_ALPHA, /* U+00ce38: */ + RTUNI_ALPHA, /* U+00ce39: */ + RTUNI_ALPHA, /* U+00ce3a: */ + RTUNI_ALPHA, /* U+00ce3b: */ + RTUNI_ALPHA, /* U+00ce3c: */ + RTUNI_ALPHA, /* U+00ce3d: */ + RTUNI_ALPHA, /* U+00ce3e: */ + RTUNI_ALPHA, /* U+00ce3f: */ + RTUNI_ALPHA, /* U+00ce40: */ + RTUNI_ALPHA, /* U+00ce41: */ + RTUNI_ALPHA, /* U+00ce42: */ + RTUNI_ALPHA, /* U+00ce43: */ + RTUNI_ALPHA, /* U+00ce44: */ + RTUNI_ALPHA, /* U+00ce45: */ + RTUNI_ALPHA, /* U+00ce46: */ + RTUNI_ALPHA, /* U+00ce47: */ + RTUNI_ALPHA, /* U+00ce48: */ + RTUNI_ALPHA, /* U+00ce49: */ + RTUNI_ALPHA, /* U+00ce4a: */ + RTUNI_ALPHA, /* U+00ce4b: */ + RTUNI_ALPHA, /* U+00ce4c: */ + RTUNI_ALPHA, /* U+00ce4d: */ + RTUNI_ALPHA, /* U+00ce4e: */ + RTUNI_ALPHA, /* U+00ce4f: */ + RTUNI_ALPHA, /* U+00ce50: */ + RTUNI_ALPHA, /* U+00ce51: */ + RTUNI_ALPHA, /* U+00ce52: */ + RTUNI_ALPHA, /* U+00ce53: */ + RTUNI_ALPHA, /* U+00ce54: */ + RTUNI_ALPHA, /* U+00ce55: */ + RTUNI_ALPHA, /* U+00ce56: */ + RTUNI_ALPHA, /* U+00ce57: */ + RTUNI_ALPHA, /* U+00ce58: */ + RTUNI_ALPHA, /* U+00ce59: */ + RTUNI_ALPHA, /* U+00ce5a: */ + RTUNI_ALPHA, /* U+00ce5b: */ + RTUNI_ALPHA, /* U+00ce5c: */ + RTUNI_ALPHA, /* U+00ce5d: */ + RTUNI_ALPHA, /* U+00ce5e: */ + RTUNI_ALPHA, /* U+00ce5f: */ + RTUNI_ALPHA, /* U+00ce60: */ + RTUNI_ALPHA, /* U+00ce61: */ + RTUNI_ALPHA, /* U+00ce62: */ + RTUNI_ALPHA, /* U+00ce63: */ + RTUNI_ALPHA, /* U+00ce64: */ + RTUNI_ALPHA, /* U+00ce65: */ + RTUNI_ALPHA, /* U+00ce66: */ + RTUNI_ALPHA, /* U+00ce67: */ + RTUNI_ALPHA, /* U+00ce68: */ + RTUNI_ALPHA, /* U+00ce69: */ + RTUNI_ALPHA, /* U+00ce6a: */ + RTUNI_ALPHA, /* U+00ce6b: */ + RTUNI_ALPHA, /* U+00ce6c: */ + RTUNI_ALPHA, /* U+00ce6d: */ + RTUNI_ALPHA, /* U+00ce6e: */ + RTUNI_ALPHA, /* U+00ce6f: */ + RTUNI_ALPHA, /* U+00ce70: */ + RTUNI_ALPHA, /* U+00ce71: */ + RTUNI_ALPHA, /* U+00ce72: */ + RTUNI_ALPHA, /* U+00ce73: */ + RTUNI_ALPHA, /* U+00ce74: */ + RTUNI_ALPHA, /* U+00ce75: */ + RTUNI_ALPHA, /* U+00ce76: */ + RTUNI_ALPHA, /* U+00ce77: */ + RTUNI_ALPHA, /* U+00ce78: */ + RTUNI_ALPHA, /* U+00ce79: */ + RTUNI_ALPHA, /* U+00ce7a: */ + RTUNI_ALPHA, /* U+00ce7b: */ + RTUNI_ALPHA, /* U+00ce7c: */ + RTUNI_ALPHA, /* U+00ce7d: */ + RTUNI_ALPHA, /* U+00ce7e: */ + RTUNI_ALPHA, /* U+00ce7f: */ + RTUNI_ALPHA, /* U+00ce80: */ + RTUNI_ALPHA, /* U+00ce81: */ + RTUNI_ALPHA, /* U+00ce82: */ + RTUNI_ALPHA, /* U+00ce83: */ + RTUNI_ALPHA, /* U+00ce84: */ + RTUNI_ALPHA, /* U+00ce85: */ + RTUNI_ALPHA, /* U+00ce86: */ + RTUNI_ALPHA, /* U+00ce87: */ + RTUNI_ALPHA, /* U+00ce88: */ + RTUNI_ALPHA, /* U+00ce89: */ + RTUNI_ALPHA, /* U+00ce8a: */ + RTUNI_ALPHA, /* U+00ce8b: */ + RTUNI_ALPHA, /* U+00ce8c: */ + RTUNI_ALPHA, /* U+00ce8d: */ + RTUNI_ALPHA, /* U+00ce8e: */ + RTUNI_ALPHA, /* U+00ce8f: */ + RTUNI_ALPHA, /* U+00ce90: */ + RTUNI_ALPHA, /* U+00ce91: */ + RTUNI_ALPHA, /* U+00ce92: */ + RTUNI_ALPHA, /* U+00ce93: */ + RTUNI_ALPHA, /* U+00ce94: */ + RTUNI_ALPHA, /* U+00ce95: */ + RTUNI_ALPHA, /* U+00ce96: */ + RTUNI_ALPHA, /* U+00ce97: */ + RTUNI_ALPHA, /* U+00ce98: */ + RTUNI_ALPHA, /* U+00ce99: */ + RTUNI_ALPHA, /* U+00ce9a: */ + RTUNI_ALPHA, /* U+00ce9b: */ + RTUNI_ALPHA, /* U+00ce9c: */ + RTUNI_ALPHA, /* U+00ce9d: */ + RTUNI_ALPHA, /* U+00ce9e: */ + RTUNI_ALPHA, /* U+00ce9f: */ + RTUNI_ALPHA, /* U+00cea0: */ + RTUNI_ALPHA, /* U+00cea1: */ + RTUNI_ALPHA, /* U+00cea2: */ + RTUNI_ALPHA, /* U+00cea3: */ + RTUNI_ALPHA, /* U+00cea4: */ + RTUNI_ALPHA, /* U+00cea5: */ + RTUNI_ALPHA, /* U+00cea6: */ + RTUNI_ALPHA, /* U+00cea7: */ + RTUNI_ALPHA, /* U+00cea8: */ + RTUNI_ALPHA, /* U+00cea9: */ + RTUNI_ALPHA, /* U+00ceaa: */ + RTUNI_ALPHA, /* U+00ceab: */ + RTUNI_ALPHA, /* U+00ceac: */ + RTUNI_ALPHA, /* U+00cead: */ + RTUNI_ALPHA, /* U+00ceae: */ + RTUNI_ALPHA, /* U+00ceaf: */ + RTUNI_ALPHA, /* U+00ceb0: */ + RTUNI_ALPHA, /* U+00ceb1: */ + RTUNI_ALPHA, /* U+00ceb2: */ + RTUNI_ALPHA, /* U+00ceb3: */ + RTUNI_ALPHA, /* U+00ceb4: */ + RTUNI_ALPHA, /* U+00ceb5: */ + RTUNI_ALPHA, /* U+00ceb6: */ + RTUNI_ALPHA, /* U+00ceb7: */ + RTUNI_ALPHA, /* U+00ceb8: */ + RTUNI_ALPHA, /* U+00ceb9: */ + RTUNI_ALPHA, /* U+00ceba: */ + RTUNI_ALPHA, /* U+00cebb: */ + RTUNI_ALPHA, /* U+00cebc: */ + RTUNI_ALPHA, /* U+00cebd: */ + RTUNI_ALPHA, /* U+00cebe: */ + RTUNI_ALPHA, /* U+00cebf: */ + RTUNI_ALPHA, /* U+00cec0: */ + RTUNI_ALPHA, /* U+00cec1: */ + RTUNI_ALPHA, /* U+00cec2: */ + RTUNI_ALPHA, /* U+00cec3: */ + RTUNI_ALPHA, /* U+00cec4: */ + RTUNI_ALPHA, /* U+00cec5: */ + RTUNI_ALPHA, /* U+00cec6: */ + RTUNI_ALPHA, /* U+00cec7: */ + RTUNI_ALPHA, /* U+00cec8: */ + RTUNI_ALPHA, /* U+00cec9: */ + RTUNI_ALPHA, /* U+00ceca: */ + RTUNI_ALPHA, /* U+00cecb: */ + RTUNI_ALPHA, /* U+00cecc: */ + RTUNI_ALPHA, /* U+00cecd: */ + RTUNI_ALPHA, /* U+00cece: */ + RTUNI_ALPHA, /* U+00cecf: */ + RTUNI_ALPHA, /* U+00ced0: */ + RTUNI_ALPHA, /* U+00ced1: */ + RTUNI_ALPHA, /* U+00ced2: */ + RTUNI_ALPHA, /* U+00ced3: */ + RTUNI_ALPHA, /* U+00ced4: */ + RTUNI_ALPHA, /* U+00ced5: */ + RTUNI_ALPHA, /* U+00ced6: */ + RTUNI_ALPHA, /* U+00ced7: */ + RTUNI_ALPHA, /* U+00ced8: */ + RTUNI_ALPHA, /* U+00ced9: */ + RTUNI_ALPHA, /* U+00ceda: */ + RTUNI_ALPHA, /* U+00cedb: */ + RTUNI_ALPHA, /* U+00cedc: */ + RTUNI_ALPHA, /* U+00cedd: */ + RTUNI_ALPHA, /* U+00cede: */ + RTUNI_ALPHA, /* U+00cedf: */ + RTUNI_ALPHA, /* U+00cee0: */ + RTUNI_ALPHA, /* U+00cee1: */ + RTUNI_ALPHA, /* U+00cee2: */ + RTUNI_ALPHA, /* U+00cee3: */ + RTUNI_ALPHA, /* U+00cee4: */ + RTUNI_ALPHA, /* U+00cee5: */ + RTUNI_ALPHA, /* U+00cee6: */ + RTUNI_ALPHA, /* U+00cee7: */ + RTUNI_ALPHA, /* U+00cee8: */ + RTUNI_ALPHA, /* U+00cee9: */ + RTUNI_ALPHA, /* U+00ceea: */ + RTUNI_ALPHA, /* U+00ceeb: */ + RTUNI_ALPHA, /* U+00ceec: */ + RTUNI_ALPHA, /* U+00ceed: */ + RTUNI_ALPHA, /* U+00ceee: */ + RTUNI_ALPHA, /* U+00ceef: */ + RTUNI_ALPHA, /* U+00cef0: */ + RTUNI_ALPHA, /* U+00cef1: */ + RTUNI_ALPHA, /* U+00cef2: */ + RTUNI_ALPHA, /* U+00cef3: */ + RTUNI_ALPHA, /* U+00cef4: */ + RTUNI_ALPHA, /* U+00cef5: */ + RTUNI_ALPHA, /* U+00cef6: */ + RTUNI_ALPHA, /* U+00cef7: */ + RTUNI_ALPHA, /* U+00cef8: */ + RTUNI_ALPHA, /* U+00cef9: */ + RTUNI_ALPHA, /* U+00cefa: */ + RTUNI_ALPHA, /* U+00cefb: */ + RTUNI_ALPHA, /* U+00cefc: */ + RTUNI_ALPHA, /* U+00cefd: */ + RTUNI_ALPHA, /* U+00cefe: */ + RTUNI_ALPHA, /* U+00ceff: */ + RTUNI_ALPHA, /* U+00cf00: */ + RTUNI_ALPHA, /* U+00cf01: */ + RTUNI_ALPHA, /* U+00cf02: */ + RTUNI_ALPHA, /* U+00cf03: */ + RTUNI_ALPHA, /* U+00cf04: */ + RTUNI_ALPHA, /* U+00cf05: */ + RTUNI_ALPHA, /* U+00cf06: */ + RTUNI_ALPHA, /* U+00cf07: */ + RTUNI_ALPHA, /* U+00cf08: */ + RTUNI_ALPHA, /* U+00cf09: */ + RTUNI_ALPHA, /* U+00cf0a: */ + RTUNI_ALPHA, /* U+00cf0b: */ + RTUNI_ALPHA, /* U+00cf0c: */ + RTUNI_ALPHA, /* U+00cf0d: */ + RTUNI_ALPHA, /* U+00cf0e: */ + RTUNI_ALPHA, /* U+00cf0f: */ + RTUNI_ALPHA, /* U+00cf10: */ + RTUNI_ALPHA, /* U+00cf11: */ + RTUNI_ALPHA, /* U+00cf12: */ + RTUNI_ALPHA, /* U+00cf13: */ + RTUNI_ALPHA, /* U+00cf14: */ + RTUNI_ALPHA, /* U+00cf15: */ + RTUNI_ALPHA, /* U+00cf16: */ + RTUNI_ALPHA, /* U+00cf17: */ + RTUNI_ALPHA, /* U+00cf18: */ + RTUNI_ALPHA, /* U+00cf19: */ + RTUNI_ALPHA, /* U+00cf1a: */ + RTUNI_ALPHA, /* U+00cf1b: */ + RTUNI_ALPHA, /* U+00cf1c: */ + RTUNI_ALPHA, /* U+00cf1d: */ + RTUNI_ALPHA, /* U+00cf1e: */ + RTUNI_ALPHA, /* U+00cf1f: */ + RTUNI_ALPHA, /* U+00cf20: */ + RTUNI_ALPHA, /* U+00cf21: */ + RTUNI_ALPHA, /* U+00cf22: */ + RTUNI_ALPHA, /* U+00cf23: */ + RTUNI_ALPHA, /* U+00cf24: */ + RTUNI_ALPHA, /* U+00cf25: */ + RTUNI_ALPHA, /* U+00cf26: */ + RTUNI_ALPHA, /* U+00cf27: */ + RTUNI_ALPHA, /* U+00cf28: */ + RTUNI_ALPHA, /* U+00cf29: */ + RTUNI_ALPHA, /* U+00cf2a: */ + RTUNI_ALPHA, /* U+00cf2b: */ + RTUNI_ALPHA, /* U+00cf2c: */ + RTUNI_ALPHA, /* U+00cf2d: */ + RTUNI_ALPHA, /* U+00cf2e: */ + RTUNI_ALPHA, /* U+00cf2f: */ + RTUNI_ALPHA, /* U+00cf30: */ + RTUNI_ALPHA, /* U+00cf31: */ + RTUNI_ALPHA, /* U+00cf32: */ + RTUNI_ALPHA, /* U+00cf33: */ + RTUNI_ALPHA, /* U+00cf34: */ + RTUNI_ALPHA, /* U+00cf35: */ + RTUNI_ALPHA, /* U+00cf36: */ + RTUNI_ALPHA, /* U+00cf37: */ + RTUNI_ALPHA, /* U+00cf38: */ + RTUNI_ALPHA, /* U+00cf39: */ + RTUNI_ALPHA, /* U+00cf3a: */ + RTUNI_ALPHA, /* U+00cf3b: */ + RTUNI_ALPHA, /* U+00cf3c: */ + RTUNI_ALPHA, /* U+00cf3d: */ + RTUNI_ALPHA, /* U+00cf3e: */ + RTUNI_ALPHA, /* U+00cf3f: */ + RTUNI_ALPHA, /* U+00cf40: */ + RTUNI_ALPHA, /* U+00cf41: */ + RTUNI_ALPHA, /* U+00cf42: */ + RTUNI_ALPHA, /* U+00cf43: */ + RTUNI_ALPHA, /* U+00cf44: */ + RTUNI_ALPHA, /* U+00cf45: */ + RTUNI_ALPHA, /* U+00cf46: */ + RTUNI_ALPHA, /* U+00cf47: */ + RTUNI_ALPHA, /* U+00cf48: */ + RTUNI_ALPHA, /* U+00cf49: */ + RTUNI_ALPHA, /* U+00cf4a: */ + RTUNI_ALPHA, /* U+00cf4b: */ + RTUNI_ALPHA, /* U+00cf4c: */ + RTUNI_ALPHA, /* U+00cf4d: */ + RTUNI_ALPHA, /* U+00cf4e: */ + RTUNI_ALPHA, /* U+00cf4f: */ + RTUNI_ALPHA, /* U+00cf50: */ + RTUNI_ALPHA, /* U+00cf51: */ + RTUNI_ALPHA, /* U+00cf52: */ + RTUNI_ALPHA, /* U+00cf53: */ + RTUNI_ALPHA, /* U+00cf54: */ + RTUNI_ALPHA, /* U+00cf55: */ + RTUNI_ALPHA, /* U+00cf56: */ + RTUNI_ALPHA, /* U+00cf57: */ + RTUNI_ALPHA, /* U+00cf58: */ + RTUNI_ALPHA, /* U+00cf59: */ + RTUNI_ALPHA, /* U+00cf5a: */ + RTUNI_ALPHA, /* U+00cf5b: */ + RTUNI_ALPHA, /* U+00cf5c: */ + RTUNI_ALPHA, /* U+00cf5d: */ + RTUNI_ALPHA, /* U+00cf5e: */ + RTUNI_ALPHA, /* U+00cf5f: */ + RTUNI_ALPHA, /* U+00cf60: */ + RTUNI_ALPHA, /* U+00cf61: */ + RTUNI_ALPHA, /* U+00cf62: */ + RTUNI_ALPHA, /* U+00cf63: */ + RTUNI_ALPHA, /* U+00cf64: */ + RTUNI_ALPHA, /* U+00cf65: */ + RTUNI_ALPHA, /* U+00cf66: */ + RTUNI_ALPHA, /* U+00cf67: */ + RTUNI_ALPHA, /* U+00cf68: */ + RTUNI_ALPHA, /* U+00cf69: */ + RTUNI_ALPHA, /* U+00cf6a: */ + RTUNI_ALPHA, /* U+00cf6b: */ + RTUNI_ALPHA, /* U+00cf6c: */ + RTUNI_ALPHA, /* U+00cf6d: */ + RTUNI_ALPHA, /* U+00cf6e: */ + RTUNI_ALPHA, /* U+00cf6f: */ + RTUNI_ALPHA, /* U+00cf70: */ + RTUNI_ALPHA, /* U+00cf71: */ + RTUNI_ALPHA, /* U+00cf72: */ + RTUNI_ALPHA, /* U+00cf73: */ + RTUNI_ALPHA, /* U+00cf74: */ + RTUNI_ALPHA, /* U+00cf75: */ + RTUNI_ALPHA, /* U+00cf76: */ + RTUNI_ALPHA, /* U+00cf77: */ + RTUNI_ALPHA, /* U+00cf78: */ + RTUNI_ALPHA, /* U+00cf79: */ + RTUNI_ALPHA, /* U+00cf7a: */ + RTUNI_ALPHA, /* U+00cf7b: */ + RTUNI_ALPHA, /* U+00cf7c: */ + RTUNI_ALPHA, /* U+00cf7d: */ + RTUNI_ALPHA, /* U+00cf7e: */ + RTUNI_ALPHA, /* U+00cf7f: */ + RTUNI_ALPHA, /* U+00cf80: */ + RTUNI_ALPHA, /* U+00cf81: */ + RTUNI_ALPHA, /* U+00cf82: */ + RTUNI_ALPHA, /* U+00cf83: */ + RTUNI_ALPHA, /* U+00cf84: */ + RTUNI_ALPHA, /* U+00cf85: */ + RTUNI_ALPHA, /* U+00cf86: */ + RTUNI_ALPHA, /* U+00cf87: */ + RTUNI_ALPHA, /* U+00cf88: */ + RTUNI_ALPHA, /* U+00cf89: */ + RTUNI_ALPHA, /* U+00cf8a: */ + RTUNI_ALPHA, /* U+00cf8b: */ + RTUNI_ALPHA, /* U+00cf8c: */ + RTUNI_ALPHA, /* U+00cf8d: */ + RTUNI_ALPHA, /* U+00cf8e: */ + RTUNI_ALPHA, /* U+00cf8f: */ + RTUNI_ALPHA, /* U+00cf90: */ + RTUNI_ALPHA, /* U+00cf91: */ + RTUNI_ALPHA, /* U+00cf92: */ + RTUNI_ALPHA, /* U+00cf93: */ + RTUNI_ALPHA, /* U+00cf94: */ + RTUNI_ALPHA, /* U+00cf95: */ + RTUNI_ALPHA, /* U+00cf96: */ + RTUNI_ALPHA, /* U+00cf97: */ + RTUNI_ALPHA, /* U+00cf98: */ + RTUNI_ALPHA, /* U+00cf99: */ + RTUNI_ALPHA, /* U+00cf9a: */ + RTUNI_ALPHA, /* U+00cf9b: */ + RTUNI_ALPHA, /* U+00cf9c: */ + RTUNI_ALPHA, /* U+00cf9d: */ + RTUNI_ALPHA, /* U+00cf9e: */ + RTUNI_ALPHA, /* U+00cf9f: */ + RTUNI_ALPHA, /* U+00cfa0: */ + RTUNI_ALPHA, /* U+00cfa1: */ + RTUNI_ALPHA, /* U+00cfa2: */ + RTUNI_ALPHA, /* U+00cfa3: */ + RTUNI_ALPHA, /* U+00cfa4: */ + RTUNI_ALPHA, /* U+00cfa5: */ + RTUNI_ALPHA, /* U+00cfa6: */ + RTUNI_ALPHA, /* U+00cfa7: */ + RTUNI_ALPHA, /* U+00cfa8: */ + RTUNI_ALPHA, /* U+00cfa9: */ + RTUNI_ALPHA, /* U+00cfaa: */ + RTUNI_ALPHA, /* U+00cfab: */ + RTUNI_ALPHA, /* U+00cfac: */ + RTUNI_ALPHA, /* U+00cfad: */ + RTUNI_ALPHA, /* U+00cfae: */ + RTUNI_ALPHA, /* U+00cfaf: */ + RTUNI_ALPHA, /* U+00cfb0: */ + RTUNI_ALPHA, /* U+00cfb1: */ + RTUNI_ALPHA, /* U+00cfb2: */ + RTUNI_ALPHA, /* U+00cfb3: */ + RTUNI_ALPHA, /* U+00cfb4: */ + RTUNI_ALPHA, /* U+00cfb5: */ + RTUNI_ALPHA, /* U+00cfb6: */ + RTUNI_ALPHA, /* U+00cfb7: */ + RTUNI_ALPHA, /* U+00cfb8: */ + RTUNI_ALPHA, /* U+00cfb9: */ + RTUNI_ALPHA, /* U+00cfba: */ + RTUNI_ALPHA, /* U+00cfbb: */ + RTUNI_ALPHA, /* U+00cfbc: */ + RTUNI_ALPHA, /* U+00cfbd: */ + RTUNI_ALPHA, /* U+00cfbe: */ + RTUNI_ALPHA, /* U+00cfbf: */ + RTUNI_ALPHA, /* U+00cfc0: */ + RTUNI_ALPHA, /* U+00cfc1: */ + RTUNI_ALPHA, /* U+00cfc2: */ + RTUNI_ALPHA, /* U+00cfc3: */ + RTUNI_ALPHA, /* U+00cfc4: */ + RTUNI_ALPHA, /* U+00cfc5: */ + RTUNI_ALPHA, /* U+00cfc6: */ + RTUNI_ALPHA, /* U+00cfc7: */ + RTUNI_ALPHA, /* U+00cfc8: */ + RTUNI_ALPHA, /* U+00cfc9: */ + RTUNI_ALPHA, /* U+00cfca: */ + RTUNI_ALPHA, /* U+00cfcb: */ + RTUNI_ALPHA, /* U+00cfcc: */ + RTUNI_ALPHA, /* U+00cfcd: */ + RTUNI_ALPHA, /* U+00cfce: */ + RTUNI_ALPHA, /* U+00cfcf: */ + RTUNI_ALPHA, /* U+00cfd0: */ + RTUNI_ALPHA, /* U+00cfd1: */ + RTUNI_ALPHA, /* U+00cfd2: */ + RTUNI_ALPHA, /* U+00cfd3: */ + RTUNI_ALPHA, /* U+00cfd4: */ + RTUNI_ALPHA, /* U+00cfd5: */ + RTUNI_ALPHA, /* U+00cfd6: */ + RTUNI_ALPHA, /* U+00cfd7: */ + RTUNI_ALPHA, /* U+00cfd8: */ + RTUNI_ALPHA, /* U+00cfd9: */ + RTUNI_ALPHA, /* U+00cfda: */ + RTUNI_ALPHA, /* U+00cfdb: */ + RTUNI_ALPHA, /* U+00cfdc: */ + RTUNI_ALPHA, /* U+00cfdd: */ + RTUNI_ALPHA, /* U+00cfde: */ + RTUNI_ALPHA, /* U+00cfdf: */ + RTUNI_ALPHA, /* U+00cfe0: */ + RTUNI_ALPHA, /* U+00cfe1: */ + RTUNI_ALPHA, /* U+00cfe2: */ + RTUNI_ALPHA, /* U+00cfe3: */ + RTUNI_ALPHA, /* U+00cfe4: */ + RTUNI_ALPHA, /* U+00cfe5: */ + RTUNI_ALPHA, /* U+00cfe6: */ + RTUNI_ALPHA, /* U+00cfe7: */ + RTUNI_ALPHA, /* U+00cfe8: */ + RTUNI_ALPHA, /* U+00cfe9: */ + RTUNI_ALPHA, /* U+00cfea: */ + RTUNI_ALPHA, /* U+00cfeb: */ + RTUNI_ALPHA, /* U+00cfec: */ + RTUNI_ALPHA, /* U+00cfed: */ + RTUNI_ALPHA, /* U+00cfee: */ + RTUNI_ALPHA, /* U+00cfef: */ + RTUNI_ALPHA, /* U+00cff0: */ + RTUNI_ALPHA, /* U+00cff1: */ + RTUNI_ALPHA, /* U+00cff2: */ + RTUNI_ALPHA, /* U+00cff3: */ + RTUNI_ALPHA, /* U+00cff4: */ + RTUNI_ALPHA, /* U+00cff5: */ + RTUNI_ALPHA, /* U+00cff6: */ + RTUNI_ALPHA, /* U+00cff7: */ + RTUNI_ALPHA, /* U+00cff8: */ + RTUNI_ALPHA, /* U+00cff9: */ + RTUNI_ALPHA, /* U+00cffa: */ + RTUNI_ALPHA, /* U+00cffb: */ + RTUNI_ALPHA, /* U+00cffc: */ + RTUNI_ALPHA, /* U+00cffd: */ + RTUNI_ALPHA, /* U+00cffe: */ + RTUNI_ALPHA, /* U+00cfff: */ + RTUNI_ALPHA, /* U+00d000: */ + RTUNI_ALPHA, /* U+00d001: */ + RTUNI_ALPHA, /* U+00d002: */ + RTUNI_ALPHA, /* U+00d003: */ + RTUNI_ALPHA, /* U+00d004: */ + RTUNI_ALPHA, /* U+00d005: */ + RTUNI_ALPHA, /* U+00d006: */ + RTUNI_ALPHA, /* U+00d007: */ + RTUNI_ALPHA, /* U+00d008: */ + RTUNI_ALPHA, /* U+00d009: */ + RTUNI_ALPHA, /* U+00d00a: */ + RTUNI_ALPHA, /* U+00d00b: */ + RTUNI_ALPHA, /* U+00d00c: */ + RTUNI_ALPHA, /* U+00d00d: */ + RTUNI_ALPHA, /* U+00d00e: */ + RTUNI_ALPHA, /* U+00d00f: */ + RTUNI_ALPHA, /* U+00d010: */ + RTUNI_ALPHA, /* U+00d011: */ + RTUNI_ALPHA, /* U+00d012: */ + RTUNI_ALPHA, /* U+00d013: */ + RTUNI_ALPHA, /* U+00d014: */ + RTUNI_ALPHA, /* U+00d015: */ + RTUNI_ALPHA, /* U+00d016: */ + RTUNI_ALPHA, /* U+00d017: */ + RTUNI_ALPHA, /* U+00d018: */ + RTUNI_ALPHA, /* U+00d019: */ + RTUNI_ALPHA, /* U+00d01a: */ + RTUNI_ALPHA, /* U+00d01b: */ + RTUNI_ALPHA, /* U+00d01c: */ + RTUNI_ALPHA, /* U+00d01d: */ + RTUNI_ALPHA, /* U+00d01e: */ + RTUNI_ALPHA, /* U+00d01f: */ + RTUNI_ALPHA, /* U+00d020: */ + RTUNI_ALPHA, /* U+00d021: */ + RTUNI_ALPHA, /* U+00d022: */ + RTUNI_ALPHA, /* U+00d023: */ + RTUNI_ALPHA, /* U+00d024: */ + RTUNI_ALPHA, /* U+00d025: */ + RTUNI_ALPHA, /* U+00d026: */ + RTUNI_ALPHA, /* U+00d027: */ + RTUNI_ALPHA, /* U+00d028: */ + RTUNI_ALPHA, /* U+00d029: */ + RTUNI_ALPHA, /* U+00d02a: */ + RTUNI_ALPHA, /* U+00d02b: */ + RTUNI_ALPHA, /* U+00d02c: */ + RTUNI_ALPHA, /* U+00d02d: */ + RTUNI_ALPHA, /* U+00d02e: */ + RTUNI_ALPHA, /* U+00d02f: */ + RTUNI_ALPHA, /* U+00d030: */ + RTUNI_ALPHA, /* U+00d031: */ + RTUNI_ALPHA, /* U+00d032: */ + RTUNI_ALPHA, /* U+00d033: */ + RTUNI_ALPHA, /* U+00d034: */ + RTUNI_ALPHA, /* U+00d035: */ + RTUNI_ALPHA, /* U+00d036: */ + RTUNI_ALPHA, /* U+00d037: */ + RTUNI_ALPHA, /* U+00d038: */ + RTUNI_ALPHA, /* U+00d039: */ + RTUNI_ALPHA, /* U+00d03a: */ + RTUNI_ALPHA, /* U+00d03b: */ + RTUNI_ALPHA, /* U+00d03c: */ + RTUNI_ALPHA, /* U+00d03d: */ + RTUNI_ALPHA, /* U+00d03e: */ + RTUNI_ALPHA, /* U+00d03f: */ + RTUNI_ALPHA, /* U+00d040: */ + RTUNI_ALPHA, /* U+00d041: */ + RTUNI_ALPHA, /* U+00d042: */ + RTUNI_ALPHA, /* U+00d043: */ + RTUNI_ALPHA, /* U+00d044: */ + RTUNI_ALPHA, /* U+00d045: */ + RTUNI_ALPHA, /* U+00d046: */ + RTUNI_ALPHA, /* U+00d047: */ + RTUNI_ALPHA, /* U+00d048: */ + RTUNI_ALPHA, /* U+00d049: */ + RTUNI_ALPHA, /* U+00d04a: */ + RTUNI_ALPHA, /* U+00d04b: */ + RTUNI_ALPHA, /* U+00d04c: */ + RTUNI_ALPHA, /* U+00d04d: */ + RTUNI_ALPHA, /* U+00d04e: */ + RTUNI_ALPHA, /* U+00d04f: */ + RTUNI_ALPHA, /* U+00d050: */ + RTUNI_ALPHA, /* U+00d051: */ + RTUNI_ALPHA, /* U+00d052: */ + RTUNI_ALPHA, /* U+00d053: */ + RTUNI_ALPHA, /* U+00d054: */ + RTUNI_ALPHA, /* U+00d055: */ + RTUNI_ALPHA, /* U+00d056: */ + RTUNI_ALPHA, /* U+00d057: */ + RTUNI_ALPHA, /* U+00d058: */ + RTUNI_ALPHA, /* U+00d059: */ + RTUNI_ALPHA, /* U+00d05a: */ + RTUNI_ALPHA, /* U+00d05b: */ + RTUNI_ALPHA, /* U+00d05c: */ + RTUNI_ALPHA, /* U+00d05d: */ + RTUNI_ALPHA, /* U+00d05e: */ + RTUNI_ALPHA, /* U+00d05f: */ + RTUNI_ALPHA, /* U+00d060: */ + RTUNI_ALPHA, /* U+00d061: */ + RTUNI_ALPHA, /* U+00d062: */ + RTUNI_ALPHA, /* U+00d063: */ + RTUNI_ALPHA, /* U+00d064: */ + RTUNI_ALPHA, /* U+00d065: */ + RTUNI_ALPHA, /* U+00d066: */ + RTUNI_ALPHA, /* U+00d067: */ + RTUNI_ALPHA, /* U+00d068: */ + RTUNI_ALPHA, /* U+00d069: */ + RTUNI_ALPHA, /* U+00d06a: */ + RTUNI_ALPHA, /* U+00d06b: */ + RTUNI_ALPHA, /* U+00d06c: */ + RTUNI_ALPHA, /* U+00d06d: */ + RTUNI_ALPHA, /* U+00d06e: */ + RTUNI_ALPHA, /* U+00d06f: */ + RTUNI_ALPHA, /* U+00d070: */ + RTUNI_ALPHA, /* U+00d071: */ + RTUNI_ALPHA, /* U+00d072: */ + RTUNI_ALPHA, /* U+00d073: */ + RTUNI_ALPHA, /* U+00d074: */ + RTUNI_ALPHA, /* U+00d075: */ + RTUNI_ALPHA, /* U+00d076: */ + RTUNI_ALPHA, /* U+00d077: */ + RTUNI_ALPHA, /* U+00d078: */ + RTUNI_ALPHA, /* U+00d079: */ + RTUNI_ALPHA, /* U+00d07a: */ + RTUNI_ALPHA, /* U+00d07b: */ + RTUNI_ALPHA, /* U+00d07c: */ + RTUNI_ALPHA, /* U+00d07d: */ + RTUNI_ALPHA, /* U+00d07e: */ + RTUNI_ALPHA, /* U+00d07f: */ + RTUNI_ALPHA, /* U+00d080: */ + RTUNI_ALPHA, /* U+00d081: */ + RTUNI_ALPHA, /* U+00d082: */ + RTUNI_ALPHA, /* U+00d083: */ + RTUNI_ALPHA, /* U+00d084: */ + RTUNI_ALPHA, /* U+00d085: */ + RTUNI_ALPHA, /* U+00d086: */ + RTUNI_ALPHA, /* U+00d087: */ + RTUNI_ALPHA, /* U+00d088: */ + RTUNI_ALPHA, /* U+00d089: */ + RTUNI_ALPHA, /* U+00d08a: */ + RTUNI_ALPHA, /* U+00d08b: */ + RTUNI_ALPHA, /* U+00d08c: */ + RTUNI_ALPHA, /* U+00d08d: */ + RTUNI_ALPHA, /* U+00d08e: */ + RTUNI_ALPHA, /* U+00d08f: */ + RTUNI_ALPHA, /* U+00d090: */ + RTUNI_ALPHA, /* U+00d091: */ + RTUNI_ALPHA, /* U+00d092: */ + RTUNI_ALPHA, /* U+00d093: */ + RTUNI_ALPHA, /* U+00d094: */ + RTUNI_ALPHA, /* U+00d095: */ + RTUNI_ALPHA, /* U+00d096: */ + RTUNI_ALPHA, /* U+00d097: */ + RTUNI_ALPHA, /* U+00d098: */ + RTUNI_ALPHA, /* U+00d099: */ + RTUNI_ALPHA, /* U+00d09a: */ + RTUNI_ALPHA, /* U+00d09b: */ + RTUNI_ALPHA, /* U+00d09c: */ + RTUNI_ALPHA, /* U+00d09d: */ + RTUNI_ALPHA, /* U+00d09e: */ + RTUNI_ALPHA, /* U+00d09f: */ + RTUNI_ALPHA, /* U+00d0a0: */ + RTUNI_ALPHA, /* U+00d0a1: */ + RTUNI_ALPHA, /* U+00d0a2: */ + RTUNI_ALPHA, /* U+00d0a3: */ + RTUNI_ALPHA, /* U+00d0a4: */ + RTUNI_ALPHA, /* U+00d0a5: */ + RTUNI_ALPHA, /* U+00d0a6: */ + RTUNI_ALPHA, /* U+00d0a7: */ + RTUNI_ALPHA, /* U+00d0a8: */ + RTUNI_ALPHA, /* U+00d0a9: */ + RTUNI_ALPHA, /* U+00d0aa: */ + RTUNI_ALPHA, /* U+00d0ab: */ + RTUNI_ALPHA, /* U+00d0ac: */ + RTUNI_ALPHA, /* U+00d0ad: */ + RTUNI_ALPHA, /* U+00d0ae: */ + RTUNI_ALPHA, /* U+00d0af: */ + RTUNI_ALPHA, /* U+00d0b0: */ + RTUNI_ALPHA, /* U+00d0b1: */ + RTUNI_ALPHA, /* U+00d0b2: */ + RTUNI_ALPHA, /* U+00d0b3: */ + RTUNI_ALPHA, /* U+00d0b4: */ + RTUNI_ALPHA, /* U+00d0b5: */ + RTUNI_ALPHA, /* U+00d0b6: */ + RTUNI_ALPHA, /* U+00d0b7: */ + RTUNI_ALPHA, /* U+00d0b8: */ + RTUNI_ALPHA, /* U+00d0b9: */ + RTUNI_ALPHA, /* U+00d0ba: */ + RTUNI_ALPHA, /* U+00d0bb: */ + RTUNI_ALPHA, /* U+00d0bc: */ + RTUNI_ALPHA, /* U+00d0bd: */ + RTUNI_ALPHA, /* U+00d0be: */ + RTUNI_ALPHA, /* U+00d0bf: */ + RTUNI_ALPHA, /* U+00d0c0: */ + RTUNI_ALPHA, /* U+00d0c1: */ + RTUNI_ALPHA, /* U+00d0c2: */ + RTUNI_ALPHA, /* U+00d0c3: */ + RTUNI_ALPHA, /* U+00d0c4: */ + RTUNI_ALPHA, /* U+00d0c5: */ + RTUNI_ALPHA, /* U+00d0c6: */ + RTUNI_ALPHA, /* U+00d0c7: */ + RTUNI_ALPHA, /* U+00d0c8: */ + RTUNI_ALPHA, /* U+00d0c9: */ + RTUNI_ALPHA, /* U+00d0ca: */ + RTUNI_ALPHA, /* U+00d0cb: */ + RTUNI_ALPHA, /* U+00d0cc: */ + RTUNI_ALPHA, /* U+00d0cd: */ + RTUNI_ALPHA, /* U+00d0ce: */ + RTUNI_ALPHA, /* U+00d0cf: */ + RTUNI_ALPHA, /* U+00d0d0: */ + RTUNI_ALPHA, /* U+00d0d1: */ + RTUNI_ALPHA, /* U+00d0d2: */ + RTUNI_ALPHA, /* U+00d0d3: */ + RTUNI_ALPHA, /* U+00d0d4: */ + RTUNI_ALPHA, /* U+00d0d5: */ + RTUNI_ALPHA, /* U+00d0d6: */ + RTUNI_ALPHA, /* U+00d0d7: */ + RTUNI_ALPHA, /* U+00d0d8: */ + RTUNI_ALPHA, /* U+00d0d9: */ + RTUNI_ALPHA, /* U+00d0da: */ + RTUNI_ALPHA, /* U+00d0db: */ + RTUNI_ALPHA, /* U+00d0dc: */ + RTUNI_ALPHA, /* U+00d0dd: */ + RTUNI_ALPHA, /* U+00d0de: */ + RTUNI_ALPHA, /* U+00d0df: */ + RTUNI_ALPHA, /* U+00d0e0: */ + RTUNI_ALPHA, /* U+00d0e1: */ + RTUNI_ALPHA, /* U+00d0e2: */ + RTUNI_ALPHA, /* U+00d0e3: */ + RTUNI_ALPHA, /* U+00d0e4: */ + RTUNI_ALPHA, /* U+00d0e5: */ + RTUNI_ALPHA, /* U+00d0e6: */ + RTUNI_ALPHA, /* U+00d0e7: */ + RTUNI_ALPHA, /* U+00d0e8: */ + RTUNI_ALPHA, /* U+00d0e9: */ + RTUNI_ALPHA, /* U+00d0ea: */ + RTUNI_ALPHA, /* U+00d0eb: */ + RTUNI_ALPHA, /* U+00d0ec: */ + RTUNI_ALPHA, /* U+00d0ed: */ + RTUNI_ALPHA, /* U+00d0ee: */ + RTUNI_ALPHA, /* U+00d0ef: */ + RTUNI_ALPHA, /* U+00d0f0: */ + RTUNI_ALPHA, /* U+00d0f1: */ + RTUNI_ALPHA, /* U+00d0f2: */ + RTUNI_ALPHA, /* U+00d0f3: */ + RTUNI_ALPHA, /* U+00d0f4: */ + RTUNI_ALPHA, /* U+00d0f5: */ + RTUNI_ALPHA, /* U+00d0f6: */ + RTUNI_ALPHA, /* U+00d0f7: */ + RTUNI_ALPHA, /* U+00d0f8: */ + RTUNI_ALPHA, /* U+00d0f9: */ + RTUNI_ALPHA, /* U+00d0fa: */ + RTUNI_ALPHA, /* U+00d0fb: */ + RTUNI_ALPHA, /* U+00d0fc: */ + RTUNI_ALPHA, /* U+00d0fd: */ + RTUNI_ALPHA, /* U+00d0fe: */ + RTUNI_ALPHA, /* U+00d0ff: */ + RTUNI_ALPHA, /* U+00d100: */ + RTUNI_ALPHA, /* U+00d101: */ + RTUNI_ALPHA, /* U+00d102: */ + RTUNI_ALPHA, /* U+00d103: */ + RTUNI_ALPHA, /* U+00d104: */ + RTUNI_ALPHA, /* U+00d105: */ + RTUNI_ALPHA, /* U+00d106: */ + RTUNI_ALPHA, /* U+00d107: */ + RTUNI_ALPHA, /* U+00d108: */ + RTUNI_ALPHA, /* U+00d109: */ + RTUNI_ALPHA, /* U+00d10a: */ + RTUNI_ALPHA, /* U+00d10b: */ + RTUNI_ALPHA, /* U+00d10c: */ + RTUNI_ALPHA, /* U+00d10d: */ + RTUNI_ALPHA, /* U+00d10e: */ + RTUNI_ALPHA, /* U+00d10f: */ + RTUNI_ALPHA, /* U+00d110: */ + RTUNI_ALPHA, /* U+00d111: */ + RTUNI_ALPHA, /* U+00d112: */ + RTUNI_ALPHA, /* U+00d113: */ + RTUNI_ALPHA, /* U+00d114: */ + RTUNI_ALPHA, /* U+00d115: */ + RTUNI_ALPHA, /* U+00d116: */ + RTUNI_ALPHA, /* U+00d117: */ + RTUNI_ALPHA, /* U+00d118: */ + RTUNI_ALPHA, /* U+00d119: */ + RTUNI_ALPHA, /* U+00d11a: */ + RTUNI_ALPHA, /* U+00d11b: */ + RTUNI_ALPHA, /* U+00d11c: */ + RTUNI_ALPHA, /* U+00d11d: */ + RTUNI_ALPHA, /* U+00d11e: */ + RTUNI_ALPHA, /* U+00d11f: */ + RTUNI_ALPHA, /* U+00d120: */ + RTUNI_ALPHA, /* U+00d121: */ + RTUNI_ALPHA, /* U+00d122: */ + RTUNI_ALPHA, /* U+00d123: */ + RTUNI_ALPHA, /* U+00d124: */ + RTUNI_ALPHA, /* U+00d125: */ + RTUNI_ALPHA, /* U+00d126: */ + RTUNI_ALPHA, /* U+00d127: */ + RTUNI_ALPHA, /* U+00d128: */ + RTUNI_ALPHA, /* U+00d129: */ + RTUNI_ALPHA, /* U+00d12a: */ + RTUNI_ALPHA, /* U+00d12b: */ + RTUNI_ALPHA, /* U+00d12c: */ + RTUNI_ALPHA, /* U+00d12d: */ + RTUNI_ALPHA, /* U+00d12e: */ + RTUNI_ALPHA, /* U+00d12f: */ + RTUNI_ALPHA, /* U+00d130: */ + RTUNI_ALPHA, /* U+00d131: */ + RTUNI_ALPHA, /* U+00d132: */ + RTUNI_ALPHA, /* U+00d133: */ + RTUNI_ALPHA, /* U+00d134: */ + RTUNI_ALPHA, /* U+00d135: */ + RTUNI_ALPHA, /* U+00d136: */ + RTUNI_ALPHA, /* U+00d137: */ + RTUNI_ALPHA, /* U+00d138: */ + RTUNI_ALPHA, /* U+00d139: */ + RTUNI_ALPHA, /* U+00d13a: */ + RTUNI_ALPHA, /* U+00d13b: */ + RTUNI_ALPHA, /* U+00d13c: */ + RTUNI_ALPHA, /* U+00d13d: */ + RTUNI_ALPHA, /* U+00d13e: */ + RTUNI_ALPHA, /* U+00d13f: */ + RTUNI_ALPHA, /* U+00d140: */ + RTUNI_ALPHA, /* U+00d141: */ + RTUNI_ALPHA, /* U+00d142: */ + RTUNI_ALPHA, /* U+00d143: */ + RTUNI_ALPHA, /* U+00d144: */ + RTUNI_ALPHA, /* U+00d145: */ + RTUNI_ALPHA, /* U+00d146: */ + RTUNI_ALPHA, /* U+00d147: */ + RTUNI_ALPHA, /* U+00d148: */ + RTUNI_ALPHA, /* U+00d149: */ + RTUNI_ALPHA, /* U+00d14a: */ + RTUNI_ALPHA, /* U+00d14b: */ + RTUNI_ALPHA, /* U+00d14c: */ + RTUNI_ALPHA, /* U+00d14d: */ + RTUNI_ALPHA, /* U+00d14e: */ + RTUNI_ALPHA, /* U+00d14f: */ + RTUNI_ALPHA, /* U+00d150: */ + RTUNI_ALPHA, /* U+00d151: */ + RTUNI_ALPHA, /* U+00d152: */ + RTUNI_ALPHA, /* U+00d153: */ + RTUNI_ALPHA, /* U+00d154: */ + RTUNI_ALPHA, /* U+00d155: */ + RTUNI_ALPHA, /* U+00d156: */ + RTUNI_ALPHA, /* U+00d157: */ + RTUNI_ALPHA, /* U+00d158: */ + RTUNI_ALPHA, /* U+00d159: */ + RTUNI_ALPHA, /* U+00d15a: */ + RTUNI_ALPHA, /* U+00d15b: */ + RTUNI_ALPHA, /* U+00d15c: */ + RTUNI_ALPHA, /* U+00d15d: */ + RTUNI_ALPHA, /* U+00d15e: */ + RTUNI_ALPHA, /* U+00d15f: */ + RTUNI_ALPHA, /* U+00d160: */ + RTUNI_ALPHA, /* U+00d161: */ + RTUNI_ALPHA, /* U+00d162: */ + RTUNI_ALPHA, /* U+00d163: */ + RTUNI_ALPHA, /* U+00d164: */ + RTUNI_ALPHA, /* U+00d165: */ + RTUNI_ALPHA, /* U+00d166: */ + RTUNI_ALPHA, /* U+00d167: */ + RTUNI_ALPHA, /* U+00d168: */ + RTUNI_ALPHA, /* U+00d169: */ + RTUNI_ALPHA, /* U+00d16a: */ + RTUNI_ALPHA, /* U+00d16b: */ + RTUNI_ALPHA, /* U+00d16c: */ + RTUNI_ALPHA, /* U+00d16d: */ + RTUNI_ALPHA, /* U+00d16e: */ + RTUNI_ALPHA, /* U+00d16f: */ + RTUNI_ALPHA, /* U+00d170: */ + RTUNI_ALPHA, /* U+00d171: */ + RTUNI_ALPHA, /* U+00d172: */ + RTUNI_ALPHA, /* U+00d173: */ + RTUNI_ALPHA, /* U+00d174: */ + RTUNI_ALPHA, /* U+00d175: */ + RTUNI_ALPHA, /* U+00d176: */ + RTUNI_ALPHA, /* U+00d177: */ + RTUNI_ALPHA, /* U+00d178: */ + RTUNI_ALPHA, /* U+00d179: */ + RTUNI_ALPHA, /* U+00d17a: */ + RTUNI_ALPHA, /* U+00d17b: */ + RTUNI_ALPHA, /* U+00d17c: */ + RTUNI_ALPHA, /* U+00d17d: */ + RTUNI_ALPHA, /* U+00d17e: */ + RTUNI_ALPHA, /* U+00d17f: */ + RTUNI_ALPHA, /* U+00d180: */ + RTUNI_ALPHA, /* U+00d181: */ + RTUNI_ALPHA, /* U+00d182: */ + RTUNI_ALPHA, /* U+00d183: */ + RTUNI_ALPHA, /* U+00d184: */ + RTUNI_ALPHA, /* U+00d185: */ + RTUNI_ALPHA, /* U+00d186: */ + RTUNI_ALPHA, /* U+00d187: */ + RTUNI_ALPHA, /* U+00d188: */ + RTUNI_ALPHA, /* U+00d189: */ + RTUNI_ALPHA, /* U+00d18a: */ + RTUNI_ALPHA, /* U+00d18b: */ + RTUNI_ALPHA, /* U+00d18c: */ + RTUNI_ALPHA, /* U+00d18d: */ + RTUNI_ALPHA, /* U+00d18e: */ + RTUNI_ALPHA, /* U+00d18f: */ + RTUNI_ALPHA, /* U+00d190: */ + RTUNI_ALPHA, /* U+00d191: */ + RTUNI_ALPHA, /* U+00d192: */ + RTUNI_ALPHA, /* U+00d193: */ + RTUNI_ALPHA, /* U+00d194: */ + RTUNI_ALPHA, /* U+00d195: */ + RTUNI_ALPHA, /* U+00d196: */ + RTUNI_ALPHA, /* U+00d197: */ + RTUNI_ALPHA, /* U+00d198: */ + RTUNI_ALPHA, /* U+00d199: */ + RTUNI_ALPHA, /* U+00d19a: */ + RTUNI_ALPHA, /* U+00d19b: */ + RTUNI_ALPHA, /* U+00d19c: */ + RTUNI_ALPHA, /* U+00d19d: */ + RTUNI_ALPHA, /* U+00d19e: */ + RTUNI_ALPHA, /* U+00d19f: */ + RTUNI_ALPHA, /* U+00d1a0: */ + RTUNI_ALPHA, /* U+00d1a1: */ + RTUNI_ALPHA, /* U+00d1a2: */ + RTUNI_ALPHA, /* U+00d1a3: */ + RTUNI_ALPHA, /* U+00d1a4: */ + RTUNI_ALPHA, /* U+00d1a5: */ + RTUNI_ALPHA, /* U+00d1a6: */ + RTUNI_ALPHA, /* U+00d1a7: */ + RTUNI_ALPHA, /* U+00d1a8: */ + RTUNI_ALPHA, /* U+00d1a9: */ + RTUNI_ALPHA, /* U+00d1aa: */ + RTUNI_ALPHA, /* U+00d1ab: */ + RTUNI_ALPHA, /* U+00d1ac: */ + RTUNI_ALPHA, /* U+00d1ad: */ + RTUNI_ALPHA, /* U+00d1ae: */ + RTUNI_ALPHA, /* U+00d1af: */ + RTUNI_ALPHA, /* U+00d1b0: */ + RTUNI_ALPHA, /* U+00d1b1: */ + RTUNI_ALPHA, /* U+00d1b2: */ + RTUNI_ALPHA, /* U+00d1b3: */ + RTUNI_ALPHA, /* U+00d1b4: */ + RTUNI_ALPHA, /* U+00d1b5: */ + RTUNI_ALPHA, /* U+00d1b6: */ + RTUNI_ALPHA, /* U+00d1b7: */ + RTUNI_ALPHA, /* U+00d1b8: */ + RTUNI_ALPHA, /* U+00d1b9: */ + RTUNI_ALPHA, /* U+00d1ba: */ + RTUNI_ALPHA, /* U+00d1bb: */ + RTUNI_ALPHA, /* U+00d1bc: */ + RTUNI_ALPHA, /* U+00d1bd: */ + RTUNI_ALPHA, /* U+00d1be: */ + RTUNI_ALPHA, /* U+00d1bf: */ + RTUNI_ALPHA, /* U+00d1c0: */ + RTUNI_ALPHA, /* U+00d1c1: */ + RTUNI_ALPHA, /* U+00d1c2: */ + RTUNI_ALPHA, /* U+00d1c3: */ + RTUNI_ALPHA, /* U+00d1c4: */ + RTUNI_ALPHA, /* U+00d1c5: */ + RTUNI_ALPHA, /* U+00d1c6: */ + RTUNI_ALPHA, /* U+00d1c7: */ + RTUNI_ALPHA, /* U+00d1c8: */ + RTUNI_ALPHA, /* U+00d1c9: */ + RTUNI_ALPHA, /* U+00d1ca: */ + RTUNI_ALPHA, /* U+00d1cb: */ + RTUNI_ALPHA, /* U+00d1cc: */ + RTUNI_ALPHA, /* U+00d1cd: */ + RTUNI_ALPHA, /* U+00d1ce: */ + RTUNI_ALPHA, /* U+00d1cf: */ + RTUNI_ALPHA, /* U+00d1d0: */ + RTUNI_ALPHA, /* U+00d1d1: */ + RTUNI_ALPHA, /* U+00d1d2: */ + RTUNI_ALPHA, /* U+00d1d3: */ + RTUNI_ALPHA, /* U+00d1d4: */ + RTUNI_ALPHA, /* U+00d1d5: */ + RTUNI_ALPHA, /* U+00d1d6: */ + RTUNI_ALPHA, /* U+00d1d7: */ + RTUNI_ALPHA, /* U+00d1d8: */ + RTUNI_ALPHA, /* U+00d1d9: */ + RTUNI_ALPHA, /* U+00d1da: */ + RTUNI_ALPHA, /* U+00d1db: */ + RTUNI_ALPHA, /* U+00d1dc: */ + RTUNI_ALPHA, /* U+00d1dd: */ + RTUNI_ALPHA, /* U+00d1de: */ + RTUNI_ALPHA, /* U+00d1df: */ + RTUNI_ALPHA, /* U+00d1e0: */ + RTUNI_ALPHA, /* U+00d1e1: */ + RTUNI_ALPHA, /* U+00d1e2: */ + RTUNI_ALPHA, /* U+00d1e3: */ + RTUNI_ALPHA, /* U+00d1e4: */ + RTUNI_ALPHA, /* U+00d1e5: */ + RTUNI_ALPHA, /* U+00d1e6: */ + RTUNI_ALPHA, /* U+00d1e7: */ + RTUNI_ALPHA, /* U+00d1e8: */ + RTUNI_ALPHA, /* U+00d1e9: */ + RTUNI_ALPHA, /* U+00d1ea: */ + RTUNI_ALPHA, /* U+00d1eb: */ + RTUNI_ALPHA, /* U+00d1ec: */ + RTUNI_ALPHA, /* U+00d1ed: */ + RTUNI_ALPHA, /* U+00d1ee: */ + RTUNI_ALPHA, /* U+00d1ef: */ + RTUNI_ALPHA, /* U+00d1f0: */ + RTUNI_ALPHA, /* U+00d1f1: */ + RTUNI_ALPHA, /* U+00d1f2: */ + RTUNI_ALPHA, /* U+00d1f3: */ + RTUNI_ALPHA, /* U+00d1f4: */ + RTUNI_ALPHA, /* U+00d1f5: */ + RTUNI_ALPHA, /* U+00d1f6: */ + RTUNI_ALPHA, /* U+00d1f7: */ + RTUNI_ALPHA, /* U+00d1f8: */ + RTUNI_ALPHA, /* U+00d1f9: */ + RTUNI_ALPHA, /* U+00d1fa: */ + RTUNI_ALPHA, /* U+00d1fb: */ + RTUNI_ALPHA, /* U+00d1fc: */ + RTUNI_ALPHA, /* U+00d1fd: */ + RTUNI_ALPHA, /* U+00d1fe: */ + RTUNI_ALPHA, /* U+00d1ff: */ + RTUNI_ALPHA, /* U+00d200: */ + RTUNI_ALPHA, /* U+00d201: */ + RTUNI_ALPHA, /* U+00d202: */ + RTUNI_ALPHA, /* U+00d203: */ + RTUNI_ALPHA, /* U+00d204: */ + RTUNI_ALPHA, /* U+00d205: */ + RTUNI_ALPHA, /* U+00d206: */ + RTUNI_ALPHA, /* U+00d207: */ + RTUNI_ALPHA, /* U+00d208: */ + RTUNI_ALPHA, /* U+00d209: */ + RTUNI_ALPHA, /* U+00d20a: */ + RTUNI_ALPHA, /* U+00d20b: */ + RTUNI_ALPHA, /* U+00d20c: */ + RTUNI_ALPHA, /* U+00d20d: */ + RTUNI_ALPHA, /* U+00d20e: */ + RTUNI_ALPHA, /* U+00d20f: */ + RTUNI_ALPHA, /* U+00d210: */ + RTUNI_ALPHA, /* U+00d211: */ + RTUNI_ALPHA, /* U+00d212: */ + RTUNI_ALPHA, /* U+00d213: */ + RTUNI_ALPHA, /* U+00d214: */ + RTUNI_ALPHA, /* U+00d215: */ + RTUNI_ALPHA, /* U+00d216: */ + RTUNI_ALPHA, /* U+00d217: */ + RTUNI_ALPHA, /* U+00d218: */ + RTUNI_ALPHA, /* U+00d219: */ + RTUNI_ALPHA, /* U+00d21a: */ + RTUNI_ALPHA, /* U+00d21b: */ + RTUNI_ALPHA, /* U+00d21c: */ + RTUNI_ALPHA, /* U+00d21d: */ + RTUNI_ALPHA, /* U+00d21e: */ + RTUNI_ALPHA, /* U+00d21f: */ + RTUNI_ALPHA, /* U+00d220: */ + RTUNI_ALPHA, /* U+00d221: */ + RTUNI_ALPHA, /* U+00d222: */ + RTUNI_ALPHA, /* U+00d223: */ + RTUNI_ALPHA, /* U+00d224: */ + RTUNI_ALPHA, /* U+00d225: */ + RTUNI_ALPHA, /* U+00d226: */ + RTUNI_ALPHA, /* U+00d227: */ + RTUNI_ALPHA, /* U+00d228: */ + RTUNI_ALPHA, /* U+00d229: */ + RTUNI_ALPHA, /* U+00d22a: */ + RTUNI_ALPHA, /* U+00d22b: */ + RTUNI_ALPHA, /* U+00d22c: */ + RTUNI_ALPHA, /* U+00d22d: */ + RTUNI_ALPHA, /* U+00d22e: */ + RTUNI_ALPHA, /* U+00d22f: */ + RTUNI_ALPHA, /* U+00d230: */ + RTUNI_ALPHA, /* U+00d231: */ + RTUNI_ALPHA, /* U+00d232: */ + RTUNI_ALPHA, /* U+00d233: */ + RTUNI_ALPHA, /* U+00d234: */ + RTUNI_ALPHA, /* U+00d235: */ + RTUNI_ALPHA, /* U+00d236: */ + RTUNI_ALPHA, /* U+00d237: */ + RTUNI_ALPHA, /* U+00d238: */ + RTUNI_ALPHA, /* U+00d239: */ + RTUNI_ALPHA, /* U+00d23a: */ + RTUNI_ALPHA, /* U+00d23b: */ + RTUNI_ALPHA, /* U+00d23c: */ + RTUNI_ALPHA, /* U+00d23d: */ + RTUNI_ALPHA, /* U+00d23e: */ + RTUNI_ALPHA, /* U+00d23f: */ + RTUNI_ALPHA, /* U+00d240: */ + RTUNI_ALPHA, /* U+00d241: */ + RTUNI_ALPHA, /* U+00d242: */ + RTUNI_ALPHA, /* U+00d243: */ + RTUNI_ALPHA, /* U+00d244: */ + RTUNI_ALPHA, /* U+00d245: */ + RTUNI_ALPHA, /* U+00d246: */ + RTUNI_ALPHA, /* U+00d247: */ + RTUNI_ALPHA, /* U+00d248: */ + RTUNI_ALPHA, /* U+00d249: */ + RTUNI_ALPHA, /* U+00d24a: */ + RTUNI_ALPHA, /* U+00d24b: */ + RTUNI_ALPHA, /* U+00d24c: */ + RTUNI_ALPHA, /* U+00d24d: */ + RTUNI_ALPHA, /* U+00d24e: */ + RTUNI_ALPHA, /* U+00d24f: */ + RTUNI_ALPHA, /* U+00d250: */ + RTUNI_ALPHA, /* U+00d251: */ + RTUNI_ALPHA, /* U+00d252: */ + RTUNI_ALPHA, /* U+00d253: */ + RTUNI_ALPHA, /* U+00d254: */ + RTUNI_ALPHA, /* U+00d255: */ + RTUNI_ALPHA, /* U+00d256: */ + RTUNI_ALPHA, /* U+00d257: */ + RTUNI_ALPHA, /* U+00d258: */ + RTUNI_ALPHA, /* U+00d259: */ + RTUNI_ALPHA, /* U+00d25a: */ + RTUNI_ALPHA, /* U+00d25b: */ + RTUNI_ALPHA, /* U+00d25c: */ + RTUNI_ALPHA, /* U+00d25d: */ + RTUNI_ALPHA, /* U+00d25e: */ + RTUNI_ALPHA, /* U+00d25f: */ + RTUNI_ALPHA, /* U+00d260: */ + RTUNI_ALPHA, /* U+00d261: */ + RTUNI_ALPHA, /* U+00d262: */ + RTUNI_ALPHA, /* U+00d263: */ + RTUNI_ALPHA, /* U+00d264: */ + RTUNI_ALPHA, /* U+00d265: */ + RTUNI_ALPHA, /* U+00d266: */ + RTUNI_ALPHA, /* U+00d267: */ + RTUNI_ALPHA, /* U+00d268: */ + RTUNI_ALPHA, /* U+00d269: */ + RTUNI_ALPHA, /* U+00d26a: */ + RTUNI_ALPHA, /* U+00d26b: */ + RTUNI_ALPHA, /* U+00d26c: */ + RTUNI_ALPHA, /* U+00d26d: */ + RTUNI_ALPHA, /* U+00d26e: */ + RTUNI_ALPHA, /* U+00d26f: */ + RTUNI_ALPHA, /* U+00d270: */ + RTUNI_ALPHA, /* U+00d271: */ + RTUNI_ALPHA, /* U+00d272: */ + RTUNI_ALPHA, /* U+00d273: */ + RTUNI_ALPHA, /* U+00d274: */ + RTUNI_ALPHA, /* U+00d275: */ + RTUNI_ALPHA, /* U+00d276: */ + RTUNI_ALPHA, /* U+00d277: */ + RTUNI_ALPHA, /* U+00d278: */ + RTUNI_ALPHA, /* U+00d279: */ + RTUNI_ALPHA, /* U+00d27a: */ + RTUNI_ALPHA, /* U+00d27b: */ + RTUNI_ALPHA, /* U+00d27c: */ + RTUNI_ALPHA, /* U+00d27d: */ + RTUNI_ALPHA, /* U+00d27e: */ + RTUNI_ALPHA, /* U+00d27f: */ + RTUNI_ALPHA, /* U+00d280: */ + RTUNI_ALPHA, /* U+00d281: */ + RTUNI_ALPHA, /* U+00d282: */ + RTUNI_ALPHA, /* U+00d283: */ + RTUNI_ALPHA, /* U+00d284: */ + RTUNI_ALPHA, /* U+00d285: */ + RTUNI_ALPHA, /* U+00d286: */ + RTUNI_ALPHA, /* U+00d287: */ + RTUNI_ALPHA, /* U+00d288: */ + RTUNI_ALPHA, /* U+00d289: */ + RTUNI_ALPHA, /* U+00d28a: */ + RTUNI_ALPHA, /* U+00d28b: */ + RTUNI_ALPHA, /* U+00d28c: */ + RTUNI_ALPHA, /* U+00d28d: */ + RTUNI_ALPHA, /* U+00d28e: */ + RTUNI_ALPHA, /* U+00d28f: */ + RTUNI_ALPHA, /* U+00d290: */ + RTUNI_ALPHA, /* U+00d291: */ + RTUNI_ALPHA, /* U+00d292: */ + RTUNI_ALPHA, /* U+00d293: */ + RTUNI_ALPHA, /* U+00d294: */ + RTUNI_ALPHA, /* U+00d295: */ + RTUNI_ALPHA, /* U+00d296: */ + RTUNI_ALPHA, /* U+00d297: */ + RTUNI_ALPHA, /* U+00d298: */ + RTUNI_ALPHA, /* U+00d299: */ + RTUNI_ALPHA, /* U+00d29a: */ + RTUNI_ALPHA, /* U+00d29b: */ + RTUNI_ALPHA, /* U+00d29c: */ + RTUNI_ALPHA, /* U+00d29d: */ + RTUNI_ALPHA, /* U+00d29e: */ + RTUNI_ALPHA, /* U+00d29f: */ + RTUNI_ALPHA, /* U+00d2a0: */ + RTUNI_ALPHA, /* U+00d2a1: */ + RTUNI_ALPHA, /* U+00d2a2: */ + RTUNI_ALPHA, /* U+00d2a3: */ + RTUNI_ALPHA, /* U+00d2a4: */ + RTUNI_ALPHA, /* U+00d2a5: */ + RTUNI_ALPHA, /* U+00d2a6: */ + RTUNI_ALPHA, /* U+00d2a7: */ + RTUNI_ALPHA, /* U+00d2a8: */ + RTUNI_ALPHA, /* U+00d2a9: */ + RTUNI_ALPHA, /* U+00d2aa: */ + RTUNI_ALPHA, /* U+00d2ab: */ + RTUNI_ALPHA, /* U+00d2ac: */ + RTUNI_ALPHA, /* U+00d2ad: */ + RTUNI_ALPHA, /* U+00d2ae: */ + RTUNI_ALPHA, /* U+00d2af: */ + RTUNI_ALPHA, /* U+00d2b0: */ + RTUNI_ALPHA, /* U+00d2b1: */ + RTUNI_ALPHA, /* U+00d2b2: */ + RTUNI_ALPHA, /* U+00d2b3: */ + RTUNI_ALPHA, /* U+00d2b4: */ + RTUNI_ALPHA, /* U+00d2b5: */ + RTUNI_ALPHA, /* U+00d2b6: */ + RTUNI_ALPHA, /* U+00d2b7: */ + RTUNI_ALPHA, /* U+00d2b8: */ + RTUNI_ALPHA, /* U+00d2b9: */ + RTUNI_ALPHA, /* U+00d2ba: */ + RTUNI_ALPHA, /* U+00d2bb: */ + RTUNI_ALPHA, /* U+00d2bc: */ + RTUNI_ALPHA, /* U+00d2bd: */ + RTUNI_ALPHA, /* U+00d2be: */ + RTUNI_ALPHA, /* U+00d2bf: */ + RTUNI_ALPHA, /* U+00d2c0: */ + RTUNI_ALPHA, /* U+00d2c1: */ + RTUNI_ALPHA, /* U+00d2c2: */ + RTUNI_ALPHA, /* U+00d2c3: */ + RTUNI_ALPHA, /* U+00d2c4: */ + RTUNI_ALPHA, /* U+00d2c5: */ + RTUNI_ALPHA, /* U+00d2c6: */ + RTUNI_ALPHA, /* U+00d2c7: */ + RTUNI_ALPHA, /* U+00d2c8: */ + RTUNI_ALPHA, /* U+00d2c9: */ + RTUNI_ALPHA, /* U+00d2ca: */ + RTUNI_ALPHA, /* U+00d2cb: */ + RTUNI_ALPHA, /* U+00d2cc: */ + RTUNI_ALPHA, /* U+00d2cd: */ + RTUNI_ALPHA, /* U+00d2ce: */ + RTUNI_ALPHA, /* U+00d2cf: */ + RTUNI_ALPHA, /* U+00d2d0: */ + RTUNI_ALPHA, /* U+00d2d1: */ + RTUNI_ALPHA, /* U+00d2d2: */ + RTUNI_ALPHA, /* U+00d2d3: */ + RTUNI_ALPHA, /* U+00d2d4: */ + RTUNI_ALPHA, /* U+00d2d5: */ + RTUNI_ALPHA, /* U+00d2d6: */ + RTUNI_ALPHA, /* U+00d2d7: */ + RTUNI_ALPHA, /* U+00d2d8: */ + RTUNI_ALPHA, /* U+00d2d9: */ + RTUNI_ALPHA, /* U+00d2da: */ + RTUNI_ALPHA, /* U+00d2db: */ + RTUNI_ALPHA, /* U+00d2dc: */ + RTUNI_ALPHA, /* U+00d2dd: */ + RTUNI_ALPHA, /* U+00d2de: */ + RTUNI_ALPHA, /* U+00d2df: */ + RTUNI_ALPHA, /* U+00d2e0: */ + RTUNI_ALPHA, /* U+00d2e1: */ + RTUNI_ALPHA, /* U+00d2e2: */ + RTUNI_ALPHA, /* U+00d2e3: */ + RTUNI_ALPHA, /* U+00d2e4: */ + RTUNI_ALPHA, /* U+00d2e5: */ + RTUNI_ALPHA, /* U+00d2e6: */ + RTUNI_ALPHA, /* U+00d2e7: */ + RTUNI_ALPHA, /* U+00d2e8: */ + RTUNI_ALPHA, /* U+00d2e9: */ + RTUNI_ALPHA, /* U+00d2ea: */ + RTUNI_ALPHA, /* U+00d2eb: */ + RTUNI_ALPHA, /* U+00d2ec: */ + RTUNI_ALPHA, /* U+00d2ed: */ + RTUNI_ALPHA, /* U+00d2ee: */ + RTUNI_ALPHA, /* U+00d2ef: */ + RTUNI_ALPHA, /* U+00d2f0: */ + RTUNI_ALPHA, /* U+00d2f1: */ + RTUNI_ALPHA, /* U+00d2f2: */ + RTUNI_ALPHA, /* U+00d2f3: */ + RTUNI_ALPHA, /* U+00d2f4: */ + RTUNI_ALPHA, /* U+00d2f5: */ + RTUNI_ALPHA, /* U+00d2f6: */ + RTUNI_ALPHA, /* U+00d2f7: */ + RTUNI_ALPHA, /* U+00d2f8: */ + RTUNI_ALPHA, /* U+00d2f9: */ + RTUNI_ALPHA, /* U+00d2fa: */ + RTUNI_ALPHA, /* U+00d2fb: */ + RTUNI_ALPHA, /* U+00d2fc: */ + RTUNI_ALPHA, /* U+00d2fd: */ + RTUNI_ALPHA, /* U+00d2fe: */ + RTUNI_ALPHA, /* U+00d2ff: */ + RTUNI_ALPHA, /* U+00d300: */ + RTUNI_ALPHA, /* U+00d301: */ + RTUNI_ALPHA, /* U+00d302: */ + RTUNI_ALPHA, /* U+00d303: */ + RTUNI_ALPHA, /* U+00d304: */ + RTUNI_ALPHA, /* U+00d305: */ + RTUNI_ALPHA, /* U+00d306: */ + RTUNI_ALPHA, /* U+00d307: */ + RTUNI_ALPHA, /* U+00d308: */ + RTUNI_ALPHA, /* U+00d309: */ + RTUNI_ALPHA, /* U+00d30a: */ + RTUNI_ALPHA, /* U+00d30b: */ + RTUNI_ALPHA, /* U+00d30c: */ + RTUNI_ALPHA, /* U+00d30d: */ + RTUNI_ALPHA, /* U+00d30e: */ + RTUNI_ALPHA, /* U+00d30f: */ + RTUNI_ALPHA, /* U+00d310: */ + RTUNI_ALPHA, /* U+00d311: */ + RTUNI_ALPHA, /* U+00d312: */ + RTUNI_ALPHA, /* U+00d313: */ + RTUNI_ALPHA, /* U+00d314: */ + RTUNI_ALPHA, /* U+00d315: */ + RTUNI_ALPHA, /* U+00d316: */ + RTUNI_ALPHA, /* U+00d317: */ + RTUNI_ALPHA, /* U+00d318: */ + RTUNI_ALPHA, /* U+00d319: */ + RTUNI_ALPHA, /* U+00d31a: */ + RTUNI_ALPHA, /* U+00d31b: */ + RTUNI_ALPHA, /* U+00d31c: */ + RTUNI_ALPHA, /* U+00d31d: */ + RTUNI_ALPHA, /* U+00d31e: */ + RTUNI_ALPHA, /* U+00d31f: */ + RTUNI_ALPHA, /* U+00d320: */ + RTUNI_ALPHA, /* U+00d321: */ + RTUNI_ALPHA, /* U+00d322: */ + RTUNI_ALPHA, /* U+00d323: */ + RTUNI_ALPHA, /* U+00d324: */ + RTUNI_ALPHA, /* U+00d325: */ + RTUNI_ALPHA, /* U+00d326: */ + RTUNI_ALPHA, /* U+00d327: */ + RTUNI_ALPHA, /* U+00d328: */ + RTUNI_ALPHA, /* U+00d329: */ + RTUNI_ALPHA, /* U+00d32a: */ + RTUNI_ALPHA, /* U+00d32b: */ + RTUNI_ALPHA, /* U+00d32c: */ + RTUNI_ALPHA, /* U+00d32d: */ + RTUNI_ALPHA, /* U+00d32e: */ + RTUNI_ALPHA, /* U+00d32f: */ + RTUNI_ALPHA, /* U+00d330: */ + RTUNI_ALPHA, /* U+00d331: */ + RTUNI_ALPHA, /* U+00d332: */ + RTUNI_ALPHA, /* U+00d333: */ + RTUNI_ALPHA, /* U+00d334: */ + RTUNI_ALPHA, /* U+00d335: */ + RTUNI_ALPHA, /* U+00d336: */ + RTUNI_ALPHA, /* U+00d337: */ + RTUNI_ALPHA, /* U+00d338: */ + RTUNI_ALPHA, /* U+00d339: */ + RTUNI_ALPHA, /* U+00d33a: */ + RTUNI_ALPHA, /* U+00d33b: */ + RTUNI_ALPHA, /* U+00d33c: */ + RTUNI_ALPHA, /* U+00d33d: */ + RTUNI_ALPHA, /* U+00d33e: */ + RTUNI_ALPHA, /* U+00d33f: */ + RTUNI_ALPHA, /* U+00d340: */ + RTUNI_ALPHA, /* U+00d341: */ + RTUNI_ALPHA, /* U+00d342: */ + RTUNI_ALPHA, /* U+00d343: */ + RTUNI_ALPHA, /* U+00d344: */ + RTUNI_ALPHA, /* U+00d345: */ + RTUNI_ALPHA, /* U+00d346: */ + RTUNI_ALPHA, /* U+00d347: */ + RTUNI_ALPHA, /* U+00d348: */ + RTUNI_ALPHA, /* U+00d349: */ + RTUNI_ALPHA, /* U+00d34a: */ + RTUNI_ALPHA, /* U+00d34b: */ + RTUNI_ALPHA, /* U+00d34c: */ + RTUNI_ALPHA, /* U+00d34d: */ + RTUNI_ALPHA, /* U+00d34e: */ + RTUNI_ALPHA, /* U+00d34f: */ + RTUNI_ALPHA, /* U+00d350: */ + RTUNI_ALPHA, /* U+00d351: */ + RTUNI_ALPHA, /* U+00d352: */ + RTUNI_ALPHA, /* U+00d353: */ + RTUNI_ALPHA, /* U+00d354: */ + RTUNI_ALPHA, /* U+00d355: */ + RTUNI_ALPHA, /* U+00d356: */ + RTUNI_ALPHA, /* U+00d357: */ + RTUNI_ALPHA, /* U+00d358: */ + RTUNI_ALPHA, /* U+00d359: */ + RTUNI_ALPHA, /* U+00d35a: */ + RTUNI_ALPHA, /* U+00d35b: */ + RTUNI_ALPHA, /* U+00d35c: */ + RTUNI_ALPHA, /* U+00d35d: */ + RTUNI_ALPHA, /* U+00d35e: */ + RTUNI_ALPHA, /* U+00d35f: */ + RTUNI_ALPHA, /* U+00d360: */ + RTUNI_ALPHA, /* U+00d361: */ + RTUNI_ALPHA, /* U+00d362: */ + RTUNI_ALPHA, /* U+00d363: */ + RTUNI_ALPHA, /* U+00d364: */ + RTUNI_ALPHA, /* U+00d365: */ + RTUNI_ALPHA, /* U+00d366: */ + RTUNI_ALPHA, /* U+00d367: */ + RTUNI_ALPHA, /* U+00d368: */ + RTUNI_ALPHA, /* U+00d369: */ + RTUNI_ALPHA, /* U+00d36a: */ + RTUNI_ALPHA, /* U+00d36b: */ + RTUNI_ALPHA, /* U+00d36c: */ + RTUNI_ALPHA, /* U+00d36d: */ + RTUNI_ALPHA, /* U+00d36e: */ + RTUNI_ALPHA, /* U+00d36f: */ + RTUNI_ALPHA, /* U+00d370: */ + RTUNI_ALPHA, /* U+00d371: */ + RTUNI_ALPHA, /* U+00d372: */ + RTUNI_ALPHA, /* U+00d373: */ + RTUNI_ALPHA, /* U+00d374: */ + RTUNI_ALPHA, /* U+00d375: */ + RTUNI_ALPHA, /* U+00d376: */ + RTUNI_ALPHA, /* U+00d377: */ + RTUNI_ALPHA, /* U+00d378: */ + RTUNI_ALPHA, /* U+00d379: */ + RTUNI_ALPHA, /* U+00d37a: */ + RTUNI_ALPHA, /* U+00d37b: */ + RTUNI_ALPHA, /* U+00d37c: */ + RTUNI_ALPHA, /* U+00d37d: */ + RTUNI_ALPHA, /* U+00d37e: */ + RTUNI_ALPHA, /* U+00d37f: */ + RTUNI_ALPHA, /* U+00d380: */ + RTUNI_ALPHA, /* U+00d381: */ + RTUNI_ALPHA, /* U+00d382: */ + RTUNI_ALPHA, /* U+00d383: */ + RTUNI_ALPHA, /* U+00d384: */ + RTUNI_ALPHA, /* U+00d385: */ + RTUNI_ALPHA, /* U+00d386: */ + RTUNI_ALPHA, /* U+00d387: */ + RTUNI_ALPHA, /* U+00d388: */ + RTUNI_ALPHA, /* U+00d389: */ + RTUNI_ALPHA, /* U+00d38a: */ + RTUNI_ALPHA, /* U+00d38b: */ + RTUNI_ALPHA, /* U+00d38c: */ + RTUNI_ALPHA, /* U+00d38d: */ + RTUNI_ALPHA, /* U+00d38e: */ + RTUNI_ALPHA, /* U+00d38f: */ + RTUNI_ALPHA, /* U+00d390: */ + RTUNI_ALPHA, /* U+00d391: */ + RTUNI_ALPHA, /* U+00d392: */ + RTUNI_ALPHA, /* U+00d393: */ + RTUNI_ALPHA, /* U+00d394: */ + RTUNI_ALPHA, /* U+00d395: */ + RTUNI_ALPHA, /* U+00d396: */ + RTUNI_ALPHA, /* U+00d397: */ + RTUNI_ALPHA, /* U+00d398: */ + RTUNI_ALPHA, /* U+00d399: */ + RTUNI_ALPHA, /* U+00d39a: */ + RTUNI_ALPHA, /* U+00d39b: */ + RTUNI_ALPHA, /* U+00d39c: */ + RTUNI_ALPHA, /* U+00d39d: */ + RTUNI_ALPHA, /* U+00d39e: */ + RTUNI_ALPHA, /* U+00d39f: */ + RTUNI_ALPHA, /* U+00d3a0: */ + RTUNI_ALPHA, /* U+00d3a1: */ + RTUNI_ALPHA, /* U+00d3a2: */ + RTUNI_ALPHA, /* U+00d3a3: */ + RTUNI_ALPHA, /* U+00d3a4: */ + RTUNI_ALPHA, /* U+00d3a5: */ + RTUNI_ALPHA, /* U+00d3a6: */ + RTUNI_ALPHA, /* U+00d3a7: */ + RTUNI_ALPHA, /* U+00d3a8: */ + RTUNI_ALPHA, /* U+00d3a9: */ + RTUNI_ALPHA, /* U+00d3aa: */ + RTUNI_ALPHA, /* U+00d3ab: */ + RTUNI_ALPHA, /* U+00d3ac: */ + RTUNI_ALPHA, /* U+00d3ad: */ + RTUNI_ALPHA, /* U+00d3ae: */ + RTUNI_ALPHA, /* U+00d3af: */ + RTUNI_ALPHA, /* U+00d3b0: */ + RTUNI_ALPHA, /* U+00d3b1: */ + RTUNI_ALPHA, /* U+00d3b2: */ + RTUNI_ALPHA, /* U+00d3b3: */ + RTUNI_ALPHA, /* U+00d3b4: */ + RTUNI_ALPHA, /* U+00d3b5: */ + RTUNI_ALPHA, /* U+00d3b6: */ + RTUNI_ALPHA, /* U+00d3b7: */ + RTUNI_ALPHA, /* U+00d3b8: */ + RTUNI_ALPHA, /* U+00d3b9: */ + RTUNI_ALPHA, /* U+00d3ba: */ + RTUNI_ALPHA, /* U+00d3bb: */ + RTUNI_ALPHA, /* U+00d3bc: */ + RTUNI_ALPHA, /* U+00d3bd: */ + RTUNI_ALPHA, /* U+00d3be: */ + RTUNI_ALPHA, /* U+00d3bf: */ + RTUNI_ALPHA, /* U+00d3c0: */ + RTUNI_ALPHA, /* U+00d3c1: */ + RTUNI_ALPHA, /* U+00d3c2: */ + RTUNI_ALPHA, /* U+00d3c3: */ + RTUNI_ALPHA, /* U+00d3c4: */ + RTUNI_ALPHA, /* U+00d3c5: */ + RTUNI_ALPHA, /* U+00d3c6: */ + RTUNI_ALPHA, /* U+00d3c7: */ + RTUNI_ALPHA, /* U+00d3c8: */ + RTUNI_ALPHA, /* U+00d3c9: */ + RTUNI_ALPHA, /* U+00d3ca: */ + RTUNI_ALPHA, /* U+00d3cb: */ + RTUNI_ALPHA, /* U+00d3cc: */ + RTUNI_ALPHA, /* U+00d3cd: */ + RTUNI_ALPHA, /* U+00d3ce: */ + RTUNI_ALPHA, /* U+00d3cf: */ + RTUNI_ALPHA, /* U+00d3d0: */ + RTUNI_ALPHA, /* U+00d3d1: */ + RTUNI_ALPHA, /* U+00d3d2: */ + RTUNI_ALPHA, /* U+00d3d3: */ + RTUNI_ALPHA, /* U+00d3d4: */ + RTUNI_ALPHA, /* U+00d3d5: */ + RTUNI_ALPHA, /* U+00d3d6: */ + RTUNI_ALPHA, /* U+00d3d7: */ + RTUNI_ALPHA, /* U+00d3d8: */ + RTUNI_ALPHA, /* U+00d3d9: */ + RTUNI_ALPHA, /* U+00d3da: */ + RTUNI_ALPHA, /* U+00d3db: */ + RTUNI_ALPHA, /* U+00d3dc: */ + RTUNI_ALPHA, /* U+00d3dd: */ + RTUNI_ALPHA, /* U+00d3de: */ + RTUNI_ALPHA, /* U+00d3df: */ + RTUNI_ALPHA, /* U+00d3e0: */ + RTUNI_ALPHA, /* U+00d3e1: */ + RTUNI_ALPHA, /* U+00d3e2: */ + RTUNI_ALPHA, /* U+00d3e3: */ + RTUNI_ALPHA, /* U+00d3e4: */ + RTUNI_ALPHA, /* U+00d3e5: */ + RTUNI_ALPHA, /* U+00d3e6: */ + RTUNI_ALPHA, /* U+00d3e7: */ + RTUNI_ALPHA, /* U+00d3e8: */ + RTUNI_ALPHA, /* U+00d3e9: */ + RTUNI_ALPHA, /* U+00d3ea: */ + RTUNI_ALPHA, /* U+00d3eb: */ + RTUNI_ALPHA, /* U+00d3ec: */ + RTUNI_ALPHA, /* U+00d3ed: */ + RTUNI_ALPHA, /* U+00d3ee: */ + RTUNI_ALPHA, /* U+00d3ef: */ + RTUNI_ALPHA, /* U+00d3f0: */ + RTUNI_ALPHA, /* U+00d3f1: */ + RTUNI_ALPHA, /* U+00d3f2: */ + RTUNI_ALPHA, /* U+00d3f3: */ + RTUNI_ALPHA, /* U+00d3f4: */ + RTUNI_ALPHA, /* U+00d3f5: */ + RTUNI_ALPHA, /* U+00d3f6: */ + RTUNI_ALPHA, /* U+00d3f7: */ + RTUNI_ALPHA, /* U+00d3f8: */ + RTUNI_ALPHA, /* U+00d3f9: */ + RTUNI_ALPHA, /* U+00d3fa: */ + RTUNI_ALPHA, /* U+00d3fb: */ + RTUNI_ALPHA, /* U+00d3fc: */ + RTUNI_ALPHA, /* U+00d3fd: */ + RTUNI_ALPHA, /* U+00d3fe: */ + RTUNI_ALPHA, /* U+00d3ff: */ + RTUNI_ALPHA, /* U+00d400: */ + RTUNI_ALPHA, /* U+00d401: */ + RTUNI_ALPHA, /* U+00d402: */ + RTUNI_ALPHA, /* U+00d403: */ + RTUNI_ALPHA, /* U+00d404: */ + RTUNI_ALPHA, /* U+00d405: */ + RTUNI_ALPHA, /* U+00d406: */ + RTUNI_ALPHA, /* U+00d407: */ + RTUNI_ALPHA, /* U+00d408: */ + RTUNI_ALPHA, /* U+00d409: */ + RTUNI_ALPHA, /* U+00d40a: */ + RTUNI_ALPHA, /* U+00d40b: */ + RTUNI_ALPHA, /* U+00d40c: */ + RTUNI_ALPHA, /* U+00d40d: */ + RTUNI_ALPHA, /* U+00d40e: */ + RTUNI_ALPHA, /* U+00d40f: */ + RTUNI_ALPHA, /* U+00d410: */ + RTUNI_ALPHA, /* U+00d411: */ + RTUNI_ALPHA, /* U+00d412: */ + RTUNI_ALPHA, /* U+00d413: */ + RTUNI_ALPHA, /* U+00d414: */ + RTUNI_ALPHA, /* U+00d415: */ + RTUNI_ALPHA, /* U+00d416: */ + RTUNI_ALPHA, /* U+00d417: */ + RTUNI_ALPHA, /* U+00d418: */ + RTUNI_ALPHA, /* U+00d419: */ + RTUNI_ALPHA, /* U+00d41a: */ + RTUNI_ALPHA, /* U+00d41b: */ + RTUNI_ALPHA, /* U+00d41c: */ + RTUNI_ALPHA, /* U+00d41d: */ + RTUNI_ALPHA, /* U+00d41e: */ + RTUNI_ALPHA, /* U+00d41f: */ + RTUNI_ALPHA, /* U+00d420: */ + RTUNI_ALPHA, /* U+00d421: */ + RTUNI_ALPHA, /* U+00d422: */ + RTUNI_ALPHA, /* U+00d423: */ + RTUNI_ALPHA, /* U+00d424: */ + RTUNI_ALPHA, /* U+00d425: */ + RTUNI_ALPHA, /* U+00d426: */ + RTUNI_ALPHA, /* U+00d427: */ + RTUNI_ALPHA, /* U+00d428: */ + RTUNI_ALPHA, /* U+00d429: */ + RTUNI_ALPHA, /* U+00d42a: */ + RTUNI_ALPHA, /* U+00d42b: */ + RTUNI_ALPHA, /* U+00d42c: */ + RTUNI_ALPHA, /* U+00d42d: */ + RTUNI_ALPHA, /* U+00d42e: */ + RTUNI_ALPHA, /* U+00d42f: */ + RTUNI_ALPHA, /* U+00d430: */ + RTUNI_ALPHA, /* U+00d431: */ + RTUNI_ALPHA, /* U+00d432: */ + RTUNI_ALPHA, /* U+00d433: */ + RTUNI_ALPHA, /* U+00d434: */ + RTUNI_ALPHA, /* U+00d435: */ + RTUNI_ALPHA, /* U+00d436: */ + RTUNI_ALPHA, /* U+00d437: */ + RTUNI_ALPHA, /* U+00d438: */ + RTUNI_ALPHA, /* U+00d439: */ + RTUNI_ALPHA, /* U+00d43a: */ + RTUNI_ALPHA, /* U+00d43b: */ + RTUNI_ALPHA, /* U+00d43c: */ + RTUNI_ALPHA, /* U+00d43d: */ + RTUNI_ALPHA, /* U+00d43e: */ + RTUNI_ALPHA, /* U+00d43f: */ + RTUNI_ALPHA, /* U+00d440: */ + RTUNI_ALPHA, /* U+00d441: */ + RTUNI_ALPHA, /* U+00d442: */ + RTUNI_ALPHA, /* U+00d443: */ + RTUNI_ALPHA, /* U+00d444: */ + RTUNI_ALPHA, /* U+00d445: */ + RTUNI_ALPHA, /* U+00d446: */ + RTUNI_ALPHA, /* U+00d447: */ + RTUNI_ALPHA, /* U+00d448: */ + RTUNI_ALPHA, /* U+00d449: */ + RTUNI_ALPHA, /* U+00d44a: */ + RTUNI_ALPHA, /* U+00d44b: */ + RTUNI_ALPHA, /* U+00d44c: */ + RTUNI_ALPHA, /* U+00d44d: */ + RTUNI_ALPHA, /* U+00d44e: */ + RTUNI_ALPHA, /* U+00d44f: */ + RTUNI_ALPHA, /* U+00d450: */ + RTUNI_ALPHA, /* U+00d451: */ + RTUNI_ALPHA, /* U+00d452: */ + RTUNI_ALPHA, /* U+00d453: */ + RTUNI_ALPHA, /* U+00d454: */ + RTUNI_ALPHA, /* U+00d455: */ + RTUNI_ALPHA, /* U+00d456: */ + RTUNI_ALPHA, /* U+00d457: */ + RTUNI_ALPHA, /* U+00d458: */ + RTUNI_ALPHA, /* U+00d459: */ + RTUNI_ALPHA, /* U+00d45a: */ + RTUNI_ALPHA, /* U+00d45b: */ + RTUNI_ALPHA, /* U+00d45c: */ + RTUNI_ALPHA, /* U+00d45d: */ + RTUNI_ALPHA, /* U+00d45e: */ + RTUNI_ALPHA, /* U+00d45f: */ + RTUNI_ALPHA, /* U+00d460: */ + RTUNI_ALPHA, /* U+00d461: */ + RTUNI_ALPHA, /* U+00d462: */ + RTUNI_ALPHA, /* U+00d463: */ + RTUNI_ALPHA, /* U+00d464: */ + RTUNI_ALPHA, /* U+00d465: */ + RTUNI_ALPHA, /* U+00d466: */ + RTUNI_ALPHA, /* U+00d467: */ + RTUNI_ALPHA, /* U+00d468: */ + RTUNI_ALPHA, /* U+00d469: */ + RTUNI_ALPHA, /* U+00d46a: */ + RTUNI_ALPHA, /* U+00d46b: */ + RTUNI_ALPHA, /* U+00d46c: */ + RTUNI_ALPHA, /* U+00d46d: */ + RTUNI_ALPHA, /* U+00d46e: */ + RTUNI_ALPHA, /* U+00d46f: */ + RTUNI_ALPHA, /* U+00d470: */ + RTUNI_ALPHA, /* U+00d471: */ + RTUNI_ALPHA, /* U+00d472: */ + RTUNI_ALPHA, /* U+00d473: */ + RTUNI_ALPHA, /* U+00d474: */ + RTUNI_ALPHA, /* U+00d475: */ + RTUNI_ALPHA, /* U+00d476: */ + RTUNI_ALPHA, /* U+00d477: */ + RTUNI_ALPHA, /* U+00d478: */ + RTUNI_ALPHA, /* U+00d479: */ + RTUNI_ALPHA, /* U+00d47a: */ + RTUNI_ALPHA, /* U+00d47b: */ + RTUNI_ALPHA, /* U+00d47c: */ + RTUNI_ALPHA, /* U+00d47d: */ + RTUNI_ALPHA, /* U+00d47e: */ + RTUNI_ALPHA, /* U+00d47f: */ + RTUNI_ALPHA, /* U+00d480: */ + RTUNI_ALPHA, /* U+00d481: */ + RTUNI_ALPHA, /* U+00d482: */ + RTUNI_ALPHA, /* U+00d483: */ + RTUNI_ALPHA, /* U+00d484: */ + RTUNI_ALPHA, /* U+00d485: */ + RTUNI_ALPHA, /* U+00d486: */ + RTUNI_ALPHA, /* U+00d487: */ + RTUNI_ALPHA, /* U+00d488: */ + RTUNI_ALPHA, /* U+00d489: */ + RTUNI_ALPHA, /* U+00d48a: */ + RTUNI_ALPHA, /* U+00d48b: */ + RTUNI_ALPHA, /* U+00d48c: */ + RTUNI_ALPHA, /* U+00d48d: */ + RTUNI_ALPHA, /* U+00d48e: */ + RTUNI_ALPHA, /* U+00d48f: */ + RTUNI_ALPHA, /* U+00d490: */ + RTUNI_ALPHA, /* U+00d491: */ + RTUNI_ALPHA, /* U+00d492: */ + RTUNI_ALPHA, /* U+00d493: */ + RTUNI_ALPHA, /* U+00d494: */ + RTUNI_ALPHA, /* U+00d495: */ + RTUNI_ALPHA, /* U+00d496: */ + RTUNI_ALPHA, /* U+00d497: */ + RTUNI_ALPHA, /* U+00d498: */ + RTUNI_ALPHA, /* U+00d499: */ + RTUNI_ALPHA, /* U+00d49a: */ + RTUNI_ALPHA, /* U+00d49b: */ + RTUNI_ALPHA, /* U+00d49c: */ + RTUNI_ALPHA, /* U+00d49d: */ + RTUNI_ALPHA, /* U+00d49e: */ + RTUNI_ALPHA, /* U+00d49f: */ + RTUNI_ALPHA, /* U+00d4a0: */ + RTUNI_ALPHA, /* U+00d4a1: */ + RTUNI_ALPHA, /* U+00d4a2: */ + RTUNI_ALPHA, /* U+00d4a3: */ + RTUNI_ALPHA, /* U+00d4a4: */ + RTUNI_ALPHA, /* U+00d4a5: */ + RTUNI_ALPHA, /* U+00d4a6: */ + RTUNI_ALPHA, /* U+00d4a7: */ + RTUNI_ALPHA, /* U+00d4a8: */ + RTUNI_ALPHA, /* U+00d4a9: */ + RTUNI_ALPHA, /* U+00d4aa: */ + RTUNI_ALPHA, /* U+00d4ab: */ + RTUNI_ALPHA, /* U+00d4ac: */ + RTUNI_ALPHA, /* U+00d4ad: */ + RTUNI_ALPHA, /* U+00d4ae: */ + RTUNI_ALPHA, /* U+00d4af: */ + RTUNI_ALPHA, /* U+00d4b0: */ + RTUNI_ALPHA, /* U+00d4b1: */ + RTUNI_ALPHA, /* U+00d4b2: */ + RTUNI_ALPHA, /* U+00d4b3: */ + RTUNI_ALPHA, /* U+00d4b4: */ + RTUNI_ALPHA, /* U+00d4b5: */ + RTUNI_ALPHA, /* U+00d4b6: */ + RTUNI_ALPHA, /* U+00d4b7: */ + RTUNI_ALPHA, /* U+00d4b8: */ + RTUNI_ALPHA, /* U+00d4b9: */ + RTUNI_ALPHA, /* U+00d4ba: */ + RTUNI_ALPHA, /* U+00d4bb: */ + RTUNI_ALPHA, /* U+00d4bc: */ + RTUNI_ALPHA, /* U+00d4bd: */ + RTUNI_ALPHA, /* U+00d4be: */ + RTUNI_ALPHA, /* U+00d4bf: */ + RTUNI_ALPHA, /* U+00d4c0: */ + RTUNI_ALPHA, /* U+00d4c1: */ + RTUNI_ALPHA, /* U+00d4c2: */ + RTUNI_ALPHA, /* U+00d4c3: */ + RTUNI_ALPHA, /* U+00d4c4: */ + RTUNI_ALPHA, /* U+00d4c5: */ + RTUNI_ALPHA, /* U+00d4c6: */ + RTUNI_ALPHA, /* U+00d4c7: */ + RTUNI_ALPHA, /* U+00d4c8: */ + RTUNI_ALPHA, /* U+00d4c9: */ + RTUNI_ALPHA, /* U+00d4ca: */ + RTUNI_ALPHA, /* U+00d4cb: */ + RTUNI_ALPHA, /* U+00d4cc: */ + RTUNI_ALPHA, /* U+00d4cd: */ + RTUNI_ALPHA, /* U+00d4ce: */ + RTUNI_ALPHA, /* U+00d4cf: */ + RTUNI_ALPHA, /* U+00d4d0: */ + RTUNI_ALPHA, /* U+00d4d1: */ + RTUNI_ALPHA, /* U+00d4d2: */ + RTUNI_ALPHA, /* U+00d4d3: */ + RTUNI_ALPHA, /* U+00d4d4: */ + RTUNI_ALPHA, /* U+00d4d5: */ + RTUNI_ALPHA, /* U+00d4d6: */ + RTUNI_ALPHA, /* U+00d4d7: */ + RTUNI_ALPHA, /* U+00d4d8: */ + RTUNI_ALPHA, /* U+00d4d9: */ + RTUNI_ALPHA, /* U+00d4da: */ + RTUNI_ALPHA, /* U+00d4db: */ + RTUNI_ALPHA, /* U+00d4dc: */ + RTUNI_ALPHA, /* U+00d4dd: */ + RTUNI_ALPHA, /* U+00d4de: */ + RTUNI_ALPHA, /* U+00d4df: */ + RTUNI_ALPHA, /* U+00d4e0: */ + RTUNI_ALPHA, /* U+00d4e1: */ + RTUNI_ALPHA, /* U+00d4e2: */ + RTUNI_ALPHA, /* U+00d4e3: */ + RTUNI_ALPHA, /* U+00d4e4: */ + RTUNI_ALPHA, /* U+00d4e5: */ + RTUNI_ALPHA, /* U+00d4e6: */ + RTUNI_ALPHA, /* U+00d4e7: */ + RTUNI_ALPHA, /* U+00d4e8: */ + RTUNI_ALPHA, /* U+00d4e9: */ + RTUNI_ALPHA, /* U+00d4ea: */ + RTUNI_ALPHA, /* U+00d4eb: */ + RTUNI_ALPHA, /* U+00d4ec: */ + RTUNI_ALPHA, /* U+00d4ed: */ + RTUNI_ALPHA, /* U+00d4ee: */ + RTUNI_ALPHA, /* U+00d4ef: */ + RTUNI_ALPHA, /* U+00d4f0: */ + RTUNI_ALPHA, /* U+00d4f1: */ + RTUNI_ALPHA, /* U+00d4f2: */ + RTUNI_ALPHA, /* U+00d4f3: */ + RTUNI_ALPHA, /* U+00d4f4: */ + RTUNI_ALPHA, /* U+00d4f5: */ + RTUNI_ALPHA, /* U+00d4f6: */ + RTUNI_ALPHA, /* U+00d4f7: */ + RTUNI_ALPHA, /* U+00d4f8: */ + RTUNI_ALPHA, /* U+00d4f9: */ + RTUNI_ALPHA, /* U+00d4fa: */ + RTUNI_ALPHA, /* U+00d4fb: */ + RTUNI_ALPHA, /* U+00d4fc: */ + RTUNI_ALPHA, /* U+00d4fd: */ + RTUNI_ALPHA, /* U+00d4fe: */ + RTUNI_ALPHA, /* U+00d4ff: */ + RTUNI_ALPHA, /* U+00d500: */ + RTUNI_ALPHA, /* U+00d501: */ + RTUNI_ALPHA, /* U+00d502: */ + RTUNI_ALPHA, /* U+00d503: */ + RTUNI_ALPHA, /* U+00d504: */ + RTUNI_ALPHA, /* U+00d505: */ + RTUNI_ALPHA, /* U+00d506: */ + RTUNI_ALPHA, /* U+00d507: */ + RTUNI_ALPHA, /* U+00d508: */ + RTUNI_ALPHA, /* U+00d509: */ + RTUNI_ALPHA, /* U+00d50a: */ + RTUNI_ALPHA, /* U+00d50b: */ + RTUNI_ALPHA, /* U+00d50c: */ + RTUNI_ALPHA, /* U+00d50d: */ + RTUNI_ALPHA, /* U+00d50e: */ + RTUNI_ALPHA, /* U+00d50f: */ + RTUNI_ALPHA, /* U+00d510: */ + RTUNI_ALPHA, /* U+00d511: */ + RTUNI_ALPHA, /* U+00d512: */ + RTUNI_ALPHA, /* U+00d513: */ + RTUNI_ALPHA, /* U+00d514: */ + RTUNI_ALPHA, /* U+00d515: */ + RTUNI_ALPHA, /* U+00d516: */ + RTUNI_ALPHA, /* U+00d517: */ + RTUNI_ALPHA, /* U+00d518: */ + RTUNI_ALPHA, /* U+00d519: */ + RTUNI_ALPHA, /* U+00d51a: */ + RTUNI_ALPHA, /* U+00d51b: */ + RTUNI_ALPHA, /* U+00d51c: */ + RTUNI_ALPHA, /* U+00d51d: */ + RTUNI_ALPHA, /* U+00d51e: */ + RTUNI_ALPHA, /* U+00d51f: */ + RTUNI_ALPHA, /* U+00d520: */ + RTUNI_ALPHA, /* U+00d521: */ + RTUNI_ALPHA, /* U+00d522: */ + RTUNI_ALPHA, /* U+00d523: */ + RTUNI_ALPHA, /* U+00d524: */ + RTUNI_ALPHA, /* U+00d525: */ + RTUNI_ALPHA, /* U+00d526: */ + RTUNI_ALPHA, /* U+00d527: */ + RTUNI_ALPHA, /* U+00d528: */ + RTUNI_ALPHA, /* U+00d529: */ + RTUNI_ALPHA, /* U+00d52a: */ + RTUNI_ALPHA, /* U+00d52b: */ + RTUNI_ALPHA, /* U+00d52c: */ + RTUNI_ALPHA, /* U+00d52d: */ + RTUNI_ALPHA, /* U+00d52e: */ + RTUNI_ALPHA, /* U+00d52f: */ + RTUNI_ALPHA, /* U+00d530: */ + RTUNI_ALPHA, /* U+00d531: */ + RTUNI_ALPHA, /* U+00d532: */ + RTUNI_ALPHA, /* U+00d533: */ + RTUNI_ALPHA, /* U+00d534: */ + RTUNI_ALPHA, /* U+00d535: */ + RTUNI_ALPHA, /* U+00d536: */ + RTUNI_ALPHA, /* U+00d537: */ + RTUNI_ALPHA, /* U+00d538: */ + RTUNI_ALPHA, /* U+00d539: */ + RTUNI_ALPHA, /* U+00d53a: */ + RTUNI_ALPHA, /* U+00d53b: */ + RTUNI_ALPHA, /* U+00d53c: */ + RTUNI_ALPHA, /* U+00d53d: */ + RTUNI_ALPHA, /* U+00d53e: */ + RTUNI_ALPHA, /* U+00d53f: */ + RTUNI_ALPHA, /* U+00d540: */ + RTUNI_ALPHA, /* U+00d541: */ + RTUNI_ALPHA, /* U+00d542: */ + RTUNI_ALPHA, /* U+00d543: */ + RTUNI_ALPHA, /* U+00d544: */ + RTUNI_ALPHA, /* U+00d545: */ + RTUNI_ALPHA, /* U+00d546: */ + RTUNI_ALPHA, /* U+00d547: */ + RTUNI_ALPHA, /* U+00d548: */ + RTUNI_ALPHA, /* U+00d549: */ + RTUNI_ALPHA, /* U+00d54a: */ + RTUNI_ALPHA, /* U+00d54b: */ + RTUNI_ALPHA, /* U+00d54c: */ + RTUNI_ALPHA, /* U+00d54d: */ + RTUNI_ALPHA, /* U+00d54e: */ + RTUNI_ALPHA, /* U+00d54f: */ + RTUNI_ALPHA, /* U+00d550: */ + RTUNI_ALPHA, /* U+00d551: */ + RTUNI_ALPHA, /* U+00d552: */ + RTUNI_ALPHA, /* U+00d553: */ + RTUNI_ALPHA, /* U+00d554: */ + RTUNI_ALPHA, /* U+00d555: */ + RTUNI_ALPHA, /* U+00d556: */ + RTUNI_ALPHA, /* U+00d557: */ + RTUNI_ALPHA, /* U+00d558: */ + RTUNI_ALPHA, /* U+00d559: */ + RTUNI_ALPHA, /* U+00d55a: */ + RTUNI_ALPHA, /* U+00d55b: */ + RTUNI_ALPHA, /* U+00d55c: */ + RTUNI_ALPHA, /* U+00d55d: */ + RTUNI_ALPHA, /* U+00d55e: */ + RTUNI_ALPHA, /* U+00d55f: */ + RTUNI_ALPHA, /* U+00d560: */ + RTUNI_ALPHA, /* U+00d561: */ + RTUNI_ALPHA, /* U+00d562: */ + RTUNI_ALPHA, /* U+00d563: */ + RTUNI_ALPHA, /* U+00d564: */ + RTUNI_ALPHA, /* U+00d565: */ + RTUNI_ALPHA, /* U+00d566: */ + RTUNI_ALPHA, /* U+00d567: */ + RTUNI_ALPHA, /* U+00d568: */ + RTUNI_ALPHA, /* U+00d569: */ + RTUNI_ALPHA, /* U+00d56a: */ + RTUNI_ALPHA, /* U+00d56b: */ + RTUNI_ALPHA, /* U+00d56c: */ + RTUNI_ALPHA, /* U+00d56d: */ + RTUNI_ALPHA, /* U+00d56e: */ + RTUNI_ALPHA, /* U+00d56f: */ + RTUNI_ALPHA, /* U+00d570: */ + RTUNI_ALPHA, /* U+00d571: */ + RTUNI_ALPHA, /* U+00d572: */ + RTUNI_ALPHA, /* U+00d573: */ + RTUNI_ALPHA, /* U+00d574: */ + RTUNI_ALPHA, /* U+00d575: */ + RTUNI_ALPHA, /* U+00d576: */ + RTUNI_ALPHA, /* U+00d577: */ + RTUNI_ALPHA, /* U+00d578: */ + RTUNI_ALPHA, /* U+00d579: */ + RTUNI_ALPHA, /* U+00d57a: */ + RTUNI_ALPHA, /* U+00d57b: */ + RTUNI_ALPHA, /* U+00d57c: */ + RTUNI_ALPHA, /* U+00d57d: */ + RTUNI_ALPHA, /* U+00d57e: */ + RTUNI_ALPHA, /* U+00d57f: */ + RTUNI_ALPHA, /* U+00d580: */ + RTUNI_ALPHA, /* U+00d581: */ + RTUNI_ALPHA, /* U+00d582: */ + RTUNI_ALPHA, /* U+00d583: */ + RTUNI_ALPHA, /* U+00d584: */ + RTUNI_ALPHA, /* U+00d585: */ + RTUNI_ALPHA, /* U+00d586: */ + RTUNI_ALPHA, /* U+00d587: */ + RTUNI_ALPHA, /* U+00d588: */ + RTUNI_ALPHA, /* U+00d589: */ + RTUNI_ALPHA, /* U+00d58a: */ + RTUNI_ALPHA, /* U+00d58b: */ + RTUNI_ALPHA, /* U+00d58c: */ + RTUNI_ALPHA, /* U+00d58d: */ + RTUNI_ALPHA, /* U+00d58e: */ + RTUNI_ALPHA, /* U+00d58f: */ + RTUNI_ALPHA, /* U+00d590: */ + RTUNI_ALPHA, /* U+00d591: */ + RTUNI_ALPHA, /* U+00d592: */ + RTUNI_ALPHA, /* U+00d593: */ + RTUNI_ALPHA, /* U+00d594: */ + RTUNI_ALPHA, /* U+00d595: */ + RTUNI_ALPHA, /* U+00d596: */ + RTUNI_ALPHA, /* U+00d597: */ + RTUNI_ALPHA, /* U+00d598: */ + RTUNI_ALPHA, /* U+00d599: */ + RTUNI_ALPHA, /* U+00d59a: */ + RTUNI_ALPHA, /* U+00d59b: */ + RTUNI_ALPHA, /* U+00d59c: */ + RTUNI_ALPHA, /* U+00d59d: */ + RTUNI_ALPHA, /* U+00d59e: */ + RTUNI_ALPHA, /* U+00d59f: */ + RTUNI_ALPHA, /* U+00d5a0: */ + RTUNI_ALPHA, /* U+00d5a1: */ + RTUNI_ALPHA, /* U+00d5a2: */ + RTUNI_ALPHA, /* U+00d5a3: */ + RTUNI_ALPHA, /* U+00d5a4: */ + RTUNI_ALPHA, /* U+00d5a5: */ + RTUNI_ALPHA, /* U+00d5a6: */ + RTUNI_ALPHA, /* U+00d5a7: */ + RTUNI_ALPHA, /* U+00d5a8: */ + RTUNI_ALPHA, /* U+00d5a9: */ + RTUNI_ALPHA, /* U+00d5aa: */ + RTUNI_ALPHA, /* U+00d5ab: */ + RTUNI_ALPHA, /* U+00d5ac: */ + RTUNI_ALPHA, /* U+00d5ad: */ + RTUNI_ALPHA, /* U+00d5ae: */ + RTUNI_ALPHA, /* U+00d5af: */ + RTUNI_ALPHA, /* U+00d5b0: */ + RTUNI_ALPHA, /* U+00d5b1: */ + RTUNI_ALPHA, /* U+00d5b2: */ + RTUNI_ALPHA, /* U+00d5b3: */ + RTUNI_ALPHA, /* U+00d5b4: */ + RTUNI_ALPHA, /* U+00d5b5: */ + RTUNI_ALPHA, /* U+00d5b6: */ + RTUNI_ALPHA, /* U+00d5b7: */ + RTUNI_ALPHA, /* U+00d5b8: */ + RTUNI_ALPHA, /* U+00d5b9: */ + RTUNI_ALPHA, /* U+00d5ba: */ + RTUNI_ALPHA, /* U+00d5bb: */ + RTUNI_ALPHA, /* U+00d5bc: */ + RTUNI_ALPHA, /* U+00d5bd: */ + RTUNI_ALPHA, /* U+00d5be: */ + RTUNI_ALPHA, /* U+00d5bf: */ + RTUNI_ALPHA, /* U+00d5c0: */ + RTUNI_ALPHA, /* U+00d5c1: */ + RTUNI_ALPHA, /* U+00d5c2: */ + RTUNI_ALPHA, /* U+00d5c3: */ + RTUNI_ALPHA, /* U+00d5c4: */ + RTUNI_ALPHA, /* U+00d5c5: */ + RTUNI_ALPHA, /* U+00d5c6: */ + RTUNI_ALPHA, /* U+00d5c7: */ + RTUNI_ALPHA, /* U+00d5c8: */ + RTUNI_ALPHA, /* U+00d5c9: */ + RTUNI_ALPHA, /* U+00d5ca: */ + RTUNI_ALPHA, /* U+00d5cb: */ + RTUNI_ALPHA, /* U+00d5cc: */ + RTUNI_ALPHA, /* U+00d5cd: */ + RTUNI_ALPHA, /* U+00d5ce: */ + RTUNI_ALPHA, /* U+00d5cf: */ + RTUNI_ALPHA, /* U+00d5d0: */ + RTUNI_ALPHA, /* U+00d5d1: */ + RTUNI_ALPHA, /* U+00d5d2: */ + RTUNI_ALPHA, /* U+00d5d3: */ + RTUNI_ALPHA, /* U+00d5d4: */ + RTUNI_ALPHA, /* U+00d5d5: */ + RTUNI_ALPHA, /* U+00d5d6: */ + RTUNI_ALPHA, /* U+00d5d7: */ + RTUNI_ALPHA, /* U+00d5d8: */ + RTUNI_ALPHA, /* U+00d5d9: */ + RTUNI_ALPHA, /* U+00d5da: */ + RTUNI_ALPHA, /* U+00d5db: */ + RTUNI_ALPHA, /* U+00d5dc: */ + RTUNI_ALPHA, /* U+00d5dd: */ + RTUNI_ALPHA, /* U+00d5de: */ + RTUNI_ALPHA, /* U+00d5df: */ + RTUNI_ALPHA, /* U+00d5e0: */ + RTUNI_ALPHA, /* U+00d5e1: */ + RTUNI_ALPHA, /* U+00d5e2: */ + RTUNI_ALPHA, /* U+00d5e3: */ + RTUNI_ALPHA, /* U+00d5e4: */ + RTUNI_ALPHA, /* U+00d5e5: */ + RTUNI_ALPHA, /* U+00d5e6: */ + RTUNI_ALPHA, /* U+00d5e7: */ + RTUNI_ALPHA, /* U+00d5e8: */ + RTUNI_ALPHA, /* U+00d5e9: */ + RTUNI_ALPHA, /* U+00d5ea: */ + RTUNI_ALPHA, /* U+00d5eb: */ + RTUNI_ALPHA, /* U+00d5ec: */ + RTUNI_ALPHA, /* U+00d5ed: */ + RTUNI_ALPHA, /* U+00d5ee: */ + RTUNI_ALPHA, /* U+00d5ef: */ + RTUNI_ALPHA, /* U+00d5f0: */ + RTUNI_ALPHA, /* U+00d5f1: */ + RTUNI_ALPHA, /* U+00d5f2: */ + RTUNI_ALPHA, /* U+00d5f3: */ + RTUNI_ALPHA, /* U+00d5f4: */ + RTUNI_ALPHA, /* U+00d5f5: */ + RTUNI_ALPHA, /* U+00d5f6: */ + RTUNI_ALPHA, /* U+00d5f7: */ + RTUNI_ALPHA, /* U+00d5f8: */ + RTUNI_ALPHA, /* U+00d5f9: */ + RTUNI_ALPHA, /* U+00d5fa: */ + RTUNI_ALPHA, /* U+00d5fb: */ + RTUNI_ALPHA, /* U+00d5fc: */ + RTUNI_ALPHA, /* U+00d5fd: */ + RTUNI_ALPHA, /* U+00d5fe: */ + RTUNI_ALPHA, /* U+00d5ff: */ + RTUNI_ALPHA, /* U+00d600: */ + RTUNI_ALPHA, /* U+00d601: */ + RTUNI_ALPHA, /* U+00d602: */ + RTUNI_ALPHA, /* U+00d603: */ + RTUNI_ALPHA, /* U+00d604: */ + RTUNI_ALPHA, /* U+00d605: */ + RTUNI_ALPHA, /* U+00d606: */ + RTUNI_ALPHA, /* U+00d607: */ + RTUNI_ALPHA, /* U+00d608: */ + RTUNI_ALPHA, /* U+00d609: */ + RTUNI_ALPHA, /* U+00d60a: */ + RTUNI_ALPHA, /* U+00d60b: */ + RTUNI_ALPHA, /* U+00d60c: */ + RTUNI_ALPHA, /* U+00d60d: */ + RTUNI_ALPHA, /* U+00d60e: */ + RTUNI_ALPHA, /* U+00d60f: */ + RTUNI_ALPHA, /* U+00d610: */ + RTUNI_ALPHA, /* U+00d611: */ + RTUNI_ALPHA, /* U+00d612: */ + RTUNI_ALPHA, /* U+00d613: */ + RTUNI_ALPHA, /* U+00d614: */ + RTUNI_ALPHA, /* U+00d615: */ + RTUNI_ALPHA, /* U+00d616: */ + RTUNI_ALPHA, /* U+00d617: */ + RTUNI_ALPHA, /* U+00d618: */ + RTUNI_ALPHA, /* U+00d619: */ + RTUNI_ALPHA, /* U+00d61a: */ + RTUNI_ALPHA, /* U+00d61b: */ + RTUNI_ALPHA, /* U+00d61c: */ + RTUNI_ALPHA, /* U+00d61d: */ + RTUNI_ALPHA, /* U+00d61e: */ + RTUNI_ALPHA, /* U+00d61f: */ + RTUNI_ALPHA, /* U+00d620: */ + RTUNI_ALPHA, /* U+00d621: */ + RTUNI_ALPHA, /* U+00d622: */ + RTUNI_ALPHA, /* U+00d623: */ + RTUNI_ALPHA, /* U+00d624: */ + RTUNI_ALPHA, /* U+00d625: */ + RTUNI_ALPHA, /* U+00d626: */ + RTUNI_ALPHA, /* U+00d627: */ + RTUNI_ALPHA, /* U+00d628: */ + RTUNI_ALPHA, /* U+00d629: */ + RTUNI_ALPHA, /* U+00d62a: */ + RTUNI_ALPHA, /* U+00d62b: */ + RTUNI_ALPHA, /* U+00d62c: */ + RTUNI_ALPHA, /* U+00d62d: */ + RTUNI_ALPHA, /* U+00d62e: */ + RTUNI_ALPHA, /* U+00d62f: */ + RTUNI_ALPHA, /* U+00d630: */ + RTUNI_ALPHA, /* U+00d631: */ + RTUNI_ALPHA, /* U+00d632: */ + RTUNI_ALPHA, /* U+00d633: */ + RTUNI_ALPHA, /* U+00d634: */ + RTUNI_ALPHA, /* U+00d635: */ + RTUNI_ALPHA, /* U+00d636: */ + RTUNI_ALPHA, /* U+00d637: */ + RTUNI_ALPHA, /* U+00d638: */ + RTUNI_ALPHA, /* U+00d639: */ + RTUNI_ALPHA, /* U+00d63a: */ + RTUNI_ALPHA, /* U+00d63b: */ + RTUNI_ALPHA, /* U+00d63c: */ + RTUNI_ALPHA, /* U+00d63d: */ + RTUNI_ALPHA, /* U+00d63e: */ + RTUNI_ALPHA, /* U+00d63f: */ + RTUNI_ALPHA, /* U+00d640: */ + RTUNI_ALPHA, /* U+00d641: */ + RTUNI_ALPHA, /* U+00d642: */ + RTUNI_ALPHA, /* U+00d643: */ + RTUNI_ALPHA, /* U+00d644: */ + RTUNI_ALPHA, /* U+00d645: */ + RTUNI_ALPHA, /* U+00d646: */ + RTUNI_ALPHA, /* U+00d647: */ + RTUNI_ALPHA, /* U+00d648: */ + RTUNI_ALPHA, /* U+00d649: */ + RTUNI_ALPHA, /* U+00d64a: */ + RTUNI_ALPHA, /* U+00d64b: */ + RTUNI_ALPHA, /* U+00d64c: */ + RTUNI_ALPHA, /* U+00d64d: */ + RTUNI_ALPHA, /* U+00d64e: */ + RTUNI_ALPHA, /* U+00d64f: */ + RTUNI_ALPHA, /* U+00d650: */ + RTUNI_ALPHA, /* U+00d651: */ + RTUNI_ALPHA, /* U+00d652: */ + RTUNI_ALPHA, /* U+00d653: */ + RTUNI_ALPHA, /* U+00d654: */ + RTUNI_ALPHA, /* U+00d655: */ + RTUNI_ALPHA, /* U+00d656: */ + RTUNI_ALPHA, /* U+00d657: */ + RTUNI_ALPHA, /* U+00d658: */ + RTUNI_ALPHA, /* U+00d659: */ + RTUNI_ALPHA, /* U+00d65a: */ + RTUNI_ALPHA, /* U+00d65b: */ + RTUNI_ALPHA, /* U+00d65c: */ + RTUNI_ALPHA, /* U+00d65d: */ + RTUNI_ALPHA, /* U+00d65e: */ + RTUNI_ALPHA, /* U+00d65f: */ + RTUNI_ALPHA, /* U+00d660: */ + RTUNI_ALPHA, /* U+00d661: */ + RTUNI_ALPHA, /* U+00d662: */ + RTUNI_ALPHA, /* U+00d663: */ + RTUNI_ALPHA, /* U+00d664: */ + RTUNI_ALPHA, /* U+00d665: */ + RTUNI_ALPHA, /* U+00d666: */ + RTUNI_ALPHA, /* U+00d667: */ + RTUNI_ALPHA, /* U+00d668: */ + RTUNI_ALPHA, /* U+00d669: */ + RTUNI_ALPHA, /* U+00d66a: */ + RTUNI_ALPHA, /* U+00d66b: */ + RTUNI_ALPHA, /* U+00d66c: */ + RTUNI_ALPHA, /* U+00d66d: */ + RTUNI_ALPHA, /* U+00d66e: */ + RTUNI_ALPHA, /* U+00d66f: */ + RTUNI_ALPHA, /* U+00d670: */ + RTUNI_ALPHA, /* U+00d671: */ + RTUNI_ALPHA, /* U+00d672: */ + RTUNI_ALPHA, /* U+00d673: */ + RTUNI_ALPHA, /* U+00d674: */ + RTUNI_ALPHA, /* U+00d675: */ + RTUNI_ALPHA, /* U+00d676: */ + RTUNI_ALPHA, /* U+00d677: */ + RTUNI_ALPHA, /* U+00d678: */ + RTUNI_ALPHA, /* U+00d679: */ + RTUNI_ALPHA, /* U+00d67a: */ + RTUNI_ALPHA, /* U+00d67b: */ + RTUNI_ALPHA, /* U+00d67c: */ + RTUNI_ALPHA, /* U+00d67d: */ + RTUNI_ALPHA, /* U+00d67e: */ + RTUNI_ALPHA, /* U+00d67f: */ + RTUNI_ALPHA, /* U+00d680: */ + RTUNI_ALPHA, /* U+00d681: */ + RTUNI_ALPHA, /* U+00d682: */ + RTUNI_ALPHA, /* U+00d683: */ + RTUNI_ALPHA, /* U+00d684: */ + RTUNI_ALPHA, /* U+00d685: */ + RTUNI_ALPHA, /* U+00d686: */ + RTUNI_ALPHA, /* U+00d687: */ + RTUNI_ALPHA, /* U+00d688: */ + RTUNI_ALPHA, /* U+00d689: */ + RTUNI_ALPHA, /* U+00d68a: */ + RTUNI_ALPHA, /* U+00d68b: */ + RTUNI_ALPHA, /* U+00d68c: */ + RTUNI_ALPHA, /* U+00d68d: */ + RTUNI_ALPHA, /* U+00d68e: */ + RTUNI_ALPHA, /* U+00d68f: */ + RTUNI_ALPHA, /* U+00d690: */ + RTUNI_ALPHA, /* U+00d691: */ + RTUNI_ALPHA, /* U+00d692: */ + RTUNI_ALPHA, /* U+00d693: */ + RTUNI_ALPHA, /* U+00d694: */ + RTUNI_ALPHA, /* U+00d695: */ + RTUNI_ALPHA, /* U+00d696: */ + RTUNI_ALPHA, /* U+00d697: */ + RTUNI_ALPHA, /* U+00d698: */ + RTUNI_ALPHA, /* U+00d699: */ + RTUNI_ALPHA, /* U+00d69a: */ + RTUNI_ALPHA, /* U+00d69b: */ + RTUNI_ALPHA, /* U+00d69c: */ + RTUNI_ALPHA, /* U+00d69d: */ + RTUNI_ALPHA, /* U+00d69e: */ + RTUNI_ALPHA, /* U+00d69f: */ + RTUNI_ALPHA, /* U+00d6a0: */ + RTUNI_ALPHA, /* U+00d6a1: */ + RTUNI_ALPHA, /* U+00d6a2: */ + RTUNI_ALPHA, /* U+00d6a3: */ + RTUNI_ALPHA, /* U+00d6a4: */ + RTUNI_ALPHA, /* U+00d6a5: */ + RTUNI_ALPHA, /* U+00d6a6: */ + RTUNI_ALPHA, /* U+00d6a7: */ + RTUNI_ALPHA, /* U+00d6a8: */ + RTUNI_ALPHA, /* U+00d6a9: */ + RTUNI_ALPHA, /* U+00d6aa: */ + RTUNI_ALPHA, /* U+00d6ab: */ + RTUNI_ALPHA, /* U+00d6ac: */ + RTUNI_ALPHA, /* U+00d6ad: */ + RTUNI_ALPHA, /* U+00d6ae: */ + RTUNI_ALPHA, /* U+00d6af: */ + RTUNI_ALPHA, /* U+00d6b0: */ + RTUNI_ALPHA, /* U+00d6b1: */ + RTUNI_ALPHA, /* U+00d6b2: */ + RTUNI_ALPHA, /* U+00d6b3: */ + RTUNI_ALPHA, /* U+00d6b4: */ + RTUNI_ALPHA, /* U+00d6b5: */ + RTUNI_ALPHA, /* U+00d6b6: */ + RTUNI_ALPHA, /* U+00d6b7: */ + RTUNI_ALPHA, /* U+00d6b8: */ + RTUNI_ALPHA, /* U+00d6b9: */ + RTUNI_ALPHA, /* U+00d6ba: */ + RTUNI_ALPHA, /* U+00d6bb: */ + RTUNI_ALPHA, /* U+00d6bc: */ + RTUNI_ALPHA, /* U+00d6bd: */ + RTUNI_ALPHA, /* U+00d6be: */ + RTUNI_ALPHA, /* U+00d6bf: */ + RTUNI_ALPHA, /* U+00d6c0: */ + RTUNI_ALPHA, /* U+00d6c1: */ + RTUNI_ALPHA, /* U+00d6c2: */ + RTUNI_ALPHA, /* U+00d6c3: */ + RTUNI_ALPHA, /* U+00d6c4: */ + RTUNI_ALPHA, /* U+00d6c5: */ + RTUNI_ALPHA, /* U+00d6c6: */ + RTUNI_ALPHA, /* U+00d6c7: */ + RTUNI_ALPHA, /* U+00d6c8: */ + RTUNI_ALPHA, /* U+00d6c9: */ + RTUNI_ALPHA, /* U+00d6ca: */ + RTUNI_ALPHA, /* U+00d6cb: */ + RTUNI_ALPHA, /* U+00d6cc: */ + RTUNI_ALPHA, /* U+00d6cd: */ + RTUNI_ALPHA, /* U+00d6ce: */ + RTUNI_ALPHA, /* U+00d6cf: */ + RTUNI_ALPHA, /* U+00d6d0: */ + RTUNI_ALPHA, /* U+00d6d1: */ + RTUNI_ALPHA, /* U+00d6d2: */ + RTUNI_ALPHA, /* U+00d6d3: */ + RTUNI_ALPHA, /* U+00d6d4: */ + RTUNI_ALPHA, /* U+00d6d5: */ + RTUNI_ALPHA, /* U+00d6d6: */ + RTUNI_ALPHA, /* U+00d6d7: */ + RTUNI_ALPHA, /* U+00d6d8: */ + RTUNI_ALPHA, /* U+00d6d9: */ + RTUNI_ALPHA, /* U+00d6da: */ + RTUNI_ALPHA, /* U+00d6db: */ + RTUNI_ALPHA, /* U+00d6dc: */ + RTUNI_ALPHA, /* U+00d6dd: */ + RTUNI_ALPHA, /* U+00d6de: */ + RTUNI_ALPHA, /* U+00d6df: */ + RTUNI_ALPHA, /* U+00d6e0: */ + RTUNI_ALPHA, /* U+00d6e1: */ + RTUNI_ALPHA, /* U+00d6e2: */ + RTUNI_ALPHA, /* U+00d6e3: */ + RTUNI_ALPHA, /* U+00d6e4: */ + RTUNI_ALPHA, /* U+00d6e5: */ + RTUNI_ALPHA, /* U+00d6e6: */ + RTUNI_ALPHA, /* U+00d6e7: */ + RTUNI_ALPHA, /* U+00d6e8: */ + RTUNI_ALPHA, /* U+00d6e9: */ + RTUNI_ALPHA, /* U+00d6ea: */ + RTUNI_ALPHA, /* U+00d6eb: */ + RTUNI_ALPHA, /* U+00d6ec: */ + RTUNI_ALPHA, /* U+00d6ed: */ + RTUNI_ALPHA, /* U+00d6ee: */ + RTUNI_ALPHA, /* U+00d6ef: */ + RTUNI_ALPHA, /* U+00d6f0: */ + RTUNI_ALPHA, /* U+00d6f1: */ + RTUNI_ALPHA, /* U+00d6f2: */ + RTUNI_ALPHA, /* U+00d6f3: */ + RTUNI_ALPHA, /* U+00d6f4: */ + RTUNI_ALPHA, /* U+00d6f5: */ + RTUNI_ALPHA, /* U+00d6f6: */ + RTUNI_ALPHA, /* U+00d6f7: */ + RTUNI_ALPHA, /* U+00d6f8: */ + RTUNI_ALPHA, /* U+00d6f9: */ + RTUNI_ALPHA, /* U+00d6fa: */ + RTUNI_ALPHA, /* U+00d6fb: */ + RTUNI_ALPHA, /* U+00d6fc: */ + RTUNI_ALPHA, /* U+00d6fd: */ + RTUNI_ALPHA, /* U+00d6fe: */ + RTUNI_ALPHA, /* U+00d6ff: */ + RTUNI_ALPHA, /* U+00d700: */ + RTUNI_ALPHA, /* U+00d701: */ + RTUNI_ALPHA, /* U+00d702: */ + RTUNI_ALPHA, /* U+00d703: */ + RTUNI_ALPHA, /* U+00d704: */ + RTUNI_ALPHA, /* U+00d705: */ + RTUNI_ALPHA, /* U+00d706: */ + RTUNI_ALPHA, /* U+00d707: */ + RTUNI_ALPHA, /* U+00d708: */ + RTUNI_ALPHA, /* U+00d709: */ + RTUNI_ALPHA, /* U+00d70a: */ + RTUNI_ALPHA, /* U+00d70b: */ + RTUNI_ALPHA, /* U+00d70c: */ + RTUNI_ALPHA, /* U+00d70d: */ + RTUNI_ALPHA, /* U+00d70e: */ + RTUNI_ALPHA, /* U+00d70f: */ + RTUNI_ALPHA, /* U+00d710: */ + RTUNI_ALPHA, /* U+00d711: */ + RTUNI_ALPHA, /* U+00d712: */ + RTUNI_ALPHA, /* U+00d713: */ + RTUNI_ALPHA, /* U+00d714: */ + RTUNI_ALPHA, /* U+00d715: */ + RTUNI_ALPHA, /* U+00d716: */ + RTUNI_ALPHA, /* U+00d717: */ + RTUNI_ALPHA, /* U+00d718: */ + RTUNI_ALPHA, /* U+00d719: */ + RTUNI_ALPHA, /* U+00d71a: */ + RTUNI_ALPHA, /* U+00d71b: */ + RTUNI_ALPHA, /* U+00d71c: */ + RTUNI_ALPHA, /* U+00d71d: */ + RTUNI_ALPHA, /* U+00d71e: */ + RTUNI_ALPHA, /* U+00d71f: */ + RTUNI_ALPHA, /* U+00d720: */ + RTUNI_ALPHA, /* U+00d721: */ + RTUNI_ALPHA, /* U+00d722: */ + RTUNI_ALPHA, /* U+00d723: */ + RTUNI_ALPHA, /* U+00d724: */ + RTUNI_ALPHA, /* U+00d725: */ + RTUNI_ALPHA, /* U+00d726: */ + RTUNI_ALPHA, /* U+00d727: */ + RTUNI_ALPHA, /* U+00d728: */ + RTUNI_ALPHA, /* U+00d729: */ + RTUNI_ALPHA, /* U+00d72a: */ + RTUNI_ALPHA, /* U+00d72b: */ + RTUNI_ALPHA, /* U+00d72c: */ + RTUNI_ALPHA, /* U+00d72d: */ + RTUNI_ALPHA, /* U+00d72e: */ + RTUNI_ALPHA, /* U+00d72f: */ + RTUNI_ALPHA, /* U+00d730: */ + RTUNI_ALPHA, /* U+00d731: */ + RTUNI_ALPHA, /* U+00d732: */ + RTUNI_ALPHA, /* U+00d733: */ + RTUNI_ALPHA, /* U+00d734: */ + RTUNI_ALPHA, /* U+00d735: */ + RTUNI_ALPHA, /* U+00d736: */ + RTUNI_ALPHA, /* U+00d737: */ + RTUNI_ALPHA, /* U+00d738: */ + RTUNI_ALPHA, /* U+00d739: */ + RTUNI_ALPHA, /* U+00d73a: */ + RTUNI_ALPHA, /* U+00d73b: */ + RTUNI_ALPHA, /* U+00d73c: */ + RTUNI_ALPHA, /* U+00d73d: */ + RTUNI_ALPHA, /* U+00d73e: */ + RTUNI_ALPHA, /* U+00d73f: */ + RTUNI_ALPHA, /* U+00d740: */ + RTUNI_ALPHA, /* U+00d741: */ + RTUNI_ALPHA, /* U+00d742: */ + RTUNI_ALPHA, /* U+00d743: */ + RTUNI_ALPHA, /* U+00d744: */ + RTUNI_ALPHA, /* U+00d745: */ + RTUNI_ALPHA, /* U+00d746: */ + RTUNI_ALPHA, /* U+00d747: */ + RTUNI_ALPHA, /* U+00d748: */ + RTUNI_ALPHA, /* U+00d749: */ + RTUNI_ALPHA, /* U+00d74a: */ + RTUNI_ALPHA, /* U+00d74b: */ + RTUNI_ALPHA, /* U+00d74c: */ + RTUNI_ALPHA, /* U+00d74d: */ + RTUNI_ALPHA, /* U+00d74e: */ + RTUNI_ALPHA, /* U+00d74f: */ + RTUNI_ALPHA, /* U+00d750: */ + RTUNI_ALPHA, /* U+00d751: */ + RTUNI_ALPHA, /* U+00d752: */ + RTUNI_ALPHA, /* U+00d753: */ + RTUNI_ALPHA, /* U+00d754: */ + RTUNI_ALPHA, /* U+00d755: */ + RTUNI_ALPHA, /* U+00d756: */ + RTUNI_ALPHA, /* U+00d757: */ + RTUNI_ALPHA, /* U+00d758: */ + RTUNI_ALPHA, /* U+00d759: */ + RTUNI_ALPHA, /* U+00d75a: */ + RTUNI_ALPHA, /* U+00d75b: */ + RTUNI_ALPHA, /* U+00d75c: */ + RTUNI_ALPHA, /* U+00d75d: */ + RTUNI_ALPHA, /* U+00d75e: */ + RTUNI_ALPHA, /* U+00d75f: */ + RTUNI_ALPHA, /* U+00d760: */ + RTUNI_ALPHA, /* U+00d761: */ + RTUNI_ALPHA, /* U+00d762: */ + RTUNI_ALPHA, /* U+00d763: */ + RTUNI_ALPHA, /* U+00d764: */ + RTUNI_ALPHA, /* U+00d765: */ + RTUNI_ALPHA, /* U+00d766: */ + RTUNI_ALPHA, /* U+00d767: */ + RTUNI_ALPHA, /* U+00d768: */ + RTUNI_ALPHA, /* U+00d769: */ + RTUNI_ALPHA, /* U+00d76a: */ + RTUNI_ALPHA, /* U+00d76b: */ + RTUNI_ALPHA, /* U+00d76c: */ + RTUNI_ALPHA, /* U+00d76d: */ + RTUNI_ALPHA, /* U+00d76e: */ + RTUNI_ALPHA, /* U+00d76f: */ + RTUNI_ALPHA, /* U+00d770: */ + RTUNI_ALPHA, /* U+00d771: */ + RTUNI_ALPHA, /* U+00d772: */ + RTUNI_ALPHA, /* U+00d773: */ + RTUNI_ALPHA, /* U+00d774: */ + RTUNI_ALPHA, /* U+00d775: */ + RTUNI_ALPHA, /* U+00d776: */ + RTUNI_ALPHA, /* U+00d777: */ + RTUNI_ALPHA, /* U+00d778: */ + RTUNI_ALPHA, /* U+00d779: */ + RTUNI_ALPHA, /* U+00d77a: */ + RTUNI_ALPHA, /* U+00d77b: */ + RTUNI_ALPHA, /* U+00d77c: */ + RTUNI_ALPHA, /* U+00d77d: */ + RTUNI_ALPHA, /* U+00d77e: */ + RTUNI_ALPHA, /* U+00d77f: */ + RTUNI_ALPHA, /* U+00d780: */ + RTUNI_ALPHA, /* U+00d781: */ + RTUNI_ALPHA, /* U+00d782: */ + RTUNI_ALPHA, /* U+00d783: */ + RTUNI_ALPHA, /* U+00d784: */ + RTUNI_ALPHA, /* U+00d785: */ + RTUNI_ALPHA, /* U+00d786: */ + RTUNI_ALPHA, /* U+00d787: */ + RTUNI_ALPHA, /* U+00d788: */ + RTUNI_ALPHA, /* U+00d789: */ + RTUNI_ALPHA, /* U+00d78a: */ + RTUNI_ALPHA, /* U+00d78b: */ + RTUNI_ALPHA, /* U+00d78c: */ + RTUNI_ALPHA, /* U+00d78d: */ + RTUNI_ALPHA, /* U+00d78e: */ + RTUNI_ALPHA, /* U+00d78f: */ + RTUNI_ALPHA, /* U+00d790: */ + RTUNI_ALPHA, /* U+00d791: */ + RTUNI_ALPHA, /* U+00d792: */ + RTUNI_ALPHA, /* U+00d793: */ + RTUNI_ALPHA, /* U+00d794: */ + RTUNI_ALPHA, /* U+00d795: */ + RTUNI_ALPHA, /* U+00d796: */ + RTUNI_ALPHA, /* U+00d797: */ + RTUNI_ALPHA, /* U+00d798: */ + RTUNI_ALPHA, /* U+00d799: */ + RTUNI_ALPHA, /* U+00d79a: */ + RTUNI_ALPHA, /* U+00d79b: */ + RTUNI_ALPHA, /* U+00d79c: */ + RTUNI_ALPHA, /* U+00d79d: */ + RTUNI_ALPHA, /* U+00d79e: */ + RTUNI_ALPHA, /* U+00d79f: */ + RTUNI_ALPHA, /* U+00d7a0: */ + RTUNI_ALPHA, /* U+00d7a1: */ + RTUNI_ALPHA, /* U+00d7a2: */ + RTUNI_ALPHA, /* U+00d7a3: */ + 0, /* U+00d7a4: */ + 0, /* U+00d7a5: */ + 0, /* U+00d7a6: */ + 0, /* U+00d7a7: */ + 0, /* U+00d7a8: */ + 0, /* U+00d7a9: */ + 0, /* U+00d7aa: */ + 0, /* U+00d7ab: */ + 0, /* U+00d7ac: */ + 0, /* U+00d7ad: */ + 0, /* U+00d7ae: */ + 0, /* U+00d7af: */ + RTUNI_ALPHA, /* U+00d7b0: HANGUL JUNGSEONG O-YEO*/ + RTUNI_ALPHA, /* U+00d7b1: HANGUL JUNGSEONG O-O-I*/ + RTUNI_ALPHA, /* U+00d7b2: HANGUL JUNGSEONG YO-A*/ + RTUNI_ALPHA, /* U+00d7b3: HANGUL JUNGSEONG YO-AE*/ + RTUNI_ALPHA, /* U+00d7b4: HANGUL JUNGSEONG YO-EO*/ + RTUNI_ALPHA, /* U+00d7b5: HANGUL JUNGSEONG U-YEO*/ + RTUNI_ALPHA, /* U+00d7b6: HANGUL JUNGSEONG U-I-I*/ + RTUNI_ALPHA, /* U+00d7b7: HANGUL JUNGSEONG YU-AE*/ + RTUNI_ALPHA, /* U+00d7b8: HANGUL JUNGSEONG YU-O*/ + RTUNI_ALPHA, /* U+00d7b9: HANGUL JUNGSEONG EU-A*/ + RTUNI_ALPHA, /* U+00d7ba: HANGUL JUNGSEONG EU-EO*/ + RTUNI_ALPHA, /* U+00d7bb: HANGUL JUNGSEONG EU-E*/ + RTUNI_ALPHA, /* U+00d7bc: HANGUL JUNGSEONG EU-O*/ + RTUNI_ALPHA, /* U+00d7bd: HANGUL JUNGSEONG I-YA-O*/ + RTUNI_ALPHA, /* U+00d7be: HANGUL JUNGSEONG I-YAE*/ + RTUNI_ALPHA, /* U+00d7bf: HANGUL JUNGSEONG I-YEO*/ + RTUNI_ALPHA, /* U+00d7c0: HANGUL JUNGSEONG I-YE*/ + RTUNI_ALPHA, /* U+00d7c1: HANGUL JUNGSEONG I-O-I*/ + RTUNI_ALPHA, /* U+00d7c2: HANGUL JUNGSEONG I-YO*/ + RTUNI_ALPHA, /* U+00d7c3: HANGUL JUNGSEONG I-YU*/ + RTUNI_ALPHA, /* U+00d7c4: HANGUL JUNGSEONG I-I*/ + RTUNI_ALPHA, /* U+00d7c5: HANGUL JUNGSEONG ARAEA-A*/ + RTUNI_ALPHA, /* U+00d7c6: HANGUL JUNGSEONG ARAEA-E*/ + 0, /* U+00d7c7: */ + 0, /* U+00d7c8: */ + 0, /* U+00d7c9: */ + 0, /* U+00d7ca: */ + RTUNI_ALPHA, /* U+00d7cb: HANGUL JONGSEONG NIEUN-RIEUL*/ + RTUNI_ALPHA, /* U+00d7cc: HANGUL JONGSEONG NIEUN-CHIEUCH*/ + RTUNI_ALPHA, /* U+00d7cd: HANGUL JONGSEONG SSANGTIKEUT*/ + RTUNI_ALPHA, /* U+00d7ce: HANGUL JONGSEONG SSANGTIKEUT-PIEUP*/ + RTUNI_ALPHA, /* U+00d7cf: HANGUL JONGSEONG TIKEUT-PIEUP*/ + RTUNI_ALPHA, /* U+00d7d0: HANGUL JONGSEONG TIKEUT-SIOS*/ + RTUNI_ALPHA, /* U+00d7d1: HANGUL JONGSEONG TIKEUT-SIOS-KIYEOK*/ + RTUNI_ALPHA, /* U+00d7d2: HANGUL JONGSEONG TIKEUT-CIEUC*/ + RTUNI_ALPHA, /* U+00d7d3: HANGUL JONGSEONG TIKEUT-CHIEUCH*/ + RTUNI_ALPHA, /* U+00d7d4: HANGUL JONGSEONG TIKEUT-THIEUTH*/ + RTUNI_ALPHA, /* U+00d7d5: HANGUL JONGSEONG RIEUL-SSANGKIYEOK*/ + RTUNI_ALPHA, /* U+00d7d6: HANGUL JONGSEONG RIEUL-KIYEOK-HIEUH*/ + RTUNI_ALPHA, /* U+00d7d7: HANGUL JONGSEONG SSANGRIEUL-KHIEUKH*/ + RTUNI_ALPHA, /* U+00d7d8: HANGUL JONGSEONG RIEUL-MIEUM-HIEUH*/ + RTUNI_ALPHA, /* U+00d7d9: HANGUL JONGSEONG RIEUL-PIEUP-TIKEUT*/ + RTUNI_ALPHA, /* U+00d7da: HANGUL JONGSEONG RIEUL-PIEUP-PHIEUPH*/ + RTUNI_ALPHA, /* U+00d7db: HANGUL JONGSEONG RIEUL-YESIEUNG*/ + RTUNI_ALPHA, /* U+00d7dc: HANGUL JONGSEONG RIEUL-YEORINHIEUH-HIEUH*/ + RTUNI_ALPHA, /* U+00d7dd: HANGUL JONGSEONG KAPYEOUNRIEUL*/ + RTUNI_ALPHA, /* U+00d7de: HANGUL JONGSEONG MIEUM-NIEUN*/ + RTUNI_ALPHA, /* U+00d7df: HANGUL JONGSEONG MIEUM-SSANGNIEUN*/ + RTUNI_ALPHA, /* U+00d7e0: HANGUL JONGSEONG SSANGMIEUM*/ + RTUNI_ALPHA, /* U+00d7e1: HANGUL JONGSEONG MIEUM-PIEUP-SIOS*/ + RTUNI_ALPHA, /* U+00d7e2: HANGUL JONGSEONG MIEUM-CIEUC*/ + RTUNI_ALPHA, /* U+00d7e3: HANGUL JONGSEONG PIEUP-TIKEUT*/ + RTUNI_ALPHA, /* U+00d7e4: HANGUL JONGSEONG PIEUP-RIEUL-PHIEUPH*/ + RTUNI_ALPHA, /* U+00d7e5: HANGUL JONGSEONG PIEUP-MIEUM*/ + RTUNI_ALPHA, /* U+00d7e6: HANGUL JONGSEONG SSANGPIEUP*/ + RTUNI_ALPHA, /* U+00d7e7: HANGUL JONGSEONG PIEUP-SIOS-TIKEUT*/ + RTUNI_ALPHA, /* U+00d7e8: HANGUL JONGSEONG PIEUP-CIEUC*/ + RTUNI_ALPHA, /* U+00d7e9: HANGUL JONGSEONG PIEUP-CHIEUCH*/ + RTUNI_ALPHA, /* U+00d7ea: HANGUL JONGSEONG SIOS-MIEUM*/ + RTUNI_ALPHA, /* U+00d7eb: HANGUL JONGSEONG SIOS-KAPYEOUNPIEUP*/ + RTUNI_ALPHA, /* U+00d7ec: HANGUL JONGSEONG SSANGSIOS-KIYEOK*/ + RTUNI_ALPHA, /* U+00d7ed: HANGUL JONGSEONG SSANGSIOS-TIKEUT*/ + RTUNI_ALPHA, /* U+00d7ee: HANGUL JONGSEONG SIOS-PANSIOS*/ + RTUNI_ALPHA, /* U+00d7ef: HANGUL JONGSEONG SIOS-CIEUC*/ + RTUNI_ALPHA, /* U+00d7f0: HANGUL JONGSEONG SIOS-CHIEUCH*/ + RTUNI_ALPHA, /* U+00d7f1: HANGUL JONGSEONG SIOS-THIEUTH*/ + RTUNI_ALPHA, /* U+00d7f2: HANGUL JONGSEONG SIOS-HIEUH*/ + RTUNI_ALPHA, /* U+00d7f3: HANGUL JONGSEONG PANSIOS-PIEUP*/ + RTUNI_ALPHA, /* U+00d7f4: HANGUL JONGSEONG PANSIOS-KAPYEOUNPIEUP*/ + RTUNI_ALPHA, /* U+00d7f5: HANGUL JONGSEONG YESIEUNG-MIEUM*/ + RTUNI_ALPHA, /* U+00d7f6: HANGUL JONGSEONG YESIEUNG-HIEUH*/ + RTUNI_ALPHA, /* U+00d7f7: HANGUL JONGSEONG CIEUC-PIEUP*/ + RTUNI_ALPHA, /* U+00d7f8: HANGUL JONGSEONG CIEUC-SSANGPIEUP*/ + RTUNI_ALPHA, /* U+00d7f9: HANGUL JONGSEONG SSANGCIEUC*/ + RTUNI_ALPHA, /* U+00d7fa: HANGUL JONGSEONG PHIEUPH-SIOS*/ + RTUNI_ALPHA, /* U+00d7fb: HANGUL JONGSEONG PHIEUPH-THIEUTH*/ +}; + +static const uint8_t g_afRTUniFlags0x00f900[] = +{ + RTUNI_ALPHA, /* U+00f900: CJK COMPATIBILITY IDEOGRAPH-F900*/ + RTUNI_ALPHA, /* U+00f901: CJK COMPATIBILITY IDEOGRAPH-F901*/ + RTUNI_ALPHA, /* U+00f902: CJK COMPATIBILITY IDEOGRAPH-F902*/ + RTUNI_ALPHA, /* U+00f903: CJK COMPATIBILITY IDEOGRAPH-F903*/ + RTUNI_ALPHA, /* U+00f904: CJK COMPATIBILITY IDEOGRAPH-F904*/ + RTUNI_ALPHA, /* U+00f905: CJK COMPATIBILITY IDEOGRAPH-F905*/ + RTUNI_ALPHA, /* U+00f906: CJK COMPATIBILITY IDEOGRAPH-F906*/ + RTUNI_ALPHA, /* U+00f907: CJK COMPATIBILITY IDEOGRAPH-F907*/ + RTUNI_ALPHA, /* U+00f908: CJK COMPATIBILITY IDEOGRAPH-F908*/ + RTUNI_ALPHA, /* U+00f909: CJK COMPATIBILITY IDEOGRAPH-F909*/ + RTUNI_ALPHA, /* U+00f90a: CJK COMPATIBILITY IDEOGRAPH-F90A*/ + RTUNI_ALPHA, /* U+00f90b: CJK COMPATIBILITY IDEOGRAPH-F90B*/ + RTUNI_ALPHA, /* U+00f90c: CJK COMPATIBILITY IDEOGRAPH-F90C*/ + RTUNI_ALPHA, /* U+00f90d: CJK COMPATIBILITY IDEOGRAPH-F90D*/ + RTUNI_ALPHA, /* U+00f90e: CJK COMPATIBILITY IDEOGRAPH-F90E*/ + RTUNI_ALPHA, /* U+00f90f: CJK COMPATIBILITY IDEOGRAPH-F90F*/ + RTUNI_ALPHA, /* U+00f910: CJK COMPATIBILITY IDEOGRAPH-F910*/ + RTUNI_ALPHA, /* U+00f911: CJK COMPATIBILITY IDEOGRAPH-F911*/ + RTUNI_ALPHA, /* U+00f912: CJK COMPATIBILITY IDEOGRAPH-F912*/ + RTUNI_ALPHA, /* U+00f913: CJK COMPATIBILITY IDEOGRAPH-F913*/ + RTUNI_ALPHA, /* U+00f914: CJK COMPATIBILITY IDEOGRAPH-F914*/ + RTUNI_ALPHA, /* U+00f915: CJK COMPATIBILITY IDEOGRAPH-F915*/ + RTUNI_ALPHA, /* U+00f916: CJK COMPATIBILITY IDEOGRAPH-F916*/ + RTUNI_ALPHA, /* U+00f917: CJK COMPATIBILITY IDEOGRAPH-F917*/ + RTUNI_ALPHA, /* U+00f918: CJK COMPATIBILITY IDEOGRAPH-F918*/ + RTUNI_ALPHA, /* U+00f919: CJK COMPATIBILITY IDEOGRAPH-F919*/ + RTUNI_ALPHA, /* U+00f91a: CJK COMPATIBILITY IDEOGRAPH-F91A*/ + RTUNI_ALPHA, /* U+00f91b: CJK COMPATIBILITY IDEOGRAPH-F91B*/ + RTUNI_ALPHA, /* U+00f91c: CJK COMPATIBILITY IDEOGRAPH-F91C*/ + RTUNI_ALPHA, /* U+00f91d: CJK COMPATIBILITY IDEOGRAPH-F91D*/ + RTUNI_ALPHA, /* U+00f91e: CJK COMPATIBILITY IDEOGRAPH-F91E*/ + RTUNI_ALPHA, /* U+00f91f: CJK COMPATIBILITY IDEOGRAPH-F91F*/ + RTUNI_ALPHA, /* U+00f920: CJK COMPATIBILITY IDEOGRAPH-F920*/ + RTUNI_ALPHA, /* U+00f921: CJK COMPATIBILITY IDEOGRAPH-F921*/ + RTUNI_ALPHA, /* U+00f922: CJK COMPATIBILITY IDEOGRAPH-F922*/ + RTUNI_ALPHA, /* U+00f923: CJK COMPATIBILITY IDEOGRAPH-F923*/ + RTUNI_ALPHA, /* U+00f924: CJK COMPATIBILITY IDEOGRAPH-F924*/ + RTUNI_ALPHA, /* U+00f925: CJK COMPATIBILITY IDEOGRAPH-F925*/ + RTUNI_ALPHA, /* U+00f926: CJK COMPATIBILITY IDEOGRAPH-F926*/ + RTUNI_ALPHA, /* U+00f927: CJK COMPATIBILITY IDEOGRAPH-F927*/ + RTUNI_ALPHA, /* U+00f928: CJK COMPATIBILITY IDEOGRAPH-F928*/ + RTUNI_ALPHA, /* U+00f929: CJK COMPATIBILITY IDEOGRAPH-F929*/ + RTUNI_ALPHA, /* U+00f92a: CJK COMPATIBILITY IDEOGRAPH-F92A*/ + RTUNI_ALPHA, /* U+00f92b: CJK COMPATIBILITY IDEOGRAPH-F92B*/ + RTUNI_ALPHA, /* U+00f92c: CJK COMPATIBILITY IDEOGRAPH-F92C*/ + RTUNI_ALPHA, /* U+00f92d: CJK COMPATIBILITY IDEOGRAPH-F92D*/ + RTUNI_ALPHA, /* U+00f92e: CJK COMPATIBILITY IDEOGRAPH-F92E*/ + RTUNI_ALPHA, /* U+00f92f: CJK COMPATIBILITY IDEOGRAPH-F92F*/ + RTUNI_ALPHA, /* U+00f930: CJK COMPATIBILITY IDEOGRAPH-F930*/ + RTUNI_ALPHA, /* U+00f931: CJK COMPATIBILITY IDEOGRAPH-F931*/ + RTUNI_ALPHA, /* U+00f932: CJK COMPATIBILITY IDEOGRAPH-F932*/ + RTUNI_ALPHA, /* U+00f933: CJK COMPATIBILITY IDEOGRAPH-F933*/ + RTUNI_ALPHA, /* U+00f934: CJK COMPATIBILITY IDEOGRAPH-F934*/ + RTUNI_ALPHA, /* U+00f935: CJK COMPATIBILITY IDEOGRAPH-F935*/ + RTUNI_ALPHA, /* U+00f936: CJK COMPATIBILITY IDEOGRAPH-F936*/ + RTUNI_ALPHA, /* U+00f937: CJK COMPATIBILITY IDEOGRAPH-F937*/ + RTUNI_ALPHA, /* U+00f938: CJK COMPATIBILITY IDEOGRAPH-F938*/ + RTUNI_ALPHA, /* U+00f939: CJK COMPATIBILITY IDEOGRAPH-F939*/ + RTUNI_ALPHA, /* U+00f93a: CJK COMPATIBILITY IDEOGRAPH-F93A*/ + RTUNI_ALPHA, /* U+00f93b: CJK COMPATIBILITY IDEOGRAPH-F93B*/ + RTUNI_ALPHA, /* U+00f93c: CJK COMPATIBILITY IDEOGRAPH-F93C*/ + RTUNI_ALPHA, /* U+00f93d: CJK COMPATIBILITY IDEOGRAPH-F93D*/ + RTUNI_ALPHA, /* U+00f93e: CJK COMPATIBILITY IDEOGRAPH-F93E*/ + RTUNI_ALPHA, /* U+00f93f: CJK COMPATIBILITY IDEOGRAPH-F93F*/ + RTUNI_ALPHA, /* U+00f940: CJK COMPATIBILITY IDEOGRAPH-F940*/ + RTUNI_ALPHA, /* U+00f941: CJK COMPATIBILITY IDEOGRAPH-F941*/ + RTUNI_ALPHA, /* U+00f942: CJK COMPATIBILITY IDEOGRAPH-F942*/ + RTUNI_ALPHA, /* U+00f943: CJK COMPATIBILITY IDEOGRAPH-F943*/ + RTUNI_ALPHA, /* U+00f944: CJK COMPATIBILITY IDEOGRAPH-F944*/ + RTUNI_ALPHA, /* U+00f945: CJK COMPATIBILITY IDEOGRAPH-F945*/ + RTUNI_ALPHA, /* U+00f946: CJK COMPATIBILITY IDEOGRAPH-F946*/ + RTUNI_ALPHA, /* U+00f947: CJK COMPATIBILITY IDEOGRAPH-F947*/ + RTUNI_ALPHA, /* U+00f948: CJK COMPATIBILITY IDEOGRAPH-F948*/ + RTUNI_ALPHA, /* U+00f949: CJK COMPATIBILITY IDEOGRAPH-F949*/ + RTUNI_ALPHA, /* U+00f94a: CJK COMPATIBILITY IDEOGRAPH-F94A*/ + RTUNI_ALPHA, /* U+00f94b: CJK COMPATIBILITY IDEOGRAPH-F94B*/ + RTUNI_ALPHA, /* U+00f94c: CJK COMPATIBILITY IDEOGRAPH-F94C*/ + RTUNI_ALPHA, /* U+00f94d: CJK COMPATIBILITY IDEOGRAPH-F94D*/ + RTUNI_ALPHA, /* U+00f94e: CJK COMPATIBILITY IDEOGRAPH-F94E*/ + RTUNI_ALPHA, /* U+00f94f: CJK COMPATIBILITY IDEOGRAPH-F94F*/ + RTUNI_ALPHA, /* U+00f950: CJK COMPATIBILITY IDEOGRAPH-F950*/ + RTUNI_ALPHA, /* U+00f951: CJK COMPATIBILITY IDEOGRAPH-F951*/ + RTUNI_ALPHA, /* U+00f952: CJK COMPATIBILITY IDEOGRAPH-F952*/ + RTUNI_ALPHA, /* U+00f953: CJK COMPATIBILITY IDEOGRAPH-F953*/ + RTUNI_ALPHA, /* U+00f954: CJK COMPATIBILITY IDEOGRAPH-F954*/ + RTUNI_ALPHA, /* U+00f955: CJK COMPATIBILITY IDEOGRAPH-F955*/ + RTUNI_ALPHA, /* U+00f956: CJK COMPATIBILITY IDEOGRAPH-F956*/ + RTUNI_ALPHA, /* U+00f957: CJK COMPATIBILITY IDEOGRAPH-F957*/ + RTUNI_ALPHA, /* U+00f958: CJK COMPATIBILITY IDEOGRAPH-F958*/ + RTUNI_ALPHA, /* U+00f959: CJK COMPATIBILITY IDEOGRAPH-F959*/ + RTUNI_ALPHA, /* U+00f95a: CJK COMPATIBILITY IDEOGRAPH-F95A*/ + RTUNI_ALPHA, /* U+00f95b: CJK COMPATIBILITY IDEOGRAPH-F95B*/ + RTUNI_ALPHA, /* U+00f95c: CJK COMPATIBILITY IDEOGRAPH-F95C*/ + RTUNI_ALPHA, /* U+00f95d: CJK COMPATIBILITY IDEOGRAPH-F95D*/ + RTUNI_ALPHA, /* U+00f95e: CJK COMPATIBILITY IDEOGRAPH-F95E*/ + RTUNI_ALPHA, /* U+00f95f: CJK COMPATIBILITY IDEOGRAPH-F95F*/ + RTUNI_ALPHA, /* U+00f960: CJK COMPATIBILITY IDEOGRAPH-F960*/ + RTUNI_ALPHA, /* U+00f961: CJK COMPATIBILITY IDEOGRAPH-F961*/ + RTUNI_ALPHA, /* U+00f962: CJK COMPATIBILITY IDEOGRAPH-F962*/ + RTUNI_ALPHA, /* U+00f963: CJK COMPATIBILITY IDEOGRAPH-F963*/ + RTUNI_ALPHA, /* U+00f964: CJK COMPATIBILITY IDEOGRAPH-F964*/ + RTUNI_ALPHA, /* U+00f965: CJK COMPATIBILITY IDEOGRAPH-F965*/ + RTUNI_ALPHA, /* U+00f966: CJK COMPATIBILITY IDEOGRAPH-F966*/ + RTUNI_ALPHA, /* U+00f967: CJK COMPATIBILITY IDEOGRAPH-F967*/ + RTUNI_ALPHA, /* U+00f968: CJK COMPATIBILITY IDEOGRAPH-F968*/ + RTUNI_ALPHA, /* U+00f969: CJK COMPATIBILITY IDEOGRAPH-F969*/ + RTUNI_ALPHA, /* U+00f96a: CJK COMPATIBILITY IDEOGRAPH-F96A*/ + RTUNI_ALPHA, /* U+00f96b: CJK COMPATIBILITY IDEOGRAPH-F96B*/ + RTUNI_ALPHA, /* U+00f96c: CJK COMPATIBILITY IDEOGRAPH-F96C*/ + RTUNI_ALPHA, /* U+00f96d: CJK COMPATIBILITY IDEOGRAPH-F96D*/ + RTUNI_ALPHA, /* U+00f96e: CJK COMPATIBILITY IDEOGRAPH-F96E*/ + RTUNI_ALPHA, /* U+00f96f: CJK COMPATIBILITY IDEOGRAPH-F96F*/ + RTUNI_ALPHA, /* U+00f970: CJK COMPATIBILITY IDEOGRAPH-F970*/ + RTUNI_ALPHA, /* U+00f971: CJK COMPATIBILITY IDEOGRAPH-F971*/ + RTUNI_ALPHA, /* U+00f972: CJK COMPATIBILITY IDEOGRAPH-F972*/ + RTUNI_ALPHA, /* U+00f973: CJK COMPATIBILITY IDEOGRAPH-F973*/ + RTUNI_ALPHA, /* U+00f974: CJK COMPATIBILITY IDEOGRAPH-F974*/ + RTUNI_ALPHA, /* U+00f975: CJK COMPATIBILITY IDEOGRAPH-F975*/ + RTUNI_ALPHA, /* U+00f976: CJK COMPATIBILITY IDEOGRAPH-F976*/ + RTUNI_ALPHA, /* U+00f977: CJK COMPATIBILITY IDEOGRAPH-F977*/ + RTUNI_ALPHA, /* U+00f978: CJK COMPATIBILITY IDEOGRAPH-F978*/ + RTUNI_ALPHA, /* U+00f979: CJK COMPATIBILITY IDEOGRAPH-F979*/ + RTUNI_ALPHA, /* U+00f97a: CJK COMPATIBILITY IDEOGRAPH-F97A*/ + RTUNI_ALPHA, /* U+00f97b: CJK COMPATIBILITY IDEOGRAPH-F97B*/ + RTUNI_ALPHA, /* U+00f97c: CJK COMPATIBILITY IDEOGRAPH-F97C*/ + RTUNI_ALPHA, /* U+00f97d: CJK COMPATIBILITY IDEOGRAPH-F97D*/ + RTUNI_ALPHA, /* U+00f97e: CJK COMPATIBILITY IDEOGRAPH-F97E*/ + RTUNI_ALPHA, /* U+00f97f: CJK COMPATIBILITY IDEOGRAPH-F97F*/ + RTUNI_ALPHA, /* U+00f980: CJK COMPATIBILITY IDEOGRAPH-F980*/ + RTUNI_ALPHA, /* U+00f981: CJK COMPATIBILITY IDEOGRAPH-F981*/ + RTUNI_ALPHA, /* U+00f982: CJK COMPATIBILITY IDEOGRAPH-F982*/ + RTUNI_ALPHA, /* U+00f983: CJK COMPATIBILITY IDEOGRAPH-F983*/ + RTUNI_ALPHA, /* U+00f984: CJK COMPATIBILITY IDEOGRAPH-F984*/ + RTUNI_ALPHA, /* U+00f985: CJK COMPATIBILITY IDEOGRAPH-F985*/ + RTUNI_ALPHA, /* U+00f986: CJK COMPATIBILITY IDEOGRAPH-F986*/ + RTUNI_ALPHA, /* U+00f987: CJK COMPATIBILITY IDEOGRAPH-F987*/ + RTUNI_ALPHA, /* U+00f988: CJK COMPATIBILITY IDEOGRAPH-F988*/ + RTUNI_ALPHA, /* U+00f989: CJK COMPATIBILITY IDEOGRAPH-F989*/ + RTUNI_ALPHA, /* U+00f98a: CJK COMPATIBILITY IDEOGRAPH-F98A*/ + RTUNI_ALPHA, /* U+00f98b: CJK COMPATIBILITY IDEOGRAPH-F98B*/ + RTUNI_ALPHA, /* U+00f98c: CJK COMPATIBILITY IDEOGRAPH-F98C*/ + RTUNI_ALPHA, /* U+00f98d: CJK COMPATIBILITY IDEOGRAPH-F98D*/ + RTUNI_ALPHA, /* U+00f98e: CJK COMPATIBILITY IDEOGRAPH-F98E*/ + RTUNI_ALPHA, /* U+00f98f: CJK COMPATIBILITY IDEOGRAPH-F98F*/ + RTUNI_ALPHA, /* U+00f990: CJK COMPATIBILITY IDEOGRAPH-F990*/ + RTUNI_ALPHA, /* U+00f991: CJK COMPATIBILITY IDEOGRAPH-F991*/ + RTUNI_ALPHA, /* U+00f992: CJK COMPATIBILITY IDEOGRAPH-F992*/ + RTUNI_ALPHA, /* U+00f993: CJK COMPATIBILITY IDEOGRAPH-F993*/ + RTUNI_ALPHA, /* U+00f994: CJK COMPATIBILITY IDEOGRAPH-F994*/ + RTUNI_ALPHA, /* U+00f995: CJK COMPATIBILITY IDEOGRAPH-F995*/ + RTUNI_ALPHA, /* U+00f996: CJK COMPATIBILITY IDEOGRAPH-F996*/ + RTUNI_ALPHA, /* U+00f997: CJK COMPATIBILITY IDEOGRAPH-F997*/ + RTUNI_ALPHA, /* U+00f998: CJK COMPATIBILITY IDEOGRAPH-F998*/ + RTUNI_ALPHA, /* U+00f999: CJK COMPATIBILITY IDEOGRAPH-F999*/ + RTUNI_ALPHA, /* U+00f99a: CJK COMPATIBILITY IDEOGRAPH-F99A*/ + RTUNI_ALPHA, /* U+00f99b: CJK COMPATIBILITY IDEOGRAPH-F99B*/ + RTUNI_ALPHA, /* U+00f99c: CJK COMPATIBILITY IDEOGRAPH-F99C*/ + RTUNI_ALPHA, /* U+00f99d: CJK COMPATIBILITY IDEOGRAPH-F99D*/ + RTUNI_ALPHA, /* U+00f99e: CJK COMPATIBILITY IDEOGRAPH-F99E*/ + RTUNI_ALPHA, /* U+00f99f: CJK COMPATIBILITY IDEOGRAPH-F99F*/ + RTUNI_ALPHA, /* U+00f9a0: CJK COMPATIBILITY IDEOGRAPH-F9A0*/ + RTUNI_ALPHA, /* U+00f9a1: CJK COMPATIBILITY IDEOGRAPH-F9A1*/ + RTUNI_ALPHA, /* U+00f9a2: CJK COMPATIBILITY IDEOGRAPH-F9A2*/ + RTUNI_ALPHA, /* U+00f9a3: CJK COMPATIBILITY IDEOGRAPH-F9A3*/ + RTUNI_ALPHA, /* U+00f9a4: CJK COMPATIBILITY IDEOGRAPH-F9A4*/ + RTUNI_ALPHA, /* U+00f9a5: CJK COMPATIBILITY IDEOGRAPH-F9A5*/ + RTUNI_ALPHA, /* U+00f9a6: CJK COMPATIBILITY IDEOGRAPH-F9A6*/ + RTUNI_ALPHA, /* U+00f9a7: CJK COMPATIBILITY IDEOGRAPH-F9A7*/ + RTUNI_ALPHA, /* U+00f9a8: CJK COMPATIBILITY IDEOGRAPH-F9A8*/ + RTUNI_ALPHA, /* U+00f9a9: CJK COMPATIBILITY IDEOGRAPH-F9A9*/ + RTUNI_ALPHA, /* U+00f9aa: CJK COMPATIBILITY IDEOGRAPH-F9AA*/ + RTUNI_ALPHA, /* U+00f9ab: CJK COMPATIBILITY IDEOGRAPH-F9AB*/ + RTUNI_ALPHA, /* U+00f9ac: CJK COMPATIBILITY IDEOGRAPH-F9AC*/ + RTUNI_ALPHA, /* U+00f9ad: CJK COMPATIBILITY IDEOGRAPH-F9AD*/ + RTUNI_ALPHA, /* U+00f9ae: CJK COMPATIBILITY IDEOGRAPH-F9AE*/ + RTUNI_ALPHA, /* U+00f9af: CJK COMPATIBILITY IDEOGRAPH-F9AF*/ + RTUNI_ALPHA, /* U+00f9b0: CJK COMPATIBILITY IDEOGRAPH-F9B0*/ + RTUNI_ALPHA, /* U+00f9b1: CJK COMPATIBILITY IDEOGRAPH-F9B1*/ + RTUNI_ALPHA, /* U+00f9b2: CJK COMPATIBILITY IDEOGRAPH-F9B2*/ + RTUNI_ALPHA, /* U+00f9b3: CJK COMPATIBILITY IDEOGRAPH-F9B3*/ + RTUNI_ALPHA, /* U+00f9b4: CJK COMPATIBILITY IDEOGRAPH-F9B4*/ + RTUNI_ALPHA, /* U+00f9b5: CJK COMPATIBILITY IDEOGRAPH-F9B5*/ + RTUNI_ALPHA, /* U+00f9b6: CJK COMPATIBILITY IDEOGRAPH-F9B6*/ + RTUNI_ALPHA, /* U+00f9b7: CJK COMPATIBILITY IDEOGRAPH-F9B7*/ + RTUNI_ALPHA, /* U+00f9b8: CJK COMPATIBILITY IDEOGRAPH-F9B8*/ + RTUNI_ALPHA, /* U+00f9b9: CJK COMPATIBILITY IDEOGRAPH-F9B9*/ + RTUNI_ALPHA, /* U+00f9ba: CJK COMPATIBILITY IDEOGRAPH-F9BA*/ + RTUNI_ALPHA, /* U+00f9bb: CJK COMPATIBILITY IDEOGRAPH-F9BB*/ + RTUNI_ALPHA, /* U+00f9bc: CJK COMPATIBILITY IDEOGRAPH-F9BC*/ + RTUNI_ALPHA, /* U+00f9bd: CJK COMPATIBILITY IDEOGRAPH-F9BD*/ + RTUNI_ALPHA, /* U+00f9be: CJK COMPATIBILITY IDEOGRAPH-F9BE*/ + RTUNI_ALPHA, /* U+00f9bf: CJK COMPATIBILITY IDEOGRAPH-F9BF*/ + RTUNI_ALPHA, /* U+00f9c0: CJK COMPATIBILITY IDEOGRAPH-F9C0*/ + RTUNI_ALPHA, /* U+00f9c1: CJK COMPATIBILITY IDEOGRAPH-F9C1*/ + RTUNI_ALPHA, /* U+00f9c2: CJK COMPATIBILITY IDEOGRAPH-F9C2*/ + RTUNI_ALPHA, /* U+00f9c3: CJK COMPATIBILITY IDEOGRAPH-F9C3*/ + RTUNI_ALPHA, /* U+00f9c4: CJK COMPATIBILITY IDEOGRAPH-F9C4*/ + RTUNI_ALPHA, /* U+00f9c5: CJK COMPATIBILITY IDEOGRAPH-F9C5*/ + RTUNI_ALPHA, /* U+00f9c6: CJK COMPATIBILITY IDEOGRAPH-F9C6*/ + RTUNI_ALPHA, /* U+00f9c7: CJK COMPATIBILITY IDEOGRAPH-F9C7*/ + RTUNI_ALPHA, /* U+00f9c8: CJK COMPATIBILITY IDEOGRAPH-F9C8*/ + RTUNI_ALPHA, /* U+00f9c9: CJK COMPATIBILITY IDEOGRAPH-F9C9*/ + RTUNI_ALPHA, /* U+00f9ca: CJK COMPATIBILITY IDEOGRAPH-F9CA*/ + RTUNI_ALPHA, /* U+00f9cb: CJK COMPATIBILITY IDEOGRAPH-F9CB*/ + RTUNI_ALPHA, /* U+00f9cc: CJK COMPATIBILITY IDEOGRAPH-F9CC*/ + RTUNI_ALPHA, /* U+00f9cd: CJK COMPATIBILITY IDEOGRAPH-F9CD*/ + RTUNI_ALPHA, /* U+00f9ce: CJK COMPATIBILITY IDEOGRAPH-F9CE*/ + RTUNI_ALPHA, /* U+00f9cf: CJK COMPATIBILITY IDEOGRAPH-F9CF*/ + RTUNI_ALPHA, /* U+00f9d0: CJK COMPATIBILITY IDEOGRAPH-F9D0*/ + RTUNI_ALPHA, /* U+00f9d1: CJK COMPATIBILITY IDEOGRAPH-F9D1*/ + RTUNI_ALPHA, /* U+00f9d2: CJK COMPATIBILITY IDEOGRAPH-F9D2*/ + RTUNI_ALPHA, /* U+00f9d3: CJK COMPATIBILITY IDEOGRAPH-F9D3*/ + RTUNI_ALPHA, /* U+00f9d4: CJK COMPATIBILITY IDEOGRAPH-F9D4*/ + RTUNI_ALPHA, /* U+00f9d5: CJK COMPATIBILITY IDEOGRAPH-F9D5*/ + RTUNI_ALPHA, /* U+00f9d6: CJK COMPATIBILITY IDEOGRAPH-F9D6*/ + RTUNI_ALPHA, /* U+00f9d7: CJK COMPATIBILITY IDEOGRAPH-F9D7*/ + RTUNI_ALPHA, /* U+00f9d8: CJK COMPATIBILITY IDEOGRAPH-F9D8*/ + RTUNI_ALPHA, /* U+00f9d9: CJK COMPATIBILITY IDEOGRAPH-F9D9*/ + RTUNI_ALPHA, /* U+00f9da: CJK COMPATIBILITY IDEOGRAPH-F9DA*/ + RTUNI_ALPHA, /* U+00f9db: CJK COMPATIBILITY IDEOGRAPH-F9DB*/ + RTUNI_ALPHA, /* U+00f9dc: CJK COMPATIBILITY IDEOGRAPH-F9DC*/ + RTUNI_ALPHA, /* U+00f9dd: CJK COMPATIBILITY IDEOGRAPH-F9DD*/ + RTUNI_ALPHA, /* U+00f9de: CJK COMPATIBILITY IDEOGRAPH-F9DE*/ + RTUNI_ALPHA, /* U+00f9df: CJK COMPATIBILITY IDEOGRAPH-F9DF*/ + RTUNI_ALPHA, /* U+00f9e0: CJK COMPATIBILITY IDEOGRAPH-F9E0*/ + RTUNI_ALPHA, /* U+00f9e1: CJK COMPATIBILITY IDEOGRAPH-F9E1*/ + RTUNI_ALPHA, /* U+00f9e2: CJK COMPATIBILITY IDEOGRAPH-F9E2*/ + RTUNI_ALPHA, /* U+00f9e3: CJK COMPATIBILITY IDEOGRAPH-F9E3*/ + RTUNI_ALPHA, /* U+00f9e4: CJK COMPATIBILITY IDEOGRAPH-F9E4*/ + RTUNI_ALPHA, /* U+00f9e5: CJK COMPATIBILITY IDEOGRAPH-F9E5*/ + RTUNI_ALPHA, /* U+00f9e6: CJK COMPATIBILITY IDEOGRAPH-F9E6*/ + RTUNI_ALPHA, /* U+00f9e7: CJK COMPATIBILITY IDEOGRAPH-F9E7*/ + RTUNI_ALPHA, /* U+00f9e8: CJK COMPATIBILITY IDEOGRAPH-F9E8*/ + RTUNI_ALPHA, /* U+00f9e9: CJK COMPATIBILITY IDEOGRAPH-F9E9*/ + RTUNI_ALPHA, /* U+00f9ea: CJK COMPATIBILITY IDEOGRAPH-F9EA*/ + RTUNI_ALPHA, /* U+00f9eb: CJK COMPATIBILITY IDEOGRAPH-F9EB*/ + RTUNI_ALPHA, /* U+00f9ec: CJK COMPATIBILITY IDEOGRAPH-F9EC*/ + RTUNI_ALPHA, /* U+00f9ed: CJK COMPATIBILITY IDEOGRAPH-F9ED*/ + RTUNI_ALPHA, /* U+00f9ee: CJK COMPATIBILITY IDEOGRAPH-F9EE*/ + RTUNI_ALPHA, /* U+00f9ef: CJK COMPATIBILITY IDEOGRAPH-F9EF*/ + RTUNI_ALPHA, /* U+00f9f0: CJK COMPATIBILITY IDEOGRAPH-F9F0*/ + RTUNI_ALPHA, /* U+00f9f1: CJK COMPATIBILITY IDEOGRAPH-F9F1*/ + RTUNI_ALPHA, /* U+00f9f2: CJK COMPATIBILITY IDEOGRAPH-F9F2*/ + RTUNI_ALPHA, /* U+00f9f3: CJK COMPATIBILITY IDEOGRAPH-F9F3*/ + RTUNI_ALPHA, /* U+00f9f4: CJK COMPATIBILITY IDEOGRAPH-F9F4*/ + RTUNI_ALPHA, /* U+00f9f5: CJK COMPATIBILITY IDEOGRAPH-F9F5*/ + RTUNI_ALPHA, /* U+00f9f6: CJK COMPATIBILITY IDEOGRAPH-F9F6*/ + RTUNI_ALPHA, /* U+00f9f7: CJK COMPATIBILITY IDEOGRAPH-F9F7*/ + RTUNI_ALPHA, /* U+00f9f8: CJK COMPATIBILITY IDEOGRAPH-F9F8*/ + RTUNI_ALPHA, /* U+00f9f9: CJK COMPATIBILITY IDEOGRAPH-F9F9*/ + RTUNI_ALPHA, /* U+00f9fa: CJK COMPATIBILITY IDEOGRAPH-F9FA*/ + RTUNI_ALPHA, /* U+00f9fb: CJK COMPATIBILITY IDEOGRAPH-F9FB*/ + RTUNI_ALPHA, /* U+00f9fc: CJK COMPATIBILITY IDEOGRAPH-F9FC*/ + RTUNI_ALPHA, /* U+00f9fd: CJK COMPATIBILITY IDEOGRAPH-F9FD*/ + RTUNI_ALPHA, /* U+00f9fe: CJK COMPATIBILITY IDEOGRAPH-F9FE*/ + RTUNI_ALPHA, /* U+00f9ff: CJK COMPATIBILITY IDEOGRAPH-F9FF*/ + RTUNI_ALPHA, /* U+00fa00: CJK COMPATIBILITY IDEOGRAPH-FA00*/ + RTUNI_ALPHA, /* U+00fa01: CJK COMPATIBILITY IDEOGRAPH-FA01*/ + RTUNI_ALPHA, /* U+00fa02: CJK COMPATIBILITY IDEOGRAPH-FA02*/ + RTUNI_ALPHA, /* U+00fa03: CJK COMPATIBILITY IDEOGRAPH-FA03*/ + RTUNI_ALPHA, /* U+00fa04: CJK COMPATIBILITY IDEOGRAPH-FA04*/ + RTUNI_ALPHA, /* U+00fa05: CJK COMPATIBILITY IDEOGRAPH-FA05*/ + RTUNI_ALPHA, /* U+00fa06: CJK COMPATIBILITY IDEOGRAPH-FA06*/ + RTUNI_ALPHA, /* U+00fa07: CJK COMPATIBILITY IDEOGRAPH-FA07*/ + RTUNI_ALPHA, /* U+00fa08: CJK COMPATIBILITY IDEOGRAPH-FA08*/ + RTUNI_ALPHA, /* U+00fa09: CJK COMPATIBILITY IDEOGRAPH-FA09*/ + RTUNI_ALPHA, /* U+00fa0a: CJK COMPATIBILITY IDEOGRAPH-FA0A*/ + RTUNI_ALPHA, /* U+00fa0b: CJK COMPATIBILITY IDEOGRAPH-FA0B*/ + RTUNI_ALPHA, /* U+00fa0c: CJK COMPATIBILITY IDEOGRAPH-FA0C*/ + RTUNI_ALPHA, /* U+00fa0d: CJK COMPATIBILITY IDEOGRAPH-FA0D*/ + RTUNI_ALPHA, /* U+00fa0e: CJK COMPATIBILITY IDEOGRAPH-FA0E*/ + RTUNI_ALPHA, /* U+00fa0f: CJK COMPATIBILITY IDEOGRAPH-FA0F*/ + RTUNI_ALPHA, /* U+00fa10: CJK COMPATIBILITY IDEOGRAPH-FA10*/ + RTUNI_ALPHA, /* U+00fa11: CJK COMPATIBILITY IDEOGRAPH-FA11*/ + RTUNI_ALPHA, /* U+00fa12: CJK COMPATIBILITY IDEOGRAPH-FA12*/ + RTUNI_ALPHA, /* U+00fa13: CJK COMPATIBILITY IDEOGRAPH-FA13*/ + RTUNI_ALPHA, /* U+00fa14: CJK COMPATIBILITY IDEOGRAPH-FA14*/ + RTUNI_ALPHA, /* U+00fa15: CJK COMPATIBILITY IDEOGRAPH-FA15*/ + RTUNI_ALPHA, /* U+00fa16: CJK COMPATIBILITY IDEOGRAPH-FA16*/ + RTUNI_ALPHA, /* U+00fa17: CJK COMPATIBILITY IDEOGRAPH-FA17*/ + RTUNI_ALPHA, /* U+00fa18: CJK COMPATIBILITY IDEOGRAPH-FA18*/ + RTUNI_ALPHA, /* U+00fa19: CJK COMPATIBILITY IDEOGRAPH-FA19*/ + RTUNI_ALPHA, /* U+00fa1a: CJK COMPATIBILITY IDEOGRAPH-FA1A*/ + RTUNI_ALPHA, /* U+00fa1b: CJK COMPATIBILITY IDEOGRAPH-FA1B*/ + RTUNI_ALPHA, /* U+00fa1c: CJK COMPATIBILITY IDEOGRAPH-FA1C*/ + RTUNI_ALPHA, /* U+00fa1d: CJK COMPATIBILITY IDEOGRAPH-FA1D*/ + RTUNI_ALPHA, /* U+00fa1e: CJK COMPATIBILITY IDEOGRAPH-FA1E*/ + RTUNI_ALPHA, /* U+00fa1f: CJK COMPATIBILITY IDEOGRAPH-FA1F*/ + RTUNI_ALPHA, /* U+00fa20: CJK COMPATIBILITY IDEOGRAPH-FA20*/ + RTUNI_ALPHA, /* U+00fa21: CJK COMPATIBILITY IDEOGRAPH-FA21*/ + RTUNI_ALPHA, /* U+00fa22: CJK COMPATIBILITY IDEOGRAPH-FA22*/ + RTUNI_ALPHA, /* U+00fa23: CJK COMPATIBILITY IDEOGRAPH-FA23*/ + RTUNI_ALPHA, /* U+00fa24: CJK COMPATIBILITY IDEOGRAPH-FA24*/ + RTUNI_ALPHA, /* U+00fa25: CJK COMPATIBILITY IDEOGRAPH-FA25*/ + RTUNI_ALPHA, /* U+00fa26: CJK COMPATIBILITY IDEOGRAPH-FA26*/ + RTUNI_ALPHA, /* U+00fa27: CJK COMPATIBILITY IDEOGRAPH-FA27*/ + RTUNI_ALPHA, /* U+00fa28: CJK COMPATIBILITY IDEOGRAPH-FA28*/ + RTUNI_ALPHA, /* U+00fa29: CJK COMPATIBILITY IDEOGRAPH-FA29*/ + RTUNI_ALPHA, /* U+00fa2a: CJK COMPATIBILITY IDEOGRAPH-FA2A*/ + RTUNI_ALPHA, /* U+00fa2b: CJK COMPATIBILITY IDEOGRAPH-FA2B*/ + RTUNI_ALPHA, /* U+00fa2c: CJK COMPATIBILITY IDEOGRAPH-FA2C*/ + RTUNI_ALPHA, /* U+00fa2d: CJK COMPATIBILITY IDEOGRAPH-FA2D*/ + RTUNI_ALPHA, /* U+00fa2e: CJK COMPATIBILITY IDEOGRAPH-FA2E*/ + RTUNI_ALPHA, /* U+00fa2f: CJK COMPATIBILITY IDEOGRAPH-FA2F*/ + RTUNI_ALPHA, /* U+00fa30: CJK COMPATIBILITY IDEOGRAPH-FA30*/ + RTUNI_ALPHA, /* U+00fa31: CJK COMPATIBILITY IDEOGRAPH-FA31*/ + RTUNI_ALPHA, /* U+00fa32: CJK COMPATIBILITY IDEOGRAPH-FA32*/ + RTUNI_ALPHA, /* U+00fa33: CJK COMPATIBILITY IDEOGRAPH-FA33*/ + RTUNI_ALPHA, /* U+00fa34: CJK COMPATIBILITY IDEOGRAPH-FA34*/ + RTUNI_ALPHA, /* U+00fa35: CJK COMPATIBILITY IDEOGRAPH-FA35*/ + RTUNI_ALPHA, /* U+00fa36: CJK COMPATIBILITY IDEOGRAPH-FA36*/ + RTUNI_ALPHA, /* U+00fa37: CJK COMPATIBILITY IDEOGRAPH-FA37*/ + RTUNI_ALPHA, /* U+00fa38: CJK COMPATIBILITY IDEOGRAPH-FA38*/ + RTUNI_ALPHA, /* U+00fa39: CJK COMPATIBILITY IDEOGRAPH-FA39*/ + RTUNI_ALPHA, /* U+00fa3a: CJK COMPATIBILITY IDEOGRAPH-FA3A*/ + RTUNI_ALPHA, /* U+00fa3b: CJK COMPATIBILITY IDEOGRAPH-FA3B*/ + RTUNI_ALPHA, /* U+00fa3c: CJK COMPATIBILITY IDEOGRAPH-FA3C*/ + RTUNI_ALPHA, /* U+00fa3d: CJK COMPATIBILITY IDEOGRAPH-FA3D*/ + RTUNI_ALPHA, /* U+00fa3e: CJK COMPATIBILITY IDEOGRAPH-FA3E*/ + RTUNI_ALPHA, /* U+00fa3f: CJK COMPATIBILITY IDEOGRAPH-FA3F*/ + RTUNI_ALPHA, /* U+00fa40: CJK COMPATIBILITY IDEOGRAPH-FA40*/ + RTUNI_ALPHA, /* U+00fa41: CJK COMPATIBILITY IDEOGRAPH-FA41*/ + RTUNI_ALPHA, /* U+00fa42: CJK COMPATIBILITY IDEOGRAPH-FA42*/ + RTUNI_ALPHA, /* U+00fa43: CJK COMPATIBILITY IDEOGRAPH-FA43*/ + RTUNI_ALPHA, /* U+00fa44: CJK COMPATIBILITY IDEOGRAPH-FA44*/ + RTUNI_ALPHA, /* U+00fa45: CJK COMPATIBILITY IDEOGRAPH-FA45*/ + RTUNI_ALPHA, /* U+00fa46: CJK COMPATIBILITY IDEOGRAPH-FA46*/ + RTUNI_ALPHA, /* U+00fa47: CJK COMPATIBILITY IDEOGRAPH-FA47*/ + RTUNI_ALPHA, /* U+00fa48: CJK COMPATIBILITY IDEOGRAPH-FA48*/ + RTUNI_ALPHA, /* U+00fa49: CJK COMPATIBILITY IDEOGRAPH-FA49*/ + RTUNI_ALPHA, /* U+00fa4a: CJK COMPATIBILITY IDEOGRAPH-FA4A*/ + RTUNI_ALPHA, /* U+00fa4b: CJK COMPATIBILITY IDEOGRAPH-FA4B*/ + RTUNI_ALPHA, /* U+00fa4c: CJK COMPATIBILITY IDEOGRAPH-FA4C*/ + RTUNI_ALPHA, /* U+00fa4d: CJK COMPATIBILITY IDEOGRAPH-FA4D*/ + RTUNI_ALPHA, /* U+00fa4e: CJK COMPATIBILITY IDEOGRAPH-FA4E*/ + RTUNI_ALPHA, /* U+00fa4f: CJK COMPATIBILITY IDEOGRAPH-FA4F*/ + RTUNI_ALPHA, /* U+00fa50: CJK COMPATIBILITY IDEOGRAPH-FA50*/ + RTUNI_ALPHA, /* U+00fa51: CJK COMPATIBILITY IDEOGRAPH-FA51*/ + RTUNI_ALPHA, /* U+00fa52: CJK COMPATIBILITY IDEOGRAPH-FA52*/ + RTUNI_ALPHA, /* U+00fa53: CJK COMPATIBILITY IDEOGRAPH-FA53*/ + RTUNI_ALPHA, /* U+00fa54: CJK COMPATIBILITY IDEOGRAPH-FA54*/ + RTUNI_ALPHA, /* U+00fa55: CJK COMPATIBILITY IDEOGRAPH-FA55*/ + RTUNI_ALPHA, /* U+00fa56: CJK COMPATIBILITY IDEOGRAPH-FA56*/ + RTUNI_ALPHA, /* U+00fa57: CJK COMPATIBILITY IDEOGRAPH-FA57*/ + RTUNI_ALPHA, /* U+00fa58: CJK COMPATIBILITY IDEOGRAPH-FA58*/ + RTUNI_ALPHA, /* U+00fa59: CJK COMPATIBILITY IDEOGRAPH-FA59*/ + RTUNI_ALPHA, /* U+00fa5a: CJK COMPATIBILITY IDEOGRAPH-FA5A*/ + RTUNI_ALPHA, /* U+00fa5b: CJK COMPATIBILITY IDEOGRAPH-FA5B*/ + RTUNI_ALPHA, /* U+00fa5c: CJK COMPATIBILITY IDEOGRAPH-FA5C*/ + RTUNI_ALPHA, /* U+00fa5d: CJK COMPATIBILITY IDEOGRAPH-FA5D*/ + RTUNI_ALPHA, /* U+00fa5e: CJK COMPATIBILITY IDEOGRAPH-FA5E*/ + RTUNI_ALPHA, /* U+00fa5f: CJK COMPATIBILITY IDEOGRAPH-FA5F*/ + RTUNI_ALPHA, /* U+00fa60: CJK COMPATIBILITY IDEOGRAPH-FA60*/ + RTUNI_ALPHA, /* U+00fa61: CJK COMPATIBILITY IDEOGRAPH-FA61*/ + RTUNI_ALPHA, /* U+00fa62: CJK COMPATIBILITY IDEOGRAPH-FA62*/ + RTUNI_ALPHA, /* U+00fa63: CJK COMPATIBILITY IDEOGRAPH-FA63*/ + RTUNI_ALPHA, /* U+00fa64: CJK COMPATIBILITY IDEOGRAPH-FA64*/ + RTUNI_ALPHA, /* U+00fa65: CJK COMPATIBILITY IDEOGRAPH-FA65*/ + RTUNI_ALPHA, /* U+00fa66: CJK COMPATIBILITY IDEOGRAPH-FA66*/ + RTUNI_ALPHA, /* U+00fa67: CJK COMPATIBILITY IDEOGRAPH-FA67*/ + RTUNI_ALPHA, /* U+00fa68: CJK COMPATIBILITY IDEOGRAPH-FA68*/ + RTUNI_ALPHA, /* U+00fa69: CJK COMPATIBILITY IDEOGRAPH-FA69*/ + RTUNI_ALPHA, /* U+00fa6a: CJK COMPATIBILITY IDEOGRAPH-FA6A*/ + RTUNI_ALPHA, /* U+00fa6b: CJK COMPATIBILITY IDEOGRAPH-FA6B*/ + RTUNI_ALPHA, /* U+00fa6c: CJK COMPATIBILITY IDEOGRAPH-FA6C*/ + RTUNI_ALPHA, /* U+00fa6d: CJK COMPATIBILITY IDEOGRAPH-FA6D*/ + 0, /* U+00fa6e: */ + 0, /* U+00fa6f: */ + RTUNI_ALPHA, /* U+00fa70: CJK COMPATIBILITY IDEOGRAPH-FA70*/ + RTUNI_ALPHA, /* U+00fa71: CJK COMPATIBILITY IDEOGRAPH-FA71*/ + RTUNI_ALPHA, /* U+00fa72: CJK COMPATIBILITY IDEOGRAPH-FA72*/ + RTUNI_ALPHA, /* U+00fa73: CJK COMPATIBILITY IDEOGRAPH-FA73*/ + RTUNI_ALPHA, /* U+00fa74: CJK COMPATIBILITY IDEOGRAPH-FA74*/ + RTUNI_ALPHA, /* U+00fa75: CJK COMPATIBILITY IDEOGRAPH-FA75*/ + RTUNI_ALPHA, /* U+00fa76: CJK COMPATIBILITY IDEOGRAPH-FA76*/ + RTUNI_ALPHA, /* U+00fa77: CJK COMPATIBILITY IDEOGRAPH-FA77*/ + RTUNI_ALPHA, /* U+00fa78: CJK COMPATIBILITY IDEOGRAPH-FA78*/ + RTUNI_ALPHA, /* U+00fa79: CJK COMPATIBILITY IDEOGRAPH-FA79*/ + RTUNI_ALPHA, /* U+00fa7a: CJK COMPATIBILITY IDEOGRAPH-FA7A*/ + RTUNI_ALPHA, /* U+00fa7b: CJK COMPATIBILITY IDEOGRAPH-FA7B*/ + RTUNI_ALPHA, /* U+00fa7c: CJK COMPATIBILITY IDEOGRAPH-FA7C*/ + RTUNI_ALPHA, /* U+00fa7d: CJK COMPATIBILITY IDEOGRAPH-FA7D*/ + RTUNI_ALPHA, /* U+00fa7e: CJK COMPATIBILITY IDEOGRAPH-FA7E*/ + RTUNI_ALPHA, /* U+00fa7f: CJK COMPATIBILITY IDEOGRAPH-FA7F*/ + RTUNI_ALPHA, /* U+00fa80: CJK COMPATIBILITY IDEOGRAPH-FA80*/ + RTUNI_ALPHA, /* U+00fa81: CJK COMPATIBILITY IDEOGRAPH-FA81*/ + RTUNI_ALPHA, /* U+00fa82: CJK COMPATIBILITY IDEOGRAPH-FA82*/ + RTUNI_ALPHA, /* U+00fa83: CJK COMPATIBILITY IDEOGRAPH-FA83*/ + RTUNI_ALPHA, /* U+00fa84: CJK COMPATIBILITY IDEOGRAPH-FA84*/ + RTUNI_ALPHA, /* U+00fa85: CJK COMPATIBILITY IDEOGRAPH-FA85*/ + RTUNI_ALPHA, /* U+00fa86: CJK COMPATIBILITY IDEOGRAPH-FA86*/ + RTUNI_ALPHA, /* U+00fa87: CJK COMPATIBILITY IDEOGRAPH-FA87*/ + RTUNI_ALPHA, /* U+00fa88: CJK COMPATIBILITY IDEOGRAPH-FA88*/ + RTUNI_ALPHA, /* U+00fa89: CJK COMPATIBILITY IDEOGRAPH-FA89*/ + RTUNI_ALPHA, /* U+00fa8a: CJK COMPATIBILITY IDEOGRAPH-FA8A*/ + RTUNI_ALPHA, /* U+00fa8b: CJK COMPATIBILITY IDEOGRAPH-FA8B*/ + RTUNI_ALPHA, /* U+00fa8c: CJK COMPATIBILITY IDEOGRAPH-FA8C*/ + RTUNI_ALPHA, /* U+00fa8d: CJK COMPATIBILITY IDEOGRAPH-FA8D*/ + RTUNI_ALPHA, /* U+00fa8e: CJK COMPATIBILITY IDEOGRAPH-FA8E*/ + RTUNI_ALPHA, /* U+00fa8f: CJK COMPATIBILITY IDEOGRAPH-FA8F*/ + RTUNI_ALPHA, /* U+00fa90: CJK COMPATIBILITY IDEOGRAPH-FA90*/ + RTUNI_ALPHA, /* U+00fa91: CJK COMPATIBILITY IDEOGRAPH-FA91*/ + RTUNI_ALPHA, /* U+00fa92: CJK COMPATIBILITY IDEOGRAPH-FA92*/ + RTUNI_ALPHA, /* U+00fa93: CJK COMPATIBILITY IDEOGRAPH-FA93*/ + RTUNI_ALPHA, /* U+00fa94: CJK COMPATIBILITY IDEOGRAPH-FA94*/ + RTUNI_ALPHA, /* U+00fa95: CJK COMPATIBILITY IDEOGRAPH-FA95*/ + RTUNI_ALPHA, /* U+00fa96: CJK COMPATIBILITY IDEOGRAPH-FA96*/ + RTUNI_ALPHA, /* U+00fa97: CJK COMPATIBILITY IDEOGRAPH-FA97*/ + RTUNI_ALPHA, /* U+00fa98: CJK COMPATIBILITY IDEOGRAPH-FA98*/ + RTUNI_ALPHA, /* U+00fa99: CJK COMPATIBILITY IDEOGRAPH-FA99*/ + RTUNI_ALPHA, /* U+00fa9a: CJK COMPATIBILITY IDEOGRAPH-FA9A*/ + RTUNI_ALPHA, /* U+00fa9b: CJK COMPATIBILITY IDEOGRAPH-FA9B*/ + RTUNI_ALPHA, /* U+00fa9c: CJK COMPATIBILITY IDEOGRAPH-FA9C*/ + RTUNI_ALPHA, /* U+00fa9d: CJK COMPATIBILITY IDEOGRAPH-FA9D*/ + RTUNI_ALPHA, /* U+00fa9e: CJK COMPATIBILITY IDEOGRAPH-FA9E*/ + RTUNI_ALPHA, /* U+00fa9f: CJK COMPATIBILITY IDEOGRAPH-FA9F*/ + RTUNI_ALPHA, /* U+00faa0: CJK COMPATIBILITY IDEOGRAPH-FAA0*/ + RTUNI_ALPHA, /* U+00faa1: CJK COMPATIBILITY IDEOGRAPH-FAA1*/ + RTUNI_ALPHA, /* U+00faa2: CJK COMPATIBILITY IDEOGRAPH-FAA2*/ + RTUNI_ALPHA, /* U+00faa3: CJK COMPATIBILITY IDEOGRAPH-FAA3*/ + RTUNI_ALPHA, /* U+00faa4: CJK COMPATIBILITY IDEOGRAPH-FAA4*/ + RTUNI_ALPHA, /* U+00faa5: CJK COMPATIBILITY IDEOGRAPH-FAA5*/ + RTUNI_ALPHA, /* U+00faa6: CJK COMPATIBILITY IDEOGRAPH-FAA6*/ + RTUNI_ALPHA, /* U+00faa7: CJK COMPATIBILITY IDEOGRAPH-FAA7*/ + RTUNI_ALPHA, /* U+00faa8: CJK COMPATIBILITY IDEOGRAPH-FAA8*/ + RTUNI_ALPHA, /* U+00faa9: CJK COMPATIBILITY IDEOGRAPH-FAA9*/ + RTUNI_ALPHA, /* U+00faaa: CJK COMPATIBILITY IDEOGRAPH-FAAA*/ + RTUNI_ALPHA, /* U+00faab: CJK COMPATIBILITY IDEOGRAPH-FAAB*/ + RTUNI_ALPHA, /* U+00faac: CJK COMPATIBILITY IDEOGRAPH-FAAC*/ + RTUNI_ALPHA, /* U+00faad: CJK COMPATIBILITY IDEOGRAPH-FAAD*/ + RTUNI_ALPHA, /* U+00faae: CJK COMPATIBILITY IDEOGRAPH-FAAE*/ + RTUNI_ALPHA, /* U+00faaf: CJK COMPATIBILITY IDEOGRAPH-FAAF*/ + RTUNI_ALPHA, /* U+00fab0: CJK COMPATIBILITY IDEOGRAPH-FAB0*/ + RTUNI_ALPHA, /* U+00fab1: CJK COMPATIBILITY IDEOGRAPH-FAB1*/ + RTUNI_ALPHA, /* U+00fab2: CJK COMPATIBILITY IDEOGRAPH-FAB2*/ + RTUNI_ALPHA, /* U+00fab3: CJK COMPATIBILITY IDEOGRAPH-FAB3*/ + RTUNI_ALPHA, /* U+00fab4: CJK COMPATIBILITY IDEOGRAPH-FAB4*/ + RTUNI_ALPHA, /* U+00fab5: CJK COMPATIBILITY IDEOGRAPH-FAB5*/ + RTUNI_ALPHA, /* U+00fab6: CJK COMPATIBILITY IDEOGRAPH-FAB6*/ + RTUNI_ALPHA, /* U+00fab7: CJK COMPATIBILITY IDEOGRAPH-FAB7*/ + RTUNI_ALPHA, /* U+00fab8: CJK COMPATIBILITY IDEOGRAPH-FAB8*/ + RTUNI_ALPHA, /* U+00fab9: CJK COMPATIBILITY IDEOGRAPH-FAB9*/ + RTUNI_ALPHA, /* U+00faba: CJK COMPATIBILITY IDEOGRAPH-FABA*/ + RTUNI_ALPHA, /* U+00fabb: CJK COMPATIBILITY IDEOGRAPH-FABB*/ + RTUNI_ALPHA, /* U+00fabc: CJK COMPATIBILITY IDEOGRAPH-FABC*/ + RTUNI_ALPHA, /* U+00fabd: CJK COMPATIBILITY IDEOGRAPH-FABD*/ + RTUNI_ALPHA, /* U+00fabe: CJK COMPATIBILITY IDEOGRAPH-FABE*/ + RTUNI_ALPHA, /* U+00fabf: CJK COMPATIBILITY IDEOGRAPH-FABF*/ + RTUNI_ALPHA, /* U+00fac0: CJK COMPATIBILITY IDEOGRAPH-FAC0*/ + RTUNI_ALPHA, /* U+00fac1: CJK COMPATIBILITY IDEOGRAPH-FAC1*/ + RTUNI_ALPHA, /* U+00fac2: CJK COMPATIBILITY IDEOGRAPH-FAC2*/ + RTUNI_ALPHA, /* U+00fac3: CJK COMPATIBILITY IDEOGRAPH-FAC3*/ + RTUNI_ALPHA, /* U+00fac4: CJK COMPATIBILITY IDEOGRAPH-FAC4*/ + RTUNI_ALPHA, /* U+00fac5: CJK COMPATIBILITY IDEOGRAPH-FAC5*/ + RTUNI_ALPHA, /* U+00fac6: CJK COMPATIBILITY IDEOGRAPH-FAC6*/ + RTUNI_ALPHA, /* U+00fac7: CJK COMPATIBILITY IDEOGRAPH-FAC7*/ + RTUNI_ALPHA, /* U+00fac8: CJK COMPATIBILITY IDEOGRAPH-FAC8*/ + RTUNI_ALPHA, /* U+00fac9: CJK COMPATIBILITY IDEOGRAPH-FAC9*/ + RTUNI_ALPHA, /* U+00faca: CJK COMPATIBILITY IDEOGRAPH-FACA*/ + RTUNI_ALPHA, /* U+00facb: CJK COMPATIBILITY IDEOGRAPH-FACB*/ + RTUNI_ALPHA, /* U+00facc: CJK COMPATIBILITY IDEOGRAPH-FACC*/ + RTUNI_ALPHA, /* U+00facd: CJK COMPATIBILITY IDEOGRAPH-FACD*/ + RTUNI_ALPHA, /* U+00face: CJK COMPATIBILITY IDEOGRAPH-FACE*/ + RTUNI_ALPHA, /* U+00facf: CJK COMPATIBILITY IDEOGRAPH-FACF*/ + RTUNI_ALPHA, /* U+00fad0: CJK COMPATIBILITY IDEOGRAPH-FAD0*/ + RTUNI_ALPHA, /* U+00fad1: CJK COMPATIBILITY IDEOGRAPH-FAD1*/ + RTUNI_ALPHA, /* U+00fad2: CJK COMPATIBILITY IDEOGRAPH-FAD2*/ + RTUNI_ALPHA, /* U+00fad3: CJK COMPATIBILITY IDEOGRAPH-FAD3*/ + RTUNI_ALPHA, /* U+00fad4: CJK COMPATIBILITY IDEOGRAPH-FAD4*/ + RTUNI_ALPHA, /* U+00fad5: CJK COMPATIBILITY IDEOGRAPH-FAD5*/ + RTUNI_ALPHA, /* U+00fad6: CJK COMPATIBILITY IDEOGRAPH-FAD6*/ + RTUNI_ALPHA, /* U+00fad7: CJK COMPATIBILITY IDEOGRAPH-FAD7*/ + RTUNI_ALPHA, /* U+00fad8: CJK COMPATIBILITY IDEOGRAPH-FAD8*/ + RTUNI_ALPHA, /* U+00fad9: CJK COMPATIBILITY IDEOGRAPH-FAD9*/ + 0, /* U+00fada: */ + 0, /* U+00fadb: */ + 0, /* U+00fadc: */ + 0, /* U+00fadd: */ + 0, /* U+00fade: */ + 0, /* U+00fadf: */ + 0, /* U+00fae0: */ + 0, /* U+00fae1: */ + 0, /* U+00fae2: */ + 0, /* U+00fae3: */ + 0, /* U+00fae4: */ + 0, /* U+00fae5: */ + 0, /* U+00fae6: */ + 0, /* U+00fae7: */ + 0, /* U+00fae8: */ + 0, /* U+00fae9: */ + 0, /* U+00faea: */ + 0, /* U+00faeb: */ + 0, /* U+00faec: */ + 0, /* U+00faed: */ + 0, /* U+00faee: */ + 0, /* U+00faef: */ + 0, /* U+00faf0: */ + 0, /* U+00faf1: */ + 0, /* U+00faf2: */ + 0, /* U+00faf3: */ + 0, /* U+00faf4: */ + 0, /* U+00faf5: */ + 0, /* U+00faf6: */ + 0, /* U+00faf7: */ + 0, /* U+00faf8: */ + 0, /* U+00faf9: */ + 0, /* U+00fafa: */ + 0, /* U+00fafb: */ + 0, /* U+00fafc: */ + 0, /* U+00fafd: */ + 0, /* U+00fafe: */ + 0, /* U+00faff: */ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00fb00: LATIN SMALL LIGATURE FF*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00fb01: LATIN SMALL LIGATURE FI*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00fb02: LATIN SMALL LIGATURE FL*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00fb03: LATIN SMALL LIGATURE FFI*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00fb04: LATIN SMALL LIGATURE FFL*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00fb05: LATIN SMALL LIGATURE LONG S T*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00fb06: LATIN SMALL LIGATURE ST*/ + 0, /* U+00fb07: */ + 0, /* U+00fb08: */ + 0, /* U+00fb09: */ + 0, /* U+00fb0a: */ + 0, /* U+00fb0b: */ + 0, /* U+00fb0c: */ + 0, /* U+00fb0d: */ + 0, /* U+00fb0e: */ + 0, /* U+00fb0f: */ + 0, /* U+00fb10: */ + 0, /* U+00fb11: */ + 0, /* U+00fb12: */ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00fb13: ARMENIAN SMALL LIGATURE MEN NOW*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00fb14: ARMENIAN SMALL LIGATURE MEN ECH*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00fb15: ARMENIAN SMALL LIGATURE MEN INI*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00fb16: ARMENIAN SMALL LIGATURE VEW NOW*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00fb17: ARMENIAN SMALL LIGATURE MEN XEH*/ + 0, /* U+00fb18: */ + 0, /* U+00fb19: */ + 0, /* U+00fb1a: */ + 0, /* U+00fb1b: */ + 0, /* U+00fb1c: */ + RTUNI_ALPHA, /* U+00fb1d: HEBREW LETTER YOD WITH HIRIQ*/ + RTUNI_ALPHA, /* U+00fb1e: HEBREW POINT JUDEO-SPANISH VARIKA*/ + RTUNI_ALPHA, /* U+00fb1f: HEBREW LIGATURE YIDDISH YOD YOD PATAH*/ + RTUNI_ALPHA, /* U+00fb20: HEBREW LETTER ALTERNATIVE AYIN*/ + RTUNI_ALPHA, /* U+00fb21: HEBREW LETTER WIDE ALEF*/ + RTUNI_ALPHA, /* U+00fb22: HEBREW LETTER WIDE DALET*/ + RTUNI_ALPHA, /* U+00fb23: HEBREW LETTER WIDE HE*/ + RTUNI_ALPHA, /* U+00fb24: HEBREW LETTER WIDE KAF*/ + RTUNI_ALPHA, /* U+00fb25: HEBREW LETTER WIDE LAMED*/ + RTUNI_ALPHA, /* U+00fb26: HEBREW LETTER WIDE FINAL MEM*/ + RTUNI_ALPHA, /* U+00fb27: HEBREW LETTER WIDE RESH*/ + RTUNI_ALPHA, /* U+00fb28: HEBREW LETTER WIDE TAV*/ + 0, /* U+00fb29: HEBREW LETTER ALTERNATIVE PLUS SIGN*/ + RTUNI_ALPHA, /* U+00fb2a: HEBREW LETTER SHIN WITH SHIN DOT*/ + RTUNI_ALPHA, /* U+00fb2b: HEBREW LETTER SHIN WITH SIN DOT*/ + RTUNI_ALPHA, /* U+00fb2c: HEBREW LETTER SHIN WITH DAGESH AND SHIN DOT*/ + RTUNI_ALPHA, /* U+00fb2d: HEBREW LETTER SHIN WITH DAGESH AND SIN DOT*/ + RTUNI_ALPHA, /* U+00fb2e: HEBREW LETTER ALEF WITH PATAH*/ + RTUNI_ALPHA, /* U+00fb2f: HEBREW LETTER ALEF WITH QAMATS*/ + RTUNI_ALPHA, /* U+00fb30: HEBREW LETTER ALEF WITH MAPIQ*/ + RTUNI_ALPHA, /* U+00fb31: HEBREW LETTER BET WITH DAGESH*/ + RTUNI_ALPHA, /* U+00fb32: HEBREW LETTER GIMEL WITH DAGESH*/ + RTUNI_ALPHA, /* U+00fb33: HEBREW LETTER DALET WITH DAGESH*/ + RTUNI_ALPHA, /* U+00fb34: HEBREW LETTER HE WITH MAPIQ*/ + RTUNI_ALPHA, /* U+00fb35: HEBREW LETTER VAV WITH DAGESH*/ + RTUNI_ALPHA, /* U+00fb36: HEBREW LETTER ZAYIN WITH DAGESH*/ + 0, /* U+00fb37: */ + RTUNI_ALPHA, /* U+00fb38: HEBREW LETTER TET WITH DAGESH*/ + RTUNI_ALPHA, /* U+00fb39: HEBREW LETTER YOD WITH DAGESH*/ + RTUNI_ALPHA, /* U+00fb3a: HEBREW LETTER FINAL KAF WITH DAGESH*/ + RTUNI_ALPHA, /* U+00fb3b: HEBREW LETTER KAF WITH DAGESH*/ + RTUNI_ALPHA, /* U+00fb3c: HEBREW LETTER LAMED WITH DAGESH*/ + 0, /* U+00fb3d: */ + RTUNI_ALPHA, /* U+00fb3e: HEBREW LETTER MEM WITH DAGESH*/ + 0, /* U+00fb3f: */ + RTUNI_ALPHA, /* U+00fb40: HEBREW LETTER NUN WITH DAGESH*/ + RTUNI_ALPHA, /* U+00fb41: HEBREW LETTER SAMEKH WITH DAGESH*/ + 0, /* U+00fb42: */ + RTUNI_ALPHA, /* U+00fb43: HEBREW LETTER FINAL PE WITH DAGESH*/ + RTUNI_ALPHA, /* U+00fb44: HEBREW LETTER PE WITH DAGESH*/ + 0, /* U+00fb45: */ + RTUNI_ALPHA, /* U+00fb46: HEBREW LETTER TSADI WITH DAGESH*/ + RTUNI_ALPHA, /* U+00fb47: HEBREW LETTER QOF WITH DAGESH*/ + RTUNI_ALPHA, /* U+00fb48: HEBREW LETTER RESH WITH DAGESH*/ + RTUNI_ALPHA, /* U+00fb49: HEBREW LETTER SHIN WITH DAGESH*/ + RTUNI_ALPHA, /* U+00fb4a: HEBREW LETTER TAV WITH DAGESH*/ + RTUNI_ALPHA, /* U+00fb4b: HEBREW LETTER VAV WITH HOLAM*/ + RTUNI_ALPHA, /* U+00fb4c: HEBREW LETTER BET WITH RAFE*/ + RTUNI_ALPHA, /* U+00fb4d: HEBREW LETTER KAF WITH RAFE*/ + RTUNI_ALPHA, /* U+00fb4e: HEBREW LETTER PE WITH RAFE*/ + RTUNI_ALPHA, /* U+00fb4f: HEBREW LIGATURE ALEF LAMED*/ + RTUNI_ALPHA, /* U+00fb50: ARABIC LETTER ALEF WASLA ISOLATED FORM*/ + RTUNI_ALPHA, /* U+00fb51: ARABIC LETTER ALEF WASLA FINAL FORM*/ + RTUNI_ALPHA, /* U+00fb52: ARABIC LETTER BEEH ISOLATED FORM*/ + RTUNI_ALPHA, /* U+00fb53: ARABIC LETTER BEEH FINAL FORM*/ + RTUNI_ALPHA, /* U+00fb54: ARABIC LETTER BEEH INITIAL FORM*/ + RTUNI_ALPHA, /* U+00fb55: ARABIC LETTER BEEH MEDIAL FORM*/ + RTUNI_ALPHA, /* U+00fb56: ARABIC LETTER PEH ISOLATED FORM*/ + RTUNI_ALPHA, /* U+00fb57: ARABIC LETTER PEH FINAL FORM*/ + RTUNI_ALPHA, /* U+00fb58: ARABIC LETTER PEH INITIAL FORM*/ + RTUNI_ALPHA, /* U+00fb59: ARABIC LETTER PEH MEDIAL FORM*/ + RTUNI_ALPHA, /* U+00fb5a: ARABIC LETTER BEHEH ISOLATED FORM*/ + RTUNI_ALPHA, /* U+00fb5b: ARABIC LETTER BEHEH FINAL FORM*/ + RTUNI_ALPHA, /* U+00fb5c: ARABIC LETTER BEHEH INITIAL FORM*/ + RTUNI_ALPHA, /* U+00fb5d: ARABIC LETTER BEHEH MEDIAL FORM*/ + RTUNI_ALPHA, /* U+00fb5e: ARABIC LETTER TTEHEH ISOLATED FORM*/ + RTUNI_ALPHA, /* U+00fb5f: ARABIC LETTER TTEHEH FINAL FORM*/ + RTUNI_ALPHA, /* U+00fb60: ARABIC LETTER TTEHEH INITIAL FORM*/ + RTUNI_ALPHA, /* U+00fb61: ARABIC LETTER TTEHEH MEDIAL FORM*/ + RTUNI_ALPHA, /* U+00fb62: ARABIC LETTER TEHEH ISOLATED FORM*/ + RTUNI_ALPHA, /* U+00fb63: ARABIC LETTER TEHEH FINAL FORM*/ + RTUNI_ALPHA, /* U+00fb64: ARABIC LETTER TEHEH INITIAL FORM*/ + RTUNI_ALPHA, /* U+00fb65: ARABIC LETTER TEHEH MEDIAL FORM*/ + RTUNI_ALPHA, /* U+00fb66: ARABIC LETTER TTEH ISOLATED FORM*/ + RTUNI_ALPHA, /* U+00fb67: ARABIC LETTER TTEH FINAL FORM*/ + RTUNI_ALPHA, /* U+00fb68: ARABIC LETTER TTEH INITIAL FORM*/ + RTUNI_ALPHA, /* U+00fb69: ARABIC LETTER TTEH MEDIAL FORM*/ + RTUNI_ALPHA, /* U+00fb6a: ARABIC LETTER VEH ISOLATED FORM*/ + RTUNI_ALPHA, /* U+00fb6b: ARABIC LETTER VEH FINAL FORM*/ + RTUNI_ALPHA, /* U+00fb6c: ARABIC LETTER VEH INITIAL FORM*/ + RTUNI_ALPHA, /* U+00fb6d: ARABIC LETTER VEH MEDIAL FORM*/ + RTUNI_ALPHA, /* U+00fb6e: ARABIC LETTER PEHEH ISOLATED FORM*/ + RTUNI_ALPHA, /* U+00fb6f: ARABIC LETTER PEHEH FINAL FORM*/ + RTUNI_ALPHA, /* U+00fb70: ARABIC LETTER PEHEH INITIAL FORM*/ + RTUNI_ALPHA, /* U+00fb71: ARABIC LETTER PEHEH MEDIAL FORM*/ + RTUNI_ALPHA, /* U+00fb72: ARABIC LETTER DYEH ISOLATED FORM*/ + RTUNI_ALPHA, /* U+00fb73: ARABIC LETTER DYEH FINAL FORM*/ + RTUNI_ALPHA, /* U+00fb74: ARABIC LETTER DYEH INITIAL FORM*/ + RTUNI_ALPHA, /* U+00fb75: ARABIC LETTER DYEH MEDIAL FORM*/ + RTUNI_ALPHA, /* U+00fb76: ARABIC LETTER NYEH ISOLATED FORM*/ + RTUNI_ALPHA, /* U+00fb77: ARABIC LETTER NYEH FINAL FORM*/ + RTUNI_ALPHA, /* U+00fb78: ARABIC LETTER NYEH INITIAL FORM*/ + RTUNI_ALPHA, /* U+00fb79: ARABIC LETTER NYEH MEDIAL FORM*/ + RTUNI_ALPHA, /* U+00fb7a: ARABIC LETTER TCHEH ISOLATED FORM*/ + RTUNI_ALPHA, /* U+00fb7b: ARABIC LETTER TCHEH FINAL FORM*/ + RTUNI_ALPHA, /* U+00fb7c: ARABIC LETTER TCHEH INITIAL FORM*/ + RTUNI_ALPHA, /* U+00fb7d: ARABIC LETTER TCHEH MEDIAL FORM*/ + RTUNI_ALPHA, /* U+00fb7e: ARABIC LETTER TCHEHEH ISOLATED FORM*/ + RTUNI_ALPHA, /* U+00fb7f: ARABIC LETTER TCHEHEH FINAL FORM*/ + RTUNI_ALPHA, /* U+00fb80: ARABIC LETTER TCHEHEH INITIAL FORM*/ + RTUNI_ALPHA, /* U+00fb81: ARABIC LETTER TCHEHEH MEDIAL FORM*/ + RTUNI_ALPHA, /* U+00fb82: ARABIC LETTER DDAHAL ISOLATED FORM*/ + RTUNI_ALPHA, /* U+00fb83: ARABIC LETTER DDAHAL FINAL FORM*/ + RTUNI_ALPHA, /* U+00fb84: ARABIC LETTER DAHAL ISOLATED FORM*/ + RTUNI_ALPHA, /* U+00fb85: ARABIC LETTER DAHAL FINAL FORM*/ + RTUNI_ALPHA, /* U+00fb86: ARABIC LETTER DUL ISOLATED FORM*/ + RTUNI_ALPHA, /* U+00fb87: ARABIC LETTER DUL FINAL FORM*/ + RTUNI_ALPHA, /* U+00fb88: ARABIC LETTER DDAL ISOLATED FORM*/ + RTUNI_ALPHA, /* U+00fb89: ARABIC LETTER DDAL FINAL FORM*/ + RTUNI_ALPHA, /* U+00fb8a: ARABIC LETTER JEH ISOLATED FORM*/ + RTUNI_ALPHA, /* U+00fb8b: ARABIC LETTER JEH FINAL FORM*/ + RTUNI_ALPHA, /* U+00fb8c: ARABIC LETTER RREH ISOLATED FORM*/ + RTUNI_ALPHA, /* U+00fb8d: ARABIC LETTER RREH FINAL FORM*/ + RTUNI_ALPHA, /* U+00fb8e: ARABIC LETTER KEHEH ISOLATED FORM*/ + RTUNI_ALPHA, /* U+00fb8f: ARABIC LETTER KEHEH FINAL FORM*/ + RTUNI_ALPHA, /* U+00fb90: ARABIC LETTER KEHEH INITIAL FORM*/ + RTUNI_ALPHA, /* U+00fb91: ARABIC LETTER KEHEH MEDIAL FORM*/ + RTUNI_ALPHA, /* U+00fb92: ARABIC LETTER GAF ISOLATED FORM*/ + RTUNI_ALPHA, /* U+00fb93: ARABIC LETTER GAF FINAL FORM*/ + RTUNI_ALPHA, /* U+00fb94: ARABIC LETTER GAF INITIAL FORM*/ + RTUNI_ALPHA, /* U+00fb95: ARABIC LETTER GAF MEDIAL FORM*/ + RTUNI_ALPHA, /* U+00fb96: ARABIC LETTER GUEH ISOLATED FORM*/ + RTUNI_ALPHA, /* U+00fb97: ARABIC LETTER GUEH FINAL FORM*/ + RTUNI_ALPHA, /* U+00fb98: ARABIC LETTER GUEH INITIAL FORM*/ + RTUNI_ALPHA, /* U+00fb99: ARABIC LETTER GUEH MEDIAL FORM*/ + RTUNI_ALPHA, /* U+00fb9a: ARABIC LETTER NGOEH ISOLATED FORM*/ + RTUNI_ALPHA, /* U+00fb9b: ARABIC LETTER NGOEH FINAL FORM*/ + RTUNI_ALPHA, /* U+00fb9c: ARABIC LETTER NGOEH INITIAL FORM*/ + RTUNI_ALPHA, /* U+00fb9d: ARABIC LETTER NGOEH MEDIAL FORM*/ + RTUNI_ALPHA, /* U+00fb9e: ARABIC LETTER NOON GHUNNA ISOLATED FORM*/ + RTUNI_ALPHA, /* U+00fb9f: ARABIC LETTER NOON GHUNNA FINAL FORM*/ + RTUNI_ALPHA, /* U+00fba0: ARABIC LETTER RNOON ISOLATED FORM*/ + RTUNI_ALPHA, /* U+00fba1: ARABIC LETTER RNOON FINAL FORM*/ + RTUNI_ALPHA, /* U+00fba2: ARABIC LETTER RNOON INITIAL FORM*/ + RTUNI_ALPHA, /* U+00fba3: ARABIC LETTER RNOON MEDIAL FORM*/ + RTUNI_ALPHA, /* U+00fba4: ARABIC LETTER HEH WITH YEH ABOVE ISOLATED FORM*/ + RTUNI_ALPHA, /* U+00fba5: ARABIC LETTER HEH WITH YEH ABOVE FINAL FORM*/ + RTUNI_ALPHA, /* U+00fba6: ARABIC LETTER HEH GOAL ISOLATED FORM*/ + RTUNI_ALPHA, /* U+00fba7: ARABIC LETTER HEH GOAL FINAL FORM*/ + RTUNI_ALPHA, /* U+00fba8: ARABIC LETTER HEH GOAL INITIAL FORM*/ + RTUNI_ALPHA, /* U+00fba9: ARABIC LETTER HEH GOAL MEDIAL FORM*/ + RTUNI_ALPHA, /* U+00fbaa: ARABIC LETTER HEH DOACHASHMEE ISOLATED FORM*/ + RTUNI_ALPHA, /* U+00fbab: ARABIC LETTER HEH DOACHASHMEE FINAL FORM*/ + RTUNI_ALPHA, /* U+00fbac: ARABIC LETTER HEH DOACHASHMEE INITIAL FORM*/ + RTUNI_ALPHA, /* U+00fbad: ARABIC LETTER HEH DOACHASHMEE MEDIAL FORM*/ + RTUNI_ALPHA, /* U+00fbae: ARABIC LETTER YEH BARREE ISOLATED FORM*/ + RTUNI_ALPHA, /* U+00fbaf: ARABIC LETTER YEH BARREE FINAL FORM*/ + RTUNI_ALPHA, /* U+00fbb0: ARABIC LETTER YEH BARREE WITH HAMZA ABOVE ISOLATED FORM*/ + RTUNI_ALPHA, /* U+00fbb1: ARABIC LETTER YEH BARREE WITH HAMZA ABOVE FINAL FORM*/ + 0, /* U+00fbb2: ARABIC SYMBOL DOT ABOVE*/ + 0, /* U+00fbb3: ARABIC SYMBOL DOT BELOW*/ + 0, /* U+00fbb4: ARABIC SYMBOL TWO DOTS ABOVE*/ + 0, /* U+00fbb5: ARABIC SYMBOL TWO DOTS BELOW*/ + 0, /* U+00fbb6: ARABIC SYMBOL THREE DOTS ABOVE*/ + 0, /* U+00fbb7: ARABIC SYMBOL THREE DOTS BELOW*/ + 0, /* U+00fbb8: ARABIC SYMBOL THREE DOTS POINTING DOWNWARDS ABOVE*/ + 0, /* U+00fbb9: ARABIC SYMBOL THREE DOTS POINTING DOWNWARDS BELOW*/ + 0, /* U+00fbba: ARABIC SYMBOL FOUR DOTS ABOVE*/ + 0, /* U+00fbbb: ARABIC SYMBOL FOUR DOTS BELOW*/ + 0, /* U+00fbbc: ARABIC SYMBOL DOUBLE VERTICAL BAR BELOW*/ + 0, /* U+00fbbd: ARABIC SYMBOL TWO DOTS VERTICALLY ABOVE*/ + 0, /* U+00fbbe: ARABIC SYMBOL TWO DOTS VERTICALLY BELOW*/ + 0, /* U+00fbbf: ARABIC SYMBOL RING*/ + 0, /* U+00fbc0: ARABIC SYMBOL SMALL TAH ABOVE*/ + 0, /* U+00fbc1: ARABIC SYMBOL SMALL TAH BELOW*/ + 0, /* U+00fbc2: */ + 0, /* U+00fbc3: */ + 0, /* U+00fbc4: */ + 0, /* U+00fbc5: */ + 0, /* U+00fbc6: */ + 0, /* U+00fbc7: */ + 0, /* U+00fbc8: */ + 0, /* U+00fbc9: */ + 0, /* U+00fbca: */ + 0, /* U+00fbcb: */ + 0, /* U+00fbcc: */ + 0, /* U+00fbcd: */ + 0, /* U+00fbce: */ + 0, /* U+00fbcf: */ + 0, /* U+00fbd0: */ + 0, /* U+00fbd1: */ + 0, /* U+00fbd2: */ + RTUNI_ALPHA, /* U+00fbd3: ARABIC LETTER NG ISOLATED FORM*/ + RTUNI_ALPHA, /* U+00fbd4: ARABIC LETTER NG FINAL FORM*/ + RTUNI_ALPHA, /* U+00fbd5: ARABIC LETTER NG INITIAL FORM*/ + RTUNI_ALPHA, /* U+00fbd6: ARABIC LETTER NG MEDIAL FORM*/ + RTUNI_ALPHA, /* U+00fbd7: ARABIC LETTER U ISOLATED FORM*/ + RTUNI_ALPHA, /* U+00fbd8: ARABIC LETTER U FINAL FORM*/ + RTUNI_ALPHA, /* U+00fbd9: ARABIC LETTER OE ISOLATED FORM*/ + RTUNI_ALPHA, /* U+00fbda: ARABIC LETTER OE FINAL FORM*/ + RTUNI_ALPHA, /* U+00fbdb: ARABIC LETTER YU ISOLATED FORM*/ + RTUNI_ALPHA, /* U+00fbdc: ARABIC LETTER YU FINAL FORM*/ + RTUNI_ALPHA, /* U+00fbdd: ARABIC LETTER U WITH HAMZA ABOVE ISOLATED FORM*/ + RTUNI_ALPHA, /* U+00fbde: ARABIC LETTER VE ISOLATED FORM*/ + RTUNI_ALPHA, /* U+00fbdf: ARABIC LETTER VE FINAL FORM*/ + RTUNI_ALPHA, /* U+00fbe0: ARABIC LETTER KIRGHIZ OE ISOLATED FORM*/ + RTUNI_ALPHA, /* U+00fbe1: ARABIC LETTER KIRGHIZ OE FINAL FORM*/ + RTUNI_ALPHA, /* U+00fbe2: ARABIC LETTER KIRGHIZ YU ISOLATED FORM*/ + RTUNI_ALPHA, /* U+00fbe3: ARABIC LETTER KIRGHIZ YU FINAL FORM*/ + RTUNI_ALPHA, /* U+00fbe4: ARABIC LETTER E ISOLATED FORM*/ + RTUNI_ALPHA, /* U+00fbe5: ARABIC LETTER E FINAL FORM*/ + RTUNI_ALPHA, /* U+00fbe6: ARABIC LETTER E INITIAL FORM*/ + RTUNI_ALPHA, /* U+00fbe7: ARABIC LETTER E MEDIAL FORM*/ + RTUNI_ALPHA, /* U+00fbe8: ARABIC LETTER UIGHUR KAZAKH KIRGHIZ ALEF MAKSURA INITIAL FORM*/ + RTUNI_ALPHA, /* U+00fbe9: ARABIC LETTER UIGHUR KAZAKH KIRGHIZ ALEF MAKSURA MEDIAL FORM*/ + RTUNI_ALPHA, /* U+00fbea: ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH ALEF ISOLATED FORM*/ + RTUNI_ALPHA, /* U+00fbeb: ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH ALEF FINAL FORM*/ + RTUNI_ALPHA, /* U+00fbec: ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH AE ISOLATED FORM*/ + RTUNI_ALPHA, /* U+00fbed: ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH AE FINAL FORM*/ + RTUNI_ALPHA, /* U+00fbee: ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH WAW ISOLATED FORM*/ + RTUNI_ALPHA, /* U+00fbef: ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH WAW FINAL FORM*/ + RTUNI_ALPHA, /* U+00fbf0: ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH U ISOLATED FORM*/ + RTUNI_ALPHA, /* U+00fbf1: ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH U FINAL FORM*/ + RTUNI_ALPHA, /* U+00fbf2: ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH OE ISOLATED FORM*/ + RTUNI_ALPHA, /* U+00fbf3: ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH OE FINAL FORM*/ + RTUNI_ALPHA, /* U+00fbf4: ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH YU ISOLATED FORM*/ + RTUNI_ALPHA, /* U+00fbf5: ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH YU FINAL FORM*/ + RTUNI_ALPHA, /* U+00fbf6: ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH E ISOLATED FORM*/ + RTUNI_ALPHA, /* U+00fbf7: ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH E FINAL FORM*/ + RTUNI_ALPHA, /* U+00fbf8: ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH E INITIAL FORM*/ + RTUNI_ALPHA, /* U+00fbf9: ARABIC LIGATURE UIGHUR KIRGHIZ YEH WITH HAMZA ABOVE WITH ALEF MAKSURA ISOLATED FORM*/ + RTUNI_ALPHA, /* U+00fbfa: ARABIC LIGATURE UIGHUR KIRGHIZ YEH WITH HAMZA ABOVE WITH ALEF MAKSURA FINAL FORM*/ + RTUNI_ALPHA, /* U+00fbfb: ARABIC LIGATURE UIGHUR KIRGHIZ YEH WITH HAMZA ABOVE WITH ALEF MAKSURA INITIAL FORM*/ + RTUNI_ALPHA, /* U+00fbfc: ARABIC LETTER FARSI YEH ISOLATED FORM*/ + RTUNI_ALPHA, /* U+00fbfd: ARABIC LETTER FARSI YEH FINAL FORM*/ + RTUNI_ALPHA, /* U+00fbfe: ARABIC LETTER FARSI YEH INITIAL FORM*/ + RTUNI_ALPHA, /* U+00fbff: ARABIC LETTER FARSI YEH MEDIAL FORM*/ + RTUNI_ALPHA, /* U+00fc00: ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH JEEM ISOLATED FORM*/ + RTUNI_ALPHA, /* U+00fc01: ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH HAH ISOLATED FORM*/ + RTUNI_ALPHA, /* U+00fc02: ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH MEEM ISOLATED FORM*/ + RTUNI_ALPHA, /* U+00fc03: ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH ALEF MAKSURA ISOLATED FORM*/ + RTUNI_ALPHA, /* U+00fc04: ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH YEH ISOLATED FORM*/ + RTUNI_ALPHA, /* U+00fc05: ARABIC LIGATURE BEH WITH JEEM ISOLATED FORM*/ + RTUNI_ALPHA, /* U+00fc06: ARABIC LIGATURE BEH WITH HAH ISOLATED FORM*/ + RTUNI_ALPHA, /* U+00fc07: ARABIC LIGATURE BEH WITH KHAH ISOLATED FORM*/ + RTUNI_ALPHA, /* U+00fc08: ARABIC LIGATURE BEH WITH MEEM ISOLATED FORM*/ + RTUNI_ALPHA, /* U+00fc09: ARABIC LIGATURE BEH WITH ALEF MAKSURA ISOLATED FORM*/ + RTUNI_ALPHA, /* U+00fc0a: ARABIC LIGATURE BEH WITH YEH ISOLATED FORM*/ + RTUNI_ALPHA, /* U+00fc0b: ARABIC LIGATURE TEH WITH JEEM ISOLATED FORM*/ + RTUNI_ALPHA, /* U+00fc0c: ARABIC LIGATURE TEH WITH HAH ISOLATED FORM*/ + RTUNI_ALPHA, /* U+00fc0d: ARABIC LIGATURE TEH WITH KHAH ISOLATED FORM*/ + RTUNI_ALPHA, /* U+00fc0e: ARABIC LIGATURE TEH WITH MEEM ISOLATED FORM*/ + RTUNI_ALPHA, /* U+00fc0f: ARABIC LIGATURE TEH WITH ALEF MAKSURA ISOLATED FORM*/ + RTUNI_ALPHA, /* U+00fc10: ARABIC LIGATURE TEH WITH YEH ISOLATED FORM*/ + RTUNI_ALPHA, /* U+00fc11: ARABIC LIGATURE THEH WITH JEEM ISOLATED FORM*/ + RTUNI_ALPHA, /* U+00fc12: ARABIC LIGATURE THEH WITH MEEM ISOLATED FORM*/ + RTUNI_ALPHA, /* U+00fc13: ARABIC LIGATURE THEH WITH ALEF MAKSURA ISOLATED FORM*/ + RTUNI_ALPHA, /* U+00fc14: ARABIC LIGATURE THEH WITH YEH ISOLATED FORM*/ + RTUNI_ALPHA, /* U+00fc15: ARABIC LIGATURE JEEM WITH HAH ISOLATED FORM*/ + RTUNI_ALPHA, /* U+00fc16: ARABIC LIGATURE JEEM WITH MEEM ISOLATED FORM*/ + RTUNI_ALPHA, /* U+00fc17: ARABIC LIGATURE HAH WITH JEEM ISOLATED FORM*/ + RTUNI_ALPHA, /* U+00fc18: ARABIC LIGATURE HAH WITH MEEM ISOLATED FORM*/ + RTUNI_ALPHA, /* U+00fc19: ARABIC LIGATURE KHAH WITH JEEM ISOLATED FORM*/ + RTUNI_ALPHA, /* U+00fc1a: ARABIC LIGATURE KHAH WITH HAH ISOLATED FORM*/ + RTUNI_ALPHA, /* U+00fc1b: ARABIC LIGATURE KHAH WITH MEEM ISOLATED FORM*/ + RTUNI_ALPHA, /* U+00fc1c: ARABIC LIGATURE SEEN WITH JEEM ISOLATED FORM*/ + RTUNI_ALPHA, /* U+00fc1d: ARABIC LIGATURE SEEN WITH HAH ISOLATED FORM*/ + RTUNI_ALPHA, /* U+00fc1e: ARABIC LIGATURE SEEN WITH KHAH ISOLATED FORM*/ + RTUNI_ALPHA, /* U+00fc1f: ARABIC LIGATURE SEEN WITH MEEM ISOLATED FORM*/ + RTUNI_ALPHA, /* U+00fc20: ARABIC LIGATURE SAD WITH HAH ISOLATED FORM*/ + RTUNI_ALPHA, /* U+00fc21: ARABIC LIGATURE SAD WITH MEEM ISOLATED FORM*/ + RTUNI_ALPHA, /* U+00fc22: ARABIC LIGATURE DAD WITH JEEM ISOLATED FORM*/ + RTUNI_ALPHA, /* U+00fc23: ARABIC LIGATURE DAD WITH HAH ISOLATED FORM*/ + RTUNI_ALPHA, /* U+00fc24: ARABIC LIGATURE DAD WITH KHAH ISOLATED FORM*/ + RTUNI_ALPHA, /* U+00fc25: ARABIC LIGATURE DAD WITH MEEM ISOLATED FORM*/ + RTUNI_ALPHA, /* U+00fc26: ARABIC LIGATURE TAH WITH HAH ISOLATED FORM*/ + RTUNI_ALPHA, /* U+00fc27: ARABIC LIGATURE TAH WITH MEEM ISOLATED FORM*/ + RTUNI_ALPHA, /* U+00fc28: ARABIC LIGATURE ZAH WITH MEEM ISOLATED FORM*/ + RTUNI_ALPHA, /* U+00fc29: ARABIC LIGATURE AIN WITH JEEM ISOLATED FORM*/ + RTUNI_ALPHA, /* U+00fc2a: ARABIC LIGATURE AIN WITH MEEM ISOLATED FORM*/ + RTUNI_ALPHA, /* U+00fc2b: ARABIC LIGATURE GHAIN WITH JEEM ISOLATED FORM*/ + RTUNI_ALPHA, /* U+00fc2c: ARABIC LIGATURE GHAIN WITH MEEM ISOLATED FORM*/ + RTUNI_ALPHA, /* U+00fc2d: ARABIC LIGATURE FEH WITH JEEM ISOLATED FORM*/ + RTUNI_ALPHA, /* U+00fc2e: ARABIC LIGATURE FEH WITH HAH ISOLATED FORM*/ + RTUNI_ALPHA, /* U+00fc2f: ARABIC LIGATURE FEH WITH KHAH ISOLATED FORM*/ + RTUNI_ALPHA, /* U+00fc30: ARABIC LIGATURE FEH WITH MEEM ISOLATED FORM*/ + RTUNI_ALPHA, /* U+00fc31: ARABIC LIGATURE FEH WITH ALEF MAKSURA ISOLATED FORM*/ + RTUNI_ALPHA, /* U+00fc32: ARABIC LIGATURE FEH WITH YEH ISOLATED FORM*/ + RTUNI_ALPHA, /* U+00fc33: ARABIC LIGATURE QAF WITH HAH ISOLATED FORM*/ + RTUNI_ALPHA, /* U+00fc34: ARABIC LIGATURE QAF WITH MEEM ISOLATED FORM*/ + RTUNI_ALPHA, /* U+00fc35: ARABIC LIGATURE QAF WITH ALEF MAKSURA ISOLATED FORM*/ + RTUNI_ALPHA, /* U+00fc36: ARABIC LIGATURE QAF WITH YEH ISOLATED FORM*/ + RTUNI_ALPHA, /* U+00fc37: ARABIC LIGATURE KAF WITH ALEF ISOLATED FORM*/ + RTUNI_ALPHA, /* U+00fc38: ARABIC LIGATURE KAF WITH JEEM ISOLATED FORM*/ + RTUNI_ALPHA, /* U+00fc39: ARABIC LIGATURE KAF WITH HAH ISOLATED FORM*/ + RTUNI_ALPHA, /* U+00fc3a: ARABIC LIGATURE KAF WITH KHAH ISOLATED FORM*/ + RTUNI_ALPHA, /* U+00fc3b: ARABIC LIGATURE KAF WITH LAM ISOLATED FORM*/ + RTUNI_ALPHA, /* U+00fc3c: ARABIC LIGATURE KAF WITH MEEM ISOLATED FORM*/ + RTUNI_ALPHA, /* U+00fc3d: ARABIC LIGATURE KAF WITH ALEF MAKSURA ISOLATED FORM*/ + RTUNI_ALPHA, /* U+00fc3e: ARABIC LIGATURE KAF WITH YEH ISOLATED FORM*/ + RTUNI_ALPHA, /* U+00fc3f: ARABIC LIGATURE LAM WITH JEEM ISOLATED FORM*/ + RTUNI_ALPHA, /* U+00fc40: ARABIC LIGATURE LAM WITH HAH ISOLATED FORM*/ + RTUNI_ALPHA, /* U+00fc41: ARABIC LIGATURE LAM WITH KHAH ISOLATED FORM*/ + RTUNI_ALPHA, /* U+00fc42: ARABIC LIGATURE LAM WITH MEEM ISOLATED FORM*/ + RTUNI_ALPHA, /* U+00fc43: ARABIC LIGATURE LAM WITH ALEF MAKSURA ISOLATED FORM*/ + RTUNI_ALPHA, /* U+00fc44: ARABIC LIGATURE LAM WITH YEH ISOLATED FORM*/ + RTUNI_ALPHA, /* U+00fc45: ARABIC LIGATURE MEEM WITH JEEM ISOLATED FORM*/ + RTUNI_ALPHA, /* U+00fc46: ARABIC LIGATURE MEEM WITH HAH ISOLATED FORM*/ + RTUNI_ALPHA, /* U+00fc47: ARABIC LIGATURE MEEM WITH KHAH ISOLATED FORM*/ + RTUNI_ALPHA, /* U+00fc48: ARABIC LIGATURE MEEM WITH MEEM ISOLATED FORM*/ + RTUNI_ALPHA, /* U+00fc49: ARABIC LIGATURE MEEM WITH ALEF MAKSURA ISOLATED FORM*/ + RTUNI_ALPHA, /* U+00fc4a: ARABIC LIGATURE MEEM WITH YEH ISOLATED FORM*/ + RTUNI_ALPHA, /* U+00fc4b: ARABIC LIGATURE NOON WITH JEEM ISOLATED FORM*/ + RTUNI_ALPHA, /* U+00fc4c: ARABIC LIGATURE NOON WITH HAH ISOLATED FORM*/ + RTUNI_ALPHA, /* U+00fc4d: ARABIC LIGATURE NOON WITH KHAH ISOLATED FORM*/ + RTUNI_ALPHA, /* U+00fc4e: ARABIC LIGATURE NOON WITH MEEM ISOLATED FORM*/ + RTUNI_ALPHA, /* U+00fc4f: ARABIC LIGATURE NOON WITH ALEF MAKSURA ISOLATED FORM*/ + RTUNI_ALPHA, /* U+00fc50: ARABIC LIGATURE NOON WITH YEH ISOLATED FORM*/ + RTUNI_ALPHA, /* U+00fc51: ARABIC LIGATURE HEH WITH JEEM ISOLATED FORM*/ + RTUNI_ALPHA, /* U+00fc52: ARABIC LIGATURE HEH WITH MEEM ISOLATED FORM*/ + RTUNI_ALPHA, /* U+00fc53: ARABIC LIGATURE HEH WITH ALEF MAKSURA ISOLATED FORM*/ + RTUNI_ALPHA, /* U+00fc54: ARABIC LIGATURE HEH WITH YEH ISOLATED FORM*/ + RTUNI_ALPHA, /* U+00fc55: ARABIC LIGATURE YEH WITH JEEM ISOLATED FORM*/ + RTUNI_ALPHA, /* U+00fc56: ARABIC LIGATURE YEH WITH HAH ISOLATED FORM*/ + RTUNI_ALPHA, /* U+00fc57: ARABIC LIGATURE YEH WITH KHAH ISOLATED FORM*/ + RTUNI_ALPHA, /* U+00fc58: ARABIC LIGATURE YEH WITH MEEM ISOLATED FORM*/ + RTUNI_ALPHA, /* U+00fc59: ARABIC LIGATURE YEH WITH ALEF MAKSURA ISOLATED FORM*/ + RTUNI_ALPHA, /* U+00fc5a: ARABIC LIGATURE YEH WITH YEH ISOLATED FORM*/ + RTUNI_ALPHA, /* U+00fc5b: ARABIC LIGATURE THAL WITH SUPERSCRIPT ALEF ISOLATED FORM*/ + RTUNI_ALPHA, /* U+00fc5c: ARABIC LIGATURE REH WITH SUPERSCRIPT ALEF ISOLATED FORM*/ + RTUNI_ALPHA, /* U+00fc5d: ARABIC LIGATURE ALEF MAKSURA WITH SUPERSCRIPT ALEF ISOLATED FORM*/ + RTUNI_ALPHA, /* U+00fc5e: ARABIC LIGATURE SHADDA WITH DAMMATAN ISOLATED FORM*/ + RTUNI_ALPHA, /* U+00fc5f: ARABIC LIGATURE SHADDA WITH KASRATAN ISOLATED FORM*/ + RTUNI_ALPHA, /* U+00fc60: ARABIC LIGATURE SHADDA WITH FATHA ISOLATED FORM*/ + RTUNI_ALPHA, /* U+00fc61: ARABIC LIGATURE SHADDA WITH DAMMA ISOLATED FORM*/ + RTUNI_ALPHA, /* U+00fc62: ARABIC LIGATURE SHADDA WITH KASRA ISOLATED FORM*/ + RTUNI_ALPHA, /* U+00fc63: ARABIC LIGATURE SHADDA WITH SUPERSCRIPT ALEF ISOLATED FORM*/ + RTUNI_ALPHA, /* U+00fc64: ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH REH FINAL FORM*/ + RTUNI_ALPHA, /* U+00fc65: ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH ZAIN FINAL FORM*/ + RTUNI_ALPHA, /* U+00fc66: ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH MEEM FINAL FORM*/ + RTUNI_ALPHA, /* U+00fc67: ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH NOON FINAL FORM*/ + RTUNI_ALPHA, /* U+00fc68: ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH ALEF MAKSURA FINAL FORM*/ + RTUNI_ALPHA, /* U+00fc69: ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH YEH FINAL FORM*/ + RTUNI_ALPHA, /* U+00fc6a: ARABIC LIGATURE BEH WITH REH FINAL FORM*/ + RTUNI_ALPHA, /* U+00fc6b: ARABIC LIGATURE BEH WITH ZAIN FINAL FORM*/ + RTUNI_ALPHA, /* U+00fc6c: ARABIC LIGATURE BEH WITH MEEM FINAL FORM*/ + RTUNI_ALPHA, /* U+00fc6d: ARABIC LIGATURE BEH WITH NOON FINAL FORM*/ + RTUNI_ALPHA, /* U+00fc6e: ARABIC LIGATURE BEH WITH ALEF MAKSURA FINAL FORM*/ + RTUNI_ALPHA, /* U+00fc6f: ARABIC LIGATURE BEH WITH YEH FINAL FORM*/ + RTUNI_ALPHA, /* U+00fc70: ARABIC LIGATURE TEH WITH REH FINAL FORM*/ + RTUNI_ALPHA, /* U+00fc71: ARABIC LIGATURE TEH WITH ZAIN FINAL FORM*/ + RTUNI_ALPHA, /* U+00fc72: ARABIC LIGATURE TEH WITH MEEM FINAL FORM*/ + RTUNI_ALPHA, /* U+00fc73: ARABIC LIGATURE TEH WITH NOON FINAL FORM*/ + RTUNI_ALPHA, /* U+00fc74: ARABIC LIGATURE TEH WITH ALEF MAKSURA FINAL FORM*/ + RTUNI_ALPHA, /* U+00fc75: ARABIC LIGATURE TEH WITH YEH FINAL FORM*/ + RTUNI_ALPHA, /* U+00fc76: ARABIC LIGATURE THEH WITH REH FINAL FORM*/ + RTUNI_ALPHA, /* U+00fc77: ARABIC LIGATURE THEH WITH ZAIN FINAL FORM*/ + RTUNI_ALPHA, /* U+00fc78: ARABIC LIGATURE THEH WITH MEEM FINAL FORM*/ + RTUNI_ALPHA, /* U+00fc79: ARABIC LIGATURE THEH WITH NOON FINAL FORM*/ + RTUNI_ALPHA, /* U+00fc7a: ARABIC LIGATURE THEH WITH ALEF MAKSURA FINAL FORM*/ + RTUNI_ALPHA, /* U+00fc7b: ARABIC LIGATURE THEH WITH YEH FINAL FORM*/ + RTUNI_ALPHA, /* U+00fc7c: ARABIC LIGATURE FEH WITH ALEF MAKSURA FINAL FORM*/ + RTUNI_ALPHA, /* U+00fc7d: ARABIC LIGATURE FEH WITH YEH FINAL FORM*/ + RTUNI_ALPHA, /* U+00fc7e: ARABIC LIGATURE QAF WITH ALEF MAKSURA FINAL FORM*/ + RTUNI_ALPHA, /* U+00fc7f: ARABIC LIGATURE QAF WITH YEH FINAL FORM*/ + RTUNI_ALPHA, /* U+00fc80: ARABIC LIGATURE KAF WITH ALEF FINAL FORM*/ + RTUNI_ALPHA, /* U+00fc81: ARABIC LIGATURE KAF WITH LAM FINAL FORM*/ + RTUNI_ALPHA, /* U+00fc82: ARABIC LIGATURE KAF WITH MEEM FINAL FORM*/ + RTUNI_ALPHA, /* U+00fc83: ARABIC LIGATURE KAF WITH ALEF MAKSURA FINAL FORM*/ + RTUNI_ALPHA, /* U+00fc84: ARABIC LIGATURE KAF WITH YEH FINAL FORM*/ + RTUNI_ALPHA, /* U+00fc85: ARABIC LIGATURE LAM WITH MEEM FINAL FORM*/ + RTUNI_ALPHA, /* U+00fc86: ARABIC LIGATURE LAM WITH ALEF MAKSURA FINAL FORM*/ + RTUNI_ALPHA, /* U+00fc87: ARABIC LIGATURE LAM WITH YEH FINAL FORM*/ + RTUNI_ALPHA, /* U+00fc88: ARABIC LIGATURE MEEM WITH ALEF FINAL FORM*/ + RTUNI_ALPHA, /* U+00fc89: ARABIC LIGATURE MEEM WITH MEEM FINAL FORM*/ + RTUNI_ALPHA, /* U+00fc8a: ARABIC LIGATURE NOON WITH REH FINAL FORM*/ + RTUNI_ALPHA, /* U+00fc8b: ARABIC LIGATURE NOON WITH ZAIN FINAL FORM*/ + RTUNI_ALPHA, /* U+00fc8c: ARABIC LIGATURE NOON WITH MEEM FINAL FORM*/ + RTUNI_ALPHA, /* U+00fc8d: ARABIC LIGATURE NOON WITH NOON FINAL FORM*/ + RTUNI_ALPHA, /* U+00fc8e: ARABIC LIGATURE NOON WITH ALEF MAKSURA FINAL FORM*/ + RTUNI_ALPHA, /* U+00fc8f: ARABIC LIGATURE NOON WITH YEH FINAL FORM*/ + RTUNI_ALPHA, /* U+00fc90: ARABIC LIGATURE ALEF MAKSURA WITH SUPERSCRIPT ALEF FINAL FORM*/ + RTUNI_ALPHA, /* U+00fc91: ARABIC LIGATURE YEH WITH REH FINAL FORM*/ + RTUNI_ALPHA, /* U+00fc92: ARABIC LIGATURE YEH WITH ZAIN FINAL FORM*/ + RTUNI_ALPHA, /* U+00fc93: ARABIC LIGATURE YEH WITH MEEM FINAL FORM*/ + RTUNI_ALPHA, /* U+00fc94: ARABIC LIGATURE YEH WITH NOON FINAL FORM*/ + RTUNI_ALPHA, /* U+00fc95: ARABIC LIGATURE YEH WITH ALEF MAKSURA FINAL FORM*/ + RTUNI_ALPHA, /* U+00fc96: ARABIC LIGATURE YEH WITH YEH FINAL FORM*/ + RTUNI_ALPHA, /* U+00fc97: ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH JEEM INITIAL FORM*/ + RTUNI_ALPHA, /* U+00fc98: ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH HAH INITIAL FORM*/ + RTUNI_ALPHA, /* U+00fc99: ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH KHAH INITIAL FORM*/ + RTUNI_ALPHA, /* U+00fc9a: ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH MEEM INITIAL FORM*/ + RTUNI_ALPHA, /* U+00fc9b: ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH HEH INITIAL FORM*/ + RTUNI_ALPHA, /* U+00fc9c: ARABIC LIGATURE BEH WITH JEEM INITIAL FORM*/ + RTUNI_ALPHA, /* U+00fc9d: ARABIC LIGATURE BEH WITH HAH INITIAL FORM*/ + RTUNI_ALPHA, /* U+00fc9e: ARABIC LIGATURE BEH WITH KHAH INITIAL FORM*/ + RTUNI_ALPHA, /* U+00fc9f: ARABIC LIGATURE BEH WITH MEEM INITIAL FORM*/ + RTUNI_ALPHA, /* U+00fca0: ARABIC LIGATURE BEH WITH HEH INITIAL FORM*/ + RTUNI_ALPHA, /* U+00fca1: ARABIC LIGATURE TEH WITH JEEM INITIAL FORM*/ + RTUNI_ALPHA, /* U+00fca2: ARABIC LIGATURE TEH WITH HAH INITIAL FORM*/ + RTUNI_ALPHA, /* U+00fca3: ARABIC LIGATURE TEH WITH KHAH INITIAL FORM*/ + RTUNI_ALPHA, /* U+00fca4: ARABIC LIGATURE TEH WITH MEEM INITIAL FORM*/ + RTUNI_ALPHA, /* U+00fca5: ARABIC LIGATURE TEH WITH HEH INITIAL FORM*/ + RTUNI_ALPHA, /* U+00fca6: ARABIC LIGATURE THEH WITH MEEM INITIAL FORM*/ + RTUNI_ALPHA, /* U+00fca7: ARABIC LIGATURE JEEM WITH HAH INITIAL FORM*/ + RTUNI_ALPHA, /* U+00fca8: ARABIC LIGATURE JEEM WITH MEEM INITIAL FORM*/ + RTUNI_ALPHA, /* U+00fca9: ARABIC LIGATURE HAH WITH JEEM INITIAL FORM*/ + RTUNI_ALPHA, /* U+00fcaa: ARABIC LIGATURE HAH WITH MEEM INITIAL FORM*/ + RTUNI_ALPHA, /* U+00fcab: ARABIC LIGATURE KHAH WITH JEEM INITIAL FORM*/ + RTUNI_ALPHA, /* U+00fcac: ARABIC LIGATURE KHAH WITH MEEM INITIAL FORM*/ + RTUNI_ALPHA, /* U+00fcad: ARABIC LIGATURE SEEN WITH JEEM INITIAL FORM*/ + RTUNI_ALPHA, /* U+00fcae: ARABIC LIGATURE SEEN WITH HAH INITIAL FORM*/ + RTUNI_ALPHA, /* U+00fcaf: ARABIC LIGATURE SEEN WITH KHAH INITIAL FORM*/ + RTUNI_ALPHA, /* U+00fcb0: ARABIC LIGATURE SEEN WITH MEEM INITIAL FORM*/ + RTUNI_ALPHA, /* U+00fcb1: ARABIC LIGATURE SAD WITH HAH INITIAL FORM*/ + RTUNI_ALPHA, /* U+00fcb2: ARABIC LIGATURE SAD WITH KHAH INITIAL FORM*/ + RTUNI_ALPHA, /* U+00fcb3: ARABIC LIGATURE SAD WITH MEEM INITIAL FORM*/ + RTUNI_ALPHA, /* U+00fcb4: ARABIC LIGATURE DAD WITH JEEM INITIAL FORM*/ + RTUNI_ALPHA, /* U+00fcb5: ARABIC LIGATURE DAD WITH HAH INITIAL FORM*/ + RTUNI_ALPHA, /* U+00fcb6: ARABIC LIGATURE DAD WITH KHAH INITIAL FORM*/ + RTUNI_ALPHA, /* U+00fcb7: ARABIC LIGATURE DAD WITH MEEM INITIAL FORM*/ + RTUNI_ALPHA, /* U+00fcb8: ARABIC LIGATURE TAH WITH HAH INITIAL FORM*/ + RTUNI_ALPHA, /* U+00fcb9: ARABIC LIGATURE ZAH WITH MEEM INITIAL FORM*/ + RTUNI_ALPHA, /* U+00fcba: ARABIC LIGATURE AIN WITH JEEM INITIAL FORM*/ + RTUNI_ALPHA, /* U+00fcbb: ARABIC LIGATURE AIN WITH MEEM INITIAL FORM*/ + RTUNI_ALPHA, /* U+00fcbc: ARABIC LIGATURE GHAIN WITH JEEM INITIAL FORM*/ + RTUNI_ALPHA, /* U+00fcbd: ARABIC LIGATURE GHAIN WITH MEEM INITIAL FORM*/ + RTUNI_ALPHA, /* U+00fcbe: ARABIC LIGATURE FEH WITH JEEM INITIAL FORM*/ + RTUNI_ALPHA, /* U+00fcbf: ARABIC LIGATURE FEH WITH HAH INITIAL FORM*/ + RTUNI_ALPHA, /* U+00fcc0: ARABIC LIGATURE FEH WITH KHAH INITIAL FORM*/ + RTUNI_ALPHA, /* U+00fcc1: ARABIC LIGATURE FEH WITH MEEM INITIAL FORM*/ + RTUNI_ALPHA, /* U+00fcc2: ARABIC LIGATURE QAF WITH HAH INITIAL FORM*/ + RTUNI_ALPHA, /* U+00fcc3: ARABIC LIGATURE QAF WITH MEEM INITIAL FORM*/ + RTUNI_ALPHA, /* U+00fcc4: ARABIC LIGATURE KAF WITH JEEM INITIAL FORM*/ + RTUNI_ALPHA, /* U+00fcc5: ARABIC LIGATURE KAF WITH HAH INITIAL FORM*/ + RTUNI_ALPHA, /* U+00fcc6: ARABIC LIGATURE KAF WITH KHAH INITIAL FORM*/ + RTUNI_ALPHA, /* U+00fcc7: ARABIC LIGATURE KAF WITH LAM INITIAL FORM*/ + RTUNI_ALPHA, /* U+00fcc8: ARABIC LIGATURE KAF WITH MEEM INITIAL FORM*/ + RTUNI_ALPHA, /* U+00fcc9: ARABIC LIGATURE LAM WITH JEEM INITIAL FORM*/ + RTUNI_ALPHA, /* U+00fcca: ARABIC LIGATURE LAM WITH HAH INITIAL FORM*/ + RTUNI_ALPHA, /* U+00fccb: ARABIC LIGATURE LAM WITH KHAH INITIAL FORM*/ + RTUNI_ALPHA, /* U+00fccc: ARABIC LIGATURE LAM WITH MEEM INITIAL FORM*/ + RTUNI_ALPHA, /* U+00fccd: ARABIC LIGATURE LAM WITH HEH INITIAL FORM*/ + RTUNI_ALPHA, /* U+00fcce: ARABIC LIGATURE MEEM WITH JEEM INITIAL FORM*/ + RTUNI_ALPHA, /* U+00fccf: ARABIC LIGATURE MEEM WITH HAH INITIAL FORM*/ + RTUNI_ALPHA, /* U+00fcd0: ARABIC LIGATURE MEEM WITH KHAH INITIAL FORM*/ + RTUNI_ALPHA, /* U+00fcd1: ARABIC LIGATURE MEEM WITH MEEM INITIAL FORM*/ + RTUNI_ALPHA, /* U+00fcd2: ARABIC LIGATURE NOON WITH JEEM INITIAL FORM*/ + RTUNI_ALPHA, /* U+00fcd3: ARABIC LIGATURE NOON WITH HAH INITIAL FORM*/ + RTUNI_ALPHA, /* U+00fcd4: ARABIC LIGATURE NOON WITH KHAH INITIAL FORM*/ + RTUNI_ALPHA, /* U+00fcd5: ARABIC LIGATURE NOON WITH MEEM INITIAL FORM*/ + RTUNI_ALPHA, /* U+00fcd6: ARABIC LIGATURE NOON WITH HEH INITIAL FORM*/ + RTUNI_ALPHA, /* U+00fcd7: ARABIC LIGATURE HEH WITH JEEM INITIAL FORM*/ + RTUNI_ALPHA, /* U+00fcd8: ARABIC LIGATURE HEH WITH MEEM INITIAL FORM*/ + RTUNI_ALPHA, /* U+00fcd9: ARABIC LIGATURE HEH WITH SUPERSCRIPT ALEF INITIAL FORM*/ + RTUNI_ALPHA, /* U+00fcda: ARABIC LIGATURE YEH WITH JEEM INITIAL FORM*/ + RTUNI_ALPHA, /* U+00fcdb: ARABIC LIGATURE YEH WITH HAH INITIAL FORM*/ + RTUNI_ALPHA, /* U+00fcdc: ARABIC LIGATURE YEH WITH KHAH INITIAL FORM*/ + RTUNI_ALPHA, /* U+00fcdd: ARABIC LIGATURE YEH WITH MEEM INITIAL FORM*/ + RTUNI_ALPHA, /* U+00fcde: ARABIC LIGATURE YEH WITH HEH INITIAL FORM*/ + RTUNI_ALPHA, /* U+00fcdf: ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH MEEM MEDIAL FORM*/ + RTUNI_ALPHA, /* U+00fce0: ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH HEH MEDIAL FORM*/ + RTUNI_ALPHA, /* U+00fce1: ARABIC LIGATURE BEH WITH MEEM MEDIAL FORM*/ + RTUNI_ALPHA, /* U+00fce2: ARABIC LIGATURE BEH WITH HEH MEDIAL FORM*/ + RTUNI_ALPHA, /* U+00fce3: ARABIC LIGATURE TEH WITH MEEM MEDIAL FORM*/ + RTUNI_ALPHA, /* U+00fce4: ARABIC LIGATURE TEH WITH HEH MEDIAL FORM*/ + RTUNI_ALPHA, /* U+00fce5: ARABIC LIGATURE THEH WITH MEEM MEDIAL FORM*/ + RTUNI_ALPHA, /* U+00fce6: ARABIC LIGATURE THEH WITH HEH MEDIAL FORM*/ + RTUNI_ALPHA, /* U+00fce7: ARABIC LIGATURE SEEN WITH MEEM MEDIAL FORM*/ + RTUNI_ALPHA, /* U+00fce8: ARABIC LIGATURE SEEN WITH HEH MEDIAL FORM*/ + RTUNI_ALPHA, /* U+00fce9: ARABIC LIGATURE SHEEN WITH MEEM MEDIAL FORM*/ + RTUNI_ALPHA, /* U+00fcea: ARABIC LIGATURE SHEEN WITH HEH MEDIAL FORM*/ + RTUNI_ALPHA, /* U+00fceb: ARABIC LIGATURE KAF WITH LAM MEDIAL FORM*/ + RTUNI_ALPHA, /* U+00fcec: ARABIC LIGATURE KAF WITH MEEM MEDIAL FORM*/ + RTUNI_ALPHA, /* U+00fced: ARABIC LIGATURE LAM WITH MEEM MEDIAL FORM*/ + RTUNI_ALPHA, /* U+00fcee: ARABIC LIGATURE NOON WITH MEEM MEDIAL FORM*/ + RTUNI_ALPHA, /* U+00fcef: ARABIC LIGATURE NOON WITH HEH MEDIAL FORM*/ + RTUNI_ALPHA, /* U+00fcf0: ARABIC LIGATURE YEH WITH MEEM MEDIAL FORM*/ + RTUNI_ALPHA, /* U+00fcf1: ARABIC LIGATURE YEH WITH HEH MEDIAL FORM*/ + RTUNI_ALPHA, /* U+00fcf2: ARABIC LIGATURE SHADDA WITH FATHA MEDIAL FORM*/ + RTUNI_ALPHA, /* U+00fcf3: ARABIC LIGATURE SHADDA WITH DAMMA MEDIAL FORM*/ + RTUNI_ALPHA, /* U+00fcf4: ARABIC LIGATURE SHADDA WITH KASRA MEDIAL FORM*/ + RTUNI_ALPHA, /* U+00fcf5: ARABIC LIGATURE TAH WITH ALEF MAKSURA ISOLATED FORM*/ + RTUNI_ALPHA, /* U+00fcf6: ARABIC LIGATURE TAH WITH YEH ISOLATED FORM*/ + RTUNI_ALPHA, /* U+00fcf7: ARABIC LIGATURE AIN WITH ALEF MAKSURA ISOLATED FORM*/ + RTUNI_ALPHA, /* U+00fcf8: ARABIC LIGATURE AIN WITH YEH ISOLATED FORM*/ + RTUNI_ALPHA, /* U+00fcf9: ARABIC LIGATURE GHAIN WITH ALEF MAKSURA ISOLATED FORM*/ + RTUNI_ALPHA, /* U+00fcfa: ARABIC LIGATURE GHAIN WITH YEH ISOLATED FORM*/ + RTUNI_ALPHA, /* U+00fcfb: ARABIC LIGATURE SEEN WITH ALEF MAKSURA ISOLATED FORM*/ + RTUNI_ALPHA, /* U+00fcfc: ARABIC LIGATURE SEEN WITH YEH ISOLATED FORM*/ + RTUNI_ALPHA, /* U+00fcfd: ARABIC LIGATURE SHEEN WITH ALEF MAKSURA ISOLATED FORM*/ + RTUNI_ALPHA, /* U+00fcfe: ARABIC LIGATURE SHEEN WITH YEH ISOLATED FORM*/ + RTUNI_ALPHA, /* U+00fcff: ARABIC LIGATURE HAH WITH ALEF MAKSURA ISOLATED FORM*/ + RTUNI_ALPHA, /* U+00fd00: ARABIC LIGATURE HAH WITH YEH ISOLATED FORM*/ + RTUNI_ALPHA, /* U+00fd01: ARABIC LIGATURE JEEM WITH ALEF MAKSURA ISOLATED FORM*/ + RTUNI_ALPHA, /* U+00fd02: ARABIC LIGATURE JEEM WITH YEH ISOLATED FORM*/ + RTUNI_ALPHA, /* U+00fd03: ARABIC LIGATURE KHAH WITH ALEF MAKSURA ISOLATED FORM*/ + RTUNI_ALPHA, /* U+00fd04: ARABIC LIGATURE KHAH WITH YEH ISOLATED FORM*/ + RTUNI_ALPHA, /* U+00fd05: ARABIC LIGATURE SAD WITH ALEF MAKSURA ISOLATED FORM*/ + RTUNI_ALPHA, /* U+00fd06: ARABIC LIGATURE SAD WITH YEH ISOLATED FORM*/ + RTUNI_ALPHA, /* U+00fd07: ARABIC LIGATURE DAD WITH ALEF MAKSURA ISOLATED FORM*/ + RTUNI_ALPHA, /* U+00fd08: ARABIC LIGATURE DAD WITH YEH ISOLATED FORM*/ + RTUNI_ALPHA, /* U+00fd09: ARABIC LIGATURE SHEEN WITH JEEM ISOLATED FORM*/ + RTUNI_ALPHA, /* U+00fd0a: ARABIC LIGATURE SHEEN WITH HAH ISOLATED FORM*/ + RTUNI_ALPHA, /* U+00fd0b: ARABIC LIGATURE SHEEN WITH KHAH ISOLATED FORM*/ + RTUNI_ALPHA, /* U+00fd0c: ARABIC LIGATURE SHEEN WITH MEEM ISOLATED FORM*/ + RTUNI_ALPHA, /* U+00fd0d: ARABIC LIGATURE SHEEN WITH REH ISOLATED FORM*/ + RTUNI_ALPHA, /* U+00fd0e: ARABIC LIGATURE SEEN WITH REH ISOLATED FORM*/ + RTUNI_ALPHA, /* U+00fd0f: ARABIC LIGATURE SAD WITH REH ISOLATED FORM*/ + RTUNI_ALPHA, /* U+00fd10: ARABIC LIGATURE DAD WITH REH ISOLATED FORM*/ + RTUNI_ALPHA, /* U+00fd11: ARABIC LIGATURE TAH WITH ALEF MAKSURA FINAL FORM*/ + RTUNI_ALPHA, /* U+00fd12: ARABIC LIGATURE TAH WITH YEH FINAL FORM*/ + RTUNI_ALPHA, /* U+00fd13: ARABIC LIGATURE AIN WITH ALEF MAKSURA FINAL FORM*/ + RTUNI_ALPHA, /* U+00fd14: ARABIC LIGATURE AIN WITH YEH FINAL FORM*/ + RTUNI_ALPHA, /* U+00fd15: ARABIC LIGATURE GHAIN WITH ALEF MAKSURA FINAL FORM*/ + RTUNI_ALPHA, /* U+00fd16: ARABIC LIGATURE GHAIN WITH YEH FINAL FORM*/ + RTUNI_ALPHA, /* U+00fd17: ARABIC LIGATURE SEEN WITH ALEF MAKSURA FINAL FORM*/ + RTUNI_ALPHA, /* U+00fd18: ARABIC LIGATURE SEEN WITH YEH FINAL FORM*/ + RTUNI_ALPHA, /* U+00fd19: ARABIC LIGATURE SHEEN WITH ALEF MAKSURA FINAL FORM*/ + RTUNI_ALPHA, /* U+00fd1a: ARABIC LIGATURE SHEEN WITH YEH FINAL FORM*/ + RTUNI_ALPHA, /* U+00fd1b: ARABIC LIGATURE HAH WITH ALEF MAKSURA FINAL FORM*/ + RTUNI_ALPHA, /* U+00fd1c: ARABIC LIGATURE HAH WITH YEH FINAL FORM*/ + RTUNI_ALPHA, /* U+00fd1d: ARABIC LIGATURE JEEM WITH ALEF MAKSURA FINAL FORM*/ + RTUNI_ALPHA, /* U+00fd1e: ARABIC LIGATURE JEEM WITH YEH FINAL FORM*/ + RTUNI_ALPHA, /* U+00fd1f: ARABIC LIGATURE KHAH WITH ALEF MAKSURA FINAL FORM*/ + RTUNI_ALPHA, /* U+00fd20: ARABIC LIGATURE KHAH WITH YEH FINAL FORM*/ + RTUNI_ALPHA, /* U+00fd21: ARABIC LIGATURE SAD WITH ALEF MAKSURA FINAL FORM*/ + RTUNI_ALPHA, /* U+00fd22: ARABIC LIGATURE SAD WITH YEH FINAL FORM*/ + RTUNI_ALPHA, /* U+00fd23: ARABIC LIGATURE DAD WITH ALEF MAKSURA FINAL FORM*/ + RTUNI_ALPHA, /* U+00fd24: ARABIC LIGATURE DAD WITH YEH FINAL FORM*/ + RTUNI_ALPHA, /* U+00fd25: ARABIC LIGATURE SHEEN WITH JEEM FINAL FORM*/ + RTUNI_ALPHA, /* U+00fd26: ARABIC LIGATURE SHEEN WITH HAH FINAL FORM*/ + RTUNI_ALPHA, /* U+00fd27: ARABIC LIGATURE SHEEN WITH KHAH FINAL FORM*/ + RTUNI_ALPHA, /* U+00fd28: ARABIC LIGATURE SHEEN WITH MEEM FINAL FORM*/ + RTUNI_ALPHA, /* U+00fd29: ARABIC LIGATURE SHEEN WITH REH FINAL FORM*/ + RTUNI_ALPHA, /* U+00fd2a: ARABIC LIGATURE SEEN WITH REH FINAL FORM*/ + RTUNI_ALPHA, /* U+00fd2b: ARABIC LIGATURE SAD WITH REH FINAL FORM*/ + RTUNI_ALPHA, /* U+00fd2c: ARABIC LIGATURE DAD WITH REH FINAL FORM*/ + RTUNI_ALPHA, /* U+00fd2d: ARABIC LIGATURE SHEEN WITH JEEM INITIAL FORM*/ + RTUNI_ALPHA, /* U+00fd2e: ARABIC LIGATURE SHEEN WITH HAH INITIAL FORM*/ + RTUNI_ALPHA, /* U+00fd2f: ARABIC LIGATURE SHEEN WITH KHAH INITIAL FORM*/ + RTUNI_ALPHA, /* U+00fd30: ARABIC LIGATURE SHEEN WITH MEEM INITIAL FORM*/ + RTUNI_ALPHA, /* U+00fd31: ARABIC LIGATURE SEEN WITH HEH INITIAL FORM*/ + RTUNI_ALPHA, /* U+00fd32: ARABIC LIGATURE SHEEN WITH HEH INITIAL FORM*/ + RTUNI_ALPHA, /* U+00fd33: ARABIC LIGATURE TAH WITH MEEM INITIAL FORM*/ + RTUNI_ALPHA, /* U+00fd34: ARABIC LIGATURE SEEN WITH JEEM MEDIAL FORM*/ + RTUNI_ALPHA, /* U+00fd35: ARABIC LIGATURE SEEN WITH HAH MEDIAL FORM*/ + RTUNI_ALPHA, /* U+00fd36: ARABIC LIGATURE SEEN WITH KHAH MEDIAL FORM*/ + RTUNI_ALPHA, /* U+00fd37: ARABIC LIGATURE SHEEN WITH JEEM MEDIAL FORM*/ + RTUNI_ALPHA, /* U+00fd38: ARABIC LIGATURE SHEEN WITH HAH MEDIAL FORM*/ + RTUNI_ALPHA, /* U+00fd39: ARABIC LIGATURE SHEEN WITH KHAH MEDIAL FORM*/ + RTUNI_ALPHA, /* U+00fd3a: ARABIC LIGATURE TAH WITH MEEM MEDIAL FORM*/ + RTUNI_ALPHA, /* U+00fd3b: ARABIC LIGATURE ZAH WITH MEEM MEDIAL FORM*/ + RTUNI_ALPHA, /* U+00fd3c: ARABIC LIGATURE ALEF WITH FATHATAN FINAL FORM*/ + RTUNI_ALPHA, /* U+00fd3d: ARABIC LIGATURE ALEF WITH FATHATAN ISOLATED FORM*/ + 0, /* U+00fd3e: ORNATE LEFT PARENTHESIS*/ + 0, /* U+00fd3f: ORNATE RIGHT PARENTHESIS*/ + 0, /* U+00fd40: */ + 0, /* U+00fd41: */ + 0, /* U+00fd42: */ + 0, /* U+00fd43: */ + 0, /* U+00fd44: */ + 0, /* U+00fd45: */ + 0, /* U+00fd46: */ + 0, /* U+00fd47: */ + 0, /* U+00fd48: */ + 0, /* U+00fd49: */ + 0, /* U+00fd4a: */ + 0, /* U+00fd4b: */ + 0, /* U+00fd4c: */ + 0, /* U+00fd4d: */ + 0, /* U+00fd4e: */ + 0, /* U+00fd4f: */ + RTUNI_ALPHA, /* U+00fd50: ARABIC LIGATURE TEH WITH JEEM WITH MEEM INITIAL FORM*/ + RTUNI_ALPHA, /* U+00fd51: ARABIC LIGATURE TEH WITH HAH WITH JEEM FINAL FORM*/ + RTUNI_ALPHA, /* U+00fd52: ARABIC LIGATURE TEH WITH HAH WITH JEEM INITIAL FORM*/ + RTUNI_ALPHA, /* U+00fd53: ARABIC LIGATURE TEH WITH HAH WITH MEEM INITIAL FORM*/ + RTUNI_ALPHA, /* U+00fd54: ARABIC LIGATURE TEH WITH KHAH WITH MEEM INITIAL FORM*/ + RTUNI_ALPHA, /* U+00fd55: ARABIC LIGATURE TEH WITH MEEM WITH JEEM INITIAL FORM*/ + RTUNI_ALPHA, /* U+00fd56: ARABIC LIGATURE TEH WITH MEEM WITH HAH INITIAL FORM*/ + RTUNI_ALPHA, /* U+00fd57: ARABIC LIGATURE TEH WITH MEEM WITH KHAH INITIAL FORM*/ + RTUNI_ALPHA, /* U+00fd58: ARABIC LIGATURE JEEM WITH MEEM WITH HAH FINAL FORM*/ + RTUNI_ALPHA, /* U+00fd59: ARABIC LIGATURE JEEM WITH MEEM WITH HAH INITIAL FORM*/ + RTUNI_ALPHA, /* U+00fd5a: ARABIC LIGATURE HAH WITH MEEM WITH YEH FINAL FORM*/ + RTUNI_ALPHA, /* U+00fd5b: ARABIC LIGATURE HAH WITH MEEM WITH ALEF MAKSURA FINAL FORM*/ + RTUNI_ALPHA, /* U+00fd5c: ARABIC LIGATURE SEEN WITH HAH WITH JEEM INITIAL FORM*/ + RTUNI_ALPHA, /* U+00fd5d: ARABIC LIGATURE SEEN WITH JEEM WITH HAH INITIAL FORM*/ + RTUNI_ALPHA, /* U+00fd5e: ARABIC LIGATURE SEEN WITH JEEM WITH ALEF MAKSURA FINAL FORM*/ + RTUNI_ALPHA, /* U+00fd5f: ARABIC LIGATURE SEEN WITH MEEM WITH HAH FINAL FORM*/ + RTUNI_ALPHA, /* U+00fd60: ARABIC LIGATURE SEEN WITH MEEM WITH HAH INITIAL FORM*/ + RTUNI_ALPHA, /* U+00fd61: ARABIC LIGATURE SEEN WITH MEEM WITH JEEM INITIAL FORM*/ + RTUNI_ALPHA, /* U+00fd62: ARABIC LIGATURE SEEN WITH MEEM WITH MEEM FINAL FORM*/ + RTUNI_ALPHA, /* U+00fd63: ARABIC LIGATURE SEEN WITH MEEM WITH MEEM INITIAL FORM*/ + RTUNI_ALPHA, /* U+00fd64: ARABIC LIGATURE SAD WITH HAH WITH HAH FINAL FORM*/ + RTUNI_ALPHA, /* U+00fd65: ARABIC LIGATURE SAD WITH HAH WITH HAH INITIAL FORM*/ + RTUNI_ALPHA, /* U+00fd66: ARABIC LIGATURE SAD WITH MEEM WITH MEEM FINAL FORM*/ + RTUNI_ALPHA, /* U+00fd67: ARABIC LIGATURE SHEEN WITH HAH WITH MEEM FINAL FORM*/ + RTUNI_ALPHA, /* U+00fd68: ARABIC LIGATURE SHEEN WITH HAH WITH MEEM INITIAL FORM*/ + RTUNI_ALPHA, /* U+00fd69: ARABIC LIGATURE SHEEN WITH JEEM WITH YEH FINAL FORM*/ + RTUNI_ALPHA, /* U+00fd6a: ARABIC LIGATURE SHEEN WITH MEEM WITH KHAH FINAL FORM*/ + RTUNI_ALPHA, /* U+00fd6b: ARABIC LIGATURE SHEEN WITH MEEM WITH KHAH INITIAL FORM*/ + RTUNI_ALPHA, /* U+00fd6c: ARABIC LIGATURE SHEEN WITH MEEM WITH MEEM FINAL FORM*/ + RTUNI_ALPHA, /* U+00fd6d: ARABIC LIGATURE SHEEN WITH MEEM WITH MEEM INITIAL FORM*/ + RTUNI_ALPHA, /* U+00fd6e: ARABIC LIGATURE DAD WITH HAH WITH ALEF MAKSURA FINAL FORM*/ + RTUNI_ALPHA, /* U+00fd6f: ARABIC LIGATURE DAD WITH KHAH WITH MEEM FINAL FORM*/ + RTUNI_ALPHA, /* U+00fd70: ARABIC LIGATURE DAD WITH KHAH WITH MEEM INITIAL FORM*/ + RTUNI_ALPHA, /* U+00fd71: ARABIC LIGATURE TAH WITH MEEM WITH HAH FINAL FORM*/ + RTUNI_ALPHA, /* U+00fd72: ARABIC LIGATURE TAH WITH MEEM WITH HAH INITIAL FORM*/ + RTUNI_ALPHA, /* U+00fd73: ARABIC LIGATURE TAH WITH MEEM WITH MEEM INITIAL FORM*/ + RTUNI_ALPHA, /* U+00fd74: ARABIC LIGATURE TAH WITH MEEM WITH YEH FINAL FORM*/ + RTUNI_ALPHA, /* U+00fd75: ARABIC LIGATURE AIN WITH JEEM WITH MEEM FINAL FORM*/ + RTUNI_ALPHA, /* U+00fd76: ARABIC LIGATURE AIN WITH MEEM WITH MEEM FINAL FORM*/ + RTUNI_ALPHA, /* U+00fd77: ARABIC LIGATURE AIN WITH MEEM WITH MEEM INITIAL FORM*/ + RTUNI_ALPHA, /* U+00fd78: ARABIC LIGATURE AIN WITH MEEM WITH ALEF MAKSURA FINAL FORM*/ + RTUNI_ALPHA, /* U+00fd79: ARABIC LIGATURE GHAIN WITH MEEM WITH MEEM FINAL FORM*/ + RTUNI_ALPHA, /* U+00fd7a: ARABIC LIGATURE GHAIN WITH MEEM WITH YEH FINAL FORM*/ + RTUNI_ALPHA, /* U+00fd7b: ARABIC LIGATURE GHAIN WITH MEEM WITH ALEF MAKSURA FINAL FORM*/ + RTUNI_ALPHA, /* U+00fd7c: ARABIC LIGATURE FEH WITH KHAH WITH MEEM FINAL FORM*/ + RTUNI_ALPHA, /* U+00fd7d: ARABIC LIGATURE FEH WITH KHAH WITH MEEM INITIAL FORM*/ + RTUNI_ALPHA, /* U+00fd7e: ARABIC LIGATURE QAF WITH MEEM WITH HAH FINAL FORM*/ + RTUNI_ALPHA, /* U+00fd7f: ARABIC LIGATURE QAF WITH MEEM WITH MEEM FINAL FORM*/ + RTUNI_ALPHA, /* U+00fd80: ARABIC LIGATURE LAM WITH HAH WITH MEEM FINAL FORM*/ + RTUNI_ALPHA, /* U+00fd81: ARABIC LIGATURE LAM WITH HAH WITH YEH FINAL FORM*/ + RTUNI_ALPHA, /* U+00fd82: ARABIC LIGATURE LAM WITH HAH WITH ALEF MAKSURA FINAL FORM*/ + RTUNI_ALPHA, /* U+00fd83: ARABIC LIGATURE LAM WITH JEEM WITH JEEM INITIAL FORM*/ + RTUNI_ALPHA, /* U+00fd84: ARABIC LIGATURE LAM WITH JEEM WITH JEEM FINAL FORM*/ + RTUNI_ALPHA, /* U+00fd85: ARABIC LIGATURE LAM WITH KHAH WITH MEEM FINAL FORM*/ + RTUNI_ALPHA, /* U+00fd86: ARABIC LIGATURE LAM WITH KHAH WITH MEEM INITIAL FORM*/ + RTUNI_ALPHA, /* U+00fd87: ARABIC LIGATURE LAM WITH MEEM WITH HAH FINAL FORM*/ + RTUNI_ALPHA, /* U+00fd88: ARABIC LIGATURE LAM WITH MEEM WITH HAH INITIAL FORM*/ + RTUNI_ALPHA, /* U+00fd89: ARABIC LIGATURE MEEM WITH HAH WITH JEEM INITIAL FORM*/ + RTUNI_ALPHA, /* U+00fd8a: ARABIC LIGATURE MEEM WITH HAH WITH MEEM INITIAL FORM*/ + RTUNI_ALPHA, /* U+00fd8b: ARABIC LIGATURE MEEM WITH HAH WITH YEH FINAL FORM*/ + RTUNI_ALPHA, /* U+00fd8c: ARABIC LIGATURE MEEM WITH JEEM WITH HAH INITIAL FORM*/ + RTUNI_ALPHA, /* U+00fd8d: ARABIC LIGATURE MEEM WITH JEEM WITH MEEM INITIAL FORM*/ + RTUNI_ALPHA, /* U+00fd8e: ARABIC LIGATURE MEEM WITH KHAH WITH JEEM INITIAL FORM*/ + RTUNI_ALPHA, /* U+00fd8f: ARABIC LIGATURE MEEM WITH KHAH WITH MEEM INITIAL FORM*/ + 0, /* U+00fd90: */ + 0, /* U+00fd91: */ + RTUNI_ALPHA, /* U+00fd92: ARABIC LIGATURE MEEM WITH JEEM WITH KHAH INITIAL FORM*/ + RTUNI_ALPHA, /* U+00fd93: ARABIC LIGATURE HEH WITH MEEM WITH JEEM INITIAL FORM*/ + RTUNI_ALPHA, /* U+00fd94: ARABIC LIGATURE HEH WITH MEEM WITH MEEM INITIAL FORM*/ + RTUNI_ALPHA, /* U+00fd95: ARABIC LIGATURE NOON WITH HAH WITH MEEM INITIAL FORM*/ + RTUNI_ALPHA, /* U+00fd96: ARABIC LIGATURE NOON WITH HAH WITH ALEF MAKSURA FINAL FORM*/ + RTUNI_ALPHA, /* U+00fd97: ARABIC LIGATURE NOON WITH JEEM WITH MEEM FINAL FORM*/ + RTUNI_ALPHA, /* U+00fd98: ARABIC LIGATURE NOON WITH JEEM WITH MEEM INITIAL FORM*/ + RTUNI_ALPHA, /* U+00fd99: ARABIC LIGATURE NOON WITH JEEM WITH ALEF MAKSURA FINAL FORM*/ + RTUNI_ALPHA, /* U+00fd9a: ARABIC LIGATURE NOON WITH MEEM WITH YEH FINAL FORM*/ + RTUNI_ALPHA, /* U+00fd9b: ARABIC LIGATURE NOON WITH MEEM WITH ALEF MAKSURA FINAL FORM*/ + RTUNI_ALPHA, /* U+00fd9c: ARABIC LIGATURE YEH WITH MEEM WITH MEEM FINAL FORM*/ + RTUNI_ALPHA, /* U+00fd9d: ARABIC LIGATURE YEH WITH MEEM WITH MEEM INITIAL FORM*/ + RTUNI_ALPHA, /* U+00fd9e: ARABIC LIGATURE BEH WITH KHAH WITH YEH FINAL FORM*/ + RTUNI_ALPHA, /* U+00fd9f: ARABIC LIGATURE TEH WITH JEEM WITH YEH FINAL FORM*/ + RTUNI_ALPHA, /* U+00fda0: ARABIC LIGATURE TEH WITH JEEM WITH ALEF MAKSURA FINAL FORM*/ + RTUNI_ALPHA, /* U+00fda1: ARABIC LIGATURE TEH WITH KHAH WITH YEH FINAL FORM*/ + RTUNI_ALPHA, /* U+00fda2: ARABIC LIGATURE TEH WITH KHAH WITH ALEF MAKSURA FINAL FORM*/ + RTUNI_ALPHA, /* U+00fda3: ARABIC LIGATURE TEH WITH MEEM WITH YEH FINAL FORM*/ + RTUNI_ALPHA, /* U+00fda4: ARABIC LIGATURE TEH WITH MEEM WITH ALEF MAKSURA FINAL FORM*/ + RTUNI_ALPHA, /* U+00fda5: ARABIC LIGATURE JEEM WITH MEEM WITH YEH FINAL FORM*/ + RTUNI_ALPHA, /* U+00fda6: ARABIC LIGATURE JEEM WITH HAH WITH ALEF MAKSURA FINAL FORM*/ + RTUNI_ALPHA, /* U+00fda7: ARABIC LIGATURE JEEM WITH MEEM WITH ALEF MAKSURA FINAL FORM*/ + RTUNI_ALPHA, /* U+00fda8: ARABIC LIGATURE SEEN WITH KHAH WITH ALEF MAKSURA FINAL FORM*/ + RTUNI_ALPHA, /* U+00fda9: ARABIC LIGATURE SAD WITH HAH WITH YEH FINAL FORM*/ + RTUNI_ALPHA, /* U+00fdaa: ARABIC LIGATURE SHEEN WITH HAH WITH YEH FINAL FORM*/ + RTUNI_ALPHA, /* U+00fdab: ARABIC LIGATURE DAD WITH HAH WITH YEH FINAL FORM*/ + RTUNI_ALPHA, /* U+00fdac: ARABIC LIGATURE LAM WITH JEEM WITH YEH FINAL FORM*/ + RTUNI_ALPHA, /* U+00fdad: ARABIC LIGATURE LAM WITH MEEM WITH YEH FINAL FORM*/ + RTUNI_ALPHA, /* U+00fdae: ARABIC LIGATURE YEH WITH HAH WITH YEH FINAL FORM*/ + RTUNI_ALPHA, /* U+00fdaf: ARABIC LIGATURE YEH WITH JEEM WITH YEH FINAL FORM*/ + RTUNI_ALPHA, /* U+00fdb0: ARABIC LIGATURE YEH WITH MEEM WITH YEH FINAL FORM*/ + RTUNI_ALPHA, /* U+00fdb1: ARABIC LIGATURE MEEM WITH MEEM WITH YEH FINAL FORM*/ + RTUNI_ALPHA, /* U+00fdb2: ARABIC LIGATURE QAF WITH MEEM WITH YEH FINAL FORM*/ + RTUNI_ALPHA, /* U+00fdb3: ARABIC LIGATURE NOON WITH HAH WITH YEH FINAL FORM*/ + RTUNI_ALPHA, /* U+00fdb4: ARABIC LIGATURE QAF WITH MEEM WITH HAH INITIAL FORM*/ + RTUNI_ALPHA, /* U+00fdb5: ARABIC LIGATURE LAM WITH HAH WITH MEEM INITIAL FORM*/ + RTUNI_ALPHA, /* U+00fdb6: ARABIC LIGATURE AIN WITH MEEM WITH YEH FINAL FORM*/ + RTUNI_ALPHA, /* U+00fdb7: ARABIC LIGATURE KAF WITH MEEM WITH YEH FINAL FORM*/ + RTUNI_ALPHA, /* U+00fdb8: ARABIC LIGATURE NOON WITH JEEM WITH HAH INITIAL FORM*/ + RTUNI_ALPHA, /* U+00fdb9: ARABIC LIGATURE MEEM WITH KHAH WITH YEH FINAL FORM*/ + RTUNI_ALPHA, /* U+00fdba: ARABIC LIGATURE LAM WITH JEEM WITH MEEM INITIAL FORM*/ + RTUNI_ALPHA, /* U+00fdbb: ARABIC LIGATURE KAF WITH MEEM WITH MEEM FINAL FORM*/ + RTUNI_ALPHA, /* U+00fdbc: ARABIC LIGATURE LAM WITH JEEM WITH MEEM FINAL FORM*/ + RTUNI_ALPHA, /* U+00fdbd: ARABIC LIGATURE NOON WITH JEEM WITH HAH FINAL FORM*/ + RTUNI_ALPHA, /* U+00fdbe: ARABIC LIGATURE JEEM WITH HAH WITH YEH FINAL FORM*/ + RTUNI_ALPHA, /* U+00fdbf: ARABIC LIGATURE HAH WITH JEEM WITH YEH FINAL FORM*/ + RTUNI_ALPHA, /* U+00fdc0: ARABIC LIGATURE MEEM WITH JEEM WITH YEH FINAL FORM*/ + RTUNI_ALPHA, /* U+00fdc1: ARABIC LIGATURE FEH WITH MEEM WITH YEH FINAL FORM*/ + RTUNI_ALPHA, /* U+00fdc2: ARABIC LIGATURE BEH WITH HAH WITH YEH FINAL FORM*/ + RTUNI_ALPHA, /* U+00fdc3: ARABIC LIGATURE KAF WITH MEEM WITH MEEM INITIAL FORM*/ + RTUNI_ALPHA, /* U+00fdc4: ARABIC LIGATURE AIN WITH JEEM WITH MEEM INITIAL FORM*/ + RTUNI_ALPHA, /* U+00fdc5: ARABIC LIGATURE SAD WITH MEEM WITH MEEM INITIAL FORM*/ + RTUNI_ALPHA, /* U+00fdc6: ARABIC LIGATURE SEEN WITH KHAH WITH YEH FINAL FORM*/ + RTUNI_ALPHA, /* U+00fdc7: ARABIC LIGATURE NOON WITH JEEM WITH YEH FINAL FORM*/ + 0, /* U+00fdc8: */ + 0, /* U+00fdc9: */ + 0, /* U+00fdca: */ + 0, /* U+00fdcb: */ + 0, /* U+00fdcc: */ + 0, /* U+00fdcd: */ + 0, /* U+00fdce: */ + 0, /* U+00fdcf: */ + 0, /* U+00fdd0: */ + 0, /* U+00fdd1: */ + 0, /* U+00fdd2: */ + 0, /* U+00fdd3: */ + 0, /* U+00fdd4: */ + 0, /* U+00fdd5: */ + 0, /* U+00fdd6: */ + 0, /* U+00fdd7: */ + 0, /* U+00fdd8: */ + 0, /* U+00fdd9: */ + 0, /* U+00fdda: */ + 0, /* U+00fddb: */ + 0, /* U+00fddc: */ + 0, /* U+00fddd: */ + 0, /* U+00fdde: */ + 0, /* U+00fddf: */ + 0, /* U+00fde0: */ + 0, /* U+00fde1: */ + 0, /* U+00fde2: */ + 0, /* U+00fde3: */ + 0, /* U+00fde4: */ + 0, /* U+00fde5: */ + 0, /* U+00fde6: */ + 0, /* U+00fde7: */ + 0, /* U+00fde8: */ + 0, /* U+00fde9: */ + 0, /* U+00fdea: */ + 0, /* U+00fdeb: */ + 0, /* U+00fdec: */ + 0, /* U+00fded: */ + 0, /* U+00fdee: */ + 0, /* U+00fdef: */ + RTUNI_ALPHA, /* U+00fdf0: ARABIC LIGATURE SALLA USED AS KORANIC STOP SIGN ISOLATED FORM*/ + RTUNI_ALPHA, /* U+00fdf1: ARABIC LIGATURE QALA USED AS KORANIC STOP SIGN ISOLATED FORM*/ + RTUNI_ALPHA, /* U+00fdf2: ARABIC LIGATURE ALLAH ISOLATED FORM*/ + RTUNI_ALPHA, /* U+00fdf3: ARABIC LIGATURE AKBAR ISOLATED FORM*/ + RTUNI_ALPHA, /* U+00fdf4: ARABIC LIGATURE MOHAMMAD ISOLATED FORM*/ + RTUNI_ALPHA, /* U+00fdf5: ARABIC LIGATURE SALAM ISOLATED FORM*/ + RTUNI_ALPHA, /* U+00fdf6: ARABIC LIGATURE RASOUL ISOLATED FORM*/ + RTUNI_ALPHA, /* U+00fdf7: ARABIC LIGATURE ALAYHE ISOLATED FORM*/ + RTUNI_ALPHA, /* U+00fdf8: ARABIC LIGATURE WASALLAM ISOLATED FORM*/ + RTUNI_ALPHA, /* U+00fdf9: ARABIC LIGATURE SALLA ISOLATED FORM*/ + RTUNI_ALPHA, /* U+00fdfa: ARABIC LIGATURE SALLALLAHOU ALAYHE WASALLAM*/ + RTUNI_ALPHA, /* U+00fdfb: ARABIC LIGATURE JALLAJALALOUHOU*/ + 0, /* U+00fdfc: RIAL SIGN*/ + 0, /* U+00fdfd: ARABIC LIGATURE BISMILLAH AR-RAHMAN AR-RAHEEM*/ + 0, /* U+00fdfe: */ + 0, /* U+00fdff: */ + 0, /* U+00fe00: VARIATION SELECTOR-1*/ + 0, /* U+00fe01: VARIATION SELECTOR-2*/ + 0, /* U+00fe02: VARIATION SELECTOR-3*/ + 0, /* U+00fe03: VARIATION SELECTOR-4*/ + 0, /* U+00fe04: VARIATION SELECTOR-5*/ + 0, /* U+00fe05: VARIATION SELECTOR-6*/ + 0, /* U+00fe06: VARIATION SELECTOR-7*/ + 0, /* U+00fe07: VARIATION SELECTOR-8*/ + 0, /* U+00fe08: VARIATION SELECTOR-9*/ + 0, /* U+00fe09: VARIATION SELECTOR-10*/ + 0, /* U+00fe0a: VARIATION SELECTOR-11*/ + 0, /* U+00fe0b: VARIATION SELECTOR-12*/ + 0, /* U+00fe0c: VARIATION SELECTOR-13*/ + 0, /* U+00fe0d: VARIATION SELECTOR-14*/ + 0, /* U+00fe0e: VARIATION SELECTOR-15*/ + 0, /* U+00fe0f: VARIATION SELECTOR-16*/ + 0, /* U+00fe10: PRESENTATION FORM FOR VERTICAL COMMA*/ + 0, /* U+00fe11: PRESENTATION FORM FOR VERTICAL IDEOGRAPHIC COMMA*/ + 0, /* U+00fe12: PRESENTATION FORM FOR VERTICAL IDEOGRAPHIC FULL STOP*/ + 0, /* U+00fe13: PRESENTATION FORM FOR VERTICAL COLON*/ + 0, /* U+00fe14: PRESENTATION FORM FOR VERTICAL SEMICOLON*/ + 0, /* U+00fe15: PRESENTATION FORM FOR VERTICAL EXCLAMATION MARK*/ + 0, /* U+00fe16: PRESENTATION FORM FOR VERTICAL QUESTION MARK*/ + 0, /* U+00fe17: PRESENTATION FORM FOR VERTICAL LEFT WHITE LENTICULAR BRACKET*/ + 0, /* U+00fe18: PRESENTATION FORM FOR VERTICAL RIGHT WHITE LENTICULAR BRAKCET*/ + 0, /* U+00fe19: PRESENTATION FORM FOR VERTICAL HORIZONTAL ELLIPSIS*/ + 0, /* U+00fe1a: */ + 0, /* U+00fe1b: */ + 0, /* U+00fe1c: */ + 0, /* U+00fe1d: */ + 0, /* U+00fe1e: */ + 0, /* U+00fe1f: */ + 0, /* U+00fe20: COMBINING LIGATURE LEFT HALF*/ + 0, /* U+00fe21: COMBINING LIGATURE RIGHT HALF*/ + 0, /* U+00fe22: COMBINING DOUBLE TILDE LEFT HALF*/ + 0, /* U+00fe23: COMBINING DOUBLE TILDE RIGHT HALF*/ + 0, /* U+00fe24: COMBINING MACRON LEFT HALF*/ + 0, /* U+00fe25: COMBINING MACRON RIGHT HALF*/ + 0, /* U+00fe26: COMBINING CONJOINING MACRON*/ + 0, /* U+00fe27: */ + 0, /* U+00fe28: */ + 0, /* U+00fe29: */ + 0, /* U+00fe2a: */ + 0, /* U+00fe2b: */ + 0, /* U+00fe2c: */ + 0, /* U+00fe2d: */ + 0, /* U+00fe2e: */ + 0, /* U+00fe2f: */ + 0, /* U+00fe30: PRESENTATION FORM FOR VERTICAL TWO DOT LEADER*/ + 0, /* U+00fe31: PRESENTATION FORM FOR VERTICAL EM DASH*/ + 0, /* U+00fe32: PRESENTATION FORM FOR VERTICAL EN DASH*/ + 0, /* U+00fe33: PRESENTATION FORM FOR VERTICAL LOW LINE*/ + 0, /* U+00fe34: PRESENTATION FORM FOR VERTICAL WAVY LOW LINE*/ + 0, /* U+00fe35: PRESENTATION FORM FOR VERTICAL LEFT PARENTHESIS*/ + 0, /* U+00fe36: PRESENTATION FORM FOR VERTICAL RIGHT PARENTHESIS*/ + 0, /* U+00fe37: PRESENTATION FORM FOR VERTICAL LEFT CURLY BRACKET*/ + 0, /* U+00fe38: PRESENTATION FORM FOR VERTICAL RIGHT CURLY BRACKET*/ + 0, /* U+00fe39: PRESENTATION FORM FOR VERTICAL LEFT TORTOISE SHELL BRACKET*/ + 0, /* U+00fe3a: PRESENTATION FORM FOR VERTICAL RIGHT TORTOISE SHELL BRACKET*/ + 0, /* U+00fe3b: PRESENTATION FORM FOR VERTICAL LEFT BLACK LENTICULAR BRACKET*/ + 0, /* U+00fe3c: PRESENTATION FORM FOR VERTICAL RIGHT BLACK LENTICULAR BRACKET*/ + 0, /* U+00fe3d: PRESENTATION FORM FOR VERTICAL LEFT DOUBLE ANGLE BRACKET*/ + 0, /* U+00fe3e: PRESENTATION FORM FOR VERTICAL RIGHT DOUBLE ANGLE BRACKET*/ + 0, /* U+00fe3f: PRESENTATION FORM FOR VERTICAL LEFT ANGLE BRACKET*/ + 0, /* U+00fe40: PRESENTATION FORM FOR VERTICAL RIGHT ANGLE BRACKET*/ + 0, /* U+00fe41: PRESENTATION FORM FOR VERTICAL LEFT CORNER BRACKET*/ + 0, /* U+00fe42: PRESENTATION FORM FOR VERTICAL RIGHT CORNER BRACKET*/ + 0, /* U+00fe43: PRESENTATION FORM FOR VERTICAL LEFT WHITE CORNER BRACKET*/ + 0, /* U+00fe44: PRESENTATION FORM FOR VERTICAL RIGHT WHITE CORNER BRACKET*/ + 0, /* U+00fe45: SESAME DOT*/ + 0, /* U+00fe46: WHITE SESAME DOT*/ + 0, /* U+00fe47: PRESENTATION FORM FOR VERTICAL LEFT SQUARE BRACKET*/ + 0, /* U+00fe48: PRESENTATION FORM FOR VERTICAL RIGHT SQUARE BRACKET*/ + 0, /* U+00fe49: DASHED OVERLINE*/ + 0, /* U+00fe4a: CENTRELINE OVERLINE*/ + 0, /* U+00fe4b: WAVY OVERLINE*/ + 0, /* U+00fe4c: DOUBLE WAVY OVERLINE*/ + 0, /* U+00fe4d: DASHED LOW LINE*/ + 0, /* U+00fe4e: CENTRELINE LOW LINE*/ + 0, /* U+00fe4f: WAVY LOW LINE*/ + 0, /* U+00fe50: SMALL COMMA*/ + 0, /* U+00fe51: SMALL IDEOGRAPHIC COMMA*/ + 0, /* U+00fe52: SMALL FULL STOP*/ + 0, /* U+00fe53: */ + 0, /* U+00fe54: SMALL SEMICOLON*/ + 0, /* U+00fe55: SMALL COLON*/ + 0, /* U+00fe56: SMALL QUESTION MARK*/ + 0, /* U+00fe57: SMALL EXCLAMATION MARK*/ + 0, /* U+00fe58: SMALL EM DASH*/ + 0, /* U+00fe59: SMALL LEFT PARENTHESIS*/ + 0, /* U+00fe5a: SMALL RIGHT PARENTHESIS*/ + 0, /* U+00fe5b: SMALL LEFT CURLY BRACKET*/ + 0, /* U+00fe5c: SMALL RIGHT CURLY BRACKET*/ + 0, /* U+00fe5d: SMALL LEFT TORTOISE SHELL BRACKET*/ + 0, /* U+00fe5e: SMALL RIGHT TORTOISE SHELL BRACKET*/ + 0, /* U+00fe5f: SMALL NUMBER SIGN*/ + 0, /* U+00fe60: SMALL AMPERSAND*/ + 0, /* U+00fe61: SMALL ASTERISK*/ + 0, /* U+00fe62: SMALL PLUS SIGN*/ + 0, /* U+00fe63: SMALL HYPHEN-MINUS*/ + 0, /* U+00fe64: SMALL LESS-THAN SIGN*/ + 0, /* U+00fe65: SMALL GREATER-THAN SIGN*/ + 0, /* U+00fe66: SMALL EQUALS SIGN*/ + 0, /* U+00fe67: */ + 0, /* U+00fe68: SMALL REVERSE SOLIDUS*/ + 0, /* U+00fe69: SMALL DOLLAR SIGN*/ + 0, /* U+00fe6a: SMALL PERCENT SIGN*/ + 0, /* U+00fe6b: SMALL COMMERCIAL AT*/ + 0, /* U+00fe6c: */ + 0, /* U+00fe6d: */ + 0, /* U+00fe6e: */ + 0, /* U+00fe6f: */ + RTUNI_ALPHA, /* U+00fe70: ARABIC FATHATAN ISOLATED FORM*/ + RTUNI_ALPHA, /* U+00fe71: ARABIC TATWEEL WITH FATHATAN ABOVE*/ + RTUNI_ALPHA, /* U+00fe72: ARABIC DAMMATAN ISOLATED FORM*/ + RTUNI_ALPHA, /* U+00fe73: ARABIC TAIL FRAGMENT*/ + RTUNI_ALPHA, /* U+00fe74: ARABIC KASRATAN ISOLATED FORM*/ + 0, /* U+00fe75: */ + RTUNI_ALPHA, /* U+00fe76: ARABIC FATHA ISOLATED FORM*/ + RTUNI_ALPHA, /* U+00fe77: ARABIC FATHA MEDIAL FORM*/ + RTUNI_ALPHA, /* U+00fe78: ARABIC DAMMA ISOLATED FORM*/ + RTUNI_ALPHA, /* U+00fe79: ARABIC DAMMA MEDIAL FORM*/ + RTUNI_ALPHA, /* U+00fe7a: ARABIC KASRA ISOLATED FORM*/ + RTUNI_ALPHA, /* U+00fe7b: ARABIC KASRA MEDIAL FORM*/ + RTUNI_ALPHA, /* U+00fe7c: ARABIC SHADDA ISOLATED FORM*/ + RTUNI_ALPHA, /* U+00fe7d: ARABIC SHADDA MEDIAL FORM*/ + RTUNI_ALPHA, /* U+00fe7e: ARABIC SUKUN ISOLATED FORM*/ + RTUNI_ALPHA, /* U+00fe7f: ARABIC SUKUN MEDIAL FORM*/ + RTUNI_ALPHA, /* U+00fe80: ARABIC LETTER HAMZA ISOLATED FORM*/ + RTUNI_ALPHA, /* U+00fe81: ARABIC LETTER ALEF WITH MADDA ABOVE ISOLATED FORM*/ + RTUNI_ALPHA, /* U+00fe82: ARABIC LETTER ALEF WITH MADDA ABOVE FINAL FORM*/ + RTUNI_ALPHA, /* U+00fe83: ARABIC LETTER ALEF WITH HAMZA ABOVE ISOLATED FORM*/ + RTUNI_ALPHA, /* U+00fe84: ARABIC LETTER ALEF WITH HAMZA ABOVE FINAL FORM*/ + RTUNI_ALPHA, /* U+00fe85: ARABIC LETTER WAW WITH HAMZA ABOVE ISOLATED FORM*/ + RTUNI_ALPHA, /* U+00fe86: ARABIC LETTER WAW WITH HAMZA ABOVE FINAL FORM*/ + RTUNI_ALPHA, /* U+00fe87: ARABIC LETTER ALEF WITH HAMZA BELOW ISOLATED FORM*/ + RTUNI_ALPHA, /* U+00fe88: ARABIC LETTER ALEF WITH HAMZA BELOW FINAL FORM*/ + RTUNI_ALPHA, /* U+00fe89: ARABIC LETTER YEH WITH HAMZA ABOVE ISOLATED FORM*/ + RTUNI_ALPHA, /* U+00fe8a: ARABIC LETTER YEH WITH HAMZA ABOVE FINAL FORM*/ + RTUNI_ALPHA, /* U+00fe8b: ARABIC LETTER YEH WITH HAMZA ABOVE INITIAL FORM*/ + RTUNI_ALPHA, /* U+00fe8c: ARABIC LETTER YEH WITH HAMZA ABOVE MEDIAL FORM*/ + RTUNI_ALPHA, /* U+00fe8d: ARABIC LETTER ALEF ISOLATED FORM*/ + RTUNI_ALPHA, /* U+00fe8e: ARABIC LETTER ALEF FINAL FORM*/ + RTUNI_ALPHA, /* U+00fe8f: ARABIC LETTER BEH ISOLATED FORM*/ + RTUNI_ALPHA, /* U+00fe90: ARABIC LETTER BEH FINAL FORM*/ + RTUNI_ALPHA, /* U+00fe91: ARABIC LETTER BEH INITIAL FORM*/ + RTUNI_ALPHA, /* U+00fe92: ARABIC LETTER BEH MEDIAL FORM*/ + RTUNI_ALPHA, /* U+00fe93: ARABIC LETTER TEH MARBUTA ISOLATED FORM*/ + RTUNI_ALPHA, /* U+00fe94: ARABIC LETTER TEH MARBUTA FINAL FORM*/ + RTUNI_ALPHA, /* U+00fe95: ARABIC LETTER TEH ISOLATED FORM*/ + RTUNI_ALPHA, /* U+00fe96: ARABIC LETTER TEH FINAL FORM*/ + RTUNI_ALPHA, /* U+00fe97: ARABIC LETTER TEH INITIAL FORM*/ + RTUNI_ALPHA, /* U+00fe98: ARABIC LETTER TEH MEDIAL FORM*/ + RTUNI_ALPHA, /* U+00fe99: ARABIC LETTER THEH ISOLATED FORM*/ + RTUNI_ALPHA, /* U+00fe9a: ARABIC LETTER THEH FINAL FORM*/ + RTUNI_ALPHA, /* U+00fe9b: ARABIC LETTER THEH INITIAL FORM*/ + RTUNI_ALPHA, /* U+00fe9c: ARABIC LETTER THEH MEDIAL FORM*/ + RTUNI_ALPHA, /* U+00fe9d: ARABIC LETTER JEEM ISOLATED FORM*/ + RTUNI_ALPHA, /* U+00fe9e: ARABIC LETTER JEEM FINAL FORM*/ + RTUNI_ALPHA, /* U+00fe9f: ARABIC LETTER JEEM INITIAL FORM*/ + RTUNI_ALPHA, /* U+00fea0: ARABIC LETTER JEEM MEDIAL FORM*/ + RTUNI_ALPHA, /* U+00fea1: ARABIC LETTER HAH ISOLATED FORM*/ + RTUNI_ALPHA, /* U+00fea2: ARABIC LETTER HAH FINAL FORM*/ + RTUNI_ALPHA, /* U+00fea3: ARABIC LETTER HAH INITIAL FORM*/ + RTUNI_ALPHA, /* U+00fea4: ARABIC LETTER HAH MEDIAL FORM*/ + RTUNI_ALPHA, /* U+00fea5: ARABIC LETTER KHAH ISOLATED FORM*/ + RTUNI_ALPHA, /* U+00fea6: ARABIC LETTER KHAH FINAL FORM*/ + RTUNI_ALPHA, /* U+00fea7: ARABIC LETTER KHAH INITIAL FORM*/ + RTUNI_ALPHA, /* U+00fea8: ARABIC LETTER KHAH MEDIAL FORM*/ + RTUNI_ALPHA, /* U+00fea9: ARABIC LETTER DAL ISOLATED FORM*/ + RTUNI_ALPHA, /* U+00feaa: ARABIC LETTER DAL FINAL FORM*/ + RTUNI_ALPHA, /* U+00feab: ARABIC LETTER THAL ISOLATED FORM*/ + RTUNI_ALPHA, /* U+00feac: ARABIC LETTER THAL FINAL FORM*/ + RTUNI_ALPHA, /* U+00fead: ARABIC LETTER REH ISOLATED FORM*/ + RTUNI_ALPHA, /* U+00feae: ARABIC LETTER REH FINAL FORM*/ + RTUNI_ALPHA, /* U+00feaf: ARABIC LETTER ZAIN ISOLATED FORM*/ + RTUNI_ALPHA, /* U+00feb0: ARABIC LETTER ZAIN FINAL FORM*/ + RTUNI_ALPHA, /* U+00feb1: ARABIC LETTER SEEN ISOLATED FORM*/ + RTUNI_ALPHA, /* U+00feb2: ARABIC LETTER SEEN FINAL FORM*/ + RTUNI_ALPHA, /* U+00feb3: ARABIC LETTER SEEN INITIAL FORM*/ + RTUNI_ALPHA, /* U+00feb4: ARABIC LETTER SEEN MEDIAL FORM*/ + RTUNI_ALPHA, /* U+00feb5: ARABIC LETTER SHEEN ISOLATED FORM*/ + RTUNI_ALPHA, /* U+00feb6: ARABIC LETTER SHEEN FINAL FORM*/ + RTUNI_ALPHA, /* U+00feb7: ARABIC LETTER SHEEN INITIAL FORM*/ + RTUNI_ALPHA, /* U+00feb8: ARABIC LETTER SHEEN MEDIAL FORM*/ + RTUNI_ALPHA, /* U+00feb9: ARABIC LETTER SAD ISOLATED FORM*/ + RTUNI_ALPHA, /* U+00feba: ARABIC LETTER SAD FINAL FORM*/ + RTUNI_ALPHA, /* U+00febb: ARABIC LETTER SAD INITIAL FORM*/ + RTUNI_ALPHA, /* U+00febc: ARABIC LETTER SAD MEDIAL FORM*/ + RTUNI_ALPHA, /* U+00febd: ARABIC LETTER DAD ISOLATED FORM*/ + RTUNI_ALPHA, /* U+00febe: ARABIC LETTER DAD FINAL FORM*/ + RTUNI_ALPHA, /* U+00febf: ARABIC LETTER DAD INITIAL FORM*/ + RTUNI_ALPHA, /* U+00fec0: ARABIC LETTER DAD MEDIAL FORM*/ + RTUNI_ALPHA, /* U+00fec1: ARABIC LETTER TAH ISOLATED FORM*/ + RTUNI_ALPHA, /* U+00fec2: ARABIC LETTER TAH FINAL FORM*/ + RTUNI_ALPHA, /* U+00fec3: ARABIC LETTER TAH INITIAL FORM*/ + RTUNI_ALPHA, /* U+00fec4: ARABIC LETTER TAH MEDIAL FORM*/ + RTUNI_ALPHA, /* U+00fec5: ARABIC LETTER ZAH ISOLATED FORM*/ + RTUNI_ALPHA, /* U+00fec6: ARABIC LETTER ZAH FINAL FORM*/ + RTUNI_ALPHA, /* U+00fec7: ARABIC LETTER ZAH INITIAL FORM*/ + RTUNI_ALPHA, /* U+00fec8: ARABIC LETTER ZAH MEDIAL FORM*/ + RTUNI_ALPHA, /* U+00fec9: ARABIC LETTER AIN ISOLATED FORM*/ + RTUNI_ALPHA, /* U+00feca: ARABIC LETTER AIN FINAL FORM*/ + RTUNI_ALPHA, /* U+00fecb: ARABIC LETTER AIN INITIAL FORM*/ + RTUNI_ALPHA, /* U+00fecc: ARABIC LETTER AIN MEDIAL FORM*/ + RTUNI_ALPHA, /* U+00fecd: ARABIC LETTER GHAIN ISOLATED FORM*/ + RTUNI_ALPHA, /* U+00fece: ARABIC LETTER GHAIN FINAL FORM*/ + RTUNI_ALPHA, /* U+00fecf: ARABIC LETTER GHAIN INITIAL FORM*/ + RTUNI_ALPHA, /* U+00fed0: ARABIC LETTER GHAIN MEDIAL FORM*/ + RTUNI_ALPHA, /* U+00fed1: ARABIC LETTER FEH ISOLATED FORM*/ + RTUNI_ALPHA, /* U+00fed2: ARABIC LETTER FEH FINAL FORM*/ + RTUNI_ALPHA, /* U+00fed3: ARABIC LETTER FEH INITIAL FORM*/ + RTUNI_ALPHA, /* U+00fed4: ARABIC LETTER FEH MEDIAL FORM*/ + RTUNI_ALPHA, /* U+00fed5: ARABIC LETTER QAF ISOLATED FORM*/ + RTUNI_ALPHA, /* U+00fed6: ARABIC LETTER QAF FINAL FORM*/ + RTUNI_ALPHA, /* U+00fed7: ARABIC LETTER QAF INITIAL FORM*/ + RTUNI_ALPHA, /* U+00fed8: ARABIC LETTER QAF MEDIAL FORM*/ + RTUNI_ALPHA, /* U+00fed9: ARABIC LETTER KAF ISOLATED FORM*/ + RTUNI_ALPHA, /* U+00feda: ARABIC LETTER KAF FINAL FORM*/ + RTUNI_ALPHA, /* U+00fedb: ARABIC LETTER KAF INITIAL FORM*/ + RTUNI_ALPHA, /* U+00fedc: ARABIC LETTER KAF MEDIAL FORM*/ + RTUNI_ALPHA, /* U+00fedd: ARABIC LETTER LAM ISOLATED FORM*/ + RTUNI_ALPHA, /* U+00fede: ARABIC LETTER LAM FINAL FORM*/ + RTUNI_ALPHA, /* U+00fedf: ARABIC LETTER LAM INITIAL FORM*/ + RTUNI_ALPHA, /* U+00fee0: ARABIC LETTER LAM MEDIAL FORM*/ + RTUNI_ALPHA, /* U+00fee1: ARABIC LETTER MEEM ISOLATED FORM*/ + RTUNI_ALPHA, /* U+00fee2: ARABIC LETTER MEEM FINAL FORM*/ + RTUNI_ALPHA, /* U+00fee3: ARABIC LETTER MEEM INITIAL FORM*/ + RTUNI_ALPHA, /* U+00fee4: ARABIC LETTER MEEM MEDIAL FORM*/ + RTUNI_ALPHA, /* U+00fee5: ARABIC LETTER NOON ISOLATED FORM*/ + RTUNI_ALPHA, /* U+00fee6: ARABIC LETTER NOON FINAL FORM*/ + RTUNI_ALPHA, /* U+00fee7: ARABIC LETTER NOON INITIAL FORM*/ + RTUNI_ALPHA, /* U+00fee8: ARABIC LETTER NOON MEDIAL FORM*/ + RTUNI_ALPHA, /* U+00fee9: ARABIC LETTER HEH ISOLATED FORM*/ + RTUNI_ALPHA, /* U+00feea: ARABIC LETTER HEH FINAL FORM*/ + RTUNI_ALPHA, /* U+00feeb: ARABIC LETTER HEH INITIAL FORM*/ + RTUNI_ALPHA, /* U+00feec: ARABIC LETTER HEH MEDIAL FORM*/ + RTUNI_ALPHA, /* U+00feed: ARABIC LETTER WAW ISOLATED FORM*/ + RTUNI_ALPHA, /* U+00feee: ARABIC LETTER WAW FINAL FORM*/ + RTUNI_ALPHA, /* U+00feef: ARABIC LETTER ALEF MAKSURA ISOLATED FORM*/ + RTUNI_ALPHA, /* U+00fef0: ARABIC LETTER ALEF MAKSURA FINAL FORM*/ + RTUNI_ALPHA, /* U+00fef1: ARABIC LETTER YEH ISOLATED FORM*/ + RTUNI_ALPHA, /* U+00fef2: ARABIC LETTER YEH FINAL FORM*/ + RTUNI_ALPHA, /* U+00fef3: ARABIC LETTER YEH INITIAL FORM*/ + RTUNI_ALPHA, /* U+00fef4: ARABIC LETTER YEH MEDIAL FORM*/ + RTUNI_ALPHA, /* U+00fef5: ARABIC LIGATURE LAM WITH ALEF WITH MADDA ABOVE ISOLATED FORM*/ + RTUNI_ALPHA, /* U+00fef6: ARABIC LIGATURE LAM WITH ALEF WITH MADDA ABOVE FINAL FORM*/ + RTUNI_ALPHA, /* U+00fef7: ARABIC LIGATURE LAM WITH ALEF WITH HAMZA ABOVE ISOLATED FORM*/ + RTUNI_ALPHA, /* U+00fef8: ARABIC LIGATURE LAM WITH ALEF WITH HAMZA ABOVE FINAL FORM*/ + RTUNI_ALPHA, /* U+00fef9: ARABIC LIGATURE LAM WITH ALEF WITH HAMZA BELOW ISOLATED FORM*/ + RTUNI_ALPHA, /* U+00fefa: ARABIC LIGATURE LAM WITH ALEF WITH HAMZA BELOW FINAL FORM*/ + RTUNI_ALPHA, /* U+00fefb: ARABIC LIGATURE LAM WITH ALEF ISOLATED FORM*/ + RTUNI_ALPHA, /* U+00fefc: ARABIC LIGATURE LAM WITH ALEF FINAL FORM*/ + 0, /* U+00fefd: */ + 0, /* U+00fefe: */ + 0, /* U+00feff: ZERO WIDTH NO-BREAK SPACE*/ + 0, /* U+00ff00: */ + 0, /* U+00ff01: FULLWIDTH EXCLAMATION MARK*/ + 0, /* U+00ff02: FULLWIDTH QUOTATION MARK*/ + 0, /* U+00ff03: FULLWIDTH NUMBER SIGN*/ + 0, /* U+00ff04: FULLWIDTH DOLLAR SIGN*/ + 0, /* U+00ff05: FULLWIDTH PERCENT SIGN*/ + 0, /* U+00ff06: FULLWIDTH AMPERSAND*/ + 0, /* U+00ff07: FULLWIDTH APOSTROPHE*/ + 0, /* U+00ff08: FULLWIDTH LEFT PARENTHESIS*/ + 0, /* U+00ff09: FULLWIDTH RIGHT PARENTHESIS*/ + 0, /* U+00ff0a: FULLWIDTH ASTERISK*/ + 0, /* U+00ff0b: FULLWIDTH PLUS SIGN*/ + 0, /* U+00ff0c: FULLWIDTH COMMA*/ + 0, /* U+00ff0d: FULLWIDTH HYPHEN-MINUS*/ + 0, /* U+00ff0e: FULLWIDTH FULL STOP*/ + 0, /* U+00ff0f: FULLWIDTH SOLIDUS*/ + RTUNI_XDIGIT | RTUNI_DDIGIT, /* U+00ff10: FULLWIDTH DIGIT ZERO*/ + RTUNI_XDIGIT | RTUNI_DDIGIT, /* U+00ff11: FULLWIDTH DIGIT ONE*/ + RTUNI_XDIGIT | RTUNI_DDIGIT, /* U+00ff12: FULLWIDTH DIGIT TWO*/ + RTUNI_XDIGIT | RTUNI_DDIGIT, /* U+00ff13: FULLWIDTH DIGIT THREE*/ + RTUNI_XDIGIT | RTUNI_DDIGIT, /* U+00ff14: FULLWIDTH DIGIT FOUR*/ + RTUNI_XDIGIT | RTUNI_DDIGIT, /* U+00ff15: FULLWIDTH DIGIT FIVE*/ + RTUNI_XDIGIT | RTUNI_DDIGIT, /* U+00ff16: FULLWIDTH DIGIT SIX*/ + RTUNI_XDIGIT | RTUNI_DDIGIT, /* U+00ff17: FULLWIDTH DIGIT SEVEN*/ + RTUNI_XDIGIT | RTUNI_DDIGIT, /* U+00ff18: FULLWIDTH DIGIT EIGHT*/ + RTUNI_XDIGIT | RTUNI_DDIGIT, /* U+00ff19: FULLWIDTH DIGIT NINE*/ + 0, /* U+00ff1a: FULLWIDTH COLON*/ + 0, /* U+00ff1b: FULLWIDTH SEMICOLON*/ + 0, /* U+00ff1c: FULLWIDTH LESS-THAN SIGN*/ + 0, /* U+00ff1d: FULLWIDTH EQUALS SIGN*/ + 0, /* U+00ff1e: FULLWIDTH GREATER-THAN SIGN*/ + 0, /* U+00ff1f: FULLWIDTH QUESTION MARK*/ + 0, /* U+00ff20: FULLWIDTH COMMERCIAL AT*/ + RTUNI_ALPHA | RTUNI_XDIGIT | RTUNI_UPPER, /* U+00ff21: FULLWIDTH LATIN CAPITAL LETTER A*/ + RTUNI_ALPHA | RTUNI_XDIGIT | RTUNI_UPPER, /* U+00ff22: FULLWIDTH LATIN CAPITAL LETTER B*/ + RTUNI_ALPHA | RTUNI_XDIGIT | RTUNI_UPPER, /* U+00ff23: FULLWIDTH LATIN CAPITAL LETTER C*/ + RTUNI_ALPHA | RTUNI_XDIGIT | RTUNI_UPPER, /* U+00ff24: FULLWIDTH LATIN CAPITAL LETTER D*/ + RTUNI_ALPHA | RTUNI_XDIGIT | RTUNI_UPPER, /* U+00ff25: FULLWIDTH LATIN CAPITAL LETTER E*/ + RTUNI_ALPHA | RTUNI_XDIGIT | RTUNI_UPPER, /* U+00ff26: FULLWIDTH LATIN CAPITAL LETTER F*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+00ff27: FULLWIDTH LATIN CAPITAL LETTER G*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+00ff28: FULLWIDTH LATIN CAPITAL LETTER H*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+00ff29: FULLWIDTH LATIN CAPITAL LETTER I*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+00ff2a: FULLWIDTH LATIN CAPITAL LETTER J*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+00ff2b: FULLWIDTH LATIN CAPITAL LETTER K*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+00ff2c: FULLWIDTH LATIN CAPITAL LETTER L*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+00ff2d: FULLWIDTH LATIN CAPITAL LETTER M*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+00ff2e: FULLWIDTH LATIN CAPITAL LETTER N*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+00ff2f: FULLWIDTH LATIN CAPITAL LETTER O*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+00ff30: FULLWIDTH LATIN CAPITAL LETTER P*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+00ff31: FULLWIDTH LATIN CAPITAL LETTER Q*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+00ff32: FULLWIDTH LATIN CAPITAL LETTER R*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+00ff33: FULLWIDTH LATIN CAPITAL LETTER S*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+00ff34: FULLWIDTH LATIN CAPITAL LETTER T*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+00ff35: FULLWIDTH LATIN CAPITAL LETTER U*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+00ff36: FULLWIDTH LATIN CAPITAL LETTER V*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+00ff37: FULLWIDTH LATIN CAPITAL LETTER W*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+00ff38: FULLWIDTH LATIN CAPITAL LETTER X*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+00ff39: FULLWIDTH LATIN CAPITAL LETTER Y*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+00ff3a: FULLWIDTH LATIN CAPITAL LETTER Z*/ + 0, /* U+00ff3b: FULLWIDTH LEFT SQUARE BRACKET*/ + 0, /* U+00ff3c: FULLWIDTH REVERSE SOLIDUS*/ + 0, /* U+00ff3d: FULLWIDTH RIGHT SQUARE BRACKET*/ + 0, /* U+00ff3e: FULLWIDTH CIRCUMFLEX ACCENT*/ + 0, /* U+00ff3f: FULLWIDTH LOW LINE*/ + 0, /* U+00ff40: FULLWIDTH GRAVE ACCENT*/ + RTUNI_ALPHA | RTUNI_XDIGIT | RTUNI_LOWER, /* U+00ff41: FULLWIDTH LATIN SMALL LETTER A*/ + RTUNI_ALPHA | RTUNI_XDIGIT | RTUNI_LOWER, /* U+00ff42: FULLWIDTH LATIN SMALL LETTER B*/ + RTUNI_ALPHA | RTUNI_XDIGIT | RTUNI_LOWER, /* U+00ff43: FULLWIDTH LATIN SMALL LETTER C*/ + RTUNI_ALPHA | RTUNI_XDIGIT | RTUNI_LOWER, /* U+00ff44: FULLWIDTH LATIN SMALL LETTER D*/ + RTUNI_ALPHA | RTUNI_XDIGIT | RTUNI_LOWER, /* U+00ff45: FULLWIDTH LATIN SMALL LETTER E*/ + RTUNI_ALPHA | RTUNI_XDIGIT | RTUNI_LOWER, /* U+00ff46: FULLWIDTH LATIN SMALL LETTER F*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00ff47: FULLWIDTH LATIN SMALL LETTER G*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00ff48: FULLWIDTH LATIN SMALL LETTER H*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00ff49: FULLWIDTH LATIN SMALL LETTER I*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00ff4a: FULLWIDTH LATIN SMALL LETTER J*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00ff4b: FULLWIDTH LATIN SMALL LETTER K*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00ff4c: FULLWIDTH LATIN SMALL LETTER L*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00ff4d: FULLWIDTH LATIN SMALL LETTER M*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00ff4e: FULLWIDTH LATIN SMALL LETTER N*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00ff4f: FULLWIDTH LATIN SMALL LETTER O*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00ff50: FULLWIDTH LATIN SMALL LETTER P*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00ff51: FULLWIDTH LATIN SMALL LETTER Q*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00ff52: FULLWIDTH LATIN SMALL LETTER R*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00ff53: FULLWIDTH LATIN SMALL LETTER S*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00ff54: FULLWIDTH LATIN SMALL LETTER T*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00ff55: FULLWIDTH LATIN SMALL LETTER U*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00ff56: FULLWIDTH LATIN SMALL LETTER V*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00ff57: FULLWIDTH LATIN SMALL LETTER W*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00ff58: FULLWIDTH LATIN SMALL LETTER X*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00ff59: FULLWIDTH LATIN SMALL LETTER Y*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00ff5a: FULLWIDTH LATIN SMALL LETTER Z*/ + 0, /* U+00ff5b: FULLWIDTH LEFT CURLY BRACKET*/ + 0, /* U+00ff5c: FULLWIDTH VERTICAL LINE*/ + 0, /* U+00ff5d: FULLWIDTH RIGHT CURLY BRACKET*/ + 0, /* U+00ff5e: FULLWIDTH TILDE*/ + 0, /* U+00ff5f: FULLWIDTH LEFT WHITE PARENTHESIS*/ + 0, /* U+00ff60: FULLWIDTH RIGHT WHITE PARENTHESIS*/ + 0, /* U+00ff61: HALFWIDTH IDEOGRAPHIC FULL STOP*/ + 0, /* U+00ff62: HALFWIDTH LEFT CORNER BRACKET*/ + 0, /* U+00ff63: HALFWIDTH RIGHT CORNER BRACKET*/ + 0, /* U+00ff64: HALFWIDTH IDEOGRAPHIC COMMA*/ + 0, /* U+00ff65: HALFWIDTH KATAKANA MIDDLE DOT*/ + RTUNI_ALPHA, /* U+00ff66: HALFWIDTH KATAKANA LETTER WO*/ + RTUNI_ALPHA, /* U+00ff67: HALFWIDTH KATAKANA LETTER SMALL A*/ + RTUNI_ALPHA, /* U+00ff68: HALFWIDTH KATAKANA LETTER SMALL I*/ + RTUNI_ALPHA, /* U+00ff69: HALFWIDTH KATAKANA LETTER SMALL U*/ + RTUNI_ALPHA, /* U+00ff6a: HALFWIDTH KATAKANA LETTER SMALL E*/ + RTUNI_ALPHA, /* U+00ff6b: HALFWIDTH KATAKANA LETTER SMALL O*/ + RTUNI_ALPHA, /* U+00ff6c: HALFWIDTH KATAKANA LETTER SMALL YA*/ + RTUNI_ALPHA, /* U+00ff6d: HALFWIDTH KATAKANA LETTER SMALL YU*/ + RTUNI_ALPHA, /* U+00ff6e: HALFWIDTH KATAKANA LETTER SMALL YO*/ + RTUNI_ALPHA, /* U+00ff6f: HALFWIDTH KATAKANA LETTER SMALL TU*/ + RTUNI_ALPHA, /* U+00ff70: HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK*/ + RTUNI_ALPHA, /* U+00ff71: HALFWIDTH KATAKANA LETTER A*/ + RTUNI_ALPHA, /* U+00ff72: HALFWIDTH KATAKANA LETTER I*/ + RTUNI_ALPHA, /* U+00ff73: HALFWIDTH KATAKANA LETTER U*/ + RTUNI_ALPHA, /* U+00ff74: HALFWIDTH KATAKANA LETTER E*/ + RTUNI_ALPHA, /* U+00ff75: HALFWIDTH KATAKANA LETTER O*/ + RTUNI_ALPHA, /* U+00ff76: HALFWIDTH KATAKANA LETTER KA*/ + RTUNI_ALPHA, /* U+00ff77: HALFWIDTH KATAKANA LETTER KI*/ + RTUNI_ALPHA, /* U+00ff78: HALFWIDTH KATAKANA LETTER KU*/ + RTUNI_ALPHA, /* U+00ff79: HALFWIDTH KATAKANA LETTER KE*/ + RTUNI_ALPHA, /* U+00ff7a: HALFWIDTH KATAKANA LETTER KO*/ + RTUNI_ALPHA, /* U+00ff7b: HALFWIDTH KATAKANA LETTER SA*/ + RTUNI_ALPHA, /* U+00ff7c: HALFWIDTH KATAKANA LETTER SI*/ + RTUNI_ALPHA, /* U+00ff7d: HALFWIDTH KATAKANA LETTER SU*/ + RTUNI_ALPHA, /* U+00ff7e: HALFWIDTH KATAKANA LETTER SE*/ + RTUNI_ALPHA, /* U+00ff7f: HALFWIDTH KATAKANA LETTER SO*/ + RTUNI_ALPHA, /* U+00ff80: HALFWIDTH KATAKANA LETTER TA*/ + RTUNI_ALPHA, /* U+00ff81: HALFWIDTH KATAKANA LETTER TI*/ + RTUNI_ALPHA, /* U+00ff82: HALFWIDTH KATAKANA LETTER TU*/ + RTUNI_ALPHA, /* U+00ff83: HALFWIDTH KATAKANA LETTER TE*/ + RTUNI_ALPHA, /* U+00ff84: HALFWIDTH KATAKANA LETTER TO*/ + RTUNI_ALPHA, /* U+00ff85: HALFWIDTH KATAKANA LETTER NA*/ + RTUNI_ALPHA, /* U+00ff86: HALFWIDTH KATAKANA LETTER NI*/ + RTUNI_ALPHA, /* U+00ff87: HALFWIDTH KATAKANA LETTER NU*/ + RTUNI_ALPHA, /* U+00ff88: HALFWIDTH KATAKANA LETTER NE*/ + RTUNI_ALPHA, /* U+00ff89: HALFWIDTH KATAKANA LETTER NO*/ + RTUNI_ALPHA, /* U+00ff8a: HALFWIDTH KATAKANA LETTER HA*/ + RTUNI_ALPHA, /* U+00ff8b: HALFWIDTH KATAKANA LETTER HI*/ + RTUNI_ALPHA, /* U+00ff8c: HALFWIDTH KATAKANA LETTER HU*/ + RTUNI_ALPHA, /* U+00ff8d: HALFWIDTH KATAKANA LETTER HE*/ + RTUNI_ALPHA, /* U+00ff8e: HALFWIDTH KATAKANA LETTER HO*/ + RTUNI_ALPHA, /* U+00ff8f: HALFWIDTH KATAKANA LETTER MA*/ + RTUNI_ALPHA, /* U+00ff90: HALFWIDTH KATAKANA LETTER MI*/ + RTUNI_ALPHA, /* U+00ff91: HALFWIDTH KATAKANA LETTER MU*/ + RTUNI_ALPHA, /* U+00ff92: HALFWIDTH KATAKANA LETTER ME*/ + RTUNI_ALPHA, /* U+00ff93: HALFWIDTH KATAKANA LETTER MO*/ + RTUNI_ALPHA, /* U+00ff94: HALFWIDTH KATAKANA LETTER YA*/ + RTUNI_ALPHA, /* U+00ff95: HALFWIDTH KATAKANA LETTER YU*/ + RTUNI_ALPHA, /* U+00ff96: HALFWIDTH KATAKANA LETTER YO*/ + RTUNI_ALPHA, /* U+00ff97: HALFWIDTH KATAKANA LETTER RA*/ + RTUNI_ALPHA, /* U+00ff98: HALFWIDTH KATAKANA LETTER RI*/ + RTUNI_ALPHA, /* U+00ff99: HALFWIDTH KATAKANA LETTER RU*/ + RTUNI_ALPHA, /* U+00ff9a: HALFWIDTH KATAKANA LETTER RE*/ + RTUNI_ALPHA, /* U+00ff9b: HALFWIDTH KATAKANA LETTER RO*/ + RTUNI_ALPHA, /* U+00ff9c: HALFWIDTH KATAKANA LETTER WA*/ + RTUNI_ALPHA, /* U+00ff9d: HALFWIDTH KATAKANA LETTER N*/ + RTUNI_ALPHA, /* U+00ff9e: HALFWIDTH KATAKANA VOICED SOUND MARK*/ + RTUNI_ALPHA, /* U+00ff9f: HALFWIDTH KATAKANA SEMI-VOICED SOUND MARK*/ + RTUNI_ALPHA, /* U+00ffa0: HALFWIDTH HANGUL FILLER*/ + RTUNI_ALPHA, /* U+00ffa1: HALFWIDTH HANGUL LETTER KIYEOK*/ + RTUNI_ALPHA, /* U+00ffa2: HALFWIDTH HANGUL LETTER SSANGKIYEOK*/ + RTUNI_ALPHA, /* U+00ffa3: HALFWIDTH HANGUL LETTER KIYEOK-SIOS*/ + RTUNI_ALPHA, /* U+00ffa4: HALFWIDTH HANGUL LETTER NIEUN*/ + RTUNI_ALPHA, /* U+00ffa5: HALFWIDTH HANGUL LETTER NIEUN-CIEUC*/ + RTUNI_ALPHA, /* U+00ffa6: HALFWIDTH HANGUL LETTER NIEUN-HIEUH*/ + RTUNI_ALPHA, /* U+00ffa7: HALFWIDTH HANGUL LETTER TIKEUT*/ + RTUNI_ALPHA, /* U+00ffa8: HALFWIDTH HANGUL LETTER SSANGTIKEUT*/ + RTUNI_ALPHA, /* U+00ffa9: HALFWIDTH HANGUL LETTER RIEUL*/ + RTUNI_ALPHA, /* U+00ffaa: HALFWIDTH HANGUL LETTER RIEUL-KIYEOK*/ + RTUNI_ALPHA, /* U+00ffab: HALFWIDTH HANGUL LETTER RIEUL-MIEUM*/ + RTUNI_ALPHA, /* U+00ffac: HALFWIDTH HANGUL LETTER RIEUL-PIEUP*/ + RTUNI_ALPHA, /* U+00ffad: HALFWIDTH HANGUL LETTER RIEUL-SIOS*/ + RTUNI_ALPHA, /* U+00ffae: HALFWIDTH HANGUL LETTER RIEUL-THIEUTH*/ + RTUNI_ALPHA, /* U+00ffaf: HALFWIDTH HANGUL LETTER RIEUL-PHIEUPH*/ + RTUNI_ALPHA, /* U+00ffb0: HALFWIDTH HANGUL LETTER RIEUL-HIEUH*/ + RTUNI_ALPHA, /* U+00ffb1: HALFWIDTH HANGUL LETTER MIEUM*/ + RTUNI_ALPHA, /* U+00ffb2: HALFWIDTH HANGUL LETTER PIEUP*/ + RTUNI_ALPHA, /* U+00ffb3: HALFWIDTH HANGUL LETTER SSANGPIEUP*/ + RTUNI_ALPHA, /* U+00ffb4: HALFWIDTH HANGUL LETTER PIEUP-SIOS*/ + RTUNI_ALPHA, /* U+00ffb5: HALFWIDTH HANGUL LETTER SIOS*/ + RTUNI_ALPHA, /* U+00ffb6: HALFWIDTH HANGUL LETTER SSANGSIOS*/ + RTUNI_ALPHA, /* U+00ffb7: HALFWIDTH HANGUL LETTER IEUNG*/ + RTUNI_ALPHA, /* U+00ffb8: HALFWIDTH HANGUL LETTER CIEUC*/ + RTUNI_ALPHA, /* U+00ffb9: HALFWIDTH HANGUL LETTER SSANGCIEUC*/ + RTUNI_ALPHA, /* U+00ffba: HALFWIDTH HANGUL LETTER CHIEUCH*/ + RTUNI_ALPHA, /* U+00ffbb: HALFWIDTH HANGUL LETTER KHIEUKH*/ + RTUNI_ALPHA, /* U+00ffbc: HALFWIDTH HANGUL LETTER THIEUTH*/ + RTUNI_ALPHA, /* U+00ffbd: HALFWIDTH HANGUL LETTER PHIEUPH*/ + RTUNI_ALPHA, /* U+00ffbe: HALFWIDTH HANGUL LETTER HIEUH*/ + 0, /* U+00ffbf: */ + 0, /* U+00ffc0: */ + 0, /* U+00ffc1: */ + RTUNI_ALPHA, /* U+00ffc2: HALFWIDTH HANGUL LETTER A*/ + RTUNI_ALPHA, /* U+00ffc3: HALFWIDTH HANGUL LETTER AE*/ + RTUNI_ALPHA, /* U+00ffc4: HALFWIDTH HANGUL LETTER YA*/ + RTUNI_ALPHA, /* U+00ffc5: HALFWIDTH HANGUL LETTER YAE*/ + RTUNI_ALPHA, /* U+00ffc6: HALFWIDTH HANGUL LETTER EO*/ + RTUNI_ALPHA, /* U+00ffc7: HALFWIDTH HANGUL LETTER E*/ + 0, /* U+00ffc8: */ + 0, /* U+00ffc9: */ + RTUNI_ALPHA, /* U+00ffca: HALFWIDTH HANGUL LETTER YEO*/ + RTUNI_ALPHA, /* U+00ffcb: HALFWIDTH HANGUL LETTER YE*/ + RTUNI_ALPHA, /* U+00ffcc: HALFWIDTH HANGUL LETTER O*/ + RTUNI_ALPHA, /* U+00ffcd: HALFWIDTH HANGUL LETTER WA*/ + RTUNI_ALPHA, /* U+00ffce: HALFWIDTH HANGUL LETTER WAE*/ + RTUNI_ALPHA, /* U+00ffcf: HALFWIDTH HANGUL LETTER OE*/ + 0, /* U+00ffd0: */ + 0, /* U+00ffd1: */ + RTUNI_ALPHA, /* U+00ffd2: HALFWIDTH HANGUL LETTER YO*/ + RTUNI_ALPHA, /* U+00ffd3: HALFWIDTH HANGUL LETTER U*/ + RTUNI_ALPHA, /* U+00ffd4: HALFWIDTH HANGUL LETTER WEO*/ + RTUNI_ALPHA, /* U+00ffd5: HALFWIDTH HANGUL LETTER WE*/ + RTUNI_ALPHA, /* U+00ffd6: HALFWIDTH HANGUL LETTER WI*/ + RTUNI_ALPHA, /* U+00ffd7: HALFWIDTH HANGUL LETTER YU*/ + 0, /* U+00ffd8: */ + 0, /* U+00ffd9: */ + RTUNI_ALPHA, /* U+00ffda: HALFWIDTH HANGUL LETTER EU*/ + RTUNI_ALPHA, /* U+00ffdb: HALFWIDTH HANGUL LETTER YI*/ + RTUNI_ALPHA, /* U+00ffdc: HALFWIDTH HANGUL LETTER I*/ + 0, /* U+00ffdd: */ + 0, /* U+00ffde: */ + 0, /* U+00ffdf: */ + 0, /* U+00ffe0: FULLWIDTH CENT SIGN*/ + 0, /* U+00ffe1: FULLWIDTH POUND SIGN*/ + 0, /* U+00ffe2: FULLWIDTH NOT SIGN*/ + 0, /* U+00ffe3: FULLWIDTH MACRON*/ + 0, /* U+00ffe4: FULLWIDTH BROKEN BAR*/ + 0, /* U+00ffe5: FULLWIDTH YEN SIGN*/ + 0, /* U+00ffe6: FULLWIDTH WON SIGN*/ + 0, /* U+00ffe7: */ + 0, /* U+00ffe8: HALFWIDTH FORMS LIGHT VERTICAL*/ + 0, /* U+00ffe9: HALFWIDTH LEFTWARDS ARROW*/ + 0, /* U+00ffea: HALFWIDTH UPWARDS ARROW*/ + 0, /* U+00ffeb: HALFWIDTH RIGHTWARDS ARROW*/ + 0, /* U+00ffec: HALFWIDTH DOWNWARDS ARROW*/ + 0, /* U+00ffed: HALFWIDTH BLACK SQUARE*/ + 0, /* U+00ffee: HALFWIDTH WHITE CIRCLE*/ + 0, /* U+00ffef: */ + 0, /* U+00fff0: */ + 0, /* U+00fff1: */ + 0, /* U+00fff2: */ + 0, /* U+00fff3: */ + 0, /* U+00fff4: */ + 0, /* U+00fff5: */ + 0, /* U+00fff6: */ + 0, /* U+00fff7: */ + 0, /* U+00fff8: */ + 0, /* U+00fff9: INTERLINEAR ANNOTATION ANCHOR*/ + 0, /* U+00fffa: INTERLINEAR ANNOTATION SEPARATOR*/ + 0, /* U+00fffb: INTERLINEAR ANNOTATION TERMINATOR*/ + 0, /* U+00fffc: OBJECT REPLACEMENT CHARACTER*/ + 0, /* U+00fffd: REPLACEMENT CHARACTER*/ + 0, /* U+00fffe: */ + 0, /* U+00ffff: */ + RTUNI_ALPHA, /* U+010000: LINEAR B SYLLABLE B008 A*/ + RTUNI_ALPHA, /* U+010001: LINEAR B SYLLABLE B038 E*/ + RTUNI_ALPHA, /* U+010002: LINEAR B SYLLABLE B028 I*/ + RTUNI_ALPHA, /* U+010003: LINEAR B SYLLABLE B061 O*/ + RTUNI_ALPHA, /* U+010004: LINEAR B SYLLABLE B010 U*/ + RTUNI_ALPHA, /* U+010005: LINEAR B SYLLABLE B001 DA*/ + RTUNI_ALPHA, /* U+010006: LINEAR B SYLLABLE B045 DE*/ + RTUNI_ALPHA, /* U+010007: LINEAR B SYLLABLE B007 DI*/ + RTUNI_ALPHA, /* U+010008: LINEAR B SYLLABLE B014 DO*/ + RTUNI_ALPHA, /* U+010009: LINEAR B SYLLABLE B051 DU*/ + RTUNI_ALPHA, /* U+01000a: LINEAR B SYLLABLE B057 JA*/ + RTUNI_ALPHA, /* U+01000b: LINEAR B SYLLABLE B046 JE*/ + 0, /* U+01000c: */ + RTUNI_ALPHA, /* U+01000d: LINEAR B SYLLABLE B036 JO*/ + RTUNI_ALPHA, /* U+01000e: LINEAR B SYLLABLE B065 JU*/ + RTUNI_ALPHA, /* U+01000f: LINEAR B SYLLABLE B077 KA*/ + RTUNI_ALPHA, /* U+010010: LINEAR B SYLLABLE B044 KE*/ + RTUNI_ALPHA, /* U+010011: LINEAR B SYLLABLE B067 KI*/ + RTUNI_ALPHA, /* U+010012: LINEAR B SYLLABLE B070 KO*/ + RTUNI_ALPHA, /* U+010013: LINEAR B SYLLABLE B081 KU*/ + RTUNI_ALPHA, /* U+010014: LINEAR B SYLLABLE B080 MA*/ + RTUNI_ALPHA, /* U+010015: LINEAR B SYLLABLE B013 ME*/ + RTUNI_ALPHA, /* U+010016: LINEAR B SYLLABLE B073 MI*/ + RTUNI_ALPHA, /* U+010017: LINEAR B SYLLABLE B015 MO*/ + RTUNI_ALPHA, /* U+010018: LINEAR B SYLLABLE B023 MU*/ + RTUNI_ALPHA, /* U+010019: LINEAR B SYLLABLE B006 NA*/ + RTUNI_ALPHA, /* U+01001a: LINEAR B SYLLABLE B024 NE*/ + RTUNI_ALPHA, /* U+01001b: LINEAR B SYLLABLE B030 NI*/ + RTUNI_ALPHA, /* U+01001c: LINEAR B SYLLABLE B052 NO*/ + RTUNI_ALPHA, /* U+01001d: LINEAR B SYLLABLE B055 NU*/ + RTUNI_ALPHA, /* U+01001e: LINEAR B SYLLABLE B003 PA*/ + RTUNI_ALPHA, /* U+01001f: LINEAR B SYLLABLE B072 PE*/ + RTUNI_ALPHA, /* U+010020: LINEAR B SYLLABLE B039 PI*/ + RTUNI_ALPHA, /* U+010021: LINEAR B SYLLABLE B011 PO*/ + RTUNI_ALPHA, /* U+010022: LINEAR B SYLLABLE B050 PU*/ + RTUNI_ALPHA, /* U+010023: LINEAR B SYLLABLE B016 QA*/ + RTUNI_ALPHA, /* U+010024: LINEAR B SYLLABLE B078 QE*/ + RTUNI_ALPHA, /* U+010025: LINEAR B SYLLABLE B021 QI*/ + RTUNI_ALPHA, /* U+010026: LINEAR B SYLLABLE B032 QO*/ + 0, /* U+010027: */ + RTUNI_ALPHA, /* U+010028: LINEAR B SYLLABLE B060 RA*/ + RTUNI_ALPHA, /* U+010029: LINEAR B SYLLABLE B027 RE*/ + RTUNI_ALPHA, /* U+01002a: LINEAR B SYLLABLE B053 RI*/ + RTUNI_ALPHA, /* U+01002b: LINEAR B SYLLABLE B002 RO*/ + RTUNI_ALPHA, /* U+01002c: LINEAR B SYLLABLE B026 RU*/ + RTUNI_ALPHA, /* U+01002d: LINEAR B SYLLABLE B031 SA*/ + RTUNI_ALPHA, /* U+01002e: LINEAR B SYLLABLE B009 SE*/ + RTUNI_ALPHA, /* U+01002f: LINEAR B SYLLABLE B041 SI*/ + RTUNI_ALPHA, /* U+010030: LINEAR B SYLLABLE B012 SO*/ + RTUNI_ALPHA, /* U+010031: LINEAR B SYLLABLE B058 SU*/ + RTUNI_ALPHA, /* U+010032: LINEAR B SYLLABLE B059 TA*/ + RTUNI_ALPHA, /* U+010033: LINEAR B SYLLABLE B004 TE*/ + RTUNI_ALPHA, /* U+010034: LINEAR B SYLLABLE B037 TI*/ + RTUNI_ALPHA, /* U+010035: LINEAR B SYLLABLE B005 TO*/ + RTUNI_ALPHA, /* U+010036: LINEAR B SYLLABLE B069 TU*/ + RTUNI_ALPHA, /* U+010037: LINEAR B SYLLABLE B054 WA*/ + RTUNI_ALPHA, /* U+010038: LINEAR B SYLLABLE B075 WE*/ + RTUNI_ALPHA, /* U+010039: LINEAR B SYLLABLE B040 WI*/ + RTUNI_ALPHA, /* U+01003a: LINEAR B SYLLABLE B042 WO*/ + 0, /* U+01003b: */ + RTUNI_ALPHA, /* U+01003c: LINEAR B SYLLABLE B017 ZA*/ + RTUNI_ALPHA, /* U+01003d: LINEAR B SYLLABLE B074 ZE*/ + 0, /* U+01003e: */ + RTUNI_ALPHA, /* U+01003f: LINEAR B SYLLABLE B020 ZO*/ + RTUNI_ALPHA, /* U+010040: LINEAR B SYLLABLE B025 A2*/ + RTUNI_ALPHA, /* U+010041: LINEAR B SYLLABLE B043 A3*/ + RTUNI_ALPHA, /* U+010042: LINEAR B SYLLABLE B085 AU*/ + RTUNI_ALPHA, /* U+010043: LINEAR B SYLLABLE B071 DWE*/ + RTUNI_ALPHA, /* U+010044: LINEAR B SYLLABLE B090 DWO*/ + RTUNI_ALPHA, /* U+010045: LINEAR B SYLLABLE B048 NWA*/ + RTUNI_ALPHA, /* U+010046: LINEAR B SYLLABLE B029 PU2*/ + RTUNI_ALPHA, /* U+010047: LINEAR B SYLLABLE B062 PTE*/ + RTUNI_ALPHA, /* U+010048: LINEAR B SYLLABLE B076 RA2*/ + RTUNI_ALPHA, /* U+010049: LINEAR B SYLLABLE B033 RA3*/ + RTUNI_ALPHA, /* U+01004a: LINEAR B SYLLABLE B068 RO2*/ + RTUNI_ALPHA, /* U+01004b: LINEAR B SYLLABLE B066 TA2*/ + RTUNI_ALPHA, /* U+01004c: LINEAR B SYLLABLE B087 TWE*/ + RTUNI_ALPHA, /* U+01004d: LINEAR B SYLLABLE B091 TWO*/ + 0, /* U+01004e: */ + 0, /* U+01004f: */ + RTUNI_ALPHA, /* U+010050: LINEAR B SYMBOL B018*/ + RTUNI_ALPHA, /* U+010051: LINEAR B SYMBOL B019*/ + RTUNI_ALPHA, /* U+010052: LINEAR B SYMBOL B022*/ + RTUNI_ALPHA, /* U+010053: LINEAR B SYMBOL B034*/ + RTUNI_ALPHA, /* U+010054: LINEAR B SYMBOL B047*/ + RTUNI_ALPHA, /* U+010055: LINEAR B SYMBOL B049*/ + RTUNI_ALPHA, /* U+010056: LINEAR B SYMBOL B056*/ + RTUNI_ALPHA, /* U+010057: LINEAR B SYMBOL B063*/ + RTUNI_ALPHA, /* U+010058: LINEAR B SYMBOL B064*/ + RTUNI_ALPHA, /* U+010059: LINEAR B SYMBOL B079*/ + RTUNI_ALPHA, /* U+01005a: LINEAR B SYMBOL B082*/ + RTUNI_ALPHA, /* U+01005b: LINEAR B SYMBOL B083*/ + RTUNI_ALPHA, /* U+01005c: LINEAR B SYMBOL B086*/ + RTUNI_ALPHA, /* U+01005d: LINEAR B SYMBOL B089*/ + 0, /* U+01005e: */ + 0, /* U+01005f: */ + 0, /* U+010060: */ + 0, /* U+010061: */ + 0, /* U+010062: */ + 0, /* U+010063: */ + 0, /* U+010064: */ + 0, /* U+010065: */ + 0, /* U+010066: */ + 0, /* U+010067: */ + 0, /* U+010068: */ + 0, /* U+010069: */ + 0, /* U+01006a: */ + 0, /* U+01006b: */ + 0, /* U+01006c: */ + 0, /* U+01006d: */ + 0, /* U+01006e: */ + 0, /* U+01006f: */ + 0, /* U+010070: */ + 0, /* U+010071: */ + 0, /* U+010072: */ + 0, /* U+010073: */ + 0, /* U+010074: */ + 0, /* U+010075: */ + 0, /* U+010076: */ + 0, /* U+010077: */ + 0, /* U+010078: */ + 0, /* U+010079: */ + 0, /* U+01007a: */ + 0, /* U+01007b: */ + 0, /* U+01007c: */ + 0, /* U+01007d: */ + 0, /* U+01007e: */ + 0, /* U+01007f: */ + RTUNI_ALPHA, /* U+010080: LINEAR B IDEOGRAM B100 MAN*/ + RTUNI_ALPHA, /* U+010081: LINEAR B IDEOGRAM B102 WOMAN*/ + RTUNI_ALPHA, /* U+010082: LINEAR B IDEOGRAM B104 DEER*/ + RTUNI_ALPHA, /* U+010083: LINEAR B IDEOGRAM B105 EQUID*/ + RTUNI_ALPHA, /* U+010084: LINEAR B IDEOGRAM B105F MARE*/ + RTUNI_ALPHA, /* U+010085: LINEAR B IDEOGRAM B105M STALLION*/ + RTUNI_ALPHA, /* U+010086: LINEAR B IDEOGRAM B106F EWE*/ + RTUNI_ALPHA, /* U+010087: LINEAR B IDEOGRAM B106M RAM*/ + RTUNI_ALPHA, /* U+010088: LINEAR B IDEOGRAM B107F SHE-GOAT*/ + RTUNI_ALPHA, /* U+010089: LINEAR B IDEOGRAM B107M HE-GOAT*/ + RTUNI_ALPHA, /* U+01008a: LINEAR B IDEOGRAM B108F SOW*/ + RTUNI_ALPHA, /* U+01008b: LINEAR B IDEOGRAM B108M BOAR*/ + RTUNI_ALPHA, /* U+01008c: LINEAR B IDEOGRAM B109F COW*/ + RTUNI_ALPHA, /* U+01008d: LINEAR B IDEOGRAM B109M BULL*/ + RTUNI_ALPHA, /* U+01008e: LINEAR B IDEOGRAM B120 WHEAT*/ + RTUNI_ALPHA, /* U+01008f: LINEAR B IDEOGRAM B121 BARLEY*/ + RTUNI_ALPHA, /* U+010090: LINEAR B IDEOGRAM B122 OLIVE*/ + RTUNI_ALPHA, /* U+010091: LINEAR B IDEOGRAM B123 SPICE*/ + RTUNI_ALPHA, /* U+010092: LINEAR B IDEOGRAM B125 CYPERUS*/ + RTUNI_ALPHA, /* U+010093: LINEAR B MONOGRAM B127 KAPO*/ + RTUNI_ALPHA, /* U+010094: LINEAR B MONOGRAM B128 KANAKO*/ + RTUNI_ALPHA, /* U+010095: LINEAR B IDEOGRAM B130 OIL*/ + RTUNI_ALPHA, /* U+010096: LINEAR B IDEOGRAM B131 WINE*/ + RTUNI_ALPHA, /* U+010097: LINEAR B IDEOGRAM B132*/ + RTUNI_ALPHA, /* U+010098: LINEAR B MONOGRAM B133 AREPA*/ + RTUNI_ALPHA, /* U+010099: LINEAR B MONOGRAM B135 MERI*/ + RTUNI_ALPHA, /* U+01009a: LINEAR B IDEOGRAM B140 BRONZE*/ + RTUNI_ALPHA, /* U+01009b: LINEAR B IDEOGRAM B141 GOLD*/ + RTUNI_ALPHA, /* U+01009c: LINEAR B IDEOGRAM B142*/ + RTUNI_ALPHA, /* U+01009d: LINEAR B IDEOGRAM B145 WOOL*/ + RTUNI_ALPHA, /* U+01009e: LINEAR B IDEOGRAM B146*/ + RTUNI_ALPHA, /* U+01009f: LINEAR B IDEOGRAM B150*/ + RTUNI_ALPHA, /* U+0100a0: LINEAR B IDEOGRAM B151 HORN*/ + RTUNI_ALPHA, /* U+0100a1: LINEAR B IDEOGRAM B152*/ + RTUNI_ALPHA, /* U+0100a2: LINEAR B IDEOGRAM B153*/ + RTUNI_ALPHA, /* U+0100a3: LINEAR B IDEOGRAM B154*/ + RTUNI_ALPHA, /* U+0100a4: LINEAR B MONOGRAM B156 TURO2*/ + RTUNI_ALPHA, /* U+0100a5: LINEAR B IDEOGRAM B157*/ + RTUNI_ALPHA, /* U+0100a6: LINEAR B IDEOGRAM B158*/ + RTUNI_ALPHA, /* U+0100a7: LINEAR B IDEOGRAM B159 CLOTH*/ + RTUNI_ALPHA, /* U+0100a8: LINEAR B IDEOGRAM B160*/ + RTUNI_ALPHA, /* U+0100a9: LINEAR B IDEOGRAM B161*/ + RTUNI_ALPHA, /* U+0100aa: LINEAR B IDEOGRAM B162 GARMENT*/ + RTUNI_ALPHA, /* U+0100ab: LINEAR B IDEOGRAM B163 ARMOUR*/ + RTUNI_ALPHA, /* U+0100ac: LINEAR B IDEOGRAM B164*/ + RTUNI_ALPHA, /* U+0100ad: LINEAR B IDEOGRAM B165*/ + RTUNI_ALPHA, /* U+0100ae: LINEAR B IDEOGRAM B166*/ + RTUNI_ALPHA, /* U+0100af: LINEAR B IDEOGRAM B167*/ + RTUNI_ALPHA, /* U+0100b0: LINEAR B IDEOGRAM B168*/ + RTUNI_ALPHA, /* U+0100b1: LINEAR B IDEOGRAM B169*/ + RTUNI_ALPHA, /* U+0100b2: LINEAR B IDEOGRAM B170*/ + RTUNI_ALPHA, /* U+0100b3: LINEAR B IDEOGRAM B171*/ + RTUNI_ALPHA, /* U+0100b4: LINEAR B IDEOGRAM B172*/ + RTUNI_ALPHA, /* U+0100b5: LINEAR B IDEOGRAM B173 MONTH*/ + RTUNI_ALPHA, /* U+0100b6: LINEAR B IDEOGRAM B174*/ + RTUNI_ALPHA, /* U+0100b7: LINEAR B IDEOGRAM B176 TREE*/ + RTUNI_ALPHA, /* U+0100b8: LINEAR B IDEOGRAM B177*/ + RTUNI_ALPHA, /* U+0100b9: LINEAR B IDEOGRAM B178*/ + RTUNI_ALPHA, /* U+0100ba: LINEAR B IDEOGRAM B179*/ + RTUNI_ALPHA, /* U+0100bb: LINEAR B IDEOGRAM B180*/ + RTUNI_ALPHA, /* U+0100bc: LINEAR B IDEOGRAM B181*/ + RTUNI_ALPHA, /* U+0100bd: LINEAR B IDEOGRAM B182*/ + RTUNI_ALPHA, /* U+0100be: LINEAR B IDEOGRAM B183*/ + RTUNI_ALPHA, /* U+0100bf: LINEAR B IDEOGRAM B184*/ + RTUNI_ALPHA, /* U+0100c0: LINEAR B IDEOGRAM B185*/ + RTUNI_ALPHA, /* U+0100c1: LINEAR B IDEOGRAM B189*/ + RTUNI_ALPHA, /* U+0100c2: LINEAR B IDEOGRAM B190*/ + RTUNI_ALPHA, /* U+0100c3: LINEAR B IDEOGRAM B191 HELMET*/ + RTUNI_ALPHA, /* U+0100c4: LINEAR B IDEOGRAM B220 FOOTSTOOL*/ + RTUNI_ALPHA, /* U+0100c5: LINEAR B IDEOGRAM B225 BATHTUB*/ + RTUNI_ALPHA, /* U+0100c6: LINEAR B IDEOGRAM B230 SPEAR*/ + RTUNI_ALPHA, /* U+0100c7: LINEAR B IDEOGRAM B231 ARROW*/ + RTUNI_ALPHA, /* U+0100c8: LINEAR B IDEOGRAM B232*/ + RTUNI_ALPHA, /* U+0100c9: LINEAR B IDEOGRAM B233 SWORD*/ + RTUNI_ALPHA, /* U+0100ca: LINEAR B IDEOGRAM B234*/ + RTUNI_ALPHA, /* U+0100cb: LINEAR B IDEOGRAM B236*/ + RTUNI_ALPHA, /* U+0100cc: LINEAR B IDEOGRAM B240 WHEELED CHARIOT*/ + RTUNI_ALPHA, /* U+0100cd: LINEAR B IDEOGRAM B241 CHARIOT*/ + RTUNI_ALPHA, /* U+0100ce: LINEAR B IDEOGRAM B242 CHARIOT FRAME*/ + RTUNI_ALPHA, /* U+0100cf: LINEAR B IDEOGRAM B243 WHEEL*/ + RTUNI_ALPHA, /* U+0100d0: LINEAR B IDEOGRAM B245*/ + RTUNI_ALPHA, /* U+0100d1: LINEAR B IDEOGRAM B246*/ + RTUNI_ALPHA, /* U+0100d2: LINEAR B MONOGRAM B247 DIPTE*/ + RTUNI_ALPHA, /* U+0100d3: LINEAR B IDEOGRAM B248*/ + RTUNI_ALPHA, /* U+0100d4: LINEAR B IDEOGRAM B249*/ + RTUNI_ALPHA, /* U+0100d5: LINEAR B IDEOGRAM B251*/ + RTUNI_ALPHA, /* U+0100d6: LINEAR B IDEOGRAM B252*/ + RTUNI_ALPHA, /* U+0100d7: LINEAR B IDEOGRAM B253*/ + RTUNI_ALPHA, /* U+0100d8: LINEAR B IDEOGRAM B254 DART*/ + RTUNI_ALPHA, /* U+0100d9: LINEAR B IDEOGRAM B255*/ + RTUNI_ALPHA, /* U+0100da: LINEAR B IDEOGRAM B256*/ + RTUNI_ALPHA, /* U+0100db: LINEAR B IDEOGRAM B257*/ + RTUNI_ALPHA, /* U+0100dc: LINEAR B IDEOGRAM B258*/ + RTUNI_ALPHA, /* U+0100dd: LINEAR B IDEOGRAM B259*/ + RTUNI_ALPHA, /* U+0100de: LINEAR B IDEOGRAM VESSEL B155*/ + RTUNI_ALPHA, /* U+0100df: LINEAR B IDEOGRAM VESSEL B200*/ + RTUNI_ALPHA, /* U+0100e0: LINEAR B IDEOGRAM VESSEL B201*/ + RTUNI_ALPHA, /* U+0100e1: LINEAR B IDEOGRAM VESSEL B202*/ + RTUNI_ALPHA, /* U+0100e2: LINEAR B IDEOGRAM VESSEL B203*/ + RTUNI_ALPHA, /* U+0100e3: LINEAR B IDEOGRAM VESSEL B204*/ + RTUNI_ALPHA, /* U+0100e4: LINEAR B IDEOGRAM VESSEL B205*/ + RTUNI_ALPHA, /* U+0100e5: LINEAR B IDEOGRAM VESSEL B206*/ + RTUNI_ALPHA, /* U+0100e6: LINEAR B IDEOGRAM VESSEL B207*/ + RTUNI_ALPHA, /* U+0100e7: LINEAR B IDEOGRAM VESSEL B208*/ + RTUNI_ALPHA, /* U+0100e8: LINEAR B IDEOGRAM VESSEL B209*/ + RTUNI_ALPHA, /* U+0100e9: LINEAR B IDEOGRAM VESSEL B210*/ + RTUNI_ALPHA, /* U+0100ea: LINEAR B IDEOGRAM VESSEL B211*/ + RTUNI_ALPHA, /* U+0100eb: LINEAR B IDEOGRAM VESSEL B212*/ + RTUNI_ALPHA, /* U+0100ec: LINEAR B IDEOGRAM VESSEL B213*/ + RTUNI_ALPHA, /* U+0100ed: LINEAR B IDEOGRAM VESSEL B214*/ + RTUNI_ALPHA, /* U+0100ee: LINEAR B IDEOGRAM VESSEL B215*/ + RTUNI_ALPHA, /* U+0100ef: LINEAR B IDEOGRAM VESSEL B216*/ + RTUNI_ALPHA, /* U+0100f0: LINEAR B IDEOGRAM VESSEL B217*/ + RTUNI_ALPHA, /* U+0100f1: LINEAR B IDEOGRAM VESSEL B218*/ + RTUNI_ALPHA, /* U+0100f2: LINEAR B IDEOGRAM VESSEL B219*/ + RTUNI_ALPHA, /* U+0100f3: LINEAR B IDEOGRAM VESSEL B221*/ + RTUNI_ALPHA, /* U+0100f4: LINEAR B IDEOGRAM VESSEL B222*/ + RTUNI_ALPHA, /* U+0100f5: LINEAR B IDEOGRAM VESSEL B226*/ + RTUNI_ALPHA, /* U+0100f6: LINEAR B IDEOGRAM VESSEL B227*/ + RTUNI_ALPHA, /* U+0100f7: LINEAR B IDEOGRAM VESSEL B228*/ + RTUNI_ALPHA, /* U+0100f8: LINEAR B IDEOGRAM VESSEL B229*/ + RTUNI_ALPHA, /* U+0100f9: LINEAR B IDEOGRAM VESSEL B250*/ + RTUNI_ALPHA, /* U+0100fa: LINEAR B IDEOGRAM VESSEL B305*/ + 0, /* U+0100fb: */ + 0, /* U+0100fc: */ + 0, /* U+0100fd: */ + 0, /* U+0100fe: */ + 0, /* U+0100ff: */ + 0, /* U+010100: AEGEAN WORD SEPARATOR LINE*/ + 0, /* U+010101: AEGEAN WORD SEPARATOR DOT*/ + 0, /* U+010102: AEGEAN CHECK MARK*/ + 0, /* U+010103: */ + 0, /* U+010104: */ + 0, /* U+010105: */ + 0, /* U+010106: */ + 0, /* U+010107: AEGEAN NUMBER ONE*/ + 0, /* U+010108: AEGEAN NUMBER TWO*/ + 0, /* U+010109: AEGEAN NUMBER THREE*/ + 0, /* U+01010a: AEGEAN NUMBER FOUR*/ + 0, /* U+01010b: AEGEAN NUMBER FIVE*/ + 0, /* U+01010c: AEGEAN NUMBER SIX*/ + 0, /* U+01010d: AEGEAN NUMBER SEVEN*/ + 0, /* U+01010e: AEGEAN NUMBER EIGHT*/ + 0, /* U+01010f: AEGEAN NUMBER NINE*/ + 0, /* U+010110: AEGEAN NUMBER TEN*/ + 0, /* U+010111: AEGEAN NUMBER TWENTY*/ + 0, /* U+010112: AEGEAN NUMBER THIRTY*/ + 0, /* U+010113: AEGEAN NUMBER FORTY*/ + 0, /* U+010114: AEGEAN NUMBER FIFTY*/ + 0, /* U+010115: AEGEAN NUMBER SIXTY*/ + 0, /* U+010116: AEGEAN NUMBER SEVENTY*/ + 0, /* U+010117: AEGEAN NUMBER EIGHTY*/ + 0, /* U+010118: AEGEAN NUMBER NINETY*/ + 0, /* U+010119: AEGEAN NUMBER ONE HUNDRED*/ + 0, /* U+01011a: AEGEAN NUMBER TWO HUNDRED*/ + 0, /* U+01011b: AEGEAN NUMBER THREE HUNDRED*/ + 0, /* U+01011c: AEGEAN NUMBER FOUR HUNDRED*/ + 0, /* U+01011d: AEGEAN NUMBER FIVE HUNDRED*/ + 0, /* U+01011e: AEGEAN NUMBER SIX HUNDRED*/ + 0, /* U+01011f: AEGEAN NUMBER SEVEN HUNDRED*/ + 0, /* U+010120: AEGEAN NUMBER EIGHT HUNDRED*/ + 0, /* U+010121: AEGEAN NUMBER NINE HUNDRED*/ + 0, /* U+010122: AEGEAN NUMBER ONE THOUSAND*/ + 0, /* U+010123: AEGEAN NUMBER TWO THOUSAND*/ + 0, /* U+010124: AEGEAN NUMBER THREE THOUSAND*/ + 0, /* U+010125: AEGEAN NUMBER FOUR THOUSAND*/ + 0, /* U+010126: AEGEAN NUMBER FIVE THOUSAND*/ + 0, /* U+010127: AEGEAN NUMBER SIX THOUSAND*/ + 0, /* U+010128: AEGEAN NUMBER SEVEN THOUSAND*/ + 0, /* U+010129: AEGEAN NUMBER EIGHT THOUSAND*/ + 0, /* U+01012a: AEGEAN NUMBER NINE THOUSAND*/ + 0, /* U+01012b: AEGEAN NUMBER TEN THOUSAND*/ + 0, /* U+01012c: AEGEAN NUMBER TWENTY THOUSAND*/ + 0, /* U+01012d: AEGEAN NUMBER THIRTY THOUSAND*/ + 0, /* U+01012e: AEGEAN NUMBER FORTY THOUSAND*/ + 0, /* U+01012f: AEGEAN NUMBER FIFTY THOUSAND*/ + 0, /* U+010130: AEGEAN NUMBER SIXTY THOUSAND*/ + 0, /* U+010131: AEGEAN NUMBER SEVENTY THOUSAND*/ + 0, /* U+010132: AEGEAN NUMBER EIGHTY THOUSAND*/ + 0, /* U+010133: AEGEAN NUMBER NINETY THOUSAND*/ + 0, /* U+010134: */ + 0, /* U+010135: */ + 0, /* U+010136: */ + 0, /* U+010137: AEGEAN WEIGHT BASE UNIT*/ + 0, /* U+010138: AEGEAN WEIGHT FIRST SUBUNIT*/ + 0, /* U+010139: AEGEAN WEIGHT SECOND SUBUNIT*/ + 0, /* U+01013a: AEGEAN WEIGHT THIRD SUBUNIT*/ + 0, /* U+01013b: AEGEAN WEIGHT FOURTH SUBUNIT*/ + 0, /* U+01013c: AEGEAN DRY MEASURE FIRST SUBUNIT*/ + 0, /* U+01013d: AEGEAN LIQUID MEASURE FIRST SUBUNIT*/ + 0, /* U+01013e: AEGEAN MEASURE SECOND SUBUNIT*/ + 0, /* U+01013f: AEGEAN MEASURE THIRD SUBUNIT*/ + RTUNI_ALPHA, /* U+010140: GREEK ACROPHONIC ATTIC ONE QUARTER*/ + RTUNI_ALPHA, /* U+010141: GREEK ACROPHONIC ATTIC ONE HALF*/ + RTUNI_ALPHA, /* U+010142: GREEK ACROPHONIC ATTIC ONE DRACHMA*/ + RTUNI_ALPHA, /* U+010143: GREEK ACROPHONIC ATTIC FIVE*/ + RTUNI_ALPHA, /* U+010144: GREEK ACROPHONIC ATTIC FIFTY*/ + RTUNI_ALPHA, /* U+010145: GREEK ACROPHONIC ATTIC FIVE HUNDRED*/ + RTUNI_ALPHA, /* U+010146: GREEK ACROPHONIC ATTIC FIVE THOUSAND*/ + RTUNI_ALPHA, /* U+010147: GREEK ACROPHONIC ATTIC FIFTY THOUSAND*/ + RTUNI_ALPHA, /* U+010148: GREEK ACROPHONIC ATTIC FIVE TALENTS*/ + RTUNI_ALPHA, /* U+010149: GREEK ACROPHONIC ATTIC TEN TALENTS*/ + RTUNI_ALPHA, /* U+01014a: GREEK ACROPHONIC ATTIC FIFTY TALENTS*/ + RTUNI_ALPHA, /* U+01014b: GREEK ACROPHONIC ATTIC ONE HUNDRED TALENTS*/ + RTUNI_ALPHA, /* U+01014c: GREEK ACROPHONIC ATTIC FIVE HUNDRED TALENTS*/ + RTUNI_ALPHA, /* U+01014d: GREEK ACROPHONIC ATTIC ONE THOUSAND TALENTS*/ + RTUNI_ALPHA, /* U+01014e: GREEK ACROPHONIC ATTIC FIVE THOUSAND TALENTS*/ + RTUNI_ALPHA, /* U+01014f: GREEK ACROPHONIC ATTIC FIVE STATERS*/ + RTUNI_ALPHA, /* U+010150: GREEK ACROPHONIC ATTIC TEN STATERS*/ + RTUNI_ALPHA, /* U+010151: GREEK ACROPHONIC ATTIC FIFTY STATERS*/ + RTUNI_ALPHA, /* U+010152: GREEK ACROPHONIC ATTIC ONE HUNDRED STATERS*/ + RTUNI_ALPHA, /* U+010153: GREEK ACROPHONIC ATTIC FIVE HUNDRED STATERS*/ + RTUNI_ALPHA, /* U+010154: GREEK ACROPHONIC ATTIC ONE THOUSAND STATERS*/ + RTUNI_ALPHA, /* U+010155: GREEK ACROPHONIC ATTIC TEN THOUSAND STATERS*/ + RTUNI_ALPHA, /* U+010156: GREEK ACROPHONIC ATTIC FIFTY THOUSAND STATERS*/ + RTUNI_ALPHA, /* U+010157: GREEK ACROPHONIC ATTIC TEN MNAS*/ + RTUNI_ALPHA, /* U+010158: GREEK ACROPHONIC HERAEUM ONE PLETHRON*/ + RTUNI_ALPHA, /* U+010159: GREEK ACROPHONIC THESPIAN ONE*/ + RTUNI_ALPHA, /* U+01015a: GREEK ACROPHONIC HERMIONIAN ONE*/ + RTUNI_ALPHA, /* U+01015b: GREEK ACROPHONIC EPIDAUREAN TWO*/ + RTUNI_ALPHA, /* U+01015c: GREEK ACROPHONIC THESPIAN TWO*/ + RTUNI_ALPHA, /* U+01015d: GREEK ACROPHONIC CYRENAIC TWO DRACHMAS*/ + RTUNI_ALPHA, /* U+01015e: GREEK ACROPHONIC EPIDAUREAN TWO DRACHMAS*/ + RTUNI_ALPHA, /* U+01015f: GREEK ACROPHONIC TROEZENIAN FIVE*/ + RTUNI_ALPHA, /* U+010160: GREEK ACROPHONIC TROEZENIAN TEN*/ + RTUNI_ALPHA, /* U+010161: GREEK ACROPHONIC TROEZENIAN TEN ALTERNATE FORM*/ + RTUNI_ALPHA, /* U+010162: GREEK ACROPHONIC HERMIONIAN TEN*/ + RTUNI_ALPHA, /* U+010163: GREEK ACROPHONIC MESSENIAN TEN*/ + RTUNI_ALPHA, /* U+010164: GREEK ACROPHONIC THESPIAN TEN*/ + RTUNI_ALPHA, /* U+010165: GREEK ACROPHONIC THESPIAN THIRTY*/ + RTUNI_ALPHA, /* U+010166: GREEK ACROPHONIC TROEZENIAN FIFTY*/ + RTUNI_ALPHA, /* U+010167: GREEK ACROPHONIC TROEZENIAN FIFTY ALTERNATE FORM*/ + RTUNI_ALPHA, /* U+010168: GREEK ACROPHONIC HERMIONIAN FIFTY*/ + RTUNI_ALPHA, /* U+010169: GREEK ACROPHONIC THESPIAN FIFTY*/ + RTUNI_ALPHA, /* U+01016a: GREEK ACROPHONIC THESPIAN ONE HUNDRED*/ + RTUNI_ALPHA, /* U+01016b: GREEK ACROPHONIC THESPIAN THREE HUNDRED*/ + RTUNI_ALPHA, /* U+01016c: GREEK ACROPHONIC EPIDAUREAN FIVE HUNDRED*/ + RTUNI_ALPHA, /* U+01016d: GREEK ACROPHONIC TROEZENIAN FIVE HUNDRED*/ + RTUNI_ALPHA, /* U+01016e: GREEK ACROPHONIC THESPIAN FIVE HUNDRED*/ + RTUNI_ALPHA, /* U+01016f: GREEK ACROPHONIC CARYSTIAN FIVE HUNDRED*/ + RTUNI_ALPHA, /* U+010170: GREEK ACROPHONIC NAXIAN FIVE HUNDRED*/ + RTUNI_ALPHA, /* U+010171: GREEK ACROPHONIC THESPIAN ONE THOUSAND*/ + RTUNI_ALPHA, /* U+010172: GREEK ACROPHONIC THESPIAN FIVE THOUSAND*/ + RTUNI_ALPHA, /* U+010173: GREEK ACROPHONIC DELPHIC FIVE MNAS*/ + RTUNI_ALPHA, /* U+010174: GREEK ACROPHONIC STRATIAN FIFTY MNAS*/ + 0, /* U+010175: GREEK ONE HALF SIGN*/ + 0, /* U+010176: GREEK ONE HALF SIGN ALTERNATE FORM*/ + 0, /* U+010177: GREEK TWO THIRDS SIGN*/ + 0, /* U+010178: GREEK THREE QUARTERS SIGN*/ + 0, /* U+010179: GREEK YEAR SIGN*/ + 0, /* U+01017a: GREEK TALENT SIGN*/ + 0, /* U+01017b: GREEK DRACHMA SIGN*/ + 0, /* U+01017c: GREEK OBOL SIGN*/ + 0, /* U+01017d: GREEK TWO OBOLS SIGN*/ + 0, /* U+01017e: GREEK THREE OBOLS SIGN*/ + 0, /* U+01017f: GREEK FOUR OBOLS SIGN*/ + 0, /* U+010180: GREEK FIVE OBOLS SIGN*/ + 0, /* U+010181: GREEK METRETES SIGN*/ + 0, /* U+010182: GREEK KYATHOS BASE SIGN*/ + 0, /* U+010183: GREEK LITRA SIGN*/ + 0, /* U+010184: GREEK OUNKIA SIGN*/ + 0, /* U+010185: GREEK XESTES SIGN*/ + 0, /* U+010186: GREEK ARTABE SIGN*/ + 0, /* U+010187: GREEK AROURA SIGN*/ + 0, /* U+010188: GREEK GRAMMA SIGN*/ + 0, /* U+010189: GREEK TRYBLION BASE SIGN*/ + 0, /* U+01018a: GREEK ZERO SIGN*/ + 0, /* U+01018b: */ + 0, /* U+01018c: */ + 0, /* U+01018d: */ + 0, /* U+01018e: */ + 0, /* U+01018f: */ + 0, /* U+010190: ROMAN SEXTANS SIGN*/ + 0, /* U+010191: ROMAN UNCIA SIGN*/ + 0, /* U+010192: ROMAN SEMUNCIA SIGN*/ + 0, /* U+010193: ROMAN SEXTULA SIGN*/ + 0, /* U+010194: ROMAN DIMIDIA SEXTULA SIGN*/ + 0, /* U+010195: ROMAN SILIQUA SIGN*/ + 0, /* U+010196: ROMAN DENARIUS SIGN*/ + 0, /* U+010197: ROMAN QUINARIUS SIGN*/ + 0, /* U+010198: ROMAN SESTERTIUS SIGN*/ + 0, /* U+010199: ROMAN DUPONDIUS SIGN*/ + 0, /* U+01019a: ROMAN AS SIGN*/ + 0, /* U+01019b: ROMAN CENTURIAL SIGN*/ + 0, /* U+01019c: */ + 0, /* U+01019d: */ + 0, /* U+01019e: */ + 0, /* U+01019f: */ + 0, /* U+0101a0: */ + 0, /* U+0101a1: */ + 0, /* U+0101a2: */ + 0, /* U+0101a3: */ + 0, /* U+0101a4: */ + 0, /* U+0101a5: */ + 0, /* U+0101a6: */ + 0, /* U+0101a7: */ + 0, /* U+0101a8: */ + 0, /* U+0101a9: */ + 0, /* U+0101aa: */ + 0, /* U+0101ab: */ + 0, /* U+0101ac: */ + 0, /* U+0101ad: */ + 0, /* U+0101ae: */ + 0, /* U+0101af: */ + 0, /* U+0101b0: */ + 0, /* U+0101b1: */ + 0, /* U+0101b2: */ + 0, /* U+0101b3: */ + 0, /* U+0101b4: */ + 0, /* U+0101b5: */ + 0, /* U+0101b6: */ + 0, /* U+0101b7: */ + 0, /* U+0101b8: */ + 0, /* U+0101b9: */ + 0, /* U+0101ba: */ + 0, /* U+0101bb: */ + 0, /* U+0101bc: */ + 0, /* U+0101bd: */ + 0, /* U+0101be: */ + 0, /* U+0101bf: */ + 0, /* U+0101c0: */ + 0, /* U+0101c1: */ + 0, /* U+0101c2: */ + 0, /* U+0101c3: */ + 0, /* U+0101c4: */ + 0, /* U+0101c5: */ + 0, /* U+0101c6: */ + 0, /* U+0101c7: */ + 0, /* U+0101c8: */ + 0, /* U+0101c9: */ + 0, /* U+0101ca: */ + 0, /* U+0101cb: */ + 0, /* U+0101cc: */ + 0, /* U+0101cd: */ + 0, /* U+0101ce: */ + 0, /* U+0101cf: */ + 0, /* U+0101d0: PHAISTOS DISC SIGN PEDESTRIAN*/ + 0, /* U+0101d1: PHAISTOS DISC SIGN PLUMED HEAD*/ + 0, /* U+0101d2: PHAISTOS DISC SIGN TATTOOED HEAD*/ + 0, /* U+0101d3: PHAISTOS DISC SIGN CAPTIVE*/ + 0, /* U+0101d4: PHAISTOS DISC SIGN CHILD*/ + 0, /* U+0101d5: PHAISTOS DISC SIGN WOMAN*/ + 0, /* U+0101d6: PHAISTOS DISC SIGN HELMET*/ + 0, /* U+0101d7: PHAISTOS DISC SIGN GAUNTLET*/ + 0, /* U+0101d8: PHAISTOS DISC SIGN TIARA*/ + 0, /* U+0101d9: PHAISTOS DISC SIGN ARROW*/ + 0, /* U+0101da: PHAISTOS DISC SIGN BOW*/ + 0, /* U+0101db: PHAISTOS DISC SIGN SHIELD*/ + 0, /* U+0101dc: PHAISTOS DISC SIGN CLUB*/ + 0, /* U+0101dd: PHAISTOS DISC SIGN MANACLES*/ + 0, /* U+0101de: PHAISTOS DISC SIGN MATTOCK*/ + 0, /* U+0101df: PHAISTOS DISC SIGN SAW*/ + 0, /* U+0101e0: PHAISTOS DISC SIGN LID*/ + 0, /* U+0101e1: PHAISTOS DISC SIGN BOOMERANG*/ + 0, /* U+0101e2: PHAISTOS DISC SIGN CARPENTRY PLANE*/ + 0, /* U+0101e3: PHAISTOS DISC SIGN DOLIUM*/ + 0, /* U+0101e4: PHAISTOS DISC SIGN COMB*/ + 0, /* U+0101e5: PHAISTOS DISC SIGN SLING*/ + 0, /* U+0101e6: PHAISTOS DISC SIGN COLUMN*/ + 0, /* U+0101e7: PHAISTOS DISC SIGN BEEHIVE*/ + 0, /* U+0101e8: PHAISTOS DISC SIGN SHIP*/ + 0, /* U+0101e9: PHAISTOS DISC SIGN HORN*/ + 0, /* U+0101ea: PHAISTOS DISC SIGN HIDE*/ + 0, /* U+0101eb: PHAISTOS DISC SIGN BULLS LEG*/ + 0, /* U+0101ec: PHAISTOS DISC SIGN CAT*/ + 0, /* U+0101ed: PHAISTOS DISC SIGN RAM*/ + 0, /* U+0101ee: PHAISTOS DISC SIGN EAGLE*/ + 0, /* U+0101ef: PHAISTOS DISC SIGN DOVE*/ + 0, /* U+0101f0: PHAISTOS DISC SIGN TUNNY*/ + 0, /* U+0101f1: PHAISTOS DISC SIGN BEE*/ + 0, /* U+0101f2: PHAISTOS DISC SIGN PLANE TREE*/ + 0, /* U+0101f3: PHAISTOS DISC SIGN VINE*/ + 0, /* U+0101f4: PHAISTOS DISC SIGN PAPYRUS*/ + 0, /* U+0101f5: PHAISTOS DISC SIGN ROSETTE*/ + 0, /* U+0101f6: PHAISTOS DISC SIGN LILY*/ + 0, /* U+0101f7: PHAISTOS DISC SIGN OX BACK*/ + 0, /* U+0101f8: PHAISTOS DISC SIGN FLUTE*/ + 0, /* U+0101f9: PHAISTOS DISC SIGN GRATER*/ + 0, /* U+0101fa: PHAISTOS DISC SIGN STRAINER*/ + 0, /* U+0101fb: PHAISTOS DISC SIGN SMALL AXE*/ + 0, /* U+0101fc: PHAISTOS DISC SIGN WAVY BAND*/ + 0, /* U+0101fd: PHAISTOS DISC SIGN COMBINING OBLIQUE STROKE*/ + 0, /* U+0101fe: */ + 0, /* U+0101ff: */ + 0, /* U+010200: */ + 0, /* U+010201: */ + 0, /* U+010202: */ + 0, /* U+010203: */ + 0, /* U+010204: */ + 0, /* U+010205: */ + 0, /* U+010206: */ + 0, /* U+010207: */ + 0, /* U+010208: */ + 0, /* U+010209: */ + 0, /* U+01020a: */ + 0, /* U+01020b: */ + 0, /* U+01020c: */ + 0, /* U+01020d: */ + 0, /* U+01020e: */ + 0, /* U+01020f: */ + 0, /* U+010210: */ + 0, /* U+010211: */ + 0, /* U+010212: */ + 0, /* U+010213: */ + 0, /* U+010214: */ + 0, /* U+010215: */ + 0, /* U+010216: */ + 0, /* U+010217: */ + 0, /* U+010218: */ + 0, /* U+010219: */ + 0, /* U+01021a: */ + 0, /* U+01021b: */ + 0, /* U+01021c: */ + 0, /* U+01021d: */ + 0, /* U+01021e: */ + 0, /* U+01021f: */ + 0, /* U+010220: */ + 0, /* U+010221: */ + 0, /* U+010222: */ + 0, /* U+010223: */ + 0, /* U+010224: */ + 0, /* U+010225: */ + 0, /* U+010226: */ + 0, /* U+010227: */ + 0, /* U+010228: */ + 0, /* U+010229: */ + 0, /* U+01022a: */ + 0, /* U+01022b: */ + 0, /* U+01022c: */ + 0, /* U+01022d: */ + 0, /* U+01022e: */ + 0, /* U+01022f: */ + 0, /* U+010230: */ + 0, /* U+010231: */ + 0, /* U+010232: */ + 0, /* U+010233: */ + 0, /* U+010234: */ + 0, /* U+010235: */ + 0, /* U+010236: */ + 0, /* U+010237: */ + 0, /* U+010238: */ + 0, /* U+010239: */ + 0, /* U+01023a: */ + 0, /* U+01023b: */ + 0, /* U+01023c: */ + 0, /* U+01023d: */ + 0, /* U+01023e: */ + 0, /* U+01023f: */ + 0, /* U+010240: */ + 0, /* U+010241: */ + 0, /* U+010242: */ + 0, /* U+010243: */ + 0, /* U+010244: */ + 0, /* U+010245: */ + 0, /* U+010246: */ + 0, /* U+010247: */ + 0, /* U+010248: */ + 0, /* U+010249: */ + 0, /* U+01024a: */ + 0, /* U+01024b: */ + 0, /* U+01024c: */ + 0, /* U+01024d: */ + 0, /* U+01024e: */ + 0, /* U+01024f: */ + 0, /* U+010250: */ + 0, /* U+010251: */ + 0, /* U+010252: */ + 0, /* U+010253: */ + 0, /* U+010254: */ + 0, /* U+010255: */ + 0, /* U+010256: */ + 0, /* U+010257: */ + 0, /* U+010258: */ + 0, /* U+010259: */ + 0, /* U+01025a: */ + 0, /* U+01025b: */ + 0, /* U+01025c: */ + 0, /* U+01025d: */ + 0, /* U+01025e: */ + 0, /* U+01025f: */ + 0, /* U+010260: */ + 0, /* U+010261: */ + 0, /* U+010262: */ + 0, /* U+010263: */ + 0, /* U+010264: */ + 0, /* U+010265: */ + 0, /* U+010266: */ + 0, /* U+010267: */ + 0, /* U+010268: */ + 0, /* U+010269: */ + 0, /* U+01026a: */ + 0, /* U+01026b: */ + 0, /* U+01026c: */ + 0, /* U+01026d: */ + 0, /* U+01026e: */ + 0, /* U+01026f: */ + 0, /* U+010270: */ + 0, /* U+010271: */ + 0, /* U+010272: */ + 0, /* U+010273: */ + 0, /* U+010274: */ + 0, /* U+010275: */ + 0, /* U+010276: */ + 0, /* U+010277: */ + 0, /* U+010278: */ + 0, /* U+010279: */ + 0, /* U+01027a: */ + 0, /* U+01027b: */ + 0, /* U+01027c: */ + 0, /* U+01027d: */ + 0, /* U+01027e: */ + 0, /* U+01027f: */ + RTUNI_ALPHA, /* U+010280: LYCIAN LETTER A*/ + RTUNI_ALPHA, /* U+010281: LYCIAN LETTER E*/ + RTUNI_ALPHA, /* U+010282: LYCIAN LETTER B*/ + RTUNI_ALPHA, /* U+010283: LYCIAN LETTER BH*/ + RTUNI_ALPHA, /* U+010284: LYCIAN LETTER G*/ + RTUNI_ALPHA, /* U+010285: LYCIAN LETTER D*/ + RTUNI_ALPHA, /* U+010286: LYCIAN LETTER I*/ + RTUNI_ALPHA, /* U+010287: LYCIAN LETTER W*/ + RTUNI_ALPHA, /* U+010288: LYCIAN LETTER Z*/ + RTUNI_ALPHA, /* U+010289: LYCIAN LETTER TH*/ + RTUNI_ALPHA, /* U+01028a: LYCIAN LETTER J*/ + RTUNI_ALPHA, /* U+01028b: LYCIAN LETTER K*/ + RTUNI_ALPHA, /* U+01028c: LYCIAN LETTER Q*/ + RTUNI_ALPHA, /* U+01028d: LYCIAN LETTER L*/ + RTUNI_ALPHA, /* U+01028e: LYCIAN LETTER M*/ + RTUNI_ALPHA, /* U+01028f: LYCIAN LETTER N*/ + RTUNI_ALPHA, /* U+010290: LYCIAN LETTER MM*/ + RTUNI_ALPHA, /* U+010291: LYCIAN LETTER NN*/ + RTUNI_ALPHA, /* U+010292: LYCIAN LETTER U*/ + RTUNI_ALPHA, /* U+010293: LYCIAN LETTER P*/ + RTUNI_ALPHA, /* U+010294: LYCIAN LETTER KK*/ + RTUNI_ALPHA, /* U+010295: LYCIAN LETTER R*/ + RTUNI_ALPHA, /* U+010296: LYCIAN LETTER S*/ + RTUNI_ALPHA, /* U+010297: LYCIAN LETTER T*/ + RTUNI_ALPHA, /* U+010298: LYCIAN LETTER TT*/ + RTUNI_ALPHA, /* U+010299: LYCIAN LETTER AN*/ + RTUNI_ALPHA, /* U+01029a: LYCIAN LETTER EN*/ + RTUNI_ALPHA, /* U+01029b: LYCIAN LETTER H*/ + RTUNI_ALPHA, /* U+01029c: LYCIAN LETTER X*/ + 0, /* U+01029d: */ + 0, /* U+01029e: */ + 0, /* U+01029f: */ + RTUNI_ALPHA, /* U+0102a0: CARIAN LETTER A*/ + RTUNI_ALPHA, /* U+0102a1: CARIAN LETTER P2*/ + RTUNI_ALPHA, /* U+0102a2: CARIAN LETTER D*/ + RTUNI_ALPHA, /* U+0102a3: CARIAN LETTER L*/ + RTUNI_ALPHA, /* U+0102a4: CARIAN LETTER UUU*/ + RTUNI_ALPHA, /* U+0102a5: CARIAN LETTER R*/ + RTUNI_ALPHA, /* U+0102a6: CARIAN LETTER LD*/ + RTUNI_ALPHA, /* U+0102a7: CARIAN LETTER A2*/ + RTUNI_ALPHA, /* U+0102a8: CARIAN LETTER Q*/ + RTUNI_ALPHA, /* U+0102a9: CARIAN LETTER B*/ + RTUNI_ALPHA, /* U+0102aa: CARIAN LETTER M*/ + RTUNI_ALPHA, /* U+0102ab: CARIAN LETTER O*/ + RTUNI_ALPHA, /* U+0102ac: CARIAN LETTER D2*/ + RTUNI_ALPHA, /* U+0102ad: CARIAN LETTER T*/ + RTUNI_ALPHA, /* U+0102ae: CARIAN LETTER SH*/ + RTUNI_ALPHA, /* U+0102af: CARIAN LETTER SH2*/ + RTUNI_ALPHA, /* U+0102b0: CARIAN LETTER S*/ + RTUNI_ALPHA, /* U+0102b1: CARIAN LETTER C-18*/ + RTUNI_ALPHA, /* U+0102b2: CARIAN LETTER U*/ + RTUNI_ALPHA, /* U+0102b3: CARIAN LETTER NN*/ + RTUNI_ALPHA, /* U+0102b4: CARIAN LETTER X*/ + RTUNI_ALPHA, /* U+0102b5: CARIAN LETTER N*/ + RTUNI_ALPHA, /* U+0102b6: CARIAN LETTER TT2*/ + RTUNI_ALPHA, /* U+0102b7: CARIAN LETTER P*/ + RTUNI_ALPHA, /* U+0102b8: CARIAN LETTER SS*/ + RTUNI_ALPHA, /* U+0102b9: CARIAN LETTER I*/ + RTUNI_ALPHA, /* U+0102ba: CARIAN LETTER E*/ + RTUNI_ALPHA, /* U+0102bb: CARIAN LETTER UUUU*/ + RTUNI_ALPHA, /* U+0102bc: CARIAN LETTER K*/ + RTUNI_ALPHA, /* U+0102bd: CARIAN LETTER K2*/ + RTUNI_ALPHA, /* U+0102be: CARIAN LETTER ND*/ + RTUNI_ALPHA, /* U+0102bf: CARIAN LETTER UU*/ + RTUNI_ALPHA, /* U+0102c0: CARIAN LETTER G*/ + RTUNI_ALPHA, /* U+0102c1: CARIAN LETTER G2*/ + RTUNI_ALPHA, /* U+0102c2: CARIAN LETTER ST*/ + RTUNI_ALPHA, /* U+0102c3: CARIAN LETTER ST2*/ + RTUNI_ALPHA, /* U+0102c4: CARIAN LETTER NG*/ + RTUNI_ALPHA, /* U+0102c5: CARIAN LETTER II*/ + RTUNI_ALPHA, /* U+0102c6: CARIAN LETTER C-39*/ + RTUNI_ALPHA, /* U+0102c7: CARIAN LETTER TT*/ + RTUNI_ALPHA, /* U+0102c8: CARIAN LETTER UUU2*/ + RTUNI_ALPHA, /* U+0102c9: CARIAN LETTER RR*/ + RTUNI_ALPHA, /* U+0102ca: CARIAN LETTER MB*/ + RTUNI_ALPHA, /* U+0102cb: CARIAN LETTER MB2*/ + RTUNI_ALPHA, /* U+0102cc: CARIAN LETTER MB3*/ + RTUNI_ALPHA, /* U+0102cd: CARIAN LETTER MB4*/ + RTUNI_ALPHA, /* U+0102ce: CARIAN LETTER LD2*/ + RTUNI_ALPHA, /* U+0102cf: CARIAN LETTER E2*/ + RTUNI_ALPHA, /* U+0102d0: CARIAN LETTER UUU3*/ + 0, /* U+0102d1: */ + 0, /* U+0102d2: */ + 0, /* U+0102d3: */ + 0, /* U+0102d4: */ + 0, /* U+0102d5: */ + 0, /* U+0102d6: */ + 0, /* U+0102d7: */ + 0, /* U+0102d8: */ + 0, /* U+0102d9: */ + 0, /* U+0102da: */ + 0, /* U+0102db: */ + 0, /* U+0102dc: */ + 0, /* U+0102dd: */ + 0, /* U+0102de: */ + 0, /* U+0102df: */ + 0, /* U+0102e0: */ + 0, /* U+0102e1: */ + 0, /* U+0102e2: */ + 0, /* U+0102e3: */ + 0, /* U+0102e4: */ + 0, /* U+0102e5: */ + 0, /* U+0102e6: */ + 0, /* U+0102e7: */ + 0, /* U+0102e8: */ + 0, /* U+0102e9: */ + 0, /* U+0102ea: */ + 0, /* U+0102eb: */ + 0, /* U+0102ec: */ + 0, /* U+0102ed: */ + 0, /* U+0102ee: */ + 0, /* U+0102ef: */ + 0, /* U+0102f0: */ + 0, /* U+0102f1: */ + 0, /* U+0102f2: */ + 0, /* U+0102f3: */ + 0, /* U+0102f4: */ + 0, /* U+0102f5: */ + 0, /* U+0102f6: */ + 0, /* U+0102f7: */ + 0, /* U+0102f8: */ + 0, /* U+0102f9: */ + 0, /* U+0102fa: */ + 0, /* U+0102fb: */ + 0, /* U+0102fc: */ + 0, /* U+0102fd: */ + 0, /* U+0102fe: */ + 0, /* U+0102ff: */ + RTUNI_ALPHA, /* U+010300: OLD ITALIC LETTER A*/ + RTUNI_ALPHA, /* U+010301: OLD ITALIC LETTER BE*/ + RTUNI_ALPHA, /* U+010302: OLD ITALIC LETTER KE*/ + RTUNI_ALPHA, /* U+010303: OLD ITALIC LETTER DE*/ + RTUNI_ALPHA, /* U+010304: OLD ITALIC LETTER E*/ + RTUNI_ALPHA, /* U+010305: OLD ITALIC LETTER VE*/ + RTUNI_ALPHA, /* U+010306: OLD ITALIC LETTER ZE*/ + RTUNI_ALPHA, /* U+010307: OLD ITALIC LETTER HE*/ + RTUNI_ALPHA, /* U+010308: OLD ITALIC LETTER THE*/ + RTUNI_ALPHA, /* U+010309: OLD ITALIC LETTER I*/ + RTUNI_ALPHA, /* U+01030a: OLD ITALIC LETTER KA*/ + RTUNI_ALPHA, /* U+01030b: OLD ITALIC LETTER EL*/ + RTUNI_ALPHA, /* U+01030c: OLD ITALIC LETTER EM*/ + RTUNI_ALPHA, /* U+01030d: OLD ITALIC LETTER EN*/ + RTUNI_ALPHA, /* U+01030e: OLD ITALIC LETTER ESH*/ + RTUNI_ALPHA, /* U+01030f: OLD ITALIC LETTER O*/ + RTUNI_ALPHA, /* U+010310: OLD ITALIC LETTER PE*/ + RTUNI_ALPHA, /* U+010311: OLD ITALIC LETTER SHE*/ + RTUNI_ALPHA, /* U+010312: OLD ITALIC LETTER KU*/ + RTUNI_ALPHA, /* U+010313: OLD ITALIC LETTER ER*/ + RTUNI_ALPHA, /* U+010314: OLD ITALIC LETTER ES*/ + RTUNI_ALPHA, /* U+010315: OLD ITALIC LETTER TE*/ + RTUNI_ALPHA, /* U+010316: OLD ITALIC LETTER U*/ + RTUNI_ALPHA, /* U+010317: OLD ITALIC LETTER EKS*/ + RTUNI_ALPHA, /* U+010318: OLD ITALIC LETTER PHE*/ + RTUNI_ALPHA, /* U+010319: OLD ITALIC LETTER KHE*/ + RTUNI_ALPHA, /* U+01031a: OLD ITALIC LETTER EF*/ + RTUNI_ALPHA, /* U+01031b: OLD ITALIC LETTER ERS*/ + RTUNI_ALPHA, /* U+01031c: OLD ITALIC LETTER CHE*/ + RTUNI_ALPHA, /* U+01031d: OLD ITALIC LETTER II*/ + RTUNI_ALPHA, /* U+01031e: OLD ITALIC LETTER UU*/ + 0, /* U+01031f: */ + 0, /* U+010320: OLD ITALIC NUMERAL ONE*/ + 0, /* U+010321: OLD ITALIC NUMERAL FIVE*/ + 0, /* U+010322: OLD ITALIC NUMERAL TEN*/ + 0, /* U+010323: OLD ITALIC NUMERAL FIFTY*/ + 0, /* U+010324: */ + 0, /* U+010325: */ + 0, /* U+010326: */ + 0, /* U+010327: */ + 0, /* U+010328: */ + 0, /* U+010329: */ + 0, /* U+01032a: */ + 0, /* U+01032b: */ + 0, /* U+01032c: */ + 0, /* U+01032d: */ + 0, /* U+01032e: */ + 0, /* U+01032f: */ + RTUNI_ALPHA, /* U+010330: GOTHIC LETTER AHSA*/ + RTUNI_ALPHA, /* U+010331: GOTHIC LETTER BAIRKAN*/ + RTUNI_ALPHA, /* U+010332: GOTHIC LETTER GIBA*/ + RTUNI_ALPHA, /* U+010333: GOTHIC LETTER DAGS*/ + RTUNI_ALPHA, /* U+010334: GOTHIC LETTER AIHVUS*/ + RTUNI_ALPHA, /* U+010335: GOTHIC LETTER QAIRTHRA*/ + RTUNI_ALPHA, /* U+010336: GOTHIC LETTER IUJA*/ + RTUNI_ALPHA, /* U+010337: GOTHIC LETTER HAGL*/ + RTUNI_ALPHA, /* U+010338: GOTHIC LETTER THIUTH*/ + RTUNI_ALPHA, /* U+010339: GOTHIC LETTER EIS*/ + RTUNI_ALPHA, /* U+01033a: GOTHIC LETTER KUSMA*/ + RTUNI_ALPHA, /* U+01033b: GOTHIC LETTER LAGUS*/ + RTUNI_ALPHA, /* U+01033c: GOTHIC LETTER MANNA*/ + RTUNI_ALPHA, /* U+01033d: GOTHIC LETTER NAUTHS*/ + RTUNI_ALPHA, /* U+01033e: GOTHIC LETTER JER*/ + RTUNI_ALPHA, /* U+01033f: GOTHIC LETTER URUS*/ + RTUNI_ALPHA, /* U+010340: GOTHIC LETTER PAIRTHRA*/ + RTUNI_ALPHA, /* U+010341: GOTHIC LETTER NINETY*/ + RTUNI_ALPHA, /* U+010342: GOTHIC LETTER RAIDA*/ + RTUNI_ALPHA, /* U+010343: GOTHIC LETTER SAUIL*/ + RTUNI_ALPHA, /* U+010344: GOTHIC LETTER TEIWS*/ + RTUNI_ALPHA, /* U+010345: GOTHIC LETTER WINJA*/ + RTUNI_ALPHA, /* U+010346: GOTHIC LETTER FAIHU*/ + RTUNI_ALPHA, /* U+010347: GOTHIC LETTER IGGWS*/ + RTUNI_ALPHA, /* U+010348: GOTHIC LETTER HWAIR*/ + RTUNI_ALPHA, /* U+010349: GOTHIC LETTER OTHAL*/ + RTUNI_ALPHA, /* U+01034a: GOTHIC LETTER NINE HUNDRED*/ + 0, /* U+01034b: */ + 0, /* U+01034c: */ + 0, /* U+01034d: */ + 0, /* U+01034e: */ + 0, /* U+01034f: */ + 0, /* U+010350: */ + 0, /* U+010351: */ + 0, /* U+010352: */ + 0, /* U+010353: */ + 0, /* U+010354: */ + 0, /* U+010355: */ + 0, /* U+010356: */ + 0, /* U+010357: */ + 0, /* U+010358: */ + 0, /* U+010359: */ + 0, /* U+01035a: */ + 0, /* U+01035b: */ + 0, /* U+01035c: */ + 0, /* U+01035d: */ + 0, /* U+01035e: */ + 0, /* U+01035f: */ + 0, /* U+010360: */ + 0, /* U+010361: */ + 0, /* U+010362: */ + 0, /* U+010363: */ + 0, /* U+010364: */ + 0, /* U+010365: */ + 0, /* U+010366: */ + 0, /* U+010367: */ + 0, /* U+010368: */ + 0, /* U+010369: */ + 0, /* U+01036a: */ + 0, /* U+01036b: */ + 0, /* U+01036c: */ + 0, /* U+01036d: */ + 0, /* U+01036e: */ + 0, /* U+01036f: */ + 0, /* U+010370: */ + 0, /* U+010371: */ + 0, /* U+010372: */ + 0, /* U+010373: */ + 0, /* U+010374: */ + 0, /* U+010375: */ + 0, /* U+010376: */ + 0, /* U+010377: */ + 0, /* U+010378: */ + 0, /* U+010379: */ + 0, /* U+01037a: */ + 0, /* U+01037b: */ + 0, /* U+01037c: */ + 0, /* U+01037d: */ + 0, /* U+01037e: */ + 0, /* U+01037f: */ + RTUNI_ALPHA, /* U+010380: UGARITIC LETTER ALPA*/ + RTUNI_ALPHA, /* U+010381: UGARITIC LETTER BETA*/ + RTUNI_ALPHA, /* U+010382: UGARITIC LETTER GAMLA*/ + RTUNI_ALPHA, /* U+010383: UGARITIC LETTER KHA*/ + RTUNI_ALPHA, /* U+010384: UGARITIC LETTER DELTA*/ + RTUNI_ALPHA, /* U+010385: UGARITIC LETTER HO*/ + RTUNI_ALPHA, /* U+010386: UGARITIC LETTER WO*/ + RTUNI_ALPHA, /* U+010387: UGARITIC LETTER ZETA*/ + RTUNI_ALPHA, /* U+010388: UGARITIC LETTER HOTA*/ + RTUNI_ALPHA, /* U+010389: UGARITIC LETTER TET*/ + RTUNI_ALPHA, /* U+01038a: UGARITIC LETTER YOD*/ + RTUNI_ALPHA, /* U+01038b: UGARITIC LETTER KAF*/ + RTUNI_ALPHA, /* U+01038c: UGARITIC LETTER SHIN*/ + RTUNI_ALPHA, /* U+01038d: UGARITIC LETTER LAMDA*/ + RTUNI_ALPHA, /* U+01038e: UGARITIC LETTER MEM*/ + RTUNI_ALPHA, /* U+01038f: UGARITIC LETTER DHAL*/ + RTUNI_ALPHA, /* U+010390: UGARITIC LETTER NUN*/ + RTUNI_ALPHA, /* U+010391: UGARITIC LETTER ZU*/ + RTUNI_ALPHA, /* U+010392: UGARITIC LETTER SAMKA*/ + RTUNI_ALPHA, /* U+010393: UGARITIC LETTER AIN*/ + RTUNI_ALPHA, /* U+010394: UGARITIC LETTER PU*/ + RTUNI_ALPHA, /* U+010395: UGARITIC LETTER SADE*/ + RTUNI_ALPHA, /* U+010396: UGARITIC LETTER QOPA*/ + RTUNI_ALPHA, /* U+010397: UGARITIC LETTER RASHA*/ + RTUNI_ALPHA, /* U+010398: UGARITIC LETTER THANNA*/ + RTUNI_ALPHA, /* U+010399: UGARITIC LETTER GHAIN*/ + RTUNI_ALPHA, /* U+01039a: UGARITIC LETTER TO*/ + RTUNI_ALPHA, /* U+01039b: UGARITIC LETTER I*/ + RTUNI_ALPHA, /* U+01039c: UGARITIC LETTER U*/ + RTUNI_ALPHA, /* U+01039d: UGARITIC LETTER SSU*/ + 0, /* U+01039e: */ + 0, /* U+01039f: UGARITIC WORD DIVIDER*/ + RTUNI_ALPHA, /* U+0103a0: OLD PERSIAN SIGN A*/ + RTUNI_ALPHA, /* U+0103a1: OLD PERSIAN SIGN I*/ + RTUNI_ALPHA, /* U+0103a2: OLD PERSIAN SIGN U*/ + RTUNI_ALPHA, /* U+0103a3: OLD PERSIAN SIGN KA*/ + RTUNI_ALPHA, /* U+0103a4: OLD PERSIAN SIGN KU*/ + RTUNI_ALPHA, /* U+0103a5: OLD PERSIAN SIGN GA*/ + RTUNI_ALPHA, /* U+0103a6: OLD PERSIAN SIGN GU*/ + RTUNI_ALPHA, /* U+0103a7: OLD PERSIAN SIGN XA*/ + RTUNI_ALPHA, /* U+0103a8: OLD PERSIAN SIGN CA*/ + RTUNI_ALPHA, /* U+0103a9: OLD PERSIAN SIGN JA*/ + RTUNI_ALPHA, /* U+0103aa: OLD PERSIAN SIGN JI*/ + RTUNI_ALPHA, /* U+0103ab: OLD PERSIAN SIGN TA*/ + RTUNI_ALPHA, /* U+0103ac: OLD PERSIAN SIGN TU*/ + RTUNI_ALPHA, /* U+0103ad: OLD PERSIAN SIGN DA*/ + RTUNI_ALPHA, /* U+0103ae: OLD PERSIAN SIGN DI*/ + RTUNI_ALPHA, /* U+0103af: OLD PERSIAN SIGN DU*/ + RTUNI_ALPHA, /* U+0103b0: OLD PERSIAN SIGN THA*/ + RTUNI_ALPHA, /* U+0103b1: OLD PERSIAN SIGN PA*/ + RTUNI_ALPHA, /* U+0103b2: OLD PERSIAN SIGN BA*/ + RTUNI_ALPHA, /* U+0103b3: OLD PERSIAN SIGN FA*/ + RTUNI_ALPHA, /* U+0103b4: OLD PERSIAN SIGN NA*/ + RTUNI_ALPHA, /* U+0103b5: OLD PERSIAN SIGN NU*/ + RTUNI_ALPHA, /* U+0103b6: OLD PERSIAN SIGN MA*/ + RTUNI_ALPHA, /* U+0103b7: OLD PERSIAN SIGN MI*/ + RTUNI_ALPHA, /* U+0103b8: OLD PERSIAN SIGN MU*/ + RTUNI_ALPHA, /* U+0103b9: OLD PERSIAN SIGN YA*/ + RTUNI_ALPHA, /* U+0103ba: OLD PERSIAN SIGN VA*/ + RTUNI_ALPHA, /* U+0103bb: OLD PERSIAN SIGN VI*/ + RTUNI_ALPHA, /* U+0103bc: OLD PERSIAN SIGN RA*/ + RTUNI_ALPHA, /* U+0103bd: OLD PERSIAN SIGN RU*/ + RTUNI_ALPHA, /* U+0103be: OLD PERSIAN SIGN LA*/ + RTUNI_ALPHA, /* U+0103bf: OLD PERSIAN SIGN SA*/ + RTUNI_ALPHA, /* U+0103c0: OLD PERSIAN SIGN ZA*/ + RTUNI_ALPHA, /* U+0103c1: OLD PERSIAN SIGN SHA*/ + RTUNI_ALPHA, /* U+0103c2: OLD PERSIAN SIGN SSA*/ + RTUNI_ALPHA, /* U+0103c3: OLD PERSIAN SIGN HA*/ + 0, /* U+0103c4: */ + 0, /* U+0103c5: */ + 0, /* U+0103c6: */ + 0, /* U+0103c7: */ + RTUNI_ALPHA, /* U+0103c8: OLD PERSIAN SIGN AURAMAZDAA*/ + RTUNI_ALPHA, /* U+0103c9: OLD PERSIAN SIGN AURAMAZDAA-2*/ + RTUNI_ALPHA, /* U+0103ca: OLD PERSIAN SIGN AURAMAZDAAHA*/ + RTUNI_ALPHA, /* U+0103cb: OLD PERSIAN SIGN XSHAAYATHIYA*/ + RTUNI_ALPHA, /* U+0103cc: OLD PERSIAN SIGN DAHYAAUSH*/ + RTUNI_ALPHA, /* U+0103cd: OLD PERSIAN SIGN DAHYAAUSH-2*/ + RTUNI_ALPHA, /* U+0103ce: OLD PERSIAN SIGN BAGA*/ + RTUNI_ALPHA, /* U+0103cf: OLD PERSIAN SIGN BUUMISH*/ + 0, /* U+0103d0: OLD PERSIAN WORD DIVIDER*/ + RTUNI_ALPHA, /* U+0103d1: OLD PERSIAN NUMBER ONE*/ + RTUNI_ALPHA, /* U+0103d2: OLD PERSIAN NUMBER TWO*/ + RTUNI_ALPHA, /* U+0103d3: OLD PERSIAN NUMBER TEN*/ + RTUNI_ALPHA, /* U+0103d4: OLD PERSIAN NUMBER TWENTY*/ + RTUNI_ALPHA, /* U+0103d5: OLD PERSIAN NUMBER HUNDRED*/ + 0, /* U+0103d6: */ + 0, /* U+0103d7: */ + 0, /* U+0103d8: */ + 0, /* U+0103d9: */ + 0, /* U+0103da: */ + 0, /* U+0103db: */ + 0, /* U+0103dc: */ + 0, /* U+0103dd: */ + 0, /* U+0103de: */ + 0, /* U+0103df: */ + 0, /* U+0103e0: */ + 0, /* U+0103e1: */ + 0, /* U+0103e2: */ + 0, /* U+0103e3: */ + 0, /* U+0103e4: */ + 0, /* U+0103e5: */ + 0, /* U+0103e6: */ + 0, /* U+0103e7: */ + 0, /* U+0103e8: */ + 0, /* U+0103e9: */ + 0, /* U+0103ea: */ + 0, /* U+0103eb: */ + 0, /* U+0103ec: */ + 0, /* U+0103ed: */ + 0, /* U+0103ee: */ + 0, /* U+0103ef: */ + 0, /* U+0103f0: */ + 0, /* U+0103f1: */ + 0, /* U+0103f2: */ + 0, /* U+0103f3: */ + 0, /* U+0103f4: */ + 0, /* U+0103f5: */ + 0, /* U+0103f6: */ + 0, /* U+0103f7: */ + 0, /* U+0103f8: */ + 0, /* U+0103f9: */ + 0, /* U+0103fa: */ + 0, /* U+0103fb: */ + 0, /* U+0103fc: */ + 0, /* U+0103fd: */ + 0, /* U+0103fe: */ + 0, /* U+0103ff: */ + RTUNI_ALPHA | RTUNI_UPPER, /* U+010400: DESERET CAPITAL LETTER LONG I*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+010401: DESERET CAPITAL LETTER LONG E*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+010402: DESERET CAPITAL LETTER LONG A*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+010403: DESERET CAPITAL LETTER LONG AH*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+010404: DESERET CAPITAL LETTER LONG O*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+010405: DESERET CAPITAL LETTER LONG OO*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+010406: DESERET CAPITAL LETTER SHORT I*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+010407: DESERET CAPITAL LETTER SHORT E*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+010408: DESERET CAPITAL LETTER SHORT A*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+010409: DESERET CAPITAL LETTER SHORT AH*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01040a: DESERET CAPITAL LETTER SHORT O*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01040b: DESERET CAPITAL LETTER SHORT OO*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01040c: DESERET CAPITAL LETTER AY*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01040d: DESERET CAPITAL LETTER OW*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01040e: DESERET CAPITAL LETTER WU*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01040f: DESERET CAPITAL LETTER YEE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+010410: DESERET CAPITAL LETTER H*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+010411: DESERET CAPITAL LETTER PEE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+010412: DESERET CAPITAL LETTER BEE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+010413: DESERET CAPITAL LETTER TEE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+010414: DESERET CAPITAL LETTER DEE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+010415: DESERET CAPITAL LETTER CHEE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+010416: DESERET CAPITAL LETTER JEE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+010417: DESERET CAPITAL LETTER KAY*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+010418: DESERET CAPITAL LETTER GAY*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+010419: DESERET CAPITAL LETTER EF*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01041a: DESERET CAPITAL LETTER VEE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01041b: DESERET CAPITAL LETTER ETH*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01041c: DESERET CAPITAL LETTER THEE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01041d: DESERET CAPITAL LETTER ES*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01041e: DESERET CAPITAL LETTER ZEE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01041f: DESERET CAPITAL LETTER ESH*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+010420: DESERET CAPITAL LETTER ZHEE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+010421: DESERET CAPITAL LETTER ER*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+010422: DESERET CAPITAL LETTER EL*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+010423: DESERET CAPITAL LETTER EM*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+010424: DESERET CAPITAL LETTER EN*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+010425: DESERET CAPITAL LETTER ENG*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+010426: DESERET CAPITAL LETTER OI*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+010427: DESERET CAPITAL LETTER EW*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+010428: DESERET SMALL LETTER LONG I*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+010429: DESERET SMALL LETTER LONG E*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01042a: DESERET SMALL LETTER LONG A*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01042b: DESERET SMALL LETTER LONG AH*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01042c: DESERET SMALL LETTER LONG O*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01042d: DESERET SMALL LETTER LONG OO*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01042e: DESERET SMALL LETTER SHORT I*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01042f: DESERET SMALL LETTER SHORT E*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+010430: DESERET SMALL LETTER SHORT A*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+010431: DESERET SMALL LETTER SHORT AH*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+010432: DESERET SMALL LETTER SHORT O*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+010433: DESERET SMALL LETTER SHORT OO*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+010434: DESERET SMALL LETTER AY*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+010435: DESERET SMALL LETTER OW*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+010436: DESERET SMALL LETTER WU*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+010437: DESERET SMALL LETTER YEE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+010438: DESERET SMALL LETTER H*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+010439: DESERET SMALL LETTER PEE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01043a: DESERET SMALL LETTER BEE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01043b: DESERET SMALL LETTER TEE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01043c: DESERET SMALL LETTER DEE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01043d: DESERET SMALL LETTER CHEE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01043e: DESERET SMALL LETTER JEE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01043f: DESERET SMALL LETTER KAY*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+010440: DESERET SMALL LETTER GAY*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+010441: DESERET SMALL LETTER EF*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+010442: DESERET SMALL LETTER VEE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+010443: DESERET SMALL LETTER ETH*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+010444: DESERET SMALL LETTER THEE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+010445: DESERET SMALL LETTER ES*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+010446: DESERET SMALL LETTER ZEE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+010447: DESERET SMALL LETTER ESH*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+010448: DESERET SMALL LETTER ZHEE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+010449: DESERET SMALL LETTER ER*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01044a: DESERET SMALL LETTER EL*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01044b: DESERET SMALL LETTER EM*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01044c: DESERET SMALL LETTER EN*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01044d: DESERET SMALL LETTER ENG*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01044e: DESERET SMALL LETTER OI*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01044f: DESERET SMALL LETTER EW*/ + RTUNI_ALPHA, /* U+010450: SHAVIAN LETTER PEEP*/ + RTUNI_ALPHA, /* U+010451: SHAVIAN LETTER TOT*/ + RTUNI_ALPHA, /* U+010452: SHAVIAN LETTER KICK*/ + RTUNI_ALPHA, /* U+010453: SHAVIAN LETTER FEE*/ + RTUNI_ALPHA, /* U+010454: SHAVIAN LETTER THIGH*/ + RTUNI_ALPHA, /* U+010455: SHAVIAN LETTER SO*/ + RTUNI_ALPHA, /* U+010456: SHAVIAN LETTER SURE*/ + RTUNI_ALPHA, /* U+010457: SHAVIAN LETTER CHURCH*/ + RTUNI_ALPHA, /* U+010458: SHAVIAN LETTER YEA*/ + RTUNI_ALPHA, /* U+010459: SHAVIAN LETTER HUNG*/ + RTUNI_ALPHA, /* U+01045a: SHAVIAN LETTER BIB*/ + RTUNI_ALPHA, /* U+01045b: SHAVIAN LETTER DEAD*/ + RTUNI_ALPHA, /* U+01045c: SHAVIAN LETTER GAG*/ + RTUNI_ALPHA, /* U+01045d: SHAVIAN LETTER VOW*/ + RTUNI_ALPHA, /* U+01045e: SHAVIAN LETTER THEY*/ + RTUNI_ALPHA, /* U+01045f: SHAVIAN LETTER ZOO*/ + RTUNI_ALPHA, /* U+010460: SHAVIAN LETTER MEASURE*/ + RTUNI_ALPHA, /* U+010461: SHAVIAN LETTER JUDGE*/ + RTUNI_ALPHA, /* U+010462: SHAVIAN LETTER WOE*/ + RTUNI_ALPHA, /* U+010463: SHAVIAN LETTER HA-HA*/ + RTUNI_ALPHA, /* U+010464: SHAVIAN LETTER LOLL*/ + RTUNI_ALPHA, /* U+010465: SHAVIAN LETTER MIME*/ + RTUNI_ALPHA, /* U+010466: SHAVIAN LETTER IF*/ + RTUNI_ALPHA, /* U+010467: SHAVIAN LETTER EGG*/ + RTUNI_ALPHA, /* U+010468: SHAVIAN LETTER ASH*/ + RTUNI_ALPHA, /* U+010469: SHAVIAN LETTER ADO*/ + RTUNI_ALPHA, /* U+01046a: SHAVIAN LETTER ON*/ + RTUNI_ALPHA, /* U+01046b: SHAVIAN LETTER WOOL*/ + RTUNI_ALPHA, /* U+01046c: SHAVIAN LETTER OUT*/ + RTUNI_ALPHA, /* U+01046d: SHAVIAN LETTER AH*/ + RTUNI_ALPHA, /* U+01046e: SHAVIAN LETTER ROAR*/ + RTUNI_ALPHA, /* U+01046f: SHAVIAN LETTER NUN*/ + RTUNI_ALPHA, /* U+010470: SHAVIAN LETTER EAT*/ + RTUNI_ALPHA, /* U+010471: SHAVIAN LETTER AGE*/ + RTUNI_ALPHA, /* U+010472: SHAVIAN LETTER ICE*/ + RTUNI_ALPHA, /* U+010473: SHAVIAN LETTER UP*/ + RTUNI_ALPHA, /* U+010474: SHAVIAN LETTER OAK*/ + RTUNI_ALPHA, /* U+010475: SHAVIAN LETTER OOZE*/ + RTUNI_ALPHA, /* U+010476: SHAVIAN LETTER OIL*/ + RTUNI_ALPHA, /* U+010477: SHAVIAN LETTER AWE*/ + RTUNI_ALPHA, /* U+010478: SHAVIAN LETTER ARE*/ + RTUNI_ALPHA, /* U+010479: SHAVIAN LETTER OR*/ + RTUNI_ALPHA, /* U+01047a: SHAVIAN LETTER AIR*/ + RTUNI_ALPHA, /* U+01047b: SHAVIAN LETTER ERR*/ + RTUNI_ALPHA, /* U+01047c: SHAVIAN LETTER ARRAY*/ + RTUNI_ALPHA, /* U+01047d: SHAVIAN LETTER EAR*/ + RTUNI_ALPHA, /* U+01047e: SHAVIAN LETTER IAN*/ + RTUNI_ALPHA, /* U+01047f: SHAVIAN LETTER YEW*/ + RTUNI_ALPHA, /* U+010480: OSMANYA LETTER ALEF*/ + RTUNI_ALPHA, /* U+010481: OSMANYA LETTER BA*/ + RTUNI_ALPHA, /* U+010482: OSMANYA LETTER TA*/ + RTUNI_ALPHA, /* U+010483: OSMANYA LETTER JA*/ + RTUNI_ALPHA, /* U+010484: OSMANYA LETTER XA*/ + RTUNI_ALPHA, /* U+010485: OSMANYA LETTER KHA*/ + RTUNI_ALPHA, /* U+010486: OSMANYA LETTER DEEL*/ + RTUNI_ALPHA, /* U+010487: OSMANYA LETTER RA*/ + RTUNI_ALPHA, /* U+010488: OSMANYA LETTER SA*/ + RTUNI_ALPHA, /* U+010489: OSMANYA LETTER SHIIN*/ + RTUNI_ALPHA, /* U+01048a: OSMANYA LETTER DHA*/ + RTUNI_ALPHA, /* U+01048b: OSMANYA LETTER CAYN*/ + RTUNI_ALPHA, /* U+01048c: OSMANYA LETTER GA*/ + RTUNI_ALPHA, /* U+01048d: OSMANYA LETTER FA*/ + RTUNI_ALPHA, /* U+01048e: OSMANYA LETTER QAAF*/ + RTUNI_ALPHA, /* U+01048f: OSMANYA LETTER KAAF*/ + RTUNI_ALPHA, /* U+010490: OSMANYA LETTER LAAN*/ + RTUNI_ALPHA, /* U+010491: OSMANYA LETTER MIIN*/ + RTUNI_ALPHA, /* U+010492: OSMANYA LETTER NUUN*/ + RTUNI_ALPHA, /* U+010493: OSMANYA LETTER WAW*/ + RTUNI_ALPHA, /* U+010494: OSMANYA LETTER HA*/ + RTUNI_ALPHA, /* U+010495: OSMANYA LETTER YA*/ + RTUNI_ALPHA, /* U+010496: OSMANYA LETTER A*/ + RTUNI_ALPHA, /* U+010497: OSMANYA LETTER E*/ + RTUNI_ALPHA, /* U+010498: OSMANYA LETTER I*/ + RTUNI_ALPHA, /* U+010499: OSMANYA LETTER O*/ + RTUNI_ALPHA, /* U+01049a: OSMANYA LETTER U*/ + RTUNI_ALPHA, /* U+01049b: OSMANYA LETTER AA*/ + RTUNI_ALPHA, /* U+01049c: OSMANYA LETTER EE*/ + RTUNI_ALPHA, /* U+01049d: OSMANYA LETTER OO*/ + 0, /* U+01049e: */ + 0, /* U+01049f: */ + RTUNI_DDIGIT, /* U+0104a0: OSMANYA DIGIT ZERO*/ + RTUNI_DDIGIT, /* U+0104a1: OSMANYA DIGIT ONE*/ + RTUNI_DDIGIT, /* U+0104a2: OSMANYA DIGIT TWO*/ + RTUNI_DDIGIT, /* U+0104a3: OSMANYA DIGIT THREE*/ + RTUNI_DDIGIT, /* U+0104a4: OSMANYA DIGIT FOUR*/ + RTUNI_DDIGIT, /* U+0104a5: OSMANYA DIGIT FIVE*/ + RTUNI_DDIGIT, /* U+0104a6: OSMANYA DIGIT SIX*/ + RTUNI_DDIGIT, /* U+0104a7: OSMANYA DIGIT SEVEN*/ + RTUNI_DDIGIT, /* U+0104a8: OSMANYA DIGIT EIGHT*/ + RTUNI_DDIGIT, /* U+0104a9: OSMANYA DIGIT NINE*/ + 0, /* U+0104aa: */ + 0, /* U+0104ab: */ + 0, /* U+0104ac: */ + 0, /* U+0104ad: */ + 0, /* U+0104ae: */ + 0, /* U+0104af: */ + 0, /* U+0104b0: */ + 0, /* U+0104b1: */ + 0, /* U+0104b2: */ + 0, /* U+0104b3: */ + 0, /* U+0104b4: */ + 0, /* U+0104b5: */ + 0, /* U+0104b6: */ + 0, /* U+0104b7: */ + 0, /* U+0104b8: */ + 0, /* U+0104b9: */ + 0, /* U+0104ba: */ + 0, /* U+0104bb: */ + 0, /* U+0104bc: */ + 0, /* U+0104bd: */ + 0, /* U+0104be: */ + 0, /* U+0104bf: */ + 0, /* U+0104c0: */ + 0, /* U+0104c1: */ + 0, /* U+0104c2: */ + 0, /* U+0104c3: */ + 0, /* U+0104c4: */ + 0, /* U+0104c5: */ + 0, /* U+0104c6: */ + 0, /* U+0104c7: */ + 0, /* U+0104c8: */ + 0, /* U+0104c9: */ + 0, /* U+0104ca: */ + 0, /* U+0104cb: */ + 0, /* U+0104cc: */ + 0, /* U+0104cd: */ + 0, /* U+0104ce: */ + 0, /* U+0104cf: */ + 0, /* U+0104d0: */ + 0, /* U+0104d1: */ + 0, /* U+0104d2: */ + 0, /* U+0104d3: */ + 0, /* U+0104d4: */ + 0, /* U+0104d5: */ + 0, /* U+0104d6: */ + 0, /* U+0104d7: */ + 0, /* U+0104d8: */ + 0, /* U+0104d9: */ + 0, /* U+0104da: */ + 0, /* U+0104db: */ + 0, /* U+0104dc: */ + 0, /* U+0104dd: */ + 0, /* U+0104de: */ + 0, /* U+0104df: */ + 0, /* U+0104e0: */ + 0, /* U+0104e1: */ + 0, /* U+0104e2: */ + 0, /* U+0104e3: */ + 0, /* U+0104e4: */ + 0, /* U+0104e5: */ + 0, /* U+0104e6: */ + 0, /* U+0104e7: */ + 0, /* U+0104e8: */ + 0, /* U+0104e9: */ + 0, /* U+0104ea: */ + 0, /* U+0104eb: */ + 0, /* U+0104ec: */ + 0, /* U+0104ed: */ + 0, /* U+0104ee: */ + 0, /* U+0104ef: */ + 0, /* U+0104f0: */ + 0, /* U+0104f1: */ + 0, /* U+0104f2: */ + 0, /* U+0104f3: */ + 0, /* U+0104f4: */ + 0, /* U+0104f5: */ + 0, /* U+0104f6: */ + 0, /* U+0104f7: */ + 0, /* U+0104f8: */ + 0, /* U+0104f9: */ + 0, /* U+0104fa: */ + 0, /* U+0104fb: */ + 0, /* U+0104fc: */ + 0, /* U+0104fd: */ + 0, /* U+0104fe: */ + 0, /* U+0104ff: */ + 0, /* U+010500: */ + 0, /* U+010501: */ + 0, /* U+010502: */ + 0, /* U+010503: */ + 0, /* U+010504: */ + 0, /* U+010505: */ + 0, /* U+010506: */ + 0, /* U+010507: */ + 0, /* U+010508: */ + 0, /* U+010509: */ + 0, /* U+01050a: */ + 0, /* U+01050b: */ + 0, /* U+01050c: */ + 0, /* U+01050d: */ + 0, /* U+01050e: */ + 0, /* U+01050f: */ + 0, /* U+010510: */ + 0, /* U+010511: */ + 0, /* U+010512: */ + 0, /* U+010513: */ + 0, /* U+010514: */ + 0, /* U+010515: */ + 0, /* U+010516: */ + 0, /* U+010517: */ + 0, /* U+010518: */ + 0, /* U+010519: */ + 0, /* U+01051a: */ + 0, /* U+01051b: */ + 0, /* U+01051c: */ + 0, /* U+01051d: */ + 0, /* U+01051e: */ + 0, /* U+01051f: */ + 0, /* U+010520: */ + 0, /* U+010521: */ + 0, /* U+010522: */ + 0, /* U+010523: */ + 0, /* U+010524: */ + 0, /* U+010525: */ + 0, /* U+010526: */ + 0, /* U+010527: */ + 0, /* U+010528: */ + 0, /* U+010529: */ + 0, /* U+01052a: */ + 0, /* U+01052b: */ + 0, /* U+01052c: */ + 0, /* U+01052d: */ + 0, /* U+01052e: */ + 0, /* U+01052f: */ + 0, /* U+010530: */ + 0, /* U+010531: */ + 0, /* U+010532: */ + 0, /* U+010533: */ + 0, /* U+010534: */ + 0, /* U+010535: */ + 0, /* U+010536: */ + 0, /* U+010537: */ + 0, /* U+010538: */ + 0, /* U+010539: */ + 0, /* U+01053a: */ + 0, /* U+01053b: */ + 0, /* U+01053c: */ + 0, /* U+01053d: */ + 0, /* U+01053e: */ + 0, /* U+01053f: */ + 0, /* U+010540: */ + 0, /* U+010541: */ + 0, /* U+010542: */ + 0, /* U+010543: */ + 0, /* U+010544: */ + 0, /* U+010545: */ + 0, /* U+010546: */ + 0, /* U+010547: */ + 0, /* U+010548: */ + 0, /* U+010549: */ + 0, /* U+01054a: */ + 0, /* U+01054b: */ + 0, /* U+01054c: */ + 0, /* U+01054d: */ + 0, /* U+01054e: */ + 0, /* U+01054f: */ + 0, /* U+010550: */ + 0, /* U+010551: */ + 0, /* U+010552: */ + 0, /* U+010553: */ + 0, /* U+010554: */ + 0, /* U+010555: */ + 0, /* U+010556: */ + 0, /* U+010557: */ + 0, /* U+010558: */ + 0, /* U+010559: */ + 0, /* U+01055a: */ + 0, /* U+01055b: */ + 0, /* U+01055c: */ + 0, /* U+01055d: */ + 0, /* U+01055e: */ + 0, /* U+01055f: */ + 0, /* U+010560: */ + 0, /* U+010561: */ + 0, /* U+010562: */ + 0, /* U+010563: */ + 0, /* U+010564: */ + 0, /* U+010565: */ + 0, /* U+010566: */ + 0, /* U+010567: */ + 0, /* U+010568: */ + 0, /* U+010569: */ + 0, /* U+01056a: */ + 0, /* U+01056b: */ + 0, /* U+01056c: */ + 0, /* U+01056d: */ + 0, /* U+01056e: */ + 0, /* U+01056f: */ + 0, /* U+010570: */ + 0, /* U+010571: */ + 0, /* U+010572: */ + 0, /* U+010573: */ + 0, /* U+010574: */ + 0, /* U+010575: */ + 0, /* U+010576: */ + 0, /* U+010577: */ + 0, /* U+010578: */ + 0, /* U+010579: */ + 0, /* U+01057a: */ + 0, /* U+01057b: */ + 0, /* U+01057c: */ + 0, /* U+01057d: */ + 0, /* U+01057e: */ + 0, /* U+01057f: */ + 0, /* U+010580: */ + 0, /* U+010581: */ + 0, /* U+010582: */ + 0, /* U+010583: */ + 0, /* U+010584: */ + 0, /* U+010585: */ + 0, /* U+010586: */ + 0, /* U+010587: */ + 0, /* U+010588: */ + 0, /* U+010589: */ + 0, /* U+01058a: */ + 0, /* U+01058b: */ + 0, /* U+01058c: */ + 0, /* U+01058d: */ + 0, /* U+01058e: */ + 0, /* U+01058f: */ + 0, /* U+010590: */ + 0, /* U+010591: */ + 0, /* U+010592: */ + 0, /* U+010593: */ + 0, /* U+010594: */ + 0, /* U+010595: */ + 0, /* U+010596: */ + 0, /* U+010597: */ + 0, /* U+010598: */ + 0, /* U+010599: */ + 0, /* U+01059a: */ + 0, /* U+01059b: */ + 0, /* U+01059c: */ + 0, /* U+01059d: */ + 0, /* U+01059e: */ + 0, /* U+01059f: */ + 0, /* U+0105a0: */ + 0, /* U+0105a1: */ + 0, /* U+0105a2: */ + 0, /* U+0105a3: */ + 0, /* U+0105a4: */ + 0, /* U+0105a5: */ + 0, /* U+0105a6: */ + 0, /* U+0105a7: */ + 0, /* U+0105a8: */ + 0, /* U+0105a9: */ + 0, /* U+0105aa: */ + 0, /* U+0105ab: */ + 0, /* U+0105ac: */ + 0, /* U+0105ad: */ + 0, /* U+0105ae: */ + 0, /* U+0105af: */ + 0, /* U+0105b0: */ + 0, /* U+0105b1: */ + 0, /* U+0105b2: */ + 0, /* U+0105b3: */ + 0, /* U+0105b4: */ + 0, /* U+0105b5: */ + 0, /* U+0105b6: */ + 0, /* U+0105b7: */ + 0, /* U+0105b8: */ + 0, /* U+0105b9: */ + 0, /* U+0105ba: */ + 0, /* U+0105bb: */ + 0, /* U+0105bc: */ + 0, /* U+0105bd: */ + 0, /* U+0105be: */ + 0, /* U+0105bf: */ + 0, /* U+0105c0: */ + 0, /* U+0105c1: */ + 0, /* U+0105c2: */ + 0, /* U+0105c3: */ + 0, /* U+0105c4: */ + 0, /* U+0105c5: */ + 0, /* U+0105c6: */ + 0, /* U+0105c7: */ + 0, /* U+0105c8: */ + 0, /* U+0105c9: */ + 0, /* U+0105ca: */ + 0, /* U+0105cb: */ + 0, /* U+0105cc: */ + 0, /* U+0105cd: */ + 0, /* U+0105ce: */ + 0, /* U+0105cf: */ + 0, /* U+0105d0: */ + 0, /* U+0105d1: */ + 0, /* U+0105d2: */ + 0, /* U+0105d3: */ + 0, /* U+0105d4: */ + 0, /* U+0105d5: */ + 0, /* U+0105d6: */ + 0, /* U+0105d7: */ + 0, /* U+0105d8: */ + 0, /* U+0105d9: */ + 0, /* U+0105da: */ + 0, /* U+0105db: */ + 0, /* U+0105dc: */ + 0, /* U+0105dd: */ + 0, /* U+0105de: */ + 0, /* U+0105df: */ + 0, /* U+0105e0: */ + 0, /* U+0105e1: */ + 0, /* U+0105e2: */ + 0, /* U+0105e3: */ + 0, /* U+0105e4: */ + 0, /* U+0105e5: */ + 0, /* U+0105e6: */ + 0, /* U+0105e7: */ + 0, /* U+0105e8: */ + 0, /* U+0105e9: */ + 0, /* U+0105ea: */ + 0, /* U+0105eb: */ + 0, /* U+0105ec: */ + 0, /* U+0105ed: */ + 0, /* U+0105ee: */ + 0, /* U+0105ef: */ + 0, /* U+0105f0: */ + 0, /* U+0105f1: */ + 0, /* U+0105f2: */ + 0, /* U+0105f3: */ + 0, /* U+0105f4: */ + 0, /* U+0105f5: */ + 0, /* U+0105f6: */ + 0, /* U+0105f7: */ + 0, /* U+0105f8: */ + 0, /* U+0105f9: */ + 0, /* U+0105fa: */ + 0, /* U+0105fb: */ + 0, /* U+0105fc: */ + 0, /* U+0105fd: */ + 0, /* U+0105fe: */ + 0, /* U+0105ff: */ + 0, /* U+010600: */ + 0, /* U+010601: */ + 0, /* U+010602: */ + 0, /* U+010603: */ + 0, /* U+010604: */ + 0, /* U+010605: */ + 0, /* U+010606: */ + 0, /* U+010607: */ + 0, /* U+010608: */ + 0, /* U+010609: */ + 0, /* U+01060a: */ + 0, /* U+01060b: */ + 0, /* U+01060c: */ + 0, /* U+01060d: */ + 0, /* U+01060e: */ + 0, /* U+01060f: */ + 0, /* U+010610: */ + 0, /* U+010611: */ + 0, /* U+010612: */ + 0, /* U+010613: */ + 0, /* U+010614: */ + 0, /* U+010615: */ + 0, /* U+010616: */ + 0, /* U+010617: */ + 0, /* U+010618: */ + 0, /* U+010619: */ + 0, /* U+01061a: */ + 0, /* U+01061b: */ + 0, /* U+01061c: */ + 0, /* U+01061d: */ + 0, /* U+01061e: */ + 0, /* U+01061f: */ + 0, /* U+010620: */ + 0, /* U+010621: */ + 0, /* U+010622: */ + 0, /* U+010623: */ + 0, /* U+010624: */ + 0, /* U+010625: */ + 0, /* U+010626: */ + 0, /* U+010627: */ + 0, /* U+010628: */ + 0, /* U+010629: */ + 0, /* U+01062a: */ + 0, /* U+01062b: */ + 0, /* U+01062c: */ + 0, /* U+01062d: */ + 0, /* U+01062e: */ + 0, /* U+01062f: */ + 0, /* U+010630: */ + 0, /* U+010631: */ + 0, /* U+010632: */ + 0, /* U+010633: */ + 0, /* U+010634: */ + 0, /* U+010635: */ + 0, /* U+010636: */ + 0, /* U+010637: */ + 0, /* U+010638: */ + 0, /* U+010639: */ + 0, /* U+01063a: */ + 0, /* U+01063b: */ + 0, /* U+01063c: */ + 0, /* U+01063d: */ + 0, /* U+01063e: */ + 0, /* U+01063f: */ + 0, /* U+010640: */ + 0, /* U+010641: */ + 0, /* U+010642: */ + 0, /* U+010643: */ + 0, /* U+010644: */ + 0, /* U+010645: */ + 0, /* U+010646: */ + 0, /* U+010647: */ + 0, /* U+010648: */ + 0, /* U+010649: */ + 0, /* U+01064a: */ + 0, /* U+01064b: */ + 0, /* U+01064c: */ + 0, /* U+01064d: */ + 0, /* U+01064e: */ + 0, /* U+01064f: */ + 0, /* U+010650: */ + 0, /* U+010651: */ + 0, /* U+010652: */ + 0, /* U+010653: */ + 0, /* U+010654: */ + 0, /* U+010655: */ + 0, /* U+010656: */ + 0, /* U+010657: */ + 0, /* U+010658: */ + 0, /* U+010659: */ + 0, /* U+01065a: */ + 0, /* U+01065b: */ + 0, /* U+01065c: */ + 0, /* U+01065d: */ + 0, /* U+01065e: */ + 0, /* U+01065f: */ + 0, /* U+010660: */ + 0, /* U+010661: */ + 0, /* U+010662: */ + 0, /* U+010663: */ + 0, /* U+010664: */ + 0, /* U+010665: */ + 0, /* U+010666: */ + 0, /* U+010667: */ + 0, /* U+010668: */ + 0, /* U+010669: */ + 0, /* U+01066a: */ + 0, /* U+01066b: */ + 0, /* U+01066c: */ + 0, /* U+01066d: */ + 0, /* U+01066e: */ + 0, /* U+01066f: */ + 0, /* U+010670: */ + 0, /* U+010671: */ + 0, /* U+010672: */ + 0, /* U+010673: */ + 0, /* U+010674: */ + 0, /* U+010675: */ + 0, /* U+010676: */ + 0, /* U+010677: */ + 0, /* U+010678: */ + 0, /* U+010679: */ + 0, /* U+01067a: */ + 0, /* U+01067b: */ + 0, /* U+01067c: */ + 0, /* U+01067d: */ + 0, /* U+01067e: */ + 0, /* U+01067f: */ + 0, /* U+010680: */ + 0, /* U+010681: */ + 0, /* U+010682: */ + 0, /* U+010683: */ + 0, /* U+010684: */ + 0, /* U+010685: */ + 0, /* U+010686: */ + 0, /* U+010687: */ + 0, /* U+010688: */ + 0, /* U+010689: */ + 0, /* U+01068a: */ + 0, /* U+01068b: */ + 0, /* U+01068c: */ + 0, /* U+01068d: */ + 0, /* U+01068e: */ + 0, /* U+01068f: */ + 0, /* U+010690: */ + 0, /* U+010691: */ + 0, /* U+010692: */ + 0, /* U+010693: */ + 0, /* U+010694: */ + 0, /* U+010695: */ + 0, /* U+010696: */ + 0, /* U+010697: */ + 0, /* U+010698: */ + 0, /* U+010699: */ + 0, /* U+01069a: */ + 0, /* U+01069b: */ + 0, /* U+01069c: */ + 0, /* U+01069d: */ + 0, /* U+01069e: */ + 0, /* U+01069f: */ + 0, /* U+0106a0: */ + 0, /* U+0106a1: */ + 0, /* U+0106a2: */ + 0, /* U+0106a3: */ + 0, /* U+0106a4: */ + 0, /* U+0106a5: */ + 0, /* U+0106a6: */ + 0, /* U+0106a7: */ + 0, /* U+0106a8: */ + 0, /* U+0106a9: */ + 0, /* U+0106aa: */ + 0, /* U+0106ab: */ + 0, /* U+0106ac: */ + 0, /* U+0106ad: */ + 0, /* U+0106ae: */ + 0, /* U+0106af: */ + 0, /* U+0106b0: */ + 0, /* U+0106b1: */ + 0, /* U+0106b2: */ + 0, /* U+0106b3: */ + 0, /* U+0106b4: */ + 0, /* U+0106b5: */ + 0, /* U+0106b6: */ + 0, /* U+0106b7: */ + 0, /* U+0106b8: */ + 0, /* U+0106b9: */ + 0, /* U+0106ba: */ + 0, /* U+0106bb: */ + 0, /* U+0106bc: */ + 0, /* U+0106bd: */ + 0, /* U+0106be: */ + 0, /* U+0106bf: */ + 0, /* U+0106c0: */ + 0, /* U+0106c1: */ + 0, /* U+0106c2: */ + 0, /* U+0106c3: */ + 0, /* U+0106c4: */ + 0, /* U+0106c5: */ + 0, /* U+0106c6: */ + 0, /* U+0106c7: */ + 0, /* U+0106c8: */ + 0, /* U+0106c9: */ + 0, /* U+0106ca: */ + 0, /* U+0106cb: */ + 0, /* U+0106cc: */ + 0, /* U+0106cd: */ + 0, /* U+0106ce: */ + 0, /* U+0106cf: */ + 0, /* U+0106d0: */ + 0, /* U+0106d1: */ + 0, /* U+0106d2: */ + 0, /* U+0106d3: */ + 0, /* U+0106d4: */ + 0, /* U+0106d5: */ + 0, /* U+0106d6: */ + 0, /* U+0106d7: */ + 0, /* U+0106d8: */ + 0, /* U+0106d9: */ + 0, /* U+0106da: */ + 0, /* U+0106db: */ + 0, /* U+0106dc: */ + 0, /* U+0106dd: */ + 0, /* U+0106de: */ + 0, /* U+0106df: */ + 0, /* U+0106e0: */ + 0, /* U+0106e1: */ + 0, /* U+0106e2: */ + 0, /* U+0106e3: */ + 0, /* U+0106e4: */ + 0, /* U+0106e5: */ + 0, /* U+0106e6: */ + 0, /* U+0106e7: */ + 0, /* U+0106e8: */ + 0, /* U+0106e9: */ + 0, /* U+0106ea: */ + 0, /* U+0106eb: */ + 0, /* U+0106ec: */ + 0, /* U+0106ed: */ + 0, /* U+0106ee: */ + 0, /* U+0106ef: */ + 0, /* U+0106f0: */ + 0, /* U+0106f1: */ + 0, /* U+0106f2: */ + 0, /* U+0106f3: */ + 0, /* U+0106f4: */ + 0, /* U+0106f5: */ + 0, /* U+0106f6: */ + 0, /* U+0106f7: */ + 0, /* U+0106f8: */ + 0, /* U+0106f9: */ + 0, /* U+0106fa: */ + 0, /* U+0106fb: */ + 0, /* U+0106fc: */ + 0, /* U+0106fd: */ + 0, /* U+0106fe: */ + 0, /* U+0106ff: */ + 0, /* U+010700: */ + 0, /* U+010701: */ + 0, /* U+010702: */ + 0, /* U+010703: */ + 0, /* U+010704: */ + 0, /* U+010705: */ + 0, /* U+010706: */ + 0, /* U+010707: */ + 0, /* U+010708: */ + 0, /* U+010709: */ + 0, /* U+01070a: */ + 0, /* U+01070b: */ + 0, /* U+01070c: */ + 0, /* U+01070d: */ + 0, /* U+01070e: */ + 0, /* U+01070f: */ + 0, /* U+010710: */ + 0, /* U+010711: */ + 0, /* U+010712: */ + 0, /* U+010713: */ + 0, /* U+010714: */ + 0, /* U+010715: */ + 0, /* U+010716: */ + 0, /* U+010717: */ + 0, /* U+010718: */ + 0, /* U+010719: */ + 0, /* U+01071a: */ + 0, /* U+01071b: */ + 0, /* U+01071c: */ + 0, /* U+01071d: */ + 0, /* U+01071e: */ + 0, /* U+01071f: */ + 0, /* U+010720: */ + 0, /* U+010721: */ + 0, /* U+010722: */ + 0, /* U+010723: */ + 0, /* U+010724: */ + 0, /* U+010725: */ + 0, /* U+010726: */ + 0, /* U+010727: */ + 0, /* U+010728: */ + 0, /* U+010729: */ + 0, /* U+01072a: */ + 0, /* U+01072b: */ + 0, /* U+01072c: */ + 0, /* U+01072d: */ + 0, /* U+01072e: */ + 0, /* U+01072f: */ + 0, /* U+010730: */ + 0, /* U+010731: */ + 0, /* U+010732: */ + 0, /* U+010733: */ + 0, /* U+010734: */ + 0, /* U+010735: */ + 0, /* U+010736: */ + 0, /* U+010737: */ + 0, /* U+010738: */ + 0, /* U+010739: */ + 0, /* U+01073a: */ + 0, /* U+01073b: */ + 0, /* U+01073c: */ + 0, /* U+01073d: */ + 0, /* U+01073e: */ + 0, /* U+01073f: */ + 0, /* U+010740: */ + 0, /* U+010741: */ + 0, /* U+010742: */ + 0, /* U+010743: */ + 0, /* U+010744: */ + 0, /* U+010745: */ + 0, /* U+010746: */ + 0, /* U+010747: */ + 0, /* U+010748: */ + 0, /* U+010749: */ + 0, /* U+01074a: */ + 0, /* U+01074b: */ + 0, /* U+01074c: */ + 0, /* U+01074d: */ + 0, /* U+01074e: */ + 0, /* U+01074f: */ + 0, /* U+010750: */ + 0, /* U+010751: */ + 0, /* U+010752: */ + 0, /* U+010753: */ + 0, /* U+010754: */ + 0, /* U+010755: */ + 0, /* U+010756: */ + 0, /* U+010757: */ + 0, /* U+010758: */ + 0, /* U+010759: */ + 0, /* U+01075a: */ + 0, /* U+01075b: */ + 0, /* U+01075c: */ + 0, /* U+01075d: */ + 0, /* U+01075e: */ + 0, /* U+01075f: */ + 0, /* U+010760: */ + 0, /* U+010761: */ + 0, /* U+010762: */ + 0, /* U+010763: */ + 0, /* U+010764: */ + 0, /* U+010765: */ + 0, /* U+010766: */ + 0, /* U+010767: */ + 0, /* U+010768: */ + 0, /* U+010769: */ + 0, /* U+01076a: */ + 0, /* U+01076b: */ + 0, /* U+01076c: */ + 0, /* U+01076d: */ + 0, /* U+01076e: */ + 0, /* U+01076f: */ + 0, /* U+010770: */ + 0, /* U+010771: */ + 0, /* U+010772: */ + 0, /* U+010773: */ + 0, /* U+010774: */ + 0, /* U+010775: */ + 0, /* U+010776: */ + 0, /* U+010777: */ + 0, /* U+010778: */ + 0, /* U+010779: */ + 0, /* U+01077a: */ + 0, /* U+01077b: */ + 0, /* U+01077c: */ + 0, /* U+01077d: */ + 0, /* U+01077e: */ + 0, /* U+01077f: */ + 0, /* U+010780: */ + 0, /* U+010781: */ + 0, /* U+010782: */ + 0, /* U+010783: */ + 0, /* U+010784: */ + 0, /* U+010785: */ + 0, /* U+010786: */ + 0, /* U+010787: */ + 0, /* U+010788: */ + 0, /* U+010789: */ + 0, /* U+01078a: */ + 0, /* U+01078b: */ + 0, /* U+01078c: */ + 0, /* U+01078d: */ + 0, /* U+01078e: */ + 0, /* U+01078f: */ + 0, /* U+010790: */ + 0, /* U+010791: */ + 0, /* U+010792: */ + 0, /* U+010793: */ + 0, /* U+010794: */ + 0, /* U+010795: */ + 0, /* U+010796: */ + 0, /* U+010797: */ + 0, /* U+010798: */ + 0, /* U+010799: */ + 0, /* U+01079a: */ + 0, /* U+01079b: */ + 0, /* U+01079c: */ + 0, /* U+01079d: */ + 0, /* U+01079e: */ + 0, /* U+01079f: */ + 0, /* U+0107a0: */ + 0, /* U+0107a1: */ + 0, /* U+0107a2: */ + 0, /* U+0107a3: */ + 0, /* U+0107a4: */ + 0, /* U+0107a5: */ + 0, /* U+0107a6: */ + 0, /* U+0107a7: */ + 0, /* U+0107a8: */ + 0, /* U+0107a9: */ + 0, /* U+0107aa: */ + 0, /* U+0107ab: */ + 0, /* U+0107ac: */ + 0, /* U+0107ad: */ + 0, /* U+0107ae: */ + 0, /* U+0107af: */ + 0, /* U+0107b0: */ + 0, /* U+0107b1: */ + 0, /* U+0107b2: */ + 0, /* U+0107b3: */ + 0, /* U+0107b4: */ + 0, /* U+0107b5: */ + 0, /* U+0107b6: */ + 0, /* U+0107b7: */ + 0, /* U+0107b8: */ + 0, /* U+0107b9: */ + 0, /* U+0107ba: */ + 0, /* U+0107bb: */ + 0, /* U+0107bc: */ + 0, /* U+0107bd: */ + 0, /* U+0107be: */ + 0, /* U+0107bf: */ + 0, /* U+0107c0: */ + 0, /* U+0107c1: */ + 0, /* U+0107c2: */ + 0, /* U+0107c3: */ + 0, /* U+0107c4: */ + 0, /* U+0107c5: */ + 0, /* U+0107c6: */ + 0, /* U+0107c7: */ + 0, /* U+0107c8: */ + 0, /* U+0107c9: */ + 0, /* U+0107ca: */ + 0, /* U+0107cb: */ + 0, /* U+0107cc: */ + 0, /* U+0107cd: */ + 0, /* U+0107ce: */ + 0, /* U+0107cf: */ + 0, /* U+0107d0: */ + 0, /* U+0107d1: */ + 0, /* U+0107d2: */ + 0, /* U+0107d3: */ + 0, /* U+0107d4: */ + 0, /* U+0107d5: */ + 0, /* U+0107d6: */ + 0, /* U+0107d7: */ + 0, /* U+0107d8: */ + 0, /* U+0107d9: */ + 0, /* U+0107da: */ + 0, /* U+0107db: */ + 0, /* U+0107dc: */ + 0, /* U+0107dd: */ + 0, /* U+0107de: */ + 0, /* U+0107df: */ + 0, /* U+0107e0: */ + 0, /* U+0107e1: */ + 0, /* U+0107e2: */ + 0, /* U+0107e3: */ + 0, /* U+0107e4: */ + 0, /* U+0107e5: */ + 0, /* U+0107e6: */ + 0, /* U+0107e7: */ + 0, /* U+0107e8: */ + 0, /* U+0107e9: */ + 0, /* U+0107ea: */ + 0, /* U+0107eb: */ + 0, /* U+0107ec: */ + 0, /* U+0107ed: */ + 0, /* U+0107ee: */ + 0, /* U+0107ef: */ + 0, /* U+0107f0: */ + 0, /* U+0107f1: */ + 0, /* U+0107f2: */ + 0, /* U+0107f3: */ + 0, /* U+0107f4: */ + 0, /* U+0107f5: */ + 0, /* U+0107f6: */ + 0, /* U+0107f7: */ + 0, /* U+0107f8: */ + 0, /* U+0107f9: */ + 0, /* U+0107fa: */ + 0, /* U+0107fb: */ + 0, /* U+0107fc: */ + 0, /* U+0107fd: */ + 0, /* U+0107fe: */ + 0, /* U+0107ff: */ + RTUNI_ALPHA, /* U+010800: CYPRIOT SYLLABLE A*/ + RTUNI_ALPHA, /* U+010801: CYPRIOT SYLLABLE E*/ + RTUNI_ALPHA, /* U+010802: CYPRIOT SYLLABLE I*/ + RTUNI_ALPHA, /* U+010803: CYPRIOT SYLLABLE O*/ + RTUNI_ALPHA, /* U+010804: CYPRIOT SYLLABLE U*/ + RTUNI_ALPHA, /* U+010805: CYPRIOT SYLLABLE JA*/ + 0, /* U+010806: */ + 0, /* U+010807: */ + RTUNI_ALPHA, /* U+010808: CYPRIOT SYLLABLE JO*/ + 0, /* U+010809: */ + RTUNI_ALPHA, /* U+01080a: CYPRIOT SYLLABLE KA*/ + RTUNI_ALPHA, /* U+01080b: CYPRIOT SYLLABLE KE*/ + RTUNI_ALPHA, /* U+01080c: CYPRIOT SYLLABLE KI*/ + RTUNI_ALPHA, /* U+01080d: CYPRIOT SYLLABLE KO*/ + RTUNI_ALPHA, /* U+01080e: CYPRIOT SYLLABLE KU*/ + RTUNI_ALPHA, /* U+01080f: CYPRIOT SYLLABLE LA*/ + RTUNI_ALPHA, /* U+010810: CYPRIOT SYLLABLE LE*/ + RTUNI_ALPHA, /* U+010811: CYPRIOT SYLLABLE LI*/ + RTUNI_ALPHA, /* U+010812: CYPRIOT SYLLABLE LO*/ + RTUNI_ALPHA, /* U+010813: CYPRIOT SYLLABLE LU*/ + RTUNI_ALPHA, /* U+010814: CYPRIOT SYLLABLE MA*/ + RTUNI_ALPHA, /* U+010815: CYPRIOT SYLLABLE ME*/ + RTUNI_ALPHA, /* U+010816: CYPRIOT SYLLABLE MI*/ + RTUNI_ALPHA, /* U+010817: CYPRIOT SYLLABLE MO*/ + RTUNI_ALPHA, /* U+010818: CYPRIOT SYLLABLE MU*/ + RTUNI_ALPHA, /* U+010819: CYPRIOT SYLLABLE NA*/ + RTUNI_ALPHA, /* U+01081a: CYPRIOT SYLLABLE NE*/ + RTUNI_ALPHA, /* U+01081b: CYPRIOT SYLLABLE NI*/ + RTUNI_ALPHA, /* U+01081c: CYPRIOT SYLLABLE NO*/ + RTUNI_ALPHA, /* U+01081d: CYPRIOT SYLLABLE NU*/ + RTUNI_ALPHA, /* U+01081e: CYPRIOT SYLLABLE PA*/ + RTUNI_ALPHA, /* U+01081f: CYPRIOT SYLLABLE PE*/ + RTUNI_ALPHA, /* U+010820: CYPRIOT SYLLABLE PI*/ + RTUNI_ALPHA, /* U+010821: CYPRIOT SYLLABLE PO*/ + RTUNI_ALPHA, /* U+010822: CYPRIOT SYLLABLE PU*/ + RTUNI_ALPHA, /* U+010823: CYPRIOT SYLLABLE RA*/ + RTUNI_ALPHA, /* U+010824: CYPRIOT SYLLABLE RE*/ + RTUNI_ALPHA, /* U+010825: CYPRIOT SYLLABLE RI*/ + RTUNI_ALPHA, /* U+010826: CYPRIOT SYLLABLE RO*/ + RTUNI_ALPHA, /* U+010827: CYPRIOT SYLLABLE RU*/ + RTUNI_ALPHA, /* U+010828: CYPRIOT SYLLABLE SA*/ + RTUNI_ALPHA, /* U+010829: CYPRIOT SYLLABLE SE*/ + RTUNI_ALPHA, /* U+01082a: CYPRIOT SYLLABLE SI*/ + RTUNI_ALPHA, /* U+01082b: CYPRIOT SYLLABLE SO*/ + RTUNI_ALPHA, /* U+01082c: CYPRIOT SYLLABLE SU*/ + RTUNI_ALPHA, /* U+01082d: CYPRIOT SYLLABLE TA*/ + RTUNI_ALPHA, /* U+01082e: CYPRIOT SYLLABLE TE*/ + RTUNI_ALPHA, /* U+01082f: CYPRIOT SYLLABLE TI*/ + RTUNI_ALPHA, /* U+010830: CYPRIOT SYLLABLE TO*/ + RTUNI_ALPHA, /* U+010831: CYPRIOT SYLLABLE TU*/ + RTUNI_ALPHA, /* U+010832: CYPRIOT SYLLABLE WA*/ + RTUNI_ALPHA, /* U+010833: CYPRIOT SYLLABLE WE*/ + RTUNI_ALPHA, /* U+010834: CYPRIOT SYLLABLE WI*/ + RTUNI_ALPHA, /* U+010835: CYPRIOT SYLLABLE WO*/ + 0, /* U+010836: */ + RTUNI_ALPHA, /* U+010837: CYPRIOT SYLLABLE XA*/ + RTUNI_ALPHA, /* U+010838: CYPRIOT SYLLABLE XE*/ + 0, /* U+010839: */ + 0, /* U+01083a: */ + 0, /* U+01083b: */ + RTUNI_ALPHA, /* U+01083c: CYPRIOT SYLLABLE ZA*/ + 0, /* U+01083d: */ + 0, /* U+01083e: */ + RTUNI_ALPHA, /* U+01083f: CYPRIOT SYLLABLE ZO*/ + RTUNI_ALPHA, /* U+010840: IMPERIAL ARAMAIC LETTER ALEPH*/ + RTUNI_ALPHA, /* U+010841: IMPERIAL ARAMAIC LETTER BETH*/ + RTUNI_ALPHA, /* U+010842: IMPERIAL ARAMAIC LETTER GIMEL*/ + RTUNI_ALPHA, /* U+010843: IMPERIAL ARAMAIC LETTER DALETH*/ + RTUNI_ALPHA, /* U+010844: IMPERIAL ARAMAIC LETTER HE*/ + RTUNI_ALPHA, /* U+010845: IMPERIAL ARAMAIC LETTER WAW*/ + RTUNI_ALPHA, /* U+010846: IMPERIAL ARAMAIC LETTER ZAYIN*/ + RTUNI_ALPHA, /* U+010847: IMPERIAL ARAMAIC LETTER HETH*/ + RTUNI_ALPHA, /* U+010848: IMPERIAL ARAMAIC LETTER TETH*/ + RTUNI_ALPHA, /* U+010849: IMPERIAL ARAMAIC LETTER YODH*/ + RTUNI_ALPHA, /* U+01084a: IMPERIAL ARAMAIC LETTER KAPH*/ + RTUNI_ALPHA, /* U+01084b: IMPERIAL ARAMAIC LETTER LAMEDH*/ + RTUNI_ALPHA, /* U+01084c: IMPERIAL ARAMAIC LETTER MEM*/ + RTUNI_ALPHA, /* U+01084d: IMPERIAL ARAMAIC LETTER NUN*/ + RTUNI_ALPHA, /* U+01084e: IMPERIAL ARAMAIC LETTER SAMEKH*/ + RTUNI_ALPHA, /* U+01084f: IMPERIAL ARAMAIC LETTER AYIN*/ + RTUNI_ALPHA, /* U+010850: IMPERIAL ARAMAIC LETTER PE*/ + RTUNI_ALPHA, /* U+010851: IMPERIAL ARAMAIC LETTER SADHE*/ + RTUNI_ALPHA, /* U+010852: IMPERIAL ARAMAIC LETTER QOPH*/ + RTUNI_ALPHA, /* U+010853: IMPERIAL ARAMAIC LETTER RESH*/ + RTUNI_ALPHA, /* U+010854: IMPERIAL ARAMAIC LETTER SHIN*/ + RTUNI_ALPHA, /* U+010855: IMPERIAL ARAMAIC LETTER TAW*/ + 0, /* U+010856: */ + 0, /* U+010857: IMPERIAL ARAMAIC SECTION SIGN*/ + 0, /* U+010858: IMPERIAL ARAMAIC NUMBER ONE*/ + 0, /* U+010859: IMPERIAL ARAMAIC NUMBER TWO*/ + 0, /* U+01085a: IMPERIAL ARAMAIC NUMBER THREE*/ + 0, /* U+01085b: IMPERIAL ARAMAIC NUMBER TEN*/ + 0, /* U+01085c: IMPERIAL ARAMAIC NUMBER TWENTY*/ + 0, /* U+01085d: IMPERIAL ARAMAIC NUMBER ONE HUNDRED*/ + 0, /* U+01085e: IMPERIAL ARAMAIC NUMBER ONE THOUSAND*/ + 0, /* U+01085f: IMPERIAL ARAMAIC NUMBER TEN THOUSAND*/ + 0, /* U+010860: */ + 0, /* U+010861: */ + 0, /* U+010862: */ + 0, /* U+010863: */ + 0, /* U+010864: */ + 0, /* U+010865: */ + 0, /* U+010866: */ + 0, /* U+010867: */ + 0, /* U+010868: */ + 0, /* U+010869: */ + 0, /* U+01086a: */ + 0, /* U+01086b: */ + 0, /* U+01086c: */ + 0, /* U+01086d: */ + 0, /* U+01086e: */ + 0, /* U+01086f: */ + 0, /* U+010870: */ + 0, /* U+010871: */ + 0, /* U+010872: */ + 0, /* U+010873: */ + 0, /* U+010874: */ + 0, /* U+010875: */ + 0, /* U+010876: */ + 0, /* U+010877: */ + 0, /* U+010878: */ + 0, /* U+010879: */ + 0, /* U+01087a: */ + 0, /* U+01087b: */ + 0, /* U+01087c: */ + 0, /* U+01087d: */ + 0, /* U+01087e: */ + 0, /* U+01087f: */ + 0, /* U+010880: */ + 0, /* U+010881: */ + 0, /* U+010882: */ + 0, /* U+010883: */ + 0, /* U+010884: */ + 0, /* U+010885: */ + 0, /* U+010886: */ + 0, /* U+010887: */ + 0, /* U+010888: */ + 0, /* U+010889: */ + 0, /* U+01088a: */ + 0, /* U+01088b: */ + 0, /* U+01088c: */ + 0, /* U+01088d: */ + 0, /* U+01088e: */ + 0, /* U+01088f: */ + 0, /* U+010890: */ + 0, /* U+010891: */ + 0, /* U+010892: */ + 0, /* U+010893: */ + 0, /* U+010894: */ + 0, /* U+010895: */ + 0, /* U+010896: */ + 0, /* U+010897: */ + 0, /* U+010898: */ + 0, /* U+010899: */ + 0, /* U+01089a: */ + 0, /* U+01089b: */ + 0, /* U+01089c: */ + 0, /* U+01089d: */ + 0, /* U+01089e: */ + 0, /* U+01089f: */ + 0, /* U+0108a0: */ + 0, /* U+0108a1: */ + 0, /* U+0108a2: */ + 0, /* U+0108a3: */ + 0, /* U+0108a4: */ + 0, /* U+0108a5: */ + 0, /* U+0108a6: */ + 0, /* U+0108a7: */ + 0, /* U+0108a8: */ + 0, /* U+0108a9: */ + 0, /* U+0108aa: */ + 0, /* U+0108ab: */ + 0, /* U+0108ac: */ + 0, /* U+0108ad: */ + 0, /* U+0108ae: */ + 0, /* U+0108af: */ + 0, /* U+0108b0: */ + 0, /* U+0108b1: */ + 0, /* U+0108b2: */ + 0, /* U+0108b3: */ + 0, /* U+0108b4: */ + 0, /* U+0108b5: */ + 0, /* U+0108b6: */ + 0, /* U+0108b7: */ + 0, /* U+0108b8: */ + 0, /* U+0108b9: */ + 0, /* U+0108ba: */ + 0, /* U+0108bb: */ + 0, /* U+0108bc: */ + 0, /* U+0108bd: */ + 0, /* U+0108be: */ + 0, /* U+0108bf: */ + 0, /* U+0108c0: */ + 0, /* U+0108c1: */ + 0, /* U+0108c2: */ + 0, /* U+0108c3: */ + 0, /* U+0108c4: */ + 0, /* U+0108c5: */ + 0, /* U+0108c6: */ + 0, /* U+0108c7: */ + 0, /* U+0108c8: */ + 0, /* U+0108c9: */ + 0, /* U+0108ca: */ + 0, /* U+0108cb: */ + 0, /* U+0108cc: */ + 0, /* U+0108cd: */ + 0, /* U+0108ce: */ + 0, /* U+0108cf: */ + 0, /* U+0108d0: */ + 0, /* U+0108d1: */ + 0, /* U+0108d2: */ + 0, /* U+0108d3: */ + 0, /* U+0108d4: */ + 0, /* U+0108d5: */ + 0, /* U+0108d6: */ + 0, /* U+0108d7: */ + 0, /* U+0108d8: */ + 0, /* U+0108d9: */ + 0, /* U+0108da: */ + 0, /* U+0108db: */ + 0, /* U+0108dc: */ + 0, /* U+0108dd: */ + 0, /* U+0108de: */ + 0, /* U+0108df: */ + 0, /* U+0108e0: */ + 0, /* U+0108e1: */ + 0, /* U+0108e2: */ + 0, /* U+0108e3: */ + 0, /* U+0108e4: */ + 0, /* U+0108e5: */ + 0, /* U+0108e6: */ + 0, /* U+0108e7: */ + 0, /* U+0108e8: */ + 0, /* U+0108e9: */ + 0, /* U+0108ea: */ + 0, /* U+0108eb: */ + 0, /* U+0108ec: */ + 0, /* U+0108ed: */ + 0, /* U+0108ee: */ + 0, /* U+0108ef: */ + 0, /* U+0108f0: */ + 0, /* U+0108f1: */ + 0, /* U+0108f2: */ + 0, /* U+0108f3: */ + 0, /* U+0108f4: */ + 0, /* U+0108f5: */ + 0, /* U+0108f6: */ + 0, /* U+0108f7: */ + 0, /* U+0108f8: */ + 0, /* U+0108f9: */ + 0, /* U+0108fa: */ + 0, /* U+0108fb: */ + 0, /* U+0108fc: */ + 0, /* U+0108fd: */ + 0, /* U+0108fe: */ + 0, /* U+0108ff: */ + RTUNI_ALPHA, /* U+010900: PHOENICIAN LETTER ALF*/ + RTUNI_ALPHA, /* U+010901: PHOENICIAN LETTER BET*/ + RTUNI_ALPHA, /* U+010902: PHOENICIAN LETTER GAML*/ + RTUNI_ALPHA, /* U+010903: PHOENICIAN LETTER DELT*/ + RTUNI_ALPHA, /* U+010904: PHOENICIAN LETTER HE*/ + RTUNI_ALPHA, /* U+010905: PHOENICIAN LETTER WAU*/ + RTUNI_ALPHA, /* U+010906: PHOENICIAN LETTER ZAI*/ + RTUNI_ALPHA, /* U+010907: PHOENICIAN LETTER HET*/ + RTUNI_ALPHA, /* U+010908: PHOENICIAN LETTER TET*/ + RTUNI_ALPHA, /* U+010909: PHOENICIAN LETTER YOD*/ + RTUNI_ALPHA, /* U+01090a: PHOENICIAN LETTER KAF*/ + RTUNI_ALPHA, /* U+01090b: PHOENICIAN LETTER LAMD*/ + RTUNI_ALPHA, /* U+01090c: PHOENICIAN LETTER MEM*/ + RTUNI_ALPHA, /* U+01090d: PHOENICIAN LETTER NUN*/ + RTUNI_ALPHA, /* U+01090e: PHOENICIAN LETTER SEMK*/ + RTUNI_ALPHA, /* U+01090f: PHOENICIAN LETTER AIN*/ + RTUNI_ALPHA, /* U+010910: PHOENICIAN LETTER PE*/ + RTUNI_ALPHA, /* U+010911: PHOENICIAN LETTER SADE*/ + RTUNI_ALPHA, /* U+010912: PHOENICIAN LETTER QOF*/ + RTUNI_ALPHA, /* U+010913: PHOENICIAN LETTER ROSH*/ + RTUNI_ALPHA, /* U+010914: PHOENICIAN LETTER SHIN*/ + RTUNI_ALPHA, /* U+010915: PHOENICIAN LETTER TAU*/ + 0, /* U+010916: PHOENICIAN NUMBER ONE*/ + 0, /* U+010917: PHOENICIAN NUMBER TEN*/ + 0, /* U+010918: PHOENICIAN NUMBER TWENTY*/ + 0, /* U+010919: PHOENICIAN NUMBER ONE HUNDRED*/ + 0, /* U+01091a: PHOENICIAN NUMBER TWO*/ + 0, /* U+01091b: PHOENICIAN NUMBER THREE*/ + 0, /* U+01091c: */ + 0, /* U+01091d: */ + 0, /* U+01091e: */ + 0, /* U+01091f: PHOENICIAN WORD SEPARATOR*/ + RTUNI_ALPHA, /* U+010920: LYDIAN LETTER A*/ + RTUNI_ALPHA, /* U+010921: LYDIAN LETTER B*/ + RTUNI_ALPHA, /* U+010922: LYDIAN LETTER G*/ + RTUNI_ALPHA, /* U+010923: LYDIAN LETTER D*/ + RTUNI_ALPHA, /* U+010924: LYDIAN LETTER E*/ + RTUNI_ALPHA, /* U+010925: LYDIAN LETTER V*/ + RTUNI_ALPHA, /* U+010926: LYDIAN LETTER I*/ + RTUNI_ALPHA, /* U+010927: LYDIAN LETTER Y*/ + RTUNI_ALPHA, /* U+010928: LYDIAN LETTER K*/ + RTUNI_ALPHA, /* U+010929: LYDIAN LETTER L*/ + RTUNI_ALPHA, /* U+01092a: LYDIAN LETTER M*/ + RTUNI_ALPHA, /* U+01092b: LYDIAN LETTER N*/ + RTUNI_ALPHA, /* U+01092c: LYDIAN LETTER O*/ + RTUNI_ALPHA, /* U+01092d: LYDIAN LETTER R*/ + RTUNI_ALPHA, /* U+01092e: LYDIAN LETTER SS*/ + RTUNI_ALPHA, /* U+01092f: LYDIAN LETTER T*/ + RTUNI_ALPHA, /* U+010930: LYDIAN LETTER U*/ + RTUNI_ALPHA, /* U+010931: LYDIAN LETTER F*/ + RTUNI_ALPHA, /* U+010932: LYDIAN LETTER Q*/ + RTUNI_ALPHA, /* U+010933: LYDIAN LETTER S*/ + RTUNI_ALPHA, /* U+010934: LYDIAN LETTER TT*/ + RTUNI_ALPHA, /* U+010935: LYDIAN LETTER AN*/ + RTUNI_ALPHA, /* U+010936: LYDIAN LETTER EN*/ + RTUNI_ALPHA, /* U+010937: LYDIAN LETTER LY*/ + RTUNI_ALPHA, /* U+010938: LYDIAN LETTER NN*/ + RTUNI_ALPHA, /* U+010939: LYDIAN LETTER C*/ + 0, /* U+01093a: */ + 0, /* U+01093b: */ + 0, /* U+01093c: */ + 0, /* U+01093d: */ + 0, /* U+01093e: */ + 0, /* U+01093f: LYDIAN TRIANGULAR MARK*/ + 0, /* U+010940: */ + 0, /* U+010941: */ + 0, /* U+010942: */ + 0, /* U+010943: */ + 0, /* U+010944: */ + 0, /* U+010945: */ + 0, /* U+010946: */ + 0, /* U+010947: */ + 0, /* U+010948: */ + 0, /* U+010949: */ + 0, /* U+01094a: */ + 0, /* U+01094b: */ + 0, /* U+01094c: */ + 0, /* U+01094d: */ + 0, /* U+01094e: */ + 0, /* U+01094f: */ + 0, /* U+010950: */ + 0, /* U+010951: */ + 0, /* U+010952: */ + 0, /* U+010953: */ + 0, /* U+010954: */ + 0, /* U+010955: */ + 0, /* U+010956: */ + 0, /* U+010957: */ + 0, /* U+010958: */ + 0, /* U+010959: */ + 0, /* U+01095a: */ + 0, /* U+01095b: */ + 0, /* U+01095c: */ + 0, /* U+01095d: */ + 0, /* U+01095e: */ + 0, /* U+01095f: */ + 0, /* U+010960: */ + 0, /* U+010961: */ + 0, /* U+010962: */ + 0, /* U+010963: */ + 0, /* U+010964: */ + 0, /* U+010965: */ + 0, /* U+010966: */ + 0, /* U+010967: */ + 0, /* U+010968: */ + 0, /* U+010969: */ + 0, /* U+01096a: */ + 0, /* U+01096b: */ + 0, /* U+01096c: */ + 0, /* U+01096d: */ + 0, /* U+01096e: */ + 0, /* U+01096f: */ + 0, /* U+010970: */ + 0, /* U+010971: */ + 0, /* U+010972: */ + 0, /* U+010973: */ + 0, /* U+010974: */ + 0, /* U+010975: */ + 0, /* U+010976: */ + 0, /* U+010977: */ + 0, /* U+010978: */ + 0, /* U+010979: */ + 0, /* U+01097a: */ + 0, /* U+01097b: */ + 0, /* U+01097c: */ + 0, /* U+01097d: */ + 0, /* U+01097e: */ + 0, /* U+01097f: */ + RTUNI_ALPHA, /* U+010980: MEROITIC HIEROGLYPHIC LETTER A*/ + RTUNI_ALPHA, /* U+010981: MEROITIC HIEROGLYPHIC LETTER E*/ + RTUNI_ALPHA, /* U+010982: MEROITIC HIEROGLYPHIC LETTER I*/ + RTUNI_ALPHA, /* U+010983: MEROITIC HIEROGLYPHIC LETTER O*/ + RTUNI_ALPHA, /* U+010984: MEROITIC HIEROGLYPHIC LETTER YA*/ + RTUNI_ALPHA, /* U+010985: MEROITIC HIEROGLYPHIC LETTER WA*/ + RTUNI_ALPHA, /* U+010986: MEROITIC HIEROGLYPHIC LETTER BA*/ + RTUNI_ALPHA, /* U+010987: MEROITIC HIEROGLYPHIC LETTER BA-2*/ + RTUNI_ALPHA, /* U+010988: MEROITIC HIEROGLYPHIC LETTER PA*/ + RTUNI_ALPHA, /* U+010989: MEROITIC HIEROGLYPHIC LETTER MA*/ + RTUNI_ALPHA, /* U+01098a: MEROITIC HIEROGLYPHIC LETTER NA*/ + RTUNI_ALPHA, /* U+01098b: MEROITIC HIEROGLYPHIC LETTER NA-2*/ + RTUNI_ALPHA, /* U+01098c: MEROITIC HIEROGLYPHIC LETTER NE*/ + RTUNI_ALPHA, /* U+01098d: MEROITIC HIEROGLYPHIC LETTER NE-2*/ + RTUNI_ALPHA, /* U+01098e: MEROITIC HIEROGLYPHIC LETTER RA*/ + RTUNI_ALPHA, /* U+01098f: MEROITIC HIEROGLYPHIC LETTER RA-2*/ + RTUNI_ALPHA, /* U+010990: MEROITIC HIEROGLYPHIC LETTER LA*/ + RTUNI_ALPHA, /* U+010991: MEROITIC HIEROGLYPHIC LETTER KHA*/ + RTUNI_ALPHA, /* U+010992: MEROITIC HIEROGLYPHIC LETTER HHA*/ + RTUNI_ALPHA, /* U+010993: MEROITIC HIEROGLYPHIC LETTER SA*/ + RTUNI_ALPHA, /* U+010994: MEROITIC HIEROGLYPHIC LETTER SA-2*/ + RTUNI_ALPHA, /* U+010995: MEROITIC HIEROGLYPHIC LETTER SE*/ + RTUNI_ALPHA, /* U+010996: MEROITIC HIEROGLYPHIC LETTER KA*/ + RTUNI_ALPHA, /* U+010997: MEROITIC HIEROGLYPHIC LETTER QA*/ + RTUNI_ALPHA, /* U+010998: MEROITIC HIEROGLYPHIC LETTER TA*/ + RTUNI_ALPHA, /* U+010999: MEROITIC HIEROGLYPHIC LETTER TA-2*/ + RTUNI_ALPHA, /* U+01099a: MEROITIC HIEROGLYPHIC LETTER TE*/ + RTUNI_ALPHA, /* U+01099b: MEROITIC HIEROGLYPHIC LETTER TE-2*/ + RTUNI_ALPHA, /* U+01099c: MEROITIC HIEROGLYPHIC LETTER TO*/ + RTUNI_ALPHA, /* U+01099d: MEROITIC HIEROGLYPHIC LETTER DA*/ + RTUNI_ALPHA, /* U+01099e: MEROITIC HIEROGLYPHIC SYMBOL VIDJ*/ + RTUNI_ALPHA, /* U+01099f: MEROITIC HIEROGLYPHIC SYMBOL VIDJ-2*/ + RTUNI_ALPHA, /* U+0109a0: MEROITIC CURSIVE LETTER A*/ + RTUNI_ALPHA, /* U+0109a1: MEROITIC CURSIVE LETTER E*/ + RTUNI_ALPHA, /* U+0109a2: MEROITIC CURSIVE LETTER I*/ + RTUNI_ALPHA, /* U+0109a3: MEROITIC CURSIVE LETTER O*/ + RTUNI_ALPHA, /* U+0109a4: MEROITIC CURSIVE LETTER YA*/ + RTUNI_ALPHA, /* U+0109a5: MEROITIC CURSIVE LETTER WA*/ + RTUNI_ALPHA, /* U+0109a6: MEROITIC CURSIVE LETTER BA*/ + RTUNI_ALPHA, /* U+0109a7: MEROITIC CURSIVE LETTER PA*/ + RTUNI_ALPHA, /* U+0109a8: MEROITIC CURSIVE LETTER MA*/ + RTUNI_ALPHA, /* U+0109a9: MEROITIC CURSIVE LETTER NA*/ + RTUNI_ALPHA, /* U+0109aa: MEROITIC CURSIVE LETTER NE*/ + RTUNI_ALPHA, /* U+0109ab: MEROITIC CURSIVE LETTER RA*/ + RTUNI_ALPHA, /* U+0109ac: MEROITIC CURSIVE LETTER LA*/ + RTUNI_ALPHA, /* U+0109ad: MEROITIC CURSIVE LETTER KHA*/ + RTUNI_ALPHA, /* U+0109ae: MEROITIC CURSIVE LETTER HHA*/ + RTUNI_ALPHA, /* U+0109af: MEROITIC CURSIVE LETTER SA*/ + RTUNI_ALPHA, /* U+0109b0: MEROITIC CURSIVE LETTER ARCHAIC SA*/ + RTUNI_ALPHA, /* U+0109b1: MEROITIC CURSIVE LETTER SE*/ + RTUNI_ALPHA, /* U+0109b2: MEROITIC CURSIVE LETTER KA*/ + RTUNI_ALPHA, /* U+0109b3: MEROITIC CURSIVE LETTER QA*/ + RTUNI_ALPHA, /* U+0109b4: MEROITIC CURSIVE LETTER TA*/ + RTUNI_ALPHA, /* U+0109b5: MEROITIC CURSIVE LETTER TE*/ + RTUNI_ALPHA, /* U+0109b6: MEROITIC CURSIVE LETTER TO*/ + RTUNI_ALPHA, /* U+0109b7: MEROITIC CURSIVE LETTER DA*/ + 0, /* U+0109b8: */ + 0, /* U+0109b9: */ + 0, /* U+0109ba: */ + 0, /* U+0109bb: */ + 0, /* U+0109bc: */ + 0, /* U+0109bd: */ + RTUNI_ALPHA, /* U+0109be: MEROITIC CURSIVE LOGOGRAM RMT*/ + RTUNI_ALPHA, /* U+0109bf: MEROITIC CURSIVE LOGOGRAM IMN*/ + 0, /* U+0109c0: */ + 0, /* U+0109c1: */ + 0, /* U+0109c2: */ + 0, /* U+0109c3: */ + 0, /* U+0109c4: */ + 0, /* U+0109c5: */ + 0, /* U+0109c6: */ + 0, /* U+0109c7: */ + 0, /* U+0109c8: */ + 0, /* U+0109c9: */ + 0, /* U+0109ca: */ + 0, /* U+0109cb: */ + 0, /* U+0109cc: */ + 0, /* U+0109cd: */ + 0, /* U+0109ce: */ + 0, /* U+0109cf: */ + 0, /* U+0109d0: */ + 0, /* U+0109d1: */ + 0, /* U+0109d2: */ + 0, /* U+0109d3: */ + 0, /* U+0109d4: */ + 0, /* U+0109d5: */ + 0, /* U+0109d6: */ + 0, /* U+0109d7: */ + 0, /* U+0109d8: */ + 0, /* U+0109d9: */ + 0, /* U+0109da: */ + 0, /* U+0109db: */ + 0, /* U+0109dc: */ + 0, /* U+0109dd: */ + 0, /* U+0109de: */ + 0, /* U+0109df: */ + 0, /* U+0109e0: */ + 0, /* U+0109e1: */ + 0, /* U+0109e2: */ + 0, /* U+0109e3: */ + 0, /* U+0109e4: */ + 0, /* U+0109e5: */ + 0, /* U+0109e6: */ + 0, /* U+0109e7: */ + 0, /* U+0109e8: */ + 0, /* U+0109e9: */ + 0, /* U+0109ea: */ + 0, /* U+0109eb: */ + 0, /* U+0109ec: */ + 0, /* U+0109ed: */ + 0, /* U+0109ee: */ + 0, /* U+0109ef: */ + 0, /* U+0109f0: */ + 0, /* U+0109f1: */ + 0, /* U+0109f2: */ + 0, /* U+0109f3: */ + 0, /* U+0109f4: */ + 0, /* U+0109f5: */ + 0, /* U+0109f6: */ + 0, /* U+0109f7: */ + 0, /* U+0109f8: */ + 0, /* U+0109f9: */ + 0, /* U+0109fa: */ + 0, /* U+0109fb: */ + 0, /* U+0109fc: */ + 0, /* U+0109fd: */ + 0, /* U+0109fe: */ + 0, /* U+0109ff: */ + RTUNI_ALPHA, /* U+010a00: KHAROSHTHI LETTER A*/ + RTUNI_ALPHA, /* U+010a01: KHAROSHTHI VOWEL SIGN I*/ + RTUNI_ALPHA, /* U+010a02: KHAROSHTHI VOWEL SIGN U*/ + RTUNI_ALPHA, /* U+010a03: KHAROSHTHI VOWEL SIGN VOCALIC R*/ + 0, /* U+010a04: */ + RTUNI_ALPHA, /* U+010a05: KHAROSHTHI VOWEL SIGN E*/ + RTUNI_ALPHA, /* U+010a06: KHAROSHTHI VOWEL SIGN O*/ + 0, /* U+010a07: */ + 0, /* U+010a08: */ + 0, /* U+010a09: */ + 0, /* U+010a0a: */ + 0, /* U+010a0b: */ + RTUNI_ALPHA, /* U+010a0c: KHAROSHTHI VOWEL LENGTH MARK*/ + RTUNI_ALPHA, /* U+010a0d: KHAROSHTHI SIGN DOUBLE RING BELOW*/ + RTUNI_ALPHA, /* U+010a0e: KHAROSHTHI SIGN ANUSVARA*/ + RTUNI_ALPHA, /* U+010a0f: KHAROSHTHI SIGN VISARGA*/ + RTUNI_ALPHA, /* U+010a10: KHAROSHTHI LETTER KA*/ + RTUNI_ALPHA, /* U+010a11: KHAROSHTHI LETTER KHA*/ + RTUNI_ALPHA, /* U+010a12: KHAROSHTHI LETTER GA*/ + RTUNI_ALPHA, /* U+010a13: KHAROSHTHI LETTER GHA*/ + 0, /* U+010a14: */ + RTUNI_ALPHA, /* U+010a15: KHAROSHTHI LETTER CA*/ + RTUNI_ALPHA, /* U+010a16: KHAROSHTHI LETTER CHA*/ + RTUNI_ALPHA, /* U+010a17: KHAROSHTHI LETTER JA*/ + 0, /* U+010a18: */ + RTUNI_ALPHA, /* U+010a19: KHAROSHTHI LETTER NYA*/ + RTUNI_ALPHA, /* U+010a1a: KHAROSHTHI LETTER TTA*/ + RTUNI_ALPHA, /* U+010a1b: KHAROSHTHI LETTER TTHA*/ + RTUNI_ALPHA, /* U+010a1c: KHAROSHTHI LETTER DDA*/ + RTUNI_ALPHA, /* U+010a1d: KHAROSHTHI LETTER DDHA*/ + RTUNI_ALPHA, /* U+010a1e: KHAROSHTHI LETTER NNA*/ + RTUNI_ALPHA, /* U+010a1f: KHAROSHTHI LETTER TA*/ + RTUNI_ALPHA, /* U+010a20: KHAROSHTHI LETTER THA*/ + RTUNI_ALPHA, /* U+010a21: KHAROSHTHI LETTER DA*/ + RTUNI_ALPHA, /* U+010a22: KHAROSHTHI LETTER DHA*/ + RTUNI_ALPHA, /* U+010a23: KHAROSHTHI LETTER NA*/ + RTUNI_ALPHA, /* U+010a24: KHAROSHTHI LETTER PA*/ + RTUNI_ALPHA, /* U+010a25: KHAROSHTHI LETTER PHA*/ + RTUNI_ALPHA, /* U+010a26: KHAROSHTHI LETTER BA*/ + RTUNI_ALPHA, /* U+010a27: KHAROSHTHI LETTER BHA*/ + RTUNI_ALPHA, /* U+010a28: KHAROSHTHI LETTER MA*/ + RTUNI_ALPHA, /* U+010a29: KHAROSHTHI LETTER YA*/ + RTUNI_ALPHA, /* U+010a2a: KHAROSHTHI LETTER RA*/ + RTUNI_ALPHA, /* U+010a2b: KHAROSHTHI LETTER LA*/ + RTUNI_ALPHA, /* U+010a2c: KHAROSHTHI LETTER VA*/ + RTUNI_ALPHA, /* U+010a2d: KHAROSHTHI LETTER SHA*/ + RTUNI_ALPHA, /* U+010a2e: KHAROSHTHI LETTER SSA*/ + RTUNI_ALPHA, /* U+010a2f: KHAROSHTHI LETTER SA*/ + RTUNI_ALPHA, /* U+010a30: KHAROSHTHI LETTER ZA*/ + RTUNI_ALPHA, /* U+010a31: KHAROSHTHI LETTER HA*/ + RTUNI_ALPHA, /* U+010a32: KHAROSHTHI LETTER KKA*/ + RTUNI_ALPHA, /* U+010a33: KHAROSHTHI LETTER TTTHA*/ + 0, /* U+010a34: */ + 0, /* U+010a35: */ + 0, /* U+010a36: */ + 0, /* U+010a37: */ + 0, /* U+010a38: KHAROSHTHI SIGN BAR ABOVE*/ + 0, /* U+010a39: KHAROSHTHI SIGN CAUDA*/ + 0, /* U+010a3a: KHAROSHTHI SIGN DOT BELOW*/ + 0, /* U+010a3b: */ + 0, /* U+010a3c: */ + 0, /* U+010a3d: */ + 0, /* U+010a3e: */ + 0, /* U+010a3f: KHAROSHTHI VIRAMA*/ + 0, /* U+010a40: KHAROSHTHI DIGIT ONE*/ + 0, /* U+010a41: KHAROSHTHI DIGIT TWO*/ + 0, /* U+010a42: KHAROSHTHI DIGIT THREE*/ + 0, /* U+010a43: KHAROSHTHI DIGIT FOUR*/ + 0, /* U+010a44: KHAROSHTHI NUMBER TEN*/ + 0, /* U+010a45: KHAROSHTHI NUMBER TWENTY*/ + 0, /* U+010a46: KHAROSHTHI NUMBER ONE HUNDRED*/ + 0, /* U+010a47: KHAROSHTHI NUMBER ONE THOUSAND*/ + 0, /* U+010a48: */ + 0, /* U+010a49: */ + 0, /* U+010a4a: */ + 0, /* U+010a4b: */ + 0, /* U+010a4c: */ + 0, /* U+010a4d: */ + 0, /* U+010a4e: */ + 0, /* U+010a4f: */ + 0, /* U+010a50: KHAROSHTHI PUNCTUATION DOT*/ + 0, /* U+010a51: KHAROSHTHI PUNCTUATION SMALL CIRCLE*/ + 0, /* U+010a52: KHAROSHTHI PUNCTUATION CIRCLE*/ + 0, /* U+010a53: KHAROSHTHI PUNCTUATION CRESCENT BAR*/ + 0, /* U+010a54: KHAROSHTHI PUNCTUATION MANGALAM*/ + 0, /* U+010a55: KHAROSHTHI PUNCTUATION LOTUS*/ + 0, /* U+010a56: KHAROSHTHI PUNCTUATION DANDA*/ + 0, /* U+010a57: KHAROSHTHI PUNCTUATION DOUBLE DANDA*/ + 0, /* U+010a58: KHAROSHTHI PUNCTUATION LINES*/ + 0, /* U+010a59: */ + 0, /* U+010a5a: */ + 0, /* U+010a5b: */ + 0, /* U+010a5c: */ + 0, /* U+010a5d: */ + 0, /* U+010a5e: */ + 0, /* U+010a5f: */ + RTUNI_ALPHA, /* U+010a60: OLD SOUTH ARABIAN LETTER HE*/ + RTUNI_ALPHA, /* U+010a61: OLD SOUTH ARABIAN LETTER LAMEDH*/ + RTUNI_ALPHA, /* U+010a62: OLD SOUTH ARABIAN LETTER HETH*/ + RTUNI_ALPHA, /* U+010a63: OLD SOUTH ARABIAN LETTER MEM*/ + RTUNI_ALPHA, /* U+010a64: OLD SOUTH ARABIAN LETTER QOPH*/ + RTUNI_ALPHA, /* U+010a65: OLD SOUTH ARABIAN LETTER WAW*/ + RTUNI_ALPHA, /* U+010a66: OLD SOUTH ARABIAN LETTER SHIN*/ + RTUNI_ALPHA, /* U+010a67: OLD SOUTH ARABIAN LETTER RESH*/ + RTUNI_ALPHA, /* U+010a68: OLD SOUTH ARABIAN LETTER BETH*/ + RTUNI_ALPHA, /* U+010a69: OLD SOUTH ARABIAN LETTER TAW*/ + RTUNI_ALPHA, /* U+010a6a: OLD SOUTH ARABIAN LETTER SAT*/ + RTUNI_ALPHA, /* U+010a6b: OLD SOUTH ARABIAN LETTER KAPH*/ + RTUNI_ALPHA, /* U+010a6c: OLD SOUTH ARABIAN LETTER NUN*/ + RTUNI_ALPHA, /* U+010a6d: OLD SOUTH ARABIAN LETTER KHETH*/ + RTUNI_ALPHA, /* U+010a6e: OLD SOUTH ARABIAN LETTER SADHE*/ + RTUNI_ALPHA, /* U+010a6f: OLD SOUTH ARABIAN LETTER SAMEKH*/ + RTUNI_ALPHA, /* U+010a70: OLD SOUTH ARABIAN LETTER FE*/ + RTUNI_ALPHA, /* U+010a71: OLD SOUTH ARABIAN LETTER ALEF*/ + RTUNI_ALPHA, /* U+010a72: OLD SOUTH ARABIAN LETTER AYN*/ + RTUNI_ALPHA, /* U+010a73: OLD SOUTH ARABIAN LETTER DHADHE*/ + RTUNI_ALPHA, /* U+010a74: OLD SOUTH ARABIAN LETTER GIMEL*/ + RTUNI_ALPHA, /* U+010a75: OLD SOUTH ARABIAN LETTER DALETH*/ + RTUNI_ALPHA, /* U+010a76: OLD SOUTH ARABIAN LETTER GHAYN*/ + RTUNI_ALPHA, /* U+010a77: OLD SOUTH ARABIAN LETTER TETH*/ + RTUNI_ALPHA, /* U+010a78: OLD SOUTH ARABIAN LETTER ZAYN*/ + RTUNI_ALPHA, /* U+010a79: OLD SOUTH ARABIAN LETTER DHALETH*/ + RTUNI_ALPHA, /* U+010a7a: OLD SOUTH ARABIAN LETTER YODH*/ + RTUNI_ALPHA, /* U+010a7b: OLD SOUTH ARABIAN LETTER THAW*/ + RTUNI_ALPHA, /* U+010a7c: OLD SOUTH ARABIAN LETTER THETH*/ + 0, /* U+010a7d: OLD SOUTH ARABIAN NUMBER ONE*/ + 0, /* U+010a7e: OLD SOUTH ARABIAN NUMBER FIFTY*/ + 0, /* U+010a7f: OLD SOUTH ARABIAN NUMERIC INDICATOR*/ + 0, /* U+010a80: */ + 0, /* U+010a81: */ + 0, /* U+010a82: */ + 0, /* U+010a83: */ + 0, /* U+010a84: */ + 0, /* U+010a85: */ + 0, /* U+010a86: */ + 0, /* U+010a87: */ + 0, /* U+010a88: */ + 0, /* U+010a89: */ + 0, /* U+010a8a: */ + 0, /* U+010a8b: */ + 0, /* U+010a8c: */ + 0, /* U+010a8d: */ + 0, /* U+010a8e: */ + 0, /* U+010a8f: */ + 0, /* U+010a90: */ + 0, /* U+010a91: */ + 0, /* U+010a92: */ + 0, /* U+010a93: */ + 0, /* U+010a94: */ + 0, /* U+010a95: */ + 0, /* U+010a96: */ + 0, /* U+010a97: */ + 0, /* U+010a98: */ + 0, /* U+010a99: */ + 0, /* U+010a9a: */ + 0, /* U+010a9b: */ + 0, /* U+010a9c: */ + 0, /* U+010a9d: */ + 0, /* U+010a9e: */ + 0, /* U+010a9f: */ + 0, /* U+010aa0: */ + 0, /* U+010aa1: */ + 0, /* U+010aa2: */ + 0, /* U+010aa3: */ + 0, /* U+010aa4: */ + 0, /* U+010aa5: */ + 0, /* U+010aa6: */ + 0, /* U+010aa7: */ + 0, /* U+010aa8: */ + 0, /* U+010aa9: */ + 0, /* U+010aaa: */ + 0, /* U+010aab: */ + 0, /* U+010aac: */ + 0, /* U+010aad: */ + 0, /* U+010aae: */ + 0, /* U+010aaf: */ + 0, /* U+010ab0: */ + 0, /* U+010ab1: */ + 0, /* U+010ab2: */ + 0, /* U+010ab3: */ + 0, /* U+010ab4: */ + 0, /* U+010ab5: */ + 0, /* U+010ab6: */ + 0, /* U+010ab7: */ + 0, /* U+010ab8: */ + 0, /* U+010ab9: */ + 0, /* U+010aba: */ + 0, /* U+010abb: */ + 0, /* U+010abc: */ + 0, /* U+010abd: */ + 0, /* U+010abe: */ + 0, /* U+010abf: */ + 0, /* U+010ac0: */ + 0, /* U+010ac1: */ + 0, /* U+010ac2: */ + 0, /* U+010ac3: */ + 0, /* U+010ac4: */ + 0, /* U+010ac5: */ + 0, /* U+010ac6: */ + 0, /* U+010ac7: */ + 0, /* U+010ac8: */ + 0, /* U+010ac9: */ + 0, /* U+010aca: */ + 0, /* U+010acb: */ + 0, /* U+010acc: */ + 0, /* U+010acd: */ + 0, /* U+010ace: */ + 0, /* U+010acf: */ + 0, /* U+010ad0: */ + 0, /* U+010ad1: */ + 0, /* U+010ad2: */ + 0, /* U+010ad3: */ + 0, /* U+010ad4: */ + 0, /* U+010ad5: */ + 0, /* U+010ad6: */ + 0, /* U+010ad7: */ + 0, /* U+010ad8: */ + 0, /* U+010ad9: */ + 0, /* U+010ada: */ + 0, /* U+010adb: */ + 0, /* U+010adc: */ + 0, /* U+010add: */ + 0, /* U+010ade: */ + 0, /* U+010adf: */ + 0, /* U+010ae0: */ + 0, /* U+010ae1: */ + 0, /* U+010ae2: */ + 0, /* U+010ae3: */ + 0, /* U+010ae4: */ + 0, /* U+010ae5: */ + 0, /* U+010ae6: */ + 0, /* U+010ae7: */ + 0, /* U+010ae8: */ + 0, /* U+010ae9: */ + 0, /* U+010aea: */ + 0, /* U+010aeb: */ + 0, /* U+010aec: */ + 0, /* U+010aed: */ + 0, /* U+010aee: */ + 0, /* U+010aef: */ + 0, /* U+010af0: */ + 0, /* U+010af1: */ + 0, /* U+010af2: */ + 0, /* U+010af3: */ + 0, /* U+010af4: */ + 0, /* U+010af5: */ + 0, /* U+010af6: */ + 0, /* U+010af7: */ + 0, /* U+010af8: */ + 0, /* U+010af9: */ + 0, /* U+010afa: */ + 0, /* U+010afb: */ + 0, /* U+010afc: */ + 0, /* U+010afd: */ + 0, /* U+010afe: */ + 0, /* U+010aff: */ + RTUNI_ALPHA, /* U+010b00: AVESTAN LETTER A*/ + RTUNI_ALPHA, /* U+010b01: AVESTAN LETTER AA*/ + RTUNI_ALPHA, /* U+010b02: AVESTAN LETTER AO*/ + RTUNI_ALPHA, /* U+010b03: AVESTAN LETTER AAO*/ + RTUNI_ALPHA, /* U+010b04: AVESTAN LETTER AN*/ + RTUNI_ALPHA, /* U+010b05: AVESTAN LETTER AAN*/ + RTUNI_ALPHA, /* U+010b06: AVESTAN LETTER AE*/ + RTUNI_ALPHA, /* U+010b07: AVESTAN LETTER AEE*/ + RTUNI_ALPHA, /* U+010b08: AVESTAN LETTER E*/ + RTUNI_ALPHA, /* U+010b09: AVESTAN LETTER EE*/ + RTUNI_ALPHA, /* U+010b0a: AVESTAN LETTER O*/ + RTUNI_ALPHA, /* U+010b0b: AVESTAN LETTER OO*/ + RTUNI_ALPHA, /* U+010b0c: AVESTAN LETTER I*/ + RTUNI_ALPHA, /* U+010b0d: AVESTAN LETTER II*/ + RTUNI_ALPHA, /* U+010b0e: AVESTAN LETTER U*/ + RTUNI_ALPHA, /* U+010b0f: AVESTAN LETTER UU*/ + RTUNI_ALPHA, /* U+010b10: AVESTAN LETTER KE*/ + RTUNI_ALPHA, /* U+010b11: AVESTAN LETTER XE*/ + RTUNI_ALPHA, /* U+010b12: AVESTAN LETTER XYE*/ + RTUNI_ALPHA, /* U+010b13: AVESTAN LETTER XVE*/ + RTUNI_ALPHA, /* U+010b14: AVESTAN LETTER GE*/ + RTUNI_ALPHA, /* U+010b15: AVESTAN LETTER GGE*/ + RTUNI_ALPHA, /* U+010b16: AVESTAN LETTER GHE*/ + RTUNI_ALPHA, /* U+010b17: AVESTAN LETTER CE*/ + RTUNI_ALPHA, /* U+010b18: AVESTAN LETTER JE*/ + RTUNI_ALPHA, /* U+010b19: AVESTAN LETTER TE*/ + RTUNI_ALPHA, /* U+010b1a: AVESTAN LETTER THE*/ + RTUNI_ALPHA, /* U+010b1b: AVESTAN LETTER DE*/ + RTUNI_ALPHA, /* U+010b1c: AVESTAN LETTER DHE*/ + RTUNI_ALPHA, /* U+010b1d: AVESTAN LETTER TTE*/ + RTUNI_ALPHA, /* U+010b1e: AVESTAN LETTER PE*/ + RTUNI_ALPHA, /* U+010b1f: AVESTAN LETTER FE*/ + RTUNI_ALPHA, /* U+010b20: AVESTAN LETTER BE*/ + RTUNI_ALPHA, /* U+010b21: AVESTAN LETTER BHE*/ + RTUNI_ALPHA, /* U+010b22: AVESTAN LETTER NGE*/ + RTUNI_ALPHA, /* U+010b23: AVESTAN LETTER NGYE*/ + RTUNI_ALPHA, /* U+010b24: AVESTAN LETTER NGVE*/ + RTUNI_ALPHA, /* U+010b25: AVESTAN LETTER NE*/ + RTUNI_ALPHA, /* U+010b26: AVESTAN LETTER NYE*/ + RTUNI_ALPHA, /* U+010b27: AVESTAN LETTER NNE*/ + RTUNI_ALPHA, /* U+010b28: AVESTAN LETTER ME*/ + RTUNI_ALPHA, /* U+010b29: AVESTAN LETTER HME*/ + RTUNI_ALPHA, /* U+010b2a: AVESTAN LETTER YYE*/ + RTUNI_ALPHA, /* U+010b2b: AVESTAN LETTER YE*/ + RTUNI_ALPHA, /* U+010b2c: AVESTAN LETTER VE*/ + RTUNI_ALPHA, /* U+010b2d: AVESTAN LETTER RE*/ + RTUNI_ALPHA, /* U+010b2e: AVESTAN LETTER LE*/ + RTUNI_ALPHA, /* U+010b2f: AVESTAN LETTER SE*/ + RTUNI_ALPHA, /* U+010b30: AVESTAN LETTER ZE*/ + RTUNI_ALPHA, /* U+010b31: AVESTAN LETTER SHE*/ + RTUNI_ALPHA, /* U+010b32: AVESTAN LETTER ZHE*/ + RTUNI_ALPHA, /* U+010b33: AVESTAN LETTER SHYE*/ + RTUNI_ALPHA, /* U+010b34: AVESTAN LETTER SSHE*/ + RTUNI_ALPHA, /* U+010b35: AVESTAN LETTER HE*/ + 0, /* U+010b36: */ + 0, /* U+010b37: */ + 0, /* U+010b38: */ + 0, /* U+010b39: AVESTAN ABBREVIATION MARK*/ + 0, /* U+010b3a: TINY TWO DOTS OVER ONE DOT PUNCTUATION*/ + 0, /* U+010b3b: SMALL TWO DOTS OVER ONE DOT PUNCTUATION*/ + 0, /* U+010b3c: LARGE TWO DOTS OVER ONE DOT PUNCTUATION*/ + 0, /* U+010b3d: LARGE ONE DOT OVER TWO DOTS PUNCTUATION*/ + 0, /* U+010b3e: LARGE TWO RINGS OVER ONE RING PUNCTUATION*/ + 0, /* U+010b3f: LARGE ONE RING OVER TWO RINGS PUNCTUATION*/ + RTUNI_ALPHA, /* U+010b40: INSCRIPTIONAL PARTHIAN LETTER ALEPH*/ + RTUNI_ALPHA, /* U+010b41: INSCRIPTIONAL PARTHIAN LETTER BETH*/ + RTUNI_ALPHA, /* U+010b42: INSCRIPTIONAL PARTHIAN LETTER GIMEL*/ + RTUNI_ALPHA, /* U+010b43: INSCRIPTIONAL PARTHIAN LETTER DALETH*/ + RTUNI_ALPHA, /* U+010b44: INSCRIPTIONAL PARTHIAN LETTER HE*/ + RTUNI_ALPHA, /* U+010b45: INSCRIPTIONAL PARTHIAN LETTER WAW*/ + RTUNI_ALPHA, /* U+010b46: INSCRIPTIONAL PARTHIAN LETTER ZAYIN*/ + RTUNI_ALPHA, /* U+010b47: INSCRIPTIONAL PARTHIAN LETTER HETH*/ + RTUNI_ALPHA, /* U+010b48: INSCRIPTIONAL PARTHIAN LETTER TETH*/ + RTUNI_ALPHA, /* U+010b49: INSCRIPTIONAL PARTHIAN LETTER YODH*/ + RTUNI_ALPHA, /* U+010b4a: INSCRIPTIONAL PARTHIAN LETTER KAPH*/ + RTUNI_ALPHA, /* U+010b4b: INSCRIPTIONAL PARTHIAN LETTER LAMEDH*/ + RTUNI_ALPHA, /* U+010b4c: INSCRIPTIONAL PARTHIAN LETTER MEM*/ + RTUNI_ALPHA, /* U+010b4d: INSCRIPTIONAL PARTHIAN LETTER NUN*/ + RTUNI_ALPHA, /* U+010b4e: INSCRIPTIONAL PARTHIAN LETTER SAMEKH*/ + RTUNI_ALPHA, /* U+010b4f: INSCRIPTIONAL PARTHIAN LETTER AYIN*/ + RTUNI_ALPHA, /* U+010b50: INSCRIPTIONAL PARTHIAN LETTER PE*/ + RTUNI_ALPHA, /* U+010b51: INSCRIPTIONAL PARTHIAN LETTER SADHE*/ + RTUNI_ALPHA, /* U+010b52: INSCRIPTIONAL PARTHIAN LETTER QOPH*/ + RTUNI_ALPHA, /* U+010b53: INSCRIPTIONAL PARTHIAN LETTER RESH*/ + RTUNI_ALPHA, /* U+010b54: INSCRIPTIONAL PARTHIAN LETTER SHIN*/ + RTUNI_ALPHA, /* U+010b55: INSCRIPTIONAL PARTHIAN LETTER TAW*/ + 0, /* U+010b56: */ + 0, /* U+010b57: */ + 0, /* U+010b58: INSCRIPTIONAL PARTHIAN NUMBER ONE*/ + 0, /* U+010b59: INSCRIPTIONAL PARTHIAN NUMBER TWO*/ + 0, /* U+010b5a: INSCRIPTIONAL PARTHIAN NUMBER THREE*/ + 0, /* U+010b5b: INSCRIPTIONAL PARTHIAN NUMBER FOUR*/ + 0, /* U+010b5c: INSCRIPTIONAL PARTHIAN NUMBER TEN*/ + 0, /* U+010b5d: INSCRIPTIONAL PARTHIAN NUMBER TWENTY*/ + 0, /* U+010b5e: INSCRIPTIONAL PARTHIAN NUMBER ONE HUNDRED*/ + 0, /* U+010b5f: INSCRIPTIONAL PARTHIAN NUMBER ONE THOUSAND*/ + RTUNI_ALPHA, /* U+010b60: INSCRIPTIONAL PAHLAVI LETTER ALEPH*/ + RTUNI_ALPHA, /* U+010b61: INSCRIPTIONAL PAHLAVI LETTER BETH*/ + RTUNI_ALPHA, /* U+010b62: INSCRIPTIONAL PAHLAVI LETTER GIMEL*/ + RTUNI_ALPHA, /* U+010b63: INSCRIPTIONAL PAHLAVI LETTER DALETH*/ + RTUNI_ALPHA, /* U+010b64: INSCRIPTIONAL PAHLAVI LETTER HE*/ + RTUNI_ALPHA, /* U+010b65: INSCRIPTIONAL PAHLAVI LETTER WAW-AYIN-RESH*/ + RTUNI_ALPHA, /* U+010b66: INSCRIPTIONAL PAHLAVI LETTER ZAYIN*/ + RTUNI_ALPHA, /* U+010b67: INSCRIPTIONAL PAHLAVI LETTER HETH*/ + RTUNI_ALPHA, /* U+010b68: INSCRIPTIONAL PAHLAVI LETTER TETH*/ + RTUNI_ALPHA, /* U+010b69: INSCRIPTIONAL PAHLAVI LETTER YODH*/ + RTUNI_ALPHA, /* U+010b6a: INSCRIPTIONAL PAHLAVI LETTER KAPH*/ + RTUNI_ALPHA, /* U+010b6b: INSCRIPTIONAL PAHLAVI LETTER LAMEDH*/ + RTUNI_ALPHA, /* U+010b6c: INSCRIPTIONAL PAHLAVI LETTER MEM-QOPH*/ + RTUNI_ALPHA, /* U+010b6d: INSCRIPTIONAL PAHLAVI LETTER NUN*/ + RTUNI_ALPHA, /* U+010b6e: INSCRIPTIONAL PAHLAVI LETTER SAMEKH*/ + RTUNI_ALPHA, /* U+010b6f: INSCRIPTIONAL PAHLAVI LETTER PE*/ + RTUNI_ALPHA, /* U+010b70: INSCRIPTIONAL PAHLAVI LETTER SADHE*/ + RTUNI_ALPHA, /* U+010b71: INSCRIPTIONAL PAHLAVI LETTER SHIN*/ + RTUNI_ALPHA, /* U+010b72: INSCRIPTIONAL PAHLAVI LETTER TAW*/ + 0, /* U+010b73: */ + 0, /* U+010b74: */ + 0, /* U+010b75: */ + 0, /* U+010b76: */ + 0, /* U+010b77: */ + 0, /* U+010b78: INSCRIPTIONAL PAHLAVI NUMBER ONE*/ + 0, /* U+010b79: INSCRIPTIONAL PAHLAVI NUMBER TWO*/ + 0, /* U+010b7a: INSCRIPTIONAL PAHLAVI NUMBER THREE*/ + 0, /* U+010b7b: INSCRIPTIONAL PAHLAVI NUMBER FOUR*/ + 0, /* U+010b7c: INSCRIPTIONAL PAHLAVI NUMBER TEN*/ + 0, /* U+010b7d: INSCRIPTIONAL PAHLAVI NUMBER TWENTY*/ + 0, /* U+010b7e: INSCRIPTIONAL PAHLAVI NUMBER ONE HUNDRED*/ + 0, /* U+010b7f: INSCRIPTIONAL PAHLAVI NUMBER ONE THOUSAND*/ + 0, /* U+010b80: */ + 0, /* U+010b81: */ + 0, /* U+010b82: */ + 0, /* U+010b83: */ + 0, /* U+010b84: */ + 0, /* U+010b85: */ + 0, /* U+010b86: */ + 0, /* U+010b87: */ + 0, /* U+010b88: */ + 0, /* U+010b89: */ + 0, /* U+010b8a: */ + 0, /* U+010b8b: */ + 0, /* U+010b8c: */ + 0, /* U+010b8d: */ + 0, /* U+010b8e: */ + 0, /* U+010b8f: */ + 0, /* U+010b90: */ + 0, /* U+010b91: */ + 0, /* U+010b92: */ + 0, /* U+010b93: */ + 0, /* U+010b94: */ + 0, /* U+010b95: */ + 0, /* U+010b96: */ + 0, /* U+010b97: */ + 0, /* U+010b98: */ + 0, /* U+010b99: */ + 0, /* U+010b9a: */ + 0, /* U+010b9b: */ + 0, /* U+010b9c: */ + 0, /* U+010b9d: */ + 0, /* U+010b9e: */ + 0, /* U+010b9f: */ + 0, /* U+010ba0: */ + 0, /* U+010ba1: */ + 0, /* U+010ba2: */ + 0, /* U+010ba3: */ + 0, /* U+010ba4: */ + 0, /* U+010ba5: */ + 0, /* U+010ba6: */ + 0, /* U+010ba7: */ + 0, /* U+010ba8: */ + 0, /* U+010ba9: */ + 0, /* U+010baa: */ + 0, /* U+010bab: */ + 0, /* U+010bac: */ + 0, /* U+010bad: */ + 0, /* U+010bae: */ + 0, /* U+010baf: */ + 0, /* U+010bb0: */ + 0, /* U+010bb1: */ + 0, /* U+010bb2: */ + 0, /* U+010bb3: */ + 0, /* U+010bb4: */ + 0, /* U+010bb5: */ + 0, /* U+010bb6: */ + 0, /* U+010bb7: */ + 0, /* U+010bb8: */ + 0, /* U+010bb9: */ + 0, /* U+010bba: */ + 0, /* U+010bbb: */ + 0, /* U+010bbc: */ + 0, /* U+010bbd: */ + 0, /* U+010bbe: */ + 0, /* U+010bbf: */ + 0, /* U+010bc0: */ + 0, /* U+010bc1: */ + 0, /* U+010bc2: */ + 0, /* U+010bc3: */ + 0, /* U+010bc4: */ + 0, /* U+010bc5: */ + 0, /* U+010bc6: */ + 0, /* U+010bc7: */ + 0, /* U+010bc8: */ + 0, /* U+010bc9: */ + 0, /* U+010bca: */ + 0, /* U+010bcb: */ + 0, /* U+010bcc: */ + 0, /* U+010bcd: */ + 0, /* U+010bce: */ + 0, /* U+010bcf: */ + 0, /* U+010bd0: */ + 0, /* U+010bd1: */ + 0, /* U+010bd2: */ + 0, /* U+010bd3: */ + 0, /* U+010bd4: */ + 0, /* U+010bd5: */ + 0, /* U+010bd6: */ + 0, /* U+010bd7: */ + 0, /* U+010bd8: */ + 0, /* U+010bd9: */ + 0, /* U+010bda: */ + 0, /* U+010bdb: */ + 0, /* U+010bdc: */ + 0, /* U+010bdd: */ + 0, /* U+010bde: */ + 0, /* U+010bdf: */ + 0, /* U+010be0: */ + 0, /* U+010be1: */ + 0, /* U+010be2: */ + 0, /* U+010be3: */ + 0, /* U+010be4: */ + 0, /* U+010be5: */ + 0, /* U+010be6: */ + 0, /* U+010be7: */ + 0, /* U+010be8: */ + 0, /* U+010be9: */ + 0, /* U+010bea: */ + 0, /* U+010beb: */ + 0, /* U+010bec: */ + 0, /* U+010bed: */ + 0, /* U+010bee: */ + 0, /* U+010bef: */ + 0, /* U+010bf0: */ + 0, /* U+010bf1: */ + 0, /* U+010bf2: */ + 0, /* U+010bf3: */ + 0, /* U+010bf4: */ + 0, /* U+010bf5: */ + 0, /* U+010bf6: */ + 0, /* U+010bf7: */ + 0, /* U+010bf8: */ + 0, /* U+010bf9: */ + 0, /* U+010bfa: */ + 0, /* U+010bfb: */ + 0, /* U+010bfc: */ + 0, /* U+010bfd: */ + 0, /* U+010bfe: */ + 0, /* U+010bff: */ + RTUNI_ALPHA, /* U+010c00: OLD TURKIC LETTER ORKHON A*/ + RTUNI_ALPHA, /* U+010c01: OLD TURKIC LETTER YENISEI A*/ + RTUNI_ALPHA, /* U+010c02: OLD TURKIC LETTER YENISEI AE*/ + RTUNI_ALPHA, /* U+010c03: OLD TURKIC LETTER ORKHON I*/ + RTUNI_ALPHA, /* U+010c04: OLD TURKIC LETTER YENISEI I*/ + RTUNI_ALPHA, /* U+010c05: OLD TURKIC LETTER YENISEI E*/ + RTUNI_ALPHA, /* U+010c06: OLD TURKIC LETTER ORKHON O*/ + RTUNI_ALPHA, /* U+010c07: OLD TURKIC LETTER ORKHON OE*/ + RTUNI_ALPHA, /* U+010c08: OLD TURKIC LETTER YENISEI OE*/ + RTUNI_ALPHA, /* U+010c09: OLD TURKIC LETTER ORKHON AB*/ + RTUNI_ALPHA, /* U+010c0a: OLD TURKIC LETTER YENISEI AB*/ + RTUNI_ALPHA, /* U+010c0b: OLD TURKIC LETTER ORKHON AEB*/ + RTUNI_ALPHA, /* U+010c0c: OLD TURKIC LETTER YENISEI AEB*/ + RTUNI_ALPHA, /* U+010c0d: OLD TURKIC LETTER ORKHON AG*/ + RTUNI_ALPHA, /* U+010c0e: OLD TURKIC LETTER YENISEI AG*/ + RTUNI_ALPHA, /* U+010c0f: OLD TURKIC LETTER ORKHON AEG*/ + RTUNI_ALPHA, /* U+010c10: OLD TURKIC LETTER YENISEI AEG*/ + RTUNI_ALPHA, /* U+010c11: OLD TURKIC LETTER ORKHON AD*/ + RTUNI_ALPHA, /* U+010c12: OLD TURKIC LETTER YENISEI AD*/ + RTUNI_ALPHA, /* U+010c13: OLD TURKIC LETTER ORKHON AED*/ + RTUNI_ALPHA, /* U+010c14: OLD TURKIC LETTER ORKHON EZ*/ + RTUNI_ALPHA, /* U+010c15: OLD TURKIC LETTER YENISEI EZ*/ + RTUNI_ALPHA, /* U+010c16: OLD TURKIC LETTER ORKHON AY*/ + RTUNI_ALPHA, /* U+010c17: OLD TURKIC LETTER YENISEI AY*/ + RTUNI_ALPHA, /* U+010c18: OLD TURKIC LETTER ORKHON AEY*/ + RTUNI_ALPHA, /* U+010c19: OLD TURKIC LETTER YENISEI AEY*/ + RTUNI_ALPHA, /* U+010c1a: OLD TURKIC LETTER ORKHON AEK*/ + RTUNI_ALPHA, /* U+010c1b: OLD TURKIC LETTER YENISEI AEK*/ + RTUNI_ALPHA, /* U+010c1c: OLD TURKIC LETTER ORKHON OEK*/ + RTUNI_ALPHA, /* U+010c1d: OLD TURKIC LETTER YENISEI OEK*/ + RTUNI_ALPHA, /* U+010c1e: OLD TURKIC LETTER ORKHON AL*/ + RTUNI_ALPHA, /* U+010c1f: OLD TURKIC LETTER YENISEI AL*/ + RTUNI_ALPHA, /* U+010c20: OLD TURKIC LETTER ORKHON AEL*/ + RTUNI_ALPHA, /* U+010c21: OLD TURKIC LETTER ORKHON ELT*/ + RTUNI_ALPHA, /* U+010c22: OLD TURKIC LETTER ORKHON EM*/ + RTUNI_ALPHA, /* U+010c23: OLD TURKIC LETTER ORKHON AN*/ + RTUNI_ALPHA, /* U+010c24: OLD TURKIC LETTER ORKHON AEN*/ + RTUNI_ALPHA, /* U+010c25: OLD TURKIC LETTER YENISEI AEN*/ + RTUNI_ALPHA, /* U+010c26: OLD TURKIC LETTER ORKHON ENT*/ + RTUNI_ALPHA, /* U+010c27: OLD TURKIC LETTER YENISEI ENT*/ + RTUNI_ALPHA, /* U+010c28: OLD TURKIC LETTER ORKHON ENC*/ + RTUNI_ALPHA, /* U+010c29: OLD TURKIC LETTER YENISEI ENC*/ + RTUNI_ALPHA, /* U+010c2a: OLD TURKIC LETTER ORKHON ENY*/ + RTUNI_ALPHA, /* U+010c2b: OLD TURKIC LETTER YENISEI ENY*/ + RTUNI_ALPHA, /* U+010c2c: OLD TURKIC LETTER YENISEI ANG*/ + RTUNI_ALPHA, /* U+010c2d: OLD TURKIC LETTER ORKHON ENG*/ + RTUNI_ALPHA, /* U+010c2e: OLD TURKIC LETTER YENISEI AENG*/ + RTUNI_ALPHA, /* U+010c2f: OLD TURKIC LETTER ORKHON EP*/ + RTUNI_ALPHA, /* U+010c30: OLD TURKIC LETTER ORKHON OP*/ + RTUNI_ALPHA, /* U+010c31: OLD TURKIC LETTER ORKHON IC*/ + RTUNI_ALPHA, /* U+010c32: OLD TURKIC LETTER ORKHON EC*/ + RTUNI_ALPHA, /* U+010c33: OLD TURKIC LETTER YENISEI EC*/ + RTUNI_ALPHA, /* U+010c34: OLD TURKIC LETTER ORKHON AQ*/ + RTUNI_ALPHA, /* U+010c35: OLD TURKIC LETTER YENISEI AQ*/ + RTUNI_ALPHA, /* U+010c36: OLD TURKIC LETTER ORKHON IQ*/ + RTUNI_ALPHA, /* U+010c37: OLD TURKIC LETTER YENISEI IQ*/ + RTUNI_ALPHA, /* U+010c38: OLD TURKIC LETTER ORKHON OQ*/ + RTUNI_ALPHA, /* U+010c39: OLD TURKIC LETTER YENISEI OQ*/ + RTUNI_ALPHA, /* U+010c3a: OLD TURKIC LETTER ORKHON AR*/ + RTUNI_ALPHA, /* U+010c3b: OLD TURKIC LETTER YENISEI AR*/ + RTUNI_ALPHA, /* U+010c3c: OLD TURKIC LETTER ORKHON AER*/ + RTUNI_ALPHA, /* U+010c3d: OLD TURKIC LETTER ORKHON AS*/ + RTUNI_ALPHA, /* U+010c3e: OLD TURKIC LETTER ORKHON AES*/ + RTUNI_ALPHA, /* U+010c3f: OLD TURKIC LETTER ORKHON ASH*/ + RTUNI_ALPHA, /* U+010c40: OLD TURKIC LETTER YENISEI ASH*/ + RTUNI_ALPHA, /* U+010c41: OLD TURKIC LETTER ORKHON ESH*/ + RTUNI_ALPHA, /* U+010c42: OLD TURKIC LETTER YENISEI ESH*/ + RTUNI_ALPHA, /* U+010c43: OLD TURKIC LETTER ORKHON AT*/ + RTUNI_ALPHA, /* U+010c44: OLD TURKIC LETTER YENISEI AT*/ + RTUNI_ALPHA, /* U+010c45: OLD TURKIC LETTER ORKHON AET*/ + RTUNI_ALPHA, /* U+010c46: OLD TURKIC LETTER YENISEI AET*/ + RTUNI_ALPHA, /* U+010c47: OLD TURKIC LETTER ORKHON OT*/ + RTUNI_ALPHA, /* U+010c48: OLD TURKIC LETTER ORKHON BASH*/ + 0, /* U+010c49: */ + 0, /* U+010c4a: */ + 0, /* U+010c4b: */ + 0, /* U+010c4c: */ + 0, /* U+010c4d: */ + 0, /* U+010c4e: */ + 0, /* U+010c4f: */ + 0, /* U+010c50: */ + 0, /* U+010c51: */ + 0, /* U+010c52: */ + 0, /* U+010c53: */ + 0, /* U+010c54: */ + 0, /* U+010c55: */ + 0, /* U+010c56: */ + 0, /* U+010c57: */ + 0, /* U+010c58: */ + 0, /* U+010c59: */ + 0, /* U+010c5a: */ + 0, /* U+010c5b: */ + 0, /* U+010c5c: */ + 0, /* U+010c5d: */ + 0, /* U+010c5e: */ + 0, /* U+010c5f: */ + 0, /* U+010c60: */ + 0, /* U+010c61: */ + 0, /* U+010c62: */ + 0, /* U+010c63: */ + 0, /* U+010c64: */ + 0, /* U+010c65: */ + 0, /* U+010c66: */ + 0, /* U+010c67: */ + 0, /* U+010c68: */ + 0, /* U+010c69: */ + 0, /* U+010c6a: */ + 0, /* U+010c6b: */ + 0, /* U+010c6c: */ + 0, /* U+010c6d: */ + 0, /* U+010c6e: */ + 0, /* U+010c6f: */ + 0, /* U+010c70: */ + 0, /* U+010c71: */ + 0, /* U+010c72: */ + 0, /* U+010c73: */ + 0, /* U+010c74: */ + 0, /* U+010c75: */ + 0, /* U+010c76: */ + 0, /* U+010c77: */ + 0, /* U+010c78: */ + 0, /* U+010c79: */ + 0, /* U+010c7a: */ + 0, /* U+010c7b: */ + 0, /* U+010c7c: */ + 0, /* U+010c7d: */ + 0, /* U+010c7e: */ + 0, /* U+010c7f: */ + 0, /* U+010c80: */ + 0, /* U+010c81: */ + 0, /* U+010c82: */ + 0, /* U+010c83: */ + 0, /* U+010c84: */ + 0, /* U+010c85: */ + 0, /* U+010c86: */ + 0, /* U+010c87: */ + 0, /* U+010c88: */ + 0, /* U+010c89: */ + 0, /* U+010c8a: */ + 0, /* U+010c8b: */ + 0, /* U+010c8c: */ + 0, /* U+010c8d: */ + 0, /* U+010c8e: */ + 0, /* U+010c8f: */ + 0, /* U+010c90: */ + 0, /* U+010c91: */ + 0, /* U+010c92: */ + 0, /* U+010c93: */ + 0, /* U+010c94: */ + 0, /* U+010c95: */ + 0, /* U+010c96: */ + 0, /* U+010c97: */ + 0, /* U+010c98: */ + 0, /* U+010c99: */ + 0, /* U+010c9a: */ + 0, /* U+010c9b: */ + 0, /* U+010c9c: */ + 0, /* U+010c9d: */ + 0, /* U+010c9e: */ + 0, /* U+010c9f: */ + 0, /* U+010ca0: */ + 0, /* U+010ca1: */ + 0, /* U+010ca2: */ + 0, /* U+010ca3: */ + 0, /* U+010ca4: */ + 0, /* U+010ca5: */ + 0, /* U+010ca6: */ + 0, /* U+010ca7: */ + 0, /* U+010ca8: */ + 0, /* U+010ca9: */ + 0, /* U+010caa: */ + 0, /* U+010cab: */ + 0, /* U+010cac: */ + 0, /* U+010cad: */ + 0, /* U+010cae: */ + 0, /* U+010caf: */ + 0, /* U+010cb0: */ + 0, /* U+010cb1: */ + 0, /* U+010cb2: */ + 0, /* U+010cb3: */ + 0, /* U+010cb4: */ + 0, /* U+010cb5: */ + 0, /* U+010cb6: */ + 0, /* U+010cb7: */ + 0, /* U+010cb8: */ + 0, /* U+010cb9: */ + 0, /* U+010cba: */ + 0, /* U+010cbb: */ + 0, /* U+010cbc: */ + 0, /* U+010cbd: */ + 0, /* U+010cbe: */ + 0, /* U+010cbf: */ + 0, /* U+010cc0: */ + 0, /* U+010cc1: */ + 0, /* U+010cc2: */ + 0, /* U+010cc3: */ + 0, /* U+010cc4: */ + 0, /* U+010cc5: */ + 0, /* U+010cc6: */ + 0, /* U+010cc7: */ + 0, /* U+010cc8: */ + 0, /* U+010cc9: */ + 0, /* U+010cca: */ + 0, /* U+010ccb: */ + 0, /* U+010ccc: */ + 0, /* U+010ccd: */ + 0, /* U+010cce: */ + 0, /* U+010ccf: */ + 0, /* U+010cd0: */ + 0, /* U+010cd1: */ + 0, /* U+010cd2: */ + 0, /* U+010cd3: */ + 0, /* U+010cd4: */ + 0, /* U+010cd5: */ + 0, /* U+010cd6: */ + 0, /* U+010cd7: */ + 0, /* U+010cd8: */ + 0, /* U+010cd9: */ + 0, /* U+010cda: */ + 0, /* U+010cdb: */ + 0, /* U+010cdc: */ + 0, /* U+010cdd: */ + 0, /* U+010cde: */ + 0, /* U+010cdf: */ + 0, /* U+010ce0: */ + 0, /* U+010ce1: */ + 0, /* U+010ce2: */ + 0, /* U+010ce3: */ + 0, /* U+010ce4: */ + 0, /* U+010ce5: */ + 0, /* U+010ce6: */ + 0, /* U+010ce7: */ + 0, /* U+010ce8: */ + 0, /* U+010ce9: */ + 0, /* U+010cea: */ + 0, /* U+010ceb: */ + 0, /* U+010cec: */ + 0, /* U+010ced: */ + 0, /* U+010cee: */ + 0, /* U+010cef: */ + 0, /* U+010cf0: */ + 0, /* U+010cf1: */ + 0, /* U+010cf2: */ + 0, /* U+010cf3: */ + 0, /* U+010cf4: */ + 0, /* U+010cf5: */ + 0, /* U+010cf6: */ + 0, /* U+010cf7: */ + 0, /* U+010cf8: */ + 0, /* U+010cf9: */ + 0, /* U+010cfa: */ + 0, /* U+010cfb: */ + 0, /* U+010cfc: */ + 0, /* U+010cfd: */ + 0, /* U+010cfe: */ + 0, /* U+010cff: */ + 0, /* U+010d00: */ + 0, /* U+010d01: */ + 0, /* U+010d02: */ + 0, /* U+010d03: */ + 0, /* U+010d04: */ + 0, /* U+010d05: */ + 0, /* U+010d06: */ + 0, /* U+010d07: */ + 0, /* U+010d08: */ + 0, /* U+010d09: */ + 0, /* U+010d0a: */ + 0, /* U+010d0b: */ + 0, /* U+010d0c: */ + 0, /* U+010d0d: */ + 0, /* U+010d0e: */ + 0, /* U+010d0f: */ + 0, /* U+010d10: */ + 0, /* U+010d11: */ + 0, /* U+010d12: */ + 0, /* U+010d13: */ + 0, /* U+010d14: */ + 0, /* U+010d15: */ + 0, /* U+010d16: */ + 0, /* U+010d17: */ + 0, /* U+010d18: */ + 0, /* U+010d19: */ + 0, /* U+010d1a: */ + 0, /* U+010d1b: */ + 0, /* U+010d1c: */ + 0, /* U+010d1d: */ + 0, /* U+010d1e: */ + 0, /* U+010d1f: */ + 0, /* U+010d20: */ + 0, /* U+010d21: */ + 0, /* U+010d22: */ + 0, /* U+010d23: */ + 0, /* U+010d24: */ + 0, /* U+010d25: */ + 0, /* U+010d26: */ + 0, /* U+010d27: */ + 0, /* U+010d28: */ + 0, /* U+010d29: */ + 0, /* U+010d2a: */ + 0, /* U+010d2b: */ + 0, /* U+010d2c: */ + 0, /* U+010d2d: */ + 0, /* U+010d2e: */ + 0, /* U+010d2f: */ + 0, /* U+010d30: */ + 0, /* U+010d31: */ + 0, /* U+010d32: */ + 0, /* U+010d33: */ + 0, /* U+010d34: */ + 0, /* U+010d35: */ + 0, /* U+010d36: */ + 0, /* U+010d37: */ + 0, /* U+010d38: */ + 0, /* U+010d39: */ + 0, /* U+010d3a: */ + 0, /* U+010d3b: */ + 0, /* U+010d3c: */ + 0, /* U+010d3d: */ + 0, /* U+010d3e: */ + 0, /* U+010d3f: */ + 0, /* U+010d40: */ + 0, /* U+010d41: */ + 0, /* U+010d42: */ + 0, /* U+010d43: */ + 0, /* U+010d44: */ + 0, /* U+010d45: */ + 0, /* U+010d46: */ + 0, /* U+010d47: */ + 0, /* U+010d48: */ + 0, /* U+010d49: */ + 0, /* U+010d4a: */ + 0, /* U+010d4b: */ + 0, /* U+010d4c: */ + 0, /* U+010d4d: */ + 0, /* U+010d4e: */ + 0, /* U+010d4f: */ + 0, /* U+010d50: */ + 0, /* U+010d51: */ + 0, /* U+010d52: */ + 0, /* U+010d53: */ + 0, /* U+010d54: */ + 0, /* U+010d55: */ + 0, /* U+010d56: */ + 0, /* U+010d57: */ + 0, /* U+010d58: */ + 0, /* U+010d59: */ + 0, /* U+010d5a: */ + 0, /* U+010d5b: */ + 0, /* U+010d5c: */ + 0, /* U+010d5d: */ + 0, /* U+010d5e: */ + 0, /* U+010d5f: */ + 0, /* U+010d60: */ + 0, /* U+010d61: */ + 0, /* U+010d62: */ + 0, /* U+010d63: */ + 0, /* U+010d64: */ + 0, /* U+010d65: */ + 0, /* U+010d66: */ + 0, /* U+010d67: */ + 0, /* U+010d68: */ + 0, /* U+010d69: */ + 0, /* U+010d6a: */ + 0, /* U+010d6b: */ + 0, /* U+010d6c: */ + 0, /* U+010d6d: */ + 0, /* U+010d6e: */ + 0, /* U+010d6f: */ + 0, /* U+010d70: */ + 0, /* U+010d71: */ + 0, /* U+010d72: */ + 0, /* U+010d73: */ + 0, /* U+010d74: */ + 0, /* U+010d75: */ + 0, /* U+010d76: */ + 0, /* U+010d77: */ + 0, /* U+010d78: */ + 0, /* U+010d79: */ + 0, /* U+010d7a: */ + 0, /* U+010d7b: */ + 0, /* U+010d7c: */ + 0, /* U+010d7d: */ + 0, /* U+010d7e: */ + 0, /* U+010d7f: */ + 0, /* U+010d80: */ + 0, /* U+010d81: */ + 0, /* U+010d82: */ + 0, /* U+010d83: */ + 0, /* U+010d84: */ + 0, /* U+010d85: */ + 0, /* U+010d86: */ + 0, /* U+010d87: */ + 0, /* U+010d88: */ + 0, /* U+010d89: */ + 0, /* U+010d8a: */ + 0, /* U+010d8b: */ + 0, /* U+010d8c: */ + 0, /* U+010d8d: */ + 0, /* U+010d8e: */ + 0, /* U+010d8f: */ + 0, /* U+010d90: */ + 0, /* U+010d91: */ + 0, /* U+010d92: */ + 0, /* U+010d93: */ + 0, /* U+010d94: */ + 0, /* U+010d95: */ + 0, /* U+010d96: */ + 0, /* U+010d97: */ + 0, /* U+010d98: */ + 0, /* U+010d99: */ + 0, /* U+010d9a: */ + 0, /* U+010d9b: */ + 0, /* U+010d9c: */ + 0, /* U+010d9d: */ + 0, /* U+010d9e: */ + 0, /* U+010d9f: */ + 0, /* U+010da0: */ + 0, /* U+010da1: */ + 0, /* U+010da2: */ + 0, /* U+010da3: */ + 0, /* U+010da4: */ + 0, /* U+010da5: */ + 0, /* U+010da6: */ + 0, /* U+010da7: */ + 0, /* U+010da8: */ + 0, /* U+010da9: */ + 0, /* U+010daa: */ + 0, /* U+010dab: */ + 0, /* U+010dac: */ + 0, /* U+010dad: */ + 0, /* U+010dae: */ + 0, /* U+010daf: */ + 0, /* U+010db0: */ + 0, /* U+010db1: */ + 0, /* U+010db2: */ + 0, /* U+010db3: */ + 0, /* U+010db4: */ + 0, /* U+010db5: */ + 0, /* U+010db6: */ + 0, /* U+010db7: */ + 0, /* U+010db8: */ + 0, /* U+010db9: */ + 0, /* U+010dba: */ + 0, /* U+010dbb: */ + 0, /* U+010dbc: */ + 0, /* U+010dbd: */ + 0, /* U+010dbe: */ + 0, /* U+010dbf: */ + 0, /* U+010dc0: */ + 0, /* U+010dc1: */ + 0, /* U+010dc2: */ + 0, /* U+010dc3: */ + 0, /* U+010dc4: */ + 0, /* U+010dc5: */ + 0, /* U+010dc6: */ + 0, /* U+010dc7: */ + 0, /* U+010dc8: */ + 0, /* U+010dc9: */ + 0, /* U+010dca: */ + 0, /* U+010dcb: */ + 0, /* U+010dcc: */ + 0, /* U+010dcd: */ + 0, /* U+010dce: */ + 0, /* U+010dcf: */ + 0, /* U+010dd0: */ + 0, /* U+010dd1: */ + 0, /* U+010dd2: */ + 0, /* U+010dd3: */ + 0, /* U+010dd4: */ + 0, /* U+010dd5: */ + 0, /* U+010dd6: */ + 0, /* U+010dd7: */ + 0, /* U+010dd8: */ + 0, /* U+010dd9: */ + 0, /* U+010dda: */ + 0, /* U+010ddb: */ + 0, /* U+010ddc: */ + 0, /* U+010ddd: */ + 0, /* U+010dde: */ + 0, /* U+010ddf: */ + 0, /* U+010de0: */ + 0, /* U+010de1: */ + 0, /* U+010de2: */ + 0, /* U+010de3: */ + 0, /* U+010de4: */ + 0, /* U+010de5: */ + 0, /* U+010de6: */ + 0, /* U+010de7: */ + 0, /* U+010de8: */ + 0, /* U+010de9: */ + 0, /* U+010dea: */ + 0, /* U+010deb: */ + 0, /* U+010dec: */ + 0, /* U+010ded: */ + 0, /* U+010dee: */ + 0, /* U+010def: */ + 0, /* U+010df0: */ + 0, /* U+010df1: */ + 0, /* U+010df2: */ + 0, /* U+010df3: */ + 0, /* U+010df4: */ + 0, /* U+010df5: */ + 0, /* U+010df6: */ + 0, /* U+010df7: */ + 0, /* U+010df8: */ + 0, /* U+010df9: */ + 0, /* U+010dfa: */ + 0, /* U+010dfb: */ + 0, /* U+010dfc: */ + 0, /* U+010dfd: */ + 0, /* U+010dfe: */ + 0, /* U+010dff: */ + 0, /* U+010e00: */ + 0, /* U+010e01: */ + 0, /* U+010e02: */ + 0, /* U+010e03: */ + 0, /* U+010e04: */ + 0, /* U+010e05: */ + 0, /* U+010e06: */ + 0, /* U+010e07: */ + 0, /* U+010e08: */ + 0, /* U+010e09: */ + 0, /* U+010e0a: */ + 0, /* U+010e0b: */ + 0, /* U+010e0c: */ + 0, /* U+010e0d: */ + 0, /* U+010e0e: */ + 0, /* U+010e0f: */ + 0, /* U+010e10: */ + 0, /* U+010e11: */ + 0, /* U+010e12: */ + 0, /* U+010e13: */ + 0, /* U+010e14: */ + 0, /* U+010e15: */ + 0, /* U+010e16: */ + 0, /* U+010e17: */ + 0, /* U+010e18: */ + 0, /* U+010e19: */ + 0, /* U+010e1a: */ + 0, /* U+010e1b: */ + 0, /* U+010e1c: */ + 0, /* U+010e1d: */ + 0, /* U+010e1e: */ + 0, /* U+010e1f: */ + 0, /* U+010e20: */ + 0, /* U+010e21: */ + 0, /* U+010e22: */ + 0, /* U+010e23: */ + 0, /* U+010e24: */ + 0, /* U+010e25: */ + 0, /* U+010e26: */ + 0, /* U+010e27: */ + 0, /* U+010e28: */ + 0, /* U+010e29: */ + 0, /* U+010e2a: */ + 0, /* U+010e2b: */ + 0, /* U+010e2c: */ + 0, /* U+010e2d: */ + 0, /* U+010e2e: */ + 0, /* U+010e2f: */ + 0, /* U+010e30: */ + 0, /* U+010e31: */ + 0, /* U+010e32: */ + 0, /* U+010e33: */ + 0, /* U+010e34: */ + 0, /* U+010e35: */ + 0, /* U+010e36: */ + 0, /* U+010e37: */ + 0, /* U+010e38: */ + 0, /* U+010e39: */ + 0, /* U+010e3a: */ + 0, /* U+010e3b: */ + 0, /* U+010e3c: */ + 0, /* U+010e3d: */ + 0, /* U+010e3e: */ + 0, /* U+010e3f: */ + 0, /* U+010e40: */ + 0, /* U+010e41: */ + 0, /* U+010e42: */ + 0, /* U+010e43: */ + 0, /* U+010e44: */ + 0, /* U+010e45: */ + 0, /* U+010e46: */ + 0, /* U+010e47: */ + 0, /* U+010e48: */ + 0, /* U+010e49: */ + 0, /* U+010e4a: */ + 0, /* U+010e4b: */ + 0, /* U+010e4c: */ + 0, /* U+010e4d: */ + 0, /* U+010e4e: */ + 0, /* U+010e4f: */ + 0, /* U+010e50: */ + 0, /* U+010e51: */ + 0, /* U+010e52: */ + 0, /* U+010e53: */ + 0, /* U+010e54: */ + 0, /* U+010e55: */ + 0, /* U+010e56: */ + 0, /* U+010e57: */ + 0, /* U+010e58: */ + 0, /* U+010e59: */ + 0, /* U+010e5a: */ + 0, /* U+010e5b: */ + 0, /* U+010e5c: */ + 0, /* U+010e5d: */ + 0, /* U+010e5e: */ + 0, /* U+010e5f: */ + 0, /* U+010e60: RUMI DIGIT ONE*/ + 0, /* U+010e61: RUMI DIGIT TWO*/ + 0, /* U+010e62: RUMI DIGIT THREE*/ + 0, /* U+010e63: RUMI DIGIT FOUR*/ + 0, /* U+010e64: RUMI DIGIT FIVE*/ + 0, /* U+010e65: RUMI DIGIT SIX*/ + 0, /* U+010e66: RUMI DIGIT SEVEN*/ + 0, /* U+010e67: RUMI DIGIT EIGHT*/ + 0, /* U+010e68: RUMI DIGIT NINE*/ + 0, /* U+010e69: RUMI NUMBER TEN*/ + 0, /* U+010e6a: RUMI NUMBER TWENTY*/ + 0, /* U+010e6b: RUMI NUMBER THIRTY*/ + 0, /* U+010e6c: RUMI NUMBER FORTY*/ + 0, /* U+010e6d: RUMI NUMBER FIFTY*/ + 0, /* U+010e6e: RUMI NUMBER SIXTY*/ + 0, /* U+010e6f: RUMI NUMBER SEVENTY*/ + 0, /* U+010e70: RUMI NUMBER EIGHTY*/ + 0, /* U+010e71: RUMI NUMBER NINETY*/ + 0, /* U+010e72: RUMI NUMBER ONE HUNDRED*/ + 0, /* U+010e73: RUMI NUMBER TWO HUNDRED*/ + 0, /* U+010e74: RUMI NUMBER THREE HUNDRED*/ + 0, /* U+010e75: RUMI NUMBER FOUR HUNDRED*/ + 0, /* U+010e76: RUMI NUMBER FIVE HUNDRED*/ + 0, /* U+010e77: RUMI NUMBER SIX HUNDRED*/ + 0, /* U+010e78: RUMI NUMBER SEVEN HUNDRED*/ + 0, /* U+010e79: RUMI NUMBER EIGHT HUNDRED*/ + 0, /* U+010e7a: RUMI NUMBER NINE HUNDRED*/ + 0, /* U+010e7b: RUMI FRACTION ONE HALF*/ + 0, /* U+010e7c: RUMI FRACTION ONE QUARTER*/ + 0, /* U+010e7d: RUMI FRACTION ONE THIRD*/ + 0, /* U+010e7e: RUMI FRACTION TWO THIRDS*/ + 0, /* U+010e7f: */ + 0, /* U+010e80: */ + 0, /* U+010e81: */ + 0, /* U+010e82: */ + 0, /* U+010e83: */ + 0, /* U+010e84: */ + 0, /* U+010e85: */ + 0, /* U+010e86: */ + 0, /* U+010e87: */ + 0, /* U+010e88: */ + 0, /* U+010e89: */ + 0, /* U+010e8a: */ + 0, /* U+010e8b: */ + 0, /* U+010e8c: */ + 0, /* U+010e8d: */ + 0, /* U+010e8e: */ + 0, /* U+010e8f: */ + 0, /* U+010e90: */ + 0, /* U+010e91: */ + 0, /* U+010e92: */ + 0, /* U+010e93: */ + 0, /* U+010e94: */ + 0, /* U+010e95: */ + 0, /* U+010e96: */ + 0, /* U+010e97: */ + 0, /* U+010e98: */ + 0, /* U+010e99: */ + 0, /* U+010e9a: */ + 0, /* U+010e9b: */ + 0, /* U+010e9c: */ + 0, /* U+010e9d: */ + 0, /* U+010e9e: */ + 0, /* U+010e9f: */ + 0, /* U+010ea0: */ + 0, /* U+010ea1: */ + 0, /* U+010ea2: */ + 0, /* U+010ea3: */ + 0, /* U+010ea4: */ + 0, /* U+010ea5: */ + 0, /* U+010ea6: */ + 0, /* U+010ea7: */ + 0, /* U+010ea8: */ + 0, /* U+010ea9: */ + 0, /* U+010eaa: */ + 0, /* U+010eab: */ + 0, /* U+010eac: */ + 0, /* U+010ead: */ + 0, /* U+010eae: */ + 0, /* U+010eaf: */ + 0, /* U+010eb0: */ + 0, /* U+010eb1: */ + 0, /* U+010eb2: */ + 0, /* U+010eb3: */ + 0, /* U+010eb4: */ + 0, /* U+010eb5: */ + 0, /* U+010eb6: */ + 0, /* U+010eb7: */ + 0, /* U+010eb8: */ + 0, /* U+010eb9: */ + 0, /* U+010eba: */ + 0, /* U+010ebb: */ + 0, /* U+010ebc: */ + 0, /* U+010ebd: */ + 0, /* U+010ebe: */ + 0, /* U+010ebf: */ + 0, /* U+010ec0: */ + 0, /* U+010ec1: */ + 0, /* U+010ec2: */ + 0, /* U+010ec3: */ + 0, /* U+010ec4: */ + 0, /* U+010ec5: */ + 0, /* U+010ec6: */ + 0, /* U+010ec7: */ + 0, /* U+010ec8: */ + 0, /* U+010ec9: */ + 0, /* U+010eca: */ + 0, /* U+010ecb: */ + 0, /* U+010ecc: */ + 0, /* U+010ecd: */ + 0, /* U+010ece: */ + 0, /* U+010ecf: */ + 0, /* U+010ed0: */ + 0, /* U+010ed1: */ + 0, /* U+010ed2: */ + 0, /* U+010ed3: */ + 0, /* U+010ed4: */ + 0, /* U+010ed5: */ + 0, /* U+010ed6: */ + 0, /* U+010ed7: */ + 0, /* U+010ed8: */ + 0, /* U+010ed9: */ + 0, /* U+010eda: */ + 0, /* U+010edb: */ + 0, /* U+010edc: */ + 0, /* U+010edd: */ + 0, /* U+010ede: */ + 0, /* U+010edf: */ + 0, /* U+010ee0: */ + 0, /* U+010ee1: */ + 0, /* U+010ee2: */ + 0, /* U+010ee3: */ + 0, /* U+010ee4: */ + 0, /* U+010ee5: */ + 0, /* U+010ee6: */ + 0, /* U+010ee7: */ + 0, /* U+010ee8: */ + 0, /* U+010ee9: */ + 0, /* U+010eea: */ + 0, /* U+010eeb: */ + 0, /* U+010eec: */ + 0, /* U+010eed: */ + 0, /* U+010eee: */ + 0, /* U+010eef: */ + 0, /* U+010ef0: */ + 0, /* U+010ef1: */ + 0, /* U+010ef2: */ + 0, /* U+010ef3: */ + 0, /* U+010ef4: */ + 0, /* U+010ef5: */ + 0, /* U+010ef6: */ + 0, /* U+010ef7: */ + 0, /* U+010ef8: */ + 0, /* U+010ef9: */ + 0, /* U+010efa: */ + 0, /* U+010efb: */ + 0, /* U+010efc: */ + 0, /* U+010efd: */ + 0, /* U+010efe: */ + 0, /* U+010eff: */ + 0, /* U+010f00: */ + 0, /* U+010f01: */ + 0, /* U+010f02: */ + 0, /* U+010f03: */ + 0, /* U+010f04: */ + 0, /* U+010f05: */ + 0, /* U+010f06: */ + 0, /* U+010f07: */ + 0, /* U+010f08: */ + 0, /* U+010f09: */ + 0, /* U+010f0a: */ + 0, /* U+010f0b: */ + 0, /* U+010f0c: */ + 0, /* U+010f0d: */ + 0, /* U+010f0e: */ + 0, /* U+010f0f: */ + 0, /* U+010f10: */ + 0, /* U+010f11: */ + 0, /* U+010f12: */ + 0, /* U+010f13: */ + 0, /* U+010f14: */ + 0, /* U+010f15: */ + 0, /* U+010f16: */ + 0, /* U+010f17: */ + 0, /* U+010f18: */ + 0, /* U+010f19: */ + 0, /* U+010f1a: */ + 0, /* U+010f1b: */ + 0, /* U+010f1c: */ + 0, /* U+010f1d: */ + 0, /* U+010f1e: */ + 0, /* U+010f1f: */ + 0, /* U+010f20: */ + 0, /* U+010f21: */ + 0, /* U+010f22: */ + 0, /* U+010f23: */ + 0, /* U+010f24: */ + 0, /* U+010f25: */ + 0, /* U+010f26: */ + 0, /* U+010f27: */ + 0, /* U+010f28: */ + 0, /* U+010f29: */ + 0, /* U+010f2a: */ + 0, /* U+010f2b: */ + 0, /* U+010f2c: */ + 0, /* U+010f2d: */ + 0, /* U+010f2e: */ + 0, /* U+010f2f: */ + 0, /* U+010f30: */ + 0, /* U+010f31: */ + 0, /* U+010f32: */ + 0, /* U+010f33: */ + 0, /* U+010f34: */ + 0, /* U+010f35: */ + 0, /* U+010f36: */ + 0, /* U+010f37: */ + 0, /* U+010f38: */ + 0, /* U+010f39: */ + 0, /* U+010f3a: */ + 0, /* U+010f3b: */ + 0, /* U+010f3c: */ + 0, /* U+010f3d: */ + 0, /* U+010f3e: */ + 0, /* U+010f3f: */ + 0, /* U+010f40: */ + 0, /* U+010f41: */ + 0, /* U+010f42: */ + 0, /* U+010f43: */ + 0, /* U+010f44: */ + 0, /* U+010f45: */ + 0, /* U+010f46: */ + 0, /* U+010f47: */ + 0, /* U+010f48: */ + 0, /* U+010f49: */ + 0, /* U+010f4a: */ + 0, /* U+010f4b: */ + 0, /* U+010f4c: */ + 0, /* U+010f4d: */ + 0, /* U+010f4e: */ + 0, /* U+010f4f: */ + 0, /* U+010f50: */ + 0, /* U+010f51: */ + 0, /* U+010f52: */ + 0, /* U+010f53: */ + 0, /* U+010f54: */ + 0, /* U+010f55: */ + 0, /* U+010f56: */ + 0, /* U+010f57: */ + 0, /* U+010f58: */ + 0, /* U+010f59: */ + 0, /* U+010f5a: */ + 0, /* U+010f5b: */ + 0, /* U+010f5c: */ + 0, /* U+010f5d: */ + 0, /* U+010f5e: */ + 0, /* U+010f5f: */ + 0, /* U+010f60: */ + 0, /* U+010f61: */ + 0, /* U+010f62: */ + 0, /* U+010f63: */ + 0, /* U+010f64: */ + 0, /* U+010f65: */ + 0, /* U+010f66: */ + 0, /* U+010f67: */ + 0, /* U+010f68: */ + 0, /* U+010f69: */ + 0, /* U+010f6a: */ + 0, /* U+010f6b: */ + 0, /* U+010f6c: */ + 0, /* U+010f6d: */ + 0, /* U+010f6e: */ + 0, /* U+010f6f: */ + 0, /* U+010f70: */ + 0, /* U+010f71: */ + 0, /* U+010f72: */ + 0, /* U+010f73: */ + 0, /* U+010f74: */ + 0, /* U+010f75: */ + 0, /* U+010f76: */ + 0, /* U+010f77: */ + 0, /* U+010f78: */ + 0, /* U+010f79: */ + 0, /* U+010f7a: */ + 0, /* U+010f7b: */ + 0, /* U+010f7c: */ + 0, /* U+010f7d: */ + 0, /* U+010f7e: */ + 0, /* U+010f7f: */ + 0, /* U+010f80: */ + 0, /* U+010f81: */ + 0, /* U+010f82: */ + 0, /* U+010f83: */ + 0, /* U+010f84: */ + 0, /* U+010f85: */ + 0, /* U+010f86: */ + 0, /* U+010f87: */ + 0, /* U+010f88: */ + 0, /* U+010f89: */ + 0, /* U+010f8a: */ + 0, /* U+010f8b: */ + 0, /* U+010f8c: */ + 0, /* U+010f8d: */ + 0, /* U+010f8e: */ + 0, /* U+010f8f: */ + 0, /* U+010f90: */ + 0, /* U+010f91: */ + 0, /* U+010f92: */ + 0, /* U+010f93: */ + 0, /* U+010f94: */ + 0, /* U+010f95: */ + 0, /* U+010f96: */ + 0, /* U+010f97: */ + 0, /* U+010f98: */ + 0, /* U+010f99: */ + 0, /* U+010f9a: */ + 0, /* U+010f9b: */ + 0, /* U+010f9c: */ + 0, /* U+010f9d: */ + 0, /* U+010f9e: */ + 0, /* U+010f9f: */ + 0, /* U+010fa0: */ + 0, /* U+010fa1: */ + 0, /* U+010fa2: */ + 0, /* U+010fa3: */ + 0, /* U+010fa4: */ + 0, /* U+010fa5: */ + 0, /* U+010fa6: */ + 0, /* U+010fa7: */ + 0, /* U+010fa8: */ + 0, /* U+010fa9: */ + 0, /* U+010faa: */ + 0, /* U+010fab: */ + 0, /* U+010fac: */ + 0, /* U+010fad: */ + 0, /* U+010fae: */ + 0, /* U+010faf: */ + 0, /* U+010fb0: */ + 0, /* U+010fb1: */ + 0, /* U+010fb2: */ + 0, /* U+010fb3: */ + 0, /* U+010fb4: */ + 0, /* U+010fb5: */ + 0, /* U+010fb6: */ + 0, /* U+010fb7: */ + 0, /* U+010fb8: */ + 0, /* U+010fb9: */ + 0, /* U+010fba: */ + 0, /* U+010fbb: */ + 0, /* U+010fbc: */ + 0, /* U+010fbd: */ + 0, /* U+010fbe: */ + 0, /* U+010fbf: */ + 0, /* U+010fc0: */ + 0, /* U+010fc1: */ + 0, /* U+010fc2: */ + 0, /* U+010fc3: */ + 0, /* U+010fc4: */ + 0, /* U+010fc5: */ + 0, /* U+010fc6: */ + 0, /* U+010fc7: */ + 0, /* U+010fc8: */ + 0, /* U+010fc9: */ + 0, /* U+010fca: */ + 0, /* U+010fcb: */ + 0, /* U+010fcc: */ + 0, /* U+010fcd: */ + 0, /* U+010fce: */ + 0, /* U+010fcf: */ + 0, /* U+010fd0: */ + 0, /* U+010fd1: */ + 0, /* U+010fd2: */ + 0, /* U+010fd3: */ + 0, /* U+010fd4: */ + 0, /* U+010fd5: */ + 0, /* U+010fd6: */ + 0, /* U+010fd7: */ + 0, /* U+010fd8: */ + 0, /* U+010fd9: */ + 0, /* U+010fda: */ + 0, /* U+010fdb: */ + 0, /* U+010fdc: */ + 0, /* U+010fdd: */ + 0, /* U+010fde: */ + 0, /* U+010fdf: */ + 0, /* U+010fe0: */ + 0, /* U+010fe1: */ + 0, /* U+010fe2: */ + 0, /* U+010fe3: */ + 0, /* U+010fe4: */ + 0, /* U+010fe5: */ + 0, /* U+010fe6: */ + 0, /* U+010fe7: */ + 0, /* U+010fe8: */ + 0, /* U+010fe9: */ + 0, /* U+010fea: */ + 0, /* U+010feb: */ + 0, /* U+010fec: */ + 0, /* U+010fed: */ + 0, /* U+010fee: */ + 0, /* U+010fef: */ + 0, /* U+010ff0: */ + 0, /* U+010ff1: */ + 0, /* U+010ff2: */ + 0, /* U+010ff3: */ + 0, /* U+010ff4: */ + 0, /* U+010ff5: */ + 0, /* U+010ff6: */ + 0, /* U+010ff7: */ + 0, /* U+010ff8: */ + 0, /* U+010ff9: */ + 0, /* U+010ffa: */ + 0, /* U+010ffb: */ + 0, /* U+010ffc: */ + 0, /* U+010ffd: */ + 0, /* U+010ffe: */ + 0, /* U+010fff: */ + RTUNI_ALPHA, /* U+011000: BRAHMI SIGN CANDRABINDU*/ + RTUNI_ALPHA, /* U+011001: BRAHMI SIGN ANUSVARA*/ + RTUNI_ALPHA, /* U+011002: BRAHMI SIGN VISARGA*/ + RTUNI_ALPHA, /* U+011003: BRAHMI SIGN JIHVAMULIYA*/ + RTUNI_ALPHA, /* U+011004: BRAHMI SIGN UPADHMANIYA*/ + RTUNI_ALPHA, /* U+011005: BRAHMI LETTER A*/ + RTUNI_ALPHA, /* U+011006: BRAHMI LETTER AA*/ + RTUNI_ALPHA, /* U+011007: BRAHMI LETTER I*/ + RTUNI_ALPHA, /* U+011008: BRAHMI LETTER II*/ + RTUNI_ALPHA, /* U+011009: BRAHMI LETTER U*/ + RTUNI_ALPHA, /* U+01100a: BRAHMI LETTER UU*/ + RTUNI_ALPHA, /* U+01100b: BRAHMI LETTER VOCALIC R*/ + RTUNI_ALPHA, /* U+01100c: BRAHMI LETTER VOCALIC RR*/ + RTUNI_ALPHA, /* U+01100d: BRAHMI LETTER VOCALIC L*/ + RTUNI_ALPHA, /* U+01100e: BRAHMI LETTER VOCALIC LL*/ + RTUNI_ALPHA, /* U+01100f: BRAHMI LETTER E*/ + RTUNI_ALPHA, /* U+011010: BRAHMI LETTER AI*/ + RTUNI_ALPHA, /* U+011011: BRAHMI LETTER O*/ + RTUNI_ALPHA, /* U+011012: BRAHMI LETTER AU*/ + RTUNI_ALPHA, /* U+011013: BRAHMI LETTER KA*/ + RTUNI_ALPHA, /* U+011014: BRAHMI LETTER KHA*/ + RTUNI_ALPHA, /* U+011015: BRAHMI LETTER GA*/ + RTUNI_ALPHA, /* U+011016: BRAHMI LETTER GHA*/ + RTUNI_ALPHA, /* U+011017: BRAHMI LETTER NGA*/ + RTUNI_ALPHA, /* U+011018: BRAHMI LETTER CA*/ + RTUNI_ALPHA, /* U+011019: BRAHMI LETTER CHA*/ + RTUNI_ALPHA, /* U+01101a: BRAHMI LETTER JA*/ + RTUNI_ALPHA, /* U+01101b: BRAHMI LETTER JHA*/ + RTUNI_ALPHA, /* U+01101c: BRAHMI LETTER NYA*/ + RTUNI_ALPHA, /* U+01101d: BRAHMI LETTER TTA*/ + RTUNI_ALPHA, /* U+01101e: BRAHMI LETTER TTHA*/ + RTUNI_ALPHA, /* U+01101f: BRAHMI LETTER DDA*/ + RTUNI_ALPHA, /* U+011020: BRAHMI LETTER DDHA*/ + RTUNI_ALPHA, /* U+011021: BRAHMI LETTER NNA*/ + RTUNI_ALPHA, /* U+011022: BRAHMI LETTER TA*/ + RTUNI_ALPHA, /* U+011023: BRAHMI LETTER THA*/ + RTUNI_ALPHA, /* U+011024: BRAHMI LETTER DA*/ + RTUNI_ALPHA, /* U+011025: BRAHMI LETTER DHA*/ + RTUNI_ALPHA, /* U+011026: BRAHMI LETTER NA*/ + RTUNI_ALPHA, /* U+011027: BRAHMI LETTER PA*/ + RTUNI_ALPHA, /* U+011028: BRAHMI LETTER PHA*/ + RTUNI_ALPHA, /* U+011029: BRAHMI LETTER BA*/ + RTUNI_ALPHA, /* U+01102a: BRAHMI LETTER BHA*/ + RTUNI_ALPHA, /* U+01102b: BRAHMI LETTER MA*/ + RTUNI_ALPHA, /* U+01102c: BRAHMI LETTER YA*/ + RTUNI_ALPHA, /* U+01102d: BRAHMI LETTER RA*/ + RTUNI_ALPHA, /* U+01102e: BRAHMI LETTER LA*/ + RTUNI_ALPHA, /* U+01102f: BRAHMI LETTER VA*/ + RTUNI_ALPHA, /* U+011030: BRAHMI LETTER SHA*/ + RTUNI_ALPHA, /* U+011031: BRAHMI LETTER SSA*/ + RTUNI_ALPHA, /* U+011032: BRAHMI LETTER SA*/ + RTUNI_ALPHA, /* U+011033: BRAHMI LETTER HA*/ + RTUNI_ALPHA, /* U+011034: BRAHMI LETTER LLA*/ + RTUNI_ALPHA, /* U+011035: BRAHMI LETTER OLD TAMIL LLLA*/ + RTUNI_ALPHA, /* U+011036: BRAHMI LETTER OLD TAMIL RRA*/ + RTUNI_ALPHA, /* U+011037: BRAHMI LETTER OLD TAMIL NNNA*/ + RTUNI_ALPHA, /* U+011038: BRAHMI VOWEL SIGN AA*/ + RTUNI_ALPHA, /* U+011039: BRAHMI VOWEL SIGN BHATTIPROLU AA*/ + RTUNI_ALPHA, /* U+01103a: BRAHMI VOWEL SIGN I*/ + RTUNI_ALPHA, /* U+01103b: BRAHMI VOWEL SIGN II*/ + RTUNI_ALPHA, /* U+01103c: BRAHMI VOWEL SIGN U*/ + RTUNI_ALPHA, /* U+01103d: BRAHMI VOWEL SIGN UU*/ + RTUNI_ALPHA, /* U+01103e: BRAHMI VOWEL SIGN VOCALIC R*/ + RTUNI_ALPHA, /* U+01103f: BRAHMI VOWEL SIGN VOCALIC RR*/ + RTUNI_ALPHA, /* U+011040: BRAHMI VOWEL SIGN VOCALIC L*/ + RTUNI_ALPHA, /* U+011041: BRAHMI VOWEL SIGN VOCALIC LL*/ + RTUNI_ALPHA, /* U+011042: BRAHMI VOWEL SIGN E*/ + RTUNI_ALPHA, /* U+011043: BRAHMI VOWEL SIGN AI*/ + RTUNI_ALPHA, /* U+011044: BRAHMI VOWEL SIGN O*/ + RTUNI_ALPHA, /* U+011045: BRAHMI VOWEL SIGN AU*/ + 0, /* U+011046: BRAHMI VIRAMA*/ + 0, /* U+011047: BRAHMI DANDA*/ + 0, /* U+011048: BRAHMI DOUBLE DANDA*/ + 0, /* U+011049: BRAHMI PUNCTUATION DOT*/ + 0, /* U+01104a: BRAHMI PUNCTUATION DOUBLE DOT*/ + 0, /* U+01104b: BRAHMI PUNCTUATION LINE*/ + 0, /* U+01104c: BRAHMI PUNCTUATION CRESCENT BAR*/ + 0, /* U+01104d: BRAHMI PUNCTUATION LOTUS*/ + 0, /* U+01104e: */ + 0, /* U+01104f: */ + 0, /* U+011050: */ + 0, /* U+011051: */ + 0, /* U+011052: BRAHMI NUMBER ONE*/ + 0, /* U+011053: BRAHMI NUMBER TWO*/ + 0, /* U+011054: BRAHMI NUMBER THREE*/ + 0, /* U+011055: BRAHMI NUMBER FOUR*/ + 0, /* U+011056: BRAHMI NUMBER FIVE*/ + 0, /* U+011057: BRAHMI NUMBER SIX*/ + 0, /* U+011058: BRAHMI NUMBER SEVEN*/ + 0, /* U+011059: BRAHMI NUMBER EIGHT*/ + 0, /* U+01105a: BRAHMI NUMBER NINE*/ + 0, /* U+01105b: BRAHMI NUMBER TEN*/ + 0, /* U+01105c: BRAHMI NUMBER TWENTY*/ + 0, /* U+01105d: BRAHMI NUMBER THIRTY*/ + 0, /* U+01105e: BRAHMI NUMBER FORTY*/ + 0, /* U+01105f: BRAHMI NUMBER FIFTY*/ + 0, /* U+011060: BRAHMI NUMBER SIXTY*/ + 0, /* U+011061: BRAHMI NUMBER SEVENTY*/ + 0, /* U+011062: BRAHMI NUMBER EIGHTY*/ + 0, /* U+011063: BRAHMI NUMBER NINETY*/ + 0, /* U+011064: BRAHMI NUMBER ONE HUNDRED*/ + 0, /* U+011065: BRAHMI NUMBER ONE THOUSAND*/ + RTUNI_DDIGIT, /* U+011066: BRAHMI DIGIT ZERO*/ + RTUNI_DDIGIT, /* U+011067: BRAHMI DIGIT ONE*/ + RTUNI_DDIGIT, /* U+011068: BRAHMI DIGIT TWO*/ + RTUNI_DDIGIT, /* U+011069: BRAHMI DIGIT THREE*/ + RTUNI_DDIGIT, /* U+01106a: BRAHMI DIGIT FOUR*/ + RTUNI_DDIGIT, /* U+01106b: BRAHMI DIGIT FIVE*/ + RTUNI_DDIGIT, /* U+01106c: BRAHMI DIGIT SIX*/ + RTUNI_DDIGIT, /* U+01106d: BRAHMI DIGIT SEVEN*/ + RTUNI_DDIGIT, /* U+01106e: BRAHMI DIGIT EIGHT*/ + RTUNI_DDIGIT, /* U+01106f: BRAHMI DIGIT NINE*/ + 0, /* U+011070: */ + 0, /* U+011071: */ + 0, /* U+011072: */ + 0, /* U+011073: */ + 0, /* U+011074: */ + 0, /* U+011075: */ + 0, /* U+011076: */ + 0, /* U+011077: */ + 0, /* U+011078: */ + 0, /* U+011079: */ + 0, /* U+01107a: */ + 0, /* U+01107b: */ + 0, /* U+01107c: */ + 0, /* U+01107d: */ + 0, /* U+01107e: */ + 0, /* U+01107f: */ + 0, /* U+011080: KAITHI SIGN CANDRABINDU*/ + 0, /* U+011081: KAITHI SIGN ANUSVARA*/ + RTUNI_ALPHA, /* U+011082: KAITHI SIGN VISARGA*/ + RTUNI_ALPHA, /* U+011083: KAITHI LETTER A*/ + RTUNI_ALPHA, /* U+011084: KAITHI LETTER AA*/ + RTUNI_ALPHA, /* U+011085: KAITHI LETTER I*/ + RTUNI_ALPHA, /* U+011086: KAITHI LETTER II*/ + RTUNI_ALPHA, /* U+011087: KAITHI LETTER U*/ + RTUNI_ALPHA, /* U+011088: KAITHI LETTER UU*/ + RTUNI_ALPHA, /* U+011089: KAITHI LETTER E*/ + RTUNI_ALPHA, /* U+01108a: KAITHI LETTER AI*/ + RTUNI_ALPHA, /* U+01108b: KAITHI LETTER O*/ + RTUNI_ALPHA, /* U+01108c: KAITHI LETTER AU*/ + RTUNI_ALPHA, /* U+01108d: KAITHI LETTER KA*/ + RTUNI_ALPHA, /* U+01108e: KAITHI LETTER KHA*/ + RTUNI_ALPHA, /* U+01108f: KAITHI LETTER GA*/ + RTUNI_ALPHA, /* U+011090: KAITHI LETTER GHA*/ + RTUNI_ALPHA, /* U+011091: KAITHI LETTER NGA*/ + RTUNI_ALPHA, /* U+011092: KAITHI LETTER CA*/ + RTUNI_ALPHA, /* U+011093: KAITHI LETTER CHA*/ + RTUNI_ALPHA, /* U+011094: KAITHI LETTER JA*/ + RTUNI_ALPHA, /* U+011095: KAITHI LETTER JHA*/ + RTUNI_ALPHA, /* U+011096: KAITHI LETTER NYA*/ + RTUNI_ALPHA, /* U+011097: KAITHI LETTER TTA*/ + RTUNI_ALPHA, /* U+011098: KAITHI LETTER TTHA*/ + RTUNI_ALPHA, /* U+011099: KAITHI LETTER DDA*/ + RTUNI_ALPHA, /* U+01109a: KAITHI LETTER DDDHA*/ + RTUNI_ALPHA, /* U+01109b: KAITHI LETTER DDHA*/ + RTUNI_ALPHA, /* U+01109c: KAITHI LETTER RHA*/ + RTUNI_ALPHA, /* U+01109d: KAITHI LETTER NNA*/ + RTUNI_ALPHA, /* U+01109e: KAITHI LETTER TA*/ + RTUNI_ALPHA, /* U+01109f: KAITHI LETTER THA*/ + RTUNI_ALPHA, /* U+0110a0: KAITHI LETTER DA*/ + RTUNI_ALPHA, /* U+0110a1: KAITHI LETTER DHA*/ + RTUNI_ALPHA, /* U+0110a2: KAITHI LETTER NA*/ + RTUNI_ALPHA, /* U+0110a3: KAITHI LETTER PA*/ + RTUNI_ALPHA, /* U+0110a4: KAITHI LETTER PHA*/ + RTUNI_ALPHA, /* U+0110a5: KAITHI LETTER BA*/ + RTUNI_ALPHA, /* U+0110a6: KAITHI LETTER BHA*/ + RTUNI_ALPHA, /* U+0110a7: KAITHI LETTER MA*/ + RTUNI_ALPHA, /* U+0110a8: KAITHI LETTER YA*/ + RTUNI_ALPHA, /* U+0110a9: KAITHI LETTER RA*/ + RTUNI_ALPHA, /* U+0110aa: KAITHI LETTER LA*/ + RTUNI_ALPHA, /* U+0110ab: KAITHI LETTER VA*/ + RTUNI_ALPHA, /* U+0110ac: KAITHI LETTER SHA*/ + RTUNI_ALPHA, /* U+0110ad: KAITHI LETTER SSA*/ + RTUNI_ALPHA, /* U+0110ae: KAITHI LETTER SA*/ + RTUNI_ALPHA, /* U+0110af: KAITHI LETTER HA*/ + RTUNI_ALPHA, /* U+0110b0: KAITHI VOWEL SIGN AA*/ + RTUNI_ALPHA, /* U+0110b1: KAITHI VOWEL SIGN I*/ + RTUNI_ALPHA, /* U+0110b2: KAITHI VOWEL SIGN II*/ + RTUNI_ALPHA, /* U+0110b3: KAITHI VOWEL SIGN U*/ + RTUNI_ALPHA, /* U+0110b4: KAITHI VOWEL SIGN UU*/ + RTUNI_ALPHA, /* U+0110b5: KAITHI VOWEL SIGN E*/ + RTUNI_ALPHA, /* U+0110b6: KAITHI VOWEL SIGN AI*/ + RTUNI_ALPHA, /* U+0110b7: KAITHI VOWEL SIGN O*/ + RTUNI_ALPHA, /* U+0110b8: KAITHI VOWEL SIGN AU*/ + 0, /* U+0110b9: KAITHI SIGN VIRAMA*/ + 0, /* U+0110ba: KAITHI SIGN NUKTA*/ + 0, /* U+0110bb: KAITHI ABBREVIATION SIGN*/ + 0, /* U+0110bc: KAITHI ENUMERATION SIGN*/ + 0, /* U+0110bd: KAITHI NUMBER SIGN*/ + 0, /* U+0110be: KAITHI SECTION MARK*/ + 0, /* U+0110bf: KAITHI DOUBLE SECTION MARK*/ + 0, /* U+0110c0: KAITHI DANDA*/ + 0, /* U+0110c1: KAITHI DOUBLE DANDA*/ + 0, /* U+0110c2: */ + 0, /* U+0110c3: */ + 0, /* U+0110c4: */ + 0, /* U+0110c5: */ + 0, /* U+0110c6: */ + 0, /* U+0110c7: */ + 0, /* U+0110c8: */ + 0, /* U+0110c9: */ + 0, /* U+0110ca: */ + 0, /* U+0110cb: */ + 0, /* U+0110cc: */ + 0, /* U+0110cd: */ + 0, /* U+0110ce: */ + 0, /* U+0110cf: */ + RTUNI_ALPHA, /* U+0110d0: SORA SOMPENG LETTER SAH*/ + RTUNI_ALPHA, /* U+0110d1: SORA SOMPENG LETTER TAH*/ + RTUNI_ALPHA, /* U+0110d2: SORA SOMPENG LETTER BAH*/ + RTUNI_ALPHA, /* U+0110d3: SORA SOMPENG LETTER CAH*/ + RTUNI_ALPHA, /* U+0110d4: SORA SOMPENG LETTER DAH*/ + RTUNI_ALPHA, /* U+0110d5: SORA SOMPENG LETTER GAH*/ + RTUNI_ALPHA, /* U+0110d6: SORA SOMPENG LETTER MAH*/ + RTUNI_ALPHA, /* U+0110d7: SORA SOMPENG LETTER NGAH*/ + RTUNI_ALPHA, /* U+0110d8: SORA SOMPENG LETTER LAH*/ + RTUNI_ALPHA, /* U+0110d9: SORA SOMPENG LETTER NAH*/ + RTUNI_ALPHA, /* U+0110da: SORA SOMPENG LETTER VAH*/ + RTUNI_ALPHA, /* U+0110db: SORA SOMPENG LETTER PAH*/ + RTUNI_ALPHA, /* U+0110dc: SORA SOMPENG LETTER YAH*/ + RTUNI_ALPHA, /* U+0110dd: SORA SOMPENG LETTER RAH*/ + RTUNI_ALPHA, /* U+0110de: SORA SOMPENG LETTER HAH*/ + RTUNI_ALPHA, /* U+0110df: SORA SOMPENG LETTER KAH*/ + RTUNI_ALPHA, /* U+0110e0: SORA SOMPENG LETTER JAH*/ + RTUNI_ALPHA, /* U+0110e1: SORA SOMPENG LETTER NYAH*/ + RTUNI_ALPHA, /* U+0110e2: SORA SOMPENG LETTER AH*/ + RTUNI_ALPHA, /* U+0110e3: SORA SOMPENG LETTER EEH*/ + RTUNI_ALPHA, /* U+0110e4: SORA SOMPENG LETTER IH*/ + RTUNI_ALPHA, /* U+0110e5: SORA SOMPENG LETTER UH*/ + RTUNI_ALPHA, /* U+0110e6: SORA SOMPENG LETTER OH*/ + RTUNI_ALPHA, /* U+0110e7: SORA SOMPENG LETTER EH*/ + RTUNI_ALPHA, /* U+0110e8: SORA SOMPENG LETTER MAE*/ + 0, /* U+0110e9: */ + 0, /* U+0110ea: */ + 0, /* U+0110eb: */ + 0, /* U+0110ec: */ + 0, /* U+0110ed: */ + 0, /* U+0110ee: */ + 0, /* U+0110ef: */ + RTUNI_DDIGIT, /* U+0110f0: SORA SOMPENG DIGIT ZERO*/ + RTUNI_DDIGIT, /* U+0110f1: SORA SOMPENG DIGIT ONE*/ + RTUNI_DDIGIT, /* U+0110f2: SORA SOMPENG DIGIT TWO*/ + RTUNI_DDIGIT, /* U+0110f3: SORA SOMPENG DIGIT THREE*/ + RTUNI_DDIGIT, /* U+0110f4: SORA SOMPENG DIGIT FOUR*/ + RTUNI_DDIGIT, /* U+0110f5: SORA SOMPENG DIGIT FIVE*/ + RTUNI_DDIGIT, /* U+0110f6: SORA SOMPENG DIGIT SIX*/ + RTUNI_DDIGIT, /* U+0110f7: SORA SOMPENG DIGIT SEVEN*/ + RTUNI_DDIGIT, /* U+0110f8: SORA SOMPENG DIGIT EIGHT*/ + RTUNI_DDIGIT, /* U+0110f9: SORA SOMPENG DIGIT NINE*/ + 0, /* U+0110fa: */ + 0, /* U+0110fb: */ + 0, /* U+0110fc: */ + 0, /* U+0110fd: */ + 0, /* U+0110fe: */ + 0, /* U+0110ff: */ + RTUNI_ALPHA, /* U+011100: CHAKMA SIGN CANDRABINDU*/ + RTUNI_ALPHA, /* U+011101: CHAKMA SIGN ANUSVARA*/ + RTUNI_ALPHA, /* U+011102: CHAKMA SIGN VISARGA*/ + RTUNI_ALPHA, /* U+011103: CHAKMA LETTER AA*/ + RTUNI_ALPHA, /* U+011104: CHAKMA LETTER I*/ + RTUNI_ALPHA, /* U+011105: CHAKMA LETTER U*/ + RTUNI_ALPHA, /* U+011106: CHAKMA LETTER E*/ + RTUNI_ALPHA, /* U+011107: CHAKMA LETTER KAA*/ + RTUNI_ALPHA, /* U+011108: CHAKMA LETTER KHAA*/ + RTUNI_ALPHA, /* U+011109: CHAKMA LETTER GAA*/ + RTUNI_ALPHA, /* U+01110a: CHAKMA LETTER GHAA*/ + RTUNI_ALPHA, /* U+01110b: CHAKMA LETTER NGAA*/ + RTUNI_ALPHA, /* U+01110c: CHAKMA LETTER CAA*/ + RTUNI_ALPHA, /* U+01110d: CHAKMA LETTER CHAA*/ + RTUNI_ALPHA, /* U+01110e: CHAKMA LETTER JAA*/ + RTUNI_ALPHA, /* U+01110f: CHAKMA LETTER JHAA*/ + RTUNI_ALPHA, /* U+011110: CHAKMA LETTER NYAA*/ + RTUNI_ALPHA, /* U+011111: CHAKMA LETTER TTAA*/ + RTUNI_ALPHA, /* U+011112: CHAKMA LETTER TTHAA*/ + RTUNI_ALPHA, /* U+011113: CHAKMA LETTER DDAA*/ + RTUNI_ALPHA, /* U+011114: CHAKMA LETTER DDHAA*/ + RTUNI_ALPHA, /* U+011115: CHAKMA LETTER NNAA*/ + RTUNI_ALPHA, /* U+011116: CHAKMA LETTER TAA*/ + RTUNI_ALPHA, /* U+011117: CHAKMA LETTER THAA*/ + RTUNI_ALPHA, /* U+011118: CHAKMA LETTER DAA*/ + RTUNI_ALPHA, /* U+011119: CHAKMA LETTER DHAA*/ + RTUNI_ALPHA, /* U+01111a: CHAKMA LETTER NAA*/ + RTUNI_ALPHA, /* U+01111b: CHAKMA LETTER PAA*/ + RTUNI_ALPHA, /* U+01111c: CHAKMA LETTER PHAA*/ + RTUNI_ALPHA, /* U+01111d: CHAKMA LETTER BAA*/ + RTUNI_ALPHA, /* U+01111e: CHAKMA LETTER BHAA*/ + RTUNI_ALPHA, /* U+01111f: CHAKMA LETTER MAA*/ + RTUNI_ALPHA, /* U+011120: CHAKMA LETTER YYAA*/ + RTUNI_ALPHA, /* U+011121: CHAKMA LETTER YAA*/ + RTUNI_ALPHA, /* U+011122: CHAKMA LETTER RAA*/ + RTUNI_ALPHA, /* U+011123: CHAKMA LETTER LAA*/ + RTUNI_ALPHA, /* U+011124: CHAKMA LETTER WAA*/ + RTUNI_ALPHA, /* U+011125: CHAKMA LETTER SAA*/ + RTUNI_ALPHA, /* U+011126: CHAKMA LETTER HAA*/ + RTUNI_ALPHA, /* U+011127: CHAKMA VOWEL SIGN A*/ + RTUNI_ALPHA, /* U+011128: CHAKMA VOWEL SIGN I*/ + RTUNI_ALPHA, /* U+011129: CHAKMA VOWEL SIGN II*/ + RTUNI_ALPHA, /* U+01112a: CHAKMA VOWEL SIGN U*/ + RTUNI_ALPHA, /* U+01112b: CHAKMA VOWEL SIGN UU*/ + RTUNI_ALPHA, /* U+01112c: CHAKMA VOWEL SIGN E*/ + RTUNI_ALPHA, /* U+01112d: CHAKMA VOWEL SIGN AI*/ + RTUNI_ALPHA, /* U+01112e: CHAKMA VOWEL SIGN O*/ + RTUNI_ALPHA, /* U+01112f: CHAKMA VOWEL SIGN AU*/ + RTUNI_ALPHA, /* U+011130: CHAKMA VOWEL SIGN OI*/ + RTUNI_ALPHA, /* U+011131: CHAKMA O MARK*/ + RTUNI_ALPHA, /* U+011132: CHAKMA AU MARK*/ + 0, /* U+011133: CHAKMA VIRAMA*/ + 0, /* U+011134: CHAKMA MAAYYAA*/ + 0, /* U+011135: */ + RTUNI_DDIGIT, /* U+011136: CHAKMA DIGIT ZERO*/ + RTUNI_DDIGIT, /* U+011137: CHAKMA DIGIT ONE*/ + RTUNI_DDIGIT, /* U+011138: CHAKMA DIGIT TWO*/ + RTUNI_DDIGIT, /* U+011139: CHAKMA DIGIT THREE*/ + RTUNI_DDIGIT, /* U+01113a: CHAKMA DIGIT FOUR*/ + RTUNI_DDIGIT, /* U+01113b: CHAKMA DIGIT FIVE*/ + RTUNI_DDIGIT, /* U+01113c: CHAKMA DIGIT SIX*/ + RTUNI_DDIGIT, /* U+01113d: CHAKMA DIGIT SEVEN*/ + RTUNI_DDIGIT, /* U+01113e: CHAKMA DIGIT EIGHT*/ + RTUNI_DDIGIT, /* U+01113f: CHAKMA DIGIT NINE*/ + 0, /* U+011140: CHAKMA SECTION MARK*/ + 0, /* U+011141: CHAKMA DANDA*/ + 0, /* U+011142: CHAKMA DOUBLE DANDA*/ + 0, /* U+011143: CHAKMA QUESTION MARK*/ + 0, /* U+011144: */ + 0, /* U+011145: */ + 0, /* U+011146: */ + 0, /* U+011147: */ + 0, /* U+011148: */ + 0, /* U+011149: */ + 0, /* U+01114a: */ + 0, /* U+01114b: */ + 0, /* U+01114c: */ + 0, /* U+01114d: */ + 0, /* U+01114e: */ + 0, /* U+01114f: */ + 0, /* U+011150: */ + 0, /* U+011151: */ + 0, /* U+011152: */ + 0, /* U+011153: */ + 0, /* U+011154: */ + 0, /* U+011155: */ + 0, /* U+011156: */ + 0, /* U+011157: */ + 0, /* U+011158: */ + 0, /* U+011159: */ + 0, /* U+01115a: */ + 0, /* U+01115b: */ + 0, /* U+01115c: */ + 0, /* U+01115d: */ + 0, /* U+01115e: */ + 0, /* U+01115f: */ + 0, /* U+011160: */ + 0, /* U+011161: */ + 0, /* U+011162: */ + 0, /* U+011163: */ + 0, /* U+011164: */ + 0, /* U+011165: */ + 0, /* U+011166: */ + 0, /* U+011167: */ + 0, /* U+011168: */ + 0, /* U+011169: */ + 0, /* U+01116a: */ + 0, /* U+01116b: */ + 0, /* U+01116c: */ + 0, /* U+01116d: */ + 0, /* U+01116e: */ + 0, /* U+01116f: */ + 0, /* U+011170: */ + 0, /* U+011171: */ + 0, /* U+011172: */ + 0, /* U+011173: */ + 0, /* U+011174: */ + 0, /* U+011175: */ + 0, /* U+011176: */ + 0, /* U+011177: */ + 0, /* U+011178: */ + 0, /* U+011179: */ + 0, /* U+01117a: */ + 0, /* U+01117b: */ + 0, /* U+01117c: */ + 0, /* U+01117d: */ + 0, /* U+01117e: */ + 0, /* U+01117f: */ + RTUNI_ALPHA, /* U+011180: SHARADA SIGN CANDRABINDU*/ + RTUNI_ALPHA, /* U+011181: SHARADA SIGN ANUSVARA*/ + RTUNI_ALPHA, /* U+011182: SHARADA SIGN VISARGA*/ + RTUNI_ALPHA, /* U+011183: SHARADA LETTER A*/ + RTUNI_ALPHA, /* U+011184: SHARADA LETTER AA*/ + RTUNI_ALPHA, /* U+011185: SHARADA LETTER I*/ + RTUNI_ALPHA, /* U+011186: SHARADA LETTER II*/ + RTUNI_ALPHA, /* U+011187: SHARADA LETTER U*/ + RTUNI_ALPHA, /* U+011188: SHARADA LETTER UU*/ + RTUNI_ALPHA, /* U+011189: SHARADA LETTER VOCALIC R*/ + RTUNI_ALPHA, /* U+01118a: SHARADA LETTER VOCALIC RR*/ + RTUNI_ALPHA, /* U+01118b: SHARADA LETTER VOCALIC L*/ + RTUNI_ALPHA, /* U+01118c: SHARADA LETTER VOCALIC LL*/ + RTUNI_ALPHA, /* U+01118d: SHARADA LETTER E*/ + RTUNI_ALPHA, /* U+01118e: SHARADA LETTER AI*/ + RTUNI_ALPHA, /* U+01118f: SHARADA LETTER O*/ + RTUNI_ALPHA, /* U+011190: SHARADA LETTER AU*/ + RTUNI_ALPHA, /* U+011191: SHARADA LETTER KA*/ + RTUNI_ALPHA, /* U+011192: SHARADA LETTER KHA*/ + RTUNI_ALPHA, /* U+011193: SHARADA LETTER GA*/ + RTUNI_ALPHA, /* U+011194: SHARADA LETTER GHA*/ + RTUNI_ALPHA, /* U+011195: SHARADA LETTER NGA*/ + RTUNI_ALPHA, /* U+011196: SHARADA LETTER CA*/ + RTUNI_ALPHA, /* U+011197: SHARADA LETTER CHA*/ + RTUNI_ALPHA, /* U+011198: SHARADA LETTER JA*/ + RTUNI_ALPHA, /* U+011199: SHARADA LETTER JHA*/ + RTUNI_ALPHA, /* U+01119a: SHARADA LETTER NYA*/ + RTUNI_ALPHA, /* U+01119b: SHARADA LETTER TTA*/ + RTUNI_ALPHA, /* U+01119c: SHARADA LETTER TTHA*/ + RTUNI_ALPHA, /* U+01119d: SHARADA LETTER DDA*/ + RTUNI_ALPHA, /* U+01119e: SHARADA LETTER DDHA*/ + RTUNI_ALPHA, /* U+01119f: SHARADA LETTER NNA*/ + RTUNI_ALPHA, /* U+0111a0: SHARADA LETTER TA*/ + RTUNI_ALPHA, /* U+0111a1: SHARADA LETTER THA*/ + RTUNI_ALPHA, /* U+0111a2: SHARADA LETTER DA*/ + RTUNI_ALPHA, /* U+0111a3: SHARADA LETTER DHA*/ + RTUNI_ALPHA, /* U+0111a4: SHARADA LETTER NA*/ + RTUNI_ALPHA, /* U+0111a5: SHARADA LETTER PA*/ + RTUNI_ALPHA, /* U+0111a6: SHARADA LETTER PHA*/ + RTUNI_ALPHA, /* U+0111a7: SHARADA LETTER BA*/ + RTUNI_ALPHA, /* U+0111a8: SHARADA LETTER BHA*/ + RTUNI_ALPHA, /* U+0111a9: SHARADA LETTER MA*/ + RTUNI_ALPHA, /* U+0111aa: SHARADA LETTER YA*/ + RTUNI_ALPHA, /* U+0111ab: SHARADA LETTER RA*/ + RTUNI_ALPHA, /* U+0111ac: SHARADA LETTER LA*/ + RTUNI_ALPHA, /* U+0111ad: SHARADA LETTER LLA*/ + RTUNI_ALPHA, /* U+0111ae: SHARADA LETTER VA*/ + RTUNI_ALPHA, /* U+0111af: SHARADA LETTER SHA*/ + RTUNI_ALPHA, /* U+0111b0: SHARADA LETTER SSA*/ + RTUNI_ALPHA, /* U+0111b1: SHARADA LETTER SA*/ + RTUNI_ALPHA, /* U+0111b2: SHARADA LETTER HA*/ + RTUNI_ALPHA, /* U+0111b3: SHARADA VOWEL SIGN AA*/ + RTUNI_ALPHA, /* U+0111b4: SHARADA VOWEL SIGN I*/ + RTUNI_ALPHA, /* U+0111b5: SHARADA VOWEL SIGN II*/ + RTUNI_ALPHA, /* U+0111b6: SHARADA VOWEL SIGN U*/ + RTUNI_ALPHA, /* U+0111b7: SHARADA VOWEL SIGN UU*/ + RTUNI_ALPHA, /* U+0111b8: SHARADA VOWEL SIGN VOCALIC R*/ + RTUNI_ALPHA, /* U+0111b9: SHARADA VOWEL SIGN VOCALIC RR*/ + RTUNI_ALPHA, /* U+0111ba: SHARADA VOWEL SIGN VOCALIC L*/ + RTUNI_ALPHA, /* U+0111bb: SHARADA VOWEL SIGN VOCALIC LL*/ + RTUNI_ALPHA, /* U+0111bc: SHARADA VOWEL SIGN E*/ + RTUNI_ALPHA, /* U+0111bd: SHARADA VOWEL SIGN AI*/ + RTUNI_ALPHA, /* U+0111be: SHARADA VOWEL SIGN O*/ + RTUNI_ALPHA, /* U+0111bf: SHARADA VOWEL SIGN AU*/ + 0, /* U+0111c0: SHARADA SIGN VIRAMA*/ + RTUNI_ALPHA, /* U+0111c1: SHARADA SIGN AVAGRAHA*/ + RTUNI_ALPHA, /* U+0111c2: SHARADA SIGN JIHVAMULIYA*/ + RTUNI_ALPHA, /* U+0111c3: SHARADA SIGN UPADHMANIYA*/ + RTUNI_ALPHA, /* U+0111c4: SHARADA OM*/ + 0, /* U+0111c5: SHARADA DANDA*/ + 0, /* U+0111c6: SHARADA DOUBLE DANDA*/ + 0, /* U+0111c7: SHARADA ABBREVIATION SIGN*/ + 0, /* U+0111c8: SHARADA SEPARATOR*/ + 0, /* U+0111c9: */ + 0, /* U+0111ca: */ + 0, /* U+0111cb: */ + 0, /* U+0111cc: */ + 0, /* U+0111cd: */ + 0, /* U+0111ce: */ + 0, /* U+0111cf: */ + RTUNI_DDIGIT, /* U+0111d0: SHARADA DIGIT ZERO*/ + RTUNI_DDIGIT, /* U+0111d1: SHARADA DIGIT ONE*/ + RTUNI_DDIGIT, /* U+0111d2: SHARADA DIGIT TWO*/ + RTUNI_DDIGIT, /* U+0111d3: SHARADA DIGIT THREE*/ + RTUNI_DDIGIT, /* U+0111d4: SHARADA DIGIT FOUR*/ + RTUNI_DDIGIT, /* U+0111d5: SHARADA DIGIT FIVE*/ + RTUNI_DDIGIT, /* U+0111d6: SHARADA DIGIT SIX*/ + RTUNI_DDIGIT, /* U+0111d7: SHARADA DIGIT SEVEN*/ + RTUNI_DDIGIT, /* U+0111d8: SHARADA DIGIT EIGHT*/ + RTUNI_DDIGIT, /* U+0111d9: SHARADA DIGIT NINE*/ + 0, /* U+0111da: */ + 0, /* U+0111db: */ + 0, /* U+0111dc: */ + 0, /* U+0111dd: */ + 0, /* U+0111de: */ + 0, /* U+0111df: */ + 0, /* U+0111e0: */ + 0, /* U+0111e1: */ + 0, /* U+0111e2: */ + 0, /* U+0111e3: */ + 0, /* U+0111e4: */ + 0, /* U+0111e5: */ + 0, /* U+0111e6: */ + 0, /* U+0111e7: */ + 0, /* U+0111e8: */ + 0, /* U+0111e9: */ + 0, /* U+0111ea: */ + 0, /* U+0111eb: */ + 0, /* U+0111ec: */ + 0, /* U+0111ed: */ + 0, /* U+0111ee: */ + 0, /* U+0111ef: */ + 0, /* U+0111f0: */ + 0, /* U+0111f1: */ + 0, /* U+0111f2: */ + 0, /* U+0111f3: */ + 0, /* U+0111f4: */ + 0, /* U+0111f5: */ + 0, /* U+0111f6: */ + 0, /* U+0111f7: */ + 0, /* U+0111f8: */ + 0, /* U+0111f9: */ + 0, /* U+0111fa: */ + 0, /* U+0111fb: */ + 0, /* U+0111fc: */ + 0, /* U+0111fd: */ + 0, /* U+0111fe: */ + 0, /* U+0111ff: */ + 0, /* U+011200: */ + 0, /* U+011201: */ + 0, /* U+011202: */ + 0, /* U+011203: */ + 0, /* U+011204: */ + 0, /* U+011205: */ + 0, /* U+011206: */ + 0, /* U+011207: */ + 0, /* U+011208: */ + 0, /* U+011209: */ + 0, /* U+01120a: */ + 0, /* U+01120b: */ + 0, /* U+01120c: */ + 0, /* U+01120d: */ + 0, /* U+01120e: */ + 0, /* U+01120f: */ + 0, /* U+011210: */ + 0, /* U+011211: */ + 0, /* U+011212: */ + 0, /* U+011213: */ + 0, /* U+011214: */ + 0, /* U+011215: */ + 0, /* U+011216: */ + 0, /* U+011217: */ + 0, /* U+011218: */ + 0, /* U+011219: */ + 0, /* U+01121a: */ + 0, /* U+01121b: */ + 0, /* U+01121c: */ + 0, /* U+01121d: */ + 0, /* U+01121e: */ + 0, /* U+01121f: */ + 0, /* U+011220: */ + 0, /* U+011221: */ + 0, /* U+011222: */ + 0, /* U+011223: */ + 0, /* U+011224: */ + 0, /* U+011225: */ + 0, /* U+011226: */ + 0, /* U+011227: */ + 0, /* U+011228: */ + 0, /* U+011229: */ + 0, /* U+01122a: */ + 0, /* U+01122b: */ + 0, /* U+01122c: */ + 0, /* U+01122d: */ + 0, /* U+01122e: */ + 0, /* U+01122f: */ + 0, /* U+011230: */ + 0, /* U+011231: */ + 0, /* U+011232: */ + 0, /* U+011233: */ + 0, /* U+011234: */ + 0, /* U+011235: */ + 0, /* U+011236: */ + 0, /* U+011237: */ + 0, /* U+011238: */ + 0, /* U+011239: */ + 0, /* U+01123a: */ + 0, /* U+01123b: */ + 0, /* U+01123c: */ + 0, /* U+01123d: */ + 0, /* U+01123e: */ + 0, /* U+01123f: */ + 0, /* U+011240: */ + 0, /* U+011241: */ + 0, /* U+011242: */ + 0, /* U+011243: */ + 0, /* U+011244: */ + 0, /* U+011245: */ + 0, /* U+011246: */ + 0, /* U+011247: */ + 0, /* U+011248: */ + 0, /* U+011249: */ + 0, /* U+01124a: */ + 0, /* U+01124b: */ + 0, /* U+01124c: */ + 0, /* U+01124d: */ + 0, /* U+01124e: */ + 0, /* U+01124f: */ + 0, /* U+011250: */ + 0, /* U+011251: */ + 0, /* U+011252: */ + 0, /* U+011253: */ + 0, /* U+011254: */ + 0, /* U+011255: */ + 0, /* U+011256: */ + 0, /* U+011257: */ + 0, /* U+011258: */ + 0, /* U+011259: */ + 0, /* U+01125a: */ + 0, /* U+01125b: */ + 0, /* U+01125c: */ + 0, /* U+01125d: */ + 0, /* U+01125e: */ + 0, /* U+01125f: */ + 0, /* U+011260: */ + 0, /* U+011261: */ + 0, /* U+011262: */ + 0, /* U+011263: */ + 0, /* U+011264: */ + 0, /* U+011265: */ + 0, /* U+011266: */ + 0, /* U+011267: */ + 0, /* U+011268: */ + 0, /* U+011269: */ + 0, /* U+01126a: */ + 0, /* U+01126b: */ + 0, /* U+01126c: */ + 0, /* U+01126d: */ + 0, /* U+01126e: */ + 0, /* U+01126f: */ + 0, /* U+011270: */ + 0, /* U+011271: */ + 0, /* U+011272: */ + 0, /* U+011273: */ + 0, /* U+011274: */ + 0, /* U+011275: */ + 0, /* U+011276: */ + 0, /* U+011277: */ + 0, /* U+011278: */ + 0, /* U+011279: */ + 0, /* U+01127a: */ + 0, /* U+01127b: */ + 0, /* U+01127c: */ + 0, /* U+01127d: */ + 0, /* U+01127e: */ + 0, /* U+01127f: */ + 0, /* U+011280: */ + 0, /* U+011281: */ + 0, /* U+011282: */ + 0, /* U+011283: */ + 0, /* U+011284: */ + 0, /* U+011285: */ + 0, /* U+011286: */ + 0, /* U+011287: */ + 0, /* U+011288: */ + 0, /* U+011289: */ + 0, /* U+01128a: */ + 0, /* U+01128b: */ + 0, /* U+01128c: */ + 0, /* U+01128d: */ + 0, /* U+01128e: */ + 0, /* U+01128f: */ + 0, /* U+011290: */ + 0, /* U+011291: */ + 0, /* U+011292: */ + 0, /* U+011293: */ + 0, /* U+011294: */ + 0, /* U+011295: */ + 0, /* U+011296: */ + 0, /* U+011297: */ + 0, /* U+011298: */ + 0, /* U+011299: */ + 0, /* U+01129a: */ + 0, /* U+01129b: */ + 0, /* U+01129c: */ + 0, /* U+01129d: */ + 0, /* U+01129e: */ + 0, /* U+01129f: */ + 0, /* U+0112a0: */ + 0, /* U+0112a1: */ + 0, /* U+0112a2: */ + 0, /* U+0112a3: */ + 0, /* U+0112a4: */ + 0, /* U+0112a5: */ + 0, /* U+0112a6: */ + 0, /* U+0112a7: */ + 0, /* U+0112a8: */ + 0, /* U+0112a9: */ + 0, /* U+0112aa: */ + 0, /* U+0112ab: */ + 0, /* U+0112ac: */ + 0, /* U+0112ad: */ + 0, /* U+0112ae: */ + 0, /* U+0112af: */ + 0, /* U+0112b0: */ + 0, /* U+0112b1: */ + 0, /* U+0112b2: */ + 0, /* U+0112b3: */ + 0, /* U+0112b4: */ + 0, /* U+0112b5: */ + 0, /* U+0112b6: */ + 0, /* U+0112b7: */ + 0, /* U+0112b8: */ + 0, /* U+0112b9: */ + 0, /* U+0112ba: */ + 0, /* U+0112bb: */ + 0, /* U+0112bc: */ + 0, /* U+0112bd: */ + 0, /* U+0112be: */ + 0, /* U+0112bf: */ + 0, /* U+0112c0: */ + 0, /* U+0112c1: */ + 0, /* U+0112c2: */ + 0, /* U+0112c3: */ + 0, /* U+0112c4: */ + 0, /* U+0112c5: */ + 0, /* U+0112c6: */ + 0, /* U+0112c7: */ + 0, /* U+0112c8: */ + 0, /* U+0112c9: */ + 0, /* U+0112ca: */ + 0, /* U+0112cb: */ + 0, /* U+0112cc: */ + 0, /* U+0112cd: */ + 0, /* U+0112ce: */ + 0, /* U+0112cf: */ + 0, /* U+0112d0: */ + 0, /* U+0112d1: */ + 0, /* U+0112d2: */ + 0, /* U+0112d3: */ + 0, /* U+0112d4: */ + 0, /* U+0112d5: */ + 0, /* U+0112d6: */ + 0, /* U+0112d7: */ + 0, /* U+0112d8: */ + 0, /* U+0112d9: */ + 0, /* U+0112da: */ + 0, /* U+0112db: */ + 0, /* U+0112dc: */ + 0, /* U+0112dd: */ + 0, /* U+0112de: */ + 0, /* U+0112df: */ + 0, /* U+0112e0: */ + 0, /* U+0112e1: */ + 0, /* U+0112e2: */ + 0, /* U+0112e3: */ + 0, /* U+0112e4: */ + 0, /* U+0112e5: */ + 0, /* U+0112e6: */ + 0, /* U+0112e7: */ + 0, /* U+0112e8: */ + 0, /* U+0112e9: */ + 0, /* U+0112ea: */ + 0, /* U+0112eb: */ + 0, /* U+0112ec: */ + 0, /* U+0112ed: */ + 0, /* U+0112ee: */ + 0, /* U+0112ef: */ + 0, /* U+0112f0: */ + 0, /* U+0112f1: */ + 0, /* U+0112f2: */ + 0, /* U+0112f3: */ + 0, /* U+0112f4: */ + 0, /* U+0112f5: */ + 0, /* U+0112f6: */ + 0, /* U+0112f7: */ + 0, /* U+0112f8: */ + 0, /* U+0112f9: */ + 0, /* U+0112fa: */ + 0, /* U+0112fb: */ + 0, /* U+0112fc: */ + 0, /* U+0112fd: */ + 0, /* U+0112fe: */ + 0, /* U+0112ff: */ + 0, /* U+011300: */ + 0, /* U+011301: */ + 0, /* U+011302: */ + 0, /* U+011303: */ + 0, /* U+011304: */ + 0, /* U+011305: */ + 0, /* U+011306: */ + 0, /* U+011307: */ + 0, /* U+011308: */ + 0, /* U+011309: */ + 0, /* U+01130a: */ + 0, /* U+01130b: */ + 0, /* U+01130c: */ + 0, /* U+01130d: */ + 0, /* U+01130e: */ + 0, /* U+01130f: */ + 0, /* U+011310: */ + 0, /* U+011311: */ + 0, /* U+011312: */ + 0, /* U+011313: */ + 0, /* U+011314: */ + 0, /* U+011315: */ + 0, /* U+011316: */ + 0, /* U+011317: */ + 0, /* U+011318: */ + 0, /* U+011319: */ + 0, /* U+01131a: */ + 0, /* U+01131b: */ + 0, /* U+01131c: */ + 0, /* U+01131d: */ + 0, /* U+01131e: */ + 0, /* U+01131f: */ + 0, /* U+011320: */ + 0, /* U+011321: */ + 0, /* U+011322: */ + 0, /* U+011323: */ + 0, /* U+011324: */ + 0, /* U+011325: */ + 0, /* U+011326: */ + 0, /* U+011327: */ + 0, /* U+011328: */ + 0, /* U+011329: */ + 0, /* U+01132a: */ + 0, /* U+01132b: */ + 0, /* U+01132c: */ + 0, /* U+01132d: */ + 0, /* U+01132e: */ + 0, /* U+01132f: */ + 0, /* U+011330: */ + 0, /* U+011331: */ + 0, /* U+011332: */ + 0, /* U+011333: */ + 0, /* U+011334: */ + 0, /* U+011335: */ + 0, /* U+011336: */ + 0, /* U+011337: */ + 0, /* U+011338: */ + 0, /* U+011339: */ + 0, /* U+01133a: */ + 0, /* U+01133b: */ + 0, /* U+01133c: */ + 0, /* U+01133d: */ + 0, /* U+01133e: */ + 0, /* U+01133f: */ + 0, /* U+011340: */ + 0, /* U+011341: */ + 0, /* U+011342: */ + 0, /* U+011343: */ + 0, /* U+011344: */ + 0, /* U+011345: */ + 0, /* U+011346: */ + 0, /* U+011347: */ + 0, /* U+011348: */ + 0, /* U+011349: */ + 0, /* U+01134a: */ + 0, /* U+01134b: */ + 0, /* U+01134c: */ + 0, /* U+01134d: */ + 0, /* U+01134e: */ + 0, /* U+01134f: */ + 0, /* U+011350: */ + 0, /* U+011351: */ + 0, /* U+011352: */ + 0, /* U+011353: */ + 0, /* U+011354: */ + 0, /* U+011355: */ + 0, /* U+011356: */ + 0, /* U+011357: */ + 0, /* U+011358: */ + 0, /* U+011359: */ + 0, /* U+01135a: */ + 0, /* U+01135b: */ + 0, /* U+01135c: */ + 0, /* U+01135d: */ + 0, /* U+01135e: */ + 0, /* U+01135f: */ + 0, /* U+011360: */ + 0, /* U+011361: */ + 0, /* U+011362: */ + 0, /* U+011363: */ + 0, /* U+011364: */ + 0, /* U+011365: */ + 0, /* U+011366: */ + 0, /* U+011367: */ + 0, /* U+011368: */ + 0, /* U+011369: */ + 0, /* U+01136a: */ + 0, /* U+01136b: */ + 0, /* U+01136c: */ + 0, /* U+01136d: */ + 0, /* U+01136e: */ + 0, /* U+01136f: */ + 0, /* U+011370: */ + 0, /* U+011371: */ + 0, /* U+011372: */ + 0, /* U+011373: */ + 0, /* U+011374: */ + 0, /* U+011375: */ + 0, /* U+011376: */ + 0, /* U+011377: */ + 0, /* U+011378: */ + 0, /* U+011379: */ + 0, /* U+01137a: */ + 0, /* U+01137b: */ + 0, /* U+01137c: */ + 0, /* U+01137d: */ + 0, /* U+01137e: */ + 0, /* U+01137f: */ + 0, /* U+011380: */ + 0, /* U+011381: */ + 0, /* U+011382: */ + 0, /* U+011383: */ + 0, /* U+011384: */ + 0, /* U+011385: */ + 0, /* U+011386: */ + 0, /* U+011387: */ + 0, /* U+011388: */ + 0, /* U+011389: */ + 0, /* U+01138a: */ + 0, /* U+01138b: */ + 0, /* U+01138c: */ + 0, /* U+01138d: */ + 0, /* U+01138e: */ + 0, /* U+01138f: */ + 0, /* U+011390: */ + 0, /* U+011391: */ + 0, /* U+011392: */ + 0, /* U+011393: */ + 0, /* U+011394: */ + 0, /* U+011395: */ + 0, /* U+011396: */ + 0, /* U+011397: */ + 0, /* U+011398: */ + 0, /* U+011399: */ + 0, /* U+01139a: */ + 0, /* U+01139b: */ + 0, /* U+01139c: */ + 0, /* U+01139d: */ + 0, /* U+01139e: */ + 0, /* U+01139f: */ + 0, /* U+0113a0: */ + 0, /* U+0113a1: */ + 0, /* U+0113a2: */ + 0, /* U+0113a3: */ + 0, /* U+0113a4: */ + 0, /* U+0113a5: */ + 0, /* U+0113a6: */ + 0, /* U+0113a7: */ + 0, /* U+0113a8: */ + 0, /* U+0113a9: */ + 0, /* U+0113aa: */ + 0, /* U+0113ab: */ + 0, /* U+0113ac: */ + 0, /* U+0113ad: */ + 0, /* U+0113ae: */ + 0, /* U+0113af: */ + 0, /* U+0113b0: */ + 0, /* U+0113b1: */ + 0, /* U+0113b2: */ + 0, /* U+0113b3: */ + 0, /* U+0113b4: */ + 0, /* U+0113b5: */ + 0, /* U+0113b6: */ + 0, /* U+0113b7: */ + 0, /* U+0113b8: */ + 0, /* U+0113b9: */ + 0, /* U+0113ba: */ + 0, /* U+0113bb: */ + 0, /* U+0113bc: */ + 0, /* U+0113bd: */ + 0, /* U+0113be: */ + 0, /* U+0113bf: */ + 0, /* U+0113c0: */ + 0, /* U+0113c1: */ + 0, /* U+0113c2: */ + 0, /* U+0113c3: */ + 0, /* U+0113c4: */ + 0, /* U+0113c5: */ + 0, /* U+0113c6: */ + 0, /* U+0113c7: */ + 0, /* U+0113c8: */ + 0, /* U+0113c9: */ + 0, /* U+0113ca: */ + 0, /* U+0113cb: */ + 0, /* U+0113cc: */ + 0, /* U+0113cd: */ + 0, /* U+0113ce: */ + 0, /* U+0113cf: */ + 0, /* U+0113d0: */ + 0, /* U+0113d1: */ + 0, /* U+0113d2: */ + 0, /* U+0113d3: */ + 0, /* U+0113d4: */ + 0, /* U+0113d5: */ + 0, /* U+0113d6: */ + 0, /* U+0113d7: */ + 0, /* U+0113d8: */ + 0, /* U+0113d9: */ + 0, /* U+0113da: */ + 0, /* U+0113db: */ + 0, /* U+0113dc: */ + 0, /* U+0113dd: */ + 0, /* U+0113de: */ + 0, /* U+0113df: */ + 0, /* U+0113e0: */ + 0, /* U+0113e1: */ + 0, /* U+0113e2: */ + 0, /* U+0113e3: */ + 0, /* U+0113e4: */ + 0, /* U+0113e5: */ + 0, /* U+0113e6: */ + 0, /* U+0113e7: */ + 0, /* U+0113e8: */ + 0, /* U+0113e9: */ + 0, /* U+0113ea: */ + 0, /* U+0113eb: */ + 0, /* U+0113ec: */ + 0, /* U+0113ed: */ + 0, /* U+0113ee: */ + 0, /* U+0113ef: */ + 0, /* U+0113f0: */ + 0, /* U+0113f1: */ + 0, /* U+0113f2: */ + 0, /* U+0113f3: */ + 0, /* U+0113f4: */ + 0, /* U+0113f5: */ + 0, /* U+0113f6: */ + 0, /* U+0113f7: */ + 0, /* U+0113f8: */ + 0, /* U+0113f9: */ + 0, /* U+0113fa: */ + 0, /* U+0113fb: */ + 0, /* U+0113fc: */ + 0, /* U+0113fd: */ + 0, /* U+0113fe: */ + 0, /* U+0113ff: */ + 0, /* U+011400: */ + 0, /* U+011401: */ + 0, /* U+011402: */ + 0, /* U+011403: */ + 0, /* U+011404: */ + 0, /* U+011405: */ + 0, /* U+011406: */ + 0, /* U+011407: */ + 0, /* U+011408: */ + 0, /* U+011409: */ + 0, /* U+01140a: */ + 0, /* U+01140b: */ + 0, /* U+01140c: */ + 0, /* U+01140d: */ + 0, /* U+01140e: */ + 0, /* U+01140f: */ + 0, /* U+011410: */ + 0, /* U+011411: */ + 0, /* U+011412: */ + 0, /* U+011413: */ + 0, /* U+011414: */ + 0, /* U+011415: */ + 0, /* U+011416: */ + 0, /* U+011417: */ + 0, /* U+011418: */ + 0, /* U+011419: */ + 0, /* U+01141a: */ + 0, /* U+01141b: */ + 0, /* U+01141c: */ + 0, /* U+01141d: */ + 0, /* U+01141e: */ + 0, /* U+01141f: */ + 0, /* U+011420: */ + 0, /* U+011421: */ + 0, /* U+011422: */ + 0, /* U+011423: */ + 0, /* U+011424: */ + 0, /* U+011425: */ + 0, /* U+011426: */ + 0, /* U+011427: */ + 0, /* U+011428: */ + 0, /* U+011429: */ + 0, /* U+01142a: */ + 0, /* U+01142b: */ + 0, /* U+01142c: */ + 0, /* U+01142d: */ + 0, /* U+01142e: */ + 0, /* U+01142f: */ + 0, /* U+011430: */ + 0, /* U+011431: */ + 0, /* U+011432: */ + 0, /* U+011433: */ + 0, /* U+011434: */ + 0, /* U+011435: */ + 0, /* U+011436: */ + 0, /* U+011437: */ + 0, /* U+011438: */ + 0, /* U+011439: */ + 0, /* U+01143a: */ + 0, /* U+01143b: */ + 0, /* U+01143c: */ + 0, /* U+01143d: */ + 0, /* U+01143e: */ + 0, /* U+01143f: */ + 0, /* U+011440: */ + 0, /* U+011441: */ + 0, /* U+011442: */ + 0, /* U+011443: */ + 0, /* U+011444: */ + 0, /* U+011445: */ + 0, /* U+011446: */ + 0, /* U+011447: */ + 0, /* U+011448: */ + 0, /* U+011449: */ + 0, /* U+01144a: */ + 0, /* U+01144b: */ + 0, /* U+01144c: */ + 0, /* U+01144d: */ + 0, /* U+01144e: */ + 0, /* U+01144f: */ + 0, /* U+011450: */ + 0, /* U+011451: */ + 0, /* U+011452: */ + 0, /* U+011453: */ + 0, /* U+011454: */ + 0, /* U+011455: */ + 0, /* U+011456: */ + 0, /* U+011457: */ + 0, /* U+011458: */ + 0, /* U+011459: */ + 0, /* U+01145a: */ + 0, /* U+01145b: */ + 0, /* U+01145c: */ + 0, /* U+01145d: */ + 0, /* U+01145e: */ + 0, /* U+01145f: */ + 0, /* U+011460: */ + 0, /* U+011461: */ + 0, /* U+011462: */ + 0, /* U+011463: */ + 0, /* U+011464: */ + 0, /* U+011465: */ + 0, /* U+011466: */ + 0, /* U+011467: */ + 0, /* U+011468: */ + 0, /* U+011469: */ + 0, /* U+01146a: */ + 0, /* U+01146b: */ + 0, /* U+01146c: */ + 0, /* U+01146d: */ + 0, /* U+01146e: */ + 0, /* U+01146f: */ + 0, /* U+011470: */ + 0, /* U+011471: */ + 0, /* U+011472: */ + 0, /* U+011473: */ + 0, /* U+011474: */ + 0, /* U+011475: */ + 0, /* U+011476: */ + 0, /* U+011477: */ + 0, /* U+011478: */ + 0, /* U+011479: */ + 0, /* U+01147a: */ + 0, /* U+01147b: */ + 0, /* U+01147c: */ + 0, /* U+01147d: */ + 0, /* U+01147e: */ + 0, /* U+01147f: */ + 0, /* U+011480: */ + 0, /* U+011481: */ + 0, /* U+011482: */ + 0, /* U+011483: */ + 0, /* U+011484: */ + 0, /* U+011485: */ + 0, /* U+011486: */ + 0, /* U+011487: */ + 0, /* U+011488: */ + 0, /* U+011489: */ + 0, /* U+01148a: */ + 0, /* U+01148b: */ + 0, /* U+01148c: */ + 0, /* U+01148d: */ + 0, /* U+01148e: */ + 0, /* U+01148f: */ + 0, /* U+011490: */ + 0, /* U+011491: */ + 0, /* U+011492: */ + 0, /* U+011493: */ + 0, /* U+011494: */ + 0, /* U+011495: */ + 0, /* U+011496: */ + 0, /* U+011497: */ + 0, /* U+011498: */ + 0, /* U+011499: */ + 0, /* U+01149a: */ + 0, /* U+01149b: */ + 0, /* U+01149c: */ + 0, /* U+01149d: */ + 0, /* U+01149e: */ + 0, /* U+01149f: */ + 0, /* U+0114a0: */ + 0, /* U+0114a1: */ + 0, /* U+0114a2: */ + 0, /* U+0114a3: */ + 0, /* U+0114a4: */ + 0, /* U+0114a5: */ + 0, /* U+0114a6: */ + 0, /* U+0114a7: */ + 0, /* U+0114a8: */ + 0, /* U+0114a9: */ + 0, /* U+0114aa: */ + 0, /* U+0114ab: */ + 0, /* U+0114ac: */ + 0, /* U+0114ad: */ + 0, /* U+0114ae: */ + 0, /* U+0114af: */ + 0, /* U+0114b0: */ + 0, /* U+0114b1: */ + 0, /* U+0114b2: */ + 0, /* U+0114b3: */ + 0, /* U+0114b4: */ + 0, /* U+0114b5: */ + 0, /* U+0114b6: */ + 0, /* U+0114b7: */ + 0, /* U+0114b8: */ + 0, /* U+0114b9: */ + 0, /* U+0114ba: */ + 0, /* U+0114bb: */ + 0, /* U+0114bc: */ + 0, /* U+0114bd: */ + 0, /* U+0114be: */ + 0, /* U+0114bf: */ + 0, /* U+0114c0: */ + 0, /* U+0114c1: */ + 0, /* U+0114c2: */ + 0, /* U+0114c3: */ + 0, /* U+0114c4: */ + 0, /* U+0114c5: */ + 0, /* U+0114c6: */ + 0, /* U+0114c7: */ + 0, /* U+0114c8: */ + 0, /* U+0114c9: */ + 0, /* U+0114ca: */ + 0, /* U+0114cb: */ + 0, /* U+0114cc: */ + 0, /* U+0114cd: */ + 0, /* U+0114ce: */ + 0, /* U+0114cf: */ + 0, /* U+0114d0: */ + 0, /* U+0114d1: */ + 0, /* U+0114d2: */ + 0, /* U+0114d3: */ + 0, /* U+0114d4: */ + 0, /* U+0114d5: */ + 0, /* U+0114d6: */ + 0, /* U+0114d7: */ + 0, /* U+0114d8: */ + 0, /* U+0114d9: */ + 0, /* U+0114da: */ + 0, /* U+0114db: */ + 0, /* U+0114dc: */ + 0, /* U+0114dd: */ + 0, /* U+0114de: */ + 0, /* U+0114df: */ + 0, /* U+0114e0: */ + 0, /* U+0114e1: */ + 0, /* U+0114e2: */ + 0, /* U+0114e3: */ + 0, /* U+0114e4: */ + 0, /* U+0114e5: */ + 0, /* U+0114e6: */ + 0, /* U+0114e7: */ + 0, /* U+0114e8: */ + 0, /* U+0114e9: */ + 0, /* U+0114ea: */ + 0, /* U+0114eb: */ + 0, /* U+0114ec: */ + 0, /* U+0114ed: */ + 0, /* U+0114ee: */ + 0, /* U+0114ef: */ + 0, /* U+0114f0: */ + 0, /* U+0114f1: */ + 0, /* U+0114f2: */ + 0, /* U+0114f3: */ + 0, /* U+0114f4: */ + 0, /* U+0114f5: */ + 0, /* U+0114f6: */ + 0, /* U+0114f7: */ + 0, /* U+0114f8: */ + 0, /* U+0114f9: */ + 0, /* U+0114fa: */ + 0, /* U+0114fb: */ + 0, /* U+0114fc: */ + 0, /* U+0114fd: */ + 0, /* U+0114fe: */ + 0, /* U+0114ff: */ + 0, /* U+011500: */ + 0, /* U+011501: */ + 0, /* U+011502: */ + 0, /* U+011503: */ + 0, /* U+011504: */ + 0, /* U+011505: */ + 0, /* U+011506: */ + 0, /* U+011507: */ + 0, /* U+011508: */ + 0, /* U+011509: */ + 0, /* U+01150a: */ + 0, /* U+01150b: */ + 0, /* U+01150c: */ + 0, /* U+01150d: */ + 0, /* U+01150e: */ + 0, /* U+01150f: */ + 0, /* U+011510: */ + 0, /* U+011511: */ + 0, /* U+011512: */ + 0, /* U+011513: */ + 0, /* U+011514: */ + 0, /* U+011515: */ + 0, /* U+011516: */ + 0, /* U+011517: */ + 0, /* U+011518: */ + 0, /* U+011519: */ + 0, /* U+01151a: */ + 0, /* U+01151b: */ + 0, /* U+01151c: */ + 0, /* U+01151d: */ + 0, /* U+01151e: */ + 0, /* U+01151f: */ + 0, /* U+011520: */ + 0, /* U+011521: */ + 0, /* U+011522: */ + 0, /* U+011523: */ + 0, /* U+011524: */ + 0, /* U+011525: */ + 0, /* U+011526: */ + 0, /* U+011527: */ + 0, /* U+011528: */ + 0, /* U+011529: */ + 0, /* U+01152a: */ + 0, /* U+01152b: */ + 0, /* U+01152c: */ + 0, /* U+01152d: */ + 0, /* U+01152e: */ + 0, /* U+01152f: */ + 0, /* U+011530: */ + 0, /* U+011531: */ + 0, /* U+011532: */ + 0, /* U+011533: */ + 0, /* U+011534: */ + 0, /* U+011535: */ + 0, /* U+011536: */ + 0, /* U+011537: */ + 0, /* U+011538: */ + 0, /* U+011539: */ + 0, /* U+01153a: */ + 0, /* U+01153b: */ + 0, /* U+01153c: */ + 0, /* U+01153d: */ + 0, /* U+01153e: */ + 0, /* U+01153f: */ + 0, /* U+011540: */ + 0, /* U+011541: */ + 0, /* U+011542: */ + 0, /* U+011543: */ + 0, /* U+011544: */ + 0, /* U+011545: */ + 0, /* U+011546: */ + 0, /* U+011547: */ + 0, /* U+011548: */ + 0, /* U+011549: */ + 0, /* U+01154a: */ + 0, /* U+01154b: */ + 0, /* U+01154c: */ + 0, /* U+01154d: */ + 0, /* U+01154e: */ + 0, /* U+01154f: */ + 0, /* U+011550: */ + 0, /* U+011551: */ + 0, /* U+011552: */ + 0, /* U+011553: */ + 0, /* U+011554: */ + 0, /* U+011555: */ + 0, /* U+011556: */ + 0, /* U+011557: */ + 0, /* U+011558: */ + 0, /* U+011559: */ + 0, /* U+01155a: */ + 0, /* U+01155b: */ + 0, /* U+01155c: */ + 0, /* U+01155d: */ + 0, /* U+01155e: */ + 0, /* U+01155f: */ + 0, /* U+011560: */ + 0, /* U+011561: */ + 0, /* U+011562: */ + 0, /* U+011563: */ + 0, /* U+011564: */ + 0, /* U+011565: */ + 0, /* U+011566: */ + 0, /* U+011567: */ + 0, /* U+011568: */ + 0, /* U+011569: */ + 0, /* U+01156a: */ + 0, /* U+01156b: */ + 0, /* U+01156c: */ + 0, /* U+01156d: */ + 0, /* U+01156e: */ + 0, /* U+01156f: */ + 0, /* U+011570: */ + 0, /* U+011571: */ + 0, /* U+011572: */ + 0, /* U+011573: */ + 0, /* U+011574: */ + 0, /* U+011575: */ + 0, /* U+011576: */ + 0, /* U+011577: */ + 0, /* U+011578: */ + 0, /* U+011579: */ + 0, /* U+01157a: */ + 0, /* U+01157b: */ + 0, /* U+01157c: */ + 0, /* U+01157d: */ + 0, /* U+01157e: */ + 0, /* U+01157f: */ + 0, /* U+011580: */ + 0, /* U+011581: */ + 0, /* U+011582: */ + 0, /* U+011583: */ + 0, /* U+011584: */ + 0, /* U+011585: */ + 0, /* U+011586: */ + 0, /* U+011587: */ + 0, /* U+011588: */ + 0, /* U+011589: */ + 0, /* U+01158a: */ + 0, /* U+01158b: */ + 0, /* U+01158c: */ + 0, /* U+01158d: */ + 0, /* U+01158e: */ + 0, /* U+01158f: */ + 0, /* U+011590: */ + 0, /* U+011591: */ + 0, /* U+011592: */ + 0, /* U+011593: */ + 0, /* U+011594: */ + 0, /* U+011595: */ + 0, /* U+011596: */ + 0, /* U+011597: */ + 0, /* U+011598: */ + 0, /* U+011599: */ + 0, /* U+01159a: */ + 0, /* U+01159b: */ + 0, /* U+01159c: */ + 0, /* U+01159d: */ + 0, /* U+01159e: */ + 0, /* U+01159f: */ + 0, /* U+0115a0: */ + 0, /* U+0115a1: */ + 0, /* U+0115a2: */ + 0, /* U+0115a3: */ + 0, /* U+0115a4: */ + 0, /* U+0115a5: */ + 0, /* U+0115a6: */ + 0, /* U+0115a7: */ + 0, /* U+0115a8: */ + 0, /* U+0115a9: */ + 0, /* U+0115aa: */ + 0, /* U+0115ab: */ + 0, /* U+0115ac: */ + 0, /* U+0115ad: */ + 0, /* U+0115ae: */ + 0, /* U+0115af: */ + 0, /* U+0115b0: */ + 0, /* U+0115b1: */ + 0, /* U+0115b2: */ + 0, /* U+0115b3: */ + 0, /* U+0115b4: */ + 0, /* U+0115b5: */ + 0, /* U+0115b6: */ + 0, /* U+0115b7: */ + 0, /* U+0115b8: */ + 0, /* U+0115b9: */ + 0, /* U+0115ba: */ + 0, /* U+0115bb: */ + 0, /* U+0115bc: */ + 0, /* U+0115bd: */ + 0, /* U+0115be: */ + 0, /* U+0115bf: */ + 0, /* U+0115c0: */ + 0, /* U+0115c1: */ + 0, /* U+0115c2: */ + 0, /* U+0115c3: */ + 0, /* U+0115c4: */ + 0, /* U+0115c5: */ + 0, /* U+0115c6: */ + 0, /* U+0115c7: */ + 0, /* U+0115c8: */ + 0, /* U+0115c9: */ + 0, /* U+0115ca: */ + 0, /* U+0115cb: */ + 0, /* U+0115cc: */ + 0, /* U+0115cd: */ + 0, /* U+0115ce: */ + 0, /* U+0115cf: */ + 0, /* U+0115d0: */ + 0, /* U+0115d1: */ + 0, /* U+0115d2: */ + 0, /* U+0115d3: */ + 0, /* U+0115d4: */ + 0, /* U+0115d5: */ + 0, /* U+0115d6: */ + 0, /* U+0115d7: */ + 0, /* U+0115d8: */ + 0, /* U+0115d9: */ + 0, /* U+0115da: */ + 0, /* U+0115db: */ + 0, /* U+0115dc: */ + 0, /* U+0115dd: */ + 0, /* U+0115de: */ + 0, /* U+0115df: */ + 0, /* U+0115e0: */ + 0, /* U+0115e1: */ + 0, /* U+0115e2: */ + 0, /* U+0115e3: */ + 0, /* U+0115e4: */ + 0, /* U+0115e5: */ + 0, /* U+0115e6: */ + 0, /* U+0115e7: */ + 0, /* U+0115e8: */ + 0, /* U+0115e9: */ + 0, /* U+0115ea: */ + 0, /* U+0115eb: */ + 0, /* U+0115ec: */ + 0, /* U+0115ed: */ + 0, /* U+0115ee: */ + 0, /* U+0115ef: */ + 0, /* U+0115f0: */ + 0, /* U+0115f1: */ + 0, /* U+0115f2: */ + 0, /* U+0115f3: */ + 0, /* U+0115f4: */ + 0, /* U+0115f5: */ + 0, /* U+0115f6: */ + 0, /* U+0115f7: */ + 0, /* U+0115f8: */ + 0, /* U+0115f9: */ + 0, /* U+0115fa: */ + 0, /* U+0115fb: */ + 0, /* U+0115fc: */ + 0, /* U+0115fd: */ + 0, /* U+0115fe: */ + 0, /* U+0115ff: */ + 0, /* U+011600: */ + 0, /* U+011601: */ + 0, /* U+011602: */ + 0, /* U+011603: */ + 0, /* U+011604: */ + 0, /* U+011605: */ + 0, /* U+011606: */ + 0, /* U+011607: */ + 0, /* U+011608: */ + 0, /* U+011609: */ + 0, /* U+01160a: */ + 0, /* U+01160b: */ + 0, /* U+01160c: */ + 0, /* U+01160d: */ + 0, /* U+01160e: */ + 0, /* U+01160f: */ + 0, /* U+011610: */ + 0, /* U+011611: */ + 0, /* U+011612: */ + 0, /* U+011613: */ + 0, /* U+011614: */ + 0, /* U+011615: */ + 0, /* U+011616: */ + 0, /* U+011617: */ + 0, /* U+011618: */ + 0, /* U+011619: */ + 0, /* U+01161a: */ + 0, /* U+01161b: */ + 0, /* U+01161c: */ + 0, /* U+01161d: */ + 0, /* U+01161e: */ + 0, /* U+01161f: */ + 0, /* U+011620: */ + 0, /* U+011621: */ + 0, /* U+011622: */ + 0, /* U+011623: */ + 0, /* U+011624: */ + 0, /* U+011625: */ + 0, /* U+011626: */ + 0, /* U+011627: */ + 0, /* U+011628: */ + 0, /* U+011629: */ + 0, /* U+01162a: */ + 0, /* U+01162b: */ + 0, /* U+01162c: */ + 0, /* U+01162d: */ + 0, /* U+01162e: */ + 0, /* U+01162f: */ + 0, /* U+011630: */ + 0, /* U+011631: */ + 0, /* U+011632: */ + 0, /* U+011633: */ + 0, /* U+011634: */ + 0, /* U+011635: */ + 0, /* U+011636: */ + 0, /* U+011637: */ + 0, /* U+011638: */ + 0, /* U+011639: */ + 0, /* U+01163a: */ + 0, /* U+01163b: */ + 0, /* U+01163c: */ + 0, /* U+01163d: */ + 0, /* U+01163e: */ + 0, /* U+01163f: */ + 0, /* U+011640: */ + 0, /* U+011641: */ + 0, /* U+011642: */ + 0, /* U+011643: */ + 0, /* U+011644: */ + 0, /* U+011645: */ + 0, /* U+011646: */ + 0, /* U+011647: */ + 0, /* U+011648: */ + 0, /* U+011649: */ + 0, /* U+01164a: */ + 0, /* U+01164b: */ + 0, /* U+01164c: */ + 0, /* U+01164d: */ + 0, /* U+01164e: */ + 0, /* U+01164f: */ + 0, /* U+011650: */ + 0, /* U+011651: */ + 0, /* U+011652: */ + 0, /* U+011653: */ + 0, /* U+011654: */ + 0, /* U+011655: */ + 0, /* U+011656: */ + 0, /* U+011657: */ + 0, /* U+011658: */ + 0, /* U+011659: */ + 0, /* U+01165a: */ + 0, /* U+01165b: */ + 0, /* U+01165c: */ + 0, /* U+01165d: */ + 0, /* U+01165e: */ + 0, /* U+01165f: */ + 0, /* U+011660: */ + 0, /* U+011661: */ + 0, /* U+011662: */ + 0, /* U+011663: */ + 0, /* U+011664: */ + 0, /* U+011665: */ + 0, /* U+011666: */ + 0, /* U+011667: */ + 0, /* U+011668: */ + 0, /* U+011669: */ + 0, /* U+01166a: */ + 0, /* U+01166b: */ + 0, /* U+01166c: */ + 0, /* U+01166d: */ + 0, /* U+01166e: */ + 0, /* U+01166f: */ + 0, /* U+011670: */ + 0, /* U+011671: */ + 0, /* U+011672: */ + 0, /* U+011673: */ + 0, /* U+011674: */ + 0, /* U+011675: */ + 0, /* U+011676: */ + 0, /* U+011677: */ + 0, /* U+011678: */ + 0, /* U+011679: */ + 0, /* U+01167a: */ + 0, /* U+01167b: */ + 0, /* U+01167c: */ + 0, /* U+01167d: */ + 0, /* U+01167e: */ + 0, /* U+01167f: */ + RTUNI_ALPHA, /* U+011680: TAKRI LETTER A*/ + RTUNI_ALPHA, /* U+011681: TAKRI LETTER AA*/ + RTUNI_ALPHA, /* U+011682: TAKRI LETTER I*/ + RTUNI_ALPHA, /* U+011683: TAKRI LETTER II*/ + RTUNI_ALPHA, /* U+011684: TAKRI LETTER U*/ + RTUNI_ALPHA, /* U+011685: TAKRI LETTER UU*/ + RTUNI_ALPHA, /* U+011686: TAKRI LETTER E*/ + RTUNI_ALPHA, /* U+011687: TAKRI LETTER AI*/ + RTUNI_ALPHA, /* U+011688: TAKRI LETTER O*/ + RTUNI_ALPHA, /* U+011689: TAKRI LETTER AU*/ + RTUNI_ALPHA, /* U+01168a: TAKRI LETTER KA*/ + RTUNI_ALPHA, /* U+01168b: TAKRI LETTER KHA*/ + RTUNI_ALPHA, /* U+01168c: TAKRI LETTER GA*/ + RTUNI_ALPHA, /* U+01168d: TAKRI LETTER GHA*/ + RTUNI_ALPHA, /* U+01168e: TAKRI LETTER NGA*/ + RTUNI_ALPHA, /* U+01168f: TAKRI LETTER CA*/ + RTUNI_ALPHA, /* U+011690: TAKRI LETTER CHA*/ + RTUNI_ALPHA, /* U+011691: TAKRI LETTER JA*/ + RTUNI_ALPHA, /* U+011692: TAKRI LETTER JHA*/ + RTUNI_ALPHA, /* U+011693: TAKRI LETTER NYA*/ + RTUNI_ALPHA, /* U+011694: TAKRI LETTER TTA*/ + RTUNI_ALPHA, /* U+011695: TAKRI LETTER TTHA*/ + RTUNI_ALPHA, /* U+011696: TAKRI LETTER DDA*/ + RTUNI_ALPHA, /* U+011697: TAKRI LETTER DDHA*/ + RTUNI_ALPHA, /* U+011698: TAKRI LETTER NNA*/ + RTUNI_ALPHA, /* U+011699: TAKRI LETTER TA*/ + RTUNI_ALPHA, /* U+01169a: TAKRI LETTER THA*/ + RTUNI_ALPHA, /* U+01169b: TAKRI LETTER DA*/ + RTUNI_ALPHA, /* U+01169c: TAKRI LETTER DHA*/ + RTUNI_ALPHA, /* U+01169d: TAKRI LETTER NA*/ + RTUNI_ALPHA, /* U+01169e: TAKRI LETTER PA*/ + RTUNI_ALPHA, /* U+01169f: TAKRI LETTER PHA*/ + RTUNI_ALPHA, /* U+0116a0: TAKRI LETTER BA*/ + RTUNI_ALPHA, /* U+0116a1: TAKRI LETTER BHA*/ + RTUNI_ALPHA, /* U+0116a2: TAKRI LETTER MA*/ + RTUNI_ALPHA, /* U+0116a3: TAKRI LETTER YA*/ + RTUNI_ALPHA, /* U+0116a4: TAKRI LETTER RA*/ + RTUNI_ALPHA, /* U+0116a5: TAKRI LETTER LA*/ + RTUNI_ALPHA, /* U+0116a6: TAKRI LETTER VA*/ + RTUNI_ALPHA, /* U+0116a7: TAKRI LETTER SHA*/ + RTUNI_ALPHA, /* U+0116a8: TAKRI LETTER SA*/ + RTUNI_ALPHA, /* U+0116a9: TAKRI LETTER HA*/ + RTUNI_ALPHA, /* U+0116aa: TAKRI LETTER RRA*/ + RTUNI_ALPHA, /* U+0116ab: TAKRI SIGN ANUSVARA*/ + RTUNI_ALPHA, /* U+0116ac: TAKRI SIGN VISARGA*/ + RTUNI_ALPHA, /* U+0116ad: TAKRI VOWEL SIGN AA*/ + RTUNI_ALPHA, /* U+0116ae: TAKRI VOWEL SIGN I*/ + RTUNI_ALPHA, /* U+0116af: TAKRI VOWEL SIGN II*/ + RTUNI_ALPHA, /* U+0116b0: TAKRI VOWEL SIGN U*/ + RTUNI_ALPHA, /* U+0116b1: TAKRI VOWEL SIGN UU*/ + RTUNI_ALPHA, /* U+0116b2: TAKRI VOWEL SIGN E*/ + RTUNI_ALPHA, /* U+0116b3: TAKRI VOWEL SIGN AI*/ + RTUNI_ALPHA, /* U+0116b4: TAKRI VOWEL SIGN O*/ + RTUNI_ALPHA, /* U+0116b5: TAKRI VOWEL SIGN AU*/ + 0, /* U+0116b6: TAKRI SIGN VIRAMA*/ + 0, /* U+0116b7: TAKRI SIGN NUKTA*/ + 0, /* U+0116b8: */ + 0, /* U+0116b9: */ + 0, /* U+0116ba: */ + 0, /* U+0116bb: */ + 0, /* U+0116bc: */ + 0, /* U+0116bd: */ + 0, /* U+0116be: */ + 0, /* U+0116bf: */ + RTUNI_DDIGIT, /* U+0116c0: TAKRI DIGIT ZERO*/ + RTUNI_DDIGIT, /* U+0116c1: TAKRI DIGIT ONE*/ + RTUNI_DDIGIT, /* U+0116c2: TAKRI DIGIT TWO*/ + RTUNI_DDIGIT, /* U+0116c3: TAKRI DIGIT THREE*/ + RTUNI_DDIGIT, /* U+0116c4: TAKRI DIGIT FOUR*/ + RTUNI_DDIGIT, /* U+0116c5: TAKRI DIGIT FIVE*/ + RTUNI_DDIGIT, /* U+0116c6: TAKRI DIGIT SIX*/ + RTUNI_DDIGIT, /* U+0116c7: TAKRI DIGIT SEVEN*/ + RTUNI_DDIGIT, /* U+0116c8: TAKRI DIGIT EIGHT*/ + RTUNI_DDIGIT, /* U+0116c9: TAKRI DIGIT NINE*/ + 0, /* U+0116ca: */ + 0, /* U+0116cb: */ + 0, /* U+0116cc: */ + 0, /* U+0116cd: */ + 0, /* U+0116ce: */ + 0, /* U+0116cf: */ + 0, /* U+0116d0: */ + 0, /* U+0116d1: */ + 0, /* U+0116d2: */ + 0, /* U+0116d3: */ + 0, /* U+0116d4: */ + 0, /* U+0116d5: */ + 0, /* U+0116d6: */ + 0, /* U+0116d7: */ + 0, /* U+0116d8: */ + 0, /* U+0116d9: */ + 0, /* U+0116da: */ + 0, /* U+0116db: */ + 0, /* U+0116dc: */ + 0, /* U+0116dd: */ + 0, /* U+0116de: */ + 0, /* U+0116df: */ + 0, /* U+0116e0: */ + 0, /* U+0116e1: */ + 0, /* U+0116e2: */ + 0, /* U+0116e3: */ + 0, /* U+0116e4: */ + 0, /* U+0116e5: */ + 0, /* U+0116e6: */ + 0, /* U+0116e7: */ + 0, /* U+0116e8: */ + 0, /* U+0116e9: */ + 0, /* U+0116ea: */ + 0, /* U+0116eb: */ + 0, /* U+0116ec: */ + 0, /* U+0116ed: */ + 0, /* U+0116ee: */ + 0, /* U+0116ef: */ + 0, /* U+0116f0: */ + 0, /* U+0116f1: */ + 0, /* U+0116f2: */ + 0, /* U+0116f3: */ + 0, /* U+0116f4: */ + 0, /* U+0116f5: */ + 0, /* U+0116f6: */ + 0, /* U+0116f7: */ + 0, /* U+0116f8: */ + 0, /* U+0116f9: */ + 0, /* U+0116fa: */ + 0, /* U+0116fb: */ + 0, /* U+0116fc: */ + 0, /* U+0116fd: */ + 0, /* U+0116fe: */ + 0, /* U+0116ff: */ + 0, /* U+011700: */ + 0, /* U+011701: */ + 0, /* U+011702: */ + 0, /* U+011703: */ + 0, /* U+011704: */ + 0, /* U+011705: */ + 0, /* U+011706: */ + 0, /* U+011707: */ + 0, /* U+011708: */ + 0, /* U+011709: */ + 0, /* U+01170a: */ + 0, /* U+01170b: */ + 0, /* U+01170c: */ + 0, /* U+01170d: */ + 0, /* U+01170e: */ + 0, /* U+01170f: */ + 0, /* U+011710: */ + 0, /* U+011711: */ + 0, /* U+011712: */ + 0, /* U+011713: */ + 0, /* U+011714: */ + 0, /* U+011715: */ + 0, /* U+011716: */ + 0, /* U+011717: */ + 0, /* U+011718: */ + 0, /* U+011719: */ + 0, /* U+01171a: */ + 0, /* U+01171b: */ + 0, /* U+01171c: */ + 0, /* U+01171d: */ + 0, /* U+01171e: */ + 0, /* U+01171f: */ + 0, /* U+011720: */ + 0, /* U+011721: */ + 0, /* U+011722: */ + 0, /* U+011723: */ + 0, /* U+011724: */ + 0, /* U+011725: */ + 0, /* U+011726: */ + 0, /* U+011727: */ + 0, /* U+011728: */ + 0, /* U+011729: */ + 0, /* U+01172a: */ + 0, /* U+01172b: */ + 0, /* U+01172c: */ + 0, /* U+01172d: */ + 0, /* U+01172e: */ + 0, /* U+01172f: */ + 0, /* U+011730: */ + 0, /* U+011731: */ + 0, /* U+011732: */ + 0, /* U+011733: */ + 0, /* U+011734: */ + 0, /* U+011735: */ + 0, /* U+011736: */ + 0, /* U+011737: */ + 0, /* U+011738: */ + 0, /* U+011739: */ + 0, /* U+01173a: */ + 0, /* U+01173b: */ + 0, /* U+01173c: */ + 0, /* U+01173d: */ + 0, /* U+01173e: */ + 0, /* U+01173f: */ + 0, /* U+011740: */ + 0, /* U+011741: */ + 0, /* U+011742: */ + 0, /* U+011743: */ + 0, /* U+011744: */ + 0, /* U+011745: */ + 0, /* U+011746: */ + 0, /* U+011747: */ + 0, /* U+011748: */ + 0, /* U+011749: */ + 0, /* U+01174a: */ + 0, /* U+01174b: */ + 0, /* U+01174c: */ + 0, /* U+01174d: */ + 0, /* U+01174e: */ + 0, /* U+01174f: */ + 0, /* U+011750: */ + 0, /* U+011751: */ + 0, /* U+011752: */ + 0, /* U+011753: */ + 0, /* U+011754: */ + 0, /* U+011755: */ + 0, /* U+011756: */ + 0, /* U+011757: */ + 0, /* U+011758: */ + 0, /* U+011759: */ + 0, /* U+01175a: */ + 0, /* U+01175b: */ + 0, /* U+01175c: */ + 0, /* U+01175d: */ + 0, /* U+01175e: */ + 0, /* U+01175f: */ + 0, /* U+011760: */ + 0, /* U+011761: */ + 0, /* U+011762: */ + 0, /* U+011763: */ + 0, /* U+011764: */ + 0, /* U+011765: */ + 0, /* U+011766: */ + 0, /* U+011767: */ + 0, /* U+011768: */ + 0, /* U+011769: */ + 0, /* U+01176a: */ + 0, /* U+01176b: */ + 0, /* U+01176c: */ + 0, /* U+01176d: */ + 0, /* U+01176e: */ + 0, /* U+01176f: */ + 0, /* U+011770: */ + 0, /* U+011771: */ + 0, /* U+011772: */ + 0, /* U+011773: */ + 0, /* U+011774: */ + 0, /* U+011775: */ + 0, /* U+011776: */ + 0, /* U+011777: */ + 0, /* U+011778: */ + 0, /* U+011779: */ + 0, /* U+01177a: */ + 0, /* U+01177b: */ + 0, /* U+01177c: */ + 0, /* U+01177d: */ + 0, /* U+01177e: */ + 0, /* U+01177f: */ + 0, /* U+011780: */ + 0, /* U+011781: */ + 0, /* U+011782: */ + 0, /* U+011783: */ + 0, /* U+011784: */ + 0, /* U+011785: */ + 0, /* U+011786: */ + 0, /* U+011787: */ + 0, /* U+011788: */ + 0, /* U+011789: */ + 0, /* U+01178a: */ + 0, /* U+01178b: */ + 0, /* U+01178c: */ + 0, /* U+01178d: */ + 0, /* U+01178e: */ + 0, /* U+01178f: */ + 0, /* U+011790: */ + 0, /* U+011791: */ + 0, /* U+011792: */ + 0, /* U+011793: */ + 0, /* U+011794: */ + 0, /* U+011795: */ + 0, /* U+011796: */ + 0, /* U+011797: */ + 0, /* U+011798: */ + 0, /* U+011799: */ + 0, /* U+01179a: */ + 0, /* U+01179b: */ + 0, /* U+01179c: */ + 0, /* U+01179d: */ + 0, /* U+01179e: */ + 0, /* U+01179f: */ + 0, /* U+0117a0: */ + 0, /* U+0117a1: */ + 0, /* U+0117a2: */ + 0, /* U+0117a3: */ + 0, /* U+0117a4: */ + 0, /* U+0117a5: */ + 0, /* U+0117a6: */ + 0, /* U+0117a7: */ + 0, /* U+0117a8: */ + 0, /* U+0117a9: */ + 0, /* U+0117aa: */ + 0, /* U+0117ab: */ + 0, /* U+0117ac: */ + 0, /* U+0117ad: */ + 0, /* U+0117ae: */ + 0, /* U+0117af: */ + 0, /* U+0117b0: */ + 0, /* U+0117b1: */ + 0, /* U+0117b2: */ + 0, /* U+0117b3: */ + 0, /* U+0117b4: */ + 0, /* U+0117b5: */ + 0, /* U+0117b6: */ + 0, /* U+0117b7: */ + 0, /* U+0117b8: */ + 0, /* U+0117b9: */ + 0, /* U+0117ba: */ + 0, /* U+0117bb: */ + 0, /* U+0117bc: */ + 0, /* U+0117bd: */ + 0, /* U+0117be: */ + 0, /* U+0117bf: */ + 0, /* U+0117c0: */ + 0, /* U+0117c1: */ + 0, /* U+0117c2: */ + 0, /* U+0117c3: */ + 0, /* U+0117c4: */ + 0, /* U+0117c5: */ + 0, /* U+0117c6: */ + 0, /* U+0117c7: */ + 0, /* U+0117c8: */ + 0, /* U+0117c9: */ + 0, /* U+0117ca: */ + 0, /* U+0117cb: */ + 0, /* U+0117cc: */ + 0, /* U+0117cd: */ + 0, /* U+0117ce: */ + 0, /* U+0117cf: */ + 0, /* U+0117d0: */ + 0, /* U+0117d1: */ + 0, /* U+0117d2: */ + 0, /* U+0117d3: */ + 0, /* U+0117d4: */ + 0, /* U+0117d5: */ + 0, /* U+0117d6: */ + 0, /* U+0117d7: */ + 0, /* U+0117d8: */ + 0, /* U+0117d9: */ + 0, /* U+0117da: */ + 0, /* U+0117db: */ + 0, /* U+0117dc: */ + 0, /* U+0117dd: */ + 0, /* U+0117de: */ + 0, /* U+0117df: */ + 0, /* U+0117e0: */ + 0, /* U+0117e1: */ + 0, /* U+0117e2: */ + 0, /* U+0117e3: */ + 0, /* U+0117e4: */ + 0, /* U+0117e5: */ + 0, /* U+0117e6: */ + 0, /* U+0117e7: */ + 0, /* U+0117e8: */ + 0, /* U+0117e9: */ + 0, /* U+0117ea: */ + 0, /* U+0117eb: */ + 0, /* U+0117ec: */ + 0, /* U+0117ed: */ + 0, /* U+0117ee: */ + 0, /* U+0117ef: */ + 0, /* U+0117f0: */ + 0, /* U+0117f1: */ + 0, /* U+0117f2: */ + 0, /* U+0117f3: */ + 0, /* U+0117f4: */ + 0, /* U+0117f5: */ + 0, /* U+0117f6: */ + 0, /* U+0117f7: */ + 0, /* U+0117f8: */ + 0, /* U+0117f9: */ + 0, /* U+0117fa: */ + 0, /* U+0117fb: */ + 0, /* U+0117fc: */ + 0, /* U+0117fd: */ + 0, /* U+0117fe: */ + 0, /* U+0117ff: */ + 0, /* U+011800: */ + 0, /* U+011801: */ + 0, /* U+011802: */ + 0, /* U+011803: */ + 0, /* U+011804: */ + 0, /* U+011805: */ + 0, /* U+011806: */ + 0, /* U+011807: */ + 0, /* U+011808: */ + 0, /* U+011809: */ + 0, /* U+01180a: */ + 0, /* U+01180b: */ + 0, /* U+01180c: */ + 0, /* U+01180d: */ + 0, /* U+01180e: */ + 0, /* U+01180f: */ + 0, /* U+011810: */ + 0, /* U+011811: */ + 0, /* U+011812: */ + 0, /* U+011813: */ + 0, /* U+011814: */ + 0, /* U+011815: */ + 0, /* U+011816: */ + 0, /* U+011817: */ + 0, /* U+011818: */ + 0, /* U+011819: */ + 0, /* U+01181a: */ + 0, /* U+01181b: */ + 0, /* U+01181c: */ + 0, /* U+01181d: */ + 0, /* U+01181e: */ + 0, /* U+01181f: */ + 0, /* U+011820: */ + 0, /* U+011821: */ + 0, /* U+011822: */ + 0, /* U+011823: */ + 0, /* U+011824: */ + 0, /* U+011825: */ + 0, /* U+011826: */ + 0, /* U+011827: */ + 0, /* U+011828: */ + 0, /* U+011829: */ + 0, /* U+01182a: */ + 0, /* U+01182b: */ + 0, /* U+01182c: */ + 0, /* U+01182d: */ + 0, /* U+01182e: */ + 0, /* U+01182f: */ + 0, /* U+011830: */ + 0, /* U+011831: */ + 0, /* U+011832: */ + 0, /* U+011833: */ + 0, /* U+011834: */ + 0, /* U+011835: */ + 0, /* U+011836: */ + 0, /* U+011837: */ + 0, /* U+011838: */ + 0, /* U+011839: */ + 0, /* U+01183a: */ + 0, /* U+01183b: */ + 0, /* U+01183c: */ + 0, /* U+01183d: */ + 0, /* U+01183e: */ + 0, /* U+01183f: */ + 0, /* U+011840: */ + 0, /* U+011841: */ + 0, /* U+011842: */ + 0, /* U+011843: */ + 0, /* U+011844: */ + 0, /* U+011845: */ + 0, /* U+011846: */ + 0, /* U+011847: */ + 0, /* U+011848: */ + 0, /* U+011849: */ + 0, /* U+01184a: */ + 0, /* U+01184b: */ + 0, /* U+01184c: */ + 0, /* U+01184d: */ + 0, /* U+01184e: */ + 0, /* U+01184f: */ + 0, /* U+011850: */ + 0, /* U+011851: */ + 0, /* U+011852: */ + 0, /* U+011853: */ + 0, /* U+011854: */ + 0, /* U+011855: */ + 0, /* U+011856: */ + 0, /* U+011857: */ + 0, /* U+011858: */ + 0, /* U+011859: */ + 0, /* U+01185a: */ + 0, /* U+01185b: */ + 0, /* U+01185c: */ + 0, /* U+01185d: */ + 0, /* U+01185e: */ + 0, /* U+01185f: */ + 0, /* U+011860: */ + 0, /* U+011861: */ + 0, /* U+011862: */ + 0, /* U+011863: */ + 0, /* U+011864: */ + 0, /* U+011865: */ + 0, /* U+011866: */ + 0, /* U+011867: */ + 0, /* U+011868: */ + 0, /* U+011869: */ + 0, /* U+01186a: */ + 0, /* U+01186b: */ + 0, /* U+01186c: */ + 0, /* U+01186d: */ + 0, /* U+01186e: */ + 0, /* U+01186f: */ + 0, /* U+011870: */ + 0, /* U+011871: */ + 0, /* U+011872: */ + 0, /* U+011873: */ + 0, /* U+011874: */ + 0, /* U+011875: */ + 0, /* U+011876: */ + 0, /* U+011877: */ + 0, /* U+011878: */ + 0, /* U+011879: */ + 0, /* U+01187a: */ + 0, /* U+01187b: */ + 0, /* U+01187c: */ + 0, /* U+01187d: */ + 0, /* U+01187e: */ + 0, /* U+01187f: */ + 0, /* U+011880: */ + 0, /* U+011881: */ + 0, /* U+011882: */ + 0, /* U+011883: */ + 0, /* U+011884: */ + 0, /* U+011885: */ + 0, /* U+011886: */ + 0, /* U+011887: */ + 0, /* U+011888: */ + 0, /* U+011889: */ + 0, /* U+01188a: */ + 0, /* U+01188b: */ + 0, /* U+01188c: */ + 0, /* U+01188d: */ + 0, /* U+01188e: */ + 0, /* U+01188f: */ + 0, /* U+011890: */ + 0, /* U+011891: */ + 0, /* U+011892: */ + 0, /* U+011893: */ + 0, /* U+011894: */ + 0, /* U+011895: */ + 0, /* U+011896: */ + 0, /* U+011897: */ + 0, /* U+011898: */ + 0, /* U+011899: */ + 0, /* U+01189a: */ + 0, /* U+01189b: */ + 0, /* U+01189c: */ + 0, /* U+01189d: */ + 0, /* U+01189e: */ + 0, /* U+01189f: */ + 0, /* U+0118a0: */ + 0, /* U+0118a1: */ + 0, /* U+0118a2: */ + 0, /* U+0118a3: */ + 0, /* U+0118a4: */ + 0, /* U+0118a5: */ + 0, /* U+0118a6: */ + 0, /* U+0118a7: */ + 0, /* U+0118a8: */ + 0, /* U+0118a9: */ + 0, /* U+0118aa: */ + 0, /* U+0118ab: */ + 0, /* U+0118ac: */ + 0, /* U+0118ad: */ + 0, /* U+0118ae: */ + 0, /* U+0118af: */ + 0, /* U+0118b0: */ + 0, /* U+0118b1: */ + 0, /* U+0118b2: */ + 0, /* U+0118b3: */ + 0, /* U+0118b4: */ + 0, /* U+0118b5: */ + 0, /* U+0118b6: */ + 0, /* U+0118b7: */ + 0, /* U+0118b8: */ + 0, /* U+0118b9: */ + 0, /* U+0118ba: */ + 0, /* U+0118bb: */ + 0, /* U+0118bc: */ + 0, /* U+0118bd: */ + 0, /* U+0118be: */ + 0, /* U+0118bf: */ + 0, /* U+0118c0: */ + 0, /* U+0118c1: */ + 0, /* U+0118c2: */ + 0, /* U+0118c3: */ + 0, /* U+0118c4: */ + 0, /* U+0118c5: */ + 0, /* U+0118c6: */ + 0, /* U+0118c7: */ + 0, /* U+0118c8: */ + 0, /* U+0118c9: */ + 0, /* U+0118ca: */ + 0, /* U+0118cb: */ + 0, /* U+0118cc: */ + 0, /* U+0118cd: */ + 0, /* U+0118ce: */ + 0, /* U+0118cf: */ + 0, /* U+0118d0: */ + 0, /* U+0118d1: */ + 0, /* U+0118d2: */ + 0, /* U+0118d3: */ + 0, /* U+0118d4: */ + 0, /* U+0118d5: */ + 0, /* U+0118d6: */ + 0, /* U+0118d7: */ + 0, /* U+0118d8: */ + 0, /* U+0118d9: */ + 0, /* U+0118da: */ + 0, /* U+0118db: */ + 0, /* U+0118dc: */ + 0, /* U+0118dd: */ + 0, /* U+0118de: */ + 0, /* U+0118df: */ + 0, /* U+0118e0: */ + 0, /* U+0118e1: */ + 0, /* U+0118e2: */ + 0, /* U+0118e3: */ + 0, /* U+0118e4: */ + 0, /* U+0118e5: */ + 0, /* U+0118e6: */ + 0, /* U+0118e7: */ + 0, /* U+0118e8: */ + 0, /* U+0118e9: */ + 0, /* U+0118ea: */ + 0, /* U+0118eb: */ + 0, /* U+0118ec: */ + 0, /* U+0118ed: */ + 0, /* U+0118ee: */ + 0, /* U+0118ef: */ + 0, /* U+0118f0: */ + 0, /* U+0118f1: */ + 0, /* U+0118f2: */ + 0, /* U+0118f3: */ + 0, /* U+0118f4: */ + 0, /* U+0118f5: */ + 0, /* U+0118f6: */ + 0, /* U+0118f7: */ + 0, /* U+0118f8: */ + 0, /* U+0118f9: */ + 0, /* U+0118fa: */ + 0, /* U+0118fb: */ + 0, /* U+0118fc: */ + 0, /* U+0118fd: */ + 0, /* U+0118fe: */ + 0, /* U+0118ff: */ + 0, /* U+011900: */ + 0, /* U+011901: */ + 0, /* U+011902: */ + 0, /* U+011903: */ + 0, /* U+011904: */ + 0, /* U+011905: */ + 0, /* U+011906: */ + 0, /* U+011907: */ + 0, /* U+011908: */ + 0, /* U+011909: */ + 0, /* U+01190a: */ + 0, /* U+01190b: */ + 0, /* U+01190c: */ + 0, /* U+01190d: */ + 0, /* U+01190e: */ + 0, /* U+01190f: */ + 0, /* U+011910: */ + 0, /* U+011911: */ + 0, /* U+011912: */ + 0, /* U+011913: */ + 0, /* U+011914: */ + 0, /* U+011915: */ + 0, /* U+011916: */ + 0, /* U+011917: */ + 0, /* U+011918: */ + 0, /* U+011919: */ + 0, /* U+01191a: */ + 0, /* U+01191b: */ + 0, /* U+01191c: */ + 0, /* U+01191d: */ + 0, /* U+01191e: */ + 0, /* U+01191f: */ + 0, /* U+011920: */ + 0, /* U+011921: */ + 0, /* U+011922: */ + 0, /* U+011923: */ + 0, /* U+011924: */ + 0, /* U+011925: */ + 0, /* U+011926: */ + 0, /* U+011927: */ + 0, /* U+011928: */ + 0, /* U+011929: */ + 0, /* U+01192a: */ + 0, /* U+01192b: */ + 0, /* U+01192c: */ + 0, /* U+01192d: */ + 0, /* U+01192e: */ + 0, /* U+01192f: */ + 0, /* U+011930: */ + 0, /* U+011931: */ + 0, /* U+011932: */ + 0, /* U+011933: */ + 0, /* U+011934: */ + 0, /* U+011935: */ + 0, /* U+011936: */ + 0, /* U+011937: */ + 0, /* U+011938: */ + 0, /* U+011939: */ + 0, /* U+01193a: */ + 0, /* U+01193b: */ + 0, /* U+01193c: */ + 0, /* U+01193d: */ + 0, /* U+01193e: */ + 0, /* U+01193f: */ + 0, /* U+011940: */ + 0, /* U+011941: */ + 0, /* U+011942: */ + 0, /* U+011943: */ + 0, /* U+011944: */ + 0, /* U+011945: */ + 0, /* U+011946: */ + 0, /* U+011947: */ + 0, /* U+011948: */ + 0, /* U+011949: */ + 0, /* U+01194a: */ + 0, /* U+01194b: */ + 0, /* U+01194c: */ + 0, /* U+01194d: */ + 0, /* U+01194e: */ + 0, /* U+01194f: */ + 0, /* U+011950: */ + 0, /* U+011951: */ + 0, /* U+011952: */ + 0, /* U+011953: */ + 0, /* U+011954: */ + 0, /* U+011955: */ + 0, /* U+011956: */ + 0, /* U+011957: */ + 0, /* U+011958: */ + 0, /* U+011959: */ + 0, /* U+01195a: */ + 0, /* U+01195b: */ + 0, /* U+01195c: */ + 0, /* U+01195d: */ + 0, /* U+01195e: */ + 0, /* U+01195f: */ + 0, /* U+011960: */ + 0, /* U+011961: */ + 0, /* U+011962: */ + 0, /* U+011963: */ + 0, /* U+011964: */ + 0, /* U+011965: */ + 0, /* U+011966: */ + 0, /* U+011967: */ + 0, /* U+011968: */ + 0, /* U+011969: */ + 0, /* U+01196a: */ + 0, /* U+01196b: */ + 0, /* U+01196c: */ + 0, /* U+01196d: */ + 0, /* U+01196e: */ + 0, /* U+01196f: */ + 0, /* U+011970: */ + 0, /* U+011971: */ + 0, /* U+011972: */ + 0, /* U+011973: */ + 0, /* U+011974: */ + 0, /* U+011975: */ + 0, /* U+011976: */ + 0, /* U+011977: */ + 0, /* U+011978: */ + 0, /* U+011979: */ + 0, /* U+01197a: */ + 0, /* U+01197b: */ + 0, /* U+01197c: */ + 0, /* U+01197d: */ + 0, /* U+01197e: */ + 0, /* U+01197f: */ + 0, /* U+011980: */ + 0, /* U+011981: */ + 0, /* U+011982: */ + 0, /* U+011983: */ + 0, /* U+011984: */ + 0, /* U+011985: */ + 0, /* U+011986: */ + 0, /* U+011987: */ + 0, /* U+011988: */ + 0, /* U+011989: */ + 0, /* U+01198a: */ + 0, /* U+01198b: */ + 0, /* U+01198c: */ + 0, /* U+01198d: */ + 0, /* U+01198e: */ + 0, /* U+01198f: */ + 0, /* U+011990: */ + 0, /* U+011991: */ + 0, /* U+011992: */ + 0, /* U+011993: */ + 0, /* U+011994: */ + 0, /* U+011995: */ + 0, /* U+011996: */ + 0, /* U+011997: */ + 0, /* U+011998: */ + 0, /* U+011999: */ + 0, /* U+01199a: */ + 0, /* U+01199b: */ + 0, /* U+01199c: */ + 0, /* U+01199d: */ + 0, /* U+01199e: */ + 0, /* U+01199f: */ + 0, /* U+0119a0: */ + 0, /* U+0119a1: */ + 0, /* U+0119a2: */ + 0, /* U+0119a3: */ + 0, /* U+0119a4: */ + 0, /* U+0119a5: */ + 0, /* U+0119a6: */ + 0, /* U+0119a7: */ + 0, /* U+0119a8: */ + 0, /* U+0119a9: */ + 0, /* U+0119aa: */ + 0, /* U+0119ab: */ + 0, /* U+0119ac: */ + 0, /* U+0119ad: */ + 0, /* U+0119ae: */ + 0, /* U+0119af: */ + 0, /* U+0119b0: */ + 0, /* U+0119b1: */ + 0, /* U+0119b2: */ + 0, /* U+0119b3: */ + 0, /* U+0119b4: */ + 0, /* U+0119b5: */ + 0, /* U+0119b6: */ + 0, /* U+0119b7: */ + 0, /* U+0119b8: */ + 0, /* U+0119b9: */ + 0, /* U+0119ba: */ + 0, /* U+0119bb: */ + 0, /* U+0119bc: */ + 0, /* U+0119bd: */ + 0, /* U+0119be: */ + 0, /* U+0119bf: */ + 0, /* U+0119c0: */ + 0, /* U+0119c1: */ + 0, /* U+0119c2: */ + 0, /* U+0119c3: */ + 0, /* U+0119c4: */ + 0, /* U+0119c5: */ + 0, /* U+0119c6: */ + 0, /* U+0119c7: */ + 0, /* U+0119c8: */ + 0, /* U+0119c9: */ + 0, /* U+0119ca: */ + 0, /* U+0119cb: */ + 0, /* U+0119cc: */ + 0, /* U+0119cd: */ + 0, /* U+0119ce: */ + 0, /* U+0119cf: */ + 0, /* U+0119d0: */ + 0, /* U+0119d1: */ + 0, /* U+0119d2: */ + 0, /* U+0119d3: */ + 0, /* U+0119d4: */ + 0, /* U+0119d5: */ + 0, /* U+0119d6: */ + 0, /* U+0119d7: */ + 0, /* U+0119d8: */ + 0, /* U+0119d9: */ + 0, /* U+0119da: */ + 0, /* U+0119db: */ + 0, /* U+0119dc: */ + 0, /* U+0119dd: */ + 0, /* U+0119de: */ + 0, /* U+0119df: */ + 0, /* U+0119e0: */ + 0, /* U+0119e1: */ + 0, /* U+0119e2: */ + 0, /* U+0119e3: */ + 0, /* U+0119e4: */ + 0, /* U+0119e5: */ + 0, /* U+0119e6: */ + 0, /* U+0119e7: */ + 0, /* U+0119e8: */ + 0, /* U+0119e9: */ + 0, /* U+0119ea: */ + 0, /* U+0119eb: */ + 0, /* U+0119ec: */ + 0, /* U+0119ed: */ + 0, /* U+0119ee: */ + 0, /* U+0119ef: */ + 0, /* U+0119f0: */ + 0, /* U+0119f1: */ + 0, /* U+0119f2: */ + 0, /* U+0119f3: */ + 0, /* U+0119f4: */ + 0, /* U+0119f5: */ + 0, /* U+0119f6: */ + 0, /* U+0119f7: */ + 0, /* U+0119f8: */ + 0, /* U+0119f9: */ + 0, /* U+0119fa: */ + 0, /* U+0119fb: */ + 0, /* U+0119fc: */ + 0, /* U+0119fd: */ + 0, /* U+0119fe: */ + 0, /* U+0119ff: */ + 0, /* U+011a00: */ + 0, /* U+011a01: */ + 0, /* U+011a02: */ + 0, /* U+011a03: */ + 0, /* U+011a04: */ + 0, /* U+011a05: */ + 0, /* U+011a06: */ + 0, /* U+011a07: */ + 0, /* U+011a08: */ + 0, /* U+011a09: */ + 0, /* U+011a0a: */ + 0, /* U+011a0b: */ + 0, /* U+011a0c: */ + 0, /* U+011a0d: */ + 0, /* U+011a0e: */ + 0, /* U+011a0f: */ + 0, /* U+011a10: */ + 0, /* U+011a11: */ + 0, /* U+011a12: */ + 0, /* U+011a13: */ + 0, /* U+011a14: */ + 0, /* U+011a15: */ + 0, /* U+011a16: */ + 0, /* U+011a17: */ + 0, /* U+011a18: */ + 0, /* U+011a19: */ + 0, /* U+011a1a: */ + 0, /* U+011a1b: */ + 0, /* U+011a1c: */ + 0, /* U+011a1d: */ + 0, /* U+011a1e: */ + 0, /* U+011a1f: */ + 0, /* U+011a20: */ + 0, /* U+011a21: */ + 0, /* U+011a22: */ + 0, /* U+011a23: */ + 0, /* U+011a24: */ + 0, /* U+011a25: */ + 0, /* U+011a26: */ + 0, /* U+011a27: */ + 0, /* U+011a28: */ + 0, /* U+011a29: */ + 0, /* U+011a2a: */ + 0, /* U+011a2b: */ + 0, /* U+011a2c: */ + 0, /* U+011a2d: */ + 0, /* U+011a2e: */ + 0, /* U+011a2f: */ + 0, /* U+011a30: */ + 0, /* U+011a31: */ + 0, /* U+011a32: */ + 0, /* U+011a33: */ + 0, /* U+011a34: */ + 0, /* U+011a35: */ + 0, /* U+011a36: */ + 0, /* U+011a37: */ + 0, /* U+011a38: */ + 0, /* U+011a39: */ + 0, /* U+011a3a: */ + 0, /* U+011a3b: */ + 0, /* U+011a3c: */ + 0, /* U+011a3d: */ + 0, /* U+011a3e: */ + 0, /* U+011a3f: */ + 0, /* U+011a40: */ + 0, /* U+011a41: */ + 0, /* U+011a42: */ + 0, /* U+011a43: */ + 0, /* U+011a44: */ + 0, /* U+011a45: */ + 0, /* U+011a46: */ + 0, /* U+011a47: */ + 0, /* U+011a48: */ + 0, /* U+011a49: */ + 0, /* U+011a4a: */ + 0, /* U+011a4b: */ + 0, /* U+011a4c: */ + 0, /* U+011a4d: */ + 0, /* U+011a4e: */ + 0, /* U+011a4f: */ + 0, /* U+011a50: */ + 0, /* U+011a51: */ + 0, /* U+011a52: */ + 0, /* U+011a53: */ + 0, /* U+011a54: */ + 0, /* U+011a55: */ + 0, /* U+011a56: */ + 0, /* U+011a57: */ + 0, /* U+011a58: */ + 0, /* U+011a59: */ + 0, /* U+011a5a: */ + 0, /* U+011a5b: */ + 0, /* U+011a5c: */ + 0, /* U+011a5d: */ + 0, /* U+011a5e: */ + 0, /* U+011a5f: */ + 0, /* U+011a60: */ + 0, /* U+011a61: */ + 0, /* U+011a62: */ + 0, /* U+011a63: */ + 0, /* U+011a64: */ + 0, /* U+011a65: */ + 0, /* U+011a66: */ + 0, /* U+011a67: */ + 0, /* U+011a68: */ + 0, /* U+011a69: */ + 0, /* U+011a6a: */ + 0, /* U+011a6b: */ + 0, /* U+011a6c: */ + 0, /* U+011a6d: */ + 0, /* U+011a6e: */ + 0, /* U+011a6f: */ + 0, /* U+011a70: */ + 0, /* U+011a71: */ + 0, /* U+011a72: */ + 0, /* U+011a73: */ + 0, /* U+011a74: */ + 0, /* U+011a75: */ + 0, /* U+011a76: */ + 0, /* U+011a77: */ + 0, /* U+011a78: */ + 0, /* U+011a79: */ + 0, /* U+011a7a: */ + 0, /* U+011a7b: */ + 0, /* U+011a7c: */ + 0, /* U+011a7d: */ + 0, /* U+011a7e: */ + 0, /* U+011a7f: */ + 0, /* U+011a80: */ + 0, /* U+011a81: */ + 0, /* U+011a82: */ + 0, /* U+011a83: */ + 0, /* U+011a84: */ + 0, /* U+011a85: */ + 0, /* U+011a86: */ + 0, /* U+011a87: */ + 0, /* U+011a88: */ + 0, /* U+011a89: */ + 0, /* U+011a8a: */ + 0, /* U+011a8b: */ + 0, /* U+011a8c: */ + 0, /* U+011a8d: */ + 0, /* U+011a8e: */ + 0, /* U+011a8f: */ + 0, /* U+011a90: */ + 0, /* U+011a91: */ + 0, /* U+011a92: */ + 0, /* U+011a93: */ + 0, /* U+011a94: */ + 0, /* U+011a95: */ + 0, /* U+011a96: */ + 0, /* U+011a97: */ + 0, /* U+011a98: */ + 0, /* U+011a99: */ + 0, /* U+011a9a: */ + 0, /* U+011a9b: */ + 0, /* U+011a9c: */ + 0, /* U+011a9d: */ + 0, /* U+011a9e: */ + 0, /* U+011a9f: */ + 0, /* U+011aa0: */ + 0, /* U+011aa1: */ + 0, /* U+011aa2: */ + 0, /* U+011aa3: */ + 0, /* U+011aa4: */ + 0, /* U+011aa5: */ + 0, /* U+011aa6: */ + 0, /* U+011aa7: */ + 0, /* U+011aa8: */ + 0, /* U+011aa9: */ + 0, /* U+011aaa: */ + 0, /* U+011aab: */ + 0, /* U+011aac: */ + 0, /* U+011aad: */ + 0, /* U+011aae: */ + 0, /* U+011aaf: */ + 0, /* U+011ab0: */ + 0, /* U+011ab1: */ + 0, /* U+011ab2: */ + 0, /* U+011ab3: */ + 0, /* U+011ab4: */ + 0, /* U+011ab5: */ + 0, /* U+011ab6: */ + 0, /* U+011ab7: */ + 0, /* U+011ab8: */ + 0, /* U+011ab9: */ + 0, /* U+011aba: */ + 0, /* U+011abb: */ + 0, /* U+011abc: */ + 0, /* U+011abd: */ + 0, /* U+011abe: */ + 0, /* U+011abf: */ + 0, /* U+011ac0: */ + 0, /* U+011ac1: */ + 0, /* U+011ac2: */ + 0, /* U+011ac3: */ + 0, /* U+011ac4: */ + 0, /* U+011ac5: */ + 0, /* U+011ac6: */ + 0, /* U+011ac7: */ + 0, /* U+011ac8: */ + 0, /* U+011ac9: */ + 0, /* U+011aca: */ + 0, /* U+011acb: */ + 0, /* U+011acc: */ + 0, /* U+011acd: */ + 0, /* U+011ace: */ + 0, /* U+011acf: */ + 0, /* U+011ad0: */ + 0, /* U+011ad1: */ + 0, /* U+011ad2: */ + 0, /* U+011ad3: */ + 0, /* U+011ad4: */ + 0, /* U+011ad5: */ + 0, /* U+011ad6: */ + 0, /* U+011ad7: */ + 0, /* U+011ad8: */ + 0, /* U+011ad9: */ + 0, /* U+011ada: */ + 0, /* U+011adb: */ + 0, /* U+011adc: */ + 0, /* U+011add: */ + 0, /* U+011ade: */ + 0, /* U+011adf: */ + 0, /* U+011ae0: */ + 0, /* U+011ae1: */ + 0, /* U+011ae2: */ + 0, /* U+011ae3: */ + 0, /* U+011ae4: */ + 0, /* U+011ae5: */ + 0, /* U+011ae6: */ + 0, /* U+011ae7: */ + 0, /* U+011ae8: */ + 0, /* U+011ae9: */ + 0, /* U+011aea: */ + 0, /* U+011aeb: */ + 0, /* U+011aec: */ + 0, /* U+011aed: */ + 0, /* U+011aee: */ + 0, /* U+011aef: */ + 0, /* U+011af0: */ + 0, /* U+011af1: */ + 0, /* U+011af2: */ + 0, /* U+011af3: */ + 0, /* U+011af4: */ + 0, /* U+011af5: */ + 0, /* U+011af6: */ + 0, /* U+011af7: */ + 0, /* U+011af8: */ + 0, /* U+011af9: */ + 0, /* U+011afa: */ + 0, /* U+011afb: */ + 0, /* U+011afc: */ + 0, /* U+011afd: */ + 0, /* U+011afe: */ + 0, /* U+011aff: */ + 0, /* U+011b00: */ + 0, /* U+011b01: */ + 0, /* U+011b02: */ + 0, /* U+011b03: */ + 0, /* U+011b04: */ + 0, /* U+011b05: */ + 0, /* U+011b06: */ + 0, /* U+011b07: */ + 0, /* U+011b08: */ + 0, /* U+011b09: */ + 0, /* U+011b0a: */ + 0, /* U+011b0b: */ + 0, /* U+011b0c: */ + 0, /* U+011b0d: */ + 0, /* U+011b0e: */ + 0, /* U+011b0f: */ + 0, /* U+011b10: */ + 0, /* U+011b11: */ + 0, /* U+011b12: */ + 0, /* U+011b13: */ + 0, /* U+011b14: */ + 0, /* U+011b15: */ + 0, /* U+011b16: */ + 0, /* U+011b17: */ + 0, /* U+011b18: */ + 0, /* U+011b19: */ + 0, /* U+011b1a: */ + 0, /* U+011b1b: */ + 0, /* U+011b1c: */ + 0, /* U+011b1d: */ + 0, /* U+011b1e: */ + 0, /* U+011b1f: */ + 0, /* U+011b20: */ + 0, /* U+011b21: */ + 0, /* U+011b22: */ + 0, /* U+011b23: */ + 0, /* U+011b24: */ + 0, /* U+011b25: */ + 0, /* U+011b26: */ + 0, /* U+011b27: */ + 0, /* U+011b28: */ + 0, /* U+011b29: */ + 0, /* U+011b2a: */ + 0, /* U+011b2b: */ + 0, /* U+011b2c: */ + 0, /* U+011b2d: */ + 0, /* U+011b2e: */ + 0, /* U+011b2f: */ + 0, /* U+011b30: */ + 0, /* U+011b31: */ + 0, /* U+011b32: */ + 0, /* U+011b33: */ + 0, /* U+011b34: */ + 0, /* U+011b35: */ + 0, /* U+011b36: */ + 0, /* U+011b37: */ + 0, /* U+011b38: */ + 0, /* U+011b39: */ + 0, /* U+011b3a: */ + 0, /* U+011b3b: */ + 0, /* U+011b3c: */ + 0, /* U+011b3d: */ + 0, /* U+011b3e: */ + 0, /* U+011b3f: */ + 0, /* U+011b40: */ + 0, /* U+011b41: */ + 0, /* U+011b42: */ + 0, /* U+011b43: */ + 0, /* U+011b44: */ + 0, /* U+011b45: */ + 0, /* U+011b46: */ + 0, /* U+011b47: */ + 0, /* U+011b48: */ + 0, /* U+011b49: */ + 0, /* U+011b4a: */ + 0, /* U+011b4b: */ + 0, /* U+011b4c: */ + 0, /* U+011b4d: */ + 0, /* U+011b4e: */ + 0, /* U+011b4f: */ + 0, /* U+011b50: */ + 0, /* U+011b51: */ + 0, /* U+011b52: */ + 0, /* U+011b53: */ + 0, /* U+011b54: */ + 0, /* U+011b55: */ + 0, /* U+011b56: */ + 0, /* U+011b57: */ + 0, /* U+011b58: */ + 0, /* U+011b59: */ + 0, /* U+011b5a: */ + 0, /* U+011b5b: */ + 0, /* U+011b5c: */ + 0, /* U+011b5d: */ + 0, /* U+011b5e: */ + 0, /* U+011b5f: */ + 0, /* U+011b60: */ + 0, /* U+011b61: */ + 0, /* U+011b62: */ + 0, /* U+011b63: */ + 0, /* U+011b64: */ + 0, /* U+011b65: */ + 0, /* U+011b66: */ + 0, /* U+011b67: */ + 0, /* U+011b68: */ + 0, /* U+011b69: */ + 0, /* U+011b6a: */ + 0, /* U+011b6b: */ + 0, /* U+011b6c: */ + 0, /* U+011b6d: */ + 0, /* U+011b6e: */ + 0, /* U+011b6f: */ + 0, /* U+011b70: */ + 0, /* U+011b71: */ + 0, /* U+011b72: */ + 0, /* U+011b73: */ + 0, /* U+011b74: */ + 0, /* U+011b75: */ + 0, /* U+011b76: */ + 0, /* U+011b77: */ + 0, /* U+011b78: */ + 0, /* U+011b79: */ + 0, /* U+011b7a: */ + 0, /* U+011b7b: */ + 0, /* U+011b7c: */ + 0, /* U+011b7d: */ + 0, /* U+011b7e: */ + 0, /* U+011b7f: */ + 0, /* U+011b80: */ + 0, /* U+011b81: */ + 0, /* U+011b82: */ + 0, /* U+011b83: */ + 0, /* U+011b84: */ + 0, /* U+011b85: */ + 0, /* U+011b86: */ + 0, /* U+011b87: */ + 0, /* U+011b88: */ + 0, /* U+011b89: */ + 0, /* U+011b8a: */ + 0, /* U+011b8b: */ + 0, /* U+011b8c: */ + 0, /* U+011b8d: */ + 0, /* U+011b8e: */ + 0, /* U+011b8f: */ + 0, /* U+011b90: */ + 0, /* U+011b91: */ + 0, /* U+011b92: */ + 0, /* U+011b93: */ + 0, /* U+011b94: */ + 0, /* U+011b95: */ + 0, /* U+011b96: */ + 0, /* U+011b97: */ + 0, /* U+011b98: */ + 0, /* U+011b99: */ + 0, /* U+011b9a: */ + 0, /* U+011b9b: */ + 0, /* U+011b9c: */ + 0, /* U+011b9d: */ + 0, /* U+011b9e: */ + 0, /* U+011b9f: */ + 0, /* U+011ba0: */ + 0, /* U+011ba1: */ + 0, /* U+011ba2: */ + 0, /* U+011ba3: */ + 0, /* U+011ba4: */ + 0, /* U+011ba5: */ + 0, /* U+011ba6: */ + 0, /* U+011ba7: */ + 0, /* U+011ba8: */ + 0, /* U+011ba9: */ + 0, /* U+011baa: */ + 0, /* U+011bab: */ + 0, /* U+011bac: */ + 0, /* U+011bad: */ + 0, /* U+011bae: */ + 0, /* U+011baf: */ + 0, /* U+011bb0: */ + 0, /* U+011bb1: */ + 0, /* U+011bb2: */ + 0, /* U+011bb3: */ + 0, /* U+011bb4: */ + 0, /* U+011bb5: */ + 0, /* U+011bb6: */ + 0, /* U+011bb7: */ + 0, /* U+011bb8: */ + 0, /* U+011bb9: */ + 0, /* U+011bba: */ + 0, /* U+011bbb: */ + 0, /* U+011bbc: */ + 0, /* U+011bbd: */ + 0, /* U+011bbe: */ + 0, /* U+011bbf: */ + 0, /* U+011bc0: */ + 0, /* U+011bc1: */ + 0, /* U+011bc2: */ + 0, /* U+011bc3: */ + 0, /* U+011bc4: */ + 0, /* U+011bc5: */ + 0, /* U+011bc6: */ + 0, /* U+011bc7: */ + 0, /* U+011bc8: */ + 0, /* U+011bc9: */ + 0, /* U+011bca: */ + 0, /* U+011bcb: */ + 0, /* U+011bcc: */ + 0, /* U+011bcd: */ + 0, /* U+011bce: */ + 0, /* U+011bcf: */ + 0, /* U+011bd0: */ + 0, /* U+011bd1: */ + 0, /* U+011bd2: */ + 0, /* U+011bd3: */ + 0, /* U+011bd4: */ + 0, /* U+011bd5: */ + 0, /* U+011bd6: */ + 0, /* U+011bd7: */ + 0, /* U+011bd8: */ + 0, /* U+011bd9: */ + 0, /* U+011bda: */ + 0, /* U+011bdb: */ + 0, /* U+011bdc: */ + 0, /* U+011bdd: */ + 0, /* U+011bde: */ + 0, /* U+011bdf: */ + 0, /* U+011be0: */ + 0, /* U+011be1: */ + 0, /* U+011be2: */ + 0, /* U+011be3: */ + 0, /* U+011be4: */ + 0, /* U+011be5: */ + 0, /* U+011be6: */ + 0, /* U+011be7: */ + 0, /* U+011be8: */ + 0, /* U+011be9: */ + 0, /* U+011bea: */ + 0, /* U+011beb: */ + 0, /* U+011bec: */ + 0, /* U+011bed: */ + 0, /* U+011bee: */ + 0, /* U+011bef: */ + 0, /* U+011bf0: */ + 0, /* U+011bf1: */ + 0, /* U+011bf2: */ + 0, /* U+011bf3: */ + 0, /* U+011bf4: */ + 0, /* U+011bf5: */ + 0, /* U+011bf6: */ + 0, /* U+011bf7: */ + 0, /* U+011bf8: */ + 0, /* U+011bf9: */ + 0, /* U+011bfa: */ + 0, /* U+011bfb: */ + 0, /* U+011bfc: */ + 0, /* U+011bfd: */ + 0, /* U+011bfe: */ + 0, /* U+011bff: */ + 0, /* U+011c00: */ + 0, /* U+011c01: */ + 0, /* U+011c02: */ + 0, /* U+011c03: */ + 0, /* U+011c04: */ + 0, /* U+011c05: */ + 0, /* U+011c06: */ + 0, /* U+011c07: */ + 0, /* U+011c08: */ + 0, /* U+011c09: */ + 0, /* U+011c0a: */ + 0, /* U+011c0b: */ + 0, /* U+011c0c: */ + 0, /* U+011c0d: */ + 0, /* U+011c0e: */ + 0, /* U+011c0f: */ + 0, /* U+011c10: */ + 0, /* U+011c11: */ + 0, /* U+011c12: */ + 0, /* U+011c13: */ + 0, /* U+011c14: */ + 0, /* U+011c15: */ + 0, /* U+011c16: */ + 0, /* U+011c17: */ + 0, /* U+011c18: */ + 0, /* U+011c19: */ + 0, /* U+011c1a: */ + 0, /* U+011c1b: */ + 0, /* U+011c1c: */ + 0, /* U+011c1d: */ + 0, /* U+011c1e: */ + 0, /* U+011c1f: */ + 0, /* U+011c20: */ + 0, /* U+011c21: */ + 0, /* U+011c22: */ + 0, /* U+011c23: */ + 0, /* U+011c24: */ + 0, /* U+011c25: */ + 0, /* U+011c26: */ + 0, /* U+011c27: */ + 0, /* U+011c28: */ + 0, /* U+011c29: */ + 0, /* U+011c2a: */ + 0, /* U+011c2b: */ + 0, /* U+011c2c: */ + 0, /* U+011c2d: */ + 0, /* U+011c2e: */ + 0, /* U+011c2f: */ + 0, /* U+011c30: */ + 0, /* U+011c31: */ + 0, /* U+011c32: */ + 0, /* U+011c33: */ + 0, /* U+011c34: */ + 0, /* U+011c35: */ + 0, /* U+011c36: */ + 0, /* U+011c37: */ + 0, /* U+011c38: */ + 0, /* U+011c39: */ + 0, /* U+011c3a: */ + 0, /* U+011c3b: */ + 0, /* U+011c3c: */ + 0, /* U+011c3d: */ + 0, /* U+011c3e: */ + 0, /* U+011c3f: */ + 0, /* U+011c40: */ + 0, /* U+011c41: */ + 0, /* U+011c42: */ + 0, /* U+011c43: */ + 0, /* U+011c44: */ + 0, /* U+011c45: */ + 0, /* U+011c46: */ + 0, /* U+011c47: */ + 0, /* U+011c48: */ + 0, /* U+011c49: */ + 0, /* U+011c4a: */ + 0, /* U+011c4b: */ + 0, /* U+011c4c: */ + 0, /* U+011c4d: */ + 0, /* U+011c4e: */ + 0, /* U+011c4f: */ + 0, /* U+011c50: */ + 0, /* U+011c51: */ + 0, /* U+011c52: */ + 0, /* U+011c53: */ + 0, /* U+011c54: */ + 0, /* U+011c55: */ + 0, /* U+011c56: */ + 0, /* U+011c57: */ + 0, /* U+011c58: */ + 0, /* U+011c59: */ + 0, /* U+011c5a: */ + 0, /* U+011c5b: */ + 0, /* U+011c5c: */ + 0, /* U+011c5d: */ + 0, /* U+011c5e: */ + 0, /* U+011c5f: */ + 0, /* U+011c60: */ + 0, /* U+011c61: */ + 0, /* U+011c62: */ + 0, /* U+011c63: */ + 0, /* U+011c64: */ + 0, /* U+011c65: */ + 0, /* U+011c66: */ + 0, /* U+011c67: */ + 0, /* U+011c68: */ + 0, /* U+011c69: */ + 0, /* U+011c6a: */ + 0, /* U+011c6b: */ + 0, /* U+011c6c: */ + 0, /* U+011c6d: */ + 0, /* U+011c6e: */ + 0, /* U+011c6f: */ + 0, /* U+011c70: */ + 0, /* U+011c71: */ + 0, /* U+011c72: */ + 0, /* U+011c73: */ + 0, /* U+011c74: */ + 0, /* U+011c75: */ + 0, /* U+011c76: */ + 0, /* U+011c77: */ + 0, /* U+011c78: */ + 0, /* U+011c79: */ + 0, /* U+011c7a: */ + 0, /* U+011c7b: */ + 0, /* U+011c7c: */ + 0, /* U+011c7d: */ + 0, /* U+011c7e: */ + 0, /* U+011c7f: */ + 0, /* U+011c80: */ + 0, /* U+011c81: */ + 0, /* U+011c82: */ + 0, /* U+011c83: */ + 0, /* U+011c84: */ + 0, /* U+011c85: */ + 0, /* U+011c86: */ + 0, /* U+011c87: */ + 0, /* U+011c88: */ + 0, /* U+011c89: */ + 0, /* U+011c8a: */ + 0, /* U+011c8b: */ + 0, /* U+011c8c: */ + 0, /* U+011c8d: */ + 0, /* U+011c8e: */ + 0, /* U+011c8f: */ + 0, /* U+011c90: */ + 0, /* U+011c91: */ + 0, /* U+011c92: */ + 0, /* U+011c93: */ + 0, /* U+011c94: */ + 0, /* U+011c95: */ + 0, /* U+011c96: */ + 0, /* U+011c97: */ + 0, /* U+011c98: */ + 0, /* U+011c99: */ + 0, /* U+011c9a: */ + 0, /* U+011c9b: */ + 0, /* U+011c9c: */ + 0, /* U+011c9d: */ + 0, /* U+011c9e: */ + 0, /* U+011c9f: */ + 0, /* U+011ca0: */ + 0, /* U+011ca1: */ + 0, /* U+011ca2: */ + 0, /* U+011ca3: */ + 0, /* U+011ca4: */ + 0, /* U+011ca5: */ + 0, /* U+011ca6: */ + 0, /* U+011ca7: */ + 0, /* U+011ca8: */ + 0, /* U+011ca9: */ + 0, /* U+011caa: */ + 0, /* U+011cab: */ + 0, /* U+011cac: */ + 0, /* U+011cad: */ + 0, /* U+011cae: */ + 0, /* U+011caf: */ + 0, /* U+011cb0: */ + 0, /* U+011cb1: */ + 0, /* U+011cb2: */ + 0, /* U+011cb3: */ + 0, /* U+011cb4: */ + 0, /* U+011cb5: */ + 0, /* U+011cb6: */ + 0, /* U+011cb7: */ + 0, /* U+011cb8: */ + 0, /* U+011cb9: */ + 0, /* U+011cba: */ + 0, /* U+011cbb: */ + 0, /* U+011cbc: */ + 0, /* U+011cbd: */ + 0, /* U+011cbe: */ + 0, /* U+011cbf: */ + 0, /* U+011cc0: */ + 0, /* U+011cc1: */ + 0, /* U+011cc2: */ + 0, /* U+011cc3: */ + 0, /* U+011cc4: */ + 0, /* U+011cc5: */ + 0, /* U+011cc6: */ + 0, /* U+011cc7: */ + 0, /* U+011cc8: */ + 0, /* U+011cc9: */ + 0, /* U+011cca: */ + 0, /* U+011ccb: */ + 0, /* U+011ccc: */ + 0, /* U+011ccd: */ + 0, /* U+011cce: */ + 0, /* U+011ccf: */ + 0, /* U+011cd0: */ + 0, /* U+011cd1: */ + 0, /* U+011cd2: */ + 0, /* U+011cd3: */ + 0, /* U+011cd4: */ + 0, /* U+011cd5: */ + 0, /* U+011cd6: */ + 0, /* U+011cd7: */ + 0, /* U+011cd8: */ + 0, /* U+011cd9: */ + 0, /* U+011cda: */ + 0, /* U+011cdb: */ + 0, /* U+011cdc: */ + 0, /* U+011cdd: */ + 0, /* U+011cde: */ + 0, /* U+011cdf: */ + 0, /* U+011ce0: */ + 0, /* U+011ce1: */ + 0, /* U+011ce2: */ + 0, /* U+011ce3: */ + 0, /* U+011ce4: */ + 0, /* U+011ce5: */ + 0, /* U+011ce6: */ + 0, /* U+011ce7: */ + 0, /* U+011ce8: */ + 0, /* U+011ce9: */ + 0, /* U+011cea: */ + 0, /* U+011ceb: */ + 0, /* U+011cec: */ + 0, /* U+011ced: */ + 0, /* U+011cee: */ + 0, /* U+011cef: */ + 0, /* U+011cf0: */ + 0, /* U+011cf1: */ + 0, /* U+011cf2: */ + 0, /* U+011cf3: */ + 0, /* U+011cf4: */ + 0, /* U+011cf5: */ + 0, /* U+011cf6: */ + 0, /* U+011cf7: */ + 0, /* U+011cf8: */ + 0, /* U+011cf9: */ + 0, /* U+011cfa: */ + 0, /* U+011cfb: */ + 0, /* U+011cfc: */ + 0, /* U+011cfd: */ + 0, /* U+011cfe: */ + 0, /* U+011cff: */ + 0, /* U+011d00: */ + 0, /* U+011d01: */ + 0, /* U+011d02: */ + 0, /* U+011d03: */ + 0, /* U+011d04: */ + 0, /* U+011d05: */ + 0, /* U+011d06: */ + 0, /* U+011d07: */ + 0, /* U+011d08: */ + 0, /* U+011d09: */ + 0, /* U+011d0a: */ + 0, /* U+011d0b: */ + 0, /* U+011d0c: */ + 0, /* U+011d0d: */ + 0, /* U+011d0e: */ + 0, /* U+011d0f: */ + 0, /* U+011d10: */ + 0, /* U+011d11: */ + 0, /* U+011d12: */ + 0, /* U+011d13: */ + 0, /* U+011d14: */ + 0, /* U+011d15: */ + 0, /* U+011d16: */ + 0, /* U+011d17: */ + 0, /* U+011d18: */ + 0, /* U+011d19: */ + 0, /* U+011d1a: */ + 0, /* U+011d1b: */ + 0, /* U+011d1c: */ + 0, /* U+011d1d: */ + 0, /* U+011d1e: */ + 0, /* U+011d1f: */ + 0, /* U+011d20: */ + 0, /* U+011d21: */ + 0, /* U+011d22: */ + 0, /* U+011d23: */ + 0, /* U+011d24: */ + 0, /* U+011d25: */ + 0, /* U+011d26: */ + 0, /* U+011d27: */ + 0, /* U+011d28: */ + 0, /* U+011d29: */ + 0, /* U+011d2a: */ + 0, /* U+011d2b: */ + 0, /* U+011d2c: */ + 0, /* U+011d2d: */ + 0, /* U+011d2e: */ + 0, /* U+011d2f: */ + 0, /* U+011d30: */ + 0, /* U+011d31: */ + 0, /* U+011d32: */ + 0, /* U+011d33: */ + 0, /* U+011d34: */ + 0, /* U+011d35: */ + 0, /* U+011d36: */ + 0, /* U+011d37: */ + 0, /* U+011d38: */ + 0, /* U+011d39: */ + 0, /* U+011d3a: */ + 0, /* U+011d3b: */ + 0, /* U+011d3c: */ + 0, /* U+011d3d: */ + 0, /* U+011d3e: */ + 0, /* U+011d3f: */ + 0, /* U+011d40: */ + 0, /* U+011d41: */ + 0, /* U+011d42: */ + 0, /* U+011d43: */ + 0, /* U+011d44: */ + 0, /* U+011d45: */ + 0, /* U+011d46: */ + 0, /* U+011d47: */ + 0, /* U+011d48: */ + 0, /* U+011d49: */ + 0, /* U+011d4a: */ + 0, /* U+011d4b: */ + 0, /* U+011d4c: */ + 0, /* U+011d4d: */ + 0, /* U+011d4e: */ + 0, /* U+011d4f: */ + 0, /* U+011d50: */ + 0, /* U+011d51: */ + 0, /* U+011d52: */ + 0, /* U+011d53: */ + 0, /* U+011d54: */ + 0, /* U+011d55: */ + 0, /* U+011d56: */ + 0, /* U+011d57: */ + 0, /* U+011d58: */ + 0, /* U+011d59: */ + 0, /* U+011d5a: */ + 0, /* U+011d5b: */ + 0, /* U+011d5c: */ + 0, /* U+011d5d: */ + 0, /* U+011d5e: */ + 0, /* U+011d5f: */ + 0, /* U+011d60: */ + 0, /* U+011d61: */ + 0, /* U+011d62: */ + 0, /* U+011d63: */ + 0, /* U+011d64: */ + 0, /* U+011d65: */ + 0, /* U+011d66: */ + 0, /* U+011d67: */ + 0, /* U+011d68: */ + 0, /* U+011d69: */ + 0, /* U+011d6a: */ + 0, /* U+011d6b: */ + 0, /* U+011d6c: */ + 0, /* U+011d6d: */ + 0, /* U+011d6e: */ + 0, /* U+011d6f: */ + 0, /* U+011d70: */ + 0, /* U+011d71: */ + 0, /* U+011d72: */ + 0, /* U+011d73: */ + 0, /* U+011d74: */ + 0, /* U+011d75: */ + 0, /* U+011d76: */ + 0, /* U+011d77: */ + 0, /* U+011d78: */ + 0, /* U+011d79: */ + 0, /* U+011d7a: */ + 0, /* U+011d7b: */ + 0, /* U+011d7c: */ + 0, /* U+011d7d: */ + 0, /* U+011d7e: */ + 0, /* U+011d7f: */ + 0, /* U+011d80: */ + 0, /* U+011d81: */ + 0, /* U+011d82: */ + 0, /* U+011d83: */ + 0, /* U+011d84: */ + 0, /* U+011d85: */ + 0, /* U+011d86: */ + 0, /* U+011d87: */ + 0, /* U+011d88: */ + 0, /* U+011d89: */ + 0, /* U+011d8a: */ + 0, /* U+011d8b: */ + 0, /* U+011d8c: */ + 0, /* U+011d8d: */ + 0, /* U+011d8e: */ + 0, /* U+011d8f: */ + 0, /* U+011d90: */ + 0, /* U+011d91: */ + 0, /* U+011d92: */ + 0, /* U+011d93: */ + 0, /* U+011d94: */ + 0, /* U+011d95: */ + 0, /* U+011d96: */ + 0, /* U+011d97: */ + 0, /* U+011d98: */ + 0, /* U+011d99: */ + 0, /* U+011d9a: */ + 0, /* U+011d9b: */ + 0, /* U+011d9c: */ + 0, /* U+011d9d: */ + 0, /* U+011d9e: */ + 0, /* U+011d9f: */ + 0, /* U+011da0: */ + 0, /* U+011da1: */ + 0, /* U+011da2: */ + 0, /* U+011da3: */ + 0, /* U+011da4: */ + 0, /* U+011da5: */ + 0, /* U+011da6: */ + 0, /* U+011da7: */ + 0, /* U+011da8: */ + 0, /* U+011da9: */ + 0, /* U+011daa: */ + 0, /* U+011dab: */ + 0, /* U+011dac: */ + 0, /* U+011dad: */ + 0, /* U+011dae: */ + 0, /* U+011daf: */ + 0, /* U+011db0: */ + 0, /* U+011db1: */ + 0, /* U+011db2: */ + 0, /* U+011db3: */ + 0, /* U+011db4: */ + 0, /* U+011db5: */ + 0, /* U+011db6: */ + 0, /* U+011db7: */ + 0, /* U+011db8: */ + 0, /* U+011db9: */ + 0, /* U+011dba: */ + 0, /* U+011dbb: */ + 0, /* U+011dbc: */ + 0, /* U+011dbd: */ + 0, /* U+011dbe: */ + 0, /* U+011dbf: */ + 0, /* U+011dc0: */ + 0, /* U+011dc1: */ + 0, /* U+011dc2: */ + 0, /* U+011dc3: */ + 0, /* U+011dc4: */ + 0, /* U+011dc5: */ + 0, /* U+011dc6: */ + 0, /* U+011dc7: */ + 0, /* U+011dc8: */ + 0, /* U+011dc9: */ + 0, /* U+011dca: */ + 0, /* U+011dcb: */ + 0, /* U+011dcc: */ + 0, /* U+011dcd: */ + 0, /* U+011dce: */ + 0, /* U+011dcf: */ + 0, /* U+011dd0: */ + 0, /* U+011dd1: */ + 0, /* U+011dd2: */ + 0, /* U+011dd3: */ + 0, /* U+011dd4: */ + 0, /* U+011dd5: */ + 0, /* U+011dd6: */ + 0, /* U+011dd7: */ + 0, /* U+011dd8: */ + 0, /* U+011dd9: */ + 0, /* U+011dda: */ + 0, /* U+011ddb: */ + 0, /* U+011ddc: */ + 0, /* U+011ddd: */ + 0, /* U+011dde: */ + 0, /* U+011ddf: */ + 0, /* U+011de0: */ + 0, /* U+011de1: */ + 0, /* U+011de2: */ + 0, /* U+011de3: */ + 0, /* U+011de4: */ + 0, /* U+011de5: */ + 0, /* U+011de6: */ + 0, /* U+011de7: */ + 0, /* U+011de8: */ + 0, /* U+011de9: */ + 0, /* U+011dea: */ + 0, /* U+011deb: */ + 0, /* U+011dec: */ + 0, /* U+011ded: */ + 0, /* U+011dee: */ + 0, /* U+011def: */ + 0, /* U+011df0: */ + 0, /* U+011df1: */ + 0, /* U+011df2: */ + 0, /* U+011df3: */ + 0, /* U+011df4: */ + 0, /* U+011df5: */ + 0, /* U+011df6: */ + 0, /* U+011df7: */ + 0, /* U+011df8: */ + 0, /* U+011df9: */ + 0, /* U+011dfa: */ + 0, /* U+011dfb: */ + 0, /* U+011dfc: */ + 0, /* U+011dfd: */ + 0, /* U+011dfe: */ + 0, /* U+011dff: */ + 0, /* U+011e00: */ + 0, /* U+011e01: */ + 0, /* U+011e02: */ + 0, /* U+011e03: */ + 0, /* U+011e04: */ + 0, /* U+011e05: */ + 0, /* U+011e06: */ + 0, /* U+011e07: */ + 0, /* U+011e08: */ + 0, /* U+011e09: */ + 0, /* U+011e0a: */ + 0, /* U+011e0b: */ + 0, /* U+011e0c: */ + 0, /* U+011e0d: */ + 0, /* U+011e0e: */ + 0, /* U+011e0f: */ + 0, /* U+011e10: */ + 0, /* U+011e11: */ + 0, /* U+011e12: */ + 0, /* U+011e13: */ + 0, /* U+011e14: */ + 0, /* U+011e15: */ + 0, /* U+011e16: */ + 0, /* U+011e17: */ + 0, /* U+011e18: */ + 0, /* U+011e19: */ + 0, /* U+011e1a: */ + 0, /* U+011e1b: */ + 0, /* U+011e1c: */ + 0, /* U+011e1d: */ + 0, /* U+011e1e: */ + 0, /* U+011e1f: */ + 0, /* U+011e20: */ + 0, /* U+011e21: */ + 0, /* U+011e22: */ + 0, /* U+011e23: */ + 0, /* U+011e24: */ + 0, /* U+011e25: */ + 0, /* U+011e26: */ + 0, /* U+011e27: */ + 0, /* U+011e28: */ + 0, /* U+011e29: */ + 0, /* U+011e2a: */ + 0, /* U+011e2b: */ + 0, /* U+011e2c: */ + 0, /* U+011e2d: */ + 0, /* U+011e2e: */ + 0, /* U+011e2f: */ + 0, /* U+011e30: */ + 0, /* U+011e31: */ + 0, /* U+011e32: */ + 0, /* U+011e33: */ + 0, /* U+011e34: */ + 0, /* U+011e35: */ + 0, /* U+011e36: */ + 0, /* U+011e37: */ + 0, /* U+011e38: */ + 0, /* U+011e39: */ + 0, /* U+011e3a: */ + 0, /* U+011e3b: */ + 0, /* U+011e3c: */ + 0, /* U+011e3d: */ + 0, /* U+011e3e: */ + 0, /* U+011e3f: */ + 0, /* U+011e40: */ + 0, /* U+011e41: */ + 0, /* U+011e42: */ + 0, /* U+011e43: */ + 0, /* U+011e44: */ + 0, /* U+011e45: */ + 0, /* U+011e46: */ + 0, /* U+011e47: */ + 0, /* U+011e48: */ + 0, /* U+011e49: */ + 0, /* U+011e4a: */ + 0, /* U+011e4b: */ + 0, /* U+011e4c: */ + 0, /* U+011e4d: */ + 0, /* U+011e4e: */ + 0, /* U+011e4f: */ + 0, /* U+011e50: */ + 0, /* U+011e51: */ + 0, /* U+011e52: */ + 0, /* U+011e53: */ + 0, /* U+011e54: */ + 0, /* U+011e55: */ + 0, /* U+011e56: */ + 0, /* U+011e57: */ + 0, /* U+011e58: */ + 0, /* U+011e59: */ + 0, /* U+011e5a: */ + 0, /* U+011e5b: */ + 0, /* U+011e5c: */ + 0, /* U+011e5d: */ + 0, /* U+011e5e: */ + 0, /* U+011e5f: */ + 0, /* U+011e60: */ + 0, /* U+011e61: */ + 0, /* U+011e62: */ + 0, /* U+011e63: */ + 0, /* U+011e64: */ + 0, /* U+011e65: */ + 0, /* U+011e66: */ + 0, /* U+011e67: */ + 0, /* U+011e68: */ + 0, /* U+011e69: */ + 0, /* U+011e6a: */ + 0, /* U+011e6b: */ + 0, /* U+011e6c: */ + 0, /* U+011e6d: */ + 0, /* U+011e6e: */ + 0, /* U+011e6f: */ + 0, /* U+011e70: */ + 0, /* U+011e71: */ + 0, /* U+011e72: */ + 0, /* U+011e73: */ + 0, /* U+011e74: */ + 0, /* U+011e75: */ + 0, /* U+011e76: */ + 0, /* U+011e77: */ + 0, /* U+011e78: */ + 0, /* U+011e79: */ + 0, /* U+011e7a: */ + 0, /* U+011e7b: */ + 0, /* U+011e7c: */ + 0, /* U+011e7d: */ + 0, /* U+011e7e: */ + 0, /* U+011e7f: */ + 0, /* U+011e80: */ + 0, /* U+011e81: */ + 0, /* U+011e82: */ + 0, /* U+011e83: */ + 0, /* U+011e84: */ + 0, /* U+011e85: */ + 0, /* U+011e86: */ + 0, /* U+011e87: */ + 0, /* U+011e88: */ + 0, /* U+011e89: */ + 0, /* U+011e8a: */ + 0, /* U+011e8b: */ + 0, /* U+011e8c: */ + 0, /* U+011e8d: */ + 0, /* U+011e8e: */ + 0, /* U+011e8f: */ + 0, /* U+011e90: */ + 0, /* U+011e91: */ + 0, /* U+011e92: */ + 0, /* U+011e93: */ + 0, /* U+011e94: */ + 0, /* U+011e95: */ + 0, /* U+011e96: */ + 0, /* U+011e97: */ + 0, /* U+011e98: */ + 0, /* U+011e99: */ + 0, /* U+011e9a: */ + 0, /* U+011e9b: */ + 0, /* U+011e9c: */ + 0, /* U+011e9d: */ + 0, /* U+011e9e: */ + 0, /* U+011e9f: */ + 0, /* U+011ea0: */ + 0, /* U+011ea1: */ + 0, /* U+011ea2: */ + 0, /* U+011ea3: */ + 0, /* U+011ea4: */ + 0, /* U+011ea5: */ + 0, /* U+011ea6: */ + 0, /* U+011ea7: */ + 0, /* U+011ea8: */ + 0, /* U+011ea9: */ + 0, /* U+011eaa: */ + 0, /* U+011eab: */ + 0, /* U+011eac: */ + 0, /* U+011ead: */ + 0, /* U+011eae: */ + 0, /* U+011eaf: */ + 0, /* U+011eb0: */ + 0, /* U+011eb1: */ + 0, /* U+011eb2: */ + 0, /* U+011eb3: */ + 0, /* U+011eb4: */ + 0, /* U+011eb5: */ + 0, /* U+011eb6: */ + 0, /* U+011eb7: */ + 0, /* U+011eb8: */ + 0, /* U+011eb9: */ + 0, /* U+011eba: */ + 0, /* U+011ebb: */ + 0, /* U+011ebc: */ + 0, /* U+011ebd: */ + 0, /* U+011ebe: */ + 0, /* U+011ebf: */ + 0, /* U+011ec0: */ + 0, /* U+011ec1: */ + 0, /* U+011ec2: */ + 0, /* U+011ec3: */ + 0, /* U+011ec4: */ + 0, /* U+011ec5: */ + 0, /* U+011ec6: */ + 0, /* U+011ec7: */ + 0, /* U+011ec8: */ + 0, /* U+011ec9: */ + 0, /* U+011eca: */ + 0, /* U+011ecb: */ + 0, /* U+011ecc: */ + 0, /* U+011ecd: */ + 0, /* U+011ece: */ + 0, /* U+011ecf: */ + 0, /* U+011ed0: */ + 0, /* U+011ed1: */ + 0, /* U+011ed2: */ + 0, /* U+011ed3: */ + 0, /* U+011ed4: */ + 0, /* U+011ed5: */ + 0, /* U+011ed6: */ + 0, /* U+011ed7: */ + 0, /* U+011ed8: */ + 0, /* U+011ed9: */ + 0, /* U+011eda: */ + 0, /* U+011edb: */ + 0, /* U+011edc: */ + 0, /* U+011edd: */ + 0, /* U+011ede: */ + 0, /* U+011edf: */ + 0, /* U+011ee0: */ + 0, /* U+011ee1: */ + 0, /* U+011ee2: */ + 0, /* U+011ee3: */ + 0, /* U+011ee4: */ + 0, /* U+011ee5: */ + 0, /* U+011ee6: */ + 0, /* U+011ee7: */ + 0, /* U+011ee8: */ + 0, /* U+011ee9: */ + 0, /* U+011eea: */ + 0, /* U+011eeb: */ + 0, /* U+011eec: */ + 0, /* U+011eed: */ + 0, /* U+011eee: */ + 0, /* U+011eef: */ + 0, /* U+011ef0: */ + 0, /* U+011ef1: */ + 0, /* U+011ef2: */ + 0, /* U+011ef3: */ + 0, /* U+011ef4: */ + 0, /* U+011ef5: */ + 0, /* U+011ef6: */ + 0, /* U+011ef7: */ + 0, /* U+011ef8: */ + 0, /* U+011ef9: */ + 0, /* U+011efa: */ + 0, /* U+011efb: */ + 0, /* U+011efc: */ + 0, /* U+011efd: */ + 0, /* U+011efe: */ + 0, /* U+011eff: */ + 0, /* U+011f00: */ + 0, /* U+011f01: */ + 0, /* U+011f02: */ + 0, /* U+011f03: */ + 0, /* U+011f04: */ + 0, /* U+011f05: */ + 0, /* U+011f06: */ + 0, /* U+011f07: */ + 0, /* U+011f08: */ + 0, /* U+011f09: */ + 0, /* U+011f0a: */ + 0, /* U+011f0b: */ + 0, /* U+011f0c: */ + 0, /* U+011f0d: */ + 0, /* U+011f0e: */ + 0, /* U+011f0f: */ + 0, /* U+011f10: */ + 0, /* U+011f11: */ + 0, /* U+011f12: */ + 0, /* U+011f13: */ + 0, /* U+011f14: */ + 0, /* U+011f15: */ + 0, /* U+011f16: */ + 0, /* U+011f17: */ + 0, /* U+011f18: */ + 0, /* U+011f19: */ + 0, /* U+011f1a: */ + 0, /* U+011f1b: */ + 0, /* U+011f1c: */ + 0, /* U+011f1d: */ + 0, /* U+011f1e: */ + 0, /* U+011f1f: */ + 0, /* U+011f20: */ + 0, /* U+011f21: */ + 0, /* U+011f22: */ + 0, /* U+011f23: */ + 0, /* U+011f24: */ + 0, /* U+011f25: */ + 0, /* U+011f26: */ + 0, /* U+011f27: */ + 0, /* U+011f28: */ + 0, /* U+011f29: */ + 0, /* U+011f2a: */ + 0, /* U+011f2b: */ + 0, /* U+011f2c: */ + 0, /* U+011f2d: */ + 0, /* U+011f2e: */ + 0, /* U+011f2f: */ + 0, /* U+011f30: */ + 0, /* U+011f31: */ + 0, /* U+011f32: */ + 0, /* U+011f33: */ + 0, /* U+011f34: */ + 0, /* U+011f35: */ + 0, /* U+011f36: */ + 0, /* U+011f37: */ + 0, /* U+011f38: */ + 0, /* U+011f39: */ + 0, /* U+011f3a: */ + 0, /* U+011f3b: */ + 0, /* U+011f3c: */ + 0, /* U+011f3d: */ + 0, /* U+011f3e: */ + 0, /* U+011f3f: */ + 0, /* U+011f40: */ + 0, /* U+011f41: */ + 0, /* U+011f42: */ + 0, /* U+011f43: */ + 0, /* U+011f44: */ + 0, /* U+011f45: */ + 0, /* U+011f46: */ + 0, /* U+011f47: */ + 0, /* U+011f48: */ + 0, /* U+011f49: */ + 0, /* U+011f4a: */ + 0, /* U+011f4b: */ + 0, /* U+011f4c: */ + 0, /* U+011f4d: */ + 0, /* U+011f4e: */ + 0, /* U+011f4f: */ + 0, /* U+011f50: */ + 0, /* U+011f51: */ + 0, /* U+011f52: */ + 0, /* U+011f53: */ + 0, /* U+011f54: */ + 0, /* U+011f55: */ + 0, /* U+011f56: */ + 0, /* U+011f57: */ + 0, /* U+011f58: */ + 0, /* U+011f59: */ + 0, /* U+011f5a: */ + 0, /* U+011f5b: */ + 0, /* U+011f5c: */ + 0, /* U+011f5d: */ + 0, /* U+011f5e: */ + 0, /* U+011f5f: */ + 0, /* U+011f60: */ + 0, /* U+011f61: */ + 0, /* U+011f62: */ + 0, /* U+011f63: */ + 0, /* U+011f64: */ + 0, /* U+011f65: */ + 0, /* U+011f66: */ + 0, /* U+011f67: */ + 0, /* U+011f68: */ + 0, /* U+011f69: */ + 0, /* U+011f6a: */ + 0, /* U+011f6b: */ + 0, /* U+011f6c: */ + 0, /* U+011f6d: */ + 0, /* U+011f6e: */ + 0, /* U+011f6f: */ + 0, /* U+011f70: */ + 0, /* U+011f71: */ + 0, /* U+011f72: */ + 0, /* U+011f73: */ + 0, /* U+011f74: */ + 0, /* U+011f75: */ + 0, /* U+011f76: */ + 0, /* U+011f77: */ + 0, /* U+011f78: */ + 0, /* U+011f79: */ + 0, /* U+011f7a: */ + 0, /* U+011f7b: */ + 0, /* U+011f7c: */ + 0, /* U+011f7d: */ + 0, /* U+011f7e: */ + 0, /* U+011f7f: */ + 0, /* U+011f80: */ + 0, /* U+011f81: */ + 0, /* U+011f82: */ + 0, /* U+011f83: */ + 0, /* U+011f84: */ + 0, /* U+011f85: */ + 0, /* U+011f86: */ + 0, /* U+011f87: */ + 0, /* U+011f88: */ + 0, /* U+011f89: */ + 0, /* U+011f8a: */ + 0, /* U+011f8b: */ + 0, /* U+011f8c: */ + 0, /* U+011f8d: */ + 0, /* U+011f8e: */ + 0, /* U+011f8f: */ + 0, /* U+011f90: */ + 0, /* U+011f91: */ + 0, /* U+011f92: */ + 0, /* U+011f93: */ + 0, /* U+011f94: */ + 0, /* U+011f95: */ + 0, /* U+011f96: */ + 0, /* U+011f97: */ + 0, /* U+011f98: */ + 0, /* U+011f99: */ + 0, /* U+011f9a: */ + 0, /* U+011f9b: */ + 0, /* U+011f9c: */ + 0, /* U+011f9d: */ + 0, /* U+011f9e: */ + 0, /* U+011f9f: */ + 0, /* U+011fa0: */ + 0, /* U+011fa1: */ + 0, /* U+011fa2: */ + 0, /* U+011fa3: */ + 0, /* U+011fa4: */ + 0, /* U+011fa5: */ + 0, /* U+011fa6: */ + 0, /* U+011fa7: */ + 0, /* U+011fa8: */ + 0, /* U+011fa9: */ + 0, /* U+011faa: */ + 0, /* U+011fab: */ + 0, /* U+011fac: */ + 0, /* U+011fad: */ + 0, /* U+011fae: */ + 0, /* U+011faf: */ + 0, /* U+011fb0: */ + 0, /* U+011fb1: */ + 0, /* U+011fb2: */ + 0, /* U+011fb3: */ + 0, /* U+011fb4: */ + 0, /* U+011fb5: */ + 0, /* U+011fb6: */ + 0, /* U+011fb7: */ + 0, /* U+011fb8: */ + 0, /* U+011fb9: */ + 0, /* U+011fba: */ + 0, /* U+011fbb: */ + 0, /* U+011fbc: */ + 0, /* U+011fbd: */ + 0, /* U+011fbe: */ + 0, /* U+011fbf: */ + 0, /* U+011fc0: */ + 0, /* U+011fc1: */ + 0, /* U+011fc2: */ + 0, /* U+011fc3: */ + 0, /* U+011fc4: */ + 0, /* U+011fc5: */ + 0, /* U+011fc6: */ + 0, /* U+011fc7: */ + 0, /* U+011fc8: */ + 0, /* U+011fc9: */ + 0, /* U+011fca: */ + 0, /* U+011fcb: */ + 0, /* U+011fcc: */ + 0, /* U+011fcd: */ + 0, /* U+011fce: */ + 0, /* U+011fcf: */ + 0, /* U+011fd0: */ + 0, /* U+011fd1: */ + 0, /* U+011fd2: */ + 0, /* U+011fd3: */ + 0, /* U+011fd4: */ + 0, /* U+011fd5: */ + 0, /* U+011fd6: */ + 0, /* U+011fd7: */ + 0, /* U+011fd8: */ + 0, /* U+011fd9: */ + 0, /* U+011fda: */ + 0, /* U+011fdb: */ + 0, /* U+011fdc: */ + 0, /* U+011fdd: */ + 0, /* U+011fde: */ + 0, /* U+011fdf: */ + 0, /* U+011fe0: */ + 0, /* U+011fe1: */ + 0, /* U+011fe2: */ + 0, /* U+011fe3: */ + 0, /* U+011fe4: */ + 0, /* U+011fe5: */ + 0, /* U+011fe6: */ + 0, /* U+011fe7: */ + 0, /* U+011fe8: */ + 0, /* U+011fe9: */ + 0, /* U+011fea: */ + 0, /* U+011feb: */ + 0, /* U+011fec: */ + 0, /* U+011fed: */ + 0, /* U+011fee: */ + 0, /* U+011fef: */ + 0, /* U+011ff0: */ + 0, /* U+011ff1: */ + 0, /* U+011ff2: */ + 0, /* U+011ff3: */ + 0, /* U+011ff4: */ + 0, /* U+011ff5: */ + 0, /* U+011ff6: */ + 0, /* U+011ff7: */ + 0, /* U+011ff8: */ + 0, /* U+011ff9: */ + 0, /* U+011ffa: */ + 0, /* U+011ffb: */ + 0, /* U+011ffc: */ + 0, /* U+011ffd: */ + 0, /* U+011ffe: */ + 0, /* U+011fff: */ + RTUNI_ALPHA, /* U+012000: CUNEIFORM SIGN A*/ + RTUNI_ALPHA, /* U+012001: CUNEIFORM SIGN A TIMES A*/ + RTUNI_ALPHA, /* U+012002: CUNEIFORM SIGN A TIMES BAD*/ + RTUNI_ALPHA, /* U+012003: CUNEIFORM SIGN A TIMES GAN2 TENU*/ + RTUNI_ALPHA, /* U+012004: CUNEIFORM SIGN A TIMES HA*/ + RTUNI_ALPHA, /* U+012005: CUNEIFORM SIGN A TIMES IGI*/ + RTUNI_ALPHA, /* U+012006: CUNEIFORM SIGN A TIMES LAGAR GUNU*/ + RTUNI_ALPHA, /* U+012007: CUNEIFORM SIGN A TIMES MUSH*/ + RTUNI_ALPHA, /* U+012008: CUNEIFORM SIGN A TIMES SAG*/ + RTUNI_ALPHA, /* U+012009: CUNEIFORM SIGN A2*/ + RTUNI_ALPHA, /* U+01200a: CUNEIFORM SIGN AB*/ + RTUNI_ALPHA, /* U+01200b: CUNEIFORM SIGN AB TIMES ASH2*/ + RTUNI_ALPHA, /* U+01200c: CUNEIFORM SIGN AB TIMES DUN3 GUNU*/ + RTUNI_ALPHA, /* U+01200d: CUNEIFORM SIGN AB TIMES GAL*/ + RTUNI_ALPHA, /* U+01200e: CUNEIFORM SIGN AB TIMES GAN2 TENU*/ + RTUNI_ALPHA, /* U+01200f: CUNEIFORM SIGN AB TIMES HA*/ + RTUNI_ALPHA, /* U+012010: CUNEIFORM SIGN AB TIMES IGI GUNU*/ + RTUNI_ALPHA, /* U+012011: CUNEIFORM SIGN AB TIMES IMIN*/ + RTUNI_ALPHA, /* U+012012: CUNEIFORM SIGN AB TIMES LAGAB*/ + RTUNI_ALPHA, /* U+012013: CUNEIFORM SIGN AB TIMES SHESH*/ + RTUNI_ALPHA, /* U+012014: CUNEIFORM SIGN AB TIMES U PLUS U PLUS U*/ + RTUNI_ALPHA, /* U+012015: CUNEIFORM SIGN AB GUNU*/ + RTUNI_ALPHA, /* U+012016: CUNEIFORM SIGN AB2*/ + RTUNI_ALPHA, /* U+012017: CUNEIFORM SIGN AB2 TIMES BALAG*/ + RTUNI_ALPHA, /* U+012018: CUNEIFORM SIGN AB2 TIMES GAN2 TENU*/ + RTUNI_ALPHA, /* U+012019: CUNEIFORM SIGN AB2 TIMES ME PLUS EN*/ + RTUNI_ALPHA, /* U+01201a: CUNEIFORM SIGN AB2 TIMES SHA3*/ + RTUNI_ALPHA, /* U+01201b: CUNEIFORM SIGN AB2 TIMES TAK4*/ + RTUNI_ALPHA, /* U+01201c: CUNEIFORM SIGN AD*/ + RTUNI_ALPHA, /* U+01201d: CUNEIFORM SIGN AK*/ + RTUNI_ALPHA, /* U+01201e: CUNEIFORM SIGN AK TIMES ERIN2*/ + RTUNI_ALPHA, /* U+01201f: CUNEIFORM SIGN AK TIMES SHITA PLUS GISH*/ + RTUNI_ALPHA, /* U+012020: CUNEIFORM SIGN AL*/ + RTUNI_ALPHA, /* U+012021: CUNEIFORM SIGN AL TIMES AL*/ + RTUNI_ALPHA, /* U+012022: CUNEIFORM SIGN AL TIMES DIM2*/ + RTUNI_ALPHA, /* U+012023: CUNEIFORM SIGN AL TIMES GISH*/ + RTUNI_ALPHA, /* U+012024: CUNEIFORM SIGN AL TIMES HA*/ + RTUNI_ALPHA, /* U+012025: CUNEIFORM SIGN AL TIMES KAD3*/ + RTUNI_ALPHA, /* U+012026: CUNEIFORM SIGN AL TIMES KI*/ + RTUNI_ALPHA, /* U+012027: CUNEIFORM SIGN AL TIMES SHE*/ + RTUNI_ALPHA, /* U+012028: CUNEIFORM SIGN AL TIMES USH*/ + RTUNI_ALPHA, /* U+012029: CUNEIFORM SIGN ALAN*/ + RTUNI_ALPHA, /* U+01202a: CUNEIFORM SIGN ALEPH*/ + RTUNI_ALPHA, /* U+01202b: CUNEIFORM SIGN AMAR*/ + RTUNI_ALPHA, /* U+01202c: CUNEIFORM SIGN AMAR TIMES SHE*/ + RTUNI_ALPHA, /* U+01202d: CUNEIFORM SIGN AN*/ + RTUNI_ALPHA, /* U+01202e: CUNEIFORM SIGN AN OVER AN*/ + RTUNI_ALPHA, /* U+01202f: CUNEIFORM SIGN AN THREE TIMES*/ + RTUNI_ALPHA, /* U+012030: CUNEIFORM SIGN AN PLUS NAGA OPPOSING AN PLUS NAGA*/ + RTUNI_ALPHA, /* U+012031: CUNEIFORM SIGN AN PLUS NAGA SQUARED*/ + RTUNI_ALPHA, /* U+012032: CUNEIFORM SIGN ANSHE*/ + RTUNI_ALPHA, /* U+012033: CUNEIFORM SIGN APIN*/ + RTUNI_ALPHA, /* U+012034: CUNEIFORM SIGN ARAD*/ + RTUNI_ALPHA, /* U+012035: CUNEIFORM SIGN ARAD TIMES KUR*/ + RTUNI_ALPHA, /* U+012036: CUNEIFORM SIGN ARKAB*/ + RTUNI_ALPHA, /* U+012037: CUNEIFORM SIGN ASAL2*/ + RTUNI_ALPHA, /* U+012038: CUNEIFORM SIGN ASH*/ + RTUNI_ALPHA, /* U+012039: CUNEIFORM SIGN ASH ZIDA TENU*/ + RTUNI_ALPHA, /* U+01203a: CUNEIFORM SIGN ASH KABA TENU*/ + RTUNI_ALPHA, /* U+01203b: CUNEIFORM SIGN ASH OVER ASH TUG2 OVER TUG2 TUG2 OVER TUG2 PAP*/ + RTUNI_ALPHA, /* U+01203c: CUNEIFORM SIGN ASH OVER ASH OVER ASH*/ + RTUNI_ALPHA, /* U+01203d: CUNEIFORM SIGN ASH OVER ASH OVER ASH CROSSING ASH OVER ASH OVER ASH*/ + RTUNI_ALPHA, /* U+01203e: CUNEIFORM SIGN ASH2*/ + RTUNI_ALPHA, /* U+01203f: CUNEIFORM SIGN ASHGAB*/ + RTUNI_ALPHA, /* U+012040: CUNEIFORM SIGN BA*/ + RTUNI_ALPHA, /* U+012041: CUNEIFORM SIGN BAD*/ + RTUNI_ALPHA, /* U+012042: CUNEIFORM SIGN BAG3*/ + RTUNI_ALPHA, /* U+012043: CUNEIFORM SIGN BAHAR2*/ + RTUNI_ALPHA, /* U+012044: CUNEIFORM SIGN BAL*/ + RTUNI_ALPHA, /* U+012045: CUNEIFORM SIGN BAL OVER BAL*/ + RTUNI_ALPHA, /* U+012046: CUNEIFORM SIGN BALAG*/ + RTUNI_ALPHA, /* U+012047: CUNEIFORM SIGN BAR*/ + RTUNI_ALPHA, /* U+012048: CUNEIFORM SIGN BARA2*/ + RTUNI_ALPHA, /* U+012049: CUNEIFORM SIGN BI*/ + RTUNI_ALPHA, /* U+01204a: CUNEIFORM SIGN BI TIMES A*/ + RTUNI_ALPHA, /* U+01204b: CUNEIFORM SIGN BI TIMES GAR*/ + RTUNI_ALPHA, /* U+01204c: CUNEIFORM SIGN BI TIMES IGI GUNU*/ + RTUNI_ALPHA, /* U+01204d: CUNEIFORM SIGN BU*/ + RTUNI_ALPHA, /* U+01204e: CUNEIFORM SIGN BU OVER BU AB*/ + RTUNI_ALPHA, /* U+01204f: CUNEIFORM SIGN BU OVER BU UN*/ + RTUNI_ALPHA, /* U+012050: CUNEIFORM SIGN BU CROSSING BU*/ + RTUNI_ALPHA, /* U+012051: CUNEIFORM SIGN BULUG*/ + RTUNI_ALPHA, /* U+012052: CUNEIFORM SIGN BULUG OVER BULUG*/ + RTUNI_ALPHA, /* U+012053: CUNEIFORM SIGN BUR*/ + RTUNI_ALPHA, /* U+012054: CUNEIFORM SIGN BUR2*/ + RTUNI_ALPHA, /* U+012055: CUNEIFORM SIGN DA*/ + RTUNI_ALPHA, /* U+012056: CUNEIFORM SIGN DAG*/ + RTUNI_ALPHA, /* U+012057: CUNEIFORM SIGN DAG KISIM5 TIMES A PLUS MASH*/ + RTUNI_ALPHA, /* U+012058: CUNEIFORM SIGN DAG KISIM5 TIMES AMAR*/ + RTUNI_ALPHA, /* U+012059: CUNEIFORM SIGN DAG KISIM5 TIMES BALAG*/ + RTUNI_ALPHA, /* U+01205a: CUNEIFORM SIGN DAG KISIM5 TIMES BI*/ + RTUNI_ALPHA, /* U+01205b: CUNEIFORM SIGN DAG KISIM5 TIMES GA*/ + RTUNI_ALPHA, /* U+01205c: CUNEIFORM SIGN DAG KISIM5 TIMES GA PLUS MASH*/ + RTUNI_ALPHA, /* U+01205d: CUNEIFORM SIGN DAG KISIM5 TIMES GI*/ + RTUNI_ALPHA, /* U+01205e: CUNEIFORM SIGN DAG KISIM5 TIMES GIR2*/ + RTUNI_ALPHA, /* U+01205f: CUNEIFORM SIGN DAG KISIM5 TIMES GUD*/ + RTUNI_ALPHA, /* U+012060: CUNEIFORM SIGN DAG KISIM5 TIMES HA*/ + RTUNI_ALPHA, /* U+012061: CUNEIFORM SIGN DAG KISIM5 TIMES IR*/ + RTUNI_ALPHA, /* U+012062: CUNEIFORM SIGN DAG KISIM5 TIMES IR PLUS LU*/ + RTUNI_ALPHA, /* U+012063: CUNEIFORM SIGN DAG KISIM5 TIMES KAK*/ + RTUNI_ALPHA, /* U+012064: CUNEIFORM SIGN DAG KISIM5 TIMES LA*/ + RTUNI_ALPHA, /* U+012065: CUNEIFORM SIGN DAG KISIM5 TIMES LU*/ + RTUNI_ALPHA, /* U+012066: CUNEIFORM SIGN DAG KISIM5 TIMES LU PLUS MASH2*/ + RTUNI_ALPHA, /* U+012067: CUNEIFORM SIGN DAG KISIM5 TIMES LUM*/ + RTUNI_ALPHA, /* U+012068: CUNEIFORM SIGN DAG KISIM5 TIMES NE*/ + RTUNI_ALPHA, /* U+012069: CUNEIFORM SIGN DAG KISIM5 TIMES PAP PLUS PAP*/ + RTUNI_ALPHA, /* U+01206a: CUNEIFORM SIGN DAG KISIM5 TIMES SI*/ + RTUNI_ALPHA, /* U+01206b: CUNEIFORM SIGN DAG KISIM5 TIMES TAK4*/ + RTUNI_ALPHA, /* U+01206c: CUNEIFORM SIGN DAG KISIM5 TIMES U2 PLUS GIR2*/ + RTUNI_ALPHA, /* U+01206d: CUNEIFORM SIGN DAG KISIM5 TIMES USH*/ + RTUNI_ALPHA, /* U+01206e: CUNEIFORM SIGN DAM*/ + RTUNI_ALPHA, /* U+01206f: CUNEIFORM SIGN DAR*/ + RTUNI_ALPHA, /* U+012070: CUNEIFORM SIGN DARA3*/ + RTUNI_ALPHA, /* U+012071: CUNEIFORM SIGN DARA4*/ + RTUNI_ALPHA, /* U+012072: CUNEIFORM SIGN DI*/ + RTUNI_ALPHA, /* U+012073: CUNEIFORM SIGN DIB*/ + RTUNI_ALPHA, /* U+012074: CUNEIFORM SIGN DIM*/ + RTUNI_ALPHA, /* U+012075: CUNEIFORM SIGN DIM TIMES SHE*/ + RTUNI_ALPHA, /* U+012076: CUNEIFORM SIGN DIM2*/ + RTUNI_ALPHA, /* U+012077: CUNEIFORM SIGN DIN*/ + RTUNI_ALPHA, /* U+012078: CUNEIFORM SIGN DIN KASKAL U GUNU DISH*/ + RTUNI_ALPHA, /* U+012079: CUNEIFORM SIGN DISH*/ + RTUNI_ALPHA, /* U+01207a: CUNEIFORM SIGN DU*/ + RTUNI_ALPHA, /* U+01207b: CUNEIFORM SIGN DU OVER DU*/ + RTUNI_ALPHA, /* U+01207c: CUNEIFORM SIGN DU GUNU*/ + RTUNI_ALPHA, /* U+01207d: CUNEIFORM SIGN DU SHESHIG*/ + RTUNI_ALPHA, /* U+01207e: CUNEIFORM SIGN DUB*/ + RTUNI_ALPHA, /* U+01207f: CUNEIFORM SIGN DUB TIMES ESH2*/ + RTUNI_ALPHA, /* U+012080: CUNEIFORM SIGN DUB2*/ + RTUNI_ALPHA, /* U+012081: CUNEIFORM SIGN DUG*/ + RTUNI_ALPHA, /* U+012082: CUNEIFORM SIGN DUGUD*/ + RTUNI_ALPHA, /* U+012083: CUNEIFORM SIGN DUH*/ + RTUNI_ALPHA, /* U+012084: CUNEIFORM SIGN DUN*/ + RTUNI_ALPHA, /* U+012085: CUNEIFORM SIGN DUN3*/ + RTUNI_ALPHA, /* U+012086: CUNEIFORM SIGN DUN3 GUNU*/ + RTUNI_ALPHA, /* U+012087: CUNEIFORM SIGN DUN3 GUNU GUNU*/ + RTUNI_ALPHA, /* U+012088: CUNEIFORM SIGN DUN4*/ + RTUNI_ALPHA, /* U+012089: CUNEIFORM SIGN DUR2*/ + RTUNI_ALPHA, /* U+01208a: CUNEIFORM SIGN E*/ + RTUNI_ALPHA, /* U+01208b: CUNEIFORM SIGN E TIMES PAP*/ + RTUNI_ALPHA, /* U+01208c: CUNEIFORM SIGN E OVER E NUN OVER NUN*/ + RTUNI_ALPHA, /* U+01208d: CUNEIFORM SIGN E2*/ + RTUNI_ALPHA, /* U+01208e: CUNEIFORM SIGN E2 TIMES A PLUS HA PLUS DA*/ + RTUNI_ALPHA, /* U+01208f: CUNEIFORM SIGN E2 TIMES GAR*/ + RTUNI_ALPHA, /* U+012090: CUNEIFORM SIGN E2 TIMES MI*/ + RTUNI_ALPHA, /* U+012091: CUNEIFORM SIGN E2 TIMES SAL*/ + RTUNI_ALPHA, /* U+012092: CUNEIFORM SIGN E2 TIMES SHE*/ + RTUNI_ALPHA, /* U+012093: CUNEIFORM SIGN E2 TIMES U*/ + RTUNI_ALPHA, /* U+012094: CUNEIFORM SIGN EDIN*/ + RTUNI_ALPHA, /* U+012095: CUNEIFORM SIGN EGIR*/ + RTUNI_ALPHA, /* U+012096: CUNEIFORM SIGN EL*/ + RTUNI_ALPHA, /* U+012097: CUNEIFORM SIGN EN*/ + RTUNI_ALPHA, /* U+012098: CUNEIFORM SIGN EN TIMES GAN2*/ + RTUNI_ALPHA, /* U+012099: CUNEIFORM SIGN EN TIMES GAN2 TENU*/ + RTUNI_ALPHA, /* U+01209a: CUNEIFORM SIGN EN TIMES ME*/ + RTUNI_ALPHA, /* U+01209b: CUNEIFORM SIGN EN CROSSING EN*/ + RTUNI_ALPHA, /* U+01209c: CUNEIFORM SIGN EN OPPOSING EN*/ + RTUNI_ALPHA, /* U+01209d: CUNEIFORM SIGN EN SQUARED*/ + RTUNI_ALPHA, /* U+01209e: CUNEIFORM SIGN EREN*/ + RTUNI_ALPHA, /* U+01209f: CUNEIFORM SIGN ERIN2*/ + RTUNI_ALPHA, /* U+0120a0: CUNEIFORM SIGN ESH2*/ + RTUNI_ALPHA, /* U+0120a1: CUNEIFORM SIGN EZEN*/ + RTUNI_ALPHA, /* U+0120a2: CUNEIFORM SIGN EZEN TIMES A*/ + RTUNI_ALPHA, /* U+0120a3: CUNEIFORM SIGN EZEN TIMES A PLUS LAL*/ + RTUNI_ALPHA, /* U+0120a4: CUNEIFORM SIGN EZEN TIMES A PLUS LAL TIMES LAL*/ + RTUNI_ALPHA, /* U+0120a5: CUNEIFORM SIGN EZEN TIMES AN*/ + RTUNI_ALPHA, /* U+0120a6: CUNEIFORM SIGN EZEN TIMES BAD*/ + RTUNI_ALPHA, /* U+0120a7: CUNEIFORM SIGN EZEN TIMES DUN3 GUNU*/ + RTUNI_ALPHA, /* U+0120a8: CUNEIFORM SIGN EZEN TIMES DUN3 GUNU GUNU*/ + RTUNI_ALPHA, /* U+0120a9: CUNEIFORM SIGN EZEN TIMES HA*/ + RTUNI_ALPHA, /* U+0120aa: CUNEIFORM SIGN EZEN TIMES HA GUNU*/ + RTUNI_ALPHA, /* U+0120ab: CUNEIFORM SIGN EZEN TIMES IGI GUNU*/ + RTUNI_ALPHA, /* U+0120ac: CUNEIFORM SIGN EZEN TIMES KASKAL*/ + RTUNI_ALPHA, /* U+0120ad: CUNEIFORM SIGN EZEN TIMES KASKAL SQUARED*/ + RTUNI_ALPHA, /* U+0120ae: CUNEIFORM SIGN EZEN TIMES KU3*/ + RTUNI_ALPHA, /* U+0120af: CUNEIFORM SIGN EZEN TIMES LA*/ + RTUNI_ALPHA, /* U+0120b0: CUNEIFORM SIGN EZEN TIMES LAL TIMES LAL*/ + RTUNI_ALPHA, /* U+0120b1: CUNEIFORM SIGN EZEN TIMES LI*/ + RTUNI_ALPHA, /* U+0120b2: CUNEIFORM SIGN EZEN TIMES LU*/ + RTUNI_ALPHA, /* U+0120b3: CUNEIFORM SIGN EZEN TIMES U2*/ + RTUNI_ALPHA, /* U+0120b4: CUNEIFORM SIGN EZEN TIMES UD*/ + RTUNI_ALPHA, /* U+0120b5: CUNEIFORM SIGN GA*/ + RTUNI_ALPHA, /* U+0120b6: CUNEIFORM SIGN GA GUNU*/ + RTUNI_ALPHA, /* U+0120b7: CUNEIFORM SIGN GA2*/ + RTUNI_ALPHA, /* U+0120b8: CUNEIFORM SIGN GA2 TIMES A PLUS DA PLUS HA*/ + RTUNI_ALPHA, /* U+0120b9: CUNEIFORM SIGN GA2 TIMES A PLUS HA*/ + RTUNI_ALPHA, /* U+0120ba: CUNEIFORM SIGN GA2 TIMES A PLUS IGI*/ + RTUNI_ALPHA, /* U+0120bb: CUNEIFORM SIGN GA2 TIMES AB2 TENU PLUS TAB*/ + RTUNI_ALPHA, /* U+0120bc: CUNEIFORM SIGN GA2 TIMES AN*/ + RTUNI_ALPHA, /* U+0120bd: CUNEIFORM SIGN GA2 TIMES ASH*/ + RTUNI_ALPHA, /* U+0120be: CUNEIFORM SIGN GA2 TIMES ASH2 PLUS GAL*/ + RTUNI_ALPHA, /* U+0120bf: CUNEIFORM SIGN GA2 TIMES BAD*/ + RTUNI_ALPHA, /* U+0120c0: CUNEIFORM SIGN GA2 TIMES BAR PLUS RA*/ + RTUNI_ALPHA, /* U+0120c1: CUNEIFORM SIGN GA2 TIMES BUR*/ + RTUNI_ALPHA, /* U+0120c2: CUNEIFORM SIGN GA2 TIMES BUR PLUS RA*/ + RTUNI_ALPHA, /* U+0120c3: CUNEIFORM SIGN GA2 TIMES DA*/ + RTUNI_ALPHA, /* U+0120c4: CUNEIFORM SIGN GA2 TIMES DI*/ + RTUNI_ALPHA, /* U+0120c5: CUNEIFORM SIGN GA2 TIMES DIM TIMES SHE*/ + RTUNI_ALPHA, /* U+0120c6: CUNEIFORM SIGN GA2 TIMES DUB*/ + RTUNI_ALPHA, /* U+0120c7: CUNEIFORM SIGN GA2 TIMES EL*/ + RTUNI_ALPHA, /* U+0120c8: CUNEIFORM SIGN GA2 TIMES EL PLUS LA*/ + RTUNI_ALPHA, /* U+0120c9: CUNEIFORM SIGN GA2 TIMES EN*/ + RTUNI_ALPHA, /* U+0120ca: CUNEIFORM SIGN GA2 TIMES EN TIMES GAN2 TENU*/ + RTUNI_ALPHA, /* U+0120cb: CUNEIFORM SIGN GA2 TIMES GAN2 TENU*/ + RTUNI_ALPHA, /* U+0120cc: CUNEIFORM SIGN GA2 TIMES GAR*/ + RTUNI_ALPHA, /* U+0120cd: CUNEIFORM SIGN GA2 TIMES GI*/ + RTUNI_ALPHA, /* U+0120ce: CUNEIFORM SIGN GA2 TIMES GI4*/ + RTUNI_ALPHA, /* U+0120cf: CUNEIFORM SIGN GA2 TIMES GI4 PLUS A*/ + RTUNI_ALPHA, /* U+0120d0: CUNEIFORM SIGN GA2 TIMES GIR2 PLUS SU*/ + RTUNI_ALPHA, /* U+0120d1: CUNEIFORM SIGN GA2 TIMES HA PLUS LU PLUS ESH2*/ + RTUNI_ALPHA, /* U+0120d2: CUNEIFORM SIGN GA2 TIMES HAL*/ + RTUNI_ALPHA, /* U+0120d3: CUNEIFORM SIGN GA2 TIMES HAL PLUS LA*/ + RTUNI_ALPHA, /* U+0120d4: CUNEIFORM SIGN GA2 TIMES HI PLUS LI*/ + RTUNI_ALPHA, /* U+0120d5: CUNEIFORM SIGN GA2 TIMES HUB2*/ + RTUNI_ALPHA, /* U+0120d6: CUNEIFORM SIGN GA2 TIMES IGI GUNU*/ + RTUNI_ALPHA, /* U+0120d7: CUNEIFORM SIGN GA2 TIMES ISH PLUS HU PLUS ASH*/ + RTUNI_ALPHA, /* U+0120d8: CUNEIFORM SIGN GA2 TIMES KAK*/ + RTUNI_ALPHA, /* U+0120d9: CUNEIFORM SIGN GA2 TIMES KASKAL*/ + RTUNI_ALPHA, /* U+0120da: CUNEIFORM SIGN GA2 TIMES KID*/ + RTUNI_ALPHA, /* U+0120db: CUNEIFORM SIGN GA2 TIMES KID PLUS LAL*/ + RTUNI_ALPHA, /* U+0120dc: CUNEIFORM SIGN GA2 TIMES KU3 PLUS AN*/ + RTUNI_ALPHA, /* U+0120dd: CUNEIFORM SIGN GA2 TIMES LA*/ + RTUNI_ALPHA, /* U+0120de: CUNEIFORM SIGN GA2 TIMES ME PLUS EN*/ + RTUNI_ALPHA, /* U+0120df: CUNEIFORM SIGN GA2 TIMES MI*/ + RTUNI_ALPHA, /* U+0120e0: CUNEIFORM SIGN GA2 TIMES NUN*/ + RTUNI_ALPHA, /* U+0120e1: CUNEIFORM SIGN GA2 TIMES NUN OVER NUN*/ + RTUNI_ALPHA, /* U+0120e2: CUNEIFORM SIGN GA2 TIMES PA*/ + RTUNI_ALPHA, /* U+0120e3: CUNEIFORM SIGN GA2 TIMES SAL*/ + RTUNI_ALPHA, /* U+0120e4: CUNEIFORM SIGN GA2 TIMES SAR*/ + RTUNI_ALPHA, /* U+0120e5: CUNEIFORM SIGN GA2 TIMES SHE*/ + RTUNI_ALPHA, /* U+0120e6: CUNEIFORM SIGN GA2 TIMES SHE PLUS TUR*/ + RTUNI_ALPHA, /* U+0120e7: CUNEIFORM SIGN GA2 TIMES SHID*/ + RTUNI_ALPHA, /* U+0120e8: CUNEIFORM SIGN GA2 TIMES SUM*/ + RTUNI_ALPHA, /* U+0120e9: CUNEIFORM SIGN GA2 TIMES TAK4*/ + RTUNI_ALPHA, /* U+0120ea: CUNEIFORM SIGN GA2 TIMES U*/ + RTUNI_ALPHA, /* U+0120eb: CUNEIFORM SIGN GA2 TIMES UD*/ + RTUNI_ALPHA, /* U+0120ec: CUNEIFORM SIGN GA2 TIMES UD PLUS DU*/ + RTUNI_ALPHA, /* U+0120ed: CUNEIFORM SIGN GA2 OVER GA2*/ + RTUNI_ALPHA, /* U+0120ee: CUNEIFORM SIGN GABA*/ + RTUNI_ALPHA, /* U+0120ef: CUNEIFORM SIGN GABA CROSSING GABA*/ + RTUNI_ALPHA, /* U+0120f0: CUNEIFORM SIGN GAD*/ + RTUNI_ALPHA, /* U+0120f1: CUNEIFORM SIGN GAD OVER GAD GAR OVER GAR*/ + RTUNI_ALPHA, /* U+0120f2: CUNEIFORM SIGN GAL*/ + RTUNI_ALPHA, /* U+0120f3: CUNEIFORM SIGN GAL GAD OVER GAD GAR OVER GAR*/ + RTUNI_ALPHA, /* U+0120f4: CUNEIFORM SIGN GALAM*/ + RTUNI_ALPHA, /* U+0120f5: CUNEIFORM SIGN GAM*/ + RTUNI_ALPHA, /* U+0120f6: CUNEIFORM SIGN GAN*/ + RTUNI_ALPHA, /* U+0120f7: CUNEIFORM SIGN GAN2*/ + RTUNI_ALPHA, /* U+0120f8: CUNEIFORM SIGN GAN2 TENU*/ + RTUNI_ALPHA, /* U+0120f9: CUNEIFORM SIGN GAN2 OVER GAN2*/ + RTUNI_ALPHA, /* U+0120fa: CUNEIFORM SIGN GAN2 CROSSING GAN2*/ + RTUNI_ALPHA, /* U+0120fb: CUNEIFORM SIGN GAR*/ + RTUNI_ALPHA, /* U+0120fc: CUNEIFORM SIGN GAR3*/ + RTUNI_ALPHA, /* U+0120fd: CUNEIFORM SIGN GASHAN*/ + RTUNI_ALPHA, /* U+0120fe: CUNEIFORM SIGN GESHTIN*/ + RTUNI_ALPHA, /* U+0120ff: CUNEIFORM SIGN GESHTIN TIMES KUR*/ + RTUNI_ALPHA, /* U+012100: CUNEIFORM SIGN GI*/ + RTUNI_ALPHA, /* U+012101: CUNEIFORM SIGN GI TIMES E*/ + RTUNI_ALPHA, /* U+012102: CUNEIFORM SIGN GI TIMES U*/ + RTUNI_ALPHA, /* U+012103: CUNEIFORM SIGN GI CROSSING GI*/ + RTUNI_ALPHA, /* U+012104: CUNEIFORM SIGN GI4*/ + RTUNI_ALPHA, /* U+012105: CUNEIFORM SIGN GI4 OVER GI4*/ + RTUNI_ALPHA, /* U+012106: CUNEIFORM SIGN GI4 CROSSING GI4*/ + RTUNI_ALPHA, /* U+012107: CUNEIFORM SIGN GIDIM*/ + RTUNI_ALPHA, /* U+012108: CUNEIFORM SIGN GIR2*/ + RTUNI_ALPHA, /* U+012109: CUNEIFORM SIGN GIR2 GUNU*/ + RTUNI_ALPHA, /* U+01210a: CUNEIFORM SIGN GIR3*/ + RTUNI_ALPHA, /* U+01210b: CUNEIFORM SIGN GIR3 TIMES A PLUS IGI*/ + RTUNI_ALPHA, /* U+01210c: CUNEIFORM SIGN GIR3 TIMES GAN2 TENU*/ + RTUNI_ALPHA, /* U+01210d: CUNEIFORM SIGN GIR3 TIMES IGI*/ + RTUNI_ALPHA, /* U+01210e: CUNEIFORM SIGN GIR3 TIMES LU PLUS IGI*/ + RTUNI_ALPHA, /* U+01210f: CUNEIFORM SIGN GIR3 TIMES PA*/ + RTUNI_ALPHA, /* U+012110: CUNEIFORM SIGN GISAL*/ + RTUNI_ALPHA, /* U+012111: CUNEIFORM SIGN GISH*/ + RTUNI_ALPHA, /* U+012112: CUNEIFORM SIGN GISH CROSSING GISH*/ + RTUNI_ALPHA, /* U+012113: CUNEIFORM SIGN GISH TIMES BAD*/ + RTUNI_ALPHA, /* U+012114: CUNEIFORM SIGN GISH TIMES TAK4*/ + RTUNI_ALPHA, /* U+012115: CUNEIFORM SIGN GISH TENU*/ + RTUNI_ALPHA, /* U+012116: CUNEIFORM SIGN GU*/ + RTUNI_ALPHA, /* U+012117: CUNEIFORM SIGN GU CROSSING GU*/ + RTUNI_ALPHA, /* U+012118: CUNEIFORM SIGN GU2*/ + RTUNI_ALPHA, /* U+012119: CUNEIFORM SIGN GU2 TIMES KAK*/ + RTUNI_ALPHA, /* U+01211a: CUNEIFORM SIGN GU2 TIMES KAK TIMES IGI GUNU*/ + RTUNI_ALPHA, /* U+01211b: CUNEIFORM SIGN GU2 TIMES NUN*/ + RTUNI_ALPHA, /* U+01211c: CUNEIFORM SIGN GU2 TIMES SAL PLUS TUG2*/ + RTUNI_ALPHA, /* U+01211d: CUNEIFORM SIGN GU2 GUNU*/ + RTUNI_ALPHA, /* U+01211e: CUNEIFORM SIGN GUD*/ + RTUNI_ALPHA, /* U+01211f: CUNEIFORM SIGN GUD TIMES A PLUS KUR*/ + RTUNI_ALPHA, /* U+012120: CUNEIFORM SIGN GUD TIMES KUR*/ + RTUNI_ALPHA, /* U+012121: CUNEIFORM SIGN GUD OVER GUD LUGAL*/ + RTUNI_ALPHA, /* U+012122: CUNEIFORM SIGN GUL*/ + RTUNI_ALPHA, /* U+012123: CUNEIFORM SIGN GUM*/ + RTUNI_ALPHA, /* U+012124: CUNEIFORM SIGN GUM TIMES SHE*/ + RTUNI_ALPHA, /* U+012125: CUNEIFORM SIGN GUR*/ + RTUNI_ALPHA, /* U+012126: CUNEIFORM SIGN GUR7*/ + RTUNI_ALPHA, /* U+012127: CUNEIFORM SIGN GURUN*/ + RTUNI_ALPHA, /* U+012128: CUNEIFORM SIGN GURUSH*/ + RTUNI_ALPHA, /* U+012129: CUNEIFORM SIGN HA*/ + RTUNI_ALPHA, /* U+01212a: CUNEIFORM SIGN HA TENU*/ + RTUNI_ALPHA, /* U+01212b: CUNEIFORM SIGN HA GUNU*/ + RTUNI_ALPHA, /* U+01212c: CUNEIFORM SIGN HAL*/ + RTUNI_ALPHA, /* U+01212d: CUNEIFORM SIGN HI*/ + RTUNI_ALPHA, /* U+01212e: CUNEIFORM SIGN HI TIMES ASH*/ + RTUNI_ALPHA, /* U+01212f: CUNEIFORM SIGN HI TIMES ASH2*/ + RTUNI_ALPHA, /* U+012130: CUNEIFORM SIGN HI TIMES BAD*/ + RTUNI_ALPHA, /* U+012131: CUNEIFORM SIGN HI TIMES DISH*/ + RTUNI_ALPHA, /* U+012132: CUNEIFORM SIGN HI TIMES GAD*/ + RTUNI_ALPHA, /* U+012133: CUNEIFORM SIGN HI TIMES KIN*/ + RTUNI_ALPHA, /* U+012134: CUNEIFORM SIGN HI TIMES NUN*/ + RTUNI_ALPHA, /* U+012135: CUNEIFORM SIGN HI TIMES SHE*/ + RTUNI_ALPHA, /* U+012136: CUNEIFORM SIGN HI TIMES U*/ + RTUNI_ALPHA, /* U+012137: CUNEIFORM SIGN HU*/ + RTUNI_ALPHA, /* U+012138: CUNEIFORM SIGN HUB2*/ + RTUNI_ALPHA, /* U+012139: CUNEIFORM SIGN HUB2 TIMES AN*/ + RTUNI_ALPHA, /* U+01213a: CUNEIFORM SIGN HUB2 TIMES HAL*/ + RTUNI_ALPHA, /* U+01213b: CUNEIFORM SIGN HUB2 TIMES KASKAL*/ + RTUNI_ALPHA, /* U+01213c: CUNEIFORM SIGN HUB2 TIMES LISH*/ + RTUNI_ALPHA, /* U+01213d: CUNEIFORM SIGN HUB2 TIMES UD*/ + RTUNI_ALPHA, /* U+01213e: CUNEIFORM SIGN HUL2*/ + RTUNI_ALPHA, /* U+01213f: CUNEIFORM SIGN I*/ + RTUNI_ALPHA, /* U+012140: CUNEIFORM SIGN I A*/ + RTUNI_ALPHA, /* U+012141: CUNEIFORM SIGN IB*/ + RTUNI_ALPHA, /* U+012142: CUNEIFORM SIGN IDIM*/ + RTUNI_ALPHA, /* U+012143: CUNEIFORM SIGN IDIM OVER IDIM BUR*/ + RTUNI_ALPHA, /* U+012144: CUNEIFORM SIGN IDIM OVER IDIM SQUARED*/ + RTUNI_ALPHA, /* U+012145: CUNEIFORM SIGN IG*/ + RTUNI_ALPHA, /* U+012146: CUNEIFORM SIGN IGI*/ + RTUNI_ALPHA, /* U+012147: CUNEIFORM SIGN IGI DIB*/ + RTUNI_ALPHA, /* U+012148: CUNEIFORM SIGN IGI RI*/ + RTUNI_ALPHA, /* U+012149: CUNEIFORM SIGN IGI OVER IGI SHIR OVER SHIR UD OVER UD*/ + RTUNI_ALPHA, /* U+01214a: CUNEIFORM SIGN IGI GUNU*/ + RTUNI_ALPHA, /* U+01214b: CUNEIFORM SIGN IL*/ + RTUNI_ALPHA, /* U+01214c: CUNEIFORM SIGN IL TIMES GAN2 TENU*/ + RTUNI_ALPHA, /* U+01214d: CUNEIFORM SIGN IL2*/ + RTUNI_ALPHA, /* U+01214e: CUNEIFORM SIGN IM*/ + RTUNI_ALPHA, /* U+01214f: CUNEIFORM SIGN IM TIMES TAK4*/ + RTUNI_ALPHA, /* U+012150: CUNEIFORM SIGN IM CROSSING IM*/ + RTUNI_ALPHA, /* U+012151: CUNEIFORM SIGN IM OPPOSING IM*/ + RTUNI_ALPHA, /* U+012152: CUNEIFORM SIGN IM SQUARED*/ + RTUNI_ALPHA, /* U+012153: CUNEIFORM SIGN IMIN*/ + RTUNI_ALPHA, /* U+012154: CUNEIFORM SIGN IN*/ + RTUNI_ALPHA, /* U+012155: CUNEIFORM SIGN IR*/ + RTUNI_ALPHA, /* U+012156: CUNEIFORM SIGN ISH*/ + RTUNI_ALPHA, /* U+012157: CUNEIFORM SIGN KA*/ + RTUNI_ALPHA, /* U+012158: CUNEIFORM SIGN KA TIMES A*/ + RTUNI_ALPHA, /* U+012159: CUNEIFORM SIGN KA TIMES AD*/ + RTUNI_ALPHA, /* U+01215a: CUNEIFORM SIGN KA TIMES AD PLUS KU3*/ + RTUNI_ALPHA, /* U+01215b: CUNEIFORM SIGN KA TIMES ASH2*/ + RTUNI_ALPHA, /* U+01215c: CUNEIFORM SIGN KA TIMES BAD*/ + RTUNI_ALPHA, /* U+01215d: CUNEIFORM SIGN KA TIMES BALAG*/ + RTUNI_ALPHA, /* U+01215e: CUNEIFORM SIGN KA TIMES BAR*/ + RTUNI_ALPHA, /* U+01215f: CUNEIFORM SIGN KA TIMES BI*/ + RTUNI_ALPHA, /* U+012160: CUNEIFORM SIGN KA TIMES ERIN2*/ + RTUNI_ALPHA, /* U+012161: CUNEIFORM SIGN KA TIMES ESH2*/ + RTUNI_ALPHA, /* U+012162: CUNEIFORM SIGN KA TIMES GA*/ + RTUNI_ALPHA, /* U+012163: CUNEIFORM SIGN KA TIMES GAL*/ + RTUNI_ALPHA, /* U+012164: CUNEIFORM SIGN KA TIMES GAN2 TENU*/ + RTUNI_ALPHA, /* U+012165: CUNEIFORM SIGN KA TIMES GAR*/ + RTUNI_ALPHA, /* U+012166: CUNEIFORM SIGN KA TIMES GAR PLUS SHA3 PLUS A*/ + RTUNI_ALPHA, /* U+012167: CUNEIFORM SIGN KA TIMES GI*/ + RTUNI_ALPHA, /* U+012168: CUNEIFORM SIGN KA TIMES GIR2*/ + RTUNI_ALPHA, /* U+012169: CUNEIFORM SIGN KA TIMES GISH PLUS SAR*/ + RTUNI_ALPHA, /* U+01216a: CUNEIFORM SIGN KA TIMES GISH CROSSING GISH*/ + RTUNI_ALPHA, /* U+01216b: CUNEIFORM SIGN KA TIMES GU*/ + RTUNI_ALPHA, /* U+01216c: CUNEIFORM SIGN KA TIMES GUR7*/ + RTUNI_ALPHA, /* U+01216d: CUNEIFORM SIGN KA TIMES IGI*/ + RTUNI_ALPHA, /* U+01216e: CUNEIFORM SIGN KA TIMES IM*/ + RTUNI_ALPHA, /* U+01216f: CUNEIFORM SIGN KA TIMES KAK*/ + RTUNI_ALPHA, /* U+012170: CUNEIFORM SIGN KA TIMES KI*/ + RTUNI_ALPHA, /* U+012171: CUNEIFORM SIGN KA TIMES KID*/ + RTUNI_ALPHA, /* U+012172: CUNEIFORM SIGN KA TIMES LI*/ + RTUNI_ALPHA, /* U+012173: CUNEIFORM SIGN KA TIMES LU*/ + RTUNI_ALPHA, /* U+012174: CUNEIFORM SIGN KA TIMES ME*/ + RTUNI_ALPHA, /* U+012175: CUNEIFORM SIGN KA TIMES ME PLUS DU*/ + RTUNI_ALPHA, /* U+012176: CUNEIFORM SIGN KA TIMES ME PLUS GI*/ + RTUNI_ALPHA, /* U+012177: CUNEIFORM SIGN KA TIMES ME PLUS TE*/ + RTUNI_ALPHA, /* U+012178: CUNEIFORM SIGN KA TIMES MI*/ + RTUNI_ALPHA, /* U+012179: CUNEIFORM SIGN KA TIMES MI PLUS NUNUZ*/ + RTUNI_ALPHA, /* U+01217a: CUNEIFORM SIGN KA TIMES NE*/ + RTUNI_ALPHA, /* U+01217b: CUNEIFORM SIGN KA TIMES NUN*/ + RTUNI_ALPHA, /* U+01217c: CUNEIFORM SIGN KA TIMES PI*/ + RTUNI_ALPHA, /* U+01217d: CUNEIFORM SIGN KA TIMES RU*/ + RTUNI_ALPHA, /* U+01217e: CUNEIFORM SIGN KA TIMES SA*/ + RTUNI_ALPHA, /* U+01217f: CUNEIFORM SIGN KA TIMES SAR*/ + RTUNI_ALPHA, /* U+012180: CUNEIFORM SIGN KA TIMES SHA*/ + RTUNI_ALPHA, /* U+012181: CUNEIFORM SIGN KA TIMES SHE*/ + RTUNI_ALPHA, /* U+012182: CUNEIFORM SIGN KA TIMES SHID*/ + RTUNI_ALPHA, /* U+012183: CUNEIFORM SIGN KA TIMES SHU*/ + RTUNI_ALPHA, /* U+012184: CUNEIFORM SIGN KA TIMES SIG*/ + RTUNI_ALPHA, /* U+012185: CUNEIFORM SIGN KA TIMES SUHUR*/ + RTUNI_ALPHA, /* U+012186: CUNEIFORM SIGN KA TIMES TAR*/ + RTUNI_ALPHA, /* U+012187: CUNEIFORM SIGN KA TIMES U*/ + RTUNI_ALPHA, /* U+012188: CUNEIFORM SIGN KA TIMES U2*/ + RTUNI_ALPHA, /* U+012189: CUNEIFORM SIGN KA TIMES UD*/ + RTUNI_ALPHA, /* U+01218a: CUNEIFORM SIGN KA TIMES UMUM TIMES PA*/ + RTUNI_ALPHA, /* U+01218b: CUNEIFORM SIGN KA TIMES USH*/ + RTUNI_ALPHA, /* U+01218c: CUNEIFORM SIGN KA TIMES ZI*/ + RTUNI_ALPHA, /* U+01218d: CUNEIFORM SIGN KA2*/ + RTUNI_ALPHA, /* U+01218e: CUNEIFORM SIGN KA2 CROSSING KA2*/ + RTUNI_ALPHA, /* U+01218f: CUNEIFORM SIGN KAB*/ + RTUNI_ALPHA, /* U+012190: CUNEIFORM SIGN KAD2*/ + RTUNI_ALPHA, /* U+012191: CUNEIFORM SIGN KAD3*/ + RTUNI_ALPHA, /* U+012192: CUNEIFORM SIGN KAD4*/ + RTUNI_ALPHA, /* U+012193: CUNEIFORM SIGN KAD5*/ + RTUNI_ALPHA, /* U+012194: CUNEIFORM SIGN KAD5 OVER KAD5*/ + RTUNI_ALPHA, /* U+012195: CUNEIFORM SIGN KAK*/ + RTUNI_ALPHA, /* U+012196: CUNEIFORM SIGN KAK TIMES IGI GUNU*/ + RTUNI_ALPHA, /* U+012197: CUNEIFORM SIGN KAL*/ + RTUNI_ALPHA, /* U+012198: CUNEIFORM SIGN KAL TIMES BAD*/ + RTUNI_ALPHA, /* U+012199: CUNEIFORM SIGN KAL CROSSING KAL*/ + RTUNI_ALPHA, /* U+01219a: CUNEIFORM SIGN KAM2*/ + RTUNI_ALPHA, /* U+01219b: CUNEIFORM SIGN KAM4*/ + RTUNI_ALPHA, /* U+01219c: CUNEIFORM SIGN KASKAL*/ + RTUNI_ALPHA, /* U+01219d: CUNEIFORM SIGN KASKAL LAGAB TIMES U OVER LAGAB TIMES U*/ + RTUNI_ALPHA, /* U+01219e: CUNEIFORM SIGN KASKAL OVER KASKAL LAGAB TIMES U OVER LAGAB TIMES U*/ + RTUNI_ALPHA, /* U+01219f: CUNEIFORM SIGN KESH2*/ + RTUNI_ALPHA, /* U+0121a0: CUNEIFORM SIGN KI*/ + RTUNI_ALPHA, /* U+0121a1: CUNEIFORM SIGN KI TIMES BAD*/ + RTUNI_ALPHA, /* U+0121a2: CUNEIFORM SIGN KI TIMES U*/ + RTUNI_ALPHA, /* U+0121a3: CUNEIFORM SIGN KI TIMES UD*/ + RTUNI_ALPHA, /* U+0121a4: CUNEIFORM SIGN KID*/ + RTUNI_ALPHA, /* U+0121a5: CUNEIFORM SIGN KIN*/ + RTUNI_ALPHA, /* U+0121a6: CUNEIFORM SIGN KISAL*/ + RTUNI_ALPHA, /* U+0121a7: CUNEIFORM SIGN KISH*/ + RTUNI_ALPHA, /* U+0121a8: CUNEIFORM SIGN KISIM5*/ + RTUNI_ALPHA, /* U+0121a9: CUNEIFORM SIGN KISIM5 OVER KISIM5*/ + RTUNI_ALPHA, /* U+0121aa: CUNEIFORM SIGN KU*/ + RTUNI_ALPHA, /* U+0121ab: CUNEIFORM SIGN KU OVER HI TIMES ASH2 KU OVER HI TIMES ASH2*/ + RTUNI_ALPHA, /* U+0121ac: CUNEIFORM SIGN KU3*/ + RTUNI_ALPHA, /* U+0121ad: CUNEIFORM SIGN KU4*/ + RTUNI_ALPHA, /* U+0121ae: CUNEIFORM SIGN KU4 VARIANT FORM*/ + RTUNI_ALPHA, /* U+0121af: CUNEIFORM SIGN KU7*/ + RTUNI_ALPHA, /* U+0121b0: CUNEIFORM SIGN KUL*/ + RTUNI_ALPHA, /* U+0121b1: CUNEIFORM SIGN KUL GUNU*/ + RTUNI_ALPHA, /* U+0121b2: CUNEIFORM SIGN KUN*/ + RTUNI_ALPHA, /* U+0121b3: CUNEIFORM SIGN KUR*/ + RTUNI_ALPHA, /* U+0121b4: CUNEIFORM SIGN KUR OPPOSING KUR*/ + RTUNI_ALPHA, /* U+0121b5: CUNEIFORM SIGN KUSHU2*/ + RTUNI_ALPHA, /* U+0121b6: CUNEIFORM SIGN KWU318*/ + RTUNI_ALPHA, /* U+0121b7: CUNEIFORM SIGN LA*/ + RTUNI_ALPHA, /* U+0121b8: CUNEIFORM SIGN LAGAB*/ + RTUNI_ALPHA, /* U+0121b9: CUNEIFORM SIGN LAGAB TIMES A*/ + RTUNI_ALPHA, /* U+0121ba: CUNEIFORM SIGN LAGAB TIMES A PLUS DA PLUS HA*/ + RTUNI_ALPHA, /* U+0121bb: CUNEIFORM SIGN LAGAB TIMES A PLUS GAR*/ + RTUNI_ALPHA, /* U+0121bc: CUNEIFORM SIGN LAGAB TIMES A PLUS LAL*/ + RTUNI_ALPHA, /* U+0121bd: CUNEIFORM SIGN LAGAB TIMES AL*/ + RTUNI_ALPHA, /* U+0121be: CUNEIFORM SIGN LAGAB TIMES AN*/ + RTUNI_ALPHA, /* U+0121bf: CUNEIFORM SIGN LAGAB TIMES ASH ZIDA TENU*/ + RTUNI_ALPHA, /* U+0121c0: CUNEIFORM SIGN LAGAB TIMES BAD*/ + RTUNI_ALPHA, /* U+0121c1: CUNEIFORM SIGN LAGAB TIMES BI*/ + RTUNI_ALPHA, /* U+0121c2: CUNEIFORM SIGN LAGAB TIMES DAR*/ + RTUNI_ALPHA, /* U+0121c3: CUNEIFORM SIGN LAGAB TIMES EN*/ + RTUNI_ALPHA, /* U+0121c4: CUNEIFORM SIGN LAGAB TIMES GA*/ + RTUNI_ALPHA, /* U+0121c5: CUNEIFORM SIGN LAGAB TIMES GAR*/ + RTUNI_ALPHA, /* U+0121c6: CUNEIFORM SIGN LAGAB TIMES GUD*/ + RTUNI_ALPHA, /* U+0121c7: CUNEIFORM SIGN LAGAB TIMES GUD PLUS GUD*/ + RTUNI_ALPHA, /* U+0121c8: CUNEIFORM SIGN LAGAB TIMES HA*/ + RTUNI_ALPHA, /* U+0121c9: CUNEIFORM SIGN LAGAB TIMES HAL*/ + RTUNI_ALPHA, /* U+0121ca: CUNEIFORM SIGN LAGAB TIMES HI TIMES NUN*/ + RTUNI_ALPHA, /* U+0121cb: CUNEIFORM SIGN LAGAB TIMES IGI GUNU*/ + RTUNI_ALPHA, /* U+0121cc: CUNEIFORM SIGN LAGAB TIMES IM*/ + RTUNI_ALPHA, /* U+0121cd: CUNEIFORM SIGN LAGAB TIMES IM PLUS HA*/ + RTUNI_ALPHA, /* U+0121ce: CUNEIFORM SIGN LAGAB TIMES IM PLUS LU*/ + RTUNI_ALPHA, /* U+0121cf: CUNEIFORM SIGN LAGAB TIMES KI*/ + RTUNI_ALPHA, /* U+0121d0: CUNEIFORM SIGN LAGAB TIMES KIN*/ + RTUNI_ALPHA, /* U+0121d1: CUNEIFORM SIGN LAGAB TIMES KU3*/ + RTUNI_ALPHA, /* U+0121d2: CUNEIFORM SIGN LAGAB TIMES KUL*/ + RTUNI_ALPHA, /* U+0121d3: CUNEIFORM SIGN LAGAB TIMES KUL PLUS HI PLUS A*/ + RTUNI_ALPHA, /* U+0121d4: CUNEIFORM SIGN LAGAB TIMES LAGAB*/ + RTUNI_ALPHA, /* U+0121d5: CUNEIFORM SIGN LAGAB TIMES LISH*/ + RTUNI_ALPHA, /* U+0121d6: CUNEIFORM SIGN LAGAB TIMES LU*/ + RTUNI_ALPHA, /* U+0121d7: CUNEIFORM SIGN LAGAB TIMES LUL*/ + RTUNI_ALPHA, /* U+0121d8: CUNEIFORM SIGN LAGAB TIMES ME*/ + RTUNI_ALPHA, /* U+0121d9: CUNEIFORM SIGN LAGAB TIMES ME PLUS EN*/ + RTUNI_ALPHA, /* U+0121da: CUNEIFORM SIGN LAGAB TIMES MUSH*/ + RTUNI_ALPHA, /* U+0121db: CUNEIFORM SIGN LAGAB TIMES NE*/ + RTUNI_ALPHA, /* U+0121dc: CUNEIFORM SIGN LAGAB TIMES SHE PLUS SUM*/ + RTUNI_ALPHA, /* U+0121dd: CUNEIFORM SIGN LAGAB TIMES SHITA PLUS GISH PLUS ERIN2*/ + RTUNI_ALPHA, /* U+0121de: CUNEIFORM SIGN LAGAB TIMES SHITA PLUS GISH TENU*/ + RTUNI_ALPHA, /* U+0121df: CUNEIFORM SIGN LAGAB TIMES SHU2*/ + RTUNI_ALPHA, /* U+0121e0: CUNEIFORM SIGN LAGAB TIMES SHU2 PLUS SHU2*/ + RTUNI_ALPHA, /* U+0121e1: CUNEIFORM SIGN LAGAB TIMES SUM*/ + RTUNI_ALPHA, /* U+0121e2: CUNEIFORM SIGN LAGAB TIMES TAG*/ + RTUNI_ALPHA, /* U+0121e3: CUNEIFORM SIGN LAGAB TIMES TAK4*/ + RTUNI_ALPHA, /* U+0121e4: CUNEIFORM SIGN LAGAB TIMES TE PLUS A PLUS SU PLUS NA*/ + RTUNI_ALPHA, /* U+0121e5: CUNEIFORM SIGN LAGAB TIMES U*/ + RTUNI_ALPHA, /* U+0121e6: CUNEIFORM SIGN LAGAB TIMES U PLUS A*/ + RTUNI_ALPHA, /* U+0121e7: CUNEIFORM SIGN LAGAB TIMES U PLUS U PLUS U*/ + RTUNI_ALPHA, /* U+0121e8: CUNEIFORM SIGN LAGAB TIMES U2 PLUS ASH*/ + RTUNI_ALPHA, /* U+0121e9: CUNEIFORM SIGN LAGAB TIMES UD*/ + RTUNI_ALPHA, /* U+0121ea: CUNEIFORM SIGN LAGAB TIMES USH*/ + RTUNI_ALPHA, /* U+0121eb: CUNEIFORM SIGN LAGAB SQUARED*/ + RTUNI_ALPHA, /* U+0121ec: CUNEIFORM SIGN LAGAR*/ + RTUNI_ALPHA, /* U+0121ed: CUNEIFORM SIGN LAGAR TIMES SHE*/ + RTUNI_ALPHA, /* U+0121ee: CUNEIFORM SIGN LAGAR TIMES SHE PLUS SUM*/ + RTUNI_ALPHA, /* U+0121ef: CUNEIFORM SIGN LAGAR GUNU*/ + RTUNI_ALPHA, /* U+0121f0: CUNEIFORM SIGN LAGAR GUNU OVER LAGAR GUNU SHE*/ + RTUNI_ALPHA, /* U+0121f1: CUNEIFORM SIGN LAHSHU*/ + RTUNI_ALPHA, /* U+0121f2: CUNEIFORM SIGN LAL*/ + RTUNI_ALPHA, /* U+0121f3: CUNEIFORM SIGN LAL TIMES LAL*/ + RTUNI_ALPHA, /* U+0121f4: CUNEIFORM SIGN LAM*/ + RTUNI_ALPHA, /* U+0121f5: CUNEIFORM SIGN LAM TIMES KUR*/ + RTUNI_ALPHA, /* U+0121f6: CUNEIFORM SIGN LAM TIMES KUR PLUS RU*/ + RTUNI_ALPHA, /* U+0121f7: CUNEIFORM SIGN LI*/ + RTUNI_ALPHA, /* U+0121f8: CUNEIFORM SIGN LIL*/ + RTUNI_ALPHA, /* U+0121f9: CUNEIFORM SIGN LIMMU2*/ + RTUNI_ALPHA, /* U+0121fa: CUNEIFORM SIGN LISH*/ + RTUNI_ALPHA, /* U+0121fb: CUNEIFORM SIGN LU*/ + RTUNI_ALPHA, /* U+0121fc: CUNEIFORM SIGN LU TIMES BAD*/ + RTUNI_ALPHA, /* U+0121fd: CUNEIFORM SIGN LU2*/ + RTUNI_ALPHA, /* U+0121fe: CUNEIFORM SIGN LU2 TIMES AL*/ + RTUNI_ALPHA, /* U+0121ff: CUNEIFORM SIGN LU2 TIMES BAD*/ + RTUNI_ALPHA, /* U+012200: CUNEIFORM SIGN LU2 TIMES ESH2*/ + RTUNI_ALPHA, /* U+012201: CUNEIFORM SIGN LU2 TIMES ESH2 TENU*/ + RTUNI_ALPHA, /* U+012202: CUNEIFORM SIGN LU2 TIMES GAN2 TENU*/ + RTUNI_ALPHA, /* U+012203: CUNEIFORM SIGN LU2 TIMES HI TIMES BAD*/ + RTUNI_ALPHA, /* U+012204: CUNEIFORM SIGN LU2 TIMES IM*/ + RTUNI_ALPHA, /* U+012205: CUNEIFORM SIGN LU2 TIMES KAD2*/ + RTUNI_ALPHA, /* U+012206: CUNEIFORM SIGN LU2 TIMES KAD3*/ + RTUNI_ALPHA, /* U+012207: CUNEIFORM SIGN LU2 TIMES KAD3 PLUS ASH*/ + RTUNI_ALPHA, /* U+012208: CUNEIFORM SIGN LU2 TIMES KI*/ + RTUNI_ALPHA, /* U+012209: CUNEIFORM SIGN LU2 TIMES LA PLUS ASH*/ + RTUNI_ALPHA, /* U+01220a: CUNEIFORM SIGN LU2 TIMES LAGAB*/ + RTUNI_ALPHA, /* U+01220b: CUNEIFORM SIGN LU2 TIMES ME PLUS EN*/ + RTUNI_ALPHA, /* U+01220c: CUNEIFORM SIGN LU2 TIMES NE*/ + RTUNI_ALPHA, /* U+01220d: CUNEIFORM SIGN LU2 TIMES NU*/ + RTUNI_ALPHA, /* U+01220e: CUNEIFORM SIGN LU2 TIMES SI PLUS ASH*/ + RTUNI_ALPHA, /* U+01220f: CUNEIFORM SIGN LU2 TIMES SIK2 PLUS BU*/ + RTUNI_ALPHA, /* U+012210: CUNEIFORM SIGN LU2 TIMES TUG2*/ + RTUNI_ALPHA, /* U+012211: CUNEIFORM SIGN LU2 TENU*/ + RTUNI_ALPHA, /* U+012212: CUNEIFORM SIGN LU2 CROSSING LU2*/ + RTUNI_ALPHA, /* U+012213: CUNEIFORM SIGN LU2 OPPOSING LU2*/ + RTUNI_ALPHA, /* U+012214: CUNEIFORM SIGN LU2 SQUARED*/ + RTUNI_ALPHA, /* U+012215: CUNEIFORM SIGN LU2 SHESHIG*/ + RTUNI_ALPHA, /* U+012216: CUNEIFORM SIGN LU3*/ + RTUNI_ALPHA, /* U+012217: CUNEIFORM SIGN LUGAL*/ + RTUNI_ALPHA, /* U+012218: CUNEIFORM SIGN LUGAL OVER LUGAL*/ + RTUNI_ALPHA, /* U+012219: CUNEIFORM SIGN LUGAL OPPOSING LUGAL*/ + RTUNI_ALPHA, /* U+01221a: CUNEIFORM SIGN LUGAL SHESHIG*/ + RTUNI_ALPHA, /* U+01221b: CUNEIFORM SIGN LUH*/ + RTUNI_ALPHA, /* U+01221c: CUNEIFORM SIGN LUL*/ + RTUNI_ALPHA, /* U+01221d: CUNEIFORM SIGN LUM*/ + RTUNI_ALPHA, /* U+01221e: CUNEIFORM SIGN LUM OVER LUM*/ + RTUNI_ALPHA, /* U+01221f: CUNEIFORM SIGN LUM OVER LUM GAR OVER GAR*/ + RTUNI_ALPHA, /* U+012220: CUNEIFORM SIGN MA*/ + RTUNI_ALPHA, /* U+012221: CUNEIFORM SIGN MA TIMES TAK4*/ + RTUNI_ALPHA, /* U+012222: CUNEIFORM SIGN MA GUNU*/ + RTUNI_ALPHA, /* U+012223: CUNEIFORM SIGN MA2*/ + RTUNI_ALPHA, /* U+012224: CUNEIFORM SIGN MAH*/ + RTUNI_ALPHA, /* U+012225: CUNEIFORM SIGN MAR*/ + RTUNI_ALPHA, /* U+012226: CUNEIFORM SIGN MASH*/ + RTUNI_ALPHA, /* U+012227: CUNEIFORM SIGN MASH2*/ + RTUNI_ALPHA, /* U+012228: CUNEIFORM SIGN ME*/ + RTUNI_ALPHA, /* U+012229: CUNEIFORM SIGN MES*/ + RTUNI_ALPHA, /* U+01222a: CUNEIFORM SIGN MI*/ + RTUNI_ALPHA, /* U+01222b: CUNEIFORM SIGN MIN*/ + RTUNI_ALPHA, /* U+01222c: CUNEIFORM SIGN MU*/ + RTUNI_ALPHA, /* U+01222d: CUNEIFORM SIGN MU OVER MU*/ + RTUNI_ALPHA, /* U+01222e: CUNEIFORM SIGN MUG*/ + RTUNI_ALPHA, /* U+01222f: CUNEIFORM SIGN MUG GUNU*/ + RTUNI_ALPHA, /* U+012230: CUNEIFORM SIGN MUNSUB*/ + RTUNI_ALPHA, /* U+012231: CUNEIFORM SIGN MURGU2*/ + RTUNI_ALPHA, /* U+012232: CUNEIFORM SIGN MUSH*/ + RTUNI_ALPHA, /* U+012233: CUNEIFORM SIGN MUSH TIMES A*/ + RTUNI_ALPHA, /* U+012234: CUNEIFORM SIGN MUSH TIMES KUR*/ + RTUNI_ALPHA, /* U+012235: CUNEIFORM SIGN MUSH TIMES ZA*/ + RTUNI_ALPHA, /* U+012236: CUNEIFORM SIGN MUSH OVER MUSH*/ + RTUNI_ALPHA, /* U+012237: CUNEIFORM SIGN MUSH OVER MUSH TIMES A PLUS NA*/ + RTUNI_ALPHA, /* U+012238: CUNEIFORM SIGN MUSH CROSSING MUSH*/ + RTUNI_ALPHA, /* U+012239: CUNEIFORM SIGN MUSH3*/ + RTUNI_ALPHA, /* U+01223a: CUNEIFORM SIGN MUSH3 TIMES A*/ + RTUNI_ALPHA, /* U+01223b: CUNEIFORM SIGN MUSH3 TIMES A PLUS DI*/ + RTUNI_ALPHA, /* U+01223c: CUNEIFORM SIGN MUSH3 TIMES DI*/ + RTUNI_ALPHA, /* U+01223d: CUNEIFORM SIGN MUSH3 GUNU*/ + RTUNI_ALPHA, /* U+01223e: CUNEIFORM SIGN NA*/ + RTUNI_ALPHA, /* U+01223f: CUNEIFORM SIGN NA2*/ + RTUNI_ALPHA, /* U+012240: CUNEIFORM SIGN NAGA*/ + RTUNI_ALPHA, /* U+012241: CUNEIFORM SIGN NAGA INVERTED*/ + RTUNI_ALPHA, /* U+012242: CUNEIFORM SIGN NAGA TIMES SHU TENU*/ + RTUNI_ALPHA, /* U+012243: CUNEIFORM SIGN NAGA OPPOSING NAGA*/ + RTUNI_ALPHA, /* U+012244: CUNEIFORM SIGN NAGAR*/ + RTUNI_ALPHA, /* U+012245: CUNEIFORM SIGN NAM NUTILLU*/ + RTUNI_ALPHA, /* U+012246: CUNEIFORM SIGN NAM*/ + RTUNI_ALPHA, /* U+012247: CUNEIFORM SIGN NAM2*/ + RTUNI_ALPHA, /* U+012248: CUNEIFORM SIGN NE*/ + RTUNI_ALPHA, /* U+012249: CUNEIFORM SIGN NE TIMES A*/ + RTUNI_ALPHA, /* U+01224a: CUNEIFORM SIGN NE TIMES UD*/ + RTUNI_ALPHA, /* U+01224b: CUNEIFORM SIGN NE SHESHIG*/ + RTUNI_ALPHA, /* U+01224c: CUNEIFORM SIGN NI*/ + RTUNI_ALPHA, /* U+01224d: CUNEIFORM SIGN NI TIMES E*/ + RTUNI_ALPHA, /* U+01224e: CUNEIFORM SIGN NI2*/ + RTUNI_ALPHA, /* U+01224f: CUNEIFORM SIGN NIM*/ + RTUNI_ALPHA, /* U+012250: CUNEIFORM SIGN NIM TIMES GAN2 TENU*/ + RTUNI_ALPHA, /* U+012251: CUNEIFORM SIGN NIM TIMES GAR PLUS GAN2 TENU*/ + RTUNI_ALPHA, /* U+012252: CUNEIFORM SIGN NINDA2*/ + RTUNI_ALPHA, /* U+012253: CUNEIFORM SIGN NINDA2 TIMES AN*/ + RTUNI_ALPHA, /* U+012254: CUNEIFORM SIGN NINDA2 TIMES ASH*/ + RTUNI_ALPHA, /* U+012255: CUNEIFORM SIGN NINDA2 TIMES ASH PLUS ASH*/ + RTUNI_ALPHA, /* U+012256: CUNEIFORM SIGN NINDA2 TIMES GUD*/ + RTUNI_ALPHA, /* U+012257: CUNEIFORM SIGN NINDA2 TIMES ME PLUS GAN2 TENU*/ + RTUNI_ALPHA, /* U+012258: CUNEIFORM SIGN NINDA2 TIMES NE*/ + RTUNI_ALPHA, /* U+012259: CUNEIFORM SIGN NINDA2 TIMES NUN*/ + RTUNI_ALPHA, /* U+01225a: CUNEIFORM SIGN NINDA2 TIMES SHE*/ + RTUNI_ALPHA, /* U+01225b: CUNEIFORM SIGN NINDA2 TIMES SHE PLUS A AN*/ + RTUNI_ALPHA, /* U+01225c: CUNEIFORM SIGN NINDA2 TIMES SHE PLUS ASH*/ + RTUNI_ALPHA, /* U+01225d: CUNEIFORM SIGN NINDA2 TIMES SHE PLUS ASH PLUS ASH*/ + RTUNI_ALPHA, /* U+01225e: CUNEIFORM SIGN NINDA2 TIMES U2 PLUS ASH*/ + RTUNI_ALPHA, /* U+01225f: CUNEIFORM SIGN NINDA2 TIMES USH*/ + RTUNI_ALPHA, /* U+012260: CUNEIFORM SIGN NISAG*/ + RTUNI_ALPHA, /* U+012261: CUNEIFORM SIGN NU*/ + RTUNI_ALPHA, /* U+012262: CUNEIFORM SIGN NU11*/ + RTUNI_ALPHA, /* U+012263: CUNEIFORM SIGN NUN*/ + RTUNI_ALPHA, /* U+012264: CUNEIFORM SIGN NUN LAGAR TIMES GAR*/ + RTUNI_ALPHA, /* U+012265: CUNEIFORM SIGN NUN LAGAR TIMES MASH*/ + RTUNI_ALPHA, /* U+012266: CUNEIFORM SIGN NUN LAGAR TIMES SAL*/ + RTUNI_ALPHA, /* U+012267: CUNEIFORM SIGN NUN LAGAR TIMES SAL OVER NUN LAGAR TIMES SAL*/ + RTUNI_ALPHA, /* U+012268: CUNEIFORM SIGN NUN LAGAR TIMES USH*/ + RTUNI_ALPHA, /* U+012269: CUNEIFORM SIGN NUN TENU*/ + RTUNI_ALPHA, /* U+01226a: CUNEIFORM SIGN NUN OVER NUN*/ + RTUNI_ALPHA, /* U+01226b: CUNEIFORM SIGN NUN CROSSING NUN*/ + RTUNI_ALPHA, /* U+01226c: CUNEIFORM SIGN NUN CROSSING NUN LAGAR OVER LAGAR*/ + RTUNI_ALPHA, /* U+01226d: CUNEIFORM SIGN NUNUZ*/ + RTUNI_ALPHA, /* U+01226e: CUNEIFORM SIGN NUNUZ AB2 TIMES ASHGAB*/ + RTUNI_ALPHA, /* U+01226f: CUNEIFORM SIGN NUNUZ AB2 TIMES BI*/ + RTUNI_ALPHA, /* U+012270: CUNEIFORM SIGN NUNUZ AB2 TIMES DUG*/ + RTUNI_ALPHA, /* U+012271: CUNEIFORM SIGN NUNUZ AB2 TIMES GUD*/ + RTUNI_ALPHA, /* U+012272: CUNEIFORM SIGN NUNUZ AB2 TIMES IGI GUNU*/ + RTUNI_ALPHA, /* U+012273: CUNEIFORM SIGN NUNUZ AB2 TIMES KAD3*/ + RTUNI_ALPHA, /* U+012274: CUNEIFORM SIGN NUNUZ AB2 TIMES LA*/ + RTUNI_ALPHA, /* U+012275: CUNEIFORM SIGN NUNUZ AB2 TIMES NE*/ + RTUNI_ALPHA, /* U+012276: CUNEIFORM SIGN NUNUZ AB2 TIMES SILA3*/ + RTUNI_ALPHA, /* U+012277: CUNEIFORM SIGN NUNUZ AB2 TIMES U2*/ + RTUNI_ALPHA, /* U+012278: CUNEIFORM SIGN NUNUZ KISIM5 TIMES BI*/ + RTUNI_ALPHA, /* U+012279: CUNEIFORM SIGN NUNUZ KISIM5 TIMES BI U*/ + RTUNI_ALPHA, /* U+01227a: CUNEIFORM SIGN PA*/ + RTUNI_ALPHA, /* U+01227b: CUNEIFORM SIGN PAD*/ + RTUNI_ALPHA, /* U+01227c: CUNEIFORM SIGN PAN*/ + RTUNI_ALPHA, /* U+01227d: CUNEIFORM SIGN PAP*/ + RTUNI_ALPHA, /* U+01227e: CUNEIFORM SIGN PESH2*/ + RTUNI_ALPHA, /* U+01227f: CUNEIFORM SIGN PI*/ + RTUNI_ALPHA, /* U+012280: CUNEIFORM SIGN PI TIMES A*/ + RTUNI_ALPHA, /* U+012281: CUNEIFORM SIGN PI TIMES AB*/ + RTUNI_ALPHA, /* U+012282: CUNEIFORM SIGN PI TIMES BI*/ + RTUNI_ALPHA, /* U+012283: CUNEIFORM SIGN PI TIMES BU*/ + RTUNI_ALPHA, /* U+012284: CUNEIFORM SIGN PI TIMES E*/ + RTUNI_ALPHA, /* U+012285: CUNEIFORM SIGN PI TIMES I*/ + RTUNI_ALPHA, /* U+012286: CUNEIFORM SIGN PI TIMES IB*/ + RTUNI_ALPHA, /* U+012287: CUNEIFORM SIGN PI TIMES U*/ + RTUNI_ALPHA, /* U+012288: CUNEIFORM SIGN PI TIMES U2*/ + RTUNI_ALPHA, /* U+012289: CUNEIFORM SIGN PI CROSSING PI*/ + RTUNI_ALPHA, /* U+01228a: CUNEIFORM SIGN PIRIG*/ + RTUNI_ALPHA, /* U+01228b: CUNEIFORM SIGN PIRIG TIMES KAL*/ + RTUNI_ALPHA, /* U+01228c: CUNEIFORM SIGN PIRIG TIMES UD*/ + RTUNI_ALPHA, /* U+01228d: CUNEIFORM SIGN PIRIG TIMES ZA*/ + RTUNI_ALPHA, /* U+01228e: CUNEIFORM SIGN PIRIG OPPOSING PIRIG*/ + RTUNI_ALPHA, /* U+01228f: CUNEIFORM SIGN RA*/ + RTUNI_ALPHA, /* U+012290: CUNEIFORM SIGN RAB*/ + RTUNI_ALPHA, /* U+012291: CUNEIFORM SIGN RI*/ + RTUNI_ALPHA, /* U+012292: CUNEIFORM SIGN RU*/ + RTUNI_ALPHA, /* U+012293: CUNEIFORM SIGN SA*/ + RTUNI_ALPHA, /* U+012294: CUNEIFORM SIGN SAG NUTILLU*/ + RTUNI_ALPHA, /* U+012295: CUNEIFORM SIGN SAG*/ + RTUNI_ALPHA, /* U+012296: CUNEIFORM SIGN SAG TIMES A*/ + RTUNI_ALPHA, /* U+012297: CUNEIFORM SIGN SAG TIMES DU*/ + RTUNI_ALPHA, /* U+012298: CUNEIFORM SIGN SAG TIMES DUB*/ + RTUNI_ALPHA, /* U+012299: CUNEIFORM SIGN SAG TIMES HA*/ + RTUNI_ALPHA, /* U+01229a: CUNEIFORM SIGN SAG TIMES KAK*/ + RTUNI_ALPHA, /* U+01229b: CUNEIFORM SIGN SAG TIMES KUR*/ + RTUNI_ALPHA, /* U+01229c: CUNEIFORM SIGN SAG TIMES LUM*/ + RTUNI_ALPHA, /* U+01229d: CUNEIFORM SIGN SAG TIMES MI*/ + RTUNI_ALPHA, /* U+01229e: CUNEIFORM SIGN SAG TIMES NUN*/ + RTUNI_ALPHA, /* U+01229f: CUNEIFORM SIGN SAG TIMES SAL*/ + RTUNI_ALPHA, /* U+0122a0: CUNEIFORM SIGN SAG TIMES SHID*/ + RTUNI_ALPHA, /* U+0122a1: CUNEIFORM SIGN SAG TIMES TAB*/ + RTUNI_ALPHA, /* U+0122a2: CUNEIFORM SIGN SAG TIMES U2*/ + RTUNI_ALPHA, /* U+0122a3: CUNEIFORM SIGN SAG TIMES UB*/ + RTUNI_ALPHA, /* U+0122a4: CUNEIFORM SIGN SAG TIMES UM*/ + RTUNI_ALPHA, /* U+0122a5: CUNEIFORM SIGN SAG TIMES UR*/ + RTUNI_ALPHA, /* U+0122a6: CUNEIFORM SIGN SAG TIMES USH*/ + RTUNI_ALPHA, /* U+0122a7: CUNEIFORM SIGN SAG OVER SAG*/ + RTUNI_ALPHA, /* U+0122a8: CUNEIFORM SIGN SAG GUNU*/ + RTUNI_ALPHA, /* U+0122a9: CUNEIFORM SIGN SAL*/ + RTUNI_ALPHA, /* U+0122aa: CUNEIFORM SIGN SAL LAGAB TIMES ASH2*/ + RTUNI_ALPHA, /* U+0122ab: CUNEIFORM SIGN SANGA2*/ + RTUNI_ALPHA, /* U+0122ac: CUNEIFORM SIGN SAR*/ + RTUNI_ALPHA, /* U+0122ad: CUNEIFORM SIGN SHA*/ + RTUNI_ALPHA, /* U+0122ae: CUNEIFORM SIGN SHA3*/ + RTUNI_ALPHA, /* U+0122af: CUNEIFORM SIGN SHA3 TIMES A*/ + RTUNI_ALPHA, /* U+0122b0: CUNEIFORM SIGN SHA3 TIMES BAD*/ + RTUNI_ALPHA, /* U+0122b1: CUNEIFORM SIGN SHA3 TIMES GISH*/ + RTUNI_ALPHA, /* U+0122b2: CUNEIFORM SIGN SHA3 TIMES NE*/ + RTUNI_ALPHA, /* U+0122b3: CUNEIFORM SIGN SHA3 TIMES SHU2*/ + RTUNI_ALPHA, /* U+0122b4: CUNEIFORM SIGN SHA3 TIMES TUR*/ + RTUNI_ALPHA, /* U+0122b5: CUNEIFORM SIGN SHA3 TIMES U*/ + RTUNI_ALPHA, /* U+0122b6: CUNEIFORM SIGN SHA3 TIMES U PLUS A*/ + RTUNI_ALPHA, /* U+0122b7: CUNEIFORM SIGN SHA6*/ + RTUNI_ALPHA, /* U+0122b8: CUNEIFORM SIGN SHAB6*/ + RTUNI_ALPHA, /* U+0122b9: CUNEIFORM SIGN SHAR2*/ + RTUNI_ALPHA, /* U+0122ba: CUNEIFORM SIGN SHE*/ + RTUNI_ALPHA, /* U+0122bb: CUNEIFORM SIGN SHE HU*/ + RTUNI_ALPHA, /* U+0122bc: CUNEIFORM SIGN SHE OVER SHE GAD OVER GAD GAR OVER GAR*/ + RTUNI_ALPHA, /* U+0122bd: CUNEIFORM SIGN SHE OVER SHE TAB OVER TAB GAR OVER GAR*/ + RTUNI_ALPHA, /* U+0122be: CUNEIFORM SIGN SHEG9*/ + RTUNI_ALPHA, /* U+0122bf: CUNEIFORM SIGN SHEN*/ + RTUNI_ALPHA, /* U+0122c0: CUNEIFORM SIGN SHESH*/ + RTUNI_ALPHA, /* U+0122c1: CUNEIFORM SIGN SHESH2*/ + RTUNI_ALPHA, /* U+0122c2: CUNEIFORM SIGN SHESHLAM*/ + RTUNI_ALPHA, /* U+0122c3: CUNEIFORM SIGN SHID*/ + RTUNI_ALPHA, /* U+0122c4: CUNEIFORM SIGN SHID TIMES A*/ + RTUNI_ALPHA, /* U+0122c5: CUNEIFORM SIGN SHID TIMES IM*/ + RTUNI_ALPHA, /* U+0122c6: CUNEIFORM SIGN SHIM*/ + RTUNI_ALPHA, /* U+0122c7: CUNEIFORM SIGN SHIM TIMES A*/ + RTUNI_ALPHA, /* U+0122c8: CUNEIFORM SIGN SHIM TIMES BAL*/ + RTUNI_ALPHA, /* U+0122c9: CUNEIFORM SIGN SHIM TIMES BULUG*/ + RTUNI_ALPHA, /* U+0122ca: CUNEIFORM SIGN SHIM TIMES DIN*/ + RTUNI_ALPHA, /* U+0122cb: CUNEIFORM SIGN SHIM TIMES GAR*/ + RTUNI_ALPHA, /* U+0122cc: CUNEIFORM SIGN SHIM TIMES IGI*/ + RTUNI_ALPHA, /* U+0122cd: CUNEIFORM SIGN SHIM TIMES IGI GUNU*/ + RTUNI_ALPHA, /* U+0122ce: CUNEIFORM SIGN SHIM TIMES KUSHU2*/ + RTUNI_ALPHA, /* U+0122cf: CUNEIFORM SIGN SHIM TIMES LUL*/ + RTUNI_ALPHA, /* U+0122d0: CUNEIFORM SIGN SHIM TIMES MUG*/ + RTUNI_ALPHA, /* U+0122d1: CUNEIFORM SIGN SHIM TIMES SAL*/ + RTUNI_ALPHA, /* U+0122d2: CUNEIFORM SIGN SHINIG*/ + RTUNI_ALPHA, /* U+0122d3: CUNEIFORM SIGN SHIR*/ + RTUNI_ALPHA, /* U+0122d4: CUNEIFORM SIGN SHIR TENU*/ + RTUNI_ALPHA, /* U+0122d5: CUNEIFORM SIGN SHIR OVER SHIR BUR OVER BUR*/ + RTUNI_ALPHA, /* U+0122d6: CUNEIFORM SIGN SHITA*/ + RTUNI_ALPHA, /* U+0122d7: CUNEIFORM SIGN SHU*/ + RTUNI_ALPHA, /* U+0122d8: CUNEIFORM SIGN SHU OVER INVERTED SHU*/ + RTUNI_ALPHA, /* U+0122d9: CUNEIFORM SIGN SHU2*/ + RTUNI_ALPHA, /* U+0122da: CUNEIFORM SIGN SHUBUR*/ + RTUNI_ALPHA, /* U+0122db: CUNEIFORM SIGN SI*/ + RTUNI_ALPHA, /* U+0122dc: CUNEIFORM SIGN SI GUNU*/ + RTUNI_ALPHA, /* U+0122dd: CUNEIFORM SIGN SIG*/ + RTUNI_ALPHA, /* U+0122de: CUNEIFORM SIGN SIG4*/ + RTUNI_ALPHA, /* U+0122df: CUNEIFORM SIGN SIG4 OVER SIG4 SHU2*/ + RTUNI_ALPHA, /* U+0122e0: CUNEIFORM SIGN SIK2*/ + RTUNI_ALPHA, /* U+0122e1: CUNEIFORM SIGN SILA3*/ + RTUNI_ALPHA, /* U+0122e2: CUNEIFORM SIGN SU*/ + RTUNI_ALPHA, /* U+0122e3: CUNEIFORM SIGN SU OVER SU*/ + RTUNI_ALPHA, /* U+0122e4: CUNEIFORM SIGN SUD*/ + RTUNI_ALPHA, /* U+0122e5: CUNEIFORM SIGN SUD2*/ + RTUNI_ALPHA, /* U+0122e6: CUNEIFORM SIGN SUHUR*/ + RTUNI_ALPHA, /* U+0122e7: CUNEIFORM SIGN SUM*/ + RTUNI_ALPHA, /* U+0122e8: CUNEIFORM SIGN SUMASH*/ + RTUNI_ALPHA, /* U+0122e9: CUNEIFORM SIGN SUR*/ + RTUNI_ALPHA, /* U+0122ea: CUNEIFORM SIGN SUR9*/ + RTUNI_ALPHA, /* U+0122eb: CUNEIFORM SIGN TA*/ + RTUNI_ALPHA, /* U+0122ec: CUNEIFORM SIGN TA ASTERISK*/ + RTUNI_ALPHA, /* U+0122ed: CUNEIFORM SIGN TA TIMES HI*/ + RTUNI_ALPHA, /* U+0122ee: CUNEIFORM SIGN TA TIMES MI*/ + RTUNI_ALPHA, /* U+0122ef: CUNEIFORM SIGN TA GUNU*/ + RTUNI_ALPHA, /* U+0122f0: CUNEIFORM SIGN TAB*/ + RTUNI_ALPHA, /* U+0122f1: CUNEIFORM SIGN TAB OVER TAB NI OVER NI DISH OVER DISH*/ + RTUNI_ALPHA, /* U+0122f2: CUNEIFORM SIGN TAB SQUARED*/ + RTUNI_ALPHA, /* U+0122f3: CUNEIFORM SIGN TAG*/ + RTUNI_ALPHA, /* U+0122f4: CUNEIFORM SIGN TAG TIMES BI*/ + RTUNI_ALPHA, /* U+0122f5: CUNEIFORM SIGN TAG TIMES GUD*/ + RTUNI_ALPHA, /* U+0122f6: CUNEIFORM SIGN TAG TIMES SHE*/ + RTUNI_ALPHA, /* U+0122f7: CUNEIFORM SIGN TAG TIMES SHU*/ + RTUNI_ALPHA, /* U+0122f8: CUNEIFORM SIGN TAG TIMES TUG2*/ + RTUNI_ALPHA, /* U+0122f9: CUNEIFORM SIGN TAG TIMES UD*/ + RTUNI_ALPHA, /* U+0122fa: CUNEIFORM SIGN TAK4*/ + RTUNI_ALPHA, /* U+0122fb: CUNEIFORM SIGN TAR*/ + RTUNI_ALPHA, /* U+0122fc: CUNEIFORM SIGN TE*/ + RTUNI_ALPHA, /* U+0122fd: CUNEIFORM SIGN TE GUNU*/ + RTUNI_ALPHA, /* U+0122fe: CUNEIFORM SIGN TI*/ + RTUNI_ALPHA, /* U+0122ff: CUNEIFORM SIGN TI TENU*/ + RTUNI_ALPHA, /* U+012300: CUNEIFORM SIGN TIL*/ + RTUNI_ALPHA, /* U+012301: CUNEIFORM SIGN TIR*/ + RTUNI_ALPHA, /* U+012302: CUNEIFORM SIGN TIR TIMES TAK4*/ + RTUNI_ALPHA, /* U+012303: CUNEIFORM SIGN TIR OVER TIR*/ + RTUNI_ALPHA, /* U+012304: CUNEIFORM SIGN TIR OVER TIR GAD OVER GAD GAR OVER GAR*/ + RTUNI_ALPHA, /* U+012305: CUNEIFORM SIGN TU*/ + RTUNI_ALPHA, /* U+012306: CUNEIFORM SIGN TUG2*/ + RTUNI_ALPHA, /* U+012307: CUNEIFORM SIGN TUK*/ + RTUNI_ALPHA, /* U+012308: CUNEIFORM SIGN TUM*/ + RTUNI_ALPHA, /* U+012309: CUNEIFORM SIGN TUR*/ + RTUNI_ALPHA, /* U+01230a: CUNEIFORM SIGN TUR OVER TUR ZA OVER ZA*/ + RTUNI_ALPHA, /* U+01230b: CUNEIFORM SIGN U*/ + RTUNI_ALPHA, /* U+01230c: CUNEIFORM SIGN U GUD*/ + RTUNI_ALPHA, /* U+01230d: CUNEIFORM SIGN U U U*/ + RTUNI_ALPHA, /* U+01230e: CUNEIFORM SIGN U OVER U PA OVER PA GAR OVER GAR*/ + RTUNI_ALPHA, /* U+01230f: CUNEIFORM SIGN U OVER U SUR OVER SUR*/ + RTUNI_ALPHA, /* U+012310: CUNEIFORM SIGN U OVER U U REVERSED OVER U REVERSED*/ + RTUNI_ALPHA, /* U+012311: CUNEIFORM SIGN U2*/ + RTUNI_ALPHA, /* U+012312: CUNEIFORM SIGN UB*/ + RTUNI_ALPHA, /* U+012313: CUNEIFORM SIGN UD*/ + RTUNI_ALPHA, /* U+012314: CUNEIFORM SIGN UD KUSHU2*/ + RTUNI_ALPHA, /* U+012315: CUNEIFORM SIGN UD TIMES BAD*/ + RTUNI_ALPHA, /* U+012316: CUNEIFORM SIGN UD TIMES MI*/ + RTUNI_ALPHA, /* U+012317: CUNEIFORM SIGN UD TIMES U PLUS U PLUS U*/ + RTUNI_ALPHA, /* U+012318: CUNEIFORM SIGN UD TIMES U PLUS U PLUS U GUNU*/ + RTUNI_ALPHA, /* U+012319: CUNEIFORM SIGN UD GUNU*/ + RTUNI_ALPHA, /* U+01231a: CUNEIFORM SIGN UD SHESHIG*/ + RTUNI_ALPHA, /* U+01231b: CUNEIFORM SIGN UD SHESHIG TIMES BAD*/ + RTUNI_ALPHA, /* U+01231c: CUNEIFORM SIGN UDUG*/ + RTUNI_ALPHA, /* U+01231d: CUNEIFORM SIGN UM*/ + RTUNI_ALPHA, /* U+01231e: CUNEIFORM SIGN UM TIMES LAGAB*/ + RTUNI_ALPHA, /* U+01231f: CUNEIFORM SIGN UM TIMES ME PLUS DA*/ + RTUNI_ALPHA, /* U+012320: CUNEIFORM SIGN UM TIMES SHA3*/ + RTUNI_ALPHA, /* U+012321: CUNEIFORM SIGN UM TIMES U*/ + RTUNI_ALPHA, /* U+012322: CUNEIFORM SIGN UMBIN*/ + RTUNI_ALPHA, /* U+012323: CUNEIFORM SIGN UMUM*/ + RTUNI_ALPHA, /* U+012324: CUNEIFORM SIGN UMUM TIMES KASKAL*/ + RTUNI_ALPHA, /* U+012325: CUNEIFORM SIGN UMUM TIMES PA*/ + RTUNI_ALPHA, /* U+012326: CUNEIFORM SIGN UN*/ + RTUNI_ALPHA, /* U+012327: CUNEIFORM SIGN UN GUNU*/ + RTUNI_ALPHA, /* U+012328: CUNEIFORM SIGN UR*/ + RTUNI_ALPHA, /* U+012329: CUNEIFORM SIGN UR CROSSING UR*/ + RTUNI_ALPHA, /* U+01232a: CUNEIFORM SIGN UR SHESHIG*/ + RTUNI_ALPHA, /* U+01232b: CUNEIFORM SIGN UR2*/ + RTUNI_ALPHA, /* U+01232c: CUNEIFORM SIGN UR2 TIMES A PLUS HA*/ + RTUNI_ALPHA, /* U+01232d: CUNEIFORM SIGN UR2 TIMES A PLUS NA*/ + RTUNI_ALPHA, /* U+01232e: CUNEIFORM SIGN UR2 TIMES AL*/ + RTUNI_ALPHA, /* U+01232f: CUNEIFORM SIGN UR2 TIMES HA*/ + RTUNI_ALPHA, /* U+012330: CUNEIFORM SIGN UR2 TIMES NUN*/ + RTUNI_ALPHA, /* U+012331: CUNEIFORM SIGN UR2 TIMES U2*/ + RTUNI_ALPHA, /* U+012332: CUNEIFORM SIGN UR2 TIMES U2 PLUS ASH*/ + RTUNI_ALPHA, /* U+012333: CUNEIFORM SIGN UR2 TIMES U2 PLUS BI*/ + RTUNI_ALPHA, /* U+012334: CUNEIFORM SIGN UR4*/ + RTUNI_ALPHA, /* U+012335: CUNEIFORM SIGN URI*/ + RTUNI_ALPHA, /* U+012336: CUNEIFORM SIGN URI3*/ + RTUNI_ALPHA, /* U+012337: CUNEIFORM SIGN URU*/ + RTUNI_ALPHA, /* U+012338: CUNEIFORM SIGN URU TIMES A*/ + RTUNI_ALPHA, /* U+012339: CUNEIFORM SIGN URU TIMES ASHGAB*/ + RTUNI_ALPHA, /* U+01233a: CUNEIFORM SIGN URU TIMES BAR*/ + RTUNI_ALPHA, /* U+01233b: CUNEIFORM SIGN URU TIMES DUN*/ + RTUNI_ALPHA, /* U+01233c: CUNEIFORM SIGN URU TIMES GA*/ + RTUNI_ALPHA, /* U+01233d: CUNEIFORM SIGN URU TIMES GAL*/ + RTUNI_ALPHA, /* U+01233e: CUNEIFORM SIGN URU TIMES GAN2 TENU*/ + RTUNI_ALPHA, /* U+01233f: CUNEIFORM SIGN URU TIMES GAR*/ + RTUNI_ALPHA, /* U+012340: CUNEIFORM SIGN URU TIMES GU*/ + RTUNI_ALPHA, /* U+012341: CUNEIFORM SIGN URU TIMES HA*/ + RTUNI_ALPHA, /* U+012342: CUNEIFORM SIGN URU TIMES IGI*/ + RTUNI_ALPHA, /* U+012343: CUNEIFORM SIGN URU TIMES IM*/ + RTUNI_ALPHA, /* U+012344: CUNEIFORM SIGN URU TIMES ISH*/ + RTUNI_ALPHA, /* U+012345: CUNEIFORM SIGN URU TIMES KI*/ + RTUNI_ALPHA, /* U+012346: CUNEIFORM SIGN URU TIMES LUM*/ + RTUNI_ALPHA, /* U+012347: CUNEIFORM SIGN URU TIMES MIN*/ + RTUNI_ALPHA, /* U+012348: CUNEIFORM SIGN URU TIMES PA*/ + RTUNI_ALPHA, /* U+012349: CUNEIFORM SIGN URU TIMES SHE*/ + RTUNI_ALPHA, /* U+01234a: CUNEIFORM SIGN URU TIMES SIG4*/ + RTUNI_ALPHA, /* U+01234b: CUNEIFORM SIGN URU TIMES TU*/ + RTUNI_ALPHA, /* U+01234c: CUNEIFORM SIGN URU TIMES U PLUS GUD*/ + RTUNI_ALPHA, /* U+01234d: CUNEIFORM SIGN URU TIMES UD*/ + RTUNI_ALPHA, /* U+01234e: CUNEIFORM SIGN URU TIMES URUDA*/ + RTUNI_ALPHA, /* U+01234f: CUNEIFORM SIGN URUDA*/ + RTUNI_ALPHA, /* U+012350: CUNEIFORM SIGN URUDA TIMES U*/ + RTUNI_ALPHA, /* U+012351: CUNEIFORM SIGN USH*/ + RTUNI_ALPHA, /* U+012352: CUNEIFORM SIGN USH TIMES A*/ + RTUNI_ALPHA, /* U+012353: CUNEIFORM SIGN USH TIMES KU*/ + RTUNI_ALPHA, /* U+012354: CUNEIFORM SIGN USH TIMES KUR*/ + RTUNI_ALPHA, /* U+012355: CUNEIFORM SIGN USH TIMES TAK4*/ + RTUNI_ALPHA, /* U+012356: CUNEIFORM SIGN USHX*/ + RTUNI_ALPHA, /* U+012357: CUNEIFORM SIGN USH2*/ + RTUNI_ALPHA, /* U+012358: CUNEIFORM SIGN USHUMX*/ + RTUNI_ALPHA, /* U+012359: CUNEIFORM SIGN UTUKI*/ + RTUNI_ALPHA, /* U+01235a: CUNEIFORM SIGN UZ3*/ + RTUNI_ALPHA, /* U+01235b: CUNEIFORM SIGN UZ3 TIMES KASKAL*/ + RTUNI_ALPHA, /* U+01235c: CUNEIFORM SIGN UZU*/ + RTUNI_ALPHA, /* U+01235d: CUNEIFORM SIGN ZA*/ + RTUNI_ALPHA, /* U+01235e: CUNEIFORM SIGN ZA TENU*/ + RTUNI_ALPHA, /* U+01235f: CUNEIFORM SIGN ZA SQUARED TIMES KUR*/ + RTUNI_ALPHA, /* U+012360: CUNEIFORM SIGN ZAG*/ + RTUNI_ALPHA, /* U+012361: CUNEIFORM SIGN ZAMX*/ + RTUNI_ALPHA, /* U+012362: CUNEIFORM SIGN ZE2*/ + RTUNI_ALPHA, /* U+012363: CUNEIFORM SIGN ZI*/ + RTUNI_ALPHA, /* U+012364: CUNEIFORM SIGN ZI OVER ZI*/ + RTUNI_ALPHA, /* U+012365: CUNEIFORM SIGN ZI3*/ + RTUNI_ALPHA, /* U+012366: CUNEIFORM SIGN ZIB*/ + RTUNI_ALPHA, /* U+012367: CUNEIFORM SIGN ZIB KABA TENU*/ + RTUNI_ALPHA, /* U+012368: CUNEIFORM SIGN ZIG*/ + RTUNI_ALPHA, /* U+012369: CUNEIFORM SIGN ZIZ2*/ + RTUNI_ALPHA, /* U+01236a: CUNEIFORM SIGN ZU*/ + RTUNI_ALPHA, /* U+01236b: CUNEIFORM SIGN ZU5*/ + RTUNI_ALPHA, /* U+01236c: CUNEIFORM SIGN ZU5 TIMES A*/ + RTUNI_ALPHA, /* U+01236d: CUNEIFORM SIGN ZUBUR*/ + RTUNI_ALPHA, /* U+01236e: CUNEIFORM SIGN ZUM*/ + 0, /* U+01236f: */ + 0, /* U+012370: */ + 0, /* U+012371: */ + 0, /* U+012372: */ + 0, /* U+012373: */ + 0, /* U+012374: */ + 0, /* U+012375: */ + 0, /* U+012376: */ + 0, /* U+012377: */ + 0, /* U+012378: */ + 0, /* U+012379: */ + 0, /* U+01237a: */ + 0, /* U+01237b: */ + 0, /* U+01237c: */ + 0, /* U+01237d: */ + 0, /* U+01237e: */ + 0, /* U+01237f: */ + 0, /* U+012380: */ + 0, /* U+012381: */ + 0, /* U+012382: */ + 0, /* U+012383: */ + 0, /* U+012384: */ + 0, /* U+012385: */ + 0, /* U+012386: */ + 0, /* U+012387: */ + 0, /* U+012388: */ + 0, /* U+012389: */ + 0, /* U+01238a: */ + 0, /* U+01238b: */ + 0, /* U+01238c: */ + 0, /* U+01238d: */ + 0, /* U+01238e: */ + 0, /* U+01238f: */ + 0, /* U+012390: */ + 0, /* U+012391: */ + 0, /* U+012392: */ + 0, /* U+012393: */ + 0, /* U+012394: */ + 0, /* U+012395: */ + 0, /* U+012396: */ + 0, /* U+012397: */ + 0, /* U+012398: */ + 0, /* U+012399: */ + 0, /* U+01239a: */ + 0, /* U+01239b: */ + 0, /* U+01239c: */ + 0, /* U+01239d: */ + 0, /* U+01239e: */ + 0, /* U+01239f: */ + 0, /* U+0123a0: */ + 0, /* U+0123a1: */ + 0, /* U+0123a2: */ + 0, /* U+0123a3: */ + 0, /* U+0123a4: */ + 0, /* U+0123a5: */ + 0, /* U+0123a6: */ + 0, /* U+0123a7: */ + 0, /* U+0123a8: */ + 0, /* U+0123a9: */ + 0, /* U+0123aa: */ + 0, /* U+0123ab: */ + 0, /* U+0123ac: */ + 0, /* U+0123ad: */ + 0, /* U+0123ae: */ + 0, /* U+0123af: */ + 0, /* U+0123b0: */ + 0, /* U+0123b1: */ + 0, /* U+0123b2: */ + 0, /* U+0123b3: */ + 0, /* U+0123b4: */ + 0, /* U+0123b5: */ + 0, /* U+0123b6: */ + 0, /* U+0123b7: */ + 0, /* U+0123b8: */ + 0, /* U+0123b9: */ + 0, /* U+0123ba: */ + 0, /* U+0123bb: */ + 0, /* U+0123bc: */ + 0, /* U+0123bd: */ + 0, /* U+0123be: */ + 0, /* U+0123bf: */ + 0, /* U+0123c0: */ + 0, /* U+0123c1: */ + 0, /* U+0123c2: */ + 0, /* U+0123c3: */ + 0, /* U+0123c4: */ + 0, /* U+0123c5: */ + 0, /* U+0123c6: */ + 0, /* U+0123c7: */ + 0, /* U+0123c8: */ + 0, /* U+0123c9: */ + 0, /* U+0123ca: */ + 0, /* U+0123cb: */ + 0, /* U+0123cc: */ + 0, /* U+0123cd: */ + 0, /* U+0123ce: */ + 0, /* U+0123cf: */ + 0, /* U+0123d0: */ + 0, /* U+0123d1: */ + 0, /* U+0123d2: */ + 0, /* U+0123d3: */ + 0, /* U+0123d4: */ + 0, /* U+0123d5: */ + 0, /* U+0123d6: */ + 0, /* U+0123d7: */ + 0, /* U+0123d8: */ + 0, /* U+0123d9: */ + 0, /* U+0123da: */ + 0, /* U+0123db: */ + 0, /* U+0123dc: */ + 0, /* U+0123dd: */ + 0, /* U+0123de: */ + 0, /* U+0123df: */ + 0, /* U+0123e0: */ + 0, /* U+0123e1: */ + 0, /* U+0123e2: */ + 0, /* U+0123e3: */ + 0, /* U+0123e4: */ + 0, /* U+0123e5: */ + 0, /* U+0123e6: */ + 0, /* U+0123e7: */ + 0, /* U+0123e8: */ + 0, /* U+0123e9: */ + 0, /* U+0123ea: */ + 0, /* U+0123eb: */ + 0, /* U+0123ec: */ + 0, /* U+0123ed: */ + 0, /* U+0123ee: */ + 0, /* U+0123ef: */ + 0, /* U+0123f0: */ + 0, /* U+0123f1: */ + 0, /* U+0123f2: */ + 0, /* U+0123f3: */ + 0, /* U+0123f4: */ + 0, /* U+0123f5: */ + 0, /* U+0123f6: */ + 0, /* U+0123f7: */ + 0, /* U+0123f8: */ + 0, /* U+0123f9: */ + 0, /* U+0123fa: */ + 0, /* U+0123fb: */ + 0, /* U+0123fc: */ + 0, /* U+0123fd: */ + 0, /* U+0123fe: */ + 0, /* U+0123ff: */ + RTUNI_ALPHA, /* U+012400: CUNEIFORM NUMERIC SIGN TWO ASH*/ + RTUNI_ALPHA, /* U+012401: CUNEIFORM NUMERIC SIGN THREE ASH*/ + RTUNI_ALPHA, /* U+012402: CUNEIFORM NUMERIC SIGN FOUR ASH*/ + RTUNI_ALPHA, /* U+012403: CUNEIFORM NUMERIC SIGN FIVE ASH*/ + RTUNI_ALPHA, /* U+012404: CUNEIFORM NUMERIC SIGN SIX ASH*/ + RTUNI_ALPHA, /* U+012405: CUNEIFORM NUMERIC SIGN SEVEN ASH*/ + RTUNI_ALPHA, /* U+012406: CUNEIFORM NUMERIC SIGN EIGHT ASH*/ + RTUNI_ALPHA, /* U+012407: CUNEIFORM NUMERIC SIGN NINE ASH*/ + RTUNI_ALPHA, /* U+012408: CUNEIFORM NUMERIC SIGN THREE DISH*/ + RTUNI_ALPHA, /* U+012409: CUNEIFORM NUMERIC SIGN FOUR DISH*/ + RTUNI_ALPHA, /* U+01240a: CUNEIFORM NUMERIC SIGN FIVE DISH*/ + RTUNI_ALPHA, /* U+01240b: CUNEIFORM NUMERIC SIGN SIX DISH*/ + RTUNI_ALPHA, /* U+01240c: CUNEIFORM NUMERIC SIGN SEVEN DISH*/ + RTUNI_ALPHA, /* U+01240d: CUNEIFORM NUMERIC SIGN EIGHT DISH*/ + RTUNI_ALPHA, /* U+01240e: CUNEIFORM NUMERIC SIGN NINE DISH*/ + RTUNI_ALPHA, /* U+01240f: CUNEIFORM NUMERIC SIGN FOUR U*/ + RTUNI_ALPHA, /* U+012410: CUNEIFORM NUMERIC SIGN FIVE U*/ + RTUNI_ALPHA, /* U+012411: CUNEIFORM NUMERIC SIGN SIX U*/ + RTUNI_ALPHA, /* U+012412: CUNEIFORM NUMERIC SIGN SEVEN U*/ + RTUNI_ALPHA, /* U+012413: CUNEIFORM NUMERIC SIGN EIGHT U*/ + RTUNI_ALPHA, /* U+012414: CUNEIFORM NUMERIC SIGN NINE U*/ + RTUNI_ALPHA, /* U+012415: CUNEIFORM NUMERIC SIGN ONE GESH2*/ + RTUNI_ALPHA, /* U+012416: CUNEIFORM NUMERIC SIGN TWO GESH2*/ + RTUNI_ALPHA, /* U+012417: CUNEIFORM NUMERIC SIGN THREE GESH2*/ + RTUNI_ALPHA, /* U+012418: CUNEIFORM NUMERIC SIGN FOUR GESH2*/ + RTUNI_ALPHA, /* U+012419: CUNEIFORM NUMERIC SIGN FIVE GESH2*/ + RTUNI_ALPHA, /* U+01241a: CUNEIFORM NUMERIC SIGN SIX GESH2*/ + RTUNI_ALPHA, /* U+01241b: CUNEIFORM NUMERIC SIGN SEVEN GESH2*/ + RTUNI_ALPHA, /* U+01241c: CUNEIFORM NUMERIC SIGN EIGHT GESH2*/ + RTUNI_ALPHA, /* U+01241d: CUNEIFORM NUMERIC SIGN NINE GESH2*/ + RTUNI_ALPHA, /* U+01241e: CUNEIFORM NUMERIC SIGN ONE GESHU*/ + RTUNI_ALPHA, /* U+01241f: CUNEIFORM NUMERIC SIGN TWO GESHU*/ + RTUNI_ALPHA, /* U+012420: CUNEIFORM NUMERIC SIGN THREE GESHU*/ + RTUNI_ALPHA, /* U+012421: CUNEIFORM NUMERIC SIGN FOUR GESHU*/ + RTUNI_ALPHA, /* U+012422: CUNEIFORM NUMERIC SIGN FIVE GESHU*/ + RTUNI_ALPHA, /* U+012423: CUNEIFORM NUMERIC SIGN TWO SHAR2*/ + RTUNI_ALPHA, /* U+012424: CUNEIFORM NUMERIC SIGN THREE SHAR2*/ + RTUNI_ALPHA, /* U+012425: CUNEIFORM NUMERIC SIGN THREE SHAR2 VARIANT FORM*/ + RTUNI_ALPHA, /* U+012426: CUNEIFORM NUMERIC SIGN FOUR SHAR2*/ + RTUNI_ALPHA, /* U+012427: CUNEIFORM NUMERIC SIGN FIVE SHAR2*/ + RTUNI_ALPHA, /* U+012428: CUNEIFORM NUMERIC SIGN SIX SHAR2*/ + RTUNI_ALPHA, /* U+012429: CUNEIFORM NUMERIC SIGN SEVEN SHAR2*/ + RTUNI_ALPHA, /* U+01242a: CUNEIFORM NUMERIC SIGN EIGHT SHAR2*/ + RTUNI_ALPHA, /* U+01242b: CUNEIFORM NUMERIC SIGN NINE SHAR2*/ + RTUNI_ALPHA, /* U+01242c: CUNEIFORM NUMERIC SIGN ONE SHARU*/ + RTUNI_ALPHA, /* U+01242d: CUNEIFORM NUMERIC SIGN TWO SHARU*/ + RTUNI_ALPHA, /* U+01242e: CUNEIFORM NUMERIC SIGN THREE SHARU*/ + RTUNI_ALPHA, /* U+01242f: CUNEIFORM NUMERIC SIGN THREE SHARU VARIANT FORM*/ + RTUNI_ALPHA, /* U+012430: CUNEIFORM NUMERIC SIGN FOUR SHARU*/ + RTUNI_ALPHA, /* U+012431: CUNEIFORM NUMERIC SIGN FIVE SHARU*/ + RTUNI_ALPHA, /* U+012432: CUNEIFORM NUMERIC SIGN SHAR2 TIMES GAL PLUS DISH*/ + RTUNI_ALPHA, /* U+012433: CUNEIFORM NUMERIC SIGN SHAR2 TIMES GAL PLUS MIN*/ + RTUNI_ALPHA, /* U+012434: CUNEIFORM NUMERIC SIGN ONE BURU*/ + RTUNI_ALPHA, /* U+012435: CUNEIFORM NUMERIC SIGN TWO BURU*/ + RTUNI_ALPHA, /* U+012436: CUNEIFORM NUMERIC SIGN THREE BURU*/ + RTUNI_ALPHA, /* U+012437: CUNEIFORM NUMERIC SIGN THREE BURU VARIANT FORM*/ + RTUNI_ALPHA, /* U+012438: CUNEIFORM NUMERIC SIGN FOUR BURU*/ + RTUNI_ALPHA, /* U+012439: CUNEIFORM NUMERIC SIGN FIVE BURU*/ + RTUNI_ALPHA, /* U+01243a: CUNEIFORM NUMERIC SIGN THREE VARIANT FORM ESH16*/ + RTUNI_ALPHA, /* U+01243b: CUNEIFORM NUMERIC SIGN THREE VARIANT FORM ESH21*/ + RTUNI_ALPHA, /* U+01243c: CUNEIFORM NUMERIC SIGN FOUR VARIANT FORM LIMMU*/ + RTUNI_ALPHA, /* U+01243d: CUNEIFORM NUMERIC SIGN FOUR VARIANT FORM LIMMU4*/ + RTUNI_ALPHA, /* U+01243e: CUNEIFORM NUMERIC SIGN FOUR VARIANT FORM LIMMU A*/ + RTUNI_ALPHA, /* U+01243f: CUNEIFORM NUMERIC SIGN FOUR VARIANT FORM LIMMU B*/ + RTUNI_ALPHA, /* U+012440: CUNEIFORM NUMERIC SIGN SIX VARIANT FORM ASH9*/ + RTUNI_ALPHA, /* U+012441: CUNEIFORM NUMERIC SIGN SEVEN VARIANT FORM IMIN3*/ + RTUNI_ALPHA, /* U+012442: CUNEIFORM NUMERIC SIGN SEVEN VARIANT FORM IMIN A*/ + RTUNI_ALPHA, /* U+012443: CUNEIFORM NUMERIC SIGN SEVEN VARIANT FORM IMIN B*/ + RTUNI_ALPHA, /* U+012444: CUNEIFORM NUMERIC SIGN EIGHT VARIANT FORM USSU*/ + RTUNI_ALPHA, /* U+012445: CUNEIFORM NUMERIC SIGN EIGHT VARIANT FORM USSU3*/ + RTUNI_ALPHA, /* U+012446: CUNEIFORM NUMERIC SIGN NINE VARIANT FORM ILIMMU*/ + RTUNI_ALPHA, /* U+012447: CUNEIFORM NUMERIC SIGN NINE VARIANT FORM ILIMMU3*/ + RTUNI_ALPHA, /* U+012448: CUNEIFORM NUMERIC SIGN NINE VARIANT FORM ILIMMU4*/ + RTUNI_ALPHA, /* U+012449: CUNEIFORM NUMERIC SIGN NINE VARIANT FORM ILIMMU A*/ + RTUNI_ALPHA, /* U+01244a: CUNEIFORM NUMERIC SIGN TWO ASH TENU*/ + RTUNI_ALPHA, /* U+01244b: CUNEIFORM NUMERIC SIGN THREE ASH TENU*/ + RTUNI_ALPHA, /* U+01244c: CUNEIFORM NUMERIC SIGN FOUR ASH TENU*/ + RTUNI_ALPHA, /* U+01244d: CUNEIFORM NUMERIC SIGN FIVE ASH TENU*/ + RTUNI_ALPHA, /* U+01244e: CUNEIFORM NUMERIC SIGN SIX ASH TENU*/ + RTUNI_ALPHA, /* U+01244f: CUNEIFORM NUMERIC SIGN ONE BAN2*/ + RTUNI_ALPHA, /* U+012450: CUNEIFORM NUMERIC SIGN TWO BAN2*/ + RTUNI_ALPHA, /* U+012451: CUNEIFORM NUMERIC SIGN THREE BAN2*/ + RTUNI_ALPHA, /* U+012452: CUNEIFORM NUMERIC SIGN FOUR BAN2*/ + RTUNI_ALPHA, /* U+012453: CUNEIFORM NUMERIC SIGN FOUR BAN2 VARIANT FORM*/ + RTUNI_ALPHA, /* U+012454: CUNEIFORM NUMERIC SIGN FIVE BAN2*/ + RTUNI_ALPHA, /* U+012455: CUNEIFORM NUMERIC SIGN FIVE BAN2 VARIANT FORM*/ + RTUNI_ALPHA, /* U+012456: CUNEIFORM NUMERIC SIGN NIGIDAMIN*/ + RTUNI_ALPHA, /* U+012457: CUNEIFORM NUMERIC SIGN NIGIDAESH*/ + RTUNI_ALPHA, /* U+012458: CUNEIFORM NUMERIC SIGN ONE ESHE3*/ + RTUNI_ALPHA, /* U+012459: CUNEIFORM NUMERIC SIGN TWO ESHE3*/ + RTUNI_ALPHA, /* U+01245a: CUNEIFORM NUMERIC SIGN ONE THIRD DISH*/ + RTUNI_ALPHA, /* U+01245b: CUNEIFORM NUMERIC SIGN TWO THIRDS DISH*/ + RTUNI_ALPHA, /* U+01245c: CUNEIFORM NUMERIC SIGN FIVE SIXTHS DISH*/ + RTUNI_ALPHA, /* U+01245d: CUNEIFORM NUMERIC SIGN ONE THIRD VARIANT FORM A*/ + RTUNI_ALPHA, /* U+01245e: CUNEIFORM NUMERIC SIGN TWO THIRDS VARIANT FORM A*/ + RTUNI_ALPHA, /* U+01245f: CUNEIFORM NUMERIC SIGN ONE EIGHTH ASH*/ + RTUNI_ALPHA, /* U+012460: CUNEIFORM NUMERIC SIGN ONE QUARTER ASH*/ + RTUNI_ALPHA, /* U+012461: CUNEIFORM NUMERIC SIGN OLD ASSYRIAN ONE SIXTH*/ + RTUNI_ALPHA, /* U+012462: CUNEIFORM NUMERIC SIGN OLD ASSYRIAN ONE QUARTER*/ + 0, /* U+012463: */ + 0, /* U+012464: */ + 0, /* U+012465: */ + 0, /* U+012466: */ + 0, /* U+012467: */ + 0, /* U+012468: */ + 0, /* U+012469: */ + 0, /* U+01246a: */ + 0, /* U+01246b: */ + 0, /* U+01246c: */ + 0, /* U+01246d: */ + 0, /* U+01246e: */ + 0, /* U+01246f: */ + 0, /* U+012470: CUNEIFORM PUNCTUATION SIGN OLD ASSYRIAN WORD DIVIDER*/ + 0, /* U+012471: CUNEIFORM PUNCTUATION SIGN VERTICAL COLON*/ + 0, /* U+012472: CUNEIFORM PUNCTUATION SIGN DIAGONAL COLON*/ + 0, /* U+012473: CUNEIFORM PUNCTUATION SIGN DIAGONAL TRICOLON*/ + 0, /* U+012474: */ + 0, /* U+012475: */ + 0, /* U+012476: */ + 0, /* U+012477: */ + 0, /* U+012478: */ + 0, /* U+012479: */ + 0, /* U+01247a: */ + 0, /* U+01247b: */ + 0, /* U+01247c: */ + 0, /* U+01247d: */ + 0, /* U+01247e: */ + 0, /* U+01247f: */ + 0, /* U+012480: */ + 0, /* U+012481: */ + 0, /* U+012482: */ + 0, /* U+012483: */ + 0, /* U+012484: */ + 0, /* U+012485: */ + 0, /* U+012486: */ + 0, /* U+012487: */ + 0, /* U+012488: */ + 0, /* U+012489: */ + 0, /* U+01248a: */ + 0, /* U+01248b: */ + 0, /* U+01248c: */ + 0, /* U+01248d: */ + 0, /* U+01248e: */ + 0, /* U+01248f: */ + 0, /* U+012490: */ + 0, /* U+012491: */ + 0, /* U+012492: */ + 0, /* U+012493: */ + 0, /* U+012494: */ + 0, /* U+012495: */ + 0, /* U+012496: */ + 0, /* U+012497: */ + 0, /* U+012498: */ + 0, /* U+012499: */ + 0, /* U+01249a: */ + 0, /* U+01249b: */ + 0, /* U+01249c: */ + 0, /* U+01249d: */ + 0, /* U+01249e: */ + 0, /* U+01249f: */ + 0, /* U+0124a0: */ + 0, /* U+0124a1: */ + 0, /* U+0124a2: */ + 0, /* U+0124a3: */ + 0, /* U+0124a4: */ + 0, /* U+0124a5: */ + 0, /* U+0124a6: */ + 0, /* U+0124a7: */ + 0, /* U+0124a8: */ + 0, /* U+0124a9: */ + 0, /* U+0124aa: */ + 0, /* U+0124ab: */ + 0, /* U+0124ac: */ + 0, /* U+0124ad: */ + 0, /* U+0124ae: */ + 0, /* U+0124af: */ + 0, /* U+0124b0: */ + 0, /* U+0124b1: */ + 0, /* U+0124b2: */ + 0, /* U+0124b3: */ + 0, /* U+0124b4: */ + 0, /* U+0124b5: */ + 0, /* U+0124b6: */ + 0, /* U+0124b7: */ + 0, /* U+0124b8: */ + 0, /* U+0124b9: */ + 0, /* U+0124ba: */ + 0, /* U+0124bb: */ + 0, /* U+0124bc: */ + 0, /* U+0124bd: */ + 0, /* U+0124be: */ + 0, /* U+0124bf: */ + 0, /* U+0124c0: */ + 0, /* U+0124c1: */ + 0, /* U+0124c2: */ + 0, /* U+0124c3: */ + 0, /* U+0124c4: */ + 0, /* U+0124c5: */ + 0, /* U+0124c6: */ + 0, /* U+0124c7: */ + 0, /* U+0124c8: */ + 0, /* U+0124c9: */ + 0, /* U+0124ca: */ + 0, /* U+0124cb: */ + 0, /* U+0124cc: */ + 0, /* U+0124cd: */ + 0, /* U+0124ce: */ + 0, /* U+0124cf: */ + 0, /* U+0124d0: */ + 0, /* U+0124d1: */ + 0, /* U+0124d2: */ + 0, /* U+0124d3: */ + 0, /* U+0124d4: */ + 0, /* U+0124d5: */ + 0, /* U+0124d6: */ + 0, /* U+0124d7: */ + 0, /* U+0124d8: */ + 0, /* U+0124d9: */ + 0, /* U+0124da: */ + 0, /* U+0124db: */ + 0, /* U+0124dc: */ + 0, /* U+0124dd: */ + 0, /* U+0124de: */ + 0, /* U+0124df: */ + 0, /* U+0124e0: */ + 0, /* U+0124e1: */ + 0, /* U+0124e2: */ + 0, /* U+0124e3: */ + 0, /* U+0124e4: */ + 0, /* U+0124e5: */ + 0, /* U+0124e6: */ + 0, /* U+0124e7: */ + 0, /* U+0124e8: */ + 0, /* U+0124e9: */ + 0, /* U+0124ea: */ + 0, /* U+0124eb: */ + 0, /* U+0124ec: */ + 0, /* U+0124ed: */ + 0, /* U+0124ee: */ + 0, /* U+0124ef: */ + 0, /* U+0124f0: */ + 0, /* U+0124f1: */ + 0, /* U+0124f2: */ + 0, /* U+0124f3: */ + 0, /* U+0124f4: */ + 0, /* U+0124f5: */ + 0, /* U+0124f6: */ + 0, /* U+0124f7: */ + 0, /* U+0124f8: */ + 0, /* U+0124f9: */ + 0, /* U+0124fa: */ + 0, /* U+0124fb: */ + 0, /* U+0124fc: */ + 0, /* U+0124fd: */ + 0, /* U+0124fe: */ + 0, /* U+0124ff: */ + 0, /* U+012500: */ + 0, /* U+012501: */ + 0, /* U+012502: */ + 0, /* U+012503: */ + 0, /* U+012504: */ + 0, /* U+012505: */ + 0, /* U+012506: */ + 0, /* U+012507: */ + 0, /* U+012508: */ + 0, /* U+012509: */ + 0, /* U+01250a: */ + 0, /* U+01250b: */ + 0, /* U+01250c: */ + 0, /* U+01250d: */ + 0, /* U+01250e: */ + 0, /* U+01250f: */ + 0, /* U+012510: */ + 0, /* U+012511: */ + 0, /* U+012512: */ + 0, /* U+012513: */ + 0, /* U+012514: */ + 0, /* U+012515: */ + 0, /* U+012516: */ + 0, /* U+012517: */ + 0, /* U+012518: */ + 0, /* U+012519: */ + 0, /* U+01251a: */ + 0, /* U+01251b: */ + 0, /* U+01251c: */ + 0, /* U+01251d: */ + 0, /* U+01251e: */ + 0, /* U+01251f: */ + 0, /* U+012520: */ + 0, /* U+012521: */ + 0, /* U+012522: */ + 0, /* U+012523: */ + 0, /* U+012524: */ + 0, /* U+012525: */ + 0, /* U+012526: */ + 0, /* U+012527: */ + 0, /* U+012528: */ + 0, /* U+012529: */ + 0, /* U+01252a: */ + 0, /* U+01252b: */ + 0, /* U+01252c: */ + 0, /* U+01252d: */ + 0, /* U+01252e: */ + 0, /* U+01252f: */ + 0, /* U+012530: */ + 0, /* U+012531: */ + 0, /* U+012532: */ + 0, /* U+012533: */ + 0, /* U+012534: */ + 0, /* U+012535: */ + 0, /* U+012536: */ + 0, /* U+012537: */ + 0, /* U+012538: */ + 0, /* U+012539: */ + 0, /* U+01253a: */ + 0, /* U+01253b: */ + 0, /* U+01253c: */ + 0, /* U+01253d: */ + 0, /* U+01253e: */ + 0, /* U+01253f: */ + 0, /* U+012540: */ + 0, /* U+012541: */ + 0, /* U+012542: */ + 0, /* U+012543: */ + 0, /* U+012544: */ + 0, /* U+012545: */ + 0, /* U+012546: */ + 0, /* U+012547: */ + 0, /* U+012548: */ + 0, /* U+012549: */ + 0, /* U+01254a: */ + 0, /* U+01254b: */ + 0, /* U+01254c: */ + 0, /* U+01254d: */ + 0, /* U+01254e: */ + 0, /* U+01254f: */ + 0, /* U+012550: */ + 0, /* U+012551: */ + 0, /* U+012552: */ + 0, /* U+012553: */ + 0, /* U+012554: */ + 0, /* U+012555: */ + 0, /* U+012556: */ + 0, /* U+012557: */ + 0, /* U+012558: */ + 0, /* U+012559: */ + 0, /* U+01255a: */ + 0, /* U+01255b: */ + 0, /* U+01255c: */ + 0, /* U+01255d: */ + 0, /* U+01255e: */ + 0, /* U+01255f: */ + 0, /* U+012560: */ + 0, /* U+012561: */ + 0, /* U+012562: */ + 0, /* U+012563: */ + 0, /* U+012564: */ + 0, /* U+012565: */ + 0, /* U+012566: */ + 0, /* U+012567: */ + 0, /* U+012568: */ + 0, /* U+012569: */ + 0, /* U+01256a: */ + 0, /* U+01256b: */ + 0, /* U+01256c: */ + 0, /* U+01256d: */ + 0, /* U+01256e: */ + 0, /* U+01256f: */ + 0, /* U+012570: */ + 0, /* U+012571: */ + 0, /* U+012572: */ + 0, /* U+012573: */ + 0, /* U+012574: */ + 0, /* U+012575: */ + 0, /* U+012576: */ + 0, /* U+012577: */ + 0, /* U+012578: */ + 0, /* U+012579: */ + 0, /* U+01257a: */ + 0, /* U+01257b: */ + 0, /* U+01257c: */ + 0, /* U+01257d: */ + 0, /* U+01257e: */ + 0, /* U+01257f: */ + 0, /* U+012580: */ + 0, /* U+012581: */ + 0, /* U+012582: */ + 0, /* U+012583: */ + 0, /* U+012584: */ + 0, /* U+012585: */ + 0, /* U+012586: */ + 0, /* U+012587: */ + 0, /* U+012588: */ + 0, /* U+012589: */ + 0, /* U+01258a: */ + 0, /* U+01258b: */ + 0, /* U+01258c: */ + 0, /* U+01258d: */ + 0, /* U+01258e: */ + 0, /* U+01258f: */ + 0, /* U+012590: */ + 0, /* U+012591: */ + 0, /* U+012592: */ + 0, /* U+012593: */ + 0, /* U+012594: */ + 0, /* U+012595: */ + 0, /* U+012596: */ + 0, /* U+012597: */ + 0, /* U+012598: */ + 0, /* U+012599: */ + 0, /* U+01259a: */ + 0, /* U+01259b: */ + 0, /* U+01259c: */ + 0, /* U+01259d: */ + 0, /* U+01259e: */ + 0, /* U+01259f: */ + 0, /* U+0125a0: */ + 0, /* U+0125a1: */ + 0, /* U+0125a2: */ + 0, /* U+0125a3: */ + 0, /* U+0125a4: */ + 0, /* U+0125a5: */ + 0, /* U+0125a6: */ + 0, /* U+0125a7: */ + 0, /* U+0125a8: */ + 0, /* U+0125a9: */ + 0, /* U+0125aa: */ + 0, /* U+0125ab: */ + 0, /* U+0125ac: */ + 0, /* U+0125ad: */ + 0, /* U+0125ae: */ + 0, /* U+0125af: */ + 0, /* U+0125b0: */ + 0, /* U+0125b1: */ + 0, /* U+0125b2: */ + 0, /* U+0125b3: */ + 0, /* U+0125b4: */ + 0, /* U+0125b5: */ + 0, /* U+0125b6: */ + 0, /* U+0125b7: */ + 0, /* U+0125b8: */ + 0, /* U+0125b9: */ + 0, /* U+0125ba: */ + 0, /* U+0125bb: */ + 0, /* U+0125bc: */ + 0, /* U+0125bd: */ + 0, /* U+0125be: */ + 0, /* U+0125bf: */ + 0, /* U+0125c0: */ + 0, /* U+0125c1: */ + 0, /* U+0125c2: */ + 0, /* U+0125c3: */ + 0, /* U+0125c4: */ + 0, /* U+0125c5: */ + 0, /* U+0125c6: */ + 0, /* U+0125c7: */ + 0, /* U+0125c8: */ + 0, /* U+0125c9: */ + 0, /* U+0125ca: */ + 0, /* U+0125cb: */ + 0, /* U+0125cc: */ + 0, /* U+0125cd: */ + 0, /* U+0125ce: */ + 0, /* U+0125cf: */ + 0, /* U+0125d0: */ + 0, /* U+0125d1: */ + 0, /* U+0125d2: */ + 0, /* U+0125d3: */ + 0, /* U+0125d4: */ + 0, /* U+0125d5: */ + 0, /* U+0125d6: */ + 0, /* U+0125d7: */ + 0, /* U+0125d8: */ + 0, /* U+0125d9: */ + 0, /* U+0125da: */ + 0, /* U+0125db: */ + 0, /* U+0125dc: */ + 0, /* U+0125dd: */ + 0, /* U+0125de: */ + 0, /* U+0125df: */ + 0, /* U+0125e0: */ + 0, /* U+0125e1: */ + 0, /* U+0125e2: */ + 0, /* U+0125e3: */ + 0, /* U+0125e4: */ + 0, /* U+0125e5: */ + 0, /* U+0125e6: */ + 0, /* U+0125e7: */ + 0, /* U+0125e8: */ + 0, /* U+0125e9: */ + 0, /* U+0125ea: */ + 0, /* U+0125eb: */ + 0, /* U+0125ec: */ + 0, /* U+0125ed: */ + 0, /* U+0125ee: */ + 0, /* U+0125ef: */ + 0, /* U+0125f0: */ + 0, /* U+0125f1: */ + 0, /* U+0125f2: */ + 0, /* U+0125f3: */ + 0, /* U+0125f4: */ + 0, /* U+0125f5: */ + 0, /* U+0125f6: */ + 0, /* U+0125f7: */ + 0, /* U+0125f8: */ + 0, /* U+0125f9: */ + 0, /* U+0125fa: */ + 0, /* U+0125fb: */ + 0, /* U+0125fc: */ + 0, /* U+0125fd: */ + 0, /* U+0125fe: */ + 0, /* U+0125ff: */ + 0, /* U+012600: */ + 0, /* U+012601: */ + 0, /* U+012602: */ + 0, /* U+012603: */ + 0, /* U+012604: */ + 0, /* U+012605: */ + 0, /* U+012606: */ + 0, /* U+012607: */ + 0, /* U+012608: */ + 0, /* U+012609: */ + 0, /* U+01260a: */ + 0, /* U+01260b: */ + 0, /* U+01260c: */ + 0, /* U+01260d: */ + 0, /* U+01260e: */ + 0, /* U+01260f: */ + 0, /* U+012610: */ + 0, /* U+012611: */ + 0, /* U+012612: */ + 0, /* U+012613: */ + 0, /* U+012614: */ + 0, /* U+012615: */ + 0, /* U+012616: */ + 0, /* U+012617: */ + 0, /* U+012618: */ + 0, /* U+012619: */ + 0, /* U+01261a: */ + 0, /* U+01261b: */ + 0, /* U+01261c: */ + 0, /* U+01261d: */ + 0, /* U+01261e: */ + 0, /* U+01261f: */ + 0, /* U+012620: */ + 0, /* U+012621: */ + 0, /* U+012622: */ + 0, /* U+012623: */ + 0, /* U+012624: */ + 0, /* U+012625: */ + 0, /* U+012626: */ + 0, /* U+012627: */ + 0, /* U+012628: */ + 0, /* U+012629: */ + 0, /* U+01262a: */ + 0, /* U+01262b: */ + 0, /* U+01262c: */ + 0, /* U+01262d: */ + 0, /* U+01262e: */ + 0, /* U+01262f: */ + 0, /* U+012630: */ + 0, /* U+012631: */ + 0, /* U+012632: */ + 0, /* U+012633: */ + 0, /* U+012634: */ + 0, /* U+012635: */ + 0, /* U+012636: */ + 0, /* U+012637: */ + 0, /* U+012638: */ + 0, /* U+012639: */ + 0, /* U+01263a: */ + 0, /* U+01263b: */ + 0, /* U+01263c: */ + 0, /* U+01263d: */ + 0, /* U+01263e: */ + 0, /* U+01263f: */ + 0, /* U+012640: */ + 0, /* U+012641: */ + 0, /* U+012642: */ + 0, /* U+012643: */ + 0, /* U+012644: */ + 0, /* U+012645: */ + 0, /* U+012646: */ + 0, /* U+012647: */ + 0, /* U+012648: */ + 0, /* U+012649: */ + 0, /* U+01264a: */ + 0, /* U+01264b: */ + 0, /* U+01264c: */ + 0, /* U+01264d: */ + 0, /* U+01264e: */ + 0, /* U+01264f: */ + 0, /* U+012650: */ + 0, /* U+012651: */ + 0, /* U+012652: */ + 0, /* U+012653: */ + 0, /* U+012654: */ + 0, /* U+012655: */ + 0, /* U+012656: */ + 0, /* U+012657: */ + 0, /* U+012658: */ + 0, /* U+012659: */ + 0, /* U+01265a: */ + 0, /* U+01265b: */ + 0, /* U+01265c: */ + 0, /* U+01265d: */ + 0, /* U+01265e: */ + 0, /* U+01265f: */ + 0, /* U+012660: */ + 0, /* U+012661: */ + 0, /* U+012662: */ + 0, /* U+012663: */ + 0, /* U+012664: */ + 0, /* U+012665: */ + 0, /* U+012666: */ + 0, /* U+012667: */ + 0, /* U+012668: */ + 0, /* U+012669: */ + 0, /* U+01266a: */ + 0, /* U+01266b: */ + 0, /* U+01266c: */ + 0, /* U+01266d: */ + 0, /* U+01266e: */ + 0, /* U+01266f: */ + 0, /* U+012670: */ + 0, /* U+012671: */ + 0, /* U+012672: */ + 0, /* U+012673: */ + 0, /* U+012674: */ + 0, /* U+012675: */ + 0, /* U+012676: */ + 0, /* U+012677: */ + 0, /* U+012678: */ + 0, /* U+012679: */ + 0, /* U+01267a: */ + 0, /* U+01267b: */ + 0, /* U+01267c: */ + 0, /* U+01267d: */ + 0, /* U+01267e: */ + 0, /* U+01267f: */ + 0, /* U+012680: */ + 0, /* U+012681: */ + 0, /* U+012682: */ + 0, /* U+012683: */ + 0, /* U+012684: */ + 0, /* U+012685: */ + 0, /* U+012686: */ + 0, /* U+012687: */ + 0, /* U+012688: */ + 0, /* U+012689: */ + 0, /* U+01268a: */ + 0, /* U+01268b: */ + 0, /* U+01268c: */ + 0, /* U+01268d: */ + 0, /* U+01268e: */ + 0, /* U+01268f: */ + 0, /* U+012690: */ + 0, /* U+012691: */ + 0, /* U+012692: */ + 0, /* U+012693: */ + 0, /* U+012694: */ + 0, /* U+012695: */ + 0, /* U+012696: */ + 0, /* U+012697: */ + 0, /* U+012698: */ + 0, /* U+012699: */ + 0, /* U+01269a: */ + 0, /* U+01269b: */ + 0, /* U+01269c: */ + 0, /* U+01269d: */ + 0, /* U+01269e: */ + 0, /* U+01269f: */ + 0, /* U+0126a0: */ + 0, /* U+0126a1: */ + 0, /* U+0126a2: */ + 0, /* U+0126a3: */ + 0, /* U+0126a4: */ + 0, /* U+0126a5: */ + 0, /* U+0126a6: */ + 0, /* U+0126a7: */ + 0, /* U+0126a8: */ + 0, /* U+0126a9: */ + 0, /* U+0126aa: */ + 0, /* U+0126ab: */ + 0, /* U+0126ac: */ + 0, /* U+0126ad: */ + 0, /* U+0126ae: */ + 0, /* U+0126af: */ + 0, /* U+0126b0: */ + 0, /* U+0126b1: */ + 0, /* U+0126b2: */ + 0, /* U+0126b3: */ + 0, /* U+0126b4: */ + 0, /* U+0126b5: */ + 0, /* U+0126b6: */ + 0, /* U+0126b7: */ + 0, /* U+0126b8: */ + 0, /* U+0126b9: */ + 0, /* U+0126ba: */ + 0, /* U+0126bb: */ + 0, /* U+0126bc: */ + 0, /* U+0126bd: */ + 0, /* U+0126be: */ + 0, /* U+0126bf: */ + 0, /* U+0126c0: */ + 0, /* U+0126c1: */ + 0, /* U+0126c2: */ + 0, /* U+0126c3: */ + 0, /* U+0126c4: */ + 0, /* U+0126c5: */ + 0, /* U+0126c6: */ + 0, /* U+0126c7: */ + 0, /* U+0126c8: */ + 0, /* U+0126c9: */ + 0, /* U+0126ca: */ + 0, /* U+0126cb: */ + 0, /* U+0126cc: */ + 0, /* U+0126cd: */ + 0, /* U+0126ce: */ + 0, /* U+0126cf: */ + 0, /* U+0126d0: */ + 0, /* U+0126d1: */ + 0, /* U+0126d2: */ + 0, /* U+0126d3: */ + 0, /* U+0126d4: */ + 0, /* U+0126d5: */ + 0, /* U+0126d6: */ + 0, /* U+0126d7: */ + 0, /* U+0126d8: */ + 0, /* U+0126d9: */ + 0, /* U+0126da: */ + 0, /* U+0126db: */ + 0, /* U+0126dc: */ + 0, /* U+0126dd: */ + 0, /* U+0126de: */ + 0, /* U+0126df: */ + 0, /* U+0126e0: */ + 0, /* U+0126e1: */ + 0, /* U+0126e2: */ + 0, /* U+0126e3: */ + 0, /* U+0126e4: */ + 0, /* U+0126e5: */ + 0, /* U+0126e6: */ + 0, /* U+0126e7: */ + 0, /* U+0126e8: */ + 0, /* U+0126e9: */ + 0, /* U+0126ea: */ + 0, /* U+0126eb: */ + 0, /* U+0126ec: */ + 0, /* U+0126ed: */ + 0, /* U+0126ee: */ + 0, /* U+0126ef: */ + 0, /* U+0126f0: */ + 0, /* U+0126f1: */ + 0, /* U+0126f2: */ + 0, /* U+0126f3: */ + 0, /* U+0126f4: */ + 0, /* U+0126f5: */ + 0, /* U+0126f6: */ + 0, /* U+0126f7: */ + 0, /* U+0126f8: */ + 0, /* U+0126f9: */ + 0, /* U+0126fa: */ + 0, /* U+0126fb: */ + 0, /* U+0126fc: */ + 0, /* U+0126fd: */ + 0, /* U+0126fe: */ + 0, /* U+0126ff: */ + 0, /* U+012700: */ + 0, /* U+012701: */ + 0, /* U+012702: */ + 0, /* U+012703: */ + 0, /* U+012704: */ + 0, /* U+012705: */ + 0, /* U+012706: */ + 0, /* U+012707: */ + 0, /* U+012708: */ + 0, /* U+012709: */ + 0, /* U+01270a: */ + 0, /* U+01270b: */ + 0, /* U+01270c: */ + 0, /* U+01270d: */ + 0, /* U+01270e: */ + 0, /* U+01270f: */ + 0, /* U+012710: */ + 0, /* U+012711: */ + 0, /* U+012712: */ + 0, /* U+012713: */ + 0, /* U+012714: */ + 0, /* U+012715: */ + 0, /* U+012716: */ + 0, /* U+012717: */ + 0, /* U+012718: */ + 0, /* U+012719: */ + 0, /* U+01271a: */ + 0, /* U+01271b: */ + 0, /* U+01271c: */ + 0, /* U+01271d: */ + 0, /* U+01271e: */ + 0, /* U+01271f: */ + 0, /* U+012720: */ + 0, /* U+012721: */ + 0, /* U+012722: */ + 0, /* U+012723: */ + 0, /* U+012724: */ + 0, /* U+012725: */ + 0, /* U+012726: */ + 0, /* U+012727: */ + 0, /* U+012728: */ + 0, /* U+012729: */ + 0, /* U+01272a: */ + 0, /* U+01272b: */ + 0, /* U+01272c: */ + 0, /* U+01272d: */ + 0, /* U+01272e: */ + 0, /* U+01272f: */ + 0, /* U+012730: */ + 0, /* U+012731: */ + 0, /* U+012732: */ + 0, /* U+012733: */ + 0, /* U+012734: */ + 0, /* U+012735: */ + 0, /* U+012736: */ + 0, /* U+012737: */ + 0, /* U+012738: */ + 0, /* U+012739: */ + 0, /* U+01273a: */ + 0, /* U+01273b: */ + 0, /* U+01273c: */ + 0, /* U+01273d: */ + 0, /* U+01273e: */ + 0, /* U+01273f: */ + 0, /* U+012740: */ + 0, /* U+012741: */ + 0, /* U+012742: */ + 0, /* U+012743: */ + 0, /* U+012744: */ + 0, /* U+012745: */ + 0, /* U+012746: */ + 0, /* U+012747: */ + 0, /* U+012748: */ + 0, /* U+012749: */ + 0, /* U+01274a: */ + 0, /* U+01274b: */ + 0, /* U+01274c: */ + 0, /* U+01274d: */ + 0, /* U+01274e: */ + 0, /* U+01274f: */ + 0, /* U+012750: */ + 0, /* U+012751: */ + 0, /* U+012752: */ + 0, /* U+012753: */ + 0, /* U+012754: */ + 0, /* U+012755: */ + 0, /* U+012756: */ + 0, /* U+012757: */ + 0, /* U+012758: */ + 0, /* U+012759: */ + 0, /* U+01275a: */ + 0, /* U+01275b: */ + 0, /* U+01275c: */ + 0, /* U+01275d: */ + 0, /* U+01275e: */ + 0, /* U+01275f: */ + 0, /* U+012760: */ + 0, /* U+012761: */ + 0, /* U+012762: */ + 0, /* U+012763: */ + 0, /* U+012764: */ + 0, /* U+012765: */ + 0, /* U+012766: */ + 0, /* U+012767: */ + 0, /* U+012768: */ + 0, /* U+012769: */ + 0, /* U+01276a: */ + 0, /* U+01276b: */ + 0, /* U+01276c: */ + 0, /* U+01276d: */ + 0, /* U+01276e: */ + 0, /* U+01276f: */ + 0, /* U+012770: */ + 0, /* U+012771: */ + 0, /* U+012772: */ + 0, /* U+012773: */ + 0, /* U+012774: */ + 0, /* U+012775: */ + 0, /* U+012776: */ + 0, /* U+012777: */ + 0, /* U+012778: */ + 0, /* U+012779: */ + 0, /* U+01277a: */ + 0, /* U+01277b: */ + 0, /* U+01277c: */ + 0, /* U+01277d: */ + 0, /* U+01277e: */ + 0, /* U+01277f: */ + 0, /* U+012780: */ + 0, /* U+012781: */ + 0, /* U+012782: */ + 0, /* U+012783: */ + 0, /* U+012784: */ + 0, /* U+012785: */ + 0, /* U+012786: */ + 0, /* U+012787: */ + 0, /* U+012788: */ + 0, /* U+012789: */ + 0, /* U+01278a: */ + 0, /* U+01278b: */ + 0, /* U+01278c: */ + 0, /* U+01278d: */ + 0, /* U+01278e: */ + 0, /* U+01278f: */ + 0, /* U+012790: */ + 0, /* U+012791: */ + 0, /* U+012792: */ + 0, /* U+012793: */ + 0, /* U+012794: */ + 0, /* U+012795: */ + 0, /* U+012796: */ + 0, /* U+012797: */ + 0, /* U+012798: */ + 0, /* U+012799: */ + 0, /* U+01279a: */ + 0, /* U+01279b: */ + 0, /* U+01279c: */ + 0, /* U+01279d: */ + 0, /* U+01279e: */ + 0, /* U+01279f: */ + 0, /* U+0127a0: */ + 0, /* U+0127a1: */ + 0, /* U+0127a2: */ + 0, /* U+0127a3: */ + 0, /* U+0127a4: */ + 0, /* U+0127a5: */ + 0, /* U+0127a6: */ + 0, /* U+0127a7: */ + 0, /* U+0127a8: */ + 0, /* U+0127a9: */ + 0, /* U+0127aa: */ + 0, /* U+0127ab: */ + 0, /* U+0127ac: */ + 0, /* U+0127ad: */ + 0, /* U+0127ae: */ + 0, /* U+0127af: */ + 0, /* U+0127b0: */ + 0, /* U+0127b1: */ + 0, /* U+0127b2: */ + 0, /* U+0127b3: */ + 0, /* U+0127b4: */ + 0, /* U+0127b5: */ + 0, /* U+0127b6: */ + 0, /* U+0127b7: */ + 0, /* U+0127b8: */ + 0, /* U+0127b9: */ + 0, /* U+0127ba: */ + 0, /* U+0127bb: */ + 0, /* U+0127bc: */ + 0, /* U+0127bd: */ + 0, /* U+0127be: */ + 0, /* U+0127bf: */ + 0, /* U+0127c0: */ + 0, /* U+0127c1: */ + 0, /* U+0127c2: */ + 0, /* U+0127c3: */ + 0, /* U+0127c4: */ + 0, /* U+0127c5: */ + 0, /* U+0127c6: */ + 0, /* U+0127c7: */ + 0, /* U+0127c8: */ + 0, /* U+0127c9: */ + 0, /* U+0127ca: */ + 0, /* U+0127cb: */ + 0, /* U+0127cc: */ + 0, /* U+0127cd: */ + 0, /* U+0127ce: */ + 0, /* U+0127cf: */ + 0, /* U+0127d0: */ + 0, /* U+0127d1: */ + 0, /* U+0127d2: */ + 0, /* U+0127d3: */ + 0, /* U+0127d4: */ + 0, /* U+0127d5: */ + 0, /* U+0127d6: */ + 0, /* U+0127d7: */ + 0, /* U+0127d8: */ + 0, /* U+0127d9: */ + 0, /* U+0127da: */ + 0, /* U+0127db: */ + 0, /* U+0127dc: */ + 0, /* U+0127dd: */ + 0, /* U+0127de: */ + 0, /* U+0127df: */ + 0, /* U+0127e0: */ + 0, /* U+0127e1: */ + 0, /* U+0127e2: */ + 0, /* U+0127e3: */ + 0, /* U+0127e4: */ + 0, /* U+0127e5: */ + 0, /* U+0127e6: */ + 0, /* U+0127e7: */ + 0, /* U+0127e8: */ + 0, /* U+0127e9: */ + 0, /* U+0127ea: */ + 0, /* U+0127eb: */ + 0, /* U+0127ec: */ + 0, /* U+0127ed: */ + 0, /* U+0127ee: */ + 0, /* U+0127ef: */ + 0, /* U+0127f0: */ + 0, /* U+0127f1: */ + 0, /* U+0127f2: */ + 0, /* U+0127f3: */ + 0, /* U+0127f4: */ + 0, /* U+0127f5: */ + 0, /* U+0127f6: */ + 0, /* U+0127f7: */ + 0, /* U+0127f8: */ + 0, /* U+0127f9: */ + 0, /* U+0127fa: */ + 0, /* U+0127fb: */ + 0, /* U+0127fc: */ + 0, /* U+0127fd: */ + 0, /* U+0127fe: */ + 0, /* U+0127ff: */ + 0, /* U+012800: */ + 0, /* U+012801: */ + 0, /* U+012802: */ + 0, /* U+012803: */ + 0, /* U+012804: */ + 0, /* U+012805: */ + 0, /* U+012806: */ + 0, /* U+012807: */ + 0, /* U+012808: */ + 0, /* U+012809: */ + 0, /* U+01280a: */ + 0, /* U+01280b: */ + 0, /* U+01280c: */ + 0, /* U+01280d: */ + 0, /* U+01280e: */ + 0, /* U+01280f: */ + 0, /* U+012810: */ + 0, /* U+012811: */ + 0, /* U+012812: */ + 0, /* U+012813: */ + 0, /* U+012814: */ + 0, /* U+012815: */ + 0, /* U+012816: */ + 0, /* U+012817: */ + 0, /* U+012818: */ + 0, /* U+012819: */ + 0, /* U+01281a: */ + 0, /* U+01281b: */ + 0, /* U+01281c: */ + 0, /* U+01281d: */ + 0, /* U+01281e: */ + 0, /* U+01281f: */ + 0, /* U+012820: */ + 0, /* U+012821: */ + 0, /* U+012822: */ + 0, /* U+012823: */ + 0, /* U+012824: */ + 0, /* U+012825: */ + 0, /* U+012826: */ + 0, /* U+012827: */ + 0, /* U+012828: */ + 0, /* U+012829: */ + 0, /* U+01282a: */ + 0, /* U+01282b: */ + 0, /* U+01282c: */ + 0, /* U+01282d: */ + 0, /* U+01282e: */ + 0, /* U+01282f: */ + 0, /* U+012830: */ + 0, /* U+012831: */ + 0, /* U+012832: */ + 0, /* U+012833: */ + 0, /* U+012834: */ + 0, /* U+012835: */ + 0, /* U+012836: */ + 0, /* U+012837: */ + 0, /* U+012838: */ + 0, /* U+012839: */ + 0, /* U+01283a: */ + 0, /* U+01283b: */ + 0, /* U+01283c: */ + 0, /* U+01283d: */ + 0, /* U+01283e: */ + 0, /* U+01283f: */ + 0, /* U+012840: */ + 0, /* U+012841: */ + 0, /* U+012842: */ + 0, /* U+012843: */ + 0, /* U+012844: */ + 0, /* U+012845: */ + 0, /* U+012846: */ + 0, /* U+012847: */ + 0, /* U+012848: */ + 0, /* U+012849: */ + 0, /* U+01284a: */ + 0, /* U+01284b: */ + 0, /* U+01284c: */ + 0, /* U+01284d: */ + 0, /* U+01284e: */ + 0, /* U+01284f: */ + 0, /* U+012850: */ + 0, /* U+012851: */ + 0, /* U+012852: */ + 0, /* U+012853: */ + 0, /* U+012854: */ + 0, /* U+012855: */ + 0, /* U+012856: */ + 0, /* U+012857: */ + 0, /* U+012858: */ + 0, /* U+012859: */ + 0, /* U+01285a: */ + 0, /* U+01285b: */ + 0, /* U+01285c: */ + 0, /* U+01285d: */ + 0, /* U+01285e: */ + 0, /* U+01285f: */ + 0, /* U+012860: */ + 0, /* U+012861: */ + 0, /* U+012862: */ + 0, /* U+012863: */ + 0, /* U+012864: */ + 0, /* U+012865: */ + 0, /* U+012866: */ + 0, /* U+012867: */ + 0, /* U+012868: */ + 0, /* U+012869: */ + 0, /* U+01286a: */ + 0, /* U+01286b: */ + 0, /* U+01286c: */ + 0, /* U+01286d: */ + 0, /* U+01286e: */ + 0, /* U+01286f: */ + 0, /* U+012870: */ + 0, /* U+012871: */ + 0, /* U+012872: */ + 0, /* U+012873: */ + 0, /* U+012874: */ + 0, /* U+012875: */ + 0, /* U+012876: */ + 0, /* U+012877: */ + 0, /* U+012878: */ + 0, /* U+012879: */ + 0, /* U+01287a: */ + 0, /* U+01287b: */ + 0, /* U+01287c: */ + 0, /* U+01287d: */ + 0, /* U+01287e: */ + 0, /* U+01287f: */ + 0, /* U+012880: */ + 0, /* U+012881: */ + 0, /* U+012882: */ + 0, /* U+012883: */ + 0, /* U+012884: */ + 0, /* U+012885: */ + 0, /* U+012886: */ + 0, /* U+012887: */ + 0, /* U+012888: */ + 0, /* U+012889: */ + 0, /* U+01288a: */ + 0, /* U+01288b: */ + 0, /* U+01288c: */ + 0, /* U+01288d: */ + 0, /* U+01288e: */ + 0, /* U+01288f: */ + 0, /* U+012890: */ + 0, /* U+012891: */ + 0, /* U+012892: */ + 0, /* U+012893: */ + 0, /* U+012894: */ + 0, /* U+012895: */ + 0, /* U+012896: */ + 0, /* U+012897: */ + 0, /* U+012898: */ + 0, /* U+012899: */ + 0, /* U+01289a: */ + 0, /* U+01289b: */ + 0, /* U+01289c: */ + 0, /* U+01289d: */ + 0, /* U+01289e: */ + 0, /* U+01289f: */ + 0, /* U+0128a0: */ + 0, /* U+0128a1: */ + 0, /* U+0128a2: */ + 0, /* U+0128a3: */ + 0, /* U+0128a4: */ + 0, /* U+0128a5: */ + 0, /* U+0128a6: */ + 0, /* U+0128a7: */ + 0, /* U+0128a8: */ + 0, /* U+0128a9: */ + 0, /* U+0128aa: */ + 0, /* U+0128ab: */ + 0, /* U+0128ac: */ + 0, /* U+0128ad: */ + 0, /* U+0128ae: */ + 0, /* U+0128af: */ + 0, /* U+0128b0: */ + 0, /* U+0128b1: */ + 0, /* U+0128b2: */ + 0, /* U+0128b3: */ + 0, /* U+0128b4: */ + 0, /* U+0128b5: */ + 0, /* U+0128b6: */ + 0, /* U+0128b7: */ + 0, /* U+0128b8: */ + 0, /* U+0128b9: */ + 0, /* U+0128ba: */ + 0, /* U+0128bb: */ + 0, /* U+0128bc: */ + 0, /* U+0128bd: */ + 0, /* U+0128be: */ + 0, /* U+0128bf: */ + 0, /* U+0128c0: */ + 0, /* U+0128c1: */ + 0, /* U+0128c2: */ + 0, /* U+0128c3: */ + 0, /* U+0128c4: */ + 0, /* U+0128c5: */ + 0, /* U+0128c6: */ + 0, /* U+0128c7: */ + 0, /* U+0128c8: */ + 0, /* U+0128c9: */ + 0, /* U+0128ca: */ + 0, /* U+0128cb: */ + 0, /* U+0128cc: */ + 0, /* U+0128cd: */ + 0, /* U+0128ce: */ + 0, /* U+0128cf: */ + 0, /* U+0128d0: */ + 0, /* U+0128d1: */ + 0, /* U+0128d2: */ + 0, /* U+0128d3: */ + 0, /* U+0128d4: */ + 0, /* U+0128d5: */ + 0, /* U+0128d6: */ + 0, /* U+0128d7: */ + 0, /* U+0128d8: */ + 0, /* U+0128d9: */ + 0, /* U+0128da: */ + 0, /* U+0128db: */ + 0, /* U+0128dc: */ + 0, /* U+0128dd: */ + 0, /* U+0128de: */ + 0, /* U+0128df: */ + 0, /* U+0128e0: */ + 0, /* U+0128e1: */ + 0, /* U+0128e2: */ + 0, /* U+0128e3: */ + 0, /* U+0128e4: */ + 0, /* U+0128e5: */ + 0, /* U+0128e6: */ + 0, /* U+0128e7: */ + 0, /* U+0128e8: */ + 0, /* U+0128e9: */ + 0, /* U+0128ea: */ + 0, /* U+0128eb: */ + 0, /* U+0128ec: */ + 0, /* U+0128ed: */ + 0, /* U+0128ee: */ + 0, /* U+0128ef: */ + 0, /* U+0128f0: */ + 0, /* U+0128f1: */ + 0, /* U+0128f2: */ + 0, /* U+0128f3: */ + 0, /* U+0128f4: */ + 0, /* U+0128f5: */ + 0, /* U+0128f6: */ + 0, /* U+0128f7: */ + 0, /* U+0128f8: */ + 0, /* U+0128f9: */ + 0, /* U+0128fa: */ + 0, /* U+0128fb: */ + 0, /* U+0128fc: */ + 0, /* U+0128fd: */ + 0, /* U+0128fe: */ + 0, /* U+0128ff: */ + 0, /* U+012900: */ + 0, /* U+012901: */ + 0, /* U+012902: */ + 0, /* U+012903: */ + 0, /* U+012904: */ + 0, /* U+012905: */ + 0, /* U+012906: */ + 0, /* U+012907: */ + 0, /* U+012908: */ + 0, /* U+012909: */ + 0, /* U+01290a: */ + 0, /* U+01290b: */ + 0, /* U+01290c: */ + 0, /* U+01290d: */ + 0, /* U+01290e: */ + 0, /* U+01290f: */ + 0, /* U+012910: */ + 0, /* U+012911: */ + 0, /* U+012912: */ + 0, /* U+012913: */ + 0, /* U+012914: */ + 0, /* U+012915: */ + 0, /* U+012916: */ + 0, /* U+012917: */ + 0, /* U+012918: */ + 0, /* U+012919: */ + 0, /* U+01291a: */ + 0, /* U+01291b: */ + 0, /* U+01291c: */ + 0, /* U+01291d: */ + 0, /* U+01291e: */ + 0, /* U+01291f: */ + 0, /* U+012920: */ + 0, /* U+012921: */ + 0, /* U+012922: */ + 0, /* U+012923: */ + 0, /* U+012924: */ + 0, /* U+012925: */ + 0, /* U+012926: */ + 0, /* U+012927: */ + 0, /* U+012928: */ + 0, /* U+012929: */ + 0, /* U+01292a: */ + 0, /* U+01292b: */ + 0, /* U+01292c: */ + 0, /* U+01292d: */ + 0, /* U+01292e: */ + 0, /* U+01292f: */ + 0, /* U+012930: */ + 0, /* U+012931: */ + 0, /* U+012932: */ + 0, /* U+012933: */ + 0, /* U+012934: */ + 0, /* U+012935: */ + 0, /* U+012936: */ + 0, /* U+012937: */ + 0, /* U+012938: */ + 0, /* U+012939: */ + 0, /* U+01293a: */ + 0, /* U+01293b: */ + 0, /* U+01293c: */ + 0, /* U+01293d: */ + 0, /* U+01293e: */ + 0, /* U+01293f: */ + 0, /* U+012940: */ + 0, /* U+012941: */ + 0, /* U+012942: */ + 0, /* U+012943: */ + 0, /* U+012944: */ + 0, /* U+012945: */ + 0, /* U+012946: */ + 0, /* U+012947: */ + 0, /* U+012948: */ + 0, /* U+012949: */ + 0, /* U+01294a: */ + 0, /* U+01294b: */ + 0, /* U+01294c: */ + 0, /* U+01294d: */ + 0, /* U+01294e: */ + 0, /* U+01294f: */ + 0, /* U+012950: */ + 0, /* U+012951: */ + 0, /* U+012952: */ + 0, /* U+012953: */ + 0, /* U+012954: */ + 0, /* U+012955: */ + 0, /* U+012956: */ + 0, /* U+012957: */ + 0, /* U+012958: */ + 0, /* U+012959: */ + 0, /* U+01295a: */ + 0, /* U+01295b: */ + 0, /* U+01295c: */ + 0, /* U+01295d: */ + 0, /* U+01295e: */ + 0, /* U+01295f: */ + 0, /* U+012960: */ + 0, /* U+012961: */ + 0, /* U+012962: */ + 0, /* U+012963: */ + 0, /* U+012964: */ + 0, /* U+012965: */ + 0, /* U+012966: */ + 0, /* U+012967: */ + 0, /* U+012968: */ + 0, /* U+012969: */ + 0, /* U+01296a: */ + 0, /* U+01296b: */ + 0, /* U+01296c: */ + 0, /* U+01296d: */ + 0, /* U+01296e: */ + 0, /* U+01296f: */ + 0, /* U+012970: */ + 0, /* U+012971: */ + 0, /* U+012972: */ + 0, /* U+012973: */ + 0, /* U+012974: */ + 0, /* U+012975: */ + 0, /* U+012976: */ + 0, /* U+012977: */ + 0, /* U+012978: */ + 0, /* U+012979: */ + 0, /* U+01297a: */ + 0, /* U+01297b: */ + 0, /* U+01297c: */ + 0, /* U+01297d: */ + 0, /* U+01297e: */ + 0, /* U+01297f: */ + 0, /* U+012980: */ + 0, /* U+012981: */ + 0, /* U+012982: */ + 0, /* U+012983: */ + 0, /* U+012984: */ + 0, /* U+012985: */ + 0, /* U+012986: */ + 0, /* U+012987: */ + 0, /* U+012988: */ + 0, /* U+012989: */ + 0, /* U+01298a: */ + 0, /* U+01298b: */ + 0, /* U+01298c: */ + 0, /* U+01298d: */ + 0, /* U+01298e: */ + 0, /* U+01298f: */ + 0, /* U+012990: */ + 0, /* U+012991: */ + 0, /* U+012992: */ + 0, /* U+012993: */ + 0, /* U+012994: */ + 0, /* U+012995: */ + 0, /* U+012996: */ + 0, /* U+012997: */ + 0, /* U+012998: */ + 0, /* U+012999: */ + 0, /* U+01299a: */ + 0, /* U+01299b: */ + 0, /* U+01299c: */ + 0, /* U+01299d: */ + 0, /* U+01299e: */ + 0, /* U+01299f: */ + 0, /* U+0129a0: */ + 0, /* U+0129a1: */ + 0, /* U+0129a2: */ + 0, /* U+0129a3: */ + 0, /* U+0129a4: */ + 0, /* U+0129a5: */ + 0, /* U+0129a6: */ + 0, /* U+0129a7: */ + 0, /* U+0129a8: */ + 0, /* U+0129a9: */ + 0, /* U+0129aa: */ + 0, /* U+0129ab: */ + 0, /* U+0129ac: */ + 0, /* U+0129ad: */ + 0, /* U+0129ae: */ + 0, /* U+0129af: */ + 0, /* U+0129b0: */ + 0, /* U+0129b1: */ + 0, /* U+0129b2: */ + 0, /* U+0129b3: */ + 0, /* U+0129b4: */ + 0, /* U+0129b5: */ + 0, /* U+0129b6: */ + 0, /* U+0129b7: */ + 0, /* U+0129b8: */ + 0, /* U+0129b9: */ + 0, /* U+0129ba: */ + 0, /* U+0129bb: */ + 0, /* U+0129bc: */ + 0, /* U+0129bd: */ + 0, /* U+0129be: */ + 0, /* U+0129bf: */ + 0, /* U+0129c0: */ + 0, /* U+0129c1: */ + 0, /* U+0129c2: */ + 0, /* U+0129c3: */ + 0, /* U+0129c4: */ + 0, /* U+0129c5: */ + 0, /* U+0129c6: */ + 0, /* U+0129c7: */ + 0, /* U+0129c8: */ + 0, /* U+0129c9: */ + 0, /* U+0129ca: */ + 0, /* U+0129cb: */ + 0, /* U+0129cc: */ + 0, /* U+0129cd: */ + 0, /* U+0129ce: */ + 0, /* U+0129cf: */ + 0, /* U+0129d0: */ + 0, /* U+0129d1: */ + 0, /* U+0129d2: */ + 0, /* U+0129d3: */ + 0, /* U+0129d4: */ + 0, /* U+0129d5: */ + 0, /* U+0129d6: */ + 0, /* U+0129d7: */ + 0, /* U+0129d8: */ + 0, /* U+0129d9: */ + 0, /* U+0129da: */ + 0, /* U+0129db: */ + 0, /* U+0129dc: */ + 0, /* U+0129dd: */ + 0, /* U+0129de: */ + 0, /* U+0129df: */ + 0, /* U+0129e0: */ + 0, /* U+0129e1: */ + 0, /* U+0129e2: */ + 0, /* U+0129e3: */ + 0, /* U+0129e4: */ + 0, /* U+0129e5: */ + 0, /* U+0129e6: */ + 0, /* U+0129e7: */ + 0, /* U+0129e8: */ + 0, /* U+0129e9: */ + 0, /* U+0129ea: */ + 0, /* U+0129eb: */ + 0, /* U+0129ec: */ + 0, /* U+0129ed: */ + 0, /* U+0129ee: */ + 0, /* U+0129ef: */ + 0, /* U+0129f0: */ + 0, /* U+0129f1: */ + 0, /* U+0129f2: */ + 0, /* U+0129f3: */ + 0, /* U+0129f4: */ + 0, /* U+0129f5: */ + 0, /* U+0129f6: */ + 0, /* U+0129f7: */ + 0, /* U+0129f8: */ + 0, /* U+0129f9: */ + 0, /* U+0129fa: */ + 0, /* U+0129fb: */ + 0, /* U+0129fc: */ + 0, /* U+0129fd: */ + 0, /* U+0129fe: */ + 0, /* U+0129ff: */ + 0, /* U+012a00: */ + 0, /* U+012a01: */ + 0, /* U+012a02: */ + 0, /* U+012a03: */ + 0, /* U+012a04: */ + 0, /* U+012a05: */ + 0, /* U+012a06: */ + 0, /* U+012a07: */ + 0, /* U+012a08: */ + 0, /* U+012a09: */ + 0, /* U+012a0a: */ + 0, /* U+012a0b: */ + 0, /* U+012a0c: */ + 0, /* U+012a0d: */ + 0, /* U+012a0e: */ + 0, /* U+012a0f: */ + 0, /* U+012a10: */ + 0, /* U+012a11: */ + 0, /* U+012a12: */ + 0, /* U+012a13: */ + 0, /* U+012a14: */ + 0, /* U+012a15: */ + 0, /* U+012a16: */ + 0, /* U+012a17: */ + 0, /* U+012a18: */ + 0, /* U+012a19: */ + 0, /* U+012a1a: */ + 0, /* U+012a1b: */ + 0, /* U+012a1c: */ + 0, /* U+012a1d: */ + 0, /* U+012a1e: */ + 0, /* U+012a1f: */ + 0, /* U+012a20: */ + 0, /* U+012a21: */ + 0, /* U+012a22: */ + 0, /* U+012a23: */ + 0, /* U+012a24: */ + 0, /* U+012a25: */ + 0, /* U+012a26: */ + 0, /* U+012a27: */ + 0, /* U+012a28: */ + 0, /* U+012a29: */ + 0, /* U+012a2a: */ + 0, /* U+012a2b: */ + 0, /* U+012a2c: */ + 0, /* U+012a2d: */ + 0, /* U+012a2e: */ + 0, /* U+012a2f: */ + 0, /* U+012a30: */ + 0, /* U+012a31: */ + 0, /* U+012a32: */ + 0, /* U+012a33: */ + 0, /* U+012a34: */ + 0, /* U+012a35: */ + 0, /* U+012a36: */ + 0, /* U+012a37: */ + 0, /* U+012a38: */ + 0, /* U+012a39: */ + 0, /* U+012a3a: */ + 0, /* U+012a3b: */ + 0, /* U+012a3c: */ + 0, /* U+012a3d: */ + 0, /* U+012a3e: */ + 0, /* U+012a3f: */ + 0, /* U+012a40: */ + 0, /* U+012a41: */ + 0, /* U+012a42: */ + 0, /* U+012a43: */ + 0, /* U+012a44: */ + 0, /* U+012a45: */ + 0, /* U+012a46: */ + 0, /* U+012a47: */ + 0, /* U+012a48: */ + 0, /* U+012a49: */ + 0, /* U+012a4a: */ + 0, /* U+012a4b: */ + 0, /* U+012a4c: */ + 0, /* U+012a4d: */ + 0, /* U+012a4e: */ + 0, /* U+012a4f: */ + 0, /* U+012a50: */ + 0, /* U+012a51: */ + 0, /* U+012a52: */ + 0, /* U+012a53: */ + 0, /* U+012a54: */ + 0, /* U+012a55: */ + 0, /* U+012a56: */ + 0, /* U+012a57: */ + 0, /* U+012a58: */ + 0, /* U+012a59: */ + 0, /* U+012a5a: */ + 0, /* U+012a5b: */ + 0, /* U+012a5c: */ + 0, /* U+012a5d: */ + 0, /* U+012a5e: */ + 0, /* U+012a5f: */ + 0, /* U+012a60: */ + 0, /* U+012a61: */ + 0, /* U+012a62: */ + 0, /* U+012a63: */ + 0, /* U+012a64: */ + 0, /* U+012a65: */ + 0, /* U+012a66: */ + 0, /* U+012a67: */ + 0, /* U+012a68: */ + 0, /* U+012a69: */ + 0, /* U+012a6a: */ + 0, /* U+012a6b: */ + 0, /* U+012a6c: */ + 0, /* U+012a6d: */ + 0, /* U+012a6e: */ + 0, /* U+012a6f: */ + 0, /* U+012a70: */ + 0, /* U+012a71: */ + 0, /* U+012a72: */ + 0, /* U+012a73: */ + 0, /* U+012a74: */ + 0, /* U+012a75: */ + 0, /* U+012a76: */ + 0, /* U+012a77: */ + 0, /* U+012a78: */ + 0, /* U+012a79: */ + 0, /* U+012a7a: */ + 0, /* U+012a7b: */ + 0, /* U+012a7c: */ + 0, /* U+012a7d: */ + 0, /* U+012a7e: */ + 0, /* U+012a7f: */ + 0, /* U+012a80: */ + 0, /* U+012a81: */ + 0, /* U+012a82: */ + 0, /* U+012a83: */ + 0, /* U+012a84: */ + 0, /* U+012a85: */ + 0, /* U+012a86: */ + 0, /* U+012a87: */ + 0, /* U+012a88: */ + 0, /* U+012a89: */ + 0, /* U+012a8a: */ + 0, /* U+012a8b: */ + 0, /* U+012a8c: */ + 0, /* U+012a8d: */ + 0, /* U+012a8e: */ + 0, /* U+012a8f: */ + 0, /* U+012a90: */ + 0, /* U+012a91: */ + 0, /* U+012a92: */ + 0, /* U+012a93: */ + 0, /* U+012a94: */ + 0, /* U+012a95: */ + 0, /* U+012a96: */ + 0, /* U+012a97: */ + 0, /* U+012a98: */ + 0, /* U+012a99: */ + 0, /* U+012a9a: */ + 0, /* U+012a9b: */ + 0, /* U+012a9c: */ + 0, /* U+012a9d: */ + 0, /* U+012a9e: */ + 0, /* U+012a9f: */ + 0, /* U+012aa0: */ + 0, /* U+012aa1: */ + 0, /* U+012aa2: */ + 0, /* U+012aa3: */ + 0, /* U+012aa4: */ + 0, /* U+012aa5: */ + 0, /* U+012aa6: */ + 0, /* U+012aa7: */ + 0, /* U+012aa8: */ + 0, /* U+012aa9: */ + 0, /* U+012aaa: */ + 0, /* U+012aab: */ + 0, /* U+012aac: */ + 0, /* U+012aad: */ + 0, /* U+012aae: */ + 0, /* U+012aaf: */ + 0, /* U+012ab0: */ + 0, /* U+012ab1: */ + 0, /* U+012ab2: */ + 0, /* U+012ab3: */ + 0, /* U+012ab4: */ + 0, /* U+012ab5: */ + 0, /* U+012ab6: */ + 0, /* U+012ab7: */ + 0, /* U+012ab8: */ + 0, /* U+012ab9: */ + 0, /* U+012aba: */ + 0, /* U+012abb: */ + 0, /* U+012abc: */ + 0, /* U+012abd: */ + 0, /* U+012abe: */ + 0, /* U+012abf: */ + 0, /* U+012ac0: */ + 0, /* U+012ac1: */ + 0, /* U+012ac2: */ + 0, /* U+012ac3: */ + 0, /* U+012ac4: */ + 0, /* U+012ac5: */ + 0, /* U+012ac6: */ + 0, /* U+012ac7: */ + 0, /* U+012ac8: */ + 0, /* U+012ac9: */ + 0, /* U+012aca: */ + 0, /* U+012acb: */ + 0, /* U+012acc: */ + 0, /* U+012acd: */ + 0, /* U+012ace: */ + 0, /* U+012acf: */ + 0, /* U+012ad0: */ + 0, /* U+012ad1: */ + 0, /* U+012ad2: */ + 0, /* U+012ad3: */ + 0, /* U+012ad4: */ + 0, /* U+012ad5: */ + 0, /* U+012ad6: */ + 0, /* U+012ad7: */ + 0, /* U+012ad8: */ + 0, /* U+012ad9: */ + 0, /* U+012ada: */ + 0, /* U+012adb: */ + 0, /* U+012adc: */ + 0, /* U+012add: */ + 0, /* U+012ade: */ + 0, /* U+012adf: */ + 0, /* U+012ae0: */ + 0, /* U+012ae1: */ + 0, /* U+012ae2: */ + 0, /* U+012ae3: */ + 0, /* U+012ae4: */ + 0, /* U+012ae5: */ + 0, /* U+012ae6: */ + 0, /* U+012ae7: */ + 0, /* U+012ae8: */ + 0, /* U+012ae9: */ + 0, /* U+012aea: */ + 0, /* U+012aeb: */ + 0, /* U+012aec: */ + 0, /* U+012aed: */ + 0, /* U+012aee: */ + 0, /* U+012aef: */ + 0, /* U+012af0: */ + 0, /* U+012af1: */ + 0, /* U+012af2: */ + 0, /* U+012af3: */ + 0, /* U+012af4: */ + 0, /* U+012af5: */ + 0, /* U+012af6: */ + 0, /* U+012af7: */ + 0, /* U+012af8: */ + 0, /* U+012af9: */ + 0, /* U+012afa: */ + 0, /* U+012afb: */ + 0, /* U+012afc: */ + 0, /* U+012afd: */ + 0, /* U+012afe: */ + 0, /* U+012aff: */ + 0, /* U+012b00: */ + 0, /* U+012b01: */ + 0, /* U+012b02: */ + 0, /* U+012b03: */ + 0, /* U+012b04: */ + 0, /* U+012b05: */ + 0, /* U+012b06: */ + 0, /* U+012b07: */ + 0, /* U+012b08: */ + 0, /* U+012b09: */ + 0, /* U+012b0a: */ + 0, /* U+012b0b: */ + 0, /* U+012b0c: */ + 0, /* U+012b0d: */ + 0, /* U+012b0e: */ + 0, /* U+012b0f: */ + 0, /* U+012b10: */ + 0, /* U+012b11: */ + 0, /* U+012b12: */ + 0, /* U+012b13: */ + 0, /* U+012b14: */ + 0, /* U+012b15: */ + 0, /* U+012b16: */ + 0, /* U+012b17: */ + 0, /* U+012b18: */ + 0, /* U+012b19: */ + 0, /* U+012b1a: */ + 0, /* U+012b1b: */ + 0, /* U+012b1c: */ + 0, /* U+012b1d: */ + 0, /* U+012b1e: */ + 0, /* U+012b1f: */ + 0, /* U+012b20: */ + 0, /* U+012b21: */ + 0, /* U+012b22: */ + 0, /* U+012b23: */ + 0, /* U+012b24: */ + 0, /* U+012b25: */ + 0, /* U+012b26: */ + 0, /* U+012b27: */ + 0, /* U+012b28: */ + 0, /* U+012b29: */ + 0, /* U+012b2a: */ + 0, /* U+012b2b: */ + 0, /* U+012b2c: */ + 0, /* U+012b2d: */ + 0, /* U+012b2e: */ + 0, /* U+012b2f: */ + 0, /* U+012b30: */ + 0, /* U+012b31: */ + 0, /* U+012b32: */ + 0, /* U+012b33: */ + 0, /* U+012b34: */ + 0, /* U+012b35: */ + 0, /* U+012b36: */ + 0, /* U+012b37: */ + 0, /* U+012b38: */ + 0, /* U+012b39: */ + 0, /* U+012b3a: */ + 0, /* U+012b3b: */ + 0, /* U+012b3c: */ + 0, /* U+012b3d: */ + 0, /* U+012b3e: */ + 0, /* U+012b3f: */ + 0, /* U+012b40: */ + 0, /* U+012b41: */ + 0, /* U+012b42: */ + 0, /* U+012b43: */ + 0, /* U+012b44: */ + 0, /* U+012b45: */ + 0, /* U+012b46: */ + 0, /* U+012b47: */ + 0, /* U+012b48: */ + 0, /* U+012b49: */ + 0, /* U+012b4a: */ + 0, /* U+012b4b: */ + 0, /* U+012b4c: */ + 0, /* U+012b4d: */ + 0, /* U+012b4e: */ + 0, /* U+012b4f: */ + 0, /* U+012b50: */ + 0, /* U+012b51: */ + 0, /* U+012b52: */ + 0, /* U+012b53: */ + 0, /* U+012b54: */ + 0, /* U+012b55: */ + 0, /* U+012b56: */ + 0, /* U+012b57: */ + 0, /* U+012b58: */ + 0, /* U+012b59: */ + 0, /* U+012b5a: */ + 0, /* U+012b5b: */ + 0, /* U+012b5c: */ + 0, /* U+012b5d: */ + 0, /* U+012b5e: */ + 0, /* U+012b5f: */ + 0, /* U+012b60: */ + 0, /* U+012b61: */ + 0, /* U+012b62: */ + 0, /* U+012b63: */ + 0, /* U+012b64: */ + 0, /* U+012b65: */ + 0, /* U+012b66: */ + 0, /* U+012b67: */ + 0, /* U+012b68: */ + 0, /* U+012b69: */ + 0, /* U+012b6a: */ + 0, /* U+012b6b: */ + 0, /* U+012b6c: */ + 0, /* U+012b6d: */ + 0, /* U+012b6e: */ + 0, /* U+012b6f: */ + 0, /* U+012b70: */ + 0, /* U+012b71: */ + 0, /* U+012b72: */ + 0, /* U+012b73: */ + 0, /* U+012b74: */ + 0, /* U+012b75: */ + 0, /* U+012b76: */ + 0, /* U+012b77: */ + 0, /* U+012b78: */ + 0, /* U+012b79: */ + 0, /* U+012b7a: */ + 0, /* U+012b7b: */ + 0, /* U+012b7c: */ + 0, /* U+012b7d: */ + 0, /* U+012b7e: */ + 0, /* U+012b7f: */ + 0, /* U+012b80: */ + 0, /* U+012b81: */ + 0, /* U+012b82: */ + 0, /* U+012b83: */ + 0, /* U+012b84: */ + 0, /* U+012b85: */ + 0, /* U+012b86: */ + 0, /* U+012b87: */ + 0, /* U+012b88: */ + 0, /* U+012b89: */ + 0, /* U+012b8a: */ + 0, /* U+012b8b: */ + 0, /* U+012b8c: */ + 0, /* U+012b8d: */ + 0, /* U+012b8e: */ + 0, /* U+012b8f: */ + 0, /* U+012b90: */ + 0, /* U+012b91: */ + 0, /* U+012b92: */ + 0, /* U+012b93: */ + 0, /* U+012b94: */ + 0, /* U+012b95: */ + 0, /* U+012b96: */ + 0, /* U+012b97: */ + 0, /* U+012b98: */ + 0, /* U+012b99: */ + 0, /* U+012b9a: */ + 0, /* U+012b9b: */ + 0, /* U+012b9c: */ + 0, /* U+012b9d: */ + 0, /* U+012b9e: */ + 0, /* U+012b9f: */ + 0, /* U+012ba0: */ + 0, /* U+012ba1: */ + 0, /* U+012ba2: */ + 0, /* U+012ba3: */ + 0, /* U+012ba4: */ + 0, /* U+012ba5: */ + 0, /* U+012ba6: */ + 0, /* U+012ba7: */ + 0, /* U+012ba8: */ + 0, /* U+012ba9: */ + 0, /* U+012baa: */ + 0, /* U+012bab: */ + 0, /* U+012bac: */ + 0, /* U+012bad: */ + 0, /* U+012bae: */ + 0, /* U+012baf: */ + 0, /* U+012bb0: */ + 0, /* U+012bb1: */ + 0, /* U+012bb2: */ + 0, /* U+012bb3: */ + 0, /* U+012bb4: */ + 0, /* U+012bb5: */ + 0, /* U+012bb6: */ + 0, /* U+012bb7: */ + 0, /* U+012bb8: */ + 0, /* U+012bb9: */ + 0, /* U+012bba: */ + 0, /* U+012bbb: */ + 0, /* U+012bbc: */ + 0, /* U+012bbd: */ + 0, /* U+012bbe: */ + 0, /* U+012bbf: */ + 0, /* U+012bc0: */ + 0, /* U+012bc1: */ + 0, /* U+012bc2: */ + 0, /* U+012bc3: */ + 0, /* U+012bc4: */ + 0, /* U+012bc5: */ + 0, /* U+012bc6: */ + 0, /* U+012bc7: */ + 0, /* U+012bc8: */ + 0, /* U+012bc9: */ + 0, /* U+012bca: */ + 0, /* U+012bcb: */ + 0, /* U+012bcc: */ + 0, /* U+012bcd: */ + 0, /* U+012bce: */ + 0, /* U+012bcf: */ + 0, /* U+012bd0: */ + 0, /* U+012bd1: */ + 0, /* U+012bd2: */ + 0, /* U+012bd3: */ + 0, /* U+012bd4: */ + 0, /* U+012bd5: */ + 0, /* U+012bd6: */ + 0, /* U+012bd7: */ + 0, /* U+012bd8: */ + 0, /* U+012bd9: */ + 0, /* U+012bda: */ + 0, /* U+012bdb: */ + 0, /* U+012bdc: */ + 0, /* U+012bdd: */ + 0, /* U+012bde: */ + 0, /* U+012bdf: */ + 0, /* U+012be0: */ + 0, /* U+012be1: */ + 0, /* U+012be2: */ + 0, /* U+012be3: */ + 0, /* U+012be4: */ + 0, /* U+012be5: */ + 0, /* U+012be6: */ + 0, /* U+012be7: */ + 0, /* U+012be8: */ + 0, /* U+012be9: */ + 0, /* U+012bea: */ + 0, /* U+012beb: */ + 0, /* U+012bec: */ + 0, /* U+012bed: */ + 0, /* U+012bee: */ + 0, /* U+012bef: */ + 0, /* U+012bf0: */ + 0, /* U+012bf1: */ + 0, /* U+012bf2: */ + 0, /* U+012bf3: */ + 0, /* U+012bf4: */ + 0, /* U+012bf5: */ + 0, /* U+012bf6: */ + 0, /* U+012bf7: */ + 0, /* U+012bf8: */ + 0, /* U+012bf9: */ + 0, /* U+012bfa: */ + 0, /* U+012bfb: */ + 0, /* U+012bfc: */ + 0, /* U+012bfd: */ + 0, /* U+012bfe: */ + 0, /* U+012bff: */ + 0, /* U+012c00: */ + 0, /* U+012c01: */ + 0, /* U+012c02: */ + 0, /* U+012c03: */ + 0, /* U+012c04: */ + 0, /* U+012c05: */ + 0, /* U+012c06: */ + 0, /* U+012c07: */ + 0, /* U+012c08: */ + 0, /* U+012c09: */ + 0, /* U+012c0a: */ + 0, /* U+012c0b: */ + 0, /* U+012c0c: */ + 0, /* U+012c0d: */ + 0, /* U+012c0e: */ + 0, /* U+012c0f: */ + 0, /* U+012c10: */ + 0, /* U+012c11: */ + 0, /* U+012c12: */ + 0, /* U+012c13: */ + 0, /* U+012c14: */ + 0, /* U+012c15: */ + 0, /* U+012c16: */ + 0, /* U+012c17: */ + 0, /* U+012c18: */ + 0, /* U+012c19: */ + 0, /* U+012c1a: */ + 0, /* U+012c1b: */ + 0, /* U+012c1c: */ + 0, /* U+012c1d: */ + 0, /* U+012c1e: */ + 0, /* U+012c1f: */ + 0, /* U+012c20: */ + 0, /* U+012c21: */ + 0, /* U+012c22: */ + 0, /* U+012c23: */ + 0, /* U+012c24: */ + 0, /* U+012c25: */ + 0, /* U+012c26: */ + 0, /* U+012c27: */ + 0, /* U+012c28: */ + 0, /* U+012c29: */ + 0, /* U+012c2a: */ + 0, /* U+012c2b: */ + 0, /* U+012c2c: */ + 0, /* U+012c2d: */ + 0, /* U+012c2e: */ + 0, /* U+012c2f: */ + 0, /* U+012c30: */ + 0, /* U+012c31: */ + 0, /* U+012c32: */ + 0, /* U+012c33: */ + 0, /* U+012c34: */ + 0, /* U+012c35: */ + 0, /* U+012c36: */ + 0, /* U+012c37: */ + 0, /* U+012c38: */ + 0, /* U+012c39: */ + 0, /* U+012c3a: */ + 0, /* U+012c3b: */ + 0, /* U+012c3c: */ + 0, /* U+012c3d: */ + 0, /* U+012c3e: */ + 0, /* U+012c3f: */ + 0, /* U+012c40: */ + 0, /* U+012c41: */ + 0, /* U+012c42: */ + 0, /* U+012c43: */ + 0, /* U+012c44: */ + 0, /* U+012c45: */ + 0, /* U+012c46: */ + 0, /* U+012c47: */ + 0, /* U+012c48: */ + 0, /* U+012c49: */ + 0, /* U+012c4a: */ + 0, /* U+012c4b: */ + 0, /* U+012c4c: */ + 0, /* U+012c4d: */ + 0, /* U+012c4e: */ + 0, /* U+012c4f: */ + 0, /* U+012c50: */ + 0, /* U+012c51: */ + 0, /* U+012c52: */ + 0, /* U+012c53: */ + 0, /* U+012c54: */ + 0, /* U+012c55: */ + 0, /* U+012c56: */ + 0, /* U+012c57: */ + 0, /* U+012c58: */ + 0, /* U+012c59: */ + 0, /* U+012c5a: */ + 0, /* U+012c5b: */ + 0, /* U+012c5c: */ + 0, /* U+012c5d: */ + 0, /* U+012c5e: */ + 0, /* U+012c5f: */ + 0, /* U+012c60: */ + 0, /* U+012c61: */ + 0, /* U+012c62: */ + 0, /* U+012c63: */ + 0, /* U+012c64: */ + 0, /* U+012c65: */ + 0, /* U+012c66: */ + 0, /* U+012c67: */ + 0, /* U+012c68: */ + 0, /* U+012c69: */ + 0, /* U+012c6a: */ + 0, /* U+012c6b: */ + 0, /* U+012c6c: */ + 0, /* U+012c6d: */ + 0, /* U+012c6e: */ + 0, /* U+012c6f: */ + 0, /* U+012c70: */ + 0, /* U+012c71: */ + 0, /* U+012c72: */ + 0, /* U+012c73: */ + 0, /* U+012c74: */ + 0, /* U+012c75: */ + 0, /* U+012c76: */ + 0, /* U+012c77: */ + 0, /* U+012c78: */ + 0, /* U+012c79: */ + 0, /* U+012c7a: */ + 0, /* U+012c7b: */ + 0, /* U+012c7c: */ + 0, /* U+012c7d: */ + 0, /* U+012c7e: */ + 0, /* U+012c7f: */ + 0, /* U+012c80: */ + 0, /* U+012c81: */ + 0, /* U+012c82: */ + 0, /* U+012c83: */ + 0, /* U+012c84: */ + 0, /* U+012c85: */ + 0, /* U+012c86: */ + 0, /* U+012c87: */ + 0, /* U+012c88: */ + 0, /* U+012c89: */ + 0, /* U+012c8a: */ + 0, /* U+012c8b: */ + 0, /* U+012c8c: */ + 0, /* U+012c8d: */ + 0, /* U+012c8e: */ + 0, /* U+012c8f: */ + 0, /* U+012c90: */ + 0, /* U+012c91: */ + 0, /* U+012c92: */ + 0, /* U+012c93: */ + 0, /* U+012c94: */ + 0, /* U+012c95: */ + 0, /* U+012c96: */ + 0, /* U+012c97: */ + 0, /* U+012c98: */ + 0, /* U+012c99: */ + 0, /* U+012c9a: */ + 0, /* U+012c9b: */ + 0, /* U+012c9c: */ + 0, /* U+012c9d: */ + 0, /* U+012c9e: */ + 0, /* U+012c9f: */ + 0, /* U+012ca0: */ + 0, /* U+012ca1: */ + 0, /* U+012ca2: */ + 0, /* U+012ca3: */ + 0, /* U+012ca4: */ + 0, /* U+012ca5: */ + 0, /* U+012ca6: */ + 0, /* U+012ca7: */ + 0, /* U+012ca8: */ + 0, /* U+012ca9: */ + 0, /* U+012caa: */ + 0, /* U+012cab: */ + 0, /* U+012cac: */ + 0, /* U+012cad: */ + 0, /* U+012cae: */ + 0, /* U+012caf: */ + 0, /* U+012cb0: */ + 0, /* U+012cb1: */ + 0, /* U+012cb2: */ + 0, /* U+012cb3: */ + 0, /* U+012cb4: */ + 0, /* U+012cb5: */ + 0, /* U+012cb6: */ + 0, /* U+012cb7: */ + 0, /* U+012cb8: */ + 0, /* U+012cb9: */ + 0, /* U+012cba: */ + 0, /* U+012cbb: */ + 0, /* U+012cbc: */ + 0, /* U+012cbd: */ + 0, /* U+012cbe: */ + 0, /* U+012cbf: */ + 0, /* U+012cc0: */ + 0, /* U+012cc1: */ + 0, /* U+012cc2: */ + 0, /* U+012cc3: */ + 0, /* U+012cc4: */ + 0, /* U+012cc5: */ + 0, /* U+012cc6: */ + 0, /* U+012cc7: */ + 0, /* U+012cc8: */ + 0, /* U+012cc9: */ + 0, /* U+012cca: */ + 0, /* U+012ccb: */ + 0, /* U+012ccc: */ + 0, /* U+012ccd: */ + 0, /* U+012cce: */ + 0, /* U+012ccf: */ + 0, /* U+012cd0: */ + 0, /* U+012cd1: */ + 0, /* U+012cd2: */ + 0, /* U+012cd3: */ + 0, /* U+012cd4: */ + 0, /* U+012cd5: */ + 0, /* U+012cd6: */ + 0, /* U+012cd7: */ + 0, /* U+012cd8: */ + 0, /* U+012cd9: */ + 0, /* U+012cda: */ + 0, /* U+012cdb: */ + 0, /* U+012cdc: */ + 0, /* U+012cdd: */ + 0, /* U+012cde: */ + 0, /* U+012cdf: */ + 0, /* U+012ce0: */ + 0, /* U+012ce1: */ + 0, /* U+012ce2: */ + 0, /* U+012ce3: */ + 0, /* U+012ce4: */ + 0, /* U+012ce5: */ + 0, /* U+012ce6: */ + 0, /* U+012ce7: */ + 0, /* U+012ce8: */ + 0, /* U+012ce9: */ + 0, /* U+012cea: */ + 0, /* U+012ceb: */ + 0, /* U+012cec: */ + 0, /* U+012ced: */ + 0, /* U+012cee: */ + 0, /* U+012cef: */ + 0, /* U+012cf0: */ + 0, /* U+012cf1: */ + 0, /* U+012cf2: */ + 0, /* U+012cf3: */ + 0, /* U+012cf4: */ + 0, /* U+012cf5: */ + 0, /* U+012cf6: */ + 0, /* U+012cf7: */ + 0, /* U+012cf8: */ + 0, /* U+012cf9: */ + 0, /* U+012cfa: */ + 0, /* U+012cfb: */ + 0, /* U+012cfc: */ + 0, /* U+012cfd: */ + 0, /* U+012cfe: */ + 0, /* U+012cff: */ + 0, /* U+012d00: */ + 0, /* U+012d01: */ + 0, /* U+012d02: */ + 0, /* U+012d03: */ + 0, /* U+012d04: */ + 0, /* U+012d05: */ + 0, /* U+012d06: */ + 0, /* U+012d07: */ + 0, /* U+012d08: */ + 0, /* U+012d09: */ + 0, /* U+012d0a: */ + 0, /* U+012d0b: */ + 0, /* U+012d0c: */ + 0, /* U+012d0d: */ + 0, /* U+012d0e: */ + 0, /* U+012d0f: */ + 0, /* U+012d10: */ + 0, /* U+012d11: */ + 0, /* U+012d12: */ + 0, /* U+012d13: */ + 0, /* U+012d14: */ + 0, /* U+012d15: */ + 0, /* U+012d16: */ + 0, /* U+012d17: */ + 0, /* U+012d18: */ + 0, /* U+012d19: */ + 0, /* U+012d1a: */ + 0, /* U+012d1b: */ + 0, /* U+012d1c: */ + 0, /* U+012d1d: */ + 0, /* U+012d1e: */ + 0, /* U+012d1f: */ + 0, /* U+012d20: */ + 0, /* U+012d21: */ + 0, /* U+012d22: */ + 0, /* U+012d23: */ + 0, /* U+012d24: */ + 0, /* U+012d25: */ + 0, /* U+012d26: */ + 0, /* U+012d27: */ + 0, /* U+012d28: */ + 0, /* U+012d29: */ + 0, /* U+012d2a: */ + 0, /* U+012d2b: */ + 0, /* U+012d2c: */ + 0, /* U+012d2d: */ + 0, /* U+012d2e: */ + 0, /* U+012d2f: */ + 0, /* U+012d30: */ + 0, /* U+012d31: */ + 0, /* U+012d32: */ + 0, /* U+012d33: */ + 0, /* U+012d34: */ + 0, /* U+012d35: */ + 0, /* U+012d36: */ + 0, /* U+012d37: */ + 0, /* U+012d38: */ + 0, /* U+012d39: */ + 0, /* U+012d3a: */ + 0, /* U+012d3b: */ + 0, /* U+012d3c: */ + 0, /* U+012d3d: */ + 0, /* U+012d3e: */ + 0, /* U+012d3f: */ + 0, /* U+012d40: */ + 0, /* U+012d41: */ + 0, /* U+012d42: */ + 0, /* U+012d43: */ + 0, /* U+012d44: */ + 0, /* U+012d45: */ + 0, /* U+012d46: */ + 0, /* U+012d47: */ + 0, /* U+012d48: */ + 0, /* U+012d49: */ + 0, /* U+012d4a: */ + 0, /* U+012d4b: */ + 0, /* U+012d4c: */ + 0, /* U+012d4d: */ + 0, /* U+012d4e: */ + 0, /* U+012d4f: */ + 0, /* U+012d50: */ + 0, /* U+012d51: */ + 0, /* U+012d52: */ + 0, /* U+012d53: */ + 0, /* U+012d54: */ + 0, /* U+012d55: */ + 0, /* U+012d56: */ + 0, /* U+012d57: */ + 0, /* U+012d58: */ + 0, /* U+012d59: */ + 0, /* U+012d5a: */ + 0, /* U+012d5b: */ + 0, /* U+012d5c: */ + 0, /* U+012d5d: */ + 0, /* U+012d5e: */ + 0, /* U+012d5f: */ + 0, /* U+012d60: */ + 0, /* U+012d61: */ + 0, /* U+012d62: */ + 0, /* U+012d63: */ + 0, /* U+012d64: */ + 0, /* U+012d65: */ + 0, /* U+012d66: */ + 0, /* U+012d67: */ + 0, /* U+012d68: */ + 0, /* U+012d69: */ + 0, /* U+012d6a: */ + 0, /* U+012d6b: */ + 0, /* U+012d6c: */ + 0, /* U+012d6d: */ + 0, /* U+012d6e: */ + 0, /* U+012d6f: */ + 0, /* U+012d70: */ + 0, /* U+012d71: */ + 0, /* U+012d72: */ + 0, /* U+012d73: */ + 0, /* U+012d74: */ + 0, /* U+012d75: */ + 0, /* U+012d76: */ + 0, /* U+012d77: */ + 0, /* U+012d78: */ + 0, /* U+012d79: */ + 0, /* U+012d7a: */ + 0, /* U+012d7b: */ + 0, /* U+012d7c: */ + 0, /* U+012d7d: */ + 0, /* U+012d7e: */ + 0, /* U+012d7f: */ + 0, /* U+012d80: */ + 0, /* U+012d81: */ + 0, /* U+012d82: */ + 0, /* U+012d83: */ + 0, /* U+012d84: */ + 0, /* U+012d85: */ + 0, /* U+012d86: */ + 0, /* U+012d87: */ + 0, /* U+012d88: */ + 0, /* U+012d89: */ + 0, /* U+012d8a: */ + 0, /* U+012d8b: */ + 0, /* U+012d8c: */ + 0, /* U+012d8d: */ + 0, /* U+012d8e: */ + 0, /* U+012d8f: */ + 0, /* U+012d90: */ + 0, /* U+012d91: */ + 0, /* U+012d92: */ + 0, /* U+012d93: */ + 0, /* U+012d94: */ + 0, /* U+012d95: */ + 0, /* U+012d96: */ + 0, /* U+012d97: */ + 0, /* U+012d98: */ + 0, /* U+012d99: */ + 0, /* U+012d9a: */ + 0, /* U+012d9b: */ + 0, /* U+012d9c: */ + 0, /* U+012d9d: */ + 0, /* U+012d9e: */ + 0, /* U+012d9f: */ + 0, /* U+012da0: */ + 0, /* U+012da1: */ + 0, /* U+012da2: */ + 0, /* U+012da3: */ + 0, /* U+012da4: */ + 0, /* U+012da5: */ + 0, /* U+012da6: */ + 0, /* U+012da7: */ + 0, /* U+012da8: */ + 0, /* U+012da9: */ + 0, /* U+012daa: */ + 0, /* U+012dab: */ + 0, /* U+012dac: */ + 0, /* U+012dad: */ + 0, /* U+012dae: */ + 0, /* U+012daf: */ + 0, /* U+012db0: */ + 0, /* U+012db1: */ + 0, /* U+012db2: */ + 0, /* U+012db3: */ + 0, /* U+012db4: */ + 0, /* U+012db5: */ + 0, /* U+012db6: */ + 0, /* U+012db7: */ + 0, /* U+012db8: */ + 0, /* U+012db9: */ + 0, /* U+012dba: */ + 0, /* U+012dbb: */ + 0, /* U+012dbc: */ + 0, /* U+012dbd: */ + 0, /* U+012dbe: */ + 0, /* U+012dbf: */ + 0, /* U+012dc0: */ + 0, /* U+012dc1: */ + 0, /* U+012dc2: */ + 0, /* U+012dc3: */ + 0, /* U+012dc4: */ + 0, /* U+012dc5: */ + 0, /* U+012dc6: */ + 0, /* U+012dc7: */ + 0, /* U+012dc8: */ + 0, /* U+012dc9: */ + 0, /* U+012dca: */ + 0, /* U+012dcb: */ + 0, /* U+012dcc: */ + 0, /* U+012dcd: */ + 0, /* U+012dce: */ + 0, /* U+012dcf: */ + 0, /* U+012dd0: */ + 0, /* U+012dd1: */ + 0, /* U+012dd2: */ + 0, /* U+012dd3: */ + 0, /* U+012dd4: */ + 0, /* U+012dd5: */ + 0, /* U+012dd6: */ + 0, /* U+012dd7: */ + 0, /* U+012dd8: */ + 0, /* U+012dd9: */ + 0, /* U+012dda: */ + 0, /* U+012ddb: */ + 0, /* U+012ddc: */ + 0, /* U+012ddd: */ + 0, /* U+012dde: */ + 0, /* U+012ddf: */ + 0, /* U+012de0: */ + 0, /* U+012de1: */ + 0, /* U+012de2: */ + 0, /* U+012de3: */ + 0, /* U+012de4: */ + 0, /* U+012de5: */ + 0, /* U+012de6: */ + 0, /* U+012de7: */ + 0, /* U+012de8: */ + 0, /* U+012de9: */ + 0, /* U+012dea: */ + 0, /* U+012deb: */ + 0, /* U+012dec: */ + 0, /* U+012ded: */ + 0, /* U+012dee: */ + 0, /* U+012def: */ + 0, /* U+012df0: */ + 0, /* U+012df1: */ + 0, /* U+012df2: */ + 0, /* U+012df3: */ + 0, /* U+012df4: */ + 0, /* U+012df5: */ + 0, /* U+012df6: */ + 0, /* U+012df7: */ + 0, /* U+012df8: */ + 0, /* U+012df9: */ + 0, /* U+012dfa: */ + 0, /* U+012dfb: */ + 0, /* U+012dfc: */ + 0, /* U+012dfd: */ + 0, /* U+012dfe: */ + 0, /* U+012dff: */ + 0, /* U+012e00: */ + 0, /* U+012e01: */ + 0, /* U+012e02: */ + 0, /* U+012e03: */ + 0, /* U+012e04: */ + 0, /* U+012e05: */ + 0, /* U+012e06: */ + 0, /* U+012e07: */ + 0, /* U+012e08: */ + 0, /* U+012e09: */ + 0, /* U+012e0a: */ + 0, /* U+012e0b: */ + 0, /* U+012e0c: */ + 0, /* U+012e0d: */ + 0, /* U+012e0e: */ + 0, /* U+012e0f: */ + 0, /* U+012e10: */ + 0, /* U+012e11: */ + 0, /* U+012e12: */ + 0, /* U+012e13: */ + 0, /* U+012e14: */ + 0, /* U+012e15: */ + 0, /* U+012e16: */ + 0, /* U+012e17: */ + 0, /* U+012e18: */ + 0, /* U+012e19: */ + 0, /* U+012e1a: */ + 0, /* U+012e1b: */ + 0, /* U+012e1c: */ + 0, /* U+012e1d: */ + 0, /* U+012e1e: */ + 0, /* U+012e1f: */ + 0, /* U+012e20: */ + 0, /* U+012e21: */ + 0, /* U+012e22: */ + 0, /* U+012e23: */ + 0, /* U+012e24: */ + 0, /* U+012e25: */ + 0, /* U+012e26: */ + 0, /* U+012e27: */ + 0, /* U+012e28: */ + 0, /* U+012e29: */ + 0, /* U+012e2a: */ + 0, /* U+012e2b: */ + 0, /* U+012e2c: */ + 0, /* U+012e2d: */ + 0, /* U+012e2e: */ + 0, /* U+012e2f: */ + 0, /* U+012e30: */ + 0, /* U+012e31: */ + 0, /* U+012e32: */ + 0, /* U+012e33: */ + 0, /* U+012e34: */ + 0, /* U+012e35: */ + 0, /* U+012e36: */ + 0, /* U+012e37: */ + 0, /* U+012e38: */ + 0, /* U+012e39: */ + 0, /* U+012e3a: */ + 0, /* U+012e3b: */ + 0, /* U+012e3c: */ + 0, /* U+012e3d: */ + 0, /* U+012e3e: */ + 0, /* U+012e3f: */ + 0, /* U+012e40: */ + 0, /* U+012e41: */ + 0, /* U+012e42: */ + 0, /* U+012e43: */ + 0, /* U+012e44: */ + 0, /* U+012e45: */ + 0, /* U+012e46: */ + 0, /* U+012e47: */ + 0, /* U+012e48: */ + 0, /* U+012e49: */ + 0, /* U+012e4a: */ + 0, /* U+012e4b: */ + 0, /* U+012e4c: */ + 0, /* U+012e4d: */ + 0, /* U+012e4e: */ + 0, /* U+012e4f: */ + 0, /* U+012e50: */ + 0, /* U+012e51: */ + 0, /* U+012e52: */ + 0, /* U+012e53: */ + 0, /* U+012e54: */ + 0, /* U+012e55: */ + 0, /* U+012e56: */ + 0, /* U+012e57: */ + 0, /* U+012e58: */ + 0, /* U+012e59: */ + 0, /* U+012e5a: */ + 0, /* U+012e5b: */ + 0, /* U+012e5c: */ + 0, /* U+012e5d: */ + 0, /* U+012e5e: */ + 0, /* U+012e5f: */ + 0, /* U+012e60: */ + 0, /* U+012e61: */ + 0, /* U+012e62: */ + 0, /* U+012e63: */ + 0, /* U+012e64: */ + 0, /* U+012e65: */ + 0, /* U+012e66: */ + 0, /* U+012e67: */ + 0, /* U+012e68: */ + 0, /* U+012e69: */ + 0, /* U+012e6a: */ + 0, /* U+012e6b: */ + 0, /* U+012e6c: */ + 0, /* U+012e6d: */ + 0, /* U+012e6e: */ + 0, /* U+012e6f: */ + 0, /* U+012e70: */ + 0, /* U+012e71: */ + 0, /* U+012e72: */ + 0, /* U+012e73: */ + 0, /* U+012e74: */ + 0, /* U+012e75: */ + 0, /* U+012e76: */ + 0, /* U+012e77: */ + 0, /* U+012e78: */ + 0, /* U+012e79: */ + 0, /* U+012e7a: */ + 0, /* U+012e7b: */ + 0, /* U+012e7c: */ + 0, /* U+012e7d: */ + 0, /* U+012e7e: */ + 0, /* U+012e7f: */ + 0, /* U+012e80: */ + 0, /* U+012e81: */ + 0, /* U+012e82: */ + 0, /* U+012e83: */ + 0, /* U+012e84: */ + 0, /* U+012e85: */ + 0, /* U+012e86: */ + 0, /* U+012e87: */ + 0, /* U+012e88: */ + 0, /* U+012e89: */ + 0, /* U+012e8a: */ + 0, /* U+012e8b: */ + 0, /* U+012e8c: */ + 0, /* U+012e8d: */ + 0, /* U+012e8e: */ + 0, /* U+012e8f: */ + 0, /* U+012e90: */ + 0, /* U+012e91: */ + 0, /* U+012e92: */ + 0, /* U+012e93: */ + 0, /* U+012e94: */ + 0, /* U+012e95: */ + 0, /* U+012e96: */ + 0, /* U+012e97: */ + 0, /* U+012e98: */ + 0, /* U+012e99: */ + 0, /* U+012e9a: */ + 0, /* U+012e9b: */ + 0, /* U+012e9c: */ + 0, /* U+012e9d: */ + 0, /* U+012e9e: */ + 0, /* U+012e9f: */ + 0, /* U+012ea0: */ + 0, /* U+012ea1: */ + 0, /* U+012ea2: */ + 0, /* U+012ea3: */ + 0, /* U+012ea4: */ + 0, /* U+012ea5: */ + 0, /* U+012ea6: */ + 0, /* U+012ea7: */ + 0, /* U+012ea8: */ + 0, /* U+012ea9: */ + 0, /* U+012eaa: */ + 0, /* U+012eab: */ + 0, /* U+012eac: */ + 0, /* U+012ead: */ + 0, /* U+012eae: */ + 0, /* U+012eaf: */ + 0, /* U+012eb0: */ + 0, /* U+012eb1: */ + 0, /* U+012eb2: */ + 0, /* U+012eb3: */ + 0, /* U+012eb4: */ + 0, /* U+012eb5: */ + 0, /* U+012eb6: */ + 0, /* U+012eb7: */ + 0, /* U+012eb8: */ + 0, /* U+012eb9: */ + 0, /* U+012eba: */ + 0, /* U+012ebb: */ + 0, /* U+012ebc: */ + 0, /* U+012ebd: */ + 0, /* U+012ebe: */ + 0, /* U+012ebf: */ + 0, /* U+012ec0: */ + 0, /* U+012ec1: */ + 0, /* U+012ec2: */ + 0, /* U+012ec3: */ + 0, /* U+012ec4: */ + 0, /* U+012ec5: */ + 0, /* U+012ec6: */ + 0, /* U+012ec7: */ + 0, /* U+012ec8: */ + 0, /* U+012ec9: */ + 0, /* U+012eca: */ + 0, /* U+012ecb: */ + 0, /* U+012ecc: */ + 0, /* U+012ecd: */ + 0, /* U+012ece: */ + 0, /* U+012ecf: */ + 0, /* U+012ed0: */ + 0, /* U+012ed1: */ + 0, /* U+012ed2: */ + 0, /* U+012ed3: */ + 0, /* U+012ed4: */ + 0, /* U+012ed5: */ + 0, /* U+012ed6: */ + 0, /* U+012ed7: */ + 0, /* U+012ed8: */ + 0, /* U+012ed9: */ + 0, /* U+012eda: */ + 0, /* U+012edb: */ + 0, /* U+012edc: */ + 0, /* U+012edd: */ + 0, /* U+012ede: */ + 0, /* U+012edf: */ + 0, /* U+012ee0: */ + 0, /* U+012ee1: */ + 0, /* U+012ee2: */ + 0, /* U+012ee3: */ + 0, /* U+012ee4: */ + 0, /* U+012ee5: */ + 0, /* U+012ee6: */ + 0, /* U+012ee7: */ + 0, /* U+012ee8: */ + 0, /* U+012ee9: */ + 0, /* U+012eea: */ + 0, /* U+012eeb: */ + 0, /* U+012eec: */ + 0, /* U+012eed: */ + 0, /* U+012eee: */ + 0, /* U+012eef: */ + 0, /* U+012ef0: */ + 0, /* U+012ef1: */ + 0, /* U+012ef2: */ + 0, /* U+012ef3: */ + 0, /* U+012ef4: */ + 0, /* U+012ef5: */ + 0, /* U+012ef6: */ + 0, /* U+012ef7: */ + 0, /* U+012ef8: */ + 0, /* U+012ef9: */ + 0, /* U+012efa: */ + 0, /* U+012efb: */ + 0, /* U+012efc: */ + 0, /* U+012efd: */ + 0, /* U+012efe: */ + 0, /* U+012eff: */ + 0, /* U+012f00: */ + 0, /* U+012f01: */ + 0, /* U+012f02: */ + 0, /* U+012f03: */ + 0, /* U+012f04: */ + 0, /* U+012f05: */ + 0, /* U+012f06: */ + 0, /* U+012f07: */ + 0, /* U+012f08: */ + 0, /* U+012f09: */ + 0, /* U+012f0a: */ + 0, /* U+012f0b: */ + 0, /* U+012f0c: */ + 0, /* U+012f0d: */ + 0, /* U+012f0e: */ + 0, /* U+012f0f: */ + 0, /* U+012f10: */ + 0, /* U+012f11: */ + 0, /* U+012f12: */ + 0, /* U+012f13: */ + 0, /* U+012f14: */ + 0, /* U+012f15: */ + 0, /* U+012f16: */ + 0, /* U+012f17: */ + 0, /* U+012f18: */ + 0, /* U+012f19: */ + 0, /* U+012f1a: */ + 0, /* U+012f1b: */ + 0, /* U+012f1c: */ + 0, /* U+012f1d: */ + 0, /* U+012f1e: */ + 0, /* U+012f1f: */ + 0, /* U+012f20: */ + 0, /* U+012f21: */ + 0, /* U+012f22: */ + 0, /* U+012f23: */ + 0, /* U+012f24: */ + 0, /* U+012f25: */ + 0, /* U+012f26: */ + 0, /* U+012f27: */ + 0, /* U+012f28: */ + 0, /* U+012f29: */ + 0, /* U+012f2a: */ + 0, /* U+012f2b: */ + 0, /* U+012f2c: */ + 0, /* U+012f2d: */ + 0, /* U+012f2e: */ + 0, /* U+012f2f: */ + 0, /* U+012f30: */ + 0, /* U+012f31: */ + 0, /* U+012f32: */ + 0, /* U+012f33: */ + 0, /* U+012f34: */ + 0, /* U+012f35: */ + 0, /* U+012f36: */ + 0, /* U+012f37: */ + 0, /* U+012f38: */ + 0, /* U+012f39: */ + 0, /* U+012f3a: */ + 0, /* U+012f3b: */ + 0, /* U+012f3c: */ + 0, /* U+012f3d: */ + 0, /* U+012f3e: */ + 0, /* U+012f3f: */ + 0, /* U+012f40: */ + 0, /* U+012f41: */ + 0, /* U+012f42: */ + 0, /* U+012f43: */ + 0, /* U+012f44: */ + 0, /* U+012f45: */ + 0, /* U+012f46: */ + 0, /* U+012f47: */ + 0, /* U+012f48: */ + 0, /* U+012f49: */ + 0, /* U+012f4a: */ + 0, /* U+012f4b: */ + 0, /* U+012f4c: */ + 0, /* U+012f4d: */ + 0, /* U+012f4e: */ + 0, /* U+012f4f: */ + 0, /* U+012f50: */ + 0, /* U+012f51: */ + 0, /* U+012f52: */ + 0, /* U+012f53: */ + 0, /* U+012f54: */ + 0, /* U+012f55: */ + 0, /* U+012f56: */ + 0, /* U+012f57: */ + 0, /* U+012f58: */ + 0, /* U+012f59: */ + 0, /* U+012f5a: */ + 0, /* U+012f5b: */ + 0, /* U+012f5c: */ + 0, /* U+012f5d: */ + 0, /* U+012f5e: */ + 0, /* U+012f5f: */ + 0, /* U+012f60: */ + 0, /* U+012f61: */ + 0, /* U+012f62: */ + 0, /* U+012f63: */ + 0, /* U+012f64: */ + 0, /* U+012f65: */ + 0, /* U+012f66: */ + 0, /* U+012f67: */ + 0, /* U+012f68: */ + 0, /* U+012f69: */ + 0, /* U+012f6a: */ + 0, /* U+012f6b: */ + 0, /* U+012f6c: */ + 0, /* U+012f6d: */ + 0, /* U+012f6e: */ + 0, /* U+012f6f: */ + 0, /* U+012f70: */ + 0, /* U+012f71: */ + 0, /* U+012f72: */ + 0, /* U+012f73: */ + 0, /* U+012f74: */ + 0, /* U+012f75: */ + 0, /* U+012f76: */ + 0, /* U+012f77: */ + 0, /* U+012f78: */ + 0, /* U+012f79: */ + 0, /* U+012f7a: */ + 0, /* U+012f7b: */ + 0, /* U+012f7c: */ + 0, /* U+012f7d: */ + 0, /* U+012f7e: */ + 0, /* U+012f7f: */ + 0, /* U+012f80: */ + 0, /* U+012f81: */ + 0, /* U+012f82: */ + 0, /* U+012f83: */ + 0, /* U+012f84: */ + 0, /* U+012f85: */ + 0, /* U+012f86: */ + 0, /* U+012f87: */ + 0, /* U+012f88: */ + 0, /* U+012f89: */ + 0, /* U+012f8a: */ + 0, /* U+012f8b: */ + 0, /* U+012f8c: */ + 0, /* U+012f8d: */ + 0, /* U+012f8e: */ + 0, /* U+012f8f: */ + 0, /* U+012f90: */ + 0, /* U+012f91: */ + 0, /* U+012f92: */ + 0, /* U+012f93: */ + 0, /* U+012f94: */ + 0, /* U+012f95: */ + 0, /* U+012f96: */ + 0, /* U+012f97: */ + 0, /* U+012f98: */ + 0, /* U+012f99: */ + 0, /* U+012f9a: */ + 0, /* U+012f9b: */ + 0, /* U+012f9c: */ + 0, /* U+012f9d: */ + 0, /* U+012f9e: */ + 0, /* U+012f9f: */ + 0, /* U+012fa0: */ + 0, /* U+012fa1: */ + 0, /* U+012fa2: */ + 0, /* U+012fa3: */ + 0, /* U+012fa4: */ + 0, /* U+012fa5: */ + 0, /* U+012fa6: */ + 0, /* U+012fa7: */ + 0, /* U+012fa8: */ + 0, /* U+012fa9: */ + 0, /* U+012faa: */ + 0, /* U+012fab: */ + 0, /* U+012fac: */ + 0, /* U+012fad: */ + 0, /* U+012fae: */ + 0, /* U+012faf: */ + 0, /* U+012fb0: */ + 0, /* U+012fb1: */ + 0, /* U+012fb2: */ + 0, /* U+012fb3: */ + 0, /* U+012fb4: */ + 0, /* U+012fb5: */ + 0, /* U+012fb6: */ + 0, /* U+012fb7: */ + 0, /* U+012fb8: */ + 0, /* U+012fb9: */ + 0, /* U+012fba: */ + 0, /* U+012fbb: */ + 0, /* U+012fbc: */ + 0, /* U+012fbd: */ + 0, /* U+012fbe: */ + 0, /* U+012fbf: */ + 0, /* U+012fc0: */ + 0, /* U+012fc1: */ + 0, /* U+012fc2: */ + 0, /* U+012fc3: */ + 0, /* U+012fc4: */ + 0, /* U+012fc5: */ + 0, /* U+012fc6: */ + 0, /* U+012fc7: */ + 0, /* U+012fc8: */ + 0, /* U+012fc9: */ + 0, /* U+012fca: */ + 0, /* U+012fcb: */ + 0, /* U+012fcc: */ + 0, /* U+012fcd: */ + 0, /* U+012fce: */ + 0, /* U+012fcf: */ + 0, /* U+012fd0: */ + 0, /* U+012fd1: */ + 0, /* U+012fd2: */ + 0, /* U+012fd3: */ + 0, /* U+012fd4: */ + 0, /* U+012fd5: */ + 0, /* U+012fd6: */ + 0, /* U+012fd7: */ + 0, /* U+012fd8: */ + 0, /* U+012fd9: */ + 0, /* U+012fda: */ + 0, /* U+012fdb: */ + 0, /* U+012fdc: */ + 0, /* U+012fdd: */ + 0, /* U+012fde: */ + 0, /* U+012fdf: */ + 0, /* U+012fe0: */ + 0, /* U+012fe1: */ + 0, /* U+012fe2: */ + 0, /* U+012fe3: */ + 0, /* U+012fe4: */ + 0, /* U+012fe5: */ + 0, /* U+012fe6: */ + 0, /* U+012fe7: */ + 0, /* U+012fe8: */ + 0, /* U+012fe9: */ + 0, /* U+012fea: */ + 0, /* U+012feb: */ + 0, /* U+012fec: */ + 0, /* U+012fed: */ + 0, /* U+012fee: */ + 0, /* U+012fef: */ + 0, /* U+012ff0: */ + 0, /* U+012ff1: */ + 0, /* U+012ff2: */ + 0, /* U+012ff3: */ + 0, /* U+012ff4: */ + 0, /* U+012ff5: */ + 0, /* U+012ff6: */ + 0, /* U+012ff7: */ + 0, /* U+012ff8: */ + 0, /* U+012ff9: */ + 0, /* U+012ffa: */ + 0, /* U+012ffb: */ + 0, /* U+012ffc: */ + 0, /* U+012ffd: */ + 0, /* U+012ffe: */ + 0, /* U+012fff: */ + RTUNI_ALPHA, /* U+013000: EGYPTIAN HIEROGLYPH A001*/ + RTUNI_ALPHA, /* U+013001: EGYPTIAN HIEROGLYPH A002*/ + RTUNI_ALPHA, /* U+013002: EGYPTIAN HIEROGLYPH A003*/ + RTUNI_ALPHA, /* U+013003: EGYPTIAN HIEROGLYPH A004*/ + RTUNI_ALPHA, /* U+013004: EGYPTIAN HIEROGLYPH A005*/ + RTUNI_ALPHA, /* U+013005: EGYPTIAN HIEROGLYPH A005A*/ + RTUNI_ALPHA, /* U+013006: EGYPTIAN HIEROGLYPH A006*/ + RTUNI_ALPHA, /* U+013007: EGYPTIAN HIEROGLYPH A006A*/ + RTUNI_ALPHA, /* U+013008: EGYPTIAN HIEROGLYPH A006B*/ + RTUNI_ALPHA, /* U+013009: EGYPTIAN HIEROGLYPH A007*/ + RTUNI_ALPHA, /* U+01300a: EGYPTIAN HIEROGLYPH A008*/ + RTUNI_ALPHA, /* U+01300b: EGYPTIAN HIEROGLYPH A009*/ + RTUNI_ALPHA, /* U+01300c: EGYPTIAN HIEROGLYPH A010*/ + RTUNI_ALPHA, /* U+01300d: EGYPTIAN HIEROGLYPH A011*/ + RTUNI_ALPHA, /* U+01300e: EGYPTIAN HIEROGLYPH A012*/ + RTUNI_ALPHA, /* U+01300f: EGYPTIAN HIEROGLYPH A013*/ + RTUNI_ALPHA, /* U+013010: EGYPTIAN HIEROGLYPH A014*/ + RTUNI_ALPHA, /* U+013011: EGYPTIAN HIEROGLYPH A014A*/ + RTUNI_ALPHA, /* U+013012: EGYPTIAN HIEROGLYPH A015*/ + RTUNI_ALPHA, /* U+013013: EGYPTIAN HIEROGLYPH A016*/ + RTUNI_ALPHA, /* U+013014: EGYPTIAN HIEROGLYPH A017*/ + RTUNI_ALPHA, /* U+013015: EGYPTIAN HIEROGLYPH A017A*/ + RTUNI_ALPHA, /* U+013016: EGYPTIAN HIEROGLYPH A018*/ + RTUNI_ALPHA, /* U+013017: EGYPTIAN HIEROGLYPH A019*/ + RTUNI_ALPHA, /* U+013018: EGYPTIAN HIEROGLYPH A020*/ + RTUNI_ALPHA, /* U+013019: EGYPTIAN HIEROGLYPH A021*/ + RTUNI_ALPHA, /* U+01301a: EGYPTIAN HIEROGLYPH A022*/ + RTUNI_ALPHA, /* U+01301b: EGYPTIAN HIEROGLYPH A023*/ + RTUNI_ALPHA, /* U+01301c: EGYPTIAN HIEROGLYPH A024*/ + RTUNI_ALPHA, /* U+01301d: EGYPTIAN HIEROGLYPH A025*/ + RTUNI_ALPHA, /* U+01301e: EGYPTIAN HIEROGLYPH A026*/ + RTUNI_ALPHA, /* U+01301f: EGYPTIAN HIEROGLYPH A027*/ + RTUNI_ALPHA, /* U+013020: EGYPTIAN HIEROGLYPH A028*/ + RTUNI_ALPHA, /* U+013021: EGYPTIAN HIEROGLYPH A029*/ + RTUNI_ALPHA, /* U+013022: EGYPTIAN HIEROGLYPH A030*/ + RTUNI_ALPHA, /* U+013023: EGYPTIAN HIEROGLYPH A031*/ + RTUNI_ALPHA, /* U+013024: EGYPTIAN HIEROGLYPH A032*/ + RTUNI_ALPHA, /* U+013025: EGYPTIAN HIEROGLYPH A032A*/ + RTUNI_ALPHA, /* U+013026: EGYPTIAN HIEROGLYPH A033*/ + RTUNI_ALPHA, /* U+013027: EGYPTIAN HIEROGLYPH A034*/ + RTUNI_ALPHA, /* U+013028: EGYPTIAN HIEROGLYPH A035*/ + RTUNI_ALPHA, /* U+013029: EGYPTIAN HIEROGLYPH A036*/ + RTUNI_ALPHA, /* U+01302a: EGYPTIAN HIEROGLYPH A037*/ + RTUNI_ALPHA, /* U+01302b: EGYPTIAN HIEROGLYPH A038*/ + RTUNI_ALPHA, /* U+01302c: EGYPTIAN HIEROGLYPH A039*/ + RTUNI_ALPHA, /* U+01302d: EGYPTIAN HIEROGLYPH A040*/ + RTUNI_ALPHA, /* U+01302e: EGYPTIAN HIEROGLYPH A040A*/ + RTUNI_ALPHA, /* U+01302f: EGYPTIAN HIEROGLYPH A041*/ + RTUNI_ALPHA, /* U+013030: EGYPTIAN HIEROGLYPH A042*/ + RTUNI_ALPHA, /* U+013031: EGYPTIAN HIEROGLYPH A042A*/ + RTUNI_ALPHA, /* U+013032: EGYPTIAN HIEROGLYPH A043*/ + RTUNI_ALPHA, /* U+013033: EGYPTIAN HIEROGLYPH A043A*/ + RTUNI_ALPHA, /* U+013034: EGYPTIAN HIEROGLYPH A044*/ + RTUNI_ALPHA, /* U+013035: EGYPTIAN HIEROGLYPH A045*/ + RTUNI_ALPHA, /* U+013036: EGYPTIAN HIEROGLYPH A045A*/ + RTUNI_ALPHA, /* U+013037: EGYPTIAN HIEROGLYPH A046*/ + RTUNI_ALPHA, /* U+013038: EGYPTIAN HIEROGLYPH A047*/ + RTUNI_ALPHA, /* U+013039: EGYPTIAN HIEROGLYPH A048*/ + RTUNI_ALPHA, /* U+01303a: EGYPTIAN HIEROGLYPH A049*/ + RTUNI_ALPHA, /* U+01303b: EGYPTIAN HIEROGLYPH A050*/ + RTUNI_ALPHA, /* U+01303c: EGYPTIAN HIEROGLYPH A051*/ + RTUNI_ALPHA, /* U+01303d: EGYPTIAN HIEROGLYPH A052*/ + RTUNI_ALPHA, /* U+01303e: EGYPTIAN HIEROGLYPH A053*/ + RTUNI_ALPHA, /* U+01303f: EGYPTIAN HIEROGLYPH A054*/ + RTUNI_ALPHA, /* U+013040: EGYPTIAN HIEROGLYPH A055*/ + RTUNI_ALPHA, /* U+013041: EGYPTIAN HIEROGLYPH A056*/ + RTUNI_ALPHA, /* U+013042: EGYPTIAN HIEROGLYPH A057*/ + RTUNI_ALPHA, /* U+013043: EGYPTIAN HIEROGLYPH A058*/ + RTUNI_ALPHA, /* U+013044: EGYPTIAN HIEROGLYPH A059*/ + RTUNI_ALPHA, /* U+013045: EGYPTIAN HIEROGLYPH A060*/ + RTUNI_ALPHA, /* U+013046: EGYPTIAN HIEROGLYPH A061*/ + RTUNI_ALPHA, /* U+013047: EGYPTIAN HIEROGLYPH A062*/ + RTUNI_ALPHA, /* U+013048: EGYPTIAN HIEROGLYPH A063*/ + RTUNI_ALPHA, /* U+013049: EGYPTIAN HIEROGLYPH A064*/ + RTUNI_ALPHA, /* U+01304a: EGYPTIAN HIEROGLYPH A065*/ + RTUNI_ALPHA, /* U+01304b: EGYPTIAN HIEROGLYPH A066*/ + RTUNI_ALPHA, /* U+01304c: EGYPTIAN HIEROGLYPH A067*/ + RTUNI_ALPHA, /* U+01304d: EGYPTIAN HIEROGLYPH A068*/ + RTUNI_ALPHA, /* U+01304e: EGYPTIAN HIEROGLYPH A069*/ + RTUNI_ALPHA, /* U+01304f: EGYPTIAN HIEROGLYPH A070*/ + RTUNI_ALPHA, /* U+013050: EGYPTIAN HIEROGLYPH B001*/ + RTUNI_ALPHA, /* U+013051: EGYPTIAN HIEROGLYPH B002*/ + RTUNI_ALPHA, /* U+013052: EGYPTIAN HIEROGLYPH B003*/ + RTUNI_ALPHA, /* U+013053: EGYPTIAN HIEROGLYPH B004*/ + RTUNI_ALPHA, /* U+013054: EGYPTIAN HIEROGLYPH B005*/ + RTUNI_ALPHA, /* U+013055: EGYPTIAN HIEROGLYPH B005A*/ + RTUNI_ALPHA, /* U+013056: EGYPTIAN HIEROGLYPH B006*/ + RTUNI_ALPHA, /* U+013057: EGYPTIAN HIEROGLYPH B007*/ + RTUNI_ALPHA, /* U+013058: EGYPTIAN HIEROGLYPH B008*/ + RTUNI_ALPHA, /* U+013059: EGYPTIAN HIEROGLYPH B009*/ + RTUNI_ALPHA, /* U+01305a: EGYPTIAN HIEROGLYPH C001*/ + RTUNI_ALPHA, /* U+01305b: EGYPTIAN HIEROGLYPH C002*/ + RTUNI_ALPHA, /* U+01305c: EGYPTIAN HIEROGLYPH C002A*/ + RTUNI_ALPHA, /* U+01305d: EGYPTIAN HIEROGLYPH C002B*/ + RTUNI_ALPHA, /* U+01305e: EGYPTIAN HIEROGLYPH C002C*/ + RTUNI_ALPHA, /* U+01305f: EGYPTIAN HIEROGLYPH C003*/ + RTUNI_ALPHA, /* U+013060: EGYPTIAN HIEROGLYPH C004*/ + RTUNI_ALPHA, /* U+013061: EGYPTIAN HIEROGLYPH C005*/ + RTUNI_ALPHA, /* U+013062: EGYPTIAN HIEROGLYPH C006*/ + RTUNI_ALPHA, /* U+013063: EGYPTIAN HIEROGLYPH C007*/ + RTUNI_ALPHA, /* U+013064: EGYPTIAN HIEROGLYPH C008*/ + RTUNI_ALPHA, /* U+013065: EGYPTIAN HIEROGLYPH C009*/ + RTUNI_ALPHA, /* U+013066: EGYPTIAN HIEROGLYPH C010*/ + RTUNI_ALPHA, /* U+013067: EGYPTIAN HIEROGLYPH C010A*/ + RTUNI_ALPHA, /* U+013068: EGYPTIAN HIEROGLYPH C011*/ + RTUNI_ALPHA, /* U+013069: EGYPTIAN HIEROGLYPH C012*/ + RTUNI_ALPHA, /* U+01306a: EGYPTIAN HIEROGLYPH C013*/ + RTUNI_ALPHA, /* U+01306b: EGYPTIAN HIEROGLYPH C014*/ + RTUNI_ALPHA, /* U+01306c: EGYPTIAN HIEROGLYPH C015*/ + RTUNI_ALPHA, /* U+01306d: EGYPTIAN HIEROGLYPH C016*/ + RTUNI_ALPHA, /* U+01306e: EGYPTIAN HIEROGLYPH C017*/ + RTUNI_ALPHA, /* U+01306f: EGYPTIAN HIEROGLYPH C018*/ + RTUNI_ALPHA, /* U+013070: EGYPTIAN HIEROGLYPH C019*/ + RTUNI_ALPHA, /* U+013071: EGYPTIAN HIEROGLYPH C020*/ + RTUNI_ALPHA, /* U+013072: EGYPTIAN HIEROGLYPH C021*/ + RTUNI_ALPHA, /* U+013073: EGYPTIAN HIEROGLYPH C022*/ + RTUNI_ALPHA, /* U+013074: EGYPTIAN HIEROGLYPH C023*/ + RTUNI_ALPHA, /* U+013075: EGYPTIAN HIEROGLYPH C024*/ + RTUNI_ALPHA, /* U+013076: EGYPTIAN HIEROGLYPH D001*/ + RTUNI_ALPHA, /* U+013077: EGYPTIAN HIEROGLYPH D002*/ + RTUNI_ALPHA, /* U+013078: EGYPTIAN HIEROGLYPH D003*/ + RTUNI_ALPHA, /* U+013079: EGYPTIAN HIEROGLYPH D004*/ + RTUNI_ALPHA, /* U+01307a: EGYPTIAN HIEROGLYPH D005*/ + RTUNI_ALPHA, /* U+01307b: EGYPTIAN HIEROGLYPH D006*/ + RTUNI_ALPHA, /* U+01307c: EGYPTIAN HIEROGLYPH D007*/ + RTUNI_ALPHA, /* U+01307d: EGYPTIAN HIEROGLYPH D008*/ + RTUNI_ALPHA, /* U+01307e: EGYPTIAN HIEROGLYPH D008A*/ + RTUNI_ALPHA, /* U+01307f: EGYPTIAN HIEROGLYPH D009*/ + RTUNI_ALPHA, /* U+013080: EGYPTIAN HIEROGLYPH D010*/ + RTUNI_ALPHA, /* U+013081: EGYPTIAN HIEROGLYPH D011*/ + RTUNI_ALPHA, /* U+013082: EGYPTIAN HIEROGLYPH D012*/ + RTUNI_ALPHA, /* U+013083: EGYPTIAN HIEROGLYPH D013*/ + RTUNI_ALPHA, /* U+013084: EGYPTIAN HIEROGLYPH D014*/ + RTUNI_ALPHA, /* U+013085: EGYPTIAN HIEROGLYPH D015*/ + RTUNI_ALPHA, /* U+013086: EGYPTIAN HIEROGLYPH D016*/ + RTUNI_ALPHA, /* U+013087: EGYPTIAN HIEROGLYPH D017*/ + RTUNI_ALPHA, /* U+013088: EGYPTIAN HIEROGLYPH D018*/ + RTUNI_ALPHA, /* U+013089: EGYPTIAN HIEROGLYPH D019*/ + RTUNI_ALPHA, /* U+01308a: EGYPTIAN HIEROGLYPH D020*/ + RTUNI_ALPHA, /* U+01308b: EGYPTIAN HIEROGLYPH D021*/ + RTUNI_ALPHA, /* U+01308c: EGYPTIAN HIEROGLYPH D022*/ + RTUNI_ALPHA, /* U+01308d: EGYPTIAN HIEROGLYPH D023*/ + RTUNI_ALPHA, /* U+01308e: EGYPTIAN HIEROGLYPH D024*/ + RTUNI_ALPHA, /* U+01308f: EGYPTIAN HIEROGLYPH D025*/ + RTUNI_ALPHA, /* U+013090: EGYPTIAN HIEROGLYPH D026*/ + RTUNI_ALPHA, /* U+013091: EGYPTIAN HIEROGLYPH D027*/ + RTUNI_ALPHA, /* U+013092: EGYPTIAN HIEROGLYPH D027A*/ + RTUNI_ALPHA, /* U+013093: EGYPTIAN HIEROGLYPH D028*/ + RTUNI_ALPHA, /* U+013094: EGYPTIAN HIEROGLYPH D029*/ + RTUNI_ALPHA, /* U+013095: EGYPTIAN HIEROGLYPH D030*/ + RTUNI_ALPHA, /* U+013096: EGYPTIAN HIEROGLYPH D031*/ + RTUNI_ALPHA, /* U+013097: EGYPTIAN HIEROGLYPH D031A*/ + RTUNI_ALPHA, /* U+013098: EGYPTIAN HIEROGLYPH D032*/ + RTUNI_ALPHA, /* U+013099: EGYPTIAN HIEROGLYPH D033*/ + RTUNI_ALPHA, /* U+01309a: EGYPTIAN HIEROGLYPH D034*/ + RTUNI_ALPHA, /* U+01309b: EGYPTIAN HIEROGLYPH D034A*/ + RTUNI_ALPHA, /* U+01309c: EGYPTIAN HIEROGLYPH D035*/ + RTUNI_ALPHA, /* U+01309d: EGYPTIAN HIEROGLYPH D036*/ + RTUNI_ALPHA, /* U+01309e: EGYPTIAN HIEROGLYPH D037*/ + RTUNI_ALPHA, /* U+01309f: EGYPTIAN HIEROGLYPH D038*/ + RTUNI_ALPHA, /* U+0130a0: EGYPTIAN HIEROGLYPH D039*/ + RTUNI_ALPHA, /* U+0130a1: EGYPTIAN HIEROGLYPH D040*/ + RTUNI_ALPHA, /* U+0130a2: EGYPTIAN HIEROGLYPH D041*/ + RTUNI_ALPHA, /* U+0130a3: EGYPTIAN HIEROGLYPH D042*/ + RTUNI_ALPHA, /* U+0130a4: EGYPTIAN HIEROGLYPH D043*/ + RTUNI_ALPHA, /* U+0130a5: EGYPTIAN HIEROGLYPH D044*/ + RTUNI_ALPHA, /* U+0130a6: EGYPTIAN HIEROGLYPH D045*/ + RTUNI_ALPHA, /* U+0130a7: EGYPTIAN HIEROGLYPH D046*/ + RTUNI_ALPHA, /* U+0130a8: EGYPTIAN HIEROGLYPH D046A*/ + RTUNI_ALPHA, /* U+0130a9: EGYPTIAN HIEROGLYPH D047*/ + RTUNI_ALPHA, /* U+0130aa: EGYPTIAN HIEROGLYPH D048*/ + RTUNI_ALPHA, /* U+0130ab: EGYPTIAN HIEROGLYPH D048A*/ + RTUNI_ALPHA, /* U+0130ac: EGYPTIAN HIEROGLYPH D049*/ + RTUNI_ALPHA, /* U+0130ad: EGYPTIAN HIEROGLYPH D050*/ + RTUNI_ALPHA, /* U+0130ae: EGYPTIAN HIEROGLYPH D050A*/ + RTUNI_ALPHA, /* U+0130af: EGYPTIAN HIEROGLYPH D050B*/ + RTUNI_ALPHA, /* U+0130b0: EGYPTIAN HIEROGLYPH D050C*/ + RTUNI_ALPHA, /* U+0130b1: EGYPTIAN HIEROGLYPH D050D*/ + RTUNI_ALPHA, /* U+0130b2: EGYPTIAN HIEROGLYPH D050E*/ + RTUNI_ALPHA, /* U+0130b3: EGYPTIAN HIEROGLYPH D050F*/ + RTUNI_ALPHA, /* U+0130b4: EGYPTIAN HIEROGLYPH D050G*/ + RTUNI_ALPHA, /* U+0130b5: EGYPTIAN HIEROGLYPH D050H*/ + RTUNI_ALPHA, /* U+0130b6: EGYPTIAN HIEROGLYPH D050I*/ + RTUNI_ALPHA, /* U+0130b7: EGYPTIAN HIEROGLYPH D051*/ + RTUNI_ALPHA, /* U+0130b8: EGYPTIAN HIEROGLYPH D052*/ + RTUNI_ALPHA, /* U+0130b9: EGYPTIAN HIEROGLYPH D052A*/ + RTUNI_ALPHA, /* U+0130ba: EGYPTIAN HIEROGLYPH D053*/ + RTUNI_ALPHA, /* U+0130bb: EGYPTIAN HIEROGLYPH D054*/ + RTUNI_ALPHA, /* U+0130bc: EGYPTIAN HIEROGLYPH D054A*/ + RTUNI_ALPHA, /* U+0130bd: EGYPTIAN HIEROGLYPH D055*/ + RTUNI_ALPHA, /* U+0130be: EGYPTIAN HIEROGLYPH D056*/ + RTUNI_ALPHA, /* U+0130bf: EGYPTIAN HIEROGLYPH D057*/ + RTUNI_ALPHA, /* U+0130c0: EGYPTIAN HIEROGLYPH D058*/ + RTUNI_ALPHA, /* U+0130c1: EGYPTIAN HIEROGLYPH D059*/ + RTUNI_ALPHA, /* U+0130c2: EGYPTIAN HIEROGLYPH D060*/ + RTUNI_ALPHA, /* U+0130c3: EGYPTIAN HIEROGLYPH D061*/ + RTUNI_ALPHA, /* U+0130c4: EGYPTIAN HIEROGLYPH D062*/ + RTUNI_ALPHA, /* U+0130c5: EGYPTIAN HIEROGLYPH D063*/ + RTUNI_ALPHA, /* U+0130c6: EGYPTIAN HIEROGLYPH D064*/ + RTUNI_ALPHA, /* U+0130c7: EGYPTIAN HIEROGLYPH D065*/ + RTUNI_ALPHA, /* U+0130c8: EGYPTIAN HIEROGLYPH D066*/ + RTUNI_ALPHA, /* U+0130c9: EGYPTIAN HIEROGLYPH D067*/ + RTUNI_ALPHA, /* U+0130ca: EGYPTIAN HIEROGLYPH D067A*/ + RTUNI_ALPHA, /* U+0130cb: EGYPTIAN HIEROGLYPH D067B*/ + RTUNI_ALPHA, /* U+0130cc: EGYPTIAN HIEROGLYPH D067C*/ + RTUNI_ALPHA, /* U+0130cd: EGYPTIAN HIEROGLYPH D067D*/ + RTUNI_ALPHA, /* U+0130ce: EGYPTIAN HIEROGLYPH D067E*/ + RTUNI_ALPHA, /* U+0130cf: EGYPTIAN HIEROGLYPH D067F*/ + RTUNI_ALPHA, /* U+0130d0: EGYPTIAN HIEROGLYPH D067G*/ + RTUNI_ALPHA, /* U+0130d1: EGYPTIAN HIEROGLYPH D067H*/ + RTUNI_ALPHA, /* U+0130d2: EGYPTIAN HIEROGLYPH E001*/ + RTUNI_ALPHA, /* U+0130d3: EGYPTIAN HIEROGLYPH E002*/ + RTUNI_ALPHA, /* U+0130d4: EGYPTIAN HIEROGLYPH E003*/ + RTUNI_ALPHA, /* U+0130d5: EGYPTIAN HIEROGLYPH E004*/ + RTUNI_ALPHA, /* U+0130d6: EGYPTIAN HIEROGLYPH E005*/ + RTUNI_ALPHA, /* U+0130d7: EGYPTIAN HIEROGLYPH E006*/ + RTUNI_ALPHA, /* U+0130d8: EGYPTIAN HIEROGLYPH E007*/ + RTUNI_ALPHA, /* U+0130d9: EGYPTIAN HIEROGLYPH E008*/ + RTUNI_ALPHA, /* U+0130da: EGYPTIAN HIEROGLYPH E008A*/ + RTUNI_ALPHA, /* U+0130db: EGYPTIAN HIEROGLYPH E009*/ + RTUNI_ALPHA, /* U+0130dc: EGYPTIAN HIEROGLYPH E009A*/ + RTUNI_ALPHA, /* U+0130dd: EGYPTIAN HIEROGLYPH E010*/ + RTUNI_ALPHA, /* U+0130de: EGYPTIAN HIEROGLYPH E011*/ + RTUNI_ALPHA, /* U+0130df: EGYPTIAN HIEROGLYPH E012*/ + RTUNI_ALPHA, /* U+0130e0: EGYPTIAN HIEROGLYPH E013*/ + RTUNI_ALPHA, /* U+0130e1: EGYPTIAN HIEROGLYPH E014*/ + RTUNI_ALPHA, /* U+0130e2: EGYPTIAN HIEROGLYPH E015*/ + RTUNI_ALPHA, /* U+0130e3: EGYPTIAN HIEROGLYPH E016*/ + RTUNI_ALPHA, /* U+0130e4: EGYPTIAN HIEROGLYPH E016A*/ + RTUNI_ALPHA, /* U+0130e5: EGYPTIAN HIEROGLYPH E017*/ + RTUNI_ALPHA, /* U+0130e6: EGYPTIAN HIEROGLYPH E017A*/ + RTUNI_ALPHA, /* U+0130e7: EGYPTIAN HIEROGLYPH E018*/ + RTUNI_ALPHA, /* U+0130e8: EGYPTIAN HIEROGLYPH E019*/ + RTUNI_ALPHA, /* U+0130e9: EGYPTIAN HIEROGLYPH E020*/ + RTUNI_ALPHA, /* U+0130ea: EGYPTIAN HIEROGLYPH E020A*/ + RTUNI_ALPHA, /* U+0130eb: EGYPTIAN HIEROGLYPH E021*/ + RTUNI_ALPHA, /* U+0130ec: EGYPTIAN HIEROGLYPH E022*/ + RTUNI_ALPHA, /* U+0130ed: EGYPTIAN HIEROGLYPH E023*/ + RTUNI_ALPHA, /* U+0130ee: EGYPTIAN HIEROGLYPH E024*/ + RTUNI_ALPHA, /* U+0130ef: EGYPTIAN HIEROGLYPH E025*/ + RTUNI_ALPHA, /* U+0130f0: EGYPTIAN HIEROGLYPH E026*/ + RTUNI_ALPHA, /* U+0130f1: EGYPTIAN HIEROGLYPH E027*/ + RTUNI_ALPHA, /* U+0130f2: EGYPTIAN HIEROGLYPH E028*/ + RTUNI_ALPHA, /* U+0130f3: EGYPTIAN HIEROGLYPH E028A*/ + RTUNI_ALPHA, /* U+0130f4: EGYPTIAN HIEROGLYPH E029*/ + RTUNI_ALPHA, /* U+0130f5: EGYPTIAN HIEROGLYPH E030*/ + RTUNI_ALPHA, /* U+0130f6: EGYPTIAN HIEROGLYPH E031*/ + RTUNI_ALPHA, /* U+0130f7: EGYPTIAN HIEROGLYPH E032*/ + RTUNI_ALPHA, /* U+0130f8: EGYPTIAN HIEROGLYPH E033*/ + RTUNI_ALPHA, /* U+0130f9: EGYPTIAN HIEROGLYPH E034*/ + RTUNI_ALPHA, /* U+0130fa: EGYPTIAN HIEROGLYPH E034A*/ + RTUNI_ALPHA, /* U+0130fb: EGYPTIAN HIEROGLYPH E036*/ + RTUNI_ALPHA, /* U+0130fc: EGYPTIAN HIEROGLYPH E037*/ + RTUNI_ALPHA, /* U+0130fd: EGYPTIAN HIEROGLYPH E038*/ + RTUNI_ALPHA, /* U+0130fe: EGYPTIAN HIEROGLYPH F001*/ + RTUNI_ALPHA, /* U+0130ff: EGYPTIAN HIEROGLYPH F001A*/ + RTUNI_ALPHA, /* U+013100: EGYPTIAN HIEROGLYPH F002*/ + RTUNI_ALPHA, /* U+013101: EGYPTIAN HIEROGLYPH F003*/ + RTUNI_ALPHA, /* U+013102: EGYPTIAN HIEROGLYPH F004*/ + RTUNI_ALPHA, /* U+013103: EGYPTIAN HIEROGLYPH F005*/ + RTUNI_ALPHA, /* U+013104: EGYPTIAN HIEROGLYPH F006*/ + RTUNI_ALPHA, /* U+013105: EGYPTIAN HIEROGLYPH F007*/ + RTUNI_ALPHA, /* U+013106: EGYPTIAN HIEROGLYPH F008*/ + RTUNI_ALPHA, /* U+013107: EGYPTIAN HIEROGLYPH F009*/ + RTUNI_ALPHA, /* U+013108: EGYPTIAN HIEROGLYPH F010*/ + RTUNI_ALPHA, /* U+013109: EGYPTIAN HIEROGLYPH F011*/ + RTUNI_ALPHA, /* U+01310a: EGYPTIAN HIEROGLYPH F012*/ + RTUNI_ALPHA, /* U+01310b: EGYPTIAN HIEROGLYPH F013*/ + RTUNI_ALPHA, /* U+01310c: EGYPTIAN HIEROGLYPH F013A*/ + RTUNI_ALPHA, /* U+01310d: EGYPTIAN HIEROGLYPH F014*/ + RTUNI_ALPHA, /* U+01310e: EGYPTIAN HIEROGLYPH F015*/ + RTUNI_ALPHA, /* U+01310f: EGYPTIAN HIEROGLYPH F016*/ + RTUNI_ALPHA, /* U+013110: EGYPTIAN HIEROGLYPH F017*/ + RTUNI_ALPHA, /* U+013111: EGYPTIAN HIEROGLYPH F018*/ + RTUNI_ALPHA, /* U+013112: EGYPTIAN HIEROGLYPH F019*/ + RTUNI_ALPHA, /* U+013113: EGYPTIAN HIEROGLYPH F020*/ + RTUNI_ALPHA, /* U+013114: EGYPTIAN HIEROGLYPH F021*/ + RTUNI_ALPHA, /* U+013115: EGYPTIAN HIEROGLYPH F021A*/ + RTUNI_ALPHA, /* U+013116: EGYPTIAN HIEROGLYPH F022*/ + RTUNI_ALPHA, /* U+013117: EGYPTIAN HIEROGLYPH F023*/ + RTUNI_ALPHA, /* U+013118: EGYPTIAN HIEROGLYPH F024*/ + RTUNI_ALPHA, /* U+013119: EGYPTIAN HIEROGLYPH F025*/ + RTUNI_ALPHA, /* U+01311a: EGYPTIAN HIEROGLYPH F026*/ + RTUNI_ALPHA, /* U+01311b: EGYPTIAN HIEROGLYPH F027*/ + RTUNI_ALPHA, /* U+01311c: EGYPTIAN HIEROGLYPH F028*/ + RTUNI_ALPHA, /* U+01311d: EGYPTIAN HIEROGLYPH F029*/ + RTUNI_ALPHA, /* U+01311e: EGYPTIAN HIEROGLYPH F030*/ + RTUNI_ALPHA, /* U+01311f: EGYPTIAN HIEROGLYPH F031*/ + RTUNI_ALPHA, /* U+013120: EGYPTIAN HIEROGLYPH F031A*/ + RTUNI_ALPHA, /* U+013121: EGYPTIAN HIEROGLYPH F032*/ + RTUNI_ALPHA, /* U+013122: EGYPTIAN HIEROGLYPH F033*/ + RTUNI_ALPHA, /* U+013123: EGYPTIAN HIEROGLYPH F034*/ + RTUNI_ALPHA, /* U+013124: EGYPTIAN HIEROGLYPH F035*/ + RTUNI_ALPHA, /* U+013125: EGYPTIAN HIEROGLYPH F036*/ + RTUNI_ALPHA, /* U+013126: EGYPTIAN HIEROGLYPH F037*/ + RTUNI_ALPHA, /* U+013127: EGYPTIAN HIEROGLYPH F037A*/ + RTUNI_ALPHA, /* U+013128: EGYPTIAN HIEROGLYPH F038*/ + RTUNI_ALPHA, /* U+013129: EGYPTIAN HIEROGLYPH F038A*/ + RTUNI_ALPHA, /* U+01312a: EGYPTIAN HIEROGLYPH F039*/ + RTUNI_ALPHA, /* U+01312b: EGYPTIAN HIEROGLYPH F040*/ + RTUNI_ALPHA, /* U+01312c: EGYPTIAN HIEROGLYPH F041*/ + RTUNI_ALPHA, /* U+01312d: EGYPTIAN HIEROGLYPH F042*/ + RTUNI_ALPHA, /* U+01312e: EGYPTIAN HIEROGLYPH F043*/ + RTUNI_ALPHA, /* U+01312f: EGYPTIAN HIEROGLYPH F044*/ + RTUNI_ALPHA, /* U+013130: EGYPTIAN HIEROGLYPH F045*/ + RTUNI_ALPHA, /* U+013131: EGYPTIAN HIEROGLYPH F045A*/ + RTUNI_ALPHA, /* U+013132: EGYPTIAN HIEROGLYPH F046*/ + RTUNI_ALPHA, /* U+013133: EGYPTIAN HIEROGLYPH F046A*/ + RTUNI_ALPHA, /* U+013134: EGYPTIAN HIEROGLYPH F047*/ + RTUNI_ALPHA, /* U+013135: EGYPTIAN HIEROGLYPH F047A*/ + RTUNI_ALPHA, /* U+013136: EGYPTIAN HIEROGLYPH F048*/ + RTUNI_ALPHA, /* U+013137: EGYPTIAN HIEROGLYPH F049*/ + RTUNI_ALPHA, /* U+013138: EGYPTIAN HIEROGLYPH F050*/ + RTUNI_ALPHA, /* U+013139: EGYPTIAN HIEROGLYPH F051*/ + RTUNI_ALPHA, /* U+01313a: EGYPTIAN HIEROGLYPH F051A*/ + RTUNI_ALPHA, /* U+01313b: EGYPTIAN HIEROGLYPH F051B*/ + RTUNI_ALPHA, /* U+01313c: EGYPTIAN HIEROGLYPH F051C*/ + RTUNI_ALPHA, /* U+01313d: EGYPTIAN HIEROGLYPH F052*/ + RTUNI_ALPHA, /* U+01313e: EGYPTIAN HIEROGLYPH F053*/ + RTUNI_ALPHA, /* U+01313f: EGYPTIAN HIEROGLYPH G001*/ + RTUNI_ALPHA, /* U+013140: EGYPTIAN HIEROGLYPH G002*/ + RTUNI_ALPHA, /* U+013141: EGYPTIAN HIEROGLYPH G003*/ + RTUNI_ALPHA, /* U+013142: EGYPTIAN HIEROGLYPH G004*/ + RTUNI_ALPHA, /* U+013143: EGYPTIAN HIEROGLYPH G005*/ + RTUNI_ALPHA, /* U+013144: EGYPTIAN HIEROGLYPH G006*/ + RTUNI_ALPHA, /* U+013145: EGYPTIAN HIEROGLYPH G006A*/ + RTUNI_ALPHA, /* U+013146: EGYPTIAN HIEROGLYPH G007*/ + RTUNI_ALPHA, /* U+013147: EGYPTIAN HIEROGLYPH G007A*/ + RTUNI_ALPHA, /* U+013148: EGYPTIAN HIEROGLYPH G007B*/ + RTUNI_ALPHA, /* U+013149: EGYPTIAN HIEROGLYPH G008*/ + RTUNI_ALPHA, /* U+01314a: EGYPTIAN HIEROGLYPH G009*/ + RTUNI_ALPHA, /* U+01314b: EGYPTIAN HIEROGLYPH G010*/ + RTUNI_ALPHA, /* U+01314c: EGYPTIAN HIEROGLYPH G011*/ + RTUNI_ALPHA, /* U+01314d: EGYPTIAN HIEROGLYPH G011A*/ + RTUNI_ALPHA, /* U+01314e: EGYPTIAN HIEROGLYPH G012*/ + RTUNI_ALPHA, /* U+01314f: EGYPTIAN HIEROGLYPH G013*/ + RTUNI_ALPHA, /* U+013150: EGYPTIAN HIEROGLYPH G014*/ + RTUNI_ALPHA, /* U+013151: EGYPTIAN HIEROGLYPH G015*/ + RTUNI_ALPHA, /* U+013152: EGYPTIAN HIEROGLYPH G016*/ + RTUNI_ALPHA, /* U+013153: EGYPTIAN HIEROGLYPH G017*/ + RTUNI_ALPHA, /* U+013154: EGYPTIAN HIEROGLYPH G018*/ + RTUNI_ALPHA, /* U+013155: EGYPTIAN HIEROGLYPH G019*/ + RTUNI_ALPHA, /* U+013156: EGYPTIAN HIEROGLYPH G020*/ + RTUNI_ALPHA, /* U+013157: EGYPTIAN HIEROGLYPH G020A*/ + RTUNI_ALPHA, /* U+013158: EGYPTIAN HIEROGLYPH G021*/ + RTUNI_ALPHA, /* U+013159: EGYPTIAN HIEROGLYPH G022*/ + RTUNI_ALPHA, /* U+01315a: EGYPTIAN HIEROGLYPH G023*/ + RTUNI_ALPHA, /* U+01315b: EGYPTIAN HIEROGLYPH G024*/ + RTUNI_ALPHA, /* U+01315c: EGYPTIAN HIEROGLYPH G025*/ + RTUNI_ALPHA, /* U+01315d: EGYPTIAN HIEROGLYPH G026*/ + RTUNI_ALPHA, /* U+01315e: EGYPTIAN HIEROGLYPH G026A*/ + RTUNI_ALPHA, /* U+01315f: EGYPTIAN HIEROGLYPH G027*/ + RTUNI_ALPHA, /* U+013160: EGYPTIAN HIEROGLYPH G028*/ + RTUNI_ALPHA, /* U+013161: EGYPTIAN HIEROGLYPH G029*/ + RTUNI_ALPHA, /* U+013162: EGYPTIAN HIEROGLYPH G030*/ + RTUNI_ALPHA, /* U+013163: EGYPTIAN HIEROGLYPH G031*/ + RTUNI_ALPHA, /* U+013164: EGYPTIAN HIEROGLYPH G032*/ + RTUNI_ALPHA, /* U+013165: EGYPTIAN HIEROGLYPH G033*/ + RTUNI_ALPHA, /* U+013166: EGYPTIAN HIEROGLYPH G034*/ + RTUNI_ALPHA, /* U+013167: EGYPTIAN HIEROGLYPH G035*/ + RTUNI_ALPHA, /* U+013168: EGYPTIAN HIEROGLYPH G036*/ + RTUNI_ALPHA, /* U+013169: EGYPTIAN HIEROGLYPH G036A*/ + RTUNI_ALPHA, /* U+01316a: EGYPTIAN HIEROGLYPH G037*/ + RTUNI_ALPHA, /* U+01316b: EGYPTIAN HIEROGLYPH G037A*/ + RTUNI_ALPHA, /* U+01316c: EGYPTIAN HIEROGLYPH G038*/ + RTUNI_ALPHA, /* U+01316d: EGYPTIAN HIEROGLYPH G039*/ + RTUNI_ALPHA, /* U+01316e: EGYPTIAN HIEROGLYPH G040*/ + RTUNI_ALPHA, /* U+01316f: EGYPTIAN HIEROGLYPH G041*/ + RTUNI_ALPHA, /* U+013170: EGYPTIAN HIEROGLYPH G042*/ + RTUNI_ALPHA, /* U+013171: EGYPTIAN HIEROGLYPH G043*/ + RTUNI_ALPHA, /* U+013172: EGYPTIAN HIEROGLYPH G043A*/ + RTUNI_ALPHA, /* U+013173: EGYPTIAN HIEROGLYPH G044*/ + RTUNI_ALPHA, /* U+013174: EGYPTIAN HIEROGLYPH G045*/ + RTUNI_ALPHA, /* U+013175: EGYPTIAN HIEROGLYPH G045A*/ + RTUNI_ALPHA, /* U+013176: EGYPTIAN HIEROGLYPH G046*/ + RTUNI_ALPHA, /* U+013177: EGYPTIAN HIEROGLYPH G047*/ + RTUNI_ALPHA, /* U+013178: EGYPTIAN HIEROGLYPH G048*/ + RTUNI_ALPHA, /* U+013179: EGYPTIAN HIEROGLYPH G049*/ + RTUNI_ALPHA, /* U+01317a: EGYPTIAN HIEROGLYPH G050*/ + RTUNI_ALPHA, /* U+01317b: EGYPTIAN HIEROGLYPH G051*/ + RTUNI_ALPHA, /* U+01317c: EGYPTIAN HIEROGLYPH G052*/ + RTUNI_ALPHA, /* U+01317d: EGYPTIAN HIEROGLYPH G053*/ + RTUNI_ALPHA, /* U+01317e: EGYPTIAN HIEROGLYPH G054*/ + RTUNI_ALPHA, /* U+01317f: EGYPTIAN HIEROGLYPH H001*/ + RTUNI_ALPHA, /* U+013180: EGYPTIAN HIEROGLYPH H002*/ + RTUNI_ALPHA, /* U+013181: EGYPTIAN HIEROGLYPH H003*/ + RTUNI_ALPHA, /* U+013182: EGYPTIAN HIEROGLYPH H004*/ + RTUNI_ALPHA, /* U+013183: EGYPTIAN HIEROGLYPH H005*/ + RTUNI_ALPHA, /* U+013184: EGYPTIAN HIEROGLYPH H006*/ + RTUNI_ALPHA, /* U+013185: EGYPTIAN HIEROGLYPH H006A*/ + RTUNI_ALPHA, /* U+013186: EGYPTIAN HIEROGLYPH H007*/ + RTUNI_ALPHA, /* U+013187: EGYPTIAN HIEROGLYPH H008*/ + RTUNI_ALPHA, /* U+013188: EGYPTIAN HIEROGLYPH I001*/ + RTUNI_ALPHA, /* U+013189: EGYPTIAN HIEROGLYPH I002*/ + RTUNI_ALPHA, /* U+01318a: EGYPTIAN HIEROGLYPH I003*/ + RTUNI_ALPHA, /* U+01318b: EGYPTIAN HIEROGLYPH I004*/ + RTUNI_ALPHA, /* U+01318c: EGYPTIAN HIEROGLYPH I005*/ + RTUNI_ALPHA, /* U+01318d: EGYPTIAN HIEROGLYPH I005A*/ + RTUNI_ALPHA, /* U+01318e: EGYPTIAN HIEROGLYPH I006*/ + RTUNI_ALPHA, /* U+01318f: EGYPTIAN HIEROGLYPH I007*/ + RTUNI_ALPHA, /* U+013190: EGYPTIAN HIEROGLYPH I008*/ + RTUNI_ALPHA, /* U+013191: EGYPTIAN HIEROGLYPH I009*/ + RTUNI_ALPHA, /* U+013192: EGYPTIAN HIEROGLYPH I009A*/ + RTUNI_ALPHA, /* U+013193: EGYPTIAN HIEROGLYPH I010*/ + RTUNI_ALPHA, /* U+013194: EGYPTIAN HIEROGLYPH I010A*/ + RTUNI_ALPHA, /* U+013195: EGYPTIAN HIEROGLYPH I011*/ + RTUNI_ALPHA, /* U+013196: EGYPTIAN HIEROGLYPH I011A*/ + RTUNI_ALPHA, /* U+013197: EGYPTIAN HIEROGLYPH I012*/ + RTUNI_ALPHA, /* U+013198: EGYPTIAN HIEROGLYPH I013*/ + RTUNI_ALPHA, /* U+013199: EGYPTIAN HIEROGLYPH I014*/ + RTUNI_ALPHA, /* U+01319a: EGYPTIAN HIEROGLYPH I015*/ + RTUNI_ALPHA, /* U+01319b: EGYPTIAN HIEROGLYPH K001*/ + RTUNI_ALPHA, /* U+01319c: EGYPTIAN HIEROGLYPH K002*/ + RTUNI_ALPHA, /* U+01319d: EGYPTIAN HIEROGLYPH K003*/ + RTUNI_ALPHA, /* U+01319e: EGYPTIAN HIEROGLYPH K004*/ + RTUNI_ALPHA, /* U+01319f: EGYPTIAN HIEROGLYPH K005*/ + RTUNI_ALPHA, /* U+0131a0: EGYPTIAN HIEROGLYPH K006*/ + RTUNI_ALPHA, /* U+0131a1: EGYPTIAN HIEROGLYPH K007*/ + RTUNI_ALPHA, /* U+0131a2: EGYPTIAN HIEROGLYPH K008*/ + RTUNI_ALPHA, /* U+0131a3: EGYPTIAN HIEROGLYPH L001*/ + RTUNI_ALPHA, /* U+0131a4: EGYPTIAN HIEROGLYPH L002*/ + RTUNI_ALPHA, /* U+0131a5: EGYPTIAN HIEROGLYPH L002A*/ + RTUNI_ALPHA, /* U+0131a6: EGYPTIAN HIEROGLYPH L003*/ + RTUNI_ALPHA, /* U+0131a7: EGYPTIAN HIEROGLYPH L004*/ + RTUNI_ALPHA, /* U+0131a8: EGYPTIAN HIEROGLYPH L005*/ + RTUNI_ALPHA, /* U+0131a9: EGYPTIAN HIEROGLYPH L006*/ + RTUNI_ALPHA, /* U+0131aa: EGYPTIAN HIEROGLYPH L006A*/ + RTUNI_ALPHA, /* U+0131ab: EGYPTIAN HIEROGLYPH L007*/ + RTUNI_ALPHA, /* U+0131ac: EGYPTIAN HIEROGLYPH L008*/ + RTUNI_ALPHA, /* U+0131ad: EGYPTIAN HIEROGLYPH M001*/ + RTUNI_ALPHA, /* U+0131ae: EGYPTIAN HIEROGLYPH M001A*/ + RTUNI_ALPHA, /* U+0131af: EGYPTIAN HIEROGLYPH M001B*/ + RTUNI_ALPHA, /* U+0131b0: EGYPTIAN HIEROGLYPH M002*/ + RTUNI_ALPHA, /* U+0131b1: EGYPTIAN HIEROGLYPH M003*/ + RTUNI_ALPHA, /* U+0131b2: EGYPTIAN HIEROGLYPH M003A*/ + RTUNI_ALPHA, /* U+0131b3: EGYPTIAN HIEROGLYPH M004*/ + RTUNI_ALPHA, /* U+0131b4: EGYPTIAN HIEROGLYPH M005*/ + RTUNI_ALPHA, /* U+0131b5: EGYPTIAN HIEROGLYPH M006*/ + RTUNI_ALPHA, /* U+0131b6: EGYPTIAN HIEROGLYPH M007*/ + RTUNI_ALPHA, /* U+0131b7: EGYPTIAN HIEROGLYPH M008*/ + RTUNI_ALPHA, /* U+0131b8: EGYPTIAN HIEROGLYPH M009*/ + RTUNI_ALPHA, /* U+0131b9: EGYPTIAN HIEROGLYPH M010*/ + RTUNI_ALPHA, /* U+0131ba: EGYPTIAN HIEROGLYPH M010A*/ + RTUNI_ALPHA, /* U+0131bb: EGYPTIAN HIEROGLYPH M011*/ + RTUNI_ALPHA, /* U+0131bc: EGYPTIAN HIEROGLYPH M012*/ + RTUNI_ALPHA, /* U+0131bd: EGYPTIAN HIEROGLYPH M012A*/ + RTUNI_ALPHA, /* U+0131be: EGYPTIAN HIEROGLYPH M012B*/ + RTUNI_ALPHA, /* U+0131bf: EGYPTIAN HIEROGLYPH M012C*/ + RTUNI_ALPHA, /* U+0131c0: EGYPTIAN HIEROGLYPH M012D*/ + RTUNI_ALPHA, /* U+0131c1: EGYPTIAN HIEROGLYPH M012E*/ + RTUNI_ALPHA, /* U+0131c2: EGYPTIAN HIEROGLYPH M012F*/ + RTUNI_ALPHA, /* U+0131c3: EGYPTIAN HIEROGLYPH M012G*/ + RTUNI_ALPHA, /* U+0131c4: EGYPTIAN HIEROGLYPH M012H*/ + RTUNI_ALPHA, /* U+0131c5: EGYPTIAN HIEROGLYPH M013*/ + RTUNI_ALPHA, /* U+0131c6: EGYPTIAN HIEROGLYPH M014*/ + RTUNI_ALPHA, /* U+0131c7: EGYPTIAN HIEROGLYPH M015*/ + RTUNI_ALPHA, /* U+0131c8: EGYPTIAN HIEROGLYPH M015A*/ + RTUNI_ALPHA, /* U+0131c9: EGYPTIAN HIEROGLYPH M016*/ + RTUNI_ALPHA, /* U+0131ca: EGYPTIAN HIEROGLYPH M016A*/ + RTUNI_ALPHA, /* U+0131cb: EGYPTIAN HIEROGLYPH M017*/ + RTUNI_ALPHA, /* U+0131cc: EGYPTIAN HIEROGLYPH M017A*/ + RTUNI_ALPHA, /* U+0131cd: EGYPTIAN HIEROGLYPH M018*/ + RTUNI_ALPHA, /* U+0131ce: EGYPTIAN HIEROGLYPH M019*/ + RTUNI_ALPHA, /* U+0131cf: EGYPTIAN HIEROGLYPH M020*/ + RTUNI_ALPHA, /* U+0131d0: EGYPTIAN HIEROGLYPH M021*/ + RTUNI_ALPHA, /* U+0131d1: EGYPTIAN HIEROGLYPH M022*/ + RTUNI_ALPHA, /* U+0131d2: EGYPTIAN HIEROGLYPH M022A*/ + RTUNI_ALPHA, /* U+0131d3: EGYPTIAN HIEROGLYPH M023*/ + RTUNI_ALPHA, /* U+0131d4: EGYPTIAN HIEROGLYPH M024*/ + RTUNI_ALPHA, /* U+0131d5: EGYPTIAN HIEROGLYPH M024A*/ + RTUNI_ALPHA, /* U+0131d6: EGYPTIAN HIEROGLYPH M025*/ + RTUNI_ALPHA, /* U+0131d7: EGYPTIAN HIEROGLYPH M026*/ + RTUNI_ALPHA, /* U+0131d8: EGYPTIAN HIEROGLYPH M027*/ + RTUNI_ALPHA, /* U+0131d9: EGYPTIAN HIEROGLYPH M028*/ + RTUNI_ALPHA, /* U+0131da: EGYPTIAN HIEROGLYPH M028A*/ + RTUNI_ALPHA, /* U+0131db: EGYPTIAN HIEROGLYPH M029*/ + RTUNI_ALPHA, /* U+0131dc: EGYPTIAN HIEROGLYPH M030*/ + RTUNI_ALPHA, /* U+0131dd: EGYPTIAN HIEROGLYPH M031*/ + RTUNI_ALPHA, /* U+0131de: EGYPTIAN HIEROGLYPH M031A*/ + RTUNI_ALPHA, /* U+0131df: EGYPTIAN HIEROGLYPH M032*/ + RTUNI_ALPHA, /* U+0131e0: EGYPTIAN HIEROGLYPH M033*/ + RTUNI_ALPHA, /* U+0131e1: EGYPTIAN HIEROGLYPH M033A*/ + RTUNI_ALPHA, /* U+0131e2: EGYPTIAN HIEROGLYPH M033B*/ + RTUNI_ALPHA, /* U+0131e3: EGYPTIAN HIEROGLYPH M034*/ + RTUNI_ALPHA, /* U+0131e4: EGYPTIAN HIEROGLYPH M035*/ + RTUNI_ALPHA, /* U+0131e5: EGYPTIAN HIEROGLYPH M036*/ + RTUNI_ALPHA, /* U+0131e6: EGYPTIAN HIEROGLYPH M037*/ + RTUNI_ALPHA, /* U+0131e7: EGYPTIAN HIEROGLYPH M038*/ + RTUNI_ALPHA, /* U+0131e8: EGYPTIAN HIEROGLYPH M039*/ + RTUNI_ALPHA, /* U+0131e9: EGYPTIAN HIEROGLYPH M040*/ + RTUNI_ALPHA, /* U+0131ea: EGYPTIAN HIEROGLYPH M040A*/ + RTUNI_ALPHA, /* U+0131eb: EGYPTIAN HIEROGLYPH M041*/ + RTUNI_ALPHA, /* U+0131ec: EGYPTIAN HIEROGLYPH M042*/ + RTUNI_ALPHA, /* U+0131ed: EGYPTIAN HIEROGLYPH M043*/ + RTUNI_ALPHA, /* U+0131ee: EGYPTIAN HIEROGLYPH M044*/ + RTUNI_ALPHA, /* U+0131ef: EGYPTIAN HIEROGLYPH N001*/ + RTUNI_ALPHA, /* U+0131f0: EGYPTIAN HIEROGLYPH N002*/ + RTUNI_ALPHA, /* U+0131f1: EGYPTIAN HIEROGLYPH N003*/ + RTUNI_ALPHA, /* U+0131f2: EGYPTIAN HIEROGLYPH N004*/ + RTUNI_ALPHA, /* U+0131f3: EGYPTIAN HIEROGLYPH N005*/ + RTUNI_ALPHA, /* U+0131f4: EGYPTIAN HIEROGLYPH N006*/ + RTUNI_ALPHA, /* U+0131f5: EGYPTIAN HIEROGLYPH N007*/ + RTUNI_ALPHA, /* U+0131f6: EGYPTIAN HIEROGLYPH N008*/ + RTUNI_ALPHA, /* U+0131f7: EGYPTIAN HIEROGLYPH N009*/ + RTUNI_ALPHA, /* U+0131f8: EGYPTIAN HIEROGLYPH N010*/ + RTUNI_ALPHA, /* U+0131f9: EGYPTIAN HIEROGLYPH N011*/ + RTUNI_ALPHA, /* U+0131fa: EGYPTIAN HIEROGLYPH N012*/ + RTUNI_ALPHA, /* U+0131fb: EGYPTIAN HIEROGLYPH N013*/ + RTUNI_ALPHA, /* U+0131fc: EGYPTIAN HIEROGLYPH N014*/ + RTUNI_ALPHA, /* U+0131fd: EGYPTIAN HIEROGLYPH N015*/ + RTUNI_ALPHA, /* U+0131fe: EGYPTIAN HIEROGLYPH N016*/ + RTUNI_ALPHA, /* U+0131ff: EGYPTIAN HIEROGLYPH N017*/ + RTUNI_ALPHA, /* U+013200: EGYPTIAN HIEROGLYPH N018*/ + RTUNI_ALPHA, /* U+013201: EGYPTIAN HIEROGLYPH N018A*/ + RTUNI_ALPHA, /* U+013202: EGYPTIAN HIEROGLYPH N018B*/ + RTUNI_ALPHA, /* U+013203: EGYPTIAN HIEROGLYPH N019*/ + RTUNI_ALPHA, /* U+013204: EGYPTIAN HIEROGLYPH N020*/ + RTUNI_ALPHA, /* U+013205: EGYPTIAN HIEROGLYPH N021*/ + RTUNI_ALPHA, /* U+013206: EGYPTIAN HIEROGLYPH N022*/ + RTUNI_ALPHA, /* U+013207: EGYPTIAN HIEROGLYPH N023*/ + RTUNI_ALPHA, /* U+013208: EGYPTIAN HIEROGLYPH N024*/ + RTUNI_ALPHA, /* U+013209: EGYPTIAN HIEROGLYPH N025*/ + RTUNI_ALPHA, /* U+01320a: EGYPTIAN HIEROGLYPH N025A*/ + RTUNI_ALPHA, /* U+01320b: EGYPTIAN HIEROGLYPH N026*/ + RTUNI_ALPHA, /* U+01320c: EGYPTIAN HIEROGLYPH N027*/ + RTUNI_ALPHA, /* U+01320d: EGYPTIAN HIEROGLYPH N028*/ + RTUNI_ALPHA, /* U+01320e: EGYPTIAN HIEROGLYPH N029*/ + RTUNI_ALPHA, /* U+01320f: EGYPTIAN HIEROGLYPH N030*/ + RTUNI_ALPHA, /* U+013210: EGYPTIAN HIEROGLYPH N031*/ + RTUNI_ALPHA, /* U+013211: EGYPTIAN HIEROGLYPH N032*/ + RTUNI_ALPHA, /* U+013212: EGYPTIAN HIEROGLYPH N033*/ + RTUNI_ALPHA, /* U+013213: EGYPTIAN HIEROGLYPH N033A*/ + RTUNI_ALPHA, /* U+013214: EGYPTIAN HIEROGLYPH N034*/ + RTUNI_ALPHA, /* U+013215: EGYPTIAN HIEROGLYPH N034A*/ + RTUNI_ALPHA, /* U+013216: EGYPTIAN HIEROGLYPH N035*/ + RTUNI_ALPHA, /* U+013217: EGYPTIAN HIEROGLYPH N035A*/ + RTUNI_ALPHA, /* U+013218: EGYPTIAN HIEROGLYPH N036*/ + RTUNI_ALPHA, /* U+013219: EGYPTIAN HIEROGLYPH N037*/ + RTUNI_ALPHA, /* U+01321a: EGYPTIAN HIEROGLYPH N037A*/ + RTUNI_ALPHA, /* U+01321b: EGYPTIAN HIEROGLYPH N038*/ + RTUNI_ALPHA, /* U+01321c: EGYPTIAN HIEROGLYPH N039*/ + RTUNI_ALPHA, /* U+01321d: EGYPTIAN HIEROGLYPH N040*/ + RTUNI_ALPHA, /* U+01321e: EGYPTIAN HIEROGLYPH N041*/ + RTUNI_ALPHA, /* U+01321f: EGYPTIAN HIEROGLYPH N042*/ + RTUNI_ALPHA, /* U+013220: EGYPTIAN HIEROGLYPH NL001*/ + RTUNI_ALPHA, /* U+013221: EGYPTIAN HIEROGLYPH NL002*/ + RTUNI_ALPHA, /* U+013222: EGYPTIAN HIEROGLYPH NL003*/ + RTUNI_ALPHA, /* U+013223: EGYPTIAN HIEROGLYPH NL004*/ + RTUNI_ALPHA, /* U+013224: EGYPTIAN HIEROGLYPH NL005*/ + RTUNI_ALPHA, /* U+013225: EGYPTIAN HIEROGLYPH NL005A*/ + RTUNI_ALPHA, /* U+013226: EGYPTIAN HIEROGLYPH NL006*/ + RTUNI_ALPHA, /* U+013227: EGYPTIAN HIEROGLYPH NL007*/ + RTUNI_ALPHA, /* U+013228: EGYPTIAN HIEROGLYPH NL008*/ + RTUNI_ALPHA, /* U+013229: EGYPTIAN HIEROGLYPH NL009*/ + RTUNI_ALPHA, /* U+01322a: EGYPTIAN HIEROGLYPH NL010*/ + RTUNI_ALPHA, /* U+01322b: EGYPTIAN HIEROGLYPH NL011*/ + RTUNI_ALPHA, /* U+01322c: EGYPTIAN HIEROGLYPH NL012*/ + RTUNI_ALPHA, /* U+01322d: EGYPTIAN HIEROGLYPH NL013*/ + RTUNI_ALPHA, /* U+01322e: EGYPTIAN HIEROGLYPH NL014*/ + RTUNI_ALPHA, /* U+01322f: EGYPTIAN HIEROGLYPH NL015*/ + RTUNI_ALPHA, /* U+013230: EGYPTIAN HIEROGLYPH NL016*/ + RTUNI_ALPHA, /* U+013231: EGYPTIAN HIEROGLYPH NL017*/ + RTUNI_ALPHA, /* U+013232: EGYPTIAN HIEROGLYPH NL017A*/ + RTUNI_ALPHA, /* U+013233: EGYPTIAN HIEROGLYPH NL018*/ + RTUNI_ALPHA, /* U+013234: EGYPTIAN HIEROGLYPH NL019*/ + RTUNI_ALPHA, /* U+013235: EGYPTIAN HIEROGLYPH NL020*/ + RTUNI_ALPHA, /* U+013236: EGYPTIAN HIEROGLYPH NU001*/ + RTUNI_ALPHA, /* U+013237: EGYPTIAN HIEROGLYPH NU002*/ + RTUNI_ALPHA, /* U+013238: EGYPTIAN HIEROGLYPH NU003*/ + RTUNI_ALPHA, /* U+013239: EGYPTIAN HIEROGLYPH NU004*/ + RTUNI_ALPHA, /* U+01323a: EGYPTIAN HIEROGLYPH NU005*/ + RTUNI_ALPHA, /* U+01323b: EGYPTIAN HIEROGLYPH NU006*/ + RTUNI_ALPHA, /* U+01323c: EGYPTIAN HIEROGLYPH NU007*/ + RTUNI_ALPHA, /* U+01323d: EGYPTIAN HIEROGLYPH NU008*/ + RTUNI_ALPHA, /* U+01323e: EGYPTIAN HIEROGLYPH NU009*/ + RTUNI_ALPHA, /* U+01323f: EGYPTIAN HIEROGLYPH NU010*/ + RTUNI_ALPHA, /* U+013240: EGYPTIAN HIEROGLYPH NU010A*/ + RTUNI_ALPHA, /* U+013241: EGYPTIAN HIEROGLYPH NU011*/ + RTUNI_ALPHA, /* U+013242: EGYPTIAN HIEROGLYPH NU011A*/ + RTUNI_ALPHA, /* U+013243: EGYPTIAN HIEROGLYPH NU012*/ + RTUNI_ALPHA, /* U+013244: EGYPTIAN HIEROGLYPH NU013*/ + RTUNI_ALPHA, /* U+013245: EGYPTIAN HIEROGLYPH NU014*/ + RTUNI_ALPHA, /* U+013246: EGYPTIAN HIEROGLYPH NU015*/ + RTUNI_ALPHA, /* U+013247: EGYPTIAN HIEROGLYPH NU016*/ + RTUNI_ALPHA, /* U+013248: EGYPTIAN HIEROGLYPH NU017*/ + RTUNI_ALPHA, /* U+013249: EGYPTIAN HIEROGLYPH NU018*/ + RTUNI_ALPHA, /* U+01324a: EGYPTIAN HIEROGLYPH NU018A*/ + RTUNI_ALPHA, /* U+01324b: EGYPTIAN HIEROGLYPH NU019*/ + RTUNI_ALPHA, /* U+01324c: EGYPTIAN HIEROGLYPH NU020*/ + RTUNI_ALPHA, /* U+01324d: EGYPTIAN HIEROGLYPH NU021*/ + RTUNI_ALPHA, /* U+01324e: EGYPTIAN HIEROGLYPH NU022*/ + RTUNI_ALPHA, /* U+01324f: EGYPTIAN HIEROGLYPH NU022A*/ + RTUNI_ALPHA, /* U+013250: EGYPTIAN HIEROGLYPH O001*/ + RTUNI_ALPHA, /* U+013251: EGYPTIAN HIEROGLYPH O001A*/ + RTUNI_ALPHA, /* U+013252: EGYPTIAN HIEROGLYPH O002*/ + RTUNI_ALPHA, /* U+013253: EGYPTIAN HIEROGLYPH O003*/ + RTUNI_ALPHA, /* U+013254: EGYPTIAN HIEROGLYPH O004*/ + RTUNI_ALPHA, /* U+013255: EGYPTIAN HIEROGLYPH O005*/ + RTUNI_ALPHA, /* U+013256: EGYPTIAN HIEROGLYPH O005A*/ + RTUNI_ALPHA, /* U+013257: EGYPTIAN HIEROGLYPH O006*/ + RTUNI_ALPHA, /* U+013258: EGYPTIAN HIEROGLYPH O006A*/ + RTUNI_ALPHA, /* U+013259: EGYPTIAN HIEROGLYPH O006B*/ + RTUNI_ALPHA, /* U+01325a: EGYPTIAN HIEROGLYPH O006C*/ + RTUNI_ALPHA, /* U+01325b: EGYPTIAN HIEROGLYPH O006D*/ + RTUNI_ALPHA, /* U+01325c: EGYPTIAN HIEROGLYPH O006E*/ + RTUNI_ALPHA, /* U+01325d: EGYPTIAN HIEROGLYPH O006F*/ + RTUNI_ALPHA, /* U+01325e: EGYPTIAN HIEROGLYPH O007*/ + RTUNI_ALPHA, /* U+01325f: EGYPTIAN HIEROGLYPH O008*/ + RTUNI_ALPHA, /* U+013260: EGYPTIAN HIEROGLYPH O009*/ + RTUNI_ALPHA, /* U+013261: EGYPTIAN HIEROGLYPH O010*/ + RTUNI_ALPHA, /* U+013262: EGYPTIAN HIEROGLYPH O010A*/ + RTUNI_ALPHA, /* U+013263: EGYPTIAN HIEROGLYPH O010B*/ + RTUNI_ALPHA, /* U+013264: EGYPTIAN HIEROGLYPH O010C*/ + RTUNI_ALPHA, /* U+013265: EGYPTIAN HIEROGLYPH O011*/ + RTUNI_ALPHA, /* U+013266: EGYPTIAN HIEROGLYPH O012*/ + RTUNI_ALPHA, /* U+013267: EGYPTIAN HIEROGLYPH O013*/ + RTUNI_ALPHA, /* U+013268: EGYPTIAN HIEROGLYPH O014*/ + RTUNI_ALPHA, /* U+013269: EGYPTIAN HIEROGLYPH O015*/ + RTUNI_ALPHA, /* U+01326a: EGYPTIAN HIEROGLYPH O016*/ + RTUNI_ALPHA, /* U+01326b: EGYPTIAN HIEROGLYPH O017*/ + RTUNI_ALPHA, /* U+01326c: EGYPTIAN HIEROGLYPH O018*/ + RTUNI_ALPHA, /* U+01326d: EGYPTIAN HIEROGLYPH O019*/ + RTUNI_ALPHA, /* U+01326e: EGYPTIAN HIEROGLYPH O019A*/ + RTUNI_ALPHA, /* U+01326f: EGYPTIAN HIEROGLYPH O020*/ + RTUNI_ALPHA, /* U+013270: EGYPTIAN HIEROGLYPH O020A*/ + RTUNI_ALPHA, /* U+013271: EGYPTIAN HIEROGLYPH O021*/ + RTUNI_ALPHA, /* U+013272: EGYPTIAN HIEROGLYPH O022*/ + RTUNI_ALPHA, /* U+013273: EGYPTIAN HIEROGLYPH O023*/ + RTUNI_ALPHA, /* U+013274: EGYPTIAN HIEROGLYPH O024*/ + RTUNI_ALPHA, /* U+013275: EGYPTIAN HIEROGLYPH O024A*/ + RTUNI_ALPHA, /* U+013276: EGYPTIAN HIEROGLYPH O025*/ + RTUNI_ALPHA, /* U+013277: EGYPTIAN HIEROGLYPH O025A*/ + RTUNI_ALPHA, /* U+013278: EGYPTIAN HIEROGLYPH O026*/ + RTUNI_ALPHA, /* U+013279: EGYPTIAN HIEROGLYPH O027*/ + RTUNI_ALPHA, /* U+01327a: EGYPTIAN HIEROGLYPH O028*/ + RTUNI_ALPHA, /* U+01327b: EGYPTIAN HIEROGLYPH O029*/ + RTUNI_ALPHA, /* U+01327c: EGYPTIAN HIEROGLYPH O029A*/ + RTUNI_ALPHA, /* U+01327d: EGYPTIAN HIEROGLYPH O030*/ + RTUNI_ALPHA, /* U+01327e: EGYPTIAN HIEROGLYPH O030A*/ + RTUNI_ALPHA, /* U+01327f: EGYPTIAN HIEROGLYPH O031*/ + RTUNI_ALPHA, /* U+013280: EGYPTIAN HIEROGLYPH O032*/ + RTUNI_ALPHA, /* U+013281: EGYPTIAN HIEROGLYPH O033*/ + RTUNI_ALPHA, /* U+013282: EGYPTIAN HIEROGLYPH O033A*/ + RTUNI_ALPHA, /* U+013283: EGYPTIAN HIEROGLYPH O034*/ + RTUNI_ALPHA, /* U+013284: EGYPTIAN HIEROGLYPH O035*/ + RTUNI_ALPHA, /* U+013285: EGYPTIAN HIEROGLYPH O036*/ + RTUNI_ALPHA, /* U+013286: EGYPTIAN HIEROGLYPH O036A*/ + RTUNI_ALPHA, /* U+013287: EGYPTIAN HIEROGLYPH O036B*/ + RTUNI_ALPHA, /* U+013288: EGYPTIAN HIEROGLYPH O036C*/ + RTUNI_ALPHA, /* U+013289: EGYPTIAN HIEROGLYPH O036D*/ + RTUNI_ALPHA, /* U+01328a: EGYPTIAN HIEROGLYPH O037*/ + RTUNI_ALPHA, /* U+01328b: EGYPTIAN HIEROGLYPH O038*/ + RTUNI_ALPHA, /* U+01328c: EGYPTIAN HIEROGLYPH O039*/ + RTUNI_ALPHA, /* U+01328d: EGYPTIAN HIEROGLYPH O040*/ + RTUNI_ALPHA, /* U+01328e: EGYPTIAN HIEROGLYPH O041*/ + RTUNI_ALPHA, /* U+01328f: EGYPTIAN HIEROGLYPH O042*/ + RTUNI_ALPHA, /* U+013290: EGYPTIAN HIEROGLYPH O043*/ + RTUNI_ALPHA, /* U+013291: EGYPTIAN HIEROGLYPH O044*/ + RTUNI_ALPHA, /* U+013292: EGYPTIAN HIEROGLYPH O045*/ + RTUNI_ALPHA, /* U+013293: EGYPTIAN HIEROGLYPH O046*/ + RTUNI_ALPHA, /* U+013294: EGYPTIAN HIEROGLYPH O047*/ + RTUNI_ALPHA, /* U+013295: EGYPTIAN HIEROGLYPH O048*/ + RTUNI_ALPHA, /* U+013296: EGYPTIAN HIEROGLYPH O049*/ + RTUNI_ALPHA, /* U+013297: EGYPTIAN HIEROGLYPH O050*/ + RTUNI_ALPHA, /* U+013298: EGYPTIAN HIEROGLYPH O050A*/ + RTUNI_ALPHA, /* U+013299: EGYPTIAN HIEROGLYPH O050B*/ + RTUNI_ALPHA, /* U+01329a: EGYPTIAN HIEROGLYPH O051*/ + RTUNI_ALPHA, /* U+01329b: EGYPTIAN HIEROGLYPH P001*/ + RTUNI_ALPHA, /* U+01329c: EGYPTIAN HIEROGLYPH P001A*/ + RTUNI_ALPHA, /* U+01329d: EGYPTIAN HIEROGLYPH P002*/ + RTUNI_ALPHA, /* U+01329e: EGYPTIAN HIEROGLYPH P003*/ + RTUNI_ALPHA, /* U+01329f: EGYPTIAN HIEROGLYPH P003A*/ + RTUNI_ALPHA, /* U+0132a0: EGYPTIAN HIEROGLYPH P004*/ + RTUNI_ALPHA, /* U+0132a1: EGYPTIAN HIEROGLYPH P005*/ + RTUNI_ALPHA, /* U+0132a2: EGYPTIAN HIEROGLYPH P006*/ + RTUNI_ALPHA, /* U+0132a3: EGYPTIAN HIEROGLYPH P007*/ + RTUNI_ALPHA, /* U+0132a4: EGYPTIAN HIEROGLYPH P008*/ + RTUNI_ALPHA, /* U+0132a5: EGYPTIAN HIEROGLYPH P009*/ + RTUNI_ALPHA, /* U+0132a6: EGYPTIAN HIEROGLYPH P010*/ + RTUNI_ALPHA, /* U+0132a7: EGYPTIAN HIEROGLYPH P011*/ + RTUNI_ALPHA, /* U+0132a8: EGYPTIAN HIEROGLYPH Q001*/ + RTUNI_ALPHA, /* U+0132a9: EGYPTIAN HIEROGLYPH Q002*/ + RTUNI_ALPHA, /* U+0132aa: EGYPTIAN HIEROGLYPH Q003*/ + RTUNI_ALPHA, /* U+0132ab: EGYPTIAN HIEROGLYPH Q004*/ + RTUNI_ALPHA, /* U+0132ac: EGYPTIAN HIEROGLYPH Q005*/ + RTUNI_ALPHA, /* U+0132ad: EGYPTIAN HIEROGLYPH Q006*/ + RTUNI_ALPHA, /* U+0132ae: EGYPTIAN HIEROGLYPH Q007*/ + RTUNI_ALPHA, /* U+0132af: EGYPTIAN HIEROGLYPH R001*/ + RTUNI_ALPHA, /* U+0132b0: EGYPTIAN HIEROGLYPH R002*/ + RTUNI_ALPHA, /* U+0132b1: EGYPTIAN HIEROGLYPH R002A*/ + RTUNI_ALPHA, /* U+0132b2: EGYPTIAN HIEROGLYPH R003*/ + RTUNI_ALPHA, /* U+0132b3: EGYPTIAN HIEROGLYPH R003A*/ + RTUNI_ALPHA, /* U+0132b4: EGYPTIAN HIEROGLYPH R003B*/ + RTUNI_ALPHA, /* U+0132b5: EGYPTIAN HIEROGLYPH R004*/ + RTUNI_ALPHA, /* U+0132b6: EGYPTIAN HIEROGLYPH R005*/ + RTUNI_ALPHA, /* U+0132b7: EGYPTIAN HIEROGLYPH R006*/ + RTUNI_ALPHA, /* U+0132b8: EGYPTIAN HIEROGLYPH R007*/ + RTUNI_ALPHA, /* U+0132b9: EGYPTIAN HIEROGLYPH R008*/ + RTUNI_ALPHA, /* U+0132ba: EGYPTIAN HIEROGLYPH R009*/ + RTUNI_ALPHA, /* U+0132bb: EGYPTIAN HIEROGLYPH R010*/ + RTUNI_ALPHA, /* U+0132bc: EGYPTIAN HIEROGLYPH R010A*/ + RTUNI_ALPHA, /* U+0132bd: EGYPTIAN HIEROGLYPH R011*/ + RTUNI_ALPHA, /* U+0132be: EGYPTIAN HIEROGLYPH R012*/ + RTUNI_ALPHA, /* U+0132bf: EGYPTIAN HIEROGLYPH R013*/ + RTUNI_ALPHA, /* U+0132c0: EGYPTIAN HIEROGLYPH R014*/ + RTUNI_ALPHA, /* U+0132c1: EGYPTIAN HIEROGLYPH R015*/ + RTUNI_ALPHA, /* U+0132c2: EGYPTIAN HIEROGLYPH R016*/ + RTUNI_ALPHA, /* U+0132c3: EGYPTIAN HIEROGLYPH R016A*/ + RTUNI_ALPHA, /* U+0132c4: EGYPTIAN HIEROGLYPH R017*/ + RTUNI_ALPHA, /* U+0132c5: EGYPTIAN HIEROGLYPH R018*/ + RTUNI_ALPHA, /* U+0132c6: EGYPTIAN HIEROGLYPH R019*/ + RTUNI_ALPHA, /* U+0132c7: EGYPTIAN HIEROGLYPH R020*/ + RTUNI_ALPHA, /* U+0132c8: EGYPTIAN HIEROGLYPH R021*/ + RTUNI_ALPHA, /* U+0132c9: EGYPTIAN HIEROGLYPH R022*/ + RTUNI_ALPHA, /* U+0132ca: EGYPTIAN HIEROGLYPH R023*/ + RTUNI_ALPHA, /* U+0132cb: EGYPTIAN HIEROGLYPH R024*/ + RTUNI_ALPHA, /* U+0132cc: EGYPTIAN HIEROGLYPH R025*/ + RTUNI_ALPHA, /* U+0132cd: EGYPTIAN HIEROGLYPH R026*/ + RTUNI_ALPHA, /* U+0132ce: EGYPTIAN HIEROGLYPH R027*/ + RTUNI_ALPHA, /* U+0132cf: EGYPTIAN HIEROGLYPH R028*/ + RTUNI_ALPHA, /* U+0132d0: EGYPTIAN HIEROGLYPH R029*/ + RTUNI_ALPHA, /* U+0132d1: EGYPTIAN HIEROGLYPH S001*/ + RTUNI_ALPHA, /* U+0132d2: EGYPTIAN HIEROGLYPH S002*/ + RTUNI_ALPHA, /* U+0132d3: EGYPTIAN HIEROGLYPH S002A*/ + RTUNI_ALPHA, /* U+0132d4: EGYPTIAN HIEROGLYPH S003*/ + RTUNI_ALPHA, /* U+0132d5: EGYPTIAN HIEROGLYPH S004*/ + RTUNI_ALPHA, /* U+0132d6: EGYPTIAN HIEROGLYPH S005*/ + RTUNI_ALPHA, /* U+0132d7: EGYPTIAN HIEROGLYPH S006*/ + RTUNI_ALPHA, /* U+0132d8: EGYPTIAN HIEROGLYPH S006A*/ + RTUNI_ALPHA, /* U+0132d9: EGYPTIAN HIEROGLYPH S007*/ + RTUNI_ALPHA, /* U+0132da: EGYPTIAN HIEROGLYPH S008*/ + RTUNI_ALPHA, /* U+0132db: EGYPTIAN HIEROGLYPH S009*/ + RTUNI_ALPHA, /* U+0132dc: EGYPTIAN HIEROGLYPH S010*/ + RTUNI_ALPHA, /* U+0132dd: EGYPTIAN HIEROGLYPH S011*/ + RTUNI_ALPHA, /* U+0132de: EGYPTIAN HIEROGLYPH S012*/ + RTUNI_ALPHA, /* U+0132df: EGYPTIAN HIEROGLYPH S013*/ + RTUNI_ALPHA, /* U+0132e0: EGYPTIAN HIEROGLYPH S014*/ + RTUNI_ALPHA, /* U+0132e1: EGYPTIAN HIEROGLYPH S014A*/ + RTUNI_ALPHA, /* U+0132e2: EGYPTIAN HIEROGLYPH S014B*/ + RTUNI_ALPHA, /* U+0132e3: EGYPTIAN HIEROGLYPH S015*/ + RTUNI_ALPHA, /* U+0132e4: EGYPTIAN HIEROGLYPH S016*/ + RTUNI_ALPHA, /* U+0132e5: EGYPTIAN HIEROGLYPH S017*/ + RTUNI_ALPHA, /* U+0132e6: EGYPTIAN HIEROGLYPH S017A*/ + RTUNI_ALPHA, /* U+0132e7: EGYPTIAN HIEROGLYPH S018*/ + RTUNI_ALPHA, /* U+0132e8: EGYPTIAN HIEROGLYPH S019*/ + RTUNI_ALPHA, /* U+0132e9: EGYPTIAN HIEROGLYPH S020*/ + RTUNI_ALPHA, /* U+0132ea: EGYPTIAN HIEROGLYPH S021*/ + RTUNI_ALPHA, /* U+0132eb: EGYPTIAN HIEROGLYPH S022*/ + RTUNI_ALPHA, /* U+0132ec: EGYPTIAN HIEROGLYPH S023*/ + RTUNI_ALPHA, /* U+0132ed: EGYPTIAN HIEROGLYPH S024*/ + RTUNI_ALPHA, /* U+0132ee: EGYPTIAN HIEROGLYPH S025*/ + RTUNI_ALPHA, /* U+0132ef: EGYPTIAN HIEROGLYPH S026*/ + RTUNI_ALPHA, /* U+0132f0: EGYPTIAN HIEROGLYPH S026A*/ + RTUNI_ALPHA, /* U+0132f1: EGYPTIAN HIEROGLYPH S026B*/ + RTUNI_ALPHA, /* U+0132f2: EGYPTIAN HIEROGLYPH S027*/ + RTUNI_ALPHA, /* U+0132f3: EGYPTIAN HIEROGLYPH S028*/ + RTUNI_ALPHA, /* U+0132f4: EGYPTIAN HIEROGLYPH S029*/ + RTUNI_ALPHA, /* U+0132f5: EGYPTIAN HIEROGLYPH S030*/ + RTUNI_ALPHA, /* U+0132f6: EGYPTIAN HIEROGLYPH S031*/ + RTUNI_ALPHA, /* U+0132f7: EGYPTIAN HIEROGLYPH S032*/ + RTUNI_ALPHA, /* U+0132f8: EGYPTIAN HIEROGLYPH S033*/ + RTUNI_ALPHA, /* U+0132f9: EGYPTIAN HIEROGLYPH S034*/ + RTUNI_ALPHA, /* U+0132fa: EGYPTIAN HIEROGLYPH S035*/ + RTUNI_ALPHA, /* U+0132fb: EGYPTIAN HIEROGLYPH S035A*/ + RTUNI_ALPHA, /* U+0132fc: EGYPTIAN HIEROGLYPH S036*/ + RTUNI_ALPHA, /* U+0132fd: EGYPTIAN HIEROGLYPH S037*/ + RTUNI_ALPHA, /* U+0132fe: EGYPTIAN HIEROGLYPH S038*/ + RTUNI_ALPHA, /* U+0132ff: EGYPTIAN HIEROGLYPH S039*/ + RTUNI_ALPHA, /* U+013300: EGYPTIAN HIEROGLYPH S040*/ + RTUNI_ALPHA, /* U+013301: EGYPTIAN HIEROGLYPH S041*/ + RTUNI_ALPHA, /* U+013302: EGYPTIAN HIEROGLYPH S042*/ + RTUNI_ALPHA, /* U+013303: EGYPTIAN HIEROGLYPH S043*/ + RTUNI_ALPHA, /* U+013304: EGYPTIAN HIEROGLYPH S044*/ + RTUNI_ALPHA, /* U+013305: EGYPTIAN HIEROGLYPH S045*/ + RTUNI_ALPHA, /* U+013306: EGYPTIAN HIEROGLYPH S046*/ + RTUNI_ALPHA, /* U+013307: EGYPTIAN HIEROGLYPH T001*/ + RTUNI_ALPHA, /* U+013308: EGYPTIAN HIEROGLYPH T002*/ + RTUNI_ALPHA, /* U+013309: EGYPTIAN HIEROGLYPH T003*/ + RTUNI_ALPHA, /* U+01330a: EGYPTIAN HIEROGLYPH T003A*/ + RTUNI_ALPHA, /* U+01330b: EGYPTIAN HIEROGLYPH T004*/ + RTUNI_ALPHA, /* U+01330c: EGYPTIAN HIEROGLYPH T005*/ + RTUNI_ALPHA, /* U+01330d: EGYPTIAN HIEROGLYPH T006*/ + RTUNI_ALPHA, /* U+01330e: EGYPTIAN HIEROGLYPH T007*/ + RTUNI_ALPHA, /* U+01330f: EGYPTIAN HIEROGLYPH T007A*/ + RTUNI_ALPHA, /* U+013310: EGYPTIAN HIEROGLYPH T008*/ + RTUNI_ALPHA, /* U+013311: EGYPTIAN HIEROGLYPH T008A*/ + RTUNI_ALPHA, /* U+013312: EGYPTIAN HIEROGLYPH T009*/ + RTUNI_ALPHA, /* U+013313: EGYPTIAN HIEROGLYPH T009A*/ + RTUNI_ALPHA, /* U+013314: EGYPTIAN HIEROGLYPH T010*/ + RTUNI_ALPHA, /* U+013315: EGYPTIAN HIEROGLYPH T011*/ + RTUNI_ALPHA, /* U+013316: EGYPTIAN HIEROGLYPH T011A*/ + RTUNI_ALPHA, /* U+013317: EGYPTIAN HIEROGLYPH T012*/ + RTUNI_ALPHA, /* U+013318: EGYPTIAN HIEROGLYPH T013*/ + RTUNI_ALPHA, /* U+013319: EGYPTIAN HIEROGLYPH T014*/ + RTUNI_ALPHA, /* U+01331a: EGYPTIAN HIEROGLYPH T015*/ + RTUNI_ALPHA, /* U+01331b: EGYPTIAN HIEROGLYPH T016*/ + RTUNI_ALPHA, /* U+01331c: EGYPTIAN HIEROGLYPH T016A*/ + RTUNI_ALPHA, /* U+01331d: EGYPTIAN HIEROGLYPH T017*/ + RTUNI_ALPHA, /* U+01331e: EGYPTIAN HIEROGLYPH T018*/ + RTUNI_ALPHA, /* U+01331f: EGYPTIAN HIEROGLYPH T019*/ + RTUNI_ALPHA, /* U+013320: EGYPTIAN HIEROGLYPH T020*/ + RTUNI_ALPHA, /* U+013321: EGYPTIAN HIEROGLYPH T021*/ + RTUNI_ALPHA, /* U+013322: EGYPTIAN HIEROGLYPH T022*/ + RTUNI_ALPHA, /* U+013323: EGYPTIAN HIEROGLYPH T023*/ + RTUNI_ALPHA, /* U+013324: EGYPTIAN HIEROGLYPH T024*/ + RTUNI_ALPHA, /* U+013325: EGYPTIAN HIEROGLYPH T025*/ + RTUNI_ALPHA, /* U+013326: EGYPTIAN HIEROGLYPH T026*/ + RTUNI_ALPHA, /* U+013327: EGYPTIAN HIEROGLYPH T027*/ + RTUNI_ALPHA, /* U+013328: EGYPTIAN HIEROGLYPH T028*/ + RTUNI_ALPHA, /* U+013329: EGYPTIAN HIEROGLYPH T029*/ + RTUNI_ALPHA, /* U+01332a: EGYPTIAN HIEROGLYPH T030*/ + RTUNI_ALPHA, /* U+01332b: EGYPTIAN HIEROGLYPH T031*/ + RTUNI_ALPHA, /* U+01332c: EGYPTIAN HIEROGLYPH T032*/ + RTUNI_ALPHA, /* U+01332d: EGYPTIAN HIEROGLYPH T032A*/ + RTUNI_ALPHA, /* U+01332e: EGYPTIAN HIEROGLYPH T033*/ + RTUNI_ALPHA, /* U+01332f: EGYPTIAN HIEROGLYPH T033A*/ + RTUNI_ALPHA, /* U+013330: EGYPTIAN HIEROGLYPH T034*/ + RTUNI_ALPHA, /* U+013331: EGYPTIAN HIEROGLYPH T035*/ + RTUNI_ALPHA, /* U+013332: EGYPTIAN HIEROGLYPH T036*/ + RTUNI_ALPHA, /* U+013333: EGYPTIAN HIEROGLYPH U001*/ + RTUNI_ALPHA, /* U+013334: EGYPTIAN HIEROGLYPH U002*/ + RTUNI_ALPHA, /* U+013335: EGYPTIAN HIEROGLYPH U003*/ + RTUNI_ALPHA, /* U+013336: EGYPTIAN HIEROGLYPH U004*/ + RTUNI_ALPHA, /* U+013337: EGYPTIAN HIEROGLYPH U005*/ + RTUNI_ALPHA, /* U+013338: EGYPTIAN HIEROGLYPH U006*/ + RTUNI_ALPHA, /* U+013339: EGYPTIAN HIEROGLYPH U006A*/ + RTUNI_ALPHA, /* U+01333a: EGYPTIAN HIEROGLYPH U006B*/ + RTUNI_ALPHA, /* U+01333b: EGYPTIAN HIEROGLYPH U007*/ + RTUNI_ALPHA, /* U+01333c: EGYPTIAN HIEROGLYPH U008*/ + RTUNI_ALPHA, /* U+01333d: EGYPTIAN HIEROGLYPH U009*/ + RTUNI_ALPHA, /* U+01333e: EGYPTIAN HIEROGLYPH U010*/ + RTUNI_ALPHA, /* U+01333f: EGYPTIAN HIEROGLYPH U011*/ + RTUNI_ALPHA, /* U+013340: EGYPTIAN HIEROGLYPH U012*/ + RTUNI_ALPHA, /* U+013341: EGYPTIAN HIEROGLYPH U013*/ + RTUNI_ALPHA, /* U+013342: EGYPTIAN HIEROGLYPH U014*/ + RTUNI_ALPHA, /* U+013343: EGYPTIAN HIEROGLYPH U015*/ + RTUNI_ALPHA, /* U+013344: EGYPTIAN HIEROGLYPH U016*/ + RTUNI_ALPHA, /* U+013345: EGYPTIAN HIEROGLYPH U017*/ + RTUNI_ALPHA, /* U+013346: EGYPTIAN HIEROGLYPH U018*/ + RTUNI_ALPHA, /* U+013347: EGYPTIAN HIEROGLYPH U019*/ + RTUNI_ALPHA, /* U+013348: EGYPTIAN HIEROGLYPH U020*/ + RTUNI_ALPHA, /* U+013349: EGYPTIAN HIEROGLYPH U021*/ + RTUNI_ALPHA, /* U+01334a: EGYPTIAN HIEROGLYPH U022*/ + RTUNI_ALPHA, /* U+01334b: EGYPTIAN HIEROGLYPH U023*/ + RTUNI_ALPHA, /* U+01334c: EGYPTIAN HIEROGLYPH U023A*/ + RTUNI_ALPHA, /* U+01334d: EGYPTIAN HIEROGLYPH U024*/ + RTUNI_ALPHA, /* U+01334e: EGYPTIAN HIEROGLYPH U025*/ + RTUNI_ALPHA, /* U+01334f: EGYPTIAN HIEROGLYPH U026*/ + RTUNI_ALPHA, /* U+013350: EGYPTIAN HIEROGLYPH U027*/ + RTUNI_ALPHA, /* U+013351: EGYPTIAN HIEROGLYPH U028*/ + RTUNI_ALPHA, /* U+013352: EGYPTIAN HIEROGLYPH U029*/ + RTUNI_ALPHA, /* U+013353: EGYPTIAN HIEROGLYPH U029A*/ + RTUNI_ALPHA, /* U+013354: EGYPTIAN HIEROGLYPH U030*/ + RTUNI_ALPHA, /* U+013355: EGYPTIAN HIEROGLYPH U031*/ + RTUNI_ALPHA, /* U+013356: EGYPTIAN HIEROGLYPH U032*/ + RTUNI_ALPHA, /* U+013357: EGYPTIAN HIEROGLYPH U032A*/ + RTUNI_ALPHA, /* U+013358: EGYPTIAN HIEROGLYPH U033*/ + RTUNI_ALPHA, /* U+013359: EGYPTIAN HIEROGLYPH U034*/ + RTUNI_ALPHA, /* U+01335a: EGYPTIAN HIEROGLYPH U035*/ + RTUNI_ALPHA, /* U+01335b: EGYPTIAN HIEROGLYPH U036*/ + RTUNI_ALPHA, /* U+01335c: EGYPTIAN HIEROGLYPH U037*/ + RTUNI_ALPHA, /* U+01335d: EGYPTIAN HIEROGLYPH U038*/ + RTUNI_ALPHA, /* U+01335e: EGYPTIAN HIEROGLYPH U039*/ + RTUNI_ALPHA, /* U+01335f: EGYPTIAN HIEROGLYPH U040*/ + RTUNI_ALPHA, /* U+013360: EGYPTIAN HIEROGLYPH U041*/ + RTUNI_ALPHA, /* U+013361: EGYPTIAN HIEROGLYPH U042*/ + RTUNI_ALPHA, /* U+013362: EGYPTIAN HIEROGLYPH V001*/ + RTUNI_ALPHA, /* U+013363: EGYPTIAN HIEROGLYPH V001A*/ + RTUNI_ALPHA, /* U+013364: EGYPTIAN HIEROGLYPH V001B*/ + RTUNI_ALPHA, /* U+013365: EGYPTIAN HIEROGLYPH V001C*/ + RTUNI_ALPHA, /* U+013366: EGYPTIAN HIEROGLYPH V001D*/ + RTUNI_ALPHA, /* U+013367: EGYPTIAN HIEROGLYPH V001E*/ + RTUNI_ALPHA, /* U+013368: EGYPTIAN HIEROGLYPH V001F*/ + RTUNI_ALPHA, /* U+013369: EGYPTIAN HIEROGLYPH V001G*/ + RTUNI_ALPHA, /* U+01336a: EGYPTIAN HIEROGLYPH V001H*/ + RTUNI_ALPHA, /* U+01336b: EGYPTIAN HIEROGLYPH V001I*/ + RTUNI_ALPHA, /* U+01336c: EGYPTIAN HIEROGLYPH V002*/ + RTUNI_ALPHA, /* U+01336d: EGYPTIAN HIEROGLYPH V002A*/ + RTUNI_ALPHA, /* U+01336e: EGYPTIAN HIEROGLYPH V003*/ + RTUNI_ALPHA, /* U+01336f: EGYPTIAN HIEROGLYPH V004*/ + RTUNI_ALPHA, /* U+013370: EGYPTIAN HIEROGLYPH V005*/ + RTUNI_ALPHA, /* U+013371: EGYPTIAN HIEROGLYPH V006*/ + RTUNI_ALPHA, /* U+013372: EGYPTIAN HIEROGLYPH V007*/ + RTUNI_ALPHA, /* U+013373: EGYPTIAN HIEROGLYPH V007A*/ + RTUNI_ALPHA, /* U+013374: EGYPTIAN HIEROGLYPH V007B*/ + RTUNI_ALPHA, /* U+013375: EGYPTIAN HIEROGLYPH V008*/ + RTUNI_ALPHA, /* U+013376: EGYPTIAN HIEROGLYPH V009*/ + RTUNI_ALPHA, /* U+013377: EGYPTIAN HIEROGLYPH V010*/ + RTUNI_ALPHA, /* U+013378: EGYPTIAN HIEROGLYPH V011*/ + RTUNI_ALPHA, /* U+013379: EGYPTIAN HIEROGLYPH V011A*/ + RTUNI_ALPHA, /* U+01337a: EGYPTIAN HIEROGLYPH V011B*/ + RTUNI_ALPHA, /* U+01337b: EGYPTIAN HIEROGLYPH V011C*/ + RTUNI_ALPHA, /* U+01337c: EGYPTIAN HIEROGLYPH V012*/ + RTUNI_ALPHA, /* U+01337d: EGYPTIAN HIEROGLYPH V012A*/ + RTUNI_ALPHA, /* U+01337e: EGYPTIAN HIEROGLYPH V012B*/ + RTUNI_ALPHA, /* U+01337f: EGYPTIAN HIEROGLYPH V013*/ + RTUNI_ALPHA, /* U+013380: EGYPTIAN HIEROGLYPH V014*/ + RTUNI_ALPHA, /* U+013381: EGYPTIAN HIEROGLYPH V015*/ + RTUNI_ALPHA, /* U+013382: EGYPTIAN HIEROGLYPH V016*/ + RTUNI_ALPHA, /* U+013383: EGYPTIAN HIEROGLYPH V017*/ + RTUNI_ALPHA, /* U+013384: EGYPTIAN HIEROGLYPH V018*/ + RTUNI_ALPHA, /* U+013385: EGYPTIAN HIEROGLYPH V019*/ + RTUNI_ALPHA, /* U+013386: EGYPTIAN HIEROGLYPH V020*/ + RTUNI_ALPHA, /* U+013387: EGYPTIAN HIEROGLYPH V020A*/ + RTUNI_ALPHA, /* U+013388: EGYPTIAN HIEROGLYPH V020B*/ + RTUNI_ALPHA, /* U+013389: EGYPTIAN HIEROGLYPH V020C*/ + RTUNI_ALPHA, /* U+01338a: EGYPTIAN HIEROGLYPH V020D*/ + RTUNI_ALPHA, /* U+01338b: EGYPTIAN HIEROGLYPH V020E*/ + RTUNI_ALPHA, /* U+01338c: EGYPTIAN HIEROGLYPH V020F*/ + RTUNI_ALPHA, /* U+01338d: EGYPTIAN HIEROGLYPH V020G*/ + RTUNI_ALPHA, /* U+01338e: EGYPTIAN HIEROGLYPH V020H*/ + RTUNI_ALPHA, /* U+01338f: EGYPTIAN HIEROGLYPH V020I*/ + RTUNI_ALPHA, /* U+013390: EGYPTIAN HIEROGLYPH V020J*/ + RTUNI_ALPHA, /* U+013391: EGYPTIAN HIEROGLYPH V020K*/ + RTUNI_ALPHA, /* U+013392: EGYPTIAN HIEROGLYPH V020L*/ + RTUNI_ALPHA, /* U+013393: EGYPTIAN HIEROGLYPH V021*/ + RTUNI_ALPHA, /* U+013394: EGYPTIAN HIEROGLYPH V022*/ + RTUNI_ALPHA, /* U+013395: EGYPTIAN HIEROGLYPH V023*/ + RTUNI_ALPHA, /* U+013396: EGYPTIAN HIEROGLYPH V023A*/ + RTUNI_ALPHA, /* U+013397: EGYPTIAN HIEROGLYPH V024*/ + RTUNI_ALPHA, /* U+013398: EGYPTIAN HIEROGLYPH V025*/ + RTUNI_ALPHA, /* U+013399: EGYPTIAN HIEROGLYPH V026*/ + RTUNI_ALPHA, /* U+01339a: EGYPTIAN HIEROGLYPH V027*/ + RTUNI_ALPHA, /* U+01339b: EGYPTIAN HIEROGLYPH V028*/ + RTUNI_ALPHA, /* U+01339c: EGYPTIAN HIEROGLYPH V028A*/ + RTUNI_ALPHA, /* U+01339d: EGYPTIAN HIEROGLYPH V029*/ + RTUNI_ALPHA, /* U+01339e: EGYPTIAN HIEROGLYPH V029A*/ + RTUNI_ALPHA, /* U+01339f: EGYPTIAN HIEROGLYPH V030*/ + RTUNI_ALPHA, /* U+0133a0: EGYPTIAN HIEROGLYPH V030A*/ + RTUNI_ALPHA, /* U+0133a1: EGYPTIAN HIEROGLYPH V031*/ + RTUNI_ALPHA, /* U+0133a2: EGYPTIAN HIEROGLYPH V031A*/ + RTUNI_ALPHA, /* U+0133a3: EGYPTIAN HIEROGLYPH V032*/ + RTUNI_ALPHA, /* U+0133a4: EGYPTIAN HIEROGLYPH V033*/ + RTUNI_ALPHA, /* U+0133a5: EGYPTIAN HIEROGLYPH V033A*/ + RTUNI_ALPHA, /* U+0133a6: EGYPTIAN HIEROGLYPH V034*/ + RTUNI_ALPHA, /* U+0133a7: EGYPTIAN HIEROGLYPH V035*/ + RTUNI_ALPHA, /* U+0133a8: EGYPTIAN HIEROGLYPH V036*/ + RTUNI_ALPHA, /* U+0133a9: EGYPTIAN HIEROGLYPH V037*/ + RTUNI_ALPHA, /* U+0133aa: EGYPTIAN HIEROGLYPH V037A*/ + RTUNI_ALPHA, /* U+0133ab: EGYPTIAN HIEROGLYPH V038*/ + RTUNI_ALPHA, /* U+0133ac: EGYPTIAN HIEROGLYPH V039*/ + RTUNI_ALPHA, /* U+0133ad: EGYPTIAN HIEROGLYPH V040*/ + RTUNI_ALPHA, /* U+0133ae: EGYPTIAN HIEROGLYPH V040A*/ + RTUNI_ALPHA, /* U+0133af: EGYPTIAN HIEROGLYPH W001*/ + RTUNI_ALPHA, /* U+0133b0: EGYPTIAN HIEROGLYPH W002*/ + RTUNI_ALPHA, /* U+0133b1: EGYPTIAN HIEROGLYPH W003*/ + RTUNI_ALPHA, /* U+0133b2: EGYPTIAN HIEROGLYPH W003A*/ + RTUNI_ALPHA, /* U+0133b3: EGYPTIAN HIEROGLYPH W004*/ + RTUNI_ALPHA, /* U+0133b4: EGYPTIAN HIEROGLYPH W005*/ + RTUNI_ALPHA, /* U+0133b5: EGYPTIAN HIEROGLYPH W006*/ + RTUNI_ALPHA, /* U+0133b6: EGYPTIAN HIEROGLYPH W007*/ + RTUNI_ALPHA, /* U+0133b7: EGYPTIAN HIEROGLYPH W008*/ + RTUNI_ALPHA, /* U+0133b8: EGYPTIAN HIEROGLYPH W009*/ + RTUNI_ALPHA, /* U+0133b9: EGYPTIAN HIEROGLYPH W009A*/ + RTUNI_ALPHA, /* U+0133ba: EGYPTIAN HIEROGLYPH W010*/ + RTUNI_ALPHA, /* U+0133bb: EGYPTIAN HIEROGLYPH W010A*/ + RTUNI_ALPHA, /* U+0133bc: EGYPTIAN HIEROGLYPH W011*/ + RTUNI_ALPHA, /* U+0133bd: EGYPTIAN HIEROGLYPH W012*/ + RTUNI_ALPHA, /* U+0133be: EGYPTIAN HIEROGLYPH W013*/ + RTUNI_ALPHA, /* U+0133bf: EGYPTIAN HIEROGLYPH W014*/ + RTUNI_ALPHA, /* U+0133c0: EGYPTIAN HIEROGLYPH W014A*/ + RTUNI_ALPHA, /* U+0133c1: EGYPTIAN HIEROGLYPH W015*/ + RTUNI_ALPHA, /* U+0133c2: EGYPTIAN HIEROGLYPH W016*/ + RTUNI_ALPHA, /* U+0133c3: EGYPTIAN HIEROGLYPH W017*/ + RTUNI_ALPHA, /* U+0133c4: EGYPTIAN HIEROGLYPH W017A*/ + RTUNI_ALPHA, /* U+0133c5: EGYPTIAN HIEROGLYPH W018*/ + RTUNI_ALPHA, /* U+0133c6: EGYPTIAN HIEROGLYPH W018A*/ + RTUNI_ALPHA, /* U+0133c7: EGYPTIAN HIEROGLYPH W019*/ + RTUNI_ALPHA, /* U+0133c8: EGYPTIAN HIEROGLYPH W020*/ + RTUNI_ALPHA, /* U+0133c9: EGYPTIAN HIEROGLYPH W021*/ + RTUNI_ALPHA, /* U+0133ca: EGYPTIAN HIEROGLYPH W022*/ + RTUNI_ALPHA, /* U+0133cb: EGYPTIAN HIEROGLYPH W023*/ + RTUNI_ALPHA, /* U+0133cc: EGYPTIAN HIEROGLYPH W024*/ + RTUNI_ALPHA, /* U+0133cd: EGYPTIAN HIEROGLYPH W024A*/ + RTUNI_ALPHA, /* U+0133ce: EGYPTIAN HIEROGLYPH W025*/ + RTUNI_ALPHA, /* U+0133cf: EGYPTIAN HIEROGLYPH X001*/ + RTUNI_ALPHA, /* U+0133d0: EGYPTIAN HIEROGLYPH X002*/ + RTUNI_ALPHA, /* U+0133d1: EGYPTIAN HIEROGLYPH X003*/ + RTUNI_ALPHA, /* U+0133d2: EGYPTIAN HIEROGLYPH X004*/ + RTUNI_ALPHA, /* U+0133d3: EGYPTIAN HIEROGLYPH X004A*/ + RTUNI_ALPHA, /* U+0133d4: EGYPTIAN HIEROGLYPH X004B*/ + RTUNI_ALPHA, /* U+0133d5: EGYPTIAN HIEROGLYPH X005*/ + RTUNI_ALPHA, /* U+0133d6: EGYPTIAN HIEROGLYPH X006*/ + RTUNI_ALPHA, /* U+0133d7: EGYPTIAN HIEROGLYPH X006A*/ + RTUNI_ALPHA, /* U+0133d8: EGYPTIAN HIEROGLYPH X007*/ + RTUNI_ALPHA, /* U+0133d9: EGYPTIAN HIEROGLYPH X008*/ + RTUNI_ALPHA, /* U+0133da: EGYPTIAN HIEROGLYPH X008A*/ + RTUNI_ALPHA, /* U+0133db: EGYPTIAN HIEROGLYPH Y001*/ + RTUNI_ALPHA, /* U+0133dc: EGYPTIAN HIEROGLYPH Y001A*/ + RTUNI_ALPHA, /* U+0133dd: EGYPTIAN HIEROGLYPH Y002*/ + RTUNI_ALPHA, /* U+0133de: EGYPTIAN HIEROGLYPH Y003*/ + RTUNI_ALPHA, /* U+0133df: EGYPTIAN HIEROGLYPH Y004*/ + RTUNI_ALPHA, /* U+0133e0: EGYPTIAN HIEROGLYPH Y005*/ + RTUNI_ALPHA, /* U+0133e1: EGYPTIAN HIEROGLYPH Y006*/ + RTUNI_ALPHA, /* U+0133e2: EGYPTIAN HIEROGLYPH Y007*/ + RTUNI_ALPHA, /* U+0133e3: EGYPTIAN HIEROGLYPH Y008*/ + RTUNI_ALPHA, /* U+0133e4: EGYPTIAN HIEROGLYPH Z001*/ + RTUNI_ALPHA, /* U+0133e5: EGYPTIAN HIEROGLYPH Z002*/ + RTUNI_ALPHA, /* U+0133e6: EGYPTIAN HIEROGLYPH Z002A*/ + RTUNI_ALPHA, /* U+0133e7: EGYPTIAN HIEROGLYPH Z002B*/ + RTUNI_ALPHA, /* U+0133e8: EGYPTIAN HIEROGLYPH Z002C*/ + RTUNI_ALPHA, /* U+0133e9: EGYPTIAN HIEROGLYPH Z002D*/ + RTUNI_ALPHA, /* U+0133ea: EGYPTIAN HIEROGLYPH Z003*/ + RTUNI_ALPHA, /* U+0133eb: EGYPTIAN HIEROGLYPH Z003A*/ + RTUNI_ALPHA, /* U+0133ec: EGYPTIAN HIEROGLYPH Z003B*/ + RTUNI_ALPHA, /* U+0133ed: EGYPTIAN HIEROGLYPH Z004*/ + RTUNI_ALPHA, /* U+0133ee: EGYPTIAN HIEROGLYPH Z004A*/ + RTUNI_ALPHA, /* U+0133ef: EGYPTIAN HIEROGLYPH Z005*/ + RTUNI_ALPHA, /* U+0133f0: EGYPTIAN HIEROGLYPH Z005A*/ + RTUNI_ALPHA, /* U+0133f1: EGYPTIAN HIEROGLYPH Z006*/ + RTUNI_ALPHA, /* U+0133f2: EGYPTIAN HIEROGLYPH Z007*/ + RTUNI_ALPHA, /* U+0133f3: EGYPTIAN HIEROGLYPH Z008*/ + RTUNI_ALPHA, /* U+0133f4: EGYPTIAN HIEROGLYPH Z009*/ + RTUNI_ALPHA, /* U+0133f5: EGYPTIAN HIEROGLYPH Z010*/ + RTUNI_ALPHA, /* U+0133f6: EGYPTIAN HIEROGLYPH Z011*/ + RTUNI_ALPHA, /* U+0133f7: EGYPTIAN HIEROGLYPH Z012*/ + RTUNI_ALPHA, /* U+0133f8: EGYPTIAN HIEROGLYPH Z013*/ + RTUNI_ALPHA, /* U+0133f9: EGYPTIAN HIEROGLYPH Z014*/ + RTUNI_ALPHA, /* U+0133fa: EGYPTIAN HIEROGLYPH Z015*/ + RTUNI_ALPHA, /* U+0133fb: EGYPTIAN HIEROGLYPH Z015A*/ + RTUNI_ALPHA, /* U+0133fc: EGYPTIAN HIEROGLYPH Z015B*/ + RTUNI_ALPHA, /* U+0133fd: EGYPTIAN HIEROGLYPH Z015C*/ + RTUNI_ALPHA, /* U+0133fe: EGYPTIAN HIEROGLYPH Z015D*/ + RTUNI_ALPHA, /* U+0133ff: EGYPTIAN HIEROGLYPH Z015E*/ + RTUNI_ALPHA, /* U+013400: EGYPTIAN HIEROGLYPH Z015F*/ + RTUNI_ALPHA, /* U+013401: EGYPTIAN HIEROGLYPH Z015G*/ + RTUNI_ALPHA, /* U+013402: EGYPTIAN HIEROGLYPH Z015H*/ + RTUNI_ALPHA, /* U+013403: EGYPTIAN HIEROGLYPH Z015I*/ + RTUNI_ALPHA, /* U+013404: EGYPTIAN HIEROGLYPH Z016*/ + RTUNI_ALPHA, /* U+013405: EGYPTIAN HIEROGLYPH Z016A*/ + RTUNI_ALPHA, /* U+013406: EGYPTIAN HIEROGLYPH Z016B*/ + RTUNI_ALPHA, /* U+013407: EGYPTIAN HIEROGLYPH Z016C*/ + RTUNI_ALPHA, /* U+013408: EGYPTIAN HIEROGLYPH Z016D*/ + RTUNI_ALPHA, /* U+013409: EGYPTIAN HIEROGLYPH Z016E*/ + RTUNI_ALPHA, /* U+01340a: EGYPTIAN HIEROGLYPH Z016F*/ + RTUNI_ALPHA, /* U+01340b: EGYPTIAN HIEROGLYPH Z016G*/ + RTUNI_ALPHA, /* U+01340c: EGYPTIAN HIEROGLYPH Z016H*/ + RTUNI_ALPHA, /* U+01340d: EGYPTIAN HIEROGLYPH AA001*/ + RTUNI_ALPHA, /* U+01340e: EGYPTIAN HIEROGLYPH AA002*/ + RTUNI_ALPHA, /* U+01340f: EGYPTIAN HIEROGLYPH AA003*/ + RTUNI_ALPHA, /* U+013410: EGYPTIAN HIEROGLYPH AA004*/ + RTUNI_ALPHA, /* U+013411: EGYPTIAN HIEROGLYPH AA005*/ + RTUNI_ALPHA, /* U+013412: EGYPTIAN HIEROGLYPH AA006*/ + RTUNI_ALPHA, /* U+013413: EGYPTIAN HIEROGLYPH AA007*/ + RTUNI_ALPHA, /* U+013414: EGYPTIAN HIEROGLYPH AA007A*/ + RTUNI_ALPHA, /* U+013415: EGYPTIAN HIEROGLYPH AA007B*/ + RTUNI_ALPHA, /* U+013416: EGYPTIAN HIEROGLYPH AA008*/ + RTUNI_ALPHA, /* U+013417: EGYPTIAN HIEROGLYPH AA009*/ + RTUNI_ALPHA, /* U+013418: EGYPTIAN HIEROGLYPH AA010*/ + RTUNI_ALPHA, /* U+013419: EGYPTIAN HIEROGLYPH AA011*/ + RTUNI_ALPHA, /* U+01341a: EGYPTIAN HIEROGLYPH AA012*/ + RTUNI_ALPHA, /* U+01341b: EGYPTIAN HIEROGLYPH AA013*/ + RTUNI_ALPHA, /* U+01341c: EGYPTIAN HIEROGLYPH AA014*/ + RTUNI_ALPHA, /* U+01341d: EGYPTIAN HIEROGLYPH AA015*/ + RTUNI_ALPHA, /* U+01341e: EGYPTIAN HIEROGLYPH AA016*/ + RTUNI_ALPHA, /* U+01341f: EGYPTIAN HIEROGLYPH AA017*/ + RTUNI_ALPHA, /* U+013420: EGYPTIAN HIEROGLYPH AA018*/ + RTUNI_ALPHA, /* U+013421: EGYPTIAN HIEROGLYPH AA019*/ + RTUNI_ALPHA, /* U+013422: EGYPTIAN HIEROGLYPH AA020*/ + RTUNI_ALPHA, /* U+013423: EGYPTIAN HIEROGLYPH AA021*/ + RTUNI_ALPHA, /* U+013424: EGYPTIAN HIEROGLYPH AA022*/ + RTUNI_ALPHA, /* U+013425: EGYPTIAN HIEROGLYPH AA023*/ + RTUNI_ALPHA, /* U+013426: EGYPTIAN HIEROGLYPH AA024*/ + RTUNI_ALPHA, /* U+013427: EGYPTIAN HIEROGLYPH AA025*/ + RTUNI_ALPHA, /* U+013428: EGYPTIAN HIEROGLYPH AA026*/ + RTUNI_ALPHA, /* U+013429: EGYPTIAN HIEROGLYPH AA027*/ + RTUNI_ALPHA, /* U+01342a: EGYPTIAN HIEROGLYPH AA028*/ + RTUNI_ALPHA, /* U+01342b: EGYPTIAN HIEROGLYPH AA029*/ + RTUNI_ALPHA, /* U+01342c: EGYPTIAN HIEROGLYPH AA030*/ + RTUNI_ALPHA, /* U+01342d: EGYPTIAN HIEROGLYPH AA031*/ + RTUNI_ALPHA, /* U+01342e: EGYPTIAN HIEROGLYPH AA032*/ +}; + +static const uint8_t g_afRTUniFlags0x016800[] = +{ + RTUNI_ALPHA, /* U+016800: BAMUM LETTER PHASE-A NGKUE MFON*/ + RTUNI_ALPHA, /* U+016801: BAMUM LETTER PHASE-A GBIEE FON*/ + RTUNI_ALPHA, /* U+016802: BAMUM LETTER PHASE-A PON MFON PIPAEMGBIEE*/ + RTUNI_ALPHA, /* U+016803: BAMUM LETTER PHASE-A PON MFON PIPAEMBA*/ + RTUNI_ALPHA, /* U+016804: BAMUM LETTER PHASE-A NAA MFON*/ + RTUNI_ALPHA, /* U+016805: BAMUM LETTER PHASE-A SHUENSHUET*/ + RTUNI_ALPHA, /* U+016806: BAMUM LETTER PHASE-A TITA MFON*/ + RTUNI_ALPHA, /* U+016807: BAMUM LETTER PHASE-A NZA MFON*/ + RTUNI_ALPHA, /* U+016808: BAMUM LETTER PHASE-A SHINDA PA NJI*/ + RTUNI_ALPHA, /* U+016809: BAMUM LETTER PHASE-A PON PA NJI PIPAEMGBIEE*/ + RTUNI_ALPHA, /* U+01680a: BAMUM LETTER PHASE-A PON PA NJI PIPAEMBA*/ + RTUNI_ALPHA, /* U+01680b: BAMUM LETTER PHASE-A MAEMBGBIEE*/ + RTUNI_ALPHA, /* U+01680c: BAMUM LETTER PHASE-A TU MAEMBA*/ + RTUNI_ALPHA, /* U+01680d: BAMUM LETTER PHASE-A NGANGU*/ + RTUNI_ALPHA, /* U+01680e: BAMUM LETTER PHASE-A MAEMVEUX*/ + RTUNI_ALPHA, /* U+01680f: BAMUM LETTER PHASE-A MANSUAE*/ + RTUNI_ALPHA, /* U+016810: BAMUM LETTER PHASE-A MVEUAENGAM*/ + RTUNI_ALPHA, /* U+016811: BAMUM LETTER PHASE-A SEUNYAM*/ + RTUNI_ALPHA, /* U+016812: BAMUM LETTER PHASE-A NTOQPEN*/ + RTUNI_ALPHA, /* U+016813: BAMUM LETTER PHASE-A KEUKEUTNDA*/ + RTUNI_ALPHA, /* U+016814: BAMUM LETTER PHASE-A NKINDI*/ + RTUNI_ALPHA, /* U+016815: BAMUM LETTER PHASE-A SUU*/ + RTUNI_ALPHA, /* U+016816: BAMUM LETTER PHASE-A NGKUENZEUM*/ + RTUNI_ALPHA, /* U+016817: BAMUM LETTER PHASE-A LAPAQ*/ + RTUNI_ALPHA, /* U+016818: BAMUM LETTER PHASE-A LET KUT*/ + RTUNI_ALPHA, /* U+016819: BAMUM LETTER PHASE-A NTAP MFAA*/ + RTUNI_ALPHA, /* U+01681a: BAMUM LETTER PHASE-A MAEKEUP*/ + RTUNI_ALPHA, /* U+01681b: BAMUM LETTER PHASE-A PASHAE*/ + RTUNI_ALPHA, /* U+01681c: BAMUM LETTER PHASE-A GHEUAERAE*/ + RTUNI_ALPHA, /* U+01681d: BAMUM LETTER PHASE-A PAMSHAE*/ + RTUNI_ALPHA, /* U+01681e: BAMUM LETTER PHASE-A MON NGGEUAET*/ + RTUNI_ALPHA, /* U+01681f: BAMUM LETTER PHASE-A NZUN MEUT*/ + RTUNI_ALPHA, /* U+016820: BAMUM LETTER PHASE-A U YUQ NAE*/ + RTUNI_ALPHA, /* U+016821: BAMUM LETTER PHASE-A GHEUAEGHEUAE*/ + RTUNI_ALPHA, /* U+016822: BAMUM LETTER PHASE-A NTAP NTAA*/ + RTUNI_ALPHA, /* U+016823: BAMUM LETTER PHASE-A SISA*/ + RTUNI_ALPHA, /* U+016824: BAMUM LETTER PHASE-A MGBASA*/ + RTUNI_ALPHA, /* U+016825: BAMUM LETTER PHASE-A MEUNJOMNDEUQ*/ + RTUNI_ALPHA, /* U+016826: BAMUM LETTER PHASE-A MOOMPUQ*/ + RTUNI_ALPHA, /* U+016827: BAMUM LETTER PHASE-A KAFA*/ + RTUNI_ALPHA, /* U+016828: BAMUM LETTER PHASE-A PA LEERAEWA*/ + RTUNI_ALPHA, /* U+016829: BAMUM LETTER PHASE-A NDA LEERAEWA*/ + RTUNI_ALPHA, /* U+01682a: BAMUM LETTER PHASE-A PET*/ + RTUNI_ALPHA, /* U+01682b: BAMUM LETTER PHASE-A MAEMKPEN*/ + RTUNI_ALPHA, /* U+01682c: BAMUM LETTER PHASE-A NIKA*/ + RTUNI_ALPHA, /* U+01682d: BAMUM LETTER PHASE-A PUP*/ + RTUNI_ALPHA, /* U+01682e: BAMUM LETTER PHASE-A TUAEP*/ + RTUNI_ALPHA, /* U+01682f: BAMUM LETTER PHASE-A LUAEP*/ + RTUNI_ALPHA, /* U+016830: BAMUM LETTER PHASE-A SONJAM*/ + RTUNI_ALPHA, /* U+016831: BAMUM LETTER PHASE-A TEUTEUWEN*/ + RTUNI_ALPHA, /* U+016832: BAMUM LETTER PHASE-A MAENYI*/ + RTUNI_ALPHA, /* U+016833: BAMUM LETTER PHASE-A KET*/ + RTUNI_ALPHA, /* U+016834: BAMUM LETTER PHASE-A NDAANGGEUAET*/ + RTUNI_ALPHA, /* U+016835: BAMUM LETTER PHASE-A KUOQ*/ + RTUNI_ALPHA, /* U+016836: BAMUM LETTER PHASE-A MOOMEUT*/ + RTUNI_ALPHA, /* U+016837: BAMUM LETTER PHASE-A SHUM*/ + RTUNI_ALPHA, /* U+016838: BAMUM LETTER PHASE-A LOMMAE*/ + RTUNI_ALPHA, /* U+016839: BAMUM LETTER PHASE-A FIRI*/ + RTUNI_ALPHA, /* U+01683a: BAMUM LETTER PHASE-A ROM*/ + RTUNI_ALPHA, /* U+01683b: BAMUM LETTER PHASE-A KPOQ*/ + RTUNI_ALPHA, /* U+01683c: BAMUM LETTER PHASE-A SOQ*/ + RTUNI_ALPHA, /* U+01683d: BAMUM LETTER PHASE-A MAP PIEET*/ + RTUNI_ALPHA, /* U+01683e: BAMUM LETTER PHASE-A SHIRAE*/ + RTUNI_ALPHA, /* U+01683f: BAMUM LETTER PHASE-A NTAP*/ + RTUNI_ALPHA, /* U+016840: BAMUM LETTER PHASE-A SHOQ NSHUT YUM*/ + RTUNI_ALPHA, /* U+016841: BAMUM LETTER PHASE-A NYIT MONGKEUAEQ*/ + RTUNI_ALPHA, /* U+016842: BAMUM LETTER PHASE-A PAARAE*/ + RTUNI_ALPHA, /* U+016843: BAMUM LETTER PHASE-A NKAARAE*/ + RTUNI_ALPHA, /* U+016844: BAMUM LETTER PHASE-A UNKNOWN*/ + RTUNI_ALPHA, /* U+016845: BAMUM LETTER PHASE-A NGGEN*/ + RTUNI_ALPHA, /* U+016846: BAMUM LETTER PHASE-A MAESI*/ + RTUNI_ALPHA, /* U+016847: BAMUM LETTER PHASE-A NJAM*/ + RTUNI_ALPHA, /* U+016848: BAMUM LETTER PHASE-A MBANYI*/ + RTUNI_ALPHA, /* U+016849: BAMUM LETTER PHASE-A NYET*/ + RTUNI_ALPHA, /* U+01684a: BAMUM LETTER PHASE-A TEUAEN*/ + RTUNI_ALPHA, /* U+01684b: BAMUM LETTER PHASE-A SOT*/ + RTUNI_ALPHA, /* U+01684c: BAMUM LETTER PHASE-A PAAM*/ + RTUNI_ALPHA, /* U+01684d: BAMUM LETTER PHASE-A NSHIEE*/ + RTUNI_ALPHA, /* U+01684e: BAMUM LETTER PHASE-A MAEM*/ + RTUNI_ALPHA, /* U+01684f: BAMUM LETTER PHASE-A NYI*/ + RTUNI_ALPHA, /* U+016850: BAMUM LETTER PHASE-A KAQ*/ + RTUNI_ALPHA, /* U+016851: BAMUM LETTER PHASE-A NSHA*/ + RTUNI_ALPHA, /* U+016852: BAMUM LETTER PHASE-A VEE*/ + RTUNI_ALPHA, /* U+016853: BAMUM LETTER PHASE-A LU*/ + RTUNI_ALPHA, /* U+016854: BAMUM LETTER PHASE-A NEN*/ + RTUNI_ALPHA, /* U+016855: BAMUM LETTER PHASE-A NAQ*/ + RTUNI_ALPHA, /* U+016856: BAMUM LETTER PHASE-A MBAQ*/ + RTUNI_ALPHA, /* U+016857: BAMUM LETTER PHASE-B NSHUET*/ + RTUNI_ALPHA, /* U+016858: BAMUM LETTER PHASE-B TU MAEMGBIEE*/ + RTUNI_ALPHA, /* U+016859: BAMUM LETTER PHASE-B SIEE*/ + RTUNI_ALPHA, /* U+01685a: BAMUM LETTER PHASE-B SET TU*/ + RTUNI_ALPHA, /* U+01685b: BAMUM LETTER PHASE-B LOM NTEUM*/ + RTUNI_ALPHA, /* U+01685c: BAMUM LETTER PHASE-B MBA MAELEE*/ + RTUNI_ALPHA, /* U+01685d: BAMUM LETTER PHASE-B KIEEM*/ + RTUNI_ALPHA, /* U+01685e: BAMUM LETTER PHASE-B YEURAE*/ + RTUNI_ALPHA, /* U+01685f: BAMUM LETTER PHASE-B MBAARAE*/ + RTUNI_ALPHA, /* U+016860: BAMUM LETTER PHASE-B KAM*/ + RTUNI_ALPHA, /* U+016861: BAMUM LETTER PHASE-B PEESHI*/ + RTUNI_ALPHA, /* U+016862: BAMUM LETTER PHASE-B YAFU LEERAEWA*/ + RTUNI_ALPHA, /* U+016863: BAMUM LETTER PHASE-B LAM NSHUT NYAM*/ + RTUNI_ALPHA, /* U+016864: BAMUM LETTER PHASE-B NTIEE SHEUOQ*/ + RTUNI_ALPHA, /* U+016865: BAMUM LETTER PHASE-B NDU NJAA*/ + RTUNI_ALPHA, /* U+016866: BAMUM LETTER PHASE-B GHEUGHEUAEM*/ + RTUNI_ALPHA, /* U+016867: BAMUM LETTER PHASE-B PIT*/ + RTUNI_ALPHA, /* U+016868: BAMUM LETTER PHASE-B TU NSIEE*/ + RTUNI_ALPHA, /* U+016869: BAMUM LETTER PHASE-B SHET NJAQ*/ + RTUNI_ALPHA, /* U+01686a: BAMUM LETTER PHASE-B SHEUAEQTU*/ + RTUNI_ALPHA, /* U+01686b: BAMUM LETTER PHASE-B MFON TEUAEQ*/ + RTUNI_ALPHA, /* U+01686c: BAMUM LETTER PHASE-B MBIT MBAAKET*/ + RTUNI_ALPHA, /* U+01686d: BAMUM LETTER PHASE-B NYI NTEUM*/ + RTUNI_ALPHA, /* U+01686e: BAMUM LETTER PHASE-B KEUPUQ*/ + RTUNI_ALPHA, /* U+01686f: BAMUM LETTER PHASE-B GHEUGHEN*/ + RTUNI_ALPHA, /* U+016870: BAMUM LETTER PHASE-B KEUYEUX*/ + RTUNI_ALPHA, /* U+016871: BAMUM LETTER PHASE-B LAANAE*/ + RTUNI_ALPHA, /* U+016872: BAMUM LETTER PHASE-B PARUM*/ + RTUNI_ALPHA, /* U+016873: BAMUM LETTER PHASE-B VEUM*/ + RTUNI_ALPHA, /* U+016874: BAMUM LETTER PHASE-B NGKINDI MVOP*/ + RTUNI_ALPHA, /* U+016875: BAMUM LETTER PHASE-B NGGEU MBU*/ + RTUNI_ALPHA, /* U+016876: BAMUM LETTER PHASE-B WUAET*/ + RTUNI_ALPHA, /* U+016877: BAMUM LETTER PHASE-B SAKEUAE*/ + RTUNI_ALPHA, /* U+016878: BAMUM LETTER PHASE-B TAAM*/ + RTUNI_ALPHA, /* U+016879: BAMUM LETTER PHASE-B MEUQ*/ + RTUNI_ALPHA, /* U+01687a: BAMUM LETTER PHASE-B NGGUOQ*/ + RTUNI_ALPHA, /* U+01687b: BAMUM LETTER PHASE-B NGGUOQ LARGE*/ + RTUNI_ALPHA, /* U+01687c: BAMUM LETTER PHASE-B MFIYAQ*/ + RTUNI_ALPHA, /* U+01687d: BAMUM LETTER PHASE-B SUE*/ + RTUNI_ALPHA, /* U+01687e: BAMUM LETTER PHASE-B MBEURI*/ + RTUNI_ALPHA, /* U+01687f: BAMUM LETTER PHASE-B MONTIEEN*/ + RTUNI_ALPHA, /* U+016880: BAMUM LETTER PHASE-B NYAEMAE*/ + RTUNI_ALPHA, /* U+016881: BAMUM LETTER PHASE-B PUNGAAM*/ + RTUNI_ALPHA, /* U+016882: BAMUM LETTER PHASE-B MEUT NGGEET*/ + RTUNI_ALPHA, /* U+016883: BAMUM LETTER PHASE-B FEUX*/ + RTUNI_ALPHA, /* U+016884: BAMUM LETTER PHASE-B MBUOQ*/ + RTUNI_ALPHA, /* U+016885: BAMUM LETTER PHASE-B FEE*/ + RTUNI_ALPHA, /* U+016886: BAMUM LETTER PHASE-B KEUAEM*/ + RTUNI_ALPHA, /* U+016887: BAMUM LETTER PHASE-B MA NJEUAENA*/ + RTUNI_ALPHA, /* U+016888: BAMUM LETTER PHASE-B MA NJUQA*/ + RTUNI_ALPHA, /* U+016889: BAMUM LETTER PHASE-B LET*/ + RTUNI_ALPHA, /* U+01688a: BAMUM LETTER PHASE-B NGGAAM*/ + RTUNI_ALPHA, /* U+01688b: BAMUM LETTER PHASE-B NSEN*/ + RTUNI_ALPHA, /* U+01688c: BAMUM LETTER PHASE-B MA*/ + RTUNI_ALPHA, /* U+01688d: BAMUM LETTER PHASE-B KIQ*/ + RTUNI_ALPHA, /* U+01688e: BAMUM LETTER PHASE-B NGOM*/ + RTUNI_ALPHA, /* U+01688f: BAMUM LETTER PHASE-C NGKUE MAEMBA*/ + RTUNI_ALPHA, /* U+016890: BAMUM LETTER PHASE-C NZA*/ + RTUNI_ALPHA, /* U+016891: BAMUM LETTER PHASE-C YUM*/ + RTUNI_ALPHA, /* U+016892: BAMUM LETTER PHASE-C WANGKUOQ*/ + RTUNI_ALPHA, /* U+016893: BAMUM LETTER PHASE-C NGGEN*/ + RTUNI_ALPHA, /* U+016894: BAMUM LETTER PHASE-C NDEUAEREE*/ + RTUNI_ALPHA, /* U+016895: BAMUM LETTER PHASE-C NGKAQ*/ + RTUNI_ALPHA, /* U+016896: BAMUM LETTER PHASE-C GHARAE*/ + RTUNI_ALPHA, /* U+016897: BAMUM LETTER PHASE-C MBEEKEET*/ + RTUNI_ALPHA, /* U+016898: BAMUM LETTER PHASE-C GBAYI*/ + RTUNI_ALPHA, /* U+016899: BAMUM LETTER PHASE-C NYIR MKPARAQ MEUN*/ + RTUNI_ALPHA, /* U+01689a: BAMUM LETTER PHASE-C NTU MBIT*/ + RTUNI_ALPHA, /* U+01689b: BAMUM LETTER PHASE-C MBEUM*/ + RTUNI_ALPHA, /* U+01689c: BAMUM LETTER PHASE-C PIRIEEN*/ + RTUNI_ALPHA, /* U+01689d: BAMUM LETTER PHASE-C NDOMBU*/ + RTUNI_ALPHA, /* U+01689e: BAMUM LETTER PHASE-C MBAA CABBAGE-TREE*/ + RTUNI_ALPHA, /* U+01689f: BAMUM LETTER PHASE-C KEUSHEUAEP*/ + RTUNI_ALPHA, /* U+0168a0: BAMUM LETTER PHASE-C GHAP*/ + RTUNI_ALPHA, /* U+0168a1: BAMUM LETTER PHASE-C KEUKAQ*/ + RTUNI_ALPHA, /* U+0168a2: BAMUM LETTER PHASE-C YU MUOMAE*/ + RTUNI_ALPHA, /* U+0168a3: BAMUM LETTER PHASE-C NZEUM*/ + RTUNI_ALPHA, /* U+0168a4: BAMUM LETTER PHASE-C MBUE*/ + RTUNI_ALPHA, /* U+0168a5: BAMUM LETTER PHASE-C NSEUAEN*/ + RTUNI_ALPHA, /* U+0168a6: BAMUM LETTER PHASE-C MBIT*/ + RTUNI_ALPHA, /* U+0168a7: BAMUM LETTER PHASE-C YEUQ*/ + RTUNI_ALPHA, /* U+0168a8: BAMUM LETTER PHASE-C KPARAQ*/ + RTUNI_ALPHA, /* U+0168a9: BAMUM LETTER PHASE-C KAA*/ + RTUNI_ALPHA, /* U+0168aa: BAMUM LETTER PHASE-C SEUX*/ + RTUNI_ALPHA, /* U+0168ab: BAMUM LETTER PHASE-C NDIDA*/ + RTUNI_ALPHA, /* U+0168ac: BAMUM LETTER PHASE-C TAASHAE*/ + RTUNI_ALPHA, /* U+0168ad: BAMUM LETTER PHASE-C NJUEQ*/ + RTUNI_ALPHA, /* U+0168ae: BAMUM LETTER PHASE-C TITA YUE*/ + RTUNI_ALPHA, /* U+0168af: BAMUM LETTER PHASE-C SUAET*/ + RTUNI_ALPHA, /* U+0168b0: BAMUM LETTER PHASE-C NGGUAEN NYAM*/ + RTUNI_ALPHA, /* U+0168b1: BAMUM LETTER PHASE-C VEUX*/ + RTUNI_ALPHA, /* U+0168b2: BAMUM LETTER PHASE-C NANSANAQ*/ + RTUNI_ALPHA, /* U+0168b3: BAMUM LETTER PHASE-C MA KEUAERI*/ + RTUNI_ALPHA, /* U+0168b4: BAMUM LETTER PHASE-C NTAA*/ + RTUNI_ALPHA, /* U+0168b5: BAMUM LETTER PHASE-C NGGUON*/ + RTUNI_ALPHA, /* U+0168b6: BAMUM LETTER PHASE-C LAP*/ + RTUNI_ALPHA, /* U+0168b7: BAMUM LETTER PHASE-C MBIRIEEN*/ + RTUNI_ALPHA, /* U+0168b8: BAMUM LETTER PHASE-C MGBASAQ*/ + RTUNI_ALPHA, /* U+0168b9: BAMUM LETTER PHASE-C NTEUNGBA*/ + RTUNI_ALPHA, /* U+0168ba: BAMUM LETTER PHASE-C TEUTEUX*/ + RTUNI_ALPHA, /* U+0168bb: BAMUM LETTER PHASE-C NGGUM*/ + RTUNI_ALPHA, /* U+0168bc: BAMUM LETTER PHASE-C FUE*/ + RTUNI_ALPHA, /* U+0168bd: BAMUM LETTER PHASE-C NDEUT*/ + RTUNI_ALPHA, /* U+0168be: BAMUM LETTER PHASE-C NSA*/ + RTUNI_ALPHA, /* U+0168bf: BAMUM LETTER PHASE-C NSHAQ*/ + RTUNI_ALPHA, /* U+0168c0: BAMUM LETTER PHASE-C BUNG*/ + RTUNI_ALPHA, /* U+0168c1: BAMUM LETTER PHASE-C VEUAEPEN*/ + RTUNI_ALPHA, /* U+0168c2: BAMUM LETTER PHASE-C MBERAE*/ + RTUNI_ALPHA, /* U+0168c3: BAMUM LETTER PHASE-C RU*/ + RTUNI_ALPHA, /* U+0168c4: BAMUM LETTER PHASE-C NJAEM*/ + RTUNI_ALPHA, /* U+0168c5: BAMUM LETTER PHASE-C LAM*/ + RTUNI_ALPHA, /* U+0168c6: BAMUM LETTER PHASE-C TITUAEP*/ + RTUNI_ALPHA, /* U+0168c7: BAMUM LETTER PHASE-C NSUOT NGOM*/ + RTUNI_ALPHA, /* U+0168c8: BAMUM LETTER PHASE-C NJEEEE*/ + RTUNI_ALPHA, /* U+0168c9: BAMUM LETTER PHASE-C KET*/ + RTUNI_ALPHA, /* U+0168ca: BAMUM LETTER PHASE-C NGGU*/ + RTUNI_ALPHA, /* U+0168cb: BAMUM LETTER PHASE-C MAESI*/ + RTUNI_ALPHA, /* U+0168cc: BAMUM LETTER PHASE-C MBUAEM*/ + RTUNI_ALPHA, /* U+0168cd: BAMUM LETTER PHASE-C LU*/ + RTUNI_ALPHA, /* U+0168ce: BAMUM LETTER PHASE-C KUT*/ + RTUNI_ALPHA, /* U+0168cf: BAMUM LETTER PHASE-C NJAM*/ + RTUNI_ALPHA, /* U+0168d0: BAMUM LETTER PHASE-C NGOM*/ + RTUNI_ALPHA, /* U+0168d1: BAMUM LETTER PHASE-C WUP*/ + RTUNI_ALPHA, /* U+0168d2: BAMUM LETTER PHASE-C NGGUEET*/ + RTUNI_ALPHA, /* U+0168d3: BAMUM LETTER PHASE-C NSOM*/ + RTUNI_ALPHA, /* U+0168d4: BAMUM LETTER PHASE-C NTEN*/ + RTUNI_ALPHA, /* U+0168d5: BAMUM LETTER PHASE-C KUOP NKAARAE*/ + RTUNI_ALPHA, /* U+0168d6: BAMUM LETTER PHASE-C NSUN*/ + RTUNI_ALPHA, /* U+0168d7: BAMUM LETTER PHASE-C NDAM*/ + RTUNI_ALPHA, /* U+0168d8: BAMUM LETTER PHASE-C MA NSIEE*/ + RTUNI_ALPHA, /* U+0168d9: BAMUM LETTER PHASE-C YAA*/ + RTUNI_ALPHA, /* U+0168da: BAMUM LETTER PHASE-C NDAP*/ + RTUNI_ALPHA, /* U+0168db: BAMUM LETTER PHASE-C SHUEQ*/ + RTUNI_ALPHA, /* U+0168dc: BAMUM LETTER PHASE-C SETFON*/ + RTUNI_ALPHA, /* U+0168dd: BAMUM LETTER PHASE-C MBI*/ + RTUNI_ALPHA, /* U+0168de: BAMUM LETTER PHASE-C MAEMBA*/ + RTUNI_ALPHA, /* U+0168df: BAMUM LETTER PHASE-C MBANYI*/ + RTUNI_ALPHA, /* U+0168e0: BAMUM LETTER PHASE-C KEUSEUX*/ + RTUNI_ALPHA, /* U+0168e1: BAMUM LETTER PHASE-C MBEUX*/ + RTUNI_ALPHA, /* U+0168e2: BAMUM LETTER PHASE-C KEUM*/ + RTUNI_ALPHA, /* U+0168e3: BAMUM LETTER PHASE-C MBAA PICKET*/ + RTUNI_ALPHA, /* U+0168e4: BAMUM LETTER PHASE-C YUWOQ*/ + RTUNI_ALPHA, /* U+0168e5: BAMUM LETTER PHASE-C NJEUX*/ + RTUNI_ALPHA, /* U+0168e6: BAMUM LETTER PHASE-C MIEE*/ + RTUNI_ALPHA, /* U+0168e7: BAMUM LETTER PHASE-C MUAE*/ + RTUNI_ALPHA, /* U+0168e8: BAMUM LETTER PHASE-C SHIQ*/ + RTUNI_ALPHA, /* U+0168e9: BAMUM LETTER PHASE-C KEN LAW*/ + RTUNI_ALPHA, /* U+0168ea: BAMUM LETTER PHASE-C KEN FATIGUE*/ + RTUNI_ALPHA, /* U+0168eb: BAMUM LETTER PHASE-C NGAQ*/ + RTUNI_ALPHA, /* U+0168ec: BAMUM LETTER PHASE-C NAQ*/ + RTUNI_ALPHA, /* U+0168ed: BAMUM LETTER PHASE-C LIQ*/ + RTUNI_ALPHA, /* U+0168ee: BAMUM LETTER PHASE-C PIN*/ + RTUNI_ALPHA, /* U+0168ef: BAMUM LETTER PHASE-C PEN*/ + RTUNI_ALPHA, /* U+0168f0: BAMUM LETTER PHASE-C TET*/ + RTUNI_ALPHA, /* U+0168f1: BAMUM LETTER PHASE-D MBUO*/ + RTUNI_ALPHA, /* U+0168f2: BAMUM LETTER PHASE-D WAP*/ + RTUNI_ALPHA, /* U+0168f3: BAMUM LETTER PHASE-D NJI*/ + RTUNI_ALPHA, /* U+0168f4: BAMUM LETTER PHASE-D MFON*/ + RTUNI_ALPHA, /* U+0168f5: BAMUM LETTER PHASE-D NJIEE*/ + RTUNI_ALPHA, /* U+0168f6: BAMUM LETTER PHASE-D LIEE*/ + RTUNI_ALPHA, /* U+0168f7: BAMUM LETTER PHASE-D NJEUT*/ + RTUNI_ALPHA, /* U+0168f8: BAMUM LETTER PHASE-D NSHEE*/ + RTUNI_ALPHA, /* U+0168f9: BAMUM LETTER PHASE-D NGGAAMAE*/ + RTUNI_ALPHA, /* U+0168fa: BAMUM LETTER PHASE-D NYAM*/ + RTUNI_ALPHA, /* U+0168fb: BAMUM LETTER PHASE-D WUAEN*/ + RTUNI_ALPHA, /* U+0168fc: BAMUM LETTER PHASE-D NGKUN*/ + RTUNI_ALPHA, /* U+0168fd: BAMUM LETTER PHASE-D SHEE*/ + RTUNI_ALPHA, /* U+0168fe: BAMUM LETTER PHASE-D NGKAP*/ + RTUNI_ALPHA, /* U+0168ff: BAMUM LETTER PHASE-D KEUAETMEUN*/ + RTUNI_ALPHA, /* U+016900: BAMUM LETTER PHASE-D TEUT*/ + RTUNI_ALPHA, /* U+016901: BAMUM LETTER PHASE-D SHEUAE*/ + RTUNI_ALPHA, /* U+016902: BAMUM LETTER PHASE-D NJAP*/ + RTUNI_ALPHA, /* U+016903: BAMUM LETTER PHASE-D SUE*/ + RTUNI_ALPHA, /* U+016904: BAMUM LETTER PHASE-D KET*/ + RTUNI_ALPHA, /* U+016905: BAMUM LETTER PHASE-D YAEMMAE*/ + RTUNI_ALPHA, /* U+016906: BAMUM LETTER PHASE-D KUOM*/ + RTUNI_ALPHA, /* U+016907: BAMUM LETTER PHASE-D SAP*/ + RTUNI_ALPHA, /* U+016908: BAMUM LETTER PHASE-D MFEUT*/ + RTUNI_ALPHA, /* U+016909: BAMUM LETTER PHASE-D NDEUX*/ + RTUNI_ALPHA, /* U+01690a: BAMUM LETTER PHASE-D MALEERI*/ + RTUNI_ALPHA, /* U+01690b: BAMUM LETTER PHASE-D MEUT*/ + RTUNI_ALPHA, /* U+01690c: BAMUM LETTER PHASE-D SEUAEQ*/ + RTUNI_ALPHA, /* U+01690d: BAMUM LETTER PHASE-D YEN*/ + RTUNI_ALPHA, /* U+01690e: BAMUM LETTER PHASE-D NJEUAEM*/ + RTUNI_ALPHA, /* U+01690f: BAMUM LETTER PHASE-D KEUOT MBUAE*/ + RTUNI_ALPHA, /* U+016910: BAMUM LETTER PHASE-D NGKEURI*/ + RTUNI_ALPHA, /* U+016911: BAMUM LETTER PHASE-D TU*/ + RTUNI_ALPHA, /* U+016912: BAMUM LETTER PHASE-D GHAA*/ + RTUNI_ALPHA, /* U+016913: BAMUM LETTER PHASE-D NGKYEE*/ + RTUNI_ALPHA, /* U+016914: BAMUM LETTER PHASE-D FEUFEUAET*/ + RTUNI_ALPHA, /* U+016915: BAMUM LETTER PHASE-D NDEE*/ + RTUNI_ALPHA, /* U+016916: BAMUM LETTER PHASE-D MGBOFUM*/ + RTUNI_ALPHA, /* U+016917: BAMUM LETTER PHASE-D LEUAEP*/ + RTUNI_ALPHA, /* U+016918: BAMUM LETTER PHASE-D NDON*/ + RTUNI_ALPHA, /* U+016919: BAMUM LETTER PHASE-D MONI*/ + RTUNI_ALPHA, /* U+01691a: BAMUM LETTER PHASE-D MGBEUN*/ + RTUNI_ALPHA, /* U+01691b: BAMUM LETTER PHASE-D PUUT*/ + RTUNI_ALPHA, /* U+01691c: BAMUM LETTER PHASE-D MGBIEE*/ + RTUNI_ALPHA, /* U+01691d: BAMUM LETTER PHASE-D MFO*/ + RTUNI_ALPHA, /* U+01691e: BAMUM LETTER PHASE-D LUM*/ + RTUNI_ALPHA, /* U+01691f: BAMUM LETTER PHASE-D NSIEEP*/ + RTUNI_ALPHA, /* U+016920: BAMUM LETTER PHASE-D MBAA*/ + RTUNI_ALPHA, /* U+016921: BAMUM LETTER PHASE-D KWAET*/ + RTUNI_ALPHA, /* U+016922: BAMUM LETTER PHASE-D NYET*/ + RTUNI_ALPHA, /* U+016923: BAMUM LETTER PHASE-D TEUAEN*/ + RTUNI_ALPHA, /* U+016924: BAMUM LETTER PHASE-D SOT*/ + RTUNI_ALPHA, /* U+016925: BAMUM LETTER PHASE-D YUWOQ*/ + RTUNI_ALPHA, /* U+016926: BAMUM LETTER PHASE-D KEUM*/ + RTUNI_ALPHA, /* U+016927: BAMUM LETTER PHASE-D RAEM*/ + RTUNI_ALPHA, /* U+016928: BAMUM LETTER PHASE-D TEEEE*/ + RTUNI_ALPHA, /* U+016929: BAMUM LETTER PHASE-D NGKEUAEQ*/ + RTUNI_ALPHA, /* U+01692a: BAMUM LETTER PHASE-D MFEUAE*/ + RTUNI_ALPHA, /* U+01692b: BAMUM LETTER PHASE-D NSIEET*/ + RTUNI_ALPHA, /* U+01692c: BAMUM LETTER PHASE-D KEUP*/ + RTUNI_ALPHA, /* U+01692d: BAMUM LETTER PHASE-D PIP*/ + RTUNI_ALPHA, /* U+01692e: BAMUM LETTER PHASE-D PEUTAE*/ + RTUNI_ALPHA, /* U+01692f: BAMUM LETTER PHASE-D NYUE*/ + RTUNI_ALPHA, /* U+016930: BAMUM LETTER PHASE-D LET*/ + RTUNI_ALPHA, /* U+016931: BAMUM LETTER PHASE-D NGGAAM*/ + RTUNI_ALPHA, /* U+016932: BAMUM LETTER PHASE-D MFIEE*/ + RTUNI_ALPHA, /* U+016933: BAMUM LETTER PHASE-D NGGWAEN*/ + RTUNI_ALPHA, /* U+016934: BAMUM LETTER PHASE-D YUOM*/ + RTUNI_ALPHA, /* U+016935: BAMUM LETTER PHASE-D PAP*/ + RTUNI_ALPHA, /* U+016936: BAMUM LETTER PHASE-D YUOP*/ + RTUNI_ALPHA, /* U+016937: BAMUM LETTER PHASE-D NDAM*/ + RTUNI_ALPHA, /* U+016938: BAMUM LETTER PHASE-D NTEUM*/ + RTUNI_ALPHA, /* U+016939: BAMUM LETTER PHASE-D SUAE*/ + RTUNI_ALPHA, /* U+01693a: BAMUM LETTER PHASE-D KUN*/ + RTUNI_ALPHA, /* U+01693b: BAMUM LETTER PHASE-D NGGEUX*/ + RTUNI_ALPHA, /* U+01693c: BAMUM LETTER PHASE-D NGKIEE*/ + RTUNI_ALPHA, /* U+01693d: BAMUM LETTER PHASE-D TUOT*/ + RTUNI_ALPHA, /* U+01693e: BAMUM LETTER PHASE-D MEUN*/ + RTUNI_ALPHA, /* U+01693f: BAMUM LETTER PHASE-D KUQ*/ + RTUNI_ALPHA, /* U+016940: BAMUM LETTER PHASE-D NSUM*/ + RTUNI_ALPHA, /* U+016941: BAMUM LETTER PHASE-D TEUN*/ + RTUNI_ALPHA, /* U+016942: BAMUM LETTER PHASE-D MAENJET*/ + RTUNI_ALPHA, /* U+016943: BAMUM LETTER PHASE-D NGGAP*/ + RTUNI_ALPHA, /* U+016944: BAMUM LETTER PHASE-D LEUM*/ + RTUNI_ALPHA, /* U+016945: BAMUM LETTER PHASE-D NGGUOM*/ + RTUNI_ALPHA, /* U+016946: BAMUM LETTER PHASE-D NSHUT*/ + RTUNI_ALPHA, /* U+016947: BAMUM LETTER PHASE-D NJUEQ*/ + RTUNI_ALPHA, /* U+016948: BAMUM LETTER PHASE-D GHEUAE*/ + RTUNI_ALPHA, /* U+016949: BAMUM LETTER PHASE-D KU*/ + RTUNI_ALPHA, /* U+01694a: BAMUM LETTER PHASE-D REN OLD*/ + RTUNI_ALPHA, /* U+01694b: BAMUM LETTER PHASE-D TAE*/ + RTUNI_ALPHA, /* U+01694c: BAMUM LETTER PHASE-D TOQ*/ + RTUNI_ALPHA, /* U+01694d: BAMUM LETTER PHASE-D NYI*/ + RTUNI_ALPHA, /* U+01694e: BAMUM LETTER PHASE-D RII*/ + RTUNI_ALPHA, /* U+01694f: BAMUM LETTER PHASE-D LEEEE*/ + RTUNI_ALPHA, /* U+016950: BAMUM LETTER PHASE-D MEEEE*/ + RTUNI_ALPHA, /* U+016951: BAMUM LETTER PHASE-D M*/ + RTUNI_ALPHA, /* U+016952: BAMUM LETTER PHASE-D SUU*/ + RTUNI_ALPHA, /* U+016953: BAMUM LETTER PHASE-D MU*/ + RTUNI_ALPHA, /* U+016954: BAMUM LETTER PHASE-D SHII*/ + RTUNI_ALPHA, /* U+016955: BAMUM LETTER PHASE-D SHEUX*/ + RTUNI_ALPHA, /* U+016956: BAMUM LETTER PHASE-D KYEE*/ + RTUNI_ALPHA, /* U+016957: BAMUM LETTER PHASE-D NU*/ + RTUNI_ALPHA, /* U+016958: BAMUM LETTER PHASE-D SHU*/ + RTUNI_ALPHA, /* U+016959: BAMUM LETTER PHASE-D NTEE*/ + RTUNI_ALPHA, /* U+01695a: BAMUM LETTER PHASE-D PEE*/ + RTUNI_ALPHA, /* U+01695b: BAMUM LETTER PHASE-D NI*/ + RTUNI_ALPHA, /* U+01695c: BAMUM LETTER PHASE-D SHOQ*/ + RTUNI_ALPHA, /* U+01695d: BAMUM LETTER PHASE-D PUQ*/ + RTUNI_ALPHA, /* U+01695e: BAMUM LETTER PHASE-D MVOP*/ + RTUNI_ALPHA, /* U+01695f: BAMUM LETTER PHASE-D LOQ*/ + RTUNI_ALPHA, /* U+016960: BAMUM LETTER PHASE-D REN MUCH*/ + RTUNI_ALPHA, /* U+016961: BAMUM LETTER PHASE-D TI*/ + RTUNI_ALPHA, /* U+016962: BAMUM LETTER PHASE-D NTUU*/ + RTUNI_ALPHA, /* U+016963: BAMUM LETTER PHASE-D MBAA SEVEN*/ + RTUNI_ALPHA, /* U+016964: BAMUM LETTER PHASE-D SAQ*/ + RTUNI_ALPHA, /* U+016965: BAMUM LETTER PHASE-D FAA*/ + RTUNI_ALPHA, /* U+016966: BAMUM LETTER PHASE-E NDAP*/ + RTUNI_ALPHA, /* U+016967: BAMUM LETTER PHASE-E TOON*/ + RTUNI_ALPHA, /* U+016968: BAMUM LETTER PHASE-E MBEUM*/ + RTUNI_ALPHA, /* U+016969: BAMUM LETTER PHASE-E LAP*/ + RTUNI_ALPHA, /* U+01696a: BAMUM LETTER PHASE-E VOM*/ + RTUNI_ALPHA, /* U+01696b: BAMUM LETTER PHASE-E LOON*/ + RTUNI_ALPHA, /* U+01696c: BAMUM LETTER PHASE-E PAA*/ + RTUNI_ALPHA, /* U+01696d: BAMUM LETTER PHASE-E SOM*/ + RTUNI_ALPHA, /* U+01696e: BAMUM LETTER PHASE-E RAQ*/ + RTUNI_ALPHA, /* U+01696f: BAMUM LETTER PHASE-E NSHUOP*/ + RTUNI_ALPHA, /* U+016970: BAMUM LETTER PHASE-E NDUN*/ + RTUNI_ALPHA, /* U+016971: BAMUM LETTER PHASE-E PUAE*/ + RTUNI_ALPHA, /* U+016972: BAMUM LETTER PHASE-E TAM*/ + RTUNI_ALPHA, /* U+016973: BAMUM LETTER PHASE-E NGKA*/ + RTUNI_ALPHA, /* U+016974: BAMUM LETTER PHASE-E KPEUX*/ + RTUNI_ALPHA, /* U+016975: BAMUM LETTER PHASE-E WUO*/ + RTUNI_ALPHA, /* U+016976: BAMUM LETTER PHASE-E SEE*/ + RTUNI_ALPHA, /* U+016977: BAMUM LETTER PHASE-E NGGEUAET*/ + RTUNI_ALPHA, /* U+016978: BAMUM LETTER PHASE-E PAAM*/ + RTUNI_ALPHA, /* U+016979: BAMUM LETTER PHASE-E TOO*/ + RTUNI_ALPHA, /* U+01697a: BAMUM LETTER PHASE-E KUOP*/ + RTUNI_ALPHA, /* U+01697b: BAMUM LETTER PHASE-E LOM*/ + RTUNI_ALPHA, /* U+01697c: BAMUM LETTER PHASE-E NSHIEE*/ + RTUNI_ALPHA, /* U+01697d: BAMUM LETTER PHASE-E NGOP*/ + RTUNI_ALPHA, /* U+01697e: BAMUM LETTER PHASE-E MAEM*/ + RTUNI_ALPHA, /* U+01697f: BAMUM LETTER PHASE-E NGKEUX*/ + RTUNI_ALPHA, /* U+016980: BAMUM LETTER PHASE-E NGOQ*/ + RTUNI_ALPHA, /* U+016981: BAMUM LETTER PHASE-E NSHUE*/ + RTUNI_ALPHA, /* U+016982: BAMUM LETTER PHASE-E RIMGBA*/ + RTUNI_ALPHA, /* U+016983: BAMUM LETTER PHASE-E NJEUX*/ + RTUNI_ALPHA, /* U+016984: BAMUM LETTER PHASE-E PEEM*/ + RTUNI_ALPHA, /* U+016985: BAMUM LETTER PHASE-E SAA*/ + RTUNI_ALPHA, /* U+016986: BAMUM LETTER PHASE-E NGGURAE*/ + RTUNI_ALPHA, /* U+016987: BAMUM LETTER PHASE-E MGBA*/ + RTUNI_ALPHA, /* U+016988: BAMUM LETTER PHASE-E GHEUX*/ + RTUNI_ALPHA, /* U+016989: BAMUM LETTER PHASE-E NGKEUAEM*/ + RTUNI_ALPHA, /* U+01698a: BAMUM LETTER PHASE-E NJAEMLI*/ + RTUNI_ALPHA, /* U+01698b: BAMUM LETTER PHASE-E MAP*/ + RTUNI_ALPHA, /* U+01698c: BAMUM LETTER PHASE-E LOOT*/ + RTUNI_ALPHA, /* U+01698d: BAMUM LETTER PHASE-E NGGEEEE*/ + RTUNI_ALPHA, /* U+01698e: BAMUM LETTER PHASE-E NDIQ*/ + RTUNI_ALPHA, /* U+01698f: BAMUM LETTER PHASE-E TAEN NTEUM*/ + RTUNI_ALPHA, /* U+016990: BAMUM LETTER PHASE-E SET*/ + RTUNI_ALPHA, /* U+016991: BAMUM LETTER PHASE-E PUM*/ + RTUNI_ALPHA, /* U+016992: BAMUM LETTER PHASE-E NDAA SOFTNESS*/ + RTUNI_ALPHA, /* U+016993: BAMUM LETTER PHASE-E NGGUAESHAE NYAM*/ + RTUNI_ALPHA, /* U+016994: BAMUM LETTER PHASE-E YIEE*/ + RTUNI_ALPHA, /* U+016995: BAMUM LETTER PHASE-E GHEUN*/ + RTUNI_ALPHA, /* U+016996: BAMUM LETTER PHASE-E TUAE*/ + RTUNI_ALPHA, /* U+016997: BAMUM LETTER PHASE-E YEUAE*/ + RTUNI_ALPHA, /* U+016998: BAMUM LETTER PHASE-E PO*/ + RTUNI_ALPHA, /* U+016999: BAMUM LETTER PHASE-E TUMAE*/ + RTUNI_ALPHA, /* U+01699a: BAMUM LETTER PHASE-E KEUAE*/ + RTUNI_ALPHA, /* U+01699b: BAMUM LETTER PHASE-E SUAEN*/ + RTUNI_ALPHA, /* U+01699c: BAMUM LETTER PHASE-E TEUAEQ*/ + RTUNI_ALPHA, /* U+01699d: BAMUM LETTER PHASE-E VEUAE*/ + RTUNI_ALPHA, /* U+01699e: BAMUM LETTER PHASE-E WEUX*/ + RTUNI_ALPHA, /* U+01699f: BAMUM LETTER PHASE-E LAAM*/ + RTUNI_ALPHA, /* U+0169a0: BAMUM LETTER PHASE-E PU*/ + RTUNI_ALPHA, /* U+0169a1: BAMUM LETTER PHASE-E TAAQ*/ + RTUNI_ALPHA, /* U+0169a2: BAMUM LETTER PHASE-E GHAAMAE*/ + RTUNI_ALPHA, /* U+0169a3: BAMUM LETTER PHASE-E NGEUREUT*/ + RTUNI_ALPHA, /* U+0169a4: BAMUM LETTER PHASE-E SHEUAEQ*/ + RTUNI_ALPHA, /* U+0169a5: BAMUM LETTER PHASE-E MGBEN*/ + RTUNI_ALPHA, /* U+0169a6: BAMUM LETTER PHASE-E MBEE*/ + RTUNI_ALPHA, /* U+0169a7: BAMUM LETTER PHASE-E NZAQ*/ + RTUNI_ALPHA, /* U+0169a8: BAMUM LETTER PHASE-E NKOM*/ + RTUNI_ALPHA, /* U+0169a9: BAMUM LETTER PHASE-E GBET*/ + RTUNI_ALPHA, /* U+0169aa: BAMUM LETTER PHASE-E TUM*/ + RTUNI_ALPHA, /* U+0169ab: BAMUM LETTER PHASE-E KUET*/ + RTUNI_ALPHA, /* U+0169ac: BAMUM LETTER PHASE-E YAP*/ + RTUNI_ALPHA, /* U+0169ad: BAMUM LETTER PHASE-E NYI CLEAVER*/ + RTUNI_ALPHA, /* U+0169ae: BAMUM LETTER PHASE-E YIT*/ + RTUNI_ALPHA, /* U+0169af: BAMUM LETTER PHASE-E MFEUQ*/ + RTUNI_ALPHA, /* U+0169b0: BAMUM LETTER PHASE-E NDIAQ*/ + RTUNI_ALPHA, /* U+0169b1: BAMUM LETTER PHASE-E PIEEQ*/ + RTUNI_ALPHA, /* U+0169b2: BAMUM LETTER PHASE-E YUEQ*/ + RTUNI_ALPHA, /* U+0169b3: BAMUM LETTER PHASE-E LEUAEM*/ + RTUNI_ALPHA, /* U+0169b4: BAMUM LETTER PHASE-E FUE*/ + RTUNI_ALPHA, /* U+0169b5: BAMUM LETTER PHASE-E GBEUX*/ + RTUNI_ALPHA, /* U+0169b6: BAMUM LETTER PHASE-E NGKUP*/ + RTUNI_ALPHA, /* U+0169b7: BAMUM LETTER PHASE-E KET*/ + RTUNI_ALPHA, /* U+0169b8: BAMUM LETTER PHASE-E MAE*/ + RTUNI_ALPHA, /* U+0169b9: BAMUM LETTER PHASE-E NGKAAMI*/ + RTUNI_ALPHA, /* U+0169ba: BAMUM LETTER PHASE-E GHET*/ + RTUNI_ALPHA, /* U+0169bb: BAMUM LETTER PHASE-E FA*/ + RTUNI_ALPHA, /* U+0169bc: BAMUM LETTER PHASE-E NTUM*/ + RTUNI_ALPHA, /* U+0169bd: BAMUM LETTER PHASE-E PEUT*/ + RTUNI_ALPHA, /* U+0169be: BAMUM LETTER PHASE-E YEUM*/ + RTUNI_ALPHA, /* U+0169bf: BAMUM LETTER PHASE-E NGGEUAE*/ + RTUNI_ALPHA, /* U+0169c0: BAMUM LETTER PHASE-E NYI BETWEEN*/ + RTUNI_ALPHA, /* U+0169c1: BAMUM LETTER PHASE-E NZUQ*/ + RTUNI_ALPHA, /* U+0169c2: BAMUM LETTER PHASE-E POON*/ + RTUNI_ALPHA, /* U+0169c3: BAMUM LETTER PHASE-E MIEE*/ + RTUNI_ALPHA, /* U+0169c4: BAMUM LETTER PHASE-E FUET*/ + RTUNI_ALPHA, /* U+0169c5: BAMUM LETTER PHASE-E NAE*/ + RTUNI_ALPHA, /* U+0169c6: BAMUM LETTER PHASE-E MUAE*/ + RTUNI_ALPHA, /* U+0169c7: BAMUM LETTER PHASE-E GHEUAE*/ + RTUNI_ALPHA, /* U+0169c8: BAMUM LETTER PHASE-E FU I*/ + RTUNI_ALPHA, /* U+0169c9: BAMUM LETTER PHASE-E MVI*/ + RTUNI_ALPHA, /* U+0169ca: BAMUM LETTER PHASE-E PUAQ*/ + RTUNI_ALPHA, /* U+0169cb: BAMUM LETTER PHASE-E NGKUM*/ + RTUNI_ALPHA, /* U+0169cc: BAMUM LETTER PHASE-E KUT*/ + RTUNI_ALPHA, /* U+0169cd: BAMUM LETTER PHASE-E PIET*/ + RTUNI_ALPHA, /* U+0169ce: BAMUM LETTER PHASE-E NTAP*/ + RTUNI_ALPHA, /* U+0169cf: BAMUM LETTER PHASE-E YEUAET*/ + RTUNI_ALPHA, /* U+0169d0: BAMUM LETTER PHASE-E NGGUP*/ + RTUNI_ALPHA, /* U+0169d1: BAMUM LETTER PHASE-E PA PEOPLE*/ + RTUNI_ALPHA, /* U+0169d2: BAMUM LETTER PHASE-E FU CALL*/ + RTUNI_ALPHA, /* U+0169d3: BAMUM LETTER PHASE-E FOM*/ + RTUNI_ALPHA, /* U+0169d4: BAMUM LETTER PHASE-E NJEE*/ + RTUNI_ALPHA, /* U+0169d5: BAMUM LETTER PHASE-E A*/ + RTUNI_ALPHA, /* U+0169d6: BAMUM LETTER PHASE-E TOQ*/ + RTUNI_ALPHA, /* U+0169d7: BAMUM LETTER PHASE-E O*/ + RTUNI_ALPHA, /* U+0169d8: BAMUM LETTER PHASE-E I*/ + RTUNI_ALPHA, /* U+0169d9: BAMUM LETTER PHASE-E LAQ*/ + RTUNI_ALPHA, /* U+0169da: BAMUM LETTER PHASE-E PA PLURAL*/ + RTUNI_ALPHA, /* U+0169db: BAMUM LETTER PHASE-E TAA*/ + RTUNI_ALPHA, /* U+0169dc: BAMUM LETTER PHASE-E TAQ*/ + RTUNI_ALPHA, /* U+0169dd: BAMUM LETTER PHASE-E NDAA MY HOUSE*/ + RTUNI_ALPHA, /* U+0169de: BAMUM LETTER PHASE-E SHIQ*/ + RTUNI_ALPHA, /* U+0169df: BAMUM LETTER PHASE-E YEUX*/ + RTUNI_ALPHA, /* U+0169e0: BAMUM LETTER PHASE-E NGUAE*/ + RTUNI_ALPHA, /* U+0169e1: BAMUM LETTER PHASE-E YUAEN*/ + RTUNI_ALPHA, /* U+0169e2: BAMUM LETTER PHASE-E YOQ SWIMMING*/ + RTUNI_ALPHA, /* U+0169e3: BAMUM LETTER PHASE-E YOQ COVER*/ + RTUNI_ALPHA, /* U+0169e4: BAMUM LETTER PHASE-E YUQ*/ + RTUNI_ALPHA, /* U+0169e5: BAMUM LETTER PHASE-E YUN*/ + RTUNI_ALPHA, /* U+0169e6: BAMUM LETTER PHASE-E KEUX*/ + RTUNI_ALPHA, /* U+0169e7: BAMUM LETTER PHASE-E PEUX*/ + RTUNI_ALPHA, /* U+0169e8: BAMUM LETTER PHASE-E NJEE EPOCH*/ + RTUNI_ALPHA, /* U+0169e9: BAMUM LETTER PHASE-E PUE*/ + RTUNI_ALPHA, /* U+0169ea: BAMUM LETTER PHASE-E WUE*/ + RTUNI_ALPHA, /* U+0169eb: BAMUM LETTER PHASE-E FEE*/ + RTUNI_ALPHA, /* U+0169ec: BAMUM LETTER PHASE-E VEE*/ + RTUNI_ALPHA, /* U+0169ed: BAMUM LETTER PHASE-E LU*/ + RTUNI_ALPHA, /* U+0169ee: BAMUM LETTER PHASE-E MI*/ + RTUNI_ALPHA, /* U+0169ef: BAMUM LETTER PHASE-E REUX*/ + RTUNI_ALPHA, /* U+0169f0: BAMUM LETTER PHASE-E RAE*/ + RTUNI_ALPHA, /* U+0169f1: BAMUM LETTER PHASE-E NGUAET*/ + RTUNI_ALPHA, /* U+0169f2: BAMUM LETTER PHASE-E NGA*/ + RTUNI_ALPHA, /* U+0169f3: BAMUM LETTER PHASE-E SHO*/ + RTUNI_ALPHA, /* U+0169f4: BAMUM LETTER PHASE-E SHOQ*/ + RTUNI_ALPHA, /* U+0169f5: BAMUM LETTER PHASE-E FU REMEDY*/ + RTUNI_ALPHA, /* U+0169f6: BAMUM LETTER PHASE-E NA*/ + RTUNI_ALPHA, /* U+0169f7: BAMUM LETTER PHASE-E PI*/ + RTUNI_ALPHA, /* U+0169f8: BAMUM LETTER PHASE-E LOQ*/ + RTUNI_ALPHA, /* U+0169f9: BAMUM LETTER PHASE-E KO*/ + RTUNI_ALPHA, /* U+0169fa: BAMUM LETTER PHASE-E MEN*/ + RTUNI_ALPHA, /* U+0169fb: BAMUM LETTER PHASE-E MA*/ + RTUNI_ALPHA, /* U+0169fc: BAMUM LETTER PHASE-E MAQ*/ + RTUNI_ALPHA, /* U+0169fd: BAMUM LETTER PHASE-E TEU*/ + RTUNI_ALPHA, /* U+0169fe: BAMUM LETTER PHASE-E KI*/ + RTUNI_ALPHA, /* U+0169ff: BAMUM LETTER PHASE-E MON*/ + RTUNI_ALPHA, /* U+016a00: BAMUM LETTER PHASE-E TEN*/ + RTUNI_ALPHA, /* U+016a01: BAMUM LETTER PHASE-E FAQ*/ + RTUNI_ALPHA, /* U+016a02: BAMUM LETTER PHASE-E GHOM*/ + RTUNI_ALPHA, /* U+016a03: BAMUM LETTER PHASE-F KA*/ + RTUNI_ALPHA, /* U+016a04: BAMUM LETTER PHASE-F U*/ + RTUNI_ALPHA, /* U+016a05: BAMUM LETTER PHASE-F KU*/ + RTUNI_ALPHA, /* U+016a06: BAMUM LETTER PHASE-F EE*/ + RTUNI_ALPHA, /* U+016a07: BAMUM LETTER PHASE-F REE*/ + RTUNI_ALPHA, /* U+016a08: BAMUM LETTER PHASE-F TAE*/ + RTUNI_ALPHA, /* U+016a09: BAMUM LETTER PHASE-F NYI*/ + RTUNI_ALPHA, /* U+016a0a: BAMUM LETTER PHASE-F LA*/ + RTUNI_ALPHA, /* U+016a0b: BAMUM LETTER PHASE-F RII*/ + RTUNI_ALPHA, /* U+016a0c: BAMUM LETTER PHASE-F RIEE*/ + RTUNI_ALPHA, /* U+016a0d: BAMUM LETTER PHASE-F MEEEE*/ + RTUNI_ALPHA, /* U+016a0e: BAMUM LETTER PHASE-F TAA*/ + RTUNI_ALPHA, /* U+016a0f: BAMUM LETTER PHASE-F NDAA*/ + RTUNI_ALPHA, /* U+016a10: BAMUM LETTER PHASE-F NJAEM*/ + RTUNI_ALPHA, /* U+016a11: BAMUM LETTER PHASE-F M*/ + RTUNI_ALPHA, /* U+016a12: BAMUM LETTER PHASE-F SUU*/ + RTUNI_ALPHA, /* U+016a13: BAMUM LETTER PHASE-F SHII*/ + RTUNI_ALPHA, /* U+016a14: BAMUM LETTER PHASE-F SI*/ + RTUNI_ALPHA, /* U+016a15: BAMUM LETTER PHASE-F SEUX*/ + RTUNI_ALPHA, /* U+016a16: BAMUM LETTER PHASE-F KYEE*/ + RTUNI_ALPHA, /* U+016a17: BAMUM LETTER PHASE-F KET*/ + RTUNI_ALPHA, /* U+016a18: BAMUM LETTER PHASE-F NUAE*/ + RTUNI_ALPHA, /* U+016a19: BAMUM LETTER PHASE-F NU*/ + RTUNI_ALPHA, /* U+016a1a: BAMUM LETTER PHASE-F NJUAE*/ + RTUNI_ALPHA, /* U+016a1b: BAMUM LETTER PHASE-F YOQ*/ + RTUNI_ALPHA, /* U+016a1c: BAMUM LETTER PHASE-F SHU*/ + RTUNI_ALPHA, /* U+016a1d: BAMUM LETTER PHASE-F YA*/ + RTUNI_ALPHA, /* U+016a1e: BAMUM LETTER PHASE-F NSHA*/ + RTUNI_ALPHA, /* U+016a1f: BAMUM LETTER PHASE-F PEUX*/ + RTUNI_ALPHA, /* U+016a20: BAMUM LETTER PHASE-F NTEE*/ + RTUNI_ALPHA, /* U+016a21: BAMUM LETTER PHASE-F WUE*/ + RTUNI_ALPHA, /* U+016a22: BAMUM LETTER PHASE-F PEE*/ + RTUNI_ALPHA, /* U+016a23: BAMUM LETTER PHASE-F RU*/ + RTUNI_ALPHA, /* U+016a24: BAMUM LETTER PHASE-F NI*/ + RTUNI_ALPHA, /* U+016a25: BAMUM LETTER PHASE-F REUX*/ + RTUNI_ALPHA, /* U+016a26: BAMUM LETTER PHASE-F KEN*/ + RTUNI_ALPHA, /* U+016a27: BAMUM LETTER PHASE-F NGKWAEN*/ + RTUNI_ALPHA, /* U+016a28: BAMUM LETTER PHASE-F NGGA*/ + RTUNI_ALPHA, /* U+016a29: BAMUM LETTER PHASE-F SHO*/ + RTUNI_ALPHA, /* U+016a2a: BAMUM LETTER PHASE-F PUAE*/ + RTUNI_ALPHA, /* U+016a2b: BAMUM LETTER PHASE-F FOM*/ + RTUNI_ALPHA, /* U+016a2c: BAMUM LETTER PHASE-F WA*/ + RTUNI_ALPHA, /* U+016a2d: BAMUM LETTER PHASE-F LI*/ + RTUNI_ALPHA, /* U+016a2e: BAMUM LETTER PHASE-F LOQ*/ + RTUNI_ALPHA, /* U+016a2f: BAMUM LETTER PHASE-F KO*/ + RTUNI_ALPHA, /* U+016a30: BAMUM LETTER PHASE-F MBEN*/ + RTUNI_ALPHA, /* U+016a31: BAMUM LETTER PHASE-F REN*/ + RTUNI_ALPHA, /* U+016a32: BAMUM LETTER PHASE-F MA*/ + RTUNI_ALPHA, /* U+016a33: BAMUM LETTER PHASE-F MO*/ + RTUNI_ALPHA, /* U+016a34: BAMUM LETTER PHASE-F MBAA*/ + RTUNI_ALPHA, /* U+016a35: BAMUM LETTER PHASE-F TET*/ + RTUNI_ALPHA, /* U+016a36: BAMUM LETTER PHASE-F KPA*/ + RTUNI_ALPHA, /* U+016a37: BAMUM LETTER PHASE-F SAMBA*/ + RTUNI_ALPHA, /* U+016a38: BAMUM LETTER PHASE-F VUEQ*/ + 0, /* U+016a39: */ + 0, /* U+016a3a: */ + 0, /* U+016a3b: */ + 0, /* U+016a3c: */ + 0, /* U+016a3d: */ + 0, /* U+016a3e: */ + 0, /* U+016a3f: */ + 0, /* U+016a40: */ + 0, /* U+016a41: */ + 0, /* U+016a42: */ + 0, /* U+016a43: */ + 0, /* U+016a44: */ + 0, /* U+016a45: */ + 0, /* U+016a46: */ + 0, /* U+016a47: */ + 0, /* U+016a48: */ + 0, /* U+016a49: */ + 0, /* U+016a4a: */ + 0, /* U+016a4b: */ + 0, /* U+016a4c: */ + 0, /* U+016a4d: */ + 0, /* U+016a4e: */ + 0, /* U+016a4f: */ + 0, /* U+016a50: */ + 0, /* U+016a51: */ + 0, /* U+016a52: */ + 0, /* U+016a53: */ + 0, /* U+016a54: */ + 0, /* U+016a55: */ + 0, /* U+016a56: */ + 0, /* U+016a57: */ + 0, /* U+016a58: */ + 0, /* U+016a59: */ + 0, /* U+016a5a: */ + 0, /* U+016a5b: */ + 0, /* U+016a5c: */ + 0, /* U+016a5d: */ + 0, /* U+016a5e: */ + 0, /* U+016a5f: */ + 0, /* U+016a60: */ + 0, /* U+016a61: */ + 0, /* U+016a62: */ + 0, /* U+016a63: */ + 0, /* U+016a64: */ + 0, /* U+016a65: */ + 0, /* U+016a66: */ + 0, /* U+016a67: */ + 0, /* U+016a68: */ + 0, /* U+016a69: */ + 0, /* U+016a6a: */ + 0, /* U+016a6b: */ + 0, /* U+016a6c: */ + 0, /* U+016a6d: */ + 0, /* U+016a6e: */ + 0, /* U+016a6f: */ + 0, /* U+016a70: */ + 0, /* U+016a71: */ + 0, /* U+016a72: */ + 0, /* U+016a73: */ + 0, /* U+016a74: */ + 0, /* U+016a75: */ + 0, /* U+016a76: */ + 0, /* U+016a77: */ + 0, /* U+016a78: */ + 0, /* U+016a79: */ + 0, /* U+016a7a: */ + 0, /* U+016a7b: */ + 0, /* U+016a7c: */ + 0, /* U+016a7d: */ + 0, /* U+016a7e: */ + 0, /* U+016a7f: */ + 0, /* U+016a80: */ + 0, /* U+016a81: */ + 0, /* U+016a82: */ + 0, /* U+016a83: */ + 0, /* U+016a84: */ + 0, /* U+016a85: */ + 0, /* U+016a86: */ + 0, /* U+016a87: */ + 0, /* U+016a88: */ + 0, /* U+016a89: */ + 0, /* U+016a8a: */ + 0, /* U+016a8b: */ + 0, /* U+016a8c: */ + 0, /* U+016a8d: */ + 0, /* U+016a8e: */ + 0, /* U+016a8f: */ + 0, /* U+016a90: */ + 0, /* U+016a91: */ + 0, /* U+016a92: */ + 0, /* U+016a93: */ + 0, /* U+016a94: */ + 0, /* U+016a95: */ + 0, /* U+016a96: */ + 0, /* U+016a97: */ + 0, /* U+016a98: */ + 0, /* U+016a99: */ + 0, /* U+016a9a: */ + 0, /* U+016a9b: */ + 0, /* U+016a9c: */ + 0, /* U+016a9d: */ + 0, /* U+016a9e: */ + 0, /* U+016a9f: */ + 0, /* U+016aa0: */ + 0, /* U+016aa1: */ + 0, /* U+016aa2: */ + 0, /* U+016aa3: */ + 0, /* U+016aa4: */ + 0, /* U+016aa5: */ + 0, /* U+016aa6: */ + 0, /* U+016aa7: */ + 0, /* U+016aa8: */ + 0, /* U+016aa9: */ + 0, /* U+016aaa: */ + 0, /* U+016aab: */ + 0, /* U+016aac: */ + 0, /* U+016aad: */ + 0, /* U+016aae: */ + 0, /* U+016aaf: */ + 0, /* U+016ab0: */ + 0, /* U+016ab1: */ + 0, /* U+016ab2: */ + 0, /* U+016ab3: */ + 0, /* U+016ab4: */ + 0, /* U+016ab5: */ + 0, /* U+016ab6: */ + 0, /* U+016ab7: */ + 0, /* U+016ab8: */ + 0, /* U+016ab9: */ + 0, /* U+016aba: */ + 0, /* U+016abb: */ + 0, /* U+016abc: */ + 0, /* U+016abd: */ + 0, /* U+016abe: */ + 0, /* U+016abf: */ + 0, /* U+016ac0: */ + 0, /* U+016ac1: */ + 0, /* U+016ac2: */ + 0, /* U+016ac3: */ + 0, /* U+016ac4: */ + 0, /* U+016ac5: */ + 0, /* U+016ac6: */ + 0, /* U+016ac7: */ + 0, /* U+016ac8: */ + 0, /* U+016ac9: */ + 0, /* U+016aca: */ + 0, /* U+016acb: */ + 0, /* U+016acc: */ + 0, /* U+016acd: */ + 0, /* U+016ace: */ + 0, /* U+016acf: */ + 0, /* U+016ad0: */ + 0, /* U+016ad1: */ + 0, /* U+016ad2: */ + 0, /* U+016ad3: */ + 0, /* U+016ad4: */ + 0, /* U+016ad5: */ + 0, /* U+016ad6: */ + 0, /* U+016ad7: */ + 0, /* U+016ad8: */ + 0, /* U+016ad9: */ + 0, /* U+016ada: */ + 0, /* U+016adb: */ + 0, /* U+016adc: */ + 0, /* U+016add: */ + 0, /* U+016ade: */ + 0, /* U+016adf: */ + 0, /* U+016ae0: */ + 0, /* U+016ae1: */ + 0, /* U+016ae2: */ + 0, /* U+016ae3: */ + 0, /* U+016ae4: */ + 0, /* U+016ae5: */ + 0, /* U+016ae6: */ + 0, /* U+016ae7: */ + 0, /* U+016ae8: */ + 0, /* U+016ae9: */ + 0, /* U+016aea: */ + 0, /* U+016aeb: */ + 0, /* U+016aec: */ + 0, /* U+016aed: */ + 0, /* U+016aee: */ + 0, /* U+016aef: */ + 0, /* U+016af0: */ + 0, /* U+016af1: */ + 0, /* U+016af2: */ + 0, /* U+016af3: */ + 0, /* U+016af4: */ + 0, /* U+016af5: */ + 0, /* U+016af6: */ + 0, /* U+016af7: */ + 0, /* U+016af8: */ + 0, /* U+016af9: */ + 0, /* U+016afa: */ + 0, /* U+016afb: */ + 0, /* U+016afc: */ + 0, /* U+016afd: */ + 0, /* U+016afe: */ + 0, /* U+016aff: */ + 0, /* U+016b00: */ + 0, /* U+016b01: */ + 0, /* U+016b02: */ + 0, /* U+016b03: */ + 0, /* U+016b04: */ + 0, /* U+016b05: */ + 0, /* U+016b06: */ + 0, /* U+016b07: */ + 0, /* U+016b08: */ + 0, /* U+016b09: */ + 0, /* U+016b0a: */ + 0, /* U+016b0b: */ + 0, /* U+016b0c: */ + 0, /* U+016b0d: */ + 0, /* U+016b0e: */ + 0, /* U+016b0f: */ + 0, /* U+016b10: */ + 0, /* U+016b11: */ + 0, /* U+016b12: */ + 0, /* U+016b13: */ + 0, /* U+016b14: */ + 0, /* U+016b15: */ + 0, /* U+016b16: */ + 0, /* U+016b17: */ + 0, /* U+016b18: */ + 0, /* U+016b19: */ + 0, /* U+016b1a: */ + 0, /* U+016b1b: */ + 0, /* U+016b1c: */ + 0, /* U+016b1d: */ + 0, /* U+016b1e: */ + 0, /* U+016b1f: */ + 0, /* U+016b20: */ + 0, /* U+016b21: */ + 0, /* U+016b22: */ + 0, /* U+016b23: */ + 0, /* U+016b24: */ + 0, /* U+016b25: */ + 0, /* U+016b26: */ + 0, /* U+016b27: */ + 0, /* U+016b28: */ + 0, /* U+016b29: */ + 0, /* U+016b2a: */ + 0, /* U+016b2b: */ + 0, /* U+016b2c: */ + 0, /* U+016b2d: */ + 0, /* U+016b2e: */ + 0, /* U+016b2f: */ + 0, /* U+016b30: */ + 0, /* U+016b31: */ + 0, /* U+016b32: */ + 0, /* U+016b33: */ + 0, /* U+016b34: */ + 0, /* U+016b35: */ + 0, /* U+016b36: */ + 0, /* U+016b37: */ + 0, /* U+016b38: */ + 0, /* U+016b39: */ + 0, /* U+016b3a: */ + 0, /* U+016b3b: */ + 0, /* U+016b3c: */ + 0, /* U+016b3d: */ + 0, /* U+016b3e: */ + 0, /* U+016b3f: */ + 0, /* U+016b40: */ + 0, /* U+016b41: */ + 0, /* U+016b42: */ + 0, /* U+016b43: */ + 0, /* U+016b44: */ + 0, /* U+016b45: */ + 0, /* U+016b46: */ + 0, /* U+016b47: */ + 0, /* U+016b48: */ + 0, /* U+016b49: */ + 0, /* U+016b4a: */ + 0, /* U+016b4b: */ + 0, /* U+016b4c: */ + 0, /* U+016b4d: */ + 0, /* U+016b4e: */ + 0, /* U+016b4f: */ + 0, /* U+016b50: */ + 0, /* U+016b51: */ + 0, /* U+016b52: */ + 0, /* U+016b53: */ + 0, /* U+016b54: */ + 0, /* U+016b55: */ + 0, /* U+016b56: */ + 0, /* U+016b57: */ + 0, /* U+016b58: */ + 0, /* U+016b59: */ + 0, /* U+016b5a: */ + 0, /* U+016b5b: */ + 0, /* U+016b5c: */ + 0, /* U+016b5d: */ + 0, /* U+016b5e: */ + 0, /* U+016b5f: */ + 0, /* U+016b60: */ + 0, /* U+016b61: */ + 0, /* U+016b62: */ + 0, /* U+016b63: */ + 0, /* U+016b64: */ + 0, /* U+016b65: */ + 0, /* U+016b66: */ + 0, /* U+016b67: */ + 0, /* U+016b68: */ + 0, /* U+016b69: */ + 0, /* U+016b6a: */ + 0, /* U+016b6b: */ + 0, /* U+016b6c: */ + 0, /* U+016b6d: */ + 0, /* U+016b6e: */ + 0, /* U+016b6f: */ + 0, /* U+016b70: */ + 0, /* U+016b71: */ + 0, /* U+016b72: */ + 0, /* U+016b73: */ + 0, /* U+016b74: */ + 0, /* U+016b75: */ + 0, /* U+016b76: */ + 0, /* U+016b77: */ + 0, /* U+016b78: */ + 0, /* U+016b79: */ + 0, /* U+016b7a: */ + 0, /* U+016b7b: */ + 0, /* U+016b7c: */ + 0, /* U+016b7d: */ + 0, /* U+016b7e: */ + 0, /* U+016b7f: */ + 0, /* U+016b80: */ + 0, /* U+016b81: */ + 0, /* U+016b82: */ + 0, /* U+016b83: */ + 0, /* U+016b84: */ + 0, /* U+016b85: */ + 0, /* U+016b86: */ + 0, /* U+016b87: */ + 0, /* U+016b88: */ + 0, /* U+016b89: */ + 0, /* U+016b8a: */ + 0, /* U+016b8b: */ + 0, /* U+016b8c: */ + 0, /* U+016b8d: */ + 0, /* U+016b8e: */ + 0, /* U+016b8f: */ + 0, /* U+016b90: */ + 0, /* U+016b91: */ + 0, /* U+016b92: */ + 0, /* U+016b93: */ + 0, /* U+016b94: */ + 0, /* U+016b95: */ + 0, /* U+016b96: */ + 0, /* U+016b97: */ + 0, /* U+016b98: */ + 0, /* U+016b99: */ + 0, /* U+016b9a: */ + 0, /* U+016b9b: */ + 0, /* U+016b9c: */ + 0, /* U+016b9d: */ + 0, /* U+016b9e: */ + 0, /* U+016b9f: */ + 0, /* U+016ba0: */ + 0, /* U+016ba1: */ + 0, /* U+016ba2: */ + 0, /* U+016ba3: */ + 0, /* U+016ba4: */ + 0, /* U+016ba5: */ + 0, /* U+016ba6: */ + 0, /* U+016ba7: */ + 0, /* U+016ba8: */ + 0, /* U+016ba9: */ + 0, /* U+016baa: */ + 0, /* U+016bab: */ + 0, /* U+016bac: */ + 0, /* U+016bad: */ + 0, /* U+016bae: */ + 0, /* U+016baf: */ + 0, /* U+016bb0: */ + 0, /* U+016bb1: */ + 0, /* U+016bb2: */ + 0, /* U+016bb3: */ + 0, /* U+016bb4: */ + 0, /* U+016bb5: */ + 0, /* U+016bb6: */ + 0, /* U+016bb7: */ + 0, /* U+016bb8: */ + 0, /* U+016bb9: */ + 0, /* U+016bba: */ + 0, /* U+016bbb: */ + 0, /* U+016bbc: */ + 0, /* U+016bbd: */ + 0, /* U+016bbe: */ + 0, /* U+016bbf: */ + 0, /* U+016bc0: */ + 0, /* U+016bc1: */ + 0, /* U+016bc2: */ + 0, /* U+016bc3: */ + 0, /* U+016bc4: */ + 0, /* U+016bc5: */ + 0, /* U+016bc6: */ + 0, /* U+016bc7: */ + 0, /* U+016bc8: */ + 0, /* U+016bc9: */ + 0, /* U+016bca: */ + 0, /* U+016bcb: */ + 0, /* U+016bcc: */ + 0, /* U+016bcd: */ + 0, /* U+016bce: */ + 0, /* U+016bcf: */ + 0, /* U+016bd0: */ + 0, /* U+016bd1: */ + 0, /* U+016bd2: */ + 0, /* U+016bd3: */ + 0, /* U+016bd4: */ + 0, /* U+016bd5: */ + 0, /* U+016bd6: */ + 0, /* U+016bd7: */ + 0, /* U+016bd8: */ + 0, /* U+016bd9: */ + 0, /* U+016bda: */ + 0, /* U+016bdb: */ + 0, /* U+016bdc: */ + 0, /* U+016bdd: */ + 0, /* U+016bde: */ + 0, /* U+016bdf: */ + 0, /* U+016be0: */ + 0, /* U+016be1: */ + 0, /* U+016be2: */ + 0, /* U+016be3: */ + 0, /* U+016be4: */ + 0, /* U+016be5: */ + 0, /* U+016be6: */ + 0, /* U+016be7: */ + 0, /* U+016be8: */ + 0, /* U+016be9: */ + 0, /* U+016bea: */ + 0, /* U+016beb: */ + 0, /* U+016bec: */ + 0, /* U+016bed: */ + 0, /* U+016bee: */ + 0, /* U+016bef: */ + 0, /* U+016bf0: */ + 0, /* U+016bf1: */ + 0, /* U+016bf2: */ + 0, /* U+016bf3: */ + 0, /* U+016bf4: */ + 0, /* U+016bf5: */ + 0, /* U+016bf6: */ + 0, /* U+016bf7: */ + 0, /* U+016bf8: */ + 0, /* U+016bf9: */ + 0, /* U+016bfa: */ + 0, /* U+016bfb: */ + 0, /* U+016bfc: */ + 0, /* U+016bfd: */ + 0, /* U+016bfe: */ + 0, /* U+016bff: */ + 0, /* U+016c00: */ + 0, /* U+016c01: */ + 0, /* U+016c02: */ + 0, /* U+016c03: */ + 0, /* U+016c04: */ + 0, /* U+016c05: */ + 0, /* U+016c06: */ + 0, /* U+016c07: */ + 0, /* U+016c08: */ + 0, /* U+016c09: */ + 0, /* U+016c0a: */ + 0, /* U+016c0b: */ + 0, /* U+016c0c: */ + 0, /* U+016c0d: */ + 0, /* U+016c0e: */ + 0, /* U+016c0f: */ + 0, /* U+016c10: */ + 0, /* U+016c11: */ + 0, /* U+016c12: */ + 0, /* U+016c13: */ + 0, /* U+016c14: */ + 0, /* U+016c15: */ + 0, /* U+016c16: */ + 0, /* U+016c17: */ + 0, /* U+016c18: */ + 0, /* U+016c19: */ + 0, /* U+016c1a: */ + 0, /* U+016c1b: */ + 0, /* U+016c1c: */ + 0, /* U+016c1d: */ + 0, /* U+016c1e: */ + 0, /* U+016c1f: */ + 0, /* U+016c20: */ + 0, /* U+016c21: */ + 0, /* U+016c22: */ + 0, /* U+016c23: */ + 0, /* U+016c24: */ + 0, /* U+016c25: */ + 0, /* U+016c26: */ + 0, /* U+016c27: */ + 0, /* U+016c28: */ + 0, /* U+016c29: */ + 0, /* U+016c2a: */ + 0, /* U+016c2b: */ + 0, /* U+016c2c: */ + 0, /* U+016c2d: */ + 0, /* U+016c2e: */ + 0, /* U+016c2f: */ + 0, /* U+016c30: */ + 0, /* U+016c31: */ + 0, /* U+016c32: */ + 0, /* U+016c33: */ + 0, /* U+016c34: */ + 0, /* U+016c35: */ + 0, /* U+016c36: */ + 0, /* U+016c37: */ + 0, /* U+016c38: */ + 0, /* U+016c39: */ + 0, /* U+016c3a: */ + 0, /* U+016c3b: */ + 0, /* U+016c3c: */ + 0, /* U+016c3d: */ + 0, /* U+016c3e: */ + 0, /* U+016c3f: */ + 0, /* U+016c40: */ + 0, /* U+016c41: */ + 0, /* U+016c42: */ + 0, /* U+016c43: */ + 0, /* U+016c44: */ + 0, /* U+016c45: */ + 0, /* U+016c46: */ + 0, /* U+016c47: */ + 0, /* U+016c48: */ + 0, /* U+016c49: */ + 0, /* U+016c4a: */ + 0, /* U+016c4b: */ + 0, /* U+016c4c: */ + 0, /* U+016c4d: */ + 0, /* U+016c4e: */ + 0, /* U+016c4f: */ + 0, /* U+016c50: */ + 0, /* U+016c51: */ + 0, /* U+016c52: */ + 0, /* U+016c53: */ + 0, /* U+016c54: */ + 0, /* U+016c55: */ + 0, /* U+016c56: */ + 0, /* U+016c57: */ + 0, /* U+016c58: */ + 0, /* U+016c59: */ + 0, /* U+016c5a: */ + 0, /* U+016c5b: */ + 0, /* U+016c5c: */ + 0, /* U+016c5d: */ + 0, /* U+016c5e: */ + 0, /* U+016c5f: */ + 0, /* U+016c60: */ + 0, /* U+016c61: */ + 0, /* U+016c62: */ + 0, /* U+016c63: */ + 0, /* U+016c64: */ + 0, /* U+016c65: */ + 0, /* U+016c66: */ + 0, /* U+016c67: */ + 0, /* U+016c68: */ + 0, /* U+016c69: */ + 0, /* U+016c6a: */ + 0, /* U+016c6b: */ + 0, /* U+016c6c: */ + 0, /* U+016c6d: */ + 0, /* U+016c6e: */ + 0, /* U+016c6f: */ + 0, /* U+016c70: */ + 0, /* U+016c71: */ + 0, /* U+016c72: */ + 0, /* U+016c73: */ + 0, /* U+016c74: */ + 0, /* U+016c75: */ + 0, /* U+016c76: */ + 0, /* U+016c77: */ + 0, /* U+016c78: */ + 0, /* U+016c79: */ + 0, /* U+016c7a: */ + 0, /* U+016c7b: */ + 0, /* U+016c7c: */ + 0, /* U+016c7d: */ + 0, /* U+016c7e: */ + 0, /* U+016c7f: */ + 0, /* U+016c80: */ + 0, /* U+016c81: */ + 0, /* U+016c82: */ + 0, /* U+016c83: */ + 0, /* U+016c84: */ + 0, /* U+016c85: */ + 0, /* U+016c86: */ + 0, /* U+016c87: */ + 0, /* U+016c88: */ + 0, /* U+016c89: */ + 0, /* U+016c8a: */ + 0, /* U+016c8b: */ + 0, /* U+016c8c: */ + 0, /* U+016c8d: */ + 0, /* U+016c8e: */ + 0, /* U+016c8f: */ + 0, /* U+016c90: */ + 0, /* U+016c91: */ + 0, /* U+016c92: */ + 0, /* U+016c93: */ + 0, /* U+016c94: */ + 0, /* U+016c95: */ + 0, /* U+016c96: */ + 0, /* U+016c97: */ + 0, /* U+016c98: */ + 0, /* U+016c99: */ + 0, /* U+016c9a: */ + 0, /* U+016c9b: */ + 0, /* U+016c9c: */ + 0, /* U+016c9d: */ + 0, /* U+016c9e: */ + 0, /* U+016c9f: */ + 0, /* U+016ca0: */ + 0, /* U+016ca1: */ + 0, /* U+016ca2: */ + 0, /* U+016ca3: */ + 0, /* U+016ca4: */ + 0, /* U+016ca5: */ + 0, /* U+016ca6: */ + 0, /* U+016ca7: */ + 0, /* U+016ca8: */ + 0, /* U+016ca9: */ + 0, /* U+016caa: */ + 0, /* U+016cab: */ + 0, /* U+016cac: */ + 0, /* U+016cad: */ + 0, /* U+016cae: */ + 0, /* U+016caf: */ + 0, /* U+016cb0: */ + 0, /* U+016cb1: */ + 0, /* U+016cb2: */ + 0, /* U+016cb3: */ + 0, /* U+016cb4: */ + 0, /* U+016cb5: */ + 0, /* U+016cb6: */ + 0, /* U+016cb7: */ + 0, /* U+016cb8: */ + 0, /* U+016cb9: */ + 0, /* U+016cba: */ + 0, /* U+016cbb: */ + 0, /* U+016cbc: */ + 0, /* U+016cbd: */ + 0, /* U+016cbe: */ + 0, /* U+016cbf: */ + 0, /* U+016cc0: */ + 0, /* U+016cc1: */ + 0, /* U+016cc2: */ + 0, /* U+016cc3: */ + 0, /* U+016cc4: */ + 0, /* U+016cc5: */ + 0, /* U+016cc6: */ + 0, /* U+016cc7: */ + 0, /* U+016cc8: */ + 0, /* U+016cc9: */ + 0, /* U+016cca: */ + 0, /* U+016ccb: */ + 0, /* U+016ccc: */ + 0, /* U+016ccd: */ + 0, /* U+016cce: */ + 0, /* U+016ccf: */ + 0, /* U+016cd0: */ + 0, /* U+016cd1: */ + 0, /* U+016cd2: */ + 0, /* U+016cd3: */ + 0, /* U+016cd4: */ + 0, /* U+016cd5: */ + 0, /* U+016cd6: */ + 0, /* U+016cd7: */ + 0, /* U+016cd8: */ + 0, /* U+016cd9: */ + 0, /* U+016cda: */ + 0, /* U+016cdb: */ + 0, /* U+016cdc: */ + 0, /* U+016cdd: */ + 0, /* U+016cde: */ + 0, /* U+016cdf: */ + 0, /* U+016ce0: */ + 0, /* U+016ce1: */ + 0, /* U+016ce2: */ + 0, /* U+016ce3: */ + 0, /* U+016ce4: */ + 0, /* U+016ce5: */ + 0, /* U+016ce6: */ + 0, /* U+016ce7: */ + 0, /* U+016ce8: */ + 0, /* U+016ce9: */ + 0, /* U+016cea: */ + 0, /* U+016ceb: */ + 0, /* U+016cec: */ + 0, /* U+016ced: */ + 0, /* U+016cee: */ + 0, /* U+016cef: */ + 0, /* U+016cf0: */ + 0, /* U+016cf1: */ + 0, /* U+016cf2: */ + 0, /* U+016cf3: */ + 0, /* U+016cf4: */ + 0, /* U+016cf5: */ + 0, /* U+016cf6: */ + 0, /* U+016cf7: */ + 0, /* U+016cf8: */ + 0, /* U+016cf9: */ + 0, /* U+016cfa: */ + 0, /* U+016cfb: */ + 0, /* U+016cfc: */ + 0, /* U+016cfd: */ + 0, /* U+016cfe: */ + 0, /* U+016cff: */ + 0, /* U+016d00: */ + 0, /* U+016d01: */ + 0, /* U+016d02: */ + 0, /* U+016d03: */ + 0, /* U+016d04: */ + 0, /* U+016d05: */ + 0, /* U+016d06: */ + 0, /* U+016d07: */ + 0, /* U+016d08: */ + 0, /* U+016d09: */ + 0, /* U+016d0a: */ + 0, /* U+016d0b: */ + 0, /* U+016d0c: */ + 0, /* U+016d0d: */ + 0, /* U+016d0e: */ + 0, /* U+016d0f: */ + 0, /* U+016d10: */ + 0, /* U+016d11: */ + 0, /* U+016d12: */ + 0, /* U+016d13: */ + 0, /* U+016d14: */ + 0, /* U+016d15: */ + 0, /* U+016d16: */ + 0, /* U+016d17: */ + 0, /* U+016d18: */ + 0, /* U+016d19: */ + 0, /* U+016d1a: */ + 0, /* U+016d1b: */ + 0, /* U+016d1c: */ + 0, /* U+016d1d: */ + 0, /* U+016d1e: */ + 0, /* U+016d1f: */ + 0, /* U+016d20: */ + 0, /* U+016d21: */ + 0, /* U+016d22: */ + 0, /* U+016d23: */ + 0, /* U+016d24: */ + 0, /* U+016d25: */ + 0, /* U+016d26: */ + 0, /* U+016d27: */ + 0, /* U+016d28: */ + 0, /* U+016d29: */ + 0, /* U+016d2a: */ + 0, /* U+016d2b: */ + 0, /* U+016d2c: */ + 0, /* U+016d2d: */ + 0, /* U+016d2e: */ + 0, /* U+016d2f: */ + 0, /* U+016d30: */ + 0, /* U+016d31: */ + 0, /* U+016d32: */ + 0, /* U+016d33: */ + 0, /* U+016d34: */ + 0, /* U+016d35: */ + 0, /* U+016d36: */ + 0, /* U+016d37: */ + 0, /* U+016d38: */ + 0, /* U+016d39: */ + 0, /* U+016d3a: */ + 0, /* U+016d3b: */ + 0, /* U+016d3c: */ + 0, /* U+016d3d: */ + 0, /* U+016d3e: */ + 0, /* U+016d3f: */ + 0, /* U+016d40: */ + 0, /* U+016d41: */ + 0, /* U+016d42: */ + 0, /* U+016d43: */ + 0, /* U+016d44: */ + 0, /* U+016d45: */ + 0, /* U+016d46: */ + 0, /* U+016d47: */ + 0, /* U+016d48: */ + 0, /* U+016d49: */ + 0, /* U+016d4a: */ + 0, /* U+016d4b: */ + 0, /* U+016d4c: */ + 0, /* U+016d4d: */ + 0, /* U+016d4e: */ + 0, /* U+016d4f: */ + 0, /* U+016d50: */ + 0, /* U+016d51: */ + 0, /* U+016d52: */ + 0, /* U+016d53: */ + 0, /* U+016d54: */ + 0, /* U+016d55: */ + 0, /* U+016d56: */ + 0, /* U+016d57: */ + 0, /* U+016d58: */ + 0, /* U+016d59: */ + 0, /* U+016d5a: */ + 0, /* U+016d5b: */ + 0, /* U+016d5c: */ + 0, /* U+016d5d: */ + 0, /* U+016d5e: */ + 0, /* U+016d5f: */ + 0, /* U+016d60: */ + 0, /* U+016d61: */ + 0, /* U+016d62: */ + 0, /* U+016d63: */ + 0, /* U+016d64: */ + 0, /* U+016d65: */ + 0, /* U+016d66: */ + 0, /* U+016d67: */ + 0, /* U+016d68: */ + 0, /* U+016d69: */ + 0, /* U+016d6a: */ + 0, /* U+016d6b: */ + 0, /* U+016d6c: */ + 0, /* U+016d6d: */ + 0, /* U+016d6e: */ + 0, /* U+016d6f: */ + 0, /* U+016d70: */ + 0, /* U+016d71: */ + 0, /* U+016d72: */ + 0, /* U+016d73: */ + 0, /* U+016d74: */ + 0, /* U+016d75: */ + 0, /* U+016d76: */ + 0, /* U+016d77: */ + 0, /* U+016d78: */ + 0, /* U+016d79: */ + 0, /* U+016d7a: */ + 0, /* U+016d7b: */ + 0, /* U+016d7c: */ + 0, /* U+016d7d: */ + 0, /* U+016d7e: */ + 0, /* U+016d7f: */ + 0, /* U+016d80: */ + 0, /* U+016d81: */ + 0, /* U+016d82: */ + 0, /* U+016d83: */ + 0, /* U+016d84: */ + 0, /* U+016d85: */ + 0, /* U+016d86: */ + 0, /* U+016d87: */ + 0, /* U+016d88: */ + 0, /* U+016d89: */ + 0, /* U+016d8a: */ + 0, /* U+016d8b: */ + 0, /* U+016d8c: */ + 0, /* U+016d8d: */ + 0, /* U+016d8e: */ + 0, /* U+016d8f: */ + 0, /* U+016d90: */ + 0, /* U+016d91: */ + 0, /* U+016d92: */ + 0, /* U+016d93: */ + 0, /* U+016d94: */ + 0, /* U+016d95: */ + 0, /* U+016d96: */ + 0, /* U+016d97: */ + 0, /* U+016d98: */ + 0, /* U+016d99: */ + 0, /* U+016d9a: */ + 0, /* U+016d9b: */ + 0, /* U+016d9c: */ + 0, /* U+016d9d: */ + 0, /* U+016d9e: */ + 0, /* U+016d9f: */ + 0, /* U+016da0: */ + 0, /* U+016da1: */ + 0, /* U+016da2: */ + 0, /* U+016da3: */ + 0, /* U+016da4: */ + 0, /* U+016da5: */ + 0, /* U+016da6: */ + 0, /* U+016da7: */ + 0, /* U+016da8: */ + 0, /* U+016da9: */ + 0, /* U+016daa: */ + 0, /* U+016dab: */ + 0, /* U+016dac: */ + 0, /* U+016dad: */ + 0, /* U+016dae: */ + 0, /* U+016daf: */ + 0, /* U+016db0: */ + 0, /* U+016db1: */ + 0, /* U+016db2: */ + 0, /* U+016db3: */ + 0, /* U+016db4: */ + 0, /* U+016db5: */ + 0, /* U+016db6: */ + 0, /* U+016db7: */ + 0, /* U+016db8: */ + 0, /* U+016db9: */ + 0, /* U+016dba: */ + 0, /* U+016dbb: */ + 0, /* U+016dbc: */ + 0, /* U+016dbd: */ + 0, /* U+016dbe: */ + 0, /* U+016dbf: */ + 0, /* U+016dc0: */ + 0, /* U+016dc1: */ + 0, /* U+016dc2: */ + 0, /* U+016dc3: */ + 0, /* U+016dc4: */ + 0, /* U+016dc5: */ + 0, /* U+016dc6: */ + 0, /* U+016dc7: */ + 0, /* U+016dc8: */ + 0, /* U+016dc9: */ + 0, /* U+016dca: */ + 0, /* U+016dcb: */ + 0, /* U+016dcc: */ + 0, /* U+016dcd: */ + 0, /* U+016dce: */ + 0, /* U+016dcf: */ + 0, /* U+016dd0: */ + 0, /* U+016dd1: */ + 0, /* U+016dd2: */ + 0, /* U+016dd3: */ + 0, /* U+016dd4: */ + 0, /* U+016dd5: */ + 0, /* U+016dd6: */ + 0, /* U+016dd7: */ + 0, /* U+016dd8: */ + 0, /* U+016dd9: */ + 0, /* U+016dda: */ + 0, /* U+016ddb: */ + 0, /* U+016ddc: */ + 0, /* U+016ddd: */ + 0, /* U+016dde: */ + 0, /* U+016ddf: */ + 0, /* U+016de0: */ + 0, /* U+016de1: */ + 0, /* U+016de2: */ + 0, /* U+016de3: */ + 0, /* U+016de4: */ + 0, /* U+016de5: */ + 0, /* U+016de6: */ + 0, /* U+016de7: */ + 0, /* U+016de8: */ + 0, /* U+016de9: */ + 0, /* U+016dea: */ + 0, /* U+016deb: */ + 0, /* U+016dec: */ + 0, /* U+016ded: */ + 0, /* U+016dee: */ + 0, /* U+016def: */ + 0, /* U+016df0: */ + 0, /* U+016df1: */ + 0, /* U+016df2: */ + 0, /* U+016df3: */ + 0, /* U+016df4: */ + 0, /* U+016df5: */ + 0, /* U+016df6: */ + 0, /* U+016df7: */ + 0, /* U+016df8: */ + 0, /* U+016df9: */ + 0, /* U+016dfa: */ + 0, /* U+016dfb: */ + 0, /* U+016dfc: */ + 0, /* U+016dfd: */ + 0, /* U+016dfe: */ + 0, /* U+016dff: */ + 0, /* U+016e00: */ + 0, /* U+016e01: */ + 0, /* U+016e02: */ + 0, /* U+016e03: */ + 0, /* U+016e04: */ + 0, /* U+016e05: */ + 0, /* U+016e06: */ + 0, /* U+016e07: */ + 0, /* U+016e08: */ + 0, /* U+016e09: */ + 0, /* U+016e0a: */ + 0, /* U+016e0b: */ + 0, /* U+016e0c: */ + 0, /* U+016e0d: */ + 0, /* U+016e0e: */ + 0, /* U+016e0f: */ + 0, /* U+016e10: */ + 0, /* U+016e11: */ + 0, /* U+016e12: */ + 0, /* U+016e13: */ + 0, /* U+016e14: */ + 0, /* U+016e15: */ + 0, /* U+016e16: */ + 0, /* U+016e17: */ + 0, /* U+016e18: */ + 0, /* U+016e19: */ + 0, /* U+016e1a: */ + 0, /* U+016e1b: */ + 0, /* U+016e1c: */ + 0, /* U+016e1d: */ + 0, /* U+016e1e: */ + 0, /* U+016e1f: */ + 0, /* U+016e20: */ + 0, /* U+016e21: */ + 0, /* U+016e22: */ + 0, /* U+016e23: */ + 0, /* U+016e24: */ + 0, /* U+016e25: */ + 0, /* U+016e26: */ + 0, /* U+016e27: */ + 0, /* U+016e28: */ + 0, /* U+016e29: */ + 0, /* U+016e2a: */ + 0, /* U+016e2b: */ + 0, /* U+016e2c: */ + 0, /* U+016e2d: */ + 0, /* U+016e2e: */ + 0, /* U+016e2f: */ + 0, /* U+016e30: */ + 0, /* U+016e31: */ + 0, /* U+016e32: */ + 0, /* U+016e33: */ + 0, /* U+016e34: */ + 0, /* U+016e35: */ + 0, /* U+016e36: */ + 0, /* U+016e37: */ + 0, /* U+016e38: */ + 0, /* U+016e39: */ + 0, /* U+016e3a: */ + 0, /* U+016e3b: */ + 0, /* U+016e3c: */ + 0, /* U+016e3d: */ + 0, /* U+016e3e: */ + 0, /* U+016e3f: */ + 0, /* U+016e40: */ + 0, /* U+016e41: */ + 0, /* U+016e42: */ + 0, /* U+016e43: */ + 0, /* U+016e44: */ + 0, /* U+016e45: */ + 0, /* U+016e46: */ + 0, /* U+016e47: */ + 0, /* U+016e48: */ + 0, /* U+016e49: */ + 0, /* U+016e4a: */ + 0, /* U+016e4b: */ + 0, /* U+016e4c: */ + 0, /* U+016e4d: */ + 0, /* U+016e4e: */ + 0, /* U+016e4f: */ + 0, /* U+016e50: */ + 0, /* U+016e51: */ + 0, /* U+016e52: */ + 0, /* U+016e53: */ + 0, /* U+016e54: */ + 0, /* U+016e55: */ + 0, /* U+016e56: */ + 0, /* U+016e57: */ + 0, /* U+016e58: */ + 0, /* U+016e59: */ + 0, /* U+016e5a: */ + 0, /* U+016e5b: */ + 0, /* U+016e5c: */ + 0, /* U+016e5d: */ + 0, /* U+016e5e: */ + 0, /* U+016e5f: */ + 0, /* U+016e60: */ + 0, /* U+016e61: */ + 0, /* U+016e62: */ + 0, /* U+016e63: */ + 0, /* U+016e64: */ + 0, /* U+016e65: */ + 0, /* U+016e66: */ + 0, /* U+016e67: */ + 0, /* U+016e68: */ + 0, /* U+016e69: */ + 0, /* U+016e6a: */ + 0, /* U+016e6b: */ + 0, /* U+016e6c: */ + 0, /* U+016e6d: */ + 0, /* U+016e6e: */ + 0, /* U+016e6f: */ + 0, /* U+016e70: */ + 0, /* U+016e71: */ + 0, /* U+016e72: */ + 0, /* U+016e73: */ + 0, /* U+016e74: */ + 0, /* U+016e75: */ + 0, /* U+016e76: */ + 0, /* U+016e77: */ + 0, /* U+016e78: */ + 0, /* U+016e79: */ + 0, /* U+016e7a: */ + 0, /* U+016e7b: */ + 0, /* U+016e7c: */ + 0, /* U+016e7d: */ + 0, /* U+016e7e: */ + 0, /* U+016e7f: */ + 0, /* U+016e80: */ + 0, /* U+016e81: */ + 0, /* U+016e82: */ + 0, /* U+016e83: */ + 0, /* U+016e84: */ + 0, /* U+016e85: */ + 0, /* U+016e86: */ + 0, /* U+016e87: */ + 0, /* U+016e88: */ + 0, /* U+016e89: */ + 0, /* U+016e8a: */ + 0, /* U+016e8b: */ + 0, /* U+016e8c: */ + 0, /* U+016e8d: */ + 0, /* U+016e8e: */ + 0, /* U+016e8f: */ + 0, /* U+016e90: */ + 0, /* U+016e91: */ + 0, /* U+016e92: */ + 0, /* U+016e93: */ + 0, /* U+016e94: */ + 0, /* U+016e95: */ + 0, /* U+016e96: */ + 0, /* U+016e97: */ + 0, /* U+016e98: */ + 0, /* U+016e99: */ + 0, /* U+016e9a: */ + 0, /* U+016e9b: */ + 0, /* U+016e9c: */ + 0, /* U+016e9d: */ + 0, /* U+016e9e: */ + 0, /* U+016e9f: */ + 0, /* U+016ea0: */ + 0, /* U+016ea1: */ + 0, /* U+016ea2: */ + 0, /* U+016ea3: */ + 0, /* U+016ea4: */ + 0, /* U+016ea5: */ + 0, /* U+016ea6: */ + 0, /* U+016ea7: */ + 0, /* U+016ea8: */ + 0, /* U+016ea9: */ + 0, /* U+016eaa: */ + 0, /* U+016eab: */ + 0, /* U+016eac: */ + 0, /* U+016ead: */ + 0, /* U+016eae: */ + 0, /* U+016eaf: */ + 0, /* U+016eb0: */ + 0, /* U+016eb1: */ + 0, /* U+016eb2: */ + 0, /* U+016eb3: */ + 0, /* U+016eb4: */ + 0, /* U+016eb5: */ + 0, /* U+016eb6: */ + 0, /* U+016eb7: */ + 0, /* U+016eb8: */ + 0, /* U+016eb9: */ + 0, /* U+016eba: */ + 0, /* U+016ebb: */ + 0, /* U+016ebc: */ + 0, /* U+016ebd: */ + 0, /* U+016ebe: */ + 0, /* U+016ebf: */ + 0, /* U+016ec0: */ + 0, /* U+016ec1: */ + 0, /* U+016ec2: */ + 0, /* U+016ec3: */ + 0, /* U+016ec4: */ + 0, /* U+016ec5: */ + 0, /* U+016ec6: */ + 0, /* U+016ec7: */ + 0, /* U+016ec8: */ + 0, /* U+016ec9: */ + 0, /* U+016eca: */ + 0, /* U+016ecb: */ + 0, /* U+016ecc: */ + 0, /* U+016ecd: */ + 0, /* U+016ece: */ + 0, /* U+016ecf: */ + 0, /* U+016ed0: */ + 0, /* U+016ed1: */ + 0, /* U+016ed2: */ + 0, /* U+016ed3: */ + 0, /* U+016ed4: */ + 0, /* U+016ed5: */ + 0, /* U+016ed6: */ + 0, /* U+016ed7: */ + 0, /* U+016ed8: */ + 0, /* U+016ed9: */ + 0, /* U+016eda: */ + 0, /* U+016edb: */ + 0, /* U+016edc: */ + 0, /* U+016edd: */ + 0, /* U+016ede: */ + 0, /* U+016edf: */ + 0, /* U+016ee0: */ + 0, /* U+016ee1: */ + 0, /* U+016ee2: */ + 0, /* U+016ee3: */ + 0, /* U+016ee4: */ + 0, /* U+016ee5: */ + 0, /* U+016ee6: */ + 0, /* U+016ee7: */ + 0, /* U+016ee8: */ + 0, /* U+016ee9: */ + 0, /* U+016eea: */ + 0, /* U+016eeb: */ + 0, /* U+016eec: */ + 0, /* U+016eed: */ + 0, /* U+016eee: */ + 0, /* U+016eef: */ + 0, /* U+016ef0: */ + 0, /* U+016ef1: */ + 0, /* U+016ef2: */ + 0, /* U+016ef3: */ + 0, /* U+016ef4: */ + 0, /* U+016ef5: */ + 0, /* U+016ef6: */ + 0, /* U+016ef7: */ + 0, /* U+016ef8: */ + 0, /* U+016ef9: */ + 0, /* U+016efa: */ + 0, /* U+016efb: */ + 0, /* U+016efc: */ + 0, /* U+016efd: */ + 0, /* U+016efe: */ + 0, /* U+016eff: */ + RTUNI_ALPHA, /* U+016f00: MIAO LETTER PA*/ + RTUNI_ALPHA, /* U+016f01: MIAO LETTER BA*/ + RTUNI_ALPHA, /* U+016f02: MIAO LETTER YI PA*/ + RTUNI_ALPHA, /* U+016f03: MIAO LETTER PLA*/ + RTUNI_ALPHA, /* U+016f04: MIAO LETTER MA*/ + RTUNI_ALPHA, /* U+016f05: MIAO LETTER MHA*/ + RTUNI_ALPHA, /* U+016f06: MIAO LETTER ARCHAIC MA*/ + RTUNI_ALPHA, /* U+016f07: MIAO LETTER FA*/ + RTUNI_ALPHA, /* U+016f08: MIAO LETTER VA*/ + RTUNI_ALPHA, /* U+016f09: MIAO LETTER VFA*/ + RTUNI_ALPHA, /* U+016f0a: MIAO LETTER TA*/ + RTUNI_ALPHA, /* U+016f0b: MIAO LETTER DA*/ + RTUNI_ALPHA, /* U+016f0c: MIAO LETTER YI TTA*/ + RTUNI_ALPHA, /* U+016f0d: MIAO LETTER YI TA*/ + RTUNI_ALPHA, /* U+016f0e: MIAO LETTER TTA*/ + RTUNI_ALPHA, /* U+016f0f: MIAO LETTER DDA*/ + RTUNI_ALPHA, /* U+016f10: MIAO LETTER NA*/ + RTUNI_ALPHA, /* U+016f11: MIAO LETTER NHA*/ + RTUNI_ALPHA, /* U+016f12: MIAO LETTER YI NNA*/ + RTUNI_ALPHA, /* U+016f13: MIAO LETTER ARCHAIC NA*/ + RTUNI_ALPHA, /* U+016f14: MIAO LETTER NNA*/ + RTUNI_ALPHA, /* U+016f15: MIAO LETTER NNHA*/ + RTUNI_ALPHA, /* U+016f16: MIAO LETTER LA*/ + RTUNI_ALPHA, /* U+016f17: MIAO LETTER LYA*/ + RTUNI_ALPHA, /* U+016f18: MIAO LETTER LHA*/ + RTUNI_ALPHA, /* U+016f19: MIAO LETTER LHYA*/ + RTUNI_ALPHA, /* U+016f1a: MIAO LETTER TLHA*/ + RTUNI_ALPHA, /* U+016f1b: MIAO LETTER DLHA*/ + RTUNI_ALPHA, /* U+016f1c: MIAO LETTER TLHYA*/ + RTUNI_ALPHA, /* U+016f1d: MIAO LETTER DLHYA*/ + RTUNI_ALPHA, /* U+016f1e: MIAO LETTER KA*/ + RTUNI_ALPHA, /* U+016f1f: MIAO LETTER GA*/ + RTUNI_ALPHA, /* U+016f20: MIAO LETTER YI KA*/ + RTUNI_ALPHA, /* U+016f21: MIAO LETTER QA*/ + RTUNI_ALPHA, /* U+016f22: MIAO LETTER QGA*/ + RTUNI_ALPHA, /* U+016f23: MIAO LETTER NGA*/ + RTUNI_ALPHA, /* U+016f24: MIAO LETTER NGHA*/ + RTUNI_ALPHA, /* U+016f25: MIAO LETTER ARCHAIC NGA*/ + RTUNI_ALPHA, /* U+016f26: MIAO LETTER HA*/ + RTUNI_ALPHA, /* U+016f27: MIAO LETTER XA*/ + RTUNI_ALPHA, /* U+016f28: MIAO LETTER GHA*/ + RTUNI_ALPHA, /* U+016f29: MIAO LETTER GHHA*/ + RTUNI_ALPHA, /* U+016f2a: MIAO LETTER TSSA*/ + RTUNI_ALPHA, /* U+016f2b: MIAO LETTER DZZA*/ + RTUNI_ALPHA, /* U+016f2c: MIAO LETTER NYA*/ + RTUNI_ALPHA, /* U+016f2d: MIAO LETTER NYHA*/ + RTUNI_ALPHA, /* U+016f2e: MIAO LETTER TSHA*/ + RTUNI_ALPHA, /* U+016f2f: MIAO LETTER DZHA*/ + RTUNI_ALPHA, /* U+016f30: MIAO LETTER YI TSHA*/ + RTUNI_ALPHA, /* U+016f31: MIAO LETTER YI DZHA*/ + RTUNI_ALPHA, /* U+016f32: MIAO LETTER REFORMED TSHA*/ + RTUNI_ALPHA, /* U+016f33: MIAO LETTER SHA*/ + RTUNI_ALPHA, /* U+016f34: MIAO LETTER SSA*/ + RTUNI_ALPHA, /* U+016f35: MIAO LETTER ZHA*/ + RTUNI_ALPHA, /* U+016f36: MIAO LETTER ZSHA*/ + RTUNI_ALPHA, /* U+016f37: MIAO LETTER TSA*/ + RTUNI_ALPHA, /* U+016f38: MIAO LETTER DZA*/ + RTUNI_ALPHA, /* U+016f39: MIAO LETTER YI TSA*/ + RTUNI_ALPHA, /* U+016f3a: MIAO LETTER SA*/ + RTUNI_ALPHA, /* U+016f3b: MIAO LETTER ZA*/ + RTUNI_ALPHA, /* U+016f3c: MIAO LETTER ZSA*/ + RTUNI_ALPHA, /* U+016f3d: MIAO LETTER ZZA*/ + RTUNI_ALPHA, /* U+016f3e: MIAO LETTER ZZSA*/ + RTUNI_ALPHA, /* U+016f3f: MIAO LETTER ARCHAIC ZZA*/ + RTUNI_ALPHA, /* U+016f40: MIAO LETTER ZZYA*/ + RTUNI_ALPHA, /* U+016f41: MIAO LETTER ZZSYA*/ + RTUNI_ALPHA, /* U+016f42: MIAO LETTER WA*/ + RTUNI_ALPHA, /* U+016f43: MIAO LETTER AH*/ + RTUNI_ALPHA, /* U+016f44: MIAO LETTER HHA*/ + 0, /* U+016f45: */ + 0, /* U+016f46: */ + 0, /* U+016f47: */ + 0, /* U+016f48: */ + 0, /* U+016f49: */ + 0, /* U+016f4a: */ + 0, /* U+016f4b: */ + 0, /* U+016f4c: */ + 0, /* U+016f4d: */ + 0, /* U+016f4e: */ + 0, /* U+016f4f: */ + RTUNI_ALPHA, /* U+016f50: MIAO LETTER NASALIZATION*/ + RTUNI_ALPHA, /* U+016f51: MIAO SIGN ASPIRATION*/ + RTUNI_ALPHA, /* U+016f52: MIAO SIGN REFORMED VOICING*/ + RTUNI_ALPHA, /* U+016f53: MIAO SIGN REFORMED ASPIRATION*/ + RTUNI_ALPHA, /* U+016f54: MIAO VOWEL SIGN A*/ + RTUNI_ALPHA, /* U+016f55: MIAO VOWEL SIGN AA*/ + RTUNI_ALPHA, /* U+016f56: MIAO VOWEL SIGN AHH*/ + RTUNI_ALPHA, /* U+016f57: MIAO VOWEL SIGN AN*/ + RTUNI_ALPHA, /* U+016f58: MIAO VOWEL SIGN ANG*/ + RTUNI_ALPHA, /* U+016f59: MIAO VOWEL SIGN O*/ + RTUNI_ALPHA, /* U+016f5a: MIAO VOWEL SIGN OO*/ + RTUNI_ALPHA, /* U+016f5b: MIAO VOWEL SIGN WO*/ + RTUNI_ALPHA, /* U+016f5c: MIAO VOWEL SIGN W*/ + RTUNI_ALPHA, /* U+016f5d: MIAO VOWEL SIGN E*/ + RTUNI_ALPHA, /* U+016f5e: MIAO VOWEL SIGN EN*/ + RTUNI_ALPHA, /* U+016f5f: MIAO VOWEL SIGN ENG*/ + RTUNI_ALPHA, /* U+016f60: MIAO VOWEL SIGN OEY*/ + RTUNI_ALPHA, /* U+016f61: MIAO VOWEL SIGN I*/ + RTUNI_ALPHA, /* U+016f62: MIAO VOWEL SIGN IA*/ + RTUNI_ALPHA, /* U+016f63: MIAO VOWEL SIGN IAN*/ + RTUNI_ALPHA, /* U+016f64: MIAO VOWEL SIGN IANG*/ + RTUNI_ALPHA, /* U+016f65: MIAO VOWEL SIGN IO*/ + RTUNI_ALPHA, /* U+016f66: MIAO VOWEL SIGN IE*/ + RTUNI_ALPHA, /* U+016f67: MIAO VOWEL SIGN II*/ + RTUNI_ALPHA, /* U+016f68: MIAO VOWEL SIGN IU*/ + RTUNI_ALPHA, /* U+016f69: MIAO VOWEL SIGN ING*/ + RTUNI_ALPHA, /* U+016f6a: MIAO VOWEL SIGN U*/ + RTUNI_ALPHA, /* U+016f6b: MIAO VOWEL SIGN UA*/ + RTUNI_ALPHA, /* U+016f6c: MIAO VOWEL SIGN UAN*/ + RTUNI_ALPHA, /* U+016f6d: MIAO VOWEL SIGN UANG*/ + RTUNI_ALPHA, /* U+016f6e: MIAO VOWEL SIGN UU*/ + RTUNI_ALPHA, /* U+016f6f: MIAO VOWEL SIGN UEI*/ + RTUNI_ALPHA, /* U+016f70: MIAO VOWEL SIGN UNG*/ + RTUNI_ALPHA, /* U+016f71: MIAO VOWEL SIGN Y*/ + RTUNI_ALPHA, /* U+016f72: MIAO VOWEL SIGN YI*/ + RTUNI_ALPHA, /* U+016f73: MIAO VOWEL SIGN AE*/ + RTUNI_ALPHA, /* U+016f74: MIAO VOWEL SIGN AEE*/ + RTUNI_ALPHA, /* U+016f75: MIAO VOWEL SIGN ERR*/ + RTUNI_ALPHA, /* U+016f76: MIAO VOWEL SIGN ROUNDED ERR*/ + RTUNI_ALPHA, /* U+016f77: MIAO VOWEL SIGN ER*/ + RTUNI_ALPHA, /* U+016f78: MIAO VOWEL SIGN ROUNDED ER*/ + RTUNI_ALPHA, /* U+016f79: MIAO VOWEL SIGN AI*/ + RTUNI_ALPHA, /* U+016f7a: MIAO VOWEL SIGN EI*/ + RTUNI_ALPHA, /* U+016f7b: MIAO VOWEL SIGN AU*/ + RTUNI_ALPHA, /* U+016f7c: MIAO VOWEL SIGN OU*/ + RTUNI_ALPHA, /* U+016f7d: MIAO VOWEL SIGN N*/ + RTUNI_ALPHA, /* U+016f7e: MIAO VOWEL SIGN NG*/ + 0, /* U+016f7f: */ + 0, /* U+016f80: */ + 0, /* U+016f81: */ + 0, /* U+016f82: */ + 0, /* U+016f83: */ + 0, /* U+016f84: */ + 0, /* U+016f85: */ + 0, /* U+016f86: */ + 0, /* U+016f87: */ + 0, /* U+016f88: */ + 0, /* U+016f89: */ + 0, /* U+016f8a: */ + 0, /* U+016f8b: */ + 0, /* U+016f8c: */ + 0, /* U+016f8d: */ + 0, /* U+016f8e: */ + 0, /* U+016f8f: MIAO TONE RIGHT*/ + 0, /* U+016f90: MIAO TONE TOP RIGHT*/ + 0, /* U+016f91: MIAO TONE ABOVE*/ + 0, /* U+016f92: MIAO TONE BELOW*/ + RTUNI_ALPHA, /* U+016f93: MIAO LETTER TONE-2*/ + RTUNI_ALPHA, /* U+016f94: MIAO LETTER TONE-3*/ + RTUNI_ALPHA, /* U+016f95: MIAO LETTER TONE-4*/ + RTUNI_ALPHA, /* U+016f96: MIAO LETTER TONE-5*/ + RTUNI_ALPHA, /* U+016f97: MIAO LETTER TONE-6*/ + RTUNI_ALPHA, /* U+016f98: MIAO LETTER TONE-7*/ + RTUNI_ALPHA, /* U+016f99: MIAO LETTER TONE-8*/ + RTUNI_ALPHA, /* U+016f9a: MIAO LETTER REFORMED TONE-1*/ + RTUNI_ALPHA, /* U+016f9b: MIAO LETTER REFORMED TONE-2*/ + RTUNI_ALPHA, /* U+016f9c: MIAO LETTER REFORMED TONE-4*/ + RTUNI_ALPHA, /* U+016f9d: MIAO LETTER REFORMED TONE-5*/ + RTUNI_ALPHA, /* U+016f9e: MIAO LETTER REFORMED TONE-6*/ + RTUNI_ALPHA, /* U+016f9f: MIAO LETTER REFORMED TONE-8*/ +}; + +static const uint8_t g_afRTUniFlags0x01b000[] = +{ + RTUNI_ALPHA, /* U+01b000: KATAKANA LETTER ARCHAIC E*/ + RTUNI_ALPHA, /* U+01b001: HIRAGANA LETTER ARCHAIC YE*/ +}; + +static const uint8_t g_afRTUniFlags0x01d400[] = +{ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d400: MATHEMATICAL BOLD CAPITAL A*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d401: MATHEMATICAL BOLD CAPITAL B*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d402: MATHEMATICAL BOLD CAPITAL C*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d403: MATHEMATICAL BOLD CAPITAL D*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d404: MATHEMATICAL BOLD CAPITAL E*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d405: MATHEMATICAL BOLD CAPITAL F*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d406: MATHEMATICAL BOLD CAPITAL G*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d407: MATHEMATICAL BOLD CAPITAL H*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d408: MATHEMATICAL BOLD CAPITAL I*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d409: MATHEMATICAL BOLD CAPITAL J*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d40a: MATHEMATICAL BOLD CAPITAL K*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d40b: MATHEMATICAL BOLD CAPITAL L*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d40c: MATHEMATICAL BOLD CAPITAL M*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d40d: MATHEMATICAL BOLD CAPITAL N*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d40e: MATHEMATICAL BOLD CAPITAL O*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d40f: MATHEMATICAL BOLD CAPITAL P*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d410: MATHEMATICAL BOLD CAPITAL Q*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d411: MATHEMATICAL BOLD CAPITAL R*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d412: MATHEMATICAL BOLD CAPITAL S*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d413: MATHEMATICAL BOLD CAPITAL T*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d414: MATHEMATICAL BOLD CAPITAL U*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d415: MATHEMATICAL BOLD CAPITAL V*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d416: MATHEMATICAL BOLD CAPITAL W*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d417: MATHEMATICAL BOLD CAPITAL X*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d418: MATHEMATICAL BOLD CAPITAL Y*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d419: MATHEMATICAL BOLD CAPITAL Z*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d41a: MATHEMATICAL BOLD SMALL A*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d41b: MATHEMATICAL BOLD SMALL B*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d41c: MATHEMATICAL BOLD SMALL C*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d41d: MATHEMATICAL BOLD SMALL D*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d41e: MATHEMATICAL BOLD SMALL E*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d41f: MATHEMATICAL BOLD SMALL F*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d420: MATHEMATICAL BOLD SMALL G*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d421: MATHEMATICAL BOLD SMALL H*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d422: MATHEMATICAL BOLD SMALL I*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d423: MATHEMATICAL BOLD SMALL J*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d424: MATHEMATICAL BOLD SMALL K*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d425: MATHEMATICAL BOLD SMALL L*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d426: MATHEMATICAL BOLD SMALL M*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d427: MATHEMATICAL BOLD SMALL N*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d428: MATHEMATICAL BOLD SMALL O*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d429: MATHEMATICAL BOLD SMALL P*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d42a: MATHEMATICAL BOLD SMALL Q*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d42b: MATHEMATICAL BOLD SMALL R*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d42c: MATHEMATICAL BOLD SMALL S*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d42d: MATHEMATICAL BOLD SMALL T*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d42e: MATHEMATICAL BOLD SMALL U*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d42f: MATHEMATICAL BOLD SMALL V*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d430: MATHEMATICAL BOLD SMALL W*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d431: MATHEMATICAL BOLD SMALL X*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d432: MATHEMATICAL BOLD SMALL Y*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d433: MATHEMATICAL BOLD SMALL Z*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d434: MATHEMATICAL ITALIC CAPITAL A*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d435: MATHEMATICAL ITALIC CAPITAL B*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d436: MATHEMATICAL ITALIC CAPITAL C*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d437: MATHEMATICAL ITALIC CAPITAL D*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d438: MATHEMATICAL ITALIC CAPITAL E*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d439: MATHEMATICAL ITALIC CAPITAL F*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d43a: MATHEMATICAL ITALIC CAPITAL G*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d43b: MATHEMATICAL ITALIC CAPITAL H*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d43c: MATHEMATICAL ITALIC CAPITAL I*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d43d: MATHEMATICAL ITALIC CAPITAL J*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d43e: MATHEMATICAL ITALIC CAPITAL K*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d43f: MATHEMATICAL ITALIC CAPITAL L*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d440: MATHEMATICAL ITALIC CAPITAL M*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d441: MATHEMATICAL ITALIC CAPITAL N*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d442: MATHEMATICAL ITALIC CAPITAL O*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d443: MATHEMATICAL ITALIC CAPITAL P*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d444: MATHEMATICAL ITALIC CAPITAL Q*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d445: MATHEMATICAL ITALIC CAPITAL R*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d446: MATHEMATICAL ITALIC CAPITAL S*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d447: MATHEMATICAL ITALIC CAPITAL T*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d448: MATHEMATICAL ITALIC CAPITAL U*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d449: MATHEMATICAL ITALIC CAPITAL V*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d44a: MATHEMATICAL ITALIC CAPITAL W*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d44b: MATHEMATICAL ITALIC CAPITAL X*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d44c: MATHEMATICAL ITALIC CAPITAL Y*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d44d: MATHEMATICAL ITALIC CAPITAL Z*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d44e: MATHEMATICAL ITALIC SMALL A*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d44f: MATHEMATICAL ITALIC SMALL B*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d450: MATHEMATICAL ITALIC SMALL C*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d451: MATHEMATICAL ITALIC SMALL D*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d452: MATHEMATICAL ITALIC SMALL E*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d453: MATHEMATICAL ITALIC SMALL F*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d454: MATHEMATICAL ITALIC SMALL G*/ + 0, /* U+01d455: */ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d456: MATHEMATICAL ITALIC SMALL I*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d457: MATHEMATICAL ITALIC SMALL J*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d458: MATHEMATICAL ITALIC SMALL K*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d459: MATHEMATICAL ITALIC SMALL L*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d45a: MATHEMATICAL ITALIC SMALL M*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d45b: MATHEMATICAL ITALIC SMALL N*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d45c: MATHEMATICAL ITALIC SMALL O*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d45d: MATHEMATICAL ITALIC SMALL P*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d45e: MATHEMATICAL ITALIC SMALL Q*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d45f: MATHEMATICAL ITALIC SMALL R*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d460: MATHEMATICAL ITALIC SMALL S*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d461: MATHEMATICAL ITALIC SMALL T*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d462: MATHEMATICAL ITALIC SMALL U*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d463: MATHEMATICAL ITALIC SMALL V*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d464: MATHEMATICAL ITALIC SMALL W*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d465: MATHEMATICAL ITALIC SMALL X*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d466: MATHEMATICAL ITALIC SMALL Y*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d467: MATHEMATICAL ITALIC SMALL Z*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d468: MATHEMATICAL BOLD ITALIC CAPITAL A*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d469: MATHEMATICAL BOLD ITALIC CAPITAL B*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d46a: MATHEMATICAL BOLD ITALIC CAPITAL C*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d46b: MATHEMATICAL BOLD ITALIC CAPITAL D*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d46c: MATHEMATICAL BOLD ITALIC CAPITAL E*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d46d: MATHEMATICAL BOLD ITALIC CAPITAL F*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d46e: MATHEMATICAL BOLD ITALIC CAPITAL G*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d46f: MATHEMATICAL BOLD ITALIC CAPITAL H*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d470: MATHEMATICAL BOLD ITALIC CAPITAL I*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d471: MATHEMATICAL BOLD ITALIC CAPITAL J*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d472: MATHEMATICAL BOLD ITALIC CAPITAL K*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d473: MATHEMATICAL BOLD ITALIC CAPITAL L*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d474: MATHEMATICAL BOLD ITALIC CAPITAL M*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d475: MATHEMATICAL BOLD ITALIC CAPITAL N*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d476: MATHEMATICAL BOLD ITALIC CAPITAL O*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d477: MATHEMATICAL BOLD ITALIC CAPITAL P*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d478: MATHEMATICAL BOLD ITALIC CAPITAL Q*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d479: MATHEMATICAL BOLD ITALIC CAPITAL R*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d47a: MATHEMATICAL BOLD ITALIC CAPITAL S*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d47b: MATHEMATICAL BOLD ITALIC CAPITAL T*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d47c: MATHEMATICAL BOLD ITALIC CAPITAL U*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d47d: MATHEMATICAL BOLD ITALIC CAPITAL V*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d47e: MATHEMATICAL BOLD ITALIC CAPITAL W*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d47f: MATHEMATICAL BOLD ITALIC CAPITAL X*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d480: MATHEMATICAL BOLD ITALIC CAPITAL Y*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d481: MATHEMATICAL BOLD ITALIC CAPITAL Z*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d482: MATHEMATICAL BOLD ITALIC SMALL A*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d483: MATHEMATICAL BOLD ITALIC SMALL B*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d484: MATHEMATICAL BOLD ITALIC SMALL C*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d485: MATHEMATICAL BOLD ITALIC SMALL D*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d486: MATHEMATICAL BOLD ITALIC SMALL E*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d487: MATHEMATICAL BOLD ITALIC SMALL F*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d488: MATHEMATICAL BOLD ITALIC SMALL G*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d489: MATHEMATICAL BOLD ITALIC SMALL H*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d48a: MATHEMATICAL BOLD ITALIC SMALL I*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d48b: MATHEMATICAL BOLD ITALIC SMALL J*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d48c: MATHEMATICAL BOLD ITALIC SMALL K*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d48d: MATHEMATICAL BOLD ITALIC SMALL L*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d48e: MATHEMATICAL BOLD ITALIC SMALL M*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d48f: MATHEMATICAL BOLD ITALIC SMALL N*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d490: MATHEMATICAL BOLD ITALIC SMALL O*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d491: MATHEMATICAL BOLD ITALIC SMALL P*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d492: MATHEMATICAL BOLD ITALIC SMALL Q*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d493: MATHEMATICAL BOLD ITALIC SMALL R*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d494: MATHEMATICAL BOLD ITALIC SMALL S*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d495: MATHEMATICAL BOLD ITALIC SMALL T*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d496: MATHEMATICAL BOLD ITALIC SMALL U*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d497: MATHEMATICAL BOLD ITALIC SMALL V*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d498: MATHEMATICAL BOLD ITALIC SMALL W*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d499: MATHEMATICAL BOLD ITALIC SMALL X*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d49a: MATHEMATICAL BOLD ITALIC SMALL Y*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d49b: MATHEMATICAL BOLD ITALIC SMALL Z*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d49c: MATHEMATICAL SCRIPT CAPITAL A*/ + 0, /* U+01d49d: */ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d49e: MATHEMATICAL SCRIPT CAPITAL C*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d49f: MATHEMATICAL SCRIPT CAPITAL D*/ + 0, /* U+01d4a0: */ + 0, /* U+01d4a1: */ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d4a2: MATHEMATICAL SCRIPT CAPITAL G*/ + 0, /* U+01d4a3: */ + 0, /* U+01d4a4: */ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d4a5: MATHEMATICAL SCRIPT CAPITAL J*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d4a6: MATHEMATICAL SCRIPT CAPITAL K*/ + 0, /* U+01d4a7: */ + 0, /* U+01d4a8: */ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d4a9: MATHEMATICAL SCRIPT CAPITAL N*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d4aa: MATHEMATICAL SCRIPT CAPITAL O*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d4ab: MATHEMATICAL SCRIPT CAPITAL P*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d4ac: MATHEMATICAL SCRIPT CAPITAL Q*/ + 0, /* U+01d4ad: */ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d4ae: MATHEMATICAL SCRIPT CAPITAL S*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d4af: MATHEMATICAL SCRIPT CAPITAL T*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d4b0: MATHEMATICAL SCRIPT CAPITAL U*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d4b1: MATHEMATICAL SCRIPT CAPITAL V*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d4b2: MATHEMATICAL SCRIPT CAPITAL W*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d4b3: MATHEMATICAL SCRIPT CAPITAL X*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d4b4: MATHEMATICAL SCRIPT CAPITAL Y*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d4b5: MATHEMATICAL SCRIPT CAPITAL Z*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d4b6: MATHEMATICAL SCRIPT SMALL A*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d4b7: MATHEMATICAL SCRIPT SMALL B*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d4b8: MATHEMATICAL SCRIPT SMALL C*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d4b9: MATHEMATICAL SCRIPT SMALL D*/ + 0, /* U+01d4ba: */ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d4bb: MATHEMATICAL SCRIPT SMALL F*/ + 0, /* U+01d4bc: */ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d4bd: MATHEMATICAL SCRIPT SMALL H*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d4be: MATHEMATICAL SCRIPT SMALL I*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d4bf: MATHEMATICAL SCRIPT SMALL J*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d4c0: MATHEMATICAL SCRIPT SMALL K*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d4c1: MATHEMATICAL SCRIPT SMALL L*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d4c2: MATHEMATICAL SCRIPT SMALL M*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d4c3: MATHEMATICAL SCRIPT SMALL N*/ + 0, /* U+01d4c4: */ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d4c5: MATHEMATICAL SCRIPT SMALL P*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d4c6: MATHEMATICAL SCRIPT SMALL Q*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d4c7: MATHEMATICAL SCRIPT SMALL R*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d4c8: MATHEMATICAL SCRIPT SMALL S*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d4c9: MATHEMATICAL SCRIPT SMALL T*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d4ca: MATHEMATICAL SCRIPT SMALL U*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d4cb: MATHEMATICAL SCRIPT SMALL V*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d4cc: MATHEMATICAL SCRIPT SMALL W*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d4cd: MATHEMATICAL SCRIPT SMALL X*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d4ce: MATHEMATICAL SCRIPT SMALL Y*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d4cf: MATHEMATICAL SCRIPT SMALL Z*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d4d0: MATHEMATICAL BOLD SCRIPT CAPITAL A*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d4d1: MATHEMATICAL BOLD SCRIPT CAPITAL B*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d4d2: MATHEMATICAL BOLD SCRIPT CAPITAL C*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d4d3: MATHEMATICAL BOLD SCRIPT CAPITAL D*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d4d4: MATHEMATICAL BOLD SCRIPT CAPITAL E*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d4d5: MATHEMATICAL BOLD SCRIPT CAPITAL F*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d4d6: MATHEMATICAL BOLD SCRIPT CAPITAL G*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d4d7: MATHEMATICAL BOLD SCRIPT CAPITAL H*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d4d8: MATHEMATICAL BOLD SCRIPT CAPITAL I*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d4d9: MATHEMATICAL BOLD SCRIPT CAPITAL J*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d4da: MATHEMATICAL BOLD SCRIPT CAPITAL K*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d4db: MATHEMATICAL BOLD SCRIPT CAPITAL L*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d4dc: MATHEMATICAL BOLD SCRIPT CAPITAL M*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d4dd: MATHEMATICAL BOLD SCRIPT CAPITAL N*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d4de: MATHEMATICAL BOLD SCRIPT CAPITAL O*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d4df: MATHEMATICAL BOLD SCRIPT CAPITAL P*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d4e0: MATHEMATICAL BOLD SCRIPT CAPITAL Q*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d4e1: MATHEMATICAL BOLD SCRIPT CAPITAL R*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d4e2: MATHEMATICAL BOLD SCRIPT CAPITAL S*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d4e3: MATHEMATICAL BOLD SCRIPT CAPITAL T*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d4e4: MATHEMATICAL BOLD SCRIPT CAPITAL U*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d4e5: MATHEMATICAL BOLD SCRIPT CAPITAL V*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d4e6: MATHEMATICAL BOLD SCRIPT CAPITAL W*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d4e7: MATHEMATICAL BOLD SCRIPT CAPITAL X*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d4e8: MATHEMATICAL BOLD SCRIPT CAPITAL Y*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d4e9: MATHEMATICAL BOLD SCRIPT CAPITAL Z*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d4ea: MATHEMATICAL BOLD SCRIPT SMALL A*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d4eb: MATHEMATICAL BOLD SCRIPT SMALL B*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d4ec: MATHEMATICAL BOLD SCRIPT SMALL C*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d4ed: MATHEMATICAL BOLD SCRIPT SMALL D*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d4ee: MATHEMATICAL BOLD SCRIPT SMALL E*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d4ef: MATHEMATICAL BOLD SCRIPT SMALL F*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d4f0: MATHEMATICAL BOLD SCRIPT SMALL G*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d4f1: MATHEMATICAL BOLD SCRIPT SMALL H*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d4f2: MATHEMATICAL BOLD SCRIPT SMALL I*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d4f3: MATHEMATICAL BOLD SCRIPT SMALL J*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d4f4: MATHEMATICAL BOLD SCRIPT SMALL K*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d4f5: MATHEMATICAL BOLD SCRIPT SMALL L*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d4f6: MATHEMATICAL BOLD SCRIPT SMALL M*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d4f7: MATHEMATICAL BOLD SCRIPT SMALL N*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d4f8: MATHEMATICAL BOLD SCRIPT SMALL O*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d4f9: MATHEMATICAL BOLD SCRIPT SMALL P*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d4fa: MATHEMATICAL BOLD SCRIPT SMALL Q*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d4fb: MATHEMATICAL BOLD SCRIPT SMALL R*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d4fc: MATHEMATICAL BOLD SCRIPT SMALL S*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d4fd: MATHEMATICAL BOLD SCRIPT SMALL T*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d4fe: MATHEMATICAL BOLD SCRIPT SMALL U*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d4ff: MATHEMATICAL BOLD SCRIPT SMALL V*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d500: MATHEMATICAL BOLD SCRIPT SMALL W*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d501: MATHEMATICAL BOLD SCRIPT SMALL X*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d502: MATHEMATICAL BOLD SCRIPT SMALL Y*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d503: MATHEMATICAL BOLD SCRIPT SMALL Z*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d504: MATHEMATICAL FRAKTUR CAPITAL A*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d505: MATHEMATICAL FRAKTUR CAPITAL B*/ + 0, /* U+01d506: */ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d507: MATHEMATICAL FRAKTUR CAPITAL D*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d508: MATHEMATICAL FRAKTUR CAPITAL E*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d509: MATHEMATICAL FRAKTUR CAPITAL F*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d50a: MATHEMATICAL FRAKTUR CAPITAL G*/ + 0, /* U+01d50b: */ + 0, /* U+01d50c: */ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d50d: MATHEMATICAL FRAKTUR CAPITAL J*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d50e: MATHEMATICAL FRAKTUR CAPITAL K*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d50f: MATHEMATICAL FRAKTUR CAPITAL L*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d510: MATHEMATICAL FRAKTUR CAPITAL M*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d511: MATHEMATICAL FRAKTUR CAPITAL N*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d512: MATHEMATICAL FRAKTUR CAPITAL O*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d513: MATHEMATICAL FRAKTUR CAPITAL P*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d514: MATHEMATICAL FRAKTUR CAPITAL Q*/ + 0, /* U+01d515: */ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d516: MATHEMATICAL FRAKTUR CAPITAL S*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d517: MATHEMATICAL FRAKTUR CAPITAL T*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d518: MATHEMATICAL FRAKTUR CAPITAL U*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d519: MATHEMATICAL FRAKTUR CAPITAL V*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d51a: MATHEMATICAL FRAKTUR CAPITAL W*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d51b: MATHEMATICAL FRAKTUR CAPITAL X*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d51c: MATHEMATICAL FRAKTUR CAPITAL Y*/ + 0, /* U+01d51d: */ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d51e: MATHEMATICAL FRAKTUR SMALL A*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d51f: MATHEMATICAL FRAKTUR SMALL B*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d520: MATHEMATICAL FRAKTUR SMALL C*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d521: MATHEMATICAL FRAKTUR SMALL D*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d522: MATHEMATICAL FRAKTUR SMALL E*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d523: MATHEMATICAL FRAKTUR SMALL F*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d524: MATHEMATICAL FRAKTUR SMALL G*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d525: MATHEMATICAL FRAKTUR SMALL H*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d526: MATHEMATICAL FRAKTUR SMALL I*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d527: MATHEMATICAL FRAKTUR SMALL J*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d528: MATHEMATICAL FRAKTUR SMALL K*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d529: MATHEMATICAL FRAKTUR SMALL L*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d52a: MATHEMATICAL FRAKTUR SMALL M*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d52b: MATHEMATICAL FRAKTUR SMALL N*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d52c: MATHEMATICAL FRAKTUR SMALL O*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d52d: MATHEMATICAL FRAKTUR SMALL P*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d52e: MATHEMATICAL FRAKTUR SMALL Q*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d52f: MATHEMATICAL FRAKTUR SMALL R*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d530: MATHEMATICAL FRAKTUR SMALL S*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d531: MATHEMATICAL FRAKTUR SMALL T*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d532: MATHEMATICAL FRAKTUR SMALL U*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d533: MATHEMATICAL FRAKTUR SMALL V*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d534: MATHEMATICAL FRAKTUR SMALL W*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d535: MATHEMATICAL FRAKTUR SMALL X*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d536: MATHEMATICAL FRAKTUR SMALL Y*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d537: MATHEMATICAL FRAKTUR SMALL Z*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d538: MATHEMATICAL DOUBLE-STRUCK CAPITAL A*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d539: MATHEMATICAL DOUBLE-STRUCK CAPITAL B*/ + 0, /* U+01d53a: */ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d53b: MATHEMATICAL DOUBLE-STRUCK CAPITAL D*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d53c: MATHEMATICAL DOUBLE-STRUCK CAPITAL E*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d53d: MATHEMATICAL DOUBLE-STRUCK CAPITAL F*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d53e: MATHEMATICAL DOUBLE-STRUCK CAPITAL G*/ + 0, /* U+01d53f: */ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d540: MATHEMATICAL DOUBLE-STRUCK CAPITAL I*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d541: MATHEMATICAL DOUBLE-STRUCK CAPITAL J*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d542: MATHEMATICAL DOUBLE-STRUCK CAPITAL K*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d543: MATHEMATICAL DOUBLE-STRUCK CAPITAL L*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d544: MATHEMATICAL DOUBLE-STRUCK CAPITAL M*/ + 0, /* U+01d545: */ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d546: MATHEMATICAL DOUBLE-STRUCK CAPITAL O*/ + 0, /* U+01d547: */ + 0, /* U+01d548: */ + 0, /* U+01d549: */ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d54a: MATHEMATICAL DOUBLE-STRUCK CAPITAL S*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d54b: MATHEMATICAL DOUBLE-STRUCK CAPITAL T*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d54c: MATHEMATICAL DOUBLE-STRUCK CAPITAL U*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d54d: MATHEMATICAL DOUBLE-STRUCK CAPITAL V*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d54e: MATHEMATICAL DOUBLE-STRUCK CAPITAL W*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d54f: MATHEMATICAL DOUBLE-STRUCK CAPITAL X*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d550: MATHEMATICAL DOUBLE-STRUCK CAPITAL Y*/ + 0, /* U+01d551: */ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d552: MATHEMATICAL DOUBLE-STRUCK SMALL A*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d553: MATHEMATICAL DOUBLE-STRUCK SMALL B*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d554: MATHEMATICAL DOUBLE-STRUCK SMALL C*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d555: MATHEMATICAL DOUBLE-STRUCK SMALL D*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d556: MATHEMATICAL DOUBLE-STRUCK SMALL E*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d557: MATHEMATICAL DOUBLE-STRUCK SMALL F*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d558: MATHEMATICAL DOUBLE-STRUCK SMALL G*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d559: MATHEMATICAL DOUBLE-STRUCK SMALL H*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d55a: MATHEMATICAL DOUBLE-STRUCK SMALL I*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d55b: MATHEMATICAL DOUBLE-STRUCK SMALL J*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d55c: MATHEMATICAL DOUBLE-STRUCK SMALL K*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d55d: MATHEMATICAL DOUBLE-STRUCK SMALL L*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d55e: MATHEMATICAL DOUBLE-STRUCK SMALL M*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d55f: MATHEMATICAL DOUBLE-STRUCK SMALL N*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d560: MATHEMATICAL DOUBLE-STRUCK SMALL O*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d561: MATHEMATICAL DOUBLE-STRUCK SMALL P*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d562: MATHEMATICAL DOUBLE-STRUCK SMALL Q*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d563: MATHEMATICAL DOUBLE-STRUCK SMALL R*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d564: MATHEMATICAL DOUBLE-STRUCK SMALL S*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d565: MATHEMATICAL DOUBLE-STRUCK SMALL T*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d566: MATHEMATICAL DOUBLE-STRUCK SMALL U*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d567: MATHEMATICAL DOUBLE-STRUCK SMALL V*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d568: MATHEMATICAL DOUBLE-STRUCK SMALL W*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d569: MATHEMATICAL DOUBLE-STRUCK SMALL X*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d56a: MATHEMATICAL DOUBLE-STRUCK SMALL Y*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d56b: MATHEMATICAL DOUBLE-STRUCK SMALL Z*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d56c: MATHEMATICAL BOLD FRAKTUR CAPITAL A*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d56d: MATHEMATICAL BOLD FRAKTUR CAPITAL B*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d56e: MATHEMATICAL BOLD FRAKTUR CAPITAL C*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d56f: MATHEMATICAL BOLD FRAKTUR CAPITAL D*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d570: MATHEMATICAL BOLD FRAKTUR CAPITAL E*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d571: MATHEMATICAL BOLD FRAKTUR CAPITAL F*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d572: MATHEMATICAL BOLD FRAKTUR CAPITAL G*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d573: MATHEMATICAL BOLD FRAKTUR CAPITAL H*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d574: MATHEMATICAL BOLD FRAKTUR CAPITAL I*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d575: MATHEMATICAL BOLD FRAKTUR CAPITAL J*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d576: MATHEMATICAL BOLD FRAKTUR CAPITAL K*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d577: MATHEMATICAL BOLD FRAKTUR CAPITAL L*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d578: MATHEMATICAL BOLD FRAKTUR CAPITAL M*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d579: MATHEMATICAL BOLD FRAKTUR CAPITAL N*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d57a: MATHEMATICAL BOLD FRAKTUR CAPITAL O*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d57b: MATHEMATICAL BOLD FRAKTUR CAPITAL P*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d57c: MATHEMATICAL BOLD FRAKTUR CAPITAL Q*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d57d: MATHEMATICAL BOLD FRAKTUR CAPITAL R*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d57e: MATHEMATICAL BOLD FRAKTUR CAPITAL S*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d57f: MATHEMATICAL BOLD FRAKTUR CAPITAL T*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d580: MATHEMATICAL BOLD FRAKTUR CAPITAL U*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d581: MATHEMATICAL BOLD FRAKTUR CAPITAL V*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d582: MATHEMATICAL BOLD FRAKTUR CAPITAL W*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d583: MATHEMATICAL BOLD FRAKTUR CAPITAL X*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d584: MATHEMATICAL BOLD FRAKTUR CAPITAL Y*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d585: MATHEMATICAL BOLD FRAKTUR CAPITAL Z*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d586: MATHEMATICAL BOLD FRAKTUR SMALL A*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d587: MATHEMATICAL BOLD FRAKTUR SMALL B*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d588: MATHEMATICAL BOLD FRAKTUR SMALL C*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d589: MATHEMATICAL BOLD FRAKTUR SMALL D*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d58a: MATHEMATICAL BOLD FRAKTUR SMALL E*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d58b: MATHEMATICAL BOLD FRAKTUR SMALL F*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d58c: MATHEMATICAL BOLD FRAKTUR SMALL G*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d58d: MATHEMATICAL BOLD FRAKTUR SMALL H*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d58e: MATHEMATICAL BOLD FRAKTUR SMALL I*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d58f: MATHEMATICAL BOLD FRAKTUR SMALL J*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d590: MATHEMATICAL BOLD FRAKTUR SMALL K*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d591: MATHEMATICAL BOLD FRAKTUR SMALL L*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d592: MATHEMATICAL BOLD FRAKTUR SMALL M*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d593: MATHEMATICAL BOLD FRAKTUR SMALL N*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d594: MATHEMATICAL BOLD FRAKTUR SMALL O*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d595: MATHEMATICAL BOLD FRAKTUR SMALL P*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d596: MATHEMATICAL BOLD FRAKTUR SMALL Q*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d597: MATHEMATICAL BOLD FRAKTUR SMALL R*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d598: MATHEMATICAL BOLD FRAKTUR SMALL S*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d599: MATHEMATICAL BOLD FRAKTUR SMALL T*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d59a: MATHEMATICAL BOLD FRAKTUR SMALL U*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d59b: MATHEMATICAL BOLD FRAKTUR SMALL V*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d59c: MATHEMATICAL BOLD FRAKTUR SMALL W*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d59d: MATHEMATICAL BOLD FRAKTUR SMALL X*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d59e: MATHEMATICAL BOLD FRAKTUR SMALL Y*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d59f: MATHEMATICAL BOLD FRAKTUR SMALL Z*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d5a0: MATHEMATICAL SANS-SERIF CAPITAL A*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d5a1: MATHEMATICAL SANS-SERIF CAPITAL B*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d5a2: MATHEMATICAL SANS-SERIF CAPITAL C*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d5a3: MATHEMATICAL SANS-SERIF CAPITAL D*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d5a4: MATHEMATICAL SANS-SERIF CAPITAL E*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d5a5: MATHEMATICAL SANS-SERIF CAPITAL F*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d5a6: MATHEMATICAL SANS-SERIF CAPITAL G*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d5a7: MATHEMATICAL SANS-SERIF CAPITAL H*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d5a8: MATHEMATICAL SANS-SERIF CAPITAL I*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d5a9: MATHEMATICAL SANS-SERIF CAPITAL J*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d5aa: MATHEMATICAL SANS-SERIF CAPITAL K*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d5ab: MATHEMATICAL SANS-SERIF CAPITAL L*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d5ac: MATHEMATICAL SANS-SERIF CAPITAL M*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d5ad: MATHEMATICAL SANS-SERIF CAPITAL N*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d5ae: MATHEMATICAL SANS-SERIF CAPITAL O*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d5af: MATHEMATICAL SANS-SERIF CAPITAL P*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d5b0: MATHEMATICAL SANS-SERIF CAPITAL Q*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d5b1: MATHEMATICAL SANS-SERIF CAPITAL R*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d5b2: MATHEMATICAL SANS-SERIF CAPITAL S*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d5b3: MATHEMATICAL SANS-SERIF CAPITAL T*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d5b4: MATHEMATICAL SANS-SERIF CAPITAL U*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d5b5: MATHEMATICAL SANS-SERIF CAPITAL V*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d5b6: MATHEMATICAL SANS-SERIF CAPITAL W*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d5b7: MATHEMATICAL SANS-SERIF CAPITAL X*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d5b8: MATHEMATICAL SANS-SERIF CAPITAL Y*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d5b9: MATHEMATICAL SANS-SERIF CAPITAL Z*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d5ba: MATHEMATICAL SANS-SERIF SMALL A*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d5bb: MATHEMATICAL SANS-SERIF SMALL B*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d5bc: MATHEMATICAL SANS-SERIF SMALL C*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d5bd: MATHEMATICAL SANS-SERIF SMALL D*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d5be: MATHEMATICAL SANS-SERIF SMALL E*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d5bf: MATHEMATICAL SANS-SERIF SMALL F*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d5c0: MATHEMATICAL SANS-SERIF SMALL G*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d5c1: MATHEMATICAL SANS-SERIF SMALL H*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d5c2: MATHEMATICAL SANS-SERIF SMALL I*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d5c3: MATHEMATICAL SANS-SERIF SMALL J*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d5c4: MATHEMATICAL SANS-SERIF SMALL K*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d5c5: MATHEMATICAL SANS-SERIF SMALL L*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d5c6: MATHEMATICAL SANS-SERIF SMALL M*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d5c7: MATHEMATICAL SANS-SERIF SMALL N*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d5c8: MATHEMATICAL SANS-SERIF SMALL O*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d5c9: MATHEMATICAL SANS-SERIF SMALL P*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d5ca: MATHEMATICAL SANS-SERIF SMALL Q*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d5cb: MATHEMATICAL SANS-SERIF SMALL R*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d5cc: MATHEMATICAL SANS-SERIF SMALL S*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d5cd: MATHEMATICAL SANS-SERIF SMALL T*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d5ce: MATHEMATICAL SANS-SERIF SMALL U*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d5cf: MATHEMATICAL SANS-SERIF SMALL V*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d5d0: MATHEMATICAL SANS-SERIF SMALL W*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d5d1: MATHEMATICAL SANS-SERIF SMALL X*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d5d2: MATHEMATICAL SANS-SERIF SMALL Y*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d5d3: MATHEMATICAL SANS-SERIF SMALL Z*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d5d4: MATHEMATICAL SANS-SERIF BOLD CAPITAL A*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d5d5: MATHEMATICAL SANS-SERIF BOLD CAPITAL B*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d5d6: MATHEMATICAL SANS-SERIF BOLD CAPITAL C*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d5d7: MATHEMATICAL SANS-SERIF BOLD CAPITAL D*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d5d8: MATHEMATICAL SANS-SERIF BOLD CAPITAL E*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d5d9: MATHEMATICAL SANS-SERIF BOLD CAPITAL F*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d5da: MATHEMATICAL SANS-SERIF BOLD CAPITAL G*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d5db: MATHEMATICAL SANS-SERIF BOLD CAPITAL H*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d5dc: MATHEMATICAL SANS-SERIF BOLD CAPITAL I*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d5dd: MATHEMATICAL SANS-SERIF BOLD CAPITAL J*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d5de: MATHEMATICAL SANS-SERIF BOLD CAPITAL K*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d5df: MATHEMATICAL SANS-SERIF BOLD CAPITAL L*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d5e0: MATHEMATICAL SANS-SERIF BOLD CAPITAL M*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d5e1: MATHEMATICAL SANS-SERIF BOLD CAPITAL N*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d5e2: MATHEMATICAL SANS-SERIF BOLD CAPITAL O*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d5e3: MATHEMATICAL SANS-SERIF BOLD CAPITAL P*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d5e4: MATHEMATICAL SANS-SERIF BOLD CAPITAL Q*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d5e5: MATHEMATICAL SANS-SERIF BOLD CAPITAL R*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d5e6: MATHEMATICAL SANS-SERIF BOLD CAPITAL S*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d5e7: MATHEMATICAL SANS-SERIF BOLD CAPITAL T*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d5e8: MATHEMATICAL SANS-SERIF BOLD CAPITAL U*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d5e9: MATHEMATICAL SANS-SERIF BOLD CAPITAL V*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d5ea: MATHEMATICAL SANS-SERIF BOLD CAPITAL W*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d5eb: MATHEMATICAL SANS-SERIF BOLD CAPITAL X*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d5ec: MATHEMATICAL SANS-SERIF BOLD CAPITAL Y*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d5ed: MATHEMATICAL SANS-SERIF BOLD CAPITAL Z*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d5ee: MATHEMATICAL SANS-SERIF BOLD SMALL A*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d5ef: MATHEMATICAL SANS-SERIF BOLD SMALL B*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d5f0: MATHEMATICAL SANS-SERIF BOLD SMALL C*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d5f1: MATHEMATICAL SANS-SERIF BOLD SMALL D*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d5f2: MATHEMATICAL SANS-SERIF BOLD SMALL E*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d5f3: MATHEMATICAL SANS-SERIF BOLD SMALL F*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d5f4: MATHEMATICAL SANS-SERIF BOLD SMALL G*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d5f5: MATHEMATICAL SANS-SERIF BOLD SMALL H*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d5f6: MATHEMATICAL SANS-SERIF BOLD SMALL I*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d5f7: MATHEMATICAL SANS-SERIF BOLD SMALL J*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d5f8: MATHEMATICAL SANS-SERIF BOLD SMALL K*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d5f9: MATHEMATICAL SANS-SERIF BOLD SMALL L*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d5fa: MATHEMATICAL SANS-SERIF BOLD SMALL M*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d5fb: MATHEMATICAL SANS-SERIF BOLD SMALL N*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d5fc: MATHEMATICAL SANS-SERIF BOLD SMALL O*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d5fd: MATHEMATICAL SANS-SERIF BOLD SMALL P*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d5fe: MATHEMATICAL SANS-SERIF BOLD SMALL Q*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d5ff: MATHEMATICAL SANS-SERIF BOLD SMALL R*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d600: MATHEMATICAL SANS-SERIF BOLD SMALL S*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d601: MATHEMATICAL SANS-SERIF BOLD SMALL T*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d602: MATHEMATICAL SANS-SERIF BOLD SMALL U*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d603: MATHEMATICAL SANS-SERIF BOLD SMALL V*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d604: MATHEMATICAL SANS-SERIF BOLD SMALL W*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d605: MATHEMATICAL SANS-SERIF BOLD SMALL X*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d606: MATHEMATICAL SANS-SERIF BOLD SMALL Y*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d607: MATHEMATICAL SANS-SERIF BOLD SMALL Z*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d608: MATHEMATICAL SANS-SERIF ITALIC CAPITAL A*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d609: MATHEMATICAL SANS-SERIF ITALIC CAPITAL B*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d60a: MATHEMATICAL SANS-SERIF ITALIC CAPITAL C*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d60b: MATHEMATICAL SANS-SERIF ITALIC CAPITAL D*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d60c: MATHEMATICAL SANS-SERIF ITALIC CAPITAL E*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d60d: MATHEMATICAL SANS-SERIF ITALIC CAPITAL F*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d60e: MATHEMATICAL SANS-SERIF ITALIC CAPITAL G*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d60f: MATHEMATICAL SANS-SERIF ITALIC CAPITAL H*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d610: MATHEMATICAL SANS-SERIF ITALIC CAPITAL I*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d611: MATHEMATICAL SANS-SERIF ITALIC CAPITAL J*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d612: MATHEMATICAL SANS-SERIF ITALIC CAPITAL K*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d613: MATHEMATICAL SANS-SERIF ITALIC CAPITAL L*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d614: MATHEMATICAL SANS-SERIF ITALIC CAPITAL M*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d615: MATHEMATICAL SANS-SERIF ITALIC CAPITAL N*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d616: MATHEMATICAL SANS-SERIF ITALIC CAPITAL O*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d617: MATHEMATICAL SANS-SERIF ITALIC CAPITAL P*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d618: MATHEMATICAL SANS-SERIF ITALIC CAPITAL Q*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d619: MATHEMATICAL SANS-SERIF ITALIC CAPITAL R*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d61a: MATHEMATICAL SANS-SERIF ITALIC CAPITAL S*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d61b: MATHEMATICAL SANS-SERIF ITALIC CAPITAL T*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d61c: MATHEMATICAL SANS-SERIF ITALIC CAPITAL U*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d61d: MATHEMATICAL SANS-SERIF ITALIC CAPITAL V*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d61e: MATHEMATICAL SANS-SERIF ITALIC CAPITAL W*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d61f: MATHEMATICAL SANS-SERIF ITALIC CAPITAL X*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d620: MATHEMATICAL SANS-SERIF ITALIC CAPITAL Y*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d621: MATHEMATICAL SANS-SERIF ITALIC CAPITAL Z*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d622: MATHEMATICAL SANS-SERIF ITALIC SMALL A*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d623: MATHEMATICAL SANS-SERIF ITALIC SMALL B*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d624: MATHEMATICAL SANS-SERIF ITALIC SMALL C*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d625: MATHEMATICAL SANS-SERIF ITALIC SMALL D*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d626: MATHEMATICAL SANS-SERIF ITALIC SMALL E*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d627: MATHEMATICAL SANS-SERIF ITALIC SMALL F*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d628: MATHEMATICAL SANS-SERIF ITALIC SMALL G*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d629: MATHEMATICAL SANS-SERIF ITALIC SMALL H*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d62a: MATHEMATICAL SANS-SERIF ITALIC SMALL I*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d62b: MATHEMATICAL SANS-SERIF ITALIC SMALL J*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d62c: MATHEMATICAL SANS-SERIF ITALIC SMALL K*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d62d: MATHEMATICAL SANS-SERIF ITALIC SMALL L*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d62e: MATHEMATICAL SANS-SERIF ITALIC SMALL M*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d62f: MATHEMATICAL SANS-SERIF ITALIC SMALL N*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d630: MATHEMATICAL SANS-SERIF ITALIC SMALL O*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d631: MATHEMATICAL SANS-SERIF ITALIC SMALL P*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d632: MATHEMATICAL SANS-SERIF ITALIC SMALL Q*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d633: MATHEMATICAL SANS-SERIF ITALIC SMALL R*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d634: MATHEMATICAL SANS-SERIF ITALIC SMALL S*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d635: MATHEMATICAL SANS-SERIF ITALIC SMALL T*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d636: MATHEMATICAL SANS-SERIF ITALIC SMALL U*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d637: MATHEMATICAL SANS-SERIF ITALIC SMALL V*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d638: MATHEMATICAL SANS-SERIF ITALIC SMALL W*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d639: MATHEMATICAL SANS-SERIF ITALIC SMALL X*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d63a: MATHEMATICAL SANS-SERIF ITALIC SMALL Y*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d63b: MATHEMATICAL SANS-SERIF ITALIC SMALL Z*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d63c: MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL A*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d63d: MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL B*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d63e: MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL C*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d63f: MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL D*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d640: MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL E*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d641: MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL F*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d642: MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL G*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d643: MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL H*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d644: MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL I*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d645: MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL J*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d646: MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL K*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d647: MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL L*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d648: MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL M*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d649: MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL N*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d64a: MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL O*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d64b: MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL P*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d64c: MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL Q*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d64d: MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL R*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d64e: MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL S*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d64f: MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL T*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d650: MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL U*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d651: MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL V*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d652: MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL W*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d653: MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL X*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d654: MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL Y*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d655: MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL Z*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d656: MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL A*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d657: MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL B*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d658: MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL C*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d659: MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL D*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d65a: MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL E*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d65b: MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL F*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d65c: MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL G*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d65d: MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL H*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d65e: MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL I*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d65f: MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL J*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d660: MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL K*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d661: MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL L*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d662: MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL M*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d663: MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL N*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d664: MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL O*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d665: MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL P*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d666: MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL Q*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d667: MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL R*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d668: MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL S*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d669: MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL T*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d66a: MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL U*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d66b: MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL V*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d66c: MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL W*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d66d: MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL X*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d66e: MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL Y*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d66f: MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL Z*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d670: MATHEMATICAL MONOSPACE CAPITAL A*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d671: MATHEMATICAL MONOSPACE CAPITAL B*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d672: MATHEMATICAL MONOSPACE CAPITAL C*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d673: MATHEMATICAL MONOSPACE CAPITAL D*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d674: MATHEMATICAL MONOSPACE CAPITAL E*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d675: MATHEMATICAL MONOSPACE CAPITAL F*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d676: MATHEMATICAL MONOSPACE CAPITAL G*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d677: MATHEMATICAL MONOSPACE CAPITAL H*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d678: MATHEMATICAL MONOSPACE CAPITAL I*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d679: MATHEMATICAL MONOSPACE CAPITAL J*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d67a: MATHEMATICAL MONOSPACE CAPITAL K*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d67b: MATHEMATICAL MONOSPACE CAPITAL L*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d67c: MATHEMATICAL MONOSPACE CAPITAL M*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d67d: MATHEMATICAL MONOSPACE CAPITAL N*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d67e: MATHEMATICAL MONOSPACE CAPITAL O*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d67f: MATHEMATICAL MONOSPACE CAPITAL P*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d680: MATHEMATICAL MONOSPACE CAPITAL Q*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d681: MATHEMATICAL MONOSPACE CAPITAL R*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d682: MATHEMATICAL MONOSPACE CAPITAL S*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d683: MATHEMATICAL MONOSPACE CAPITAL T*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d684: MATHEMATICAL MONOSPACE CAPITAL U*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d685: MATHEMATICAL MONOSPACE CAPITAL V*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d686: MATHEMATICAL MONOSPACE CAPITAL W*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d687: MATHEMATICAL MONOSPACE CAPITAL X*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d688: MATHEMATICAL MONOSPACE CAPITAL Y*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d689: MATHEMATICAL MONOSPACE CAPITAL Z*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d68a: MATHEMATICAL MONOSPACE SMALL A*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d68b: MATHEMATICAL MONOSPACE SMALL B*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d68c: MATHEMATICAL MONOSPACE SMALL C*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d68d: MATHEMATICAL MONOSPACE SMALL D*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d68e: MATHEMATICAL MONOSPACE SMALL E*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d68f: MATHEMATICAL MONOSPACE SMALL F*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d690: MATHEMATICAL MONOSPACE SMALL G*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d691: MATHEMATICAL MONOSPACE SMALL H*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d692: MATHEMATICAL MONOSPACE SMALL I*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d693: MATHEMATICAL MONOSPACE SMALL J*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d694: MATHEMATICAL MONOSPACE SMALL K*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d695: MATHEMATICAL MONOSPACE SMALL L*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d696: MATHEMATICAL MONOSPACE SMALL M*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d697: MATHEMATICAL MONOSPACE SMALL N*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d698: MATHEMATICAL MONOSPACE SMALL O*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d699: MATHEMATICAL MONOSPACE SMALL P*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d69a: MATHEMATICAL MONOSPACE SMALL Q*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d69b: MATHEMATICAL MONOSPACE SMALL R*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d69c: MATHEMATICAL MONOSPACE SMALL S*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d69d: MATHEMATICAL MONOSPACE SMALL T*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d69e: MATHEMATICAL MONOSPACE SMALL U*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d69f: MATHEMATICAL MONOSPACE SMALL V*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d6a0: MATHEMATICAL MONOSPACE SMALL W*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d6a1: MATHEMATICAL MONOSPACE SMALL X*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d6a2: MATHEMATICAL MONOSPACE SMALL Y*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d6a3: MATHEMATICAL MONOSPACE SMALL Z*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d6a4: MATHEMATICAL ITALIC SMALL DOTLESS I*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d6a5: MATHEMATICAL ITALIC SMALL DOTLESS J*/ + 0, /* U+01d6a6: */ + 0, /* U+01d6a7: */ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d6a8: MATHEMATICAL BOLD CAPITAL ALPHA*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d6a9: MATHEMATICAL BOLD CAPITAL BETA*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d6aa: MATHEMATICAL BOLD CAPITAL GAMMA*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d6ab: MATHEMATICAL BOLD CAPITAL DELTA*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d6ac: MATHEMATICAL BOLD CAPITAL EPSILON*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d6ad: MATHEMATICAL BOLD CAPITAL ZETA*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d6ae: MATHEMATICAL BOLD CAPITAL ETA*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d6af: MATHEMATICAL BOLD CAPITAL THETA*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d6b0: MATHEMATICAL BOLD CAPITAL IOTA*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d6b1: MATHEMATICAL BOLD CAPITAL KAPPA*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d6b2: MATHEMATICAL BOLD CAPITAL LAMDA*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d6b3: MATHEMATICAL BOLD CAPITAL MU*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d6b4: MATHEMATICAL BOLD CAPITAL NU*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d6b5: MATHEMATICAL BOLD CAPITAL XI*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d6b6: MATHEMATICAL BOLD CAPITAL OMICRON*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d6b7: MATHEMATICAL BOLD CAPITAL PI*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d6b8: MATHEMATICAL BOLD CAPITAL RHO*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d6b9: MATHEMATICAL BOLD CAPITAL THETA SYMBOL*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d6ba: MATHEMATICAL BOLD CAPITAL SIGMA*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d6bb: MATHEMATICAL BOLD CAPITAL TAU*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d6bc: MATHEMATICAL BOLD CAPITAL UPSILON*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d6bd: MATHEMATICAL BOLD CAPITAL PHI*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d6be: MATHEMATICAL BOLD CAPITAL CHI*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d6bf: MATHEMATICAL BOLD CAPITAL PSI*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d6c0: MATHEMATICAL BOLD CAPITAL OMEGA*/ + 0, /* U+01d6c1: MATHEMATICAL BOLD NABLA*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d6c2: MATHEMATICAL BOLD SMALL ALPHA*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d6c3: MATHEMATICAL BOLD SMALL BETA*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d6c4: MATHEMATICAL BOLD SMALL GAMMA*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d6c5: MATHEMATICAL BOLD SMALL DELTA*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d6c6: MATHEMATICAL BOLD SMALL EPSILON*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d6c7: MATHEMATICAL BOLD SMALL ZETA*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d6c8: MATHEMATICAL BOLD SMALL ETA*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d6c9: MATHEMATICAL BOLD SMALL THETA*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d6ca: MATHEMATICAL BOLD SMALL IOTA*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d6cb: MATHEMATICAL BOLD SMALL KAPPA*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d6cc: MATHEMATICAL BOLD SMALL LAMDA*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d6cd: MATHEMATICAL BOLD SMALL MU*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d6ce: MATHEMATICAL BOLD SMALL NU*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d6cf: MATHEMATICAL BOLD SMALL XI*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d6d0: MATHEMATICAL BOLD SMALL OMICRON*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d6d1: MATHEMATICAL BOLD SMALL PI*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d6d2: MATHEMATICAL BOLD SMALL RHO*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d6d3: MATHEMATICAL BOLD SMALL FINAL SIGMA*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d6d4: MATHEMATICAL BOLD SMALL SIGMA*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d6d5: MATHEMATICAL BOLD SMALL TAU*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d6d6: MATHEMATICAL BOLD SMALL UPSILON*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d6d7: MATHEMATICAL BOLD SMALL PHI*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d6d8: MATHEMATICAL BOLD SMALL CHI*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d6d9: MATHEMATICAL BOLD SMALL PSI*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d6da: MATHEMATICAL BOLD SMALL OMEGA*/ + 0, /* U+01d6db: MATHEMATICAL BOLD PARTIAL DIFFERENTIAL*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d6dc: MATHEMATICAL BOLD EPSILON SYMBOL*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d6dd: MATHEMATICAL BOLD THETA SYMBOL*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d6de: MATHEMATICAL BOLD KAPPA SYMBOL*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d6df: MATHEMATICAL BOLD PHI SYMBOL*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d6e0: MATHEMATICAL BOLD RHO SYMBOL*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d6e1: MATHEMATICAL BOLD PI SYMBOL*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d6e2: MATHEMATICAL ITALIC CAPITAL ALPHA*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d6e3: MATHEMATICAL ITALIC CAPITAL BETA*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d6e4: MATHEMATICAL ITALIC CAPITAL GAMMA*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d6e5: MATHEMATICAL ITALIC CAPITAL DELTA*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d6e6: MATHEMATICAL ITALIC CAPITAL EPSILON*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d6e7: MATHEMATICAL ITALIC CAPITAL ZETA*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d6e8: MATHEMATICAL ITALIC CAPITAL ETA*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d6e9: MATHEMATICAL ITALIC CAPITAL THETA*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d6ea: MATHEMATICAL ITALIC CAPITAL IOTA*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d6eb: MATHEMATICAL ITALIC CAPITAL KAPPA*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d6ec: MATHEMATICAL ITALIC CAPITAL LAMDA*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d6ed: MATHEMATICAL ITALIC CAPITAL MU*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d6ee: MATHEMATICAL ITALIC CAPITAL NU*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d6ef: MATHEMATICAL ITALIC CAPITAL XI*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d6f0: MATHEMATICAL ITALIC CAPITAL OMICRON*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d6f1: MATHEMATICAL ITALIC CAPITAL PI*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d6f2: MATHEMATICAL ITALIC CAPITAL RHO*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d6f3: MATHEMATICAL ITALIC CAPITAL THETA SYMBOL*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d6f4: MATHEMATICAL ITALIC CAPITAL SIGMA*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d6f5: MATHEMATICAL ITALIC CAPITAL TAU*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d6f6: MATHEMATICAL ITALIC CAPITAL UPSILON*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d6f7: MATHEMATICAL ITALIC CAPITAL PHI*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d6f8: MATHEMATICAL ITALIC CAPITAL CHI*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d6f9: MATHEMATICAL ITALIC CAPITAL PSI*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d6fa: MATHEMATICAL ITALIC CAPITAL OMEGA*/ + 0, /* U+01d6fb: MATHEMATICAL ITALIC NABLA*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d6fc: MATHEMATICAL ITALIC SMALL ALPHA*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d6fd: MATHEMATICAL ITALIC SMALL BETA*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d6fe: MATHEMATICAL ITALIC SMALL GAMMA*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d6ff: MATHEMATICAL ITALIC SMALL DELTA*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d700: MATHEMATICAL ITALIC SMALL EPSILON*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d701: MATHEMATICAL ITALIC SMALL ZETA*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d702: MATHEMATICAL ITALIC SMALL ETA*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d703: MATHEMATICAL ITALIC SMALL THETA*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d704: MATHEMATICAL ITALIC SMALL IOTA*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d705: MATHEMATICAL ITALIC SMALL KAPPA*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d706: MATHEMATICAL ITALIC SMALL LAMDA*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d707: MATHEMATICAL ITALIC SMALL MU*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d708: MATHEMATICAL ITALIC SMALL NU*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d709: MATHEMATICAL ITALIC SMALL XI*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d70a: MATHEMATICAL ITALIC SMALL OMICRON*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d70b: MATHEMATICAL ITALIC SMALL PI*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d70c: MATHEMATICAL ITALIC SMALL RHO*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d70d: MATHEMATICAL ITALIC SMALL FINAL SIGMA*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d70e: MATHEMATICAL ITALIC SMALL SIGMA*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d70f: MATHEMATICAL ITALIC SMALL TAU*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d710: MATHEMATICAL ITALIC SMALL UPSILON*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d711: MATHEMATICAL ITALIC SMALL PHI*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d712: MATHEMATICAL ITALIC SMALL CHI*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d713: MATHEMATICAL ITALIC SMALL PSI*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d714: MATHEMATICAL ITALIC SMALL OMEGA*/ + 0, /* U+01d715: MATHEMATICAL ITALIC PARTIAL DIFFERENTIAL*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d716: MATHEMATICAL ITALIC EPSILON SYMBOL*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d717: MATHEMATICAL ITALIC THETA SYMBOL*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d718: MATHEMATICAL ITALIC KAPPA SYMBOL*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d719: MATHEMATICAL ITALIC PHI SYMBOL*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d71a: MATHEMATICAL ITALIC RHO SYMBOL*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d71b: MATHEMATICAL ITALIC PI SYMBOL*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d71c: MATHEMATICAL BOLD ITALIC CAPITAL ALPHA*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d71d: MATHEMATICAL BOLD ITALIC CAPITAL BETA*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d71e: MATHEMATICAL BOLD ITALIC CAPITAL GAMMA*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d71f: MATHEMATICAL BOLD ITALIC CAPITAL DELTA*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d720: MATHEMATICAL BOLD ITALIC CAPITAL EPSILON*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d721: MATHEMATICAL BOLD ITALIC CAPITAL ZETA*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d722: MATHEMATICAL BOLD ITALIC CAPITAL ETA*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d723: MATHEMATICAL BOLD ITALIC CAPITAL THETA*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d724: MATHEMATICAL BOLD ITALIC CAPITAL IOTA*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d725: MATHEMATICAL BOLD ITALIC CAPITAL KAPPA*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d726: MATHEMATICAL BOLD ITALIC CAPITAL LAMDA*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d727: MATHEMATICAL BOLD ITALIC CAPITAL MU*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d728: MATHEMATICAL BOLD ITALIC CAPITAL NU*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d729: MATHEMATICAL BOLD ITALIC CAPITAL XI*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d72a: MATHEMATICAL BOLD ITALIC CAPITAL OMICRON*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d72b: MATHEMATICAL BOLD ITALIC CAPITAL PI*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d72c: MATHEMATICAL BOLD ITALIC CAPITAL RHO*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d72d: MATHEMATICAL BOLD ITALIC CAPITAL THETA SYMBOL*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d72e: MATHEMATICAL BOLD ITALIC CAPITAL SIGMA*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d72f: MATHEMATICAL BOLD ITALIC CAPITAL TAU*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d730: MATHEMATICAL BOLD ITALIC CAPITAL UPSILON*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d731: MATHEMATICAL BOLD ITALIC CAPITAL PHI*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d732: MATHEMATICAL BOLD ITALIC CAPITAL CHI*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d733: MATHEMATICAL BOLD ITALIC CAPITAL PSI*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d734: MATHEMATICAL BOLD ITALIC CAPITAL OMEGA*/ + 0, /* U+01d735: MATHEMATICAL BOLD ITALIC NABLA*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d736: MATHEMATICAL BOLD ITALIC SMALL ALPHA*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d737: MATHEMATICAL BOLD ITALIC SMALL BETA*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d738: MATHEMATICAL BOLD ITALIC SMALL GAMMA*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d739: MATHEMATICAL BOLD ITALIC SMALL DELTA*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d73a: MATHEMATICAL BOLD ITALIC SMALL EPSILON*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d73b: MATHEMATICAL BOLD ITALIC SMALL ZETA*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d73c: MATHEMATICAL BOLD ITALIC SMALL ETA*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d73d: MATHEMATICAL BOLD ITALIC SMALL THETA*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d73e: MATHEMATICAL BOLD ITALIC SMALL IOTA*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d73f: MATHEMATICAL BOLD ITALIC SMALL KAPPA*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d740: MATHEMATICAL BOLD ITALIC SMALL LAMDA*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d741: MATHEMATICAL BOLD ITALIC SMALL MU*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d742: MATHEMATICAL BOLD ITALIC SMALL NU*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d743: MATHEMATICAL BOLD ITALIC SMALL XI*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d744: MATHEMATICAL BOLD ITALIC SMALL OMICRON*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d745: MATHEMATICAL BOLD ITALIC SMALL PI*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d746: MATHEMATICAL BOLD ITALIC SMALL RHO*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d747: MATHEMATICAL BOLD ITALIC SMALL FINAL SIGMA*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d748: MATHEMATICAL BOLD ITALIC SMALL SIGMA*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d749: MATHEMATICAL BOLD ITALIC SMALL TAU*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d74a: MATHEMATICAL BOLD ITALIC SMALL UPSILON*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d74b: MATHEMATICAL BOLD ITALIC SMALL PHI*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d74c: MATHEMATICAL BOLD ITALIC SMALL CHI*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d74d: MATHEMATICAL BOLD ITALIC SMALL PSI*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d74e: MATHEMATICAL BOLD ITALIC SMALL OMEGA*/ + 0, /* U+01d74f: MATHEMATICAL BOLD ITALIC PARTIAL DIFFERENTIAL*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d750: MATHEMATICAL BOLD ITALIC EPSILON SYMBOL*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d751: MATHEMATICAL BOLD ITALIC THETA SYMBOL*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d752: MATHEMATICAL BOLD ITALIC KAPPA SYMBOL*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d753: MATHEMATICAL BOLD ITALIC PHI SYMBOL*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d754: MATHEMATICAL BOLD ITALIC RHO SYMBOL*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d755: MATHEMATICAL BOLD ITALIC PI SYMBOL*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d756: MATHEMATICAL SANS-SERIF BOLD CAPITAL ALPHA*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d757: MATHEMATICAL SANS-SERIF BOLD CAPITAL BETA*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d758: MATHEMATICAL SANS-SERIF BOLD CAPITAL GAMMA*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d759: MATHEMATICAL SANS-SERIF BOLD CAPITAL DELTA*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d75a: MATHEMATICAL SANS-SERIF BOLD CAPITAL EPSILON*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d75b: MATHEMATICAL SANS-SERIF BOLD CAPITAL ZETA*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d75c: MATHEMATICAL SANS-SERIF BOLD CAPITAL ETA*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d75d: MATHEMATICAL SANS-SERIF BOLD CAPITAL THETA*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d75e: MATHEMATICAL SANS-SERIF BOLD CAPITAL IOTA*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d75f: MATHEMATICAL SANS-SERIF BOLD CAPITAL KAPPA*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d760: MATHEMATICAL SANS-SERIF BOLD CAPITAL LAMDA*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d761: MATHEMATICAL SANS-SERIF BOLD CAPITAL MU*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d762: MATHEMATICAL SANS-SERIF BOLD CAPITAL NU*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d763: MATHEMATICAL SANS-SERIF BOLD CAPITAL XI*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d764: MATHEMATICAL SANS-SERIF BOLD CAPITAL OMICRON*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d765: MATHEMATICAL SANS-SERIF BOLD CAPITAL PI*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d766: MATHEMATICAL SANS-SERIF BOLD CAPITAL RHO*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d767: MATHEMATICAL SANS-SERIF BOLD CAPITAL THETA SYMBOL*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d768: MATHEMATICAL SANS-SERIF BOLD CAPITAL SIGMA*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d769: MATHEMATICAL SANS-SERIF BOLD CAPITAL TAU*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d76a: MATHEMATICAL SANS-SERIF BOLD CAPITAL UPSILON*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d76b: MATHEMATICAL SANS-SERIF BOLD CAPITAL PHI*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d76c: MATHEMATICAL SANS-SERIF BOLD CAPITAL CHI*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d76d: MATHEMATICAL SANS-SERIF BOLD CAPITAL PSI*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d76e: MATHEMATICAL SANS-SERIF BOLD CAPITAL OMEGA*/ + 0, /* U+01d76f: MATHEMATICAL SANS-SERIF BOLD NABLA*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d770: MATHEMATICAL SANS-SERIF BOLD SMALL ALPHA*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d771: MATHEMATICAL SANS-SERIF BOLD SMALL BETA*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d772: MATHEMATICAL SANS-SERIF BOLD SMALL GAMMA*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d773: MATHEMATICAL SANS-SERIF BOLD SMALL DELTA*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d774: MATHEMATICAL SANS-SERIF BOLD SMALL EPSILON*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d775: MATHEMATICAL SANS-SERIF BOLD SMALL ZETA*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d776: MATHEMATICAL SANS-SERIF BOLD SMALL ETA*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d777: MATHEMATICAL SANS-SERIF BOLD SMALL THETA*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d778: MATHEMATICAL SANS-SERIF BOLD SMALL IOTA*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d779: MATHEMATICAL SANS-SERIF BOLD SMALL KAPPA*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d77a: MATHEMATICAL SANS-SERIF BOLD SMALL LAMDA*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d77b: MATHEMATICAL SANS-SERIF BOLD SMALL MU*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d77c: MATHEMATICAL SANS-SERIF BOLD SMALL NU*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d77d: MATHEMATICAL SANS-SERIF BOLD SMALL XI*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d77e: MATHEMATICAL SANS-SERIF BOLD SMALL OMICRON*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d77f: MATHEMATICAL SANS-SERIF BOLD SMALL PI*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d780: MATHEMATICAL SANS-SERIF BOLD SMALL RHO*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d781: MATHEMATICAL SANS-SERIF BOLD SMALL FINAL SIGMA*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d782: MATHEMATICAL SANS-SERIF BOLD SMALL SIGMA*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d783: MATHEMATICAL SANS-SERIF BOLD SMALL TAU*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d784: MATHEMATICAL SANS-SERIF BOLD SMALL UPSILON*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d785: MATHEMATICAL SANS-SERIF BOLD SMALL PHI*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d786: MATHEMATICAL SANS-SERIF BOLD SMALL CHI*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d787: MATHEMATICAL SANS-SERIF BOLD SMALL PSI*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d788: MATHEMATICAL SANS-SERIF BOLD SMALL OMEGA*/ + 0, /* U+01d789: MATHEMATICAL SANS-SERIF BOLD PARTIAL DIFFERENTIAL*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d78a: MATHEMATICAL SANS-SERIF BOLD EPSILON SYMBOL*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d78b: MATHEMATICAL SANS-SERIF BOLD THETA SYMBOL*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d78c: MATHEMATICAL SANS-SERIF BOLD KAPPA SYMBOL*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d78d: MATHEMATICAL SANS-SERIF BOLD PHI SYMBOL*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d78e: MATHEMATICAL SANS-SERIF BOLD RHO SYMBOL*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d78f: MATHEMATICAL SANS-SERIF BOLD PI SYMBOL*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d790: MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL ALPHA*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d791: MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL BETA*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d792: MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL GAMMA*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d793: MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL DELTA*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d794: MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL EPSILON*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d795: MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL ZETA*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d796: MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL ETA*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d797: MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL THETA*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d798: MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL IOTA*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d799: MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL KAPPA*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d79a: MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL LAMDA*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d79b: MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL MU*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d79c: MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL NU*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d79d: MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL XI*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d79e: MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL OMICRON*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d79f: MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL PI*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d7a0: MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL RHO*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d7a1: MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL THETA SYMBOL*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d7a2: MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL SIGMA*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d7a3: MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL TAU*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d7a4: MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL UPSILON*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d7a5: MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL PHI*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d7a6: MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL CHI*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d7a7: MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL PSI*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d7a8: MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL OMEGA*/ + 0, /* U+01d7a9: MATHEMATICAL SANS-SERIF BOLD ITALIC NABLA*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d7aa: MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL ALPHA*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d7ab: MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL BETA*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d7ac: MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL GAMMA*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d7ad: MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL DELTA*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d7ae: MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL EPSILON*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d7af: MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL ZETA*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d7b0: MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL ETA*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d7b1: MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL THETA*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d7b2: MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL IOTA*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d7b3: MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL KAPPA*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d7b4: MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL LAMDA*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d7b5: MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL MU*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d7b6: MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL NU*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d7b7: MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL XI*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d7b8: MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL OMICRON*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d7b9: MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL PI*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d7ba: MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL RHO*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d7bb: MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL FINAL SIGMA*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d7bc: MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL SIGMA*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d7bd: MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL TAU*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d7be: MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL UPSILON*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d7bf: MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL PHI*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d7c0: MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL CHI*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d7c1: MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL PSI*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d7c2: MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL OMEGA*/ + 0, /* U+01d7c3: MATHEMATICAL SANS-SERIF BOLD ITALIC PARTIAL DIFFERENTIAL*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d7c4: MATHEMATICAL SANS-SERIF BOLD ITALIC EPSILON SYMBOL*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d7c5: MATHEMATICAL SANS-SERIF BOLD ITALIC THETA SYMBOL*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d7c6: MATHEMATICAL SANS-SERIF BOLD ITALIC KAPPA SYMBOL*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d7c7: MATHEMATICAL SANS-SERIF BOLD ITALIC PHI SYMBOL*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d7c8: MATHEMATICAL SANS-SERIF BOLD ITALIC RHO SYMBOL*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d7c9: MATHEMATICAL SANS-SERIF BOLD ITALIC PI SYMBOL*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d7ca: MATHEMATICAL BOLD CAPITAL DIGAMMA*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d7cb: MATHEMATICAL BOLD SMALL DIGAMMA*/ + 0, /* U+01d7cc: */ + 0, /* U+01d7cd: */ + RTUNI_DDIGIT, /* U+01d7ce: MATHEMATICAL BOLD DIGIT ZERO*/ + RTUNI_DDIGIT, /* U+01d7cf: MATHEMATICAL BOLD DIGIT ONE*/ + RTUNI_DDIGIT, /* U+01d7d0: MATHEMATICAL BOLD DIGIT TWO*/ + RTUNI_DDIGIT, /* U+01d7d1: MATHEMATICAL BOLD DIGIT THREE*/ + RTUNI_DDIGIT, /* U+01d7d2: MATHEMATICAL BOLD DIGIT FOUR*/ + RTUNI_DDIGIT, /* U+01d7d3: MATHEMATICAL BOLD DIGIT FIVE*/ + RTUNI_DDIGIT, /* U+01d7d4: MATHEMATICAL BOLD DIGIT SIX*/ + RTUNI_DDIGIT, /* U+01d7d5: MATHEMATICAL BOLD DIGIT SEVEN*/ + RTUNI_DDIGIT, /* U+01d7d6: MATHEMATICAL BOLD DIGIT EIGHT*/ + RTUNI_DDIGIT, /* U+01d7d7: MATHEMATICAL BOLD DIGIT NINE*/ + RTUNI_DDIGIT, /* U+01d7d8: MATHEMATICAL DOUBLE-STRUCK DIGIT ZERO*/ + RTUNI_DDIGIT, /* U+01d7d9: MATHEMATICAL DOUBLE-STRUCK DIGIT ONE*/ + RTUNI_DDIGIT, /* U+01d7da: MATHEMATICAL DOUBLE-STRUCK DIGIT TWO*/ + RTUNI_DDIGIT, /* U+01d7db: MATHEMATICAL DOUBLE-STRUCK DIGIT THREE*/ + RTUNI_DDIGIT, /* U+01d7dc: MATHEMATICAL DOUBLE-STRUCK DIGIT FOUR*/ + RTUNI_DDIGIT, /* U+01d7dd: MATHEMATICAL DOUBLE-STRUCK DIGIT FIVE*/ + RTUNI_DDIGIT, /* U+01d7de: MATHEMATICAL DOUBLE-STRUCK DIGIT SIX*/ + RTUNI_DDIGIT, /* U+01d7df: MATHEMATICAL DOUBLE-STRUCK DIGIT SEVEN*/ + RTUNI_DDIGIT, /* U+01d7e0: MATHEMATICAL DOUBLE-STRUCK DIGIT EIGHT*/ + RTUNI_DDIGIT, /* U+01d7e1: MATHEMATICAL DOUBLE-STRUCK DIGIT NINE*/ + RTUNI_DDIGIT, /* U+01d7e2: MATHEMATICAL SANS-SERIF DIGIT ZERO*/ + RTUNI_DDIGIT, /* U+01d7e3: MATHEMATICAL SANS-SERIF DIGIT ONE*/ + RTUNI_DDIGIT, /* U+01d7e4: MATHEMATICAL SANS-SERIF DIGIT TWO*/ + RTUNI_DDIGIT, /* U+01d7e5: MATHEMATICAL SANS-SERIF DIGIT THREE*/ + RTUNI_DDIGIT, /* U+01d7e6: MATHEMATICAL SANS-SERIF DIGIT FOUR*/ + RTUNI_DDIGIT, /* U+01d7e7: MATHEMATICAL SANS-SERIF DIGIT FIVE*/ + RTUNI_DDIGIT, /* U+01d7e8: MATHEMATICAL SANS-SERIF DIGIT SIX*/ + RTUNI_DDIGIT, /* U+01d7e9: MATHEMATICAL SANS-SERIF DIGIT SEVEN*/ + RTUNI_DDIGIT, /* U+01d7ea: MATHEMATICAL SANS-SERIF DIGIT EIGHT*/ + RTUNI_DDIGIT, /* U+01d7eb: MATHEMATICAL SANS-SERIF DIGIT NINE*/ + RTUNI_DDIGIT, /* U+01d7ec: MATHEMATICAL SANS-SERIF BOLD DIGIT ZERO*/ + RTUNI_DDIGIT, /* U+01d7ed: MATHEMATICAL SANS-SERIF BOLD DIGIT ONE*/ + RTUNI_DDIGIT, /* U+01d7ee: MATHEMATICAL SANS-SERIF BOLD DIGIT TWO*/ + RTUNI_DDIGIT, /* U+01d7ef: MATHEMATICAL SANS-SERIF BOLD DIGIT THREE*/ + RTUNI_DDIGIT, /* U+01d7f0: MATHEMATICAL SANS-SERIF BOLD DIGIT FOUR*/ + RTUNI_DDIGIT, /* U+01d7f1: MATHEMATICAL SANS-SERIF BOLD DIGIT FIVE*/ + RTUNI_DDIGIT, /* U+01d7f2: MATHEMATICAL SANS-SERIF BOLD DIGIT SIX*/ + RTUNI_DDIGIT, /* U+01d7f3: MATHEMATICAL SANS-SERIF BOLD DIGIT SEVEN*/ + RTUNI_DDIGIT, /* U+01d7f4: MATHEMATICAL SANS-SERIF BOLD DIGIT EIGHT*/ + RTUNI_DDIGIT, /* U+01d7f5: MATHEMATICAL SANS-SERIF BOLD DIGIT NINE*/ + RTUNI_DDIGIT, /* U+01d7f6: MATHEMATICAL MONOSPACE DIGIT ZERO*/ + RTUNI_DDIGIT, /* U+01d7f7: MATHEMATICAL MONOSPACE DIGIT ONE*/ + RTUNI_DDIGIT, /* U+01d7f8: MATHEMATICAL MONOSPACE DIGIT TWO*/ + RTUNI_DDIGIT, /* U+01d7f9: MATHEMATICAL MONOSPACE DIGIT THREE*/ + RTUNI_DDIGIT, /* U+01d7fa: MATHEMATICAL MONOSPACE DIGIT FOUR*/ + RTUNI_DDIGIT, /* U+01d7fb: MATHEMATICAL MONOSPACE DIGIT FIVE*/ + RTUNI_DDIGIT, /* U+01d7fc: MATHEMATICAL MONOSPACE DIGIT SIX*/ + RTUNI_DDIGIT, /* U+01d7fd: MATHEMATICAL MONOSPACE DIGIT SEVEN*/ + RTUNI_DDIGIT, /* U+01d7fe: MATHEMATICAL MONOSPACE DIGIT EIGHT*/ + RTUNI_DDIGIT, /* U+01d7ff: MATHEMATICAL MONOSPACE DIGIT NINE*/ +}; + +static const uint8_t g_afRTUniFlags0x01ee00[] = +{ + RTUNI_ALPHA, /* U+01ee00: ARABIC MATHEMATICAL ALEF*/ + RTUNI_ALPHA, /* U+01ee01: ARABIC MATHEMATICAL BEH*/ + RTUNI_ALPHA, /* U+01ee02: ARABIC MATHEMATICAL JEEM*/ + RTUNI_ALPHA, /* U+01ee03: ARABIC MATHEMATICAL DAL*/ + 0, /* U+01ee04: */ + RTUNI_ALPHA, /* U+01ee05: ARABIC MATHEMATICAL WAW*/ + RTUNI_ALPHA, /* U+01ee06: ARABIC MATHEMATICAL ZAIN*/ + RTUNI_ALPHA, /* U+01ee07: ARABIC MATHEMATICAL HAH*/ + RTUNI_ALPHA, /* U+01ee08: ARABIC MATHEMATICAL TAH*/ + RTUNI_ALPHA, /* U+01ee09: ARABIC MATHEMATICAL YEH*/ + RTUNI_ALPHA, /* U+01ee0a: ARABIC MATHEMATICAL KAF*/ + RTUNI_ALPHA, /* U+01ee0b: ARABIC MATHEMATICAL LAM*/ + RTUNI_ALPHA, /* U+01ee0c: ARABIC MATHEMATICAL MEEM*/ + RTUNI_ALPHA, /* U+01ee0d: ARABIC MATHEMATICAL NOON*/ + RTUNI_ALPHA, /* U+01ee0e: ARABIC MATHEMATICAL SEEN*/ + RTUNI_ALPHA, /* U+01ee0f: ARABIC MATHEMATICAL AIN*/ + RTUNI_ALPHA, /* U+01ee10: ARABIC MATHEMATICAL FEH*/ + RTUNI_ALPHA, /* U+01ee11: ARABIC MATHEMATICAL SAD*/ + RTUNI_ALPHA, /* U+01ee12: ARABIC MATHEMATICAL QAF*/ + RTUNI_ALPHA, /* U+01ee13: ARABIC MATHEMATICAL REH*/ + RTUNI_ALPHA, /* U+01ee14: ARABIC MATHEMATICAL SHEEN*/ + RTUNI_ALPHA, /* U+01ee15: ARABIC MATHEMATICAL TEH*/ + RTUNI_ALPHA, /* U+01ee16: ARABIC MATHEMATICAL THEH*/ + RTUNI_ALPHA, /* U+01ee17: ARABIC MATHEMATICAL KHAH*/ + RTUNI_ALPHA, /* U+01ee18: ARABIC MATHEMATICAL THAL*/ + RTUNI_ALPHA, /* U+01ee19: ARABIC MATHEMATICAL DAD*/ + RTUNI_ALPHA, /* U+01ee1a: ARABIC MATHEMATICAL ZAH*/ + RTUNI_ALPHA, /* U+01ee1b: ARABIC MATHEMATICAL GHAIN*/ + RTUNI_ALPHA, /* U+01ee1c: ARABIC MATHEMATICAL DOTLESS BEH*/ + RTUNI_ALPHA, /* U+01ee1d: ARABIC MATHEMATICAL DOTLESS NOON*/ + RTUNI_ALPHA, /* U+01ee1e: ARABIC MATHEMATICAL DOTLESS FEH*/ + RTUNI_ALPHA, /* U+01ee1f: ARABIC MATHEMATICAL DOTLESS QAF*/ + 0, /* U+01ee20: */ + RTUNI_ALPHA, /* U+01ee21: ARABIC MATHEMATICAL INITIAL BEH*/ + RTUNI_ALPHA, /* U+01ee22: ARABIC MATHEMATICAL INITIAL JEEM*/ + 0, /* U+01ee23: */ + RTUNI_ALPHA, /* U+01ee24: ARABIC MATHEMATICAL INITIAL HEH*/ + 0, /* U+01ee25: */ + 0, /* U+01ee26: */ + RTUNI_ALPHA, /* U+01ee27: ARABIC MATHEMATICAL INITIAL HAH*/ + 0, /* U+01ee28: */ + RTUNI_ALPHA, /* U+01ee29: ARABIC MATHEMATICAL INITIAL YEH*/ + RTUNI_ALPHA, /* U+01ee2a: ARABIC MATHEMATICAL INITIAL KAF*/ + RTUNI_ALPHA, /* U+01ee2b: ARABIC MATHEMATICAL INITIAL LAM*/ + RTUNI_ALPHA, /* U+01ee2c: ARABIC MATHEMATICAL INITIAL MEEM*/ + RTUNI_ALPHA, /* U+01ee2d: ARABIC MATHEMATICAL INITIAL NOON*/ + RTUNI_ALPHA, /* U+01ee2e: ARABIC MATHEMATICAL INITIAL SEEN*/ + RTUNI_ALPHA, /* U+01ee2f: ARABIC MATHEMATICAL INITIAL AIN*/ + RTUNI_ALPHA, /* U+01ee30: ARABIC MATHEMATICAL INITIAL FEH*/ + RTUNI_ALPHA, /* U+01ee31: ARABIC MATHEMATICAL INITIAL SAD*/ + RTUNI_ALPHA, /* U+01ee32: ARABIC MATHEMATICAL INITIAL QAF*/ + 0, /* U+01ee33: */ + RTUNI_ALPHA, /* U+01ee34: ARABIC MATHEMATICAL INITIAL SHEEN*/ + RTUNI_ALPHA, /* U+01ee35: ARABIC MATHEMATICAL INITIAL TEH*/ + RTUNI_ALPHA, /* U+01ee36: ARABIC MATHEMATICAL INITIAL THEH*/ + RTUNI_ALPHA, /* U+01ee37: ARABIC MATHEMATICAL INITIAL KHAH*/ + 0, /* U+01ee38: */ + RTUNI_ALPHA, /* U+01ee39: ARABIC MATHEMATICAL INITIAL DAD*/ + 0, /* U+01ee3a: */ + RTUNI_ALPHA, /* U+01ee3b: ARABIC MATHEMATICAL INITIAL GHAIN*/ + 0, /* U+01ee3c: */ + 0, /* U+01ee3d: */ + 0, /* U+01ee3e: */ + 0, /* U+01ee3f: */ + 0, /* U+01ee40: */ + 0, /* U+01ee41: */ + RTUNI_ALPHA, /* U+01ee42: ARABIC MATHEMATICAL TAILED JEEM*/ + 0, /* U+01ee43: */ + 0, /* U+01ee44: */ + 0, /* U+01ee45: */ + 0, /* U+01ee46: */ + RTUNI_ALPHA, /* U+01ee47: ARABIC MATHEMATICAL TAILED HAH*/ + 0, /* U+01ee48: */ + RTUNI_ALPHA, /* U+01ee49: ARABIC MATHEMATICAL TAILED YEH*/ + 0, /* U+01ee4a: */ + RTUNI_ALPHA, /* U+01ee4b: ARABIC MATHEMATICAL TAILED LAM*/ + 0, /* U+01ee4c: */ + RTUNI_ALPHA, /* U+01ee4d: ARABIC MATHEMATICAL TAILED NOON*/ + RTUNI_ALPHA, /* U+01ee4e: ARABIC MATHEMATICAL TAILED SEEN*/ + RTUNI_ALPHA, /* U+01ee4f: ARABIC MATHEMATICAL TAILED AIN*/ + 0, /* U+01ee50: */ + RTUNI_ALPHA, /* U+01ee51: ARABIC MATHEMATICAL TAILED SAD*/ + RTUNI_ALPHA, /* U+01ee52: ARABIC MATHEMATICAL TAILED QAF*/ + 0, /* U+01ee53: */ + RTUNI_ALPHA, /* U+01ee54: ARABIC MATHEMATICAL TAILED SHEEN*/ + 0, /* U+01ee55: */ + 0, /* U+01ee56: */ + RTUNI_ALPHA, /* U+01ee57: ARABIC MATHEMATICAL TAILED KHAH*/ + 0, /* U+01ee58: */ + RTUNI_ALPHA, /* U+01ee59: ARABIC MATHEMATICAL TAILED DAD*/ + 0, /* U+01ee5a: */ + RTUNI_ALPHA, /* U+01ee5b: ARABIC MATHEMATICAL TAILED GHAIN*/ + 0, /* U+01ee5c: */ + RTUNI_ALPHA, /* U+01ee5d: ARABIC MATHEMATICAL TAILED DOTLESS NOON*/ + 0, /* U+01ee5e: */ + RTUNI_ALPHA, /* U+01ee5f: ARABIC MATHEMATICAL TAILED DOTLESS QAF*/ + 0, /* U+01ee60: */ + RTUNI_ALPHA, /* U+01ee61: ARABIC MATHEMATICAL STRETCHED BEH*/ + RTUNI_ALPHA, /* U+01ee62: ARABIC MATHEMATICAL STRETCHED JEEM*/ + 0, /* U+01ee63: */ + RTUNI_ALPHA, /* U+01ee64: ARABIC MATHEMATICAL STRETCHED HEH*/ + 0, /* U+01ee65: */ + 0, /* U+01ee66: */ + RTUNI_ALPHA, /* U+01ee67: ARABIC MATHEMATICAL STRETCHED HAH*/ + RTUNI_ALPHA, /* U+01ee68: ARABIC MATHEMATICAL STRETCHED TAH*/ + RTUNI_ALPHA, /* U+01ee69: ARABIC MATHEMATICAL STRETCHED YEH*/ + RTUNI_ALPHA, /* U+01ee6a: ARABIC MATHEMATICAL STRETCHED KAF*/ + 0, /* U+01ee6b: */ + RTUNI_ALPHA, /* U+01ee6c: ARABIC MATHEMATICAL STRETCHED MEEM*/ + RTUNI_ALPHA, /* U+01ee6d: ARABIC MATHEMATICAL STRETCHED NOON*/ + RTUNI_ALPHA, /* U+01ee6e: ARABIC MATHEMATICAL STRETCHED SEEN*/ + RTUNI_ALPHA, /* U+01ee6f: ARABIC MATHEMATICAL STRETCHED AIN*/ + RTUNI_ALPHA, /* U+01ee70: ARABIC MATHEMATICAL STRETCHED FEH*/ + RTUNI_ALPHA, /* U+01ee71: ARABIC MATHEMATICAL STRETCHED SAD*/ + RTUNI_ALPHA, /* U+01ee72: ARABIC MATHEMATICAL STRETCHED QAF*/ + 0, /* U+01ee73: */ + RTUNI_ALPHA, /* U+01ee74: ARABIC MATHEMATICAL STRETCHED SHEEN*/ + RTUNI_ALPHA, /* U+01ee75: ARABIC MATHEMATICAL STRETCHED TEH*/ + RTUNI_ALPHA, /* U+01ee76: ARABIC MATHEMATICAL STRETCHED THEH*/ + RTUNI_ALPHA, /* U+01ee77: ARABIC MATHEMATICAL STRETCHED KHAH*/ + 0, /* U+01ee78: */ + RTUNI_ALPHA, /* U+01ee79: ARABIC MATHEMATICAL STRETCHED DAD*/ + RTUNI_ALPHA, /* U+01ee7a: ARABIC MATHEMATICAL STRETCHED ZAH*/ + RTUNI_ALPHA, /* U+01ee7b: ARABIC MATHEMATICAL STRETCHED GHAIN*/ + RTUNI_ALPHA, /* U+01ee7c: ARABIC MATHEMATICAL STRETCHED DOTLESS BEH*/ + 0, /* U+01ee7d: */ + RTUNI_ALPHA, /* U+01ee7e: ARABIC MATHEMATICAL STRETCHED DOTLESS FEH*/ + 0, /* U+01ee7f: */ + RTUNI_ALPHA, /* U+01ee80: ARABIC MATHEMATICAL LOOPED ALEF*/ + RTUNI_ALPHA, /* U+01ee81: ARABIC MATHEMATICAL LOOPED BEH*/ + RTUNI_ALPHA, /* U+01ee82: ARABIC MATHEMATICAL LOOPED JEEM*/ + RTUNI_ALPHA, /* U+01ee83: ARABIC MATHEMATICAL LOOPED DAL*/ + RTUNI_ALPHA, /* U+01ee84: ARABIC MATHEMATICAL LOOPED HEH*/ + RTUNI_ALPHA, /* U+01ee85: ARABIC MATHEMATICAL LOOPED WAW*/ + RTUNI_ALPHA, /* U+01ee86: ARABIC MATHEMATICAL LOOPED ZAIN*/ + RTUNI_ALPHA, /* U+01ee87: ARABIC MATHEMATICAL LOOPED HAH*/ + RTUNI_ALPHA, /* U+01ee88: ARABIC MATHEMATICAL LOOPED TAH*/ + RTUNI_ALPHA, /* U+01ee89: ARABIC MATHEMATICAL LOOPED YEH*/ + 0, /* U+01ee8a: */ + RTUNI_ALPHA, /* U+01ee8b: ARABIC MATHEMATICAL LOOPED LAM*/ + RTUNI_ALPHA, /* U+01ee8c: ARABIC MATHEMATICAL LOOPED MEEM*/ + RTUNI_ALPHA, /* U+01ee8d: ARABIC MATHEMATICAL LOOPED NOON*/ + RTUNI_ALPHA, /* U+01ee8e: ARABIC MATHEMATICAL LOOPED SEEN*/ + RTUNI_ALPHA, /* U+01ee8f: ARABIC MATHEMATICAL LOOPED AIN*/ + RTUNI_ALPHA, /* U+01ee90: ARABIC MATHEMATICAL LOOPED FEH*/ + RTUNI_ALPHA, /* U+01ee91: ARABIC MATHEMATICAL LOOPED SAD*/ + RTUNI_ALPHA, /* U+01ee92: ARABIC MATHEMATICAL LOOPED QAF*/ + RTUNI_ALPHA, /* U+01ee93: ARABIC MATHEMATICAL LOOPED REH*/ + RTUNI_ALPHA, /* U+01ee94: ARABIC MATHEMATICAL LOOPED SHEEN*/ + RTUNI_ALPHA, /* U+01ee95: ARABIC MATHEMATICAL LOOPED TEH*/ + RTUNI_ALPHA, /* U+01ee96: ARABIC MATHEMATICAL LOOPED THEH*/ + RTUNI_ALPHA, /* U+01ee97: ARABIC MATHEMATICAL LOOPED KHAH*/ + RTUNI_ALPHA, /* U+01ee98: ARABIC MATHEMATICAL LOOPED THAL*/ + RTUNI_ALPHA, /* U+01ee99: ARABIC MATHEMATICAL LOOPED DAD*/ + RTUNI_ALPHA, /* U+01ee9a: ARABIC MATHEMATICAL LOOPED ZAH*/ + RTUNI_ALPHA, /* U+01ee9b: ARABIC MATHEMATICAL LOOPED GHAIN*/ + 0, /* U+01ee9c: */ + 0, /* U+01ee9d: */ + 0, /* U+01ee9e: */ + 0, /* U+01ee9f: */ + 0, /* U+01eea0: */ + RTUNI_ALPHA, /* U+01eea1: ARABIC MATHEMATICAL DOUBLE-STRUCK BEH*/ + RTUNI_ALPHA, /* U+01eea2: ARABIC MATHEMATICAL DOUBLE-STRUCK JEEM*/ + RTUNI_ALPHA, /* U+01eea3: ARABIC MATHEMATICAL DOUBLE-STRUCK DAL*/ + 0, /* U+01eea4: */ + RTUNI_ALPHA, /* U+01eea5: ARABIC MATHEMATICAL DOUBLE-STRUCK WAW*/ + RTUNI_ALPHA, /* U+01eea6: ARABIC MATHEMATICAL DOUBLE-STRUCK ZAIN*/ + RTUNI_ALPHA, /* U+01eea7: ARABIC MATHEMATICAL DOUBLE-STRUCK HAH*/ + RTUNI_ALPHA, /* U+01eea8: ARABIC MATHEMATICAL DOUBLE-STRUCK TAH*/ + RTUNI_ALPHA, /* U+01eea9: ARABIC MATHEMATICAL DOUBLE-STRUCK YEH*/ + 0, /* U+01eeaa: */ + RTUNI_ALPHA, /* U+01eeab: ARABIC MATHEMATICAL DOUBLE-STRUCK LAM*/ + RTUNI_ALPHA, /* U+01eeac: ARABIC MATHEMATICAL DOUBLE-STRUCK MEEM*/ + RTUNI_ALPHA, /* U+01eead: ARABIC MATHEMATICAL DOUBLE-STRUCK NOON*/ + RTUNI_ALPHA, /* U+01eeae: ARABIC MATHEMATICAL DOUBLE-STRUCK SEEN*/ + RTUNI_ALPHA, /* U+01eeaf: ARABIC MATHEMATICAL DOUBLE-STRUCK AIN*/ + RTUNI_ALPHA, /* U+01eeb0: ARABIC MATHEMATICAL DOUBLE-STRUCK FEH*/ + RTUNI_ALPHA, /* U+01eeb1: ARABIC MATHEMATICAL DOUBLE-STRUCK SAD*/ + RTUNI_ALPHA, /* U+01eeb2: ARABIC MATHEMATICAL DOUBLE-STRUCK QAF*/ + RTUNI_ALPHA, /* U+01eeb3: ARABIC MATHEMATICAL DOUBLE-STRUCK REH*/ + RTUNI_ALPHA, /* U+01eeb4: ARABIC MATHEMATICAL DOUBLE-STRUCK SHEEN*/ + RTUNI_ALPHA, /* U+01eeb5: ARABIC MATHEMATICAL DOUBLE-STRUCK TEH*/ + RTUNI_ALPHA, /* U+01eeb6: ARABIC MATHEMATICAL DOUBLE-STRUCK THEH*/ + RTUNI_ALPHA, /* U+01eeb7: ARABIC MATHEMATICAL DOUBLE-STRUCK KHAH*/ + RTUNI_ALPHA, /* U+01eeb8: ARABIC MATHEMATICAL DOUBLE-STRUCK THAL*/ + RTUNI_ALPHA, /* U+01eeb9: ARABIC MATHEMATICAL DOUBLE-STRUCK DAD*/ + RTUNI_ALPHA, /* U+01eeba: ARABIC MATHEMATICAL DOUBLE-STRUCK ZAH*/ + RTUNI_ALPHA, /* U+01eebb: ARABIC MATHEMATICAL DOUBLE-STRUCK GHAIN*/ +}; + +static const uint8_t g_afRTUniFlags0x020000[] = +{ + RTUNI_ALPHA, /* U+020000: */ +}; + +static const uint8_t g_afRTUniFlags0x02a6d6[] = +{ + RTUNI_ALPHA, /* U+02a6d6: */ + 0, /* U+02a6d7: */ + 0, /* U+02a6d8: */ + 0, /* U+02a6d9: */ + 0, /* U+02a6da: */ + 0, /* U+02a6db: */ + 0, /* U+02a6dc: */ + 0, /* U+02a6dd: */ + 0, /* U+02a6de: */ + 0, /* U+02a6df: */ + 0, /* U+02a6e0: */ + 0, /* U+02a6e1: */ + 0, /* U+02a6e2: */ + 0, /* U+02a6e3: */ + 0, /* U+02a6e4: */ + 0, /* U+02a6e5: */ + 0, /* U+02a6e6: */ + 0, /* U+02a6e7: */ + 0, /* U+02a6e8: */ + 0, /* U+02a6e9: */ + 0, /* U+02a6ea: */ + 0, /* U+02a6eb: */ + 0, /* U+02a6ec: */ + 0, /* U+02a6ed: */ + 0, /* U+02a6ee: */ + 0, /* U+02a6ef: */ + 0, /* U+02a6f0: */ + 0, /* U+02a6f1: */ + 0, /* U+02a6f2: */ + 0, /* U+02a6f3: */ + 0, /* U+02a6f4: */ + 0, /* U+02a6f5: */ + 0, /* U+02a6f6: */ + 0, /* U+02a6f7: */ + 0, /* U+02a6f8: */ + 0, /* U+02a6f9: */ + 0, /* U+02a6fa: */ + 0, /* U+02a6fb: */ + 0, /* U+02a6fc: */ + 0, /* U+02a6fd: */ + 0, /* U+02a6fe: */ + 0, /* U+02a6ff: */ + RTUNI_ALPHA, /* U+02a700: */ +}; + +static const uint8_t g_afRTUniFlags0x02b734[] = +{ + RTUNI_ALPHA, /* U+02b734: */ + 0, /* U+02b735: */ + 0, /* U+02b736: */ + 0, /* U+02b737: */ + 0, /* U+02b738: */ + 0, /* U+02b739: */ + 0, /* U+02b73a: */ + 0, /* U+02b73b: */ + 0, /* U+02b73c: */ + 0, /* U+02b73d: */ + 0, /* U+02b73e: */ + 0, /* U+02b73f: */ + RTUNI_ALPHA, /* U+02b740: */ + RTUNI_ALPHA, /* U+02b741: */ + RTUNI_ALPHA, /* U+02b742: */ + RTUNI_ALPHA, /* U+02b743: */ + RTUNI_ALPHA, /* U+02b744: */ + RTUNI_ALPHA, /* U+02b745: */ + RTUNI_ALPHA, /* U+02b746: */ + RTUNI_ALPHA, /* U+02b747: */ + RTUNI_ALPHA, /* U+02b748: */ + RTUNI_ALPHA, /* U+02b749: */ + RTUNI_ALPHA, /* U+02b74a: */ + RTUNI_ALPHA, /* U+02b74b: */ + RTUNI_ALPHA, /* U+02b74c: */ + RTUNI_ALPHA, /* U+02b74d: */ + RTUNI_ALPHA, /* U+02b74e: */ + RTUNI_ALPHA, /* U+02b74f: */ + RTUNI_ALPHA, /* U+02b750: */ + RTUNI_ALPHA, /* U+02b751: */ + RTUNI_ALPHA, /* U+02b752: */ + RTUNI_ALPHA, /* U+02b753: */ + RTUNI_ALPHA, /* U+02b754: */ + RTUNI_ALPHA, /* U+02b755: */ + RTUNI_ALPHA, /* U+02b756: */ + RTUNI_ALPHA, /* U+02b757: */ + RTUNI_ALPHA, /* U+02b758: */ + RTUNI_ALPHA, /* U+02b759: */ + RTUNI_ALPHA, /* U+02b75a: */ + RTUNI_ALPHA, /* U+02b75b: */ + RTUNI_ALPHA, /* U+02b75c: */ + RTUNI_ALPHA, /* U+02b75d: */ + RTUNI_ALPHA, /* U+02b75e: */ + RTUNI_ALPHA, /* U+02b75f: */ + RTUNI_ALPHA, /* U+02b760: */ + RTUNI_ALPHA, /* U+02b761: */ + RTUNI_ALPHA, /* U+02b762: */ + RTUNI_ALPHA, /* U+02b763: */ + RTUNI_ALPHA, /* U+02b764: */ + RTUNI_ALPHA, /* U+02b765: */ + RTUNI_ALPHA, /* U+02b766: */ + RTUNI_ALPHA, /* U+02b767: */ + RTUNI_ALPHA, /* U+02b768: */ + RTUNI_ALPHA, /* U+02b769: */ + RTUNI_ALPHA, /* U+02b76a: */ + RTUNI_ALPHA, /* U+02b76b: */ + RTUNI_ALPHA, /* U+02b76c: */ + RTUNI_ALPHA, /* U+02b76d: */ + RTUNI_ALPHA, /* U+02b76e: */ + RTUNI_ALPHA, /* U+02b76f: */ + RTUNI_ALPHA, /* U+02b770: */ + RTUNI_ALPHA, /* U+02b771: */ + RTUNI_ALPHA, /* U+02b772: */ + RTUNI_ALPHA, /* U+02b773: */ + RTUNI_ALPHA, /* U+02b774: */ + RTUNI_ALPHA, /* U+02b775: */ + RTUNI_ALPHA, /* U+02b776: */ + RTUNI_ALPHA, /* U+02b777: */ + RTUNI_ALPHA, /* U+02b778: */ + RTUNI_ALPHA, /* U+02b779: */ + RTUNI_ALPHA, /* U+02b77a: */ + RTUNI_ALPHA, /* U+02b77b: */ + RTUNI_ALPHA, /* U+02b77c: */ + RTUNI_ALPHA, /* U+02b77d: */ + RTUNI_ALPHA, /* U+02b77e: */ + RTUNI_ALPHA, /* U+02b77f: */ + RTUNI_ALPHA, /* U+02b780: */ + RTUNI_ALPHA, /* U+02b781: */ + RTUNI_ALPHA, /* U+02b782: */ + RTUNI_ALPHA, /* U+02b783: */ + RTUNI_ALPHA, /* U+02b784: */ + RTUNI_ALPHA, /* U+02b785: */ + RTUNI_ALPHA, /* U+02b786: */ + RTUNI_ALPHA, /* U+02b787: */ + RTUNI_ALPHA, /* U+02b788: */ + RTUNI_ALPHA, /* U+02b789: */ + RTUNI_ALPHA, /* U+02b78a: */ + RTUNI_ALPHA, /* U+02b78b: */ + RTUNI_ALPHA, /* U+02b78c: */ + RTUNI_ALPHA, /* U+02b78d: */ + RTUNI_ALPHA, /* U+02b78e: */ + RTUNI_ALPHA, /* U+02b78f: */ + RTUNI_ALPHA, /* U+02b790: */ + RTUNI_ALPHA, /* U+02b791: */ + RTUNI_ALPHA, /* U+02b792: */ + RTUNI_ALPHA, /* U+02b793: */ + RTUNI_ALPHA, /* U+02b794: */ + RTUNI_ALPHA, /* U+02b795: */ + RTUNI_ALPHA, /* U+02b796: */ + RTUNI_ALPHA, /* U+02b797: */ + RTUNI_ALPHA, /* U+02b798: */ + RTUNI_ALPHA, /* U+02b799: */ + RTUNI_ALPHA, /* U+02b79a: */ + RTUNI_ALPHA, /* U+02b79b: */ + RTUNI_ALPHA, /* U+02b79c: */ + RTUNI_ALPHA, /* U+02b79d: */ + RTUNI_ALPHA, /* U+02b79e: */ + RTUNI_ALPHA, /* U+02b79f: */ + RTUNI_ALPHA, /* U+02b7a0: */ + RTUNI_ALPHA, /* U+02b7a1: */ + RTUNI_ALPHA, /* U+02b7a2: */ + RTUNI_ALPHA, /* U+02b7a3: */ + RTUNI_ALPHA, /* U+02b7a4: */ + RTUNI_ALPHA, /* U+02b7a5: */ + RTUNI_ALPHA, /* U+02b7a6: */ + RTUNI_ALPHA, /* U+02b7a7: */ + RTUNI_ALPHA, /* U+02b7a8: */ + RTUNI_ALPHA, /* U+02b7a9: */ + RTUNI_ALPHA, /* U+02b7aa: */ + RTUNI_ALPHA, /* U+02b7ab: */ + RTUNI_ALPHA, /* U+02b7ac: */ + RTUNI_ALPHA, /* U+02b7ad: */ + RTUNI_ALPHA, /* U+02b7ae: */ + RTUNI_ALPHA, /* U+02b7af: */ + RTUNI_ALPHA, /* U+02b7b0: */ + RTUNI_ALPHA, /* U+02b7b1: */ + RTUNI_ALPHA, /* U+02b7b2: */ + RTUNI_ALPHA, /* U+02b7b3: */ + RTUNI_ALPHA, /* U+02b7b4: */ + RTUNI_ALPHA, /* U+02b7b5: */ + RTUNI_ALPHA, /* U+02b7b6: */ + RTUNI_ALPHA, /* U+02b7b7: */ + RTUNI_ALPHA, /* U+02b7b8: */ + RTUNI_ALPHA, /* U+02b7b9: */ + RTUNI_ALPHA, /* U+02b7ba: */ + RTUNI_ALPHA, /* U+02b7bb: */ + RTUNI_ALPHA, /* U+02b7bc: */ + RTUNI_ALPHA, /* U+02b7bd: */ + RTUNI_ALPHA, /* U+02b7be: */ + RTUNI_ALPHA, /* U+02b7bf: */ + RTUNI_ALPHA, /* U+02b7c0: */ + RTUNI_ALPHA, /* U+02b7c1: */ + RTUNI_ALPHA, /* U+02b7c2: */ + RTUNI_ALPHA, /* U+02b7c3: */ + RTUNI_ALPHA, /* U+02b7c4: */ + RTUNI_ALPHA, /* U+02b7c5: */ + RTUNI_ALPHA, /* U+02b7c6: */ + RTUNI_ALPHA, /* U+02b7c7: */ + RTUNI_ALPHA, /* U+02b7c8: */ + RTUNI_ALPHA, /* U+02b7c9: */ + RTUNI_ALPHA, /* U+02b7ca: */ + RTUNI_ALPHA, /* U+02b7cb: */ + RTUNI_ALPHA, /* U+02b7cc: */ + RTUNI_ALPHA, /* U+02b7cd: */ + RTUNI_ALPHA, /* U+02b7ce: */ + RTUNI_ALPHA, /* U+02b7cf: */ + RTUNI_ALPHA, /* U+02b7d0: */ + RTUNI_ALPHA, /* U+02b7d1: */ + RTUNI_ALPHA, /* U+02b7d2: */ + RTUNI_ALPHA, /* U+02b7d3: */ + RTUNI_ALPHA, /* U+02b7d4: */ + RTUNI_ALPHA, /* U+02b7d5: */ + RTUNI_ALPHA, /* U+02b7d6: */ + RTUNI_ALPHA, /* U+02b7d7: */ + RTUNI_ALPHA, /* U+02b7d8: */ + RTUNI_ALPHA, /* U+02b7d9: */ + RTUNI_ALPHA, /* U+02b7da: */ + RTUNI_ALPHA, /* U+02b7db: */ + RTUNI_ALPHA, /* U+02b7dc: */ + RTUNI_ALPHA, /* U+02b7dd: */ + RTUNI_ALPHA, /* U+02b7de: */ + RTUNI_ALPHA, /* U+02b7df: */ + RTUNI_ALPHA, /* U+02b7e0: */ + RTUNI_ALPHA, /* U+02b7e1: */ + RTUNI_ALPHA, /* U+02b7e2: */ + RTUNI_ALPHA, /* U+02b7e3: */ + RTUNI_ALPHA, /* U+02b7e4: */ + RTUNI_ALPHA, /* U+02b7e5: */ + RTUNI_ALPHA, /* U+02b7e6: */ + RTUNI_ALPHA, /* U+02b7e7: */ + RTUNI_ALPHA, /* U+02b7e8: */ + RTUNI_ALPHA, /* U+02b7e9: */ + RTUNI_ALPHA, /* U+02b7ea: */ + RTUNI_ALPHA, /* U+02b7eb: */ + RTUNI_ALPHA, /* U+02b7ec: */ + RTUNI_ALPHA, /* U+02b7ed: */ + RTUNI_ALPHA, /* U+02b7ee: */ + RTUNI_ALPHA, /* U+02b7ef: */ + RTUNI_ALPHA, /* U+02b7f0: */ + RTUNI_ALPHA, /* U+02b7f1: */ + RTUNI_ALPHA, /* U+02b7f2: */ + RTUNI_ALPHA, /* U+02b7f3: */ + RTUNI_ALPHA, /* U+02b7f4: */ + RTUNI_ALPHA, /* U+02b7f5: */ + RTUNI_ALPHA, /* U+02b7f6: */ + RTUNI_ALPHA, /* U+02b7f7: */ + RTUNI_ALPHA, /* U+02b7f8: */ + RTUNI_ALPHA, /* U+02b7f9: */ + RTUNI_ALPHA, /* U+02b7fa: */ + RTUNI_ALPHA, /* U+02b7fb: */ + RTUNI_ALPHA, /* U+02b7fc: */ + RTUNI_ALPHA, /* U+02b7fd: */ + RTUNI_ALPHA, /* U+02b7fe: */ + RTUNI_ALPHA, /* U+02b7ff: */ + RTUNI_ALPHA, /* U+02b800: */ + RTUNI_ALPHA, /* U+02b801: */ + RTUNI_ALPHA, /* U+02b802: */ + RTUNI_ALPHA, /* U+02b803: */ + RTUNI_ALPHA, /* U+02b804: */ + RTUNI_ALPHA, /* U+02b805: */ + RTUNI_ALPHA, /* U+02b806: */ + RTUNI_ALPHA, /* U+02b807: */ + RTUNI_ALPHA, /* U+02b808: */ + RTUNI_ALPHA, /* U+02b809: */ + RTUNI_ALPHA, /* U+02b80a: */ + RTUNI_ALPHA, /* U+02b80b: */ + RTUNI_ALPHA, /* U+02b80c: */ + RTUNI_ALPHA, /* U+02b80d: */ + RTUNI_ALPHA, /* U+02b80e: */ + RTUNI_ALPHA, /* U+02b80f: */ + RTUNI_ALPHA, /* U+02b810: */ + RTUNI_ALPHA, /* U+02b811: */ + RTUNI_ALPHA, /* U+02b812: */ + RTUNI_ALPHA, /* U+02b813: */ + RTUNI_ALPHA, /* U+02b814: */ + RTUNI_ALPHA, /* U+02b815: */ + RTUNI_ALPHA, /* U+02b816: */ + RTUNI_ALPHA, /* U+02b817: */ + RTUNI_ALPHA, /* U+02b818: */ + RTUNI_ALPHA, /* U+02b819: */ + RTUNI_ALPHA, /* U+02b81a: */ + RTUNI_ALPHA, /* U+02b81b: */ + RTUNI_ALPHA, /* U+02b81c: */ + RTUNI_ALPHA, /* U+02b81d: */ +}; + +static const uint8_t g_afRTUniFlags0x02f800[] = +{ + RTUNI_ALPHA, /* U+02f800: CJK COMPATIBILITY IDEOGRAPH-2F800*/ + RTUNI_ALPHA, /* U+02f801: CJK COMPATIBILITY IDEOGRAPH-2F801*/ + RTUNI_ALPHA, /* U+02f802: CJK COMPATIBILITY IDEOGRAPH-2F802*/ + RTUNI_ALPHA, /* U+02f803: CJK COMPATIBILITY IDEOGRAPH-2F803*/ + RTUNI_ALPHA, /* U+02f804: CJK COMPATIBILITY IDEOGRAPH-2F804*/ + RTUNI_ALPHA, /* U+02f805: CJK COMPATIBILITY IDEOGRAPH-2F805*/ + RTUNI_ALPHA, /* U+02f806: CJK COMPATIBILITY IDEOGRAPH-2F806*/ + RTUNI_ALPHA, /* U+02f807: CJK COMPATIBILITY IDEOGRAPH-2F807*/ + RTUNI_ALPHA, /* U+02f808: CJK COMPATIBILITY IDEOGRAPH-2F808*/ + RTUNI_ALPHA, /* U+02f809: CJK COMPATIBILITY IDEOGRAPH-2F809*/ + RTUNI_ALPHA, /* U+02f80a: CJK COMPATIBILITY IDEOGRAPH-2F80A*/ + RTUNI_ALPHA, /* U+02f80b: CJK COMPATIBILITY IDEOGRAPH-2F80B*/ + RTUNI_ALPHA, /* U+02f80c: CJK COMPATIBILITY IDEOGRAPH-2F80C*/ + RTUNI_ALPHA, /* U+02f80d: CJK COMPATIBILITY IDEOGRAPH-2F80D*/ + RTUNI_ALPHA, /* U+02f80e: CJK COMPATIBILITY IDEOGRAPH-2F80E*/ + RTUNI_ALPHA, /* U+02f80f: CJK COMPATIBILITY IDEOGRAPH-2F80F*/ + RTUNI_ALPHA, /* U+02f810: CJK COMPATIBILITY IDEOGRAPH-2F810*/ + RTUNI_ALPHA, /* U+02f811: CJK COMPATIBILITY IDEOGRAPH-2F811*/ + RTUNI_ALPHA, /* U+02f812: CJK COMPATIBILITY IDEOGRAPH-2F812*/ + RTUNI_ALPHA, /* U+02f813: CJK COMPATIBILITY IDEOGRAPH-2F813*/ + RTUNI_ALPHA, /* U+02f814: CJK COMPATIBILITY IDEOGRAPH-2F814*/ + RTUNI_ALPHA, /* U+02f815: CJK COMPATIBILITY IDEOGRAPH-2F815*/ + RTUNI_ALPHA, /* U+02f816: CJK COMPATIBILITY IDEOGRAPH-2F816*/ + RTUNI_ALPHA, /* U+02f817: CJK COMPATIBILITY IDEOGRAPH-2F817*/ + RTUNI_ALPHA, /* U+02f818: CJK COMPATIBILITY IDEOGRAPH-2F818*/ + RTUNI_ALPHA, /* U+02f819: CJK COMPATIBILITY IDEOGRAPH-2F819*/ + RTUNI_ALPHA, /* U+02f81a: CJK COMPATIBILITY IDEOGRAPH-2F81A*/ + RTUNI_ALPHA, /* U+02f81b: CJK COMPATIBILITY IDEOGRAPH-2F81B*/ + RTUNI_ALPHA, /* U+02f81c: CJK COMPATIBILITY IDEOGRAPH-2F81C*/ + RTUNI_ALPHA, /* U+02f81d: CJK COMPATIBILITY IDEOGRAPH-2F81D*/ + RTUNI_ALPHA, /* U+02f81e: CJK COMPATIBILITY IDEOGRAPH-2F81E*/ + RTUNI_ALPHA, /* U+02f81f: CJK COMPATIBILITY IDEOGRAPH-2F81F*/ + RTUNI_ALPHA, /* U+02f820: CJK COMPATIBILITY IDEOGRAPH-2F820*/ + RTUNI_ALPHA, /* U+02f821: CJK COMPATIBILITY IDEOGRAPH-2F821*/ + RTUNI_ALPHA, /* U+02f822: CJK COMPATIBILITY IDEOGRAPH-2F822*/ + RTUNI_ALPHA, /* U+02f823: CJK COMPATIBILITY IDEOGRAPH-2F823*/ + RTUNI_ALPHA, /* U+02f824: CJK COMPATIBILITY IDEOGRAPH-2F824*/ + RTUNI_ALPHA, /* U+02f825: CJK COMPATIBILITY IDEOGRAPH-2F825*/ + RTUNI_ALPHA, /* U+02f826: CJK COMPATIBILITY IDEOGRAPH-2F826*/ + RTUNI_ALPHA, /* U+02f827: CJK COMPATIBILITY IDEOGRAPH-2F827*/ + RTUNI_ALPHA, /* U+02f828: CJK COMPATIBILITY IDEOGRAPH-2F828*/ + RTUNI_ALPHA, /* U+02f829: CJK COMPATIBILITY IDEOGRAPH-2F829*/ + RTUNI_ALPHA, /* U+02f82a: CJK COMPATIBILITY IDEOGRAPH-2F82A*/ + RTUNI_ALPHA, /* U+02f82b: CJK COMPATIBILITY IDEOGRAPH-2F82B*/ + RTUNI_ALPHA, /* U+02f82c: CJK COMPATIBILITY IDEOGRAPH-2F82C*/ + RTUNI_ALPHA, /* U+02f82d: CJK COMPATIBILITY IDEOGRAPH-2F82D*/ + RTUNI_ALPHA, /* U+02f82e: CJK COMPATIBILITY IDEOGRAPH-2F82E*/ + RTUNI_ALPHA, /* U+02f82f: CJK COMPATIBILITY IDEOGRAPH-2F82F*/ + RTUNI_ALPHA, /* U+02f830: CJK COMPATIBILITY IDEOGRAPH-2F830*/ + RTUNI_ALPHA, /* U+02f831: CJK COMPATIBILITY IDEOGRAPH-2F831*/ + RTUNI_ALPHA, /* U+02f832: CJK COMPATIBILITY IDEOGRAPH-2F832*/ + RTUNI_ALPHA, /* U+02f833: CJK COMPATIBILITY IDEOGRAPH-2F833*/ + RTUNI_ALPHA, /* U+02f834: CJK COMPATIBILITY IDEOGRAPH-2F834*/ + RTUNI_ALPHA, /* U+02f835: CJK COMPATIBILITY IDEOGRAPH-2F835*/ + RTUNI_ALPHA, /* U+02f836: CJK COMPATIBILITY IDEOGRAPH-2F836*/ + RTUNI_ALPHA, /* U+02f837: CJK COMPATIBILITY IDEOGRAPH-2F837*/ + RTUNI_ALPHA, /* U+02f838: CJK COMPATIBILITY IDEOGRAPH-2F838*/ + RTUNI_ALPHA, /* U+02f839: CJK COMPATIBILITY IDEOGRAPH-2F839*/ + RTUNI_ALPHA, /* U+02f83a: CJK COMPATIBILITY IDEOGRAPH-2F83A*/ + RTUNI_ALPHA, /* U+02f83b: CJK COMPATIBILITY IDEOGRAPH-2F83B*/ + RTUNI_ALPHA, /* U+02f83c: CJK COMPATIBILITY IDEOGRAPH-2F83C*/ + RTUNI_ALPHA, /* U+02f83d: CJK COMPATIBILITY IDEOGRAPH-2F83D*/ + RTUNI_ALPHA, /* U+02f83e: CJK COMPATIBILITY IDEOGRAPH-2F83E*/ + RTUNI_ALPHA, /* U+02f83f: CJK COMPATIBILITY IDEOGRAPH-2F83F*/ + RTUNI_ALPHA, /* U+02f840: CJK COMPATIBILITY IDEOGRAPH-2F840*/ + RTUNI_ALPHA, /* U+02f841: CJK COMPATIBILITY IDEOGRAPH-2F841*/ + RTUNI_ALPHA, /* U+02f842: CJK COMPATIBILITY IDEOGRAPH-2F842*/ + RTUNI_ALPHA, /* U+02f843: CJK COMPATIBILITY IDEOGRAPH-2F843*/ + RTUNI_ALPHA, /* U+02f844: CJK COMPATIBILITY IDEOGRAPH-2F844*/ + RTUNI_ALPHA, /* U+02f845: CJK COMPATIBILITY IDEOGRAPH-2F845*/ + RTUNI_ALPHA, /* U+02f846: CJK COMPATIBILITY IDEOGRAPH-2F846*/ + RTUNI_ALPHA, /* U+02f847: CJK COMPATIBILITY IDEOGRAPH-2F847*/ + RTUNI_ALPHA, /* U+02f848: CJK COMPATIBILITY IDEOGRAPH-2F848*/ + RTUNI_ALPHA, /* U+02f849: CJK COMPATIBILITY IDEOGRAPH-2F849*/ + RTUNI_ALPHA, /* U+02f84a: CJK COMPATIBILITY IDEOGRAPH-2F84A*/ + RTUNI_ALPHA, /* U+02f84b: CJK COMPATIBILITY IDEOGRAPH-2F84B*/ + RTUNI_ALPHA, /* U+02f84c: CJK COMPATIBILITY IDEOGRAPH-2F84C*/ + RTUNI_ALPHA, /* U+02f84d: CJK COMPATIBILITY IDEOGRAPH-2F84D*/ + RTUNI_ALPHA, /* U+02f84e: CJK COMPATIBILITY IDEOGRAPH-2F84E*/ + RTUNI_ALPHA, /* U+02f84f: CJK COMPATIBILITY IDEOGRAPH-2F84F*/ + RTUNI_ALPHA, /* U+02f850: CJK COMPATIBILITY IDEOGRAPH-2F850*/ + RTUNI_ALPHA, /* U+02f851: CJK COMPATIBILITY IDEOGRAPH-2F851*/ + RTUNI_ALPHA, /* U+02f852: CJK COMPATIBILITY IDEOGRAPH-2F852*/ + RTUNI_ALPHA, /* U+02f853: CJK COMPATIBILITY IDEOGRAPH-2F853*/ + RTUNI_ALPHA, /* U+02f854: CJK COMPATIBILITY IDEOGRAPH-2F854*/ + RTUNI_ALPHA, /* U+02f855: CJK COMPATIBILITY IDEOGRAPH-2F855*/ + RTUNI_ALPHA, /* U+02f856: CJK COMPATIBILITY IDEOGRAPH-2F856*/ + RTUNI_ALPHA, /* U+02f857: CJK COMPATIBILITY IDEOGRAPH-2F857*/ + RTUNI_ALPHA, /* U+02f858: CJK COMPATIBILITY IDEOGRAPH-2F858*/ + RTUNI_ALPHA, /* U+02f859: CJK COMPATIBILITY IDEOGRAPH-2F859*/ + RTUNI_ALPHA, /* U+02f85a: CJK COMPATIBILITY IDEOGRAPH-2F85A*/ + RTUNI_ALPHA, /* U+02f85b: CJK COMPATIBILITY IDEOGRAPH-2F85B*/ + RTUNI_ALPHA, /* U+02f85c: CJK COMPATIBILITY IDEOGRAPH-2F85C*/ + RTUNI_ALPHA, /* U+02f85d: CJK COMPATIBILITY IDEOGRAPH-2F85D*/ + RTUNI_ALPHA, /* U+02f85e: CJK COMPATIBILITY IDEOGRAPH-2F85E*/ + RTUNI_ALPHA, /* U+02f85f: CJK COMPATIBILITY IDEOGRAPH-2F85F*/ + RTUNI_ALPHA, /* U+02f860: CJK COMPATIBILITY IDEOGRAPH-2F860*/ + RTUNI_ALPHA, /* U+02f861: CJK COMPATIBILITY IDEOGRAPH-2F861*/ + RTUNI_ALPHA, /* U+02f862: CJK COMPATIBILITY IDEOGRAPH-2F862*/ + RTUNI_ALPHA, /* U+02f863: CJK COMPATIBILITY IDEOGRAPH-2F863*/ + RTUNI_ALPHA, /* U+02f864: CJK COMPATIBILITY IDEOGRAPH-2F864*/ + RTUNI_ALPHA, /* U+02f865: CJK COMPATIBILITY IDEOGRAPH-2F865*/ + RTUNI_ALPHA, /* U+02f866: CJK COMPATIBILITY IDEOGRAPH-2F866*/ + RTUNI_ALPHA, /* U+02f867: CJK COMPATIBILITY IDEOGRAPH-2F867*/ + RTUNI_ALPHA, /* U+02f868: CJK COMPATIBILITY IDEOGRAPH-2F868*/ + RTUNI_ALPHA, /* U+02f869: CJK COMPATIBILITY IDEOGRAPH-2F869*/ + RTUNI_ALPHA, /* U+02f86a: CJK COMPATIBILITY IDEOGRAPH-2F86A*/ + RTUNI_ALPHA, /* U+02f86b: CJK COMPATIBILITY IDEOGRAPH-2F86B*/ + RTUNI_ALPHA, /* U+02f86c: CJK COMPATIBILITY IDEOGRAPH-2F86C*/ + RTUNI_ALPHA, /* U+02f86d: CJK COMPATIBILITY IDEOGRAPH-2F86D*/ + RTUNI_ALPHA, /* U+02f86e: CJK COMPATIBILITY IDEOGRAPH-2F86E*/ + RTUNI_ALPHA, /* U+02f86f: CJK COMPATIBILITY IDEOGRAPH-2F86F*/ + RTUNI_ALPHA, /* U+02f870: CJK COMPATIBILITY IDEOGRAPH-2F870*/ + RTUNI_ALPHA, /* U+02f871: CJK COMPATIBILITY IDEOGRAPH-2F871*/ + RTUNI_ALPHA, /* U+02f872: CJK COMPATIBILITY IDEOGRAPH-2F872*/ + RTUNI_ALPHA, /* U+02f873: CJK COMPATIBILITY IDEOGRAPH-2F873*/ + RTUNI_ALPHA, /* U+02f874: CJK COMPATIBILITY IDEOGRAPH-2F874*/ + RTUNI_ALPHA, /* U+02f875: CJK COMPATIBILITY IDEOGRAPH-2F875*/ + RTUNI_ALPHA, /* U+02f876: CJK COMPATIBILITY IDEOGRAPH-2F876*/ + RTUNI_ALPHA, /* U+02f877: CJK COMPATIBILITY IDEOGRAPH-2F877*/ + RTUNI_ALPHA, /* U+02f878: CJK COMPATIBILITY IDEOGRAPH-2F878*/ + RTUNI_ALPHA, /* U+02f879: CJK COMPATIBILITY IDEOGRAPH-2F879*/ + RTUNI_ALPHA, /* U+02f87a: CJK COMPATIBILITY IDEOGRAPH-2F87A*/ + RTUNI_ALPHA, /* U+02f87b: CJK COMPATIBILITY IDEOGRAPH-2F87B*/ + RTUNI_ALPHA, /* U+02f87c: CJK COMPATIBILITY IDEOGRAPH-2F87C*/ + RTUNI_ALPHA, /* U+02f87d: CJK COMPATIBILITY IDEOGRAPH-2F87D*/ + RTUNI_ALPHA, /* U+02f87e: CJK COMPATIBILITY IDEOGRAPH-2F87E*/ + RTUNI_ALPHA, /* U+02f87f: CJK COMPATIBILITY IDEOGRAPH-2F87F*/ + RTUNI_ALPHA, /* U+02f880: CJK COMPATIBILITY IDEOGRAPH-2F880*/ + RTUNI_ALPHA, /* U+02f881: CJK COMPATIBILITY IDEOGRAPH-2F881*/ + RTUNI_ALPHA, /* U+02f882: CJK COMPATIBILITY IDEOGRAPH-2F882*/ + RTUNI_ALPHA, /* U+02f883: CJK COMPATIBILITY IDEOGRAPH-2F883*/ + RTUNI_ALPHA, /* U+02f884: CJK COMPATIBILITY IDEOGRAPH-2F884*/ + RTUNI_ALPHA, /* U+02f885: CJK COMPATIBILITY IDEOGRAPH-2F885*/ + RTUNI_ALPHA, /* U+02f886: CJK COMPATIBILITY IDEOGRAPH-2F886*/ + RTUNI_ALPHA, /* U+02f887: CJK COMPATIBILITY IDEOGRAPH-2F887*/ + RTUNI_ALPHA, /* U+02f888: CJK COMPATIBILITY IDEOGRAPH-2F888*/ + RTUNI_ALPHA, /* U+02f889: CJK COMPATIBILITY IDEOGRAPH-2F889*/ + RTUNI_ALPHA, /* U+02f88a: CJK COMPATIBILITY IDEOGRAPH-2F88A*/ + RTUNI_ALPHA, /* U+02f88b: CJK COMPATIBILITY IDEOGRAPH-2F88B*/ + RTUNI_ALPHA, /* U+02f88c: CJK COMPATIBILITY IDEOGRAPH-2F88C*/ + RTUNI_ALPHA, /* U+02f88d: CJK COMPATIBILITY IDEOGRAPH-2F88D*/ + RTUNI_ALPHA, /* U+02f88e: CJK COMPATIBILITY IDEOGRAPH-2F88E*/ + RTUNI_ALPHA, /* U+02f88f: CJK COMPATIBILITY IDEOGRAPH-2F88F*/ + RTUNI_ALPHA, /* U+02f890: CJK COMPATIBILITY IDEOGRAPH-2F890*/ + RTUNI_ALPHA, /* U+02f891: CJK COMPATIBILITY IDEOGRAPH-2F891*/ + RTUNI_ALPHA, /* U+02f892: CJK COMPATIBILITY IDEOGRAPH-2F892*/ + RTUNI_ALPHA, /* U+02f893: CJK COMPATIBILITY IDEOGRAPH-2F893*/ + RTUNI_ALPHA, /* U+02f894: CJK COMPATIBILITY IDEOGRAPH-2F894*/ + RTUNI_ALPHA, /* U+02f895: CJK COMPATIBILITY IDEOGRAPH-2F895*/ + RTUNI_ALPHA, /* U+02f896: CJK COMPATIBILITY IDEOGRAPH-2F896*/ + RTUNI_ALPHA, /* U+02f897: CJK COMPATIBILITY IDEOGRAPH-2F897*/ + RTUNI_ALPHA, /* U+02f898: CJK COMPATIBILITY IDEOGRAPH-2F898*/ + RTUNI_ALPHA, /* U+02f899: CJK COMPATIBILITY IDEOGRAPH-2F899*/ + RTUNI_ALPHA, /* U+02f89a: CJK COMPATIBILITY IDEOGRAPH-2F89A*/ + RTUNI_ALPHA, /* U+02f89b: CJK COMPATIBILITY IDEOGRAPH-2F89B*/ + RTUNI_ALPHA, /* U+02f89c: CJK COMPATIBILITY IDEOGRAPH-2F89C*/ + RTUNI_ALPHA, /* U+02f89d: CJK COMPATIBILITY IDEOGRAPH-2F89D*/ + RTUNI_ALPHA, /* U+02f89e: CJK COMPATIBILITY IDEOGRAPH-2F89E*/ + RTUNI_ALPHA, /* U+02f89f: CJK COMPATIBILITY IDEOGRAPH-2F89F*/ + RTUNI_ALPHA, /* U+02f8a0: CJK COMPATIBILITY IDEOGRAPH-2F8A0*/ + RTUNI_ALPHA, /* U+02f8a1: CJK COMPATIBILITY IDEOGRAPH-2F8A1*/ + RTUNI_ALPHA, /* U+02f8a2: CJK COMPATIBILITY IDEOGRAPH-2F8A2*/ + RTUNI_ALPHA, /* U+02f8a3: CJK COMPATIBILITY IDEOGRAPH-2F8A3*/ + RTUNI_ALPHA, /* U+02f8a4: CJK COMPATIBILITY IDEOGRAPH-2F8A4*/ + RTUNI_ALPHA, /* U+02f8a5: CJK COMPATIBILITY IDEOGRAPH-2F8A5*/ + RTUNI_ALPHA, /* U+02f8a6: CJK COMPATIBILITY IDEOGRAPH-2F8A6*/ + RTUNI_ALPHA, /* U+02f8a7: CJK COMPATIBILITY IDEOGRAPH-2F8A7*/ + RTUNI_ALPHA, /* U+02f8a8: CJK COMPATIBILITY IDEOGRAPH-2F8A8*/ + RTUNI_ALPHA, /* U+02f8a9: CJK COMPATIBILITY IDEOGRAPH-2F8A9*/ + RTUNI_ALPHA, /* U+02f8aa: CJK COMPATIBILITY IDEOGRAPH-2F8AA*/ + RTUNI_ALPHA, /* U+02f8ab: CJK COMPATIBILITY IDEOGRAPH-2F8AB*/ + RTUNI_ALPHA, /* U+02f8ac: CJK COMPATIBILITY IDEOGRAPH-2F8AC*/ + RTUNI_ALPHA, /* U+02f8ad: CJK COMPATIBILITY IDEOGRAPH-2F8AD*/ + RTUNI_ALPHA, /* U+02f8ae: CJK COMPATIBILITY IDEOGRAPH-2F8AE*/ + RTUNI_ALPHA, /* U+02f8af: CJK COMPATIBILITY IDEOGRAPH-2F8AF*/ + RTUNI_ALPHA, /* U+02f8b0: CJK COMPATIBILITY IDEOGRAPH-2F8B0*/ + RTUNI_ALPHA, /* U+02f8b1: CJK COMPATIBILITY IDEOGRAPH-2F8B1*/ + RTUNI_ALPHA, /* U+02f8b2: CJK COMPATIBILITY IDEOGRAPH-2F8B2*/ + RTUNI_ALPHA, /* U+02f8b3: CJK COMPATIBILITY IDEOGRAPH-2F8B3*/ + RTUNI_ALPHA, /* U+02f8b4: CJK COMPATIBILITY IDEOGRAPH-2F8B4*/ + RTUNI_ALPHA, /* U+02f8b5: CJK COMPATIBILITY IDEOGRAPH-2F8B5*/ + RTUNI_ALPHA, /* U+02f8b6: CJK COMPATIBILITY IDEOGRAPH-2F8B6*/ + RTUNI_ALPHA, /* U+02f8b7: CJK COMPATIBILITY IDEOGRAPH-2F8B7*/ + RTUNI_ALPHA, /* U+02f8b8: CJK COMPATIBILITY IDEOGRAPH-2F8B8*/ + RTUNI_ALPHA, /* U+02f8b9: CJK COMPATIBILITY IDEOGRAPH-2F8B9*/ + RTUNI_ALPHA, /* U+02f8ba: CJK COMPATIBILITY IDEOGRAPH-2F8BA*/ + RTUNI_ALPHA, /* U+02f8bb: CJK COMPATIBILITY IDEOGRAPH-2F8BB*/ + RTUNI_ALPHA, /* U+02f8bc: CJK COMPATIBILITY IDEOGRAPH-2F8BC*/ + RTUNI_ALPHA, /* U+02f8bd: CJK COMPATIBILITY IDEOGRAPH-2F8BD*/ + RTUNI_ALPHA, /* U+02f8be: CJK COMPATIBILITY IDEOGRAPH-2F8BE*/ + RTUNI_ALPHA, /* U+02f8bf: CJK COMPATIBILITY IDEOGRAPH-2F8BF*/ + RTUNI_ALPHA, /* U+02f8c0: CJK COMPATIBILITY IDEOGRAPH-2F8C0*/ + RTUNI_ALPHA, /* U+02f8c1: CJK COMPATIBILITY IDEOGRAPH-2F8C1*/ + RTUNI_ALPHA, /* U+02f8c2: CJK COMPATIBILITY IDEOGRAPH-2F8C2*/ + RTUNI_ALPHA, /* U+02f8c3: CJK COMPATIBILITY IDEOGRAPH-2F8C3*/ + RTUNI_ALPHA, /* U+02f8c4: CJK COMPATIBILITY IDEOGRAPH-2F8C4*/ + RTUNI_ALPHA, /* U+02f8c5: CJK COMPATIBILITY IDEOGRAPH-2F8C5*/ + RTUNI_ALPHA, /* U+02f8c6: CJK COMPATIBILITY IDEOGRAPH-2F8C6*/ + RTUNI_ALPHA, /* U+02f8c7: CJK COMPATIBILITY IDEOGRAPH-2F8C7*/ + RTUNI_ALPHA, /* U+02f8c8: CJK COMPATIBILITY IDEOGRAPH-2F8C8*/ + RTUNI_ALPHA, /* U+02f8c9: CJK COMPATIBILITY IDEOGRAPH-2F8C9*/ + RTUNI_ALPHA, /* U+02f8ca: CJK COMPATIBILITY IDEOGRAPH-2F8CA*/ + RTUNI_ALPHA, /* U+02f8cb: CJK COMPATIBILITY IDEOGRAPH-2F8CB*/ + RTUNI_ALPHA, /* U+02f8cc: CJK COMPATIBILITY IDEOGRAPH-2F8CC*/ + RTUNI_ALPHA, /* U+02f8cd: CJK COMPATIBILITY IDEOGRAPH-2F8CD*/ + RTUNI_ALPHA, /* U+02f8ce: CJK COMPATIBILITY IDEOGRAPH-2F8CE*/ + RTUNI_ALPHA, /* U+02f8cf: CJK COMPATIBILITY IDEOGRAPH-2F8CF*/ + RTUNI_ALPHA, /* U+02f8d0: CJK COMPATIBILITY IDEOGRAPH-2F8D0*/ + RTUNI_ALPHA, /* U+02f8d1: CJK COMPATIBILITY IDEOGRAPH-2F8D1*/ + RTUNI_ALPHA, /* U+02f8d2: CJK COMPATIBILITY IDEOGRAPH-2F8D2*/ + RTUNI_ALPHA, /* U+02f8d3: CJK COMPATIBILITY IDEOGRAPH-2F8D3*/ + RTUNI_ALPHA, /* U+02f8d4: CJK COMPATIBILITY IDEOGRAPH-2F8D4*/ + RTUNI_ALPHA, /* U+02f8d5: CJK COMPATIBILITY IDEOGRAPH-2F8D5*/ + RTUNI_ALPHA, /* U+02f8d6: CJK COMPATIBILITY IDEOGRAPH-2F8D6*/ + RTUNI_ALPHA, /* U+02f8d7: CJK COMPATIBILITY IDEOGRAPH-2F8D7*/ + RTUNI_ALPHA, /* U+02f8d8: CJK COMPATIBILITY IDEOGRAPH-2F8D8*/ + RTUNI_ALPHA, /* U+02f8d9: CJK COMPATIBILITY IDEOGRAPH-2F8D9*/ + RTUNI_ALPHA, /* U+02f8da: CJK COMPATIBILITY IDEOGRAPH-2F8DA*/ + RTUNI_ALPHA, /* U+02f8db: CJK COMPATIBILITY IDEOGRAPH-2F8DB*/ + RTUNI_ALPHA, /* U+02f8dc: CJK COMPATIBILITY IDEOGRAPH-2F8DC*/ + RTUNI_ALPHA, /* U+02f8dd: CJK COMPATIBILITY IDEOGRAPH-2F8DD*/ + RTUNI_ALPHA, /* U+02f8de: CJK COMPATIBILITY IDEOGRAPH-2F8DE*/ + RTUNI_ALPHA, /* U+02f8df: CJK COMPATIBILITY IDEOGRAPH-2F8DF*/ + RTUNI_ALPHA, /* U+02f8e0: CJK COMPATIBILITY IDEOGRAPH-2F8E0*/ + RTUNI_ALPHA, /* U+02f8e1: CJK COMPATIBILITY IDEOGRAPH-2F8E1*/ + RTUNI_ALPHA, /* U+02f8e2: CJK COMPATIBILITY IDEOGRAPH-2F8E2*/ + RTUNI_ALPHA, /* U+02f8e3: CJK COMPATIBILITY IDEOGRAPH-2F8E3*/ + RTUNI_ALPHA, /* U+02f8e4: CJK COMPATIBILITY IDEOGRAPH-2F8E4*/ + RTUNI_ALPHA, /* U+02f8e5: CJK COMPATIBILITY IDEOGRAPH-2F8E5*/ + RTUNI_ALPHA, /* U+02f8e6: CJK COMPATIBILITY IDEOGRAPH-2F8E6*/ + RTUNI_ALPHA, /* U+02f8e7: CJK COMPATIBILITY IDEOGRAPH-2F8E7*/ + RTUNI_ALPHA, /* U+02f8e8: CJK COMPATIBILITY IDEOGRAPH-2F8E8*/ + RTUNI_ALPHA, /* U+02f8e9: CJK COMPATIBILITY IDEOGRAPH-2F8E9*/ + RTUNI_ALPHA, /* U+02f8ea: CJK COMPATIBILITY IDEOGRAPH-2F8EA*/ + RTUNI_ALPHA, /* U+02f8eb: CJK COMPATIBILITY IDEOGRAPH-2F8EB*/ + RTUNI_ALPHA, /* U+02f8ec: CJK COMPATIBILITY IDEOGRAPH-2F8EC*/ + RTUNI_ALPHA, /* U+02f8ed: CJK COMPATIBILITY IDEOGRAPH-2F8ED*/ + RTUNI_ALPHA, /* U+02f8ee: CJK COMPATIBILITY IDEOGRAPH-2F8EE*/ + RTUNI_ALPHA, /* U+02f8ef: CJK COMPATIBILITY IDEOGRAPH-2F8EF*/ + RTUNI_ALPHA, /* U+02f8f0: CJK COMPATIBILITY IDEOGRAPH-2F8F0*/ + RTUNI_ALPHA, /* U+02f8f1: CJK COMPATIBILITY IDEOGRAPH-2F8F1*/ + RTUNI_ALPHA, /* U+02f8f2: CJK COMPATIBILITY IDEOGRAPH-2F8F2*/ + RTUNI_ALPHA, /* U+02f8f3: CJK COMPATIBILITY IDEOGRAPH-2F8F3*/ + RTUNI_ALPHA, /* U+02f8f4: CJK COMPATIBILITY IDEOGRAPH-2F8F4*/ + RTUNI_ALPHA, /* U+02f8f5: CJK COMPATIBILITY IDEOGRAPH-2F8F5*/ + RTUNI_ALPHA, /* U+02f8f6: CJK COMPATIBILITY IDEOGRAPH-2F8F6*/ + RTUNI_ALPHA, /* U+02f8f7: CJK COMPATIBILITY IDEOGRAPH-2F8F7*/ + RTUNI_ALPHA, /* U+02f8f8: CJK COMPATIBILITY IDEOGRAPH-2F8F8*/ + RTUNI_ALPHA, /* U+02f8f9: CJK COMPATIBILITY IDEOGRAPH-2F8F9*/ + RTUNI_ALPHA, /* U+02f8fa: CJK COMPATIBILITY IDEOGRAPH-2F8FA*/ + RTUNI_ALPHA, /* U+02f8fb: CJK COMPATIBILITY IDEOGRAPH-2F8FB*/ + RTUNI_ALPHA, /* U+02f8fc: CJK COMPATIBILITY IDEOGRAPH-2F8FC*/ + RTUNI_ALPHA, /* U+02f8fd: CJK COMPATIBILITY IDEOGRAPH-2F8FD*/ + RTUNI_ALPHA, /* U+02f8fe: CJK COMPATIBILITY IDEOGRAPH-2F8FE*/ + RTUNI_ALPHA, /* U+02f8ff: CJK COMPATIBILITY IDEOGRAPH-2F8FF*/ + RTUNI_ALPHA, /* U+02f900: CJK COMPATIBILITY IDEOGRAPH-2F900*/ + RTUNI_ALPHA, /* U+02f901: CJK COMPATIBILITY IDEOGRAPH-2F901*/ + RTUNI_ALPHA, /* U+02f902: CJK COMPATIBILITY IDEOGRAPH-2F902*/ + RTUNI_ALPHA, /* U+02f903: CJK COMPATIBILITY IDEOGRAPH-2F903*/ + RTUNI_ALPHA, /* U+02f904: CJK COMPATIBILITY IDEOGRAPH-2F904*/ + RTUNI_ALPHA, /* U+02f905: CJK COMPATIBILITY IDEOGRAPH-2F905*/ + RTUNI_ALPHA, /* U+02f906: CJK COMPATIBILITY IDEOGRAPH-2F906*/ + RTUNI_ALPHA, /* U+02f907: CJK COMPATIBILITY IDEOGRAPH-2F907*/ + RTUNI_ALPHA, /* U+02f908: CJK COMPATIBILITY IDEOGRAPH-2F908*/ + RTUNI_ALPHA, /* U+02f909: CJK COMPATIBILITY IDEOGRAPH-2F909*/ + RTUNI_ALPHA, /* U+02f90a: CJK COMPATIBILITY IDEOGRAPH-2F90A*/ + RTUNI_ALPHA, /* U+02f90b: CJK COMPATIBILITY IDEOGRAPH-2F90B*/ + RTUNI_ALPHA, /* U+02f90c: CJK COMPATIBILITY IDEOGRAPH-2F90C*/ + RTUNI_ALPHA, /* U+02f90d: CJK COMPATIBILITY IDEOGRAPH-2F90D*/ + RTUNI_ALPHA, /* U+02f90e: CJK COMPATIBILITY IDEOGRAPH-2F90E*/ + RTUNI_ALPHA, /* U+02f90f: CJK COMPATIBILITY IDEOGRAPH-2F90F*/ + RTUNI_ALPHA, /* U+02f910: CJK COMPATIBILITY IDEOGRAPH-2F910*/ + RTUNI_ALPHA, /* U+02f911: CJK COMPATIBILITY IDEOGRAPH-2F911*/ + RTUNI_ALPHA, /* U+02f912: CJK COMPATIBILITY IDEOGRAPH-2F912*/ + RTUNI_ALPHA, /* U+02f913: CJK COMPATIBILITY IDEOGRAPH-2F913*/ + RTUNI_ALPHA, /* U+02f914: CJK COMPATIBILITY IDEOGRAPH-2F914*/ + RTUNI_ALPHA, /* U+02f915: CJK COMPATIBILITY IDEOGRAPH-2F915*/ + RTUNI_ALPHA, /* U+02f916: CJK COMPATIBILITY IDEOGRAPH-2F916*/ + RTUNI_ALPHA, /* U+02f917: CJK COMPATIBILITY IDEOGRAPH-2F917*/ + RTUNI_ALPHA, /* U+02f918: CJK COMPATIBILITY IDEOGRAPH-2F918*/ + RTUNI_ALPHA, /* U+02f919: CJK COMPATIBILITY IDEOGRAPH-2F919*/ + RTUNI_ALPHA, /* U+02f91a: CJK COMPATIBILITY IDEOGRAPH-2F91A*/ + RTUNI_ALPHA, /* U+02f91b: CJK COMPATIBILITY IDEOGRAPH-2F91B*/ + RTUNI_ALPHA, /* U+02f91c: CJK COMPATIBILITY IDEOGRAPH-2F91C*/ + RTUNI_ALPHA, /* U+02f91d: CJK COMPATIBILITY IDEOGRAPH-2F91D*/ + RTUNI_ALPHA, /* U+02f91e: CJK COMPATIBILITY IDEOGRAPH-2F91E*/ + RTUNI_ALPHA, /* U+02f91f: CJK COMPATIBILITY IDEOGRAPH-2F91F*/ + RTUNI_ALPHA, /* U+02f920: CJK COMPATIBILITY IDEOGRAPH-2F920*/ + RTUNI_ALPHA, /* U+02f921: CJK COMPATIBILITY IDEOGRAPH-2F921*/ + RTUNI_ALPHA, /* U+02f922: CJK COMPATIBILITY IDEOGRAPH-2F922*/ + RTUNI_ALPHA, /* U+02f923: CJK COMPATIBILITY IDEOGRAPH-2F923*/ + RTUNI_ALPHA, /* U+02f924: CJK COMPATIBILITY IDEOGRAPH-2F924*/ + RTUNI_ALPHA, /* U+02f925: CJK COMPATIBILITY IDEOGRAPH-2F925*/ + RTUNI_ALPHA, /* U+02f926: CJK COMPATIBILITY IDEOGRAPH-2F926*/ + RTUNI_ALPHA, /* U+02f927: CJK COMPATIBILITY IDEOGRAPH-2F927*/ + RTUNI_ALPHA, /* U+02f928: CJK COMPATIBILITY IDEOGRAPH-2F928*/ + RTUNI_ALPHA, /* U+02f929: CJK COMPATIBILITY IDEOGRAPH-2F929*/ + RTUNI_ALPHA, /* U+02f92a: CJK COMPATIBILITY IDEOGRAPH-2F92A*/ + RTUNI_ALPHA, /* U+02f92b: CJK COMPATIBILITY IDEOGRAPH-2F92B*/ + RTUNI_ALPHA, /* U+02f92c: CJK COMPATIBILITY IDEOGRAPH-2F92C*/ + RTUNI_ALPHA, /* U+02f92d: CJK COMPATIBILITY IDEOGRAPH-2F92D*/ + RTUNI_ALPHA, /* U+02f92e: CJK COMPATIBILITY IDEOGRAPH-2F92E*/ + RTUNI_ALPHA, /* U+02f92f: CJK COMPATIBILITY IDEOGRAPH-2F92F*/ + RTUNI_ALPHA, /* U+02f930: CJK COMPATIBILITY IDEOGRAPH-2F930*/ + RTUNI_ALPHA, /* U+02f931: CJK COMPATIBILITY IDEOGRAPH-2F931*/ + RTUNI_ALPHA, /* U+02f932: CJK COMPATIBILITY IDEOGRAPH-2F932*/ + RTUNI_ALPHA, /* U+02f933: CJK COMPATIBILITY IDEOGRAPH-2F933*/ + RTUNI_ALPHA, /* U+02f934: CJK COMPATIBILITY IDEOGRAPH-2F934*/ + RTUNI_ALPHA, /* U+02f935: CJK COMPATIBILITY IDEOGRAPH-2F935*/ + RTUNI_ALPHA, /* U+02f936: CJK COMPATIBILITY IDEOGRAPH-2F936*/ + RTUNI_ALPHA, /* U+02f937: CJK COMPATIBILITY IDEOGRAPH-2F937*/ + RTUNI_ALPHA, /* U+02f938: CJK COMPATIBILITY IDEOGRAPH-2F938*/ + RTUNI_ALPHA, /* U+02f939: CJK COMPATIBILITY IDEOGRAPH-2F939*/ + RTUNI_ALPHA, /* U+02f93a: CJK COMPATIBILITY IDEOGRAPH-2F93A*/ + RTUNI_ALPHA, /* U+02f93b: CJK COMPATIBILITY IDEOGRAPH-2F93B*/ + RTUNI_ALPHA, /* U+02f93c: CJK COMPATIBILITY IDEOGRAPH-2F93C*/ + RTUNI_ALPHA, /* U+02f93d: CJK COMPATIBILITY IDEOGRAPH-2F93D*/ + RTUNI_ALPHA, /* U+02f93e: CJK COMPATIBILITY IDEOGRAPH-2F93E*/ + RTUNI_ALPHA, /* U+02f93f: CJK COMPATIBILITY IDEOGRAPH-2F93F*/ + RTUNI_ALPHA, /* U+02f940: CJK COMPATIBILITY IDEOGRAPH-2F940*/ + RTUNI_ALPHA, /* U+02f941: CJK COMPATIBILITY IDEOGRAPH-2F941*/ + RTUNI_ALPHA, /* U+02f942: CJK COMPATIBILITY IDEOGRAPH-2F942*/ + RTUNI_ALPHA, /* U+02f943: CJK COMPATIBILITY IDEOGRAPH-2F943*/ + RTUNI_ALPHA, /* U+02f944: CJK COMPATIBILITY IDEOGRAPH-2F944*/ + RTUNI_ALPHA, /* U+02f945: CJK COMPATIBILITY IDEOGRAPH-2F945*/ + RTUNI_ALPHA, /* U+02f946: CJK COMPATIBILITY IDEOGRAPH-2F946*/ + RTUNI_ALPHA, /* U+02f947: CJK COMPATIBILITY IDEOGRAPH-2F947*/ + RTUNI_ALPHA, /* U+02f948: CJK COMPATIBILITY IDEOGRAPH-2F948*/ + RTUNI_ALPHA, /* U+02f949: CJK COMPATIBILITY IDEOGRAPH-2F949*/ + RTUNI_ALPHA, /* U+02f94a: CJK COMPATIBILITY IDEOGRAPH-2F94A*/ + RTUNI_ALPHA, /* U+02f94b: CJK COMPATIBILITY IDEOGRAPH-2F94B*/ + RTUNI_ALPHA, /* U+02f94c: CJK COMPATIBILITY IDEOGRAPH-2F94C*/ + RTUNI_ALPHA, /* U+02f94d: CJK COMPATIBILITY IDEOGRAPH-2F94D*/ + RTUNI_ALPHA, /* U+02f94e: CJK COMPATIBILITY IDEOGRAPH-2F94E*/ + RTUNI_ALPHA, /* U+02f94f: CJK COMPATIBILITY IDEOGRAPH-2F94F*/ + RTUNI_ALPHA, /* U+02f950: CJK COMPATIBILITY IDEOGRAPH-2F950*/ + RTUNI_ALPHA, /* U+02f951: CJK COMPATIBILITY IDEOGRAPH-2F951*/ + RTUNI_ALPHA, /* U+02f952: CJK COMPATIBILITY IDEOGRAPH-2F952*/ + RTUNI_ALPHA, /* U+02f953: CJK COMPATIBILITY IDEOGRAPH-2F953*/ + RTUNI_ALPHA, /* U+02f954: CJK COMPATIBILITY IDEOGRAPH-2F954*/ + RTUNI_ALPHA, /* U+02f955: CJK COMPATIBILITY IDEOGRAPH-2F955*/ + RTUNI_ALPHA, /* U+02f956: CJK COMPATIBILITY IDEOGRAPH-2F956*/ + RTUNI_ALPHA, /* U+02f957: CJK COMPATIBILITY IDEOGRAPH-2F957*/ + RTUNI_ALPHA, /* U+02f958: CJK COMPATIBILITY IDEOGRAPH-2F958*/ + RTUNI_ALPHA, /* U+02f959: CJK COMPATIBILITY IDEOGRAPH-2F959*/ + RTUNI_ALPHA, /* U+02f95a: CJK COMPATIBILITY IDEOGRAPH-2F95A*/ + RTUNI_ALPHA, /* U+02f95b: CJK COMPATIBILITY IDEOGRAPH-2F95B*/ + RTUNI_ALPHA, /* U+02f95c: CJK COMPATIBILITY IDEOGRAPH-2F95C*/ + RTUNI_ALPHA, /* U+02f95d: CJK COMPATIBILITY IDEOGRAPH-2F95D*/ + RTUNI_ALPHA, /* U+02f95e: CJK COMPATIBILITY IDEOGRAPH-2F95E*/ + RTUNI_ALPHA, /* U+02f95f: CJK COMPATIBILITY IDEOGRAPH-2F95F*/ + RTUNI_ALPHA, /* U+02f960: CJK COMPATIBILITY IDEOGRAPH-2F960*/ + RTUNI_ALPHA, /* U+02f961: CJK COMPATIBILITY IDEOGRAPH-2F961*/ + RTUNI_ALPHA, /* U+02f962: CJK COMPATIBILITY IDEOGRAPH-2F962*/ + RTUNI_ALPHA, /* U+02f963: CJK COMPATIBILITY IDEOGRAPH-2F963*/ + RTUNI_ALPHA, /* U+02f964: CJK COMPATIBILITY IDEOGRAPH-2F964*/ + RTUNI_ALPHA, /* U+02f965: CJK COMPATIBILITY IDEOGRAPH-2F965*/ + RTUNI_ALPHA, /* U+02f966: CJK COMPATIBILITY IDEOGRAPH-2F966*/ + RTUNI_ALPHA, /* U+02f967: CJK COMPATIBILITY IDEOGRAPH-2F967*/ + RTUNI_ALPHA, /* U+02f968: CJK COMPATIBILITY IDEOGRAPH-2F968*/ + RTUNI_ALPHA, /* U+02f969: CJK COMPATIBILITY IDEOGRAPH-2F969*/ + RTUNI_ALPHA, /* U+02f96a: CJK COMPATIBILITY IDEOGRAPH-2F96A*/ + RTUNI_ALPHA, /* U+02f96b: CJK COMPATIBILITY IDEOGRAPH-2F96B*/ + RTUNI_ALPHA, /* U+02f96c: CJK COMPATIBILITY IDEOGRAPH-2F96C*/ + RTUNI_ALPHA, /* U+02f96d: CJK COMPATIBILITY IDEOGRAPH-2F96D*/ + RTUNI_ALPHA, /* U+02f96e: CJK COMPATIBILITY IDEOGRAPH-2F96E*/ + RTUNI_ALPHA, /* U+02f96f: CJK COMPATIBILITY IDEOGRAPH-2F96F*/ + RTUNI_ALPHA, /* U+02f970: CJK COMPATIBILITY IDEOGRAPH-2F970*/ + RTUNI_ALPHA, /* U+02f971: CJK COMPATIBILITY IDEOGRAPH-2F971*/ + RTUNI_ALPHA, /* U+02f972: CJK COMPATIBILITY IDEOGRAPH-2F972*/ + RTUNI_ALPHA, /* U+02f973: CJK COMPATIBILITY IDEOGRAPH-2F973*/ + RTUNI_ALPHA, /* U+02f974: CJK COMPATIBILITY IDEOGRAPH-2F974*/ + RTUNI_ALPHA, /* U+02f975: CJK COMPATIBILITY IDEOGRAPH-2F975*/ + RTUNI_ALPHA, /* U+02f976: CJK COMPATIBILITY IDEOGRAPH-2F976*/ + RTUNI_ALPHA, /* U+02f977: CJK COMPATIBILITY IDEOGRAPH-2F977*/ + RTUNI_ALPHA, /* U+02f978: CJK COMPATIBILITY IDEOGRAPH-2F978*/ + RTUNI_ALPHA, /* U+02f979: CJK COMPATIBILITY IDEOGRAPH-2F979*/ + RTUNI_ALPHA, /* U+02f97a: CJK COMPATIBILITY IDEOGRAPH-2F97A*/ + RTUNI_ALPHA, /* U+02f97b: CJK COMPATIBILITY IDEOGRAPH-2F97B*/ + RTUNI_ALPHA, /* U+02f97c: CJK COMPATIBILITY IDEOGRAPH-2F97C*/ + RTUNI_ALPHA, /* U+02f97d: CJK COMPATIBILITY IDEOGRAPH-2F97D*/ + RTUNI_ALPHA, /* U+02f97e: CJK COMPATIBILITY IDEOGRAPH-2F97E*/ + RTUNI_ALPHA, /* U+02f97f: CJK COMPATIBILITY IDEOGRAPH-2F97F*/ + RTUNI_ALPHA, /* U+02f980: CJK COMPATIBILITY IDEOGRAPH-2F980*/ + RTUNI_ALPHA, /* U+02f981: CJK COMPATIBILITY IDEOGRAPH-2F981*/ + RTUNI_ALPHA, /* U+02f982: CJK COMPATIBILITY IDEOGRAPH-2F982*/ + RTUNI_ALPHA, /* U+02f983: CJK COMPATIBILITY IDEOGRAPH-2F983*/ + RTUNI_ALPHA, /* U+02f984: CJK COMPATIBILITY IDEOGRAPH-2F984*/ + RTUNI_ALPHA, /* U+02f985: CJK COMPATIBILITY IDEOGRAPH-2F985*/ + RTUNI_ALPHA, /* U+02f986: CJK COMPATIBILITY IDEOGRAPH-2F986*/ + RTUNI_ALPHA, /* U+02f987: CJK COMPATIBILITY IDEOGRAPH-2F987*/ + RTUNI_ALPHA, /* U+02f988: CJK COMPATIBILITY IDEOGRAPH-2F988*/ + RTUNI_ALPHA, /* U+02f989: CJK COMPATIBILITY IDEOGRAPH-2F989*/ + RTUNI_ALPHA, /* U+02f98a: CJK COMPATIBILITY IDEOGRAPH-2F98A*/ + RTUNI_ALPHA, /* U+02f98b: CJK COMPATIBILITY IDEOGRAPH-2F98B*/ + RTUNI_ALPHA, /* U+02f98c: CJK COMPATIBILITY IDEOGRAPH-2F98C*/ + RTUNI_ALPHA, /* U+02f98d: CJK COMPATIBILITY IDEOGRAPH-2F98D*/ + RTUNI_ALPHA, /* U+02f98e: CJK COMPATIBILITY IDEOGRAPH-2F98E*/ + RTUNI_ALPHA, /* U+02f98f: CJK COMPATIBILITY IDEOGRAPH-2F98F*/ + RTUNI_ALPHA, /* U+02f990: CJK COMPATIBILITY IDEOGRAPH-2F990*/ + RTUNI_ALPHA, /* U+02f991: CJK COMPATIBILITY IDEOGRAPH-2F991*/ + RTUNI_ALPHA, /* U+02f992: CJK COMPATIBILITY IDEOGRAPH-2F992*/ + RTUNI_ALPHA, /* U+02f993: CJK COMPATIBILITY IDEOGRAPH-2F993*/ + RTUNI_ALPHA, /* U+02f994: CJK COMPATIBILITY IDEOGRAPH-2F994*/ + RTUNI_ALPHA, /* U+02f995: CJK COMPATIBILITY IDEOGRAPH-2F995*/ + RTUNI_ALPHA, /* U+02f996: CJK COMPATIBILITY IDEOGRAPH-2F996*/ + RTUNI_ALPHA, /* U+02f997: CJK COMPATIBILITY IDEOGRAPH-2F997*/ + RTUNI_ALPHA, /* U+02f998: CJK COMPATIBILITY IDEOGRAPH-2F998*/ + RTUNI_ALPHA, /* U+02f999: CJK COMPATIBILITY IDEOGRAPH-2F999*/ + RTUNI_ALPHA, /* U+02f99a: CJK COMPATIBILITY IDEOGRAPH-2F99A*/ + RTUNI_ALPHA, /* U+02f99b: CJK COMPATIBILITY IDEOGRAPH-2F99B*/ + RTUNI_ALPHA, /* U+02f99c: CJK COMPATIBILITY IDEOGRAPH-2F99C*/ + RTUNI_ALPHA, /* U+02f99d: CJK COMPATIBILITY IDEOGRAPH-2F99D*/ + RTUNI_ALPHA, /* U+02f99e: CJK COMPATIBILITY IDEOGRAPH-2F99E*/ + RTUNI_ALPHA, /* U+02f99f: CJK COMPATIBILITY IDEOGRAPH-2F99F*/ + RTUNI_ALPHA, /* U+02f9a0: CJK COMPATIBILITY IDEOGRAPH-2F9A0*/ + RTUNI_ALPHA, /* U+02f9a1: CJK COMPATIBILITY IDEOGRAPH-2F9A1*/ + RTUNI_ALPHA, /* U+02f9a2: CJK COMPATIBILITY IDEOGRAPH-2F9A2*/ + RTUNI_ALPHA, /* U+02f9a3: CJK COMPATIBILITY IDEOGRAPH-2F9A3*/ + RTUNI_ALPHA, /* U+02f9a4: CJK COMPATIBILITY IDEOGRAPH-2F9A4*/ + RTUNI_ALPHA, /* U+02f9a5: CJK COMPATIBILITY IDEOGRAPH-2F9A5*/ + RTUNI_ALPHA, /* U+02f9a6: CJK COMPATIBILITY IDEOGRAPH-2F9A6*/ + RTUNI_ALPHA, /* U+02f9a7: CJK COMPATIBILITY IDEOGRAPH-2F9A7*/ + RTUNI_ALPHA, /* U+02f9a8: CJK COMPATIBILITY IDEOGRAPH-2F9A8*/ + RTUNI_ALPHA, /* U+02f9a9: CJK COMPATIBILITY IDEOGRAPH-2F9A9*/ + RTUNI_ALPHA, /* U+02f9aa: CJK COMPATIBILITY IDEOGRAPH-2F9AA*/ + RTUNI_ALPHA, /* U+02f9ab: CJK COMPATIBILITY IDEOGRAPH-2F9AB*/ + RTUNI_ALPHA, /* U+02f9ac: CJK COMPATIBILITY IDEOGRAPH-2F9AC*/ + RTUNI_ALPHA, /* U+02f9ad: CJK COMPATIBILITY IDEOGRAPH-2F9AD*/ + RTUNI_ALPHA, /* U+02f9ae: CJK COMPATIBILITY IDEOGRAPH-2F9AE*/ + RTUNI_ALPHA, /* U+02f9af: CJK COMPATIBILITY IDEOGRAPH-2F9AF*/ + RTUNI_ALPHA, /* U+02f9b0: CJK COMPATIBILITY IDEOGRAPH-2F9B0*/ + RTUNI_ALPHA, /* U+02f9b1: CJK COMPATIBILITY IDEOGRAPH-2F9B1*/ + RTUNI_ALPHA, /* U+02f9b2: CJK COMPATIBILITY IDEOGRAPH-2F9B2*/ + RTUNI_ALPHA, /* U+02f9b3: CJK COMPATIBILITY IDEOGRAPH-2F9B3*/ + RTUNI_ALPHA, /* U+02f9b4: CJK COMPATIBILITY IDEOGRAPH-2F9B4*/ + RTUNI_ALPHA, /* U+02f9b5: CJK COMPATIBILITY IDEOGRAPH-2F9B5*/ + RTUNI_ALPHA, /* U+02f9b6: CJK COMPATIBILITY IDEOGRAPH-2F9B6*/ + RTUNI_ALPHA, /* U+02f9b7: CJK COMPATIBILITY IDEOGRAPH-2F9B7*/ + RTUNI_ALPHA, /* U+02f9b8: CJK COMPATIBILITY IDEOGRAPH-2F9B8*/ + RTUNI_ALPHA, /* U+02f9b9: CJK COMPATIBILITY IDEOGRAPH-2F9B9*/ + RTUNI_ALPHA, /* U+02f9ba: CJK COMPATIBILITY IDEOGRAPH-2F9BA*/ + RTUNI_ALPHA, /* U+02f9bb: CJK COMPATIBILITY IDEOGRAPH-2F9BB*/ + RTUNI_ALPHA, /* U+02f9bc: CJK COMPATIBILITY IDEOGRAPH-2F9BC*/ + RTUNI_ALPHA, /* U+02f9bd: CJK COMPATIBILITY IDEOGRAPH-2F9BD*/ + RTUNI_ALPHA, /* U+02f9be: CJK COMPATIBILITY IDEOGRAPH-2F9BE*/ + RTUNI_ALPHA, /* U+02f9bf: CJK COMPATIBILITY IDEOGRAPH-2F9BF*/ + RTUNI_ALPHA, /* U+02f9c0: CJK COMPATIBILITY IDEOGRAPH-2F9C0*/ + RTUNI_ALPHA, /* U+02f9c1: CJK COMPATIBILITY IDEOGRAPH-2F9C1*/ + RTUNI_ALPHA, /* U+02f9c2: CJK COMPATIBILITY IDEOGRAPH-2F9C2*/ + RTUNI_ALPHA, /* U+02f9c3: CJK COMPATIBILITY IDEOGRAPH-2F9C3*/ + RTUNI_ALPHA, /* U+02f9c4: CJK COMPATIBILITY IDEOGRAPH-2F9C4*/ + RTUNI_ALPHA, /* U+02f9c5: CJK COMPATIBILITY IDEOGRAPH-2F9C5*/ + RTUNI_ALPHA, /* U+02f9c6: CJK COMPATIBILITY IDEOGRAPH-2F9C6*/ + RTUNI_ALPHA, /* U+02f9c7: CJK COMPATIBILITY IDEOGRAPH-2F9C7*/ + RTUNI_ALPHA, /* U+02f9c8: CJK COMPATIBILITY IDEOGRAPH-2F9C8*/ + RTUNI_ALPHA, /* U+02f9c9: CJK COMPATIBILITY IDEOGRAPH-2F9C9*/ + RTUNI_ALPHA, /* U+02f9ca: CJK COMPATIBILITY IDEOGRAPH-2F9CA*/ + RTUNI_ALPHA, /* U+02f9cb: CJK COMPATIBILITY IDEOGRAPH-2F9CB*/ + RTUNI_ALPHA, /* U+02f9cc: CJK COMPATIBILITY IDEOGRAPH-2F9CC*/ + RTUNI_ALPHA, /* U+02f9cd: CJK COMPATIBILITY IDEOGRAPH-2F9CD*/ + RTUNI_ALPHA, /* U+02f9ce: CJK COMPATIBILITY IDEOGRAPH-2F9CE*/ + RTUNI_ALPHA, /* U+02f9cf: CJK COMPATIBILITY IDEOGRAPH-2F9CF*/ + RTUNI_ALPHA, /* U+02f9d0: CJK COMPATIBILITY IDEOGRAPH-2F9D0*/ + RTUNI_ALPHA, /* U+02f9d1: CJK COMPATIBILITY IDEOGRAPH-2F9D1*/ + RTUNI_ALPHA, /* U+02f9d2: CJK COMPATIBILITY IDEOGRAPH-2F9D2*/ + RTUNI_ALPHA, /* U+02f9d3: CJK COMPATIBILITY IDEOGRAPH-2F9D3*/ + RTUNI_ALPHA, /* U+02f9d4: CJK COMPATIBILITY IDEOGRAPH-2F9D4*/ + RTUNI_ALPHA, /* U+02f9d5: CJK COMPATIBILITY IDEOGRAPH-2F9D5*/ + RTUNI_ALPHA, /* U+02f9d6: CJK COMPATIBILITY IDEOGRAPH-2F9D6*/ + RTUNI_ALPHA, /* U+02f9d7: CJK COMPATIBILITY IDEOGRAPH-2F9D7*/ + RTUNI_ALPHA, /* U+02f9d8: CJK COMPATIBILITY IDEOGRAPH-2F9D8*/ + RTUNI_ALPHA, /* U+02f9d9: CJK COMPATIBILITY IDEOGRAPH-2F9D9*/ + RTUNI_ALPHA, /* U+02f9da: CJK COMPATIBILITY IDEOGRAPH-2F9DA*/ + RTUNI_ALPHA, /* U+02f9db: CJK COMPATIBILITY IDEOGRAPH-2F9DB*/ + RTUNI_ALPHA, /* U+02f9dc: CJK COMPATIBILITY IDEOGRAPH-2F9DC*/ + RTUNI_ALPHA, /* U+02f9dd: CJK COMPATIBILITY IDEOGRAPH-2F9DD*/ + RTUNI_ALPHA, /* U+02f9de: CJK COMPATIBILITY IDEOGRAPH-2F9DE*/ + RTUNI_ALPHA, /* U+02f9df: CJK COMPATIBILITY IDEOGRAPH-2F9DF*/ + RTUNI_ALPHA, /* U+02f9e0: CJK COMPATIBILITY IDEOGRAPH-2F9E0*/ + RTUNI_ALPHA, /* U+02f9e1: CJK COMPATIBILITY IDEOGRAPH-2F9E1*/ + RTUNI_ALPHA, /* U+02f9e2: CJK COMPATIBILITY IDEOGRAPH-2F9E2*/ + RTUNI_ALPHA, /* U+02f9e3: CJK COMPATIBILITY IDEOGRAPH-2F9E3*/ + RTUNI_ALPHA, /* U+02f9e4: CJK COMPATIBILITY IDEOGRAPH-2F9E4*/ + RTUNI_ALPHA, /* U+02f9e5: CJK COMPATIBILITY IDEOGRAPH-2F9E5*/ + RTUNI_ALPHA, /* U+02f9e6: CJK COMPATIBILITY IDEOGRAPH-2F9E6*/ + RTUNI_ALPHA, /* U+02f9e7: CJK COMPATIBILITY IDEOGRAPH-2F9E7*/ + RTUNI_ALPHA, /* U+02f9e8: CJK COMPATIBILITY IDEOGRAPH-2F9E8*/ + RTUNI_ALPHA, /* U+02f9e9: CJK COMPATIBILITY IDEOGRAPH-2F9E9*/ + RTUNI_ALPHA, /* U+02f9ea: CJK COMPATIBILITY IDEOGRAPH-2F9EA*/ + RTUNI_ALPHA, /* U+02f9eb: CJK COMPATIBILITY IDEOGRAPH-2F9EB*/ + RTUNI_ALPHA, /* U+02f9ec: CJK COMPATIBILITY IDEOGRAPH-2F9EC*/ + RTUNI_ALPHA, /* U+02f9ed: CJK COMPATIBILITY IDEOGRAPH-2F9ED*/ + RTUNI_ALPHA, /* U+02f9ee: CJK COMPATIBILITY IDEOGRAPH-2F9EE*/ + RTUNI_ALPHA, /* U+02f9ef: CJK COMPATIBILITY IDEOGRAPH-2F9EF*/ + RTUNI_ALPHA, /* U+02f9f0: CJK COMPATIBILITY IDEOGRAPH-2F9F0*/ + RTUNI_ALPHA, /* U+02f9f1: CJK COMPATIBILITY IDEOGRAPH-2F9F1*/ + RTUNI_ALPHA, /* U+02f9f2: CJK COMPATIBILITY IDEOGRAPH-2F9F2*/ + RTUNI_ALPHA, /* U+02f9f3: CJK COMPATIBILITY IDEOGRAPH-2F9F3*/ + RTUNI_ALPHA, /* U+02f9f4: CJK COMPATIBILITY IDEOGRAPH-2F9F4*/ + RTUNI_ALPHA, /* U+02f9f5: CJK COMPATIBILITY IDEOGRAPH-2F9F5*/ + RTUNI_ALPHA, /* U+02f9f6: CJK COMPATIBILITY IDEOGRAPH-2F9F6*/ + RTUNI_ALPHA, /* U+02f9f7: CJK COMPATIBILITY IDEOGRAPH-2F9F7*/ + RTUNI_ALPHA, /* U+02f9f8: CJK COMPATIBILITY IDEOGRAPH-2F9F8*/ + RTUNI_ALPHA, /* U+02f9f9: CJK COMPATIBILITY IDEOGRAPH-2F9F9*/ + RTUNI_ALPHA, /* U+02f9fa: CJK COMPATIBILITY IDEOGRAPH-2F9FA*/ + RTUNI_ALPHA, /* U+02f9fb: CJK COMPATIBILITY IDEOGRAPH-2F9FB*/ + RTUNI_ALPHA, /* U+02f9fc: CJK COMPATIBILITY IDEOGRAPH-2F9FC*/ + RTUNI_ALPHA, /* U+02f9fd: CJK COMPATIBILITY IDEOGRAPH-2F9FD*/ + RTUNI_ALPHA, /* U+02f9fe: CJK COMPATIBILITY IDEOGRAPH-2F9FE*/ + RTUNI_ALPHA, /* U+02f9ff: CJK COMPATIBILITY IDEOGRAPH-2F9FF*/ + RTUNI_ALPHA, /* U+02fa00: CJK COMPATIBILITY IDEOGRAPH-2FA00*/ + RTUNI_ALPHA, /* U+02fa01: CJK COMPATIBILITY IDEOGRAPH-2FA01*/ + RTUNI_ALPHA, /* U+02fa02: CJK COMPATIBILITY IDEOGRAPH-2FA02*/ + RTUNI_ALPHA, /* U+02fa03: CJK COMPATIBILITY IDEOGRAPH-2FA03*/ + RTUNI_ALPHA, /* U+02fa04: CJK COMPATIBILITY IDEOGRAPH-2FA04*/ + RTUNI_ALPHA, /* U+02fa05: CJK COMPATIBILITY IDEOGRAPH-2FA05*/ + RTUNI_ALPHA, /* U+02fa06: CJK COMPATIBILITY IDEOGRAPH-2FA06*/ + RTUNI_ALPHA, /* U+02fa07: CJK COMPATIBILITY IDEOGRAPH-2FA07*/ + RTUNI_ALPHA, /* U+02fa08: CJK COMPATIBILITY IDEOGRAPH-2FA08*/ + RTUNI_ALPHA, /* U+02fa09: CJK COMPATIBILITY IDEOGRAPH-2FA09*/ + RTUNI_ALPHA, /* U+02fa0a: CJK COMPATIBILITY IDEOGRAPH-2FA0A*/ + RTUNI_ALPHA, /* U+02fa0b: CJK COMPATIBILITY IDEOGRAPH-2FA0B*/ + RTUNI_ALPHA, /* U+02fa0c: CJK COMPATIBILITY IDEOGRAPH-2FA0C*/ + RTUNI_ALPHA, /* U+02fa0d: CJK COMPATIBILITY IDEOGRAPH-2FA0D*/ + RTUNI_ALPHA, /* U+02fa0e: CJK COMPATIBILITY IDEOGRAPH-2FA0E*/ + RTUNI_ALPHA, /* U+02fa0f: CJK COMPATIBILITY IDEOGRAPH-2FA0F*/ + RTUNI_ALPHA, /* U+02fa10: CJK COMPATIBILITY IDEOGRAPH-2FA10*/ + RTUNI_ALPHA, /* U+02fa11: CJK COMPATIBILITY IDEOGRAPH-2FA11*/ + RTUNI_ALPHA, /* U+02fa12: CJK COMPATIBILITY IDEOGRAPH-2FA12*/ + RTUNI_ALPHA, /* U+02fa13: CJK COMPATIBILITY IDEOGRAPH-2FA13*/ + RTUNI_ALPHA, /* U+02fa14: CJK COMPATIBILITY IDEOGRAPH-2FA14*/ + RTUNI_ALPHA, /* U+02fa15: CJK COMPATIBILITY IDEOGRAPH-2FA15*/ + RTUNI_ALPHA, /* U+02fa16: CJK COMPATIBILITY IDEOGRAPH-2FA16*/ + RTUNI_ALPHA, /* U+02fa17: CJK COMPATIBILITY IDEOGRAPH-2FA17*/ + RTUNI_ALPHA, /* U+02fa18: CJK COMPATIBILITY IDEOGRAPH-2FA18*/ + RTUNI_ALPHA, /* U+02fa19: CJK COMPATIBILITY IDEOGRAPH-2FA19*/ + RTUNI_ALPHA, /* U+02fa1a: CJK COMPATIBILITY IDEOGRAPH-2FA1A*/ + RTUNI_ALPHA, /* U+02fa1b: CJK COMPATIBILITY IDEOGRAPH-2FA1B*/ + RTUNI_ALPHA, /* U+02fa1c: CJK COMPATIBILITY IDEOGRAPH-2FA1C*/ + RTUNI_ALPHA, /* U+02fa1d: CJK COMPATIBILITY IDEOGRAPH-2FA1D*/ +}; + + +RT_DECL_DATA_CONST(const RTUNIFLAGSRANGE) g_aRTUniFlagsRanges[] = +{ + { 0x000000, 0x003401, &g_afRTUniFlags0x000000[0] }, + { 0x004db5, 0x004e01, &g_afRTUniFlags0x004db5[0] }, + { 0x009fcc, 0x00d7fc, &g_afRTUniFlags0x009fcc[0] }, + { 0x00f900, 0x01342f, &g_afRTUniFlags0x00f900[0] }, + { 0x016800, 0x016fa0, &g_afRTUniFlags0x016800[0] }, + { 0x01b000, 0x01b002, &g_afRTUniFlags0x01b000[0] }, + { 0x01d400, 0x01d800, &g_afRTUniFlags0x01d400[0] }, + { 0x01ee00, 0x01eebc, &g_afRTUniFlags0x01ee00[0] }, + { 0x020000, 0x020001, &g_afRTUniFlags0x020000[0] }, + { 0x02a6d6, 0x02a701, &g_afRTUniFlags0x02a6d6[0] }, + { 0x02b734, 0x02b81e, &g_afRTUniFlags0x02b734[0] }, + { 0x02f800, 0x02fa1e, &g_afRTUniFlags0x02f800[0] }, + { ~(RTUNICP)0, ~(RTUNICP)0, NULL } +}; + + diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Runtime/common/string/unidata-lower.cpp virtualbox-4.1.44-dfsg/src/VBox/Runtime/common/string/unidata-lower.cpp --- virtualbox-4.1.12-dfsg/src/VBox/Runtime/common/string/unidata-lower.cpp 1970-01-01 00:00:00.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Runtime/common/string/unidata-lower.cpp 2015-11-11 15:09:04.000000000 +0000 @@ -0,0 +1,3902 @@ +/* $Id: unidata-lower.cpp $ */ +/** @file + * IPRT - Unicode Tables. + * + * Automatically Generated from d:\src\unicode\6.3.0\ + * by ..\..\..\..\..\out\win.amd64\debug\obj\uniread\uniread.exe (May 22 2014 19:07:40) + */ + +/* + * Copyright (C) 2006-2014 Oracle Corporation + * + * This file is part of VirtualBox Open Source Edition (OSE), as + * available from http://www.virtualbox.org. This file is free software; + * you can redistribute it and/or modify it under the terms of the GNU + * General Public License (GPL) as published by the Free Software + * Foundation, in version 2 as it comes in the "COPYING" file of the + * VirtualBox OSE distribution. VirtualBox OSE is distributed in the + * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind. + * + * The contents of this file may alternatively be used under the terms + * of the Common Development and Distribution License Version 1.0 + * (CDDL) only, as it comes in the "COPYING.CDDL" file of the + * VirtualBox OSE distribution, in which case the provisions of the + * CDDL are applicable instead of those of the GPL. + * + * You may elect to license modified versions of this file under the + * terms and conditions of either the GPL or the CDDL or both. + */ + +#include + +static const RTUNICP g_afRTUniLower0x000000[] = +{ + 0x00, /* U+000000: */ + 0x01, /* U+000001: */ + 0x02, /* U+000002: */ + 0x03, /* U+000003: */ + 0x04, /* U+000004: */ + 0x05, /* U+000005: */ + 0x06, /* U+000006: */ + 0x07, /* U+000007: */ + 0x08, /* U+000008: */ + 0x09, /* U+000009: */ + 0x0a, /* U+00000a: */ + 0x0b, /* U+00000b: */ + 0x0c, /* U+00000c: */ + 0x0d, /* U+00000d: */ + 0x0e, /* U+00000e: */ + 0x0f, /* U+00000f: */ + 0x10, /* U+000010: */ + 0x11, /* U+000011: */ + 0x12, /* U+000012: */ + 0x13, /* U+000013: */ + 0x14, /* U+000014: */ + 0x15, /* U+000015: */ + 0x16, /* U+000016: */ + 0x17, /* U+000017: */ + 0x18, /* U+000018: */ + 0x19, /* U+000019: */ + 0x1a, /* U+00001a: */ + 0x1b, /* U+00001b: */ + 0x1c, /* U+00001c: */ + 0x1d, /* U+00001d: */ + 0x1e, /* U+00001e: */ + 0x1f, /* U+00001f: */ + 0x20, /* U+000020: SPACE*/ + 0x21, /* U+000021: EXCLAMATION MARK*/ + 0x22, /* U+000022: QUOTATION MARK*/ + 0x23, /* U+000023: NUMBER SIGN*/ + 0x24, /* U+000024: DOLLAR SIGN*/ + 0x25, /* U+000025: PERCENT SIGN*/ + 0x26, /* U+000026: AMPERSAND*/ + 0x27, /* U+000027: APOSTROPHE*/ + 0x28, /* U+000028: LEFT PARENTHESIS*/ + 0x29, /* U+000029: RIGHT PARENTHESIS*/ + 0x2a, /* U+00002a: ASTERISK*/ + 0x2b, /* U+00002b: PLUS SIGN*/ + 0x2c, /* U+00002c: COMMA*/ + 0x2d, /* U+00002d: HYPHEN-MINUS*/ + 0x2e, /* U+00002e: FULL STOP*/ + 0x2f, /* U+00002f: SOLIDUS*/ + 0x30, /* U+000030: DIGIT ZERO*/ + 0x31, /* U+000031: DIGIT ONE*/ + 0x32, /* U+000032: DIGIT TWO*/ + 0x33, /* U+000033: DIGIT THREE*/ + 0x34, /* U+000034: DIGIT FOUR*/ + 0x35, /* U+000035: DIGIT FIVE*/ + 0x36, /* U+000036: DIGIT SIX*/ + 0x37, /* U+000037: DIGIT SEVEN*/ + 0x38, /* U+000038: DIGIT EIGHT*/ + 0x39, /* U+000039: DIGIT NINE*/ + 0x3a, /* U+00003a: COLON*/ + 0x3b, /* U+00003b: SEMICOLON*/ + 0x3c, /* U+00003c: LESS-THAN SIGN*/ + 0x3d, /* U+00003d: EQUALS SIGN*/ + 0x3e, /* U+00003e: GREATER-THAN SIGN*/ + 0x3f, /* U+00003f: QUESTION MARK*/ + 0x40, /* U+000040: COMMERCIAL AT*/ + 0x61, /* U+000041: LATIN CAPITAL LETTER A*/ + 0x62, /* U+000042: LATIN CAPITAL LETTER B*/ + 0x63, /* U+000043: LATIN CAPITAL LETTER C*/ + 0x64, /* U+000044: LATIN CAPITAL LETTER D*/ + 0x65, /* U+000045: LATIN CAPITAL LETTER E*/ + 0x66, /* U+000046: LATIN CAPITAL LETTER F*/ + 0x67, /* U+000047: LATIN CAPITAL LETTER G*/ + 0x68, /* U+000048: LATIN CAPITAL LETTER H*/ + 0x69, /* U+000049: LATIN CAPITAL LETTER I*/ + 0x6a, /* U+00004a: LATIN CAPITAL LETTER J*/ + 0x6b, /* U+00004b: LATIN CAPITAL LETTER K*/ + 0x6c, /* U+00004c: LATIN CAPITAL LETTER L*/ + 0x6d, /* U+00004d: LATIN CAPITAL LETTER M*/ + 0x6e, /* U+00004e: LATIN CAPITAL LETTER N*/ + 0x6f, /* U+00004f: LATIN CAPITAL LETTER O*/ + 0x70, /* U+000050: LATIN CAPITAL LETTER P*/ + 0x71, /* U+000051: LATIN CAPITAL LETTER Q*/ + 0x72, /* U+000052: LATIN CAPITAL LETTER R*/ + 0x73, /* U+000053: LATIN CAPITAL LETTER S*/ + 0x74, /* U+000054: LATIN CAPITAL LETTER T*/ + 0x75, /* U+000055: LATIN CAPITAL LETTER U*/ + 0x76, /* U+000056: LATIN CAPITAL LETTER V*/ + 0x77, /* U+000057: LATIN CAPITAL LETTER W*/ + 0x78, /* U+000058: LATIN CAPITAL LETTER X*/ + 0x79, /* U+000059: LATIN CAPITAL LETTER Y*/ + 0x7a, /* U+00005a: LATIN CAPITAL LETTER Z*/ + 0x5b, /* U+00005b: LEFT SQUARE BRACKET*/ + 0x5c, /* U+00005c: REVERSE SOLIDUS*/ + 0x5d, /* U+00005d: RIGHT SQUARE BRACKET*/ + 0x5e, /* U+00005e: CIRCUMFLEX ACCENT*/ + 0x5f, /* U+00005f: LOW LINE*/ + 0x60, /* U+000060: GRAVE ACCENT*/ + 0x61, /* U+000061: LATIN SMALL LETTER A*/ + 0x62, /* U+000062: LATIN SMALL LETTER B*/ + 0x63, /* U+000063: LATIN SMALL LETTER C*/ + 0x64, /* U+000064: LATIN SMALL LETTER D*/ + 0x65, /* U+000065: LATIN SMALL LETTER E*/ + 0x66, /* U+000066: LATIN SMALL LETTER F*/ + 0x67, /* U+000067: LATIN SMALL LETTER G*/ + 0x68, /* U+000068: LATIN SMALL LETTER H*/ + 0x69, /* U+000069: LATIN SMALL LETTER I*/ + 0x6a, /* U+00006a: LATIN SMALL LETTER J*/ + 0x6b, /* U+00006b: LATIN SMALL LETTER K*/ + 0x6c, /* U+00006c: LATIN SMALL LETTER L*/ + 0x6d, /* U+00006d: LATIN SMALL LETTER M*/ + 0x6e, /* U+00006e: LATIN SMALL LETTER N*/ + 0x6f, /* U+00006f: LATIN SMALL LETTER O*/ + 0x70, /* U+000070: LATIN SMALL LETTER P*/ + 0x71, /* U+000071: LATIN SMALL LETTER Q*/ + 0x72, /* U+000072: LATIN SMALL LETTER R*/ + 0x73, /* U+000073: LATIN SMALL LETTER S*/ + 0x74, /* U+000074: LATIN SMALL LETTER T*/ + 0x75, /* U+000075: LATIN SMALL LETTER U*/ + 0x76, /* U+000076: LATIN SMALL LETTER V*/ + 0x77, /* U+000077: LATIN SMALL LETTER W*/ + 0x78, /* U+000078: LATIN SMALL LETTER X*/ + 0x79, /* U+000079: LATIN SMALL LETTER Y*/ + 0x7a, /* U+00007a: LATIN SMALL LETTER Z*/ + 0x7b, /* U+00007b: LEFT CURLY BRACKET*/ + 0x7c, /* U+00007c: VERTICAL LINE*/ + 0x7d, /* U+00007d: RIGHT CURLY BRACKET*/ + 0x7e, /* U+00007e: TILDE*/ + 0x7f, /* U+00007f: */ + 0x80, /* U+000080: */ + 0x81, /* U+000081: */ + 0x82, /* U+000082: */ + 0x83, /* U+000083: */ + 0x84, /* U+000084: */ + 0x85, /* U+000085: */ + 0x86, /* U+000086: */ + 0x87, /* U+000087: */ + 0x88, /* U+000088: */ + 0x89, /* U+000089: */ + 0x8a, /* U+00008a: */ + 0x8b, /* U+00008b: */ + 0x8c, /* U+00008c: */ + 0x8d, /* U+00008d: */ + 0x8e, /* U+00008e: */ + 0x8f, /* U+00008f: */ + 0x90, /* U+000090: */ + 0x91, /* U+000091: */ + 0x92, /* U+000092: */ + 0x93, /* U+000093: */ + 0x94, /* U+000094: */ + 0x95, /* U+000095: */ + 0x96, /* U+000096: */ + 0x97, /* U+000097: */ + 0x98, /* U+000098: */ + 0x99, /* U+000099: */ + 0x9a, /* U+00009a: */ + 0x9b, /* U+00009b: */ + 0x9c, /* U+00009c: */ + 0x9d, /* U+00009d: */ + 0x9e, /* U+00009e: */ + 0x9f, /* U+00009f: */ + 0xa0, /* U+0000a0: NO-BREAK SPACE*/ + 0xa1, /* U+0000a1: INVERTED EXCLAMATION MARK*/ + 0xa2, /* U+0000a2: CENT SIGN*/ + 0xa3, /* U+0000a3: POUND SIGN*/ + 0xa4, /* U+0000a4: CURRENCY SIGN*/ + 0xa5, /* U+0000a5: YEN SIGN*/ + 0xa6, /* U+0000a6: BROKEN BAR*/ + 0xa7, /* U+0000a7: SECTION SIGN*/ + 0xa8, /* U+0000a8: DIAERESIS*/ + 0xa9, /* U+0000a9: COPYRIGHT SIGN*/ + 0xaa, /* U+0000aa: FEMININE ORDINAL INDICATOR*/ + 0xab, /* U+0000ab: LEFT-POINTING DOUBLE ANGLE QUOTATION MARK*/ + 0xac, /* U+0000ac: NOT SIGN*/ + 0xad, /* U+0000ad: SOFT HYPHEN*/ + 0xae, /* U+0000ae: REGISTERED SIGN*/ + 0xaf, /* U+0000af: MACRON*/ + 0xb0, /* U+0000b0: DEGREE SIGN*/ + 0xb1, /* U+0000b1: PLUS-MINUS SIGN*/ + 0xb2, /* U+0000b2: SUPERSCRIPT TWO*/ + 0xb3, /* U+0000b3: SUPERSCRIPT THREE*/ + 0xb4, /* U+0000b4: ACUTE ACCENT*/ + 0xb5, /* U+0000b5: MICRO SIGN*/ + 0xb6, /* U+0000b6: PILCROW SIGN*/ + 0xb7, /* U+0000b7: MIDDLE DOT*/ + 0xb8, /* U+0000b8: CEDILLA*/ + 0xb9, /* U+0000b9: SUPERSCRIPT ONE*/ + 0xba, /* U+0000ba: MASCULINE ORDINAL INDICATOR*/ + 0xbb, /* U+0000bb: RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK*/ + 0xbc, /* U+0000bc: VULGAR FRACTION ONE QUARTER*/ + 0xbd, /* U+0000bd: VULGAR FRACTION ONE HALF*/ + 0xbe, /* U+0000be: VULGAR FRACTION THREE QUARTERS*/ + 0xbf, /* U+0000bf: INVERTED QUESTION MARK*/ + 0xe0, /* U+0000c0: LATIN CAPITAL LETTER A WITH GRAVE*/ + 0xe1, /* U+0000c1: LATIN CAPITAL LETTER A WITH ACUTE*/ + 0xe2, /* U+0000c2: LATIN CAPITAL LETTER A WITH CIRCUMFLEX*/ + 0xe3, /* U+0000c3: LATIN CAPITAL LETTER A WITH TILDE*/ + 0xe4, /* U+0000c4: LATIN CAPITAL LETTER A WITH DIAERESIS*/ + 0xe5, /* U+0000c5: LATIN CAPITAL LETTER A WITH RING ABOVE*/ + 0xe6, /* U+0000c6: LATIN CAPITAL LETTER AE*/ + 0xe7, /* U+0000c7: LATIN CAPITAL LETTER C WITH CEDILLA*/ + 0xe8, /* U+0000c8: LATIN CAPITAL LETTER E WITH GRAVE*/ + 0xe9, /* U+0000c9: LATIN CAPITAL LETTER E WITH ACUTE*/ + 0xea, /* U+0000ca: LATIN CAPITAL LETTER E WITH CIRCUMFLEX*/ + 0xeb, /* U+0000cb: LATIN CAPITAL LETTER E WITH DIAERESIS*/ + 0xec, /* U+0000cc: LATIN CAPITAL LETTER I WITH GRAVE*/ + 0xed, /* U+0000cd: LATIN CAPITAL LETTER I WITH ACUTE*/ + 0xee, /* U+0000ce: LATIN CAPITAL LETTER I WITH CIRCUMFLEX*/ + 0xef, /* U+0000cf: LATIN CAPITAL LETTER I WITH DIAERESIS*/ + 0xf0, /* U+0000d0: LATIN CAPITAL LETTER ETH*/ + 0xf1, /* U+0000d1: LATIN CAPITAL LETTER N WITH TILDE*/ + 0xf2, /* U+0000d2: LATIN CAPITAL LETTER O WITH GRAVE*/ + 0xf3, /* U+0000d3: LATIN CAPITAL LETTER O WITH ACUTE*/ + 0xf4, /* U+0000d4: LATIN CAPITAL LETTER O WITH CIRCUMFLEX*/ + 0xf5, /* U+0000d5: LATIN CAPITAL LETTER O WITH TILDE*/ + 0xf6, /* U+0000d6: LATIN CAPITAL LETTER O WITH DIAERESIS*/ + 0xd7, /* U+0000d7: MULTIPLICATION SIGN*/ + 0xf8, /* U+0000d8: LATIN CAPITAL LETTER O WITH STROKE*/ + 0xf9, /* U+0000d9: LATIN CAPITAL LETTER U WITH GRAVE*/ + 0xfa, /* U+0000da: LATIN CAPITAL LETTER U WITH ACUTE*/ + 0xfb, /* U+0000db: LATIN CAPITAL LETTER U WITH CIRCUMFLEX*/ + 0xfc, /* U+0000dc: LATIN CAPITAL LETTER U WITH DIAERESIS*/ + 0xfd, /* U+0000dd: LATIN CAPITAL LETTER Y WITH ACUTE*/ + 0xfe, /* U+0000de: LATIN CAPITAL LETTER THORN*/ + 0xdf, /* U+0000df: LATIN SMALL LETTER SHARP S*/ + 0xe0, /* U+0000e0: LATIN SMALL LETTER A WITH GRAVE*/ + 0xe1, /* U+0000e1: LATIN SMALL LETTER A WITH ACUTE*/ + 0xe2, /* U+0000e2: LATIN SMALL LETTER A WITH CIRCUMFLEX*/ + 0xe3, /* U+0000e3: LATIN SMALL LETTER A WITH TILDE*/ + 0xe4, /* U+0000e4: LATIN SMALL LETTER A WITH DIAERESIS*/ + 0xe5, /* U+0000e5: LATIN SMALL LETTER A WITH RING ABOVE*/ + 0xe6, /* U+0000e6: LATIN SMALL LETTER AE*/ + 0xe7, /* U+0000e7: LATIN SMALL LETTER C WITH CEDILLA*/ + 0xe8, /* U+0000e8: LATIN SMALL LETTER E WITH GRAVE*/ + 0xe9, /* U+0000e9: LATIN SMALL LETTER E WITH ACUTE*/ + 0xea, /* U+0000ea: LATIN SMALL LETTER E WITH CIRCUMFLEX*/ + 0xeb, /* U+0000eb: LATIN SMALL LETTER E WITH DIAERESIS*/ + 0xec, /* U+0000ec: LATIN SMALL LETTER I WITH GRAVE*/ + 0xed, /* U+0000ed: LATIN SMALL LETTER I WITH ACUTE*/ + 0xee, /* U+0000ee: LATIN SMALL LETTER I WITH CIRCUMFLEX*/ + 0xef, /* U+0000ef: LATIN SMALL LETTER I WITH DIAERESIS*/ + 0xf0, /* U+0000f0: LATIN SMALL LETTER ETH*/ + 0xf1, /* U+0000f1: LATIN SMALL LETTER N WITH TILDE*/ + 0xf2, /* U+0000f2: LATIN SMALL LETTER O WITH GRAVE*/ + 0xf3, /* U+0000f3: LATIN SMALL LETTER O WITH ACUTE*/ + 0xf4, /* U+0000f4: LATIN SMALL LETTER O WITH CIRCUMFLEX*/ + 0xf5, /* U+0000f5: LATIN SMALL LETTER O WITH TILDE*/ + 0xf6, /* U+0000f6: LATIN SMALL LETTER O WITH DIAERESIS*/ + 0xf7, /* U+0000f7: DIVISION SIGN*/ + 0xf8, /* U+0000f8: LATIN SMALL LETTER O WITH STROKE*/ + 0xf9, /* U+0000f9: LATIN SMALL LETTER U WITH GRAVE*/ + 0xfa, /* U+0000fa: LATIN SMALL LETTER U WITH ACUTE*/ + 0xfb, /* U+0000fb: LATIN SMALL LETTER U WITH CIRCUMFLEX*/ + 0xfc, /* U+0000fc: LATIN SMALL LETTER U WITH DIAERESIS*/ + 0xfd, /* U+0000fd: LATIN SMALL LETTER Y WITH ACUTE*/ + 0xfe, /* U+0000fe: LATIN SMALL LETTER THORN*/ + 0xff, /* U+0000ff: LATIN SMALL LETTER Y WITH DIAERESIS*/ + 0x101, /* U+000100: LATIN CAPITAL LETTER A WITH MACRON*/ + 0x101, /* U+000101: LATIN SMALL LETTER A WITH MACRON*/ + 0x103, /* U+000102: LATIN CAPITAL LETTER A WITH BREVE*/ + 0x103, /* U+000103: LATIN SMALL LETTER A WITH BREVE*/ + 0x105, /* U+000104: LATIN CAPITAL LETTER A WITH OGONEK*/ + 0x105, /* U+000105: LATIN SMALL LETTER A WITH OGONEK*/ + 0x107, /* U+000106: LATIN CAPITAL LETTER C WITH ACUTE*/ + 0x107, /* U+000107: LATIN SMALL LETTER C WITH ACUTE*/ + 0x109, /* U+000108: LATIN CAPITAL LETTER C WITH CIRCUMFLEX*/ + 0x109, /* U+000109: LATIN SMALL LETTER C WITH CIRCUMFLEX*/ + 0x10b, /* U+00010a: LATIN CAPITAL LETTER C WITH DOT ABOVE*/ + 0x10b, /* U+00010b: LATIN SMALL LETTER C WITH DOT ABOVE*/ + 0x10d, /* U+00010c: LATIN CAPITAL LETTER C WITH CARON*/ + 0x10d, /* U+00010d: LATIN SMALL LETTER C WITH CARON*/ + 0x10f, /* U+00010e: LATIN CAPITAL LETTER D WITH CARON*/ + 0x10f, /* U+00010f: LATIN SMALL LETTER D WITH CARON*/ + 0x111, /* U+000110: LATIN CAPITAL LETTER D WITH STROKE*/ + 0x111, /* U+000111: LATIN SMALL LETTER D WITH STROKE*/ + 0x113, /* U+000112: LATIN CAPITAL LETTER E WITH MACRON*/ + 0x113, /* U+000113: LATIN SMALL LETTER E WITH MACRON*/ + 0x115, /* U+000114: LATIN CAPITAL LETTER E WITH BREVE*/ + 0x115, /* U+000115: LATIN SMALL LETTER E WITH BREVE*/ + 0x117, /* U+000116: LATIN CAPITAL LETTER E WITH DOT ABOVE*/ + 0x117, /* U+000117: LATIN SMALL LETTER E WITH DOT ABOVE*/ + 0x119, /* U+000118: LATIN CAPITAL LETTER E WITH OGONEK*/ + 0x119, /* U+000119: LATIN SMALL LETTER E WITH OGONEK*/ + 0x11b, /* U+00011a: LATIN CAPITAL LETTER E WITH CARON*/ + 0x11b, /* U+00011b: LATIN SMALL LETTER E WITH CARON*/ + 0x11d, /* U+00011c: LATIN CAPITAL LETTER G WITH CIRCUMFLEX*/ + 0x11d, /* U+00011d: LATIN SMALL LETTER G WITH CIRCUMFLEX*/ + 0x11f, /* U+00011e: LATIN CAPITAL LETTER G WITH BREVE*/ + 0x11f, /* U+00011f: LATIN SMALL LETTER G WITH BREVE*/ + 0x121, /* U+000120: LATIN CAPITAL LETTER G WITH DOT ABOVE*/ + 0x121, /* U+000121: LATIN SMALL LETTER G WITH DOT ABOVE*/ + 0x123, /* U+000122: LATIN CAPITAL LETTER G WITH CEDILLA*/ + 0x123, /* U+000123: LATIN SMALL LETTER G WITH CEDILLA*/ + 0x125, /* U+000124: LATIN CAPITAL LETTER H WITH CIRCUMFLEX*/ + 0x125, /* U+000125: LATIN SMALL LETTER H WITH CIRCUMFLEX*/ + 0x127, /* U+000126: LATIN CAPITAL LETTER H WITH STROKE*/ + 0x127, /* U+000127: LATIN SMALL LETTER H WITH STROKE*/ + 0x129, /* U+000128: LATIN CAPITAL LETTER I WITH TILDE*/ + 0x129, /* U+000129: LATIN SMALL LETTER I WITH TILDE*/ + 0x12b, /* U+00012a: LATIN CAPITAL LETTER I WITH MACRON*/ + 0x12b, /* U+00012b: LATIN SMALL LETTER I WITH MACRON*/ + 0x12d, /* U+00012c: LATIN CAPITAL LETTER I WITH BREVE*/ + 0x12d, /* U+00012d: LATIN SMALL LETTER I WITH BREVE*/ + 0x12f, /* U+00012e: LATIN CAPITAL LETTER I WITH OGONEK*/ + 0x12f, /* U+00012f: LATIN SMALL LETTER I WITH OGONEK*/ + 0x69, /* U+000130: LATIN CAPITAL LETTER I WITH DOT ABOVE*/ + 0x131, /* U+000131: LATIN SMALL LETTER DOTLESS I*/ + 0x133, /* U+000132: LATIN CAPITAL LIGATURE IJ*/ + 0x133, /* U+000133: LATIN SMALL LIGATURE IJ*/ + 0x135, /* U+000134: LATIN CAPITAL LETTER J WITH CIRCUMFLEX*/ + 0x135, /* U+000135: LATIN SMALL LETTER J WITH CIRCUMFLEX*/ + 0x137, /* U+000136: LATIN CAPITAL LETTER K WITH CEDILLA*/ + 0x137, /* U+000137: LATIN SMALL LETTER K WITH CEDILLA*/ + 0x138, /* U+000138: LATIN SMALL LETTER KRA*/ + 0x13a, /* U+000139: LATIN CAPITAL LETTER L WITH ACUTE*/ + 0x13a, /* U+00013a: LATIN SMALL LETTER L WITH ACUTE*/ + 0x13c, /* U+00013b: LATIN CAPITAL LETTER L WITH CEDILLA*/ + 0x13c, /* U+00013c: LATIN SMALL LETTER L WITH CEDILLA*/ + 0x13e, /* U+00013d: LATIN CAPITAL LETTER L WITH CARON*/ + 0x13e, /* U+00013e: LATIN SMALL LETTER L WITH CARON*/ + 0x140, /* U+00013f: LATIN CAPITAL LETTER L WITH MIDDLE DOT*/ + 0x140, /* U+000140: LATIN SMALL LETTER L WITH MIDDLE DOT*/ + 0x142, /* U+000141: LATIN CAPITAL LETTER L WITH STROKE*/ + 0x142, /* U+000142: LATIN SMALL LETTER L WITH STROKE*/ + 0x144, /* U+000143: LATIN CAPITAL LETTER N WITH ACUTE*/ + 0x144, /* U+000144: LATIN SMALL LETTER N WITH ACUTE*/ + 0x146, /* U+000145: LATIN CAPITAL LETTER N WITH CEDILLA*/ + 0x146, /* U+000146: LATIN SMALL LETTER N WITH CEDILLA*/ + 0x148, /* U+000147: LATIN CAPITAL LETTER N WITH CARON*/ + 0x148, /* U+000148: LATIN SMALL LETTER N WITH CARON*/ + 0x149, /* U+000149: LATIN SMALL LETTER N PRECEDED BY APOSTROPHE*/ + 0x14b, /* U+00014a: LATIN CAPITAL LETTER ENG*/ + 0x14b, /* U+00014b: LATIN SMALL LETTER ENG*/ + 0x14d, /* U+00014c: LATIN CAPITAL LETTER O WITH MACRON*/ + 0x14d, /* U+00014d: LATIN SMALL LETTER O WITH MACRON*/ + 0x14f, /* U+00014e: LATIN CAPITAL LETTER O WITH BREVE*/ + 0x14f, /* U+00014f: LATIN SMALL LETTER O WITH BREVE*/ + 0x151, /* U+000150: LATIN CAPITAL LETTER O WITH DOUBLE ACUTE*/ + 0x151, /* U+000151: LATIN SMALL LETTER O WITH DOUBLE ACUTE*/ + 0x153, /* U+000152: LATIN CAPITAL LIGATURE OE*/ + 0x153, /* U+000153: LATIN SMALL LIGATURE OE*/ + 0x155, /* U+000154: LATIN CAPITAL LETTER R WITH ACUTE*/ + 0x155, /* U+000155: LATIN SMALL LETTER R WITH ACUTE*/ + 0x157, /* U+000156: LATIN CAPITAL LETTER R WITH CEDILLA*/ + 0x157, /* U+000157: LATIN SMALL LETTER R WITH CEDILLA*/ + 0x159, /* U+000158: LATIN CAPITAL LETTER R WITH CARON*/ + 0x159, /* U+000159: LATIN SMALL LETTER R WITH CARON*/ + 0x15b, /* U+00015a: LATIN CAPITAL LETTER S WITH ACUTE*/ + 0x15b, /* U+00015b: LATIN SMALL LETTER S WITH ACUTE*/ + 0x15d, /* U+00015c: LATIN CAPITAL LETTER S WITH CIRCUMFLEX*/ + 0x15d, /* U+00015d: LATIN SMALL LETTER S WITH CIRCUMFLEX*/ + 0x15f, /* U+00015e: LATIN CAPITAL LETTER S WITH CEDILLA*/ + 0x15f, /* U+00015f: LATIN SMALL LETTER S WITH CEDILLA*/ + 0x161, /* U+000160: LATIN CAPITAL LETTER S WITH CARON*/ + 0x161, /* U+000161: LATIN SMALL LETTER S WITH CARON*/ + 0x163, /* U+000162: LATIN CAPITAL LETTER T WITH CEDILLA*/ + 0x163, /* U+000163: LATIN SMALL LETTER T WITH CEDILLA*/ + 0x165, /* U+000164: LATIN CAPITAL LETTER T WITH CARON*/ + 0x165, /* U+000165: LATIN SMALL LETTER T WITH CARON*/ + 0x167, /* U+000166: LATIN CAPITAL LETTER T WITH STROKE*/ + 0x167, /* U+000167: LATIN SMALL LETTER T WITH STROKE*/ + 0x169, /* U+000168: LATIN CAPITAL LETTER U WITH TILDE*/ + 0x169, /* U+000169: LATIN SMALL LETTER U WITH TILDE*/ + 0x16b, /* U+00016a: LATIN CAPITAL LETTER U WITH MACRON*/ + 0x16b, /* U+00016b: LATIN SMALL LETTER U WITH MACRON*/ + 0x16d, /* U+00016c: LATIN CAPITAL LETTER U WITH BREVE*/ + 0x16d, /* U+00016d: LATIN SMALL LETTER U WITH BREVE*/ + 0x16f, /* U+00016e: LATIN CAPITAL LETTER U WITH RING ABOVE*/ + 0x16f, /* U+00016f: LATIN SMALL LETTER U WITH RING ABOVE*/ + 0x171, /* U+000170: LATIN CAPITAL LETTER U WITH DOUBLE ACUTE*/ + 0x171, /* U+000171: LATIN SMALL LETTER U WITH DOUBLE ACUTE*/ + 0x173, /* U+000172: LATIN CAPITAL LETTER U WITH OGONEK*/ + 0x173, /* U+000173: LATIN SMALL LETTER U WITH OGONEK*/ + 0x175, /* U+000174: LATIN CAPITAL LETTER W WITH CIRCUMFLEX*/ + 0x175, /* U+000175: LATIN SMALL LETTER W WITH CIRCUMFLEX*/ + 0x177, /* U+000176: LATIN CAPITAL LETTER Y WITH CIRCUMFLEX*/ + 0x177, /* U+000177: LATIN SMALL LETTER Y WITH CIRCUMFLEX*/ + 0xff, /* U+000178: LATIN CAPITAL LETTER Y WITH DIAERESIS*/ + 0x17a, /* U+000179: LATIN CAPITAL LETTER Z WITH ACUTE*/ + 0x17a, /* U+00017a: LATIN SMALL LETTER Z WITH ACUTE*/ + 0x17c, /* U+00017b: LATIN CAPITAL LETTER Z WITH DOT ABOVE*/ + 0x17c, /* U+00017c: LATIN SMALL LETTER Z WITH DOT ABOVE*/ + 0x17e, /* U+00017d: LATIN CAPITAL LETTER Z WITH CARON*/ + 0x17e, /* U+00017e: LATIN SMALL LETTER Z WITH CARON*/ + 0x17f, /* U+00017f: LATIN SMALL LETTER LONG S*/ + 0x180, /* U+000180: LATIN SMALL LETTER B WITH STROKE*/ + 0x253, /* U+000181: LATIN CAPITAL LETTER B WITH HOOK*/ + 0x183, /* U+000182: LATIN CAPITAL LETTER B WITH TOPBAR*/ + 0x183, /* U+000183: LATIN SMALL LETTER B WITH TOPBAR*/ + 0x185, /* U+000184: LATIN CAPITAL LETTER TONE SIX*/ + 0x185, /* U+000185: LATIN SMALL LETTER TONE SIX*/ + 0x254, /* U+000186: LATIN CAPITAL LETTER OPEN O*/ + 0x188, /* U+000187: LATIN CAPITAL LETTER C WITH HOOK*/ + 0x188, /* U+000188: LATIN SMALL LETTER C WITH HOOK*/ + 0x256, /* U+000189: LATIN CAPITAL LETTER AFRICAN D*/ + 0x257, /* U+00018a: LATIN CAPITAL LETTER D WITH HOOK*/ + 0x18c, /* U+00018b: LATIN CAPITAL LETTER D WITH TOPBAR*/ + 0x18c, /* U+00018c: LATIN SMALL LETTER D WITH TOPBAR*/ + 0x18d, /* U+00018d: LATIN SMALL LETTER TURNED DELTA*/ + 0x1dd, /* U+00018e: LATIN CAPITAL LETTER REVERSED E*/ + 0x259, /* U+00018f: LATIN CAPITAL LETTER SCHWA*/ + 0x25b, /* U+000190: LATIN CAPITAL LETTER OPEN E*/ + 0x192, /* U+000191: LATIN CAPITAL LETTER F WITH HOOK*/ + 0x192, /* U+000192: LATIN SMALL LETTER F WITH HOOK*/ + 0x260, /* U+000193: LATIN CAPITAL LETTER G WITH HOOK*/ + 0x263, /* U+000194: LATIN CAPITAL LETTER GAMMA*/ + 0x195, /* U+000195: LATIN SMALL LETTER HV*/ + 0x269, /* U+000196: LATIN CAPITAL LETTER IOTA*/ + 0x268, /* U+000197: LATIN CAPITAL LETTER I WITH STROKE*/ + 0x199, /* U+000198: LATIN CAPITAL LETTER K WITH HOOK*/ + 0x199, /* U+000199: LATIN SMALL LETTER K WITH HOOK*/ + 0x19a, /* U+00019a: LATIN SMALL LETTER L WITH BAR*/ + 0x19b, /* U+00019b: LATIN SMALL LETTER LAMBDA WITH STROKE*/ + 0x26f, /* U+00019c: LATIN CAPITAL LETTER TURNED M*/ + 0x272, /* U+00019d: LATIN CAPITAL LETTER N WITH LEFT HOOK*/ + 0x19e, /* U+00019e: LATIN SMALL LETTER N WITH LONG RIGHT LEG*/ + 0x275, /* U+00019f: LATIN CAPITAL LETTER O WITH MIDDLE TILDE*/ + 0x1a1, /* U+0001a0: LATIN CAPITAL LETTER O WITH HORN*/ + 0x1a1, /* U+0001a1: LATIN SMALL LETTER O WITH HORN*/ + 0x1a3, /* U+0001a2: LATIN CAPITAL LETTER OI*/ + 0x1a3, /* U+0001a3: LATIN SMALL LETTER OI*/ + 0x1a5, /* U+0001a4: LATIN CAPITAL LETTER P WITH HOOK*/ + 0x1a5, /* U+0001a5: LATIN SMALL LETTER P WITH HOOK*/ + 0x280, /* U+0001a6: LATIN LETTER YR*/ + 0x1a8, /* U+0001a7: LATIN CAPITAL LETTER TONE TWO*/ + 0x1a8, /* U+0001a8: LATIN SMALL LETTER TONE TWO*/ + 0x283, /* U+0001a9: LATIN CAPITAL LETTER ESH*/ + 0x1aa, /* U+0001aa: LATIN LETTER REVERSED ESH LOOP*/ + 0x1ab, /* U+0001ab: LATIN SMALL LETTER T WITH PALATAL HOOK*/ + 0x1ad, /* U+0001ac: LATIN CAPITAL LETTER T WITH HOOK*/ + 0x1ad, /* U+0001ad: LATIN SMALL LETTER T WITH HOOK*/ + 0x288, /* U+0001ae: LATIN CAPITAL LETTER T WITH RETROFLEX HOOK*/ + 0x1b0, /* U+0001af: LATIN CAPITAL LETTER U WITH HORN*/ + 0x1b0, /* U+0001b0: LATIN SMALL LETTER U WITH HORN*/ + 0x28a, /* U+0001b1: LATIN CAPITAL LETTER UPSILON*/ + 0x28b, /* U+0001b2: LATIN CAPITAL LETTER V WITH HOOK*/ + 0x1b4, /* U+0001b3: LATIN CAPITAL LETTER Y WITH HOOK*/ + 0x1b4, /* U+0001b4: LATIN SMALL LETTER Y WITH HOOK*/ + 0x1b6, /* U+0001b5: LATIN CAPITAL LETTER Z WITH STROKE*/ + 0x1b6, /* U+0001b6: LATIN SMALL LETTER Z WITH STROKE*/ + 0x292, /* U+0001b7: LATIN CAPITAL LETTER EZH*/ + 0x1b9, /* U+0001b8: LATIN CAPITAL LETTER EZH REVERSED*/ + 0x1b9, /* U+0001b9: LATIN SMALL LETTER EZH REVERSED*/ + 0x1ba, /* U+0001ba: LATIN SMALL LETTER EZH WITH TAIL*/ + 0x1bb, /* U+0001bb: LATIN LETTER TWO WITH STROKE*/ + 0x1bd, /* U+0001bc: LATIN CAPITAL LETTER TONE FIVE*/ + 0x1bd, /* U+0001bd: LATIN SMALL LETTER TONE FIVE*/ + 0x1be, /* U+0001be: LATIN LETTER INVERTED GLOTTAL STOP WITH STROKE*/ + 0x1bf, /* U+0001bf: LATIN LETTER WYNN*/ + 0x1c0, /* U+0001c0: LATIN LETTER DENTAL CLICK*/ + 0x1c1, /* U+0001c1: LATIN LETTER LATERAL CLICK*/ + 0x1c2, /* U+0001c2: LATIN LETTER ALVEOLAR CLICK*/ + 0x1c3, /* U+0001c3: LATIN LETTER RETROFLEX CLICK*/ + 0x1c6, /* U+0001c4: LATIN CAPITAL LETTER DZ WITH CARON*/ + 0x1c6, /* U+0001c5: LATIN CAPITAL LETTER D WITH SMALL LETTER Z WITH CARON*/ + 0x1c6, /* U+0001c6: LATIN SMALL LETTER DZ WITH CARON*/ + 0x1c9, /* U+0001c7: LATIN CAPITAL LETTER LJ*/ + 0x1c9, /* U+0001c8: LATIN CAPITAL LETTER L WITH SMALL LETTER J*/ + 0x1c9, /* U+0001c9: LATIN SMALL LETTER LJ*/ + 0x1cc, /* U+0001ca: LATIN CAPITAL LETTER NJ*/ + 0x1cc, /* U+0001cb: LATIN CAPITAL LETTER N WITH SMALL LETTER J*/ + 0x1cc, /* U+0001cc: LATIN SMALL LETTER NJ*/ + 0x1ce, /* U+0001cd: LATIN CAPITAL LETTER A WITH CARON*/ + 0x1ce, /* U+0001ce: LATIN SMALL LETTER A WITH CARON*/ + 0x1d0, /* U+0001cf: LATIN CAPITAL LETTER I WITH CARON*/ + 0x1d0, /* U+0001d0: LATIN SMALL LETTER I WITH CARON*/ + 0x1d2, /* U+0001d1: LATIN CAPITAL LETTER O WITH CARON*/ + 0x1d2, /* U+0001d2: LATIN SMALL LETTER O WITH CARON*/ + 0x1d4, /* U+0001d3: LATIN CAPITAL LETTER U WITH CARON*/ + 0x1d4, /* U+0001d4: LATIN SMALL LETTER U WITH CARON*/ + 0x1d6, /* U+0001d5: LATIN CAPITAL LETTER U WITH DIAERESIS AND MACRON*/ + 0x1d6, /* U+0001d6: LATIN SMALL LETTER U WITH DIAERESIS AND MACRON*/ + 0x1d8, /* U+0001d7: LATIN CAPITAL LETTER U WITH DIAERESIS AND ACUTE*/ + 0x1d8, /* U+0001d8: LATIN SMALL LETTER U WITH DIAERESIS AND ACUTE*/ + 0x1da, /* U+0001d9: LATIN CAPITAL LETTER U WITH DIAERESIS AND CARON*/ + 0x1da, /* U+0001da: LATIN SMALL LETTER U WITH DIAERESIS AND CARON*/ + 0x1dc, /* U+0001db: LATIN CAPITAL LETTER U WITH DIAERESIS AND GRAVE*/ + 0x1dc, /* U+0001dc: LATIN SMALL LETTER U WITH DIAERESIS AND GRAVE*/ + 0x1dd, /* U+0001dd: LATIN SMALL LETTER TURNED E*/ + 0x1df, /* U+0001de: LATIN CAPITAL LETTER A WITH DIAERESIS AND MACRON*/ + 0x1df, /* U+0001df: LATIN SMALL LETTER A WITH DIAERESIS AND MACRON*/ + 0x1e1, /* U+0001e0: LATIN CAPITAL LETTER A WITH DOT ABOVE AND MACRON*/ + 0x1e1, /* U+0001e1: LATIN SMALL LETTER A WITH DOT ABOVE AND MACRON*/ + 0x1e3, /* U+0001e2: LATIN CAPITAL LETTER AE WITH MACRON*/ + 0x1e3, /* U+0001e3: LATIN SMALL LETTER AE WITH MACRON*/ + 0x1e5, /* U+0001e4: LATIN CAPITAL LETTER G WITH STROKE*/ + 0x1e5, /* U+0001e5: LATIN SMALL LETTER G WITH STROKE*/ + 0x1e7, /* U+0001e6: LATIN CAPITAL LETTER G WITH CARON*/ + 0x1e7, /* U+0001e7: LATIN SMALL LETTER G WITH CARON*/ + 0x1e9, /* U+0001e8: LATIN CAPITAL LETTER K WITH CARON*/ + 0x1e9, /* U+0001e9: LATIN SMALL LETTER K WITH CARON*/ + 0x1eb, /* U+0001ea: LATIN CAPITAL LETTER O WITH OGONEK*/ + 0x1eb, /* U+0001eb: LATIN SMALL LETTER O WITH OGONEK*/ + 0x1ed, /* U+0001ec: LATIN CAPITAL LETTER O WITH OGONEK AND MACRON*/ + 0x1ed, /* U+0001ed: LATIN SMALL LETTER O WITH OGONEK AND MACRON*/ + 0x1ef, /* U+0001ee: LATIN CAPITAL LETTER EZH WITH CARON*/ + 0x1ef, /* U+0001ef: LATIN SMALL LETTER EZH WITH CARON*/ + 0x1f0, /* U+0001f0: LATIN SMALL LETTER J WITH CARON*/ + 0x1f3, /* U+0001f1: LATIN CAPITAL LETTER DZ*/ + 0x1f3, /* U+0001f2: LATIN CAPITAL LETTER D WITH SMALL LETTER Z*/ + 0x1f3, /* U+0001f3: LATIN SMALL LETTER DZ*/ + 0x1f5, /* U+0001f4: LATIN CAPITAL LETTER G WITH ACUTE*/ + 0x1f5, /* U+0001f5: LATIN SMALL LETTER G WITH ACUTE*/ + 0x195, /* U+0001f6: LATIN CAPITAL LETTER HWAIR*/ + 0x1bf, /* U+0001f7: LATIN CAPITAL LETTER WYNN*/ + 0x1f9, /* U+0001f8: LATIN CAPITAL LETTER N WITH GRAVE*/ + 0x1f9, /* U+0001f9: LATIN SMALL LETTER N WITH GRAVE*/ + 0x1fb, /* U+0001fa: LATIN CAPITAL LETTER A WITH RING ABOVE AND ACUTE*/ + 0x1fb, /* U+0001fb: LATIN SMALL LETTER A WITH RING ABOVE AND ACUTE*/ + 0x1fd, /* U+0001fc: LATIN CAPITAL LETTER AE WITH ACUTE*/ + 0x1fd, /* U+0001fd: LATIN SMALL LETTER AE WITH ACUTE*/ + 0x1ff, /* U+0001fe: LATIN CAPITAL LETTER O WITH STROKE AND ACUTE*/ + 0x1ff, /* U+0001ff: LATIN SMALL LETTER O WITH STROKE AND ACUTE*/ + 0x201, /* U+000200: LATIN CAPITAL LETTER A WITH DOUBLE GRAVE*/ + 0x201, /* U+000201: LATIN SMALL LETTER A WITH DOUBLE GRAVE*/ + 0x203, /* U+000202: LATIN CAPITAL LETTER A WITH INVERTED BREVE*/ + 0x203, /* U+000203: LATIN SMALL LETTER A WITH INVERTED BREVE*/ + 0x205, /* U+000204: LATIN CAPITAL LETTER E WITH DOUBLE GRAVE*/ + 0x205, /* U+000205: LATIN SMALL LETTER E WITH DOUBLE GRAVE*/ + 0x207, /* U+000206: LATIN CAPITAL LETTER E WITH INVERTED BREVE*/ + 0x207, /* U+000207: LATIN SMALL LETTER E WITH INVERTED BREVE*/ + 0x209, /* U+000208: LATIN CAPITAL LETTER I WITH DOUBLE GRAVE*/ + 0x209, /* U+000209: LATIN SMALL LETTER I WITH DOUBLE GRAVE*/ + 0x20b, /* U+00020a: LATIN CAPITAL LETTER I WITH INVERTED BREVE*/ + 0x20b, /* U+00020b: LATIN SMALL LETTER I WITH INVERTED BREVE*/ + 0x20d, /* U+00020c: LATIN CAPITAL LETTER O WITH DOUBLE GRAVE*/ + 0x20d, /* U+00020d: LATIN SMALL LETTER O WITH DOUBLE GRAVE*/ + 0x20f, /* U+00020e: LATIN CAPITAL LETTER O WITH INVERTED BREVE*/ + 0x20f, /* U+00020f: LATIN SMALL LETTER O WITH INVERTED BREVE*/ + 0x211, /* U+000210: LATIN CAPITAL LETTER R WITH DOUBLE GRAVE*/ + 0x211, /* U+000211: LATIN SMALL LETTER R WITH DOUBLE GRAVE*/ + 0x213, /* U+000212: LATIN CAPITAL LETTER R WITH INVERTED BREVE*/ + 0x213, /* U+000213: LATIN SMALL LETTER R WITH INVERTED BREVE*/ + 0x215, /* U+000214: LATIN CAPITAL LETTER U WITH DOUBLE GRAVE*/ + 0x215, /* U+000215: LATIN SMALL LETTER U WITH DOUBLE GRAVE*/ + 0x217, /* U+000216: LATIN CAPITAL LETTER U WITH INVERTED BREVE*/ + 0x217, /* U+000217: LATIN SMALL LETTER U WITH INVERTED BREVE*/ + 0x219, /* U+000218: LATIN CAPITAL LETTER S WITH COMMA BELOW*/ + 0x219, /* U+000219: LATIN SMALL LETTER S WITH COMMA BELOW*/ + 0x21b, /* U+00021a: LATIN CAPITAL LETTER T WITH COMMA BELOW*/ + 0x21b, /* U+00021b: LATIN SMALL LETTER T WITH COMMA BELOW*/ + 0x21d, /* U+00021c: LATIN CAPITAL LETTER YOGH*/ + 0x21d, /* U+00021d: LATIN SMALL LETTER YOGH*/ + 0x21f, /* U+00021e: LATIN CAPITAL LETTER H WITH CARON*/ + 0x21f, /* U+00021f: LATIN SMALL LETTER H WITH CARON*/ + 0x19e, /* U+000220: LATIN CAPITAL LETTER N WITH LONG RIGHT LEG*/ + 0x221, /* U+000221: LATIN SMALL LETTER D WITH CURL*/ + 0x223, /* U+000222: LATIN CAPITAL LETTER OU*/ + 0x223, /* U+000223: LATIN SMALL LETTER OU*/ + 0x225, /* U+000224: LATIN CAPITAL LETTER Z WITH HOOK*/ + 0x225, /* U+000225: LATIN SMALL LETTER Z WITH HOOK*/ + 0x227, /* U+000226: LATIN CAPITAL LETTER A WITH DOT ABOVE*/ + 0x227, /* U+000227: LATIN SMALL LETTER A WITH DOT ABOVE*/ + 0x229, /* U+000228: LATIN CAPITAL LETTER E WITH CEDILLA*/ + 0x229, /* U+000229: LATIN SMALL LETTER E WITH CEDILLA*/ + 0x22b, /* U+00022a: LATIN CAPITAL LETTER O WITH DIAERESIS AND MACRON*/ + 0x22b, /* U+00022b: LATIN SMALL LETTER O WITH DIAERESIS AND MACRON*/ + 0x22d, /* U+00022c: LATIN CAPITAL LETTER O WITH TILDE AND MACRON*/ + 0x22d, /* U+00022d: LATIN SMALL LETTER O WITH TILDE AND MACRON*/ + 0x22f, /* U+00022e: LATIN CAPITAL LETTER O WITH DOT ABOVE*/ + 0x22f, /* U+00022f: LATIN SMALL LETTER O WITH DOT ABOVE*/ + 0x231, /* U+000230: LATIN CAPITAL LETTER O WITH DOT ABOVE AND MACRON*/ + 0x231, /* U+000231: LATIN SMALL LETTER O WITH DOT ABOVE AND MACRON*/ + 0x233, /* U+000232: LATIN CAPITAL LETTER Y WITH MACRON*/ + 0x233, /* U+000233: LATIN SMALL LETTER Y WITH MACRON*/ + 0x234, /* U+000234: LATIN SMALL LETTER L WITH CURL*/ + 0x235, /* U+000235: LATIN SMALL LETTER N WITH CURL*/ + 0x236, /* U+000236: LATIN SMALL LETTER T WITH CURL*/ + 0x237, /* U+000237: LATIN SMALL LETTER DOTLESS J*/ + 0x238, /* U+000238: LATIN SMALL LETTER DB DIGRAPH*/ + 0x239, /* U+000239: LATIN SMALL LETTER QP DIGRAPH*/ + 0x2c65, /* U+00023a: LATIN CAPITAL LETTER A WITH STROKE*/ + 0x23c, /* U+00023b: LATIN CAPITAL LETTER C WITH STROKE*/ + 0x23c, /* U+00023c: LATIN SMALL LETTER C WITH STROKE*/ + 0x19a, /* U+00023d: LATIN CAPITAL LETTER L WITH BAR*/ + 0x2c66, /* U+00023e: LATIN CAPITAL LETTER T WITH DIAGONAL STROKE*/ + 0x23f, /* U+00023f: LATIN SMALL LETTER S WITH SWASH TAIL*/ + 0x240, /* U+000240: LATIN SMALL LETTER Z WITH SWASH TAIL*/ + 0x242, /* U+000241: LATIN CAPITAL LETTER GLOTTAL STOP*/ + 0x242, /* U+000242: LATIN SMALL LETTER GLOTTAL STOP*/ + 0x180, /* U+000243: LATIN CAPITAL LETTER B WITH STROKE*/ + 0x289, /* U+000244: LATIN CAPITAL LETTER U BAR*/ + 0x28c, /* U+000245: LATIN CAPITAL LETTER TURNED V*/ + 0x247, /* U+000246: LATIN CAPITAL LETTER E WITH STROKE*/ + 0x247, /* U+000247: LATIN SMALL LETTER E WITH STROKE*/ + 0x249, /* U+000248: LATIN CAPITAL LETTER J WITH STROKE*/ + 0x249, /* U+000249: LATIN SMALL LETTER J WITH STROKE*/ + 0x24b, /* U+00024a: LATIN CAPITAL LETTER SMALL Q WITH HOOK TAIL*/ + 0x24b, /* U+00024b: LATIN SMALL LETTER Q WITH HOOK TAIL*/ + 0x24d, /* U+00024c: LATIN CAPITAL LETTER R WITH STROKE*/ + 0x24d, /* U+00024d: LATIN SMALL LETTER R WITH STROKE*/ + 0x24f, /* U+00024e: LATIN CAPITAL LETTER Y WITH STROKE*/ + 0x24f, /* U+00024f: LATIN SMALL LETTER Y WITH STROKE*/ + 0x250, /* U+000250: LATIN SMALL LETTER TURNED A*/ + 0x251, /* U+000251: LATIN SMALL LETTER ALPHA*/ + 0x252, /* U+000252: LATIN SMALL LETTER TURNED ALPHA*/ + 0x253, /* U+000253: LATIN SMALL LETTER B WITH HOOK*/ + 0x254, /* U+000254: LATIN SMALL LETTER OPEN O*/ + 0x255, /* U+000255: LATIN SMALL LETTER C WITH CURL*/ + 0x256, /* U+000256: LATIN SMALL LETTER D WITH TAIL*/ + 0x257, /* U+000257: LATIN SMALL LETTER D WITH HOOK*/ + 0x258, /* U+000258: LATIN SMALL LETTER REVERSED E*/ + 0x259, /* U+000259: LATIN SMALL LETTER SCHWA*/ + 0x25a, /* U+00025a: LATIN SMALL LETTER SCHWA WITH HOOK*/ + 0x25b, /* U+00025b: LATIN SMALL LETTER OPEN E*/ + 0x25c, /* U+00025c: LATIN SMALL LETTER REVERSED OPEN E*/ + 0x25d, /* U+00025d: LATIN SMALL LETTER REVERSED OPEN E WITH HOOK*/ + 0x25e, /* U+00025e: LATIN SMALL LETTER CLOSED REVERSED OPEN E*/ + 0x25f, /* U+00025f: LATIN SMALL LETTER DOTLESS J WITH STROKE*/ + 0x260, /* U+000260: LATIN SMALL LETTER G WITH HOOK*/ + 0x261, /* U+000261: LATIN SMALL LETTER SCRIPT G*/ + 0x262, /* U+000262: LATIN LETTER SMALL CAPITAL G*/ + 0x263, /* U+000263: LATIN SMALL LETTER GAMMA*/ + 0x264, /* U+000264: LATIN SMALL LETTER RAMS HORN*/ + 0x265, /* U+000265: LATIN SMALL LETTER TURNED H*/ + 0x266, /* U+000266: LATIN SMALL LETTER H WITH HOOK*/ + 0x267, /* U+000267: LATIN SMALL LETTER HENG WITH HOOK*/ + 0x268, /* U+000268: LATIN SMALL LETTER I WITH STROKE*/ + 0x269, /* U+000269: LATIN SMALL LETTER IOTA*/ + 0x26a, /* U+00026a: LATIN LETTER SMALL CAPITAL I*/ + 0x26b, /* U+00026b: LATIN SMALL LETTER L WITH MIDDLE TILDE*/ + 0x26c, /* U+00026c: LATIN SMALL LETTER L WITH BELT*/ + 0x26d, /* U+00026d: LATIN SMALL LETTER L WITH RETROFLEX HOOK*/ + 0x26e, /* U+00026e: LATIN SMALL LETTER LEZH*/ + 0x26f, /* U+00026f: LATIN SMALL LETTER TURNED M*/ + 0x270, /* U+000270: LATIN SMALL LETTER TURNED M WITH LONG LEG*/ + 0x271, /* U+000271: LATIN SMALL LETTER M WITH HOOK*/ + 0x272, /* U+000272: LATIN SMALL LETTER N WITH LEFT HOOK*/ + 0x273, /* U+000273: LATIN SMALL LETTER N WITH RETROFLEX HOOK*/ + 0x274, /* U+000274: LATIN LETTER SMALL CAPITAL N*/ + 0x275, /* U+000275: LATIN SMALL LETTER BARRED O*/ + 0x276, /* U+000276: LATIN LETTER SMALL CAPITAL OE*/ + 0x277, /* U+000277: LATIN SMALL LETTER CLOSED OMEGA*/ + 0x278, /* U+000278: LATIN SMALL LETTER PHI*/ + 0x279, /* U+000279: LATIN SMALL LETTER TURNED R*/ + 0x27a, /* U+00027a: LATIN SMALL LETTER TURNED R WITH LONG LEG*/ + 0x27b, /* U+00027b: LATIN SMALL LETTER TURNED R WITH HOOK*/ + 0x27c, /* U+00027c: LATIN SMALL LETTER R WITH LONG LEG*/ + 0x27d, /* U+00027d: LATIN SMALL LETTER R WITH TAIL*/ + 0x27e, /* U+00027e: LATIN SMALL LETTER R WITH FISHHOOK*/ + 0x27f, /* U+00027f: LATIN SMALL LETTER REVERSED R WITH FISHHOOK*/ + 0x280, /* U+000280: LATIN LETTER SMALL CAPITAL R*/ + 0x281, /* U+000281: LATIN LETTER SMALL CAPITAL INVERTED R*/ + 0x282, /* U+000282: LATIN SMALL LETTER S WITH HOOK*/ + 0x283, /* U+000283: LATIN SMALL LETTER ESH*/ + 0x284, /* U+000284: LATIN SMALL LETTER DOTLESS J WITH STROKE AND HOOK*/ + 0x285, /* U+000285: LATIN SMALL LETTER SQUAT REVERSED ESH*/ + 0x286, /* U+000286: LATIN SMALL LETTER ESH WITH CURL*/ + 0x287, /* U+000287: LATIN SMALL LETTER TURNED T*/ + 0x288, /* U+000288: LATIN SMALL LETTER T WITH RETROFLEX HOOK*/ + 0x289, /* U+000289: LATIN SMALL LETTER U BAR*/ + 0x28a, /* U+00028a: LATIN SMALL LETTER UPSILON*/ + 0x28b, /* U+00028b: LATIN SMALL LETTER V WITH HOOK*/ + 0x28c, /* U+00028c: LATIN SMALL LETTER TURNED V*/ + 0x28d, /* U+00028d: LATIN SMALL LETTER TURNED W*/ + 0x28e, /* U+00028e: LATIN SMALL LETTER TURNED Y*/ + 0x28f, /* U+00028f: LATIN LETTER SMALL CAPITAL Y*/ + 0x290, /* U+000290: LATIN SMALL LETTER Z WITH RETROFLEX HOOK*/ + 0x291, /* U+000291: LATIN SMALL LETTER Z WITH CURL*/ + 0x292, /* U+000292: LATIN SMALL LETTER EZH*/ + 0x293, /* U+000293: LATIN SMALL LETTER EZH WITH CURL*/ + 0x294, /* U+000294: LATIN LETTER GLOTTAL STOP*/ + 0x295, /* U+000295: LATIN LETTER PHARYNGEAL VOICED FRICATIVE*/ + 0x296, /* U+000296: LATIN LETTER INVERTED GLOTTAL STOP*/ + 0x297, /* U+000297: LATIN LETTER STRETCHED C*/ + 0x298, /* U+000298: LATIN LETTER BILABIAL CLICK*/ + 0x299, /* U+000299: LATIN LETTER SMALL CAPITAL B*/ + 0x29a, /* U+00029a: LATIN SMALL LETTER CLOSED OPEN E*/ + 0x29b, /* U+00029b: LATIN LETTER SMALL CAPITAL G WITH HOOK*/ + 0x29c, /* U+00029c: LATIN LETTER SMALL CAPITAL H*/ + 0x29d, /* U+00029d: LATIN SMALL LETTER J WITH CROSSED-TAIL*/ + 0x29e, /* U+00029e: LATIN SMALL LETTER TURNED K*/ + 0x29f, /* U+00029f: LATIN LETTER SMALL CAPITAL L*/ + 0x2a0, /* U+0002a0: LATIN SMALL LETTER Q WITH HOOK*/ + 0x2a1, /* U+0002a1: LATIN LETTER GLOTTAL STOP WITH STROKE*/ + 0x2a2, /* U+0002a2: LATIN LETTER REVERSED GLOTTAL STOP WITH STROKE*/ + 0x2a3, /* U+0002a3: LATIN SMALL LETTER DZ DIGRAPH*/ + 0x2a4, /* U+0002a4: LATIN SMALL LETTER DEZH DIGRAPH*/ + 0x2a5, /* U+0002a5: LATIN SMALL LETTER DZ DIGRAPH WITH CURL*/ + 0x2a6, /* U+0002a6: LATIN SMALL LETTER TS DIGRAPH*/ + 0x2a7, /* U+0002a7: LATIN SMALL LETTER TESH DIGRAPH*/ + 0x2a8, /* U+0002a8: LATIN SMALL LETTER TC DIGRAPH WITH CURL*/ + 0x2a9, /* U+0002a9: LATIN SMALL LETTER FENG DIGRAPH*/ + 0x2aa, /* U+0002aa: LATIN SMALL LETTER LS DIGRAPH*/ + 0x2ab, /* U+0002ab: LATIN SMALL LETTER LZ DIGRAPH*/ + 0x2ac, /* U+0002ac: LATIN LETTER BILABIAL PERCUSSIVE*/ + 0x2ad, /* U+0002ad: LATIN LETTER BIDENTAL PERCUSSIVE*/ + 0x2ae, /* U+0002ae: LATIN SMALL LETTER TURNED H WITH FISHHOOK*/ + 0x2af, /* U+0002af: LATIN SMALL LETTER TURNED H WITH FISHHOOK AND TAIL*/ + 0x2b0, /* U+0002b0: MODIFIER LETTER SMALL H*/ + 0x2b1, /* U+0002b1: MODIFIER LETTER SMALL H WITH HOOK*/ + 0x2b2, /* U+0002b2: MODIFIER LETTER SMALL J*/ + 0x2b3, /* U+0002b3: MODIFIER LETTER SMALL R*/ + 0x2b4, /* U+0002b4: MODIFIER LETTER SMALL TURNED R*/ + 0x2b5, /* U+0002b5: MODIFIER LETTER SMALL TURNED R WITH HOOK*/ + 0x2b6, /* U+0002b6: MODIFIER LETTER SMALL CAPITAL INVERTED R*/ + 0x2b7, /* U+0002b7: MODIFIER LETTER SMALL W*/ + 0x2b8, /* U+0002b8: MODIFIER LETTER SMALL Y*/ + 0x2b9, /* U+0002b9: MODIFIER LETTER PRIME*/ + 0x2ba, /* U+0002ba: MODIFIER LETTER DOUBLE PRIME*/ + 0x2bb, /* U+0002bb: MODIFIER LETTER TURNED COMMA*/ + 0x2bc, /* U+0002bc: MODIFIER LETTER APOSTROPHE*/ + 0x2bd, /* U+0002bd: MODIFIER LETTER REVERSED COMMA*/ + 0x2be, /* U+0002be: MODIFIER LETTER RIGHT HALF RING*/ + 0x2bf, /* U+0002bf: MODIFIER LETTER LEFT HALF RING*/ + 0x2c0, /* U+0002c0: MODIFIER LETTER GLOTTAL STOP*/ + 0x2c1, /* U+0002c1: MODIFIER LETTER REVERSED GLOTTAL STOP*/ + 0x2c2, /* U+0002c2: MODIFIER LETTER LEFT ARROWHEAD*/ + 0x2c3, /* U+0002c3: MODIFIER LETTER RIGHT ARROWHEAD*/ + 0x2c4, /* U+0002c4: MODIFIER LETTER UP ARROWHEAD*/ + 0x2c5, /* U+0002c5: MODIFIER LETTER DOWN ARROWHEAD*/ + 0x2c6, /* U+0002c6: MODIFIER LETTER CIRCUMFLEX ACCENT*/ + 0x2c7, /* U+0002c7: CARON*/ + 0x2c8, /* U+0002c8: MODIFIER LETTER VERTICAL LINE*/ + 0x2c9, /* U+0002c9: MODIFIER LETTER MACRON*/ + 0x2ca, /* U+0002ca: MODIFIER LETTER ACUTE ACCENT*/ + 0x2cb, /* U+0002cb: MODIFIER LETTER GRAVE ACCENT*/ + 0x2cc, /* U+0002cc: MODIFIER LETTER LOW VERTICAL LINE*/ + 0x2cd, /* U+0002cd: MODIFIER LETTER LOW MACRON*/ + 0x2ce, /* U+0002ce: MODIFIER LETTER LOW GRAVE ACCENT*/ + 0x2cf, /* U+0002cf: MODIFIER LETTER LOW ACUTE ACCENT*/ + 0x2d0, /* U+0002d0: MODIFIER LETTER TRIANGULAR COLON*/ + 0x2d1, /* U+0002d1: MODIFIER LETTER HALF TRIANGULAR COLON*/ + 0x2d2, /* U+0002d2: MODIFIER LETTER CENTRED RIGHT HALF RING*/ + 0x2d3, /* U+0002d3: MODIFIER LETTER CENTRED LEFT HALF RING*/ + 0x2d4, /* U+0002d4: MODIFIER LETTER UP TACK*/ + 0x2d5, /* U+0002d5: MODIFIER LETTER DOWN TACK*/ + 0x2d6, /* U+0002d6: MODIFIER LETTER PLUS SIGN*/ + 0x2d7, /* U+0002d7: MODIFIER LETTER MINUS SIGN*/ + 0x2d8, /* U+0002d8: BREVE*/ + 0x2d9, /* U+0002d9: DOT ABOVE*/ + 0x2da, /* U+0002da: RING ABOVE*/ + 0x2db, /* U+0002db: OGONEK*/ + 0x2dc, /* U+0002dc: SMALL TILDE*/ + 0x2dd, /* U+0002dd: DOUBLE ACUTE ACCENT*/ + 0x2de, /* U+0002de: MODIFIER LETTER RHOTIC HOOK*/ + 0x2df, /* U+0002df: MODIFIER LETTER CROSS ACCENT*/ + 0x2e0, /* U+0002e0: MODIFIER LETTER SMALL GAMMA*/ + 0x2e1, /* U+0002e1: MODIFIER LETTER SMALL L*/ + 0x2e2, /* U+0002e2: MODIFIER LETTER SMALL S*/ + 0x2e3, /* U+0002e3: MODIFIER LETTER SMALL X*/ + 0x2e4, /* U+0002e4: MODIFIER LETTER SMALL REVERSED GLOTTAL STOP*/ + 0x2e5, /* U+0002e5: MODIFIER LETTER EXTRA-HIGH TONE BAR*/ + 0x2e6, /* U+0002e6: MODIFIER LETTER HIGH TONE BAR*/ + 0x2e7, /* U+0002e7: MODIFIER LETTER MID TONE BAR*/ + 0x2e8, /* U+0002e8: MODIFIER LETTER LOW TONE BAR*/ + 0x2e9, /* U+0002e9: MODIFIER LETTER EXTRA-LOW TONE BAR*/ + 0x2ea, /* U+0002ea: MODIFIER LETTER YIN DEPARTING TONE MARK*/ + 0x2eb, /* U+0002eb: MODIFIER LETTER YANG DEPARTING TONE MARK*/ + 0x2ec, /* U+0002ec: MODIFIER LETTER VOICING*/ + 0x2ed, /* U+0002ed: MODIFIER LETTER UNASPIRATED*/ + 0x2ee, /* U+0002ee: MODIFIER LETTER DOUBLE APOSTROPHE*/ + 0x2ef, /* U+0002ef: MODIFIER LETTER LOW DOWN ARROWHEAD*/ + 0x2f0, /* U+0002f0: MODIFIER LETTER LOW UP ARROWHEAD*/ + 0x2f1, /* U+0002f1: MODIFIER LETTER LOW LEFT ARROWHEAD*/ + 0x2f2, /* U+0002f2: MODIFIER LETTER LOW RIGHT ARROWHEAD*/ + 0x2f3, /* U+0002f3: MODIFIER LETTER LOW RING*/ + 0x2f4, /* U+0002f4: MODIFIER LETTER MIDDLE GRAVE ACCENT*/ + 0x2f5, /* U+0002f5: MODIFIER LETTER MIDDLE DOUBLE GRAVE ACCENT*/ + 0x2f6, /* U+0002f6: MODIFIER LETTER MIDDLE DOUBLE ACUTE ACCENT*/ + 0x2f7, /* U+0002f7: MODIFIER LETTER LOW TILDE*/ + 0x2f8, /* U+0002f8: MODIFIER LETTER RAISED COLON*/ + 0x2f9, /* U+0002f9: MODIFIER LETTER BEGIN HIGH TONE*/ + 0x2fa, /* U+0002fa: MODIFIER LETTER END HIGH TONE*/ + 0x2fb, /* U+0002fb: MODIFIER LETTER BEGIN LOW TONE*/ + 0x2fc, /* U+0002fc: MODIFIER LETTER END LOW TONE*/ + 0x2fd, /* U+0002fd: MODIFIER LETTER SHELF*/ + 0x2fe, /* U+0002fe: MODIFIER LETTER OPEN SHELF*/ + 0x2ff, /* U+0002ff: MODIFIER LETTER LOW LEFT ARROW*/ + 0x300, /* U+000300: COMBINING GRAVE ACCENT*/ + 0x301, /* U+000301: COMBINING ACUTE ACCENT*/ + 0x302, /* U+000302: COMBINING CIRCUMFLEX ACCENT*/ + 0x303, /* U+000303: COMBINING TILDE*/ + 0x304, /* U+000304: COMBINING MACRON*/ + 0x305, /* U+000305: COMBINING OVERLINE*/ + 0x306, /* U+000306: COMBINING BREVE*/ + 0x307, /* U+000307: COMBINING DOT ABOVE*/ + 0x308, /* U+000308: COMBINING DIAERESIS*/ + 0x309, /* U+000309: COMBINING HOOK ABOVE*/ + 0x30a, /* U+00030a: COMBINING RING ABOVE*/ + 0x30b, /* U+00030b: COMBINING DOUBLE ACUTE ACCENT*/ + 0x30c, /* U+00030c: COMBINING CARON*/ + 0x30d, /* U+00030d: COMBINING VERTICAL LINE ABOVE*/ + 0x30e, /* U+00030e: COMBINING DOUBLE VERTICAL LINE ABOVE*/ + 0x30f, /* U+00030f: COMBINING DOUBLE GRAVE ACCENT*/ + 0x310, /* U+000310: COMBINING CANDRABINDU*/ + 0x311, /* U+000311: COMBINING INVERTED BREVE*/ + 0x312, /* U+000312: COMBINING TURNED COMMA ABOVE*/ + 0x313, /* U+000313: COMBINING COMMA ABOVE*/ + 0x314, /* U+000314: COMBINING REVERSED COMMA ABOVE*/ + 0x315, /* U+000315: COMBINING COMMA ABOVE RIGHT*/ + 0x316, /* U+000316: COMBINING GRAVE ACCENT BELOW*/ + 0x317, /* U+000317: COMBINING ACUTE ACCENT BELOW*/ + 0x318, /* U+000318: COMBINING LEFT TACK BELOW*/ + 0x319, /* U+000319: COMBINING RIGHT TACK BELOW*/ + 0x31a, /* U+00031a: COMBINING LEFT ANGLE ABOVE*/ + 0x31b, /* U+00031b: COMBINING HORN*/ + 0x31c, /* U+00031c: COMBINING LEFT HALF RING BELOW*/ + 0x31d, /* U+00031d: COMBINING UP TACK BELOW*/ + 0x31e, /* U+00031e: COMBINING DOWN TACK BELOW*/ + 0x31f, /* U+00031f: COMBINING PLUS SIGN BELOW*/ + 0x320, /* U+000320: COMBINING MINUS SIGN BELOW*/ + 0x321, /* U+000321: COMBINING PALATALIZED HOOK BELOW*/ + 0x322, /* U+000322: COMBINING RETROFLEX HOOK BELOW*/ + 0x323, /* U+000323: COMBINING DOT BELOW*/ + 0x324, /* U+000324: COMBINING DIAERESIS BELOW*/ + 0x325, /* U+000325: COMBINING RING BELOW*/ + 0x326, /* U+000326: COMBINING COMMA BELOW*/ + 0x327, /* U+000327: COMBINING CEDILLA*/ + 0x328, /* U+000328: COMBINING OGONEK*/ + 0x329, /* U+000329: COMBINING VERTICAL LINE BELOW*/ + 0x32a, /* U+00032a: COMBINING BRIDGE BELOW*/ + 0x32b, /* U+00032b: COMBINING INVERTED DOUBLE ARCH BELOW*/ + 0x32c, /* U+00032c: COMBINING CARON BELOW*/ + 0x32d, /* U+00032d: COMBINING CIRCUMFLEX ACCENT BELOW*/ + 0x32e, /* U+00032e: COMBINING BREVE BELOW*/ + 0x32f, /* U+00032f: COMBINING INVERTED BREVE BELOW*/ + 0x330, /* U+000330: COMBINING TILDE BELOW*/ + 0x331, /* U+000331: COMBINING MACRON BELOW*/ + 0x332, /* U+000332: COMBINING LOW LINE*/ + 0x333, /* U+000333: COMBINING DOUBLE LOW LINE*/ + 0x334, /* U+000334: COMBINING TILDE OVERLAY*/ + 0x335, /* U+000335: COMBINING SHORT STROKE OVERLAY*/ + 0x336, /* U+000336: COMBINING LONG STROKE OVERLAY*/ + 0x337, /* U+000337: COMBINING SHORT SOLIDUS OVERLAY*/ + 0x338, /* U+000338: COMBINING LONG SOLIDUS OVERLAY*/ + 0x339, /* U+000339: COMBINING RIGHT HALF RING BELOW*/ + 0x33a, /* U+00033a: COMBINING INVERTED BRIDGE BELOW*/ + 0x33b, /* U+00033b: COMBINING SQUARE BELOW*/ + 0x33c, /* U+00033c: COMBINING SEAGULL BELOW*/ + 0x33d, /* U+00033d: COMBINING X ABOVE*/ + 0x33e, /* U+00033e: COMBINING VERTICAL TILDE*/ + 0x33f, /* U+00033f: COMBINING DOUBLE OVERLINE*/ + 0x340, /* U+000340: COMBINING GRAVE TONE MARK*/ + 0x341, /* U+000341: COMBINING ACUTE TONE MARK*/ + 0x342, /* U+000342: COMBINING GREEK PERISPOMENI*/ + 0x343, /* U+000343: COMBINING GREEK KORONIS*/ + 0x344, /* U+000344: COMBINING GREEK DIALYTIKA TONOS*/ + 0x345, /* U+000345: COMBINING GREEK YPOGEGRAMMENI*/ + 0x346, /* U+000346: COMBINING BRIDGE ABOVE*/ + 0x347, /* U+000347: COMBINING EQUALS SIGN BELOW*/ + 0x348, /* U+000348: COMBINING DOUBLE VERTICAL LINE BELOW*/ + 0x349, /* U+000349: COMBINING LEFT ANGLE BELOW*/ + 0x34a, /* U+00034a: COMBINING NOT TILDE ABOVE*/ + 0x34b, /* U+00034b: COMBINING HOMOTHETIC ABOVE*/ + 0x34c, /* U+00034c: COMBINING ALMOST EQUAL TO ABOVE*/ + 0x34d, /* U+00034d: COMBINING LEFT RIGHT ARROW BELOW*/ + 0x34e, /* U+00034e: COMBINING UPWARDS ARROW BELOW*/ + 0x34f, /* U+00034f: COMBINING GRAPHEME JOINER*/ + 0x350, /* U+000350: COMBINING RIGHT ARROWHEAD ABOVE*/ + 0x351, /* U+000351: COMBINING LEFT HALF RING ABOVE*/ + 0x352, /* U+000352: COMBINING FERMATA*/ + 0x353, /* U+000353: COMBINING X BELOW*/ + 0x354, /* U+000354: COMBINING LEFT ARROWHEAD BELOW*/ + 0x355, /* U+000355: COMBINING RIGHT ARROWHEAD BELOW*/ + 0x356, /* U+000356: COMBINING RIGHT ARROWHEAD AND UP ARROWHEAD BELOW*/ + 0x357, /* U+000357: COMBINING RIGHT HALF RING ABOVE*/ + 0x358, /* U+000358: COMBINING DOT ABOVE RIGHT*/ + 0x359, /* U+000359: COMBINING ASTERISK BELOW*/ + 0x35a, /* U+00035a: COMBINING DOUBLE RING BELOW*/ + 0x35b, /* U+00035b: COMBINING ZIGZAG ABOVE*/ + 0x35c, /* U+00035c: COMBINING DOUBLE BREVE BELOW*/ + 0x35d, /* U+00035d: COMBINING DOUBLE BREVE*/ + 0x35e, /* U+00035e: COMBINING DOUBLE MACRON*/ + 0x35f, /* U+00035f: COMBINING DOUBLE MACRON BELOW*/ + 0x360, /* U+000360: COMBINING DOUBLE TILDE*/ + 0x361, /* U+000361: COMBINING DOUBLE INVERTED BREVE*/ + 0x362, /* U+000362: COMBINING DOUBLE RIGHTWARDS ARROW BELOW*/ + 0x363, /* U+000363: COMBINING LATIN SMALL LETTER A*/ + 0x364, /* U+000364: COMBINING LATIN SMALL LETTER E*/ + 0x365, /* U+000365: COMBINING LATIN SMALL LETTER I*/ + 0x366, /* U+000366: COMBINING LATIN SMALL LETTER O*/ + 0x367, /* U+000367: COMBINING LATIN SMALL LETTER U*/ + 0x368, /* U+000368: COMBINING LATIN SMALL LETTER C*/ + 0x369, /* U+000369: COMBINING LATIN SMALL LETTER D*/ + 0x36a, /* U+00036a: COMBINING LATIN SMALL LETTER H*/ + 0x36b, /* U+00036b: COMBINING LATIN SMALL LETTER M*/ + 0x36c, /* U+00036c: COMBINING LATIN SMALL LETTER R*/ + 0x36d, /* U+00036d: COMBINING LATIN SMALL LETTER T*/ + 0x36e, /* U+00036e: COMBINING LATIN SMALL LETTER V*/ + 0x36f, /* U+00036f: COMBINING LATIN SMALL LETTER X*/ + 0x371, /* U+000370: GREEK CAPITAL LETTER HETA*/ + 0x371, /* U+000371: GREEK SMALL LETTER HETA*/ + 0x373, /* U+000372: GREEK CAPITAL LETTER ARCHAIC SAMPI*/ + 0x373, /* U+000373: GREEK SMALL LETTER ARCHAIC SAMPI*/ + 0x374, /* U+000374: GREEK NUMERAL SIGN*/ + 0x375, /* U+000375: GREEK LOWER NUMERAL SIGN*/ + 0x377, /* U+000376: GREEK CAPITAL LETTER PAMPHYLIAN DIGAMMA*/ + 0x377, /* U+000377: GREEK SMALL LETTER PAMPHYLIAN DIGAMMA*/ + 0x378, /* U+000378: */ + 0x379, /* U+000379: */ + 0x37a, /* U+00037a: GREEK YPOGEGRAMMENI*/ + 0x37b, /* U+00037b: GREEK SMALL REVERSED LUNATE SIGMA SYMBOL*/ + 0x37c, /* U+00037c: GREEK SMALL DOTTED LUNATE SIGMA SYMBOL*/ + 0x37d, /* U+00037d: GREEK SMALL REVERSED DOTTED LUNATE SIGMA SYMBOL*/ + 0x37e, /* U+00037e: GREEK QUESTION MARK*/ + 0x37f, /* U+00037f: */ + 0x380, /* U+000380: */ + 0x381, /* U+000381: */ + 0x382, /* U+000382: */ + 0x383, /* U+000383: */ + 0x384, /* U+000384: GREEK TONOS*/ + 0x385, /* U+000385: GREEK DIALYTIKA TONOS*/ + 0x3ac, /* U+000386: GREEK CAPITAL LETTER ALPHA WITH TONOS*/ + 0x387, /* U+000387: GREEK ANO TELEIA*/ + 0x3ad, /* U+000388: GREEK CAPITAL LETTER EPSILON WITH TONOS*/ + 0x3ae, /* U+000389: GREEK CAPITAL LETTER ETA WITH TONOS*/ + 0x3af, /* U+00038a: GREEK CAPITAL LETTER IOTA WITH TONOS*/ + 0x38b, /* U+00038b: */ + 0x3cc, /* U+00038c: GREEK CAPITAL LETTER OMICRON WITH TONOS*/ + 0x38d, /* U+00038d: */ + 0x3cd, /* U+00038e: GREEK CAPITAL LETTER UPSILON WITH TONOS*/ + 0x3ce, /* U+00038f: GREEK CAPITAL LETTER OMEGA WITH TONOS*/ + 0x390, /* U+000390: GREEK SMALL LETTER IOTA WITH DIALYTIKA AND TONOS*/ + 0x3b1, /* U+000391: GREEK CAPITAL LETTER ALPHA*/ + 0x3b2, /* U+000392: GREEK CAPITAL LETTER BETA*/ + 0x3b3, /* U+000393: GREEK CAPITAL LETTER GAMMA*/ + 0x3b4, /* U+000394: GREEK CAPITAL LETTER DELTA*/ + 0x3b5, /* U+000395: GREEK CAPITAL LETTER EPSILON*/ + 0x3b6, /* U+000396: GREEK CAPITAL LETTER ZETA*/ + 0x3b7, /* U+000397: GREEK CAPITAL LETTER ETA*/ + 0x3b8, /* U+000398: GREEK CAPITAL LETTER THETA*/ + 0x3b9, /* U+000399: GREEK CAPITAL LETTER IOTA*/ + 0x3ba, /* U+00039a: GREEK CAPITAL LETTER KAPPA*/ + 0x3bb, /* U+00039b: GREEK CAPITAL LETTER LAMDA*/ + 0x3bc, /* U+00039c: GREEK CAPITAL LETTER MU*/ + 0x3bd, /* U+00039d: GREEK CAPITAL LETTER NU*/ + 0x3be, /* U+00039e: GREEK CAPITAL LETTER XI*/ + 0x3bf, /* U+00039f: GREEK CAPITAL LETTER OMICRON*/ + 0x3c0, /* U+0003a0: GREEK CAPITAL LETTER PI*/ + 0x3c1, /* U+0003a1: GREEK CAPITAL LETTER RHO*/ + 0x3a2, /* U+0003a2: */ + 0x3c3, /* U+0003a3: GREEK CAPITAL LETTER SIGMA*/ + 0x3c4, /* U+0003a4: GREEK CAPITAL LETTER TAU*/ + 0x3c5, /* U+0003a5: GREEK CAPITAL LETTER UPSILON*/ + 0x3c6, /* U+0003a6: GREEK CAPITAL LETTER PHI*/ + 0x3c7, /* U+0003a7: GREEK CAPITAL LETTER CHI*/ + 0x3c8, /* U+0003a8: GREEK CAPITAL LETTER PSI*/ + 0x3c9, /* U+0003a9: GREEK CAPITAL LETTER OMEGA*/ + 0x3ca, /* U+0003aa: GREEK CAPITAL LETTER IOTA WITH DIALYTIKA*/ + 0x3cb, /* U+0003ab: GREEK CAPITAL LETTER UPSILON WITH DIALYTIKA*/ + 0x3ac, /* U+0003ac: GREEK SMALL LETTER ALPHA WITH TONOS*/ + 0x3ad, /* U+0003ad: GREEK SMALL LETTER EPSILON WITH TONOS*/ + 0x3ae, /* U+0003ae: GREEK SMALL LETTER ETA WITH TONOS*/ + 0x3af, /* U+0003af: GREEK SMALL LETTER IOTA WITH TONOS*/ + 0x3b0, /* U+0003b0: GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND TONOS*/ + 0x3b1, /* U+0003b1: GREEK SMALL LETTER ALPHA*/ + 0x3b2, /* U+0003b2: GREEK SMALL LETTER BETA*/ + 0x3b3, /* U+0003b3: GREEK SMALL LETTER GAMMA*/ + 0x3b4, /* U+0003b4: GREEK SMALL LETTER DELTA*/ + 0x3b5, /* U+0003b5: GREEK SMALL LETTER EPSILON*/ + 0x3b6, /* U+0003b6: GREEK SMALL LETTER ZETA*/ + 0x3b7, /* U+0003b7: GREEK SMALL LETTER ETA*/ + 0x3b8, /* U+0003b8: GREEK SMALL LETTER THETA*/ + 0x3b9, /* U+0003b9: GREEK SMALL LETTER IOTA*/ + 0x3ba, /* U+0003ba: GREEK SMALL LETTER KAPPA*/ + 0x3bb, /* U+0003bb: GREEK SMALL LETTER LAMDA*/ + 0x3bc, /* U+0003bc: GREEK SMALL LETTER MU*/ + 0x3bd, /* U+0003bd: GREEK SMALL LETTER NU*/ + 0x3be, /* U+0003be: GREEK SMALL LETTER XI*/ + 0x3bf, /* U+0003bf: GREEK SMALL LETTER OMICRON*/ + 0x3c0, /* U+0003c0: GREEK SMALL LETTER PI*/ + 0x3c1, /* U+0003c1: GREEK SMALL LETTER RHO*/ + 0x3c2, /* U+0003c2: GREEK SMALL LETTER FINAL SIGMA*/ + 0x3c3, /* U+0003c3: GREEK SMALL LETTER SIGMA*/ + 0x3c4, /* U+0003c4: GREEK SMALL LETTER TAU*/ + 0x3c5, /* U+0003c5: GREEK SMALL LETTER UPSILON*/ + 0x3c6, /* U+0003c6: GREEK SMALL LETTER PHI*/ + 0x3c7, /* U+0003c7: GREEK SMALL LETTER CHI*/ + 0x3c8, /* U+0003c8: GREEK SMALL LETTER PSI*/ + 0x3c9, /* U+0003c9: GREEK SMALL LETTER OMEGA*/ + 0x3ca, /* U+0003ca: GREEK SMALL LETTER IOTA WITH DIALYTIKA*/ + 0x3cb, /* U+0003cb: GREEK SMALL LETTER UPSILON WITH DIALYTIKA*/ + 0x3cc, /* U+0003cc: GREEK SMALL LETTER OMICRON WITH TONOS*/ + 0x3cd, /* U+0003cd: GREEK SMALL LETTER UPSILON WITH TONOS*/ + 0x3ce, /* U+0003ce: GREEK SMALL LETTER OMEGA WITH TONOS*/ + 0x3d7, /* U+0003cf: GREEK CAPITAL KAI SYMBOL*/ + 0x3d0, /* U+0003d0: GREEK BETA SYMBOL*/ + 0x3d1, /* U+0003d1: GREEK THETA SYMBOL*/ + 0x3d2, /* U+0003d2: GREEK UPSILON WITH HOOK SYMBOL*/ + 0x3d3, /* U+0003d3: GREEK UPSILON WITH ACUTE AND HOOK SYMBOL*/ + 0x3d4, /* U+0003d4: GREEK UPSILON WITH DIAERESIS AND HOOK SYMBOL*/ + 0x3d5, /* U+0003d5: GREEK PHI SYMBOL*/ + 0x3d6, /* U+0003d6: GREEK PI SYMBOL*/ + 0x3d7, /* U+0003d7: GREEK KAI SYMBOL*/ + 0x3d9, /* U+0003d8: GREEK LETTER ARCHAIC KOPPA*/ + 0x3d9, /* U+0003d9: GREEK SMALL LETTER ARCHAIC KOPPA*/ + 0x3db, /* U+0003da: GREEK LETTER STIGMA*/ + 0x3db, /* U+0003db: GREEK SMALL LETTER STIGMA*/ + 0x3dd, /* U+0003dc: GREEK LETTER DIGAMMA*/ + 0x3dd, /* U+0003dd: GREEK SMALL LETTER DIGAMMA*/ + 0x3df, /* U+0003de: GREEK LETTER KOPPA*/ + 0x3df, /* U+0003df: GREEK SMALL LETTER KOPPA*/ + 0x3e1, /* U+0003e0: GREEK LETTER SAMPI*/ + 0x3e1, /* U+0003e1: GREEK SMALL LETTER SAMPI*/ + 0x3e3, /* U+0003e2: COPTIC CAPITAL LETTER SHEI*/ + 0x3e3, /* U+0003e3: COPTIC SMALL LETTER SHEI*/ + 0x3e5, /* U+0003e4: COPTIC CAPITAL LETTER FEI*/ + 0x3e5, /* U+0003e5: COPTIC SMALL LETTER FEI*/ + 0x3e7, /* U+0003e6: COPTIC CAPITAL LETTER KHEI*/ + 0x3e7, /* U+0003e7: COPTIC SMALL LETTER KHEI*/ + 0x3e9, /* U+0003e8: COPTIC CAPITAL LETTER HORI*/ + 0x3e9, /* U+0003e9: COPTIC SMALL LETTER HORI*/ + 0x3eb, /* U+0003ea: COPTIC CAPITAL LETTER GANGIA*/ + 0x3eb, /* U+0003eb: COPTIC SMALL LETTER GANGIA*/ + 0x3ed, /* U+0003ec: COPTIC CAPITAL LETTER SHIMA*/ + 0x3ed, /* U+0003ed: COPTIC SMALL LETTER SHIMA*/ + 0x3ef, /* U+0003ee: COPTIC CAPITAL LETTER DEI*/ + 0x3ef, /* U+0003ef: COPTIC SMALL LETTER DEI*/ + 0x3f0, /* U+0003f0: GREEK KAPPA SYMBOL*/ + 0x3f1, /* U+0003f1: GREEK RHO SYMBOL*/ + 0x3f2, /* U+0003f2: GREEK LUNATE SIGMA SYMBOL*/ + 0x3f3, /* U+0003f3: GREEK LETTER YOT*/ + 0x3b8, /* U+0003f4: GREEK CAPITAL THETA SYMBOL*/ + 0x3f5, /* U+0003f5: GREEK LUNATE EPSILON SYMBOL*/ + 0x3f6, /* U+0003f6: GREEK REVERSED LUNATE EPSILON SYMBOL*/ + 0x3f8, /* U+0003f7: GREEK CAPITAL LETTER SHO*/ + 0x3f8, /* U+0003f8: GREEK SMALL LETTER SHO*/ + 0x3f2, /* U+0003f9: GREEK CAPITAL LUNATE SIGMA SYMBOL*/ + 0x3fb, /* U+0003fa: GREEK CAPITAL LETTER SAN*/ + 0x3fb, /* U+0003fb: GREEK SMALL LETTER SAN*/ + 0x3fc, /* U+0003fc: GREEK RHO WITH STROKE SYMBOL*/ + 0x37b, /* U+0003fd: GREEK CAPITAL REVERSED LUNATE SIGMA SYMBOL*/ + 0x37c, /* U+0003fe: GREEK CAPITAL DOTTED LUNATE SIGMA SYMBOL*/ + 0x37d, /* U+0003ff: GREEK CAPITAL REVERSED DOTTED LUNATE SIGMA SYMBOL*/ + 0x450, /* U+000400: CYRILLIC CAPITAL LETTER IE WITH GRAVE*/ + 0x451, /* U+000401: CYRILLIC CAPITAL LETTER IO*/ + 0x452, /* U+000402: CYRILLIC CAPITAL LETTER DJE*/ + 0x453, /* U+000403: CYRILLIC CAPITAL LETTER GJE*/ + 0x454, /* U+000404: CYRILLIC CAPITAL LETTER UKRAINIAN IE*/ + 0x455, /* U+000405: CYRILLIC CAPITAL LETTER DZE*/ + 0x456, /* U+000406: CYRILLIC CAPITAL LETTER BYELORUSSIAN-UKRAINIAN I*/ + 0x457, /* U+000407: CYRILLIC CAPITAL LETTER YI*/ + 0x458, /* U+000408: CYRILLIC CAPITAL LETTER JE*/ + 0x459, /* U+000409: CYRILLIC CAPITAL LETTER LJE*/ + 0x45a, /* U+00040a: CYRILLIC CAPITAL LETTER NJE*/ + 0x45b, /* U+00040b: CYRILLIC CAPITAL LETTER TSHE*/ + 0x45c, /* U+00040c: CYRILLIC CAPITAL LETTER KJE*/ + 0x45d, /* U+00040d: CYRILLIC CAPITAL LETTER I WITH GRAVE*/ + 0x45e, /* U+00040e: CYRILLIC CAPITAL LETTER SHORT U*/ + 0x45f, /* U+00040f: CYRILLIC CAPITAL LETTER DZHE*/ + 0x430, /* U+000410: CYRILLIC CAPITAL LETTER A*/ + 0x431, /* U+000411: CYRILLIC CAPITAL LETTER BE*/ + 0x432, /* U+000412: CYRILLIC CAPITAL LETTER VE*/ + 0x433, /* U+000413: CYRILLIC CAPITAL LETTER GHE*/ + 0x434, /* U+000414: CYRILLIC CAPITAL LETTER DE*/ + 0x435, /* U+000415: CYRILLIC CAPITAL LETTER IE*/ + 0x436, /* U+000416: CYRILLIC CAPITAL LETTER ZHE*/ + 0x437, /* U+000417: CYRILLIC CAPITAL LETTER ZE*/ + 0x438, /* U+000418: CYRILLIC CAPITAL LETTER I*/ + 0x439, /* U+000419: CYRILLIC CAPITAL LETTER SHORT I*/ + 0x43a, /* U+00041a: CYRILLIC CAPITAL LETTER KA*/ + 0x43b, /* U+00041b: CYRILLIC CAPITAL LETTER EL*/ + 0x43c, /* U+00041c: CYRILLIC CAPITAL LETTER EM*/ + 0x43d, /* U+00041d: CYRILLIC CAPITAL LETTER EN*/ + 0x43e, /* U+00041e: CYRILLIC CAPITAL LETTER O*/ + 0x43f, /* U+00041f: CYRILLIC CAPITAL LETTER PE*/ + 0x440, /* U+000420: CYRILLIC CAPITAL LETTER ER*/ + 0x441, /* U+000421: CYRILLIC CAPITAL LETTER ES*/ + 0x442, /* U+000422: CYRILLIC CAPITAL LETTER TE*/ + 0x443, /* U+000423: CYRILLIC CAPITAL LETTER U*/ + 0x444, /* U+000424: CYRILLIC CAPITAL LETTER EF*/ + 0x445, /* U+000425: CYRILLIC CAPITAL LETTER HA*/ + 0x446, /* U+000426: CYRILLIC CAPITAL LETTER TSE*/ + 0x447, /* U+000427: CYRILLIC CAPITAL LETTER CHE*/ + 0x448, /* U+000428: CYRILLIC CAPITAL LETTER SHA*/ + 0x449, /* U+000429: CYRILLIC CAPITAL LETTER SHCHA*/ + 0x44a, /* U+00042a: CYRILLIC CAPITAL LETTER HARD SIGN*/ + 0x44b, /* U+00042b: CYRILLIC CAPITAL LETTER YERU*/ + 0x44c, /* U+00042c: CYRILLIC CAPITAL LETTER SOFT SIGN*/ + 0x44d, /* U+00042d: CYRILLIC CAPITAL LETTER E*/ + 0x44e, /* U+00042e: CYRILLIC CAPITAL LETTER YU*/ + 0x44f, /* U+00042f: CYRILLIC CAPITAL LETTER YA*/ + 0x430, /* U+000430: CYRILLIC SMALL LETTER A*/ + 0x431, /* U+000431: CYRILLIC SMALL LETTER BE*/ + 0x432, /* U+000432: CYRILLIC SMALL LETTER VE*/ + 0x433, /* U+000433: CYRILLIC SMALL LETTER GHE*/ + 0x434, /* U+000434: CYRILLIC SMALL LETTER DE*/ + 0x435, /* U+000435: CYRILLIC SMALL LETTER IE*/ + 0x436, /* U+000436: CYRILLIC SMALL LETTER ZHE*/ + 0x437, /* U+000437: CYRILLIC SMALL LETTER ZE*/ + 0x438, /* U+000438: CYRILLIC SMALL LETTER I*/ + 0x439, /* U+000439: CYRILLIC SMALL LETTER SHORT I*/ + 0x43a, /* U+00043a: CYRILLIC SMALL LETTER KA*/ + 0x43b, /* U+00043b: CYRILLIC SMALL LETTER EL*/ + 0x43c, /* U+00043c: CYRILLIC SMALL LETTER EM*/ + 0x43d, /* U+00043d: CYRILLIC SMALL LETTER EN*/ + 0x43e, /* U+00043e: CYRILLIC SMALL LETTER O*/ + 0x43f, /* U+00043f: CYRILLIC SMALL LETTER PE*/ + 0x440, /* U+000440: CYRILLIC SMALL LETTER ER*/ + 0x441, /* U+000441: CYRILLIC SMALL LETTER ES*/ + 0x442, /* U+000442: CYRILLIC SMALL LETTER TE*/ + 0x443, /* U+000443: CYRILLIC SMALL LETTER U*/ + 0x444, /* U+000444: CYRILLIC SMALL LETTER EF*/ + 0x445, /* U+000445: CYRILLIC SMALL LETTER HA*/ + 0x446, /* U+000446: CYRILLIC SMALL LETTER TSE*/ + 0x447, /* U+000447: CYRILLIC SMALL LETTER CHE*/ + 0x448, /* U+000448: CYRILLIC SMALL LETTER SHA*/ + 0x449, /* U+000449: CYRILLIC SMALL LETTER SHCHA*/ + 0x44a, /* U+00044a: CYRILLIC SMALL LETTER HARD SIGN*/ + 0x44b, /* U+00044b: CYRILLIC SMALL LETTER YERU*/ + 0x44c, /* U+00044c: CYRILLIC SMALL LETTER SOFT SIGN*/ + 0x44d, /* U+00044d: CYRILLIC SMALL LETTER E*/ + 0x44e, /* U+00044e: CYRILLIC SMALL LETTER YU*/ + 0x44f, /* U+00044f: CYRILLIC SMALL LETTER YA*/ + 0x450, /* U+000450: CYRILLIC SMALL LETTER IE WITH GRAVE*/ + 0x451, /* U+000451: CYRILLIC SMALL LETTER IO*/ + 0x452, /* U+000452: CYRILLIC SMALL LETTER DJE*/ + 0x453, /* U+000453: CYRILLIC SMALL LETTER GJE*/ + 0x454, /* U+000454: CYRILLIC SMALL LETTER UKRAINIAN IE*/ + 0x455, /* U+000455: CYRILLIC SMALL LETTER DZE*/ + 0x456, /* U+000456: CYRILLIC SMALL LETTER BYELORUSSIAN-UKRAINIAN I*/ + 0x457, /* U+000457: CYRILLIC SMALL LETTER YI*/ + 0x458, /* U+000458: CYRILLIC SMALL LETTER JE*/ + 0x459, /* U+000459: CYRILLIC SMALL LETTER LJE*/ + 0x45a, /* U+00045a: CYRILLIC SMALL LETTER NJE*/ + 0x45b, /* U+00045b: CYRILLIC SMALL LETTER TSHE*/ + 0x45c, /* U+00045c: CYRILLIC SMALL LETTER KJE*/ + 0x45d, /* U+00045d: CYRILLIC SMALL LETTER I WITH GRAVE*/ + 0x45e, /* U+00045e: CYRILLIC SMALL LETTER SHORT U*/ + 0x45f, /* U+00045f: CYRILLIC SMALL LETTER DZHE*/ + 0x461, /* U+000460: CYRILLIC CAPITAL LETTER OMEGA*/ + 0x461, /* U+000461: CYRILLIC SMALL LETTER OMEGA*/ + 0x463, /* U+000462: CYRILLIC CAPITAL LETTER YAT*/ + 0x463, /* U+000463: CYRILLIC SMALL LETTER YAT*/ + 0x465, /* U+000464: CYRILLIC CAPITAL LETTER IOTIFIED E*/ + 0x465, /* U+000465: CYRILLIC SMALL LETTER IOTIFIED E*/ + 0x467, /* U+000466: CYRILLIC CAPITAL LETTER LITTLE YUS*/ + 0x467, /* U+000467: CYRILLIC SMALL LETTER LITTLE YUS*/ + 0x469, /* U+000468: CYRILLIC CAPITAL LETTER IOTIFIED LITTLE YUS*/ + 0x469, /* U+000469: CYRILLIC SMALL LETTER IOTIFIED LITTLE YUS*/ + 0x46b, /* U+00046a: CYRILLIC CAPITAL LETTER BIG YUS*/ + 0x46b, /* U+00046b: CYRILLIC SMALL LETTER BIG YUS*/ + 0x46d, /* U+00046c: CYRILLIC CAPITAL LETTER IOTIFIED BIG YUS*/ + 0x46d, /* U+00046d: CYRILLIC SMALL LETTER IOTIFIED BIG YUS*/ + 0x46f, /* U+00046e: CYRILLIC CAPITAL LETTER KSI*/ + 0x46f, /* U+00046f: CYRILLIC SMALL LETTER KSI*/ + 0x471, /* U+000470: CYRILLIC CAPITAL LETTER PSI*/ + 0x471, /* U+000471: CYRILLIC SMALL LETTER PSI*/ + 0x473, /* U+000472: CYRILLIC CAPITAL LETTER FITA*/ + 0x473, /* U+000473: CYRILLIC SMALL LETTER FITA*/ + 0x475, /* U+000474: CYRILLIC CAPITAL LETTER IZHITSA*/ + 0x475, /* U+000475: CYRILLIC SMALL LETTER IZHITSA*/ + 0x477, /* U+000476: CYRILLIC CAPITAL LETTER IZHITSA WITH DOUBLE GRAVE ACCENT*/ + 0x477, /* U+000477: CYRILLIC SMALL LETTER IZHITSA WITH DOUBLE GRAVE ACCENT*/ + 0x479, /* U+000478: CYRILLIC CAPITAL LETTER UK*/ + 0x479, /* U+000479: CYRILLIC SMALL LETTER UK*/ + 0x47b, /* U+00047a: CYRILLIC CAPITAL LETTER ROUND OMEGA*/ + 0x47b, /* U+00047b: CYRILLIC SMALL LETTER ROUND OMEGA*/ + 0x47d, /* U+00047c: CYRILLIC CAPITAL LETTER OMEGA WITH TITLO*/ + 0x47d, /* U+00047d: CYRILLIC SMALL LETTER OMEGA WITH TITLO*/ + 0x47f, /* U+00047e: CYRILLIC CAPITAL LETTER OT*/ + 0x47f, /* U+00047f: CYRILLIC SMALL LETTER OT*/ + 0x481, /* U+000480: CYRILLIC CAPITAL LETTER KOPPA*/ + 0x481, /* U+000481: CYRILLIC SMALL LETTER KOPPA*/ + 0x482, /* U+000482: CYRILLIC THOUSANDS SIGN*/ + 0x483, /* U+000483: COMBINING CYRILLIC TITLO*/ + 0x484, /* U+000484: COMBINING CYRILLIC PALATALIZATION*/ + 0x485, /* U+000485: COMBINING CYRILLIC DASIA PNEUMATA*/ + 0x486, /* U+000486: COMBINING CYRILLIC PSILI PNEUMATA*/ + 0x487, /* U+000487: COMBINING CYRILLIC POKRYTIE*/ + 0x488, /* U+000488: COMBINING CYRILLIC HUNDRED THOUSANDS SIGN*/ + 0x489, /* U+000489: COMBINING CYRILLIC MILLIONS SIGN*/ + 0x48b, /* U+00048a: CYRILLIC CAPITAL LETTER SHORT I WITH TAIL*/ + 0x48b, /* U+00048b: CYRILLIC SMALL LETTER SHORT I WITH TAIL*/ + 0x48d, /* U+00048c: CYRILLIC CAPITAL LETTER SEMISOFT SIGN*/ + 0x48d, /* U+00048d: CYRILLIC SMALL LETTER SEMISOFT SIGN*/ + 0x48f, /* U+00048e: CYRILLIC CAPITAL LETTER ER WITH TICK*/ + 0x48f, /* U+00048f: CYRILLIC SMALL LETTER ER WITH TICK*/ + 0x491, /* U+000490: CYRILLIC CAPITAL LETTER GHE WITH UPTURN*/ + 0x491, /* U+000491: CYRILLIC SMALL LETTER GHE WITH UPTURN*/ + 0x493, /* U+000492: CYRILLIC CAPITAL LETTER GHE WITH STROKE*/ + 0x493, /* U+000493: CYRILLIC SMALL LETTER GHE WITH STROKE*/ + 0x495, /* U+000494: CYRILLIC CAPITAL LETTER GHE WITH MIDDLE HOOK*/ + 0x495, /* U+000495: CYRILLIC SMALL LETTER GHE WITH MIDDLE HOOK*/ + 0x497, /* U+000496: CYRILLIC CAPITAL LETTER ZHE WITH DESCENDER*/ + 0x497, /* U+000497: CYRILLIC SMALL LETTER ZHE WITH DESCENDER*/ + 0x499, /* U+000498: CYRILLIC CAPITAL LETTER ZE WITH DESCENDER*/ + 0x499, /* U+000499: CYRILLIC SMALL LETTER ZE WITH DESCENDER*/ + 0x49b, /* U+00049a: CYRILLIC CAPITAL LETTER KA WITH DESCENDER*/ + 0x49b, /* U+00049b: CYRILLIC SMALL LETTER KA WITH DESCENDER*/ + 0x49d, /* U+00049c: CYRILLIC CAPITAL LETTER KA WITH VERTICAL STROKE*/ + 0x49d, /* U+00049d: CYRILLIC SMALL LETTER KA WITH VERTICAL STROKE*/ + 0x49f, /* U+00049e: CYRILLIC CAPITAL LETTER KA WITH STROKE*/ + 0x49f, /* U+00049f: CYRILLIC SMALL LETTER KA WITH STROKE*/ + 0x4a1, /* U+0004a0: CYRILLIC CAPITAL LETTER BASHKIR KA*/ + 0x4a1, /* U+0004a1: CYRILLIC SMALL LETTER BASHKIR KA*/ + 0x4a3, /* U+0004a2: CYRILLIC CAPITAL LETTER EN WITH DESCENDER*/ + 0x4a3, /* U+0004a3: CYRILLIC SMALL LETTER EN WITH DESCENDER*/ + 0x4a5, /* U+0004a4: CYRILLIC CAPITAL LIGATURE EN GHE*/ + 0x4a5, /* U+0004a5: CYRILLIC SMALL LIGATURE EN GHE*/ + 0x4a7, /* U+0004a6: CYRILLIC CAPITAL LETTER PE WITH MIDDLE HOOK*/ + 0x4a7, /* U+0004a7: CYRILLIC SMALL LETTER PE WITH MIDDLE HOOK*/ + 0x4a9, /* U+0004a8: CYRILLIC CAPITAL LETTER ABKHASIAN HA*/ + 0x4a9, /* U+0004a9: CYRILLIC SMALL LETTER ABKHASIAN HA*/ + 0x4ab, /* U+0004aa: CYRILLIC CAPITAL LETTER ES WITH DESCENDER*/ + 0x4ab, /* U+0004ab: CYRILLIC SMALL LETTER ES WITH DESCENDER*/ + 0x4ad, /* U+0004ac: CYRILLIC CAPITAL LETTER TE WITH DESCENDER*/ + 0x4ad, /* U+0004ad: CYRILLIC SMALL LETTER TE WITH DESCENDER*/ + 0x4af, /* U+0004ae: CYRILLIC CAPITAL LETTER STRAIGHT U*/ + 0x4af, /* U+0004af: CYRILLIC SMALL LETTER STRAIGHT U*/ + 0x4b1, /* U+0004b0: CYRILLIC CAPITAL LETTER STRAIGHT U WITH STROKE*/ + 0x4b1, /* U+0004b1: CYRILLIC SMALL LETTER STRAIGHT U WITH STROKE*/ + 0x4b3, /* U+0004b2: CYRILLIC CAPITAL LETTER HA WITH DESCENDER*/ + 0x4b3, /* U+0004b3: CYRILLIC SMALL LETTER HA WITH DESCENDER*/ + 0x4b5, /* U+0004b4: CYRILLIC CAPITAL LIGATURE TE TSE*/ + 0x4b5, /* U+0004b5: CYRILLIC SMALL LIGATURE TE TSE*/ + 0x4b7, /* U+0004b6: CYRILLIC CAPITAL LETTER CHE WITH DESCENDER*/ + 0x4b7, /* U+0004b7: CYRILLIC SMALL LETTER CHE WITH DESCENDER*/ + 0x4b9, /* U+0004b8: CYRILLIC CAPITAL LETTER CHE WITH VERTICAL STROKE*/ + 0x4b9, /* U+0004b9: CYRILLIC SMALL LETTER CHE WITH VERTICAL STROKE*/ + 0x4bb, /* U+0004ba: CYRILLIC CAPITAL LETTER SHHA*/ + 0x4bb, /* U+0004bb: CYRILLIC SMALL LETTER SHHA*/ + 0x4bd, /* U+0004bc: CYRILLIC CAPITAL LETTER ABKHASIAN CHE*/ + 0x4bd, /* U+0004bd: CYRILLIC SMALL LETTER ABKHASIAN CHE*/ + 0x4bf, /* U+0004be: CYRILLIC CAPITAL LETTER ABKHASIAN CHE WITH DESCENDER*/ + 0x4bf, /* U+0004bf: CYRILLIC SMALL LETTER ABKHASIAN CHE WITH DESCENDER*/ + 0x4cf, /* U+0004c0: CYRILLIC LETTER PALOCHKA*/ + 0x4c2, /* U+0004c1: CYRILLIC CAPITAL LETTER ZHE WITH BREVE*/ + 0x4c2, /* U+0004c2: CYRILLIC SMALL LETTER ZHE WITH BREVE*/ + 0x4c4, /* U+0004c3: CYRILLIC CAPITAL LETTER KA WITH HOOK*/ + 0x4c4, /* U+0004c4: CYRILLIC SMALL LETTER KA WITH HOOK*/ + 0x4c6, /* U+0004c5: CYRILLIC CAPITAL LETTER EL WITH TAIL*/ + 0x4c6, /* U+0004c6: CYRILLIC SMALL LETTER EL WITH TAIL*/ + 0x4c8, /* U+0004c7: CYRILLIC CAPITAL LETTER EN WITH HOOK*/ + 0x4c8, /* U+0004c8: CYRILLIC SMALL LETTER EN WITH HOOK*/ + 0x4ca, /* U+0004c9: CYRILLIC CAPITAL LETTER EN WITH TAIL*/ + 0x4ca, /* U+0004ca: CYRILLIC SMALL LETTER EN WITH TAIL*/ + 0x4cc, /* U+0004cb: CYRILLIC CAPITAL LETTER KHAKASSIAN CHE*/ + 0x4cc, /* U+0004cc: CYRILLIC SMALL LETTER KHAKASSIAN CHE*/ + 0x4ce, /* U+0004cd: CYRILLIC CAPITAL LETTER EM WITH TAIL*/ + 0x4ce, /* U+0004ce: CYRILLIC SMALL LETTER EM WITH TAIL*/ + 0x4cf, /* U+0004cf: CYRILLIC SMALL LETTER PALOCHKA*/ + 0x4d1, /* U+0004d0: CYRILLIC CAPITAL LETTER A WITH BREVE*/ + 0x4d1, /* U+0004d1: CYRILLIC SMALL LETTER A WITH BREVE*/ + 0x4d3, /* U+0004d2: CYRILLIC CAPITAL LETTER A WITH DIAERESIS*/ + 0x4d3, /* U+0004d3: CYRILLIC SMALL LETTER A WITH DIAERESIS*/ + 0x4d5, /* U+0004d4: CYRILLIC CAPITAL LIGATURE A IE*/ + 0x4d5, /* U+0004d5: CYRILLIC SMALL LIGATURE A IE*/ + 0x4d7, /* U+0004d6: CYRILLIC CAPITAL LETTER IE WITH BREVE*/ + 0x4d7, /* U+0004d7: CYRILLIC SMALL LETTER IE WITH BREVE*/ + 0x4d9, /* U+0004d8: CYRILLIC CAPITAL LETTER SCHWA*/ + 0x4d9, /* U+0004d9: CYRILLIC SMALL LETTER SCHWA*/ + 0x4db, /* U+0004da: CYRILLIC CAPITAL LETTER SCHWA WITH DIAERESIS*/ + 0x4db, /* U+0004db: CYRILLIC SMALL LETTER SCHWA WITH DIAERESIS*/ + 0x4dd, /* U+0004dc: CYRILLIC CAPITAL LETTER ZHE WITH DIAERESIS*/ + 0x4dd, /* U+0004dd: CYRILLIC SMALL LETTER ZHE WITH DIAERESIS*/ + 0x4df, /* U+0004de: CYRILLIC CAPITAL LETTER ZE WITH DIAERESIS*/ + 0x4df, /* U+0004df: CYRILLIC SMALL LETTER ZE WITH DIAERESIS*/ + 0x4e1, /* U+0004e0: CYRILLIC CAPITAL LETTER ABKHASIAN DZE*/ + 0x4e1, /* U+0004e1: CYRILLIC SMALL LETTER ABKHASIAN DZE*/ + 0x4e3, /* U+0004e2: CYRILLIC CAPITAL LETTER I WITH MACRON*/ + 0x4e3, /* U+0004e3: CYRILLIC SMALL LETTER I WITH MACRON*/ + 0x4e5, /* U+0004e4: CYRILLIC CAPITAL LETTER I WITH DIAERESIS*/ + 0x4e5, /* U+0004e5: CYRILLIC SMALL LETTER I WITH DIAERESIS*/ + 0x4e7, /* U+0004e6: CYRILLIC CAPITAL LETTER O WITH DIAERESIS*/ + 0x4e7, /* U+0004e7: CYRILLIC SMALL LETTER O WITH DIAERESIS*/ + 0x4e9, /* U+0004e8: CYRILLIC CAPITAL LETTER BARRED O*/ + 0x4e9, /* U+0004e9: CYRILLIC SMALL LETTER BARRED O*/ + 0x4eb, /* U+0004ea: CYRILLIC CAPITAL LETTER BARRED O WITH DIAERESIS*/ + 0x4eb, /* U+0004eb: CYRILLIC SMALL LETTER BARRED O WITH DIAERESIS*/ + 0x4ed, /* U+0004ec: CYRILLIC CAPITAL LETTER E WITH DIAERESIS*/ + 0x4ed, /* U+0004ed: CYRILLIC SMALL LETTER E WITH DIAERESIS*/ + 0x4ef, /* U+0004ee: CYRILLIC CAPITAL LETTER U WITH MACRON*/ + 0x4ef, /* U+0004ef: CYRILLIC SMALL LETTER U WITH MACRON*/ + 0x4f1, /* U+0004f0: CYRILLIC CAPITAL LETTER U WITH DIAERESIS*/ + 0x4f1, /* U+0004f1: CYRILLIC SMALL LETTER U WITH DIAERESIS*/ + 0x4f3, /* U+0004f2: CYRILLIC CAPITAL LETTER U WITH DOUBLE ACUTE*/ + 0x4f3, /* U+0004f3: CYRILLIC SMALL LETTER U WITH DOUBLE ACUTE*/ + 0x4f5, /* U+0004f4: CYRILLIC CAPITAL LETTER CHE WITH DIAERESIS*/ + 0x4f5, /* U+0004f5: CYRILLIC SMALL LETTER CHE WITH DIAERESIS*/ + 0x4f7, /* U+0004f6: CYRILLIC CAPITAL LETTER GHE WITH DESCENDER*/ + 0x4f7, /* U+0004f7: CYRILLIC SMALL LETTER GHE WITH DESCENDER*/ + 0x4f9, /* U+0004f8: CYRILLIC CAPITAL LETTER YERU WITH DIAERESIS*/ + 0x4f9, /* U+0004f9: CYRILLIC SMALL LETTER YERU WITH DIAERESIS*/ + 0x4fb, /* U+0004fa: CYRILLIC CAPITAL LETTER GHE WITH STROKE AND HOOK*/ + 0x4fb, /* U+0004fb: CYRILLIC SMALL LETTER GHE WITH STROKE AND HOOK*/ + 0x4fd, /* U+0004fc: CYRILLIC CAPITAL LETTER HA WITH HOOK*/ + 0x4fd, /* U+0004fd: CYRILLIC SMALL LETTER HA WITH HOOK*/ + 0x4ff, /* U+0004fe: CYRILLIC CAPITAL LETTER HA WITH STROKE*/ + 0x4ff, /* U+0004ff: CYRILLIC SMALL LETTER HA WITH STROKE*/ + 0x501, /* U+000500: CYRILLIC CAPITAL LETTER KOMI DE*/ + 0x501, /* U+000501: CYRILLIC SMALL LETTER KOMI DE*/ + 0x503, /* U+000502: CYRILLIC CAPITAL LETTER KOMI DJE*/ + 0x503, /* U+000503: CYRILLIC SMALL LETTER KOMI DJE*/ + 0x505, /* U+000504: CYRILLIC CAPITAL LETTER KOMI ZJE*/ + 0x505, /* U+000505: CYRILLIC SMALL LETTER KOMI ZJE*/ + 0x507, /* U+000506: CYRILLIC CAPITAL LETTER KOMI DZJE*/ + 0x507, /* U+000507: CYRILLIC SMALL LETTER KOMI DZJE*/ + 0x509, /* U+000508: CYRILLIC CAPITAL LETTER KOMI LJE*/ + 0x509, /* U+000509: CYRILLIC SMALL LETTER KOMI LJE*/ + 0x50b, /* U+00050a: CYRILLIC CAPITAL LETTER KOMI NJE*/ + 0x50b, /* U+00050b: CYRILLIC SMALL LETTER KOMI NJE*/ + 0x50d, /* U+00050c: CYRILLIC CAPITAL LETTER KOMI SJE*/ + 0x50d, /* U+00050d: CYRILLIC SMALL LETTER KOMI SJE*/ + 0x50f, /* U+00050e: CYRILLIC CAPITAL LETTER KOMI TJE*/ + 0x50f, /* U+00050f: CYRILLIC SMALL LETTER KOMI TJE*/ + 0x511, /* U+000510: CYRILLIC CAPITAL LETTER REVERSED ZE*/ + 0x511, /* U+000511: CYRILLIC SMALL LETTER REVERSED ZE*/ + 0x513, /* U+000512: CYRILLIC CAPITAL LETTER EL WITH HOOK*/ + 0x513, /* U+000513: CYRILLIC SMALL LETTER EL WITH HOOK*/ + 0x515, /* U+000514: CYRILLIC CAPITAL LETTER LHA*/ + 0x515, /* U+000515: CYRILLIC SMALL LETTER LHA*/ + 0x517, /* U+000516: CYRILLIC CAPITAL LETTER RHA*/ + 0x517, /* U+000517: CYRILLIC SMALL LETTER RHA*/ + 0x519, /* U+000518: CYRILLIC CAPITAL LETTER YAE*/ + 0x519, /* U+000519: CYRILLIC SMALL LETTER YAE*/ + 0x51b, /* U+00051a: CYRILLIC CAPITAL LETTER QA*/ + 0x51b, /* U+00051b: CYRILLIC SMALL LETTER QA*/ + 0x51d, /* U+00051c: CYRILLIC CAPITAL LETTER WE*/ + 0x51d, /* U+00051d: CYRILLIC SMALL LETTER WE*/ + 0x51f, /* U+00051e: CYRILLIC CAPITAL LETTER ALEUT KA*/ + 0x51f, /* U+00051f: CYRILLIC SMALL LETTER ALEUT KA*/ + 0x521, /* U+000520: CYRILLIC CAPITAL LETTER EL WITH MIDDLE HOOK*/ + 0x521, /* U+000521: CYRILLIC SMALL LETTER EL WITH MIDDLE HOOK*/ + 0x523, /* U+000522: CYRILLIC CAPITAL LETTER EN WITH MIDDLE HOOK*/ + 0x523, /* U+000523: CYRILLIC SMALL LETTER EN WITH MIDDLE HOOK*/ + 0x525, /* U+000524: CYRILLIC CAPITAL LETTER PE WITH DESCENDER*/ + 0x525, /* U+000525: CYRILLIC SMALL LETTER PE WITH DESCENDER*/ + 0x527, /* U+000526: CYRILLIC CAPITAL LETTER SHHA WITH DESCENDER*/ + 0x527, /* U+000527: CYRILLIC SMALL LETTER SHHA WITH DESCENDER*/ + 0x528, /* U+000528: */ + 0x529, /* U+000529: */ + 0x52a, /* U+00052a: */ + 0x52b, /* U+00052b: */ + 0x52c, /* U+00052c: */ + 0x52d, /* U+00052d: */ + 0x52e, /* U+00052e: */ + 0x52f, /* U+00052f: */ + 0x530, /* U+000530: */ + 0x561, /* U+000531: ARMENIAN CAPITAL LETTER AYB*/ + 0x562, /* U+000532: ARMENIAN CAPITAL LETTER BEN*/ + 0x563, /* U+000533: ARMENIAN CAPITAL LETTER GIM*/ + 0x564, /* U+000534: ARMENIAN CAPITAL LETTER DA*/ + 0x565, /* U+000535: ARMENIAN CAPITAL LETTER ECH*/ + 0x566, /* U+000536: ARMENIAN CAPITAL LETTER ZA*/ + 0x567, /* U+000537: ARMENIAN CAPITAL LETTER EH*/ + 0x568, /* U+000538: ARMENIAN CAPITAL LETTER ET*/ + 0x569, /* U+000539: ARMENIAN CAPITAL LETTER TO*/ + 0x56a, /* U+00053a: ARMENIAN CAPITAL LETTER ZHE*/ + 0x56b, /* U+00053b: ARMENIAN CAPITAL LETTER INI*/ + 0x56c, /* U+00053c: ARMENIAN CAPITAL LETTER LIWN*/ + 0x56d, /* U+00053d: ARMENIAN CAPITAL LETTER XEH*/ + 0x56e, /* U+00053e: ARMENIAN CAPITAL LETTER CA*/ + 0x56f, /* U+00053f: ARMENIAN CAPITAL LETTER KEN*/ + 0x570, /* U+000540: ARMENIAN CAPITAL LETTER HO*/ + 0x571, /* U+000541: ARMENIAN CAPITAL LETTER JA*/ + 0x572, /* U+000542: ARMENIAN CAPITAL LETTER GHAD*/ + 0x573, /* U+000543: ARMENIAN CAPITAL LETTER CHEH*/ + 0x574, /* U+000544: ARMENIAN CAPITAL LETTER MEN*/ + 0x575, /* U+000545: ARMENIAN CAPITAL LETTER YI*/ + 0x576, /* U+000546: ARMENIAN CAPITAL LETTER NOW*/ + 0x577, /* U+000547: ARMENIAN CAPITAL LETTER SHA*/ + 0x578, /* U+000548: ARMENIAN CAPITAL LETTER VO*/ + 0x579, /* U+000549: ARMENIAN CAPITAL LETTER CHA*/ + 0x57a, /* U+00054a: ARMENIAN CAPITAL LETTER PEH*/ + 0x57b, /* U+00054b: ARMENIAN CAPITAL LETTER JHEH*/ + 0x57c, /* U+00054c: ARMENIAN CAPITAL LETTER RA*/ + 0x57d, /* U+00054d: ARMENIAN CAPITAL LETTER SEH*/ + 0x57e, /* U+00054e: ARMENIAN CAPITAL LETTER VEW*/ + 0x57f, /* U+00054f: ARMENIAN CAPITAL LETTER TIWN*/ + 0x580, /* U+000550: ARMENIAN CAPITAL LETTER REH*/ + 0x581, /* U+000551: ARMENIAN CAPITAL LETTER CO*/ + 0x582, /* U+000552: ARMENIAN CAPITAL LETTER YIWN*/ + 0x583, /* U+000553: ARMENIAN CAPITAL LETTER PIWR*/ + 0x584, /* U+000554: ARMENIAN CAPITAL LETTER KEH*/ + 0x585, /* U+000555: ARMENIAN CAPITAL LETTER OH*/ + 0x586, /* U+000556: ARMENIAN CAPITAL LETTER FEH*/ +}; + +static const RTUNICP g_afRTUniLower0x0010a0[] = +{ + 0x2d00, /* U+0010a0: GEORGIAN CAPITAL LETTER AN*/ + 0x2d01, /* U+0010a1: GEORGIAN CAPITAL LETTER BAN*/ + 0x2d02, /* U+0010a2: GEORGIAN CAPITAL LETTER GAN*/ + 0x2d03, /* U+0010a3: GEORGIAN CAPITAL LETTER DON*/ + 0x2d04, /* U+0010a4: GEORGIAN CAPITAL LETTER EN*/ + 0x2d05, /* U+0010a5: GEORGIAN CAPITAL LETTER VIN*/ + 0x2d06, /* U+0010a6: GEORGIAN CAPITAL LETTER ZEN*/ + 0x2d07, /* U+0010a7: GEORGIAN CAPITAL LETTER TAN*/ + 0x2d08, /* U+0010a8: GEORGIAN CAPITAL LETTER IN*/ + 0x2d09, /* U+0010a9: GEORGIAN CAPITAL LETTER KAN*/ + 0x2d0a, /* U+0010aa: GEORGIAN CAPITAL LETTER LAS*/ + 0x2d0b, /* U+0010ab: GEORGIAN CAPITAL LETTER MAN*/ + 0x2d0c, /* U+0010ac: GEORGIAN CAPITAL LETTER NAR*/ + 0x2d0d, /* U+0010ad: GEORGIAN CAPITAL LETTER ON*/ + 0x2d0e, /* U+0010ae: GEORGIAN CAPITAL LETTER PAR*/ + 0x2d0f, /* U+0010af: GEORGIAN CAPITAL LETTER ZHAR*/ + 0x2d10, /* U+0010b0: GEORGIAN CAPITAL LETTER RAE*/ + 0x2d11, /* U+0010b1: GEORGIAN CAPITAL LETTER SAN*/ + 0x2d12, /* U+0010b2: GEORGIAN CAPITAL LETTER TAR*/ + 0x2d13, /* U+0010b3: GEORGIAN CAPITAL LETTER UN*/ + 0x2d14, /* U+0010b4: GEORGIAN CAPITAL LETTER PHAR*/ + 0x2d15, /* U+0010b5: GEORGIAN CAPITAL LETTER KHAR*/ + 0x2d16, /* U+0010b6: GEORGIAN CAPITAL LETTER GHAN*/ + 0x2d17, /* U+0010b7: GEORGIAN CAPITAL LETTER QAR*/ + 0x2d18, /* U+0010b8: GEORGIAN CAPITAL LETTER SHIN*/ + 0x2d19, /* U+0010b9: GEORGIAN CAPITAL LETTER CHIN*/ + 0x2d1a, /* U+0010ba: GEORGIAN CAPITAL LETTER CAN*/ + 0x2d1b, /* U+0010bb: GEORGIAN CAPITAL LETTER JIL*/ + 0x2d1c, /* U+0010bc: GEORGIAN CAPITAL LETTER CIL*/ + 0x2d1d, /* U+0010bd: GEORGIAN CAPITAL LETTER CHAR*/ + 0x2d1e, /* U+0010be: GEORGIAN CAPITAL LETTER XAN*/ + 0x2d1f, /* U+0010bf: GEORGIAN CAPITAL LETTER JHAN*/ + 0x2d20, /* U+0010c0: GEORGIAN CAPITAL LETTER HAE*/ + 0x2d21, /* U+0010c1: GEORGIAN CAPITAL LETTER HE*/ + 0x2d22, /* U+0010c2: GEORGIAN CAPITAL LETTER HIE*/ + 0x2d23, /* U+0010c3: GEORGIAN CAPITAL LETTER WE*/ + 0x2d24, /* U+0010c4: GEORGIAN CAPITAL LETTER HAR*/ + 0x2d25, /* U+0010c5: GEORGIAN CAPITAL LETTER HOE*/ + 0x10c6, /* U+0010c6: */ + 0x2d27, /* U+0010c7: GEORGIAN CAPITAL LETTER YN*/ + 0x10c8, /* U+0010c8: */ + 0x10c9, /* U+0010c9: */ + 0x10ca, /* U+0010ca: */ + 0x10cb, /* U+0010cb: */ + 0x10cc, /* U+0010cc: */ + 0x2d2d, /* U+0010cd: GEORGIAN CAPITAL LETTER AEN*/ +}; + +static const RTUNICP g_afRTUniLower0x001e00[] = +{ + 0x1e01, /* U+001e00: LATIN CAPITAL LETTER A WITH RING BELOW*/ + 0x1e01, /* U+001e01: LATIN SMALL LETTER A WITH RING BELOW*/ + 0x1e03, /* U+001e02: LATIN CAPITAL LETTER B WITH DOT ABOVE*/ + 0x1e03, /* U+001e03: LATIN SMALL LETTER B WITH DOT ABOVE*/ + 0x1e05, /* U+001e04: LATIN CAPITAL LETTER B WITH DOT BELOW*/ + 0x1e05, /* U+001e05: LATIN SMALL LETTER B WITH DOT BELOW*/ + 0x1e07, /* U+001e06: LATIN CAPITAL LETTER B WITH LINE BELOW*/ + 0x1e07, /* U+001e07: LATIN SMALL LETTER B WITH LINE BELOW*/ + 0x1e09, /* U+001e08: LATIN CAPITAL LETTER C WITH CEDILLA AND ACUTE*/ + 0x1e09, /* U+001e09: LATIN SMALL LETTER C WITH CEDILLA AND ACUTE*/ + 0x1e0b, /* U+001e0a: LATIN CAPITAL LETTER D WITH DOT ABOVE*/ + 0x1e0b, /* U+001e0b: LATIN SMALL LETTER D WITH DOT ABOVE*/ + 0x1e0d, /* U+001e0c: LATIN CAPITAL LETTER D WITH DOT BELOW*/ + 0x1e0d, /* U+001e0d: LATIN SMALL LETTER D WITH DOT BELOW*/ + 0x1e0f, /* U+001e0e: LATIN CAPITAL LETTER D WITH LINE BELOW*/ + 0x1e0f, /* U+001e0f: LATIN SMALL LETTER D WITH LINE BELOW*/ + 0x1e11, /* U+001e10: LATIN CAPITAL LETTER D WITH CEDILLA*/ + 0x1e11, /* U+001e11: LATIN SMALL LETTER D WITH CEDILLA*/ + 0x1e13, /* U+001e12: LATIN CAPITAL LETTER D WITH CIRCUMFLEX BELOW*/ + 0x1e13, /* U+001e13: LATIN SMALL LETTER D WITH CIRCUMFLEX BELOW*/ + 0x1e15, /* U+001e14: LATIN CAPITAL LETTER E WITH MACRON AND GRAVE*/ + 0x1e15, /* U+001e15: LATIN SMALL LETTER E WITH MACRON AND GRAVE*/ + 0x1e17, /* U+001e16: LATIN CAPITAL LETTER E WITH MACRON AND ACUTE*/ + 0x1e17, /* U+001e17: LATIN SMALL LETTER E WITH MACRON AND ACUTE*/ + 0x1e19, /* U+001e18: LATIN CAPITAL LETTER E WITH CIRCUMFLEX BELOW*/ + 0x1e19, /* U+001e19: LATIN SMALL LETTER E WITH CIRCUMFLEX BELOW*/ + 0x1e1b, /* U+001e1a: LATIN CAPITAL LETTER E WITH TILDE BELOW*/ + 0x1e1b, /* U+001e1b: LATIN SMALL LETTER E WITH TILDE BELOW*/ + 0x1e1d, /* U+001e1c: LATIN CAPITAL LETTER E WITH CEDILLA AND BREVE*/ + 0x1e1d, /* U+001e1d: LATIN SMALL LETTER E WITH CEDILLA AND BREVE*/ + 0x1e1f, /* U+001e1e: LATIN CAPITAL LETTER F WITH DOT ABOVE*/ + 0x1e1f, /* U+001e1f: LATIN SMALL LETTER F WITH DOT ABOVE*/ + 0x1e21, /* U+001e20: LATIN CAPITAL LETTER G WITH MACRON*/ + 0x1e21, /* U+001e21: LATIN SMALL LETTER G WITH MACRON*/ + 0x1e23, /* U+001e22: LATIN CAPITAL LETTER H WITH DOT ABOVE*/ + 0x1e23, /* U+001e23: LATIN SMALL LETTER H WITH DOT ABOVE*/ + 0x1e25, /* U+001e24: LATIN CAPITAL LETTER H WITH DOT BELOW*/ + 0x1e25, /* U+001e25: LATIN SMALL LETTER H WITH DOT BELOW*/ + 0x1e27, /* U+001e26: LATIN CAPITAL LETTER H WITH DIAERESIS*/ + 0x1e27, /* U+001e27: LATIN SMALL LETTER H WITH DIAERESIS*/ + 0x1e29, /* U+001e28: LATIN CAPITAL LETTER H WITH CEDILLA*/ + 0x1e29, /* U+001e29: LATIN SMALL LETTER H WITH CEDILLA*/ + 0x1e2b, /* U+001e2a: LATIN CAPITAL LETTER H WITH BREVE BELOW*/ + 0x1e2b, /* U+001e2b: LATIN SMALL LETTER H WITH BREVE BELOW*/ + 0x1e2d, /* U+001e2c: LATIN CAPITAL LETTER I WITH TILDE BELOW*/ + 0x1e2d, /* U+001e2d: LATIN SMALL LETTER I WITH TILDE BELOW*/ + 0x1e2f, /* U+001e2e: LATIN CAPITAL LETTER I WITH DIAERESIS AND ACUTE*/ + 0x1e2f, /* U+001e2f: LATIN SMALL LETTER I WITH DIAERESIS AND ACUTE*/ + 0x1e31, /* U+001e30: LATIN CAPITAL LETTER K WITH ACUTE*/ + 0x1e31, /* U+001e31: LATIN SMALL LETTER K WITH ACUTE*/ + 0x1e33, /* U+001e32: LATIN CAPITAL LETTER K WITH DOT BELOW*/ + 0x1e33, /* U+001e33: LATIN SMALL LETTER K WITH DOT BELOW*/ + 0x1e35, /* U+001e34: LATIN CAPITAL LETTER K WITH LINE BELOW*/ + 0x1e35, /* U+001e35: LATIN SMALL LETTER K WITH LINE BELOW*/ + 0x1e37, /* U+001e36: LATIN CAPITAL LETTER L WITH DOT BELOW*/ + 0x1e37, /* U+001e37: LATIN SMALL LETTER L WITH DOT BELOW*/ + 0x1e39, /* U+001e38: LATIN CAPITAL LETTER L WITH DOT BELOW AND MACRON*/ + 0x1e39, /* U+001e39: LATIN SMALL LETTER L WITH DOT BELOW AND MACRON*/ + 0x1e3b, /* U+001e3a: LATIN CAPITAL LETTER L WITH LINE BELOW*/ + 0x1e3b, /* U+001e3b: LATIN SMALL LETTER L WITH LINE BELOW*/ + 0x1e3d, /* U+001e3c: LATIN CAPITAL LETTER L WITH CIRCUMFLEX BELOW*/ + 0x1e3d, /* U+001e3d: LATIN SMALL LETTER L WITH CIRCUMFLEX BELOW*/ + 0x1e3f, /* U+001e3e: LATIN CAPITAL LETTER M WITH ACUTE*/ + 0x1e3f, /* U+001e3f: LATIN SMALL LETTER M WITH ACUTE*/ + 0x1e41, /* U+001e40: LATIN CAPITAL LETTER M WITH DOT ABOVE*/ + 0x1e41, /* U+001e41: LATIN SMALL LETTER M WITH DOT ABOVE*/ + 0x1e43, /* U+001e42: LATIN CAPITAL LETTER M WITH DOT BELOW*/ + 0x1e43, /* U+001e43: LATIN SMALL LETTER M WITH DOT BELOW*/ + 0x1e45, /* U+001e44: LATIN CAPITAL LETTER N WITH DOT ABOVE*/ + 0x1e45, /* U+001e45: LATIN SMALL LETTER N WITH DOT ABOVE*/ + 0x1e47, /* U+001e46: LATIN CAPITAL LETTER N WITH DOT BELOW*/ + 0x1e47, /* U+001e47: LATIN SMALL LETTER N WITH DOT BELOW*/ + 0x1e49, /* U+001e48: LATIN CAPITAL LETTER N WITH LINE BELOW*/ + 0x1e49, /* U+001e49: LATIN SMALL LETTER N WITH LINE BELOW*/ + 0x1e4b, /* U+001e4a: LATIN CAPITAL LETTER N WITH CIRCUMFLEX BELOW*/ + 0x1e4b, /* U+001e4b: LATIN SMALL LETTER N WITH CIRCUMFLEX BELOW*/ + 0x1e4d, /* U+001e4c: LATIN CAPITAL LETTER O WITH TILDE AND ACUTE*/ + 0x1e4d, /* U+001e4d: LATIN SMALL LETTER O WITH TILDE AND ACUTE*/ + 0x1e4f, /* U+001e4e: LATIN CAPITAL LETTER O WITH TILDE AND DIAERESIS*/ + 0x1e4f, /* U+001e4f: LATIN SMALL LETTER O WITH TILDE AND DIAERESIS*/ + 0x1e51, /* U+001e50: LATIN CAPITAL LETTER O WITH MACRON AND GRAVE*/ + 0x1e51, /* U+001e51: LATIN SMALL LETTER O WITH MACRON AND GRAVE*/ + 0x1e53, /* U+001e52: LATIN CAPITAL LETTER O WITH MACRON AND ACUTE*/ + 0x1e53, /* U+001e53: LATIN SMALL LETTER O WITH MACRON AND ACUTE*/ + 0x1e55, /* U+001e54: LATIN CAPITAL LETTER P WITH ACUTE*/ + 0x1e55, /* U+001e55: LATIN SMALL LETTER P WITH ACUTE*/ + 0x1e57, /* U+001e56: LATIN CAPITAL LETTER P WITH DOT ABOVE*/ + 0x1e57, /* U+001e57: LATIN SMALL LETTER P WITH DOT ABOVE*/ + 0x1e59, /* U+001e58: LATIN CAPITAL LETTER R WITH DOT ABOVE*/ + 0x1e59, /* U+001e59: LATIN SMALL LETTER R WITH DOT ABOVE*/ + 0x1e5b, /* U+001e5a: LATIN CAPITAL LETTER R WITH DOT BELOW*/ + 0x1e5b, /* U+001e5b: LATIN SMALL LETTER R WITH DOT BELOW*/ + 0x1e5d, /* U+001e5c: LATIN CAPITAL LETTER R WITH DOT BELOW AND MACRON*/ + 0x1e5d, /* U+001e5d: LATIN SMALL LETTER R WITH DOT BELOW AND MACRON*/ + 0x1e5f, /* U+001e5e: LATIN CAPITAL LETTER R WITH LINE BELOW*/ + 0x1e5f, /* U+001e5f: LATIN SMALL LETTER R WITH LINE BELOW*/ + 0x1e61, /* U+001e60: LATIN CAPITAL LETTER S WITH DOT ABOVE*/ + 0x1e61, /* U+001e61: LATIN SMALL LETTER S WITH DOT ABOVE*/ + 0x1e63, /* U+001e62: LATIN CAPITAL LETTER S WITH DOT BELOW*/ + 0x1e63, /* U+001e63: LATIN SMALL LETTER S WITH DOT BELOW*/ + 0x1e65, /* U+001e64: LATIN CAPITAL LETTER S WITH ACUTE AND DOT ABOVE*/ + 0x1e65, /* U+001e65: LATIN SMALL LETTER S WITH ACUTE AND DOT ABOVE*/ + 0x1e67, /* U+001e66: LATIN CAPITAL LETTER S WITH CARON AND DOT ABOVE*/ + 0x1e67, /* U+001e67: LATIN SMALL LETTER S WITH CARON AND DOT ABOVE*/ + 0x1e69, /* U+001e68: LATIN CAPITAL LETTER S WITH DOT BELOW AND DOT ABOVE*/ + 0x1e69, /* U+001e69: LATIN SMALL LETTER S WITH DOT BELOW AND DOT ABOVE*/ + 0x1e6b, /* U+001e6a: LATIN CAPITAL LETTER T WITH DOT ABOVE*/ + 0x1e6b, /* U+001e6b: LATIN SMALL LETTER T WITH DOT ABOVE*/ + 0x1e6d, /* U+001e6c: LATIN CAPITAL LETTER T WITH DOT BELOW*/ + 0x1e6d, /* U+001e6d: LATIN SMALL LETTER T WITH DOT BELOW*/ + 0x1e6f, /* U+001e6e: LATIN CAPITAL LETTER T WITH LINE BELOW*/ + 0x1e6f, /* U+001e6f: LATIN SMALL LETTER T WITH LINE BELOW*/ + 0x1e71, /* U+001e70: LATIN CAPITAL LETTER T WITH CIRCUMFLEX BELOW*/ + 0x1e71, /* U+001e71: LATIN SMALL LETTER T WITH CIRCUMFLEX BELOW*/ + 0x1e73, /* U+001e72: LATIN CAPITAL LETTER U WITH DIAERESIS BELOW*/ + 0x1e73, /* U+001e73: LATIN SMALL LETTER U WITH DIAERESIS BELOW*/ + 0x1e75, /* U+001e74: LATIN CAPITAL LETTER U WITH TILDE BELOW*/ + 0x1e75, /* U+001e75: LATIN SMALL LETTER U WITH TILDE BELOW*/ + 0x1e77, /* U+001e76: LATIN CAPITAL LETTER U WITH CIRCUMFLEX BELOW*/ + 0x1e77, /* U+001e77: LATIN SMALL LETTER U WITH CIRCUMFLEX BELOW*/ + 0x1e79, /* U+001e78: LATIN CAPITAL LETTER U WITH TILDE AND ACUTE*/ + 0x1e79, /* U+001e79: LATIN SMALL LETTER U WITH TILDE AND ACUTE*/ + 0x1e7b, /* U+001e7a: LATIN CAPITAL LETTER U WITH MACRON AND DIAERESIS*/ + 0x1e7b, /* U+001e7b: LATIN SMALL LETTER U WITH MACRON AND DIAERESIS*/ + 0x1e7d, /* U+001e7c: LATIN CAPITAL LETTER V WITH TILDE*/ + 0x1e7d, /* U+001e7d: LATIN SMALL LETTER V WITH TILDE*/ + 0x1e7f, /* U+001e7e: LATIN CAPITAL LETTER V WITH DOT BELOW*/ + 0x1e7f, /* U+001e7f: LATIN SMALL LETTER V WITH DOT BELOW*/ + 0x1e81, /* U+001e80: LATIN CAPITAL LETTER W WITH GRAVE*/ + 0x1e81, /* U+001e81: LATIN SMALL LETTER W WITH GRAVE*/ + 0x1e83, /* U+001e82: LATIN CAPITAL LETTER W WITH ACUTE*/ + 0x1e83, /* U+001e83: LATIN SMALL LETTER W WITH ACUTE*/ + 0x1e85, /* U+001e84: LATIN CAPITAL LETTER W WITH DIAERESIS*/ + 0x1e85, /* U+001e85: LATIN SMALL LETTER W WITH DIAERESIS*/ + 0x1e87, /* U+001e86: LATIN CAPITAL LETTER W WITH DOT ABOVE*/ + 0x1e87, /* U+001e87: LATIN SMALL LETTER W WITH DOT ABOVE*/ + 0x1e89, /* U+001e88: LATIN CAPITAL LETTER W WITH DOT BELOW*/ + 0x1e89, /* U+001e89: LATIN SMALL LETTER W WITH DOT BELOW*/ + 0x1e8b, /* U+001e8a: LATIN CAPITAL LETTER X WITH DOT ABOVE*/ + 0x1e8b, /* U+001e8b: LATIN SMALL LETTER X WITH DOT ABOVE*/ + 0x1e8d, /* U+001e8c: LATIN CAPITAL LETTER X WITH DIAERESIS*/ + 0x1e8d, /* U+001e8d: LATIN SMALL LETTER X WITH DIAERESIS*/ + 0x1e8f, /* U+001e8e: LATIN CAPITAL LETTER Y WITH DOT ABOVE*/ + 0x1e8f, /* U+001e8f: LATIN SMALL LETTER Y WITH DOT ABOVE*/ + 0x1e91, /* U+001e90: LATIN CAPITAL LETTER Z WITH CIRCUMFLEX*/ + 0x1e91, /* U+001e91: LATIN SMALL LETTER Z WITH CIRCUMFLEX*/ + 0x1e93, /* U+001e92: LATIN CAPITAL LETTER Z WITH DOT BELOW*/ + 0x1e93, /* U+001e93: LATIN SMALL LETTER Z WITH DOT BELOW*/ + 0x1e95, /* U+001e94: LATIN CAPITAL LETTER Z WITH LINE BELOW*/ + 0x1e95, /* U+001e95: LATIN SMALL LETTER Z WITH LINE BELOW*/ + 0x1e96, /* U+001e96: LATIN SMALL LETTER H WITH LINE BELOW*/ + 0x1e97, /* U+001e97: LATIN SMALL LETTER T WITH DIAERESIS*/ + 0x1e98, /* U+001e98: LATIN SMALL LETTER W WITH RING ABOVE*/ + 0x1e99, /* U+001e99: LATIN SMALL LETTER Y WITH RING ABOVE*/ + 0x1e9a, /* U+001e9a: LATIN SMALL LETTER A WITH RIGHT HALF RING*/ + 0x1e9b, /* U+001e9b: LATIN SMALL LETTER LONG S WITH DOT ABOVE*/ + 0x1e9c, /* U+001e9c: LATIN SMALL LETTER LONG S WITH DIAGONAL STROKE*/ + 0x1e9d, /* U+001e9d: LATIN SMALL LETTER LONG S WITH HIGH STROKE*/ + 0xdf, /* U+001e9e: LATIN CAPITAL LETTER SHARP S*/ + 0x1e9f, /* U+001e9f: LATIN SMALL LETTER DELTA*/ + 0x1ea1, /* U+001ea0: LATIN CAPITAL LETTER A WITH DOT BELOW*/ + 0x1ea1, /* U+001ea1: LATIN SMALL LETTER A WITH DOT BELOW*/ + 0x1ea3, /* U+001ea2: LATIN CAPITAL LETTER A WITH HOOK ABOVE*/ + 0x1ea3, /* U+001ea3: LATIN SMALL LETTER A WITH HOOK ABOVE*/ + 0x1ea5, /* U+001ea4: LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND ACUTE*/ + 0x1ea5, /* U+001ea5: LATIN SMALL LETTER A WITH CIRCUMFLEX AND ACUTE*/ + 0x1ea7, /* U+001ea6: LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND GRAVE*/ + 0x1ea7, /* U+001ea7: LATIN SMALL LETTER A WITH CIRCUMFLEX AND GRAVE*/ + 0x1ea9, /* U+001ea8: LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND HOOK ABOVE*/ + 0x1ea9, /* U+001ea9: LATIN SMALL LETTER A WITH CIRCUMFLEX AND HOOK ABOVE*/ + 0x1eab, /* U+001eaa: LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND TILDE*/ + 0x1eab, /* U+001eab: LATIN SMALL LETTER A WITH CIRCUMFLEX AND TILDE*/ + 0x1ead, /* U+001eac: LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND DOT BELOW*/ + 0x1ead, /* U+001ead: LATIN SMALL LETTER A WITH CIRCUMFLEX AND DOT BELOW*/ + 0x1eaf, /* U+001eae: LATIN CAPITAL LETTER A WITH BREVE AND ACUTE*/ + 0x1eaf, /* U+001eaf: LATIN SMALL LETTER A WITH BREVE AND ACUTE*/ + 0x1eb1, /* U+001eb0: LATIN CAPITAL LETTER A WITH BREVE AND GRAVE*/ + 0x1eb1, /* U+001eb1: LATIN SMALL LETTER A WITH BREVE AND GRAVE*/ + 0x1eb3, /* U+001eb2: LATIN CAPITAL LETTER A WITH BREVE AND HOOK ABOVE*/ + 0x1eb3, /* U+001eb3: LATIN SMALL LETTER A WITH BREVE AND HOOK ABOVE*/ + 0x1eb5, /* U+001eb4: LATIN CAPITAL LETTER A WITH BREVE AND TILDE*/ + 0x1eb5, /* U+001eb5: LATIN SMALL LETTER A WITH BREVE AND TILDE*/ + 0x1eb7, /* U+001eb6: LATIN CAPITAL LETTER A WITH BREVE AND DOT BELOW*/ + 0x1eb7, /* U+001eb7: LATIN SMALL LETTER A WITH BREVE AND DOT BELOW*/ + 0x1eb9, /* U+001eb8: LATIN CAPITAL LETTER E WITH DOT BELOW*/ + 0x1eb9, /* U+001eb9: LATIN SMALL LETTER E WITH DOT BELOW*/ + 0x1ebb, /* U+001eba: LATIN CAPITAL LETTER E WITH HOOK ABOVE*/ + 0x1ebb, /* U+001ebb: LATIN SMALL LETTER E WITH HOOK ABOVE*/ + 0x1ebd, /* U+001ebc: LATIN CAPITAL LETTER E WITH TILDE*/ + 0x1ebd, /* U+001ebd: LATIN SMALL LETTER E WITH TILDE*/ + 0x1ebf, /* U+001ebe: LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND ACUTE*/ + 0x1ebf, /* U+001ebf: LATIN SMALL LETTER E WITH CIRCUMFLEX AND ACUTE*/ + 0x1ec1, /* U+001ec0: LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND GRAVE*/ + 0x1ec1, /* U+001ec1: LATIN SMALL LETTER E WITH CIRCUMFLEX AND GRAVE*/ + 0x1ec3, /* U+001ec2: LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND HOOK ABOVE*/ + 0x1ec3, /* U+001ec3: LATIN SMALL LETTER E WITH CIRCUMFLEX AND HOOK ABOVE*/ + 0x1ec5, /* U+001ec4: LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND TILDE*/ + 0x1ec5, /* U+001ec5: LATIN SMALL LETTER E WITH CIRCUMFLEX AND TILDE*/ + 0x1ec7, /* U+001ec6: LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND DOT BELOW*/ + 0x1ec7, /* U+001ec7: LATIN SMALL LETTER E WITH CIRCUMFLEX AND DOT BELOW*/ + 0x1ec9, /* U+001ec8: LATIN CAPITAL LETTER I WITH HOOK ABOVE*/ + 0x1ec9, /* U+001ec9: LATIN SMALL LETTER I WITH HOOK ABOVE*/ + 0x1ecb, /* U+001eca: LATIN CAPITAL LETTER I WITH DOT BELOW*/ + 0x1ecb, /* U+001ecb: LATIN SMALL LETTER I WITH DOT BELOW*/ + 0x1ecd, /* U+001ecc: LATIN CAPITAL LETTER O WITH DOT BELOW*/ + 0x1ecd, /* U+001ecd: LATIN SMALL LETTER O WITH DOT BELOW*/ + 0x1ecf, /* U+001ece: LATIN CAPITAL LETTER O WITH HOOK ABOVE*/ + 0x1ecf, /* U+001ecf: LATIN SMALL LETTER O WITH HOOK ABOVE*/ + 0x1ed1, /* U+001ed0: LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND ACUTE*/ + 0x1ed1, /* U+001ed1: LATIN SMALL LETTER O WITH CIRCUMFLEX AND ACUTE*/ + 0x1ed3, /* U+001ed2: LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND GRAVE*/ + 0x1ed3, /* U+001ed3: LATIN SMALL LETTER O WITH CIRCUMFLEX AND GRAVE*/ + 0x1ed5, /* U+001ed4: LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND HOOK ABOVE*/ + 0x1ed5, /* U+001ed5: LATIN SMALL LETTER O WITH CIRCUMFLEX AND HOOK ABOVE*/ + 0x1ed7, /* U+001ed6: LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND TILDE*/ + 0x1ed7, /* U+001ed7: LATIN SMALL LETTER O WITH CIRCUMFLEX AND TILDE*/ + 0x1ed9, /* U+001ed8: LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND DOT BELOW*/ + 0x1ed9, /* U+001ed9: LATIN SMALL LETTER O WITH CIRCUMFLEX AND DOT BELOW*/ + 0x1edb, /* U+001eda: LATIN CAPITAL LETTER O WITH HORN AND ACUTE*/ + 0x1edb, /* U+001edb: LATIN SMALL LETTER O WITH HORN AND ACUTE*/ + 0x1edd, /* U+001edc: LATIN CAPITAL LETTER O WITH HORN AND GRAVE*/ + 0x1edd, /* U+001edd: LATIN SMALL LETTER O WITH HORN AND GRAVE*/ + 0x1edf, /* U+001ede: LATIN CAPITAL LETTER O WITH HORN AND HOOK ABOVE*/ + 0x1edf, /* U+001edf: LATIN SMALL LETTER O WITH HORN AND HOOK ABOVE*/ + 0x1ee1, /* U+001ee0: LATIN CAPITAL LETTER O WITH HORN AND TILDE*/ + 0x1ee1, /* U+001ee1: LATIN SMALL LETTER O WITH HORN AND TILDE*/ + 0x1ee3, /* U+001ee2: LATIN CAPITAL LETTER O WITH HORN AND DOT BELOW*/ + 0x1ee3, /* U+001ee3: LATIN SMALL LETTER O WITH HORN AND DOT BELOW*/ + 0x1ee5, /* U+001ee4: LATIN CAPITAL LETTER U WITH DOT BELOW*/ + 0x1ee5, /* U+001ee5: LATIN SMALL LETTER U WITH DOT BELOW*/ + 0x1ee7, /* U+001ee6: LATIN CAPITAL LETTER U WITH HOOK ABOVE*/ + 0x1ee7, /* U+001ee7: LATIN SMALL LETTER U WITH HOOK ABOVE*/ + 0x1ee9, /* U+001ee8: LATIN CAPITAL LETTER U WITH HORN AND ACUTE*/ + 0x1ee9, /* U+001ee9: LATIN SMALL LETTER U WITH HORN AND ACUTE*/ + 0x1eeb, /* U+001eea: LATIN CAPITAL LETTER U WITH HORN AND GRAVE*/ + 0x1eeb, /* U+001eeb: LATIN SMALL LETTER U WITH HORN AND GRAVE*/ + 0x1eed, /* U+001eec: LATIN CAPITAL LETTER U WITH HORN AND HOOK ABOVE*/ + 0x1eed, /* U+001eed: LATIN SMALL LETTER U WITH HORN AND HOOK ABOVE*/ + 0x1eef, /* U+001eee: LATIN CAPITAL LETTER U WITH HORN AND TILDE*/ + 0x1eef, /* U+001eef: LATIN SMALL LETTER U WITH HORN AND TILDE*/ + 0x1ef1, /* U+001ef0: LATIN CAPITAL LETTER U WITH HORN AND DOT BELOW*/ + 0x1ef1, /* U+001ef1: LATIN SMALL LETTER U WITH HORN AND DOT BELOW*/ + 0x1ef3, /* U+001ef2: LATIN CAPITAL LETTER Y WITH GRAVE*/ + 0x1ef3, /* U+001ef3: LATIN SMALL LETTER Y WITH GRAVE*/ + 0x1ef5, /* U+001ef4: LATIN CAPITAL LETTER Y WITH DOT BELOW*/ + 0x1ef5, /* U+001ef5: LATIN SMALL LETTER Y WITH DOT BELOW*/ + 0x1ef7, /* U+001ef6: LATIN CAPITAL LETTER Y WITH HOOK ABOVE*/ + 0x1ef7, /* U+001ef7: LATIN SMALL LETTER Y WITH HOOK ABOVE*/ + 0x1ef9, /* U+001ef8: LATIN CAPITAL LETTER Y WITH TILDE*/ + 0x1ef9, /* U+001ef9: LATIN SMALL LETTER Y WITH TILDE*/ + 0x1efb, /* U+001efa: LATIN CAPITAL LETTER MIDDLE-WELSH LL*/ + 0x1efb, /* U+001efb: LATIN SMALL LETTER MIDDLE-WELSH LL*/ + 0x1efd, /* U+001efc: LATIN CAPITAL LETTER MIDDLE-WELSH V*/ + 0x1efd, /* U+001efd: LATIN SMALL LETTER MIDDLE-WELSH V*/ + 0x1eff, /* U+001efe: LATIN CAPITAL LETTER Y WITH LOOP*/ + 0x1eff, /* U+001eff: LATIN SMALL LETTER Y WITH LOOP*/ + 0x1f00, /* U+001f00: GREEK SMALL LETTER ALPHA WITH PSILI*/ + 0x1f01, /* U+001f01: GREEK SMALL LETTER ALPHA WITH DASIA*/ + 0x1f02, /* U+001f02: GREEK SMALL LETTER ALPHA WITH PSILI AND VARIA*/ + 0x1f03, /* U+001f03: GREEK SMALL LETTER ALPHA WITH DASIA AND VARIA*/ + 0x1f04, /* U+001f04: GREEK SMALL LETTER ALPHA WITH PSILI AND OXIA*/ + 0x1f05, /* U+001f05: GREEK SMALL LETTER ALPHA WITH DASIA AND OXIA*/ + 0x1f06, /* U+001f06: GREEK SMALL LETTER ALPHA WITH PSILI AND PERISPOMENI*/ + 0x1f07, /* U+001f07: GREEK SMALL LETTER ALPHA WITH DASIA AND PERISPOMENI*/ + 0x1f00, /* U+001f08: GREEK CAPITAL LETTER ALPHA WITH PSILI*/ + 0x1f01, /* U+001f09: GREEK CAPITAL LETTER ALPHA WITH DASIA*/ + 0x1f02, /* U+001f0a: GREEK CAPITAL LETTER ALPHA WITH PSILI AND VARIA*/ + 0x1f03, /* U+001f0b: GREEK CAPITAL LETTER ALPHA WITH DASIA AND VARIA*/ + 0x1f04, /* U+001f0c: GREEK CAPITAL LETTER ALPHA WITH PSILI AND OXIA*/ + 0x1f05, /* U+001f0d: GREEK CAPITAL LETTER ALPHA WITH DASIA AND OXIA*/ + 0x1f06, /* U+001f0e: GREEK CAPITAL LETTER ALPHA WITH PSILI AND PERISPOMENI*/ + 0x1f07, /* U+001f0f: GREEK CAPITAL LETTER ALPHA WITH DASIA AND PERISPOMENI*/ + 0x1f10, /* U+001f10: GREEK SMALL LETTER EPSILON WITH PSILI*/ + 0x1f11, /* U+001f11: GREEK SMALL LETTER EPSILON WITH DASIA*/ + 0x1f12, /* U+001f12: GREEK SMALL LETTER EPSILON WITH PSILI AND VARIA*/ + 0x1f13, /* U+001f13: GREEK SMALL LETTER EPSILON WITH DASIA AND VARIA*/ + 0x1f14, /* U+001f14: GREEK SMALL LETTER EPSILON WITH PSILI AND OXIA*/ + 0x1f15, /* U+001f15: GREEK SMALL LETTER EPSILON WITH DASIA AND OXIA*/ + 0x1f16, /* U+001f16: */ + 0x1f17, /* U+001f17: */ + 0x1f10, /* U+001f18: GREEK CAPITAL LETTER EPSILON WITH PSILI*/ + 0x1f11, /* U+001f19: GREEK CAPITAL LETTER EPSILON WITH DASIA*/ + 0x1f12, /* U+001f1a: GREEK CAPITAL LETTER EPSILON WITH PSILI AND VARIA*/ + 0x1f13, /* U+001f1b: GREEK CAPITAL LETTER EPSILON WITH DASIA AND VARIA*/ + 0x1f14, /* U+001f1c: GREEK CAPITAL LETTER EPSILON WITH PSILI AND OXIA*/ + 0x1f15, /* U+001f1d: GREEK CAPITAL LETTER EPSILON WITH DASIA AND OXIA*/ + 0x1f1e, /* U+001f1e: */ + 0x1f1f, /* U+001f1f: */ + 0x1f20, /* U+001f20: GREEK SMALL LETTER ETA WITH PSILI*/ + 0x1f21, /* U+001f21: GREEK SMALL LETTER ETA WITH DASIA*/ + 0x1f22, /* U+001f22: GREEK SMALL LETTER ETA WITH PSILI AND VARIA*/ + 0x1f23, /* U+001f23: GREEK SMALL LETTER ETA WITH DASIA AND VARIA*/ + 0x1f24, /* U+001f24: GREEK SMALL LETTER ETA WITH PSILI AND OXIA*/ + 0x1f25, /* U+001f25: GREEK SMALL LETTER ETA WITH DASIA AND OXIA*/ + 0x1f26, /* U+001f26: GREEK SMALL LETTER ETA WITH PSILI AND PERISPOMENI*/ + 0x1f27, /* U+001f27: GREEK SMALL LETTER ETA WITH DASIA AND PERISPOMENI*/ + 0x1f20, /* U+001f28: GREEK CAPITAL LETTER ETA WITH PSILI*/ + 0x1f21, /* U+001f29: GREEK CAPITAL LETTER ETA WITH DASIA*/ + 0x1f22, /* U+001f2a: GREEK CAPITAL LETTER ETA WITH PSILI AND VARIA*/ + 0x1f23, /* U+001f2b: GREEK CAPITAL LETTER ETA WITH DASIA AND VARIA*/ + 0x1f24, /* U+001f2c: GREEK CAPITAL LETTER ETA WITH PSILI AND OXIA*/ + 0x1f25, /* U+001f2d: GREEK CAPITAL LETTER ETA WITH DASIA AND OXIA*/ + 0x1f26, /* U+001f2e: GREEK CAPITAL LETTER ETA WITH PSILI AND PERISPOMENI*/ + 0x1f27, /* U+001f2f: GREEK CAPITAL LETTER ETA WITH DASIA AND PERISPOMENI*/ + 0x1f30, /* U+001f30: GREEK SMALL LETTER IOTA WITH PSILI*/ + 0x1f31, /* U+001f31: GREEK SMALL LETTER IOTA WITH DASIA*/ + 0x1f32, /* U+001f32: GREEK SMALL LETTER IOTA WITH PSILI AND VARIA*/ + 0x1f33, /* U+001f33: GREEK SMALL LETTER IOTA WITH DASIA AND VARIA*/ + 0x1f34, /* U+001f34: GREEK SMALL LETTER IOTA WITH PSILI AND OXIA*/ + 0x1f35, /* U+001f35: GREEK SMALL LETTER IOTA WITH DASIA AND OXIA*/ + 0x1f36, /* U+001f36: GREEK SMALL LETTER IOTA WITH PSILI AND PERISPOMENI*/ + 0x1f37, /* U+001f37: GREEK SMALL LETTER IOTA WITH DASIA AND PERISPOMENI*/ + 0x1f30, /* U+001f38: GREEK CAPITAL LETTER IOTA WITH PSILI*/ + 0x1f31, /* U+001f39: GREEK CAPITAL LETTER IOTA WITH DASIA*/ + 0x1f32, /* U+001f3a: GREEK CAPITAL LETTER IOTA WITH PSILI AND VARIA*/ + 0x1f33, /* U+001f3b: GREEK CAPITAL LETTER IOTA WITH DASIA AND VARIA*/ + 0x1f34, /* U+001f3c: GREEK CAPITAL LETTER IOTA WITH PSILI AND OXIA*/ + 0x1f35, /* U+001f3d: GREEK CAPITAL LETTER IOTA WITH DASIA AND OXIA*/ + 0x1f36, /* U+001f3e: GREEK CAPITAL LETTER IOTA WITH PSILI AND PERISPOMENI*/ + 0x1f37, /* U+001f3f: GREEK CAPITAL LETTER IOTA WITH DASIA AND PERISPOMENI*/ + 0x1f40, /* U+001f40: GREEK SMALL LETTER OMICRON WITH PSILI*/ + 0x1f41, /* U+001f41: GREEK SMALL LETTER OMICRON WITH DASIA*/ + 0x1f42, /* U+001f42: GREEK SMALL LETTER OMICRON WITH PSILI AND VARIA*/ + 0x1f43, /* U+001f43: GREEK SMALL LETTER OMICRON WITH DASIA AND VARIA*/ + 0x1f44, /* U+001f44: GREEK SMALL LETTER OMICRON WITH PSILI AND OXIA*/ + 0x1f45, /* U+001f45: GREEK SMALL LETTER OMICRON WITH DASIA AND OXIA*/ + 0x1f46, /* U+001f46: */ + 0x1f47, /* U+001f47: */ + 0x1f40, /* U+001f48: GREEK CAPITAL LETTER OMICRON WITH PSILI*/ + 0x1f41, /* U+001f49: GREEK CAPITAL LETTER OMICRON WITH DASIA*/ + 0x1f42, /* U+001f4a: GREEK CAPITAL LETTER OMICRON WITH PSILI AND VARIA*/ + 0x1f43, /* U+001f4b: GREEK CAPITAL LETTER OMICRON WITH DASIA AND VARIA*/ + 0x1f44, /* U+001f4c: GREEK CAPITAL LETTER OMICRON WITH PSILI AND OXIA*/ + 0x1f45, /* U+001f4d: GREEK CAPITAL LETTER OMICRON WITH DASIA AND OXIA*/ + 0x1f4e, /* U+001f4e: */ + 0x1f4f, /* U+001f4f: */ + 0x1f50, /* U+001f50: GREEK SMALL LETTER UPSILON WITH PSILI*/ + 0x1f51, /* U+001f51: GREEK SMALL LETTER UPSILON WITH DASIA*/ + 0x1f52, /* U+001f52: GREEK SMALL LETTER UPSILON WITH PSILI AND VARIA*/ + 0x1f53, /* U+001f53: GREEK SMALL LETTER UPSILON WITH DASIA AND VARIA*/ + 0x1f54, /* U+001f54: GREEK SMALL LETTER UPSILON WITH PSILI AND OXIA*/ + 0x1f55, /* U+001f55: GREEK SMALL LETTER UPSILON WITH DASIA AND OXIA*/ + 0x1f56, /* U+001f56: GREEK SMALL LETTER UPSILON WITH PSILI AND PERISPOMENI*/ + 0x1f57, /* U+001f57: GREEK SMALL LETTER UPSILON WITH DASIA AND PERISPOMENI*/ + 0x1f58, /* U+001f58: */ + 0x1f51, /* U+001f59: GREEK CAPITAL LETTER UPSILON WITH DASIA*/ + 0x1f5a, /* U+001f5a: */ + 0x1f53, /* U+001f5b: GREEK CAPITAL LETTER UPSILON WITH DASIA AND VARIA*/ + 0x1f5c, /* U+001f5c: */ + 0x1f55, /* U+001f5d: GREEK CAPITAL LETTER UPSILON WITH DASIA AND OXIA*/ + 0x1f5e, /* U+001f5e: */ + 0x1f57, /* U+001f5f: GREEK CAPITAL LETTER UPSILON WITH DASIA AND PERISPOMENI*/ + 0x1f60, /* U+001f60: GREEK SMALL LETTER OMEGA WITH PSILI*/ + 0x1f61, /* U+001f61: GREEK SMALL LETTER OMEGA WITH DASIA*/ + 0x1f62, /* U+001f62: GREEK SMALL LETTER OMEGA WITH PSILI AND VARIA*/ + 0x1f63, /* U+001f63: GREEK SMALL LETTER OMEGA WITH DASIA AND VARIA*/ + 0x1f64, /* U+001f64: GREEK SMALL LETTER OMEGA WITH PSILI AND OXIA*/ + 0x1f65, /* U+001f65: GREEK SMALL LETTER OMEGA WITH DASIA AND OXIA*/ + 0x1f66, /* U+001f66: GREEK SMALL LETTER OMEGA WITH PSILI AND PERISPOMENI*/ + 0x1f67, /* U+001f67: GREEK SMALL LETTER OMEGA WITH DASIA AND PERISPOMENI*/ + 0x1f60, /* U+001f68: GREEK CAPITAL LETTER OMEGA WITH PSILI*/ + 0x1f61, /* U+001f69: GREEK CAPITAL LETTER OMEGA WITH DASIA*/ + 0x1f62, /* U+001f6a: GREEK CAPITAL LETTER OMEGA WITH PSILI AND VARIA*/ + 0x1f63, /* U+001f6b: GREEK CAPITAL LETTER OMEGA WITH DASIA AND VARIA*/ + 0x1f64, /* U+001f6c: GREEK CAPITAL LETTER OMEGA WITH PSILI AND OXIA*/ + 0x1f65, /* U+001f6d: GREEK CAPITAL LETTER OMEGA WITH DASIA AND OXIA*/ + 0x1f66, /* U+001f6e: GREEK CAPITAL LETTER OMEGA WITH PSILI AND PERISPOMENI*/ + 0x1f67, /* U+001f6f: GREEK CAPITAL LETTER OMEGA WITH DASIA AND PERISPOMENI*/ + 0x1f70, /* U+001f70: GREEK SMALL LETTER ALPHA WITH VARIA*/ + 0x1f71, /* U+001f71: GREEK SMALL LETTER ALPHA WITH OXIA*/ + 0x1f72, /* U+001f72: GREEK SMALL LETTER EPSILON WITH VARIA*/ + 0x1f73, /* U+001f73: GREEK SMALL LETTER EPSILON WITH OXIA*/ + 0x1f74, /* U+001f74: GREEK SMALL LETTER ETA WITH VARIA*/ + 0x1f75, /* U+001f75: GREEK SMALL LETTER ETA WITH OXIA*/ + 0x1f76, /* U+001f76: GREEK SMALL LETTER IOTA WITH VARIA*/ + 0x1f77, /* U+001f77: GREEK SMALL LETTER IOTA WITH OXIA*/ + 0x1f78, /* U+001f78: GREEK SMALL LETTER OMICRON WITH VARIA*/ + 0x1f79, /* U+001f79: GREEK SMALL LETTER OMICRON WITH OXIA*/ + 0x1f7a, /* U+001f7a: GREEK SMALL LETTER UPSILON WITH VARIA*/ + 0x1f7b, /* U+001f7b: GREEK SMALL LETTER UPSILON WITH OXIA*/ + 0x1f7c, /* U+001f7c: GREEK SMALL LETTER OMEGA WITH VARIA*/ + 0x1f7d, /* U+001f7d: GREEK SMALL LETTER OMEGA WITH OXIA*/ + 0x1f7e, /* U+001f7e: */ + 0x1f7f, /* U+001f7f: */ + 0x1f80, /* U+001f80: GREEK SMALL LETTER ALPHA WITH PSILI AND YPOGEGRAMMENI*/ + 0x1f81, /* U+001f81: GREEK SMALL LETTER ALPHA WITH DASIA AND YPOGEGRAMMENI*/ + 0x1f82, /* U+001f82: GREEK SMALL LETTER ALPHA WITH PSILI AND VARIA AND YPOGEGRAMMENI*/ + 0x1f83, /* U+001f83: GREEK SMALL LETTER ALPHA WITH DASIA AND VARIA AND YPOGEGRAMMENI*/ + 0x1f84, /* U+001f84: GREEK SMALL LETTER ALPHA WITH PSILI AND OXIA AND YPOGEGRAMMENI*/ + 0x1f85, /* U+001f85: GREEK SMALL LETTER ALPHA WITH DASIA AND OXIA AND YPOGEGRAMMENI*/ + 0x1f86, /* U+001f86: GREEK SMALL LETTER ALPHA WITH PSILI AND PERISPOMENI AND YPOGEGRAMMENI*/ + 0x1f87, /* U+001f87: GREEK SMALL LETTER ALPHA WITH DASIA AND PERISPOMENI AND YPOGEGRAMMENI*/ + 0x1f80, /* U+001f88: GREEK CAPITAL LETTER ALPHA WITH PSILI AND PROSGEGRAMMENI*/ + 0x1f81, /* U+001f89: GREEK CAPITAL LETTER ALPHA WITH DASIA AND PROSGEGRAMMENI*/ + 0x1f82, /* U+001f8a: GREEK CAPITAL LETTER ALPHA WITH PSILI AND VARIA AND PROSGEGRAMMENI*/ + 0x1f83, /* U+001f8b: GREEK CAPITAL LETTER ALPHA WITH DASIA AND VARIA AND PROSGEGRAMMENI*/ + 0x1f84, /* U+001f8c: GREEK CAPITAL LETTER ALPHA WITH PSILI AND OXIA AND PROSGEGRAMMENI*/ + 0x1f85, /* U+001f8d: GREEK CAPITAL LETTER ALPHA WITH DASIA AND OXIA AND PROSGEGRAMMENI*/ + 0x1f86, /* U+001f8e: GREEK CAPITAL LETTER ALPHA WITH PSILI AND PERISPOMENI AND PROSGEGRAMMENI*/ + 0x1f87, /* U+001f8f: GREEK CAPITAL LETTER ALPHA WITH DASIA AND PERISPOMENI AND PROSGEGRAMMENI*/ + 0x1f90, /* U+001f90: GREEK SMALL LETTER ETA WITH PSILI AND YPOGEGRAMMENI*/ + 0x1f91, /* U+001f91: GREEK SMALL LETTER ETA WITH DASIA AND YPOGEGRAMMENI*/ + 0x1f92, /* U+001f92: GREEK SMALL LETTER ETA WITH PSILI AND VARIA AND YPOGEGRAMMENI*/ + 0x1f93, /* U+001f93: GREEK SMALL LETTER ETA WITH DASIA AND VARIA AND YPOGEGRAMMENI*/ + 0x1f94, /* U+001f94: GREEK SMALL LETTER ETA WITH PSILI AND OXIA AND YPOGEGRAMMENI*/ + 0x1f95, /* U+001f95: GREEK SMALL LETTER ETA WITH DASIA AND OXIA AND YPOGEGRAMMENI*/ + 0x1f96, /* U+001f96: GREEK SMALL LETTER ETA WITH PSILI AND PERISPOMENI AND YPOGEGRAMMENI*/ + 0x1f97, /* U+001f97: GREEK SMALL LETTER ETA WITH DASIA AND PERISPOMENI AND YPOGEGRAMMENI*/ + 0x1f90, /* U+001f98: GREEK CAPITAL LETTER ETA WITH PSILI AND PROSGEGRAMMENI*/ + 0x1f91, /* U+001f99: GREEK CAPITAL LETTER ETA WITH DASIA AND PROSGEGRAMMENI*/ + 0x1f92, /* U+001f9a: GREEK CAPITAL LETTER ETA WITH PSILI AND VARIA AND PROSGEGRAMMENI*/ + 0x1f93, /* U+001f9b: GREEK CAPITAL LETTER ETA WITH DASIA AND VARIA AND PROSGEGRAMMENI*/ + 0x1f94, /* U+001f9c: GREEK CAPITAL LETTER ETA WITH PSILI AND OXIA AND PROSGEGRAMMENI*/ + 0x1f95, /* U+001f9d: GREEK CAPITAL LETTER ETA WITH DASIA AND OXIA AND PROSGEGRAMMENI*/ + 0x1f96, /* U+001f9e: GREEK CAPITAL LETTER ETA WITH PSILI AND PERISPOMENI AND PROSGEGRAMMENI*/ + 0x1f97, /* U+001f9f: GREEK CAPITAL LETTER ETA WITH DASIA AND PERISPOMENI AND PROSGEGRAMMENI*/ + 0x1fa0, /* U+001fa0: GREEK SMALL LETTER OMEGA WITH PSILI AND YPOGEGRAMMENI*/ + 0x1fa1, /* U+001fa1: GREEK SMALL LETTER OMEGA WITH DASIA AND YPOGEGRAMMENI*/ + 0x1fa2, /* U+001fa2: GREEK SMALL LETTER OMEGA WITH PSILI AND VARIA AND YPOGEGRAMMENI*/ + 0x1fa3, /* U+001fa3: GREEK SMALL LETTER OMEGA WITH DASIA AND VARIA AND YPOGEGRAMMENI*/ + 0x1fa4, /* U+001fa4: GREEK SMALL LETTER OMEGA WITH PSILI AND OXIA AND YPOGEGRAMMENI*/ + 0x1fa5, /* U+001fa5: GREEK SMALL LETTER OMEGA WITH DASIA AND OXIA AND YPOGEGRAMMENI*/ + 0x1fa6, /* U+001fa6: GREEK SMALL LETTER OMEGA WITH PSILI AND PERISPOMENI AND YPOGEGRAMMENI*/ + 0x1fa7, /* U+001fa7: GREEK SMALL LETTER OMEGA WITH DASIA AND PERISPOMENI AND YPOGEGRAMMENI*/ + 0x1fa0, /* U+001fa8: GREEK CAPITAL LETTER OMEGA WITH PSILI AND PROSGEGRAMMENI*/ + 0x1fa1, /* U+001fa9: GREEK CAPITAL LETTER OMEGA WITH DASIA AND PROSGEGRAMMENI*/ + 0x1fa2, /* U+001faa: GREEK CAPITAL LETTER OMEGA WITH PSILI AND VARIA AND PROSGEGRAMMENI*/ + 0x1fa3, /* U+001fab: GREEK CAPITAL LETTER OMEGA WITH DASIA AND VARIA AND PROSGEGRAMMENI*/ + 0x1fa4, /* U+001fac: GREEK CAPITAL LETTER OMEGA WITH PSILI AND OXIA AND PROSGEGRAMMENI*/ + 0x1fa5, /* U+001fad: GREEK CAPITAL LETTER OMEGA WITH DASIA AND OXIA AND PROSGEGRAMMENI*/ + 0x1fa6, /* U+001fae: GREEK CAPITAL LETTER OMEGA WITH PSILI AND PERISPOMENI AND PROSGEGRAMMENI*/ + 0x1fa7, /* U+001faf: GREEK CAPITAL LETTER OMEGA WITH DASIA AND PERISPOMENI AND PROSGEGRAMMENI*/ + 0x1fb0, /* U+001fb0: GREEK SMALL LETTER ALPHA WITH VRACHY*/ + 0x1fb1, /* U+001fb1: GREEK SMALL LETTER ALPHA WITH MACRON*/ + 0x1fb2, /* U+001fb2: GREEK SMALL LETTER ALPHA WITH VARIA AND YPOGEGRAMMENI*/ + 0x1fb3, /* U+001fb3: GREEK SMALL LETTER ALPHA WITH YPOGEGRAMMENI*/ + 0x1fb4, /* U+001fb4: GREEK SMALL LETTER ALPHA WITH OXIA AND YPOGEGRAMMENI*/ + 0x1fb5, /* U+001fb5: */ + 0x1fb6, /* U+001fb6: GREEK SMALL LETTER ALPHA WITH PERISPOMENI*/ + 0x1fb7, /* U+001fb7: GREEK SMALL LETTER ALPHA WITH PERISPOMENI AND YPOGEGRAMMENI*/ + 0x1fb0, /* U+001fb8: GREEK CAPITAL LETTER ALPHA WITH VRACHY*/ + 0x1fb1, /* U+001fb9: GREEK CAPITAL LETTER ALPHA WITH MACRON*/ + 0x1f70, /* U+001fba: GREEK CAPITAL LETTER ALPHA WITH VARIA*/ + 0x1f71, /* U+001fbb: GREEK CAPITAL LETTER ALPHA WITH OXIA*/ + 0x1fb3, /* U+001fbc: GREEK CAPITAL LETTER ALPHA WITH PROSGEGRAMMENI*/ + 0x1fbd, /* U+001fbd: GREEK KORONIS*/ + 0x1fbe, /* U+001fbe: GREEK PROSGEGRAMMENI*/ + 0x1fbf, /* U+001fbf: GREEK PSILI*/ + 0x1fc0, /* U+001fc0: GREEK PERISPOMENI*/ + 0x1fc1, /* U+001fc1: GREEK DIALYTIKA AND PERISPOMENI*/ + 0x1fc2, /* U+001fc2: GREEK SMALL LETTER ETA WITH VARIA AND YPOGEGRAMMENI*/ + 0x1fc3, /* U+001fc3: GREEK SMALL LETTER ETA WITH YPOGEGRAMMENI*/ + 0x1fc4, /* U+001fc4: GREEK SMALL LETTER ETA WITH OXIA AND YPOGEGRAMMENI*/ + 0x1fc5, /* U+001fc5: */ + 0x1fc6, /* U+001fc6: GREEK SMALL LETTER ETA WITH PERISPOMENI*/ + 0x1fc7, /* U+001fc7: GREEK SMALL LETTER ETA WITH PERISPOMENI AND YPOGEGRAMMENI*/ + 0x1f72, /* U+001fc8: GREEK CAPITAL LETTER EPSILON WITH VARIA*/ + 0x1f73, /* U+001fc9: GREEK CAPITAL LETTER EPSILON WITH OXIA*/ + 0x1f74, /* U+001fca: GREEK CAPITAL LETTER ETA WITH VARIA*/ + 0x1f75, /* U+001fcb: GREEK CAPITAL LETTER ETA WITH OXIA*/ + 0x1fc3, /* U+001fcc: GREEK CAPITAL LETTER ETA WITH PROSGEGRAMMENI*/ + 0x1fcd, /* U+001fcd: GREEK PSILI AND VARIA*/ + 0x1fce, /* U+001fce: GREEK PSILI AND OXIA*/ + 0x1fcf, /* U+001fcf: GREEK PSILI AND PERISPOMENI*/ + 0x1fd0, /* U+001fd0: GREEK SMALL LETTER IOTA WITH VRACHY*/ + 0x1fd1, /* U+001fd1: GREEK SMALL LETTER IOTA WITH MACRON*/ + 0x1fd2, /* U+001fd2: GREEK SMALL LETTER IOTA WITH DIALYTIKA AND VARIA*/ + 0x1fd3, /* U+001fd3: GREEK SMALL LETTER IOTA WITH DIALYTIKA AND OXIA*/ + 0x1fd4, /* U+001fd4: */ + 0x1fd5, /* U+001fd5: */ + 0x1fd6, /* U+001fd6: GREEK SMALL LETTER IOTA WITH PERISPOMENI*/ + 0x1fd7, /* U+001fd7: GREEK SMALL LETTER IOTA WITH DIALYTIKA AND PERISPOMENI*/ + 0x1fd0, /* U+001fd8: GREEK CAPITAL LETTER IOTA WITH VRACHY*/ + 0x1fd1, /* U+001fd9: GREEK CAPITAL LETTER IOTA WITH MACRON*/ + 0x1f76, /* U+001fda: GREEK CAPITAL LETTER IOTA WITH VARIA*/ + 0x1f77, /* U+001fdb: GREEK CAPITAL LETTER IOTA WITH OXIA*/ + 0x1fdc, /* U+001fdc: */ + 0x1fdd, /* U+001fdd: GREEK DASIA AND VARIA*/ + 0x1fde, /* U+001fde: GREEK DASIA AND OXIA*/ + 0x1fdf, /* U+001fdf: GREEK DASIA AND PERISPOMENI*/ + 0x1fe0, /* U+001fe0: GREEK SMALL LETTER UPSILON WITH VRACHY*/ + 0x1fe1, /* U+001fe1: GREEK SMALL LETTER UPSILON WITH MACRON*/ + 0x1fe2, /* U+001fe2: GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND VARIA*/ + 0x1fe3, /* U+001fe3: GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND OXIA*/ + 0x1fe4, /* U+001fe4: GREEK SMALL LETTER RHO WITH PSILI*/ + 0x1fe5, /* U+001fe5: GREEK SMALL LETTER RHO WITH DASIA*/ + 0x1fe6, /* U+001fe6: GREEK SMALL LETTER UPSILON WITH PERISPOMENI*/ + 0x1fe7, /* U+001fe7: GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND PERISPOMENI*/ + 0x1fe0, /* U+001fe8: GREEK CAPITAL LETTER UPSILON WITH VRACHY*/ + 0x1fe1, /* U+001fe9: GREEK CAPITAL LETTER UPSILON WITH MACRON*/ + 0x1f7a, /* U+001fea: GREEK CAPITAL LETTER UPSILON WITH VARIA*/ + 0x1f7b, /* U+001feb: GREEK CAPITAL LETTER UPSILON WITH OXIA*/ + 0x1fe5, /* U+001fec: GREEK CAPITAL LETTER RHO WITH DASIA*/ + 0x1fed, /* U+001fed: GREEK DIALYTIKA AND VARIA*/ + 0x1fee, /* U+001fee: GREEK DIALYTIKA AND OXIA*/ + 0x1fef, /* U+001fef: GREEK VARIA*/ + 0x1ff0, /* U+001ff0: */ + 0x1ff1, /* U+001ff1: */ + 0x1ff2, /* U+001ff2: GREEK SMALL LETTER OMEGA WITH VARIA AND YPOGEGRAMMENI*/ + 0x1ff3, /* U+001ff3: GREEK SMALL LETTER OMEGA WITH YPOGEGRAMMENI*/ + 0x1ff4, /* U+001ff4: GREEK SMALL LETTER OMEGA WITH OXIA AND YPOGEGRAMMENI*/ + 0x1ff5, /* U+001ff5: */ + 0x1ff6, /* U+001ff6: GREEK SMALL LETTER OMEGA WITH PERISPOMENI*/ + 0x1ff7, /* U+001ff7: GREEK SMALL LETTER OMEGA WITH PERISPOMENI AND YPOGEGRAMMENI*/ + 0x1f78, /* U+001ff8: GREEK CAPITAL LETTER OMICRON WITH VARIA*/ + 0x1f79, /* U+001ff9: GREEK CAPITAL LETTER OMICRON WITH OXIA*/ + 0x1f7c, /* U+001ffa: GREEK CAPITAL LETTER OMEGA WITH VARIA*/ + 0x1f7d, /* U+001ffb: GREEK CAPITAL LETTER OMEGA WITH OXIA*/ + 0x1ff3, /* U+001ffc: GREEK CAPITAL LETTER OMEGA WITH PROSGEGRAMMENI*/ + 0x1ffd, /* U+001ffd: GREEK OXIA*/ + 0x1ffe, /* U+001ffe: GREEK DASIA*/ + 0x1fff, /* U+001fff: */ + 0x2000, /* U+002000: EN QUAD*/ + 0x2001, /* U+002001: EM QUAD*/ + 0x2002, /* U+002002: EN SPACE*/ + 0x2003, /* U+002003: EM SPACE*/ + 0x2004, /* U+002004: THREE-PER-EM SPACE*/ + 0x2005, /* U+002005: FOUR-PER-EM SPACE*/ + 0x2006, /* U+002006: SIX-PER-EM SPACE*/ + 0x2007, /* U+002007: FIGURE SPACE*/ + 0x2008, /* U+002008: PUNCTUATION SPACE*/ + 0x2009, /* U+002009: THIN SPACE*/ + 0x200a, /* U+00200a: HAIR SPACE*/ + 0x200b, /* U+00200b: ZERO WIDTH SPACE*/ + 0x200c, /* U+00200c: ZERO WIDTH NON-JOINER*/ + 0x200d, /* U+00200d: ZERO WIDTH JOINER*/ + 0x200e, /* U+00200e: LEFT-TO-RIGHT MARK*/ + 0x200f, /* U+00200f: RIGHT-TO-LEFT MARK*/ + 0x2010, /* U+002010: HYPHEN*/ + 0x2011, /* U+002011: NON-BREAKING HYPHEN*/ + 0x2012, /* U+002012: FIGURE DASH*/ + 0x2013, /* U+002013: EN DASH*/ + 0x2014, /* U+002014: EM DASH*/ + 0x2015, /* U+002015: HORIZONTAL BAR*/ + 0x2016, /* U+002016: DOUBLE VERTICAL LINE*/ + 0x2017, /* U+002017: DOUBLE LOW LINE*/ + 0x2018, /* U+002018: LEFT SINGLE QUOTATION MARK*/ + 0x2019, /* U+002019: RIGHT SINGLE QUOTATION MARK*/ + 0x201a, /* U+00201a: SINGLE LOW-9 QUOTATION MARK*/ + 0x201b, /* U+00201b: SINGLE HIGH-REVERSED-9 QUOTATION MARK*/ + 0x201c, /* U+00201c: LEFT DOUBLE QUOTATION MARK*/ + 0x201d, /* U+00201d: RIGHT DOUBLE QUOTATION MARK*/ + 0x201e, /* U+00201e: DOUBLE LOW-9 QUOTATION MARK*/ + 0x201f, /* U+00201f: DOUBLE HIGH-REVERSED-9 QUOTATION MARK*/ + 0x2020, /* U+002020: DAGGER*/ + 0x2021, /* U+002021: DOUBLE DAGGER*/ + 0x2022, /* U+002022: BULLET*/ + 0x2023, /* U+002023: TRIANGULAR BULLET*/ + 0x2024, /* U+002024: ONE DOT LEADER*/ + 0x2025, /* U+002025: TWO DOT LEADER*/ + 0x2026, /* U+002026: HORIZONTAL ELLIPSIS*/ + 0x2027, /* U+002027: HYPHENATION POINT*/ + 0x2028, /* U+002028: LINE SEPARATOR*/ + 0x2029, /* U+002029: PARAGRAPH SEPARATOR*/ + 0x202a, /* U+00202a: LEFT-TO-RIGHT EMBEDDING*/ + 0x202b, /* U+00202b: RIGHT-TO-LEFT EMBEDDING*/ + 0x202c, /* U+00202c: POP DIRECTIONAL FORMATTING*/ + 0x202d, /* U+00202d: LEFT-TO-RIGHT OVERRIDE*/ + 0x202e, /* U+00202e: RIGHT-TO-LEFT OVERRIDE*/ + 0x202f, /* U+00202f: NARROW NO-BREAK SPACE*/ + 0x2030, /* U+002030: PER MILLE SIGN*/ + 0x2031, /* U+002031: PER TEN THOUSAND SIGN*/ + 0x2032, /* U+002032: PRIME*/ + 0x2033, /* U+002033: DOUBLE PRIME*/ + 0x2034, /* U+002034: TRIPLE PRIME*/ + 0x2035, /* U+002035: REVERSED PRIME*/ + 0x2036, /* U+002036: REVERSED DOUBLE PRIME*/ + 0x2037, /* U+002037: REVERSED TRIPLE PRIME*/ + 0x2038, /* U+002038: CARET*/ + 0x2039, /* U+002039: SINGLE LEFT-POINTING ANGLE QUOTATION MARK*/ + 0x203a, /* U+00203a: SINGLE RIGHT-POINTING ANGLE QUOTATION MARK*/ + 0x203b, /* U+00203b: REFERENCE MARK*/ + 0x203c, /* U+00203c: DOUBLE EXCLAMATION MARK*/ + 0x203d, /* U+00203d: INTERROBANG*/ + 0x203e, /* U+00203e: OVERLINE*/ + 0x203f, /* U+00203f: UNDERTIE*/ + 0x2040, /* U+002040: CHARACTER TIE*/ + 0x2041, /* U+002041: CARET INSERTION POINT*/ + 0x2042, /* U+002042: ASTERISM*/ + 0x2043, /* U+002043: HYPHEN BULLET*/ + 0x2044, /* U+002044: FRACTION SLASH*/ + 0x2045, /* U+002045: LEFT SQUARE BRACKET WITH QUILL*/ + 0x2046, /* U+002046: RIGHT SQUARE BRACKET WITH QUILL*/ + 0x2047, /* U+002047: DOUBLE QUESTION MARK*/ + 0x2048, /* U+002048: QUESTION EXCLAMATION MARK*/ + 0x2049, /* U+002049: EXCLAMATION QUESTION MARK*/ + 0x204a, /* U+00204a: TIRONIAN SIGN ET*/ + 0x204b, /* U+00204b: REVERSED PILCROW SIGN*/ + 0x204c, /* U+00204c: BLACK LEFTWARDS BULLET*/ + 0x204d, /* U+00204d: BLACK RIGHTWARDS BULLET*/ + 0x204e, /* U+00204e: LOW ASTERISK*/ + 0x204f, /* U+00204f: REVERSED SEMICOLON*/ + 0x2050, /* U+002050: CLOSE UP*/ + 0x2051, /* U+002051: TWO ASTERISKS ALIGNED VERTICALLY*/ + 0x2052, /* U+002052: COMMERCIAL MINUS SIGN*/ + 0x2053, /* U+002053: SWUNG DASH*/ + 0x2054, /* U+002054: INVERTED UNDERTIE*/ + 0x2055, /* U+002055: FLOWER PUNCTUATION MARK*/ + 0x2056, /* U+002056: THREE DOT PUNCTUATION*/ + 0x2057, /* U+002057: QUADRUPLE PRIME*/ + 0x2058, /* U+002058: FOUR DOT PUNCTUATION*/ + 0x2059, /* U+002059: FIVE DOT PUNCTUATION*/ + 0x205a, /* U+00205a: TWO DOT PUNCTUATION*/ + 0x205b, /* U+00205b: FOUR DOT MARK*/ + 0x205c, /* U+00205c: DOTTED CROSS*/ + 0x205d, /* U+00205d: TRICOLON*/ + 0x205e, /* U+00205e: VERTICAL FOUR DOTS*/ + 0x205f, /* U+00205f: MEDIUM MATHEMATICAL SPACE*/ + 0x2060, /* U+002060: WORD JOINER*/ + 0x2061, /* U+002061: FUNCTION APPLICATION*/ + 0x2062, /* U+002062: INVISIBLE TIMES*/ + 0x2063, /* U+002063: INVISIBLE SEPARATOR*/ + 0x2064, /* U+002064: INVISIBLE PLUS*/ + 0x2065, /* U+002065: */ + 0x2066, /* U+002066: LEFT-TO-RIGHT ISOLATE*/ + 0x2067, /* U+002067: RIGHT-TO-LEFT ISOLATE*/ + 0x2068, /* U+002068: FIRST STRONG ISOLATE*/ + 0x2069, /* U+002069: POP DIRECTIONAL ISOLATE*/ + 0x206a, /* U+00206a: INHIBIT SYMMETRIC SWAPPING*/ + 0x206b, /* U+00206b: ACTIVATE SYMMETRIC SWAPPING*/ + 0x206c, /* U+00206c: INHIBIT ARABIC FORM SHAPING*/ + 0x206d, /* U+00206d: ACTIVATE ARABIC FORM SHAPING*/ + 0x206e, /* U+00206e: NATIONAL DIGIT SHAPES*/ + 0x206f, /* U+00206f: NOMINAL DIGIT SHAPES*/ + 0x2070, /* U+002070: SUPERSCRIPT ZERO*/ + 0x2071, /* U+002071: SUPERSCRIPT LATIN SMALL LETTER I*/ + 0x2072, /* U+002072: */ + 0x2073, /* U+002073: */ + 0x2074, /* U+002074: SUPERSCRIPT FOUR*/ + 0x2075, /* U+002075: SUPERSCRIPT FIVE*/ + 0x2076, /* U+002076: SUPERSCRIPT SIX*/ + 0x2077, /* U+002077: SUPERSCRIPT SEVEN*/ + 0x2078, /* U+002078: SUPERSCRIPT EIGHT*/ + 0x2079, /* U+002079: SUPERSCRIPT NINE*/ + 0x207a, /* U+00207a: SUPERSCRIPT PLUS SIGN*/ + 0x207b, /* U+00207b: SUPERSCRIPT MINUS*/ + 0x207c, /* U+00207c: SUPERSCRIPT EQUALS SIGN*/ + 0x207d, /* U+00207d: SUPERSCRIPT LEFT PARENTHESIS*/ + 0x207e, /* U+00207e: SUPERSCRIPT RIGHT PARENTHESIS*/ + 0x207f, /* U+00207f: SUPERSCRIPT LATIN SMALL LETTER N*/ + 0x2080, /* U+002080: SUBSCRIPT ZERO*/ + 0x2081, /* U+002081: SUBSCRIPT ONE*/ + 0x2082, /* U+002082: SUBSCRIPT TWO*/ + 0x2083, /* U+002083: SUBSCRIPT THREE*/ + 0x2084, /* U+002084: SUBSCRIPT FOUR*/ + 0x2085, /* U+002085: SUBSCRIPT FIVE*/ + 0x2086, /* U+002086: SUBSCRIPT SIX*/ + 0x2087, /* U+002087: SUBSCRIPT SEVEN*/ + 0x2088, /* U+002088: SUBSCRIPT EIGHT*/ + 0x2089, /* U+002089: SUBSCRIPT NINE*/ + 0x208a, /* U+00208a: SUBSCRIPT PLUS SIGN*/ + 0x208b, /* U+00208b: SUBSCRIPT MINUS*/ + 0x208c, /* U+00208c: SUBSCRIPT EQUALS SIGN*/ + 0x208d, /* U+00208d: SUBSCRIPT LEFT PARENTHESIS*/ + 0x208e, /* U+00208e: SUBSCRIPT RIGHT PARENTHESIS*/ + 0x208f, /* U+00208f: */ + 0x2090, /* U+002090: LATIN SUBSCRIPT SMALL LETTER A*/ + 0x2091, /* U+002091: LATIN SUBSCRIPT SMALL LETTER E*/ + 0x2092, /* U+002092: LATIN SUBSCRIPT SMALL LETTER O*/ + 0x2093, /* U+002093: LATIN SUBSCRIPT SMALL LETTER X*/ + 0x2094, /* U+002094: LATIN SUBSCRIPT SMALL LETTER SCHWA*/ + 0x2095, /* U+002095: LATIN SUBSCRIPT SMALL LETTER H*/ + 0x2096, /* U+002096: LATIN SUBSCRIPT SMALL LETTER K*/ + 0x2097, /* U+002097: LATIN SUBSCRIPT SMALL LETTER L*/ + 0x2098, /* U+002098: LATIN SUBSCRIPT SMALL LETTER M*/ + 0x2099, /* U+002099: LATIN SUBSCRIPT SMALL LETTER N*/ + 0x209a, /* U+00209a: LATIN SUBSCRIPT SMALL LETTER P*/ + 0x209b, /* U+00209b: LATIN SUBSCRIPT SMALL LETTER S*/ + 0x209c, /* U+00209c: LATIN SUBSCRIPT SMALL LETTER T*/ + 0x209d, /* U+00209d: */ + 0x209e, /* U+00209e: */ + 0x209f, /* U+00209f: */ + 0x20a0, /* U+0020a0: EURO-CURRENCY SIGN*/ + 0x20a1, /* U+0020a1: COLON SIGN*/ + 0x20a2, /* U+0020a2: CRUZEIRO SIGN*/ + 0x20a3, /* U+0020a3: FRENCH FRANC SIGN*/ + 0x20a4, /* U+0020a4: LIRA SIGN*/ + 0x20a5, /* U+0020a5: MILL SIGN*/ + 0x20a6, /* U+0020a6: NAIRA SIGN*/ + 0x20a7, /* U+0020a7: PESETA SIGN*/ + 0x20a8, /* U+0020a8: RUPEE SIGN*/ + 0x20a9, /* U+0020a9: WON SIGN*/ + 0x20aa, /* U+0020aa: NEW SHEQEL SIGN*/ + 0x20ab, /* U+0020ab: DONG SIGN*/ + 0x20ac, /* U+0020ac: EURO SIGN*/ + 0x20ad, /* U+0020ad: KIP SIGN*/ + 0x20ae, /* U+0020ae: TUGRIK SIGN*/ + 0x20af, /* U+0020af: DRACHMA SIGN*/ + 0x20b0, /* U+0020b0: GERMAN PENNY SIGN*/ + 0x20b1, /* U+0020b1: PESO SIGN*/ + 0x20b2, /* U+0020b2: GUARANI SIGN*/ + 0x20b3, /* U+0020b3: AUSTRAL SIGN*/ + 0x20b4, /* U+0020b4: HRYVNIA SIGN*/ + 0x20b5, /* U+0020b5: CEDI SIGN*/ + 0x20b6, /* U+0020b6: LIVRE TOURNOIS SIGN*/ + 0x20b7, /* U+0020b7: SPESMILO SIGN*/ + 0x20b8, /* U+0020b8: TENGE SIGN*/ + 0x20b9, /* U+0020b9: INDIAN RUPEE SIGN*/ + 0x20ba, /* U+0020ba: TURKISH LIRA SIGN*/ + 0x20bb, /* U+0020bb: */ + 0x20bc, /* U+0020bc: */ + 0x20bd, /* U+0020bd: */ + 0x20be, /* U+0020be: */ + 0x20bf, /* U+0020bf: */ + 0x20c0, /* U+0020c0: */ + 0x20c1, /* U+0020c1: */ + 0x20c2, /* U+0020c2: */ + 0x20c3, /* U+0020c3: */ + 0x20c4, /* U+0020c4: */ + 0x20c5, /* U+0020c5: */ + 0x20c6, /* U+0020c6: */ + 0x20c7, /* U+0020c7: */ + 0x20c8, /* U+0020c8: */ + 0x20c9, /* U+0020c9: */ + 0x20ca, /* U+0020ca: */ + 0x20cb, /* U+0020cb: */ + 0x20cc, /* U+0020cc: */ + 0x20cd, /* U+0020cd: */ + 0x20ce, /* U+0020ce: */ + 0x20cf, /* U+0020cf: */ + 0x20d0, /* U+0020d0: COMBINING LEFT HARPOON ABOVE*/ + 0x20d1, /* U+0020d1: COMBINING RIGHT HARPOON ABOVE*/ + 0x20d2, /* U+0020d2: COMBINING LONG VERTICAL LINE OVERLAY*/ + 0x20d3, /* U+0020d3: COMBINING SHORT VERTICAL LINE OVERLAY*/ + 0x20d4, /* U+0020d4: COMBINING ANTICLOCKWISE ARROW ABOVE*/ + 0x20d5, /* U+0020d5: COMBINING CLOCKWISE ARROW ABOVE*/ + 0x20d6, /* U+0020d6: COMBINING LEFT ARROW ABOVE*/ + 0x20d7, /* U+0020d7: COMBINING RIGHT ARROW ABOVE*/ + 0x20d8, /* U+0020d8: COMBINING RING OVERLAY*/ + 0x20d9, /* U+0020d9: COMBINING CLOCKWISE RING OVERLAY*/ + 0x20da, /* U+0020da: COMBINING ANTICLOCKWISE RING OVERLAY*/ + 0x20db, /* U+0020db: COMBINING THREE DOTS ABOVE*/ + 0x20dc, /* U+0020dc: COMBINING FOUR DOTS ABOVE*/ + 0x20dd, /* U+0020dd: COMBINING ENCLOSING CIRCLE*/ + 0x20de, /* U+0020de: COMBINING ENCLOSING SQUARE*/ + 0x20df, /* U+0020df: COMBINING ENCLOSING DIAMOND*/ + 0x20e0, /* U+0020e0: COMBINING ENCLOSING CIRCLE BACKSLASH*/ + 0x20e1, /* U+0020e1: COMBINING LEFT RIGHT ARROW ABOVE*/ + 0x20e2, /* U+0020e2: COMBINING ENCLOSING SCREEN*/ + 0x20e3, /* U+0020e3: COMBINING ENCLOSING KEYCAP*/ + 0x20e4, /* U+0020e4: COMBINING ENCLOSING UPWARD POINTING TRIANGLE*/ + 0x20e5, /* U+0020e5: COMBINING REVERSE SOLIDUS OVERLAY*/ + 0x20e6, /* U+0020e6: COMBINING DOUBLE VERTICAL STROKE OVERLAY*/ + 0x20e7, /* U+0020e7: COMBINING ANNUITY SYMBOL*/ + 0x20e8, /* U+0020e8: COMBINING TRIPLE UNDERDOT*/ + 0x20e9, /* U+0020e9: COMBINING WIDE BRIDGE ABOVE*/ + 0x20ea, /* U+0020ea: COMBINING LEFTWARDS ARROW OVERLAY*/ + 0x20eb, /* U+0020eb: COMBINING LONG DOUBLE SOLIDUS OVERLAY*/ + 0x20ec, /* U+0020ec: COMBINING RIGHTWARDS HARPOON WITH BARB DOWNWARDS*/ + 0x20ed, /* U+0020ed: COMBINING LEFTWARDS HARPOON WITH BARB DOWNWARDS*/ + 0x20ee, /* U+0020ee: COMBINING LEFT ARROW BELOW*/ + 0x20ef, /* U+0020ef: COMBINING RIGHT ARROW BELOW*/ + 0x20f0, /* U+0020f0: COMBINING ASTERISK ABOVE*/ + 0x20f1, /* U+0020f1: */ + 0x20f2, /* U+0020f2: */ + 0x20f3, /* U+0020f3: */ + 0x20f4, /* U+0020f4: */ + 0x20f5, /* U+0020f5: */ + 0x20f6, /* U+0020f6: */ + 0x20f7, /* U+0020f7: */ + 0x20f8, /* U+0020f8: */ + 0x20f9, /* U+0020f9: */ + 0x20fa, /* U+0020fa: */ + 0x20fb, /* U+0020fb: */ + 0x20fc, /* U+0020fc: */ + 0x20fd, /* U+0020fd: */ + 0x20fe, /* U+0020fe: */ + 0x20ff, /* U+0020ff: */ + 0x2100, /* U+002100: ACCOUNT OF*/ + 0x2101, /* U+002101: ADDRESSED TO THE SUBJECT*/ + 0x2102, /* U+002102: DOUBLE-STRUCK CAPITAL C*/ + 0x2103, /* U+002103: DEGREE CELSIUS*/ + 0x2104, /* U+002104: CENTRE LINE SYMBOL*/ + 0x2105, /* U+002105: CARE OF*/ + 0x2106, /* U+002106: CADA UNA*/ + 0x2107, /* U+002107: EULER CONSTANT*/ + 0x2108, /* U+002108: SCRUPLE*/ + 0x2109, /* U+002109: DEGREE FAHRENHEIT*/ + 0x210a, /* U+00210a: SCRIPT SMALL G*/ + 0x210b, /* U+00210b: SCRIPT CAPITAL H*/ + 0x210c, /* U+00210c: BLACK-LETTER CAPITAL H*/ + 0x210d, /* U+00210d: DOUBLE-STRUCK CAPITAL H*/ + 0x210e, /* U+00210e: PLANCK CONSTANT*/ + 0x210f, /* U+00210f: PLANCK CONSTANT OVER TWO PI*/ + 0x2110, /* U+002110: SCRIPT CAPITAL I*/ + 0x2111, /* U+002111: BLACK-LETTER CAPITAL I*/ + 0x2112, /* U+002112: SCRIPT CAPITAL L*/ + 0x2113, /* U+002113: SCRIPT SMALL L*/ + 0x2114, /* U+002114: L B BAR SYMBOL*/ + 0x2115, /* U+002115: DOUBLE-STRUCK CAPITAL N*/ + 0x2116, /* U+002116: NUMERO SIGN*/ + 0x2117, /* U+002117: SOUND RECORDING COPYRIGHT*/ + 0x2118, /* U+002118: SCRIPT CAPITAL P*/ + 0x2119, /* U+002119: DOUBLE-STRUCK CAPITAL P*/ + 0x211a, /* U+00211a: DOUBLE-STRUCK CAPITAL Q*/ + 0x211b, /* U+00211b: SCRIPT CAPITAL R*/ + 0x211c, /* U+00211c: BLACK-LETTER CAPITAL R*/ + 0x211d, /* U+00211d: DOUBLE-STRUCK CAPITAL R*/ + 0x211e, /* U+00211e: PRESCRIPTION TAKE*/ + 0x211f, /* U+00211f: RESPONSE*/ + 0x2120, /* U+002120: SERVICE MARK*/ + 0x2121, /* U+002121: TELEPHONE SIGN*/ + 0x2122, /* U+002122: TRADE MARK SIGN*/ + 0x2123, /* U+002123: VERSICLE*/ + 0x2124, /* U+002124: DOUBLE-STRUCK CAPITAL Z*/ + 0x2125, /* U+002125: OUNCE SIGN*/ + 0x3c9, /* U+002126: OHM SIGN*/ + 0x2127, /* U+002127: INVERTED OHM SIGN*/ + 0x2128, /* U+002128: BLACK-LETTER CAPITAL Z*/ + 0x2129, /* U+002129: TURNED GREEK SMALL LETTER IOTA*/ + 0x6b, /* U+00212a: KELVIN SIGN*/ + 0xe5, /* U+00212b: ANGSTROM SIGN*/ + 0x212c, /* U+00212c: SCRIPT CAPITAL B*/ + 0x212d, /* U+00212d: BLACK-LETTER CAPITAL C*/ + 0x212e, /* U+00212e: ESTIMATED SYMBOL*/ + 0x212f, /* U+00212f: SCRIPT SMALL E*/ + 0x2130, /* U+002130: SCRIPT CAPITAL E*/ + 0x2131, /* U+002131: SCRIPT CAPITAL F*/ + 0x214e, /* U+002132: TURNED CAPITAL F*/ + 0x2133, /* U+002133: SCRIPT CAPITAL M*/ + 0x2134, /* U+002134: SCRIPT SMALL O*/ + 0x2135, /* U+002135: ALEF SYMBOL*/ + 0x2136, /* U+002136: BET SYMBOL*/ + 0x2137, /* U+002137: GIMEL SYMBOL*/ + 0x2138, /* U+002138: DALET SYMBOL*/ + 0x2139, /* U+002139: INFORMATION SOURCE*/ + 0x213a, /* U+00213a: ROTATED CAPITAL Q*/ + 0x213b, /* U+00213b: FACSIMILE SIGN*/ + 0x213c, /* U+00213c: DOUBLE-STRUCK SMALL PI*/ + 0x213d, /* U+00213d: DOUBLE-STRUCK SMALL GAMMA*/ + 0x213e, /* U+00213e: DOUBLE-STRUCK CAPITAL GAMMA*/ + 0x213f, /* U+00213f: DOUBLE-STRUCK CAPITAL PI*/ + 0x2140, /* U+002140: DOUBLE-STRUCK N-ARY SUMMATION*/ + 0x2141, /* U+002141: TURNED SANS-SERIF CAPITAL G*/ + 0x2142, /* U+002142: TURNED SANS-SERIF CAPITAL L*/ + 0x2143, /* U+002143: REVERSED SANS-SERIF CAPITAL L*/ + 0x2144, /* U+002144: TURNED SANS-SERIF CAPITAL Y*/ + 0x2145, /* U+002145: DOUBLE-STRUCK ITALIC CAPITAL D*/ + 0x2146, /* U+002146: DOUBLE-STRUCK ITALIC SMALL D*/ + 0x2147, /* U+002147: DOUBLE-STRUCK ITALIC SMALL E*/ + 0x2148, /* U+002148: DOUBLE-STRUCK ITALIC SMALL I*/ + 0x2149, /* U+002149: DOUBLE-STRUCK ITALIC SMALL J*/ + 0x214a, /* U+00214a: PROPERTY LINE*/ + 0x214b, /* U+00214b: TURNED AMPERSAND*/ + 0x214c, /* U+00214c: PER SIGN*/ + 0x214d, /* U+00214d: AKTIESELSKAB*/ + 0x214e, /* U+00214e: TURNED SMALL F*/ + 0x214f, /* U+00214f: SYMBOL FOR SAMARITAN SOURCE*/ + 0x2150, /* U+002150: VULGAR FRACTION ONE SEVENTH*/ + 0x2151, /* U+002151: VULGAR FRACTION ONE NINTH*/ + 0x2152, /* U+002152: VULGAR FRACTION ONE TENTH*/ + 0x2153, /* U+002153: VULGAR FRACTION ONE THIRD*/ + 0x2154, /* U+002154: VULGAR FRACTION TWO THIRDS*/ + 0x2155, /* U+002155: VULGAR FRACTION ONE FIFTH*/ + 0x2156, /* U+002156: VULGAR FRACTION TWO FIFTHS*/ + 0x2157, /* U+002157: VULGAR FRACTION THREE FIFTHS*/ + 0x2158, /* U+002158: VULGAR FRACTION FOUR FIFTHS*/ + 0x2159, /* U+002159: VULGAR FRACTION ONE SIXTH*/ + 0x215a, /* U+00215a: VULGAR FRACTION FIVE SIXTHS*/ + 0x215b, /* U+00215b: VULGAR FRACTION ONE EIGHTH*/ + 0x215c, /* U+00215c: VULGAR FRACTION THREE EIGHTHS*/ + 0x215d, /* U+00215d: VULGAR FRACTION FIVE EIGHTHS*/ + 0x215e, /* U+00215e: VULGAR FRACTION SEVEN EIGHTHS*/ + 0x215f, /* U+00215f: FRACTION NUMERATOR ONE*/ + 0x2170, /* U+002160: ROMAN NUMERAL ONE*/ + 0x2171, /* U+002161: ROMAN NUMERAL TWO*/ + 0x2172, /* U+002162: ROMAN NUMERAL THREE*/ + 0x2173, /* U+002163: ROMAN NUMERAL FOUR*/ + 0x2174, /* U+002164: ROMAN NUMERAL FIVE*/ + 0x2175, /* U+002165: ROMAN NUMERAL SIX*/ + 0x2176, /* U+002166: ROMAN NUMERAL SEVEN*/ + 0x2177, /* U+002167: ROMAN NUMERAL EIGHT*/ + 0x2178, /* U+002168: ROMAN NUMERAL NINE*/ + 0x2179, /* U+002169: ROMAN NUMERAL TEN*/ + 0x217a, /* U+00216a: ROMAN NUMERAL ELEVEN*/ + 0x217b, /* U+00216b: ROMAN NUMERAL TWELVE*/ + 0x217c, /* U+00216c: ROMAN NUMERAL FIFTY*/ + 0x217d, /* U+00216d: ROMAN NUMERAL ONE HUNDRED*/ + 0x217e, /* U+00216e: ROMAN NUMERAL FIVE HUNDRED*/ + 0x217f, /* U+00216f: ROMAN NUMERAL ONE THOUSAND*/ + 0x2170, /* U+002170: SMALL ROMAN NUMERAL ONE*/ + 0x2171, /* U+002171: SMALL ROMAN NUMERAL TWO*/ + 0x2172, /* U+002172: SMALL ROMAN NUMERAL THREE*/ + 0x2173, /* U+002173: SMALL ROMAN NUMERAL FOUR*/ + 0x2174, /* U+002174: SMALL ROMAN NUMERAL FIVE*/ + 0x2175, /* U+002175: SMALL ROMAN NUMERAL SIX*/ + 0x2176, /* U+002176: SMALL ROMAN NUMERAL SEVEN*/ + 0x2177, /* U+002177: SMALL ROMAN NUMERAL EIGHT*/ + 0x2178, /* U+002178: SMALL ROMAN NUMERAL NINE*/ + 0x2179, /* U+002179: SMALL ROMAN NUMERAL TEN*/ + 0x217a, /* U+00217a: SMALL ROMAN NUMERAL ELEVEN*/ + 0x217b, /* U+00217b: SMALL ROMAN NUMERAL TWELVE*/ + 0x217c, /* U+00217c: SMALL ROMAN NUMERAL FIFTY*/ + 0x217d, /* U+00217d: SMALL ROMAN NUMERAL ONE HUNDRED*/ + 0x217e, /* U+00217e: SMALL ROMAN NUMERAL FIVE HUNDRED*/ + 0x217f, /* U+00217f: SMALL ROMAN NUMERAL ONE THOUSAND*/ + 0x2180, /* U+002180: ROMAN NUMERAL ONE THOUSAND C D*/ + 0x2181, /* U+002181: ROMAN NUMERAL FIVE THOUSAND*/ + 0x2182, /* U+002182: ROMAN NUMERAL TEN THOUSAND*/ + 0x2184, /* U+002183: ROMAN NUMERAL REVERSED ONE HUNDRED*/ + 0x2184, /* U+002184: LATIN SMALL LETTER REVERSED C*/ + 0x2185, /* U+002185: ROMAN NUMERAL SIX LATE FORM*/ + 0x2186, /* U+002186: ROMAN NUMERAL FIFTY EARLY FORM*/ + 0x2187, /* U+002187: ROMAN NUMERAL FIFTY THOUSAND*/ + 0x2188, /* U+002188: ROMAN NUMERAL ONE HUNDRED THOUSAND*/ + 0x2189, /* U+002189: VULGAR FRACTION ZERO THIRDS*/ + 0x218a, /* U+00218a: */ + 0x218b, /* U+00218b: */ + 0x218c, /* U+00218c: */ + 0x218d, /* U+00218d: */ + 0x218e, /* U+00218e: */ + 0x218f, /* U+00218f: */ + 0x2190, /* U+002190: LEFTWARDS ARROW*/ + 0x2191, /* U+002191: UPWARDS ARROW*/ + 0x2192, /* U+002192: RIGHTWARDS ARROW*/ + 0x2193, /* U+002193: DOWNWARDS ARROW*/ + 0x2194, /* U+002194: LEFT RIGHT ARROW*/ + 0x2195, /* U+002195: UP DOWN ARROW*/ + 0x2196, /* U+002196: NORTH WEST ARROW*/ + 0x2197, /* U+002197: NORTH EAST ARROW*/ + 0x2198, /* U+002198: SOUTH EAST ARROW*/ + 0x2199, /* U+002199: SOUTH WEST ARROW*/ + 0x219a, /* U+00219a: LEFTWARDS ARROW WITH STROKE*/ + 0x219b, /* U+00219b: RIGHTWARDS ARROW WITH STROKE*/ + 0x219c, /* U+00219c: LEFTWARDS WAVE ARROW*/ + 0x219d, /* U+00219d: RIGHTWARDS WAVE ARROW*/ + 0x219e, /* U+00219e: LEFTWARDS TWO HEADED ARROW*/ + 0x219f, /* U+00219f: UPWARDS TWO HEADED ARROW*/ + 0x21a0, /* U+0021a0: RIGHTWARDS TWO HEADED ARROW*/ + 0x21a1, /* U+0021a1: DOWNWARDS TWO HEADED ARROW*/ + 0x21a2, /* U+0021a2: LEFTWARDS ARROW WITH TAIL*/ + 0x21a3, /* U+0021a3: RIGHTWARDS ARROW WITH TAIL*/ + 0x21a4, /* U+0021a4: LEFTWARDS ARROW FROM BAR*/ + 0x21a5, /* U+0021a5: UPWARDS ARROW FROM BAR*/ + 0x21a6, /* U+0021a6: RIGHTWARDS ARROW FROM BAR*/ + 0x21a7, /* U+0021a7: DOWNWARDS ARROW FROM BAR*/ + 0x21a8, /* U+0021a8: UP DOWN ARROW WITH BASE*/ + 0x21a9, /* U+0021a9: LEFTWARDS ARROW WITH HOOK*/ + 0x21aa, /* U+0021aa: RIGHTWARDS ARROW WITH HOOK*/ + 0x21ab, /* U+0021ab: LEFTWARDS ARROW WITH LOOP*/ + 0x21ac, /* U+0021ac: RIGHTWARDS ARROW WITH LOOP*/ + 0x21ad, /* U+0021ad: LEFT RIGHT WAVE ARROW*/ + 0x21ae, /* U+0021ae: LEFT RIGHT ARROW WITH STROKE*/ + 0x21af, /* U+0021af: DOWNWARDS ZIGZAG ARROW*/ + 0x21b0, /* U+0021b0: UPWARDS ARROW WITH TIP LEFTWARDS*/ + 0x21b1, /* U+0021b1: UPWARDS ARROW WITH TIP RIGHTWARDS*/ + 0x21b2, /* U+0021b2: DOWNWARDS ARROW WITH TIP LEFTWARDS*/ + 0x21b3, /* U+0021b3: DOWNWARDS ARROW WITH TIP RIGHTWARDS*/ + 0x21b4, /* U+0021b4: RIGHTWARDS ARROW WITH CORNER DOWNWARDS*/ + 0x21b5, /* U+0021b5: DOWNWARDS ARROW WITH CORNER LEFTWARDS*/ + 0x21b6, /* U+0021b6: ANTICLOCKWISE TOP SEMICIRCLE ARROW*/ + 0x21b7, /* U+0021b7: CLOCKWISE TOP SEMICIRCLE ARROW*/ + 0x21b8, /* U+0021b8: NORTH WEST ARROW TO LONG BAR*/ + 0x21b9, /* U+0021b9: LEFTWARDS ARROW TO BAR OVER RIGHTWARDS ARROW TO BAR*/ + 0x21ba, /* U+0021ba: ANTICLOCKWISE OPEN CIRCLE ARROW*/ + 0x21bb, /* U+0021bb: CLOCKWISE OPEN CIRCLE ARROW*/ + 0x21bc, /* U+0021bc: LEFTWARDS HARPOON WITH BARB UPWARDS*/ + 0x21bd, /* U+0021bd: LEFTWARDS HARPOON WITH BARB DOWNWARDS*/ + 0x21be, /* U+0021be: UPWARDS HARPOON WITH BARB RIGHTWARDS*/ + 0x21bf, /* U+0021bf: UPWARDS HARPOON WITH BARB LEFTWARDS*/ + 0x21c0, /* U+0021c0: RIGHTWARDS HARPOON WITH BARB UPWARDS*/ + 0x21c1, /* U+0021c1: RIGHTWARDS HARPOON WITH BARB DOWNWARDS*/ + 0x21c2, /* U+0021c2: DOWNWARDS HARPOON WITH BARB RIGHTWARDS*/ + 0x21c3, /* U+0021c3: DOWNWARDS HARPOON WITH BARB LEFTWARDS*/ + 0x21c4, /* U+0021c4: RIGHTWARDS ARROW OVER LEFTWARDS ARROW*/ + 0x21c5, /* U+0021c5: UPWARDS ARROW LEFTWARDS OF DOWNWARDS ARROW*/ + 0x21c6, /* U+0021c6: LEFTWARDS ARROW OVER RIGHTWARDS ARROW*/ + 0x21c7, /* U+0021c7: LEFTWARDS PAIRED ARROWS*/ + 0x21c8, /* U+0021c8: UPWARDS PAIRED ARROWS*/ + 0x21c9, /* U+0021c9: RIGHTWARDS PAIRED ARROWS*/ + 0x21ca, /* U+0021ca: DOWNWARDS PAIRED ARROWS*/ + 0x21cb, /* U+0021cb: LEFTWARDS HARPOON OVER RIGHTWARDS HARPOON*/ + 0x21cc, /* U+0021cc: RIGHTWARDS HARPOON OVER LEFTWARDS HARPOON*/ + 0x21cd, /* U+0021cd: LEFTWARDS DOUBLE ARROW WITH STROKE*/ + 0x21ce, /* U+0021ce: LEFT RIGHT DOUBLE ARROW WITH STROKE*/ + 0x21cf, /* U+0021cf: RIGHTWARDS DOUBLE ARROW WITH STROKE*/ + 0x21d0, /* U+0021d0: LEFTWARDS DOUBLE ARROW*/ + 0x21d1, /* U+0021d1: UPWARDS DOUBLE ARROW*/ + 0x21d2, /* U+0021d2: RIGHTWARDS DOUBLE ARROW*/ + 0x21d3, /* U+0021d3: DOWNWARDS DOUBLE ARROW*/ + 0x21d4, /* U+0021d4: LEFT RIGHT DOUBLE ARROW*/ + 0x21d5, /* U+0021d5: UP DOWN DOUBLE ARROW*/ + 0x21d6, /* U+0021d6: NORTH WEST DOUBLE ARROW*/ + 0x21d7, /* U+0021d7: NORTH EAST DOUBLE ARROW*/ + 0x21d8, /* U+0021d8: SOUTH EAST DOUBLE ARROW*/ + 0x21d9, /* U+0021d9: SOUTH WEST DOUBLE ARROW*/ + 0x21da, /* U+0021da: LEFTWARDS TRIPLE ARROW*/ + 0x21db, /* U+0021db: RIGHTWARDS TRIPLE ARROW*/ + 0x21dc, /* U+0021dc: LEFTWARDS SQUIGGLE ARROW*/ + 0x21dd, /* U+0021dd: RIGHTWARDS SQUIGGLE ARROW*/ + 0x21de, /* U+0021de: UPWARDS ARROW WITH DOUBLE STROKE*/ + 0x21df, /* U+0021df: DOWNWARDS ARROW WITH DOUBLE STROKE*/ + 0x21e0, /* U+0021e0: LEFTWARDS DASHED ARROW*/ + 0x21e1, /* U+0021e1: UPWARDS DASHED ARROW*/ + 0x21e2, /* U+0021e2: RIGHTWARDS DASHED ARROW*/ + 0x21e3, /* U+0021e3: DOWNWARDS DASHED ARROW*/ + 0x21e4, /* U+0021e4: LEFTWARDS ARROW TO BAR*/ + 0x21e5, /* U+0021e5: RIGHTWARDS ARROW TO BAR*/ + 0x21e6, /* U+0021e6: LEFTWARDS WHITE ARROW*/ + 0x21e7, /* U+0021e7: UPWARDS WHITE ARROW*/ + 0x21e8, /* U+0021e8: RIGHTWARDS WHITE ARROW*/ + 0x21e9, /* U+0021e9: DOWNWARDS WHITE ARROW*/ + 0x21ea, /* U+0021ea: UPWARDS WHITE ARROW FROM BAR*/ + 0x21eb, /* U+0021eb: UPWARDS WHITE ARROW ON PEDESTAL*/ + 0x21ec, /* U+0021ec: UPWARDS WHITE ARROW ON PEDESTAL WITH HORIZONTAL BAR*/ + 0x21ed, /* U+0021ed: UPWARDS WHITE ARROW ON PEDESTAL WITH VERTICAL BAR*/ + 0x21ee, /* U+0021ee: UPWARDS WHITE DOUBLE ARROW*/ + 0x21ef, /* U+0021ef: UPWARDS WHITE DOUBLE ARROW ON PEDESTAL*/ + 0x21f0, /* U+0021f0: RIGHTWARDS WHITE ARROW FROM WALL*/ + 0x21f1, /* U+0021f1: NORTH WEST ARROW TO CORNER*/ + 0x21f2, /* U+0021f2: SOUTH EAST ARROW TO CORNER*/ + 0x21f3, /* U+0021f3: UP DOWN WHITE ARROW*/ + 0x21f4, /* U+0021f4: RIGHT ARROW WITH SMALL CIRCLE*/ + 0x21f5, /* U+0021f5: DOWNWARDS ARROW LEFTWARDS OF UPWARDS ARROW*/ + 0x21f6, /* U+0021f6: THREE RIGHTWARDS ARROWS*/ + 0x21f7, /* U+0021f7: LEFTWARDS ARROW WITH VERTICAL STROKE*/ + 0x21f8, /* U+0021f8: RIGHTWARDS ARROW WITH VERTICAL STROKE*/ + 0x21f9, /* U+0021f9: LEFT RIGHT ARROW WITH VERTICAL STROKE*/ + 0x21fa, /* U+0021fa: LEFTWARDS ARROW WITH DOUBLE VERTICAL STROKE*/ + 0x21fb, /* U+0021fb: RIGHTWARDS ARROW WITH DOUBLE VERTICAL STROKE*/ + 0x21fc, /* U+0021fc: LEFT RIGHT ARROW WITH DOUBLE VERTICAL STROKE*/ + 0x21fd, /* U+0021fd: LEFTWARDS OPEN-HEADED ARROW*/ + 0x21fe, /* U+0021fe: RIGHTWARDS OPEN-HEADED ARROW*/ + 0x21ff, /* U+0021ff: LEFT RIGHT OPEN-HEADED ARROW*/ + 0x2200, /* U+002200: FOR ALL*/ + 0x2201, /* U+002201: COMPLEMENT*/ + 0x2202, /* U+002202: PARTIAL DIFFERENTIAL*/ + 0x2203, /* U+002203: THERE EXISTS*/ + 0x2204, /* U+002204: THERE DOES NOT EXIST*/ + 0x2205, /* U+002205: EMPTY SET*/ + 0x2206, /* U+002206: INCREMENT*/ + 0x2207, /* U+002207: NABLA*/ + 0x2208, /* U+002208: ELEMENT OF*/ + 0x2209, /* U+002209: NOT AN ELEMENT OF*/ + 0x220a, /* U+00220a: SMALL ELEMENT OF*/ + 0x220b, /* U+00220b: CONTAINS AS MEMBER*/ + 0x220c, /* U+00220c: DOES NOT CONTAIN AS MEMBER*/ + 0x220d, /* U+00220d: SMALL CONTAINS AS MEMBER*/ + 0x220e, /* U+00220e: END OF PROOF*/ + 0x220f, /* U+00220f: N-ARY PRODUCT*/ + 0x2210, /* U+002210: N-ARY COPRODUCT*/ + 0x2211, /* U+002211: N-ARY SUMMATION*/ + 0x2212, /* U+002212: MINUS SIGN*/ + 0x2213, /* U+002213: MINUS-OR-PLUS SIGN*/ + 0x2214, /* U+002214: DOT PLUS*/ + 0x2215, /* U+002215: DIVISION SLASH*/ + 0x2216, /* U+002216: SET MINUS*/ + 0x2217, /* U+002217: ASTERISK OPERATOR*/ + 0x2218, /* U+002218: RING OPERATOR*/ + 0x2219, /* U+002219: BULLET OPERATOR*/ + 0x221a, /* U+00221a: SQUARE ROOT*/ + 0x221b, /* U+00221b: CUBE ROOT*/ + 0x221c, /* U+00221c: FOURTH ROOT*/ + 0x221d, /* U+00221d: PROPORTIONAL TO*/ + 0x221e, /* U+00221e: INFINITY*/ + 0x221f, /* U+00221f: RIGHT ANGLE*/ + 0x2220, /* U+002220: ANGLE*/ + 0x2221, /* U+002221: MEASURED ANGLE*/ + 0x2222, /* U+002222: SPHERICAL ANGLE*/ + 0x2223, /* U+002223: DIVIDES*/ + 0x2224, /* U+002224: DOES NOT DIVIDE*/ + 0x2225, /* U+002225: PARALLEL TO*/ + 0x2226, /* U+002226: NOT PARALLEL TO*/ + 0x2227, /* U+002227: LOGICAL AND*/ + 0x2228, /* U+002228: LOGICAL OR*/ + 0x2229, /* U+002229: INTERSECTION*/ + 0x222a, /* U+00222a: UNION*/ + 0x222b, /* U+00222b: INTEGRAL*/ + 0x222c, /* U+00222c: DOUBLE INTEGRAL*/ + 0x222d, /* U+00222d: TRIPLE INTEGRAL*/ + 0x222e, /* U+00222e: CONTOUR INTEGRAL*/ + 0x222f, /* U+00222f: SURFACE INTEGRAL*/ + 0x2230, /* U+002230: VOLUME INTEGRAL*/ + 0x2231, /* U+002231: CLOCKWISE INTEGRAL*/ + 0x2232, /* U+002232: CLOCKWISE CONTOUR INTEGRAL*/ + 0x2233, /* U+002233: ANTICLOCKWISE CONTOUR INTEGRAL*/ + 0x2234, /* U+002234: THEREFORE*/ + 0x2235, /* U+002235: BECAUSE*/ + 0x2236, /* U+002236: RATIO*/ + 0x2237, /* U+002237: PROPORTION*/ + 0x2238, /* U+002238: DOT MINUS*/ + 0x2239, /* U+002239: EXCESS*/ + 0x223a, /* U+00223a: GEOMETRIC PROPORTION*/ + 0x223b, /* U+00223b: HOMOTHETIC*/ + 0x223c, /* U+00223c: TILDE OPERATOR*/ + 0x223d, /* U+00223d: REVERSED TILDE*/ + 0x223e, /* U+00223e: INVERTED LAZY S*/ + 0x223f, /* U+00223f: SINE WAVE*/ + 0x2240, /* U+002240: WREATH PRODUCT*/ + 0x2241, /* U+002241: NOT TILDE*/ + 0x2242, /* U+002242: MINUS TILDE*/ + 0x2243, /* U+002243: ASYMPTOTICALLY EQUAL TO*/ + 0x2244, /* U+002244: NOT ASYMPTOTICALLY EQUAL TO*/ + 0x2245, /* U+002245: APPROXIMATELY EQUAL TO*/ + 0x2246, /* U+002246: APPROXIMATELY BUT NOT ACTUALLY EQUAL TO*/ + 0x2247, /* U+002247: NEITHER APPROXIMATELY NOR ACTUALLY EQUAL TO*/ + 0x2248, /* U+002248: ALMOST EQUAL TO*/ + 0x2249, /* U+002249: NOT ALMOST EQUAL TO*/ + 0x224a, /* U+00224a: ALMOST EQUAL OR EQUAL TO*/ + 0x224b, /* U+00224b: TRIPLE TILDE*/ + 0x224c, /* U+00224c: ALL EQUAL TO*/ + 0x224d, /* U+00224d: EQUIVALENT TO*/ + 0x224e, /* U+00224e: GEOMETRICALLY EQUIVALENT TO*/ + 0x224f, /* U+00224f: DIFFERENCE BETWEEN*/ + 0x2250, /* U+002250: APPROACHES THE LIMIT*/ + 0x2251, /* U+002251: GEOMETRICALLY EQUAL TO*/ + 0x2252, /* U+002252: APPROXIMATELY EQUAL TO OR THE IMAGE OF*/ + 0x2253, /* U+002253: IMAGE OF OR APPROXIMATELY EQUAL TO*/ + 0x2254, /* U+002254: COLON EQUALS*/ + 0x2255, /* U+002255: EQUALS COLON*/ + 0x2256, /* U+002256: RING IN EQUAL TO*/ + 0x2257, /* U+002257: RING EQUAL TO*/ + 0x2258, /* U+002258: CORRESPONDS TO*/ + 0x2259, /* U+002259: ESTIMATES*/ + 0x225a, /* U+00225a: EQUIANGULAR TO*/ + 0x225b, /* U+00225b: STAR EQUALS*/ + 0x225c, /* U+00225c: DELTA EQUAL TO*/ + 0x225d, /* U+00225d: EQUAL TO BY DEFINITION*/ + 0x225e, /* U+00225e: MEASURED BY*/ + 0x225f, /* U+00225f: QUESTIONED EQUAL TO*/ + 0x2260, /* U+002260: NOT EQUAL TO*/ + 0x2261, /* U+002261: IDENTICAL TO*/ + 0x2262, /* U+002262: NOT IDENTICAL TO*/ + 0x2263, /* U+002263: STRICTLY EQUIVALENT TO*/ + 0x2264, /* U+002264: LESS-THAN OR EQUAL TO*/ + 0x2265, /* U+002265: GREATER-THAN OR EQUAL TO*/ + 0x2266, /* U+002266: LESS-THAN OVER EQUAL TO*/ + 0x2267, /* U+002267: GREATER-THAN OVER EQUAL TO*/ + 0x2268, /* U+002268: LESS-THAN BUT NOT EQUAL TO*/ + 0x2269, /* U+002269: GREATER-THAN BUT NOT EQUAL TO*/ + 0x226a, /* U+00226a: MUCH LESS-THAN*/ + 0x226b, /* U+00226b: MUCH GREATER-THAN*/ + 0x226c, /* U+00226c: BETWEEN*/ + 0x226d, /* U+00226d: NOT EQUIVALENT TO*/ + 0x226e, /* U+00226e: NOT LESS-THAN*/ + 0x226f, /* U+00226f: NOT GREATER-THAN*/ + 0x2270, /* U+002270: NEITHER LESS-THAN NOR EQUAL TO*/ + 0x2271, /* U+002271: NEITHER GREATER-THAN NOR EQUAL TO*/ + 0x2272, /* U+002272: LESS-THAN OR EQUIVALENT TO*/ + 0x2273, /* U+002273: GREATER-THAN OR EQUIVALENT TO*/ + 0x2274, /* U+002274: NEITHER LESS-THAN NOR EQUIVALENT TO*/ + 0x2275, /* U+002275: NEITHER GREATER-THAN NOR EQUIVALENT TO*/ + 0x2276, /* U+002276: LESS-THAN OR GREATER-THAN*/ + 0x2277, /* U+002277: GREATER-THAN OR LESS-THAN*/ + 0x2278, /* U+002278: NEITHER LESS-THAN NOR GREATER-THAN*/ + 0x2279, /* U+002279: NEITHER GREATER-THAN NOR LESS-THAN*/ + 0x227a, /* U+00227a: PRECEDES*/ + 0x227b, /* U+00227b: SUCCEEDS*/ + 0x227c, /* U+00227c: PRECEDES OR EQUAL TO*/ + 0x227d, /* U+00227d: SUCCEEDS OR EQUAL TO*/ + 0x227e, /* U+00227e: PRECEDES OR EQUIVALENT TO*/ + 0x227f, /* U+00227f: SUCCEEDS OR EQUIVALENT TO*/ + 0x2280, /* U+002280: DOES NOT PRECEDE*/ + 0x2281, /* U+002281: DOES NOT SUCCEED*/ + 0x2282, /* U+002282: SUBSET OF*/ + 0x2283, /* U+002283: SUPERSET OF*/ + 0x2284, /* U+002284: NOT A SUBSET OF*/ + 0x2285, /* U+002285: NOT A SUPERSET OF*/ + 0x2286, /* U+002286: SUBSET OF OR EQUAL TO*/ + 0x2287, /* U+002287: SUPERSET OF OR EQUAL TO*/ + 0x2288, /* U+002288: NEITHER A SUBSET OF NOR EQUAL TO*/ + 0x2289, /* U+002289: NEITHER A SUPERSET OF NOR EQUAL TO*/ + 0x228a, /* U+00228a: SUBSET OF WITH NOT EQUAL TO*/ + 0x228b, /* U+00228b: SUPERSET OF WITH NOT EQUAL TO*/ + 0x228c, /* U+00228c: MULTISET*/ + 0x228d, /* U+00228d: MULTISET MULTIPLICATION*/ + 0x228e, /* U+00228e: MULTISET UNION*/ + 0x228f, /* U+00228f: SQUARE IMAGE OF*/ + 0x2290, /* U+002290: SQUARE ORIGINAL OF*/ + 0x2291, /* U+002291: SQUARE IMAGE OF OR EQUAL TO*/ + 0x2292, /* U+002292: SQUARE ORIGINAL OF OR EQUAL TO*/ + 0x2293, /* U+002293: SQUARE CAP*/ + 0x2294, /* U+002294: SQUARE CUP*/ + 0x2295, /* U+002295: CIRCLED PLUS*/ + 0x2296, /* U+002296: CIRCLED MINUS*/ + 0x2297, /* U+002297: CIRCLED TIMES*/ + 0x2298, /* U+002298: CIRCLED DIVISION SLASH*/ + 0x2299, /* U+002299: CIRCLED DOT OPERATOR*/ + 0x229a, /* U+00229a: CIRCLED RING OPERATOR*/ + 0x229b, /* U+00229b: CIRCLED ASTERISK OPERATOR*/ + 0x229c, /* U+00229c: CIRCLED EQUALS*/ + 0x229d, /* U+00229d: CIRCLED DASH*/ + 0x229e, /* U+00229e: SQUARED PLUS*/ + 0x229f, /* U+00229f: SQUARED MINUS*/ + 0x22a0, /* U+0022a0: SQUARED TIMES*/ + 0x22a1, /* U+0022a1: SQUARED DOT OPERATOR*/ + 0x22a2, /* U+0022a2: RIGHT TACK*/ + 0x22a3, /* U+0022a3: LEFT TACK*/ + 0x22a4, /* U+0022a4: DOWN TACK*/ + 0x22a5, /* U+0022a5: UP TACK*/ + 0x22a6, /* U+0022a6: ASSERTION*/ + 0x22a7, /* U+0022a7: MODELS*/ + 0x22a8, /* U+0022a8: TRUE*/ + 0x22a9, /* U+0022a9: FORCES*/ + 0x22aa, /* U+0022aa: TRIPLE VERTICAL BAR RIGHT TURNSTILE*/ + 0x22ab, /* U+0022ab: DOUBLE VERTICAL BAR DOUBLE RIGHT TURNSTILE*/ + 0x22ac, /* U+0022ac: DOES NOT PROVE*/ + 0x22ad, /* U+0022ad: NOT TRUE*/ + 0x22ae, /* U+0022ae: DOES NOT FORCE*/ + 0x22af, /* U+0022af: NEGATED DOUBLE VERTICAL BAR DOUBLE RIGHT TURNSTILE*/ + 0x22b0, /* U+0022b0: PRECEDES UNDER RELATION*/ + 0x22b1, /* U+0022b1: SUCCEEDS UNDER RELATION*/ + 0x22b2, /* U+0022b2: NORMAL SUBGROUP OF*/ + 0x22b3, /* U+0022b3: CONTAINS AS NORMAL SUBGROUP*/ + 0x22b4, /* U+0022b4: NORMAL SUBGROUP OF OR EQUAL TO*/ + 0x22b5, /* U+0022b5: CONTAINS AS NORMAL SUBGROUP OR EQUAL TO*/ + 0x22b6, /* U+0022b6: ORIGINAL OF*/ + 0x22b7, /* U+0022b7: IMAGE OF*/ + 0x22b8, /* U+0022b8: MULTIMAP*/ + 0x22b9, /* U+0022b9: HERMITIAN CONJUGATE MATRIX*/ + 0x22ba, /* U+0022ba: INTERCALATE*/ + 0x22bb, /* U+0022bb: XOR*/ + 0x22bc, /* U+0022bc: NAND*/ + 0x22bd, /* U+0022bd: NOR*/ + 0x22be, /* U+0022be: RIGHT ANGLE WITH ARC*/ + 0x22bf, /* U+0022bf: RIGHT TRIANGLE*/ + 0x22c0, /* U+0022c0: N-ARY LOGICAL AND*/ + 0x22c1, /* U+0022c1: N-ARY LOGICAL OR*/ + 0x22c2, /* U+0022c2: N-ARY INTERSECTION*/ + 0x22c3, /* U+0022c3: N-ARY UNION*/ + 0x22c4, /* U+0022c4: DIAMOND OPERATOR*/ + 0x22c5, /* U+0022c5: DOT OPERATOR*/ + 0x22c6, /* U+0022c6: STAR OPERATOR*/ + 0x22c7, /* U+0022c7: DIVISION TIMES*/ + 0x22c8, /* U+0022c8: BOWTIE*/ + 0x22c9, /* U+0022c9: LEFT NORMAL FACTOR SEMIDIRECT PRODUCT*/ + 0x22ca, /* U+0022ca: RIGHT NORMAL FACTOR SEMIDIRECT PRODUCT*/ + 0x22cb, /* U+0022cb: LEFT SEMIDIRECT PRODUCT*/ + 0x22cc, /* U+0022cc: RIGHT SEMIDIRECT PRODUCT*/ + 0x22cd, /* U+0022cd: REVERSED TILDE EQUALS*/ + 0x22ce, /* U+0022ce: CURLY LOGICAL OR*/ + 0x22cf, /* U+0022cf: CURLY LOGICAL AND*/ + 0x22d0, /* U+0022d0: DOUBLE SUBSET*/ + 0x22d1, /* U+0022d1: DOUBLE SUPERSET*/ + 0x22d2, /* U+0022d2: DOUBLE INTERSECTION*/ + 0x22d3, /* U+0022d3: DOUBLE UNION*/ + 0x22d4, /* U+0022d4: PITCHFORK*/ + 0x22d5, /* U+0022d5: EQUAL AND PARALLEL TO*/ + 0x22d6, /* U+0022d6: LESS-THAN WITH DOT*/ + 0x22d7, /* U+0022d7: GREATER-THAN WITH DOT*/ + 0x22d8, /* U+0022d8: VERY MUCH LESS-THAN*/ + 0x22d9, /* U+0022d9: VERY MUCH GREATER-THAN*/ + 0x22da, /* U+0022da: LESS-THAN EQUAL TO OR GREATER-THAN*/ + 0x22db, /* U+0022db: GREATER-THAN EQUAL TO OR LESS-THAN*/ + 0x22dc, /* U+0022dc: EQUAL TO OR LESS-THAN*/ + 0x22dd, /* U+0022dd: EQUAL TO OR GREATER-THAN*/ + 0x22de, /* U+0022de: EQUAL TO OR PRECEDES*/ + 0x22df, /* U+0022df: EQUAL TO OR SUCCEEDS*/ + 0x22e0, /* U+0022e0: DOES NOT PRECEDE OR EQUAL*/ + 0x22e1, /* U+0022e1: DOES NOT SUCCEED OR EQUAL*/ + 0x22e2, /* U+0022e2: NOT SQUARE IMAGE OF OR EQUAL TO*/ + 0x22e3, /* U+0022e3: NOT SQUARE ORIGINAL OF OR EQUAL TO*/ + 0x22e4, /* U+0022e4: SQUARE IMAGE OF OR NOT EQUAL TO*/ + 0x22e5, /* U+0022e5: SQUARE ORIGINAL OF OR NOT EQUAL TO*/ + 0x22e6, /* U+0022e6: LESS-THAN BUT NOT EQUIVALENT TO*/ + 0x22e7, /* U+0022e7: GREATER-THAN BUT NOT EQUIVALENT TO*/ + 0x22e8, /* U+0022e8: PRECEDES BUT NOT EQUIVALENT TO*/ + 0x22e9, /* U+0022e9: SUCCEEDS BUT NOT EQUIVALENT TO*/ + 0x22ea, /* U+0022ea: NOT NORMAL SUBGROUP OF*/ + 0x22eb, /* U+0022eb: DOES NOT CONTAIN AS NORMAL SUBGROUP*/ + 0x22ec, /* U+0022ec: NOT NORMAL SUBGROUP OF OR EQUAL TO*/ + 0x22ed, /* U+0022ed: DOES NOT CONTAIN AS NORMAL SUBGROUP OR EQUAL*/ + 0x22ee, /* U+0022ee: VERTICAL ELLIPSIS*/ + 0x22ef, /* U+0022ef: MIDLINE HORIZONTAL ELLIPSIS*/ + 0x22f0, /* U+0022f0: UP RIGHT DIAGONAL ELLIPSIS*/ + 0x22f1, /* U+0022f1: DOWN RIGHT DIAGONAL ELLIPSIS*/ + 0x22f2, /* U+0022f2: ELEMENT OF WITH LONG HORIZONTAL STROKE*/ + 0x22f3, /* U+0022f3: ELEMENT OF WITH VERTICAL BAR AT END OF HORIZONTAL STROKE*/ + 0x22f4, /* U+0022f4: SMALL ELEMENT OF WITH VERTICAL BAR AT END OF HORIZONTAL STROKE*/ + 0x22f5, /* U+0022f5: ELEMENT OF WITH DOT ABOVE*/ + 0x22f6, /* U+0022f6: ELEMENT OF WITH OVERBAR*/ + 0x22f7, /* U+0022f7: SMALL ELEMENT OF WITH OVERBAR*/ + 0x22f8, /* U+0022f8: ELEMENT OF WITH UNDERBAR*/ + 0x22f9, /* U+0022f9: ELEMENT OF WITH TWO HORIZONTAL STROKES*/ + 0x22fa, /* U+0022fa: CONTAINS WITH LONG HORIZONTAL STROKE*/ + 0x22fb, /* U+0022fb: CONTAINS WITH VERTICAL BAR AT END OF HORIZONTAL STROKE*/ + 0x22fc, /* U+0022fc: SMALL CONTAINS WITH VERTICAL BAR AT END OF HORIZONTAL STROKE*/ + 0x22fd, /* U+0022fd: CONTAINS WITH OVERBAR*/ + 0x22fe, /* U+0022fe: SMALL CONTAINS WITH OVERBAR*/ + 0x22ff, /* U+0022ff: Z NOTATION BAG MEMBERSHIP*/ + 0x2300, /* U+002300: DIAMETER SIGN*/ + 0x2301, /* U+002301: ELECTRIC ARROW*/ + 0x2302, /* U+002302: HOUSE*/ + 0x2303, /* U+002303: UP ARROWHEAD*/ + 0x2304, /* U+002304: DOWN ARROWHEAD*/ + 0x2305, /* U+002305: PROJECTIVE*/ + 0x2306, /* U+002306: PERSPECTIVE*/ + 0x2307, /* U+002307: WAVY LINE*/ + 0x2308, /* U+002308: LEFT CEILING*/ + 0x2309, /* U+002309: RIGHT CEILING*/ + 0x230a, /* U+00230a: LEFT FLOOR*/ + 0x230b, /* U+00230b: RIGHT FLOOR*/ + 0x230c, /* U+00230c: BOTTOM RIGHT CROP*/ + 0x230d, /* U+00230d: BOTTOM LEFT CROP*/ + 0x230e, /* U+00230e: TOP RIGHT CROP*/ + 0x230f, /* U+00230f: TOP LEFT CROP*/ + 0x2310, /* U+002310: REVERSED NOT SIGN*/ + 0x2311, /* U+002311: SQUARE LOZENGE*/ + 0x2312, /* U+002312: ARC*/ + 0x2313, /* U+002313: SEGMENT*/ + 0x2314, /* U+002314: SECTOR*/ + 0x2315, /* U+002315: TELEPHONE RECORDER*/ + 0x2316, /* U+002316: POSITION INDICATOR*/ + 0x2317, /* U+002317: VIEWDATA SQUARE*/ + 0x2318, /* U+002318: PLACE OF INTEREST SIGN*/ + 0x2319, /* U+002319: TURNED NOT SIGN*/ + 0x231a, /* U+00231a: WATCH*/ + 0x231b, /* U+00231b: HOURGLASS*/ + 0x231c, /* U+00231c: TOP LEFT CORNER*/ + 0x231d, /* U+00231d: TOP RIGHT CORNER*/ + 0x231e, /* U+00231e: BOTTOM LEFT CORNER*/ + 0x231f, /* U+00231f: BOTTOM RIGHT CORNER*/ + 0x2320, /* U+002320: TOP HALF INTEGRAL*/ + 0x2321, /* U+002321: BOTTOM HALF INTEGRAL*/ + 0x2322, /* U+002322: FROWN*/ + 0x2323, /* U+002323: SMILE*/ + 0x2324, /* U+002324: UP ARROWHEAD BETWEEN TWO HORIZONTAL BARS*/ + 0x2325, /* U+002325: OPTION KEY*/ + 0x2326, /* U+002326: ERASE TO THE RIGHT*/ + 0x2327, /* U+002327: X IN A RECTANGLE BOX*/ + 0x2328, /* U+002328: KEYBOARD*/ + 0x2329, /* U+002329: LEFT-POINTING ANGLE BRACKET*/ + 0x232a, /* U+00232a: RIGHT-POINTING ANGLE BRACKET*/ + 0x232b, /* U+00232b: ERASE TO THE LEFT*/ + 0x232c, /* U+00232c: BENZENE RING*/ + 0x232d, /* U+00232d: CYLINDRICITY*/ + 0x232e, /* U+00232e: ALL AROUND-PROFILE*/ + 0x232f, /* U+00232f: SYMMETRY*/ + 0x2330, /* U+002330: TOTAL RUNOUT*/ + 0x2331, /* U+002331: DIMENSION ORIGIN*/ + 0x2332, /* U+002332: CONICAL TAPER*/ + 0x2333, /* U+002333: SLOPE*/ + 0x2334, /* U+002334: COUNTERBORE*/ + 0x2335, /* U+002335: COUNTERSINK*/ + 0x2336, /* U+002336: APL FUNCTIONAL SYMBOL I-BEAM*/ + 0x2337, /* U+002337: APL FUNCTIONAL SYMBOL SQUISH QUAD*/ + 0x2338, /* U+002338: APL FUNCTIONAL SYMBOL QUAD EQUAL*/ + 0x2339, /* U+002339: APL FUNCTIONAL SYMBOL QUAD DIVIDE*/ + 0x233a, /* U+00233a: APL FUNCTIONAL SYMBOL QUAD DIAMOND*/ + 0x233b, /* U+00233b: APL FUNCTIONAL SYMBOL QUAD JOT*/ + 0x233c, /* U+00233c: APL FUNCTIONAL SYMBOL QUAD CIRCLE*/ + 0x233d, /* U+00233d: APL FUNCTIONAL SYMBOL CIRCLE STILE*/ + 0x233e, /* U+00233e: APL FUNCTIONAL SYMBOL CIRCLE JOT*/ + 0x233f, /* U+00233f: APL FUNCTIONAL SYMBOL SLASH BAR*/ + 0x2340, /* U+002340: APL FUNCTIONAL SYMBOL BACKSLASH BAR*/ + 0x2341, /* U+002341: APL FUNCTIONAL SYMBOL QUAD SLASH*/ + 0x2342, /* U+002342: APL FUNCTIONAL SYMBOL QUAD BACKSLASH*/ + 0x2343, /* U+002343: APL FUNCTIONAL SYMBOL QUAD LESS-THAN*/ + 0x2344, /* U+002344: APL FUNCTIONAL SYMBOL QUAD GREATER-THAN*/ + 0x2345, /* U+002345: APL FUNCTIONAL SYMBOL LEFTWARDS VANE*/ + 0x2346, /* U+002346: APL FUNCTIONAL SYMBOL RIGHTWARDS VANE*/ + 0x2347, /* U+002347: APL FUNCTIONAL SYMBOL QUAD LEFTWARDS ARROW*/ + 0x2348, /* U+002348: APL FUNCTIONAL SYMBOL QUAD RIGHTWARDS ARROW*/ + 0x2349, /* U+002349: APL FUNCTIONAL SYMBOL CIRCLE BACKSLASH*/ + 0x234a, /* U+00234a: APL FUNCTIONAL SYMBOL DOWN TACK UNDERBAR*/ + 0x234b, /* U+00234b: APL FUNCTIONAL SYMBOL DELTA STILE*/ + 0x234c, /* U+00234c: APL FUNCTIONAL SYMBOL QUAD DOWN CARET*/ + 0x234d, /* U+00234d: APL FUNCTIONAL SYMBOL QUAD DELTA*/ + 0x234e, /* U+00234e: APL FUNCTIONAL SYMBOL DOWN TACK JOT*/ + 0x234f, /* U+00234f: APL FUNCTIONAL SYMBOL UPWARDS VANE*/ + 0x2350, /* U+002350: APL FUNCTIONAL SYMBOL QUAD UPWARDS ARROW*/ + 0x2351, /* U+002351: APL FUNCTIONAL SYMBOL UP TACK OVERBAR*/ + 0x2352, /* U+002352: APL FUNCTIONAL SYMBOL DEL STILE*/ + 0x2353, /* U+002353: APL FUNCTIONAL SYMBOL QUAD UP CARET*/ + 0x2354, /* U+002354: APL FUNCTIONAL SYMBOL QUAD DEL*/ + 0x2355, /* U+002355: APL FUNCTIONAL SYMBOL UP TACK JOT*/ + 0x2356, /* U+002356: APL FUNCTIONAL SYMBOL DOWNWARDS VANE*/ + 0x2357, /* U+002357: APL FUNCTIONAL SYMBOL QUAD DOWNWARDS ARROW*/ + 0x2358, /* U+002358: APL FUNCTIONAL SYMBOL QUOTE UNDERBAR*/ + 0x2359, /* U+002359: APL FUNCTIONAL SYMBOL DELTA UNDERBAR*/ + 0x235a, /* U+00235a: APL FUNCTIONAL SYMBOL DIAMOND UNDERBAR*/ + 0x235b, /* U+00235b: APL FUNCTIONAL SYMBOL JOT UNDERBAR*/ + 0x235c, /* U+00235c: APL FUNCTIONAL SYMBOL CIRCLE UNDERBAR*/ + 0x235d, /* U+00235d: APL FUNCTIONAL SYMBOL UP SHOE JOT*/ + 0x235e, /* U+00235e: APL FUNCTIONAL SYMBOL QUOTE QUAD*/ + 0x235f, /* U+00235f: APL FUNCTIONAL SYMBOL CIRCLE STAR*/ + 0x2360, /* U+002360: APL FUNCTIONAL SYMBOL QUAD COLON*/ + 0x2361, /* U+002361: APL FUNCTIONAL SYMBOL UP TACK DIAERESIS*/ + 0x2362, /* U+002362: APL FUNCTIONAL SYMBOL DEL DIAERESIS*/ + 0x2363, /* U+002363: APL FUNCTIONAL SYMBOL STAR DIAERESIS*/ + 0x2364, /* U+002364: APL FUNCTIONAL SYMBOL JOT DIAERESIS*/ + 0x2365, /* U+002365: APL FUNCTIONAL SYMBOL CIRCLE DIAERESIS*/ + 0x2366, /* U+002366: APL FUNCTIONAL SYMBOL DOWN SHOE STILE*/ + 0x2367, /* U+002367: APL FUNCTIONAL SYMBOL LEFT SHOE STILE*/ + 0x2368, /* U+002368: APL FUNCTIONAL SYMBOL TILDE DIAERESIS*/ + 0x2369, /* U+002369: APL FUNCTIONAL SYMBOL GREATER-THAN DIAERESIS*/ + 0x236a, /* U+00236a: APL FUNCTIONAL SYMBOL COMMA BAR*/ + 0x236b, /* U+00236b: APL FUNCTIONAL SYMBOL DEL TILDE*/ + 0x236c, /* U+00236c: APL FUNCTIONAL SYMBOL ZILDE*/ + 0x236d, /* U+00236d: APL FUNCTIONAL SYMBOL STILE TILDE*/ + 0x236e, /* U+00236e: APL FUNCTIONAL SYMBOL SEMICOLON UNDERBAR*/ + 0x236f, /* U+00236f: APL FUNCTIONAL SYMBOL QUAD NOT EQUAL*/ + 0x2370, /* U+002370: APL FUNCTIONAL SYMBOL QUAD QUESTION*/ + 0x2371, /* U+002371: APL FUNCTIONAL SYMBOL DOWN CARET TILDE*/ + 0x2372, /* U+002372: APL FUNCTIONAL SYMBOL UP CARET TILDE*/ + 0x2373, /* U+002373: APL FUNCTIONAL SYMBOL IOTA*/ + 0x2374, /* U+002374: APL FUNCTIONAL SYMBOL RHO*/ + 0x2375, /* U+002375: APL FUNCTIONAL SYMBOL OMEGA*/ + 0x2376, /* U+002376: APL FUNCTIONAL SYMBOL ALPHA UNDERBAR*/ + 0x2377, /* U+002377: APL FUNCTIONAL SYMBOL EPSILON UNDERBAR*/ + 0x2378, /* U+002378: APL FUNCTIONAL SYMBOL IOTA UNDERBAR*/ + 0x2379, /* U+002379: APL FUNCTIONAL SYMBOL OMEGA UNDERBAR*/ + 0x237a, /* U+00237a: APL FUNCTIONAL SYMBOL ALPHA*/ + 0x237b, /* U+00237b: NOT CHECK MARK*/ + 0x237c, /* U+00237c: RIGHT ANGLE WITH DOWNWARDS ZIGZAG ARROW*/ + 0x237d, /* U+00237d: SHOULDERED OPEN BOX*/ + 0x237e, /* U+00237e: BELL SYMBOL*/ + 0x237f, /* U+00237f: VERTICAL LINE WITH MIDDLE DOT*/ + 0x2380, /* U+002380: INSERTION SYMBOL*/ + 0x2381, /* U+002381: CONTINUOUS UNDERLINE SYMBOL*/ + 0x2382, /* U+002382: DISCONTINUOUS UNDERLINE SYMBOL*/ + 0x2383, /* U+002383: EMPHASIS SYMBOL*/ + 0x2384, /* U+002384: COMPOSITION SYMBOL*/ + 0x2385, /* U+002385: WHITE SQUARE WITH CENTRE VERTICAL LINE*/ + 0x2386, /* U+002386: ENTER SYMBOL*/ + 0x2387, /* U+002387: ALTERNATIVE KEY SYMBOL*/ + 0x2388, /* U+002388: HELM SYMBOL*/ + 0x2389, /* U+002389: CIRCLED HORIZONTAL BAR WITH NOTCH*/ + 0x238a, /* U+00238a: CIRCLED TRIANGLE DOWN*/ + 0x238b, /* U+00238b: BROKEN CIRCLE WITH NORTHWEST ARROW*/ + 0x238c, /* U+00238c: UNDO SYMBOL*/ + 0x238d, /* U+00238d: MONOSTABLE SYMBOL*/ + 0x238e, /* U+00238e: HYSTERESIS SYMBOL*/ + 0x238f, /* U+00238f: OPEN-CIRCUIT-OUTPUT H-TYPE SYMBOL*/ + 0x2390, /* U+002390: OPEN-CIRCUIT-OUTPUT L-TYPE SYMBOL*/ + 0x2391, /* U+002391: PASSIVE-PULL-DOWN-OUTPUT SYMBOL*/ + 0x2392, /* U+002392: PASSIVE-PULL-UP-OUTPUT SYMBOL*/ + 0x2393, /* U+002393: DIRECT CURRENT SYMBOL FORM TWO*/ + 0x2394, /* U+002394: SOFTWARE-FUNCTION SYMBOL*/ + 0x2395, /* U+002395: APL FUNCTIONAL SYMBOL QUAD*/ + 0x2396, /* U+002396: DECIMAL SEPARATOR KEY SYMBOL*/ + 0x2397, /* U+002397: PREVIOUS PAGE*/ + 0x2398, /* U+002398: NEXT PAGE*/ + 0x2399, /* U+002399: PRINT SCREEN SYMBOL*/ + 0x239a, /* U+00239a: CLEAR SCREEN SYMBOL*/ + 0x239b, /* U+00239b: LEFT PARENTHESIS UPPER HOOK*/ + 0x239c, /* U+00239c: LEFT PARENTHESIS EXTENSION*/ + 0x239d, /* U+00239d: LEFT PARENTHESIS LOWER HOOK*/ + 0x239e, /* U+00239e: RIGHT PARENTHESIS UPPER HOOK*/ + 0x239f, /* U+00239f: RIGHT PARENTHESIS EXTENSION*/ + 0x23a0, /* U+0023a0: RIGHT PARENTHESIS LOWER HOOK*/ + 0x23a1, /* U+0023a1: LEFT SQUARE BRACKET UPPER CORNER*/ + 0x23a2, /* U+0023a2: LEFT SQUARE BRACKET EXTENSION*/ + 0x23a3, /* U+0023a3: LEFT SQUARE BRACKET LOWER CORNER*/ + 0x23a4, /* U+0023a4: RIGHT SQUARE BRACKET UPPER CORNER*/ + 0x23a5, /* U+0023a5: RIGHT SQUARE BRACKET EXTENSION*/ + 0x23a6, /* U+0023a6: RIGHT SQUARE BRACKET LOWER CORNER*/ + 0x23a7, /* U+0023a7: LEFT CURLY BRACKET UPPER HOOK*/ + 0x23a8, /* U+0023a8: LEFT CURLY BRACKET MIDDLE PIECE*/ + 0x23a9, /* U+0023a9: LEFT CURLY BRACKET LOWER HOOK*/ + 0x23aa, /* U+0023aa: CURLY BRACKET EXTENSION*/ + 0x23ab, /* U+0023ab: RIGHT CURLY BRACKET UPPER HOOK*/ + 0x23ac, /* U+0023ac: RIGHT CURLY BRACKET MIDDLE PIECE*/ + 0x23ad, /* U+0023ad: RIGHT CURLY BRACKET LOWER HOOK*/ + 0x23ae, /* U+0023ae: INTEGRAL EXTENSION*/ + 0x23af, /* U+0023af: HORIZONTAL LINE EXTENSION*/ + 0x23b0, /* U+0023b0: UPPER LEFT OR LOWER RIGHT CURLY BRACKET SECTION*/ + 0x23b1, /* U+0023b1: UPPER RIGHT OR LOWER LEFT CURLY BRACKET SECTION*/ + 0x23b2, /* U+0023b2: SUMMATION TOP*/ + 0x23b3, /* U+0023b3: SUMMATION BOTTOM*/ + 0x23b4, /* U+0023b4: TOP SQUARE BRACKET*/ + 0x23b5, /* U+0023b5: BOTTOM SQUARE BRACKET*/ + 0x23b6, /* U+0023b6: BOTTOM SQUARE BRACKET OVER TOP SQUARE BRACKET*/ + 0x23b7, /* U+0023b7: RADICAL SYMBOL BOTTOM*/ + 0x23b8, /* U+0023b8: LEFT VERTICAL BOX LINE*/ + 0x23b9, /* U+0023b9: RIGHT VERTICAL BOX LINE*/ + 0x23ba, /* U+0023ba: HORIZONTAL SCAN LINE-1*/ + 0x23bb, /* U+0023bb: HORIZONTAL SCAN LINE-3*/ + 0x23bc, /* U+0023bc: HORIZONTAL SCAN LINE-7*/ + 0x23bd, /* U+0023bd: HORIZONTAL SCAN LINE-9*/ + 0x23be, /* U+0023be: DENTISTRY SYMBOL LIGHT VERTICAL AND TOP RIGHT*/ + 0x23bf, /* U+0023bf: DENTISTRY SYMBOL LIGHT VERTICAL AND BOTTOM RIGHT*/ + 0x23c0, /* U+0023c0: DENTISTRY SYMBOL LIGHT VERTICAL WITH CIRCLE*/ + 0x23c1, /* U+0023c1: DENTISTRY SYMBOL LIGHT DOWN AND HORIZONTAL WITH CIRCLE*/ + 0x23c2, /* U+0023c2: DENTISTRY SYMBOL LIGHT UP AND HORIZONTAL WITH CIRCLE*/ + 0x23c3, /* U+0023c3: DENTISTRY SYMBOL LIGHT VERTICAL WITH TRIANGLE*/ + 0x23c4, /* U+0023c4: DENTISTRY SYMBOL LIGHT DOWN AND HORIZONTAL WITH TRIANGLE*/ + 0x23c5, /* U+0023c5: DENTISTRY SYMBOL LIGHT UP AND HORIZONTAL WITH TRIANGLE*/ + 0x23c6, /* U+0023c6: DENTISTRY SYMBOL LIGHT VERTICAL AND WAVE*/ + 0x23c7, /* U+0023c7: DENTISTRY SYMBOL LIGHT DOWN AND HORIZONTAL WITH WAVE*/ + 0x23c8, /* U+0023c8: DENTISTRY SYMBOL LIGHT UP AND HORIZONTAL WITH WAVE*/ + 0x23c9, /* U+0023c9: DENTISTRY SYMBOL LIGHT DOWN AND HORIZONTAL*/ + 0x23ca, /* U+0023ca: DENTISTRY SYMBOL LIGHT UP AND HORIZONTAL*/ + 0x23cb, /* U+0023cb: DENTISTRY SYMBOL LIGHT VERTICAL AND TOP LEFT*/ + 0x23cc, /* U+0023cc: DENTISTRY SYMBOL LIGHT VERTICAL AND BOTTOM LEFT*/ + 0x23cd, /* U+0023cd: SQUARE FOOT*/ + 0x23ce, /* U+0023ce: RETURN SYMBOL*/ + 0x23cf, /* U+0023cf: EJECT SYMBOL*/ + 0x23d0, /* U+0023d0: VERTICAL LINE EXTENSION*/ + 0x23d1, /* U+0023d1: METRICAL BREVE*/ + 0x23d2, /* U+0023d2: METRICAL LONG OVER SHORT*/ + 0x23d3, /* U+0023d3: METRICAL SHORT OVER LONG*/ + 0x23d4, /* U+0023d4: METRICAL LONG OVER TWO SHORTS*/ + 0x23d5, /* U+0023d5: METRICAL TWO SHORTS OVER LONG*/ + 0x23d6, /* U+0023d6: METRICAL TWO SHORTS JOINED*/ + 0x23d7, /* U+0023d7: METRICAL TRISEME*/ + 0x23d8, /* U+0023d8: METRICAL TETRASEME*/ + 0x23d9, /* U+0023d9: METRICAL PENTASEME*/ + 0x23da, /* U+0023da: EARTH GROUND*/ + 0x23db, /* U+0023db: FUSE*/ + 0x23dc, /* U+0023dc: TOP PARENTHESIS*/ + 0x23dd, /* U+0023dd: BOTTOM PARENTHESIS*/ + 0x23de, /* U+0023de: TOP CURLY BRACKET*/ + 0x23df, /* U+0023df: BOTTOM CURLY BRACKET*/ + 0x23e0, /* U+0023e0: TOP TORTOISE SHELL BRACKET*/ + 0x23e1, /* U+0023e1: BOTTOM TORTOISE SHELL BRACKET*/ + 0x23e2, /* U+0023e2: WHITE TRAPEZIUM*/ + 0x23e3, /* U+0023e3: BENZENE RING WITH CIRCLE*/ + 0x23e4, /* U+0023e4: STRAIGHTNESS*/ + 0x23e5, /* U+0023e5: FLATNESS*/ + 0x23e6, /* U+0023e6: AC CURRENT*/ + 0x23e7, /* U+0023e7: ELECTRICAL INTERSECTION*/ + 0x23e8, /* U+0023e8: DECIMAL EXPONENT SYMBOL*/ + 0x23e9, /* U+0023e9: BLACK RIGHT-POINTING DOUBLE TRIANGLE*/ + 0x23ea, /* U+0023ea: BLACK LEFT-POINTING DOUBLE TRIANGLE*/ + 0x23eb, /* U+0023eb: BLACK UP-POINTING DOUBLE TRIANGLE*/ + 0x23ec, /* U+0023ec: BLACK DOWN-POINTING DOUBLE TRIANGLE*/ + 0x23ed, /* U+0023ed: BLACK RIGHT-POINTING DOUBLE TRIANGLE WITH VERTICAL BAR*/ + 0x23ee, /* U+0023ee: BLACK LEFT-POINTING DOUBLE TRIANGLE WITH VERTICAL BAR*/ + 0x23ef, /* U+0023ef: BLACK RIGHT-POINTING TRIANGLE WITH DOUBLE VERTICAL BAR*/ + 0x23f0, /* U+0023f0: ALARM CLOCK*/ + 0x23f1, /* U+0023f1: STOPWATCH*/ + 0x23f2, /* U+0023f2: TIMER CLOCK*/ + 0x23f3, /* U+0023f3: HOURGLASS WITH FLOWING SAND*/ + 0x23f4, /* U+0023f4: */ + 0x23f5, /* U+0023f5: */ + 0x23f6, /* U+0023f6: */ + 0x23f7, /* U+0023f7: */ + 0x23f8, /* U+0023f8: */ + 0x23f9, /* U+0023f9: */ + 0x23fa, /* U+0023fa: */ + 0x23fb, /* U+0023fb: */ + 0x23fc, /* U+0023fc: */ + 0x23fd, /* U+0023fd: */ + 0x23fe, /* U+0023fe: */ + 0x23ff, /* U+0023ff: */ + 0x2400, /* U+002400: SYMBOL FOR NULL*/ + 0x2401, /* U+002401: SYMBOL FOR START OF HEADING*/ + 0x2402, /* U+002402: SYMBOL FOR START OF TEXT*/ + 0x2403, /* U+002403: SYMBOL FOR END OF TEXT*/ + 0x2404, /* U+002404: SYMBOL FOR END OF TRANSMISSION*/ + 0x2405, /* U+002405: SYMBOL FOR ENQUIRY*/ + 0x2406, /* U+002406: SYMBOL FOR ACKNOWLEDGE*/ + 0x2407, /* U+002407: SYMBOL FOR BELL*/ + 0x2408, /* U+002408: SYMBOL FOR BACKSPACE*/ + 0x2409, /* U+002409: SYMBOL FOR HORIZONTAL TABULATION*/ + 0x240a, /* U+00240a: SYMBOL FOR LINE FEED*/ + 0x240b, /* U+00240b: SYMBOL FOR VERTICAL TABULATION*/ + 0x240c, /* U+00240c: SYMBOL FOR FORM FEED*/ + 0x240d, /* U+00240d: SYMBOL FOR CARRIAGE RETURN*/ + 0x240e, /* U+00240e: SYMBOL FOR SHIFT OUT*/ + 0x240f, /* U+00240f: SYMBOL FOR SHIFT IN*/ + 0x2410, /* U+002410: SYMBOL FOR DATA LINK ESCAPE*/ + 0x2411, /* U+002411: SYMBOL FOR DEVICE CONTROL ONE*/ + 0x2412, /* U+002412: SYMBOL FOR DEVICE CONTROL TWO*/ + 0x2413, /* U+002413: SYMBOL FOR DEVICE CONTROL THREE*/ + 0x2414, /* U+002414: SYMBOL FOR DEVICE CONTROL FOUR*/ + 0x2415, /* U+002415: SYMBOL FOR NEGATIVE ACKNOWLEDGE*/ + 0x2416, /* U+002416: SYMBOL FOR SYNCHRONOUS IDLE*/ + 0x2417, /* U+002417: SYMBOL FOR END OF TRANSMISSION BLOCK*/ + 0x2418, /* U+002418: SYMBOL FOR CANCEL*/ + 0x2419, /* U+002419: SYMBOL FOR END OF MEDIUM*/ + 0x241a, /* U+00241a: SYMBOL FOR SUBSTITUTE*/ + 0x241b, /* U+00241b: SYMBOL FOR ESCAPE*/ + 0x241c, /* U+00241c: SYMBOL FOR FILE SEPARATOR*/ + 0x241d, /* U+00241d: SYMBOL FOR GROUP SEPARATOR*/ + 0x241e, /* U+00241e: SYMBOL FOR RECORD SEPARATOR*/ + 0x241f, /* U+00241f: SYMBOL FOR UNIT SEPARATOR*/ + 0x2420, /* U+002420: SYMBOL FOR SPACE*/ + 0x2421, /* U+002421: SYMBOL FOR DELETE*/ + 0x2422, /* U+002422: BLANK SYMBOL*/ + 0x2423, /* U+002423: OPEN BOX*/ + 0x2424, /* U+002424: SYMBOL FOR NEWLINE*/ + 0x2425, /* U+002425: SYMBOL FOR DELETE FORM TWO*/ + 0x2426, /* U+002426: SYMBOL FOR SUBSTITUTE FORM TWO*/ + 0x2427, /* U+002427: */ + 0x2428, /* U+002428: */ + 0x2429, /* U+002429: */ + 0x242a, /* U+00242a: */ + 0x242b, /* U+00242b: */ + 0x242c, /* U+00242c: */ + 0x242d, /* U+00242d: */ + 0x242e, /* U+00242e: */ + 0x242f, /* U+00242f: */ + 0x2430, /* U+002430: */ + 0x2431, /* U+002431: */ + 0x2432, /* U+002432: */ + 0x2433, /* U+002433: */ + 0x2434, /* U+002434: */ + 0x2435, /* U+002435: */ + 0x2436, /* U+002436: */ + 0x2437, /* U+002437: */ + 0x2438, /* U+002438: */ + 0x2439, /* U+002439: */ + 0x243a, /* U+00243a: */ + 0x243b, /* U+00243b: */ + 0x243c, /* U+00243c: */ + 0x243d, /* U+00243d: */ + 0x243e, /* U+00243e: */ + 0x243f, /* U+00243f: */ + 0x2440, /* U+002440: OCR HOOK*/ + 0x2441, /* U+002441: OCR CHAIR*/ + 0x2442, /* U+002442: OCR FORK*/ + 0x2443, /* U+002443: OCR INVERTED FORK*/ + 0x2444, /* U+002444: OCR BELT BUCKLE*/ + 0x2445, /* U+002445: OCR BOW TIE*/ + 0x2446, /* U+002446: OCR BRANCH BANK IDENTIFICATION*/ + 0x2447, /* U+002447: OCR AMOUNT OF CHECK*/ + 0x2448, /* U+002448: OCR DASH*/ + 0x2449, /* U+002449: OCR CUSTOMER ACCOUNT NUMBER*/ + 0x244a, /* U+00244a: OCR DOUBLE BACKSLASH*/ + 0x244b, /* U+00244b: */ + 0x244c, /* U+00244c: */ + 0x244d, /* U+00244d: */ + 0x244e, /* U+00244e: */ + 0x244f, /* U+00244f: */ + 0x2450, /* U+002450: */ + 0x2451, /* U+002451: */ + 0x2452, /* U+002452: */ + 0x2453, /* U+002453: */ + 0x2454, /* U+002454: */ + 0x2455, /* U+002455: */ + 0x2456, /* U+002456: */ + 0x2457, /* U+002457: */ + 0x2458, /* U+002458: */ + 0x2459, /* U+002459: */ + 0x245a, /* U+00245a: */ + 0x245b, /* U+00245b: */ + 0x245c, /* U+00245c: */ + 0x245d, /* U+00245d: */ + 0x245e, /* U+00245e: */ + 0x245f, /* U+00245f: */ + 0x2460, /* U+002460: CIRCLED DIGIT ONE*/ + 0x2461, /* U+002461: CIRCLED DIGIT TWO*/ + 0x2462, /* U+002462: CIRCLED DIGIT THREE*/ + 0x2463, /* U+002463: CIRCLED DIGIT FOUR*/ + 0x2464, /* U+002464: CIRCLED DIGIT FIVE*/ + 0x2465, /* U+002465: CIRCLED DIGIT SIX*/ + 0x2466, /* U+002466: CIRCLED DIGIT SEVEN*/ + 0x2467, /* U+002467: CIRCLED DIGIT EIGHT*/ + 0x2468, /* U+002468: CIRCLED DIGIT NINE*/ + 0x2469, /* U+002469: CIRCLED NUMBER TEN*/ + 0x246a, /* U+00246a: CIRCLED NUMBER ELEVEN*/ + 0x246b, /* U+00246b: CIRCLED NUMBER TWELVE*/ + 0x246c, /* U+00246c: CIRCLED NUMBER THIRTEEN*/ + 0x246d, /* U+00246d: CIRCLED NUMBER FOURTEEN*/ + 0x246e, /* U+00246e: CIRCLED NUMBER FIFTEEN*/ + 0x246f, /* U+00246f: CIRCLED NUMBER SIXTEEN*/ + 0x2470, /* U+002470: CIRCLED NUMBER SEVENTEEN*/ + 0x2471, /* U+002471: CIRCLED NUMBER EIGHTEEN*/ + 0x2472, /* U+002472: CIRCLED NUMBER NINETEEN*/ + 0x2473, /* U+002473: CIRCLED NUMBER TWENTY*/ + 0x2474, /* U+002474: PARENTHESIZED DIGIT ONE*/ + 0x2475, /* U+002475: PARENTHESIZED DIGIT TWO*/ + 0x2476, /* U+002476: PARENTHESIZED DIGIT THREE*/ + 0x2477, /* U+002477: PARENTHESIZED DIGIT FOUR*/ + 0x2478, /* U+002478: PARENTHESIZED DIGIT FIVE*/ + 0x2479, /* U+002479: PARENTHESIZED DIGIT SIX*/ + 0x247a, /* U+00247a: PARENTHESIZED DIGIT SEVEN*/ + 0x247b, /* U+00247b: PARENTHESIZED DIGIT EIGHT*/ + 0x247c, /* U+00247c: PARENTHESIZED DIGIT NINE*/ + 0x247d, /* U+00247d: PARENTHESIZED NUMBER TEN*/ + 0x247e, /* U+00247e: PARENTHESIZED NUMBER ELEVEN*/ + 0x247f, /* U+00247f: PARENTHESIZED NUMBER TWELVE*/ + 0x2480, /* U+002480: PARENTHESIZED NUMBER THIRTEEN*/ + 0x2481, /* U+002481: PARENTHESIZED NUMBER FOURTEEN*/ + 0x2482, /* U+002482: PARENTHESIZED NUMBER FIFTEEN*/ + 0x2483, /* U+002483: PARENTHESIZED NUMBER SIXTEEN*/ + 0x2484, /* U+002484: PARENTHESIZED NUMBER SEVENTEEN*/ + 0x2485, /* U+002485: PARENTHESIZED NUMBER EIGHTEEN*/ + 0x2486, /* U+002486: PARENTHESIZED NUMBER NINETEEN*/ + 0x2487, /* U+002487: PARENTHESIZED NUMBER TWENTY*/ + 0x2488, /* U+002488: DIGIT ONE FULL STOP*/ + 0x2489, /* U+002489: DIGIT TWO FULL STOP*/ + 0x248a, /* U+00248a: DIGIT THREE FULL STOP*/ + 0x248b, /* U+00248b: DIGIT FOUR FULL STOP*/ + 0x248c, /* U+00248c: DIGIT FIVE FULL STOP*/ + 0x248d, /* U+00248d: DIGIT SIX FULL STOP*/ + 0x248e, /* U+00248e: DIGIT SEVEN FULL STOP*/ + 0x248f, /* U+00248f: DIGIT EIGHT FULL STOP*/ + 0x2490, /* U+002490: DIGIT NINE FULL STOP*/ + 0x2491, /* U+002491: NUMBER TEN FULL STOP*/ + 0x2492, /* U+002492: NUMBER ELEVEN FULL STOP*/ + 0x2493, /* U+002493: NUMBER TWELVE FULL STOP*/ + 0x2494, /* U+002494: NUMBER THIRTEEN FULL STOP*/ + 0x2495, /* U+002495: NUMBER FOURTEEN FULL STOP*/ + 0x2496, /* U+002496: NUMBER FIFTEEN FULL STOP*/ + 0x2497, /* U+002497: NUMBER SIXTEEN FULL STOP*/ + 0x2498, /* U+002498: NUMBER SEVENTEEN FULL STOP*/ + 0x2499, /* U+002499: NUMBER EIGHTEEN FULL STOP*/ + 0x249a, /* U+00249a: NUMBER NINETEEN FULL STOP*/ + 0x249b, /* U+00249b: NUMBER TWENTY FULL STOP*/ + 0x249c, /* U+00249c: PARENTHESIZED LATIN SMALL LETTER A*/ + 0x249d, /* U+00249d: PARENTHESIZED LATIN SMALL LETTER B*/ + 0x249e, /* U+00249e: PARENTHESIZED LATIN SMALL LETTER C*/ + 0x249f, /* U+00249f: PARENTHESIZED LATIN SMALL LETTER D*/ + 0x24a0, /* U+0024a0: PARENTHESIZED LATIN SMALL LETTER E*/ + 0x24a1, /* U+0024a1: PARENTHESIZED LATIN SMALL LETTER F*/ + 0x24a2, /* U+0024a2: PARENTHESIZED LATIN SMALL LETTER G*/ + 0x24a3, /* U+0024a3: PARENTHESIZED LATIN SMALL LETTER H*/ + 0x24a4, /* U+0024a4: PARENTHESIZED LATIN SMALL LETTER I*/ + 0x24a5, /* U+0024a5: PARENTHESIZED LATIN SMALL LETTER J*/ + 0x24a6, /* U+0024a6: PARENTHESIZED LATIN SMALL LETTER K*/ + 0x24a7, /* U+0024a7: PARENTHESIZED LATIN SMALL LETTER L*/ + 0x24a8, /* U+0024a8: PARENTHESIZED LATIN SMALL LETTER M*/ + 0x24a9, /* U+0024a9: PARENTHESIZED LATIN SMALL LETTER N*/ + 0x24aa, /* U+0024aa: PARENTHESIZED LATIN SMALL LETTER O*/ + 0x24ab, /* U+0024ab: PARENTHESIZED LATIN SMALL LETTER P*/ + 0x24ac, /* U+0024ac: PARENTHESIZED LATIN SMALL LETTER Q*/ + 0x24ad, /* U+0024ad: PARENTHESIZED LATIN SMALL LETTER R*/ + 0x24ae, /* U+0024ae: PARENTHESIZED LATIN SMALL LETTER S*/ + 0x24af, /* U+0024af: PARENTHESIZED LATIN SMALL LETTER T*/ + 0x24b0, /* U+0024b0: PARENTHESIZED LATIN SMALL LETTER U*/ + 0x24b1, /* U+0024b1: PARENTHESIZED LATIN SMALL LETTER V*/ + 0x24b2, /* U+0024b2: PARENTHESIZED LATIN SMALL LETTER W*/ + 0x24b3, /* U+0024b3: PARENTHESIZED LATIN SMALL LETTER X*/ + 0x24b4, /* U+0024b4: PARENTHESIZED LATIN SMALL LETTER Y*/ + 0x24b5, /* U+0024b5: PARENTHESIZED LATIN SMALL LETTER Z*/ + 0x24d0, /* U+0024b6: CIRCLED LATIN CAPITAL LETTER A*/ + 0x24d1, /* U+0024b7: CIRCLED LATIN CAPITAL LETTER B*/ + 0x24d2, /* U+0024b8: CIRCLED LATIN CAPITAL LETTER C*/ + 0x24d3, /* U+0024b9: CIRCLED LATIN CAPITAL LETTER D*/ + 0x24d4, /* U+0024ba: CIRCLED LATIN CAPITAL LETTER E*/ + 0x24d5, /* U+0024bb: CIRCLED LATIN CAPITAL LETTER F*/ + 0x24d6, /* U+0024bc: CIRCLED LATIN CAPITAL LETTER G*/ + 0x24d7, /* U+0024bd: CIRCLED LATIN CAPITAL LETTER H*/ + 0x24d8, /* U+0024be: CIRCLED LATIN CAPITAL LETTER I*/ + 0x24d9, /* U+0024bf: CIRCLED LATIN CAPITAL LETTER J*/ + 0x24da, /* U+0024c0: CIRCLED LATIN CAPITAL LETTER K*/ + 0x24db, /* U+0024c1: CIRCLED LATIN CAPITAL LETTER L*/ + 0x24dc, /* U+0024c2: CIRCLED LATIN CAPITAL LETTER M*/ + 0x24dd, /* U+0024c3: CIRCLED LATIN CAPITAL LETTER N*/ + 0x24de, /* U+0024c4: CIRCLED LATIN CAPITAL LETTER O*/ + 0x24df, /* U+0024c5: CIRCLED LATIN CAPITAL LETTER P*/ + 0x24e0, /* U+0024c6: CIRCLED LATIN CAPITAL LETTER Q*/ + 0x24e1, /* U+0024c7: CIRCLED LATIN CAPITAL LETTER R*/ + 0x24e2, /* U+0024c8: CIRCLED LATIN CAPITAL LETTER S*/ + 0x24e3, /* U+0024c9: CIRCLED LATIN CAPITAL LETTER T*/ + 0x24e4, /* U+0024ca: CIRCLED LATIN CAPITAL LETTER U*/ + 0x24e5, /* U+0024cb: CIRCLED LATIN CAPITAL LETTER V*/ + 0x24e6, /* U+0024cc: CIRCLED LATIN CAPITAL LETTER W*/ + 0x24e7, /* U+0024cd: CIRCLED LATIN CAPITAL LETTER X*/ + 0x24e8, /* U+0024ce: CIRCLED LATIN CAPITAL LETTER Y*/ + 0x24e9, /* U+0024cf: CIRCLED LATIN CAPITAL LETTER Z*/ +}; + +static const RTUNICP g_afRTUniLower0x002c00[] = +{ + 0x2c30, /* U+002c00: GLAGOLITIC CAPITAL LETTER AZU*/ + 0x2c31, /* U+002c01: GLAGOLITIC CAPITAL LETTER BUKY*/ + 0x2c32, /* U+002c02: GLAGOLITIC CAPITAL LETTER VEDE*/ + 0x2c33, /* U+002c03: GLAGOLITIC CAPITAL LETTER GLAGOLI*/ + 0x2c34, /* U+002c04: GLAGOLITIC CAPITAL LETTER DOBRO*/ + 0x2c35, /* U+002c05: GLAGOLITIC CAPITAL LETTER YESTU*/ + 0x2c36, /* U+002c06: GLAGOLITIC CAPITAL LETTER ZHIVETE*/ + 0x2c37, /* U+002c07: GLAGOLITIC CAPITAL LETTER DZELO*/ + 0x2c38, /* U+002c08: GLAGOLITIC CAPITAL LETTER ZEMLJA*/ + 0x2c39, /* U+002c09: GLAGOLITIC CAPITAL LETTER IZHE*/ + 0x2c3a, /* U+002c0a: GLAGOLITIC CAPITAL LETTER INITIAL IZHE*/ + 0x2c3b, /* U+002c0b: GLAGOLITIC CAPITAL LETTER I*/ + 0x2c3c, /* U+002c0c: GLAGOLITIC CAPITAL LETTER DJERVI*/ + 0x2c3d, /* U+002c0d: GLAGOLITIC CAPITAL LETTER KAKO*/ + 0x2c3e, /* U+002c0e: GLAGOLITIC CAPITAL LETTER LJUDIJE*/ + 0x2c3f, /* U+002c0f: GLAGOLITIC CAPITAL LETTER MYSLITE*/ + 0x2c40, /* U+002c10: GLAGOLITIC CAPITAL LETTER NASHI*/ + 0x2c41, /* U+002c11: GLAGOLITIC CAPITAL LETTER ONU*/ + 0x2c42, /* U+002c12: GLAGOLITIC CAPITAL LETTER POKOJI*/ + 0x2c43, /* U+002c13: GLAGOLITIC CAPITAL LETTER RITSI*/ + 0x2c44, /* U+002c14: GLAGOLITIC CAPITAL LETTER SLOVO*/ + 0x2c45, /* U+002c15: GLAGOLITIC CAPITAL LETTER TVRIDO*/ + 0x2c46, /* U+002c16: GLAGOLITIC CAPITAL LETTER UKU*/ + 0x2c47, /* U+002c17: GLAGOLITIC CAPITAL LETTER FRITU*/ + 0x2c48, /* U+002c18: GLAGOLITIC CAPITAL LETTER HERU*/ + 0x2c49, /* U+002c19: GLAGOLITIC CAPITAL LETTER OTU*/ + 0x2c4a, /* U+002c1a: GLAGOLITIC CAPITAL LETTER PE*/ + 0x2c4b, /* U+002c1b: GLAGOLITIC CAPITAL LETTER SHTA*/ + 0x2c4c, /* U+002c1c: GLAGOLITIC CAPITAL LETTER TSI*/ + 0x2c4d, /* U+002c1d: GLAGOLITIC CAPITAL LETTER CHRIVI*/ + 0x2c4e, /* U+002c1e: GLAGOLITIC CAPITAL LETTER SHA*/ + 0x2c4f, /* U+002c1f: GLAGOLITIC CAPITAL LETTER YERU*/ + 0x2c50, /* U+002c20: GLAGOLITIC CAPITAL LETTER YERI*/ + 0x2c51, /* U+002c21: GLAGOLITIC CAPITAL LETTER YATI*/ + 0x2c52, /* U+002c22: GLAGOLITIC CAPITAL LETTER SPIDERY HA*/ + 0x2c53, /* U+002c23: GLAGOLITIC CAPITAL LETTER YU*/ + 0x2c54, /* U+002c24: GLAGOLITIC CAPITAL LETTER SMALL YUS*/ + 0x2c55, /* U+002c25: GLAGOLITIC CAPITAL LETTER SMALL YUS WITH TAIL*/ + 0x2c56, /* U+002c26: GLAGOLITIC CAPITAL LETTER YO*/ + 0x2c57, /* U+002c27: GLAGOLITIC CAPITAL LETTER IOTATED SMALL YUS*/ + 0x2c58, /* U+002c28: GLAGOLITIC CAPITAL LETTER BIG YUS*/ + 0x2c59, /* U+002c29: GLAGOLITIC CAPITAL LETTER IOTATED BIG YUS*/ + 0x2c5a, /* U+002c2a: GLAGOLITIC CAPITAL LETTER FITA*/ + 0x2c5b, /* U+002c2b: GLAGOLITIC CAPITAL LETTER IZHITSA*/ + 0x2c5c, /* U+002c2c: GLAGOLITIC CAPITAL LETTER SHTAPIC*/ + 0x2c5d, /* U+002c2d: GLAGOLITIC CAPITAL LETTER TROKUTASTI A*/ + 0x2c5e, /* U+002c2e: GLAGOLITIC CAPITAL LETTER LATINATE MYSLITE*/ + 0x2c2f, /* U+002c2f: */ + 0x2c30, /* U+002c30: GLAGOLITIC SMALL LETTER AZU*/ + 0x2c31, /* U+002c31: GLAGOLITIC SMALL LETTER BUKY*/ + 0x2c32, /* U+002c32: GLAGOLITIC SMALL LETTER VEDE*/ + 0x2c33, /* U+002c33: GLAGOLITIC SMALL LETTER GLAGOLI*/ + 0x2c34, /* U+002c34: GLAGOLITIC SMALL LETTER DOBRO*/ + 0x2c35, /* U+002c35: GLAGOLITIC SMALL LETTER YESTU*/ + 0x2c36, /* U+002c36: GLAGOLITIC SMALL LETTER ZHIVETE*/ + 0x2c37, /* U+002c37: GLAGOLITIC SMALL LETTER DZELO*/ + 0x2c38, /* U+002c38: GLAGOLITIC SMALL LETTER ZEMLJA*/ + 0x2c39, /* U+002c39: GLAGOLITIC SMALL LETTER IZHE*/ + 0x2c3a, /* U+002c3a: GLAGOLITIC SMALL LETTER INITIAL IZHE*/ + 0x2c3b, /* U+002c3b: GLAGOLITIC SMALL LETTER I*/ + 0x2c3c, /* U+002c3c: GLAGOLITIC SMALL LETTER DJERVI*/ + 0x2c3d, /* U+002c3d: GLAGOLITIC SMALL LETTER KAKO*/ + 0x2c3e, /* U+002c3e: GLAGOLITIC SMALL LETTER LJUDIJE*/ + 0x2c3f, /* U+002c3f: GLAGOLITIC SMALL LETTER MYSLITE*/ + 0x2c40, /* U+002c40: GLAGOLITIC SMALL LETTER NASHI*/ + 0x2c41, /* U+002c41: GLAGOLITIC SMALL LETTER ONU*/ + 0x2c42, /* U+002c42: GLAGOLITIC SMALL LETTER POKOJI*/ + 0x2c43, /* U+002c43: GLAGOLITIC SMALL LETTER RITSI*/ + 0x2c44, /* U+002c44: GLAGOLITIC SMALL LETTER SLOVO*/ + 0x2c45, /* U+002c45: GLAGOLITIC SMALL LETTER TVRIDO*/ + 0x2c46, /* U+002c46: GLAGOLITIC SMALL LETTER UKU*/ + 0x2c47, /* U+002c47: GLAGOLITIC SMALL LETTER FRITU*/ + 0x2c48, /* U+002c48: GLAGOLITIC SMALL LETTER HERU*/ + 0x2c49, /* U+002c49: GLAGOLITIC SMALL LETTER OTU*/ + 0x2c4a, /* U+002c4a: GLAGOLITIC SMALL LETTER PE*/ + 0x2c4b, /* U+002c4b: GLAGOLITIC SMALL LETTER SHTA*/ + 0x2c4c, /* U+002c4c: GLAGOLITIC SMALL LETTER TSI*/ + 0x2c4d, /* U+002c4d: GLAGOLITIC SMALL LETTER CHRIVI*/ + 0x2c4e, /* U+002c4e: GLAGOLITIC SMALL LETTER SHA*/ + 0x2c4f, /* U+002c4f: GLAGOLITIC SMALL LETTER YERU*/ + 0x2c50, /* U+002c50: GLAGOLITIC SMALL LETTER YERI*/ + 0x2c51, /* U+002c51: GLAGOLITIC SMALL LETTER YATI*/ + 0x2c52, /* U+002c52: GLAGOLITIC SMALL LETTER SPIDERY HA*/ + 0x2c53, /* U+002c53: GLAGOLITIC SMALL LETTER YU*/ + 0x2c54, /* U+002c54: GLAGOLITIC SMALL LETTER SMALL YUS*/ + 0x2c55, /* U+002c55: GLAGOLITIC SMALL LETTER SMALL YUS WITH TAIL*/ + 0x2c56, /* U+002c56: GLAGOLITIC SMALL LETTER YO*/ + 0x2c57, /* U+002c57: GLAGOLITIC SMALL LETTER IOTATED SMALL YUS*/ + 0x2c58, /* U+002c58: GLAGOLITIC SMALL LETTER BIG YUS*/ + 0x2c59, /* U+002c59: GLAGOLITIC SMALL LETTER IOTATED BIG YUS*/ + 0x2c5a, /* U+002c5a: GLAGOLITIC SMALL LETTER FITA*/ + 0x2c5b, /* U+002c5b: GLAGOLITIC SMALL LETTER IZHITSA*/ + 0x2c5c, /* U+002c5c: GLAGOLITIC SMALL LETTER SHTAPIC*/ + 0x2c5d, /* U+002c5d: GLAGOLITIC SMALL LETTER TROKUTASTI A*/ + 0x2c5e, /* U+002c5e: GLAGOLITIC SMALL LETTER LATINATE MYSLITE*/ + 0x2c5f, /* U+002c5f: */ + 0x2c61, /* U+002c60: LATIN CAPITAL LETTER L WITH DOUBLE BAR*/ + 0x2c61, /* U+002c61: LATIN SMALL LETTER L WITH DOUBLE BAR*/ + 0x26b, /* U+002c62: LATIN CAPITAL LETTER L WITH MIDDLE TILDE*/ + 0x1d7d, /* U+002c63: LATIN CAPITAL LETTER P WITH STROKE*/ + 0x27d, /* U+002c64: LATIN CAPITAL LETTER R WITH TAIL*/ + 0x2c65, /* U+002c65: LATIN SMALL LETTER A WITH STROKE*/ + 0x2c66, /* U+002c66: LATIN SMALL LETTER T WITH DIAGONAL STROKE*/ + 0x2c68, /* U+002c67: LATIN CAPITAL LETTER H WITH DESCENDER*/ + 0x2c68, /* U+002c68: LATIN SMALL LETTER H WITH DESCENDER*/ + 0x2c6a, /* U+002c69: LATIN CAPITAL LETTER K WITH DESCENDER*/ + 0x2c6a, /* U+002c6a: LATIN SMALL LETTER K WITH DESCENDER*/ + 0x2c6c, /* U+002c6b: LATIN CAPITAL LETTER Z WITH DESCENDER*/ + 0x2c6c, /* U+002c6c: LATIN SMALL LETTER Z WITH DESCENDER*/ + 0x251, /* U+002c6d: LATIN CAPITAL LETTER ALPHA*/ + 0x271, /* U+002c6e: LATIN CAPITAL LETTER M WITH HOOK*/ + 0x250, /* U+002c6f: LATIN CAPITAL LETTER TURNED A*/ + 0x252, /* U+002c70: LATIN CAPITAL LETTER TURNED ALPHA*/ + 0x2c71, /* U+002c71: LATIN SMALL LETTER V WITH RIGHT HOOK*/ + 0x2c73, /* U+002c72: LATIN CAPITAL LETTER W WITH HOOK*/ + 0x2c73, /* U+002c73: LATIN SMALL LETTER W WITH HOOK*/ + 0x2c74, /* U+002c74: LATIN SMALL LETTER V WITH CURL*/ + 0x2c76, /* U+002c75: LATIN CAPITAL LETTER HALF H*/ + 0x2c76, /* U+002c76: LATIN SMALL LETTER HALF H*/ + 0x2c77, /* U+002c77: LATIN SMALL LETTER TAILLESS PHI*/ + 0x2c78, /* U+002c78: LATIN SMALL LETTER E WITH NOTCH*/ + 0x2c79, /* U+002c79: LATIN SMALL LETTER TURNED R WITH TAIL*/ + 0x2c7a, /* U+002c7a: LATIN SMALL LETTER O WITH LOW RING INSIDE*/ + 0x2c7b, /* U+002c7b: LATIN LETTER SMALL CAPITAL TURNED E*/ + 0x2c7c, /* U+002c7c: LATIN SUBSCRIPT SMALL LETTER J*/ + 0x2c7d, /* U+002c7d: MODIFIER LETTER CAPITAL V*/ + 0x23f, /* U+002c7e: LATIN CAPITAL LETTER S WITH SWASH TAIL*/ + 0x240, /* U+002c7f: LATIN CAPITAL LETTER Z WITH SWASH TAIL*/ + 0x2c81, /* U+002c80: COPTIC CAPITAL LETTER ALFA*/ + 0x2c81, /* U+002c81: COPTIC SMALL LETTER ALFA*/ + 0x2c83, /* U+002c82: COPTIC CAPITAL LETTER VIDA*/ + 0x2c83, /* U+002c83: COPTIC SMALL LETTER VIDA*/ + 0x2c85, /* U+002c84: COPTIC CAPITAL LETTER GAMMA*/ + 0x2c85, /* U+002c85: COPTIC SMALL LETTER GAMMA*/ + 0x2c87, /* U+002c86: COPTIC CAPITAL LETTER DALDA*/ + 0x2c87, /* U+002c87: COPTIC SMALL LETTER DALDA*/ + 0x2c89, /* U+002c88: COPTIC CAPITAL LETTER EIE*/ + 0x2c89, /* U+002c89: COPTIC SMALL LETTER EIE*/ + 0x2c8b, /* U+002c8a: COPTIC CAPITAL LETTER SOU*/ + 0x2c8b, /* U+002c8b: COPTIC SMALL LETTER SOU*/ + 0x2c8d, /* U+002c8c: COPTIC CAPITAL LETTER ZATA*/ + 0x2c8d, /* U+002c8d: COPTIC SMALL LETTER ZATA*/ + 0x2c8f, /* U+002c8e: COPTIC CAPITAL LETTER HATE*/ + 0x2c8f, /* U+002c8f: COPTIC SMALL LETTER HATE*/ + 0x2c91, /* U+002c90: COPTIC CAPITAL LETTER THETHE*/ + 0x2c91, /* U+002c91: COPTIC SMALL LETTER THETHE*/ + 0x2c93, /* U+002c92: COPTIC CAPITAL LETTER IAUDA*/ + 0x2c93, /* U+002c93: COPTIC SMALL LETTER IAUDA*/ + 0x2c95, /* U+002c94: COPTIC CAPITAL LETTER KAPA*/ + 0x2c95, /* U+002c95: COPTIC SMALL LETTER KAPA*/ + 0x2c97, /* U+002c96: COPTIC CAPITAL LETTER LAULA*/ + 0x2c97, /* U+002c97: COPTIC SMALL LETTER LAULA*/ + 0x2c99, /* U+002c98: COPTIC CAPITAL LETTER MI*/ + 0x2c99, /* U+002c99: COPTIC SMALL LETTER MI*/ + 0x2c9b, /* U+002c9a: COPTIC CAPITAL LETTER NI*/ + 0x2c9b, /* U+002c9b: COPTIC SMALL LETTER NI*/ + 0x2c9d, /* U+002c9c: COPTIC CAPITAL LETTER KSI*/ + 0x2c9d, /* U+002c9d: COPTIC SMALL LETTER KSI*/ + 0x2c9f, /* U+002c9e: COPTIC CAPITAL LETTER O*/ + 0x2c9f, /* U+002c9f: COPTIC SMALL LETTER O*/ + 0x2ca1, /* U+002ca0: COPTIC CAPITAL LETTER PI*/ + 0x2ca1, /* U+002ca1: COPTIC SMALL LETTER PI*/ + 0x2ca3, /* U+002ca2: COPTIC CAPITAL LETTER RO*/ + 0x2ca3, /* U+002ca3: COPTIC SMALL LETTER RO*/ + 0x2ca5, /* U+002ca4: COPTIC CAPITAL LETTER SIMA*/ + 0x2ca5, /* U+002ca5: COPTIC SMALL LETTER SIMA*/ + 0x2ca7, /* U+002ca6: COPTIC CAPITAL LETTER TAU*/ + 0x2ca7, /* U+002ca7: COPTIC SMALL LETTER TAU*/ + 0x2ca9, /* U+002ca8: COPTIC CAPITAL LETTER UA*/ + 0x2ca9, /* U+002ca9: COPTIC SMALL LETTER UA*/ + 0x2cab, /* U+002caa: COPTIC CAPITAL LETTER FI*/ + 0x2cab, /* U+002cab: COPTIC SMALL LETTER FI*/ + 0x2cad, /* U+002cac: COPTIC CAPITAL LETTER KHI*/ + 0x2cad, /* U+002cad: COPTIC SMALL LETTER KHI*/ + 0x2caf, /* U+002cae: COPTIC CAPITAL LETTER PSI*/ + 0x2caf, /* U+002caf: COPTIC SMALL LETTER PSI*/ + 0x2cb1, /* U+002cb0: COPTIC CAPITAL LETTER OOU*/ + 0x2cb1, /* U+002cb1: COPTIC SMALL LETTER OOU*/ + 0x2cb3, /* U+002cb2: COPTIC CAPITAL LETTER DIALECT-P ALEF*/ + 0x2cb3, /* U+002cb3: COPTIC SMALL LETTER DIALECT-P ALEF*/ + 0x2cb5, /* U+002cb4: COPTIC CAPITAL LETTER OLD COPTIC AIN*/ + 0x2cb5, /* U+002cb5: COPTIC SMALL LETTER OLD COPTIC AIN*/ + 0x2cb7, /* U+002cb6: COPTIC CAPITAL LETTER CRYPTOGRAMMIC EIE*/ + 0x2cb7, /* U+002cb7: COPTIC SMALL LETTER CRYPTOGRAMMIC EIE*/ + 0x2cb9, /* U+002cb8: COPTIC CAPITAL LETTER DIALECT-P KAPA*/ + 0x2cb9, /* U+002cb9: COPTIC SMALL LETTER DIALECT-P KAPA*/ + 0x2cbb, /* U+002cba: COPTIC CAPITAL LETTER DIALECT-P NI*/ + 0x2cbb, /* U+002cbb: COPTIC SMALL LETTER DIALECT-P NI*/ + 0x2cbd, /* U+002cbc: COPTIC CAPITAL LETTER CRYPTOGRAMMIC NI*/ + 0x2cbd, /* U+002cbd: COPTIC SMALL LETTER CRYPTOGRAMMIC NI*/ + 0x2cbf, /* U+002cbe: COPTIC CAPITAL LETTER OLD COPTIC OOU*/ + 0x2cbf, /* U+002cbf: COPTIC SMALL LETTER OLD COPTIC OOU*/ + 0x2cc1, /* U+002cc0: COPTIC CAPITAL LETTER SAMPI*/ + 0x2cc1, /* U+002cc1: COPTIC SMALL LETTER SAMPI*/ + 0x2cc3, /* U+002cc2: COPTIC CAPITAL LETTER CROSSED SHEI*/ + 0x2cc3, /* U+002cc3: COPTIC SMALL LETTER CROSSED SHEI*/ + 0x2cc5, /* U+002cc4: COPTIC CAPITAL LETTER OLD COPTIC SHEI*/ + 0x2cc5, /* U+002cc5: COPTIC SMALL LETTER OLD COPTIC SHEI*/ + 0x2cc7, /* U+002cc6: COPTIC CAPITAL LETTER OLD COPTIC ESH*/ + 0x2cc7, /* U+002cc7: COPTIC SMALL LETTER OLD COPTIC ESH*/ + 0x2cc9, /* U+002cc8: COPTIC CAPITAL LETTER AKHMIMIC KHEI*/ + 0x2cc9, /* U+002cc9: COPTIC SMALL LETTER AKHMIMIC KHEI*/ + 0x2ccb, /* U+002cca: COPTIC CAPITAL LETTER DIALECT-P HORI*/ + 0x2ccb, /* U+002ccb: COPTIC SMALL LETTER DIALECT-P HORI*/ + 0x2ccd, /* U+002ccc: COPTIC CAPITAL LETTER OLD COPTIC HORI*/ + 0x2ccd, /* U+002ccd: COPTIC SMALL LETTER OLD COPTIC HORI*/ + 0x2ccf, /* U+002cce: COPTIC CAPITAL LETTER OLD COPTIC HA*/ + 0x2ccf, /* U+002ccf: COPTIC SMALL LETTER OLD COPTIC HA*/ + 0x2cd1, /* U+002cd0: COPTIC CAPITAL LETTER L-SHAPED HA*/ + 0x2cd1, /* U+002cd1: COPTIC SMALL LETTER L-SHAPED HA*/ + 0x2cd3, /* U+002cd2: COPTIC CAPITAL LETTER OLD COPTIC HEI*/ + 0x2cd3, /* U+002cd3: COPTIC SMALL LETTER OLD COPTIC HEI*/ + 0x2cd5, /* U+002cd4: COPTIC CAPITAL LETTER OLD COPTIC HAT*/ + 0x2cd5, /* U+002cd5: COPTIC SMALL LETTER OLD COPTIC HAT*/ + 0x2cd7, /* U+002cd6: COPTIC CAPITAL LETTER OLD COPTIC GANGIA*/ + 0x2cd7, /* U+002cd7: COPTIC SMALL LETTER OLD COPTIC GANGIA*/ + 0x2cd9, /* U+002cd8: COPTIC CAPITAL LETTER OLD COPTIC DJA*/ + 0x2cd9, /* U+002cd9: COPTIC SMALL LETTER OLD COPTIC DJA*/ + 0x2cdb, /* U+002cda: COPTIC CAPITAL LETTER OLD COPTIC SHIMA*/ + 0x2cdb, /* U+002cdb: COPTIC SMALL LETTER OLD COPTIC SHIMA*/ + 0x2cdd, /* U+002cdc: COPTIC CAPITAL LETTER OLD NUBIAN SHIMA*/ + 0x2cdd, /* U+002cdd: COPTIC SMALL LETTER OLD NUBIAN SHIMA*/ + 0x2cdf, /* U+002cde: COPTIC CAPITAL LETTER OLD NUBIAN NGI*/ + 0x2cdf, /* U+002cdf: COPTIC SMALL LETTER OLD NUBIAN NGI*/ + 0x2ce1, /* U+002ce0: COPTIC CAPITAL LETTER OLD NUBIAN NYI*/ + 0x2ce1, /* U+002ce1: COPTIC SMALL LETTER OLD NUBIAN NYI*/ + 0x2ce3, /* U+002ce2: COPTIC CAPITAL LETTER OLD NUBIAN WAU*/ + 0x2ce3, /* U+002ce3: COPTIC SMALL LETTER OLD NUBIAN WAU*/ + 0x2ce4, /* U+002ce4: COPTIC SYMBOL KAI*/ + 0x2ce5, /* U+002ce5: COPTIC SYMBOL MI RO*/ + 0x2ce6, /* U+002ce6: COPTIC SYMBOL PI RO*/ + 0x2ce7, /* U+002ce7: COPTIC SYMBOL STAUROS*/ + 0x2ce8, /* U+002ce8: COPTIC SYMBOL TAU RO*/ + 0x2ce9, /* U+002ce9: COPTIC SYMBOL KHI RO*/ + 0x2cea, /* U+002cea: COPTIC SYMBOL SHIMA SIMA*/ + 0x2cec, /* U+002ceb: COPTIC CAPITAL LETTER CRYPTOGRAMMIC SHEI*/ + 0x2cec, /* U+002cec: COPTIC SMALL LETTER CRYPTOGRAMMIC SHEI*/ + 0x2cee, /* U+002ced: COPTIC CAPITAL LETTER CRYPTOGRAMMIC GANGIA*/ + 0x2cee, /* U+002cee: COPTIC SMALL LETTER CRYPTOGRAMMIC GANGIA*/ + 0x2cef, /* U+002cef: COPTIC COMBINING NI ABOVE*/ + 0x2cf0, /* U+002cf0: COPTIC COMBINING SPIRITUS ASPER*/ + 0x2cf1, /* U+002cf1: COPTIC COMBINING SPIRITUS LENIS*/ + 0x2cf3, /* U+002cf2: COPTIC CAPITAL LETTER BOHAIRIC KHEI*/ +}; + +static const RTUNICP g_afRTUniLower0x00a640[] = +{ + 0xa641, /* U+00a640: CYRILLIC CAPITAL LETTER ZEMLYA*/ + 0xa641, /* U+00a641: CYRILLIC SMALL LETTER ZEMLYA*/ + 0xa643, /* U+00a642: CYRILLIC CAPITAL LETTER DZELO*/ + 0xa643, /* U+00a643: CYRILLIC SMALL LETTER DZELO*/ + 0xa645, /* U+00a644: CYRILLIC CAPITAL LETTER REVERSED DZE*/ + 0xa645, /* U+00a645: CYRILLIC SMALL LETTER REVERSED DZE*/ + 0xa647, /* U+00a646: CYRILLIC CAPITAL LETTER IOTA*/ + 0xa647, /* U+00a647: CYRILLIC SMALL LETTER IOTA*/ + 0xa649, /* U+00a648: CYRILLIC CAPITAL LETTER DJERV*/ + 0xa649, /* U+00a649: CYRILLIC SMALL LETTER DJERV*/ + 0xa64b, /* U+00a64a: CYRILLIC CAPITAL LETTER MONOGRAPH UK*/ + 0xa64b, /* U+00a64b: CYRILLIC SMALL LETTER MONOGRAPH UK*/ + 0xa64d, /* U+00a64c: CYRILLIC CAPITAL LETTER BROAD OMEGA*/ + 0xa64d, /* U+00a64d: CYRILLIC SMALL LETTER BROAD OMEGA*/ + 0xa64f, /* U+00a64e: CYRILLIC CAPITAL LETTER NEUTRAL YER*/ + 0xa64f, /* U+00a64f: CYRILLIC SMALL LETTER NEUTRAL YER*/ + 0xa651, /* U+00a650: CYRILLIC CAPITAL LETTER YERU WITH BACK YER*/ + 0xa651, /* U+00a651: CYRILLIC SMALL LETTER YERU WITH BACK YER*/ + 0xa653, /* U+00a652: CYRILLIC CAPITAL LETTER IOTIFIED YAT*/ + 0xa653, /* U+00a653: CYRILLIC SMALL LETTER IOTIFIED YAT*/ + 0xa655, /* U+00a654: CYRILLIC CAPITAL LETTER REVERSED YU*/ + 0xa655, /* U+00a655: CYRILLIC SMALL LETTER REVERSED YU*/ + 0xa657, /* U+00a656: CYRILLIC CAPITAL LETTER IOTIFIED A*/ + 0xa657, /* U+00a657: CYRILLIC SMALL LETTER IOTIFIED A*/ + 0xa659, /* U+00a658: CYRILLIC CAPITAL LETTER CLOSED LITTLE YUS*/ + 0xa659, /* U+00a659: CYRILLIC SMALL LETTER CLOSED LITTLE YUS*/ + 0xa65b, /* U+00a65a: CYRILLIC CAPITAL LETTER BLENDED YUS*/ + 0xa65b, /* U+00a65b: CYRILLIC SMALL LETTER BLENDED YUS*/ + 0xa65d, /* U+00a65c: CYRILLIC CAPITAL LETTER IOTIFIED CLOSED LITTLE YUS*/ + 0xa65d, /* U+00a65d: CYRILLIC SMALL LETTER IOTIFIED CLOSED LITTLE YUS*/ + 0xa65f, /* U+00a65e: CYRILLIC CAPITAL LETTER YN*/ + 0xa65f, /* U+00a65f: CYRILLIC SMALL LETTER YN*/ + 0xa661, /* U+00a660: CYRILLIC CAPITAL LETTER REVERSED TSE*/ + 0xa661, /* U+00a661: CYRILLIC SMALL LETTER REVERSED TSE*/ + 0xa663, /* U+00a662: CYRILLIC CAPITAL LETTER SOFT DE*/ + 0xa663, /* U+00a663: CYRILLIC SMALL LETTER SOFT DE*/ + 0xa665, /* U+00a664: CYRILLIC CAPITAL LETTER SOFT EL*/ + 0xa665, /* U+00a665: CYRILLIC SMALL LETTER SOFT EL*/ + 0xa667, /* U+00a666: CYRILLIC CAPITAL LETTER SOFT EM*/ + 0xa667, /* U+00a667: CYRILLIC SMALL LETTER SOFT EM*/ + 0xa669, /* U+00a668: CYRILLIC CAPITAL LETTER MONOCULAR O*/ + 0xa669, /* U+00a669: CYRILLIC SMALL LETTER MONOCULAR O*/ + 0xa66b, /* U+00a66a: CYRILLIC CAPITAL LETTER BINOCULAR O*/ + 0xa66b, /* U+00a66b: CYRILLIC SMALL LETTER BINOCULAR O*/ + 0xa66d, /* U+00a66c: CYRILLIC CAPITAL LETTER DOUBLE MONOCULAR O*/ + 0xa66d, /* U+00a66d: CYRILLIC SMALL LETTER DOUBLE MONOCULAR O*/ + 0xa66e, /* U+00a66e: CYRILLIC LETTER MULTIOCULAR O*/ + 0xa66f, /* U+00a66f: COMBINING CYRILLIC VZMET*/ + 0xa670, /* U+00a670: COMBINING CYRILLIC TEN MILLIONS SIGN*/ + 0xa671, /* U+00a671: COMBINING CYRILLIC HUNDRED MILLIONS SIGN*/ + 0xa672, /* U+00a672: COMBINING CYRILLIC THOUSAND MILLIONS SIGN*/ + 0xa673, /* U+00a673: SLAVONIC ASTERISK*/ + 0xa674, /* U+00a674: COMBINING CYRILLIC LETTER UKRAINIAN IE*/ + 0xa675, /* U+00a675: COMBINING CYRILLIC LETTER I*/ + 0xa676, /* U+00a676: COMBINING CYRILLIC LETTER YI*/ + 0xa677, /* U+00a677: COMBINING CYRILLIC LETTER U*/ + 0xa678, /* U+00a678: COMBINING CYRILLIC LETTER HARD SIGN*/ + 0xa679, /* U+00a679: COMBINING CYRILLIC LETTER YERU*/ + 0xa67a, /* U+00a67a: COMBINING CYRILLIC LETTER SOFT SIGN*/ + 0xa67b, /* U+00a67b: COMBINING CYRILLIC LETTER OMEGA*/ + 0xa67c, /* U+00a67c: COMBINING CYRILLIC KAVYKA*/ + 0xa67d, /* U+00a67d: COMBINING CYRILLIC PAYEROK*/ + 0xa67e, /* U+00a67e: CYRILLIC KAVYKA*/ + 0xa67f, /* U+00a67f: CYRILLIC PAYEROK*/ + 0xa681, /* U+00a680: CYRILLIC CAPITAL LETTER DWE*/ + 0xa681, /* U+00a681: CYRILLIC SMALL LETTER DWE*/ + 0xa683, /* U+00a682: CYRILLIC CAPITAL LETTER DZWE*/ + 0xa683, /* U+00a683: CYRILLIC SMALL LETTER DZWE*/ + 0xa685, /* U+00a684: CYRILLIC CAPITAL LETTER ZHWE*/ + 0xa685, /* U+00a685: CYRILLIC SMALL LETTER ZHWE*/ + 0xa687, /* U+00a686: CYRILLIC CAPITAL LETTER CCHE*/ + 0xa687, /* U+00a687: CYRILLIC SMALL LETTER CCHE*/ + 0xa689, /* U+00a688: CYRILLIC CAPITAL LETTER DZZE*/ + 0xa689, /* U+00a689: CYRILLIC SMALL LETTER DZZE*/ + 0xa68b, /* U+00a68a: CYRILLIC CAPITAL LETTER TE WITH MIDDLE HOOK*/ + 0xa68b, /* U+00a68b: CYRILLIC SMALL LETTER TE WITH MIDDLE HOOK*/ + 0xa68d, /* U+00a68c: CYRILLIC CAPITAL LETTER TWE*/ + 0xa68d, /* U+00a68d: CYRILLIC SMALL LETTER TWE*/ + 0xa68f, /* U+00a68e: CYRILLIC CAPITAL LETTER TSWE*/ + 0xa68f, /* U+00a68f: CYRILLIC SMALL LETTER TSWE*/ + 0xa691, /* U+00a690: CYRILLIC CAPITAL LETTER TSSE*/ + 0xa691, /* U+00a691: CYRILLIC SMALL LETTER TSSE*/ + 0xa693, /* U+00a692: CYRILLIC CAPITAL LETTER TCHE*/ + 0xa693, /* U+00a693: CYRILLIC SMALL LETTER TCHE*/ + 0xa695, /* U+00a694: CYRILLIC CAPITAL LETTER HWE*/ + 0xa695, /* U+00a695: CYRILLIC SMALL LETTER HWE*/ + 0xa697, /* U+00a696: CYRILLIC CAPITAL LETTER SHWE*/ + 0xa697, /* U+00a697: CYRILLIC SMALL LETTER SHWE*/ + 0xa698, /* U+00a698: */ + 0xa699, /* U+00a699: */ + 0xa69a, /* U+00a69a: */ + 0xa69b, /* U+00a69b: */ + 0xa69c, /* U+00a69c: */ + 0xa69d, /* U+00a69d: */ + 0xa69e, /* U+00a69e: */ + 0xa69f, /* U+00a69f: COMBINING CYRILLIC LETTER IOTIFIED E*/ + 0xa6a0, /* U+00a6a0: BAMUM LETTER A*/ + 0xa6a1, /* U+00a6a1: BAMUM LETTER KA*/ + 0xa6a2, /* U+00a6a2: BAMUM LETTER U*/ + 0xa6a3, /* U+00a6a3: BAMUM LETTER KU*/ + 0xa6a4, /* U+00a6a4: BAMUM LETTER EE*/ + 0xa6a5, /* U+00a6a5: BAMUM LETTER REE*/ + 0xa6a6, /* U+00a6a6: BAMUM LETTER TAE*/ + 0xa6a7, /* U+00a6a7: BAMUM LETTER O*/ + 0xa6a8, /* U+00a6a8: BAMUM LETTER NYI*/ + 0xa6a9, /* U+00a6a9: BAMUM LETTER I*/ + 0xa6aa, /* U+00a6aa: BAMUM LETTER LA*/ + 0xa6ab, /* U+00a6ab: BAMUM LETTER PA*/ + 0xa6ac, /* U+00a6ac: BAMUM LETTER RII*/ + 0xa6ad, /* U+00a6ad: BAMUM LETTER RIEE*/ + 0xa6ae, /* U+00a6ae: BAMUM LETTER LEEEE*/ + 0xa6af, /* U+00a6af: BAMUM LETTER MEEEE*/ + 0xa6b0, /* U+00a6b0: BAMUM LETTER TAA*/ + 0xa6b1, /* U+00a6b1: BAMUM LETTER NDAA*/ + 0xa6b2, /* U+00a6b2: BAMUM LETTER NJAEM*/ + 0xa6b3, /* U+00a6b3: BAMUM LETTER M*/ + 0xa6b4, /* U+00a6b4: BAMUM LETTER SUU*/ + 0xa6b5, /* U+00a6b5: BAMUM LETTER MU*/ + 0xa6b6, /* U+00a6b6: BAMUM LETTER SHII*/ + 0xa6b7, /* U+00a6b7: BAMUM LETTER SI*/ + 0xa6b8, /* U+00a6b8: BAMUM LETTER SHEUX*/ + 0xa6b9, /* U+00a6b9: BAMUM LETTER SEUX*/ + 0xa6ba, /* U+00a6ba: BAMUM LETTER KYEE*/ + 0xa6bb, /* U+00a6bb: BAMUM LETTER KET*/ + 0xa6bc, /* U+00a6bc: BAMUM LETTER NUAE*/ + 0xa6bd, /* U+00a6bd: BAMUM LETTER NU*/ + 0xa6be, /* U+00a6be: BAMUM LETTER NJUAE*/ + 0xa6bf, /* U+00a6bf: BAMUM LETTER YOQ*/ + 0xa6c0, /* U+00a6c0: BAMUM LETTER SHU*/ + 0xa6c1, /* U+00a6c1: BAMUM LETTER YUQ*/ + 0xa6c2, /* U+00a6c2: BAMUM LETTER YA*/ + 0xa6c3, /* U+00a6c3: BAMUM LETTER NSHA*/ + 0xa6c4, /* U+00a6c4: BAMUM LETTER KEUX*/ + 0xa6c5, /* U+00a6c5: BAMUM LETTER PEUX*/ + 0xa6c6, /* U+00a6c6: BAMUM LETTER NJEE*/ + 0xa6c7, /* U+00a6c7: BAMUM LETTER NTEE*/ + 0xa6c8, /* U+00a6c8: BAMUM LETTER PUE*/ + 0xa6c9, /* U+00a6c9: BAMUM LETTER WUE*/ + 0xa6ca, /* U+00a6ca: BAMUM LETTER PEE*/ + 0xa6cb, /* U+00a6cb: BAMUM LETTER FEE*/ + 0xa6cc, /* U+00a6cc: BAMUM LETTER RU*/ + 0xa6cd, /* U+00a6cd: BAMUM LETTER LU*/ + 0xa6ce, /* U+00a6ce: BAMUM LETTER MI*/ + 0xa6cf, /* U+00a6cf: BAMUM LETTER NI*/ + 0xa6d0, /* U+00a6d0: BAMUM LETTER REUX*/ + 0xa6d1, /* U+00a6d1: BAMUM LETTER RAE*/ + 0xa6d2, /* U+00a6d2: BAMUM LETTER KEN*/ + 0xa6d3, /* U+00a6d3: BAMUM LETTER NGKWAEN*/ + 0xa6d4, /* U+00a6d4: BAMUM LETTER NGGA*/ + 0xa6d5, /* U+00a6d5: BAMUM LETTER NGA*/ + 0xa6d6, /* U+00a6d6: BAMUM LETTER SHO*/ + 0xa6d7, /* U+00a6d7: BAMUM LETTER PUAE*/ + 0xa6d8, /* U+00a6d8: BAMUM LETTER FU*/ + 0xa6d9, /* U+00a6d9: BAMUM LETTER FOM*/ + 0xa6da, /* U+00a6da: BAMUM LETTER WA*/ + 0xa6db, /* U+00a6db: BAMUM LETTER NA*/ + 0xa6dc, /* U+00a6dc: BAMUM LETTER LI*/ + 0xa6dd, /* U+00a6dd: BAMUM LETTER PI*/ + 0xa6de, /* U+00a6de: BAMUM LETTER LOQ*/ + 0xa6df, /* U+00a6df: BAMUM LETTER KO*/ + 0xa6e0, /* U+00a6e0: BAMUM LETTER MBEN*/ + 0xa6e1, /* U+00a6e1: BAMUM LETTER REN*/ + 0xa6e2, /* U+00a6e2: BAMUM LETTER MEN*/ + 0xa6e3, /* U+00a6e3: BAMUM LETTER MA*/ + 0xa6e4, /* U+00a6e4: BAMUM LETTER TI*/ + 0xa6e5, /* U+00a6e5: BAMUM LETTER KI*/ + 0xa6e6, /* U+00a6e6: BAMUM LETTER MO*/ + 0xa6e7, /* U+00a6e7: BAMUM LETTER MBAA*/ + 0xa6e8, /* U+00a6e8: BAMUM LETTER TET*/ + 0xa6e9, /* U+00a6e9: BAMUM LETTER KPA*/ + 0xa6ea, /* U+00a6ea: BAMUM LETTER TEN*/ + 0xa6eb, /* U+00a6eb: BAMUM LETTER NTUU*/ + 0xa6ec, /* U+00a6ec: BAMUM LETTER SAMBA*/ + 0xa6ed, /* U+00a6ed: BAMUM LETTER FAAMAE*/ + 0xa6ee, /* U+00a6ee: BAMUM LETTER KOVUU*/ + 0xa6ef, /* U+00a6ef: BAMUM LETTER KOGHOM*/ + 0xa6f0, /* U+00a6f0: BAMUM COMBINING MARK KOQNDON*/ + 0xa6f1, /* U+00a6f1: BAMUM COMBINING MARK TUKWENTIS*/ + 0xa6f2, /* U+00a6f2: BAMUM NJAEMLI*/ + 0xa6f3, /* U+00a6f3: BAMUM FULL STOP*/ + 0xa6f4, /* U+00a6f4: BAMUM COLON*/ + 0xa6f5, /* U+00a6f5: BAMUM COMMA*/ + 0xa6f6, /* U+00a6f6: BAMUM SEMICOLON*/ + 0xa6f7, /* U+00a6f7: BAMUM QUESTION MARK*/ + 0xa6f8, /* U+00a6f8: */ + 0xa6f9, /* U+00a6f9: */ + 0xa6fa, /* U+00a6fa: */ + 0xa6fb, /* U+00a6fb: */ + 0xa6fc, /* U+00a6fc: */ + 0xa6fd, /* U+00a6fd: */ + 0xa6fe, /* U+00a6fe: */ + 0xa6ff, /* U+00a6ff: */ + 0xa700, /* U+00a700: MODIFIER LETTER CHINESE TONE YIN PING*/ + 0xa701, /* U+00a701: MODIFIER LETTER CHINESE TONE YANG PING*/ + 0xa702, /* U+00a702: MODIFIER LETTER CHINESE TONE YIN SHANG*/ + 0xa703, /* U+00a703: MODIFIER LETTER CHINESE TONE YANG SHANG*/ + 0xa704, /* U+00a704: MODIFIER LETTER CHINESE TONE YIN QU*/ + 0xa705, /* U+00a705: MODIFIER LETTER CHINESE TONE YANG QU*/ + 0xa706, /* U+00a706: MODIFIER LETTER CHINESE TONE YIN RU*/ + 0xa707, /* U+00a707: MODIFIER LETTER CHINESE TONE YANG RU*/ + 0xa708, /* U+00a708: MODIFIER LETTER EXTRA-HIGH DOTTED TONE BAR*/ + 0xa709, /* U+00a709: MODIFIER LETTER HIGH DOTTED TONE BAR*/ + 0xa70a, /* U+00a70a: MODIFIER LETTER MID DOTTED TONE BAR*/ + 0xa70b, /* U+00a70b: MODIFIER LETTER LOW DOTTED TONE BAR*/ + 0xa70c, /* U+00a70c: MODIFIER LETTER EXTRA-LOW DOTTED TONE BAR*/ + 0xa70d, /* U+00a70d: MODIFIER LETTER EXTRA-HIGH DOTTED LEFT-STEM TONE BAR*/ + 0xa70e, /* U+00a70e: MODIFIER LETTER HIGH DOTTED LEFT-STEM TONE BAR*/ + 0xa70f, /* U+00a70f: MODIFIER LETTER MID DOTTED LEFT-STEM TONE BAR*/ + 0xa710, /* U+00a710: MODIFIER LETTER LOW DOTTED LEFT-STEM TONE BAR*/ + 0xa711, /* U+00a711: MODIFIER LETTER EXTRA-LOW DOTTED LEFT-STEM TONE BAR*/ + 0xa712, /* U+00a712: MODIFIER LETTER EXTRA-HIGH LEFT-STEM TONE BAR*/ + 0xa713, /* U+00a713: MODIFIER LETTER HIGH LEFT-STEM TONE BAR*/ + 0xa714, /* U+00a714: MODIFIER LETTER MID LEFT-STEM TONE BAR*/ + 0xa715, /* U+00a715: MODIFIER LETTER LOW LEFT-STEM TONE BAR*/ + 0xa716, /* U+00a716: MODIFIER LETTER EXTRA-LOW LEFT-STEM TONE BAR*/ + 0xa717, /* U+00a717: MODIFIER LETTER DOT VERTICAL BAR*/ + 0xa718, /* U+00a718: MODIFIER LETTER DOT SLASH*/ + 0xa719, /* U+00a719: MODIFIER LETTER DOT HORIZONTAL BAR*/ + 0xa71a, /* U+00a71a: MODIFIER LETTER LOWER RIGHT CORNER ANGLE*/ + 0xa71b, /* U+00a71b: MODIFIER LETTER RAISED UP ARROW*/ + 0xa71c, /* U+00a71c: MODIFIER LETTER RAISED DOWN ARROW*/ + 0xa71d, /* U+00a71d: MODIFIER LETTER RAISED EXCLAMATION MARK*/ + 0xa71e, /* U+00a71e: MODIFIER LETTER RAISED INVERTED EXCLAMATION MARK*/ + 0xa71f, /* U+00a71f: MODIFIER LETTER LOW INVERTED EXCLAMATION MARK*/ + 0xa720, /* U+00a720: MODIFIER LETTER STRESS AND HIGH TONE*/ + 0xa721, /* U+00a721: MODIFIER LETTER STRESS AND LOW TONE*/ + 0xa723, /* U+00a722: LATIN CAPITAL LETTER EGYPTOLOGICAL ALEF*/ + 0xa723, /* U+00a723: LATIN SMALL LETTER EGYPTOLOGICAL ALEF*/ + 0xa725, /* U+00a724: LATIN CAPITAL LETTER EGYPTOLOGICAL AIN*/ + 0xa725, /* U+00a725: LATIN SMALL LETTER EGYPTOLOGICAL AIN*/ + 0xa727, /* U+00a726: LATIN CAPITAL LETTER HENG*/ + 0xa727, /* U+00a727: LATIN SMALL LETTER HENG*/ + 0xa729, /* U+00a728: LATIN CAPITAL LETTER TZ*/ + 0xa729, /* U+00a729: LATIN SMALL LETTER TZ*/ + 0xa72b, /* U+00a72a: LATIN CAPITAL LETTER TRESILLO*/ + 0xa72b, /* U+00a72b: LATIN SMALL LETTER TRESILLO*/ + 0xa72d, /* U+00a72c: LATIN CAPITAL LETTER CUATRILLO*/ + 0xa72d, /* U+00a72d: LATIN SMALL LETTER CUATRILLO*/ + 0xa72f, /* U+00a72e: LATIN CAPITAL LETTER CUATRILLO WITH COMMA*/ + 0xa72f, /* U+00a72f: LATIN SMALL LETTER CUATRILLO WITH COMMA*/ + 0xa730, /* U+00a730: LATIN LETTER SMALL CAPITAL F*/ + 0xa731, /* U+00a731: LATIN LETTER SMALL CAPITAL S*/ + 0xa733, /* U+00a732: LATIN CAPITAL LETTER AA*/ + 0xa733, /* U+00a733: LATIN SMALL LETTER AA*/ + 0xa735, /* U+00a734: LATIN CAPITAL LETTER AO*/ + 0xa735, /* U+00a735: LATIN SMALL LETTER AO*/ + 0xa737, /* U+00a736: LATIN CAPITAL LETTER AU*/ + 0xa737, /* U+00a737: LATIN SMALL LETTER AU*/ + 0xa739, /* U+00a738: LATIN CAPITAL LETTER AV*/ + 0xa739, /* U+00a739: LATIN SMALL LETTER AV*/ + 0xa73b, /* U+00a73a: LATIN CAPITAL LETTER AV WITH HORIZONTAL BAR*/ + 0xa73b, /* U+00a73b: LATIN SMALL LETTER AV WITH HORIZONTAL BAR*/ + 0xa73d, /* U+00a73c: LATIN CAPITAL LETTER AY*/ + 0xa73d, /* U+00a73d: LATIN SMALL LETTER AY*/ + 0xa73f, /* U+00a73e: LATIN CAPITAL LETTER REVERSED C WITH DOT*/ + 0xa73f, /* U+00a73f: LATIN SMALL LETTER REVERSED C WITH DOT*/ + 0xa741, /* U+00a740: LATIN CAPITAL LETTER K WITH STROKE*/ + 0xa741, /* U+00a741: LATIN SMALL LETTER K WITH STROKE*/ + 0xa743, /* U+00a742: LATIN CAPITAL LETTER K WITH DIAGONAL STROKE*/ + 0xa743, /* U+00a743: LATIN SMALL LETTER K WITH DIAGONAL STROKE*/ + 0xa745, /* U+00a744: LATIN CAPITAL LETTER K WITH STROKE AND DIAGONAL STROKE*/ + 0xa745, /* U+00a745: LATIN SMALL LETTER K WITH STROKE AND DIAGONAL STROKE*/ + 0xa747, /* U+00a746: LATIN CAPITAL LETTER BROKEN L*/ + 0xa747, /* U+00a747: LATIN SMALL LETTER BROKEN L*/ + 0xa749, /* U+00a748: LATIN CAPITAL LETTER L WITH HIGH STROKE*/ + 0xa749, /* U+00a749: LATIN SMALL LETTER L WITH HIGH STROKE*/ + 0xa74b, /* U+00a74a: LATIN CAPITAL LETTER O WITH LONG STROKE OVERLAY*/ + 0xa74b, /* U+00a74b: LATIN SMALL LETTER O WITH LONG STROKE OVERLAY*/ + 0xa74d, /* U+00a74c: LATIN CAPITAL LETTER O WITH LOOP*/ + 0xa74d, /* U+00a74d: LATIN SMALL LETTER O WITH LOOP*/ + 0xa74f, /* U+00a74e: LATIN CAPITAL LETTER OO*/ + 0xa74f, /* U+00a74f: LATIN SMALL LETTER OO*/ + 0xa751, /* U+00a750: LATIN CAPITAL LETTER P WITH STROKE THROUGH DESCENDER*/ + 0xa751, /* U+00a751: LATIN SMALL LETTER P WITH STROKE THROUGH DESCENDER*/ + 0xa753, /* U+00a752: LATIN CAPITAL LETTER P WITH FLOURISH*/ + 0xa753, /* U+00a753: LATIN SMALL LETTER P WITH FLOURISH*/ + 0xa755, /* U+00a754: LATIN CAPITAL LETTER P WITH SQUIRREL TAIL*/ + 0xa755, /* U+00a755: LATIN SMALL LETTER P WITH SQUIRREL TAIL*/ + 0xa757, /* U+00a756: LATIN CAPITAL LETTER Q WITH STROKE THROUGH DESCENDER*/ + 0xa757, /* U+00a757: LATIN SMALL LETTER Q WITH STROKE THROUGH DESCENDER*/ + 0xa759, /* U+00a758: LATIN CAPITAL LETTER Q WITH DIAGONAL STROKE*/ + 0xa759, /* U+00a759: LATIN SMALL LETTER Q WITH DIAGONAL STROKE*/ + 0xa75b, /* U+00a75a: LATIN CAPITAL LETTER R ROTUNDA*/ + 0xa75b, /* U+00a75b: LATIN SMALL LETTER R ROTUNDA*/ + 0xa75d, /* U+00a75c: LATIN CAPITAL LETTER RUM ROTUNDA*/ + 0xa75d, /* U+00a75d: LATIN SMALL LETTER RUM ROTUNDA*/ + 0xa75f, /* U+00a75e: LATIN CAPITAL LETTER V WITH DIAGONAL STROKE*/ + 0xa75f, /* U+00a75f: LATIN SMALL LETTER V WITH DIAGONAL STROKE*/ + 0xa761, /* U+00a760: LATIN CAPITAL LETTER VY*/ + 0xa761, /* U+00a761: LATIN SMALL LETTER VY*/ + 0xa763, /* U+00a762: LATIN CAPITAL LETTER VISIGOTHIC Z*/ + 0xa763, /* U+00a763: LATIN SMALL LETTER VISIGOTHIC Z*/ + 0xa765, /* U+00a764: LATIN CAPITAL LETTER THORN WITH STROKE*/ + 0xa765, /* U+00a765: LATIN SMALL LETTER THORN WITH STROKE*/ + 0xa767, /* U+00a766: LATIN CAPITAL LETTER THORN WITH STROKE THROUGH DESCENDER*/ + 0xa767, /* U+00a767: LATIN SMALL LETTER THORN WITH STROKE THROUGH DESCENDER*/ + 0xa769, /* U+00a768: LATIN CAPITAL LETTER VEND*/ + 0xa769, /* U+00a769: LATIN SMALL LETTER VEND*/ + 0xa76b, /* U+00a76a: LATIN CAPITAL LETTER ET*/ + 0xa76b, /* U+00a76b: LATIN SMALL LETTER ET*/ + 0xa76d, /* U+00a76c: LATIN CAPITAL LETTER IS*/ + 0xa76d, /* U+00a76d: LATIN SMALL LETTER IS*/ + 0xa76f, /* U+00a76e: LATIN CAPITAL LETTER CON*/ + 0xa76f, /* U+00a76f: LATIN SMALL LETTER CON*/ + 0xa770, /* U+00a770: MODIFIER LETTER US*/ + 0xa771, /* U+00a771: LATIN SMALL LETTER DUM*/ + 0xa772, /* U+00a772: LATIN SMALL LETTER LUM*/ + 0xa773, /* U+00a773: LATIN SMALL LETTER MUM*/ + 0xa774, /* U+00a774: LATIN SMALL LETTER NUM*/ + 0xa775, /* U+00a775: LATIN SMALL LETTER RUM*/ + 0xa776, /* U+00a776: LATIN LETTER SMALL CAPITAL RUM*/ + 0xa777, /* U+00a777: LATIN SMALL LETTER TUM*/ + 0xa778, /* U+00a778: LATIN SMALL LETTER UM*/ + 0xa77a, /* U+00a779: LATIN CAPITAL LETTER INSULAR D*/ + 0xa77a, /* U+00a77a: LATIN SMALL LETTER INSULAR D*/ + 0xa77c, /* U+00a77b: LATIN CAPITAL LETTER INSULAR F*/ + 0xa77c, /* U+00a77c: LATIN SMALL LETTER INSULAR F*/ + 0x1d79, /* U+00a77d: LATIN CAPITAL LETTER INSULAR G*/ + 0xa77f, /* U+00a77e: LATIN CAPITAL LETTER TURNED INSULAR G*/ + 0xa77f, /* U+00a77f: LATIN SMALL LETTER TURNED INSULAR G*/ + 0xa781, /* U+00a780: LATIN CAPITAL LETTER TURNED L*/ + 0xa781, /* U+00a781: LATIN SMALL LETTER TURNED L*/ + 0xa783, /* U+00a782: LATIN CAPITAL LETTER INSULAR R*/ + 0xa783, /* U+00a783: LATIN SMALL LETTER INSULAR R*/ + 0xa785, /* U+00a784: LATIN CAPITAL LETTER INSULAR S*/ + 0xa785, /* U+00a785: LATIN SMALL LETTER INSULAR S*/ + 0xa787, /* U+00a786: LATIN CAPITAL LETTER INSULAR T*/ + 0xa787, /* U+00a787: LATIN SMALL LETTER INSULAR T*/ + 0xa788, /* U+00a788: MODIFIER LETTER LOW CIRCUMFLEX ACCENT*/ + 0xa789, /* U+00a789: MODIFIER LETTER COLON*/ + 0xa78a, /* U+00a78a: MODIFIER LETTER SHORT EQUALS SIGN*/ + 0xa78c, /* U+00a78b: LATIN CAPITAL LETTER SALTILLO*/ + 0xa78c, /* U+00a78c: LATIN SMALL LETTER SALTILLO*/ + 0x265, /* U+00a78d: LATIN CAPITAL LETTER TURNED H*/ + 0xa78e, /* U+00a78e: LATIN SMALL LETTER L WITH RETROFLEX HOOK AND BELT*/ + 0xa78f, /* U+00a78f: */ + 0xa791, /* U+00a790: LATIN CAPITAL LETTER N WITH DESCENDER*/ + 0xa791, /* U+00a791: LATIN SMALL LETTER N WITH DESCENDER*/ + 0xa793, /* U+00a792: LATIN CAPITAL LETTER C WITH BAR*/ + 0xa793, /* U+00a793: LATIN SMALL LETTER C WITH BAR*/ + 0xa794, /* U+00a794: */ + 0xa795, /* U+00a795: */ + 0xa796, /* U+00a796: */ + 0xa797, /* U+00a797: */ + 0xa798, /* U+00a798: */ + 0xa799, /* U+00a799: */ + 0xa79a, /* U+00a79a: */ + 0xa79b, /* U+00a79b: */ + 0xa79c, /* U+00a79c: */ + 0xa79d, /* U+00a79d: */ + 0xa79e, /* U+00a79e: */ + 0xa79f, /* U+00a79f: */ + 0xa7a1, /* U+00a7a0: LATIN CAPITAL LETTER G WITH OBLIQUE STROKE*/ + 0xa7a1, /* U+00a7a1: LATIN SMALL LETTER G WITH OBLIQUE STROKE*/ + 0xa7a3, /* U+00a7a2: LATIN CAPITAL LETTER K WITH OBLIQUE STROKE*/ + 0xa7a3, /* U+00a7a3: LATIN SMALL LETTER K WITH OBLIQUE STROKE*/ + 0xa7a5, /* U+00a7a4: LATIN CAPITAL LETTER N WITH OBLIQUE STROKE*/ + 0xa7a5, /* U+00a7a5: LATIN SMALL LETTER N WITH OBLIQUE STROKE*/ + 0xa7a7, /* U+00a7a6: LATIN CAPITAL LETTER R WITH OBLIQUE STROKE*/ + 0xa7a7, /* U+00a7a7: LATIN SMALL LETTER R WITH OBLIQUE STROKE*/ + 0xa7a9, /* U+00a7a8: LATIN CAPITAL LETTER S WITH OBLIQUE STROKE*/ + 0xa7a9, /* U+00a7a9: LATIN SMALL LETTER S WITH OBLIQUE STROKE*/ + 0x266, /* U+00a7aa: LATIN CAPITAL LETTER H WITH HOOK*/ +}; + +static const RTUNICP g_afRTUniLower0x00ff21[] = +{ + 0xff41, /* U+00ff21: FULLWIDTH LATIN CAPITAL LETTER A*/ + 0xff42, /* U+00ff22: FULLWIDTH LATIN CAPITAL LETTER B*/ + 0xff43, /* U+00ff23: FULLWIDTH LATIN CAPITAL LETTER C*/ + 0xff44, /* U+00ff24: FULLWIDTH LATIN CAPITAL LETTER D*/ + 0xff45, /* U+00ff25: FULLWIDTH LATIN CAPITAL LETTER E*/ + 0xff46, /* U+00ff26: FULLWIDTH LATIN CAPITAL LETTER F*/ + 0xff47, /* U+00ff27: FULLWIDTH LATIN CAPITAL LETTER G*/ + 0xff48, /* U+00ff28: FULLWIDTH LATIN CAPITAL LETTER H*/ + 0xff49, /* U+00ff29: FULLWIDTH LATIN CAPITAL LETTER I*/ + 0xff4a, /* U+00ff2a: FULLWIDTH LATIN CAPITAL LETTER J*/ + 0xff4b, /* U+00ff2b: FULLWIDTH LATIN CAPITAL LETTER K*/ + 0xff4c, /* U+00ff2c: FULLWIDTH LATIN CAPITAL LETTER L*/ + 0xff4d, /* U+00ff2d: FULLWIDTH LATIN CAPITAL LETTER M*/ + 0xff4e, /* U+00ff2e: FULLWIDTH LATIN CAPITAL LETTER N*/ + 0xff4f, /* U+00ff2f: FULLWIDTH LATIN CAPITAL LETTER O*/ + 0xff50, /* U+00ff30: FULLWIDTH LATIN CAPITAL LETTER P*/ + 0xff51, /* U+00ff31: FULLWIDTH LATIN CAPITAL LETTER Q*/ + 0xff52, /* U+00ff32: FULLWIDTH LATIN CAPITAL LETTER R*/ + 0xff53, /* U+00ff33: FULLWIDTH LATIN CAPITAL LETTER S*/ + 0xff54, /* U+00ff34: FULLWIDTH LATIN CAPITAL LETTER T*/ + 0xff55, /* U+00ff35: FULLWIDTH LATIN CAPITAL LETTER U*/ + 0xff56, /* U+00ff36: FULLWIDTH LATIN CAPITAL LETTER V*/ + 0xff57, /* U+00ff37: FULLWIDTH LATIN CAPITAL LETTER W*/ + 0xff58, /* U+00ff38: FULLWIDTH LATIN CAPITAL LETTER X*/ + 0xff59, /* U+00ff39: FULLWIDTH LATIN CAPITAL LETTER Y*/ + 0xff5a, /* U+00ff3a: FULLWIDTH LATIN CAPITAL LETTER Z*/ +}; + +static const RTUNICP g_afRTUniLower0x010400[] = +{ + 0x10428, /* U+010400: DESERET CAPITAL LETTER LONG I*/ + 0x10429, /* U+010401: DESERET CAPITAL LETTER LONG E*/ + 0x1042a, /* U+010402: DESERET CAPITAL LETTER LONG A*/ + 0x1042b, /* U+010403: DESERET CAPITAL LETTER LONG AH*/ + 0x1042c, /* U+010404: DESERET CAPITAL LETTER LONG O*/ + 0x1042d, /* U+010405: DESERET CAPITAL LETTER LONG OO*/ + 0x1042e, /* U+010406: DESERET CAPITAL LETTER SHORT I*/ + 0x1042f, /* U+010407: DESERET CAPITAL LETTER SHORT E*/ + 0x10430, /* U+010408: DESERET CAPITAL LETTER SHORT A*/ + 0x10431, /* U+010409: DESERET CAPITAL LETTER SHORT AH*/ + 0x10432, /* U+01040a: DESERET CAPITAL LETTER SHORT O*/ + 0x10433, /* U+01040b: DESERET CAPITAL LETTER SHORT OO*/ + 0x10434, /* U+01040c: DESERET CAPITAL LETTER AY*/ + 0x10435, /* U+01040d: DESERET CAPITAL LETTER OW*/ + 0x10436, /* U+01040e: DESERET CAPITAL LETTER WU*/ + 0x10437, /* U+01040f: DESERET CAPITAL LETTER YEE*/ + 0x10438, /* U+010410: DESERET CAPITAL LETTER H*/ + 0x10439, /* U+010411: DESERET CAPITAL LETTER PEE*/ + 0x1043a, /* U+010412: DESERET CAPITAL LETTER BEE*/ + 0x1043b, /* U+010413: DESERET CAPITAL LETTER TEE*/ + 0x1043c, /* U+010414: DESERET CAPITAL LETTER DEE*/ + 0x1043d, /* U+010415: DESERET CAPITAL LETTER CHEE*/ + 0x1043e, /* U+010416: DESERET CAPITAL LETTER JEE*/ + 0x1043f, /* U+010417: DESERET CAPITAL LETTER KAY*/ + 0x10440, /* U+010418: DESERET CAPITAL LETTER GAY*/ + 0x10441, /* U+010419: DESERET CAPITAL LETTER EF*/ + 0x10442, /* U+01041a: DESERET CAPITAL LETTER VEE*/ + 0x10443, /* U+01041b: DESERET CAPITAL LETTER ETH*/ + 0x10444, /* U+01041c: DESERET CAPITAL LETTER THEE*/ + 0x10445, /* U+01041d: DESERET CAPITAL LETTER ES*/ + 0x10446, /* U+01041e: DESERET CAPITAL LETTER ZEE*/ + 0x10447, /* U+01041f: DESERET CAPITAL LETTER ESH*/ + 0x10448, /* U+010420: DESERET CAPITAL LETTER ZHEE*/ + 0x10449, /* U+010421: DESERET CAPITAL LETTER ER*/ + 0x1044a, /* U+010422: DESERET CAPITAL LETTER EL*/ + 0x1044b, /* U+010423: DESERET CAPITAL LETTER EM*/ + 0x1044c, /* U+010424: DESERET CAPITAL LETTER EN*/ + 0x1044d, /* U+010425: DESERET CAPITAL LETTER ENG*/ + 0x1044e, /* U+010426: DESERET CAPITAL LETTER OI*/ + 0x1044f, /* U+010427: DESERET CAPITAL LETTER EW*/ +}; + + +RT_DECL_DATA_CONST(const RTUNICASERANGE) g_aRTUniLowerRanges[] = +{ + { 0x000000, 0x000557, &g_afRTUniLower0x000000[0] }, + { 0x0010a0, 0x0010ce, &g_afRTUniLower0x0010a0[0] }, + { 0x001e00, 0x0024d0, &g_afRTUniLower0x001e00[0] }, + { 0x002c00, 0x002cf3, &g_afRTUniLower0x002c00[0] }, + { 0x00a640, 0x00a7ab, &g_afRTUniLower0x00a640[0] }, + { 0x00ff21, 0x00ff3b, &g_afRTUniLower0x00ff21[0] }, + { 0x010400, 0x010428, &g_afRTUniLower0x010400[0] }, + { ~(RTUNICP)0, ~(RTUNICP)0, NULL } +}; + + diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Runtime/common/string/unidata-upper.cpp virtualbox-4.1.44-dfsg/src/VBox/Runtime/common/string/unidata-upper.cpp --- virtualbox-4.1.12-dfsg/src/VBox/Runtime/common/string/unidata-upper.cpp 1970-01-01 00:00:00.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Runtime/common/string/unidata-upper.cpp 2015-11-11 15:09:04.000000000 +0000 @@ -0,0 +1,4069 @@ +/* $Id: unidata-upper.cpp $ */ +/** @file + * IPRT - Unicode Tables. + * + * Automatically Generated from d:\src\unicode\6.3.0\ + * by ..\..\..\..\..\out\win.amd64\debug\obj\uniread\uniread.exe (May 22 2014 19:07:40) + */ + +/* + * Copyright (C) 2006-2014 Oracle Corporation + * + * This file is part of VirtualBox Open Source Edition (OSE), as + * available from http://www.virtualbox.org. This file is free software; + * you can redistribute it and/or modify it under the terms of the GNU + * General Public License (GPL) as published by the Free Software + * Foundation, in version 2 as it comes in the "COPYING" file of the + * VirtualBox OSE distribution. VirtualBox OSE is distributed in the + * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind. + * + * The contents of this file may alternatively be used under the terms + * of the Common Development and Distribution License Version 1.0 + * (CDDL) only, as it comes in the "COPYING.CDDL" file of the + * VirtualBox OSE distribution, in which case the provisions of the + * CDDL are applicable instead of those of the GPL. + * + * You may elect to license modified versions of this file under the + * terms and conditions of either the GPL or the CDDL or both. + */ + +#include + +static const RTUNICP g_afRTUniUpper0x000000[] = +{ + 0x00, /* U+000000: */ + 0x01, /* U+000001: */ + 0x02, /* U+000002: */ + 0x03, /* U+000003: */ + 0x04, /* U+000004: */ + 0x05, /* U+000005: */ + 0x06, /* U+000006: */ + 0x07, /* U+000007: */ + 0x08, /* U+000008: */ + 0x09, /* U+000009: */ + 0x0a, /* U+00000a: */ + 0x0b, /* U+00000b: */ + 0x0c, /* U+00000c: */ + 0x0d, /* U+00000d: */ + 0x0e, /* U+00000e: */ + 0x0f, /* U+00000f: */ + 0x10, /* U+000010: */ + 0x11, /* U+000011: */ + 0x12, /* U+000012: */ + 0x13, /* U+000013: */ + 0x14, /* U+000014: */ + 0x15, /* U+000015: */ + 0x16, /* U+000016: */ + 0x17, /* U+000017: */ + 0x18, /* U+000018: */ + 0x19, /* U+000019: */ + 0x1a, /* U+00001a: */ + 0x1b, /* U+00001b: */ + 0x1c, /* U+00001c: */ + 0x1d, /* U+00001d: */ + 0x1e, /* U+00001e: */ + 0x1f, /* U+00001f: */ + 0x20, /* U+000020: SPACE*/ + 0x21, /* U+000021: EXCLAMATION MARK*/ + 0x22, /* U+000022: QUOTATION MARK*/ + 0x23, /* U+000023: NUMBER SIGN*/ + 0x24, /* U+000024: DOLLAR SIGN*/ + 0x25, /* U+000025: PERCENT SIGN*/ + 0x26, /* U+000026: AMPERSAND*/ + 0x27, /* U+000027: APOSTROPHE*/ + 0x28, /* U+000028: LEFT PARENTHESIS*/ + 0x29, /* U+000029: RIGHT PARENTHESIS*/ + 0x2a, /* U+00002a: ASTERISK*/ + 0x2b, /* U+00002b: PLUS SIGN*/ + 0x2c, /* U+00002c: COMMA*/ + 0x2d, /* U+00002d: HYPHEN-MINUS*/ + 0x2e, /* U+00002e: FULL STOP*/ + 0x2f, /* U+00002f: SOLIDUS*/ + 0x30, /* U+000030: DIGIT ZERO*/ + 0x31, /* U+000031: DIGIT ONE*/ + 0x32, /* U+000032: DIGIT TWO*/ + 0x33, /* U+000033: DIGIT THREE*/ + 0x34, /* U+000034: DIGIT FOUR*/ + 0x35, /* U+000035: DIGIT FIVE*/ + 0x36, /* U+000036: DIGIT SIX*/ + 0x37, /* U+000037: DIGIT SEVEN*/ + 0x38, /* U+000038: DIGIT EIGHT*/ + 0x39, /* U+000039: DIGIT NINE*/ + 0x3a, /* U+00003a: COLON*/ + 0x3b, /* U+00003b: SEMICOLON*/ + 0x3c, /* U+00003c: LESS-THAN SIGN*/ + 0x3d, /* U+00003d: EQUALS SIGN*/ + 0x3e, /* U+00003e: GREATER-THAN SIGN*/ + 0x3f, /* U+00003f: QUESTION MARK*/ + 0x40, /* U+000040: COMMERCIAL AT*/ + 0x41, /* U+000041: LATIN CAPITAL LETTER A*/ + 0x42, /* U+000042: LATIN CAPITAL LETTER B*/ + 0x43, /* U+000043: LATIN CAPITAL LETTER C*/ + 0x44, /* U+000044: LATIN CAPITAL LETTER D*/ + 0x45, /* U+000045: LATIN CAPITAL LETTER E*/ + 0x46, /* U+000046: LATIN CAPITAL LETTER F*/ + 0x47, /* U+000047: LATIN CAPITAL LETTER G*/ + 0x48, /* U+000048: LATIN CAPITAL LETTER H*/ + 0x49, /* U+000049: LATIN CAPITAL LETTER I*/ + 0x4a, /* U+00004a: LATIN CAPITAL LETTER J*/ + 0x4b, /* U+00004b: LATIN CAPITAL LETTER K*/ + 0x4c, /* U+00004c: LATIN CAPITAL LETTER L*/ + 0x4d, /* U+00004d: LATIN CAPITAL LETTER M*/ + 0x4e, /* U+00004e: LATIN CAPITAL LETTER N*/ + 0x4f, /* U+00004f: LATIN CAPITAL LETTER O*/ + 0x50, /* U+000050: LATIN CAPITAL LETTER P*/ + 0x51, /* U+000051: LATIN CAPITAL LETTER Q*/ + 0x52, /* U+000052: LATIN CAPITAL LETTER R*/ + 0x53, /* U+000053: LATIN CAPITAL LETTER S*/ + 0x54, /* U+000054: LATIN CAPITAL LETTER T*/ + 0x55, /* U+000055: LATIN CAPITAL LETTER U*/ + 0x56, /* U+000056: LATIN CAPITAL LETTER V*/ + 0x57, /* U+000057: LATIN CAPITAL LETTER W*/ + 0x58, /* U+000058: LATIN CAPITAL LETTER X*/ + 0x59, /* U+000059: LATIN CAPITAL LETTER Y*/ + 0x5a, /* U+00005a: LATIN CAPITAL LETTER Z*/ + 0x5b, /* U+00005b: LEFT SQUARE BRACKET*/ + 0x5c, /* U+00005c: REVERSE SOLIDUS*/ + 0x5d, /* U+00005d: RIGHT SQUARE BRACKET*/ + 0x5e, /* U+00005e: CIRCUMFLEX ACCENT*/ + 0x5f, /* U+00005f: LOW LINE*/ + 0x60, /* U+000060: GRAVE ACCENT*/ + 0x41, /* U+000061: LATIN SMALL LETTER A*/ + 0x42, /* U+000062: LATIN SMALL LETTER B*/ + 0x43, /* U+000063: LATIN SMALL LETTER C*/ + 0x44, /* U+000064: LATIN SMALL LETTER D*/ + 0x45, /* U+000065: LATIN SMALL LETTER E*/ + 0x46, /* U+000066: LATIN SMALL LETTER F*/ + 0x47, /* U+000067: LATIN SMALL LETTER G*/ + 0x48, /* U+000068: LATIN SMALL LETTER H*/ + 0x49, /* U+000069: LATIN SMALL LETTER I*/ + 0x4a, /* U+00006a: LATIN SMALL LETTER J*/ + 0x4b, /* U+00006b: LATIN SMALL LETTER K*/ + 0x4c, /* U+00006c: LATIN SMALL LETTER L*/ + 0x4d, /* U+00006d: LATIN SMALL LETTER M*/ + 0x4e, /* U+00006e: LATIN SMALL LETTER N*/ + 0x4f, /* U+00006f: LATIN SMALL LETTER O*/ + 0x50, /* U+000070: LATIN SMALL LETTER P*/ + 0x51, /* U+000071: LATIN SMALL LETTER Q*/ + 0x52, /* U+000072: LATIN SMALL LETTER R*/ + 0x53, /* U+000073: LATIN SMALL LETTER S*/ + 0x54, /* U+000074: LATIN SMALL LETTER T*/ + 0x55, /* U+000075: LATIN SMALL LETTER U*/ + 0x56, /* U+000076: LATIN SMALL LETTER V*/ + 0x57, /* U+000077: LATIN SMALL LETTER W*/ + 0x58, /* U+000078: LATIN SMALL LETTER X*/ + 0x59, /* U+000079: LATIN SMALL LETTER Y*/ + 0x5a, /* U+00007a: LATIN SMALL LETTER Z*/ + 0x7b, /* U+00007b: LEFT CURLY BRACKET*/ + 0x7c, /* U+00007c: VERTICAL LINE*/ + 0x7d, /* U+00007d: RIGHT CURLY BRACKET*/ + 0x7e, /* U+00007e: TILDE*/ + 0x7f, /* U+00007f: */ + 0x80, /* U+000080: */ + 0x81, /* U+000081: */ + 0x82, /* U+000082: */ + 0x83, /* U+000083: */ + 0x84, /* U+000084: */ + 0x85, /* U+000085: */ + 0x86, /* U+000086: */ + 0x87, /* U+000087: */ + 0x88, /* U+000088: */ + 0x89, /* U+000089: */ + 0x8a, /* U+00008a: */ + 0x8b, /* U+00008b: */ + 0x8c, /* U+00008c: */ + 0x8d, /* U+00008d: */ + 0x8e, /* U+00008e: */ + 0x8f, /* U+00008f: */ + 0x90, /* U+000090: */ + 0x91, /* U+000091: */ + 0x92, /* U+000092: */ + 0x93, /* U+000093: */ + 0x94, /* U+000094: */ + 0x95, /* U+000095: */ + 0x96, /* U+000096: */ + 0x97, /* U+000097: */ + 0x98, /* U+000098: */ + 0x99, /* U+000099: */ + 0x9a, /* U+00009a: */ + 0x9b, /* U+00009b: */ + 0x9c, /* U+00009c: */ + 0x9d, /* U+00009d: */ + 0x9e, /* U+00009e: */ + 0x9f, /* U+00009f: */ + 0xa0, /* U+0000a0: NO-BREAK SPACE*/ + 0xa1, /* U+0000a1: INVERTED EXCLAMATION MARK*/ + 0xa2, /* U+0000a2: CENT SIGN*/ + 0xa3, /* U+0000a3: POUND SIGN*/ + 0xa4, /* U+0000a4: CURRENCY SIGN*/ + 0xa5, /* U+0000a5: YEN SIGN*/ + 0xa6, /* U+0000a6: BROKEN BAR*/ + 0xa7, /* U+0000a7: SECTION SIGN*/ + 0xa8, /* U+0000a8: DIAERESIS*/ + 0xa9, /* U+0000a9: COPYRIGHT SIGN*/ + 0xaa, /* U+0000aa: FEMININE ORDINAL INDICATOR*/ + 0xab, /* U+0000ab: LEFT-POINTING DOUBLE ANGLE QUOTATION MARK*/ + 0xac, /* U+0000ac: NOT SIGN*/ + 0xad, /* U+0000ad: SOFT HYPHEN*/ + 0xae, /* U+0000ae: REGISTERED SIGN*/ + 0xaf, /* U+0000af: MACRON*/ + 0xb0, /* U+0000b0: DEGREE SIGN*/ + 0xb1, /* U+0000b1: PLUS-MINUS SIGN*/ + 0xb2, /* U+0000b2: SUPERSCRIPT TWO*/ + 0xb3, /* U+0000b3: SUPERSCRIPT THREE*/ + 0xb4, /* U+0000b4: ACUTE ACCENT*/ + 0x39c, /* U+0000b5: MICRO SIGN*/ + 0xb6, /* U+0000b6: PILCROW SIGN*/ + 0xb7, /* U+0000b7: MIDDLE DOT*/ + 0xb8, /* U+0000b8: CEDILLA*/ + 0xb9, /* U+0000b9: SUPERSCRIPT ONE*/ + 0xba, /* U+0000ba: MASCULINE ORDINAL INDICATOR*/ + 0xbb, /* U+0000bb: RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK*/ + 0xbc, /* U+0000bc: VULGAR FRACTION ONE QUARTER*/ + 0xbd, /* U+0000bd: VULGAR FRACTION ONE HALF*/ + 0xbe, /* U+0000be: VULGAR FRACTION THREE QUARTERS*/ + 0xbf, /* U+0000bf: INVERTED QUESTION MARK*/ + 0xc0, /* U+0000c0: LATIN CAPITAL LETTER A WITH GRAVE*/ + 0xc1, /* U+0000c1: LATIN CAPITAL LETTER A WITH ACUTE*/ + 0xc2, /* U+0000c2: LATIN CAPITAL LETTER A WITH CIRCUMFLEX*/ + 0xc3, /* U+0000c3: LATIN CAPITAL LETTER A WITH TILDE*/ + 0xc4, /* U+0000c4: LATIN CAPITAL LETTER A WITH DIAERESIS*/ + 0xc5, /* U+0000c5: LATIN CAPITAL LETTER A WITH RING ABOVE*/ + 0xc6, /* U+0000c6: LATIN CAPITAL LETTER AE*/ + 0xc7, /* U+0000c7: LATIN CAPITAL LETTER C WITH CEDILLA*/ + 0xc8, /* U+0000c8: LATIN CAPITAL LETTER E WITH GRAVE*/ + 0xc9, /* U+0000c9: LATIN CAPITAL LETTER E WITH ACUTE*/ + 0xca, /* U+0000ca: LATIN CAPITAL LETTER E WITH CIRCUMFLEX*/ + 0xcb, /* U+0000cb: LATIN CAPITAL LETTER E WITH DIAERESIS*/ + 0xcc, /* U+0000cc: LATIN CAPITAL LETTER I WITH GRAVE*/ + 0xcd, /* U+0000cd: LATIN CAPITAL LETTER I WITH ACUTE*/ + 0xce, /* U+0000ce: LATIN CAPITAL LETTER I WITH CIRCUMFLEX*/ + 0xcf, /* U+0000cf: LATIN CAPITAL LETTER I WITH DIAERESIS*/ + 0xd0, /* U+0000d0: LATIN CAPITAL LETTER ETH*/ + 0xd1, /* U+0000d1: LATIN CAPITAL LETTER N WITH TILDE*/ + 0xd2, /* U+0000d2: LATIN CAPITAL LETTER O WITH GRAVE*/ + 0xd3, /* U+0000d3: LATIN CAPITAL LETTER O WITH ACUTE*/ + 0xd4, /* U+0000d4: LATIN CAPITAL LETTER O WITH CIRCUMFLEX*/ + 0xd5, /* U+0000d5: LATIN CAPITAL LETTER O WITH TILDE*/ + 0xd6, /* U+0000d6: LATIN CAPITAL LETTER O WITH DIAERESIS*/ + 0xd7, /* U+0000d7: MULTIPLICATION SIGN*/ + 0xd8, /* U+0000d8: LATIN CAPITAL LETTER O WITH STROKE*/ + 0xd9, /* U+0000d9: LATIN CAPITAL LETTER U WITH GRAVE*/ + 0xda, /* U+0000da: LATIN CAPITAL LETTER U WITH ACUTE*/ + 0xdb, /* U+0000db: LATIN CAPITAL LETTER U WITH CIRCUMFLEX*/ + 0xdc, /* U+0000dc: LATIN CAPITAL LETTER U WITH DIAERESIS*/ + 0xdd, /* U+0000dd: LATIN CAPITAL LETTER Y WITH ACUTE*/ + 0xde, /* U+0000de: LATIN CAPITAL LETTER THORN*/ + 0xdf, /* U+0000df: LATIN SMALL LETTER SHARP S*/ + 0xc0, /* U+0000e0: LATIN SMALL LETTER A WITH GRAVE*/ + 0xc1, /* U+0000e1: LATIN SMALL LETTER A WITH ACUTE*/ + 0xc2, /* U+0000e2: LATIN SMALL LETTER A WITH CIRCUMFLEX*/ + 0xc3, /* U+0000e3: LATIN SMALL LETTER A WITH TILDE*/ + 0xc4, /* U+0000e4: LATIN SMALL LETTER A WITH DIAERESIS*/ + 0xc5, /* U+0000e5: LATIN SMALL LETTER A WITH RING ABOVE*/ + 0xc6, /* U+0000e6: LATIN SMALL LETTER AE*/ + 0xc7, /* U+0000e7: LATIN SMALL LETTER C WITH CEDILLA*/ + 0xc8, /* U+0000e8: LATIN SMALL LETTER E WITH GRAVE*/ + 0xc9, /* U+0000e9: LATIN SMALL LETTER E WITH ACUTE*/ + 0xca, /* U+0000ea: LATIN SMALL LETTER E WITH CIRCUMFLEX*/ + 0xcb, /* U+0000eb: LATIN SMALL LETTER E WITH DIAERESIS*/ + 0xcc, /* U+0000ec: LATIN SMALL LETTER I WITH GRAVE*/ + 0xcd, /* U+0000ed: LATIN SMALL LETTER I WITH ACUTE*/ + 0xce, /* U+0000ee: LATIN SMALL LETTER I WITH CIRCUMFLEX*/ + 0xcf, /* U+0000ef: LATIN SMALL LETTER I WITH DIAERESIS*/ + 0xd0, /* U+0000f0: LATIN SMALL LETTER ETH*/ + 0xd1, /* U+0000f1: LATIN SMALL LETTER N WITH TILDE*/ + 0xd2, /* U+0000f2: LATIN SMALL LETTER O WITH GRAVE*/ + 0xd3, /* U+0000f3: LATIN SMALL LETTER O WITH ACUTE*/ + 0xd4, /* U+0000f4: LATIN SMALL LETTER O WITH CIRCUMFLEX*/ + 0xd5, /* U+0000f5: LATIN SMALL LETTER O WITH TILDE*/ + 0xd6, /* U+0000f6: LATIN SMALL LETTER O WITH DIAERESIS*/ + 0xf7, /* U+0000f7: DIVISION SIGN*/ + 0xd8, /* U+0000f8: LATIN SMALL LETTER O WITH STROKE*/ + 0xd9, /* U+0000f9: LATIN SMALL LETTER U WITH GRAVE*/ + 0xda, /* U+0000fa: LATIN SMALL LETTER U WITH ACUTE*/ + 0xdb, /* U+0000fb: LATIN SMALL LETTER U WITH CIRCUMFLEX*/ + 0xdc, /* U+0000fc: LATIN SMALL LETTER U WITH DIAERESIS*/ + 0xdd, /* U+0000fd: LATIN SMALL LETTER Y WITH ACUTE*/ + 0xde, /* U+0000fe: LATIN SMALL LETTER THORN*/ + 0x178, /* U+0000ff: LATIN SMALL LETTER Y WITH DIAERESIS*/ + 0x100, /* U+000100: LATIN CAPITAL LETTER A WITH MACRON*/ + 0x100, /* U+000101: LATIN SMALL LETTER A WITH MACRON*/ + 0x102, /* U+000102: LATIN CAPITAL LETTER A WITH BREVE*/ + 0x102, /* U+000103: LATIN SMALL LETTER A WITH BREVE*/ + 0x104, /* U+000104: LATIN CAPITAL LETTER A WITH OGONEK*/ + 0x104, /* U+000105: LATIN SMALL LETTER A WITH OGONEK*/ + 0x106, /* U+000106: LATIN CAPITAL LETTER C WITH ACUTE*/ + 0x106, /* U+000107: LATIN SMALL LETTER C WITH ACUTE*/ + 0x108, /* U+000108: LATIN CAPITAL LETTER C WITH CIRCUMFLEX*/ + 0x108, /* U+000109: LATIN SMALL LETTER C WITH CIRCUMFLEX*/ + 0x10a, /* U+00010a: LATIN CAPITAL LETTER C WITH DOT ABOVE*/ + 0x10a, /* U+00010b: LATIN SMALL LETTER C WITH DOT ABOVE*/ + 0x10c, /* U+00010c: LATIN CAPITAL LETTER C WITH CARON*/ + 0x10c, /* U+00010d: LATIN SMALL LETTER C WITH CARON*/ + 0x10e, /* U+00010e: LATIN CAPITAL LETTER D WITH CARON*/ + 0x10e, /* U+00010f: LATIN SMALL LETTER D WITH CARON*/ + 0x110, /* U+000110: LATIN CAPITAL LETTER D WITH STROKE*/ + 0x110, /* U+000111: LATIN SMALL LETTER D WITH STROKE*/ + 0x112, /* U+000112: LATIN CAPITAL LETTER E WITH MACRON*/ + 0x112, /* U+000113: LATIN SMALL LETTER E WITH MACRON*/ + 0x114, /* U+000114: LATIN CAPITAL LETTER E WITH BREVE*/ + 0x114, /* U+000115: LATIN SMALL LETTER E WITH BREVE*/ + 0x116, /* U+000116: LATIN CAPITAL LETTER E WITH DOT ABOVE*/ + 0x116, /* U+000117: LATIN SMALL LETTER E WITH DOT ABOVE*/ + 0x118, /* U+000118: LATIN CAPITAL LETTER E WITH OGONEK*/ + 0x118, /* U+000119: LATIN SMALL LETTER E WITH OGONEK*/ + 0x11a, /* U+00011a: LATIN CAPITAL LETTER E WITH CARON*/ + 0x11a, /* U+00011b: LATIN SMALL LETTER E WITH CARON*/ + 0x11c, /* U+00011c: LATIN CAPITAL LETTER G WITH CIRCUMFLEX*/ + 0x11c, /* U+00011d: LATIN SMALL LETTER G WITH CIRCUMFLEX*/ + 0x11e, /* U+00011e: LATIN CAPITAL LETTER G WITH BREVE*/ + 0x11e, /* U+00011f: LATIN SMALL LETTER G WITH BREVE*/ + 0x120, /* U+000120: LATIN CAPITAL LETTER G WITH DOT ABOVE*/ + 0x120, /* U+000121: LATIN SMALL LETTER G WITH DOT ABOVE*/ + 0x122, /* U+000122: LATIN CAPITAL LETTER G WITH CEDILLA*/ + 0x122, /* U+000123: LATIN SMALL LETTER G WITH CEDILLA*/ + 0x124, /* U+000124: LATIN CAPITAL LETTER H WITH CIRCUMFLEX*/ + 0x124, /* U+000125: LATIN SMALL LETTER H WITH CIRCUMFLEX*/ + 0x126, /* U+000126: LATIN CAPITAL LETTER H WITH STROKE*/ + 0x126, /* U+000127: LATIN SMALL LETTER H WITH STROKE*/ + 0x128, /* U+000128: LATIN CAPITAL LETTER I WITH TILDE*/ + 0x128, /* U+000129: LATIN SMALL LETTER I WITH TILDE*/ + 0x12a, /* U+00012a: LATIN CAPITAL LETTER I WITH MACRON*/ + 0x12a, /* U+00012b: LATIN SMALL LETTER I WITH MACRON*/ + 0x12c, /* U+00012c: LATIN CAPITAL LETTER I WITH BREVE*/ + 0x12c, /* U+00012d: LATIN SMALL LETTER I WITH BREVE*/ + 0x12e, /* U+00012e: LATIN CAPITAL LETTER I WITH OGONEK*/ + 0x12e, /* U+00012f: LATIN SMALL LETTER I WITH OGONEK*/ + 0x130, /* U+000130: LATIN CAPITAL LETTER I WITH DOT ABOVE*/ + 0x49, /* U+000131: LATIN SMALL LETTER DOTLESS I*/ + 0x132, /* U+000132: LATIN CAPITAL LIGATURE IJ*/ + 0x132, /* U+000133: LATIN SMALL LIGATURE IJ*/ + 0x134, /* U+000134: LATIN CAPITAL LETTER J WITH CIRCUMFLEX*/ + 0x134, /* U+000135: LATIN SMALL LETTER J WITH CIRCUMFLEX*/ + 0x136, /* U+000136: LATIN CAPITAL LETTER K WITH CEDILLA*/ + 0x136, /* U+000137: LATIN SMALL LETTER K WITH CEDILLA*/ + 0x138, /* U+000138: LATIN SMALL LETTER KRA*/ + 0x139, /* U+000139: LATIN CAPITAL LETTER L WITH ACUTE*/ + 0x139, /* U+00013a: LATIN SMALL LETTER L WITH ACUTE*/ + 0x13b, /* U+00013b: LATIN CAPITAL LETTER L WITH CEDILLA*/ + 0x13b, /* U+00013c: LATIN SMALL LETTER L WITH CEDILLA*/ + 0x13d, /* U+00013d: LATIN CAPITAL LETTER L WITH CARON*/ + 0x13d, /* U+00013e: LATIN SMALL LETTER L WITH CARON*/ + 0x13f, /* U+00013f: LATIN CAPITAL LETTER L WITH MIDDLE DOT*/ + 0x13f, /* U+000140: LATIN SMALL LETTER L WITH MIDDLE DOT*/ + 0x141, /* U+000141: LATIN CAPITAL LETTER L WITH STROKE*/ + 0x141, /* U+000142: LATIN SMALL LETTER L WITH STROKE*/ + 0x143, /* U+000143: LATIN CAPITAL LETTER N WITH ACUTE*/ + 0x143, /* U+000144: LATIN SMALL LETTER N WITH ACUTE*/ + 0x145, /* U+000145: LATIN CAPITAL LETTER N WITH CEDILLA*/ + 0x145, /* U+000146: LATIN SMALL LETTER N WITH CEDILLA*/ + 0x147, /* U+000147: LATIN CAPITAL LETTER N WITH CARON*/ + 0x147, /* U+000148: LATIN SMALL LETTER N WITH CARON*/ + 0x149, /* U+000149: LATIN SMALL LETTER N PRECEDED BY APOSTROPHE*/ + 0x14a, /* U+00014a: LATIN CAPITAL LETTER ENG*/ + 0x14a, /* U+00014b: LATIN SMALL LETTER ENG*/ + 0x14c, /* U+00014c: LATIN CAPITAL LETTER O WITH MACRON*/ + 0x14c, /* U+00014d: LATIN SMALL LETTER O WITH MACRON*/ + 0x14e, /* U+00014e: LATIN CAPITAL LETTER O WITH BREVE*/ + 0x14e, /* U+00014f: LATIN SMALL LETTER O WITH BREVE*/ + 0x150, /* U+000150: LATIN CAPITAL LETTER O WITH DOUBLE ACUTE*/ + 0x150, /* U+000151: LATIN SMALL LETTER O WITH DOUBLE ACUTE*/ + 0x152, /* U+000152: LATIN CAPITAL LIGATURE OE*/ + 0x152, /* U+000153: LATIN SMALL LIGATURE OE*/ + 0x154, /* U+000154: LATIN CAPITAL LETTER R WITH ACUTE*/ + 0x154, /* U+000155: LATIN SMALL LETTER R WITH ACUTE*/ + 0x156, /* U+000156: LATIN CAPITAL LETTER R WITH CEDILLA*/ + 0x156, /* U+000157: LATIN SMALL LETTER R WITH CEDILLA*/ + 0x158, /* U+000158: LATIN CAPITAL LETTER R WITH CARON*/ + 0x158, /* U+000159: LATIN SMALL LETTER R WITH CARON*/ + 0x15a, /* U+00015a: LATIN CAPITAL LETTER S WITH ACUTE*/ + 0x15a, /* U+00015b: LATIN SMALL LETTER S WITH ACUTE*/ + 0x15c, /* U+00015c: LATIN CAPITAL LETTER S WITH CIRCUMFLEX*/ + 0x15c, /* U+00015d: LATIN SMALL LETTER S WITH CIRCUMFLEX*/ + 0x15e, /* U+00015e: LATIN CAPITAL LETTER S WITH CEDILLA*/ + 0x15e, /* U+00015f: LATIN SMALL LETTER S WITH CEDILLA*/ + 0x160, /* U+000160: LATIN CAPITAL LETTER S WITH CARON*/ + 0x160, /* U+000161: LATIN SMALL LETTER S WITH CARON*/ + 0x162, /* U+000162: LATIN CAPITAL LETTER T WITH CEDILLA*/ + 0x162, /* U+000163: LATIN SMALL LETTER T WITH CEDILLA*/ + 0x164, /* U+000164: LATIN CAPITAL LETTER T WITH CARON*/ + 0x164, /* U+000165: LATIN SMALL LETTER T WITH CARON*/ + 0x166, /* U+000166: LATIN CAPITAL LETTER T WITH STROKE*/ + 0x166, /* U+000167: LATIN SMALL LETTER T WITH STROKE*/ + 0x168, /* U+000168: LATIN CAPITAL LETTER U WITH TILDE*/ + 0x168, /* U+000169: LATIN SMALL LETTER U WITH TILDE*/ + 0x16a, /* U+00016a: LATIN CAPITAL LETTER U WITH MACRON*/ + 0x16a, /* U+00016b: LATIN SMALL LETTER U WITH MACRON*/ + 0x16c, /* U+00016c: LATIN CAPITAL LETTER U WITH BREVE*/ + 0x16c, /* U+00016d: LATIN SMALL LETTER U WITH BREVE*/ + 0x16e, /* U+00016e: LATIN CAPITAL LETTER U WITH RING ABOVE*/ + 0x16e, /* U+00016f: LATIN SMALL LETTER U WITH RING ABOVE*/ + 0x170, /* U+000170: LATIN CAPITAL LETTER U WITH DOUBLE ACUTE*/ + 0x170, /* U+000171: LATIN SMALL LETTER U WITH DOUBLE ACUTE*/ + 0x172, /* U+000172: LATIN CAPITAL LETTER U WITH OGONEK*/ + 0x172, /* U+000173: LATIN SMALL LETTER U WITH OGONEK*/ + 0x174, /* U+000174: LATIN CAPITAL LETTER W WITH CIRCUMFLEX*/ + 0x174, /* U+000175: LATIN SMALL LETTER W WITH CIRCUMFLEX*/ + 0x176, /* U+000176: LATIN CAPITAL LETTER Y WITH CIRCUMFLEX*/ + 0x176, /* U+000177: LATIN SMALL LETTER Y WITH CIRCUMFLEX*/ + 0x178, /* U+000178: LATIN CAPITAL LETTER Y WITH DIAERESIS*/ + 0x179, /* U+000179: LATIN CAPITAL LETTER Z WITH ACUTE*/ + 0x179, /* U+00017a: LATIN SMALL LETTER Z WITH ACUTE*/ + 0x17b, /* U+00017b: LATIN CAPITAL LETTER Z WITH DOT ABOVE*/ + 0x17b, /* U+00017c: LATIN SMALL LETTER Z WITH DOT ABOVE*/ + 0x17d, /* U+00017d: LATIN CAPITAL LETTER Z WITH CARON*/ + 0x17d, /* U+00017e: LATIN SMALL LETTER Z WITH CARON*/ + 0x53, /* U+00017f: LATIN SMALL LETTER LONG S*/ + 0x243, /* U+000180: LATIN SMALL LETTER B WITH STROKE*/ + 0x181, /* U+000181: LATIN CAPITAL LETTER B WITH HOOK*/ + 0x182, /* U+000182: LATIN CAPITAL LETTER B WITH TOPBAR*/ + 0x182, /* U+000183: LATIN SMALL LETTER B WITH TOPBAR*/ + 0x184, /* U+000184: LATIN CAPITAL LETTER TONE SIX*/ + 0x184, /* U+000185: LATIN SMALL LETTER TONE SIX*/ + 0x186, /* U+000186: LATIN CAPITAL LETTER OPEN O*/ + 0x187, /* U+000187: LATIN CAPITAL LETTER C WITH HOOK*/ + 0x187, /* U+000188: LATIN SMALL LETTER C WITH HOOK*/ + 0x189, /* U+000189: LATIN CAPITAL LETTER AFRICAN D*/ + 0x18a, /* U+00018a: LATIN CAPITAL LETTER D WITH HOOK*/ + 0x18b, /* U+00018b: LATIN CAPITAL LETTER D WITH TOPBAR*/ + 0x18b, /* U+00018c: LATIN SMALL LETTER D WITH TOPBAR*/ + 0x18d, /* U+00018d: LATIN SMALL LETTER TURNED DELTA*/ + 0x18e, /* U+00018e: LATIN CAPITAL LETTER REVERSED E*/ + 0x18f, /* U+00018f: LATIN CAPITAL LETTER SCHWA*/ + 0x190, /* U+000190: LATIN CAPITAL LETTER OPEN E*/ + 0x191, /* U+000191: LATIN CAPITAL LETTER F WITH HOOK*/ + 0x191, /* U+000192: LATIN SMALL LETTER F WITH HOOK*/ + 0x193, /* U+000193: LATIN CAPITAL LETTER G WITH HOOK*/ + 0x194, /* U+000194: LATIN CAPITAL LETTER GAMMA*/ + 0x1f6, /* U+000195: LATIN SMALL LETTER HV*/ + 0x196, /* U+000196: LATIN CAPITAL LETTER IOTA*/ + 0x197, /* U+000197: LATIN CAPITAL LETTER I WITH STROKE*/ + 0x198, /* U+000198: LATIN CAPITAL LETTER K WITH HOOK*/ + 0x198, /* U+000199: LATIN SMALL LETTER K WITH HOOK*/ + 0x23d, /* U+00019a: LATIN SMALL LETTER L WITH BAR*/ + 0x19b, /* U+00019b: LATIN SMALL LETTER LAMBDA WITH STROKE*/ + 0x19c, /* U+00019c: LATIN CAPITAL LETTER TURNED M*/ + 0x19d, /* U+00019d: LATIN CAPITAL LETTER N WITH LEFT HOOK*/ + 0x220, /* U+00019e: LATIN SMALL LETTER N WITH LONG RIGHT LEG*/ + 0x19f, /* U+00019f: LATIN CAPITAL LETTER O WITH MIDDLE TILDE*/ + 0x1a0, /* U+0001a0: LATIN CAPITAL LETTER O WITH HORN*/ + 0x1a0, /* U+0001a1: LATIN SMALL LETTER O WITH HORN*/ + 0x1a2, /* U+0001a2: LATIN CAPITAL LETTER OI*/ + 0x1a2, /* U+0001a3: LATIN SMALL LETTER OI*/ + 0x1a4, /* U+0001a4: LATIN CAPITAL LETTER P WITH HOOK*/ + 0x1a4, /* U+0001a5: LATIN SMALL LETTER P WITH HOOK*/ + 0x1a6, /* U+0001a6: LATIN LETTER YR*/ + 0x1a7, /* U+0001a7: LATIN CAPITAL LETTER TONE TWO*/ + 0x1a7, /* U+0001a8: LATIN SMALL LETTER TONE TWO*/ + 0x1a9, /* U+0001a9: LATIN CAPITAL LETTER ESH*/ + 0x1aa, /* U+0001aa: LATIN LETTER REVERSED ESH LOOP*/ + 0x1ab, /* U+0001ab: LATIN SMALL LETTER T WITH PALATAL HOOK*/ + 0x1ac, /* U+0001ac: LATIN CAPITAL LETTER T WITH HOOK*/ + 0x1ac, /* U+0001ad: LATIN SMALL LETTER T WITH HOOK*/ + 0x1ae, /* U+0001ae: LATIN CAPITAL LETTER T WITH RETROFLEX HOOK*/ + 0x1af, /* U+0001af: LATIN CAPITAL LETTER U WITH HORN*/ + 0x1af, /* U+0001b0: LATIN SMALL LETTER U WITH HORN*/ + 0x1b1, /* U+0001b1: LATIN CAPITAL LETTER UPSILON*/ + 0x1b2, /* U+0001b2: LATIN CAPITAL LETTER V WITH HOOK*/ + 0x1b3, /* U+0001b3: LATIN CAPITAL LETTER Y WITH HOOK*/ + 0x1b3, /* U+0001b4: LATIN SMALL LETTER Y WITH HOOK*/ + 0x1b5, /* U+0001b5: LATIN CAPITAL LETTER Z WITH STROKE*/ + 0x1b5, /* U+0001b6: LATIN SMALL LETTER Z WITH STROKE*/ + 0x1b7, /* U+0001b7: LATIN CAPITAL LETTER EZH*/ + 0x1b8, /* U+0001b8: LATIN CAPITAL LETTER EZH REVERSED*/ + 0x1b8, /* U+0001b9: LATIN SMALL LETTER EZH REVERSED*/ + 0x1ba, /* U+0001ba: LATIN SMALL LETTER EZH WITH TAIL*/ + 0x1bb, /* U+0001bb: LATIN LETTER TWO WITH STROKE*/ + 0x1bc, /* U+0001bc: LATIN CAPITAL LETTER TONE FIVE*/ + 0x1bc, /* U+0001bd: LATIN SMALL LETTER TONE FIVE*/ + 0x1be, /* U+0001be: LATIN LETTER INVERTED GLOTTAL STOP WITH STROKE*/ + 0x1f7, /* U+0001bf: LATIN LETTER WYNN*/ + 0x1c0, /* U+0001c0: LATIN LETTER DENTAL CLICK*/ + 0x1c1, /* U+0001c1: LATIN LETTER LATERAL CLICK*/ + 0x1c2, /* U+0001c2: LATIN LETTER ALVEOLAR CLICK*/ + 0x1c3, /* U+0001c3: LATIN LETTER RETROFLEX CLICK*/ + 0x1c4, /* U+0001c4: LATIN CAPITAL LETTER DZ WITH CARON*/ + 0x1c4, /* U+0001c5: LATIN CAPITAL LETTER D WITH SMALL LETTER Z WITH CARON*/ + 0x1c4, /* U+0001c6: LATIN SMALL LETTER DZ WITH CARON*/ + 0x1c7, /* U+0001c7: LATIN CAPITAL LETTER LJ*/ + 0x1c7, /* U+0001c8: LATIN CAPITAL LETTER L WITH SMALL LETTER J*/ + 0x1c7, /* U+0001c9: LATIN SMALL LETTER LJ*/ + 0x1ca, /* U+0001ca: LATIN CAPITAL LETTER NJ*/ + 0x1ca, /* U+0001cb: LATIN CAPITAL LETTER N WITH SMALL LETTER J*/ + 0x1ca, /* U+0001cc: LATIN SMALL LETTER NJ*/ + 0x1cd, /* U+0001cd: LATIN CAPITAL LETTER A WITH CARON*/ + 0x1cd, /* U+0001ce: LATIN SMALL LETTER A WITH CARON*/ + 0x1cf, /* U+0001cf: LATIN CAPITAL LETTER I WITH CARON*/ + 0x1cf, /* U+0001d0: LATIN SMALL LETTER I WITH CARON*/ + 0x1d1, /* U+0001d1: LATIN CAPITAL LETTER O WITH CARON*/ + 0x1d1, /* U+0001d2: LATIN SMALL LETTER O WITH CARON*/ + 0x1d3, /* U+0001d3: LATIN CAPITAL LETTER U WITH CARON*/ + 0x1d3, /* U+0001d4: LATIN SMALL LETTER U WITH CARON*/ + 0x1d5, /* U+0001d5: LATIN CAPITAL LETTER U WITH DIAERESIS AND MACRON*/ + 0x1d5, /* U+0001d6: LATIN SMALL LETTER U WITH DIAERESIS AND MACRON*/ + 0x1d7, /* U+0001d7: LATIN CAPITAL LETTER U WITH DIAERESIS AND ACUTE*/ + 0x1d7, /* U+0001d8: LATIN SMALL LETTER U WITH DIAERESIS AND ACUTE*/ + 0x1d9, /* U+0001d9: LATIN CAPITAL LETTER U WITH DIAERESIS AND CARON*/ + 0x1d9, /* U+0001da: LATIN SMALL LETTER U WITH DIAERESIS AND CARON*/ + 0x1db, /* U+0001db: LATIN CAPITAL LETTER U WITH DIAERESIS AND GRAVE*/ + 0x1db, /* U+0001dc: LATIN SMALL LETTER U WITH DIAERESIS AND GRAVE*/ + 0x18e, /* U+0001dd: LATIN SMALL LETTER TURNED E*/ + 0x1de, /* U+0001de: LATIN CAPITAL LETTER A WITH DIAERESIS AND MACRON*/ + 0x1de, /* U+0001df: LATIN SMALL LETTER A WITH DIAERESIS AND MACRON*/ + 0x1e0, /* U+0001e0: LATIN CAPITAL LETTER A WITH DOT ABOVE AND MACRON*/ + 0x1e0, /* U+0001e1: LATIN SMALL LETTER A WITH DOT ABOVE AND MACRON*/ + 0x1e2, /* U+0001e2: LATIN CAPITAL LETTER AE WITH MACRON*/ + 0x1e2, /* U+0001e3: LATIN SMALL LETTER AE WITH MACRON*/ + 0x1e4, /* U+0001e4: LATIN CAPITAL LETTER G WITH STROKE*/ + 0x1e4, /* U+0001e5: LATIN SMALL LETTER G WITH STROKE*/ + 0x1e6, /* U+0001e6: LATIN CAPITAL LETTER G WITH CARON*/ + 0x1e6, /* U+0001e7: LATIN SMALL LETTER G WITH CARON*/ + 0x1e8, /* U+0001e8: LATIN CAPITAL LETTER K WITH CARON*/ + 0x1e8, /* U+0001e9: LATIN SMALL LETTER K WITH CARON*/ + 0x1ea, /* U+0001ea: LATIN CAPITAL LETTER O WITH OGONEK*/ + 0x1ea, /* U+0001eb: LATIN SMALL LETTER O WITH OGONEK*/ + 0x1ec, /* U+0001ec: LATIN CAPITAL LETTER O WITH OGONEK AND MACRON*/ + 0x1ec, /* U+0001ed: LATIN SMALL LETTER O WITH OGONEK AND MACRON*/ + 0x1ee, /* U+0001ee: LATIN CAPITAL LETTER EZH WITH CARON*/ + 0x1ee, /* U+0001ef: LATIN SMALL LETTER EZH WITH CARON*/ + 0x1f0, /* U+0001f0: LATIN SMALL LETTER J WITH CARON*/ + 0x1f1, /* U+0001f1: LATIN CAPITAL LETTER DZ*/ + 0x1f1, /* U+0001f2: LATIN CAPITAL LETTER D WITH SMALL LETTER Z*/ + 0x1f1, /* U+0001f3: LATIN SMALL LETTER DZ*/ + 0x1f4, /* U+0001f4: LATIN CAPITAL LETTER G WITH ACUTE*/ + 0x1f4, /* U+0001f5: LATIN SMALL LETTER G WITH ACUTE*/ + 0x1f6, /* U+0001f6: LATIN CAPITAL LETTER HWAIR*/ + 0x1f7, /* U+0001f7: LATIN CAPITAL LETTER WYNN*/ + 0x1f8, /* U+0001f8: LATIN CAPITAL LETTER N WITH GRAVE*/ + 0x1f8, /* U+0001f9: LATIN SMALL LETTER N WITH GRAVE*/ + 0x1fa, /* U+0001fa: LATIN CAPITAL LETTER A WITH RING ABOVE AND ACUTE*/ + 0x1fa, /* U+0001fb: LATIN SMALL LETTER A WITH RING ABOVE AND ACUTE*/ + 0x1fc, /* U+0001fc: LATIN CAPITAL LETTER AE WITH ACUTE*/ + 0x1fc, /* U+0001fd: LATIN SMALL LETTER AE WITH ACUTE*/ + 0x1fe, /* U+0001fe: LATIN CAPITAL LETTER O WITH STROKE AND ACUTE*/ + 0x1fe, /* U+0001ff: LATIN SMALL LETTER O WITH STROKE AND ACUTE*/ + 0x200, /* U+000200: LATIN CAPITAL LETTER A WITH DOUBLE GRAVE*/ + 0x200, /* U+000201: LATIN SMALL LETTER A WITH DOUBLE GRAVE*/ + 0x202, /* U+000202: LATIN CAPITAL LETTER A WITH INVERTED BREVE*/ + 0x202, /* U+000203: LATIN SMALL LETTER A WITH INVERTED BREVE*/ + 0x204, /* U+000204: LATIN CAPITAL LETTER E WITH DOUBLE GRAVE*/ + 0x204, /* U+000205: LATIN SMALL LETTER E WITH DOUBLE GRAVE*/ + 0x206, /* U+000206: LATIN CAPITAL LETTER E WITH INVERTED BREVE*/ + 0x206, /* U+000207: LATIN SMALL LETTER E WITH INVERTED BREVE*/ + 0x208, /* U+000208: LATIN CAPITAL LETTER I WITH DOUBLE GRAVE*/ + 0x208, /* U+000209: LATIN SMALL LETTER I WITH DOUBLE GRAVE*/ + 0x20a, /* U+00020a: LATIN CAPITAL LETTER I WITH INVERTED BREVE*/ + 0x20a, /* U+00020b: LATIN SMALL LETTER I WITH INVERTED BREVE*/ + 0x20c, /* U+00020c: LATIN CAPITAL LETTER O WITH DOUBLE GRAVE*/ + 0x20c, /* U+00020d: LATIN SMALL LETTER O WITH DOUBLE GRAVE*/ + 0x20e, /* U+00020e: LATIN CAPITAL LETTER O WITH INVERTED BREVE*/ + 0x20e, /* U+00020f: LATIN SMALL LETTER O WITH INVERTED BREVE*/ + 0x210, /* U+000210: LATIN CAPITAL LETTER R WITH DOUBLE GRAVE*/ + 0x210, /* U+000211: LATIN SMALL LETTER R WITH DOUBLE GRAVE*/ + 0x212, /* U+000212: LATIN CAPITAL LETTER R WITH INVERTED BREVE*/ + 0x212, /* U+000213: LATIN SMALL LETTER R WITH INVERTED BREVE*/ + 0x214, /* U+000214: LATIN CAPITAL LETTER U WITH DOUBLE GRAVE*/ + 0x214, /* U+000215: LATIN SMALL LETTER U WITH DOUBLE GRAVE*/ + 0x216, /* U+000216: LATIN CAPITAL LETTER U WITH INVERTED BREVE*/ + 0x216, /* U+000217: LATIN SMALL LETTER U WITH INVERTED BREVE*/ + 0x218, /* U+000218: LATIN CAPITAL LETTER S WITH COMMA BELOW*/ + 0x218, /* U+000219: LATIN SMALL LETTER S WITH COMMA BELOW*/ + 0x21a, /* U+00021a: LATIN CAPITAL LETTER T WITH COMMA BELOW*/ + 0x21a, /* U+00021b: LATIN SMALL LETTER T WITH COMMA BELOW*/ + 0x21c, /* U+00021c: LATIN CAPITAL LETTER YOGH*/ + 0x21c, /* U+00021d: LATIN SMALL LETTER YOGH*/ + 0x21e, /* U+00021e: LATIN CAPITAL LETTER H WITH CARON*/ + 0x21e, /* U+00021f: LATIN SMALL LETTER H WITH CARON*/ + 0x220, /* U+000220: LATIN CAPITAL LETTER N WITH LONG RIGHT LEG*/ + 0x221, /* U+000221: LATIN SMALL LETTER D WITH CURL*/ + 0x222, /* U+000222: LATIN CAPITAL LETTER OU*/ + 0x222, /* U+000223: LATIN SMALL LETTER OU*/ + 0x224, /* U+000224: LATIN CAPITAL LETTER Z WITH HOOK*/ + 0x224, /* U+000225: LATIN SMALL LETTER Z WITH HOOK*/ + 0x226, /* U+000226: LATIN CAPITAL LETTER A WITH DOT ABOVE*/ + 0x226, /* U+000227: LATIN SMALL LETTER A WITH DOT ABOVE*/ + 0x228, /* U+000228: LATIN CAPITAL LETTER E WITH CEDILLA*/ + 0x228, /* U+000229: LATIN SMALL LETTER E WITH CEDILLA*/ + 0x22a, /* U+00022a: LATIN CAPITAL LETTER O WITH DIAERESIS AND MACRON*/ + 0x22a, /* U+00022b: LATIN SMALL LETTER O WITH DIAERESIS AND MACRON*/ + 0x22c, /* U+00022c: LATIN CAPITAL LETTER O WITH TILDE AND MACRON*/ + 0x22c, /* U+00022d: LATIN SMALL LETTER O WITH TILDE AND MACRON*/ + 0x22e, /* U+00022e: LATIN CAPITAL LETTER O WITH DOT ABOVE*/ + 0x22e, /* U+00022f: LATIN SMALL LETTER O WITH DOT ABOVE*/ + 0x230, /* U+000230: LATIN CAPITAL LETTER O WITH DOT ABOVE AND MACRON*/ + 0x230, /* U+000231: LATIN SMALL LETTER O WITH DOT ABOVE AND MACRON*/ + 0x232, /* U+000232: LATIN CAPITAL LETTER Y WITH MACRON*/ + 0x232, /* U+000233: LATIN SMALL LETTER Y WITH MACRON*/ + 0x234, /* U+000234: LATIN SMALL LETTER L WITH CURL*/ + 0x235, /* U+000235: LATIN SMALL LETTER N WITH CURL*/ + 0x236, /* U+000236: LATIN SMALL LETTER T WITH CURL*/ + 0x237, /* U+000237: LATIN SMALL LETTER DOTLESS J*/ + 0x238, /* U+000238: LATIN SMALL LETTER DB DIGRAPH*/ + 0x239, /* U+000239: LATIN SMALL LETTER QP DIGRAPH*/ + 0x23a, /* U+00023a: LATIN CAPITAL LETTER A WITH STROKE*/ + 0x23b, /* U+00023b: LATIN CAPITAL LETTER C WITH STROKE*/ + 0x23b, /* U+00023c: LATIN SMALL LETTER C WITH STROKE*/ + 0x23d, /* U+00023d: LATIN CAPITAL LETTER L WITH BAR*/ + 0x23e, /* U+00023e: LATIN CAPITAL LETTER T WITH DIAGONAL STROKE*/ + 0x2c7e, /* U+00023f: LATIN SMALL LETTER S WITH SWASH TAIL*/ + 0x2c7f, /* U+000240: LATIN SMALL LETTER Z WITH SWASH TAIL*/ + 0x241, /* U+000241: LATIN CAPITAL LETTER GLOTTAL STOP*/ + 0x241, /* U+000242: LATIN SMALL LETTER GLOTTAL STOP*/ + 0x243, /* U+000243: LATIN CAPITAL LETTER B WITH STROKE*/ + 0x244, /* U+000244: LATIN CAPITAL LETTER U BAR*/ + 0x245, /* U+000245: LATIN CAPITAL LETTER TURNED V*/ + 0x246, /* U+000246: LATIN CAPITAL LETTER E WITH STROKE*/ + 0x246, /* U+000247: LATIN SMALL LETTER E WITH STROKE*/ + 0x248, /* U+000248: LATIN CAPITAL LETTER J WITH STROKE*/ + 0x248, /* U+000249: LATIN SMALL LETTER J WITH STROKE*/ + 0x24a, /* U+00024a: LATIN CAPITAL LETTER SMALL Q WITH HOOK TAIL*/ + 0x24a, /* U+00024b: LATIN SMALL LETTER Q WITH HOOK TAIL*/ + 0x24c, /* U+00024c: LATIN CAPITAL LETTER R WITH STROKE*/ + 0x24c, /* U+00024d: LATIN SMALL LETTER R WITH STROKE*/ + 0x24e, /* U+00024e: LATIN CAPITAL LETTER Y WITH STROKE*/ + 0x24e, /* U+00024f: LATIN SMALL LETTER Y WITH STROKE*/ + 0x2c6f, /* U+000250: LATIN SMALL LETTER TURNED A*/ + 0x2c6d, /* U+000251: LATIN SMALL LETTER ALPHA*/ + 0x2c70, /* U+000252: LATIN SMALL LETTER TURNED ALPHA*/ + 0x181, /* U+000253: LATIN SMALL LETTER B WITH HOOK*/ + 0x186, /* U+000254: LATIN SMALL LETTER OPEN O*/ + 0x255, /* U+000255: LATIN SMALL LETTER C WITH CURL*/ + 0x189, /* U+000256: LATIN SMALL LETTER D WITH TAIL*/ + 0x18a, /* U+000257: LATIN SMALL LETTER D WITH HOOK*/ + 0x258, /* U+000258: LATIN SMALL LETTER REVERSED E*/ + 0x18f, /* U+000259: LATIN SMALL LETTER SCHWA*/ + 0x25a, /* U+00025a: LATIN SMALL LETTER SCHWA WITH HOOK*/ + 0x190, /* U+00025b: LATIN SMALL LETTER OPEN E*/ + 0x25c, /* U+00025c: LATIN SMALL LETTER REVERSED OPEN E*/ + 0x25d, /* U+00025d: LATIN SMALL LETTER REVERSED OPEN E WITH HOOK*/ + 0x25e, /* U+00025e: LATIN SMALL LETTER CLOSED REVERSED OPEN E*/ + 0x25f, /* U+00025f: LATIN SMALL LETTER DOTLESS J WITH STROKE*/ + 0x193, /* U+000260: LATIN SMALL LETTER G WITH HOOK*/ + 0x261, /* U+000261: LATIN SMALL LETTER SCRIPT G*/ + 0x262, /* U+000262: LATIN LETTER SMALL CAPITAL G*/ + 0x194, /* U+000263: LATIN SMALL LETTER GAMMA*/ + 0x264, /* U+000264: LATIN SMALL LETTER RAMS HORN*/ + 0xa78d, /* U+000265: LATIN SMALL LETTER TURNED H*/ + 0xa7aa, /* U+000266: LATIN SMALL LETTER H WITH HOOK*/ + 0x267, /* U+000267: LATIN SMALL LETTER HENG WITH HOOK*/ + 0x197, /* U+000268: LATIN SMALL LETTER I WITH STROKE*/ + 0x196, /* U+000269: LATIN SMALL LETTER IOTA*/ + 0x26a, /* U+00026a: LATIN LETTER SMALL CAPITAL I*/ + 0x2c62, /* U+00026b: LATIN SMALL LETTER L WITH MIDDLE TILDE*/ + 0x26c, /* U+00026c: LATIN SMALL LETTER L WITH BELT*/ + 0x26d, /* U+00026d: LATIN SMALL LETTER L WITH RETROFLEX HOOK*/ + 0x26e, /* U+00026e: LATIN SMALL LETTER LEZH*/ + 0x19c, /* U+00026f: LATIN SMALL LETTER TURNED M*/ + 0x270, /* U+000270: LATIN SMALL LETTER TURNED M WITH LONG LEG*/ + 0x2c6e, /* U+000271: LATIN SMALL LETTER M WITH HOOK*/ + 0x19d, /* U+000272: LATIN SMALL LETTER N WITH LEFT HOOK*/ + 0x273, /* U+000273: LATIN SMALL LETTER N WITH RETROFLEX HOOK*/ + 0x274, /* U+000274: LATIN LETTER SMALL CAPITAL N*/ + 0x19f, /* U+000275: LATIN SMALL LETTER BARRED O*/ + 0x276, /* U+000276: LATIN LETTER SMALL CAPITAL OE*/ + 0x277, /* U+000277: LATIN SMALL LETTER CLOSED OMEGA*/ + 0x278, /* U+000278: LATIN SMALL LETTER PHI*/ + 0x279, /* U+000279: LATIN SMALL LETTER TURNED R*/ + 0x27a, /* U+00027a: LATIN SMALL LETTER TURNED R WITH LONG LEG*/ + 0x27b, /* U+00027b: LATIN SMALL LETTER TURNED R WITH HOOK*/ + 0x27c, /* U+00027c: LATIN SMALL LETTER R WITH LONG LEG*/ + 0x2c64, /* U+00027d: LATIN SMALL LETTER R WITH TAIL*/ + 0x27e, /* U+00027e: LATIN SMALL LETTER R WITH FISHHOOK*/ + 0x27f, /* U+00027f: LATIN SMALL LETTER REVERSED R WITH FISHHOOK*/ + 0x1a6, /* U+000280: LATIN LETTER SMALL CAPITAL R*/ + 0x281, /* U+000281: LATIN LETTER SMALL CAPITAL INVERTED R*/ + 0x282, /* U+000282: LATIN SMALL LETTER S WITH HOOK*/ + 0x1a9, /* U+000283: LATIN SMALL LETTER ESH*/ + 0x284, /* U+000284: LATIN SMALL LETTER DOTLESS J WITH STROKE AND HOOK*/ + 0x285, /* U+000285: LATIN SMALL LETTER SQUAT REVERSED ESH*/ + 0x286, /* U+000286: LATIN SMALL LETTER ESH WITH CURL*/ + 0x287, /* U+000287: LATIN SMALL LETTER TURNED T*/ + 0x1ae, /* U+000288: LATIN SMALL LETTER T WITH RETROFLEX HOOK*/ + 0x244, /* U+000289: LATIN SMALL LETTER U BAR*/ + 0x1b1, /* U+00028a: LATIN SMALL LETTER UPSILON*/ + 0x1b2, /* U+00028b: LATIN SMALL LETTER V WITH HOOK*/ + 0x245, /* U+00028c: LATIN SMALL LETTER TURNED V*/ + 0x28d, /* U+00028d: LATIN SMALL LETTER TURNED W*/ + 0x28e, /* U+00028e: LATIN SMALL LETTER TURNED Y*/ + 0x28f, /* U+00028f: LATIN LETTER SMALL CAPITAL Y*/ + 0x290, /* U+000290: LATIN SMALL LETTER Z WITH RETROFLEX HOOK*/ + 0x291, /* U+000291: LATIN SMALL LETTER Z WITH CURL*/ + 0x1b7, /* U+000292: LATIN SMALL LETTER EZH*/ + 0x293, /* U+000293: LATIN SMALL LETTER EZH WITH CURL*/ + 0x294, /* U+000294: LATIN LETTER GLOTTAL STOP*/ + 0x295, /* U+000295: LATIN LETTER PHARYNGEAL VOICED FRICATIVE*/ + 0x296, /* U+000296: LATIN LETTER INVERTED GLOTTAL STOP*/ + 0x297, /* U+000297: LATIN LETTER STRETCHED C*/ + 0x298, /* U+000298: LATIN LETTER BILABIAL CLICK*/ + 0x299, /* U+000299: LATIN LETTER SMALL CAPITAL B*/ + 0x29a, /* U+00029a: LATIN SMALL LETTER CLOSED OPEN E*/ + 0x29b, /* U+00029b: LATIN LETTER SMALL CAPITAL G WITH HOOK*/ + 0x29c, /* U+00029c: LATIN LETTER SMALL CAPITAL H*/ + 0x29d, /* U+00029d: LATIN SMALL LETTER J WITH CROSSED-TAIL*/ + 0x29e, /* U+00029e: LATIN SMALL LETTER TURNED K*/ + 0x29f, /* U+00029f: LATIN LETTER SMALL CAPITAL L*/ + 0x2a0, /* U+0002a0: LATIN SMALL LETTER Q WITH HOOK*/ + 0x2a1, /* U+0002a1: LATIN LETTER GLOTTAL STOP WITH STROKE*/ + 0x2a2, /* U+0002a2: LATIN LETTER REVERSED GLOTTAL STOP WITH STROKE*/ + 0x2a3, /* U+0002a3: LATIN SMALL LETTER DZ DIGRAPH*/ + 0x2a4, /* U+0002a4: LATIN SMALL LETTER DEZH DIGRAPH*/ + 0x2a5, /* U+0002a5: LATIN SMALL LETTER DZ DIGRAPH WITH CURL*/ + 0x2a6, /* U+0002a6: LATIN SMALL LETTER TS DIGRAPH*/ + 0x2a7, /* U+0002a7: LATIN SMALL LETTER TESH DIGRAPH*/ + 0x2a8, /* U+0002a8: LATIN SMALL LETTER TC DIGRAPH WITH CURL*/ + 0x2a9, /* U+0002a9: LATIN SMALL LETTER FENG DIGRAPH*/ + 0x2aa, /* U+0002aa: LATIN SMALL LETTER LS DIGRAPH*/ + 0x2ab, /* U+0002ab: LATIN SMALL LETTER LZ DIGRAPH*/ + 0x2ac, /* U+0002ac: LATIN LETTER BILABIAL PERCUSSIVE*/ + 0x2ad, /* U+0002ad: LATIN LETTER BIDENTAL PERCUSSIVE*/ + 0x2ae, /* U+0002ae: LATIN SMALL LETTER TURNED H WITH FISHHOOK*/ + 0x2af, /* U+0002af: LATIN SMALL LETTER TURNED H WITH FISHHOOK AND TAIL*/ + 0x2b0, /* U+0002b0: MODIFIER LETTER SMALL H*/ + 0x2b1, /* U+0002b1: MODIFIER LETTER SMALL H WITH HOOK*/ + 0x2b2, /* U+0002b2: MODIFIER LETTER SMALL J*/ + 0x2b3, /* U+0002b3: MODIFIER LETTER SMALL R*/ + 0x2b4, /* U+0002b4: MODIFIER LETTER SMALL TURNED R*/ + 0x2b5, /* U+0002b5: MODIFIER LETTER SMALL TURNED R WITH HOOK*/ + 0x2b6, /* U+0002b6: MODIFIER LETTER SMALL CAPITAL INVERTED R*/ + 0x2b7, /* U+0002b7: MODIFIER LETTER SMALL W*/ + 0x2b8, /* U+0002b8: MODIFIER LETTER SMALL Y*/ + 0x2b9, /* U+0002b9: MODIFIER LETTER PRIME*/ + 0x2ba, /* U+0002ba: MODIFIER LETTER DOUBLE PRIME*/ + 0x2bb, /* U+0002bb: MODIFIER LETTER TURNED COMMA*/ + 0x2bc, /* U+0002bc: MODIFIER LETTER APOSTROPHE*/ + 0x2bd, /* U+0002bd: MODIFIER LETTER REVERSED COMMA*/ + 0x2be, /* U+0002be: MODIFIER LETTER RIGHT HALF RING*/ + 0x2bf, /* U+0002bf: MODIFIER LETTER LEFT HALF RING*/ + 0x2c0, /* U+0002c0: MODIFIER LETTER GLOTTAL STOP*/ + 0x2c1, /* U+0002c1: MODIFIER LETTER REVERSED GLOTTAL STOP*/ + 0x2c2, /* U+0002c2: MODIFIER LETTER LEFT ARROWHEAD*/ + 0x2c3, /* U+0002c3: MODIFIER LETTER RIGHT ARROWHEAD*/ + 0x2c4, /* U+0002c4: MODIFIER LETTER UP ARROWHEAD*/ + 0x2c5, /* U+0002c5: MODIFIER LETTER DOWN ARROWHEAD*/ + 0x2c6, /* U+0002c6: MODIFIER LETTER CIRCUMFLEX ACCENT*/ + 0x2c7, /* U+0002c7: CARON*/ + 0x2c8, /* U+0002c8: MODIFIER LETTER VERTICAL LINE*/ + 0x2c9, /* U+0002c9: MODIFIER LETTER MACRON*/ + 0x2ca, /* U+0002ca: MODIFIER LETTER ACUTE ACCENT*/ + 0x2cb, /* U+0002cb: MODIFIER LETTER GRAVE ACCENT*/ + 0x2cc, /* U+0002cc: MODIFIER LETTER LOW VERTICAL LINE*/ + 0x2cd, /* U+0002cd: MODIFIER LETTER LOW MACRON*/ + 0x2ce, /* U+0002ce: MODIFIER LETTER LOW GRAVE ACCENT*/ + 0x2cf, /* U+0002cf: MODIFIER LETTER LOW ACUTE ACCENT*/ + 0x2d0, /* U+0002d0: MODIFIER LETTER TRIANGULAR COLON*/ + 0x2d1, /* U+0002d1: MODIFIER LETTER HALF TRIANGULAR COLON*/ + 0x2d2, /* U+0002d2: MODIFIER LETTER CENTRED RIGHT HALF RING*/ + 0x2d3, /* U+0002d3: MODIFIER LETTER CENTRED LEFT HALF RING*/ + 0x2d4, /* U+0002d4: MODIFIER LETTER UP TACK*/ + 0x2d5, /* U+0002d5: MODIFIER LETTER DOWN TACK*/ + 0x2d6, /* U+0002d6: MODIFIER LETTER PLUS SIGN*/ + 0x2d7, /* U+0002d7: MODIFIER LETTER MINUS SIGN*/ + 0x2d8, /* U+0002d8: BREVE*/ + 0x2d9, /* U+0002d9: DOT ABOVE*/ + 0x2da, /* U+0002da: RING ABOVE*/ + 0x2db, /* U+0002db: OGONEK*/ + 0x2dc, /* U+0002dc: SMALL TILDE*/ + 0x2dd, /* U+0002dd: DOUBLE ACUTE ACCENT*/ + 0x2de, /* U+0002de: MODIFIER LETTER RHOTIC HOOK*/ + 0x2df, /* U+0002df: MODIFIER LETTER CROSS ACCENT*/ + 0x2e0, /* U+0002e0: MODIFIER LETTER SMALL GAMMA*/ + 0x2e1, /* U+0002e1: MODIFIER LETTER SMALL L*/ + 0x2e2, /* U+0002e2: MODIFIER LETTER SMALL S*/ + 0x2e3, /* U+0002e3: MODIFIER LETTER SMALL X*/ + 0x2e4, /* U+0002e4: MODIFIER LETTER SMALL REVERSED GLOTTAL STOP*/ + 0x2e5, /* U+0002e5: MODIFIER LETTER EXTRA-HIGH TONE BAR*/ + 0x2e6, /* U+0002e6: MODIFIER LETTER HIGH TONE BAR*/ + 0x2e7, /* U+0002e7: MODIFIER LETTER MID TONE BAR*/ + 0x2e8, /* U+0002e8: MODIFIER LETTER LOW TONE BAR*/ + 0x2e9, /* U+0002e9: MODIFIER LETTER EXTRA-LOW TONE BAR*/ + 0x2ea, /* U+0002ea: MODIFIER LETTER YIN DEPARTING TONE MARK*/ + 0x2eb, /* U+0002eb: MODIFIER LETTER YANG DEPARTING TONE MARK*/ + 0x2ec, /* U+0002ec: MODIFIER LETTER VOICING*/ + 0x2ed, /* U+0002ed: MODIFIER LETTER UNASPIRATED*/ + 0x2ee, /* U+0002ee: MODIFIER LETTER DOUBLE APOSTROPHE*/ + 0x2ef, /* U+0002ef: MODIFIER LETTER LOW DOWN ARROWHEAD*/ + 0x2f0, /* U+0002f0: MODIFIER LETTER LOW UP ARROWHEAD*/ + 0x2f1, /* U+0002f1: MODIFIER LETTER LOW LEFT ARROWHEAD*/ + 0x2f2, /* U+0002f2: MODIFIER LETTER LOW RIGHT ARROWHEAD*/ + 0x2f3, /* U+0002f3: MODIFIER LETTER LOW RING*/ + 0x2f4, /* U+0002f4: MODIFIER LETTER MIDDLE GRAVE ACCENT*/ + 0x2f5, /* U+0002f5: MODIFIER LETTER MIDDLE DOUBLE GRAVE ACCENT*/ + 0x2f6, /* U+0002f6: MODIFIER LETTER MIDDLE DOUBLE ACUTE ACCENT*/ + 0x2f7, /* U+0002f7: MODIFIER LETTER LOW TILDE*/ + 0x2f8, /* U+0002f8: MODIFIER LETTER RAISED COLON*/ + 0x2f9, /* U+0002f9: MODIFIER LETTER BEGIN HIGH TONE*/ + 0x2fa, /* U+0002fa: MODIFIER LETTER END HIGH TONE*/ + 0x2fb, /* U+0002fb: MODIFIER LETTER BEGIN LOW TONE*/ + 0x2fc, /* U+0002fc: MODIFIER LETTER END LOW TONE*/ + 0x2fd, /* U+0002fd: MODIFIER LETTER SHELF*/ + 0x2fe, /* U+0002fe: MODIFIER LETTER OPEN SHELF*/ + 0x2ff, /* U+0002ff: MODIFIER LETTER LOW LEFT ARROW*/ + 0x300, /* U+000300: COMBINING GRAVE ACCENT*/ + 0x301, /* U+000301: COMBINING ACUTE ACCENT*/ + 0x302, /* U+000302: COMBINING CIRCUMFLEX ACCENT*/ + 0x303, /* U+000303: COMBINING TILDE*/ + 0x304, /* U+000304: COMBINING MACRON*/ + 0x305, /* U+000305: COMBINING OVERLINE*/ + 0x306, /* U+000306: COMBINING BREVE*/ + 0x307, /* U+000307: COMBINING DOT ABOVE*/ + 0x308, /* U+000308: COMBINING DIAERESIS*/ + 0x309, /* U+000309: COMBINING HOOK ABOVE*/ + 0x30a, /* U+00030a: COMBINING RING ABOVE*/ + 0x30b, /* U+00030b: COMBINING DOUBLE ACUTE ACCENT*/ + 0x30c, /* U+00030c: COMBINING CARON*/ + 0x30d, /* U+00030d: COMBINING VERTICAL LINE ABOVE*/ + 0x30e, /* U+00030e: COMBINING DOUBLE VERTICAL LINE ABOVE*/ + 0x30f, /* U+00030f: COMBINING DOUBLE GRAVE ACCENT*/ + 0x310, /* U+000310: COMBINING CANDRABINDU*/ + 0x311, /* U+000311: COMBINING INVERTED BREVE*/ + 0x312, /* U+000312: COMBINING TURNED COMMA ABOVE*/ + 0x313, /* U+000313: COMBINING COMMA ABOVE*/ + 0x314, /* U+000314: COMBINING REVERSED COMMA ABOVE*/ + 0x315, /* U+000315: COMBINING COMMA ABOVE RIGHT*/ + 0x316, /* U+000316: COMBINING GRAVE ACCENT BELOW*/ + 0x317, /* U+000317: COMBINING ACUTE ACCENT BELOW*/ + 0x318, /* U+000318: COMBINING LEFT TACK BELOW*/ + 0x319, /* U+000319: COMBINING RIGHT TACK BELOW*/ + 0x31a, /* U+00031a: COMBINING LEFT ANGLE ABOVE*/ + 0x31b, /* U+00031b: COMBINING HORN*/ + 0x31c, /* U+00031c: COMBINING LEFT HALF RING BELOW*/ + 0x31d, /* U+00031d: COMBINING UP TACK BELOW*/ + 0x31e, /* U+00031e: COMBINING DOWN TACK BELOW*/ + 0x31f, /* U+00031f: COMBINING PLUS SIGN BELOW*/ + 0x320, /* U+000320: COMBINING MINUS SIGN BELOW*/ + 0x321, /* U+000321: COMBINING PALATALIZED HOOK BELOW*/ + 0x322, /* U+000322: COMBINING RETROFLEX HOOK BELOW*/ + 0x323, /* U+000323: COMBINING DOT BELOW*/ + 0x324, /* U+000324: COMBINING DIAERESIS BELOW*/ + 0x325, /* U+000325: COMBINING RING BELOW*/ + 0x326, /* U+000326: COMBINING COMMA BELOW*/ + 0x327, /* U+000327: COMBINING CEDILLA*/ + 0x328, /* U+000328: COMBINING OGONEK*/ + 0x329, /* U+000329: COMBINING VERTICAL LINE BELOW*/ + 0x32a, /* U+00032a: COMBINING BRIDGE BELOW*/ + 0x32b, /* U+00032b: COMBINING INVERTED DOUBLE ARCH BELOW*/ + 0x32c, /* U+00032c: COMBINING CARON BELOW*/ + 0x32d, /* U+00032d: COMBINING CIRCUMFLEX ACCENT BELOW*/ + 0x32e, /* U+00032e: COMBINING BREVE BELOW*/ + 0x32f, /* U+00032f: COMBINING INVERTED BREVE BELOW*/ + 0x330, /* U+000330: COMBINING TILDE BELOW*/ + 0x331, /* U+000331: COMBINING MACRON BELOW*/ + 0x332, /* U+000332: COMBINING LOW LINE*/ + 0x333, /* U+000333: COMBINING DOUBLE LOW LINE*/ + 0x334, /* U+000334: COMBINING TILDE OVERLAY*/ + 0x335, /* U+000335: COMBINING SHORT STROKE OVERLAY*/ + 0x336, /* U+000336: COMBINING LONG STROKE OVERLAY*/ + 0x337, /* U+000337: COMBINING SHORT SOLIDUS OVERLAY*/ + 0x338, /* U+000338: COMBINING LONG SOLIDUS OVERLAY*/ + 0x339, /* U+000339: COMBINING RIGHT HALF RING BELOW*/ + 0x33a, /* U+00033a: COMBINING INVERTED BRIDGE BELOW*/ + 0x33b, /* U+00033b: COMBINING SQUARE BELOW*/ + 0x33c, /* U+00033c: COMBINING SEAGULL BELOW*/ + 0x33d, /* U+00033d: COMBINING X ABOVE*/ + 0x33e, /* U+00033e: COMBINING VERTICAL TILDE*/ + 0x33f, /* U+00033f: COMBINING DOUBLE OVERLINE*/ + 0x340, /* U+000340: COMBINING GRAVE TONE MARK*/ + 0x341, /* U+000341: COMBINING ACUTE TONE MARK*/ + 0x342, /* U+000342: COMBINING GREEK PERISPOMENI*/ + 0x343, /* U+000343: COMBINING GREEK KORONIS*/ + 0x344, /* U+000344: COMBINING GREEK DIALYTIKA TONOS*/ + 0x399, /* U+000345: COMBINING GREEK YPOGEGRAMMENI*/ + 0x346, /* U+000346: COMBINING BRIDGE ABOVE*/ + 0x347, /* U+000347: COMBINING EQUALS SIGN BELOW*/ + 0x348, /* U+000348: COMBINING DOUBLE VERTICAL LINE BELOW*/ + 0x349, /* U+000349: COMBINING LEFT ANGLE BELOW*/ + 0x34a, /* U+00034a: COMBINING NOT TILDE ABOVE*/ + 0x34b, /* U+00034b: COMBINING HOMOTHETIC ABOVE*/ + 0x34c, /* U+00034c: COMBINING ALMOST EQUAL TO ABOVE*/ + 0x34d, /* U+00034d: COMBINING LEFT RIGHT ARROW BELOW*/ + 0x34e, /* U+00034e: COMBINING UPWARDS ARROW BELOW*/ + 0x34f, /* U+00034f: COMBINING GRAPHEME JOINER*/ + 0x350, /* U+000350: COMBINING RIGHT ARROWHEAD ABOVE*/ + 0x351, /* U+000351: COMBINING LEFT HALF RING ABOVE*/ + 0x352, /* U+000352: COMBINING FERMATA*/ + 0x353, /* U+000353: COMBINING X BELOW*/ + 0x354, /* U+000354: COMBINING LEFT ARROWHEAD BELOW*/ + 0x355, /* U+000355: COMBINING RIGHT ARROWHEAD BELOW*/ + 0x356, /* U+000356: COMBINING RIGHT ARROWHEAD AND UP ARROWHEAD BELOW*/ + 0x357, /* U+000357: COMBINING RIGHT HALF RING ABOVE*/ + 0x358, /* U+000358: COMBINING DOT ABOVE RIGHT*/ + 0x359, /* U+000359: COMBINING ASTERISK BELOW*/ + 0x35a, /* U+00035a: COMBINING DOUBLE RING BELOW*/ + 0x35b, /* U+00035b: COMBINING ZIGZAG ABOVE*/ + 0x35c, /* U+00035c: COMBINING DOUBLE BREVE BELOW*/ + 0x35d, /* U+00035d: COMBINING DOUBLE BREVE*/ + 0x35e, /* U+00035e: COMBINING DOUBLE MACRON*/ + 0x35f, /* U+00035f: COMBINING DOUBLE MACRON BELOW*/ + 0x360, /* U+000360: COMBINING DOUBLE TILDE*/ + 0x361, /* U+000361: COMBINING DOUBLE INVERTED BREVE*/ + 0x362, /* U+000362: COMBINING DOUBLE RIGHTWARDS ARROW BELOW*/ + 0x363, /* U+000363: COMBINING LATIN SMALL LETTER A*/ + 0x364, /* U+000364: COMBINING LATIN SMALL LETTER E*/ + 0x365, /* U+000365: COMBINING LATIN SMALL LETTER I*/ + 0x366, /* U+000366: COMBINING LATIN SMALL LETTER O*/ + 0x367, /* U+000367: COMBINING LATIN SMALL LETTER U*/ + 0x368, /* U+000368: COMBINING LATIN SMALL LETTER C*/ + 0x369, /* U+000369: COMBINING LATIN SMALL LETTER D*/ + 0x36a, /* U+00036a: COMBINING LATIN SMALL LETTER H*/ + 0x36b, /* U+00036b: COMBINING LATIN SMALL LETTER M*/ + 0x36c, /* U+00036c: COMBINING LATIN SMALL LETTER R*/ + 0x36d, /* U+00036d: COMBINING LATIN SMALL LETTER T*/ + 0x36e, /* U+00036e: COMBINING LATIN SMALL LETTER V*/ + 0x36f, /* U+00036f: COMBINING LATIN SMALL LETTER X*/ + 0x370, /* U+000370: GREEK CAPITAL LETTER HETA*/ + 0x370, /* U+000371: GREEK SMALL LETTER HETA*/ + 0x372, /* U+000372: GREEK CAPITAL LETTER ARCHAIC SAMPI*/ + 0x372, /* U+000373: GREEK SMALL LETTER ARCHAIC SAMPI*/ + 0x374, /* U+000374: GREEK NUMERAL SIGN*/ + 0x375, /* U+000375: GREEK LOWER NUMERAL SIGN*/ + 0x376, /* U+000376: GREEK CAPITAL LETTER PAMPHYLIAN DIGAMMA*/ + 0x376, /* U+000377: GREEK SMALL LETTER PAMPHYLIAN DIGAMMA*/ + 0x378, /* U+000378: */ + 0x379, /* U+000379: */ + 0x37a, /* U+00037a: GREEK YPOGEGRAMMENI*/ + 0x3fd, /* U+00037b: GREEK SMALL REVERSED LUNATE SIGMA SYMBOL*/ + 0x3fe, /* U+00037c: GREEK SMALL DOTTED LUNATE SIGMA SYMBOL*/ + 0x3ff, /* U+00037d: GREEK SMALL REVERSED DOTTED LUNATE SIGMA SYMBOL*/ + 0x37e, /* U+00037e: GREEK QUESTION MARK*/ + 0x37f, /* U+00037f: */ + 0x380, /* U+000380: */ + 0x381, /* U+000381: */ + 0x382, /* U+000382: */ + 0x383, /* U+000383: */ + 0x384, /* U+000384: GREEK TONOS*/ + 0x385, /* U+000385: GREEK DIALYTIKA TONOS*/ + 0x386, /* U+000386: GREEK CAPITAL LETTER ALPHA WITH TONOS*/ + 0x387, /* U+000387: GREEK ANO TELEIA*/ + 0x388, /* U+000388: GREEK CAPITAL LETTER EPSILON WITH TONOS*/ + 0x389, /* U+000389: GREEK CAPITAL LETTER ETA WITH TONOS*/ + 0x38a, /* U+00038a: GREEK CAPITAL LETTER IOTA WITH TONOS*/ + 0x38b, /* U+00038b: */ + 0x38c, /* U+00038c: GREEK CAPITAL LETTER OMICRON WITH TONOS*/ + 0x38d, /* U+00038d: */ + 0x38e, /* U+00038e: GREEK CAPITAL LETTER UPSILON WITH TONOS*/ + 0x38f, /* U+00038f: GREEK CAPITAL LETTER OMEGA WITH TONOS*/ + 0x390, /* U+000390: GREEK SMALL LETTER IOTA WITH DIALYTIKA AND TONOS*/ + 0x391, /* U+000391: GREEK CAPITAL LETTER ALPHA*/ + 0x392, /* U+000392: GREEK CAPITAL LETTER BETA*/ + 0x393, /* U+000393: GREEK CAPITAL LETTER GAMMA*/ + 0x394, /* U+000394: GREEK CAPITAL LETTER DELTA*/ + 0x395, /* U+000395: GREEK CAPITAL LETTER EPSILON*/ + 0x396, /* U+000396: GREEK CAPITAL LETTER ZETA*/ + 0x397, /* U+000397: GREEK CAPITAL LETTER ETA*/ + 0x398, /* U+000398: GREEK CAPITAL LETTER THETA*/ + 0x399, /* U+000399: GREEK CAPITAL LETTER IOTA*/ + 0x39a, /* U+00039a: GREEK CAPITAL LETTER KAPPA*/ + 0x39b, /* U+00039b: GREEK CAPITAL LETTER LAMDA*/ + 0x39c, /* U+00039c: GREEK CAPITAL LETTER MU*/ + 0x39d, /* U+00039d: GREEK CAPITAL LETTER NU*/ + 0x39e, /* U+00039e: GREEK CAPITAL LETTER XI*/ + 0x39f, /* U+00039f: GREEK CAPITAL LETTER OMICRON*/ + 0x3a0, /* U+0003a0: GREEK CAPITAL LETTER PI*/ + 0x3a1, /* U+0003a1: GREEK CAPITAL LETTER RHO*/ + 0x3a2, /* U+0003a2: */ + 0x3a3, /* U+0003a3: GREEK CAPITAL LETTER SIGMA*/ + 0x3a4, /* U+0003a4: GREEK CAPITAL LETTER TAU*/ + 0x3a5, /* U+0003a5: GREEK CAPITAL LETTER UPSILON*/ + 0x3a6, /* U+0003a6: GREEK CAPITAL LETTER PHI*/ + 0x3a7, /* U+0003a7: GREEK CAPITAL LETTER CHI*/ + 0x3a8, /* U+0003a8: GREEK CAPITAL LETTER PSI*/ + 0x3a9, /* U+0003a9: GREEK CAPITAL LETTER OMEGA*/ + 0x3aa, /* U+0003aa: GREEK CAPITAL LETTER IOTA WITH DIALYTIKA*/ + 0x3ab, /* U+0003ab: GREEK CAPITAL LETTER UPSILON WITH DIALYTIKA*/ + 0x386, /* U+0003ac: GREEK SMALL LETTER ALPHA WITH TONOS*/ + 0x388, /* U+0003ad: GREEK SMALL LETTER EPSILON WITH TONOS*/ + 0x389, /* U+0003ae: GREEK SMALL LETTER ETA WITH TONOS*/ + 0x38a, /* U+0003af: GREEK SMALL LETTER IOTA WITH TONOS*/ + 0x3b0, /* U+0003b0: GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND TONOS*/ + 0x391, /* U+0003b1: GREEK SMALL LETTER ALPHA*/ + 0x392, /* U+0003b2: GREEK SMALL LETTER BETA*/ + 0x393, /* U+0003b3: GREEK SMALL LETTER GAMMA*/ + 0x394, /* U+0003b4: GREEK SMALL LETTER DELTA*/ + 0x395, /* U+0003b5: GREEK SMALL LETTER EPSILON*/ + 0x396, /* U+0003b6: GREEK SMALL LETTER ZETA*/ + 0x397, /* U+0003b7: GREEK SMALL LETTER ETA*/ + 0x398, /* U+0003b8: GREEK SMALL LETTER THETA*/ + 0x399, /* U+0003b9: GREEK SMALL LETTER IOTA*/ + 0x39a, /* U+0003ba: GREEK SMALL LETTER KAPPA*/ + 0x39b, /* U+0003bb: GREEK SMALL LETTER LAMDA*/ + 0x39c, /* U+0003bc: GREEK SMALL LETTER MU*/ + 0x39d, /* U+0003bd: GREEK SMALL LETTER NU*/ + 0x39e, /* U+0003be: GREEK SMALL LETTER XI*/ + 0x39f, /* U+0003bf: GREEK SMALL LETTER OMICRON*/ + 0x3a0, /* U+0003c0: GREEK SMALL LETTER PI*/ + 0x3a1, /* U+0003c1: GREEK SMALL LETTER RHO*/ + 0x3a3, /* U+0003c2: GREEK SMALL LETTER FINAL SIGMA*/ + 0x3a3, /* U+0003c3: GREEK SMALL LETTER SIGMA*/ + 0x3a4, /* U+0003c4: GREEK SMALL LETTER TAU*/ + 0x3a5, /* U+0003c5: GREEK SMALL LETTER UPSILON*/ + 0x3a6, /* U+0003c6: GREEK SMALL LETTER PHI*/ + 0x3a7, /* U+0003c7: GREEK SMALL LETTER CHI*/ + 0x3a8, /* U+0003c8: GREEK SMALL LETTER PSI*/ + 0x3a9, /* U+0003c9: GREEK SMALL LETTER OMEGA*/ + 0x3aa, /* U+0003ca: GREEK SMALL LETTER IOTA WITH DIALYTIKA*/ + 0x3ab, /* U+0003cb: GREEK SMALL LETTER UPSILON WITH DIALYTIKA*/ + 0x38c, /* U+0003cc: GREEK SMALL LETTER OMICRON WITH TONOS*/ + 0x38e, /* U+0003cd: GREEK SMALL LETTER UPSILON WITH TONOS*/ + 0x38f, /* U+0003ce: GREEK SMALL LETTER OMEGA WITH TONOS*/ + 0x3cf, /* U+0003cf: GREEK CAPITAL KAI SYMBOL*/ + 0x392, /* U+0003d0: GREEK BETA SYMBOL*/ + 0x398, /* U+0003d1: GREEK THETA SYMBOL*/ + 0x3d2, /* U+0003d2: GREEK UPSILON WITH HOOK SYMBOL*/ + 0x3d3, /* U+0003d3: GREEK UPSILON WITH ACUTE AND HOOK SYMBOL*/ + 0x3d4, /* U+0003d4: GREEK UPSILON WITH DIAERESIS AND HOOK SYMBOL*/ + 0x3a6, /* U+0003d5: GREEK PHI SYMBOL*/ + 0x3a0, /* U+0003d6: GREEK PI SYMBOL*/ + 0x3cf, /* U+0003d7: GREEK KAI SYMBOL*/ + 0x3d8, /* U+0003d8: GREEK LETTER ARCHAIC KOPPA*/ + 0x3d8, /* U+0003d9: GREEK SMALL LETTER ARCHAIC KOPPA*/ + 0x3da, /* U+0003da: GREEK LETTER STIGMA*/ + 0x3da, /* U+0003db: GREEK SMALL LETTER STIGMA*/ + 0x3dc, /* U+0003dc: GREEK LETTER DIGAMMA*/ + 0x3dc, /* U+0003dd: GREEK SMALL LETTER DIGAMMA*/ + 0x3de, /* U+0003de: GREEK LETTER KOPPA*/ + 0x3de, /* U+0003df: GREEK SMALL LETTER KOPPA*/ + 0x3e0, /* U+0003e0: GREEK LETTER SAMPI*/ + 0x3e0, /* U+0003e1: GREEK SMALL LETTER SAMPI*/ + 0x3e2, /* U+0003e2: COPTIC CAPITAL LETTER SHEI*/ + 0x3e2, /* U+0003e3: COPTIC SMALL LETTER SHEI*/ + 0x3e4, /* U+0003e4: COPTIC CAPITAL LETTER FEI*/ + 0x3e4, /* U+0003e5: COPTIC SMALL LETTER FEI*/ + 0x3e6, /* U+0003e6: COPTIC CAPITAL LETTER KHEI*/ + 0x3e6, /* U+0003e7: COPTIC SMALL LETTER KHEI*/ + 0x3e8, /* U+0003e8: COPTIC CAPITAL LETTER HORI*/ + 0x3e8, /* U+0003e9: COPTIC SMALL LETTER HORI*/ + 0x3ea, /* U+0003ea: COPTIC CAPITAL LETTER GANGIA*/ + 0x3ea, /* U+0003eb: COPTIC SMALL LETTER GANGIA*/ + 0x3ec, /* U+0003ec: COPTIC CAPITAL LETTER SHIMA*/ + 0x3ec, /* U+0003ed: COPTIC SMALL LETTER SHIMA*/ + 0x3ee, /* U+0003ee: COPTIC CAPITAL LETTER DEI*/ + 0x3ee, /* U+0003ef: COPTIC SMALL LETTER DEI*/ + 0x39a, /* U+0003f0: GREEK KAPPA SYMBOL*/ + 0x3a1, /* U+0003f1: GREEK RHO SYMBOL*/ + 0x3f9, /* U+0003f2: GREEK LUNATE SIGMA SYMBOL*/ + 0x3f3, /* U+0003f3: GREEK LETTER YOT*/ + 0x3f4, /* U+0003f4: GREEK CAPITAL THETA SYMBOL*/ + 0x395, /* U+0003f5: GREEK LUNATE EPSILON SYMBOL*/ + 0x3f6, /* U+0003f6: GREEK REVERSED LUNATE EPSILON SYMBOL*/ + 0x3f7, /* U+0003f7: GREEK CAPITAL LETTER SHO*/ + 0x3f7, /* U+0003f8: GREEK SMALL LETTER SHO*/ + 0x3f9, /* U+0003f9: GREEK CAPITAL LUNATE SIGMA SYMBOL*/ + 0x3fa, /* U+0003fa: GREEK CAPITAL LETTER SAN*/ + 0x3fa, /* U+0003fb: GREEK SMALL LETTER SAN*/ + 0x3fc, /* U+0003fc: GREEK RHO WITH STROKE SYMBOL*/ + 0x3fd, /* U+0003fd: GREEK CAPITAL REVERSED LUNATE SIGMA SYMBOL*/ + 0x3fe, /* U+0003fe: GREEK CAPITAL DOTTED LUNATE SIGMA SYMBOL*/ + 0x3ff, /* U+0003ff: GREEK CAPITAL REVERSED DOTTED LUNATE SIGMA SYMBOL*/ + 0x400, /* U+000400: CYRILLIC CAPITAL LETTER IE WITH GRAVE*/ + 0x401, /* U+000401: CYRILLIC CAPITAL LETTER IO*/ + 0x402, /* U+000402: CYRILLIC CAPITAL LETTER DJE*/ + 0x403, /* U+000403: CYRILLIC CAPITAL LETTER GJE*/ + 0x404, /* U+000404: CYRILLIC CAPITAL LETTER UKRAINIAN IE*/ + 0x405, /* U+000405: CYRILLIC CAPITAL LETTER DZE*/ + 0x406, /* U+000406: CYRILLIC CAPITAL LETTER BYELORUSSIAN-UKRAINIAN I*/ + 0x407, /* U+000407: CYRILLIC CAPITAL LETTER YI*/ + 0x408, /* U+000408: CYRILLIC CAPITAL LETTER JE*/ + 0x409, /* U+000409: CYRILLIC CAPITAL LETTER LJE*/ + 0x40a, /* U+00040a: CYRILLIC CAPITAL LETTER NJE*/ + 0x40b, /* U+00040b: CYRILLIC CAPITAL LETTER TSHE*/ + 0x40c, /* U+00040c: CYRILLIC CAPITAL LETTER KJE*/ + 0x40d, /* U+00040d: CYRILLIC CAPITAL LETTER I WITH GRAVE*/ + 0x40e, /* U+00040e: CYRILLIC CAPITAL LETTER SHORT U*/ + 0x40f, /* U+00040f: CYRILLIC CAPITAL LETTER DZHE*/ + 0x410, /* U+000410: CYRILLIC CAPITAL LETTER A*/ + 0x411, /* U+000411: CYRILLIC CAPITAL LETTER BE*/ + 0x412, /* U+000412: CYRILLIC CAPITAL LETTER VE*/ + 0x413, /* U+000413: CYRILLIC CAPITAL LETTER GHE*/ + 0x414, /* U+000414: CYRILLIC CAPITAL LETTER DE*/ + 0x415, /* U+000415: CYRILLIC CAPITAL LETTER IE*/ + 0x416, /* U+000416: CYRILLIC CAPITAL LETTER ZHE*/ + 0x417, /* U+000417: CYRILLIC CAPITAL LETTER ZE*/ + 0x418, /* U+000418: CYRILLIC CAPITAL LETTER I*/ + 0x419, /* U+000419: CYRILLIC CAPITAL LETTER SHORT I*/ + 0x41a, /* U+00041a: CYRILLIC CAPITAL LETTER KA*/ + 0x41b, /* U+00041b: CYRILLIC CAPITAL LETTER EL*/ + 0x41c, /* U+00041c: CYRILLIC CAPITAL LETTER EM*/ + 0x41d, /* U+00041d: CYRILLIC CAPITAL LETTER EN*/ + 0x41e, /* U+00041e: CYRILLIC CAPITAL LETTER O*/ + 0x41f, /* U+00041f: CYRILLIC CAPITAL LETTER PE*/ + 0x420, /* U+000420: CYRILLIC CAPITAL LETTER ER*/ + 0x421, /* U+000421: CYRILLIC CAPITAL LETTER ES*/ + 0x422, /* U+000422: CYRILLIC CAPITAL LETTER TE*/ + 0x423, /* U+000423: CYRILLIC CAPITAL LETTER U*/ + 0x424, /* U+000424: CYRILLIC CAPITAL LETTER EF*/ + 0x425, /* U+000425: CYRILLIC CAPITAL LETTER HA*/ + 0x426, /* U+000426: CYRILLIC CAPITAL LETTER TSE*/ + 0x427, /* U+000427: CYRILLIC CAPITAL LETTER CHE*/ + 0x428, /* U+000428: CYRILLIC CAPITAL LETTER SHA*/ + 0x429, /* U+000429: CYRILLIC CAPITAL LETTER SHCHA*/ + 0x42a, /* U+00042a: CYRILLIC CAPITAL LETTER HARD SIGN*/ + 0x42b, /* U+00042b: CYRILLIC CAPITAL LETTER YERU*/ + 0x42c, /* U+00042c: CYRILLIC CAPITAL LETTER SOFT SIGN*/ + 0x42d, /* U+00042d: CYRILLIC CAPITAL LETTER E*/ + 0x42e, /* U+00042e: CYRILLIC CAPITAL LETTER YU*/ + 0x42f, /* U+00042f: CYRILLIC CAPITAL LETTER YA*/ + 0x410, /* U+000430: CYRILLIC SMALL LETTER A*/ + 0x411, /* U+000431: CYRILLIC SMALL LETTER BE*/ + 0x412, /* U+000432: CYRILLIC SMALL LETTER VE*/ + 0x413, /* U+000433: CYRILLIC SMALL LETTER GHE*/ + 0x414, /* U+000434: CYRILLIC SMALL LETTER DE*/ + 0x415, /* U+000435: CYRILLIC SMALL LETTER IE*/ + 0x416, /* U+000436: CYRILLIC SMALL LETTER ZHE*/ + 0x417, /* U+000437: CYRILLIC SMALL LETTER ZE*/ + 0x418, /* U+000438: CYRILLIC SMALL LETTER I*/ + 0x419, /* U+000439: CYRILLIC SMALL LETTER SHORT I*/ + 0x41a, /* U+00043a: CYRILLIC SMALL LETTER KA*/ + 0x41b, /* U+00043b: CYRILLIC SMALL LETTER EL*/ + 0x41c, /* U+00043c: CYRILLIC SMALL LETTER EM*/ + 0x41d, /* U+00043d: CYRILLIC SMALL LETTER EN*/ + 0x41e, /* U+00043e: CYRILLIC SMALL LETTER O*/ + 0x41f, /* U+00043f: CYRILLIC SMALL LETTER PE*/ + 0x420, /* U+000440: CYRILLIC SMALL LETTER ER*/ + 0x421, /* U+000441: CYRILLIC SMALL LETTER ES*/ + 0x422, /* U+000442: CYRILLIC SMALL LETTER TE*/ + 0x423, /* U+000443: CYRILLIC SMALL LETTER U*/ + 0x424, /* U+000444: CYRILLIC SMALL LETTER EF*/ + 0x425, /* U+000445: CYRILLIC SMALL LETTER HA*/ + 0x426, /* U+000446: CYRILLIC SMALL LETTER TSE*/ + 0x427, /* U+000447: CYRILLIC SMALL LETTER CHE*/ + 0x428, /* U+000448: CYRILLIC SMALL LETTER SHA*/ + 0x429, /* U+000449: CYRILLIC SMALL LETTER SHCHA*/ + 0x42a, /* U+00044a: CYRILLIC SMALL LETTER HARD SIGN*/ + 0x42b, /* U+00044b: CYRILLIC SMALL LETTER YERU*/ + 0x42c, /* U+00044c: CYRILLIC SMALL LETTER SOFT SIGN*/ + 0x42d, /* U+00044d: CYRILLIC SMALL LETTER E*/ + 0x42e, /* U+00044e: CYRILLIC SMALL LETTER YU*/ + 0x42f, /* U+00044f: CYRILLIC SMALL LETTER YA*/ + 0x400, /* U+000450: CYRILLIC SMALL LETTER IE WITH GRAVE*/ + 0x401, /* U+000451: CYRILLIC SMALL LETTER IO*/ + 0x402, /* U+000452: CYRILLIC SMALL LETTER DJE*/ + 0x403, /* U+000453: CYRILLIC SMALL LETTER GJE*/ + 0x404, /* U+000454: CYRILLIC SMALL LETTER UKRAINIAN IE*/ + 0x405, /* U+000455: CYRILLIC SMALL LETTER DZE*/ + 0x406, /* U+000456: CYRILLIC SMALL LETTER BYELORUSSIAN-UKRAINIAN I*/ + 0x407, /* U+000457: CYRILLIC SMALL LETTER YI*/ + 0x408, /* U+000458: CYRILLIC SMALL LETTER JE*/ + 0x409, /* U+000459: CYRILLIC SMALL LETTER LJE*/ + 0x40a, /* U+00045a: CYRILLIC SMALL LETTER NJE*/ + 0x40b, /* U+00045b: CYRILLIC SMALL LETTER TSHE*/ + 0x40c, /* U+00045c: CYRILLIC SMALL LETTER KJE*/ + 0x40d, /* U+00045d: CYRILLIC SMALL LETTER I WITH GRAVE*/ + 0x40e, /* U+00045e: CYRILLIC SMALL LETTER SHORT U*/ + 0x40f, /* U+00045f: CYRILLIC SMALL LETTER DZHE*/ + 0x460, /* U+000460: CYRILLIC CAPITAL LETTER OMEGA*/ + 0x460, /* U+000461: CYRILLIC SMALL LETTER OMEGA*/ + 0x462, /* U+000462: CYRILLIC CAPITAL LETTER YAT*/ + 0x462, /* U+000463: CYRILLIC SMALL LETTER YAT*/ + 0x464, /* U+000464: CYRILLIC CAPITAL LETTER IOTIFIED E*/ + 0x464, /* U+000465: CYRILLIC SMALL LETTER IOTIFIED E*/ + 0x466, /* U+000466: CYRILLIC CAPITAL LETTER LITTLE YUS*/ + 0x466, /* U+000467: CYRILLIC SMALL LETTER LITTLE YUS*/ + 0x468, /* U+000468: CYRILLIC CAPITAL LETTER IOTIFIED LITTLE YUS*/ + 0x468, /* U+000469: CYRILLIC SMALL LETTER IOTIFIED LITTLE YUS*/ + 0x46a, /* U+00046a: CYRILLIC CAPITAL LETTER BIG YUS*/ + 0x46a, /* U+00046b: CYRILLIC SMALL LETTER BIG YUS*/ + 0x46c, /* U+00046c: CYRILLIC CAPITAL LETTER IOTIFIED BIG YUS*/ + 0x46c, /* U+00046d: CYRILLIC SMALL LETTER IOTIFIED BIG YUS*/ + 0x46e, /* U+00046e: CYRILLIC CAPITAL LETTER KSI*/ + 0x46e, /* U+00046f: CYRILLIC SMALL LETTER KSI*/ + 0x470, /* U+000470: CYRILLIC CAPITAL LETTER PSI*/ + 0x470, /* U+000471: CYRILLIC SMALL LETTER PSI*/ + 0x472, /* U+000472: CYRILLIC CAPITAL LETTER FITA*/ + 0x472, /* U+000473: CYRILLIC SMALL LETTER FITA*/ + 0x474, /* U+000474: CYRILLIC CAPITAL LETTER IZHITSA*/ + 0x474, /* U+000475: CYRILLIC SMALL LETTER IZHITSA*/ + 0x476, /* U+000476: CYRILLIC CAPITAL LETTER IZHITSA WITH DOUBLE GRAVE ACCENT*/ + 0x476, /* U+000477: CYRILLIC SMALL LETTER IZHITSA WITH DOUBLE GRAVE ACCENT*/ + 0x478, /* U+000478: CYRILLIC CAPITAL LETTER UK*/ + 0x478, /* U+000479: CYRILLIC SMALL LETTER UK*/ + 0x47a, /* U+00047a: CYRILLIC CAPITAL LETTER ROUND OMEGA*/ + 0x47a, /* U+00047b: CYRILLIC SMALL LETTER ROUND OMEGA*/ + 0x47c, /* U+00047c: CYRILLIC CAPITAL LETTER OMEGA WITH TITLO*/ + 0x47c, /* U+00047d: CYRILLIC SMALL LETTER OMEGA WITH TITLO*/ + 0x47e, /* U+00047e: CYRILLIC CAPITAL LETTER OT*/ + 0x47e, /* U+00047f: CYRILLIC SMALL LETTER OT*/ + 0x480, /* U+000480: CYRILLIC CAPITAL LETTER KOPPA*/ + 0x480, /* U+000481: CYRILLIC SMALL LETTER KOPPA*/ + 0x482, /* U+000482: CYRILLIC THOUSANDS SIGN*/ + 0x483, /* U+000483: COMBINING CYRILLIC TITLO*/ + 0x484, /* U+000484: COMBINING CYRILLIC PALATALIZATION*/ + 0x485, /* U+000485: COMBINING CYRILLIC DASIA PNEUMATA*/ + 0x486, /* U+000486: COMBINING CYRILLIC PSILI PNEUMATA*/ + 0x487, /* U+000487: COMBINING CYRILLIC POKRYTIE*/ + 0x488, /* U+000488: COMBINING CYRILLIC HUNDRED THOUSANDS SIGN*/ + 0x489, /* U+000489: COMBINING CYRILLIC MILLIONS SIGN*/ + 0x48a, /* U+00048a: CYRILLIC CAPITAL LETTER SHORT I WITH TAIL*/ + 0x48a, /* U+00048b: CYRILLIC SMALL LETTER SHORT I WITH TAIL*/ + 0x48c, /* U+00048c: CYRILLIC CAPITAL LETTER SEMISOFT SIGN*/ + 0x48c, /* U+00048d: CYRILLIC SMALL LETTER SEMISOFT SIGN*/ + 0x48e, /* U+00048e: CYRILLIC CAPITAL LETTER ER WITH TICK*/ + 0x48e, /* U+00048f: CYRILLIC SMALL LETTER ER WITH TICK*/ + 0x490, /* U+000490: CYRILLIC CAPITAL LETTER GHE WITH UPTURN*/ + 0x490, /* U+000491: CYRILLIC SMALL LETTER GHE WITH UPTURN*/ + 0x492, /* U+000492: CYRILLIC CAPITAL LETTER GHE WITH STROKE*/ + 0x492, /* U+000493: CYRILLIC SMALL LETTER GHE WITH STROKE*/ + 0x494, /* U+000494: CYRILLIC CAPITAL LETTER GHE WITH MIDDLE HOOK*/ + 0x494, /* U+000495: CYRILLIC SMALL LETTER GHE WITH MIDDLE HOOK*/ + 0x496, /* U+000496: CYRILLIC CAPITAL LETTER ZHE WITH DESCENDER*/ + 0x496, /* U+000497: CYRILLIC SMALL LETTER ZHE WITH DESCENDER*/ + 0x498, /* U+000498: CYRILLIC CAPITAL LETTER ZE WITH DESCENDER*/ + 0x498, /* U+000499: CYRILLIC SMALL LETTER ZE WITH DESCENDER*/ + 0x49a, /* U+00049a: CYRILLIC CAPITAL LETTER KA WITH DESCENDER*/ + 0x49a, /* U+00049b: CYRILLIC SMALL LETTER KA WITH DESCENDER*/ + 0x49c, /* U+00049c: CYRILLIC CAPITAL LETTER KA WITH VERTICAL STROKE*/ + 0x49c, /* U+00049d: CYRILLIC SMALL LETTER KA WITH VERTICAL STROKE*/ + 0x49e, /* U+00049e: CYRILLIC CAPITAL LETTER KA WITH STROKE*/ + 0x49e, /* U+00049f: CYRILLIC SMALL LETTER KA WITH STROKE*/ + 0x4a0, /* U+0004a0: CYRILLIC CAPITAL LETTER BASHKIR KA*/ + 0x4a0, /* U+0004a1: CYRILLIC SMALL LETTER BASHKIR KA*/ + 0x4a2, /* U+0004a2: CYRILLIC CAPITAL LETTER EN WITH DESCENDER*/ + 0x4a2, /* U+0004a3: CYRILLIC SMALL LETTER EN WITH DESCENDER*/ + 0x4a4, /* U+0004a4: CYRILLIC CAPITAL LIGATURE EN GHE*/ + 0x4a4, /* U+0004a5: CYRILLIC SMALL LIGATURE EN GHE*/ + 0x4a6, /* U+0004a6: CYRILLIC CAPITAL LETTER PE WITH MIDDLE HOOK*/ + 0x4a6, /* U+0004a7: CYRILLIC SMALL LETTER PE WITH MIDDLE HOOK*/ + 0x4a8, /* U+0004a8: CYRILLIC CAPITAL LETTER ABKHASIAN HA*/ + 0x4a8, /* U+0004a9: CYRILLIC SMALL LETTER ABKHASIAN HA*/ + 0x4aa, /* U+0004aa: CYRILLIC CAPITAL LETTER ES WITH DESCENDER*/ + 0x4aa, /* U+0004ab: CYRILLIC SMALL LETTER ES WITH DESCENDER*/ + 0x4ac, /* U+0004ac: CYRILLIC CAPITAL LETTER TE WITH DESCENDER*/ + 0x4ac, /* U+0004ad: CYRILLIC SMALL LETTER TE WITH DESCENDER*/ + 0x4ae, /* U+0004ae: CYRILLIC CAPITAL LETTER STRAIGHT U*/ + 0x4ae, /* U+0004af: CYRILLIC SMALL LETTER STRAIGHT U*/ + 0x4b0, /* U+0004b0: CYRILLIC CAPITAL LETTER STRAIGHT U WITH STROKE*/ + 0x4b0, /* U+0004b1: CYRILLIC SMALL LETTER STRAIGHT U WITH STROKE*/ + 0x4b2, /* U+0004b2: CYRILLIC CAPITAL LETTER HA WITH DESCENDER*/ + 0x4b2, /* U+0004b3: CYRILLIC SMALL LETTER HA WITH DESCENDER*/ + 0x4b4, /* U+0004b4: CYRILLIC CAPITAL LIGATURE TE TSE*/ + 0x4b4, /* U+0004b5: CYRILLIC SMALL LIGATURE TE TSE*/ + 0x4b6, /* U+0004b6: CYRILLIC CAPITAL LETTER CHE WITH DESCENDER*/ + 0x4b6, /* U+0004b7: CYRILLIC SMALL LETTER CHE WITH DESCENDER*/ + 0x4b8, /* U+0004b8: CYRILLIC CAPITAL LETTER CHE WITH VERTICAL STROKE*/ + 0x4b8, /* U+0004b9: CYRILLIC SMALL LETTER CHE WITH VERTICAL STROKE*/ + 0x4ba, /* U+0004ba: CYRILLIC CAPITAL LETTER SHHA*/ + 0x4ba, /* U+0004bb: CYRILLIC SMALL LETTER SHHA*/ + 0x4bc, /* U+0004bc: CYRILLIC CAPITAL LETTER ABKHASIAN CHE*/ + 0x4bc, /* U+0004bd: CYRILLIC SMALL LETTER ABKHASIAN CHE*/ + 0x4be, /* U+0004be: CYRILLIC CAPITAL LETTER ABKHASIAN CHE WITH DESCENDER*/ + 0x4be, /* U+0004bf: CYRILLIC SMALL LETTER ABKHASIAN CHE WITH DESCENDER*/ + 0x4c0, /* U+0004c0: CYRILLIC LETTER PALOCHKA*/ + 0x4c1, /* U+0004c1: CYRILLIC CAPITAL LETTER ZHE WITH BREVE*/ + 0x4c1, /* U+0004c2: CYRILLIC SMALL LETTER ZHE WITH BREVE*/ + 0x4c3, /* U+0004c3: CYRILLIC CAPITAL LETTER KA WITH HOOK*/ + 0x4c3, /* U+0004c4: CYRILLIC SMALL LETTER KA WITH HOOK*/ + 0x4c5, /* U+0004c5: CYRILLIC CAPITAL LETTER EL WITH TAIL*/ + 0x4c5, /* U+0004c6: CYRILLIC SMALL LETTER EL WITH TAIL*/ + 0x4c7, /* U+0004c7: CYRILLIC CAPITAL LETTER EN WITH HOOK*/ + 0x4c7, /* U+0004c8: CYRILLIC SMALL LETTER EN WITH HOOK*/ + 0x4c9, /* U+0004c9: CYRILLIC CAPITAL LETTER EN WITH TAIL*/ + 0x4c9, /* U+0004ca: CYRILLIC SMALL LETTER EN WITH TAIL*/ + 0x4cb, /* U+0004cb: CYRILLIC CAPITAL LETTER KHAKASSIAN CHE*/ + 0x4cb, /* U+0004cc: CYRILLIC SMALL LETTER KHAKASSIAN CHE*/ + 0x4cd, /* U+0004cd: CYRILLIC CAPITAL LETTER EM WITH TAIL*/ + 0x4cd, /* U+0004ce: CYRILLIC SMALL LETTER EM WITH TAIL*/ + 0x4c0, /* U+0004cf: CYRILLIC SMALL LETTER PALOCHKA*/ + 0x4d0, /* U+0004d0: CYRILLIC CAPITAL LETTER A WITH BREVE*/ + 0x4d0, /* U+0004d1: CYRILLIC SMALL LETTER A WITH BREVE*/ + 0x4d2, /* U+0004d2: CYRILLIC CAPITAL LETTER A WITH DIAERESIS*/ + 0x4d2, /* U+0004d3: CYRILLIC SMALL LETTER A WITH DIAERESIS*/ + 0x4d4, /* U+0004d4: CYRILLIC CAPITAL LIGATURE A IE*/ + 0x4d4, /* U+0004d5: CYRILLIC SMALL LIGATURE A IE*/ + 0x4d6, /* U+0004d6: CYRILLIC CAPITAL LETTER IE WITH BREVE*/ + 0x4d6, /* U+0004d7: CYRILLIC SMALL LETTER IE WITH BREVE*/ + 0x4d8, /* U+0004d8: CYRILLIC CAPITAL LETTER SCHWA*/ + 0x4d8, /* U+0004d9: CYRILLIC SMALL LETTER SCHWA*/ + 0x4da, /* U+0004da: CYRILLIC CAPITAL LETTER SCHWA WITH DIAERESIS*/ + 0x4da, /* U+0004db: CYRILLIC SMALL LETTER SCHWA WITH DIAERESIS*/ + 0x4dc, /* U+0004dc: CYRILLIC CAPITAL LETTER ZHE WITH DIAERESIS*/ + 0x4dc, /* U+0004dd: CYRILLIC SMALL LETTER ZHE WITH DIAERESIS*/ + 0x4de, /* U+0004de: CYRILLIC CAPITAL LETTER ZE WITH DIAERESIS*/ + 0x4de, /* U+0004df: CYRILLIC SMALL LETTER ZE WITH DIAERESIS*/ + 0x4e0, /* U+0004e0: CYRILLIC CAPITAL LETTER ABKHASIAN DZE*/ + 0x4e0, /* U+0004e1: CYRILLIC SMALL LETTER ABKHASIAN DZE*/ + 0x4e2, /* U+0004e2: CYRILLIC CAPITAL LETTER I WITH MACRON*/ + 0x4e2, /* U+0004e3: CYRILLIC SMALL LETTER I WITH MACRON*/ + 0x4e4, /* U+0004e4: CYRILLIC CAPITAL LETTER I WITH DIAERESIS*/ + 0x4e4, /* U+0004e5: CYRILLIC SMALL LETTER I WITH DIAERESIS*/ + 0x4e6, /* U+0004e6: CYRILLIC CAPITAL LETTER O WITH DIAERESIS*/ + 0x4e6, /* U+0004e7: CYRILLIC SMALL LETTER O WITH DIAERESIS*/ + 0x4e8, /* U+0004e8: CYRILLIC CAPITAL LETTER BARRED O*/ + 0x4e8, /* U+0004e9: CYRILLIC SMALL LETTER BARRED O*/ + 0x4ea, /* U+0004ea: CYRILLIC CAPITAL LETTER BARRED O WITH DIAERESIS*/ + 0x4ea, /* U+0004eb: CYRILLIC SMALL LETTER BARRED O WITH DIAERESIS*/ + 0x4ec, /* U+0004ec: CYRILLIC CAPITAL LETTER E WITH DIAERESIS*/ + 0x4ec, /* U+0004ed: CYRILLIC SMALL LETTER E WITH DIAERESIS*/ + 0x4ee, /* U+0004ee: CYRILLIC CAPITAL LETTER U WITH MACRON*/ + 0x4ee, /* U+0004ef: CYRILLIC SMALL LETTER U WITH MACRON*/ + 0x4f0, /* U+0004f0: CYRILLIC CAPITAL LETTER U WITH DIAERESIS*/ + 0x4f0, /* U+0004f1: CYRILLIC SMALL LETTER U WITH DIAERESIS*/ + 0x4f2, /* U+0004f2: CYRILLIC CAPITAL LETTER U WITH DOUBLE ACUTE*/ + 0x4f2, /* U+0004f3: CYRILLIC SMALL LETTER U WITH DOUBLE ACUTE*/ + 0x4f4, /* U+0004f4: CYRILLIC CAPITAL LETTER CHE WITH DIAERESIS*/ + 0x4f4, /* U+0004f5: CYRILLIC SMALL LETTER CHE WITH DIAERESIS*/ + 0x4f6, /* U+0004f6: CYRILLIC CAPITAL LETTER GHE WITH DESCENDER*/ + 0x4f6, /* U+0004f7: CYRILLIC SMALL LETTER GHE WITH DESCENDER*/ + 0x4f8, /* U+0004f8: CYRILLIC CAPITAL LETTER YERU WITH DIAERESIS*/ + 0x4f8, /* U+0004f9: CYRILLIC SMALL LETTER YERU WITH DIAERESIS*/ + 0x4fa, /* U+0004fa: CYRILLIC CAPITAL LETTER GHE WITH STROKE AND HOOK*/ + 0x4fa, /* U+0004fb: CYRILLIC SMALL LETTER GHE WITH STROKE AND HOOK*/ + 0x4fc, /* U+0004fc: CYRILLIC CAPITAL LETTER HA WITH HOOK*/ + 0x4fc, /* U+0004fd: CYRILLIC SMALL LETTER HA WITH HOOK*/ + 0x4fe, /* U+0004fe: CYRILLIC CAPITAL LETTER HA WITH STROKE*/ + 0x4fe, /* U+0004ff: CYRILLIC SMALL LETTER HA WITH STROKE*/ + 0x500, /* U+000500: CYRILLIC CAPITAL LETTER KOMI DE*/ + 0x500, /* U+000501: CYRILLIC SMALL LETTER KOMI DE*/ + 0x502, /* U+000502: CYRILLIC CAPITAL LETTER KOMI DJE*/ + 0x502, /* U+000503: CYRILLIC SMALL LETTER KOMI DJE*/ + 0x504, /* U+000504: CYRILLIC CAPITAL LETTER KOMI ZJE*/ + 0x504, /* U+000505: CYRILLIC SMALL LETTER KOMI ZJE*/ + 0x506, /* U+000506: CYRILLIC CAPITAL LETTER KOMI DZJE*/ + 0x506, /* U+000507: CYRILLIC SMALL LETTER KOMI DZJE*/ + 0x508, /* U+000508: CYRILLIC CAPITAL LETTER KOMI LJE*/ + 0x508, /* U+000509: CYRILLIC SMALL LETTER KOMI LJE*/ + 0x50a, /* U+00050a: CYRILLIC CAPITAL LETTER KOMI NJE*/ + 0x50a, /* U+00050b: CYRILLIC SMALL LETTER KOMI NJE*/ + 0x50c, /* U+00050c: CYRILLIC CAPITAL LETTER KOMI SJE*/ + 0x50c, /* U+00050d: CYRILLIC SMALL LETTER KOMI SJE*/ + 0x50e, /* U+00050e: CYRILLIC CAPITAL LETTER KOMI TJE*/ + 0x50e, /* U+00050f: CYRILLIC SMALL LETTER KOMI TJE*/ + 0x510, /* U+000510: CYRILLIC CAPITAL LETTER REVERSED ZE*/ + 0x510, /* U+000511: CYRILLIC SMALL LETTER REVERSED ZE*/ + 0x512, /* U+000512: CYRILLIC CAPITAL LETTER EL WITH HOOK*/ + 0x512, /* U+000513: CYRILLIC SMALL LETTER EL WITH HOOK*/ + 0x514, /* U+000514: CYRILLIC CAPITAL LETTER LHA*/ + 0x514, /* U+000515: CYRILLIC SMALL LETTER LHA*/ + 0x516, /* U+000516: CYRILLIC CAPITAL LETTER RHA*/ + 0x516, /* U+000517: CYRILLIC SMALL LETTER RHA*/ + 0x518, /* U+000518: CYRILLIC CAPITAL LETTER YAE*/ + 0x518, /* U+000519: CYRILLIC SMALL LETTER YAE*/ + 0x51a, /* U+00051a: CYRILLIC CAPITAL LETTER QA*/ + 0x51a, /* U+00051b: CYRILLIC SMALL LETTER QA*/ + 0x51c, /* U+00051c: CYRILLIC CAPITAL LETTER WE*/ + 0x51c, /* U+00051d: CYRILLIC SMALL LETTER WE*/ + 0x51e, /* U+00051e: CYRILLIC CAPITAL LETTER ALEUT KA*/ + 0x51e, /* U+00051f: CYRILLIC SMALL LETTER ALEUT KA*/ + 0x520, /* U+000520: CYRILLIC CAPITAL LETTER EL WITH MIDDLE HOOK*/ + 0x520, /* U+000521: CYRILLIC SMALL LETTER EL WITH MIDDLE HOOK*/ + 0x522, /* U+000522: CYRILLIC CAPITAL LETTER EN WITH MIDDLE HOOK*/ + 0x522, /* U+000523: CYRILLIC SMALL LETTER EN WITH MIDDLE HOOK*/ + 0x524, /* U+000524: CYRILLIC CAPITAL LETTER PE WITH DESCENDER*/ + 0x524, /* U+000525: CYRILLIC SMALL LETTER PE WITH DESCENDER*/ + 0x526, /* U+000526: CYRILLIC CAPITAL LETTER SHHA WITH DESCENDER*/ + 0x526, /* U+000527: CYRILLIC SMALL LETTER SHHA WITH DESCENDER*/ + 0x528, /* U+000528: */ + 0x529, /* U+000529: */ + 0x52a, /* U+00052a: */ + 0x52b, /* U+00052b: */ + 0x52c, /* U+00052c: */ + 0x52d, /* U+00052d: */ + 0x52e, /* U+00052e: */ + 0x52f, /* U+00052f: */ + 0x530, /* U+000530: */ + 0x531, /* U+000531: ARMENIAN CAPITAL LETTER AYB*/ + 0x532, /* U+000532: ARMENIAN CAPITAL LETTER BEN*/ + 0x533, /* U+000533: ARMENIAN CAPITAL LETTER GIM*/ + 0x534, /* U+000534: ARMENIAN CAPITAL LETTER DA*/ + 0x535, /* U+000535: ARMENIAN CAPITAL LETTER ECH*/ + 0x536, /* U+000536: ARMENIAN CAPITAL LETTER ZA*/ + 0x537, /* U+000537: ARMENIAN CAPITAL LETTER EH*/ + 0x538, /* U+000538: ARMENIAN CAPITAL LETTER ET*/ + 0x539, /* U+000539: ARMENIAN CAPITAL LETTER TO*/ + 0x53a, /* U+00053a: ARMENIAN CAPITAL LETTER ZHE*/ + 0x53b, /* U+00053b: ARMENIAN CAPITAL LETTER INI*/ + 0x53c, /* U+00053c: ARMENIAN CAPITAL LETTER LIWN*/ + 0x53d, /* U+00053d: ARMENIAN CAPITAL LETTER XEH*/ + 0x53e, /* U+00053e: ARMENIAN CAPITAL LETTER CA*/ + 0x53f, /* U+00053f: ARMENIAN CAPITAL LETTER KEN*/ + 0x540, /* U+000540: ARMENIAN CAPITAL LETTER HO*/ + 0x541, /* U+000541: ARMENIAN CAPITAL LETTER JA*/ + 0x542, /* U+000542: ARMENIAN CAPITAL LETTER GHAD*/ + 0x543, /* U+000543: ARMENIAN CAPITAL LETTER CHEH*/ + 0x544, /* U+000544: ARMENIAN CAPITAL LETTER MEN*/ + 0x545, /* U+000545: ARMENIAN CAPITAL LETTER YI*/ + 0x546, /* U+000546: ARMENIAN CAPITAL LETTER NOW*/ + 0x547, /* U+000547: ARMENIAN CAPITAL LETTER SHA*/ + 0x548, /* U+000548: ARMENIAN CAPITAL LETTER VO*/ + 0x549, /* U+000549: ARMENIAN CAPITAL LETTER CHA*/ + 0x54a, /* U+00054a: ARMENIAN CAPITAL LETTER PEH*/ + 0x54b, /* U+00054b: ARMENIAN CAPITAL LETTER JHEH*/ + 0x54c, /* U+00054c: ARMENIAN CAPITAL LETTER RA*/ + 0x54d, /* U+00054d: ARMENIAN CAPITAL LETTER SEH*/ + 0x54e, /* U+00054e: ARMENIAN CAPITAL LETTER VEW*/ + 0x54f, /* U+00054f: ARMENIAN CAPITAL LETTER TIWN*/ + 0x550, /* U+000550: ARMENIAN CAPITAL LETTER REH*/ + 0x551, /* U+000551: ARMENIAN CAPITAL LETTER CO*/ + 0x552, /* U+000552: ARMENIAN CAPITAL LETTER YIWN*/ + 0x553, /* U+000553: ARMENIAN CAPITAL LETTER PIWR*/ + 0x554, /* U+000554: ARMENIAN CAPITAL LETTER KEH*/ + 0x555, /* U+000555: ARMENIAN CAPITAL LETTER OH*/ + 0x556, /* U+000556: ARMENIAN CAPITAL LETTER FEH*/ + 0x557, /* U+000557: */ + 0x558, /* U+000558: */ + 0x559, /* U+000559: ARMENIAN MODIFIER LETTER LEFT HALF RING*/ + 0x55a, /* U+00055a: ARMENIAN APOSTROPHE*/ + 0x55b, /* U+00055b: ARMENIAN EMPHASIS MARK*/ + 0x55c, /* U+00055c: ARMENIAN EXCLAMATION MARK*/ + 0x55d, /* U+00055d: ARMENIAN COMMA*/ + 0x55e, /* U+00055e: ARMENIAN QUESTION MARK*/ + 0x55f, /* U+00055f: ARMENIAN ABBREVIATION MARK*/ + 0x560, /* U+000560: */ + 0x531, /* U+000561: ARMENIAN SMALL LETTER AYB*/ + 0x532, /* U+000562: ARMENIAN SMALL LETTER BEN*/ + 0x533, /* U+000563: ARMENIAN SMALL LETTER GIM*/ + 0x534, /* U+000564: ARMENIAN SMALL LETTER DA*/ + 0x535, /* U+000565: ARMENIAN SMALL LETTER ECH*/ + 0x536, /* U+000566: ARMENIAN SMALL LETTER ZA*/ + 0x537, /* U+000567: ARMENIAN SMALL LETTER EH*/ + 0x538, /* U+000568: ARMENIAN SMALL LETTER ET*/ + 0x539, /* U+000569: ARMENIAN SMALL LETTER TO*/ + 0x53a, /* U+00056a: ARMENIAN SMALL LETTER ZHE*/ + 0x53b, /* U+00056b: ARMENIAN SMALL LETTER INI*/ + 0x53c, /* U+00056c: ARMENIAN SMALL LETTER LIWN*/ + 0x53d, /* U+00056d: ARMENIAN SMALL LETTER XEH*/ + 0x53e, /* U+00056e: ARMENIAN SMALL LETTER CA*/ + 0x53f, /* U+00056f: ARMENIAN SMALL LETTER KEN*/ + 0x540, /* U+000570: ARMENIAN SMALL LETTER HO*/ + 0x541, /* U+000571: ARMENIAN SMALL LETTER JA*/ + 0x542, /* U+000572: ARMENIAN SMALL LETTER GHAD*/ + 0x543, /* U+000573: ARMENIAN SMALL LETTER CHEH*/ + 0x544, /* U+000574: ARMENIAN SMALL LETTER MEN*/ + 0x545, /* U+000575: ARMENIAN SMALL LETTER YI*/ + 0x546, /* U+000576: ARMENIAN SMALL LETTER NOW*/ + 0x547, /* U+000577: ARMENIAN SMALL LETTER SHA*/ + 0x548, /* U+000578: ARMENIAN SMALL LETTER VO*/ + 0x549, /* U+000579: ARMENIAN SMALL LETTER CHA*/ + 0x54a, /* U+00057a: ARMENIAN SMALL LETTER PEH*/ + 0x54b, /* U+00057b: ARMENIAN SMALL LETTER JHEH*/ + 0x54c, /* U+00057c: ARMENIAN SMALL LETTER RA*/ + 0x54d, /* U+00057d: ARMENIAN SMALL LETTER SEH*/ + 0x54e, /* U+00057e: ARMENIAN SMALL LETTER VEW*/ + 0x54f, /* U+00057f: ARMENIAN SMALL LETTER TIWN*/ + 0x550, /* U+000580: ARMENIAN SMALL LETTER REH*/ + 0x551, /* U+000581: ARMENIAN SMALL LETTER CO*/ + 0x552, /* U+000582: ARMENIAN SMALL LETTER YIWN*/ + 0x553, /* U+000583: ARMENIAN SMALL LETTER PIWR*/ + 0x554, /* U+000584: ARMENIAN SMALL LETTER KEH*/ + 0x555, /* U+000585: ARMENIAN SMALL LETTER OH*/ + 0x556, /* U+000586: ARMENIAN SMALL LETTER FEH*/ +}; + +static const RTUNICP g_afRTUniUpper0x001d79[] = +{ + 0xa77d, /* U+001d79: LATIN SMALL LETTER INSULAR G*/ + 0x1d7a, /* U+001d7a: LATIN SMALL LETTER TH WITH STRIKETHROUGH*/ + 0x1d7b, /* U+001d7b: LATIN SMALL CAPITAL LETTER I WITH STROKE*/ + 0x1d7c, /* U+001d7c: LATIN SMALL LETTER IOTA WITH STROKE*/ + 0x2c63, /* U+001d7d: LATIN SMALL LETTER P WITH STROKE*/ + 0x1d7e, /* U+001d7e: LATIN SMALL CAPITAL LETTER U WITH STROKE*/ + 0x1d7f, /* U+001d7f: LATIN SMALL LETTER UPSILON WITH STROKE*/ + 0x1d80, /* U+001d80: LATIN SMALL LETTER B WITH PALATAL HOOK*/ + 0x1d81, /* U+001d81: LATIN SMALL LETTER D WITH PALATAL HOOK*/ + 0x1d82, /* U+001d82: LATIN SMALL LETTER F WITH PALATAL HOOK*/ + 0x1d83, /* U+001d83: LATIN SMALL LETTER G WITH PALATAL HOOK*/ + 0x1d84, /* U+001d84: LATIN SMALL LETTER K WITH PALATAL HOOK*/ + 0x1d85, /* U+001d85: LATIN SMALL LETTER L WITH PALATAL HOOK*/ + 0x1d86, /* U+001d86: LATIN SMALL LETTER M WITH PALATAL HOOK*/ + 0x1d87, /* U+001d87: LATIN SMALL LETTER N WITH PALATAL HOOK*/ + 0x1d88, /* U+001d88: LATIN SMALL LETTER P WITH PALATAL HOOK*/ + 0x1d89, /* U+001d89: LATIN SMALL LETTER R WITH PALATAL HOOK*/ + 0x1d8a, /* U+001d8a: LATIN SMALL LETTER S WITH PALATAL HOOK*/ + 0x1d8b, /* U+001d8b: LATIN SMALL LETTER ESH WITH PALATAL HOOK*/ + 0x1d8c, /* U+001d8c: LATIN SMALL LETTER V WITH PALATAL HOOK*/ + 0x1d8d, /* U+001d8d: LATIN SMALL LETTER X WITH PALATAL HOOK*/ + 0x1d8e, /* U+001d8e: LATIN SMALL LETTER Z WITH PALATAL HOOK*/ + 0x1d8f, /* U+001d8f: LATIN SMALL LETTER A WITH RETROFLEX HOOK*/ + 0x1d90, /* U+001d90: LATIN SMALL LETTER ALPHA WITH RETROFLEX HOOK*/ + 0x1d91, /* U+001d91: LATIN SMALL LETTER D WITH HOOK AND TAIL*/ + 0x1d92, /* U+001d92: LATIN SMALL LETTER E WITH RETROFLEX HOOK*/ + 0x1d93, /* U+001d93: LATIN SMALL LETTER OPEN E WITH RETROFLEX HOOK*/ + 0x1d94, /* U+001d94: LATIN SMALL LETTER REVERSED OPEN E WITH RETROFLEX HOOK*/ + 0x1d95, /* U+001d95: LATIN SMALL LETTER SCHWA WITH RETROFLEX HOOK*/ + 0x1d96, /* U+001d96: LATIN SMALL LETTER I WITH RETROFLEX HOOK*/ + 0x1d97, /* U+001d97: LATIN SMALL LETTER OPEN O WITH RETROFLEX HOOK*/ + 0x1d98, /* U+001d98: LATIN SMALL LETTER ESH WITH RETROFLEX HOOK*/ + 0x1d99, /* U+001d99: LATIN SMALL LETTER U WITH RETROFLEX HOOK*/ + 0x1d9a, /* U+001d9a: LATIN SMALL LETTER EZH WITH RETROFLEX HOOK*/ + 0x1d9b, /* U+001d9b: MODIFIER LETTER SMALL TURNED ALPHA*/ + 0x1d9c, /* U+001d9c: MODIFIER LETTER SMALL C*/ + 0x1d9d, /* U+001d9d: MODIFIER LETTER SMALL C WITH CURL*/ + 0x1d9e, /* U+001d9e: MODIFIER LETTER SMALL ETH*/ + 0x1d9f, /* U+001d9f: MODIFIER LETTER SMALL REVERSED OPEN E*/ + 0x1da0, /* U+001da0: MODIFIER LETTER SMALL F*/ + 0x1da1, /* U+001da1: MODIFIER LETTER SMALL DOTLESS J WITH STROKE*/ + 0x1da2, /* U+001da2: MODIFIER LETTER SMALL SCRIPT G*/ + 0x1da3, /* U+001da3: MODIFIER LETTER SMALL TURNED H*/ + 0x1da4, /* U+001da4: MODIFIER LETTER SMALL I WITH STROKE*/ + 0x1da5, /* U+001da5: MODIFIER LETTER SMALL IOTA*/ + 0x1da6, /* U+001da6: MODIFIER LETTER SMALL CAPITAL I*/ + 0x1da7, /* U+001da7: MODIFIER LETTER SMALL CAPITAL I WITH STROKE*/ + 0x1da8, /* U+001da8: MODIFIER LETTER SMALL J WITH CROSSED-TAIL*/ + 0x1da9, /* U+001da9: MODIFIER LETTER SMALL L WITH RETROFLEX HOOK*/ + 0x1daa, /* U+001daa: MODIFIER LETTER SMALL L WITH PALATAL HOOK*/ + 0x1dab, /* U+001dab: MODIFIER LETTER SMALL CAPITAL L*/ + 0x1dac, /* U+001dac: MODIFIER LETTER SMALL M WITH HOOK*/ + 0x1dad, /* U+001dad: MODIFIER LETTER SMALL TURNED M WITH LONG LEG*/ + 0x1dae, /* U+001dae: MODIFIER LETTER SMALL N WITH LEFT HOOK*/ + 0x1daf, /* U+001daf: MODIFIER LETTER SMALL N WITH RETROFLEX HOOK*/ + 0x1db0, /* U+001db0: MODIFIER LETTER SMALL CAPITAL N*/ + 0x1db1, /* U+001db1: MODIFIER LETTER SMALL BARRED O*/ + 0x1db2, /* U+001db2: MODIFIER LETTER SMALL PHI*/ + 0x1db3, /* U+001db3: MODIFIER LETTER SMALL S WITH HOOK*/ + 0x1db4, /* U+001db4: MODIFIER LETTER SMALL ESH*/ + 0x1db5, /* U+001db5: MODIFIER LETTER SMALL T WITH PALATAL HOOK*/ + 0x1db6, /* U+001db6: MODIFIER LETTER SMALL U BAR*/ + 0x1db7, /* U+001db7: MODIFIER LETTER SMALL UPSILON*/ + 0x1db8, /* U+001db8: MODIFIER LETTER SMALL CAPITAL U*/ + 0x1db9, /* U+001db9: MODIFIER LETTER SMALL V WITH HOOK*/ + 0x1dba, /* U+001dba: MODIFIER LETTER SMALL TURNED V*/ + 0x1dbb, /* U+001dbb: MODIFIER LETTER SMALL Z*/ + 0x1dbc, /* U+001dbc: MODIFIER LETTER SMALL Z WITH RETROFLEX HOOK*/ + 0x1dbd, /* U+001dbd: MODIFIER LETTER SMALL Z WITH CURL*/ + 0x1dbe, /* U+001dbe: MODIFIER LETTER SMALL EZH*/ + 0x1dbf, /* U+001dbf: MODIFIER LETTER SMALL THETA*/ + 0x1dc0, /* U+001dc0: COMBINING DOTTED GRAVE ACCENT*/ + 0x1dc1, /* U+001dc1: COMBINING DOTTED ACUTE ACCENT*/ + 0x1dc2, /* U+001dc2: COMBINING SNAKE BELOW*/ + 0x1dc3, /* U+001dc3: COMBINING SUSPENSION MARK*/ + 0x1dc4, /* U+001dc4: COMBINING MACRON-ACUTE*/ + 0x1dc5, /* U+001dc5: COMBINING GRAVE-MACRON*/ + 0x1dc6, /* U+001dc6: COMBINING MACRON-GRAVE*/ + 0x1dc7, /* U+001dc7: COMBINING ACUTE-MACRON*/ + 0x1dc8, /* U+001dc8: COMBINING GRAVE-ACUTE-GRAVE*/ + 0x1dc9, /* U+001dc9: COMBINING ACUTE-GRAVE-ACUTE*/ + 0x1dca, /* U+001dca: COMBINING LATIN SMALL LETTER R BELOW*/ + 0x1dcb, /* U+001dcb: COMBINING BREVE-MACRON*/ + 0x1dcc, /* U+001dcc: COMBINING MACRON-BREVE*/ + 0x1dcd, /* U+001dcd: COMBINING DOUBLE CIRCUMFLEX ABOVE*/ + 0x1dce, /* U+001dce: COMBINING OGONEK ABOVE*/ + 0x1dcf, /* U+001dcf: COMBINING ZIGZAG BELOW*/ + 0x1dd0, /* U+001dd0: COMBINING IS BELOW*/ + 0x1dd1, /* U+001dd1: COMBINING UR ABOVE*/ + 0x1dd2, /* U+001dd2: COMBINING US ABOVE*/ + 0x1dd3, /* U+001dd3: COMBINING LATIN SMALL LETTER FLATTENED OPEN A ABOVE*/ + 0x1dd4, /* U+001dd4: COMBINING LATIN SMALL LETTER AE*/ + 0x1dd5, /* U+001dd5: COMBINING LATIN SMALL LETTER AO*/ + 0x1dd6, /* U+001dd6: COMBINING LATIN SMALL LETTER AV*/ + 0x1dd7, /* U+001dd7: COMBINING LATIN SMALL LETTER C CEDILLA*/ + 0x1dd8, /* U+001dd8: COMBINING LATIN SMALL LETTER INSULAR D*/ + 0x1dd9, /* U+001dd9: COMBINING LATIN SMALL LETTER ETH*/ + 0x1dda, /* U+001dda: COMBINING LATIN SMALL LETTER G*/ + 0x1ddb, /* U+001ddb: COMBINING LATIN LETTER SMALL CAPITAL G*/ + 0x1ddc, /* U+001ddc: COMBINING LATIN SMALL LETTER K*/ + 0x1ddd, /* U+001ddd: COMBINING LATIN SMALL LETTER L*/ + 0x1dde, /* U+001dde: COMBINING LATIN LETTER SMALL CAPITAL L*/ + 0x1ddf, /* U+001ddf: COMBINING LATIN LETTER SMALL CAPITAL M*/ + 0x1de0, /* U+001de0: COMBINING LATIN SMALL LETTER N*/ + 0x1de1, /* U+001de1: COMBINING LATIN LETTER SMALL CAPITAL N*/ + 0x1de2, /* U+001de2: COMBINING LATIN LETTER SMALL CAPITAL R*/ + 0x1de3, /* U+001de3: COMBINING LATIN SMALL LETTER R ROTUNDA*/ + 0x1de4, /* U+001de4: COMBINING LATIN SMALL LETTER S*/ + 0x1de5, /* U+001de5: COMBINING LATIN SMALL LETTER LONG S*/ + 0x1de6, /* U+001de6: COMBINING LATIN SMALL LETTER Z*/ + 0x1de7, /* U+001de7: */ + 0x1de8, /* U+001de8: */ + 0x1de9, /* U+001de9: */ + 0x1dea, /* U+001dea: */ + 0x1deb, /* U+001deb: */ + 0x1dec, /* U+001dec: */ + 0x1ded, /* U+001ded: */ + 0x1dee, /* U+001dee: */ + 0x1def, /* U+001def: */ + 0x1df0, /* U+001df0: */ + 0x1df1, /* U+001df1: */ + 0x1df2, /* U+001df2: */ + 0x1df3, /* U+001df3: */ + 0x1df4, /* U+001df4: */ + 0x1df5, /* U+001df5: */ + 0x1df6, /* U+001df6: */ + 0x1df7, /* U+001df7: */ + 0x1df8, /* U+001df8: */ + 0x1df9, /* U+001df9: */ + 0x1dfa, /* U+001dfa: */ + 0x1dfb, /* U+001dfb: */ + 0x1dfc, /* U+001dfc: COMBINING DOUBLE INVERTED BREVE BELOW*/ + 0x1dfd, /* U+001dfd: COMBINING ALMOST EQUAL TO BELOW*/ + 0x1dfe, /* U+001dfe: COMBINING LEFT ARROWHEAD ABOVE*/ + 0x1dff, /* U+001dff: COMBINING RIGHT ARROWHEAD AND DOWN ARROWHEAD BELOW*/ + 0x1e00, /* U+001e00: LATIN CAPITAL LETTER A WITH RING BELOW*/ + 0x1e00, /* U+001e01: LATIN SMALL LETTER A WITH RING BELOW*/ + 0x1e02, /* U+001e02: LATIN CAPITAL LETTER B WITH DOT ABOVE*/ + 0x1e02, /* U+001e03: LATIN SMALL LETTER B WITH DOT ABOVE*/ + 0x1e04, /* U+001e04: LATIN CAPITAL LETTER B WITH DOT BELOW*/ + 0x1e04, /* U+001e05: LATIN SMALL LETTER B WITH DOT BELOW*/ + 0x1e06, /* U+001e06: LATIN CAPITAL LETTER B WITH LINE BELOW*/ + 0x1e06, /* U+001e07: LATIN SMALL LETTER B WITH LINE BELOW*/ + 0x1e08, /* U+001e08: LATIN CAPITAL LETTER C WITH CEDILLA AND ACUTE*/ + 0x1e08, /* U+001e09: LATIN SMALL LETTER C WITH CEDILLA AND ACUTE*/ + 0x1e0a, /* U+001e0a: LATIN CAPITAL LETTER D WITH DOT ABOVE*/ + 0x1e0a, /* U+001e0b: LATIN SMALL LETTER D WITH DOT ABOVE*/ + 0x1e0c, /* U+001e0c: LATIN CAPITAL LETTER D WITH DOT BELOW*/ + 0x1e0c, /* U+001e0d: LATIN SMALL LETTER D WITH DOT BELOW*/ + 0x1e0e, /* U+001e0e: LATIN CAPITAL LETTER D WITH LINE BELOW*/ + 0x1e0e, /* U+001e0f: LATIN SMALL LETTER D WITH LINE BELOW*/ + 0x1e10, /* U+001e10: LATIN CAPITAL LETTER D WITH CEDILLA*/ + 0x1e10, /* U+001e11: LATIN SMALL LETTER D WITH CEDILLA*/ + 0x1e12, /* U+001e12: LATIN CAPITAL LETTER D WITH CIRCUMFLEX BELOW*/ + 0x1e12, /* U+001e13: LATIN SMALL LETTER D WITH CIRCUMFLEX BELOW*/ + 0x1e14, /* U+001e14: LATIN CAPITAL LETTER E WITH MACRON AND GRAVE*/ + 0x1e14, /* U+001e15: LATIN SMALL LETTER E WITH MACRON AND GRAVE*/ + 0x1e16, /* U+001e16: LATIN CAPITAL LETTER E WITH MACRON AND ACUTE*/ + 0x1e16, /* U+001e17: LATIN SMALL LETTER E WITH MACRON AND ACUTE*/ + 0x1e18, /* U+001e18: LATIN CAPITAL LETTER E WITH CIRCUMFLEX BELOW*/ + 0x1e18, /* U+001e19: LATIN SMALL LETTER E WITH CIRCUMFLEX BELOW*/ + 0x1e1a, /* U+001e1a: LATIN CAPITAL LETTER E WITH TILDE BELOW*/ + 0x1e1a, /* U+001e1b: LATIN SMALL LETTER E WITH TILDE BELOW*/ + 0x1e1c, /* U+001e1c: LATIN CAPITAL LETTER E WITH CEDILLA AND BREVE*/ + 0x1e1c, /* U+001e1d: LATIN SMALL LETTER E WITH CEDILLA AND BREVE*/ + 0x1e1e, /* U+001e1e: LATIN CAPITAL LETTER F WITH DOT ABOVE*/ + 0x1e1e, /* U+001e1f: LATIN SMALL LETTER F WITH DOT ABOVE*/ + 0x1e20, /* U+001e20: LATIN CAPITAL LETTER G WITH MACRON*/ + 0x1e20, /* U+001e21: LATIN SMALL LETTER G WITH MACRON*/ + 0x1e22, /* U+001e22: LATIN CAPITAL LETTER H WITH DOT ABOVE*/ + 0x1e22, /* U+001e23: LATIN SMALL LETTER H WITH DOT ABOVE*/ + 0x1e24, /* U+001e24: LATIN CAPITAL LETTER H WITH DOT BELOW*/ + 0x1e24, /* U+001e25: LATIN SMALL LETTER H WITH DOT BELOW*/ + 0x1e26, /* U+001e26: LATIN CAPITAL LETTER H WITH DIAERESIS*/ + 0x1e26, /* U+001e27: LATIN SMALL LETTER H WITH DIAERESIS*/ + 0x1e28, /* U+001e28: LATIN CAPITAL LETTER H WITH CEDILLA*/ + 0x1e28, /* U+001e29: LATIN SMALL LETTER H WITH CEDILLA*/ + 0x1e2a, /* U+001e2a: LATIN CAPITAL LETTER H WITH BREVE BELOW*/ + 0x1e2a, /* U+001e2b: LATIN SMALL LETTER H WITH BREVE BELOW*/ + 0x1e2c, /* U+001e2c: LATIN CAPITAL LETTER I WITH TILDE BELOW*/ + 0x1e2c, /* U+001e2d: LATIN SMALL LETTER I WITH TILDE BELOW*/ + 0x1e2e, /* U+001e2e: LATIN CAPITAL LETTER I WITH DIAERESIS AND ACUTE*/ + 0x1e2e, /* U+001e2f: LATIN SMALL LETTER I WITH DIAERESIS AND ACUTE*/ + 0x1e30, /* U+001e30: LATIN CAPITAL LETTER K WITH ACUTE*/ + 0x1e30, /* U+001e31: LATIN SMALL LETTER K WITH ACUTE*/ + 0x1e32, /* U+001e32: LATIN CAPITAL LETTER K WITH DOT BELOW*/ + 0x1e32, /* U+001e33: LATIN SMALL LETTER K WITH DOT BELOW*/ + 0x1e34, /* U+001e34: LATIN CAPITAL LETTER K WITH LINE BELOW*/ + 0x1e34, /* U+001e35: LATIN SMALL LETTER K WITH LINE BELOW*/ + 0x1e36, /* U+001e36: LATIN CAPITAL LETTER L WITH DOT BELOW*/ + 0x1e36, /* U+001e37: LATIN SMALL LETTER L WITH DOT BELOW*/ + 0x1e38, /* U+001e38: LATIN CAPITAL LETTER L WITH DOT BELOW AND MACRON*/ + 0x1e38, /* U+001e39: LATIN SMALL LETTER L WITH DOT BELOW AND MACRON*/ + 0x1e3a, /* U+001e3a: LATIN CAPITAL LETTER L WITH LINE BELOW*/ + 0x1e3a, /* U+001e3b: LATIN SMALL LETTER L WITH LINE BELOW*/ + 0x1e3c, /* U+001e3c: LATIN CAPITAL LETTER L WITH CIRCUMFLEX BELOW*/ + 0x1e3c, /* U+001e3d: LATIN SMALL LETTER L WITH CIRCUMFLEX BELOW*/ + 0x1e3e, /* U+001e3e: LATIN CAPITAL LETTER M WITH ACUTE*/ + 0x1e3e, /* U+001e3f: LATIN SMALL LETTER M WITH ACUTE*/ + 0x1e40, /* U+001e40: LATIN CAPITAL LETTER M WITH DOT ABOVE*/ + 0x1e40, /* U+001e41: LATIN SMALL LETTER M WITH DOT ABOVE*/ + 0x1e42, /* U+001e42: LATIN CAPITAL LETTER M WITH DOT BELOW*/ + 0x1e42, /* U+001e43: LATIN SMALL LETTER M WITH DOT BELOW*/ + 0x1e44, /* U+001e44: LATIN CAPITAL LETTER N WITH DOT ABOVE*/ + 0x1e44, /* U+001e45: LATIN SMALL LETTER N WITH DOT ABOVE*/ + 0x1e46, /* U+001e46: LATIN CAPITAL LETTER N WITH DOT BELOW*/ + 0x1e46, /* U+001e47: LATIN SMALL LETTER N WITH DOT BELOW*/ + 0x1e48, /* U+001e48: LATIN CAPITAL LETTER N WITH LINE BELOW*/ + 0x1e48, /* U+001e49: LATIN SMALL LETTER N WITH LINE BELOW*/ + 0x1e4a, /* U+001e4a: LATIN CAPITAL LETTER N WITH CIRCUMFLEX BELOW*/ + 0x1e4a, /* U+001e4b: LATIN SMALL LETTER N WITH CIRCUMFLEX BELOW*/ + 0x1e4c, /* U+001e4c: LATIN CAPITAL LETTER O WITH TILDE AND ACUTE*/ + 0x1e4c, /* U+001e4d: LATIN SMALL LETTER O WITH TILDE AND ACUTE*/ + 0x1e4e, /* U+001e4e: LATIN CAPITAL LETTER O WITH TILDE AND DIAERESIS*/ + 0x1e4e, /* U+001e4f: LATIN SMALL LETTER O WITH TILDE AND DIAERESIS*/ + 0x1e50, /* U+001e50: LATIN CAPITAL LETTER O WITH MACRON AND GRAVE*/ + 0x1e50, /* U+001e51: LATIN SMALL LETTER O WITH MACRON AND GRAVE*/ + 0x1e52, /* U+001e52: LATIN CAPITAL LETTER O WITH MACRON AND ACUTE*/ + 0x1e52, /* U+001e53: LATIN SMALL LETTER O WITH MACRON AND ACUTE*/ + 0x1e54, /* U+001e54: LATIN CAPITAL LETTER P WITH ACUTE*/ + 0x1e54, /* U+001e55: LATIN SMALL LETTER P WITH ACUTE*/ + 0x1e56, /* U+001e56: LATIN CAPITAL LETTER P WITH DOT ABOVE*/ + 0x1e56, /* U+001e57: LATIN SMALL LETTER P WITH DOT ABOVE*/ + 0x1e58, /* U+001e58: LATIN CAPITAL LETTER R WITH DOT ABOVE*/ + 0x1e58, /* U+001e59: LATIN SMALL LETTER R WITH DOT ABOVE*/ + 0x1e5a, /* U+001e5a: LATIN CAPITAL LETTER R WITH DOT BELOW*/ + 0x1e5a, /* U+001e5b: LATIN SMALL LETTER R WITH DOT BELOW*/ + 0x1e5c, /* U+001e5c: LATIN CAPITAL LETTER R WITH DOT BELOW AND MACRON*/ + 0x1e5c, /* U+001e5d: LATIN SMALL LETTER R WITH DOT BELOW AND MACRON*/ + 0x1e5e, /* U+001e5e: LATIN CAPITAL LETTER R WITH LINE BELOW*/ + 0x1e5e, /* U+001e5f: LATIN SMALL LETTER R WITH LINE BELOW*/ + 0x1e60, /* U+001e60: LATIN CAPITAL LETTER S WITH DOT ABOVE*/ + 0x1e60, /* U+001e61: LATIN SMALL LETTER S WITH DOT ABOVE*/ + 0x1e62, /* U+001e62: LATIN CAPITAL LETTER S WITH DOT BELOW*/ + 0x1e62, /* U+001e63: LATIN SMALL LETTER S WITH DOT BELOW*/ + 0x1e64, /* U+001e64: LATIN CAPITAL LETTER S WITH ACUTE AND DOT ABOVE*/ + 0x1e64, /* U+001e65: LATIN SMALL LETTER S WITH ACUTE AND DOT ABOVE*/ + 0x1e66, /* U+001e66: LATIN CAPITAL LETTER S WITH CARON AND DOT ABOVE*/ + 0x1e66, /* U+001e67: LATIN SMALL LETTER S WITH CARON AND DOT ABOVE*/ + 0x1e68, /* U+001e68: LATIN CAPITAL LETTER S WITH DOT BELOW AND DOT ABOVE*/ + 0x1e68, /* U+001e69: LATIN SMALL LETTER S WITH DOT BELOW AND DOT ABOVE*/ + 0x1e6a, /* U+001e6a: LATIN CAPITAL LETTER T WITH DOT ABOVE*/ + 0x1e6a, /* U+001e6b: LATIN SMALL LETTER T WITH DOT ABOVE*/ + 0x1e6c, /* U+001e6c: LATIN CAPITAL LETTER T WITH DOT BELOW*/ + 0x1e6c, /* U+001e6d: LATIN SMALL LETTER T WITH DOT BELOW*/ + 0x1e6e, /* U+001e6e: LATIN CAPITAL LETTER T WITH LINE BELOW*/ + 0x1e6e, /* U+001e6f: LATIN SMALL LETTER T WITH LINE BELOW*/ + 0x1e70, /* U+001e70: LATIN CAPITAL LETTER T WITH CIRCUMFLEX BELOW*/ + 0x1e70, /* U+001e71: LATIN SMALL LETTER T WITH CIRCUMFLEX BELOW*/ + 0x1e72, /* U+001e72: LATIN CAPITAL LETTER U WITH DIAERESIS BELOW*/ + 0x1e72, /* U+001e73: LATIN SMALL LETTER U WITH DIAERESIS BELOW*/ + 0x1e74, /* U+001e74: LATIN CAPITAL LETTER U WITH TILDE BELOW*/ + 0x1e74, /* U+001e75: LATIN SMALL LETTER U WITH TILDE BELOW*/ + 0x1e76, /* U+001e76: LATIN CAPITAL LETTER U WITH CIRCUMFLEX BELOW*/ + 0x1e76, /* U+001e77: LATIN SMALL LETTER U WITH CIRCUMFLEX BELOW*/ + 0x1e78, /* U+001e78: LATIN CAPITAL LETTER U WITH TILDE AND ACUTE*/ + 0x1e78, /* U+001e79: LATIN SMALL LETTER U WITH TILDE AND ACUTE*/ + 0x1e7a, /* U+001e7a: LATIN CAPITAL LETTER U WITH MACRON AND DIAERESIS*/ + 0x1e7a, /* U+001e7b: LATIN SMALL LETTER U WITH MACRON AND DIAERESIS*/ + 0x1e7c, /* U+001e7c: LATIN CAPITAL LETTER V WITH TILDE*/ + 0x1e7c, /* U+001e7d: LATIN SMALL LETTER V WITH TILDE*/ + 0x1e7e, /* U+001e7e: LATIN CAPITAL LETTER V WITH DOT BELOW*/ + 0x1e7e, /* U+001e7f: LATIN SMALL LETTER V WITH DOT BELOW*/ + 0x1e80, /* U+001e80: LATIN CAPITAL LETTER W WITH GRAVE*/ + 0x1e80, /* U+001e81: LATIN SMALL LETTER W WITH GRAVE*/ + 0x1e82, /* U+001e82: LATIN CAPITAL LETTER W WITH ACUTE*/ + 0x1e82, /* U+001e83: LATIN SMALL LETTER W WITH ACUTE*/ + 0x1e84, /* U+001e84: LATIN CAPITAL LETTER W WITH DIAERESIS*/ + 0x1e84, /* U+001e85: LATIN SMALL LETTER W WITH DIAERESIS*/ + 0x1e86, /* U+001e86: LATIN CAPITAL LETTER W WITH DOT ABOVE*/ + 0x1e86, /* U+001e87: LATIN SMALL LETTER W WITH DOT ABOVE*/ + 0x1e88, /* U+001e88: LATIN CAPITAL LETTER W WITH DOT BELOW*/ + 0x1e88, /* U+001e89: LATIN SMALL LETTER W WITH DOT BELOW*/ + 0x1e8a, /* U+001e8a: LATIN CAPITAL LETTER X WITH DOT ABOVE*/ + 0x1e8a, /* U+001e8b: LATIN SMALL LETTER X WITH DOT ABOVE*/ + 0x1e8c, /* U+001e8c: LATIN CAPITAL LETTER X WITH DIAERESIS*/ + 0x1e8c, /* U+001e8d: LATIN SMALL LETTER X WITH DIAERESIS*/ + 0x1e8e, /* U+001e8e: LATIN CAPITAL LETTER Y WITH DOT ABOVE*/ + 0x1e8e, /* U+001e8f: LATIN SMALL LETTER Y WITH DOT ABOVE*/ + 0x1e90, /* U+001e90: LATIN CAPITAL LETTER Z WITH CIRCUMFLEX*/ + 0x1e90, /* U+001e91: LATIN SMALL LETTER Z WITH CIRCUMFLEX*/ + 0x1e92, /* U+001e92: LATIN CAPITAL LETTER Z WITH DOT BELOW*/ + 0x1e92, /* U+001e93: LATIN SMALL LETTER Z WITH DOT BELOW*/ + 0x1e94, /* U+001e94: LATIN CAPITAL LETTER Z WITH LINE BELOW*/ + 0x1e94, /* U+001e95: LATIN SMALL LETTER Z WITH LINE BELOW*/ + 0x1e96, /* U+001e96: LATIN SMALL LETTER H WITH LINE BELOW*/ + 0x1e97, /* U+001e97: LATIN SMALL LETTER T WITH DIAERESIS*/ + 0x1e98, /* U+001e98: LATIN SMALL LETTER W WITH RING ABOVE*/ + 0x1e99, /* U+001e99: LATIN SMALL LETTER Y WITH RING ABOVE*/ + 0x1e9a, /* U+001e9a: LATIN SMALL LETTER A WITH RIGHT HALF RING*/ + 0x1e60, /* U+001e9b: LATIN SMALL LETTER LONG S WITH DOT ABOVE*/ + 0x1e9c, /* U+001e9c: LATIN SMALL LETTER LONG S WITH DIAGONAL STROKE*/ + 0x1e9d, /* U+001e9d: LATIN SMALL LETTER LONG S WITH HIGH STROKE*/ + 0x1e9e, /* U+001e9e: LATIN CAPITAL LETTER SHARP S*/ + 0x1e9f, /* U+001e9f: LATIN SMALL LETTER DELTA*/ + 0x1ea0, /* U+001ea0: LATIN CAPITAL LETTER A WITH DOT BELOW*/ + 0x1ea0, /* U+001ea1: LATIN SMALL LETTER A WITH DOT BELOW*/ + 0x1ea2, /* U+001ea2: LATIN CAPITAL LETTER A WITH HOOK ABOVE*/ + 0x1ea2, /* U+001ea3: LATIN SMALL LETTER A WITH HOOK ABOVE*/ + 0x1ea4, /* U+001ea4: LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND ACUTE*/ + 0x1ea4, /* U+001ea5: LATIN SMALL LETTER A WITH CIRCUMFLEX AND ACUTE*/ + 0x1ea6, /* U+001ea6: LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND GRAVE*/ + 0x1ea6, /* U+001ea7: LATIN SMALL LETTER A WITH CIRCUMFLEX AND GRAVE*/ + 0x1ea8, /* U+001ea8: LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND HOOK ABOVE*/ + 0x1ea8, /* U+001ea9: LATIN SMALL LETTER A WITH CIRCUMFLEX AND HOOK ABOVE*/ + 0x1eaa, /* U+001eaa: LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND TILDE*/ + 0x1eaa, /* U+001eab: LATIN SMALL LETTER A WITH CIRCUMFLEX AND TILDE*/ + 0x1eac, /* U+001eac: LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND DOT BELOW*/ + 0x1eac, /* U+001ead: LATIN SMALL LETTER A WITH CIRCUMFLEX AND DOT BELOW*/ + 0x1eae, /* U+001eae: LATIN CAPITAL LETTER A WITH BREVE AND ACUTE*/ + 0x1eae, /* U+001eaf: LATIN SMALL LETTER A WITH BREVE AND ACUTE*/ + 0x1eb0, /* U+001eb0: LATIN CAPITAL LETTER A WITH BREVE AND GRAVE*/ + 0x1eb0, /* U+001eb1: LATIN SMALL LETTER A WITH BREVE AND GRAVE*/ + 0x1eb2, /* U+001eb2: LATIN CAPITAL LETTER A WITH BREVE AND HOOK ABOVE*/ + 0x1eb2, /* U+001eb3: LATIN SMALL LETTER A WITH BREVE AND HOOK ABOVE*/ + 0x1eb4, /* U+001eb4: LATIN CAPITAL LETTER A WITH BREVE AND TILDE*/ + 0x1eb4, /* U+001eb5: LATIN SMALL LETTER A WITH BREVE AND TILDE*/ + 0x1eb6, /* U+001eb6: LATIN CAPITAL LETTER A WITH BREVE AND DOT BELOW*/ + 0x1eb6, /* U+001eb7: LATIN SMALL LETTER A WITH BREVE AND DOT BELOW*/ + 0x1eb8, /* U+001eb8: LATIN CAPITAL LETTER E WITH DOT BELOW*/ + 0x1eb8, /* U+001eb9: LATIN SMALL LETTER E WITH DOT BELOW*/ + 0x1eba, /* U+001eba: LATIN CAPITAL LETTER E WITH HOOK ABOVE*/ + 0x1eba, /* U+001ebb: LATIN SMALL LETTER E WITH HOOK ABOVE*/ + 0x1ebc, /* U+001ebc: LATIN CAPITAL LETTER E WITH TILDE*/ + 0x1ebc, /* U+001ebd: LATIN SMALL LETTER E WITH TILDE*/ + 0x1ebe, /* U+001ebe: LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND ACUTE*/ + 0x1ebe, /* U+001ebf: LATIN SMALL LETTER E WITH CIRCUMFLEX AND ACUTE*/ + 0x1ec0, /* U+001ec0: LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND GRAVE*/ + 0x1ec0, /* U+001ec1: LATIN SMALL LETTER E WITH CIRCUMFLEX AND GRAVE*/ + 0x1ec2, /* U+001ec2: LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND HOOK ABOVE*/ + 0x1ec2, /* U+001ec3: LATIN SMALL LETTER E WITH CIRCUMFLEX AND HOOK ABOVE*/ + 0x1ec4, /* U+001ec4: LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND TILDE*/ + 0x1ec4, /* U+001ec5: LATIN SMALL LETTER E WITH CIRCUMFLEX AND TILDE*/ + 0x1ec6, /* U+001ec6: LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND DOT BELOW*/ + 0x1ec6, /* U+001ec7: LATIN SMALL LETTER E WITH CIRCUMFLEX AND DOT BELOW*/ + 0x1ec8, /* U+001ec8: LATIN CAPITAL LETTER I WITH HOOK ABOVE*/ + 0x1ec8, /* U+001ec9: LATIN SMALL LETTER I WITH HOOK ABOVE*/ + 0x1eca, /* U+001eca: LATIN CAPITAL LETTER I WITH DOT BELOW*/ + 0x1eca, /* U+001ecb: LATIN SMALL LETTER I WITH DOT BELOW*/ + 0x1ecc, /* U+001ecc: LATIN CAPITAL LETTER O WITH DOT BELOW*/ + 0x1ecc, /* U+001ecd: LATIN SMALL LETTER O WITH DOT BELOW*/ + 0x1ece, /* U+001ece: LATIN CAPITAL LETTER O WITH HOOK ABOVE*/ + 0x1ece, /* U+001ecf: LATIN SMALL LETTER O WITH HOOK ABOVE*/ + 0x1ed0, /* U+001ed0: LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND ACUTE*/ + 0x1ed0, /* U+001ed1: LATIN SMALL LETTER O WITH CIRCUMFLEX AND ACUTE*/ + 0x1ed2, /* U+001ed2: LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND GRAVE*/ + 0x1ed2, /* U+001ed3: LATIN SMALL LETTER O WITH CIRCUMFLEX AND GRAVE*/ + 0x1ed4, /* U+001ed4: LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND HOOK ABOVE*/ + 0x1ed4, /* U+001ed5: LATIN SMALL LETTER O WITH CIRCUMFLEX AND HOOK ABOVE*/ + 0x1ed6, /* U+001ed6: LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND TILDE*/ + 0x1ed6, /* U+001ed7: LATIN SMALL LETTER O WITH CIRCUMFLEX AND TILDE*/ + 0x1ed8, /* U+001ed8: LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND DOT BELOW*/ + 0x1ed8, /* U+001ed9: LATIN SMALL LETTER O WITH CIRCUMFLEX AND DOT BELOW*/ + 0x1eda, /* U+001eda: LATIN CAPITAL LETTER O WITH HORN AND ACUTE*/ + 0x1eda, /* U+001edb: LATIN SMALL LETTER O WITH HORN AND ACUTE*/ + 0x1edc, /* U+001edc: LATIN CAPITAL LETTER O WITH HORN AND GRAVE*/ + 0x1edc, /* U+001edd: LATIN SMALL LETTER O WITH HORN AND GRAVE*/ + 0x1ede, /* U+001ede: LATIN CAPITAL LETTER O WITH HORN AND HOOK ABOVE*/ + 0x1ede, /* U+001edf: LATIN SMALL LETTER O WITH HORN AND HOOK ABOVE*/ + 0x1ee0, /* U+001ee0: LATIN CAPITAL LETTER O WITH HORN AND TILDE*/ + 0x1ee0, /* U+001ee1: LATIN SMALL LETTER O WITH HORN AND TILDE*/ + 0x1ee2, /* U+001ee2: LATIN CAPITAL LETTER O WITH HORN AND DOT BELOW*/ + 0x1ee2, /* U+001ee3: LATIN SMALL LETTER O WITH HORN AND DOT BELOW*/ + 0x1ee4, /* U+001ee4: LATIN CAPITAL LETTER U WITH DOT BELOW*/ + 0x1ee4, /* U+001ee5: LATIN SMALL LETTER U WITH DOT BELOW*/ + 0x1ee6, /* U+001ee6: LATIN CAPITAL LETTER U WITH HOOK ABOVE*/ + 0x1ee6, /* U+001ee7: LATIN SMALL LETTER U WITH HOOK ABOVE*/ + 0x1ee8, /* U+001ee8: LATIN CAPITAL LETTER U WITH HORN AND ACUTE*/ + 0x1ee8, /* U+001ee9: LATIN SMALL LETTER U WITH HORN AND ACUTE*/ + 0x1eea, /* U+001eea: LATIN CAPITAL LETTER U WITH HORN AND GRAVE*/ + 0x1eea, /* U+001eeb: LATIN SMALL LETTER U WITH HORN AND GRAVE*/ + 0x1eec, /* U+001eec: LATIN CAPITAL LETTER U WITH HORN AND HOOK ABOVE*/ + 0x1eec, /* U+001eed: LATIN SMALL LETTER U WITH HORN AND HOOK ABOVE*/ + 0x1eee, /* U+001eee: LATIN CAPITAL LETTER U WITH HORN AND TILDE*/ + 0x1eee, /* U+001eef: LATIN SMALL LETTER U WITH HORN AND TILDE*/ + 0x1ef0, /* U+001ef0: LATIN CAPITAL LETTER U WITH HORN AND DOT BELOW*/ + 0x1ef0, /* U+001ef1: LATIN SMALL LETTER U WITH HORN AND DOT BELOW*/ + 0x1ef2, /* U+001ef2: LATIN CAPITAL LETTER Y WITH GRAVE*/ + 0x1ef2, /* U+001ef3: LATIN SMALL LETTER Y WITH GRAVE*/ + 0x1ef4, /* U+001ef4: LATIN CAPITAL LETTER Y WITH DOT BELOW*/ + 0x1ef4, /* U+001ef5: LATIN SMALL LETTER Y WITH DOT BELOW*/ + 0x1ef6, /* U+001ef6: LATIN CAPITAL LETTER Y WITH HOOK ABOVE*/ + 0x1ef6, /* U+001ef7: LATIN SMALL LETTER Y WITH HOOK ABOVE*/ + 0x1ef8, /* U+001ef8: LATIN CAPITAL LETTER Y WITH TILDE*/ + 0x1ef8, /* U+001ef9: LATIN SMALL LETTER Y WITH TILDE*/ + 0x1efa, /* U+001efa: LATIN CAPITAL LETTER MIDDLE-WELSH LL*/ + 0x1efa, /* U+001efb: LATIN SMALL LETTER MIDDLE-WELSH LL*/ + 0x1efc, /* U+001efc: LATIN CAPITAL LETTER MIDDLE-WELSH V*/ + 0x1efc, /* U+001efd: LATIN SMALL LETTER MIDDLE-WELSH V*/ + 0x1efe, /* U+001efe: LATIN CAPITAL LETTER Y WITH LOOP*/ + 0x1efe, /* U+001eff: LATIN SMALL LETTER Y WITH LOOP*/ + 0x1f08, /* U+001f00: GREEK SMALL LETTER ALPHA WITH PSILI*/ + 0x1f09, /* U+001f01: GREEK SMALL LETTER ALPHA WITH DASIA*/ + 0x1f0a, /* U+001f02: GREEK SMALL LETTER ALPHA WITH PSILI AND VARIA*/ + 0x1f0b, /* U+001f03: GREEK SMALL LETTER ALPHA WITH DASIA AND VARIA*/ + 0x1f0c, /* U+001f04: GREEK SMALL LETTER ALPHA WITH PSILI AND OXIA*/ + 0x1f0d, /* U+001f05: GREEK SMALL LETTER ALPHA WITH DASIA AND OXIA*/ + 0x1f0e, /* U+001f06: GREEK SMALL LETTER ALPHA WITH PSILI AND PERISPOMENI*/ + 0x1f0f, /* U+001f07: GREEK SMALL LETTER ALPHA WITH DASIA AND PERISPOMENI*/ + 0x1f08, /* U+001f08: GREEK CAPITAL LETTER ALPHA WITH PSILI*/ + 0x1f09, /* U+001f09: GREEK CAPITAL LETTER ALPHA WITH DASIA*/ + 0x1f0a, /* U+001f0a: GREEK CAPITAL LETTER ALPHA WITH PSILI AND VARIA*/ + 0x1f0b, /* U+001f0b: GREEK CAPITAL LETTER ALPHA WITH DASIA AND VARIA*/ + 0x1f0c, /* U+001f0c: GREEK CAPITAL LETTER ALPHA WITH PSILI AND OXIA*/ + 0x1f0d, /* U+001f0d: GREEK CAPITAL LETTER ALPHA WITH DASIA AND OXIA*/ + 0x1f0e, /* U+001f0e: GREEK CAPITAL LETTER ALPHA WITH PSILI AND PERISPOMENI*/ + 0x1f0f, /* U+001f0f: GREEK CAPITAL LETTER ALPHA WITH DASIA AND PERISPOMENI*/ + 0x1f18, /* U+001f10: GREEK SMALL LETTER EPSILON WITH PSILI*/ + 0x1f19, /* U+001f11: GREEK SMALL LETTER EPSILON WITH DASIA*/ + 0x1f1a, /* U+001f12: GREEK SMALL LETTER EPSILON WITH PSILI AND VARIA*/ + 0x1f1b, /* U+001f13: GREEK SMALL LETTER EPSILON WITH DASIA AND VARIA*/ + 0x1f1c, /* U+001f14: GREEK SMALL LETTER EPSILON WITH PSILI AND OXIA*/ + 0x1f1d, /* U+001f15: GREEK SMALL LETTER EPSILON WITH DASIA AND OXIA*/ + 0x1f16, /* U+001f16: */ + 0x1f17, /* U+001f17: */ + 0x1f18, /* U+001f18: GREEK CAPITAL LETTER EPSILON WITH PSILI*/ + 0x1f19, /* U+001f19: GREEK CAPITAL LETTER EPSILON WITH DASIA*/ + 0x1f1a, /* U+001f1a: GREEK CAPITAL LETTER EPSILON WITH PSILI AND VARIA*/ + 0x1f1b, /* U+001f1b: GREEK CAPITAL LETTER EPSILON WITH DASIA AND VARIA*/ + 0x1f1c, /* U+001f1c: GREEK CAPITAL LETTER EPSILON WITH PSILI AND OXIA*/ + 0x1f1d, /* U+001f1d: GREEK CAPITAL LETTER EPSILON WITH DASIA AND OXIA*/ + 0x1f1e, /* U+001f1e: */ + 0x1f1f, /* U+001f1f: */ + 0x1f28, /* U+001f20: GREEK SMALL LETTER ETA WITH PSILI*/ + 0x1f29, /* U+001f21: GREEK SMALL LETTER ETA WITH DASIA*/ + 0x1f2a, /* U+001f22: GREEK SMALL LETTER ETA WITH PSILI AND VARIA*/ + 0x1f2b, /* U+001f23: GREEK SMALL LETTER ETA WITH DASIA AND VARIA*/ + 0x1f2c, /* U+001f24: GREEK SMALL LETTER ETA WITH PSILI AND OXIA*/ + 0x1f2d, /* U+001f25: GREEK SMALL LETTER ETA WITH DASIA AND OXIA*/ + 0x1f2e, /* U+001f26: GREEK SMALL LETTER ETA WITH PSILI AND PERISPOMENI*/ + 0x1f2f, /* U+001f27: GREEK SMALL LETTER ETA WITH DASIA AND PERISPOMENI*/ + 0x1f28, /* U+001f28: GREEK CAPITAL LETTER ETA WITH PSILI*/ + 0x1f29, /* U+001f29: GREEK CAPITAL LETTER ETA WITH DASIA*/ + 0x1f2a, /* U+001f2a: GREEK CAPITAL LETTER ETA WITH PSILI AND VARIA*/ + 0x1f2b, /* U+001f2b: GREEK CAPITAL LETTER ETA WITH DASIA AND VARIA*/ + 0x1f2c, /* U+001f2c: GREEK CAPITAL LETTER ETA WITH PSILI AND OXIA*/ + 0x1f2d, /* U+001f2d: GREEK CAPITAL LETTER ETA WITH DASIA AND OXIA*/ + 0x1f2e, /* U+001f2e: GREEK CAPITAL LETTER ETA WITH PSILI AND PERISPOMENI*/ + 0x1f2f, /* U+001f2f: GREEK CAPITAL LETTER ETA WITH DASIA AND PERISPOMENI*/ + 0x1f38, /* U+001f30: GREEK SMALL LETTER IOTA WITH PSILI*/ + 0x1f39, /* U+001f31: GREEK SMALL LETTER IOTA WITH DASIA*/ + 0x1f3a, /* U+001f32: GREEK SMALL LETTER IOTA WITH PSILI AND VARIA*/ + 0x1f3b, /* U+001f33: GREEK SMALL LETTER IOTA WITH DASIA AND VARIA*/ + 0x1f3c, /* U+001f34: GREEK SMALL LETTER IOTA WITH PSILI AND OXIA*/ + 0x1f3d, /* U+001f35: GREEK SMALL LETTER IOTA WITH DASIA AND OXIA*/ + 0x1f3e, /* U+001f36: GREEK SMALL LETTER IOTA WITH PSILI AND PERISPOMENI*/ + 0x1f3f, /* U+001f37: GREEK SMALL LETTER IOTA WITH DASIA AND PERISPOMENI*/ + 0x1f38, /* U+001f38: GREEK CAPITAL LETTER IOTA WITH PSILI*/ + 0x1f39, /* U+001f39: GREEK CAPITAL LETTER IOTA WITH DASIA*/ + 0x1f3a, /* U+001f3a: GREEK CAPITAL LETTER IOTA WITH PSILI AND VARIA*/ + 0x1f3b, /* U+001f3b: GREEK CAPITAL LETTER IOTA WITH DASIA AND VARIA*/ + 0x1f3c, /* U+001f3c: GREEK CAPITAL LETTER IOTA WITH PSILI AND OXIA*/ + 0x1f3d, /* U+001f3d: GREEK CAPITAL LETTER IOTA WITH DASIA AND OXIA*/ + 0x1f3e, /* U+001f3e: GREEK CAPITAL LETTER IOTA WITH PSILI AND PERISPOMENI*/ + 0x1f3f, /* U+001f3f: GREEK CAPITAL LETTER IOTA WITH DASIA AND PERISPOMENI*/ + 0x1f48, /* U+001f40: GREEK SMALL LETTER OMICRON WITH PSILI*/ + 0x1f49, /* U+001f41: GREEK SMALL LETTER OMICRON WITH DASIA*/ + 0x1f4a, /* U+001f42: GREEK SMALL LETTER OMICRON WITH PSILI AND VARIA*/ + 0x1f4b, /* U+001f43: GREEK SMALL LETTER OMICRON WITH DASIA AND VARIA*/ + 0x1f4c, /* U+001f44: GREEK SMALL LETTER OMICRON WITH PSILI AND OXIA*/ + 0x1f4d, /* U+001f45: GREEK SMALL LETTER OMICRON WITH DASIA AND OXIA*/ + 0x1f46, /* U+001f46: */ + 0x1f47, /* U+001f47: */ + 0x1f48, /* U+001f48: GREEK CAPITAL LETTER OMICRON WITH PSILI*/ + 0x1f49, /* U+001f49: GREEK CAPITAL LETTER OMICRON WITH DASIA*/ + 0x1f4a, /* U+001f4a: GREEK CAPITAL LETTER OMICRON WITH PSILI AND VARIA*/ + 0x1f4b, /* U+001f4b: GREEK CAPITAL LETTER OMICRON WITH DASIA AND VARIA*/ + 0x1f4c, /* U+001f4c: GREEK CAPITAL LETTER OMICRON WITH PSILI AND OXIA*/ + 0x1f4d, /* U+001f4d: GREEK CAPITAL LETTER OMICRON WITH DASIA AND OXIA*/ + 0x1f4e, /* U+001f4e: */ + 0x1f4f, /* U+001f4f: */ + 0x1f50, /* U+001f50: GREEK SMALL LETTER UPSILON WITH PSILI*/ + 0x1f59, /* U+001f51: GREEK SMALL LETTER UPSILON WITH DASIA*/ + 0x1f52, /* U+001f52: GREEK SMALL LETTER UPSILON WITH PSILI AND VARIA*/ + 0x1f5b, /* U+001f53: GREEK SMALL LETTER UPSILON WITH DASIA AND VARIA*/ + 0x1f54, /* U+001f54: GREEK SMALL LETTER UPSILON WITH PSILI AND OXIA*/ + 0x1f5d, /* U+001f55: GREEK SMALL LETTER UPSILON WITH DASIA AND OXIA*/ + 0x1f56, /* U+001f56: GREEK SMALL LETTER UPSILON WITH PSILI AND PERISPOMENI*/ + 0x1f5f, /* U+001f57: GREEK SMALL LETTER UPSILON WITH DASIA AND PERISPOMENI*/ + 0x1f58, /* U+001f58: */ + 0x1f59, /* U+001f59: GREEK CAPITAL LETTER UPSILON WITH DASIA*/ + 0x1f5a, /* U+001f5a: */ + 0x1f5b, /* U+001f5b: GREEK CAPITAL LETTER UPSILON WITH DASIA AND VARIA*/ + 0x1f5c, /* U+001f5c: */ + 0x1f5d, /* U+001f5d: GREEK CAPITAL LETTER UPSILON WITH DASIA AND OXIA*/ + 0x1f5e, /* U+001f5e: */ + 0x1f5f, /* U+001f5f: GREEK CAPITAL LETTER UPSILON WITH DASIA AND PERISPOMENI*/ + 0x1f68, /* U+001f60: GREEK SMALL LETTER OMEGA WITH PSILI*/ + 0x1f69, /* U+001f61: GREEK SMALL LETTER OMEGA WITH DASIA*/ + 0x1f6a, /* U+001f62: GREEK SMALL LETTER OMEGA WITH PSILI AND VARIA*/ + 0x1f6b, /* U+001f63: GREEK SMALL LETTER OMEGA WITH DASIA AND VARIA*/ + 0x1f6c, /* U+001f64: GREEK SMALL LETTER OMEGA WITH PSILI AND OXIA*/ + 0x1f6d, /* U+001f65: GREEK SMALL LETTER OMEGA WITH DASIA AND OXIA*/ + 0x1f6e, /* U+001f66: GREEK SMALL LETTER OMEGA WITH PSILI AND PERISPOMENI*/ + 0x1f6f, /* U+001f67: GREEK SMALL LETTER OMEGA WITH DASIA AND PERISPOMENI*/ + 0x1f68, /* U+001f68: GREEK CAPITAL LETTER OMEGA WITH PSILI*/ + 0x1f69, /* U+001f69: GREEK CAPITAL LETTER OMEGA WITH DASIA*/ + 0x1f6a, /* U+001f6a: GREEK CAPITAL LETTER OMEGA WITH PSILI AND VARIA*/ + 0x1f6b, /* U+001f6b: GREEK CAPITAL LETTER OMEGA WITH DASIA AND VARIA*/ + 0x1f6c, /* U+001f6c: GREEK CAPITAL LETTER OMEGA WITH PSILI AND OXIA*/ + 0x1f6d, /* U+001f6d: GREEK CAPITAL LETTER OMEGA WITH DASIA AND OXIA*/ + 0x1f6e, /* U+001f6e: GREEK CAPITAL LETTER OMEGA WITH PSILI AND PERISPOMENI*/ + 0x1f6f, /* U+001f6f: GREEK CAPITAL LETTER OMEGA WITH DASIA AND PERISPOMENI*/ + 0x1fba, /* U+001f70: GREEK SMALL LETTER ALPHA WITH VARIA*/ + 0x1fbb, /* U+001f71: GREEK SMALL LETTER ALPHA WITH OXIA*/ + 0x1fc8, /* U+001f72: GREEK SMALL LETTER EPSILON WITH VARIA*/ + 0x1fc9, /* U+001f73: GREEK SMALL LETTER EPSILON WITH OXIA*/ + 0x1fca, /* U+001f74: GREEK SMALL LETTER ETA WITH VARIA*/ + 0x1fcb, /* U+001f75: GREEK SMALL LETTER ETA WITH OXIA*/ + 0x1fda, /* U+001f76: GREEK SMALL LETTER IOTA WITH VARIA*/ + 0x1fdb, /* U+001f77: GREEK SMALL LETTER IOTA WITH OXIA*/ + 0x1ff8, /* U+001f78: GREEK SMALL LETTER OMICRON WITH VARIA*/ + 0x1ff9, /* U+001f79: GREEK SMALL LETTER OMICRON WITH OXIA*/ + 0x1fea, /* U+001f7a: GREEK SMALL LETTER UPSILON WITH VARIA*/ + 0x1feb, /* U+001f7b: GREEK SMALL LETTER UPSILON WITH OXIA*/ + 0x1ffa, /* U+001f7c: GREEK SMALL LETTER OMEGA WITH VARIA*/ + 0x1ffb, /* U+001f7d: GREEK SMALL LETTER OMEGA WITH OXIA*/ + 0x1f7e, /* U+001f7e: */ + 0x1f7f, /* U+001f7f: */ + 0x1f88, /* U+001f80: GREEK SMALL LETTER ALPHA WITH PSILI AND YPOGEGRAMMENI*/ + 0x1f89, /* U+001f81: GREEK SMALL LETTER ALPHA WITH DASIA AND YPOGEGRAMMENI*/ + 0x1f8a, /* U+001f82: GREEK SMALL LETTER ALPHA WITH PSILI AND VARIA AND YPOGEGRAMMENI*/ + 0x1f8b, /* U+001f83: GREEK SMALL LETTER ALPHA WITH DASIA AND VARIA AND YPOGEGRAMMENI*/ + 0x1f8c, /* U+001f84: GREEK SMALL LETTER ALPHA WITH PSILI AND OXIA AND YPOGEGRAMMENI*/ + 0x1f8d, /* U+001f85: GREEK SMALL LETTER ALPHA WITH DASIA AND OXIA AND YPOGEGRAMMENI*/ + 0x1f8e, /* U+001f86: GREEK SMALL LETTER ALPHA WITH PSILI AND PERISPOMENI AND YPOGEGRAMMENI*/ + 0x1f8f, /* U+001f87: GREEK SMALL LETTER ALPHA WITH DASIA AND PERISPOMENI AND YPOGEGRAMMENI*/ + 0x1f88, /* U+001f88: GREEK CAPITAL LETTER ALPHA WITH PSILI AND PROSGEGRAMMENI*/ + 0x1f89, /* U+001f89: GREEK CAPITAL LETTER ALPHA WITH DASIA AND PROSGEGRAMMENI*/ + 0x1f8a, /* U+001f8a: GREEK CAPITAL LETTER ALPHA WITH PSILI AND VARIA AND PROSGEGRAMMENI*/ + 0x1f8b, /* U+001f8b: GREEK CAPITAL LETTER ALPHA WITH DASIA AND VARIA AND PROSGEGRAMMENI*/ + 0x1f8c, /* U+001f8c: GREEK CAPITAL LETTER ALPHA WITH PSILI AND OXIA AND PROSGEGRAMMENI*/ + 0x1f8d, /* U+001f8d: GREEK CAPITAL LETTER ALPHA WITH DASIA AND OXIA AND PROSGEGRAMMENI*/ + 0x1f8e, /* U+001f8e: GREEK CAPITAL LETTER ALPHA WITH PSILI AND PERISPOMENI AND PROSGEGRAMMENI*/ + 0x1f8f, /* U+001f8f: GREEK CAPITAL LETTER ALPHA WITH DASIA AND PERISPOMENI AND PROSGEGRAMMENI*/ + 0x1f98, /* U+001f90: GREEK SMALL LETTER ETA WITH PSILI AND YPOGEGRAMMENI*/ + 0x1f99, /* U+001f91: GREEK SMALL LETTER ETA WITH DASIA AND YPOGEGRAMMENI*/ + 0x1f9a, /* U+001f92: GREEK SMALL LETTER ETA WITH PSILI AND VARIA AND YPOGEGRAMMENI*/ + 0x1f9b, /* U+001f93: GREEK SMALL LETTER ETA WITH DASIA AND VARIA AND YPOGEGRAMMENI*/ + 0x1f9c, /* U+001f94: GREEK SMALL LETTER ETA WITH PSILI AND OXIA AND YPOGEGRAMMENI*/ + 0x1f9d, /* U+001f95: GREEK SMALL LETTER ETA WITH DASIA AND OXIA AND YPOGEGRAMMENI*/ + 0x1f9e, /* U+001f96: GREEK SMALL LETTER ETA WITH PSILI AND PERISPOMENI AND YPOGEGRAMMENI*/ + 0x1f9f, /* U+001f97: GREEK SMALL LETTER ETA WITH DASIA AND PERISPOMENI AND YPOGEGRAMMENI*/ + 0x1f98, /* U+001f98: GREEK CAPITAL LETTER ETA WITH PSILI AND PROSGEGRAMMENI*/ + 0x1f99, /* U+001f99: GREEK CAPITAL LETTER ETA WITH DASIA AND PROSGEGRAMMENI*/ + 0x1f9a, /* U+001f9a: GREEK CAPITAL LETTER ETA WITH PSILI AND VARIA AND PROSGEGRAMMENI*/ + 0x1f9b, /* U+001f9b: GREEK CAPITAL LETTER ETA WITH DASIA AND VARIA AND PROSGEGRAMMENI*/ + 0x1f9c, /* U+001f9c: GREEK CAPITAL LETTER ETA WITH PSILI AND OXIA AND PROSGEGRAMMENI*/ + 0x1f9d, /* U+001f9d: GREEK CAPITAL LETTER ETA WITH DASIA AND OXIA AND PROSGEGRAMMENI*/ + 0x1f9e, /* U+001f9e: GREEK CAPITAL LETTER ETA WITH PSILI AND PERISPOMENI AND PROSGEGRAMMENI*/ + 0x1f9f, /* U+001f9f: GREEK CAPITAL LETTER ETA WITH DASIA AND PERISPOMENI AND PROSGEGRAMMENI*/ + 0x1fa8, /* U+001fa0: GREEK SMALL LETTER OMEGA WITH PSILI AND YPOGEGRAMMENI*/ + 0x1fa9, /* U+001fa1: GREEK SMALL LETTER OMEGA WITH DASIA AND YPOGEGRAMMENI*/ + 0x1faa, /* U+001fa2: GREEK SMALL LETTER OMEGA WITH PSILI AND VARIA AND YPOGEGRAMMENI*/ + 0x1fab, /* U+001fa3: GREEK SMALL LETTER OMEGA WITH DASIA AND VARIA AND YPOGEGRAMMENI*/ + 0x1fac, /* U+001fa4: GREEK SMALL LETTER OMEGA WITH PSILI AND OXIA AND YPOGEGRAMMENI*/ + 0x1fad, /* U+001fa5: GREEK SMALL LETTER OMEGA WITH DASIA AND OXIA AND YPOGEGRAMMENI*/ + 0x1fae, /* U+001fa6: GREEK SMALL LETTER OMEGA WITH PSILI AND PERISPOMENI AND YPOGEGRAMMENI*/ + 0x1faf, /* U+001fa7: GREEK SMALL LETTER OMEGA WITH DASIA AND PERISPOMENI AND YPOGEGRAMMENI*/ + 0x1fa8, /* U+001fa8: GREEK CAPITAL LETTER OMEGA WITH PSILI AND PROSGEGRAMMENI*/ + 0x1fa9, /* U+001fa9: GREEK CAPITAL LETTER OMEGA WITH DASIA AND PROSGEGRAMMENI*/ + 0x1faa, /* U+001faa: GREEK CAPITAL LETTER OMEGA WITH PSILI AND VARIA AND PROSGEGRAMMENI*/ + 0x1fab, /* U+001fab: GREEK CAPITAL LETTER OMEGA WITH DASIA AND VARIA AND PROSGEGRAMMENI*/ + 0x1fac, /* U+001fac: GREEK CAPITAL LETTER OMEGA WITH PSILI AND OXIA AND PROSGEGRAMMENI*/ + 0x1fad, /* U+001fad: GREEK CAPITAL LETTER OMEGA WITH DASIA AND OXIA AND PROSGEGRAMMENI*/ + 0x1fae, /* U+001fae: GREEK CAPITAL LETTER OMEGA WITH PSILI AND PERISPOMENI AND PROSGEGRAMMENI*/ + 0x1faf, /* U+001faf: GREEK CAPITAL LETTER OMEGA WITH DASIA AND PERISPOMENI AND PROSGEGRAMMENI*/ + 0x1fb8, /* U+001fb0: GREEK SMALL LETTER ALPHA WITH VRACHY*/ + 0x1fb9, /* U+001fb1: GREEK SMALL LETTER ALPHA WITH MACRON*/ + 0x1fb2, /* U+001fb2: GREEK SMALL LETTER ALPHA WITH VARIA AND YPOGEGRAMMENI*/ + 0x1fbc, /* U+001fb3: GREEK SMALL LETTER ALPHA WITH YPOGEGRAMMENI*/ + 0x1fb4, /* U+001fb4: GREEK SMALL LETTER ALPHA WITH OXIA AND YPOGEGRAMMENI*/ + 0x1fb5, /* U+001fb5: */ + 0x1fb6, /* U+001fb6: GREEK SMALL LETTER ALPHA WITH PERISPOMENI*/ + 0x1fb7, /* U+001fb7: GREEK SMALL LETTER ALPHA WITH PERISPOMENI AND YPOGEGRAMMENI*/ + 0x1fb8, /* U+001fb8: GREEK CAPITAL LETTER ALPHA WITH VRACHY*/ + 0x1fb9, /* U+001fb9: GREEK CAPITAL LETTER ALPHA WITH MACRON*/ + 0x1fba, /* U+001fba: GREEK CAPITAL LETTER ALPHA WITH VARIA*/ + 0x1fbb, /* U+001fbb: GREEK CAPITAL LETTER ALPHA WITH OXIA*/ + 0x1fbc, /* U+001fbc: GREEK CAPITAL LETTER ALPHA WITH PROSGEGRAMMENI*/ + 0x1fbd, /* U+001fbd: GREEK KORONIS*/ + 0x399, /* U+001fbe: GREEK PROSGEGRAMMENI*/ + 0x1fbf, /* U+001fbf: GREEK PSILI*/ + 0x1fc0, /* U+001fc0: GREEK PERISPOMENI*/ + 0x1fc1, /* U+001fc1: GREEK DIALYTIKA AND PERISPOMENI*/ + 0x1fc2, /* U+001fc2: GREEK SMALL LETTER ETA WITH VARIA AND YPOGEGRAMMENI*/ + 0x1fcc, /* U+001fc3: GREEK SMALL LETTER ETA WITH YPOGEGRAMMENI*/ + 0x1fc4, /* U+001fc4: GREEK SMALL LETTER ETA WITH OXIA AND YPOGEGRAMMENI*/ + 0x1fc5, /* U+001fc5: */ + 0x1fc6, /* U+001fc6: GREEK SMALL LETTER ETA WITH PERISPOMENI*/ + 0x1fc7, /* U+001fc7: GREEK SMALL LETTER ETA WITH PERISPOMENI AND YPOGEGRAMMENI*/ + 0x1fc8, /* U+001fc8: GREEK CAPITAL LETTER EPSILON WITH VARIA*/ + 0x1fc9, /* U+001fc9: GREEK CAPITAL LETTER EPSILON WITH OXIA*/ + 0x1fca, /* U+001fca: GREEK CAPITAL LETTER ETA WITH VARIA*/ + 0x1fcb, /* U+001fcb: GREEK CAPITAL LETTER ETA WITH OXIA*/ + 0x1fcc, /* U+001fcc: GREEK CAPITAL LETTER ETA WITH PROSGEGRAMMENI*/ + 0x1fcd, /* U+001fcd: GREEK PSILI AND VARIA*/ + 0x1fce, /* U+001fce: GREEK PSILI AND OXIA*/ + 0x1fcf, /* U+001fcf: GREEK PSILI AND PERISPOMENI*/ + 0x1fd8, /* U+001fd0: GREEK SMALL LETTER IOTA WITH VRACHY*/ + 0x1fd9, /* U+001fd1: GREEK SMALL LETTER IOTA WITH MACRON*/ + 0x1fd2, /* U+001fd2: GREEK SMALL LETTER IOTA WITH DIALYTIKA AND VARIA*/ + 0x1fd3, /* U+001fd3: GREEK SMALL LETTER IOTA WITH DIALYTIKA AND OXIA*/ + 0x1fd4, /* U+001fd4: */ + 0x1fd5, /* U+001fd5: */ + 0x1fd6, /* U+001fd6: GREEK SMALL LETTER IOTA WITH PERISPOMENI*/ + 0x1fd7, /* U+001fd7: GREEK SMALL LETTER IOTA WITH DIALYTIKA AND PERISPOMENI*/ + 0x1fd8, /* U+001fd8: GREEK CAPITAL LETTER IOTA WITH VRACHY*/ + 0x1fd9, /* U+001fd9: GREEK CAPITAL LETTER IOTA WITH MACRON*/ + 0x1fda, /* U+001fda: GREEK CAPITAL LETTER IOTA WITH VARIA*/ + 0x1fdb, /* U+001fdb: GREEK CAPITAL LETTER IOTA WITH OXIA*/ + 0x1fdc, /* U+001fdc: */ + 0x1fdd, /* U+001fdd: GREEK DASIA AND VARIA*/ + 0x1fde, /* U+001fde: GREEK DASIA AND OXIA*/ + 0x1fdf, /* U+001fdf: GREEK DASIA AND PERISPOMENI*/ + 0x1fe8, /* U+001fe0: GREEK SMALL LETTER UPSILON WITH VRACHY*/ + 0x1fe9, /* U+001fe1: GREEK SMALL LETTER UPSILON WITH MACRON*/ + 0x1fe2, /* U+001fe2: GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND VARIA*/ + 0x1fe3, /* U+001fe3: GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND OXIA*/ + 0x1fe4, /* U+001fe4: GREEK SMALL LETTER RHO WITH PSILI*/ + 0x1fec, /* U+001fe5: GREEK SMALL LETTER RHO WITH DASIA*/ + 0x1fe6, /* U+001fe6: GREEK SMALL LETTER UPSILON WITH PERISPOMENI*/ + 0x1fe7, /* U+001fe7: GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND PERISPOMENI*/ + 0x1fe8, /* U+001fe8: GREEK CAPITAL LETTER UPSILON WITH VRACHY*/ + 0x1fe9, /* U+001fe9: GREEK CAPITAL LETTER UPSILON WITH MACRON*/ + 0x1fea, /* U+001fea: GREEK CAPITAL LETTER UPSILON WITH VARIA*/ + 0x1feb, /* U+001feb: GREEK CAPITAL LETTER UPSILON WITH OXIA*/ + 0x1fec, /* U+001fec: GREEK CAPITAL LETTER RHO WITH DASIA*/ + 0x1fed, /* U+001fed: GREEK DIALYTIKA AND VARIA*/ + 0x1fee, /* U+001fee: GREEK DIALYTIKA AND OXIA*/ + 0x1fef, /* U+001fef: GREEK VARIA*/ + 0x1ff0, /* U+001ff0: */ + 0x1ff1, /* U+001ff1: */ + 0x1ff2, /* U+001ff2: GREEK SMALL LETTER OMEGA WITH VARIA AND YPOGEGRAMMENI*/ + 0x1ffc, /* U+001ff3: GREEK SMALL LETTER OMEGA WITH YPOGEGRAMMENI*/ + 0x1ff4, /* U+001ff4: GREEK SMALL LETTER OMEGA WITH OXIA AND YPOGEGRAMMENI*/ + 0x1ff5, /* U+001ff5: */ + 0x1ff6, /* U+001ff6: GREEK SMALL LETTER OMEGA WITH PERISPOMENI*/ + 0x1ff7, /* U+001ff7: GREEK SMALL LETTER OMEGA WITH PERISPOMENI AND YPOGEGRAMMENI*/ + 0x1ff8, /* U+001ff8: GREEK CAPITAL LETTER OMICRON WITH VARIA*/ + 0x1ff9, /* U+001ff9: GREEK CAPITAL LETTER OMICRON WITH OXIA*/ + 0x1ffa, /* U+001ffa: GREEK CAPITAL LETTER OMEGA WITH VARIA*/ + 0x1ffb, /* U+001ffb: GREEK CAPITAL LETTER OMEGA WITH OXIA*/ + 0x1ffc, /* U+001ffc: GREEK CAPITAL LETTER OMEGA WITH PROSGEGRAMMENI*/ + 0x1ffd, /* U+001ffd: GREEK OXIA*/ + 0x1ffe, /* U+001ffe: GREEK DASIA*/ + 0x1fff, /* U+001fff: */ + 0x2000, /* U+002000: EN QUAD*/ + 0x2001, /* U+002001: EM QUAD*/ + 0x2002, /* U+002002: EN SPACE*/ + 0x2003, /* U+002003: EM SPACE*/ + 0x2004, /* U+002004: THREE-PER-EM SPACE*/ + 0x2005, /* U+002005: FOUR-PER-EM SPACE*/ + 0x2006, /* U+002006: SIX-PER-EM SPACE*/ + 0x2007, /* U+002007: FIGURE SPACE*/ + 0x2008, /* U+002008: PUNCTUATION SPACE*/ + 0x2009, /* U+002009: THIN SPACE*/ + 0x200a, /* U+00200a: HAIR SPACE*/ + 0x200b, /* U+00200b: ZERO WIDTH SPACE*/ + 0x200c, /* U+00200c: ZERO WIDTH NON-JOINER*/ + 0x200d, /* U+00200d: ZERO WIDTH JOINER*/ + 0x200e, /* U+00200e: LEFT-TO-RIGHT MARK*/ + 0x200f, /* U+00200f: RIGHT-TO-LEFT MARK*/ + 0x2010, /* U+002010: HYPHEN*/ + 0x2011, /* U+002011: NON-BREAKING HYPHEN*/ + 0x2012, /* U+002012: FIGURE DASH*/ + 0x2013, /* U+002013: EN DASH*/ + 0x2014, /* U+002014: EM DASH*/ + 0x2015, /* U+002015: HORIZONTAL BAR*/ + 0x2016, /* U+002016: DOUBLE VERTICAL LINE*/ + 0x2017, /* U+002017: DOUBLE LOW LINE*/ + 0x2018, /* U+002018: LEFT SINGLE QUOTATION MARK*/ + 0x2019, /* U+002019: RIGHT SINGLE QUOTATION MARK*/ + 0x201a, /* U+00201a: SINGLE LOW-9 QUOTATION MARK*/ + 0x201b, /* U+00201b: SINGLE HIGH-REVERSED-9 QUOTATION MARK*/ + 0x201c, /* U+00201c: LEFT DOUBLE QUOTATION MARK*/ + 0x201d, /* U+00201d: RIGHT DOUBLE QUOTATION MARK*/ + 0x201e, /* U+00201e: DOUBLE LOW-9 QUOTATION MARK*/ + 0x201f, /* U+00201f: DOUBLE HIGH-REVERSED-9 QUOTATION MARK*/ + 0x2020, /* U+002020: DAGGER*/ + 0x2021, /* U+002021: DOUBLE DAGGER*/ + 0x2022, /* U+002022: BULLET*/ + 0x2023, /* U+002023: TRIANGULAR BULLET*/ + 0x2024, /* U+002024: ONE DOT LEADER*/ + 0x2025, /* U+002025: TWO DOT LEADER*/ + 0x2026, /* U+002026: HORIZONTAL ELLIPSIS*/ + 0x2027, /* U+002027: HYPHENATION POINT*/ + 0x2028, /* U+002028: LINE SEPARATOR*/ + 0x2029, /* U+002029: PARAGRAPH SEPARATOR*/ + 0x202a, /* U+00202a: LEFT-TO-RIGHT EMBEDDING*/ + 0x202b, /* U+00202b: RIGHT-TO-LEFT EMBEDDING*/ + 0x202c, /* U+00202c: POP DIRECTIONAL FORMATTING*/ + 0x202d, /* U+00202d: LEFT-TO-RIGHT OVERRIDE*/ + 0x202e, /* U+00202e: RIGHT-TO-LEFT OVERRIDE*/ + 0x202f, /* U+00202f: NARROW NO-BREAK SPACE*/ + 0x2030, /* U+002030: PER MILLE SIGN*/ + 0x2031, /* U+002031: PER TEN THOUSAND SIGN*/ + 0x2032, /* U+002032: PRIME*/ + 0x2033, /* U+002033: DOUBLE PRIME*/ + 0x2034, /* U+002034: TRIPLE PRIME*/ + 0x2035, /* U+002035: REVERSED PRIME*/ + 0x2036, /* U+002036: REVERSED DOUBLE PRIME*/ + 0x2037, /* U+002037: REVERSED TRIPLE PRIME*/ + 0x2038, /* U+002038: CARET*/ + 0x2039, /* U+002039: SINGLE LEFT-POINTING ANGLE QUOTATION MARK*/ + 0x203a, /* U+00203a: SINGLE RIGHT-POINTING ANGLE QUOTATION MARK*/ + 0x203b, /* U+00203b: REFERENCE MARK*/ + 0x203c, /* U+00203c: DOUBLE EXCLAMATION MARK*/ + 0x203d, /* U+00203d: INTERROBANG*/ + 0x203e, /* U+00203e: OVERLINE*/ + 0x203f, /* U+00203f: UNDERTIE*/ + 0x2040, /* U+002040: CHARACTER TIE*/ + 0x2041, /* U+002041: CARET INSERTION POINT*/ + 0x2042, /* U+002042: ASTERISM*/ + 0x2043, /* U+002043: HYPHEN BULLET*/ + 0x2044, /* U+002044: FRACTION SLASH*/ + 0x2045, /* U+002045: LEFT SQUARE BRACKET WITH QUILL*/ + 0x2046, /* U+002046: RIGHT SQUARE BRACKET WITH QUILL*/ + 0x2047, /* U+002047: DOUBLE QUESTION MARK*/ + 0x2048, /* U+002048: QUESTION EXCLAMATION MARK*/ + 0x2049, /* U+002049: EXCLAMATION QUESTION MARK*/ + 0x204a, /* U+00204a: TIRONIAN SIGN ET*/ + 0x204b, /* U+00204b: REVERSED PILCROW SIGN*/ + 0x204c, /* U+00204c: BLACK LEFTWARDS BULLET*/ + 0x204d, /* U+00204d: BLACK RIGHTWARDS BULLET*/ + 0x204e, /* U+00204e: LOW ASTERISK*/ + 0x204f, /* U+00204f: REVERSED SEMICOLON*/ + 0x2050, /* U+002050: CLOSE UP*/ + 0x2051, /* U+002051: TWO ASTERISKS ALIGNED VERTICALLY*/ + 0x2052, /* U+002052: COMMERCIAL MINUS SIGN*/ + 0x2053, /* U+002053: SWUNG DASH*/ + 0x2054, /* U+002054: INVERTED UNDERTIE*/ + 0x2055, /* U+002055: FLOWER PUNCTUATION MARK*/ + 0x2056, /* U+002056: THREE DOT PUNCTUATION*/ + 0x2057, /* U+002057: QUADRUPLE PRIME*/ + 0x2058, /* U+002058: FOUR DOT PUNCTUATION*/ + 0x2059, /* U+002059: FIVE DOT PUNCTUATION*/ + 0x205a, /* U+00205a: TWO DOT PUNCTUATION*/ + 0x205b, /* U+00205b: FOUR DOT MARK*/ + 0x205c, /* U+00205c: DOTTED CROSS*/ + 0x205d, /* U+00205d: TRICOLON*/ + 0x205e, /* U+00205e: VERTICAL FOUR DOTS*/ + 0x205f, /* U+00205f: MEDIUM MATHEMATICAL SPACE*/ + 0x2060, /* U+002060: WORD JOINER*/ + 0x2061, /* U+002061: FUNCTION APPLICATION*/ + 0x2062, /* U+002062: INVISIBLE TIMES*/ + 0x2063, /* U+002063: INVISIBLE SEPARATOR*/ + 0x2064, /* U+002064: INVISIBLE PLUS*/ + 0x2065, /* U+002065: */ + 0x2066, /* U+002066: LEFT-TO-RIGHT ISOLATE*/ + 0x2067, /* U+002067: RIGHT-TO-LEFT ISOLATE*/ + 0x2068, /* U+002068: FIRST STRONG ISOLATE*/ + 0x2069, /* U+002069: POP DIRECTIONAL ISOLATE*/ + 0x206a, /* U+00206a: INHIBIT SYMMETRIC SWAPPING*/ + 0x206b, /* U+00206b: ACTIVATE SYMMETRIC SWAPPING*/ + 0x206c, /* U+00206c: INHIBIT ARABIC FORM SHAPING*/ + 0x206d, /* U+00206d: ACTIVATE ARABIC FORM SHAPING*/ + 0x206e, /* U+00206e: NATIONAL DIGIT SHAPES*/ + 0x206f, /* U+00206f: NOMINAL DIGIT SHAPES*/ + 0x2070, /* U+002070: SUPERSCRIPT ZERO*/ + 0x2071, /* U+002071: SUPERSCRIPT LATIN SMALL LETTER I*/ + 0x2072, /* U+002072: */ + 0x2073, /* U+002073: */ + 0x2074, /* U+002074: SUPERSCRIPT FOUR*/ + 0x2075, /* U+002075: SUPERSCRIPT FIVE*/ + 0x2076, /* U+002076: SUPERSCRIPT SIX*/ + 0x2077, /* U+002077: SUPERSCRIPT SEVEN*/ + 0x2078, /* U+002078: SUPERSCRIPT EIGHT*/ + 0x2079, /* U+002079: SUPERSCRIPT NINE*/ + 0x207a, /* U+00207a: SUPERSCRIPT PLUS SIGN*/ + 0x207b, /* U+00207b: SUPERSCRIPT MINUS*/ + 0x207c, /* U+00207c: SUPERSCRIPT EQUALS SIGN*/ + 0x207d, /* U+00207d: SUPERSCRIPT LEFT PARENTHESIS*/ + 0x207e, /* U+00207e: SUPERSCRIPT RIGHT PARENTHESIS*/ + 0x207f, /* U+00207f: SUPERSCRIPT LATIN SMALL LETTER N*/ + 0x2080, /* U+002080: SUBSCRIPT ZERO*/ + 0x2081, /* U+002081: SUBSCRIPT ONE*/ + 0x2082, /* U+002082: SUBSCRIPT TWO*/ + 0x2083, /* U+002083: SUBSCRIPT THREE*/ + 0x2084, /* U+002084: SUBSCRIPT FOUR*/ + 0x2085, /* U+002085: SUBSCRIPT FIVE*/ + 0x2086, /* U+002086: SUBSCRIPT SIX*/ + 0x2087, /* U+002087: SUBSCRIPT SEVEN*/ + 0x2088, /* U+002088: SUBSCRIPT EIGHT*/ + 0x2089, /* U+002089: SUBSCRIPT NINE*/ + 0x208a, /* U+00208a: SUBSCRIPT PLUS SIGN*/ + 0x208b, /* U+00208b: SUBSCRIPT MINUS*/ + 0x208c, /* U+00208c: SUBSCRIPT EQUALS SIGN*/ + 0x208d, /* U+00208d: SUBSCRIPT LEFT PARENTHESIS*/ + 0x208e, /* U+00208e: SUBSCRIPT RIGHT PARENTHESIS*/ + 0x208f, /* U+00208f: */ + 0x2090, /* U+002090: LATIN SUBSCRIPT SMALL LETTER A*/ + 0x2091, /* U+002091: LATIN SUBSCRIPT SMALL LETTER E*/ + 0x2092, /* U+002092: LATIN SUBSCRIPT SMALL LETTER O*/ + 0x2093, /* U+002093: LATIN SUBSCRIPT SMALL LETTER X*/ + 0x2094, /* U+002094: LATIN SUBSCRIPT SMALL LETTER SCHWA*/ + 0x2095, /* U+002095: LATIN SUBSCRIPT SMALL LETTER H*/ + 0x2096, /* U+002096: LATIN SUBSCRIPT SMALL LETTER K*/ + 0x2097, /* U+002097: LATIN SUBSCRIPT SMALL LETTER L*/ + 0x2098, /* U+002098: LATIN SUBSCRIPT SMALL LETTER M*/ + 0x2099, /* U+002099: LATIN SUBSCRIPT SMALL LETTER N*/ + 0x209a, /* U+00209a: LATIN SUBSCRIPT SMALL LETTER P*/ + 0x209b, /* U+00209b: LATIN SUBSCRIPT SMALL LETTER S*/ + 0x209c, /* U+00209c: LATIN SUBSCRIPT SMALL LETTER T*/ + 0x209d, /* U+00209d: */ + 0x209e, /* U+00209e: */ + 0x209f, /* U+00209f: */ + 0x20a0, /* U+0020a0: EURO-CURRENCY SIGN*/ + 0x20a1, /* U+0020a1: COLON SIGN*/ + 0x20a2, /* U+0020a2: CRUZEIRO SIGN*/ + 0x20a3, /* U+0020a3: FRENCH FRANC SIGN*/ + 0x20a4, /* U+0020a4: LIRA SIGN*/ + 0x20a5, /* U+0020a5: MILL SIGN*/ + 0x20a6, /* U+0020a6: NAIRA SIGN*/ + 0x20a7, /* U+0020a7: PESETA SIGN*/ + 0x20a8, /* U+0020a8: RUPEE SIGN*/ + 0x20a9, /* U+0020a9: WON SIGN*/ + 0x20aa, /* U+0020aa: NEW SHEQEL SIGN*/ + 0x20ab, /* U+0020ab: DONG SIGN*/ + 0x20ac, /* U+0020ac: EURO SIGN*/ + 0x20ad, /* U+0020ad: KIP SIGN*/ + 0x20ae, /* U+0020ae: TUGRIK SIGN*/ + 0x20af, /* U+0020af: DRACHMA SIGN*/ + 0x20b0, /* U+0020b0: GERMAN PENNY SIGN*/ + 0x20b1, /* U+0020b1: PESO SIGN*/ + 0x20b2, /* U+0020b2: GUARANI SIGN*/ + 0x20b3, /* U+0020b3: AUSTRAL SIGN*/ + 0x20b4, /* U+0020b4: HRYVNIA SIGN*/ + 0x20b5, /* U+0020b5: CEDI SIGN*/ + 0x20b6, /* U+0020b6: LIVRE TOURNOIS SIGN*/ + 0x20b7, /* U+0020b7: SPESMILO SIGN*/ + 0x20b8, /* U+0020b8: TENGE SIGN*/ + 0x20b9, /* U+0020b9: INDIAN RUPEE SIGN*/ + 0x20ba, /* U+0020ba: TURKISH LIRA SIGN*/ + 0x20bb, /* U+0020bb: */ + 0x20bc, /* U+0020bc: */ + 0x20bd, /* U+0020bd: */ + 0x20be, /* U+0020be: */ + 0x20bf, /* U+0020bf: */ + 0x20c0, /* U+0020c0: */ + 0x20c1, /* U+0020c1: */ + 0x20c2, /* U+0020c2: */ + 0x20c3, /* U+0020c3: */ + 0x20c4, /* U+0020c4: */ + 0x20c5, /* U+0020c5: */ + 0x20c6, /* U+0020c6: */ + 0x20c7, /* U+0020c7: */ + 0x20c8, /* U+0020c8: */ + 0x20c9, /* U+0020c9: */ + 0x20ca, /* U+0020ca: */ + 0x20cb, /* U+0020cb: */ + 0x20cc, /* U+0020cc: */ + 0x20cd, /* U+0020cd: */ + 0x20ce, /* U+0020ce: */ + 0x20cf, /* U+0020cf: */ + 0x20d0, /* U+0020d0: COMBINING LEFT HARPOON ABOVE*/ + 0x20d1, /* U+0020d1: COMBINING RIGHT HARPOON ABOVE*/ + 0x20d2, /* U+0020d2: COMBINING LONG VERTICAL LINE OVERLAY*/ + 0x20d3, /* U+0020d3: COMBINING SHORT VERTICAL LINE OVERLAY*/ + 0x20d4, /* U+0020d4: COMBINING ANTICLOCKWISE ARROW ABOVE*/ + 0x20d5, /* U+0020d5: COMBINING CLOCKWISE ARROW ABOVE*/ + 0x20d6, /* U+0020d6: COMBINING LEFT ARROW ABOVE*/ + 0x20d7, /* U+0020d7: COMBINING RIGHT ARROW ABOVE*/ + 0x20d8, /* U+0020d8: COMBINING RING OVERLAY*/ + 0x20d9, /* U+0020d9: COMBINING CLOCKWISE RING OVERLAY*/ + 0x20da, /* U+0020da: COMBINING ANTICLOCKWISE RING OVERLAY*/ + 0x20db, /* U+0020db: COMBINING THREE DOTS ABOVE*/ + 0x20dc, /* U+0020dc: COMBINING FOUR DOTS ABOVE*/ + 0x20dd, /* U+0020dd: COMBINING ENCLOSING CIRCLE*/ + 0x20de, /* U+0020de: COMBINING ENCLOSING SQUARE*/ + 0x20df, /* U+0020df: COMBINING ENCLOSING DIAMOND*/ + 0x20e0, /* U+0020e0: COMBINING ENCLOSING CIRCLE BACKSLASH*/ + 0x20e1, /* U+0020e1: COMBINING LEFT RIGHT ARROW ABOVE*/ + 0x20e2, /* U+0020e2: COMBINING ENCLOSING SCREEN*/ + 0x20e3, /* U+0020e3: COMBINING ENCLOSING KEYCAP*/ + 0x20e4, /* U+0020e4: COMBINING ENCLOSING UPWARD POINTING TRIANGLE*/ + 0x20e5, /* U+0020e5: COMBINING REVERSE SOLIDUS OVERLAY*/ + 0x20e6, /* U+0020e6: COMBINING DOUBLE VERTICAL STROKE OVERLAY*/ + 0x20e7, /* U+0020e7: COMBINING ANNUITY SYMBOL*/ + 0x20e8, /* U+0020e8: COMBINING TRIPLE UNDERDOT*/ + 0x20e9, /* U+0020e9: COMBINING WIDE BRIDGE ABOVE*/ + 0x20ea, /* U+0020ea: COMBINING LEFTWARDS ARROW OVERLAY*/ + 0x20eb, /* U+0020eb: COMBINING LONG DOUBLE SOLIDUS OVERLAY*/ + 0x20ec, /* U+0020ec: COMBINING RIGHTWARDS HARPOON WITH BARB DOWNWARDS*/ + 0x20ed, /* U+0020ed: COMBINING LEFTWARDS HARPOON WITH BARB DOWNWARDS*/ + 0x20ee, /* U+0020ee: COMBINING LEFT ARROW BELOW*/ + 0x20ef, /* U+0020ef: COMBINING RIGHT ARROW BELOW*/ + 0x20f0, /* U+0020f0: COMBINING ASTERISK ABOVE*/ + 0x20f1, /* U+0020f1: */ + 0x20f2, /* U+0020f2: */ + 0x20f3, /* U+0020f3: */ + 0x20f4, /* U+0020f4: */ + 0x20f5, /* U+0020f5: */ + 0x20f6, /* U+0020f6: */ + 0x20f7, /* U+0020f7: */ + 0x20f8, /* U+0020f8: */ + 0x20f9, /* U+0020f9: */ + 0x20fa, /* U+0020fa: */ + 0x20fb, /* U+0020fb: */ + 0x20fc, /* U+0020fc: */ + 0x20fd, /* U+0020fd: */ + 0x20fe, /* U+0020fe: */ + 0x20ff, /* U+0020ff: */ + 0x2100, /* U+002100: ACCOUNT OF*/ + 0x2101, /* U+002101: ADDRESSED TO THE SUBJECT*/ + 0x2102, /* U+002102: DOUBLE-STRUCK CAPITAL C*/ + 0x2103, /* U+002103: DEGREE CELSIUS*/ + 0x2104, /* U+002104: CENTRE LINE SYMBOL*/ + 0x2105, /* U+002105: CARE OF*/ + 0x2106, /* U+002106: CADA UNA*/ + 0x2107, /* U+002107: EULER CONSTANT*/ + 0x2108, /* U+002108: SCRUPLE*/ + 0x2109, /* U+002109: DEGREE FAHRENHEIT*/ + 0x210a, /* U+00210a: SCRIPT SMALL G*/ + 0x210b, /* U+00210b: SCRIPT CAPITAL H*/ + 0x210c, /* U+00210c: BLACK-LETTER CAPITAL H*/ + 0x210d, /* U+00210d: DOUBLE-STRUCK CAPITAL H*/ + 0x210e, /* U+00210e: PLANCK CONSTANT*/ + 0x210f, /* U+00210f: PLANCK CONSTANT OVER TWO PI*/ + 0x2110, /* U+002110: SCRIPT CAPITAL I*/ + 0x2111, /* U+002111: BLACK-LETTER CAPITAL I*/ + 0x2112, /* U+002112: SCRIPT CAPITAL L*/ + 0x2113, /* U+002113: SCRIPT SMALL L*/ + 0x2114, /* U+002114: L B BAR SYMBOL*/ + 0x2115, /* U+002115: DOUBLE-STRUCK CAPITAL N*/ + 0x2116, /* U+002116: NUMERO SIGN*/ + 0x2117, /* U+002117: SOUND RECORDING COPYRIGHT*/ + 0x2118, /* U+002118: SCRIPT CAPITAL P*/ + 0x2119, /* U+002119: DOUBLE-STRUCK CAPITAL P*/ + 0x211a, /* U+00211a: DOUBLE-STRUCK CAPITAL Q*/ + 0x211b, /* U+00211b: SCRIPT CAPITAL R*/ + 0x211c, /* U+00211c: BLACK-LETTER CAPITAL R*/ + 0x211d, /* U+00211d: DOUBLE-STRUCK CAPITAL R*/ + 0x211e, /* U+00211e: PRESCRIPTION TAKE*/ + 0x211f, /* U+00211f: RESPONSE*/ + 0x2120, /* U+002120: SERVICE MARK*/ + 0x2121, /* U+002121: TELEPHONE SIGN*/ + 0x2122, /* U+002122: TRADE MARK SIGN*/ + 0x2123, /* U+002123: VERSICLE*/ + 0x2124, /* U+002124: DOUBLE-STRUCK CAPITAL Z*/ + 0x2125, /* U+002125: OUNCE SIGN*/ + 0x2126, /* U+002126: OHM SIGN*/ + 0x2127, /* U+002127: INVERTED OHM SIGN*/ + 0x2128, /* U+002128: BLACK-LETTER CAPITAL Z*/ + 0x2129, /* U+002129: TURNED GREEK SMALL LETTER IOTA*/ + 0x212a, /* U+00212a: KELVIN SIGN*/ + 0x212b, /* U+00212b: ANGSTROM SIGN*/ + 0x212c, /* U+00212c: SCRIPT CAPITAL B*/ + 0x212d, /* U+00212d: BLACK-LETTER CAPITAL C*/ + 0x212e, /* U+00212e: ESTIMATED SYMBOL*/ + 0x212f, /* U+00212f: SCRIPT SMALL E*/ + 0x2130, /* U+002130: SCRIPT CAPITAL E*/ + 0x2131, /* U+002131: SCRIPT CAPITAL F*/ + 0x2132, /* U+002132: TURNED CAPITAL F*/ + 0x2133, /* U+002133: SCRIPT CAPITAL M*/ + 0x2134, /* U+002134: SCRIPT SMALL O*/ + 0x2135, /* U+002135: ALEF SYMBOL*/ + 0x2136, /* U+002136: BET SYMBOL*/ + 0x2137, /* U+002137: GIMEL SYMBOL*/ + 0x2138, /* U+002138: DALET SYMBOL*/ + 0x2139, /* U+002139: INFORMATION SOURCE*/ + 0x213a, /* U+00213a: ROTATED CAPITAL Q*/ + 0x213b, /* U+00213b: FACSIMILE SIGN*/ + 0x213c, /* U+00213c: DOUBLE-STRUCK SMALL PI*/ + 0x213d, /* U+00213d: DOUBLE-STRUCK SMALL GAMMA*/ + 0x213e, /* U+00213e: DOUBLE-STRUCK CAPITAL GAMMA*/ + 0x213f, /* U+00213f: DOUBLE-STRUCK CAPITAL PI*/ + 0x2140, /* U+002140: DOUBLE-STRUCK N-ARY SUMMATION*/ + 0x2141, /* U+002141: TURNED SANS-SERIF CAPITAL G*/ + 0x2142, /* U+002142: TURNED SANS-SERIF CAPITAL L*/ + 0x2143, /* U+002143: REVERSED SANS-SERIF CAPITAL L*/ + 0x2144, /* U+002144: TURNED SANS-SERIF CAPITAL Y*/ + 0x2145, /* U+002145: DOUBLE-STRUCK ITALIC CAPITAL D*/ + 0x2146, /* U+002146: DOUBLE-STRUCK ITALIC SMALL D*/ + 0x2147, /* U+002147: DOUBLE-STRUCK ITALIC SMALL E*/ + 0x2148, /* U+002148: DOUBLE-STRUCK ITALIC SMALL I*/ + 0x2149, /* U+002149: DOUBLE-STRUCK ITALIC SMALL J*/ + 0x214a, /* U+00214a: PROPERTY LINE*/ + 0x214b, /* U+00214b: TURNED AMPERSAND*/ + 0x214c, /* U+00214c: PER SIGN*/ + 0x214d, /* U+00214d: AKTIESELSKAB*/ + 0x2132, /* U+00214e: TURNED SMALL F*/ + 0x214f, /* U+00214f: SYMBOL FOR SAMARITAN SOURCE*/ + 0x2150, /* U+002150: VULGAR FRACTION ONE SEVENTH*/ + 0x2151, /* U+002151: VULGAR FRACTION ONE NINTH*/ + 0x2152, /* U+002152: VULGAR FRACTION ONE TENTH*/ + 0x2153, /* U+002153: VULGAR FRACTION ONE THIRD*/ + 0x2154, /* U+002154: VULGAR FRACTION TWO THIRDS*/ + 0x2155, /* U+002155: VULGAR FRACTION ONE FIFTH*/ + 0x2156, /* U+002156: VULGAR FRACTION TWO FIFTHS*/ + 0x2157, /* U+002157: VULGAR FRACTION THREE FIFTHS*/ + 0x2158, /* U+002158: VULGAR FRACTION FOUR FIFTHS*/ + 0x2159, /* U+002159: VULGAR FRACTION ONE SIXTH*/ + 0x215a, /* U+00215a: VULGAR FRACTION FIVE SIXTHS*/ + 0x215b, /* U+00215b: VULGAR FRACTION ONE EIGHTH*/ + 0x215c, /* U+00215c: VULGAR FRACTION THREE EIGHTHS*/ + 0x215d, /* U+00215d: VULGAR FRACTION FIVE EIGHTHS*/ + 0x215e, /* U+00215e: VULGAR FRACTION SEVEN EIGHTHS*/ + 0x215f, /* U+00215f: FRACTION NUMERATOR ONE*/ + 0x2160, /* U+002160: ROMAN NUMERAL ONE*/ + 0x2161, /* U+002161: ROMAN NUMERAL TWO*/ + 0x2162, /* U+002162: ROMAN NUMERAL THREE*/ + 0x2163, /* U+002163: ROMAN NUMERAL FOUR*/ + 0x2164, /* U+002164: ROMAN NUMERAL FIVE*/ + 0x2165, /* U+002165: ROMAN NUMERAL SIX*/ + 0x2166, /* U+002166: ROMAN NUMERAL SEVEN*/ + 0x2167, /* U+002167: ROMAN NUMERAL EIGHT*/ + 0x2168, /* U+002168: ROMAN NUMERAL NINE*/ + 0x2169, /* U+002169: ROMAN NUMERAL TEN*/ + 0x216a, /* U+00216a: ROMAN NUMERAL ELEVEN*/ + 0x216b, /* U+00216b: ROMAN NUMERAL TWELVE*/ + 0x216c, /* U+00216c: ROMAN NUMERAL FIFTY*/ + 0x216d, /* U+00216d: ROMAN NUMERAL ONE HUNDRED*/ + 0x216e, /* U+00216e: ROMAN NUMERAL FIVE HUNDRED*/ + 0x216f, /* U+00216f: ROMAN NUMERAL ONE THOUSAND*/ + 0x2160, /* U+002170: SMALL ROMAN NUMERAL ONE*/ + 0x2161, /* U+002171: SMALL ROMAN NUMERAL TWO*/ + 0x2162, /* U+002172: SMALL ROMAN NUMERAL THREE*/ + 0x2163, /* U+002173: SMALL ROMAN NUMERAL FOUR*/ + 0x2164, /* U+002174: SMALL ROMAN NUMERAL FIVE*/ + 0x2165, /* U+002175: SMALL ROMAN NUMERAL SIX*/ + 0x2166, /* U+002176: SMALL ROMAN NUMERAL SEVEN*/ + 0x2167, /* U+002177: SMALL ROMAN NUMERAL EIGHT*/ + 0x2168, /* U+002178: SMALL ROMAN NUMERAL NINE*/ + 0x2169, /* U+002179: SMALL ROMAN NUMERAL TEN*/ + 0x216a, /* U+00217a: SMALL ROMAN NUMERAL ELEVEN*/ + 0x216b, /* U+00217b: SMALL ROMAN NUMERAL TWELVE*/ + 0x216c, /* U+00217c: SMALL ROMAN NUMERAL FIFTY*/ + 0x216d, /* U+00217d: SMALL ROMAN NUMERAL ONE HUNDRED*/ + 0x216e, /* U+00217e: SMALL ROMAN NUMERAL FIVE HUNDRED*/ + 0x216f, /* U+00217f: SMALL ROMAN NUMERAL ONE THOUSAND*/ + 0x2180, /* U+002180: ROMAN NUMERAL ONE THOUSAND C D*/ + 0x2181, /* U+002181: ROMAN NUMERAL FIVE THOUSAND*/ + 0x2182, /* U+002182: ROMAN NUMERAL TEN THOUSAND*/ + 0x2183, /* U+002183: ROMAN NUMERAL REVERSED ONE HUNDRED*/ + 0x2183, /* U+002184: LATIN SMALL LETTER REVERSED C*/ + 0x2185, /* U+002185: ROMAN NUMERAL SIX LATE FORM*/ + 0x2186, /* U+002186: ROMAN NUMERAL FIFTY EARLY FORM*/ + 0x2187, /* U+002187: ROMAN NUMERAL FIFTY THOUSAND*/ + 0x2188, /* U+002188: ROMAN NUMERAL ONE HUNDRED THOUSAND*/ + 0x2189, /* U+002189: VULGAR FRACTION ZERO THIRDS*/ + 0x218a, /* U+00218a: */ + 0x218b, /* U+00218b: */ + 0x218c, /* U+00218c: */ + 0x218d, /* U+00218d: */ + 0x218e, /* U+00218e: */ + 0x218f, /* U+00218f: */ + 0x2190, /* U+002190: LEFTWARDS ARROW*/ + 0x2191, /* U+002191: UPWARDS ARROW*/ + 0x2192, /* U+002192: RIGHTWARDS ARROW*/ + 0x2193, /* U+002193: DOWNWARDS ARROW*/ + 0x2194, /* U+002194: LEFT RIGHT ARROW*/ + 0x2195, /* U+002195: UP DOWN ARROW*/ + 0x2196, /* U+002196: NORTH WEST ARROW*/ + 0x2197, /* U+002197: NORTH EAST ARROW*/ + 0x2198, /* U+002198: SOUTH EAST ARROW*/ + 0x2199, /* U+002199: SOUTH WEST ARROW*/ + 0x219a, /* U+00219a: LEFTWARDS ARROW WITH STROKE*/ + 0x219b, /* U+00219b: RIGHTWARDS ARROW WITH STROKE*/ + 0x219c, /* U+00219c: LEFTWARDS WAVE ARROW*/ + 0x219d, /* U+00219d: RIGHTWARDS WAVE ARROW*/ + 0x219e, /* U+00219e: LEFTWARDS TWO HEADED ARROW*/ + 0x219f, /* U+00219f: UPWARDS TWO HEADED ARROW*/ + 0x21a0, /* U+0021a0: RIGHTWARDS TWO HEADED ARROW*/ + 0x21a1, /* U+0021a1: DOWNWARDS TWO HEADED ARROW*/ + 0x21a2, /* U+0021a2: LEFTWARDS ARROW WITH TAIL*/ + 0x21a3, /* U+0021a3: RIGHTWARDS ARROW WITH TAIL*/ + 0x21a4, /* U+0021a4: LEFTWARDS ARROW FROM BAR*/ + 0x21a5, /* U+0021a5: UPWARDS ARROW FROM BAR*/ + 0x21a6, /* U+0021a6: RIGHTWARDS ARROW FROM BAR*/ + 0x21a7, /* U+0021a7: DOWNWARDS ARROW FROM BAR*/ + 0x21a8, /* U+0021a8: UP DOWN ARROW WITH BASE*/ + 0x21a9, /* U+0021a9: LEFTWARDS ARROW WITH HOOK*/ + 0x21aa, /* U+0021aa: RIGHTWARDS ARROW WITH HOOK*/ + 0x21ab, /* U+0021ab: LEFTWARDS ARROW WITH LOOP*/ + 0x21ac, /* U+0021ac: RIGHTWARDS ARROW WITH LOOP*/ + 0x21ad, /* U+0021ad: LEFT RIGHT WAVE ARROW*/ + 0x21ae, /* U+0021ae: LEFT RIGHT ARROW WITH STROKE*/ + 0x21af, /* U+0021af: DOWNWARDS ZIGZAG ARROW*/ + 0x21b0, /* U+0021b0: UPWARDS ARROW WITH TIP LEFTWARDS*/ + 0x21b1, /* U+0021b1: UPWARDS ARROW WITH TIP RIGHTWARDS*/ + 0x21b2, /* U+0021b2: DOWNWARDS ARROW WITH TIP LEFTWARDS*/ + 0x21b3, /* U+0021b3: DOWNWARDS ARROW WITH TIP RIGHTWARDS*/ + 0x21b4, /* U+0021b4: RIGHTWARDS ARROW WITH CORNER DOWNWARDS*/ + 0x21b5, /* U+0021b5: DOWNWARDS ARROW WITH CORNER LEFTWARDS*/ + 0x21b6, /* U+0021b6: ANTICLOCKWISE TOP SEMICIRCLE ARROW*/ + 0x21b7, /* U+0021b7: CLOCKWISE TOP SEMICIRCLE ARROW*/ + 0x21b8, /* U+0021b8: NORTH WEST ARROW TO LONG BAR*/ + 0x21b9, /* U+0021b9: LEFTWARDS ARROW TO BAR OVER RIGHTWARDS ARROW TO BAR*/ + 0x21ba, /* U+0021ba: ANTICLOCKWISE OPEN CIRCLE ARROW*/ + 0x21bb, /* U+0021bb: CLOCKWISE OPEN CIRCLE ARROW*/ + 0x21bc, /* U+0021bc: LEFTWARDS HARPOON WITH BARB UPWARDS*/ + 0x21bd, /* U+0021bd: LEFTWARDS HARPOON WITH BARB DOWNWARDS*/ + 0x21be, /* U+0021be: UPWARDS HARPOON WITH BARB RIGHTWARDS*/ + 0x21bf, /* U+0021bf: UPWARDS HARPOON WITH BARB LEFTWARDS*/ + 0x21c0, /* U+0021c0: RIGHTWARDS HARPOON WITH BARB UPWARDS*/ + 0x21c1, /* U+0021c1: RIGHTWARDS HARPOON WITH BARB DOWNWARDS*/ + 0x21c2, /* U+0021c2: DOWNWARDS HARPOON WITH BARB RIGHTWARDS*/ + 0x21c3, /* U+0021c3: DOWNWARDS HARPOON WITH BARB LEFTWARDS*/ + 0x21c4, /* U+0021c4: RIGHTWARDS ARROW OVER LEFTWARDS ARROW*/ + 0x21c5, /* U+0021c5: UPWARDS ARROW LEFTWARDS OF DOWNWARDS ARROW*/ + 0x21c6, /* U+0021c6: LEFTWARDS ARROW OVER RIGHTWARDS ARROW*/ + 0x21c7, /* U+0021c7: LEFTWARDS PAIRED ARROWS*/ + 0x21c8, /* U+0021c8: UPWARDS PAIRED ARROWS*/ + 0x21c9, /* U+0021c9: RIGHTWARDS PAIRED ARROWS*/ + 0x21ca, /* U+0021ca: DOWNWARDS PAIRED ARROWS*/ + 0x21cb, /* U+0021cb: LEFTWARDS HARPOON OVER RIGHTWARDS HARPOON*/ + 0x21cc, /* U+0021cc: RIGHTWARDS HARPOON OVER LEFTWARDS HARPOON*/ + 0x21cd, /* U+0021cd: LEFTWARDS DOUBLE ARROW WITH STROKE*/ + 0x21ce, /* U+0021ce: LEFT RIGHT DOUBLE ARROW WITH STROKE*/ + 0x21cf, /* U+0021cf: RIGHTWARDS DOUBLE ARROW WITH STROKE*/ + 0x21d0, /* U+0021d0: LEFTWARDS DOUBLE ARROW*/ + 0x21d1, /* U+0021d1: UPWARDS DOUBLE ARROW*/ + 0x21d2, /* U+0021d2: RIGHTWARDS DOUBLE ARROW*/ + 0x21d3, /* U+0021d3: DOWNWARDS DOUBLE ARROW*/ + 0x21d4, /* U+0021d4: LEFT RIGHT DOUBLE ARROW*/ + 0x21d5, /* U+0021d5: UP DOWN DOUBLE ARROW*/ + 0x21d6, /* U+0021d6: NORTH WEST DOUBLE ARROW*/ + 0x21d7, /* U+0021d7: NORTH EAST DOUBLE ARROW*/ + 0x21d8, /* U+0021d8: SOUTH EAST DOUBLE ARROW*/ + 0x21d9, /* U+0021d9: SOUTH WEST DOUBLE ARROW*/ + 0x21da, /* U+0021da: LEFTWARDS TRIPLE ARROW*/ + 0x21db, /* U+0021db: RIGHTWARDS TRIPLE ARROW*/ + 0x21dc, /* U+0021dc: LEFTWARDS SQUIGGLE ARROW*/ + 0x21dd, /* U+0021dd: RIGHTWARDS SQUIGGLE ARROW*/ + 0x21de, /* U+0021de: UPWARDS ARROW WITH DOUBLE STROKE*/ + 0x21df, /* U+0021df: DOWNWARDS ARROW WITH DOUBLE STROKE*/ + 0x21e0, /* U+0021e0: LEFTWARDS DASHED ARROW*/ + 0x21e1, /* U+0021e1: UPWARDS DASHED ARROW*/ + 0x21e2, /* U+0021e2: RIGHTWARDS DASHED ARROW*/ + 0x21e3, /* U+0021e3: DOWNWARDS DASHED ARROW*/ + 0x21e4, /* U+0021e4: LEFTWARDS ARROW TO BAR*/ + 0x21e5, /* U+0021e5: RIGHTWARDS ARROW TO BAR*/ + 0x21e6, /* U+0021e6: LEFTWARDS WHITE ARROW*/ + 0x21e7, /* U+0021e7: UPWARDS WHITE ARROW*/ + 0x21e8, /* U+0021e8: RIGHTWARDS WHITE ARROW*/ + 0x21e9, /* U+0021e9: DOWNWARDS WHITE ARROW*/ + 0x21ea, /* U+0021ea: UPWARDS WHITE ARROW FROM BAR*/ + 0x21eb, /* U+0021eb: UPWARDS WHITE ARROW ON PEDESTAL*/ + 0x21ec, /* U+0021ec: UPWARDS WHITE ARROW ON PEDESTAL WITH HORIZONTAL BAR*/ + 0x21ed, /* U+0021ed: UPWARDS WHITE ARROW ON PEDESTAL WITH VERTICAL BAR*/ + 0x21ee, /* U+0021ee: UPWARDS WHITE DOUBLE ARROW*/ + 0x21ef, /* U+0021ef: UPWARDS WHITE DOUBLE ARROW ON PEDESTAL*/ + 0x21f0, /* U+0021f0: RIGHTWARDS WHITE ARROW FROM WALL*/ + 0x21f1, /* U+0021f1: NORTH WEST ARROW TO CORNER*/ + 0x21f2, /* U+0021f2: SOUTH EAST ARROW TO CORNER*/ + 0x21f3, /* U+0021f3: UP DOWN WHITE ARROW*/ + 0x21f4, /* U+0021f4: RIGHT ARROW WITH SMALL CIRCLE*/ + 0x21f5, /* U+0021f5: DOWNWARDS ARROW LEFTWARDS OF UPWARDS ARROW*/ + 0x21f6, /* U+0021f6: THREE RIGHTWARDS ARROWS*/ + 0x21f7, /* U+0021f7: LEFTWARDS ARROW WITH VERTICAL STROKE*/ + 0x21f8, /* U+0021f8: RIGHTWARDS ARROW WITH VERTICAL STROKE*/ + 0x21f9, /* U+0021f9: LEFT RIGHT ARROW WITH VERTICAL STROKE*/ + 0x21fa, /* U+0021fa: LEFTWARDS ARROW WITH DOUBLE VERTICAL STROKE*/ + 0x21fb, /* U+0021fb: RIGHTWARDS ARROW WITH DOUBLE VERTICAL STROKE*/ + 0x21fc, /* U+0021fc: LEFT RIGHT ARROW WITH DOUBLE VERTICAL STROKE*/ + 0x21fd, /* U+0021fd: LEFTWARDS OPEN-HEADED ARROW*/ + 0x21fe, /* U+0021fe: RIGHTWARDS OPEN-HEADED ARROW*/ + 0x21ff, /* U+0021ff: LEFT RIGHT OPEN-HEADED ARROW*/ + 0x2200, /* U+002200: FOR ALL*/ + 0x2201, /* U+002201: COMPLEMENT*/ + 0x2202, /* U+002202: PARTIAL DIFFERENTIAL*/ + 0x2203, /* U+002203: THERE EXISTS*/ + 0x2204, /* U+002204: THERE DOES NOT EXIST*/ + 0x2205, /* U+002205: EMPTY SET*/ + 0x2206, /* U+002206: INCREMENT*/ + 0x2207, /* U+002207: NABLA*/ + 0x2208, /* U+002208: ELEMENT OF*/ + 0x2209, /* U+002209: NOT AN ELEMENT OF*/ + 0x220a, /* U+00220a: SMALL ELEMENT OF*/ + 0x220b, /* U+00220b: CONTAINS AS MEMBER*/ + 0x220c, /* U+00220c: DOES NOT CONTAIN AS MEMBER*/ + 0x220d, /* U+00220d: SMALL CONTAINS AS MEMBER*/ + 0x220e, /* U+00220e: END OF PROOF*/ + 0x220f, /* U+00220f: N-ARY PRODUCT*/ + 0x2210, /* U+002210: N-ARY COPRODUCT*/ + 0x2211, /* U+002211: N-ARY SUMMATION*/ + 0x2212, /* U+002212: MINUS SIGN*/ + 0x2213, /* U+002213: MINUS-OR-PLUS SIGN*/ + 0x2214, /* U+002214: DOT PLUS*/ + 0x2215, /* U+002215: DIVISION SLASH*/ + 0x2216, /* U+002216: SET MINUS*/ + 0x2217, /* U+002217: ASTERISK OPERATOR*/ + 0x2218, /* U+002218: RING OPERATOR*/ + 0x2219, /* U+002219: BULLET OPERATOR*/ + 0x221a, /* U+00221a: SQUARE ROOT*/ + 0x221b, /* U+00221b: CUBE ROOT*/ + 0x221c, /* U+00221c: FOURTH ROOT*/ + 0x221d, /* U+00221d: PROPORTIONAL TO*/ + 0x221e, /* U+00221e: INFINITY*/ + 0x221f, /* U+00221f: RIGHT ANGLE*/ + 0x2220, /* U+002220: ANGLE*/ + 0x2221, /* U+002221: MEASURED ANGLE*/ + 0x2222, /* U+002222: SPHERICAL ANGLE*/ + 0x2223, /* U+002223: DIVIDES*/ + 0x2224, /* U+002224: DOES NOT DIVIDE*/ + 0x2225, /* U+002225: PARALLEL TO*/ + 0x2226, /* U+002226: NOT PARALLEL TO*/ + 0x2227, /* U+002227: LOGICAL AND*/ + 0x2228, /* U+002228: LOGICAL OR*/ + 0x2229, /* U+002229: INTERSECTION*/ + 0x222a, /* U+00222a: UNION*/ + 0x222b, /* U+00222b: INTEGRAL*/ + 0x222c, /* U+00222c: DOUBLE INTEGRAL*/ + 0x222d, /* U+00222d: TRIPLE INTEGRAL*/ + 0x222e, /* U+00222e: CONTOUR INTEGRAL*/ + 0x222f, /* U+00222f: SURFACE INTEGRAL*/ + 0x2230, /* U+002230: VOLUME INTEGRAL*/ + 0x2231, /* U+002231: CLOCKWISE INTEGRAL*/ + 0x2232, /* U+002232: CLOCKWISE CONTOUR INTEGRAL*/ + 0x2233, /* U+002233: ANTICLOCKWISE CONTOUR INTEGRAL*/ + 0x2234, /* U+002234: THEREFORE*/ + 0x2235, /* U+002235: BECAUSE*/ + 0x2236, /* U+002236: RATIO*/ + 0x2237, /* U+002237: PROPORTION*/ + 0x2238, /* U+002238: DOT MINUS*/ + 0x2239, /* U+002239: EXCESS*/ + 0x223a, /* U+00223a: GEOMETRIC PROPORTION*/ + 0x223b, /* U+00223b: HOMOTHETIC*/ + 0x223c, /* U+00223c: TILDE OPERATOR*/ + 0x223d, /* U+00223d: REVERSED TILDE*/ + 0x223e, /* U+00223e: INVERTED LAZY S*/ + 0x223f, /* U+00223f: SINE WAVE*/ + 0x2240, /* U+002240: WREATH PRODUCT*/ + 0x2241, /* U+002241: NOT TILDE*/ + 0x2242, /* U+002242: MINUS TILDE*/ + 0x2243, /* U+002243: ASYMPTOTICALLY EQUAL TO*/ + 0x2244, /* U+002244: NOT ASYMPTOTICALLY EQUAL TO*/ + 0x2245, /* U+002245: APPROXIMATELY EQUAL TO*/ + 0x2246, /* U+002246: APPROXIMATELY BUT NOT ACTUALLY EQUAL TO*/ + 0x2247, /* U+002247: NEITHER APPROXIMATELY NOR ACTUALLY EQUAL TO*/ + 0x2248, /* U+002248: ALMOST EQUAL TO*/ + 0x2249, /* U+002249: NOT ALMOST EQUAL TO*/ + 0x224a, /* U+00224a: ALMOST EQUAL OR EQUAL TO*/ + 0x224b, /* U+00224b: TRIPLE TILDE*/ + 0x224c, /* U+00224c: ALL EQUAL TO*/ + 0x224d, /* U+00224d: EQUIVALENT TO*/ + 0x224e, /* U+00224e: GEOMETRICALLY EQUIVALENT TO*/ + 0x224f, /* U+00224f: DIFFERENCE BETWEEN*/ + 0x2250, /* U+002250: APPROACHES THE LIMIT*/ + 0x2251, /* U+002251: GEOMETRICALLY EQUAL TO*/ + 0x2252, /* U+002252: APPROXIMATELY EQUAL TO OR THE IMAGE OF*/ + 0x2253, /* U+002253: IMAGE OF OR APPROXIMATELY EQUAL TO*/ + 0x2254, /* U+002254: COLON EQUALS*/ + 0x2255, /* U+002255: EQUALS COLON*/ + 0x2256, /* U+002256: RING IN EQUAL TO*/ + 0x2257, /* U+002257: RING EQUAL TO*/ + 0x2258, /* U+002258: CORRESPONDS TO*/ + 0x2259, /* U+002259: ESTIMATES*/ + 0x225a, /* U+00225a: EQUIANGULAR TO*/ + 0x225b, /* U+00225b: STAR EQUALS*/ + 0x225c, /* U+00225c: DELTA EQUAL TO*/ + 0x225d, /* U+00225d: EQUAL TO BY DEFINITION*/ + 0x225e, /* U+00225e: MEASURED BY*/ + 0x225f, /* U+00225f: QUESTIONED EQUAL TO*/ + 0x2260, /* U+002260: NOT EQUAL TO*/ + 0x2261, /* U+002261: IDENTICAL TO*/ + 0x2262, /* U+002262: NOT IDENTICAL TO*/ + 0x2263, /* U+002263: STRICTLY EQUIVALENT TO*/ + 0x2264, /* U+002264: LESS-THAN OR EQUAL TO*/ + 0x2265, /* U+002265: GREATER-THAN OR EQUAL TO*/ + 0x2266, /* U+002266: LESS-THAN OVER EQUAL TO*/ + 0x2267, /* U+002267: GREATER-THAN OVER EQUAL TO*/ + 0x2268, /* U+002268: LESS-THAN BUT NOT EQUAL TO*/ + 0x2269, /* U+002269: GREATER-THAN BUT NOT EQUAL TO*/ + 0x226a, /* U+00226a: MUCH LESS-THAN*/ + 0x226b, /* U+00226b: MUCH GREATER-THAN*/ + 0x226c, /* U+00226c: BETWEEN*/ + 0x226d, /* U+00226d: NOT EQUIVALENT TO*/ + 0x226e, /* U+00226e: NOT LESS-THAN*/ + 0x226f, /* U+00226f: NOT GREATER-THAN*/ + 0x2270, /* U+002270: NEITHER LESS-THAN NOR EQUAL TO*/ + 0x2271, /* U+002271: NEITHER GREATER-THAN NOR EQUAL TO*/ + 0x2272, /* U+002272: LESS-THAN OR EQUIVALENT TO*/ + 0x2273, /* U+002273: GREATER-THAN OR EQUIVALENT TO*/ + 0x2274, /* U+002274: NEITHER LESS-THAN NOR EQUIVALENT TO*/ + 0x2275, /* U+002275: NEITHER GREATER-THAN NOR EQUIVALENT TO*/ + 0x2276, /* U+002276: LESS-THAN OR GREATER-THAN*/ + 0x2277, /* U+002277: GREATER-THAN OR LESS-THAN*/ + 0x2278, /* U+002278: NEITHER LESS-THAN NOR GREATER-THAN*/ + 0x2279, /* U+002279: NEITHER GREATER-THAN NOR LESS-THAN*/ + 0x227a, /* U+00227a: PRECEDES*/ + 0x227b, /* U+00227b: SUCCEEDS*/ + 0x227c, /* U+00227c: PRECEDES OR EQUAL TO*/ + 0x227d, /* U+00227d: SUCCEEDS OR EQUAL TO*/ + 0x227e, /* U+00227e: PRECEDES OR EQUIVALENT TO*/ + 0x227f, /* U+00227f: SUCCEEDS OR EQUIVALENT TO*/ + 0x2280, /* U+002280: DOES NOT PRECEDE*/ + 0x2281, /* U+002281: DOES NOT SUCCEED*/ + 0x2282, /* U+002282: SUBSET OF*/ + 0x2283, /* U+002283: SUPERSET OF*/ + 0x2284, /* U+002284: NOT A SUBSET OF*/ + 0x2285, /* U+002285: NOT A SUPERSET OF*/ + 0x2286, /* U+002286: SUBSET OF OR EQUAL TO*/ + 0x2287, /* U+002287: SUPERSET OF OR EQUAL TO*/ + 0x2288, /* U+002288: NEITHER A SUBSET OF NOR EQUAL TO*/ + 0x2289, /* U+002289: NEITHER A SUPERSET OF NOR EQUAL TO*/ + 0x228a, /* U+00228a: SUBSET OF WITH NOT EQUAL TO*/ + 0x228b, /* U+00228b: SUPERSET OF WITH NOT EQUAL TO*/ + 0x228c, /* U+00228c: MULTISET*/ + 0x228d, /* U+00228d: MULTISET MULTIPLICATION*/ + 0x228e, /* U+00228e: MULTISET UNION*/ + 0x228f, /* U+00228f: SQUARE IMAGE OF*/ + 0x2290, /* U+002290: SQUARE ORIGINAL OF*/ + 0x2291, /* U+002291: SQUARE IMAGE OF OR EQUAL TO*/ + 0x2292, /* U+002292: SQUARE ORIGINAL OF OR EQUAL TO*/ + 0x2293, /* U+002293: SQUARE CAP*/ + 0x2294, /* U+002294: SQUARE CUP*/ + 0x2295, /* U+002295: CIRCLED PLUS*/ + 0x2296, /* U+002296: CIRCLED MINUS*/ + 0x2297, /* U+002297: CIRCLED TIMES*/ + 0x2298, /* U+002298: CIRCLED DIVISION SLASH*/ + 0x2299, /* U+002299: CIRCLED DOT OPERATOR*/ + 0x229a, /* U+00229a: CIRCLED RING OPERATOR*/ + 0x229b, /* U+00229b: CIRCLED ASTERISK OPERATOR*/ + 0x229c, /* U+00229c: CIRCLED EQUALS*/ + 0x229d, /* U+00229d: CIRCLED DASH*/ + 0x229e, /* U+00229e: SQUARED PLUS*/ + 0x229f, /* U+00229f: SQUARED MINUS*/ + 0x22a0, /* U+0022a0: SQUARED TIMES*/ + 0x22a1, /* U+0022a1: SQUARED DOT OPERATOR*/ + 0x22a2, /* U+0022a2: RIGHT TACK*/ + 0x22a3, /* U+0022a3: LEFT TACK*/ + 0x22a4, /* U+0022a4: DOWN TACK*/ + 0x22a5, /* U+0022a5: UP TACK*/ + 0x22a6, /* U+0022a6: ASSERTION*/ + 0x22a7, /* U+0022a7: MODELS*/ + 0x22a8, /* U+0022a8: TRUE*/ + 0x22a9, /* U+0022a9: FORCES*/ + 0x22aa, /* U+0022aa: TRIPLE VERTICAL BAR RIGHT TURNSTILE*/ + 0x22ab, /* U+0022ab: DOUBLE VERTICAL BAR DOUBLE RIGHT TURNSTILE*/ + 0x22ac, /* U+0022ac: DOES NOT PROVE*/ + 0x22ad, /* U+0022ad: NOT TRUE*/ + 0x22ae, /* U+0022ae: DOES NOT FORCE*/ + 0x22af, /* U+0022af: NEGATED DOUBLE VERTICAL BAR DOUBLE RIGHT TURNSTILE*/ + 0x22b0, /* U+0022b0: PRECEDES UNDER RELATION*/ + 0x22b1, /* U+0022b1: SUCCEEDS UNDER RELATION*/ + 0x22b2, /* U+0022b2: NORMAL SUBGROUP OF*/ + 0x22b3, /* U+0022b3: CONTAINS AS NORMAL SUBGROUP*/ + 0x22b4, /* U+0022b4: NORMAL SUBGROUP OF OR EQUAL TO*/ + 0x22b5, /* U+0022b5: CONTAINS AS NORMAL SUBGROUP OR EQUAL TO*/ + 0x22b6, /* U+0022b6: ORIGINAL OF*/ + 0x22b7, /* U+0022b7: IMAGE OF*/ + 0x22b8, /* U+0022b8: MULTIMAP*/ + 0x22b9, /* U+0022b9: HERMITIAN CONJUGATE MATRIX*/ + 0x22ba, /* U+0022ba: INTERCALATE*/ + 0x22bb, /* U+0022bb: XOR*/ + 0x22bc, /* U+0022bc: NAND*/ + 0x22bd, /* U+0022bd: NOR*/ + 0x22be, /* U+0022be: RIGHT ANGLE WITH ARC*/ + 0x22bf, /* U+0022bf: RIGHT TRIANGLE*/ + 0x22c0, /* U+0022c0: N-ARY LOGICAL AND*/ + 0x22c1, /* U+0022c1: N-ARY LOGICAL OR*/ + 0x22c2, /* U+0022c2: N-ARY INTERSECTION*/ + 0x22c3, /* U+0022c3: N-ARY UNION*/ + 0x22c4, /* U+0022c4: DIAMOND OPERATOR*/ + 0x22c5, /* U+0022c5: DOT OPERATOR*/ + 0x22c6, /* U+0022c6: STAR OPERATOR*/ + 0x22c7, /* U+0022c7: DIVISION TIMES*/ + 0x22c8, /* U+0022c8: BOWTIE*/ + 0x22c9, /* U+0022c9: LEFT NORMAL FACTOR SEMIDIRECT PRODUCT*/ + 0x22ca, /* U+0022ca: RIGHT NORMAL FACTOR SEMIDIRECT PRODUCT*/ + 0x22cb, /* U+0022cb: LEFT SEMIDIRECT PRODUCT*/ + 0x22cc, /* U+0022cc: RIGHT SEMIDIRECT PRODUCT*/ + 0x22cd, /* U+0022cd: REVERSED TILDE EQUALS*/ + 0x22ce, /* U+0022ce: CURLY LOGICAL OR*/ + 0x22cf, /* U+0022cf: CURLY LOGICAL AND*/ + 0x22d0, /* U+0022d0: DOUBLE SUBSET*/ + 0x22d1, /* U+0022d1: DOUBLE SUPERSET*/ + 0x22d2, /* U+0022d2: DOUBLE INTERSECTION*/ + 0x22d3, /* U+0022d3: DOUBLE UNION*/ + 0x22d4, /* U+0022d4: PITCHFORK*/ + 0x22d5, /* U+0022d5: EQUAL AND PARALLEL TO*/ + 0x22d6, /* U+0022d6: LESS-THAN WITH DOT*/ + 0x22d7, /* U+0022d7: GREATER-THAN WITH DOT*/ + 0x22d8, /* U+0022d8: VERY MUCH LESS-THAN*/ + 0x22d9, /* U+0022d9: VERY MUCH GREATER-THAN*/ + 0x22da, /* U+0022da: LESS-THAN EQUAL TO OR GREATER-THAN*/ + 0x22db, /* U+0022db: GREATER-THAN EQUAL TO OR LESS-THAN*/ + 0x22dc, /* U+0022dc: EQUAL TO OR LESS-THAN*/ + 0x22dd, /* U+0022dd: EQUAL TO OR GREATER-THAN*/ + 0x22de, /* U+0022de: EQUAL TO OR PRECEDES*/ + 0x22df, /* U+0022df: EQUAL TO OR SUCCEEDS*/ + 0x22e0, /* U+0022e0: DOES NOT PRECEDE OR EQUAL*/ + 0x22e1, /* U+0022e1: DOES NOT SUCCEED OR EQUAL*/ + 0x22e2, /* U+0022e2: NOT SQUARE IMAGE OF OR EQUAL TO*/ + 0x22e3, /* U+0022e3: NOT SQUARE ORIGINAL OF OR EQUAL TO*/ + 0x22e4, /* U+0022e4: SQUARE IMAGE OF OR NOT EQUAL TO*/ + 0x22e5, /* U+0022e5: SQUARE ORIGINAL OF OR NOT EQUAL TO*/ + 0x22e6, /* U+0022e6: LESS-THAN BUT NOT EQUIVALENT TO*/ + 0x22e7, /* U+0022e7: GREATER-THAN BUT NOT EQUIVALENT TO*/ + 0x22e8, /* U+0022e8: PRECEDES BUT NOT EQUIVALENT TO*/ + 0x22e9, /* U+0022e9: SUCCEEDS BUT NOT EQUIVALENT TO*/ + 0x22ea, /* U+0022ea: NOT NORMAL SUBGROUP OF*/ + 0x22eb, /* U+0022eb: DOES NOT CONTAIN AS NORMAL SUBGROUP*/ + 0x22ec, /* U+0022ec: NOT NORMAL SUBGROUP OF OR EQUAL TO*/ + 0x22ed, /* U+0022ed: DOES NOT CONTAIN AS NORMAL SUBGROUP OR EQUAL*/ + 0x22ee, /* U+0022ee: VERTICAL ELLIPSIS*/ + 0x22ef, /* U+0022ef: MIDLINE HORIZONTAL ELLIPSIS*/ + 0x22f0, /* U+0022f0: UP RIGHT DIAGONAL ELLIPSIS*/ + 0x22f1, /* U+0022f1: DOWN RIGHT DIAGONAL ELLIPSIS*/ + 0x22f2, /* U+0022f2: ELEMENT OF WITH LONG HORIZONTAL STROKE*/ + 0x22f3, /* U+0022f3: ELEMENT OF WITH VERTICAL BAR AT END OF HORIZONTAL STROKE*/ + 0x22f4, /* U+0022f4: SMALL ELEMENT OF WITH VERTICAL BAR AT END OF HORIZONTAL STROKE*/ + 0x22f5, /* U+0022f5: ELEMENT OF WITH DOT ABOVE*/ + 0x22f6, /* U+0022f6: ELEMENT OF WITH OVERBAR*/ + 0x22f7, /* U+0022f7: SMALL ELEMENT OF WITH OVERBAR*/ + 0x22f8, /* U+0022f8: ELEMENT OF WITH UNDERBAR*/ + 0x22f9, /* U+0022f9: ELEMENT OF WITH TWO HORIZONTAL STROKES*/ + 0x22fa, /* U+0022fa: CONTAINS WITH LONG HORIZONTAL STROKE*/ + 0x22fb, /* U+0022fb: CONTAINS WITH VERTICAL BAR AT END OF HORIZONTAL STROKE*/ + 0x22fc, /* U+0022fc: SMALL CONTAINS WITH VERTICAL BAR AT END OF HORIZONTAL STROKE*/ + 0x22fd, /* U+0022fd: CONTAINS WITH OVERBAR*/ + 0x22fe, /* U+0022fe: SMALL CONTAINS WITH OVERBAR*/ + 0x22ff, /* U+0022ff: Z NOTATION BAG MEMBERSHIP*/ + 0x2300, /* U+002300: DIAMETER SIGN*/ + 0x2301, /* U+002301: ELECTRIC ARROW*/ + 0x2302, /* U+002302: HOUSE*/ + 0x2303, /* U+002303: UP ARROWHEAD*/ + 0x2304, /* U+002304: DOWN ARROWHEAD*/ + 0x2305, /* U+002305: PROJECTIVE*/ + 0x2306, /* U+002306: PERSPECTIVE*/ + 0x2307, /* U+002307: WAVY LINE*/ + 0x2308, /* U+002308: LEFT CEILING*/ + 0x2309, /* U+002309: RIGHT CEILING*/ + 0x230a, /* U+00230a: LEFT FLOOR*/ + 0x230b, /* U+00230b: RIGHT FLOOR*/ + 0x230c, /* U+00230c: BOTTOM RIGHT CROP*/ + 0x230d, /* U+00230d: BOTTOM LEFT CROP*/ + 0x230e, /* U+00230e: TOP RIGHT CROP*/ + 0x230f, /* U+00230f: TOP LEFT CROP*/ + 0x2310, /* U+002310: REVERSED NOT SIGN*/ + 0x2311, /* U+002311: SQUARE LOZENGE*/ + 0x2312, /* U+002312: ARC*/ + 0x2313, /* U+002313: SEGMENT*/ + 0x2314, /* U+002314: SECTOR*/ + 0x2315, /* U+002315: TELEPHONE RECORDER*/ + 0x2316, /* U+002316: POSITION INDICATOR*/ + 0x2317, /* U+002317: VIEWDATA SQUARE*/ + 0x2318, /* U+002318: PLACE OF INTEREST SIGN*/ + 0x2319, /* U+002319: TURNED NOT SIGN*/ + 0x231a, /* U+00231a: WATCH*/ + 0x231b, /* U+00231b: HOURGLASS*/ + 0x231c, /* U+00231c: TOP LEFT CORNER*/ + 0x231d, /* U+00231d: TOP RIGHT CORNER*/ + 0x231e, /* U+00231e: BOTTOM LEFT CORNER*/ + 0x231f, /* U+00231f: BOTTOM RIGHT CORNER*/ + 0x2320, /* U+002320: TOP HALF INTEGRAL*/ + 0x2321, /* U+002321: BOTTOM HALF INTEGRAL*/ + 0x2322, /* U+002322: FROWN*/ + 0x2323, /* U+002323: SMILE*/ + 0x2324, /* U+002324: UP ARROWHEAD BETWEEN TWO HORIZONTAL BARS*/ + 0x2325, /* U+002325: OPTION KEY*/ + 0x2326, /* U+002326: ERASE TO THE RIGHT*/ + 0x2327, /* U+002327: X IN A RECTANGLE BOX*/ + 0x2328, /* U+002328: KEYBOARD*/ + 0x2329, /* U+002329: LEFT-POINTING ANGLE BRACKET*/ + 0x232a, /* U+00232a: RIGHT-POINTING ANGLE BRACKET*/ + 0x232b, /* U+00232b: ERASE TO THE LEFT*/ + 0x232c, /* U+00232c: BENZENE RING*/ + 0x232d, /* U+00232d: CYLINDRICITY*/ + 0x232e, /* U+00232e: ALL AROUND-PROFILE*/ + 0x232f, /* U+00232f: SYMMETRY*/ + 0x2330, /* U+002330: TOTAL RUNOUT*/ + 0x2331, /* U+002331: DIMENSION ORIGIN*/ + 0x2332, /* U+002332: CONICAL TAPER*/ + 0x2333, /* U+002333: SLOPE*/ + 0x2334, /* U+002334: COUNTERBORE*/ + 0x2335, /* U+002335: COUNTERSINK*/ + 0x2336, /* U+002336: APL FUNCTIONAL SYMBOL I-BEAM*/ + 0x2337, /* U+002337: APL FUNCTIONAL SYMBOL SQUISH QUAD*/ + 0x2338, /* U+002338: APL FUNCTIONAL SYMBOL QUAD EQUAL*/ + 0x2339, /* U+002339: APL FUNCTIONAL SYMBOL QUAD DIVIDE*/ + 0x233a, /* U+00233a: APL FUNCTIONAL SYMBOL QUAD DIAMOND*/ + 0x233b, /* U+00233b: APL FUNCTIONAL SYMBOL QUAD JOT*/ + 0x233c, /* U+00233c: APL FUNCTIONAL SYMBOL QUAD CIRCLE*/ + 0x233d, /* U+00233d: APL FUNCTIONAL SYMBOL CIRCLE STILE*/ + 0x233e, /* U+00233e: APL FUNCTIONAL SYMBOL CIRCLE JOT*/ + 0x233f, /* U+00233f: APL FUNCTIONAL SYMBOL SLASH BAR*/ + 0x2340, /* U+002340: APL FUNCTIONAL SYMBOL BACKSLASH BAR*/ + 0x2341, /* U+002341: APL FUNCTIONAL SYMBOL QUAD SLASH*/ + 0x2342, /* U+002342: APL FUNCTIONAL SYMBOL QUAD BACKSLASH*/ + 0x2343, /* U+002343: APL FUNCTIONAL SYMBOL QUAD LESS-THAN*/ + 0x2344, /* U+002344: APL FUNCTIONAL SYMBOL QUAD GREATER-THAN*/ + 0x2345, /* U+002345: APL FUNCTIONAL SYMBOL LEFTWARDS VANE*/ + 0x2346, /* U+002346: APL FUNCTIONAL SYMBOL RIGHTWARDS VANE*/ + 0x2347, /* U+002347: APL FUNCTIONAL SYMBOL QUAD LEFTWARDS ARROW*/ + 0x2348, /* U+002348: APL FUNCTIONAL SYMBOL QUAD RIGHTWARDS ARROW*/ + 0x2349, /* U+002349: APL FUNCTIONAL SYMBOL CIRCLE BACKSLASH*/ + 0x234a, /* U+00234a: APL FUNCTIONAL SYMBOL DOWN TACK UNDERBAR*/ + 0x234b, /* U+00234b: APL FUNCTIONAL SYMBOL DELTA STILE*/ + 0x234c, /* U+00234c: APL FUNCTIONAL SYMBOL QUAD DOWN CARET*/ + 0x234d, /* U+00234d: APL FUNCTIONAL SYMBOL QUAD DELTA*/ + 0x234e, /* U+00234e: APL FUNCTIONAL SYMBOL DOWN TACK JOT*/ + 0x234f, /* U+00234f: APL FUNCTIONAL SYMBOL UPWARDS VANE*/ + 0x2350, /* U+002350: APL FUNCTIONAL SYMBOL QUAD UPWARDS ARROW*/ + 0x2351, /* U+002351: APL FUNCTIONAL SYMBOL UP TACK OVERBAR*/ + 0x2352, /* U+002352: APL FUNCTIONAL SYMBOL DEL STILE*/ + 0x2353, /* U+002353: APL FUNCTIONAL SYMBOL QUAD UP CARET*/ + 0x2354, /* U+002354: APL FUNCTIONAL SYMBOL QUAD DEL*/ + 0x2355, /* U+002355: APL FUNCTIONAL SYMBOL UP TACK JOT*/ + 0x2356, /* U+002356: APL FUNCTIONAL SYMBOL DOWNWARDS VANE*/ + 0x2357, /* U+002357: APL FUNCTIONAL SYMBOL QUAD DOWNWARDS ARROW*/ + 0x2358, /* U+002358: APL FUNCTIONAL SYMBOL QUOTE UNDERBAR*/ + 0x2359, /* U+002359: APL FUNCTIONAL SYMBOL DELTA UNDERBAR*/ + 0x235a, /* U+00235a: APL FUNCTIONAL SYMBOL DIAMOND UNDERBAR*/ + 0x235b, /* U+00235b: APL FUNCTIONAL SYMBOL JOT UNDERBAR*/ + 0x235c, /* U+00235c: APL FUNCTIONAL SYMBOL CIRCLE UNDERBAR*/ + 0x235d, /* U+00235d: APL FUNCTIONAL SYMBOL UP SHOE JOT*/ + 0x235e, /* U+00235e: APL FUNCTIONAL SYMBOL QUOTE QUAD*/ + 0x235f, /* U+00235f: APL FUNCTIONAL SYMBOL CIRCLE STAR*/ + 0x2360, /* U+002360: APL FUNCTIONAL SYMBOL QUAD COLON*/ + 0x2361, /* U+002361: APL FUNCTIONAL SYMBOL UP TACK DIAERESIS*/ + 0x2362, /* U+002362: APL FUNCTIONAL SYMBOL DEL DIAERESIS*/ + 0x2363, /* U+002363: APL FUNCTIONAL SYMBOL STAR DIAERESIS*/ + 0x2364, /* U+002364: APL FUNCTIONAL SYMBOL JOT DIAERESIS*/ + 0x2365, /* U+002365: APL FUNCTIONAL SYMBOL CIRCLE DIAERESIS*/ + 0x2366, /* U+002366: APL FUNCTIONAL SYMBOL DOWN SHOE STILE*/ + 0x2367, /* U+002367: APL FUNCTIONAL SYMBOL LEFT SHOE STILE*/ + 0x2368, /* U+002368: APL FUNCTIONAL SYMBOL TILDE DIAERESIS*/ + 0x2369, /* U+002369: APL FUNCTIONAL SYMBOL GREATER-THAN DIAERESIS*/ + 0x236a, /* U+00236a: APL FUNCTIONAL SYMBOL COMMA BAR*/ + 0x236b, /* U+00236b: APL FUNCTIONAL SYMBOL DEL TILDE*/ + 0x236c, /* U+00236c: APL FUNCTIONAL SYMBOL ZILDE*/ + 0x236d, /* U+00236d: APL FUNCTIONAL SYMBOL STILE TILDE*/ + 0x236e, /* U+00236e: APL FUNCTIONAL SYMBOL SEMICOLON UNDERBAR*/ + 0x236f, /* U+00236f: APL FUNCTIONAL SYMBOL QUAD NOT EQUAL*/ + 0x2370, /* U+002370: APL FUNCTIONAL SYMBOL QUAD QUESTION*/ + 0x2371, /* U+002371: APL FUNCTIONAL SYMBOL DOWN CARET TILDE*/ + 0x2372, /* U+002372: APL FUNCTIONAL SYMBOL UP CARET TILDE*/ + 0x2373, /* U+002373: APL FUNCTIONAL SYMBOL IOTA*/ + 0x2374, /* U+002374: APL FUNCTIONAL SYMBOL RHO*/ + 0x2375, /* U+002375: APL FUNCTIONAL SYMBOL OMEGA*/ + 0x2376, /* U+002376: APL FUNCTIONAL SYMBOL ALPHA UNDERBAR*/ + 0x2377, /* U+002377: APL FUNCTIONAL SYMBOL EPSILON UNDERBAR*/ + 0x2378, /* U+002378: APL FUNCTIONAL SYMBOL IOTA UNDERBAR*/ + 0x2379, /* U+002379: APL FUNCTIONAL SYMBOL OMEGA UNDERBAR*/ + 0x237a, /* U+00237a: APL FUNCTIONAL SYMBOL ALPHA*/ + 0x237b, /* U+00237b: NOT CHECK MARK*/ + 0x237c, /* U+00237c: RIGHT ANGLE WITH DOWNWARDS ZIGZAG ARROW*/ + 0x237d, /* U+00237d: SHOULDERED OPEN BOX*/ + 0x237e, /* U+00237e: BELL SYMBOL*/ + 0x237f, /* U+00237f: VERTICAL LINE WITH MIDDLE DOT*/ + 0x2380, /* U+002380: INSERTION SYMBOL*/ + 0x2381, /* U+002381: CONTINUOUS UNDERLINE SYMBOL*/ + 0x2382, /* U+002382: DISCONTINUOUS UNDERLINE SYMBOL*/ + 0x2383, /* U+002383: EMPHASIS SYMBOL*/ + 0x2384, /* U+002384: COMPOSITION SYMBOL*/ + 0x2385, /* U+002385: WHITE SQUARE WITH CENTRE VERTICAL LINE*/ + 0x2386, /* U+002386: ENTER SYMBOL*/ + 0x2387, /* U+002387: ALTERNATIVE KEY SYMBOL*/ + 0x2388, /* U+002388: HELM SYMBOL*/ + 0x2389, /* U+002389: CIRCLED HORIZONTAL BAR WITH NOTCH*/ + 0x238a, /* U+00238a: CIRCLED TRIANGLE DOWN*/ + 0x238b, /* U+00238b: BROKEN CIRCLE WITH NORTHWEST ARROW*/ + 0x238c, /* U+00238c: UNDO SYMBOL*/ + 0x238d, /* U+00238d: MONOSTABLE SYMBOL*/ + 0x238e, /* U+00238e: HYSTERESIS SYMBOL*/ + 0x238f, /* U+00238f: OPEN-CIRCUIT-OUTPUT H-TYPE SYMBOL*/ + 0x2390, /* U+002390: OPEN-CIRCUIT-OUTPUT L-TYPE SYMBOL*/ + 0x2391, /* U+002391: PASSIVE-PULL-DOWN-OUTPUT SYMBOL*/ + 0x2392, /* U+002392: PASSIVE-PULL-UP-OUTPUT SYMBOL*/ + 0x2393, /* U+002393: DIRECT CURRENT SYMBOL FORM TWO*/ + 0x2394, /* U+002394: SOFTWARE-FUNCTION SYMBOL*/ + 0x2395, /* U+002395: APL FUNCTIONAL SYMBOL QUAD*/ + 0x2396, /* U+002396: DECIMAL SEPARATOR KEY SYMBOL*/ + 0x2397, /* U+002397: PREVIOUS PAGE*/ + 0x2398, /* U+002398: NEXT PAGE*/ + 0x2399, /* U+002399: PRINT SCREEN SYMBOL*/ + 0x239a, /* U+00239a: CLEAR SCREEN SYMBOL*/ + 0x239b, /* U+00239b: LEFT PARENTHESIS UPPER HOOK*/ + 0x239c, /* U+00239c: LEFT PARENTHESIS EXTENSION*/ + 0x239d, /* U+00239d: LEFT PARENTHESIS LOWER HOOK*/ + 0x239e, /* U+00239e: RIGHT PARENTHESIS UPPER HOOK*/ + 0x239f, /* U+00239f: RIGHT PARENTHESIS EXTENSION*/ + 0x23a0, /* U+0023a0: RIGHT PARENTHESIS LOWER HOOK*/ + 0x23a1, /* U+0023a1: LEFT SQUARE BRACKET UPPER CORNER*/ + 0x23a2, /* U+0023a2: LEFT SQUARE BRACKET EXTENSION*/ + 0x23a3, /* U+0023a3: LEFT SQUARE BRACKET LOWER CORNER*/ + 0x23a4, /* U+0023a4: RIGHT SQUARE BRACKET UPPER CORNER*/ + 0x23a5, /* U+0023a5: RIGHT SQUARE BRACKET EXTENSION*/ + 0x23a6, /* U+0023a6: RIGHT SQUARE BRACKET LOWER CORNER*/ + 0x23a7, /* U+0023a7: LEFT CURLY BRACKET UPPER HOOK*/ + 0x23a8, /* U+0023a8: LEFT CURLY BRACKET MIDDLE PIECE*/ + 0x23a9, /* U+0023a9: LEFT CURLY BRACKET LOWER HOOK*/ + 0x23aa, /* U+0023aa: CURLY BRACKET EXTENSION*/ + 0x23ab, /* U+0023ab: RIGHT CURLY BRACKET UPPER HOOK*/ + 0x23ac, /* U+0023ac: RIGHT CURLY BRACKET MIDDLE PIECE*/ + 0x23ad, /* U+0023ad: RIGHT CURLY BRACKET LOWER HOOK*/ + 0x23ae, /* U+0023ae: INTEGRAL EXTENSION*/ + 0x23af, /* U+0023af: HORIZONTAL LINE EXTENSION*/ + 0x23b0, /* U+0023b0: UPPER LEFT OR LOWER RIGHT CURLY BRACKET SECTION*/ + 0x23b1, /* U+0023b1: UPPER RIGHT OR LOWER LEFT CURLY BRACKET SECTION*/ + 0x23b2, /* U+0023b2: SUMMATION TOP*/ + 0x23b3, /* U+0023b3: SUMMATION BOTTOM*/ + 0x23b4, /* U+0023b4: TOP SQUARE BRACKET*/ + 0x23b5, /* U+0023b5: BOTTOM SQUARE BRACKET*/ + 0x23b6, /* U+0023b6: BOTTOM SQUARE BRACKET OVER TOP SQUARE BRACKET*/ + 0x23b7, /* U+0023b7: RADICAL SYMBOL BOTTOM*/ + 0x23b8, /* U+0023b8: LEFT VERTICAL BOX LINE*/ + 0x23b9, /* U+0023b9: RIGHT VERTICAL BOX LINE*/ + 0x23ba, /* U+0023ba: HORIZONTAL SCAN LINE-1*/ + 0x23bb, /* U+0023bb: HORIZONTAL SCAN LINE-3*/ + 0x23bc, /* U+0023bc: HORIZONTAL SCAN LINE-7*/ + 0x23bd, /* U+0023bd: HORIZONTAL SCAN LINE-9*/ + 0x23be, /* U+0023be: DENTISTRY SYMBOL LIGHT VERTICAL AND TOP RIGHT*/ + 0x23bf, /* U+0023bf: DENTISTRY SYMBOL LIGHT VERTICAL AND BOTTOM RIGHT*/ + 0x23c0, /* U+0023c0: DENTISTRY SYMBOL LIGHT VERTICAL WITH CIRCLE*/ + 0x23c1, /* U+0023c1: DENTISTRY SYMBOL LIGHT DOWN AND HORIZONTAL WITH CIRCLE*/ + 0x23c2, /* U+0023c2: DENTISTRY SYMBOL LIGHT UP AND HORIZONTAL WITH CIRCLE*/ + 0x23c3, /* U+0023c3: DENTISTRY SYMBOL LIGHT VERTICAL WITH TRIANGLE*/ + 0x23c4, /* U+0023c4: DENTISTRY SYMBOL LIGHT DOWN AND HORIZONTAL WITH TRIANGLE*/ + 0x23c5, /* U+0023c5: DENTISTRY SYMBOL LIGHT UP AND HORIZONTAL WITH TRIANGLE*/ + 0x23c6, /* U+0023c6: DENTISTRY SYMBOL LIGHT VERTICAL AND WAVE*/ + 0x23c7, /* U+0023c7: DENTISTRY SYMBOL LIGHT DOWN AND HORIZONTAL WITH WAVE*/ + 0x23c8, /* U+0023c8: DENTISTRY SYMBOL LIGHT UP AND HORIZONTAL WITH WAVE*/ + 0x23c9, /* U+0023c9: DENTISTRY SYMBOL LIGHT DOWN AND HORIZONTAL*/ + 0x23ca, /* U+0023ca: DENTISTRY SYMBOL LIGHT UP AND HORIZONTAL*/ + 0x23cb, /* U+0023cb: DENTISTRY SYMBOL LIGHT VERTICAL AND TOP LEFT*/ + 0x23cc, /* U+0023cc: DENTISTRY SYMBOL LIGHT VERTICAL AND BOTTOM LEFT*/ + 0x23cd, /* U+0023cd: SQUARE FOOT*/ + 0x23ce, /* U+0023ce: RETURN SYMBOL*/ + 0x23cf, /* U+0023cf: EJECT SYMBOL*/ + 0x23d0, /* U+0023d0: VERTICAL LINE EXTENSION*/ + 0x23d1, /* U+0023d1: METRICAL BREVE*/ + 0x23d2, /* U+0023d2: METRICAL LONG OVER SHORT*/ + 0x23d3, /* U+0023d3: METRICAL SHORT OVER LONG*/ + 0x23d4, /* U+0023d4: METRICAL LONG OVER TWO SHORTS*/ + 0x23d5, /* U+0023d5: METRICAL TWO SHORTS OVER LONG*/ + 0x23d6, /* U+0023d6: METRICAL TWO SHORTS JOINED*/ + 0x23d7, /* U+0023d7: METRICAL TRISEME*/ + 0x23d8, /* U+0023d8: METRICAL TETRASEME*/ + 0x23d9, /* U+0023d9: METRICAL PENTASEME*/ + 0x23da, /* U+0023da: EARTH GROUND*/ + 0x23db, /* U+0023db: FUSE*/ + 0x23dc, /* U+0023dc: TOP PARENTHESIS*/ + 0x23dd, /* U+0023dd: BOTTOM PARENTHESIS*/ + 0x23de, /* U+0023de: TOP CURLY BRACKET*/ + 0x23df, /* U+0023df: BOTTOM CURLY BRACKET*/ + 0x23e0, /* U+0023e0: TOP TORTOISE SHELL BRACKET*/ + 0x23e1, /* U+0023e1: BOTTOM TORTOISE SHELL BRACKET*/ + 0x23e2, /* U+0023e2: WHITE TRAPEZIUM*/ + 0x23e3, /* U+0023e3: BENZENE RING WITH CIRCLE*/ + 0x23e4, /* U+0023e4: STRAIGHTNESS*/ + 0x23e5, /* U+0023e5: FLATNESS*/ + 0x23e6, /* U+0023e6: AC CURRENT*/ + 0x23e7, /* U+0023e7: ELECTRICAL INTERSECTION*/ + 0x23e8, /* U+0023e8: DECIMAL EXPONENT SYMBOL*/ + 0x23e9, /* U+0023e9: BLACK RIGHT-POINTING DOUBLE TRIANGLE*/ + 0x23ea, /* U+0023ea: BLACK LEFT-POINTING DOUBLE TRIANGLE*/ + 0x23eb, /* U+0023eb: BLACK UP-POINTING DOUBLE TRIANGLE*/ + 0x23ec, /* U+0023ec: BLACK DOWN-POINTING DOUBLE TRIANGLE*/ + 0x23ed, /* U+0023ed: BLACK RIGHT-POINTING DOUBLE TRIANGLE WITH VERTICAL BAR*/ + 0x23ee, /* U+0023ee: BLACK LEFT-POINTING DOUBLE TRIANGLE WITH VERTICAL BAR*/ + 0x23ef, /* U+0023ef: BLACK RIGHT-POINTING TRIANGLE WITH DOUBLE VERTICAL BAR*/ + 0x23f0, /* U+0023f0: ALARM CLOCK*/ + 0x23f1, /* U+0023f1: STOPWATCH*/ + 0x23f2, /* U+0023f2: TIMER CLOCK*/ + 0x23f3, /* U+0023f3: HOURGLASS WITH FLOWING SAND*/ + 0x23f4, /* U+0023f4: */ + 0x23f5, /* U+0023f5: */ + 0x23f6, /* U+0023f6: */ + 0x23f7, /* U+0023f7: */ + 0x23f8, /* U+0023f8: */ + 0x23f9, /* U+0023f9: */ + 0x23fa, /* U+0023fa: */ + 0x23fb, /* U+0023fb: */ + 0x23fc, /* U+0023fc: */ + 0x23fd, /* U+0023fd: */ + 0x23fe, /* U+0023fe: */ + 0x23ff, /* U+0023ff: */ + 0x2400, /* U+002400: SYMBOL FOR NULL*/ + 0x2401, /* U+002401: SYMBOL FOR START OF HEADING*/ + 0x2402, /* U+002402: SYMBOL FOR START OF TEXT*/ + 0x2403, /* U+002403: SYMBOL FOR END OF TEXT*/ + 0x2404, /* U+002404: SYMBOL FOR END OF TRANSMISSION*/ + 0x2405, /* U+002405: SYMBOL FOR ENQUIRY*/ + 0x2406, /* U+002406: SYMBOL FOR ACKNOWLEDGE*/ + 0x2407, /* U+002407: SYMBOL FOR BELL*/ + 0x2408, /* U+002408: SYMBOL FOR BACKSPACE*/ + 0x2409, /* U+002409: SYMBOL FOR HORIZONTAL TABULATION*/ + 0x240a, /* U+00240a: SYMBOL FOR LINE FEED*/ + 0x240b, /* U+00240b: SYMBOL FOR VERTICAL TABULATION*/ + 0x240c, /* U+00240c: SYMBOL FOR FORM FEED*/ + 0x240d, /* U+00240d: SYMBOL FOR CARRIAGE RETURN*/ + 0x240e, /* U+00240e: SYMBOL FOR SHIFT OUT*/ + 0x240f, /* U+00240f: SYMBOL FOR SHIFT IN*/ + 0x2410, /* U+002410: SYMBOL FOR DATA LINK ESCAPE*/ + 0x2411, /* U+002411: SYMBOL FOR DEVICE CONTROL ONE*/ + 0x2412, /* U+002412: SYMBOL FOR DEVICE CONTROL TWO*/ + 0x2413, /* U+002413: SYMBOL FOR DEVICE CONTROL THREE*/ + 0x2414, /* U+002414: SYMBOL FOR DEVICE CONTROL FOUR*/ + 0x2415, /* U+002415: SYMBOL FOR NEGATIVE ACKNOWLEDGE*/ + 0x2416, /* U+002416: SYMBOL FOR SYNCHRONOUS IDLE*/ + 0x2417, /* U+002417: SYMBOL FOR END OF TRANSMISSION BLOCK*/ + 0x2418, /* U+002418: SYMBOL FOR CANCEL*/ + 0x2419, /* U+002419: SYMBOL FOR END OF MEDIUM*/ + 0x241a, /* U+00241a: SYMBOL FOR SUBSTITUTE*/ + 0x241b, /* U+00241b: SYMBOL FOR ESCAPE*/ + 0x241c, /* U+00241c: SYMBOL FOR FILE SEPARATOR*/ + 0x241d, /* U+00241d: SYMBOL FOR GROUP SEPARATOR*/ + 0x241e, /* U+00241e: SYMBOL FOR RECORD SEPARATOR*/ + 0x241f, /* U+00241f: SYMBOL FOR UNIT SEPARATOR*/ + 0x2420, /* U+002420: SYMBOL FOR SPACE*/ + 0x2421, /* U+002421: SYMBOL FOR DELETE*/ + 0x2422, /* U+002422: BLANK SYMBOL*/ + 0x2423, /* U+002423: OPEN BOX*/ + 0x2424, /* U+002424: SYMBOL FOR NEWLINE*/ + 0x2425, /* U+002425: SYMBOL FOR DELETE FORM TWO*/ + 0x2426, /* U+002426: SYMBOL FOR SUBSTITUTE FORM TWO*/ + 0x2427, /* U+002427: */ + 0x2428, /* U+002428: */ + 0x2429, /* U+002429: */ + 0x242a, /* U+00242a: */ + 0x242b, /* U+00242b: */ + 0x242c, /* U+00242c: */ + 0x242d, /* U+00242d: */ + 0x242e, /* U+00242e: */ + 0x242f, /* U+00242f: */ + 0x2430, /* U+002430: */ + 0x2431, /* U+002431: */ + 0x2432, /* U+002432: */ + 0x2433, /* U+002433: */ + 0x2434, /* U+002434: */ + 0x2435, /* U+002435: */ + 0x2436, /* U+002436: */ + 0x2437, /* U+002437: */ + 0x2438, /* U+002438: */ + 0x2439, /* U+002439: */ + 0x243a, /* U+00243a: */ + 0x243b, /* U+00243b: */ + 0x243c, /* U+00243c: */ + 0x243d, /* U+00243d: */ + 0x243e, /* U+00243e: */ + 0x243f, /* U+00243f: */ + 0x2440, /* U+002440: OCR HOOK*/ + 0x2441, /* U+002441: OCR CHAIR*/ + 0x2442, /* U+002442: OCR FORK*/ + 0x2443, /* U+002443: OCR INVERTED FORK*/ + 0x2444, /* U+002444: OCR BELT BUCKLE*/ + 0x2445, /* U+002445: OCR BOW TIE*/ + 0x2446, /* U+002446: OCR BRANCH BANK IDENTIFICATION*/ + 0x2447, /* U+002447: OCR AMOUNT OF CHECK*/ + 0x2448, /* U+002448: OCR DASH*/ + 0x2449, /* U+002449: OCR CUSTOMER ACCOUNT NUMBER*/ + 0x244a, /* U+00244a: OCR DOUBLE BACKSLASH*/ + 0x244b, /* U+00244b: */ + 0x244c, /* U+00244c: */ + 0x244d, /* U+00244d: */ + 0x244e, /* U+00244e: */ + 0x244f, /* U+00244f: */ + 0x2450, /* U+002450: */ + 0x2451, /* U+002451: */ + 0x2452, /* U+002452: */ + 0x2453, /* U+002453: */ + 0x2454, /* U+002454: */ + 0x2455, /* U+002455: */ + 0x2456, /* U+002456: */ + 0x2457, /* U+002457: */ + 0x2458, /* U+002458: */ + 0x2459, /* U+002459: */ + 0x245a, /* U+00245a: */ + 0x245b, /* U+00245b: */ + 0x245c, /* U+00245c: */ + 0x245d, /* U+00245d: */ + 0x245e, /* U+00245e: */ + 0x245f, /* U+00245f: */ + 0x2460, /* U+002460: CIRCLED DIGIT ONE*/ + 0x2461, /* U+002461: CIRCLED DIGIT TWO*/ + 0x2462, /* U+002462: CIRCLED DIGIT THREE*/ + 0x2463, /* U+002463: CIRCLED DIGIT FOUR*/ + 0x2464, /* U+002464: CIRCLED DIGIT FIVE*/ + 0x2465, /* U+002465: CIRCLED DIGIT SIX*/ + 0x2466, /* U+002466: CIRCLED DIGIT SEVEN*/ + 0x2467, /* U+002467: CIRCLED DIGIT EIGHT*/ + 0x2468, /* U+002468: CIRCLED DIGIT NINE*/ + 0x2469, /* U+002469: CIRCLED NUMBER TEN*/ + 0x246a, /* U+00246a: CIRCLED NUMBER ELEVEN*/ + 0x246b, /* U+00246b: CIRCLED NUMBER TWELVE*/ + 0x246c, /* U+00246c: CIRCLED NUMBER THIRTEEN*/ + 0x246d, /* U+00246d: CIRCLED NUMBER FOURTEEN*/ + 0x246e, /* U+00246e: CIRCLED NUMBER FIFTEEN*/ + 0x246f, /* U+00246f: CIRCLED NUMBER SIXTEEN*/ + 0x2470, /* U+002470: CIRCLED NUMBER SEVENTEEN*/ + 0x2471, /* U+002471: CIRCLED NUMBER EIGHTEEN*/ + 0x2472, /* U+002472: CIRCLED NUMBER NINETEEN*/ + 0x2473, /* U+002473: CIRCLED NUMBER TWENTY*/ + 0x2474, /* U+002474: PARENTHESIZED DIGIT ONE*/ + 0x2475, /* U+002475: PARENTHESIZED DIGIT TWO*/ + 0x2476, /* U+002476: PARENTHESIZED DIGIT THREE*/ + 0x2477, /* U+002477: PARENTHESIZED DIGIT FOUR*/ + 0x2478, /* U+002478: PARENTHESIZED DIGIT FIVE*/ + 0x2479, /* U+002479: PARENTHESIZED DIGIT SIX*/ + 0x247a, /* U+00247a: PARENTHESIZED DIGIT SEVEN*/ + 0x247b, /* U+00247b: PARENTHESIZED DIGIT EIGHT*/ + 0x247c, /* U+00247c: PARENTHESIZED DIGIT NINE*/ + 0x247d, /* U+00247d: PARENTHESIZED NUMBER TEN*/ + 0x247e, /* U+00247e: PARENTHESIZED NUMBER ELEVEN*/ + 0x247f, /* U+00247f: PARENTHESIZED NUMBER TWELVE*/ + 0x2480, /* U+002480: PARENTHESIZED NUMBER THIRTEEN*/ + 0x2481, /* U+002481: PARENTHESIZED NUMBER FOURTEEN*/ + 0x2482, /* U+002482: PARENTHESIZED NUMBER FIFTEEN*/ + 0x2483, /* U+002483: PARENTHESIZED NUMBER SIXTEEN*/ + 0x2484, /* U+002484: PARENTHESIZED NUMBER SEVENTEEN*/ + 0x2485, /* U+002485: PARENTHESIZED NUMBER EIGHTEEN*/ + 0x2486, /* U+002486: PARENTHESIZED NUMBER NINETEEN*/ + 0x2487, /* U+002487: PARENTHESIZED NUMBER TWENTY*/ + 0x2488, /* U+002488: DIGIT ONE FULL STOP*/ + 0x2489, /* U+002489: DIGIT TWO FULL STOP*/ + 0x248a, /* U+00248a: DIGIT THREE FULL STOP*/ + 0x248b, /* U+00248b: DIGIT FOUR FULL STOP*/ + 0x248c, /* U+00248c: DIGIT FIVE FULL STOP*/ + 0x248d, /* U+00248d: DIGIT SIX FULL STOP*/ + 0x248e, /* U+00248e: DIGIT SEVEN FULL STOP*/ + 0x248f, /* U+00248f: DIGIT EIGHT FULL STOP*/ + 0x2490, /* U+002490: DIGIT NINE FULL STOP*/ + 0x2491, /* U+002491: NUMBER TEN FULL STOP*/ + 0x2492, /* U+002492: NUMBER ELEVEN FULL STOP*/ + 0x2493, /* U+002493: NUMBER TWELVE FULL STOP*/ + 0x2494, /* U+002494: NUMBER THIRTEEN FULL STOP*/ + 0x2495, /* U+002495: NUMBER FOURTEEN FULL STOP*/ + 0x2496, /* U+002496: NUMBER FIFTEEN FULL STOP*/ + 0x2497, /* U+002497: NUMBER SIXTEEN FULL STOP*/ + 0x2498, /* U+002498: NUMBER SEVENTEEN FULL STOP*/ + 0x2499, /* U+002499: NUMBER EIGHTEEN FULL STOP*/ + 0x249a, /* U+00249a: NUMBER NINETEEN FULL STOP*/ + 0x249b, /* U+00249b: NUMBER TWENTY FULL STOP*/ + 0x249c, /* U+00249c: PARENTHESIZED LATIN SMALL LETTER A*/ + 0x249d, /* U+00249d: PARENTHESIZED LATIN SMALL LETTER B*/ + 0x249e, /* U+00249e: PARENTHESIZED LATIN SMALL LETTER C*/ + 0x249f, /* U+00249f: PARENTHESIZED LATIN SMALL LETTER D*/ + 0x24a0, /* U+0024a0: PARENTHESIZED LATIN SMALL LETTER E*/ + 0x24a1, /* U+0024a1: PARENTHESIZED LATIN SMALL LETTER F*/ + 0x24a2, /* U+0024a2: PARENTHESIZED LATIN SMALL LETTER G*/ + 0x24a3, /* U+0024a3: PARENTHESIZED LATIN SMALL LETTER H*/ + 0x24a4, /* U+0024a4: PARENTHESIZED LATIN SMALL LETTER I*/ + 0x24a5, /* U+0024a5: PARENTHESIZED LATIN SMALL LETTER J*/ + 0x24a6, /* U+0024a6: PARENTHESIZED LATIN SMALL LETTER K*/ + 0x24a7, /* U+0024a7: PARENTHESIZED LATIN SMALL LETTER L*/ + 0x24a8, /* U+0024a8: PARENTHESIZED LATIN SMALL LETTER M*/ + 0x24a9, /* U+0024a9: PARENTHESIZED LATIN SMALL LETTER N*/ + 0x24aa, /* U+0024aa: PARENTHESIZED LATIN SMALL LETTER O*/ + 0x24ab, /* U+0024ab: PARENTHESIZED LATIN SMALL LETTER P*/ + 0x24ac, /* U+0024ac: PARENTHESIZED LATIN SMALL LETTER Q*/ + 0x24ad, /* U+0024ad: PARENTHESIZED LATIN SMALL LETTER R*/ + 0x24ae, /* U+0024ae: PARENTHESIZED LATIN SMALL LETTER S*/ + 0x24af, /* U+0024af: PARENTHESIZED LATIN SMALL LETTER T*/ + 0x24b0, /* U+0024b0: PARENTHESIZED LATIN SMALL LETTER U*/ + 0x24b1, /* U+0024b1: PARENTHESIZED LATIN SMALL LETTER V*/ + 0x24b2, /* U+0024b2: PARENTHESIZED LATIN SMALL LETTER W*/ + 0x24b3, /* U+0024b3: PARENTHESIZED LATIN SMALL LETTER X*/ + 0x24b4, /* U+0024b4: PARENTHESIZED LATIN SMALL LETTER Y*/ + 0x24b5, /* U+0024b5: PARENTHESIZED LATIN SMALL LETTER Z*/ + 0x24b6, /* U+0024b6: CIRCLED LATIN CAPITAL LETTER A*/ + 0x24b7, /* U+0024b7: CIRCLED LATIN CAPITAL LETTER B*/ + 0x24b8, /* U+0024b8: CIRCLED LATIN CAPITAL LETTER C*/ + 0x24b9, /* U+0024b9: CIRCLED LATIN CAPITAL LETTER D*/ + 0x24ba, /* U+0024ba: CIRCLED LATIN CAPITAL LETTER E*/ + 0x24bb, /* U+0024bb: CIRCLED LATIN CAPITAL LETTER F*/ + 0x24bc, /* U+0024bc: CIRCLED LATIN CAPITAL LETTER G*/ + 0x24bd, /* U+0024bd: CIRCLED LATIN CAPITAL LETTER H*/ + 0x24be, /* U+0024be: CIRCLED LATIN CAPITAL LETTER I*/ + 0x24bf, /* U+0024bf: CIRCLED LATIN CAPITAL LETTER J*/ + 0x24c0, /* U+0024c0: CIRCLED LATIN CAPITAL LETTER K*/ + 0x24c1, /* U+0024c1: CIRCLED LATIN CAPITAL LETTER L*/ + 0x24c2, /* U+0024c2: CIRCLED LATIN CAPITAL LETTER M*/ + 0x24c3, /* U+0024c3: CIRCLED LATIN CAPITAL LETTER N*/ + 0x24c4, /* U+0024c4: CIRCLED LATIN CAPITAL LETTER O*/ + 0x24c5, /* U+0024c5: CIRCLED LATIN CAPITAL LETTER P*/ + 0x24c6, /* U+0024c6: CIRCLED LATIN CAPITAL LETTER Q*/ + 0x24c7, /* U+0024c7: CIRCLED LATIN CAPITAL LETTER R*/ + 0x24c8, /* U+0024c8: CIRCLED LATIN CAPITAL LETTER S*/ + 0x24c9, /* U+0024c9: CIRCLED LATIN CAPITAL LETTER T*/ + 0x24ca, /* U+0024ca: CIRCLED LATIN CAPITAL LETTER U*/ + 0x24cb, /* U+0024cb: CIRCLED LATIN CAPITAL LETTER V*/ + 0x24cc, /* U+0024cc: CIRCLED LATIN CAPITAL LETTER W*/ + 0x24cd, /* U+0024cd: CIRCLED LATIN CAPITAL LETTER X*/ + 0x24ce, /* U+0024ce: CIRCLED LATIN CAPITAL LETTER Y*/ + 0x24cf, /* U+0024cf: CIRCLED LATIN CAPITAL LETTER Z*/ + 0x24b6, /* U+0024d0: CIRCLED LATIN SMALL LETTER A*/ + 0x24b7, /* U+0024d1: CIRCLED LATIN SMALL LETTER B*/ + 0x24b8, /* U+0024d2: CIRCLED LATIN SMALL LETTER C*/ + 0x24b9, /* U+0024d3: CIRCLED LATIN SMALL LETTER D*/ + 0x24ba, /* U+0024d4: CIRCLED LATIN SMALL LETTER E*/ + 0x24bb, /* U+0024d5: CIRCLED LATIN SMALL LETTER F*/ + 0x24bc, /* U+0024d6: CIRCLED LATIN SMALL LETTER G*/ + 0x24bd, /* U+0024d7: CIRCLED LATIN SMALL LETTER H*/ + 0x24be, /* U+0024d8: CIRCLED LATIN SMALL LETTER I*/ + 0x24bf, /* U+0024d9: CIRCLED LATIN SMALL LETTER J*/ + 0x24c0, /* U+0024da: CIRCLED LATIN SMALL LETTER K*/ + 0x24c1, /* U+0024db: CIRCLED LATIN SMALL LETTER L*/ + 0x24c2, /* U+0024dc: CIRCLED LATIN SMALL LETTER M*/ + 0x24c3, /* U+0024dd: CIRCLED LATIN SMALL LETTER N*/ + 0x24c4, /* U+0024de: CIRCLED LATIN SMALL LETTER O*/ + 0x24c5, /* U+0024df: CIRCLED LATIN SMALL LETTER P*/ + 0x24c6, /* U+0024e0: CIRCLED LATIN SMALL LETTER Q*/ + 0x24c7, /* U+0024e1: CIRCLED LATIN SMALL LETTER R*/ + 0x24c8, /* U+0024e2: CIRCLED LATIN SMALL LETTER S*/ + 0x24c9, /* U+0024e3: CIRCLED LATIN SMALL LETTER T*/ + 0x24ca, /* U+0024e4: CIRCLED LATIN SMALL LETTER U*/ + 0x24cb, /* U+0024e5: CIRCLED LATIN SMALL LETTER V*/ + 0x24cc, /* U+0024e6: CIRCLED LATIN SMALL LETTER W*/ + 0x24cd, /* U+0024e7: CIRCLED LATIN SMALL LETTER X*/ + 0x24ce, /* U+0024e8: CIRCLED LATIN SMALL LETTER Y*/ + 0x24cf, /* U+0024e9: CIRCLED LATIN SMALL LETTER Z*/ +}; + +static const RTUNICP g_afRTUniUpper0x002c30[] = +{ + 0x2c00, /* U+002c30: GLAGOLITIC SMALL LETTER AZU*/ + 0x2c01, /* U+002c31: GLAGOLITIC SMALL LETTER BUKY*/ + 0x2c02, /* U+002c32: GLAGOLITIC SMALL LETTER VEDE*/ + 0x2c03, /* U+002c33: GLAGOLITIC SMALL LETTER GLAGOLI*/ + 0x2c04, /* U+002c34: GLAGOLITIC SMALL LETTER DOBRO*/ + 0x2c05, /* U+002c35: GLAGOLITIC SMALL LETTER YESTU*/ + 0x2c06, /* U+002c36: GLAGOLITIC SMALL LETTER ZHIVETE*/ + 0x2c07, /* U+002c37: GLAGOLITIC SMALL LETTER DZELO*/ + 0x2c08, /* U+002c38: GLAGOLITIC SMALL LETTER ZEMLJA*/ + 0x2c09, /* U+002c39: GLAGOLITIC SMALL LETTER IZHE*/ + 0x2c0a, /* U+002c3a: GLAGOLITIC SMALL LETTER INITIAL IZHE*/ + 0x2c0b, /* U+002c3b: GLAGOLITIC SMALL LETTER I*/ + 0x2c0c, /* U+002c3c: GLAGOLITIC SMALL LETTER DJERVI*/ + 0x2c0d, /* U+002c3d: GLAGOLITIC SMALL LETTER KAKO*/ + 0x2c0e, /* U+002c3e: GLAGOLITIC SMALL LETTER LJUDIJE*/ + 0x2c0f, /* U+002c3f: GLAGOLITIC SMALL LETTER MYSLITE*/ + 0x2c10, /* U+002c40: GLAGOLITIC SMALL LETTER NASHI*/ + 0x2c11, /* U+002c41: GLAGOLITIC SMALL LETTER ONU*/ + 0x2c12, /* U+002c42: GLAGOLITIC SMALL LETTER POKOJI*/ + 0x2c13, /* U+002c43: GLAGOLITIC SMALL LETTER RITSI*/ + 0x2c14, /* U+002c44: GLAGOLITIC SMALL LETTER SLOVO*/ + 0x2c15, /* U+002c45: GLAGOLITIC SMALL LETTER TVRIDO*/ + 0x2c16, /* U+002c46: GLAGOLITIC SMALL LETTER UKU*/ + 0x2c17, /* U+002c47: GLAGOLITIC SMALL LETTER FRITU*/ + 0x2c18, /* U+002c48: GLAGOLITIC SMALL LETTER HERU*/ + 0x2c19, /* U+002c49: GLAGOLITIC SMALL LETTER OTU*/ + 0x2c1a, /* U+002c4a: GLAGOLITIC SMALL LETTER PE*/ + 0x2c1b, /* U+002c4b: GLAGOLITIC SMALL LETTER SHTA*/ + 0x2c1c, /* U+002c4c: GLAGOLITIC SMALL LETTER TSI*/ + 0x2c1d, /* U+002c4d: GLAGOLITIC SMALL LETTER CHRIVI*/ + 0x2c1e, /* U+002c4e: GLAGOLITIC SMALL LETTER SHA*/ + 0x2c1f, /* U+002c4f: GLAGOLITIC SMALL LETTER YERU*/ + 0x2c20, /* U+002c50: GLAGOLITIC SMALL LETTER YERI*/ + 0x2c21, /* U+002c51: GLAGOLITIC SMALL LETTER YATI*/ + 0x2c22, /* U+002c52: GLAGOLITIC SMALL LETTER SPIDERY HA*/ + 0x2c23, /* U+002c53: GLAGOLITIC SMALL LETTER YU*/ + 0x2c24, /* U+002c54: GLAGOLITIC SMALL LETTER SMALL YUS*/ + 0x2c25, /* U+002c55: GLAGOLITIC SMALL LETTER SMALL YUS WITH TAIL*/ + 0x2c26, /* U+002c56: GLAGOLITIC SMALL LETTER YO*/ + 0x2c27, /* U+002c57: GLAGOLITIC SMALL LETTER IOTATED SMALL YUS*/ + 0x2c28, /* U+002c58: GLAGOLITIC SMALL LETTER BIG YUS*/ + 0x2c29, /* U+002c59: GLAGOLITIC SMALL LETTER IOTATED BIG YUS*/ + 0x2c2a, /* U+002c5a: GLAGOLITIC SMALL LETTER FITA*/ + 0x2c2b, /* U+002c5b: GLAGOLITIC SMALL LETTER IZHITSA*/ + 0x2c2c, /* U+002c5c: GLAGOLITIC SMALL LETTER SHTAPIC*/ + 0x2c2d, /* U+002c5d: GLAGOLITIC SMALL LETTER TROKUTASTI A*/ + 0x2c2e, /* U+002c5e: GLAGOLITIC SMALL LETTER LATINATE MYSLITE*/ + 0x2c5f, /* U+002c5f: */ + 0x2c60, /* U+002c60: LATIN CAPITAL LETTER L WITH DOUBLE BAR*/ + 0x2c60, /* U+002c61: LATIN SMALL LETTER L WITH DOUBLE BAR*/ + 0x2c62, /* U+002c62: LATIN CAPITAL LETTER L WITH MIDDLE TILDE*/ + 0x2c63, /* U+002c63: LATIN CAPITAL LETTER P WITH STROKE*/ + 0x2c64, /* U+002c64: LATIN CAPITAL LETTER R WITH TAIL*/ + 0x23a, /* U+002c65: LATIN SMALL LETTER A WITH STROKE*/ + 0x23e, /* U+002c66: LATIN SMALL LETTER T WITH DIAGONAL STROKE*/ + 0x2c67, /* U+002c67: LATIN CAPITAL LETTER H WITH DESCENDER*/ + 0x2c67, /* U+002c68: LATIN SMALL LETTER H WITH DESCENDER*/ + 0x2c69, /* U+002c69: LATIN CAPITAL LETTER K WITH DESCENDER*/ + 0x2c69, /* U+002c6a: LATIN SMALL LETTER K WITH DESCENDER*/ + 0x2c6b, /* U+002c6b: LATIN CAPITAL LETTER Z WITH DESCENDER*/ + 0x2c6b, /* U+002c6c: LATIN SMALL LETTER Z WITH DESCENDER*/ + 0x2c6d, /* U+002c6d: LATIN CAPITAL LETTER ALPHA*/ + 0x2c6e, /* U+002c6e: LATIN CAPITAL LETTER M WITH HOOK*/ + 0x2c6f, /* U+002c6f: LATIN CAPITAL LETTER TURNED A*/ + 0x2c70, /* U+002c70: LATIN CAPITAL LETTER TURNED ALPHA*/ + 0x2c71, /* U+002c71: LATIN SMALL LETTER V WITH RIGHT HOOK*/ + 0x2c72, /* U+002c72: LATIN CAPITAL LETTER W WITH HOOK*/ + 0x2c72, /* U+002c73: LATIN SMALL LETTER W WITH HOOK*/ + 0x2c74, /* U+002c74: LATIN SMALL LETTER V WITH CURL*/ + 0x2c75, /* U+002c75: LATIN CAPITAL LETTER HALF H*/ + 0x2c75, /* U+002c76: LATIN SMALL LETTER HALF H*/ + 0x2c77, /* U+002c77: LATIN SMALL LETTER TAILLESS PHI*/ + 0x2c78, /* U+002c78: LATIN SMALL LETTER E WITH NOTCH*/ + 0x2c79, /* U+002c79: LATIN SMALL LETTER TURNED R WITH TAIL*/ + 0x2c7a, /* U+002c7a: LATIN SMALL LETTER O WITH LOW RING INSIDE*/ + 0x2c7b, /* U+002c7b: LATIN LETTER SMALL CAPITAL TURNED E*/ + 0x2c7c, /* U+002c7c: LATIN SUBSCRIPT SMALL LETTER J*/ + 0x2c7d, /* U+002c7d: MODIFIER LETTER CAPITAL V*/ + 0x2c7e, /* U+002c7e: LATIN CAPITAL LETTER S WITH SWASH TAIL*/ + 0x2c7f, /* U+002c7f: LATIN CAPITAL LETTER Z WITH SWASH TAIL*/ + 0x2c80, /* U+002c80: COPTIC CAPITAL LETTER ALFA*/ + 0x2c80, /* U+002c81: COPTIC SMALL LETTER ALFA*/ + 0x2c82, /* U+002c82: COPTIC CAPITAL LETTER VIDA*/ + 0x2c82, /* U+002c83: COPTIC SMALL LETTER VIDA*/ + 0x2c84, /* U+002c84: COPTIC CAPITAL LETTER GAMMA*/ + 0x2c84, /* U+002c85: COPTIC SMALL LETTER GAMMA*/ + 0x2c86, /* U+002c86: COPTIC CAPITAL LETTER DALDA*/ + 0x2c86, /* U+002c87: COPTIC SMALL LETTER DALDA*/ + 0x2c88, /* U+002c88: COPTIC CAPITAL LETTER EIE*/ + 0x2c88, /* U+002c89: COPTIC SMALL LETTER EIE*/ + 0x2c8a, /* U+002c8a: COPTIC CAPITAL LETTER SOU*/ + 0x2c8a, /* U+002c8b: COPTIC SMALL LETTER SOU*/ + 0x2c8c, /* U+002c8c: COPTIC CAPITAL LETTER ZATA*/ + 0x2c8c, /* U+002c8d: COPTIC SMALL LETTER ZATA*/ + 0x2c8e, /* U+002c8e: COPTIC CAPITAL LETTER HATE*/ + 0x2c8e, /* U+002c8f: COPTIC SMALL LETTER HATE*/ + 0x2c90, /* U+002c90: COPTIC CAPITAL LETTER THETHE*/ + 0x2c90, /* U+002c91: COPTIC SMALL LETTER THETHE*/ + 0x2c92, /* U+002c92: COPTIC CAPITAL LETTER IAUDA*/ + 0x2c92, /* U+002c93: COPTIC SMALL LETTER IAUDA*/ + 0x2c94, /* U+002c94: COPTIC CAPITAL LETTER KAPA*/ + 0x2c94, /* U+002c95: COPTIC SMALL LETTER KAPA*/ + 0x2c96, /* U+002c96: COPTIC CAPITAL LETTER LAULA*/ + 0x2c96, /* U+002c97: COPTIC SMALL LETTER LAULA*/ + 0x2c98, /* U+002c98: COPTIC CAPITAL LETTER MI*/ + 0x2c98, /* U+002c99: COPTIC SMALL LETTER MI*/ + 0x2c9a, /* U+002c9a: COPTIC CAPITAL LETTER NI*/ + 0x2c9a, /* U+002c9b: COPTIC SMALL LETTER NI*/ + 0x2c9c, /* U+002c9c: COPTIC CAPITAL LETTER KSI*/ + 0x2c9c, /* U+002c9d: COPTIC SMALL LETTER KSI*/ + 0x2c9e, /* U+002c9e: COPTIC CAPITAL LETTER O*/ + 0x2c9e, /* U+002c9f: COPTIC SMALL LETTER O*/ + 0x2ca0, /* U+002ca0: COPTIC CAPITAL LETTER PI*/ + 0x2ca0, /* U+002ca1: COPTIC SMALL LETTER PI*/ + 0x2ca2, /* U+002ca2: COPTIC CAPITAL LETTER RO*/ + 0x2ca2, /* U+002ca3: COPTIC SMALL LETTER RO*/ + 0x2ca4, /* U+002ca4: COPTIC CAPITAL LETTER SIMA*/ + 0x2ca4, /* U+002ca5: COPTIC SMALL LETTER SIMA*/ + 0x2ca6, /* U+002ca6: COPTIC CAPITAL LETTER TAU*/ + 0x2ca6, /* U+002ca7: COPTIC SMALL LETTER TAU*/ + 0x2ca8, /* U+002ca8: COPTIC CAPITAL LETTER UA*/ + 0x2ca8, /* U+002ca9: COPTIC SMALL LETTER UA*/ + 0x2caa, /* U+002caa: COPTIC CAPITAL LETTER FI*/ + 0x2caa, /* U+002cab: COPTIC SMALL LETTER FI*/ + 0x2cac, /* U+002cac: COPTIC CAPITAL LETTER KHI*/ + 0x2cac, /* U+002cad: COPTIC SMALL LETTER KHI*/ + 0x2cae, /* U+002cae: COPTIC CAPITAL LETTER PSI*/ + 0x2cae, /* U+002caf: COPTIC SMALL LETTER PSI*/ + 0x2cb0, /* U+002cb0: COPTIC CAPITAL LETTER OOU*/ + 0x2cb0, /* U+002cb1: COPTIC SMALL LETTER OOU*/ + 0x2cb2, /* U+002cb2: COPTIC CAPITAL LETTER DIALECT-P ALEF*/ + 0x2cb2, /* U+002cb3: COPTIC SMALL LETTER DIALECT-P ALEF*/ + 0x2cb4, /* U+002cb4: COPTIC CAPITAL LETTER OLD COPTIC AIN*/ + 0x2cb4, /* U+002cb5: COPTIC SMALL LETTER OLD COPTIC AIN*/ + 0x2cb6, /* U+002cb6: COPTIC CAPITAL LETTER CRYPTOGRAMMIC EIE*/ + 0x2cb6, /* U+002cb7: COPTIC SMALL LETTER CRYPTOGRAMMIC EIE*/ + 0x2cb8, /* U+002cb8: COPTIC CAPITAL LETTER DIALECT-P KAPA*/ + 0x2cb8, /* U+002cb9: COPTIC SMALL LETTER DIALECT-P KAPA*/ + 0x2cba, /* U+002cba: COPTIC CAPITAL LETTER DIALECT-P NI*/ + 0x2cba, /* U+002cbb: COPTIC SMALL LETTER DIALECT-P NI*/ + 0x2cbc, /* U+002cbc: COPTIC CAPITAL LETTER CRYPTOGRAMMIC NI*/ + 0x2cbc, /* U+002cbd: COPTIC SMALL LETTER CRYPTOGRAMMIC NI*/ + 0x2cbe, /* U+002cbe: COPTIC CAPITAL LETTER OLD COPTIC OOU*/ + 0x2cbe, /* U+002cbf: COPTIC SMALL LETTER OLD COPTIC OOU*/ + 0x2cc0, /* U+002cc0: COPTIC CAPITAL LETTER SAMPI*/ + 0x2cc0, /* U+002cc1: COPTIC SMALL LETTER SAMPI*/ + 0x2cc2, /* U+002cc2: COPTIC CAPITAL LETTER CROSSED SHEI*/ + 0x2cc2, /* U+002cc3: COPTIC SMALL LETTER CROSSED SHEI*/ + 0x2cc4, /* U+002cc4: COPTIC CAPITAL LETTER OLD COPTIC SHEI*/ + 0x2cc4, /* U+002cc5: COPTIC SMALL LETTER OLD COPTIC SHEI*/ + 0x2cc6, /* U+002cc6: COPTIC CAPITAL LETTER OLD COPTIC ESH*/ + 0x2cc6, /* U+002cc7: COPTIC SMALL LETTER OLD COPTIC ESH*/ + 0x2cc8, /* U+002cc8: COPTIC CAPITAL LETTER AKHMIMIC KHEI*/ + 0x2cc8, /* U+002cc9: COPTIC SMALL LETTER AKHMIMIC KHEI*/ + 0x2cca, /* U+002cca: COPTIC CAPITAL LETTER DIALECT-P HORI*/ + 0x2cca, /* U+002ccb: COPTIC SMALL LETTER DIALECT-P HORI*/ + 0x2ccc, /* U+002ccc: COPTIC CAPITAL LETTER OLD COPTIC HORI*/ + 0x2ccc, /* U+002ccd: COPTIC SMALL LETTER OLD COPTIC HORI*/ + 0x2cce, /* U+002cce: COPTIC CAPITAL LETTER OLD COPTIC HA*/ + 0x2cce, /* U+002ccf: COPTIC SMALL LETTER OLD COPTIC HA*/ + 0x2cd0, /* U+002cd0: COPTIC CAPITAL LETTER L-SHAPED HA*/ + 0x2cd0, /* U+002cd1: COPTIC SMALL LETTER L-SHAPED HA*/ + 0x2cd2, /* U+002cd2: COPTIC CAPITAL LETTER OLD COPTIC HEI*/ + 0x2cd2, /* U+002cd3: COPTIC SMALL LETTER OLD COPTIC HEI*/ + 0x2cd4, /* U+002cd4: COPTIC CAPITAL LETTER OLD COPTIC HAT*/ + 0x2cd4, /* U+002cd5: COPTIC SMALL LETTER OLD COPTIC HAT*/ + 0x2cd6, /* U+002cd6: COPTIC CAPITAL LETTER OLD COPTIC GANGIA*/ + 0x2cd6, /* U+002cd7: COPTIC SMALL LETTER OLD COPTIC GANGIA*/ + 0x2cd8, /* U+002cd8: COPTIC CAPITAL LETTER OLD COPTIC DJA*/ + 0x2cd8, /* U+002cd9: COPTIC SMALL LETTER OLD COPTIC DJA*/ + 0x2cda, /* U+002cda: COPTIC CAPITAL LETTER OLD COPTIC SHIMA*/ + 0x2cda, /* U+002cdb: COPTIC SMALL LETTER OLD COPTIC SHIMA*/ + 0x2cdc, /* U+002cdc: COPTIC CAPITAL LETTER OLD NUBIAN SHIMA*/ + 0x2cdc, /* U+002cdd: COPTIC SMALL LETTER OLD NUBIAN SHIMA*/ + 0x2cde, /* U+002cde: COPTIC CAPITAL LETTER OLD NUBIAN NGI*/ + 0x2cde, /* U+002cdf: COPTIC SMALL LETTER OLD NUBIAN NGI*/ + 0x2ce0, /* U+002ce0: COPTIC CAPITAL LETTER OLD NUBIAN NYI*/ + 0x2ce0, /* U+002ce1: COPTIC SMALL LETTER OLD NUBIAN NYI*/ + 0x2ce2, /* U+002ce2: COPTIC CAPITAL LETTER OLD NUBIAN WAU*/ + 0x2ce2, /* U+002ce3: COPTIC SMALL LETTER OLD NUBIAN WAU*/ + 0x2ce4, /* U+002ce4: COPTIC SYMBOL KAI*/ + 0x2ce5, /* U+002ce5: COPTIC SYMBOL MI RO*/ + 0x2ce6, /* U+002ce6: COPTIC SYMBOL PI RO*/ + 0x2ce7, /* U+002ce7: COPTIC SYMBOL STAUROS*/ + 0x2ce8, /* U+002ce8: COPTIC SYMBOL TAU RO*/ + 0x2ce9, /* U+002ce9: COPTIC SYMBOL KHI RO*/ + 0x2cea, /* U+002cea: COPTIC SYMBOL SHIMA SIMA*/ + 0x2ceb, /* U+002ceb: COPTIC CAPITAL LETTER CRYPTOGRAMMIC SHEI*/ + 0x2ceb, /* U+002cec: COPTIC SMALL LETTER CRYPTOGRAMMIC SHEI*/ + 0x2ced, /* U+002ced: COPTIC CAPITAL LETTER CRYPTOGRAMMIC GANGIA*/ + 0x2ced, /* U+002cee: COPTIC SMALL LETTER CRYPTOGRAMMIC GANGIA*/ + 0x2cef, /* U+002cef: COPTIC COMBINING NI ABOVE*/ + 0x2cf0, /* U+002cf0: COPTIC COMBINING SPIRITUS ASPER*/ + 0x2cf1, /* U+002cf1: COPTIC COMBINING SPIRITUS LENIS*/ + 0x2cf2, /* U+002cf2: COPTIC CAPITAL LETTER BOHAIRIC KHEI*/ + 0x2cf2, /* U+002cf3: COPTIC SMALL LETTER BOHAIRIC KHEI*/ + 0x2cf4, /* U+002cf4: */ + 0x2cf5, /* U+002cf5: */ + 0x2cf6, /* U+002cf6: */ + 0x2cf7, /* U+002cf7: */ + 0x2cf8, /* U+002cf8: */ + 0x2cf9, /* U+002cf9: COPTIC OLD NUBIAN FULL STOP*/ + 0x2cfa, /* U+002cfa: COPTIC OLD NUBIAN DIRECT QUESTION MARK*/ + 0x2cfb, /* U+002cfb: COPTIC OLD NUBIAN INDIRECT QUESTION MARK*/ + 0x2cfc, /* U+002cfc: COPTIC OLD NUBIAN VERSE DIVIDER*/ + 0x2cfd, /* U+002cfd: COPTIC FRACTION ONE HALF*/ + 0x2cfe, /* U+002cfe: COPTIC FULL STOP*/ + 0x2cff, /* U+002cff: COPTIC MORPHOLOGICAL DIVIDER*/ + 0x10a0, /* U+002d00: GEORGIAN SMALL LETTER AN*/ + 0x10a1, /* U+002d01: GEORGIAN SMALL LETTER BAN*/ + 0x10a2, /* U+002d02: GEORGIAN SMALL LETTER GAN*/ + 0x10a3, /* U+002d03: GEORGIAN SMALL LETTER DON*/ + 0x10a4, /* U+002d04: GEORGIAN SMALL LETTER EN*/ + 0x10a5, /* U+002d05: GEORGIAN SMALL LETTER VIN*/ + 0x10a6, /* U+002d06: GEORGIAN SMALL LETTER ZEN*/ + 0x10a7, /* U+002d07: GEORGIAN SMALL LETTER TAN*/ + 0x10a8, /* U+002d08: GEORGIAN SMALL LETTER IN*/ + 0x10a9, /* U+002d09: GEORGIAN SMALL LETTER KAN*/ + 0x10aa, /* U+002d0a: GEORGIAN SMALL LETTER LAS*/ + 0x10ab, /* U+002d0b: GEORGIAN SMALL LETTER MAN*/ + 0x10ac, /* U+002d0c: GEORGIAN SMALL LETTER NAR*/ + 0x10ad, /* U+002d0d: GEORGIAN SMALL LETTER ON*/ + 0x10ae, /* U+002d0e: GEORGIAN SMALL LETTER PAR*/ + 0x10af, /* U+002d0f: GEORGIAN SMALL LETTER ZHAR*/ + 0x10b0, /* U+002d10: GEORGIAN SMALL LETTER RAE*/ + 0x10b1, /* U+002d11: GEORGIAN SMALL LETTER SAN*/ + 0x10b2, /* U+002d12: GEORGIAN SMALL LETTER TAR*/ + 0x10b3, /* U+002d13: GEORGIAN SMALL LETTER UN*/ + 0x10b4, /* U+002d14: GEORGIAN SMALL LETTER PHAR*/ + 0x10b5, /* U+002d15: GEORGIAN SMALL LETTER KHAR*/ + 0x10b6, /* U+002d16: GEORGIAN SMALL LETTER GHAN*/ + 0x10b7, /* U+002d17: GEORGIAN SMALL LETTER QAR*/ + 0x10b8, /* U+002d18: GEORGIAN SMALL LETTER SHIN*/ + 0x10b9, /* U+002d19: GEORGIAN SMALL LETTER CHIN*/ + 0x10ba, /* U+002d1a: GEORGIAN SMALL LETTER CAN*/ + 0x10bb, /* U+002d1b: GEORGIAN SMALL LETTER JIL*/ + 0x10bc, /* U+002d1c: GEORGIAN SMALL LETTER CIL*/ + 0x10bd, /* U+002d1d: GEORGIAN SMALL LETTER CHAR*/ + 0x10be, /* U+002d1e: GEORGIAN SMALL LETTER XAN*/ + 0x10bf, /* U+002d1f: GEORGIAN SMALL LETTER JHAN*/ + 0x10c0, /* U+002d20: GEORGIAN SMALL LETTER HAE*/ + 0x10c1, /* U+002d21: GEORGIAN SMALL LETTER HE*/ + 0x10c2, /* U+002d22: GEORGIAN SMALL LETTER HIE*/ + 0x10c3, /* U+002d23: GEORGIAN SMALL LETTER WE*/ + 0x10c4, /* U+002d24: GEORGIAN SMALL LETTER HAR*/ + 0x10c5, /* U+002d25: GEORGIAN SMALL LETTER HOE*/ + 0x2d26, /* U+002d26: */ + 0x10c7, /* U+002d27: GEORGIAN SMALL LETTER YN*/ + 0x2d28, /* U+002d28: */ + 0x2d29, /* U+002d29: */ + 0x2d2a, /* U+002d2a: */ + 0x2d2b, /* U+002d2b: */ + 0x2d2c, /* U+002d2c: */ + 0x10cd, /* U+002d2d: GEORGIAN SMALL LETTER AEN*/ +}; + +static const RTUNICP g_afRTUniUpper0x00a641[] = +{ + 0xa640, /* U+00a641: CYRILLIC SMALL LETTER ZEMLYA*/ + 0xa642, /* U+00a642: CYRILLIC CAPITAL LETTER DZELO*/ + 0xa642, /* U+00a643: CYRILLIC SMALL LETTER DZELO*/ + 0xa644, /* U+00a644: CYRILLIC CAPITAL LETTER REVERSED DZE*/ + 0xa644, /* U+00a645: CYRILLIC SMALL LETTER REVERSED DZE*/ + 0xa646, /* U+00a646: CYRILLIC CAPITAL LETTER IOTA*/ + 0xa646, /* U+00a647: CYRILLIC SMALL LETTER IOTA*/ + 0xa648, /* U+00a648: CYRILLIC CAPITAL LETTER DJERV*/ + 0xa648, /* U+00a649: CYRILLIC SMALL LETTER DJERV*/ + 0xa64a, /* U+00a64a: CYRILLIC CAPITAL LETTER MONOGRAPH UK*/ + 0xa64a, /* U+00a64b: CYRILLIC SMALL LETTER MONOGRAPH UK*/ + 0xa64c, /* U+00a64c: CYRILLIC CAPITAL LETTER BROAD OMEGA*/ + 0xa64c, /* U+00a64d: CYRILLIC SMALL LETTER BROAD OMEGA*/ + 0xa64e, /* U+00a64e: CYRILLIC CAPITAL LETTER NEUTRAL YER*/ + 0xa64e, /* U+00a64f: CYRILLIC SMALL LETTER NEUTRAL YER*/ + 0xa650, /* U+00a650: CYRILLIC CAPITAL LETTER YERU WITH BACK YER*/ + 0xa650, /* U+00a651: CYRILLIC SMALL LETTER YERU WITH BACK YER*/ + 0xa652, /* U+00a652: CYRILLIC CAPITAL LETTER IOTIFIED YAT*/ + 0xa652, /* U+00a653: CYRILLIC SMALL LETTER IOTIFIED YAT*/ + 0xa654, /* U+00a654: CYRILLIC CAPITAL LETTER REVERSED YU*/ + 0xa654, /* U+00a655: CYRILLIC SMALL LETTER REVERSED YU*/ + 0xa656, /* U+00a656: CYRILLIC CAPITAL LETTER IOTIFIED A*/ + 0xa656, /* U+00a657: CYRILLIC SMALL LETTER IOTIFIED A*/ + 0xa658, /* U+00a658: CYRILLIC CAPITAL LETTER CLOSED LITTLE YUS*/ + 0xa658, /* U+00a659: CYRILLIC SMALL LETTER CLOSED LITTLE YUS*/ + 0xa65a, /* U+00a65a: CYRILLIC CAPITAL LETTER BLENDED YUS*/ + 0xa65a, /* U+00a65b: CYRILLIC SMALL LETTER BLENDED YUS*/ + 0xa65c, /* U+00a65c: CYRILLIC CAPITAL LETTER IOTIFIED CLOSED LITTLE YUS*/ + 0xa65c, /* U+00a65d: CYRILLIC SMALL LETTER IOTIFIED CLOSED LITTLE YUS*/ + 0xa65e, /* U+00a65e: CYRILLIC CAPITAL LETTER YN*/ + 0xa65e, /* U+00a65f: CYRILLIC SMALL LETTER YN*/ + 0xa660, /* U+00a660: CYRILLIC CAPITAL LETTER REVERSED TSE*/ + 0xa660, /* U+00a661: CYRILLIC SMALL LETTER REVERSED TSE*/ + 0xa662, /* U+00a662: CYRILLIC CAPITAL LETTER SOFT DE*/ + 0xa662, /* U+00a663: CYRILLIC SMALL LETTER SOFT DE*/ + 0xa664, /* U+00a664: CYRILLIC CAPITAL LETTER SOFT EL*/ + 0xa664, /* U+00a665: CYRILLIC SMALL LETTER SOFT EL*/ + 0xa666, /* U+00a666: CYRILLIC CAPITAL LETTER SOFT EM*/ + 0xa666, /* U+00a667: CYRILLIC SMALL LETTER SOFT EM*/ + 0xa668, /* U+00a668: CYRILLIC CAPITAL LETTER MONOCULAR O*/ + 0xa668, /* U+00a669: CYRILLIC SMALL LETTER MONOCULAR O*/ + 0xa66a, /* U+00a66a: CYRILLIC CAPITAL LETTER BINOCULAR O*/ + 0xa66a, /* U+00a66b: CYRILLIC SMALL LETTER BINOCULAR O*/ + 0xa66c, /* U+00a66c: CYRILLIC CAPITAL LETTER DOUBLE MONOCULAR O*/ + 0xa66c, /* U+00a66d: CYRILLIC SMALL LETTER DOUBLE MONOCULAR O*/ + 0xa66e, /* U+00a66e: CYRILLIC LETTER MULTIOCULAR O*/ + 0xa66f, /* U+00a66f: COMBINING CYRILLIC VZMET*/ + 0xa670, /* U+00a670: COMBINING CYRILLIC TEN MILLIONS SIGN*/ + 0xa671, /* U+00a671: COMBINING CYRILLIC HUNDRED MILLIONS SIGN*/ + 0xa672, /* U+00a672: COMBINING CYRILLIC THOUSAND MILLIONS SIGN*/ + 0xa673, /* U+00a673: SLAVONIC ASTERISK*/ + 0xa674, /* U+00a674: COMBINING CYRILLIC LETTER UKRAINIAN IE*/ + 0xa675, /* U+00a675: COMBINING CYRILLIC LETTER I*/ + 0xa676, /* U+00a676: COMBINING CYRILLIC LETTER YI*/ + 0xa677, /* U+00a677: COMBINING CYRILLIC LETTER U*/ + 0xa678, /* U+00a678: COMBINING CYRILLIC LETTER HARD SIGN*/ + 0xa679, /* U+00a679: COMBINING CYRILLIC LETTER YERU*/ + 0xa67a, /* U+00a67a: COMBINING CYRILLIC LETTER SOFT SIGN*/ + 0xa67b, /* U+00a67b: COMBINING CYRILLIC LETTER OMEGA*/ + 0xa67c, /* U+00a67c: COMBINING CYRILLIC KAVYKA*/ + 0xa67d, /* U+00a67d: COMBINING CYRILLIC PAYEROK*/ + 0xa67e, /* U+00a67e: CYRILLIC KAVYKA*/ + 0xa67f, /* U+00a67f: CYRILLIC PAYEROK*/ + 0xa680, /* U+00a680: CYRILLIC CAPITAL LETTER DWE*/ + 0xa680, /* U+00a681: CYRILLIC SMALL LETTER DWE*/ + 0xa682, /* U+00a682: CYRILLIC CAPITAL LETTER DZWE*/ + 0xa682, /* U+00a683: CYRILLIC SMALL LETTER DZWE*/ + 0xa684, /* U+00a684: CYRILLIC CAPITAL LETTER ZHWE*/ + 0xa684, /* U+00a685: CYRILLIC SMALL LETTER ZHWE*/ + 0xa686, /* U+00a686: CYRILLIC CAPITAL LETTER CCHE*/ + 0xa686, /* U+00a687: CYRILLIC SMALL LETTER CCHE*/ + 0xa688, /* U+00a688: CYRILLIC CAPITAL LETTER DZZE*/ + 0xa688, /* U+00a689: CYRILLIC SMALL LETTER DZZE*/ + 0xa68a, /* U+00a68a: CYRILLIC CAPITAL LETTER TE WITH MIDDLE HOOK*/ + 0xa68a, /* U+00a68b: CYRILLIC SMALL LETTER TE WITH MIDDLE HOOK*/ + 0xa68c, /* U+00a68c: CYRILLIC CAPITAL LETTER TWE*/ + 0xa68c, /* U+00a68d: CYRILLIC SMALL LETTER TWE*/ + 0xa68e, /* U+00a68e: CYRILLIC CAPITAL LETTER TSWE*/ + 0xa68e, /* U+00a68f: CYRILLIC SMALL LETTER TSWE*/ + 0xa690, /* U+00a690: CYRILLIC CAPITAL LETTER TSSE*/ + 0xa690, /* U+00a691: CYRILLIC SMALL LETTER TSSE*/ + 0xa692, /* U+00a692: CYRILLIC CAPITAL LETTER TCHE*/ + 0xa692, /* U+00a693: CYRILLIC SMALL LETTER TCHE*/ + 0xa694, /* U+00a694: CYRILLIC CAPITAL LETTER HWE*/ + 0xa694, /* U+00a695: CYRILLIC SMALL LETTER HWE*/ + 0xa696, /* U+00a696: CYRILLIC CAPITAL LETTER SHWE*/ + 0xa696, /* U+00a697: CYRILLIC SMALL LETTER SHWE*/ + 0xa698, /* U+00a698: */ + 0xa699, /* U+00a699: */ + 0xa69a, /* U+00a69a: */ + 0xa69b, /* U+00a69b: */ + 0xa69c, /* U+00a69c: */ + 0xa69d, /* U+00a69d: */ + 0xa69e, /* U+00a69e: */ + 0xa69f, /* U+00a69f: COMBINING CYRILLIC LETTER IOTIFIED E*/ + 0xa6a0, /* U+00a6a0: BAMUM LETTER A*/ + 0xa6a1, /* U+00a6a1: BAMUM LETTER KA*/ + 0xa6a2, /* U+00a6a2: BAMUM LETTER U*/ + 0xa6a3, /* U+00a6a3: BAMUM LETTER KU*/ + 0xa6a4, /* U+00a6a4: BAMUM LETTER EE*/ + 0xa6a5, /* U+00a6a5: BAMUM LETTER REE*/ + 0xa6a6, /* U+00a6a6: BAMUM LETTER TAE*/ + 0xa6a7, /* U+00a6a7: BAMUM LETTER O*/ + 0xa6a8, /* U+00a6a8: BAMUM LETTER NYI*/ + 0xa6a9, /* U+00a6a9: BAMUM LETTER I*/ + 0xa6aa, /* U+00a6aa: BAMUM LETTER LA*/ + 0xa6ab, /* U+00a6ab: BAMUM LETTER PA*/ + 0xa6ac, /* U+00a6ac: BAMUM LETTER RII*/ + 0xa6ad, /* U+00a6ad: BAMUM LETTER RIEE*/ + 0xa6ae, /* U+00a6ae: BAMUM LETTER LEEEE*/ + 0xa6af, /* U+00a6af: BAMUM LETTER MEEEE*/ + 0xa6b0, /* U+00a6b0: BAMUM LETTER TAA*/ + 0xa6b1, /* U+00a6b1: BAMUM LETTER NDAA*/ + 0xa6b2, /* U+00a6b2: BAMUM LETTER NJAEM*/ + 0xa6b3, /* U+00a6b3: BAMUM LETTER M*/ + 0xa6b4, /* U+00a6b4: BAMUM LETTER SUU*/ + 0xa6b5, /* U+00a6b5: BAMUM LETTER MU*/ + 0xa6b6, /* U+00a6b6: BAMUM LETTER SHII*/ + 0xa6b7, /* U+00a6b7: BAMUM LETTER SI*/ + 0xa6b8, /* U+00a6b8: BAMUM LETTER SHEUX*/ + 0xa6b9, /* U+00a6b9: BAMUM LETTER SEUX*/ + 0xa6ba, /* U+00a6ba: BAMUM LETTER KYEE*/ + 0xa6bb, /* U+00a6bb: BAMUM LETTER KET*/ + 0xa6bc, /* U+00a6bc: BAMUM LETTER NUAE*/ + 0xa6bd, /* U+00a6bd: BAMUM LETTER NU*/ + 0xa6be, /* U+00a6be: BAMUM LETTER NJUAE*/ + 0xa6bf, /* U+00a6bf: BAMUM LETTER YOQ*/ + 0xa6c0, /* U+00a6c0: BAMUM LETTER SHU*/ + 0xa6c1, /* U+00a6c1: BAMUM LETTER YUQ*/ + 0xa6c2, /* U+00a6c2: BAMUM LETTER YA*/ + 0xa6c3, /* U+00a6c3: BAMUM LETTER NSHA*/ + 0xa6c4, /* U+00a6c4: BAMUM LETTER KEUX*/ + 0xa6c5, /* U+00a6c5: BAMUM LETTER PEUX*/ + 0xa6c6, /* U+00a6c6: BAMUM LETTER NJEE*/ + 0xa6c7, /* U+00a6c7: BAMUM LETTER NTEE*/ + 0xa6c8, /* U+00a6c8: BAMUM LETTER PUE*/ + 0xa6c9, /* U+00a6c9: BAMUM LETTER WUE*/ + 0xa6ca, /* U+00a6ca: BAMUM LETTER PEE*/ + 0xa6cb, /* U+00a6cb: BAMUM LETTER FEE*/ + 0xa6cc, /* U+00a6cc: BAMUM LETTER RU*/ + 0xa6cd, /* U+00a6cd: BAMUM LETTER LU*/ + 0xa6ce, /* U+00a6ce: BAMUM LETTER MI*/ + 0xa6cf, /* U+00a6cf: BAMUM LETTER NI*/ + 0xa6d0, /* U+00a6d0: BAMUM LETTER REUX*/ + 0xa6d1, /* U+00a6d1: BAMUM LETTER RAE*/ + 0xa6d2, /* U+00a6d2: BAMUM LETTER KEN*/ + 0xa6d3, /* U+00a6d3: BAMUM LETTER NGKWAEN*/ + 0xa6d4, /* U+00a6d4: BAMUM LETTER NGGA*/ + 0xa6d5, /* U+00a6d5: BAMUM LETTER NGA*/ + 0xa6d6, /* U+00a6d6: BAMUM LETTER SHO*/ + 0xa6d7, /* U+00a6d7: BAMUM LETTER PUAE*/ + 0xa6d8, /* U+00a6d8: BAMUM LETTER FU*/ + 0xa6d9, /* U+00a6d9: BAMUM LETTER FOM*/ + 0xa6da, /* U+00a6da: BAMUM LETTER WA*/ + 0xa6db, /* U+00a6db: BAMUM LETTER NA*/ + 0xa6dc, /* U+00a6dc: BAMUM LETTER LI*/ + 0xa6dd, /* U+00a6dd: BAMUM LETTER PI*/ + 0xa6de, /* U+00a6de: BAMUM LETTER LOQ*/ + 0xa6df, /* U+00a6df: BAMUM LETTER KO*/ + 0xa6e0, /* U+00a6e0: BAMUM LETTER MBEN*/ + 0xa6e1, /* U+00a6e1: BAMUM LETTER REN*/ + 0xa6e2, /* U+00a6e2: BAMUM LETTER MEN*/ + 0xa6e3, /* U+00a6e3: BAMUM LETTER MA*/ + 0xa6e4, /* U+00a6e4: BAMUM LETTER TI*/ + 0xa6e5, /* U+00a6e5: BAMUM LETTER KI*/ + 0xa6e6, /* U+00a6e6: BAMUM LETTER MO*/ + 0xa6e7, /* U+00a6e7: BAMUM LETTER MBAA*/ + 0xa6e8, /* U+00a6e8: BAMUM LETTER TET*/ + 0xa6e9, /* U+00a6e9: BAMUM LETTER KPA*/ + 0xa6ea, /* U+00a6ea: BAMUM LETTER TEN*/ + 0xa6eb, /* U+00a6eb: BAMUM LETTER NTUU*/ + 0xa6ec, /* U+00a6ec: BAMUM LETTER SAMBA*/ + 0xa6ed, /* U+00a6ed: BAMUM LETTER FAAMAE*/ + 0xa6ee, /* U+00a6ee: BAMUM LETTER KOVUU*/ + 0xa6ef, /* U+00a6ef: BAMUM LETTER KOGHOM*/ + 0xa6f0, /* U+00a6f0: BAMUM COMBINING MARK KOQNDON*/ + 0xa6f1, /* U+00a6f1: BAMUM COMBINING MARK TUKWENTIS*/ + 0xa6f2, /* U+00a6f2: BAMUM NJAEMLI*/ + 0xa6f3, /* U+00a6f3: BAMUM FULL STOP*/ + 0xa6f4, /* U+00a6f4: BAMUM COLON*/ + 0xa6f5, /* U+00a6f5: BAMUM COMMA*/ + 0xa6f6, /* U+00a6f6: BAMUM SEMICOLON*/ + 0xa6f7, /* U+00a6f7: BAMUM QUESTION MARK*/ + 0xa6f8, /* U+00a6f8: */ + 0xa6f9, /* U+00a6f9: */ + 0xa6fa, /* U+00a6fa: */ + 0xa6fb, /* U+00a6fb: */ + 0xa6fc, /* U+00a6fc: */ + 0xa6fd, /* U+00a6fd: */ + 0xa6fe, /* U+00a6fe: */ + 0xa6ff, /* U+00a6ff: */ + 0xa700, /* U+00a700: MODIFIER LETTER CHINESE TONE YIN PING*/ + 0xa701, /* U+00a701: MODIFIER LETTER CHINESE TONE YANG PING*/ + 0xa702, /* U+00a702: MODIFIER LETTER CHINESE TONE YIN SHANG*/ + 0xa703, /* U+00a703: MODIFIER LETTER CHINESE TONE YANG SHANG*/ + 0xa704, /* U+00a704: MODIFIER LETTER CHINESE TONE YIN QU*/ + 0xa705, /* U+00a705: MODIFIER LETTER CHINESE TONE YANG QU*/ + 0xa706, /* U+00a706: MODIFIER LETTER CHINESE TONE YIN RU*/ + 0xa707, /* U+00a707: MODIFIER LETTER CHINESE TONE YANG RU*/ + 0xa708, /* U+00a708: MODIFIER LETTER EXTRA-HIGH DOTTED TONE BAR*/ + 0xa709, /* U+00a709: MODIFIER LETTER HIGH DOTTED TONE BAR*/ + 0xa70a, /* U+00a70a: MODIFIER LETTER MID DOTTED TONE BAR*/ + 0xa70b, /* U+00a70b: MODIFIER LETTER LOW DOTTED TONE BAR*/ + 0xa70c, /* U+00a70c: MODIFIER LETTER EXTRA-LOW DOTTED TONE BAR*/ + 0xa70d, /* U+00a70d: MODIFIER LETTER EXTRA-HIGH DOTTED LEFT-STEM TONE BAR*/ + 0xa70e, /* U+00a70e: MODIFIER LETTER HIGH DOTTED LEFT-STEM TONE BAR*/ + 0xa70f, /* U+00a70f: MODIFIER LETTER MID DOTTED LEFT-STEM TONE BAR*/ + 0xa710, /* U+00a710: MODIFIER LETTER LOW DOTTED LEFT-STEM TONE BAR*/ + 0xa711, /* U+00a711: MODIFIER LETTER EXTRA-LOW DOTTED LEFT-STEM TONE BAR*/ + 0xa712, /* U+00a712: MODIFIER LETTER EXTRA-HIGH LEFT-STEM TONE BAR*/ + 0xa713, /* U+00a713: MODIFIER LETTER HIGH LEFT-STEM TONE BAR*/ + 0xa714, /* U+00a714: MODIFIER LETTER MID LEFT-STEM TONE BAR*/ + 0xa715, /* U+00a715: MODIFIER LETTER LOW LEFT-STEM TONE BAR*/ + 0xa716, /* U+00a716: MODIFIER LETTER EXTRA-LOW LEFT-STEM TONE BAR*/ + 0xa717, /* U+00a717: MODIFIER LETTER DOT VERTICAL BAR*/ + 0xa718, /* U+00a718: MODIFIER LETTER DOT SLASH*/ + 0xa719, /* U+00a719: MODIFIER LETTER DOT HORIZONTAL BAR*/ + 0xa71a, /* U+00a71a: MODIFIER LETTER LOWER RIGHT CORNER ANGLE*/ + 0xa71b, /* U+00a71b: MODIFIER LETTER RAISED UP ARROW*/ + 0xa71c, /* U+00a71c: MODIFIER LETTER RAISED DOWN ARROW*/ + 0xa71d, /* U+00a71d: MODIFIER LETTER RAISED EXCLAMATION MARK*/ + 0xa71e, /* U+00a71e: MODIFIER LETTER RAISED INVERTED EXCLAMATION MARK*/ + 0xa71f, /* U+00a71f: MODIFIER LETTER LOW INVERTED EXCLAMATION MARK*/ + 0xa720, /* U+00a720: MODIFIER LETTER STRESS AND HIGH TONE*/ + 0xa721, /* U+00a721: MODIFIER LETTER STRESS AND LOW TONE*/ + 0xa722, /* U+00a722: LATIN CAPITAL LETTER EGYPTOLOGICAL ALEF*/ + 0xa722, /* U+00a723: LATIN SMALL LETTER EGYPTOLOGICAL ALEF*/ + 0xa724, /* U+00a724: LATIN CAPITAL LETTER EGYPTOLOGICAL AIN*/ + 0xa724, /* U+00a725: LATIN SMALL LETTER EGYPTOLOGICAL AIN*/ + 0xa726, /* U+00a726: LATIN CAPITAL LETTER HENG*/ + 0xa726, /* U+00a727: LATIN SMALL LETTER HENG*/ + 0xa728, /* U+00a728: LATIN CAPITAL LETTER TZ*/ + 0xa728, /* U+00a729: LATIN SMALL LETTER TZ*/ + 0xa72a, /* U+00a72a: LATIN CAPITAL LETTER TRESILLO*/ + 0xa72a, /* U+00a72b: LATIN SMALL LETTER TRESILLO*/ + 0xa72c, /* U+00a72c: LATIN CAPITAL LETTER CUATRILLO*/ + 0xa72c, /* U+00a72d: LATIN SMALL LETTER CUATRILLO*/ + 0xa72e, /* U+00a72e: LATIN CAPITAL LETTER CUATRILLO WITH COMMA*/ + 0xa72e, /* U+00a72f: LATIN SMALL LETTER CUATRILLO WITH COMMA*/ + 0xa730, /* U+00a730: LATIN LETTER SMALL CAPITAL F*/ + 0xa731, /* U+00a731: LATIN LETTER SMALL CAPITAL S*/ + 0xa732, /* U+00a732: LATIN CAPITAL LETTER AA*/ + 0xa732, /* U+00a733: LATIN SMALL LETTER AA*/ + 0xa734, /* U+00a734: LATIN CAPITAL LETTER AO*/ + 0xa734, /* U+00a735: LATIN SMALL LETTER AO*/ + 0xa736, /* U+00a736: LATIN CAPITAL LETTER AU*/ + 0xa736, /* U+00a737: LATIN SMALL LETTER AU*/ + 0xa738, /* U+00a738: LATIN CAPITAL LETTER AV*/ + 0xa738, /* U+00a739: LATIN SMALL LETTER AV*/ + 0xa73a, /* U+00a73a: LATIN CAPITAL LETTER AV WITH HORIZONTAL BAR*/ + 0xa73a, /* U+00a73b: LATIN SMALL LETTER AV WITH HORIZONTAL BAR*/ + 0xa73c, /* U+00a73c: LATIN CAPITAL LETTER AY*/ + 0xa73c, /* U+00a73d: LATIN SMALL LETTER AY*/ + 0xa73e, /* U+00a73e: LATIN CAPITAL LETTER REVERSED C WITH DOT*/ + 0xa73e, /* U+00a73f: LATIN SMALL LETTER REVERSED C WITH DOT*/ + 0xa740, /* U+00a740: LATIN CAPITAL LETTER K WITH STROKE*/ + 0xa740, /* U+00a741: LATIN SMALL LETTER K WITH STROKE*/ + 0xa742, /* U+00a742: LATIN CAPITAL LETTER K WITH DIAGONAL STROKE*/ + 0xa742, /* U+00a743: LATIN SMALL LETTER K WITH DIAGONAL STROKE*/ + 0xa744, /* U+00a744: LATIN CAPITAL LETTER K WITH STROKE AND DIAGONAL STROKE*/ + 0xa744, /* U+00a745: LATIN SMALL LETTER K WITH STROKE AND DIAGONAL STROKE*/ + 0xa746, /* U+00a746: LATIN CAPITAL LETTER BROKEN L*/ + 0xa746, /* U+00a747: LATIN SMALL LETTER BROKEN L*/ + 0xa748, /* U+00a748: LATIN CAPITAL LETTER L WITH HIGH STROKE*/ + 0xa748, /* U+00a749: LATIN SMALL LETTER L WITH HIGH STROKE*/ + 0xa74a, /* U+00a74a: LATIN CAPITAL LETTER O WITH LONG STROKE OVERLAY*/ + 0xa74a, /* U+00a74b: LATIN SMALL LETTER O WITH LONG STROKE OVERLAY*/ + 0xa74c, /* U+00a74c: LATIN CAPITAL LETTER O WITH LOOP*/ + 0xa74c, /* U+00a74d: LATIN SMALL LETTER O WITH LOOP*/ + 0xa74e, /* U+00a74e: LATIN CAPITAL LETTER OO*/ + 0xa74e, /* U+00a74f: LATIN SMALL LETTER OO*/ + 0xa750, /* U+00a750: LATIN CAPITAL LETTER P WITH STROKE THROUGH DESCENDER*/ + 0xa750, /* U+00a751: LATIN SMALL LETTER P WITH STROKE THROUGH DESCENDER*/ + 0xa752, /* U+00a752: LATIN CAPITAL LETTER P WITH FLOURISH*/ + 0xa752, /* U+00a753: LATIN SMALL LETTER P WITH FLOURISH*/ + 0xa754, /* U+00a754: LATIN CAPITAL LETTER P WITH SQUIRREL TAIL*/ + 0xa754, /* U+00a755: LATIN SMALL LETTER P WITH SQUIRREL TAIL*/ + 0xa756, /* U+00a756: LATIN CAPITAL LETTER Q WITH STROKE THROUGH DESCENDER*/ + 0xa756, /* U+00a757: LATIN SMALL LETTER Q WITH STROKE THROUGH DESCENDER*/ + 0xa758, /* U+00a758: LATIN CAPITAL LETTER Q WITH DIAGONAL STROKE*/ + 0xa758, /* U+00a759: LATIN SMALL LETTER Q WITH DIAGONAL STROKE*/ + 0xa75a, /* U+00a75a: LATIN CAPITAL LETTER R ROTUNDA*/ + 0xa75a, /* U+00a75b: LATIN SMALL LETTER R ROTUNDA*/ + 0xa75c, /* U+00a75c: LATIN CAPITAL LETTER RUM ROTUNDA*/ + 0xa75c, /* U+00a75d: LATIN SMALL LETTER RUM ROTUNDA*/ + 0xa75e, /* U+00a75e: LATIN CAPITAL LETTER V WITH DIAGONAL STROKE*/ + 0xa75e, /* U+00a75f: LATIN SMALL LETTER V WITH DIAGONAL STROKE*/ + 0xa760, /* U+00a760: LATIN CAPITAL LETTER VY*/ + 0xa760, /* U+00a761: LATIN SMALL LETTER VY*/ + 0xa762, /* U+00a762: LATIN CAPITAL LETTER VISIGOTHIC Z*/ + 0xa762, /* U+00a763: LATIN SMALL LETTER VISIGOTHIC Z*/ + 0xa764, /* U+00a764: LATIN CAPITAL LETTER THORN WITH STROKE*/ + 0xa764, /* U+00a765: LATIN SMALL LETTER THORN WITH STROKE*/ + 0xa766, /* U+00a766: LATIN CAPITAL LETTER THORN WITH STROKE THROUGH DESCENDER*/ + 0xa766, /* U+00a767: LATIN SMALL LETTER THORN WITH STROKE THROUGH DESCENDER*/ + 0xa768, /* U+00a768: LATIN CAPITAL LETTER VEND*/ + 0xa768, /* U+00a769: LATIN SMALL LETTER VEND*/ + 0xa76a, /* U+00a76a: LATIN CAPITAL LETTER ET*/ + 0xa76a, /* U+00a76b: LATIN SMALL LETTER ET*/ + 0xa76c, /* U+00a76c: LATIN CAPITAL LETTER IS*/ + 0xa76c, /* U+00a76d: LATIN SMALL LETTER IS*/ + 0xa76e, /* U+00a76e: LATIN CAPITAL LETTER CON*/ + 0xa76e, /* U+00a76f: LATIN SMALL LETTER CON*/ + 0xa770, /* U+00a770: MODIFIER LETTER US*/ + 0xa771, /* U+00a771: LATIN SMALL LETTER DUM*/ + 0xa772, /* U+00a772: LATIN SMALL LETTER LUM*/ + 0xa773, /* U+00a773: LATIN SMALL LETTER MUM*/ + 0xa774, /* U+00a774: LATIN SMALL LETTER NUM*/ + 0xa775, /* U+00a775: LATIN SMALL LETTER RUM*/ + 0xa776, /* U+00a776: LATIN LETTER SMALL CAPITAL RUM*/ + 0xa777, /* U+00a777: LATIN SMALL LETTER TUM*/ + 0xa778, /* U+00a778: LATIN SMALL LETTER UM*/ + 0xa779, /* U+00a779: LATIN CAPITAL LETTER INSULAR D*/ + 0xa779, /* U+00a77a: LATIN SMALL LETTER INSULAR D*/ + 0xa77b, /* U+00a77b: LATIN CAPITAL LETTER INSULAR F*/ + 0xa77b, /* U+00a77c: LATIN SMALL LETTER INSULAR F*/ + 0xa77d, /* U+00a77d: LATIN CAPITAL LETTER INSULAR G*/ + 0xa77e, /* U+00a77e: LATIN CAPITAL LETTER TURNED INSULAR G*/ + 0xa77e, /* U+00a77f: LATIN SMALL LETTER TURNED INSULAR G*/ + 0xa780, /* U+00a780: LATIN CAPITAL LETTER TURNED L*/ + 0xa780, /* U+00a781: LATIN SMALL LETTER TURNED L*/ + 0xa782, /* U+00a782: LATIN CAPITAL LETTER INSULAR R*/ + 0xa782, /* U+00a783: LATIN SMALL LETTER INSULAR R*/ + 0xa784, /* U+00a784: LATIN CAPITAL LETTER INSULAR S*/ + 0xa784, /* U+00a785: LATIN SMALL LETTER INSULAR S*/ + 0xa786, /* U+00a786: LATIN CAPITAL LETTER INSULAR T*/ + 0xa786, /* U+00a787: LATIN SMALL LETTER INSULAR T*/ + 0xa788, /* U+00a788: MODIFIER LETTER LOW CIRCUMFLEX ACCENT*/ + 0xa789, /* U+00a789: MODIFIER LETTER COLON*/ + 0xa78a, /* U+00a78a: MODIFIER LETTER SHORT EQUALS SIGN*/ + 0xa78b, /* U+00a78b: LATIN CAPITAL LETTER SALTILLO*/ + 0xa78b, /* U+00a78c: LATIN SMALL LETTER SALTILLO*/ + 0xa78d, /* U+00a78d: LATIN CAPITAL LETTER TURNED H*/ + 0xa78e, /* U+00a78e: LATIN SMALL LETTER L WITH RETROFLEX HOOK AND BELT*/ + 0xa78f, /* U+00a78f: */ + 0xa790, /* U+00a790: LATIN CAPITAL LETTER N WITH DESCENDER*/ + 0xa790, /* U+00a791: LATIN SMALL LETTER N WITH DESCENDER*/ + 0xa792, /* U+00a792: LATIN CAPITAL LETTER C WITH BAR*/ + 0xa792, /* U+00a793: LATIN SMALL LETTER C WITH BAR*/ + 0xa794, /* U+00a794: */ + 0xa795, /* U+00a795: */ + 0xa796, /* U+00a796: */ + 0xa797, /* U+00a797: */ + 0xa798, /* U+00a798: */ + 0xa799, /* U+00a799: */ + 0xa79a, /* U+00a79a: */ + 0xa79b, /* U+00a79b: */ + 0xa79c, /* U+00a79c: */ + 0xa79d, /* U+00a79d: */ + 0xa79e, /* U+00a79e: */ + 0xa79f, /* U+00a79f: */ + 0xa7a0, /* U+00a7a0: LATIN CAPITAL LETTER G WITH OBLIQUE STROKE*/ + 0xa7a0, /* U+00a7a1: LATIN SMALL LETTER G WITH OBLIQUE STROKE*/ + 0xa7a2, /* U+00a7a2: LATIN CAPITAL LETTER K WITH OBLIQUE STROKE*/ + 0xa7a2, /* U+00a7a3: LATIN SMALL LETTER K WITH OBLIQUE STROKE*/ + 0xa7a4, /* U+00a7a4: LATIN CAPITAL LETTER N WITH OBLIQUE STROKE*/ + 0xa7a4, /* U+00a7a5: LATIN SMALL LETTER N WITH OBLIQUE STROKE*/ + 0xa7a6, /* U+00a7a6: LATIN CAPITAL LETTER R WITH OBLIQUE STROKE*/ + 0xa7a6, /* U+00a7a7: LATIN SMALL LETTER R WITH OBLIQUE STROKE*/ + 0xa7a8, /* U+00a7a8: LATIN CAPITAL LETTER S WITH OBLIQUE STROKE*/ + 0xa7a8, /* U+00a7a9: LATIN SMALL LETTER S WITH OBLIQUE STROKE*/ +}; + +static const RTUNICP g_afRTUniUpper0x00ff41[] = +{ + 0xff21, /* U+00ff41: FULLWIDTH LATIN SMALL LETTER A*/ + 0xff22, /* U+00ff42: FULLWIDTH LATIN SMALL LETTER B*/ + 0xff23, /* U+00ff43: FULLWIDTH LATIN SMALL LETTER C*/ + 0xff24, /* U+00ff44: FULLWIDTH LATIN SMALL LETTER D*/ + 0xff25, /* U+00ff45: FULLWIDTH LATIN SMALL LETTER E*/ + 0xff26, /* U+00ff46: FULLWIDTH LATIN SMALL LETTER F*/ + 0xff27, /* U+00ff47: FULLWIDTH LATIN SMALL LETTER G*/ + 0xff28, /* U+00ff48: FULLWIDTH LATIN SMALL LETTER H*/ + 0xff29, /* U+00ff49: FULLWIDTH LATIN SMALL LETTER I*/ + 0xff2a, /* U+00ff4a: FULLWIDTH LATIN SMALL LETTER J*/ + 0xff2b, /* U+00ff4b: FULLWIDTH LATIN SMALL LETTER K*/ + 0xff2c, /* U+00ff4c: FULLWIDTH LATIN SMALL LETTER L*/ + 0xff2d, /* U+00ff4d: FULLWIDTH LATIN SMALL LETTER M*/ + 0xff2e, /* U+00ff4e: FULLWIDTH LATIN SMALL LETTER N*/ + 0xff2f, /* U+00ff4f: FULLWIDTH LATIN SMALL LETTER O*/ + 0xff30, /* U+00ff50: FULLWIDTH LATIN SMALL LETTER P*/ + 0xff31, /* U+00ff51: FULLWIDTH LATIN SMALL LETTER Q*/ + 0xff32, /* U+00ff52: FULLWIDTH LATIN SMALL LETTER R*/ + 0xff33, /* U+00ff53: FULLWIDTH LATIN SMALL LETTER S*/ + 0xff34, /* U+00ff54: FULLWIDTH LATIN SMALL LETTER T*/ + 0xff35, /* U+00ff55: FULLWIDTH LATIN SMALL LETTER U*/ + 0xff36, /* U+00ff56: FULLWIDTH LATIN SMALL LETTER V*/ + 0xff37, /* U+00ff57: FULLWIDTH LATIN SMALL LETTER W*/ + 0xff38, /* U+00ff58: FULLWIDTH LATIN SMALL LETTER X*/ + 0xff39, /* U+00ff59: FULLWIDTH LATIN SMALL LETTER Y*/ + 0xff3a, /* U+00ff5a: FULLWIDTH LATIN SMALL LETTER Z*/ +}; + +static const RTUNICP g_afRTUniUpper0x010428[] = +{ + 0x10400, /* U+010428: DESERET SMALL LETTER LONG I*/ + 0x10401, /* U+010429: DESERET SMALL LETTER LONG E*/ + 0x10402, /* U+01042a: DESERET SMALL LETTER LONG A*/ + 0x10403, /* U+01042b: DESERET SMALL LETTER LONG AH*/ + 0x10404, /* U+01042c: DESERET SMALL LETTER LONG O*/ + 0x10405, /* U+01042d: DESERET SMALL LETTER LONG OO*/ + 0x10406, /* U+01042e: DESERET SMALL LETTER SHORT I*/ + 0x10407, /* U+01042f: DESERET SMALL LETTER SHORT E*/ + 0x10408, /* U+010430: DESERET SMALL LETTER SHORT A*/ + 0x10409, /* U+010431: DESERET SMALL LETTER SHORT AH*/ + 0x1040a, /* U+010432: DESERET SMALL LETTER SHORT O*/ + 0x1040b, /* U+010433: DESERET SMALL LETTER SHORT OO*/ + 0x1040c, /* U+010434: DESERET SMALL LETTER AY*/ + 0x1040d, /* U+010435: DESERET SMALL LETTER OW*/ + 0x1040e, /* U+010436: DESERET SMALL LETTER WU*/ + 0x1040f, /* U+010437: DESERET SMALL LETTER YEE*/ + 0x10410, /* U+010438: DESERET SMALL LETTER H*/ + 0x10411, /* U+010439: DESERET SMALL LETTER PEE*/ + 0x10412, /* U+01043a: DESERET SMALL LETTER BEE*/ + 0x10413, /* U+01043b: DESERET SMALL LETTER TEE*/ + 0x10414, /* U+01043c: DESERET SMALL LETTER DEE*/ + 0x10415, /* U+01043d: DESERET SMALL LETTER CHEE*/ + 0x10416, /* U+01043e: DESERET SMALL LETTER JEE*/ + 0x10417, /* U+01043f: DESERET SMALL LETTER KAY*/ + 0x10418, /* U+010440: DESERET SMALL LETTER GAY*/ + 0x10419, /* U+010441: DESERET SMALL LETTER EF*/ + 0x1041a, /* U+010442: DESERET SMALL LETTER VEE*/ + 0x1041b, /* U+010443: DESERET SMALL LETTER ETH*/ + 0x1041c, /* U+010444: DESERET SMALL LETTER THEE*/ + 0x1041d, /* U+010445: DESERET SMALL LETTER ES*/ + 0x1041e, /* U+010446: DESERET SMALL LETTER ZEE*/ + 0x1041f, /* U+010447: DESERET SMALL LETTER ESH*/ + 0x10420, /* U+010448: DESERET SMALL LETTER ZHEE*/ + 0x10421, /* U+010449: DESERET SMALL LETTER ER*/ + 0x10422, /* U+01044a: DESERET SMALL LETTER EL*/ + 0x10423, /* U+01044b: DESERET SMALL LETTER EM*/ + 0x10424, /* U+01044c: DESERET SMALL LETTER EN*/ + 0x10425, /* U+01044d: DESERET SMALL LETTER ENG*/ + 0x10426, /* U+01044e: DESERET SMALL LETTER OI*/ + 0x10427, /* U+01044f: DESERET SMALL LETTER EW*/ +}; + + +RT_DECL_DATA_CONST(const RTUNICASERANGE) g_aRTUniUpperRanges[] = +{ + { 0x000000, 0x000587, &g_afRTUniUpper0x000000[0] }, + { 0x001d79, 0x0024ea, &g_afRTUniUpper0x001d79[0] }, + { 0x002c30, 0x002d2e, &g_afRTUniUpper0x002c30[0] }, + { 0x00a641, 0x00a7aa, &g_afRTUniUpper0x00a641[0] }, + { 0x00ff41, 0x00ff5b, &g_afRTUniUpper0x00ff41[0] }, + { 0x010428, 0x010450, &g_afRTUniUpper0x010428[0] }, + { ~(RTUNICP)0, ~(RTUNICP)0, NULL } +}; + + diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Runtime/common/string/uniread.cpp virtualbox-4.1.44-dfsg/src/VBox/Runtime/common/string/uniread.cpp --- virtualbox-4.1.12-dfsg/src/VBox/Runtime/common/string/uniread.cpp 2012-04-02 13:29:01.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Runtime/common/string/uniread.cpp 2015-11-11 15:09:04.000000000 +0000 @@ -34,17 +34,22 @@ #include #include #include +#ifdef _MSC_VER +# include +#else +# include +#endif /******************************************************************************* * Global Variables * *******************************************************************************/ -/** When set, no output is produced. Very useful when debugging ths code. */ -static bool g_fQuiet = false; /** The file we're currently parsing. */ static const char *g_pszCurFile; /** The current line number. */ static unsigned g_iLine; +/** The current output file. */ +static FILE *g_pCurOutFile; /** @@ -883,6 +888,7 @@ AppendFlag(pszFlags, "RTUNI_LOWER"); //if (pInfo->???) // AppendFlag(pszFlags, "RTUNI_BSPACE"); +#if 0 if (pInfo->fInvNFD_QC != 0 || pInfo->fInvNFC_QC != 0) { AppendFlag(pszFlags, "RTUNI_QC_NFX"); @@ -893,6 +899,7 @@ } else if (pInfo->paDecompositionMapping && !*pInfo->pszDecompositionType) fprintf(stderr, "uniread: U+%05X is not QC_NFX but has canonical mappings.\n", pInfo->CodePoint); +#endif if (!*pszFlags) { @@ -905,6 +912,43 @@ /** + * Closes the primary output stream. + */ +static int Stream1Close(void) +{ + if (g_pCurOutFile && g_pCurOutFile != stdout && g_pCurOutFile != stderr) + { + if (fclose(g_pCurOutFile) != 0) + { + fprintf(stderr, "Error closing output file.\n"); + return -1; + } + } + g_pCurOutFile = NULL; + return 0; +} + + +/** + * Initializes the 1st stream to output to a given file. + */ +static int Stream1Init(const char *pszName) +{ + int rc = Stream1Close(); + if (!rc) + { + g_pCurOutFile = fopen(pszName, "w"); + if (!g_pCurOutFile) + { + fprintf(stderr, "Error opening output file '%s'.\n", pszName); + rc = -1; + } + } + return rc; +} + + +/** * printf wrapper for the primary output stream. * * @returns See vfprintf. @@ -916,10 +960,7 @@ int cch; va_list va; va_start(va, pszFormat); - if (!g_fQuiet) - cch = vfprintf(stdout, pszFormat, va); - else - cch = strlen(pszFormat); + cch = vfprintf(g_pCurOutFile, pszFormat, va); va_end(va); return cch; } @@ -973,17 +1014,30 @@ /** * Print the unidata.cpp file header and include list. */ -int PrintHeader(const char *argv0) +int PrintHeader(const char *argv0, const char *pszBaseDir) { - Stream1Printf("/** @file\n" - " *\n" + char szBuf[1024]; + if (!pszBaseDir) + { + memset(szBuf, 0, sizeof(szBuf)); +#ifdef _MSC_VER + _getcwd(szBuf, sizeof(szBuf)); +#else + getcwd(szBuf, sizeof(szBuf)); +#endif + pszBaseDir = szBuf; + } + + Stream1Printf("/* $" "Id" "$ */\n" + "/** @file\n" " * IPRT - Unicode Tables.\n" " *\n" - " * Automatically Generated by %s (" __DATE__ " " __TIME__ ")\n" + " * Automatically Generated from %s\n" + " * by %s (" __DATE__ " " __TIME__ ")\n" " */\n" "\n" "/*\n" - " * Copyright (C) 2006-2010 Oracle Corporation\n" + " * Copyright (C) 2006-2014 Oracle Corporation\n" " *\n" " * This file is part of VirtualBox Open Source Edition (OSE), as\n" " * available from http://www.virtualbox.org. This file is free software;\n" @@ -1005,7 +1059,7 @@ "\n" "#include \n" "\n", - argv0); + pszBaseDir, argv0); return 0; } @@ -1019,7 +1073,7 @@ * Print flags table. */ Stream2Init(); - Stream2Printf("const RTUNIFLAGSRANGE g_aRTUniFlagsRanges[] =\n" + Stream2Printf("RT_DECL_DATA_CONST(const RTUNIFLAGSRANGE) g_aRTUniFlagsRanges[] =\n" "{\n"); RTUNICP i = 0; int iStart = -1; @@ -1046,7 +1100,7 @@ { if (iStart < 0) { - Stream1Printf("static const uint8_t g_afRTUniFlags0x%06x[] = \n" + Stream1Printf("static const uint8_t g_afRTUniFlags0x%06x[] =\n" "{\n", i); iStart = i; } @@ -1068,7 +1122,7 @@ static int PrintUpper(void) { Stream2Init(); - Stream2Printf("const RTUNICASERANGE g_aRTUniUpperRanges[] =\n" + Stream2Printf("RT_DECL_DATA_CONST(const RTUNICASERANGE) g_aRTUniUpperRanges[] =\n" "{\n"); RTUNICP i = 0; int iStart = -1; @@ -1094,7 +1148,7 @@ { if (iStart < 0) { - Stream1Printf("static const RTUNICP g_afRTUniUpper0x%06x[] = \n" + Stream1Printf("static const RTUNICP g_afRTUniUpper0x%06x[] =\n" "{\n", i); iStart = i; } @@ -1115,7 +1169,7 @@ static int PrintLower(void) { Stream2Init(); - Stream2Printf("const RTUNICASERANGE g_aRTUniLowerRanges[] =\n" + Stream2Printf("RT_DECL_DATA_CONST(const RTUNICASERANGE) g_aRTUniLowerRanges[] =\n" "{\n"); RTUNICP i = 0; int iStart = -1; @@ -1141,7 +1195,7 @@ { if (iStart < 0) { - Stream1Printf("static const RTUNICP g_afRTUniLower0x%06x[] = \n" + Stream1Printf("static const RTUNICP g_afRTUniLower0x%06x[] =\n" "{\n", i); iStart = i; } @@ -1201,9 +1255,6 @@ argi++; pszBaseDir = argv[argi]; } - else if ( !strcmp(argv[argi], "-q") - || !strcmp(argv[argi], "--quiet")) - g_fQuiet = true; else { fprintf(stderr, "uniread: syntax error at '%s': Unknown argument\n", argv[argi]); @@ -1231,24 +1282,29 @@ return rc; /* - * Print stuff. + * Produce output files. */ - rc = PrintHeader(argv[0]); - if (rc) - return rc; - rc = PrintFlags(); - if (rc) - return rc; - rc = PrintUpper(); - if (rc) - return rc; - rc = PrintLower(); - if (rc) - return rc; + rc = Stream1Init("unidata-flags.cpp"); + if (!rc) + rc = PrintHeader(argv[0], pszBaseDir); + if (!rc) + rc = PrintFlags(); + + rc = Stream1Init("unidata-upper.cpp"); + if (!rc) + rc = PrintHeader(argv[0], pszBaseDir); + if (!rc) + rc = PrintUpper(); + + rc = Stream1Init("unidata-lower.cpp"); + if (!rc) + rc = PrintHeader(argv[0], pszBaseDir); + if (!rc) + rc = PrintLower(); + if (!rc) + rc = Stream1Close(); /* done */ - fflush(stdout); - return rc; } diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Runtime/common/string/utf-16-case.cpp virtualbox-4.1.44-dfsg/src/VBox/Runtime/common/string/utf-16-case.cpp --- virtualbox-4.1.12-dfsg/src/VBox/Runtime/common/string/utf-16-case.cpp 1970-01-01 00:00:00.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Runtime/common/string/utf-16-case.cpp 2015-11-11 15:09:04.000000000 +0000 @@ -0,0 +1,178 @@ +/* $Id: utf-16-case.cpp $ */ +/** @file + * IPRT - UTF-16, Case Sensitivity. + */ + +/* + * Copyright (C) 2006-2014 Oracle Corporation + * + * This file is part of VirtualBox Open Source Edition (OSE), as + * available from http://www.virtualbox.org. This file is free software; + * you can redistribute it and/or modify it under the terms of the GNU + * General Public License (GPL) as published by the Free Software + * Foundation, in version 2 as it comes in the "COPYING" file of the + * VirtualBox OSE distribution. VirtualBox OSE is distributed in the + * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind. + * + * The contents of this file may alternatively be used under the terms + * of the Common Development and Distribution License Version 1.0 + * (CDDL) only, as it comes in the "COPYING.CDDL" file of the + * VirtualBox OSE distribution, in which case the provisions of the + * CDDL are applicable instead of those of the GPL. + * + * You may elect to license modified versions of this file under the + * terms and conditions of either the GPL or the CDDL or both. + */ + + +/******************************************************************************* +* Header Files * +*******************************************************************************/ +#include +#include "internal/iprt.h" + +#include +#include +#include +#include +#include "internal/string.h" + + +RTDECL(int) RTUtf16ICmp(register PCRTUTF16 pwsz1, register PCRTUTF16 pwsz2) +{ + if (pwsz1 == pwsz2) + return 0; + if (!pwsz1) + return -1; + if (!pwsz2) + return 1; + + PCRTUTF16 pwsz1Start = pwsz1; /* keep it around in case we have to backtrack on a surrogate pair */ + for (;;) + { + register RTUTF16 wc1 = *pwsz1; + register RTUTF16 wc2 = *pwsz2; + register int iDiff = wc1 - wc2; + if (iDiff) + { + /* unless they are *both* surrogate pairs, there is no chance they'll be identical. */ + if ( wc1 < 0xd800 + || wc2 < 0xd800 + || wc1 > 0xdfff + || wc2 > 0xdfff) + { + /* simple UCS-2 char */ + iDiff = RTUniCpToUpper(wc1) - RTUniCpToUpper(wc2); + if (iDiff) + iDiff = RTUniCpToLower(wc1) - RTUniCpToLower(wc2); + } + else + { + /* a damned pair */ + RTUNICP uc1; + RTUNICP uc2; + if (wc1 >= 0xdc00) + { + if (pwsz1Start == pwsz1) + return iDiff; + uc1 = pwsz1[-1]; + if (uc1 < 0xd800 || uc1 >= 0xdc00) + return iDiff; + uc1 = 0x10000 + (((uc1 & 0x3ff) << 10) | (wc1 & 0x3ff)); + uc2 = 0x10000 + (((pwsz2[-1] & 0x3ff) << 10) | (wc2 & 0x3ff)); + } + else + { + uc1 = *++pwsz1; + if (uc1 < 0xdc00 || uc1 >= 0xe000) + return iDiff; + uc1 = 0x10000 + (((wc1 & 0x3ff) << 10) | (uc1 & 0x3ff)); + uc2 = 0x10000 + (((wc2 & 0x3ff) << 10) | (*++pwsz2 & 0x3ff)); + } + iDiff = RTUniCpToUpper(uc1) - RTUniCpToUpper(uc2); + if (iDiff) + iDiff = RTUniCpToLower(uc1) - RTUniCpToLower(uc2); /* serious paranoia! */ + } + if (iDiff) + return iDiff; + } + if (!wc1) + return 0; + pwsz1++; + pwsz2++; + } +} +RT_EXPORT_SYMBOL(RTUtf16ICmp); + + +RTDECL(PRTUTF16) RTUtf16ToLower(PRTUTF16 pwsz) +{ + PRTUTF16 pwc = pwsz; + for (;;) + { + RTUTF16 wc = *pwc; + if (!wc) + break; + if (wc < 0xd800 || wc >= 0xdc00) + { + RTUNICP ucFolded = RTUniCpToLower(wc); + if (ucFolded < 0x10000) + *pwc++ = RTUniCpToLower(wc); + } + else + { + /* surrogate */ + RTUTF16 wc2 = pwc[1]; + if (wc2 >= 0xdc00 && wc2 <= 0xdfff) + { + RTUNICP uc = 0x10000 + (((wc & 0x3ff) << 10) | (wc2 & 0x3ff)); + RTUNICP ucFolded = RTUniCpToLower(uc); + if (uc != ucFolded && ucFolded >= 0x10000) /* we don't support shrinking the string */ + { + uc -= 0x10000; + *pwc++ = 0xd800 | (uc >> 10); + *pwc++ = 0xdc00 | (uc & 0x3ff); + } + } + else /* invalid encoding. */ + pwc++; + } + } + return pwsz; +} +RT_EXPORT_SYMBOL(RTUtf16ToLower); + + +RTDECL(PRTUTF16) RTUtf16ToUpper(PRTUTF16 pwsz) +{ + PRTUTF16 pwc = pwsz; + for (;;) + { + RTUTF16 wc = *pwc; + if (!wc) + break; + if (wc < 0xd800 || wc >= 0xdc00) + *pwc++ = RTUniCpToUpper(wc); + else + { + /* surrogate */ + RTUTF16 wc2 = pwc[1]; + if (wc2 >= 0xdc00 && wc2 <= 0xdfff) + { + RTUNICP uc = 0x10000 + (((wc & 0x3ff) << 10) | (wc2 & 0x3ff)); + RTUNICP ucFolded = RTUniCpToUpper(uc); + if (uc != ucFolded && ucFolded >= 0x10000) /* we don't support shrinking the string */ + { + uc -= 0x10000; + *pwc++ = 0xd800 | (uc >> 10); + *pwc++ = 0xdc00 | (uc & 0x3ff); + } + } + else /* invalid encoding. */ + pwc++; + } + } + return pwsz; +} +RT_EXPORT_SYMBOL(RTUtf16ToUpper); + diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Runtime/common/string/utf-16.cpp virtualbox-4.1.44-dfsg/src/VBox/Runtime/common/string/utf-16.cpp --- virtualbox-4.1.12-dfsg/src/VBox/Runtime/common/string/utf-16.cpp 2012-04-02 13:29:01.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Runtime/common/string/utf-16.cpp 2015-11-11 15:09:04.000000000 +0000 @@ -38,6 +38,80 @@ #include "internal/string.h" +/** + * Get get length in code points of an UTF-16 encoded string, validating the + * string while doing so. + * + * @returns IPRT status code. + * @param pwsz Pointer to the UTF-16 string. + * @param cwc The max length of the string in UTF-16 units. Use + * RTSTR_MAX if all of the string is to be examined. + * @param pcuc Where to store the length in unicode code points. + * @param pcwcActual Where to store the actual size of the UTF-16 string + * on success. Optional. + */ +static int rtUtf16Length(PCRTUTF16 pwsz, size_t cwc, size_t *pcuc, size_t *pcwcActual) +{ + PCRTUTF16 pwszStart = pwsz; + size_t cCodePoints = 0; + while (cwc > 0) + { + RTUTF16 wc = *pwsz; + if (!wc) + break; + if (wc < 0xd800 || wc > 0xdfff) + { + cCodePoints++; + pwsz++; + cwc--; + } + /* Surrogate pair: */ + else if (wc >= 0xdc00) + { + RTStrAssertMsgFailed(("Lone UTF-16 trail surrogate: %#x (%.*Rhxs)\n", wc, RT_MIN(cwc * 2, 10), pwsz)); + return VERR_INVALID_UTF16_ENCODING; + } + else if (cwc < 2) + { + RTStrAssertMsgFailed(("Lone UTF-16 lead surrogate: %#x\n", wc)); + return VERR_INVALID_UTF16_ENCODING; + } + else + { + RTUTF16 wcTrail = pwsz[1]; + if (wcTrail < 0xdc00 || wcTrail > 0xdfff) + { + RTStrAssertMsgFailed(("Invalid UTF-16 trail surrogate: %#x (lead %#x)\n", wcTrail, wc)); + return VERR_INVALID_UTF16_ENCODING; + } + + cCodePoints++; + pwsz += 2; + cwc -= 2; + } + } + + /* done */ + *pcuc = cCodePoints; + if (pcwcActual) + *pcwcActual = pwsz - pwszStart; + return VINF_SUCCESS; +} + + +RTDECL(PRTUTF16) RTUtf16AllocTag(size_t cb, const char *pszTag) +{ + if (cb > sizeof(RTUTF16)) + cb = RT_ALIGN_Z(cb, sizeof(RTUTF16)); + else + cb = sizeof(RTUTF16); + PRTUTF16 pwsz = (PRTUTF16)RTMemAllocTag(cb, pszTag); + if (pwsz) + *pwsz = '\0'; + return pwsz; +} +RT_EXPORT_SYMBOL(RTUtf16AllocTag); + RTDECL(void) RTUtf16Free(PRTUTF16 pwszString) { @@ -110,143 +184,53 @@ RT_EXPORT_SYMBOL(RTUtf16Cmp); -RTDECL(int) RTUtf16ICmp(register PCRTUTF16 pwsz1, register PCRTUTF16 pwsz2) +RTDECL(int) RTUtf16ValidateEncoding(PCRTUTF16 pwsz) { - if (pwsz1 == pwsz2) - return 0; - if (!pwsz1) - return -1; - if (!pwsz2) - return 1; - - PCRTUTF16 pwsz1Start = pwsz1; /* keep it around in case we have to backtrack on a surrogate pair */ - for (;;) - { - register RTUTF16 wc1 = *pwsz1; - register RTUTF16 wc2 = *pwsz2; - register int iDiff = wc1 - wc2; - if (iDiff) - { - /* unless they are *both* surrogate pairs, there is no chance they'll be identical. */ - if ( wc1 < 0xd800 - || wc2 < 0xd800 - || wc1 > 0xdfff - || wc2 > 0xdfff) - { - /* simple UCS-2 char */ - iDiff = RTUniCpToUpper(wc1) - RTUniCpToUpper(wc2); - if (iDiff) - iDiff = RTUniCpToLower(wc1) - RTUniCpToLower(wc2); - } - else - { - /* a damned pair */ - RTUNICP uc1; - RTUNICP uc2; - if (wc1 >= 0xdc00) - { - if (pwsz1Start == pwsz1) - return iDiff; - uc1 = pwsz1[-1]; - if (uc1 < 0xd800 || uc1 >= 0xdc00) - return iDiff; - uc1 = 0x10000 + (((uc1 & 0x3ff) << 10) | (wc1 & 0x3ff)); - uc2 = 0x10000 + (((pwsz2[-1] & 0x3ff) << 10) | (wc2 & 0x3ff)); - } - else - { - uc1 = *++pwsz1; - if (uc1 < 0xdc00 || uc1 >= 0xe000) - return iDiff; - uc1 = 0x10000 + (((wc1 & 0x3ff) << 10) | (uc1 & 0x3ff)); - uc2 = 0x10000 + (((wc2 & 0x3ff) << 10) | (*++pwsz2 & 0x3ff)); - } - iDiff = RTUniCpToUpper(uc1) - RTUniCpToUpper(uc2); - if (iDiff) - iDiff = RTUniCpToLower(uc1) - RTUniCpToLower(uc2); /* serious paranoia! */ - } - if (iDiff) - return iDiff; - } - if (!wc1) - return 0; - pwsz1++; - pwsz2++; - } + return RTUtf16ValidateEncodingEx(pwsz, RTSTR_MAX, 0); } -RT_EXPORT_SYMBOL(RTUtf16ICmp); +RT_EXPORT_SYMBOL(RTUtf16ValidateEncoding); -RTDECL(PRTUTF16) RTUtf16ToLower(PRTUTF16 pwsz) +RTDECL(int) RTUtf16ValidateEncodingEx(PCRTUTF16 pwsz, size_t cwc, uint32_t fFlags) { - PRTUTF16 pwc = pwsz; - for (;;) + AssertReturn(!(fFlags & ~(RTSTR_VALIDATE_ENCODING_ZERO_TERMINATED | RTSTR_VALIDATE_ENCODING_EXACT_LENGTH)), + VERR_INVALID_PARAMETER); + AssertPtr(pwsz); + + /* + * Use rtUtf16Length for the job. + */ + size_t cwcActual = 0; /* Shut up cc1plus. */ + size_t cCpsIgnored; + int rc = rtUtf16Length(pwsz, cwc, &cCpsIgnored, &cwcActual); + if (RT_SUCCESS(rc)) { - RTUTF16 wc = *pwc; - if (!wc) - break; - if (wc < 0xd800 || wc >= 0xdc00) - { - RTUNICP ucFolded = RTUniCpToLower(wc); - if (ucFolded < 0x10000) - *pwc++ = RTUniCpToLower(wc); - } - else + if (fFlags & RTSTR_VALIDATE_ENCODING_EXACT_LENGTH) { - /* surrogate */ - RTUTF16 wc2 = pwc[1]; - if (wc2 >= 0xdc00 && wc2 <= 0xdfff) - { - RTUNICP uc = 0x10000 + (((wc & 0x3ff) << 10) | (wc2 & 0x3ff)); - RTUNICP ucFolded = RTUniCpToLower(uc); - if (uc != ucFolded && ucFolded >= 0x10000) /* we don't support shrinking the string */ - { - uc -= 0x10000; - *pwc++ = 0xd800 | (uc >> 10); - *pwc++ = 0xdc00 | (uc & 0x3ff); - } - } - else /* invalid encoding. */ - pwc++; + if (fFlags & RTSTR_VALIDATE_ENCODING_ZERO_TERMINATED) + cwcActual++; + if (cwcActual == cwc) + rc = VINF_SUCCESS; + else if (cwcActual < cwc) + rc = VERR_BUFFER_UNDERFLOW; + else + rc = VERR_BUFFER_OVERFLOW; } + else if ( (fFlags & RTSTR_VALIDATE_ENCODING_ZERO_TERMINATED) + && cwcActual >= cwc) + rc = VERR_BUFFER_OVERFLOW; } - return pwsz; + return rc; } -RT_EXPORT_SYMBOL(RTUtf16ToLower); +RT_EXPORT_SYMBOL(RTUtf16ValidateEncodingEx); -RTDECL(PRTUTF16) RTUtf16ToUpper(PRTUTF16 pwsz) +RTDECL(bool) RTUtf16IsValidEncoding(PCRTUTF16 pwsz) { - PRTUTF16 pwc = pwsz; - for (;;) - { - RTUTF16 wc = *pwc; - if (!wc) - break; - if (wc < 0xd800 || wc >= 0xdc00) - *pwc++ = RTUniCpToUpper(wc); - else - { - /* surrogate */ - RTUTF16 wc2 = pwc[1]; - if (wc2 >= 0xdc00 && wc2 <= 0xdfff) - { - RTUNICP uc = 0x10000 + (((wc & 0x3ff) << 10) | (wc2 & 0x3ff)); - RTUNICP ucFolded = RTUniCpToUpper(uc); - if (uc != ucFolded && ucFolded >= 0x10000) /* we don't support shrinking the string */ - { - uc -= 0x10000; - *pwc++ = 0xd800 | (uc >> 10); - *pwc++ = 0xdc00 | (uc & 0x3ff); - } - } - else /* invalid encoding. */ - pwc++; - } - } - return pwsz; + int rc = RTUtf16ValidateEncodingEx(pwsz, RTSTR_MAX, 0); + return RT_SUCCESS(rc); } -RT_EXPORT_SYMBOL(RTUtf16ToUpper); +RT_EXPORT_SYMBOL(RTUtf16IsValidEncoding); /** @@ -644,442 +628,3 @@ } RT_EXPORT_SYMBOL(RTUtf16PutCpInternal); - -/** - * Validate the UTF-16 encoding and calculates the length of a Latin1 encoding. - * - * @returns iprt status code. - * @param pwsz The UTF-16 string. - * @param cwc The max length of the UTF-16 string to consider. - * @param pcch Where to store the length (excluding '\\0') of the Latin1 string. (cch == cb, btw) - */ -static int rtUtf16CalcLatin1Length(PCRTUTF16 pwsz, size_t cwc, size_t *pcch) -{ - int rc = VINF_SUCCESS; - size_t cch = 0; - while (cwc > 0) - { - RTUTF16 wc = *pwsz++; cwc--; - if (!wc) - break; - else if (RT_LIKELY(wc < 0x100)) - ++cch; - else - { - if (wc < 0xd800 || wc > 0xdfff) - { - if (wc >= 0xfffe) - { - RTStrAssertMsgFailed(("endian indicator! wc=%#x\n", wc)); - rc = VERR_CODE_POINT_ENDIAN_INDICATOR; - break; - } - } - else - { - if (wc >= 0xdc00) - { - RTStrAssertMsgFailed(("Wrong 1st char in surrogate! wc=%#x\n", wc)); - rc = VERR_INVALID_UTF16_ENCODING; - break; - } - if (cwc <= 0) - { - RTStrAssertMsgFailed(("Invalid length! wc=%#x\n", wc)); - rc = VERR_INVALID_UTF16_ENCODING; - break; - } - wc = *pwsz++; cwc--; - if (wc < 0xdc00 || wc > 0xdfff) - { - RTStrAssertMsgFailed(("Wrong 2nd char in surrogate! wc=%#x\n", wc)); - rc = VERR_INVALID_UTF16_ENCODING; - break; - } - } - - rc = VERR_NO_TRANSLATION; - break; - } - } - - /* done */ - *pcch = cch; - return rc; -} - - -/** - * Recodes an valid UTF-16 string as Latin1. - * - * @returns iprt status code. - * @param pwsz The UTF-16 string. - * @param cwc The number of RTUTF16 characters to process from pwsz. The recoding - * will stop when cwc or '\\0' is reached. - * @param psz Where to store the Latin1 string. - * @param cch The size of the Latin1 buffer, excluding the terminator. - */ -static int rtUtf16RecodeAsLatin1(PCRTUTF16 pwsz, size_t cwc, char *psz, size_t cch) -{ - unsigned char *pch = (unsigned char *)psz; - int rc = VINF_SUCCESS; - while (cwc > 0) - { - RTUTF16 wc = *pwsz++; cwc--; - if (!wc) - break; - if (RT_LIKELY(wc < 0x100)) - { - if (RT_UNLIKELY(cch < 1)) - { - RTStrAssertMsgFailed(("Buffer overflow! 1\n")); - rc = VERR_BUFFER_OVERFLOW; - break; - } - cch--; - *pch++ = (unsigned char)wc; - } - else - { - if (wc < 0xd800 || wc > 0xdfff) - { - if (wc >= 0xfffe) - { - RTStrAssertMsgFailed(("endian indicator! wc=%#x\n", wc)); - rc = VERR_CODE_POINT_ENDIAN_INDICATOR; - break; - } - } - else - { - if (wc >= 0xdc00) - { - RTStrAssertMsgFailed(("Wrong 1st char in surrogate! wc=%#x\n", wc)); - rc = VERR_INVALID_UTF16_ENCODING; - break; - } - if (cwc <= 0) - { - RTStrAssertMsgFailed(("Invalid length! wc=%#x\n", wc)); - rc = VERR_INVALID_UTF16_ENCODING; - break; - } - RTUTF16 wc2 = *pwsz++; cwc--; - if (wc2 < 0xdc00 || wc2 > 0xdfff) - { - RTStrAssertMsgFailed(("Wrong 2nd char in surrogate! wc=%#x\n", wc)); - rc = VERR_INVALID_UTF16_ENCODING; - break; - } - } - - rc = VERR_NO_TRANSLATION; - break; - } - } - - /* done */ - *pch = '\0'; - return rc; -} - - -RTDECL(int) RTUtf16ToLatin1Tag(PCRTUTF16 pwszString, char **ppszString, const char *pszTag) -{ - /* - * Validate input. - */ - Assert(VALID_PTR(ppszString)); - Assert(VALID_PTR(pwszString)); - *ppszString = NULL; - - /* - * Validate the UTF-16 string and calculate the length of the UTF-8 encoding of it. - */ - size_t cch; - int rc = rtUtf16CalcLatin1Length(pwszString, RTSTR_MAX, &cch); - if (RT_SUCCESS(rc)) - { - /* - * Allocate buffer and recode it. - */ - char *pszResult = (char *)RTMemAllocTag(cch + 1, pszTag); - if (pszResult) - { - rc = rtUtf16RecodeAsLatin1(pwszString, RTSTR_MAX, pszResult, cch); - if (RT_SUCCESS(rc)) - { - *ppszString = pszResult; - return rc; - } - - RTMemFree(pszResult); - } - else - rc = VERR_NO_STR_MEMORY; - } - return rc; -} -RT_EXPORT_SYMBOL(RTUtf16ToLatin1Tag); - - -RTDECL(int) RTUtf16ToLatin1ExTag(PCRTUTF16 pwszString, size_t cwcString, char **ppsz, size_t cch, size_t *pcch, const char *pszTag) -{ - /* - * Validate input. - */ - AssertPtr(pwszString); - AssertPtr(ppsz); - AssertPtrNull(pcch); - - /* - * Validate the UTF-16 string and calculate the length of the Latin1 encoding of it. - */ - size_t cchResult; - int rc = rtUtf16CalcLatin1Length(pwszString, cwcString, &cchResult); - if (RT_SUCCESS(rc)) - { - if (pcch) - *pcch = cchResult; - - /* - * Check buffer size / Allocate buffer and recode it. - */ - bool fShouldFree; - char *pszResult; - if (cch > 0 && *ppsz) - { - fShouldFree = false; - if (cch <= cchResult) - return VERR_BUFFER_OVERFLOW; - pszResult = *ppsz; - } - else - { - *ppsz = NULL; - fShouldFree = true; - cch = RT_MAX(cch, cchResult + 1); - pszResult = (char *)RTMemAllocTag(cch, pszTag); - } - if (pszResult) - { - rc = rtUtf16RecodeAsLatin1(pwszString, cwcString, pszResult, cch - 1); - if (RT_SUCCESS(rc)) - { - *ppsz = pszResult; - return rc; - } - - if (fShouldFree) - RTMemFree(pszResult); - } - else - rc = VERR_NO_STR_MEMORY; - } - return rc; -} -RT_EXPORT_SYMBOL(RTUtf16ToLatin1ExTag); - - -RTDECL(size_t) RTUtf16CalcLatin1Len(PCRTUTF16 pwsz) -{ - size_t cch; - int rc = rtUtf16CalcLatin1Length(pwsz, RTSTR_MAX, &cch); - return RT_SUCCESS(rc) ? cch : 0; -} -RT_EXPORT_SYMBOL(RTUtf16CalcLatin1Len); - - -RTDECL(int) RTUtf16CalcLatin1LenEx(PCRTUTF16 pwsz, size_t cwc, size_t *pcch) -{ - size_t cch; - int rc = rtUtf16CalcLatin1Length(pwsz, cwc, &cch); - if (pcch) - *pcch = RT_SUCCESS(rc) ? cch : ~(size_t)0; - return rc; -} -RT_EXPORT_SYMBOL(RTUtf16CalcLatin1LenEx); - - -/** - * Calculates the UTF-16 length of a Latin1 string. In fact this is just the - * original length, but the function saves us nasty comments to that effect - * all over the place. - * - * @returns IPRT status code. - * @param psz Pointer to the Latin1 string. - * @param cch The max length of the string. (btw cch = cb) - * Use RTSTR_MAX if all of the string is to be examined.s - * @param pcwc Where to store the length of the UTF-16 string as a number of RTUTF16 characters. - */ -static int rtLatin1CalcUtf16Length(const char *psz, size_t cch, size_t *pcwc) -{ - *pcwc = RTStrNLen(psz, cch); - return VINF_SUCCESS; -} - - -/** - * Recodes a Latin1 string as UTF-16. This is just a case of expanding it to - * sixteen bits, as Unicode is a superset of Latin1. - * - * Since we know the input is valid, we do *not* perform length checks. - * - * @returns iprt status code. - * @param psz The Latin1 string to recode. - * @param cch The number of chars (the type char, so bytes if you like) to process of the Latin1 string. - * The recoding will stop when cch or '\\0' is reached. Pass RTSTR_MAX to process up to '\\0'. - * @param pwsz Where to store the UTF-16 string. - * @param cwc The number of RTUTF16 items the pwsz buffer can hold, excluding the terminator ('\\0'). - */ -static int rtLatin1RecodeAsUtf16(const char *psz, size_t cch, PRTUTF16 pwsz, size_t cwc) -{ - int rc = VINF_SUCCESS; - const unsigned char *puch = (const unsigned char *)psz; - PRTUTF16 pwc = pwsz; - while (cch-- > 0) - { - /* read the next char and check for terminator. */ - const unsigned char uch = *puch; - if (!uch) - break; - - /* check for output overflow */ - if (RT_UNLIKELY(cwc < 1)) - { - rc = VERR_BUFFER_OVERFLOW; - break; - } - - /* expand the code point */ - *pwc++ = uch; - cwc--; - puch++; - } - - /* done */ - *pwc = '\0'; - return rc; -} - - -RTDECL(int) RTLatin1ToUtf16Tag(const char *pszString, PRTUTF16 *ppwszString, const char *pszTag) -{ - /* - * Validate input. - */ - Assert(VALID_PTR(ppwszString)); - Assert(VALID_PTR(pszString)); - *ppwszString = NULL; - - /* - * Validate the input and calculate the length of the UTF-16 string. - */ - size_t cwc; - int rc = rtLatin1CalcUtf16Length(pszString, RTSTR_MAX, &cwc); - if (RT_SUCCESS(rc)) - { - /* - * Allocate buffer. - */ - PRTUTF16 pwsz = (PRTUTF16)RTMemAllocTag((cwc + 1) * sizeof(RTUTF16), pszTag); - if (pwsz) - { - /* - * Encode the UTF-16 string. - */ - rc = rtLatin1RecodeAsUtf16(pszString, RTSTR_MAX, pwsz, cwc); - if (RT_SUCCESS(rc)) - { - *ppwszString = pwsz; - return rc; - } - RTMemFree(pwsz); - } - else - rc = VERR_NO_UTF16_MEMORY; - } - return rc; -} -RT_EXPORT_SYMBOL(RTLatin1ToUtf16Tag); - - -RTDECL(int) RTLatin1ToUtf16ExTag(const char *pszString, size_t cchString, - PRTUTF16 *ppwsz, size_t cwc, size_t *pcwc, const char *pszTag) -{ - /* - * Validate input. - */ - Assert(VALID_PTR(pszString)); - Assert(VALID_PTR(ppwsz)); - Assert(!pcwc || VALID_PTR(pcwc)); - - /* - * Validate the input and calculate the length of the UTF-16 string. - */ - size_t cwcResult; - int rc = rtLatin1CalcUtf16Length(pszString, cchString, &cwcResult); - if (RT_SUCCESS(rc)) - { - if (pcwc) - *pcwc = cwcResult; - - /* - * Check buffer size / Allocate buffer. - */ - bool fShouldFree; - PRTUTF16 pwszResult; - if (cwc > 0 && *ppwsz) - { - fShouldFree = false; - if (cwc <= cwcResult) - return VERR_BUFFER_OVERFLOW; - pwszResult = *ppwsz; - } - else - { - *ppwsz = NULL; - fShouldFree = true; - cwc = RT_MAX(cwcResult + 1, cwc); - pwszResult = (PRTUTF16)RTMemAllocTag(cwc * sizeof(RTUTF16), pszTag); - } - if (pwszResult) - { - /* - * Encode the UTF-16 string. - */ - rc = rtLatin1RecodeAsUtf16(pszString, cchString, pwszResult, cwc - 1); - if (RT_SUCCESS(rc)) - { - *ppwsz = pwszResult; - return rc; - } - if (fShouldFree) - RTMemFree(pwszResult); - } - else - rc = VERR_NO_UTF16_MEMORY; - } - return rc; -} -RT_EXPORT_SYMBOL(RTLatin1ToUtf16ExTag); - - -RTDECL(size_t) RTLatin1CalcUtf16Len(const char *psz) -{ - size_t cwc; - int rc = rtLatin1CalcUtf16Length(psz, RTSTR_MAX, &cwc); - return RT_SUCCESS(rc) ? cwc : 0; -} -RT_EXPORT_SYMBOL(RTLatin1CalcUtf16Len); - - -RTDECL(int) RTLatin1CalcUtf16LenEx(const char *psz, size_t cch, size_t *pcwc) -{ - size_t cwc; - int rc = rtLatin1CalcUtf16Length(psz, cch, &cwc); - if (pcwc) - *pcwc = RT_SUCCESS(rc) ? cwc : ~(size_t)0; - return rc; -} -RT_EXPORT_SYMBOL(RTLatin1CalcUtf16LenEx); diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Runtime/common/string/utf-16-latin-1.cpp virtualbox-4.1.44-dfsg/src/VBox/Runtime/common/string/utf-16-latin-1.cpp --- virtualbox-4.1.12-dfsg/src/VBox/Runtime/common/string/utf-16-latin-1.cpp 1970-01-01 00:00:00.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Runtime/common/string/utf-16-latin-1.cpp 2015-11-11 15:09:04.000000000 +0000 @@ -0,0 +1,479 @@ +/* $Id: utf-16-latin-1.cpp $ */ +/** @file + * IPRT - Latin-1 and UTF-16. + */ + +/* + * Copyright (C) 2006-2014 Oracle Corporation + * + * This file is part of VirtualBox Open Source Edition (OSE), as + * available from http://www.virtualbox.org. This file is free software; + * you can redistribute it and/or modify it under the terms of the GNU + * General Public License (GPL) as published by the Free Software + * Foundation, in version 2 as it comes in the "COPYING" file of the + * VirtualBox OSE distribution. VirtualBox OSE is distributed in the + * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind. + * + * The contents of this file may alternatively be used under the terms + * of the Common Development and Distribution License Version 1.0 + * (CDDL) only, as it comes in the "COPYING.CDDL" file of the + * VirtualBox OSE distribution, in which case the provisions of the + * CDDL are applicable instead of those of the GPL. + * + * You may elect to license modified versions of this file under the + * terms and conditions of either the GPL or the CDDL or both. + */ + + +/******************************************************************************* +* Header Files * +*******************************************************************************/ +#include +#include "internal/iprt.h" + +#include +#include +#include +#include +#include "internal/string.h" + + +/** + * Validate the UTF-16 encoding and calculates the length of a Latin1 encoding. + * + * @returns iprt status code. + * @param pwsz The UTF-16 string. + * @param cwc The max length of the UTF-16 string to consider. + * @param pcch Where to store the length (excluding '\\0') of the Latin1 string. (cch == cb, btw) + */ +static int rtUtf16CalcLatin1Length(PCRTUTF16 pwsz, size_t cwc, size_t *pcch) +{ + int rc = VINF_SUCCESS; + size_t cch = 0; + while (cwc > 0) + { + RTUTF16 wc = *pwsz++; cwc--; + if (!wc) + break; + else if (RT_LIKELY(wc < 0x100)) + ++cch; + else + { + if (wc < 0xd800 || wc > 0xdfff) + { + if (wc >= 0xfffe) + { + RTStrAssertMsgFailed(("endian indicator! wc=%#x\n", wc)); + rc = VERR_CODE_POINT_ENDIAN_INDICATOR; + break; + } + } + else + { + if (wc >= 0xdc00) + { + RTStrAssertMsgFailed(("Wrong 1st char in surrogate! wc=%#x\n", wc)); + rc = VERR_INVALID_UTF16_ENCODING; + break; + } + if (cwc <= 0) + { + RTStrAssertMsgFailed(("Invalid length! wc=%#x\n", wc)); + rc = VERR_INVALID_UTF16_ENCODING; + break; + } + wc = *pwsz++; cwc--; + if (wc < 0xdc00 || wc > 0xdfff) + { + RTStrAssertMsgFailed(("Wrong 2nd char in surrogate! wc=%#x\n", wc)); + rc = VERR_INVALID_UTF16_ENCODING; + break; + } + } + + rc = VERR_NO_TRANSLATION; + break; + } + } + + /* done */ + *pcch = cch; + return rc; +} + + +/** + * Recodes an valid UTF-16 string as Latin1. + * + * @returns iprt status code. + * @param pwsz The UTF-16 string. + * @param cwc The number of RTUTF16 characters to process from pwsz. The recoding + * will stop when cwc or '\\0' is reached. + * @param psz Where to store the Latin1 string. + * @param cch The size of the Latin1 buffer, excluding the terminator. + */ +static int rtUtf16RecodeAsLatin1(PCRTUTF16 pwsz, size_t cwc, char *psz, size_t cch) +{ + unsigned char *pch = (unsigned char *)psz; + int rc = VINF_SUCCESS; + while (cwc > 0) + { + RTUTF16 wc = *pwsz++; cwc--; + if (!wc) + break; + if (RT_LIKELY(wc < 0x100)) + { + if (RT_UNLIKELY(cch < 1)) + { + RTStrAssertMsgFailed(("Buffer overflow! 1\n")); + rc = VERR_BUFFER_OVERFLOW; + break; + } + cch--; + *pch++ = (unsigned char)wc; + } + else + { + if (wc < 0xd800 || wc > 0xdfff) + { + if (wc >= 0xfffe) + { + RTStrAssertMsgFailed(("endian indicator! wc=%#x\n", wc)); + rc = VERR_CODE_POINT_ENDIAN_INDICATOR; + break; + } + } + else + { + if (wc >= 0xdc00) + { + RTStrAssertMsgFailed(("Wrong 1st char in surrogate! wc=%#x\n", wc)); + rc = VERR_INVALID_UTF16_ENCODING; + break; + } + if (cwc <= 0) + { + RTStrAssertMsgFailed(("Invalid length! wc=%#x\n", wc)); + rc = VERR_INVALID_UTF16_ENCODING; + break; + } + RTUTF16 wc2 = *pwsz++; cwc--; + if (wc2 < 0xdc00 || wc2 > 0xdfff) + { + RTStrAssertMsgFailed(("Wrong 2nd char in surrogate! wc=%#x\n", wc)); + rc = VERR_INVALID_UTF16_ENCODING; + break; + } + } + + rc = VERR_NO_TRANSLATION; + break; + } + } + + /* done */ + *pch = '\0'; + return rc; +} + + +RTDECL(int) RTUtf16ToLatin1Tag(PCRTUTF16 pwszString, char **ppszString, const char *pszTag) +{ + /* + * Validate input. + */ + Assert(VALID_PTR(ppszString)); + Assert(VALID_PTR(pwszString)); + *ppszString = NULL; + + /* + * Validate the UTF-16 string and calculate the length of the UTF-8 encoding of it. + */ + size_t cch; + int rc = rtUtf16CalcLatin1Length(pwszString, RTSTR_MAX, &cch); + if (RT_SUCCESS(rc)) + { + /* + * Allocate buffer and recode it. + */ + char *pszResult = (char *)RTMemAllocTag(cch + 1, pszTag); + if (pszResult) + { + rc = rtUtf16RecodeAsLatin1(pwszString, RTSTR_MAX, pszResult, cch); + if (RT_SUCCESS(rc)) + { + *ppszString = pszResult; + return rc; + } + + RTMemFree(pszResult); + } + else + rc = VERR_NO_STR_MEMORY; + } + return rc; +} +RT_EXPORT_SYMBOL(RTUtf16ToLatin1Tag); + + +RTDECL(int) RTUtf16ToLatin1ExTag(PCRTUTF16 pwszString, size_t cwcString, char **ppsz, size_t cch, size_t *pcch, const char *pszTag) +{ + /* + * Validate input. + */ + AssertPtr(pwszString); + AssertPtr(ppsz); + AssertPtrNull(pcch); + + /* + * Validate the UTF-16 string and calculate the length of the Latin1 encoding of it. + */ + size_t cchResult; + int rc = rtUtf16CalcLatin1Length(pwszString, cwcString, &cchResult); + if (RT_SUCCESS(rc)) + { + if (pcch) + *pcch = cchResult; + + /* + * Check buffer size / Allocate buffer and recode it. + */ + bool fShouldFree; + char *pszResult; + if (cch > 0 && *ppsz) + { + fShouldFree = false; + if (cch <= cchResult) + return VERR_BUFFER_OVERFLOW; + pszResult = *ppsz; + } + else + { + *ppsz = NULL; + fShouldFree = true; + cch = RT_MAX(cch, cchResult + 1); + pszResult = (char *)RTMemAllocTag(cch, pszTag); + } + if (pszResult) + { + rc = rtUtf16RecodeAsLatin1(pwszString, cwcString, pszResult, cch - 1); + if (RT_SUCCESS(rc)) + { + *ppsz = pszResult; + return rc; + } + + if (fShouldFree) + RTMemFree(pszResult); + } + else + rc = VERR_NO_STR_MEMORY; + } + return rc; +} +RT_EXPORT_SYMBOL(RTUtf16ToLatin1ExTag); + + +RTDECL(size_t) RTUtf16CalcLatin1Len(PCRTUTF16 pwsz) +{ + size_t cch; + int rc = rtUtf16CalcLatin1Length(pwsz, RTSTR_MAX, &cch); + return RT_SUCCESS(rc) ? cch : 0; +} +RT_EXPORT_SYMBOL(RTUtf16CalcLatin1Len); + + +RTDECL(int) RTUtf16CalcLatin1LenEx(PCRTUTF16 pwsz, size_t cwc, size_t *pcch) +{ + size_t cch; + int rc = rtUtf16CalcLatin1Length(pwsz, cwc, &cch); + if (pcch) + *pcch = RT_SUCCESS(rc) ? cch : ~(size_t)0; + return rc; +} +RT_EXPORT_SYMBOL(RTUtf16CalcLatin1LenEx); + + +/** + * Calculates the UTF-16 length of a Latin1 string. In fact this is just the + * original length, but the function saves us nasty comments to that effect + * all over the place. + * + * @returns IPRT status code. + * @param psz Pointer to the Latin1 string. + * @param cch The max length of the string. (btw cch = cb) + * Use RTSTR_MAX if all of the string is to be examined.s + * @param pcwc Where to store the length of the UTF-16 string as a number of RTUTF16 characters. + */ +static int rtLatin1CalcUtf16Length(const char *psz, size_t cch, size_t *pcwc) +{ + *pcwc = RTStrNLen(psz, cch); + return VINF_SUCCESS; +} + + +/** + * Recodes a Latin1 string as UTF-16. This is just a case of expanding it to + * sixteen bits, as Unicode is a superset of Latin1. + * + * Since we know the input is valid, we do *not* perform length checks. + * + * @returns iprt status code. + * @param psz The Latin1 string to recode. + * @param cch The number of chars (the type char, so bytes if you like) to process of the Latin1 string. + * The recoding will stop when cch or '\\0' is reached. Pass RTSTR_MAX to process up to '\\0'. + * @param pwsz Where to store the UTF-16 string. + * @param cwc The number of RTUTF16 items the pwsz buffer can hold, excluding the terminator ('\\0'). + */ +static int rtLatin1RecodeAsUtf16(const char *psz, size_t cch, PRTUTF16 pwsz, size_t cwc) +{ + int rc = VINF_SUCCESS; + const unsigned char *puch = (const unsigned char *)psz; + PRTUTF16 pwc = pwsz; + while (cch-- > 0) + { + /* read the next char and check for terminator. */ + const unsigned char uch = *puch; + if (!uch) + break; + + /* check for output overflow */ + if (RT_UNLIKELY(cwc < 1)) + { + rc = VERR_BUFFER_OVERFLOW; + break; + } + + /* expand the code point */ + *pwc++ = uch; + cwc--; + puch++; + } + + /* done */ + *pwc = '\0'; + return rc; +} + + +RTDECL(int) RTLatin1ToUtf16Tag(const char *pszString, PRTUTF16 *ppwszString, const char *pszTag) +{ + /* + * Validate input. + */ + Assert(VALID_PTR(ppwszString)); + Assert(VALID_PTR(pszString)); + *ppwszString = NULL; + + /* + * Validate the input and calculate the length of the UTF-16 string. + */ + size_t cwc; + int rc = rtLatin1CalcUtf16Length(pszString, RTSTR_MAX, &cwc); + if (RT_SUCCESS(rc)) + { + /* + * Allocate buffer. + */ + PRTUTF16 pwsz = (PRTUTF16)RTMemAllocTag((cwc + 1) * sizeof(RTUTF16), pszTag); + if (pwsz) + { + /* + * Encode the UTF-16 string. + */ + rc = rtLatin1RecodeAsUtf16(pszString, RTSTR_MAX, pwsz, cwc); + if (RT_SUCCESS(rc)) + { + *ppwszString = pwsz; + return rc; + } + RTMemFree(pwsz); + } + else + rc = VERR_NO_UTF16_MEMORY; + } + return rc; +} +RT_EXPORT_SYMBOL(RTLatin1ToUtf16Tag); + + +RTDECL(int) RTLatin1ToUtf16ExTag(const char *pszString, size_t cchString, + PRTUTF16 *ppwsz, size_t cwc, size_t *pcwc, const char *pszTag) +{ + /* + * Validate input. + */ + Assert(VALID_PTR(pszString)); + Assert(VALID_PTR(ppwsz)); + Assert(!pcwc || VALID_PTR(pcwc)); + + /* + * Validate the input and calculate the length of the UTF-16 string. + */ + size_t cwcResult; + int rc = rtLatin1CalcUtf16Length(pszString, cchString, &cwcResult); + if (RT_SUCCESS(rc)) + { + if (pcwc) + *pcwc = cwcResult; + + /* + * Check buffer size / Allocate buffer. + */ + bool fShouldFree; + PRTUTF16 pwszResult; + if (cwc > 0 && *ppwsz) + { + fShouldFree = false; + if (cwc <= cwcResult) + return VERR_BUFFER_OVERFLOW; + pwszResult = *ppwsz; + } + else + { + *ppwsz = NULL; + fShouldFree = true; + cwc = RT_MAX(cwcResult + 1, cwc); + pwszResult = (PRTUTF16)RTMemAllocTag(cwc * sizeof(RTUTF16), pszTag); + } + if (pwszResult) + { + /* + * Encode the UTF-16 string. + */ + rc = rtLatin1RecodeAsUtf16(pszString, cchString, pwszResult, cwc - 1); + if (RT_SUCCESS(rc)) + { + *ppwsz = pwszResult; + return rc; + } + if (fShouldFree) + RTMemFree(pwszResult); + } + else + rc = VERR_NO_UTF16_MEMORY; + } + return rc; +} +RT_EXPORT_SYMBOL(RTLatin1ToUtf16ExTag); + + +RTDECL(size_t) RTLatin1CalcUtf16Len(const char *psz) +{ + size_t cwc; + int rc = rtLatin1CalcUtf16Length(psz, RTSTR_MAX, &cwc); + return RT_SUCCESS(rc) ? cwc : 0; +} +RT_EXPORT_SYMBOL(RTLatin1CalcUtf16Len); + + +RTDECL(int) RTLatin1CalcUtf16LenEx(const char *psz, size_t cch, size_t *pcwc) +{ + size_t cwc; + int rc = rtLatin1CalcUtf16Length(psz, cch, &cwc); + if (pcwc) + *pcwc = RT_SUCCESS(rc) ? cwc : ~(size_t)0; + return rc; +} +RT_EXPORT_SYMBOL(RTLatin1CalcUtf16LenEx); + diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Runtime/common/string/utf-8-case2.cpp virtualbox-4.1.44-dfsg/src/VBox/Runtime/common/string/utf-8-case2.cpp --- virtualbox-4.1.12-dfsg/src/VBox/Runtime/common/string/utf-8-case2.cpp 1970-01-01 00:00:00.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Runtime/common/string/utf-8-case2.cpp 2015-11-11 15:09:04.000000000 +0000 @@ -0,0 +1,118 @@ +/* $Id: utf-8-case2.cpp $ */ +/** @file + * IPRT - UTF-8 Case Sensitivity and Folding, Part 2 (requires unidata-flags.cpp). + */ + +/* + * Copyright (C) 2006-2010 Oracle Corporation + * + * This file is part of VirtualBox Open Source Edition (OSE), as + * available from http://www.virtualbox.org. This file is free software; + * you can redistribute it and/or modify it under the terms of the GNU + * General Public License (GPL) as published by the Free Software + * Foundation, in version 2 as it comes in the "COPYING" file of the + * VirtualBox OSE distribution. VirtualBox OSE is distributed in the + * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind. + * + * The contents of this file may alternatively be used under the terms + * of the Common Development and Distribution License Version 1.0 + * (CDDL) only, as it comes in the "COPYING.CDDL" file of the + * VirtualBox OSE distribution, in which case the provisions of the + * CDDL are applicable instead of those of the GPL. + * + * You may elect to license modified versions of this file under the + * terms and conditions of either the GPL or the CDDL or both. + */ + + +/******************************************************************************* +* Header Files * +*******************************************************************************/ +#include +#include "internal/iprt.h" + +#include +#include +#include +#include +#include "internal/string.h" + + +RTDECL(bool) RTStrIsCaseFoldable(const char *psz) +{ + /* + * Loop the code points in the string, checking them one by one until we + * find something that can be folded. + */ + RTUNICP uc; + do + { + int rc = RTStrGetCpEx(&psz, &uc); + if (RT_SUCCESS(rc)) + { + if (RTUniCpIsFoldable(uc)) + return true; + } + else + { + /* bad encoding, just skip it quietly (uc == RTUNICP_INVALID (!= 0)). */ + AssertRC(rc); + } + } while (uc != 0); + + return false; +} +RT_EXPORT_SYMBOL(RTStrIsCaseFoldable); + + +RTDECL(bool) RTStrIsUpperCased(const char *psz) +{ + /* + * Check that there are no lower case chars in the string. + */ + RTUNICP uc; + do + { + int rc = RTStrGetCpEx(&psz, &uc); + if (RT_SUCCESS(rc)) + { + if (RTUniCpIsLower(uc)) + return false; + } + else + { + /* bad encoding, just skip it quietly (uc == RTUNICP_INVALID (!= 0)). */ + AssertRC(rc); + } + } while (uc != 0); + + return true; +} +RT_EXPORT_SYMBOL(RTStrIsUpperCased); + + +RTDECL(bool) RTStrIsLowerCased(const char *psz) +{ + /* + * Check that there are no lower case chars in the string. + */ + RTUNICP uc; + do + { + int rc = RTStrGetCpEx(&psz, &uc); + if (RT_SUCCESS(rc)) + { + if (RTUniCpIsUpper(uc)) + return false; + } + else + { + /* bad encoding, just skip it quietly (uc == RTUNICP_INVALID (!= 0)). */ + AssertRC(rc); + } + } while (uc != 0); + + return true; +} +RT_EXPORT_SYMBOL(RTStrIsLowerCased); + diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Runtime/common/string/utf-8-case.cpp virtualbox-4.1.44-dfsg/src/VBox/Runtime/common/string/utf-8-case.cpp --- virtualbox-4.1.12-dfsg/src/VBox/Runtime/common/string/utf-8-case.cpp 2012-04-02 13:29:01.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Runtime/common/string/utf-8-case.cpp 2015-11-11 15:09:04.000000000 +0000 @@ -1,6 +1,6 @@ /* $Id: utf-8-case.cpp $ */ /** @file - * IPRT - UTF-8 Case Sensitivity and Folding. + * IPRT - UTF-8 Case Sensitivity and Folding, Part 1. */ /* @@ -289,8 +289,12 @@ int rc = RTStrGetCpEx(&pszSrc, &uc); if (RT_SUCCESS(rc)) { - uc = RTUniCpToLower(uc); - pszDst = RTStrPutCp(pszDst, uc); + RTUNICP uc2 = RTUniCpToLower(uc); + if (RT_LIKELY( uc2 == uc + || RTUniCpCalcUtf8Len(uc2) == RTUniCpCalcUtf8Len(uc))) + pszDst = RTStrPutCp(pszDst, uc2); + else + pszDst = RTStrPutCp(pszDst, uc); } else { @@ -322,8 +326,12 @@ int rc = RTStrGetCpEx(&pszSrc, &uc); if (RT_SUCCESS(rc)) { - uc = RTUniCpToUpper(uc); - pszDst = RTStrPutCp(pszDst, uc); + RTUNICP uc2 = RTUniCpToUpper(uc); + if (RT_LIKELY( uc2 == uc + || RTUniCpCalcUtf8Len(uc2) == RTUniCpCalcUtf8Len(uc))) + pszDst = RTStrPutCp(pszDst, uc2); + else + pszDst = RTStrPutCp(pszDst, uc); } else { diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Runtime/common/string/utf-8.cpp virtualbox-4.1.44-dfsg/src/VBox/Runtime/common/string/utf-8.cpp --- virtualbox-4.1.12-dfsg/src/VBox/Runtime/common/string/utf-8.cpp 2012-04-02 13:29:01.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Runtime/common/string/utf-8.cpp 2015-11-11 15:09:04.000000000 +0000 @@ -300,7 +300,8 @@ RTDECL(int) RTStrValidateEncodingEx(const char *psz, size_t cch, uint32_t fFlags) { - AssertReturn(!(fFlags & ~(RTSTR_VALIDATE_ENCODING_ZERO_TERMINATED)), VERR_INVALID_PARAMETER); + AssertReturn(!(fFlags & ~(RTSTR_VALIDATE_ENCODING_ZERO_TERMINATED | RTSTR_VALIDATE_ENCODING_EXACT_LENGTH)), + VERR_INVALID_PARAMETER); AssertPtr(psz); /* @@ -311,8 +312,19 @@ int rc = rtUtf8Length(psz, cch, &cCpsIgnored, &cchActual); if (RT_SUCCESS(rc)) { - if ( (fFlags & RTSTR_VALIDATE_ENCODING_ZERO_TERMINATED) - && cchActual >= cch) + if (fFlags & RTSTR_VALIDATE_ENCODING_EXACT_LENGTH) + { + if (fFlags & RTSTR_VALIDATE_ENCODING_ZERO_TERMINATED) + cchActual++; + if (cchActual == cch) + rc = VINF_SUCCESS; + else if (cchActual < cch) + rc = VERR_BUFFER_UNDERFLOW; + else + rc = VERR_BUFFER_OVERFLOW; + } + else if ( (fFlags & RTSTR_VALIDATE_ENCODING_ZERO_TERMINATED) + && cchActual >= cch) rc = VERR_BUFFER_OVERFLOW; } return rc; diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Runtime/common/time/time.cpp virtualbox-4.1.44-dfsg/src/VBox/Runtime/common/time/time.cpp --- virtualbox-4.1.12-dfsg/src/VBox/Runtime/common/time/time.cpp 2012-04-02 13:29:01.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Runtime/common/time/time.cpp 2015-11-11 15:09:05.000000000 +0000 @@ -451,7 +451,7 @@ { unsigned cDaysInMonth = fLeapYear ? g_acDaysInMonthsLeap[pTime->u8Month - 1] - : g_acDaysInMonthsLeap[pTime->u8Month - 1]; + : g_acDaysInMonths[pTime->u8Month - 1]; if (pTime->u8MonthDay <= cDaysInMonth) break; pTime->u8MonthDay -= cDaysInMonth; diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Runtime/common/vfs/vfschain.cpp virtualbox-4.1.44-dfsg/src/VBox/Runtime/common/vfs/vfschain.cpp --- virtualbox-4.1.12-dfsg/src/VBox/Runtime/common/vfs/vfschain.cpp 2012-04-02 13:29:02.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Runtime/common/vfs/vfschain.cpp 2015-11-11 15:09:05.000000000 +0000 @@ -63,13 +63,11 @@ * Initializes the globals via RTOnce. * * @returns IPRT status code - * @param pvUser1 Unused, ignored. - * @param pvUser2 Unused, ignored. + * @param pvUser Unused, ignored. */ -static DECLCALLBACK(int) rtVfsChainElementRegisterInit(void *pvUser1, void *pvUser2) +static DECLCALLBACK(int) rtVfsChainElementRegisterInit(void *pvUser) { - NOREF(pvUser1); - NOREF(pvUser2); + NOREF(pvUser); return RTCritSectInit(&g_rtVfsChainElementCritSect); } @@ -97,7 +95,7 @@ */ if (!fFromCtor) { - rc = RTOnce(&g_rtVfsChainElementInitOnce, rtVfsChainElementRegisterInit, NULL, NULL); + rc = RTOnce(&g_rtVfsChainElementInitOnce, rtVfsChainElementRegisterInit, NULL); if (RT_FAILURE(rc)) return rc; rc = RTCritSectEnter(&g_rtVfsChainElementCritSect); diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Runtime/common/zip/tarvfs.cpp virtualbox-4.1.44-dfsg/src/VBox/Runtime/common/zip/tarvfs.cpp --- virtualbox-4.1.12-dfsg/src/VBox/Runtime/common/zip/tarvfs.cpp 2012-04-02 13:29:02.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Runtime/common/zip/tarvfs.cpp 2015-11-11 15:09:05.000000000 +0000 @@ -366,7 +366,7 @@ { case RTZIPTARTYPE_POSIX: if ( !RT_C_IS_ALNUM(pTar->Common.typeflag) - && !pTar->Common.typeflag == '\0') + && pTar->Common.typeflag != '\0') return VERR_TAR_UNKNOWN_TYPE_FLAG; break; diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Runtime/darwin/RTErrConvertFromDarwin.cpp virtualbox-4.1.44-dfsg/src/VBox/Runtime/darwin/RTErrConvertFromDarwin.cpp --- virtualbox-4.1.12-dfsg/src/VBox/Runtime/darwin/RTErrConvertFromDarwin.cpp 2012-04-02 13:29:02.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Runtime/darwin/RTErrConvertFromDarwin.cpp 2015-11-11 15:09:05.000000000 +0000 @@ -48,7 +48,7 @@ * Mach. */ case KERN_INVALID_ADDRESS: return VERR_INVALID_POINTER; - //case KERN_PROTECTION_FAILURE: + case KERN_PROTECTION_FAILURE: return VERR_PERMISSION_DENIED; //case KERN_NO_SPACE: case KERN_INVALID_ARGUMENT: return VERR_INVALID_PARAMETER; //case KERN_FAILURE: diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Runtime/generic/critsect-generic.cpp virtualbox-4.1.44-dfsg/src/VBox/Runtime/generic/critsect-generic.cpp --- virtualbox-4.1.12-dfsg/src/VBox/Runtime/generic/critsect-generic.cpp 2012-04-02 13:29:02.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Runtime/generic/critsect-generic.cpp 2015-11-11 15:09:06.000000000 +0000 @@ -58,7 +58,11 @@ * Initialize the structure and */ pCritSect->u32Magic = RTCRITSECT_MAGIC; - pCritSect->fFlags = fFlags; +#ifdef IN_RING0 + pCritSect->fFlags = fFlags | RTCRITSECT_FLAGS_RING0; +#else + pCritSect->fFlags = fFlags & ~RTCRITSECT_FLAGS_RING0; +#endif pCritSect->cNestings = 0; pCritSect->cLockers = -1; pCritSect->NativeThreadOwner = NIL_RTNATIVETHREAD; @@ -86,15 +90,22 @@ #endif if (RT_SUCCESS(rc)) { +#ifdef IN_RING0 + rc = RTSemEventCreate(&pCritSect->EventSem); + +#else rc = RTSemEventCreateEx(&pCritSect->EventSem, fFlags & RTCRITSECT_FLAGS_BOOTSTRAP_HACK ? RTSEMEVENT_FLAGS_NO_LOCK_VAL | RTSEMEVENT_FLAGS_BOOTSTRAP_HACK : RTSEMEVENT_FLAGS_NO_LOCK_VAL, NIL_RTLOCKVALCLASS, NULL); +#endif if (RT_SUCCESS(rc)) return VINF_SUCCESS; +#ifdef RTCRITSECT_STRICT RTLockValidatorRecExclDestroy(&pCritSect->pValidatorRec); +#endif } AssertRC(rc); @@ -107,14 +118,14 @@ RTDECL(uint32_t) RTCritSectSetSubClass(PRTCRITSECT pCritSect, uint32_t uSubClass) { -#ifdef RTCRITSECT_STRICT +# ifdef RTCRITSECT_STRICT AssertPtrReturn(pCritSect, RTLOCKVAL_SUB_CLASS_INVALID); AssertReturn(pCritSect->u32Magic == RTCRITSECT_MAGIC, RTLOCKVAL_SUB_CLASS_INVALID); AssertReturn(!(pCritSect->fFlags & RTCRITSECT_FLAGS_NOP), RTLOCKVAL_SUB_CLASS_INVALID); return RTLockValidatorRecExclSetSubClass(pCritSect->pValidatorRec, uSubClass); -#else +# else return RTLOCKVAL_SUB_CLASS_INVALID; -#endif +# endif } @@ -123,6 +134,11 @@ Assert(pCritSect); Assert(pCritSect->u32Magic == RTCRITSECT_MAGIC); /*AssertReturn(pCritSect->u32Magic == RTCRITSECT_MAGIC, VERR_SEM_DESTROYED);*/ +#ifdef IN_RING0 + Assert(pCritSect->fFlags & RTCRITSECT_FLAGS_RING0); +#else + Assert(!(pCritSect->fFlags & RTCRITSECT_FLAGS_RING0)); +#endif /* * Return straight away if NOP. @@ -195,6 +211,11 @@ { AssertPtr(pCritSect); AssertReturn(pCritSect->u32Magic == RTCRITSECT_MAGIC, VERR_SEM_DESTROYED); +#ifdef IN_RING0 + Assert(pCritSect->fFlags & RTCRITSECT_FLAGS_RING0); +#else + Assert(!(pCritSect->fFlags & RTCRITSECT_FLAGS_RING0)); +#endif /* * Return straight away if NOP. @@ -266,11 +287,13 @@ ASMAtomicDecS32(&pCritSect->cLockers); return rc9; } -#else +#elif defined(IN_RING3) RTThreadBlocking(hThreadSelf, RTTHREADSTATE_CRITSECT, false); #endif int rc = RTSemEventWait(pCritSect->EventSem, RT_INDEFINITE_WAIT); +#ifdef IN_RING3 RTThreadUnblocked(hThreadSelf, RTTHREADSTATE_CRITSECT); +#endif if (pCritSect->u32Magic != RTCRITSECT_MAGIC) return VERR_SEM_DESTROYED; @@ -321,6 +344,11 @@ */ Assert(pCritSect); Assert(pCritSect->u32Magic == RTCRITSECT_MAGIC); +#ifdef IN_RING0 + Assert(pCritSect->fFlags & RTCRITSECT_FLAGS_RING0); +#else + Assert(!(pCritSect->fFlags & RTCRITSECT_FLAGS_RING0)); +#endif if (pCritSect->fFlags & RTCRITSECT_FLAGS_NOP) return VINF_SUCCESS; @@ -362,7 +390,7 @@ - +#ifdef IN_RING3 static int rtCritSectEnterMultiple(size_t cCritSects, PRTCRITSECT *papCritSects, PCRTLOCKVALSRCPOS pSrcPos) { @@ -454,7 +482,7 @@ RT_EXPORT_SYMBOL(RTCritSectEnterMultiple); -RTDECL(int) RTCritSectEnterMultipleDebug(size_t cCritSects, PRTCRITSECT *papCritSects, RTUINTPTR uId, RT_SRC_POS_DECL) +RTDECL(int) RTCritSectEnterMultipleDebug(size_t cCritSects, PRTCRITSECT *papCritSects, RTHCUINTPTR uId, RT_SRC_POS_DECL) { RTLOCKVALSRCPOS SrcPos = RTLOCKVALSRCPOS_INIT_DEBUG_API(); return rtCritSectEnterMultiple(cCritSects, papCritSects, &SrcPos); @@ -476,6 +504,9 @@ } RT_EXPORT_SYMBOL(RTCritSectLeaveMultiple); +#endif /* IN_RING3 */ + + RTDECL(int) RTCritSectDelete(PRTCRITSECT pCritSect) { @@ -487,6 +518,11 @@ Assert(pCritSect->cNestings == 0); Assert(pCritSect->cLockers == -1); Assert(pCritSect->NativeThreadOwner == NIL_RTNATIVETHREAD); +#ifdef IN_RING0 + Assert(pCritSect->fFlags & RTCRITSECT_FLAGS_RING0); +#else + Assert(!(pCritSect->fFlags & RTCRITSECT_FLAGS_RING0)); +#endif /* * Invalidate the structure and free the mutex. @@ -505,7 +541,9 @@ int rc = RTSemEventDestroy(EventSem); AssertRC(rc); +#ifdef RTCRITSECT_STRICT RTLockValidatorRecExclDestroy(&pCritSect->pValidatorRec); +#endif return rc; } diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Runtime/generic/env-generic.cpp virtualbox-4.1.44-dfsg/src/VBox/Runtime/generic/env-generic.cpp --- virtualbox-4.1.12-dfsg/src/VBox/Runtime/generic/env-generic.cpp 2012-04-02 13:29:02.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Runtime/generic/env-generic.cpp 2015-11-11 15:09:06.000000000 +0000 @@ -239,16 +239,22 @@ if (EnvToClone == RTENV_DEFAULT) { /* ASSUMES the default environment is in the current codepage. */ - for (size_t iVar = 0; iVar < cVars; iVar++) + size_t iDst = 0; + for (size_t iSrc = 0; iSrc < cVars; iSrc++) { - int rc2 = RTStrCurrentCPToUtf8(&pIntEnv->papszEnv[iVar], papszEnv[iVar]); - if (RT_FAILURE(rc2)) + int rc2 = RTStrCurrentCPToUtf8(&pIntEnv->papszEnv[iDst], papszEnv[iSrc]); + if (RT_SUCCESS(rc2)) + iDst++; + else if (rc2 == VERR_NO_TRANSLATION) + rc = VWRN_ENV_NOT_FULLY_TRANSLATED; + else { - pIntEnv->cVars = iVar; + pIntEnv->cVars = iDst; RTEnvDestroy(pIntEnv); return rc2; } } + pIntEnv->cVars = iDst; } else { diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Runtime/generic/memsafer-generic.cpp virtualbox-4.1.44-dfsg/src/VBox/Runtime/generic/memsafer-generic.cpp --- virtualbox-4.1.12-dfsg/src/VBox/Runtime/generic/memsafer-generic.cpp 1970-01-01 00:00:00.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Runtime/generic/memsafer-generic.cpp 2015-11-11 15:09:06.000000000 +0000 @@ -0,0 +1,215 @@ +/* $Id: memsafer-generic.cpp $ */ +/** @file + * IPRT - Memory Allocate for Sensitive Data, generic heap-based implementation. + */ + +/* + * Copyright (C) 2006-2014 Oracle Corporation + * + * This file is part of VirtualBox Open Source Edition (OSE), as + * available from http://www.virtualbox.org. This file is free software; + * you can redistribute it and/or modify it under the terms of the GNU + * General Public License (GPL) as published by the Free Software + * Foundation, in version 2 as it comes in the "COPYING" file of the + * VirtualBox OSE distribution. VirtualBox OSE is distributed in the + * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind. + * + * The contents of this file may alternatively be used under the terms + * of the Common Development and Distribution License Version 1.0 + * (CDDL) only, as it comes in the "COPYING.CDDL" file of the + * VirtualBox OSE distribution, in which case the provisions of the + * CDDL are applicable instead of those of the GPL. + * + * You may elect to license modified versions of this file under the + * terms and conditions of either the GPL or the CDDL or both. + */ + + +/******************************************************************************* +* Header Files * +*******************************************************************************/ +#include "internal/iprt.h" +#include + +#include +#include + + +/******************************************************************************* +* Defined Constants And Macros * +*******************************************************************************/ +/** Allocation size alignment. */ +#define RTMEMSAFER_ALIGN 16 +/** Padding after the block to avoid small overruns. */ +#define RTMEMSAFER_PAD_BEFORE 96 +/** Padding after the block to avoid small underruns. */ +#define RTMEMSAFER_PAD_AFTER 32 + + +/******************************************************************************* +* Global Variables * +*******************************************************************************/ +/** XOR scrabler value. + * @todo determine this at runtime */ +#if ARCH_BITS == 32 +static uintptr_t g_uScramblerXor = UINT32_C(0x867af88d); +#elif ARCH_BITS == 64 +static uintptr_t g_uScramblerXor = UINT64_C(0xed95ecc99416d312); +#else +# error "Bad ARCH_BITS value" +#endif + + + +RTDECL(int) RTMemSaferScramble(void *pv, size_t cb) +{ + + AssertMsg(*(size_t *)((char *)pv - RTMEMSAFER_PAD_BEFORE) == cb, + ("*pvStart=%#zx cb=%#zx\n", *(size_t *)((char *)pv- RTMEMSAFER_PAD_BEFORE), cb)); + + /* Note! This isn't supposed to be safe, just less obvious. */ + uintptr_t *pu = (uintptr_t *)pv; + cb = RT_ALIGN_Z(cb, RTMEMSAFER_ALIGN); + while (cb > 0) + { + *pu ^= g_uScramblerXor; + pu++; + cb -= sizeof(*pu); + } + + return VINF_SUCCESS; +} +RT_EXPORT_SYMBOL(RTMemSaferScramble); + + +RTDECL(int) RTMemSaferUnscramble(void *pv, size_t cb) +{ + AssertMsg(*(size_t *)((char *)pv - RTMEMSAFER_PAD_BEFORE) == cb, + ("*pvStart=%#zx cb=%#zx\n", *(size_t *)((char *)pv - RTMEMSAFER_PAD_BEFORE), cb)); + + /* Note! This isn't supposed to be safe, just less obvious. */ + uintptr_t *pu = (uintptr_t *)pv; + cb = RT_ALIGN_Z(cb, RTMEMSAFER_ALIGN); + while (cb > 0) + { + *pu ^= g_uScramblerXor; + pu++; + cb -= sizeof(*pu); + } + + return VINF_SUCCESS; +} +RT_EXPORT_SYMBOL(RTMemSaferUnscramble); + + +RTDECL(int) RTMemSaferAllocZExTag(void **ppvNew, size_t cb, const char *pszTag) RT_NO_THROW +{ + AssertReturn(cb, VERR_INVALID_PARAMETER); + AssertPtrReturn(ppvNew, VERR_INVALID_PARAMETER); + *ppvNew = NULL; + + /* + * Don't request zeroed memory. We want random heap garbage in the + * padding zones, notthing that makes our allocations easier to find. + */ + size_t cbUser = RT_ALIGN_Z(cb, RTMEMSAFER_ALIGN); + void *pvNew = RTMemAlloc(cbUser + RTMEMSAFER_PAD_BEFORE + RTMEMSAFER_PAD_AFTER); + if (pvNew) + { +#ifdef RT_STRICT /* For checking input in string builds. */ + memset(pvNew, 0xad, RTMEMSAFER_PAD_BEFORE); + memset((char *)pvNew + RTMEMSAFER_PAD_BEFORE + cb, 0xda, RTMEMSAFER_PAD_AFTER + (cbUser - cb)); + *(size_t *)pvNew = cb; +#endif + + void *pvUser = (char *)pvNew + RTMEMSAFER_PAD_BEFORE; + *ppvNew = pvUser; + + /* You don't use this API for performance, so we always clean memory. */ + RT_BZERO(pvUser, cb); + + return VINF_SUCCESS; + } + return VERR_NO_MEMORY; +} +RT_EXPORT_SYMBOL(RTMemSaferAllocZExTag); + + +RTDECL(void) RTMemSaferFree(void *pv, size_t cb) RT_NO_THROW +{ + if (pv) + { + Assert(cb); + void *pvStart = (char *)pv - RTMEMSAFER_PAD_BEFORE; + AssertMsg(*(size_t *)pvStart == cb, ("*pvStart=%#zx cb=%#zx\n", *(size_t *)pvStart, cb)); + RTMemWipeThoroughly(pv, RT_ALIGN_Z(cb, RTMEMSAFER_ALIGN), 3); + RTMemFree(pvStart); + } + else + Assert(cb == 0); +} +RT_EXPORT_SYMBOL(RTMemSaferFree); + + +RTDECL(int) RTMemSaferReallocZExTag(size_t cbOld, void *pvOld, size_t cbNew, void **ppvNew, const char *pszTag) RT_NO_THROW +{ + /* + * We cannot let the heap move us around because we will be failing in our + * duty to clean things up. So, allocate a new block, copy over the old + * content, and free the old one. + */ + int rc; + /* Real realloc. */ + if (cbNew && cbOld) + { + AssertPtr(pvOld); + AssertMsg(*(size_t *)((char *)pvOld - RTMEMSAFER_PAD_BEFORE) == cbOld, + ("*pvStart=%#zx cbOld=%#zx\n", *(size_t *)((char *)pvOld - RTMEMSAFER_PAD_BEFORE), cbOld)); + + void *pvNew; + rc = RTMemSaferAllocZExTag(&pvNew, cbNew, pszTag); + if (RT_SUCCESS(rc)) + { + memcpy(pvNew, pvOld, RT_MIN(cbNew, cbOld)); + RTMemSaferFree(pvOld, cbOld); + *ppvNew = pvNew; + } + } + /* First allocation. */ + else if (!cbOld) + { + Assert(pvOld == NULL); + rc = RTMemSaferAllocZExTag(ppvNew, cbNew, pszTag); + } + /* Free operation*/ + else + { + RTMemSaferFree(pvOld, cbOld); + rc = VINF_SUCCESS; + } + return rc; +} +RT_EXPORT_SYMBOL(RTMemSaferReallocZExTag); + + +RTDECL(void *) RTMemSaferAllocZTag(size_t cb, const char *pszTag) RT_NO_THROW +{ + void *pvNew = NULL; + int rc = RTMemSaferAllocZExTag(&pvNew, cb, pszTag); + if (RT_SUCCESS(rc)) + return pvNew; + return NULL; +} +RT_EXPORT_SYMBOL(RTMemSaferAllocZTag); + + +RTDECL(void *) RTMemSaferReallocZTag(size_t cbOld, void *pvOld, size_t cbNew, const char *pszTag) RT_NO_THROW +{ + void *pvNew = NULL; + int rc = RTMemSaferReallocZExTag(cbOld, pvOld, cbNew, &pvNew, pszTag); + if (RT_SUCCESS(rc)) + return pvNew; + return NULL; +} +RT_EXPORT_SYMBOL(RTMemSaferReallocZTag); + diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Runtime/generic/RTPathAbs-generic.cpp virtualbox-4.1.44-dfsg/src/VBox/Runtime/generic/RTPathAbs-generic.cpp --- virtualbox-4.1.12-dfsg/src/VBox/Runtime/generic/RTPathAbs-generic.cpp 1970-01-01 00:00:00.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Runtime/generic/RTPathAbs-generic.cpp 2015-11-11 15:09:06.000000000 +0000 @@ -0,0 +1,358 @@ +/* $Id: RTPathAbs-generic.cpp $ */ +/** @file + * IPRT - RTPathAbs, generic implementation. + */ + +/* + * Copyright (C) 2006-2014 Oracle Corporation + * + * This file is part of VirtualBox Open Source Edition (OSE), as + * available from http://www.virtualbox.org. This file is free software; + * you can redistribute it and/or modify it under the terms of the GNU + * General Public License (GPL) as published by the Free Software + * Foundation, in version 2 as it comes in the "COPYING" file of the + * VirtualBox OSE distribution. VirtualBox OSE is distributed in the + * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind. + * + * The contents of this file may alternatively be used under the terms + * of the Common Development and Distribution License Version 1.0 + * (CDDL) only, as it comes in the "COPYING.CDDL" file of the + * VirtualBox OSE distribution, in which case the provisions of the + * CDDL are applicable instead of those of the GPL. + * + * You may elect to license modified versions of this file under the + * terms and conditions of either the GPL or the CDDL or both. + */ + + +/******************************************************************************* +* Header Files * +*******************************************************************************/ +#define LOG_GROUP RTLOGGROUP_PATH +#include + +#include +#include +#include +#include +#include +#include "internal/path.h" +#include "internal/fs.h" + + +static char *rtPathSkipRootSpec(char *pszCur) +{ +#ifdef HAVE_DRIVE + if (pszCur[0] && RTPATH_IS_VOLSEP(pszCur[1]) && pszCur[2] == RTPATH_SLASH) + pszCur += 3; +# ifdef HAVE_UNC + else if (pszCur[0] == RTPATH_SLASH && pszCur[1] == RTPATH_SLASH) + { + pszCur += 2; + while (*pszCur == RTPATH_SLASH) + pszCur++; + if (*pszCur) + { + while (*pszCur != RTPATH_SLASH && *pszCur) + pszCur++; + if (*pszCur == RTPATH_SLASH) + { + pszCur++; + while (*pszCur != RTPATH_SLASH && *pszCur) + pszCur++; + if (*pszCur == RTPATH_SLASH) + pszCur++; + } + } + } +# endif +#else + if (pszCur[0] == RTPATH_SLASH) + pszCur += 1; +#endif + return pszCur; +} + + +/** + * Cleans up a path specifier a little bit. + * + * This includes removing duplicate slashes, unnecessary single dots, and + * trailing slashes. Also, replaces all slash characters with RTPATH_SLASH. + * + * @returns Length of the cleaned path (in chars). + * @param pszPath The path to cleanup. + */ +static int fsCleanPath(char *pszPath) +{ + char *pszSrc = pszPath; + char *pszTrg = pszPath; + + /* + * On windows, you either use on or two slashes at the head of a path, + * seems like it treats additional slashes as part of the UNC server name. + * Just change slashes to RTPATH_SLASH and skip them. + */ + /** @todo check how OS/2 treats unnecessary leading slashes */ + int cchIgnoreLeading = 0; +#ifdef HAVE_UNC + if ( RTPATH_IS_SLASH(pszSrc[0]) + && RTPATH_IS_SLASH(pszSrc[1])) + { + pszTrg[0] = RTPATH_SLASH; + pszTrg[1] = RTPATH_SLASH; + pszTrg += 2; + pszSrc += 2; + cchIgnoreLeading = 1; + while (RTPATH_IS_SLASH(*pszSrc)) + { + cchIgnoreLeading++; + pszSrc++; + *pszTrg++ = RTPATH_SLASH; + } + } +#endif + + /* + * Change slashes to RTPATH_SLASH and remove duplicates. + */ + for (;;) + { + char ch = *pszSrc++; + if (RTPATH_IS_SLASH(ch)) + { + *pszTrg++ = RTPATH_SLASH; + for (;;) + { + do + ch = *pszSrc++; + while (RTPATH_IS_SLASH(ch)); + + /* Remove '/./' and '/.'. */ + if ( ch != '.' + || (*pszSrc && !RTPATH_IS_SLASH(*pszSrc))) + break; + } + } + *pszTrg = ch; + if (!ch) + break; + pszTrg++; + } + + return pszTrg - pszPath; +} + + +RTDECL(int) RTPathAbs(const char *pszPath, char *pszAbsPath, size_t cchAbsPath) +{ + int rc; + + /* + * Validation. + */ + AssertPtr(pszAbsPath); + AssertPtr(pszPath); + if (RT_UNLIKELY(!*pszPath)) + return VERR_INVALID_PARAMETER; //VERR_INVALID_NAME; + + /* + * Make a clean working copy of the input. + */ + size_t cchPath = strlen(pszPath); + if (cchPath >= RTPATH_MAX) + { + LogFlow(("RTPathAbs(%p:{%s}, %p, %d): returns %Rrc\n", pszPath, pszPath, pszAbsPath, cchAbsPath, VERR_FILENAME_TOO_LONG)); + return VERR_FILENAME_TOO_LONG; + } + + char szTmpPath[RTPATH_MAX]; + memcpy(szTmpPath, pszPath, cchPath + 1); + size_t cchTmpPath = fsCleanPath(szTmpPath); + + /* + * Handle "." specially (fsCleanPath does). + */ + if (szTmpPath[0] == '.') + { + if ( cchTmpPath == 1 + || (cchTmpPath == 2 && szTmpPath[1] == RTPATH_SLASH)) + { + rc = RTPathGetCurrent(pszAbsPath, cchAbsPath); + if (RT_SUCCESS(rc)) + { + size_t cch = fsCleanPath(pszAbsPath); + char *pszTop = rtPathSkipRootSpec(pszAbsPath); +#if 1 + if ((uintptr_t)&pszAbsPath[cch] > (uintptr_t)pszTop && pszAbsPath[cch - 1] == RTPATH_SLASH) + pszAbsPath[cch - 1] = '\0'; +#else + if ( cchTmpPath == 2 + && (uintptr_t)&pszAbsPath[cch - 1] > (uintptr_t)pszTop && pszAbsPath[cch - 1] != RTPATH_SLASH) + { + if (cch + 1 < cchAbsPath) + { + pszAbsPath[cch++] = RTPATH_SLASH; + pszAbsPath[cch] = '\0'; + } + else + rc = VERR_BUFFER_OVERFLOW; + } +#endif + } + return rc; + } + } + + /* + * Do we have an incomplete root spec? Supply the missing bits. + */ +#ifdef HAVE_DRIVE + if ( !(szTmpPath[0] && RTPATH_IS_VOLSEP(szTmpPath[1]) && szTmpPath[2] == RTPATH_SLASH) +# ifdef HAVE_UNC + && !(szTmpPath[0] == RTPATH_SLASH && szTmpPath[1] == RTPATH_SLASH) +# endif + ) +#else + if (szTmpPath[0] != RTPATH_SLASH) +#endif + { + char szCurDir[RTPATH_MAX]; + size_t cchCurDir; + int offApplyAt; + bool fNeedSlash; +#ifdef HAVE_DRIVE + if (szTmpPath[0] && RTPATH_IS_VOLSEP(szTmpPath[1]) && szTmpPath[2] != RTPATH_SLASH) + { + /* + * Relative to drive specific current directory. + */ + rc = RTPathGetCurrentOnDrive(szTmpPath[0], szCurDir, sizeof(szCurDir)); + fNeedSlash = true; + offApplyAt = 2; + } +# ifdef HAVE_UNC + else if (szTmpPath[0] == RTPATH_SLASH && szTmpPath[1] != RTPATH_SLASH) +# else + else if (szTmpPath[0] == RTPATH_SLASH) +# endif + { + /* + * Root of current drive. This may return a UNC root if we're not + * standing on a drive but on a UNC share. + */ + rc = RTPathGetCurrentDrive(szCurDir, sizeof(szCurDir)); + fNeedSlash = false; + offApplyAt = 0; + } + else +#endif + { + /* + * Relative to current directory. + */ + rc = RTPathGetCurrent(szCurDir, sizeof(szCurDir)); + fNeedSlash = true; + offApplyAt = 0; + } + if (RT_SUCCESS(rc)) + { + cchCurDir = fsCleanPath(szCurDir); + if (fNeedSlash && cchCurDir > 0 && szCurDir[cchCurDir - 1] == RTPATH_SLASH) + fNeedSlash = false; + + if (cchCurDir + fNeedSlash + cchTmpPath - offApplyAt <= RTPATH_MAX) + { + memmove(szTmpPath + cchCurDir + fNeedSlash, szTmpPath + offApplyAt, cchTmpPath + 1 - offApplyAt); + memcpy(szTmpPath, szCurDir, cchCurDir); + if (fNeedSlash) + szTmpPath[cchCurDir] = RTPATH_SLASH; + } + else + rc = VERR_FILENAME_TOO_LONG; + } + if (RT_FAILURE(rc)) + { + LogFlow(("RTPathAbs(%p:{%s}, %p, %d): returns %Rrc\n", pszPath, pszPath, pszAbsPath, cchAbsPath, rc)); + return rc; + } + } + + /* + * Skip past the root spec. + */ + char *pszCur = rtPathSkipRootSpec(szTmpPath); + AssertMsgReturn(pszCur != &szTmpPath[0], ("pszCur=%s\n", pszCur), VERR_INTERNAL_ERROR); + char * const pszTop = pszCur; + + /* + * Get rid of double dot path components by evaluating them. + */ + for (;;) + { + if ( pszCur[0] == '.' + && pszCur[1] == '.' + && (!pszCur[2] || pszCur[2] == RTPATH_SLASH)) + { + /* rewind to the previous component if any */ + char *pszPrev = pszCur; + if ((uintptr_t)pszPrev > (uintptr_t)pszTop) + { + pszPrev--; + while ( (uintptr_t)pszPrev > (uintptr_t)pszTop + && pszPrev[-1] != RTPATH_SLASH) + pszPrev--; + } + if (!pszCur[2]) + { + if (pszPrev != pszTop) + pszPrev[-1] = '\0'; + else + *pszPrev = '\0'; + break; + } + Assert(pszPrev[-1] == RTPATH_SLASH); + memmove(pszPrev, pszCur + 3, strlen(pszCur + 3) + 1); + pszCur = pszPrev - 1; + } + else + { + /* advance to end of component. */ + while (*pszCur && *pszCur != RTPATH_SLASH) + pszCur++; + } + + if (!*pszCur) + break; + + /* skip the slash */ + ++pszCur; + } + + cchTmpPath = pszCur - szTmpPath; + +#if 1 + /* + * Strip trailing slash if that's what's desired. + */ + + if ((uintptr_t)&szTmpPath[cchTmpPath] > (uintptr_t)pszTop && szTmpPath[cchTmpPath - 1] == RTPATH_SLASH) + szTmpPath[--cchTmpPath] = '\0'; +#endif + + /* + * Copy the result to the user buffer. + */ + if (cchTmpPath < cchAbsPath) + { + memcpy(pszAbsPath, szTmpPath, cchTmpPath + 1); + rc = VINF_SUCCESS; + } + else + rc = VERR_BUFFER_OVERFLOW; + + LogFlow(("RTPathAbs(%p:{%s}, %p:{%s}, %d): returns %Rrc\n", pszPath, pszPath, pszAbsPath, + RT_SUCCESS(rc) ? pszAbsPath : "", cchAbsPath, rc)); + return rc; +} + diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Runtime/generic/RTPathGetCurrentDrive-generic.cpp virtualbox-4.1.44-dfsg/src/VBox/Runtime/generic/RTPathGetCurrentDrive-generic.cpp --- virtualbox-4.1.12-dfsg/src/VBox/Runtime/generic/RTPathGetCurrentDrive-generic.cpp 1970-01-01 00:00:00.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Runtime/generic/RTPathGetCurrentDrive-generic.cpp 2015-11-11 15:09:06.000000000 +0000 @@ -0,0 +1,106 @@ +/* $Id: RTPathGetCurrentDrive-generic.cpp $ */ +/** @file + * IPRT - RTPathGetCurrentDrive, generic implementation. + */ + +/* + * Copyright (C) 2014 Oracle Corporation + * + * This file is part of VirtualBox Open Source Edition (OSE), as + * available from http://www.virtualbox.org. This file is free software; + * you can redistribute it and/or modify it under the terms of the GNU + * General Public License (GPL) as published by the Free Software + * Foundation, in version 2 as it comes in the "COPYING" file of the + * VirtualBox OSE distribution. VirtualBox OSE is distributed in the + * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind. + * + * The contents of this file may alternatively be used under the terms + * of the Common Development and Distribution License Version 1.0 + * (CDDL) only, as it comes in the "COPYING.CDDL" file of the + * VirtualBox OSE distribution, in which case the provisions of the + * CDDL are applicable instead of those of the GPL. + * + * You may elect to license modified versions of this file under the + * terms and conditions of either the GPL or the CDDL or both. + */ + + +/******************************************************************************* +* Header Files * +*******************************************************************************/ +#define LOG_GROUP RTLOGGROUP_PATH +#include +#include "internal/iprt.h" + +#include +#include +#include +#include "internal/path.h" + + +RTDECL(int) RTPathGetCurrentDrive(char *pszPath, size_t cbPath) +{ +#ifdef HAVE_DRIVE + /* + * Query the current directroy and extract the wanted information from it. + */ + int rc = RTPathGetCurrent(pszPath, cbPath); + if (RT_SUCCESS(rc)) + { + /* + * Drive letter? Chop off at root slash. + */ + if (pszPath[0] && RTPATH_IS_VOLSEP(pszPath[1])) + { + pszPath[2] = '\0'; + return rc; + } + + /* + * UNC? Chop off after share. + */ + if ( RTPATH_IS_SLASH(pszPath[0]) + && RTPATH_IS_SLASH(pszPath[1]) + && !RTPATH_IS_SLASH(pszPath[2]) + && pszPath[2]) + { + /* Work thru the server name. */ + size_t off = 3; + while (!RTPATH_IS_SLASH(pszPath[off]) && pszPath[off]) + off++; + size_t offServerSlash = off; + + /* Is there a share name? */ + if (RTPATH_IS_SLASH(pszPath[off])) + { + while (RTPATH_IS_SLASH(pszPath[off])) + off++; + if (pszPath[off]) + { + /* Work thru the share name. */ + while (!RTPATH_IS_SLASH(pszPath[off]) && pszPath[off]) + off++; + } + /* No share name, chop at server name. */ + else + off = offServerSlash; + } + } + return VERR_INTERNAL_ERROR_4; + } + return rc; + +#else /* !HAVE_DRIVE */ + /* + * No drive letters on this system, return empty string. + */ + if (cbPath > 0) + { + *pszPath = '\0'; + return VINF_SUCCESS; + } + return VERR_BUFFER_OVERFLOW; +#endif /* !HAVE_DRIVE */ +} +RT_EXPORT_SYMBOL(RTPathGetCurrentDrive); + diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Runtime/generic/RTPathGetCurrentOnDrive-generic.cpp virtualbox-4.1.44-dfsg/src/VBox/Runtime/generic/RTPathGetCurrentOnDrive-generic.cpp --- virtualbox-4.1.12-dfsg/src/VBox/Runtime/generic/RTPathGetCurrentOnDrive-generic.cpp 1970-01-01 00:00:00.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Runtime/generic/RTPathGetCurrentOnDrive-generic.cpp 2015-11-11 15:09:06.000000000 +0000 @@ -0,0 +1,84 @@ +/* $Id: RTPathGetCurrentOnDrive-generic.cpp $ */ +/** @file + * IPRT - RTPathGetCurrentOnDrive, generic implementation. + */ + +/* + * Copyright (C) 2014 Oracle Corporation + * + * This file is part of VirtualBox Open Source Edition (OSE), as + * available from http://www.virtualbox.org. This file is free software; + * you can redistribute it and/or modify it under the terms of the GNU + * General Public License (GPL) as published by the Free Software + * Foundation, in version 2 as it comes in the "COPYING" file of the + * VirtualBox OSE distribution. VirtualBox OSE is distributed in the + * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind. + * + * The contents of this file may alternatively be used under the terms + * of the Common Development and Distribution License Version 1.0 + * (CDDL) only, as it comes in the "COPYING.CDDL" file of the + * VirtualBox OSE distribution, in which case the provisions of the + * CDDL are applicable instead of those of the GPL. + * + * You may elect to license modified versions of this file under the + * terms and conditions of either the GPL or the CDDL or both. + */ + + +/******************************************************************************* +* Header Files * +*******************************************************************************/ +#define LOG_GROUP RTLOGGROUP_PATH +#include +#include "internal/iprt.h" + +#include +#include +#include +#include "internal/path.h" + + +RTDECL(int) RTPathGetCurrentOnDrive(char chDrive, char *pszPath, size_t cbPath) +{ +#ifdef HAVE_DRIVE + /* + * Check if it's the same drive as the current directory. + */ + int rc = RTPathGetCurrent(pszPath, cbPath); + if (RT_SUCCESS(rc)) + { + if ( ( chDrive == *pszPath + || RT_C_TO_LOWER(chDrive) == RT_C_TO_LOWER(*pszPath)) + && RTPATH_IS_VOLSEP(pszPath[1])) + return rc; + + /* + * Different drive, indicate root. + */ + if (cbPath >= 4) + { + pszPath[0] = RT_C_TO_UPPER(chDrive); + pszPath[1] = ':'; + pszPath[2] = RTPATH_SLASH; + pszPath[3] = '\0'; + return VINF_SUCCESS; + } + } + return rc; + +#else + /* + * No driver letters, just return root slash on whatever we're asked. + */ + NOREF(chDrive); + if (cbPath >= 2) + { + pszPath[0] = RTPATH_SLASH; + pszPath[1] = '\0'; + return VINF_SUCCESS; + } + return VERR_BUFFER_OVERFLOW; +#endif +} +RT_EXPORT_SYMBOL(RTPathGetCurrentOnDrive); + diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Runtime/include/internal/bignum.mac virtualbox-4.1.44-dfsg/src/VBox/Runtime/include/internal/bignum.mac --- virtualbox-4.1.12-dfsg/src/VBox/Runtime/include/internal/bignum.mac 1970-01-01 00:00:00.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Runtime/include/internal/bignum.mac 2015-11-11 15:09:07.000000000 +0000 @@ -0,0 +1,54 @@ +; $Id: bignum.mac $ +;; @file +; IPRT - Internal RTAssert header +; + +; +; Copyright (C) 2009-2011 Oracle Corporation +; +; This file is part of VirtualBox Open Source Edition (OSE), as +; available from http://www.virtualbox.org. This file is free software; +; you can redistribute it and/or modify it under the terms of the GNU +; General Public License (GPL) as published by the Free Software +; Foundation, in version 2 as it comes in the "COPYING" file of the +; VirtualBox OSE distribution. VirtualBox OSE is distributed in the +; hope that it will be useful, but WITHOUT ANY WARRANTY of any kind. +; +; The contents of this file may alternatively be used under the terms +; of the Common Development and Distribution License Version 1.0 +; (CDDL) only, as it comes in the "COPYING.CDDL" file of the +; VirtualBox OSE distribution, in which case the provisions of the +; CDDL are applicable instead of those of the GPL. +; +; You may elect to license modified versions of this file under the +; terms and conditions of either the GPL or the CDDL or both. +; + +%ifndef ___internal_bignum_mac___ +%define ___internal_bignum_mac___ + +%include "iprt/asmdefs.mac" + + +%if ARCH_BITS == 64 + %define RTBIGNUM_ELEMENT_SIZE 8 + %define RTBIGNUM_ELEMENT_BITS (RTBIGNUM_ELEMENT_SIZE * 8) + %define RTBIGNUM_ELEMENT_BIT(iBit) RT_BIT_64(iBit) + %define RTBIGNUM_ELEMENT_PRE qword +%else + %define RTBIGNUM_ELEMENT_SIZE 4 + %define RTBIGNUM_ELEMENT_BITS (RTBIGNUM_ELEMENT_SIZE * 8) + %define RTBIGNUM_ELEMENT_BIT(iBit) RT_BIT_32(iBit) + %define RTBIGNUM_ELEMENT_PRE dword +%endif + +struc RTBIGNUM + .pauElements RTCCPTR_RES 1 + .cUsed resd 1 + .cAllocated resd 1 + .uReserved resd 1 + .fFlags resd 1 +endstruc + +%endif + diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Runtime/include/internal/iprt.h virtualbox-4.1.44-dfsg/src/VBox/Runtime/include/internal/iprt.h --- virtualbox-4.1.12-dfsg/src/VBox/Runtime/include/internal/iprt.h 2012-04-02 13:29:03.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Runtime/include/internal/iprt.h 2015-11-11 15:09:07.000000000 +0000 @@ -40,7 +40,7 @@ && !defined(RT_NO_EXPORT_SYMBOL) # define bool linux_bool /* see r0drv/linux/the-linux-kernel.h */ # include -# if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,33) +# if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 33) # include # else # ifndef AUTOCONF_INCLUDED diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Runtime/include/internal/iprt-openssl.h virtualbox-4.1.44-dfsg/src/VBox/Runtime/include/internal/iprt-openssl.h --- virtualbox-4.1.12-dfsg/src/VBox/Runtime/include/internal/iprt-openssl.h 1970-01-01 00:00:00.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Runtime/include/internal/iprt-openssl.h 2015-11-11 15:09:07.000000000 +0000 @@ -0,0 +1,42 @@ +/* $Id: iprt-openssl.h $ */ +/** @file + * IPRT - Internal header for the OpenSSL helpers. + */ + +/* + * Copyright (C) 2006-2014 Oracle Corporation + * + * This file is part of VirtualBox Open Source Edition (OSE), as + * available from http://www.virtualbox.org. This file is free software; + * you can redistribute it and/or modify it under the terms of the GNU + * General Public License (GPL) as published by the Free Software + * Foundation, in version 2 as it comes in the "COPYING" file of the + * VirtualBox OSE distribution. VirtualBox OSE is distributed in the + * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind. + * + * The contents of this file may alternatively be used under the terms + * of the Common Development and Distribution License Version 1.0 + * (CDDL) only, as it comes in the "COPYING.CDDL" file of the + * VirtualBox OSE distribution, in which case the provisions of the + * CDDL are applicable instead of those of the GPL. + * + * You may elect to license modified versions of this file under the + * terms and conditions of either the GPL or the CDDL or both. + */ + + +#ifndef ___internal_iprt_openssl_h +#define ___internal_iprt_openssl_h + +#include + +RT_C_DECLS_BEGIN + +DECLHIDDEN(void) rtCrOpenSslInit(void); +DECLHIDDEN(int) rtCrOpenSslErrInfoCallback(const char *pach, size_t cch, void *pvUser); +DECLHIDDEN(int) rtCrOpenSslAddX509CertToStack(void *pvOsslStack, PCRTCRX509CERTIFICATE pCert); + +RT_C_DECLS_END + +#endif + diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Runtime/include/internal/ldr.h virtualbox-4.1.44-dfsg/src/VBox/Runtime/include/internal/ldr.h --- virtualbox-4.1.12-dfsg/src/VBox/Runtime/include/internal/ldr.h 2012-04-02 13:29:03.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Runtime/include/internal/ldr.h 2015-11-11 15:09:07.000000000 +0000 @@ -215,101 +215,99 @@ * This entrypoint can be omitted if RTLDROPS::pfnGetSymbolEx() is provided and the special BaseAddress feature isn't supported. * * @returns iprt status code. + * @retval VERR_LDR_FORWARDER forwarder, use pfnQueryForwarderInfo. Buffer size + * in @a pValue. * @param pMod Pointer to the loader module structure. * @param pvBits Pointer to bits returned by RTLDROPS::pfnGetBits(), optional. * @param BaseAddress The image base address to use when calculating the symbol value. + * @param iOrdinal Symbol table ordinal, UINT32_MAX if the symbol name + * should be used. * @param pszSymbol The symbol name. * @param pValue Where to store the symbol value. * @remark Extended loader feature. */ - DECLCALLBACKMEMBER(int, pfnGetSymbolEx)(PRTLDRMODINTERNAL pMod, const void *pvBits, RTUINTPTR BaseAddress, const char *pszSymbol, RTUINTPTR *pValue); - - /** Dummy entry to make sure we've initialized it all. */ - RTUINT uDummy; -} RTLDROPS; -typedef RTLDROPS *PRTLDROPS; -typedef const RTLDROPS *PCRTLDROPS; - - -/** Pointer to a loader reader instance. */ -typedef struct RTLDRREADER *PRTLDRREADER; - -/** - * Loader image reader instance. - * The reader will have extra data members following this structure. - */ -typedef struct RTLDRREADER -{ - /** The name of the image provider. */ - const char *pszName; + DECLCALLBACKMEMBER(int, pfnGetSymbolEx)(PRTLDRMODINTERNAL pMod, const void *pvBits, RTUINTPTR BaseAddress, + uint32_t iOrdinal, const char *pszSymbol, RTUINTPTR *pValue); /** - * Reads bytes at a give place in the raw image. + * Query forwarder information on the specified symbol. + * + * This is an optional entrypoint. * * @returns iprt status code. - * @param pReader Pointer to the reader instance. - * @param pvBuf Where to store the bits. - * @param cb Number of bytes to read. - * @param off Where to start reading relative to the start of the raw image. + * @param pMod Pointer to the loader module structure. + * @param pvBits Pointer to bits returned by RTLDROPS::pfnGetBits(), + * optional. + * @param iOrdinal Symbol table ordinal of the forwarded symbol to query. + * UINT32_MAX if the symbol name should be used. + * @param pszSymbol The symbol name of the forwarded symbol to query. + * @param pInfo Where to return the forwarder information. + * @param cbInfo The size of the pInfo buffer. The pfnGetSymbolEx + * entrypoint returns the required size in @a pValue when + * the return code is VERR_LDR_FORWARDER. + * @remark Extended loader feature. */ - DECLCALLBACKMEMBER(int, pfnRead)(PRTLDRREADER pReader, void *pvBuf, size_t cb, RTFOFF off); + DECLCALLBACKMEMBER(int, pfnQueryForwarderInfo)(PRTLDRMODINTERNAL pMod, const void *pvBits, uint32_t iOrdinal, + const char *pszSymbol, PRTLDRIMPORTINFO pInfo, size_t cbInfo); /** - * Tells end position of last read. + * Generic method for querying image properties. * - * @returns position relative to start of the raw image. - * @param pReader Pointer to the reader instance. - */ - DECLCALLBACKMEMBER(RTFOFF, pfnTell)(PRTLDRREADER pReader); - - /** - * Gets the size of the raw image bits. + * @returns IPRT status code. + * @retval VERR_NOT_SUPPORTED if the property query isn't supported (either all + * or that specific property). + * @retval VERR_NOT_FOUND the property was not found in the module. * - * @returns size of raw image bits in bytes. - * @param pReader Pointer to the reader instance. + * @param pMod Pointer to the loader module structure. + * @param enmLdrProp The property to query (valid). + * @param pvBits Pointer to the bits returned by + * RTLDROPS::pfnGetBits(), optional. + * @param pvBuf Pointer to the input / output buffer. This is valid. + * Normally only used for returning data, but in some + * cases it also holds input. + * @param cbBuf The size of the buffer (valid as per + * property). + * @param pcbRet The number of bytes actually returned. If + * VERR_BUFFER_OVERFLOW is returned, this is set to the + * required buffer size. */ - DECLCALLBACKMEMBER(RTFOFF, pfnSize)(PRTLDRREADER pReader); + DECLCALLBACKMEMBER(int, pfnQueryProp)(PRTLDRMODINTERNAL pMod, RTLDRPROP enmProp, void const *pvBits, + void *pvBuf, size_t cbBuf, size_t *pcbRet); /** - * Map the bits into memory. + * Verify the image signature. * - * The mapping will be freed upon calling pfnDestroy() if not pfnUnmap() - * is called before that. The mapping is read only. - * - * @returns iprt status code. - * @param pReader Pointer to the reader instance. - * @param ppvBits Where to store the address of the memory mapping on success. - * The size of the mapping can be obtained by calling pfnSize(). - */ - DECLCALLBACKMEMBER(int, pfnMap)(PRTLDRREADER pReader, const void **ppvBits); - - /** - * Unmap bits. + * This may permform additional integrity checks on the image structures that + * was not done when opening the image. * - * @returns iprt status code. - * @param pReader Pointer to the reader instance. - * @param pvBits Memory pointer returned by pfnMap(). - */ - DECLCALLBACKMEMBER(int, pfnUnmap)(PRTLDRREADER pReader, const void *pvBits); - - /** - * Gets the most appropriate log name. + * @returns IPRT status code. + * @retval VERR_LDRVI_NOT_SIGNED if not signed. * - * @returns Pointer to readonly log name. - * @param pReader Pointer to the reader instance. + * @param pMod Pointer to the loader module structure. + * @param pfnCallback Callback that does the signature and certificate + * verficiation. + * @param pvUser User argument for the callback. + * @param pErrInfo Pointer to an error info buffer. Optional. */ - DECLCALLBACKMEMBER(const char *, pfnLogName)(PRTLDRREADER pReader); + DECLCALLBACKMEMBER(int, pfnVerifySignature)(PRTLDRMODINTERNAL pMod, PFNRTLDRVALIDATESIGNEDDATA pfnCallback, void *pvUser, + PRTERRINFO pErrInfo); /** - * Releases all resources associated with the reader instance. - * The instance is invalid after this call returns. + * Calculate the image hash according the image signing rules. * - * @returns iprt status code. - * @param pReader Pointer to the reader instance. + * @returns IPRT status code. + * @param hLdrMod The module handle. + * @param enmDigest Which kind of digest. + * @param pszDigest Where to store the image digest. + * @param cbDigest Size of the buffer @a pszDigest points at. */ - DECLCALLBACKMEMBER(int, pfnDestroy)(PRTLDRREADER pReader); + DECLCALLBACKMEMBER(int, pfnHashImage)(PRTLDRMODINTERNAL pMod, RTDIGESTTYPE enmDigest, char *pszDigest, size_t cbDigest); -} RTLDRREADER; + /** Dummy entry to make sure we've initialized it all. */ + RTUINT uDummy; +} RTLDROPS; +typedef RTLDROPS *PRTLDROPS; +typedef const RTLDROPS *PCRTLDROPS; /** @@ -339,8 +337,6 @@ && ((PRTLDRMODINTERNAL)hLdrMod)->u32Magic == RTLDRMOD_MAGIC; } -int rtldrOpenWithReader(PRTLDRREADER pReader, uint32_t fFlags, RTLDRARCH enmArch, PRTLDRMOD phMod); - /** * Native loader module. @@ -351,7 +347,11 @@ RTLDRMODINTERNAL Core; /** The native handle. */ uintptr_t hNative; -} RTLDRMODNATIVE, *PRTLDRMODNATIVE; + /** The load flags (RTLDRLOAD_FLAGS_XXX). */ + uint32_t fFlags; +} RTLDRMODNATIVE; +/** Pointer to a native module. */ +typedef RTLDRMODNATIVE *PRTLDRMODNATIVE; /** @copydoc RTLDROPS::pfnGetSymbol */ DECLCALLBACK(int) rtldrNativeGetSymbol(PRTLDRMODINTERNAL pMod, const char *pszSymbol, void **ppvValue); @@ -364,14 +364,25 @@ * @returns iprt status code. * @param pszFilename The image filename. * @param phHandle Where to store the module handle on success. - * @param fFlags See RTLDRFLAGS_. + * @param fFlags RTLDRLOAD_FLAGS_XXX. * @param pErrInfo Where to return extended error information. Optional. */ int rtldrNativeLoad(const char *pszFilename, uintptr_t *phHandle, uint32_t fFlags, PRTERRINFO pErrInfo); -int rtldrPEOpen(PRTLDRREADER pReader, uint32_t fFlags, RTLDRARCH enmArch, RTFOFF offNtHdrs, PRTLDRMOD phLdrMod); -int rtldrELFOpen(PRTLDRREADER pReader, uint32_t fFlags, RTLDRARCH enmArch, PRTLDRMOD phLdrMod); -int rtldrkLdrOpen(PRTLDRREADER pReader, uint32_t fFlags, RTLDRARCH enmArch, PRTLDRMOD phLdrMod); +/** + * Load a system library. + * + * @returns iprt status code. + * @param pszFilename The image filename. + * @param pszExt Extension to add. NULL if none. + * @param fFlags RTLDRLOAD_FLAGS_XXX. + * @param phLdrMod Where to return the module handle on success. + */ +int rtldrNativeLoadSystem(const char *pszFilename, const char *pszExt, uint32_t fFlags, PRTLDRMOD phLdrMod); + +int rtldrPEOpen(PRTLDRREADER pReader, uint32_t fFlags, RTLDRARCH enmArch, RTFOFF offNtHdrs, PRTLDRMOD phLdrMod, PRTERRINFO pErrInfo); +int rtldrELFOpen(PRTLDRREADER pReader, uint32_t fFlags, RTLDRARCH enmArch, PRTLDRMOD phLdrMod, PRTERRINFO pErrInfo); +int rtldrkLdrOpen(PRTLDRREADER pReader, uint32_t fFlags, RTLDRARCH enmArch, PRTLDRMOD phLdrMod, PRTERRINFO pErrInfo); /*int rtldrLXOpen(PRTLDRREADER pReader, uint32_t fFlags, RTLDRARCH enmArch, RTFOFF offLX, PRTLDRMOD phLdrMod); int rtldrMachoOpen(PRTLDRREADER pReader, uint32_t fFlags, RTLDRARCH enmArch, RTFOFF offSomething, PRTLDRMOD phLdrMod);*/ diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Runtime/include/internal/ldrMach-O.h virtualbox-4.1.44-dfsg/src/VBox/Runtime/include/internal/ldrMach-O.h --- virtualbox-4.1.12-dfsg/src/VBox/Runtime/include/internal/ldrMach-O.h 2012-04-02 13:29:03.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Runtime/include/internal/ldrMach-O.h 2015-11-11 15:09:07.000000000 +0000 @@ -4,7 +4,7 @@ */ /* - * Copyright (C) 2011 Oracle Corporation + * Copyright (C) 2011-2012 Oracle Corporation * * This file is part of VirtualBox Open Source Edition (OSE), as * available from http://www.virtualbox.org. This file is free software; @@ -247,7 +247,14 @@ #define MH_WEAK_DEFINES UINT32_C(0x00008000) #define MH_BINDS_TO_WEAK UINT32_C(0x00010000) #define MH_ALLOW_STACK_EXECUTION UINT32_C(0x00020000) -#define MH_VALID_FLAGS UINT32_C(0x0003ffff) +#define MH_ROOT_SAFE UINT32_C(0x00040000) +#define MH_SETUID_SAFE UINT32_C(0x00080000) +#define MH_NO_REEXPORTED_DYLIBS UINT32_C(0x00100000) +#define MH_PIE UINT32_C(0x00200000) +#define MH_DEAD_STRIPPABLE_DYLIB UINT32_C(0x00400000) +#define MH_HAS_TLV_DESCRIPTORS UINT32_C(0x00800000) +#define MH_NO_HEAP_EXECUTION UINT32_C(0x01000000) +#define MH_VALID_FLAGS UINT32_C(0x02ffffff) typedef struct load_command @@ -281,10 +288,27 @@ #define LC_SUB_LIBRARY UINT32_C(0x15) #define LC_TWOLEVEL_HINTS UINT32_C(0x16) #define LC_PREBIND_CKSUM UINT32_C(0x17) -#define LC_LOAD_WEAK_DYLIB ( UINT32_C(0x18) | LC_REQ_DYLD) +#define LC_LOAD_WEAK_DYLIB (UINT32_C(0x18) | LC_REQ_DYLD) #define LC_SEGMENT_64 UINT32_C(0x19) #define LC_ROUTINES_64 UINT32_C(0x1a) #define LC_UUID UINT32_C(0x1b) +#define LC_RPATH (UINT32_C(0x1c) | LC_REQ_DYLD) +#define LC_CODE_SIGNATURE UINT32_C(0x1d) +#define LC_SEGMENT_SPLIT_INFO UINT32_C(0x1e) +#define LC_REEXPORT_DYLIB (UINT32_C(0x1f) | LC_REQ_DYLD) +#define LC_LAZY_LOAD_DYLIB UINT32_C(0x20) +#define LC_ENCRYPTION_INFO UINT32_C(0x21) +#define LC_DYLD_INFO UINT32_C(0x22) +#define LC_DYLD_INFO_ONLY (UINT32_C(0x22) | LC_REQ_DYLD) +#define LC_LOAD_UPWARD_DYLIB (UINT32_C(0x23) | LC_REQ_DYLD) +#define LC_VERSION_MIN_MACOSX UINT32_C(0x24) +#define LC_VERSION_MIN_IPHONEOS UINT32_C(0x25) +#define LC_FUNCTION_STARTS UINT32_C(0x26) +#define LC_DYLD_ENVIRONMENT UINT32_C(0x27) +#define LC_MAIN (UINT32_C(0x28) | LC_REQ_DYLD) +#define LC_DATA_IN_CODE UINT32_C(0x29) +#define LC_SOURCE_VERSION UINT32_C(0x2a) +#define LC_DYLIB_CODE_SIGN_DRS UINT32_C(0x2b) typedef struct lc_str diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Runtime/include/internal/ldrPE.h virtualbox-4.1.44-dfsg/src/VBox/Runtime/include/internal/ldrPE.h --- virtualbox-4.1.12-dfsg/src/VBox/Runtime/include/internal/ldrPE.h 2012-04-02 13:29:03.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Runtime/include/internal/ldrPE.h 2015-11-11 15:09:07.000000000 +0000 @@ -28,8 +28,9 @@ #define ___internal_ldrPE_h #include +#include -#pragma pack(4) +#pragma pack(4) /** @todo Necessary? */ /******************************************************************************* @@ -71,15 +72,22 @@ #define IMAGE_SUBSYSTEM_OS2_CUI 0x5 #define IMAGE_SUBSYSTEM_POSIX_CUI 0x7 -#define IMAGE_LIBRARY_PROCESS_INIT 0x0001 -#define IMAGE_LIBRARY_PROCESS_TERM 0x0002 -#define IMAGE_LIBRARY_THREAD_INIT 0x0004 -#define IMAGE_LIBRARY_THREAD_TERM 0x0008 -#define IMAGE_DLLCHARACTERISTICS_NO_ISOLATION 0x0200 -#define IMAGE_DLLCHARACTERISTICS_NO_SEH 0x0400 -#define IMAGE_DLLCHARACTERISTICS_NO_BIND 0x0800 -#define IMAGE_DLLCHARACTERISTICS_WDM_DRIVER 0x2000 -#define IMAGE_DLLCHARACTERISTICS_TERMINAL_SERVER_AWARE 0x8000 +#define IMAGE_LIBRARY_PROCESS_INIT 0x0001 +#define IMAGE_LIBRARY_PROCESS_TERM 0x0002 +#define IMAGE_LIBRARY_THREAD_INIT 0x0004 +#define IMAGE_LIBRARY_THREAD_TERM 0x0008 +#define IMAGE_DLLCHARACTERISTICS_RESERVED 0x0010 +#define IMAGE_DLLCHARACTERISTICS_HIGH_ENTROPY_VA 0x0020 +#define IMAGE_DLLCHARACTERISTICS_DYNAMIC_BASE 0x0040 +#define IMAGE_DLLCHARACTERISTICS_FORCE_INTEGRITY 0x0080 +#define IMAGE_DLLCHARACTERISTICS_NX_COMPAT 0x0100 +#define IMAGE_DLLCHARACTERISTICS_NO_ISOLATION 0x0200 +#define IMAGE_DLLCHARACTERISTICS_NO_SEH 0x0400 +#define IMAGE_DLLCHARACTERISTICS_NO_BIND 0x0800 +#define IMAGE_DLLCHARACTERISTICS_APPCONTAINER 0x1000 +#define IMAGE_DLLCHARACTERISTICS_WDM_DRIVER 0x2000 +#define IMAGE_DLLCHARACTERISTICS_GUARD_CF 0x4000 +#define IMAGE_DLLCHARACTERISTICS_TERMINAL_SERVER_AWARE 0x8000 #define IMAGE_NUMBEROF_DIRECTORY_ENTRIES 0x10 @@ -145,6 +153,7 @@ #define IMAGE_SCN_ALIGN_4096BYTES 0x00D00000 #define IMAGE_SCN_ALIGN_8192BYTES 0x00E00000 #define IMAGE_SCN_ALIGN_MASK 0x00F00000 +#define IMAGE_SCN_ALIGN_SHIFT 20 #define IMAGE_SCN_LNK_NRELOC_OVFL 0x01000000 #define IMAGE_SCN_MEM_DISCARDABLE 0x02000000 @@ -180,17 +189,19 @@ /* debug dir */ -#define IMAGE_DEBUG_TYPE_UNKNOWN 0x0 -#define IMAGE_DEBUG_TYPE_COFF 0x1 -#define IMAGE_DEBUG_TYPE_CODEVIEW 0x2 -#define IMAGE_DEBUG_TYPE_FPO 0x3 -#define IMAGE_DEBUG_TYPE_MISC 0x4 -#define IMAGE_DEBUG_TYPE_EXCEPTION 0x5 -#define IMAGE_DEBUG_TYPE_FIXUP 0x6 -#define IMAGE_DEBUG_TYPE_OMAP_TO_SRC 0x7 -#define IMAGE_DEBUG_TYPE_OMAP_FROM_SRC 0x8 -#define IMAGE_DEBUG_TYPE_BORLAND 0x9 -#define IMAGE_DEBUG_TYPE_RESERVED10 0x10 +#define IMAGE_DEBUG_TYPE_UNKNOWN UINT32_C(0x0) +#define IMAGE_DEBUG_TYPE_COFF UINT32_C(0x1) +#define IMAGE_DEBUG_TYPE_CODEVIEW UINT32_C(0x2) +#define IMAGE_DEBUG_TYPE_FPO UINT32_C(0x3) +#define IMAGE_DEBUG_TYPE_MISC UINT32_C(0x4) +#define IMAGE_DEBUG_TYPE_EXCEPTION UINT32_C(0x5) +#define IMAGE_DEBUG_TYPE_FIXUP UINT32_C(0x6) +#define IMAGE_DEBUG_TYPE_OMAP_TO_SRC UINT32_C(0x7) +#define IMAGE_DEBUG_TYPE_OMAP_FROM_SRC UINT32_C(0x8) +#define IMAGE_DEBUG_TYPE_BORLAND UINT32_C(0x9) +#define IMAGE_DEBUG_TYPE_RESERVED10 UINT32_C(0x10) + +#define IMAGE_DEBUG_MISC_EXENAME UINT32_C(1) /* security directory */ #define WIN_CERT_REVISION_1_0 UINT16_C(0x0100) @@ -203,21 +214,106 @@ #define WIN_CERT_TYPE_EFI_PKCS115 UINT16_C(0x0ef0) #define WIN_CERT_TYPE_EFI_GUID UINT16_C(0x0ef1) +/** The alignment of the certificate table. + * @remarks Found thru signtool experiments. */ +#define WIN_CERTIFICATE_ALIGNMENT 8 + +/* For .DBG files. */ +#define IMAGE_SEPARATE_DEBUG_SIGNATURE UINT16_C(0x4944) + +#define IMAGE_SIZE_OF_SYMBOL 18 +#define IMAGE_SIZE_OF_SYMBOL_EX 20 + +#define IMAGE_SYM_UNDEFINED INT16_C(0) +#define IMAGE_SYM_ABSOLUTE INT16_C(-1) +#define IMAGE_SYM_DEBUG INT16_C(-2) + +#define IMAGE_SYM_CLASS_END_OF_FUNCTION UINT8_C(0xff) /* -1 */ +#define IMAGE_SYM_CLASS_NULL UINT8_C(0) +#define IMAGE_SYM_CLASS_AUTOMATIC UINT8_C(1) +#define IMAGE_SYM_CLASS_EXTERNAL UINT8_C(2) +#define IMAGE_SYM_CLASS_STATIC UINT8_C(3) +#define IMAGE_SYM_CLASS_REGISTER UINT8_C(4) +#define IMAGE_SYM_CLASS_EXTERNAL_DEF UINT8_C(5) +#define IMAGE_SYM_CLASS_LABEL UINT8_C(6) +#define IMAGE_SYM_CLASS_UNDEFINED_LABEL UINT8_C(7) +#define IMAGE_SYM_CLASS_MEMBER_OF_STRUCT UINT8_C(8) +#define IMAGE_SYM_CLASS_ARGUMENT UINT8_C(9) +#define IMAGE_SYM_CLASS_STRUCT_TAG UINT8_C(10) +#define IMAGE_SYM_CLASS_MEMBER_OF_UNION UINT8_C(11) +#define IMAGE_SYM_CLASS_UNION_TAG UINT8_C(12) +#define IMAGE_SYM_CLASS_TYPE_DEFINITION UINT8_C(13) +#define IMAGE_SYM_CLASS_UNDEFINED_STATIC UINT8_C(14) +#define IMAGE_SYM_CLASS_ENUM_TAG UINT8_C(15) +#define IMAGE_SYM_CLASS_MEMBER_OF_ENUM UINT8_C(16) +#define IMAGE_SYM_CLASS_REGISTER_PARAM UINT8_C(17) +#define IMAGE_SYM_CLASS_BIT_FIELD UINT8_C(18) +#define IMAGE_SYM_CLASS_FAR_EXTERNAL UINT8_C(68) +#define IMAGE_SYM_CLASS_BLOCK UINT8_C(100) +#define IMAGE_SYM_CLASS_FUNCTION UINT8_C(101) +#define IMAGE_SYM_CLASS_END_OF_STRUCT UINT8_C(102) +#define IMAGE_SYM_CLASS_FILE UINT8_C(103) +#define IMAGE_SYM_CLASS_SECTION UINT8_C(104) +#define IMAGE_SYM_CLASS_WEAK_EXTERNAL UINT8_C(105) +#define IMAGE_SYM_CLASS_CLR_TOKEN UINT8_C(107) + + +#define IMAGE_SYM_TYPE_NULL UINT16_C(0x0000) +#define IMAGE_SYM_TYPE_VOID UINT16_C(0x0001) +#define IMAGE_SYM_TYPE_CHAR UINT16_C(0x0002) +#define IMAGE_SYM_TYPE_SHORT UINT16_C(0x0003) +#define IMAGE_SYM_TYPE_INT UINT16_C(0x0004) +#define IMAGE_SYM_TYPE_LONG UINT16_C(0x0005) +#define IMAGE_SYM_TYPE_FLOAT UINT16_C(0x0006) +#define IMAGE_SYM_TYPE_DOUBLE UINT16_C(0x0007) +#define IMAGE_SYM_TYPE_STRUCT UINT16_C(0x0008) +#define IMAGE_SYM_TYPE_UNION UINT16_C(0x0009) +#define IMAGE_SYM_TYPE_ENUM UINT16_C(0x000a) +#define IMAGE_SYM_TYPE_MOE UINT16_C(0x000b) +#define IMAGE_SYM_TYPE_BYTE UINT16_C(0x000c) +#define IMAGE_SYM_TYPE_WORD UINT16_C(0x000d) +#define IMAGE_SYM_TYPE_UINT UINT16_C(0x000e) +#define IMAGE_SYM_TYPE_DWORD UINT16_C(0x000f) +#define IMAGE_SYM_TYPE_PCODE UINT16_C(0x8000) + +#define IMAGE_SYM_DTYPE_NULL UINT16_C(0x0) +#define IMAGE_SYM_DTYPE_POINTER UINT16_C(0x1) +#define IMAGE_SYM_DTYPE_FUNCTION UINT16_C(0x2) +#define IMAGE_SYM_DTYPE_ARRAY UINT16_C(0x3) + + +#define N_BTMASK UINT16_C(0x000f) +#define N_TMASK UINT16_C(0x0030) +#define N_TMASK1 UINT16_C(0x00c0) +#define N_TMASK2 UINT16_C(0x00f0) +#define N_BTSHFT 4 +#define N_TSHIFT 2 + +#define BTYPE(a_Type) ( (a_Type) & N_BTMASK ) +#define ISPTR(a_Type) ( ((a_Type) & N_TMASK) == (IMAGE_SYM_DTYPE_POINTER << N_BTSHFT) ) +#define ISFCN(a_Type) ( ((a_Type) & N_TMASK) == (IMAGE_SYM_DTYPE_FUNCTION << N_BTSHFT) ) +#define ISARY(a_Type) ( ((a_Type) & N_TMASK) == (IMAGE_SYM_DTYPE_ARRAY << N_BTSHFT) ) +#define ISTAG(a_StorageClass) ( (a_StorageClass) == IMAGE_SYM_CLASS_STRUCT_TAG \ + || (a_StorageClass) == IMAGE_SYM_CLASS_UNION_TAG \ + || (a_StorageClass) == IMAGE_SYM_CLASS_ENUM_TAG ) + /******************************************************************************* * Structures and Typedefs * *******************************************************************************/ typedef struct _IMAGE_FILE_HEADER { - uint16_t Machine; - uint16_t NumberOfSections; - uint32_t TimeDateStamp; - uint32_t PointerToSymbolTable; - uint32_t NumberOfSymbols; - uint16_t SizeOfOptionalHeader; - uint16_t Characteristics; -} IMAGE_FILE_HEADER; + uint16_t Machine; /**< 0x00 */ + uint16_t NumberOfSections; /**< 0x02 */ + uint32_t TimeDateStamp; /**< 0x04 */ + uint32_t PointerToSymbolTable; /**< 0x08 */ + uint32_t NumberOfSymbols; /**< 0x0c */ + uint16_t SizeOfOptionalHeader; /**< 0x10 */ + uint16_t Characteristics; /**< 0x12 */ +} IMAGE_FILE_HEADER; /* size: 0x14 */ +AssertCompileSize(IMAGE_FILE_HEADER, 0x14); typedef IMAGE_FILE_HEADER *PIMAGE_FILE_HEADER; +typedef IMAGE_FILE_HEADER const *PCIMAGE_FILE_HEADER; typedef struct _IMAGE_DATA_DIRECTORY @@ -226,95 +322,107 @@ uint32_t Size; } IMAGE_DATA_DIRECTORY; typedef IMAGE_DATA_DIRECTORY *PIMAGE_DATA_DIRECTORY; +typedef IMAGE_DATA_DIRECTORY const *PCIMAGE_DATA_DIRECTORY; typedef struct _IMAGE_OPTIONAL_HEADER32 { - uint16_t Magic; - uint8_t MajorLinkerVersion; - uint8_t MinorLinkerVersion; - uint32_t SizeOfCode; - uint32_t SizeOfInitializedData; - uint32_t SizeOfUninitializedData; - uint32_t AddressOfEntryPoint; - uint32_t BaseOfCode; - uint32_t BaseOfData; - uint32_t ImageBase; - uint32_t SectionAlignment; - uint32_t FileAlignment; - uint16_t MajorOperatingSystemVersion; - uint16_t MinorOperatingSystemVersion; - uint16_t MajorImageVersion; - uint16_t MinorImageVersion; - uint16_t MajorSubsystemVersion; - uint16_t MinorSubsystemVersion; - uint32_t Win32VersionValue; - uint32_t SizeOfImage; - uint32_t SizeOfHeaders; - uint32_t CheckSum; - uint16_t Subsystem; - uint16_t DllCharacteristics; - uint32_t SizeOfStackReserve; - uint32_t SizeOfStackCommit; - uint32_t SizeOfHeapReserve; - uint32_t SizeOfHeapCommit; - uint32_t LoaderFlags; - uint32_t NumberOfRvaAndSizes; - IMAGE_DATA_DIRECTORY DataDirectory[IMAGE_NUMBEROF_DIRECTORY_ENTRIES]; -} IMAGE_OPTIONAL_HEADER32; + uint16_t Magic; /**< 0x00 */ + uint8_t MajorLinkerVersion; /**< 0x02 */ + uint8_t MinorLinkerVersion; /**< 0x03 */ + uint32_t SizeOfCode; /**< 0x04 */ + uint32_t SizeOfInitializedData; /**< 0x08 */ + uint32_t SizeOfUninitializedData; /**< 0x0c */ + uint32_t AddressOfEntryPoint; /**< 0x10 */ + uint32_t BaseOfCode; /**< 0x14 */ + uint32_t BaseOfData; /**< 0x18 */ + uint32_t ImageBase; /**< 0x1c */ + uint32_t SectionAlignment; /**< 0x20 */ + uint32_t FileAlignment; /**< 0x24 */ + uint16_t MajorOperatingSystemVersion; /**< 0x28 */ + uint16_t MinorOperatingSystemVersion; /**< 0x2a */ + uint16_t MajorImageVersion; /**< 0x2c */ + uint16_t MinorImageVersion; /**< 0x2e */ + uint16_t MajorSubsystemVersion; /**< 0x30 */ + uint16_t MinorSubsystemVersion; /**< 0x32 */ + uint32_t Win32VersionValue; /**< 0x34 */ + uint32_t SizeOfImage; /**< 0x38 */ + uint32_t SizeOfHeaders; /**< 0x3c */ + uint32_t CheckSum; /**< 0x40 */ + uint16_t Subsystem; /**< 0x44 */ + uint16_t DllCharacteristics; /**< 0x46 */ + uint32_t SizeOfStackReserve; /**< 0x48 */ + uint32_t SizeOfStackCommit; /**< 0x4c */ + uint32_t SizeOfHeapReserve; /**< 0x50 */ + uint32_t SizeOfHeapCommit; /**< 0x54 */ + uint32_t LoaderFlags; /**< 0x58 */ + uint32_t NumberOfRvaAndSizes; /**< 0x5c */ + IMAGE_DATA_DIRECTORY DataDirectory[IMAGE_NUMBEROF_DIRECTORY_ENTRIES]; /**< 0x60; 0x10*8 = 0x80 */ +} IMAGE_OPTIONAL_HEADER32; /* size: 0xe0 */ +AssertCompileSize(IMAGE_OPTIONAL_HEADER32, 0xe0); typedef IMAGE_OPTIONAL_HEADER32 *PIMAGE_OPTIONAL_HEADER32; +typedef IMAGE_OPTIONAL_HEADER32 const *PCIMAGE_OPTIONAL_HEADER32; typedef struct _IMAGE_OPTIONAL_HEADER64 { - uint16_t Magic; - uint8_t MajorLinkerVersion; - uint8_t MinorLinkerVersion; - uint32_t SizeOfCode; - uint32_t SizeOfInitializedData; - uint32_t SizeOfUninitializedData; - uint32_t AddressOfEntryPoint; - uint32_t BaseOfCode; - uint64_t ImageBase; - uint32_t SectionAlignment; - uint32_t FileAlignment; - uint16_t MajorOperatingSystemVersion; - uint16_t MinorOperatingSystemVersion; - uint16_t MajorImageVersion; - uint16_t MinorImageVersion; - uint16_t MajorSubsystemVersion; - uint16_t MinorSubsystemVersion; - uint32_t Win32VersionValue; - uint32_t SizeOfImage; - uint32_t SizeOfHeaders; - uint32_t CheckSum; - uint16_t Subsystem; - uint16_t DllCharacteristics; - uint64_t SizeOfStackReserve; - uint64_t SizeOfStackCommit; - uint64_t SizeOfHeapReserve; - uint64_t SizeOfHeapCommit; - uint32_t LoaderFlags; - uint32_t NumberOfRvaAndSizes; - IMAGE_DATA_DIRECTORY DataDirectory[IMAGE_NUMBEROF_DIRECTORY_ENTRIES]; -} IMAGE_OPTIONAL_HEADER64; + uint16_t Magic; /**< 0x00 */ + uint8_t MajorLinkerVersion; /**< 0x02 */ + uint8_t MinorLinkerVersion; /**< 0x03 */ + uint32_t SizeOfCode; /**< 0x04 */ + uint32_t SizeOfInitializedData; /**< 0x08 */ + uint32_t SizeOfUninitializedData; /**< 0x0c */ + uint32_t AddressOfEntryPoint; /**< 0x10 */ + uint32_t BaseOfCode; /**< 0x14 */ + uint64_t ImageBase; /**< 0x18 */ + uint32_t SectionAlignment; /**< 0x20 */ + uint32_t FileAlignment; /**< 0x24 */ + uint16_t MajorOperatingSystemVersion; /**< 0x28 */ + uint16_t MinorOperatingSystemVersion; /**< 0x2a */ + uint16_t MajorImageVersion; /**< 0x2c */ + uint16_t MinorImageVersion; /**< 0x2e */ + uint16_t MajorSubsystemVersion; /**< 0x30 */ + uint16_t MinorSubsystemVersion; /**< 0x32 */ + uint32_t Win32VersionValue; /**< 0x34 */ + uint32_t SizeOfImage; /**< 0x38 */ + uint32_t SizeOfHeaders; /**< 0x3c */ + uint32_t CheckSum; /**< 0x40 */ + uint16_t Subsystem; /**< 0x44 */ + uint16_t DllCharacteristics; /**< 0x46 */ + uint64_t SizeOfStackReserve; /**< 0x48 */ + uint64_t SizeOfStackCommit; /**< 0x50 */ + uint64_t SizeOfHeapReserve; /**< 0x58 */ + uint64_t SizeOfHeapCommit; /**< 0x60 */ + uint32_t LoaderFlags; /**< 0x68 */ + uint32_t NumberOfRvaAndSizes; /**< 0x6c */ + IMAGE_DATA_DIRECTORY DataDirectory[IMAGE_NUMBEROF_DIRECTORY_ENTRIES]; /**< 0x70; 0x10*8 = 0x80 */ +} IMAGE_OPTIONAL_HEADER64; /* size: 0xf0 */ typedef IMAGE_OPTIONAL_HEADER64 *PIMAGE_OPTIONAL_HEADER64; +typedef IMAGE_OPTIONAL_HEADER64 const *PCIMAGE_OPTIONAL_HEADER64; typedef struct _IMAGE_NT_HEADERS { - uint32_t Signature; - IMAGE_FILE_HEADER FileHeader; - IMAGE_OPTIONAL_HEADER32 OptionalHeader; -} IMAGE_NT_HEADERS32; + uint32_t Signature; /**< 0x00 */ + IMAGE_FILE_HEADER FileHeader; /**< 0x04 */ + IMAGE_OPTIONAL_HEADER32 OptionalHeader; /**< 0x18 */ +} IMAGE_NT_HEADERS32; /* size: 0xf8 */ +AssertCompileSize(IMAGE_NT_HEADERS32, 0xf8); +AssertCompileMemberOffset(IMAGE_NT_HEADERS32, FileHeader, 4); +AssertCompileMemberOffset(IMAGE_NT_HEADERS32, OptionalHeader, 24); typedef IMAGE_NT_HEADERS32 *PIMAGE_NT_HEADERS32; +typedef IMAGE_NT_HEADERS32 const *PCIMAGE_NT_HEADERS32; typedef struct _IMAGE_NT_HEADERS64 { - uint32_t Signature; - IMAGE_FILE_HEADER FileHeader; - IMAGE_OPTIONAL_HEADER64 OptionalHeader; -} IMAGE_NT_HEADERS64; + uint32_t Signature; /**< 0x00 */ + IMAGE_FILE_HEADER FileHeader; /**< 0x04 */ + IMAGE_OPTIONAL_HEADER64 OptionalHeader; /**< 0x18 */ +} IMAGE_NT_HEADERS64; /**< 0x108 */ +AssertCompileSize(IMAGE_NT_HEADERS64, 0x108); +AssertCompileMemberOffset(IMAGE_NT_HEADERS64, FileHeader, 4); +AssertCompileMemberOffset(IMAGE_NT_HEADERS64, OptionalHeader, 24); typedef IMAGE_NT_HEADERS64 *PIMAGE_NT_HEADERS64; +typedef IMAGE_NT_HEADERS64 const *PCIMAGE_NT_HEADERS64; typedef struct _IMAGE_SECTION_HEADER @@ -335,6 +443,7 @@ uint32_t Characteristics; } IMAGE_SECTION_HEADER; typedef IMAGE_SECTION_HEADER *PIMAGE_SECTION_HEADER; +typedef IMAGE_SECTION_HEADER const *PCIMAGE_SECTION_HEADER; typedef struct _IMAGE_BASE_RELOCATION @@ -343,6 +452,7 @@ uint32_t SizeOfBlock; } IMAGE_BASE_RELOCATION; typedef IMAGE_BASE_RELOCATION *PIMAGE_BASE_RELOCATION; +typedef IMAGE_BASE_RELOCATION const *PCIMAGE_BASE_RELOCATION; typedef struct _IMAGE_EXPORT_DIRECTORY @@ -358,7 +468,9 @@ uint32_t AddressOfFunctions; uint32_t AddressOfNames; uint32_t AddressOfNameOrdinals; -} IMAGE_EXPORT_DIRECTORY, *PIMAGE_EXPORT_DIRECTORY; +} IMAGE_EXPORT_DIRECTORY; +typedef IMAGE_EXPORT_DIRECTORY *PIMAGE_EXPORT_DIRECTORY; +typedef IMAGE_EXPORT_DIRECTORY const *PCIMAGE_EXPORT_DIRECTORY; typedef struct _IMAGE_IMPORT_DESCRIPTOR @@ -374,6 +486,7 @@ uint32_t FirstThunk; } IMAGE_IMPORT_DESCRIPTOR; typedef IMAGE_IMPORT_DESCRIPTOR *PIMAGE_IMPORT_DESCRIPTOR; +typedef IMAGE_IMPORT_DESCRIPTOR const *PCIMAGE_IMPORT_DESCRIPTOR; typedef struct _IMAGE_IMPORT_BY_NAME @@ -382,6 +495,7 @@ uint8_t Name[1]; } IMAGE_IMPORT_BY_NAME; typedef IMAGE_IMPORT_BY_NAME *PIMAGE_IMPORT_BY_NAME; +typedef IMAGE_IMPORT_BY_NAME const *PCIMAGE_IMPORT_BY_NAME; /* The image_thunk_data32/64 structures are not very helpful except for getting RSI. keep them around till all the code has been converted. */ @@ -396,6 +510,7 @@ } u1; } IMAGE_THUNK_DATA64; typedef IMAGE_THUNK_DATA64 *PIMAGE_THUNK_DATA64; +typedef IMAGE_THUNK_DATA64 const *PCIMAGE_THUNK_DATA64; typedef struct _IMAGE_THUNK_DATA32 { @@ -408,9 +523,60 @@ } u1; } IMAGE_THUNK_DATA32; typedef IMAGE_THUNK_DATA32 *PIMAGE_THUNK_DATA32; +typedef IMAGE_THUNK_DATA32 const *PCIMAGE_THUNK_DATA32; -typedef struct _IMAGE_LOAD_CONFIG_DIRECTORY32 + +/* WARNING! NO MORE PRAGMA PACK 4 from here on. Assert size of all new types. */ +/* WARNING! NO MORE PRAGMA PACK 4 from here on. Assert size of all new types. */ +/* WARNING! NO MORE PRAGMA PACK 4 from here on. Assert size of all new types. */ +/* WARNING! NO MORE PRAGMA PACK 4 from here on. Assert size of all new types. */ +/* WARNING! NO MORE PRAGMA PACK 4 from here on. Assert size of all new types. */ +/* WARNING! NO MORE PRAGMA PACK 4 from here on. Assert size of all new types. */ +/* WARNING! NO MORE PRAGMA PACK 4 from here on. Assert size of all new types. */ +/* WARNING! NO MORE PRAGMA PACK 4 from here on. Assert size of all new types. */ +/* WARNING! NO MORE PRAGMA PACK 4 from here on. Assert size of all new types. */ +#pragma pack() + + +/** @since Windows 10 (preview 9879) */ +typedef struct _IMAGE_LOAD_CONFIG_CODE_INTEGRITY +{ + uint16_t Flags; + uint16_t Catalog; + uint32_t CatalogOffset; + uint32_t Reserved; +} IMAGE_LOAD_CONFIG_CODE_INTEGRITY; +AssertCompileSize(IMAGE_LOAD_CONFIG_CODE_INTEGRITY, 12); +typedef IMAGE_LOAD_CONFIG_CODE_INTEGRITY *PIMAGE_LOAD_CONFIG_CODE_INTEGRITY; +typedef IMAGE_LOAD_CONFIG_CODE_INTEGRITY const *PCIMAGE_LOAD_CONFIG_CODE_INTEGRITY; + +typedef struct _IMAGE_LOAD_CONFIG_DIRECTORY32_V1 +{ + uint32_t Size; + uint32_t TimeDateStamp; + uint16_t MajorVersion; + uint16_t MinorVersion; + uint32_t GlobalFlagsClear; + uint32_t GlobalFlagsSet; + uint32_t CriticalSectionDefaultTimeout; + uint32_t DeCommitFreeBlockThreshold; + uint32_t DeCommitTotalFreeThreshold; + uint32_t LockPrefixTable; + uint32_t MaximumAllocationSize; + uint32_t VirtualMemoryThreshold; + uint32_t ProcessHeapFlags; + uint32_t ProcessAffinityMask; + uint16_t CSDVersion; + uint16_t Reserved1; + uint32_t EditList; + uint32_t SecurityCookie; +} IMAGE_LOAD_CONFIG_DIRECTORY32_V1; +AssertCompileSize(IMAGE_LOAD_CONFIG_DIRECTORY32_V1, 0x40); +typedef IMAGE_LOAD_CONFIG_DIRECTORY32_V1 *PIMAGE_LOAD_CONFIG_DIRECTORY32_V1; +typedef IMAGE_LOAD_CONFIG_DIRECTORY32_V1 const *PCIMAGE_LOAD_CONFIG_DIRECTORY32_V1; + +typedef struct _IMAGE_LOAD_CONFIG_DIRECTORY32_V2 { uint32_t Size; uint32_t TimeDateStamp; @@ -432,10 +598,84 @@ uint32_t SecurityCookie; uint32_t SEHandlerTable; uint32_t SEHandlerCount; -} IMAGE_LOAD_CONFIG_DIRECTORY32; -typedef IMAGE_LOAD_CONFIG_DIRECTORY32 PIMAGE_LOAD_CONFIG_DIRECTORY32; +} IMAGE_LOAD_CONFIG_DIRECTORY32_V2; +AssertCompileSize(IMAGE_LOAD_CONFIG_DIRECTORY32_V2, 0x48); +typedef IMAGE_LOAD_CONFIG_DIRECTORY32_V2 *PIMAGE_LOAD_CONFIG_DIRECTORY32_V2; +typedef IMAGE_LOAD_CONFIG_DIRECTORY32_V2 const *PCIMAGE_LOAD_CONFIG_DIRECTORY32_V2; -typedef struct _IMAGE_LOAD_CONFIG_DIRECTORY64 +typedef struct _IMAGE_LOAD_CONFIG_DIRECTORY32_V3 +{ + uint32_t Size; + uint32_t TimeDateStamp; + uint16_t MajorVersion; + uint16_t MinorVersion; + uint32_t GlobalFlagsClear; + uint32_t GlobalFlagsSet; + uint32_t CriticalSectionDefaultTimeout; + uint32_t DeCommitFreeBlockThreshold; + uint32_t DeCommitTotalFreeThreshold; + uint32_t LockPrefixTable; + uint32_t MaximumAllocationSize; + uint32_t VirtualMemoryThreshold; + uint32_t ProcessHeapFlags; + uint32_t ProcessAffinityMask; + uint16_t CSDVersion; + uint16_t Reserved1; + uint32_t EditList; + uint32_t SecurityCookie; + uint32_t SEHandlerTable; + uint32_t SEHandlerCount; + uint32_t GuardCFCCheckFunctionPointer; + uint32_t Reserved2; + uint32_t GuardCFFunctionTable; + uint32_t GuardCFFunctionCount; + uint32_t GuardFlags; +} IMAGE_LOAD_CONFIG_DIRECTORY32_V3; +AssertCompileSize(IMAGE_LOAD_CONFIG_DIRECTORY32_V3, 0x5c); +typedef IMAGE_LOAD_CONFIG_DIRECTORY32_V3 *PIMAGE_LOAD_CONFIG_DIRECTORY32_V3; +typedef IMAGE_LOAD_CONFIG_DIRECTORY32_V3 const *PCIMAGE_LOAD_CONFIG_DIRECTORY32_V3; + +/** @since Windows 10 (preview 9879) */ +typedef struct _IMAGE_LOAD_CONFIG_DIRECTORY32_V4 +{ + uint32_t Size; + uint32_t TimeDateStamp; + uint16_t MajorVersion; + uint16_t MinorVersion; + uint32_t GlobalFlagsClear; + uint32_t GlobalFlagsSet; + uint32_t CriticalSectionDefaultTimeout; + uint32_t DeCommitFreeBlockThreshold; + uint32_t DeCommitTotalFreeThreshold; + uint32_t LockPrefixTable; + uint32_t MaximumAllocationSize; + uint32_t VirtualMemoryThreshold; + uint32_t ProcessHeapFlags; + uint32_t ProcessAffinityMask; + uint16_t CSDVersion; + uint16_t Reserved1; + uint32_t EditList; + uint32_t SecurityCookie; + uint32_t SEHandlerTable; + uint32_t SEHandlerCount; + uint32_t GuardCFCCheckFunctionPointer; + uint32_t Reserved2; + uint32_t GuardCFFunctionTable; + uint32_t GuardCFFunctionCount; + uint32_t GuardFlags; + IMAGE_LOAD_CONFIG_CODE_INTEGRITY CodeIntegrity; +} IMAGE_LOAD_CONFIG_DIRECTORY32_V4; +AssertCompileSize(IMAGE_LOAD_CONFIG_DIRECTORY32_V4, 0x68); +typedef IMAGE_LOAD_CONFIG_DIRECTORY32_V4 *PIMAGE_LOAD_CONFIG_DIRECTORY32_V4; +typedef IMAGE_LOAD_CONFIG_DIRECTORY32_V4 const *PCIMAGE_LOAD_CONFIG_DIRECTORY32_V4; + +typedef IMAGE_LOAD_CONFIG_DIRECTORY32_V4 IMAGE_LOAD_CONFIG_DIRECTORY32; +typedef PIMAGE_LOAD_CONFIG_DIRECTORY32_V4 PIMAGE_LOAD_CONFIG_DIRECTORY32; +typedef PCIMAGE_LOAD_CONFIG_DIRECTORY32_V4 PCIMAGE_LOAD_CONFIG_DIRECTORY32; + +/* No _IMAGE_LOAD_CONFIG_DIRECTORY64_V1 exists. */ + +typedef struct _IMAGE_LOAD_CONFIG_DIRECTORY64_V2 { uint32_t Size; uint32_t TimeDateStamp; @@ -457,8 +697,82 @@ uint64_t SecurityCookie; uint64_t SEHandlerTable; uint64_t SEHandlerCount; -} IMAGE_LOAD_CONFIG_DIRECTORY64; -typedef IMAGE_LOAD_CONFIG_DIRECTORY64 *PIMAGE_LOAD_CONFIG_DIRECTORY64; +} IMAGE_LOAD_CONFIG_DIRECTORY64_V2; +AssertCompileSize(IMAGE_LOAD_CONFIG_DIRECTORY64_V2, 0x70); +typedef IMAGE_LOAD_CONFIG_DIRECTORY64_V2 *PIMAGE_LOAD_CONFIG_DIRECTORY64_V2; +typedef IMAGE_LOAD_CONFIG_DIRECTORY64_V2 const *PCIMAGE_LOAD_CONFIG_DIRECTORY64_V2; + +#pragma pack(4) /* Why not 8 byte alignment, baka microsofties?!? */ +typedef struct _IMAGE_LOAD_CONFIG_DIRECTORY64_V3 +{ + uint32_t Size; + uint32_t TimeDateStamp; + uint16_t MajorVersion; + uint16_t MinorVersion; + uint32_t GlobalFlagsClear; + uint32_t GlobalFlagsSet; + uint32_t CriticalSectionDefaultTimeout; + uint64_t DeCommitFreeBlockThreshold; + uint64_t DeCommitTotalFreeThreshold; + uint64_t LockPrefixTable; + uint64_t MaximumAllocationSize; + uint64_t VirtualMemoryThreshold; + uint64_t ProcessAffinityMask; + uint32_t ProcessHeapFlags; + uint16_t CSDVersion; + uint16_t Reserved1; + uint64_t EditList; + uint64_t SecurityCookie; + uint64_t SEHandlerTable; + uint64_t SEHandlerCount; + uint64_t GuardCFCCheckFunctionPointer; + uint64_t Reserved2; + uint64_t GuardCFFunctionTable; + uint64_t GuardCFFunctionCount; + uint32_t GuardFlags; +} IMAGE_LOAD_CONFIG_DIRECTORY64_V3; +#pragma pack() +AssertCompileSize(IMAGE_LOAD_CONFIG_DIRECTORY64_V3, 0x94); +typedef IMAGE_LOAD_CONFIG_DIRECTORY64_V3 *PIMAGE_LOAD_CONFIG_DIRECTORY64_V3; +typedef IMAGE_LOAD_CONFIG_DIRECTORY64_V3 const *PCIMAGE_LOAD_CONFIG_DIRECTORY64_V3; + +/** @since Windows 10 (Preview (9879). */ +typedef struct _IMAGE_LOAD_CONFIG_DIRECTORY64_V4 +{ + uint32_t Size; + uint32_t TimeDateStamp; + uint16_t MajorVersion; + uint16_t MinorVersion; + uint32_t GlobalFlagsClear; + uint32_t GlobalFlagsSet; + uint32_t CriticalSectionDefaultTimeout; + uint64_t DeCommitFreeBlockThreshold; + uint64_t DeCommitTotalFreeThreshold; + uint64_t LockPrefixTable; + uint64_t MaximumAllocationSize; + uint64_t VirtualMemoryThreshold; + uint64_t ProcessAffinityMask; + uint32_t ProcessHeapFlags; + uint16_t CSDVersion; + uint16_t Reserved1; + uint64_t EditList; + uint64_t SecurityCookie; + uint64_t SEHandlerTable; + uint64_t SEHandlerCount; + uint64_t GuardCFCCheckFunctionPointer; + uint64_t Reserved2; + uint64_t GuardCFFunctionTable; + uint64_t GuardCFFunctionCount; + uint32_t GuardFlags; + IMAGE_LOAD_CONFIG_CODE_INTEGRITY CodeIntegrity; +} IMAGE_LOAD_CONFIG_DIRECTORY64_V4; +AssertCompileSize(IMAGE_LOAD_CONFIG_DIRECTORY64_V4, 0xa0); +typedef IMAGE_LOAD_CONFIG_DIRECTORY64_V4 *PIMAGE_LOAD_CONFIG_DIRECTORY64_V4; +typedef IMAGE_LOAD_CONFIG_DIRECTORY64_V4 const *PCIMAGE_LOAD_CONFIG_DIRECTORY64_V4; + +typedef IMAGE_LOAD_CONFIG_DIRECTORY64_V4 IMAGE_LOAD_CONFIG_DIRECTORY64; +typedef PIMAGE_LOAD_CONFIG_DIRECTORY64_V4 PIMAGE_LOAD_CONFIG_DIRECTORY64; +typedef PCIMAGE_LOAD_CONFIG_DIRECTORY64_V4 PCIMAGE_LOAD_CONFIG_DIRECTORY64; typedef struct _IMAGE_DEBUG_DIRECTORY @@ -472,8 +786,21 @@ uint32_t AddressOfRawData; uint32_t PointerToRawData; } IMAGE_DEBUG_DIRECTORY; +AssertCompileSize(IMAGE_DEBUG_DIRECTORY, 28); typedef IMAGE_DEBUG_DIRECTORY *PIMAGE_DEBUG_DIRECTORY; +typedef IMAGE_DEBUG_DIRECTORY const *PCIMAGE_DEBUG_DIRECTORY; +typedef struct _IMAGE_DEBUG_MISC +{ + uint32_t DataType; + uint32_t Length; + uint8_t Unicode; + uint8_t Reserved[3]; + uint8_t Data[1]; +} IMAGE_DEBUG_MISC; +AssertCompileSize(IMAGE_DEBUG_MISC, 16); +typedef IMAGE_DEBUG_MISC *PIMAGE_DEBUG_MISC; +typedef IMAGE_DEBUG_MISC const *PCIMAGE_DEBUG_MISC; typedef struct WIN_CERTIFICATE { @@ -482,9 +809,228 @@ uint16_t wCertificateType; uint8_t bCertificate[8]; } WIN_CERTIFICATE; +AssertCompileSize(WIN_CERTIFICATE, 16); typedef WIN_CERTIFICATE *PWIN_CERTIFICATE; +typedef WIN_CERTIFICATE const *PCWIN_CERTIFICATE; + + +/** The header of a .DBG file (NT4). */ +typedef struct _IMAGE_SEPARATE_DEBUG_HEADER +{ + uint16_t Signature; /**< 0x00 */ + uint16_t Flags; /**< 0x02 */ + uint16_t Machine; /**< 0x04 */ + uint16_t Characteristics; /**< 0x06 */ + uint32_t TimeDateStamp; /**< 0x08 */ + uint32_t CheckSum; /**< 0x0c */ + uint32_t ImageBase; /**< 0x10 */ + uint32_t SizeOfImage; /**< 0x14 */ + uint32_t NumberOfSections; /**< 0x18 */ + uint32_t ExportedNamesSize; /**< 0x1c */ + uint32_t DebugDirectorySize; /**< 0x20 */ + uint32_t SectionAlignment; /**< 0x24 */ + uint32_t Reserved[2]; /**< 0x28 */ +} IMAGE_SEPARATE_DEBUG_HEADER; /* size: 0x30 */ +AssertCompileSize(IMAGE_SEPARATE_DEBUG_HEADER, 0x30); +typedef IMAGE_SEPARATE_DEBUG_HEADER *PIMAGE_SEPARATE_DEBUG_HEADER; +typedef IMAGE_SEPARATE_DEBUG_HEADER const *PCIMAGE_SEPARATE_DEBUG_HEADER; + + +typedef struct _IMAGE_COFF_SYMBOLS_HEADER +{ + uint32_t NumberOfSymbols; + uint32_t LvaToFirstSymbol; + uint32_t NumberOfLinenumbers; + uint32_t LvaToFirstLinenumber; + uint32_t RvaToFirstByteOfCode; + uint32_t RvaToLastByteOfCode; + uint32_t RvaToFirstByteOfData; + uint32_t RvaToLastByteOfData; +} IMAGE_COFF_SYMBOLS_HEADER; +AssertCompileSize(IMAGE_COFF_SYMBOLS_HEADER, 0x20); +typedef IMAGE_COFF_SYMBOLS_HEADER *PIMAGE_COFF_SYMBOLS_HEADER; +typedef IMAGE_COFF_SYMBOLS_HEADER const *PCIMAGE_COFF_SYMBOLS_HEADER; + +#pragma pack(2) +typedef struct _IMAGE_LINENUMBER +{ + union + { + uint32_t VirtualAddress; + uint32_t SymbolTableIndex; + } Type; + uint16_t Linenumber; +} IMAGE_LINENUMBER; #pragma pack() +AssertCompileSize(IMAGE_LINENUMBER, 6); +typedef IMAGE_LINENUMBER *PIMAGE_LINENUMBER; +typedef IMAGE_LINENUMBER const *PCIMAGE_LINENUMBER; + + +#pragma pack(2) +typedef struct _IMAGE_SYMBOL +{ + union + { + uint8_t ShortName[8]; + struct + { + uint32_t Short; + uint32_t Long; + } Name; + uint32_t LongName[2]; + } N; + + uint32_t Value; + int16_t SectionNumber; + uint16_t Type; + uint8_t StorageClass; + uint8_t NumberOfAuxSymbols; +} IMAGE_SYMBOL; +#pragma pack() +AssertCompileSize(IMAGE_SYMBOL, IMAGE_SIZE_OF_SYMBOL); +typedef IMAGE_SYMBOL *PIMAGE_SYMBOL; +typedef IMAGE_SYMBOL const *PCIMAGE_SYMBOL; + + +#pragma pack(2) +typedef struct IMAGE_AUX_SYMBOL_TOKEN_DEF +{ + uint8_t bAuxType; + uint8_t bReserved; + uint32_t SymbolTableIndex; + uint8_t rgbReserved[12]; +} IMAGE_AUX_SYMBOL_TOKEN_DEF; +#pragma pack() +AssertCompileSize(IMAGE_AUX_SYMBOL_TOKEN_DEF, IMAGE_SIZE_OF_SYMBOL); +typedef IMAGE_AUX_SYMBOL_TOKEN_DEF *PIMAGE_AUX_SYMBOL_TOKEN_DEF; +typedef IMAGE_AUX_SYMBOL_TOKEN_DEF const *PCIMAGE_AUX_SYMBOL_TOKEN_DEF; + + +#pragma pack(1) +typedef union _IMAGE_AUX_SYMBOL +{ + struct + { + uint32_t TagIndex; + union + { + struct + { + uint16_t Linenumber; + uint16_t Size; + } LnSz; + } Misc; + union + { + struct + { + uint32_t PointerToLinenumber; + uint32_t PointerToNextFunction; + } Function; + struct + { + uint16_t Dimension[4]; + } Array; + } FcnAry; + uint16_t TvIndex; + } Sym; + + struct + { + uint8_t Name[IMAGE_SIZE_OF_SYMBOL]; + } File; + + struct + { + uint32_t Length; + uint16_t NumberOfRelocations; + uint16_t NumberOfLinenumbers; + uint32_t CheckSum; + uint16_t Number; + uint8_t Selection; + uint8_t bReserved; + uint16_t HighNumber; + } Section; + + IMAGE_AUX_SYMBOL_TOKEN_DEF TokenDef; + struct + { + uint32_t crc; + uint8_t rgbReserved[14]; + } CRC; +} IMAGE_AUX_SYMBOL; +#pragma pack() +AssertCompileSize(IMAGE_AUX_SYMBOL, IMAGE_SIZE_OF_SYMBOL); +typedef IMAGE_AUX_SYMBOL *PIMAGE_AUX_SYMBOL; +typedef IMAGE_AUX_SYMBOL const *PCIMAGE_AUX_SYMBOL; + + + +typedef struct _IMAGE_SYMBOL_EX +{ + union + { + uint8_t ShortName[8]; + struct + { + uint32_t Short; + uint32_t Long; + } Name; + uint32_t LongName[2]; + } N; + + uint32_t Value; + int32_t SectionNumber; /* The difference from IMAGE_SYMBOL */ + uint16_t Type; + uint8_t StorageClass; + uint8_t NumberOfAuxSymbols; +} IMAGE_SYMBOL_EX; +AssertCompileSize(IMAGE_SYMBOL_EX, IMAGE_SIZE_OF_SYMBOL_EX); +typedef IMAGE_SYMBOL_EX *PIMAGE_SYMBOL_EX; +typedef IMAGE_SYMBOL_EX const *PCIMAGE_SYMBOL_EX; + + +typedef union _IMAGE_AUX_SYMBOL_EX +{ + struct + { + uint32_t WeakDefaultSymIndex; + uint32_t WeakSearchType; + uint8_t rgbReserved[12]; + } Sym; + + struct + { + uint8_t Name[IMAGE_SIZE_OF_SYMBOL_EX]; + } File; + + struct + { + uint32_t Length; + uint16_t NumberOfRelocations; + uint16_t NumberOfLinenumbers; + uint32_t CheckSum; + uint16_t Number; + uint8_t Selection; + uint8_t bReserved; + uint16_t HighNumber; + uint8_t rgbReserved[2]; + } Section; + + IMAGE_AUX_SYMBOL_TOKEN_DEF TokenDef; + + struct + { + uint32_t crc; + uint8_t rgbReserved[16]; + } CRC; +} IMAGE_AUX_SYMBOL_EX; +AssertCompileSize(IMAGE_AUX_SYMBOL_EX, IMAGE_SIZE_OF_SYMBOL_EX); +typedef IMAGE_AUX_SYMBOL_EX *PIMAGE_AUX_SYMBOL_EX; +typedef IMAGE_AUX_SYMBOL_EX const *PCIMAGE_AUX_SYMBOL_EX; + #endif diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Runtime/include/internal/thread.h virtualbox-4.1.44-dfsg/src/VBox/Runtime/include/internal/thread.h --- virtualbox-4.1.12-dfsg/src/VBox/Runtime/include/internal/thread.h 2012-04-02 13:29:03.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Runtime/include/internal/thread.h 2015-11-11 15:09:08.000000000 +0000 @@ -139,6 +139,16 @@ */ DECLHIDDEN(int) rtThreadNativeInit(void); +#ifdef IN_RING3 +/** + * Called when IPRT was first initialized in unobtrusive mode and later changed + * to obtrustive. + * + * This is only applicable in ring-3. + */ +DECLHIDDEN(void) rtThreadNativeReInitObtrusive(void); +#endif + /** * Create a native thread. * This creates the thread as described in pThreadInt and stores the thread id in *pThread. @@ -199,6 +209,9 @@ DECLHIDDEN(PRTTHREADINT) rtThreadGetByNative(RTNATIVETHREAD NativeThread); DECLHIDDEN(PRTTHREADINT) rtThreadGet(RTTHREAD Thread); DECLHIDDEN(int) rtThreadInit(void); +#ifdef IN_RING3 +DECLHIDDEN(void) rtThreadReInitObtrusive(void); +#endif DECLHIDDEN(void) rtThreadTerm(void); DECLHIDDEN(void) rtThreadInsert(PRTTHREADINT pThread, RTNATIVETHREAD NativeThread); #ifdef IN_RING3 diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Runtime/Makefile.kmk virtualbox-4.1.44-dfsg/src/VBox/Runtime/Makefile.kmk --- virtualbox-4.1.12-dfsg/src/VBox/Runtime/Makefile.kmk 2012-04-02 13:28:59.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Runtime/Makefile.kmk 2015-11-11 15:08:57.000000000 +0000 @@ -1,6 +1,6 @@ # $Id: Makefile.kmk $ ## @file -# Sub-Makefile for the IPRT (IPRT). +# Sub-Makefile for the IPRT. # # @@ -43,9 +43,10 @@ # # Only build the testsuite. # - LIBRARIES += RuntimeGuestR3 RuntimeGuestR3Shared RuntimeR3 RuntimeR0 + LIBRARIES += RuntimeGuestR3 RuntimeGuestR3Shared RuntimeR3 RuntimeR0 RuntimeBldProg LIBRARIES.solaris += RuntimeR0Stub LIBRARIES.win += RuntimeR0Stub + include $(PATH_SUB_CURRENT)/tools/Makefile.kmk else ifdef VBOX_ONLY_DOCS # @@ -140,9 +141,9 @@ IPRT_BLDCFG_TYPE=\"$(KBUILD_TYPE)\" # -# Unicode Specification reader used to regenerate unidata.cpp. +# Unicode Specification reader used to regenerate unidata-*.cpp. # -uniread_TEMPLATE = VBOXBLDPROG +uniread_TEMPLATE = VBoxBldProg uniread_SOURCES = common/string/uniread.cpp uniread_INCS = include @@ -178,6 +179,7 @@ win/amd64/ASMGetDR7.asm \ common/asm/ASMAtomicCmpXchgU8.asm \ common/asm/ASMMultU64ByU32DivByU32.asm \ + common/asm/ASMCpuId_Idx_ECX.asm \ common/asm/ASMNopPause.asm # @@ -185,7 +187,8 @@ # RuntimeWin32ASM_SOURCES = \ common/asm/ASMAtomicCmpXchgU8.asm \ - common/asm/ASMMultU64ByU32DivByU32.asm + common/asm/ASMMultU64ByU32DivByU32.asm \ + common/asm/ASMCpuId_Idx_ECX.asm # # NoCRT sources (minus math stuff). @@ -212,7 +215,16 @@ RuntimeR3_TEMPLATE = VBoxR3Static RuntimeR3_SDKS = VBOX_LIBXML2 VBOX_OPENSSL VBOX_BOOST ## @todo why is BOOST and XML2 here? r3/xml.cpp is not in this lib... RuntimeR3_SDKS.win = WINPSDK $(VBOX_WINDDK) -RuntimeR3_DEFS = IN_RT_R3 IN_SUP_R3 LDR_WITH_NATIVE LDR_WITH_ELF32 LDR_WITH_PE RT_WITH_VBOX RT_NO_GIP +RuntimeR3_DEFS = \ + IN_RT_R3 \ + IN_SUP_R3 \ + LDR_WITH_NATIVE \ + LDR_WITH_ELF32 \ + LDR_WITH_PE \ + RT_WITH_VBOX \ + RT_NO_GIP \ + RT_WITHOUT_NOCRT_WRAPPERS \ + IPRT_WITH_OPENSSL #RuntimeR3_DEFS += RTMEM_WRAP_TO_EF_APIS ifdef IPRT_WITH_KSTUFF RuntimeR3_DEFS += LDR_WITH_KLDR @@ -250,10 +262,41 @@ common/alloc/heapoffset.cpp \ common/alloc/memcache.cpp \ common/alloc/memtracker.cpp \ + common/asn1/asn1-basics.cpp \ + common/asn1/asn1-cursor.cpp \ + common/asn1/asn1-default-allocator.cpp \ + common/asn1/asn1-efence-allocator.cpp \ + common/asn1/asn1-dump.cpp \ + common/asn1/asn1-encode.cpp \ + common/asn1/asn1-ut-bitstring.cpp \ + common/asn1/asn1-ut-bitstring-decode.cpp \ + common/asn1/asn1-ut-boolean.cpp \ + common/asn1/asn1-ut-boolean-decode.cpp \ + common/asn1/asn1-ut-core.cpp \ + common/asn1/asn1-ut-core-decode.cpp \ + common/asn1/asn1-ut-dyntype.cpp \ + common/asn1/asn1-ut-dyntype-decode.cpp \ + common/asn1/asn1-ut-integer.cpp \ + common/asn1/asn1-ut-integer-decode.cpp \ + common/asn1/asn1-ut-null.cpp \ + common/asn1/asn1-ut-null-decode.cpp \ + common/asn1/asn1-ut-objid.cpp \ + common/asn1/asn1-ut-objid-decode.cpp \ + common/asn1/asn1-ut-octetstring.cpp \ + common/asn1/asn1-ut-octetstring-decode.cpp \ + common/asn1/asn1-ut-string.cpp \ + common/asn1/asn1-ut-string-decode.cpp \ + common/asn1/asn1-ut-time.cpp \ + common/asn1/asn1-ut-time-decode.cpp \ common/checksum/adler32.cpp \ common/checksum/crc32.cpp \ common/checksum/crc64.cpp \ - common/checksum/md5.cpp \ + common/checksum/alt-md2.cpp \ + common/checksum/alt-md5.cpp \ + common/checksum/alt-sha1.cpp \ + common/checksum/alt-sha256.cpp \ + common/checksum/alt-sha512.cpp \ + common/checksum/md2str.cpp \ common/checksum/md5str.cpp \ common/checksum/ipv4.cpp \ common/checksum/ipv6.cpp \ @@ -262,12 +305,54 @@ common/checksum/manifest3.cpp \ common/checksum/manifest-file.cpp \ common/checksum/RTSha1Digest.cpp \ - common/checksum/sha1.cpp \ + common/checksum/RTSha256Digest.cpp \ common/checksum/sha1str.cpp \ - common/checksum/sha256.cpp \ + common/checksum/sha224str.cpp \ common/checksum/sha256str.cpp \ - common/checksum/sha512.cpp \ + common/checksum/sha384str.cpp \ common/checksum/sha512str.cpp \ + common/checksum/sha512t224str.cpp \ + common/checksum/sha512t256str.cpp \ + common/crypto/digest-core.cpp \ + common/crypto/digest-builtin.cpp \ + common/crypto/iprt-openssl.cpp \ + common/crypto/rsa-asn1-decoder.cpp \ + common/crypto/rsa-core.cpp \ + common/crypto/rsa-init.cpp \ + common/crypto/rsa-sanity.cpp \ + common/crypto/pemfile.cpp \ + common/crypto/pkcs7-asn1-decoder.cpp \ + common/crypto/pkcs7-core.cpp \ + common/crypto/pkcs7-init.cpp \ + common/crypto/pkcs7-sanity.cpp \ + common/crypto/pkcs7-verify.cpp \ + common/crypto/pkix-signature-builtin.cpp \ + common/crypto/pkix-signature-core.cpp \ + common/crypto/pkix-signature-rsa.cpp \ + common/crypto/pkix-util.cpp \ + common/crypto/pkix-verify.cpp \ + common/crypto/spc-asn1-decoder.cpp \ + common/crypto/spc-core.cpp \ + common/crypto/spc-init.cpp \ + common/crypto/spc-sanity.cpp \ + common/crypto/x509-asn1-decoder.cpp \ + common/crypto/x509-certpaths.cpp \ + common/crypto/x509-core.cpp \ + common/crypto/x509-file.cpp \ + common/crypto/x509-init.cpp \ + common/crypto/x509-sanity.cpp \ + common/crypto/x509-verify.cpp \ + common/crypto/taf-asn1-decoder.cpp \ + common/crypto/taf-core.cpp \ + common/crypto/taf-init.cpp \ + common/crypto/taf-sanity.cpp \ + common/crypto/tsp-asn1-decoder.cpp \ + common/crypto/tsp-core.cpp \ + common/crypto/tsp-init.cpp \ + common/crypto/tsp-sanity.cpp \ + common/crypto/store.cpp \ + common/crypto/store-inmem.cpp \ + common/crypto/RTCrStoreCertAddFromFile.cpp \ common/dbg/dbg.cpp \ common/dbg/dbgas.cpp \ common/dbg/dbgmod.cpp \ @@ -278,6 +363,7 @@ common/dvm/dvmgpt.cpp \ common/dvm/dvmmbr.cpp \ common/err/errinfo.cpp \ + common/err/errinfo-alloc.cpp \ common/err/errmsg.cpp \ common/err/RTErrConvertFromErrno.cpp \ common/err/RTErrConvertToErrno.cpp \ @@ -295,6 +381,7 @@ common/log/logformat.cpp \ common/log/tracebuf.cpp \ common/log/tracedefault.cpp \ + common/math/bignum.cpp \ common/misc/RTAssertMsg1Weak.cpp \ common/misc/RTAssertMsg2.cpp \ common/misc/RTAssertMsg2Add.cpp \ @@ -325,6 +412,7 @@ common/misc/circbuf.cpp \ common/misc/thread.cpp \ common/misc/term.cpp \ + common/misc/zero.asm \ common/path/rtPathRootSpecLen.cpp \ common/path/rtPathVolumeSpecLen.cpp \ common/path/RTPathAbsDup.cpp \ @@ -371,6 +459,16 @@ common/string/RTStrNLenEx.cpp \ common/string/RTStrPrintHexBytes.cpp \ common/string/RTStrStr.cpp \ + common/string/RTUtf16Copy.cpp \ + common/string/RTUtf16CopyAscii.cpp \ + common/string/RTUtf16Cat.cpp \ + common/string/RTUtf16CatAscii.cpp \ + common/string/RTUtf16CmpAscii.cpp \ + common/string/RTUtf16ICmpAscii.cpp \ + common/string/RTUtf16End.cpp \ + common/string/RTUtf16NLen.cpp \ + common/string/RTUtf16NLenEx.cpp \ + common/string/RTUtf16PrintHexBytes.cpp \ common/string/base64.cpp \ common/string/simplepattern.cpp \ common/string/straprintf.cpp \ @@ -386,10 +484,15 @@ common/string/strtonum.cpp \ common/string/strversion.cpp \ common/string/uni.cpp \ - common/string/unidata.cpp \ + common/string/unidata-flags.cpp \ + common/string/unidata-lower.cpp \ + common/string/unidata-upper.cpp \ common/string/utf-16.cpp \ + common/string/utf-16-case.cpp \ + common/string/utf-16-latin-1.cpp \ common/string/utf-8.cpp \ common/string/utf-8-case.cpp \ + common/string/utf-8-case2.cpp \ common/string/ministring.cpp \ common/table/avlgcptr.cpp \ common/table/avlhcphys.cpp \ @@ -443,8 +546,10 @@ generic/RTLogWriteStdErr-generic.cpp \ generic/RTLogWriteStdOut-generic.cpp \ generic/RTLogWriteUser-generic.cpp \ + generic/RTPathGetCurrentDrive-generic.cpp \ generic/RTTimerLRCreate-generic.cpp \ generic/mempool-generic.cpp \ + generic/memsafer-generic.cpp \ generic/semfastmutex-generic.cpp \ generic/semxroads-generic.cpp \ generic/spinlock-generic.cpp \ @@ -489,6 +594,13 @@ RuntimeR3_SOURCES += common/misc/lzjb.c endif +# AMD64 / x86 assembly code. +RuntimeR3_SOURCES.x86 += \ + common/math/bignum-amd64-x86.asm +RuntimeR3_SOURCES.amd64 += \ + common/math/bignum-amd64-x86.asm \ + common/math/RTUInt128MulByU64.asm + # Some versions of GCC might require this. RuntimeR3_SOURCES.x86 += \ common/asm/ASMAtomicXchgU64.asm \ @@ -522,6 +634,7 @@ generic/RTFileExists-generic.cpp \ generic/RTMpGetCurFrequency-generic.cpp \ generic/RTMpGetMaxFrequency-generic.cpp \ + generic/RTPathAbs-generic.cpp \ generic/RTRandAdvCreateSystemFaster-generic.cpp \ generic/RTRandAdvCreateSystemTruer-generic.cpp \ generic/RTSemEventWait-generic.cpp \ @@ -538,6 +651,8 @@ generic/RTThreadGetNativeState-generic.cpp \ nt/RTErrConvertFromNtStatus.cpp \ r3/posix/env-posix.cpp \ + r3/nt/pathint-nt.cpp \ + r3/nt/RTProcQueryParent-r3-nt.cpp \ r3/win/RTHandleGetStandard-win.cpp \ r3/win/RTSystemQueryOSInfo-win.cpp \ r3/win/RTSystemQueryDmiString-win.cpp \ @@ -547,6 +662,7 @@ r3/win/errvars-win.cpp \ r3/win/fileio-win.cpp \ r3/win/fs-win.cpp \ + r3/win/init-win.cpp \ r3/win/ldrNative-win.cpp \ r3/win/localipc-win.cpp \ r3/win/mp-win.cpp \ @@ -571,16 +687,19 @@ r3/win/utf8-win.cpp \ r3/win/RTUuidCreate-win.cpp \ win/errmsgwin.cpp \ - win/RTErrConvertFromWin32.cpp + win/RTErrConvertFromWin32.cpp \ + common/string/mempcpy.asm -RuntimeR3_SOURCES.win.amd64 = $(RuntimeWin64ASM_SOURCES) -RuntimeR3_SOURCES.win.x86 = $(RuntimeWin32ASM_SOURCES) +RuntimeR3_SOURCES.win.amd64 := $(RuntimeWin64ASM_SOURCES) +RuntimeR3_SOURCES.win.x86 := $(RuntimeWin32ASM_SOURCES) RuntimeR3_SOURCES.linux = \ generic/RTDirQueryInfo-generic.cpp \ generic/RTDirSetTimes-generic.cpp \ generic/RTFileMove-generic.cpp \ generic/RTLogWriteDebugger-generic.cpp \ + generic/RTPathAbs-generic.cpp \ + generic/RTPathGetCurrentOnDrive-generic.cpp \ generic/RTProcDaemonize-generic.cpp \ generic/RTSemEventMultiWait-2-ex-generic.cpp \ generic/RTSemEventMultiWaitNoResume-2-ex-generic.cpp \ @@ -663,6 +782,8 @@ generic/RTDirSetTimes-generic.cpp \ generic/RTFileMove-generic.cpp \ generic/RTLogWriteDebugger-generic.cpp \ + generic/RTPathAbs-generic.cpp \ + generic/RTPathGetCurrentOnDrive-generic.cpp \ generic/RTProcDaemonize-generic.cpp \ generic/RTRandAdvCreateSystemFaster-generic.cpp \ generic/RTRandAdvCreateSystemTruer-generic.cpp \ @@ -730,6 +851,8 @@ generic/RTDirSetTimes-generic.cpp \ generic/RTFileMove-generic.cpp \ generic/RTLogWriteDebugger-generic.cpp \ + generic/RTPathAbs-generic.cpp \ + generic/RTPathGetCurrentOnDrive-generic.cpp \ generic/RTProcDaemonize-generic.cpp \ generic/RTThreadGetAffinity-stub-generic.cpp \ generic/RTThreadSetAffinity-stub-generic.cpp \ @@ -794,6 +917,8 @@ generic/RTDirSetTimes-generic.cpp \ generic/RTFileMove-generic.cpp \ generic/RTLogWriteDebugger-generic.cpp \ + generic/RTPathAbs-generic.cpp \ + generic/RTPathGetCurrentOnDrive-generic.cpp \ generic/RTSemEventMultiWait-2-ex-generic.cpp \ generic/RTSemEventMultiWaitNoResume-2-ex-generic.cpp \ generic/RTSystemQueryDmiString-generic.cpp \ @@ -859,6 +984,8 @@ generic/RTDirSetTimes-generic.cpp \ generic/RTFileMove-generic.cpp \ generic/RTLogWriteDebugger-generic.cpp \ + generic/RTPathAbs-generic.cpp \ + generic/RTPathGetCurrentOnDrive-generic.cpp \ generic/RTProcDaemonize-generic.cpp \ generic/RTProcIsRunningByName-generic.cpp \ generic/RTSemEventMultiWait-2-ex-generic.cpp \ @@ -948,6 +1075,8 @@ generic/RTDirSetTimes-generic.cpp \ generic/RTFileMove-generic.cpp \ generic/RTLogWriteDebugger-generic.cpp \ + generic/RTPathAbs-generic.cpp \ + generic/RTPathGetCurrentOnDrive-generic.cpp \ generic/RTProcDaemonize-generic.cpp \ generic/RTSystemQueryOSInfo-generic.cpp \ generic/RTSystemQueryDmiString-generic.cpp \ @@ -1000,11 +1129,12 @@ # Note! This is a bit of hacky since kBuild doesn't support building libraries # for build programs. # -RuntimeBldProg_TEMPLATE := VBOXBLDPROG -RuntimeBldProg_EXTENDS := RuntimeR3 -RuntimeBldProg_BLD_TRG := $(KBUILD_HOST) -RuntimeBldProg_BLD_TRG_ARCH := $(KBUILD_HOST_ARCH) -RuntimeBldProg_BLD_TRG_CPU := $(KBUILD_HOST_CPU) +RuntimeBldProg_TEMPLATE := VBoxAdvBldProg +RuntimeBldProg_EXTENDS := RuntimeR3 +RuntimeBldProg_BLD_TRG := $(KBUILD_HOST) +RuntimeBldProg_BLD_TRG_ARCH := $(KBUILD_HOST_ARCH) +RuntimeBldProg_BLD_TRG_CPU := $(KBUILD_HOST_CPU) +RuntimeBldProg_DEFS := $(RuntimeR3_DEFS) IPRT_WITHOUT_LDR_VERIFY # @@ -1015,9 +1145,9 @@ RuntimeGuestR3_TEMPLATE := VBOXGUESTR3LIB ## @todo change this to EXTEND the RuntimeR3 target. RuntimeGuestR3_SDKS.win := $(RuntimeR3_SDKS.win) -RuntimeGuestR3_DEFS := $(filter-out RTCRITSECT_STRICT RT_NO_GIP, $(RuntimeR3_DEFS)) +RuntimeGuestR3_DEFS := $(filter-out RTCRITSECT_STRICT RT_NO_GIP IPRT_WITH_OPENSSL, $(RuntimeR3_DEFS)) RuntimeGuestR3_DEFS.$(KBUILD_TARGET) := $(RuntimeR3_DEFS.$(KBUILD_TARGET)) -RuntimeGuestR3_DEFS.$(KBUILD_HOST) := $(RuntimeR3_DEFS.$(KBUILD_HOST)) +RuntimeGuestR3_DEFS.$(KBUILD_HOST) := $(RuntimeR3_DEFS.$(KBUILD_HOST)) RuntimeGuestR3_INCS := $(RuntimeR3_INCS) RuntimeGuestR3_INCS.$(KBUILD_TARGET) := $(RuntimeR3_INCS.$(KBUILD_TARGET)) RuntimeGuestR3_INCS.$(KBUILD_HOST) := $(RuntimeR3_INCS.$(KBUILD_HOST)) @@ -1025,8 +1155,7 @@ common/time/timesupref.cpp \ common/time/timesupA.asm \ common/time/timesup.cpp \ - common/checksum/RTSha1Digest.cpp \ - common/checksum/sha% \ + common/checksum/openssl-% \ generic/RTLogWriteUser-generic.cpp \ , $(RuntimeR3_SOURCES)) RuntimeGuestR3_SOURCES += \ @@ -1136,10 +1265,15 @@ common/string/stringalloc.cpp \ common/string/strprintf.cpp \ common/string/strtonum.cpp \ - common/string/unidata.cpp \ + common/string/unidata-flags.cpp \ + common/string/unidata-lower.cpp \ + common/string/unidata-upper.cpp \ common/string/utf-8.cpp \ common/string/utf-8-case.cpp \ + common/string/utf-8-case2.cpp \ common/string/utf-16.cpp \ + common/string/utf-16-case.cpp \ + common/string/utf-16-latin-1.cpp \ common/table/avlpv.cpp \ generic/critsect-generic.cpp \ generic/pathhost-generic.cpp \ @@ -1204,13 +1338,13 @@ # RuntimeLnxHostR3 Linux host program runtime # (Only used when building L4.) # -RuntimeLnxHostR3_TEMPLATE = VBOXLNXHOSTR3LIB -RuntimeLnxHostR3_DEFS = IN_RT_R3 IN_SUP_R3 RT_WITH_VBOX RT_NO_GIP -RuntimeLnxHostR3_SOURCES = \ +RuntimeLnxHostR3_TEMPLATE := VBOXLNXHOSTR3LIB +RuntimeLnxHostR3_DEFS := IN_RT_R3 IN_SUP_R3 RT_WITH_VBOX RT_NO_GIP +RuntimeLnxHostR3_SOURCES := \ $(RuntimeR3_SOURCES.linux.$(KBUILD_TARGET_ARCH)) \ $(RuntimeR3_SOURCES.linux) \ $(RuntimeR3_SOURCES) -RuntimeLnxHostR3_INCS = \ +RuntimeLnxHostR3_INCS := \ $(RuntimeR3_INCS.linux.$(KBUILD_TARGET_ARCH)) \ $(RuntimeR3_INCS.linux) \ $(RuntimeR3_INCS) @@ -1221,29 +1355,27 @@ # VBoxRT_TEMPLATE = VBoxR3DllNoPic VBoxRT_SDKS = VBOX_OPENSSL VBOX_LIBXML2 VBOX_BOOST -ifdef VBOX_WITH_LIBCURL - VBoxRT_SDKS += VBOX_LIBCURL -endif VBoxRT_SDKS.win = WINPSDK $(VBOX_WINDDK) VBOX_NTDLL -if1of ($(KBUILD_TARGET)$(VBOX_WITH_HARDENING), darwin win) +if1of ($(KBUILD_TARGET)$(VBOX_WITH_HARDENING), darwin win$(VBOX_WITH_HARDENING)) VBoxRT_INST = $(INST_DLL) $(INST_TESTCASE) endif -VBoxRT_DEFS = $(filter-out RT_NO_GIP,$(RuntimeR3_DEFS)) IN_SUP_R3 IN_SUP_R3 +VBoxRT_DEFS := $(filter-out RT_NO_GIP, $(RuntimeR3_DEFS)) \ + IN_SUP_R3 IN_SUP_R3 \ + $(if-expr !defined(VBOX_WITH_ALT_HASH_CODE),IPRT_WITHOUT_SHA512T224 IPRT_WITHOUT_SHA512T256,) ifn1of ($(KBUILD_TARGET_ARCH), amd64 x86) VBoxRT_DEFS += RT_NO_GIP endif -VBoxRT_DEFS.$(KBUILD_TYPE) = $(RuntimeR3_DEFS.$(KBUILD_TYPE)) -VBoxRT_SOURCES = \ +VBoxRT_DEFS.$(KBUILD_TYPE) := $(RuntimeR3_DEFS.$(KBUILD_TYPE)) +VBoxRT_SOURCES := \ VBox/VBoxRTDeps.cpp \ r3/xml.cpp \ - $(filter-out common/checksum/crc32.cpp, $(RuntimeR3_SOURCES)) \ + $(filter-out common/checksum/crc32.cpp, \ + $(if-expr defined(VBOX_WITH_ALT_HASH_CODE), $(RuntimeR3_SOURCES), \ + $(patsubst common/checksum/alt-%,common/checksum/openssl-%,$(RuntimeR3_SOURCES)) ) ) \ common/checksum/crc32-zlib.cpp -ifdef VBOX_WITH_LIBCURL - VBoxRT_SOURCES += common/misc/s3.cpp -endif VBoxRT_SOURCES.$(KBUILD_TARGET) = $(RuntimeR3_SOURCES.$(KBUILD_TARGET)) -VBoxRT_SOURCES.$(KBUILD_TARGET).$(KBUILD_TARGET_ARCH) = $(RuntimeR3_SOURCES.$(KBUILD_TARGET).$(KBUILD_TARGET_ARCH)) -VBoxRT_SOURCES.$(KBUILD_TARGET_ARCH) = $(RuntimeR3_SOURCES.$(KBUILD_TARGET_ARCH)) +VBoxRT_SOURCES.$(KBUILD_TARGET).$(KBUILD_TARGET_ARCH) := $(RuntimeR3_SOURCES.$(KBUILD_TARGET).$(KBUILD_TARGET_ARCH)) +VBoxRT_SOURCES.$(KBUILD_TARGET_ARCH) := $(RuntimeR3_SOURCES.$(KBUILD_TARGET_ARCH)) VBoxRT_SOURCES.win += \ r3/win/dllmain-win.cpp \ r3/win/fileaio-win.cpp \ @@ -1256,9 +1388,9 @@ r3/posix/fileaio-posix.cpp VBoxRT_SOURCES.freebsd += \ r3/freebsd/fileaio-freebsd.cpp -VBoxRT_INCS = $(RuntimeR3_INCS) -VBoxRT_INCS.$(KBUILD_TARGET) = $(RuntimeR3_INCS.$(KBUILD_TARGET)) -VBoxRT_INCS.$(KBUILD_TARGET).$(KBUILD_TARGET_ARCH) = $(RuntimeR3_INCS.$(KBUILD_TARGET).$(KBUILD_TARGET_ARCH)) +VBoxRT_INCS := $(RuntimeR3_INCS) +VBoxRT_INCS.$(KBUILD_TARGET) := $(RuntimeR3_INCS.$(KBUILD_TARGET)) +VBoxRT_INCS.$(KBUILD_TARGET).$(KBUILD_TARGET_ARCH) := $(RuntimeR3_INCS.$(KBUILD_TARGET).$(KBUILD_TARGET_ARCH)) VBoxRT_LIBS = \ $(PATH_STAGE_LIB)/VBox-liblzf$(VBOX_SUFF_LIB) if1of ($(KBUILD_TARGET_ARCH), amd64 x86) @@ -1299,11 +1431,19 @@ endif VBoxRT_LIBS.win = \ $(PATH_SDK_$(VBOX_WINDDK)_LIB)/vccomsup.lib \ - $(PATH_SDK_$(VBOX_WINDDK)_LIB)/wbemuuid.lib + $(PATH_SDK_$(VBOX_WINDDK)_LIB)/wbemuuid.lib \ + $(PATH_TOOL_$(VBOX_VCC_TOOL)_LIB)/delayimp.lib VBoxRT_LDFLAGS.darwin = -framework IOKit -framework CoreFoundation -framework CoreServices -install_name $(VBOX_DYLD_EXECUTABLE_PATH)/VBoxRT.dylib ifdef VBOX_USE_VCC80 VBoxRT_LDFLAGS.win = /MANIFEST endif +VBoxRT_LDFLAGS.win += \ + /delayload:gdi32.dll \ + /delayload:user32.dll \ + /delayload:shell32.dll \ + /delayload:ole32.dll \ + /delayload:oleaut32.dll \ + /delayload:advapi32.dll VBoxRT_LDFLAGS.l4 = \ -Wl,-whole-archive \ $(PATH_STAGE_LIB)/RuntimeR3L4$(VBOX_SUFF_LIB) \ @@ -1336,7 +1476,7 @@ VBoxRT_NOINST = true DLLS += VBoxRTDummy -VBoxRTDummy_TEMPLATE = VBOXR3 +VBoxRTDummy_TEMPLATE = VBoxR3Dll VBoxRTDummy_NOINST = true VBoxRTDummy_LIBS = $(PATH_STAGE_BIN)/VBoxRT.so VBoxRTDummy_CLEAN= $(PATH_STAGE_BIN)/VBoxRT.so @@ -1369,13 +1509,13 @@ # This is used together with VBoxRT. # ## @todo the *_alias.c stuff is busted, remove and use RT_WITH_NOCRT_ALIASES instead. -RuntimeR3NoCRTGCC_TEMPLATE = VBOXNOCRTGCC +RuntimeR3NoCRTGCC_TEMPLATE = VBoxNoCrtGccLib RuntimeR3NoCRTGCC_LIBSUFF = $(VBOX_SUFF_LIB) ifn1of ($(KBUILD_TARGET_ARCH), amd64 x86) RuntimeR3NoCRTGCC_DEFS += RT_NO_GIP endif -RuntimeR3NoCRTGCC_INCS = include -RuntimeR3NoCRTGCC_SOURCES = \ +RuntimeR3NoCRTGCC_INCS = include +RuntimeR3NoCRTGCC_SOURCES := \ common/misc/sanity-cpp.cpp \ common/misc/sanity-c.c \ \ @@ -1441,8 +1581,6 @@ common/math/gcc/xordi3.c -## @todo stop using the old memcpy.c and memset.c code. - # # RuntimeR0 - Ring-0 library for VMMR0. # @@ -1452,7 +1590,7 @@ RuntimeR0_DEFS += RT_NO_GIP endif RuntimeR0_INCS = include -RuntimeR0_SOURCES = \ +RuntimeR0_SOURCES := \ common/log/logellipsis.cpp \ common/log/logrelellipsis.cpp \ common/log/logcom.cpp \ @@ -1501,6 +1639,7 @@ common/table/avlou32.cpp \ common/time/timesup.cpp \ generic/RTAssertShouldPanic-generic.cpp \ + generic/critsect-generic.cpp \ \ $(RuntimeNoCrt_SOURCES) @@ -1533,8 +1672,8 @@ RuntimeR0_SOURCES += common/time/timesupref.cpp #endif -RuntimeR0_SOURCES.win.amd64 = $(RuntimeWin64ASM_SOURCES) -RuntimeR0_SOURCES.win.x86 = $(RuntimeWin32ASM_SOURCES) +RuntimeR0_SOURCES.win.amd64 := $(RuntimeWin64ASM_SOURCES) +RuntimeR0_SOURCES.win.x86 := $(RuntimeWin32ASM_SOURCES) RuntimeR0_SOURCES.win = \ nt/NtProcessStartup-stub.cpp @@ -1558,7 +1697,7 @@ RuntimeR0Drv_TEMPLATE = VBOXR0DRV RuntimeR0Drv_SDKS.win = $(VBOX_WINDDK) WINPSDKINCS RuntimeR0Drv_DEFS = IN_RT_R0 RT_WITH_VBOX RT_WITHOUT_NOCRT_WRAPPERS RT_NO_EXPORT_SYMBOL -RuntimeR0Drv_DEFS.win = IN_SUP_R0 +RuntimeR0Drv_DEFS.win = IN_SUP_R0 LDR_ONLY_PE RuntimeR0Drv_DEFS.linux = MODULE KBUILD_MODNAME=KBUILD_STR\(vboxdrv\) KBUILD_BASENAME=KBUILD_STR\(vboxdrv\) IN_SUP_R0 RuntimeR0Drv_INCS := $(PATH_SUB_CURRENT) include @@ -1574,9 +1713,9 @@ common/alloc/alloc.cpp \ common/alloc/heapsimple.cpp \ common/alloc/heapoffset.cpp \ + common/checksum/alt-md5.cpp \ common/checksum/crc32.cpp \ common/checksum/crc64.cpp \ - common/checksum/md5.cpp \ common/checksum/ipv4.cpp \ common/checksum/ipv6.cpp \ common/log/log.cpp \ @@ -1603,6 +1742,7 @@ common/misc/sanity-c.c \ common/misc/sanity-cpp.cpp \ common/misc/term.cpp \ + common/misc/RTMemWipeThoroughly.cpp \ common/path/rtPathVolumeSpecLen.cpp \ common/path/RTPathAbsDup.cpp \ common/path/RTPathAbsEx.cpp \ @@ -1642,8 +1782,15 @@ common/string/strprintf.cpp \ common/string/strtonum.cpp \ common/string/stringalloc.cpp \ - common/string/utf-16.cpp \ + common/string/unidata-flags.cpp \ + common/string/unidata-lower.cpp \ + common/string/unidata-upper.cpp \ common/string/utf-8.cpp \ + common/string/utf-8-case.cpp \ + common/string/utf-8-case2.cpp \ + common/string/utf-16.cpp \ + common/string/utf-16-case.cpp \ + common/string/utf-16-latin-1.cpp \ common/table/avlpv.cpp \ common/time/time.cpp \ generic/RTLogWriteStdErr-stub-generic.cpp \ @@ -1654,6 +1801,7 @@ generic/RTSemEventWaitNoResume-2-ex-generic.cpp \ generic/RTSemEventMultiWait-2-ex-generic.cpp \ generic/RTSemEventMultiWaitNoResume-2-ex-generic.cpp \ + generic/critsect-generic.cpp \ generic/errvars-generic.cpp \ generic/uuid-generic.cpp \ r0drv/alloc-r0drv.cpp \ @@ -1661,6 +1809,12 @@ r0drv/generic/semspinmutex-r0drv-generic.c \ VBox/log-vbox.cpp \ +RuntimeR0Drv_SOURCES.amd64 = \ + common/math/bignum-amd64-x86.asm \ + common/math/RTUInt128MulByU64.asm +RuntimeR0Drv_SOURCES.x86 = \ + common/math/bignum-amd64-x86.asm + RuntimeR0Drv_SOURCES.linux = \ common/misc/thread.cpp \ common/string/strpbrk.cpp \ @@ -1692,6 +1846,99 @@ r0drv/powernotification-r0drv.c RuntimeR0Drv_SOURCES.win = \ + common/ldr/ldr.cpp \ + common/ldr/ldrEx.cpp \ + common/ldr/ldrPE.cpp \ + common/asn1/asn1-basics.cpp \ + common/asn1/asn1-dump.cpp \ + common/asn1/asn1-cursor.cpp \ + common/asn1/asn1-default-allocator.cpp \ + common/asn1/asn1-encode.cpp \ + common/asn1/asn1-ut-bitstring.cpp \ + common/asn1/asn1-ut-bitstring-decode.cpp \ + common/asn1/asn1-ut-boolean.cpp \ + common/asn1/asn1-ut-boolean-decode.cpp \ + common/asn1/asn1-ut-core.cpp \ + common/asn1/asn1-ut-core-decode.cpp \ + common/asn1/asn1-ut-dyntype.cpp \ + common/asn1/asn1-ut-dyntype-decode.cpp \ + common/asn1/asn1-ut-integer.cpp \ + common/asn1/asn1-ut-integer-decode.cpp \ + common/asn1/asn1-ut-null.cpp \ + common/asn1/asn1-ut-null-decode.cpp \ + common/asn1/asn1-ut-objid.cpp \ + common/asn1/asn1-ut-objid-decode.cpp \ + common/asn1/asn1-ut-octetstring.cpp \ + common/asn1/asn1-ut-octetstring-decode.cpp \ + common/asn1/asn1-ut-string.cpp \ + common/asn1/asn1-ut-string-decode.cpp \ + common/asn1/asn1-ut-time.cpp \ + common/asn1/asn1-ut-time-decode.cpp \ + common/crypto/digest-core.cpp \ + common/crypto/digest-builtin.cpp \ + common/crypto/rsa-asn1-decoder.cpp \ + common/crypto/rsa-core.cpp \ + common/crypto/rsa-init.cpp \ + common/crypto/rsa-sanity.cpp \ + common/crypto/pkcs7-asn1-decoder.cpp \ + common/crypto/pkcs7-core.cpp \ + common/crypto/pkcs7-init.cpp \ + common/crypto/pkcs7-sanity.cpp \ + common/crypto/pkcs7-verify.cpp \ + common/crypto/pkix-signature-builtin.cpp \ + common/crypto/pkix-signature-core.cpp \ + common/crypto/pkix-signature-rsa.cpp \ + common/crypto/pkix-util.cpp \ + common/crypto/pkix-verify.cpp \ + common/crypto/spc-asn1-decoder.cpp \ + common/crypto/spc-core.cpp \ + common/crypto/spc-init.cpp \ + common/crypto/spc-sanity.cpp \ + common/crypto/x509-asn1-decoder.cpp \ + common/crypto/x509-certpaths.cpp \ + common/crypto/x509-core.cpp \ + common/crypto/x509-init.cpp \ + common/crypto/x509-sanity.cpp \ + common/crypto/x509-verify.cpp \ + common/crypto/store.cpp \ + common/crypto/store-inmem.cpp \ + common/crypto/taf-asn1-decoder.cpp \ + common/crypto/taf-core.cpp \ + common/crypto/taf-init.cpp \ + common/crypto/taf-sanity.cpp \ + common/crypto/tsp-asn1-decoder.cpp \ + common/crypto/tsp-core.cpp \ + common/crypto/tsp-init.cpp \ + common/crypto/tsp-sanity.cpp \ + common/checksum/alt-md2.cpp \ + common/checksum/alt-sha1.cpp \ + common/checksum/alt-sha256.cpp \ + common/checksum/alt-sha512.cpp \ + common/checksum/md2str.cpp \ + common/checksum/md5str.cpp \ + common/checksum/sha1str.cpp \ + common/checksum/sha224str.cpp \ + common/checksum/sha256str.cpp \ + common/checksum/sha384str.cpp \ + common/checksum/sha512str.cpp \ + common/checksum/sha512t224str.cpp \ + common/checksum/sha512t256str.cpp \ + common/err/errinfo.cpp \ + common/path/RTPathChangeToUnixSlashes.cpp \ + common/math/bignum.cpp \ + common/misc/zero.asm \ + common/string/RTStrPrintHexBytes.cpp \ + common/string/RTUtf16Copy.cpp \ + common/string/RTUtf16CopyAscii.cpp \ + common/string/RTUtf16Cat.cpp \ + common/string/RTUtf16CatAscii.cpp \ + common/string/RTUtf16End.cpp \ + common/string/RTUtf16NLen.cpp \ + common/string/RTUtf16NLenEx.cpp \ + common/string/RTUtf16PrintHexBytes.cpp \ + common/string/strstrip.cpp \ + generic/memsafer-generic.cpp \ + \ common/misc/thread.cpp \ common/string/memcmp.asm \ common/string/memchr.asm \ @@ -1727,10 +1974,11 @@ r0drv/nt/thread2-r0drv-nt.cpp \ r0drv/nt/time-r0drv-nt.cpp \ r0drv/nt/timer-r0drv-nt.cpp \ + r0drv/nt/toxic-chkstk-r0drv-nt.asm \ r0drv/nt/RTTimerGetSystemGranularity-r0drv-nt.cpp -RuntimeR0Drv_SOURCES.win.amd64 = $(RuntimeWin64ASM_SOURCES) -RuntimeR0Drv_SOURCES.win.x86 = $(RuntimeWin32ASM_SOURCES) +RuntimeR0Drv_SOURCES.win.amd64 := $(RuntimeWin64ASM_SOURCES) +RuntimeR0Drv_SOURCES.win.x86 := $(RuntimeWin32ASM_SOURCES) RuntimeR0Drv_SOURCES.darwin = \ common/err/RTErrConvertFromErrno.cpp \ @@ -1912,10 +2160,12 @@ # made irrelevant even for RuntimeR0Drv). # RuntimeGuestR0_TEMPLATE := VBOXGUESTR0LIB +RuntimeGuestR0_EXTENDS = RuntimeR0Drv RuntimeGuestR0_SOURCES := $(filter-out generic/RTLogWriteUser-generic.cpp, $(RuntimeR0Drv_SOURCES)) RuntimeGuestR0_SOURCES += \ VBox/logbackdoor.cpp -RuntimeGuestR0_EXTENDS = RuntimeR0Drv +RuntimeGuestR0_SOURCES.win := \ + $(filter-out common/checksum/md% common/checksum/sha%, $(RuntimeR0Drv_SOURCES.win)) # @@ -1933,10 +2183,10 @@ RuntimeRC_TEMPLATE = VBoxRc RuntimeRC_DEFS = IN_RT_RC RT_WITH_VBOX RuntimeRC_INCS = include - RuntimeRC_SOURCES = \ + RuntimeRC_SOURCES := \ + common/checksum/alt-md5.cpp \ common/checksum/crc32.cpp \ common/checksum/crc64.cpp \ - common/checksum/md5.cpp \ common/log/log.cpp \ common/log/logellipsis.cpp \ common/log/logrel.cpp \ @@ -2035,14 +2285,14 @@ # # Static library for new & delete for the electric fence. # -RuntimeEFCPP_TEMPLATE = $(VBoxRT_TEMPLATE) -RuntimeEFCPP_SDKS = $(RuntimeR3_SDKS) -RuntimeEFCPP_SDKS.$(KBUILD_TARGET) = $(RuntimeR3_SDKS.$(KBUILD_TARGET)) -RuntimeEFCPP_DEFS = $(RuntimeR3_DEFS) -RuntimeEFCPP_DEFS.$(KBUILD_TARGET) = $(RuntimeR3_DEFS.$(KBUILD_TARGET)) -RuntimeEFCPP_INCS = $(RuntimeR3_INCS) -RuntimeEFCPP_INCS.$(KBUILD_TARGET) = $(RuntimeR3_INCS.$(KBUILD_TARGET)) -RuntimeEFCPP_SOURCES = r3/alloc-ef-cpp.cpp +RuntimeEFCPP_TEMPLATE := $(VBoxRT_TEMPLATE) +RuntimeEFCPP_SDKS := $(RuntimeR3_SDKS) +RuntimeEFCPP_SDKS.$(KBUILD_TARGET) := $(RuntimeR3_SDKS.$(KBUILD_TARGET)) +RuntimeEFCPP_DEFS := $(RuntimeR3_DEFS) +RuntimeEFCPP_DEFS.$(KBUILD_TARGET) := $(RuntimeR3_DEFS.$(KBUILD_TARGET)) +RuntimeEFCPP_INCS := $(RuntimeR3_INCS) +RuntimeEFCPP_INCS.$(KBUILD_TARGET) := $(RuntimeR3_INCS.$(KBUILD_TARGET)) +RuntimeEFCPP_SOURCES := r3/alloc-ef-cpp.cpp @@ -2057,17 +2307,37 @@ # later WINDDK ntdll.lib have and thus we may easily end up with # images that does not load on older windows versions. # +if1of (win,$(KBUILD_TARGET) $(KBUILD_HOST)) RuntimeR3NtDll-amd64_TEMPLATE = VBoxR3Dll RuntimeR3NtDll-amd64_BLD_TRG_ARCH = amd64 RuntimeR3NtDll-amd64_ARFLAGS = /NODEFAULTLIB /MACHINE:amd64 RuntimeR3NtDll-amd64_SOURCES = \ - r3/win/ntdll-mini-implib.c \ r3/win/ntdll-mini-implib.def -RuntimeR3NtDll-x86_EXTENDS = RuntimeR3NtDll-amd64 +RuntimeR3NtDll-x86_TEMPLATE = VBoxR3Dll RuntimeR3NtDll-x86_BLD_TRG_ARCH = x86 RuntimeR3NtDll-x86_ARFLAGS = /NODEFAULTLIB /MACHINE:x86 - +RuntimeR3NtDll-x86_SOURCES = \ + r3/win/ntdll-mini-implib.def \ + $(RuntimeR3NtDll-x86_0_OUTDIR)/ntdll-mini-implib.asm +RuntimeR3NtDll-x86_CLEAN = \ + $(RuntimeR3NtDll-x86_0_OUTDIR)/ntdll-mini-implib.asm + +$$(RuntimeR3NtDll-x86_0_OUTDIR)/ntdll-mini-implib.asm: $(PATH_SUB_CURRENT)/r3/win/ntdll-mini-implib.def | $$(dir $$@) + $(call MSG_GENERATE,,$@,$<) + $(QUIET)$(APPEND) -nt "$@" \ + ';Autogenerated, do not edit' \ + '%include "iprt/asmdefs.mac"' \ + 'BEGINCODE' \ + '%macro IMPLIB_EXPORT 1' \ + 'global %1:function' \ + '%1: nop' \ + '%endm' \ + '' + $(QUIET)$(SED) -e '1,/EXPORTS/d' \ + -e 's/^.*;;=[[:space:]]*\([^[:space:]]*\)[[:space:]]*$$/IMPLIB_EXPORT \1/' \ + $< --append $@ +endif # # errmsg.cpp depends on a generated header. @@ -2322,6 +2592,10 @@ \ -e '/^VBoxHost_/d'\ -e '/^VBoxGuest_/d'\ + \ + -e '/^rtBigNum.*AssemblyWorker/d'\ + -e '/^rtBigNumElement2xDiv2xBy1x/d'\ + -e '/^rtBigNumKnuthD4_MulSub/d'\ | sort -u \ `; \ do \ @@ -2332,38 +2606,108 @@ done; \ exit $${rcExit} else - $(call MSG_L1,IPRT: Testing mangling...) - rcExit=0; \ - for fn in ` nm $^ \ - | $(SED) -n \ - -e 's/^[0-9a-f][0-9a-f]* //' \ - -e '/^[TUDB] /!d' \ - -e 's/^. //' \ - \ - -e '/^g_cchrt/d'\ - -e '/^g_frt/d'\ - -e '/^g_offrt/d'\ - -e '/^g_pfnrt/d'\ - -e '/^g_rt/d'\ - -e '/^g_szrt/d'\ - -e '/^g_ProcessSelf/d'\ - -e '/^g_u64ProgramStart/d'\ - -e '/^g_enmProcessPriority/d'\ - -e '/^g_hDbgModStrCache/d'\ - \ - -e '/^RTDBusLoadLib/d' \ - \ - -e '/^RT/p' \ - -e '/^g_/p' \ - | sort -u \ - `; \ - do \ - if $(SED) -ne '/\# *define '"$${fn}"' /q 1' $(PATH_ROOT)/include/iprt/mangling.h; then \ - echo "mangling.h: Missing # define "$${fn}" RT_MANGLER("$${fn}")"; \ - rcExit=1;\ - fi \ - done; \ - exit $${rcExit} +# Generate a SED script from mangling.h that checks for known symbols. + $(QUIET)$(SED) \ + -e '/# *define.*RT_MANGLER/!d' \ + -e 's/^.*RT_MANGLER(\([^)][^)]*\)).*$(DOLLAR)/\/^\1$(DOLLAR)\/b ok/' \ + $(PATH_ROOT)/include/iprt/mangling.h \ + --output "$@" + $(QUIET)$(APPEND) -n '$@' \ + ':bad' \ + 's/^\(.*\)$(DOLLAR)/error: Missing # define \1 /' \ + ':bad-pad' \ + '/^.\{0,70\}$(DOLLAR)/ { s/$(DOLLAR)/ /; bbad-pad; }' \ + 's/define \([^ ]*\) \([ ]*\)$(DOLLAR)/define \1 \2RT_MANGLER(\1)/' \ + 'p' \ + $(if-expr !defined(IPRT_IGNORE_TEST_MANGLING),'q 1') \ + '' \ + ':ok' \ + 'd' +# Find the best way to generate a symbol list and subject it to mangling.h. + if $(intersects $(KBUILD_TARGET), linux) && "$(VBOX_GCC_fvisibility-hidden)" + $(call MSG_L1,IPRT: Testing mangling and visiblity for newer gcc...) + $(QUIET)readelf -Ws $^ \ + | $(SED) \ + -e 's/[[:space:]]\+/ /g' \ + -e '/^ *[[:digit:]]\+:/!d' \ + -e 's/^ \+[[:digit:]]\+: \+[[:xdigit:]]\+ \+[[:digit:]]\+ \+//' \ + -e '/^SECTION/d' \ + -e '/^FILE/d' \ + -e 's/^[[:alpha:]]\+ \+//' \ + -e '/LOCAL/d' \ + -e 's/^[[:alpha:]]\+ \+//' \ + -e '/^HIDDEN [[:xdigit:]]\+ RT/bkeep-hidden' \ + -e '/^HIDDEN [[:xdigit:]]\+ g_[a-z0-9]*RT/bkeep-hidden' \ + -e '/^HIDDEN/d' \ + -e ':keep-hidden' \ + -e 's/^[[:alpha:]]\+ \+//' \ + -e '/^UND/d' \ + -e 's/^[[:digit:]]\+ \+//' \ + \ + -e '/^nocrt_/d' \ + -e '/^memchr/d' \ + -e '/^memcmp/d' \ + -e '/^memcpy/d' \ + -e '/^mempcpy/d' \ + -e '/^memmove/d' \ + -e '/^memset/d' \ + -e '/^strchr/d' \ + -e '/^strpbrk/d' \ + -e '/^_Z7strpbrk/d' \ + -e '/^strcmp/d' \ + -e '/^strcpy/d' \ + -e '/^strncpy/d' \ + -e '/^strlen/d' \ + -e '/^_Z[[:alpha:]]*[[:digit:]]\+RTC/d' \ + \ + -e '/^_ZnwjPv/d' \ + -e '/^_ZnwmPv/d' \ + -e '/^_ZNSt9bad_allocC1Ev/d' \ + -e '/^_ZNSt9exceptionC2Ev/d' \ + \ + -e '/^_ZN[a-zA-Z]*St[[:digit:]]*_*[lL]ist/d' \ + -e '/^_ZN[a-zA-Z]*[[:digit:]]*__gnu_cxx/d' \ + -e '/^_ZNSa.*ElementNode.*/d' \ + -e '/^_ZSt.*ElementNode.*/d' \ + \ + -e '/^_Z[[:digit:]]\+dbus/d' \ + -e '/^_Z13RTDBusLoadLibv/d' \ + \ + -e '/^VBoxHost_/d'\ + -e '/^VBoxGuest_/d'\ + \ + -e '/^rtBigNum.*AssemblyWorker/d'\ + -e '/^rtBigNumElement2xDiv2xBy1x/d'\ + -e '/^rtBigNumKnuthD4_MulSub/d'\ + | $(SED) -nf "$@" + endif + $(call MSG_L1,IPRT: Testing mangling using nm...) + $(QUIET)nm $^ 2> /dev/null \ + | $(SED) -n \ + -e 's/^[0-9a-f][0-9a-f]* //' \ + -e '/^[TUDB] /!d' \ + -e 's/^. //' \ + $(if-expr "$(KBUILD_TARGET)" == "darwin" || "$(KBUILD_TARGET)" == "os2" || "$(KBUILD_TARGET).$(KBUILD_TARGET_ARCH)" == "win.x86", \ + -e 's/^_//',) \ + \ + -e '/^g_cchrt/d'\ + -e '/^g_frt/d'\ + -e '/^g_offrt/d'\ + -e '/^g_pfnrt/d'\ + -e '/^g_rt/d'\ + -e '/^g_szrt/d'\ + -e '/^g_ProcessSelf/d'\ + -e '/^g_u64ProgramStart/d'\ + -e '/^g_enmProcessPriority/d'\ + -e '/^g_hDbgModStrCache/d'\ + -e '/^g_pfnR0Darwin/d'\ + -e '/^g_pDarwinLockGroup/d'\ + \ + -e '/^RTDBusLoadLib/d' \ + \ + -e '/^RT/p' \ + -e '/^g_/p' \ + | $(SED) -nf "$@" endif endif $(QUIET)$(APPEND) -t $@ @@ -2374,3 +2718,14 @@ # include $(KBUILD_PATH)/subfooter.kmk + +# +# Aliases for code templates. +# +rsa-template.o rsa-template.obj: rsa-core.o rsa-asn1-decoder.o rsa-sanity.o rsa-init.o +spc-template.o spc-template.obj: spc-core.o spc-asn1-decoder.o spc-sanity.o spc-init.o +taf-template.o taf-template.obj: taf-core.o taf-asn1-decoder.o taf-sanity.o taf-init.o +tsp-template.o tsp-template.obj: tsp-core.o tsp-asn1-decoder.o tsp-sanity.o tsp-init.o +x509-template.o x509-template.obj: x509-core.o x509-asn1-decoder.o x509-sanity.o x509-init.o +pkcs7-template.o pkcs7-template.obj: pkcs7-core.o pkcs7-asn1-decoder.o pkcs7-sanity.o pkcs7-init.o + diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Runtime/nt/RTErrConvertFromNtStatus.cpp virtualbox-4.1.44-dfsg/src/VBox/Runtime/nt/RTErrConvertFromNtStatus.cpp --- virtualbox-4.1.12-dfsg/src/VBox/Runtime/nt/RTErrConvertFromNtStatus.cpp 2012-04-02 13:29:03.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Runtime/nt/RTErrConvertFromNtStatus.cpp 2015-11-11 15:09:08.000000000 +0000 @@ -40,13 +40,28 @@ { switch (lNativeCode) { - case STATUS_SUCCESS: - return VINF_SUCCESS; - case STATUS_ALERTED: - case STATUS_USER_APC: - return VERR_INTERRUPTED; - case STATUS_OBJECT_NAME_NOT_FOUND: - return VERR_FILE_NOT_FOUND; + case STATUS_SUCCESS: return VINF_SUCCESS; + + case STATUS_ALERTED: return VERR_INTERRUPTED; + case STATUS_USER_APC: return VERR_INTERRUPTED; + + case STATUS_DATATYPE_MISALIGNMENT: return VERR_INVALID_POINTER; + case STATUS_NO_MORE_FILES: return VERR_NO_MORE_FILES; + case STATUS_NO_MORE_ENTRIES: return VERR_NO_MORE_FILES; + case STATUS_NO_MEMORY: return VERR_NO_MEMORY; + + case STATUS_INVALID_HANDLE: return VERR_INVALID_HANDLE; + case STATUS_INVALID_PARAMETER: return VERR_INVALID_PARAMETER; + case STATUS_INVALID_DEVICE_REQUEST: return VERR_IO_BAD_COMMAND; + case STATUS_ACCESS_DENIED: return VERR_ACCESS_DENIED; + case STATUS_OBJECT_TYPE_MISMATCH: return VERR_UNEXPECTED_FS_OBJ_TYPE; + case STATUS_OBJECT_NAME_INVALID: return VERR_INVALID_NAME; + case STATUS_OBJECT_NAME_NOT_FOUND: return VERR_FILE_NOT_FOUND; + case STATUS_OBJECT_PATH_INVALID: return VERR_INVALID_NAME; + case STATUS_OBJECT_PATH_NOT_FOUND: return VERR_PATH_NOT_FOUND; + case STATUS_OBJECT_PATH_SYNTAX_BAD: return VERR_INVALID_NAME; + case STATUS_BAD_NETWORK_PATH: return VERR_NET_PATH_NOT_FOUND; + case STATUS_NOT_A_DIRECTORY: return VERR_NOT_A_DIRECTORY; } /* unknown error. */ diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Runtime/r0drv/alloc-r0drv.h virtualbox-4.1.44-dfsg/src/VBox/Runtime/r0drv/alloc-r0drv.h --- virtualbox-4.1.12-dfsg/src/VBox/Runtime/r0drv/alloc-r0drv.h 2012-04-02 13:29:03.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Runtime/r0drv/alloc-r0drv.h 2015-11-11 15:09:08.000000000 +0000 @@ -65,6 +65,8 @@ /** Indicate that it was allocated by rtR0MemAllocExTag. */ #define RTMEMHDR_FLAG_ALLOC_EX RT_BIT(4) #ifdef RT_OS_LINUX +/** Linux: Allocated using vm_area hacks. */ +# define RTMEMHDR_FLAG_EXEC_VM_AREA RT_BIT(29) /** Linux: Allocated from the special heap for executable memory. */ # define RTMEMHDR_FLAG_EXEC_HEAP RT_BIT(30) /** Linux: Allocated by kmalloc() instead of vmalloc(). */ diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Runtime/r0drv/darwin/alloc-r0drv-darwin.cpp virtualbox-4.1.44-dfsg/src/VBox/Runtime/r0drv/darwin/alloc-r0drv-darwin.cpp --- virtualbox-4.1.12-dfsg/src/VBox/Runtime/r0drv/darwin/alloc-r0drv-darwin.cpp 2012-04-02 13:29:03.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Runtime/r0drv/darwin/alloc-r0drv-darwin.cpp 2015-11-11 15:09:08.000000000 +0000 @@ -4,7 +4,7 @@ */ /* - * Copyright (C) 2006-2010 Oracle Corporation + * Copyright (C) 2006-2012 Oracle Corporation * * This file is part of VirtualBox Open Source Edition (OSE), as * available from http://www.virtualbox.org. This file is free software; @@ -31,6 +31,7 @@ #include "the-darwin-kernel.h" #include "internal/iprt.h" #include +#include #include #include @@ -38,6 +39,29 @@ #include "r0drv/alloc-r0drv.h" +/******************************************************************************* +* Structures and Typedefs * +*******************************************************************************/ +/** + * Extended header used for headers marked with RTMEMHDR_FLAG_EXEC. + * + * This is used with allocating executable memory, for things like generated + * code and loaded modules. + */ +typedef struct RTMEMDARWINHDREX +{ + /** The associated memory object. */ + RTR0MEMOBJ hMemObj; + /** Alignment padding. */ + uint8_t abPadding[ARCH_BITS == 32 ? 12 : 8]; + /** The header we present to the generic API. */ + RTMEMHDR Hdr; +} RTMEMDARWINHDREX; +AssertCompileSize(RTMEMDARWINHDREX, 32); +/** Pointer to an extended memory header. */ +typedef RTMEMDARWINHDREX *PRTMEMDARWINHDREX; + + /** * OS specific allocation function. */ @@ -46,11 +70,30 @@ if (RT_UNLIKELY(fFlags & RTMEMHDR_FLAG_ANY_CTX)) return VERR_NOT_SUPPORTED; - PRTMEMHDR pHdr = (PRTMEMHDR)IOMalloc(cb + sizeof(*pHdr)); - if (RT_UNLIKELY(!pHdr)) + PRTMEMHDR pHdr; + if (fFlags & RTMEMHDR_FLAG_EXEC) + { + RTR0MEMOBJ hMemObj; + int rc = RTR0MemObjAllocPage(&hMemObj, cb + sizeof(RTMEMDARWINHDREX), true /*fExecutable*/); + if (RT_FAILURE(rc)) + return rc; + PRTMEMDARWINHDREX pExHdr = (PRTMEMDARWINHDREX)RTR0MemObjAddress(hMemObj); + pExHdr->hMemObj = hMemObj; + pHdr = &pExHdr->Hdr; +#if 1 /*fExecutable isn't currently honored above. */ + rc = RTR0MemObjProtect(hMemObj, 0, RTR0MemObjSize(hMemObj), RTMEM_PROT_READ | RTMEM_PROT_WRITE | RTMEM_PROT_EXEC); + AssertRC(rc); +#endif + } + else { - printf("rtR0MemAllocEx(%#zx, %#x) failed\n", cb + sizeof(*pHdr), fFlags); - return VERR_NO_MEMORY; + + pHdr = (PRTMEMHDR)IOMalloc(cb + sizeof(*pHdr)); + if (RT_UNLIKELY(!pHdr)) + { + printf("rtR0MemAllocEx(%#zx, %#x) failed\n", cb + sizeof(*pHdr), fFlags); + return VERR_NO_MEMORY; + } } pHdr->u32Magic = RTMEMHDR_MAGIC; @@ -68,7 +111,14 @@ DECLHIDDEN(void) rtR0MemFree(PRTMEMHDR pHdr) { pHdr->u32Magic += 1; - IOFree(pHdr, pHdr->cb + sizeof(*pHdr)); + if (pHdr->fFlags & RTMEMHDR_FLAG_EXEC) + { + PRTMEMDARWINHDREX pExHdr = RT_FROM_MEMBER(pHdr, RTMEMDARWINHDREX, Hdr); + int rc = RTR0MemObjFree(pExHdr->hMemObj, false /*fFreeMappings*/); + AssertRC(rc); + } + else + IOFree(pHdr, pHdr->cb + sizeof(*pHdr)); } diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Runtime/r0drv/darwin/mach_kernel-r0drv-darwin.cpp virtualbox-4.1.44-dfsg/src/VBox/Runtime/r0drv/darwin/mach_kernel-r0drv-darwin.cpp --- virtualbox-4.1.12-dfsg/src/VBox/Runtime/r0drv/darwin/mach_kernel-r0drv-darwin.cpp 2012-04-02 13:29:03.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Runtime/r0drv/darwin/mach_kernel-r0drv-darwin.cpp 2015-11-11 15:09:08.000000000 +0000 @@ -4,7 +4,7 @@ */ /* - * Copyright (C) 2011 Oracle Corporation + * Copyright (C) 2011-2012 Oracle Corporation * * This file is part of VirtualBox Open Source Edition (OSE), as * available from http://www.virtualbox.org. This file is free software; @@ -138,6 +138,8 @@ uint32_t cSyms; /** The file offset of the symbol table. */ uint32_t offSyms; + /** Offset between link address and actual load address. */ + uintptr_t offLoad; /** @} */ /** @name Used during loading. @@ -352,7 +354,6 @@ /** * Looks up a kernel symbol. * - * * @returns The symbol address on success, 0 on failure. * @param pThis The internal scratch data. * @param pszSymbol The symbol to resolve. Automatically prefixed @@ -373,7 +374,7 @@ const char *pszTabName= &pThis->pachStrTab[(uint32_t)pSym->n_un.n_strx]; if ( *pszTabName == '_' && strcmp(pszTabName + 1, pszSymbol) == 0) - return pSym->n_value; + return pSym->n_value + pThis->offLoad; } #else /** @todo binary search. */ @@ -387,8 +388,6 @@ extern "C" void ev_try_lock(void); extern "C" void OSMalloc(void); extern "C" void OSlibkernInit(void); -extern "C" int osrelease; -extern "C" int ostype; extern "C" void kdp_set_interface(void); @@ -517,6 +516,8 @@ KNOWN_ENTRY(vm_region), KNOWN_ENTRY(vm_map_wire), KNOWN_ENTRY(PE_kputc), + KNOWN_ENTRY(kernel_map), + KNOWN_ENTRY(kernel_pmap), }; for (unsigned i = 0; i < RT_ELEMENTS(s_aStandardCandles); i++) @@ -583,7 +584,7 @@ RETURN_VERR_BAD_EXE_FORMAT; const char *pszSym = &pThis->pachStrTab[(uint32_t)pSym->n_un.n_strx]; #ifdef IN_RING3 - RTAssertMsg2("%05i: %02x:%08x %02x %04x %s\n", iSym, pSym->n_sect, pSym->n_value, pSym->n_type, pSym->n_desc, pszSym); + RTAssertMsg2("%05i: %02x:%08llx %02x %04x %s\n", iSym, pSym->n_sect, (uint64_t)pSym->n_value, pSym->n_type, pSym->n_desc, pszSym); #endif if (strcmp(pszSym, pszPrev) < 0) @@ -600,19 +601,19 @@ RETURN_VERR_BAD_EXE_FORMAT; if (pSym->n_desc & ~(REFERENCED_DYNAMICALLY)) RETURN_VERR_BAD_EXE_FORMAT; - if (pSym->n_value < pThis->apSections[pSym->n_sect - 1]->addr) + if ( pSym->n_value < pThis->apSections[pSym->n_sect - 1]->addr + && strcmp(pszSym, "__mh_execute_header")) /* in 10.8 it's no longer absolute (PIE?). */ RETURN_VERR_BAD_EXE_FORMAT; - if ( pSym->n_value - pThis->apSections[pSym->n_sect - 1]->addr - > pThis->apSections[pSym->n_sect - 1]->size) + if ( pSym->n_value - pThis->apSections[pSym->n_sect - 1]->addr + > pThis->apSections[pSym->n_sect - 1]->size + && strcmp(pszSym, "__mh_execute_header")) /* see above. */ RETURN_VERR_BAD_EXE_FORMAT; break; case MACHO_N_ABS: -#if 0 /* Spec say MACHO_NO_SECT, __mh_execute_header has 1 with 10.7/amd64 */ - if (pSym->n_sect != MACHO_NO_SECT) -#else - if (pSym->n_sect > pThis->cSections) -#endif + if ( pSym->n_sect != MACHO_NO_SECT + && ( strcmp(pszSym, "__mh_execute_header") /* n_sect=1 in 10.7/amd64 */ + || pSym->n_sect > pThis->cSections) ) RETURN_VERR_BAD_EXE_FORMAT; if (pSym->n_desc & ~(REFERENCED_DYNAMICALLY)) RETURN_VERR_BAD_EXE_FORMAT; @@ -733,7 +734,8 @@ if (pSeg->flags & ~(SG_HIGHVM | SG_FVMLIB | SG_NORELOC | SG_PROTECTED_VERSION_1)) RETURN_VERR_BAD_EXE_FORMAT; - if (pSeg->vmaddr != 0) + if ( pSeg->vmaddr != 0 + || !strcmp(pSeg->segname, "__PAGEZERO")) { if (pSeg->vmaddr + RT_ALIGN_Z(pSeg->vmsize, RT_BIT_32(12)) < pSeg->vmaddr) RETURN_VERR_BAD_EXE_FORMAT; @@ -765,6 +767,7 @@ case S_MOD_INIT_FUNC_POINTERS: case S_MOD_TERM_FUNC_POINTERS: case S_COALESCED: + case S_4BYTE_LITERALS: if ( pSeg->filesize != 0 ? paSects[i].offset - pSeg->fileoff >= pSeg->filesize : paSects[i].offset - pSeg->fileoff != pSeg->filesize) @@ -782,7 +785,6 @@ /* not observed */ case S_SYMBOL_STUBS: case S_INTERPOSING: - case S_4BYTE_LITERALS: case S_8BYTE_LITERALS: case S_16BYTE_LITERALS: case S_DTRACE_DOF: @@ -821,6 +823,12 @@ case LC_DYSYMTAB: case LC_UNIXTHREAD: + case LC_CODE_SIGNATURE: + case LC_VERSION_MIN_MACOSX: + case LC_FUNCTION_STARTS: + case LC_MAIN: + case LC_DATA_IN_CODE: + case LC_SOURCE_VERSION: break; /* not observed */ @@ -840,6 +848,12 @@ case LC_PREPAGE: case LC_TWOLEVEL_HINTS: case LC_PREBIND_CKSUM: + case LC_SEGMENT_SPLIT_INFO: + case LC_ENCRYPTION_INFO: + RETURN_VERR_LDR_UNEXPECTED; + + /* no phones here yet */ + case LC_VERSION_MIN_IPHONEOS: RETURN_VERR_LDR_UNEXPECTED; /* dylib */ @@ -853,6 +867,14 @@ case LC_SUB_UMBRELLA: case LC_SUB_CLIENT: case LC_SUB_LIBRARY: + case LC_RPATH: + case LC_REEXPORT_DYLIB: + case LC_LAZY_LOAD_DYLIB: + case LC_DYLD_INFO: + case LC_DYLD_INFO_ONLY: + case LC_LOAD_UPWARD_DYLIB: + case LC_DYLD_ENVIRONMENT: + case LC_DYLIB_CODE_SIGN_DRS: RETURN_VERR_LDR_UNEXPECTED; default: @@ -989,7 +1011,17 @@ if (RT_SUCCESS(rc)) rc = rtR0MachKernelLoadSymTab(pThis); if (RT_SUCCESS(rc)) + { +#ifdef IN_RING0 + /* + * Determine the load displacement (10.8 kernels are PIE). + */ + uintptr_t uLinkAddr = rtR0MachKernelLookup(pThis, "kernel_map"); + if (uLinkAddr != 0) + pThis->offLoad = (uintptr_t)&kernel_map - uLinkAddr; +#endif rc = rtR0MachKernelCheckStandardSymbols(pThis); + } rtR0MachKernelLoadDone(pThis); if (RT_SUCCESS(rc)) diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Runtime/r0drv/darwin/memobj-r0drv-darwin.cpp virtualbox-4.1.44-dfsg/src/VBox/Runtime/r0drv/darwin/memobj-r0drv-darwin.cpp --- virtualbox-4.1.12-dfsg/src/VBox/Runtime/r0drv/darwin/memobj-r0drv-darwin.cpp 2012-04-02 13:29:03.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Runtime/r0drv/darwin/memobj-r0drv-darwin.cpp 2015-11-11 15:09:08.000000000 +0000 @@ -66,13 +66,14 @@ /** - * HACK ALERT! + * Touch the pages to force the kernel to create or write-enable the page table + * entries. * - * Touch the pages to force the kernel to create the page - * table entries. This is necessary since the kernel gets - * upset if we take a page fault when preemption is disabled - * and/or we own a simple lock. It has no problems with us - * disabling interrupts when taking the traps, weird stuff. + * This is necessary since the kernel gets upset if we take a page fault when + * preemption is disabled and/or we own a simple lock (same thing). It has no + * problems with us disabling interrupts when taking the traps, weird stuff. + * + * (This is basically a way of invoking vm_fault on a range of pages.) * * @param pv Pointer to the first page. * @param cb The number of bytes. @@ -92,6 +93,32 @@ /** + * Read (sniff) every page in the range to make sure there are some page tables + * entries backing it. + * + * This is just to be sure vm_protect didn't remove stuff without re-adding it + * if someone should try write-protect something. + * + * @param pv Pointer to the first page. + * @param cb The number of bytes. + */ +static void rtR0MemObjDarwinSniffPages(void const *pv, size_t cb) +{ + uint32_t volatile *pu32 = (uint32_t volatile *)pv; + uint32_t volatile u32Counter = 0; + for (;;) + { + u32Counter += *pu32; + + if (cb <= PAGE_SIZE) + break; + cb -= PAGE_SIZE; + pu32 += PAGE_SIZE / sizeof(uint32_t); + } +} + + +/** * Gets the virtual memory map the specified object is mapped into. * * @returns VM map handle on success, NULL if no map. @@ -424,21 +451,43 @@ * we'll use rtR0MemObjNativeAllocCont as a fallback for dealing with that. * * The kIOMemoryKernelUserShared flag just forces the result to be page aligned. + * + * The kIOMemoryMapperNone flag is required since 10.8.2 (IOMMU changes?). */ int rc; - IOBufferMemoryDescriptor *pMemDesc = - IOBufferMemoryDescriptor::inTaskWithPhysicalMask(kernel_task, - kIOMemoryKernelUserShared - | kIODirectionInOut - | (fContiguous ? kIOMemoryPhysicallyContiguous : 0), - cb, - PhysMask); + size_t cbFudged = cb; + if (1) /** @todo Figure out why this is broken. Is it only on snow leopard? Seen allocating memory for the VM structure, last page corrupted or inaccessible. */ + cbFudged += PAGE_SIZE; +#if 1 + IOOptionBits fOptions = kIOMemoryKernelUserShared | kIODirectionInOut; + if (fContiguous) + fOptions |= kIOMemoryPhysicallyContiguous; + if (version_major >= 12 /* 12 = 10.8.x = Mountain Kitten */) + fOptions |= kIOMemoryMapperNone; + IOBufferMemoryDescriptor *pMemDesc = IOBufferMemoryDescriptor::inTaskWithPhysicalMask(kernel_task, fOptions, + cbFudged, PhysMask); +#else /* Requires 10.7 SDK, but allows alignment to be specified: */ + uint64_t uAlignment = PAGE_SIZE; + IOOptionBits fOptions = kIODirectionInOut | kIOMemoryMapperNone; + if (fContiguous || MaxPhysAddr < UINT64_MAX) + { + fOptions |= kIOMemoryPhysicallyContiguous; + uAlignment = 1; /* PhysMask isn't respected if higher. */ + } + + IOBufferMemoryDescriptor *pMemDesc = new IOBufferMemoryDescriptor; + if (pMemDesc && !pMemDesc->initWithPhysicalMask(kernel_task, fOptions, cbFudged, uAlignment, PhysMask)) + { + pMemDesc->release(); + pMemDesc = NULL; + } +#endif if (pMemDesc) { IOReturn IORet = pMemDesc->prepare(kIODirectionInOut); if (IORet == kIOReturnSuccess) { - void *pv = pMemDesc->getBytesNoCopy(0, cb); + void *pv = pMemDesc->getBytesNoCopy(0, cbFudged); if (pv) { /* @@ -448,8 +497,8 @@ MaxPhysAddr &= ~(uint64_t)PAGE_OFFSET_MASK; for (IOByteCount off = 0; off < cb; off += PAGE_SIZE) { -#ifdef __LP64__ /* Grumble! */ - addr64_t Addr = pMemDesc->getPhysicalSegment(off, NULL); +#ifdef __LP64__ + addr64_t Addr = pMemDesc->getPhysicalSegment(off, NULL, kIOMemoryMapperNone); #else addr64_t Addr = pMemDesc->getPhysicalSegment64(off, NULL); #endif @@ -463,8 +512,8 @@ /* Buggy API, try allocate the memory another way. */ pMemDesc->release(); if (PhysMask) - LogAlways(("rtR0MemObjNativeAllocWorker: off=%x Addr=%llx AddrPrev=%llx MaxPhysAddr=%llx PhysMas=%llx - buggy API!\n", - off, Addr, AddrPrev, MaxPhysAddr, PhysMask)); + LogRel(("rtR0MemObjNativeAllocWorker: off=%x Addr=%llx AddrPrev=%llx MaxPhysAddr=%llx PhysMas=%llx fContiguous=%RTbool fOptions=%#x - buggy API!\n", + off, Addr, AddrPrev, MaxPhysAddr, PhysMask, fContiguous, fOptions)); return VERR_ADDRESS_TOO_BIG; } AddrPrev = Addr; @@ -488,8 +537,8 @@ { if (fContiguous) { -#ifdef __LP64__ /* Grumble! */ - addr64_t PhysBase64 = pMemDesc->getPhysicalSegment(0, NULL); +#ifdef __LP64__ + addr64_t PhysBase64 = pMemDesc->getPhysicalSegment(0, NULL, kIOMemoryMapperNone); #else addr64_t PhysBase64 = pMemDesc->getPhysicalSegment64(0, NULL); #endif @@ -502,9 +551,34 @@ AssertMsgFailed(("enmType=%d\n", enmType)); } - pMemDarwin->pMemDesc = pMemDesc; - *ppMem = &pMemDarwin->Core; - return VINF_SUCCESS; +#if 1 /* Experimental code. */ + if (fExecutable) + { + rc = rtR0MemObjNativeProtect(&pMemDarwin->Core, 0, cb, RTMEM_PROT_READ | RTMEM_PROT_WRITE | RTMEM_PROT_EXEC); +# ifdef RT_STRICT + /* check that the memory is actually mapped. */ + RTTHREADPREEMPTSTATE State = RTTHREADPREEMPTSTATE_INITIALIZER; + RTThreadPreemptDisable(&State); + rtR0MemObjDarwinTouchPages(pv, cb); + RTThreadPreemptRestore(&State); +# endif + + /* Bug 6226: Ignore KERN_PROTECTION_FAILURE on Leopard and older. */ + if ( rc == VERR_PERMISSION_DENIED + && version_major <= 10 /* 10 = 10.6.x = Snow Leopard. */) + rc = VINF_SUCCESS; + } + else +#endif + rc = VINF_SUCCESS; + if (RT_SUCCESS(rc)) + { + pMemDarwin->pMemDesc = pMemDesc; + *ppMem = &pMemDarwin->Core; + return VINF_SUCCESS; + } + + rtR0MemObjDelete(&pMemDarwin->Core); } rc = VERR_NO_MEMORY; @@ -623,10 +697,10 @@ kIODirectionInOut, NULL /*task*/); if (pMemDesc) { -#ifdef __LP64__ /* Grumble! */ - Assert(Phys == pMemDesc->getPhysicalSegment(0, 0)); +#ifdef __LP64__ + Assert(Phys == pMemDesc->getPhysicalSegment(0, NULL, kIOMemoryMapperNone)); #else - Assert(Phys == pMemDesc->getPhysicalSegment64(0, 0)); + Assert(Phys == pMemDesc->getPhysicalSegment64(0, NULL)); #endif /* @@ -823,7 +897,7 @@ /* HACK ALERT! */ rtR0MemObjDarwinTouchPages(pv, cbSub); /** @todo First, the memory should've been mapped by now, and second, it - * should have the wired attribute in the PTE (bit 9). Neither is + * should have the wired attribute in the PTE (bit 9). Neither * seems to be the case. The disabled locking code doesn't make any * difference, which is extremely odd, and breaks * rtR0MemObjNativeGetPagePhysAddr (getPhysicalSegment64 -> 64 for the @@ -932,7 +1006,9 @@ if (!pVmMap) return VERR_NOT_SUPPORTED; - /* Convert the protection. */ + /* + * Convert the protection. + */ vm_prot_t fMachProt; switch (fProt) { @@ -948,17 +1024,22 @@ case RTMEM_PROT_READ | RTMEM_PROT_WRITE | RTMEM_PROT_EXEC: fMachProt = VM_PROT_READ | VM_PROT_WRITE | VM_PROT_EXECUTE; break; + case RTMEM_PROT_WRITE: + fMachProt = VM_PROT_WRITE | VM_PROT_READ; /* never write-only */ + break; case RTMEM_PROT_WRITE | RTMEM_PROT_EXEC: - fMachProt = VM_PROT_WRITE | VM_PROT_EXECUTE; + fMachProt = VM_PROT_WRITE | VM_PROT_EXECUTE | VM_PROT_READ; /* never write-only or execute-only */ break; case RTMEM_PROT_EXEC: - fMachProt = VM_PROT_EXECUTE; + fMachProt = VM_PROT_EXECUTE | VM_PROT_READ; /* never execute-only */ break; default: AssertFailedReturn(VERR_INVALID_PARAMETER); } - /* do the job. */ + /* + * Do the job. + */ vm_offset_t Start = (uintptr_t)pMem->pv + offSub; kern_return_t krc = vm_protect(pVmMap, Start, @@ -966,7 +1047,48 @@ false, fMachProt); if (krc != KERN_SUCCESS) + { + static int s_cComplaints = 0; + if (s_cComplaints < 10) + { + s_cComplaints++; + printf("rtR0MemObjNativeProtect: vm_protect(%p,%p,%p,false,%#x) -> %d\n", + pVmMap, (void *)Start, (void *)cbSub, fMachProt, krc); + + kern_return_t krc2; + vm_offset_t pvReal = Start; + vm_size_t cbReal = 0; + mach_msg_type_number_t cInfo = VM_REGION_BASIC_INFO_COUNT; + struct vm_region_basic_info Info; + RT_ZERO(Info); + krc2 = vm_region(pVmMap, &pvReal, &cbReal, VM_REGION_BASIC_INFO, (vm_region_info_t)&Info, &cInfo, NULL); + printf("rtR0MemObjNativeProtect: basic info - krc2=%d pv=%p cb=%p prot=%#x max=%#x inh=%#x shr=%d rvd=%d off=%#x behavior=%#x wired=%#x\n", + krc2, (void *)pvReal, (void *)cbReal, Info.protection, Info.max_protection, Info.inheritance, + Info.shared, Info.reserved, Info.offset, Info.behavior, Info.user_wired_count); + } return RTErrConvertFromDarwinKern(krc); + } + + /* + * Touch the pages if they should be writable afterwards and accessible + * from code which should never fault. vm_protect() may leave pages + * temporarily write protected, possibly due to pmap no-upgrade rules? + * + * This is the same trick (or HACK ALERT if you like) as applied in + * rtR0MemObjNativeMapKernel. + */ + if ( pMem->enmType != RTR0MEMOBJTYPE_MAPPING + || pMem->u.Mapping.R0Process == NIL_RTR0PROCESS) + { + if (fProt & RTMEM_PROT_WRITE) + rtR0MemObjDarwinTouchPages((void *)Start, cbSub); + /* + * Sniff (read) read-only pages too, just to be sure. + */ + else if (fProt & (RTMEM_PROT_READ | RTMEM_PROT_EXEC)) + rtR0MemObjDarwinSniffPages((void const *)Start, cbSub); + } + return VINF_SUCCESS; } @@ -1035,8 +1157,8 @@ /* * If we've got a memory descriptor, use getPhysicalSegment64(). */ -#ifdef __LP64__ /* Grumble! */ - addr64_t Addr = pMemDesc->getPhysicalSegment(iPage * PAGE_SIZE, NULL); +#ifdef __LP64__ + addr64_t Addr = pMemDesc->getPhysicalSegment(iPage * PAGE_SIZE, NULL, kIOMemoryMapperNone); #else addr64_t Addr = pMemDesc->getPhysicalSegment64(iPage * PAGE_SIZE, NULL); #endif diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Runtime/r0drv/darwin/the-darwin-kernel.h virtualbox-4.1.44-dfsg/src/VBox/Runtime/r0drv/darwin/the-darwin-kernel.h --- virtualbox-4.1.12-dfsg/src/VBox/Runtime/r0drv/darwin/the-darwin-kernel.h 2012-04-02 13:29:03.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Runtime/r0drv/darwin/the-darwin-kernel.h 2015-11-11 15:09:08.000000000 +0000 @@ -59,8 +59,10 @@ #endif #include #include +#include #include #include +#include #include #include #include @@ -83,6 +85,12 @@ # define AST_URGENT UINT32_C(4) #endif +/* This flag was added in 10.6, it seems. Should be harmless in earlier + releases... */ +#if MAC_OS_X_VERSION_MIN_REQUIRED < 1060 +# define kIOMemoryMapperNone UINT32_C(0x800) +#endif + RT_C_DECLS_BEGIN @@ -141,6 +149,8 @@ /* osfmk/vm/vm_user.c */ extern kern_return_t vm_protect(vm_map_t, vm_offset_t, vm_size_t, boolean_t, vm_prot_t); +/*extern kern_return_t vm_region(vm_map_t, vm_address_t *, vm_size_t *, vm_region_flavor_t, vm_region_info_t, + mach_msg_type_number_t *, mach_port_t *);*/ /* i386/machine_routines.h */ extern int ml_get_max_cpus(void); diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Runtime/r0drv/linux/alloc-r0drv-linux.c virtualbox-4.1.44-dfsg/src/VBox/Runtime/r0drv/linux/alloc-r0drv-linux.c --- virtualbox-4.1.12-dfsg/src/VBox/Runtime/r0drv/linux/alloc-r0drv-linux.c 2012-04-02 13:29:03.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Runtime/r0drv/linux/alloc-r0drv-linux.c 2015-11-11 15:09:09.000000000 +0000 @@ -36,7 +36,15 @@ #include #include "r0drv/alloc-r0drv.h" + #if defined(RT_ARCH_AMD64) || defined(DOXYGEN_RUNNING) +# if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 23) +/** + * Starting with 2.6.23 we can use __get_vm_area and map_vm_area to allocate + * memory in the moduel range. This is preferrable to the exec heap below. + */ +# define RTMEMALLOC_EXEC_VM_AREA +# else /** * We need memory in the module range (~2GB to ~0) this can only be obtained * thru APIs that are not exported (see module_alloc()). @@ -44,8 +52,10 @@ * So, we'll have to create a quick and dirty heap here using BSS memory. * Very annoying and it's going to restrict us! */ -# define RTMEMALLOC_EXEC_HEAP +# define RTMEMALLOC_EXEC_HEAP +# endif #endif + #ifdef RTMEMALLOC_EXEC_HEAP # include # include @@ -54,22 +64,37 @@ /******************************************************************************* +* Structures and Typedefs * +*******************************************************************************/ +#ifdef RTMEMALLOC_EXEC_VM_AREA +/** + * Extended header used for headers marked with RTMEMHDR_FLAG_EXEC_VM_AREA. + * + * This is used with allocating executable memory, for things like generated + * code and loaded modules. + */ +typedef struct RTMEMLNXHDREX +{ + /** The VM area for this allocation. */ + struct vm_struct *pVmArea; + void *pvDummy; + /** The header we present to the generic API. */ + RTMEMHDR Hdr; +} RTMEMLNXHDREX; +AssertCompileSize(RTMEMLNXHDREX, 32); +/** Pointer to an extended memory header. */ +typedef RTMEMLNXHDREX *PRTMEMLNXHDREX; +#endif + + +/******************************************************************************* * Global Variables * *******************************************************************************/ #ifdef RTMEMALLOC_EXEC_HEAP - -# ifdef CONFIG_DEBUG_SET_MODULE_RONX -# define RTMEMALLOC_EXEC_HEAP_VM_AREA 1 -# endif /** The heap. */ static RTHEAPSIMPLE g_HeapExec = NIL_RTHEAPSIMPLE; /** Spinlock protecting the heap. */ static RTSPINLOCK g_HeapExecSpinlock = NIL_RTSPINLOCK; -# ifdef RTMEMALLOC_EXEC_HEAP_VM_AREA -static struct page **g_apPages; -static void *g_pvHeap; -static size_t g_cPages; -# endif /** @@ -78,24 +103,11 @@ */ DECLHIDDEN(void) rtR0MemExecCleanup(void) { -# ifdef RTMEMALLOC_EXEC_HEAP_VM_AREA - unsigned i; - - /* according to linux/drivers/lguest/core.c this function undoes - * map_vm_area() as well as __get_vm_area(). */ - if (g_pvHeap) - vunmap(g_pvHeap); - for (i = 0; i < g_cPages; i++) - __free_page(g_apPages[i]); - kfree(g_apPages); -# endif - RTSpinlockDestroy(g_HeapExecSpinlock); g_HeapExecSpinlock = NIL_RTSPINLOCK; } -# ifndef RTMEMALLOC_EXEC_HEAP_VM_AREA /** * Donate read+write+execute memory to the exec heap. * @@ -127,77 +139,86 @@ } RT_EXPORT_SYMBOL(RTR0MemExecDonate); -# else /* !RTMEMALLOC_EXEC_HEAP_VM_AREA */ +#endif /* RTMEMALLOC_EXEC_HEAP */ + +#ifdef RTMEMALLOC_EXEC_VM_AREA /** - * RTR0MemExecDonate() does not work if CONFIG_DEBUG_SET_MODULE_RONX is enabled. - * In that case, allocate a VM area in the modules range and back it with kernel - * memory. Unfortunately __vmalloc_area() is not exported so we have to emulate - * it. + * Allocate executable kernel memory in the module range. + * + * @returns Pointer to a allocation header success. NULL on failure. + * + * @param cb The size the user requested. */ -RTR0DECL(int) RTR0MemExecInit(size_t cb) +static PRTMEMHDR rtR0MemAllocExecVmArea(size_t cb) { - int rc; - struct vm_struct *area; - size_t cPages; - size_t cbPages; - unsigned i; - struct page **ppPages; + size_t const cbAlloc = RT_ALIGN_Z(sizeof(RTMEMLNXHDREX) + cb, PAGE_SIZE); + size_t const cPages = cbAlloc >> PAGE_SHIFT; + struct page **papPages; + struct vm_struct *pVmArea; + size_t iPage; + + pVmArea = __get_vm_area(cbAlloc, VM_ALLOC, MODULES_VADDR, MODULES_END); + if (!pVmArea) + return NULL; + pVmArea->nr_pages = 0; /* paranoia? */ + pVmArea->pages = NULL; /* paranoia? */ - AssertReturn(g_HeapExec == NIL_RTHEAPSIMPLE, VERR_WRONG_ORDER); + papPages = (struct page **)kmalloc(cPages * sizeof(papPages[0]), GFP_KERNEL); + if (!papPages) + { + vunmap(pVmArea->addr); + return NULL; + } - rc = RTSpinlockCreate(&g_HeapExecSpinlock); - if (RT_SUCCESS(rc)) + for (iPage = 0; iPage < cPages; iPage++) { - cb = RT_ALIGN(cb, PAGE_SIZE); - area = __get_vm_area(cb, VM_ALLOC, MODULES_VADDR, MODULES_END); - if (!area) - { - rtR0MemExecCleanup(); - return VERR_NO_MEMORY; - } - g_pvHeap = area->addr; - cPages = cb >> PAGE_SHIFT; - area->nr_pages = 0; - cbPages = cPages * sizeof(struct page *); - g_apPages = kmalloc(cbPages, GFP_KERNEL); - area->pages = g_apPages; - if (!g_apPages) - { - rtR0MemExecCleanup(); - return VERR_NO_MEMORY; - } - memset(area->pages, 0, cbPages); - for (i = 0; i < cPages; i++) - { - g_apPages[i] = alloc_page(GFP_KERNEL | __GFP_HIGHMEM); - if (!g_apPages[i]) - { - area->nr_pages = i; - g_cPages = i; - rtR0MemExecCleanup(); - return VERR_NO_MEMORY; - } - } - area->nr_pages = cPages; - g_cPages = i; - ppPages = g_apPages; - if (map_vm_area(area, PAGE_KERNEL_EXEC, &ppPages)) + papPages[iPage] = alloc_page(GFP_KERNEL | __GFP_HIGHMEM); + if (!papPages[iPage]) + break; + } + if (iPage == cPages) + { + /* + * Map the pages. + * + * Not entirely sure we really need to set nr_pages and pages here, but + * they provide a very convenient place for storing something we need + * in the free function, if nothing else... + */ +# if LINUX_VERSION_CODE < KERNEL_VERSION(3, 17, 0) + struct page **papPagesIterator = papPages; +# endif + pVmArea->nr_pages = cPages; + pVmArea->pages = papPages; + if (!map_vm_area(pVmArea, PAGE_KERNEL_EXEC, +# if LINUX_VERSION_CODE < KERNEL_VERSION(3, 17, 0) + &papPagesIterator +# else + papPages +# endif + )) { - rtR0MemExecCleanup(); - return VERR_NO_MEMORY; + PRTMEMLNXHDREX pHdrEx = (PRTMEMLNXHDREX)pVmArea->addr; + pHdrEx->pVmArea = pVmArea; + pHdrEx->pvDummy = NULL; + return &pHdrEx->Hdr; } - - rc = RTHeapSimpleInit(&g_HeapExec, g_pvHeap, cb); - if (RT_FAILURE(rc)) - rtR0MemExecCleanup(); + /* bail out */ +# if LINUX_VERSION_CODE < KERNEL_VERSION(3, 17, 0) + pVmArea->nr_pages = papPagesIterator - papPages; +# endif } - return rc; -} -RT_EXPORT_SYMBOL(RTR0MemExecInit); -# endif /* RTMEMALLOC_EXEC_HEAP_VM_AREA */ -#endif /* RTMEMALLOC_EXEC_HEAP */ + vunmap(pVmArea->addr); + + while (iPage-- > 0) + __free_page(papPages[iPage]); + kfree(papPages); + + return NULL; +} +#endif /* RTMEMALLOC_EXEC_VM_AREA */ /** @@ -227,7 +248,13 @@ } else pHdr = NULL; + +# elif defined(RTMEMALLOC_EXEC_VM_AREA) + pHdr = rtR0MemAllocExecVmArea(cb); + fFlags |= RTMEMHDR_FLAG_EXEC_VM_AREA; + # else /* !RTMEMALLOC_EXEC_HEAP */ +# error "you don not want to go here..." pHdr = (PRTMEMHDR)__vmalloc(cb + sizeof(*pHdr), GFP_KERNEL | __GFP_HIGHMEM, MY_PAGE_KERNEL_EXEC); # endif /* !RTMEMALLOC_EXEC_HEAP */ @@ -295,11 +322,27 @@ RTSpinlockReleaseNoInts(g_HeapExecSpinlock, &SpinlockTmp); } #endif +#ifdef RTMEMALLOC_EXEC_VM_AREA + else if (pHdr->fFlags & RTMEMHDR_FLAG_EXEC_VM_AREA) + { + PRTMEMLNXHDREX pHdrEx = RT_FROM_MEMBER(pHdr, RTMEMLNXHDREX, Hdr); + size_t iPage = pHdrEx->pVmArea->nr_pages; + struct page **papPages = pHdrEx->pVmArea->pages; + void *pvMapping = pHdrEx->pVmArea->addr; + + vunmap(pvMapping); + + while (iPage-- > 0) + __free_page(papPages[iPage]); + kfree(papPages); + } +#endif else vfree(pHdr); } + /** * Compute order. Some functions allocate 2^order pages. * @@ -394,7 +437,7 @@ /** - * Frees memory allocated ysing RTMemContAlloc(). + * Frees memory allocated using RTMemContAlloc(). * * @param pv Pointer to return from RTMemContAlloc(). * @param cb The cb parameter passed to RTMemContAlloc(). diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Runtime/r0drv/linux/initterm-r0drv-linux.c virtualbox-4.1.44-dfsg/src/VBox/Runtime/r0drv/linux/initterm-r0drv-linux.c --- virtualbox-4.1.12-dfsg/src/VBox/Runtime/r0drv/linux/initterm-r0drv-linux.c 2012-04-02 13:29:03.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Runtime/r0drv/linux/initterm-r0drv-linux.c 2015-11-11 15:09:09.000000000 +0000 @@ -49,7 +49,7 @@ /******************************************************************************* * Internal Functions * *******************************************************************************/ -#ifdef RT_ARCH_AMD64 +#if defined(RT_ARCH_AMD64) && LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 23) /* in alloc-r0drv0-linux.c */ DECLHIDDEN(void) rtR0MemExecCleanup(void); #endif @@ -114,7 +114,7 @@ g_prtR0LnxWorkQueue = NULL; #endif -#ifdef RT_ARCH_AMD64 +#if defined(RT_ARCH_AMD64) && LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 23) rtR0MemExecCleanup(); #endif } diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Runtime/r0drv/linux/memobj-r0drv-linux.c virtualbox-4.1.44-dfsg/src/VBox/Runtime/r0drv/linux/memobj-r0drv-linux.c --- virtualbox-4.1.12-dfsg/src/VBox/Runtime/r0drv/linux/memobj-r0drv-linux.c 2012-04-02 13:29:03.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Runtime/r0drv/linux/memobj-r0drv-linux.c 2015-11-11 15:09:09.000000000 +0000 @@ -1,4 +1,4 @@ -/* $Revision: 75790 $ */ +/* $Revision: 81433 $ */ /** @file * IPRT - Ring-0 Memory Objects, Linux. */ @@ -100,6 +100,7 @@ static struct task_struct *rtR0ProcessToLinuxTask(RTR0PROCESS R0Process) { /** @todo fix rtR0ProcessToLinuxTask!! */ + /** @todo many (all?) callers currently assume that we return 'current'! */ return R0Process == RTR0ProcHandleSelf() ? current : NULL; } @@ -169,6 +170,107 @@ /** + * Worker for rtR0MemObjNativeReserveUser and rtR0MemObjNativerMapUser that creates + * an empty user space mapping. + * + * We acquire the mmap_sem of the task! + * + * @returns Pointer to the mapping. + * (void *)-1 on failure. + * @param R3PtrFixed (RTR3PTR)-1 if anywhere, otherwise a specific location. + * @param cb The size of the mapping. + * @param uAlignment The alignment of the mapping. + * @param pTask The Linux task to create this mapping in. + * @param fProt The RTMEM_PROT_* mask. + */ +static void *rtR0MemObjLinuxDoMmap(RTR3PTR R3PtrFixed, size_t cb, size_t uAlignment, struct task_struct *pTask, unsigned fProt) +{ + unsigned fLnxProt; + unsigned long ulAddr; + + Assert((pTask == current)); /* do_mmap */ + + /* + * Convert from IPRT protection to mman.h PROT_ and call do_mmap. + */ + fProt &= (RTMEM_PROT_NONE | RTMEM_PROT_READ | RTMEM_PROT_WRITE | RTMEM_PROT_EXEC); + if (fProt == RTMEM_PROT_NONE) + fLnxProt = PROT_NONE; + else + { + fLnxProt = 0; + if (fProt & RTMEM_PROT_READ) + fLnxProt |= PROT_READ; + if (fProt & RTMEM_PROT_WRITE) + fLnxProt |= PROT_WRITE; + if (fProt & RTMEM_PROT_EXEC) + fLnxProt |= PROT_EXEC; + } + + if (R3PtrFixed != (RTR3PTR)-1) + { +#if LINUX_VERSION_CODE >= KERNEL_VERSION(3, 5, 0) + ulAddr = vm_mmap(NULL, R3PtrFixed, cb, fLnxProt, MAP_SHARED | MAP_ANONYMOUS | MAP_FIXED, 0); +#else + down_write(&pTask->mm->mmap_sem); + ulAddr = do_mmap(NULL, R3PtrFixed, cb, fLnxProt, MAP_SHARED | MAP_ANONYMOUS | MAP_FIXED, 0); + up_write(&pTask->mm->mmap_sem); +#endif + } + else + { +#if LINUX_VERSION_CODE >= KERNEL_VERSION(3, 5, 0) + ulAddr = vm_mmap(NULL, 0, cb, fLnxProt, MAP_SHARED | MAP_ANONYMOUS, 0); +#else + down_write(&pTask->mm->mmap_sem); + ulAddr = do_mmap(NULL, 0, cb, fLnxProt, MAP_SHARED | MAP_ANONYMOUS, 0); + up_write(&pTask->mm->mmap_sem); +#endif + if ( !(ulAddr & ~PAGE_MASK) + && (ulAddr & (uAlignment - 1))) + { + /** @todo implement uAlignment properly... We'll probably need to make some dummy mappings to fill + * up alignment gaps. This is of course complicated by fragmentation (which we might have cause + * ourselves) and further by there begin two mmap strategies (top / bottom). */ + /* For now, just ignore uAlignment requirements... */ + } + } + + + if (ulAddr & ~PAGE_MASK) /* ~PAGE_MASK == PAGE_OFFSET_MASK */ + return (void *)-1; + return (void *)ulAddr; +} + + +/** + * Worker that destroys a user space mapping. + * Undoes what rtR0MemObjLinuxDoMmap did. + * + * We acquire the mmap_sem of the task! + * + * @param pv The ring-3 mapping. + * @param cb The size of the mapping. + * @param pTask The Linux task to destroy this mapping in. + */ +static void rtR0MemObjLinuxDoMunmap(void *pv, size_t cb, struct task_struct *pTask) +{ +#if LINUX_VERSION_CODE >= KERNEL_VERSION(3, 5, 0) + Assert(pTask == current); + vm_munmap((unsigned long)pv, cb); +#elif defined(USE_RHEL4_MUNMAP) + down_write(&pTask->mm->mmap_sem); + do_munmap(pTask->mm, (unsigned long)pv, cb, 0); /* should it be 1 or 0? */ + up_write(&pTask->mm->mmap_sem); +#else + down_write(&pTask->mm->mmap_sem); + do_munmap(pTask->mm, (unsigned long)pv, cb); + up_write(&pTask->mm->mmap_sem); +#endif +} + + +/** * Internal worker that allocates physical pages and creates the memory object for them. * * @returns IPRT status code. @@ -422,7 +524,7 @@ /** - * Undos what rtR0MemObjLinuxVMap() did. + * Undoes what rtR0MemObjLinuxVMap() did. * * @param pMemLnx The linux memory object. */ @@ -490,11 +592,7 @@ struct task_struct *pTask = rtR0ProcessToLinuxTask(pMemLnx->Core.u.Lock.R0Process); Assert(pTask); if (pTask && pTask->mm) - { - down_write(&pTask->mm->mmap_sem); - MY_DO_MUNMAP(pTask->mm, (unsigned long)pMemLnx->Core.pv, pMemLnx->Core.cb); - up_write(&pTask->mm->mmap_sem); - } + rtR0MemObjLinuxDoMunmap(pMemLnx->Core.pv, pMemLnx->Core.cb, pTask); } else { @@ -515,11 +613,7 @@ struct task_struct *pTask = rtR0ProcessToLinuxTask(pMemLnx->Core.u.Lock.R0Process); Assert(pTask); if (pTask && pTask->mm) - { - down_write(&pTask->mm->mmap_sem); - MY_DO_MUNMAP(pTask->mm, (unsigned long)pMemLnx->Core.pv, pMemLnx->Core.cb); - up_write(&pTask->mm->mmap_sem); - } + rtR0MemObjLinuxDoMunmap(pMemLnx->Core.pv, pMemLnx->Core.cb, pTask); } else vunmap(pMemLnx->Core.pv); @@ -1110,62 +1204,6 @@ } -/** - * Worker for rtR0MemObjNativeReserveUser and rtR0MemObjNativerMapUser that creates - * an empty user space mapping. - * - * The caller takes care of acquiring the mmap_sem of the task. - * - * @returns Pointer to the mapping. - * (void *)-1 on failure. - * @param R3PtrFixed (RTR3PTR)-1 if anywhere, otherwise a specific location. - * @param cb The size of the mapping. - * @param uAlignment The alignment of the mapping. - * @param pTask The Linux task to create this mapping in. - * @param fProt The RTMEM_PROT_* mask. - */ -static void *rtR0MemObjLinuxDoMmap(RTR3PTR R3PtrFixed, size_t cb, size_t uAlignment, struct task_struct *pTask, unsigned fProt) -{ - unsigned fLnxProt; - unsigned long ulAddr; - - /* - * Convert from IPRT protection to mman.h PROT_ and call do_mmap. - */ - fProt &= (RTMEM_PROT_NONE | RTMEM_PROT_READ | RTMEM_PROT_WRITE | RTMEM_PROT_EXEC); - if (fProt == RTMEM_PROT_NONE) - fLnxProt = PROT_NONE; - else - { - fLnxProt = 0; - if (fProt & RTMEM_PROT_READ) - fLnxProt |= PROT_READ; - if (fProt & RTMEM_PROT_WRITE) - fLnxProt |= PROT_WRITE; - if (fProt & RTMEM_PROT_EXEC) - fLnxProt |= PROT_EXEC; - } - - if (R3PtrFixed != (RTR3PTR)-1) - ulAddr = do_mmap(NULL, R3PtrFixed, cb, fLnxProt, MAP_SHARED | MAP_ANONYMOUS | MAP_FIXED, 0); - else - { - ulAddr = do_mmap(NULL, 0, cb, fLnxProt, MAP_SHARED | MAP_ANONYMOUS, 0); - if ( !(ulAddr & ~PAGE_MASK) - && (ulAddr & (uAlignment - 1))) - { - /** @todo implement uAlignment properly... We'll probably need to make some dummy mappings to fill - * up alignment gaps. This is of course complicated by fragmentation (which we might have cause - * ourselves) and further by there begin two mmap strategies (top / bottom). */ - /* For now, just ignore uAlignment requirements... */ - } - } - if (ulAddr & ~PAGE_MASK) /* ~PAGE_MASK == PAGE_OFFSET_MASK */ - return (void *)-1; - return (void *)ulAddr; -} - - DECLHIDDEN(int) rtR0MemObjNativeReserveUser(PPRTR0MEMOBJINTERNAL ppMem, RTR3PTR R3PtrFixed, size_t cb, size_t uAlignment, RTR0PROCESS R0Process) { PRTR0MEMOBJLNX pMemLnx; @@ -1183,18 +1221,14 @@ /* * Let rtR0MemObjLinuxDoMmap do the difficult bits. */ - down_write(&pTask->mm->mmap_sem); pv = rtR0MemObjLinuxDoMmap(R3PtrFixed, cb, uAlignment, pTask, RTMEM_PROT_NONE); - up_write(&pTask->mm->mmap_sem); if (pv == (void *)-1) return VERR_NO_MEMORY; pMemLnx = (PRTR0MEMOBJLNX)rtR0MemObjNew(sizeof(*pMemLnx), RTR0MEMOBJTYPE_RES_VIRT, pv, cb); if (!pMemLnx) { - down_write(&pTask->mm->mmap_sem); - MY_DO_MUNMAP(pTask->mm, (unsigned long)pv, cb); - up_write(&pTask->mm->mmap_sem); + rtR0MemObjLinuxDoMunmap(pv, cb, pTask); return VERR_NO_MEMORY; } @@ -1381,7 +1415,6 @@ * Allocate user space mapping. */ void *pv; - down_write(&pTask->mm->mmap_sem); pv = rtR0MemObjLinuxDoMmap(R3PtrFixed, pMemLnxToMap->Core.cb, uAlignment, pTask, fProt); if (pv != (void *)-1) { @@ -1394,7 +1427,9 @@ const size_t cPages = pMemLnxToMap->Core.cb >> PAGE_SHIFT; size_t iPage; - rc = 0; + down_write(&pTask->mm->mmap_sem); + + rc = VINF_SUCCESS; if (pMemLnxToMap->cPages) { for (iPage = 0; iPage < cPages; iPage++, ulAddrCur += PAGE_SIZE) @@ -1413,7 +1448,13 @@ #if defined(VBOX_USE_INSERT_PAGE) && LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 22) rc = vm_insert_page(vma, ulAddrCur, pMemLnxToMap->apPages[iPage]); - vma->vm_flags |= VM_RESERVED; /* This flag helps making 100% sure some bad stuff wont happen (swap, core, ++). */ + /* Thes flags help making 100% sure some bad stuff wont happen (swap, core, ++). + * See remap_pfn_range() in mm/memory.c */ +#if LINUX_VERSION_CODE >= KERNEL_VERSION(3, 7, 0) + vma->vm_flags |= VM_DONTEXPAND | VM_DONTDUMP; +#else + vma->vm_flags |= VM_RESERVED; +#endif #elif LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 11) rc = remap_pfn_range(vma, ulAddrCur, page_to_pfn(pMemLnxToMap->apPages[iPage]), PAGE_SIZE, fPg); #elif defined(VBOX_USE_PAE_HACK) @@ -1476,13 +1517,14 @@ } } } - if (!rc) + + up_write(&pTask->mm->mmap_sem); + + if (RT_SUCCESS(rc)) { - up_write(&pTask->mm->mmap_sem); #ifdef VBOX_USE_PAE_HACK __free_page(pDummyPage); #endif - pMemLnx->Core.pv = pv; pMemLnx->Core.u.Mapping.R0Process = R0Process; *ppMem = &pMemLnx->Core; @@ -1492,9 +1534,8 @@ /* * Bail out. */ - MY_DO_MUNMAP(pTask->mm, (unsigned long)pv, pMemLnxToMap->Core.cb); + rtR0MemObjLinuxDoMunmap(pv, pMemLnxToMap->Core.cb, pTask); } - up_write(&pTask->mm->mmap_sem); rtR0MemObjDelete(&pMemLnx->Core); } #ifdef VBOX_USE_PAE_HACK diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Runtime/r0drv/linux/the-linux-kernel.h virtualbox-4.1.44-dfsg/src/VBox/Runtime/r0drv/linux/the-linux-kernel.h --- virtualbox-4.1.12-dfsg/src/VBox/Runtime/r0drv/linux/the-linux-kernel.h 2012-04-02 13:29:03.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Runtime/r0drv/linux/the-linux-kernel.h 2015-11-11 15:09:09.000000000 +0000 @@ -35,7 +35,7 @@ #define bool linux_bool #include -#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,33) +#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 33) # include #else # ifndef AUTOCONF_INCLUDED @@ -90,6 +90,9 @@ #include #include #include +#if LINUX_VERSION_CODE >= KERNEL_VERSION(3, 9, 0) +# include +#endif #if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 7) # include #endif @@ -242,7 +245,7 @@ /* accounting. */ # if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 0) # ifdef VM_ACCOUNT -# define MY_DO_MUNMAP(a,b,c) do_munmap(a, b, c, 0) /* should it be 1 or 0? */ +# define USE_RHEL4_MUNMAP # endif # endif @@ -269,10 +272,6 @@ # endif /* !RT_ARCH_AMD64 */ #endif /* !NO_REDHAT_HACKS */ -#ifndef MY_DO_MUNMAP -# define MY_DO_MUNMAP(a,b,c) do_munmap(a, b, c) -#endif - #ifndef MY_CHANGE_PAGE_ATTR # ifdef RT_ARCH_AMD64 /** @todo This is a cheap hack, but it'll get around that 'else BUG();' in __change_page_attr(). */ # define MY_CHANGE_PAGE_ATTR(pPages, cPages, prot) \ diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Runtime/r0drv/linux/thread2-r0drv-linux.c virtualbox-4.1.44-dfsg/src/VBox/Runtime/r0drv/linux/thread2-r0drv-linux.c --- virtualbox-4.1.12-dfsg/src/VBox/Runtime/r0drv/linux/thread2-r0drv-linux.c 2012-04-02 13:29:03.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Runtime/r0drv/linux/thread2-r0drv-linux.c 2015-11-11 15:09:09.000000000 +0000 @@ -51,7 +51,7 @@ DECLHIDDEN(int) rtThreadNativeSetPriority(PRTTHREADINT pThread, RTTHREADTYPE enmType) { -#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,11) +#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 11) /* See comment near MAX_RT_PRIO in linux/sched.h for details on sched_priority. */ int iSchedClass = SCHED_NORMAL; diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Runtime/r0drv/memobj-r0drv.cpp virtualbox-4.1.44-dfsg/src/VBox/Runtime/r0drv/memobj-r0drv.cpp --- virtualbox-4.1.12-dfsg/src/VBox/Runtime/r0drv/memobj-r0drv.cpp 2012-04-02 13:29:03.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Runtime/r0drv/memobj-r0drv.cpp 2015-11-11 15:09:09.000000000 +0000 @@ -1,4 +1,4 @@ -/* $Revision: 70988 $ */ +/* $Revision: 83283 $ */ /** @file * IPRT - Ring-0 Memory Objects, Common Code. */ @@ -264,6 +264,12 @@ * @param MemObj The ring-0 memory object handle. * @param iPage The page number within the object. */ +/* Work around gcc bug 55940 */ +#if defined(__GNUC__) && defined(RT_ARCH_X86) +# if (__GNUC__ * 100 + __GNUC_MINOR__) == 407 + __attribute__((__optimize__ ("no-shrink-wrap"))) +# endif +#endif RTR0DECL(RTHCPHYS) RTR0MemObjGetPagePhysAddr(RTR0MEMOBJ MemObj, size_t iPage) { /* Validate the object handle. */ diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Runtime/r0drv/nt/toxic-chkstk-r0drv-nt.asm virtualbox-4.1.44-dfsg/src/VBox/Runtime/r0drv/nt/toxic-chkstk-r0drv-nt.asm --- virtualbox-4.1.12-dfsg/src/VBox/Runtime/r0drv/nt/toxic-chkstk-r0drv-nt.asm 1970-01-01 00:00:00.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Runtime/r0drv/nt/toxic-chkstk-r0drv-nt.asm 2015-11-11 15:09:09.000000000 +0000 @@ -0,0 +1,42 @@ +; $Id: toxic-chkstk-r0drv-nt.asm $ +;; @file +; IPRT - Toxic _chkstk symbol. +; + +; +; Copyright (C) 2006-2014 Oracle Corporation +; +; This file is part of VirtualBox Open Source Edition (OSE), as +; available from http://www.virtualbox.org. This file is free software; +; you can redistribute it and/or modify it under the terms of the GNU +; General Public License (GPL) as published by the Free Software +; Foundation, in version 2 as it comes in the "COPYING" file of the +; VirtualBox OSE distribution. VirtualBox OSE is distributed in the +; hope that it will be useful, but WITHOUT ANY WARRANTY of any kind. +; +; The contents of this file may alternatively be used under the terms +; of the Common Development and Distribution License Version 1.0 +; (CDDL) only, as it comes in the "COPYING.CDDL" file of the +; VirtualBox OSE distribution, in which case the provisions of the +; CDDL are applicable instead of those of the GPL. +; +; You may elect to license modified versions of this file under the +; terms and conditions of either the GPL or the CDDL or both. +; + +;******************************************************************************* +;* Header Files * +;******************************************************************************* +%include "iprt/asmdefs.mac" + +BEGINCODE + +;; +; Bad function to drag into kernel code as you're eating up too much stack. +; +BEGINPROC _chkstk +%define MY_SYM _chkstk_is_considered_toxic_in_kernel_code__you_should_locate_code_using_too_much_stack_and_change_it_to_use_heap + extern MY_SYM + jmp MY_SYM +ENDPROC _chkstk + diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Runtime/r0drv/solaris/initterm-r0drv-solaris.c virtualbox-4.1.44-dfsg/src/VBox/Runtime/r0drv/solaris/initterm-r0drv-solaris.c --- virtualbox-4.1.12-dfsg/src/VBox/Runtime/r0drv/solaris/initterm-r0drv-solaris.c 2012-04-02 13:29:04.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Runtime/r0drv/solaris/initterm-r0drv-solaris.c 2015-11-11 15:09:10.000000000 +0000 @@ -104,5 +104,6 @@ DECLHIDDEN(void) rtR0TermNative(void) { + vbi_term(); } diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Runtime/r0drv/solaris/vbi/i86pc/os/vbi.c virtualbox-4.1.44-dfsg/src/VBox/Runtime/r0drv/solaris/vbi/i86pc/os/vbi.c --- virtualbox-4.1.12-dfsg/src/VBox/Runtime/r0drv/solaris/vbi/i86pc/os/vbi.c 2012-04-02 13:29:04.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Runtime/r0drv/solaris/vbi/i86pc/os/vbi.c 2015-11-11 15:09:10.000000000 +0000 @@ -73,15 +73,6 @@ static void (*p_contig_free)(void *, size_t) = contig_free; /* - * We have to use dl_lookup to find kflt_init() and thereby use kernel pages from - * the freelists if we no longer get user pages from freelist and cachelists. - */ -/* Introduced in v9 */ -static int use_kflt = 0; -static page_t *vbi_page_get_fromlist(uint_t freelist, caddr_t virtAddr, size_t pgsize); - - -/* * Workarounds for running on old versions of solaris with different cross call * interfaces. If we find xc_init_cpu() in the kernel, then just use the defined * interfaces for xc_call() from the include file where the xc_call() @@ -144,6 +135,11 @@ /* Introduced in v8 */ static int vbi_is_initialized = 0; +/* Introduced in v10 */ +static vnode_t vbipagevp; +static u_offset_t offvp = 0; +static kmutex_t offmtx; + /* Which offsets will be used */ static int off_cpu_runrun = -1; static int off_cpu_kprunrun = -1; @@ -251,20 +247,6 @@ } /* - * Use kernel page freelist flags to get pages from kernel page freelists - * while allocating physical pages, once the userpages are exhausted. - * snv_161+, see @bugref{5632}. - */ - if (kobj_getsymvalue("kflt_init", 1) != NULL) - { - int *p_kflt_disable = (int*)kobj_getsymvalue("kflt_disable", 1); /* amd64 only, on 32-bit kflt's are disabled. */ - if (p_kflt_disable && *p_kflt_disable == 0) - { - use_kflt = 1; - } - } - - /* * CTF probing for fluid, private members. */ int err = 0; @@ -298,11 +280,18 @@ if (err) return (EINVAL); + mutex_init(&offmtx, NULL /* desc */, MUTEX_DRIVER, NULL /* arg */); vbi_is_initialized = 1; return (0); } +/* Introduced in v10 */ +void vbi_term(void) +{ + mutex_destroy(&offmtx); +} + #if 0 int _fini(void) @@ -1286,78 +1275,103 @@ /* - * This is revision 8 of the interface. + * This is revision 10 of the interface. */ -static vnode_t vbipagevp; +page_t * +vbi_page_alloc(caddr_t virtaddr) +{ + /* + * allocate one _4K page and prepare it for use with VirtualBox. + */ + u_offset_t offpage; + seg_t kernseg; -page_t ** -vbi_pages_alloc(uint64_t *phys, size_t size) + mutex_enter(&offmtx); + AssertCompile(sizeof(u_offset_t) == sizeof(uint64_t)); + offvp = P2ROUNDUP(offvp, PAGESIZE) + PAGESIZE; + offpage = offvp; + mutex_exit(&offmtx); + + kernseg.s_as = &kas; + page_t *ppage = page_create_va(&vbipagevp, offpage, PAGESIZE, PG_WAIT | PG_NORELOC, &kernseg, virtaddr); + if (ppage) + { + /* + * lock this page into memory "long term" to prevent this page from being pageed out + * when we drop the page lock temporarily (during free). + */ + page_pp_lock(ppage, 0 /* COW */, 1 /* Kernel */); + page_io_unlock(ppage); + page_downgrade(ppage); + Assert(PAGE_LOCKED_SE(ppage, SE_SHARED)); + } + return ppage; +} + + +void +vbi_page_destroy(page_t *ppage) { /* - * the page freelist and cachelist both hold pages that are not mapped into any address space. - * the cachelist is not really free pages but when memory is exhausted they'll be moved to the - * free lists. - * it's the total of the free+cache list that we see on the 'free' column in vmstat. + * Exclusive lock the pages before destroying. */ + u_offset_t offpage = ppage->p_offset; + + if (!page_tryupgrade(ppage)) + { + page_unlock(ppage); + page_t *pfoundpage = page_lookup(&vbipagevp, offpage, SE_EXCL); + + /* + * Since we allocated the pages as PG_NORELOC we should only get back the exact page always. + */ + AssertReleaseMsg(pfoundpage == ppage, ("page_lookup failed %p:%llx returned %p, expected %p\n", + &vbipagevp, offpage, pfoundpage, ppage)); + } + Assert(PAGE_LOCKED_SE(ppage, SE_EXCL)); + page_pp_unlock(ppage, 0 /* COW */, 1 /* Kernel */); + page_destroy(ppage, 0 /* move to free list*/); +} + + +page_t ** +vbi_pages_alloc(uint64_t *phys, size_t size) +{ page_t **pp_pages = NULL; - pgcnt_t npages = (size + PAGESIZE - 1) >> PAGESHIFT; + size_t npages = (size + PAGESIZE - 1) >> PAGESHIFT; /* reserve available memory for pages */ int rc = page_resv(npages, KM_NOSLEEP); if (rc) { - /* create the pages */ - rc = page_create_wait(npages, 0 /* flags */); - if (rc) + /* alloc space for page_t pointer array */ + size_t pp_size = npages * sizeof(page_t *); + pp_pages = kmem_zalloc(pp_size, KM_SLEEP); + if (pp_pages) { - /* alloc space for page_t pointer array */ - size_t pp_size = npages * sizeof(page_t *); - pp_pages = kmem_zalloc(pp_size, KM_SLEEP); - if (pp_pages) + /* + * get pages from kseg, the 'virtAddr' here is only for colouring but unfortunately + * we don't have the 'virtAddr' to which this memory may be mapped. + */ + caddr_t virtAddr = NULL; + for (size_t i = 0; i < npages; i++, virtAddr += PAGESIZE) { - /* - * get pages from kseg, the 'virtAddr' here is only for colouring but unfortunately - * we don't have the 'virtAddr' to which this memory may be mapped. - */ - caddr_t virtAddr = NULL; - for (int64_t i = 0; i < npages; i++, virtAddr += PAGESIZE) + page_t *ppage = vbi_page_alloc(virtAddr); + if (!ppage) { - /* get a page from the freelists */ - page_t *ppage = vbi_page_get_fromlist(1 /* freelist */, virtAddr, PAGESIZE); - if (!ppage) - { - /* try from the cachelists */ - ppage = vbi_page_get_fromlist(2 /* cachelist */, virtAddr, PAGESIZE); - if (!ppage) - { - /* damn */ - page_create_putback(npages - i); - while (--i >= 0) - page_free(pp_pages[i], 0 /* don't need, move to tail */); - kmem_free(pp_pages, pp_size); - page_unresv(npages); - return NULL; - } - - /* remove association with the vnode for pages from the cachelist */ - if (!PP_ISAGED(ppage)) - page_hashout(ppage, NULL /* mutex */); - } - - PP_CLRFREE(ppage); /* Page is not free */ - PP_CLRAGED(ppage); /* Page is not hashed in */ - pp_pages[i] = ppage; + /* damn */ + for (size_t k = 0; k < i; k++) + vbi_page_destroy(pp_pages[k]); + kmem_free(pp_pages, pp_size); + page_unresv(npages); + return NULL; } - - /* - * we now have the pages locked exclusively, before they are mapped in - * we must downgrade the lock. - */ - *phys = (uint64_t)page_pptonum(pp_pages[0]) << PAGESHIFT; - return pp_pages; + pp_pages[i] = ppage; } - page_create_putback(npages); + if (phys) + *phys = (uint64_t)page_pptonum(pp_pages[0]) << PAGESHIFT; + return pp_pages; } page_unresv(npages); @@ -1370,52 +1384,19 @@ void vbi_pages_free(page_t **pp_pages, size_t size) { - pgcnt_t npages = (size + PAGESIZE - 1) >> PAGESHIFT; + size_t npages = (size + PAGESIZE - 1) >> PAGESHIFT; size_t pp_size = npages * sizeof(page_t *); - for (pgcnt_t i = 0; i < npages; i++) - { - /* we need to exclusive lock the pages before freeing them */ - int rc = page_tryupgrade(pp_pages[i]); - if (!rc) - { - page_unlock(pp_pages[i]); - while (!page_lock(pp_pages[i], SE_EXCL, NULL /* mutex */, P_RECLAIM)) - ; - } - page_free(pp_pages[i], 0 /* don't need, move to tail */); - } + for (size_t i = 0; i < npages; i++) + vbi_page_destroy(pp_pages[i]); kmem_free(pp_pages, pp_size); page_unresv(npages); } -int -vbi_pages_premap(page_t **pp_pages, size_t size, uint64_t *pphysaddrs) -{ - if (!pphysaddrs) - return -1; - - pgcnt_t npages = (size + PAGESIZE - 1) >> PAGESHIFT; - for (pgcnt_t i = 0; i < npages; i++) - { - /* - * prepare pages for mapping into kernel/user space, we need to - * downgrade the exclusive page lock to a shared lock if the - * pages is locked exclusively. - */ - if (page_tryupgrade(pp_pages[i]) == 1) - page_downgrade(pp_pages[i]); - pphysaddrs[i] = vbi_page_to_pa(pp_pages, i); - } - - return 0; -} - - uint64_t -vbi_page_to_pa(page_t **pp_pages, pgcnt_t i) +vbi_page_to_pa(page_t **pp_pages, size_t i) { pfn_t pfn = page_pptonum(pp_pages[i]); if (pfn == PFN_INVALID) @@ -1424,166 +1405,6 @@ } -static page_t * -vbi_page_get_fromlist(uint_t freelist, caddr_t virtAddr, size_t pgsize) -{ - /* pgsize only applies when using the freelist */ - seg_t kernseg; - kernseg.s_as = &kas; - page_t *ppage = NULL; - if (freelist == 1) - { - ppage = page_get_freelist(&vbipagevp, 0 /* offset */, &kernseg, virtAddr, - pgsize, 0 /* flags */, NULL /* local group */); - if (!ppage && use_kflt) - { - ppage = page_get_freelist(&vbipagevp, 0 /* offset */, &kernseg, virtAddr, - pgsize, 0x0200 /* PG_KFLT */, NULL /* local group */); - } - } - else - { - /* cachelist */ - ppage = page_get_cachelist(&vbipagevp, 0 /* offset */, &kernseg, virtAddr, - 0 /* flags */, NULL /* local group */); - if (!ppage && use_kflt) - { - ppage = page_get_cachelist(&vbipagevp, 0 /* offset */, &kernseg, virtAddr, - 0x0200 /* PG_KFLT */, NULL /* local group */); - } - } - return ppage; -} - - -/* - * Large page code. - */ - -page_t * -vbi_large_page_alloc(uint64_t *pphys, size_t pgsize) -{ - pgcnt_t const npages = pgsize >> PAGESHIFT; - page_t *pproot, *pp, *pplist; - pgcnt_t ipage; - caddr_t vaddr; - seg_t kernseg; - int rc; - - /* - * Reserve available memory for a large page and create it. - */ - rc = page_resv(npages, KM_NOSLEEP); - if (!rc) - return NULL; - - rc = page_create_wait(npages, 0 /* flags */); - if (!rc) { - page_unresv(npages); - return NULL; - } - - /* - * Get a page off the free list. We set vaddr to 0 since we don't know - * where the memory is going to be mapped. - */ - vaddr = NULL; - kernseg.s_as = &kas; - pproot = vbi_page_get_fromlist(1 /* freelist */, vaddr, pgsize); - if (!pproot) - { - page_create_putback(npages); - page_unresv(npages); - return NULL; - } - AssertMsg(!(page_pptonum(pproot) & (npages - 1)), ("%p:%lx npages=%lx\n", pproot, page_pptonum(pproot), npages)); - - /* - * Mark all the sub-pages as non-free and not-hashed-in. - * It is paramount that we destroy the list (before freeing it). - */ - pplist = pproot; - for (ipage = 0; ipage < npages; ipage++) { - pp = pplist; - AssertPtr(pp); - AssertMsg(page_pptonum(pp) == ipage + page_pptonum(pproot), - ("%p:%lx %lx+%lx\n", pp, page_pptonum(pp), ipage, page_pptonum(pproot))); - page_sub(&pplist, pp); - AssertMsg(PP_ISFREE(pp), ("%p\n", pp)); - AssertMsg(pp->p_szc == pproot->p_szc, ("%p - %d expected %d \n", pp, pp->p_szc, pproot->p_szc)); - - PP_CLRFREE(pp); - PP_CLRAGED(pp); - } - - *pphys = (uint64_t)page_pptonum(pproot) << PAGESHIFT; - AssertMsg(!(*pphys & (pgsize - 1)), ("%llx %zx\n", *pphys, pgsize)); - return pproot; -} - -void -vbi_large_page_free(page_t *pproot, size_t pgsize) -{ - pgcnt_t const npages = pgsize >> PAGESHIFT; - pgcnt_t ipage; - - Assert(page_get_pagecnt(pproot->p_szc) == npages); - AssertMsg(!(page_pptonum(pproot) & (npages - 1)), ("%p:%lx npages=%lx\n", pproot, page_pptonum(pproot), npages)); - - /* - * We need to exclusively lock the sub-pages before freeing - * the large one. - */ - for (ipage = 0; ipage < npages; ipage++) { - page_t *pp = page_nextn(pproot, ipage); - AssertMsg(page_pptonum(pp) == ipage + page_pptonum(pproot), - ("%p:%lx %lx+%lx\n", pp, page_pptonum(pp), ipage, page_pptonum(pproot))); - AssertMsg(!PP_ISFREE(pp), ("%p\n", pp)); - - int rc = page_tryupgrade(pp); - if (!rc) { - page_unlock(pp); - while (!page_lock(pp, SE_EXCL, NULL /* mutex */, P_RECLAIM)) { - /*nothing*/; - } - } - } - - /* - * Free the large page and unreserve the memory. - */ - page_free_pages(pproot); - page_unresv(npages); -} - -int -vbi_large_page_premap(page_t *pproot, size_t pgsize) -{ - pgcnt_t const npages = pgsize >> PAGESHIFT; - pgcnt_t ipage; - - Assert(page_get_pagecnt(pproot->p_szc) == npages); - AssertMsg(!(page_pptonum(pproot) & (npages - 1)), ("%p:%lx npages=%lx\n", pproot, page_pptonum(pproot), npages)); - - /* - * We need to downgrade the sub-pages from exclusive to shared locking - * because otherwise we cannot . - */ - for (ipage = 0; ipage < npages; ipage++) { - page_t *pp = page_nextn(pproot, ipage); - AssertMsg(page_pptonum(pp) == ipage + page_pptonum(pproot), - ("%p:%lx %lx+%lx\n", pp, page_pptonum(pp), ipage, page_pptonum(pproot))); - AssertMsg(!PP_ISFREE(pp), ("%p\n", pp)); - - if (page_tryupgrade(pp) == 1) - page_downgrade(pp); - AssertMsg(!PP_ISFREE(pp), ("%p\n", pp)); - } - - return 0; -} - - /* * As more functions are added, they should start with a comment indicating * the revision and above this point in the file and the revision level should @@ -1592,5 +1413,5 @@ * NOTE! We'll start care about this if anything in here ever makes it into * the solaris kernel proper. */ -uint_t vbi_revision_level = 9; +uint_t vbi_revision_level = 10; diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Runtime/r0drv/solaris/vbi/i86pc/sys/vbi.h virtualbox-4.1.44-dfsg/src/VBox/Runtime/r0drv/solaris/vbi/i86pc/sys/vbi.h --- virtualbox-4.1.12-dfsg/src/VBox/Runtime/r0drv/solaris/vbi/i86pc/sys/vbi.h 2012-04-02 13:29:04.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Runtime/r0drv/solaris/vbi/i86pc/sys/vbi.h 2015-11-11 15:09:10.000000000 +0000 @@ -39,6 +39,12 @@ int vbi_init(void); /* + * Must be called to terminate the VBI structures and code paths. + * Introduced in v10. + */ +void vbi_term(void); + +/* * Private interfaces for VirtualBox access to Solaris kernel internal * facilities. The interface uses limited types when crossing the kernel * to hypervisor boundary. (void *) is for handles and function and other @@ -378,37 +384,12 @@ extern void vbi_pages_free(page_t **pp_pages, size_t size); /* - * Prepare pages allocated via vbi_pages_alloc() to be mapped into - * user or kernel space. - * - * return value is 0 on success, non-zero on failure. - * - * size is the amount allocated from which number of pages in the page array - * will be computed. - * - * physaddrs on input is filled with the physical address of each corresponding page - * that can be mapped in. Size of the array pointed to by physaddrs must correspond - * to size. - */ -extern int vbi_pages_premap(page_t **pp_pages, size_t size, uint64_t *physaddrs); - -/* * Returns the physical address for the 'i'th page in the array of page * structures in 'pp_pages' */ extern uint64_t vbi_page_to_pa(page_t **pp_pages, pgcnt_t i); /* end of interfaces defined for version 8 */ -/* - * Allocate, free and map one large page. - * - * The size of the large page is hardware specific and must be specified - * correctly or we'll panic. :-) - */ -extern page_t *vbi_large_page_alloc(uint64_t *pphys, size_t pgsize); -extern void vbi_large_page_free(page_t *ppage, size_t pgsize); -extern int vbi_large_page_premap(page_t *pproot, size_t pgsize); - #ifdef __cplusplus } diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Runtime/r0drv/solaris/vbi/memobj-r0drv-solaris.c virtualbox-4.1.44-dfsg/src/VBox/Runtime/r0drv/solaris/vbi/memobj-r0drv-solaris.c --- virtualbox-4.1.12-dfsg/src/VBox/Runtime/r0drv/solaris/vbi/memobj-r0drv-solaris.c 2012-04-02 13:29:04.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Runtime/r0drv/solaris/vbi/memobj-r0drv-solaris.c 2015-11-11 15:09:10.000000000 +0000 @@ -57,9 +57,6 @@ void *pvHandle; /** Access during locking. */ int fAccess; - /** Set if large pages are involved in an RTR0MEMOBJTYPE_PHYS - * allocation. */ - bool fLargePage; } RTR0MEMOBJSOLARIS, *PRTR0MEMOBJSOLARIS; @@ -77,8 +74,6 @@ case RTR0MEMOBJTYPE_PHYS: if (!pMemSolaris->Core.u.Phys.fAllocated) { /* nothing to do here */; } - else if (pMemSolaris->fLargePage) - vbi_large_page_free(pMemSolaris->pvHandle, pMemSolaris->Core.cb); else vbi_phys_free(pMemSolaris->Core.pv, pMemSolaris->Core.cb); break; @@ -207,63 +202,24 @@ return VERR_NO_MEMORY; /* - * Allocating one large page gets special treatment. + * Allocate physically contiguous memory aligned as specified. */ - static uint32_t s_cbLargePage = UINT32_MAX; - if (s_cbLargePage == UINT32_MAX) - { -#if 0 /* currently not entirely stable, so disabled. */ - if (page_num_pagesizes() > 1) - ASMAtomicWriteU32(&s_cbLargePage, page_get_pagesize(1)); - else -#endif - ASMAtomicWriteU32(&s_cbLargePage, 0); - } - uint64_t PhysAddr; - if ( cb == s_cbLargePage - && cb == uAlignment - && PhysHighest == NIL_RTHCPHYS) - { - /* - * Allocate one large page. - */ - void *pvPages = vbi_large_page_alloc(&PhysAddr, cb); - if (pvPages) - { - AssertMsg(!(PhysAddr & (cb - 1)), ("%RHp\n", PhysAddr)); - pMemSolaris->Core.pv = NULL; - pMemSolaris->Core.u.Phys.PhysBase = PhysAddr; - pMemSolaris->Core.u.Phys.fAllocated = true; - pMemSolaris->pvHandle = pvPages; - pMemSolaris->fLargePage = true; - - *ppMem = &pMemSolaris->Core; - return VINF_SUCCESS; - } - } - else + AssertCompile(NIL_RTHCPHYS == UINT64_MAX); + uint64_t PhysAddr = PhysHighest; + caddr_t pvMem = vbi_phys_alloc(&PhysAddr, cb, uAlignment, 1 /* contiguous */); + if (RT_LIKELY(pvMem)) { - /* - * Allocate physically contiguous memory aligned as specified. - */ - AssertCompile(NIL_RTHCPHYS == UINT64_MAX); - PhysAddr = PhysHighest; - caddr_t pvMem = vbi_phys_alloc(&PhysAddr, cb, uAlignment, 1 /* contiguous */); - if (RT_LIKELY(pvMem)) - { - Assert(!(PhysAddr & PAGE_OFFSET_MASK)); - Assert(PhysAddr < PhysHighest); - Assert(PhysAddr + cb <= PhysHighest); - - pMemSolaris->Core.pv = pvMem; - pMemSolaris->Core.u.Phys.PhysBase = PhysAddr; - pMemSolaris->Core.u.Phys.fAllocated = true; - pMemSolaris->pvHandle = NULL; - pMemSolaris->fLargePage = false; + Assert(!(PhysAddr & PAGE_OFFSET_MASK)); + Assert(PhysAddr < PhysHighest); + Assert(PhysAddr + cb <= PhysHighest); + + pMemSolaris->Core.pv = pvMem; + pMemSolaris->Core.u.Phys.PhysBase = PhysAddr; + pMemSolaris->Core.u.Phys.fAllocated = true; + pMemSolaris->pvHandle = NULL; - *ppMem = &pMemSolaris->Core; - return VINF_SUCCESS; - } + *ppMem = &pMemSolaris->Core; + return VINF_SUCCESS; } rtR0MemObjDelete(&pMemSolaris->Core); return VERR_NO_CONT_MEMORY; @@ -427,18 +383,11 @@ uint64_t *paPhysAddrs = kmem_zalloc(sizeof(uint64_t) * cPages, KM_SLEEP); if (RT_LIKELY(paPhysAddrs)) { - /* - * Prepare the pages according to type. - */ if (pMemToMapSolaris->Core.enmType == RTR0MEMOBJTYPE_PHYS_NC) - rc = vbi_pages_premap(pMemToMapSolaris->pvHandle, cb, paPhysAddrs); - else if ( pMemToMapSolaris->Core.enmType == RTR0MEMOBJTYPE_PHYS - && pMemToMapSolaris->fLargePage) { - RTHCPHYS Phys = pMemToMapSolaris->Core.u.Phys.PhysBase; - for (pgcnt_t iPage = 0; iPage < cPages; iPage++, Phys += PAGE_SIZE) - paPhysAddrs[iPage] = Phys; - rc = vbi_large_page_premap(pMemToMapSolaris->pvHandle, cb); + page_t **ppPages = pMemToMapSolaris->pvHandle; + for (size_t iPage = 0; iPage < cPages; iPage++) + paPhysAddrs[iPage] = vbi_page_to_pa(ppPages, iPage); } else { diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Runtime/r3/alloc.cpp virtualbox-4.1.44-dfsg/src/VBox/Runtime/r3/alloc.cpp --- virtualbox-4.1.12-dfsg/src/VBox/Runtime/r3/alloc.cpp 2012-04-02 13:29:04.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Runtime/r3/alloc.cpp 2015-11-11 15:09:10.000000000 +0000 @@ -33,7 +33,7 @@ # define RTALLOC_USE_EFENCE 1 #endif -/*#define RTMEMALLOC_USE_TRACKER*/ +/* #define RTMEMALLOC_USE_TRACKER */ /* Don't enable the tracker when building the minimal IPRT. */ #ifdef RT_MINI # undef RTMEMALLOC_USE_TRACKER diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Runtime/r3/alloc-ef.cpp virtualbox-4.1.44-dfsg/src/VBox/Runtime/r3/alloc-ef.cpp --- virtualbox-4.1.12-dfsg/src/VBox/Runtime/r3/alloc-ef.cpp 2012-04-02 13:29:04.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Runtime/r3/alloc-ef.cpp 2015-11-11 15:09:10.000000000 +0000 @@ -414,7 +414,7 @@ RTALLOC_EFENCE_NOMAN_FILLER); if (pvWrong) RTAssertDoPanic(); - pvWrong = ASMMemIsAll8((void *)((uintptr_t)pv & ~PAGE_OFFSET_MASK), + pvWrong = ASMMemIsAll8((void *)((uintptr_t)pv & ~(uintptr_t)PAGE_OFFSET_MASK), RT_ALIGN_Z(pBlock->cbAligned, PAGE_SIZE) - pBlock->cbAligned, RTALLOC_EFENCE_NOMAN_FILLER); # endif @@ -447,7 +447,7 @@ # ifdef RTALLOC_EFENCE_IN_FRONT void *pvBlock = (char *)pv - RTALLOC_EFENCE_SIZE; # else - void *pvBlock = (void *)((uintptr_t)pv & ~PAGE_OFFSET_MASK); + void *pvBlock = (void *)((uintptr_t)pv & ~(uintptr_t)PAGE_OFFSET_MASK); # endif size_t cbBlock = RT_ALIGN_Z(pBlock->cbAligned, PAGE_SIZE) + RTALLOC_EFENCE_SIZE; rc = RTMemProtect(pvBlock, cbBlock, RTMEM_PROT_READ | RTMEM_PROT_WRITE); @@ -470,7 +470,7 @@ void *pvBlock = (char *)pv - RTALLOC_EFENCE_SIZE; void *pvEFence = pvBlock; # else - void *pvBlock = (void *)((uintptr_t)pv & ~PAGE_OFFSET_MASK); + void *pvBlock = (void *)((uintptr_t)pv & ~(uintptr_t)PAGE_OFFSET_MASK); void *pvEFence = (char *)pv + pBlock->cb; # endif int rc = RTMemProtect(pvEFence, RTALLOC_EFENCE_SIZE, RTMEM_PROT_READ | RTMEM_PROT_WRITE); @@ -493,9 +493,9 @@ * Let's just expand the E-fence to the first page of the user bit * since we know that it's around. */ - int rc = RTMemProtect((void *)((uintptr_t)pv & ~PAGE_OFFSET_MASK), PAGE_SIZE, RTMEM_PROT_NONE); + int rc = RTMemProtect((void *)((uintptr_t)pv & ~(uintptr_t)PAGE_OFFSET_MASK), PAGE_SIZE, RTMEM_PROT_NONE); if (RT_FAILURE(rc)) - rtmemComplain(pszOp, "RTMemProtect(%p, PAGE_SIZE, RTMEM_PROT_NONE) -> %d\n", (void *)((uintptr_t)pv & ~PAGE_OFFSET_MASK), rc); + rtmemComplain(pszOp, "RTMemProtect(%p, PAGE_SIZE, RTMEM_PROT_NONE) -> %d\n", (void *)((uintptr_t)pv & ~(uintptr_t)PAGE_OFFSET_MASK), rc); #endif /* !RTALLOC_EFENCE_TRACE */ } diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Runtime/r3/init.cpp virtualbox-4.1.44-dfsg/src/VBox/Runtime/r3/init.cpp --- virtualbox-4.1.12-dfsg/src/VBox/Runtime/r3/init.cpp 2012-04-02 13:29:04.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Runtime/r3/init.cpp 2015-11-11 15:09:10.000000000 +0000 @@ -62,11 +62,11 @@ #endif #include +#include "init.h" #include "internal/alignmentchecks.h" #include "internal/path.h" #include "internal/process.h" #include "internal/thread.h" -#include "internal/thread.h" #include "internal/time.h" @@ -128,6 +128,14 @@ #endif +#if defined(RT_OS_DARWIN) || defined(RT_OS_FREEBSD) || defined(RT_OS_HAIKU) \ + || defined(RT_OS_LINUX) || defined(RT_OS_OS2) || defined(RT_OS_SOLARIS) /** @todo add host init hooks everywhere. */ +/* Stubs */ +DECLHIDDEN(int) rtR3InitNativeFirst(uint32_t fFlags) { return VINF_SUCCESS; } +DECLHIDDEN(int) rtR3InitNativeFinal(uint32_t fFlags) { return VINF_SUCCESS; } +#endif + + /** * atexit callback. * @@ -241,6 +249,12 @@ static int rtR3InitBody(bool fInitSUPLib, const char *pszProgramPath) { /* + * Early native initialization. + */ + int rc = rtR3InitNativeFirst(0 /*fFlags*/); + AssertMsgRCReturn(rc, ("rtR3InitNativeFirst failed with %Rrc\n", rc), rc); + + /* * Init C runtime locale before we do anything that may end up converting * paths or we'll end up using the "C" locale for path conversion. */ @@ -278,7 +292,7 @@ * This must be done before everything else or else we'll call into threading * without having initialized TLS entries and suchlike. */ - int rc = rtThreadInit(); + rc = rtThreadInit(); AssertMsgRCReturn(rc, ("Failed to initialize threads, rc=%Rrc!\n", rc), rc); #if !defined(IN_GUEST) && !defined(RT_NO_GIP) @@ -377,6 +391,12 @@ IPRT_ALIGNMENT_CHECKS_ENABLE(); #endif + /* + * Final native initialization. + */ + rc = rtR3InitNativeFinal(0 /*fFlags*/); + AssertMsgRCReturn(rc, ("rtR3InitNativeFinal failed with %Rrc\n", rc), rc); + return VINF_SUCCESS; } diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Runtime/r3/init.h virtualbox-4.1.44-dfsg/src/VBox/Runtime/r3/init.h --- virtualbox-4.1.12-dfsg/src/VBox/Runtime/r3/init.h 1970-01-01 00:00:00.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Runtime/r3/init.h 2015-11-11 15:09:10.000000000 +0000 @@ -0,0 +1,57 @@ +/* $Id: init.h $ */ +/** @file + * IPRT - Ring-3 initialization. + */ + +/* + * Copyright (C) 2006-2013 Oracle Corporation + * + * This file is part of VirtualBox Open Source Edition (OSE), as + * available from http://www.virtualbox.org. This file is free software; + * you can redistribute it and/or modify it under the terms of the GNU + * General Public License (GPL) as published by the Free Software + * Foundation, in version 2 as it comes in the "COPYING" file of the + * VirtualBox OSE distribution. VirtualBox OSE is distributed in the + * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind. + * + * The contents of this file may alternatively be used under the terms + * of the Common Development and Distribution License Version 1.0 + * (CDDL) only, as it comes in the "COPYING.CDDL" file of the + * VirtualBox OSE distribution, in which case the provisions of the + * CDDL are applicable instead of those of the GPL. + * + * You may elect to license modified versions of this file under the + * terms and conditions of either the GPL or the CDDL or both. + */ + + +#ifndef ___r3_init_h +#define ___r3_init_h + +#include + +DECLHIDDEN(int) rtR3InitNativeFirst(uint32_t fFlags); +DECLHIDDEN(int) rtR3InitNativeFinal(uint32_t fFlags); + +#ifdef RT_OS_WINDOWS +/* + * Windows specific stuff. + */ +typedef enum RTR3WINLDRPROT +{ + RTR3WINLDRPROT_INVALID = 0, + RTR3WINLDRPROT_NONE, + RTR3WINLDRPROT_NO_CWD, + RTR3WINLDRPROT_SAFE +} RTR3WINLDRPROT; + +extern DECLHIDDEN(RTR3WINLDRPROT) g_enmWinLdrProt; +# ifdef _WINDEF_ +extern DECLHIDDEN(HMODULE) g_hModKernel32; +extern DECLHIDDEN(HMODULE) g_hModNtDll; +# endif + +#endif /* RT_OS_WINDOWS */ + +#endif + diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Runtime/r3/nt/direnum-r3-nt.cpp virtualbox-4.1.44-dfsg/src/VBox/Runtime/r3/nt/direnum-r3-nt.cpp --- virtualbox-4.1.12-dfsg/src/VBox/Runtime/r3/nt/direnum-r3-nt.cpp 1970-01-01 00:00:00.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Runtime/r3/nt/direnum-r3-nt.cpp 2015-11-11 15:09:11.000000000 +0000 @@ -0,0 +1,697 @@ +/* $Id: direnum-r3-nt.cpp $ */ +/** @file + * IPRT - Directory Enumeration, Native NT. + */ + +/* + * Copyright (C) 2006-2013 Oracle Corporation + * + * This file is part of VirtualBox Open Source Edition (OSE), as + * available from http://www.virtualbox.org. This file is free software; + * you can redistribute it and/or modify it under the terms of the GNU + * General Public License (GPL) as published by the Free Software + * Foundation, in version 2 as it comes in the "COPYING" file of the + * VirtualBox OSE distribution. VirtualBox OSE is distributed in the + * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind. + * + * The contents of this file may alternatively be used under the terms + * of the Common Development and Distribution License Version 1.0 + * (CDDL) only, as it comes in the "COPYING.CDDL" file of the + * VirtualBox OSE distribution, in which case the provisions of the + * CDDL are applicable instead of those of the GPL. + * + * You may elect to license modified versions of this file under the + * terms and conditions of either the GPL or the CDDL or both. + */ + + +/******************************************************************************* +* Header Files * +*******************************************************************************/ +#define LOG_GROUP RTLOGGROUP_DIR +#include "internal-r3-nt.h" + +#include +#include +#include +#include +#include +#include +#include +#include +#include "internal/fs.h" +#include "internal/dir.h" + + +/******************************************************************************* +* Defined Constants And Macros * +*******************************************************************************/ +/** Whether to return a single record (TRUE) or multiple (FALSE)o. */ +#define RTDIR_NT_SINGLE_RECORD FALSE + +/** Go hard on record chaining (has slight performance impact). */ +#ifdef RT_STRICT +# define RTDIR_NT_STRICT +#endif + + +/* ASSUMES FileID comes after ShortName and the structus are identical up to that point. */ +AssertCompileMembersSameSizeAndOffset(FILE_BOTH_DIR_INFORMATION, NextEntryOffset, FILE_ID_BOTH_DIR_INFORMATION, NextEntryOffset); +AssertCompileMembersSameSizeAndOffset(FILE_BOTH_DIR_INFORMATION, FileIndex , FILE_ID_BOTH_DIR_INFORMATION, FileIndex ); +AssertCompileMembersSameSizeAndOffset(FILE_BOTH_DIR_INFORMATION, CreationTime , FILE_ID_BOTH_DIR_INFORMATION, CreationTime ); +AssertCompileMembersSameSizeAndOffset(FILE_BOTH_DIR_INFORMATION, LastAccessTime , FILE_ID_BOTH_DIR_INFORMATION, LastAccessTime ); +AssertCompileMembersSameSizeAndOffset(FILE_BOTH_DIR_INFORMATION, LastWriteTime , FILE_ID_BOTH_DIR_INFORMATION, LastWriteTime ); +AssertCompileMembersSameSizeAndOffset(FILE_BOTH_DIR_INFORMATION, ChangeTime , FILE_ID_BOTH_DIR_INFORMATION, ChangeTime ); +AssertCompileMembersSameSizeAndOffset(FILE_BOTH_DIR_INFORMATION, EndOfFile , FILE_ID_BOTH_DIR_INFORMATION, EndOfFile ); +AssertCompileMembersSameSizeAndOffset(FILE_BOTH_DIR_INFORMATION, AllocationSize , FILE_ID_BOTH_DIR_INFORMATION, AllocationSize ); +AssertCompileMembersSameSizeAndOffset(FILE_BOTH_DIR_INFORMATION, FileAttributes , FILE_ID_BOTH_DIR_INFORMATION, FileAttributes ); +AssertCompileMembersSameSizeAndOffset(FILE_BOTH_DIR_INFORMATION, FileNameLength , FILE_ID_BOTH_DIR_INFORMATION, FileNameLength ); +AssertCompileMembersSameSizeAndOffset(FILE_BOTH_DIR_INFORMATION, EaSize , FILE_ID_BOTH_DIR_INFORMATION, EaSize ); +AssertCompileMembersSameSizeAndOffset(FILE_BOTH_DIR_INFORMATION, ShortNameLength, FILE_ID_BOTH_DIR_INFORMATION, ShortNameLength); +AssertCompileMembersSameSizeAndOffset(FILE_BOTH_DIR_INFORMATION, ShortName , FILE_ID_BOTH_DIR_INFORMATION, ShortName ); + + + +size_t rtDirNativeGetStructSize(const char *pszPath) +{ + NOREF(pszPath); + return sizeof(RTDIR); +} + + +int rtDirNativeOpen(PRTDIR pDir, char *pszPathBuf) +{ + /* + * Convert the filter to UTF-16. + */ + int rc; + pDir->pNtFilterStr = NULL; + if ( pDir->cchFilter > 0 + && pDir->enmFilter == RTDIRFILTER_WINNT) + { + PRTUTF16 pwszTmp; + rc = RTStrToUtf16(pDir->pszFilter, &pwszTmp); + if (RT_FAILURE(rc)) + return rc; + pDir->NtFilterStr.Buffer = pwszTmp; + pDir->NtFilterStr.Length = pDir->NtFilterStr.MaximumLength = (uint16_t)(RTUtf16Len(pwszTmp) * sizeof(RTUTF16)); + pDir->pNtFilterStr = &pDir->NtFilterStr; + } + + /* + * Try open the directory + */ +#ifdef IPRT_WITH_NT_PATH_PASSTHRU + bool fObjDir; +#endif + rc = RTNtPathOpenDir(pszPathBuf, + FILE_READ_DATA | SYNCHRONIZE, + FILE_SHARE_READ | FILE_SHARE_WRITE, + FILE_DIRECTORY_FILE | FILE_OPEN_FOR_BACKUP_INTENT | FILE_SYNCHRONOUS_IO_NONALERT, + OBJ_CASE_INSENSITIVE, + &pDir->hDir, +#ifdef IPRT_WITH_NT_PATH_PASSTHRU + &fObjDir +#else + NULL +#endif + ); + if (RT_SUCCESS(rc)) + { + /* + * Init data. + */ + pDir->fDataUnread = false; /* spelling it out */ +#ifdef IPRT_WITH_NT_PATH_PASSTHRU + if (fObjDir) + pDir->enmInfoClass = FileMaximumInformation; /* object directory. */ +#endif + } + return rc; +} + + +RTDECL(int) RTDirClose(PRTDIR pDir) +{ + /* + * Validate input. + */ + if (!pDir) + return VERR_INVALID_PARAMETER; + if (pDir->u32Magic != RTDIR_MAGIC) + { + AssertMsgFailed(("Invalid pDir=%p\n", pDir)); + return VERR_INVALID_PARAMETER; + } + + /* + * Close the handle. + */ + pDir->u32Magic = ~RTDIR_MAGIC; + if (pDir->hDir != RTNT_INVALID_HANDLE_VALUE) + { + int rc = RTNtPathClose(pDir->hDir); + AssertRC(rc); + pDir->hDir = RTNT_INVALID_HANDLE_VALUE; + } + RTStrFree(pDir->pszName); + pDir->pszName = NULL; + RTUtf16Free(pDir->NtFilterStr.Buffer); + pDir->NtFilterStr.Buffer = NULL; + RTMemFree(pDir->pabBuffer); + pDir->pabBuffer = NULL; + RTMemFree(pDir); + + return VINF_SUCCESS; +} + + +/** + * Checks the validity of the current record. + * + * @returns IPRT status code + * @param pThis The directory instance data. + */ +static int rtDirNtCheckRecord(PRTDIR pThis) +{ +#ifdef RTDIR_NT_STRICT +# ifdef IPRT_WITH_NT_PATH_PASSTHRU + if (pThis->enmInfoClass != FileMaximumInformation) +# endif + { + uintptr_t uEndAddr; + if (pThis->enmInfoClass == FileIdBothDirectoryInformation) + uEndAddr = (uintptr_t)&pThis->uCurData.pBothId->FileName[0]; + else + uEndAddr = (uintptr_t)&pThis->uCurData.pBoth->FileName[0]; + AssertReturn(uEndAddr < (uintptr_t)&pThis->pabBuffer[pThis->cbBuffer], VERR_IO_GEN_FAILURE); + + AssertReturn(pThis->uCurData.pBoth->FileNameLength < _64K, VERR_FILENAME_TOO_LONG); + AssertReturn((pThis->uCurData.pBoth->FileNameLength & 1) == 0, VERR_IO_GEN_FAILURE); + + uEndAddr += pThis->uCurData.pBoth->FileNameLength; + AssertReturn(uEndAddr <= (uintptr_t)&pThis->pabBuffer[pThis->cbBuffer], VERR_IO_GEN_FAILURE); + + AssertReturn((unsigned)pThis->uCurData.pBoth->ShortNameLength <= sizeof(pThis->uCurData.pBoth->ShortName), + VERR_IO_GEN_FAILURE); + } +#endif + + return VINF_SUCCESS; +} + + +/** + * Advances the buffer pointer. + * + * @param pThis The directory instance data. + */ +static int rtDirNtAdvanceBuffer(PRTDIR pThis) +{ + int rc; + +#ifdef IPRT_WITH_NT_PATH_PASSTHRU + if (pThis->enmInfoClass == FileMaximumInformation) + { + pThis->uCurData.pObjDir++; + pThis->fDataUnread = pThis->uCurData.pObjDir->Name.Length != 0; + return VINF_SUCCESS; + } +#endif + + pThis->fDataUnread = false; + + uint32_t const offNext = pThis->uCurData.pBoth->NextEntryOffset; + if (offNext == 0) + return VINF_SUCCESS; + +#ifdef RTDIR_NT_STRICT + /* Make sure the next-record offset is beyond the current record. */ + size_t cbRec; + if (pThis->enmInfoClass == FileIdBothDirectoryInformation) + cbRec = RT_UOFFSETOF(FILE_ID_BOTH_DIR_INFORMATION, FileName); + else + cbRec = RT_UOFFSETOF(FILE_BOTH_DIR_INFORMATION, FileName); + cbRec += pThis->uCurData.pBoth->FileNameLength; + AssertReturn(offNext >= cbRec, VERR_IO_GEN_FAILURE); +#endif + pThis->uCurData.u += offNext; + + rc = rtDirNtCheckRecord(pThis); + pThis->fDataUnread = RT_SUCCESS(rc); + return rc; +} + + +/** + * Fetches more data from the file system. + * + * @returns IPRT status code + * @param pThis The directory instance data. + */ +static int rtDirNtFetchMore(PRTDIR pThis) +{ + Assert(!pThis->fDataUnread); + + /* + * Allocate the buffer the first time around. + * We do this in lazy fashion as some users of RTDirOpen will not actually + * list any files, just open it for various reasons. + */ + bool fFirst = false; + if (!pThis->pabBuffer) + { + fFirst = false; + pThis->cbBufferAlloc = _256K; + pThis->pabBuffer = (uint8_t *)RTMemAlloc(pThis->cbBufferAlloc); + if (!pThis->pabBuffer) + { + do + { + pThis->cbBufferAlloc /= 4; + pThis->pabBuffer = (uint8_t *)RTMemAlloc(pThis->cbBufferAlloc); + } while (pThis->pabBuffer == NULL && pThis->cbBufferAlloc > _4K); + if (!pThis->pabBuffer) + return VERR_NO_MEMORY; + } + } + + /* + * Read more. + */ + NTSTATUS rcNt; + IO_STATUS_BLOCK Ios = RTNT_IO_STATUS_BLOCK_INITIALIZER; + if (pThis->enmInfoClass != (FILE_INFORMATION_CLASS)0) + { +#ifdef IPRT_WITH_NT_PATH_PASSTHRU + if (pThis->enmInfoClass == FileMaximumInformation) + { + Ios.Information = 0; + Ios.Status = rcNt = NtQueryDirectoryObject(pThis->hDir, + pThis->pabBuffer, + pThis->cbBufferAlloc, + RTDIR_NT_SINGLE_RECORD /*ReturnSingleEntry */, + FALSE /*RestartScan*/, + &pThis->uObjDirCtx, + (PULONG)&Ios.Information); + } + else +#endif + rcNt = NtQueryDirectoryFile(pThis->hDir, + NULL /* Event */, + NULL /* ApcRoutine */, + NULL /* ApcContext */, + &Ios, + pThis->pabBuffer, + pThis->cbBufferAlloc, + pThis->enmInfoClass, + RTDIR_NT_SINGLE_RECORD /*ReturnSingleEntry */, + pThis->pNtFilterStr, + FALSE /*RestartScan */); + } + else + { + /* + * The first time around we have figure which info class we can use. + * We prefer one which gives us file IDs, but we'll settle for less. + */ + pThis->enmInfoClass = FileIdBothDirectoryInformation; + rcNt = NtQueryDirectoryFile(pThis->hDir, + NULL /* Event */, + NULL /* ApcRoutine */, + NULL /* ApcContext */, + &Ios, + pThis->pabBuffer, + pThis->cbBufferAlloc, + pThis->enmInfoClass, + RTDIR_NT_SINGLE_RECORD /*ReturnSingleEntry */, + pThis->pNtFilterStr, + FALSE /*RestartScan */); + if (!NT_SUCCESS(rcNt)) + { + pThis->enmInfoClass = FileBothDirectoryInformation; + rcNt = NtQueryDirectoryFile(pThis->hDir, + NULL /* Event */, + NULL /* ApcRoutine */, + NULL /* ApcContext */, + &Ios, + pThis->pabBuffer, + pThis->cbBufferAlloc, + pThis->enmInfoClass, + RTDIR_NT_SINGLE_RECORD /*ReturnSingleEntry */, + pThis->pNtFilterStr, + FALSE /*RestartScan */); + } + } + if (!NT_SUCCESS(rcNt)) + { + if (rcNt == STATUS_NO_MORE_FILES || rcNt == STATUS_NO_MORE_ENTRIES) + return VERR_NO_MORE_FILES; + return RTErrConvertFromNtStatus(rcNt); + } + Assert(Ios.Information > sizeof(*pThis->uCurData.pBoth)); + + /* + * Set up the data members. + */ + pThis->uCurData.u = (uintptr_t)pThis->pabBuffer; + pThis->cbBuffer = Ios.Information; + + int rc = rtDirNtCheckRecord(pThis); + pThis->fDataUnread = RT_SUCCESS(rc); + + return rc; +} + + +/** + * Converts the name from UTF-16 to UTF-8. + * + * Fortunately, the names are relative to the directory, so we won't have to do + * any sweaty path style coversion. :-) + * + * @returns IPRT status code + * @param pThis The directory instance data. + * @param cbName The file name length in bytes. + * @param pwsName The file name, not terminated. + */ +static int rtDirNtConvertName(PRTDIR pThis, uint32_t cbName, PCRTUTF16 pwsName) +{ + int rc = RTUtf16ToUtf8Ex(pwsName, cbName / 2, &pThis->pszName, pThis->cbNameAlloc, &pThis->cchName); + if (RT_SUCCESS(rc)) + { + if (!pThis->cbNameAlloc) + pThis->cbNameAlloc = pThis->cchName + 1; + } + else if (rc == VERR_BUFFER_OVERFLOW) + { + RTStrFree(pThis->pszName); + pThis->pszName = NULL; + pThis->cbNameAlloc = 0; + + rc = RTUtf16ToUtf8Ex(pwsName, cbName / 2, &pThis->pszName, pThis->cbNameAlloc, &pThis->cchName); + if (RT_SUCCESS(rc)) + pThis->cbNameAlloc = pThis->cchName + 1; + } + Assert(RT_SUCCESS(rc) ? pThis->pszName != NULL : pThis->pszName == NULL); + return rc; +} + + +/** + * Converts the name of the current record. + * + * @returns IPRT status code. + * @param pThis The directory instance data. + */ +static int rtDirNtConvertCurName(PRTDIR pThis) +{ + switch (pThis->enmInfoClass) + { + case FileIdBothDirectoryInformation: + return rtDirNtConvertName(pThis, pThis->uCurData.pBothId->FileNameLength, pThis->uCurData.pBothId->FileName); + case FileBothDirectoryInformation: + return rtDirNtConvertName(pThis, pThis->uCurData.pBoth->FileNameLength, pThis->uCurData.pBoth->FileName); +#ifdef IPRT_WITH_NT_PATH_PASSTHRU + case FileMaximumInformation: + return rtDirNtConvertName(pThis, pThis->uCurData.pObjDir->Name.Length, pThis->uCurData.pObjDir->Name.Buffer); +#endif + + default: + AssertFailedReturn(VERR_INTERNAL_ERROR_3); + } +} + + +RTDECL(int) RTDirRead(PRTDIR pDir, PRTDIRENTRY pDirEntry, size_t *pcbDirEntry) +{ + int rc; + + /* + * Validate input. + */ + AssertPtrReturn(pDir, VERR_INVALID_POINTER); + AssertReturn(pDir->u32Magic == RTDIR_MAGIC, VERR_INVALID_HANDLE); + AssertPtrReturn(pDirEntry, VERR_INVALID_POINTER); + size_t cbDirEntry = sizeof(*pDirEntry); + if (pcbDirEntry) + { + cbDirEntry = *pcbDirEntry; + AssertMsgReturn(cbDirEntry >= RT_UOFFSETOF(RTDIRENTRY, szName[2]), + ("Invalid *pcbDirEntry=%d (min %d)\n", *pcbDirEntry, RT_OFFSETOF(RTDIRENTRY, szName[2])), + VERR_INVALID_PARAMETER); + } + + /* + * Fetch data? + */ + if (!pDir->fDataUnread) + { + rc = rtDirNtFetchMore(pDir); + if (RT_FAILURE(rc)) + return rc; + } + + /* + * Convert the filename to UTF-8. + */ + rc = rtDirNtConvertCurName(pDir); + if (RT_FAILURE(rc)) + return rc; + + /* + * Check if we've got enough space to return the data. + */ + const char *pszName = pDir->pszName; + const size_t cchName = pDir->cchName; + const size_t cbRequired = RT_OFFSETOF(RTDIRENTRY, szName[1]) + cchName; + if (pcbDirEntry) + *pcbDirEntry = cbRequired; + if (cbRequired > cbDirEntry) + return VERR_BUFFER_OVERFLOW; + + /* + * Setup the returned data. + */ + pDirEntry->cbName = (uint16_t)cchName; Assert(pDirEntry->cbName == cchName); + memcpy(pDirEntry->szName, pszName, cchName + 1); + + pDirEntry->INodeId = pDir->enmInfoClass == FileIdBothDirectoryInformation + ? pDir->uCurData.pBothId->FileId.QuadPart : 0; + +#ifdef IPRT_WITH_NT_PATH_PASSTHRU + if (pDir->enmInfoClass != FileMaximumInformation) +#endif + { + switch ( pDir->uCurData.pBoth->FileAttributes + & (FILE_ATTRIBUTE_REPARSE_POINT | FILE_ATTRIBUTE_REPARSE_POINT | FILE_ATTRIBUTE_DIRECTORY)) + { + default: + AssertFailed(); + case 0: + pDirEntry->enmType = RTDIRENTRYTYPE_FILE; + break; + + case FILE_ATTRIBUTE_DIRECTORY: + pDirEntry->enmType = RTDIRENTRYTYPE_DIRECTORY; + break; + + case FILE_ATTRIBUTE_REPARSE_POINT: + case FILE_ATTRIBUTE_REPARSE_POINT | FILE_ATTRIBUTE_DIRECTORY: + pDirEntry->enmType = RTDIRENTRYTYPE_SYMLINK; + break; + } + } +#ifdef IPRT_WITH_NT_PATH_PASSTHRU + else + { + pDirEntry->enmType = RTDIRENTRYTYPE_UNKNOWN; + if (rtNtCompWideStrAndAscii(pDir->uCurData.pObjDir->TypeName.Buffer, pDir->uCurData.pObjDir->TypeName.Length, + RT_STR_TUPLE("Directory"))) + pDirEntry->enmType = RTDIRENTRYTYPE_DIRECTORY; + else if (rtNtCompWideStrAndAscii(pDir->uCurData.pObjDir->TypeName.Buffer, pDir->uCurData.pObjDir->TypeName.Length, + RT_STR_TUPLE("SymbolicLink"))) + pDirEntry->enmType = RTDIRENTRYTYPE_SYMLINK; + } +#endif + + return rtDirNtAdvanceBuffer(pDir); +} + + +RTDECL(int) RTDirReadEx(PRTDIR pDir, PRTDIRENTRYEX pDirEntry, size_t *pcbDirEntry, + RTFSOBJATTRADD enmAdditionalAttribs, uint32_t fFlags) +{ + int rc; + + /* + * Validate input. + */ + AssertPtrReturn(pDir, VERR_INVALID_POINTER); + AssertReturn(pDir->u32Magic == RTDIR_MAGIC, VERR_INVALID_HANDLE); + AssertPtrReturn(pDirEntry, VERR_INVALID_POINTER); + + AssertReturn(enmAdditionalAttribs >= RTFSOBJATTRADD_NOTHING && enmAdditionalAttribs <= RTFSOBJATTRADD_LAST, + VERR_INVALID_PARAMETER); + AssertMsgReturn(RTPATH_F_IS_VALID(fFlags, 0), ("%#x\n", fFlags), VERR_INVALID_PARAMETER); + + size_t cbDirEntry = sizeof(*pDirEntry); + if (pcbDirEntry) + { + cbDirEntry = *pcbDirEntry; + AssertMsgReturn(cbDirEntry >= RT_UOFFSETOF(RTDIRENTRYEX, szName[2]), + ("Invalid *pcbDirEntry=%d (min %d)\n", *pcbDirEntry, RT_OFFSETOF(RTDIRENTRYEX, szName[2])), + VERR_INVALID_PARAMETER); + } + + /* + * Fetch data? + */ + if (!pDir->fDataUnread) + { + rc = rtDirNtFetchMore(pDir); + if (RT_FAILURE(rc)) + return rc; + } + + /* + * Convert the filename to UTF-8. + */ + rc = rtDirNtConvertCurName(pDir); + if (RT_FAILURE(rc)) + return rc; + + /* + * Check if we've got enough space to return the data. + */ + const char *pszName = pDir->pszName; + const size_t cchName = pDir->cchName; + const size_t cbRequired = RT_OFFSETOF(RTDIRENTRYEX, szName[1]) + cchName; + if (pcbDirEntry) + *pcbDirEntry = cbRequired; + if (cbRequired > cbDirEntry) + return VERR_BUFFER_OVERFLOW; + + /* + * Setup the returned data. + */ + PFILE_BOTH_DIR_INFORMATION pBoth = pDir->uCurData.pBoth; + + pDirEntry->cbName = (uint16_t)cchName; Assert(pDirEntry->cbName == cchName); + memcpy(pDirEntry->szName, pszName, cchName + 1); + memset(pDirEntry->wszShortName, 0, sizeof(pDirEntry->wszShortName)); +#ifdef IPRT_WITH_NT_PATH_PASSTHRU + if (pDir->enmInfoClass != FileMaximumInformation) +#endif + { + uint8_t cbShort = pBoth->ShortNameLength; + if (cbShort > 0) + { + AssertStmt(cbShort < sizeof(pDirEntry->wszShortName), cbShort = sizeof(pDirEntry->wszShortName) - 2); + memcpy(pDirEntry->wszShortName, pBoth->ShortName, cbShort); + pDirEntry->cwcShortName = cbShort / 2; + } + else + pDirEntry->cwcShortName = 0; + + pDirEntry->Info.cbObject = pBoth->EndOfFile.QuadPart; + pDirEntry->Info.cbAllocated = pBoth->AllocationSize.QuadPart; + + Assert(sizeof(uint64_t) == sizeof(pBoth->CreationTime)); + RTTimeSpecSetNtTime(&pDirEntry->Info.BirthTime, pBoth->CreationTime.QuadPart); + RTTimeSpecSetNtTime(&pDirEntry->Info.AccessTime, pBoth->LastAccessTime.QuadPart); + RTTimeSpecSetNtTime(&pDirEntry->Info.ModificationTime, pBoth->LastWriteTime.QuadPart); + RTTimeSpecSetNtTime(&pDirEntry->Info.ChangeTime, pBoth->ChangeTime.QuadPart); + + pDirEntry->Info.Attr.fMode = rtFsModeFromDos((pBoth->FileAttributes << RTFS_DOS_SHIFT) & RTFS_DOS_MASK_NT, + pszName, cchName); + } +#ifdef IPRT_WITH_NT_PATH_PASSTHRU + else + { + pDirEntry->cwcShortName = 0; + pDirEntry->Info.cbObject = 0; + pDirEntry->Info.cbAllocated = 0; + RTTimeSpecSetNtTime(&pDirEntry->Info.BirthTime, 0); + RTTimeSpecSetNtTime(&pDirEntry->Info.AccessTime, 0); + RTTimeSpecSetNtTime(&pDirEntry->Info.ModificationTime, 0); + RTTimeSpecSetNtTime(&pDirEntry->Info.ChangeTime, 0); + + if (rtNtCompWideStrAndAscii(pDir->uCurData.pObjDir->TypeName.Buffer, pDir->uCurData.pObjDir->TypeName.Length, + RT_STR_TUPLE("Directory"))) + pDirEntry->Info.Attr.fMode = RTFS_DOS_DIRECTORY | RTFS_TYPE_DIRECTORY | 0777; + else if (rtNtCompWideStrAndAscii(pDir->uCurData.pObjDir->TypeName.Buffer, pDir->uCurData.pObjDir->TypeName.Length, + RT_STR_TUPLE("SymbolicLink"))) + pDirEntry->Info.Attr.fMode = RTFS_DOS_NT_REPARSE_POINT | RTFS_TYPE_SYMLINK | 0777; + else if (rtNtCompWideStrAndAscii(pDir->uCurData.pObjDir->TypeName.Buffer, pDir->uCurData.pObjDir->TypeName.Length, + RT_STR_TUPLE("Device"))) + pDirEntry->Info.Attr.fMode = RTFS_DOS_NT_DEVICE | RTFS_TYPE_DEV_CHAR | 0666; + else + pDirEntry->Info.Attr.fMode = RTFS_DOS_NT_NORMAL | RTFS_TYPE_FILE | 0666; + } +#endif + + /* + * Requested attributes (we cannot provide anything actually). + */ + switch (enmAdditionalAttribs) + { + case RTFSOBJATTRADD_EASIZE: + pDirEntry->Info.Attr.enmAdditional = RTFSOBJATTRADD_EASIZE; +#ifdef IPRT_WITH_NT_PATH_PASSTHRU + if (pDir->enmInfoClass == FileMaximumInformation) + pDirEntry->Info.Attr.u.EASize.cb = 0; + else +#endif + pDirEntry->Info.Attr.u.EASize.cb = pBoth->EaSize; + break; + + case RTFSOBJATTRADD_UNIX: + pDirEntry->Info.Attr.enmAdditional = RTFSOBJATTRADD_UNIX; + pDirEntry->Info.Attr.u.Unix.uid = ~0U; + pDirEntry->Info.Attr.u.Unix.gid = ~0U; + pDirEntry->Info.Attr.u.Unix.cHardlinks = 1; + pDirEntry->Info.Attr.u.Unix.INodeIdDevice = 0; /** @todo Use the volume serial number (see GetFileInformationByHandle). */ + pDirEntry->Info.Attr.u.Unix.INodeId = 0; /** @todo Use the fileid (see GetFileInformationByHandle). */ + pDirEntry->Info.Attr.u.Unix.fFlags = 0; + pDirEntry->Info.Attr.u.Unix.GenerationId = 0; + pDirEntry->Info.Attr.u.Unix.Device = 0; + break; + + case RTFSOBJATTRADD_NOTHING: + pDirEntry->Info.Attr.enmAdditional = RTFSOBJATTRADD_NOTHING; + break; + + case RTFSOBJATTRADD_UNIX_OWNER: + pDirEntry->Info.Attr.enmAdditional = RTFSOBJATTRADD_UNIX_OWNER; + pDirEntry->Info.Attr.u.UnixOwner.uid = ~0U; + pDirEntry->Info.Attr.u.UnixOwner.szName[0] = '\0'; /** @todo return something sensible here. */ + break; + + case RTFSOBJATTRADD_UNIX_GROUP: + pDirEntry->Info.Attr.enmAdditional = RTFSOBJATTRADD_UNIX_GROUP; + pDirEntry->Info.Attr.u.UnixGroup.gid = ~0U; + pDirEntry->Info.Attr.u.UnixGroup.szName[0] = '\0'; + break; + + default: + AssertMsgFailed(("Impossible!\n")); + return VERR_INTERNAL_ERROR; + } + + /* + * Follow links if requested. + */ + if ( (fFlags & RTPATH_F_FOLLOW_LINK) + && RTFS_IS_SYMLINK(fFlags)) + { + /** @todo Symlinks: Find[First|Next]FileW will return info about + the link, so RTPATH_F_FOLLOW_LINK is not handled correctly. */ + } + + /* + * Finally advance the buffer. + */ + return rtDirNtAdvanceBuffer(pDir); +} + diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Runtime/r3/nt/fs-nt.cpp virtualbox-4.1.44-dfsg/src/VBox/Runtime/r3/nt/fs-nt.cpp --- virtualbox-4.1.12-dfsg/src/VBox/Runtime/r3/nt/fs-nt.cpp 1970-01-01 00:00:00.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Runtime/r3/nt/fs-nt.cpp 2015-11-11 15:09:11.000000000 +0000 @@ -0,0 +1,284 @@ +/* $Id: fs-nt.cpp $ */ +/** @file + * IPRT - File System, Native NT. + */ + +/* + * Copyright (C) 2006-2013 Oracle Corporation + * + * This file is part of VirtualBox Open Source Edition (OSE), as + * available from http://www.virtualbox.org. This file is free software; + * you can redistribute it and/or modify it under the terms of the GNU + * General Public License (GPL) as published by the Free Software + * Foundation, in version 2 as it comes in the "COPYING" file of the + * VirtualBox OSE distribution. VirtualBox OSE is distributed in the + * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind. + * + * The contents of this file may alternatively be used under the terms + * of the Common Development and Distribution License Version 1.0 + * (CDDL) only, as it comes in the "COPYING.CDDL" file of the + * VirtualBox OSE distribution, in which case the provisions of the + * CDDL are applicable instead of those of the GPL. + * + * You may elect to license modified versions of this file under the + * terms and conditions of either the GPL or the CDDL or both. + */ + + +/******************************************************************************* +* Header Files * +*******************************************************************************/ +#define LOG_GROUP RTLOGGROUP_FS +#include "internal-r3-nt.h" + +#include +#include +#include +#include +#include +#include +#include +#include "internal/fs.h" + + + + +RTR3DECL(int) RTFsQuerySizes(const char *pszFsPath, RTFOFF *pcbTotal, RTFOFF *pcbFree, + uint32_t *pcbBlock, uint32_t *pcbSector) +{ + AssertPtrReturn(pszFsPath, VERR_INVALID_POINTER); + + /* + * Open the file/dir/whatever. + */ + HANDLE hFile; + int rc = RTNtPathOpen(pszFsPath, + GENERIC_READ, + FILE_ATTRIBUTE_NORMAL, + FILE_SHARE_READ | FILE_SHARE_WRITE | FILE_SHARE_DELETE, + FILE_OPEN, + FILE_OPEN_FOR_BACKUP_INTENT, + OBJ_CASE_INSENSITIVE, + &hFile, + NULL); + if (RT_SUCCESS(rc)) + { + /* + * Get the volume information. + */ + FILE_FS_SIZE_INFORMATION FsSizeInfo; + IO_STATUS_BLOCK Ios = RTNT_IO_STATUS_BLOCK_INITIALIZER; + NTSTATUS rcNt = NtQueryVolumeInformationFile(hFile, &Ios, &FsSizeInfo, sizeof(FsSizeInfo), FileFsSizeInformation); + if (NT_SUCCESS(rcNt)) + { + /* + * Calculate the return values. + */ + if (pcbTotal) + { + *pcbTotal = FsSizeInfo.TotalAllocationUnits.QuadPart + * FsSizeInfo.SectorsPerAllocationUnit + * FsSizeInfo.BytesPerSector; + if ( *pcbTotal / FsSizeInfo.SectorsPerAllocationUnit / FsSizeInfo.BytesPerSector + != FsSizeInfo.TotalAllocationUnits.QuadPart) + *pcbTotal = UINT64_MAX; + } + + if (pcbFree) + { + *pcbFree = FsSizeInfo.AvailableAllocationUnits.QuadPart + * FsSizeInfo.SectorsPerAllocationUnit + * FsSizeInfo.BytesPerSector; + if ( *pcbFree / FsSizeInfo.SectorsPerAllocationUnit / FsSizeInfo.BytesPerSector + != FsSizeInfo.AvailableAllocationUnits.QuadPart) + *pcbFree = UINT64_MAX; + } + + if (pcbBlock) + { + *pcbBlock = FsSizeInfo.SectorsPerAllocationUnit * FsSizeInfo.BytesPerSector; + if (*pcbBlock / FsSizeInfo.BytesPerSector != FsSizeInfo.SectorsPerAllocationUnit) + rc = VERR_OUT_OF_RANGE; + } + + if (pcbSector) + *pcbSector = FsSizeInfo.BytesPerSector; + } + else + rc = RTErrConvertFromNtStatus(rcNt); + + RTNtPathClose(hFile); + } + return rc; +} + + +RTR3DECL(int) RTFsQuerySerial(const char *pszFsPath, uint32_t *pu32Serial) +{ + /* + * Validate & get valid root path. + */ + AssertPtrReturn(pszFsPath, VERR_INVALID_POINTER); + AssertPtrReturn(pu32Serial, VERR_INVALID_POINTER); + + /* + * Open the file/dir/whatever. + */ + HANDLE hFile; + int rc = RTNtPathOpen(pszFsPath, + GENERIC_READ, + FILE_ATTRIBUTE_NORMAL, + FILE_SHARE_READ | FILE_SHARE_WRITE | FILE_SHARE_DELETE, + FILE_OPEN, + FILE_OPEN_FOR_BACKUP_INTENT, + OBJ_CASE_INSENSITIVE, + &hFile, + NULL); + if (RT_SUCCESS(rc)) + { + /* + * Get the volume information. + */ + union + { + FILE_FS_VOLUME_INFORMATION FsVolInfo; + uint8_t abBuf[sizeof(FILE_FS_VOLUME_INFORMATION) + 4096]; + } u; + IO_STATUS_BLOCK Ios = RTNT_IO_STATUS_BLOCK_INITIALIZER; + NTSTATUS rcNt = NtQueryVolumeInformationFile(hFile, &Ios, &u, sizeof(u), FileFsVolumeInformation); + if (NT_SUCCESS(rcNt)) + *pu32Serial = u.FsVolInfo.VolumeSerialNumber; + else + rc = RTErrConvertFromNtStatus(rcNt); + + RTNtPathClose(hFile); + } + return rc; +} + + +RTR3DECL(int) RTFsQueryProperties(const char *pszFsPath, PRTFSPROPERTIES pProperties) +{ + /* + * Validate & get valid root path. + */ + AssertPtrReturn(pszFsPath, VERR_INVALID_POINTER); + AssertPtrReturn(pProperties, VERR_INVALID_POINTER); + + /* + * Open the file/dir/whatever. + */ + HANDLE hFile; + int rc = RTNtPathOpen(pszFsPath, + GENERIC_READ, + FILE_ATTRIBUTE_NORMAL, + FILE_SHARE_READ | FILE_SHARE_WRITE | FILE_SHARE_DELETE, + FILE_OPEN, + FILE_OPEN_FOR_BACKUP_INTENT, + OBJ_CASE_INSENSITIVE, + &hFile, + NULL); + if (RT_SUCCESS(rc)) + { + /* + * Get the volume information. + */ + union + { + FILE_FS_ATTRIBUTE_INFORMATION FsAttrInfo; + uint8_t abBuf[sizeof(FILE_FS_ATTRIBUTE_INFORMATION) + 4096]; + } u; + IO_STATUS_BLOCK Ios = RTNT_IO_STATUS_BLOCK_INITIALIZER; + NTSTATUS rcNt = NtQueryVolumeInformationFile(hFile, &Ios, &u, sizeof(u), FileFsAttributeInformation); + if (NT_SUCCESS(rcNt)) + { + FILE_FS_DEVICE_INFORMATION FsDevInfo; + rcNt = NtQueryVolumeInformationFile(hFile, &Ios, &FsDevInfo, sizeof(FsDevInfo), FileFsDeviceInformation); + if (NT_SUCCESS(rcNt)) + { + /* + * Fill in the return structure. + */ + memset(pProperties, 0, sizeof(*pProperties)); + pProperties->cbMaxComponent = u.FsAttrInfo.MaximumComponentNameLength; + pProperties->fFileCompression = !!(u.FsAttrInfo.FileSystemAttributes & FILE_FILE_COMPRESSION); + pProperties->fCompressed = !!(u.FsAttrInfo.FileSystemAttributes & FILE_VOLUME_IS_COMPRESSED); + pProperties->fReadOnly = !!(u.FsAttrInfo.FileSystemAttributes & FILE_READ_ONLY_VOLUME); + pProperties->fSupportsUnicode = !!(u.FsAttrInfo.FileSystemAttributes & FILE_UNICODE_ON_DISK); + pProperties->fCaseSensitive = false; /* win32 is case preserving only */ + /** @todo r=bird: What about FILE_CASE_SENSITIVE_SEARCH ? Is this set for NTFS + * as well perchance? If so, better mention it instead of just setting + * fCaseSensitive to false. */ + + /* figure the remote stuff */ + pProperties->fRemote = RT_BOOL(FsDevInfo.Characteristics & FILE_REMOTE_DEVICE); + } + else + rc = RTErrConvertFromNtStatus(rcNt); + } + else + rc = RTErrConvertFromNtStatus(rcNt); + + RTNtPathClose(hFile); + } + return rc; +} + + + +RTR3DECL(int) RTFsQueryType(const char *pszFsPath, PRTFSTYPE penmType) +{ + /* + * Validate input. + */ + *penmType = RTFSTYPE_UNKNOWN; + AssertPtrReturn(pszFsPath, VERR_INVALID_POINTER); + AssertReturn(*pszFsPath, VERR_INVALID_PARAMETER); + + /* + * Open the file/dir/whatever. + */ + HANDLE hFile; + int rc = RTNtPathOpen(pszFsPath, + GENERIC_READ, + FILE_ATTRIBUTE_NORMAL, + FILE_SHARE_READ | FILE_SHARE_WRITE | FILE_SHARE_DELETE, + FILE_OPEN, + FILE_OPEN_FOR_BACKUP_INTENT, + OBJ_CASE_INSENSITIVE, + &hFile, + NULL); + if (RT_SUCCESS(rc)) + { + /* + * Get the file system name. + */ + union + { + FILE_FS_ATTRIBUTE_INFORMATION FsAttrInfo; + uint8_t abBuf[sizeof(FILE_FS_ATTRIBUTE_INFORMATION) + 4096]; + } u; + IO_STATUS_BLOCK Ios = RTNT_IO_STATUS_BLOCK_INITIALIZER; + NTSTATUS rcNt = NtQueryVolumeInformationFile(hFile, &Ios, &u, sizeof(u), FileFsAttributeInformation); + if (NT_SUCCESS(rcNt)) + { +#define IS_FS(a_szName) \ + rtNtCompWideStrAndAscii(u.FsAttrInfo.FileSystemName, u.FsAttrInfo.FileSystemNameLength, RT_STR_TUPLE(a_szName)) + if (IS_FS("NTFS")) + *penmType = RTFSTYPE_NTFS; + else if (IS_FS("FAT")) + *penmType = RTFSTYPE_FAT; + else if (IS_FS("FAT32")) + *penmType = RTFSTYPE_FAT; + else if (IS_FS("VBoxSharedFolderFS")) + *penmType = RTFSTYPE_VBOXSHF; +#undef IS_FS + } + else + rc = RTErrConvertFromNtStatus(rcNt); + + RTNtPathClose(hFile); + } + return rc; +} + diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Runtime/r3/nt/internal-r3-nt.h virtualbox-4.1.44-dfsg/src/VBox/Runtime/r3/nt/internal-r3-nt.h --- virtualbox-4.1.12-dfsg/src/VBox/Runtime/r3/nt/internal-r3-nt.h 1970-01-01 00:00:00.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Runtime/r3/nt/internal-r3-nt.h 2015-11-11 15:09:11.000000000 +0000 @@ -0,0 +1,70 @@ +/* $Id: internal-r3-nt.h $ */ +/** @file + * IPRT - Internal Header for the Native NT code. + */ + +/* + * Copyright (C) 2010-2013 Oracle Corporation + * + * This file is part of VirtualBox Open Source Edition (OSE), as + * available from http://www.virtualbox.org. This file is free software; + * you can redistribute it and/or modify it under the terms of the GNU + * General Public License (GPL) as published by the Free Software + * Foundation, in version 2 as it comes in the "COPYING" file of the + * VirtualBox OSE distribution. VirtualBox OSE is distributed in the + * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind. + * + * The contents of this file may alternatively be used under the terms + * of the Common Development and Distribution License Version 1.0 + * (CDDL) only, as it comes in the "COPYING.CDDL" file of the + * VirtualBox OSE distribution, in which case the provisions of the + * CDDL are applicable instead of those of the GPL. + * + * You may elect to license modified versions of this file under the + * terms and conditions of either the GPL or the CDDL or both. + */ + + +#ifndef ___internal_r3_nt_h___ +#define ___internal_r3_nt_h___ + +#ifdef IN_SUP_HARDENED_R3 +# include +#else +# include +#endif +#include "internal/iprt.h" + + +#ifdef DEBUG_bird +/** Enables the "\\!\" NT path pass thru as well as hacks for listing NT object + * directories. */ +# define IPRT_WITH_NT_PATH_PASSTHRU 1 +#endif + + +/** + * Internal helper for comparing a WCHAR string with a char string. + * + * @returns @c true if equal, @c false if not. + * @param pwsz1 The first string. + * @param cb1 The length of the first string, in bytes. + * @param psz2 The second string. + * @param cch2 The length of the second string. + */ +DECLINLINE(bool) rtNtCompWideStrAndAscii(WCHAR const *pwsz1, size_t cch1, const char *psz2, size_t cch2) +{ + if (cch1 != cch2 * 2) + return false; + while (cch2-- > 0) + { + unsigned ch1 = *pwsz1++; + unsigned ch2 = (unsigned char)*psz2++; + if (ch1 != ch2) + return false; + } + return true; +} + +#endif + diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Runtime/r3/nt/pathint-nt.cpp virtualbox-4.1.44-dfsg/src/VBox/Runtime/r3/nt/pathint-nt.cpp --- virtualbox-4.1.12-dfsg/src/VBox/Runtime/r3/nt/pathint-nt.cpp 1970-01-01 00:00:00.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Runtime/r3/nt/pathint-nt.cpp 2015-11-11 15:09:11.000000000 +0000 @@ -0,0 +1,537 @@ +/* $Id: pathint-nt.cpp $ */ +/** @file + * IPRT - Native NT, Internal Path stuff. + */ + +/* + * Copyright (C) 2006-2013 Oracle Corporation + * + * This file is part of VirtualBox Open Source Edition (OSE), as + * available from http://www.virtualbox.org. This file is free software; + * you can redistribute it and/or modify it under the terms of the GNU + * General Public License (GPL) as published by the Free Software + * Foundation, in version 2 as it comes in the "COPYING" file of the + * VirtualBox OSE distribution. VirtualBox OSE is distributed in the + * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind. + * + * The contents of this file may alternatively be used under the terms + * of the Common Development and Distribution License Version 1.0 + * (CDDL) only, as it comes in the "COPYING.CDDL" file of the + * VirtualBox OSE distribution, in which case the provisions of the + * CDDL are applicable instead of those of the GPL. + * + * You may elect to license modified versions of this file under the + * terms and conditions of either the GPL or the CDDL or both. + */ + + +/******************************************************************************* +* Header Files * +*******************************************************************************/ +#define LOG_GROUP RTLOGGROUP_FS +#include "internal-r3-nt.h" + +#include +#include +#include +#include + + +/******************************************************************************* +* Global Variables * +*******************************************************************************/ +static char const g_szPrefixUnc[] = "\\??\\UNC\\"; +static char const g_szPrefix[] = "\\??\\"; + + +/** + * Handles the pass thru case for UTF-8 input. + * + * @returns IPRT status code. + * @param pNtName Where to return the NT name. + * @param phRootDir Where to return the root handle, if applicable. + * @param pszPath The UTF-8 path. + */ +static int rtNtPathFromWinUtf8PassThru(struct _UNICODE_STRING *pNtName, PHANDLE phRootDir, const char *pszPath) +{ + PRTUTF16 pwszPath = NULL; + size_t cwcLen; + int rc = RTStrToUtf16Ex(pszPath + 1, RTSTR_MAX, &pwszPath, 0, &cwcLen); + if (RT_SUCCESS(rc)) + { + if (cwcLen < _32K - 1) + { + pwszPath[0] = '\\'; + pwszPath[1] = '.'; + pwszPath[2] = '\\'; + + pNtName->Buffer = pwszPath; + pNtName->Length = (uint16_t)(cwcLen * sizeof(RTUTF16)); + pNtName->MaximumLength = pNtName->Length + sizeof(RTUTF16); + *phRootDir = NULL; + return VINF_SUCCESS; + } + + RTUtf16Free(pwszPath); + rc = VERR_FILENAME_TOO_LONG; + } + return rc; +} + + +/** + * Handles the pass thru case for UTF-16 input. + * + * @returns IPRT status code. + * @param pNtName Where to return the NT name. + * @param phRootDir Stores NULL here, as we don't use it. + * @param pwszWinPath The UTF-16 windows-style path. + * @param cwcWinPath The length of the windows-style input path. + */ +static int rtNtPathFromWinUtf16PassThru(struct _UNICODE_STRING *pNtName, PHANDLE phRootDir, + PCRTUTF16 pwszWinPath, size_t cwcWinPath) +{ + /* Drop a character because: \\?\ -> \.\ */ + pwszWinPath++; + cwcWinPath--; + + /* Check length and allocate memory for it. */ + int rc; + if (cwcWinPath < _32K - 1) + { + PRTUTF16 pwszNtPath = (PRTUTF16)RTUtf16Alloc((cwcWinPath + 1) * sizeof(RTUTF16)); + if (pwszNtPath) + { + /* Intialize the path. */ + pwszNtPath[0] = '\\'; + pwszNtPath[1] = '.'; + pwszNtPath[2] = '\\'; + memcpy(pwszNtPath + 3, pwszWinPath + 3, (cwcWinPath - 3) * sizeof(RTUTF16)); + pwszNtPath[cwcWinPath] = '\0'; + + /* Initialize the return values. */ + pNtName->Buffer = pwszNtPath; + pNtName->Length = (uint16_t)(cwcWinPath * sizeof(RTUTF16)); + pNtName->MaximumLength = pNtName->Length + sizeof(RTUTF16); + *phRootDir = NULL; + + rc = VINF_SUCCESS; + } + else + rc = VERR_NO_UTF16_MEMORY; + } + else + rc = VERR_FILENAME_TOO_LONG; + return rc; +} + + + + + +/** + * Converts the path to UTF-16 and sets all the return values. + * + * @returns IPRT status code. + * @param pNtName Where to return the NT name. + * @param phRootDir Where to return the root handle, if applicable. + * @param pszPath The UTF-8 path. + */ +static int rtNtPathUtf8ToUniStr(struct _UNICODE_STRING *pNtName, PHANDLE phRootDir, const char *pszPath) +{ + PRTUTF16 pwszPath = NULL; + size_t cwcLen; + int rc = RTStrToUtf16Ex(pszPath, RTSTR_MAX, &pwszPath, 0, &cwcLen); + if (RT_SUCCESS(rc)) + { + if (cwcLen < _32K - 1) + { + pNtName->Buffer = pwszPath; + pNtName->Length = (uint16_t)(cwcLen * sizeof(RTUTF16)); + pNtName->MaximumLength = pNtName->Length + sizeof(RTUTF16); + *phRootDir = NULL; + return VINF_SUCCESS; + } + + RTUtf16Free(pwszPath); + rc = VERR_FILENAME_TOO_LONG; + } + return rc; +} + + +/** + * Converts a path to NT format and encoding. + * + * @returns IPRT status code. + * @param pNtName Where to return the NT name. + * @param phRootDir Where to return the root handle, if applicable. + * @param pszPath The UTF-8 path. + */ +static int rtNtPathToNative(struct _UNICODE_STRING *pNtName, PHANDLE phRootDir, const char *pszPath) +{ + /* + * Very simple conversion of a win32-like path into an NT path. + */ + const char *pszPrefix = g_szPrefix; + size_t cchPrefix = sizeof(g_szPrefix) - 1; + size_t cchSkip = 0; + + if ( RTPATH_IS_SLASH(pszPath[0]) + && RTPATH_IS_SLASH(pszPath[1]) + && !RTPATH_IS_SLASH(pszPath[2]) + && pszPath[2]) + { + if ( pszPath[2] == '?' + && RTPATH_IS_SLASH(pszPath[3])) + return rtNtPathFromWinUtf8PassThru(pNtName, phRootDir, pszPath); + +#ifdef IPRT_WITH_NT_PATH_PASSTHRU + /* Special hack: The path starts with "\\\\!\\", we will skip past the bang and pass it thru. */ + if ( pszPath[2] == '!' + && RTPATH_IS_SLASH(pszPath[3])) + return rtNtPathUtf8ToUniStr(pNtName, phRootDir, pszPath + 3); +#endif + + if ( pszPath[2] == '.' + && RTPATH_IS_SLASH(pszPath[3])) + { + /* + * Device path. + * Note! I suspect \\.\stuff\..\otherstuff may be handled differently by windows. + */ + cchSkip = 4; + } + else + { + /* UNC */ + pszPrefix = g_szPrefixUnc; + cchPrefix = sizeof(g_szPrefixUnc) - 1; + cchSkip = 2; + } + } + + /* + * Straighten out all .. and uncessary . references and convert slashes. + */ + char szPath[RTPATH_MAX]; + int rc = RTPathAbs(pszPath, &szPath[cchPrefix - cchSkip], sizeof(szPath) - (cchPrefix - cchSkip)); + if (RT_FAILURE(rc)) + return rc; + + /* + * Add prefix and convert it to UTF16. + */ + memcpy(szPath, pszPrefix, cchPrefix); + return rtNtPathUtf8ToUniStr(pNtName, phRootDir, szPath); +} + + +/** + * Converts a UTF-16 windows-style path to NT format. + * + * @returns IPRT status code. + * @param pNtName Where to return the NT name. Free using + * RTNtPathFree. + * @param phRootDir Where to return the root handle, if applicable. + * @param pwszWinPath The UTF-16 windows-style path. + * @param cwcWinPath The max length of the windows-style path in + * RTUTF16 units. Use RTSTR_MAX if unknown and @a + * pwszWinPath is correctly terminated. + */ +RTDECL(int) RTNtPathFromWinUtf16Ex(struct _UNICODE_STRING *pNtName, HANDLE *phRootDir, PCRTUTF16 pwszWinPath, size_t cwcWinPath) +{ + /* + * Validate the input, calculating the correct length. + */ + if (cwcWinPath == 0 || *pwszWinPath == '\0') + return VERR_INVALID_NAME; + + RTUtf16NLenEx(pwszWinPath, cwcWinPath, &cwcWinPath); + int rc = RTUtf16ValidateEncodingEx(pwszWinPath, cwcWinPath, 0); + if (RT_FAILURE(rc)) + return rc; + + /* + * Very simple conversion of a win32-like path into an NT path. + */ + const char *pszPrefix = g_szPrefix; + size_t cchPrefix = sizeof(g_szPrefix) - 1; + size_t cchSkip = 0; + + if ( RTPATH_IS_SLASH(pwszWinPath[0]) + && cwcWinPath >= 3 + && RTPATH_IS_SLASH(pwszWinPath[1]) + && !RTPATH_IS_SLASH(pwszWinPath[2]) ) + { + if ( pwszWinPath[2] == '?' + && cwcWinPath >= 4 + && RTPATH_IS_SLASH(pwszWinPath[3])) + return rtNtPathFromWinUtf16PassThru(pNtName, phRootDir, pwszWinPath, cwcWinPath); + +#ifdef IPRT_WITH_NT_PATH_PASSTHRU + /* Special hack: The path starts with "\\\\!\\", we will skip past the bang and pass it thru. */ + if ( pwszWinPath[2] == '!' + && cwcWinPath >= 4 + && RTPATH_IS_SLASH(pwszWinPath[3])) + { + pwszWinPath += 3; + cwcWinPath -= 3; + if (cwcWinPath < _32K - 1) + { + PRTUTF16 pwszNtPath = RTUtf16Alloc((cwcWinPath + 1) * sizeof(RTUTF16)); + if (pwszNtPath) + { + memcpy(pwszNtPath, pwszWinPath, cwcWinPath * sizeof(RTUTF16)); + pwszNtPath[cwcWinPath] = '\0'; + pNtName->Buffer = pwszNtPath; + pNtName->Length = (uint16_t)(cwcWinPath * sizeof(RTUTF16)); + pNtName->MaximumLength = pNtName->Length + sizeof(RTUTF16); + *phRootDir = NULL; + return VINF_SUCCESS; + } + rc = VERR_NO_UTF16_MEMORY; + } + else + rc = VERR_FILENAME_TOO_LONG; + return rc; + } +#endif + + if ( pwszWinPath[2] == '.' + && cwcWinPath >= 4 + && RTPATH_IS_SLASH(pwszWinPath[3])) + { + /* + * Device path. + * Note! I suspect \\.\stuff\..\otherstuff may be handled differently by windows. + */ + cchSkip = 4; + } + else + { + /* UNC */ + pszPrefix = g_szPrefixUnc; + cchPrefix = sizeof(g_szPrefixUnc) - 1; + cchSkip = 2; + } + } + + /* + * Straighten out all .. and unnecessary . references and convert slashes. + */ + char szAbsPath[RTPATH_MAX]; + char szRelPath[RTPATH_MAX]; + char *pszRelPath = szRelPath; + size_t cchRelPath; + rc = RTUtf16ToUtf8Ex(pwszWinPath, cwcWinPath, &pszRelPath, sizeof(szRelPath), &cchRelPath); + if (RT_SUCCESS(rc)) + rc = RTPathAbs(szRelPath, &szAbsPath[cchPrefix - cchSkip], sizeof(szAbsPath) - (cchPrefix - cchSkip)); + if (RT_SUCCESS(rc)) + { + /* + * Add prefix and convert it to UTF16. + */ + memcpy(szAbsPath, pszPrefix, cchPrefix); + return rtNtPathUtf8ToUniStr(pNtName, phRootDir, szAbsPath); + } + return rc; +} + + +/** + * Frees the native path and root handle. + * + * @param pNtName The NT path after a successful rtNtPathToNative + * call. + * @param phRootDir The root handle variable after a + * rtNtPathToNative. + */ +static void rtNtPathFreeNative(struct _UNICODE_STRING *pNtName, PHANDLE phRootDir) +{ + RTUtf16Free(pNtName->Buffer); + pNtName->Buffer = NULL; +} + + +/** + * Frees the native path and root handle. + * + * @param pNtName The NT path after a successful + * RTNtPathFromWinUtf16Ex call. + * @param phRootDir The root handle variable after a successfull + * RTNtPathFromWinUtf16Ex call. + */ +RTDECL(void) RTNtPathFree(struct _UNICODE_STRING *pNtName, HANDLE *phRootDir) +{ + rtNtPathFreeNative(pNtName, phRootDir); +} + + +/** + * Wrapper around NtCreateFile. + * + * @returns IPRT status code. + * @param pszPath The UTF-8 path. + * @param fDesiredAccess See NtCreateFile. + * @param fFileAttribs See NtCreateFile. + * @param fShareAccess See NtCreateFile. + * @param fCreateDisposition See NtCreateFile. + * @param fCreateOptions See NtCreateFile. + * @param fObjAttribs The OBJECT_ATTRIBUTES::Attributes value, see + * NtCreateFile and InitializeObjectAttributes. + * @param phHandle Where to return the handle. + * @param puAction Where to return the action taken. Optional. + */ +RTDECL(int) RTNtPathOpen(const char *pszPath, ACCESS_MASK fDesiredAccess, ULONG fFileAttribs, ULONG fShareAccess, + ULONG fCreateDisposition, ULONG fCreateOptions, ULONG fObjAttribs, + PHANDLE phHandle, PULONG_PTR puAction) +{ + *phHandle = RTNT_INVALID_HANDLE_VALUE; + + HANDLE hRootDir; + UNICODE_STRING NtName; + int rc = rtNtPathToNative(&NtName, &hRootDir, pszPath); + if (RT_SUCCESS(rc)) + { + HANDLE hFile = RTNT_INVALID_HANDLE_VALUE; + IO_STATUS_BLOCK Ios = RTNT_IO_STATUS_BLOCK_INITIALIZER; + OBJECT_ATTRIBUTES ObjAttr; + InitializeObjectAttributes(&ObjAttr, &NtName, fObjAttribs, hRootDir, NULL); + + NTSTATUS rcNt = NtCreateFile(&hFile, + fDesiredAccess, + &ObjAttr, + &Ios, + NULL /* AllocationSize*/, + fFileAttribs, + fShareAccess, + fCreateDisposition, + fCreateOptions, + NULL /*EaBuffer*/, + 0 /*EaLength*/); + if (NT_SUCCESS(rcNt)) + { + if (puAction) + *puAction = Ios.Information; + *phHandle = hFile; + rc = VINF_SUCCESS; + } + else + rc = RTErrConvertFromNtStatus(rcNt); + rtNtPathFreeNative(&NtName, &hRootDir); + } + return rc; +} + + +/** + * Wrapper around NtCreateFile. + * + * @returns IPRT status code. + * @param pszPath The UTF-8 path. + * @param fDesiredAccess See NtCreateFile. + * @param fFileAttribs See NtCreateFile. + * @param fShareAccess See NtCreateFile. + * @param fCreateDisposition See NtCreateFile. + * @param fCreateOptions See NtCreateFile. + * @param fObjAttribs The OBJECT_ATTRIBUTES::Attributes value, see + * NtCreateFile and InitializeObjectAttributes. + * @param phHandle Where to return the handle. + * @param pfObjDir If not NULL, the variable pointed to will be set + * to @c true if we opened an object directory and + * @c false if we opened an directory file (normal + * directory). + */ +RTDECL(int) RTNtPathOpenDir(const char *pszPath, ACCESS_MASK fDesiredAccess, ULONG fShareAccess, ULONG fCreateOptions, + ULONG fObjAttribs, PHANDLE phHandle, bool *pfObjDir) +{ + *phHandle = RTNT_INVALID_HANDLE_VALUE; + + HANDLE hRootDir; + UNICODE_STRING NtName; + int rc = rtNtPathToNative(&NtName, &hRootDir, pszPath); + if (RT_SUCCESS(rc)) + { + HANDLE hFile = RTNT_INVALID_HANDLE_VALUE; + IO_STATUS_BLOCK Ios = RTNT_IO_STATUS_BLOCK_INITIALIZER; + OBJECT_ATTRIBUTES ObjAttr; + InitializeObjectAttributes(&ObjAttr, &NtName, fObjAttribs, hRootDir, NULL); + + NTSTATUS rcNt = NtCreateFile(&hFile, + fDesiredAccess, + &ObjAttr, + &Ios, + NULL /* AllocationSize*/, + FILE_ATTRIBUTE_NORMAL, + fShareAccess, + FILE_OPEN, + fCreateOptions, + NULL /*EaBuffer*/, + 0 /*EaLength*/); + if (NT_SUCCESS(rcNt)) + { + if (pfObjDir) + *pfObjDir = false; + *phHandle = hFile; + rc = VINF_SUCCESS; + } +#ifdef IPRT_WITH_NT_PATH_PASSTHRU + else if ( pfObjDir + && (rcNt == STATUS_OBJECT_NAME_INVALID || rcNt == STATUS_OBJECT_TYPE_MISMATCH) + && RTPATH_IS_SLASH(pszPath[0]) + && RTPATH_IS_SLASH(pszPath[1]) + && pszPath[2] == '!' + && RTPATH_IS_SLASH(pszPath[3])) + { + /* Strip trailing slash. */ + if ( NtName.Length > 2 + && RTPATH_IS_SLASH(NtName.Buffer[(NtName.Length / 2) - 1])) + NtName.Length -= 2; + + /* Rought conversion of the access flags. */ + ULONG fObjDesiredAccess = 0; + if (fDesiredAccess & (GENERIC_ALL | STANDARD_RIGHTS_ALL)) + fObjDesiredAccess = DIRECTORY_ALL_ACCESS; + else + { + if (fDesiredAccess & (FILE_GENERIC_WRITE | GENERIC_WRITE | STANDARD_RIGHTS_WRITE)) + fObjDesiredAccess |= DIRECTORY_CREATE_OBJECT | DIRECTORY_CREATE_OBJECT; + if ( (fDesiredAccess & (FILE_LIST_DIRECTORY | FILE_GENERIC_READ | GENERIC_READ | STANDARD_RIGHTS_READ)) + || !fObjDesiredAccess) + fObjDesiredAccess |= DIRECTORY_QUERY | FILE_LIST_DIRECTORY; + } + + rcNt = NtOpenDirectoryObject(&hFile, fObjDesiredAccess, &ObjAttr); + if (NT_SUCCESS(rcNt)) + { + *pfObjDir = true; + *phHandle = hFile; + rc = VINF_SUCCESS; + } + else + rc = RTErrConvertFromNtStatus(rcNt); + } +#endif + else + rc = RTErrConvertFromNtStatus(rcNt); + rtNtPathFreeNative(&NtName, &hRootDir); + } + return rc; +} + + +/** + * Closes an handled open by rtNtPathOpen. + * + * @returns IPRT status code + * @param hHandle The handle value. + */ +RTDECL(int) RTNtPathClose(HANDLE hHandle) +{ + NTSTATUS rcNt = NtClose(hHandle); + if (NT_SUCCESS(rcNt)) + return VINF_SUCCESS; + return RTErrConvertFromNtStatus(rcNt); +} + diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Runtime/r3/nt/RTProcQueryParent-r3-nt.cpp virtualbox-4.1.44-dfsg/src/VBox/Runtime/r3/nt/RTProcQueryParent-r3-nt.cpp --- virtualbox-4.1.12-dfsg/src/VBox/Runtime/r3/nt/RTProcQueryParent-r3-nt.cpp 1970-01-01 00:00:00.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Runtime/r3/nt/RTProcQueryParent-r3-nt.cpp 2015-11-11 15:09:11.000000000 +0000 @@ -0,0 +1,94 @@ +/* $Id: RTProcQueryParent-r3-nt.cpp $ */ +/** @file + * IPRT - Process, Windows. + */ + +/* + * Copyright (C) 2006-2014 Oracle Corporation + * + * This file is part of VirtualBox Open Source Edition (OSE), as + * available from http://www.virtualbox.org. This file is free software; + * you can redistribute it and/or modify it under the terms of the GNU + * General Public License (GPL) as published by the Free Software + * Foundation, in version 2 as it comes in the "COPYING" file of the + * VirtualBox OSE distribution. VirtualBox OSE is distributed in the + * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind. + * + * The contents of this file may alternatively be used under the terms + * of the Common Development and Distribution License Version 1.0 + * (CDDL) only, as it comes in the "COPYING.CDDL" file of the + * VirtualBox OSE distribution, in which case the provisions of the + * CDDL are applicable instead of those of the GPL. + * + * You may elect to license modified versions of this file under the + * terms and conditions of either the GPL or the CDDL or both. + */ + + +/******************************************************************************* +* Header Files * +*******************************************************************************/ +#define LOG_GROUP RTLOGGROUP_PROCESS +#define IPRT_NT_USE_WINTERNL +#include + +#include +#include "internal/iprt.h" + +#include +#include + + + +RTR3DECL(int) RTProcQueryParent(RTPROCESS hProcess, PRTPROCESS phParent) +{ + NTSTATUS rcNt; + HANDLE hClose = RTNT_INVALID_HANDLE_VALUE; + HANDLE hNtProc; + + /* + * Open the process. We take a shortcut if it's the current process. + */ + if (hProcess == RTProcSelf()) + hNtProc = NtCurrentProcess(); + else + { + CLIENT_ID ClientId; + ClientId.UniqueProcess = (HANDLE)hProcess; + ClientId.UniqueThread = NULL; + + OBJECT_ATTRIBUTES ObjAttrs; + InitializeObjectAttributes(&ObjAttrs, NULL, OBJ_CASE_INSENSITIVE, NULL, NULL); + + rcNt = NtOpenProcess(&hClose, PROCESS_QUERY_LIMITED_INFORMATION, &ObjAttrs, &ClientId); + if (!NT_SUCCESS(rcNt)) + rcNt = NtOpenProcess(&hClose, PROCESS_QUERY_INFORMATION, &ObjAttrs, &ClientId); + if (!NT_SUCCESS(rcNt)) + return RTErrConvertFromNtStatus(rcNt); + hNtProc = hClose; + } + + /* + * Query the information. + */ + int rc; + PROCESS_BASIC_INFORMATION BasicInfo; + ULONG cbIgn; + rcNt = NtQueryInformationProcess(hNtProc, ProcessBasicInformation, &BasicInfo, sizeof(BasicInfo), &cbIgn); + if (NT_SUCCESS(rcNt)) + { + *phParent = BasicInfo.InheritedFromUniqueProcessId; + rc = VINF_SUCCESS; + } + else + rc = RTErrConvertFromNtStatus(rcNt); + + /* + * Clean up. + */ + if (hClose != RTNT_INVALID_HANDLE_VALUE) + NtClose(hClose); + + return rc; +} + diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Runtime/r3/os2/thread-os2.cpp virtualbox-4.1.44-dfsg/src/VBox/Runtime/r3/os2/thread-os2.cpp --- virtualbox-4.1.12-dfsg/src/VBox/Runtime/r3/os2/thread-os2.cpp 2012-04-02 13:29:04.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Runtime/r3/os2/thread-os2.cpp 2015-11-11 15:09:11.000000000 +0000 @@ -77,7 +77,7 @@ } -DECLHIDDEN(int) rtThreadNativeAdopt(PRTTHREADINT pThread) +static void rtThreadOs2BlockSigAlarm(void) { /* * Block SIGALRM - required for timer-posix.cpp. @@ -88,6 +88,17 @@ sigemptyset(&SigSet); sigaddset(&SigSet, SIGALRM); sigprocmask(SIG_BLOCK, &SigSet, NULL); +} + + +DECLHIDDEN(void) rtThreadNativeReInitObtrusive(void) +{ + rtThreadOs2BlockSigAlarm(); +} + + +DECLHIDDEN(int) rtThreadNativeAdopt(PRTTHREADINT pThread) +{ *g_ppCurThread = pThread; return VINF_SUCCESS; @@ -106,15 +117,7 @@ */ static void rtThreadNativeMain(void *pvArgs) { - /* - * Block SIGALRM - required for timer-posix.cpp. - * This is done to limit harm done by OSes which doesn't do special SIGALRM scheduling. - * It will not help much if someone creates threads directly using pthread_create. :/ - */ - sigset_t SigSet; - sigemptyset(&SigSet); - sigaddset(&SigSet, SIGALRM); - sigprocmask(SIG_BLOCK, &SigSet, NULL); + rtThreadOs2BlockSigAlarm(); /* * Call common main. diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Runtime/r3/posix/ldrNative-posix.cpp virtualbox-4.1.44-dfsg/src/VBox/Runtime/r3/posix/ldrNative-posix.cpp --- virtualbox-4.1.12-dfsg/src/VBox/Runtime/r3/posix/ldrNative-posix.cpp 2012-04-02 13:29:05.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Runtime/r3/posix/ldrNative-posix.cpp 2015-11-11 15:09:11.000000000 +0000 @@ -108,7 +108,8 @@ DECLCALLBACK(int) rtldrNativeClose(PRTLDRMODINTERNAL pMod) { PRTLDRMODNATIVE pModNative = (PRTLDRMODNATIVE)pMod; - if (!dlclose((void *)pModNative->hNative)) + if ( (pModNative->fFlags & RTLDRLOAD_FLAGS_NO_UNLOAD) + || !dlclose((void *)pModNative->hNative)) { pModNative->hNative = (uintptr_t)0; return VINF_SUCCESS; @@ -117,3 +118,10 @@ return VERR_GENERAL_FAILURE; } + +int rtldrNativeLoadSystem(const char *pszFilename, const char *pszExt, uint32_t fFlags, PRTLDRMOD phLdrMod) +{ + /** @todo implement this in some sensible fashion. */ + return VERR_NOT_SUPPORTED; +} + diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Runtime/r3/posix/pathhost-posix.cpp virtualbox-4.1.44-dfsg/src/VBox/Runtime/r3/posix/pathhost-posix.cpp --- virtualbox-4.1.12-dfsg/src/VBox/Runtime/r3/posix/pathhost-posix.cpp 2012-04-02 13:29:05.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Runtime/r3/posix/pathhost-posix.cpp 2015-11-11 15:09:11.000000000 +0000 @@ -134,7 +134,7 @@ * @param pvUser1 Unused. * @param pvUser2 Unused. */ -static DECLCALLBACK(int32_t) rtPathConvInitOnce(void *pvUser1, void *pvUser2) +static DECLCALLBACK(int32_t) rtPathConvInitOnce(void *pvUser) { /* * Read the environment variable, no mercy on misconfigs here except that @@ -172,7 +172,7 @@ g_enmUtf8ToFsIdx = RTSTRICONV_UTF8_TO_LOCALE; } - NOREF(pvUser1); NOREF(pvUser2); + NOREF(pvUser); return VINF_SUCCESS; } @@ -181,7 +181,7 @@ { *ppszNativePath = NULL; - int rc = RTOnce(&g_OnceInitPathConv, rtPathConvInitOnce, NULL, NULL); + int rc = RTOnce(&g_OnceInitPathConv, rtPathConvInitOnce, NULL); if (RT_SUCCESS(rc)) { if (g_fPassthruUtf8 || !*pszPath) @@ -208,7 +208,7 @@ { *ppszPath = NULL; - int rc = RTOnce(&g_OnceInitPathConv, rtPathConvInitOnce, NULL, NULL); + int rc = RTOnce(&g_OnceInitPathConv, rtPathConvInitOnce, NULL); if (RT_SUCCESS(rc)) { if (g_fPassthruUtf8 || !*pszNativePath) @@ -246,7 +246,7 @@ int rtPathFromNativeCopy(char *pszPath, size_t cbPath, const char *pszNativePath, const char *pszBasePath) { - int rc = RTOnce(&g_OnceInitPathConv, rtPathConvInitOnce, NULL, NULL); + int rc = RTOnce(&g_OnceInitPathConv, rtPathConvInitOnce, NULL); if (RT_SUCCESS(rc)) { if (g_fPassthruUtf8 || !*pszNativePath) @@ -266,7 +266,7 @@ int rtPathFromNativeDup(char **ppszPath, const char *pszNativePath, const char *pszBasePath) { - int rc = RTOnce(&g_OnceInitPathConv, rtPathConvInitOnce, NULL, NULL); + int rc = RTOnce(&g_OnceInitPathConv, rtPathConvInitOnce, NULL); if (RT_SUCCESS(rc)) { if (g_fPassthruUtf8 || !*pszNativePath) diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Runtime/r3/posix/path-posix.cpp virtualbox-4.1.44-dfsg/src/VBox/Runtime/r3/posix/path-posix.cpp --- virtualbox-4.1.12-dfsg/src/VBox/Runtime/r3/posix/path-posix.cpp 2012-04-02 13:29:05.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Runtime/r3/posix/path-posix.cpp 2015-11-11 15:09:11.000000000 +0000 @@ -84,224 +84,6 @@ } -/** - * Cleans up a path specifier a little bit. - * This includes removing duplicate slashes, unnecessary single dots, and - * trailing slashes. Also, replaces all RTPATH_SLASH characters with '/'. - * - * @returns Number of bytes in the clean path. - * @param pszPath The path to cleanup. - */ -static int fsCleanPath(char *pszPath) -{ - /* - * Change to '/' and remove duplicates. - */ - char *pszSrc = pszPath; - char *pszTrg = pszPath; -#ifdef HAVE_UNC - int fUnc = 0; - if ( RTPATH_IS_SLASH(pszPath[0]) - && RTPATH_IS_SLASH(pszPath[1])) - { /* Skip first slash in a unc path. */ - pszSrc++; - *pszTrg++ = '/'; - fUnc = 1; - } -#endif - - for (;;) - { - char ch = *pszSrc++; - if (RTPATH_IS_SLASH(ch)) - { - *pszTrg++ = '/'; - for (;;) - { - do ch = *pszSrc++; - while (RTPATH_IS_SLASH(ch)); - - /* Remove '/./' and '/.'. */ - if (ch != '.' || (*pszSrc && !RTPATH_IS_SLASH(*pszSrc))) - break; - } - } - *pszTrg = ch; - if (!ch) - break; - pszTrg++; - } - - /* - * Remove trailing slash if the path may be pointing to a directory. - */ - int cch = pszTrg - pszPath; - if ( cch > 1 - && RTPATH_IS_SLASH(pszTrg[-1]) -#ifdef HAVE_DRIVE - && !RTPATH_IS_VOLSEP(pszTrg[-2]) -#endif - && !RTPATH_IS_SLASH(pszTrg[-2])) - pszPath[--cch] = '\0'; - - return cch; -} - - -RTDECL(int) RTPathAbs(const char *pszPath, char *pszAbsPath, size_t cchAbsPath) -{ - int rc; - - /* - * Validation. - */ - AssertPtr(pszAbsPath); - AssertPtr(pszPath); - if (RT_UNLIKELY(!*pszPath)) - return VERR_INVALID_PARAMETER; - - /* - * Make a clean working copy of the input. - */ - size_t cchPath = strlen(pszPath); - if (cchPath > PATH_MAX) - { - LogFlow(("RTPathAbs(%p:{%s}, %p, %d): returns %Rrc\n", pszPath, pszPath, pszAbsPath, cchAbsPath, VERR_FILENAME_TOO_LONG)); - return VERR_FILENAME_TOO_LONG; - } - - char szTmpPath[PATH_MAX + 1]; - memcpy(szTmpPath, pszPath, cchPath + 1); - size_t cchTmpPath = fsCleanPath(szTmpPath); - - /* - * Handle "." specially (fsCleanPath does). - */ - if (szTmpPath[0] == '.' && !szTmpPath[1]) - return RTPathGetCurrent(pszAbsPath, cchAbsPath); - - /* - * Do we have a root slash? - */ - char *pszCur = szTmpPath; -#ifdef HAVE_DRIVE - if (pszCur[0] && RTPATH_IS_VOLSEP(pszCur[1]) && pszCur[2] == '/') - pszCur += 3; -# ifdef HAVE_UNC - else if (pszCur[0] == '/' && pszCur[1] == '/') - pszCur += 2; -# endif -#else /* !HAVE_DRIVE */ - if (pszCur[0] == '/') - pszCur += 1; -#endif /* !HAVE_DRIVE */ - else - { - /* - * No, prepend the current directory to the relative path. - */ - char szCurDir[RTPATH_MAX]; - rc = RTPathGetCurrent(szCurDir, sizeof(szCurDir)); - AssertRCReturn(rc, rc); - - size_t cchCurDir = fsCleanPath(szCurDir); /* paranoia */ - if (cchCurDir + cchTmpPath + 1 > PATH_MAX) - { - LogFlow(("RTPathAbs(%p:{%s}, %p, %d): returns %Rrc\n", pszPath, pszPath, pszAbsPath, cchAbsPath, VERR_FILENAME_TOO_LONG)); - return VERR_FILENAME_TOO_LONG; - } - - memmove(szTmpPath + cchCurDir + 1, szTmpPath, cchTmpPath + 1); - memcpy(szTmpPath, szCurDir, cchCurDir); - szTmpPath[cchCurDir] = '/'; - - -#ifdef HAVE_DRIVE - if (pszCur[0] && RTPATH_IS_VOLSEP(pszCur[1]) && pszCur[2] == '/') - pszCur += 3; -# ifdef HAVE_UNC - else if (pszCur[0] == '/' && pszCur[1] == '/') - pszCur += 2; -# endif -#else - if (pszCur[0] == '/') - pszCur += 1; -#endif - else - AssertMsgFailedReturn(("pszCur=%s\n", pszCur), VERR_INTERNAL_ERROR); - } - - char *pszTop = pszCur; - - /* - * Get rid of double dot path components by evaluating them. - */ - for (;;) - { - if ( pszCur[0] == '.' - && pszCur[1] == '.' - && (!pszCur[2] || pszCur[2] == '/')) - { - /* rewind to the previous component if any */ - char *pszPrev = pszCur - 1; - if (pszPrev > pszTop) - while (*--pszPrev != '/') - ; - - AssertMsg(*pszPrev == '/', ("szTmpPath={%s}, pszPrev=+%u\n", szTmpPath, pszPrev - szTmpPath)); - memmove(pszPrev, pszCur + 2, strlen(pszCur + 2) + 1); - - pszCur = pszPrev; - } - else - { - /* advance to end of component. */ - while (*pszCur && *pszCur != '/') - pszCur++; - } - - if (!*pszCur) - break; - - /* skip the slash */ - ++pszCur; - } - - if (pszCur < pszTop) - { - /* - * We overwrote the root slash with '\0', restore it. - */ - *pszCur++ = '/'; - *pszCur = '\0'; - } - else if (pszCur > pszTop && pszCur[-1] == '/') - { - /* - * Extra trailing slash in a non-root path, remove it. - * (A bit questionable...) - */ - *--pszCur = '\0'; - } - - /* - * Copy the result to the user buffer. - */ - cchTmpPath = pszCur - szTmpPath; - if (cchTmpPath < cchAbsPath) - { - memcpy(pszAbsPath, szTmpPath, cchTmpPath + 1); - rc = VINF_SUCCESS; - } - else - rc = VERR_BUFFER_OVERFLOW; - - LogFlow(("RTPathAbs(%p:{%s}, %p:{%s}, %d): returns %Rrc\n", pszPath, pszPath, pszAbsPath, - RT_SUCCESS(rc) ? pszAbsPath : "", cchAbsPath, rc)); - return rc; -} - - RTR3DECL(int) RTPathSetMode(const char *pszPath, RTFMODE fMode) { AssertPtrReturn(pszPath, VERR_INVALID_POINTER); diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Runtime/r3/posix/process-posix.cpp virtualbox-4.1.44-dfsg/src/VBox/Runtime/r3/posix/process-posix.cpp --- virtualbox-4.1.12-dfsg/src/VBox/Runtime/r3/posix/process-posix.cpp 2012-04-02 13:29:05.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Runtime/r3/posix/process-posix.cpp 2015-11-11 15:09:12.000000000 +0000 @@ -142,3 +142,14 @@ return 1; } + +RTR3DECL(int) RTProcQueryParent(RTPROCESS hProcess, PRTPROCESS phParent) +{ + if (hProcess == RTProcSelf()) + { + *phParent = getppid(); + return VINF_SUCCESS; + } + return VERR_NOT_SUPPORTED; +} + diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Runtime/r3/posix/rtmempage-exec-mmap-heap-posix.cpp virtualbox-4.1.44-dfsg/src/VBox/Runtime/r3/posix/rtmempage-exec-mmap-heap-posix.cpp --- virtualbox-4.1.12-dfsg/src/VBox/Runtime/r3/posix/rtmempage-exec-mmap-heap-posix.cpp 2012-04-02 13:29:05.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Runtime/r3/posix/rtmempage-exec-mmap-heap-posix.cpp 2015-11-11 15:09:12.000000000 +0000 @@ -558,11 +558,11 @@ * Initializes the heap. * * @returns IPRT status code - * @param pvUser1 Unused. - * @param pvUser2 Unused. + * @param pvUser Unused. */ -static DECLCALLBACK(int) rtMemPagePosixInitOnce(void *pvUser1, void *pvUser2) +static DECLCALLBACK(int) rtMemPagePosixInitOnce(void *pvUser) { + NOREF(pvUser); int rc = RTHeapPageInit(&g_MemPagePosixHeap, false /*fExec*/); if (RT_SUCCESS(rc)) { @@ -615,7 +615,7 @@ } else { - int rc = RTOnce(&g_MemPagePosixInitOnce, rtMemPagePosixInitOnce, NULL, NULL); + int rc = RTOnce(&g_MemPagePosixInitOnce, rtMemPagePosixInitOnce, NULL); if (RT_SUCCESS(rc)) rc = RTHeapPageAlloc(pHeap, cb >> PAGE_SHIFT, pszTag, fZero, &pv); if (RT_FAILURE(rc)) diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Runtime/r3/posix/thread-posix.cpp virtualbox-4.1.44-dfsg/src/VBox/Runtime/r3/posix/thread-posix.cpp --- virtualbox-4.1.12-dfsg/src/VBox/Runtime/r3/posix/thread-posix.cpp 2012-04-02 13:29:05.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Runtime/r3/posix/thread-posix.cpp 2015-11-11 15:09:12.000000000 +0000 @@ -47,6 +47,12 @@ # include # include #endif +#if defined(RT_OS_DARWIN) /*|| defined(RT_OS_FREEBSD) - later */ \ + || (defined(RT_OS_LINUX) && !defined(IN_RT_STATIC) /* static + dlsym = trouble */) \ + || defined(IPRT_MAY_HAVE_PTHREAD_SET_NAME_NP) +# define IPRT_MAY_HAVE_PTHREAD_SET_NAME_NP +# include +#endif #include #include @@ -77,6 +83,30 @@ static int g_iSigPokeThread = -1; #endif +#ifdef IPRT_MAY_HAVE_PTHREAD_SET_NAME_NP +# if defined(RT_OS_DARWIN) +/** + * The Mac OS X (10.6 and later) variant of pthread_setname_np. + * + * @returns errno.h + * @param pszName The new thread name. + */ +typedef int (*PFNPTHREADSETNAME)(const char *pszName); +# else +/** + * The variant of pthread_setname_np most other unix-like systems implement. + * + * @returns errno.h + * @param hThread The thread. + * @param pszName The new thread name. + */ +typedef int (*PFNPTHREADSETNAME)(pthread_t hThread, const char *pszName); +# endif + +/** Pointer to pthread_setname_np if found. */ +static PFNPTHREADSETNAME g_pfnThreadSetName = NULL; +#endif /* IPRT_MAY_HAVE_PTHREAD_SET_NAME_NP */ + /******************************************************************************* * Internal Functions * @@ -142,6 +172,11 @@ AssertMsgFailed(("rc=%Rrc errno=%d\n", RTErrConvertFromErrno(errno), errno)); } #endif /* RTTHREAD_POSIX_WITH_POKE */ + +#ifdef IPRT_MAY_HAVE_PTHREAD_SET_NAME_NP + if (RT_SUCCESS(rc)) + g_pfnThreadSetName = (PFNPTHREADSETNAME)(uintptr_t)dlsym(RTLD_DEFAULT, "pthread_setname_np"); +#endif return rc; } @@ -221,6 +256,8 @@ static void *rtThreadNativeMain(void *pvArgs) { PRTTHREADINT pThread = (PRTTHREADINT)pvArgs; + pthread_t Self = pthread_self(); + Assert((uintptr_t)Self == (RTNATIVETHREAD)Self && (uintptr_t)Self != NIL_RTNATIVETHREAD); #if defined(RT_OS_LINUX) /* @@ -244,14 +281,24 @@ siginterrupt(g_iSigPokeThread, 1); #endif + /* + * Set the TLS entry and, if possible, the thread name. + */ int rc = pthread_setspecific(g_SelfKey, pThread); AssertReleaseMsg(!rc, ("failed to set self TLS. rc=%d thread '%s'\n", rc, pThread->szName)); +#ifdef IPRT_MAY_HAVE_PTHREAD_SET_NAME_NP + if (g_pfnThreadSetName) +# ifdef RT_OS_DARWIN + g_pfnThreadSetName(pThread->szName); +# else + g_pfnThreadSetName(Self, pThread->szName); +# endif +#endif + /* * Call common main. */ - pthread_t Self = pthread_self(); - Assert((uintptr_t)Self == (RTNATIVETHREAD)Self && (uintptr_t)Self != NIL_RTNATIVETHREAD); rc = rtThreadMain(pThread, (uintptr_t)Self, &pThread->szName[0]); pthread_setspecific(g_SelfKey, NULL); diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Runtime/r3/posix/timer-posix.cpp virtualbox-4.1.44-dfsg/src/VBox/Runtime/r3/posix/timer-posix.cpp --- virtualbox-4.1.12-dfsg/src/VBox/Runtime/r3/posix/timer-posix.cpp 2012-04-02 13:29:05.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Runtime/r3/posix/timer-posix.cpp 2015-11-11 15:09:12.000000000 +0000 @@ -152,14 +152,12 @@ * RTOnce callback that initializes the critical section. * * @returns RTCritSectInit return code. - * @param pvUser1 NULL, ignored. - * @param pvUser2 NULL, ignored. + * @param pvUser NULL, ignored. * */ -static DECLCALLBACK(int) rtTimerOnce(void *pvUser1, void *pvUser2) +static DECLCALLBACK(int) rtTimerOnce(void *pvUser) { - NOREF(pvUser1); - NOREF(pvUser2); + NOREF(pvUser); return RTCritSectInit(&g_TimerCritSect); } #endif @@ -537,7 +535,7 @@ /* * Do the global init first. */ - int rc = RTOnce(&g_TimerOnce, rtTimerOnce, NULL, NULL); + int rc = RTOnce(&g_TimerOnce, rtTimerOnce, NULL); if (RT_FAILURE(rc)) return rc; diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Runtime/r3/posix/utf8-posix.cpp virtualbox-4.1.44-dfsg/src/VBox/Runtime/r3/posix/utf8-posix.cpp --- virtualbox-4.1.12-dfsg/src/VBox/Runtime/r3/posix/utf8-posix.cpp 2012-04-02 13:29:05.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Runtime/r3/posix/utf8-posix.cpp 2015-11-11 15:09:12.000000000 +0000 @@ -38,7 +38,32 @@ #include #include -#include + +/* iconv prototype changed with 165+ (thanks to PSARC/2010/160 Bugster 7037400) */ +#if defined(RT_OS_SOLARIS) +# if !defined(_XPG6) +# define VBOX_XPG6_TMP_DEF +# define _XPG6 +# endif +# if defined(__USE_LEGACY_PROTOTYPES__) +# define VBOX_LEGACY_PROTO_TMP_DEF +# undef __USE_LEGACY_PROTOTYPES__ +# endif +#endif /* RT_OS_SOLARIS */ + +# include + +#if defined(RT_OS_SOLARIS) +# if defined(VBOX_XPG6_TMP_DEF) +# undef _XPG6 +# undef VBOX_XPG6_TMP_DEF +# endif +# if defined(VBOX_LEGACY_PROTO_TMP_DEF) +# define __USE_LEGACY_PROTOTYPES__ +# undef VBOX_LEGACY_PROTO_TMP_DEF +# endif +#endif /* RT_OS_SOLARIS */ + #include #include @@ -168,7 +193,7 @@ size_t cbOutLeft = cbOutput2; const void *pvInputLeft = pvInput; void *pvOutputLeft = pvOutput; -#if defined(RT_OS_LINUX) || (defined(RT_OS_DARWIN) && defined(_DARWIN_FEATURE_UNIX_CONFORMANCE)) /* there are different opinions about the constness of the input buffer. */ +#if defined(RT_OS_LINUX) || defined(RT_OS_SOLARIS) || (defined(RT_OS_DARWIN) && defined(_DARWIN_FEATURE_UNIX_CONFORMANCE)) /* there are different opinions about the constness of the input buffer. */ if (iconv(hIconv, (char **)&pvInputLeft, &cbInLeft, (char **)&pvOutputLeft, &cbOutLeft) != (size_t)-1) #else if (iconv(hIconv, (const char **)&pvInputLeft, &cbInLeft, (char **)&pvOutputLeft, &cbOutLeft) != (size_t)-1) @@ -294,7 +319,7 @@ size_t cbOutLeft = cbOutput2; const void *pvInputLeft = pvInput; void *pvOutputLeft = pvOutput; -#if defined(RT_OS_LINUX) || (defined(RT_OS_DARWIN) && defined(_DARWIN_FEATURE_UNIX_CONFORMANCE)) /* there are different opinions about the constness of the input buffer. */ +#if defined(RT_OS_LINUX) || defined(RT_OS_SOLARIS) || (defined(RT_OS_DARWIN) && defined(_DARWIN_FEATURE_UNIX_CONFORMANCE)) /* there are different opinions about the constness of the input buffer. */ if (iconv(icHandle, (char **)&pvInputLeft, &cbInLeft, (char **)&pvOutputLeft, &cbOutLeft) != (size_t)-1) #else if (iconv(icHandle, (const char **)&pvInputLeft, &cbInLeft, (char **)&pvOutputLeft, &cbOutLeft) != (size_t)-1) diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Runtime/r3/solaris/mp-solaris.cpp virtualbox-4.1.44-dfsg/src/VBox/Runtime/r3/solaris/mp-solaris.cpp --- virtualbox-4.1.12-dfsg/src/VBox/Runtime/r3/solaris/mp-solaris.cpp 2012-04-02 13:29:05.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Runtime/r3/solaris/mp-solaris.cpp 2015-11-11 15:09:12.000000000 +0000 @@ -63,13 +63,12 @@ * Run once function that initializes the kstats we need here. * * @returns IPRT status code. - * @param pvUser1 Unused. - * @param pvUser2 Unused. + * @param pvUser Unused. */ -static DECLCALLBACK(int) rtMpSolarisOnce(void *pvUser1, void *pvUser2) +static DECLCALLBACK(int) rtMpSolarisOnce(void *pvUser) { int rc = VINF_SUCCESS; - NOREF(pvUser1); NOREF(pvUser2); + NOREF(pvUser); /* * Open kstat and find the cpu_info entries for each of the CPUs. @@ -129,7 +128,7 @@ static uint64_t rtMpSolarisGetFrequency(RTCPUID idCpu, char *pszStatName) { uint64_t u64 = 0; - int rc = RTOnce(&g_MpSolarisOnce, rtMpSolarisOnce, NULL, NULL); + int rc = RTOnce(&g_MpSolarisOnce, rtMpSolarisOnce, NULL); if (RT_SUCCESS(rc)) { if ( idCpu < g_capCpuInfo diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Runtime/r3/stream.cpp virtualbox-4.1.44-dfsg/src/VBox/Runtime/r3/stream.cpp --- virtualbox-4.1.12-dfsg/src/VBox/Runtime/r3/stream.cpp 2012-04-02 13:29:05.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Runtime/r3/stream.cpp 2015-11-11 15:09:12.000000000 +0000 @@ -807,6 +807,19 @@ /** + * Dumper vprintf-like function outputting to a stream. + * + * @param pvUser The stream to print to. NULL means standard output. + * @param pszFormat Runtime format string. + * @param va Arguments specified by pszFormat. + */ +RTDECL(void) RTStrmDumpPrintfV(void *pvUser, const char *pszFormat, va_list va) +{ + RTStrmPrintfV(pvUser ? (PRTSTREAM)pvUser : g_pStdOut, pszFormat, va); +} + + +/** * Prints a formatted string to the standard output stream (g_pStdOut). * * @returns Number of bytes printed. diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Runtime/r3/test.cpp virtualbox-4.1.44-dfsg/src/VBox/Runtime/r3/test.cpp --- virtualbox-4.1.12-dfsg/src/VBox/Runtime/r3/test.cpp 2012-04-02 13:29:05.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Runtime/r3/test.cpp 2015-11-11 15:09:12.000000000 +0000 @@ -205,13 +205,11 @@ * Init TLS index once. * * @returns IPRT status code. - * @param pvUser1 Ignored. - * @param pvUser2 Ignored. + * @param pvUser Ignored. */ -static DECLCALLBACK(int32_t) rtTestInitOnce(void *pvUser1, void *pvUser2) +static DECLCALLBACK(int32_t) rtTestInitOnce(void *pvUser) { - NOREF(pvUser1); - NOREF(pvUser2); + NOREF(pvUser); return RTTlsAllocEx(&g_iTestTls, NULL); } @@ -229,7 +227,7 @@ /* * Global init. */ - int rc = RTOnce(&g_TestInitOnce, rtTestInitOnce, NULL, NULL); + int rc = RTOnce(&g_TestInitOnce, rtTestInitOnce, NULL); if (RT_FAILURE(rc)) return rc; diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Runtime/r3/win/alloc-win.cpp virtualbox-4.1.44-dfsg/src/VBox/Runtime/r3/win/alloc-win.cpp --- virtualbox-4.1.12-dfsg/src/VBox/Runtime/r3/win/alloc-win.cpp 2012-04-02 13:29:05.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Runtime/r3/win/alloc-win.cpp 2015-11-11 15:09:12.000000000 +0000 @@ -60,7 +60,7 @@ * only be used with mmap()'ed memory. Works on linux and OS/2 LIBC v0.6. */ memset(pv, 0xcc, cb); - void *pvProt = (void *)((uintptr_t)pv & ~PAGE_OFFSET_MASK); + void *pvProt = (void *)((uintptr_t)pv & ~(uintptr_t)PAGE_OFFSET_MASK); size_t cbProt = ((uintptr_t)pv & PAGE_OFFSET_MASK) + cb; cbProt = RT_ALIGN_Z(cbProt, PAGE_SIZE); DWORD fFlags = 0; @@ -190,7 +190,7 @@ * Align the request. */ cb += (uintptr_t)pv & PAGE_OFFSET_MASK; - pv = (void *)((uintptr_t)pv & ~PAGE_OFFSET_MASK); + pv = (void *)((uintptr_t)pv & ~(uintptr_t)PAGE_OFFSET_MASK); /* * Change the page attributes. diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Runtime/r3/win/init-win.cpp virtualbox-4.1.44-dfsg/src/VBox/Runtime/r3/win/init-win.cpp --- virtualbox-4.1.12-dfsg/src/VBox/Runtime/r3/win/init-win.cpp 1970-01-01 00:00:00.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Runtime/r3/win/init-win.cpp 2015-11-11 15:09:12.000000000 +0000 @@ -0,0 +1,75 @@ +/* $Id: init-win.cpp $ */ +/** @file + * IPRT - Init Ring-3, Windows Specific Code. + */ + +/* + * Copyright (C) 2006-2013 Oracle Corporation + * + * This file is part of VirtualBox Open Source Edition (OSE), as + * available from http://www.virtualbox.org. This file is free software; + * you can redistribute it and/or modify it under the terms of the GNU + * General Public License (GPL) as published by the Free Software + * Foundation, in version 2 as it comes in the "COPYING" file of the + * VirtualBox OSE distribution. VirtualBox OSE is distributed in the + * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind. + * + * The contents of this file may alternatively be used under the terms + * of the Common Development and Distribution License Version 1.0 + * (CDDL) only, as it comes in the "COPYING.CDDL" file of the + * VirtualBox OSE distribution, in which case the provisions of the + * CDDL are applicable instead of those of the GPL. + * + * You may elect to license modified versions of this file under the + * terms and conditions of either the GPL or the CDDL or both. + */ + + +/******************************************************************************* +* Header Files * +*******************************************************************************/ +#define LOG_GROUP RTLOGGROUP_DEFAULT +#include +#ifndef LOAD_LIBRARY_SEARCH_APPLICATION_DIR +# define LOAD_LIBRARY_SEARCH_APPLICATION_DIR 0x200 +# define LOAD_LIBRARY_SEARCH_SYSTEM32 0x800 +#endif + +#include "internal/iprt.h" +#include +#include +#include "../init.h" + + +/******************************************************************************* +* Global Variables * +*******************************************************************************/ +/** The native kernel32.dll handle. */ +DECLHIDDEN(HMODULE) g_hModKernel32 = NULL; +/** The native ntdll.dll handle. */ +DECLHIDDEN(HMODULE) g_hModNtDll = NULL; +/** Windows DLL loader protection level. */ +DECLHIDDEN(RTR3WINLDRPROT) g_enmWinLdrProt = RTR3WINLDRPROT_NONE; + + +DECLHIDDEN(int) rtR3InitNativeFirst(uint32_t fFlags) +{ + /* + * Make sure we've got the handles of the two main Windows NT dlls. + */ + g_hModKernel32 = GetModuleHandleW(L"kernel32.dll"); + if (g_hModKernel32 == NULL) + return VERR_INTERNAL_ERROR_2; + g_hModNtDll = GetModuleHandleW(L"ntdll.dll"); + if (g_hModNtDll == NULL) + return VERR_INTERNAL_ERROR_2; + + return VINF_SUCCESS; +} + +DECLHIDDEN(int) rtR3InitNativeFinal(uint32_t fFlags) +{ + /* Nothing to do here. */ + return VINF_SUCCESS; +} + diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Runtime/r3/win/ldrNative-win.cpp virtualbox-4.1.44-dfsg/src/VBox/Runtime/r3/win/ldrNative-win.cpp --- virtualbox-4.1.12-dfsg/src/VBox/Runtime/r3/win/ldrNative-win.cpp 2012-04-02 13:29:05.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Runtime/r3/win/ldrNative-win.cpp 2015-11-11 15:09:12.000000000 +0000 @@ -4,7 +4,7 @@ */ /* - * Copyright (C) 2006-2007 Oracle Corporation + * Copyright (C) 2006-2013 Oracle Corporation * * This file is part of VirtualBox Open Source Edition (OSE), as * available from http://www.virtualbox.org. This file is free software; @@ -31,10 +31,15 @@ #include #include +#include "internal/iprt.h" + +#include #include -#include #include -#include +#include +#include +#include + #include #include "internal/ldr.h" @@ -42,7 +47,7 @@ int rtldrNativeLoad(const char *pszFilename, uintptr_t *phHandle, uint32_t fFlags, PRTERRINFO pErrInfo) { Assert(sizeof(*phHandle) >= sizeof(HMODULE)); - AssertReturn(fFlags == 0, VERR_INVALID_PARAMETER); + AssertReturn(fFlags == 0 || fFlags == RTLDRLOAD_FLAGS_NO_UNLOAD, VERR_INVALID_PARAMETER); /* * Do we need to add an extension? @@ -72,7 +77,7 @@ * Try figure why it failed to load. */ DWORD dwErr = GetLastError(); - int rc = RTErrConvertFromWin32(dwErr); + int rc = RTErrConvertFromWin32(dwErr); return RTErrInfoSetF(pErrInfo, rc, "GetLastError=%u", dwErr); } @@ -94,7 +99,8 @@ DECLCALLBACK(int) rtldrNativeClose(PRTLDRMODINTERNAL pMod) { PRTLDRMODNATIVE pModNative = (PRTLDRMODNATIVE)pMod; - if (FreeLibrary((HMODULE)pModNative->hNative)) + if ( (pModNative->fFlags & RTLDRLOAD_FLAGS_NO_UNLOAD) + || FreeLibrary((HMODULE)pModNative->hNative)) { pModNative->hNative = (uintptr_t)INVALID_HANDLE_VALUE; return VINF_SUCCESS; @@ -102,3 +108,34 @@ return RTErrConvertFromWin32(GetLastError()); } + +int rtldrNativeLoadSystem(const char *pszFilename, const char *pszExt, uint32_t fFlags, PRTLDRMOD phLdrMod) +{ + /* + * We only try the System32 directory. + */ + WCHAR wszSysDir[MAX_PATH]; + UINT cwcSysDir = GetSystemDirectoryW(wszSysDir, MAX_PATH); + if (cwcSysDir >= MAX_PATH) + return VERR_FILENAME_TOO_LONG; + + char szPath[RTPATH_MAX]; + char *pszPath = szPath; + int rc = RTUtf16ToUtf8Ex(wszSysDir, RTSTR_MAX, &pszPath, sizeof(szPath), NULL); + if (RT_SUCCESS(rc)) + { + rc = RTPathAppend(szPath, sizeof(szPath), pszFilename); + if (pszExt && RT_SUCCESS(rc)) + rc = RTStrCat(szPath, sizeof(szPath), pszExt); + if (RT_SUCCESS(rc)) + { + if (RTFileExists(szPath)) + rc = RTLdrLoadEx(szPath, phLdrMod, fFlags, NULL); + else + rc = VERR_MODULE_NOT_FOUND; + } + } + + return rc; +} + diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Runtime/r3/win/ntdll-mini-implib.c virtualbox-4.1.44-dfsg/src/VBox/Runtime/r3/win/ntdll-mini-implib.c --- virtualbox-4.1.12-dfsg/src/VBox/Runtime/r3/win/ntdll-mini-implib.c 2012-04-02 13:29:05.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Runtime/r3/win/ntdll-mini-implib.c 1970-01-01 00:00:00.000000000 +0000 @@ -1,84 +0,0 @@ -/* $Id: ntdll-mini-implib.c $ */ -/** @file - * IPRT - Minimal NTDLL import library defintion file. - */ - -/* - * Copyright (C) 2010 Oracle Corporation - * - * This file is part of VirtualBox Open Source Edition (OSE), as - * available from http://www.virtualbox.org. This file is free software; - * you can redistribute it and/or modify it under the terms of the GNU - * General Public License (GPL) as published by the Free Software - * Foundation, in version 2 as it comes in the "COPYING" file of the - * VirtualBox OSE distribution. VirtualBox OSE is distributed in the - * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind. - * - * The contents of this file may alternatively be used under the terms - * of the Common Development and Distribution License Version 1.0 - * (CDDL) only, as it comes in the "COPYING.CDDL" file of the - * VirtualBox OSE distribution, in which case the provisions of the - * CDDL are applicable instead of those of the GPL. - * - * You may elect to license modified versions of this file under the - * terms and conditions of either the GPL or the CDDL or both. - */ - - -#include - -#undef NTSYSAPI -#define NTSYSAPI __declspec(dllexport) - -typedef LONG NTSTATUS; -typedef PVOID PIO_STATUS_BLOCK; -typedef INT FILE_INFORMATION_CLASS; -typedef INT FS_INFORMATION_CLASS; - - -NTSYSAPI ULONG NTAPI RtlNtStatusToDosError(IN NTSTATUS Status) -{ - return 1; -} - -NTSYSAPI LONG NTAPI NtQueryTimerResolution(OUT PULONG MaximumResolution, - OUT PULONG MinimumResolution, - OUT PULONG CurrentResolution) -{ - return -1; -} - -NTSYSAPI NTSTATUS WINAPI NtQueryInformationFile(HANDLE h, - PIO_STATUS_BLOCK b, - PVOID c, - LONG d, - FILE_INFORMATION_CLASS e) -{ - return -1; -} - -NTSYSAPI NTSTATUS NTAPI NtSetInformationFile(IN HANDLE FileHandle, - OUT PIO_STATUS_BLOCK IoStatusBlock, - IN PVOID FileInformation, - IN ULONG Length, - IN FILE_INFORMATION_CLASS FileInformationClass) -{ - return -1; -} - -NTSYSAPI LONG NTAPI NtSetTimerResolution(IN ULONG DesiredResolution, - IN BOOLEAN SetResolution, - OUT PULONG CurrentResolution) -{ - return -1; -} - -NTSYSAPI NTSTATUS NTAPI NtQueryVolumeInformationFile(HANDLE h, - PIO_STATUS_BLOCK IoStatusBlock, - PVOID pvBuf, - ULONG cbBuf, - FS_INFORMATION_CLASS FsInformationClass) -{ - return -1; -} - diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Runtime/r3/win/ntdll-mini-implib.def virtualbox-4.1.44-dfsg/src/VBox/Runtime/r3/win/ntdll-mini-implib.def --- virtualbox-4.1.12-dfsg/src/VBox/Runtime/r3/win/ntdll-mini-implib.def 2012-04-02 13:29:05.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Runtime/r3/win/ntdll-mini-implib.def 2015-11-11 15:09:12.000000000 +0000 @@ -4,7 +4,7 @@ ; ; -; Copyright (C) 2010 Oracle Corporation +; Copyright (C) 2010-2015 Oracle Corporation ; ; This file is part of VirtualBox Open Source Edition (OSE), as ; available from http://www.virtualbox.org. This file is free software; @@ -26,10 +26,115 @@ LIBRARY ntdll.dll EXPORTS - RtlNtStatusToDosError - NtQueryTimerResolution - NtQueryInformationFile - NtSetInformationFile - NtSetTimerResolution - NtQueryVolumeInformationFile + ; Exported name - The name x86 name sought by the linker. + ; - This needs to be defined as a symbol, we generate assembly. + + CsrClientCallServer ;;= _CsrClientCallServer@16 + + NtAllocateVirtualMemory ;;= _NtAllocateVirtualMemory@24 + NtClearEvent ;;= _NtClearEvent@4 + NtClose ;;= _NtClose@4 + NtCreateEvent ;;= _NtCreateEvent@20 + NtCreateFile ;;= _NtCreateFile@44 + NtCreateSection ;;= _NtCreateSection@28 + NtCreateSymbolicLinkObject ;;= _NtCreateSymbolicLinkObject@16 + NtDelayExecution ;;= _NtDelayExecution@8 + NtDeviceIoControlFile ;;= _NtDeviceIoControlFile@40 + NtDuplicateObject ;;= _NtDuplicateObject@28 + NtFlushBuffersFile ;;= _NtFlushBuffersFile@8 + NtFreeVirtualMemory ;;= _NtFreeVirtualMemory@16 + NtGetContextThread ;;= _NtGetContextThread@8 + NtMapViewOfSection ;;= _NtMapViewOfSection@40 + NtOpenDirectoryObject ;;= _NtOpenDirectoryObject@12 + NtOpenEvent ;;= _NtOpenEvent@12 + NtOpenKey ;;= _NtOpenKey@12 + NtOpenProcess ;;= _NtOpenProcess@16 + NtOpenProcessToken ;;= _NtOpenProcessToken@12 + NtOpenSymbolicLinkObject ;;= _NtOpenSymbolicLinkObject@12 + NtOpenThread ;;= _NtOpenThread@16 + NtOpenThreadToken ;;= _NtOpenThreadToken@16 + NtProtectVirtualMemory ;;= _NtProtectVirtualMemory@20 + NtQueryDirectoryFile ;;= _NtQueryDirectoryFile@44 + NtQueryDirectoryObject ;;= _NtQueryDirectoryObject@28 + NtQueryEvent ;;= _NtQueryEvent@20 + NtQueryInformationFile ;;= _NtQueryInformationFile@20 + NtQueryInformationProcess ;;= _NtQueryInformationProcess@20 + NtQueryInformationThread ;;= _NtQueryInformationThread@20 + NtQueryInformationToken ;;= _NtQueryInformationToken@20 + NtQueryObject ;;= _NtQueryObject@20 + NtQuerySecurityObject ;;= _NtQuerySecurityObject@20 + NtQuerySymbolicLinkObject ;;= _NtQuerySymbolicLinkObject@12 + NtQuerySystemInformation ;;= _NtQuerySystemInformation@16 + NtQueryTimerResolution ;;= _NtQueryTimerResolution@12 + NtQueryValueKey ;;= _NtQueryValueKey@24 + NtQueryVirtualMemory ;;= _NtQueryVirtualMemory@24 + NtQueryVolumeInformationFile ;;= _NtQueryVolumeInformationFile@20 + NtReadFile ;;= _NtReadFile@36 + NtReadVirtualMemory ;;= _NtReadVirtualMemory@20 + NtResetEvent ;;= _NtResetEvent@8 + NtResumeProcess ;;= _NtResumeProcess@4 + NtResumeThread ;;= _NtResumeThread@8 + NtSetContextThread ;;= _NtSetContextThread@8 + NtSetEvent ;;= _NtSetEvent@8 + NtSetInformationFile ;;= _NtSetInformationFile@20 + NtSetInformationObject ;;= _NtSetInformationObject@16 + NtSetInformationProcess ;;= _NtSetInformationProcess@16 + NtSetInformationThread ;;= _NtSetInformationThread@16 + NtSetTimerResolution ;;= _NtSetTimerResolution@12 + NtSuspendProcess ;;= _NtSuspendProcess@4 + NtSuspendThread ;;= _NtSuspendThread@8 + NtTerminateProcess ;;= _NtTerminateProcess@8 + NtTerminateThread ;;= _NtTerminateThread@8 + NtUnmapViewOfSection ;;= _NtUnmapViewOfSection@8 + NtWaitForMultipleObjects ;;= _NtWaitForMultipleObjects@20 + NtWaitForSingleObject ;;= _NtWaitForSingleObject@12 + NtWriteFile ;;= _NtWriteFile@36 + NtWriteVirtualMemory ;;= _NtWriteVirtualMemory@20 + NtYieldExecution ;;= _NtYieldExecution@0 + + LdrInitializeThunk ;;= _LdrInitializeThunk@12 + LdrRegisterDllNotification ;;= _LdrRegisterDllNotification@16 + LdrLoadDll ;;= _LdrLoadDll@16 + LdrUnloadDll ;;= _LdrUnloadDll@4 + LdrGetDllHandle ;;= _LdrGetDllHandle@16 + LdrGetDllHandleEx ;;= _LdrGetDllHandleEx@20 + LdrGetDllHandleByMapping ;;= _LdrGetDllHandleByMapping@8 + LdrGetDllHandleByName ;;= _LdrGetDllHandleByName@12 + LdrAddRefDll ;;= _LdrAddRefDll@8 + LdrGetProcedureAddress ;;= _LdrGetProcedureAddress@12 + LdrGetProcedureAddressEx ;;= _LdrGetProcedureAddressEx@16 + LdrLockLoaderLock ;;= _LdrLockLoaderLock@12 + LdrUnlockLoaderLock ;;= _LdrUnlockLoaderLock@8 + + RtlAddAccessAllowedAce ;;= _RtlAddAccessAllowedAce@16 + RtlAddAccessDeniedAce ;;= _RtlAddAccessDeniedAce@16 + RtlAllocateHeap ;;= _RtlAllocateHeap@12 + RtlCompactHeap ;;= _RtlCompactHeap@8 + RtlCopySid ;;= _RtlCopySid@12 + RtlCreateAcl ;;= _RtlCreateAcl@12 + RtlCreateHeap ;;= _RtlCreateHeap@24 + RtlCreateProcessParameters ;;= _RtlCreateProcessParameters@40 + RtlCreateSecurityDescriptor ;;= _RtlCreateSecurityDescriptor@8 + RtlCreateUserProcess ;;= _RtlCreateUserProcess@40 + RtlCreateUserThread ;;= _RtlCreateUserThread@40 + RtlDestroyProcessParameters ;;= _RtlDestroyProcessParameters@4 + RtlDosApplyFileIsolationRedirection_Ustr ;;= _RtlDosApplyFileIsolationRedirection_Ustr@36 + RtlEqualSid ;;= _RtlEqualSid@8 + RtlExitUserProcess ;;= _RtlExitUserProcess@4 + RtlExitUserThread ;;= _RtlExitUserThread@4 + RtlExpandEnvironmentStrings_U ;;= _RtlExpandEnvironmentStrings_U@16 + RtlFreeHeap ;;= _RtlFreeHeap@12 + RtlFreeUnicodeString ;;= _RtlFreeUnicodeString@4 + RtlGetLastNtStatus ;;= _RtlGetLastNtStatus@0 + RtlGetLastWin32Error ;;= _RtlGetLastWin32Error@0 + RtlGetVersion ;;= _RtlGetVersion@4 + RtlInitializeSid ;;= _RtlInitializeSid@12 + RtlNtStatusToDosError ;;= _RtlNtStatusToDosError@4 + RtlReAllocateHeap ;;= _RtlReAllocateHeap@16 + RtlRestoreLastWin32Error ;;= _RtlRestoreLastWin32Error@4 + RtlSetDaclSecurityDescriptor ;;= _RtlSetDaclSecurityDescriptor@16 + RtlSetLastWin32Error ;;= _RtlSetLastWin32Error@4 + RtlSetLastWin32ErrorAndNtStatusFromNtStatus ;;= _RtlSetLastWin32ErrorAndNtStatusFromNtStatus@4 + RtlSizeHeap ;;= _RtlSizeHeap@12 + RtlSubAuthoritySid ;;= _RtlSubAuthoritySid@8 diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Runtime/r3/win/path-win.cpp virtualbox-4.1.44-dfsg/src/VBox/Runtime/r3/win/path-win.cpp --- virtualbox-4.1.12-dfsg/src/VBox/Runtime/r3/win/path-win.cpp 2012-04-02 13:29:05.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Runtime/r3/win/path-win.cpp 2015-11-11 15:09:12.000000000 +0000 @@ -88,7 +88,7 @@ return rc; } - +#if 0 /** * Get the absolute path (no symlinks, no . or .. components), doesn't have to exit. * @@ -124,6 +124,7 @@ rc = RTUtf16ToUtf8Ex(&wsz[0], RTSTR_MAX, &pszAbsPath, cchAbsPath, &cch); if (RT_SUCCESS(rc)) { +# if 1 /** @todo This code is completely bonkers. */ /* * Remove trailing slash if the path may be pointing to a directory. * (See posix variant.) @@ -133,6 +134,7 @@ && !RTPATH_IS_VOLSEP(pszAbsPath[cch - 2]) && !RTPATH_IS_SLASH(pszAbsPath[cch - 2])) pszAbsPath[cch - 1] = '\0'; +# endif } } else if (rc <= 0) @@ -143,6 +145,7 @@ RTUtf16Free(pwszPath); return rc; } +#endif /** @@ -195,7 +198,7 @@ AssertReturn(cchPath, VERR_INVALID_PARAMETER); RTLDRMOD hShell32; - int rc = RTLdrLoad("Shell32.dll", &hShell32); + int rc = RTLdrLoadSystem("Shell32.dll", true /*fNoUnload*/, &hShell32); if (RT_SUCCESS(rc)) { PFNSHGETFOLDERPATHW pfnSHGetFolderPathW; @@ -677,3 +680,20 @@ return rc; } + +RTDECL(int) RTPathGetCurrentOnDrive(char chDrive, char *pszPath, size_t cbPath) +{ + WCHAR wszInput[4]; + wszInput[0] = chDrive; + wszInput[1] = ':'; + wszInput[2] = '\0'; + + int rc; + RTUTF16 wszFullPath[RTPATH_MAX]; + if (GetFullPathNameW(wszInput, RTPATH_MAX, wszFullPath, NULL)) + rc = RTUtf16ToUtf8Ex(&wszFullPath[0], RTSTR_MAX, &pszPath, cbPath, NULL); + else + rc = RTErrConvertFromWin32(GetLastError()); + return rc; +} + diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Runtime/r3/win/process-win.cpp virtualbox-4.1.44-dfsg/src/VBox/Runtime/r3/win/process-win.cpp --- virtualbox-4.1.12-dfsg/src/VBox/Runtime/r3/win/process-win.cpp 2012-04-02 13:29:05.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Runtime/r3/win/process-win.cpp 2015-11-11 15:09:12.000000000 +0000 @@ -49,12 +49,15 @@ #include #include #include +#include #include #include #include #include #include +#include "../init.h" + /******************************************************************************* * Structures and Typedefs * @@ -155,12 +158,11 @@ * Initialize the globals. * * @returns IPRT status code. - * @param pvUser1 Ignored. - * @param pvUser2 Ignored. + * @param pvUser Ignored. */ -static DECLCALLBACK(int32_t) rtProcWinInitOnce(void *pvUser1, void *pvUser2) +static DECLCALLBACK(int32_t) rtProcWinInitOnce(void *pvUser) { - NOREF(pvUser1); NOREF(pvUser2); + NOREF(pvUser); g_cProcesses = 0; g_cProcessesAlloc = 0; @@ -292,7 +294,12 @@ case ERROR_PASSWORD_EXPIRED: case ERROR_ACCOUNT_RESTRICTION: /* See: http://support.microsoft.com/kb/303846/ */ case ERROR_PASSWORD_RESTRICTION: - rc = VERR_AUTHENTICATION_FAILURE; + case ERROR_ACCOUNT_DISABLED: /* See: http://support.microsoft.com/kb/263936 */ + rc = VERR_ACCOUNT_RESTRICTED; + break; + + case ERROR_FILE_CORRUPT: + rc = VERR_BAD_EXE_FORMAT; break; default: @@ -412,120 +419,100 @@ * On modern systems (W2K+) try the Toolhelp32 API first; this is more stable * and reliable. Fallback to EnumProcess on NT4. */ - RTLDRMOD hKernel32; - int rc = RTLdrLoad("Kernel32.dll", &hKernel32); - if (RT_SUCCESS(rc)) + PFNCREATETOOLHELP32SNAPSHOT pfnCreateToolhelp32Snapshot = + (PFNCREATETOOLHELP32SNAPSHOT)GetProcAddress(g_hModKernel32, "CreateToolhelp32Snapshot"); + PFNPROCESS32FIRST pfnProcess32First = + (PFNPROCESS32FIRST)GetProcAddress(g_hModKernel32, "Process32First"); + PFNPROCESS32NEXT pfnProcess32Next = + (PFNPROCESS32NEXT)GetProcAddress(g_hModKernel32, "Process32Next"); + if (pfnProcess32Next && pfnProcess32First && pfnCreateToolhelp32Snapshot) { - PFNCREATETOOLHELP32SNAPSHOT pfnCreateToolhelp32Snapshot; - rc = RTLdrGetSymbol(hKernel32, "CreateToolhelp32Snapshot", (void**)&pfnCreateToolhelp32Snapshot); - if (RT_SUCCESS(rc)) + HANDLE hSnap = pfnCreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0); + if (hSnap != INVALID_HANDLE_VALUE) { - PFNPROCESS32FIRST pfnProcess32First; - rc = RTLdrGetSymbol(hKernel32, "Process32First", (void**)&pfnProcess32First); - if (RT_SUCCESS(rc)) + for (size_t i = 0; papszNames[i] && !fFound; i++) { - PFNPROCESS32NEXT pfnProcess32Next; - rc = RTLdrGetSymbol(hKernel32, "Process32Next", (void**)&pfnProcess32Next); - if (RT_SUCCESS(rc)) + PROCESSENTRY32 procEntry; + procEntry.dwSize = sizeof(PROCESSENTRY32); + if (pfnProcess32First(hSnap, &procEntry)) { - HANDLE hSnap = pfnCreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0); - if (hSnap != INVALID_HANDLE_VALUE) + do { - for (size_t i = 0; papszNames[i] && !fFound; i++) + if ( _stricmp(procEntry.szExeFile, papszNames[i]) == 0 + && RT_SUCCESS(rtProcGetProcessHandle(procEntry.th32ProcessID, pSID, phToken))) { - PROCESSENTRY32 procEntry; - procEntry.dwSize = sizeof(PROCESSENTRY32); - if (pfnProcess32First(hSnap, &procEntry)) - { - do - { - if ( _stricmp(procEntry.szExeFile, papszNames[i]) == 0 - && RT_SUCCESS(rtProcGetProcessHandle(procEntry.th32ProcessID, pSID, phToken))) - { - fFound = true; - break; - } - } while (pfnProcess32Next(hSnap, &procEntry)); - } - else /* Process32First */ - dwErr = GetLastError(); - if (FAILED(dwErr)) - break; + fFound = true; + break; } - CloseHandle(hSnap); - } - else /* hSnap == INVALID_HANDLE_VALUE */ - dwErr = GetLastError(); + } while (pfnProcess32Next(hSnap, &procEntry)); } + else /* Process32First */ + dwErr = GetLastError(); + if (FAILED(dwErr)) + break; } + CloseHandle(hSnap); } - else /* CreateToolhelp32Snapshot / Toolhelp32 API not available. */ + else /* hSnap == INVALID_HANDLE_VALUE */ + dwErr = GetLastError(); + } + else /* CreateToolhelp32Snapshot / Toolhelp32 API not available. */ + { + /* + * NT4 needs a copy of "PSAPI.dll" (redistributed by Microsoft and not + * part of the OS) in order to get a lookup. If we don't have this DLL + * we are not able to get a token and therefore no UI will be visible. + */ + PFNGETMODULEBASENAME pfnGetModuleBaseName = + (PFNGETMODULEBASENAME)RTLdrGetSystemSymbol("psapi.dll", "GetModuleBaseName"); + if (!pfnGetModuleBaseName) + return false; + PFNENUMPROCESSES pfnEnumProcesses = + (PFNENUMPROCESSES)RTLdrGetSystemSymbol("psapi.dll", "EnumProcesses"); + if (!pfnEnumProcesses) + return false; + + /** @todo Retry if pBytesReturned equals cbBytes! */ + DWORD adwPIDs[4096]; /* Should be sufficient for now. */ + DWORD cbBytes = 0; + if (pfnEnumProcesses(adwPIDs, sizeof(adwPIDs), &cbBytes)) { - /* - * NT4 needs a copy of "PSAPI.dll" (redistributed by Microsoft and not - * part of the OS) in order to get a lookup. If we don't have this DLL - * we are not able to get a token and therefore no UI will be visible. - */ - RTLDRMOD hPSAPI; - int rc = RTLdrLoad("PSAPI.dll", &hPSAPI); - if (RT_SUCCESS(rc)) + for (size_t i = 0; papszNames[i] && !fFound; i++) { - PFNENUMPROCESSES pfnEnumProcesses; - rc = RTLdrGetSymbol(hPSAPI, "EnumProcesses", (void**)&pfnEnumProcesses); - if (RT_SUCCESS(rc)) + for (DWORD dwIdx = 0; dwIdx < cbBytes/sizeof(DWORD) && !fFound; dwIdx++) { - PFNGETMODULEBASENAME pfnGetModuleBaseName; - rc = RTLdrGetSymbol(hPSAPI, "GetModuleBaseName", (void**)&pfnGetModuleBaseName); - if (RT_SUCCESS(rc)) + HANDLE hProc = OpenProcess(PROCESS_QUERY_INFORMATION | PROCESS_VM_READ, + FALSE, adwPIDs[dwIdx]); + if (hProc) { - /** @todo Retry if pBytesReturned equals cbBytes! */ - DWORD adwPIDs[4096]; /* Should be sufficient for now. */ - DWORD cbBytes = 0; - if (pfnEnumProcesses(adwPIDs, sizeof(adwPIDs), &cbBytes)) + char *pszProcName = NULL; + DWORD dwSize = 128; + do { - for (size_t i = 0; papszNames[i] && !fFound; i++) - { - for (DWORD dwIdx = 0; dwIdx < cbBytes/sizeof(DWORD) && !fFound; dwIdx++) - { - HANDLE hProc = OpenProcess(PROCESS_QUERY_INFORMATION | PROCESS_VM_READ, - FALSE, adwPIDs[dwIdx]); - if (hProc) - { - char *pszProcName = NULL; - DWORD dwSize = 128; - do - { - RTMemRealloc(pszProcName, dwSize); - if (pfnGetModuleBaseName(hProc, 0, pszProcName, dwSize) == dwSize) - dwSize += 128; - if (dwSize > _4K) /* Play safe. */ - break; - } while (GetLastError() == ERROR_INSUFFICIENT_BUFFER); - - if (pszProcName) - { - if ( _stricmp(pszProcName, papszNames[i]) == 0 - && RT_SUCCESS(rtProcGetProcessHandle(adwPIDs[dwIdx], pSID, phToken))) - { - fFound = true; - } - } - if (pszProcName) - RTStrFree(pszProcName); - CloseHandle(hProc); - } - } - } + RTMemRealloc(pszProcName, dwSize); + if (pfnGetModuleBaseName(hProc, 0, pszProcName, dwSize) == dwSize) + dwSize += 128; + if (dwSize > _4K) /* Play safe. */ + break; + } while (GetLastError() == ERROR_INSUFFICIENT_BUFFER); + + if (pszProcName) + { + if ( _stricmp(pszProcName, papszNames[i]) == 0 + && RT_SUCCESS(rtProcGetProcessHandle(adwPIDs[dwIdx], pSID, phToken))) + fFound = true; } - else - dwErr = GetLastError(); + if (pszProcName) + RTStrFree(pszProcName); + CloseHandle(hProc); } } - RTLdrClose(hPSAPI); } } - RTLdrClose(hKernel32); + else + dwErr = GetLastError(); } + Assert(dwErr == NO_ERROR); return fFound; } @@ -558,7 +545,13 @@ LOGON32_PROVIDER_DEFAULT, phToken); if (!fRc) - return rtProcMapErrorCodes(GetLastError()); + { + DWORD dwErr = GetLastError(); + int rc = rtProcMapErrorCodes(dwErr); + if (rc == VERR_UNRESOLVED_ERROR) + LogRel(("rtProcUserLogon: dwErr=%u (%#x), rc=%Rrc\n", dwErr, dwErr, rc)); + return rc; + } return VINF_SUCCESS; } @@ -640,7 +633,7 @@ static int rtProcEnvironmentCreateFromToken(HANDLE hToken, RTENV hEnv, PRTUTF16 *ppwszBlock) { RTLDRMOD hUserenv; - int rc = RTLdrLoad("Userenv.dll", &hUserenv); + int rc = RTLdrLoadSystem("Userenv.dll", true /*fNoUnload*/, &hUserenv); if (RT_SUCCESS(rc)) { PFNCREATEENVIRONMENTBLOCK pfnCreateEnvironmentBlock; @@ -725,42 +718,39 @@ */ if (!(fFlags & RTPROC_FLAGS_SERVICE)) { - RTLDRMOD hAdvAPI32; - rc = RTLdrLoad("Advapi32.dll", &hAdvAPI32); - if (RT_SUCCESS(rc)) + PFNCREATEPROCESSWITHLOGON pfnCreateProcessWithLogonW = + (PFNCREATEPROCESSWITHLOGON)RTLdrGetSystemSymbol("Advapi32.dll", "CreateProcessWithLogonW"); + if (pfnCreateProcessWithLogonW) { - /* - * This may fail on too old (NT4) platforms or if the calling process - * is running on a SYSTEM account (like a service, ERROR_ACCESS_DENIED) on newer - * platforms (however, this works on W2K!). - */ - PFNCREATEPROCESSWITHLOGON pfnCreateProcessWithLogonW; - rc = RTLdrGetSymbol(hAdvAPI32, "CreateProcessWithLogonW", (void**)&pfnCreateProcessWithLogonW); + PRTUTF16 pwszzBlock; + rc = rtProcEnvironmentCreateFromAccount(pwszUser, pwszPassword, NULL /* Domain */, + hEnv, &pwszzBlock); if (RT_SUCCESS(rc)) { - PRTUTF16 pwszzBlock; - rc = rtProcEnvironmentCreateFromAccount(pwszUser, pwszPassword, NULL /* Domain */, - hEnv, &pwszzBlock); - if (RT_SUCCESS(rc)) + fRc = pfnCreateProcessWithLogonW(pwszUser, + NULL, /* lpDomain*/ + pwszPassword, + 1 /*LOGON_WITH_PROFILE*/, /* dwLogonFlags */ + pwszExec, + pwszCmdLine, + dwCreationFlags, + pwszzBlock, + NULL, /* pCurrentDirectory */ + pStartupInfo, + pProcInfo); + if (!fRc) { - fRc = pfnCreateProcessWithLogonW(pwszUser, - NULL, /* lpDomain*/ - pwszPassword, - 1 /*LOGON_WITH_PROFILE*/, /* dwLogonFlags */ - pwszExec, - pwszCmdLine, - dwCreationFlags, - pwszzBlock, - NULL, /* pCurrentDirectory */ - pStartupInfo, - pProcInfo); - if (!fRc) - dwErr = GetLastError(); - rtProcEnvironmentDestroy(pwszzBlock); + DWORD dwErr = GetLastError(); + rc = rtProcMapErrorCodes(dwErr); + if (rc == VERR_UNRESOLVED_ERROR) + LogRel(("rtProcCreateAsUserHlp: pfnCreateProcessWithLogonW (%p) failed: dwErr=%u (%#x), rc=%Rrc\n", + pfnCreateProcessWithLogonW, dwErr, dwErr, rc)); } + rtProcEnvironmentDestroy(pwszzBlock); } - RTLdrClose(hAdvAPI32); } + else + rc = VERR_SYMBOL_NOT_FOUND; } /* @@ -882,7 +872,7 @@ */ phToken = fFound ? &hTokenUserDesktop : &hTokenLogon; RTLDRMOD hUserenv; - int rc = RTLdrLoad("Userenv.dll", &hUserenv); + int rc = RTLdrLoadSystem("Userenv.dll", true /*fNoUnload*/, &hUserenv); if (RT_SUCCESS(rc)) { PFNLOADUSERPROFILEW pfnLoadUserProfileW; @@ -964,7 +954,11 @@ if ( RT_SUCCESS(rc) && dwErr != NO_ERROR) + { rc = rtProcMapErrorCodes(dwErr); + if (rc == VERR_UNRESOLVED_ERROR) + LogRel(("rtProcCreateAsUserHlp: dwErr=%u (%#x), rc=%Rrc\n", dwErr, dwErr, rc)); + } return rc; } @@ -991,7 +985,7 @@ /* * Initialize the globals. */ - int rc = RTOnce(&g_rtProcWinInitOnce, rtProcWinInitOnce, NULL, NULL); + int rc = RTOnce(&g_rtProcWinInitOnce, rtProcWinInitOnce, NULL); AssertRCReturn(rc, rc); /* @@ -1193,7 +1187,7 @@ RTR3DECL(int) RTProcWait(RTPROCESS Process, unsigned fFlags, PRTPROCSTATUS pProcStatus) { AssertReturn(!(fFlags & ~(RTPROCWAIT_FLAGS_BLOCK | RTPROCWAIT_FLAGS_NOBLOCK)), VERR_INVALID_PARAMETER); - int rc = RTOnce(&g_rtProcWinInitOnce, rtProcWinInitOnce, NULL, NULL); + int rc = RTOnce(&g_rtProcWinInitOnce, rtProcWinInitOnce, NULL); AssertRCReturn(rc, rc); /* @@ -1286,7 +1280,10 @@ RTR3DECL(int) RTProcTerminate(RTPROCESS Process) { - int rc = RTOnce(&g_rtProcWinInitOnce, rtProcWinInitOnce, NULL, NULL); + if (Process == NIL_RTPROCESS) + return VINF_SUCCESS; + + int rc = RTOnce(&g_rtProcWinInitOnce, rtProcWinInitOnce, NULL); AssertRCReturn(rc, rc); /* diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Runtime/r3/win/symlink-win.cpp virtualbox-4.1.44-dfsg/src/VBox/Runtime/r3/win/symlink-win.cpp --- virtualbox-4.1.12-dfsg/src/VBox/Runtime/r3/win/symlink-win.cpp 2012-04-02 13:29:05.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Runtime/r3/win/symlink-win.cpp 2015-11-11 15:09:13.000000000 +0000 @@ -41,6 +41,7 @@ #include "internal/path.h" #include +#include "../init.h" /******************************************************************************* @@ -133,13 +134,9 @@ static bool s_fTried = FALSE; if (!s_fTried) { - HMODULE hmod = LoadLibrary("KERNEL32.DLL"); - if (hmod) - { - PFNCREATESYMBOLICLINKW pfn = (PFNCREATESYMBOLICLINKW)GetProcAddress(hmod, "CreateSymbolicLinkW"); - if (pfn) - s_pfnCreateSymbolicLinkW = pfn; - } + PFNCREATESYMBOLICLINKW pfn = (PFNCREATESYMBOLICLINKW)GetProcAddress(g_hModKernel32, "CreateSymbolicLinkW"); + if (pfn) + s_pfnCreateSymbolicLinkW = pfn; s_fTried = true; } if (!s_pfnCreateSymbolicLinkW) diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Runtime/r3/win/VBoxRT-openssl.def virtualbox-4.1.44-dfsg/src/VBox/Runtime/r3/win/VBoxRT-openssl.def --- virtualbox-4.1.12-dfsg/src/VBox/Runtime/r3/win/VBoxRT-openssl.def 2012-04-02 13:29:05.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Runtime/r3/win/VBoxRT-openssl.def 2015-11-11 15:09:12.000000000 +0000 @@ -9,7 +9,7 @@ ; ; -; Copyright (C) 2009-2012 Oracle Corporation +; Copyright (C) 2009-2013 Oracle Corporation ; ; This file is part of VirtualBox Open Source Edition (OSE), as ; available from http://www.virtualbox.org. This file is free software; @@ -476,11 +476,6 @@ c2i_ASN1_OBJECT CERTIFICATEPOLICIES_free CERTIFICATEPOLICIES_new - COMP_compress_block - COMP_CTX_free - COMP_CTX_new - COMP_expand_block - COMP_zlib CONF_dump_bio CONF_dump_fp CONF_free @@ -961,7 +956,6 @@ ERR_get_state ERR_get_string_table ERR_lib_error_string - ERR_load_ERR_strings ERR_load_strings ERR_peek_error ERR_peek_error_line @@ -1690,7 +1684,6 @@ SSLeay SSLeay_version string_to_hex - stub_VBOX_BIO_printf SXNET_add_id_asc SXNET_add_id_INTEGER SXNET_add_id_ulong @@ -2183,6 +2176,7 @@ dtls1_handle_timeout dtls1_is_timer_expired dtls1_listen + dtls1_min_mtu dtls1_new dtls1_output_cert_chain dtls1_read_bytes @@ -2233,7 +2227,8 @@ ssl_cert_inst ssl_cert_new ssl_cert_type - ssl_check_clienthello_tlsext + ssl_check_clienthello_tlsext_early + ssl_check_clienthello_tlsext_late SSL_check_private_key ssl_check_serverhello_tlsext SSL_CIPHER_description diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Runtime/r3/xml.cpp virtualbox-4.1.44-dfsg/src/VBox/Runtime/r3/xml.cpp --- virtualbox-4.1.12-dfsg/src/VBox/Runtime/r3/xml.cpp 2012-04-02 13:29:05.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Runtime/r3/xml.cpp 2015-11-11 15:09:13.000000000 +0000 @@ -519,6 +519,16 @@ } /** + * Returns the name of the node, which is either the element name or + * the attribute name. For other node types it probably returns NULL. + * @return + */ +const char* Node::getPrefix() const +{ + return m_pcszNamespacePrefix; +} + +/** * Variant of nameEquals that checks the namespace as well. * @param pcszNamespace * @param pcsz @@ -1495,12 +1505,19 @@ const char *pcszFilename = strFilename.c_str(); doc.m->reset(); + const int options = XML_PARSE_NOBLANKS /* remove blank nodes */ + | XML_PARSE_NONET /* forbit any network access */ +#if LIBXML_VERSION >= 20700 + | XML_PARSE_HUGE /* don't restrict the node depth + to 256 (bad for snapshots!) */ +#endif + ; if (!(doc.m->plibDocument = xmlCtxtReadMemory(m_ctxt, (const char*)pvBuf, (int)cbSize, pcszFilename, NULL, // encoding = auto - XML_PARSE_NOBLANKS | XML_PARSE_NONET))) + options))) throw XmlError(xmlCtxtGetLastError(m_ctxt)); doc.refreshInternals(); @@ -1624,13 +1641,20 @@ ReadContext context(pcszFilename); doc.m->reset(); + const int options = XML_PARSE_NOBLANKS /* remove blank nodes */ + | XML_PARSE_NONET /* forbit any network access */ +#if LIBXML_VERSION >= 20700 + | XML_PARSE_HUGE /* don't restrict the node depth + to 256 (bad for snapshots!) */ +#endif + ; if (!(doc.m->plibDocument = xmlCtxtReadIO(m_ctxt, ReadCallback, CloseCallback, &context, pcszFilename, NULL, // encoding = auto - XML_PARSE_NOBLANKS | XML_PARSE_NONET))) + options))) throw XmlError(xmlCtxtGetLastError(m_ctxt)); doc.refreshInternals(); Binary files /tmp/_RuVdsxfi6/virtualbox-4.1.12-dfsg/src/VBox/Runtime/testcase/72kb-random.bin and /tmp/SOL6sj7OaT/virtualbox-4.1.44-dfsg/src/VBox/Runtime/testcase/72kb-random.bin differ diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Runtime/testcase/72kb-random.h virtualbox-4.1.44-dfsg/src/VBox/Runtime/testcase/72kb-random.h --- virtualbox-4.1.12-dfsg/src/VBox/Runtime/testcase/72kb-random.h 1970-01-01 00:00:00.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Runtime/testcase/72kb-random.h 2015-11-11 15:09:13.000000000 +0000 @@ -0,0 +1,4644 @@ +/* $Id: 72kb-random.h $ */ +/** @file + * C version of 72kb-random.bin generated by bin2c. + * 72kb-random.bin was generated from /dev/random on FreeBSD 9.1. + */ + +/* + * Copyright (C) 2014 Oracle Corporation + * + * This file is part of VirtualBox Open Source Edition (OSE), as + * available from http://www.virtualbox.org. This file is free software; + * you can redistribute it and/or modify it under the terms of the GNU + * General Public License (GPL) as published by the Free Software + * Foundation, in version 2 as it comes in the "COPYING" file of the + * VirtualBox OSE distribution. VirtualBox OSE is distributed in the + * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind. + * + * The contents of this file may alternatively be used under the terms + * of the Common Development and Distribution License Version 1.0 + * (CDDL) only, as it comes in the "COPYING.CDDL" file of the + * VirtualBox OSE distribution, in which case the provisions of the + * CDDL are applicable instead of those of the GPL. + * + * You may elect to license modified versions of this file under the + * terms and conditions of either the GPL or the CDDL or both. + */ + +#include + +const unsigned char g_abRandom72KB[] = +{ + 0xe8, 0xea, 0xf4, 0x76, 0x2b, 0x38, 0xfd, 0x61, 0xfd, 0x08, 0x4f, 0xe9, 0x60, 0xd6, 0x51, 0x52, + 0xa9, 0x10, 0x5f, 0x47, 0xe1, 0x94, 0xad, 0x0b, 0xdc, 0x5a, 0x6d, 0xd9, 0x8c, 0x78, 0x30, 0xc8, + 0x12, 0x21, 0x5a, 0xfa, 0x4e, 0x0c, 0x34, 0x19, 0x21, 0x5e, 0x6e, 0x02, 0xe3, 0x37, 0xbb, 0xc7, + 0x4d, 0x7c, 0xc2, 0x48, 0x53, 0xbd, 0xff, 0xfe, 0x3e, 0x88, 0x66, 0x59, 0x79, 0xc7, 0x68, 0x43, + 0x87, 0xef, 0x03, 0x33, 0x04, 0x49, 0x71, 0x30, 0xc0, 0xb0, 0x35, 0x45, 0x66, 0xd0, 0xf2, 0x46, + 0x66, 0x51, 0xc7, 0xd3, 0x29, 0x47, 0xd5, 0x6a, 0x48, 0x00, 0x27, 0x83, 0x7c, 0x43, 0x4b, 0xff, + 0x0a, 0x73, 0x9c, 0xd2, 0x84, 0x70, 0x4f, 0xdb, 0xd5, 0x70, 0x4e, 0x33, 0xfb, 0xbb, 0x10, 0x11, + 0xc5, 0x87, 0x87, 0x97, 0x8c, 0xd4, 0x8c, 0x71, 0xf7, 0x03, 0x94, 0x8c, 0x90, 0x66, 0x2d, 0xd2, + 0xd3, 0xf2, 0xd3, 0x06, 0xa5, 0x9d, 0x4e, 0xe1, 0x16, 0x7b, 0x26, 0xb1, 0x08, 0xa9, 0xeb, 0xba, + 0x65, 0xb2, 0x5c, 0xb8, 0x62, 0x46, 0x71, 0x59, 0xe1, 0x9e, 0xfe, 0x8d, 0xcf, 0x62, 0xa6, 0x6f, + 0x63, 0x9d, 0x2b, 0x2a, 0xdf, 0xa8, 0x6e, 0xb9, 0x40, 0x9f, 0x0c, 0xed, 0x6f, 0xf4, 0xcf, 0x09, + 0x89, 0x6e, 0xa5, 0x72, 0x01, 0xdd, 0x9c, 0x84, 0x1d, 0x2b, 0x0c, 0x60, 0x32, 0xc4, 0xe5, 0xc5, + 0x75, 0x55, 0x75, 0x0b, 0x0b, 0x07, 0x5c, 0x80, 0xae, 0xeb, 0xa7, 0xd2, 0xbe, 0x04, 0x6a, 0x58, + 0x98, 0xc9, 0x64, 0x92, 0x68, 0x23, 0x40, 0x87, 0x6c, 0x9d, 0x88, 0x82, 0x24, 0x33, 0xd7, 0x5d, + 0x8b, 0x39, 0x66, 0xc2, 0x7d, 0x26, 0x0f, 0x81, 0xac, 0xc0, 0x1a, 0xc5, 0xd4, 0x7c, 0x5c, 0x7c, + 0xe8, 0xbc, 0x2d, 0x5b, 0x7e, 0xee, 0x56, 0x24, 0x71, 0xf9, 0xf8, 0x2b, 0x87, 0x5f, 0xfd, 0x50, + 0x53, 0x24, 0xec, 0x16, 0x9a, 0x19, 0xef, 0x5b, 0x0e, 0xf2, 0x59, 0xc6, 0xb8, 0x24, 0x43, 0x67, + 0x02, 0x23, 0x05, 0xf9, 0x37, 0xe3, 0xbd, 0xb9, 0xf6, 0x1f, 0x55, 0x1c, 0x45, 0x60, 0x04, 0x1a, + 0x48, 0x4f, 0x39, 0x11, 0xb2, 0xb8, 0x18, 0x3e, 0x33, 0x89, 0x18, 0x55, 0x5e, 0xb4, 0x29, 0xb3, + 0x1d, 0xf2, 0xbf, 0x2f, 0xaa, 0x4b, 0x54, 0x2b, 0x1f, 0xd1, 0xc8, 0x98, 0xdc, 0x79, 0xa1, 0x9a, + 0xaa, 0x33, 0xf4, 0xa1, 0xc8, 0xcc, 0xc0, 0x1c, 0xce, 0x4b, 0xe7, 0xc3, 0xc4, 0x30, 0x2a, 0xef, + 0x1c, 0x55, 0x18, 0xc1, 0x9b, 0x35, 0x25, 0x9e, 0x56, 0x44, 0x04, 0x43, 0xcd, 0x45, 0x3d, 0x7f, + 0xe1, 0x49, 0xa5, 0x2d, 0x1a, 0xee, 0x5e, 0x4e, 0x02, 0x4c, 0x14, 0x6b, 0x70, 0x18, 0x6a, 0x64, + 0xb7, 0x4d, 0xa0, 0x1b, 0xfd, 0x6e, 0x18, 0xcc, 0xda, 0x9a, 0xc4, 0xd3, 0x18, 0x7b, 0xbe, 0xeb, + 0xb5, 0xcf, 0x67, 0xb8, 0xbb, 0x54, 0x20, 0x84, 0x5f, 0xbb, 0x4c, 0xd9, 0x92, 0x83, 0xd1, 0x01, + 0xcd, 0x94, 0xb7, 0x36, 0xe4, 0x15, 0x11, 0xdf, 0xf0, 0x44, 0x03, 0x3b, 0x6f, 0x3c, 0x88, 0x23, + 0x1e, 0x26, 0xb5, 0xd2, 0x26, 0x33, 0xe5, 0x27, 0x06, 0x75, 0x5c, 0xff, 0x03, 0xd3, 0x26, 0x6b, + 0x07, 0x3b, 0xf0, 0x88, 0x98, 0xc9, 0x9b, 0xaf, 0xfc, 0xab, 0xe7, 0xff, 0x17, 0x0d, 0x00, 0x27, + 0xa0, 0x1a, 0xfb, 0x87, 0xd2, 0xe7, 0xe2, 0x05, 0xf7, 0xc0, 0x23, 0x08, 0x7e, 0x72, 0xb3, 0x1c, + 0xb3, 0xfa, 0x64, 0x3d, 0x06, 0x3c, 0xe3, 0x9b, 0xc4, 0xbe, 0xfe, 0x5a, 0x99, 0xc2, 0x97, 0xdd, + 0xa1, 0xe1, 0x04, 0xa5, 0x78, 0x9d, 0xaa, 0x46, 0x9f, 0xec, 0xb8, 0x59, 0x81, 0xfb, 0xd0, 0xb8, + 0xb0, 0x3a, 0x95, 0xe2, 0x59, 0xdc, 0x54, 0xcf, 0x3a, 0x31, 0x65, 0x3a, 0xfc, 0x57, 0x56, 0x2c, + 0x2b, 0xf2, 0x31, 0x0c, 0xb3, 0xaf, 0x14, 0xe4, 0xf8, 0xba, 0xe8, 0x71, 0xc9, 0x9f, 0x41, 0xd2, + 0xa7, 0x80, 0x78, 0x0c, 0xd1, 0xd9, 0x4d, 0x5a, 0x96, 0x07, 0xe8, 0x70, 0x11, 0x0c, 0xe5, 0xab, + 0xa8, 0x63, 0x5b, 0xc5, 0x15, 0x1f, 0x28, 0x4b, 0x44, 0x74, 0xec, 0x2b, 0x74, 0x08, 0x41, 0x81, + 0x00, 0x43, 0x80, 0x2b, 0xf7, 0x52, 0x4b, 0xcf, 0x61, 0xab, 0x71, 0x72, 0x44, 0xe2, 0xe7, 0x18, + 0xc4, 0xad, 0x56, 0x5f, 0x5e, 0x0e, 0xdd, 0x87, 0xf2, 0xc8, 0x53, 0x96, 0xcc, 0x3d, 0x06, 0x54, + 0xce, 0xf2, 0x7f, 0xdb, 0x73, 0x1d, 0x32, 0x42, 0xb3, 0x9e, 0x17, 0x08, 0x35, 0x59, 0x26, 0x2c, + 0x52, 0x1c, 0x65, 0x08, 0xbf, 0xa3, 0x2c, 0x89, 0x3a, 0x76, 0x5f, 0xd2, 0xc4, 0xe8, 0xbf, 0x7e, + 0x74, 0xbb, 0xc1, 0x14, 0x7d, 0x96, 0x7d, 0x6a, 0xf5, 0x04, 0x45, 0x84, 0xc4, 0x37, 0x91, 0xbd, + 0xc5, 0x02, 0xe4, 0xf3, 0x14, 0xfc, 0xeb, 0x7a, 0x70, 0x59, 0x9a, 0x01, 0xd5, 0x93, 0xfc, 0xc0, + 0xee, 0x72, 0x30, 0x22, 0x47, 0x4c, 0x9f, 0x7e, 0x37, 0xa6, 0x9a, 0x28, 0xef, 0xce, 0xa2, 0xf6, + 0x48, 0xc1, 0x15, 0xc2, 0x63, 0xa8, 0xa2, 0xfe, 0x62, 0xe4, 0xbe, 0xb9, 0xa0, 0x3c, 0x3e, 0xad, + 0x04, 0x0e, 0xe7, 0x57, 0xf7, 0xb3, 0xca, 0x04, 0x33, 0xbb, 0x0e, 0x60, 0x80, 0xe9, 0x59, 0x48, + 0x2f, 0x64, 0xee, 0xd9, 0x6e, 0x82, 0xa4, 0x8c, 0x8f, 0x1d, 0x8f, 0x3c, 0x5e, 0xe7, 0xe3, 0xf7, + 0x44, 0x3a, 0x0d, 0xcf, 0xce, 0x38, 0x5b, 0x33, 0x54, 0x84, 0xef, 0x2a, 0x02, 0xb4, 0x23, 0x31, + 0xdc, 0xe1, 0xf4, 0xc7, 0x5d, 0x68, 0x31, 0x43, 0x6f, 0x27, 0x6e, 0x4c, 0xe2, 0xa6, 0xf1, 0xd1, + 0xc0, 0xff, 0x69, 0x23, 0x71, 0x45, 0xd0, 0x66, 0xd2, 0xac, 0xde, 0x6a, 0xb4, 0x9c, 0x3c, 0x60, + 0xcf, 0x6c, 0xc4, 0x61, 0xc2, 0x05, 0xf4, 0x2c, 0x9e, 0x9a, 0x16, 0x5f, 0x7a, 0x43, 0x66, 0x1e, + 0x70, 0xc6, 0x43, 0x8e, 0xd6, 0xb7, 0xdc, 0x5f, 0xcd, 0x0e, 0xaf, 0x2c, 0x34, 0xd6, 0x65, 0x8e, + 0x02, 0x4d, 0xf5, 0x6a, 0x83, 0xf7, 0xec, 0xe8, 0x04, 0x98, 0x5b, 0x4e, 0x04, 0x20, 0xbd, 0x09, + 0xdb, 0xe6, 0xe5, 0x4e, 0x14, 0x86, 0x48, 0xf0, 0x4b, 0xeb, 0x3d, 0x31, 0x20, 0xb0, 0xd5, 0xfc, + 0x43, 0x78, 0x58, 0x67, 0xd8, 0x2e, 0xdd, 0x28, 0x0a, 0xc7, 0x35, 0x8c, 0x33, 0x49, 0x1b, 0x7c, + 0x44, 0x62, 0xb3, 0x9a, 0x6d, 0x41, 0x1f, 0xec, 0xd9, 0xed, 0x32, 0x67, 0x21, 0xf7, 0x38, 0x84, + 0xea, 0x8e, 0xc1, 0xa5, 0x52, 0xef, 0x1a, 0x1f, 0xae, 0xbf, 0x49, 0x22, 0x5b, 0xf1, 0x7e, 0x00, + 0x9c, 0x2b, 0x75, 0x9e, 0xb7, 0xfe, 0x18, 0xbe, 0xf1, 0x80, 0x49, 0x56, 0x58, 0x90, 0xa5, 0x81, + 0xb9, 0x3f, 0x7e, 0xd3, 0xe2, 0xa2, 0xaf, 0x95, 0xd8, 0x33, 0x39, 0xf1, 0x02, 0xa9, 0xb3, 0x9b, + 0xe3, 0xac, 0xd7, 0xbf, 0x62, 0xc1, 0x63, 0x71, 0x59, 0xc3, 0xfe, 0xfb, 0xfc, 0x88, 0x5f, 0xd9, + 0x2c, 0x68, 0x44, 0x5c, 0xea, 0x1b, 0xc3, 0x7b, 0x8d, 0x18, 0x0c, 0x03, 0xc4, 0x46, 0x4b, 0x3d, + 0xf9, 0xcb, 0xb2, 0x03, 0xd9, 0x90, 0xdd, 0x47, 0x65, 0xb9, 0xaa, 0x5c, 0xb4, 0xdd, 0x70, 0x93, + 0x45, 0x95, 0x22, 0x13, 0x49, 0x7c, 0x98, 0xef, 0x7c, 0xea, 0x89, 0x2c, 0xdb, 0x5a, 0x4d, 0xae, + 0x6e, 0x13, 0x2c, 0xfc, 0x11, 0x2d, 0x15, 0x40, 0x7c, 0x25, 0xd3, 0xc2, 0x55, 0xdd, 0xee, 0xb5, + 0xbb, 0x5c, 0xe3, 0x04, 0x56, 0xa6, 0xed, 0x11, 0x1e, 0xc7, 0xc9, 0xb2, 0x9e, 0xec, 0xda, 0xb4, + 0x70, 0xfa, 0x63, 0xa1, 0x42, 0x35, 0xa5, 0xde, 0xda, 0xcd, 0x4c, 0xc5, 0x61, 0xa6, 0x80, 0x10, + 0x60, 0xdd, 0x21, 0x0e, 0x42, 0xb5, 0xde, 0xdc, 0x0a, 0xfa, 0x56, 0xf6, 0x57, 0x94, 0xfc, 0xbb, + 0xb3, 0x24, 0xd0, 0x50, 0xbb, 0xee, 0x55, 0x47, 0x01, 0x29, 0x56, 0x45, 0x5f, 0x4a, 0xdb, 0x62, + 0x78, 0xb5, 0xbe, 0x62, 0x5b, 0xef, 0xb8, 0x79, 0xd1, 0x4d, 0xab, 0xca, 0x24, 0x8f, 0xd7, 0xd4, + 0x8a, 0xae, 0x2b, 0xba, 0xba, 0xbf, 0xba, 0x37, 0x4d, 0x9e, 0x7c, 0x78, 0x94, 0xa1, 0x49, 0xde, + 0xd2, 0x34, 0x59, 0xce, 0x07, 0x56, 0x9d, 0x09, 0x59, 0xfb, 0xa6, 0xbc, 0x8d, 0x3b, 0x28, 0x74, + 0x8c, 0xb1, 0x43, 0xfe, 0xf7, 0xe3, 0x54, 0x28, 0x2e, 0xab, 0x71, 0x70, 0x72, 0xe7, 0xe6, 0x62, + 0xab, 0x53, 0x0b, 0xee, 0x83, 0x99, 0xb6, 0x2f, 0xc8, 0x5a, 0x01, 0x3e, 0x1c, 0x8f, 0xae, 0x84, + 0xf7, 0x7e, 0x9b, 0xa8, 0xb0, 0xbd, 0xa0, 0xf2, 0xe1, 0xb0, 0x69, 0x99, 0xe9, 0xe8, 0x69, 0x04, + 0x5e, 0x99, 0x20, 0x84, 0xf7, 0x6f, 0x3c, 0xcc, 0x15, 0x13, 0xbc, 0x88, 0x9b, 0x2f, 0xe1, 0x68, + 0x69, 0x38, 0xf1, 0xac, 0x7f, 0x9f, 0xf0, 0xdd, 0x48, 0x04, 0xf4, 0xed, 0x88, 0xaa, 0x6a, 0xe2, + 0xb3, 0x3f, 0x4c, 0x28, 0x30, 0x6a, 0x40, 0x05, 0x42, 0x07, 0xb4, 0xf4, 0xf2, 0x40, 0x48, 0xa6, + 0xf7, 0xed, 0x4e, 0x54, 0xe8, 0xd4, 0x9f, 0x92, 0xd4, 0x68, 0x07, 0x93, 0x13, 0x4e, 0xbb, 0xd9, + 0xe9, 0x9a, 0xc9, 0x76, 0x09, 0xb3, 0x52, 0x3f, 0x51, 0xc4, 0x2e, 0xa7, 0x2e, 0xc4, 0x40, 0x24, + 0xbf, 0xaf, 0x74, 0x55, 0xe3, 0x8c, 0xa8, 0x67, 0xe9, 0x04, 0x2f, 0x86, 0x99, 0x00, 0xcc, 0x75, + 0xc1, 0x9a, 0x9d, 0x42, 0x17, 0x71, 0xc9, 0x30, 0x8a, 0xc4, 0x8a, 0x40, 0xd1, 0x54, 0x40, 0x07, + 0x82, 0xb5, 0x74, 0x5c, 0xbc, 0xc8, 0x5d, 0x60, 0x8d, 0xf4, 0x5f, 0xb5, 0xee, 0x93, 0xd4, 0xab, + 0x5b, 0x02, 0xc8, 0xcb, 0x79, 0xa8, 0x8a, 0xe6, 0x15, 0x18, 0x40, 0x6a, 0x0c, 0x09, 0x9e, 0x2d, + 0x38, 0x96, 0x2f, 0x86, 0x95, 0x31, 0xfa, 0x92, 0x2f, 0x8d, 0x2e, 0x43, 0xba, 0xec, 0x60, 0xc0, + 0x25, 0x81, 0xf7, 0x66, 0x03, 0x59, 0x3f, 0xad, 0xa2, 0x0e, 0xd8, 0x03, 0xf0, 0x85, 0x91, 0x45, + 0xac, 0x12, 0x73, 0x1f, 0x35, 0x3c, 0xce, 0x9f, 0x1e, 0x61, 0x2f, 0xe7, 0x14, 0xbb, 0x42, 0x70, + 0x9c, 0xfd, 0x16, 0x87, 0xc5, 0xd8, 0xd8, 0x73, 0x68, 0xb8, 0x34, 0x98, 0x56, 0x1d, 0x77, 0x8f, + 0x78, 0x9b, 0xad, 0x99, 0x1e, 0xbd, 0x0f, 0xb4, 0xc1, 0x4f, 0xfa, 0x74, 0xbc, 0xa8, 0x33, 0x23, + 0x8c, 0xf5, 0x88, 0xb7, 0xf2, 0x54, 0x53, 0x79, 0x4a, 0x6c, 0xf0, 0x5d, 0x37, 0xa8, 0xf2, 0x46, + 0xf6, 0x78, 0x93, 0xfa, 0xba, 0x4b, 0x4a, 0x44, 0xe3, 0x3a, 0xf5, 0x08, 0x0e, 0x61, 0x50, 0xdd, + 0x41, 0x51, 0xa9, 0x5c, 0xac, 0xde, 0xad, 0x38, 0x9e, 0xd1, 0xf0, 0x7c, 0x3c, 0xa0, 0x77, 0x0c, + 0xb7, 0x53, 0xbd, 0xb1, 0x5c, 0x70, 0xbd, 0x76, 0x61, 0x1e, 0x04, 0xc2, 0x50, 0x8d, 0x98, 0xe4, + 0x55, 0x46, 0x11, 0x97, 0x33, 0x6d, 0x3b, 0x39, 0x82, 0xfb, 0x13, 0xe5, 0x58, 0x1c, 0x3c, 0x46, + 0xa7, 0x86, 0xd2, 0xd1, 0x5c, 0x31, 0x3b, 0xc5, 0x99, 0xd8, 0x31, 0xdd, 0x98, 0xe1, 0xcb, 0x41, + 0x74, 0x59, 0x3a, 0xba, 0xcb, 0x12, 0x0a, 0x37, 0x09, 0x5c, 0x01, 0xca, 0x86, 0x12, 0xa6, 0x2b, + 0xa0, 0x6a, 0x9d, 0x07, 0xd0, 0x79, 0xd6, 0x06, 0xed, 0xbd, 0x4d, 0xd5, 0x24, 0x82, 0xc3, 0xbf, + 0x20, 0xff, 0x45, 0x5c, 0xb9, 0x9f, 0xc4, 0x25, 0x39, 0xcb, 0x7f, 0xbf, 0xdd, 0x93, 0xcf, 0xb9, + 0x2c, 0x59, 0x73, 0xd8, 0xd1, 0xb3, 0x20, 0x71, 0x7c, 0xf3, 0x62, 0xaa, 0x10, 0xe5, 0xfc, 0x25, + 0x08, 0x3e, 0x49, 0xac, 0x12, 0xa4, 0xaa, 0x40, 0xba, 0xe6, 0xc5, 0x84, 0x0b, 0x38, 0xb2, 0xf7, + 0x1a, 0x9c, 0xac, 0x82, 0x2c, 0x0f, 0x94, 0xc5, 0x2f, 0x24, 0xa6, 0x7a, 0x29, 0x11, 0xa8, 0x5c, + 0x5d, 0x8f, 0x65, 0x29, 0x61, 0xd0, 0x2a, 0x65, 0xfd, 0xfb, 0x3d, 0x9a, 0x8b, 0xca, 0x7f, 0xac, + 0x46, 0x1a, 0xd4, 0xa7, 0x5e, 0x66, 0x4b, 0xb1, 0x33, 0xb6, 0x57, 0x09, 0x2d, 0x40, 0x8a, 0xb9, + 0x15, 0xf3, 0xee, 0xb9, 0x9a, 0x20, 0xfc, 0x51, 0x56, 0x9a, 0x18, 0x9a, 0x9e, 0x84, 0x14, 0x24, + 0x50, 0xda, 0xd7, 0x79, 0x35, 0x08, 0xb1, 0xae, 0xc3, 0x19, 0xce, 0x86, 0xbd, 0x62, 0x56, 0xc0, + 0xd9, 0x71, 0xa4, 0x6e, 0x9e, 0xd2, 0x70, 0x38, 0x55, 0x88, 0x2f, 0x60, 0x95, 0x46, 0xe9, 0x41, + 0x5b, 0x8b, 0x48, 0x27, 0xff, 0x1f, 0x1e, 0x8d, 0xf3, 0x7c, 0xda, 0x9f, 0x29, 0xf6, 0xc8, 0xbd, + 0x01, 0x56, 0x6e, 0x43, 0xc8, 0xc3, 0x34, 0xd2, 0x93, 0x43, 0x99, 0x17, 0x88, 0x64, 0xc7, 0xfb, + 0xd0, 0x29, 0x68, 0x19, 0x97, 0x62, 0x11, 0x2a, 0xbb, 0x2c, 0x02, 0xd1, 0xb0, 0xd2, 0x0c, 0x90, + 0x68, 0x30, 0xe6, 0x41, 0x06, 0x92, 0x8c, 0xe0, 0xe2, 0xaf, 0x16, 0x8d, 0xbf, 0x50, 0x3f, 0x16, + 0x0e, 0xc0, 0xbe, 0xef, 0xf3, 0x67, 0xee, 0x2c, 0x20, 0xb8, 0x0d, 0x22, 0x91, 0x29, 0x0f, 0x26, + 0x63, 0x55, 0xa5, 0x13, 0x71, 0x41, 0x4b, 0x57, 0xe8, 0xff, 0x1a, 0x4f, 0x93, 0x24, 0x89, 0xf9, + 0x30, 0xde, 0xd0, 0x37, 0xda, 0x42, 0xa0, 0xf4, 0x19, 0x66, 0x68, 0x00, 0x9c, 0xbf, 0x7c, 0xaf, + 0xd3, 0x91, 0x93, 0xd0, 0x69, 0x91, 0xe9, 0xfd, 0xa8, 0xc5, 0x02, 0x24, 0xfe, 0x1f, 0x1c, 0x33, + 0xc4, 0xf3, 0x6f, 0x48, 0x01, 0x55, 0xc1, 0x4a, 0x42, 0x92, 0x6f, 0xc7, 0x0c, 0x6a, 0x46, 0xca, + 0xb1, 0x56, 0x15, 0x86, 0x91, 0x1b, 0x2d, 0xf6, 0x3c, 0x50, 0x3f, 0xc3, 0xba, 0x6d, 0x1a, 0xf7, + 0xa5, 0x42, 0x4a, 0x77, 0x09, 0x90, 0x24, 0x14, 0x01, 0x91, 0x7e, 0x3c, 0xf3, 0x88, 0xc0, 0x86, + 0xf3, 0x94, 0x48, 0xd3, 0x73, 0x6d, 0x17, 0x3c, 0xc5, 0x7c, 0x67, 0x13, 0x4f, 0x0b, 0x20, 0x19, + 0xf9, 0x02, 0x9c, 0xb7, 0xe1, 0x3e, 0x09, 0x5b, 0x97, 0x9e, 0x73, 0x27, 0x4f, 0x9a, 0x9b, 0x44, + 0xd2, 0x19, 0x17, 0x24, 0xef, 0xa1, 0x19, 0xdc, 0xf3, 0xa4, 0x28, 0x96, 0x46, 0x87, 0x0b, 0x3a, + 0x09, 0xe8, 0xd0, 0x1e, 0x39, 0x9c, 0x0e, 0x72, 0x1a, 0xc2, 0x06, 0x2d, 0xe5, 0x23, 0xb7, 0xa9, + 0xc3, 0x64, 0x14, 0x25, 0xf4, 0xcf, 0x6a, 0x45, 0xa7, 0xe5, 0x0b, 0x8d, 0x76, 0x8a, 0xd5, 0x60, + 0x4b, 0x58, 0x29, 0xce, 0xc2, 0x27, 0xd4, 0xac, 0x4c, 0x74, 0x18, 0x3f, 0x59, 0x88, 0x70, 0xb1, + 0x7e, 0xb0, 0x04, 0x91, 0xf8, 0x38, 0x20, 0x5b, 0xde, 0xa7, 0x1e, 0x3f, 0x2b, 0xcc, 0xe3, 0x15, + 0x56, 0x38, 0x33, 0x68, 0x2c, 0xa8, 0x48, 0x66, 0x4e, 0x3e, 0x78, 0x2c, 0xd4, 0x44, 0x97, 0x9e, + 0x0f, 0xe5, 0x20, 0x8a, 0x2c, 0x53, 0xe9, 0xfa, 0x6c, 0xb6, 0x1e, 0x58, 0x58, 0xf4, 0x62, 0x97, + 0x7b, 0x12, 0x60, 0x24, 0x99, 0x62, 0x47, 0x8f, 0xc8, 0x6b, 0x98, 0x17, 0x26, 0x46, 0xf6, 0x93, + 0x6c, 0xb6, 0x8e, 0xa3, 0x5e, 0x29, 0xc3, 0xd5, 0xf3, 0x13, 0x8d, 0x31, 0xdd, 0xb3, 0x4c, 0x69, + 0x34, 0x9a, 0xf2, 0x13, 0x28, 0x7a, 0xaf, 0x4a, 0x1b, 0xde, 0xde, 0xcc, 0xc4, 0x7b, 0x3a, 0xc2, + 0x5f, 0xc0, 0xed, 0x2f, 0xab, 0xdf, 0xc6, 0x1e, 0x5c, 0xc5, 0x91, 0xb8, 0x15, 0xda, 0x5e, 0x7c, + 0xed, 0x28, 0xf3, 0x7f, 0xd4, 0x2c, 0x69, 0xc0, 0x75, 0x6e, 0xac, 0x9e, 0xf1, 0xe6, 0xaa, 0xde, + 0x77, 0x52, 0x53, 0xdd, 0x66, 0x29, 0x38, 0x45, 0x94, 0x00, 0x48, 0xef, 0xb8, 0x0a, 0x5d, 0x9c, + 0xd6, 0xe4, 0x4e, 0x60, 0x31, 0xde, 0xc4, 0xc3, 0x98, 0x07, 0x07, 0xea, 0xa6, 0x75, 0x26, 0xca, + 0xce, 0x22, 0xe9, 0x68, 0xa8, 0xd7, 0x2f, 0x3f, 0x01, 0x72, 0x4b, 0xb3, 0x6e, 0x46, 0xd3, 0x7f, + 0x1a, 0xd6, 0xb1, 0xda, 0x2f, 0x1d, 0xdf, 0x64, 0x55, 0x79, 0xf7, 0x97, 0x5a, 0xb1, 0xfd, 0x26, + 0x89, 0x51, 0xf8, 0xc1, 0x7a, 0x8c, 0x90, 0x28, 0x78, 0xa1, 0x14, 0x58, 0x10, 0x61, 0x6f, 0x0a, + 0xb7, 0x46, 0x7f, 0x18, 0x5e, 0xca, 0x98, 0x43, 0xfe, 0xc3, 0xff, 0xa9, 0xf6, 0xbe, 0xb6, 0x7b, + 0x1c, 0xd6, 0x54, 0x55, 0xc9, 0xff, 0xfb, 0x23, 0xa4, 0x75, 0x83, 0x0b, 0xfb, 0x5d, 0xb4, 0x08, + 0x30, 0x3d, 0xd7, 0xc7, 0x74, 0xc3, 0x0d, 0xfb, 0xa4, 0x05, 0x89, 0xdc, 0xbd, 0xec, 0x33, 0xa8, + 0x32, 0x16, 0x8f, 0x9d, 0x30, 0x81, 0x1e, 0x80, 0x6f, 0x08, 0xbe, 0xde, 0x16, 0xdb, 0xac, 0x37, + 0xbb, 0x36, 0x62, 0xa9, 0x00, 0x58, 0x9d, 0x18, 0x5d, 0x0e, 0xc2, 0x90, 0xe8, 0xe3, 0xb6, 0x48, + 0x0a, 0xd6, 0x50, 0xf9, 0x5e, 0x29, 0x06, 0x38, 0xf9, 0x64, 0x0d, 0xc4, 0x2e, 0xa7, 0xe0, 0x0a, + 0x20, 0xcc, 0x65, 0x2e, 0xd7, 0x79, 0xd5, 0x96, 0xb4, 0x74, 0x2b, 0xd7, 0x7e, 0x32, 0x69, 0x3c, + 0x49, 0x9b, 0xfe, 0x07, 0xda, 0x75, 0x43, 0x60, 0x72, 0x03, 0x7f, 0x28, 0x76, 0x04, 0x9f, 0xcb, + 0xaa, 0x39, 0xc5, 0x95, 0x68, 0x07, 0x51, 0x4e, 0xd8, 0x4f, 0xab, 0xd3, 0xfb, 0x4f, 0xcd, 0x56, + 0xc7, 0x0a, 0x5a, 0x64, 0x42, 0xfa, 0x5b, 0xb6, 0xd4, 0xfd, 0x1c, 0x0c, 0xa5, 0x2a, 0xf8, 0xd9, + 0x25, 0x3c, 0x41, 0x67, 0x82, 0x8b, 0xc3, 0x53, 0x3f, 0x98, 0x33, 0x13, 0x73, 0xaa, 0xfd, 0x6d, + 0xd3, 0x4b, 0x45, 0x77, 0x60, 0x0b, 0xc4, 0x17, 0xc8, 0x3e, 0x2b, 0xc4, 0x99, 0x08, 0x8b, 0x5d, + 0x70, 0xc3, 0x26, 0x9f, 0x09, 0xdf, 0xbc, 0xe6, 0xde, 0xa8, 0x98, 0x8a, 0xa1, 0x7f, 0x6c, 0x74, + 0x6c, 0x71, 0xf6, 0x60, 0x50, 0xef, 0x01, 0xf4, 0x81, 0xee, 0x94, 0x05, 0x87, 0xb0, 0x4c, 0xfa, + 0x8f, 0xf6, 0x65, 0x69, 0x75, 0xc9, 0x1a, 0x81, 0x43, 0x38, 0x39, 0x84, 0xa1, 0xcc, 0x17, 0x1a, + 0xb7, 0x98, 0x2d, 0x08, 0x50, 0x2d, 0x16, 0xe2, 0x50, 0x3c, 0x4c, 0xf6, 0x6d, 0x71, 0xd8, 0x71, + 0x19, 0x2e, 0xbf, 0x69, 0x4a, 0x15, 0x5a, 0x40, 0xb7, 0xf8, 0x82, 0xa9, 0x5a, 0xf7, 0x07, 0x7a, + 0x38, 0x89, 0x44, 0xd1, 0x3c, 0x1c, 0xb0, 0x16, 0xf0, 0x13, 0xb3, 0xec, 0x32, 0x16, 0x7f, 0x4b, + 0xba, 0x0e, 0xec, 0xdd, 0x14, 0x96, 0xdb, 0xf5, 0xd8, 0xd9, 0xa2, 0x88, 0xa2, 0x94, 0x17, 0x20, + 0xc9, 0x5f, 0x6c, 0xb4, 0x32, 0xa3, 0x72, 0xb2, 0xa2, 0xef, 0x41, 0x75, 0x72, 0x7b, 0x5b, 0x63, + 0x19, 0x17, 0x84, 0x4e, 0xe9, 0xc1, 0xc4, 0x01, 0xc5, 0x04, 0xe2, 0x95, 0x40, 0x98, 0xd1, 0x62, + 0xb0, 0x95, 0x61, 0xc0, 0x84, 0x44, 0x29, 0x73, 0x03, 0x26, 0x7d, 0xea, 0xd6, 0x3c, 0x2b, 0x4a, + 0xe2, 0xcb, 0x4e, 0x08, 0x85, 0xa2, 0x22, 0x59, 0x57, 0x3d, 0x55, 0x12, 0x48, 0x3f, 0x70, 0xc2, + 0x50, 0x2f, 0x00, 0x84, 0xec, 0x7d, 0xad, 0xbb, 0x2c, 0x51, 0x29, 0x3e, 0xcb, 0xef, 0xe7, 0xe3, + 0xd0, 0x41, 0x6f, 0xd6, 0xcd, 0xba, 0x73, 0x1f, 0xba, 0x3a, 0x78, 0xed, 0x74, 0x38, 0x4b, 0x6e, + 0x2b, 0x0a, 0xf0, 0x5a, 0xce, 0xa1, 0x8f, 0x5d, 0x9e, 0xef, 0xac, 0x41, 0x2e, 0xf2, 0xf1, 0xbf, + 0x21, 0xe8, 0x64, 0x29, 0x77, 0x08, 0xb4, 0xe7, 0x04, 0x19, 0xce, 0xda, 0xf4, 0xb0, 0xe6, 0x07, + 0x68, 0xde, 0xa8, 0x9f, 0x4e, 0x64, 0x42, 0x9c, 0xb0, 0xc6, 0x9c, 0xf3, 0x70, 0x79, 0xd3, 0x92, + 0x2c, 0x77, 0xb7, 0xb3, 0x19, 0xe4, 0x0f, 0xe6, 0x7e, 0xde, 0xd3, 0xcb, 0x34, 0x11, 0xc1, 0x93, + 0x02, 0x84, 0x4d, 0xaf, 0xcf, 0x59, 0x63, 0x5b, 0x87, 0xb1, 0x73, 0xa7, 0xc4, 0xe9, 0x4b, 0xfe, + 0xf7, 0xa9, 0x76, 0x4b, 0x79, 0x18, 0x7c, 0x33, 0x0f, 0xd6, 0x5c, 0xea, 0x5d, 0xc2, 0x08, 0xad, + 0x91, 0x4e, 0x78, 0x88, 0x47, 0x14, 0x7a, 0xbe, 0x04, 0xc3, 0x9a, 0x08, 0x9e, 0xa3, 0xb2, 0x98, + 0xe8, 0x4e, 0x61, 0x7d, 0x91, 0x3d, 0x2f, 0xd3, 0x2e, 0xa1, 0x30, 0x7d, 0x31, 0x86, 0x86, 0x4c, + 0xe7, 0x6e, 0x0d, 0x57, 0x0f, 0x79, 0x53, 0xfd, 0xe3, 0x1f, 0x95, 0x40, 0x60, 0xbf, 0x5c, 0xd5, + 0x04, 0xdf, 0xcc, 0x10, 0x0c, 0xba, 0xd9, 0x6d, 0xc8, 0x57, 0x04, 0x74, 0xf9, 0x16, 0xe6, 0x96, + 0x6a, 0xe6, 0x84, 0xdf, 0xc2, 0x16, 0xd1, 0x68, 0x6d, 0xa1, 0xd6, 0x8d, 0xca, 0xf9, 0xfd, 0x96, + 0xdb, 0xe5, 0x49, 0xa4, 0x9f, 0xe7, 0xac, 0x3a, 0xeb, 0x39, 0x7d, 0x8a, 0xc1, 0x4e, 0x03, 0xe5, + 0x33, 0x68, 0x81, 0x95, 0xee, 0x96, 0x78, 0x4e, 0xa5, 0x34, 0x4f, 0xbf, 0xaf, 0x15, 0x29, 0x40, + 0x64, 0x8f, 0xfe, 0x96, 0x70, 0x6e, 0xc9, 0x09, 0x18, 0xe0, 0x55, 0x6c, 0x1d, 0xd5, 0x7e, 0x99, + 0x7e, 0x20, 0x11, 0x1b, 0x59, 0x08, 0x5b, 0x79, 0x3a, 0xed, 0x48, 0xc2, 0xa5, 0x81, 0x35, 0xc6, + 0x52, 0x43, 0x29, 0x78, 0x22, 0x68, 0x0b, 0x4c, 0x5e, 0x39, 0x64, 0x83, 0xbe, 0xe5, 0xa9, 0x7a, + 0x26, 0x2a, 0xef, 0xb6, 0x58, 0x0a, 0x12, 0x3b, 0x45, 0xea, 0x59, 0xc9, 0x1c, 0x6c, 0x42, 0x8e, + 0x63, 0x9b, 0x2d, 0x8c, 0x01, 0xbd, 0x49, 0x40, 0x7f, 0x93, 0x53, 0x30, 0xe1, 0xd2, 0x6c, 0x29, + 0x02, 0xd7, 0xc5, 0x96, 0x63, 0x34, 0xc7, 0x0c, 0x25, 0x16, 0x56, 0xa8, 0x80, 0x98, 0xbc, 0xfc, + 0x55, 0x2a, 0xe8, 0xad, 0x02, 0xb6, 0xee, 0xa9, 0x1e, 0x95, 0x9e, 0x7e, 0x0a, 0xa9, 0xe9, 0xf2, + 0xce, 0x70, 0x84, 0xb8, 0x81, 0x15, 0x6b, 0x80, 0x18, 0x8e, 0xad, 0x99, 0x5d, 0xdb, 0xca, 0x39, + 0x57, 0xe1, 0xcb, 0x0b, 0xcd, 0x5d, 0xa4, 0xa6, 0xbe, 0xff, 0xb8, 0x8c, 0x68, 0xf9, 0x07, 0x6d, + 0x36, 0x18, 0x0b, 0x72, 0x52, 0x1e, 0x70, 0xc5, 0x50, 0x83, 0xfe, 0x5c, 0xa7, 0xd6, 0x5f, 0xc6, + 0x6e, 0x64, 0x71, 0x2b, 0x63, 0xac, 0xd4, 0x42, 0x44, 0xa9, 0x34, 0x50, 0x8d, 0x19, 0x13, 0x17, + 0xde, 0x93, 0xdc, 0x1b, 0x97, 0xf5, 0x38, 0x6a, 0xe9, 0xa0, 0x0f, 0x67, 0x25, 0x64, 0xae, 0x9e, + 0x51, 0xc6, 0xc8, 0x5e, 0x09, 0x57, 0x01, 0x29, 0x96, 0x60, 0xf8, 0xd1, 0x15, 0xef, 0x9c, 0x62, + 0xcc, 0x2e, 0x15, 0x96, 0x4d, 0x13, 0x3f, 0xb7, 0x5c, 0x1e, 0x2d, 0x76, 0x33, 0x96, 0x5b, 0x82, + 0x99, 0xb1, 0x29, 0x5d, 0x9a, 0x21, 0xdc, 0xff, 0xb9, 0x76, 0xd6, 0x76, 0x4f, 0x37, 0xa2, 0xca, + 0x4d, 0xf6, 0xd4, 0xb8, 0x0b, 0xc2, 0x7b, 0xb1, 0x09, 0xc3, 0x97, 0x49, 0x2a, 0xd8, 0xeb, 0x1a, + 0x6a, 0x51, 0x90, 0xf2, 0xe0, 0xdb, 0x8d, 0x4b, 0xaf, 0x25, 0xdc, 0x75, 0x37, 0x52, 0xa1, 0x2f, + 0x30, 0xbe, 0x5c, 0xee, 0xc4, 0x53, 0x6b, 0x9d, 0x40, 0xec, 0x93, 0xa2, 0x15, 0x9a, 0xec, 0xb9, + 0xae, 0x03, 0x4c, 0xdb, 0x84, 0xee, 0x09, 0x54, 0x13, 0xa6, 0xb2, 0xe7, 0x31, 0xac, 0x52, 0x2a, + 0x14, 0x63, 0xf9, 0x12, 0x2f, 0xd2, 0xc7, 0x16, 0x83, 0x56, 0xcc, 0xf7, 0xc4, 0x47, 0x72, 0x18, + 0xaa, 0x8f, 0x27, 0x28, 0xbd, 0x39, 0x41, 0x6f, 0xc3, 0x9e, 0xb2, 0x07, 0x8c, 0xd5, 0xff, 0xdd, + 0x40, 0x0c, 0x1f, 0x31, 0x37, 0xd6, 0xd4, 0x3a, 0x33, 0xfc, 0xcb, 0xf4, 0x3f, 0xf9, 0xe4, 0xc8, + 0x4d, 0xc6, 0xb5, 0xe4, 0x25, 0x80, 0x88, 0x9e, 0x22, 0xe8, 0x49, 0xca, 0xd9, 0xf1, 0x10, 0x2f, + 0x11, 0x53, 0xe4, 0x90, 0x91, 0xa9, 0x05, 0xe1, 0x7e, 0x5b, 0xdf, 0xee, 0x31, 0x7e, 0x7a, 0xf0, + 0xd7, 0xd9, 0x48, 0x2c, 0x77, 0x1b, 0xe5, 0x97, 0x84, 0x7f, 0x43, 0xef, 0x03, 0xa9, 0x0b, 0x7c, + 0xaa, 0xb8, 0x55, 0x79, 0xcc, 0x02, 0x24, 0xa6, 0xac, 0xf5, 0x89, 0x25, 0x94, 0x16, 0x58, 0x54, + 0x52, 0x6d, 0xc5, 0x8f, 0xb6, 0x50, 0x0f, 0xba, 0xf8, 0x18, 0xe7, 0xae, 0xff, 0x06, 0xa6, 0x6a, + 0x8c, 0x79, 0x2f, 0x13, 0x7b, 0x2b, 0x95, 0x94, 0x31, 0x7d, 0x69, 0x3f, 0x01, 0xce, 0x2c, 0x7b, + 0x9f, 0xc9, 0xb5, 0x93, 0x10, 0x24, 0xb7, 0x9b, 0xe9, 0xc0, 0xe6, 0x01, 0x5f, 0xec, 0x51, 0xac, + 0x07, 0xa5, 0x42, 0x05, 0x00, 0x13, 0x77, 0xf3, 0x56, 0x85, 0x14, 0x88, 0x42, 0x0c, 0x3f, 0xa6, + 0x01, 0xed, 0x16, 0x72, 0xc6, 0x25, 0x26, 0x0c, 0x64, 0x87, 0xfa, 0x7e, 0x19, 0x88, 0xa6, 0xfc, + 0x0f, 0x87, 0x56, 0x3e, 0x00, 0x3b, 0x7f, 0xa5, 0x04, 0x59, 0xc1, 0x65, 0x2f, 0x08, 0xd4, 0xb4, + 0x27, 0x9d, 0x51, 0x00, 0x9a, 0x3a, 0x10, 0x71, 0xd3, 0x69, 0x3a, 0xc8, 0xe1, 0xcb, 0x84, 0xa3, + 0x90, 0x62, 0xe8, 0x1d, 0x50, 0xbc, 0xd7, 0xeb, 0xd3, 0xc6, 0xc9, 0xf6, 0x41, 0xf0, 0xcb, 0xe5, + 0xa6, 0x15, 0x10, 0x69, 0x39, 0xb2, 0x8c, 0x2d, 0xe6, 0x9a, 0xa9, 0x1e, 0x40, 0xce, 0xc9, 0xe8, + 0x16, 0xd2, 0x00, 0x3c, 0x46, 0xbd, 0x59, 0x77, 0xb4, 0x15, 0x55, 0x86, 0x46, 0xff, 0x2e, 0x96, + 0x6e, 0x63, 0xb7, 0x23, 0x47, 0x68, 0xcc, 0xf1, 0x83, 0x2b, 0x77, 0x6d, 0x93, 0x6e, 0xe2, 0x08, + 0x59, 0x87, 0xae, 0x03, 0xca, 0x6b, 0x81, 0x93, 0x04, 0xe5, 0xad, 0xcf, 0x05, 0x8f, 0x53, 0x4d, + 0x50, 0xce, 0xe7, 0x7a, 0x17, 0x4f, 0xa3, 0x33, 0xd4, 0x91, 0x55, 0xe4, 0xc6, 0x47, 0x47, 0x12, + 0x63, 0xb4, 0xee, 0xbb, 0x63, 0x8a, 0x0a, 0x94, 0x3c, 0x12, 0x54, 0x3c, 0x81, 0xee, 0xdd, 0x78, + 0xe2, 0x38, 0xb1, 0xf7, 0x62, 0x1d, 0x0d, 0x99, 0xb7, 0x5e, 0x98, 0x0e, 0xc4, 0xd9, 0x42, 0x3a, + 0x88, 0x2e, 0x1b, 0x28, 0xa2, 0xbf, 0x55, 0x97, 0x6c, 0xf1, 0xd8, 0x59, 0x91, 0x38, 0xe6, 0x21, + 0x81, 0xf8, 0xc4, 0x7d, 0x65, 0x96, 0x7b, 0xc8, 0xf8, 0x9a, 0xdb, 0x63, 0x28, 0x03, 0x2d, 0xca, + 0x54, 0x86, 0xd8, 0x01, 0xba, 0x61, 0x97, 0x18, 0x9f, 0x40, 0x83, 0xec, 0x72, 0x04, 0xe9, 0x81, + 0x19, 0xb9, 0x5c, 0xc5, 0x73, 0x4d, 0x43, 0xc2, 0x83, 0x83, 0x13, 0xe3, 0x8a, 0x7e, 0x39, 0x79, + 0x2c, 0x4d, 0x88, 0x86, 0x13, 0x5c, 0xe5, 0x38, 0x47, 0x96, 0x57, 0x4d, 0xfe, 0x01, 0x0d, 0x5c, + 0x72, 0xf1, 0xc1, 0x08, 0x4c, 0xd0, 0x8d, 0xb8, 0x5b, 0x63, 0xb7, 0x9a, 0x98, 0xd6, 0x12, 0xe9, + 0xe4, 0x78, 0xcd, 0xc3, 0x8a, 0x28, 0x49, 0xfb, 0x76, 0x8a, 0x1d, 0x43, 0xd7, 0xb5, 0xac, 0x32, + 0x06, 0x07, 0xae, 0x76, 0x68, 0x69, 0x94, 0xb2, 0x25, 0x19, 0x44, 0x66, 0x05, 0x51, 0x49, 0xb9, + 0xd0, 0x7f, 0x40, 0x0e, 0xdf, 0xc1, 0x3b, 0x00, 0x84, 0x6b, 0xa8, 0xdd, 0x69, 0xb4, 0x67, 0x9b, + 0xcc, 0x1b, 0x10, 0x14, 0x22, 0x1d, 0x18, 0x62, 0xe1, 0x06, 0x43, 0x59, 0x50, 0xd4, 0xe6, 0xd9, + 0x11, 0xb8, 0x09, 0x35, 0x22, 0x28, 0x6a, 0xd1, 0xbf, 0xab, 0x0f, 0x9b, 0xaa, 0x7a, 0x98, 0xb4, + 0x2d, 0x31, 0xcb, 0x24, 0x3a, 0x71, 0x89, 0xf9, 0x16, 0xf8, 0x5e, 0xf2, 0xa6, 0x00, 0xa8, 0x78, + 0xad, 0x7e, 0xf8, 0x7f, 0x1e, 0x74, 0x85, 0x35, 0x44, 0x42, 0xf9, 0xb6, 0x75, 0xc7, 0x29, 0xf8, + 0x3e, 0xd0, 0xe2, 0x89, 0x8a, 0xb6, 0x7c, 0x99, 0x04, 0xa2, 0x3d, 0x23, 0xdb, 0x12, 0x37, 0x36, + 0x2e, 0x3d, 0x93, 0xd7, 0x65, 0x2c, 0xdf, 0x57, 0x77, 0x57, 0x1e, 0x05, 0x48, 0x33, 0xe6, 0x8e, + 0xfe, 0x72, 0xc7, 0xee, 0x6a, 0x1f, 0x29, 0x7d, 0xb7, 0x22, 0x08, 0x44, 0xca, 0x7c, 0x94, 0x2e, + 0x8a, 0x67, 0x63, 0x37, 0xf0, 0xcb, 0x13, 0xfd, 0xd5, 0xd3, 0x9e, 0x42, 0x08, 0x30, 0xe9, 0xf7, + 0x0d, 0x1d, 0xe9, 0x4a, 0x2b, 0x98, 0x0a, 0x08, 0x9b, 0x0c, 0x9e, 0x40, 0xae, 0x74, 0x2d, 0x85, + 0xbb, 0xd7, 0x08, 0x33, 0x12, 0x9a, 0x30, 0xfd, 0x4c, 0x55, 0xca, 0xcd, 0x21, 0x24, 0x31, 0x0b, + 0x49, 0xa3, 0x6b, 0x3c, 0x6d, 0x4d, 0x6f, 0xaa, 0x5c, 0x86, 0xd3, 0x38, 0x4d, 0xb9, 0x94, 0xf8, + 0x30, 0x87, 0x46, 0x9a, 0x71, 0x1e, 0x57, 0x34, 0x52, 0xb9, 0x0c, 0xfe, 0x52, 0xc4, 0x40, 0xcc, + 0xfe, 0x5d, 0x2e, 0xdd, 0xda, 0x02, 0x84, 0x6b, 0xec, 0x81, 0x25, 0x2d, 0xa6, 0x0e, 0x82, 0x47, + 0xec, 0x3a, 0x35, 0x24, 0x07, 0xc0, 0x30, 0x12, 0x49, 0xc4, 0x64, 0x15, 0x3b, 0xb3, 0x56, 0xfd, + 0x66, 0xf6, 0x0b, 0xf6, 0x1f, 0xd9, 0xd4, 0x01, 0xa2, 0xb1, 0xcc, 0x7c, 0x9d, 0x95, 0x81, 0x73, + 0x94, 0x12, 0x5f, 0xd7, 0xde, 0x22, 0xd4, 0x69, 0x09, 0x27, 0xcd, 0xda, 0x13, 0x94, 0x9d, 0xa4, + 0x6d, 0x76, 0xe9, 0xd0, 0x26, 0x6e, 0xea, 0xa4, 0x9f, 0xde, 0xf1, 0xe6, 0x16, 0x76, 0x90, 0x4c, + 0x53, 0x94, 0x79, 0x7d, 0x10, 0xfa, 0x1d, 0x7e, 0x61, 0x31, 0x7d, 0x11, 0x8d, 0x8b, 0x8e, 0xa5, + 0x0a, 0x67, 0x29, 0x86, 0x94, 0xa8, 0xd5, 0xe9, 0x20, 0x3e, 0x26, 0x51, 0x31, 0xff, 0x88, 0x32, + 0x4f, 0x3d, 0x9c, 0x8b, 0xb1, 0x47, 0xea, 0xe8, 0x10, 0x73, 0x8d, 0x2a, 0x4f, 0x0d, 0x6e, 0x23, + 0x27, 0xea, 0x6c, 0xff, 0x81, 0xd3, 0x33, 0x42, 0x2f, 0xb0, 0xe3, 0xff, 0xb6, 0x3a, 0x00, 0xbf, + 0xa7, 0x84, 0x95, 0x94, 0x6a, 0xeb, 0x36, 0x4c, 0x08, 0x17, 0xa2, 0x1e, 0xb4, 0x5a, 0x9b, 0xc0, + 0xdb, 0xb2, 0x74, 0x0e, 0x10, 0xe7, 0x0e, 0xd3, 0xea, 0x0e, 0xce, 0x7e, 0x49, 0x4f, 0x8d, 0xe2, + 0xa7, 0xc7, 0x71, 0x1d, 0x4b, 0x50, 0xb2, 0x2e, 0x3f, 0x4a, 0x56, 0xdf, 0xb3, 0xb9, 0x6f, 0x02, + 0x03, 0xd9, 0x7a, 0x3c, 0x2a, 0x78, 0x0c, 0xec, 0x2d, 0x82, 0x48, 0xad, 0x48, 0xb3, 0x65, 0x8c, + 0x03, 0x0e, 0x4f, 0x3e, 0xa7, 0x71, 0xdf, 0x30, 0x14, 0xd6, 0x98, 0x83, 0x0d, 0x1d, 0xc7, 0xa9, + 0x72, 0xb1, 0x1d, 0xd4, 0xd9, 0xfd, 0x39, 0x6e, 0x02, 0xa0, 0x3e, 0x1e, 0x5c, 0x1b, 0x6e, 0x6b, + 0x60, 0x92, 0xd3, 0x3e, 0x56, 0x79, 0xe4, 0x9e, 0x80, 0xff, 0xd2, 0x24, 0xed, 0x72, 0x0c, 0xd3, + 0xc9, 0x2b, 0x33, 0x3e, 0x89, 0x4b, 0xc9, 0x4d, 0xd3, 0xcb, 0xe2, 0x57, 0x58, 0xda, 0x90, 0x5f, + 0x36, 0x13, 0xcb, 0x80, 0x27, 0x92, 0x40, 0xb3, 0x54, 0x4c, 0xe3, 0xb4, 0xb4, 0xb6, 0xb8, 0xa1, + 0xad, 0xf8, 0xea, 0xb8, 0xab, 0x0c, 0x0e, 0xc8, 0x42, 0x64, 0xed, 0x47, 0x81, 0x64, 0x0f, 0x60, + 0x90, 0xad, 0x1a, 0xb3, 0x6f, 0xe6, 0x31, 0xf9, 0x3a, 0x0a, 0xb0, 0x13, 0x62, 0x2a, 0xd6, 0xcd, + 0x72, 0x4a, 0x48, 0x9c, 0x60, 0x10, 0x86, 0x67, 0xc8, 0xe2, 0x65, 0x45, 0x91, 0x9e, 0xda, 0x1d, + 0x61, 0x63, 0x3d, 0x07, 0xfb, 0x9f, 0xb2, 0x69, 0x93, 0x32, 0x7b, 0x4b, 0x4c, 0x90, 0x9e, 0x98, + 0x49, 0x1e, 0xf8, 0x6b, 0x09, 0xa7, 0xc0, 0x66, 0x73, 0x8c, 0x4d, 0x1f, 0x93, 0x6f, 0x93, 0xfd, + 0x20, 0x30, 0xcf, 0xbd, 0x04, 0xfd, 0xd9, 0x02, 0xe0, 0xcd, 0x9f, 0x7c, 0x7f, 0xc6, 0x38, 0xca, + 0x0d, 0xe4, 0x49, 0x9a, 0x8e, 0x25, 0x9c, 0x8e, 0x28, 0xa6, 0x7d, 0x8c, 0xdf, 0xb6, 0x31, 0x36, + 0x32, 0x50, 0x65, 0x36, 0xfa, 0x97, 0x76, 0xf6, 0xf2, 0x15, 0x0c, 0xa2, 0xff, 0xe6, 0x87, 0x44, + 0x1c, 0xaf, 0xbf, 0x7a, 0x12, 0x8c, 0x47, 0x9f, 0xbe, 0x0f, 0xc4, 0xda, 0x6e, 0x77, 0x4d, 0xa5, + 0xda, 0x34, 0x6f, 0x32, 0xd6, 0x4f, 0xdb, 0x05, 0x50, 0x76, 0xf8, 0x9f, 0x64, 0x4d, 0x06, 0xdc, + 0x9c, 0xda, 0x61, 0xcd, 0xac, 0x52, 0xe7, 0x41, 0x60, 0x96, 0x34, 0xd6, 0x21, 0xa4, 0x1a, 0xac, + 0xec, 0x24, 0x8b, 0x0e, 0x96, 0xf1, 0x2b, 0x9b, 0x8e, 0x74, 0xc0, 0x01, 0x14, 0x89, 0x44, 0x7b, + 0xf9, 0x7f, 0x56, 0xfa, 0x41, 0x1f, 0xc2, 0x75, 0xf0, 0x9b, 0x66, 0x0c, 0x19, 0x10, 0xdb, 0xf8, + 0xe9, 0xcf, 0x74, 0x7c, 0xbe, 0x33, 0xc6, 0xae, 0x5d, 0xa2, 0xb4, 0xd6, 0x4f, 0x06, 0x24, 0xad, + 0x4c, 0x0a, 0xe6, 0x22, 0xdb, 0x95, 0x40, 0x73, 0xff, 0xd8, 0x28, 0x0b, 0x12, 0xa2, 0xf9, 0xeb, + 0x2d, 0x7a, 0xc5, 0x9f, 0xea, 0xa3, 0xa6, 0x1e, 0xfa, 0x1a, 0xa6, 0x85, 0x49, 0xfd, 0x36, 0xf4, + 0xd6, 0xee, 0x47, 0xbc, 0x5f, 0x5d, 0xc2, 0x62, 0x37, 0x02, 0xe1, 0xa0, 0xf9, 0x7e, 0x9c, 0x2f, + 0xf1, 0x14, 0x03, 0xd3, 0x1a, 0x8c, 0x11, 0x3f, 0xc7, 0xe2, 0xe7, 0x37, 0x11, 0xb2, 0x5e, 0x95, + 0x99, 0xa8, 0x9a, 0x91, 0x8a, 0xcc, 0x19, 0xa2, 0xec, 0x0d, 0xbc, 0xe1, 0xb6, 0xda, 0x8f, 0x71, + 0xaa, 0x0e, 0x59, 0x28, 0xce, 0x4a, 0xf6, 0xad, 0x67, 0x25, 0x5f, 0xf7, 0x6b, 0x32, 0xb8, 0xb5, + 0x24, 0x77, 0x54, 0x22, 0x41, 0x63, 0x15, 0x9b, 0x32, 0xcd, 0xe9, 0xe6, 0xd6, 0xb9, 0x7f, 0xb5, + 0x38, 0xfa, 0x50, 0x0b, 0x66, 0x45, 0x1b, 0x11, 0xda, 0xba, 0x45, 0xed, 0x2a, 0x49, 0xe6, 0x8e, + 0x86, 0x66, 0x89, 0x24, 0x5e, 0x5f, 0xe8, 0x83, 0x05, 0x43, 0xc8, 0xb9, 0x19, 0x74, 0xb7, 0xdb, + 0x36, 0x4e, 0x2d, 0x25, 0x68, 0xde, 0x5f, 0x85, 0x63, 0xa6, 0x79, 0xc5, 0x89, 0xbd, 0xea, 0xb5, + 0x3f, 0x7e, 0xf3, 0x41, 0x6a, 0xe1, 0x6a, 0xc3, 0x0c, 0x10, 0x87, 0xca, 0x67, 0x0b, 0x72, 0xf2, + 0x7b, 0x69, 0xeb, 0x07, 0xb2, 0x79, 0x63, 0xec, 0x95, 0xe4, 0x9c, 0xbe, 0x64, 0x19, 0x5c, 0x93, + 0x70, 0x19, 0x44, 0xa0, 0xf9, 0xad, 0x04, 0x17, 0x52, 0xaa, 0x0a, 0xa9, 0x53, 0x76, 0xe4, 0x1c, + 0xf3, 0x7a, 0x7f, 0x4e, 0x46, 0xd2, 0x17, 0x03, 0x5d, 0x4d, 0x62, 0x81, 0x33, 0x01, 0x7c, 0x45, + 0xe0, 0x9e, 0xdf, 0x91, 0xe4, 0x7c, 0x2c, 0x22, 0x1f, 0xa3, 0xfd, 0x9e, 0xd6, 0x71, 0x1c, 0x09, + 0x73, 0xb8, 0x01, 0x98, 0x03, 0x2a, 0xe1, 0xbf, 0x44, 0x80, 0xaa, 0x4e, 0x81, 0xbe, 0x17, 0xf7, + 0x93, 0xdb, 0xd7, 0x80, 0x68, 0x7a, 0x81, 0xa8, 0x8a, 0xb6, 0xcb, 0xdf, 0x40, 0x97, 0x07, 0x75, + 0xa7, 0xa6, 0xe7, 0x2b, 0x2d, 0xe1, 0x0f, 0x09, 0x19, 0x3f, 0x08, 0xc7, 0x7e, 0x86, 0xfe, 0x16, + 0x45, 0x54, 0xc8, 0x11, 0xc8, 0x0d, 0x24, 0xac, 0xd7, 0xe5, 0x2f, 0x86, 0x71, 0x93, 0x69, 0x47, + 0xa4, 0xd2, 0x85, 0xa2, 0x5a, 0x52, 0x4d, 0x60, 0x14, 0xf7, 0xd8, 0xcf, 0x39, 0x8e, 0x9e, 0x52, + 0x2b, 0x5d, 0x35, 0xb2, 0x53, 0x80, 0x4f, 0xf4, 0xf0, 0x6b, 0x55, 0x10, 0x83, 0x4a, 0x85, 0xc8, + 0x0a, 0x5e, 0x25, 0x30, 0x94, 0xc0, 0x24, 0x18, 0x76, 0x82, 0x99, 0xf9, 0x66, 0xa9, 0xca, 0xde, + 0xa2, 0x3c, 0x59, 0x28, 0x47, 0x1e, 0x4d, 0x1f, 0x74, 0xdc, 0xa2, 0x3f, 0x49, 0xdd, 0xea, 0x39, + 0xde, 0xbe, 0x57, 0x77, 0xb1, 0x8a, 0x98, 0xe1, 0x17, 0x00, 0x63, 0x3b, 0x7a, 0xf2, 0x8f, 0x57, + 0x24, 0xee, 0xac, 0x9a, 0x91, 0xd2, 0x19, 0xab, 0x58, 0x29, 0xda, 0x1d, 0x9c, 0x34, 0xe6, 0x08, + 0x28, 0x59, 0x43, 0x7d, 0x67, 0xb9, 0x6c, 0xc7, 0x9e, 0x6b, 0x3e, 0xc2, 0x44, 0x7e, 0xa9, 0xbb, + 0x86, 0xcd, 0x12, 0x3b, 0x63, 0xa0, 0x8f, 0x48, 0xd1, 0x03, 0x22, 0x01, 0x90, 0x1a, 0x6f, 0xe2, + 0x67, 0xbf, 0x07, 0x8c, 0xca, 0x00, 0x77, 0x2d, 0x00, 0x0b, 0xc0, 0x4a, 0xde, 0x64, 0xfd, 0x86, + 0xbe, 0xbb, 0xfd, 0x29, 0xa2, 0x04, 0x94, 0x5d, 0x85, 0x94, 0x05, 0x5d, 0x73, 0x96, 0xf8, 0x71, + 0xd6, 0x17, 0x9d, 0xf0, 0xde, 0x45, 0xc5, 0x4d, 0xfa, 0xf4, 0xa6, 0x31, 0x63, 0x87, 0xc4, 0x34, + 0x1c, 0x7f, 0x4c, 0x94, 0xea, 0x23, 0x2e, 0xbd, 0x24, 0x79, 0x12, 0xea, 0xf3, 0x03, 0xac, 0xd4, + 0xb5, 0x81, 0x5b, 0xb8, 0x5c, 0x25, 0x54, 0x12, 0xba, 0xff, 0xe6, 0x75, 0xe7, 0xb8, 0xdd, 0x4e, + 0x32, 0x2b, 0xb5, 0xed, 0x2a, 0xd1, 0xe3, 0xa5, 0xe8, 0xac, 0xb8, 0x63, 0xf3, 0x5b, 0x3e, 0x0a, + 0xec, 0x6f, 0x10, 0x63, 0x69, 0x3d, 0xb1, 0xf6, 0xc6, 0x78, 0xa7, 0x41, 0x81, 0x67, 0x12, 0x80, + 0x4f, 0xd4, 0x00, 0xfd, 0xa4, 0x71, 0x8d, 0xcd, 0xe5, 0x0c, 0xed, 0xe7, 0x96, 0xf7, 0x98, 0x57, + 0xba, 0x27, 0x3e, 0xae, 0x63, 0xdc, 0x8a, 0x68, 0x28, 0xe9, 0x73, 0x9d, 0x0b, 0x9f, 0x9b, 0x76, + 0x7f, 0xcb, 0x9a, 0xaa, 0x1b, 0xf9, 0x4d, 0x16, 0xc2, 0x04, 0x60, 0x5c, 0x15, 0x15, 0x48, 0x3a, + 0x8a, 0x1a, 0x78, 0xea, 0xb7, 0x72, 0x76, 0x64, 0x7f, 0x63, 0x48, 0xbd, 0xba, 0x19, 0x43, 0x83, + 0x8d, 0x8d, 0x21, 0x14, 0x9c, 0x6f, 0x8b, 0x37, 0xa3, 0x8b, 0x8c, 0x5d, 0x06, 0x2d, 0xf5, 0x8f, + 0xef, 0x91, 0x8c, 0x5f, 0x40, 0x3d, 0x12, 0x6a, 0xee, 0xfe, 0xeb, 0xc9, 0xe8, 0xe3, 0xc9, 0x87, + 0x4d, 0x2b, 0x0c, 0x79, 0xeb, 0x2d, 0x29, 0xfa, 0xe3, 0x3b, 0x7b, 0xbc, 0x15, 0xc8, 0xac, 0xcc, + 0x76, 0x7f, 0x61, 0x36, 0xa9, 0xb6, 0x7d, 0xc2, 0x2c, 0x02, 0xd4, 0x7c, 0x54, 0x98, 0x33, 0x61, + 0x5a, 0x51, 0xd4, 0x50, 0xb2, 0xfb, 0x9a, 0xae, 0x28, 0xee, 0x5d, 0x6c, 0x21, 0x56, 0x52, 0x65, + 0x68, 0x50, 0x71, 0x8e, 0x52, 0x15, 0xfc, 0x8c, 0x7c, 0x37, 0x70, 0x5f, 0xa4, 0xf0, 0xb8, 0x5d, + 0xd9, 0x99, 0x38, 0xb6, 0xe3, 0x00, 0x24, 0xae, 0xec, 0x39, 0x40, 0x39, 0xde, 0x58, 0x1a, 0x6e, + 0x5b, 0xb8, 0x30, 0x59, 0xaf, 0x05, 0x0a, 0xc8, 0x3d, 0x16, 0xd7, 0xea, 0x57, 0xcd, 0xba, 0x7d, + 0x2b, 0x2f, 0x5a, 0x67, 0x70, 0xe3, 0x07, 0x87, 0x4c, 0x65, 0x74, 0x26, 0xd8, 0xcf, 0x6c, 0xac, + 0x7e, 0xfc, 0x2e, 0xe2, 0x76, 0xaf, 0x5f, 0x2b, 0x31, 0x6d, 0x93, 0xa9, 0x73, 0x9b, 0x12, 0xfb, + 0xab, 0xf9, 0xbb, 0x6c, 0x00, 0x3d, 0xed, 0x55, 0xfd, 0x03, 0x80, 0x6d, 0xb4, 0xee, 0xc8, 0xc0, + 0x4e, 0xb8, 0x85, 0xed, 0xde, 0x2d, 0xfa, 0x70, 0x4a, 0x47, 0x19, 0x37, 0x77, 0x96, 0x4f, 0x19, + 0xb2, 0xd9, 0xe2, 0xd6, 0xb9, 0xf2, 0xe7, 0x90, 0xf2, 0xb7, 0xfb, 0x59, 0x05, 0x13, 0x12, 0x4e, + 0x57, 0x5c, 0x94, 0xd4, 0x33, 0x17, 0xdb, 0x6b, 0xf3, 0x17, 0x79, 0xbe, 0xeb, 0x0f, 0x74, 0x0c, + 0x04, 0x7d, 0x2e, 0x2b, 0x2e, 0x33, 0x07, 0xcf, 0xe7, 0x3c, 0x37, 0x3e, 0xe5, 0x52, 0x8d, 0x9b, + 0x4a, 0xc5, 0x4b, 0x1e, 0xdd, 0x31, 0x01, 0x47, 0xc0, 0x8d, 0x5d, 0x70, 0xfa, 0x7d, 0xfc, 0x4e, + 0x2b, 0x94, 0x7f, 0x97, 0x69, 0xad, 0xce, 0xad, 0x51, 0x3e, 0xca, 0x2a, 0x6e, 0x72, 0x46, 0xa5, + 0x01, 0xa0, 0xac, 0x4f, 0x1d, 0x65, 0xd6, 0x86, 0x1e, 0xe9, 0x9d, 0xec, 0xed, 0x66, 0x02, 0x96, + 0x4f, 0x0b, 0xea, 0xd0, 0x28, 0x7f, 0x58, 0xd5, 0x27, 0x8d, 0x5e, 0x85, 0x73, 0x33, 0xfd, 0xf5, + 0x25, 0x0f, 0x28, 0x11, 0x76, 0x09, 0x46, 0x57, 0x80, 0x64, 0xe2, 0x8a, 0xbd, 0xa1, 0xdd, 0xf3, + 0x65, 0x14, 0x7a, 0xc2, 0xfe, 0xde, 0xdc, 0x21, 0xa9, 0x93, 0xe8, 0xa5, 0x33, 0x62, 0x68, 0xeb, + 0x77, 0x3a, 0xba, 0xe6, 0x40, 0x8c, 0x22, 0xc3, 0xc2, 0x3f, 0x80, 0x5f, 0x0b, 0xbb, 0xac, 0x37, + 0x27, 0x3b, 0xab, 0xca, 0xf8, 0x24, 0x5d, 0x35, 0x8b, 0x72, 0x45, 0xd0, 0xff, 0x1f, 0x6a, 0x16, + 0xd8, 0xc8, 0x54, 0x5f, 0x13, 0x3d, 0xe7, 0x31, 0xa0, 0xdd, 0xc6, 0xf7, 0x66, 0xdf, 0x1e, 0xbd, + 0x34, 0x6c, 0x57, 0x59, 0x99, 0x45, 0x65, 0xc6, 0xa0, 0x62, 0x80, 0x77, 0x91, 0x49, 0xce, 0xa0, + 0x76, 0x6b, 0x11, 0xd8, 0x97, 0xca, 0xd3, 0x62, 0x2e, 0x55, 0xfd, 0xfe, 0xff, 0x83, 0x26, 0x1b, + 0x7c, 0x71, 0x1b, 0xab, 0xd1, 0xb6, 0x9c, 0x34, 0x37, 0xf2, 0xb2, 0xf0, 0x08, 0x8c, 0x12, 0x79, + 0x48, 0x66, 0x17, 0x42, 0xc1, 0x8d, 0x8d, 0x79, 0xd1, 0x9f, 0xc3, 0xee, 0xb0, 0xab, 0x9b, 0x0e, + 0x55, 0x3e, 0xd4, 0x2d, 0xf7, 0x54, 0x41, 0x28, 0x27, 0x39, 0x87, 0xf5, 0xe6, 0xb4, 0x7e, 0x25, + 0xd4, 0x71, 0x85, 0x67, 0xeb, 0xf4, 0x39, 0xbe, 0xb0, 0xfd, 0x41, 0xb6, 0x5f, 0xd7, 0x68, 0x85, + 0x30, 0xa4, 0xe2, 0x42, 0x96, 0x7e, 0xec, 0xbb, 0x16, 0x0f, 0xd8, 0x41, 0xe3, 0x7d, 0x0b, 0x87, + 0x39, 0x3d, 0xe4, 0x7c, 0x7f, 0xa3, 0x0d, 0xd1, 0xe5, 0x91, 0x26, 0x65, 0x8b, 0x4a, 0xdf, 0x06, + 0xf9, 0x34, 0x66, 0xbe, 0x4c, 0x9c, 0x0c, 0xb3, 0x4c, 0xe2, 0xf0, 0x0b, 0x98, 0x0e, 0xf6, 0xc7, + 0x8b, 0x28, 0x45, 0x7f, 0x9a, 0xb1, 0x4d, 0x9b, 0x42, 0xec, 0x6e, 0x8e, 0xe8, 0xca, 0x66, 0x84, + 0x4d, 0x7a, 0x67, 0xcb, 0xda, 0xd6, 0x85, 0xe3, 0xdb, 0xbe, 0xc0, 0x5b, 0x7b, 0x52, 0xd1, 0x69, + 0xa1, 0xd1, 0xf1, 0x98, 0x4d, 0xf8, 0x99, 0xd5, 0xf0, 0x09, 0x43, 0x1f, 0x46, 0xec, 0x1c, 0xa0, + 0x7e, 0x87, 0x72, 0xd7, 0xa3, 0x23, 0xa8, 0xc2, 0x32, 0x8c, 0xf2, 0x9a, 0xc2, 0xc9, 0x51, 0xc4, + 0xc3, 0x37, 0xf6, 0x3f, 0xeb, 0x25, 0x04, 0x0b, 0xaf, 0x9c, 0xbf, 0xbe, 0x0b, 0x5d, 0x02, 0x54, + 0x69, 0x9a, 0xa3, 0xe0, 0xa7, 0x6e, 0xd3, 0x55, 0x13, 0x1e, 0x91, 0xc5, 0x19, 0x15, 0xba, 0xb9, + 0x85, 0x55, 0x39, 0xc7, 0x01, 0xed, 0x69, 0x36, 0xd6, 0x82, 0xe6, 0x10, 0x45, 0xc3, 0xe7, 0x36, + 0xe4, 0x0c, 0x67, 0x2d, 0xd7, 0x73, 0x91, 0xa1, 0xca, 0xfb, 0xb3, 0x51, 0xff, 0x55, 0x5e, 0xe2, + 0x71, 0x31, 0x59, 0x9d, 0x04, 0x66, 0x14, 0xcc, 0xd2, 0x74, 0xa8, 0x7d, 0xb7, 0xdc, 0x6c, 0x5a, + 0x3f, 0x85, 0x53, 0xf2, 0x45, 0x3d, 0x85, 0xb9, 0xfb, 0x37, 0x8d, 0xfc, 0x6d, 0x85, 0x44, 0x3d, + 0xcb, 0xcd, 0x20, 0x15, 0x8d, 0x42, 0x57, 0xc1, 0x07, 0x3c, 0x85, 0x21, 0x02, 0x0c, 0xa5, 0xfc, + 0xb3, 0x32, 0x82, 0x22, 0x70, 0x7a, 0x4b, 0x34, 0xda, 0x1e, 0x7c, 0xd5, 0xa9, 0xa2, 0xe4, 0x27, + 0x16, 0xa6, 0x39, 0x33, 0x57, 0x9d, 0x1a, 0x2b, 0xe7, 0x9e, 0x2c, 0x14, 0xb4, 0x0f, 0xa5, 0x3c, + 0x21, 0x82, 0xa8, 0x55, 0x43, 0xf7, 0xed, 0x86, 0x4d, 0x36, 0x66, 0x78, 0xb1, 0x8e, 0x40, 0xdf, + 0xcf, 0x25, 0x1d, 0x37, 0x77, 0x9c, 0x91, 0xe1, 0xf4, 0xd3, 0x02, 0x64, 0x33, 0xb1, 0x03, 0xd0, + 0xfc, 0xac, 0x93, 0x12, 0x58, 0x47, 0xd7, 0x5c, 0x92, 0x59, 0x82, 0xff, 0x76, 0x7f, 0x12, 0xe6, + 0x65, 0xed, 0x77, 0x20, 0x5d, 0x0b, 0x83, 0x6f, 0x78, 0x71, 0xc9, 0x00, 0x18, 0xea, 0x1e, 0x23, + 0x76, 0x86, 0x1c, 0x02, 0xd5, 0x9d, 0x70, 0xf8, 0x7c, 0x65, 0x67, 0xb0, 0xb2, 0xab, 0xee, 0x47, + 0x50, 0xda, 0xb2, 0x75, 0x8c, 0xd3, 0x8e, 0xe0, 0x31, 0x13, 0x21, 0xa7, 0x29, 0xdf, 0x76, 0xd8, + 0xa4, 0x6d, 0x9e, 0x3d, 0x06, 0xf8, 0x2b, 0x2a, 0xde, 0x78, 0xcf, 0xde, 0x9c, 0x8b, 0x63, 0xe1, + 0xd7, 0x59, 0x5a, 0x34, 0x75, 0x62, 0x2f, 0xc1, 0x26, 0x78, 0x35, 0xbb, 0x0a, 0x2e, 0x98, 0xd4, + 0x70, 0xdf, 0x56, 0x79, 0x5a, 0x8b, 0x33, 0xff, 0xd7, 0x13, 0xc4, 0xb7, 0x38, 0xe6, 0xca, 0x2c, + 0x9e, 0x96, 0x06, 0xf2, 0xa0, 0x0f, 0xb5, 0xb8, 0xf6, 0xbb, 0x7c, 0x30, 0x3d, 0xf8, 0x17, 0xc0, + 0xe6, 0x1b, 0xea, 0xfb, 0x52, 0x25, 0x24, 0x60, 0xb4, 0x01, 0x0e, 0x84, 0xa2, 0xc2, 0xf9, 0x32, + 0x17, 0x18, 0x58, 0xc1, 0xb7, 0xfd, 0x1e, 0xa6, 0xb6, 0x94, 0x9d, 0x70, 0xbd, 0x95, 0x6a, 0x75, + 0x2c, 0x09, 0xd1, 0x12, 0x83, 0x6b, 0x17, 0x23, 0x5d, 0xef, 0x87, 0x63, 0xe9, 0x42, 0xe0, 0xc3, + 0xef, 0x5a, 0xc8, 0xe0, 0x2c, 0x76, 0x71, 0xc4, 0x99, 0x46, 0x12, 0x03, 0x14, 0x33, 0xe6, 0x86, + 0x10, 0xaa, 0x4f, 0x4b, 0x02, 0x5f, 0xbb, 0xf3, 0x9c, 0xfc, 0xba, 0x65, 0x39, 0xe6, 0x3b, 0xc1, + 0xb3, 0x6a, 0x77, 0x6d, 0x02, 0x3f, 0xa5, 0xbc, 0x5b, 0xf5, 0x34, 0x73, 0x28, 0x96, 0xcf, 0x1a, + 0x56, 0x9a, 0x89, 0x43, 0x5a, 0xd4, 0x49, 0x82, 0x93, 0xaf, 0x92, 0x3e, 0x47, 0xd4, 0x6c, 0x6f, + 0x18, 0xe7, 0x39, 0x69, 0x71, 0x46, 0xff, 0xe2, 0xef, 0x0d, 0xf3, 0x5f, 0x83, 0xa1, 0x99, 0x1b, + 0xaf, 0x2f, 0xd0, 0x98, 0x3f, 0x72, 0xd0, 0x96, 0xd1, 0x36, 0xc2, 0x5c, 0xc2, 0x71, 0xf8, 0xc5, + 0x5d, 0x8c, 0x54, 0xc9, 0x3b, 0x5d, 0x9d, 0x94, 0x90, 0xf8, 0x89, 0x09, 0x4b, 0x37, 0xa3, 0x77, + 0x66, 0x85, 0xc2, 0x05, 0x6d, 0x46, 0x8a, 0x84, 0x04, 0x40, 0x26, 0xe7, 0xaa, 0x33, 0x41, 0xd9, + 0xeb, 0x4e, 0xf5, 0x39, 0x65, 0xb4, 0x73, 0x89, 0x17, 0x49, 0x22, 0x0e, 0x7c, 0xa9, 0xd6, 0x79, + 0xe9, 0xf2, 0xc7, 0xfe, 0x30, 0x37, 0xbd, 0x3a, 0x87, 0xfe, 0xb7, 0x30, 0xe3, 0x1b, 0xf3, 0xe2, + 0x7f, 0x10, 0xa9, 0x13, 0x7a, 0x06, 0xa3, 0xb1, 0x23, 0x06, 0xe3, 0xab, 0x63, 0x97, 0x98, 0xfa, + 0xe8, 0xeb, 0xd4, 0xe5, 0xae, 0x1e, 0x27, 0xe9, 0x5f, 0xa5, 0xbd, 0x04, 0x15, 0x29, 0x40, 0xeb, + 0x94, 0x9d, 0x71, 0x40, 0x71, 0x01, 0x0c, 0x3d, 0x96, 0xc8, 0x60, 0x9b, 0x4d, 0x97, 0xdf, 0xe5, + 0x37, 0xd2, 0x74, 0xaa, 0x45, 0xf8, 0x98, 0x5c, 0xd6, 0xee, 0xbb, 0xd7, 0xab, 0xe2, 0x80, 0x9a, + 0x99, 0x67, 0xb7, 0x8d, 0x46, 0x9a, 0x6a, 0x77, 0x8b, 0xbc, 0x69, 0xe7, 0xc1, 0xc8, 0x8c, 0x26, + 0x42, 0xdb, 0x42, 0x11, 0x43, 0x90, 0xf4, 0x48, 0x3a, 0x35, 0xdb, 0x04, 0xe1, 0x6b, 0x62, 0x47, + 0x10, 0x2a, 0x40, 0xd8, 0xe5, 0xf9, 0x3f, 0xe0, 0x92, 0xe8, 0x2f, 0x75, 0x6e, 0x4b, 0x30, 0xb5, + 0x1c, 0x97, 0x99, 0x17, 0x59, 0xb5, 0x8b, 0xc5, 0xa1, 0x42, 0x4e, 0xe0, 0xe4, 0x9c, 0x69, 0x98, + 0xbb, 0x75, 0x76, 0x70, 0xeb, 0x36, 0xde, 0xe4, 0xa4, 0xd4, 0xad, 0x77, 0x2e, 0xb2, 0xa7, 0xaf, + 0x0a, 0xe3, 0x7d, 0x22, 0x13, 0xf1, 0xe2, 0xc7, 0x03, 0xe6, 0x1c, 0x6d, 0x41, 0x00, 0x5e, 0x4b, + 0xa8, 0x2e, 0xf7, 0x9b, 0x88, 0x61, 0x7e, 0x46, 0x75, 0xa3, 0x6b, 0xed, 0x2b, 0x21, 0xb8, 0x90, + 0xd8, 0xc0, 0xad, 0x38, 0xea, 0xf9, 0x7f, 0xfa, 0x6f, 0x2e, 0x41, 0x31, 0xb1, 0x3c, 0x97, 0x3f, + 0x09, 0x70, 0xc3, 0xe8, 0xcf, 0xed, 0xf4, 0x1f, 0x02, 0x77, 0x1a, 0x5d, 0x75, 0x0b, 0xd8, 0x7a, + 0x18, 0x5b, 0x30, 0x5f, 0x2c, 0x52, 0xc7, 0x4c, 0x89, 0x1c, 0x2f, 0x72, 0x61, 0x5b, 0xad, 0xb2, + 0xdf, 0x72, 0xe8, 0xd1, 0xdd, 0x12, 0x1f, 0xdb, 0x07, 0x07, 0x52, 0xfc, 0x55, 0xcb, 0x5c, 0xc2, + 0x19, 0x47, 0xe6, 0x66, 0x13, 0x03, 0x31, 0x21, 0x53, 0x00, 0xc3, 0xcd, 0xeb, 0xc1, 0xc2, 0x2e, + 0xa1, 0x38, 0x27, 0xe7, 0x76, 0xe8, 0xed, 0x71, 0x69, 0xac, 0x50, 0xee, 0xe1, 0xd8, 0x51, 0x42, + 0xd2, 0x96, 0xb2, 0x55, 0xe1, 0x3d, 0xd4, 0x57, 0x1d, 0xc6, 0x18, 0x97, 0x9a, 0x31, 0x3f, 0x00, + 0x0b, 0x91, 0x85, 0xfd, 0x7c, 0x97, 0xa3, 0x16, 0x77, 0x23, 0x66, 0xec, 0x57, 0x34, 0x7e, 0x66, + 0xaa, 0xac, 0x41, 0x1d, 0x26, 0x21, 0xac, 0xbf, 0x9e, 0xe9, 0x59, 0x01, 0x88, 0x8a, 0x9a, 0x50, + 0x70, 0x82, 0x0f, 0x95, 0xcb, 0xe3, 0xad, 0xf0, 0xef, 0x67, 0x9b, 0xf9, 0xa9, 0x0a, 0x36, 0xae, + 0x81, 0xe0, 0x39, 0x3a, 0xc3, 0x98, 0xd3, 0x81, 0xe0, 0x9e, 0xc6, 0x26, 0x19, 0x0c, 0x19, 0x80, + 0x21, 0xd4, 0x85, 0xf1, 0x42, 0x5f, 0xc7, 0xef, 0xe4, 0x78, 0x04, 0x07, 0xc2, 0x07, 0xfd, 0x41, + 0xd4, 0x32, 0xcc, 0xdb, 0x0c, 0xb5, 0xb8, 0x72, 0x8c, 0xde, 0x90, 0xa0, 0xda, 0xe4, 0x72, 0xc9, + 0x80, 0x87, 0x58, 0x16, 0x34, 0xd4, 0x16, 0xf2, 0x2e, 0x9f, 0x44, 0xb1, 0x92, 0x2e, 0xe8, 0x22, + 0x14, 0x02, 0xe2, 0x5f, 0x55, 0x74, 0xca, 0xed, 0xc3, 0x97, 0xb7, 0xfc, 0x97, 0xc2, 0x34, 0x7f, + 0x18, 0xb8, 0x43, 0x8d, 0xb9, 0x88, 0x37, 0x9a, 0x1e, 0xbe, 0xff, 0xa2, 0x9a, 0x8c, 0x69, 0x7c, + 0x63, 0xf6, 0x51, 0x25, 0xde, 0x14, 0x66, 0x7c, 0xb8, 0x40, 0x65, 0x1c, 0x21, 0x24, 0xf0, 0x93, + 0x19, 0xa6, 0x85, 0xd8, 0x4d, 0x38, 0x15, 0xa4, 0x90, 0x54, 0x52, 0xe9, 0xd4, 0xf2, 0xdf, 0xa5, + 0xc1, 0x5e, 0xc9, 0xdb, 0xa6, 0x22, 0x0f, 0x70, 0x83, 0xf7, 0x17, 0x55, 0x26, 0xb0, 0x89, 0x5e, + 0x75, 0xf7, 0x99, 0xe7, 0x60, 0x28, 0xaa, 0xd4, 0x3a, 0x6a, 0x00, 0x40, 0x26, 0x1f, 0x0a, 0xc2, + 0x7c, 0x0f, 0x68, 0xeb, 0xf0, 0xa0, 0xde, 0x8b, 0xbc, 0x68, 0x7b, 0xdb, 0xc6, 0x96, 0xa3, 0xe1, + 0xfe, 0x80, 0xc5, 0x1d, 0x96, 0x99, 0xbc, 0x1e, 0x70, 0xbd, 0x27, 0xfb, 0xb3, 0x9e, 0x54, 0xda, + 0xab, 0x9f, 0x2d, 0x2c, 0x0e, 0x11, 0x4f, 0xcf, 0x55, 0x11, 0x5e, 0xb6, 0x01, 0xa5, 0x94, 0xd5, + 0x94, 0x0c, 0xbd, 0x94, 0x43, 0x84, 0x67, 0xfa, 0x27, 0x7d, 0x40, 0x36, 0x70, 0xba, 0x8b, 0xb2, + 0xa0, 0xc1, 0xff, 0x64, 0x06, 0xd6, 0xc8, 0xbd, 0x89, 0x0b, 0xfa, 0x6f, 0x7e, 0x5b, 0xc5, 0x2e, + 0x3f, 0xdc, 0x96, 0x29, 0xdc, 0xa4, 0x97, 0x73, 0x95, 0x76, 0x05, 0x6e, 0x0a, 0xcb, 0x04, 0x2a, + 0xca, 0x2a, 0xae, 0xc1, 0x0a, 0x52, 0x06, 0x70, 0xa8, 0x69, 0x66, 0x3e, 0xab, 0xa0, 0xfa, 0x47, + 0x1b, 0xad, 0x4f, 0xd2, 0x63, 0x1c, 0xa4, 0x60, 0xba, 0x19, 0x8a, 0xfe, 0x3e, 0xf5, 0x3a, 0xc4, + 0xa0, 0x9f, 0x84, 0x71, 0x25, 0xf9, 0x53, 0x17, 0xbc, 0x26, 0x51, 0x4d, 0xd2, 0x49, 0x5d, 0xf6, + 0x3d, 0x7f, 0x1e, 0xab, 0x9e, 0xb2, 0x2c, 0x89, 0xb2, 0x00, 0xfa, 0xd6, 0x29, 0x68, 0x00, 0xee, + 0x17, 0x49, 0xc2, 0xf9, 0xd2, 0xfe, 0x4e, 0xda, 0x86, 0xcd, 0x04, 0x4a, 0x81, 0x1c, 0x16, 0x14, + 0xa4, 0x19, 0x1c, 0xd6, 0x9f, 0xa1, 0x31, 0x2d, 0x3c, 0x80, 0x51, 0xf5, 0xf4, 0x71, 0xa1, 0xb0, + 0x9b, 0x9b, 0x07, 0x48, 0x87, 0x32, 0xbd, 0x15, 0x5b, 0x84, 0x84, 0x10, 0x89, 0xbb, 0xb1, 0x24, + 0x62, 0x2d, 0xaf, 0x29, 0xd7, 0xbb, 0x88, 0x30, 0x09, 0xc8, 0x55, 0x17, 0x2d, 0xd1, 0xf4, 0x96, + 0xa7, 0x7b, 0x7d, 0x44, 0x6c, 0x54, 0xc4, 0xfc, 0x1c, 0x21, 0xd0, 0x3d, 0xc7, 0x76, 0x16, 0x03, + 0x17, 0x5d, 0x99, 0x03, 0x37, 0x32, 0x68, 0x30, 0x88, 0x62, 0xc1, 0xf6, 0x54, 0xf8, 0x73, 0x4a, + 0x2a, 0x69, 0x6c, 0x29, 0x0e, 0x2b, 0xf3, 0x6c, 0x34, 0x0b, 0xf9, 0x50, 0xd1, 0xf2, 0x29, 0xa0, + 0x55, 0x78, 0xc9, 0x33, 0xe1, 0x2e, 0xca, 0xcc, 0xd0, 0xfe, 0xbc, 0xa6, 0xa5, 0x9a, 0xc5, 0x82, + 0xce, 0x5c, 0xf3, 0x09, 0x2a, 0xef, 0xfe, 0xfb, 0xab, 0x61, 0x5a, 0xb6, 0xb2, 0x28, 0x1a, 0x63, + 0x64, 0x53, 0x09, 0xd2, 0xd8, 0xa7, 0xde, 0x01, 0x13, 0xd6, 0x43, 0x79, 0x92, 0x41, 0x9e, 0x4a, + 0x60, 0x12, 0x8d, 0xd1, 0x1d, 0x70, 0x32, 0xa5, 0x9c, 0x4b, 0x3c, 0xa5, 0x5a, 0x7f, 0x9e, 0x14, + 0x4a, 0xf6, 0xb6, 0x91, 0x1a, 0xf6, 0xfd, 0x53, 0x82, 0xbb, 0x02, 0x07, 0x2d, 0x9a, 0x6c, 0x62, + 0x98, 0x99, 0x68, 0x27, 0x16, 0x78, 0xb0, 0xf4, 0x9b, 0xc1, 0xea, 0x41, 0xa3, 0x76, 0x85, 0x3f, + 0x23, 0xb3, 0x35, 0x98, 0x98, 0x5e, 0x40, 0xa9, 0x8f, 0xa5, 0x08, 0x90, 0xaf, 0xf7, 0xaa, 0xbb, + 0xa9, 0x7e, 0x84, 0xf3, 0xdc, 0x3c, 0xcd, 0x16, 0x6c, 0x02, 0x88, 0xef, 0x17, 0x20, 0xa4, 0xed, + 0xf5, 0xeb, 0xd5, 0xab, 0x75, 0xde, 0x47, 0xae, 0x21, 0x74, 0xed, 0x25, 0xb6, 0x1a, 0xb0, 0x7d, + 0x99, 0x04, 0xdf, 0x96, 0x84, 0x27, 0x27, 0x46, 0x5f, 0x43, 0xa4, 0xd3, 0x0d, 0xe5, 0x88, 0xdb, + 0x43, 0xda, 0x97, 0xb3, 0x2e, 0xec, 0x4e, 0xc5, 0x7b, 0x89, 0x11, 0x82, 0x11, 0xe9, 0xfd, 0xe7, + 0x25, 0xa4, 0x24, 0x40, 0xa5, 0x03, 0x61, 0x94, 0x49, 0x51, 0xfc, 0xc7, 0x08, 0xb7, 0xea, 0x66, + 0x91, 0xde, 0x2c, 0x44, 0x94, 0x20, 0x66, 0xc6, 0xec, 0x87, 0x81, 0x85, 0x44, 0xb2, 0x5f, 0x57, + 0xe2, 0x16, 0x23, 0x13, 0x99, 0x5d, 0x0b, 0x9a, 0x1a, 0xeb, 0x9b, 0xac, 0x69, 0x7a, 0x0e, 0x1c, + 0x0a, 0x94, 0xa5, 0xbd, 0x47, 0x9a, 0xa4, 0x08, 0xfc, 0xda, 0xd9, 0x04, 0x34, 0xbd, 0x8b, 0x5f, + 0x58, 0x2c, 0xf6, 0xee, 0xc0, 0x62, 0x8b, 0xdf, 0xc4, 0xb8, 0x6a, 0xb8, 0xcf, 0x2d, 0x1b, 0xa5, + 0x58, 0x1b, 0x35, 0x82, 0xf0, 0x58, 0x7a, 0x0e, 0xb4, 0x0f, 0xc7, 0x9a, 0x22, 0x04, 0xf7, 0xdd, + 0x19, 0x56, 0xf2, 0xcc, 0xf9, 0x74, 0x4e, 0xea, 0xfc, 0x53, 0x11, 0x20, 0x5f, 0x88, 0xc8, 0x5d, + 0x21, 0xa3, 0xc7, 0x1e, 0x74, 0x04, 0xab, 0x12, 0xfe, 0x5e, 0x3a, 0x6d, 0x88, 0x31, 0x5f, 0xe4, + 0xba, 0xb5, 0x37, 0x4f, 0x68, 0xe1, 0x8b, 0x87, 0x5d, 0xf3, 0xb1, 0x6c, 0x18, 0xf9, 0x95, 0x45, + 0x01, 0x2c, 0x09, 0x09, 0xa9, 0x7d, 0x98, 0x80, 0x4b, 0x4e, 0xe5, 0x64, 0xd9, 0x51, 0xe0, 0x70, + 0x16, 0xc7, 0x07, 0xe2, 0x66, 0xad, 0x00, 0x76, 0x89, 0x62, 0x3c, 0x30, 0x94, 0xe1, 0x49, 0x64, + 0xf8, 0x89, 0xc0, 0x2a, 0xf8, 0x07, 0x1b, 0x02, 0xc8, 0x34, 0x47, 0x6a, 0xec, 0xa2, 0x44, 0x54, + 0xfa, 0x47, 0x01, 0xae, 0x16, 0x33, 0x24, 0x74, 0xfc, 0x05, 0xb4, 0xcb, 0x21, 0xbf, 0xab, 0x13, + 0xbf, 0xfe, 0x31, 0xd0, 0x43, 0x5a, 0x7f, 0x5b, 0x56, 0xc7, 0xa7, 0xc2, 0x2c, 0x5b, 0xda, 0x22, + 0xbc, 0x40, 0x51, 0xa5, 0x27, 0x50, 0xdd, 0x32, 0x87, 0x7c, 0xe9, 0x5a, 0xa7, 0x2d, 0xbf, 0x3d, + 0xc3, 0x14, 0x02, 0xab, 0xf4, 0x36, 0x20, 0x7d, 0xfd, 0x38, 0x2c, 0x07, 0x88, 0xec, 0xb0, 0x31, + 0xab, 0x8e, 0xc1, 0xa4, 0xe1, 0x41, 0x43, 0x7b, 0x5c, 0xa6, 0x55, 0xf4, 0x0c, 0x32, 0x08, 0x43, + 0x0d, 0x7d, 0x6e, 0x02, 0x44, 0x2c, 0x21, 0xe5, 0x13, 0xfc, 0x92, 0x05, 0x13, 0x24, 0xd5, 0xe1, + 0xa9, 0x89, 0x2a, 0x33, 0x2d, 0x8b, 0x88, 0xe5, 0xdb, 0x92, 0xbf, 0xf1, 0x73, 0xe3, 0x67, 0x8c, + 0x08, 0xd9, 0xe5, 0x21, 0x4b, 0x09, 0x3c, 0xbe, 0x59, 0x9e, 0x8f, 0x34, 0x61, 0xaa, 0x33, 0x9a, + 0x5b, 0x1b, 0xf9, 0xa9, 0xc0, 0xbf, 0xc0, 0x00, 0x76, 0x6a, 0xea, 0xa7, 0xc4, 0xd0, 0x4a, 0xb9, + 0x4e, 0x20, 0xe0, 0x8d, 0x01, 0x2b, 0x75, 0x6c, 0x96, 0x19, 0xcc, 0x99, 0xcb, 0x75, 0x02, 0xcf, + 0xe4, 0x8f, 0x0b, 0xe8, 0x8a, 0x71, 0xde, 0x34, 0x15, 0x87, 0x33, 0x24, 0x68, 0xeb, 0x75, 0x4d, + 0x4f, 0x5a, 0x36, 0xae, 0x15, 0x8d, 0x44, 0x63, 0x34, 0xe7, 0x5d, 0x24, 0x57, 0x9e, 0xc0, 0xd2, + 0x57, 0xb9, 0x09, 0x0f, 0xc8, 0xa6, 0x62, 0xc7, 0xad, 0x7e, 0xe5, 0x04, 0x51, 0x23, 0x3a, 0xf9, + 0x84, 0x76, 0xb4, 0x07, 0x72, 0xd3, 0xa9, 0x2d, 0xc9, 0x0a, 0x32, 0xdd, 0xb5, 0x5d, 0x44, 0x09, + 0x87, 0x56, 0xb5, 0xd2, 0x94, 0x0f, 0x24, 0x79, 0xe1, 0x1b, 0xe0, 0xf6, 0x55, 0x93, 0x6e, 0x2c, + 0xdc, 0xd3, 0xc7, 0xf5, 0x22, 0xf1, 0xd9, 0x7d, 0xb5, 0x19, 0xc1, 0xe6, 0x93, 0x88, 0xf4, 0x31, + 0x37, 0x39, 0x1b, 0x77, 0xbc, 0xd3, 0x74, 0x7d, 0x7a, 0x38, 0xb8, 0xbb, 0xb8, 0x5b, 0x1b, 0x8f, + 0x6e, 0x80, 0x48, 0x91, 0x25, 0xd9, 0x2e, 0x10, 0x0a, 0x11, 0xf8, 0xa0, 0x73, 0x76, 0x70, 0x4c, + 0xfe, 0x9e, 0x5f, 0xaf, 0x8f, 0xe4, 0x74, 0x3e, 0x52, 0x54, 0xd5, 0x60, 0x78, 0xa1, 0xdd, 0xea, + 0x5c, 0x04, 0x93, 0x1b, 0x35, 0x50, 0x1c, 0xd6, 0x96, 0xf2, 0xb0, 0x03, 0x54, 0x6e, 0x78, 0x56, + 0x9f, 0x70, 0xae, 0x2f, 0x06, 0x33, 0x2a, 0xf0, 0x2b, 0x17, 0x8d, 0x8d, 0x66, 0x53, 0x94, 0x56, + 0x20, 0xf7, 0xf6, 0x29, 0xdd, 0x70, 0xd2, 0xf2, 0xec, 0x17, 0x81, 0xc4, 0x4c, 0xd9, 0x49, 0xe0, + 0x31, 0xb7, 0x44, 0x22, 0x6f, 0x04, 0x92, 0xbf, 0x51, 0xc5, 0xfe, 0x6f, 0x43, 0xcf, 0x8c, 0xe7, + 0xe3, 0x55, 0x03, 0xf6, 0x95, 0x5b, 0x9a, 0xe0, 0xfe, 0x8d, 0xbf, 0xcc, 0xc1, 0x96, 0xea, 0x67, + 0xa6, 0x01, 0x69, 0xe1, 0xf7, 0xf5, 0x37, 0xcb, 0xf0, 0x37, 0x4f, 0x81, 0xe0, 0x71, 0xd8, 0x7f, + 0xe3, 0x3b, 0xd5, 0x88, 0xa4, 0xc8, 0x2f, 0xf7, 0x2d, 0xb4, 0x8e, 0x3a, 0x9c, 0xe9, 0x09, 0xd8, + 0x6b, 0x3b, 0x75, 0x97, 0xa7, 0x92, 0x5d, 0x15, 0xd9, 0x6f, 0x1e, 0x6d, 0xfe, 0x47, 0x22, 0xc2, + 0x2d, 0x05, 0x17, 0xb2, 0x6b, 0x1a, 0x91, 0x8d, 0x02, 0x5e, 0x9a, 0xf8, 0xa4, 0x6d, 0x11, 0xe4, + 0xfe, 0xf2, 0x3b, 0x7a, 0x8f, 0xe2, 0x97, 0xe9, 0x2a, 0xe4, 0xaa, 0x17, 0x7f, 0xf9, 0x75, 0xac, + 0xd4, 0xd9, 0x68, 0x7a, 0x7f, 0xf5, 0xec, 0xbf, 0xd7, 0xda, 0xcb, 0x1c, 0xd1, 0xa6, 0x55, 0x54, + 0xa7, 0x8f, 0x74, 0x53, 0x06, 0xe1, 0x01, 0x13, 0xd4, 0x5d, 0x7e, 0xfd, 0x44, 0xae, 0xa1, 0x01, + 0x95, 0x3d, 0x68, 0x6b, 0x6b, 0x28, 0xc7, 0x51, 0xd1, 0x88, 0xce, 0x3a, 0x4a, 0x04, 0xca, 0x19, + 0x78, 0x39, 0xb3, 0x80, 0x6a, 0xe4, 0x49, 0x11, 0xea, 0x94, 0x7d, 0xad, 0xc3, 0xfd, 0xb7, 0x6e, + 0x9b, 0x2b, 0x86, 0xa2, 0x70, 0xc9, 0xe1, 0xc2, 0xaa, 0xb5, 0xae, 0x03, 0xdc, 0x64, 0x66, 0x6b, + 0xa2, 0xaf, 0x9b, 0xce, 0x9f, 0xac, 0x90, 0x51, 0xf9, 0x67, 0x11, 0x89, 0xcc, 0xc1, 0xfe, 0x5e, + 0xd7, 0x13, 0x48, 0x2d, 0xb9, 0x60, 0x64, 0x7d, 0x93, 0x7c, 0xe2, 0x5c, 0xdb, 0xe9, 0xa3, 0x4b, + 0xe0, 0xf6, 0x13, 0x2f, 0xcd, 0x5b, 0x14, 0xdb, 0x67, 0x39, 0x1a, 0xf2, 0x65, 0x87, 0xb0, 0x5a, + 0x4a, 0xe0, 0xde, 0x00, 0xa3, 0xbd, 0xda, 0xe2, 0xa6, 0x3f, 0x3f, 0x40, 0x0a, 0x79, 0x65, 0x0c, + 0x58, 0xc5, 0xff, 0x9f, 0x39, 0x29, 0x8b, 0x52, 0x43, 0x6f, 0xd2, 0x63, 0x4e, 0xe3, 0x86, 0xb1, + 0x1b, 0xf4, 0x05, 0x43, 0x5f, 0x10, 0xd0, 0x8f, 0x34, 0xb3, 0x93, 0x4b, 0x54, 0x91, 0x6a, 0xdb, + 0x38, 0x54, 0xbb, 0xa5, 0x4c, 0x13, 0x3c, 0x1f, 0x1a, 0x3c, 0x4f, 0x6e, 0xe0, 0x28, 0x16, 0xda, + 0xd5, 0xf3, 0x53, 0xe3, 0xc8, 0x80, 0x5b, 0xee, 0x4d, 0x7d, 0xaf, 0x82, 0x8f, 0x62, 0xab, 0x44, + 0x68, 0x5b, 0x3d, 0x49, 0x4a, 0x8b, 0x10, 0xdd, 0x76, 0x60, 0x7b, 0x22, 0x1e, 0xea, 0x8a, 0xcb, + 0x4f, 0x4c, 0x22, 0xf9, 0x32, 0x87, 0x55, 0x14, 0x30, 0x15, 0xd6, 0x60, 0xf6, 0x44, 0xac, 0x5b, + 0x0b, 0xff, 0xe7, 0x46, 0x86, 0x5a, 0xfb, 0x22, 0x68, 0x4a, 0x92, 0x08, 0xfc, 0x9c, 0xe9, 0x05, + 0x5a, 0x4d, 0x8e, 0x28, 0xf7, 0xe1, 0x63, 0xab, 0x99, 0x41, 0x95, 0x74, 0x7a, 0x37, 0xc3, 0x2e, + 0x97, 0x39, 0x51, 0xfc, 0x87, 0x6e, 0xd2, 0xfb, 0x21, 0x95, 0x59, 0x5a, 0xc0, 0x20, 0xa7, 0x50, + 0x8c, 0x67, 0xc8, 0x7f, 0xd2, 0xd9, 0x98, 0xb4, 0x42, 0x4a, 0xdb, 0xb5, 0x27, 0x43, 0xfb, 0x7f, + 0xd8, 0xdd, 0x60, 0x87, 0x63, 0x00, 0x1e, 0x7a, 0x8f, 0xe6, 0x66, 0x0f, 0x99, 0x67, 0x8d, 0xd2, + 0xbf, 0x1e, 0xd3, 0x33, 0x22, 0xd2, 0xa7, 0x1f, 0x01, 0x55, 0xe9, 0x3f, 0x09, 0x5c, 0xa9, 0x34, + 0xca, 0x4f, 0xa4, 0x48, 0x94, 0xf8, 0xe9, 0x71, 0xd3, 0x8d, 0x40, 0x74, 0x12, 0x9c, 0x86, 0xc2, + 0xd7, 0xf0, 0xc7, 0x02, 0xd9, 0x0b, 0xfb, 0x88, 0xc3, 0x98, 0x9e, 0x96, 0xa7, 0xe7, 0xe9, 0x14, + 0x1b, 0x5d, 0x8e, 0x81, 0x28, 0x1d, 0xd2, 0x8a, 0x58, 0xe5, 0x26, 0xba, 0x63, 0x18, 0x87, 0xe5, + 0x43, 0xf2, 0x15, 0xd8, 0x1c, 0xf5, 0x73, 0x8f, 0xda, 0xea, 0x6b, 0x93, 0x88, 0xb1, 0x06, 0x5c, + 0x05, 0x4f, 0x20, 0x99, 0xdc, 0x4e, 0xa7, 0x82, 0x45, 0xa4, 0xe6, 0x92, 0x0d, 0x16, 0x7f, 0xe3, + 0xd0, 0x78, 0x6c, 0x96, 0x44, 0x18, 0xac, 0x83, 0x7e, 0x54, 0x0d, 0x41, 0x1a, 0x3d, 0xe2, 0x3d, + 0x2f, 0x8d, 0x37, 0x5b, 0xe7, 0xc8, 0x8c, 0xab, 0xbb, 0x26, 0xfc, 0x1f, 0x0b, 0xb6, 0x2c, 0xf6, + 0x4b, 0x4d, 0x00, 0xb0, 0x53, 0x9d, 0x99, 0x16, 0xd0, 0x62, 0xbc, 0x2a, 0xcc, 0x41, 0x78, 0xa8, + 0x3b, 0x0a, 0x6d, 0xf1, 0xe8, 0x07, 0x02, 0x8c, 0xd6, 0x4b, 0x33, 0xd3, 0x9c, 0xbf, 0x4c, 0xc8, + 0xdb, 0x54, 0x00, 0xe5, 0x51, 0xda, 0xef, 0x01, 0xad, 0x83, 0xfa, 0xda, 0x10, 0x88, 0xc8, 0xf8, + 0xe9, 0x7f, 0xcb, 0x1e, 0x34, 0x3a, 0xc0, 0x94, 0x64, 0x57, 0x80, 0x1d, 0x47, 0x92, 0x2f, 0x68, + 0x30, 0x52, 0xbc, 0x4c, 0xa2, 0xd9, 0x4a, 0x26, 0xf0, 0xdc, 0xe5, 0x71, 0x1d, 0xc4, 0xaa, 0xcf, + 0xbb, 0xec, 0xc1, 0x51, 0x7d, 0x1c, 0x52, 0x57, 0x00, 0x47, 0x0d, 0x98, 0x26, 0x71, 0x75, 0x42, + 0x02, 0xef, 0x4a, 0x91, 0xce, 0x27, 0xf2, 0x6a, 0xaf, 0x6e, 0x6e, 0xb9, 0x5f, 0xc0, 0xdf, 0xc3, + 0xfa, 0x99, 0xfd, 0x8a, 0x1d, 0x05, 0x1f, 0x37, 0xca, 0x1b, 0xaa, 0x87, 0xd7, 0x23, 0xa3, 0xf6, + 0xd0, 0xca, 0xe6, 0x2e, 0xe7, 0x65, 0x55, 0x9a, 0x44, 0x1d, 0x1d, 0x70, 0x2f, 0xf7, 0x92, 0x0b, + 0x1d, 0x46, 0x91, 0xc1, 0xdd, 0x86, 0xb4, 0xcc, 0x09, 0x16, 0xb5, 0x13, 0x9a, 0xa5, 0x6d, 0x6e, + 0xd4, 0x32, 0x75, 0x69, 0xbd, 0xac, 0xaa, 0x57, 0xcf, 0x91, 0x8d, 0x2a, 0x5d, 0xcd, 0xeb, 0xe2, + 0x04, 0xd3, 0x12, 0xe3, 0x58, 0xe4, 0xbb, 0x8d, 0x3a, 0xc9, 0x35, 0x64, 0xd8, 0xc3, 0x43, 0x65, + 0xfc, 0xb2, 0xfb, 0x72, 0x71, 0xe8, 0x70, 0x56, 0xb3, 0xa3, 0x07, 0x8c, 0x56, 0x9c, 0x1b, 0x14, + 0xcf, 0xcc, 0x9d, 0xf3, 0xdc, 0x2a, 0x03, 0x6c, 0xf3, 0xe6, 0xec, 0x8c, 0x00, 0xf2, 0xc5, 0xe4, + 0x15, 0xfa, 0xce, 0xe8, 0xb5, 0x34, 0x6b, 0x8d, 0x91, 0xc4, 0x2e, 0x34, 0x45, 0xb0, 0x2d, 0xac, + 0xc0, 0x87, 0x34, 0x98, 0x5d, 0xbf, 0x2a, 0xa0, 0xf6, 0xc8, 0x75, 0xad, 0x36, 0x6f, 0x1a, 0xe5, + 0x2a, 0xbf, 0x8d, 0x21, 0x3f, 0x16, 0x95, 0xee, 0x33, 0x6c, 0x09, 0x76, 0xe8, 0xe0, 0x52, 0x21, + 0x99, 0x15, 0x11, 0xa0, 0x5c, 0x35, 0x24, 0x27, 0x64, 0x3e, 0x34, 0x04, 0xe0, 0xbe, 0xc9, 0x87, + 0xa3, 0x26, 0xa0, 0xa3, 0x43, 0x4a, 0xfb, 0xdd, 0xff, 0x5c, 0x37, 0x6d, 0x3d, 0x7e, 0x69, 0x8b, + 0x21, 0xad, 0x42, 0x53, 0xa8, 0x8d, 0x59, 0x24, 0xba, 0xa6, 0xfa, 0x35, 0x18, 0x1b, 0x76, 0x8e, + 0xbf, 0x3a, 0xb6, 0xed, 0x76, 0x48, 0x8c, 0xba, 0x81, 0x0b, 0xa5, 0xe1, 0x82, 0xc9, 0x37, 0x79, + 0x86, 0xb5, 0x91, 0xa7, 0xb3, 0x59, 0xff, 0xf1, 0xee, 0x85, 0x5e, 0x15, 0x71, 0x5d, 0xbd, 0xb4, + 0xa9, 0xc8, 0x30, 0xf3, 0x98, 0x62, 0x6b, 0x9e, 0x36, 0xdd, 0xea, 0xd2, 0xec, 0xf1, 0xba, 0x4b, + 0xf7, 0xb3, 0x76, 0x86, 0x17, 0x2b, 0xdf, 0xee, 0x7f, 0x45, 0x2f, 0xfd, 0xb7, 0xd7, 0x70, 0xfa, + 0x88, 0xa8, 0x19, 0x82, 0xd7, 0x28, 0x71, 0x17, 0x53, 0xf7, 0x2f, 0x2a, 0x27, 0x8b, 0x7d, 0x64, + 0xf8, 0x7d, 0xd9, 0xa5, 0x0f, 0x0b, 0x40, 0x9f, 0x43, 0xdc, 0x5e, 0x45, 0xbc, 0x3b, 0xc0, 0x50, + 0xb5, 0x68, 0x24, 0x33, 0x94, 0x63, 0xa7, 0xb3, 0x48, 0x91, 0x38, 0x97, 0x5d, 0x2c, 0x58, 0x18, + 0xee, 0x3b, 0x2b, 0xc2, 0x78, 0xac, 0xa8, 0xf2, 0xfd, 0x12, 0x33, 0x5b, 0xc3, 0xcd, 0xbd, 0xe3, + 0xfa, 0x92, 0xb1, 0x75, 0x57, 0x97, 0xd7, 0xe9, 0x75, 0x75, 0xbd, 0x4c, 0xfd, 0xaf, 0x88, 0x64, + 0x83, 0x86, 0x9e, 0x76, 0x51, 0xfb, 0x86, 0xfe, 0xd1, 0x25, 0x0b, 0xec, 0xb4, 0x0f, 0x07, 0xbc, + 0x5f, 0xb5, 0xf2, 0xb8, 0x2e, 0x56, 0xf3, 0xe6, 0xb3, 0x4b, 0x67, 0x26, 0x2d, 0x60, 0x6c, 0x30, + 0xbc, 0xf6, 0xb1, 0x72, 0xc0, 0x87, 0xda, 0xa1, 0xf8, 0x24, 0xc3, 0x7a, 0xf5, 0x86, 0x1d, 0x5e, + 0x00, 0xf7, 0x2a, 0x4c, 0x12, 0x66, 0x1d, 0xd1, 0xd2, 0x3d, 0x6e, 0xb6, 0x71, 0x93, 0x72, 0xe5, + 0xd5, 0x0f, 0x31, 0x46, 0xc8, 0x8a, 0x9a, 0xe4, 0x2a, 0x8a, 0xf8, 0x34, 0x3d, 0x02, 0x9a, 0xd9, + 0xff, 0x2c, 0x51, 0xb0, 0x8c, 0x04, 0x28, 0x46, 0x25, 0x03, 0xfc, 0x1f, 0xde, 0x0d, 0x68, 0x24, + 0x15, 0xfe, 0xbd, 0xd8, 0x53, 0x8c, 0xa0, 0xdb, 0x54, 0xb6, 0xf8, 0x68, 0xf2, 0x67, 0x8a, 0x3b, + 0xb3, 0xd1, 0x04, 0x2f, 0xd6, 0xa0, 0x36, 0x80, 0xef, 0x4b, 0x63, 0x12, 0x9d, 0x5c, 0x73, 0xd0, + 0x2f, 0x4c, 0xe1, 0x35, 0xab, 0xf1, 0xb5, 0xca, 0x93, 0xc4, 0x0b, 0xf0, 0xe5, 0x91, 0xe8, 0xd1, + 0xcc, 0xd2, 0x29, 0x04, 0x75, 0xe8, 0xc1, 0xd7, 0x89, 0x79, 0x80, 0x96, 0x04, 0x18, 0xc6, 0x69, + 0xf1, 0x27, 0x19, 0x21, 0xda, 0x3e, 0x44, 0x55, 0x11, 0xe5, 0x4d, 0x7c, 0xbf, 0x44, 0x19, 0x4c, + 0x77, 0x9d, 0x52, 0x3b, 0x7a, 0x6e, 0x8b, 0x8c, 0x59, 0x92, 0xbe, 0xa5, 0xb6, 0xc6, 0x3b, 0x1f, + 0xd4, 0x87, 0x1c, 0x57, 0xe1, 0x3b, 0x7c, 0x36, 0x90, 0xf8, 0x93, 0x01, 0x59, 0x0b, 0x92, 0xa6, + 0x43, 0xee, 0x9c, 0xd8, 0xef, 0x26, 0xcd, 0xf2, 0x4d, 0x61, 0x1c, 0xcc, 0x3a, 0x3c, 0xb6, 0xbc, + 0x23, 0x43, 0x1f, 0xe8, 0x58, 0x9a, 0x79, 0x0c, 0x98, 0xd4, 0xcf, 0x1d, 0x24, 0xf3, 0x52, 0xd8, + 0x49, 0x9c, 0x92, 0xa5, 0x97, 0x1a, 0x4a, 0xae, 0x52, 0x48, 0xf5, 0x47, 0x37, 0x02, 0x6d, 0x67, + 0x52, 0x1f, 0x95, 0xc2, 0xa1, 0x9b, 0xb2, 0x8f, 0xf0, 0xce, 0xd9, 0x37, 0x49, 0xd0, 0xff, 0x5d, + 0x6d, 0x08, 0xa0, 0x4c, 0x22, 0x65, 0x08, 0xc2, 0x17, 0xfa, 0x10, 0xfa, 0xcb, 0xf4, 0xd1, 0xe9, + 0xf4, 0xdb, 0xf1, 0xcf, 0x53, 0xed, 0x92, 0xa6, 0xe6, 0x49, 0xe2, 0x6a, 0xf3, 0x48, 0x28, 0x9c, + 0x45, 0x23, 0xe5, 0x2e, 0x5a, 0x3b, 0x8d, 0xf6, 0x0d, 0x8e, 0x7d, 0xa0, 0x5a, 0xf0, 0x60, 0xa6, + 0xc6, 0x41, 0x34, 0x74, 0xa1, 0x8e, 0x77, 0xb1, 0x49, 0xc7, 0x65, 0xd6, 0x15, 0x75, 0xaa, 0x1f, + 0x91, 0x71, 0xf7, 0x88, 0x4d, 0x3e, 0x86, 0xfa, 0x45, 0xf8, 0xcb, 0x97, 0x7a, 0xdf, 0xfb, 0x1b, + 0x19, 0x87, 0xee, 0xea, 0x75, 0x6f, 0xc1, 0x80, 0xc6, 0xb8, 0xe0, 0x1f, 0x4d, 0x0f, 0xde, 0x6b, + 0xd0, 0x82, 0x02, 0xe5, 0xa3, 0x91, 0xeb, 0x3e, 0xa1, 0xa2, 0xd7, 0xcb, 0x89, 0xb2, 0x3a, 0x3e, + 0xe0, 0x8d, 0x5d, 0xac, 0x3b, 0x54, 0x45, 0x45, 0xc6, 0x50, 0xdc, 0xdc, 0xb6, 0x35, 0x68, 0xd5, + 0x8a, 0xa3, 0x53, 0xaa, 0xda, 0xb3, 0x7a, 0x4b, 0x8b, 0x54, 0x10, 0x61, 0xc4, 0x90, 0x8e, 0x30, + 0x75, 0x21, 0xe8, 0xb1, 0xf2, 0x3d, 0x4c, 0xa7, 0xb6, 0x04, 0x60, 0xfd, 0x66, 0x9e, 0xb2, 0xe8, + 0xab, 0x32, 0x68, 0x05, 0xd0, 0x90, 0x8a, 0x9a, 0xd0, 0xff, 0xc6, 0x66, 0xd0, 0x0b, 0x65, 0xd9, + 0x69, 0xf9, 0x07, 0x4e, 0xda, 0xb9, 0x33, 0x4c, 0xa1, 0x76, 0xfc, 0x9b, 0x80, 0xe8, 0xdb, 0x9d, + 0x5f, 0x9b, 0x5f, 0xae, 0x06, 0xb1, 0xc1, 0x3b, 0x47, 0x69, 0x7f, 0x44, 0x84, 0x30, 0x41, 0x05, + 0xfe, 0x57, 0x11, 0x14, 0x86, 0xab, 0x28, 0xfb, 0xda, 0xf6, 0xe3, 0xd0, 0x17, 0xde, 0x5c, 0x37, + 0xe9, 0x35, 0xad, 0x2c, 0x31, 0x5e, 0x7b, 0x68, 0x0a, 0x2c, 0x49, 0xf0, 0x5b, 0x36, 0xac, 0x48, + 0x1d, 0xff, 0x03, 0xd1, 0xbc, 0x15, 0xfd, 0x8c, 0xc4, 0x3a, 0x03, 0x92, 0x6e, 0x74, 0x3f, 0xe0, + 0x8f, 0x46, 0xe3, 0xb2, 0x9f, 0x1a, 0x9f, 0x79, 0xe7, 0x29, 0xa5, 0xec, 0x0f, 0xf4, 0xa9, 0x05, + 0x7e, 0xf0, 0xa2, 0x0b, 0xd7, 0x32, 0xcb, 0x0d, 0x3a, 0x00, 0x7f, 0xb5, 0xc0, 0xba, 0xd2, 0xa3, + 0x21, 0x0d, 0x7b, 0x13, 0x0e, 0x03, 0xee, 0xe0, 0x16, 0x57, 0xde, 0x0d, 0xec, 0x3c, 0xe1, 0xbd, + 0xc2, 0xfd, 0x6a, 0x18, 0x40, 0xff, 0x3d, 0x6d, 0x21, 0x76, 0xef, 0x95, 0x36, 0xcd, 0xbc, 0xc6, + 0x87, 0x13, 0xff, 0x46, 0xf4, 0x6b, 0x4f, 0xb0, 0xda, 0x38, 0x20, 0x61, 0x77, 0x84, 0xe1, 0x4c, + 0x88, 0x18, 0x37, 0x17, 0xb9, 0xa5, 0x2d, 0x81, 0x83, 0x07, 0x4d, 0x09, 0xb8, 0x40, 0x4b, 0x45, + 0xae, 0xdb, 0xcf, 0x17, 0x77, 0x1e, 0x1c, 0xb6, 0x24, 0xe2, 0x96, 0xfb, 0xd0, 0x34, 0xeb, 0xf8, + 0x7a, 0x33, 0x36, 0xe5, 0xf9, 0x00, 0xc9, 0x08, 0xeb, 0x33, 0xff, 0xe9, 0xe5, 0x51, 0xe6, 0x31, + 0x4c, 0x4d, 0x46, 0x29, 0xee, 0x12, 0x65, 0x68, 0x2f, 0x5d, 0x70, 0x5f, 0x7a, 0xb7, 0x9c, 0x57, + 0x53, 0xa3, 0xc8, 0xdf, 0x19, 0x58, 0x8d, 0x14, 0xfa, 0x68, 0x0e, 0x53, 0xa5, 0x0d, 0x17, 0x55, + 0xf6, 0x9d, 0x3d, 0x08, 0xa2, 0x1c, 0xd8, 0x06, 0x0c, 0xb0, 0x9b, 0xb3, 0x2d, 0xe3, 0x33, 0xf6, + 0xed, 0x3b, 0xc7, 0x60, 0xee, 0xb2, 0xb6, 0x0b, 0xcc, 0x12, 0xfb, 0x10, 0x8f, 0xea, 0x4c, 0x1d, + 0xcb, 0x5d, 0x96, 0x7f, 0xde, 0x71, 0x08, 0x26, 0x78, 0xa6, 0x8e, 0x49, 0x46, 0x54, 0x37, 0xfe, + 0xf9, 0x0c, 0xfb, 0x80, 0x93, 0x39, 0xe3, 0x49, 0xb1, 0x04, 0xec, 0x0c, 0x08, 0xd5, 0xde, 0x22, + 0xe0, 0xac, 0x88, 0x8c, 0x19, 0x9c, 0x2d, 0xd3, 0x0a, 0x5e, 0x57, 0xc9, 0xa5, 0xfb, 0x31, 0xd1, + 0x79, 0xa4, 0x2a, 0x25, 0x4f, 0x30, 0xc1, 0xf5, 0xd8, 0x99, 0x54, 0xfb, 0x8b, 0x03, 0xe6, 0x7c, + 0x91, 0xed, 0x8b, 0x8f, 0x41, 0x72, 0xd4, 0x5d, 0x10, 0xde, 0xee, 0xe5, 0x6e, 0xbf, 0x76, 0x79, + 0x93, 0x42, 0x18, 0xe8, 0x36, 0xba, 0x32, 0xc5, 0x7f, 0x2b, 0x9b, 0xff, 0x30, 0xac, 0xef, 0x59, + 0xe4, 0xb3, 0xe0, 0xae, 0xf2, 0x0f, 0x64, 0xf2, 0xda, 0x6c, 0x71, 0xa6, 0xc7, 0x2a, 0xca, 0x3a, + 0x6c, 0x8d, 0x16, 0xbc, 0x91, 0x85, 0x11, 0xc7, 0x8d, 0xa5, 0x17, 0x80, 0xfe, 0x8b, 0x90, 0x71, + 0x9c, 0x47, 0xbd, 0x8e, 0x45, 0x1e, 0x3d, 0x20, 0x62, 0xbc, 0xa1, 0xbc, 0xaf, 0x54, 0x39, 0xb3, + 0x9c, 0x94, 0x7b, 0x25, 0xeb, 0xde, 0x86, 0xd7, 0xa9, 0xc9, 0x24, 0x80, 0x54, 0xd2, 0x6d, 0x6c, + 0xd1, 0x58, 0xc5, 0x61, 0x8e, 0x4b, 0xf0, 0x6b, 0x05, 0x0b, 0x4a, 0xa0, 0x23, 0xab, 0xfd, 0xbc, + 0xe4, 0xf2, 0xbf, 0xb4, 0xd0, 0x8d, 0xd2, 0xa3, 0xbd, 0x66, 0x5c, 0xfc, 0x82, 0xfb, 0xd4, 0xa4, + 0xbf, 0x57, 0x29, 0xdf, 0x84, 0x0f, 0x46, 0xe9, 0x05, 0x98, 0x3c, 0x9d, 0xf4, 0xbd, 0x87, 0x53, + 0xb0, 0x36, 0x28, 0xde, 0x29, 0x0b, 0x4e, 0xdd, 0xb5, 0x8c, 0x79, 0xc6, 0xd0, 0x2f, 0x40, 0xfa, + 0x08, 0x05, 0x50, 0x3f, 0x30, 0xd1, 0xf7, 0x36, 0x67, 0x95, 0xe7, 0xa3, 0xae, 0x64, 0x38, 0xf2, + 0x6e, 0x20, 0x39, 0x41, 0xd1, 0x33, 0x79, 0x9a, 0xd7, 0x13, 0x73, 0xa4, 0x68, 0x9a, 0x8b, 0x56, + 0x82, 0x4e, 0x6a, 0x32, 0x58, 0x06, 0xaf, 0xb4, 0xdd, 0x31, 0x8d, 0xf4, 0x02, 0xa5, 0x3c, 0x7a, + 0xa2, 0x0f, 0xde, 0xc0, 0x4a, 0x5f, 0xf1, 0x06, 0x96, 0xfb, 0xa7, 0xdf, 0x92, 0xa8, 0xb0, 0x63, + 0x69, 0x4d, 0x03, 0xf8, 0x11, 0x3f, 0xfe, 0xad, 0x12, 0xf1, 0x66, 0x20, 0xd3, 0x33, 0xab, 0xef, + 0x1a, 0x38, 0x14, 0x93, 0xe6, 0x38, 0xbd, 0xff, 0x37, 0xd1, 0x19, 0x50, 0xf5, 0x1a, 0xff, 0xc4, + 0xc2, 0x4e, 0x4d, 0x22, 0x56, 0x5b, 0x2e, 0x98, 0x7a, 0x3e, 0x0c, 0x8c, 0xdb, 0x6d, 0x23, 0xdc, + 0x80, 0x31, 0x26, 0x43, 0xb0, 0xfe, 0x7f, 0x5e, 0xa4, 0xe7, 0xfb, 0xd5, 0xb3, 0x5d, 0x7a, 0xf4, + 0x07, 0x83, 0xc6, 0x41, 0x9c, 0x3f, 0xbb, 0x96, 0xc5, 0x07, 0x85, 0x3c, 0xd4, 0x5e, 0x62, 0xcf, + 0x05, 0xe8, 0x2e, 0x50, 0xe3, 0xb3, 0x21, 0xf9, 0x68, 0x67, 0x66, 0x58, 0x64, 0xfa, 0x53, 0x74, + 0xae, 0x98, 0x63, 0x44, 0x98, 0xc7, 0x4c, 0xb2, 0x5c, 0x5e, 0x46, 0x77, 0xd4, 0x9f, 0xe7, 0x03, + 0x4d, 0x29, 0x0f, 0x54, 0x92, 0x76, 0x7a, 0xde, 0x41, 0x6f, 0xcb, 0x83, 0x3b, 0x70, 0x83, 0x02, + 0x11, 0x1c, 0x6d, 0x9b, 0x9e, 0x6b, 0x63, 0xc7, 0x42, 0x5b, 0x1e, 0xeb, 0x84, 0xa7, 0x40, 0xee, + 0x69, 0xe3, 0x47, 0x57, 0xc3, 0x1b, 0x50, 0x2a, 0x00, 0x9e, 0x52, 0x44, 0xe7, 0xb5, 0x11, 0x3d, + 0xf2, 0x09, 0xe1, 0x90, 0x6f, 0xff, 0x8c, 0x3d, 0x16, 0xd5, 0xd1, 0xf9, 0x50, 0x9b, 0x28, 0xc4, + 0x60, 0x61, 0x96, 0xfb, 0xc1, 0x33, 0x43, 0x41, 0xef, 0x38, 0xdf, 0x0e, 0x99, 0xc6, 0x65, 0x5d, + 0x5e, 0x7a, 0xc1, 0xd5, 0xaa, 0x2b, 0x98, 0x71, 0x7e, 0xee, 0x85, 0xac, 0x40, 0x5f, 0x49, 0x32, + 0x5d, 0x1e, 0x0b, 0x2d, 0xcc, 0x86, 0x37, 0xb9, 0xfd, 0x24, 0x8c, 0xf3, 0x0a, 0x50, 0x94, 0x95, + 0x2e, 0x35, 0xac, 0x6a, 0x99, 0x86, 0x35, 0x24, 0xf2, 0xf9, 0xcd, 0x02, 0x99, 0xc4, 0x0a, 0x81, + 0x6c, 0x99, 0x42, 0x8f, 0x02, 0xba, 0x40, 0x2c, 0xe7, 0x0e, 0x97, 0x6e, 0x24, 0x18, 0x9e, 0xc0, + 0x62, 0xdc, 0xad, 0x3c, 0xb2, 0x1f, 0x93, 0x9b, 0x1a, 0xd7, 0xdf, 0x34, 0x77, 0x60, 0xda, 0xe4, + 0x53, 0xb4, 0x17, 0xd2, 0x76, 0x73, 0x43, 0xe4, 0xf1, 0x30, 0x3c, 0xf5, 0xb1, 0xe7, 0x2d, 0x6b, + 0x88, 0x6b, 0xd5, 0x48, 0x68, 0x8c, 0x4f, 0xa9, 0x98, 0xad, 0x2c, 0x53, 0xb0, 0xf3, 0x89, 0x2f, + 0xea, 0xb7, 0xff, 0xc9, 0x98, 0x80, 0x69, 0xcc, 0x4e, 0xea, 0xff, 0x24, 0x8c, 0xcc, 0x93, 0xf5, + 0x2f, 0x41, 0xc9, 0x46, 0x4f, 0x83, 0x08, 0xd9, 0x97, 0x86, 0x80, 0x4f, 0x12, 0x46, 0x7e, 0xf8, + 0xcf, 0x65, 0xae, 0x90, 0x25, 0xe3, 0x3e, 0x9c, 0xaa, 0x37, 0x61, 0x11, 0x2a, 0xc3, 0xcf, 0x8e, + 0x4b, 0xec, 0x6b, 0x2a, 0x82, 0xd2, 0x8d, 0x2d, 0x28, 0x4f, 0x45, 0x35, 0xa8, 0x9a, 0x45, 0x9c, + 0xa8, 0x77, 0x7e, 0x06, 0xa8, 0x1b, 0xb0, 0x2d, 0xaa, 0x08, 0x64, 0x6e, 0xaf, 0x1a, 0x96, 0x11, + 0xc8, 0x7f, 0x20, 0x4d, 0xc1, 0x33, 0xf1, 0x94, 0x7f, 0xb7, 0xff, 0xa2, 0x37, 0xfe, 0x89, 0x37, + 0xc7, 0xd7, 0x3e, 0x3c, 0x39, 0x54, 0x6e, 0x3a, 0xfa, 0x64, 0xf2, 0xfa, 0x15, 0x99, 0x64, 0xb3, + 0x72, 0xdd, 0xf3, 0xba, 0x1e, 0x9b, 0x93, 0x7e, 0xa9, 0x66, 0x1f, 0xe9, 0x60, 0xf6, 0xfe, 0x78, + 0xd9, 0x12, 0x43, 0x51, 0x16, 0x6c, 0x10, 0x22, 0xdc, 0xdb, 0x31, 0x2c, 0xdf, 0x60, 0x14, 0xf1, + 0x4b, 0x0a, 0xa8, 0xbf, 0x05, 0xa9, 0xf9, 0x34, 0x7f, 0x5b, 0x03, 0xb7, 0x51, 0xc0, 0x36, 0x4b, + 0x87, 0x53, 0x77, 0x10, 0x3c, 0xf7, 0x66, 0x2e, 0xfb, 0xd7, 0xd4, 0xb2, 0x18, 0x1e, 0x24, 0x17, + 0x6b, 0xf2, 0x27, 0x6c, 0x0c, 0xf9, 0x5c, 0x0c, 0xac, 0x04, 0x45, 0xc3, 0x32, 0x9a, 0xe3, 0xad, + 0x0c, 0x3e, 0x9f, 0xca, 0x73, 0x38, 0xe7, 0x57, 0xee, 0xe9, 0xc7, 0x46, 0x93, 0x66, 0xb4, 0x1c, + 0x63, 0x9c, 0xee, 0xc9, 0x51, 0xa8, 0xc6, 0x08, 0xaa, 0x74, 0xe5, 0x4b, 0xec, 0xb6, 0xf2, 0xe1, + 0x0b, 0xb7, 0xda, 0xe1, 0x78, 0x32, 0xd1, 0xe7, 0xbf, 0x97, 0x22, 0x6a, 0x6d, 0xd2, 0xd0, 0x52, + 0x0a, 0x88, 0x72, 0x08, 0xed, 0x66, 0x70, 0x66, 0x7b, 0xa1, 0xaf, 0x65, 0xa3, 0x32, 0xdd, 0xb2, + 0x1f, 0xa6, 0x9c, 0xcc, 0x3e, 0xda, 0x89, 0x24, 0x73, 0x2c, 0x0d, 0x2d, 0xb4, 0xcd, 0xaf, 0xcd, + 0xd6, 0xb2, 0x16, 0xb4, 0xee, 0x07, 0x91, 0x9d, 0xce, 0xbd, 0x6c, 0x6b, 0xbd, 0x54, 0x25, 0xed, + 0xe1, 0xcc, 0x25, 0xa9, 0x94, 0xf4, 0x96, 0xeb, 0x7a, 0x37, 0xd7, 0x98, 0xc0, 0x0c, 0xf5, 0xc2, + 0x07, 0x6c, 0x8f, 0xb9, 0x1b, 0x3c, 0x89, 0x2a, 0xd0, 0x6f, 0x89, 0xe3, 0x8b, 0x4f, 0x7c, 0xa5, + 0xb6, 0x77, 0xe0, 0x4a, 0x2e, 0x90, 0xe1, 0xa3, 0x69, 0xa8, 0x53, 0x8b, 0x06, 0x9e, 0x85, 0x40, + 0x5b, 0x4f, 0xf2, 0x85, 0x00, 0xe5, 0x8b, 0xe3, 0xef, 0xa0, 0xd9, 0x69, 0x81, 0xba, 0x0d, 0x17, + 0xa5, 0x87, 0x01, 0xa8, 0x59, 0x2c, 0x57, 0x54, 0x2f, 0xbb, 0xbe, 0x49, 0x15, 0x93, 0xa6, 0xb9, + 0x3c, 0x67, 0x4d, 0x0d, 0x5d, 0x9b, 0x69, 0x5e, 0xd0, 0x88, 0x07, 0x8b, 0xaa, 0xf5, 0x89, 0xe3, + 0x38, 0x8c, 0x98, 0xb4, 0x85, 0xb3, 0x9c, 0xaf, 0x8f, 0x41, 0x7d, 0x9a, 0xf3, 0x94, 0xf3, 0xbc, + 0x81, 0x9e, 0xa9, 0x96, 0x3d, 0x85, 0x3a, 0xb1, 0xf1, 0xa9, 0x94, 0x62, 0xfe, 0x4a, 0xe1, 0x19, + 0x4f, 0xc5, 0x87, 0x08, 0xea, 0x4e, 0x53, 0x01, 0x20, 0x14, 0xc0, 0xdf, 0x37, 0x75, 0x2c, 0x1e, + 0xd5, 0x0e, 0x1f, 0x8c, 0xa7, 0x03, 0xa8, 0x8d, 0xba, 0x74, 0x6d, 0x31, 0xef, 0x60, 0x47, 0xcc, + 0x0e, 0x52, 0xe3, 0x75, 0x59, 0x9a, 0xae, 0xf2, 0x79, 0xe5, 0xbb, 0x44, 0x25, 0xbb, 0x38, 0x6a, + 0x78, 0x85, 0xef, 0x58, 0x7a, 0x52, 0xd3, 0x18, 0x29, 0x2d, 0xfe, 0x2d, 0xd7, 0x91, 0xf6, 0xbb, + 0xb8, 0x23, 0x37, 0x22, 0x70, 0xa1, 0xda, 0xfe, 0xbc, 0xe5, 0xaf, 0x46, 0x6c, 0x60, 0xe2, 0x25, + 0x29, 0xa9, 0xb6, 0xcb, 0xd3, 0x0f, 0x05, 0x52, 0x6e, 0x31, 0x44, 0x56, 0xcb, 0x76, 0xe5, 0xb1, + 0x2c, 0x1d, 0x1e, 0xbd, 0xbd, 0x78, 0x35, 0x1c, 0xad, 0xc3, 0xfa, 0xfd, 0x11, 0x8b, 0xa9, 0xcf, + 0x83, 0x32, 0xed, 0x53, 0x14, 0x52, 0x90, 0xc2, 0x37, 0xc9, 0x46, 0xff, 0xec, 0x4c, 0xea, 0x9d, + 0x2a, 0xe8, 0x8b, 0xa9, 0x02, 0x27, 0xbc, 0x42, 0x9c, 0x8a, 0xcc, 0x27, 0x70, 0x46, 0x59, 0x7d, + 0x57, 0x48, 0x62, 0xc1, 0x21, 0x76, 0x68, 0xa7, 0xfa, 0x35, 0x11, 0x01, 0x49, 0xd2, 0x25, 0x83, + 0x87, 0xa5, 0x08, 0xb2, 0xfc, 0xef, 0xcd, 0xfa, 0xfb, 0x56, 0xf9, 0xbf, 0xbf, 0x77, 0xae, 0x85, + 0x99, 0x64, 0x3e, 0x75, 0xbb, 0xe5, 0xc1, 0x44, 0xf8, 0x19, 0x4b, 0x55, 0xff, 0x77, 0x61, 0x82, + 0x5e, 0x9e, 0x61, 0xd7, 0x24, 0xed, 0xc3, 0x38, 0xbe, 0x52, 0x6d, 0x46, 0x52, 0x5a, 0xfe, 0xbd, + 0x02, 0x48, 0xfb, 0xab, 0xb1, 0x8e, 0xb1, 0x40, 0xf3, 0xdb, 0x5e, 0x41, 0x30, 0x69, 0xe3, 0x09, + 0x01, 0xb8, 0xb4, 0xc8, 0x37, 0xe0, 0x6d, 0xa7, 0xd6, 0x6b, 0x0a, 0x4b, 0x51, 0xa0, 0x2d, 0x5e, + 0xd7, 0x06, 0xf3, 0xa3, 0x76, 0x84, 0x62, 0x04, 0x97, 0xcd, 0xf3, 0x31, 0x55, 0x4e, 0x85, 0xa3, + 0xbc, 0x26, 0x42, 0x36, 0x6b, 0x0d, 0x97, 0x24, 0x27, 0x65, 0x15, 0x48, 0x63, 0x25, 0xd1, 0xb3, + 0x2b, 0xbf, 0xf2, 0xb5, 0x48, 0xf9, 0x8d, 0xf7, 0x3d, 0xd4, 0xf3, 0x00, 0x2f, 0x84, 0x60, 0x17, + 0xef, 0x5c, 0x07, 0x38, 0xc4, 0xbe, 0x0c, 0x43, 0x2f, 0x55, 0xd8, 0xf1, 0x3c, 0xcc, 0xb8, 0x5c, + 0xb4, 0x29, 0x54, 0x4b, 0x2f, 0x53, 0x83, 0x94, 0xd8, 0x36, 0x5b, 0x06, 0xb0, 0xc8, 0x3e, 0x1a, + 0x2f, 0x1a, 0xd9, 0x06, 0xea, 0x88, 0x97, 0x5d, 0xa5, 0xbc, 0xe1, 0x87, 0x6f, 0x9d, 0xf5, 0xa1, + 0x20, 0x4a, 0x8b, 0xf9, 0x7a, 0x8a, 0xee, 0xb7, 0xae, 0xd4, 0x24, 0xeb, 0xcb, 0xc1, 0x72, 0x88, + 0xc4, 0x73, 0x88, 0xbc, 0xa1, 0xf1, 0x59, 0xf2, 0x13, 0xab, 0x49, 0xe5, 0xc4, 0x2a, 0x65, 0x92, + 0x2e, 0x23, 0x98, 0x17, 0xd9, 0xd2, 0xce, 0xf5, 0x7b, 0x78, 0x04, 0xd2, 0xad, 0xd2, 0xe0, 0x9e, + 0xb9, 0x91, 0x0b, 0xdd, 0x76, 0x42, 0x23, 0x73, 0x90, 0x5b, 0x8e, 0xb9, 0xb9, 0x3e, 0x45, 0x6d, + 0xc3, 0x33, 0x5d, 0x21, 0x21, 0x0d, 0xc0, 0xd3, 0xfd, 0x3e, 0xde, 0x4e, 0x86, 0x0a, 0x2c, 0xb6, + 0x11, 0xd8, 0x65, 0x8c, 0x9b, 0x82, 0x62, 0x2c, 0x87, 0x5f, 0x03, 0x56, 0xb3, 0x39, 0x87, 0x95, + 0x03, 0x55, 0x4a, 0xd2, 0x12, 0xfa, 0xb0, 0xda, 0x62, 0x24, 0x79, 0x4b, 0x64, 0x65, 0x70, 0x9d, + 0x71, 0x79, 0x06, 0x45, 0xe1, 0x2b, 0x15, 0x8a, 0x5f, 0x05, 0xb8, 0x3d, 0xc9, 0x27, 0xfd, 0xb4, + 0xd5, 0x47, 0xc1, 0xbf, 0xac, 0x5f, 0x7e, 0x91, 0xa3, 0x56, 0x84, 0xca, 0x76, 0x75, 0xf1, 0x52, + 0xcc, 0xc3, 0xc6, 0x60, 0x61, 0xb4, 0x75, 0x25, 0x85, 0x10, 0xe3, 0x4e, 0x8f, 0x0c, 0xcf, 0xd1, + 0xb4, 0x05, 0x95, 0x81, 0x98, 0x48, 0x67, 0xb4, 0x40, 0x69, 0x76, 0xbb, 0xdc, 0x2b, 0x48, 0xe2, + 0x1f, 0x0a, 0xaa, 0x56, 0x0d, 0x6f, 0xab, 0xf6, 0x43, 0xfd, 0x64, 0x38, 0x00, 0x2a, 0x3d, 0x84, + 0xb6, 0x0e, 0xd2, 0x9f, 0x32, 0x1b, 0x3b, 0x19, 0x2f, 0x60, 0x79, 0x28, 0x0a, 0xfd, 0xe1, 0x03, + 0x9e, 0x56, 0x1d, 0x54, 0x8d, 0x3f, 0xb2, 0xa7, 0x7a, 0x3b, 0x84, 0xf0, 0xcc, 0xef, 0xaf, 0x42, + 0x98, 0x21, 0x27, 0x54, 0xf8, 0xbd, 0x67, 0x41, 0xee, 0xa7, 0x6e, 0x2f, 0x2f, 0x74, 0xc1, 0xfa, + 0x6a, 0xef, 0xc9, 0x2c, 0xf9, 0x5a, 0x4d, 0x1b, 0x7f, 0x90, 0xad, 0xa2, 0x77, 0x1c, 0xab, 0x5a, + 0x5d, 0xc4, 0x44, 0x15, 0xcc, 0x69, 0x85, 0x2f, 0xd6, 0x24, 0xe8, 0x31, 0xe8, 0x34, 0xf9, 0x70, + 0xb2, 0x4f, 0xf8, 0x53, 0x31, 0xa2, 0x29, 0x4e, 0xd3, 0xec, 0x2a, 0x3f, 0x68, 0x4c, 0x0c, 0x7f, + 0x21, 0x4c, 0x5c, 0x6a, 0x9a, 0x5b, 0x2f, 0x9d, 0x4a, 0x37, 0x6c, 0xc4, 0x07, 0x3a, 0xdc, 0x30, + 0xd7, 0x30, 0x81, 0x87, 0xf7, 0xd5, 0xd8, 0x30, 0x3f, 0x48, 0xab, 0xf0, 0x0f, 0x7d, 0x1d, 0xfe, + 0xf9, 0x22, 0x64, 0x4b, 0x2a, 0x6d, 0x07, 0xe0, 0x2c, 0x81, 0x26, 0xc1, 0xc5, 0xc8, 0x6c, 0x20, + 0x53, 0x80, 0x01, 0x12, 0xed, 0x31, 0xd5, 0x1a, 0xe8, 0xad, 0x3d, 0x29, 0x08, 0x34, 0x3f, 0x8b, + 0xdd, 0xf0, 0x76, 0x10, 0xa1, 0x1b, 0x77, 0xae, 0xfd, 0xd7, 0xf4, 0x7c, 0xb2, 0xa0, 0x7c, 0xb8, + 0x60, 0x3b, 0xc8, 0x7d, 0x08, 0x73, 0xc9, 0x90, 0x3b, 0x02, 0x15, 0xb5, 0xfe, 0xaf, 0xd5, 0x46, + 0x37, 0x4e, 0xfd, 0x4d, 0xac, 0x95, 0x66, 0x7a, 0xb1, 0x1a, 0x50, 0x0d, 0x8c, 0xe2, 0x9c, 0x65, + 0x27, 0x53, 0xfa, 0x92, 0xc0, 0x8a, 0x35, 0xea, 0xe8, 0x5c, 0x72, 0x4a, 0xa6, 0x25, 0xf6, 0x7a, + 0x6a, 0x8c, 0xcf, 0xcb, 0x16, 0x1d, 0x80, 0x69, 0x3a, 0x85, 0x30, 0xf1, 0xb6, 0xf8, 0xac, 0x4c, + 0x85, 0x51, 0xae, 0xa7, 0x8f, 0x74, 0x5a, 0xad, 0x6a, 0xba, 0x58, 0xd4, 0x1f, 0x03, 0x44, 0xc8, + 0x40, 0xab, 0xe0, 0x80, 0xde, 0x3f, 0x6d, 0xef, 0x3a, 0x6b, 0xec, 0xb3, 0x0e, 0x01, 0x10, 0xa1, + 0xf9, 0x60, 0x7a, 0xa7, 0x68, 0xcd, 0xd2, 0xb4, 0x99, 0x43, 0xad, 0x51, 0x43, 0xd9, 0xa2, 0x8a, + 0x70, 0x5f, 0x1d, 0x11, 0xab, 0x55, 0x7c, 0xde, 0x9f, 0xb6, 0xbc, 0x4f, 0xd4, 0x01, 0x07, 0xcb, + 0x4c, 0xa1, 0x7f, 0x4c, 0x7d, 0x06, 0x23, 0x21, 0x9c, 0x87, 0xcb, 0xbf, 0xa6, 0xa7, 0x3e, 0x83, + 0x4a, 0x11, 0x95, 0x84, 0xcd, 0xca, 0xfa, 0x5b, 0xe9, 0xf3, 0xc8, 0xbd, 0xcf, 0x4f, 0x19, 0xf0, + 0xaf, 0x41, 0x71, 0xda, 0x7a, 0x28, 0xbb, 0x95, 0xd6, 0xa8, 0x0b, 0x3b, 0x70, 0xa1, 0x9f, 0x09, + 0x23, 0xff, 0x63, 0x8b, 0x92, 0xc2, 0x8f, 0xc5, 0x17, 0x42, 0x82, 0x48, 0x26, 0xcf, 0x06, 0x38, + 0x90, 0xec, 0xa9, 0xe1, 0x5d, 0xdb, 0x5e, 0x4e, 0x41, 0x72, 0x53, 0xf0, 0x1b, 0x3a, 0x09, 0x39, + 0x0f, 0x47, 0xbe, 0x28, 0xeb, 0x28, 0x51, 0xa9, 0x88, 0x31, 0x70, 0xc6, 0xbf, 0x02, 0x45, 0xbf, + 0x43, 0x18, 0x07, 0x97, 0x73, 0xa2, 0x48, 0xed, 0xaf, 0x77, 0xcd, 0x2b, 0x32, 0x35, 0x47, 0xb0, + 0xea, 0xab, 0x25, 0xfd, 0x02, 0xaa, 0x0f, 0x2c, 0xf6, 0x68, 0xee, 0xef, 0x90, 0xf5, 0xb9, 0xaf, + 0x05, 0x39, 0x14, 0x87, 0x7f, 0xa1, 0xf3, 0xf7, 0x5f, 0xbe, 0xb9, 0xbe, 0x8a, 0xba, 0x38, 0x6c, + 0xc8, 0x83, 0x4b, 0xdf, 0x62, 0xa0, 0x0d, 0x29, 0x04, 0x54, 0xa5, 0xec, 0x97, 0x1d, 0xa2, 0x02, + 0x88, 0x46, 0x47, 0x25, 0x34, 0x57, 0x20, 0xb7, 0x44, 0x77, 0x08, 0xf0, 0xfa, 0xc6, 0xf6, 0x51, + 0xd8, 0xd9, 0xd9, 0xfa, 0xa0, 0x46, 0xa6, 0x09, 0x9f, 0x35, 0xf3, 0xb6, 0xa0, 0x66, 0x0c, 0x08, + 0x15, 0xdc, 0x06, 0x48, 0x7f, 0xbd, 0x1d, 0x84, 0xec, 0x5c, 0x12, 0xb7, 0x34, 0x0e, 0x3c, 0x1e, + 0x37, 0x07, 0x0a, 0xf8, 0x02, 0x2d, 0xf6, 0x0b, 0x85, 0x83, 0x0a, 0x72, 0x42, 0x5d, 0x22, 0x9c, + 0xf0, 0x87, 0x57, 0x7d, 0xeb, 0x33, 0x84, 0x55, 0x3d, 0x28, 0x0d, 0xf8, 0x54, 0x40, 0xba, 0xfb, + 0x18, 0xa6, 0x3c, 0x50, 0x8b, 0xfc, 0x51, 0x3e, 0x35, 0xf8, 0xa2, 0x9d, 0x95, 0xf5, 0x6f, 0xd1, + 0x01, 0x77, 0x7a, 0x9c, 0xd4, 0x00, 0xc0, 0x73, 0x18, 0xd8, 0xce, 0x23, 0x70, 0x8c, 0xc0, 0xe3, + 0x5d, 0x0b, 0x35, 0x63, 0x91, 0x71, 0x69, 0x34, 0x68, 0x7b, 0x4d, 0xe8, 0x38, 0xd2, 0x00, 0x6d, + 0x8b, 0xc5, 0x7c, 0x3b, 0x41, 0x7f, 0x39, 0x9e, 0x7a, 0x53, 0x55, 0xb9, 0x6d, 0x84, 0xeb, 0x88, + 0x49, 0xc8, 0x20, 0x69, 0x4b, 0xbd, 0xdd, 0x2d, 0x71, 0x8b, 0x76, 0x8e, 0x32, 0x81, 0xaf, 0xf2, + 0x00, 0x72, 0x8c, 0x50, 0x9a, 0x20, 0xc6, 0xaf, 0x6d, 0x9c, 0x97, 0x41, 0x2d, 0x56, 0xcf, 0xa6, + 0x39, 0x84, 0xb4, 0xb1, 0xb7, 0x8f, 0x23, 0xfc, 0x92, 0xe2, 0xed, 0x2b, 0xc4, 0x37, 0x00, 0x82, + 0x71, 0x27, 0x4c, 0xb5, 0x1f, 0x0f, 0x90, 0x41, 0xbb, 0xf4, 0x27, 0x0e, 0x3c, 0xef, 0x77, 0xba, + 0x28, 0xcf, 0xc5, 0x78, 0x4b, 0x1f, 0xa0, 0xa8, 0x15, 0x33, 0x3b, 0x82, 0xf3, 0x3f, 0xbe, 0x1c, + 0xa3, 0xc1, 0x12, 0x9b, 0x54, 0x4a, 0xd2, 0xb7, 0x74, 0x95, 0xfa, 0x0d, 0xe0, 0x28, 0x35, 0xc1, + 0x35, 0xaa, 0x65, 0xab, 0xfe, 0x86, 0x9c, 0xa8, 0xf7, 0x88, 0x06, 0x17, 0x27, 0xcf, 0x01, 0xd7, + 0x75, 0x7b, 0x8c, 0x80, 0x26, 0xdd, 0xe0, 0x4e, 0x87, 0x55, 0x1c, 0x69, 0x73, 0xfc, 0xb6, 0x91, + 0x42, 0x57, 0xd5, 0x9f, 0xcb, 0xbf, 0x78, 0xd0, 0x68, 0x05, 0xe7, 0x84, 0x4b, 0xde, 0xd8, 0xdd, + 0x10, 0xd3, 0xbf, 0xa9, 0xbd, 0xc9, 0xc0, 0x8d, 0x77, 0x48, 0x68, 0xd6, 0x92, 0x15, 0x9a, 0x4c, + 0xd3, 0xa2, 0x94, 0x42, 0x00, 0x91, 0xdc, 0x59, 0x9f, 0x99, 0xc0, 0x80, 0x63, 0xd9, 0x19, 0xfa, + 0xe3, 0x59, 0x25, 0xf9, 0x26, 0x89, 0xd9, 0x5b, 0x0e, 0xbd, 0xd5, 0x82, 0xdd, 0xc7, 0x8c, 0xb5, + 0x7b, 0xa2, 0x5c, 0xae, 0xab, 0x20, 0x5f, 0xe9, 0xed, 0x98, 0x1a, 0xac, 0xbb, 0xff, 0xd9, 0x34, + 0xd5, 0xa1, 0xc0, 0xc5, 0x35, 0x6b, 0x19, 0x51, 0xfc, 0x24, 0xe0, 0x00, 0xc9, 0xa0, 0x73, 0x46, + 0x54, 0x0f, 0x2c, 0xbc, 0xf6, 0x5d, 0xe9, 0xb7, 0x48, 0xe9, 0x48, 0x23, 0x11, 0x05, 0xe5, 0xd6, + 0x57, 0xff, 0xf6, 0x21, 0x7f, 0x3b, 0xda, 0xad, 0xbd, 0x9c, 0xdf, 0x06, 0x41, 0x24, 0x7d, 0xfd, + 0xee, 0x23, 0x55, 0x35, 0x6b, 0x69, 0x32, 0x39, 0x46, 0xf8, 0xee, 0x51, 0x62, 0xbd, 0x85, 0xa9, + 0x5b, 0x12, 0x1f, 0x2c, 0x2f, 0xdc, 0x2d, 0x4e, 0xbd, 0x0a, 0xd8, 0xfc, 0x2a, 0xd8, 0x7c, 0x52, + 0xe6, 0x95, 0xa3, 0x10, 0x88, 0xcd, 0xc6, 0xd0, 0x94, 0x97, 0x25, 0x5f, 0xd3, 0xd2, 0x0d, 0xff, + 0x8a, 0x09, 0x77, 0xcb, 0x79, 0xf7, 0xcb, 0x4c, 0x40, 0xae, 0xbc, 0x1b, 0xd9, 0xf7, 0xa1, 0x7c, + 0x87, 0xbe, 0xbe, 0x0d, 0xcb, 0x5a, 0x73, 0x34, 0x3c, 0x5e, 0x76, 0x38, 0x5a, 0xc5, 0xac, 0x2d, + 0x2c, 0x35, 0x46, 0x34, 0xfa, 0x40, 0x63, 0x5b, 0x16, 0xd2, 0x5f, 0xe1, 0xc1, 0x01, 0x6a, 0xcb, + 0xd3, 0x40, 0x72, 0x63, 0x83, 0x7a, 0x30, 0x34, 0xc3, 0xd7, 0x2e, 0xbb, 0x71, 0x39, 0xf3, 0xa3, + 0x2a, 0xe9, 0x5e, 0x3e, 0x77, 0x7c, 0x44, 0xb0, 0x7d, 0xd5, 0xb8, 0x2e, 0xea, 0xfc, 0xad, 0x43, + 0x74, 0xd6, 0xa3, 0xcd, 0x11, 0x79, 0x34, 0x0f, 0x9e, 0xbd, 0xc2, 0x77, 0xef, 0x6d, 0x6a, 0x81, + 0x0e, 0x6d, 0xa8, 0x70, 0xaa, 0xa0, 0xa6, 0xc1, 0xd8, 0x94, 0x69, 0x0d, 0x44, 0x02, 0x0f, 0x10, + 0x7c, 0x53, 0x5f, 0xd1, 0x80, 0x5c, 0x2d, 0x81, 0x43, 0x40, 0xf1, 0x01, 0x54, 0x84, 0x5f, 0x05, + 0x3b, 0xa8, 0x62, 0xa6, 0x0a, 0xff, 0x1a, 0x33, 0x36, 0x1f, 0xe1, 0xfd, 0xbc, 0x0e, 0x73, 0xee, + 0xa8, 0x2e, 0x6c, 0xde, 0x13, 0xc8, 0xf1, 0x29, 0x9b, 0x2c, 0x43, 0x5e, 0x59, 0x82, 0x32, 0xc4, + 0x33, 0xd6, 0xec, 0xc4, 0x06, 0x96, 0xef, 0x36, 0x52, 0x79, 0x3d, 0xff, 0x8c, 0x1b, 0x40, 0x99, + 0xbc, 0x90, 0x30, 0x68, 0x80, 0x93, 0x5c, 0x58, 0xf2, 0x4f, 0xf3, 0xa4, 0xaf, 0xb5, 0x78, 0xf8, + 0x36, 0x5e, 0x96, 0x03, 0x09, 0x11, 0x13, 0xc2, 0xee, 0x01, 0xfd, 0x2d, 0x6d, 0xd5, 0x26, 0xae, + 0xc0, 0xc0, 0xf7, 0x7d, 0x6c, 0x9d, 0xc2, 0x20, 0xd8, 0xb6, 0x9a, 0x8e, 0xf2, 0x51, 0xd6, 0xd6, + 0xcb, 0x6b, 0x92, 0xdf, 0x95, 0xd3, 0xb1, 0xb8, 0x29, 0xf8, 0x4d, 0x69, 0x33, 0x9f, 0xa5, 0xfa, + 0xac, 0x84, 0x01, 0xfa, 0x71, 0xeb, 0x77, 0x97, 0xa2, 0x55, 0xe5, 0x24, 0x02, 0xaf, 0xfa, 0x62, + 0xe8, 0x99, 0x41, 0xf2, 0x08, 0xd6, 0xf6, 0x40, 0x76, 0xfe, 0xe0, 0x42, 0x44, 0x36, 0x7b, 0xaa, + 0xe0, 0x0f, 0x58, 0xd8, 0x01, 0x81, 0x3a, 0x5a, 0x44, 0x7d, 0x4b, 0xf3, 0x55, 0xd7, 0x67, 0x51, + 0xdd, 0x4f, 0xbf, 0x52, 0x97, 0x87, 0x6c, 0xd7, 0x69, 0x22, 0xf5, 0x99, 0x07, 0xdf, 0x56, 0x11, + 0x59, 0x34, 0xfb, 0xa6, 0x7e, 0x2b, 0xf7, 0x7d, 0x77, 0x94, 0xa5, 0x94, 0xd1, 0x9e, 0x96, 0x1d, + 0x15, 0x43, 0x86, 0xcb, 0x4a, 0xe4, 0x98, 0x42, 0x9b, 0xab, 0xd5, 0x2d, 0x2a, 0x43, 0x4f, 0x02, + 0x73, 0x48, 0x11, 0x46, 0x1f, 0x77, 0xe5, 0x56, 0xdd, 0x60, 0xea, 0x06, 0xd1, 0x19, 0x87, 0x88, + 0x0f, 0x8b, 0xcf, 0xcc, 0x23, 0x3a, 0xc1, 0x55, 0xa7, 0x23, 0xbd, 0xce, 0xb4, 0xb2, 0x38, 0x16, + 0xb4, 0x6a, 0x4e, 0x6f, 0x6c, 0x3e, 0x8b, 0x18, 0x39, 0xed, 0xa7, 0x03, 0xa8, 0x21, 0xf2, 0xd6, + 0xa2, 0xd0, 0xa6, 0xff, 0x21, 0xc6, 0xa7, 0xe4, 0x8f, 0xe0, 0xff, 0xb6, 0xfc, 0x9f, 0xed, 0x9e, + 0x2a, 0xa9, 0x18, 0x7e, 0x03, 0x7a, 0xfe, 0x64, 0xcd, 0x1c, 0x2e, 0x5c, 0x76, 0x3c, 0xda, 0x0e, + 0x0a, 0x4b, 0xb9, 0xe3, 0xd3, 0x55, 0x04, 0x90, 0xf2, 0xa1, 0x68, 0x24, 0xf7, 0xee, 0x77, 0x87, + 0x2d, 0xec, 0x2f, 0x0a, 0x3e, 0xcb, 0x14, 0xd5, 0xe7, 0xf6, 0xeb, 0xd7, 0x68, 0x5e, 0x6a, 0xf4, + 0x34, 0xed, 0x05, 0x5d, 0xd0, 0xa6, 0x2c, 0xfd, 0xd1, 0x10, 0x42, 0x64, 0x9f, 0x5d, 0xb8, 0x16, + 0xf5, 0xe6, 0xa0, 0x18, 0x44, 0xb6, 0x1d, 0x97, 0xdd, 0x71, 0xb4, 0x54, 0x6c, 0xf7, 0x4c, 0xe8, + 0xab, 0x1a, 0xc2, 0x5e, 0x05, 0x81, 0x60, 0x18, 0x20, 0x78, 0x42, 0x9a, 0xf4, 0x1f, 0x30, 0x7b, + 0x08, 0x63, 0xf7, 0x01, 0x48, 0xdd, 0xf8, 0x2f, 0xef, 0x43, 0x0b, 0x70, 0xac, 0xb3, 0x4b, 0xe8, + 0x5b, 0x47, 0x50, 0xb2, 0xae, 0xb2, 0x12, 0x97, 0x81, 0xe7, 0x4f, 0x39, 0x1e, 0xbe, 0xa1, 0xa8, + 0xac, 0x26, 0x14, 0x6c, 0x9e, 0x24, 0x98, 0x45, 0xec, 0x5e, 0xc3, 0x71, 0x89, 0xb9, 0x19, 0x6b, + 0x11, 0x9a, 0x42, 0xad, 0x42, 0x18, 0x2b, 0xdb, 0x0d, 0x78, 0x93, 0xea, 0x9f, 0x0f, 0xfe, 0x6d, + 0x2b, 0x6a, 0xab, 0x9a, 0xa1, 0x3a, 0x5b, 0x02, 0xe7, 0x9d, 0xf4, 0x7a, 0x1f, 0x04, 0x91, 0x89, + 0x8f, 0x81, 0x03, 0xb2, 0x75, 0xc8, 0x7a, 0x7e, 0x42, 0x61, 0x93, 0xd6, 0xef, 0x8d, 0x36, 0x4a, + 0x8e, 0x76, 0x2a, 0x67, 0x44, 0xaf, 0x3c, 0x6e, 0x2e, 0x6f, 0xe4, 0x7a, 0xdd, 0x81, 0x97, 0xc9, + 0x02, 0x0d, 0x0a, 0x9c, 0xca, 0x5e, 0x97, 0xd3, 0x85, 0xfd, 0x2b, 0x25, 0x3c, 0x90, 0xf0, 0xc1, + 0x09, 0xa0, 0x46, 0xdd, 0x78, 0x37, 0x60, 0xf4, 0x48, 0x44, 0xb1, 0x9d, 0x71, 0xa2, 0x95, 0x59, + 0x8f, 0x22, 0x7f, 0x93, 0xaf, 0xe0, 0x22, 0x75, 0x3b, 0x5d, 0x85, 0x66, 0x28, 0x94, 0xc9, 0xe7, + 0x1e, 0x33, 0x67, 0x9c, 0x96, 0x44, 0x0a, 0xac, 0xa6, 0x5d, 0xfb, 0xfb, 0x38, 0xbf, 0x83, 0x36, + 0xf1, 0x29, 0xfc, 0xc0, 0xdf, 0x49, 0x63, 0x2d, 0xc4, 0xb5, 0xed, 0x6e, 0xae, 0x74, 0x42, 0xea, + 0xbc, 0x98, 0xc3, 0x65, 0x20, 0x9c, 0xdc, 0x84, 0x0d, 0x3c, 0x1d, 0xc2, 0xb6, 0xb1, 0xe3, 0x0d, + 0xc6, 0xe7, 0x19, 0xb2, 0x35, 0xe0, 0x06, 0xdb, 0xfd, 0x56, 0x5c, 0x35, 0x75, 0x0f, 0x51, 0x6b, + 0x02, 0xdd, 0xdf, 0x66, 0xef, 0x35, 0x6a, 0x6e, 0x72, 0x5e, 0x27, 0x58, 0xc1, 0x80, 0x5f, 0xc2, + 0x2a, 0x0f, 0x60, 0xf3, 0xbd, 0x34, 0xf2, 0x2e, 0x9d, 0x63, 0xba, 0x12, 0x92, 0x37, 0x11, 0x81, + 0x2d, 0xee, 0x14, 0xc6, 0x40, 0x7e, 0xd9, 0x5e, 0x6b, 0xeb, 0x3e, 0x83, 0x39, 0xe5, 0x0c, 0x90, + 0xce, 0x78, 0xbd, 0xae, 0xbd, 0x61, 0xd6, 0x46, 0xa1, 0xcd, 0xac, 0xf6, 0xc6, 0xd4, 0xfe, 0xfc, + 0x91, 0xe4, 0x25, 0xbc, 0xde, 0x38, 0x64, 0xde, 0x9e, 0x66, 0xc6, 0xfe, 0xc4, 0x92, 0x4b, 0x0a, + 0x3d, 0xcc, 0xcc, 0xac, 0x8d, 0x21, 0xa6, 0x66, 0xb5, 0xbf, 0xc6, 0x1d, 0x4e, 0x78, 0xc2, 0xc2, + 0x2d, 0x5f, 0x34, 0x95, 0x13, 0x98, 0xb2, 0x60, 0x78, 0xed, 0x5c, 0x7f, 0xd5, 0x56, 0x12, 0xef, + 0x65, 0x44, 0xe1, 0xf3, 0xc8, 0x28, 0x8e, 0xe5, 0x71, 0x60, 0x03, 0xbe, 0x65, 0xb6, 0x8a, 0xf8, + 0x84, 0xe8, 0xb3, 0xbb, 0xb7, 0xcc, 0xb9, 0x49, 0xac, 0x77, 0xbd, 0x65, 0x92, 0xcb, 0x1e, 0x0b, + 0x09, 0x6e, 0x4a, 0x89, 0xe0, 0x1e, 0x82, 0x9f, 0x0d, 0xca, 0xc7, 0xab, 0xe8, 0x69, 0x5c, 0x4e, + 0xd7, 0x89, 0x1e, 0xe1, 0x5a, 0xa3, 0x50, 0xf0, 0x71, 0x61, 0x27, 0x8d, 0xab, 0x70, 0xf8, 0xe9, + 0x63, 0x67, 0xbb, 0x00, 0x6e, 0x80, 0x29, 0x3c, 0xe9, 0x7b, 0xcf, 0x37, 0x5c, 0x8d, 0x58, 0x77, + 0x2f, 0xfa, 0xe9, 0x57, 0xc6, 0xf1, 0xf6, 0x10, 0x9b, 0xc5, 0x5d, 0x5f, 0x95, 0x19, 0x37, 0xa4, + 0x45, 0x4f, 0x3d, 0x95, 0x28, 0x9d, 0x1d, 0x73, 0xa2, 0xeb, 0xa6, 0x73, 0x01, 0xd7, 0x9b, 0xe2, + 0x38, 0x4a, 0xb0, 0xc6, 0x59, 0x3f, 0x98, 0x6f, 0xd8, 0x25, 0xe1, 0x38, 0xb3, 0x21, 0x33, 0xaf, + 0xce, 0x0f, 0x56, 0xac, 0x6b, 0x8d, 0x65, 0xb3, 0x47, 0xee, 0xbe, 0x6f, 0x0c, 0x22, 0x39, 0x4c, + 0x44, 0x20, 0x05, 0x0f, 0xf2, 0x66, 0x6a, 0xb5, 0x59, 0xb7, 0x0d, 0x4f, 0x87, 0xb7, 0xba, 0x57, + 0x98, 0x42, 0xae, 0x67, 0x47, 0xcf, 0x61, 0xcd, 0x68, 0x28, 0x18, 0x34, 0xbe, 0x75, 0x9c, 0xcb, + 0x72, 0xbc, 0x3b, 0xed, 0x7f, 0x00, 0xb9, 0x2a, 0x22, 0x93, 0x8f, 0x2a, 0x5d, 0x0a, 0xd4, 0xae, + 0x76, 0xf5, 0x61, 0xe6, 0x6c, 0xef, 0xa6, 0xc0, 0xc2, 0xd0, 0xbb, 0x90, 0x74, 0xfe, 0x3a, 0x0e, + 0xfd, 0xc6, 0xac, 0x75, 0x77, 0xa9, 0x98, 0x01, 0x1f, 0x30, 0x4d, 0xd8, 0x4e, 0xa0, 0xc1, 0x39, + 0x8e, 0xc5, 0xfc, 0x5e, 0xba, 0xcf, 0x37, 0x98, 0x44, 0x12, 0x76, 0x88, 0x66, 0xc3, 0xe2, 0xe1, + 0x83, 0x72, 0x0a, 0xc9, 0x0a, 0xe2, 0xde, 0x5d, 0x7e, 0x4e, 0x48, 0x4e, 0x4d, 0xb9, 0xa3, 0x1e, + 0xda, 0x43, 0xbe, 0x6d, 0x85, 0xc2, 0xfe, 0x1e, 0x6a, 0xb3, 0xcc, 0x63, 0x65, 0xb5, 0x5a, 0xf2, + 0x83, 0x01, 0x27, 0x72, 0x2d, 0x83, 0x7b, 0xf3, 0x00, 0x82, 0x74, 0x8a, 0x59, 0x0a, 0x87, 0x85, + 0x34, 0xba, 0x7f, 0x39, 0xdb, 0x02, 0xec, 0x2a, 0xe2, 0x04, 0x6f, 0xc9, 0x6c, 0x21, 0x63, 0xed, + 0x5b, 0x46, 0x77, 0xc0, 0xd9, 0xa6, 0xd0, 0x3e, 0x40, 0xa3, 0xb8, 0x26, 0x40, 0x70, 0x29, 0x49, + 0xcc, 0x90, 0x73, 0xf8, 0x1d, 0x24, 0xae, 0xa7, 0x84, 0xa4, 0x35, 0xe7, 0x02, 0xbf, 0x6d, 0x89, + 0x58, 0x2e, 0x54, 0x79, 0xef, 0x6f, 0x3a, 0x19, 0xa8, 0xbf, 0xc0, 0xe6, 0x16, 0xee, 0xbb, 0x9b, + 0x06, 0xa0, 0x3a, 0x9e, 0x90, 0x77, 0x7c, 0xf8, 0x1c, 0x4f, 0x64, 0x72, 0x3a, 0x77, 0x9a, 0x2f, + 0xb6, 0xa4, 0x7a, 0x1f, 0x0f, 0xbe, 0x07, 0x16, 0x41, 0xb5, 0x22, 0x65, 0x5b, 0xc5, 0x4b, 0x0c, + 0xc6, 0xb8, 0x5f, 0xd0, 0xa2, 0x40, 0x6d, 0x1b, 0xc4, 0xd8, 0xd9, 0x18, 0x07, 0xd2, 0xc9, 0x55, + 0x15, 0xba, 0xee, 0x3d, 0xc1, 0xd9, 0xe2, 0xf5, 0x03, 0x4b, 0x00, 0x41, 0xdb, 0x4e, 0x20, 0x64, + 0xcb, 0x16, 0x38, 0xe3, 0x7d, 0x47, 0x77, 0x1d, 0xf7, 0x27, 0xce, 0x67, 0x01, 0xd4, 0x7b, 0x3b, + 0xaf, 0x89, 0xb2, 0x5f, 0xb4, 0x37, 0x66, 0x2c, 0xac, 0x7e, 0x27, 0xd6, 0xbb, 0xfc, 0x58, 0x17, + 0x9f, 0xcc, 0x7c, 0x13, 0x44, 0xb3, 0xd7, 0xfe, 0xd5, 0xae, 0x75, 0x29, 0xba, 0x80, 0x7e, 0xf4, + 0x84, 0x19, 0x63, 0x56, 0x37, 0x2a, 0x32, 0x09, 0x25, 0x3b, 0x39, 0xb9, 0x9a, 0xbe, 0x03, 0x18, + 0x9e, 0x1c, 0xe1, 0x8a, 0x0c, 0x1f, 0xfb, 0xcf, 0xd1, 0xd7, 0x96, 0x6f, 0xc7, 0xda, 0x57, 0x81, + 0x98, 0x09, 0x1f, 0x48, 0x91, 0x1c, 0x1a, 0x1d, 0xba, 0xe8, 0x52, 0x42, 0x8d, 0x63, 0xc7, 0xd6, + 0x67, 0xca, 0xcc, 0xdb, 0x56, 0xba, 0x2c, 0x89, 0xdc, 0xa2, 0xaf, 0x8c, 0x61, 0xdc, 0x56, 0x11, + 0x33, 0xd4, 0xa8, 0x3c, 0x32, 0x51, 0xe2, 0x4a, 0x80, 0xd6, 0x76, 0x66, 0x0f, 0x72, 0x8a, 0xe1, + 0x6d, 0xd7, 0xb3, 0x2e, 0x3e, 0xe0, 0x48, 0x63, 0xd8, 0x3f, 0xff, 0x5d, 0x1e, 0x3d, 0xbe, 0xf2, + 0xa5, 0x3a, 0xb4, 0x94, 0xe8, 0xab, 0x77, 0xca, 0xc8, 0x98, 0x18, 0xde, 0xdb, 0xa0, 0xef, 0x3b, + 0xe5, 0x67, 0xc0, 0x9e, 0xf5, 0x92, 0xbd, 0xfd, 0x3c, 0xde, 0xd5, 0x19, 0x4a, 0x8d, 0xf5, 0x7c, + 0xd5, 0x03, 0x4e, 0x69, 0x2a, 0x6f, 0x80, 0xca, 0x0f, 0xed, 0x7b, 0xb2, 0xc2, 0x02, 0x85, 0xe4, + 0xf1, 0x39, 0xcc, 0xfe, 0x04, 0xcd, 0xa6, 0x62, 0x85, 0x13, 0xcc, 0x83, 0x4d, 0xa3, 0xbd, 0xa8, + 0x8d, 0xa5, 0x04, 0xda, 0x32, 0x53, 0x74, 0x71, 0x5c, 0x91, 0x67, 0x0e, 0x83, 0x38, 0x98, 0xdd, + 0x48, 0x83, 0xcf, 0xc9, 0xed, 0x7b, 0xef, 0xc3, 0x95, 0x77, 0xe3, 0xf1, 0x53, 0x0d, 0xd6, 0xde, + 0xef, 0xb4, 0x1b, 0xb9, 0x27, 0x1a, 0xe9, 0xc3, 0x93, 0xe4, 0xb5, 0xb2, 0x1b, 0x9d, 0x95, 0x4c, + 0xf2, 0xfb, 0x9d, 0x90, 0x86, 0xc9, 0x67, 0xce, 0x0d, 0x50, 0x7a, 0x48, 0x34, 0x54, 0x2c, 0x10, + 0x8f, 0x9a, 0x19, 0x63, 0x16, 0x97, 0xd8, 0x5a, 0xba, 0x83, 0x93, 0x08, 0x75, 0x3c, 0xa2, 0x91, + 0x98, 0xe3, 0x89, 0x46, 0x4e, 0xc3, 0x92, 0xb6, 0xa7, 0x21, 0xaf, 0x43, 0xe2, 0x70, 0xea, 0xd4, + 0xa6, 0x7a, 0xf3, 0x6b, 0x4e, 0x46, 0x3e, 0xa2, 0x55, 0x83, 0xea, 0xb8, 0x04, 0xf0, 0x55, 0xd0, + 0x14, 0xf7, 0x71, 0x3a, 0xc1, 0x6b, 0x67, 0x6c, 0x68, 0xa5, 0xa1, 0x48, 0x27, 0x3c, 0xa3, 0x6c, + 0x30, 0x01, 0x4b, 0xab, 0x3d, 0xb7, 0xcc, 0x85, 0xff, 0x56, 0x2a, 0x8e, 0x02, 0x41, 0xc5, 0xed, + 0x6e, 0x21, 0x52, 0x78, 0x4f, 0x53, 0xac, 0x42, 0xb9, 0x8d, 0x13, 0xbf, 0xf1, 0xb4, 0x09, 0x2d, + 0x63, 0x79, 0xce, 0xc7, 0x74, 0x46, 0xdc, 0x20, 0xe6, 0x80, 0xda, 0xaa, 0x11, 0x4d, 0x1b, 0xf9, + 0x7b, 0x87, 0x8d, 0x79, 0xa5, 0x72, 0x27, 0x58, 0xfb, 0x36, 0x2b, 0x7c, 0xc3, 0xea, 0xa3, 0x06, + 0x76, 0x98, 0x2a, 0x13, 0x51, 0x90, 0xe2, 0x0f, 0xee, 0x3e, 0x36, 0xd6, 0x8a, 0x37, 0xcb, 0x6f, + 0xd6, 0xaf, 0x45, 0xcc, 0xf5, 0xe6, 0x56, 0x2e, 0xd3, 0x75, 0x48, 0xf0, 0x6e, 0xb2, 0x40, 0x0c, + 0x57, 0x30, 0x3a, 0xa9, 0x64, 0x12, 0x07, 0x61, 0x1d, 0x92, 0xd9, 0xc7, 0x5b, 0xa5, 0x9f, 0x41, + 0xd5, 0xa9, 0x3c, 0x4e, 0x3a, 0x92, 0x7a, 0x49, 0xc9, 0xc8, 0x64, 0x9b, 0xf5, 0xcb, 0x7a, 0x37, + 0xcc, 0x27, 0x9a, 0xb6, 0xac, 0x9f, 0x07, 0x6a, 0x49, 0xfa, 0xb6, 0xd9, 0xb4, 0xab, 0x18, 0xaa, + 0x26, 0x64, 0xc9, 0x4a, 0xab, 0x0b, 0x74, 0xa0, 0xa3, 0xa9, 0x80, 0xfd, 0x9f, 0x92, 0x86, 0xfc, + 0xae, 0x45, 0xae, 0x5f, 0x3e, 0x3d, 0x54, 0x2f, 0x4b, 0x8f, 0xe9, 0x83, 0x2b, 0x30, 0xfd, 0x64, + 0x38, 0x95, 0xb9, 0x3c, 0xd1, 0x1e, 0x11, 0x3e, 0x2a, 0x25, 0xad, 0x2a, 0x9c, 0x57, 0x37, 0xf5, + 0x2f, 0x34, 0xea, 0xf4, 0x72, 0x6e, 0xee, 0xe7, 0xe4, 0xd8, 0x87, 0x5d, 0x3e, 0x6c, 0x76, 0xdb, + 0xda, 0xcc, 0x11, 0xf3, 0x64, 0x96, 0x4a, 0x85, 0xe9, 0xff, 0x4a, 0x1e, 0xbc, 0xe3, 0x7c, 0x84, + 0xc4, 0x5c, 0xeb, 0x17, 0x63, 0x3d, 0xf8, 0x62, 0xc7, 0x77, 0xea, 0x49, 0x11, 0xb7, 0x0f, 0x75, + 0xd8, 0x27, 0xea, 0x34, 0x9f, 0x08, 0xfb, 0x47, 0xad, 0x9e, 0x79, 0x05, 0x04, 0x08, 0x4a, 0x23, + 0x47, 0xcb, 0xfb, 0xbc, 0x79, 0x3c, 0x8b, 0x2a, 0x44, 0x2a, 0xd0, 0x62, 0x7e, 0xe2, 0x00, 0x37, + 0xbc, 0x07, 0x17, 0xb3, 0x16, 0xe2, 0x73, 0x1a, 0x5d, 0x8c, 0xdd, 0x16, 0x3a, 0x28, 0x15, 0x73, + 0x4e, 0xbf, 0x9c, 0x08, 0x25, 0xd8, 0x9f, 0xb9, 0x90, 0xce, 0x2d, 0x5d, 0x3f, 0x7c, 0xac, 0xca, + 0x07, 0x9c, 0x1d, 0x34, 0x30, 0x66, 0x06, 0xc9, 0xb8, 0xe6, 0x53, 0xd4, 0xc7, 0xd9, 0xf4, 0xa4, + 0x89, 0xd6, 0x24, 0xb7, 0xd0, 0xd0, 0xa6, 0x82, 0x3b, 0xda, 0xce, 0xc2, 0x77, 0xf2, 0xd4, 0xb7, + 0x1d, 0xe7, 0x49, 0xa9, 0x82, 0x28, 0xd6, 0x95, 0x6b, 0x77, 0xd9, 0xb8, 0xaa, 0x95, 0xc0, 0xbe, + 0xb2, 0x44, 0xcc, 0xb4, 0x10, 0xdc, 0x6a, 0xfa, 0x2d, 0x6b, 0x7a, 0xac, 0x7a, 0xa7, 0xfa, 0x00, + 0xeb, 0x6c, 0x71, 0x0a, 0xd3, 0xf8, 0x4c, 0x9c, 0xc2, 0xfa, 0xb5, 0x73, 0x01, 0xe0, 0x62, 0xd4, + 0x74, 0xe9, 0xdf, 0x88, 0xda, 0x5b, 0x00, 0x66, 0xbd, 0x16, 0x0b, 0x54, 0x68, 0x96, 0x95, 0xde, + 0x15, 0x12, 0x08, 0x12, 0xf0, 0xca, 0xc5, 0x1f, 0x5a, 0xa0, 0x37, 0x06, 0xe0, 0xb0, 0x0c, 0xf6, + 0xd7, 0x17, 0x63, 0x1b, 0xc7, 0x27, 0xed, 0x0b, 0xa6, 0x4e, 0x59, 0x3c, 0x8e, 0xd9, 0x22, 0x47, + 0x04, 0x60, 0x52, 0xee, 0x19, 0xe3, 0x6c, 0xe4, 0xcf, 0x2f, 0x25, 0x2d, 0x73, 0x10, 0x54, 0x80, + 0x38, 0xbd, 0x4c, 0x27, 0x23, 0x2d, 0x91, 0xa7, 0xb4, 0x59, 0x83, 0xd4, 0xbd, 0x2f, 0x1c, 0x88, + 0x4a, 0xb8, 0xe2, 0xa4, 0x8f, 0xf1, 0x47, 0xc6, 0x3f, 0x51, 0x41, 0x23, 0xe2, 0x4a, 0x79, 0x49, + 0x20, 0xe4, 0x92, 0xe3, 0x9c, 0xa8, 0xf4, 0x32, 0xc0, 0xd0, 0xd4, 0x79, 0xc9, 0x13, 0xf5, 0xd0, + 0x74, 0xba, 0x77, 0x20, 0xd8, 0xcb, 0x57, 0xfe, 0x8c, 0xb4, 0x7b, 0xa2, 0x12, 0xe9, 0x81, 0x74, + 0x3b, 0x59, 0xda, 0xd3, 0x3c, 0xb7, 0xd1, 0x85, 0x04, 0xa3, 0x7f, 0x76, 0x5c, 0x50, 0xb0, 0x52, + 0xaf, 0x0a, 0x9b, 0xc9, 0x3d, 0x64, 0x0f, 0x79, 0x13, 0x58, 0x3e, 0x60, 0x66, 0xe9, 0x8f, 0x39, + 0x85, 0x63, 0x90, 0x0c, 0x69, 0xfd, 0x91, 0x4d, 0x57, 0xf6, 0x4f, 0x1e, 0x0f, 0x80, 0x43, 0xf1, + 0xd2, 0x1a, 0x23, 0x02, 0xc9, 0xd2, 0x1e, 0xc5, 0x94, 0x9f, 0x27, 0x49, 0xc9, 0xb8, 0x46, 0xcd, + 0xd3, 0x4f, 0x05, 0x01, 0x7c, 0xea, 0xe3, 0xe9, 0x96, 0x75, 0xa5, 0xec, 0xb5, 0x80, 0x84, 0x5b, + 0x13, 0x99, 0x19, 0xad, 0x99, 0xc8, 0x34, 0x79, 0x32, 0xb0, 0x8f, 0xc6, 0xfe, 0xb2, 0xa6, 0xf2, + 0xda, 0xc7, 0x5a, 0x05, 0x2e, 0xd3, 0x65, 0xb3, 0x7c, 0x83, 0x84, 0x8d, 0xe4, 0x55, 0x22, 0xbc, + 0xdc, 0xde, 0x8f, 0xcd, 0xc3, 0x13, 0x8b, 0x52, 0xd7, 0x9f, 0x0d, 0xf9, 0x80, 0x99, 0xbf, 0x70, + 0xbb, 0xeb, 0xe4, 0x37, 0x9f, 0xda, 0x13, 0x68, 0xbd, 0x23, 0x18, 0x30, 0x04, 0x68, 0x92, 0xa0, + 0x48, 0x85, 0x72, 0xb4, 0x48, 0x3c, 0x1b, 0xbc, 0x86, 0x89, 0xd5, 0xee, 0x41, 0x35, 0x68, 0xf9, + 0x14, 0x6f, 0x60, 0x9c, 0x5f, 0xaf, 0x3b, 0x6f, 0x1e, 0x8b, 0x30, 0xa0, 0x49, 0x8c, 0xed, 0x46, + 0xb7, 0x2b, 0xf6, 0x9e, 0x2f, 0xb3, 0xd8, 0xeb, 0x56, 0x3c, 0xbf, 0xff, 0x21, 0x5c, 0x32, 0x0b, + 0x83, 0x0f, 0x33, 0x90, 0x27, 0x99, 0x45, 0xf6, 0xb2, 0x47, 0x07, 0xda, 0x61, 0x46, 0x27, 0x63, + 0x6f, 0xf6, 0x58, 0xca, 0x59, 0x76, 0xb0, 0x2d, 0x67, 0xe6, 0x11, 0xd8, 0x03, 0x13, 0x39, 0x8a, + 0xd5, 0x69, 0xaa, 0x72, 0x70, 0x85, 0x08, 0xac, 0x5c, 0x40, 0x5c, 0x30, 0x8e, 0xba, 0x00, 0x1f, + 0x3a, 0x72, 0xaa, 0x24, 0x1d, 0x89, 0xff, 0x6f, 0x2c, 0x03, 0x2a, 0xec, 0x0d, 0x7f, 0x37, 0x3e, + 0x25, 0x10, 0xdd, 0xf2, 0xdb, 0x1c, 0xf7, 0x75, 0x61, 0x56, 0x38, 0xa1, 0x61, 0x1c, 0xd0, 0xe7, + 0x92, 0xc0, 0x69, 0x05, 0x39, 0x2c, 0x24, 0xc4, 0xd2, 0x29, 0x2f, 0xaa, 0x5c, 0xf7, 0x4a, 0xd9, + 0xd8, 0xbe, 0x5a, 0x47, 0x0c, 0xc4, 0xf4, 0x4a, 0xa9, 0x8d, 0xcc, 0xfd, 0xd1, 0x95, 0x08, 0xef, + 0x9a, 0x5d, 0xa8, 0xb0, 0x64, 0x2b, 0xcc, 0xbb, 0xcd, 0x8b, 0x94, 0x25, 0xfd, 0x5e, 0x23, 0x4c, + 0xbc, 0xc0, 0xdf, 0xf9, 0x98, 0xe6, 0xad, 0x18, 0x17, 0x2c, 0xbd, 0x22, 0x98, 0xeb, 0xcc, 0x9f, + 0xc5, 0xdb, 0x9e, 0xe3, 0xdc, 0xfa, 0x5b, 0x7c, 0x01, 0x44, 0x5d, 0xe0, 0xa5, 0x46, 0x06, 0xad, + 0xfe, 0x71, 0x6c, 0x10, 0x85, 0x36, 0xfd, 0x14, 0x6b, 0x82, 0x45, 0x58, 0xa5, 0x97, 0x60, 0x15, + 0x35, 0x3b, 0x77, 0xe8, 0x0c, 0x3e, 0xa6, 0x13, 0x3e, 0xaf, 0x3b, 0xed, 0x4b, 0xa6, 0x93, 0x86, + 0xfd, 0xb1, 0xa8, 0xb4, 0x67, 0x5d, 0x17, 0x0b, 0x4c, 0xac, 0xad, 0xf7, 0x71, 0xc2, 0xd2, 0xe9, + 0x4e, 0xa7, 0x93, 0x5e, 0x82, 0x10, 0x96, 0xf9, 0x55, 0xd6, 0xd5, 0x18, 0xb1, 0xa9, 0xd9, 0x59, + 0x3d, 0x93, 0x6a, 0x20, 0xcc, 0x9e, 0x12, 0x7d, 0x91, 0x79, 0x9c, 0xef, 0x7c, 0x29, 0xaa, 0x84, + 0x34, 0xd0, 0x2e, 0x3d, 0xfd, 0xa1, 0xcb, 0x47, 0xc4, 0xbe, 0x36, 0x25, 0x82, 0x91, 0x2e, 0xb1, + 0x9f, 0x01, 0x2e, 0x0e, 0xb8, 0x3f, 0xff, 0x93, 0xb1, 0x07, 0x3b, 0xb9, 0xda, 0x22, 0xd3, 0x52, + 0x7f, 0x11, 0xcd, 0x61, 0xc8, 0xaf, 0xa3, 0x59, 0x8a, 0xb7, 0x92, 0x5f, 0x7f, 0x69, 0x9a, 0xbc, + 0xd3, 0x00, 0x28, 0x8c, 0xaa, 0x52, 0x5e, 0x79, 0xce, 0xc9, 0xee, 0x1a, 0x80, 0xbb, 0x7e, 0x8f, + 0x9d, 0x32, 0x5f, 0x88, 0x8b, 0x6d, 0xa5, 0x4a, 0x37, 0x1d, 0x6f, 0x22, 0x9d, 0xb7, 0xd8, 0xcf, + 0xb7, 0x67, 0x89, 0x46, 0x80, 0xda, 0x46, 0xad, 0x4f, 0x76, 0xa3, 0x29, 0x65, 0x45, 0xe8, 0xd8, + 0x8a, 0xb3, 0xff, 0xcf, 0x3f, 0xab, 0xd5, 0xac, 0xc6, 0x4b, 0xb4, 0xf1, 0xf2, 0x7e, 0x07, 0xdd, + 0x4a, 0x45, 0x96, 0x84, 0xf4, 0x37, 0x10, 0xff, 0x4b, 0x7d, 0xda, 0x43, 0x26, 0xf3, 0x2b, 0xbe, + 0x49, 0x7c, 0x25, 0x62, 0xec, 0xab, 0x1f, 0x9c, 0x3a, 0x2d, 0x9d, 0xeb, 0x1e, 0x68, 0xfb, 0x84, + 0x22, 0xc7, 0x21, 0x5c, 0xd5, 0xa8, 0xcd, 0x9d, 0xed, 0xf7, 0x6a, 0x53, 0xe4, 0x5c, 0xc2, 0x80, + 0x9f, 0x2c, 0xfb, 0x60, 0xc7, 0xb2, 0x1d, 0x7d, 0x99, 0x4b, 0xe5, 0xef, 0x9d, 0x37, 0x88, 0x21, + 0xbd, 0x6b, 0x5a, 0x9b, 0x3a, 0x14, 0x88, 0x1d, 0x8f, 0xc2, 0x3d, 0xd4, 0xab, 0x06, 0x7c, 0x8f, + 0x71, 0x35, 0xe5, 0xcf, 0x27, 0x5f, 0x6f, 0x46, 0x27, 0x54, 0xe7, 0x78, 0x6a, 0xcc, 0x73, 0xbe, + 0xfa, 0xa9, 0x17, 0xdc, 0xf2, 0x37, 0x0b, 0x7a, 0x5b, 0xd1, 0x47, 0xbf, 0xeb, 0x80, 0x82, 0x02, + 0x93, 0x0c, 0xed, 0x93, 0xe3, 0x63, 0xcc, 0xc2, 0xc6, 0xa7, 0x65, 0x0a, 0xf8, 0x64, 0x63, 0x88, + 0x23, 0x25, 0x41, 0xda, 0x44, 0x9c, 0x0b, 0xb1, 0x2a, 0x01, 0x97, 0x46, 0x7a, 0x4a, 0x11, 0x1a, + 0xde, 0x69, 0x0b, 0x72, 0x09, 0x89, 0x44, 0xd7, 0x15, 0x85, 0x79, 0x68, 0x60, 0x15, 0xb0, 0xc2, + 0x99, 0xf6, 0x30, 0xe7, 0x0f, 0xa4, 0x3b, 0x2d, 0xc5, 0x0a, 0x80, 0x64, 0x4d, 0x71, 0x98, 0x1e, + 0x88, 0xc4, 0x90, 0x47, 0x23, 0x34, 0x29, 0x6a, 0xb9, 0xb4, 0xcd, 0x33, 0x7f, 0x01, 0x2f, 0xf7, + 0x4c, 0x8f, 0x73, 0xd0, 0xfe, 0x68, 0x6e, 0x28, 0xa3, 0xe7, 0x73, 0xbf, 0xa4, 0x7f, 0x31, 0x4e, + 0x2d, 0x4b, 0x93, 0xc1, 0xc4, 0xac, 0xee, 0x38, 0xe6, 0x03, 0xbe, 0xf0, 0x80, 0xf6, 0x8a, 0x46, + 0x2e, 0xaf, 0x3a, 0xbd, 0x55, 0x4a, 0x8e, 0xd5, 0x5e, 0xb8, 0xdd, 0xe0, 0x0e, 0x89, 0xe0, 0x40, + 0x89, 0x21, 0x30, 0xf8, 0x59, 0xe0, 0x58, 0x20, 0x81, 0xf2, 0x39, 0xf5, 0x02, 0x5e, 0x3d, 0x2e, + 0x3c, 0x47, 0x54, 0x43, 0x77, 0xa5, 0x64, 0x47, 0x9b, 0xa9, 0xf1, 0x0c, 0xc5, 0x9e, 0xa8, 0x4e, + 0x6f, 0x3b, 0x1f, 0xf5, 0x63, 0xae, 0x59, 0x28, 0xcf, 0x73, 0xa2, 0xf3, 0xe0, 0x36, 0xd2, 0x75, + 0xf5, 0x54, 0x8f, 0x42, 0xbe, 0x89, 0x02, 0x7b, 0x96, 0xed, 0x5c, 0x2d, 0xff, 0x20, 0xe1, 0x18, + 0xdc, 0x7e, 0xaa, 0x02, 0x5e, 0x87, 0x90, 0x85, 0x03, 0xa8, 0xd5, 0xb0, 0x5b, 0xbd, 0xa3, 0x22, + 0x88, 0xc5, 0x14, 0x84, 0x9c, 0x72, 0xa3, 0x93, 0xcb, 0x23, 0xe5, 0xf9, 0x05, 0x20, 0x06, 0xfe, + 0xca, 0xd7, 0xf2, 0xe0, 0x81, 0xc6, 0xea, 0x33, 0x29, 0x30, 0xcd, 0x3c, 0xac, 0x14, 0x62, 0xcd, + 0xc7, 0x61, 0x79, 0x76, 0x05, 0x8d, 0x69, 0xdb, 0x69, 0xb5, 0x46, 0x77, 0x7a, 0x4a, 0xc6, 0x72, + 0x7f, 0x80, 0x1e, 0x86, 0xbc, 0xae, 0xcb, 0xf5, 0x90, 0x47, 0x8c, 0xba, 0xf1, 0x24, 0x89, 0xcf, + 0x1e, 0x38, 0x30, 0x7c, 0xc4, 0x17, 0x78, 0xb7, 0xd6, 0x96, 0x51, 0x00, 0x7b, 0xb8, 0x59, 0xd3, + 0x4e, 0xc3, 0xba, 0xe1, 0x7d, 0x5e, 0x84, 0xc0, 0x23, 0xd1, 0xc2, 0xc2, 0x09, 0x12, 0x6d, 0x7e, + 0x74, 0x81, 0xe5, 0xb1, 0x57, 0xc1, 0x94, 0x4d, 0x0e, 0x32, 0xe8, 0xe1, 0xe1, 0x98, 0x88, 0xf1, + 0xce, 0x45, 0xd0, 0xd9, 0xc9, 0x45, 0xba, 0x47, 0x30, 0x4c, 0x0a, 0xde, 0x27, 0xa9, 0xa7, 0x55, + 0x52, 0x74, 0x61, 0xf9, 0x4a, 0xa0, 0x4f, 0xe3, 0x9b, 0x84, 0x0d, 0xf5, 0xdf, 0xb9, 0x0b, 0x5b, + 0xea, 0xde, 0xe9, 0x20, 0x58, 0x62, 0x3f, 0xc5, 0xdf, 0xc7, 0x34, 0xfd, 0x7b, 0x06, 0xe8, 0xf5, + 0x8c, 0x69, 0x12, 0x3e, 0x20, 0x4a, 0x3f, 0x63, 0xc6, 0x02, 0x1b, 0x2b, 0x79, 0x8c, 0x56, 0x7d, + 0xb1, 0x1c, 0xa9, 0xa6, 0x7b, 0xa6, 0x48, 0x17, 0x27, 0x0e, 0x70, 0x7e, 0x9f, 0xc7, 0xc3, 0x5a, + 0xdf, 0xda, 0x0c, 0x22, 0xfe, 0xa2, 0x7c, 0x18, 0xbe, 0xba, 0x1b, 0x5f, 0x38, 0x20, 0x41, 0x51, + 0xde, 0xe7, 0xa5, 0x87, 0xbc, 0xaf, 0x11, 0xd9, 0x3a, 0x6d, 0x84, 0x3c, 0xfd, 0x7f, 0x20, 0xa3, + 0x2d, 0x91, 0xc2, 0x48, 0x1a, 0xef, 0xa1, 0xa3, 0x5b, 0xc2, 0x8f, 0x34, 0xdb, 0x19, 0x72, 0x54, + 0x24, 0x0d, 0xc4, 0xb0, 0x04, 0xe2, 0xd9, 0x1c, 0x9e, 0x6a, 0x14, 0x57, 0xe2, 0x1f, 0xa3, 0x3b, + 0x11, 0xba, 0xba, 0xc8, 0x71, 0x4c, 0xc2, 0x92, 0x62, 0x93, 0x0f, 0xf9, 0x45, 0xe6, 0x95, 0x94, + 0x29, 0x08, 0x10, 0x24, 0xfa, 0x80, 0x82, 0xcb, 0x58, 0xdb, 0x01, 0x37, 0x96, 0x71, 0xa7, 0x38, + 0x50, 0x21, 0xdf, 0x20, 0xf8, 0x0e, 0x66, 0x85, 0x45, 0x76, 0x92, 0x68, 0x92, 0x2f, 0x22, 0x77, + 0xa2, 0x32, 0x5c, 0x78, 0xc3, 0xc1, 0x0e, 0xef, 0x11, 0x01, 0xff, 0xa0, 0x20, 0x7e, 0x94, 0x97, + 0xec, 0xc3, 0xaa, 0x2e, 0x52, 0x76, 0x54, 0x58, 0x56, 0x78, 0xc1, 0xf3, 0x1b, 0xc2, 0x43, 0x76, + 0x40, 0x72, 0x3b, 0x76, 0x64, 0x10, 0xbc, 0xac, 0x13, 0xd4, 0x23, 0xe2, 0x89, 0x85, 0x7d, 0x5e, + 0x46, 0xfe, 0x94, 0x76, 0x83, 0x2e, 0xcc, 0x84, 0xae, 0xa6, 0x0c, 0xe9, 0x79, 0x3a, 0x66, 0xdc, + 0x06, 0x0b, 0x65, 0xaa, 0x9f, 0x30, 0xb0, 0x4b, 0xfb, 0xf8, 0x9f, 0x24, 0xb0, 0x60, 0x10, 0xa2, + 0x43, 0x7e, 0xfa, 0x60, 0xae, 0x39, 0xbb, 0x32, 0x77, 0xbe, 0xb9, 0x24, 0x20, 0xe7, 0x91, 0xbb, + 0x7b, 0x62, 0xb3, 0xc4, 0xaa, 0x36, 0x8a, 0x4d, 0xbc, 0x11, 0xd1, 0x2d, 0xb7, 0x00, 0x23, 0x23, + 0xe3, 0xde, 0xb2, 0xfa, 0xdc, 0x7a, 0xd7, 0x4e, 0x04, 0xb0, 0x46, 0xef, 0x46, 0xff, 0x1b, 0xbe, + 0x7b, 0xad, 0xb6, 0x2a, 0xc8, 0xfb, 0xdd, 0x71, 0xe8, 0xc0, 0xa8, 0x55, 0x79, 0xde, 0x01, 0x8d, + 0x80, 0x35, 0xe7, 0x0c, 0xcb, 0xdd, 0x8e, 0x6d, 0xe5, 0x48, 0x64, 0x1b, 0x36, 0x83, 0xfe, 0xfc, + 0x64, 0x07, 0xf1, 0x51, 0x76, 0x74, 0x2e, 0xfb, 0x4a, 0xee, 0xe3, 0x59, 0xef, 0x74, 0x19, 0xc5, + 0x1b, 0x43, 0x66, 0xb1, 0x50, 0xf4, 0x78, 0x4a, 0x1b, 0xd0, 0x15, 0x1f, 0x8c, 0xe8, 0x33, 0xfe, + 0x51, 0x8b, 0x16, 0x6b, 0x9b, 0x9e, 0x48, 0x12, 0x01, 0xfe, 0x96, 0x54, 0x8d, 0xe1, 0xf1, 0xbd, + 0xd3, 0x21, 0x8b, 0xab, 0x95, 0x8d, 0xae, 0xec, 0x91, 0x1a, 0x1c, 0xb2, 0xf2, 0xc1, 0x85, 0x5b, + 0x43, 0xa7, 0xd9, 0xe7, 0xeb, 0xa8, 0x67, 0x1f, 0x63, 0xf9, 0x1b, 0x06, 0x5e, 0x2a, 0xcd, 0x41, + 0xed, 0xf3, 0x6e, 0xb8, 0xdb, 0xe7, 0x7c, 0x65, 0x94, 0xdf, 0xba, 0xfa, 0x8d, 0xf4, 0xaa, 0x9d, + 0x8d, 0x2f, 0xf6, 0xfe, 0x81, 0x51, 0x5b, 0xac, 0xca, 0xec, 0xac, 0x3a, 0x9b, 0xc5, 0x70, 0x5b, + 0x22, 0x2f, 0xbe, 0x01, 0x5c, 0x7f, 0xb0, 0x92, 0xa7, 0x15, 0x63, 0x5b, 0xdb, 0xa4, 0x1b, 0x55, + 0x02, 0x85, 0x57, 0xe6, 0x14, 0xc3, 0x36, 0x27, 0x7e, 0x59, 0x53, 0x48, 0xda, 0x13, 0xbb, 0xa6, + 0x0e, 0x39, 0xaf, 0x44, 0x73, 0x9c, 0xa4, 0xe9, 0xbf, 0xc5, 0x89, 0x67, 0x4c, 0x13, 0xac, 0x4b, + 0x3c, 0xe7, 0x3f, 0x8a, 0x06, 0xaf, 0x73, 0x2d, 0x33, 0x9a, 0x77, 0x5b, 0x99, 0x7e, 0x06, 0xb8, + 0x2f, 0x57, 0x96, 0x12, 0x22, 0x07, 0x3c, 0xd8, 0x84, 0x3e, 0xb9, 0x56, 0xa2, 0xaa, 0xe8, 0xc6, + 0x3f, 0x44, 0x5c, 0x28, 0xae, 0x85, 0x6d, 0x0a, 0x95, 0x88, 0xce, 0xcf, 0x99, 0xee, 0x4d, 0x40, + 0xe4, 0x74, 0x80, 0x11, 0x85, 0x9e, 0xa1, 0xe1, 0xbe, 0xb5, 0x10, 0xab, 0xe7, 0xc6, 0x39, 0x45, + 0xee, 0x87, 0x6e, 0x1e, 0x22, 0x77, 0x5f, 0x45, 0x23, 0x34, 0xfb, 0x4b, 0xbc, 0xa7, 0xd3, 0x47, + 0xaa, 0xf6, 0xe5, 0xad, 0xf4, 0x8f, 0x16, 0x43, 0xe2, 0x39, 0x11, 0xed, 0x04, 0x96, 0xf4, 0x1e, + 0xb0, 0xe4, 0x77, 0xa9, 0x5a, 0xbf, 0x01, 0xe3, 0xa2, 0x7b, 0xc9, 0xd3, 0xf1, 0xe9, 0x92, 0x0a, + 0xe3, 0x80, 0x4c, 0x98, 0x78, 0xd8, 0xce, 0xd9, 0x3d, 0x2b, 0x31, 0xad, 0xca, 0x0a, 0x6a, 0x0d, + 0xce, 0x32, 0xf6, 0xe6, 0x42, 0x86, 0x51, 0x80, 0x5e, 0xe7, 0xa0, 0x58, 0x32, 0xd2, 0x93, 0x20, + 0x70, 0x17, 0x3b, 0xcf, 0x13, 0x84, 0x5b, 0x76, 0xcd, 0x8a, 0xa9, 0x4e, 0x14, 0x1e, 0xcf, 0x17, + 0xde, 0x14, 0xc4, 0xc0, 0xc3, 0x15, 0x3c, 0xa8, 0x5f, 0x01, 0x84, 0x2d, 0x0d, 0x36, 0x1e, 0x34, + 0x2b, 0x5b, 0x49, 0x26, 0xfb, 0xd7, 0x6c, 0x97, 0x64, 0x44, 0x5b, 0xeb, 0x46, 0xf8, 0x84, 0xad, + 0x30, 0x1c, 0x97, 0xf3, 0x0d, 0x0f, 0x63, 0x68, 0x1e, 0x06, 0x13, 0x7b, 0x97, 0x7a, 0x8f, 0x92, + 0x81, 0xd6, 0x15, 0xfa, 0xad, 0x1b, 0xaa, 0xea, 0xa2, 0x55, 0x90, 0xbf, 0x6c, 0x40, 0x84, 0x27, + 0x7a, 0x72, 0x2a, 0x38, 0x66, 0x12, 0x16, 0xbf, 0xa2, 0x5d, 0x3a, 0xd9, 0xff, 0x4d, 0x1e, 0x41, + 0x0e, 0x54, 0xab, 0xe3, 0x4f, 0x9e, 0x1c, 0xaa, 0x08, 0x91, 0xe6, 0xdb, 0x24, 0x0d, 0xa0, 0x9e, + 0xb2, 0x92, 0xc3, 0x8c, 0x19, 0x99, 0xd2, 0x65, 0x31, 0x27, 0x2e, 0x85, 0xb4, 0x60, 0x8e, 0xa5, + 0x0b, 0x38, 0x57, 0xb4, 0x04, 0xda, 0xfe, 0x49, 0x5c, 0x6d, 0xe9, 0xfd, 0x66, 0x86, 0x58, 0x6e, + 0xbd, 0xa5, 0xcb, 0x4b, 0xa7, 0xd4, 0x50, 0xed, 0x48, 0x49, 0x85, 0x66, 0x1a, 0xda, 0xbd, 0x9a, + 0xa6, 0x79, 0xbc, 0x10, 0xbf, 0x1d, 0x25, 0x56, 0x70, 0x00, 0xdf, 0x12, 0xfd, 0xb6, 0x5b, 0x97, + 0xfd, 0x55, 0x63, 0xb8, 0x6a, 0x18, 0xc5, 0xd1, 0xa8, 0xca, 0xfb, 0x26, 0x24, 0x4c, 0x4e, 0xcd, + 0xaf, 0xa2, 0xad, 0xa7, 0xe5, 0xd0, 0xdd, 0xef, 0x10, 0x61, 0xe1, 0xe9, 0x62, 0x53, 0x2b, 0x94, + 0x4e, 0x35, 0x12, 0xbe, 0x27, 0xe3, 0x22, 0x68, 0x9f, 0xe5, 0x4b, 0x44, 0x10, 0x8a, 0xf7, 0x22, + 0xcb, 0xf4, 0x0c, 0xbb, 0xa4, 0x64, 0xb1, 0x07, 0x44, 0x52, 0xb3, 0x88, 0xf7, 0x37, 0xd6, 0x31, + 0x9d, 0x48, 0xdf, 0x23, 0xc5, 0x4e, 0x9e, 0x23, 0x81, 0x92, 0xc2, 0xaa, 0xdc, 0x1d, 0x04, 0xe2, + 0x63, 0x7e, 0x36, 0x29, 0x40, 0x61, 0x56, 0xe7, 0xf8, 0x12, 0x18, 0xa9, 0x49, 0xfc, 0xd6, 0x56, + 0x79, 0xc0, 0x44, 0xbe, 0x68, 0xa2, 0xd6, 0xfa, 0x63, 0x7f, 0x59, 0x1c, 0x53, 0x45, 0x80, 0xf2, + 0x7e, 0x80, 0xeb, 0xe3, 0x8c, 0x9b, 0x77, 0x0d, 0xcd, 0x92, 0x0b, 0xc2, 0xf2, 0x36, 0xad, 0x3d, + 0x5b, 0x95, 0xd2, 0x56, 0xb4, 0xd9, 0x36, 0xa7, 0x99, 0x16, 0xd0, 0x76, 0x0f, 0x3a, 0x80, 0x7d, + 0x23, 0x73, 0x77, 0xae, 0x24, 0xfb, 0xcd, 0xb4, 0x37, 0x50, 0x30, 0xf9, 0x0f, 0x6c, 0x30, 0xec, + 0x2b, 0xe1, 0x7f, 0xb2, 0xe1, 0x1c, 0x7c, 0x92, 0xec, 0xce, 0xca, 0x91, 0x5d, 0xfa, 0xe9, 0x50, + 0xc9, 0x90, 0x5e, 0xbd, 0x7f, 0xb1, 0x5b, 0xd9, 0x50, 0xc2, 0x60, 0x47, 0x11, 0x8d, 0xf0, 0x13, + 0xb1, 0xe8, 0x64, 0x14, 0xb6, 0xfc, 0xdf, 0x40, 0x49, 0xd2, 0x34, 0xf9, 0xe0, 0xf0, 0xf1, 0x09, + 0x9c, 0xac, 0xea, 0xe0, 0xba, 0xa5, 0x11, 0x08, 0x40, 0x0d, 0x4d, 0xc0, 0x2d, 0x36, 0x11, 0x3b, + 0xb6, 0x96, 0x28, 0xf4, 0xdf, 0x7f, 0x99, 0xc9, 0xf1, 0xa2, 0xc1, 0x75, 0x5b, 0x9b, 0xb7, 0x08, + 0x4e, 0xf1, 0xbc, 0x47, 0x72, 0xe9, 0x70, 0xf1, 0x07, 0x64, 0x7e, 0xa1, 0x94, 0xb2, 0x4c, 0x79, + 0x3c, 0xab, 0x9f, 0xaa, 0x05, 0xe8, 0x5d, 0x19, 0xa0, 0xe6, 0xfd, 0x79, 0xe1, 0xb4, 0xa3, 0x1e, + 0x23, 0x92, 0x7e, 0xa5, 0xe7, 0xea, 0x6a, 0x3e, 0xb9, 0x71, 0x15, 0x2c, 0x0c, 0x96, 0x7d, 0xfc, + 0x9e, 0x62, 0x12, 0xc0, 0xa6, 0x8b, 0x52, 0xa1, 0xbb, 0x3f, 0xe8, 0xdb, 0x6a, 0x7b, 0xf8, 0x6b, + 0x2a, 0xd9, 0x83, 0x86, 0xcf, 0x88, 0x5c, 0x40, 0x98, 0xe7, 0xc4, 0xf3, 0xf1, 0x19, 0x47, 0xa4, + 0x12, 0x84, 0x10, 0x20, 0xb6, 0x1e, 0xf5, 0x06, 0xea, 0x39, 0x47, 0xdd, 0x29, 0x09, 0x48, 0x54, + 0x73, 0x3c, 0x6a, 0x24, 0x5a, 0xc7, 0x4a, 0xd2, 0x54, 0xa7, 0xcf, 0x6c, 0x06, 0xfa, 0xc2, 0x1f, + 0xaf, 0x4d, 0x7e, 0x29, 0xd2, 0x37, 0xc9, 0xd5, 0xec, 0x43, 0x46, 0xab, 0xbc, 0xcd, 0x36, 0xa9, + 0xec, 0x1f, 0x73, 0x59, 0xf1, 0xab, 0xd7, 0x11, 0xda, 0x2b, 0x4b, 0xec, 0x55, 0xcb, 0x53, 0x8e, + 0xf6, 0x13, 0x38, 0xb5, 0x70, 0x7a, 0x2e, 0xb5, 0x9c, 0x7f, 0xe6, 0x74, 0xca, 0x6f, 0xa4, 0x63, + 0xe2, 0x63, 0x5a, 0x25, 0xf1, 0xff, 0x61, 0x70, 0x07, 0xdc, 0xce, 0x94, 0xda, 0x53, 0x46, 0x3a, + 0xb9, 0x1b, 0xf9, 0xa3, 0xef, 0xb5, 0xb7, 0x94, 0x54, 0xf7, 0x32, 0x00, 0x05, 0x60, 0xde, 0xb0, + 0x7b, 0xf8, 0x6b, 0x64, 0x57, 0xa2, 0x97, 0x55, 0xda, 0x68, 0x14, 0x72, 0x61, 0x57, 0xcc, 0x95, + 0xec, 0xe0, 0x44, 0x2f, 0x6c, 0xa2, 0x55, 0xab, 0x28, 0x9c, 0x11, 0x2b, 0x88, 0xc9, 0xb6, 0x65, + 0x11, 0xac, 0xeb, 0x40, 0x16, 0x41, 0x29, 0x6d, 0xab, 0x50, 0xb8, 0x8f, 0x11, 0xc0, 0x3c, 0x03, + 0x2e, 0xa7, 0xab, 0x19, 0xfb, 0x91, 0x3b, 0x56, 0x2e, 0x22, 0xbb, 0x05, 0xd0, 0x04, 0x49, 0x6a, + 0xcd, 0x33, 0x89, 0xd3, 0x86, 0x43, 0x4c, 0x87, 0x43, 0x6d, 0xd6, 0x1d, 0x0d, 0x0e, 0xf7, 0x9a, + 0x9f, 0x19, 0x01, 0xbb, 0x92, 0x69, 0x86, 0xc3, 0x96, 0x88, 0xa7, 0xc1, 0xe5, 0x40, 0xf1, 0x42, + 0x3f, 0x70, 0x14, 0x6c, 0x3c, 0xf9, 0xb6, 0x68, 0x4a, 0x1e, 0x52, 0x9b, 0x76, 0xb6, 0x98, 0x23, + 0x2a, 0xb9, 0xb6, 0xa0, 0x34, 0x43, 0x71, 0x81, 0x6e, 0xb6, 0xc9, 0xd6, 0x32, 0x18, 0x3f, 0xdd, + 0xea, 0xfa, 0x0c, 0xd2, 0x89, 0xba, 0x59, 0xc3, 0x23, 0x68, 0x74, 0x79, 0xca, 0xed, 0xc9, 0x6f, + 0x46, 0x41, 0x64, 0xff, 0x64, 0xa8, 0x8d, 0x92, 0xb1, 0x7d, 0xdd, 0x00, 0x99, 0xe7, 0xb3, 0x08, + 0x6b, 0x25, 0xeb, 0x51, 0x17, 0x34, 0xe5, 0x2f, 0x8a, 0x51, 0x18, 0xf5, 0xc8, 0x41, 0x99, 0x7e, + 0x23, 0xa4, 0x08, 0x0b, 0xae, 0x3a, 0xc0, 0xbe, 0xa5, 0x43, 0x51, 0x54, 0x1e, 0xfb, 0xb2, 0x08, + 0x15, 0x20, 0xcf, 0x42, 0xe1, 0x99, 0x65, 0xff, 0x98, 0xce, 0x46, 0x5f, 0x5b, 0x31, 0x5d, 0xb4, + 0xe2, 0xb0, 0xcb, 0x3e, 0x3f, 0x29, 0x40, 0x77, 0x40, 0x48, 0x53, 0x53, 0xb5, 0x43, 0xcf, 0xfb, + 0xbb, 0x82, 0x22, 0x71, 0x9a, 0x45, 0xa6, 0xa5, 0x1b, 0x09, 0x1e, 0x8b, 0xab, 0x00, 0x77, 0xa4, + 0x61, 0xb3, 0xb9, 0x19, 0xf4, 0xb9, 0xa9, 0x93, 0x3f, 0x05, 0xb1, 0x29, 0xe0, 0xe6, 0xd6, 0x64, + 0xc5, 0xe3, 0xff, 0x28, 0xb5, 0xe1, 0x80, 0x75, 0xe9, 0x38, 0x95, 0xdc, 0xfc, 0xf1, 0x98, 0x61, + 0xe1, 0x31, 0x64, 0x74, 0xd9, 0x84, 0x84, 0x61, 0x80, 0x8b, 0x00, 0x0e, 0x4c, 0x14, 0x89, 0x25, + 0x85, 0x20, 0x44, 0x8e, 0x4a, 0x18, 0x12, 0x7f, 0xc3, 0x05, 0x23, 0x58, 0xae, 0xe0, 0x85, 0xa7, + 0x90, 0x50, 0xdd, 0xf3, 0x47, 0x40, 0xa7, 0xe7, 0x50, 0xad, 0xa1, 0x46, 0xfb, 0x36, 0x7c, 0x16, + 0xc4, 0x7c, 0x1f, 0x36, 0x20, 0xbb, 0x47, 0xa5, 0xdb, 0x27, 0xd4, 0x4f, 0xc1, 0xc5, 0xf7, 0xec, + 0xf1, 0xdf, 0x4a, 0xcd, 0xa4, 0x76, 0x8f, 0x98, 0xbb, 0x16, 0x34, 0x0a, 0x75, 0x89, 0x24, 0x3a, + 0xcc, 0x70, 0xb2, 0x36, 0xcc, 0xc1, 0xcc, 0x1d, 0x81, 0x76, 0xa3, 0xd6, 0x94, 0xd4, 0x00, 0x61, + 0x2b, 0x53, 0x81, 0x3c, 0xf2, 0x97, 0x99, 0x53, 0xa9, 0x20, 0x3b, 0x99, 0x72, 0xf7, 0xbf, 0xd3, + 0x12, 0x1b, 0x93, 0x16, 0x18, 0xe8, 0x6a, 0x4e, 0xc6, 0x28, 0x32, 0xe9, 0xa1, 0xf8, 0x9b, 0xe0, + 0xdb, 0x1f, 0xc6, 0x6d, 0x3f, 0xd7, 0x29, 0x58, 0x48, 0x1c, 0xab, 0xdd, 0xce, 0x67, 0x05, 0xa7, + 0x76, 0xb8, 0x1b, 0x36, 0xbc, 0x24, 0x5a, 0x35, 0xcf, 0x73, 0xff, 0xd0, 0x47, 0x5a, 0x91, 0xa0, + 0xda, 0x1c, 0xbf, 0xbe, 0xce, 0x60, 0x9e, 0x9e, 0x19, 0x47, 0x2b, 0x9a, 0x3b, 0x4c, 0xec, 0xf0, + 0xd3, 0x5b, 0xe4, 0x15, 0xf5, 0xdd, 0xa7, 0xf4, 0x46, 0x12, 0x38, 0x5d, 0x54, 0x0e, 0x94, 0x28, + 0xdb, 0x7d, 0x2d, 0xa3, 0xc3, 0x5e, 0x5a, 0xcd, 0x64, 0x72, 0x2d, 0x26, 0x2b, 0xf2, 0x9b, 0xa1, + 0xe8, 0x1b, 0xea, 0xeb, 0xb5, 0x1d, 0x67, 0x2a, 0x5a, 0xe7, 0x18, 0x6b, 0x59, 0x2f, 0xb2, 0x79, + 0x8a, 0x47, 0x43, 0x8d, 0xfa, 0x83, 0x00, 0x9a, 0x2e, 0x16, 0x77, 0x13, 0x23, 0xa8, 0xe2, 0x65, + 0x65, 0xab, 0x10, 0xa4, 0x62, 0x5b, 0x5b, 0xc7, 0xee, 0x9e, 0x4d, 0xcd, 0xec, 0x75, 0x9c, 0x74, + 0x41, 0x4a, 0x82, 0x2a, 0xa8, 0x8e, 0x77, 0xee, 0xef, 0x77, 0xb8, 0x6b, 0x9e, 0x65, 0x85, 0x73, + 0x6d, 0x68, 0x8c, 0x52, 0x34, 0xb7, 0xa7, 0xa3, 0xe9, 0x93, 0x92, 0x02, 0xf4, 0xcf, 0xa7, 0x79, + 0x35, 0x11, 0xf4, 0xbe, 0xdb, 0x23, 0xae, 0x1a, 0x24, 0x52, 0x9e, 0xff, 0x2a, 0x5a, 0x42, 0x9b, + 0xf7, 0x8a, 0x8c, 0x73, 0xce, 0xfb, 0xe2, 0x5c, 0x19, 0x57, 0xfb, 0xa3, 0x7b, 0x62, 0xb5, 0xcd, + 0xa2, 0x5d, 0x4e, 0x83, 0xc0, 0x41, 0xa6, 0xd7, 0xd9, 0xa2, 0x9d, 0x1b, 0x20, 0x07, 0x4c, 0xd4, + 0x13, 0xfe, 0xed, 0xc7, 0x42, 0xc6, 0x7b, 0xe2, 0x6c, 0xf3, 0xa1, 0xdd, 0xc9, 0x3c, 0xc3, 0xb3, + 0x39, 0xed, 0xbe, 0x23, 0x11, 0xef, 0x91, 0x5c, 0x05, 0x75, 0x75, 0xcd, 0xa4, 0xb7, 0x3a, 0x4b, + 0x29, 0x2a, 0xfa, 0x92, 0x81, 0x1f, 0xd4, 0x38, 0xb9, 0x02, 0xcd, 0x74, 0xef, 0xd7, 0x51, 0xac, + 0xc1, 0x1b, 0xf9, 0x15, 0x06, 0x5b, 0xbb, 0x77, 0x9b, 0x22, 0x2f, 0x59, 0x87, 0x1a, 0xa5, 0xa2, + 0x16, 0xc4, 0xeb, 0x50, 0xce, 0x15, 0xd9, 0x85, 0xbc, 0x8e, 0x34, 0x5d, 0x09, 0x30, 0x98, 0xe1, + 0x05, 0x75, 0xc8, 0x71, 0x5a, 0x82, 0x10, 0xb7, 0x4c, 0x22, 0x2d, 0x66, 0xbf, 0x7a, 0xb6, 0xe4, + 0x97, 0xb4, 0xb9, 0xdd, 0x61, 0x15, 0x92, 0xb4, 0xbd, 0x06, 0x5b, 0x92, 0x3e, 0xf3, 0xbd, 0xfa, + 0xe8, 0x25, 0x46, 0x0f, 0xa1, 0x1b, 0x1b, 0xd6, 0xad, 0x6e, 0x6b, 0x9b, 0xbb, 0x55, 0x86, 0x21, + 0x6d, 0x80, 0xe8, 0x75, 0x2f, 0x5d, 0xcf, 0x3b, 0x25, 0x23, 0xf5, 0x62, 0x1b, 0xbf, 0xe0, 0x0d, + 0x45, 0x7e, 0x23, 0x41, 0xe2, 0x6c, 0x14, 0xf6, 0x1f, 0x53, 0xe0, 0x25, 0x43, 0x55, 0xe7, 0xe1, + 0xbb, 0xf0, 0xbd, 0x24, 0x7d, 0x5e, 0x76, 0xa8, 0xc5, 0x4b, 0x2d, 0x29, 0x3e, 0x96, 0xda, 0x94, + 0x5f, 0x35, 0x3d, 0x58, 0x4f, 0x98, 0x69, 0xa3, 0xe5, 0x1b, 0x11, 0xb5, 0x2d, 0x14, 0x13, 0x73, + 0x15, 0x97, 0xf7, 0xe0, 0x81, 0x70, 0x42, 0x4d, 0xe2, 0xb7, 0xfc, 0xd9, 0x3b, 0xf3, 0x6c, 0x34, + 0xf8, 0x43, 0xd0, 0x26, 0xb4, 0x18, 0x5a, 0xb6, 0x84, 0xcf, 0xea, 0xdb, 0x28, 0xd6, 0xe7, 0xae, + 0xb4, 0x0b, 0x69, 0x96, 0x1a, 0x7e, 0x1a, 0x4f, 0x59, 0x5c, 0xe0, 0xe7, 0xc5, 0xaa, 0xcf, 0x6c, + 0x5a, 0xd0, 0x04, 0x00, 0x92, 0x94, 0x36, 0x64, 0x33, 0x67, 0x24, 0xce, 0x67, 0x33, 0x91, 0x86, + 0x36, 0xb2, 0xc0, 0x36, 0xdd, 0x5a, 0xa3, 0x1b, 0xc2, 0xcb, 0x30, 0x4d, 0x7d, 0x7d, 0xd4, 0x39, + 0xea, 0x97, 0x22, 0xd6, 0x01, 0x3d, 0x53, 0x8c, 0x82, 0xdf, 0x32, 0x37, 0x04, 0xda, 0x14, 0x36, + 0x65, 0x9a, 0xe6, 0x24, 0x8d, 0xa4, 0xbc, 0xf6, 0x0e, 0x6d, 0xf0, 0x83, 0xfa, 0x4f, 0x21, 0x66, + 0x15, 0x63, 0x7c, 0x69, 0xb2, 0x1f, 0xbb, 0xaa, 0xc7, 0xd7, 0xab, 0x17, 0x7c, 0x3d, 0x85, 0x36, + 0x78, 0x06, 0x3f, 0x93, 0x04, 0xe0, 0x20, 0xfb, 0x0c, 0xe8, 0xf4, 0x73, 0xca, 0x85, 0xae, 0xfe, + 0xa7, 0xb7, 0x15, 0x09, 0x22, 0xe1, 0x07, 0xbd, 0x77, 0xf5, 0x77, 0xfc, 0x4f, 0x4d, 0x16, 0x67, + 0x58, 0xc1, 0xea, 0x81, 0x09, 0x49, 0x02, 0x10, 0x2b, 0xc7, 0x12, 0xd0, 0x7f, 0xa3, 0x58, 0x0d, + 0xf8, 0xb7, 0xa2, 0x1a, 0x52, 0x31, 0xfc, 0x00, 0x72, 0x5d, 0x93, 0x15, 0x13, 0x94, 0x59, 0x3d, + 0xbe, 0x04, 0x33, 0x2d, 0x47, 0x15, 0x68, 0xb0, 0x11, 0xd0, 0x44, 0x65, 0x53, 0xa4, 0x96, 0x96, + 0x35, 0x36, 0xe2, 0x97, 0xe7, 0xe8, 0xcf, 0x1a, 0x54, 0x7f, 0x46, 0x64, 0xb5, 0xa3, 0xe8, 0xd7, + 0xb3, 0xd8, 0x6e, 0xe2, 0x83, 0xda, 0x79, 0x75, 0x65, 0xfb, 0x45, 0xf0, 0xca, 0x69, 0x4d, 0xd4, + 0xd8, 0x7d, 0x53, 0x33, 0xd5, 0x3c, 0xb7, 0x1a, 0xb9, 0x78, 0x47, 0x20, 0x17, 0xba, 0xbe, 0xea, + 0xdf, 0xe8, 0xd7, 0x5d, 0xda, 0x95, 0xb5, 0x38, 0xdd, 0x48, 0x53, 0xeb, 0xa7, 0x63, 0xf5, 0x85, + 0x6a, 0x37, 0xde, 0xdf, 0xd2, 0x2e, 0x7d, 0xfd, 0x6c, 0xd1, 0x2a, 0x7d, 0x30, 0xc9, 0x21, 0x32, + 0x2f, 0x5b, 0x77, 0x1e, 0xd4, 0xe2, 0x4b, 0x23, 0xfb, 0x11, 0xff, 0x32, 0x91, 0x30, 0xb2, 0x70, + 0x04, 0xce, 0x60, 0x7c, 0x0c, 0x69, 0x67, 0xb5, 0x58, 0x1b, 0xff, 0x1e, 0xd3, 0xb3, 0x5f, 0x74, + 0xca, 0xb6, 0x80, 0x82, 0x46, 0xfd, 0xc2, 0xda, 0x79, 0x54, 0xa6, 0x3f, 0x1b, 0x1d, 0x8b, 0xcc, + 0xca, 0x36, 0xdf, 0xfd, 0x90, 0xfb, 0x49, 0xd7, 0xd7, 0x43, 0xae, 0xb5, 0x37, 0xe5, 0xdb, 0xc6, + 0x4f, 0x3b, 0xf8, 0xb5, 0x7c, 0xd9, 0x91, 0x98, 0x28, 0xd8, 0x16, 0x78, 0xba, 0xc3, 0x1b, 0x81, + 0x4d, 0xba, 0x4d, 0x51, 0xd0, 0x77, 0x44, 0x15, 0xb1, 0xc4, 0xa2, 0x1f, 0xa2, 0xe4, 0xf1, 0x82, + 0x2e, 0x1e, 0xc8, 0xcf, 0xd9, 0xe3, 0xe7, 0x5f, 0x38, 0x34, 0xca, 0x8f, 0x16, 0x25, 0xbc, 0xeb, + 0xfc, 0x92, 0x12, 0xea, 0x5f, 0x92, 0x82, 0x52, 0xf0, 0x83, 0xfa, 0xe4, 0xaf, 0xad, 0x41, 0x22, + 0x98, 0x58, 0x0f, 0xc4, 0xe1, 0x3c, 0x8d, 0x95, 0x73, 0xf4, 0x61, 0x47, 0x8d, 0x0d, 0x6d, 0x25, + 0x80, 0xc2, 0xa3, 0x83, 0x2d, 0x20, 0x8f, 0x83, 0x32, 0x6d, 0xc1, 0xf1, 0x46, 0x19, 0x19, 0xe5, + 0x96, 0x68, 0x29, 0x80, 0xd0, 0x2d, 0x0a, 0x2a, 0x03, 0xd0, 0x9d, 0xe4, 0x05, 0x86, 0x57, 0x6b, + 0x8d, 0x12, 0x49, 0x5e, 0xdc, 0xba, 0x9a, 0x47, 0x5b, 0x92, 0x36, 0xa8, 0x43, 0x15, 0x34, 0x0a, + 0x61, 0xad, 0x3d, 0x7e, 0x58, 0xa5, 0xc1, 0xc6, 0x53, 0xff, 0x61, 0x84, 0x20, 0x86, 0x20, 0x54, + 0xe7, 0xfc, 0x8a, 0x39, 0x12, 0xb0, 0x23, 0x59, 0x4f, 0x92, 0x3b, 0x06, 0x4e, 0xd0, 0x0f, 0x88, + 0xea, 0x7c, 0x84, 0x94, 0xae, 0x23, 0xbe, 0x63, 0xbc, 0xea, 0x60, 0xfc, 0x7d, 0xdf, 0x38, 0x39, + 0xfe, 0x09, 0x48, 0x64, 0xbb, 0x05, 0x79, 0x2e, 0x71, 0xfe, 0x6d, 0x11, 0x56, 0x95, 0x52, 0x79, + 0x7e, 0x90, 0x8a, 0x6e, 0x49, 0x4e, 0x98, 0x68, 0x1b, 0xbf, 0xe2, 0x1d, 0x57, 0x35, 0xe7, 0x2d, + 0x23, 0xc6, 0x42, 0xfe, 0x46, 0xa3, 0x37, 0x24, 0x28, 0x41, 0x1b, 0xb0, 0xa7, 0xe8, 0x9c, 0x57, + 0xea, 0x49, 0x26, 0x15, 0x7c, 0x82, 0x31, 0x92, 0xa2, 0x64, 0x3a, 0xa6, 0x31, 0x8c, 0x06, 0x90, + 0x41, 0xf5, 0xca, 0xdb, 0x87, 0xe5, 0x91, 0xe2, 0xf8, 0x2c, 0xde, 0x92, 0xb8, 0x7a, 0x74, 0x42, + 0x26, 0xde, 0xb0, 0x9f, 0x8d, 0x45, 0xbd, 0xd0, 0x8a, 0x88, 0x3b, 0x3b, 0x09, 0xc4, 0x53, 0xf4, + 0xb4, 0x1b, 0xba, 0x8c, 0xaf, 0x1a, 0x8d, 0x85, 0x3a, 0xe4, 0x35, 0xca, 0x27, 0x9f, 0x21, 0x0d, + 0x57, 0xee, 0xc0, 0x75, 0xad, 0x1a, 0x67, 0x1f, 0x6a, 0x2e, 0xa8, 0x0f, 0xa1, 0x03, 0xe3, 0x4c, + 0x9b, 0x51, 0x60, 0xa4, 0x9b, 0x88, 0xef, 0x0a, 0x40, 0x5a, 0xdb, 0xcd, 0x57, 0x6e, 0xe9, 0xc0, + 0x5e, 0x5f, 0xe1, 0xb3, 0xcf, 0xd5, 0xb8, 0xf2, 0x90, 0x5f, 0x10, 0x2f, 0x0a, 0x65, 0x2f, 0x2d, + 0x81, 0xde, 0x4c, 0xf8, 0xef, 0x94, 0x7a, 0x38, 0x93, 0x45, 0x9a, 0x94, 0xdf, 0xd5, 0x8c, 0x5c, + 0xc4, 0xf9, 0xa3, 0x31, 0xd6, 0x35, 0x9f, 0x04, 0x58, 0xc1, 0x1e, 0x37, 0x1f, 0x2a, 0x5e, 0xd6, + 0x2a, 0xa8, 0xb9, 0x39, 0x5c, 0x4f, 0xab, 0x2c, 0x36, 0x76, 0xb4, 0xd9, 0xf0, 0x34, 0x26, 0x6b, + 0xc6, 0xca, 0x0b, 0x77, 0x7f, 0xce, 0x77, 0xf6, 0xbe, 0x6c, 0x05, 0x1f, 0x41, 0xfe, 0xb0, 0x7b, + 0xa3, 0xe6, 0xf2, 0xf3, 0xe9, 0x24, 0x27, 0xa1, 0x43, 0x2d, 0x55, 0x56, 0xb9, 0x3f, 0x6d, 0x77, + 0xe0, 0xce, 0x85, 0x1d, 0x60, 0x48, 0xce, 0x9e, 0x20, 0x68, 0x09, 0x9a, 0xd8, 0xd8, 0xad, 0xe8, + 0x07, 0x90, 0xed, 0xba, 0x14, 0xb5, 0xd8, 0xdf, 0x4d, 0xbd, 0x89, 0x73, 0x53, 0xd8, 0x9c, 0xca, + 0x1b, 0xad, 0x9b, 0x4d, 0xc4, 0xc0, 0x00, 0xce, 0xf4, 0xcc, 0x49, 0x8d, 0xa3, 0xf4, 0xb5, 0x4f, + 0x06, 0xfa, 0x23, 0xe4, 0xb5, 0xfe, 0x3c, 0x06, 0x4c, 0xc8, 0x2a, 0x08, 0x90, 0x2a, 0x2c, 0x26, + 0x7f, 0xce, 0xef, 0x4d, 0x6b, 0x31, 0x53, 0xca, 0xf0, 0x3c, 0xcd, 0xe4, 0xb6, 0x9e, 0xdd, 0x09, + 0x3b, 0x43, 0x0f, 0x0a, 0x78, 0x63, 0x12, 0x65, 0x4d, 0xfa, 0x76, 0x82, 0x16, 0x52, 0xbe, 0x60, + 0x5a, 0x09, 0x20, 0xc6, 0x67, 0x6b, 0xc7, 0xfd, 0xf0, 0xb5, 0xb1, 0xa0, 0x68, 0x00, 0x1b, 0xcc, + 0x17, 0x9e, 0x0c, 0x0e, 0x84, 0x71, 0xc2, 0x3c, 0x96, 0xe1, 0xc3, 0x5f, 0x2e, 0xdc, 0xc1, 0xdc, + 0x4b, 0xe0, 0xba, 0x02, 0x5c, 0x14, 0x3a, 0x43, 0xb4, 0x35, 0xeb, 0xd7, 0xe3, 0x5d, 0x17, 0x1b, + 0x86, 0x44, 0xb7, 0x4f, 0xaa, 0x0b, 0x22, 0xe6, 0xbb, 0x47, 0x15, 0xfa, 0xef, 0x83, 0xc4, 0xb4, + 0xed, 0xc7, 0xd5, 0x46, 0x5e, 0x84, 0x92, 0x8c, 0xcf, 0xf8, 0xfe, 0xfc, 0xba, 0x57, 0x0b, 0x4c, + 0x8c, 0x55, 0x5a, 0x6e, 0x04, 0xfc, 0xbe, 0xaf, 0xff, 0x91, 0x2a, 0xaa, 0xf5, 0x58, 0x92, 0xfd, + 0xae, 0x72, 0xb1, 0x4f, 0x22, 0xc2, 0xca, 0xdc, 0x5e, 0x87, 0xd0, 0x6e, 0x53, 0x9b, 0x4a, 0xfc, + 0x1f, 0xdb, 0x38, 0x5a, 0x99, 0x19, 0x2b, 0x94, 0x83, 0xcd, 0x35, 0x3f, 0xbe, 0x10, 0x49, 0xd7, + 0x74, 0xa8, 0x37, 0xde, 0x7d, 0xae, 0x3d, 0x5d, 0xd9, 0x49, 0x72, 0x00, 0x65, 0x8f, 0x26, 0x54, + 0x88, 0xf8, 0xca, 0x80, 0x89, 0x27, 0x47, 0x03, 0x24, 0x2c, 0x0d, 0x33, 0xfa, 0x4a, 0x27, 0x35, + 0xab, 0x44, 0xfd, 0x9a, 0x69, 0x37, 0xfc, 0xf2, 0x49, 0x54, 0x82, 0x0d, 0x3e, 0xb6, 0xaf, 0x66, + 0xf5, 0x8b, 0x5a, 0xf0, 0xee, 0x66, 0x36, 0xec, 0x73, 0x8e, 0xcf, 0x11, 0x2d, 0xd4, 0x2e, 0x91, + 0xd9, 0xfa, 0x53, 0x8c, 0x0c, 0xd9, 0x71, 0x0e, 0xe0, 0x41, 0x1d, 0xe9, 0x05, 0x26, 0x8d, 0xed, + 0x02, 0x37, 0x35, 0x98, 0x2c, 0x9b, 0x8e, 0x76, 0x3b, 0x87, 0xca, 0xb8, 0x4b, 0xf8, 0xbc, 0x60, + 0x18, 0xfa, 0x24, 0xcd, 0x2f, 0x42, 0x07, 0x9d, 0xc4, 0xf4, 0xea, 0x02, 0xa8, 0x64, 0xdf, 0xb3, + 0x36, 0x08, 0xbe, 0xa3, 0xc5, 0x51, 0x91, 0x4f, 0x24, 0x5d, 0x05, 0xc1, 0x34, 0x5f, 0xd0, 0xc5, + 0xe6, 0x7f, 0x90, 0x9e, 0x5d, 0x78, 0x56, 0x90, 0xe0, 0x7c, 0x8e, 0x31, 0x00, 0xd0, 0x18, 0x2c, + 0x79, 0xd2, 0x08, 0x7f, 0x26, 0x19, 0xb7, 0x83, 0xd1, 0x02, 0x84, 0x1a, 0x3f, 0x33, 0x20, 0x4c, + 0xd2, 0xf7, 0xca, 0x05, 0x6d, 0x12, 0xa8, 0x5c, 0x3d, 0xd7, 0xe9, 0x95, 0x87, 0xc5, 0x81, 0x58, + 0x74, 0xf1, 0x48, 0x92, 0x3b, 0xeb, 0xf3, 0x65, 0x0c, 0xaa, 0xee, 0x72, 0x3e, 0xfc, 0x62, 0x7e, + 0x23, 0x5f, 0x7f, 0x7b, 0xb1, 0x86, 0x4b, 0x4d, 0xb1, 0x06, 0xc0, 0x98, 0x0f, 0x0d, 0xb4, 0xc8, + 0x88, 0xce, 0xb4, 0xb2, 0x4d, 0x4f, 0x19, 0xf1, 0x82, 0xf7, 0x74, 0xb3, 0x81, 0x9f, 0x8c, 0x63, + 0x83, 0xc4, 0x85, 0x34, 0x4a, 0x69, 0xcf, 0x9e, 0x74, 0x5b, 0x45, 0xd9, 0x74, 0xcd, 0x51, 0x85, + 0xf4, 0x3f, 0x61, 0x39, 0x42, 0x48, 0xcb, 0xba, 0xaa, 0xda, 0x7d, 0x53, 0xc2, 0x63, 0xbe, 0x0d, + 0x05, 0xf2, 0xdb, 0x41, 0x74, 0xa4, 0xab, 0xee, 0xeb, 0x1b, 0xa3, 0x21, 0x4f, 0x65, 0x7a, 0x76, + 0xd7, 0xaf, 0xe6, 0x2c, 0xe9, 0x17, 0x66, 0x68, 0x86, 0x22, 0x7d, 0xc9, 0x63, 0x9f, 0xdc, 0xb4, + 0x26, 0x03, 0x98, 0x31, 0x4a, 0x82, 0x1c, 0xf9, 0x8b, 0x8b, 0x82, 0x71, 0xae, 0x47, 0x0c, 0xf3, + 0xd5, 0x76, 0x2a, 0xda, 0x7b, 0x01, 0x5f, 0x04, 0xd1, 0xc1, 0xe0, 0x76, 0x1e, 0x66, 0xd7, 0x18, + 0xb4, 0xa7, 0xc9, 0x0b, 0x1d, 0xba, 0x2e, 0x00, 0x4e, 0x8b, 0x4e, 0xdc, 0x40, 0x1f, 0x3e, 0xd7, + 0xf5, 0xf2, 0x0b, 0xec, 0xa3, 0x8c, 0xcd, 0xa4, 0x27, 0xf1, 0x8a, 0x87, 0x4d, 0x9b, 0x27, 0x3f, + 0xc9, 0xe5, 0x42, 0xa2, 0x03, 0x49, 0xf2, 0x33, 0x99, 0xa9, 0x8b, 0xd1, 0x36, 0x22, 0x33, 0x1b, + 0x4d, 0x59, 0xe0, 0x70, 0xd9, 0x42, 0xe3, 0x0d, 0x89, 0x61, 0x7b, 0xdc, 0x0b, 0x48, 0xab, 0x10, + 0xa4, 0x6b, 0xa2, 0x50, 0x92, 0x77, 0x05, 0x48, 0xcb, 0x24, 0xef, 0x93, 0xbd, 0xad, 0x95, 0x39, + 0x7d, 0x22, 0x65, 0x9c, 0x9c, 0xb0, 0x42, 0x18, 0xfc, 0xf2, 0x0b, 0xac, 0xa2, 0xf7, 0x0a, 0x94, + 0x07, 0xa2, 0xf0, 0x77, 0x04, 0x06, 0x55, 0x67, 0x23, 0xe4, 0x6b, 0x49, 0x17, 0x99, 0x9b, 0x43, + 0x7c, 0x9b, 0x83, 0x39, 0xb2, 0xe9, 0xbe, 0xa8, 0x9b, 0x14, 0xd5, 0x21, 0x74, 0x6f, 0x38, 0x2c, + 0x94, 0xa1, 0x13, 0x3a, 0x0b, 0x58, 0x76, 0xf3, 0xe1, 0xfa, 0xcd, 0x54, 0x6c, 0x0a, 0xf4, 0xed, + 0xc7, 0x8d, 0x7e, 0xc9, 0xb4, 0x4b, 0xc8, 0xc5, 0x52, 0xd6, 0x20, 0x3f, 0xfe, 0x9b, 0x03, 0xfe, + 0x8c, 0xe5, 0xb7, 0x80, 0x09, 0x2f, 0x4d, 0x83, 0x88, 0x0e, 0xd4, 0x04, 0xea, 0xb5, 0x08, 0x5d, + 0x38, 0xf9, 0x29, 0x07, 0x99, 0x08, 0x42, 0xd5, 0xf5, 0x21, 0x8e, 0xdb, 0xab, 0x64, 0x08, 0x71, + 0x51, 0x3b, 0x89, 0x41, 0x03, 0x2d, 0x30, 0xc5, 0x08, 0x3e, 0x06, 0x3c, 0x2e, 0x09, 0x06, 0x87, + 0xd1, 0xb6, 0x7f, 0x45, 0x77, 0xac, 0xe6, 0x6e, 0xc0, 0x59, 0x3c, 0x08, 0xbb, 0xd1, 0xe9, 0x5e, + 0xc3, 0xc0, 0x57, 0xeb, 0xf3, 0x5f, 0x34, 0x2a, 0x9c, 0xfe, 0xbb, 0xa9, 0x59, 0x27, 0xc7, 0x70, + 0xd6, 0x4c, 0x48, 0x23, 0xd7, 0x9a, 0xdf, 0xb3, 0x9d, 0x73, 0x10, 0x8e, 0xc6, 0x90, 0xfb, 0xf9, + 0xde, 0x5b, 0x4a, 0x94, 0xa0, 0x9e, 0x68, 0x6f, 0x03, 0x2e, 0xda, 0x9d, 0xa7, 0x5b, 0xae, 0xa4, + 0x1b, 0xa2, 0xd6, 0xf4, 0x67, 0xa6, 0x75, 0xe8, 0x91, 0x66, 0x36, 0x64, 0x9e, 0x2d, 0xb9, 0x69, + 0x46, 0xd3, 0xe1, 0x3e, 0x1e, 0xb9, 0xe6, 0x80, 0xd6, 0xed, 0x02, 0xaf, 0x9c, 0xdf, 0x9d, 0xb4, + 0xf2, 0xdc, 0x79, 0xa6, 0x97, 0xfb, 0x2c, 0xd9, 0xef, 0x1b, 0x27, 0x7d, 0x50, 0xc1, 0x7b, 0x4b, + 0xd4, 0x22, 0x00, 0x8f, 0x40, 0x63, 0x56, 0x1b, 0x0f, 0x71, 0x55, 0xd6, 0x0c, 0x3d, 0xe9, 0x37, + 0x71, 0x9b, 0x13, 0x78, 0xaa, 0x77, 0x28, 0xe7, 0x6b, 0xdd, 0xfa, 0x49, 0xee, 0x19, 0xb1, 0xf8, + 0xd9, 0xd6, 0x7e, 0xce, 0xae, 0x0b, 0x41, 0x4e, 0x1a, 0x41, 0x61, 0x68, 0xf8, 0x39, 0xab, 0x60, + 0x83, 0x22, 0x7e, 0x9b, 0xbc, 0x59, 0x66, 0xe5, 0x3e, 0xbb, 0xe9, 0xf3, 0x96, 0xa8, 0xe5, 0xf5, + 0xad, 0xc8, 0xfb, 0x96, 0x97, 0xc8, 0x7a, 0x29, 0x46, 0xe5, 0x3b, 0xe7, 0x50, 0x9a, 0x6d, 0xf6, + 0x5f, 0x47, 0x27, 0xba, 0x53, 0x3e, 0xf7, 0x86, 0x02, 0xf1, 0xde, 0x2b, 0x65, 0xc2, 0x6b, 0xb8, + 0x70, 0xde, 0xb2, 0x46, 0x40, 0x83, 0x76, 0x60, 0x6b, 0x78, 0x5d, 0xa2, 0x67, 0xcd, 0x95, 0x82, + 0x33, 0x8b, 0xa3, 0x67, 0x49, 0xdd, 0xff, 0xb3, 0xc1, 0xf9, 0x35, 0xbb, 0x0d, 0xec, 0x7a, 0x58, + 0x7e, 0x3f, 0xee, 0x13, 0xa0, 0x4d, 0x9a, 0x85, 0x41, 0xcc, 0xf8, 0x33, 0x3f, 0x93, 0xf2, 0x71, + 0x81, 0xa1, 0xa5, 0x80, 0x0c, 0x0a, 0xbf, 0xfd, 0x5c, 0xbc, 0x30, 0x69, 0x6a, 0x55, 0x5d, 0x6f, + 0x30, 0xa0, 0x86, 0x0d, 0x5f, 0x5f, 0xb9, 0x51, 0xa6, 0x6f, 0x2f, 0xd0, 0x8e, 0xed, 0x9e, 0x80, + 0xad, 0x8d, 0x2f, 0xdd, 0x6e, 0x99, 0x92, 0x62, 0xae, 0xe8, 0xe1, 0x5f, 0xf6, 0x1a, 0x2b, 0x1f, + 0xc1, 0xfc, 0x60, 0x7d, 0xcb, 0xfb, 0xa4, 0xc7, 0x88, 0xd1, 0xd9, 0x34, 0x31, 0x8a, 0x81, 0xf2, + 0x79, 0xef, 0xcd, 0x61, 0x36, 0xb4, 0x3f, 0x08, 0x67, 0x92, 0xb6, 0xbd, 0x7e, 0x61, 0x98, 0xff, + 0xf3, 0x4d, 0x97, 0xfb, 0x00, 0xf3, 0x9e, 0xcc, 0xb9, 0x32, 0x1f, 0x1c, 0xcf, 0x1d, 0xcc, 0xa9, + 0xed, 0x96, 0x7f, 0x6e, 0x1e, 0x67, 0xba, 0xc4, 0x1a, 0x74, 0x56, 0xa7, 0x03, 0x9c, 0xf8, 0x96, + 0x66, 0x40, 0xee, 0x9b, 0xa8, 0xdb, 0xd9, 0x1b, 0xbb, 0xbc, 0xb3, 0xd0, 0xaa, 0xfd, 0x15, 0xb1, + 0x5a, 0xa4, 0xcb, 0xc9, 0x2d, 0x95, 0x5d, 0x5a, 0x07, 0xf9, 0x1b, 0x62, 0x4c, 0xc3, 0xf5, 0x1c, + 0x0c, 0xab, 0xe7, 0xae, 0x6a, 0x4e, 0x40, 0xc7, 0x21, 0xc1, 0x4c, 0xd0, 0xd8, 0xa3, 0xcf, 0x50, + 0x5b, 0x5e, 0x72, 0xa3, 0x0c, 0x34, 0x23, 0x8f, 0x28, 0x84, 0x34, 0x78, 0x16, 0xd2, 0x17, 0xd1, + 0xa2, 0xcf, 0x58, 0x3a, 0x35, 0xca, 0xbc, 0x30, 0xd4, 0x12, 0x90, 0x0f, 0x16, 0x78, 0x52, 0x8a, + 0x8b, 0xf8, 0x23, 0x42, 0x41, 0x8a, 0x77, 0xe7, 0xf3, 0x19, 0xfb, 0x88, 0x58, 0x06, 0xf3, 0x3a, + 0xee, 0xd2, 0xe9, 0xb6, 0x0d, 0xcf, 0xc1, 0x51, 0xcc, 0xd1, 0x2b, 0x55, 0x9a, 0x24, 0xf0, 0x72, + 0x50, 0x25, 0xe1, 0x5f, 0xd5, 0x2f, 0x20, 0x6f, 0xee, 0xee, 0xed, 0x8f, 0x9c, 0x49, 0x08, 0xd1, + 0x1d, 0x7d, 0x2e, 0xc0, 0x61, 0x68, 0x5a, 0xe5, 0x81, 0x11, 0xa9, 0xec, 0xa7, 0x67, 0x8c, 0x18, + 0xab, 0x15, 0x4b, 0x9c, 0xef, 0x3f, 0xa9, 0xc6, 0x95, 0x76, 0x58, 0x2c, 0x62, 0x09, 0xde, 0xed, + 0x73, 0x3e, 0xfc, 0x69, 0x0f, 0xa6, 0xfb, 0x6f, 0x9e, 0x3a, 0x5c, 0x27, 0x24, 0x26, 0xb3, 0x83, + 0x86, 0x27, 0x83, 0x78, 0xcf, 0x32, 0x4e, 0x7d, 0xb6, 0x72, 0xee, 0x5f, 0x11, 0xed, 0xa2, 0xc5, + 0x96, 0xda, 0xb3, 0xb3, 0xbc, 0xae, 0xd0, 0xca, 0x09, 0x3c, 0x0b, 0x2f, 0xc4, 0xca, 0x27, 0xd1, + 0xd3, 0x54, 0xea, 0x6e, 0x0e, 0x1a, 0xe6, 0xd5, 0x74, 0x2b, 0x7e, 0xbb, 0x76, 0x51, 0xac, 0xe8, + 0xa7, 0x34, 0xe1, 0x57, 0xf4, 0x3c, 0x3e, 0xa0, 0x95, 0x96, 0xf6, 0x94, 0x1b, 0xe1, 0x53, 0x2c, + 0xb8, 0xfc, 0xad, 0xb3, 0x6f, 0x4e, 0x93, 0x24, 0x3a, 0x2e, 0xde, 0xe0, 0xec, 0x1e, 0x5a, 0x50, + 0xcd, 0x38, 0xf5, 0xf1, 0xdc, 0x8f, 0x52, 0x03, 0xd5, 0x45, 0xc6, 0x9e, 0xbc, 0xbe, 0xbd, 0x10, + 0x6b, 0xed, 0x81, 0x15, 0x92, 0x55, 0x96, 0xf6, 0x42, 0x16, 0x53, 0xd2, 0xb7, 0xa5, 0xe1, 0xa4, + 0xba, 0x85, 0xa5, 0xd7, 0x21, 0x17, 0x0b, 0x7b, 0x40, 0x35, 0x04, 0x8f, 0x1a, 0x70, 0x28, 0xee, + 0x18, 0x29, 0x05, 0x7b, 0x75, 0xb2, 0xaf, 0xd2, 0x71, 0x25, 0xf6, 0x6d, 0x9c, 0x90, 0x52, 0x76, + 0x9b, 0x72, 0x4e, 0xd8, 0xe2, 0x59, 0x75, 0x63, 0x22, 0xbb, 0x7e, 0x24, 0x72, 0xc5, 0x1b, 0x2e, + 0xa7, 0x7a, 0x42, 0xd0, 0x78, 0x9c, 0xd3, 0xe4, 0x38, 0xd1, 0xc8, 0x76, 0x04, 0xee, 0xf0, 0x3a, + 0x39, 0x89, 0x3e, 0x55, 0x74, 0x51, 0xcd, 0x07, 0x73, 0x9a, 0xf3, 0x44, 0xf3, 0xda, 0x7f, 0x55, + 0x98, 0x5b, 0x51, 0x1a, 0xd1, 0x38, 0x57, 0x2a, 0xb0, 0x8a, 0xcf, 0x0f, 0x7b, 0xea, 0xb5, 0x6c, + 0x5f, 0x10, 0xb8, 0x1b, 0xe8, 0x52, 0x22, 0xad, 0x2a, 0xbb, 0xda, 0xcf, 0x7e, 0x30, 0x61, 0xb5, + 0xec, 0xd1, 0x66, 0x30, 0x03, 0x13, 0x4e, 0xdd, 0x1d, 0x17, 0xe8, 0x0d, 0x63, 0x4a, 0x28, 0xa8, + 0xca, 0xa1, 0x9c, 0xeb, 0x05, 0x19, 0xad, 0xa4, 0x72, 0x2d, 0xdc, 0x16, 0xc5, 0x26, 0xf9, 0x2b, + 0xab, 0x6e, 0xdc, 0xe9, 0x37, 0x4a, 0xcb, 0xfe, 0x80, 0x53, 0x6e, 0xcc, 0x4d, 0x16, 0x27, 0xe3, + 0x8e, 0x1d, 0x2a, 0x6d, 0x9a, 0xe2, 0xfc, 0x87, 0x6e, 0x5d, 0x09, 0x21, 0xdc, 0x5d, 0xc6, 0x04, + 0xb7, 0x58, 0x99, 0xf0, 0x04, 0x1e, 0x35, 0xce, 0x95, 0x1b, 0x68, 0x54, 0x51, 0xd3, 0x7a, 0xe7, + 0x7a, 0xaf, 0xd1, 0x06, 0x50, 0x16, 0x63, 0x95, 0x43, 0x1e, 0x63, 0xef, 0xb1, 0x85, 0x19, 0x8a, + 0x8c, 0xd6, 0x10, 0x81, 0x09, 0x51, 0xf2, 0xa9, 0x71, 0x70, 0xe5, 0xb3, 0xa3, 0xb1, 0x89, 0x47, + 0x0a, 0x54, 0x4f, 0x3d, 0xc9, 0x66, 0x3a, 0x8c, 0x1e, 0x18, 0x37, 0xc3, 0x98, 0x44, 0x1e, 0x1b, + 0xed, 0xac, 0xc3, 0x36, 0x7c, 0x86, 0xee, 0x92, 0x32, 0x1d, 0xaa, 0x9a, 0x25, 0xb2, 0xe3, 0xcb, + 0x55, 0xa2, 0xa4, 0xe7, 0x79, 0x41, 0x4c, 0x69, 0xb1, 0xf4, 0x49, 0x21, 0xbc, 0xfc, 0xc7, 0x0e, + 0x97, 0xa7, 0x03, 0x95, 0xfb, 0x9e, 0xdf, 0x9d, 0x26, 0x61, 0x46, 0x57, 0x28, 0xea, 0x33, 0xc2, + 0xa2, 0x53, 0x32, 0xf5, 0xd5, 0x05, 0x95, 0xcc, 0xa8, 0xba, 0xd6, 0x70, 0x40, 0x15, 0x0a, 0x36, + 0xc3, 0x0a, 0x37, 0xab, 0x16, 0x25, 0x56, 0x61, 0x04, 0x85, 0x5f, 0x85, 0xd1, 0xfc, 0x4c, 0x9f, + 0x64, 0xc1, 0xee, 0xa3, 0x8d, 0x2e, 0x46, 0xae, 0x74, 0x2c, 0x31, 0x13, 0x67, 0xa6, 0x21, 0x63, + 0xfd, 0x66, 0xdf, 0x0c, 0xf9, 0x41, 0x13, 0x4d, 0xd2, 0x8e, 0x6c, 0xe7, 0xaf, 0x99, 0x6f, 0x9e, + 0xec, 0x1b, 0x47, 0xba, 0x05, 0xbf, 0x3f, 0x14, 0x0e, 0x9d, 0x9d, 0xea, 0x38, 0xdd, 0x75, 0xba, + 0x4b, 0x56, 0x28, 0xdf, 0xea, 0x39, 0xea, 0xb8, 0xdf, 0xe2, 0x1f, 0x05, 0x75, 0x6c, 0x6b, 0x3c, + 0xc6, 0xc3, 0x9b, 0x78, 0x62, 0x86, 0x69, 0x1b, 0xfd, 0x0d, 0xf9, 0x91, 0xde, 0x01, 0x68, 0x60, + 0x1f, 0xa7, 0x78, 0xa7, 0x1a, 0xeb, 0x7e, 0xec, 0x8f, 0x90, 0x7f, 0x1e, 0x66, 0x5f, 0xa2, 0x75, + 0xe3, 0x60, 0x15, 0xac, 0x80, 0x1d, 0x40, 0x36, 0x0c, 0x8d, 0x71, 0x1c, 0x6c, 0xca, 0x15, 0x91, + 0xd3, 0x8d, 0x39, 0xb6, 0x8c, 0xe5, 0x6c, 0xb0, 0xfe, 0x18, 0xed, 0x33, 0x83, 0x74, 0x62, 0x86, + 0x91, 0x7f, 0x4f, 0x88, 0xb0, 0x68, 0xce, 0xcb, 0x30, 0xb3, 0xb7, 0x2f, 0x66, 0xd3, 0x39, 0x1d, + 0x44, 0xaa, 0xd8, 0x2d, 0x04, 0xab, 0x4b, 0x57, 0x60, 0xb3, 0x06, 0x75, 0x60, 0x2a, 0xc7, 0xbe, + 0x88, 0xd0, 0x85, 0xa8, 0xf1, 0x54, 0xef, 0xc1, 0x03, 0xd2, 0xe8, 0xd0, 0x46, 0x27, 0x8e, 0x13, + 0xb8, 0x11, 0xc6, 0xc0, 0x7f, 0x74, 0x41, 0x8a, 0x6b, 0x92, 0x34, 0x5e, 0x99, 0x32, 0xc2, 0xc8, + 0xfc, 0x60, 0xa7, 0x2d, 0x67, 0x3c, 0xf3, 0xa5, 0x5a, 0x16, 0xec, 0x2c, 0x1e, 0x73, 0x10, 0x1a, + 0x73, 0x2d, 0xd4, 0xbb, 0x40, 0xf9, 0x2a, 0x62, 0xff, 0x2f, 0xc7, 0x10, 0x2c, 0x41, 0x3b, 0x9a, + 0x32, 0xa9, 0xc2, 0x17, 0x98, 0xe9, 0xcb, 0xa2, 0x80, 0x41, 0xed, 0x62, 0x4a, 0xc0, 0x36, 0x2f, + 0x43, 0x2d, 0x4f, 0x61, 0xc9, 0xfc, 0xbf, 0xa3, 0xa3, 0xdf, 0x71, 0xb9, 0xe9, 0x7e, 0x7f, 0x2c, + 0xaf, 0x83, 0xd2, 0x1c, 0x6d, 0x5f, 0x9c, 0x91, 0x5b, 0x69, 0x63, 0x1c, 0x76, 0x0f, 0xd4, 0xda, + 0x39, 0x13, 0xa4, 0xf9, 0xc4, 0x63, 0x68, 0xbc, 0xdb, 0x9c, 0x81, 0x60, 0x99, 0x37, 0xaa, 0xfe, + 0xe2, 0x94, 0x24, 0x5e, 0x9f, 0x19, 0xe4, 0x4e, 0x6a, 0x68, 0x27, 0x8d, 0xb2, 0x87, 0x3d, 0x97, + 0xb9, 0xe9, 0xfa, 0x78, 0xc2, 0x5f, 0x88, 0x00, 0x37, 0x6d, 0x06, 0x14, 0xfc, 0x09, 0xa7, 0x7a, + 0x67, 0x4b, 0xbf, 0xbb, 0x2e, 0xef, 0x76, 0x66, 0x52, 0xe3, 0x65, 0xe4, 0x6a, 0xee, 0x51, 0xd0, + 0x9b, 0x24, 0x2d, 0x12, 0x86, 0x9b, 0x00, 0x9d, 0x49, 0x48, 0xbf, 0x0f, 0x86, 0xc4, 0x42, 0x78, + 0x2e, 0x90, 0x1b, 0x39, 0x53, 0xe3, 0x50, 0xd1, 0xed, 0xf9, 0xe9, 0xe7, 0x46, 0xa0, 0xc3, 0xed, + 0x60, 0x9b, 0x86, 0x38, 0x12, 0x7e, 0x66, 0x1f, 0x04, 0xb7, 0x05, 0xb4, 0x4f, 0xab, 0x28, 0x30, + 0xcd, 0xef, 0x10, 0xa7, 0x22, 0x64, 0x88, 0xbb, 0x62, 0x5f, 0x02, 0x27, 0x84, 0x4a, 0x50, 0xb6, + 0x8c, 0xf9, 0x74, 0x06, 0x45, 0xb7, 0x92, 0xc5, 0x53, 0xb2, 0x50, 0xf4, 0x50, 0x0e, 0x03, 0x28, + 0x78, 0xa1, 0xc7, 0x46, 0xec, 0x94, 0x8a, 0xad, 0xfb, 0x96, 0x08, 0x6f, 0xab, 0x09, 0xa4, 0xf1, + 0x6d, 0x4e, 0x8c, 0x57, 0x50, 0x0f, 0xa9, 0x68, 0xb2, 0xcb, 0x69, 0x1f, 0x89, 0x90, 0x71, 0x69, + 0xc3, 0x63, 0x71, 0x58, 0x7e, 0x58, 0x27, 0x06, 0x0c, 0xfd, 0x24, 0x65, 0x33, 0xaa, 0xd5, 0xad, + 0xeb, 0x74, 0x91, 0x6c, 0x26, 0x2f, 0x3e, 0x95, 0x63, 0x79, 0xd8, 0x0e, 0xdb, 0xed, 0x8c, 0x13, + 0xf2, 0x1f, 0xb7, 0xf2, 0xb2, 0xcb, 0x69, 0xee, 0x85, 0xce, 0xa2, 0x8d, 0xca, 0x70, 0xb8, 0x90, + 0xc4, 0x43, 0xdb, 0xb3, 0x66, 0x39, 0x3e, 0x09, 0x25, 0xba, 0x32, 0x5a, 0xa4, 0xa6, 0x1d, 0x4f, + 0x63, 0x23, 0xe0, 0x0f, 0x61, 0x17, 0xcc, 0xce, 0xed, 0x6d, 0xab, 0x6e, 0xf5, 0x91, 0xac, 0x6e, + 0x94, 0x59, 0x67, 0x80, 0x8a, 0xa5, 0x5e, 0xf6, 0x87, 0x39, 0x57, 0xb9, 0x25, 0x81, 0xe7, 0xe8, + 0x1e, 0xfd, 0x28, 0x38, 0x2a, 0xfb, 0x87, 0x7c, 0x68, 0xac, 0xc7, 0xcc, 0x65, 0x96, 0xda, 0x1f, + 0x5f, 0x4e, 0x51, 0x76, 0x3a, 0xfe, 0x28, 0xa4, 0xa6, 0xd4, 0x1d, 0x76, 0x7a, 0xf8, 0xa7, 0xee, + 0x39, 0xe5, 0xb7, 0x79, 0x4a, 0xfb, 0x78, 0x13, 0xe7, 0x8b, 0xa3, 0xa7, 0xa8, 0xf2, 0x2e, 0x07, + 0x36, 0x2d, 0xf0, 0x14, 0xd6, 0xf2, 0xb4, 0x53, 0xe5, 0x70, 0x3e, 0x38, 0x7a, 0x9d, 0x78, 0x2d, + 0xde, 0x7c, 0x1d, 0x07, 0x04, 0x7f, 0xd6, 0xc6, 0x89, 0xaa, 0xe5, 0xdb, 0x6f, 0x5b, 0x96, 0xae, + 0xe5, 0xf4, 0x64, 0x18, 0x15, 0xf2, 0xde, 0x7b, 0x2e, 0x53, 0xa3, 0x7a, 0x92, 0x0d, 0xfc, 0x7a, + 0xb1, 0xf6, 0xb1, 0x39, 0x61, 0x09, 0xb5, 0x9f, 0x8a, 0x4c, 0x5c, 0x25, 0xf7, 0x3a, 0xbe, 0x4c, + 0xf0, 0x95, 0xec, 0x51, 0x31, 0x73, 0x53, 0xc7, 0xf9, 0x58, 0xe1, 0x16, 0x42, 0xd6, 0xa9, 0x19, + 0x0c, 0x7e, 0x9c, 0x6b, 0x4d, 0x9f, 0x9b, 0x01, 0x9a, 0x86, 0x66, 0xe4, 0x91, 0x5b, 0x0b, 0x4a, + 0x6f, 0x06, 0x02, 0x7e, 0x47, 0xca, 0x8e, 0x55, 0x06, 0xc2, 0x93, 0x0a, 0xc6, 0x10, 0x4f, 0xb8, + 0x27, 0x93, 0xbd, 0x85, 0xfa, 0x5f, 0xf6, 0xbb, 0x2e, 0xd4, 0xba, 0x14, 0xba, 0x79, 0xe4, 0x0d, + 0xa0, 0xd1, 0x83, 0x51, 0x8e, 0xe2, 0xe9, 0xb0, 0x28, 0xe0, 0xf0, 0x91, 0x17, 0xce, 0x65, 0xe1, + 0xa6, 0xeb, 0x22, 0x97, 0x76, 0x39, 0x3d, 0xd5, 0x93, 0x91, 0x6d, 0x6c, 0xaf, 0xdb, 0x76, 0x65, + 0x0c, 0xaa, 0xfe, 0x4f, 0xa1, 0xf5, 0x06, 0xc2, 0xce, 0xde, 0xbd, 0xaa, 0x22, 0x88, 0x60, 0x4a, + 0xa2, 0xb0, 0x58, 0x9c, 0x3b, 0x47, 0x3c, 0x73, 0x1a, 0xc0, 0xfe, 0x3d, 0xb7, 0x6b, 0x5c, 0xa8, + 0x0f, 0x71, 0x64, 0xac, 0x34, 0xf2, 0x4e, 0x2b, 0x18, 0xe3, 0x97, 0x40, 0x5e, 0x1b, 0x1b, 0x6c, + 0x6a, 0x7a, 0x41, 0x66, 0x79, 0x5e, 0x2b, 0x39, 0xba, 0x8f, 0x1f, 0x08, 0x33, 0x08, 0xb6, 0x57, + 0x8e, 0x06, 0x3c, 0x99, 0x04, 0x72, 0x6b, 0x18, 0x49, 0x31, 0xad, 0x83, 0xf4, 0xdf, 0xb8, 0x41, + 0x6e, 0x34, 0xdb, 0x69, 0x44, 0x1b, 0x04, 0xe7, 0x2b, 0x74, 0x64, 0x30, 0x5d, 0x52, 0x40, 0xab, + 0xeb, 0xb4, 0x2c, 0xc3, 0xd1, 0x52, 0x76, 0xb0, 0xad, 0xc7, 0x7c, 0x18, 0xe0, 0x18, 0xd0, 0x1b, + 0x81, 0x17, 0xc6, 0x67, 0x3e, 0x21, 0xa7, 0x8f, 0x88, 0xb3, 0xd0, 0x89, 0x37, 0x72, 0xd4, 0xec, + 0x1f, 0x02, 0xb3, 0x5b, 0x19, 0xb8, 0x87, 0x49, 0x49, 0xa5, 0x1b, 0xbc, 0xdd, 0x14, 0xb2, 0xe6, + 0x42, 0x64, 0x77, 0x74, 0x53, 0x30, 0x65, 0x0c, 0x16, 0xa6, 0x61, 0x45, 0xee, 0x5b, 0x20, 0xcc, + 0xad, 0xca, 0x8c, 0x53, 0xb3, 0x83, 0x86, 0xd2, 0x73, 0x43, 0x9d, 0x34, 0xb8, 0x8f, 0xec, 0x76, + 0x54, 0x42, 0xc3, 0x7e, 0x91, 0xe9, 0xe3, 0x7e, 0x12, 0x97, 0x08, 0xdb, 0x5f, 0x84, 0x07, 0xd5, + 0x7b, 0x80, 0xeb, 0x6f, 0xf8, 0xa8, 0x9e, 0xfd, 0x68, 0xcb, 0xb6, 0xff, 0xa8, 0xb1, 0x1d, 0x4a, + 0x63, 0xe0, 0xfe, 0xde, 0x94, 0x16, 0x45, 0x01, 0xbf, 0x47, 0xde, 0x75, 0xc4, 0xdd, 0x3c, 0x57, + 0x64, 0x10, 0xcf, 0x6d, 0xfc, 0x82, 0xd9, 0xb4, 0xe9, 0x98, 0x1a, 0x8f, 0xe1, 0xc0, 0x1d, 0xe6, + 0x6e, 0x2f, 0x1d, 0x47, 0x8e, 0xdb, 0xbe, 0x9e, 0x38, 0xfe, 0x5c, 0x8c, 0x12, 0xd6, 0x61, 0x66, + 0xc1, 0x67, 0xb1, 0xe7, 0x4d, 0x57, 0x64, 0xd6, 0x9e, 0x58, 0x4f, 0x56, 0x4e, 0x48, 0xb7, 0x9b, + 0x0d, 0xfa, 0x03, 0x0b, 0x2a, 0x2d, 0x74, 0xcd, 0x1e, 0x8d, 0xd9, 0x8e, 0xbc, 0xbc, 0x5b, 0x0a, + 0x6a, 0xe4, 0x3e, 0x1d, 0x8b, 0x82, 0x96, 0x29, 0xad, 0xd0, 0x5c, 0x16, 0x20, 0xd4, 0xed, 0xb0, + 0x07, 0x65, 0x56, 0x4a, 0xc6, 0xd1, 0x48, 0x2c, 0xff, 0x45, 0x19, 0xdb, 0x9d, 0xec, 0x0d, 0xd0, + 0xbf, 0x1e, 0x6c, 0x40, 0xb9, 0x80, 0x78, 0x01, 0x6e, 0x8f, 0x9a, 0x9d, 0x49, 0x81, 0x3f, 0x31, + 0x95, 0xf3, 0xe9, 0xd2, 0x04, 0xed, 0x86, 0x01, 0xc5, 0x2f, 0x92, 0x5b, 0xab, 0x95, 0xcc, 0x18, + 0x5c, 0x81, 0x5d, 0x74, 0xa3, 0x20, 0x68, 0x1d, 0xa1, 0xec, 0x78, 0x5f, 0x63, 0x22, 0x9e, 0x30, + 0x0d, 0xc7, 0x09, 0x84, 0xbe, 0x83, 0xe5, 0xe5, 0x07, 0x85, 0x2d, 0x1b, 0x7f, 0xbe, 0x75, 0xbd, + 0xfe, 0x3a, 0xc6, 0x10, 0xb5, 0x84, 0x07, 0xf1, 0x8b, 0xac, 0x02, 0x33, 0x00, 0x32, 0xaa, 0x11, + 0x57, 0xf0, 0x45, 0x60, 0xca, 0x74, 0x74, 0xcd, 0x12, 0x13, 0xea, 0x9b, 0x6a, 0xd0, 0x74, 0x15, + 0x8f, 0xe4, 0xa8, 0x07, 0xfc, 0x3d, 0xa2, 0xb2, 0xf7, 0x3b, 0xa2, 0xfe, 0x44, 0x6e, 0xea, 0xf1, + 0xb7, 0x72, 0x35, 0x02, 0x12, 0xa2, 0xdc, 0x93, 0x68, 0x25, 0xea, 0xdd, 0x3b, 0x8f, 0xc0, 0xa7, + 0x32, 0xe4, 0xe7, 0xaf, 0x9d, 0x9e, 0xdc, 0x1f, 0xca, 0x33, 0xdd, 0xd9, 0x07, 0x41, 0xba, 0x62, + 0x40, 0x03, 0xe6, 0xd3, 0x0e, 0x0f, 0x81, 0xf3, 0xe6, 0x6a, 0x57, 0x2a, 0x99, 0x87, 0x32, 0xc7, + 0x22, 0xe5, 0xe2, 0x25, 0xcf, 0x37, 0x7f, 0x27, 0xaa, 0xb7, 0x3e, 0x78, 0x28, 0xd3, 0x38, 0x61, + 0xad, 0x02, 0xd5, 0x3f, 0xb5, 0x50, 0x1f, 0x39, 0xf0, 0x9f, 0xa0, 0xf7, 0xc0, 0xf8, 0xb6, 0x26, + 0xca, 0x79, 0x56, 0xa7, 0x3e, 0xfb, 0x27, 0x0c, 0x36, 0x28, 0x1b, 0x49, 0xc1, 0xc9, 0xf3, 0xe9, + 0x91, 0xb5, 0x2b, 0x2f, 0xe1, 0xd1, 0xfa, 0x6f, 0x7b, 0xab, 0x58, 0x29, 0xef, 0x41, 0x09, 0x2f, + 0x01, 0x00, 0x19, 0x2c, 0xf7, 0x18, 0xbb, 0x38, 0x60, 0x25, 0x04, 0x40, 0xb3, 0x40, 0xf9, 0x3e, + 0x6f, 0xa7, 0xaa, 0xea, 0x42, 0xcf, 0x73, 0x52, 0xd9, 0x6d, 0xd4, 0x22, 0xb6, 0x6d, 0x3e, 0x3b, + 0x26, 0x65, 0x90, 0x58, 0x1d, 0x19, 0x92, 0x76, 0x5a, 0xc0, 0x0f, 0x3e, 0x22, 0x34, 0xc1, 0x5e, + 0x9c, 0x17, 0x2c, 0xe7, 0xfb, 0x08, 0x73, 0xdb, 0xb4, 0x6c, 0x2c, 0x34, 0xc3, 0xec, 0x03, 0x27, + 0xa1, 0x72, 0xfe, 0x22, 0xb7, 0x08, 0x52, 0x2a, 0xaa, 0xf0, 0x60, 0xc2, 0x98, 0x6e, 0xae, 0xa1, + 0xfb, 0x1e, 0x3c, 0xc2, 0x9a, 0x0a, 0x1d, 0x7a, 0x93, 0xe3, 0xc5, 0x88, 0x41, 0x0f, 0x1b, 0xcd, + 0x0a, 0x20, 0xbd, 0x25, 0x92, 0x6f, 0xa9, 0xb5, 0x78, 0x2d, 0x70, 0x0b, 0x0e, 0x48, 0x86, 0x8c, + 0xd8, 0xe5, 0xc6, 0x2a, 0xf7, 0x2f, 0x7e, 0xf8, 0x98, 0x83, 0x1f, 0xc1, 0x53, 0x79, 0x64, 0x55, + 0x6d, 0x1b, 0xc3, 0xcd, 0x2a, 0xb5, 0x23, 0xe5, 0x48, 0x2a, 0xf7, 0x5d, 0xf5, 0x0e, 0x3e, 0x16, + 0x88, 0x3b, 0x65, 0x5f, 0x43, 0xf9, 0x8a, 0x98, 0x22, 0x7e, 0xce, 0x61, 0xd5, 0xe0, 0x6c, 0xa9, + 0x25, 0x1a, 0xb6, 0x21, 0x96, 0xc2, 0x51, 0x53, 0x91, 0x94, 0xf2, 0xdd, 0x2f, 0x08, 0x5b, 0x7e, + 0x11, 0x21, 0x14, 0xb0, 0x08, 0xcc, 0x71, 0xf6, 0x90, 0x0e, 0x61, 0x5f, 0x61, 0x77, 0xfe, 0x76, + 0x8d, 0xa2, 0x2d, 0xae, 0x9b, 0x21, 0x16, 0x44, 0xb1, 0xf5, 0x20, 0xaf, 0xc7, 0xb3, 0xeb, 0x37, + 0xe7, 0xfe, 0xc5, 0x02, 0xe5, 0xb8, 0x4d, 0x15, 0x12, 0x12, 0xa3, 0xd9, 0xb4, 0x53, 0x4a, 0x21, + 0xb2, 0xf1, 0x50, 0x5c, 0xab, 0x0e, 0xc7, 0x32, 0x2b, 0xd2, 0x6d, 0x3f, 0xc9, 0xfd, 0x90, 0x5f, + 0xce, 0x75, 0xcd, 0x45, 0x6d, 0x67, 0xc1, 0xb7, 0x06, 0xf4, 0xe0, 0x2a, 0x3a, 0x42, 0xf0, 0x6c, + 0x07, 0x97, 0x45, 0x25, 0x8c, 0xdb, 0xdb, 0x02, 0xcf, 0x6a, 0x8f, 0x3a, 0xea, 0x18, 0xfd, 0x59, + 0x5b, 0x06, 0xbf, 0x47, 0x1a, 0xb1, 0x9b, 0x30, 0x64, 0xc2, 0x1b, 0x9b, 0xc5, 0x2a, 0x6d, 0x76, + 0x91, 0x5c, 0xd6, 0x96, 0xec, 0x75, 0x22, 0x91, 0x97, 0x0f, 0x14, 0x62, 0x5c, 0x9d, 0x6f, 0xfe, + 0x51, 0x81, 0xcc, 0x31, 0x8c, 0x7e, 0x6a, 0x10, 0x57, 0x2a, 0x7d, 0x51, 0x15, 0x1f, 0xb6, 0x37, + 0xb6, 0x69, 0x59, 0x1a, 0xb4, 0x40, 0x7e, 0x42, 0x27, 0x6e, 0x14, 0xc7, 0xe6, 0x4d, 0x52, 0x29, + 0x1e, 0xf0, 0x7c, 0x2b, 0x36, 0x61, 0x58, 0x22, 0x4a, 0x2c, 0xee, 0xec, 0x02, 0x11, 0xd5, 0xdb, + 0x3a, 0x8d, 0xed, 0xd8, 0x9f, 0xb5, 0x7a, 0x03, 0x40, 0xa5, 0x64, 0x61, 0x28, 0xf6, 0xfd, 0x11, + 0xf6, 0x25, 0x78, 0xc4, 0x12, 0x91, 0xdb, 0x9d, 0xc1, 0xe6, 0x5d, 0x97, 0xfc, 0x0a, 0xff, 0xd2, + 0x19, 0x0c, 0x0d, 0xd1, 0xe6, 0x62, 0x35, 0xb6, 0x31, 0x85, 0xc0, 0x22, 0x61, 0xf8, 0xdf, 0xc5, + 0x32, 0x17, 0xb4, 0xfb, 0x33, 0x9d, 0xf0, 0xfb, 0xb8, 0x8f, 0xc4, 0xd6, 0x73, 0xfc, 0x4e, 0xb5, + 0x6f, 0x88, 0xe9, 0x5d, 0x48, 0x77, 0xa1, 0x76, 0xcd, 0xcc, 0xae, 0x86, 0x49, 0x6b, 0x11, 0xf9, + 0x13, 0xbe, 0xd1, 0x9b, 0xdc, 0xeb, 0xe2, 0xed, 0xda, 0x4c, 0xfe, 0x27, 0x1b, 0x4d, 0x49, 0x79, + 0x13, 0xf7, 0x7a, 0x6a, 0x7f, 0x1b, 0x32, 0xf0, 0x8c, 0x9d, 0x18, 0x79, 0xcf, 0xe2, 0xc1, 0x69, + 0xb4, 0xd8, 0x59, 0x34, 0x4c, 0x52, 0x91, 0xa9, 0x07, 0x01, 0x1a, 0x2c, 0x71, 0xfc, 0xbb, 0x0b, + 0x23, 0xd4, 0x0d, 0xd2, 0xe4, 0xbf, 0x71, 0x7a, 0xa9, 0xa1, 0x09, 0x98, 0xf0, 0x9d, 0x00, 0x96, + 0x1c, 0x38, 0xb5, 0xb2, 0xaf, 0x8a, 0x3a, 0x31, 0x0d, 0xd0, 0xb5, 0x18, 0xd7, 0x84, 0xed, 0x71, + 0x9e, 0xb7, 0xd3, 0x53, 0x1f, 0x5b, 0x9c, 0x26, 0xb8, 0xbf, 0x9e, 0x16, 0xcd, 0x65, 0x15, 0xc8, + 0xe5, 0x29, 0x57, 0x36, 0xa2, 0x4b, 0x6a, 0x18, 0xc4, 0xee, 0x7e, 0x66, 0x53, 0xb6, 0x0b, 0x18, + 0xf2, 0xa6, 0xac, 0x3f, 0xbd, 0x25, 0xac, 0x5c, 0xf5, 0x28, 0xc1, 0xa5, 0xa6, 0x2f, 0x18, 0x37, + 0x8c, 0x18, 0x3b, 0xab, 0x14, 0xda, 0xc1, 0x9f, 0xa5, 0xe5, 0x4f, 0xde, 0x8f, 0x57, 0x7d, 0x6d, + 0xdb, 0x71, 0x09, 0xbc, 0xa3, 0x75, 0x7f, 0xdd, 0x05, 0x09, 0xf0, 0x96, 0xbe, 0xea, 0xe4, 0x5c, + 0xd6, 0x23, 0x0e, 0x34, 0xee, 0x94, 0x7a, 0x41, 0x72, 0x3a, 0x1d, 0xdb, 0x55, 0x01, 0x20, 0xa1, + 0xac, 0xb0, 0xd4, 0xe6, 0x05, 0x20, 0xf7, 0xf8, 0x3b, 0xf4, 0x98, 0x85, 0x5c, 0xcc, 0xb1, 0x62, + 0x51, 0x88, 0x93, 0xd2, 0xfb, 0x7e, 0x17, 0x6e, 0xdb, 0xbc, 0x1d, 0x3f, 0x46, 0x02, 0x8c, 0x31, + 0x5e, 0xfe, 0xc0, 0xd7, 0x45, 0xc1, 0x4c, 0x77, 0x6f, 0xa6, 0xf0, 0xda, 0xe0, 0x92, 0xd4, 0xa4, + 0x16, 0xcc, 0x67, 0xf1, 0xc8, 0x65, 0x2e, 0x79, 0xea, 0x39, 0xa2, 0x7e, 0xbc, 0x83, 0x98, 0xaf, + 0xb7, 0xcf, 0xf3, 0x11, 0xce, 0xc1, 0x10, 0xaa, 0x58, 0xe3, 0x6c, 0x48, 0x58, 0x13, 0xcb, 0x76, + 0x15, 0x15, 0xd4, 0xeb, 0x74, 0x5a, 0xaa, 0xaa, 0x57, 0x22, 0x2b, 0x27, 0xc3, 0xcb, 0x7b, 0x85, + 0x84, 0x39, 0x65, 0xfa, 0x4c, 0xeb, 0x7b, 0x46, 0xd1, 0xde, 0x53, 0xde, 0x58, 0x38, 0x23, 0xfb, + 0xa6, 0xef, 0xaa, 0x3c, 0x14, 0x77, 0x81, 0xc3, 0x06, 0x61, 0x04, 0x50, 0xb5, 0xfb, 0x2b, 0x65, + 0x88, 0xb2, 0x60, 0x3e, 0x20, 0x84, 0x5e, 0x98, 0x52, 0x5a, 0xb0, 0x22, 0xe8, 0x9d, 0x0a, 0xbf, + 0xbb, 0xf9, 0x2c, 0x8f, 0x85, 0xb5, 0x49, 0xa9, 0x2d, 0xda, 0xcf, 0x31, 0x68, 0xbb, 0xe5, 0x7c, + 0xec, 0xd2, 0xed, 0xac, 0x7e, 0x98, 0xfb, 0xb1, 0x15, 0x8c, 0x1f, 0x52, 0xec, 0x4f, 0x13, 0x64, + 0xbf, 0x5e, 0x21, 0x8a, 0xf4, 0x73, 0x82, 0xa3, 0x9f, 0x05, 0x75, 0xf9, 0xf7, 0xb3, 0xcb, 0x83, + 0x75, 0x56, 0x41, 0x56, 0xc6, 0x63, 0x97, 0x4a, 0xea, 0xee, 0x6b, 0x3d, 0x96, 0x90, 0xfa, 0x3f, + 0x60, 0x1b, 0x4c, 0x86, 0x98, 0xeb, 0x52, 0xac, 0x2d, 0xeb, 0xf9, 0xf5, 0x6a, 0x56, 0x5e, 0x05, + 0x00, 0x7e, 0x3f, 0x48, 0x01, 0x6e, 0x20, 0x1d, 0xe3, 0x62, 0x2a, 0x16, 0x29, 0x9f, 0xe8, 0xbf, + 0xd9, 0x14, 0x02, 0xe3, 0x54, 0x96, 0xd3, 0xcf, 0x9d, 0x74, 0x39, 0x11, 0x24, 0x25, 0xe3, 0xc1, + 0x1b, 0xbb, 0x23, 0xfc, 0xff, 0x13, 0xcb, 0x5e, 0x4e, 0xc7, 0x01, 0x6d, 0x7c, 0xe2, 0x19, 0x06, + 0x4e, 0x0f, 0xfc, 0x38, 0xf5, 0x55, 0x41, 0xe1, 0x79, 0x5e, 0x5e, 0x65, 0x76, 0x0b, 0x2b, 0x04, + 0x21, 0x14, 0x82, 0x4e, 0x5f, 0xdc, 0x7a, 0x36, 0x45, 0x63, 0xfb, 0xa3, 0x74, 0xc9, 0x65, 0xd5, + 0xf3, 0xdd, 0x99, 0x94, 0x1c, 0xed, 0xdd, 0x15, 0x24, 0x56, 0x6c, 0xac, 0x7d, 0xf3, 0x43, 0x30, + 0x72, 0x4d, 0xe6, 0xa7, 0xf9, 0x2b, 0x51, 0x24, 0x98, 0x8c, 0x9b, 0x76, 0x79, 0x5b, 0xd7, 0x0e, + 0x8b, 0x00, 0x43, 0x2d, 0xa5, 0x2c, 0xf8, 0x58, 0xd4, 0xdf, 0xd2, 0xa4, 0x8d, 0xfc, 0xcf, 0x5c, + 0x87, 0x00, 0xd9, 0x74, 0xc7, 0x8d, 0xc1, 0x21, 0x1e, 0xf5, 0x4b, 0x74, 0x71, 0x66, 0xb3, 0x1b, + 0x7e, 0x06, 0x6b, 0x83, 0x13, 0x95, 0x68, 0x13, 0xed, 0xfa, 0x96, 0x9c, 0xb2, 0xf1, 0x94, 0xd5, + 0x56, 0x5b, 0x62, 0x7f, 0x71, 0xbf, 0x0a, 0xea, 0x5e, 0xd3, 0x1c, 0xae, 0x0c, 0x1f, 0x1b, 0x33, + 0x5a, 0x2d, 0x7c, 0x30, 0xa4, 0xb0, 0x91, 0x88, 0xf3, 0xaf, 0xf3, 0xb4, 0xb7, 0xaf, 0xcd, 0x08, + 0x96, 0x09, 0xfa, 0xb9, 0x21, 0xc3, 0xf7, 0x22, 0xc3, 0x78, 0x1d, 0x6b, 0xff, 0xc3, 0x00, 0xea, + 0x99, 0x0e, 0xa3, 0x22, 0xca, 0x9b, 0x49, 0x37, 0x85, 0x00, 0xb6, 0x59, 0xfd, 0x85, 0x43, 0xcf, + 0xdc, 0x24, 0x00, 0x8e, 0xf9, 0xb1, 0xd2, 0xa8, 0x94, 0x55, 0x0a, 0xf7, 0x81, 0x32, 0x08, 0x84, + 0xa2, 0x40, 0x7a, 0x2d, 0xbd, 0x0a, 0x5b, 0x11, 0x00, 0x16, 0xf6, 0x63, 0x01, 0x35, 0xb7, 0x8c, + 0xe1, 0x0b, 0x2d, 0xf8, 0x9b, 0xbe, 0x43, 0xa6, 0xae, 0x45, 0x5e, 0x91, 0x7c, 0x16, 0x76, 0x91, + 0xde, 0x48, 0x4f, 0x60, 0xb8, 0x03, 0x47, 0x65, 0xc8, 0x13, 0xf9, 0x03, 0xb9, 0xaa, 0xfe, 0x08, + 0x8f, 0x3e, 0x8a, 0x8d, 0xbb, 0x1d, 0xa2, 0x46, 0x07, 0xa1, 0x35, 0xaf, 0x68, 0xc1, 0x27, 0xe3, + 0xe1, 0x4e, 0x5a, 0xbb, 0x21, 0xb6, 0x52, 0xae, 0xc3, 0xfa, 0x30, 0xcd, 0x4e, 0x81, 0x79, 0xde, + 0x67, 0x46, 0x9e, 0x0a, 0xd8, 0x89, 0x17, 0x30, 0xea, 0x05, 0xb9, 0xc0, 0x48, 0xd3, 0x8e, 0x09, + 0x56, 0x59, 0x67, 0x41, 0xcc, 0xa4, 0xef, 0xdb, 0x7c, 0xa6, 0x0b, 0xbd, 0x2a, 0xb0, 0x5c, 0x74, + 0x0f, 0xca, 0xf6, 0x2e, 0xe4, 0xe6, 0xf1, 0x74, 0x26, 0x49, 0x34, 0x41, 0xfa, 0xfd, 0xcc, 0xd0, + 0x00, 0x83, 0x4b, 0x43, 0x0a, 0xe8, 0x5f, 0xd8, 0x69, 0x49, 0xd0, 0xf2, 0x34, 0x84, 0x16, 0x3d, + 0x90, 0x96, 0x9a, 0x85, 0xac, 0x4e, 0xe0, 0x2b, 0x48, 0x10, 0xb5, 0xc6, 0xb5, 0x2d, 0x8f, 0x63, + 0x9f, 0x87, 0x50, 0x99, 0x1b, 0xac, 0x8c, 0x65, 0x7f, 0x29, 0x16, 0xd9, 0xa0, 0xe6, 0x22, 0x63, + 0x23, 0xdc, 0xa4, 0x9f, 0x28, 0x36, 0xa5, 0x57, 0xa1, 0x99, 0x36, 0x1f, 0x62, 0xc8, 0x3e, 0xa7, + 0x7e, 0xf7, 0x63, 0xee, 0xed, 0xce, 0x48, 0x26, 0x88, 0x1c, 0x0d, 0x9e, 0xa1, 0xf1, 0xba, 0x1d, + 0xf7, 0x7f, 0x19, 0x47, 0x6e, 0xa1, 0x06, 0xe0, 0x19, 0xd5, 0x9b, 0xfe, 0x24, 0x97, 0x8a, 0x3b, + 0xc7, 0xe2, 0xe6, 0x10, 0x76, 0xbf, 0x57, 0x75, 0x17, 0xce, 0x17, 0x32, 0x4c, 0xb5, 0xc0, 0x95, + 0x03, 0x45, 0xf5, 0x63, 0x05, 0x64, 0x25, 0x89, 0x7b, 0x96, 0x5a, 0xe4, 0x42, 0xa5, 0x42, 0x61, + 0x58, 0xb7, 0xaf, 0x3d, 0xae, 0x83, 0xd7, 0x84, 0x9c, 0x6d, 0x10, 0x14, 0xaa, 0xd4, 0xc6, 0x56, + 0xe5, 0x3a, 0xfb, 0x20, 0xd0, 0x40, 0x13, 0x2f, 0xe9, 0xe9, 0x83, 0x4c, 0xf5, 0xb7, 0x66, 0x5a, + 0xb0, 0xf1, 0x0a, 0xa8, 0xcc, 0xe7, 0xec, 0xcf, 0x39, 0xb0, 0xbb, 0x39, 0x6a, 0x11, 0xeb, 0x48, + 0x9c, 0xc4, 0xdf, 0x15, 0xfc, 0x8c, 0x40, 0x3d, 0xd0, 0xe3, 0x00, 0xee, 0xe1, 0xda, 0xf5, 0x96, + 0x0f, 0x60, 0x6f, 0xd2, 0x20, 0x6e, 0x20, 0x89, 0x10, 0x1e, 0x8a, 0x65, 0x6d, 0x02, 0x0a, 0x13, + 0x9d, 0x96, 0xf6, 0x17, 0x6f, 0xa0, 0x89, 0x39, 0xd5, 0x8d, 0xdc, 0x1a, 0x1a, 0xd1, 0x17, 0x7c, + 0x69, 0x42, 0x35, 0xde, 0x30, 0x8e, 0x74, 0x71, 0xa7, 0x23, 0x5e, 0x0a, 0x6d, 0x61, 0x68, 0x77, + 0x5a, 0x20, 0xb0, 0x4b, 0x06, 0x76, 0x93, 0x9e, 0x8e, 0x29, 0x39, 0x14, 0x55, 0x13, 0x0b, 0xd3, + 0x13, 0xd8, 0x07, 0x8b, 0xe5, 0x8e, 0xa5, 0x32, 0xeb, 0x1f, 0x92, 0x17, 0x62, 0xf1, 0x6e, 0x6b, + 0x3c, 0x0d, 0xef, 0xa1, 0x31, 0xff, 0x5f, 0xf0, 0x3a, 0xb8, 0xeb, 0xe8, 0xc4, 0x87, 0xbb, 0x56, + 0xf6, 0x3d, 0xe4, 0xf3, 0x6e, 0xf1, 0xc1, 0x81, 0x45, 0xbe, 0xaf, 0x17, 0x95, 0xbd, 0xe1, 0x29, + 0x41, 0x05, 0x42, 0x4c, 0x1e, 0x58, 0xdd, 0x2b, 0x88, 0xfd, 0xd0, 0x12, 0x0c, 0x6b, 0xd4, 0xbc, + 0xa0, 0xe6, 0x13, 0xa6, 0xf6, 0xc1, 0xaa, 0xfe, 0x52, 0x8b, 0x38, 0x7c, 0x3a, 0xcb, 0x3b, 0x91, + 0xc0, 0xcf, 0xd6, 0x68, 0x90, 0x44, 0x50, 0x3c, 0x1d, 0x9f, 0x4f, 0xf9, 0x55, 0x04, 0xb2, 0xa3, + 0xc9, 0xbb, 0xde, 0x53, 0x59, 0xaa, 0xc1, 0xd2, 0xf7, 0x7f, 0x27, 0x02, 0x6a, 0x0a, 0x91, 0xd9, + 0x9e, 0x34, 0x4e, 0xdf, 0x94, 0xbc, 0xa7, 0x4d, 0x5b, 0xe0, 0xfc, 0x7d, 0x3a, 0x77, 0x39, 0x86, + 0xa1, 0x96, 0xdd, 0xf0, 0xab, 0xb1, 0xbe, 0xaa, 0x8e, 0x98, 0x34, 0x1c, 0x6e, 0x92, 0xfc, 0xc9, + 0x79, 0xd6, 0x65, 0xda, 0x27, 0x6c, 0xaf, 0x71, 0xa6, 0x82, 0x76, 0x09, 0x17, 0xef, 0x6d, 0xce, + 0xfa, 0x34, 0x57, 0x33, 0x51, 0x5e, 0xb8, 0xc8, 0x47, 0x25, 0x36, 0x80, 0x64, 0xae, 0x91, 0xc9, + 0x2d, 0xab, 0x2e, 0x14, 0xd0, 0x9f, 0x2c, 0xe9, 0x74, 0x8a, 0x87, 0x1d, 0x5d, 0x4e, 0x58, 0x23, + 0xdd, 0xeb, 0x53, 0x26, 0x0a, 0xdc, 0xab, 0x75, 0xa7, 0x43, 0x3d, 0xae, 0xf3, 0x86, 0x74, 0xde, + 0xe7, 0x22, 0xd3, 0xa3, 0x17, 0x04, 0x6a, 0x0a, 0x9f, 0x23, 0xbf, 0xcd, 0x00, 0x12, 0x47, 0x5e, + 0x2d, 0xdf, 0x33, 0x83, 0x92, 0xed, 0x21, 0xa7, 0x6e, 0xdd, 0xe6, 0xe6, 0xa9, 0x69, 0x17, 0xa9, + 0x4e, 0x6c, 0x4e, 0xe0, 0x33, 0xc6, 0x23, 0x30, 0x7a, 0x88, 0xfa, 0x59, 0x1d, 0xc3, 0x87, 0x20, + 0x58, 0xb7, 0x0a, 0xac, 0xe3, 0xd6, 0xe2, 0xfc, 0xa7, 0xef, 0x07, 0xf3, 0x3e, 0x82, 0xfe, 0x37, + 0xaf, 0xb2, 0xfb, 0x02, 0x8d, 0x0d, 0x6b, 0x8b, 0xa1, 0x51, 0x87, 0xda, 0xb0, 0x2e, 0x49, 0xd4, + 0x65, 0x1c, 0xd3, 0x17, 0x4c, 0xbe, 0x81, 0xe1, 0x7b, 0xda, 0xed, 0x1d, 0x45, 0x2d, 0xd9, 0x4d, + 0x50, 0x57, 0xdf, 0x94, 0x19, 0x35, 0x20, 0x13, 0x33, 0x34, 0x0a, 0x18, 0x62, 0x21, 0x73, 0x9d, + 0xdb, 0x73, 0x64, 0x36, 0x07, 0xaf, 0x30, 0x96, 0xa2, 0x69, 0x1f, 0x32, 0xc9, 0xf6, 0xe3, 0xa9, + 0x30, 0xf8, 0x70, 0x7d, 0xfe, 0xfd, 0x6d, 0x53, 0x57, 0x0b, 0xd6, 0xbf, 0xb6, 0x1a, 0x1e, 0xdd, + 0xaa, 0x79, 0x54, 0xdc, 0x0d, 0xce, 0x0c, 0x52, 0xff, 0xa6, 0xdc, 0xac, 0x15, 0x12, 0x43, 0x6e, + 0x62, 0x3d, 0xc6, 0x40, 0x9a, 0xf3, 0x19, 0x40, 0x1a, 0x31, 0xef, 0xbc, 0x54, 0x11, 0xe4, 0xe6, + 0xc7, 0x9a, 0x59, 0x2e, 0x27, 0x76, 0x7f, 0xb1, 0x6a, 0x6e, 0x99, 0x98, 0x32, 0xa5, 0x02, 0xc9, + 0x74, 0x2e, 0x91, 0x57, 0x2f, 0x9b, 0x07, 0xa1, 0x57, 0x4e, 0xf8, 0xa5, 0x08, 0xa6, 0xa1, 0xab, + 0xb6, 0xaf, 0x12, 0xfd, 0xae, 0x3b, 0xdf, 0x7c, 0xc1, 0x4a, 0x82, 0x39, 0x4f, 0x45, 0x03, 0x39, + 0x46, 0xd4, 0xe0, 0x61, 0x5f, 0x4a, 0x6d, 0x09, 0x77, 0x77, 0x71, 0xb2, 0x7f, 0xdf, 0x71, 0x31, + 0xfb, 0x31, 0x64, 0x90, 0xbc, 0x63, 0xd5, 0xa6, 0x94, 0x12, 0xaf, 0xee, 0x33, 0xe6, 0xa3, 0x14, + 0x7b, 0x74, 0x47, 0x34, 0xe2, 0xbe, 0x52, 0x17, 0x79, 0xa7, 0x3a, 0xef, 0x53, 0x8c, 0xc5, 0xb9, + 0x3f, 0xfb, 0x43, 0xcb, 0x26, 0xd3, 0x50, 0xc8, 0xed, 0x4f, 0xf8, 0x52, 0x86, 0x47, 0x68, 0x1b, + 0x66, 0x88, 0x93, 0xe5, 0xb9, 0x4d, 0x69, 0x56, 0x90, 0x46, 0x33, 0xf8, 0x94, 0xd2, 0x4d, 0xea, + 0x6b, 0x1c, 0x04, 0x0c, 0xcc, 0xeb, 0x8f, 0x10, 0x2a, 0xc2, 0x6d, 0x2f, 0x5d, 0x83, 0xd9, 0x5b, + 0xcd, 0x82, 0xec, 0xc7, 0xf3, 0x22, 0x37, 0xf9, 0x79, 0x94, 0xc1, 0xa4, 0xcd, 0xf1, 0x98, 0x66, + 0x48, 0x4c, 0x29, 0x0d, 0x75, 0x96, 0xba, 0x44, 0x89, 0x8f, 0x51, 0x42, 0xc5, 0xc0, 0x7e, 0x8b, + 0x49, 0x69, 0x09, 0x17, 0x57, 0x38, 0xa4, 0x1e, 0x43, 0x1b, 0xdd, 0xd6, 0xb0, 0x0f, 0xc4, 0x19, + 0x80, 0xab, 0x27, 0xf6, 0xf9, 0xc5, 0xb7, 0x0f, 0x57, 0x5a, 0x47, 0xb7, 0x2a, 0xc2, 0xf2, 0x92, + 0xb0, 0x06, 0x2c, 0xff, 0x11, 0xd0, 0xe0, 0x5e, 0xb2, 0xe8, 0xe7, 0xfb, 0xa4, 0x2d, 0x72, 0xe1, + 0xa0, 0xe3, 0xd9, 0xf0, 0xe4, 0x78, 0xba, 0x14, 0xb6, 0x0d, 0x6c, 0xf0, 0xbf, 0xca, 0x3a, 0xa4, + 0x60, 0x5b, 0x0a, 0x27, 0x95, 0xb3, 0xcb, 0xd3, 0x23, 0x2f, 0xe9, 0xc3, 0xd7, 0x49, 0xc7, 0xf6, + 0xb0, 0x51, 0x59, 0x83, 0xd2, 0xb0, 0xb8, 0x2b, 0xa3, 0x49, 0xad, 0x08, 0x2c, 0x9d, 0x53, 0x3f, + 0xc6, 0x7c, 0x2c, 0xc3, 0xcf, 0xa3, 0xde, 0xc4, 0x85, 0x5b, 0x92, 0x0d, 0x1f, 0x10, 0xd9, 0x17, + 0xaa, 0x3c, 0x41, 0x24, 0x45, 0x73, 0xe3, 0x48, 0x5c, 0xe0, 0x4d, 0x3a, 0xff, 0x6f, 0x56, 0xcc, + 0x81, 0x85, 0xc9, 0xad, 0x45, 0x1a, 0xa9, 0x44, 0xfe, 0x6a, 0xbf, 0x5d, 0xaf, 0x0e, 0x8d, 0x48, + 0x78, 0x25, 0xd3, 0xbb, 0xbb, 0xd9, 0x5c, 0xb0, 0x1a, 0x74, 0xa7, 0x64, 0xcd, 0x51, 0x0a, 0xd2, + 0x8f, 0xcd, 0x7c, 0x8b, 0x04, 0x39, 0xed, 0x98, 0x86, 0x5a, 0x65, 0x63, 0x1d, 0xb3, 0x1d, 0x65, + 0xf8, 0xf8, 0x02, 0x45, 0x73, 0x02, 0x0c, 0xb1, 0xbf, 0xae, 0x24, 0x61, 0x2f, 0x8a, 0xd7, 0x35, + 0xe2, 0x56, 0x3d, 0x4c, 0xbd, 0x6b, 0x4a, 0x38, 0x1f, 0x2d, 0xde, 0x78, 0xc0, 0x2f, 0xb1, 0x7c, + 0x4a, 0x7f, 0x05, 0xef, 0xfd, 0x42, 0x99, 0xb0, 0x9c, 0xec, 0x51, 0x29, 0xdd, 0xf1, 0xba, 0x0f, + 0x41, 0x92, 0x00, 0x0f, 0x84, 0x7b, 0x50, 0x3c, 0x37, 0xd5, 0x95, 0x4c, 0xb6, 0xa8, 0xe5, 0x78, + 0x2e, 0x87, 0x29, 0x61, 0xb6, 0x28, 0xc8, 0x57, 0x17, 0x56, 0xa1, 0x9c, 0xa4, 0x08, 0xf3, 0x46, + 0xff, 0xc1, 0x2a, 0xce, 0xaa, 0x55, 0xf2, 0x38, 0xee, 0x8d, 0xbf, 0xdc, 0x31, 0x6a, 0xae, 0x58, + 0xa1, 0xc2, 0xa1, 0xf2, 0xdf, 0xc5, 0x03, 0x81, 0x28, 0x07, 0xa7, 0x1c, 0x39, 0xfb, 0x94, 0xa2, + 0x16, 0xc7, 0x80, 0xb2, 0x32, 0xbe, 0x37, 0xfb, 0x86, 0x30, 0xc2, 0xbe, 0x80, 0x4f, 0x17, 0x37, + 0xbf, 0xe7, 0xf7, 0x06, 0xf9, 0xbe, 0x42, 0x5c, 0xc3, 0x91, 0xe2, 0x5f, 0xd0, 0x3e, 0x7b, 0x93, + 0x6b, 0xee, 0x06, 0xd7, 0xb8, 0x0c, 0xd6, 0xaf, 0x0c, 0x14, 0xa7, 0x16, 0xaf, 0x25, 0x60, 0xec, + 0x4c, 0xf1, 0x56, 0xe1, 0x05, 0x19, 0x3c, 0xc1, 0x15, 0x3e, 0x96, 0x45, 0x10, 0x3b, 0xab, 0xf7, + 0x9c, 0xe4, 0x2e, 0x64, 0xaf, 0xb9, 0x2c, 0x56, 0x89, 0x67, 0x72, 0x89, 0x2b, 0xe2, 0x04, 0x9c, + 0x5a, 0x0a, 0x71, 0xbe, 0xee, 0x12, 0x6d, 0xb8, 0x4f, 0xb4, 0xfa, 0xe4, 0xa5, 0x13, 0x39, 0xe4, + 0x18, 0x33, 0xfc, 0x55, 0x84, 0xb4, 0x79, 0x92, 0x96, 0x2c, 0x8a, 0xa7, 0xb6, 0xb7, 0xae, 0x8d, + 0xeb, 0x27, 0x0e, 0xb2, 0x83, 0x0d, 0xab, 0x3f, 0x18, 0x78, 0xea, 0x1b, 0xa8, 0xe2, 0x93, 0x23, + 0x02, 0x0d, 0x54, 0x0c, 0x2c, 0xfc, 0xbb, 0xfd, 0xae, 0xc4, 0x47, 0x3b, 0x38, 0x16, 0xc6, 0xb2, + 0xac, 0xdc, 0x3e, 0xe2, 0x2e, 0x77, 0x27, 0x66, 0x5d, 0xfe, 0xbb, 0x61, 0x4b, 0x9d, 0xa5, 0x86, + 0xd0, 0xa9, 0xfe, 0xa3, 0xbf, 0xba, 0x5d, 0xd8, 0x15, 0x1b, 0x42, 0x9e, 0xc1, 0x35, 0xe2, 0x1c, + 0x14, 0x1e, 0x0f, 0xfb, 0x44, 0xaa, 0x67, 0x07, 0xc9, 0xcf, 0xbd, 0x01, 0xc0, 0x97, 0x9f, 0x81, + 0x62, 0x32, 0xa3, 0x3d, 0x44, 0x95, 0xe2, 0xda, 0x2e, 0x99, 0x93, 0x85, 0x63, 0xea, 0xcf, 0x77, + 0x8d, 0x6c, 0x56, 0xc2, 0x1c, 0xbf, 0x93, 0x79, 0x57, 0xf5, 0x5a, 0xaa, 0x93, 0xba, 0x29, 0xdc, + 0x2b, 0x0b, 0x0b, 0xe4, 0x21, 0x59, 0x5b, 0xa8, 0x5c, 0xd5, 0x43, 0x15, 0xff, 0x56, 0x05, 0xdd, + 0xf6, 0xb5, 0x5d, 0x4e, 0x36, 0x1e, 0x8c, 0xbb, 0x77, 0x32, 0x6f, 0x23, 0x90, 0xf5, 0xd1, 0x2c, + 0x82, 0x6e, 0xcb, 0xad, 0x7e, 0xc4, 0xe2, 0x5f, 0x81, 0x2c, 0xba, 0x38, 0x28, 0x7c, 0x28, 0x6f, + 0xd0, 0xcb, 0x77, 0x2f, 0x38, 0x5e, 0xaa, 0xc2, 0x6a, 0xbf, 0x3e, 0x62, 0x4d, 0x4a, 0xe2, 0x1b, + 0xe8, 0x67, 0x92, 0xa9, 0xc0, 0x2c, 0x53, 0x84, 0xf5, 0x9e, 0x51, 0x4a, 0x85, 0x6a, 0x6e, 0xcc, + 0xab, 0xbb, 0x7c, 0xcc, 0xb0, 0x3b, 0x76, 0x9e, 0xf2, 0x34, 0x16, 0x79, 0x94, 0x67, 0xdb, 0x2c, + 0xe9, 0x6b, 0x67, 0xfa, 0xc5, 0xa6, 0x51, 0x6a, 0xbb, 0x45, 0x72, 0xd6, 0x1b, 0xe4, 0xff, 0x3f, + 0x95, 0x05, 0x16, 0x13, 0xd9, 0x9f, 0x70, 0x4b, 0x58, 0xb2, 0x88, 0x12, 0x90, 0x2d, 0xbd, 0xef, + 0xd8, 0xac, 0x79, 0x88, 0x0e, 0xb2, 0xcf, 0xf8, 0xa2, 0xbb, 0xf3, 0x1d, 0xcd, 0x0f, 0x03, 0x3f, + 0xd3, 0x90, 0x90, 0x71, 0x6a, 0x61, 0xc6, 0x39, 0xeb, 0xbc, 0xd6, 0x6e, 0xdc, 0xb7, 0xcf, 0x4b, + 0xb2, 0x05, 0xe4, 0x60, 0xf5, 0xfd, 0x48, 0x69, 0x57, 0xbe, 0xb5, 0x6c, 0x82, 0xf1, 0x9d, 0x2f, + 0x64, 0x0e, 0xec, 0xf5, 0xe1, 0xa5, 0xcb, 0xc1, 0x40, 0x33, 0x0f, 0xc5, 0x01, 0x89, 0x34, 0x1d, + 0xab, 0xe1, 0x2d, 0x12, 0x9b, 0xe1, 0xba, 0xff, 0x4b, 0x68, 0x80, 0xb3, 0xf5, 0x40, 0x46, 0x87, + 0x3a, 0x21, 0x65, 0xc1, 0x2e, 0xc7, 0x8b, 0x76, 0x2b, 0x2a, 0x52, 0xd7, 0x69, 0xc5, 0xdd, 0x78, + 0x43, 0x3d, 0x4a, 0x0c, 0xff, 0x57, 0xbb, 0x84, 0xcc, 0x47, 0xa4, 0x15, 0x66, 0x9f, 0x0a, 0x70, + 0x77, 0xda, 0xfb, 0x5f, 0xa6, 0xe4, 0xf6, 0x64, 0x3d, 0x63, 0x9a, 0x75, 0x8e, 0x29, 0xa5, 0x02, + 0xa0, 0xe9, 0x9b, 0xfb, 0x96, 0x11, 0xaf, 0x0d, 0xc9, 0x8e, 0x84, 0x82, 0x1f, 0x05, 0x95, 0x54, + 0xab, 0x57, 0xd0, 0xb7, 0xa8, 0xe6, 0x55, 0x67, 0x62, 0x19, 0x26, 0x33, 0x68, 0xc5, 0x01, 0xe0, + 0xb7, 0x5e, 0xba, 0x10, 0x9c, 0xcd, 0x0a, 0xce, 0xd7, 0xf4, 0xf1, 0x04, 0xfe, 0x91, 0xa8, 0xe5, + 0xcf, 0x55, 0x49, 0xfc, 0x4b, 0x8f, 0x83, 0xa4, 0x78, 0x24, 0x6b, 0x85, 0xf3, 0xa6, 0x5e, 0x6b, + 0xa1, 0x0a, 0x27, 0xb7, 0x5f, 0x31, 0x48, 0xbc, 0x50, 0x03, 0x4b, 0x63, 0xd6, 0x73, 0xb8, 0x5d, + 0x24, 0xcd, 0x81, 0x95, 0x3b, 0xb4, 0xae, 0x82, 0x45, 0x86, 0x4e, 0x89, 0xcc, 0x39, 0xc1, 0x98, + 0x68, 0x72, 0xe0, 0x6e, 0x7c, 0xd3, 0xf9, 0x59, 0x2e, 0x35, 0xea, 0x22, 0xa3, 0x93, 0x35, 0x8d, + 0xf4, 0x47, 0xf0, 0x76, 0xae, 0xb6, 0x56, 0xa9, 0x73, 0xaa, 0x34, 0xf8, 0x4b, 0xae, 0xd5, 0xa0, + 0x61, 0x1a, 0x67, 0x21, 0x1f, 0xff, 0x81, 0x94, 0x42, 0x1d, 0xa9, 0xa1, 0x18, 0x66, 0x36, 0x1b, + 0x12, 0xe1, 0x56, 0x2a, 0x92, 0x4e, 0xda, 0x34, 0x44, 0x8f, 0x16, 0x97, 0xc5, 0xbe, 0x44, 0x88, + 0xc4, 0xaa, 0xba, 0x11, 0xd6, 0x34, 0x9f, 0xee, 0x78, 0xa0, 0xf2, 0x6c, 0x4c, 0x1b, 0xeb, 0x87, + 0xb9, 0x3a, 0x08, 0xe8, 0x0c, 0xbb, 0x43, 0x85, 0x4e, 0x9e, 0x22, 0x71, 0x67, 0xb4, 0xeb, 0xe3, + 0x49, 0xc6, 0x33, 0xbd, 0x95, 0x81, 0xa9, 0x56, 0xf2, 0x2d, 0xb0, 0x5c, 0x49, 0xba, 0x18, 0xa7, + 0x1c, 0x44, 0x5b, 0x3f, 0xd6, 0x10, 0xd9, 0x58, 0xd9, 0x0c, 0x78, 0x3c, 0x21, 0x35, 0xb3, 0x19, + 0x55, 0x7b, 0xb6, 0xed, 0x6b, 0x60, 0x14, 0xc1, 0x15, 0xb8, 0x5b, 0xb8, 0x8f, 0x36, 0x32, 0xf9, + 0x06, 0xfd, 0xcd, 0x2c, 0xf6, 0xe0, 0xb1, 0x0f, 0xfb, 0xe7, 0x78, 0xec, 0xb9, 0x4c, 0x67, 0xec, + 0x0d, 0xbb, 0x76, 0x4e, 0xe6, 0xa8, 0x17, 0xf9, 0x1b, 0x4b, 0xa9, 0xe8, 0x03, 0xa3, 0xdc, 0x2b, + 0xce, 0x9c, 0xac, 0x8a, 0x10, 0x30, 0x60, 0x5a, 0x0a, 0xf4, 0xd1, 0x0c, 0x5a, 0xcd, 0xc1, 0x77, + 0xf6, 0x8c, 0xbf, 0xba, 0x97, 0xfc, 0xbd, 0xa1, 0x94, 0xc2, 0x0b, 0x4e, 0x4e, 0x5a, 0x58, 0x94, + 0x5b, 0xda, 0x8a, 0x78, 0x43, 0xff, 0x89, 0xca, 0x0c, 0x09, 0xac, 0x6d, 0x08, 0xfd, 0x78, 0xd6, + 0x59, 0x10, 0x88, 0x49, 0x81, 0xdb, 0xe2, 0xa1, 0xe5, 0x10, 0xc7, 0x1d, 0xa3, 0x12, 0x07, 0x99, + 0xd2, 0x2c, 0xf8, 0x87, 0x9b, 0xb6, 0x45, 0x7c, 0x38, 0x3a, 0xc7, 0x3b, 0xaa, 0xee, 0xd0, 0x26, + 0x97, 0xab, 0x23, 0xcb, 0xf8, 0xbd, 0x7a, 0x98, 0x72, 0x99, 0xc9, 0xcd, 0x4d, 0x37, 0xf3, 0xdd, + 0x18, 0x84, 0xaf, 0x71, 0x78, 0x8d, 0x6f, 0x0e, 0x83, 0x06, 0x61, 0xa9, 0x02, 0x09, 0x9d, 0xfc, + 0x71, 0xec, 0x5c, 0xe5, 0xfd, 0x47, 0x4b, 0xeb, 0xca, 0xec, 0x26, 0x31, 0x0c, 0xb2, 0xbe, 0x90, + 0x5e, 0x56, 0x17, 0x00, 0x60, 0x68, 0x15, 0x16, 0xe4, 0x3d, 0x19, 0x2e, 0xf1, 0x97, 0x81, 0x3e, + 0xe5, 0x53, 0xe0, 0x01, 0x99, 0x84, 0x26, 0x0c, 0xd7, 0x1a, 0xd5, 0xd3, 0x06, 0x2f, 0xb6, 0xa5, + 0xef, 0x2f, 0xb4, 0x30, 0x5f, 0x41, 0x7a, 0x70, 0x1c, 0x92, 0x86, 0xc3, 0x6b, 0x15, 0x42, 0x51, + 0x4c, 0x02, 0xd7, 0xba, 0x3f, 0x3c, 0x19, 0x33, 0xfe, 0x74, 0x4a, 0x90, 0x8e, 0xb4, 0xc3, 0x4c, + 0xaa, 0x41, 0x36, 0x6f, 0x1e, 0xa8, 0x50, 0xe9, 0x30, 0xf4, 0xe6, 0x70, 0xf9, 0x3d, 0x15, 0xca, + 0x0e, 0xf3, 0x17, 0xc0, 0x3c, 0xd3, 0xfd, 0xbb, 0xbb, 0x1a, 0x9e, 0xb8, 0x46, 0x9c, 0xe2, 0xa0, + 0x62, 0x33, 0x7d, 0xa0, 0xf0, 0xdd, 0xbf, 0x96, 0x2a, 0x92, 0x6d, 0x72, 0xf8, 0x26, 0xbd, 0x1c, + 0xe2, 0x94, 0xd5, 0xc4, 0x04, 0x5b, 0x6f, 0x47, 0xa0, 0xb4, 0xf9, 0x87, 0x76, 0x5e, 0xa0, 0xac, + 0x0b, 0xd0, 0xe3, 0xd9, 0xf7, 0x3f, 0x54, 0xb7, 0x49, 0x5c, 0xf2, 0x03, 0x83, 0x9b, 0xda, 0x82, + 0x26, 0x45, 0x01, 0x77, 0x5e, 0x00, 0x83, 0xfc, 0x1a, 0xbe, 0x03, 0xeb, 0x96, 0x4c, 0xb9, 0x99, + 0x9a, 0x8e, 0x2e, 0x68, 0x12, 0x16, 0x62, 0x24, 0x23, 0xab, 0x41, 0xc6, 0x42, 0xff, 0x3f, 0xf2, + 0xd5, 0xe0, 0x47, 0x5f, 0x48, 0xfc, 0xe2, 0x49, 0x2c, 0x10, 0xab, 0xff, 0x97, 0x89, 0xe0, 0xfc, + 0x8a, 0x08, 0xfa, 0xfd, 0xb9, 0x7c, 0x7d, 0xd0, 0xff, 0x54, 0x8c, 0x6f, 0x84, 0x5b, 0x8b, 0xdb, + 0xf2, 0xe8, 0x3d, 0x66, 0x36, 0x91, 0x2a, 0x29, 0x49, 0xb4, 0x0e, 0x4e, 0x60, 0xb4, 0x8f, 0x8e, + 0x2e, 0xd7, 0x66, 0x42, 0x89, 0x78, 0x60, 0x49, 0xee, 0x86, 0xb3, 0x4a, 0xbd, 0xa2, 0x98, 0x0c, + 0xb4, 0xdf, 0xe0, 0x2f, 0x05, 0x67, 0x24, 0xb5, 0x97, 0x21, 0x51, 0xa1, 0x62, 0xad, 0xc4, 0xa5, + 0xd2, 0x54, 0x33, 0x69, 0x5e, 0x00, 0xae, 0xf6, 0xf6, 0xfa, 0x27, 0x3b, 0x63, 0x5c, 0xb7, 0xcc, + 0x77, 0x0b, 0x3e, 0x9c, 0x48, 0x4c, 0xd8, 0xb8, 0x1e, 0xf7, 0xb9, 0xf6, 0x96, 0x60, 0x96, 0x86, + 0x9e, 0x9d, 0x5a, 0x7d, 0xa4, 0xa0, 0xc7, 0x08, 0xac, 0xb3, 0xb4, 0xcc, 0xd1, 0x1e, 0x8d, 0xd5, + 0x32, 0x6d, 0xc6, 0xa3, 0x05, 0x40, 0x3b, 0x93, 0xe8, 0xfb, 0x1a, 0x09, 0xc0, 0x16, 0xc2, 0xff, + 0x65, 0x25, 0xad, 0xb8, 0x82, 0x2a, 0x64, 0xc8, 0xef, 0x1e, 0x5f, 0x44, 0xc7, 0xe6, 0xb6, 0xeb, + 0xc3, 0xc2, 0x94, 0x91, 0x7f, 0x1d, 0x2b, 0xf6, 0x76, 0x13, 0x83, 0x41, 0xbe, 0x50, 0x2f, 0x64, + 0x8f, 0xda, 0x40, 0x8f, 0x43, 0xb7, 0xf0, 0x30, 0xc6, 0x76, 0xd4, 0x26, 0x50, 0x43, 0xe6, 0xa7, + 0x1d, 0x1b, 0x7f, 0x19, 0x8b, 0xeb, 0x08, 0x28, 0x6d, 0x6d, 0x73, 0x2e, 0x65, 0xbd, 0x97, 0xb0, + 0xf8, 0x91, 0x9f, 0xbb, 0x41, 0x22, 0x7b, 0x71, 0x8f, 0x25, 0xb3, 0x67, 0xd1, 0x0f, 0xe8, 0xd0, + 0xe9, 0x80, 0x1a, 0x26, 0x81, 0x20, 0x56, 0x14, 0xa1, 0x7f, 0x86, 0xa3, 0x79, 0x28, 0xe5, 0x0a, + 0x59, 0x17, 0x44, 0x41, 0x32, 0x8f, 0xf8, 0xe8, 0x02, 0xaa, 0x09, 0xa4, 0xf0, 0x69, 0x34, 0xdd, + 0xc6, 0x73, 0x2e, 0x78, 0x79, 0xf4, 0x45, 0xc8, 0x37, 0xcf, 0x5b, 0xc3, 0xba, 0xa8, 0x40, 0xf5, + 0xae, 0x85, 0xf2, 0x6a, 0x42, 0x6d, 0xd3, 0x04, 0x18, 0x85, 0xf5, 0x79, 0xfa, 0x82, 0xf0, 0x5e, + 0x44, 0x23, 0x94, 0xcf, 0x2f, 0x2d, 0x45, 0x3e, 0xd3, 0x58, 0x9d, 0xa4, 0xa3, 0xda, 0xcf, 0x2b, + 0x0e, 0xb0, 0x4b, 0xca, 0xf3, 0xd4, 0xe6, 0xbe, 0x84, 0x79, 0x02, 0xef, 0xaa, 0x22, 0x0f, 0x84, + 0xa5, 0xef, 0x36, 0xdf, 0xa7, 0x20, 0x06, 0xa2, 0x78, 0x78, 0x93, 0x9b, 0x00, 0x95, 0xa6, 0x91, + 0x00, 0xaf, 0xf6, 0xe3, 0x80, 0x82, 0xdf, 0x3c, 0xce, 0xe5, 0xeb, 0xf1, 0x00, 0x78, 0xcf, 0xad, + 0x59, 0x7b, 0x34, 0xdd, 0x20, 0x7b, 0x92, 0x95, 0x49, 0xb0, 0x3e, 0x99, 0x68, 0x08, 0xda, 0xbb, + 0x4c, 0x6c, 0xc6, 0x27, 0xe6, 0xb7, 0x63, 0xae, 0x55, 0xb6, 0x25, 0x60, 0xfe, 0x95, 0x7d, 0x8c, + 0x88, 0x2b, 0x9c, 0x4c, 0xa9, 0x50, 0xa8, 0xb3, 0xed, 0x8c, 0xc7, 0xa6, 0x7a, 0x76, 0x06, 0x1f, + 0x40, 0x51, 0x9a, 0x46, 0x0a, 0xa9, 0x48, 0xd3, 0xe6, 0x80, 0x21, 0xc5, 0x78, 0xcf, 0x07, 0x47, + 0x0c, 0xb5, 0x82, 0xcb, 0x5c, 0x94, 0x11, 0xb9, 0x2c, 0x79, 0x8e, 0xd8, 0x30, 0x8b, 0x37, 0x1b, + 0xd7, 0xb2, 0x52, 0x27, 0x39, 0x0c, 0x69, 0x73, 0x63, 0x1d, 0x21, 0x78, 0x21, 0x80, 0x13, 0xfb, + 0x2d, 0xbf, 0x9f, 0x75, 0x1f, 0x4f, 0x1e, 0xdd, 0x3f, 0xb2, 0x02, 0x10, 0x4f, 0x03, 0x87, 0xd7, + 0xde, 0x77, 0xab, 0xdd, 0x0d, 0x5a, 0x2a, 0x68, 0x0b, 0x5c, 0x35, 0x51, 0xb5, 0xc5, 0x2f, 0xff, + 0xee, 0xcb, 0xaa, 0x60, 0x4e, 0xa0, 0xb3, 0xbe, 0x4d, 0x74, 0x31, 0xf1, 0x7c, 0x60, 0xce, 0x03, + 0x92, 0x83, 0xc3, 0x26, 0x8c, 0x45, 0x0c, 0xc5, 0x63, 0x35, 0x36, 0x8a, 0xa3, 0x0c, 0x49, 0xc1, + 0x08, 0x71, 0x2c, 0x10, 0xe8, 0xcd, 0xc8, 0x63, 0x0d, 0xf0, 0x8e, 0x81, 0xa8, 0xf3, 0xc7, 0x43, + 0xe5, 0x24, 0xc7, 0x43, 0x73, 0x09, 0xbf, 0xcd, 0x73, 0x4d, 0xa4, 0x88, 0x85, 0xc6, 0x42, 0x1e, + 0xe1, 0x34, 0xf1, 0x97, 0x2a, 0xc0, 0x2f, 0xa7, 0xe0, 0xb9, 0x25, 0xe6, 0xb5, 0x65, 0x4c, 0xff, + 0x1a, 0xe4, 0x77, 0x5e, 0x01, 0x99, 0x5e, 0x28, 0xd6, 0x08, 0xef, 0x20, 0x34, 0x9c, 0x03, 0xa6, + 0x86, 0xe7, 0xc3, 0x3e, 0x9c, 0xab, 0xb9, 0xeb, 0xab, 0x80, 0xa9, 0xff, 0x0b, 0x8a, 0x06, 0xd4, + 0xa9, 0xb8, 0xfb, 0x99, 0x41, 0x71, 0xb2, 0x47, 0xc6, 0x51, 0xde, 0x0f, 0xfa, 0xde, 0x82, 0x0b, + 0x83, 0xba, 0xb2, 0xb8, 0x2d, 0x1c, 0xa0, 0xdc, 0x07, 0xf6, 0x51, 0x72, 0x01, 0xf0, 0x5f, 0x20, + 0x6c, 0xd8, 0x42, 0x8b, 0xdc, 0x23, 0x0c, 0x70, 0xad, 0x2f, 0x58, 0xe0, 0xf2, 0xe2, 0x35, 0x2a, + 0xb5, 0xac, 0xa4, 0x36, 0x04, 0x62, 0xc6, 0x01, 0x49, 0xc9, 0x2a, 0x26, 0x3c, 0x88, 0x7d, 0xfa, + 0xf9, 0x36, 0xb5, 0x97, 0xa0, 0xe1, 0xbe, 0xaf, 0x17, 0x32, 0x68, 0xdf, 0x85, 0x21, 0x99, 0x83, + 0x31, 0xfb, 0xa9, 0x57, 0x8f, 0x59, 0xf6, 0x96, 0xef, 0x68, 0x7f, 0x0d, 0x90, 0x6e, 0x72, 0x43, + 0x9c, 0x5d, 0xc2, 0xc9, 0xf8, 0xa1, 0x93, 0xa9, 0x13, 0x95, 0x29, 0x06, 0xc4, 0x0d, 0xa1, 0x09, + 0x4b, 0xf2, 0x67, 0x09, 0xd2, 0x87, 0xad, 0x16, 0xc3, 0xaf, 0x96, 0xea, 0x63, 0xcc, 0x83, 0x05, + 0xbc, 0xe4, 0xdd, 0xfa, 0xa9, 0xfe, 0x27, 0xf5, 0x05, 0x6a, 0xe3, 0xc1, 0x7f, 0x22, 0xc6, 0xb5, + 0xad, 0x3c, 0xd4, 0x9c, 0xd2, 0x21, 0x5f, 0x62, 0x8b, 0xcb, 0x70, 0x58, 0x87, 0xbb, 0x35, 0x50, + 0x9b, 0x66, 0xaf, 0x72, 0xc2, 0x39, 0x91, 0x0f, 0xa6, 0xf1, 0xbf, 0x05, 0x4b, 0x1d, 0x93, 0xe6, + 0x78, 0xc3, 0x4b, 0x29, 0xdc, 0x71, 0xac, 0xe0, 0xa9, 0x27, 0x65, 0x3a, 0xba, 0xdc, 0xb3, 0xfa, + 0xa2, 0x26, 0xa8, 0xeb, 0x5b, 0xc4, 0xf9, 0x0d, 0x55, 0x98, 0xc9, 0x21, 0xe1, 0xe5, 0x7d, 0x5b, + 0x2e, 0x23, 0xf6, 0xab, 0x5f, 0xb1, 0x3d, 0x1c, 0x74, 0x73, 0x9d, 0xae, 0x7b, 0x2e, 0xcb, 0xb6, + 0xad, 0x7d, 0x4b, 0x41, 0x65, 0x4d, 0x4c, 0x6c, 0xba, 0x55, 0xd3, 0x78, 0x3b, 0x7b, 0x59, 0x67, + 0x7b, 0xa4, 0x15, 0x10, 0x72, 0x18, 0x60, 0x4d, 0x57, 0x79, 0x42, 0x1c, 0xa4, 0x44, 0x2b, 0xd3, + 0xc3, 0xd8, 0x67, 0xf5, 0xcc, 0x56, 0x8f, 0x66, 0x1a, 0xa9, 0x1c, 0x47, 0x0f, 0x4a, 0xfc, 0x0b, + 0x01, 0xd0, 0xa1, 0x8d, 0x2f, 0xd0, 0xa8, 0x46, 0xba, 0xcc, 0x35, 0x5b, 0xb2, 0x2a, 0x2e, 0x27, + 0x4b, 0xf3, 0xe6, 0x6e, 0x79, 0xc8, 0xb2, 0x43, 0xbf, 0xe3, 0x6f, 0x1b, 0x0e, 0x73, 0x29, 0x91, + 0x8f, 0x79, 0x79, 0xd4, 0xd0, 0xa8, 0xce, 0x94, 0x35, 0xea, 0xad, 0x13, 0x02, 0xf9, 0x2e, 0x40, + 0x7f, 0xfb, 0x01, 0x20, 0x11, 0xb2, 0x9d, 0x12, 0x5f, 0x22, 0x89, 0x92, 0xb5, 0x6e, 0x8c, 0xf2, + 0x37, 0xa2, 0x74, 0xff, 0x35, 0xe9, 0xba, 0x69, 0x7e, 0xb3, 0xf8, 0x61, 0x84, 0x78, 0x8c, 0x98, + 0x61, 0x92, 0xea, 0xa9, 0x71, 0xba, 0x0c, 0xd8, 0xed, 0x8a, 0xe6, 0x1b, 0x3b, 0xf5, 0x75, 0x85, + 0x0e, 0x0e, 0x3c, 0x5f, 0xf4, 0xbd, 0x91, 0x8a, 0xb1, 0x1c, 0xcd, 0xf1, 0x15, 0xaa, 0x31, 0xd5, + 0x67, 0x50, 0xdf, 0xf9, 0x9a, 0x15, 0x9a, 0x20, 0xbc, 0x2f, 0xff, 0x89, 0x28, 0x00, 0x0a, 0x5a, + 0x74, 0x8a, 0xc0, 0x3a, 0x35, 0xad, 0xab, 0xaf, 0xd9, 0xf2, 0x8e, 0x63, 0x4c, 0x0a, 0x4e, 0x46, + 0x2b, 0xd2, 0x19, 0x28, 0x9b, 0xe7, 0x52, 0xcf, 0xb4, 0x80, 0x61, 0x73, 0x23, 0x12, 0x79, 0x35, + 0x47, 0x40, 0x24, 0x7e, 0x44, 0xbd, 0x2b, 0x3c, 0x49, 0x86, 0x6f, 0x16, 0xe4, 0xf6, 0x36, 0xcd, + 0x45, 0xd9, 0x2e, 0x18, 0x2e, 0x75, 0x1b, 0xd6, 0xdd, 0xa6, 0xe3, 0x60, 0x1c, 0x39, 0x71, 0xb5, + 0xd3, 0x18, 0xb5, 0xd7, 0x56, 0x27, 0xa6, 0x75, 0x84, 0x11, 0xb0, 0x5a, 0x1e, 0x81, 0x0e, 0x15, + 0x55, 0x6b, 0x1e, 0x14, 0xa9, 0x66, 0x96, 0xd5, 0xa3, 0x17, 0x96, 0x4e, 0x44, 0x21, 0x70, 0x90, + 0x82, 0x0d, 0x7c, 0x49, 0x66, 0xa0, 0xe2, 0x32, 0x34, 0x8a, 0x89, 0x7c, 0x90, 0x4a, 0x7a, 0x29, + 0x36, 0xf4, 0xe4, 0x20, 0x4e, 0xea, 0xa6, 0xff, 0xc1, 0xb0, 0xc3, 0x1a, 0x14, 0x13, 0xf7, 0x34, + 0xfc, 0xac, 0x12, 0xb3, 0x86, 0xb7, 0x48, 0xe7, 0x18, 0xbb, 0xcf, 0xfb, 0x67, 0xeb, 0x82, 0x83, + 0x5b, 0x1e, 0x60, 0x38, 0x0c, 0x7a, 0x57, 0x3f, 0x74, 0x1e, 0x27, 0x98, 0xa2, 0x40, 0xd7, 0xe8, + 0xac, 0xe3, 0x0e, 0xed, 0x55, 0x5a, 0x30, 0xbb, 0xb8, 0x7e, 0x7c, 0xec, 0x07, 0xb9, 0x38, 0x66, + 0x65, 0xa0, 0xc4, 0x49, 0xf5, 0x13, 0x33, 0x0a, 0x75, 0x5d, 0x70, 0xee, 0xcf, 0xd7, 0xec, 0xa4, + 0xa4, 0x90, 0x8b, 0xc0, 0x65, 0x56, 0x44, 0xb3, 0x8a, 0x6b, 0xdc, 0xa8, 0x3b, 0x5f, 0xb9, 0x5a, + 0x23, 0x5a, 0x72, 0x14, 0xb2, 0xd7, 0x8d, 0x06, 0xe1, 0x90, 0x88, 0x6c, 0xec, 0xdd, 0x22, 0xa1, + 0x79, 0xbb, 0x25, 0x97, 0x33, 0xab, 0x59, 0xeb, 0x54, 0xed, 0xf6, 0x9e, 0x39, 0xbf, 0xc7, 0x70, + 0x7c, 0x1c, 0x5e, 0x5c, 0x7a, 0x6e, 0xcb, 0x98, 0xde, 0x59, 0xc4, 0xc1, 0xb8, 0x66, 0x97, 0x11, + 0xdf, 0x99, 0x5c, 0xf4, 0xce, 0xd9, 0x1a, 0x8d, 0xfc, 0x93, 0xb2, 0x23, 0xb0, 0x38, 0x8f, 0xc3, + 0xd7, 0xa4, 0x3b, 0x74, 0xae, 0x5e, 0x65, 0xcd, 0x46, 0x14, 0xc1, 0x59, 0x30, 0x05, 0x47, 0xd2, + 0x6b, 0x83, 0x31, 0x00, 0x38, 0x21, 0xee, 0x6b, 0xa2, 0x2d, 0xb6, 0xd1, 0x5f, 0x1e, 0x05, 0x83, + 0x68, 0x8e, 0x66, 0x34, 0x02, 0x21, 0x8a, 0x98, 0x1c, 0x15, 0x3a, 0xfc, 0xa4, 0xe0, 0x80, 0x3d, + 0xdd, 0x33, 0xf8, 0xf3, 0x3b, 0x4a, 0xa1, 0xfa, 0x97, 0x42, 0x87, 0xf4, 0x55, 0x77, 0x91, 0x86, + 0xe8, 0xbc, 0x81, 0xd4, 0x6e, 0x63, 0x7d, 0x19, 0x0c, 0x13, 0x47, 0xdc, 0x4a, 0x0b, 0x89, 0xc7, + 0xcd, 0x62, 0x13, 0x5f, 0x78, 0xa4, 0x84, 0xf3, 0x96, 0x4d, 0x55, 0x4e, 0xb8, 0x4b, 0x8e, 0x1c, + 0x13, 0xa7, 0x7f, 0x44, 0x22, 0x01, 0x63, 0x7a, 0x8f, 0x3d, 0xbc, 0x1b, 0x99, 0x32, 0x64, 0x55, + 0x2e, 0x1d, 0x02, 0x73, 0x7f, 0xa9, 0x83, 0x12, 0xdf, 0xc3, 0xc1, 0xfc, 0x61, 0x9b, 0x27, 0x19, + 0x08, 0x75, 0x3e, 0x8c, 0xb4, 0x9d, 0x52, 0xb5, 0x51, 0xa8, 0xb0, 0xfc, 0x03, 0xcb, 0xfc, 0xee, + 0x59, 0x9c, 0xf2, 0xe5, 0xc0, 0x7d, 0x62, 0x95, 0xd6, 0x7f, 0xd9, 0x7a, 0xbe, 0x2e, 0x50, 0xd3, + 0x0e, 0x2e, 0x6d, 0xa7, 0xbb, 0x0b, 0x72, 0x6f, 0x94, 0x5e, 0x7a, 0x7a, 0x50, 0x22, 0x58, 0x50, + 0x3e, 0x2d, 0x7f, 0x11, 0x9d, 0xa3, 0x1b, 0xc1, 0x66, 0x2c, 0x57, 0x92, 0x99, 0xea, 0x23, 0x13, + 0x12, 0x09, 0x1a, 0xdd, 0xfe, 0xeb, 0x60, 0xe3, 0x30, 0x42, 0x25, 0x05, 0x43, 0x8c, 0x38, 0x2d, + 0xc6, 0xa9, 0xa5, 0x96, 0x18, 0xd9, 0x4c, 0x2c, 0x4e, 0x6a, 0x08, 0x1f, 0x20, 0xd1, 0x3f, 0xcb, + 0x96, 0x75, 0xa1, 0x82, 0xdc, 0x28, 0x4c, 0x7f, 0xca, 0x70, 0x2a, 0x0c, 0xf0, 0x76, 0xdd, 0x62, + 0x7d, 0x4a, 0xab, 0x55, 0x3f, 0xc7, 0xa7, 0xb1, 0x5a, 0xa5, 0x51, 0x9d, 0x34, 0x09, 0x4a, 0x41, + 0x32, 0x3d, 0x11, 0xee, 0x75, 0x98, 0x69, 0x69, 0xc9, 0x7e, 0xfe, 0xe5, 0xe0, 0x5e, 0xfb, 0x0f, + 0x47, 0xac, 0x6c, 0xbd, 0x08, 0x52, 0x7e, 0x7c, 0xbd, 0x51, 0x9a, 0x43, 0x3a, 0x36, 0x28, 0x18, + 0x59, 0x23, 0xbe, 0xc2, 0xbd, 0x55, 0x37, 0xc1, 0x82, 0xeb, 0x5e, 0x3d, 0x56, 0x1f, 0x8b, 0x44, + 0x3e, 0x94, 0x5f, 0xb3, 0xd6, 0x4c, 0x23, 0x18, 0x57, 0x5a, 0xc7, 0xa7, 0x91, 0x79, 0xf5, 0x68, + 0xb0, 0x66, 0x8f, 0x1a, 0xd1, 0xfc, 0x86, 0x82, 0x30, 0x30, 0x38, 0x7f, 0xbf, 0x38, 0x7c, 0x99, + 0x4c, 0xb8, 0x0b, 0x08, 0x66, 0xa1, 0x63, 0xc3, 0x28, 0x6e, 0x55, 0x9a, 0xbb, 0xd8, 0x02, 0x35, + 0xdc, 0x84, 0x1b, 0x40, 0x62, 0x96, 0xfa, 0x65, 0x27, 0x85, 0xa1, 0x0a, 0x6f, 0xb9, 0xd9, 0x73, + 0xbb, 0xb6, 0x52, 0x98, 0x06, 0x4d, 0xbb, 0x8b, 0xb9, 0x77, 0x56, 0x96, 0x13, 0xd9, 0x69, 0xaa, + 0x53, 0xca, 0x6b, 0x72, 0x75, 0xb0, 0x0c, 0x5e, 0xe9, 0xe3, 0x60, 0x1c, 0xf9, 0x24, 0xbe, 0x12, + 0xdd, 0xe5, 0xb2, 0x10, 0x35, 0x97, 0xff, 0xe5, 0xfc, 0x92, 0x94, 0xdf, 0xbb, 0xc0, 0xdd, 0x55, + 0x3e, 0xee, 0x9d, 0x59, 0x99, 0x10, 0x70, 0xf6, 0xe7, 0x24, 0x3c, 0x70, 0xbc, 0x43, 0x7d, 0xa0, + 0xec, 0xde, 0x0e, 0x94, 0x49, 0xba, 0x03, 0x61, 0xec, 0x62, 0x9b, 0xe6, 0x1e, 0x30, 0x7c, 0x22, + 0x48, 0x46, 0x26, 0x3b, 0x90, 0xdc, 0xe7, 0x3e, 0x1d, 0x7b, 0x76, 0x50, 0x08, 0xb5, 0xff, 0x3b, + 0x9a, 0x5d, 0xe7, 0x6c, 0x32, 0xf6, 0x9d, 0x68, 0x22, 0xa1, 0x84, 0x8e, 0x23, 0xd7, 0xad, 0x52, + 0xa2, 0xf4, 0xda, 0xcf, 0x4d, 0xbd, 0xa1, 0x71, 0x58, 0x7e, 0xf3, 0x2d, 0x55, 0xd8, 0x03, 0xb3, + 0x6b, 0x6d, 0xf4, 0xc5, 0xb2, 0xb5, 0x0d, 0x6a, 0xa6, 0x34, 0x2f, 0xa7, 0x33, 0x65, 0x92, 0x83, + 0xfb, 0x5a, 0x1a, 0xc8, 0xec, 0x40, 0x0c, 0x9d, 0x84, 0x61, 0x3d, 0xde, 0xba, 0x58, 0x9a, 0xd3, + 0x4f, 0xe4, 0x8d, 0x56, 0x08, 0x2e, 0x0e, 0x3a, 0x29, 0x6d, 0xeb, 0xca, 0xf7, 0x5a, 0xcd, 0x61, + 0xa3, 0xdd, 0xe2, 0x35, 0x12, 0xa6, 0x34, 0x22, 0x69, 0x3c, 0xc2, 0x1a, 0x19, 0xad, 0x2a, 0x50, + 0xc6, 0xcc, 0x67, 0x77, 0x5e, 0x65, 0x16, 0xb2, 0x06, 0x5b, 0x22, 0xc7, 0xfd, 0x55, 0x83, 0xdb, + 0x0e, 0xee, 0x46, 0xd7, 0x39, 0xf5, 0x66, 0x92, 0xe8, 0xe7, 0xdd, 0xfd, 0xe8, 0x4a, 0xae, 0x15, + 0x04, 0x9d, 0x08, 0xa3, 0x21, 0x51, 0x31, 0xe2, 0x13, 0x7f, 0x5f, 0x76, 0x84, 0x42, 0x24, 0xc9, + 0xb8, 0xf7, 0xe2, 0xa1, 0xf8, 0x6b, 0xe9, 0x58, 0x47, 0x43, 0x15, 0x78, 0xed, 0xac, 0x28, 0xd3, + 0xdf, 0x80, 0x90, 0xdc, 0x28, 0xd9, 0xef, 0xd6, 0xbb, 0x17, 0x3d, 0xa6, 0xa8, 0xcc, 0x2e, 0xfc, + 0xe8, 0x61, 0x70, 0xc6, 0xfa, 0x22, 0x03, 0x90, 0x1f, 0xf7, 0x7f, 0x3b, 0x4c, 0x81, 0xa0, 0x00, + 0x0b, 0x64, 0x02, 0x9a, 0x89, 0x44, 0xfa, 0xc3, 0xdc, 0xe8, 0x87, 0x1c, 0x3f, 0x59, 0x0d, 0xc8, + 0xf2, 0x5b, 0x3d, 0x5b, 0xfa, 0xd9, 0x92, 0x7f, 0x42, 0xda, 0xa2, 0x8a, 0x98, 0x1d, 0xa7, 0x7a, + 0x73, 0x9b, 0xd7, 0xd1, 0x27, 0xbf, 0x14, 0x6b, 0x58, 0xa2, 0xb0, 0xda, 0xe0, 0xea, 0x81, 0x30, + 0x62, 0xd1, 0x1b, 0x0f, 0x91, 0x63, 0xed, 0x39, 0xd7, 0x30, 0x53, 0x7a, 0x5c, 0xd5, 0xa0, 0x7a, + 0x11, 0xb8, 0xd3, 0x04, 0xce, 0x31, 0x08, 0xff, 0x09, 0x76, 0xd7, 0x3a, 0xf0, 0xc2, 0xc1, 0xa4, + 0xfe, 0x32, 0xc9, 0x13, 0x61, 0x08, 0x1d, 0x90, 0xb7, 0x09, 0x99, 0xb7, 0xef, 0x9c, 0x2b, 0x2f, + 0x0e, 0xdd, 0x2b, 0x97, 0xe9, 0xc3, 0x22, 0xad, 0x2b, 0x8a, 0x90, 0x13, 0x17, 0x73, 0x66, 0x87, + 0x36, 0xd9, 0xbc, 0xc8, 0x28, 0x81, 0xfc, 0x24, 0x6b, 0x37, 0xf4, 0x73, 0xe8, 0xdf, 0x1c, 0xab, + 0xbb, 0xb9, 0x26, 0x3f, 0x5f, 0xf0, 0x22, 0x62, 0x74, 0x7c, 0x6d, 0x48, 0x2e, 0x30, 0xc1, 0x9a, + 0x06, 0x2a, 0x7b, 0x7e, 0x15, 0x20, 0x35, 0xe8, 0x44, 0x35, 0x88, 0x69, 0x47, 0x2a, 0xcf, 0x0c, + 0x2d, 0x73, 0x09, 0x54, 0xd5, 0x8f, 0x3e, 0x7b, 0xaf, 0x80, 0x52, 0x17, 0xde, 0x96, 0x11, 0x11, + 0xfa, 0x47, 0x2c, 0x1c, 0xdb, 0x7f, 0x76, 0x70, 0x3c, 0xc5, 0xf0, 0x48, 0xcc, 0xe0, 0x76, 0xda, + 0xa0, 0xb5, 0xa5, 0xec, 0x06, 0xb5, 0xfa, 0xe5, 0x5a, 0xb0, 0x7d, 0x81, 0x01, 0x6a, 0x27, 0xdc, + 0x97, 0xb0, 0x25, 0x8c, 0xde, 0x38, 0xda, 0x66, 0x05, 0x28, 0x93, 0xdd, 0x90, 0x31, 0x3e, 0x86, + 0x0a, 0x61, 0x2b, 0x09, 0xfe, 0x04, 0x37, 0xc6, 0x62, 0x30, 0x54, 0x81, 0xa5, 0x82, 0x77, 0xd3, + 0xce, 0xac, 0x4a, 0x99, 0xac, 0x2d, 0x7c, 0x7e, 0x53, 0xf0, 0x82, 0x01, 0x84, 0x7c, 0xd4, 0x55, + 0x2a, 0xf8, 0xfb, 0x45, 0x1b, 0xb5, 0x15, 0x33, 0xd7, 0xae, 0xef, 0x72, 0x65, 0x70, 0x73, 0xb8, + 0x01, 0xa2, 0x42, 0xc9, 0x67, 0xbb, 0x58, 0xb8, 0x9d, 0x7c, 0x9d, 0x47, 0xe6, 0x55, 0xf4, 0xce, + 0x51, 0x5b, 0x9b, 0x5c, 0x0b, 0x7b, 0xdf, 0x21, 0x30, 0x6e, 0x90, 0x5e, 0xa0, 0xcc, 0x74, 0x12, + 0xd6, 0xe3, 0xcc, 0x33, 0x22, 0x6e, 0x12, 0xe5, 0x6c, 0x99, 0x69, 0x46, 0x56, 0xcd, 0xa7, 0xf1, + 0x23, 0xce, 0x76, 0xd5, 0xcc, 0xb0, 0x5e, 0xbc, 0x8d, 0x78, 0xcd, 0x75, 0xda, 0x07, 0xd5, 0xfd, + 0x97, 0xad, 0x7c, 0x67, 0xd5, 0x64, 0x02, 0x11, 0x0c, 0xcf, 0x68, 0x74, 0x58, 0x7b, 0xac, 0xd8, + 0x84, 0x9a, 0x52, 0x17, 0x7e, 0x05, 0x73, 0x76, 0x77, 0xb0, 0x34, 0x79, 0xf8, 0xc9, 0xcb, 0x5f, + 0x59, 0xd9, 0x4f, 0x56, 0xbc, 0x05, 0xbc, 0x80, 0x7b, 0x67, 0x5e, 0xfc, 0xe2, 0x2f, 0x89, 0x2d, + 0x8f, 0xcf, 0x41, 0x3b, 0x47, 0x08, 0x20, 0x20, 0xf0, 0x25, 0xa3, 0x70, 0xf5, 0xf3, 0x30, 0x70, + 0xf5, 0xd2, 0x77, 0x29, 0x4a, 0x2c, 0xc3, 0x0b, 0x44, 0xa7, 0x54, 0x4e, 0x0b, 0xc6, 0x71, 0xcd, + 0xed, 0xbc, 0xd6, 0x60, 0x6e, 0x52, 0x38, 0x16, 0x8a, 0xde, 0x38, 0x22, 0xa6, 0xf9, 0xd1, 0xf1, + 0x79, 0xc0, 0xd0, 0x92, 0x56, 0xd5, 0x8a, 0xb5, 0xb1, 0x18, 0xe2, 0x5e, 0x22, 0x3f, 0x11, 0x07, + 0xad, 0xe6, 0x16, 0x7a, 0x5a, 0x64, 0xf8, 0x9a, 0x69, 0x40, 0x9e, 0xc1, 0x2a, 0x2b, 0x98, 0x15, + 0xa4, 0xd1, 0xc7, 0x19, 0xfa, 0xce, 0x1e, 0xfe, 0x8f, 0xe7, 0x40, 0x3d, 0x8e, 0xdb, 0x02, 0x95, + 0x69, 0xe3, 0xca, 0xae, 0x06, 0xac, 0x22, 0x39, 0x44, 0xd8, 0x75, 0x31, 0xa5, 0xa7, 0xc6, 0x5e, + 0x89, 0xca, 0xb1, 0x5b, 0xe8, 0x90, 0x92, 0xa2, 0x9a, 0x4d, 0xb0, 0xd3, 0xec, 0x7f, 0xbb, 0x85, + 0xb2, 0xc5, 0x64, 0x14, 0xab, 0xfb, 0x7c, 0xe4, 0x12, 0x66, 0x1c, 0x02, 0xc0, 0x91, 0x46, 0xc9, + 0x01, 0x70, 0x95, 0xde, 0x9a, 0xf1, 0x25, 0x69, 0xc3, 0xed, 0x7a, 0xd0, 0xed, 0xe9, 0xec, 0xe2, + 0xd4, 0x1d, 0xac, 0xce, 0xfc, 0x32, 0x39, 0xd7, 0x69, 0x5e, 0xba, 0x0c, 0xf9, 0x9c, 0xbc, 0x4f, + 0x94, 0x77, 0xeb, 0x7c, 0x46, 0x26, 0x60, 0xfc, 0xb9, 0x8c, 0x6f, 0x6a, 0xf0, 0xfd, 0xb7, 0x8c, + 0xc9, 0x0d, 0x2f, 0x7f, 0x0a, 0x49, 0x4b, 0xe7, 0x32, 0x67, 0x24, 0xfd, 0x41, 0xfb, 0x23, 0x65, + 0x33, 0x52, 0x59, 0x90, 0x5f, 0x29, 0xae, 0xa3, 0x7c, 0x99, 0xe9, 0xa0, 0x83, 0x2d, 0x20, 0x90, + 0xf7, 0x95, 0x85, 0xd0, 0x59, 0xdd, 0x97, 0x58, 0x40, 0xe5, 0x89, 0x4b, 0x11, 0x10, 0x76, 0x9e, + 0x61, 0xf2, 0x5c, 0xfa, 0x80, 0xfd, 0xa8, 0x59, 0xab, 0x8c, 0xc8, 0x1f, 0x71, 0x35, 0x63, 0x15, + 0xec, 0x3d, 0xe6, 0x53, 0xf9, 0xfb, 0x54, 0xdd, 0x38, 0x0c, 0x84, 0xff, 0x6b, 0xf1, 0x1d, 0xb2, + 0xc5, 0x67, 0x12, 0x80, 0xa9, 0x19, 0xa7, 0x5e, 0xa1, 0xc3, 0xad, 0x1a, 0x1f, 0x50, 0x8e, 0xab, + 0xed, 0x48, 0x9b, 0x3e, 0x0d, 0x71, 0x4a, 0xe2, 0xfa, 0x1c, 0xfd, 0xee, 0x81, 0x61, 0x88, 0x61, + 0x73, 0x50, 0x35, 0x2a, 0x49, 0x07, 0xfb, 0x0b, 0x80, 0x2f, 0x70, 0x66, 0x31, 0x34, 0x44, 0x68, + 0x42, 0xc1, 0xda, 0x20, 0x12, 0x5f, 0xa0, 0x9d, 0xa2, 0x14, 0xef, 0x50, 0xff, 0x26, 0xd4, 0x71, + 0xfd, 0x28, 0x8e, 0xbd, 0x4b, 0xe0, 0x86, 0xb5, 0x1e, 0x77, 0xc3, 0x17, 0x2f, 0x0a, 0xac, 0x6d, + 0x9d, 0x7f, 0xb9, 0xdc, 0x08, 0xc6, 0x4b, 0x69, 0x3d, 0x5c, 0xd1, 0x83, 0xb1, 0x42, 0x1e, 0x81, + 0x2b, 0xc3, 0x14, 0xfe, 0x0c, 0x06, 0x07, 0xc7, 0x9e, 0xf7, 0x2a, 0x49, 0x91, 0x3c, 0x66, 0x3a, + 0x35, 0xc2, 0xb6, 0xea, 0x0d, 0x75, 0xce, 0x20, 0x7e, 0x56, 0xbf, 0x5b, 0xcc, 0x1b, 0xe5, 0xd2, + 0xb0, 0xca, 0x10, 0x43, 0xce, 0x5c, 0x56, 0xcb, 0x61, 0x27, 0xb7, 0xd7, 0x87, 0xeb, 0x8d, 0x31, + 0xe5, 0x34, 0x9a, 0x9a, 0x98, 0x53, 0x04, 0xaf, 0xab, 0xd2, 0x42, 0xa6, 0x35, 0x97, 0xec, 0xb8, + 0x62, 0x39, 0x08, 0x4e, 0x56, 0x1e, 0xa8, 0xcc, 0xff, 0x76, 0xcd, 0x17, 0x46, 0xfa, 0x1c, 0x39, + 0x16, 0x65, 0xcb, 0x9c, 0x4d, 0x7c, 0x81, 0x0b, 0x74, 0xb1, 0xf3, 0x89, 0x0b, 0xf3, 0x95, 0x81, + 0x37, 0xd2, 0x60, 0x02, 0xd2, 0x1a, 0xd7, 0xe2, 0x1d, 0x10, 0x83, 0xf3, 0x1c, 0x02, 0x87, 0x93, + 0x6b, 0x3c, 0xc2, 0x56, 0xf4, 0xf7, 0xf0, 0x61, 0x4a, 0x1a, 0x2f, 0x52, 0x28, 0x1f, 0xf0, 0xc7, + 0xca, 0x9b, 0x85, 0x92, 0x9c, 0x97, 0x1a, 0xb6, 0xca, 0x5b, 0x32, 0x08, 0x42, 0x38, 0x10, 0xd2, + 0x39, 0x85, 0x66, 0x30, 0x00, 0x59, 0xc8, 0xfa, 0x24, 0x3d, 0x46, 0xf2, 0xc4, 0xa2, 0xc7, 0x3b, + 0x89, 0x2d, 0x2d, 0xf0, 0x8d, 0x7f, 0xcc, 0x5b, 0xb4, 0x6a, 0xc7, 0x99, 0x72, 0x44, 0xc3, 0xe2, + 0x58, 0xe3, 0x8e, 0xe4, 0x77, 0x8f, 0x91, 0x26, 0xc0, 0x06, 0xe0, 0xe2, 0x5f, 0x14, 0x56, 0xa2, + 0x60, 0x36, 0x3b, 0xd3, 0x15, 0x5d, 0x6b, 0x95, 0x36, 0x1c, 0x95, 0xc5, 0x90, 0x51, 0x27, 0x02, + 0xc4, 0x26, 0x24, 0x56, 0xbb, 0x89, 0xab, 0xe6, 0xa1, 0x0d, 0x25, 0x3d, 0x17, 0xce, 0xc1, 0x79, + 0x00, 0x96, 0x59, 0xb2, 0x93, 0xa0, 0x96, 0x14, 0xc9, 0xfa, 0x48, 0x1d, 0x99, 0x72, 0xf6, 0x2b, + 0x64, 0xb2, 0xf5, 0x17, 0x5f, 0x10, 0x62, 0x1b, 0x3a, 0xe9, 0xc1, 0x0d, 0xca, 0x34, 0xbf, 0xc8, + 0x57, 0x24, 0xeb, 0x2a, 0x84, 0x42, 0x18, 0x9e, 0x00, 0x14, 0x37, 0xcc, 0xda, 0x4e, 0x7c, 0x71, + 0x04, 0x23, 0x54, 0x86, 0x22, 0xea, 0x51, 0x72, 0x98, 0x63, 0x18, 0x53, 0x33, 0x3f, 0x0a, 0xcf, + 0xdd, 0x60, 0x8d, 0xea, 0x2a, 0xeb, 0xbe, 0xa8, 0x10, 0x4b, 0x26, 0x84, 0xf5, 0x03, 0x22, 0x40, + 0x57, 0x67, 0x6a, 0xd6, 0x50, 0x65, 0xce, 0xf0, 0x8c, 0x73, 0xad, 0xda, 0x58, 0x35, 0x2c, 0xb5, + 0xe5, 0xc1, 0xad, 0x3f, 0x7a, 0xd1, 0x15, 0x5b, 0xed, 0xa2, 0xb7, 0x50, 0xa0, 0x20, 0xbf, 0x8a, + 0xb2, 0x05, 0xed, 0xdd, 0x79, 0x99, 0x78, 0xc3, 0x26, 0x8b, 0x30, 0x57, 0x25, 0xb0, 0x5b, 0x18, + 0x75, 0xb8, 0xf2, 0x22, 0xc4, 0x07, 0xb6, 0xea, 0x80, 0xbd, 0xcb, 0x25, 0x92, 0x88, 0x38, 0x95, + 0x8f, 0xa8, 0xf1, 0xfc, 0x35, 0xbe, 0xb7, 0x85, 0x02, 0xd5, 0x81, 0x66, 0x0c, 0x51, 0xbc, 0x30, + 0x03, 0xc1, 0xbf, 0x3f, 0xa5, 0x49, 0xbc, 0xd8, 0x72, 0xe7, 0xf0, 0x7e, 0xa1, 0x82, 0x8a, 0x45, + 0x6b, 0xbb, 0x56, 0xa2, 0x02, 0x28, 0x9c, 0xd9, 0x78, 0x49, 0x9b, 0x13, 0xb2, 0xb3, 0x85, 0xbd, + 0x94, 0x6d, 0xad, 0xb4, 0xce, 0x05, 0x44, 0xc4, 0x34, 0xbb, 0x73, 0xbd, 0xaf, 0x0a, 0x9a, 0x30, + 0x33, 0x1a, 0x88, 0xec, 0x82, 0x45, 0x31, 0x3f, 0x08, 0x3a, 0xad, 0xab, 0xf2, 0x23, 0x7f, 0xcc, + 0xe2, 0x9d, 0xe7, 0x3b, 0x56, 0x9e, 0x03, 0xb7, 0xf6, 0xb6, 0xa5, 0x66, 0x31, 0xaf, 0x18, 0x2b, + 0x51, 0xe6, 0x31, 0x8a, 0xd3, 0x93, 0xf8, 0x61, 0x57, 0xa7, 0x94, 0xb6, 0x81, 0xa1, 0x25, 0x51, + 0xdb, 0x7f, 0x18, 0xa4, 0xf1, 0xd6, 0x2d, 0xe0, 0x8e, 0x89, 0xb4, 0xbf, 0xb0, 0xd6, 0xcc, 0xd7, + 0xdb, 0x1b, 0x06, 0x1c, 0xc2, 0xca, 0x45, 0x43, 0xb5, 0x69, 0x64, 0x05, 0xb1, 0xb4, 0xce, 0xdc, + 0xe8, 0x50, 0x4c, 0xe8, 0x96, 0x55, 0x26, 0xfd, 0x33, 0x52, 0x47, 0xbe, 0xb5, 0x9a, 0x8d, 0x8a, + 0xbb, 0x07, 0xd0, 0x86, 0xd7, 0x8e, 0x26, 0x62, 0x07, 0x95, 0x7f, 0x9d, 0xb5, 0xaa, 0x2d, 0x4b, + 0xf7, 0xd6, 0x6b, 0xbf, 0x7a, 0x6b, 0xfa, 0xde, 0xea, 0xd8, 0xcd, 0x77, 0x59, 0xa1, 0xd9, 0x62, + 0x4f, 0x1a, 0x09, 0xc8, 0x0b, 0xcc, 0x98, 0x1a, 0x8f, 0x7e, 0x7c, 0xf5, 0x45, 0x73, 0x39, 0x27, + 0x76, 0x4f, 0x25, 0x7c, 0x14, 0x0b, 0x7d, 0x9b, 0x63, 0x1f, 0x70, 0x50, 0x1a, 0x2d, 0x68, 0x98, + 0x4d, 0x31, 0xcb, 0x29, 0xbe, 0xc4, 0x6a, 0x55, 0xf1, 0x9c, 0xb0, 0x0b, 0xa2, 0x32, 0x6f, 0x59, + 0x8d, 0xde, 0xcd, 0xd4, 0x06, 0x3d, 0x83, 0x17, 0xe8, 0x8e, 0x5a, 0xb8, 0x2d, 0x24, 0x4a, 0xcc, + 0x05, 0xd4, 0x1a, 0x56, 0xea, 0x54, 0xa3, 0x3d, 0x84, 0xd3, 0x1c, 0x81, 0x0c, 0xbe, 0x91, 0xf6, + 0xe4, 0x64, 0x1c, 0x3e, 0xcd, 0x65, 0x3a, 0xad, 0xee, 0xdc, 0x12, 0x13, 0x84, 0xbe, 0x8c, 0x16, + 0xc8, 0x1e, 0x6e, 0x27, 0xe3, 0x84, 0x14, 0xa6, 0xbc, 0x83, 0x95, 0xe8, 0x8e, 0xd8, 0xed, 0xa1, + 0xa2, 0xbf, 0x03, 0x5e, 0xaa, 0x49, 0xf1, 0xcd, 0xa9, 0xbb, 0xb1, 0x89, 0x49, 0x49, 0x63, 0x5c, + 0xea, 0x5c, 0x1d, 0x4d, 0xef, 0xfc, 0x35, 0xe8, 0x00, 0x97, 0xec, 0xe0, 0x47, 0x20, 0xe2, 0x56, + 0x31, 0x23, 0xcd, 0xec, 0xe5, 0x70, 0x62, 0x15, 0x6d, 0xe7, 0x95, 0x81, 0x8f, 0x56, 0x78, 0xe8, + 0x7b, 0xc9, 0xa7, 0xf2, 0xe5, 0xe6, 0xcd, 0x21, 0xdd, 0x75, 0x20, 0x9e, 0xf9, 0xb3, 0xd4, 0x6f, + 0x6e, 0x6d, 0xa0, 0xfe, 0x07, 0xed, 0xdf, 0xe7, 0xe3, 0x98, 0x75, 0x21, 0x45, 0xf5, 0x6d, 0x6f, + 0xb3, 0x62, 0xad, 0xa8, 0x2b, 0x36, 0x42, 0x46, 0x22, 0xa2, 0x91, 0xc6, 0x8b, 0x03, 0xd7, 0x80, + 0xd7, 0x4b, 0x1b, 0xeb, 0x0d, 0xd8, 0x56, 0x38, 0x78, 0xe3, 0x24, 0x0f, 0x59, 0xe7, 0x45, 0x5b, + 0x87, 0xd4, 0x83, 0x65, 0x69, 0x1c, 0xad, 0x86, 0x07, 0x94, 0x76, 0x84, 0xdc, 0x26, 0x9e, 0xd4, + 0xea, 0x8d, 0xed, 0xb3, 0xa2, 0x7b, 0x07, 0x58, 0x84, 0x03, 0xe0, 0x1f, 0x4f, 0xfb, 0xbf, 0xa5, + 0x79, 0x0c, 0x2e, 0x48, 0xf4, 0x1d, 0x0a, 0x57, 0xde, 0x73, 0x50, 0x70, 0x08, 0x05, 0x9b, 0x58, + 0x5c, 0x5d, 0x57, 0x80, 0xc1, 0xe8, 0x24, 0xfb, 0x7e, 0x46, 0x08, 0x68, 0xcb, 0xdf, 0xc2, 0x91, + 0x04, 0x06, 0x07, 0xbc, 0x85, 0x25, 0x16, 0x6a, 0x6c, 0x6a, 0xa3, 0xa2, 0x98, 0x3b, 0xa7, 0xa0, + 0xcf, 0x2a, 0xa2, 0x11, 0x9c, 0xe0, 0x84, 0x3b, 0x36, 0x2f, 0x33, 0x5a, 0xf2, 0xa0, 0xee, 0xb1, + 0xd9, 0xb6, 0x45, 0xbd, 0x82, 0x1e, 0x36, 0x0a, 0x46, 0x48, 0x35, 0x54, 0xa8, 0x3c, 0x8a, 0x0b, + 0x85, 0x19, 0xe9, 0x88, 0xb8, 0xc3, 0xd6, 0x7b, 0x89, 0x32, 0x56, 0xff, 0xfc, 0x50, 0xdd, 0xf9, + 0x6b, 0x5f, 0x9d, 0xb1, 0xd4, 0x56, 0x07, 0xd3, 0xf6, 0xac, 0x05, 0x91, 0x31, 0xf0, 0xe6, 0x35, + 0x7f, 0x7e, 0x1e, 0x3d, 0xed, 0x4a, 0x87, 0x7d, 0x14, 0xa0, 0x0e, 0xbb, 0xa9, 0x54, 0xc2, 0x1f, + 0x2a, 0x74, 0xd0, 0x2b, 0x56, 0x1b, 0xc0, 0x02, 0x5c, 0x47, 0xd5, 0xed, 0x87, 0x82, 0x6b, 0xdf, + 0x7c, 0x0b, 0xa5, 0xd1, 0x89, 0x18, 0x6d, 0xd3, 0xa5, 0x0d, 0xdc, 0x73, 0xb1, 0x27, 0x55, 0xe2, + 0xec, 0x4b, 0x8d, 0xe1, 0xee, 0xaa, 0x12, 0xd0, 0x62, 0x30, 0x59, 0x4c, 0xee, 0x6e, 0x6f, 0x6b, + 0xf9, 0x74, 0x90, 0x89, 0x3e, 0xdb, 0xe1, 0xde, 0xe8, 0x2d, 0xee, 0x34, 0xa8, 0x02, 0x98, 0xbc, + 0xc7, 0x0c, 0xfc, 0xfd, 0x03, 0xb7, 0x69, 0x3c, 0xa9, 0x62, 0x08, 0x66, 0x0a, 0xc7, 0xa4, 0xf3, + 0x04, 0x56, 0x16, 0x5b, 0x76, 0xeb, 0x8e, 0xca, 0xf1, 0xec, 0x75, 0xd7, 0x66, 0x48, 0xa5, 0x58, + 0x05, 0x33, 0xa3, 0x79, 0x8c, 0x21, 0x1f, 0x7a, 0xd1, 0x69, 0x53, 0xed, 0xe4, 0x4a, 0xff, 0xef, + 0xbc, 0xec, 0x17, 0x18, 0x0f, 0x94, 0x0e, 0x1d, 0x9b, 0x2e, 0xbc, 0xa9, 0x54, 0xf8, 0x5b, 0x2d, + 0x2f, 0x9f, 0x26, 0xff, 0x00, 0x9d, 0x72, 0xb7, 0xb9, 0x47, 0xae, 0x8b, 0xde, 0x64, 0x3b, 0xd3, + 0x4b, 0xde, 0x1d, 0xf7, 0x8d, 0xc0, 0x00, 0xdf, 0xbe, 0x07, 0x2c, 0xf2, 0xd5, 0x4f, 0xe1, 0xe0, + 0x38, 0x6c, 0x8d, 0x79, 0xf7, 0xa8, 0xa5, 0xaf, 0x99, 0xd3, 0xd9, 0x67, 0x3d, 0xb1, 0xd8, 0x5b, + 0xce, 0x6a, 0x02, 0xe4, 0x66, 0x0d, 0x4d, 0x50, 0xb0, 0x4b, 0x27, 0x09, 0xa9, 0x37, 0x51, 0xde, + 0x77, 0x40, 0xe5, 0x4a, 0xdb, 0x58, 0x2d, 0x11, 0xa9, 0xbe, 0x36, 0x1d, 0x3c, 0xe0, 0x96, 0x6f, + 0x94, 0x6b, 0x3b, 0xbf, 0xa2, 0xb0, 0x26, 0x85, 0xb2, 0x50, 0xa2, 0x41, 0xe3, 0x84, 0x45, 0x87, + 0x77, 0x04, 0xd7, 0x16, 0x01, 0x19, 0x61, 0x4b, 0x04, 0xc3, 0x93, 0x3b, 0x41, 0xe1, 0x7a, 0xdb, + 0xb3, 0x7c, 0x25, 0x5c, 0x42, 0x70, 0x55, 0x68, 0xf3, 0x1b, 0xfa, 0x99, 0xda, 0x57, 0x09, 0x5f, + 0xf6, 0x69, 0xa7, 0xbc, 0x7d, 0xe1, 0x0d, 0xf3, 0x13, 0xef, 0xe7, 0x4f, 0x45, 0xb5, 0x43, 0x1b, + 0xe4, 0xd9, 0xd0, 0x2b, 0xfa, 0x70, 0x9f, 0x15, 0x0e, 0x6d, 0xa9, 0x30, 0x43, 0x08, 0x26, 0x4d, + 0x31, 0x66, 0x7c, 0x60, 0xee, 0x17, 0xe0, 0x79, 0x43, 0xf2, 0xe6, 0xb3, 0xe1, 0x7e, 0xb7, 0xfc, + 0x94, 0x54, 0x78, 0xb5, 0xbc, 0xe8, 0xed, 0x41, 0x78, 0xdf, 0x49, 0xef, 0x0e, 0x15, 0xac, 0x00, + 0x8f, 0x87, 0xd2, 0x79, 0x69, 0xfd, 0x62, 0x4c, 0xda, 0xa4, 0x19, 0xa0, 0x7b, 0xe4, 0xac, 0x9b, + 0x0f, 0x18, 0x4c, 0x1e, 0x32, 0xad, 0xbd, 0x3a, 0xba, 0xfc, 0xd0, 0xbf, 0x84, 0x37, 0x27, 0xb1, + 0xc2, 0xbd, 0xe1, 0xad, 0xa2, 0xd1, 0xab, 0x6f, 0xe2, 0x88, 0xff, 0x8d, 0x58, 0x78, 0x39, 0x5e, + 0xf7, 0x04, 0x11, 0xe2, 0xa0, 0x2a, 0x0f, 0x19, 0x31, 0xec, 0x8e, 0xea, 0x48, 0xd2, 0x6e, 0x2c, + 0x62, 0x99, 0xb4, 0x34, 0xed, 0xd6, 0x73, 0x35, 0xe0, 0xa5, 0x04, 0x4d, 0x3b, 0x3e, 0x0e, 0x77, + 0xa8, 0x8d, 0x36, 0x8f, 0xe3, 0x53, 0x9d, 0x90, 0xc8, 0x04, 0xda, 0xf5, 0x02, 0x98, 0xa9, 0x94, + 0xfa, 0x41, 0xe5, 0x25, 0xed, 0x5a, 0x78, 0x64, 0x6d, 0xae, 0xa7, 0x7c, 0x35, 0xab, 0xe7, 0xdc, + 0x82, 0xc4, 0x8b, 0xa5, 0x8b, 0xaa, 0xbd, 0x3c, 0xd0, 0x0d, 0x3e, 0x38, 0x81, 0x05, 0x1f, 0x92, + 0xb0, 0x83, 0xd1, 0x60, 0x15, 0x7b, 0xca, 0x1b, 0xf5, 0x92, 0x27, 0xee, 0x6e, 0xf0, 0x38, 0xe2, + 0x01, 0x27, 0x64, 0x8c, 0x34, 0xaa, 0xbe, 0xdd, 0xee, 0x4a, 0xf4, 0x2a, 0x31, 0x3e, 0x57, 0xcc, + 0x6d, 0x06, 0x2c, 0x5a, 0x44, 0xa0, 0x37, 0x5d, 0x7d, 0x97, 0x8c, 0x84, 0xa2, 0x07, 0xc9, 0x72, + 0xb4, 0x87, 0xed, 0xcc, 0xd9, 0x6b, 0x9a, 0xff, 0xf7, 0xcc, 0x41, 0xbf, 0xc6, 0x5d, 0x3c, 0x25, + 0x5b, 0xca, 0x7c, 0x8c, 0x96, 0x2f, 0xf9, 0x7c, 0x95, 0x91, 0x81, 0xb1, 0x7f, 0x0b, 0x85, 0x09, + 0x8e, 0xfe, 0x6b, 0x2a, 0x87, 0x4a, 0xef, 0x58, 0xb1, 0x6d, 0x54, 0x6f, 0x38, 0xb9, 0xde, 0x9f, + 0x55, 0x00, 0xc8, 0x2f, 0x6a, 0x67, 0x33, 0xb6, 0xd4, 0x5d, 0xb5, 0x32, 0x55, 0x4b, 0xf7, 0x2e, + 0xa6, 0xad, 0x8d, 0x1b, 0xa1, 0x2e, 0x93, 0x38, 0xc4, 0x91, 0x97, 0xc3, 0xea, 0xde, 0x18, 0x31, + 0x26, 0x96, 0x9b, 0xc3, 0xa6, 0xe0, 0x94, 0x4f, 0xe8, 0x39, 0x1d, 0x38, 0x85, 0x8e, 0xd7, 0x83, + 0x40, 0x4a, 0x6a, 0xc7, 0xbe, 0xba, 0x71, 0x40, 0xe0, 0x9e, 0xc4, 0x20, 0xab, 0xd2, 0x37, 0x46, + 0x23, 0xb1, 0x3f, 0xf0, 0xaa, 0x8d, 0x17, 0x00, 0x3e, 0x80, 0x7c, 0x8c, 0x0f, 0x8a, 0xb3, 0x0b, + 0xf2, 0x25, 0x20, 0x0f, 0x23, 0x3f, 0x70, 0xee, 0x04, 0x88, 0x1b, 0x05, 0x8d, 0x19, 0x53, 0x79, + 0x25, 0x68, 0xfc, 0x53, 0xd5, 0x3e, 0x5a, 0x2f, 0x82, 0x49, 0xbb, 0x4b, 0xb0, 0x7d, 0x8b, 0xcf, + 0xda, 0x4a, 0xe5, 0x20, 0xc4, 0xf3, 0x76, 0x46, 0x1b, 0x76, 0x92, 0x24, 0xd1, 0xd1, 0x47, 0x44, + 0x0f, 0xa0, 0xbc, 0x40, 0xa5, 0xb7, 0x29, 0x9a, 0x02, 0x8f, 0xda, 0xb6, 0x71, 0x42, 0x0b, 0x17, + 0xc6, 0x18, 0x1c, 0x56, 0xe9, 0x3d, 0x63, 0x35, 0xc8, 0x93, 0x47, 0x88, 0x8a, 0x44, 0x53, 0x7f, + 0xdf, 0x59, 0x0c, 0x2c, 0x65, 0xd4, 0x29, 0xff, 0x89, 0x0c, 0xc0, 0xc6, 0xcf, 0xb7, 0xc3, 0x62, + 0x85, 0x4b, 0x0b, 0x9a, 0x26, 0xe1, 0x83, 0x0e, 0xb3, 0xc6, 0x2a, 0xfe, 0x72, 0x1f, 0x1d, 0x70, + 0x7e, 0xe2, 0x3e, 0xfe, 0x6f, 0xfa, 0x66, 0x86, 0x33, 0xf8, 0xc3, 0x17, 0x6c, 0x8b, 0x91, 0x00, + 0x88, 0x69, 0x7e, 0xc2, 0xb4, 0x14, 0x5d, 0xae, 0xcf, 0x49, 0xe0, 0x29, 0x27, 0x6d, 0x9e, 0x5d, + 0x1d, 0x17, 0xa4, 0xe0, 0xdb, 0x22, 0x9f, 0x6b, 0x35, 0xdc, 0xb0, 0xd6, 0x75, 0xf5, 0xfb, 0x7e, + 0x5f, 0xcf, 0x3e, 0x1a, 0x3f, 0x16, 0xe0, 0xf0, 0x76, 0xd6, 0x3e, 0x84, 0xcc, 0xf5, 0xe4, 0x72, + 0xd6, 0x47, 0xd8, 0xf4, 0xd0, 0xb6, 0x87, 0xe9, 0x15, 0x8a, 0x72, 0xd2, 0x48, 0xa0, 0xe1, 0x86, + 0x27, 0x15, 0x01, 0xf0, 0x06, 0xa4, 0xc5, 0x66, 0x22, 0x88, 0x19, 0x14, 0xa8, 0x06, 0xf6, 0x7e, + 0xeb, 0xb6, 0xae, 0x4a, 0x49, 0xfd, 0xcb, 0x54, 0x71, 0xc8, 0x5d, 0x11, 0xa8, 0x84, 0xa9, 0x58, + 0xc1, 0xa2, 0x79, 0x18, 0xc9, 0x57, 0xa0, 0xe4, 0x8b, 0x78, 0x62, 0x80, 0x32, 0x71, 0x60, 0x6b, + 0xf8, 0xbc, 0xca, 0xf5, 0x37, 0x59, 0x30, 0x45, 0xd1, 0x4e, 0x2d, 0x79, 0x07, 0x7c, 0xaa, 0x62, + 0x02, 0xb7, 0x8f, 0xd6, 0xd6, 0x9e, 0x87, 0xf7, 0xc0, 0x7a, 0x47, 0xa5, 0x8a, 0xb4, 0xbb, 0xbc, + 0xcd, 0xef, 0x7f, 0x04, 0x08, 0xdd, 0x1d, 0x27, 0x1f, 0x26, 0x28, 0x2c, 0x11, 0xb5, 0xb6, 0x28, + 0x47, 0x57, 0xff, 0x34, 0x67, 0xc2, 0x8c, 0xca, 0xbf, 0x40, 0x7b, 0xbb, 0x1e, 0xa1, 0xe5, 0xc3, + 0x17, 0x3a, 0xbe, 0xa6, 0xf3, 0x0e, 0x31, 0x9d, 0x00, 0xa5, 0xbe, 0x49, 0xdc, 0x95, 0x63, 0xfa, + 0xb6, 0xbb, 0x9a, 0x40, 0x4e, 0x22, 0x6e, 0x8c, 0xe8, 0x7f, 0x32, 0xba, 0xc4, 0x94, 0x03, 0xbe, + 0x99, 0x70, 0x5e, 0x56, 0x5f, 0x7a, 0xe3, 0x96, 0x19, 0x72, 0x4e, 0xff, 0x71, 0x8f, 0x17, 0x18, + 0xbd, 0x69, 0xc0, 0xcc, 0xca, 0x02, 0x4b, 0xf6, 0x66, 0x15, 0xe0, 0xb2, 0x9c, 0xbc, 0x5c, 0x4e, + 0xe6, 0x64, 0xdf, 0x2c, 0xd9, 0x74, 0x96, 0xb8, 0xa5, 0x19, 0xc2, 0x44, 0xad, 0x15, 0xf8, 0x6e, + 0xb1, 0xc8, 0x09, 0xe1, 0x8a, 0x75, 0x6d, 0xe2, 0x83, 0x12, 0x61, 0x9f, 0x77, 0x85, 0xa4, 0x2e, + 0xb0, 0x53, 0xa7, 0x93, 0x65, 0x0e, 0x89, 0xfa, 0xde, 0x99, 0xd1, 0xdc, 0x40, 0xf6, 0x88, 0xd4, + 0xde, 0x9a, 0x6b, 0xcf, 0x40, 0x6c, 0xb2, 0x86, 0x22, 0x24, 0xcb, 0x85, 0xd1, 0x0a, 0xc7, 0x61, + 0x30, 0xf9, 0x89, 0xb8, 0x63, 0x59, 0x15, 0x42, 0xff, 0x6a, 0xe9, 0x4e, 0x8c, 0xa8, 0xcb, 0xad, + 0x90, 0x20, 0xf3, 0x3f, 0x5c, 0x0f, 0x6a, 0xf2, 0x2d, 0x65, 0x03, 0x6a, 0xba, 0xa2, 0x82, 0x2c, + 0x13, 0x91, 0x68, 0xe1, 0x24, 0xed, 0x40, 0xea, 0xf0, 0xba, 0xb0, 0xb5, 0xd4, 0x13, 0x51, 0xee, + 0x78, 0x75, 0x50, 0x6e, 0xa0, 0x1e, 0x60, 0x47, 0x89, 0x76, 0x65, 0x45, 0xfe, 0xa4, 0xef, 0x8b, + 0x77, 0x85, 0xae, 0xe9, 0xb6, 0x93, 0x04, 0x2d, 0x37, 0x68, 0x3b, 0x8a, 0xeb, 0xf9, 0xc8, 0x79, + 0xd8, 0xe0, 0x9f, 0x30, 0xb1, 0xa0, 0xed, 0xee, 0x0e, 0x55, 0xff, 0x62, 0x44, 0xb0, 0x1d, 0x34, + 0xbd, 0x87, 0x43, 0xef, 0x4c, 0xc4, 0xae, 0x1d, 0x8f, 0xeb, 0x52, 0xe1, 0xf8, 0x96, 0x93, 0x57, + 0x29, 0x31, 0x96, 0x12, 0x1a, 0xdc, 0x12, 0x89, 0xda, 0x25, 0x8e, 0x4e, 0xb8, 0x58, 0x02, 0xd8, + 0x3e, 0xab, 0x11, 0x13, 0xe2, 0x6e, 0xc4, 0xd7, 0x56, 0x9f, 0x65, 0x43, 0x6f, 0xd7, 0x38, 0xe5, + 0xe1, 0xf3, 0xeb, 0x84, 0xa9, 0x78, 0x4d, 0xb0, 0x9b, 0x60, 0x98, 0x95, 0x3e, 0x60, 0x06, 0xb1, + 0x75, 0x03, 0x85, 0x08, 0xad, 0xa0, 0x8d, 0x11, 0x5f, 0xa1, 0x88, 0x55, 0x08, 0x60, 0xfa, 0x9c, + 0x75, 0x80, 0xac, 0x39, 0x11, 0xb0, 0x59, 0xe5, 0xc9, 0xa0, 0x63, 0xab, 0xc4, 0x56, 0xd1, 0x80, + 0xe8, 0x7c, 0xd0, 0x8f, 0x62, 0x9d, 0x37, 0xb6, 0x6d, 0xd1, 0x6b, 0x2a, 0xba, 0x0f, 0xf9, 0x7f, + 0xea, 0xa8, 0x34, 0xf2, 0x40, 0xf4, 0x2f, 0x5f, 0xe3, 0x7c, 0x19, 0x3e, 0xb9, 0x68, 0x02, 0x73, + 0xc9, 0xef, 0x4b, 0x96, 0x1f, 0xf1, 0xd9, 0x81, 0x36, 0x73, 0x98, 0x5c, 0xdc, 0x84, 0x2e, 0x96, + 0xb8, 0x84, 0x12, 0x5c, 0x03, 0xc8, 0xc6, 0x27, 0x9a, 0x95, 0xfa, 0x6e, 0xb1, 0x47, 0xf5, 0xb0, + 0x8d, 0x86, 0x0f, 0xa8, 0xf6, 0xe3, 0x06, 0xdb, 0x57, 0x0e, 0xab, 0x68, 0x20, 0x6b, 0xf3, 0xa2, + 0x5c, 0xce, 0x5e, 0xdd, 0x96, 0xb0, 0xa8, 0x26, 0xe7, 0xb6, 0xac, 0xf3, 0x7d, 0x5e, 0xaf, 0x1b, + 0x69, 0x37, 0xe9, 0x50, 0xc4, 0x3c, 0x02, 0xa2, 0xfe, 0xba, 0xc6, 0x5a, 0x3b, 0x20, 0xf7, 0x51, + 0xb2, 0x3f, 0x5f, 0x80, 0xa6, 0x21, 0xdb, 0x63, 0x9b, 0xd8, 0x9f, 0xae, 0xa6, 0x2b, 0x8e, 0x07, + 0x6a, 0xda, 0x6d, 0x94, 0x34, 0xd3, 0xac, 0xb0, 0xe0, 0x73, 0xe5, 0x83, 0x9b, 0x1a, 0xfd, 0xd2, + 0xaf, 0xe7, 0x09, 0x36, 0x68, 0x22, 0x37, 0xdd, 0x77, 0xf9, 0x6f, 0xa3, 0x99, 0x87, 0x17, 0x2c, + 0xb2, 0x13, 0x90, 0x28, 0x7c, 0x68, 0x40, 0x6b, 0xb7, 0xf2, 0x52, 0xd3, 0xd2, 0xae, 0x80, 0x50, + 0xad, 0x0a, 0x4b, 0x7b, 0xd8, 0x04, 0x3a, 0x00, 0xd8, 0xfd, 0x4b, 0xb9, 0x8b, 0xee, 0x2a, 0xca, + 0x22, 0x17, 0x40, 0x68, 0x43, 0x07, 0x34, 0x25, 0x96, 0x08, 0x9f, 0xe0, 0xa3, 0x7a, 0x57, 0x62, + 0xe3, 0xe0, 0x08, 0xae, 0x72, 0x59, 0x93, 0x73, 0x6a, 0x38, 0x78, 0xec, 0x3f, 0x3e, 0xc5, 0x4e, + 0xa0, 0x74, 0x96, 0x36, 0x8e, 0xd5, 0xbc, 0x04, 0x4b, 0x16, 0xd8, 0xc9, 0x47, 0x50, 0xa8, 0x30, + 0x56, 0xd7, 0x29, 0xbc, 0x83, 0xa8, 0xd3, 0x68, 0xd6, 0x61, 0xde, 0x10, 0x10, 0x6e, 0x71, 0x63, + 0x2a, 0xcd, 0xe3, 0xb9, 0xbb, 0xcf, 0xa9, 0xd9, 0x0b, 0xe9, 0x3e, 0xbb, 0xc3, 0xc4, 0xd3, 0x37, + 0x1d, 0xe4, 0xea, 0x14, 0x2c, 0x69, 0x6c, 0xa1, 0xa1, 0xbe, 0x7f, 0xd2, 0xcd, 0x72, 0xa5, 0xd7, + 0xe3, 0x6f, 0xf1, 0x82, 0xa9, 0xa5, 0x25, 0x0d, 0xd5, 0x19, 0xd9, 0x6a, 0x16, 0x9f, 0x91, 0x97, + 0x72, 0x51, 0xe7, 0x48, 0x6f, 0x97, 0x7c, 0xb1, 0xae, 0x3b, 0x30, 0x48, 0xcf, 0x49, 0xaa, 0xfd, + 0x15, 0x0a, 0x6e, 0xef, 0x3d, 0x03, 0x10, 0xfa, 0x36, 0x93, 0x6c, 0x62, 0x71, 0x7c, 0x04, 0x44, + 0x07, 0x54, 0xd4, 0x39, 0x13, 0x98, 0x07, 0x42, 0xf3, 0x8d, 0x55, 0x22, 0x0c, 0x95, 0x9c, 0x08, + 0xd5, 0xb7, 0xbd, 0x68, 0xb1, 0xb3, 0x03, 0x86, 0x65, 0x4d, 0x65, 0xfe, 0x17, 0x22, 0x51, 0xfa, + 0x2f, 0xad, 0x93, 0x4e, 0xaa, 0xc1, 0xed, 0x41, 0x56, 0xd0, 0xb1, 0x3c, 0x36, 0xeb, 0xb7, 0xe1, + 0x37, 0xc2, 0xf2, 0x62, 0x3b, 0xe6, 0x7c, 0x2f, 0x99, 0x99, 0x8c, 0x5e, 0xe1, 0xc1, 0xa3, 0xfa, + 0x6b, 0xee, 0x95, 0x20, 0x83, 0xed, 0x18, 0xd4, 0x10, 0xe9, 0xc0, 0xba, 0x92, 0xf2, 0xba, 0x56, + 0x0b, 0x68, 0x20, 0xe7, 0x40, 0x3a, 0xc2, 0x56, 0xd0, 0xc0, 0x95, 0x84, 0x62, 0x5b, 0x46, 0x14, + 0xbd, 0xb6, 0xb9, 0x3b, 0x17, 0x45, 0xd4, 0xc0, 0xe1, 0x7f, 0x4d, 0x00, 0x22, 0x90, 0xc1, 0x5f, + 0xa3, 0x56, 0xd1, 0xfc, 0x18, 0xbb, 0xf0, 0xd4, 0x9c, 0x0e, 0x52, 0xe3, 0xbf, 0xf1, 0xd6, 0xf2, + 0xb6, 0xcc, 0x29, 0x2c, 0xc7, 0xea, 0x81, 0xdf, 0xac, 0x89, 0x26, 0xb2, 0x17, 0x46, 0xb7, 0x52, + 0x12, 0xbb, 0xdc, 0x5e, 0xa6, 0xf1, 0x60, 0x90, 0xff, 0x46, 0xac, 0x40, 0x51, 0x51, 0x0f, 0x52, + 0xaa, 0xb6, 0xd3, 0xe3, 0xed, 0xfb, 0x2f, 0xe2, 0x16, 0x6a, 0xe2, 0x97, 0xa2, 0x81, 0xb2, 0xda, + 0x40, 0x69, 0xca, 0xb7, 0x1e, 0x56, 0xf6, 0x79, 0xdc, 0xf5, 0x3b, 0x51, 0xef, 0xf9, 0xe7, 0x70, + 0x5b, 0x9a, 0x6e, 0xea, 0x22, 0x73, 0xc2, 0xdd, 0x7b, 0xe0, 0x37, 0x8e, 0x10, 0x05, 0x80, 0x56, + 0x98, 0x3b, 0xea, 0xb6, 0x54, 0x2a, 0x18, 0xc3, 0x36, 0x8d, 0xef, 0x6b, 0x72, 0x89, 0xd3, 0x41, + 0x08, 0xbb, 0x6a, 0x25, 0xa3, 0x33, 0xdf, 0x81, 0x1b, 0x98, 0x19, 0x77, 0x58, 0xd6, 0x95, 0x9e, + 0x67, 0xde, 0x7b, 0x9c, 0xc8, 0x3b, 0xfb, 0xdd, 0x4f, 0x9a, 0x06, 0x2e, 0x8c, 0xfa, 0x55, 0xbb, + 0x21, 0x9c, 0x6d, 0xd4, 0xca, 0x42, 0x9d, 0x63, 0x64, 0x03, 0x7b, 0x1c, 0x53, 0xeb, 0xb6, 0x0b, + 0x26, 0xcc, 0x07, 0x5a, 0xcb, 0x4d, 0xdf, 0x5a, 0xd7, 0xf7, 0xe5, 0x57, 0x70, 0x39, 0x76, 0xda, + 0xa6, 0x87, 0x14, 0x1b, 0x6f, 0xf2, 0x19, 0x2f, 0x3b, 0x0b, 0xf8, 0xe0, 0x63, 0x05, 0x7b, 0xc1, + 0x9e, 0xf0, 0xf9, 0xdc, 0xd8, 0x19, 0x38, 0x07, 0xc6, 0xda, 0xd8, 0xd5, 0xb9, 0x1f, 0xbb, 0x48, + 0xe7, 0xd4, 0x91, 0xc9, 0xb8, 0x5c, 0x2c, 0x90, 0xdf, 0xbe, 0xd0, 0xa2, 0x7c, 0x5e, 0xdb, 0x37, + 0xed, 0xac, 0x09, 0xa1, 0x98, 0xcb, 0x16, 0x47, 0x5d, 0xcb, 0x35, 0xe1, 0x6a, 0xa4, 0x5c, 0x5b, + 0x77, 0x75, 0x20, 0x3e, 0x4d, 0x2d, 0xaa, 0x52, 0x6f, 0xde, 0x7a, 0x1f, 0x44, 0xda, 0x01, 0x81, + 0x9c, 0x3e, 0xe9, 0x3b, 0xe3, 0x3c, 0x44, 0x32, 0x6d, 0x11, 0x71, 0x8e, 0xca, 0xac, 0xe7, 0xcc, + 0x37, 0x9d, 0x0d, 0x41, 0xd0, 0x29, 0xd7, 0xf0, 0x08, 0xae, 0x5e, 0x69, 0x5c, 0x74, 0xeb, 0xfc, + 0xc3, 0x65, 0x2f, 0xf4, 0x4b, 0x75, 0xf6, 0xbb, 0x3b, 0xba, 0x61, 0x6f, 0xf2, 0x79, 0xff, 0x61, + 0x2e, 0x81, 0x6e, 0x77, 0x1e, 0x50, 0xc5, 0x57, 0xaf, 0x7e, 0x81, 0x28, 0x5f, 0xa6, 0xf6, 0xca, + 0xdf, 0x7c, 0x2e, 0xa4, 0xf1, 0x34, 0x82, 0x1d, 0x3c, 0x14, 0xb2, 0x31, 0x00, 0x8a, 0xef, 0xb2, + 0x53, 0xbe, 0x2a, 0x17, 0xaa, 0xac, 0x6a, 0x59, 0x19, 0x60, 0x47, 0x3f, 0x2c, 0x00, 0x97, 0x80, + 0xf8, 0x28, 0x6f, 0x05, 0x4a, 0x40, 0xef, 0x9f, 0x48, 0x69, 0xa8, 0xc9, 0xaa, 0x65, 0xcb, 0x07, + 0x2a, 0x17, 0x17, 0x40, 0xa3, 0x9b, 0x90, 0xd9, 0xf2, 0x97, 0x17, 0xeb, 0x15, 0xeb, 0x32, 0xc2, + 0x65, 0x65, 0x78, 0x5a, 0x78, 0x9f, 0xb5, 0xc9, 0x66, 0x96, 0x23, 0xa0, 0x8a, 0xd2, 0xb8, 0xcc, + 0xc5, 0x2c, 0x51, 0xd8, 0x27, 0x45, 0x8e, 0x4c, 0xd2, 0x2c, 0x06, 0x39, 0xf7, 0xc8, 0x59, 0x48, + 0x70, 0x0d, 0x64, 0x6b, 0x50, 0xd6, 0x87, 0x96, 0xfb, 0xca, 0x45, 0x19, 0xec, 0xa6, 0x3d, 0xa2, + 0x54, 0x6f, 0x38, 0x5f, 0xde, 0xe3, 0xb9, 0x9d, 0x92, 0x5e, 0x90, 0xc7, 0x97, 0xfd, 0x56, 0x88, + 0x5c, 0xa4, 0x31, 0x15, 0xd9, 0xa6, 0x53, 0xc5, 0xe4, 0x91, 0xfe, 0xed, 0x3c, 0x94, 0xd8, 0xee, + 0xf1, 0x12, 0xfc, 0x96, 0xb1, 0x5b, 0x69, 0xe1, 0xab, 0xe7, 0x01, 0xdf, 0x20, 0xc1, 0xc6, 0xe1, + 0x53, 0x8b, 0xc5, 0x6f, 0x66, 0x97, 0xf2, 0x8e, 0x91, 0x20, 0x5b, 0x2f, 0x77, 0xe7, 0x74, 0xa7, + 0xf8, 0xcf, 0xdc, 0x99, 0x48, 0x1b, 0xf6, 0x06, 0x20, 0xb5, 0x28, 0xd2, 0x83, 0x49, 0xd7, 0xc4, + 0xc4, 0xa8, 0xeb, 0x2f, 0x90, 0x0d, 0xf5, 0x97, 0xf1, 0xf8, 0x2d, 0xe7, 0x9a, 0x02, 0x29, 0x92, + 0x89, 0xbd, 0xbc, 0xbd, 0xe0, 0xbf, 0x67, 0xc6, 0x19, 0x71, 0xfa, 0xbf, 0xbb, 0xcd, 0x9c, 0x68, + 0xdb, 0x7a, 0xb7, 0x21, 0x6f, 0xaa, 0x4a, 0x26, 0x27, 0xab, 0xe8, 0x4c, 0x1a, 0x9b, 0x15, 0xc7, + 0x15, 0x54, 0x7c, 0xc6, 0xd0, 0xee, 0x5e, 0x04, 0x4b, 0x7c, 0x7e, 0xe2, 0x22, 0xb9, 0x1a, 0x8d, + 0x1d, 0xe4, 0xd7, 0xb9, 0x31, 0x59, 0xf8, 0xbe, 0x27, 0x66, 0x3d, 0x9d, 0x5a, 0x99, 0xcf, 0x38, + 0x00, 0x95, 0x25, 0xbb, 0x4c, 0x72, 0x97, 0x89, 0xf4, 0x15, 0x70, 0xad, 0xf8, 0xc7, 0xb0, 0x0d, + 0x75, 0x6f, 0x55, 0x6b, 0xfc, 0x88, 0xa5, 0xaf, 0xdc, 0x79, 0xd2, 0xe5, 0x4c, 0x7c, 0xce, 0x87, + 0x69, 0xe8, 0xc8, 0x21, 0x87, 0xb5, 0x30, 0x0e, 0xcb, 0xe2, 0xb2, 0x6b, 0xe4, 0x59, 0x0c, 0x11, + 0x5b, 0x0c, 0x63, 0x85, 0xf8, 0xb9, 0x02, 0xa1, 0x4c, 0x14, 0x98, 0x08, 0xce, 0x1f, 0x6a, 0x5e, + 0x5c, 0x99, 0xa2, 0x07, 0x5b, 0xe4, 0x6e, 0xa5, 0x95, 0xda, 0xa3, 0x03, 0x3d, 0x46, 0x25, 0x03, + 0x9c, 0xff, 0xb2, 0xb7, 0x5d, 0x45, 0xa2, 0xa6, 0xfa, 0x25, 0x5e, 0x9a, 0xd0, 0x85, 0xe4, 0x08, + 0xa7, 0x18, 0xa8, 0xc8, 0xcb, 0x7c, 0x81, 0xfe, 0x98, 0x50, 0xe1, 0xd4, 0x46, 0xcb, 0x96, 0x41, + 0x19, 0xc4, 0x47, 0xbe, 0x78, 0x2b, 0xb3, 0x5f, 0x69, 0xa8, 0xf7, 0xf6, 0xb2, 0x00, 0x06, 0x02, + 0x54, 0x7a, 0x44, 0xad, 0xa4, 0x45, 0x45, 0x30, 0x13, 0x9f, 0x43, 0x0c, 0x89, 0xeb, 0xda, 0x5a, + 0x41, 0x41, 0x8f, 0x17, 0x06, 0xe7, 0xbc, 0xd1, 0x8b, 0x7d, 0xbe, 0xd5, 0x0d, 0x17, 0x15, 0x72, + 0xd5, 0x23, 0xdc, 0x5a, 0x8c, 0x1b, 0xfa, 0x0f, 0x15, 0x4a, 0x97, 0x71, 0x6c, 0x1d, 0xdf, 0xcd, + 0xdc, 0xa9, 0x72, 0x88, 0x2e, 0x0f, 0x42, 0x8e, 0xdc, 0xb7, 0x75, 0xaa, 0xe2, 0x10, 0xfb, 0x46, + 0x04, 0x00, 0xab, 0x41, 0x28, 0x2c, 0xf6, 0x60, 0x09, 0xc0, 0x5a, 0x41, 0xf3, 0x9c, 0xee, 0xf4, + 0x0c, 0xe1, 0x69, 0xd0, 0xb5, 0xde, 0x61, 0xd2, 0x5f, 0x3c, 0x5a, 0x13, 0xeb, 0x5c, 0x8d, 0x1e, + 0xc7, 0x82, 0x50, 0xf5, 0x15, 0x18, 0x0a, 0xa6, 0x17, 0x89, 0x5f, 0x8f, 0xc3, 0x32, 0x74, 0xd2, + 0x69, 0xe6, 0xd0, 0xd9, 0x55, 0x35, 0xbf, 0xf1, 0x3c, 0xc4, 0x0b, 0x33, 0xa8, 0xbd, 0x45, 0x3f, + 0x46, 0x6c, 0xe1, 0x74, 0xab, 0x20, 0x04, 0xf4, 0x1f, 0x96, 0x7f, 0x5e, 0xce, 0x68, 0x74, 0x56, + 0xec, 0xc1, 0x52, 0xad, 0x63, 0x92, 0xb8, 0x5a, 0x4d, 0x77, 0xe0, 0x91, 0xf6, 0x29, 0x19, 0x3e, + 0x07, 0x91, 0x99, 0xcb, 0xb0, 0xa0, 0xe6, 0x59, 0x12, 0xca, 0x5e, 0x7e, 0xd4, 0xb6, 0xb1, 0xcc, + 0x38, 0xfe, 0x87, 0xd5, 0xd4, 0x3f, 0x41, 0x3a, 0xab, 0x91, 0x45, 0xd0, 0xc1, 0x9c, 0xfe, 0xba, + 0xe1, 0xd4, 0x3a, 0x0b, 0xf4, 0x5f, 0xf9, 0x6e, 0x35, 0x1f, 0x54, 0xe2, 0xed, 0x61, 0x63, 0xe5, + 0xe2, 0x94, 0xc7, 0x6b, 0x50, 0x77, 0x0e, 0x1b, 0xec, 0xf7, 0xa2, 0xd6, 0xf8, 0x0a, 0x3d, 0x83, + 0x91, 0x1c, 0x30, 0x9e, 0x5f, 0xf5, 0x21, 0x7e, 0xbd, 0x99, 0xf7, 0x57, 0x7d, 0xae, 0xdc, 0xee, + 0x85, 0xfc, 0xbe, 0xbf, 0x72, 0xcd, 0xa5, 0x06, 0x3f, 0x65, 0x45, 0x3e, 0x14, 0xa8, 0x04, 0xe1, + 0xff, 0x89, 0x66, 0x67, 0xcf, 0x1c, 0xab, 0x31, 0xd7, 0x47, 0x2d, 0xfb, 0x75, 0x41, 0x2c, 0x85, + 0x0a, 0x4b, 0xfa, 0x57, 0xa7, 0x39, 0x72, 0x34, 0xbd, 0x98, 0x8c, 0x52, 0xae, 0x63, 0xaf, 0x14, + 0x3a, 0x4a, 0x7d, 0x08, 0xdc, 0xa5, 0x45, 0x93, 0xf7, 0xc0, 0x03, 0x59, 0x79, 0xe7, 0xe9, 0x69, + 0xb0, 0x8f, 0x1d, 0x93, 0xb5, 0xfe, 0x73, 0x48, 0x53, 0x94, 0x9a, 0xcc, 0x55, 0xd8, 0x30, 0x2c, + 0x0e, 0x97, 0xc4, 0xd6, 0x95, 0x2b, 0x1c, 0xf3, 0xf2, 0xa8, 0x5c, 0x9b, 0xfa, 0xbb, 0xfc, 0x4b, + 0x1c, 0xd7, 0xc8, 0xdd, 0x2f, 0x98, 0x1c, 0xa9, 0xe0, 0xc9, 0x4f, 0x57, 0xe9, 0x39, 0x81, 0x42, + 0x53, 0xc1, 0x9d, 0xe3, 0x36, 0x25, 0xd5, 0x1c, 0x7b, 0x30, 0x42, 0x50, 0x88, 0x51, 0x4c, 0x53, + 0x53, 0xac, 0x48, 0x86, 0x46, 0x2b, 0x00, 0x80, 0x2d, 0x7c, 0xe4, 0x95, 0xfb, 0x69, 0xdc, 0x75, + 0x1e, 0x2f, 0x44, 0x8f, 0xf8, 0x77, 0x8a, 0xde, 0x1e, 0xea, 0x44, 0x7d, 0xd7, 0xba, 0x3a, 0xf1, + 0x39, 0xfc, 0x76, 0x71, 0x69, 0x07, 0x8c, 0x2a, 0x14, 0xa5, 0xcb, 0xa9, 0x15, 0x97, 0x14, 0x5a, + 0x2b, 0x87, 0x05, 0xe0, 0x69, 0xc0, 0xbe, 0x6a, 0xdc, 0x7b, 0x01, 0x31, 0xe3, 0x4e, 0x08, 0x20, + 0x51, 0xb1, 0xf6, 0x5b, 0x97, 0x6f, 0x9c, 0xfd, 0x94, 0x96, 0x1e, 0xf9, 0x31, 0xd4, 0x84, 0x93, + 0xc2, 0xa5, 0xe1, 0xa3, 0x41, 0xda, 0xd2, 0x1e, 0x89, 0x21, 0x4a, 0xb7, 0x87, 0xc9, 0xb0, 0x50, + 0xd0, 0xbf, 0x74, 0x8e, 0xea, 0x71, 0x2d, 0x9c, 0xbf, 0x5c, 0xf1, 0xf7, 0x9e, 0x15, 0xb5, 0x03, + 0x58, 0xbc, 0x11, 0x58, 0x6d, 0xf4, 0xc6, 0xb8, 0x77, 0x90, 0xde, 0xc3, 0x57, 0xc8, 0xbe, 0x27, + 0x6e, 0xb7, 0x07, 0x6c, 0x25, 0xda, 0x5b, 0xfa, 0xc6, 0xc2, 0x6a, 0x69, 0xea, 0x7d, 0x42, 0x90, + 0x33, 0x85, 0x19, 0x84, 0x7c, 0x79, 0x19, 0x3c, 0x09, 0xb8, 0xd4, 0x7e, 0x1f, 0x2c, 0x33, 0x4a, + 0x8a, 0xdc, 0x0d, 0x2d, 0xbd, 0xe2, 0x79, 0xf8, 0x66, 0x22, 0xd1, 0xa7, 0x64, 0xe3, 0x6a, 0x60, + 0xc6, 0xd6, 0xa4, 0x81, 0x6b, 0x4e, 0xa9, 0xce, 0x93, 0xa7, 0xc2, 0xa2, 0x75, 0x29, 0x92, 0xa4, + 0xa2, 0xc7, 0x0d, 0x02, 0x80, 0xfa, 0xef, 0x31, 0x09, 0xc9, 0xc5, 0x7a, 0x8b, 0xdb, 0x78, 0x73, + 0xdc, 0xe7, 0x66, 0x69, 0xa1, 0x73, 0xe5, 0x3b, 0x80, 0x5a, 0xa7, 0x33, 0x3f, 0x18, 0x56, 0x75, + 0x62, 0x2a, 0x23, 0x2a, 0x46, 0x35, 0xc7, 0x1a, 0x25, 0x90, 0x3c, 0xc4, 0x29, 0x71, 0x3a, 0x36, + 0xa0, 0x8c, 0x91, 0x96, 0x4e, 0x81, 0x8b, 0x6a, 0x7d, 0x46, 0xab, 0x0f, 0xf5, 0x5e, 0x6c, 0x88, + 0x70, 0xe6, 0xec, 0xe7, 0xdf, 0xfd, 0xc4, 0xd0, 0x36, 0x3a, 0x5d, 0x6d, 0x94, 0xaf, 0x31, 0xe4, + 0x4b, 0xdc, 0xf4, 0x9f, 0x81, 0x3c, 0x7b, 0x50, 0x67, 0xbb, 0x23, 0x15, 0x22, 0x23, 0xda, 0x12, + 0xf6, 0x16, 0xdd, 0xa8, 0x39, 0x02, 0x69, 0x26, 0x9e, 0x8d, 0x2c, 0xe9, 0x97, 0x14, 0x10, 0x7b, + 0x3b, 0x59, 0x86, 0x6c, 0xa5, 0x4e, 0x59, 0x80, 0x61, 0xd6, 0xec, 0xca, 0xe8, 0xa3, 0x75, 0xa7, + 0x50, 0x3a, 0x57, 0x26, 0xee, 0xe5, 0x97, 0x1c, 0x49, 0x25, 0xb5, 0x0b, 0xa3, 0x49, 0x1f, 0xa4, + 0x57, 0x56, 0xac, 0xc4, 0x32, 0xc4, 0xd0, 0x2c, 0x43, 0x22, 0xbe, 0x89, 0x6a, 0x01, 0x6c, 0x04, + 0x5a, 0xd5, 0x5a, 0x53, 0x49, 0xa2, 0x83, 0x62, 0x29, 0x2f, 0xd6, 0x97, 0x88, 0x74, 0x0c, 0x90, + 0x13, 0x72, 0x61, 0x61, 0x39, 0x9b, 0xd3, 0x43, 0x36, 0xd2, 0x30, 0x06, 0x17, 0xbf, 0xa2, 0x02, + 0x89, 0x70, 0x3a, 0x6e, 0x86, 0x9d, 0xdc, 0x18, 0xec, 0x75, 0x64, 0xd0, 0xe4, 0xba, 0xaf, 0xce, + 0xb4, 0xe1, 0x55, 0x31, 0x84, 0x9f, 0xdd, 0x82, 0x32, 0xd6, 0xa2, 0x7a, 0xa2, 0x38, 0x49, 0x8b, + 0x50, 0x3d, 0x8f, 0xea, 0x53, 0x0c, 0xc6, 0x19, 0xf2, 0xc9, 0x28, 0xcf, 0xd9, 0x07, 0x0f, 0x7f, + 0xd7, 0xae, 0xd5, 0x3d, 0x8c, 0xe3, 0x8c, 0x41, 0x79, 0x71, 0x39, 0x59, 0x8e, 0x3a, 0xa5, 0x42, + 0xa3, 0x3c, 0xf2, 0xc7, 0x66, 0x1f, 0xe7, 0x4c, 0xb8, 0x65, 0x0e, 0x39, 0x48, 0xab, 0xe4, 0x35, + 0x68, 0x56, 0xe1, 0xbd, 0xec, 0xac, 0x9b, 0xfc, 0xad, 0x3b, 0x23, 0xac, 0xc0, 0x65, 0xdd, 0x92, + 0x5e, 0x8c, 0x06, 0xfb, 0x02, 0xd7, 0xd9, 0xc0, 0xb8, 0xdb, 0x59, 0x2e, 0x6b, 0xa1, 0x15, 0x69, + 0xbe, 0x9f, 0x55, 0x7d, 0x31, 0x7f, 0xd2, 0xdb, 0xd7, 0xd6, 0x94, 0x37, 0xb3, 0xf6, 0x65, 0x79, + 0xe0, 0xe4, 0x7f, 0x75, 0x1c, 0x01, 0xd8, 0x66, 0xa2, 0x65, 0x2f, 0x35, 0x84, 0x3b, 0xff, 0x4c, + 0x01, 0x57, 0xc3, 0xce, 0x08, 0x6e, 0x9f, 0x5d, 0xa6, 0x29, 0x4d, 0x2c, 0xc0, 0x2c, 0xbd, 0xcd, + 0xa7, 0x2c, 0x7d, 0x70, 0xcb, 0x4e, 0x31, 0x0f, 0x88, 0x7b, 0x83, 0x87, 0xaa, 0x4b, 0xce, 0xe2, + 0x9e, 0xa3, 0x76, 0x9e, 0x74, 0x61, 0x77, 0xf5, 0x28, 0xfa, 0x1c, 0x06, 0x60, 0x6b, 0xe4, 0xa4, + 0x47, 0x8c, 0x90, 0x2d, 0x6d, 0xa9, 0x20, 0x8d, 0xc1, 0xa1, 0x3d, 0x66, 0x81, 0xa3, 0x9c, 0x8d, + 0x01, 0x70, 0x0a, 0xa1, 0x1b, 0xb7, 0xdf, 0xff, 0x52, 0x0e, 0xfd, 0xc2, 0x36, 0x22, 0x5a, 0xcf, + 0x6e, 0xbb, 0xab, 0x3c, 0x0e, 0x41, 0x55, 0x8b, 0x6b, 0x4b, 0x44, 0x12, 0xb7, 0x9a, 0x8e, 0xed, + 0x63, 0x2e, 0xe4, 0x1b, 0x09, 0xc1, 0x8d, 0x9b, 0x68, 0x0d, 0x9d, 0x8d, 0xad, 0x75, 0x98, 0x8b, + 0x3d, 0xc4, 0xf6, 0xf5, 0x36, 0x08, 0xb9, 0xa8, 0x51, 0x0e, 0x82, 0x8b, 0x47, 0x4f, 0x6d, 0xef, + 0xdc, 0x83, 0xae, 0x7d, 0x92, 0x3e, 0x20, 0x4b, 0x07, 0x83, 0x42, 0xca, 0x24, 0x47, 0x5e, 0x44, + 0x94, 0x30, 0x42, 0xc8, 0x5a, 0x48, 0x42, 0xbc, 0xe2, 0x70, 0xbf, 0x67, 0x71, 0xe2, 0x76, 0xf8, + 0x3f, 0x1f, 0xcb, 0x09, 0xc4, 0x7d, 0x13, 0x28, 0xa9, 0x87, 0x94, 0x01, 0xf0, 0x3f, 0x6c, 0x62, + 0xb4, 0x73, 0x12, 0xbe, 0x6e, 0x9b, 0x48, 0x9b, 0xc2, 0x01, 0x07, 0xda, 0x8b, 0xbe, 0x0b, 0xc1, + 0x08, 0xb6, 0xf2, 0x0e, 0x43, 0x61, 0x1a, 0xa7, 0x80, 0xce, 0x53, 0x74, 0x04, 0x0e, 0xa8, 0xf4, + 0xbd, 0x08, 0x7b, 0x89, 0x04, 0x24, 0x26, 0xb5, 0x8c, 0x55, 0xfc, 0xd1, 0xce, 0xc8, 0xcc, 0xed, + 0x56, 0x37, 0xbe, 0xdc, 0x3f, 0xfb, 0x48, 0x1c, 0x1e, 0x5d, 0x86, 0x43, 0xb7, 0x30, 0x80, 0x55, + 0xa7, 0x8a, 0x94, 0xe0, 0x40, 0x66, 0x24, 0xda, 0x14, 0xd6, 0x1e, 0x0c, 0x96, 0x0c, 0x89, 0x39, + 0x23, 0x2e, 0x54, 0x7b, 0xe8, 0x9f, 0x34, 0xaa, 0x46, 0x98, 0xe6, 0xa3, 0x18, 0x24, 0x79, 0xa3, + 0x6f, 0x03, 0x08, 0x8e, 0xb0, 0xa6, 0xc8, 0xa6, 0xd2, 0xb0, 0xd0, 0x00, 0x38, 0xaa, 0x9b, 0xeb, + 0x58, 0x8d, 0x95, 0x8e, 0x98, 0x6b, 0xd7, 0x5e, 0xf7, 0xb8, 0x4c, 0x56, 0x70, 0x52, 0x82, 0xcf, + 0x83, 0x75, 0x51, 0xd3, 0xd1, 0xf4, 0x71, 0xf9, 0x2e, 0xf2, 0x37, 0x3b, 0xb0, 0xd5, 0x50, 0x15, + 0xeb, 0xb7, 0x8e, 0xe9, 0xe7, 0xf7, 0xda, 0xa9, 0xdc, 0xe9, 0x3a, 0x21, 0x5b, 0xc2, 0x2c, 0x7a, + 0x47, 0xcf, 0x9d, 0x77, 0xd4, 0x4b, 0x1c, 0x06, 0xdc, 0xfb, 0xb7, 0xe6, 0xf2, 0xac, 0xe4, 0x4f, + 0x93, 0x36, 0x4b, 0x7a, 0xd2, 0x44, 0x43, 0x8f, 0xab, 0x2f, 0xdf, 0xa6, 0x1b, 0xe9, 0x7a, 0x48, + 0x9a, 0x33, 0xe4, 0x69, 0xbb, 0x33, 0xba, 0x59, 0xdc, 0x37, 0xd5, 0xe2, 0xca, 0x31, 0x2d, 0x1b, + 0x5c, 0x33, 0x53, 0xfe, 0xe7, 0xea, 0xdc, 0x8e, 0xf7, 0xec, 0x43, 0xe0, 0x5d, 0x6b, 0x03, 0xb5, + 0xd8, 0xc0, 0x57, 0x30, 0x32, 0x75, 0x2c, 0x4b, 0xb0, 0x53, 0xc3, 0x59, 0xbd, 0x81, 0x15, 0x6c, + 0x55, 0x7b, 0x48, 0x88, 0x64, 0x3a, 0xc2, 0xbe, 0x49, 0x77, 0x4b, 0xc0, 0x5c, 0x76, 0x32, 0x72, + 0x23, 0xee, 0xf5, 0x2f, 0xa5, 0x9b, 0x68, 0x0e, 0x16, 0x86, 0x44, 0x23, 0x43, 0x24, 0xb2, 0xd1, + 0xf6, 0x1b, 0x11, 0x28, 0x81, 0xe7, 0x71, 0x91, 0xa8, 0x84, 0x5b, 0xda, 0x2e, 0x8d, 0xb7, 0xd1, + 0x74, 0x1d, 0x92, 0x60, 0xf3, 0xcb, 0x1f, 0xad, 0xef, 0xce, 0x5e, 0xd4, 0xfb, 0x3f, 0x79, 0x71, + 0x51, 0x31, 0x97, 0x45, 0x85, 0x2a, 0x39, 0xe8, 0x38, 0x98, 0xe5, 0x44, 0xfe, 0xb2, 0xf6, 0xb9, + 0xc0, 0x2a, 0xa0, 0x48, 0xc1, 0xd5, 0x7c, 0xd9, 0x84, 0xa6, 0x80, 0x4e, 0x64, 0x57, 0x6f, 0x2c, + 0x43, 0x7c, 0x70, 0x0c, 0x75, 0x16, 0x37, 0x20, 0x1f, 0x63, 0xcd, 0x96, 0xab, 0xaa, 0x19, 0xef, + 0x54, 0x7d, 0x80, 0x49, 0x11, 0xea, 0x31, 0xf2, 0xf9, 0x5b, 0xf3, 0x03, 0x33, 0xf9, 0x45, 0xf4, + 0x1b, 0x95, 0xa9, 0x24, 0x6f, 0x74, 0x41, 0x0d, 0x53, 0x06, 0x53, 0x07, 0xd4, 0x72, 0x85, 0xc1, + 0x90, 0xa7, 0xf9, 0x7e, 0xd8, 0xee, 0x01, 0x1a, 0x11, 0xdf, 0x04, 0xba, 0xc6, 0x18, 0xf5, 0xcc, + 0x11, 0xd0, 0x2b, 0xda, 0x27, 0x47, 0x54, 0x28, 0xa5, 0xf0, 0x8d, 0x3c, 0x84, 0x13, 0xb8, 0x3e, + 0x78, 0x27, 0xf2, 0xd8, 0x9c, 0xae, 0x3c, 0x93, 0x51, 0x07, 0x1c, 0x25, 0xb1, 0x17, 0x27, 0xa3, + 0xb5, 0xdd, 0x39, 0x12, 0xd6, 0x8b, 0xdb, 0x7a, 0x78, 0xf1, 0x58, 0x3e, 0xf9, 0x32, 0x02, 0x2c, + 0x1b, 0x66, 0xa6, 0xdf, 0x01, 0xf5, 0x4e, 0x4b, 0xc4, 0x94, 0x94, 0x0a, 0x0c, 0xf9, 0xf1, 0x8b, + 0x8c, 0x7b, 0x63, 0x3d, 0x12, 0x18, 0xef, 0xcf, 0x44, 0x35, 0x39, 0xbc, 0x7e, 0x95, 0xcb, 0x18, + 0x20, 0xce, 0x79, 0x29, 0x6d, 0x27, 0xe0, 0xb2, 0xdc, 0x82, 0x7e, 0x19, 0x9d, 0x10, 0xbd, 0xa8, + 0x19, 0x87, 0xed, 0x71, 0x79, 0x22, 0xa2, 0x8d, 0xba, 0x32, 0x8c, 0x42, 0x4d, 0xcc, 0x0f, 0xfd, + 0x4a, 0xfb, 0xa8, 0x95, 0xf7, 0x85, 0x4b, 0xdf, 0x54, 0x28, 0xaa, 0x9b, 0x45, 0x3e, 0x18, 0xba, + 0xa9, 0x31, 0xa9, 0x33, 0xd3, 0xc0, 0xd7, 0x3d, 0x3e, 0xe7, 0x32, 0x93, 0x8e, 0x30, 0xe3, 0x54, + 0xec, 0x3a, 0x9d, 0xd3, 0xd9, 0x6e, 0x72, 0xfd, 0x5d, 0xed, 0x13, 0xec, 0x65, 0x27, 0xc2, 0xeb, + 0xd3, 0x32, 0x8c, 0x6b, 0x70, 0x21, 0xf8, 0x6d, 0xfb, 0x36, 0x15, 0xe5, 0x1e, 0x10, 0x0b, 0x58, + 0x30, 0xd0, 0x5d, 0x69, 0xdc, 0x13, 0xe2, 0x26, 0x6b, 0x63, 0x3c, 0x07, 0xfe, 0x84, 0xa2, 0x3a, + 0x29, 0xa5, 0x51, 0xcb, 0xca, 0xd4, 0xb3, 0xf5, 0x36, 0x22, 0xd7, 0x54, 0x7c, 0x49, 0xe7, 0x7b, + 0xb6, 0x93, 0xae, 0xa8, 0x5c, 0x4c, 0x82, 0x3c, 0xb7, 0x5c, 0xb8, 0x52, 0xa2, 0x02, 0x1f, 0x06, + 0x83, 0xdb, 0xaf, 0x66, 0x2b, 0xa9, 0x99, 0x09, 0x0c, 0x07, 0x90, 0xd4, 0xa4, 0x6c, 0x03, 0xd8, + 0xe3, 0xa8, 0x05, 0xb4, 0x93, 0xe4, 0x37, 0x96, 0x0d, 0xb0, 0xee, 0xcb, 0x5b, 0x1f, 0x61, 0x49, + 0x5e, 0xcb, 0x6b, 0xa7, 0xbc, 0xfc, 0x36, 0x79, 0x44, 0x3b, 0xca, 0x8a, 0xe1, 0x65, 0xee, 0xd4, + 0x06, 0xbe, 0xab, 0xb9, 0x14, 0xe1, 0x0f, 0x55, 0xfe, 0x14, 0x69, 0x84, 0x13, 0x67, 0x0b, 0x25, + 0x3a, 0xe4, 0x08, 0x58, 0x85, 0xae, 0x8e, 0xf1, 0xa2, 0x1c, 0x9e, 0x41, 0x7f, 0x33, 0x96, 0x99, + 0x32, 0x8e, 0xd0, 0x40, 0x0f, 0x9a, 0x52, 0xf7, 0xe6, 0x0d, 0x78, 0xfb, 0x5d, 0x28, 0x40, 0xbb, + 0x69, 0x05, 0x92, 0x2e, 0x88, 0x3e, 0xbc, 0xd1, 0xe1, 0x7d, 0xac, 0x99, 0x27, 0x06, 0xc7, 0x29, + 0x77, 0xd0, 0x18, 0x1e, 0x3a, 0xe8, 0x52, 0xd8, 0x10, 0x54, 0x0d, 0x9e, 0xb2, 0x0d, 0x0f, 0x5f, + 0xda, 0xb5, 0x69, 0x6a, 0xcd, 0xf1, 0x24, 0x91, 0xac, 0x08, 0x89, 0x9a, 0x70, 0x0d, 0xc4, 0xc4, + 0xc6, 0x35, 0x3d, 0xb2, 0x0d, 0x7b, 0xe0, 0x1d, 0xd4, 0xec, 0x3b, 0xf1, 0x80, 0x55, 0x93, 0xba, + 0xb4, 0x7c, 0xe5, 0x42, 0xd3, 0x8b, 0x07, 0x04, 0xcb, 0x72, 0x23, 0xc9, 0xb4, 0x91, 0xb2, 0xea, + 0x8e, 0x0d, 0x35, 0x48, 0xc7, 0xfb, 0xe6, 0xde, 0x7a, 0x66, 0x0d, 0xec, 0x01, 0x78, 0x98, 0x18, + 0xda, 0x79, 0xb0, 0x35, 0xc5, 0x6f, 0x71, 0x16, 0x3c, 0x08, 0x4f, 0x9e, 0x77, 0x43, 0x3f, 0x02, + 0x40, 0x17, 0xed, 0x2b, 0x8d, 0xdc, 0xb7, 0xef, 0x5d, 0x84, 0x92, 0x6c, 0xc2, 0xdd, 0xff, 0x9f, + 0xbc, 0x60, 0x8c, 0xf4, 0xce, 0x82, 0xb1, 0xd4, 0xbb, 0x2e, 0xd1, 0x68, 0xb5, 0xc4, 0xda, 0x67, + 0x49, 0x36, 0xf8, 0xcf, 0x84, 0xf3, 0x3d, 0x71, 0x42, 0x52, 0x58, 0x27, 0x5e, 0x71, 0xe5, 0x1c, + 0x51, 0x2a, 0x3a, 0x2c, 0x53, 0x55, 0xc2, 0x35, 0x62, 0x0b, 0x75, 0x36, 0xaa, 0xad, 0xd9, 0x26, + 0x02, 0x7f, 0x9c, 0xe3, 0xf8, 0xc6, 0x31, 0x9b, 0x80, 0xaa, 0x88, 0x8e, 0xeb, 0x7c, 0xc2, 0x43, + 0x3a, 0x31, 0x4c, 0x37, 0x32, 0x5e, 0x6d, 0x3c, 0x16, 0x28, 0xbe, 0xe1, 0x24, 0xd3, 0x63, 0x51, + 0x57, 0x17, 0x82, 0x11, 0xb2, 0x1c, 0xbd, 0x32, 0x60, 0x86, 0x8a, 0x97, 0xf6, 0xd8, 0x34, 0x17, + 0xd6, 0x6a, 0x8b, 0xa2, 0x77, 0x26, 0x45, 0xc1, 0xc0, 0x92, 0xea, 0x23, 0x3c, 0x84, 0x62, 0x2d, + 0x31, 0xbd, 0x37, 0xb4, 0x92, 0x06, 0xf7, 0x97, 0x46, 0x92, 0x07, 0xfc, 0xae, 0xaf, 0x60, 0x27, + 0x32, 0xd0, 0xcb, 0x77, 0x93, 0x58, 0xc5, 0xf5, 0xc5, 0x7e, 0xe3, 0x1e, 0x8a, 0x89, 0x5a, 0xa8, + 0x2f, 0x89, 0xe9, 0xd0, 0x04, 0x05, 0xa5, 0xe9, 0x94, 0xd4, 0xfb, 0x05, 0x07, 0x2d, 0xab, 0xea, + 0x31, 0x53, 0x12, 0x4a, 0xe1, 0x72, 0x7f, 0xa3, 0x65, 0xe6, 0x9b, 0xa5, 0x6a, 0xdb, 0x7d, 0x1b, + 0x26, 0x39, 0xa3, 0xc3, 0xa0, 0x68, 0xfb, 0xa1, 0x89, 0xe6, 0x93, 0x5a, 0x97, 0x30, 0x6f, 0x42, + 0xbe, 0x0c, 0x44, 0x73, 0x74, 0x07, 0x43, 0x45, 0xb4, 0xd9, 0xeb, 0x23, 0xe3, 0x1e, 0xa0, 0xbb, + 0xfc, 0x93, 0xbf, 0x95, 0x2c, 0xa3, 0xde, 0x01, 0xe6, 0x58, 0x9c, 0xf2, 0xac, 0xe2, 0x3d, 0x43, + 0xc5, 0x45, 0x5d, 0x47, 0xdf, 0x62, 0x63, 0xd1, 0x30, 0x09, 0x16, 0x8f, 0xb3, 0xe4, 0x2a, 0xf9, + 0x31, 0xe6, 0x63, 0xe5, 0xa8, 0x88, 0x75, 0xe8, 0x23, 0x27, 0xf3, 0xb5, 0x64, 0x57, 0x65, 0xf2, + 0xc0, 0xaa, 0x8c, 0x87, 0x33, 0x03, 0x67, 0xb1, 0xfb, 0xac, 0x1f, 0xdd, 0x41, 0xf1, 0x07, 0x01, + 0x44, 0x08, 0x09, 0x38, 0x8f, 0x6c, 0xaf, 0x1b, 0x95, 0x08, 0xfb, 0x1a, 0xa5, 0x1b, 0x05, 0x35, + 0x0c, 0xa9, 0xa6, 0x2a, 0x9b, 0xd3, 0x87, 0x3f, 0x16, 0xf6, 0x88, 0x22, 0xf4, 0x6f, 0x5d, 0xb8, + 0xfd, 0x63, 0x91, 0x25, 0x7a, 0x97, 0xc7, 0xe4, 0x0f, 0xde, 0xa7, 0x08, 0xe7, 0x9e, 0xda, 0xef, + 0xd1, 0x00, 0x99, 0x2b, 0xe0, 0x76, 0xfc, 0x1e, 0xe4, 0x2a, 0xa8, 0xba, 0x76, 0x9d, 0xf0, 0xe9, + 0x20, 0xa4, 0x98, 0x0b, 0x86, 0x96, 0xa8, 0xa7, 0x72, 0x84, 0x7a, 0xe0, 0xd6, 0xa5, 0xaf, 0x57, + 0xaf, 0xc8, 0x51, 0x12, 0xee, 0x8c, 0xca, 0x20, 0x3a, 0x82, 0x5b, 0x7c, 0xf3, 0x43, 0x90, 0x8a, + 0x73, 0xe5, 0xf4, 0x80, 0x8e, 0x91, 0x3a, 0x88, 0xdc, 0x92, 0xfd, 0x13, 0x07, 0xff, 0xc4, 0x35, + 0xa7, 0x7e, 0x4e, 0x03, 0xb3, 0x7a, 0x69, 0xd2, 0x44, 0xee, 0x1c, 0x38, 0xc1, 0xc4, 0xec, 0x25, + 0x0f, 0x9b, 0x09, 0xd2, 0x69, 0x24, 0xdb, 0x75, 0x53, 0x8e, 0x79, 0x64, 0xd1, 0x18, 0xa0, 0x51, + 0x50, 0x4f, 0x8b, 0xf2, 0xa5, 0x63, 0x71, 0x19, 0xd6, 0x98, 0x9e, 0x81, 0xe4, 0x9b, 0x52, 0xdb, + 0x9e, 0x17, 0x87, 0x3c, 0x26, 0xc1, 0xc0, 0xbf, 0x37, 0x2d, 0x1b, 0x06, 0x3d, 0xb5, 0xb7, 0x26, + 0x7e, 0x00, 0xf9, 0xdc, 0x66, 0x0d, 0xb3, 0xf9, 0x8f, 0x87, 0x0c, 0x70, 0xec, 0x2d, 0xe1, 0xaa, + 0x82, 0x06, 0x0c, 0xd4, 0x88, 0x9f, 0xd1, 0x57, 0x3d, 0x34, 0x08, 0x31, 0x0f, 0x14, 0xc8, 0x55, + 0xff, 0x20, 0xb9, 0xf0, 0xaa, 0x48, 0x1f, 0x8c, 0x2d, 0x16, 0xfe, 0x03, 0x77, 0x5c, 0x39, 0x5d, + 0xf5, 0x3d, 0x25, 0xac, 0x09, 0x4f, 0x97, 0x4d, 0x2c, 0x30, 0x5c, 0x01, 0x19, 0xb9, 0x88, 0x65, + 0x2c, 0x28, 0x04, 0xc4, 0x1b, 0xbf, 0xe8, 0x28, 0xd5, 0x2a, 0xc3, 0x31, 0x6e, 0xc2, 0xf4, 0xa8, + 0x56, 0x23, 0x10, 0x0c, 0x96, 0xa1, 0x17, 0xe1, 0xe2, 0x93, 0xbf, 0x48, 0x84, 0xbb, 0xe9, 0x43, + 0x58, 0x56, 0x0d, 0x31, 0xff, 0x64, 0x8d, 0x73, 0x39, 0xbb, 0xc1, 0x53, 0x61, 0xb5, 0xee, 0x70, + 0x9a, 0x0f, 0xba, 0xc5, 0xfd, 0x4f, 0x6f, 0x85, 0x56, 0xd6, 0x38, 0x6e, 0xff, 0xeb, 0xd2, 0x41, + 0x15, 0x5f, 0x02, 0xde, 0xa5, 0x7b, 0x4f, 0x56, 0xad, 0x17, 0x07, 0xe0, 0xcb, 0x31, 0x96, 0x67, + 0x3d, 0xc0, 0x44, 0x81, 0x7b, 0xf5, 0x50, 0xa8, 0x8d, 0xfc, 0x82, 0xe4, 0xb0, 0x4c, 0x90, 0x9a, + 0x75, 0x3e, 0xed, 0xd4, 0x43, 0x7e, 0xca, 0xc3, 0xe7, 0x4d, 0x32, 0xef, 0x44, 0x8b, 0x5b, 0x5b, + 0xa7, 0x36, 0xda, 0xe5, 0xc2, 0x74, 0x25, 0xa9, 0x41, 0xd3, 0x9e, 0xac, 0x03, 0x90, 0x6f, 0xf6, + 0x84, 0xd9, 0x80, 0xa7, 0x75, 0x4b, 0x61, 0x91, 0xbc, 0x26, 0x84, 0xd0, 0xe1, 0x72, 0x68, 0x20, + 0x78, 0xa0, 0x21, 0x8b, 0x92, 0x92, 0x67, 0x43, 0x93, 0x5b, 0xa3, 0x1d, 0x64, 0x71, 0x66, 0xca, + 0x9b, 0x85, 0x62, 0xd4, 0x4f, 0x42, 0x66, 0x75, 0x01, 0xb8, 0xd0, 0x7f, 0x64, 0x42, 0x96, 0x9d, + 0x63, 0x04, 0x2d, 0x7a, 0x69, 0x2f, 0x1b, 0x17, 0x99, 0xfb, 0x3b, 0x24, 0xf9, 0xec, 0x64, 0x5b, + 0x66, 0x54, 0xd8, 0xbb, 0x97, 0xf3, 0x37, 0x5c, 0x9a, 0x2c, 0xe7, 0x72, 0xa4, 0x93, 0x5c, 0xbb, + 0x11, 0x82, 0x06, 0xe2, 0xdf, 0x9c, 0x02, 0x9d, 0xea, 0x2f, 0x8b, 0xc7, 0x4e, 0x15, 0xbb, 0x15, + 0xd9, 0x14, 0x51, 0x49, 0x69, 0xdf, 0x03, 0xdd, 0x09, 0xca, 0x0b, 0x67, 0x39, 0x57, 0xa4, 0x0b, + 0xde, 0xba, 0x76, 0xf9, 0xac, 0x72, 0x93, 0x59, 0xd7, 0x41, 0xeb, 0x98, 0xbe, 0x82, 0x27, 0x14, + 0x11, 0xae, 0x29, 0x46, 0x02, 0xb1, 0x4f, 0xa7, 0x3c, 0x6f, 0x4e, 0xd9, 0xcc, 0x2d, 0x53, 0xa8, + 0x98, 0x5c, 0xde, 0xd1, 0x09, 0x76, 0x87, 0xb9, 0xf6, 0xa0, 0x55, 0x78, 0xb0, 0xf0, 0x5d, 0x0c, + 0x88, 0x63, 0xa1, 0x6d, 0x66, 0xda, 0x75, 0xbe, 0x46, 0x24, 0x7c, 0x2c, 0x4a, 0x41, 0x8f, 0xbb, + 0x2f, 0xdd, 0xe1, 0x98, 0xc4, 0x27, 0xea, 0xeb, 0x4b, 0x54, 0x28, 0xc6, 0x6d, 0x9a, 0xa6, 0xdd, + 0xec, 0x3f, 0xa6, 0xe7, 0xb5, 0xf6, 0xa1, 0xf7, 0xea, 0x0f, 0xf3, 0xff, 0x50, 0x2b, 0x72, 0xda, + 0x19, 0x53, 0x01, 0xa1, 0x72, 0x97, 0x34, 0x38, 0x69, 0xae, 0x59, 0x12, 0xfe, 0x6f, 0xe1, 0xd4, + 0xa2, 0x5f, 0x04, 0x70, 0xaf, 0xe0, 0x12, 0xfd, 0xc8, 0x64, 0xae, 0xcd, 0x28, 0xbe, 0xf2, 0x37, + 0x13, 0xfc, 0xe1, 0xb9, 0x7e, 0xda, 0x00, 0xf4, 0x07, 0xdc, 0x6f, 0x4d, 0xd4, 0xa2, 0x9a, 0xc6, + 0xdd, 0xa9, 0xe5, 0xe6, 0xc9, 0x4d, 0x84, 0xa8, 0x88, 0xbe, 0xc0, 0x2c, 0xe0, 0x07, 0x1a, 0xe2, + 0xba, 0xdb, 0xf5, 0x90, 0x07, 0x6e, 0xe2, 0x51, 0xa4, 0x11, 0x58, 0xaf, 0x88, 0x5e, 0xbf, 0x72, + 0x2a, 0x5d, 0xa2, 0x8d, 0x41, 0xd9, 0xed, 0xae, 0x69, 0xcc, 0xee, 0x8f, 0x6e, 0x66, 0xa8, 0x49, + 0x2d, 0x5c, 0x0f, 0xbf, 0x77, 0x05, 0x24, 0x96, 0x93, 0xdf, 0xcd, 0xbb, 0x2c, 0x8b, 0x6d, 0x9e, + 0x09, 0xa0, 0xbe, 0xf4, 0x5f, 0x11, 0x6d, 0x89, 0xcd, 0x41, 0x25, 0x60, 0x22, 0x7c, 0x86, 0x83, + 0x4a, 0x19, 0x60, 0xd9, 0x92, 0xdc, 0x38, 0x06, 0x41, 0xc3, 0x3a, 0x82, 0x5a, 0x79, 0x66, 0x2c, + 0xa1, 0x4b, 0xf2, 0x48, 0xfe, 0x8e, 0xc0, 0x5a, 0x2b, 0xce, 0x18, 0x3e, 0x80, 0xda, 0x80, 0xb8, + 0x69, 0xcf, 0x1d, 0xe9, 0x2f, 0x01, 0xad, 0xe0, 0xed, 0xc9, 0x8c, 0xe9, 0xd4, 0xe7, 0x83, 0xfd, + 0x86, 0xcf, 0x2c, 0x8d, 0xcf, 0xb0, 0x7e, 0x76, 0xd4, 0x4e, 0x22, 0x56, 0xd6, 0xb1, 0xaf, 0xf0, + 0x9e, 0xd1, 0xb0, 0x00, 0x6a, 0x93, 0x86, 0x98, 0x5a, 0x1b, 0x3c, 0x7d, 0xc1, 0x86, 0x38, 0x55, + 0x81, 0x25, 0x71, 0x6f, 0x24, 0x77, 0x31, 0x4c, 0x0d, 0xdf, 0xd2, 0x3c, 0x4b, 0x8d, 0xf8, 0x10, + 0xc7, 0xd9, 0x6d, 0x9a, 0x8d, 0x16, 0x9b, 0x74, 0x86, 0x1d, 0xc8, 0xd0, 0x10, 0x7f, 0x2b, 0x6e, + 0xa4, 0x2c, 0xc6, 0xb0, 0x4f, 0xa2, 0x2e, 0xdc, 0x59, 0x09, 0x70, 0x90, 0x98, 0xe2, 0xd6, 0x11, + 0x43, 0x35, 0x5f, 0xd2, 0x72, 0xe9, 0x7d, 0x9a, 0x23, 0x3c, 0x68, 0x5f, 0xe1, 0x13, 0xfb, 0xcf, + 0x77, 0xea, 0x99, 0xbe, 0xbb, 0x67, 0x32, 0x3e, 0x06, 0xe4, 0x35, 0x10, 0x67, 0x3a, 0x85, 0xb5, + 0x1c, 0x20, 0xc2, 0x25, 0x7b, 0x36, 0x18, 0x32, 0x6b, 0xbd, 0xdf, 0x76, 0x74, 0x9b, 0x70, 0xa0, + 0xf9, 0x77, 0x85, 0xbb, 0x11, 0xc1, 0x2c, 0x36, 0x52, 0x73, 0xc2, 0xd4, 0x6e, 0xb0, 0x43, 0x91, + 0x2f, 0x3c, 0xcc, 0x7c, 0x62, 0x9a, 0xc8, 0x28, 0x82, 0x8b, 0x7c, 0x08, 0x25, 0xbc, 0x98, 0x88, + 0xa8, 0x3e, 0xcb, 0x0b, 0x5f, 0xc3, 0xdb, 0x0a, 0xfc, 0x17, 0xf2, 0xb2, 0xff, 0x34, 0xc7, 0xf6, + 0x69, 0x38, 0x15, 0xc6, 0xb2, 0x99, 0x67, 0xbd, 0x02, 0xbd, 0x9d, 0xc3, 0x97, 0xe1, 0x28, 0x6d, + 0x5b, 0x37, 0xcb, 0xde, 0xe0, 0x82, 0x5d, 0x6a, 0x0f, 0x44, 0x5c, 0x28, 0x36, 0xc6, 0xc9, 0x8c, + 0xd3, 0xbf, 0xe9, 0x22, 0xdc, 0x66, 0x8b, 0xea, 0x8e, 0x26, 0x9b, 0xac, 0x73, 0xf0, 0x65, 0x81, + 0x77, 0x2f, 0xb2, 0xc9, 0xd9, 0xc7, 0x0d, 0x00, 0x5f, 0x06, 0x48, 0x77, 0x53, 0x6a, 0x30, 0x8e, + 0x88, 0x83, 0xb7, 0x36, 0xae, 0x9d, 0x06, 0x70, 0xd6, 0xa2, 0x35, 0xf7, 0x7c, 0x57, 0x03, 0xc4, + 0xc9, 0x73, 0xc4, 0xeb, 0x76, 0xc9, 0xd1, 0x68, 0xf1, 0xe3, 0xe4, 0x03, 0xb3, 0xdc, 0x85, 0xa7, + 0x31, 0x5a, 0xf0, 0xdc, 0x30, 0x7e, 0x2b, 0x54, 0x1b, 0x5a, 0xe5, 0x53, 0x90, 0xd8, 0x1c, 0xad, + 0x52, 0x31, 0xd5, 0x4d, 0xfc, 0x20, 0x88, 0xbf, 0x2f, 0xd1, 0x37, 0x9a, 0x1a, 0x5f, 0x46, 0x24, + 0x50, 0xc8, 0xfa, 0x0c, 0xff, 0x0c, 0x19, 0x2c, 0x65, 0xe9, 0x6a, 0xfd, 0xe5, 0xa8, 0x28, 0x56, + 0x88, 0x1e, 0x60, 0xa2, 0xcf, 0x38, 0xfd, 0xb9, 0xfa, 0x68, 0xa7, 0x16, 0xfd, 0xa4, 0x60, 0x92, + 0xd3, 0x64, 0x33, 0xe9, 0xb6, 0xaf, 0x0e, 0xb1, 0x22, 0xa4, 0x7e, 0x0e, 0x7a, 0x4a, 0xa3, 0x1d, + 0x97, 0x9b, 0x18, 0x98, 0x03, 0x99, 0x4b, 0xbf, 0xeb, 0x71, 0xfd, 0x5d, 0x1a, 0x71, 0xd7, 0x6b, + 0xf2, 0xe7, 0x23, 0x96, 0x64, 0x18, 0x81, 0x34, 0xf3, 0x2c, 0x6c, 0xc7, 0xe9, 0x9f, 0x06, 0xff, + 0x7d, 0x0c, 0x16, 0x59, 0x86, 0x9d, 0xb3, 0x29, 0x7c, 0x7a, 0xe1, 0x7b, 0xf8, 0xc3, 0x97, 0x4d, + 0x64, 0xaf, 0x8f, 0x55, 0x84, 0xc1, 0xce, 0xcb, 0xaa, 0xd2, 0x6c, 0x67, 0x27, 0x0c, 0x6d, 0x66, + 0xf3, 0x94, 0x55, 0xef, 0xbe, 0x7f, 0x73, 0x4a, 0x1f, 0x3d, 0x10, 0x4c, 0x56, 0x41, 0x0e, 0xc7, + 0xb4, 0x76, 0x62, 0x84, 0xec, 0x0b, 0x84, 0x70, 0x32, 0x00, 0x18, 0xde, 0xb5, 0x64, 0xaf, 0x11, + 0x91, 0x5b, 0x58, 0xa0, 0x1e, 0x82, 0x8a, 0x3d, 0x85, 0x80, 0x12, 0xbb, 0x99, 0x51, 0xb1, 0x5c, + 0xad, 0xf0, 0xa6, 0x4d, 0xc4, 0xc9, 0x6c, 0xb2, 0x28, 0x99, 0xc0, 0xb4, 0xbd, 0x6c, 0x50, 0x81, + 0xe7, 0x3e, 0x37, 0xef, 0x80, 0xa8, 0xd4, 0x57, 0xa5, 0x7c, 0xf1, 0xaf, 0xbe, 0x55, 0xc9, 0x50, + 0x5b, 0xc6, 0xab, 0x44, 0x13, 0xde, 0xd5, 0xec, 0x6c, 0x2b, 0x4f, 0xb5, 0x48, 0x93, 0x4f, 0x8e, + 0x73, 0x72, 0x1a, 0xca, 0x6f, 0x92, 0xd8, 0xdd, 0xdb, 0x9f, 0x39, 0x9d, 0x76, 0x94, 0xbb, 0x74, + 0xbc, 0xf6, 0x0e, 0x0d, 0x37, 0x74, 0x35, 0x66, 0x76, 0xa1, 0x2f, 0x62, 0x7c, 0x33, 0x11, 0xe5, + 0x24, 0x09, 0xf6, 0xab, 0xd5, 0x5b, 0x00, 0x46, 0x83, 0x6b, 0x0d, 0x48, 0x96, 0x56, 0xc9, 0xd4, + 0x58, 0xab, 0x88, 0xba, 0x3a, 0xd5, 0x2a, 0xfd, 0x1b, 0xe6, 0xde, 0x19, 0x55, 0xfd, 0x74, 0x54, + 0x41, 0x6f, 0xc6, 0x0c, 0x15, 0x2f, 0x17, 0x1e, 0x3c, 0x74, 0x14, 0x1d, 0xd2, 0x63, 0x24, 0x7e, + 0x12, 0x8e, 0xd1, 0x55, 0x56, 0x04, 0x8c, 0xdb, 0x8c, 0xbd, 0x49, 0x02, 0xf5, 0x00, 0x26, 0xc5, + 0x52, 0x6f, 0x69, 0x70, 0x47, 0xd9, 0x43, 0x5e, 0x2c, 0xf2, 0x85, 0x6d, 0xf8, 0x1f, 0xb9, 0x57, + 0x4a, 0x1a, 0x69, 0xd6, 0x34, 0x47, 0xae, 0x3b, 0x77, 0xe3, 0x57, 0xa7, 0xe3, 0x5e, 0x06, 0x40, + 0x12, 0x88, 0x94, 0xa5, 0x75, 0x8e, 0xb3, 0xde, 0x21, 0x2f, 0xef, 0xfb, 0x47, 0x73, 0xb9, 0x0f, + 0x81, 0xfa, 0x1a, 0x5a, 0xfc, 0x7a, 0xe5, 0x21, 0x3f, 0xaa, 0x60, 0x73, 0x96, 0x6b, 0xa6, 0x08, + 0x0d, 0xce, 0xfd, 0x40, 0x74, 0x84, 0x4e, 0x52, 0x12, 0x11, 0xd1, 0xee, 0xf9, 0x0a, 0xa4, 0x5e, + 0x95, 0x5e, 0x1b, 0xee, 0x2b, 0xb4, 0xbe, 0xa1, 0xe5, 0x3b, 0xe1, 0x5d, 0x32, 0xbb, 0x6c, 0x1d, + 0xc1, 0xdd, 0x44, 0x6b, 0x98, 0x0f, 0xd7, 0x60, 0xdc, 0xce, 0x3f, 0xbf, 0x4a, 0x6d, 0x12, 0xea, + 0x87, 0x98, 0xcc, 0xb8, 0x73, 0x6f, 0x15, 0xe6, 0x2d, 0x3c, 0x23, 0x58, 0x20, 0x02, 0x13, 0xa9, + 0xa1, 0x01, 0xb7, 0xcc, 0xf1, 0xc5, 0x53, 0x62, 0x76, 0x5d, 0xbb, 0x8b, 0x2a, 0xf1, 0xb7, 0xde, + 0x96, 0xd3, 0x63, 0x15, 0xee, 0xe9, 0x0f, 0xfe, 0xdf, 0x2b, 0xb6, 0xc9, 0x81, 0x30, 0x0c, 0x83, + 0x59, 0x10, 0x45, 0x17, 0x63, 0xd1, 0x19, 0xd9, 0xd2, 0x13, 0xa1, 0xd9, 0x3a, 0x61, 0x94, 0xb0, + 0x1c, 0x15, 0x3a, 0xbe, 0xb3, 0x57, 0x14, 0xb3, 0x2b, 0x29, 0xd6, 0x85, 0x73, 0x43, 0x17, 0x36, + 0x83, 0xf0, 0x51, 0xbb, 0x95, 0xae, 0x9a, 0xaa, 0x10, 0xb5, 0x43, 0x14, 0x33, 0xed, 0x51, 0x08, + 0xd2, 0x6c, 0x3b, 0x07, 0xca, 0xaa, 0xa0, 0x37, 0xbe, 0xee, 0x08, 0xee, 0x00, 0xf3, 0xb0, 0x24, + 0xda, 0xb0, 0x70, 0xb6, 0xb3, 0x83, 0x7e, 0xee, 0x11, 0xc6, 0x9b, 0x54, 0xb5, 0x99, 0xb0, 0xc9, + 0x4e, 0x6e, 0x59, 0xf1, 0xa6, 0x34, 0x6b, 0x3b, 0x42, 0x5f, 0x37, 0x12, 0x25, 0x7b, 0x7d, 0x57, + 0x01, 0x80, 0xa5, 0x32, 0x19, 0x78, 0x9c, 0x1c, 0xa9, 0xdf, 0xe7, 0xaa, 0xe1, 0xdd, 0xeb, 0x51, + 0x4a, 0xc7, 0x1f, 0x5d, 0x2f, 0x20, 0x64, 0x59, 0x61, 0x05, 0x8d, 0x79, 0xe0, 0x04, 0xcf, 0xf0, + 0x77, 0x6d, 0x94, 0xae, 0x98, 0x0f, 0xbc, 0x9a, 0x88, 0x9a, 0xf0, 0x88, 0x0d, 0x38, 0xae, 0x5e, + 0x0b, 0xa1, 0xe5, 0x15, 0x36, 0x1f, 0xd2, 0xd4, 0x1e, 0xa4, 0x07, 0x80, 0xf3, 0xae, 0x3a, 0x86, + 0xb6, 0x7b, 0x38, 0x23, 0xf1, 0x17, 0x79, 0x4d, 0x82, 0xc9, 0x8f, 0xb0, 0x6e, 0x30, 0x2a, 0xa3, + 0x6b, 0x0a, 0xa5, 0xb4, 0x3b, 0xbe, 0x02, 0xe9, 0x63, 0x73, 0x9e, 0xee, 0xef, 0x2d, 0x93, 0x61, + 0xf5, 0x11, 0x30, 0x9b, 0xd9, 0x78, 0x14, 0x6c, 0xe3, 0xe5, 0x62, 0x25, 0x69, 0xfd, 0xbd, 0xbd, + 0x94, 0x18, 0xe4, 0x79, 0x7a, 0x5a, 0x3e, 0xd6, 0x8b, 0xb3, 0xe0, 0x03, 0x32, 0x69, 0x16, 0x6b, + 0x35, 0xc0, 0xf1, 0x7e, 0xde, 0x2f, 0x53, 0x19, 0x7d, 0x02, 0x94, 0xd6, 0xe4, 0x1f, 0xc4, 0xfb, + 0x75, 0x6d, 0x7b, 0x6b, 0xd8, 0xa5, 0x51, 0x05, 0x7a, 0x73, 0x3c, 0x0d, 0x22, 0x72, 0xc6, 0x92, + 0x7d, 0x6b, 0xca, 0xd2, 0x4d, 0x04, 0x8c, 0x36, 0x1a, 0x8d, 0x5e, 0x40, 0x6c, 0x47, 0xc3, 0x07, + 0x83, 0xe9, 0x5d, 0x34, 0x7a, 0xc9, 0x80, 0xed, 0xfb, 0x7c, 0xd4, 0x80, 0xeb, 0xa4, 0x14, 0xdb, + 0xcc, 0x10, 0x7d, 0x31, 0xb6, 0x5e, 0xb7, 0xcc, 0xb4, 0xf3, 0xa5, 0x9e, 0x69, 0x09, 0x8f, 0x8e, + 0xce, 0x28, 0xf7, 0xbc, 0x04, 0x1d, 0x9b, 0x7c, 0x59, 0x2b, 0x05, 0x38, 0xfd, 0x4e, 0x38, 0xe7, + 0x45, 0x5e, 0x01, 0x04, 0x90, 0x5b, 0x38, 0xa8, 0x8f, 0x6b, 0x74, 0x88, 0xfb, 0xe8, 0x96, 0x0c, + 0x94, 0x98, 0x47, 0x1a, 0x48, 0xfa, 0xbe, 0xbe, 0x47, 0xa6, 0x31, 0x62, 0x15, 0x66, 0x57, 0x28, + 0x58, 0x79, 0x8c, 0xee, 0xf0, 0xb6, 0x84, 0x25, 0x93, 0xa0, 0x95, 0x90, 0x0d, 0x68, 0xba, 0x35, + 0x7c, 0x4b, 0x94, 0x55, 0x4d, 0x29, 0x5a, 0x10, 0x1f, 0xc0, 0xe2, 0x8e, 0x0e, 0x8f, 0xcb, 0xe4, + 0x15, 0x96, 0x3d, 0xc9, 0x17, 0xb8, 0xab, 0x3c, 0xaa, 0xc8, 0x86, 0x63, 0x0c, 0x3d, 0x1f, 0xf1, + 0xc8, 0x1d, 0x15, 0x30, 0xbd, 0xce, 0x93, 0x4a, 0x8a, 0x99, 0x19, 0x71, 0xb6, 0x42, 0xa1, 0xe1, + 0x4c, 0xfe, 0xf1, 0xa1, 0xac, 0x82, 0xc5, 0x25, 0x06, 0xd1, 0x2f, 0x2e, 0x69, 0xa8, 0xaf, 0x3e, + 0x71, 0x72, 0x7a, 0x97, 0x68, 0xcd, 0xef, 0x22, 0x57, 0x2c, 0xb5, 0xd9, 0xfb, 0x43, 0xde, 0xdc, + 0xac, 0xdd, 0x99, 0x1b, 0xb8, 0x6e, 0xfd, 0xe5, 0x24, 0x58, 0xe2, 0xca, 0x4a, 0xc0, 0xdf, 0x9a, + 0xbd, 0x21, 0x18, 0xe9, 0xf2, 0x24, 0xba, 0xd8, 0x54, 0xd1, 0x68, 0x15, 0x9a, 0xad, 0x70, 0x20, + 0x7b, 0xac, 0x86, 0xcf, 0x92, 0x38, 0xca, 0x49, 0xba, 0xb4, 0xc2, 0x48, 0x57, 0xca, 0xe4, 0xf3, + 0xcb, 0xda, 0x0c, 0xf2, 0xa9, 0x53, 0x4a, 0x24, 0xa2, 0xe2, 0xe6, 0x90, 0xeb, 0x05, 0x81, 0x88, + 0x13, 0xb7, 0xb5, 0x6a, 0x07, 0x68, 0xcd, 0x3f, 0xf9, 0xa0, 0x8d, 0x46, 0x0a, 0x89, 0x28, 0xd7, + 0xb7, 0xc8, 0xaa, 0xd4, 0x55, 0x68, 0x35, 0x3d, 0x71, 0xd8, 0x91, 0xdd, 0xa3, 0x3e, 0x80, 0x6c, + 0x87, 0xaa, 0x86, 0x40, 0x4b, 0xd4, 0xe2, 0x05, 0xad, 0xb2, 0xa1, 0x4b, 0x37, 0xe9, 0xc1, 0x1e, + 0x0d, 0x89, 0xce, 0x00, 0x17, 0x3b, 0x8f, 0xb3, 0x67, 0x3d, 0xf6, 0xa9, 0x18, 0x7c, 0xce, 0x00, + 0x25, 0x2b, 0xcd, 0xfc, 0x5e, 0x18, 0x69, 0x10, 0x0d, 0x4d, 0x3f, 0x1f, 0xa6, 0xc9, 0x02, 0xae, + 0xb6, 0xcc, 0x6e, 0x96, 0x7a, 0xb0, 0xb8, 0xba, 0x2c, 0xd3, 0x08, 0x3e, 0xb4, 0x3c, 0x5d, 0xde, + 0xed, 0x9e, 0x42, 0x63, 0x28, 0x49, 0xa3, 0x8f, 0xc0, 0xd7, 0xd8, 0x5d, 0xf4, 0x7c, 0xc4, 0x95, + 0xc7, 0xcd, 0x5c, 0x24, 0xd4, 0x50, 0x70, 0x11, 0x40, 0x06, 0x60, 0x2b, 0xa9, 0x3b, 0x4a, 0x9e, + 0xa6, 0xa8, 0xcf, 0x4e, 0x93, 0x3d, 0xf5, 0xe0, 0xe2, 0x07, 0xa7, 0xc3, 0x93, 0x74, 0x76, 0xaf, + 0x38, 0x84, 0x86, 0x75, 0x5e, 0x2c, 0xba, 0x28, 0x58, 0x4f, 0xc5, 0xaa, 0x76, 0xf4, 0x3a, 0x1f, + 0x1a, 0x76, 0xcb, 0xf1, 0x09, 0x06, 0x89, 0x2f, 0x8b, 0xea, 0xfd, 0x32, 0x7b, 0x1c, 0x2c, 0x16, + 0x18, 0x02, 0xd6, 0x2c, 0xe1, 0xb1, 0xc4, 0x73, 0x10, 0xac, 0x6f, 0xce, 0xee, 0x3d, 0xa1, 0xe8, + 0x5e, 0x32, 0x9f, 0x94, 0x34, 0xbb, 0x27, 0x8a, 0x94, 0x16, 0x28, 0x08, 0x25, 0x32, 0x8a, 0x40, + 0x8d, 0xd1, 0x5a, 0x4f, 0x3e, 0xe3, 0x98, 0xb0, 0x46, 0xd7, 0xfb, 0xbe, 0x0f, 0x5e, 0x4d, 0x61, + 0xf9, 0x46, 0xf5, 0xbe, 0x87, 0x2c, 0xb9, 0xe6, 0x1d, 0xd3, 0xcd, 0x1b, 0x26, 0xba, 0xc9, 0x69, + 0x4b, 0xcc, 0x5b, 0xb2, 0x6c, 0x0d, 0x42, 0x86, 0x28, 0x2a, 0x01, 0x54, 0xf9, 0xd1, 0x62, 0x64, + 0x0d, 0xee, 0x9c, 0xbe, 0x25, 0x7d, 0xfc, 0x40, 0x64, 0x8a, 0xaf, 0x60, 0x32, 0xfb, 0xf3, 0x75, + 0xd4, 0xa3, 0xe2, 0xa8, 0x15, 0xae, 0x07, 0x19, 0x37, 0xbd, 0x81, 0x60, 0x11, 0x0f, 0x57, 0xdc, + 0x57, 0xda, 0x86, 0xbd, 0xeb, 0x1b, 0xac, 0x46, 0x7d, 0xf7, 0xed, 0xc2, 0xed, 0xc2, 0x3e, 0xe0, + 0xb8, 0xf7, 0x46, 0x73, 0x20, 0x20, 0x3e, 0x07, 0xb6, 0x98, 0x41, 0x65, 0x49, 0x08, 0x71, 0xfc, + 0xd2, 0xd7, 0x84, 0x38, 0xae, 0x4d, 0x6d, 0x57, 0x58, 0x36, 0x32, 0x41, 0x3e, 0x7a, 0x91, 0x49, + 0x6b, 0x7e, 0x9e, 0x60, 0xcd, 0xd4, 0x86, 0xb9, 0xbd, 0x16, 0x5c, 0x10, 0xcd, 0x97, 0xf6, 0x0f, + 0xc4, 0x78, 0x03, 0x96, 0x5b, 0x68, 0x4c, 0x05, 0x3c, 0x0b, 0x8b, 0x20, 0x3f, 0x01, 0xf8, 0x5b, + 0x34, 0xaf, 0x1d, 0x53, 0x8f, 0xad, 0xb6, 0x3d, 0xd8, 0x05, 0x43, 0x70, 0xbb, 0xd7, 0x47, 0x97, + 0x34, 0x14, 0x6e, 0x15, 0x95, 0x74, 0x68, 0x1d, 0x6a, 0xb3, 0x6c, 0xf8, 0xd5, 0x14, 0x99, 0xa0, + 0x80, 0xd9, 0xe8, 0xe0, 0xec, 0x76, 0xc6, 0x32, 0x18, 0xee, 0xf3, 0x78, 0x56, 0x41, 0xd7, 0x03, + 0xe5, 0x02, 0xb4, 0x23, 0x08, 0x38, 0x59, 0xe5, 0xf7, 0xd7, 0x01, 0x86, 0x76, 0x98, 0xd9, 0x0d, + 0x57, 0xc9, 0x97, 0x2a, 0x70, 0xf4, 0x74, 0xd7, 0x2a, 0xd6, 0x1e, 0xb7, 0xae, 0xe7, 0xec, 0x3b, + 0x4d, 0x43, 0x4e, 0x33, 0xc9, 0x3c, 0x19, 0xe2, 0x24, 0x22, 0x23, 0xb2, 0xa0, 0xa4, 0x20, 0xa5, + 0x0a, 0x14, 0x2c, 0xce, 0xea, 0x95, 0x03, 0x69, 0xaf, 0xf8, 0x36, 0x04, 0xbe, 0xc2, 0x21, 0x10, + 0x11, 0x05, 0x13, 0x3e, 0xff, 0x9d, 0x54, 0x0c, 0x3e, 0x79, 0x6b, 0xe7, 0xce, 0xc5, 0x6a, 0xce, + 0x28, 0x63, 0xb0, 0x95, 0xa4, 0x3b, 0x2f, 0xab, 0xa6, 0x0c, 0xef, 0xc3, 0x0f, 0x17, 0xe0, 0x1b, + 0x35, 0x2f, 0x61, 0xdd, 0x78, 0xb2, 0xc9, 0x4d, 0x74, 0x6d, 0x16, 0xe2, 0x0c, 0xdc, 0x5c, 0x4c, + 0xb1, 0x36, 0xc2, 0xc1, 0x5c, 0x6b, 0x44, 0xda, 0x47, 0xa6, 0x07, 0x78, 0x23, 0x9f, 0x6a, 0x55, + 0x07, 0xc2, 0x34, 0xf9, 0xa0, 0x71, 0x44, 0x51, 0xd0, 0x34, 0x38, 0xd2, 0x21, 0x3e, 0x2f, 0xed, + 0x8c, 0x7e, 0x33, 0x50, 0xcf, 0x03, 0x7c, 0x8e, 0xce, 0xa6, 0x20, 0xfc, 0xcf, 0x85, 0x95, 0xfe, + 0x54, 0xed, 0xd0, 0xd1, 0x69, 0xb4, 0x82, 0xd5, 0x74, 0x2a, 0xfa, 0xcd, 0xd5, 0x37, 0x45, 0xe6, + 0xb6, 0x2c, 0x5e, 0x23, 0x1d, 0x69, 0x99, 0x5b, 0x7d, 0x25, 0xd2, 0x61, 0x22, 0xd1, 0xad, 0x78, + 0x07, 0xb1, 0x3b, 0xf5, 0x8e, 0x97, 0xf3, 0x95, 0x88, 0x00, 0x4f, 0x58, 0xaf, 0x73, 0x49, 0x0c, + 0x10, 0x5c, 0x9c, 0x89, 0x8b, 0x19, 0x31, 0x3c, 0x78, 0xe3, 0xd8, 0x05, 0x48, 0x1b, 0x1f, 0xc8, + 0xfc, 0x59, 0xe3, 0xe2, 0x5b, 0x25, 0xc1, 0x14, 0x4a, 0x75, 0xbb, 0x5b, 0x2b, 0x21, 0xe1, 0xf0, + 0x79, 0x12, 0x1c, 0x6d, 0x89, 0xf4, 0xb2, 0x99, 0x1b, 0x39, 0x0e, 0xf0, 0xd0, 0x2f, 0x70, 0xc1, + 0x4f, 0xc4, 0x78, 0x5a, 0x47, 0x0b, 0x05, 0xa0, 0xb8, 0xee, 0x45, 0x52, 0xf8, 0xb1, 0x53, 0xbc, + 0xd6, 0x8a, 0x38, 0x5b, 0xa7, 0xc8, 0x2f, 0x3d, 0x9e, 0x18, 0x49, 0xcc, 0x7e, 0x35, 0x22, 0x93, + 0x92, 0xe7, 0xf6, 0x82, 0xdd, 0xec, 0x65, 0x05, 0x3b, 0x69, 0xa6, 0xf7, 0xa6, 0x23, 0xa1, 0x06, + 0x84, 0x27, 0x50, 0x7a, 0x8a, 0x01, 0xc8, 0xc2, 0x23, 0x74, 0x3a, 0x2b, 0x5e, 0xe7, 0x84, 0x88, + 0xb3, 0xf9, 0x25, 0xce, 0xe3, 0x59, 0xe9, 0x1e, 0xfc, 0x87, 0xb6, 0x07, 0xb0, 0x68, 0x18, 0x38, + 0x6c, 0x3f, 0x33, 0x36, 0xf8, 0x6e, 0xaf, 0xb7, 0x41, 0x94, 0x26, 0xf9, 0xaf, 0x2d, 0x30, 0x6b, + 0x43, 0x35, 0x3b, 0xd3, 0xde, 0xf3, 0xb4, 0xa4, 0x29, 0x0c, 0x86, 0x99, 0x86, 0xda, 0x76, 0xc7, + 0xed, 0x16, 0xe6, 0xd1, 0xe1, 0x45, 0xc8, 0x40, 0x91, 0xa0, 0x8d, 0x16, 0x16, 0xdf, 0xed, 0x02, + 0xba, 0x58, 0x91, 0xc0, 0xea, 0x51, 0x4b, 0xf6, 0x15, 0xb9, 0x17, 0xba, 0x2c, 0x12, 0x5b, 0x34, + 0x30, 0xee, 0x87, 0x86, 0xa1, 0xff, 0xa1, 0x6c, 0xa2, 0x06, 0x65, 0x30, 0x9e, 0xa6, 0x53, 0x15, + 0x78, 0x3f, 0x44, 0x46, 0x99, 0x79, 0xe3, 0x15, 0x45, 0x24, 0xc8, 0x62, 0xcc, 0x10, 0x31, 0x91, + 0x34, 0xec, 0xb2, 0x8e, 0x87, 0xb2, 0x26, 0xd8, 0x91, 0x99, 0xe6, 0x4a, 0x03, 0xed, 0x9a, 0x25, + 0x77, 0x3f, 0x9d, 0x0b, 0x53, 0xe0, 0x8c, 0x56, 0xcf, 0x29, 0x05, 0x86, 0x5b, 0x2a, 0xd0, 0xda, + 0xb2, 0x6b, 0xaa, 0xf2, 0x93, 0x77, 0x52, 0x4c, 0xa3, 0x26, 0x73, 0x26, 0xdd, 0x8d, 0x9d, 0xf7, + 0xaa, 0xf2, 0x1b, 0xe4, 0x33, 0x29, 0xb9, 0xca, 0x3b, 0xe4, 0x40, 0x42, 0xdb, 0x03, 0x24, 0xb3, + 0x58, 0x1e, 0xb6, 0x5c, 0xeb, 0xb6, 0x90, 0xbd, 0x90, 0xb5, 0x44, 0x08, 0xc0, 0xf8, 0x03, 0x7a, + 0x65, 0xc1, 0x39, 0x72, 0x8d, 0x61, 0xa0, 0xb3, 0x93, 0x47, 0x1a, 0x14, 0xd2, 0x56, 0xfd, 0xbf, + 0x7a, 0xe7, 0xe8, 0x6c, 0x90, 0x66, 0x6d, 0x6e, 0xce, 0x69, 0x28, 0x22, 0x64, 0xe8, 0x35, 0x5f, + 0xc1, 0xbe, 0x65, 0x73, 0x1b, 0x6b, 0x3b, 0xb5, 0xad, 0x2c, 0x2a, 0x24, 0x58, 0xbd, 0x37, 0x4d, + 0x07, 0x2d, 0x82, 0xa0, 0xde, 0xd9, 0x38, 0x80, 0x7b, 0xb7, 0xfb, 0x38, 0x85, 0xe2, 0x73, 0x37, + 0xd6, 0xba, 0x95, 0x8a, 0x1f, 0xe0, 0x99, 0x6e, 0x2c, 0x38, 0x9d, 0x42, 0x59, 0xb1, 0xd2, 0xb1, + 0x23, 0x64, 0x76, 0x26, 0x10, 0x0d, 0x47, 0x45, 0xaf, 0xec, 0x7f, 0xbc, 0x82, 0xe7, 0x2a, 0xc5, + 0x49, 0x19, 0xc4, 0xb5, 0x66, 0xad, 0x07, 0x2a, 0xc7, 0xcb, 0x95, 0xe8, 0x70, 0xfe, 0x00, 0xd0, + 0x21, 0x00, 0xe9, 0xb0, 0x87, 0x71, 0xfa, 0x03, 0x3a, 0x1a, 0x67, 0xea, 0xa4, 0xce, 0xa6, 0x6c, + 0xa1, 0x76, 0x1a, 0xfd, 0x2b, 0x42, 0x4f, 0x49, 0xe4, 0xdb, 0xe8, 0x97, 0xf5, 0x9c, 0x56, 0xdf, + 0x54, 0x62, 0x64, 0x79, 0x8b, 0x25, 0xb6, 0x93, 0x41, 0x0f, 0x02, 0xee, 0x8a, 0x3e, 0x54, 0x27, + 0xa1, 0x81, 0xde, 0x5c, 0x09, 0x97, 0x4d, 0x9f, 0xae, 0xb8, 0x8e, 0x87, 0x38, 0x29, 0x43, 0xa3, + 0xbb, 0x5e, 0x67, 0x29, 0x19, 0x82, 0xf8, 0xa3, 0x04, 0xfa, 0x03, 0xd3, 0xbd, 0x4c, 0x2a, 0x00, + 0x02, 0x28, 0xfb, 0x80, 0x8a, 0xd3, 0xc7, 0x02, 0xf7, 0xc6, 0x81, 0x84, 0xbb, 0x29, 0xb4, 0x92, + 0xcb, 0xab, 0xfd, 0xfa, 0x04, 0xa3, 0x72, 0x54, 0xf5, 0xbe, 0xda, 0xce, 0xf9, 0x18, 0x1d, 0xc1, + 0xe9, 0x7a, 0x6a, 0xb2, 0x6f, 0xef, 0x97, 0xc4, 0x65, 0x76, 0x21, 0x6c, 0x06, 0x90, 0xfd, 0xf9, + 0x64, 0x85, 0x3f, 0xa9, 0xe2, 0xd8, 0x4f, 0x86, 0x25, 0xab, 0x28, 0xdd, 0x46, 0x44, 0xa8, 0x3e, + 0xb5, 0x1f, 0x2c, 0x8a, 0x73, 0x3b, 0x62, 0x61, 0xce, 0x36, 0x75, 0x5e, 0xa0, 0x90, 0x07, 0x58, + 0x6c, 0x52, 0x58, 0x34, 0xd2, 0x20, 0x57, 0x5e, 0x6f, 0x8d, 0x56, 0x77, 0xb0, 0x4a, 0x83, 0x69, + 0xcd, 0x95, 0x30, 0x17, 0x0d, 0x5f, 0x5f, 0x5c, 0xf8, 0xa0, 0xd8, 0xb3, 0xcc, 0xa4, 0xcf, 0x66, + 0x03, 0x95, 0x17, 0x75, 0xda, 0xeb, 0xc3, 0x1b, 0x12, 0x39, 0x28, 0x7c, 0xae, 0xcf, 0xe7, 0x19, + 0x91, 0x98, 0x2b, 0x55, 0xcf, 0x3b, 0x4f, 0xdf, 0xfe, 0x35, 0x01, 0x4a, 0x61, 0xe8, 0x71, 0x90, + 0x2f, 0x7b, 0x96, 0x60, 0xea, 0xb2, 0x47, 0x79, 0xe9, 0xfb, 0x8c, 0xe4, 0x4e, 0xf0, 0x7d, 0x1a, + 0x26, 0x5c, 0x32, 0x56, 0xa5, 0xfa, 0xf0, 0x34, 0xda, 0xde, 0xe9, 0x9c, 0xfb, 0xe4, 0x0c, 0xfe, + 0xb6, 0x64, 0x36, 0xb0, 0xff, 0x2a, 0x5e, 0xcd, 0xa1, 0x19, 0x07, 0x40, 0x6e, 0xfe, 0xb9, 0x05, + 0x05, 0xa3, 0x42, 0x9e, 0xd0, 0x99, 0xf4, 0xaf, 0x04, 0x33, 0xa5, 0xc3, 0xc6, 0xe0, 0x0c, 0xdd, + 0xba, 0xae, 0x94, 0xda, 0x3d, 0xc5, 0x7b, 0xbe, 0xfc, 0x85, 0x4e, 0x79, 0x7c, 0x15, 0xfc, 0xc0, + 0x96, 0xd4, 0xf4, 0x1f, 0xd0, 0x56, 0xa4, 0x24, 0xad, 0xe3, 0x6e, 0x69, 0xf2, 0x98, 0x02, 0x76, + 0xc1, 0x4c, 0xc9, 0x15, 0x09, 0xa8, 0x25, 0xdd, 0x19, 0x8c, 0xc5, 0x20, 0xa9, 0xf4, 0x4a, 0xfb, + 0x24, 0x65, 0x33, 0xc7, 0x25, 0x0b, 0xeb, 0x9d, 0xc6, 0x80, 0x8e, 0x96, 0x17, 0xc9, 0xb6, 0x3d, + 0x59, 0x47, 0x15, 0xf4, 0xc6, 0x21, 0x7c, 0x15, 0x3d, 0xab, 0x28, 0xd4, 0x42, 0xdb, 0xaa, 0xc3, + 0x5d, 0x27, 0xe4, 0xd8, 0xc5, 0x0d, 0xd8, 0x2c, 0x9d, 0xb5, 0xa4, 0x3a, 0xaf, 0x49, 0xa9, 0x05, + 0x1a, 0xd1, 0x97, 0x99, 0xa1, 0xe0, 0xaa, 0x32, 0x86, 0x89, 0x19, 0xc3, 0x81, 0x10, 0x74, 0x31, + 0x0f, 0xdc, 0x67, 0xa5, 0xef, 0x60, 0x5f, 0x60, 0x4d, 0xed, 0x8f, 0x15, 0xbf, 0x85, 0x3c, 0x85, + 0x87, 0x0d, 0xc9, 0x67, 0x13, 0xa8, 0xb6, 0x8f, 0x6c, 0x39, 0x9c, 0x32, 0x8e, 0xbc, 0x59, 0xe5, + 0x18, 0xdf, 0x74, 0x1b, 0x91, 0x00, 0xdb, 0x2a, 0x15, 0x05, 0x65, 0xe0, 0xc5, 0x04, 0xa7, 0x82, + 0x7c, 0x42, 0x7a, 0xca, 0x21, 0x8e, 0x47, 0xc0, 0xd1, 0x5c, 0xb7, 0x30, 0xaa, 0x2d, 0xf1, 0xe6, + 0xa2, 0x5a, 0xa0, 0xd2, 0x93, 0x30, 0xa4, 0x29, 0x47, 0xf0, 0xae, 0x8e, 0x71, 0xac, 0x42, 0xec, + 0x3c, 0xcc, 0x38, 0x02, 0x53, 0x1f, 0xf6, 0x87, 0x9c, 0x44, 0xad, 0x1d, 0xde, 0x73, 0x1b, 0xfa, + 0x05, 0xd0, 0x7f, 0xff, 0xad, 0x92, 0x97, 0x9d, 0x6c, 0xc4, 0xb9, 0x98, 0xb7, 0x0a, 0x44, 0x2b, + 0x1d, 0x58, 0xed, 0x71, 0x42, 0x69, 0xfe, 0xd0, 0xde, 0xe6, 0x04, 0x8f, 0xb3, 0x75, 0x05, 0xa4, + 0x19, 0x19, 0xec, 0xff, 0xe0, 0xdb, 0x56, 0xab, 0x4f, 0x8f, 0xdb, 0x78, 0x43, 0x9f, 0xcb, 0xc9, + 0xdd, 0xd5, 0x09, 0x2c, 0x48, 0x1f, 0xdf, 0x2b, 0xed, 0x73, 0xa4, 0x56, 0x78, 0x23, 0xd9, 0x2a, + 0x0b, 0x52, 0x7b, 0xb8, 0x8c, 0x6f, 0x06, 0xcc, 0xbf, 0x7e, 0x3d, 0xf2, 0xa1, 0xd8, 0xc7, 0x38, + 0x09, 0xf0, 0xe1, 0xea, 0x0c, 0x81, 0xb0, 0x2e, 0x7c, 0xeb, 0x38, 0x72, 0x27, 0x04, 0x50, 0x89, + 0x6a, 0xda, 0x0c, 0xa9, 0xb1, 0xbf, 0x0c, 0x5d, 0x2c, 0x79, 0x5a, 0x94, 0x62, 0x3b, 0x9e, 0xf7, + 0x74, 0x33, 0xb4, 0xc1, 0xca, 0x87, 0x0b, 0x17, 0x3e, 0xfa, 0xcb, 0x99, 0x0a, 0xf0, 0x01, 0xda, + 0x30, 0x4a, 0x62, 0xa1, 0xd0, 0x6e, 0x6e, 0x07, 0xd3, 0xcb, 0x29, 0x1f, 0x40, 0xbd, 0x93, 0x74, + 0xcb, 0x7e, 0x03, 0x78, 0xff, 0x22, 0x93, 0xd0, 0xcc, 0xfa, 0xdd, 0xc7, 0x7b, 0x76, 0x44, 0x1d, + 0x9b, 0xe9, 0xe6, 0x51, 0x60, 0x6f, 0x45, 0x76, 0xc6, 0x04, 0xee, 0x41, 0xdc, 0xf5, 0x31, 0x56, + 0xa1, 0x4e, 0x09, 0x6e, 0xf3, 0x37, 0x87, 0xd6, 0x43, 0x36, 0xa9, 0x49, 0x87, 0x6f, 0xf1, 0xb9, + 0x9d, 0xa8, 0x2c, 0xc1, 0x34, 0xdd, 0x57, 0x2e, 0xb6, 0xb1, 0xc3, 0x03, 0xf7, 0xf8, 0x7d, 0xc4, + 0xf5, 0x35, 0xff, 0xf2, 0x88, 0x62, 0x84, 0xf8, 0x9c, 0x92, 0x91, 0x0b, 0xae, 0xab, 0xdc, 0x13, + 0x81, 0xe9, 0x9e, 0x1f, 0xc1, 0x4e, 0x4b, 0xcf, 0x07, 0x09, 0x5a, 0x88, 0x48, 0x74, 0x54, 0x78, + 0xc9, 0xe7, 0x94, 0xbc, 0x59, 0xff, 0x84, 0x68, 0xe3, 0xc3, 0xfa, 0x24, 0x99, 0xff, 0x04, 0x65, + 0x6c, 0xf0, 0xba, 0x63, 0x7c, 0x8b, 0xa2, 0xda, 0x33, 0x42, 0x8f, 0xa8, 0x9a, 0x64, 0xd5, 0x9e, + 0x26, 0xf0, 0xc8, 0x34, 0x8b, 0xfa, 0x37, 0x5f, 0x06, 0x17, 0xf4, 0x0c, 0xb8, 0xa4, 0x2e, 0x52, + 0x60, 0x7f, 0xcd, 0x76, 0x0a, 0xb4, 0xe1, 0xe6, 0xdd, 0x90, 0x26, 0xe4, 0x88, 0xd0, 0x59, 0x58, + 0x6e, 0x95, 0x1c, 0x78, 0x6e, 0x42, 0x18, 0x9f, 0x10, 0xb3, 0x67, 0x79, 0x52, 0xad, 0xef, 0x23, + 0x87, 0x48, 0xf1, 0xf6, 0xcd, 0x8e, 0xf7, 0x3d, 0xc8, 0xc5, 0xe1, 0x4a, 0xb3, 0x46, 0xa7, 0x28, + 0x79, 0xc0, 0x55, 0xb6, 0x28, 0xc3, 0x93, 0x19, 0x82, 0x89, 0x10, 0x7c, 0x9f, 0x08, 0xcc, 0xa1, + 0x3e, 0x70, 0xa1, 0xca, 0x45, 0x02, 0x69, 0xab, 0xf2, 0x7d, 0x38, 0xe0, 0xab, 0xf1, 0x5c, 0x88, + 0xa8, 0xf0, 0xe5, 0x37, 0xec, 0x60, 0x5e, 0xae, 0x2e, 0x03, 0x24, 0xd2, 0x96, 0x66, 0xaa, 0x77, + 0x78, 0xcf, 0x3c, 0x71, 0xba, 0x0e, 0xd8, 0x95, 0x58, 0xd8, 0xe7, 0x2d, 0x96, 0xda, 0xa8, 0x05, + 0x93, 0xd5, 0xf2, 0xc1, 0x14, 0xfa, 0xf7, 0x0c, 0xfc, 0x3f, 0x42, 0xa1, 0xfb, 0x63, 0xb6, 0x2d, + 0x8a, 0x6e, 0x77, 0xc1, 0xa3, 0x28, 0x06, 0x32, 0xf0, 0xe9, 0x7b, 0x47, 0x0d, 0x7a, 0xec, 0x2e, + 0x8d, 0xe6, 0x83, 0x03, 0xde, 0x44, 0x32, 0xd6, 0xa9, 0xb6, 0xde, 0x53, 0x06, 0x0e, 0xd0, 0x69, + 0xbf, 0x2c, 0x5a, 0xc9, 0x9d, 0xe8, 0x51, 0xea, 0x20, 0xed, 0xfb, 0xd2, 0xc2, 0x5b, 0x57, 0xf8, + 0x7a, 0xc4, 0x31, 0xba, 0x29, 0x23, 0xcc, 0xa7, 0x4d, 0x58, 0xa3, 0x3c, 0x5e, 0x6b, 0x39, 0x54, + 0x76, 0x32, 0x81, 0x97, 0xf3, 0x1b, 0x1c, 0x24, 0x65, 0xde, 0x8e, 0x19, 0xaa, 0x03, 0x7d, 0x80, + 0xa2, 0xe8, 0xae, 0x74, 0x3d, 0x41, 0x2d, 0x40, 0xf1, 0x6d, 0x2c, 0xa3, 0xd4, 0x2b, 0xfd, 0x89, + 0x8c, 0x45, 0x33, 0xb1, 0xd9, 0x87, 0xd8, 0x31, 0x1c, 0x82, 0xfc, 0x53, 0x89, 0xb1, 0x30, 0xd5, + 0x68, 0x6e, 0x95, 0x18, 0x6b, 0x44, 0x09, 0xd9, 0xe9, 0x9f, 0x97, 0x9b, 0x60, 0xe1, 0x9d, 0x8f, + 0x59, 0x40, 0x09, 0xbc, 0x88, 0xd2, 0xf2, 0x6a, 0xee, 0x73, 0xe2, 0xa9, 0xb9, 0x34, 0x78, 0xbf, + 0xbd, 0xab, 0xcb, 0xbe, 0xb5, 0x58, 0x27, 0x79, 0x83, 0x12, 0xe9, 0x4e, 0x8a, 0x16, 0x3c, 0x23, + 0xf0, 0x44, 0xc2, 0xec, 0x89, 0x2e, 0xf9, 0x27, 0x88, 0xd5, 0x6e, 0x56, 0xb3, 0x28, 0xc8, 0xa2, + 0xdb, 0x5a, 0xfe, 0xe9, 0x52, 0xf7, 0xaa, 0xf8, 0x4c, 0xae, 0xea, 0x60, 0xe9, 0xa8, 0xa5, 0x73, + 0x13, 0x93, 0xe9, 0x5d, 0xdd, 0x4a, 0xde, 0x6d, 0xad, 0x7e, 0x4f, 0x81, 0x4f, 0xb3, 0xbe, 0x49, + 0x6c, 0x74, 0xf2, 0x09, 0xbf, 0x94, 0xb9, 0xbf, 0xb7, 0x87, 0xa3, 0x33, 0x2f, 0x96, 0x4a, 0x23, + 0xa6, 0xde, 0xef, 0x33, 0x0a, 0xd4, 0x67, 0x9b, 0x7d, 0x6a, 0x8e, 0xa4, 0xe1, 0x62, 0x2c, 0xbf, + 0x28, 0xb2, 0xc4, 0x61, 0xaf, 0x33, 0xac, 0x00, 0x8a, 0x32, 0xde, 0xda, 0xd5, 0x1b, 0x19, 0x82, + 0x75, 0x51, 0x62, 0x2e, 0x08, 0x86, 0xae, 0x8d, 0x44, 0xf4, 0xef, 0xca, 0xc7, 0x34, 0xfe, 0x71, + 0x17, 0x8f, 0xc0, 0x11, 0x23, 0xee, 0xf0, 0x3e, 0xb1, 0xd2, 0x2d, 0xe8, 0xa7, 0x9f, 0x09, 0x94, + 0xbe, 0x9f, 0x35, 0x69, 0x6f, 0xac, 0x61, 0xbb, 0xd5, 0xd9, 0x46, 0xcc, 0x9e, 0x1e, 0x12, 0x36, + 0x2e, 0x65, 0xa9, 0x82, 0x85, 0xc6, 0xf9, 0x84, 0x8b, 0xb5, 0xa1, 0xac, 0x0f, 0x9d, 0x81, 0x1f, + 0x3a, 0xd8, 0x95, 0x05, 0xb6, 0xc3, 0x6a, 0x80, 0xf2, 0xf9, 0x7d, 0x0f, 0x3f, 0x5e, 0x79, 0x50, + 0x4b, 0x67, 0x3a, 0x60, 0x49, 0xc7, 0x01, 0x2b, 0x07, 0x6f, 0x47, 0x2f, 0x8c, 0xb1, 0x77, 0x77, + 0x8d, 0xb3, 0x65, 0x94, 0x6f, 0xdc, 0x63, 0xf4, 0x2a, 0x7f, 0x9f, 0xa7, 0x7d, 0x55, 0x5c, 0x6f, + 0xcf, 0x6f, 0x86, 0x86, 0xe7, 0xa6, 0x36, 0x27, 0x58, 0x28, 0xee, 0x0f, 0xb2, 0x2b, 0xe7, 0xb3, + 0x2e, 0xbf, 0x06, 0x4d, 0x96, 0xc4, 0x43, 0xb0, 0x09, 0x3d, 0x44, 0xa8, 0x31, 0x24, 0xfb, 0x03, + 0xa6, 0x26, 0x8f, 0xdc, 0x08, 0x93, 0x6e, 0x02, 0x7d, 0xec, 0x8e, 0x3a, 0x0b, 0x2b, 0xb3, 0xf0, + 0xad, 0xe6, 0xb9, 0xc8, 0xe9, 0x34, 0xdf, 0x29, 0xe6, 0x8c, 0x00, 0xec, 0x5c, 0x6e, 0xb0, 0x3c, + 0x1e, 0xe3, 0x11, 0x3c, 0x2c, 0x25, 0xf2, 0xe6, 0x40, 0xf9, 0x17, 0x53, 0x90, 0x33, 0x53, 0x11, + 0x17, 0xfd, 0xea, 0x30, 0xd4, 0xfd, 0x21, 0x90, 0x5f, 0xc6, 0x00, 0xd1, 0x05, 0x57, 0x14, 0x52, + 0xc0, 0x75, 0x52, 0xa1, 0xe1, 0x78, 0x68, 0x70, 0x7d, 0x37, 0xac, 0x28, 0xe3, 0xa0, 0x63, 0x60, + 0xce, 0x05, 0x49, 0x20, 0x74, 0xca, 0xf4, 0x19, 0xc9, 0x1f, 0x45, 0x6f, 0x27, 0xdd, 0x8b, 0x4d, + 0xb6, 0x95, 0x2b, 0x73, 0xeb, 0xdf, 0x97, 0x51, 0xda, 0x93, 0x09, 0xd8, 0x21, 0xaa, 0x89, 0xa9, + 0x05, 0xec, 0xf7, 0x84, 0xe8, 0x6e, 0xa6, 0x6c, 0x2f, 0xef, 0x1b, 0x5a, 0x9d, 0x66, 0x8f, 0x87, + 0x45, 0xcc, 0x89, 0x4d, 0xd8, 0xc5, 0xfa, 0xe2, 0x6d, 0xe3, 0x9d, 0xeb, 0x8b, 0xca, 0xbf, 0xc8, + 0xa3, 0xbf, 0x2c, 0x07, 0x3d, 0x5b, 0x70, 0xe3, 0x72, 0x0c, 0xdd, 0x4e, 0x03, 0x66, 0x46, 0xca, + 0x3e, 0xf9, 0x2e, 0x45, 0x3b, 0xe0, 0xd9, 0x4f, 0xc2, 0x41, 0x2b, 0x14, 0xc4, 0x25, 0xef, 0x2c, + 0xaf, 0x59, 0xe4, 0xf5, 0x1d, 0x83, 0xac, 0x37, 0x36, 0xd4, 0x92, 0xeb, 0x8b, 0x61, 0x1a, 0x25, + 0xad, 0xd3, 0xa4, 0x70, 0x6d, 0x7a, 0x4e, 0xb2, 0x60, 0x93, 0x66, 0x85, 0x4c, 0x53, 0x1a, 0xdf, + 0xd1, 0xcb, 0x28, 0x43, 0x71, 0x12, 0x05, 0x5f, 0x64, 0x0c, 0xf5, 0xf2, 0xc6, 0xe6, 0x65, 0xbf, + 0x89, 0xcf, 0xc5, 0x5d, 0x33, 0x2e, 0xfc, 0x0b, 0x54, 0xed, 0xe8, 0x2c, 0xaf, 0x17, 0x9e, 0xa6, + 0x64, 0x7d, 0x1d, 0x8b, 0x79, 0xd3, 0x30, 0x66, 0x7c, 0x5d, 0x36, 0x85, 0x1d, 0x2c, 0xab, 0xe2, + 0x3a, 0x15, 0x47, 0x97, 0xfd, 0xdc, 0x1c, 0xec, 0xb1, 0xe7, 0x0f, 0xcb, 0xe2, 0x1e, 0x90, 0x16, + 0xe4, 0x96, 0xb0, 0x58, 0x6e, 0x44, 0x37, 0x65, 0x8c, 0x3d, 0x29, 0xb5, 0xaa, 0xd3, 0x8a, 0xd7, + 0x4b, 0xe3, 0xe0, 0x73, 0x33, 0xea, 0xb9, 0x27, 0x86, 0xb2, 0xfa, 0x9d, 0x23, 0x75, 0x8e, 0xad, + 0x40, 0x35, 0x25, 0x97, 0xaf, 0xb6, 0x98, 0xdd, 0x96, 0xf1, 0x3e, 0x68, 0xd5, 0x3a, 0x39, 0x53, + 0xea, 0xde, 0x4f, 0x24, 0x1e, 0x41, 0xca, 0x9c, 0x95, 0x05, 0xc8, 0x52, 0x83, 0x5b, 0x2e, 0x2b, + 0x93, 0x04, 0x87, 0xf6, 0x6c, 0x87, 0x2c, 0x7c, 0x63, 0x09, 0x1d, 0x53, 0x22, 0xf1, 0x3e, 0x51, + 0x61, 0x4d, 0x54, 0xb4, 0xee, 0xf1, 0x8c, 0x2a, 0xe4, 0xf3, 0x0d, 0xa0, 0xe9, 0x37, 0xf9, 0xa9, + 0x89, 0x6b, 0xfc, 0x8b, 0x55, 0x5f, 0x4f, 0x32, 0x26, 0xf1, 0xb1, 0xeb, 0x10, 0x7d, 0x3e, 0x0a, + 0x86, 0x87, 0x7e, 0x43, 0x18, 0x79, 0xf7, 0x2a, 0xaa, 0x0a, 0x1e, 0x2d, 0x16, 0x1c, 0x8b, 0xc9, + 0xdf, 0xe5, 0x78, 0xbf, 0x91, 0x27, 0xa5, 0x68, 0x47, 0xa5, 0xd8, 0x10, 0x06, 0xde, 0x43, 0xa2, + 0x37, 0x9e, 0x33, 0xa1, 0xe9, 0x17, 0xa2, 0xb2, 0x78, 0xeb, 0xe8, 0x4d, 0x6e, 0x98, 0xa4, 0xe3, + 0xe5, 0x20, 0x5c, 0x57, 0x5c, 0x4e, 0xb0, 0xef, 0x16, 0xe7, 0xcf, 0x13, 0x69, 0x3c, 0x2a, 0x79, + 0xcc, 0xe9, 0x92, 0xf4, 0x93, 0xd4, 0x13, 0x5c, 0xe0, 0x8b, 0xc0, 0x1d, 0x68, 0xae, 0x53, 0x1d, + 0x73, 0x40, 0x40, 0xac, 0xbc, 0xe7, 0x27, 0xf4, 0xd9, 0x36, 0xde, 0x29, 0x58, 0x67, 0x62, 0x01, + 0x02, 0xcb, 0x65, 0xee, 0xad, 0xc3, 0x87, 0x25, 0x99, 0x97, 0xc0, 0xfa, 0x91, 0xb4, 0x3c, 0xaa, + 0x2f, 0x33, 0xcf, 0x9b, 0x6f, 0x75, 0xf0, 0xa0, 0x36, 0x71, 0x38, 0x8c, 0x9f, 0x8e, 0x80, 0x09, + 0x0f, 0x74, 0x77, 0x02, 0x20, 0x37, 0x6a, 0xfb, 0x18, 0xad, 0x85, 0x4f, 0x29, 0x8d, 0x84, 0x6b, + 0x6d, 0x3e, 0xf3, 0x7c, 0xc4, 0x24, 0xb3, 0x9b, 0xf5, 0x23, 0x6e, 0xe8, 0xd6, 0xd0, 0xfd, 0xdc, + 0xb6, 0x1c, 0x0f, 0xf1, 0xb0, 0x47, 0x2a, 0xef, 0xda, 0xf5, 0xdf, 0xf6, 0x99, 0xf0, 0x21, 0x76, + 0x47, 0xa6, 0xd4, 0x82, 0xdf, 0xeb, 0x79, 0x5c, 0x84, 0x8c, 0xba, 0x00, 0xfc, 0x16, 0xbc, 0xd1, + 0x21, 0xd5, 0xf2, 0x1d, 0xa8, 0x26, 0x1a, 0x9c, 0x3c, 0x3e, 0x48, 0xa1, 0xcc, 0x7b, 0x72, 0xc8, + 0xac, 0x3b, 0xbe, 0x51, 0xdc, 0x6c, 0x95, 0x80, 0x7f, 0xf1, 0x96, 0x32, 0x18, 0x5a, 0xe5, 0x8a, + 0x4e, 0xbc, 0x32, 0x43, 0x5c, 0x89, 0x5a, 0x76, 0x70, 0x04, 0x2a, 0xae, 0x85, 0x02, 0xae, 0x05, + 0x2f, 0x58, 0x87, 0xe5, 0x68, 0xa6, 0xd0, 0xab, 0x6c, 0x4e, 0x59, 0xda, 0x25, 0x78, 0xff, 0x46, + 0x7c, 0xb7, 0x78, 0xdd, 0xac, 0x41, 0x8b, 0x0c, 0xaf, 0xfd, 0x77, 0x23, 0xd2, 0x63, 0x47, 0x12, + 0x04, 0xdb, 0x1f, 0x8e, 0x70, 0x45, 0x4c, 0xb5, 0x44, 0xf6, 0x2c, 0xbb, 0xe8, 0x62, 0x88, 0xa8, + 0x10, 0x82, 0x6c, 0x59, 0x42, 0xa9, 0x53, 0x09, 0x75, 0xc6, 0x8f, 0x9a, 0x41, 0xfe, 0x1d, 0x88, + 0xd1, 0x7e, 0xf8, 0x0d, 0x87, 0xf5, 0x78, 0xd0, 0x44, 0xbc, 0x45, 0xd3, 0x90, 0xb2, 0x32, 0x7c, + 0xcd, 0xa4, 0xc6, 0x64, 0x2c, 0x6e, 0x26, 0xfb, 0x54, 0xb3, 0xe2, 0xed, 0x53, 0x4f, 0x3c, 0xf9, + 0x2f, 0x13, 0xe7, 0xea, 0x2d, 0xea, 0x37, 0x67, 0x5b, 0xae, 0x5d, 0x72, 0x31, 0x16, 0x23, 0x78, + 0x17, 0xc7, 0x65, 0xc7, 0x89, 0x1c, 0x04, 0xc9, 0xe3, 0xb8, 0xb1, 0x38, 0xb9, 0x3d, 0xec, 0xdd, + 0x38, 0x51, 0x72, 0x6b, 0x12, 0x62, 0xb4, 0xd9, 0x82, 0xe8, 0x7f, 0x30, 0x52, 0x8e, 0xa2, 0x35, + 0xf3, 0x86, 0xf1, 0xbc, 0x9d, 0x50, 0x72, 0x4a, 0xc6, 0x69, 0xaf, 0xc1, 0x4d, 0xc9, 0xaf, 0xf5, + 0xa1, 0x9e, 0x80, 0xee, 0x28, 0x32, 0xb6, 0x6d, 0x00, 0x15, 0x99, 0x18, 0xf7, 0xab, 0x8c, 0xa6, + 0xc5, 0xd0, 0x4b, 0x67, 0x73, 0x19, 0x0a, 0xa1, 0x05, 0x48, 0x8f, 0x01, 0xc9, 0x62, 0xc8, 0x7e, + 0x52, 0xce, 0x46, 0x41, 0xaf, 0x8a, 0x75, 0xf0, 0x4f, 0xaa, 0xc0, 0x91, 0x9e, 0xc0, 0xcd, 0x19, + 0x3a, 0x9d, 0xf3, 0x1a, 0x77, 0x01, 0x09, 0x09, 0x61, 0x53, 0x9e, 0xf3, 0xe1, 0x95, 0xfd, 0xfb, + 0xdd, 0x82, 0xdd, 0x9f, 0xe7, 0x69, 0x4b, 0xfb, 0x11, 0x2c, 0x1d, 0xbc, 0xb4, 0x46, 0x7a, 0x26, + 0xc6, 0xa9, 0xd0, 0x83, 0x2c, 0x9e, 0x45, 0x47, 0xf2, 0xc3, 0xe2, 0x47, 0x3c, 0x48, 0x1c, 0x01, + 0xc1, 0x66, 0x1d, 0x2f, 0xe7, 0x99, 0xbc, 0x90, 0x78, 0xe7, 0x74, 0xac, 0x77, 0xdd, 0x2f, 0xda, + 0xdf, 0xf6, 0x83, 0x96, 0x69, 0xa5, 0x87, 0x3b, 0x31, 0xdc, 0x0a, 0x53, 0xcc, 0x27, 0x9d, 0xff, + 0xb6, 0xcb, 0x86, 0x97, 0xb9, 0xde, 0xde, 0xf1, 0x41, 0xff, 0x09, 0xbd, 0xa0, 0xb8, 0x32, 0x85, + 0x25, 0xc8, 0x51, 0xe9, 0x0c, 0xbb, 0x7b, 0x95, 0xe6, 0x87, 0x3c, 0x6a, 0x94, 0x6f, 0x95, 0x9a, + 0xa7, 0x97, 0xda, 0xc4, 0xa2, 0xd8, 0x2d, 0x46, 0xb6, 0x74, 0xea, 0xa8, 0xc8, 0xc8, 0x07, 0x3c, + 0x67, 0xf1, 0x8d, 0x4e, 0x6e, 0x0c, 0xfe, 0x5f, 0xf6, 0xde, 0xd4, 0x8b, 0xee, 0x8f, 0x8f, 0x63, + 0x45, 0x12, 0x2e, 0xeb, 0x7f, 0xf2, 0xdb, 0x35, 0xa3, 0x52, 0xfc, 0x0b, 0x24, 0x40, 0xe7, 0x3c, + 0x8b, 0x8c, 0x02, 0x4c, 0xe6, 0xe9, 0xd6, 0x47, 0x44, 0x83, 0x62, 0x7c, 0xb0, 0x6e, 0x03, 0x8a, + 0x30, 0x56, 0xa0, 0xff, 0xe8, 0xf6, 0x6a, 0x61, 0x29, 0x94, 0x66, 0x3b, 0x24, 0x28, 0xb2, 0x0c, + 0x1f, 0xae, 0xf5, 0x07, 0xf1, 0x9e, 0x5f, 0x9b, 0x39, 0xd4, 0x8d, 0x70, 0x59, 0x88, 0xeb, 0x79, + 0x28, 0x68, 0xeb, 0x10, 0x98, 0x0f, 0xeb, 0xd0, 0x4e, 0xf8, 0x05, 0xcd, 0xf7, 0x10, 0xb3, 0x38, + 0x64, 0x3b, 0x64, 0xd6, 0x38, 0x07, 0xc0, 0x41, 0xb6, 0x6d, 0xb7, 0xab, 0xa3, 0xab, 0x9c, 0xfd, + 0x1e, 0x16, 0x57, 0xea, 0x12, 0xbe, 0x9a, 0x1e, 0x63, 0x76, 0x0f, 0x8a, 0xa5, 0x4a, 0xa1, 0x85, + 0x7a, 0xdc, 0xbf, 0x69, 0x98, 0xcc, 0x3e, 0x95, 0x57, 0x93, 0x83, 0x02, 0xb5, 0x99, 0x48, 0xf2, + 0xf3, 0xa4, 0xd4, 0xf4, 0x7e, 0x2b, 0xdc, 0xe7, 0x61, 0x90, 0x3c, 0x58, 0x6f, 0x1e, 0x13, 0x3a, + 0xf7, 0x9a, 0xde, 0x14, 0x03, 0xa3, 0x6e, 0x52, 0x55, 0xe7, 0xb7, 0x59, 0x18, 0x76, 0xcc, 0x40, + 0xc7, 0x54, 0x29, 0x9b, 0xdb, 0x16, 0xa6, 0x98, 0x8a, 0x94, 0xad, 0xe6, 0x2a, 0xba, 0x0b, 0x61, + 0xb6, 0xcc, 0xcb, 0x31, 0xf0, 0x20, 0xe6, 0x91, 0xb5, 0xc9, 0x4b, 0x78, 0x80, 0x26, 0xdb, 0xfc, + 0x66, 0x77, 0xf5, 0x0d, 0x3b, 0xac, 0xd7, 0x15, 0x0d, 0x12, 0x68, 0xea, 0x47, 0x57, 0x4f, 0x73, + 0xb1, 0xbb, 0xa2, 0x88, 0xd9, 0xc4, 0x60, 0xbc, 0x08, 0x2a, 0x04, 0xaf, 0x9d, 0xac, 0x07, 0xa1, + 0x6a, 0xe8, 0xe4, 0xc1, 0xbf, 0x3d, 0xfc, 0x39, 0x6b, 0xe2, 0xd4, 0xdb, 0x1e, 0xc6, 0x47, 0x5e, + 0x16, 0xad, 0xa4, 0xbd, 0x69, 0x04, 0xde, 0x55, 0xf7, 0x32, 0x39, 0x01, 0x8f, 0x5c, 0x48, 0xbb, + 0x5d, 0xaf, 0xad, 0x8b, 0x6d, 0xf3, 0x37, 0x45, 0x3c, 0xd6, 0x95, 0xaa, 0x99, 0xea, 0xe4, 0xc0, + 0x71, 0xfb, 0xfe, 0xc3, 0x0c, 0x72, 0x7b, 0xad, 0x90, 0x06, 0x9d, 0xc4, 0x01, 0x5e, 0xba, 0xf4, + 0x24, 0xa4, 0x7b, 0x03, 0xc9, 0x68, 0x34, 0xb2, 0xa7, 0xbd, 0xd2, 0xd7, 0xbf, 0x61, 0xf8, 0xa1, + 0xe5, 0xb2, 0xe0, 0xb0, 0x06, 0xd7, 0x78, 0x99, 0xbb, 0xcc, 0x0c, 0x0e, 0xfa, 0x10, 0xa8, 0xcd, + 0xbe, 0xa8, 0x74, 0x77, 0xf1, 0xd0, 0x96, 0x33, 0x24, 0xf2, 0x29, 0x61, 0xb5, 0xab, 0xa0, 0xcd, + 0x72, 0x25, 0xcf, 0x67, 0xf5, 0x75, 0xe3, 0xc3, 0xcc, 0x6b, 0x1c, 0xd1, 0xe7, 0x10, 0xf7, 0x78, + 0x36, 0x15, 0x93, 0x92, 0xb9, 0xf3, 0xb2, 0xf9, 0xed, 0x05, 0x4c, 0xe1, 0x23, 0x21, 0xb9, 0x9b, + 0x35, 0x1a, 0xe1, 0xcd, 0xc4, 0x86, 0xd4, 0xef, 0x91, 0xd5, 0x2f, 0xd2, 0xde, 0x1b, 0xa0, 0x71, + 0xa8, 0xf2, 0x76, 0xd6, 0x21, 0x1b, 0xf5, 0x41, 0x5e, 0xbe, 0x90, 0x2e, 0x98, 0x06, 0xbc, 0x93, + 0x1e, 0x11, 0x02, 0xcd, 0xb8, 0x93, 0xb8, 0xde, 0x5e, 0xd3, 0xc7, 0xb7, 0x09, 0x95, 0x77, 0xfe, + 0xca, 0x07, 0xd2, 0x37, 0x6f, 0x4a, 0xbe, 0x1d, 0x92, 0x38, 0x14, 0x53, 0xef, 0xf1, 0xe4, 0x63, + 0xd2, 0x27, 0x61, 0x8c, 0xca, 0x35, 0xcc, 0x23, 0x1d, 0xd8, 0x2f, 0x70, 0x7f, 0xb0, 0x50, 0xfc, + 0x5e, 0xf4, 0x52, 0xa2, 0xc4, 0x0d, 0x91, 0x9b, 0xab, 0xa5, 0xf7, 0xc1, 0xac, 0x90, 0xbb, 0x33, + 0x47, 0x0d, 0xdf, 0x73, 0x24, 0x0f, 0x0e, 0x43, 0x84, 0xc4, 0xb2, 0x14, 0x2c, 0xda, 0x74, 0xd8, + 0xfa, 0x89, 0x61, 0x34, 0xf5, 0x2c, 0xe9, 0xb3, 0xcd, 0xcc, 0x5d, 0x15, 0xfd, 0xbc, 0xc7, 0x31, + 0x02, 0x32, 0xf6, 0x89, 0x07, 0x23, 0x0d, 0x5e, 0x1a, 0xcb, 0x0e, 0x22, 0xb0, 0xb8, 0x62, 0x6e, + 0xd0, 0xf4, 0xb4, 0x73, 0xdc, 0x5b, 0x5b, 0x51, 0x01, 0xcd, 0xfb, 0xc4, 0xee, 0x4e, 0xf6, 0x19, + 0x0b, 0x08, 0x4c, 0x19, 0x94, 0x1f, 0x9a, 0x89, 0xea, 0x9c, 0x1c, 0x7f, 0x08, 0xa0, 0x23, 0x5e, + 0x36, 0x3f, 0xee, 0xe3, 0xb8, 0xdf, 0xfa, 0x00, 0x44, 0x87, 0x46, 0x08, 0xf9, 0xae, 0x30, 0x9a, + 0x12, 0x40, 0xe7, 0xb0, 0xc8, 0x0f, 0x32, 0x25, 0x4c, 0xa7, 0xac, 0xf8, 0x1f, 0xcf, 0x82, 0x4f, + 0x28, 0x0f, 0x88, 0x13, 0x33, 0x33, 0x1f, 0x7a, 0xa0, 0xcf, 0x7f, 0x7c, 0x8f, 0xee, 0x51, 0x19, + 0x34, 0x18, 0x24, 0xa3, 0xdc, 0xec, 0xe0, 0x2b, 0x5f, 0x26, 0xa8, 0x67, 0xaf, 0xc0, 0xe9, 0xc8, + 0x5e, 0x05, 0xee, 0xee, 0x58, 0xf4, 0x3b, 0x48, 0x89, 0x2e, 0xc6, 0xef, 0x2b, 0xfb, 0x33, 0x92, + 0x8d, 0x34, 0xc5, 0xd4, 0x4c, 0xfe, 0x7b, 0x1f, 0x87, 0xcf, 0xc1, 0x39, 0x01, 0xd8, 0xd3, 0x22, + 0x11, 0x33, 0xf5, 0xd4, 0xb2, 0xdd, 0x68, 0xe7, 0x5f, 0xdc, 0xe6, 0x22, 0x63, 0xde, 0x00, 0x2a, + 0xaa, 0x69, 0x03, 0xf7, 0xb5, 0x51, 0xed, 0x5e, 0xb1, 0xd4, 0x13, 0xdd, 0x76, 0xd4, 0x2a, 0x68, + 0xe6, 0xcd, 0xd0, 0x76, 0xa9, 0x78, 0x8b, 0xed, 0x5c, 0x21, 0xb2, 0x4b, 0x77, 0x22, 0x35, 0x59, + 0xef, 0xea, 0xb3, 0x9c, 0x24, 0xf8, 0x9c, 0x3b, 0xf8, 0xc6, 0xbb, 0x34, 0x06, 0xac, 0xf2, 0xa6, + 0x98, 0xb2, 0xdc, 0xfc, 0x2c, 0x71, 0xa0, 0x21, 0x86, 0xcc, 0x1d, 0x12, 0x67, 0xc0, 0x70, 0xa2, + 0x14, 0x33, 0x54, 0x66, 0xb1, 0xd5, 0x22, 0x40, 0xf1, 0x6a, 0x25, 0xc3, 0xf1, 0x6a, 0xe9, 0x3f, + 0xac, 0x26, 0x30, 0x30, 0xe6, 0x1e, 0xfa, 0xff, 0xb9, 0xb2, 0x3e, 0x7c, 0x14, 0x79, 0x85, 0x83, + 0xe7, 0x1d, 0xc3, 0x6e, 0xdc, 0x7e, 0xb1, 0xcb, 0x95, 0xe2, 0xc6, 0xc8, 0x34, 0x12, 0x40, 0x50, + 0x7c, 0x67, 0xe0, 0x39, 0xdc, 0x81, 0x8a, 0xb3, 0x77, 0x21, 0x36, 0x5e, 0x80, 0xb4, 0x04, 0x5f, + 0xd6, 0xf4, 0x1a, 0xd3, 0x25, 0x59, 0x2d, 0xeb, 0x1e, 0x8b, 0x1f, 0x32, 0x36, 0xaa, 0xc0, 0x55, + 0xcd, 0x3d, 0xc1, 0xff, 0x2e, 0xb3, 0xc2, 0x5a, 0x6b, 0x53, 0xc8, 0xba, 0xa9, 0x97, 0xbe, 0x78, + 0x71, 0xb8, 0xe4, 0x29, 0x34, 0x27, 0x5d, 0xaf, 0x6a, 0xf0, 0x94, 0xb1, 0xe2, 0xe1, 0xd7, 0x8f, + 0xa4, 0x96, 0x09, 0x33, 0x35, 0xa5, 0xea, 0x08, 0x7d, 0xf2, 0xe1, 0x76, 0xf8, 0x79, 0x19, 0xd8, + 0x0b, 0x2f, 0x8a, 0x97, 0xba, 0xdc, 0x1e, 0x53, 0x16, 0xed, 0x45, 0x97, 0x4d, 0xd2, 0x46, 0x5c, + 0x84, 0x07, 0x40, 0x6d, 0xc5, 0x51, 0x3f, 0xb9, 0xae, 0x1a, 0xc2, 0xb9, 0xa5, 0x74, 0xbf, 0x39, + 0xbc, 0x40, 0x6a, 0x22, 0xcd, 0xc5, 0xc2, 0xbd, 0x87, 0xd0, 0x9a, 0xbc, 0xdb, 0x4a, 0x0b, 0x94, + 0xfa, 0xee, 0xcb, 0xc7, 0x84, 0x7b, 0xee, 0xc2, 0x89, 0x85, 0xfd, 0x1a, 0xba, 0x39, 0x11, 0x5f, + 0xc1, 0xac, 0x88, 0x2c, 0xa8, 0xb3, 0x07, 0xff, 0xec, 0x38, 0xe7, 0x9d, 0xf5, 0x5e, 0x90, 0x66, + 0x91, 0x89, 0x36, 0x9f, 0x8e, 0xe6, 0x53, 0x55, 0x6e, 0x91, 0x88, 0x47, 0xa1, 0xe0, 0xd9, 0x8f, + 0x8a, 0xb2, 0xca, 0x37, 0x69, 0xf6, 0x21, 0xd1, 0x11, 0x52, 0xaf, 0xad, 0x2b, 0xc2, 0x08, 0x3f, + 0x98, 0x8f, 0xa9, 0xf3, 0xf6, 0x66, 0x2c, 0x05, 0x75, 0x6e, 0x8d, 0xf0, 0x4c, 0xfb, 0xb9, 0x4d, + 0xcb, 0x7c, 0x85, 0x8d, 0xb8, 0x98, 0xda, 0x7e, 0x5f, 0x5a, 0x25, 0x4a, 0xa8, 0xb6, 0xb4, 0xcb, + 0x75, 0xec, 0x00, 0x63, 0x91, 0x96, 0x2a, 0x5b, 0xcc, 0x71, 0xae, 0x94, 0x78, 0x3d, 0x59, 0xc5, + 0xef, 0x42, 0xd6, 0x43, 0xbf, 0x0c, 0x0d, 0x17, 0xcb, 0x8a, 0x3c, 0x8a, 0xe8, 0x17, 0x3b, 0x3e, + 0x1c, 0x0b, 0xd1, 0x01, 0x07, 0x6f, 0xe3, 0x17, 0x91, 0x97, 0xb3, 0x48, 0x46, 0xd8, 0xa2, 0x20, + 0xbf, 0xdb, 0xf3, 0x33, 0xaf, 0x7d, 0x0f, 0x50, 0xbc, 0x09, 0x39, 0x95, 0x25, 0x21, 0x8c, 0xc7, + 0x18, 0x9d, 0x0e, 0x75, 0x8a, 0xb5, 0xa1, 0x2d, 0xe1, 0xf9, 0x03, 0x95, 0xf1, 0x52, 0x44, 0xc8, + 0xff, 0x77, 0x27, 0x33, 0x65, 0x84, 0x59, 0xa0, 0x13, 0xbf, 0x7c, 0x4d, 0x24, 0x41, 0x1f, 0x23, + 0x9a, 0xf7, 0x45, 0x52, 0x9e, 0xa8, 0x77, 0x96, 0xf5, 0x16, 0x74, 0xb9, 0x5f, 0x7e, 0x3b, 0x02, + 0xff, 0xec, 0x75, 0x0f, 0xc3, 0xe5, 0x02, 0x35, 0x50, 0xcb, 0x7c, 0x79, 0x0b, 0x2b, 0x8e, 0x34, + 0xba, 0x89, 0xf4, 0x0c, 0x2d, 0xe1, 0xf4, 0x5d, 0x0a, 0xd3, 0x9c, 0x69, 0x95, 0xf3, 0xe3, 0x85, + 0xbd, 0xdd, 0xd2, 0xa0, 0x36, 0x89, 0x7d, 0xf6, 0x1b, 0x14, 0x7a, 0xed, 0xff, 0x6f, 0x42, 0x27, + 0x57, 0xbe, 0xd5, 0x61, 0xaf, 0x90, 0x48, 0xed, 0xef, 0x71, 0x02, 0xe0, 0x26, 0xb3, 0xb4, 0x41, + 0xe0, 0x47, 0x29, 0xf1, 0x7a, 0xc2, 0x38, 0x0a, 0xe7, 0xec, 0xee, 0x1f, 0x65, 0x48, 0x0c, 0x06, + 0x70, 0xf5, 0xdb, 0xe9, 0xaa, 0x22, 0x32, 0x18, 0x78, 0x49, 0xd0, 0xb3, 0x58, 0x26, 0x68, 0xbc, + 0x95, 0x22, 0x05, 0x7f, 0x1f, 0x3c, 0x3d, 0x77, 0xba, 0xc4, 0x28, 0x7b, 0x54, 0xd9, 0xc3, 0x6d, + 0x8b, 0x1b, 0x03, 0xa0, 0x0a, 0xb5, 0x3f, 0xae, 0x10, 0x3b, 0x2f, 0xe9, 0x17, 0x08, 0xbd, 0x80, + 0xa7, 0xb5, 0x05, 0x41, 0x8c, 0x08, 0x38, 0x5e, 0x5c, 0x8c, 0xb8, 0x07, 0x0c, 0xeb, 0xf3, 0x9b, + 0x1b, 0x9a, 0x3e, 0x3a, 0x30, 0x7c, 0x9e, 0x84, 0x61, 0xbc, 0x44, 0xa8, 0xf6, 0x53, 0x95, 0x46, + 0x31, 0x76, 0xe6, 0x73, 0x04, 0x30, 0xb1, 0x99, 0x92, 0x04, 0x1f, 0x6a, 0x68, 0x79, 0x16, 0x03, + 0x5e, 0x41, 0xf4, 0xb8, 0xe2, 0x2b, 0x6f, 0x6c, 0x3c, 0x9a, 0x0b, 0xdc, 0x39, 0x9b, 0x10, 0xa8, + 0x20, 0xdc, 0x7e, 0x03, 0x06, 0x32, 0x56, 0x6f, 0xf3, 0xed, 0x56, 0x37, 0xa9, 0xe8, 0xef, 0xfb, + 0xb9, 0x32, 0x39, 0x95, 0xb7, 0x2e, 0x23, 0xab, 0xb1, 0x50, 0x9c, 0xe0, 0x4d, 0x08, 0xf1, 0xdf, + 0x60, 0x6a, 0xea, 0x6c, 0x67, 0x57, 0x2c, 0x0c, 0x87, 0xa0, 0x16, 0x3a, 0x17, 0xe9, 0x3e, 0x14, + 0xe9, 0xf6, 0xf4, 0x84, 0xae, 0x51, 0x76, 0x23, 0xcc, 0x32, 0x1f, 0x6d, 0xcf, 0x21, 0x56, 0xc8, + 0x2d, 0xc9, 0x01, 0xae, 0x59, 0x0d, 0xcd, 0x50, 0x24, 0x85, 0xf6, 0x06, 0xaf, 0xbf, 0xb1, 0x22, + 0x6e, 0xd6, 0xe2, 0x7b, 0x66, 0xfd, 0xcb, 0x29, 0x57, 0x9e, 0x6e, 0xae, 0xf3, 0xdc, 0x88, 0xca, + 0x41, 0x4e, 0xb3, 0xba, 0x03, 0xe0, 0x80, 0xab, 0x87, 0x2a, 0xb5, 0xb9, 0xc4, 0x6c, 0x06, 0x98, + 0xc3, 0x82, 0xd0, 0x62, 0xb2, 0x5b, 0xb0, 0xf1, 0x70, 0x68, 0xb7, 0x72, 0x3a, 0x92, 0xcd, 0xf6, + 0x2b, 0x2b, 0x27, 0xe5, 0xb6, 0x09, 0x49, 0xe0, 0x21, 0x95, 0xd4, 0x97, 0x15, 0xd5, 0x2d, 0x5b, + 0x82, 0x5d, 0x79, 0xf5, 0xd4, 0x32, 0x2f, 0x26, 0xbe, 0x1f, 0x31, 0xd6, 0x2e, 0xfe, 0x2c, 0xf1, + 0xd9, 0x49, 0x64, 0xfc, 0xc0, 0x53, 0x5e, 0x7b, 0xa3, 0xd4, 0xaf, 0x13, 0x66, 0x80, 0xd7, 0x50, + 0x31, 0x5a, 0x38, 0x53, 0x8b, 0x79, 0xa1, 0xc0, 0x9f, 0xc9, 0x9a, 0xb6, 0x96, 0x2b, 0x1b, 0xee, + 0x33, 0x8f, 0xff, 0xcf, 0x8f, 0xda, 0x5e, 0xb4, 0x9d, 0x04, 0xb4, 0x23, 0xde, 0x00, 0x08, 0x41, + 0xc0, 0x7e, 0x91, 0xb1, 0xc6, 0xa0, 0x56, 0xf2, 0x80, 0x33, 0x75, 0x47, 0x0b, 0x7e, 0xfb, 0x4d, + 0x8f, 0x78, 0x94, 0x4f, 0xf1, 0xa2, 0x75, 0x25, 0x30, 0x22, 0x6f, 0x95, 0xb1, 0xf8, 0xc4, 0xda, + 0x83, 0x1a, 0x2d, 0xd6, 0xac, 0x22, 0x49, 0xf8, 0x38, 0xe4, 0x7f, 0x64, 0x06, 0x97, 0x5d, 0xac, + 0x36, 0xda, 0xc9, 0x2f, 0xa3, 0x55, 0x86, 0xa0, 0x52, 0xc2, 0xee, 0x0b, 0x3a, 0x57, 0xf0, 0x5a, + 0x95, 0x76, 0x55, 0x34, 0x28, 0xba, 0xa9, 0xa3, 0xaf, 0xb3, 0xc1, 0xd1, 0x7e, 0x67, 0xa2, 0xae, + 0x36, 0x2e, 0x2c, 0x9c, 0xca, 0xf9, 0x48, 0x93, 0xba, 0xa5, 0x54, 0xab, 0x20, 0x46, 0x78, 0xad, + 0xf0, 0xa5, 0x6b, 0x94, 0x44, 0xc8, 0xd5, 0xe0, 0x75, 0x95, 0x9f, 0xfb, 0x0b, 0xbc, 0xf7, 0xfc, + 0xdb, 0x56, 0x3a, 0x4d, 0x2c, 0xd0, 0x59, 0x7d, 0x52, 0x99, 0x63, 0x77, 0x13, 0xca, 0x52, 0xaa, + 0x27, 0x04, 0x21, 0x6d, 0xa4, 0x09, 0x07, 0xf5, 0x46, 0x83, 0x66, 0x96, 0xec, 0xaa, 0x72, 0x6c, + 0x01, 0x38, 0xa2, 0x82, 0x29, 0x1a, 0xb9, 0x21, 0x67, 0xca, 0xf1, 0x51, 0x44, 0x36, 0x63, 0x57, + 0xf9, 0x89, 0x8d, 0x8a, 0x6a, 0x9c, 0x54, 0x45, 0x3c, 0x09, 0xd6, 0xfc, 0x58, 0x40, 0x9b, 0x31, + 0x60, 0x34, 0x5e, 0xff, 0x8a, 0x68, 0xb7, 0xac, 0x66, 0x74, 0xb6, 0xd6, 0x18, 0xa9, 0x79, 0xd0, + 0xee, 0xf0, 0x82, 0xe0, 0x78, 0x2b, 0x61, 0xd0, 0x1b, 0x7b, 0x16, 0xdd, 0xf9, 0xf1, 0x19, 0x6f, + 0x0a, 0xbf, 0x17, 0x8a, 0x21, 0x1b, 0x2c, 0xcd, 0x36, 0x92, 0x98, 0x00, 0xa7, 0xb2, 0x09, 0x7c, + 0x89, 0x2c, 0xd8, 0x1a, 0x40, 0x23, 0xe9, 0x09, 0x81, 0xcd, 0x33, 0xfe, 0xeb, 0x57, 0xdd, 0x88, + 0x20, 0xbf, 0xcc, 0xa9, 0xa5, 0xa3, 0xde, 0x83, 0x89, 0xf0, 0x68, 0x3b, 0x01, 0xbd, 0xdd, 0x32, + 0xbe, 0x2b, 0x1b, 0x33, 0x9b, 0xe8, 0x9c, 0xfd, 0xa4, 0xcc, 0xf6, 0x10, 0xf5, 0x64, 0x35, 0x28, + 0x44, 0xdc, 0x4a, 0x4a, 0x68, 0xbd, 0xfd, 0xa4, 0x05, 0xca, 0xf6, 0xd3, 0xde, 0x1c, 0xe0, 0x32, + 0xf3, 0x25, 0x2a, 0xcc, 0x5b, 0x61, 0xa3, 0x63, 0x13, 0x66, 0x20, 0x9e, 0x71, 0x3a, 0xe7, 0x8c, + 0x7d, 0xff, 0x1b, 0x81, 0x7c, 0x05, 0xf8, 0x88, 0x59, 0x2c, 0x4f, 0x4a, 0x2d, 0xfe, 0x84, 0xf1, + 0xe9, 0x7a, 0xb3, 0xdf, 0xa9, 0x9d, 0xdc, 0xc6, 0x61, 0xcf, 0x8f, 0x67, 0x36, 0x29, 0x38, 0x96, + 0x87, 0x9b, 0xd9, 0x0c, 0x2c, 0x10, 0x0a, 0xd1, 0x77, 0x6c, 0xbd, 0xae, 0x59, 0x2a, 0xcd, 0x6d, + 0x16, 0x8a, 0xce, 0x76, 0x29, 0x3c, 0x20, 0x0e, 0x76, 0x2f, 0x44, 0x7d, 0x36, 0xd5, 0xdf, 0x7f, + 0xab, 0x26, 0x73, 0x00, 0x3f, 0x26, 0x03, 0xbe, 0xa8, 0x5a, 0x4f, 0x1f, 0xef, 0xe1, 0xd1, 0x5f, + 0x66, 0xf9, 0xa0, 0xe6, 0x00, 0xe7, 0x72, 0x4e, 0x8e, 0x07, 0x09, 0xc7, 0xa8, 0x14, 0x97, 0xcb, + 0x92, 0x8b, 0xa7, 0xe8, 0x9f, 0x40, 0xdc, 0x39, 0x5b, 0xf8, 0xb7, 0x84, 0x24, 0x44, 0xce, 0x86, + 0x9d, 0x8c, 0xdb, 0x20, 0x03, 0xea, 0x44, 0xe2, 0x92, 0x44, 0xc3, 0x54, 0x3e, 0x4a, 0x8b, 0xec, + 0x3d, 0xc0, 0xcc, 0x02, 0x22, 0xb1, 0x71, 0x57, 0xbb, 0xed, 0x0b, 0x2f, 0xd7, 0xcd, 0xa6, 0x34, + 0xa0, 0x33, 0x2f, 0x89, 0xd8, 0xc7, 0x18, 0xcb, 0x46, 0x61, 0x6f, 0x66, 0x97, 0xc5, 0xd1, 0x7c, + 0xf4, 0x61, 0x60, 0xad, 0x9c, 0x69, 0xec, 0x43, 0x36, 0x73, 0xa7, 0x99, 0x60, 0xa6, 0x1b, 0xa1, + 0xf2, 0x43, 0x96, 0xc3, 0x6a, 0x2d, 0x66, 0x80, 0x3e, 0xee, 0x7d, 0x63, 0xc0, 0xa0, 0x60, 0x9f, + 0x8d, 0x29, 0xdf, 0x2d, 0x3b, 0x4c, 0x6c, 0x20, 0x9b, 0xa7, 0xc0, 0x8d, 0x89, 0x87, 0x8a, 0x68, + 0x6a, 0xe5, 0x99, 0xdb, 0x00, 0xf0, 0xa6, 0x0f, 0xe8, 0x00, 0xea, 0x58, 0xbc, 0x5a, 0x09, 0xc6, + 0xb6, 0xad, 0xc3, 0x33, 0xca, 0x6b, 0x68, 0xbc, 0x06, 0x4d, 0xaa, 0xd6, 0x9c, 0xb9, 0xf4, 0xda, + 0x3b, 0x03, 0x6e, 0x8d, 0x7a, 0x1a, 0xf3, 0x32, 0x5f, 0x77, 0x83, 0x3d, 0xe9, 0xb0, 0xca, 0xe1, + 0xd6, 0x79, 0xbb, 0x3f, 0x02, 0x77, 0x50, 0x5d, 0xa5, 0x2f, 0x79, 0x55, 0xa3, 0xf3, 0x9a, 0xfe, + 0x9c, 0x67, 0x13, 0x28, 0xaf, 0x45, 0x62, 0x97, 0xa9, 0x6e, 0x14, 0xea, 0x2a, 0xe8, 0x3f, 0x23, + 0x39, 0x34, 0x71, 0x8f, 0x5e, 0x39, 0x86, 0xfb, 0x96, 0xfe, 0x5a, 0xf4, 0xb8, 0x65, 0x7b, 0x44, + 0xf4, 0x56, 0xf1, 0x94, 0x7d, 0x33, 0xd5, 0x4c, 0x59, 0x18, 0xef, 0x62, 0x29, 0x65, 0x72, 0xe9, + 0xb2, 0x1b, 0x3d, 0xbb, 0xc2, 0xbc, 0xfd, 0x79, 0x29, 0x6d, 0xfa, 0xcb, 0xdc, 0xa1, 0x9c, 0x49, + 0x43, 0x8d, 0xbd, 0xe2, 0xaa, 0xb5, 0xfc, 0x63, 0x09, 0x98, 0x02, 0xe5, 0x50, 0xfb, 0x0b, 0x9a, + 0x2b, 0xa2, 0x56, 0xcc, 0xf0, 0xc4, 0xe5, 0x7c, 0xf2, 0xcd, 0xec, 0xa4, 0x70, 0x75, 0x17, 0x7c, + 0xa6, 0xe1, 0x61, 0x2e, 0x15, 0x6e, 0x36, 0xaa, 0xe1, 0x77, 0x64, 0xa6, 0xa5, 0xc0, 0xdc, 0x4e, + 0x03, 0xdc, 0x2b, 0x82, 0x90, 0x3e, 0xa1, 0x25, 0x19, 0xf9, 0x20, 0x72, 0x8b, 0xce, 0x61, 0xc8, + 0x3c, 0x21, 0xf5, 0x46, 0x40, 0xf4, 0x84, 0x86, 0x56, 0xc8, 0x07, 0x7b, 0x64, 0xcf, 0x61, 0xe0, + 0x8a, 0xaa, 0xd0, 0x24, 0x9a, 0x4c, 0x08, 0x4e, 0xe0, 0x28, 0x05, 0x4b, 0x7d, 0x40, 0x02, 0xb6, + 0xb5, 0xb5, 0x19, 0x44, 0x75, 0xa0, 0xff, 0xab, 0x97, 0xa7, 0x5a, 0xe0, 0x2e, 0x1d, 0x8c, 0xef, + 0x1c, 0x92, 0x26, 0x9f, 0x45, 0xca, 0x5e, 0xbe, 0x41, 0xe7, 0xea, 0x0d, 0xd7, 0xc7, 0x4c, 0x0e, + 0xa9, 0x16, 0x2d, 0x05, 0xad, 0x2b, 0x14, 0xbc, 0xed, 0x4d, 0xf1, 0x35, 0xee, 0x61, 0x7b, 0x92, + 0x68, 0x28, 0x86, 0x42, 0xd1, 0x7d, 0x22, 0x5e, 0x3b, 0x65, 0x22, 0x4c, 0x75, 0x06, 0xa4, 0xad, + 0xe6, 0xb8, 0x30, 0x49, 0xe0, 0x6d, 0x83, 0x5e, 0x06, 0x29, 0x60, 0x46, 0x2b, 0x6c, 0x03, 0x2a, + 0x4b, 0x2e, 0x7a, 0xe6, 0x90, 0x42, 0x64, 0xc9, 0x5c, 0x2f, 0x83, 0x24, 0x88, 0x1b, 0xda, 0x8c, + 0x24, 0xe5, 0x79, 0xae, 0x7c, 0x7d, 0x38, 0x81, 0x5b, 0x20, 0x9f, 0xb2, 0x69, 0xb8, 0x09, 0xf4, + 0x2e, 0x42, 0xdf, 0xfe, 0xbd, 0xf3, 0xdd, 0x90, 0x85, 0x8a, 0xb7, 0x23, 0x8a, 0x92, 0x60, 0xdb, + 0xcb, 0x32, 0x32, 0x79, 0xe2, 0x95, 0xf6, 0x66, 0xae, 0x9c, 0xdd, 0x46, 0x0a, 0xc4, 0xfb, 0x0b, + 0x37, 0x32, 0x61, 0x6d, 0x53, 0x71, 0x8a, 0x7c, 0x77, 0x05, 0xf8, 0x54, 0xe0, 0x39, 0x17, 0xe2, + 0x78, 0xc5, 0x2d, 0x73, 0x51, 0x2a, 0x5e, 0x62, 0x86, 0x06, 0xa7, 0xd1, 0x0e, 0xda, 0x8c, 0xc3, + 0x85, 0xfe, 0x37, 0xc4, 0xbe, 0x47, 0x4b, 0xc8, 0x34, 0xcf, 0x12, 0x87, 0x82, 0x53, 0xce, 0x2e, + 0x03, 0xa3, 0xbe, 0x63, 0x8e, 0xa6, 0x3c, 0xc7, 0x19, 0x7f, 0x08, 0xee, 0xa4, 0x0a, 0x39, 0x83, + 0x40, 0x96, 0x52, 0xef, 0x7c, 0xd7, 0x2b, 0xad, 0x2d, 0x4c, 0x01, 0x30, 0xe3, 0x78, 0xd3, 0xb2, + 0x09, 0xf6, 0xef, 0x15, 0x81, 0x7a, 0xdd, 0x6a, 0x29, 0x3e, 0xdf, 0x97, 0x21, 0xd7, 0xdc, 0xb1, + 0xe0, 0x76, 0x52, 0xdd, 0x4a, 0xc1, 0x25, 0xc1, 0xc3, 0x35, 0xff, 0x92, 0x95, 0x8f, 0xc2, 0x59, + 0xee, 0x49, 0x3f, 0x46, 0xc7, 0x5b, 0xd1, 0x39, 0x2d, 0x6f, 0x11, 0x84, 0xa4, 0x5b, 0x73, 0x4e, + 0xaa, 0xa8, 0x22, 0x63, 0xd0, 0x16, 0x93, 0x55, 0x1e, 0xd8, 0x14, 0x0f, 0x31, 0xe7, 0x6d, 0xc9, + 0xca, 0xb4, 0x9e, 0x5d, 0xb9, 0xf9, 0x50, 0x89, 0x54, 0x54, 0x13, 0xac, 0x60, 0xd8, 0x14, 0x9a, + 0x85, 0xee, 0x7f, 0xdf, 0xf8, 0x1b, 0xe8, 0x30, 0xde, 0x83, 0x32, 0x25, 0xfd, 0xde, 0xbb, 0x82, + 0x32, 0xd4, 0xad, 0x27, 0x0f, 0x19, 0x16, 0xb4, 0xe2, 0xbb, 0x0b, 0x6f, 0x9c, 0x4e, 0x7c, 0x05, + 0x33, 0x88, 0x10, 0xf0, 0x20, 0xa4, 0x50, 0x00, 0x79, 0xc6, 0x45, 0x33, 0xc1, 0xb5, 0x55, 0x01, + 0x93, 0x87, 0x6f, 0x07, 0xb6, 0xbb, 0x5f, 0x77, 0xe1, 0xfe, 0x8e, 0x34, 0x92, 0xf3, 0xba, 0x1a, + 0x10, 0xfe, 0x63, 0xb8, 0x44, 0x1b, 0x99, 0x9c, 0x4c, 0x18, 0x75, 0xf2, 0xd5, 0xe8, 0x77, 0x3d, + 0x65, 0xec, 0x6f, 0xbb, 0x80, 0x49, 0x73, 0xde, 0x1a, 0x5f, 0x5e, 0x55, 0x20, 0x90, 0xe3, 0xea, + 0x4a, 0x57, 0x89, 0x63, 0x83, 0xa4, 0xc9, 0x58, 0x02, 0x24, 0x37, 0x49, 0x48, 0xe5, 0xb4, 0x2d, + 0x0d, 0xdd, 0x2c, 0xb6, 0x98, 0xea, 0x13, 0x0c, 0x0b, 0x1e, 0xf0, 0x1e, 0xd3, 0x35, 0x1d, 0x5d, + 0xc8, 0xd7, 0x2f, 0xe5, 0xb9, 0x50, 0x1c, 0xdc, 0xd7, 0x8f, 0x75, 0x59, 0x33, 0x57, 0xae, 0xb8, + 0x03, 0x7b, 0x5c, 0x3c, 0xe4, 0x94, 0xb1, 0x81, 0x8b, 0xc9, 0xc6, 0x8e, 0x4d, 0xa0, 0x1a, 0x69, + 0xe4, 0x2d, 0xff, 0x3c, 0x2a, 0x8f, 0x90, 0xfd, 0x56, 0xf4, 0xca, 0x75, 0xae, 0x00, 0x74, 0x86, + 0x79, 0xa7, 0xe7, 0xf3, 0x9e, 0x98, 0xdc, 0x65, 0xbc, 0xb8, 0xa9, 0x77, 0xdd, 0xa2, 0xfd, 0xf3, + 0xd7, 0x12, 0xd6, 0x48, 0xb9, 0x47, 0x2e, 0x02, 0xb8, 0x0a, 0x97, 0x25, 0xd3, 0x50, 0xa1, 0xdf, + 0x67, 0x82, 0x83, 0xe6, 0xc4, 0x10, 0xd8, 0xd3, 0xe5, 0xfc, 0x1c, 0x52, 0xd4, 0xe3, 0x19, 0xed, + 0xac, 0xeb, 0x86, 0xcb, 0x0e, 0x29, 0x5d, 0xab, 0xb9, 0x2c, 0x38, 0x4a, 0x0d, 0x21, 0xe1, 0x7c, + 0x46, 0x89, 0x55, 0xf2, 0x67, 0x47, 0x5a, 0x28, 0x81, 0xc6, 0xe5, 0xfb, 0x76, 0xe5, 0x12, 0x46, + 0xbe, 0x7a, 0xf4, 0xaa, 0xab, 0xa8, 0x14, 0x4e, 0x92, 0x15, 0xb9, 0x32, 0xcc, 0x16, 0xcd, 0x24, + 0x68, 0xcb, 0x0d, 0x47, 0xfc, 0x9f, 0xe2, 0x77, 0x83, 0x71, 0xda, 0x96, 0x73, 0x4f, 0x82, 0xad, + 0x73, 0xd3, 0xd8, 0xd8, 0x57, 0x64, 0x7b, 0x5d, 0x6e, 0x26, 0x6f, 0x73, 0x49, 0x93, 0x9d, 0x83, + 0xa4, 0x01, 0xc2, 0x91, 0x67, 0xc6, 0xb7, 0x43, 0xc5, 0x44, 0xa8, 0x9b, 0x88, 0xe9, 0x37, 0xc3, + 0x63, 0x93, 0xd2, 0x90, 0xd8, 0xf5, 0x7a, 0x0d, 0x63, 0x79, 0xfb, 0xbb, 0x98, 0x40, 0x60, 0x95, + 0x2f, 0x2b, 0x3c, 0xaa, 0xd0, 0xc4, 0x42, 0x7a, 0x91, 0x70, 0x21, 0x89, 0x25, 0x67, 0x3c, 0x8f, + 0xc3, 0x30, 0xed, 0x0e, 0xa1, 0xbf, 0x44, 0xa7, 0x38, 0xef, 0xe2, 0xc9, 0x42, 0xdb, 0xe7, 0xd6, + 0x75, 0xbf, 0x74, 0xf3, 0x57, 0xb6, 0x7b, 0x36, 0x1f, 0x0b, 0xab, 0x94, 0xac, 0x29, 0x3b, 0xa0, + 0x8d, 0x94, 0x16, 0x5b, 0x90, 0x3f, 0x81, 0x0e, 0x20, 0xb7, 0xdf, 0x83, 0x2c, 0xf8, 0x2f, 0x36, + 0xc4, 0x3c, 0x94, 0x8c, 0xd2, 0x14, 0x79, 0x2a, 0x57, 0xbe, 0x83, 0x35, 0x9c, 0xf5, 0x9c, 0xca, + 0x19, 0x1e, 0xc4, 0x7c, 0xc4, 0xc6, 0x13, 0x6b, 0x1a, 0xa7, 0x26, 0x28, 0xf6, 0xf6, 0xbd, 0x58, + 0xbc, 0x7a, 0xb7, 0x3d, 0x96, 0x80, 0xa2, 0x6d, 0x63, 0x55, 0x94, 0xbb, 0xba, 0x9b, 0xa1, 0x0f, + 0x19, 0xd0, 0x9e, 0x21, 0xd6, 0x93, 0xfb, 0x30, 0xc4, 0xe4, 0x52, 0x92, 0xf2, 0x7a, 0xd4, 0xb7, + 0xed, 0x4d, 0x68, 0xf2, 0x32, 0x32, 0x5b, 0xe3, 0xd8, 0x40, 0x2b, 0x11, 0x16, 0x31, 0xdc, 0xd1, + 0x13, 0x43, 0x58, 0x55, 0x82, 0xa6, 0x80, 0x0c, 0x22, 0xd1, 0x82, 0xe0, 0x4b, 0x0a, 0xd9, 0x72, + 0xa4, 0x78, 0xb5, 0x3e, 0x62, 0xf4, 0x2f, 0x5c, 0x95, 0xe2, 0x69, 0x6b, 0x1c, 0x86, 0xc5, 0x2f, + 0xc2, 0x5f, 0xab, 0x80, 0x3d, 0xb5, 0xb5, 0xd3, 0x0d, 0x38, 0x8c, 0xdd, 0x62, 0xf9, 0x26, 0x54, + 0xed, 0xfe, 0x86, 0xec, 0x83, 0x70, 0x3d, 0x9a, 0xb9, 0x3f, 0xc9, 0x41, 0xbc, 0x9b, 0xcc, 0x94, + 0xba, 0xda, 0x12, 0x9a, 0xed, 0xfc, 0x3d, 0x4a, 0x4d, 0xf8, 0xd3, 0x1d, 0xdf, 0x4e, 0x6e, 0x6d, + 0x47, 0x8c, 0xbc, 0x9a, 0x41, 0x6b, 0x95, 0x06, 0x04, 0xca, 0xd4, 0x4f, 0xb6, 0x25, 0xc4, 0xe5, + 0x30, 0x17, 0xfe, 0x3a, 0xbe, 0xed, 0x53, 0xa3, 0x8e, 0xbf, 0xa9, 0x33, 0x65, 0x5f, 0x92, 0x83, + 0x16, 0x8d, 0x7c, 0xa1, 0x9d, 0x06, 0x6c, 0x20, 0xb8, 0xc2, 0xcb, 0xd3, 0xd3, 0x43, 0xda, 0xd9, + 0xf1, 0xf9, 0x32, 0x70, 0x2b, 0xf1, 0x6b, 0xd4, 0x55, 0x61, 0xa3, 0x09, 0xe9, 0xcc, 0xcd, 0x84, + 0xad, 0x2c, 0x52, 0x1b, 0xa1, 0xe8, 0xc4, 0x30, 0x63, 0xcb, 0x2d, 0x1c, 0x41, 0xdd, 0x4f, 0x26, + 0x5e, 0x05, 0x2a, 0x09, 0xb9, 0xd8, 0x04, 0x1d, 0x93, 0x7b, 0x08, 0xd2, 0xfa, 0xc1, 0x4d, 0x71, + 0xe6, 0xdb, 0x26, 0x31, 0x81, 0x5b, 0x8c, 0xaa, 0x6a, 0x18, 0x97, 0xdb, 0x70, 0xa4, 0x36, 0xac, + 0x79, 0x08, 0x38, 0x4b, 0x65, 0x82, 0xaf, 0xe4, 0xf5, 0xe3, 0x4c, 0xef, 0xf9, 0x9e, 0xdb, 0xfc, + 0x51, 0x25, 0x03, 0x09, 0x93, 0xda, 0xa2, 0x1c, 0x50, 0x55, 0xc8, 0x3b, 0x70, 0xe5, 0xbb, 0x95, + 0x5f, 0xa9, 0xe0, 0xdf, 0xd4, 0xbd, 0xaa, 0xf4, 0x08, 0xa8, 0xd4, 0xc7, 0x69, 0xdd, 0x58, 0xab, + 0x79, 0x75, 0xb6, 0xc9, 0xab, 0xfc, 0x46, 0xf2, 0x78, 0x1c, 0x58, 0x83, 0x30, 0x3c, 0x8e, 0xc9, + 0xa5, 0xa6, 0x8c, 0x83, 0xa9, 0x4e, 0x21, 0xc7, 0x67, 0x75, 0x59, 0x92, 0x86, 0xbc, 0xc4, 0x2c, + 0x27, 0xd5, 0x4b, 0x11, 0x0d, 0x04, 0x4b, 0xd5, 0x07, 0x64, 0x61, 0x13, 0x1d, 0x2a, 0x09, 0xf7, + 0x5c, 0xc7, 0x5d, 0x1e, 0x28, 0xd2, 0x4e, 0xdd, 0xca, 0xa8, 0xae, 0x7e, 0xb8, 0xb9, 0x56, 0x34, + 0x0a, 0x36, 0xe1, 0xbe, 0x23, 0x40, 0x8b, 0x92, 0xfd, 0x2c, 0x5f, 0xda, 0x4d, 0x97, 0xb6, 0xff, + 0x58, 0xf9, 0xbe, 0x64, 0xb9, 0x1b, 0x77, 0xee, 0x0c, 0x82, 0xb4, 0xed, 0x1b, 0x2b, 0x7c, 0x0f, + 0x73, 0xdd, 0xf7, 0x6c, 0x75, 0x28, 0x1b, 0xfb, 0x4f, 0x79, 0xa4, 0x3b, 0x50, 0x7b, 0xbf, 0xee, + 0xa0, 0xf2, 0xba, 0x60, 0xf7, 0x4d, 0xb2, 0x4d, 0x4b, 0x18, 0xa9, 0x7d, 0x1e, 0xeb, 0xb8, 0xe7, + 0xb5, 0xfd, 0x97, 0x64, 0x5f, 0x71, 0x47, 0xd5, 0x08, 0x0a, 0x84, 0x07, 0x84, 0x43, 0x92, 0x59, + 0xdc, 0x8d, 0xdd, 0x79, 0x05, 0x87, 0xaa, 0x1e, 0xd1, 0x59, 0x26, 0x3e, 0x87, 0xe4, 0x8f, 0xa0, + 0x5b, 0x40, 0xaa, 0x86, 0xaa, 0x8e, 0x9a, 0x8d, 0x18, 0x3c, 0x1e, 0x77, 0x98, 0x6d, 0x55, 0x0e, + 0xda, 0x45, 0x16, 0x85, 0x87, 0x16, 0x8c, 0xb0, 0x50, 0xfa, 0xf7, 0xf8, 0xc7, 0xc7, 0xa1, 0xe4, + 0x54, 0x28, 0x42, 0x8e, 0x21, 0x5b, 0x6e, 0x0c, 0x5b, 0x0a, 0x91, 0x07, 0x8a, 0x77, 0xbc, 0xb3, + 0x85, 0x39, 0x2f, 0xc9, 0x89, 0x67, 0x3b, 0x2b, 0x59, 0x5a, 0xe3, 0x77, 0x40, 0x1b, 0x06, 0x25, + 0x91, 0xe7, 0x1e, 0x4c, 0x3c, 0x08, 0xd2, 0x7e, 0x00, 0xea, 0x69, 0xa0, 0x97, 0x74, 0xf5, 0x36, + 0x19, 0x05, 0x59, 0xd9, 0x64, 0x77, 0xe9, 0x80, 0x63, 0xd4, 0xd5, 0x8e, 0x32, 0xd2, 0x6a, 0x19, + 0x1e, 0x49, 0xae, 0x07, 0xd5, 0xa9, 0x72, 0x75, 0xbd, 0x6f, 0xaa, 0xb7, 0x09, 0x68, 0xbf, 0x6c, + 0x6b, 0x75, 0xe0, 0x71, 0xb8, 0xd1, 0x1b, 0xc9, 0xaa, 0x11, 0x14, 0xfb, 0xa7, 0xe1, 0x35, 0x6b, + 0xd5, 0xdd, 0x06, 0xd9, 0x9e, 0x0e, 0x67, 0x6e, 0xa9, 0x56, 0x66, 0x2c, 0x91, 0xac, 0x7c, 0x9c, + 0xd4, 0x2e, 0x67, 0xf7, 0x17, 0x18, 0x43, 0x6c, 0x0b, 0xd7, 0x26, 0x37, 0x95, 0x5e, 0xa8, 0xc2, + 0x5a, 0x9b, 0x39, 0x63, 0x54, 0x24, 0x0d, 0x1c, 0x06, 0xc4, 0x46, 0xc1, 0x41, 0xb6, 0x45, 0xf2, + 0x49, 0x3b, 0x4a, 0x89, 0x1c, 0x09, 0x81, 0xe3, 0xb5, 0xfe, 0xe6, 0xfd, 0x7f, 0xef, 0x86, 0xd8, + 0xa5, 0xa8, 0x0f, 0x00, 0x30, 0xf9, 0xfe, 0x1f, 0x8e, 0x9c, 0xdf, 0xd4, 0x19, 0x73, 0x4a, 0xae, + 0x90, 0x11, 0x16, 0xac, 0x9a, 0xf0, 0xc0, 0x1b, 0x0f, 0x3c, 0xa6, 0xa4, 0xcf, 0xd9, 0xf1, 0x9f, + 0x5c, 0x98, 0x9e, 0xf3, 0xaf, 0x7e, 0xb4, 0x80, 0xa2, 0x84, 0x03, 0xe4, 0x72, 0x0f, 0x92, 0xe0, + 0x90, 0xe2, 0x45, 0x73, 0x4d, 0x51, 0xf5, 0x04, 0x15, 0x70, 0x0f, 0x2a, 0x4b, 0x82, 0x9a, 0x0f, + 0xe7, 0xb4, 0x77, 0x9e, 0x31, 0xe5, 0xc9, 0x8a, 0xa5, 0x9a, 0xf8, 0x06, 0x61, 0xa4, 0x52, 0x58, + 0xde, 0x8f, 0x84, 0x6e, 0x1b, 0x10, 0x92, 0x9f, 0x5e, 0x82, 0x50, 0x61, 0x6a, 0x47, 0x0b, 0xcf, + 0x06, 0xe8, 0x24, 0x7c, 0x24, 0x26, 0xce, 0x28, 0x57, 0x31, 0x04, 0xcd, 0xbc, 0x6a, 0x72, 0xb4, + 0xc2, 0x09, 0xa2, 0x31, 0xb1, 0xa3, 0x88, 0xcc, 0xe3, 0x4f, 0x19, 0xb2, 0x78, 0xd2, 0x29, 0xdf, + 0xd6, 0x80, 0xe3, 0x36, 0x8a, 0x97, 0x91, 0x85, 0x9f, 0xeb, 0xcc, 0x09, 0x46, 0x05, 0xbb, 0x0b, + 0x56, 0x40, 0x0c, 0x98, 0x7f, 0x31, 0x8b, 0xb8, 0x0e, 0x36, 0x93, 0xd3, 0xb4, 0xf2, 0xba, 0x52, + 0x6d, 0x1f, 0x99, 0x06, 0x9e, 0x96, 0x3d, 0x56, 0x82, 0xc4, 0xf3, 0x69, 0xb1, 0x68, 0x93, 0x1b, + 0x9a, 0xfb, 0x64, 0x43, 0xa2, 0x49, 0x8a, 0xf9, 0x6d, 0x23, 0xe5, 0x7e, 0x76, 0x06, 0x27, 0x7f, + 0x19, 0x13, 0x4e, 0x94, 0x61, 0x23, 0x55, 0x53, 0xeb, 0xbd, 0x03, 0x87, 0x39, 0x9a, 0xdd, 0x30, + 0xe0, 0x79, 0x3f, 0x9b, 0x5e, 0xf6, 0xaf, 0x15, 0x8d, 0xb2, 0xff, 0xba, 0x12, 0x3a, 0xe5, 0x98, + 0xee, 0xe4, 0x88, 0x48, 0xb6, 0x0d, 0x83, 0x70, 0xae, 0x23, 0xa6, 0x18, 0xa1, 0x52, 0xdb, 0xac, + 0x7a, 0x67, 0x80, 0x5e, 0x89, 0x0f, 0x1f, 0xf4, 0x96, 0xa1, 0x65, 0x1d, 0x20, 0x08, 0xba, 0x4c, + 0x94, 0xa8, 0xc5, 0x67, 0x91, 0x5b, 0x4c, 0xa0, 0xe8, 0x47, 0x19, 0x44, 0x99, 0xc0, 0xaf, 0x04, + 0xa9, 0xe1, 0x24, 0x97, 0x47, 0x07, 0x8b, 0xef, 0x2d, 0x1a, 0x60, 0x1b, 0xec, 0x01, 0xf5, 0x7e, + 0xe4, 0x9b, 0xbe, 0x6f, 0x20, 0x21, 0xc2, 0xde, 0x44, 0x74, 0xef, 0x1a, 0x63, 0xc8, 0x81, 0xf5, + 0x2f, 0x96, 0xe9, 0xbc, 0xe0, 0x5d, 0xa5, 0xb5, 0x7a, 0x5f, 0x6e, 0xc3, 0x2d, 0x80, 0x8c, 0x56, + 0xe6, 0x75, 0x81, 0x49, 0x68, 0x39, 0x5d, 0x96, 0x2c, 0x58, 0x83, 0x42, 0xa2, 0xd6, 0x3e, 0xe0, + 0x0b, 0xe9, 0x2d, 0x40, 0x2b, 0xa7, 0x5d, 0x17, 0xab, 0x2c, 0x9d, 0x5c, 0x76, 0x00, 0x4d, 0x6c, + 0x4e, 0x38, 0xa4, 0x1c, 0x26, 0x24, 0x10, 0x18, 0xa0, 0x28, 0xb5, 0x35, 0x0d, 0x72, 0x3a, 0xfd, + 0x99, 0x16, 0xfd, 0x4c, 0x37, 0x64, 0x1f, 0xb3, 0xb3, 0x77, 0x5f, 0xe5, 0xaa, 0x7e, 0x8d, 0xab, + 0x2c, 0xc6, 0xc5, 0x89, 0xcb, 0x39, 0x02, 0x5d, 0x35, 0xe2, 0x4c, 0x0e, 0x74, 0x5f, 0x76, 0x9f, + 0xf9, 0x17, 0x11, 0xd1, 0x20, 0x31, 0x1f, 0xd6, 0x1a, 0x32, 0x0d, 0xed, 0x99, 0xdb, 0xd4, 0xf2, + 0xf1, 0x1e, 0x32, 0xb4, 0x01, 0xfa, 0xb9, 0x45, 0x53, 0xae, 0x65, 0x7f, 0xf5, 0xbc, 0x2b, 0xbd, + 0x0b, 0x42, 0x58, 0x8d, 0xb3, 0x48, 0x09, 0xa4, 0x4e, 0x9b, 0x3c, 0xca, 0x6e, 0xbd, 0x9a, 0x24, + 0x5c, 0xc7, 0x1b, 0x72, 0xb0, 0x48, 0x9f, 0xa2, 0x96, 0x95, 0x6b, 0x25, 0xda, 0xc1, 0x6c, 0x1f, + 0x34, 0x83, 0x91, 0x7d, 0x3e, 0x38, 0xcb, 0x31, 0xab, 0xa7, 0xac, 0xa1, 0xb0, 0x2c, 0x78, 0x9f, + 0x6a, 0x83, 0x37, 0x6f, 0x2d, 0x87, 0xa5, 0x6e, 0x57, 0xb3, 0x78, 0xb9, 0xc8, 0xf4, 0xb5, 0xc4, + 0xe0, 0x7f, 0x56, 0x41, 0x78, 0xb8, 0x6c, 0x8e, 0x98, 0xa0, 0x2a, 0xd5, 0x92, 0x0c, 0x18, 0xfa, + 0x43, 0x70, 0xee, 0x6b, 0x06, 0x50, 0x5b, 0xa8, 0x7e, 0xa7, 0x0d, 0xb5, 0x58, 0xb2, 0xa6, 0xda, + 0x58, 0x70, 0x74, 0x2b, 0x75, 0x5b, 0x97, 0xa4, 0x24, 0xa6, 0x32, 0xcd, 0x2f, 0xde, 0xf8, 0xfa, + 0x03, 0x6d, 0x03, 0x2b, 0xa6, 0x44, 0x52, 0xac, 0xde, 0xfe, 0xcd, 0x21, 0x01, 0x14, 0x3b, 0xa9, + 0xbb, 0x5a, 0x12, 0xb7, 0xb3, 0x64, 0xfa, 0xff, 0x43, 0x86, 0xef, 0xcd, 0x75, 0x8c, 0xb6, 0xc5, + 0xca, 0x9e, 0xfa, 0x90, 0xf6, 0xcb, 0xcb, 0xd4, 0x43, 0x23, 0xc3, 0xa8, 0xb5, 0x6b, 0x7e, 0x08, + 0x1a, 0x7d, 0x28, 0x5b, 0x14, 0x50, 0x27, 0xa3, 0x2c, 0x37, 0x43, 0xaf, 0x1d, 0xba, 0x76, 0xd8, + 0x24, 0xe4, 0xa3, 0xbe, 0x89, 0x6a, 0x28, 0x91, 0x3e, 0xdb, 0x10, 0xfd, 0x7f, 0xa8, 0x5c, 0xe1, + 0x94, 0xf4, 0xf3, 0xe9, 0x37, 0xa4, 0x41, 0x5c, 0x07, 0x1a, 0x15, 0x1f, 0xaf, 0x90, 0x0f, 0xae, + 0xf5, 0x39, 0x2f, 0x00, 0x92, 0x56, 0x2a, 0x88, 0x6d, 0x2e, 0x74, 0x51, 0xc6, 0xd5, 0x2b, 0x76, + 0xd6, 0xe1, 0xed, 0x17, 0x32, 0xc8, 0x39, 0x6c, 0xe3, 0x31, 0xfa, 0x8e, 0x0a, 0x2f, 0xcd, 0xc6, + 0x62, 0x4e, 0x53, 0x90, 0xa0, 0x74, 0xa0, 0x88, 0x2b, 0xe8, 0x68, 0x1a, 0x4a, 0xe7, 0x2d, 0x65, + 0xb1, 0x7a, 0x01, 0xe6, 0x63, 0xd9, 0xc5, 0x92, 0xbd, 0x48, 0x7d, 0xea, 0xa0, 0x31, 0xc1, 0xc7, + 0xbc, 0xe9, 0x31, 0x07, 0x8d, 0x39, 0xc2, 0x42, 0x62, 0x3f, 0x65, 0x0e, 0xb0, 0x90, 0xff, 0x72, + 0x2e, 0xc0, 0xf5, 0xf5, 0x58, 0xa1, 0xbb, 0x67, 0xb8, 0x9f, 0x69, 0xfb, 0x6f, 0xe9, 0xb2, 0xf6, + 0x3e, 0xba, 0x0c, 0x2c, 0x5f, 0xa0, 0xcb, 0xf8, 0x5d, 0x90, 0x49, 0x9e, 0x4e, 0x86, 0x8c, 0xc2, + 0x7e, 0x82, 0x90, 0x12, 0x69, 0x59, 0x24, 0xb7, 0xce, 0x61, 0x10, 0x1a, 0xfd, 0xcf, 0xbd, 0x6a, + 0xf2, 0xd4, 0x20, 0x59, 0xeb, 0x26, 0x5f, 0x66, 0x21, 0xdb, 0xa6, 0x47, 0x6c, 0x70, 0xfe, 0x71, + 0x7a, 0x34, 0x68, 0x8e, 0x10, 0xce, 0x20, 0xc1, 0xf4, 0xe9, 0xce, 0xea, 0xef, 0x8f, 0x3e, 0xe4, + 0x2d, 0xb0, 0x1c, 0x0c, 0xf5, 0xcd, 0xf3, 0xb0, 0x95, 0x96, 0x3b, 0xe8, 0x16, 0x60, 0xb2, 0x6a, + 0x32, 0xd2, 0x36, 0x75, 0x32, 0x87, 0xa9, 0x43, 0xf9, 0xa2, 0xa6, 0xe9, 0x7c, 0xc8, 0xf8, 0x0a, + 0x6e, 0xc7, 0x2a, 0x34, 0x7a, 0x81, 0xdd, 0xca, 0x75, 0xc6, 0xcb, 0x4d, 0x6b, 0x02, 0xe5, 0x83, + 0x00, 0x6d, 0xe2, 0x82, 0xc2, 0x80, 0xaa, 0x95, 0x6a, 0x33, 0xd7, 0xfe, 0x91, 0x51, 0xa3, 0x21, + 0x08, 0x08, 0x3a, 0x3a, 0x2e, 0xc0, 0xf4, 0x69, 0x05, 0xd8, 0x7c, 0x7e, 0x85, 0xc5, 0x45, 0x6f, + 0xc3, 0x62, 0x04, 0x64, 0x8a, 0x8b, 0xec, 0x42, 0x42, 0x33, 0x4e, 0x03, 0xae, 0x54, 0x3d, 0x59, + 0x14, 0xa7, 0x69, 0xd6, 0x05, 0x9e, 0x88, 0x01, 0x3c, 0x18, 0x9f, 0x6b, 0xbc, 0xa6, 0xd5, 0x87, + 0x6c, 0xfd, 0xd0, 0xbb, 0x65, 0xa6, 0x10, 0x91, 0x21, 0xb0, 0x85, 0x2d, 0xb9, 0xfc, 0x89, 0x64, + 0x9b, 0xf3, 0x91, 0x49, 0x60, 0xc9, 0x52, 0x69, 0x3b, 0xa2, 0x86, 0x81, 0x76, 0x74, 0x26, 0x4a, + 0x8f, 0xb9, 0x36, 0xfa, 0xb1, 0x8a, 0x42, 0x6b, 0xa6, 0xd1, 0x06, 0x2a, 0x67, 0x1c, 0x35, 0x3b, + 0xe1, 0x14, 0x4f, 0x0c, 0xcb, 0x46, 0x50, 0x1b, 0x78, 0xdf, 0x99, 0x14, 0xfe, 0x4c, 0xd4, 0x64, + 0x77, 0xba, 0x74, 0xdc, 0x44, 0x40, 0x1d, 0x7e, 0xb1, 0x1f, 0x04, 0xdd, 0xd5, 0xf0, 0x80, 0x03, + 0x3d, 0x6c, 0x20, 0x2c, 0x13, 0x11, 0xa6, 0x98, 0x89, 0x51, 0xd7, 0x82, 0xfe, 0xdd, 0xaa, 0x9f, + 0x03, 0x2b, 0x26, 0x82, 0x2b, 0xd7, 0x43, 0x48, 0x7e, 0x52, 0x14, 0x3d, 0x5f, 0xed, 0x73, 0xde, + 0x44, 0xf7, 0x6a, 0x8d, 0x5a, 0xd2, 0xa2, 0xb0, 0x82, 0x7a, 0xfb, 0x97, 0x4c, 0x71, 0x61, 0xe5, + 0x4d, 0xd2, 0xd6, 0xcb, 0xa9, 0xb3, 0xcd, 0x51, 0x58, 0x02, 0xb8, 0x05, 0x92, 0x16, 0x1b, 0xbc, + 0x6f, 0x0f, 0x58, 0x37, 0xef, 0x2f, 0xf6, 0x22, 0xb7, 0x7f, 0xeb, 0xf0, 0xbe, 0x4f, 0x36, 0x48, + 0x78, 0xb8, 0x3b, 0x59, 0x0c, 0x4b, 0x61, 0x37, 0x5d, 0x7c, 0x77, 0xa3, 0xb3, 0xa7, 0x6f, 0xe3, + 0x26, 0xf6, 0x50, 0x9f, 0x6e, 0x6c, 0x6b, 0x17, 0x22, 0x3b, 0x4c, 0x83, 0x13, 0x44, 0x29, 0x98, + 0x38, 0xc6, 0xa4, 0x7b, 0xb5, 0xbc, 0x55, 0x2d, 0xa5, 0xc8, 0x3f, 0x0b, 0x3b, 0xd3, 0xc7, 0x32, + 0x97, 0xde, 0x11, 0x0d, 0x47, 0xf3, 0xa2, 0x93, 0x47, 0xb2, 0xdd, 0x53, 0xa7, 0x1c, 0xac, 0x97, + 0x96, 0x4d, 0xb0, 0x85, 0xcd, 0x3c, 0x52, 0xb1, 0xd0, 0x2d, 0xcd, 0x26, 0xad, 0x38, 0xe8, 0xf4, + 0xf3, 0x24, 0xf9, 0x30, 0xb9, 0x73, 0x1d, 0xb6, 0x61, 0xae, 0x02, 0xf3, 0xf7, 0xb4, 0x3b, 0x84, + 0xb5, 0x64, 0x93, 0x31, 0xa5, 0x07, 0xd3, 0x15, 0x08, 0x5b, 0x79, 0x0e, 0x03, 0x15, 0x17, 0xfc, + 0xb5, 0xe4, 0xc1, 0x17, 0x78, 0xb8, 0xea, 0x04, 0x2d, 0xc0, 0x82, 0xe7, 0x50, 0x26, 0xab, 0xc3, + 0x7d, 0x64, 0xf3, 0x16, 0x20, 0x7a, 0xd7, 0x3f, 0xfd, 0xa1, 0x6c, 0xfc, 0x0d, 0xdf, 0x7f, 0xc2, + 0x3b, 0x28, 0x98, 0x63, 0x0f, 0xc3, 0x36, 0xc3, 0xf6, 0x33, 0x9e, 0x94, 0xdb, 0xe2, 0x46, 0xc8, + 0xff, 0x23, 0xce, 0x1d, 0xb4, 0x8b, 0xa3, 0xaf, 0x3a, 0x70, 0x1c, 0xdd, 0xe0, 0x16, 0xbf, 0xc1, + 0x5f, 0xf6, 0x8c, 0x9e, 0x3d, 0xfc, 0x6a, 0x8b, 0x21, 0xf5, 0x6b, 0xc7, 0x70, 0x7f, 0x5a, 0xde, + 0x8b, 0x18, 0x88, 0x04, 0xb3, 0x05, 0xca, 0xfb, 0x83, 0xd8, 0xc7, 0x4d, 0x17, 0xe9, 0xc7, 0xc0, + 0x0c, 0x3a, 0x72, 0x83, 0xd5, 0x6b, 0x2e, 0x6b, 0xaa, 0xae, 0x4d, 0x55, 0x52, 0xda, 0xf1, 0x8e, + 0x42, 0x13, 0xbe, 0x4b, 0xfd, 0x45, 0x88, 0x48, 0xf7, 0xc9, 0xfc, 0xbd, 0xa2, 0xbf, 0x65, 0xd2, + 0x82, 0x1b, 0xd6, 0x29, 0xda, 0x35, 0xd8, 0x0c, 0x7e, 0x0e, 0x17, 0x3c, 0xf7, 0xf1, 0x84, 0x5b, + 0x33, 0x85, 0x05, 0x96, 0x49, 0x3d, 0xd2, 0x5f, 0xdc, 0x69, 0x49, 0x28, 0x9f, 0xd1, 0x1c, 0x52, + 0x2b, 0x6a, 0x20, 0xcc, 0x6d, 0x50, 0x05, 0x69, 0x26, 0x2e, 0xa6, 0x5d, 0x91, 0x14, 0xf5, 0x1e, + 0x30, 0xa6, 0xf6, 0xcd, 0x35, 0xcf, 0x32, 0x4b, 0x01, 0x67, 0x97, 0x1a, 0x1d, 0xd0, 0x5f, 0x00, + 0x56, 0xa0, 0x89, 0x1b, 0x9c, 0x78, 0xe3, 0x16, 0x4a, 0xab, 0xc4, 0x6d, 0xd8, 0xa3, 0xf1, 0x1d, + 0x23, 0x01, 0x83, 0xfc, 0xbe, 0xb5, 0xed, 0x41, 0xc9, 0xbc, 0xce, 0x85, 0x6e, 0x54, 0xae, 0xac, + 0x8f, 0x76, 0x66, 0x55, 0x4f, 0x0b, 0xbe, 0xa5, 0x53, 0x35, 0xa1, 0x56, 0x00, 0x4c, 0xdd, 0x51, + 0xd9, 0xbc, 0x30, 0xfc, 0x70, 0x05, 0xbb, 0x95, 0x49, 0xd2, 0xf4, 0x5f, 0x34, 0x31, 0x32, 0x4a, + 0xfd, 0x88, 0xfe, 0x51, 0x56, 0x90, 0xb4, 0xec, 0xb1, 0xaa, 0x4e, 0x70, 0x4f, 0x51, 0x4d, 0x90, + 0xbd, 0xf3, 0x92, 0xad, 0xee, 0xe8, 0x0c, 0x37, 0x12, 0x80, 0x3a, 0x79, 0x46, 0x2e, 0xff, 0xee, + 0x9d, 0x34, 0xa3, 0x7d, 0x13, 0xcc, 0x3f, 0x34, 0xe2, 0xe5, 0x20, 0x10, 0xd9, 0x67, 0x23, 0xd8, + 0x79, 0xae, 0x5f, 0x05, 0x5c, 0x9c, 0xc5, 0x32, 0xcc, 0x7d, 0x3a, 0x5a, 0x3f, 0x18, 0xf0, 0x99, + 0xed, 0xf4, 0xd2, 0x46, 0x24, 0xef, 0xf9, 0x8a, 0x9a, 0xe6, 0x25, 0x1d, 0x1c, 0x01, 0xc9, 0x0d, + 0x83, 0x92, 0x8a, 0x4d, 0xf2, 0xae, 0x03, 0xbb, 0x92, 0x2e, 0x32, 0xa5, 0x2a, 0x48, 0xdc, 0x6d, + 0x4f, 0xde, 0x74, 0x6e, 0xc1, 0x44, 0xf8, 0x58, 0x10, 0x96, 0xf4, 0xa5, 0xe7, 0xe6, 0x25, 0xcb, + 0x29, 0x81, 0xa9, 0x22, 0x81, 0x72, 0xde, 0x25, 0x4e, 0xa3, 0x3e, 0x54, 0x64, 0x77, 0x12, 0xbc, + 0x9a, 0xe2, 0xae, 0x94, 0xe6, 0xf4, 0x47, 0x9e, 0xc0, 0xe0, 0x1d, 0x8d, 0x9d, 0x79, 0xb6, 0x8d, + 0xdf, 0xa8, 0xe1, 0xaf, 0x3b, 0x5e, 0x72, 0xf8, 0x38, 0xb5, 0x08, 0x97, 0x40, 0x03, 0xf3, 0xd3, + 0x6a, 0x18, 0xad, 0x5e, 0xcf, 0x75, 0xbb, 0xf1, 0x84, 0x9a, 0x31, 0x4c, 0xd5, 0x13, 0x61, 0x8f, + 0xb2, 0x4e, 0xe5, 0xe0, 0x3d, 0x31, 0xe9, 0x4f, 0xa0, 0xc7, 0xb8, 0xaf, 0x1f, 0xcf, 0xdb, 0x10, + 0xe3, 0x06, 0x61, 0xea, 0xab, 0xe7, 0xc4, 0xd8, 0xb9, 0x36, 0x21, 0xcf, 0xb5, 0x03, 0x06, 0x3b, + 0x0f, 0xf8, 0x57, 0x02, 0x25, 0xb4, 0xfe, 0xed, 0x09, 0xaa, 0x91, 0x89, 0xff, 0x30, 0x6a, 0xeb, + 0xeb, 0x38, 0x3c, 0x52, 0x5d, 0x00, 0x5b, 0x15, 0xed, 0x21, 0x8b, 0x8d, 0x5e, 0xa6, 0xe9, 0x21, + 0x11, 0x04, 0x5a, 0xed, 0x98, 0x27, 0xd8, 0xf7, 0x1a, 0x76, 0xe5, 0x8b, 0xc8, 0x1f, 0xb7, 0x55, + 0x24, 0x31, 0xe5, 0x91, 0xc4, 0x5e, 0x44, 0x77, 0xda, 0x89, 0x85, 0x22, 0xa1, 0x37, 0xb2, 0xea, + 0xb8, 0x80, 0x6d, 0x0d, 0x5b, 0x18, 0x7b, 0x96, 0x17, 0xe6, 0x42, 0x04, 0x2d, 0xe2, 0x4c, 0xc5, + 0x56, 0x86, 0xe3, 0x7d, 0x6e, 0x03, 0x93, 0x1d, 0x51, 0x4b, 0x5b, 0xee, 0x9c, 0x14, 0x69, 0xe3, + 0x44, 0x27, 0xc9, 0x05, 0xbe, 0x52, 0x21, 0x41, 0xc4, 0x67, 0x47, 0x91, 0xef, 0xbb, 0x81, 0x99, + 0xc3, 0xe8, 0x88, 0x05, 0x4d, 0x8f, 0x59, 0x73, 0xbe, 0x77, 0x60, 0x56, 0xa9, 0x1b, 0x82, 0xd3, + 0x49, 0x5d, 0xe1, 0x6c, 0xb3, 0x13, 0x36, 0x9c, 0x85, 0x99, 0xd8, 0x71, 0x87, 0x4f, 0x60, 0x2a, + 0xeb, 0xcc, 0x79, 0xa6, 0x83, 0x26, 0x0c, 0xad, 0x60, 0x16, 0xff, 0xee, 0x95, 0xf2, 0x00, 0xe2, + 0x8c, 0x91, 0x79, 0xec, 0x4e, 0xbd, 0x56, 0xe2, 0x65, 0x28, 0x10, 0x7b, 0x7a, 0x50, 0x27, 0x99, + 0x92, 0x90, 0x2f, 0x4e, 0x8e, 0x95, 0x4c, 0x66, 0x32, 0xd4, 0xbe, 0x6c, 0x16, 0x8d, 0x07, 0xe1, + 0x6e, 0xf2, 0x9e, 0xbe, 0xf2, 0xd4, 0x4e, 0xe6, 0x98, 0x57, 0x23, 0x5b, 0x7e, 0xe5, 0x67, 0x0e, + 0x49, 0xd3, 0xab, 0x3a, 0xcc, 0x00, 0x82, 0x7e, 0xdc, 0x50, 0xba, 0xcd, 0x0c, 0xd7, 0xa2, 0x31, + 0x8a, 0xce, 0x5a, 0xbf, 0xef, 0x93, 0x4c, 0x4e, 0x5e, 0x83, 0x89, 0x29, 0x06, 0x07, 0x22, 0x64, + 0x1b, 0x6d, 0x09, 0xd5, 0x04, 0xc9, 0x33, 0xda, 0x76, 0x3f, 0x17, 0x60, 0x52, 0x73, 0xcc, 0x44, + 0xa5, 0xec, 0xe7, 0x7b, 0x30, 0x03, 0x6d, 0xdf, 0x8e, 0x6e, 0xa6, 0x82, 0xa6, 0x1c, 0x0c, 0xc9, + 0x87, 0xc9, 0x57, 0x3d, 0x42, 0x23, 0x54, 0x92, 0x53, 0x7e, 0x60, 0x20, 0x17, 0x53, 0x85, 0x43, + 0xc0, 0x8c, 0x68, 0xd2, 0xef, 0x8f, 0xc7, 0x56, 0x75, 0xa1, 0x8b, 0xb9, 0xcc, 0x44, 0x92, 0x08, + 0x10, 0x47, 0x43, 0x26, 0xac, 0xce, 0x53, 0x97, 0xda, 0x30, 0xdc, 0xd3, 0x8d, 0x85, 0xc4, 0xe5, + 0x7d, 0xbb, 0x32, 0x87, 0x01, 0xe4, 0x07, 0x8a, 0xa7, 0x1c, 0x2c, 0xe3, 0x0c, 0x07, 0xab, 0x98, + 0x8d, 0xb5, 0x66, 0xb5, 0x92, 0x8d, 0x0e, 0x5e, 0x23, 0x26, 0xc7, 0x9a, 0x1d, 0x92, 0xea, 0xc9, + 0x1e, 0x75, 0x8a, 0x2c, 0x9d, 0xac, 0x10, 0x4a, 0x6a, 0x6e, 0xcd, 0xb1, 0x96, 0xa9, 0x3f, 0xe0, + 0xae, 0x34, 0x4a, 0xb5, 0x66, 0x19, 0x4c, 0xe4, 0x90, 0xf0, 0x73, 0xaf, 0xa1, 0x3c, 0x23, 0xbb, + 0x57, 0xe4, 0x99, 0xc8, 0xf6, 0x69, 0x74, 0xbe, 0x08, 0xf1, 0xc2, 0x8f, 0xe2, 0x48, 0xed, 0xde, + 0xf0, 0xd7, 0xe3, 0x95, 0xee, 0x6a, 0x76, 0x2b, 0xf1, 0xb6, 0xe7, 0xcb, 0x4b, 0x19, 0xc2, 0xec, + 0xad, 0x2c, 0x8c, 0x40, 0x0e, 0x06, 0x6f, 0xb2, 0x59, 0xff, 0xb8, 0x39, 0x35, 0x62, 0xd3, 0x46, + 0x77, 0x7a, 0x93, 0x07, 0xb9, 0x83, 0xaa, 0x13, 0xef, 0xe6, 0x56, 0x0f, 0xab, 0x2d, 0xd9, 0xba, + 0xec, 0x86, 0x76, 0x2c, 0xe1, 0x8d, 0x9c, 0x12, 0xa6, 0x0d, 0xcb, 0x9a, 0x8a, 0xbd, 0xfa, 0x1a, + 0x19, 0x62, 0x0f, 0x43, 0xea, 0x32, 0x5a, 0x62, 0x7e, 0x47, 0x14, 0x73, 0x87, 0xa3, 0x66, 0x35, + 0x45, 0xf6, 0x13, 0xf0, 0xef, 0x52, 0xa5, 0xea, 0xcb, 0xf9, 0x90, 0xb7, 0x1d, 0xaa, 0x25, 0xe6, + 0x60, 0xc6, 0xc8, 0xa5, 0x3f, 0xe0, 0xf1, 0x85, 0x18, 0xd9, 0x9a, 0xf9, 0xb4, 0x90, 0x4a, 0x8c, + 0x1e, 0xba, 0x3e, 0x47, 0x68, 0x13, 0x4f, 0x41, 0xb3, 0xdf, 0xde, 0x6d, 0x67, 0x0b, 0xd1, 0x63, + 0xe6, 0x17, 0xaa, 0xb9, 0xec, 0xe5, 0x2c, 0xf5, 0xd2, 0xec, 0x58, 0x93, 0x7d, 0x7e, 0x5c, 0xae, + 0xf5, 0x71, 0x91, 0x00, 0x67, 0x96, 0xf8, 0x95, 0x34, 0x4c, 0x78, 0x15, 0xe0, 0x4e, 0x83, 0xa4, + 0x3c, 0xb9, 0xf6, 0xf9, 0x0e, 0xe3, 0xd0, 0xea, 0xa5, 0x77, 0xac, 0x8f, 0x80, 0xe7, 0xc9, 0xca, + 0x2b, 0x45, 0x1b, 0x4e, 0xbf, 0x56, 0x4e, 0x22, 0xd0, 0xe5, 0xe5, 0xe7, 0xd9, 0x72, 0xd9, 0xb4, + 0x37, 0xbd, 0xfc, 0xd2, 0x03, 0x24, 0x47, 0x01, 0x02, 0x43, 0x8b, 0x0d, 0x0f, 0xcd, 0x97, 0xdb, + 0x09, 0x36, 0x54, 0x0d, 0x66, 0xf7, 0xd3, 0xbb, 0x78, 0x21, 0x6b, 0x02, 0x6f, 0xfe, 0x49, 0x81, + 0x64, 0x32, 0x73, 0xf9, 0x82, 0x01, 0xf7, 0x5d, 0xb5, 0xd8, 0x9d, 0x6b, 0x22, 0x5e, 0xaf, 0x29, + 0x25, 0xfc, 0x5d, 0xc2, 0xfc, 0x72, 0x6e, 0xbe, 0xd7, 0x4b, 0xe2, 0xc9, 0x02, 0x3d, 0xea, 0xbb, + 0x44, 0xf1, 0xe7, 0x9a, 0x65, 0xd5, 0xfb, 0x46, 0x53, 0x5d, 0x71, 0x6a, 0x2e, 0x1e, 0x0f, 0xd3, + 0x43, 0xb0, 0x7d, 0xdb, 0x2e, 0x1e, 0xda, 0x3c, 0x50, 0x2c, 0x98, 0x79, 0x28, 0x34, 0x76, 0xc6, + 0x89, 0xe0, 0xdf, 0x2e, 0x61, 0xb0, 0xb8, 0x89, 0x72, 0x91, 0xd3, 0x74, 0xbb, 0xa5, 0x87, 0x7b, + 0xcb, 0x1c, 0xb7, 0x50, 0x1a, 0xa7, 0xef, 0x8d, 0x9b, 0x44, 0xd2, 0x61, 0x20, 0xa8, 0x16, 0xa1, + 0x84, 0x36, 0x04, 0x8b, 0xec, 0x79, 0xa0, 0xf5, 0x6b, 0x01, 0x2f, 0xf3, 0x6b, 0x18, 0xe8, 0xf6, + 0xfd, 0xd2, 0xb9, 0x3c, 0x31, 0xeb, 0xf3, 0x89, 0x09, 0x6a, 0x5e, 0x87, 0xaa, 0xda, 0x0b, 0x8a, + 0x0c, 0x55, 0x76, 0xa7, 0x9c, 0x5d, 0x83, 0x1d, 0x96, 0x29, 0xbd, 0xea, 0xc4, 0x7e, 0x2f, 0x1e, + 0x67, 0xc0, 0xdb, 0x9f, 0xe3, 0xeb, 0x36, 0x08, 0x23, 0x7a, 0xe2, 0xc6, 0xc5, 0xe3, 0x40, 0x84, + 0xf4, 0xf5, 0xc3, 0x42, 0x9f, 0x5a, 0x56, 0x60, 0xaf, 0x1b, 0xdc, 0xad, 0x84, 0xd3, 0x82, 0x9c, + 0xeb, 0x2b, 0xe1, 0x18, 0x7c, 0x6d, 0x28, 0xa0, 0x4d, 0xef, 0x30, 0x04, 0xfc, 0x16, 0x2e, 0x72, + 0x34, 0xcc, 0x66, 0xc0, 0xae, 0x93, 0x59, 0x34, 0x1a, 0xbd, 0x95, 0xfb, 0x6e, 0x64, 0x4c, 0x45, + 0x80, 0x2c, 0xea, 0xda, 0x9e, 0x3d, 0x1a, 0x9c, 0x6c, 0x05, 0x82, 0x9b, 0x04, 0x05, 0x5e, 0x48, + 0x92, 0xf8, 0x07, 0x02, 0xf5, 0xc1, 0x82, 0xac, 0x3a, 0xbd, 0x7c, 0x92, 0x7f, 0x31, 0x60, 0xd8, + 0xaa, 0xf4, 0x82, 0x28, 0xae, 0xd0, 0xe3, 0x93, 0xb5, 0x7a, 0x34, 0xf2, 0x7a, 0x1f, 0xa9, 0x80, + 0x84, 0x69, 0xb4, 0x5e, 0x14, 0x50, 0x6a, 0x8a, 0x4c, 0x59, 0xdd, 0xda, 0xda, 0xb3, 0xa0, 0x9d, + 0x0f, 0x5a, 0xcc, 0xc9, 0x83, 0xfc, 0x0f, 0xcc, 0x4b, 0x00, 0x3a, 0xc0, 0x3e, 0x21, 0x3b, 0xc1, + 0x9d, 0x09, 0x47, 0xc4, 0x18, 0xc0, 0xda, 0x81, 0x49, 0x8e, 0x72, 0x78, 0x05, 0x3d, 0x32, 0x47, + 0xb8, 0xac, 0xb3, 0x43, 0x21, 0x14, 0xa8, 0xf6, 0x4a, 0x15, 0x5b, 0x40, 0x7e, 0x88, 0x99, 0x6c, + 0x25, 0x5b, 0x4a, 0xe7, 0xd2, 0x09, 0x5a, 0xb6, 0x5d, 0x94, 0x04, 0x04, 0x5c, 0x1c, 0x83, 0xc3, + 0x40, 0x1c, 0x11, 0xda, 0xdd, 0x86, 0x52, 0x9d, 0x16, 0x00, 0x6d, 0xb2, 0x01, 0x4b, 0x6f, 0x23, + 0x82, 0x4e, 0xbd, 0x39, 0x03, 0x7a, 0x9f, 0x22, 0x64, 0x00, 0xdd, 0x38, 0x33, 0xf3, 0xa1, 0x7d, + 0xe3, 0xdd, 0xd9, 0x1b, 0x98, 0x11, 0x62, 0xf6, 0x6a, 0x1c, 0x04, 0x13, 0x49, 0x7e, 0x25, 0x90, + 0x0b, 0xa8, 0x7d, 0xe2, 0xbc, 0x32, 0xb0, 0xef, 0xf1, 0x43, 0xcb, 0xb1, 0x41, 0x70, 0xb9, 0x8f, + 0xd0, 0x98, 0x08, 0xfd, 0x42, 0x7a, 0xb2, 0x96, 0xcd, 0xac, 0x3a, 0xe1, 0xbb, 0x2b, 0xc3, 0x6f, + 0x77, 0xd3, 0x28, 0x29, 0xfa, 0xf4, 0x84, 0x64, 0xa1, 0x82, 0x62, 0x43, 0x4f, 0x45, 0x13, 0x0a, + 0x5a, 0x08, 0xad, 0x1a, 0x2f, 0x3d, 0x4f, 0xc2, 0x1f, 0x1f, 0xea, 0xa7, 0xc0, 0x76, 0xd9, 0x18, + 0xb4, 0xc3, 0x02, 0x1e, 0x71, 0xfa, 0xc4, 0x07, 0x65, 0x0c, 0xd2, 0x4b, 0xa5, 0x6a, 0x74, 0xe2, + 0x0d, 0x87, 0xbb, 0x1b, 0x36, 0xe7, 0xa6, 0x90, 0x02, 0xb6, 0x6e, 0xaf, 0xdc, 0x22, 0xf6, 0x7e, + 0xfe, 0xc8, 0x18, 0x05, 0x4e, 0x03, 0xa2, 0x2f, 0x88, 0x58, 0x6f, 0x82, 0xd9, 0xc8, 0xd3, 0xc9, + 0xac, 0x23, 0xcd, 0xf5, 0xcc, 0xf2, 0xf5, 0x0d, 0xac, 0x54, 0x5e, 0xbb, 0xdd, 0xfc, 0x8b, 0x8a, + 0x5d, 0x73, 0xcb, 0xec, 0x3a, 0x1e, 0x82, 0xd2, 0xd2, 0x99, 0x19, 0xfb, 0x6b, 0xb7, 0xf5, 0x40, + 0xaa, 0x1f, 0x62, 0x0b, 0x40, 0x08, 0x47, 0xb7, 0xdf, 0xa7, 0x1d, 0x5a, 0x7a, 0xa7, 0x59, 0x34, + 0xde, 0xe1, 0xbf, 0x47, 0x90, 0xa8, 0x96, 0x67, 0xdd, 0x1a, 0xaa, 0xf5, 0x05, 0x01, 0x61, 0x7f, + 0x32, 0x5c, 0x30, 0xb0, 0x60, 0x03, 0x49, 0xaa, 0xac, 0xff, 0x94, 0xd4, 0xba, 0x61, 0x89, 0x41, + 0xff, 0x8f, 0xf0, 0xed, 0xdf, 0x76, 0x47, 0x18, 0x5d, 0x02, 0x8e, 0xf9, 0xe0, 0x2c, 0x72, 0xc1, + 0xc7, 0x7c, 0x3d, 0x07, 0xa5, 0x22, 0x24, 0x2d, 0x10, 0x67, 0x16, 0x1a, 0xab, 0xc7, 0xc5, 0x26, + 0x6c, 0x75, 0xfc, 0x1d, 0x23, 0xe2, 0xca, 0x07, 0xed, 0xd5, 0xa8, 0x86, 0xbc, 0x33, 0x2e, 0x28, + 0x3a, 0x80, 0x1c, 0x50, 0xff, 0xf3, 0xd2, 0xdf, 0xf8, 0xd1, 0x75, 0x4c, 0xcb, 0x87, 0x95, 0x8b, + 0xe6, 0x60, 0xb5, 0x6a, 0x9a, 0xf5, 0xb4, 0xd0, 0x71, 0x51, 0x0f, 0x4a, 0x24, 0x90, 0x26, 0x02, + 0x50, 0x40, 0x04, 0xf9, 0xb8, 0xa5, 0x34, 0x7d, 0xf3, 0xb2, 0x17, 0x4c, 0x32, 0x32, 0x29, 0x28, + 0xf4, 0xf1, 0xe2, 0x46, 0xac, 0x17, 0x10, 0x8b, 0x05, 0xf3, 0x41, 0x39, 0x2c, 0x4c, 0xac, 0xb5, + 0xd2, 0xae, 0xa9, 0xe1, 0xfa, 0x61, 0xe3, 0x3d, 0xd9, 0x88, 0xdd, 0xdc, 0xe5, 0x58, 0xbe, 0x37, + 0x80, 0x89, 0x53, 0x47, 0x79, 0x3a, 0x6e, 0x4b, 0x11, 0x3c, 0x60, 0xec, 0xd9, 0xe4, 0x0c, 0xfa, + 0x89, 0x0d, 0x62, 0x5d, 0xa7, 0x4c, 0xbb, 0xcd, 0x4c, 0x7f, 0xbc, 0x93, 0x34, 0xfe, 0xea, 0x09, + 0xc9, 0xd9, 0xaa, 0x94, 0x19, 0xb6, 0xd3, 0x4d, 0x34, 0x12, 0x51, 0x96, 0x32, 0x24, 0x5b, 0xe7, + 0xb7, 0xb6, 0xe8, 0x59, 0x88, 0x65, 0x3a, 0x07, 0xcc, 0xda, 0x80, 0x17, 0x7d, 0x59, 0x78, 0x51, + 0x7d, 0x15, 0x94, 0x18, 0x8f, 0x00, 0x08, 0x28, 0xc8, 0x58, 0xed, 0x7d, 0x1e, 0x99, 0x8d, 0xe3, + 0x1a, 0xc4, 0x1c, 0xb5, 0x6e, 0x83, 0x49, 0x96, 0xc9, 0xe8, 0xbb, 0xa7, 0xeb, 0xae, 0x0d, 0x1d, + 0xc2, 0x78, 0x36, 0x0b, 0x03, 0x85, 0x96, 0x46, 0xb6, 0x34, 0x75, 0xaa, 0x99, 0x04, 0x5f, 0x91, + 0x1a, 0x66, 0x4a, 0xbb, 0xa1, 0xea, 0xe4, 0xfb, 0xca, 0x90, 0xd3, 0x75, 0xa9, 0xf2, 0x5b, 0xbc, + 0xb8, 0x8b, 0x81, 0x25, 0xf5, 0x6c, 0x05, 0x9c, 0x43, 0xf7, 0xbb, 0x23, 0x7f, 0x4f, 0xd7, 0x8f, + 0x19, 0x3b, 0x0b, 0xf3, 0xde, 0x1a, 0x4b, 0xb9, 0x72, 0x7f, 0xe3, 0x14, 0xd7, 0x38, 0x3f, 0x9e, + 0xdc, 0x35, 0x3c, 0x56, 0x0a, 0x60, 0x7a, 0x60, 0x11, 0x38, 0x08, 0x4f, 0x02, 0x55, 0x7b, 0xb4, + 0x0d, 0x77, 0x00, 0xc3, 0x7e, 0x13, 0x81, 0xbd, 0xb8, 0x38, 0x60, 0x6c, 0xe5, 0x9f, 0x11, 0xf4, + 0x9b, 0x71, 0x27, 0xf7, 0xfb, 0x33, 0x97, 0x44, 0xdd, 0x1c, 0xf6, 0x91, 0x5a, 0x48, 0x35, 0x87, + 0xe6, 0xbc, 0xa7, 0x38, 0xce, 0xf8, 0x7d, 0x5f, 0x97, 0xd7, 0xb4, 0xb3, 0x47, 0x44, 0xc1, 0x26, + 0x78, 0x5f, 0xb6, 0x73, 0xbf, 0x4f, 0xaa, 0x0a, 0x96, 0xf2, 0xcf, 0x6e, 0x5e, 0x19, 0xa8, 0x2a, + 0x22, 0xfb, 0xc7, 0xc6, 0x0f, 0x06, 0x4e, 0xb4, 0xcc, 0x8d, 0x10, 0xf5, 0xe6, 0xd3, 0xae, 0x0f, + 0xa4, 0xb4, 0xb3, 0x78, 0xd2, 0xc8, 0xaf, 0xf2, 0xac, 0xea, 0x68, 0x87, 0x74, 0x39, 0x65, 0x22, + 0x55, 0x16, 0x96, 0x6a, 0xd0, 0xe9, 0x3e, 0x2d, 0x39, 0xce, 0x27, 0x94, 0x56, 0xc2, 0x0b, 0xab, + 0xea, 0x91, 0x5d, 0xee, 0x86, 0x9f, 0x03, 0x45, 0x83, 0xc9, 0xd4, 0x55, 0x40, 0x3b, 0x84, 0x49, + 0x14, 0xe5, 0x53, 0xcf, 0x6a, 0xd1, 0x98, 0x62, 0x1f, 0x01, 0x86, 0x32, 0x05, 0xc8, 0x3f, 0x83, + 0x63, 0x3b, 0x79, 0x31, 0xc7, 0xd4, 0x51, 0x10, 0x23, 0x29, 0xb8, 0x68, 0x6c, 0x28, 0xff, 0xbe, + 0xd6, 0x78, 0xc9, 0xcd, 0x41, 0xf1, 0xda, 0x1f, 0x9e, 0xce, 0x1c, 0x48, 0x1f, 0x8a, 0x9f, 0xe3, + 0x39, 0x19, 0x7d, 0xe5, 0x33, 0x17, 0x99, 0x92, 0x58, 0x43, 0x96, 0x63, 0xb7, 0x51, 0xca, 0xa3, + 0x1d, 0x7e, 0xad, 0x71, 0x27, 0x02, 0x17, 0x5e, 0x69, 0xf6, 0xfc, 0x9d, 0x05, 0x47, 0x2d, 0x2d, + 0x28, 0x13, 0x05, 0x65, 0xf7, 0xc0, 0xbe, 0x58, 0xdd, 0x3b, 0x52, 0xda, 0x7f, 0x45, 0x9f, 0xf0, + 0xd1, 0x83, 0x0b, 0x0c, 0x7e, 0xc8, 0x55, 0x8e, 0x48, 0x25, 0xec, 0x71, 0xe0, 0x5c, 0xbd, 0xe3, + 0x77, 0x0a, 0xca, 0x0c, 0xdf, 0x65, 0x87, 0xd9, 0x29, 0x67, 0x38, 0x8f, 0x80, 0xad, 0x62, 0xb0, + 0x9f, 0xad, 0x9b, 0x36, 0xe8, 0x83, 0x54, 0xee, 0x6b, 0x86, 0x06, 0xaf, 0xbe, 0x56, 0xda, 0x59, + 0x2d, 0xa3, 0xe6, 0x86, 0xce, 0x46, 0x75, 0x7e, 0x9c, 0x9f, 0x8e, 0xf5, 0xc7, 0x1b, 0xa7, 0xd7, + 0xd2, 0x9e, 0x1d, 0x2c, 0x7e, 0x3c, 0x74, 0xf7, 0x03, 0xca, 0x23, 0x40, 0x0a, 0xa0, 0x66, 0xd5, + 0xa1, 0x7e, 0x28, 0x07, 0xe4, 0x8c, 0x1c, 0x99, 0x7d, 0x34, 0x7a, 0xff, 0x4f, 0xcc, 0x46, 0xa2, + 0x09, 0x70, 0xc9, 0x4d, 0xbe, 0xbf, 0xe1, 0xac, 0xad, 0x1e, 0x08, 0xb8, 0xa8, 0xaa, 0x4a, 0xbe, + 0xc2, 0x15, 0x90, 0x78, 0xba, 0x89, 0x81, 0xb0, 0xa1, 0xfe, 0xbd, 0xf1, 0x2a, 0x6e, 0x8c, 0x12, + 0xdc, 0x10, 0xb2, 0x31, 0xf9, 0xea, 0x00, 0x94, 0x45, 0x03, 0xff, 0xf6, 0x6d, 0xe3, 0x53, 0x58, + 0x25, 0xe6, 0xd5, 0x23, 0x43, 0x60, 0xe2, 0x4e, 0x7d, 0x13, 0x42, 0x70, 0xf2, 0x82, 0x07, 0x43, + 0xc0, 0x28, 0x98, 0xc9, 0x09, 0xb0, 0x65, 0x88, 0x4d, 0x6a, 0x13, 0x46, 0x5b, 0x32, 0x39, 0x6c, + 0x61, 0x1c, 0xdd, 0xea, 0x79, 0x3e, 0x41, 0xf6, 0x28, 0x38, 0x1b, 0x18, 0xf8, 0xad, 0xfc, 0xad, + 0x9a, 0xf8, 0x8e, 0x5b, 0x1c, 0x66, 0xa5, 0x73, 0xd5, 0xc2, 0x1c, 0xce, 0xbd, 0xdb, 0x70, 0x96, + 0x43, 0xc8, 0xea, 0xde, 0xc4, 0xec, 0x5c, 0xe1, 0x00, 0xfd, 0x33, 0xdc, 0x4e, 0x4c, 0xd2, 0xa2, + 0x3c, 0x60, 0x8b, 0x4c, 0xcf, 0x1f, 0xaf, 0x96, 0x8b, 0x88, 0x59, 0x95, 0xe9, 0x57, 0x1c, 0x55, + 0x1f, 0x92, 0x1f, 0x5f, 0x9e, 0xea, 0x54, 0x74, 0x06, 0xbb, 0x99, 0xe4, 0x3c, 0x92, 0x30, 0x98, + 0xe8, 0xd1, 0xeb, 0x1a, 0x35, 0xe1, 0x5f, 0x88, 0x6a, 0x64, 0x4c, 0x94, 0x61, 0xe2, 0xd1, 0x3e, + 0xfb, 0x05, 0x62, 0x9d, 0x8c, 0xf7, 0x14, 0xf8, 0xf0, 0x4d, 0x4d, 0x89, 0xa8, 0x6a, 0x41, 0xc4, + 0xda, 0x8b, 0x58, 0x28, 0x09, 0x40, 0xa0, 0x06, 0x52, 0xad, 0x20, 0x84, 0x47, 0x7f, 0x82, 0x82, + 0x11, 0x7b, 0xd4, 0xc3, 0x74, 0x4b, 0xee, 0x92, 0x71, 0x5f, 0x83, 0x59, 0x10, 0x3e, 0xdd, 0x58, + 0xc5, 0xc6, 0x67, 0xe3, 0x0b, 0xec, 0x1f, 0xb4, 0x21, 0x0c, 0x85, 0x0c, 0xa1, 0x7c, 0xd1, 0xcd, + 0xc3, 0x6d, 0x0e, 0xdb, 0x0a, 0xed, 0x22, 0x99, 0x07, 0xd9, 0xfc, 0x60, 0x53, 0xf8, 0x99, 0x10, + 0x91, 0x89, 0x79, 0xf1, 0xfb, 0x59, 0xda, 0xfc, 0x73, 0x9a, 0x21, 0x1a, 0x60, 0x9e, 0x70, 0x55, + 0x8f, 0x4c, 0x5f, 0x9d, 0x14, 0x71, 0xf8, 0x80, 0xc4, 0xb9, 0x91, 0x3f, 0x46, 0x36, 0x78, 0xb6, + 0x4b, 0x69, 0xd3, 0x0f, 0x1c, 0x49, 0x45, 0x39, 0x58, 0xdd, 0x05, 0x23, 0x0e, 0xd3, 0x73, 0x79, + 0x89, 0x2e, 0xd7, 0xec, 0xaa, 0x01, 0x29, 0xa3, 0x5c, 0x29, 0xca, 0x80, 0x4a, 0xda, 0x03, 0xe1, + 0x4d, 0x53, 0xf0, 0x5c, 0xab, 0xbd, 0x00, 0xd2, 0x54, 0x5e, 0x7b, 0xfa, 0xc3, 0xfd, 0x00, 0x1d, + 0xbd, 0x1d, 0xde, 0x3d, 0x0b, 0xa4, 0x42, 0x38, 0xe7, 0x72, 0x65, 0x4e, 0xc2, 0x7e, 0x31, 0x82, + 0xf7, 0x6d, 0x86, 0xc1, 0x46, 0x77, 0x6b, 0x1a, 0xe1, 0x02, 0xc4, 0x06, 0x0a, 0xa7, 0x5f, 0x15, + 0xa4, 0x21, 0xec, 0x88, 0xb3, 0x2c, 0x20, 0x13, 0x3c, 0x4a, 0xca, 0xf5, 0xd9, 0x2b, 0x9d, 0xb3, + 0xd0, 0x33, 0xc5, 0x0f, 0xf0, 0x27, 0x72, 0xc7, 0xbc, 0xbe, 0x65, 0x3a, 0x24, 0x11, 0x4b, 0xb1, + 0xa8, 0x9a, 0x00, 0x7c, 0x51, 0x78, 0x4e, 0x94, 0x60, 0x9c, 0x99, 0xc9, 0x55, 0xc4, 0xc7, 0x55, + 0xec, 0x2a, 0x34, 0xd0, 0x92, 0x34, 0xea, 0x00, 0x99, 0xbe, 0xcf, 0x82, 0xdb, 0x08, 0xe6, 0x0b, + 0x89, 0x4f, 0x2f, 0x85, 0x7d, 0x31, 0x89, 0xfe, 0x5b, 0xe5, 0x64, 0x16, 0x8c, 0xe4, 0xbf, 0xba, + 0x86, 0xd6, 0x7f, 0xd0, 0x46, 0x4d, 0x5e, 0x04, 0xf0, 0xf4, 0xe8, 0x55, 0x30, 0x47, 0x28, 0x1c, + 0x46, 0x88, 0x21, 0x68, 0xcd, 0xc4, 0xf8, 0x75, 0xcf, 0xdb, 0x4b, 0x28, 0x8f, 0x23, 0xd9, 0x3a, + 0xe9, 0x57, 0x0e, 0x96, 0x52, 0x4b, 0x71, 0xff, 0x1b, 0xef, 0x7c, 0xe2, 0xf4, 0x0c, 0x41, 0x00, + 0x1a, 0xf5, 0xd2, 0xb8, 0x23, 0x28, 0xf8, 0x81, 0xc6, 0x6b, 0x80, 0x3c, 0x65, 0xfe, 0x0e, 0xc1, + 0xe6, 0x8b, 0xa1, 0x4e, 0x77, 0xae, 0xf1, 0x8e, 0x41, 0x3d, 0x30, 0x2e, 0x50, 0x4b, 0x40, 0xc5, + 0x0a, 0xe5, 0x41, 0xfa, 0x30, 0xba, 0x39, 0x92, 0xc6, 0x5c, 0x61, 0xd8, 0xc4, 0x16, 0x47, 0x7e, + 0x7e, 0x12, 0xaa, 0x42, 0xba, 0x5b, 0x49, 0xc1, 0x83, 0x20, 0x4b, 0x40, 0x7b, 0x4e, 0x5a, 0x82, + 0xab, 0x85, 0xd0, 0x4f, 0xc1, 0x78, 0x25, 0x6b, 0xbf, 0xae, 0x91, 0x8f, 0xa5, 0x68, 0x8a, 0x02, + 0x8b, 0xc2, 0x1c, 0xd7, 0xe1, 0x68, 0xee, 0x2c, 0x81, 0x44, 0x29, 0x6e, 0x13, 0xa2, 0xe8, 0x3d, + 0xfe, 0xf1, 0x45, 0x59, 0xc7, 0xa2, 0xc4, 0x42, 0x96, 0xbc, 0xa8, 0x14, 0x43, 0x03, 0x8d, 0x85, + 0x09, 0x47, 0x76, 0xae, 0x45, 0xf6, 0x31, 0xb8, 0x59, 0x34, 0x58, 0x2d, 0xad, 0xb3, 0x93, 0xce, + 0x00, 0x59, 0xb2, 0xe6, 0xd6, 0x13, 0x25, 0x39, 0x40, 0xe6, 0xd2, 0xc4, 0x1d, 0x6c, 0x2e, 0x54, + 0xb5, 0x91, 0x12, 0xd8, 0x3e, 0x69, 0x34, 0xa7, 0x04, 0xca, 0x59, 0x46, 0xd3, 0xb5, 0x13, 0xfd, + 0x9d, 0x92, 0x2a, 0x68, 0x97, 0x36, 0xfb, 0xc7, 0x05, 0xf9, 0x42, 0x0c, 0x91, 0x0b, 0x4d, 0x51, + 0x65, 0xc9, 0x81, 0x3a, 0xc0, 0x88, 0xfc, 0xb0, 0x4b, 0x25, 0x1c, 0x74, 0xa6, 0x4d, 0xdb, 0xed, + 0xff, 0x90, 0x66, 0x9a, 0x59, 0x94, 0xb8, 0x12, 0xb5, 0xdb, 0x62, 0xcb, 0x71, 0x14, 0x95, 0x14, + 0x86, 0xf6, 0x98, 0xab, 0xe7, 0x63, 0xcb, 0x79, 0x04, 0x6b, 0x93, 0xe1, 0x7a, 0x52, 0xfd, 0x72, + 0x24, 0xe7, 0xd1, 0x84, 0xa3, 0x50, 0x7d, 0xdb, 0x5f, 0x9f, 0xba, 0xfb, 0x42, 0x2f, 0x4f, 0xff, + 0xe3, 0xa5, 0x71, 0xf9, 0xb3, 0x53, 0xd3, 0xeb, 0x0f, 0xf9, 0x75, 0x55, 0x2f, 0x9b, 0x98, 0x4c, + 0xb5, 0x5f, 0x41, 0xd8, 0x22, 0x09, 0x42, 0x38, 0xea, 0xcc, 0x00, 0xbb, 0x6d, 0xd4, 0x46, 0x45, + 0x01, 0xf6, 0x9c, 0xe2, 0x62, 0x06, 0x92, 0x4d, 0xc7, 0x8f, 0xc6, 0x41, 0x56, 0x2d, 0x84, 0x9d, + 0xc3, 0x2d, 0x90, 0xbd, 0xd3, 0xa3, 0xf1, 0xed, 0x33, 0x02, 0x76, 0x90, 0xa2, 0xa0, 0x77, 0x0b, + 0x67, 0x15, 0xb6, 0x0b, 0x2b, 0x5c, 0x6d, 0x40, 0x92, 0xf3, 0xfc, 0xe6, 0xf7, 0xd9, 0xaa, 0x85, + 0x36, 0x30, 0x9f, 0xac, 0x4e, 0x00, 0x35, 0xbd, 0xac, 0x3b, 0xb0, 0x6f, 0x00, 0xe6, 0xd9, 0x46, + 0xfe, 0xda, 0x6c, 0x3f, 0x08, 0x02, 0x0a, 0xce, 0xe7, 0x2f, 0xb6, 0x89, 0x1f, 0x52, 0x30, 0x40, + 0x35, 0xb5, 0xf6, 0x2c, 0x88, 0x5e, 0x2a, 0xf9, 0x27, 0x45, 0xcd, 0xfd, 0xfe, 0xea, 0x6d, 0x20, + 0x3a, 0x36, 0xca, 0x66, 0x61, 0xa2, 0x25, 0x11, 0x77, 0x9c, 0xaf, 0x43, 0x9d, 0x36, 0xc1, 0x7d, + 0x9c, 0xf6, 0xa6, 0xca, 0x0b, 0x7c, 0x3e, 0xd8, 0x69, 0xdc, 0x98, 0xdd, 0xa3, 0xb3, 0x72, 0x8b, + 0xd7, 0xab, 0x6f, 0xce, 0x98, 0xf2, 0x38, 0x72, 0xc9, 0x57, 0xa5, 0x12, 0xad, 0x40, 0x2d, 0x80, + 0xb0, 0xa5, 0xa2, 0x54, 0x50, 0x4d, 0xc3, 0xbb, 0xab, 0xb4, 0x40, 0x15, 0x53, 0x0d, 0xb6, 0x31, + 0xad, 0x5c, 0x78, 0x25, 0xe2, 0x54, 0x75, 0x81, 0xea, 0xcf, 0x07, 0xe8, 0x6b, 0x33, 0x67, 0x3f, + 0xad, 0xaf, 0x2f, 0x0b, 0x4d, 0xc8, 0xf1, 0xc3, 0x9e, 0x1c, 0x7b, 0x01, 0x16, 0x1e, 0x30, 0x6d, + 0x00, 0xd3, 0xc0, 0xc5, 0xde, 0xdf, 0xc5, 0xf1, 0x59, 0xae, 0x26, 0xe5, 0x80, 0x56, 0x9d, 0x38, + 0xd1, 0xbf, 0x1b, 0xe0, 0x53, 0x45, 0x48, 0x4c, 0x1d, 0x32, 0x75, 0xab, 0x0e, 0xcc, 0x55, 0x8c, + 0xec, 0x9c, 0x3f, 0x09, 0x21, 0x90, 0x15, 0x7d, 0x86, 0xae, 0x91, 0x31, 0xf8, 0xfb, 0x29, 0xe8, + 0x87, 0x6c, 0xe4, 0xfb, 0x2e, 0x6e, 0x13, 0xda, 0x38, 0xbd, 0xe2, 0x54, 0xe5, 0x2b, 0x8a, 0x3e, + 0x24, 0x5c, 0x9d, 0x31, 0x0e, 0x87, 0x05, 0xd8, 0x78, 0x90, 0xd5, 0x5a, 0x7a, 0x46, 0x16, 0xcd, + 0x48, 0x68, 0xf5, 0xd8, 0x1d, 0xc5, 0xf8, 0x01, 0xd9, 0x49, 0x95, 0xab, 0xd4, 0x0c, 0x89, 0x7e, + 0xfd, 0xb4, 0x90, 0x74, 0xe3, 0xf8, 0x7c, 0xeb, 0x98, 0x72, 0x70, 0x3c, 0xd9, 0xe6, 0x39, 0x6c, + 0x65, 0x26, 0x4f, 0xbe, 0xa0, 0x09, 0x5f, 0x7a, 0x73, 0x1c, 0x25, 0x04, 0x0a, 0x36, 0xe9, 0xf2, + 0xb9, 0xd6, 0xf1, 0x98, 0x8f, 0x11, 0x0d, 0x39, 0xbe, 0x74, 0x63, 0x63, 0x3e, 0xe0, 0x94, 0x9a, + 0x12, 0x33, 0xe9, 0xba, 0x39, 0x3f, 0xe8, 0xf9, 0x0b, 0x63, 0x18, 0x20, 0x27, 0x32, 0x53, 0x1b, + 0x79, 0xff, 0x55, 0x4b, 0x45, 0xc5, 0x7b, 0x50, 0xeb, 0x7b, 0x58, 0x84, 0x7e, 0x93, 0xca, 0x8b, + 0x6d, 0xf4, 0xd7, 0x50, 0x0b, 0xf7, 0x20, 0x3a, 0x7a, 0x23, 0x5c, 0x57, 0x61, 0x6e, 0xd4, 0xc5, + 0x02, 0xba, 0xe1, 0xf8, 0x9c, 0xa0, 0x8a, 0x4c, 0xae, 0xb7, 0xb4, 0xd9, 0x83, 0x1e, 0xbb, 0x42, + 0x1b, 0x22, 0x25, 0x1c, 0xc1, 0x74, 0xdd, 0x4e, 0xc8, 0x59, 0xc0, 0x7d, 0xcb, 0x50, 0x4d, 0xb0, + 0x47, 0x86, 0xee, 0x6a, 0x9e, 0x04, 0x28, 0x34, 0x6a, 0xce, 0x77, 0x6a, 0x1e, 0xf0, 0x3f, 0xd9, + 0x38, 0x86, 0x7e, 0x90, 0x20, 0x98, 0xe3, 0xcc, 0x9a, 0x4b, 0xab, 0x86, 0xf2, 0x3e, 0x1c, 0x32, + 0x68, 0x49, 0x6d, 0xf2, 0xeb, 0x5b, 0x67, 0x45, 0x7d, 0x77, 0xee, 0xd0, 0xd7, 0xad, 0x37, 0x09, + 0xf6, 0x65, 0xb4, 0x4c, 0xf3, 0xec, 0xfc, 0x1e, 0xfc, 0x48, 0x41, 0xd9, 0x8e, 0xe5, 0x91, 0x9c, + 0x86, 0xf9, 0x71, 0xf7, 0xb8, 0xb8, 0x3b, 0x21, 0xf9, 0xdd, 0x6c, 0xfc, 0xca, 0x7d, 0x08, 0x5f, + 0x1f, 0xa4, 0x33, 0xe6, 0x2f, 0x00, 0x6e, 0x21, 0x72, 0xf5, 0xd4, 0x17, 0xb2, 0x96, 0xcd, 0xab, + 0xc6, 0xec, 0xe9, 0xa5, 0x7c, 0x6b, 0x0e, 0xde, 0x75, 0x3c, 0x8a, 0x78, 0x5f, 0xfa, 0xc6, 0xaa, + 0xb9, 0xa3, 0xa9, 0x8a, 0xf9, 0x7d, 0x0f, 0xf8, 0x62, 0xc4, 0x54, 0x05, 0xc5, 0xcb, 0xe0, 0x85, + 0x34, 0x99, 0xa8, 0xef, 0x92, 0x2d, 0x4b, 0xe3, 0x5d, 0xa1, 0x0d, 0x55, 0x7a, 0x24, 0x74, 0xcf, + 0xa9, 0x4c, 0xbb, 0x62, 0xf8, 0xdb, 0xd1, 0x17, 0x14, 0x52, 0x9a, 0x7d, 0x51, 0x06, 0x45, 0x1f, + 0x33, 0x96, 0xc0, 0xfd, 0xd4, 0x20, 0x83, 0x53, 0x5c, 0x3c, 0x0e, 0xe3, 0xbe, 0xc2, 0xb0, 0x67, + 0x66, 0xae, 0x7f, 0x87, 0x20, 0x91, 0x5d, 0x26, 0x55, 0x40, 0x22, 0xc1, 0x5b, 0x78, 0x6f, 0x5e, + 0xf2, 0x02, 0xcb, 0xa9, 0xc2, 0x54, 0x53, 0xa7, 0x17, 0x4c, 0xb8, 0x34, 0xbc, 0x55, 0xb4, 0x30, + 0x5c, 0x6c, 0x66, 0x5d, 0x04, 0x47, 0x13, 0xc8, 0xf7, 0xaa, 0xa4, 0x68, 0xcb, 0xff, 0xf7, 0x72, + 0xc9, 0x50, 0x9b, 0xfb, 0x6b, 0x2e, 0xdc, 0x79, 0xd3, 0x01, 0xb8, 0x07, 0xdb, 0xf3, 0x07, 0x52, + 0x38, 0x24, 0xb4, 0x9b, 0x3e, 0xab, 0xb3, 0x5b, 0x8f, 0x39, 0x03, 0x94, 0x56, 0x99, 0x23, 0x25, + 0x04, 0x4d, 0xfb, 0x31, 0x30, 0x14, 0xa6, 0x55, 0x25, 0x22, 0xa4, 0x28, 0x8b, 0xc9, 0xf0, 0x0f, + 0x5a, 0x32, 0xbd, 0xb5, 0xfc, 0x08, 0x03, 0x2a, 0x4e, 0xbb, 0x27, 0x3f, 0x3a, 0x3a, 0x6d, 0x76, + 0x2f, 0x65, 0x99, 0x58, 0xc3, 0x24, 0x17, 0x7f, 0xf3, 0xb5, 0x1f, 0xe2, 0xe7, 0xed, 0x48, 0x87, + 0xa0, 0x8d, 0x6b, 0xab, 0x17, 0x48, 0xa8, 0x2e, 0x20, 0x3e, 0x1d, 0xa6, 0x95, 0xea, 0xb4, 0x6d, + 0xb4, 0x39, 0x9d, 0xcb, 0x6b, 0xcd, 0xbf, 0xb4, 0xf0, 0x57, 0xbd, 0xaf, 0x9d, 0x98, 0x74, 0xc4, + 0x31, 0x7f, 0xa7, 0x6a, 0x26, 0xf6, 0xe9, 0x14, 0x46, 0x61, 0x42, 0xd6, 0x1f, 0x70, 0x50, 0xf8, + 0xf2, 0x61, 0x68, 0x61, 0x20, 0x9b, 0xef, 0x6c, 0xc8, 0xc3, 0x12, 0x97, 0xf0, 0xe3, 0x0f, 0xc8, + 0xc9, 0x97, 0x5a, 0x1e, 0xc7, 0x0d, 0xcb, 0x27, 0x25, 0x8c, 0xbf, 0x0e, 0xe4, 0xe0, 0x14, 0x9c, + 0x1b, 0xb5, 0xb6, 0x3c, 0xa0, 0x93, 0xf8, 0xca, 0xf9, 0x77, 0xa7, 0x39, 0xb4, 0xa8, 0x0b, 0x69, + 0x72, 0x00, 0x4a, 0x3f, 0xc4, 0xd9, 0x10, 0xde, 0x13, 0x62, 0xc0, 0x3c, 0x3b, 0x66, 0xda, 0x10, + 0x9d, 0x8c, 0x3c, 0x40, 0x22, 0x9a, 0x13, 0xe7, 0x92, 0xdb, 0x66, 0x0f, 0x62, 0xc7, 0xb5, 0x4a, + 0x71, 0x9a, 0xb2, 0x05, 0x00, 0xe2, 0xfa, 0x84, 0x38, 0x71, 0x7f, 0x40, 0x2e, 0x6e, 0x90, 0x4c, + 0x30, 0x65, 0xf3, 0x37, 0xbf, 0xcb, 0x98, 0x4f, 0x5d, 0x9c, 0x48, 0xc8, 0xf3, 0xa4, 0x5b, 0x89, + 0x99, 0xcf, 0xd7, 0x37, 0x84, 0x74, 0x5b, 0x1a, 0x2e, 0x93, 0x67, 0x15, 0x77, 0x2f, 0x09, 0x7f, + 0xe0, 0x01, 0xde, 0xb0, 0x9e, 0x0d, 0xb6, 0x1b, 0x4a, 0x95, 0x44, 0x59, 0x51, 0xf6, 0xea, 0x1d, + 0x00, 0xf7, 0x9f, 0xbc, 0x1c, 0xda, 0xf9, 0x0d, 0xbe, 0x7a, 0xb7, 0x4f, 0xa4, 0x58, 0xbc, 0xe9, + 0xb1, 0x76, 0x3b, 0xe0, 0x07, 0xd7, 0xed, 0xd4, 0x81, 0xd7, 0x23, 0xf5, 0xfa, 0x42, 0x60, 0x55, + 0xa3, 0xc0, 0x84, 0x5d, 0xd6, 0x47, 0xa4, 0x5d, 0x00, 0xc9, 0x9f, 0x74, 0xbe, 0x2d, 0xa7, 0x30, + 0x00, 0x3b, 0xdc, 0xbe, 0xdd, 0x43, 0x18, 0x65, 0x3b, 0x3a, 0xd3, 0x90, 0x38, 0xac, 0x51, 0x0d, + 0x98, 0x0f, 0x1a, 0xa5, 0x93, 0x59, 0x57, 0x89, 0xe5, 0x3b, 0x00, 0x9e, 0x6e, 0xaa, 0xda, 0xa7, + 0x6c, 0x77, 0x8e, 0x66, 0x83, 0x5a, 0x5f, 0x4b, 0x07, 0x4f, 0x8a, 0x7a, 0xbd, 0x75, 0xca, 0xb1, + 0x12, 0xde, 0x02, 0xc6, 0x11, 0x82, 0x08, 0xcb, 0x3c, 0xc7, 0xdf, 0x96, 0xba, 0x47, 0xfa, 0xb5, + 0x98, 0xcb, 0xeb, 0x53, 0x11, 0xeb, 0x7c, 0xd6, 0x93, 0xea, 0x6c, 0x79, 0xf5, 0x2e, 0xde, 0xfc, + 0x1e, 0x66, 0x5e, 0xa8, 0x48, 0x13, 0xcd, 0x3f, 0xbf, 0xdf, 0xa0, 0xe9, 0xaf, 0x83, 0xf5, 0x1f, + 0x3a, 0xee, 0x64, 0x65, 0x92, 0x8a, 0x63, 0xa8, 0x46, 0x73, 0x7f, 0x9b, 0x76, 0xe1, 0x6c, 0x8b, + 0x50, 0xd9, 0x4b, 0xa5, 0x08, 0x53, 0xd1, 0x2e, 0xc7, 0xb7, 0x07, 0x57, 0x4c, 0x78, 0x2e, 0x69, + 0x7d, 0xdc, 0xb0, 0xa8, 0xff, 0x43, 0x3d, 0x3b, 0x6a, 0x87, 0x30, 0xfb, 0xd2, 0x52, 0x25, 0xca, + 0x70, 0x40, 0x81, 0x53, 0xbb, 0x00, 0x39, 0xf2, 0xf4, 0xa1, 0x74, 0x4b, 0xcd, 0xe8, 0xfc, 0xcf, + 0x99, 0x0e, 0x15, 0x27, 0xbe, 0x77, 0x10, 0xdd, 0xe1, 0xbb, 0xec, 0x30, 0x17, 0xb8, 0xa4, 0x78, + 0xa1, 0x89, 0xa3, 0xec, 0xf4, 0x8c, 0x8b, 0xf7, 0x9d, 0x1d, 0xbe, 0xb7, 0xce, 0x09, 0x21, 0x40, + 0xc7, 0x48, 0xa1, 0xa4, 0x3c, 0x94, 0x05, 0x68, 0x91, 0x6e, 0x66, 0xf3, 0xc1, 0xa2, 0x0a, 0x1b, + 0x21, 0x99, 0x56, 0xcd, 0x7c, 0xed, 0xea, 0xc5, 0xdf, 0x48, 0xc8, 0xda, 0x02, 0xee, 0x61, 0x18, + 0x3b, 0x0c, 0x32, 0xb0, 0x98, 0x6d, 0xad, 0xc5, 0x74, 0xfd, 0x46, 0x3e, 0x2d, 0xf7, 0xb6, 0xd5, + 0xef, 0x04, 0x11, 0x78, 0x63, 0x2a, 0x41, 0x6e, 0x85, 0x72, 0x1f, 0x7d, 0x45, 0x15, 0xd6, 0x35, + 0x07, 0xac, 0xec, 0xd5, 0x19, 0x8f, 0x69, 0x94, 0xf3, 0xc8, 0x63, 0x36, 0xb2, 0x5c, 0xcf, 0xd8, + 0xae, 0x1d, 0x56, 0x20, 0x15, 0x79, 0x51, 0xc5, 0xb2, 0x77, 0x8f, 0xe7, 0x84, 0xfd, 0x42, 0x46, + 0x96, 0x33, 0x42, 0xb7, 0xec, 0x95, 0xa1, 0xa3, 0xdc, 0xee, 0xd6, 0x2e, 0xf5, 0x0f, 0x7f, 0x5e, + 0x99, 0x3d, 0x22, 0x89, 0x78, 0xc0, 0x58, 0xd2, 0xef, 0xe1, 0x86, 0x3b, 0x4e, 0x48, 0x8c, 0x46, + 0xcb, 0xc5, 0xae, 0xc4, 0x05, 0x25, 0xe1, 0x8b, 0x26, 0xe3, 0x51, 0x5a, 0x71, 0x49, 0x40, 0xa4, + 0x0c, 0x13, 0xc1, 0xeb, 0xe3, 0x07, 0xa4, 0xdf, 0x0b, 0xf1, 0x36, 0xfc, 0xa0, 0xcd, 0x67, 0xad, + 0x3b, 0x0b, 0xce, 0x6b, 0x8b, 0x3a, 0x04, 0x12, 0xa7, 0x8f, 0x1f, 0x17, 0xed, 0x34, 0xf7, 0xe9, + 0xb3, 0xf6, 0x07, 0x3e, 0x0a, 0xe0, 0x78, 0x93, 0xf1, 0x4d, 0x93, 0x98, 0x96, 0xb8, 0x16, 0x51, + 0x79, 0x2f, 0x7b, 0x53, 0xa8, 0x96, 0x2d, 0x5a, 0x09, 0x93, 0x58, 0xf3, 0x68, 0x38, 0x72, 0xb1, + 0xbb, 0x89, 0x6b, 0x94, 0xe5, 0x87, 0x75, 0xe8, 0x4c, 0x30, 0x33, 0x5a, 0x44, 0x69, 0x26, 0x7d, + 0xc1, 0xfa, 0xca, 0xbf, 0x16, 0xe7, 0x22, 0xef, 0x11, 0x89, 0x28, 0xa9, 0x12, 0xdf, 0x7d, 0x9d, + 0xc5, 0x3a, 0xb1, 0x0b, 0x4f, 0xbc, 0x9b, 0x32, 0xf6, 0xfa, 0x00, 0x56, 0xc3, 0xcf, 0xb9, 0xd8, + 0xa6, 0xe5, 0x0e, 0x7a, 0xcf, 0x78, 0xfb, 0x87, 0x0d, 0x30, 0x19, 0x72, 0x87, 0x22, 0x7c, 0xbd, + 0x01, 0x4e, 0xd6, 0xdb, 0x91, 0xcc, 0xa3, 0x82, 0x97, 0x6d, 0x24, 0xa3, 0xde, 0xd3, 0xed, 0x3a, + 0x3d, 0x9f, 0x85, 0x82, 0x28, 0x5f, 0x9b, 0x7e, 0xea, 0x2f, 0x11, 0xab, 0x30, 0x6b, 0x60, 0xc3, + 0x26, 0xfa, 0xdf, 0x84, 0x10, 0xa6, 0x18, 0xe3, 0xef, 0x4f, 0x4c, 0xfe, 0xba, 0xaf, 0x06, 0xb7, + 0xb3, 0xb1, 0x3f, 0x89, 0x78, 0xe2, 0xe3, 0x86, 0xdf, 0x2c, 0x36, 0xcb, 0x06, 0x56, 0xa8, 0x56, + 0xae, 0xf9, 0xf0, 0xe2, 0xe4, 0xbb, 0x21, 0x9e, 0x87, 0x17, 0xb2, 0xf7, 0x9b, 0x48, 0x19, 0xb7, + 0x83, 0xc6, 0x7e, 0x4f, 0xee, 0x99, 0x3d, 0x2d, 0x8b, 0x66, 0xf3, 0xe2, 0x41, 0x85, 0xee, 0xd0, + 0xad, 0x81, 0x2b, 0x09, 0x34, 0x69, 0xc0, 0x52, 0x01, 0x5f, 0xe8, 0x69, 0xf2, 0x63, 0xd3, 0xba, + 0xf5, 0xed, 0xac, 0x82, 0xfa, 0x98, 0x21, 0xb9, 0x5f, 0x00, 0x7b, 0x4e, 0x6c, 0x00, 0x4b, 0x74, + 0x35, 0x57, 0x7e, 0xb9, 0x08, 0xa5, 0x85, 0x01, 0x94, 0xc4, 0xa3, 0x70, 0x37, 0x34, 0xfd, 0x97, + 0x7b, 0xdc, 0x9a, 0xa5, 0xd9, 0xc5, 0x42, 0x00, 0xe2, 0x5a, 0x65, 0x78, 0xac, 0xf8, 0x49, 0xe3, + 0xd2, 0x5b, 0x43, 0x09, 0xf5, 0x30, 0x4b, 0x88, 0x9f, 0x7e, 0x7d, 0x37, 0x28, 0x5b, 0x10, 0xcc, + 0x64, 0xf5, 0x2c, 0x9d, 0x8f, 0x94, 0x57, 0x67, 0x8f, 0xd0, 0xb6, 0x3f, 0x60, 0xec, 0x92, 0x5d, + 0x11, 0x26, 0x5a, 0x02, 0xef, 0xee, 0xae, 0x70, 0x47, 0x42, 0x7e, 0xc0, 0x33, 0x6f, 0xb9, 0x25, + 0x21, 0x11, 0xd5, 0x11, 0xfc, 0x23, 0x1c, 0xd3, 0xdb, 0x3e, 0xa4, 0xe9, 0x6a, 0x3a, 0x7e, 0x58, + 0xae, 0xd6, 0xe3, 0xc8, 0x86, 0x91, 0xb0, 0x9b, 0x6c, 0x11, 0x29, 0x75, 0x1b, 0x79, 0x0a, 0x32, + 0x76, 0x49, 0x20, 0x15, 0x57, 0x8a, 0xf3, 0xc6, 0xa6, 0x8f, 0xdf, 0x98, 0x9a, 0x5c, 0xcc, 0x23, + 0x9f, 0xa3, 0x67, 0xb2, 0xe2, 0x91, 0x65, 0x41, 0xb7, 0x90, 0x80, 0x7e, 0xc9, 0x78, 0x3e, 0x82, + 0x16, 0x7c, 0x8d, 0x4a, 0x01, 0x12, 0x37, 0xbc, 0x9d, 0x68, 0x5c, 0x3f, 0x9f, 0x0b, 0x90, 0xae, + 0xe5, 0x93, 0x38, 0x0c, 0x3a, 0x42, 0x19, 0x34, 0x96, 0x9b, 0xfd, 0xeb, 0x60, 0x52, 0x9f, 0x70, + 0x41, 0x2c, 0xed, 0xa8, 0xaf, 0x2f, 0x99, 0xc9, 0xaf, 0x99, 0x87, 0x1d, 0xc0, 0x51, 0x6a, 0x1c, + 0xa6, 0xbc, 0x41, 0x03, 0x75, 0x8f, 0x0d, 0x14, 0x06, 0xf8, 0x2d, 0xe1, 0xba, 0x71, 0x25, 0x5e, + 0xc5, 0xbd, 0xeb, 0xa4, 0x1c, 0xba, 0xdd, 0x47, 0xeb, 0x4a, 0x95, 0xa7, 0x1b, 0x05, 0xa9, 0xd1, + 0x8d, 0xa7, 0x31, 0x44, 0x66, 0xa5, 0xbb, 0x07, 0x08, 0x38, 0xb3, 0x5d, 0x63, 0x66, 0x6a, 0x11, + 0xe9, 0x83, 0xa7, 0x54, 0x0d, 0x7b, 0x04, 0x73, 0x7d, 0x9f, 0x82, 0xfc, 0xae, 0x99, 0xc3, 0xc7, + 0x1f, 0x51, 0x1e, 0x59, 0x7f, 0x97, 0xf3, 0x82, 0xef, 0x9c, 0xf0, 0xdf, 0x91, 0xed, 0x63, 0xf3, + 0x6d, 0xec, 0xe6, 0x74, 0x53, 0x57, 0xf3, 0x38, 0x0d, 0xcd, 0xff, 0x4a, 0x86, 0x33, 0x48, 0x6e, + 0x36, 0x66, 0xb5, 0xfb, 0xe3, 0xc5, 0x7d, 0xd0, 0x1b, 0xe3, 0x52, 0x25, 0xd8, 0x1b, 0xd0, 0x0a, + 0xd8, 0xea, 0x0a, 0xdc, 0x48, 0x28, 0xf4, 0x0c, 0x25, 0x47, 0x46, 0x1f, 0x33, 0xaa, 0x5f, 0xb4, + 0x35, 0xb1, 0x78, 0x41, 0x80, 0xde, 0x68, 0x7f, 0xeb, 0x31, 0xde, 0x5a, 0x47, 0xda, 0x32, 0x36, + 0xb8, 0x8d, 0x04, 0x08, 0xab, 0xd4, 0x44, 0x98, 0xb6, 0x29, 0xf2, 0x81, 0xeb, 0x57, 0x86, 0x56, + 0x0b, 0x6f, 0x4c, 0xb6, 0x50, 0x6c, 0x74, 0x31, 0x52, 0x35, 0x58, 0x53, 0x21, 0xd4, 0x65, 0x82, + 0x98, 0x9f, 0x6f, 0x04, 0x37, 0xc2, 0x3a, 0x9a, 0xc2, 0xbd, 0x1d, 0xdb, 0x77, 0xd4, 0xb3, 0x9c, + 0x29, 0x93, 0xc1, 0x1c, 0x53, 0x2d, 0x0a, 0x52, 0xbf, 0x80, 0x04, 0x75, 0xdc, 0xf5, 0x27, 0x8b, + 0xfd, 0x82, 0xb2, 0x26, 0x9b, 0x3d, 0x8d, 0xfb, 0x46, 0x61, 0x3b, 0xfd, 0x2a, 0x71, 0x0d, 0x3c, + 0x18, 0xb4, 0x5a, 0xa5, 0x22, 0x29, 0xf9, 0x9f, 0xca, 0x9b, 0x95, 0xbd, 0x58, 0x22, 0x66, 0xa4, + 0xfd, 0x65, 0x9b, 0xe4, 0x8f, 0xe3, 0x16, 0x7b, 0xa8, 0x56, 0x98, 0xf9, 0xa7, 0xd8, 0x8d, 0x5d, + 0x6b, 0xb2, 0x5b, 0x1d, 0x32, 0xa1, 0xc3, 0x04, 0xba, 0xb7, 0x5c, 0x12, 0xdb, 0x8e, 0x68, 0x40, + 0xa4, 0x82, 0x26, 0x5c, 0xbb, 0x6c, 0x1e, 0x21, 0x1e, 0x66, 0x09, 0x20, 0x2f, 0x0e, 0xa8, 0xcc, + 0x7d, 0x92, 0xbf, 0x3e, 0x47, 0x66, 0xec, 0x59, 0x21, 0x4d, 0x22, 0x5b, 0xff, 0x94, 0x29, 0x3c, + 0x8c, 0x4c, 0xa4, 0x6a, 0x2f, 0xf5, 0xdf, 0x99, 0x8b, 0xff, 0xd5, 0x1d, 0x14, 0x85, 0x93, 0xde, + 0x3c, 0xc7, 0xae, 0x94, 0x5b, 0x83, 0x1c, 0x27, 0x39, 0xf9, 0x1c, 0xc4, 0x97, 0x49, 0xe2, 0xec, + 0x2d, 0x94, 0x85, 0x72, 0xf1, 0x27, 0x7b, 0xdc, 0xef, 0xf4, 0x1c, 0x8d, 0x09, 0xce, 0x89, 0x43, + 0xf0, 0x9b, 0x12, 0xae, 0x08, 0xd3, 0x6c, 0x1a, 0xe4, 0xe3, 0xfe, 0x03, 0xe8, 0x6c, 0x8d, 0x08, + 0x03, 0x3c, 0x02, 0xa1, 0x7d, 0xdd, 0x31, 0x3b, 0xce, 0x25, 0x6c, 0x49, 0x85, 0x75, 0xeb, 0x6b, + 0xe8, 0x03, 0x1c, 0x00, 0x97, 0x01, 0x1a, 0xdb, 0xaf, 0x34, 0xee, 0x23, 0x71, 0x45, 0xee, 0xb2, + 0x05, 0x52, 0x05, 0x90, 0x5e, 0xd9, 0xd9, 0x91, 0x37, 0x25, 0x1f, 0xb8, 0x1e, 0x8e, 0x43, 0x1d, + 0xc2, 0xa9, 0x48, 0x58, 0xd7, 0x30, 0x57, 0x07, 0x48, 0x8f, 0x97, 0x6b, 0xa0, 0x3a, 0x0b, 0x53, + 0xcd, 0x56, 0x74, 0x8e, 0x8e, 0xbc, 0x24, 0xb8, 0x2b, 0x1a, 0xa2, 0x84, 0x6e, 0x65, 0xd4, 0x1a, + 0x17, 0x06, 0x56, 0xc6, 0x63, 0xbc, 0x85, 0x73, 0xda, 0xf5, 0xd5, 0xd7, 0x7d, 0x42, 0x7b, 0xf3, + 0xa9, 0x44, 0x81, 0xaa, 0xfc, 0x61, 0x19, 0x8d, 0x50, 0x1f, 0xbb, 0x4b, 0x92, 0xea, 0x5f, 0x26, + 0x89, 0x8a, 0x29, 0xea, 0x66, 0x4a, 0xd9, 0x8e, 0x08, 0x5c, 0xb7, 0x40, 0xc1, 0x79, 0x0c, 0xc6, + 0x50, 0x6e, 0xf0, 0x3e, 0x8a, 0xf5, 0xca, 0x11, 0x13, 0xed, 0x97, 0xbd, 0x6e, 0xe0, 0xe9, 0xf9, + 0xf2, 0xc4, 0x99, 0x92, 0x96, 0x97, 0x3c, 0x5a, 0x25, 0x86, 0xd0, 0xb2, 0x4a, 0x7d, 0x0e, 0x6d, + 0xed, 0x0f, 0x81, 0x6e, 0x41, 0xfa, 0xbb, 0xe7, 0xb3, 0xa5, 0x63, 0xdd, 0xc8, 0xb2, 0xe0, 0x49, + 0x5e, 0x74, 0x96, 0x0f, 0x64, 0x35, 0x3b, 0xf4, 0xe0, 0x4d, 0xa9, 0x34, 0x8d, 0xce, 0x31, 0xfd, + 0x1f, 0x61, 0xd1, 0x3c, 0x6c, 0xda, 0xda, 0x1d, 0x2e, 0x40, 0x15, 0x05, 0x06, 0x95, 0x75, 0x25, + 0x62, 0x8b, 0x74, 0xa4, 0xa1, 0x34, 0x93, 0x4e, 0xf8, 0xc7, 0x06, 0x68, 0xa7, 0x46, 0x5e, 0xe6, + 0xaf, 0x4c, 0x4f, 0x4e, 0x94, 0xbc, 0xf8, 0x4d, 0x02, 0x87, 0x80, 0xda, 0xac, 0xfb, 0x36, 0x95, + 0xa5, 0xf1, 0x5c, 0x5a, 0x16, 0x4b, 0x57, 0x92, 0xc3, 0x52, 0x11, 0x7e, 0xe2, 0x5c, 0x27, 0x0b, + 0x27, 0xb5, 0x60, 0x21, 0xdd, 0x05, 0x9a, 0x14, 0xda, 0x81, 0x40, 0x7a, 0xe8, 0xd5, 0x26, 0xc0, + 0x56, 0x75, 0xd8, 0xc5, 0x64, 0x42, 0xb3, 0x6e, 0x59, 0x4e, 0xcf, 0xe7, 0xaf, 0x37, 0x09, 0x8a, + 0xd5, 0xcf, 0xa8, 0xd0, 0x7e, 0x3c, 0xb8, 0x5b, 0xcf, 0x60, 0x3d, 0x97, 0x95, 0xc0, 0x88, 0x5b, + 0x42, 0x14, 0xde, 0xf2, 0xb2, 0x8b, 0xf3, 0x99, 0xf2, 0x18, 0x16, 0xfd, 0x46, 0xdf, 0x44, 0xcb, + 0x93, 0x56, 0xc7, 0x5b, 0x7f, 0x13, 0x1c, 0xae, 0x01, 0x09, 0x45, 0xdf, 0xbb, 0x72, 0x63, 0x7f, + 0xe0, 0x78, 0x5f, 0xb7, 0xcc, 0x73, 0xf9, 0xc3, 0xa0, 0x33, 0xec, 0x0b, 0xad, 0xe1, 0xc8, 0x03, + 0x16, 0x7e, 0x2a, 0x8b, 0x84, 0xca, 0x20, 0x40, 0x7d, 0xbd, 0xc1, 0xef, 0xde, 0x4a, 0xcc, 0xae, + 0x2d, 0xbe, 0xfd, 0xbd, 0xdd, 0x3b, 0x65, 0xd9, 0x39, 0x81, 0x0f, 0x5a, 0xb5, 0x9a, 0xf9, 0x38, + 0xf9, 0x84, 0x8b, 0x7c, 0x20, 0x63, 0x54, 0x41, 0xea, 0x1a, 0x79, 0x49, 0x9d, 0xa2, 0x88, 0x4d, + 0xeb, 0xd7, 0x0f, 0xe0, 0x60, 0xa6, 0xa9, 0xe8, 0x98, 0xd2, 0x03, 0x9e, 0x94, 0x5f, 0x69, 0x69, + 0x91, 0x8b, 0x5f, 0x08, 0x98, 0x9c, 0x53, 0xa9, 0x2b, 0x05, 0xde, 0xfb, 0xcc, 0xf7, 0xd8, 0x8b, + 0x5c, 0x19, 0x97, 0x35, 0x8f, 0x06, 0xbd, 0x3e, 0xc9, 0xfc, 0xd3, 0x36, 0x36, 0xc5, 0x24, 0xc1, + 0x55, 0x9c, 0xb8, 0x8a, 0x88, 0x06, 0x3e, 0x15, 0x38, 0x37, 0x15, 0xb6, 0xba, 0xc1, 0x91, 0x8f, + 0x9c, 0x18, 0x5b, 0xc0, 0x66, 0xf1, 0xeb, 0x7e, 0x26, 0x41, 0x90, 0x90, 0x28, 0xcf, 0x7f, 0xc1, + 0xd7, 0x21, 0xac, 0xb7, 0xf9, 0xfe, 0x4f, 0x1d, 0x3c, 0xca, 0xd6, 0x0b, 0xa3, 0xe2, 0x9b, 0x17, + 0x13, 0x32, 0x3a, 0xcf, 0xba, 0xa1, 0xe0, 0xf2, 0x89, 0x9c, 0xea, 0x3a, 0x19, 0x29, 0xf0, 0x84, + 0x68, 0x3e, 0xff, 0x99, 0xc1, 0xba, 0x0c, 0x05, 0xe0, 0xba, 0x3f, 0xe3, 0x0f, 0x32, 0x5c, 0xb1, + 0x02, 0xcd, 0x70, 0xf2, 0x57, 0x7f, 0xe7, 0x38, 0x62, 0x0d, 0xee, 0x07, 0xb8, 0x16, 0xfb, 0xa5, + 0x22, 0x72, 0x15, 0xa3, 0x59, 0xe5, 0x25, 0x6d, 0x80, 0x05, 0x20, 0xa2, 0xbc, 0xfa, 0x56, 0xe7, + 0x61, 0x18, 0x29, 0x7e, 0x46, 0xe8, 0x79, 0x7e, 0x82, 0x3e, 0xa8, 0xa2, 0x8a, 0x62, 0xcf, 0xc6, + 0x15, 0xd7, 0x86, 0xaa, 0x10, 0xf5, 0x64, 0x56, 0xec, 0x35, 0x77, 0xf5, 0x3f, 0x28, 0x4e, 0xef, + 0x88, 0x88, 0x47, 0x8d, 0x1a, 0x6a, 0xe1, 0xec, 0xc0, 0xa0, 0x69, 0x93, 0x79, 0x31, 0x70, 0x7f, + 0xdf, 0x18, 0x30, 0xf9, 0x5d, 0x94, 0x5f, 0x38, 0x29, 0xeb, 0x69, 0x2e, 0x11, 0xb9, 0xb2, 0x4c, + 0xd5, 0xd8, 0x67, 0x4b, 0x55, 0x9e, 0xd7, 0xe6, 0x2a, 0xc1, 0xda, 0xcb, 0xb5, 0xd6, 0x40, 0x06, + 0xe0, 0xf1, 0x64, 0x7b, 0x75, 0xf6, 0xb7, 0x03, 0x9a, 0x6f, 0x9e, 0x58, 0xdd, 0x0b, 0xf5, 0x10, + 0x03, 0xa5, 0x9f, 0xa2, 0x3d, 0x2d, 0x84, 0x3a, 0xd1, 0x32, 0x19, 0xbe, 0x28, 0x4a, 0x7a, 0x2a, + 0xbe, 0x29, 0x8b, 0x9c, 0x5b, 0x26, 0xf6, 0xc9, 0x61, 0xd5, 0x2d, 0x1f, 0xd9, 0x90, 0x9e, 0xa4, + 0x01, 0x70, 0x5d, 0x5f, 0x67, 0x41, 0x50, 0x38, 0x96, 0x2f, 0xf5, 0x6a, 0x35, 0xce, 0x7c, 0xd9, + 0xcf, 0x2e, 0x3c, 0x1d, 0x99, 0x65, 0x8f, 0x47, 0x28, 0x21, 0xd0, 0xda, 0xd3, 0x88, 0xa1, 0xf7, + 0xf4, 0xbf, 0x5c, 0xd9, 0x6b, 0xfd, 0x5f, 0x73, 0x98, 0x15, 0x0a, 0x94, 0xde, 0x7a, 0x8e, 0x39, + 0x1c, 0x48, 0xd2, 0xe2, 0x93, 0x90, 0xd3, 0x11, 0xd9, 0x4e, 0x15, 0x8e, 0x60, 0x61, 0xba, 0xf0, + 0x05, 0xce, 0x4e, 0xce, 0xa1, 0x19, 0xa1, 0xbe, 0xd1, 0x7c, 0x68, 0x76, 0x66, 0x4d, 0x39, 0x81, + 0x14, 0xab, 0x07, 0x68, 0xbc, 0xae, 0xdf, 0x22, 0x07, 0x7e, 0x78, 0x8b, 0xe3, 0x48, 0x75, 0x9a, + 0xef, 0xec, 0x43, 0x1b, 0x9a, 0x5d, 0xc4, 0xa2, 0xc4, 0x1f, 0xaf, 0x92, 0x01, 0xf5, 0x8e, 0x46, + 0xaf, 0xb1, 0x04, 0x16, 0xca, 0xe2, 0x89, 0x11, 0x64, 0x42, 0xe3, 0xcb, 0x2e, 0x07, 0xef, 0xb4, + 0x33, 0x84, 0x7a, 0xcf, 0x20, 0x5e, 0x45, 0x6d, 0x3e, 0x01, 0xd5, 0x46, 0x99, 0x7b, 0x29, 0x79, + 0x66, 0x1c, 0x33, 0x72, 0xba, 0xe7, 0x77, 0x8a, 0x2f, 0x4a, 0x1b, 0xd6, 0x02, 0xbe, 0xa5, 0x43, + 0x7f, 0xae, 0xdf, 0x69, 0x43, 0x20, 0xab, 0x06, 0x7d, 0xaf, 0x87, 0xc0, 0x22, 0x2e, 0x75, 0x5b, + 0x3b, 0x16, 0x26, 0x53, 0x6a, 0xc2, 0x40, 0x1e, 0x9a, 0x66, 0x6c, 0x83, 0xe6, 0xf4, 0xbd, 0xf3, + 0xbd, 0x17, 0x9c, 0x3c, 0xf6, 0xf4, 0xd7, 0x27, 0x29, 0x49, 0x0a, 0x03, 0x3e, 0xb0, 0x2f, 0x3a, + 0xcc, 0xf8, 0x6e, 0x06, 0x85, 0x8d, 0x87, 0x67, 0x64, 0x13, 0xb3, 0x8b, 0x42, 0x49, 0x46, 0x9b, + 0xae, 0xc8, 0x6a, 0x9f, 0x5a, 0xc4, 0x68, 0x77, 0x47, 0x21, 0x9f, 0xf3, 0xc2, 0x83, 0xdf, 0x81, + 0x78, 0xfd, 0x57, 0x43, 0x32, 0x07, 0xea, 0xa4, 0x28, 0x18, 0x3d, 0x63, 0x38, 0x4d, 0x56, 0xed, + 0x0c, 0xe9, 0xa2, 0xec, 0x3a, 0x9d, 0xde, 0xc3, 0xfb, 0x80, 0x22, 0xc1, 0xb2, 0x24, 0xf6, 0x79, + 0x82, 0xe8, 0x27, 0x51, 0xc3, 0xd7, 0xe4, 0x5a, 0x26, 0x84, 0x7b, 0x83, 0x7d, 0xcf, 0x67, 0x0b, + 0x74, 0x02, 0x24, 0xb0, 0x6a, 0xbe, 0x7e, 0x6c, 0x4f, 0xa2, 0xe0, 0xbf, 0x5d, 0x0a, 0x6a, 0xca, + 0xf6, 0x52, 0x9a, 0x71, 0xa7, 0x85, 0x8d, 0xf7, 0x59, 0x2a, 0xa8, 0x57, 0x44, 0x03, 0xa4, 0x13, + 0x1b, 0x14, 0x47, 0x81, 0x75, 0xad, 0x4a, 0x1e, 0xc1, 0x4c, 0x44, 0x91, 0xd3, 0xb6, 0x89, 0x10, + 0x07, 0x79, 0x47, 0xf8, 0x7c, 0x4e, 0xcf, 0x69, 0x37, 0x06, 0x73, 0xdd, 0x13, 0x0b, 0x3a, 0x6e, + 0xeb, 0xb8, 0xd9, 0xed, 0xc3, 0xb7, 0x4e, 0x1e, 0x18, 0x97, 0xc2, 0x65, 0xd6, 0x83, 0x0c, 0x81, + 0x37, 0x60, 0xd8, 0x1f, 0xe5, 0x87, 0xe4, 0xbf, 0xa3, 0xff, 0xac, 0x7b, 0x28, 0x54, 0x6e, 0x12, + 0x1d, 0x5c, 0xee, 0x82, 0x31, 0x95, 0xd3, 0xfa, 0xc8, 0x50, 0xa9, 0xd6, 0x09, 0x52, 0xbb, 0x5a, + 0xac, 0x29, 0x02, 0x8a, 0xdb, 0xd2, 0x4a, 0x5c, 0x35, 0x70, 0x74, 0x5f, 0xd7, 0x09, 0xae, 0x58, + 0x91, 0x86, 0x0b, 0x5b, 0x6a, 0x15, 0x56, 0xc3, 0xc4, 0xb1, 0x43, 0x9b, 0x47, 0x47, 0xc6, 0x70, + 0x7e, 0xd3, 0xfe, 0x4f, 0x17, 0xa8, 0x41, 0x0a, 0xc0, 0x6b, 0x4d, 0x2c, 0x3e, 0x8b, 0x3a, 0xfa, + 0x53, 0xd9, 0x6f, 0x3f, 0x58, 0x01, 0x59, 0xda, 0x29, 0x3d, 0x85, 0xc5, 0x9f, 0x4d, 0xc1, 0x64, + 0xb6, 0x32, 0x08, 0x0c, 0x22, 0xd7, 0x81, 0x78, 0x3d, 0xd4, 0xf3, 0x9b, 0xe6, 0x98, 0xe2, 0x22, + 0x08, 0xd1, 0x5f, 0x7f, 0xfa, 0x3a, 0xc7, 0x01, 0xac, 0x90, 0x83, 0x5a, 0x98, 0x78, 0xfa, 0x82, + 0x52, 0x2c, 0xf4, 0x23, 0x3b, 0x4d, 0xec, 0x2f, 0xc8, 0x2b, 0xcd, 0x07, 0xbb, 0x50, 0x10, 0x48, + 0xb3, 0x8b, 0x27, 0x96, 0x49, 0xf5, 0x47, 0x51, 0xa3, 0xb0, 0x52, 0x65, 0x5f, 0x2e, 0x8a, 0x78, + 0xdb, 0xb2, 0xed, 0x7a, 0xa3, 0x88, 0x6d, 0xe2, 0x9e, 0x73, 0x64, 0xa5, 0x8d, 0xe5, 0x6e, 0xdc, + 0x7d, 0xeb, 0xd2, 0xa4, 0x68, 0x5e, 0x7b, 0xa1, 0xeb, 0xf2, 0x78, 0x50, 0x09, 0x27, 0xef, 0xd1, + 0xa9, 0xe0, 0x29, 0xa9, 0xac, 0x7a, 0xdf, 0xd7, 0x44, 0x30, 0x63, 0xf2, 0x2b, 0x01, 0xfd, 0xab, + 0xb1, 0x4e, 0x4d, 0x10, 0x6d, 0xe5, 0x3a, 0xdd, 0x9c, 0x42, 0xb4, 0xcc, 0xb2, 0xdc, 0x4f, 0xbe, + 0x22, 0xd2, 0x8b, 0x1d, 0x0d, 0x8e, 0x54, 0xd0, 0xcd, 0xd5, 0x03, 0xc7, 0xa3, 0xaa, 0x2b, 0x86, + 0x77, 0x38, 0xa8, 0xcc, 0x26, 0xfe, 0x46, 0xd2, 0x3c, 0x8a, 0x9f, 0xe4, 0x3f, 0xff, 0xbc, 0xef, + 0xfc, 0xba, 0x3f, 0xd6, 0xd1, 0xd9, 0xe4, 0x6f, 0x55, 0x33, 0x2c, 0xab, 0x62, 0xc6, 0x5a, 0x2c, + 0x3a, 0xf6, 0x88, 0xb7, 0x72, 0xee, 0xff, 0xec, 0xfc, 0x82, 0x70, 0x23, 0x2c, 0x87, 0x40, 0x1b, + 0x02, 0x5d, 0xe8, 0xf1, 0x65, 0x73, 0xd6, 0x99, 0x32, 0x57, 0xd7, 0x3e, 0x37, 0x9a, 0x19, 0x2f, + 0x15, 0xa7, 0x84, 0x23, 0x4b, 0x76, 0x1d, 0x13, 0x02, 0x2a, 0x0c, 0xa0, 0x9a, 0x30, 0x33, 0xf5, + 0xd8, 0x60, 0x9b, 0x54, 0xc2, 0xeb, 0x2f, 0xf6, 0x4b, 0x60, 0xe7, 0x83, 0xf3, 0x89, 0xdc, 0xe8, + 0xd8, 0x8c, 0x08, 0x4c, 0x16, 0xe3, 0x87, 0x9e, 0x77, 0x74, 0x92, 0xe5, 0xef, 0x77, 0xd7, 0xe7, + 0x1d, 0x33, 0x3a, 0x17, 0x34, 0x70, 0x7a, 0x95, 0xce, 0xee, 0x92, 0x81, 0xdc, 0x76, 0x46, 0x33, + 0x1b, 0xef, 0x70, 0x98, 0x0b, 0xfd, 0x02, 0xf2, 0x1c, 0x1c, 0xcb, 0x1e, 0xba, 0x63, 0x8f, 0x3f, + 0xfb, 0x8e, 0x2f, 0xc8, 0xb2, 0xe5, 0x63, 0xe9, 0x88, 0xaf, 0xc7, 0xb5, 0x1d, 0xd1, 0xb1, 0x9d, + 0xbb, 0x75, 0xd5, 0x25, 0x93, 0x11, 0x30, 0xe4, 0x6e, 0xa8, 0x70, 0xd0, 0xfa, 0x0a, 0x9f, 0xbb, + 0xcf, 0xb8, 0x3c, 0x64, 0x38, 0xf0, 0x65, 0x77, 0x44, 0x5a, 0x45, 0x60, 0x53, 0xb3, 0xe9, 0x4d, + 0x17, 0x64, 0xa0, 0x82, 0x01, 0x8e, 0x72, 0x28, 0x5d, 0x63, 0x3a, 0x17, 0x5b, 0xfd, 0xc3, 0x3d, + 0xab, 0xff, 0xb6, 0x3c, 0x26, 0x7d, 0xbb, 0x8c, 0x8b, 0xff, 0xea, 0xe0, 0x54, 0xdc, 0xd2, 0xff, + 0xc4, 0x87, 0xf1, 0x0d, 0xa8, 0x72, 0x2d, 0xf0, 0x81, 0x0a, 0x8d, 0x9f, 0x1a, 0x30, 0xb4, 0x02, + 0x72, 0x13, 0x06, 0xde, 0x60, 0xa0, 0xeb, 0x15, 0x68, 0xfa, 0xc9, 0x38, 0x10, 0x6c, 0xd5, 0x9d, + 0x24, 0x72, 0x4e, 0xc0, 0x6b, 0x15, 0x29, 0x4f, 0x46, 0xe5, 0x32, 0xc6, 0x0a, 0x39, 0x75, 0xe5, + 0xc5, 0xf2, 0x60, 0x58, 0x3e, 0x2d, 0x2d, 0xb2, 0x8f, 0xac, 0xab, 0x90, 0x6d, 0xeb, 0x14, 0x9a, + 0xa1, 0xce, 0xeb, 0xa0, 0xd2, 0x92, 0xb2, 0x80, 0xcd, 0x9d, 0x64, 0xd7, 0x75, 0xcc, 0x54, 0x58, + 0x40, 0xde, 0x7b, 0x98, 0x43, 0x5a, 0xe9, 0x53, 0xc9, 0xa8, 0x0a, 0x4e, 0xbc, 0xb8, 0xc5, 0x0c, + 0x98, 0xc4, 0x6b, 0xb0, 0x5d, 0x37, 0x2e, 0x45, 0x2b, 0x2f, 0xfc, 0x47, 0x27, 0x35, 0x46, 0x85, + 0x59, 0xbb, 0xd5, 0x04, 0x66, 0xbe, 0xc8, 0xf7, 0x72, 0x8f, 0x0b, 0x7c, 0x9d, 0xb1, 0xf3, 0xd6, + 0x9e, 0x12, 0x46, 0x20, 0xe3, 0xc8, 0x9d, 0x34, 0x4b, 0x18, 0x85, 0x2e, 0x3e, 0xe1, 0x7d, 0xf7, + 0xaf, 0x77, 0x3b, 0x54, 0x07, 0x33, 0xe6, 0x95, 0xd4, 0xa4, 0x19, 0x1a, 0xa3, 0x7e, 0xcb, 0x5c, + 0xc4, 0x50, 0x46, 0xca, 0xb6, 0x19, 0xf4, 0xb0, 0x47, 0x0c, 0x6e, 0x37, 0xca, 0xb0, 0x2a, 0x1a, + 0x31, 0xdc, 0x0f, 0x02, 0xaf, 0xa9, 0x2f, 0x44, 0x93, 0x1c, 0xa8, 0x15, 0xc0, 0xb4, 0x87, 0x24, + 0x74, 0x9b, 0x10, 0xae, 0xa4, 0x22, 0x43, 0xa0, 0x45, 0x7d, 0x66, 0x2b, 0xa4, 0x04, 0xac, 0x0e, + 0x9d, 0xfc, 0x97, 0x57, 0xb5, 0x50, 0x7e, 0x03, 0x06, 0xd4, 0x4d, 0x49, 0x41, 0x4b, 0xfa, 0x83, + 0x7f, 0x9e, 0x0a, 0x2a, 0xd9, 0x5c, 0x30, 0x1a, 0x4c, 0x66, 0xea, 0x82, 0xf2, 0xda, 0xe9, 0x4a, + 0xe8, 0x65, 0xca, 0x7b, 0x00, 0x22, 0x81, 0x7c, 0xdc, 0x0a, 0x4b, 0x00, 0x17, 0xa8, 0x41, 0xe0, + 0xe9, 0x37, 0x54, 0xf8, 0x7c, 0x86, 0xd2, 0x8a, 0x0d, 0xbc, 0x63, 0x00, 0xec, 0x63, 0x91, 0x46, + 0x4a, 0x32, 0xd0, 0xdf, 0x3e, 0x55, 0x21, 0xb4, 0x51, 0x65, 0xee, 0x8b, 0xe1, 0x96, 0x8e, 0x65, + 0xf3, 0x92, 0x11, 0x0d, 0x0d, 0x62, 0x90, 0xf0, 0x17, 0x32, 0xbd, 0x22, 0xa2, 0x72, 0xb2, 0xb5, + 0x2a, 0x8a, 0x76, 0x3a, 0x66, 0x10, 0x28, 0x80, 0x14, 0xf2, 0x25, 0x44, 0x3c, 0x3b, 0x63, 0x32, + 0x08, 0x64, 0xf8, 0xe3, 0x1b, 0x96, 0x46, 0xa9, 0x74, 0x83, 0x56, 0xbd, 0x2f, 0x72, 0x1d, 0x10, + 0x47, 0x42, 0x44, 0xa9, 0xfb, 0x15, 0xc6, 0xa8, 0xfd, 0xfe, 0x64, 0x05, 0x6e, 0x96, 0x76, 0xcc, + 0xb9, 0x95, 0x88, 0xc3, 0x94, 0x01, 0x28, 0x9d, 0x53, 0xf1, 0x73, 0x1e, 0x5b, 0xf3, 0x0e, 0x91, + 0x8d, 0xf5, 0xe4, 0x48, 0xa2, 0x7b, 0xe3, 0x83, 0xf4, 0x91, 0x13, 0xfd, 0x4d, 0xcb, 0xab, 0x12, + 0x6d, 0x09, 0x21, 0x35, 0xc3, 0xe1, 0x2c, 0x08, 0x51, 0x9b, 0x7c, 0xd2, 0x71, 0x6d, 0xd5, 0x57, + 0xe0, 0x50, 0x1e, 0xb3, 0xbb, 0x30, 0xad, 0x69, 0xf7, 0x6a, 0x68, 0x7a, 0x9f, 0x29, 0x21, 0x0d, + 0x52, 0xdb, 0x83, 0x51, 0x00, 0xa6, 0x37, 0x9f, 0x72, 0xbd, 0x7e, 0x56, 0x4e, 0x3d, 0x9d, 0xab, + 0xf3, 0x6c, 0xea, 0x99, 0x73, 0x08, 0xbc, 0x2e, 0x13, 0xd8, 0x5f, 0x0d, 0xb7, 0xfe, 0x02, 0x34, + 0x47, 0x12, 0x1f, 0xbe, 0x2c, 0xac, 0xe7, 0x7b, 0x1e, 0x88, 0x01, 0x3e, 0x42, 0xbb, 0x7f, 0x28, + 0x46, 0x16, 0x9f, 0x49, 0x60, 0x13, 0x3c, 0x39, 0x13, 0x4b, 0xc3, 0xca, 0xba, 0xff, 0x3d, 0xcb, + 0xe9, 0xca, 0xaf, 0x46, 0xb0, 0xcf, 0x44, 0x20, 0xcf, 0xc2, 0x25, 0x52, 0x25, 0xb9, 0x67, 0x7d, + 0x88, 0x13, 0x99, 0xdf, 0x77, 0x3b, 0xa7, 0x9f, 0x8b, 0x04, 0xb6, 0xbe, 0x69, 0x6f, 0x83, 0xbf, + 0x87, 0x80, 0xb8, 0x0c, 0x3f, 0x64, 0x06, 0x07, 0xe0, 0x96, 0x11, 0xf3, 0xc7, 0x76, 0xd2, 0x2f, + 0x59, 0x93, 0xe7, 0xbd, 0x8d, 0x47, 0x28, 0x65, 0x00, 0xa9, 0x94, 0x95, 0x50, 0xbd, 0x8a, 0x40, + 0xe7, 0xe0, 0x43, 0x39, 0xa5, 0x1d, 0x61, 0x87, 0xca, 0x44, 0xd9, 0xcd, 0x37, 0xce, 0xa9, 0x56, + 0x55, 0x92, 0xee, 0x2f, 0xba, 0x29, 0xa5, 0x20, 0x02, 0x63, 0x64, 0xdd, 0xa1, 0xbd, 0xf2, 0x25, + 0x4a, 0x79, 0xce, 0x80, 0x58, 0x16, 0xc6, 0x28, 0x65, 0xc0, 0x27, 0x3d, 0x19, 0x73, 0xee, 0xd4, + 0x1a, 0x21, 0x79, 0x8c, 0x43, 0x00, 0x32, 0xe7, 0x0a, 0xa9, 0x66, 0xb4, 0xdf, 0x3f, 0x84, 0xd3, + 0x39, 0xb6, 0x62, 0x49, 0x06, 0x7f, 0x11, 0x9a, 0x0a, 0x84, 0xdf, 0x32, 0x46, 0x07, 0xcd, 0x3a, + 0xcc, 0xeb, 0x27, 0xf7, 0x5c, 0x65, 0xc2, 0x5a, 0xb6, 0xa0, 0x6f, 0x3c, 0x4f, 0x61, 0x8f, 0xf0, + 0x22, 0xf9, 0x0d, 0x0a, 0xd1, 0x81, 0x0b, 0x0a, 0xf1, 0x9a, 0x3c, 0x82, 0x7a, 0x50, 0x0c, 0x66, + 0x84, 0xf7, 0xd8, 0xc8, 0x21, 0xa9, 0x1c, 0xf7, 0xd1, 0xdb, 0x7c, 0x33, 0x24, 0xae, 0xf9, 0xc3, + 0xb2, 0xbe, 0x32, 0x43, 0xdf, 0x81, 0xd2, 0x6c, 0x45, 0xe8, 0x4b, 0x07, 0x06, 0xed, 0x99, 0xf7, + 0xa7, 0xab, 0x60, 0x96, 0x9f, 0x2a, 0x75, 0x83, 0xb9, 0xda, 0xea, 0x06, 0x94, 0x58, 0x1c, 0x18, + 0xa2, 0x82, 0x6e, 0x85, 0x0f, 0xca, 0x36, 0xb9, 0x84, 0x04, 0x40, 0xce, 0xb5, 0x8f, 0xed, 0xe4, + 0xdd, 0x27, 0x9f, 0x3b, 0xd4, 0xe8, 0xde, 0x3e, 0x93, 0x6a, 0x18, 0x71, 0x94, 0x6c, 0x77, 0xad, + 0xb8, 0x4d, 0x56, 0xab, 0xf2, 0x0d, 0x63, 0x80, 0x9a, 0xc3, 0xdc, 0x81, 0x62, 0x47, 0xf6, 0x12, + 0xbd, 0xdb, 0xd0, 0x99, 0x98, 0x23, 0x0f, 0xd1, 0xa4, 0x91, 0xcd, 0xff, 0xa8, 0x76, 0x23, 0x6c, + 0x51, 0x28, 0xcb, 0x56, 0x7a, 0xa7, 0xb3, 0x58, 0xea, 0x6f, 0x02, 0xdc, 0x4a, 0x8f, 0x62, 0xeb, + 0xbb, 0x51, 0xfc, 0x0d, 0xa9, 0x25, 0x96, 0x69, 0xf5, 0x77, 0x2b, 0x7f, 0xda, 0x5a, 0x66, 0x4f, + 0x9b, 0x9c, 0xa1, 0x79, 0x20, 0xc8, 0x87, 0x58, 0x5f, 0x16, 0xa3, 0xea, 0x2f, 0xd8, 0xec, 0x5b, + 0x6b, 0x48, 0xe6, 0xef, 0x7a, 0xb8, 0xcf, 0x09, 0x9f, 0xb8, 0x23, 0x30, 0x27, 0x6d, 0x47, 0x89, + 0x89, 0xf3, 0xe2, 0x2d, 0x46, 0x16, 0x98, 0x0a, 0xd4, 0xbd, 0x1e, 0xaa, 0xff, 0xb5, 0xc1, 0xdb, + 0x39, 0x70, 0xee, 0xde, 0xc3, 0x67, 0x30, 0x16, 0x00, 0xfe, 0xd6, 0x0c, 0xca, 0xd7, 0xa7, 0xc8, + 0x9e, 0xa7, 0x26, 0x54, 0xfb, 0x0d, 0x7b, 0x51, 0x6e, 0x6a, 0xdc, 0x11, 0x1c, 0x14, 0x08, 0xda, + 0xed, 0xf2, 0xe9, 0x1f, 0x5d, 0x00, 0x2d, 0x1a, 0x4a, 0x23, 0xb1, 0xb6, 0x41, 0xef, 0x29, 0x9c, + 0x1f, 0x19, 0x4c, 0xae, 0x7d, 0xd3, 0x0e, 0xe1, 0xb2, 0xde, 0x50, 0x5d, 0x85, 0x34, 0xf5, 0x16, + 0x2b, 0xd0, 0x31, 0x61, 0x9a, 0x9d, 0x19, 0xd6, 0x6c, 0xf4, 0xbe, 0x9c, 0x43, 0xa9, 0xc2, 0xd7, + 0x0f, 0xe3, 0x87, 0xad, 0xa3, 0x31, 0x7f, 0x46, 0xb9, 0xb5, 0x11, 0x6e, 0x06, 0x03, 0xc1, 0xd3, + 0x8a, 0x79, 0x36, 0xc2, 0x37, 0xac, 0x12, 0x7e, 0x13, 0x6a, 0x6c, 0x12, 0x79, 0x25, 0x43, 0x5f, + 0x4b, 0x03, 0xf3, 0xae, 0x4e, 0xc0, 0x4d, 0x20, 0x74, 0xf0, 0x75, 0x44, 0x8a, 0x3c, 0x33, 0x6d, + 0x2d, 0xbb, 0xb5, 0x9e, 0x6f, 0x22, 0x56, 0x4a, 0x18, 0xc1, 0x63, 0x35, 0x94, 0x3d, 0xfa, 0xba, + 0x7d, 0x24, 0xaf, 0xcf, 0xdc, 0x8e, 0x12, 0x1d, 0x1d, 0x4f, 0xd0, 0xda, 0xaa, 0x1a, 0x03, 0xe7, + 0x3f, 0x4d, 0xaa, 0xc9, 0xd0, 0x57, 0x5d, 0xe7, 0x3b, 0xf3, 0x9b, 0xa8, 0x74, 0x91, 0xe7, 0x2b, + 0x24, 0xe5, 0xe0, 0xfb, 0x4e, 0xdd, 0x53, 0xca, 0xff, 0xca, 0x5f, 0x31, 0xe7, 0xae, 0xb1, 0x78, + 0xcb, 0xbe, 0xb1, 0x64, 0xf9, 0x9d, 0x69, 0xb8, 0x01, 0x01, 0x54, 0xa2, 0x45, 0x1e, 0xdb, 0xe1, + 0xde, 0x68, 0xa0, 0xba, 0xd1, 0x67, 0xc6, 0x4a, 0xcd, 0xc4, 0x5a, 0x16, 0xaf, 0x48, 0x3e, 0x24, + 0x1f, 0x26, 0x62, 0xe3, 0x61, 0xfe, 0x56, 0x13, 0xb7, 0x44, 0xfd, 0x06, 0xdb, 0x59, 0xa9, 0x8a, + 0x19, 0xc7, 0x67, 0x1d, 0x4e, 0xd0, 0xa8, 0x25, 0xe1, 0xeb, 0xd7, 0xae, 0x15, 0xdd, 0x6c, 0xe5, + 0x51, 0x22, 0x13, 0x2d, 0xd9, 0x3e, 0x09, 0x19, 0xfe, 0x89, 0x91, 0x4c, 0x49, 0x5f, 0x5c, 0x79, + 0x88, 0xe0, 0x5e, 0xf5, 0x33, 0x9b, 0x25, 0x3f, 0xb5, 0xea, 0x3c, 0x3f, 0x7a, 0x8f, 0x69, 0x68, + 0xc4, 0xd9, 0xa8, 0xe1, 0x40, 0x84, 0xfd, 0xc6, 0xd0, 0x0a, 0x3c, 0x16, 0x08, 0x45, 0x48, 0x90, + 0xbe, 0xd1, 0x1a, 0x3e, 0x8e, 0x20, 0x7e, 0xb3, 0x68, 0x88, 0xee, 0x92, 0x7f, 0xd0, 0x23, 0xa3, + 0xe8, 0x0a, 0x15, 0x0c, 0x7e, 0x87, 0x0d, 0x55, 0x39, 0x7e, 0x84, 0x59, 0x1f, 0x6b, 0x44, 0xe0, + 0xde, 0xf3, 0xae, 0x2c, 0xb8, 0xbf, 0x44, 0x93, 0xde, 0xec, 0x0e, 0x44, 0x2f, 0x94, 0x62, 0xef, + 0xff, 0xf4, 0xba, 0x82, 0x4e, 0x07, 0x6a, 0xc5, 0xed, 0x9f, 0x63, 0x39, 0x32, 0x9c, 0x16, 0x34, + 0x01, 0xa9, 0x3c, 0x53, 0xc2, 0x00, 0x37, 0x0f, 0xea, 0x21, 0xf0, 0x28, 0x8f, 0xc2, 0xc9, 0x88, + 0x5c, 0x48, 0x85, 0xdc, 0xc6, 0x46, 0x95, 0x14, 0xc5, 0xdf, 0x63, 0x48, 0x61, 0xd2, 0x19, 0xb8, + 0xb8, 0xfa, 0x85, 0x10, 0x87, 0x7a, 0x10, 0xcc, 0x81, 0x14, 0x84, 0x5d, 0x79, 0xd6, 0xfa, 0x80, + 0xe1, 0x30, 0xdc, 0x54, 0x98, 0xe6, 0x39, 0x69, 0xc4, 0x83, 0xbd, 0x7c, 0x91, 0x57, 0xd8, 0xa5, + 0x09, 0xa0, 0xfb, 0x98, 0x5d, 0x8d, 0x28, 0x03, 0xb9, 0x8d, 0x3c, 0xe4, 0xc3, 0xb8, 0xfa, 0xc6, + 0x91, 0x1d, 0xb6, 0x3b, 0x9b, 0xb2, 0xd5, 0x56, 0xb1, 0x90, 0xd8, 0xfd, 0xbc, 0x21, 0x41, 0x9f, + 0x08, 0x71, 0x5f, 0x37, 0xe0, 0xea, 0x6f, 0x62, 0x8b, 0x60, 0xba, 0xfd, 0xdb, 0x3c, 0x94, 0x44, + 0xe4, 0x95, 0x3c, 0xed, 0x7b, 0xd2, 0xd0, 0x4f, 0x8e, 0x07, 0xbe, 0xf7, 0x2d, 0x73, 0xd5, 0xad, + 0x71, 0xde, 0xb9, 0x18, 0x22, 0xae, 0xbb, 0x06, 0xb7, 0x99, 0x4a, 0x2f, 0xff, 0x70, 0xe6, 0x31, + 0x85, 0x58, 0x01, 0xe5, 0x15, 0x01, 0x43, 0xb5, 0x51, 0xd0, 0xf0, 0x0c, 0xe2, 0x9e, 0xe2, 0x5d, + 0x0e, 0xc8, 0xba, 0x8f, 0x38, 0xb5, 0x4f, 0xce, 0xd8, 0x0d, 0x4b, 0x90, 0x1e, 0x04, 0x83, 0xe5, + 0x62, 0x29, 0x1f, 0x63, 0x10, 0xd6, 0xd4, 0x4e, 0xe2, 0xed, 0xc3, 0x38, 0x3e, 0x9e, 0x95, 0xd8, + 0x63, 0x5d, 0x7e, 0xcf, 0x64, 0xa1, 0x84, 0x80, 0x7f, 0x63, 0xeb, 0x10, 0xd6, 0x36, 0x5b, 0xd9, + 0xc8, 0x54, 0x9d, 0xee, 0x5e, 0xcd, 0x99, 0x17, 0x18, 0x29, 0x84, 0x0b, 0x4a, 0xbe, 0x0c, 0xc9, + 0x14, 0xc6, 0x91, 0x6f, 0x69, 0xa8, 0x11, 0x8d, 0x5b, 0xc1, 0x19, 0xc1, 0x8f, 0xc0, 0x66, 0xf9, + 0x36, 0xc8, 0x91, 0x7b, 0x70, 0xc7, 0x42, 0x3d, 0x9f, 0xb9, 0x24, 0xd7, 0x45, 0xbf, 0x42, 0xa0, + 0x0a, 0x1f, 0x48, 0x60, 0xec, 0x3e, 0x39, 0x6f, 0x87, 0x5d, 0xfc, 0x91, 0xb7, 0x44, 0xef, 0xde, + 0xe9, 0x6e, 0x38, 0xb3, 0xb4, 0x9f, 0x15, 0x29, 0x4a, 0xfc, 0x15, 0xdf, 0xff, 0x61, 0x6f, 0xac, + 0xa8, 0xdc, 0x6d, 0xfc, 0xbf, 0x47, 0x0a, 0x92, 0x3f, 0x24, 0x0d, 0x01, 0x9a, 0xe4, 0xe0, 0x16, + 0xc1, 0x4e, 0x49, 0xd4, 0x08, 0x43, 0xb9, 0xde, 0xca, 0x83, 0x74, 0xea, 0x94, 0x5a, 0x2a, 0xd2, + 0xa3, 0x81, 0xbd, 0xdd, 0xc8, 0xe7, 0xe9, 0xba, 0x81, 0xfd, 0xa3, 0x8b, 0x20, 0x9c, 0xfd, 0x16, + 0x1f, 0xe7, 0xe5, 0x6a, 0xa8, 0x85, 0x23, 0x27, 0x64, 0xcf, 0x39, 0xcc, 0x2b, 0x3a, 0x1f, 0xce, + 0x9b, 0x7e, 0x8c, 0x82, 0x89, 0xe3, 0x23, 0x66, 0xef, 0x64, 0xb5, 0x7c, 0x17, 0xc9, 0x69, 0x35, + 0x10, 0xfd, 0x77, 0xc8, 0x03, 0xc8, 0x28, 0xaf, 0x13, 0x89, 0x3b, 0xfd, 0x47, 0x06, 0x61, 0x0d, + 0x70, 0x8b, 0x16, 0xd0, 0x7b, 0xc4, 0x4b, 0x71, 0x1f, 0xf8, 0x23, 0x6b, 0x4b, 0xd3, 0x6a, 0xc1, + 0x71, 0x73, 0x7d, 0x7a, 0x7b, 0x93, 0xd3, 0x02, 0xc3, 0x50, 0xa3, 0xeb, 0x04, 0xbd, 0xa0, 0xa5, + 0xa1, 0x35, 0x6d, 0x87, 0xaf, 0xe9, 0x0e, 0xa1, 0x01, 0xdc, 0x9c, 0x72, 0x65, 0x15, 0x87, 0x82, + 0xaa, 0xa9, 0x7c, 0x8f, 0x59, 0x71, 0x46, 0x9c, 0xe7, 0x57, 0x63, 0x4a, 0xb7, 0xc7, 0xd9, 0x69, + 0x37, 0x3f, 0xcd, 0x8e, 0xed, 0x6e, 0xc8, 0xf1, 0xf7, 0x7a, 0x25, 0xdd, 0xed, 0xf3, 0x6b, 0x9a, + 0x72, 0x92, 0xd0, 0x74, 0x11, 0x8d, 0x58, 0x31, 0x3c, 0xfe, 0x07, 0x04, 0x84, 0x75, 0xa1, 0x83, + 0x21, 0x55, 0x74, 0xa1, 0xfb, 0x54, 0x65, 0xce, 0x53, 0xf1, 0x17, 0x0d, 0xd4, 0xb9, 0xa9, 0x32, + 0x0a, 0x79, 0x3b, 0x39, 0xc9, 0x77, 0xcf, 0xf4, 0xcf, 0xb3, 0xfb, 0xf7, 0xd7, 0x20, 0x39, 0x6e, + 0xb3, 0xc9, 0x5b, 0x09, 0xe7, 0xaf, 0x76, 0x81, 0x25, 0x5f, 0x2b, 0x14, 0x88, 0xba, 0x1e, 0x4d, + 0x09, 0xd9, 0xba, 0xd3, 0x66, 0xef, 0x00, 0x4f, 0x4c, 0xf7, 0xaf, 0xcd, 0x8a, 0xd1, 0x8d, 0x42, + 0xc6, 0x3d, 0x5f, 0x73, 0xff, 0x81, 0x55, 0xc1, 0x70, 0xc0, 0x55, 0x0e, 0x5a, 0x28, 0xa3, 0x6b, + 0x0a, 0x48, 0x97, 0x49, 0xd5, 0xe4, 0x49, 0x7c, 0x6e, 0x6e, 0x5f, 0xc3, 0x88, 0x82, 0xc1, 0x84, + 0x3a, 0xfb, 0xae, 0x30, 0xa0, 0x8e, 0xa3, 0x6d, 0x1e, 0x60, 0xac, 0x49, 0x60, 0x69, 0x47, 0x75, + 0xa5, 0xdd, 0xcf, 0x6f, 0x44, 0x97, 0x90, 0x8f, 0x6c, 0x31, 0xc8, 0x52, 0xf6, 0xf5, 0x2c, 0x7b, + 0x48, 0xe4, 0xb4, 0xdd, 0x01, 0x1f, 0xed, 0x7c, 0xbb, 0xfc, 0x6d, 0x9d, 0xd8, 0xc7, 0x94, 0x7a, + 0x4b, 0x38, 0x3e, 0xe4, 0xf8, 0x0c, 0x20, 0xb2, 0x16, 0xb2, 0x05, 0x9f, 0xa0, 0x45, 0xdd, 0x24, + 0x28, 0x3d, 0x65, 0x05, 0x5a, 0xec, 0x02, 0x9d, 0x95, 0x8e, 0x38, 0x3b, 0xaa, 0xe2, 0xfe, 0xbc, + 0x47, 0xed, 0x65, 0xd5, 0xb3, 0xa0, 0xb3, 0x95, 0x5c, 0x6d, 0xc0, 0x2a, 0x38, 0x8e, 0xce, 0xc2, + 0xf6, 0xe6, 0x72, 0xa7, 0x78, 0x81, 0x8f, 0x19, 0x48, 0x2e, 0x19, 0xb8, 0x82, 0xa5, 0xda, 0x87, + 0x8c, 0x8a, 0xa8, 0xd2, 0xc5, 0x16, 0x15, 0xad, 0x53, 0x3b, 0xc6, 0xb0, 0xc1, 0x68, 0x68, 0xe4, + 0x1f, 0xba, 0x82, 0x45, 0x0b, 0x2f, 0x9e, 0xb2, 0x39, 0xbd, 0x1b, 0x30, 0xb3, 0x02, 0xf8, 0x6d, + 0x54, 0x4a, 0xb6, 0x48, 0x98, 0xf5, 0x5f, 0xe1, 0x0a, 0xba, 0x94, 0xba, 0xbe, 0x20, 0x53, 0x60, + 0x37, 0x0f, 0x1b, 0x95, 0xd3, 0x1a, 0x1f, 0x3c, 0xcb, 0x48, 0xc9, 0x98, 0xd4, 0xd3, 0x8b, 0xc3, + 0xce, 0x44, 0x75, 0x64, 0x0d, 0x51, 0x54, 0x6b, 0xf9, 0xdc, 0xee, 0xcd, 0xb1, 0x4f, 0x01, 0xaf, + 0x80, 0x64, 0xb0, 0xac, 0xef, 0x52, 0xe2, 0x2f, 0xb1, 0x83, 0x73, 0xb6, 0x94, 0x0f, 0x6c, 0xdd, + 0x40, 0xfd, 0x97, 0xf8, 0xac, 0x70, 0x52, 0xe8, 0xb7, 0x40, 0x33, 0x12, 0x9a, 0x83, 0x63, 0xa4, + 0xca, 0x55, 0x76, 0xae, 0x8c, 0x6e, 0xed, 0x2d, 0x4f, 0xd2, 0x2d, 0x81, 0x77, 0x38, 0xf1, 0xa8, + 0xbf, 0xcc, 0x48, 0x7d, 0x1e, 0x95, 0xd8, 0x7a, 0x90, 0x88, 0xb5, 0x91, 0x6a, 0x70, 0xa0, 0xa4, + 0xa4, 0xe4, 0x51, 0x42, 0x1c, 0x89, 0x26, 0xee, 0xcc, 0x98, 0x27, 0xe7, 0xd3, 0x69, 0xb5, 0x33, + 0x89, 0x83, 0x65, 0x51, 0xdb, 0xc7, 0xc5, 0xeb, 0xcd, 0xd0, 0x2e, 0xea, 0x43, 0x6c, 0xcf, 0xb9, + 0xde, 0xff, 0xb3, 0x5b, 0x84, 0xc8, 0x78, 0x5f, 0xe8, 0x09, 0x93, 0x18, 0x1f, 0xd7, 0x8a, 0xa1, + 0xb0, 0xb3, 0x38, 0x6e, 0x3c, 0x62, 0xa2, 0x3b, 0xb5, 0x8e, 0x20, 0xe9, 0x11, 0x02, 0xc5, 0x73, + 0xf9, 0xf0, 0x36, 0xf6, 0xa9, 0x2d, 0x4a, 0xe1, 0x3f, 0x60, 0x84, 0x99, 0xfe, 0x08, 0x88, 0x97, + 0x28, 0x7f, 0x43, 0x51, 0x6c, 0x76, 0x32, 0x6e, 0xfc, 0x8d, 0x6d, 0xb8, 0x8e, 0x58, 0x70, 0x65, + 0xc5, 0x17, 0x77, 0x60, 0x0d, 0xbe, 0x8f, 0xfe, 0x44, 0x58, 0xd3, 0x4a, 0x7b, 0x8b, 0xc5, 0xef, + 0x83, 0xf4, 0xb9, 0x64, 0x3b, 0xfd, 0xc8, 0x7b, 0x49, 0x00, 0x88, 0x43, 0x40, 0x68, 0x7c, 0xc8, + 0xf4, 0x90, 0x93, 0x97, 0x3e, 0xab, 0x84, 0x78, 0x18, 0x68, 0x8e, 0x0b, 0x09, 0x03, 0x7f, 0x8e, + 0xbe, 0x96, 0x5e, 0xc1, 0x4f, 0x71, 0xc8, 0x16, 0xc6, 0xb0, 0x52, 0xe5, 0xa5, 0x93, 0x20, 0x51, + 0x4b, 0x4a, 0xdf, 0xe4, 0x65, 0xa3, 0xda, 0x28, 0x42, 0x5e, 0x33, 0xd2, 0xde, 0x49, 0x61, 0x3c, + 0x10, 0x5a, 0xc2, 0x81, 0x97, 0x16, 0x38, 0x24, 0xd3, 0x4b, 0x88, 0xda, 0x71, 0xed, 0x0d, 0xa8, + 0x07, 0x09, 0xc2, 0xee, 0x40, 0xae, 0x0f, 0x0e, 0x49, 0x4e, 0xcf, 0xd6, 0x7a, 0x47, 0x35, 0x41, + 0x74, 0x3e, 0x20, 0x31, 0x51, 0x75, 0x4f, 0x06, 0x71, 0x90, 0x64, 0xde, 0xef, 0x25, 0xac, 0x14, + 0xfc, 0xf6, 0x90, 0x7d, 0x8c, 0xdf, 0xb8, 0x7c, 0xff, 0x0f, 0x65, 0x6f, 0xbe, 0xac, 0x9e, 0x9a, + 0xde, 0x04, 0x68, 0xbf, 0x0e, 0xef, 0xd1, 0xf2, 0x6b, 0x75, 0x0c, 0x0a, 0x9c, 0xef, 0x2a, 0xf2, + 0x77, 0x8f, 0xb7, 0x6d, 0x34, 0x9b, 0xcf, 0x6d, 0x00, 0xfa, 0x11, 0x1c, 0x57, 0x83, 0x1a, 0x4b, + 0xee, 0x4c, 0xb8, 0x27, 0xba, 0xf3, 0x02, 0x7f, 0x31, 0x13, 0xfd, 0x97, 0xc7, 0x48, 0xb3, 0x28, + 0x88, 0xe5, 0x6c, 0x60, 0x5c, 0x4d, 0x0d, 0x45, 0x19, 0xa7, 0xb6, 0x3e, 0x66, 0x8e, 0xf1, 0xe1, + 0x40, 0xb4, 0x40, 0x6b, 0xcd, 0xbe, 0x6e, 0x2c, 0x64, 0xa1, 0x3d, 0x01, 0x27, 0x8a, 0x83, 0xbc, + 0xe1, 0xc0, 0x76, 0x2e, 0xd0, 0xdd, 0xa1, 0xe3, 0x91, 0x81, 0xb7, 0x53, 0x6b, 0x78, 0x17, 0x78, + 0x81, 0xb8, 0x90, 0xe4, 0x2f, 0xe3, 0x66, 0xde, 0x46, 0x88, 0x7e, 0x2f, 0xca, 0x32, 0xbb, 0xa5, + 0xcf, 0x25, 0xb7, 0x00, 0x00, 0x19, 0x98, 0x1d, 0x1d, 0x07, 0xff, 0xa0, 0x1d, 0x7a, 0x2c, 0xbd, + 0x6f, 0xef, 0x01, 0xc6, 0x6d, 0x4b, 0x6b, 0x4f, 0xb9, 0x6b, 0xc3, 0x9a, 0x41, 0x47, 0x3e, 0x7f, + 0x4e, 0xbc, 0x30, 0x14, 0x60, 0xe0, 0xa0, 0x9a, 0xc2, 0x9d, 0x75, 0xca, 0xcc, 0xc5, 0x4d, 0x75, + 0x94, 0x1f, 0x58, 0xbc, 0x22, 0x88, 0xed, 0x5e, 0xa4, 0xf6, 0xe2, 0x5e, 0xb9, 0x28, 0x26, 0x66, + 0xce, 0x70, 0x8c, 0x9e, 0x5d, 0x2e, 0x90, 0xab, 0x11, 0xff, 0xdb, 0x98, 0x50, 0x25, 0x9d, 0x02, + 0xfc, 0x95, 0x16, 0x12, 0x67, 0xc7, 0x2b, 0xbe, 0xe5, 0x69, 0xa1, 0x77, 0x6a, 0x52, 0x07, 0x07, + 0xfc, 0xf7, 0xa2, 0xfa, 0x8f, 0xfc, 0x50, 0x4a, 0x04, 0x45, 0x8d, 0x69, 0xa4, 0x7f, 0x23, 0x79, + 0xe9, 0xf1, 0x76, 0xd7, 0x96, 0x62, 0x2d, 0x63, 0xb5, 0x49, 0x50, 0xba, 0x0e, 0xf5, 0x1c, 0x87, + 0xc1, 0xa8, 0x25, 0x62, 0x8c, 0xf2, 0x91, 0x58, 0x6b, 0x11, 0xe4, 0xe7, 0x2f, 0x99, 0x62, 0x68, + 0x6f, 0xd1, 0x4a, 0x83, 0x9c, 0x10, 0xde, 0x16, 0xbb, 0x02, 0x46, 0xd5, 0x2e, 0xdc, 0xeb, 0x8c, + 0x0d, 0xab, 0x5e, 0x16, 0xb6, 0xc7, 0xfa, 0xfa, 0x59, 0x50, 0x37, 0x61, 0xa7, 0x40, 0x92, 0xb3, + 0xea, 0xdc, 0x9d, 0x79, 0x6b, 0xc9, 0x7e, 0x5c, 0xad, 0x97, 0xf2, 0x87, 0x8b, 0xf7, 0x74, 0x10, + 0xc7, 0x21, 0x2d, 0xd0, 0x99, 0x77, 0xfa, 0x9d, 0x9a, 0xc5, 0x03, 0x4a, 0x46, 0x45, 0x5b, 0xde, + 0xa6, 0x9e, 0xa0, 0xd9, 0x84, 0x24, 0x87, 0x0f, 0x2f, 0x31, 0x35, 0xfd, 0xab, 0xf9, 0x1c, 0x46, + 0x09, 0x08, 0xae, 0xc9, 0x42, 0x78, 0x53, 0xe0, 0xc5, 0x09, 0xdb, 0x63, 0x7f, 0x15, 0x58, 0xf1, + 0xac, 0x55, 0x6f, 0x78, 0x3f, 0xf0, 0xee, 0x18, 0x59, 0x25, 0xf1, 0xd3, 0x4b, 0x73, 0x84, 0x9b, + 0xfe, 0xd3, 0x60, 0x68, 0x47, 0x3e, 0x79, 0xc5, 0x40, 0x84, 0x50, 0x25, 0x23, 0xa7, 0xfa, 0xe9, + 0xf6, 0xfd, 0x93, 0x47, 0xc7, 0x81, 0xa5, 0xdd, 0x98, 0x15, 0xfa, 0x44, 0x6c, 0x22, 0x9e, 0x41, + 0x4b, 0x37, 0xba, 0x48, 0xc4, 0x5f, 0x77, 0xf1, 0x54, 0xf4, 0xb7, 0xb7, 0x67, 0xc7, 0xfb, 0x1f, + 0xb9, 0x1d, 0x2b, 0xef, 0x60, 0x09, 0xbf, 0x2d, 0x61, 0x26, 0xe6, 0x15, 0xd2, 0xf3, 0x98, 0x9c, + 0xfc, 0x43, 0xde, 0x1a, 0x26, 0xbe, 0x96, 0xd5, 0xbc, 0x88, 0xad, 0x57, 0xb6, 0xfa, 0x5d, 0x3a, + 0x29, 0xf4, 0x23, 0x3b, 0x7c, 0xcd, 0xd2, 0x4d, 0x1c, 0x18, 0x37, 0x66, 0x8c, 0x08, 0xf3, 0x5e, + 0xe6, 0x39, 0x6e, 0x31, 0xfa, 0x7f, 0x64, 0xe9, 0xb1, 0xbc, 0x32, 0xda, 0x9d, 0x74, 0xfd, 0xbd, + 0x82, 0x72, 0xf2, 0xf6, 0x0d, 0x1a, 0x87, 0x3f, 0x5b, 0x6c, 0x11, 0x11, 0x19, 0x48, 0x41, 0x74, + 0xb0, 0x88, 0xf6, 0x22, 0x46, 0x85, 0xd4, 0x2a, 0x2d, 0x6a, 0x23, 0x88, 0x6e, 0x53, 0x57, 0x3a, + 0xb3, 0xf1, 0xda, 0x56, 0xbd, 0xd1, 0xe2, 0x48, 0x6f, 0xc4, 0x05, 0x27, 0xe1, 0x60, 0x71, 0xc7, + 0xa6, 0xdc, 0x0a, 0x87, 0xe9, 0x61, 0xc1, 0x33, 0x9d, 0x62, 0xeb, 0x64, 0x26, 0x82, 0x34, 0x26, + 0x50, 0x32, 0x16, 0xe5, 0xc4, 0x83, 0xc8, 0x81, 0x1c, 0xae, 0xb3, 0x26, 0x5c, 0x21, 0x28, 0x2d, + 0x20, 0xf5, 0xb0, 0xae, 0xa1, 0x41, 0x85, 0x9e, 0x0d, 0x2e, 0xc2, 0xd9, 0x14, 0x09, 0xca, 0xb5, + 0x6e, 0xeb, 0x2d, 0xd2, 0x5f, 0x1c, 0xb1, 0xd1, 0xa9, 0xfd, 0x52, 0x5e, 0xa6, 0x48, 0xb7, 0x34, + 0x0d, 0xff, 0xda, 0x64, 0xcb, 0x71, 0xe6, 0x33, 0x29, 0x3d, 0x37, 0x7f, 0x28, 0x0f, 0x4f, 0xc4, + 0x68, 0x24, 0x6b, 0x51, 0xbc, 0x1d, 0xbd, 0x74, 0xff, 0x43, 0x9a, 0x87, 0x85, 0x82, 0x0e, 0x60, + 0xb1, 0x79, 0xdb, 0x9c, 0x80, 0xac, 0x76, 0x7c, 0xbd, 0xaf, 0xc4, 0x06, 0x93, 0x56, 0x3c, 0x20, + 0xe6, 0x68, 0x38, 0x63, 0x40, 0xaf, 0x10, 0x67, 0xd8, 0xb4, 0x0f, 0xa8, 0x74, 0xd1, 0x38, 0x95, + 0xac, 0x2e, 0xc2, 0xc4, 0xef, 0x51, 0x07, 0xed, 0x0d, 0x17, 0x6a, 0xbe, 0x3d, 0x68, 0xb8, 0x82, + 0x55, 0x05, 0x9e, 0x4b, 0x30, 0x23, 0xc4, 0x8d, 0xc6, 0x1d, 0x1b, 0x35, 0x81, 0x99, 0x7e, 0x87, + 0xe4, 0x99, 0x2a, 0xd8, 0xfb, 0x24, 0x7d, 0xd3, 0xf1, 0xeb, 0xb2, 0x06, 0x47, 0xa8, 0x54, 0xc7, + 0x55, 0xcd, 0xb3, 0x46, 0xd3, 0xb1, 0x48, 0x49, 0xa8, 0x81, 0x04, 0xce, 0xef, 0x0f, 0x65, 0x50, + 0x98, 0x95, 0x3c, 0xdb, 0xc6, 0x9a, 0x51, 0x59, 0xbc, 0x16, 0x53, 0x6b, 0x6e, 0xe7, 0x17, 0x65, + 0xcb, 0xdd, 0x06, 0x68, 0x48, 0x65, 0x46, 0x0d, 0x93, 0xd0, 0x50, 0x06, 0x30, 0x7d, 0xfa, 0x36, + 0x97, 0x40, 0xf9, 0x53, 0xda, 0x18, 0x81, 0x44, 0xcf, 0x69, 0x69, 0x81, 0x27, 0xc9, 0x67, 0x85, + 0xf6, 0x5a, 0x68, 0x45, 0x81, 0xbf, 0x4b, 0x10, 0x9a, 0x1a, 0x5e, 0x71, 0xe0, 0x1f, 0xe4, 0xd0, + 0x11, 0x19, 0xa9, 0x72, 0x9a, 0x37, 0xdd, 0xf0, 0x04, 0x04, 0xed, 0x4e, 0x8e, 0x50, 0xe6, 0x4c, + 0x48, 0x8e, 0x05, 0xd0, 0x6e, 0xce, 0xf0, 0x85, 0x34, 0x1f, 0x57, 0x74, 0x90, 0xcd, 0x0a, 0x0c, + 0x0a, 0xea, 0xd2, 0x59, 0x20, 0x2a, 0xd4, 0x04, 0xb7, 0xeb, 0x1a, 0x42, 0x41, 0x43, 0xd8, 0xac, + 0x50, 0x4c, 0xb8, 0x61, 0xeb, 0x0c, 0x82, 0x17, 0xf4, 0x41, 0x8f, 0xbd, 0xc0, 0x91, 0xfd, 0xb9, + 0x5f, 0xc8, 0x68, 0x28, 0x45, 0x8f, 0xb1, 0xcc, 0x2f, 0x71, 0x44, 0xc1, 0x85, 0xe6, 0x81, 0x2c, + 0xdb, 0x5f, 0x3e, 0x5e, 0x9f, 0x8c, 0x11, 0x60, 0xd2, 0x7e, 0xe6, 0xd1, 0x2b, 0x4e, 0x42, 0x5c, + 0xd3, 0xdd, 0xcf, 0x4d, 0x17, 0x7f, 0xfa, 0xab, 0x8f, 0x86, 0xd6, 0xbd, 0xa4, 0xb2, 0x41, 0xc6, + 0xdd, 0xb9, 0xec, 0xa7, 0x96, 0xcf, 0x63, 0x90, 0xe0, 0x65, 0x56, 0x38, 0x78, 0xb8, 0x6b, 0x07, + 0x33, 0xae, 0x58, 0x99, 0xb0, 0xef, 0x34, 0xdf, 0x5e, 0xdf, 0xa4, 0x6f, 0xb0, 0x1f, 0x7d, 0x5b, + 0xbc, 0x62, 0x5d, 0x58, 0x59, 0x78, 0x39, 0xdb, 0x90, 0xfc, 0x53, 0xa2, 0xd2, 0x57, 0x92, 0x3a, + 0x11, 0xfb, 0x74, 0x47, 0x3f, 0xb6, 0x08, 0xea, 0x68, 0xc6, 0x3e, 0x91, 0x6a, 0x15, 0xdf, 0x2a, + 0x42, 0xbb, 0x55, 0xb2, 0xd6, 0x2b, 0xae, 0x23, 0xd1, 0x60, 0x47, 0x7f, 0x64, 0xb0, 0x63, 0x11, + 0x23, 0xfe, 0x5f, 0x49, 0x78, 0x1a, 0x4a, 0x86, 0x98, 0x3f, 0xe0, 0x1f, 0x24, 0x33, 0x2f, 0x5f, + 0x16, 0x40, 0xec, 0x18, 0x9a, 0xf2, 0x8a, 0x55, 0xa2, 0xe1, 0xdf, 0xf2, 0xa6, 0x7f, 0x8c, 0x63, + 0x01, 0x7b, 0x4b, 0x83, 0xa0, 0xc1, 0xc4, 0x04, 0xfc, 0x79, 0x60, 0x6d, 0x90, 0x40, 0x59, 0xd6, + 0xfa, 0x96, 0x27, 0x83, 0xe6, 0xde, 0x26, 0xf4, 0x82, 0xb1, 0x7e, 0x29, 0xd4, 0x37, 0x28, 0xba, + 0x7c, 0x85, 0x7b, 0xe0, 0x4c, 0x93, 0xfb, 0xd3, 0xa5, 0x07, 0x08, 0x4d, 0x60, 0x40, 0xc4, 0xb3, + 0x5e, 0x76, 0x66, 0xfd, 0x93, 0x1c, 0x00, 0x9d, 0x74, 0x32, 0x1e, 0x1f, 0x28, 0x71, 0xc4, 0x7a, + 0xea, 0xd1, 0x9a, 0x34, 0x2c, 0xc5, 0x9b, 0xd0, 0x70, 0x11, 0xee, 0x70, 0x81, 0x1f, 0x91, 0x0e, + 0xb9, 0x4e, 0xdc, 0x3a, 0xb5, 0xb3, 0x58, 0x76, 0x67, 0x25, 0x64, 0xf4, 0xec, 0x96, 0x63, 0x7b, + 0x65, 0xcc, 0xe6, 0x5e, 0xff, 0xf5, 0x03, 0xd0, 0x85, 0x3f, 0x58, 0x9d, 0x87, 0xec, 0x32, 0xf1, + 0xca, 0x5b, 0xbe, 0xb8, 0x04, 0xd9, 0xfc, 0x24, 0x66, 0xbd, 0x37, 0xa8, 0x6c, 0x7a, 0xe3, 0x13, + 0x93, 0xaf, 0x96, 0xce, 0xbc, 0x24, 0xb2, 0xfd, 0x16, 0xea, 0x57, 0xdf, 0x4f, 0xf7, 0x5c, 0x16, + 0x5a, 0xaf, 0x3f, 0x39, 0x20, 0x8b, 0xea, 0x61, 0xad, 0xe3, 0xd4, 0xbc, 0xaf, 0x7a, 0x22, 0xb4, + 0x71, 0x86, 0xb4, 0xf1, 0x60, 0x98, 0x95, 0xc7, 0xed, 0x11, 0x4d, 0xb5, 0x14, 0x1f, 0xe1, 0x66, + 0xcc, 0x92, 0x03, 0xea, 0x83, 0x44, 0x96, 0x2d, 0x5e, 0xb6, 0x5c, 0x4e, 0x51, 0x7f, 0x8e, 0xb5, + 0x8b, 0x48, 0xe1, 0xde, 0xc6, 0x9d, 0x79, 0xe2, 0x95, 0x53, 0x58, 0xc7, 0x71, 0x4b, 0x6d, 0x4c, + 0x6f, 0xc7, 0xed, 0x4e, 0x55, 0xc3, 0x0f, 0x01, 0x81, 0x1c, 0xd1, 0x76, 0x53, 0xa7, 0xe0, 0x27, + 0x99, 0x42, 0x6b, 0xd5, 0x12, 0x09, 0xad, 0xda, 0x66, 0x62, 0xd1, 0x5b, 0xa2, 0x2e, 0xb4, 0x7b, + 0xf1, 0xc5, 0xa2, 0x10, 0xb5, 0x98, 0xdd, 0xd3, 0x9f, 0x1c, 0xf6, 0x97, 0xd4, 0xfb, 0x0b, 0x7b, + 0x9c, 0x88, 0x6b, 0xbe, 0x63, 0x42, 0xff, 0x4d, 0x97, 0x15, 0xf7, 0x4b, 0x30, 0xe7, 0xf6, 0xc7, + 0x8b, 0x50, 0x04, 0x7f, 0x20, 0xd9, 0x2e, 0x62, 0x14, 0xf0, 0x25, 0xdb, 0xcf, 0x87, 0x57, 0x31, + 0x1a, 0x59, 0x29, 0x19, 0xee, 0x41, 0xae, 0xf2, 0x6f, 0x14, 0xb2, 0xea, 0x71, 0x20, 0x53, 0x98, + 0x89, 0xbe, 0x16, 0xc7, 0xad, 0x0b, 0xdb, 0x42, 0xd0, 0xd4, 0x56, 0x65, 0x39, 0xe6, 0x33, 0xc6, + 0x3f, 0xc2, 0xad, 0x29, 0x33, 0xef, 0x47, 0x56, 0x11, 0x74, 0x5f, 0x9d, 0xec, 0xcc, 0x99, 0xb3, + 0xc5, 0x6c, 0x7c, 0xe7, 0x77, 0xdb, 0xc9, 0xde, 0x7c, 0x20, 0xdf, 0x53, 0x35, 0xa7, 0x3d, 0x9e, + 0x20, 0x0b, 0xf0, 0x92, 0xc5, 0x13, 0x11, 0x6d, 0xdf, 0x69, 0x92, 0x93, 0x0c, 0x42, 0x2b, 0x6c, + 0x43, 0x02, 0xc5, 0xa5, 0x4c, 0xa5, 0x61, 0x3e, 0x89, 0xf3, 0x7f, 0xe1, 0x3a, 0x3c, 0x8d, 0xdc, + 0x9d, 0x26, 0x5e, 0x59, 0x62, 0x48, 0xb5, 0x24, 0x3e, 0x39, 0xf9, 0x62, 0x93, 0x4a, 0xef, 0x1d, + 0xcd, 0x2a, 0x6e, 0xa4, 0x3d, 0x4d, 0x65, 0x7e, 0xe4, 0xd3, 0xf4, 0x0d, 0xf6, 0x30, 0x48, 0x71, + 0xda, 0x02, 0x92, 0x10, 0xdb, 0x4e, 0x96, 0xa6, 0xcf, 0xd9, 0x1e, 0xc7, 0x8e, 0xe8, 0x6c, 0x9d, + 0xa9, 0x9e, 0x4d, 0x85, 0xb4, 0x9e, 0x13, 0xf2, 0x14, 0x17, 0xc2, 0xb1, 0x31, 0x9f, 0xd8, 0x55, + 0xa5, 0x55, 0xbd, 0x78, 0x7a, 0x73, 0x57, 0x4f, 0x61, 0x73, 0x42, 0x98, 0x8c, 0x8b, 0x35, 0x93, + 0x35, 0x07, 0xc7, 0x01, 0x33, 0x0d, 0xd1, 0x01, 0xa3, 0x25, 0xdc, 0x9e, 0xf6, 0xbd, 0x9b, 0xe2, + 0x53, 0x25, 0x44, 0xb5, 0x8f, 0x9c, 0x8d, 0x53, 0xe6, 0x50, 0xb1, 0xf0, 0x30, 0xbf, 0xca, 0x9a, + 0xff, 0xff, 0x93, 0x98, 0xa9, 0xbf, 0xec, 0xb4, 0xe2, 0x8e, 0xf6, 0xba, 0x7e, 0xed, 0x8d, 0xd8, + 0x31, 0xcb, 0x30, 0x7f, 0x58, 0x65, 0xa8, 0x12, 0x31, 0x43, 0x81, 0xe9, 0x2d, 0x41, 0x7e, 0xc3, + 0x4a, 0xfa, 0x43, 0xaa, 0x70, 0xae, 0x42, 0xc5, 0x31, 0x27, 0xd0, 0xfe, 0x6f, 0x79, 0x8d, 0x44, + 0x8c, 0x7d, 0x0c, 0x3e, 0x1b, 0xd5, 0xac, 0xbf, 0x19, 0x3c, 0xd1, 0xd0, 0xa7, 0x9f, 0xbf, 0x63, + 0x40, 0x5d, 0x4a, 0x74, 0xe9, 0x6e, 0x4d, 0xe1, 0xd2, 0x83, 0xaa, 0x5e, 0x18, 0x42, 0x7a, 0x48, + 0x52, 0xa5, 0x31, 0xc2, 0xd6, 0xaa, 0x22, 0x17, 0x9d, 0x96, 0x24, 0x70, 0x98, 0x16, 0x9e, 0xa4, + 0x19, 0xdf, 0xda, 0xc4, 0x60, 0xd7, 0x83, 0xe5, 0x1c, 0x69, 0x3d, 0xfa, 0xe9, 0xf9, 0x79, 0x08, + 0x14, 0x2e, 0x09, 0x9f, 0x63, 0xa7, 0x1e, 0x32, 0xe9, 0x52, 0x0e, 0xa1, 0xbd, 0x3f, 0xb7, 0x6d, + 0x5b, 0x68, 0x38, 0xa7, 0x8c, 0xd9, 0x5c, 0x8d, 0x9d, 0xb9, 0xdc, 0x19, 0xd1, 0x96, 0x28, 0xee, + 0xad, 0x74, 0x5e, 0x73, 0x8b, 0x44, 0x74, 0x8b, 0x91, 0x25, 0xc9, 0x79, 0xae, 0x3e, 0x8a, 0xa0, + 0x74, 0x97, 0x7a, 0x8a, 0xcc, 0xba, 0xa3, 0xde, 0xf1, 0x51, 0x89, 0xa1, 0x9b, 0x0a, 0x35, 0x30, + 0x3c, 0x9f, 0xeb, 0xa2, 0x6a, 0x1e, 0x1f, 0xb0, 0x57, 0x85, 0x08, 0xac, 0xbe, 0x56, 0x50, 0xc8, + 0xaf, 0x2b, 0x03, 0x04, 0x87, 0x37, 0x6a, 0x67, 0x8e, 0x42, 0x62, 0x6a, 0xbb, 0x89, 0xe5, 0xb2, + 0xc3, 0x24, 0x97, 0xf0, 0x01, 0x0a, 0x7a, 0xaf, 0x2b, 0x9f, 0x0d, 0x88, 0x08, 0xb6, 0x23, 0x41, + 0x1d, 0x59, 0x2d, 0x99, 0x72, 0xc7, 0x9a, 0x1c, 0xb6, 0xa3, 0x3d, 0xac, 0xf0, 0x8a, 0xcb, 0x25, + 0xd9, 0x05, 0xbe, 0x51, 0x5a, 0xd5, 0x45, 0xfd, 0xda, 0x8d, 0xef, 0x7a, 0x4d, 0x32, 0x67, 0xa6, + 0x8a, 0x94, 0x84, 0x29, 0x88, 0x37, 0x42, 0x60, 0x38, 0x76, 0x02, 0xcf, 0xa3, 0x65, 0xac, 0xe3, + 0xfd, 0x9d, 0xfa, 0x04, 0x48, 0x46, 0xa6, 0xcd, 0x34, 0x3f, 0x82, 0xf7, 0x18, 0x3f, 0x48, 0x5e, + 0x72, 0x84, 0x7e, 0xec, 0x52, 0x28, 0xc9, 0x22, 0xd3, 0x84, 0x3a, 0x1c, 0xc8, 0xb9, 0x8e, 0x22, + 0x3f, 0xe6, 0xc5, 0xd8, 0xeb, 0xeb, 0x7d, 0x9c, 0x82, 0xdd, 0x49, 0x1f, 0x5f, 0x7a, 0x65, 0x60, + 0x32, 0x10, 0x37, 0xe5, 0xf4, 0xe8, 0xe8, 0x18, 0x87, 0x1f, 0x5c, 0x92, 0x5c, 0xe5, 0xeb, 0xb8, + 0x8d, 0xbb, 0xa1, 0xf1, 0x32, 0x86, 0xd3, 0x82, 0xb5, 0x32, 0x2e, 0x6c, 0x83, 0x91, 0x20, 0xc7, + 0x6b, 0x49, 0x01, 0x03, 0xd8, 0x7e, 0x1b, 0x2a, 0xed, 0x3c, 0x97, 0x23, 0x7a, 0x7d, 0x2c, 0x96, + 0x0e, 0x3c, 0x8d, 0x0e, 0x7b, 0xbb, 0x1f, 0x1e, 0xc7, 0x09, 0xc8, 0x7c, 0xb3, 0xfe, 0x97, 0xb1, + 0x2a, 0xfd, 0x5e, 0x9c, 0x6a, 0xfd, 0x31, 0xbb, 0x5c, 0x2e, 0xd7, 0x14, 0x42, 0xa2, 0x16, 0xa4, + 0xb7, 0xe2, 0x81, 0x50, 0xd2, 0xaa, 0xb9, 0x27, 0x95, 0xb5, 0x1e, 0x7b, 0x55, 0x80, 0x43, 0x73, + 0x3a, 0x94, 0x06, 0x9c, 0x32, 0xf4, 0xbc, 0x83, 0xc4, 0x1f, 0x37, 0xae, 0xb5, 0x6f, 0xe7, 0x70, + 0x4c, 0xac, 0xc7, 0x84, 0xa1, 0x79, 0x9e, 0xd8, 0xf1, 0x3b, 0xc2, 0x14, 0x5b, 0xa9, 0xec, 0xfe, + 0x49, 0x6b, 0xc5, 0x4a, 0x66, 0x79, 0x1a, 0x46, 0x88, 0x64, 0x50, 0x12, 0xa2, 0x84, 0xb7, 0x34, + 0x7f, 0x2b, 0xaa, 0x81, 0xcd, 0xae, 0xf4, 0xc5, 0x6d, 0x44, 0xea, 0xe4, 0x4b, 0xfb, 0xb5, 0x1e, + 0x8d, 0x6e, 0xfe, 0xcd, 0xad, 0x27, 0xb1, 0x0c, 0xb3, 0xe7, 0xf8, 0xec, 0x82, 0x95, 0xc3, 0x0f, + 0x6e, 0x50, 0xc9, 0xfe, 0x20, 0x84, 0x5d, 0x0b, 0x91, 0xed, 0x4f, 0x4b, 0x14, 0xc8, 0x43, 0xc5, + 0x57, 0x44, 0x12, 0x61, 0xa0, 0xdd, 0x1a, 0x48, 0x1a, 0xf1, 0xe2, 0x6b, 0x61, 0xd9, 0x38, 0x63, + 0x37, 0x9a, 0x27, 0xb1, 0xf9, 0x6f, 0x8f, 0x47, 0x72, 0x35, 0x0d, 0x20, 0x90, 0x0f, 0x5a, 0x33, + 0xe0, 0x31, 0x1a, 0x1b, 0x0b, 0x15, 0x2d, 0xdc, 0xde, 0x6f, 0x4b, 0xb7, 0xba, 0xaf, 0x52, 0xd9, + 0x99, 0xfd, 0x60, 0xf5, 0x32, 0xb4, 0xcd, 0xff, 0x08, 0x38, 0x58, 0x48, 0xb9, 0x2c, 0x76, 0xff, + 0xd0, 0x5e, 0x0a, 0xd6, 0xae, 0x1f, 0xa5, 0xdc, 0xa2, 0xdc, 0xd0, 0xc8, 0x4b, 0x40, 0xbd, 0xe2, + 0xf6, 0xf4, 0xa9, 0xf4, 0xa1, 0xbf, 0xa9, 0x89, 0x32, 0x52, 0x8a, 0x6d, 0xf4, 0xcc, 0xee, 0xd6, + 0x4c, 0xba, 0x60, 0x22, 0x3c, 0x2d, 0xbd, 0x0a, 0x1a, 0x3a, 0x0b, 0x42, 0xf9, 0xa2, 0x90, 0x16, + 0x38, 0x0c, 0x89, 0x44, 0xbf, 0xbc, 0x5e, 0x47, 0xfe, 0xba, 0xa6, 0x82, 0x7d, 0x22, 0x85, 0xa8, + 0x63, 0x33, 0x2d, 0xf1, 0x76, 0x4a, 0xf2, 0xb9, 0xa4, 0x39, 0x4d, 0x9a, 0xba, 0xea, 0x8e, 0xbf, + 0xc7, 0x35, 0x45, 0x49, 0xa3, 0x08, 0xc7, 0x61, 0x3c, 0xd8, 0x6e, 0xea, 0x12, 0x3f, 0x71, 0xa9, + 0x30, 0xd9, 0x10, 0x2e, 0x96, 0x34, 0x41, 0x8b, 0x54, 0x45, 0x42, 0x35, 0x92, 0x6f, 0x78, 0x25, + 0xdb, 0x98, 0x13, 0x4f, 0xc1, 0xcb, 0xd4, 0xc2, 0x14, 0x62, 0x6b, 0x64, 0xcc, 0x92, 0xbc, 0x0e, + 0x16, 0xc8, 0x2c, 0xce, 0x2e, 0x6f, 0xcc, 0xe1, 0x0f, 0x6f, 0xe3, 0x4b, 0x93, 0x0b, 0x2e, 0xd1, + 0xaa, 0x85, 0xff, 0xa3, 0x05, 0xff, 0xf5, 0xb3, 0xff, 0x17, 0x22, 0x79, 0x2f, 0x89, 0x2b, 0xd1, + 0x4e, 0xd4, 0x2a, 0x2d, 0x00, 0x51, 0xc5, 0x88, 0x5b, 0x96, 0xe6, 0xd1, 0xeb, 0x74, 0x5f, 0x56, + 0xb9, 0x64, 0x3b, 0xc7, 0x3e, 0x6e, 0x07, 0xdb, 0x11, 0x8b, 0x1e, 0xd8, 0x96, 0x2d, 0x8c, 0x51, + 0x32, 0x27, 0x87, 0x4a, 0xae, 0x66, 0x9a, 0x8c, 0x22, 0x6d, 0xd7, 0x2a, 0x5d, 0x61, 0x98, 0xd9, + 0x7f, 0x68, 0x58, 0x07, 0x25, 0xc7, 0x16, 0x2d, 0x90, 0x79, 0xe8, 0x4e, 0xaf, 0xd9, 0x3f, 0x90, + 0x78, 0x8b, 0xf4, 0x1f, 0x17, 0xbd, 0x0a, 0x52, 0xb5, 0x58, 0x2b, 0x82, 0x2e, 0xc8, 0x14, 0x74, + 0xd3, 0x56, 0x47, 0xcf, 0x26, 0xc1, 0x86, 0x00, 0x06, 0xe5, 0x4d, 0x48, 0x51, 0x73, 0x9f, 0x37, + 0xba, 0x0e, 0x5c, 0x17, 0x16, 0x5a, 0x6f, 0x6d, 0x28, 0x19, 0xe4, 0xe1, 0x5b, 0xc7, 0x9b, 0x9e, + 0xfb, 0x03, 0x2a, 0x98, 0xda, 0x96, 0x1b, 0x30, 0x6c, 0x12, 0xa2, 0x6c, 0x4d, 0xdf, 0xc4, 0x6d, + 0x0b, 0xf8, 0x77, 0x8e, 0x36, 0xd2, 0xee, 0xdc, 0x27, 0x08, 0x3b, 0x2b, 0x3b, 0x24, 0x8e, 0xab, + 0x98, 0x6f, 0x07, 0x27, 0x24, 0x4d, 0xd6, 0x35, 0x73, 0x43, 0x0b, 0xaf, 0x64, 0x1a, 0x4a, 0xa9, + 0xd8, 0x1e, 0xf1, 0x7b, 0xca, 0xaf, 0x81, 0x59, 0xea, 0x5a, 0x36, 0xdb, 0x0f, 0x11, 0x5f, 0x70, + 0x40, 0xef, 0x88, 0x05, 0xe1, 0x08, 0x5c, 0x4c, 0x04, 0x10, 0x7a, 0x03, 0xce, 0xa4, 0x35, 0x55, + 0xd1, 0x1c, 0x02, 0xdf, 0x11, 0xee, 0xa4, 0x9d, 0x5b, 0x7e, 0x95, 0xae, 0x8c, 0x9c, 0x31, 0xde, + 0xfa, 0x39, 0xe9, 0xba, 0xc0, 0xda, 0xc9, 0x27, 0x3a, 0xc7, 0x5a, 0x10, 0x3e, 0x14, 0x65, 0x48, + 0x4a, 0xff, 0x27, 0x38, 0xa2, 0x13, 0x75, 0x3e, 0x15, 0xcc, 0xdd, 0xee, 0x95, 0xcf, 0xfa, 0x71, + 0x6a, 0xdd, 0xfa, 0x73, 0x63, 0x23, 0x6d, 0x1a, 0x46, 0x65, 0xf4, 0x66, 0xb2, 0x9f, 0x00, 0x21, + 0x0e, 0xb5, 0xf3, 0x7f, 0x52, 0x8f, 0x19, 0x96, 0xca, 0xf2, 0x5b, 0x35, 0xf5, 0xfa, 0xcf, 0x23, + 0xf8, 0xf9, 0x21, 0x37, 0xf7, 0x30, 0x6b, 0x69, 0xd2, 0x09, 0x11, 0x97, 0x8b, 0xa8, 0xce, 0x11, + 0x71, 0x15, 0x4e, 0x98, 0xa3, 0xe0, 0x40, 0xb7, 0x84, 0x91, 0xff, 0x99, 0x54, 0xb6, 0x77, 0x76, + 0x87, 0x98, 0xb2, 0x3c, 0x49, 0x07, 0x76, 0x1c, 0x65, 0xd3, 0x19, 0x79, 0x46, 0x67, 0xf0, 0x68, + 0xb5, 0xd2, 0xd5, 0x2f, 0xcf, 0x79, 0x90, 0xbf, 0x85, 0x7b, 0x0d, 0xcf, 0xa8, 0x21, 0x84, 0xbc, + 0xe6, 0x77, 0xc8, 0x61, 0x79, 0xcf, 0x28, 0x2f, 0xa6, 0xb1, 0xd8, 0xd7, 0xb5, 0x1f, 0xee, 0x4e, + 0x37, 0x09, 0x8c, 0xa9, 0xb8, 0xa8, 0x4c, 0x35, 0xee, 0x12, 0x56, 0xe3, 0x80, 0xae, 0x5e, 0xfe, + 0x20, 0xd0, 0x24, 0x4a, 0x59, 0x2c, 0xa5, 0x43, 0x7c, 0x34, 0xec, 0x79, 0x37, 0x55, 0xeb, 0x48, + 0xda, 0x67, 0x96, 0x93, 0xd6, 0x6d, 0xa3, 0x27, 0xbf, 0xb7, 0x3f, 0x38, 0x01, 0x8f, 0xe6, 0xd1, + 0xd4, 0xf1, 0x64, 0x76, 0x70, 0x58, 0x9d, 0x8d, 0x0c, 0x92, 0x4f, 0xb2, 0x51, 0x61, 0xa8, 0x80, + 0x1f, 0x09, 0x06, 0x06, 0xcd, 0x94, 0xca, 0xff, 0x25, 0x1e, 0x19, 0xce, 0x4a, 0xff, 0x77, 0x5e, + 0x4b, 0xcb, 0x1b, 0x32, 0x73, 0x56, 0xcc, 0x64, 0x28, 0x57, 0x72, 0xe9, 0x87, 0x7b, 0x61, 0xb8, + 0xb5, 0x7c, 0x4d, 0x0a, 0x4e, 0xaf, 0x01, 0x14, 0xfb, 0xd7, 0x2b, 0x36, 0x2d, 0xa7, 0xe1, 0x04, + 0xd6, 0xb5, 0x87, 0xfe, 0xeb, 0x68, 0xde, 0xda, 0xbd, 0xe5, 0xff, 0xc2, 0x25, 0x70, 0x1e, 0x54, + 0x48, 0x3e, 0xf7, 0x1f, 0x3d, 0x32, 0x05, 0xb5, 0xb9, 0xe1, 0xde, 0xb6, 0xea, 0xe2, 0x82, 0x3a, + 0x07, 0x3c, 0xad, 0xbb, 0xa0, 0x3e, 0x44, 0x21, 0x41, 0xde, 0x6e, 0xcb, 0x59, 0x21, 0xc9, 0x89, + 0xd4, 0x5f, 0x53, 0x79, 0x9e, 0x18, 0x99, 0xdf, 0x6f, 0x19, 0x4c, 0x32, 0x44, 0x55, 0xd6, 0xc6, + 0xba, 0xc1, 0x86, 0xbd, 0x33, 0xb7, 0x6d, 0x7a, 0xe1, 0xc8, 0x04, 0x2e, 0xa7, 0x20, 0x37, 0xfc, + 0x8b, 0x10, 0x3a, 0x03, 0x5a, 0x9b, 0x88, 0x19, 0xd9, 0x93, 0xf8, 0x45, 0xeb, 0x5c, 0x33, 0xf4, + 0xb7, 0x72, 0xe2, 0xb4, 0x4b, 0x01, 0x99, 0x7a, 0x42, 0x70, 0x22, 0x42, 0xd4, 0x08, 0x50, 0x38, + 0xae, 0x32, 0xbc, 0xcb, 0xa0, 0x8b, 0xcf, 0xc9, 0x13, 0xa8, 0x45, 0xdb, 0x24, 0x0c, 0x07, 0xc7, + 0x03, 0x52, 0x6f, 0x42, 0xbf, 0x5a, 0x5d, 0xc9, 0x0f, 0xf5, 0x0f, 0xc9, 0xd7, 0x67, 0x27, 0x67, + 0xc6, 0xad, 0x7b, 0xb3, 0x28, 0x44, 0x1b, 0x53, 0xd3, 0x74, 0x28, 0xf5, 0x55, 0xf9, 0x9f, 0x04, + 0x88, 0x83, 0xe3, 0x0f, 0xeb, 0x94, 0x31, 0x2d, 0x79, 0x88, 0x4e, 0xfb, 0x68, 0x85, 0x77, 0xe5, + 0xf0, 0xc0, 0x45, 0x9e, 0x31, 0x99, 0x63, 0xe9, 0x9e, 0xc1, 0x6c, 0x10, 0x2f, 0xc9, 0xd1, 0x22, + 0x85, 0x07, 0x46, 0x41, 0xd4, 0xe1, 0x64, 0x28, 0x78, 0x06, 0xe2, 0xcc, 0x20, 0x96, 0xe2, 0xe9, + 0x5e, 0x6c, 0x48, 0x32, 0x5c, 0x6b, 0xb3, 0x36, 0x9a, 0xc4, 0x6b, 0x31, 0xf2, 0x45, 0x3a, 0x72, + 0x3e, 0xdd, 0x18, 0x2a, 0xc7, 0x48, 0x67, 0x52, 0xb0, 0x00, 0x8e, 0x54, 0x0a, 0x60, 0x43, 0x58, + 0x72, 0xcd, 0xd2, 0xd9, 0x8e, 0xee, 0xf7, 0x94, 0xaf, 0x44, 0xe6, 0x38, 0x36, 0x9a, 0x7c, 0x40, + 0xb0, 0x9b, 0x3a, 0x02, 0x1c, 0xec, 0x9b, 0xdc, 0x14, 0x01, 0x94, 0xa8, 0xd5, 0x31, 0x70, 0xb6, + 0x52, 0x57, 0xdb, 0xe9, 0xe2, 0x57, 0x83, 0x2d, 0x29, 0x8f, 0xe4, 0x76, 0xca, 0xd7, 0xc0, 0x35, + 0x83, 0x7c, 0x35, 0xd3, 0xbb, 0xad, 0xb3, 0x5e, 0xe9, 0x25, 0x29, 0xd1, 0x19, 0x5e, 0xea, 0xd5, + 0x07, 0xcf, 0x28, 0xe7, 0x18, 0xb2, 0x34, 0xde, 0x5e, 0xc3, 0xc8, 0xc2, 0xfe, 0x79, 0xca, 0x21, + 0xe5, 0x85, 0x2d, 0x54, 0x4b, 0xc8, 0x55, 0x10, 0x69, 0xea, 0xcf, 0x14, 0x66, 0x5c, 0x7d, 0x37, + 0xd0, 0x5f, 0x5b, 0xd6, 0xf5, 0x08, 0xbc, 0xee, 0xe5, 0xe3, 0xd0, 0x33, 0x45, 0x1a, 0x8c, 0x34, + 0x14, 0x56, 0x43, 0x42, 0xc1, 0x67, 0x6c, 0xc8, 0xca, 0xf9, 0xef, 0x2c, 0xd9, 0xcd, 0xee, 0x98, + 0x4d, 0xd2, 0xa3, 0x90, 0x9c, 0x9d, 0x62, 0x1a, 0x73, 0x62, 0xe8, 0x4b, 0x50, 0xe1, 0x74, 0xfe, + 0x69, 0xb1, 0x3b, 0x18, 0x33, 0x5d, 0xb8, 0xa1, 0x07, 0xcb, 0x0a, 0xbd, 0x51, 0x2b, 0xa0, 0x55, + 0x60, 0x90, 0x79, 0xa0, 0x97, 0xcb, 0x64, 0x89, 0x0b, 0x2e, 0x9f, 0xfc, 0x48, 0x6a, 0x3b, 0xe1, + 0xbb, 0x55, 0xf3, 0x89, 0x10, 0x60, 0x23, 0x3a, 0xb6, 0x1d, 0x3d, 0x30, 0xb8, 0x1b, 0x4f, 0xd2, + 0xbd, 0x9f, 0x6f, 0xb5, 0x17, 0xe7, 0x74, 0xa3, 0xe4, 0x45, 0xe5, 0xc4, 0x6d, 0x95, 0xda, 0x11, + 0x28, 0xb6, 0xc1, 0xbe, 0x03, 0x3e, 0x5e, 0x06, 0x13, 0x0a, 0xdf, 0xba, 0x99, 0x9c, 0x94, 0xc2, + 0xcf, 0xe3, 0x21, 0x25, 0x23, 0x60, 0x45, 0x5c, 0xe4, 0x89, 0xab, 0xda, 0x06, 0xcc, 0xbe, 0x88, + 0xda, 0x40, 0xe8, 0x0d, 0xad, 0xff, 0x4b, 0xb0, 0xdc, 0x2e, 0x4d, 0x20, 0xe8, 0xe6, 0x21, 0xb0, + 0x50, 0xc5, 0x11, 0xbe, 0xfd, 0x4f, 0xbd, 0x37, 0x8b, 0x5d, 0xe7, 0x69, 0xc8, 0xd2, 0x10, 0x18, + 0x9a, 0x82, 0x23, 0x3e, 0x4c, 0x7c, 0x5f, 0x38, 0x04, 0xd1, 0x8b, 0xf0, 0x2e, 0x93, 0x4b, 0x28, + 0xa4, 0x91, 0xc9, 0x9c, 0x98, 0x60, 0x47, 0x26, 0x11, 0x5c, 0x4d, 0x77, 0xf0, 0x1c, 0xa7, 0x12, + 0xc0, 0x49, 0x59, 0x84, 0x66, 0xd1, 0xf9, 0xa3, 0xfb, 0xd0, 0x7d, 0xdd, 0xe4, 0x6a, 0xe1, 0x28, + 0xfe, 0xb0, 0xca, 0x00, 0x2c, 0x91, 0xe5, 0x7d, 0x0f, 0x69, 0x59, 0x3a, 0x9e, 0xd7, 0x75, 0x95, + 0xb3, 0x59, 0x5d, 0x0c, 0x56, 0x79, 0x5a, 0x26, 0xfa, 0x66, 0xaa, 0x60, 0xc2, 0x70, 0xcb, 0xab, + 0x82, 0x3b, 0x00, 0xb0, 0xf0, 0x8c, 0xfe, 0x05, 0xa6, 0xb1, 0xfb, 0x5d, 0x8f, 0x72, 0xb3, 0xee, + 0x11, 0x23, 0xf8, 0x96, 0x95, 0x69, 0xab, 0xc7, 0xfd, 0x0e, 0x01, 0xae, 0xec, 0xe4, 0x72, 0xe8, + 0x2a, 0x15, 0x17, 0x74, 0x2d, 0xc1, 0xe3, 0xbb, 0xdc, 0x6a, 0xe8, 0x33, 0x1c, 0xdf, 0xaf, 0x8e, + 0xe7, 0x8a, 0xd9, 0x4a, 0x6d, 0xf4, 0x6e, 0x6c, 0xb2, 0x08, 0x3d, 0x31, 0xd8, 0xae, 0xab, 0xb0, + 0xbd, 0xb7, 0x48, 0x16, 0xe0, 0xfc, 0x76, 0x7c, 0x16, 0x99, 0x59, 0x4c, 0x67, 0x90, 0x6a, 0xd8, + 0x71, 0x23, 0xe2, 0x25, 0x72, 0xa4, 0x04, 0x12, 0x20, 0x3e, 0x1e, 0x6f, 0xd6, 0xde, 0x07, 0x72, + 0xf4, 0x48, 0x1b, 0x45, 0x69, 0x3b, 0xb3, 0xf8, 0xa1, 0xed, 0xba, 0xbe, 0xc2, 0x8f, 0x04, 0xf5, + 0xe5, 0x6f, 0x8f, 0x2e, 0x55, 0xcb, 0x9a, 0xf6, 0xf2, 0x46, 0xc1, 0xfb, 0xf5, 0xa0, 0x68, 0x77, + 0xe8, 0x44, 0xdb, 0xd3, 0xe7, 0x00, 0x23, 0x39, 0xb7, 0xca, 0x68, 0x14, 0x90, 0xc0, 0x12, 0x4e, + 0xff, 0x22, 0x45, 0x42, 0xed, 0xdd, 0x70, 0x75, 0xf1, 0xc1, 0x83, 0x55, 0x55, 0x95, 0xad, 0xf0, + 0xcd, 0xe3, 0xdf, 0x37, 0x94, 0xa5, 0x10, 0x10, 0xb4, 0x0d, 0x9f, 0xa7, 0x23, 0xf4, 0x1b, 0xe8, + 0x8f, 0xf9, 0xab, 0x9c, 0x96, 0x7c, 0xbc, 0x05, 0x45, 0x56, 0x54, 0xc4, 0x74, 0x03, 0x74, 0x6a, + 0xa5, 0x13, 0xc6, 0x38, 0x9c, 0x21, 0x6d, 0x3c, 0xb7, 0x5f, 0xe8, 0xc1, 0xb3, 0xee, 0xd6, 0xbb, + 0x7a, 0xdf, 0xe7, 0xdd, 0x27, 0x57, 0x30, 0x10, 0xe1, 0x6e, 0x99, 0xb3, 0x36, 0x9e, 0xa7, 0x09, + 0x49, 0x40, 0xf0, 0x0c, 0xc7, 0xe8, 0xcf, 0x29, 0x00, 0x7d, 0x54, 0x5d, 0xc8, 0xca, 0x76, 0x0f, + 0x29, 0xb8, 0x47, 0x5e, 0x5f, 0x13, 0xea, 0x22, 0xee, 0xfd, 0xbc, 0x35, 0x35, 0x10, 0x82, 0x0b, + 0xf8, 0x25, 0xbe, 0xb7, 0xed, 0x07, 0x91, 0xa2, 0x7e, 0x43, 0x45, 0xe0, 0x1b, 0xb9, 0x4e, 0xdd, + 0x45, 0x11, 0x9a, 0x4a, 0x77, 0x3e, 0xc6, 0x9a, 0x0c, 0xb3, 0x9b, 0x53, 0xd2, 0x2c, 0x90, 0x6c, + 0xda, 0x34, 0x17, 0xa0, 0x22, 0x81, 0xb2, 0x7e, 0x60, 0xbc, 0xe2, 0x03, 0x9f, 0x8a, 0x1a, 0xf0, + 0x6b, 0x0c, 0x40, 0x76, 0x3c, 0x1d, 0x4c, 0xdd, 0x7e, 0x41, 0xd0, 0xfd, 0x8b, 0xaf, 0xf6, 0x08, + 0xe6, 0x4f, 0xc9, 0xa3, 0x3b, 0x5b, 0xcb, 0x37, 0xa2, 0x2e, 0x29, 0xab, 0x25, 0x6e, 0x7d, 0x71, + 0xa9, 0x6a, 0x27, 0x82, 0x5e, 0x12, 0x77, 0x29, 0x17, 0xb3, 0x6a, 0x78, 0xc8, 0x97, 0x03, 0x53, + 0x7e, 0xf8, 0x80, 0xa8, 0x39, 0x83, 0x57, 0x55, 0x71, 0xa0, 0x12, 0xf2, 0x34, 0xaf, 0xd1, 0x89, + 0xfd, 0x80, 0x0b, 0xd4, 0x2b, 0x47, 0x24, 0x24, 0x82, 0xed, 0xb0, 0x75, 0x43, 0xeb, 0x8b, 0x1e, + 0xb6, 0x0f, 0x4f, 0x30, 0x23, 0xe9, 0x11, 0x68, 0xcc, 0x61, 0x05, 0x1d, 0xe6, 0xaa, 0x35, 0x19, + 0xbe, 0xae, 0xd8, 0x3d, 0x26, 0xe1, 0x06, 0xf6, 0x4a, 0xf1, 0x68, 0xd0, 0xc4, 0x30, 0x68, 0x13, + 0xe6, 0x6d, 0x2a, 0x30, 0x74, 0x6d, 0xa7, 0xa2, 0x23, 0xaf, 0x75, 0xb5, 0x77, 0x2c, 0xaf, 0x46, + 0x21, 0xc3, 0xaa, 0x91, 0x31, 0x34, 0xf6, 0xf1, 0xa1, 0xcb, 0x52, 0x0d, 0xfa, 0x91, 0x78, 0x9b, + 0x71, 0x7a, 0x4f, 0x13, 0x94, 0x0a, 0xc7, 0x7a, 0x5b, 0xdc, 0x85, 0x9f, 0xf9, 0x6f, 0x33, 0xc4, + 0x06, 0x3d, 0x92, 0x9a, 0xf9, 0x95, 0x64, 0x0a, 0x17, 0x96, 0xbb, 0x17, 0x9f, 0x29, 0xe9, 0x8c, + 0xc0, 0x91, 0x37, 0xa6, 0x4b, 0xc8, 0xa8, 0x8c, 0xd8, 0x2d, 0x06, 0xad, 0xc6, 0x26, 0xd6, 0xbe, + 0x15, 0xa4, 0x63, 0x04, 0x13, 0x77, 0x3e, 0xd2, 0x8b, 0x09, 0x07, 0xc5, 0x0c, 0xf9, 0x89, 0x0c, + 0x29, 0x2a, 0x08, 0xe0, 0x84, 0x6f, 0x67, 0x90, 0xb7, 0x65, 0x88, 0x61, 0x19, 0xaf, 0x83, 0x9d, + 0x65, 0xf6, 0x54, 0xaa, 0xd9, 0x76, 0x4f, 0x66, 0x25, 0x0f, 0xeb, 0x40, 0x25, 0x58, 0x3d, 0x77, + 0x74, 0xf7, 0xa6, 0x94, 0x14, 0x7b, 0x8a, 0x4e, 0x0b, 0x61, 0x6e, 0x71, 0x93, 0xc7, 0x9c, 0x3a, + 0xbb, 0xce, 0x66, 0xe0, 0xc5, 0xae, 0x6c, 0xbf, 0x04, 0xc7, 0x43, 0x27, 0x14, 0x00, 0x7a, 0x69, + 0x4d, 0x0e, 0x9f, 0x15, 0x8b, 0x61, 0xe7, 0x45, 0x16, 0x49, 0xd9, 0xc8, 0xa2, 0x17, 0xb1, 0x2e, + 0xd3, 0x68, 0x20, 0x8b, 0x64, 0x8d, 0x05, 0xde, 0x7f, 0x3a, 0x48, 0x0e, 0x9c, 0xc2, 0x3e, 0xa5, + 0x75, 0x34, 0xe0, 0x28, 0x39, 0x53, 0x73, 0x5d, 0x2a, 0x5e, 0xdd, 0x88, 0xb5, 0x2c, 0x2f, 0xd4, + 0xcd, 0x60, 0x63, 0x66, 0x5f, 0xaa, 0x47, 0x99, 0x2d, 0x96, 0xf8, 0x8e, 0x9c, 0x11, 0x5d, 0x72, + 0xa6, 0x81, 0x7d, 0x9e, 0x3c, 0xc6, 0x41, 0x00, 0x79, 0x50, 0x60, 0x23, 0x5b, 0x24, 0x0c, 0xe7, + 0x0d, 0xca, 0xd5, 0x4f, 0xbe, 0x60, 0x98, 0x3e, 0xe8, 0xf5, 0x0e, 0x12, 0xb2, 0x9e, 0x57, 0x54, + 0xc4, 0x09, 0x13, 0x51, 0xf9, 0xc1, 0x48, 0x70, 0x96, 0x5b, 0x13, 0xe7, 0x77, 0x77, 0x72, 0xf2, + 0x36, 0x18, 0x2d, 0x20, 0x86, 0x53, 0x4d, 0xfc, 0x6f, 0xa5, 0x90, 0x0a, 0x66, 0xb7, 0x80, 0xaf, + 0xa5, 0xa4, 0xb2, 0x1f, 0x38, 0x04, 0xbb, 0xbf, 0xc4, 0x62, 0x8a, 0x92, 0xed, 0xfa, 0xc4, 0x56, + 0xba, 0xfe, 0x56, 0x3f, 0xa2, 0x04, 0xca, 0xaa, 0xde, 0x4a, 0x27, 0xc0, 0xb5, 0xd8, 0x03, 0x22, + 0x55, 0x91, 0x73, 0xf8, 0xa0, 0xd7, 0xdb, 0x05, 0xf2, 0xcf, 0xe8, 0x6b, 0xcd, 0x3d, 0xdb, 0x54, + 0x22, 0xc9, 0xbc, 0xe9, 0x6b, 0x15, 0xdc, 0x5f, 0xba, 0xd6, 0xc4, 0xb4, 0x79, 0xaa, 0x45, 0x04, + 0x2b, 0xc2, 0xe6, 0xcb, 0xe0, 0xcb, 0xda, 0x83, 0x5c, 0x9e, 0xbb, 0xdb, 0x2a, 0x65, 0x3f, 0x61, + 0xf7, 0xb6, 0x21, 0x6a, 0x97, 0x85, 0x5c, 0xa6, 0x2e, 0x12, 0x32, 0x00, 0x54, 0xaf, 0xc0, 0x63, + 0x04, 0x9c, 0x5a, 0x56, 0x47, 0x5a, 0xec, 0xab, 0x6f, 0x6a, 0xd7, 0xe1, 0x81, 0x00, 0x60, 0xe5, + 0xb7, 0xbd, 0x29, 0x30, 0xf7, 0x54, 0x4f, 0x89, 0x43, 0x6b, 0xe8, 0xd5, 0x8c, 0xde, 0x20, 0xe3, + 0x13, 0x9c, 0x30, 0x37, 0xb4, 0x43, 0x1f, 0x30, 0x3b, 0xb5, 0xff, 0xea, 0x18, 0xf1, 0x66, 0x55, + 0x9a, 0xd3, 0x9b, 0x11, 0x57, 0x90, 0x3b, 0x63, 0x0f, 0xe8, 0xde, 0xf8, 0x8b, 0xda, 0xe9, 0x4c, + 0xe7, 0x48, 0x6b, 0xba, 0x8c, 0x91, 0x97, 0xce, 0x84, 0x33, 0x16, 0xd1, 0xe4, 0x91, 0x99, 0x53, + 0xa1, 0xee, 0x41, 0x7f, 0xd9, 0xfd, 0x03, 0xa3, 0x5b, 0xb1, 0x8a, 0xdc, 0x54, 0x8f, 0x99, 0xd4, + 0x62, 0x4a, 0x95, 0xda, 0x5d, 0xcb, 0x27, 0x13, 0x3f, 0x93, 0xed, 0x34, 0xa7, 0x57, 0xee, 0x7e, + 0x31, 0xdd, 0xdb, 0xfc, 0x60, 0xb5, 0xfd, 0x7e, 0x66, 0x2a, 0xb4, 0x1d, 0xd7, 0x17, 0x7f, 0x8c, + 0x9c, 0x93, 0xb4, 0x7d, 0x1f, 0xb0, 0xd4, 0xb7, 0x66, 0xfb, 0xd6, 0xfb, 0xa3, 0x7a, 0xed, 0x38, + 0x9a, 0x24, 0xf9, 0xf7, 0x12, 0x44, 0x02, 0xdb, 0xd1, 0x55, 0xbf, 0x2c, 0xb7, 0xef, 0x83, 0x14, + 0x33, 0xdc, 0x35, 0x9c, 0x94, 0x93, 0x95, 0xe6, 0x56, 0xbb, 0xa2, 0xb7, 0x5c, 0x9e, 0xcc, 0x35, + 0xf1, 0x34, 0x3e, 0x42, 0xe6, 0x75, 0x4c, 0x3c, 0x12, 0xd6, 0xe8, 0xff, 0xa1, 0x8b, 0x4f, 0x84, + 0x94, 0xd7, 0x56, 0xea, 0xc2, 0xca, 0x86, 0x92, 0x8e, 0x2e, 0xa7, 0x4b, 0xde, 0x86, 0xf2, 0x51, + 0x83, 0xf3, 0xff, 0x95, 0x3f, 0x49, 0x6a, 0x99, 0x62, 0x8b, 0x62, 0x78, 0x0a, 0xd8, 0x84, 0x32, + 0x1d, 0xa6, 0x13, 0x29, 0x96, 0x2c, 0xbe, 0x33, 0x8e, 0x79, 0x3e, 0x23, 0x9a, 0xe8, 0xff, 0x20, + 0x29, 0xae, 0x10, 0xa4, 0x54, 0x1c, 0x2d, 0x93, 0xb2, 0xce, 0x08, 0x87, 0x12, 0xab, 0x04, 0xb2, + 0xe0, 0xd0, 0xf5, 0x0f, 0x18, 0xaf, 0xc7, 0x13, 0xb1, 0xc5, 0x8f, 0x9d, 0x3f, 0xa3, 0x53, 0x38, + 0x6d, 0x75, 0xb1, 0xe6, 0x5e, 0x92, 0xa8, 0x84, 0xce, 0xba, 0x59, 0x72, 0xb7, 0x09, 0xb7, 0xfd, + 0x85, 0x62, 0xa4, 0x84, 0xf9, 0xad, 0x09, 0x77, 0x8c, 0x7f, 0x37, 0x1c, 0x3a, 0x0f, 0xd5, 0xd3, + 0xc0, 0x43, 0xe8, 0x0d, 0x07, 0x99, 0xfc, 0x8a, 0x55, 0xdb, 0x5b, 0x87, 0x38, 0x9a, 0x89, 0x1b, + 0x08, 0x77, 0x7d, 0xc0, 0x61, 0xf7, 0x37, 0x19, 0xd3, 0x6c, 0x77, 0x2c, 0x20, 0xe6, 0xb7, 0x11, + 0x9e, 0xa3, 0xe3, 0x9a, 0x27, 0x9f, 0x53, 0xdb, 0x1b, 0xb6, 0x02, 0x54, 0x2e, 0xb7, 0xe8, 0xa5, + 0x9a, 0x34, 0x38, 0xa9, 0xa0, 0x47, 0xa9, 0x8f, 0xf5, 0x24, 0xa7, 0x61, 0xba, 0x35, 0x71, 0x1e, + 0xad, 0x20, 0x87, 0x83, 0x48, 0x7d, 0xa2, 0x16, 0xde, 0x1b, 0xa4, 0x23, 0x4c, 0xc5, 0xf0, 0xa4, + 0xef, 0x3f, 0x62, 0xef, 0x75, 0x83, 0x9d, 0x5a, 0x82, 0xcc, 0xff, 0x48, 0x40, 0x85, 0xb3, 0x73, + 0x1e, 0x75, 0x59, 0xb9, 0x5e, 0x6c, 0xd0, 0x39, 0x6c, 0x91, 0x9d, 0x4e, 0x36, 0xd8, 0x43, 0xfd, + 0x13, 0x53, 0x9f, 0x4b, 0xb5, 0xe4, 0xc6, 0xa5, 0x46, 0x46, 0x4e, 0xa8, 0x03, 0x9d, 0xe6, 0x69, + 0xe2, 0x29, 0xdf, 0x7c, 0x75, 0x5c, 0xfb, 0xd2, 0xbf, 0x44, 0xec, 0x0a, 0xaf, 0xe5, 0x22, 0xa6, + 0x25, 0x16, 0x9d, 0x04, 0x70, 0xf7, 0x2c, 0xb2, 0x68, 0x10, 0x8a, 0x8d, 0x83, 0xb3, 0x16, 0x23, + 0x5f, 0x06, 0x2a, 0x16, 0xc6, 0x22, 0x7e, 0xe9, 0xd2, 0xf3, 0x64, 0x96, 0x1b, 0x64, 0x8f, 0x50, + 0x86, 0x50, 0x03, 0x5d, 0x4f, 0x54, 0x37, 0x2d, 0xe0, 0x2b, 0x68, 0x28, 0x6f, 0x64, 0x4d, 0xcb, + 0x1e, 0x02, 0x7e, 0x44, 0xf6, 0x60, 0x2f, 0x02, 0xa7, 0x88, 0x06, 0x26, 0xb0, 0xe5, 0x2e, 0x34, + 0xe3, 0x52, 0xbb, 0x34, 0x91, 0x05, 0xac, 0x8e, 0x98, 0xad, 0x0b, 0x39, 0xa3, 0x45, 0x7a, 0x39, + 0x0a, 0x25, 0x51, 0xad, 0x43, 0x73, 0xd5, 0xc7, 0x4f, 0x35, 0xa2, 0xf4, 0x13, 0xcd, 0x62, 0xfd, + 0xbf, 0xff, 0xfc, 0x2b, 0x6f, 0x93, 0xa7, 0x4d, 0x67, 0xb7, 0x80, 0xad, 0x33, 0x1b, 0x8f, 0xb5, + 0x56, 0x46, 0x94, 0x8e, 0xe1, 0x73, 0xb2, 0x6f, 0x25, 0x84, 0x2b, 0x89, 0x74, 0x6d, 0xc5, 0xf2, + 0x7e, 0x54, 0xac, 0x54, 0x59, 0x02, 0xfb, 0xd3, 0x42, 0xb1, 0x51, 0x8c, 0x68, 0x68, 0xe2, 0x06, + 0x99, 0x95, 0x22, 0x5b, 0xa0, 0x21, 0x41, 0x3a, 0xb7, 0x21, 0x7b, 0x0d, 0x99, 0x92, 0xf2, 0x30, + 0x51, 0x12, 0x03, 0xba, 0x56, 0x8b, 0x85, 0x31, 0x10, 0x23, 0x96, 0xf9, 0x43, 0xf3, 0x70, 0x19, + 0x8a, 0x3b, 0x67, 0x67, 0x9f, 0x19, 0xb3, 0x8c, 0x94, 0x95, 0x70, 0xf4, 0xa0, 0x4d, 0xde, 0x83, + 0x1d, 0x05, 0xc7, 0x50, 0xd3, 0x25, 0xa6, 0x00, 0xdc, 0x58, 0x41, 0x85, 0xae, 0xb8, 0x25, 0x0c, + 0x39, 0x68, 0xf6, 0x18, 0x02, 0xa3, 0x4d, 0x81, 0x4d, 0x88, 0xf0, 0xf3, 0x8e, 0x0b, 0xd6, 0x40, + 0x9b, 0xdb, 0xad, 0x9e, 0x8b, 0xc5, 0xab, 0x2e, 0x93, 0x64, 0xf5, 0xa8, 0x30, 0x77, 0x6b, 0x50, + 0xfc, 0x07, 0x7d, 0x72, 0x67, 0x75, 0x79, 0x74, 0x8c, 0x36, 0x61, 0x2c, 0x24, 0x92, 0x25, 0x09, + 0x6c, 0xfe, 0x90, 0x09, 0x17, 0x66, 0xc5, 0xc7, 0xa6, 0xb8, 0x21, 0x84, 0xc0, 0xca, 0xfa, 0x0f, + 0x33, 0x30, 0x47, 0xd7, 0xae, 0xed, 0xe6, 0x29, 0x74, 0xe4, 0xfd, 0xd8, 0x4f, 0xbf, 0xe6, 0x2b, + 0x30, 0x09, 0x40, 0x20, 0x2e, 0x1a, 0xa9, 0xe4, 0x9b, 0xb6, 0xf1, 0x01, 0xd7, 0xb7, 0xde, 0x65, + 0x01, 0xcb, 0x03, 0x96, 0x40, 0x66, 0x76, 0x77, 0x5f, 0xad, 0x2a, 0xdb, 0xb0, 0x37, 0x80, 0x18, + 0x9b, 0x18, 0xac, 0x71, 0x89, 0x5f, 0x2f, 0xee, 0x8f, 0xec, 0x70, 0x5f, 0xce, 0x39, 0x2b, 0x2d, + 0xcf, 0x7c, 0x63, 0x5f, 0xec, 0x74, 0x98, 0xf1, 0x8a, 0xea, 0xf6, 0x11, 0xc0, 0x6d, 0x33, 0xc6, + 0x1f, 0x69, 0x45, 0xae, 0x50, 0xea, 0xa0, 0x38, 0x6d, 0x7e, 0x83, 0x65, 0xfa, 0xcb, 0x63, 0xa3, + 0xff, 0xe4, 0x5a, 0x26, 0x07, 0xad, 0xc9, 0xcd, 0x16, 0x0c, 0x50, 0x2b, 0x04, 0x44, 0xb8, 0xc5, + 0x0e, 0x8e, 0xbb, 0x80, 0xf4, 0x23, 0x10, 0x67, 0x6c, 0x60, 0x79, 0x9e, 0x59, 0x6f, 0x03, 0x95, + 0x6a, 0xaf, 0xbe, 0xde, 0xbd, 0xba, 0x6a, 0xd3, 0x75, 0x75, 0x30, 0x19, 0xf4, 0x80, 0x75, 0xee, + 0xcf, 0x2c, 0x35, 0xf5, 0xd6, 0xc4, 0x9e, 0x82, 0xcb, 0x22, 0x5e, 0xe3, 0xf9, 0x06, 0xdc, 0xea, + 0x72, 0xa0, 0x11, 0x88, 0x2b, 0x21, 0x36, 0xb9, 0x2f, 0xd0, 0x31, 0x70, 0x78, 0xad, 0xe7, 0xb6, + 0xe9, 0x45, 0xcb, 0x34, 0x50, 0xfb, 0xc0, 0xb8, 0xe4, 0xc2, 0xbf, 0x1d, 0x41, 0x53, 0x3d, 0xa5, + 0xcd, 0x1c, 0xa8, 0xf7, 0xf3, 0x5e, 0x9d, 0x87, 0xf2, 0x8e, 0xf2, 0xf8, 0x1e, 0x10, 0x28, 0x3f, + 0x68, 0x8a, 0x15, 0xb0, 0x04, 0x4a, 0x40, 0x34, 0xd2, 0xf5, 0x14, 0x9d, 0x9c, 0xae, 0x95, 0xc5, + 0xa3, 0xb0, 0xeb, 0xfd, 0xc3, 0xb0, 0xe6, 0x53, 0x2d, 0x35, 0x2f, 0xa7, 0x7f, 0x8b, 0x22, 0xba, + 0x33, 0x32, 0x0f, 0xd0, 0x43, 0x5b, 0xae, 0x59, 0x25, 0x73, 0xae, 0x01, 0xfe, 0x16, 0x21, 0x27, + 0xbc, 0x01, 0xaa, 0x92, 0x0e, 0x65, 0xfc, 0x44, 0x7b, 0xd9, 0xb3, 0xf5, 0x17, 0xe6, 0x39, 0xc2, + 0x1c, 0xf3, 0x52, 0xe2, 0x03, 0x97, 0x7c, 0xf5, 0x73, 0x75, 0x7f, 0xad, 0x4a, 0x71, 0xaa, 0x56, + 0x5b, 0x99, 0x6e, 0xa6, 0x81, 0xdd, 0xd4, 0x3f, 0xfe, 0x55, 0x3e, 0x15, 0x44, 0xb5, 0x63, 0x69, + 0x74, 0xd3, 0x9c, 0xb1, 0x79, 0x58, 0xf3, 0xb2, 0x58, 0x3c, 0x5e, 0x8f, 0x01, 0x58, 0xe4, 0xe9, + 0x05, 0xdc, 0xad, 0x3f, 0x2c, 0x4f, 0xec, 0xc8, 0x4e, 0x95, 0x88, 0xac, 0xe2, 0x2b, 0x73, 0xd6, + 0x9d, 0xa0, 0x24, 0x83, 0xa9, 0x1e, 0xac, 0x83, 0x5c, 0x34, 0x34, 0x8b, 0x8a, 0xb5, 0x75, 0x85, + 0x08, 0xbf, 0xbf, 0xd0, 0xd7, 0xe5, 0x02, 0xab, 0x91, 0xaf, 0xce, 0xf8, 0xae, 0xa2, 0x3f, 0xb6, + 0xff, 0x34, 0x17, 0xfe, 0x7b, 0x00, 0xf4, 0x45, 0x23, 0x60, 0x18, 0x07, 0x09, 0x5a, 0x4f, 0x4a, + 0xbe, 0xeb, 0xab, 0x86, 0x5c, 0x38, 0x8a, 0x13, 0xcc, 0x62, 0x18, 0x7f, 0x46, 0xce, 0x00, 0x4c, + 0x50, 0xa5, 0x16, 0xd1, 0x17, 0xe1, 0x42, 0xe6, 0x62, 0xb6, 0xa8, 0x5b, 0x73, 0xf1, 0xf6, 0x46, + 0xf4, 0x1c, 0xcc, 0x94, 0x92, 0x63, 0x21, 0xc1, 0x05, 0x89, 0xc0, 0x15, 0x53, 0xd2, 0xf8, 0xb8, + 0x4a, 0x41, 0xf3, 0xb2, 0xbc, 0xa4, 0x0b, 0xe9, 0x08, 0x28, 0x45, 0xdb, 0x86, 0x17, 0xf7, 0x3f, + 0xf6, 0x87, 0xcf, 0xf0, 0xae, 0x94, 0x1b, 0x0a, 0xbf, 0x14, 0xbb, 0xda, 0xdf, 0x07, 0x56, 0xa6, + 0xe8, 0x02, 0xcf, 0x94, 0x09, 0x01, 0xf5, 0x97, 0x21, 0x77, 0x5c, 0x55, 0x7a, 0xb7, 0xa0, 0x2d, + 0xc0, 0xee, 0x11, 0x9c, 0xa5, 0x2d, 0x40, 0xb4, 0xd0, 0xff, 0xa9, 0xfd, 0xe3, 0x95, 0x58, 0xa9, + 0x60, 0xef, 0x72, 0xd5, 0xe0, 0x7c, 0xf1, 0x20, 0x57, 0x1e, 0x43, 0x91, 0x0f, 0x7a, 0xd8, 0xb2, + 0x62, 0x82, 0x4e, 0x13, 0x11, 0x22, 0xa4, 0x18, 0xb9, 0xd0, 0x7a, 0x12, 0x8f, 0xb0, 0xd6, 0xf3, + 0x2e, 0x73, 0x97, 0x46, 0x93, 0x8a, 0x71, 0x64, 0x7a, 0x1a, 0x25, 0xbd, 0x6c, 0x0c, 0x8b, 0x13, + 0xfa, 0x06, 0x5f, 0x75, 0xac, 0x3b, 0x55, 0x26, 0xc1, 0x32, 0x1e, 0x0a, 0x7c, 0x6e, 0x84, 0x41, + 0x63, 0x9b, 0x32, 0xe7, 0xae, 0xe4, 0xe4, 0xdc, 0x38, 0xd3, 0xf1, 0xb1, 0x19, 0xd4, 0x0f, 0x96, + 0xa2, 0xb8, 0xda, 0x6a, 0x6c, 0x72, 0xd3, 0x82, 0x16, 0x36, 0xd1, 0x2d, 0x52, 0xd6, 0x77, 0x13, + 0xb7, 0x54, 0xa9, 0x46, 0x79, 0x3e, 0x86, 0xbf, 0x5a, 0xa0, 0xc2, 0xdc, 0x0d, 0xdc, 0xa5, 0x58, + 0x7e, 0x0e, 0xb8, 0x11, 0x40, 0xe8, 0xe1, 0x51, 0x7b, 0x5e, 0xab, 0x28, 0x2b, 0xff, 0xb2, 0x35, + 0xd3, 0xe7, 0x41, 0xb7, 0xaa, 0x85, 0x72, 0xc6, 0xa9, 0x99, 0xdc, 0xe1, 0x89, 0x63, 0xfa, 0x99, + 0xe2, 0x89, 0xc8, 0x2f, 0x8a, 0x1a, 0x4c, 0x42, 0xd8, 0xde, 0x63, 0x3f, 0x37, 0xcd, 0x95, 0xbe, + 0xc3, 0x91, 0xb3, 0x77, 0x18, 0x40, 0x8f, 0x50, 0x28, 0x93, 0x59, 0xd5, 0xe4, 0x1d, 0x9f, 0x4d, + 0x4d, 0x37, 0xbf, 0x7e, 0xbe, 0x88, 0x51, 0xa7, 0x9e, 0x04, 0x1f, 0x14, 0x2d, 0x7a, 0x28, 0x09, + 0x06, 0xd6, 0x36, 0x20, 0xf2, 0xea, 0xa9, 0x66, 0xbb, 0x00, 0xc4, 0x35, 0x80, 0x38, 0xda, 0x9d, + 0x6b, 0xc6, 0xfd, 0x14, 0xb9, 0x72, 0x59, 0xe7, 0xb4, 0x84, 0xa0, 0xfa, 0x8c, 0x24, 0x2a, 0xeb, + 0x9e, 0x0f, 0x08, 0x5d, 0x43, 0x32, 0xce, 0xd9, 0xd2, 0x00, 0xb7, 0x50, 0xc8, 0xc5, 0x1a, 0x12, + 0xf1, 0x5b, 0x41, 0x72, 0xe6, 0xe1, 0xde, 0x03, 0x86, 0xb6, 0xf8, 0xfc, 0xc0, 0x51, 0xfc, 0xea, + 0x21, 0x49, 0xdb, 0x9d, 0x85, 0xb7, 0x00, 0xf3, 0x6c, 0xec, 0x26, 0xc7, 0xe5, 0x7b, 0x08, 0x84, + 0x36, 0xf1, 0x55, 0x7b, 0xc3, 0x6d, 0x1e, 0xfb, 0x32, 0xea, 0xb6, 0x47, 0x44, 0x2d, 0x9f, 0xba, + 0x17, 0x18, 0x85, 0xe2, 0x79, 0x3c, 0x2d, 0x8a, 0x27, 0x0b, 0x09, 0xe6, 0x04, 0x94, 0x73, 0xfd, + 0x0b, 0xc7, 0xc9, 0x8b, 0x2d, 0xd6, 0x28, 0x7c, 0x9a, 0xe9, 0xc0, 0x67, 0xe3, 0x68, 0x14, 0x49, + 0xe5, 0x2c, 0x5c, 0x41, 0x32, 0xf3, 0x34, 0xc4, 0xca, 0x5b, 0x1b, 0xfa, 0xef, 0x8e, 0x96, 0x34, + 0x61, 0xfe, 0x89, 0x4b, 0xed, 0x7a, 0x33, 0x86, 0xbb, 0x04, 0xbc, 0x71, 0x5e, 0x9a, 0x0f, 0x82, + 0x4e, 0x01, 0xce, 0x12, 0x08, 0x53, 0x2c, 0x21, 0x25, 0xe1, 0xdd, 0x50, 0x49, 0xc4, 0xd5, 0x84, + 0x53, 0xe3, 0xd7, 0x5a, 0x28, 0x56, 0x87, 0x24, 0x89, 0x36, 0x21, 0x72, 0xd2, 0x85, 0x1b, 0xc6, + 0xb9, 0x5b, 0x18, 0x8d, 0xd5, 0x78, 0x52, 0x7a, 0xcf, 0x5f, 0x64, 0x03, 0x3d, 0xfe, 0x2f, 0x9c, + 0x50, 0x54, 0x2c, 0x40, 0x60, 0x88, 0x96, 0xf7, 0xab, 0xff, 0xbf, 0x3d, 0xd9, 0x9d, 0x73, 0x79, + 0xcf, 0x96, 0x15, 0x67, 0xad, 0x2a, 0xfd, 0x04, 0x66, 0xa5, 0x9f, 0x96, 0x68, 0xac, 0xd4, 0x37, + 0xd9, 0xe1, 0xb7, 0x85, 0x26, 0x18, 0x2c, 0x47, 0x09, 0x3d, 0xb2, 0x7a, 0x74, 0x21, 0x80, 0x45, + 0x6e, 0xd1, 0x1f, 0x87, 0xa7, 0x3f, 0x33, 0x0a, 0x06, 0x55, 0x56, 0x39, 0x83, 0x30, 0xbd, 0x32, + 0xd1, 0xb0, 0xb2, 0xad, 0x52, 0x7f, 0x2e, 0x3f, 0x3f, 0xbb, 0x3a, 0x45, 0xc4, 0x80, 0x87, 0x40, + 0x08, 0x7b, 0x2d, 0x0d, 0x7c, 0x42, 0xb0, 0x06, 0x42, 0xd2, 0x62, 0x10, 0x86, 0xab, 0xb5, 0xaf, + 0x5f, 0x91, 0x78, 0x9c, 0x7a, 0x2f, 0x52, 0xef, 0x89, 0x54, 0x10, 0x03, 0x83, 0xb3, 0x16, 0x9d, + 0x16, 0x65, 0x2f, 0x87, 0x40, 0x26, 0x9a, 0x35, 0xe4, 0xe5, 0x56, 0x54, 0x5a, 0x61, 0x1c, 0xb8, + 0xb2, 0xf8, 0x2b, 0x6a, 0xff, 0xcf, 0xfc, 0x08, 0xe9, 0x6d, 0x6e, 0xae, 0x50, 0x8d, 0x55, 0x32, + 0x6e, 0xec, 0x89, 0xed, 0xea, 0xb9, 0x86, 0x23, 0xfb, 0xf5, 0x4e, 0xdc, 0xaa, 0x55, 0x2f, 0xad, + 0x3a, 0xf6, 0x6c, 0x6a, 0x9d, 0xfb, 0x41, 0x46, 0x8c, 0x09, 0xf7, 0x75, 0xd9, 0xe3, 0x5c, 0xa8, + 0xa2, 0x5f, 0xaa, 0xda, 0xef, 0x87, 0x20, 0x8a, 0x77, 0x98, 0x94, 0x25, 0x4e, 0x5e, 0xc9, 0x21, + 0x01, 0x9d, 0x1a, 0x4f, 0xfb, 0x04, 0xec, 0xe0, 0xb0, 0x59, 0x11, 0xa1, 0xb7, 0x11, 0x56, 0xe2, + 0x99, 0x83, 0xaa, 0x75, 0xe8, 0x72, 0x93, 0xbb, 0xdc, 0xac, 0x3c, 0x6c, 0x50, 0x60, 0x27, 0x5f, + 0x0e, 0x9f, 0xbf, 0x7f, 0x41, 0x7e, 0x84, 0x44, 0x4d, 0xb2, 0x18, 0x1f, 0x4b, 0xa2, 0x4e, 0xe3, + 0x88, 0x63, 0x2a, 0xe8, 0x4d, 0xf4, 0x6d, 0xaf, 0xb5, 0x1d, 0x4b, 0xf6, 0x89, 0x57, 0x2c, 0xf7, + 0x52, 0xef, 0x59, 0x34, 0xe3, 0xb1, 0xda, 0xe8, 0x80, 0xcf, 0x16, 0x0b, 0x9b, 0x4e, 0xc9, 0x54, + 0x71, 0x38, 0x3e, 0xe3, 0x87, 0x7a, 0x4a, 0x85, 0x30, 0x89, 0x8e, 0x3b, 0xcf, 0x17, 0xdf, 0x01, + 0x6a, 0xd2, 0x43, 0x8c, 0x5c, 0xae, 0xf6, 0x57, 0x3f, 0xcb, 0xf3, 0x29, 0x53, 0x3c, 0x4c, 0x46, + 0xe0, 0x46, 0x2e, 0x7d, 0x7b, 0xe0, 0xa7, 0x8c, 0xc5, 0xb3, 0x0b, 0x6f, 0x60, 0x0c, 0x1f, 0xa8, + 0xed, 0x42, 0x55, 0xc6, 0xb3, 0xc5, 0xda, 0x41, 0x9a, 0xb7, 0xcf, 0xf4, 0x75, 0xee, 0xaa, 0x5d, + 0x08, 0xb0, 0x06, 0x7d, 0x6b, 0x53, 0x2d, 0xd2, 0x10, 0xc9, 0x4f, 0xe9, 0x9e, 0xcf, 0x76, 0x5f, + 0x38, 0x4b, 0x0b, 0x22, 0x4c, 0xfb, 0x45, 0xb3, 0x96, 0x45, 0xe5, 0xa0, 0xe0, 0xc7, 0xf9, 0xd7, + 0xde, 0xf9, 0xb0, 0x7a, 0x68, 0x7e, 0xbd, 0x80, 0x00, 0xe4, 0x80, 0x7f, 0x2d, 0x98, 0x06, 0xf0, + 0x05, 0x42, 0x1c, 0xed, 0xcc, 0x8d, 0xef, 0x1b, 0x9e, 0xb2, 0x4c, 0xe2, 0x63, 0x92, 0xfb, 0x1c, + 0x75, 0x05, 0xe4, 0x40, 0x1e, 0x02, 0x80, 0xbb, 0x73, 0x55, 0x6a, 0xd7, 0xf1, 0x62, 0x27, 0x23, + 0x87, 0xc3, 0x51, 0x25, 0x48, 0xb7, 0xa5, 0xab, 0x0d, 0x10, 0xbc, 0x51, 0x75, 0xda, 0x7c, 0xb2, + 0x79, 0x97, 0xc6, 0x1f, 0xa9, 0xb4, 0x18, 0x93, 0x45, 0xbb, 0xcf, 0xee, 0xd7, 0xd0, 0xcb, 0xb7, + 0x78, 0xef, 0xdf, 0x97, 0x69, 0x52, 0xf2, 0x43, 0x66, 0xd3, 0x73, 0xb8, 0x68, 0x44, 0xe7, 0xcc, + 0x2f, 0xd4, 0x5c, 0xf4, 0xc9, 0x23, 0x69, 0x6e, 0xb7, 0x78, 0x60, 0x7c, 0x8a, 0x22, 0xc9, 0xed, + 0x2b, 0xa0, 0x5f, 0xbd, 0xae, 0xa1, 0x7e, 0xdd, 0x46, 0x79, 0x59, 0x24, 0x07, 0x5d, 0x67, 0xdd, + 0x2b, 0x26, 0x53, 0x98, 0x6e, 0x61, 0x20, 0x1a, 0xcc, 0xd4, 0xe2, 0x6b, 0x13, 0x7f, 0x28, 0x2e, + 0xe1, 0x54, 0x6f, 0x0e, 0x03, 0x72, 0x45, 0x1e, 0x70, 0xe8, 0x55, 0x57, 0x16, 0xfd, 0xa9, 0xb7, + 0xdd, 0xcd, 0xe4, 0xdc, 0x9a, 0x0d, 0xd3, 0x91, 0x26, 0x18, 0x68, 0xf5, 0x09, 0x30, 0xe3, 0x5a, + 0x8c, 0x22, 0x0e, 0x32, 0xf9, 0xa3, 0xdc, 0xf4, 0xf3, 0x85, 0xf5, 0x2f, 0xd6, 0x8c, 0x66, 0xa9, + 0xcf, 0x17, 0x87, 0x42, 0x68, 0xec, 0xe7, 0xa5, 0xc1, 0xd7, 0x5b, 0x2f, 0xfb, 0xc7, 0x3b, 0x25, + 0x50, 0xb7, 0x2e, 0x0c, 0x0d, 0x0c, 0x70, 0xed, 0x14, 0xd5, 0x1f, 0x50, 0x10, 0x4a, 0xa4, 0x49, + 0xcb, 0xa9, 0x1f, 0x61, 0xde, 0x6c, 0x79, 0x8e, 0x7a, 0x29, 0xa6, 0x5a, 0xda, 0x93, 0xc5, 0xe3, + 0xff, 0xd1, 0x0a, 0x90, 0xee, 0x78, 0x1e, 0x3d, 0x6a, 0x2d, 0xa5, 0x87, 0xe7, 0x6f, 0x67, 0xf9, + 0xe4, 0xc2, 0x39, 0xc3, 0x96, 0x13, 0xd8, 0x85, 0xc3, 0xde, 0x56, 0x7d, 0x3f, 0x03, 0x7c, 0xc5, + 0x6c, 0xca, 0x87, 0x07, 0x8a, 0x1b, 0x0e, 0x6c, 0x03, 0x87, 0x8a, 0xee, 0x07, 0x16, 0x62, 0x92, + 0xc3, 0x36, 0x9f, 0x97, 0x45, 0x86, 0x3a, 0xd5, 0xbd, 0x79, 0x65, 0xa3, 0x74, 0x1a, 0x8e, 0xa8, + 0x16, 0x22, 0x6e, 0xfa, 0x3f, 0xcf, 0x47, 0xd5, 0xee, 0x3f, 0x27, 0x9d, 0x7b, 0x3e, 0x49, 0xa0, + 0x5c, 0x93, 0xb5, 0xb3, 0x02, 0x46, 0x45, 0x74, 0x2f, 0xa5, 0xf9, 0x96, 0x1a, 0x84, 0x22, 0xdd, + 0xee, 0x22, 0x5a, 0x01, 0x30, 0x32, 0x80, 0xf3, 0xdd, 0x6c, 0x9c, 0x9b, 0xd4, 0x62, 0x1b, 0x71, + 0x77, 0x8a, 0xef, 0xb5, 0x08, 0xbc, 0xd6, 0xc9, 0xe7, 0x11, 0xcc, 0x72, 0xa9, 0x1a, 0xa7, 0x94, + 0x96, 0xcb, 0xa4, 0xb0, 0x08, 0x40, 0xaf, 0x20, 0x78, 0xe1, 0xa5, 0xc2, 0x76, 0x6e, 0xe5, 0x3b, + 0xc0, 0x1d, 0xfa, 0x12, 0x4a, 0x69, 0x88, 0x89, 0xe3, 0x97, 0x83, 0x6b, 0xe7, 0x61, 0xf6, 0x0c, + 0x25, 0xd8, 0x33, 0xb7, 0x94, 0xf5, 0x9d, 0x21, 0x8d, 0xfe, 0x60, 0x10, 0x75, 0x3d, 0x25, 0x38, + 0x2f, 0x22, 0xf7, 0x72, 0x18, 0xa2, 0x47, 0xe6, 0x96, 0xa2, 0x4e, 0x0b, 0x2b, 0xc2, 0xf1, 0x57, + 0x2e, 0xe2, 0xeb, 0xb1, 0x26, 0x08, 0xd2, 0xa5, 0x3f, 0x12, 0xee, 0x99, 0xa2, 0x6d, 0xf9, 0x2a, + 0xd8, 0x0f, 0x16, 0xe6, 0x2f, 0x6d, 0xb6, 0xd0, 0xfd, 0x64, 0x76, 0xe3, 0x9e, 0x05, 0x2b, 0x2c, + 0xdc, 0x49, 0x18, 0x1b, 0x0d, 0x3c, 0x10, 0xa1, 0xc4, 0x32, 0x9c, 0x2d, 0x46, 0x66, 0x43, 0xb4, + 0x7b, 0xef, 0x9e, 0x4f, 0xa3, 0xd5, 0xc0, 0xde, 0x77, 0x8c, 0xd5, 0x34, 0xf2, 0x35, 0x57, 0x63, + 0x76, 0xb4, 0x75, 0xe7, 0x47, 0xbb, 0x2a, 0x40, 0x85, 0x50, 0xa0, 0x5a, 0x0b, 0x59, 0xd9, 0x92, + 0x9d, 0x67, 0x63, 0xbf, 0x78, 0xfc, 0x78, 0x58, 0x01, 0x95, 0x79, 0x0a, 0xae, 0xea, 0x09, 0x38, + 0x0f, 0x33, 0x83, 0x5d, 0x3f, 0x4f, 0x0f, 0xf8, 0x92, 0xaf, 0x9d, 0x00, 0x24, 0x22, 0x67, 0xfe, + 0x7c, 0xd4, 0x7c, 0x50, 0x49, 0xab, 0x08, 0x00, 0x55, 0x54, 0xde, 0x78, 0x3d, 0xa3, 0x05, 0x3a, + 0xa2, 0x07, 0x5b, 0xe4, 0x8a, 0x52, 0x98, 0xad, 0x7d, 0xd0, 0x73, 0x80, 0xbc, 0x1f, 0x43, 0xcf, + 0x68, 0x3d, 0xab, 0xa2, 0x28, 0x55, 0x6d, 0xe5, 0x69, 0xaf, 0x20, 0xbc, 0xaf, 0xf1, 0x60, 0x88, + 0xc3, 0xcf, 0xc8, 0xc3, 0x9d, 0x24, 0x32, 0x4b, 0xd5, 0x49, 0xf3, 0xf0, 0x76, 0x8a, 0xc4, 0xe5, + 0x42, 0xa4, 0xa5, 0x51, 0xd3, 0x07, 0x03, 0xbd, 0x56, 0x79, 0xe4, 0xd6, 0x9c, 0xb8, 0x95, 0x01, + 0x6b, 0x7e, 0x8e, 0xe1, 0x4e, 0x55, 0x82, 0x51, 0x53, 0x24, 0x42, 0x5d, 0x20, 0xae, 0x64, 0x31, + 0xa1, 0xd0, 0xd4, 0xba, 0x03, 0x04, 0x51, 0xf6, 0xcc, 0x6a, 0xf7, 0x58, 0x93, 0x3b, 0x86, 0x91, + 0x2c, 0x21, 0xdd, 0xcb, 0x43, 0x3b, 0x71, 0xd2, 0xdc, 0x36, 0x77, 0x33, 0x0b, 0x24, 0x82, 0x32, + 0xfb, 0x0a, 0xd3, 0x94, 0x31, 0xe4, 0xf3, 0xd4, 0xba, 0xec, 0xb7, 0x2d, 0x2a, 0xe1, 0xf2, 0x35, + 0x0b, 0x6d, 0x96, 0xcd, 0xd6, 0xb2, 0xa1, 0xb0, 0x1f, 0xb1, 0x62, 0x36, 0x78, 0x3f, 0xe8, 0x2a, + 0x2a, 0x99, 0x49, 0x0d, 0x4d, 0x53, 0x21, 0x51, 0x39, 0xd7, 0xc7, 0x27, 0x1d, 0x87, 0xc1, 0x1a, + 0x7a, 0xff, 0xc8, 0xb4, 0xdd, 0xca, 0x08, 0x6e, 0xd8, 0xf6, 0xa4, 0xdc, 0x6a, 0x31, 0x23, 0xdb, + 0x6c, 0x13, 0x4b, 0xd6, 0x8a, 0x18, 0xfd, 0xd3, 0x6f, 0x8d, 0x85, 0xa0, 0x3a, 0xbe, 0x8d, 0xdb, + 0x58, 0x0c, 0x04, 0x19, 0x92, 0x00, 0x41, 0x04, 0x62, 0x3d, 0xa0, 0xba, 0xe3, 0x02, 0xff, 0x48, + 0x04, 0x57, 0x09, 0xf9, 0x76, 0xbf, 0xdd, 0xe3, 0x7c, 0x36, 0x3f, 0xa1, 0x17, 0xae, 0x4e, 0xe3, + 0x71, 0xbc, 0x73, 0xb6, 0xd5, 0x56, 0x84, 0xb6, 0x4c, 0xb4, 0xad, 0x76, 0xf8, 0x11, 0x9c, 0xd3, + 0xae, 0x8c, 0x8d, 0x64, 0x22, 0x53, 0xf8, 0xba, 0x9a, 0x0b, 0xcd, 0x5d, 0x02, 0x2b, 0x01, 0x94, + 0x1d, 0x58, 0xf5, 0xa7, 0xdf, 0x43, 0x21, 0xd9, 0x39, 0x01, 0x27, 0xbd, 0xc9, 0xb0, 0xc4, 0x09, + 0xac, 0x3d, 0x2c, 0xb4, 0x7f, 0x0b, 0x70, 0x2c, 0x0b, 0xbb, 0x32, 0x82, 0xf4, 0xbe, 0x3b, 0x8a, + 0xed, 0x3b, 0x8b, 0x60, 0x21, 0xc6, 0xce, 0x47, 0x2c, 0xd8, 0x8b, 0x50, 0x24, 0x69, 0x5b, 0x0f, + 0x6f, 0xc3, 0x00, 0x24, 0x6f, 0xe2, 0x6e, 0x8d, 0xb7, 0x6b, 0xec, 0x51, 0x1c, 0x46, 0x70, 0xde, + 0xad, 0xf8, 0x17, 0x12, 0xf1, 0xb5, 0xb9, 0x9e, 0x00, 0x84, 0xf5, 0x11, 0xd0, 0xa7, 0xea, 0xff, + 0x86, 0x4d, 0x01, 0xe7, 0xb5, 0x42, 0x05, 0x5a, 0xc5, 0x8f, 0xa6, 0xcd, 0x9f, 0x11, 0x69, 0x52, + 0x4e, 0x4e, 0xd2, 0xce, 0x54, 0x1a, 0x01, 0xef, 0x7a, 0x1b, 0x20, 0x7e, 0xbb, 0x28, 0x93, 0xbc, + 0x9e, 0x6b, 0xfd, 0xb0, 0xe3, 0x05, 0x8b, 0x5f, 0x34, 0xab, 0x4f, 0x35, 0x72, 0x38, 0xd2, 0x79, + 0x97, 0x6b, 0x3f, 0x8f, 0x96, 0x53, 0x62, 0xd6, 0x9d, 0xae, 0x30, 0x29, 0x97, 0x5d, 0x2f, 0x83, + 0xec, 0x01, 0xe4, 0x76, 0xb5, 0xde, 0xd8, 0x1f, 0xa6, 0xc9, 0xbe, 0xb6, 0x7b, 0x58, 0x33, 0xbb, + 0x26, 0xf3, 0x2f, 0xcf, 0x8e, 0x61, 0x55, 0x2b, 0x33, 0x77, 0xb9, 0x23, 0xf7, 0x90, 0x0a, 0x13, + 0x1c, 0x1e, 0x7a, 0x2f, 0xeb, 0xa1, 0xc7, 0xf7, 0x23, 0xf8, 0x44, 0x48, 0xff, 0x46, 0x05, 0x77, + 0xe0, 0x80, 0x96, 0xc9, 0x5a, 0x88, 0xdd, 0xef, 0x63, 0xb6, 0x3a, 0x20, 0x29, 0xb9, 0xc3, 0x32, + 0x4e, 0xc7, 0xcd, 0x93, 0x7e, 0x5d, 0x10, 0x64, 0x83, 0xc0, 0xef, 0xdd, 0xbc, 0xe3, 0x92, 0x48, + 0x6e, 0x02, 0x2c, 0x93, 0x79, 0xc9, 0xfa, 0xed, 0xd2, 0x1b, 0x0e, 0x5e, 0x3b, 0x3a, 0x1b, 0x90, + 0x1c, 0x53, 0x36, 0x50, 0xe0, 0x56, 0xd2, 0xeb, 0x8a, 0x3f, 0x8a, 0x3e, 0xee, 0x9d, 0x5a, 0xfd, + 0x42, 0x8c, 0xc4, 0xf9, 0x54, 0xc2, 0xf2, 0x70, 0x0e, 0x90, 0xc0, 0x2c, 0x7b, 0x72, 0x83, 0x9e, + 0xb5, 0x65, 0xca, 0x83, 0x04, 0x8b, 0x84, 0x3d, 0x4c, 0x55, 0x3f, 0x73, 0x92, 0xf1, 0x29, 0xaa, + 0xe8, 0x92, 0x6e, 0x45, 0x40, 0x33, 0xc2, 0x04, 0x3f, 0x06, 0x66, 0xdb, 0xca, 0x1b, 0xb7, 0xf1, + 0xa5, 0x1f, 0x0b, 0x18, 0x3c, 0x2e, 0xf2, 0x7b, 0xb6, 0x33, 0x22, 0x2c, 0xeb, 0xdc, 0x8a, 0xdb, + 0x2f, 0x9c, 0xcf, 0x0e, 0x30, 0xdf, 0xed, 0x6c, 0xd7, 0x9c, 0x7c, 0x05, 0xdd, 0xeb, 0x85, 0x75, + 0x9b, 0x88, 0xbe, 0xee, 0xb5, 0x17, 0x21, 0x65, 0xc5, 0xff, 0xd3, 0x90, 0x9e, 0xaa, 0x5a, 0xb2, + 0x01, 0x3c, 0x53, 0xf1, 0x0e, 0xa6, 0xc6, 0xcc, 0xfa, 0x9d, 0x39, 0x9a, 0x61, 0xdd, 0x59, 0x55, + 0x12, 0xcc, 0xd7, 0x8c, 0xd2, 0x53, 0xaa, 0xce, 0x54, 0x54, 0x56, 0xdf, 0xbf, 0x2a, 0x5a, 0x9c, + 0xd0, 0xff, 0xbf, 0x84, 0x56, 0xb0, 0x49, 0x65, 0x17, 0x00, 0xa7, 0xe7, 0xa4, 0x1c, 0xe2, 0xec, + 0xe4, 0x0c, 0x57, 0xa8, 0x61, 0xcd, 0xae, 0x3a, 0xb8, 0xc0, 0xc7, 0xdf, 0xdd, 0x86, 0x01, 0x3e, + 0x5f, 0x2a, 0x55, 0xdd, 0x0c, 0xff, 0xd4, 0xf1, 0x26, 0x23, 0x22, 0x04, 0xac, 0x70, 0x03, 0x3e, + 0xf8, 0xff, 0xb4, 0xca, 0x79, 0x9b, 0xca, 0x55, 0x86, 0xc9, 0xa7, 0x7e, 0xc8, 0xea, 0x9c, 0x99, + 0x7e, 0x48, 0x6c, 0x54, 0xd7, 0x64, 0x6e, 0xdb, 0x32, 0xeb, 0xe9, 0x90, 0xb7, 0x06, 0x27, 0x79, + 0x97, 0x6e, 0xb2, 0x0e, 0x96, 0x18, 0xcc, 0x67, 0x09, 0x34, 0x03, 0x78, 0x2d, 0x0b, 0x9c, 0x06, + 0x86, 0x25, 0x16, 0x24, 0xb8, 0x17, 0xc0, 0x6e, 0xd9, 0xe3, 0xc7, 0xe2, 0x95, 0xf5, 0x71, 0xed, + 0xf8, 0xde, 0x6b, 0x6e, 0x29, 0x98, 0xae, 0x00, 0x32, 0x0a, 0xc2, 0x14, 0x00, 0x47, 0x96, 0x8b, + 0x30, 0x59, 0x4c, 0xe6, 0x3c, 0xa9, 0x00, 0x96, 0xb2, 0x59, 0x00, 0x7a, 0xf4, 0xc2, 0x9e, 0xc5, + 0xb9, 0x16, 0x42, 0xbe, 0x31, 0x93, 0x45, 0xeb, 0xe0, 0xb4, 0x3c, 0xc3, 0x72, 0xde, 0xeb, 0xa4, + 0x93, 0x7f, 0x98, 0x13, 0x56, 0x61, 0xc3, 0x99, 0xf2, 0xe2, 0xa5, 0x6b, 0xa2, 0x80, 0x80, 0x54, + 0xec, 0x3f, 0xad, 0x6b, 0xc5, 0xba, 0x3f, 0x8b, 0xe7, 0x6b, 0x6c, 0xb9, 0x28, 0x81, 0x4d, 0x7e, + 0x48, 0xdc, 0x28, 0x15, 0x4f, 0x97, 0x1a, 0x5b, 0x07, 0x62, 0x21, 0xb3, 0x25, 0x8e, 0xbc, 0x77, + 0xc6, 0x11, 0x9d, 0x1e, 0xed, 0xa5, 0xbf, 0x1b, 0x0e, 0x1b, 0x44, 0x70, 0xc5, 0xa3, 0x0f, 0xd8, + 0xa8, 0x43, 0x6d, 0xf9, 0x97, 0x59, 0x9d, 0xb9, 0x8d, 0x48, 0xff, 0xb8, 0x75, 0x71, 0x34, 0x46, + 0xea, 0x16, 0xb6, 0x9e, 0x3e, 0x71, 0xad, 0xda, 0x6c, 0xe4, 0x08, 0xb6, 0x51, 0x51, 0x3c, 0xa7, + 0x41, 0xb3, 0x54, 0x92, 0xd7, 0x97, 0x50, 0xf5, 0x5b, 0xd2, 0x25, 0xd1, 0xa6, 0x9d, 0x16, 0x2d, + 0xb7, 0xb6, 0x17, 0x64, 0x39, 0xda, 0xa3, 0xef, 0x54, 0x46, 0x8c, 0x91, 0x85, 0xa2, 0x22, 0x18, + 0xf3, 0x2e, 0xd1, 0x0d, 0xae, 0x94, 0xd1, 0xbe, 0xc7, 0x04, 0x3e, 0x34, 0x9f, 0xe9, 0x42, 0x51, + 0xb5, 0xce, 0xaa, 0x90, 0x9d, 0xe0, 0xaa, 0x34, 0xe4, 0x10, 0xc9, 0x00, 0x85, 0xce, 0xb0, 0x0c, + 0xdb, 0x48, 0x4b, 0x21, 0x49, 0x5e, 0x69, 0xdc, 0x01, 0x77, 0x27, 0x97, 0x1e, 0x5b, 0x07, 0xd6, + 0x47, 0x10, 0x84, 0x6d, 0x2d, 0x88, 0x6e, 0xb1, 0x2b, 0xac, 0x0a, 0x8b, 0x0c, 0x68, 0x13, 0xdb, + 0xb1, 0x8e, 0x25, 0xb5, 0xc6, 0x01, 0x0c, 0xb0, 0xc5, 0xa4, 0x40, 0xd0, 0x28, 0x56, 0xf1, 0x78, + 0x1b, 0x77, 0x0c, 0x29, 0x0d, 0xa6, 0xb8, 0x74, 0x1f, 0x9f, 0xde, 0x79, 0xe0, 0xc0, 0x5a, 0xed, + 0xc8, 0xf4, 0xeb, 0x26, 0xf4, 0xe5, 0x0f, 0x45, 0x7a, 0x5d, 0xd0, 0x73, 0x10, 0x8b, 0xf2, 0xd3, + 0xa8, 0x0b, 0x31, 0x26, 0x58, 0x6f, 0xd9, 0xef, 0xee, 0xb5, 0x11, 0xed, 0xb3, 0xf5, 0x7b, 0xe1, + 0x66, 0xe2, 0xa2, 0x1e, 0x9e, 0xd3, 0x8e, 0x21, 0x95, 0xbc, 0x00, 0x65, 0xbf, 0xb0, 0x4f, 0x27, + 0x4c, 0xf5, 0x4b, 0x1f, 0x3b, 0x7a, 0x25, 0xd4, 0x2e, 0xb8, 0x1a, 0x8a, 0x92, 0x2f, 0x08, 0x85, + 0x6d, 0x82, 0xd6, 0xd2, 0xd6, 0x74, 0xed, 0xe0, 0xf1, 0xfc, 0x1f, 0x26, 0x29, 0x9f, 0x85, 0xad, + 0x13, 0x8d, 0x67, 0xb4, 0xc8, 0x3b, 0x65, 0xa9, 0xdf, 0x94, 0x60, 0x7a, 0xc2, 0x30, 0xad, 0x25, + 0xc9, 0xf7, 0x09, 0xc9, 0x6a, 0xd2, 0xfc, 0x6e, 0xa2, 0x24, 0xbd, 0xfb, 0x03, 0x2b, 0xd4, 0xf6, + 0x0c, 0xab, 0x85, 0x2c, 0x69, 0xa1, 0xdb, 0x3a, 0x54, 0x8d, 0xbf, 0xcb, 0x53, 0x56, 0xc2, 0xeb, + 0xe9, 0x06, 0xe7, 0x92, 0x34, 0x8d, 0xd7, 0xa3, 0xf3, 0xd3, 0x8e, 0x7e, 0xd0, 0x97, 0x09, 0x01, + 0xb3, 0xd3, 0xeb, 0xde, 0x90, 0xaa, 0x70, 0x87, 0x61, 0x7a, 0x31, 0xdd, 0xa6, 0x8c, 0x7c, 0x2c, + 0x09, 0x07, 0x9b, 0x6c, 0xd0, 0xd4, 0x17, 0x27, 0x88, 0xc9, 0xef, 0xed, 0x4e, 0xe8, 0x65, 0x92, + 0xaf, 0xfb, 0x45, 0x61, 0x9f, 0xa6, 0xd6, 0x08, 0xd9, 0xdc, 0x5e, 0xed, 0x61, 0x45, 0x84, 0x30, + 0xe4, 0x68, 0x8a, 0x6a, 0x68, 0x99, 0x5b, 0xb1, 0x23, 0x75, 0xe0, 0xaa, 0x31, 0x1a, 0x8b, 0x34, + 0xba, 0x3a, 0x7f, 0xff, 0xb9, 0xda, 0x21, 0x48, 0x74, 0xc2, 0x49, 0xe9, 0xcc, 0x87, 0x6a, 0xab, + 0x4a, 0x9d, 0x68, 0x0b, 0x48, 0xe5, 0x70, 0x61, 0xec, 0x5b, 0xe1, 0xe9, 0x09, 0x24, 0xb2, 0xd8, + 0x50, 0x34, 0xe1, 0xd9, 0x5b, 0x9b, 0xeb, 0xe7, 0x2b, 0x71, 0x90, 0xae, 0x76, 0x05, 0x7f, 0x28, + 0x55, 0x7d, 0x02, 0xa1, 0xb9, 0x80, 0x97, 0x75, 0x83, 0xab, 0x29, 0x18, 0x04, 0x89, 0x94, 0xa2, + 0x9e, 0xe8, 0x37, 0xa3, 0x83, 0x11, 0x68, 0x7b, 0xba, 0x66, 0x48, 0xf6, 0xe6, 0x1a, 0xd6, 0xb0, + 0x54, 0x0a, 0xa9, 0x50, 0xd4, 0xfa, 0x53, 0x4e, 0x33, 0x5f, 0x44, 0xe8, 0xca, 0xdc, 0x8c, 0xc9, + 0x10, 0x84, 0x99, 0x85, 0x6d, 0xb5, 0x4c, 0x8b, 0x01, 0x56, 0xb4, 0xe4, 0xa4, 0x0e, 0x3c, 0x62, + 0x14, 0xdb, 0x59, 0x6e, 0xcd, 0xa7, 0x37, 0x70, 0x12, 0x6e, 0x58, 0xe4, 0x52, 0x5b, 0x5a, 0xbf, + 0xc9, 0xab, 0x9c, 0xbc, 0x53, 0x54, 0x02, 0xaf, 0x28, 0x66, 0xf5, 0x1f, 0xb9, 0x5e, 0x88, 0x20, + 0x0e, 0xa8, 0xb9, 0xf0, 0x06, 0x46, 0x82, 0xa9, 0xfd, 0x8e, 0x02, 0xfb, 0xd6, 0x12, 0x2b, 0x56, + 0xe2, 0x2b, 0x7e, 0x8e, 0x8d, 0x74, 0x93, 0x85, 0xe4, 0xe0, 0x78, 0x18, 0x03, 0xbe, 0xe9, 0x34, + 0xc7, 0xa7, 0x9e, 0xce, 0x00, 0x24, 0xd2, 0x76, 0x95, 0xd5, 0x09, 0x20, 0xb8, 0x42, 0xbf, 0xc7, + 0x09, 0x79, 0xb5, 0xe0, 0x01, 0xf9, 0x18, 0xd0, 0x5f, 0x7e, 0x5d, 0xd2, 0xdf, 0xc5, 0xc3, 0xe2, + 0x2a, 0x08, 0x3f, 0xa7, 0x93, 0xe1, 0x2e, 0x96, 0x33, 0xf3, 0xc2, 0x19, 0x1e, 0xdc, 0xa9, 0x14, + 0xd6, 0xc5, 0xd6, 0x91, 0x46, 0x8c, 0xee, 0x36, 0xf8, 0xd8, 0x6b, 0x63, 0x10, 0x1c, 0xb2, 0x21, + 0xae, 0xfc, 0x8c, 0x4b, 0x43, 0x02, 0xf0, 0xce, 0xef, 0xa5, 0x5a, 0x69, 0x81, 0x86, 0x58, 0x67, + 0xeb, 0xd0, 0xbd, 0x53, 0x58, 0x1f, 0xce, 0x15, 0x70, 0x67, 0xbc, 0xc4, 0xbd, 0x65, 0x39, 0x60, + 0xfa, 0x6c, 0x74, 0xbd, 0xd6, 0x45, 0xdb, 0xd5, 0x2f, 0x0c, 0x54, 0x95, 0x53, 0xcf, 0xb4, 0xc0, + 0x64, 0x1f, 0x76, 0xdc, 0xe1, 0x8f, 0x1c, 0x9a, 0x55, 0x14, 0x3c, 0x7d, 0xca, 0xfa, 0xf9, 0x2a, + 0x81, 0x60, 0xbf, 0x88, 0xcc, 0xfe, 0x2d, 0x58, 0x51, 0x0f, 0x0c, 0x3e, 0x2f, 0xfd, 0xeb, 0x14, + 0x3e, 0xc9, 0x06, 0x85, 0xc6, 0xe6, 0x62, 0x51, 0x1f, 0x87, 0xa5, 0xe3, 0x1e, 0x25, 0xb8, 0x3d, + 0x5d, 0xb9, 0xd7, 0x7e, 0x13, 0x72, 0x8b, 0x2b, 0x8a, 0x94, 0x79, 0xef, 0xf7, 0x7c, 0x92, 0xea, + 0xba, 0xee, 0xcf, 0x32, 0x20, 0xc1, 0x27, 0x65, 0xd3, 0xed, 0x1c, 0x95, 0x74, 0x64, 0x51, 0xda, + 0x44, 0x36, 0x1f, 0x8a, 0xb1, 0x8e, 0xd7, 0x33, 0x00, 0x35, 0x5c, 0xc6, 0xf0, 0x28, 0xdc, 0xe6, + 0x20, 0xbd, 0xb1, 0x77, 0x45, 0x84, 0xa8, 0x54, 0x77, 0x1e, 0x6a, 0x08, 0x71, 0xad, 0x3b, 0x16, + 0x6b, 0x3a, 0xd7, 0x75, 0xed, 0x0a, 0x1b, 0x22, 0x61, 0xca, 0xda, 0x84, 0xd2, 0xf4, 0x91, 0x51, + 0xeb, 0x8c, 0x71, 0xa6, 0x1b, 0x36, 0xa5, 0x0a, 0x37, 0x7b, 0x80, 0x0c, 0xcc, 0x52, 0x1a, 0x3a, + 0xb2, 0x1a, 0x28, 0xa7, 0x92, 0xad, 0x99, 0x8f, 0x60, 0xbf, 0x90, 0xbf, 0x25, 0xac, 0x92, 0x41, + 0x1f, 0xd4, 0xfa, 0x04, 0xee, 0xac, 0x27, 0x12, 0xe8, 0xea, 0x0a, 0x2d, 0xbe, 0x45, 0xc6, 0x82, + 0x6a, 0xe1, 0xac, 0x7b, 0x13, 0xa4, 0x9e, 0x50, 0xbd, 0x79, 0xc7, 0xf6, 0xba, 0x2a, 0x69, 0x6e, + 0x5b, 0xc2, 0x7f, 0xda, 0xc4, 0x7c, 0xb3, 0x93, 0xfb, 0x8b, 0x91, 0xa9, 0xb2, 0x23, 0x59, 0x52, + 0x3c, 0x87, 0x31, 0xd7, 0x1d, 0xb5, 0x19, 0xf1, 0x7c, 0x3a, 0x61, 0x51, 0x29, 0x20, 0x35, 0x32, + 0xf1, 0xa7, 0xb2, 0x85, 0xed, 0x27, 0x22, 0xa2, 0x4b, 0xf1, 0x8e, 0x95, 0x43, 0x67, 0x39, 0x8f, + 0xeb, 0x75, 0x36, 0x3b, 0x7a, 0x7b, 0x08, 0xd5, 0x85, 0x28, 0xd3, 0xfb, 0xcb, 0x80, 0x85, 0xa8, + 0x5d, 0x5a, 0x62, 0x89, 0x19, 0x69, 0xbf, 0x1d, 0xc0, 0x2c, 0x1c, 0x38, 0x94, 0xd6, 0xf0, 0x19, + 0xe0, 0x29, 0x75, 0x5b, 0x2d, 0xf2, 0xe0, 0xd6, 0x09, 0x8e, 0xd7, 0xad, 0x68, 0xa7, 0x75, 0x97, + 0x6b, 0xb0, 0x24, 0x63, 0xec, 0xfb, 0xfb, 0x40, 0xfc, 0xe0, 0xd7, 0x7b, 0x05, 0xf0, 0xf7, 0x98, + 0xda, 0xcf, 0xf0, 0x6c, 0xae, 0xdc, 0xe7, 0x22, 0xed, 0xb1, 0x11, 0x86, 0xbd, 0x3f, 0x77, 0xf2, + 0x08, 0x97, 0xac, 0x38, 0x41, 0x4f, 0x10, 0xcb, 0x42, 0xa1, 0xaf, 0x2e, 0xbe, 0x3d, 0xd8, 0x9f, + 0xd7, 0xaf, 0x2a, 0x21, 0x67, 0x61, 0x04, 0x59, 0x6d, 0xc1, 0x55, 0x5c, 0xff, 0xb3, 0xb9, 0x52, + 0x23, 0x43, 0x44, 0xfc, 0x55, 0xdb, 0xd2, 0xd8, 0x48, 0x80, 0x2b, 0x84, 0x62, 0x13, 0xae, 0x91, + 0x97, 0xa0, 0xe2, 0x42, 0x7e, 0x4c, 0x74, 0x71, 0x5f, 0x7d, 0x16, 0x4e, 0x2e, 0xbe, 0xc8, 0xb9, + 0x60, 0x54, 0x3c, 0x10, 0xac, 0xe8, 0x41, 0x94, 0x56, 0x25, 0x7b, 0x1e, 0x33, 0x5c, 0xe6, 0x08, + 0x8c, 0x57, 0x81, 0x2c, 0xd0, 0x8b, 0x50, 0xc6, 0x62, 0xb7, 0x1f, 0x53, 0xbb, 0xc1, 0x30, 0xcd, + 0xde, 0xd3, 0x80, 0x47, 0x60, 0xf2, 0xce, 0xfc, 0xdd, 0x05, 0x87, 0x2c, 0x1e, 0x34, 0xea, 0xec, + 0x13, 0x21, 0xef, 0x1b, 0x70, 0x8f, 0x24, 0xf6, 0x2c, 0x42, 0xdd, 0xc4, 0x94, 0xb8, 0x0b, 0x77, + 0x74, 0x49, 0x0c, 0x8a, 0x8e, 0x0b, 0x02, 0x4e, 0x01, 0xbc, 0x54, 0xa4, 0x99, 0x8a, 0xd4, 0x6f, + 0x98, 0xd2, 0x49, 0xd8, 0xf4, 0x2b, 0x3c, 0x0b, 0xda, 0x8e, 0x70, 0x02, 0xbd, 0x43, 0x4f, 0x9c, + 0x91, 0x43, 0x10, 0x1a, 0x91, 0x69, 0xf2, 0x36, 0xb8, 0xd1, 0x53, 0x09, 0x8c, 0x25, 0x49, 0xb3, + 0x95, 0xbb, 0xb6, 0x1b, 0xb3, 0xd8, 0x68, 0x91, 0x4f, 0xaa, 0x7e, 0xeb, 0x3b, 0x93, 0xe3, 0xef, + 0xad, 0x4c, 0xec, 0xbf, 0xee, 0x9f, 0x1b, 0x63, 0x81, 0xab, 0xb8, 0x79, 0x3a, 0xad, 0xff, 0xf4, + 0x18, 0x13, 0x4d, 0x82, 0x3e, 0x95, 0x65, 0x35, 0x38, 0x22, 0x43, 0xcc, 0x4e, 0x80, 0x71, 0xdc, + 0x24, 0xc6, 0x76, 0x56, 0x06, 0x23, 0x9a, 0x0f, 0xf3, 0xb3, 0xe3, 0xf5, 0x26, 0x2e, 0xca, 0x62, + 0xd1, 0x1a, 0x21, 0x4c, 0x3c, 0x4b, 0xa3, 0x95, 0x32, 0x51, 0x1a, 0xe1, 0xfc, 0xf4, 0xdc, 0x6d, + 0xd3, 0x3e, 0x28, 0x86, 0x1b, 0x1a, 0xce, 0x90, 0x1b, 0xc0, 0x9a, 0xb4, 0x31, 0xe6, 0xe0, 0x31, + 0x89, 0xb8, 0xba, 0xb7, 0xd8, 0xcd, 0x5d, 0x27, 0x14, 0xc7, 0x4a, 0x0e, 0xb7, 0xdd, 0x98, 0x6d, + 0xee, 0xee, 0x8a, 0x1b, 0x36, 0x9a, 0x59, 0x08, 0xa7, 0xd0, 0x7a, 0x2a, 0x02, 0x09, 0x9d, 0x25, + 0x9b, 0x4e, 0x6e, 0x36, 0x71, 0xa1, 0x9a, 0x99, 0x17, 0xe6, 0x56, 0x4f, 0x9a, 0x0b, 0xd8, 0xf4, + 0x5c, 0x76, 0xfa, 0x9c, 0xd8, 0xc2, 0x3f, 0x36, 0x8a, 0xb9, 0x12, 0x6f, 0xde, 0x7b, 0xd0, 0xf4, + 0x21, 0x51, 0x68, 0xe2, 0x9a, 0xc1, 0xfb, 0xdd, 0x7f, 0x17, 0x93, 0xc5, 0x6e, 0xe7, 0x2b, 0x31, + 0xc6, 0x1e, 0xfa, 0x1f, 0xd9, 0x13, 0xca, 0x9d, 0x9f, 0xa3, 0xb6, 0xc0, 0xd7, 0x1d, 0x96, 0xc5, + 0xab, 0xe0, 0xac, 0x78, 0x4c, 0xc4, 0x11, 0x37, 0xca, 0xe6, 0xe7, 0x1d, 0x46, 0x23, 0xc1, 0x2d, + 0xfe, 0x2d, 0xe5, 0x2e, 0xac, 0xd0, 0x24, 0xab, 0xb0, 0x95, 0x75, 0x38, 0x93, 0x75, 0xbd, 0x9d, + 0x7a, 0x12, 0x6b, 0x21, 0xaa, 0x6c, 0x94, 0x26, 0x64, 0x76, 0xa9, 0x6d, 0x2c, 0x3b, 0x0c, 0x4c, + 0x8e, 0x1d, 0xc1, 0x46, 0x28, 0x67, 0xa7, 0xbe, 0xae, 0xff, 0x7a, 0x33, 0xcf, 0xeb, 0x49, 0xde, + 0x6f, 0x1b, 0x4b, 0xeb, 0xe4, 0x01, 0xff, 0x51, 0x68, 0x81, 0xd5, 0x0e, 0x93, 0xcc, 0x16, 0x34, + 0xba, 0x4d, 0xd3, 0xf9, 0x23, 0xe5, 0x24, 0x5a, 0xdb, 0xca, 0xc8, 0xce, 0xb3, 0x8d, 0xe7, 0x4f, + 0x71, 0xf4, 0xe6, 0x87, 0x97, 0xcd, 0x11, 0xbb, 0x3b, 0x58, 0x1d, 0x53, 0x8c, 0xe5, 0xee, 0xc1, + 0x2e, 0x00, 0x90, 0xc8, 0xec, 0x7b, 0x0b, 0x8e, 0x04, 0xb3, 0xe0, 0x96, 0x38, 0x77, 0x12, 0x86, + 0x0f, 0xb7, 0x25, 0x7b, 0xfb, 0x39, 0x6c, 0xdc, 0x20, 0x3b, 0x6e, 0x69, 0x0a, 0xee, 0x70, 0x4c, + 0xc8, 0xb9, 0x4a, 0x5b, 0x88, 0x43, 0x5c, 0x6f, 0x12, 0x8f, 0xe0, 0x7c, 0x50, 0xc8, 0x40, 0x26, + 0x7b, 0xf3, 0x47, 0x91, 0xa4, 0x93, 0xff, 0x41, 0x3a, 0x8f, 0x04, 0xbd, 0x3d, 0x68, 0x64, 0x5a, + 0x88, 0xb6, 0xc1, 0xb7, 0x8c, 0xfd, 0x9e, 0xbf, 0x41, 0x21, 0x03, 0xf5, 0x78, 0x93, 0x6e, 0xd3, + 0x09, 0x7d, 0x9e, 0x41, 0x13, 0x17, 0xf2, 0x32, 0x7b, 0x1b, 0x7b, 0x81, 0xf2, 0x5d, 0x3d, 0x0c, + 0x64, 0xea, 0xb4, 0x18, 0xb1, 0xbc, 0x98, 0xa4, 0x66, 0xd1, 0x1f, 0xb1, 0x8f, 0x5a, 0x0b, 0x14, + 0xb5, 0xa6, 0x53, 0xf6, 0x65, 0x63, 0x43, 0xd8, 0xec, 0x53, 0xb7, 0xe6, 0xa3, 0xd8, 0xfb, 0x77, + 0xfe, 0x88, 0xbf, 0x1b, 0xf8, 0xfc, 0x6d, 0x44, 0x55, 0x73, 0xee, 0x24, 0xab, 0xe6, 0xcc, 0xe7, + 0x48, 0xb8, 0x45, 0x35, 0xbf, 0x94, 0x5a, 0x46, 0x65, 0x0e, 0x68, 0x54, 0x52, 0x6f, 0x0f, 0xea, + 0xf0, 0x31, 0x42, 0xd2, 0xa3, 0x77, 0x57, 0xfc, 0xa8, 0xed, 0xed, 0x4e, 0xd2, 0xca, 0x9c, 0x92, + 0xc7, 0x53, 0x9e, 0x21, 0x67, 0x3b, 0x83, 0xe9, 0x43, 0x24, 0xe0, 0x8c, 0xfa, 0x5e, 0xfe, 0x7e, + 0xe6, 0x17, 0x00, 0xbd, 0x41, 0x29, 0x9f, 0x44, 0x64, 0x4d, 0xe8, 0xe1, 0x2f, 0x22, 0x4c, 0x21, + 0xb1, 0x5b, 0x69, 0xe6, 0x79, 0x7d, 0xf9, 0x62, 0xa0, 0x16, 0xdb, 0xaf, 0xbf, 0x46, 0x37, 0x97, + 0x49, 0x39, 0x7e, 0xdf, 0x2f, 0xb8, 0xbb, 0x88, 0x4d, 0xc7, 0x87, 0x78, 0x54, 0x1d, 0xac, 0xbb, + 0xc6, 0x51, 0xdb, 0x80, 0x5d, 0xe7, 0x2c, 0x30, 0x98, 0x01, 0x2f, 0xeb, 0xd9, 0xa7, 0x24, 0x9c, + 0x64, 0x13, 0x1d, 0xe7, 0x62, 0xa6, 0xb3, 0xb6, 0x9b, 0x7e, 0xa1, 0xc1, 0xed, 0xdc, 0xcf, 0xf1, + 0x99, 0x02, 0xad, 0xb4, 0x18, 0xac, 0xcb, 0x57, 0x33, 0x9c, 0x7b, 0xcb, 0x18, 0x65, 0x21, 0xbb, + 0x25, 0xb7, 0x9f, 0xf3, 0x1e, 0x93, 0x00, 0x7c, 0xac, 0x48, 0xa4, 0x64, 0x3b, 0x46, 0xb9, 0xdd, + 0xe8, 0x02, 0xd6, 0x73, 0xcc, 0xb6, 0x45, 0x80, 0x74, 0x58, 0x73, 0xce, 0x30, 0x48, 0x06, 0xc2, + 0x70, 0xcf, 0xdf, 0x61, 0x13, 0x14, 0x9e, 0xb3, 0xb9, 0x6d, 0x8e, 0x42, 0x7f, 0x70, 0xa0, 0x1f, + 0xdf, 0xab, 0xed, 0x40, 0x43, 0x49, 0x26, 0x61, 0x19, 0xac, 0x14, 0x84, 0x7f, 0x0a, 0x84, 0xbf, + 0xb5, 0x19, 0x1a, 0xaf, 0x66, 0x11, 0xd8, 0x52, 0x59, 0x0c, 0x54, 0x4e, 0xa6, 0xd9, 0x93, 0x0a, + 0x74, 0x0d, 0xd0, 0x0f, 0xe9, 0x15, 0x95, 0x67, 0x8a, 0x60, 0xc8, 0x13, 0xe0, 0xb8, 0x29, 0xd7, + 0x63, 0xe4, 0xb6, 0x3d, 0x85, 0x71, 0x06, 0xa6, 0xcd, 0x67, 0xf6, 0xa2, 0x68, 0x60, 0xbb, 0x64, + 0x01, 0xa5, 0x5d, 0x7d, 0x11, 0xe0, 0xcd, 0x22, 0x7c, 0x5a, 0x5b, 0x2c, 0x94, 0xd8, 0x6e, 0x81, + 0xfc, 0xc7, 0x00, 0xc2, 0xa3, 0xea, 0x1d, 0x69, 0x62, 0xe6, 0xba, 0xda, 0xa5, 0xcc, 0x4e, 0x52, + 0xe6, 0x78, 0x51, 0x86, 0xd6, 0x25, 0x2a, 0x79, 0x20, 0xc9, 0x0a, 0xae, 0xe4, 0x18, 0x20, 0xb7, + 0xe0, 0x43, 0x8d, 0x19, 0xba, 0x1e, 0x95, 0xa4, 0x41, 0x73, 0x52, 0xe4, 0x77, 0xb3, 0x7e, 0x9c, + 0xee, 0x6b, 0xa6, 0x89, 0x31, 0xec, 0xb3, 0x9a, 0x40, 0x45, 0x7a, 0xd0, 0xbe, 0xea, 0x06, 0x83, + 0x8f, 0x27, 0xcc, 0x65, 0xf8, 0x62, 0xb0, 0xe3, 0xc5, 0x13, 0xdc, 0xf0, 0x03, 0xbd, 0x79, 0x24, + 0x66, 0x53, 0xbb, 0x37, 0x6d, 0xe3, 0xe6, 0x18, 0xba, 0x05, 0x3c, 0x85, 0xa3, 0xb6, 0x42, 0xd7, + 0x4a, 0x50, 0xc8, 0xb9, 0x15, 0x81, 0xf1, 0x01, 0x9e, 0xd5, 0x3d, 0x4b, 0xee, 0x4a, 0x64, 0xd2, + 0x42, 0x7d, 0xd0, 0x90, 0x87, 0x41, 0xe8, 0xb8, 0x86, 0xa1, 0x31, 0x01, 0xf0, 0xce, 0xd2, 0x9e, + 0x93, 0xf6, 0x21, 0x42, 0xb9, 0x1a, 0xe6, 0x28, 0x02, 0xf7, 0x52, 0xd4, 0xd2, 0x44, 0x10, 0xfa, + 0x05, 0xc0, 0xf9, 0xab, 0x5f, 0x99, 0x6d, 0x96, 0xb6, 0xab, 0xdb, 0x1b, 0xa3, 0x27, 0xbe, 0x56, + 0x1c, 0xff, 0x14, 0x76, 0x16, 0x52, 0xf8, 0xfd, 0xe8, 0x57, 0x5f, 0xb9, 0x7b, 0xd6, 0x0c, 0xa0, + 0xa0, 0x42, 0xc6, 0xdd, 0xa1, 0x79, 0x2d, 0xcf, 0xa7, 0xdd, 0xe2, 0x23, 0x2f, 0xf5, 0x79, 0x3a, + 0x6f, 0xc3, 0x10, 0xe9, 0x99, 0xc5, 0x1a, 0x27, 0x08, 0x14, 0xdf, 0xce, 0x16, 0x33, 0xf3, 0x91, + 0xd4, 0x5f, 0xb7, 0x06, 0x0b, 0x38, 0x5f, 0xb8, 0x3d, 0x81, 0x83, 0x0f, 0x89, 0xf0, 0x72, 0x19, + 0xf7, 0xb4, 0x28, 0x3a, 0x02, 0x40, 0xc2, 0x48, 0x5f, 0x60, 0x22, 0xca, 0x08, 0xa2, 0x7d, 0x1e, + 0x8b, 0xa3, 0x60, 0xb2, 0xef, 0xdc, 0xa6, 0x6c, 0xe5, 0x35, 0x72, 0xe2, 0x03, 0x58, 0x1b, 0xa3, + 0xe8, 0x2e, 0xc1, 0x2c, 0x8b, 0xbe, 0x46, 0x0a, 0x5c, 0xd6, 0xf8, 0x9a, 0x03, 0xa3, 0xca, 0xd4, + 0x4d, 0x36, 0x47, 0xf2, 0xb9, 0xa6, 0x93, 0xf1, 0xe3, 0x5a, 0x46, 0x4e, 0x83, 0x66, 0x00, 0xf1, + 0x82, 0xb1, 0x98, 0x64, 0xa7, 0x87, 0x0d, 0x99, 0xaa, 0x90, 0x1a, 0xb0, 0x2e, 0x28, 0x05, 0x52, + 0x72, 0x1a, 0x82, 0x2c, 0xae, 0x60, 0xad, 0x28, 0x28, 0x53, 0xa2, 0x63, 0x5a, 0x6a, 0x60, 0x6f, + 0xec, 0x0b, 0x1e, 0x6a, 0xae, 0x75, 0x59, 0x0b, 0x8a, 0x69, 0x63, 0x37, 0xbc, 0x4a, 0xea, 0x95, + 0x7f, 0xa5, 0x41, 0x2f, 0x5e, 0xa3, 0x1e, 0x23, 0x7d, 0x41, 0xf2, 0xc7, 0x8e, 0xc1, 0x93, 0xe4, + 0xe9, 0xf0, 0x28, 0x1c, 0x09, 0x37, 0x62, 0x79, 0x01, 0x66, 0x5e, 0x07, 0x80, 0xc6, 0xc5, 0x85, + 0x63, 0xd5, 0xd9, 0x8e, 0x38, 0x8d, 0x29, 0x0d, 0x75, 0xec, 0x00, 0xa0, 0xa6, 0x58, 0x19, 0x98, + 0x4a, 0x17, 0xc4, 0xf8, 0x02, 0x6d, 0x15, 0x5f, 0xb0, 0x11, 0x28, 0xbe, 0xec, 0x78, 0x4d, 0x94, + 0x10, 0x51, 0x1d, 0xa8, 0x47, 0x40, 0xd3, 0x5c, 0xed, 0xa9, 0x33, 0x09, 0x6b, 0x3d, 0xbc, 0x18, + 0xe6, 0x67, 0x5f, 0x26, 0xee, 0x3a, 0x0e, 0xbe, 0x6f, 0x25, 0xf1, 0x10, 0x73, 0xa6, 0x50, 0x47, + 0x80, 0xed, 0x45, 0x14, 0xb8, 0xa0, 0xaf, 0x85, 0xb7, 0xa7, 0x1f, 0x66, 0xf1, 0xe0, 0x77, 0x51, + 0x71, 0x7a, 0xb1, 0x77, 0xb6, 0xcb, 0x9a, 0x39, 0xe4, 0x6e, 0xee, 0x3a, 0x09, 0xa6, 0x14, 0x24, + 0xc3, 0x28, 0x20, 0xb2, 0x82, 0x86, 0x1c, 0x4b, 0xde, 0x5b, 0xf0, 0x53, 0x11, 0x75, 0x19, 0x3b, + 0x0d, 0x9a, 0xad, 0xfa, 0x2d, 0xbd, 0x0d, 0x6c, 0x4e, 0xba, 0xd2, 0xc6, 0x2e, 0xee, 0xa9, 0x09, + 0xe8, 0xa9, 0x69, 0x44, 0x2e, 0x10, 0x30, 0xb6, 0x45, 0x63, 0xe9, 0x7d, 0x21, 0x55, 0x14, 0x51, + 0x5c, 0xc4, 0x42, 0x67, 0x5a, 0xf7, 0x0e, 0xd4, 0x08, 0xa3, 0xdf, 0x86, 0x9d, 0x16, 0xf0, 0xdc, + 0xa5, 0x85, 0x0d, 0xc2, 0x98, 0x8e, 0x1d, 0xe4, 0xb5, 0x08, 0x76, 0x9e, 0xe9, 0x76, 0x8e, 0x5c, + 0xf6, 0x9b, 0x82, 0xd1, 0xd4, 0x11, 0x46, 0x70, 0x7e, 0xe3, 0x48, 0x73, 0x0e, 0xea, 0xd3, 0x23, + 0xf4, 0x1a, 0x7a, 0x2b, 0xbc, 0xd1, 0x1c, 0x8a, 0xdd, 0xc7, 0xa6, 0xc4, 0xc3, 0x35, 0x69, 0x75, + 0x4c, 0xe8, 0x21, 0xfe, 0x74, 0xb6, 0x24, 0xbc, 0x00, 0xfa, 0x0b, 0x66, 0x8a, 0xb2, 0x48, 0x56, + 0x6b, 0xd6, 0x14, 0x73, 0x3a, 0x0b, 0x78, 0x3c, 0x10, 0xc1, 0xe5, 0x51, 0xc7, 0x44, 0x73, 0x72, + 0x71, 0x23, 0x89, 0x17, 0x59, 0x3c, 0x6a, 0x5b, 0x83, 0x28, 0xde, 0x19, 0xa5, 0x8d, 0x6b, 0x67, + 0x13, 0x9f, 0x97, 0x41, 0xd6, 0x61, 0xbb, 0x66, 0x85, 0xdd, 0xd8, 0xc1, 0xbc, 0x37, 0xeb, 0x9d, + 0xc1, 0xd6, 0x82, 0x13, 0xfe, 0x10, 0x69, 0x36, 0x97, 0xab, 0xd0, 0xef, 0x3e, 0x2b, 0x0a, 0x60, + 0x9a, 0x03, 0x81, 0x89, 0x52, 0x6a, 0xab, 0x28, 0x6d, 0xaf, 0x11, 0xc0, 0x87, 0xf1, 0x1d, 0x94, + 0x0e, 0x93, 0x22, 0x44, 0xc5, 0xd8, 0x2c, 0x40, 0x88, 0x0e, 0xe8, 0x64, 0x05, 0x5d, 0xb1, 0xdb, + 0x2b, 0x55, 0x7d, 0x6f, 0x7a, 0x1c, 0x7d, 0x1e, 0x19, 0x65, 0x2d, 0x87, 0x09, 0xfe, 0xa9, 0x14, + 0x86, 0x8b, 0xfb, 0x03, 0xfb, 0x52, 0x3d, 0x79, 0x21, 0x2b, 0xba, 0xda, 0x1c, 0xaf, 0x41, 0xdf, + 0x21, 0xcf, 0x35, 0x4f, 0xb4, 0x2b, 0x8a, 0xe1, 0x8e, 0x67, 0x76, 0x44, 0x05, 0xf5, 0x4f, 0xc4, + 0xd5, 0x52, 0xa6, 0x85, 0xba, 0xe2, 0x95, 0xc1, 0xf2, 0x8b, 0x5b, 0x0e, 0x30, 0x10, 0x74, 0x71, + 0x6c, 0x2c, 0xec, 0xa4, 0xc6, 0x72, 0xb9, 0xed, 0x86, 0x4e, 0x3f, 0x89, 0x89, 0x52, 0x98, 0xb3, + 0xbd, 0xe0, 0x1e, 0x91, 0xc2, 0x29, 0x2f, 0x54, 0xc1, 0xea, 0x60, 0xe4, 0x3b, 0xda, 0x07, 0x17, + 0xc5, 0xf8, 0x3a, 0x64, 0xcd, 0x2a, 0x50, 0x44, 0x0c, 0x38, 0x19, 0x3b, 0xda, 0x18, 0xc3, 0xc2, + 0x55, 0x60, 0xa0, 0x5d, 0x02, 0xbe, 0xaa, 0x33, 0x76, 0x99, 0xb3, 0x8b, 0x1a, 0xb0, 0x7a, 0xe4, + 0x6c, 0xea, 0x38, 0x9c, 0xa4, 0x5b, 0x69, 0x5d, 0x8d, 0xa8, 0x73, 0xad, 0x3a, 0x03, 0x0c, 0xc1, + 0x3e, 0xab, 0xbf, 0xa2, 0xbc, 0x36, 0x54, 0xf2, 0x8b, 0xa1, 0xa8, 0x65, 0x70, 0x54, 0x5f, 0x23, + 0x5a, 0xd2, 0x6e, 0x4d, 0x0a, 0xfc, 0x59, 0xd1, 0xe9, 0x0d, 0xcd, 0x90, 0xe3, 0xef, 0xe8, 0xf6, + 0x9f, 0x51, 0x4c, 0x93, 0xca, 0xc1, 0x0a, 0x12, 0x41, 0xaf, 0x93, 0x0b, 0xbd, 0x93, 0xb2, 0xd3, + 0xec, 0x5d, 0x1d, 0xad, 0x28, 0x1c, 0xff, 0x1d, 0xcc, 0x70, 0x5d, 0x4f, 0x6e, 0xbb, 0x0a, 0xc0, + 0xd6, 0x5b, 0xa3, 0x93, 0x17, 0x79, 0x40, 0x8f, 0xaa, 0xfa, 0xea, 0x3d, 0x6f, 0x62, 0xa2, 0xcb, + 0xdc, 0x85, 0x7a, 0x69, 0xe6, 0xed, 0xa1, 0xba, 0x52, 0x53, 0x8c, 0xf4, 0x3f, 0x67, 0x17, 0x7e, + 0x83, 0xf4, 0xf4, 0xaf, 0xe9, 0x5a, 0x92, 0xbf, 0x96, 0x4f, 0xee, 0xad, 0x3c, 0xc1, 0x18, 0x08, + 0x2c, 0xa9, 0xf4, 0x23, 0x14, 0x15, 0x00, 0x05, 0xaa, 0xed, 0x28, 0x49, 0x0c, 0x4d, 0x94, 0xa5, + 0x6c, 0xa1, 0x31, 0x88, 0x38, 0x34, 0x64, 0xd2, 0x92, 0x60, 0xca, 0x75, 0x62, 0x09, 0xe3, 0x5c, + 0xe4, 0x75, 0xeb, 0xab, 0xbc, 0x42, 0x9d, 0x6c, 0xd5, 0xf3, 0xca, 0x66, 0x7f, 0xfe, 0x1c, 0x0f, + 0xc6, 0xb0, 0xd4, 0x75, 0xf7, 0x4a, 0x05, 0x0b, 0xa4, 0xfc, 0xc0, 0x70, 0xa4, 0x06, 0x2a, 0x55, + 0x61, 0xc6, 0xbd, 0xb8, 0x23, 0x60, 0xbe, 0xc7, 0x1a, 0x73, 0x3f, 0x2a, 0x1a, 0x50, 0xbb, 0x40, + 0x58, 0x7e, 0x2f, 0xfa, 0xe9, 0x59, 0x9b, 0x85, 0xf4, 0xf6, 0xa3, 0x87, 0x0a, 0xae, 0x08, 0x58, + 0x98, 0xea, 0x4a, 0x80, 0x4f, 0x18, 0x6c, 0x71, 0x84, 0x3b, 0x45, 0xa7, 0xb6, 0x8b, 0x4d, 0x18, + 0x52, 0x28, 0xb3, 0x11, 0x0f, 0x82, 0xd7, 0x62, 0xa2, 0x53, 0xef, 0x77, 0x5d, 0xf6, 0x52, 0x1e, + 0xb1, 0xe7, 0x77, 0xf9, 0x12, 0xfc, 0x35, 0xca, 0xce, 0x7a, 0xd7, 0x4a, 0x9d, 0x7c, 0x7c, 0xe6, + 0xa9, 0xa0, 0x4c, 0x09, 0xb7, 0x49, 0x82, 0x87, 0xfb, 0x33, 0x7c, 0x51, 0x13, 0xd0, 0xf9, 0xdd, + 0x36, 0xa4, 0x6a, 0x56, 0xfc, 0x60, 0xa6, 0x01, 0x26, 0x6c, 0x27, 0x0d, 0xa9, 0x7d, 0xfe, 0x49, + 0x5d, 0xcf, 0xb0, 0xbe, 0xdf, 0x4b, 0xed, 0x83, 0x28, 0x3f, 0x0a, 0xdb, 0xf5, 0x6a, 0x34, 0x3d, + 0x97, 0xa5, 0x10, 0x21, 0xc7, 0x8b, 0x92, 0x5d, 0x1b, 0x41, 0x0b, 0xa2, 0x21, 0xff, 0xf6, 0x2c, + 0x53, 0xb1, 0x9d, 0x47, 0x0b, 0xab, 0x7f, 0xf2, 0xc9, 0x52, 0x08, 0xce, 0x74, 0x73, 0x07, 0x3b, + 0x3d, 0x69, 0xbd, 0xc8, 0xcc, 0xf6, 0x7b, 0xe0, 0x94, 0xcf, 0x83, 0x4e, 0x0e, 0x07, 0x63, 0xd4, + 0xa9, 0xce, 0xf4, 0xc4, 0x34, 0x93, 0x8b, 0xed, 0x88, 0x38, 0x3d, 0x82, 0xc6, 0xa2, 0x42, 0x1e, + 0x18, 0x04, 0xf8, 0x91, 0x5b, 0x1b, 0x10, 0x1a, 0x7e, 0x3c, 0xd4, 0xdd, 0x63, 0x98, 0x88, 0xd4, + 0x56, 0xda, 0x84, 0x5f, 0x29, 0x09, 0xd1, 0x2e, 0x8a, 0x11, 0xc6, 0x9b, 0x3c, 0x39, 0xe9, 0x3a, + 0x1f, 0xfd, 0xb4, 0x09, 0x70, 0xe3, 0x37, 0xee, 0x7a, 0xa9, 0x1d, 0x20, 0x3a, 0x5f, 0xd8, 0xd8, + 0xc8, 0xd6, 0x3e, 0xa2, 0xb9, 0x25, 0x1d, 0x3b, 0x72, 0x85, 0x6c, 0x77, 0x43, 0x4d, 0x94, 0x95, + 0xfb, 0x2a, 0x51, 0xbd, 0xce, 0x28, 0x10, 0x9d, 0x7f, 0x48, 0xe4, 0xb1, 0x56, 0x7e, 0xaf, 0xb1, + 0xa7, 0x8f, 0x20, 0x70, 0x4f, 0x21, 0xdb, 0x76, 0x12, 0xe1, 0x33, 0x96, 0x8f, 0x69, 0xb8, 0x00, + 0x17, 0x07, 0xed, 0x2d, 0x30, 0x65, 0xda, 0xab, 0x2f, 0xf7, 0x65, 0x26, 0x99, 0xd9, 0x3d, 0x23, + 0x19, 0x44, 0x9b, 0x18, 0x39, 0xbc, 0x58, 0x4e, 0xfe, 0x2e, 0x3e, 0xa6, 0x33, 0x7e, 0x87, 0xd6, + 0xae, 0xa6, 0x66, 0x45, 0x2a, 0xed, 0x2d, 0xd5, 0xa8, 0x71, 0xc1, 0xfb, 0xb9, 0x09, 0xf4, 0x66, + 0x95, 0x57, 0x8c, 0x90, 0x20, 0xad, 0x7d, 0x31, 0x02, 0x77, 0xce, 0x76, 0xc1, 0xf7, 0x18, 0xcb, + 0xa3, 0x92, 0x4c, 0xe0, 0xf9, 0x47, 0x55, 0x62, 0xd3, 0xeb, 0x57, 0xbf, 0xe3, 0x39, 0x14, 0xaf, + 0xb0, 0x41, 0x77, 0x7b, 0x48, 0x24, 0x13, 0x51, 0x4f, 0x96, 0x26, 0x99, 0xe2, 0x0c, 0x36, 0xa8, + 0xc0, 0xe9, 0x0f, 0x17, 0x8b, 0xab, 0x88, 0x32, 0xcf, 0xae, 0x50, 0xef, 0x5f, 0xdd, 0x4f, 0xd5, + 0xe8, 0xcb, 0xd2, 0xae, 0x1a, 0x56, 0x37, 0xd8, 0x32, 0xd3, 0x4c, 0x81, 0xac, 0x4a, 0x1c, 0x4a, + 0xbc, 0xc5, 0xbd, 0xf8, 0x26, 0x66, 0x59, 0x46, 0x14, 0x53, 0x09, 0x04, 0x32, 0x73, 0x38, 0x11, + 0x89, 0x8b, 0x60, 0xc1, 0x7c, 0xa7, 0x91, 0x73, 0x90, 0x60, 0x07, 0xff, 0x5f, 0xc0, 0xb9, 0xfb, + 0x1b, 0x51, 0x9a, 0x6c, 0xfa, 0xae, 0x70, 0xed, 0xa5, 0xd5, 0xd3, 0x02, 0x7d, 0xf4, 0x76, 0xe8, + 0x68, 0x1e, 0x53, 0x99, 0xef, 0xbc, 0x82, 0x6b, 0xdd, 0x26, 0x49, 0xf8, 0x66, 0x39, 0xf0, 0x53, + 0xe8, 0x92, 0xad, 0xb8, 0x3a, 0x73, 0x8e, 0x9c, 0x3f, 0x5f, 0x50, 0xdc, 0xb1, 0x3e, 0xad, 0x4a, + 0x8f, 0x51, 0x40, 0xfa, 0x64, 0x38, 0x6f, 0x17, 0x0d, 0xae, 0xcd, 0xc8, 0xbd, 0x0f, 0x8f, 0x3c, + 0x8d, 0x29, 0xe6, 0x7a, 0x5f, 0x90, 0x1c, 0xd0, 0x74, 0x43, 0x3b, 0x3a, 0x28, 0x72, 0x4d, 0x22, + 0xae, 0x9d, 0x32, 0x09, 0x42, 0xb9, 0x06, 0xf4, 0x83, 0x92, 0xc5, 0x8b, 0x43, 0x60, 0x42, 0x16, + 0x49, 0x74, 0xc5, 0x2c, 0x26, 0xf4, 0x98, 0x8e, 0x79, 0x6b, 0x80, 0x22, 0xe8, 0xf3, 0x92, 0x50, + 0x4d, 0x27, 0x94, 0xc7, 0x96, 0xd9, 0xec, 0xb0, 0x08, 0xd2, 0x16, 0x97, 0x7f, 0xd6, 0x4e, 0x73, + 0x23, 0xe9, 0xb7, 0xf5, 0x96, 0xf4, 0xab, 0x16, 0x59, 0x67, 0x8b, 0x63, 0x3f, 0x68, 0xe9, 0x90, + 0x0d, 0x3b, 0x53, 0x87, 0xcf, 0x85, 0x95, 0x3a, 0xd1, 0x0c, 0xd6, 0x83, 0xc8, 0xf3, 0x30, 0x06, + 0x3a, 0x52, 0xd6, 0xab, 0xdd, 0xfa, 0x83, 0x66, 0x07, 0x3e, 0xe0, 0xf5, 0x05, 0x41, 0x69, 0x15, + 0x24, 0x35, 0xe1, 0x68, 0x1f, 0x77, 0x63, 0x48, 0xce, 0x00, 0x0c, 0xbb, 0xa8, 0x03, 0x02, 0xda, + 0xb4, 0xbf, 0x70, 0x0d, 0xee, 0x64, 0x31, 0x41, 0xa7, 0x5d, 0xe6, 0x06, 0xc0, 0x2d, 0x03, 0x0f, + 0xab, 0x17, 0xb3, 0x7a, 0x22, 0x2d, 0x58, 0xd8, 0x86, 0x1b, 0xdc, 0x3d, 0x6e, 0x6d, 0xd5, 0x51, + 0x04, 0x4f, 0x85, 0xd0, 0x60, 0x33, 0xce, 0x43, 0x35, 0x5e, 0x47, 0x2c, 0x8e, 0x48, 0x36, 0x5f, + 0x55, 0xb0, 0x4a, 0x88, 0xd0, 0x23, 0x7a, 0x4e, 0x9c, 0x15, 0xc0, 0x9e, 0x08, 0xa6, 0x37, 0x42, + 0x38, 0x89, 0xc4, 0x41, 0x87, 0x0c, 0x45, 0x68, 0xd7, 0xf2, 0xac, 0xc0, 0xf2, 0x9f, 0xb4, 0x12, + 0x64, 0xd6, 0xc7, 0x4e, 0x11, 0x25, 0xbb, 0x28, 0xce, 0xb9, 0x84, 0x0e, 0xff, 0x87, 0x79, 0xb3, + 0x23, 0x6c, 0xd0, 0x73, 0x9e, 0xdb, 0x34, 0xd9, 0xff, 0x88, 0x51, 0xec, 0x02, 0x6b, 0x1c, 0xe7, + 0x5a, 0x64, 0xe2, 0x99, 0x9c, 0x56, 0x91, 0x99, 0xca, 0xe5, 0x33, 0x6d, 0x1d, 0xd1, 0x6f, 0x63, + 0x57, 0x49, 0x25, 0xb2, 0x94, 0xcd, 0x6d, 0xd8, 0x47, 0xbb, 0xf4, 0x23, 0xc6, 0x1c, 0x96, 0xb9, + 0x2e, 0x3f, 0xbc, 0x37, 0xad, 0x5e, 0xf1, 0x39, 0xf2, 0xce, 0xe0, 0xbf, 0x64, 0xe7, 0xb5, 0x43, + 0xc3, 0x49, 0x71, 0xa4, 0x4c, 0xa8, 0x76, 0xd6, 0x28, 0x68, 0xd2, 0x17, 0xbe, 0x0e, 0xfd, 0x82, + 0xf5, 0x6b, 0xde, 0xab, 0x2f, 0x0a, 0x2b, 0xf8, 0xb8, 0xdf, 0xe9, 0x66, 0x2a, 0xa0, 0x3a, 0x1f, + 0x41, 0x71, 0xe1, 0x9b, 0x04, 0xd8, 0x1a, 0x66, 0xac, 0x0a, 0x03, 0x2f, 0x9f, 0x8b, 0x23, 0x1f, + 0xf0, 0xe9, 0x0c, 0xa3, 0x15, 0xdf, 0x32, 0xec, 0x52, 0x04, 0x5b, 0x70, 0xbf, 0xf3, 0x90, 0x3e, + 0x68, 0xf5, 0x94, 0x8b, 0xd9, 0x7b, 0xe3, 0xbb, 0x70, 0x7f, 0x7b, 0xf5, 0x92, 0x05, 0x97, 0x5c, + 0x65, 0xf8, 0x32, 0xc7, 0x36, 0xf1, 0x5b, 0xce, 0xc6, 0x58, 0x5b, 0x2d, 0x06, 0x16, 0x18, 0xa4, + 0xf8, 0x72, 0x02, 0xef, 0xb3, 0x3a, 0x2e, 0x9b, 0xaa, 0x33, 0x37, 0xb4, 0xc1, 0x2a, 0x2b, 0x05, + 0x63, 0x98, 0xbd, 0x46, 0x97, 0xf2, 0xb3, 0xf7, 0xe2, 0xef, 0xe4, 0x6b, 0xa8, 0xfd, 0xb6, 0x90, + 0x38, 0xe7, 0x10, 0x2a, 0x04, 0xb0, 0x56, 0x4d, 0x55, 0x49, 0xe8, 0x23, 0xb9, 0x80, 0xb0, 0x37, + 0xa5, 0x07, 0xc1, 0x8f, 0x86, 0x47, 0x13, 0x7d, 0x79, 0x4d, 0xc2, 0x1e, 0x0e, 0xe4, 0xb6, 0x8f, + 0xcf, 0x0c, 0xd3, 0xea, 0x9b, 0xa9, 0x22, 0x5f, 0xa4, 0x53, 0xba, 0x80, 0xf9, 0x8b, 0xaf, 0x73, + 0xa6, 0xad, 0xd6, 0x3a, 0xdd, 0xe9, 0x6a, 0xed, 0xbd, 0x53, 0x2b, 0x54, 0x78, 0xee, 0xcc, 0xea, + 0xdb, 0xde, 0xf3, 0x10, 0xc3, 0xeb, 0x8f, 0xf0, 0xba, 0xb6, 0x69, 0x41, 0x2f, 0xe5, 0x3c, 0xc5, + 0x11, 0xc8, 0x64, 0x12, 0x51, 0xe2, 0x35, 0x6a, 0x8d, 0x47, 0xe2, 0xe5, 0xe8, 0xc0, 0x4e, 0x0d, + 0x84, 0x62, 0x0c, 0x01, 0xfc, 0x86, 0xfa, 0xb6, 0xe5, 0xb5, 0x3e, 0xc0, 0x5b, 0x4e, 0xbe, 0xf7, + 0xd1, 0x0c, 0x0b, 0xec, 0x83, 0xa3, 0xb6, 0xf8, 0x15, 0x6f, 0x78, 0x83, 0x52, 0xe8, 0x05, 0x49, + 0xf5, 0x8a, 0xe8, 0x07, 0x51, 0x58, 0x24, 0x9f, 0xcc, 0x58, 0x78, 0x8d, 0xcf, 0x9f, 0x52, 0xe7, + 0x29, 0xde, 0xdd, 0x4e, 0xb7, 0xfd, 0xf7, 0xc2, 0x76, 0x80, 0xa4, 0xf4, 0xcc, 0xa5, 0x5b, 0x2e, + 0x14, 0x9d, 0xe5, 0x31, 0xdd, 0x7a, 0x01, 0xa5, 0x98, 0x71, 0x19, 0xb4, 0x05, 0xf0, 0xdb, 0x64, + 0x8f, 0xf3, 0x5e, 0x76, 0x4a, 0xab, 0x58, 0x7e, 0x94, 0x39, 0xe9, 0x27, 0xd6, 0xf8, 0x0f, 0x91, + 0xa7, 0x45, 0x06, 0x7e, 0x34, 0x29, 0x74, 0x95, 0x66, 0x9f, 0x1a, 0x32, 0xd2, 0x23, 0x8b, 0x0e, + 0x61, 0x92, 0xfe, 0x45, 0x88, 0x69, 0x54, 0x89, 0x37, 0x89, 0xe7, 0x24, 0xe6, 0x91, 0xb9, 0x44, + 0xaa, 0x96, 0x8e, 0x23, 0x52, 0x1f, 0x07, 0x7a, 0xfd, 0xb5, 0x1f, 0xa0, 0x39, 0xcb, 0x4b, 0x09, + 0x54, 0x92, 0xe3, 0x7c, 0x41, 0x20, 0x34, 0xd2, 0x89, 0xeb, 0x4f, 0x6e, 0xcd, 0xc4, 0xc9, 0x62, + 0x93, 0xd7, 0x1c, 0x22, 0x69, 0xd8, 0xa2, 0xb4, 0x5c, 0x22, 0x83, 0x60, 0x63, 0xab, 0xc2, 0xc6, + 0xf8, 0xe3, 0x56, 0x57, 0x44, 0x8f, 0x5e, 0x86, 0x13, 0x65, 0xa2, 0x92, 0xb5, 0xab, 0x99, 0x14, + 0x08, 0xa4, 0x63, 0xd1, 0x99, 0xac, 0xb2, 0x96, 0x4b, 0xb9, 0x57, 0xdd, 0xa8, 0x00, 0x4e, 0xf7, + 0x40, 0x91, 0x78, 0x6b, 0xf7, 0x37, 0x48, 0x2a, 0x97, 0x3a, 0x5b, 0x18, 0x87, 0x0d, 0xc3, 0x59, + 0x69, 0xef, 0xcf, 0xc9, 0x5d, 0x6a, 0x1b, 0x59, 0xb0, 0x17, 0x44, 0x85, 0x4a, 0x0b, 0x4a, 0x54, + 0x4f, 0x70, 0xbb, 0x01, 0x3d, 0x62, 0xa2, 0x38, 0x19, 0x47, 0x9d, 0x3c, 0x63, 0xfc, 0xe5, 0x81, + 0x0f, 0xc2, 0xf9, 0xa0, 0x7f, 0xc6, 0xfa, 0x8c, 0xea, 0x44, 0xbb, 0x22, 0xda, 0xcc, 0x22, 0x36, + 0x32, 0x8e, 0x97, 0xee, 0x16, 0x34, 0xf6, 0xf5, 0x3f, 0xaf, 0xf2, 0x1e, 0x93, 0xa2, 0xa1, 0xfc, + 0xa8, 0x60, 0x1d, 0xb6, 0x03, 0x02, 0x1d, 0x66, 0x2e, 0x70, 0xcc, 0x9e, 0xfc, 0xec, 0x84, 0x6c, + 0x2a, 0xe0, 0x84, 0x18, 0xc3, 0x0f, 0x14, 0x5c, 0x52, 0xc4, 0x8d, 0xec, 0x28, 0x61, 0xa4, 0xfc, + 0x09, 0x20, 0x30, 0xd4, 0xc6, 0xca, 0xe0, 0x5d, 0x0c, 0xdb, 0xd7, 0xae, 0x9e, 0x2c, 0x36, 0xb6, + 0x57, 0xbb, 0xa3, 0xe0, 0x7e, 0xc0, 0xb3, 0xe1, 0x06, 0x13, 0x5f, 0xba, 0x9d, 0x3c, 0x86, 0x08, + 0x32, 0x5c, 0xc6, 0xe7, 0xb9, 0x85, 0x0c, 0x7b, 0xf4, 0x81, 0x2d, 0x48, 0x6c, 0x9a, 0x11, 0xb2, + 0x5b, 0xbf, 0x13, 0x5e, 0xb0, 0x65, 0x87, 0xca, 0x5e, 0x79, 0xb5, 0xde, 0x17, 0xfa, 0xb8, 0x3c, + 0xb3, 0xb8, 0xfa, 0x75, 0x32, 0xd9, 0x82, 0xc8, 0xd2, 0xaf, 0x28, 0x63, 0xff, 0x44, 0xed, 0x58, + 0x85, 0x28, 0x83, 0x72, 0xf1, 0x9d, 0x17, 0x81, 0x60, 0x58, 0xf0, 0xef, 0x76, 0x56, 0x08, 0x73, + 0x40, 0x2b, 0xa0, 0x2a, 0xbd, 0x51, 0xe3, 0x58, 0x05, 0xe9, 0x50, 0x3c, 0x3a, 0xeb, 0x0f, 0x75, + 0x7a, 0xb4, 0xe5, 0x52, 0xea, 0xcb, 0x97, 0xf1, 0xfb, 0x1c, 0x1a, 0x31, 0xc3, 0x36, 0x56, 0x91, + 0xdf, 0xb4, 0xa5, 0x9e, 0x91, 0x3e, 0xcc, 0x94, 0x2a, 0x43, 0xa6, 0x20, 0xc4, 0x81, 0x6d, 0xff, + 0x5e, 0x39, 0x6a, 0xa7, 0x31, 0xf3, 0x1d, 0xe7, 0xbd, 0x38, 0xd4, 0xef, 0x07, 0x35, 0x29, 0x9f, + 0xa0, 0x51, 0xe6, 0x61, 0x78, 0x3e, 0x0e, 0x3f, 0xad, 0x55, 0xa2, 0xe7, 0x93, 0xf7, 0x56, 0x36, + 0x73, 0x18, 0x2c, 0x51, 0x13, 0x8d, 0x19, 0x68, 0x81, 0x8a, 0x88, 0x15, 0xb5, 0xa2, 0x97, 0x0f, + 0x07, 0xe5, 0x47, 0xe5, 0x77, 0x0b, 0xed, 0x25, 0x85, 0x1f, 0x90, 0x81, 0x31, 0x7a, 0x39, 0xb5, + 0xd4, 0xc3, 0x92, 0x46, 0xba, 0x93, 0x1d, 0x97, 0x99, 0x4a, 0x8d, 0x8b, 0x45, 0x5e, 0x9c, 0xb7, + 0x68, 0x98, 0x06, 0x59, 0x57, 0x36, 0x67, 0xcd, 0xbd, 0xee, 0x92, 0x22, 0x2b, 0x48, 0xbe, 0x80, + 0xfb, 0x8d, 0x00, 0xd8, 0xb7, 0xda, 0x8a, 0x6d, 0x62, 0xac, 0xe4, 0xa0, 0x9b, 0x80, 0x26, 0x19, + 0x91, 0x85, 0x00, 0x00, 0x83, 0x58, 0xc1, 0xd8, 0x7f, 0x62, 0x5b, 0x1f, 0x30, 0xe8, 0x83, 0xd6, + 0xa8, 0x3a, 0xfb, 0x20, 0x8f, 0xac, 0x41, 0xdf, 0x43, 0x4b, 0xfb, 0x7d, 0xb6, 0x53, 0x62, 0x72, + 0xc9, 0x91, 0xe5, 0x0e, 0x5e, 0xc0, 0xf8, 0xc5, 0x08, 0xce, 0xa9, 0x43, 0xc4, 0xb8, 0x47, 0x72, + 0xb3, 0x32, 0x60, 0x24, 0x2e, 0xe5, 0x8b, 0xbf, 0xc1, 0x2b, 0x8b, 0x78, 0x7b, 0x97, 0xb7, 0xb2, + 0xa7, 0xec, 0x66, 0xca, 0x7e, 0x8e, 0x5d, 0xa3, 0x8c, 0x21, 0xc1, 0x04, 0x5a, 0x3c, 0xe1, 0x4b, + 0xb5, 0xf9, 0xcb, 0xc5, 0x8a, 0xa8, 0xac, 0x46, 0xa2, 0x97, 0xe5, 0x0b, 0x5e, 0x91, 0xe6, 0x6c, + 0xff, 0xaa, 0x7e, 0xcd, 0x44, 0xe5, 0xf7, 0x04, 0x67, 0x43, 0x91, 0x37, 0x00, 0x85, 0xc2, 0xa2, + 0xa7, 0xb7, 0x7e, 0x91, 0x61, 0xb5, 0x87, 0xe1, 0xcc, 0xab, 0x0f, 0xc4, 0x91, 0x0d, 0x3a, 0xb5, + 0x4e, 0xf0, 0x7e, 0x6d, 0x1c, 0xe3, 0x6a, 0x79, 0xd1, 0xe8, 0x0b, 0xc4, 0x2d, 0xe0, 0x9f, 0xbd, + 0xde, 0x20, 0x02, 0x0d, 0x25, 0xcc, 0x3f, 0x5b, 0xe7, 0xc4, 0xb8, 0x51, 0xde, 0x89, 0x7d, 0x1e, + 0x33, 0x13, 0x5e, 0x76, 0x7f, 0x9d, 0x73, 0x97, 0x0a, 0x85, 0xd6, 0xc2, 0xac, 0xc2, 0xef, 0x3e, + 0x67, 0x23, 0x61, 0x46, 0xe8, 0xab, 0x9f, 0xa4, 0x60, 0x27, 0x89, 0x69, 0xa3, 0x8b, 0x56, 0xad, + 0x4d, 0x09, 0x09, 0xea, 0x3c, 0xa6, 0xe9, 0xb4, 0xd8, 0x0c, 0x05, 0x50, 0x5d, 0x3a, 0x77, 0x90, + 0x61, 0x7d, 0xd9, 0x14, 0xb4, 0x94, 0x93, 0x1f, 0xfc, 0x0d, 0x21, 0x58, 0x5e, 0x78, 0x03, 0x95, + 0xa3, 0xe6, 0x61, 0xee, 0x6c, 0xd9, 0xed, 0x8b, 0x9f, 0x47, 0xae, 0xf6, 0x07, 0x7d, 0x89, 0x69, + 0x61, 0xa2, 0x19, 0xb4, 0x2f, 0x60, 0xf2, 0x8e, 0x0e, 0xbb, 0x64, 0x84, 0x59, 0x1c, 0x8a, 0x25, + 0x01, 0x31, 0xfa, 0x29, 0xf0, 0x95, 0xaf, 0xc1, 0x3a, 0x8a, 0x9b, 0x63, 0x9c, 0xe3, 0x6b, 0x75, + 0x8a, 0x79, 0xd2, 0xd2, 0xf5, 0x25, 0x18, 0x08, 0x17, 0x09, 0xa6, 0x46, 0x56, 0x5a, 0xe9, 0xcb, + 0xb5, 0xa3, 0x9c, 0xc4, 0x7e, 0x23, 0xf7, 0x3a, 0x43, 0xa8, 0x90, 0x48, 0x8a, 0x5d, 0x55, 0x08, + 0x86, 0x90, 0x13, 0x73, 0x37, 0x51, 0xa4, 0xac, 0xb4, 0x38, 0xff, 0xaf, 0x5f, 0x61, 0x6b, 0x2d, + 0xb3, 0xe9, 0x88, 0x73, 0x7a, 0xc3, 0x5e, 0x9e, 0x7c, 0x35, 0x83, 0xf8, 0x83, 0xb3, 0xbd, 0x10, + 0x85, 0x63, 0x8d, 0x6e, 0xf7, 0x23, 0xc4, 0x4a, 0x08, 0x3a, 0x95, 0x42, 0xbc, 0x3d, 0x21, 0xc1, + 0x4e, 0xcc, 0x51, 0xe7, 0x82, 0x20, 0x48, 0x69, 0x6f, 0x95, 0x74, 0x45, 0x3b, 0x36, 0x7d, 0xef, + 0x4d, 0xa4, 0x94, 0x24, 0xa8, 0x92, 0x43, 0x5f, 0x9b, 0xa6, 0x04, 0x2d, 0x72, 0x95, 0x2b, 0x06, + 0x11, 0x22, 0x2c, 0x59, 0x38, 0x5c, 0x7f, 0xc1, 0x07, 0xc8, 0xcf, 0x0f, 0x00, 0xae, 0x59, 0xad, + 0xf5, 0xbe, 0x1a, 0x23, 0x79, 0xfb, 0xbb, 0x32, 0x0c, 0x9c, 0x5d, 0xb0, 0xc1, 0x76, 0x84, 0x99, + 0x69, 0xf2, 0x2a, 0xf4, 0xb4, 0x49, 0x38, 0x14, 0x9f, 0x05, 0x10, 0xba, 0xd8, 0x3c, 0xc1, 0x6f, + 0x3a, 0x17, 0x59, 0xf0, 0x47, 0xf7, 0x10, 0xb8, 0x1a, 0x31, 0x6a, 0x6c, 0xa5, 0x07, 0x5c, 0x1b, + 0x34, 0x5f, 0xcc, 0x5f, 0xa1, 0x66, 0x68, 0x43, 0x8f, 0x82, 0xfc, 0xf0, 0x60, 0xa5, 0xa9, 0xc3, + 0xef, 0xe6, 0x7b, 0x3e, 0x30, 0xb6, 0x48, 0xd1, 0x4d, 0xa9, 0x09, 0xcd, 0xc5, 0x70, 0x0c, 0x07, + 0xe7, 0x37, 0x32, 0x8f, 0xff, 0x34, 0xa3, 0xea, 0x8f, 0xcb, 0x88, 0xa4, 0xe8, 0xf0, 0xb8, 0x2c, + 0xc2, 0x0a, 0x00, 0x1b, 0x9d, 0x62, 0x5e, 0xd5, 0x07, 0x84, 0x72, 0x7d, 0x93, 0x11, 0x03, 0x27, + 0xae, 0x46, 0x39, 0xf8, 0xdd, 0x58, 0x49, 0xaa, 0x5d, 0x84, 0x09, 0x84, 0xc3, 0x65, 0x53, 0xbf, + 0x3f, 0xa5, 0xae, 0xe3, 0x75, 0xd2, 0xe5, 0xd1, 0xb0, 0xf6, 0xbc, 0x85, 0xac, 0xa4, 0x21, 0x61, + 0xfb, 0x6d, 0xc0, 0x73, 0x17, 0xe5, 0x79, 0xc4, 0x45, 0xf7, 0xfc, 0x35, 0x73, 0xf8, 0x62, 0xa8, + 0xd1, 0x2f, 0x4d, 0x71, 0xfc, 0x7c, 0x2c, 0x60, 0xb0, 0x2d, 0x47, 0x6d, 0x54, 0x26, 0x9a, 0xc7, + 0x68, 0xc0, 0xf4, 0x8b, 0xb7, 0x4b, 0x06, 0xaf, 0x5e, 0xc6, 0x0f, 0x45, 0xa8, 0x3b, 0x43, 0x99, + 0x23, 0x23, 0x5c, 0xd8, 0x08, 0x09, 0x5e, 0x09, 0x54, 0x5e, 0xc6, 0x96, 0x6c, 0x24, 0xf5, 0xa2, + 0x29, 0xe1, 0x3b, 0x51, 0x89, 0xa5, 0x7e, 0xe5, 0x2b, 0xfa, 0x75, 0xa2, 0xf1, 0x49, 0x93, 0xd5, + 0xf2, 0x5a, 0xe1, 0xec, 0xd2, 0x39, 0xe5, 0x55, 0x8f, 0xfd, 0x55, 0x42, 0xf8, 0xbf, 0x06, 0xb0, + 0x5f, 0xea, 0xd8, 0x08, 0x8b, 0xa4, 0xcb, 0xf0, 0xb9, 0x9d, 0x0b, 0x1d, 0x31, 0x29, 0xe1, 0x3d, + 0x77, 0xb1, 0xe8, 0xe9, 0x10, 0x69, 0xb8, 0x13, 0x94, 0x5d, 0x28, 0xe6, 0xe2, 0xdb, 0x7c, 0x3c, + 0x9c, 0xf2, 0xc6, 0x69, 0x9d, 0xf9, 0xdb, 0x84, 0xb1, 0xfb, 0x26, 0x23, 0x01, 0x81, 0xac, 0xed, + 0xaf, 0xbc, 0x20, 0xc0, 0x63, 0x40, 0x00, 0xe7, 0x93, 0x55, 0xdb, 0x53, 0x39, 0x2d, 0xf6, 0x8e, + 0x01, 0xcd, 0x3f, 0x06, 0x68, 0x60, 0xa3, 0xc3, 0xbe, 0x60, 0xb5, 0x00, 0x24, 0x33, 0x75, 0x17, + 0xdd, 0xdb, 0x49, 0xb1, 0xb6, 0x5d, 0x38, 0xa6, 0x80, 0x6c, 0x9c, 0x09, 0x9d, 0x14, 0x64, 0xed, + 0x60, 0xed, 0xaf, 0x76, 0xd8, 0x37, 0x31, 0x81, 0xcb, 0xe6, 0x57, 0x55, 0xf3, 0x73, 0x80, 0xbd, + 0xb9, 0xbc, 0xfa, 0x5a, 0x28, 0x81, 0x27, 0xb5, 0x56, 0xd5, 0x74, 0x88, 0x36, 0x54, 0xbd, 0xda, + 0x35, 0x4a, 0x91, 0xa5, 0x8f, 0x3e, 0x91, 0x71, 0x34, 0x26, 0xec, 0xaa, 0xe0, 0x5f, 0x1e, 0x87, + 0x8b, 0x0a, 0xd9, 0x97, 0x1c, 0xd3, 0x01, 0x5c, 0x45, 0xdb, 0x28, 0x23, 0x0e, 0x7e, 0x12, 0xc0, + 0xc4, 0x79, 0x6c, 0x81, 0x8b, 0xd4, 0xa3, 0x40, 0x25, 0x5f, 0x16, 0x3f, 0xb1, 0x10, 0xa7, 0x53, + 0x4a, 0xe2, 0x0c, 0x6e, 0x93, 0x07, 0x2a, 0xc0, 0x5a, 0x6f, 0x0d, 0xb1, 0x62, 0x71, 0xff, 0xc3, + 0x17, 0xbc, 0x1b, 0xeb, 0x92, 0x05, 0x80, 0xb9, 0x7b, 0x90, 0xef, 0xbe, 0x06, 0x22, 0x90, 0x91, + 0x69, 0xb8, 0xde, 0x71, 0xae, 0x12, 0x35, 0x31, 0xc3, 0x03, 0x23, 0x6e, 0x53, 0x08, 0x66, 0xcd, + 0x4f, 0x35, 0xf4, 0xd1, 0x35, 0xd1, 0x80, 0x2f, 0x67, 0xdb, 0xf4, 0x1e, 0x3c, 0x17, 0xba, 0x5b, + 0xe5, 0xf4, 0x97, 0x25, 0x06, 0x01, 0x12, 0x92, 0xbe, 0x1f, 0x6d, 0x9d, 0xb2, 0x59, 0x78, 0x5b, + 0xc4, 0x4a, 0xd6, 0x75, 0x2d, 0x1e, 0xf9, 0x2b, 0x51, 0xea, 0x6d, 0xf5, 0x71, 0x55, 0x36, 0xb8, + 0xc7, 0x98, 0x24, 0xa2, 0xce, 0x9d, 0x29, 0x60, 0x0d, 0x48, 0x8d, 0x67, 0x0f, 0x55, 0xa5, 0x78, + 0x5a, 0x4f, 0xbc, 0x79, 0x16, 0x97, 0xcb, 0x78, 0xc5, 0xde, 0x71, 0xc5, 0x54, 0x04, 0x98, 0x93, + 0xd9, 0x01, 0xeb, 0x35, 0x70, 0xe2, 0x22, 0x92, 0x2d, 0x99, 0x0c, 0xd1, 0xcc, 0x0c, 0x76, 0xd6, + 0xea, 0x4c, 0x27, 0x7b, 0x1a, 0x93, 0x95, 0x09, 0xd8, 0x47, 0x0b, 0x75, 0xa4, 0xad, 0x4b, 0x4e, + 0x12, 0xdd, 0xd4, 0x26, 0x78, 0x8a, 0x52, 0xb7, 0x93, 0x7c, 0x42, 0xe3, 0x90, 0xed, 0x2a, 0x94, + 0xc6, 0xe4, 0x70, 0x4c, 0x88, 0x33, 0x8b, 0x3f, 0xef, 0x3a, 0xff, 0xd2, 0x13, 0x25, 0xad, 0x28, + 0x0b, 0xb9, 0x06, 0x91, 0x7c, 0x63, 0x02, 0xda, 0x18, 0x85, 0x4e, 0x8f, 0x79, 0x4c, 0xbf, 0x24, + 0xd7, 0x24, 0x3d, 0xfd, 0x21, 0x90, 0xe5, 0xd4, 0x79, 0xc9, 0x53, 0xef, 0x05, 0xda, 0x36, 0x45, + 0xb4, 0x37, 0xa0, 0x27, 0x20, 0x06, 0x51, 0x87, 0x7e, 0xc9, 0x49, 0x7c, 0xc3, 0x44, 0x4b, 0xcb, + 0xdd, 0x13, 0xf3, 0x3d, 0xc5, 0x27, 0xd5, 0x11, 0x09, 0x65, 0xf7, 0x9a, 0xf9, 0x97, 0x55, 0x53, + 0x2f, 0x88, 0xd4, 0xc2, 0x54, 0xaa, 0xa0, 0xfd, 0x17, 0x9e, 0x00, 0x96, 0x32, 0x5d, 0x51, 0x49, + 0x14, 0x74, 0xe5, 0xdc, 0x8b, 0x7d, 0xb4, 0x01, 0x93, 0xa0, 0xe4, 0x55, 0x10, 0xb6, 0x5c, 0x5c, + 0x7e, 0x86, 0xdd, 0x8b, 0x7c, 0x35, 0x08, 0xdd, 0x32, 0x52, 0x4d, 0x62, 0xad, 0xb2, 0x8f, 0x18, + 0x74, 0x85, 0xdf, 0x01, 0x50, 0xb6, 0xbb, 0x5c, 0xce, 0xdd, 0x57, 0xc3, 0x5b, 0x5d, 0xb1, 0x41, + 0x75, 0x36, 0x96, 0x33, 0xc9, 0x3d, 0x13, 0x11, 0x02, 0x7f, 0xc1, 0x3f, 0x8a, 0xa3, 0x2c, 0x4d, + 0x51, 0x4c, 0x5f, 0x4c, 0x79, 0x59, 0x2a, 0xae, 0x64, 0x77, 0xac, 0x9a, 0x69, 0xd5, 0xa6, 0x19, + 0x45, 0xfc, 0x67, 0x5b, 0x37, 0xda, 0x40, 0x78, 0x28, 0x96, 0x00, 0x93, 0x49, 0xb2, 0x2d, 0x82, + 0x7c, 0xf0, 0xb5, 0xa3, 0x56, 0xac, 0x15, 0x8a, 0x75, 0xe8, 0x9a, 0x7a, 0x81, 0x75, 0x3c, 0x98, + 0x42, 0x84, 0xba, 0x85, 0xfd, 0xbc, 0x22, 0x6d, 0x64, 0xc9, 0x94, 0x72, 0x84, 0xaf, 0x7d, 0x7c, + 0x0e, 0xcd, 0xe5, 0x75, 0x46, 0x8f, 0xd7, 0x51, 0xfe, 0x36, 0x3c, 0xc2, 0xa7, 0x12, 0xdd, 0xb4, + 0x07, 0x7a, 0x50, 0x2d, 0xaa, 0x8b, 0x15, 0x7d, 0x4b, 0xb1, 0x68, 0x8f, 0x6d, 0xa7, 0x11, 0xd0, + 0xab, 0xce, 0xda, 0x2d, 0x21, 0x54, 0x88, 0xb8, 0x8e, 0x41, 0x3e, 0x32, 0x8e, 0x1b, 0xbe, 0x58, + 0x60, 0x3f, 0x26, 0x34, 0x7b, 0x3f, 0x66, 0x15, 0x35, 0x9f, 0x9e, 0xa7, 0x29, 0xc5, 0x56, 0xe4, + 0xf2, 0x63, 0xd9, 0xac, 0x4e, 0x32, 0x43, 0x92, 0x2e, 0x3b, 0x27, 0x59, 0x94, 0xb3, 0x88, 0x25, + 0x70, 0xac, 0xb8, 0x00, 0xa2, 0x6d, 0xbf, 0x21, 0x71, 0x99, 0x14, 0x00, 0xd7, 0xaf, 0xe3, 0x3c, + 0x34, 0x19, 0x76, 0xa3, 0xe4, 0xb7, 0xe6, 0xd9, 0x47, 0xd1, 0xc9, 0x89, 0x1d, 0x13, 0x97, 0x4a, + 0x61, 0x99, 0x1e, 0x1b, 0xd3, 0xa3, 0xdd, 0xa3, 0xd9, 0x79, 0xd7, 0x77, 0x7c, 0x3c, 0xf8, 0x97, + 0x94, 0xaa, 0x64, 0xe3, 0xc1, 0x5d, 0x83, 0x7a, 0xda, 0xdd, 0xf1, 0x35, 0xa2, 0x25, 0xa9, 0x33, + 0x92, 0x18, 0x4c, 0xa8, 0xc7, 0xed, 0x90, 0x5a, 0x6f, 0x82, 0x24, 0xad, 0x9a, 0x3b, 0x2f, 0xea, + 0x9d, 0x6e, 0x59, 0x9d, 0xda, 0x03, 0xaa, 0xd5, 0xfe, 0x63, 0x51, 0xe6, 0xe1, 0x65, 0x21, 0xf9, + 0x6a, 0x25, 0xd5, 0x4f, 0x85, 0x22, 0x0a, 0xb3, 0x38, 0x25, 0xef, 0x00, 0xd0, 0x59, 0xf1, 0x67, + 0xfb, 0x5d, 0xa4, 0xcb, 0xab, 0x5b, 0x45, 0xde, 0x8c, 0xf8, 0x2a, 0x0b, 0xaf, 0xe7, 0xde, 0x59, + 0xfb, 0xa9, 0x49, 0xe8, 0x0a, 0xcd, 0x4f, 0xe9, 0x04, 0x14, 0xf0, 0x9e, 0x5e, 0xad, 0x2d, 0x44, + 0xda, 0x81, 0x3f, 0xd9, 0xa2, 0xa4, 0x3c, 0x88, 0x21, 0x3e, 0xd6, 0x2d, 0x73, 0xd4, 0x18, 0xc9, + 0x61, 0xa9, 0x26, 0x7e, 0x4b, 0x06, 0x16, 0xce, 0x8e, 0x7c, 0x10, 0xc5, 0x35, 0x14, 0xcc, 0x09, + 0x14, 0x5e, 0x17, 0x37, 0x21, 0x40, 0x8b, 0x4a, 0x3a, 0xc2, 0xda, 0x46, 0x0c, 0xfc, 0x0d, 0xf9, + 0xbb, 0x9c, 0x93, 0x19, 0x5f, 0xf1, 0x9f, 0x08, 0xaa, 0x33, 0xa6, 0xdd, 0x63, 0xa3, 0x23, 0x39, + 0x7d, 0x4c, 0x4a, 0x98, 0xd9, 0xf1, 0xe5, 0x4e, 0xfa, 0xb9, 0x5b, 0xff, 0xf5, 0xdc, 0xca, 0xfc, + 0xcd, 0x26, 0xbf, 0xed, 0x67, 0x92, 0xd6, 0x5d, 0x9c, 0x10, 0xa3, 0x7b, 0xd4, 0xab, 0x20, 0xbc, + 0x53, 0xb0, 0xf8, 0x8a, 0x3c, 0x34, 0x11, 0xa4, 0x0e, 0x3b, 0x95, 0x22, 0x41, 0x0d, 0x2e, 0xe2, + 0xb1, 0x84, 0xbb, 0xce, 0x11, 0xb7, 0x3c, 0xc2, 0xfc, 0xd0, 0x9c, 0xaf, 0xa1, 0x7f, 0x51, 0x89, + 0x6f, 0x73, 0x1f, 0x8c, 0x84, 0x86, 0x0f, 0x61, 0x0e, 0x67, 0xd0, 0xbd, 0x2e, 0x8a, 0xc8, 0xe0, + 0x66, 0xd9, 0xfe, 0xe7, 0x0d, 0xfc, 0x72, 0x1a, 0xa7, 0x4c, 0x6e, 0x72, 0x88, 0x74, 0x8d, 0x17, + 0x5a, 0x1e, 0xb3, 0x30, 0x79, 0xca, 0x36, 0x11, 0x12, 0x90, 0x82, 0x7e, 0x8b, 0xf1, 0x49, 0x02, + 0x7f, 0x7f, 0x3d, 0x3f, 0x02, 0x7d, 0x7c, 0xd5, 0x60, 0xba, 0x9b, 0xa9, 0x3a, 0x13, 0x88, 0xa3, + 0x6f, 0xf1, 0x3d, 0xfa, 0xff, 0x63, 0x99, 0x93, 0xe9, 0x74, 0x78, 0x05, 0xfe, 0x30, 0x57, 0x0b, + 0x39, 0xe8, 0x28, 0xf5, 0xaa, 0x0d, 0x05, 0x0d, 0x91, 0xbd, 0x75, 0x44, 0x71, 0x4e, 0xdf, 0xbe, + 0xd5, 0x54, 0x09, 0x92, 0xa7, 0x50, 0x74, 0x05, 0xb3, 0x40, 0x9e, 0xeb, 0x7c, 0x1c, 0xbb, 0xe8, + 0x4a, 0x89, 0xa5, 0xc2, 0xd9, 0x57, 0xba, 0xd6, 0x5e, 0x35, 0xb0, 0x68, 0xa8, 0x08, 0xff, 0x3f, + 0x27, 0xba, 0x37, 0x39, 0x73, 0x07, 0x6e, 0xab, 0x95, 0xd3, 0x09, 0xc4, 0xe5, 0x00, 0xaf, 0x8b, + 0xdd, 0x58, 0x97, 0x64, 0x3f, 0x94, 0xd5, 0xfa, 0x10, 0x86, 0x33, 0x15, 0x55, 0xe1, 0x04, 0x6b, + 0xd3, 0xfc, 0x8b, 0xda, 0x6b, 0x67, 0x2e, 0xb6, 0xf7, 0xdd, 0x85, 0x77, 0x9f, 0x80, 0x61, 0xd7, + 0xfb, 0x61, 0x0d, 0x34, 0x10, 0xe0, 0xf4, 0x31, 0x94, 0x66, 0x69, 0x00, 0x2e, 0xbe, 0xd8, 0xa1, + 0xb5, 0x22, 0x8d, 0x7a, 0x28, 0xff, 0xa4, 0x1d, 0x99, 0x6d, 0x0a, 0x10, 0x9e, 0x90, 0x28, 0xa5, + 0x63, 0xd5, 0x71, 0x10, 0x37, 0x4e, 0x29, 0xc4, 0xe1, 0xf1, 0x37, 0x57, 0x46, 0x6d, 0x68, 0x02, + 0xc0, 0x0f, 0x78, 0x56, 0xd4, 0xc3, 0x5c, 0x83, 0x8d, 0xe9, 0x3a, 0xa2, 0xd8, 0x5d, 0xa5, 0x4f, + 0x8b, 0xef, 0xa5, 0x06, 0xb1, 0xa7, 0x3d, 0x7a, 0x91, 0xf7, 0xe4, 0x7b, 0x69, 0xba, 0x4f, 0xe1, + 0xe9, 0xa1, 0x63, 0x82, 0xcf, 0xbb, 0x29, 0xb6, 0x46, 0xdf, 0xf4, 0x2c, 0x1e, 0x1a, 0x75, 0xe1, + 0x5e, 0x8e, 0x87, 0x55, 0x90, 0xb1, 0x6f, 0x8d, 0x2c, 0x5a, 0x24, 0xa1, 0x86, 0xae, 0x1f, 0xd6, + 0x65, 0x2c, 0xff, 0xc4, 0x5e, 0x27, 0x01, 0x6c, 0x6c, 0xdd, 0xc6, 0x2e, 0x7f, 0xb1, 0x0c, 0x73, + 0xaa, 0x51, 0x8c, 0x5a, 0x78, 0xe6, 0x1d, 0x61, 0x1e, 0x43, 0xc3, 0x66, 0xff, 0x63, 0x7e, 0xad, + 0x27, 0x81, 0x53, 0x32, 0x49, 0x99, 0xce, 0xfb, 0x62, 0x6e, 0xdc, 0x23, 0xe0, 0xe9, 0xd7, 0x6e, + 0x79, 0x8f, 0xfe, 0x77, 0xf8, 0x3c, 0x50, 0x9b, 0xf6, 0x92, 0xd8, 0x75, 0x2a, 0xda, 0x2e, 0x15, + 0x15, 0x1b, 0xa6, 0x76, 0x9c, 0x47, 0x72, 0x0d, 0xd5, 0xd5, 0xcb, 0x4d, 0x04, 0xd4, 0x94, 0xa5, + 0x85, 0x6d, 0x56, 0x74, 0x5d, 0x59, 0x2f, 0x3d, 0x19, 0x35, 0x9e, 0x82, 0x07, 0x1e, 0x23, 0xc6, + 0x24, 0x08, 0x72, 0x67, 0x8a, 0xfa, 0x68, 0xbd, 0x1a, 0xac, 0x70, 0x23, 0xc0, 0xf9, 0xab, 0x07, + 0xba, 0xeb, 0xaa, 0x94, 0x7a, 0x1b, 0x3c, 0xbc, 0x96, 0xd2, 0xf9, 0xc6, 0xb6, 0x60, 0x5a, 0x57, + 0xe3, 0xd0, 0xc2, 0x98, 0xb2, 0x5e, 0x5a, 0xd5, 0x45, 0x1c, 0xe5, 0x3a, 0x43, 0xf8, 0xe9, 0xcc, + 0x3f, 0x1a, 0x1c, 0x4c, 0xdb, 0x3c, 0x05, 0x6b, 0x50, 0xf8, 0xbd, 0x0c, 0xd6, 0x8f, 0xf2, 0xdc, + 0xa4, 0xe4, 0x7c, 0xb6, 0x1a, 0xf7, 0xe3, 0x6a, 0xa2, 0x5f, 0x14, 0x0e, 0x6b, 0x81, 0x65, 0xad, + 0x94, 0xfe, 0x36, 0x89, 0x65, 0xf3, 0xd6, 0x8b, 0x29, 0x01, 0xff, 0xd8, 0x11, 0x47, 0x88, 0x5e, + 0x23, 0xb7, 0xd4, 0x6e, 0xf5, 0x79, 0xbf, 0xaf, 0x6e, 0xf9, 0x26, 0xb2, 0x09, 0x0f, 0x45, 0xcd, + 0xd0, 0x31, 0xfc, 0x5f, 0x03, 0xdf, 0xe9, 0x6e, 0x51, 0x6a, 0x6f, 0x9d, 0x5b, 0x19, 0xd5, 0x1d, + 0xc7, 0x12, 0xb5, 0x51, 0x8f, 0xc9, 0x20, 0x4a, 0x0f, 0x89, 0xd5, 0x9f, 0x03, 0x9e, 0x4d, 0x8a, + 0xe4, 0x8a, 0x93, 0xe6, 0xe1, 0x74, 0x86, 0x77, 0x44, 0xe3, 0x4c, 0x8b, 0x1c, 0xea, 0x13, 0xfb, + 0xd7, 0x7f, 0x69, 0x2e, 0x4c, 0xf8, 0xa3, 0xfb, 0xdf, 0xdb, 0x3e, 0xba, 0xf5, 0x82, 0xd4, 0x8f, + 0xd6, 0xdb, 0xdb, 0x98, 0xa9, 0x0e, 0x9b, 0x70, 0xcd, 0xd6, 0xcc, 0x28, 0x99, 0xe7, 0x29, 0xaf, + 0xd1, 0x9e, 0xdc, 0x6b, 0xdc, 0xa4, 0x45, 0x00, 0x53, 0xf6, 0x14, 0x5d, 0x0a, 0xab, 0x66, 0x25, + 0xdd, 0x86, 0x65, 0x4e, 0xf2, 0x48, 0x04, 0x98, 0x04, 0xba, 0x29, 0xd7, 0xe1, 0x1f, 0xca, 0x81, + 0x57, 0x96, 0x18, 0x4a, 0x92, 0x1a, 0x7e, 0x4b, 0x44, 0xd2, 0xad, 0x51, 0x90, 0xef, 0xba, 0x77, + 0x93, 0xca, 0xd1, 0xfb, 0xfe, 0x75, 0x6b, 0x1c, 0x44, 0xe1, 0x94, 0x79, 0x27, 0x6c, 0xa6, 0x2a, + 0x32, 0x63, 0x82, 0xcf, 0xc6, 0x81, 0x9c, 0xa9, 0xd4, 0x89, 0xcf, 0x6a, 0x27, 0x73, 0x4c, 0xc4, + 0xf3, 0xef, 0x4f, 0x75, 0x7f, 0x4e, 0xc1, 0x9b, 0xd5, 0xf6, 0x0b, 0x52, 0x12, 0xce, 0x16, 0x39, + 0x97, 0x13, 0x3f, 0x74, 0x85, 0x3c, 0xb1, 0x8d, 0x33, 0x94, 0x5d, 0x09, 0xee, 0x62, 0x15, 0xf0, + 0xff, 0xde, 0xe0, 0x7b, 0x12, 0xf1, 0x80, 0x75, 0xf9, 0xc9, 0x5e, 0xf5, 0x8a, 0x51, 0xa2, 0xfb, + 0x70, 0x05, 0xad, 0xe0, 0x08, 0x5c, 0x01, 0x5a, 0x50, 0xf4, 0xf1, 0x26, 0x38, 0x3e, 0xb2, 0x5d, + 0x10, 0xc5, 0xbf, 0xc5, 0x86, 0xa0, 0x58, 0xa3, 0x12, 0x8c, 0xa4, 0xda, 0xf3, 0xa0, 0x2d, 0x0f, + 0xf6, 0x01, 0xb6, 0x2a, 0x1c, 0x94, 0x8d, 0xe8, 0x07, 0xa5, 0xb8, 0x0d, 0xbb, 0x6a, 0x24, 0x9f, + 0x6e, 0x17, 0x0e, 0xe5, 0xd6, 0x6c, 0xed, 0x07, 0xa0, 0xd9, 0x5a, 0x51, 0xdf, 0x31, 0x60, 0x47, + 0x16, 0x09, 0x73, 0x14, 0x9c, 0xc2, 0x81, 0x5f, 0x1f, 0x42, 0xad, 0x9f, 0x46, 0x1e, 0x25, 0x57, + 0xf9, 0xa2, 0x60, 0x19, 0x88, 0xef, 0x59, 0x10, 0x8c, 0x1f, 0x61, 0x5b, 0x8c, 0xa7, 0xc2, 0x54, + 0x96, 0xe2, 0x61, 0x19, 0xce, 0xd9, 0xa5, 0xb0, 0x10, 0xd3, 0xab, 0xe6, 0xfe, 0x81, 0x40, 0x2b, + 0x41, 0x8b, 0x0a, 0xe9, 0x73, 0xc6, 0x8d, 0x1d, 0xd6, 0x35, 0xf4, 0x1c, 0xd9, 0xd5, 0x28, 0x9b, + 0x22, 0x5e, 0xbf, 0x25, 0xaf, 0x28, 0x7f, 0x6a, 0x0b, 0xc4, 0x5a, 0xbe, 0x89, 0xb3, 0x3a, 0xc3, + 0xc1, 0xc8, 0x52, 0x9f, 0xba, 0x73, 0x85, 0x66, 0xfd, 0x59, 0x5a, 0xb2, 0xa5, 0xcf, 0x69, 0x78, + 0xf4, 0x96, 0x23, 0x16, 0x3a, 0x08, 0xd2, 0x95, 0x5b, 0xc8, 0x3d, 0x1a, 0xe5, 0x74, 0xa3, 0x7d, + 0x64, 0x36, 0xe6, 0x8d, 0xa8, 0xbf, 0xf9, 0x98, 0x53, 0xb3, 0xf4, 0x5a, 0x83, 0xf9, 0x45, 0xa1, + 0x60, 0xa2, 0x74, 0x0b, 0xa5, 0xc0, 0x6d, 0xf3, 0x04, 0xd4, 0x5a, 0xcd, 0x4d, 0x4b, 0xf6, 0x0a, + 0x7b, 0xf3, 0x3b, 0x1f, 0x7e, 0xc7, 0x4b, 0xd1, 0x00, 0xb4, 0x77, 0x75, 0xa2, 0xa2, 0xce, 0x76, + 0x76, 0x68, 0x65, 0x5d, 0x12, 0x02, 0x8b, 0x77, 0x73, 0xe7, 0x69, 0xbd, 0x38, 0xfa, 0xd6, 0x02, + 0xbb, 0xd5, 0x33, 0x5c, 0x59, 0xdd, 0x03, 0xc8, 0x06, 0xab, 0x9e, 0xd1, 0xf3, 0x79, 0xd6, 0x58, + 0xf1, 0xbc, 0x17, 0x6d, 0xfc, 0x27, 0x3c, 0xb4, 0xa2, 0x47, 0xb1, 0x77, 0x4b, 0xa9, 0xf9, 0x3e, + 0x85, 0xf1, 0x0a, 0x01, 0x44, 0x84, 0xea, 0x25, 0x0f, 0xf0, 0x3e, 0x75, 0x65, 0x4e, 0xd4, 0x1d, + 0xc5, 0x68, 0x0d, 0xf4, 0xda, 0xb7, 0x44, 0x04, 0xd8, 0x2d, 0x62, 0x7f, 0x16, 0xbd, 0x72, 0x24, + 0xbd, 0x63, 0x10, 0x4b, 0x52, 0x01, 0x9d, 0xcd, 0x5f, 0xe0, 0x21, 0x8e, 0x32, 0x4c, 0xd6, 0xa0, + 0x89, 0xf5, 0x49, 0xf3, 0x1c, 0x0e, 0x0e, 0xf1, 0x35, 0x06, 0x27, 0xac, 0x3a, 0x23, 0xe9, 0x96, + 0xb3, 0x80, 0x65, 0x88, 0x32, 0xbc, 0x5a, 0xfd, 0x57, 0xc8, 0x20, 0x28, 0x27, 0xac, 0x07, 0x73, + 0x7f, 0x86, 0x2f, 0xa2, 0x61, 0x76, 0xfa, 0xd0, 0x69, 0xd1, 0xcf, 0x52, 0x07, 0x54, 0xa3, 0x2d, + 0xf1, 0x8d, 0x26, 0x97, 0xbb, 0x79, 0xbc, 0x2f, 0xb4, 0x9f, 0xe2, 0x2f, 0x5c, 0xbd, 0xe3, 0x2c, + 0xab, 0x9d, 0xd6, 0xda, 0x76, 0x4a, 0x74, 0x91, 0x5c, 0x03, 0x73, 0xcc, 0x2a, 0xee, 0x5f, 0xbc, + 0x94, 0x92, 0x62, 0x66, 0xae, 0x38, 0x06, 0x0d, 0xf6, 0xe0, 0xd9, 0x4b, 0xae, 0x22, 0xe6, 0x42, + 0x1d, 0xf6, 0xd3, 0xbb, 0x56, 0xb7, 0x5c, 0xac, 0xfb, 0x16, 0xc7, 0x15, 0x55, 0xae, 0xd5, 0xe2, + 0x43, 0x29, 0xe6, 0x05, 0xe6, 0x4d, 0x6a, 0xdc, 0xa8, 0xdb, 0xb1, 0xcd, 0xdc, 0x00, 0x38, 0x1d, + 0x21, 0xab, 0x42, 0xab, 0x04, 0xb9, 0x73, 0xb8, 0x66, 0x1a, 0xe8, 0x46, 0x07, 0x14, 0xbc, 0x97, + 0xd2, 0x49, 0xc2, 0x37, 0x9e, 0xa6, 0x5d, 0x7f, 0xca, 0x36, 0x0a, 0x49, 0x9f, 0xc4, 0x6c, 0x9c, + 0x9c, 0xde, 0x34, 0x77, 0x5c, 0x07, 0x74, 0x22, 0xac, 0xfc, 0x80, 0x13, 0xe8, 0xb1, 0x4b, 0x5c, + 0x3e, 0xa8, 0x4a, 0x1f, 0x1f, 0xe1, 0x56, 0xa4, 0x06, 0xa6, 0x7a, 0x3e, 0xf3, 0x3a, 0xf3, 0x86, + 0xcc, 0x1f, 0x91, 0xdf, 0x68, 0xda, 0x7f, 0x3a, 0x0d, 0xe8, 0xb9, 0xf5, 0x46, 0xb3, 0x61, 0x4c, + 0xd6, 0xe0, 0x2c, 0x9d, 0xfa, 0x0d, 0x3b, 0xee, 0x0f, 0xc2, 0xff, 0xa5, 0x2e, 0x41, 0x47, 0xb7, + 0x00, 0xfe, 0x72, 0x8f, 0xef, 0x33, 0xb3, 0x84, 0x18, 0x7b, 0x0d, 0x1d, 0xde, 0x31, 0xb3, 0x23, + 0xab, 0x4e, 0xc6, 0x87, 0xd7, 0xfc, 0x54, 0x2b, 0xa1, 0x97, 0x64, 0x3f, 0x75, 0x2b, 0x79, 0xb3, + 0x54, 0x7d, 0x97, 0x2a, 0xf3, 0xba, 0x99, 0xce, 0x04, 0x3a, 0xcd, 0xae, 0x35, 0x4d, 0x18, 0xbc, + 0xb7, 0x11, 0x22, 0x50, 0xc1, 0xa8, 0x92, 0x60, 0x4f, 0xb0, 0xea, 0x33, 0x3c, 0xce, 0xd8, 0x1e, + 0xc7, 0xb4, 0xc4, 0x65, 0x71, 0x71, 0x88, 0xc6, 0x3a, 0x34, 0x47, 0xc9, 0xde, 0x45, 0x35, 0xcd, + 0x9f, 0x69, 0x51, 0xd6, 0x5f, 0xce, 0x2b, 0x77, 0xb1, 0x4d, 0x26, 0x7f, 0xff, 0x70, 0x25, 0x3a, + 0x3e, 0x52, 0x6f, 0xa8, 0x03, 0xd8, 0x45, 0xeb, 0x8c, 0x42, 0x63, 0xba, 0xe9, 0x33, 0x9a, 0xe6, + 0x52, 0x98, 0x07, 0x3d, 0xed, 0x6f, 0x90, 0x2f, 0xe3, 0x12, 0xa9, 0xd5, 0xc1, 0xb3, 0x0a, 0xe5, + 0xcd, 0x27, 0x98, 0x00, 0x16, 0xcc, 0xad, 0xfc, 0x5a, 0x65, 0x10, 0xa9, 0xea, 0x10, 0x90, 0xb7, + 0x10, 0x82, 0x49, 0x14, 0xc0, 0xde, 0x71, 0xbe, 0x92, 0x87, 0xb7, 0xb2, 0xe9, 0x6d, 0x5f, 0xd8, + 0x6f, 0xe2, 0x1a, 0xb7, 0xd7, 0x30, 0xd3, 0x2c, 0xfd, 0x17, 0x09, 0x6d, 0x63, 0xda, 0x54, 0x3b, + 0x8d, 0xc7, 0x29, 0x1d, 0x42, 0xdb, 0x5a, 0xd1, 0xbe, 0xaf, 0x90, 0x2c, 0x0b, 0xee, 0xac, 0xe8, + 0x65, 0x83, 0xa1, 0xc1, 0x12, 0xc6, 0x54, 0x5f, 0xf6, 0x6b, 0x6c, 0xbf, 0x1a, 0x00, 0xe7, 0xdd, + 0xa1, 0x91, 0xb4, 0xe9, 0x3d, 0x86, 0x44, 0x5e, 0x69, 0x37, 0x69, 0x91, 0x61, 0x34, 0xd1, 0x2d, + 0x3a, 0x9a, 0x91, 0x75, 0xbf, 0xab, 0x08, 0x85, 0x7d, 0xb6, 0x01, 0xa8, 0xc0, 0x3d, 0x57, 0x37, + 0xf5, 0x0a, 0xe4, 0x81, 0x4a, 0x11, 0x38, 0xca, 0xd7, 0x2c, 0x44, 0x75, 0x4b, 0xcc, 0x80, 0xde, + 0x2b, 0xad, 0x59, 0x5e, 0x78, 0x41, 0x23, 0xa9, 0x1a, 0x09, 0x1e, 0x07, 0xe8, 0x8b, 0x6c, 0x6a, + 0xe7, 0x91, 0xf4, 0xa5, 0xfe, 0x1b, 0x83, 0x23, 0x60, 0xd3, 0xf1, 0x9b, 0x02, 0x93, 0xdf, 0x20, + 0x20, 0x49, 0xb2, 0xdc, 0xf3, 0x89, 0x93, 0xd1, 0xaf, 0x1c, 0x8a, 0x4e, 0xec, 0xec, 0x88, 0x65, + 0x77, 0x2f, 0x4d, 0xfa, 0xaa, 0x73, 0xe8, 0xa6, 0x08, 0x4b, 0xc3, 0x79, 0x64, 0x56, 0xf0, 0x79, + 0x24, 0xbd, 0x89, 0x3b, 0x6b, 0x3d, 0xdd, 0xe8, 0x81, 0x4a, 0x86, 0x47, 0x6f, 0xd8, 0x69, 0xf1, + 0x9b, 0x54, 0x63, 0x82, 0x96, 0x62, 0x06, 0x55, 0xbf, 0x77, 0x77, 0xf1, 0x08, 0xa3, 0x78, 0x09, + 0xab, 0xae, 0x57, 0x4c, 0xf9, 0x64, 0xc2, 0x87, 0x5d, 0x72, 0x80, 0x6a, 0x50, 0xa8, 0x11, 0x6a, + 0xef, 0xd2, 0x25, 0x12, 0x3b, 0xd2, 0x5f, 0xcf, 0x91, 0x2f, 0x62, 0x8e, 0x96, 0x45, 0x9c, 0x77, + 0xf5, 0xde, 0xca, 0x93, 0xea, 0x3d, 0xfa, 0x6f, 0x1c, 0x26, 0xd8, 0xe7, 0x92, 0x67, 0xcd, 0xbb, + 0x71, 0xa9, 0xa6, 0x57, 0x16, 0x11, 0x2f, 0x4d, 0x5a, 0x2a, 0x89, 0xd7, 0x47, 0x8a, 0xa9, 0x2f, + 0x6b, 0x3c, 0x8d, 0xa2, 0x01, 0x40, 0x47, 0xca, 0xb6, 0xd8, 0x27, 0x81, 0xd7, 0x9e, 0xc2, 0xdf, + 0xf2, 0xb4, 0x85, 0x96, 0x6e, 0xa4, 0xf9, 0xf7, 0xaf, 0x00, 0x42, 0x83, 0x80, 0xf2, 0x7b, 0xa7, + 0xe1, 0xcc, 0xcb, 0x26, 0x6a, 0x4f, 0xb5, 0xc4, 0x4e, 0x48, 0x75, 0x5a, 0x33, 0xa0, 0x25, 0xd9, + 0xf4, 0xfb, 0xb6, 0x93, 0xe0, 0x8e, 0x41, 0xcf, 0x40, 0x19, 0x28, 0x0b, 0x74, 0x08, 0x98, 0x89, + 0x3e, 0x40, 0x45, 0x7b, 0x54, 0x34, 0xca, 0xcc, 0x9c, 0x18, 0xbf, 0x6b, 0x3f, 0xc4, 0x62, 0xb0, + 0xc7, 0x37, 0xfd, 0x27, 0xe6, 0xe8, 0x34, 0x7d, 0xb3, 0x21, 0xc6, 0x34, 0xf8, 0xea, 0x00, 0x32, + 0x96, 0x20, 0x8d, 0x99, 0x27, 0xcb, 0x6b, 0x26, 0xa3, 0x64, 0x5c, 0x25, 0xf6, 0x20, 0xd2, 0x73, + 0x77, 0x36, 0xee, 0x4d, 0xb5, 0x5e, 0x7f, 0xb4, 0x2c, 0x06, 0x77, 0x5e, 0x61, 0x30, 0x2a, 0xc9, + 0x47, 0x2b, 0xdf, 0x96, 0x57, 0xe9, 0xf6, 0xac, 0xe3, 0xa5, 0xed, 0xdb, 0xb4, 0x53, 0x3d, 0x9e, + 0xfe, 0x16, 0x24, 0x85, 0x56, 0x8b, 0x71, 0xe1, 0x79, 0x8d, 0x11, 0x0b, 0x9b, 0xf2, 0x3d, 0x27, + 0x98, 0x5c, 0x7d, 0x18, 0x75, 0x4e, 0xd3, 0x1b, 0x72, 0x5a, 0xb5, 0xaf, 0xfe, 0x66, 0x67, 0x12, + 0xaf, 0xcf, 0x54, 0x06, 0xa4, 0x39, 0x06, 0x6c, 0x00, 0x8f, 0xab, 0x22, 0x8c, 0x06, 0xe8, 0x97, + 0x07, 0xed, 0xc3, 0x2b, 0xbe, 0x8c, 0xb9, 0x23, 0x11, 0xda, 0x68, 0xec, 0x84, 0x13, 0x31, 0xb9, + 0xfb, 0xd7, 0xb4, 0x02, 0x15, 0x65, 0x11, 0x2c, 0x58, 0x74, 0x6a, 0x33, 0x25, 0x23, 0x21, 0x48, + 0x4c, 0x83, 0x51, 0xa4, 0x4a, 0x85, 0x03, 0x77, 0x81, 0x8b, 0xfc, 0x53, 0xe1, 0x93, 0x9c, 0x8a, + 0x33, 0xd7, 0xfd, 0xf5, 0xcb, 0x2e, 0xa8, 0xf6, 0x73, 0x1d, 0x3d, 0xce, 0xba, 0xac, 0xba, 0x62, + 0x63, 0x6f, 0x7f, 0x32, 0x40, 0xf4, 0x09, 0xe3, 0xda, 0x76, 0x66, 0x12, 0xe6, 0x9d, 0x8c, 0x91, + 0xb6, 0xa0, 0x39, 0x2b, 0xfa, 0x19, 0xda, 0x5f, 0xf0, 0xa7, 0x1f, 0x58, 0x04, 0xda, 0xc4, 0xc2, + 0xc7, 0xee, 0x70, 0x68, 0x18, 0x03, 0x11, 0xc2, 0xbb, 0x3f, 0xbc, 0x10, 0xb4, 0x52, 0x3b, 0xff, + 0x68, 0x6b, 0x3d, 0xf1, 0xca, 0xb4, 0xf0, 0x7e, 0xf1, 0x3f, 0xa2, 0x60, 0xce, 0xf9, 0xaa, 0x2e, + 0x12, 0x8b, 0x54, 0xa4, 0xa6, 0x60, 0x3a, 0x93, 0xeb, 0x23, 0xa0, 0x1c, 0x14, 0x82, 0x5e, 0x5a, + 0x93, 0x11, 0x42, 0x98, 0x69, 0x53, 0x1a, 0x2d, 0xd5, 0x41, 0xd1, 0xdd, 0xab, 0xb6, 0x23, 0x44, + 0xd3, 0xc3, 0xd2, 0x1f, 0x4f, 0x2b, 0xf2, 0x09, 0xf8, 0x2f, 0x96, 0x18, 0x80, 0xa3, 0x8c, 0x97, + 0xdf, 0x76, 0x70, 0x75, 0xf4, 0xec, 0x49, 0x70, 0x2f, 0x26, 0xeb, 0xc5, 0x41, 0x56, 0xda, 0x3b, + 0x2c, 0x87, 0xd0, 0xea, 0xcb, 0x19, 0xdf, 0x7b, 0x6b, 0x04, 0x5d, 0x55, 0x51, 0xa6, 0xd5, 0x16, + 0x7b, 0x6c, 0x96, 0x28, 0xd9, 0x62, 0xc3, 0x7d, 0xf2, 0x3b, 0x2f, 0x3a, 0x23, 0xf2, 0x15, 0x6d, + 0x28, 0x1c, 0xdd, 0xd9, 0xb0, 0x70, 0x70, 0xce, 0x97, 0xdb, 0xca, 0x17, 0x97, 0x22, 0x1b, 0x71, + 0xd0, 0x43, 0x7b, 0xcc, 0xaa, 0xb0, 0x43, 0x5a, 0xfb, 0x04, 0xc1, 0x80, 0x75, 0xb1, 0xf1, 0x06, + 0xb3, 0x64, 0xaa, 0x7d, 0x36, 0x33, 0x7d, 0x4e, 0xf6, 0xac, 0xda, 0x75, 0xa9, 0x5b, 0x32, 0xff, + 0x2f, 0x00, 0x80, 0xdf, 0x0b, 0x36, 0x20, 0x7d, 0x81, 0xfb, 0xf2, 0x7d, 0xaf, 0x7b, 0xc0, 0x9e, + 0x16, 0x34, 0x7e, 0x4e, 0x38, 0xae, 0xe5, 0x29, 0x83, 0xd3, 0x1c, 0x6b, 0xfa, 0x4c, 0xb1, 0x0a, + 0x09, 0xa7, 0xfb, 0x36, 0x4b, 0xd3, 0x18, 0x65, 0xe0, 0xf5, 0x03, 0x3a, 0x9f, 0x15, 0x68, 0x47, + 0x97, 0x7f, 0xcc, 0x6c, 0x7f, 0xa0, 0x84, 0x30, 0x38, 0x8c, 0x7e, 0x6b, 0x51, 0xbf, 0x91, 0x00, + 0x33, 0x07, 0x71, 0x39, 0x8d, 0xb4, 0x88, 0x45, 0xcb, 0xee, 0xe0, 0x40, 0xb3, 0xc6, 0xe8, 0xc3, + 0xbd, 0x01, 0xd7, 0xe0, 0xa5, 0x2a, 0x8f, 0x52, 0x41, 0xd4, 0xc6, 0x4e, 0xc8, 0xf4, 0x03, 0x5d, + 0xcc, 0xcb, 0x0b, 0x01, 0x7c, 0x50, 0xc7, 0xc3, 0x16, 0x81, 0x29, 0xa2, 0x98, 0xfb, 0x64, 0xde, + 0x4a, 0x5e, 0x16, 0x31, 0x5c, 0x7d, 0xf0, 0x19, 0xbc, 0x91, 0xb3, 0x28, 0xff, 0x1a, 0x0b, 0xec, + 0xb7, 0xac, 0x91, 0x93, 0x24, 0x2c, 0xc1, 0x6f, 0x9c, 0x79, 0x2e, 0x80, 0xa8, 0x2a, 0x8f, 0x19, + 0x65, 0xf1, 0xa0, 0x22, 0xe8, 0x0b, 0x3e, 0x03, 0xeb, 0x11, 0xae, 0x5f, 0x90, 0x85, 0x99, 0xc2, + 0xe8, 0x29, 0xbd, 0xc4, 0x5d, 0xbc, 0xee, 0x10, 0x90, 0x96, 0xcf, 0x21, 0x9d, 0x12, 0x73, 0x72, + 0xd2, 0xcb, 0x1b, 0xa7, 0x3e, 0x6e, 0x2b, 0x00, 0xb6, 0x9b, 0x0b, 0x07, 0x3f, 0x30, 0x19, 0x9a, + 0x4b, 0x19, 0x8a, 0xa6, 0x71, 0x20, 0x9e, 0xb9, 0xbe, 0x2b, 0x91, 0xed, 0x5a, 0x72, 0xa1, 0xd4, + 0xd4, 0xeb, 0xd0, 0x7b, 0x79, 0x06, 0xb4, 0xa7, 0xef, 0xcd, 0x6b, 0x94, 0x11, 0xbe, 0xf2, 0x4d, + 0xb4, 0x74, 0x57, 0x5a, 0x4b, 0x75, 0xa3, 0xb8, 0x3c, 0x67, 0xd8, 0x4c, 0x52, 0x26, 0x2a, 0xdc, + 0x5b, 0x63, 0x4d, 0x25, 0xfa, 0x96, 0xa7, 0x7d, 0x02, 0x2a, 0x2f, 0xc6, 0x87, 0x39, 0x3c, 0x8b, + 0xe4, 0x21, 0x73, 0xb6, 0xca, 0xdc, 0x32, 0x11, 0x7e, 0xc5, 0x54, 0x76, 0xa6, 0x22, 0x1e, 0xa9, + 0x79, 0x4b, 0x29, 0x9c, 0xf8, 0x64, 0xff, 0x94, 0xda, 0xb2, 0xba, 0x3f, 0x1a, 0x11, 0xe9, 0x3d, + 0x5b, 0x9c, 0xb5, 0x2d, 0x28, 0x3a, 0x5f, 0x54, 0x52, 0xbd, 0xb3, 0x29, 0x4e, 0x44, 0x8a, 0x52, + 0x77, 0xca, 0xc8, 0x7c, 0x1d, 0x17, 0x89, 0x5b, 0xd0, 0xaf, 0xb2, 0x9c, 0x84, 0xa3, 0x5c, 0x7a, + 0xb5, 0x25, 0xf8, 0xa5, 0xb3, 0xb1, 0x28, 0x04, 0xde, 0x28, 0x36, 0x8e, 0xd2, 0x46, 0xae, 0x03, + 0x58, 0xec, 0x73, 0x21, 0x4e, 0x1e, 0xe9, 0x39, 0xb5, 0x83, 0x5d, 0x15, 0x86, 0x5a, 0xd7, 0x1c, + 0xf1, 0x5a, 0xda, 0x57, 0x73, 0xd6, 0xec, 0x10, 0x95, 0xc1, 0x08, 0x5a, 0x02, 0x06, 0x0c, 0xe0, + 0xd7, 0xca, 0xc2, 0x3e, 0x6e, 0x51, 0xcd, 0x0c, 0xed, 0xba, 0xa4, 0xa1, 0x65, 0xb7, 0xa5, 0xe6, + 0x7f, 0x03, 0x40, 0x4e, 0xe7, 0x06, 0x2a, 0x21, 0x47, 0x68, 0x67, 0x06, 0xe5, 0x2c, 0x00, 0xa0, + 0x3c, 0x38, 0xb2, 0xdc, 0xf7, 0x47, 0xf9, 0xf4, 0x7b, 0x90, 0xcc, 0x07, 0x09, 0x4d, 0xf4, 0x4c, + 0x37, 0xd8, 0xc3, 0x20, 0x16, 0x48, 0x25, 0x49, 0xc3, 0x61, 0xb5, 0x82, 0x0a, 0xdd, 0xa7, 0xca, + 0xa8, 0xd2, 0xf7, 0x41, 0xab, 0x8f, 0xa4, 0x94, 0xe4, 0x3d, 0x2e, 0xab, 0xa2, 0xf1, 0x6b, 0xce, + 0x86, 0xbd, 0x8d, 0x8f, 0x8b, 0x79, 0x0b, 0x8f, 0x4d, 0xc2, 0x25, 0x84, 0x9d, 0xb6, 0x20, 0x97, + 0xbd, 0x16, 0x5b, 0xf6, 0x5b, 0x03, 0x51, 0x40, 0x4d, 0x68, 0x8c, 0x12, 0x1b, 0x41, 0xbc, 0x31, + 0xcc, 0xbe, 0x90, 0x9c, 0xa4, 0x08, 0x2d, 0xd6, 0x05, 0x1d, 0x4e, 0xfd, 0x2e, 0x36, 0x28, 0xea, + 0xb7, 0x66, 0x67, 0x48, 0xfd, 0x82, 0x15, 0x3f, 0x39, 0x60, 0x4f, 0x36, 0x2c, 0x35, 0x92, 0x79, + 0xcd, 0x18, 0x72, 0x05, 0x89, 0xe4, 0x52, 0xd6, 0x92, 0x88, 0x32, 0xb5, 0x2a, 0xa8, 0x79, 0x0f, + 0x74, 0x7d, 0x62, 0xa2, 0x8a, 0x00, 0xfa, 0x9a, 0x88, 0x8b, 0x23, 0xa6, 0x08, 0x67, 0xf3, 0x7b, + 0xd3, 0xed, 0xb1, 0xd0, 0x7d, 0xf7, 0x19, 0x34, 0xcd, 0x51, 0x7a, 0x08, 0xba, 0x30, 0xba, 0xdd, + 0x5e, 0xca, 0xce, 0xf2, 0xf9, 0x5f, 0xb6, 0x6d, 0xa9, 0xfd, 0x0e, 0xc4, 0x69, 0x24, 0x06, 0xd5, + 0x80, 0x09, 0xe5, 0x82, 0x23, 0x3d, 0xff, 0x88, 0xea, 0x27, 0xb2, 0x34, 0xd1, 0xfe, 0x4f, 0x7f, + 0x77, 0x1f, 0x11, 0xa4, 0xc3, 0x6a, 0x4b, 0xd2, 0x62, 0x6e, 0x32, 0xeb, 0xec, 0xee, 0x69, 0x60, + 0x33, 0xfe, 0x6f, 0x45, 0xe9, 0xd7, 0xdf, 0x5a, 0x29, 0x09, 0x34, 0x59, 0xc8, 0x31, 0x97, 0x40, + 0xbc, 0x13, 0x5f, 0xc7, 0xd3, 0xcf, 0xaf, 0x0d, 0x50, 0xf7, 0x30, 0xfb, 0x2e, 0x25, 0x26, 0x9f, + 0x99, 0x70, 0xe9, 0x5c, 0x29, 0x1d, 0xcb, 0x1f, 0x7e, 0xdd, 0xb8, 0xfb, 0xe1, 0x0e, 0x7e, 0xc2, + 0x09, 0x86, 0x09, 0x92, 0x0d, 0xfa, 0x8e, 0x7d, 0x0c, 0xf3, 0x3f, 0x85, 0xbb, 0x56, 0xfe, 0x93, + 0x83, 0xd6, 0x6d, 0xe4, 0xe0, 0x0f, 0xfa, 0xba, 0x9b, 0xa2, 0x57, 0xc0, 0x04, 0xd1, 0x5b, 0xab, + 0x89, 0x1a, 0x97, 0x68, 0x27, 0x6f, 0x6d, 0x91, 0x88, 0x3a, 0x1e, 0x7b, 0x30, 0x54, 0x53, 0xd7, + 0x4d, 0x9b, 0xaf, 0xd9, 0x41, 0x95, 0x09, 0xc5, 0x9e, 0x9c, 0xb5, 0x00, 0x7d, 0xac, 0x21, 0x05, + 0xca, 0xb7, 0x84, 0x55, 0x71, 0xcf, 0x39, 0xcf, 0xee, 0xbb, 0xda, 0x8d, 0xbf, 0x60, 0x51, 0x41, + 0x87, 0xbd, 0xba, 0x55, 0xd3, 0xb5, 0x47, 0x50, 0xb5, 0xd4, 0x6d, 0xbd, 0xef, 0x50, 0xd0, 0x02, + 0x69, 0xba, 0x2d, 0x28, 0x49, 0x5e, 0x12, 0x45, 0x32, 0x0b, 0x56, 0xfa, 0x69, 0x85, 0x6d, 0xe3, + 0xca, 0x1d, 0x52, 0xd6, 0x37, 0x79, 0x8a, 0xcc, 0x51, 0x9f, 0x6e, 0xd1, 0x9c, 0xc6, 0xb6, 0x4c, + 0x81, 0xb5, 0xda, 0x9d, 0xb4, 0xb7, 0xbc, 0xa1, 0x96, 0x1c, 0x42, 0x3b, 0x58, 0x97, 0xc2, 0x78, + 0xc7, 0x12, 0x21, 0x45, 0x4d, 0x11, 0x5e, 0x2d, 0x4b, 0x0e, 0x3a, 0xc2, 0x94, 0x21, 0xe4, 0x3a, + 0xfa, 0xe2, 0x0d, 0x8b, 0x4c, 0xba, 0x3c, 0x98, 0xaa, 0x44, 0x22, 0xcf, 0x3a, 0x2b, 0x70, 0x65, + 0x72, 0x9c, 0x01, 0x84, 0xea, 0x5f, 0x93, 0x67, 0x68, 0x26, 0xe4, 0xb3, 0x53, 0x28, 0xd6, 0xf1, + 0x45, 0x2c, 0x8d, 0x20, 0xc2, 0x75, 0x32, 0x08, 0x95, 0x38, 0x5a, 0xf2, 0xd1, 0xe1, 0x2b, 0x76, + 0x1d, 0xe8, 0xb2, 0xb1, 0x3d, 0x09, 0x0b, 0xc6, 0xfa, 0x7e, 0xde, 0x54, 0x08, 0xc2, 0xc2, 0xf7, + 0x48, 0xa9, 0x5b, 0xa3, 0xa7, 0x63, 0x20, 0x4b, 0x1f, 0x76, 0x89, 0x3a, 0x24, 0xbe, 0x14, 0x22, + 0xa7, 0x20, 0x33, 0x2c, 0xd0, 0x68, 0x37, 0xa4, 0x95, 0xea, 0x19, 0xce, 0x66, 0x1b, 0x0a, 0x64, + 0x0b, 0x08, 0x6e, 0x31, 0x78, 0xfb, 0xaa, 0x14, 0x29, 0x5d, 0xa5, 0xf7, 0x29, 0x92, 0xe0, 0x13, + 0x64, 0x57, 0x34, 0xcb, 0x44, 0x51, 0xfe, 0x94, 0x2e, 0xfa, 0xdd, 0x49, 0x2d, 0xd5, 0xf1, 0xc0, + 0xdd, 0x3c, 0xff, 0x1a, 0x3c, 0xfc, 0x61, 0x97, 0xd2, 0xe4, 0x42, 0x3d, 0x96, 0xa8, 0x49, 0x10, + 0x05, 0x44, 0x94, 0xd5, 0x5d, 0xb8, 0x46, 0xf1, 0x4c, 0xc9, 0x9d, 0x66, 0xac, 0x3b, 0xdc, 0x5a, + 0x95, 0x70, 0x01, 0x3a, 0xcf, 0x85, 0xbe, 0x6a, 0xbd, 0x4e, 0x82, 0xb4, 0x1d, 0x65, 0x5f, 0x41, + 0x77, 0x07, 0x1d, 0xfb, 0xaa, 0x42, 0x7c, 0x35, 0x9d, 0xb6, 0xde, 0x26, 0x54, 0xc1, 0xe5, 0xba, + 0xa7, 0x59, 0x80, 0xd8, 0x44, 0xe3, 0x9d, 0x0f, 0xdf, 0x8a, 0x46, 0x08, 0xca, 0x11, 0x72, 0xa9, + 0x3b, 0x72, 0x06, 0xc3, 0x6c, 0xa5, 0xd1, 0x1c, 0xcc, 0xbe, 0x3e, 0xd8, 0x34, 0xbf, 0xd1, 0xf8, + 0x64, 0xc5, 0x9e, 0x0e, 0xfe, 0xd9, 0x51, 0xf9, 0x31, 0x0a, 0xe0, 0xd7, 0x2e, 0x42, 0x5f, 0x8f, + 0x4d, 0xaf, 0xfc, 0x6f, 0x48, 0xdf, 0x66, 0x78, 0x56, 0x5e, 0xab, 0xac, 0xf1, 0xbd, 0xa2, 0xb7, + 0x77, 0x1f, 0x75, 0x78, 0xd2, 0xeb, 0xa7, 0x39, 0xc2, 0x9a, 0x47, 0xb7, 0xa5, 0x43, 0xfb, 0x29, + 0xdc, 0x90, 0x88, 0x92, 0x31, 0x43, 0x8b, 0xf7, 0x8c, 0x69, 0xd5, 0x01, 0x08, 0x24, 0x1e, 0x6c, + 0x85, 0x85, 0xa1, 0xf1, 0x06, 0x88, 0xb1, 0x6c, 0x8a, 0x62, 0x91, 0xd3, 0x75, 0x86, 0x98, 0x01, + 0x35, 0x54, 0xc4, 0x0b, 0xfc, 0xcc, 0xd6, 0x50, 0xb6, 0x99, 0x81, 0x6d, 0xd6, 0x12, 0xb5, 0x48, + 0x35, 0x4d, 0xdc, 0x54, 0x6c, 0x7b, 0x42, 0xa9, 0xdf, 0x64, 0x85, 0xcd, 0xbe, 0xd8, 0xee, 0xfc, + 0x5f, 0x5d, 0xcf, 0x4a, 0xc1, 0x1c, 0x8b, 0x2e, 0x1b, 0x76, 0xcf, 0x4d, 0x4c, 0x93, 0xa2, 0xf3, + 0xc9, 0xd6, 0xf1, 0x4a, 0xf8, 0xdf, 0xec, 0x0b, 0x66, 0x5e, 0xc4, 0x11, 0x46, 0x06, 0x81, 0xe6, + 0x5f, 0x17, 0xc2, 0x65, 0x83, 0x2d, 0xa2, 0xe7, 0xcf, 0x9c, 0x17, 0x6c, 0xdf, 0x33, 0x4a, 0x17, + 0x55, 0xac, 0xdc, 0x45, 0xf8, 0xcd, 0x75, 0xc0, 0x2e, 0x75, 0xed, 0xa5, 0x20, 0x62, 0x14, 0xd1, + 0xc6, 0x47, 0xf4, 0x6d, 0xf9, 0xbd, 0xd8, 0x3a, 0x4f, 0xd3, 0x2d, 0xc7, 0x20, 0xfb, 0xe9, 0x60, + 0x65, 0xb4, 0x60, 0xe0, 0xce, 0xd6, 0xdf, 0x80, 0xff, 0xeb, 0x88, 0x00, 0x12, 0xd9, 0x33, 0xe7, + 0xe0, 0xfc, 0x90, 0x8d, 0x73, 0xc7, 0x08, 0x39, 0xed, 0x5e, 0x1a, 0xb4, 0x71, 0x66, 0x0a, 0x88, + 0xcb, 0x33, 0x77, 0x94, 0xd1, 0xcb, 0x69, 0x5c, 0xf5, 0x91, 0xd5, 0xc9, 0x15, 0x56, 0x58, 0x57, + 0x80, 0x84, 0xdc, 0xa8, 0x87, 0x9a, 0xa3, 0x8d, 0x8c, 0x2a, 0x62, 0x6a, 0xfe, 0xe9, 0x67, 0x00, + 0x65, 0x7d, 0xb5, 0x00, 0x53, 0xe9, 0xb1, 0x25, 0xda, 0x28, 0xca, 0xe4, 0x85, 0x9b, 0x24, 0x8b, + 0x85, 0xe9, 0x96, 0xcc, 0xfc, 0x86, 0xec, 0xc0, 0xf6, 0x0f, 0xcc, 0xf0, 0x7e, 0xdd, 0x63, 0x2b, + 0x6d, 0x07, 0xbf, 0x85, 0x25, 0x9f, 0x81, 0x65, 0xcc, 0xd7, 0x65, 0x37, 0x04, 0x23, 0xd0, 0xea, + 0xe2, 0x01, 0x22, 0x78, 0xfe, 0x90, 0xa5, 0x22, 0x81, 0x0b, 0xf6, 0xcf, 0x9e, 0x9d, 0x81, 0x33, + 0x54, 0x8e, 0x30, 0xec, 0x9d, 0x1b, 0xbd, 0x9e, 0xb4, 0xd2, 0x41, 0x5c, 0x99, 0xf5, 0x45, 0x00, + 0x64, 0x64, 0xd9, 0x0e, 0x85, 0x16, 0xbb, 0xd3, 0x64, 0xdc, 0xc6, 0x4f, 0x6d, 0x1e, 0xf8, 0xdb, + 0x2e, 0xe0, 0x37, 0x11, 0x20, 0xdb, 0x8b, 0xf6, 0x5f, 0x7b, 0x2e, 0x60, 0xf7, 0x4e, 0xa0, 0xd9, + 0x4b, 0x0e, 0x7c, 0x91, 0x4e, 0x69, 0xff, 0xf6, 0xe4, 0x58, 0x39, 0x63, 0xca, 0x1f, 0x31, 0x6e, + 0xf9, 0xd4, 0xb7, 0x86, 0x39, 0xca, 0x64, 0x2b, 0xdc, 0xa9, 0x19, 0x3d, 0xff, 0x1e, 0x99, 0xee, + 0x0a, 0xb6, 0x90, 0x08, 0xe8, 0x24, 0x59, 0x13, 0x72, 0x85, 0x71, 0x52, 0x56, 0xcc, 0x47, 0xb9, + 0x95, 0x3e, 0x4d, 0xaf, 0x4a, 0xc4, 0x69, 0x3b, 0x3e, 0x88, 0x60, 0x16, 0x4f, 0x22, 0xd2, 0x9c, + 0x6f, 0xc5, 0x45, 0x86, 0xe0, 0xb8, 0x4b, 0xb8, 0xe5, 0x70, 0x3f, 0xed, 0x58, 0xd7, 0xcb, 0xa3, + 0x03, 0x11, 0xe0, 0x01, 0x3c, 0x30, 0x14, 0x10, 0xcc, 0x62, 0x79, 0x2b, 0x59, 0x28, 0xcb, 0xca, + 0xec, 0x5e, 0x46, 0xb3, 0x6a, 0xfb, 0x17, 0xda, 0xab, 0x6b, 0x9f, 0x79, 0xd0, 0x3c, 0x4d, 0xa6, + 0xd5, 0xb9, 0x15, 0xb2, 0x91, 0xe8, 0x12, 0x49, 0x6f, 0x4f, 0xc9, 0xa3, 0xfd, 0x74, 0x44, 0x65, + 0xea, 0x7a, 0xf2, 0x65, 0x61, 0x9f, 0xc8, 0xbc, 0xc2, 0xee, 0x79, 0x04, 0x26, 0xaa, 0xec, 0xa5, + 0xa5, 0xda, 0x62, 0xe3, 0x74, 0x7c, 0x5b, 0x94, 0x62, 0xe1, 0xd9, 0xcc, 0xd5, 0x76, 0xc9, 0x77, + 0xdd, 0x77, 0xe2, 0x22, 0x6e, 0x32, 0x0d, 0xae, 0xf4, 0x81, 0xc6, 0x19, 0xf4, 0xef, 0xda, 0x6f, + 0xdb, 0x8d, 0xa2, 0xdf, 0x28, 0x45, 0x8d, 0x09, 0x60, 0x5e, 0xf2, 0xd3, 0x2a, 0xdd, 0xb0, 0x87, + 0x27, 0xc5, 0x91, 0x46, 0xfe, 0x6c, 0xd3, 0x11, 0x61, 0x01, 0x11, 0x2a, 0x1e, 0x12, 0x6e, 0xe8, + 0x72, 0x11, 0x46, 0x19, 0xf1, 0x67, 0x1d, 0xe6, 0x64, 0x83, 0x9f, 0xc1, 0x6f, 0xc1, 0x1c, 0x1f, + 0xc5, 0x40, 0x35, 0x48, 0xef, 0xdc, 0x69, 0x37, 0xf5, 0xb7, 0xa9, 0x6c, 0x40, 0xff, 0x55, 0x58, + 0xa1, 0xbf, 0x2b, 0x36, 0x10, 0x6e, 0xae, 0x14, 0xd3, 0x69, 0x57, 0xf9, 0x2f, 0x17, 0x3d, 0x82, + 0x09, 0x9d, 0x5b, 0x92, 0xec, 0x1d, 0x81, 0xd1, 0xa7, 0x3a, 0x2b, 0x0c, 0x99, 0xe2, 0xa8, 0x3f, + 0xfd, 0x01, 0xf4, 0xc6, 0x35, 0xb4, 0xa6, 0xa4, 0xac, 0xcd, 0xb1, 0x80, 0x23, 0x9a, 0x2a, 0x92, + 0x47, 0xa2, 0x04, 0xe3, 0x62, 0xa5, 0xfb, 0x95, 0x0c, 0x67, 0x1e, 0xa3, 0xb6, 0x1b, 0x54, 0x38, + 0xe9, 0xec, 0xf0, 0xc9, 0x41, 0xa7, 0xbe, 0x44, 0x5d, 0xda, 0x32, 0x8a, 0x65, 0x26, 0x50, 0xee, + 0xb6, 0x19, 0xb0, 0x52, 0xf6, 0x87, 0xd7, 0x36, 0x50, 0x4d, 0x57, 0x6d, 0x7d, 0xf6, 0x12, 0xaf, + 0x67, 0x16, 0x1b, 0x10, 0x51, 0xc5, 0x5f, 0xd8, 0xbf, 0x85, 0x66, 0xa4, 0x91, 0xb5, 0x41, 0x5b, + 0x2b, 0x2a, 0x66, 0xbc, 0x25, 0x51, 0xfb, 0x89, 0x91, 0x6f, 0x85, 0x38, 0x49, 0xac, 0x1b, 0x80, + 0x23, 0x03, 0x0c, 0x85, 0x6e, 0x55, 0xf0, 0x76, 0x1b, 0xff, 0x12, 0xc8, 0xe0, 0x74, 0x20, 0xb4, + 0x0c, 0x78, 0xd7, 0xfe, 0x20, 0x83, 0xdc, 0xc7, 0x7a, 0x47, 0xf1, 0xa7, 0x74, 0xfd, 0xa7, 0x8a, + 0x87, 0xea, 0xd8, 0x4c, 0xc8, 0xdb, 0x6e, 0x9d, 0x15, 0x90, 0xe5, 0x47, 0xeb, 0xfe, 0xd7, 0xe8, + 0x9d, 0xb8, 0x0e, 0x4f, 0x53, 0xf2, 0xcf, 0xc4, 0xee, 0xe5, 0x2a, 0x89, 0xe0, 0x61, 0x04, 0x1b, + 0x43, 0x2a, 0x48, 0x4d, 0xc4, 0x79, 0xb5, 0x6c, 0x5a, 0xea, 0xbe, 0xce, 0xee, 0x55, 0xa4, 0x3b, + 0x85, 0xff, 0x83, 0x6c, 0x68, 0xb1, 0xa1, 0xf9, 0x01, 0x47, 0x0a, 0x8e, 0xa7, 0xaf, 0xc1, 0x08, + 0x68, 0xf2, 0xa3, 0x2b, 0x6c, 0x76, 0xd5, 0x4c, 0xef, 0x44, 0xf0, 0x2f, 0x66, 0xe4, 0xe6, 0xba, + 0x58, 0xd7, 0x45, 0x98, 0x09, 0xda, 0x94, 0x86, 0xd3, 0xea, 0xc6, 0x9e, 0x4d, 0x83, 0x51, 0x06, + 0x64, 0x8e, 0x87, 0x24, 0xcd, 0x75, 0xd8, 0x65, 0x23, 0xd8, 0x14, 0xcb, 0x32, 0x4e, 0x51, 0x55, + 0x88, 0xbd, 0x30, 0xca, 0xbe, 0x15, 0x30, 0xde, 0x49, 0xa5, 0xb1, 0xec, 0x9e, 0x3c, 0x9a, 0x0a, + 0xa6, 0x4c, 0x21, 0x83, 0x00, 0x2e, 0xe7, 0x2c, 0x7f, 0x9f, 0xc4, 0x6d, 0xc4, 0x23, 0xcc, 0xc8, + 0x78, 0xef, 0x65, 0xd4, 0x1b, 0x2f, 0x73, 0xb0, 0x75, 0xa0, 0x84, 0xf9, 0x97, 0x42, 0xc2, 0x2c, + 0xb6, 0x90, 0x64, 0xd5, 0x76, 0xd5, 0x86, 0x73, 0x4b, 0xb5, 0x8e, 0x1b, 0x43, 0x59, 0xc8, 0x8b, + 0xda, 0x1c, 0x99, 0xe1, 0xe5, 0x69, 0x15, 0x10, 0xd4, 0xf7, 0xd4, 0x79, 0xb5, 0x6f, 0xf3, 0x77, + 0xf2, 0xc1, 0x0d, 0x92, 0x23, 0x21, 0x00, 0x3a, 0x54, 0xb3, 0x44, 0x2c, 0x30, 0xce, 0x38, 0xf0, + 0xf9, 0xf6, 0xfe, 0xe3, 0xd0, 0xd2, 0x8c, 0xa1, 0xde, 0xeb, 0x36, 0x67, 0xd3, 0xaf, 0xd1, 0x0a, + 0x29, 0x71, 0xa4, 0x3e, 0xed, 0x05, 0xfe, 0xa4, 0xaf, 0x88, 0xb6, 0xae, 0x3a, 0x53, 0x5b, 0x9f, + 0xb4, 0x9c, 0xec, 0x11, 0xc9, 0x00, 0x3f, 0x94, 0x3a, 0x8f, 0x6d, 0x47, 0x66, 0x9d, 0x81, 0x51, + 0xb3, 0x66, 0x33, 0x75, 0x8d, 0x5b, 0x77, 0xe9, 0xfb, 0x0b, 0x96, 0xf7, 0x67, 0xcf, 0x92, 0xef, + 0xe8, 0xde, 0xb9, 0x3f, 0x86, 0xda, 0xdb, 0x78, 0xac, 0x4d, 0xb1, 0x52, 0x1f, 0xfa, 0xa7, 0x88, + 0xe6, 0xba, 0xdc, 0xff, 0x53, 0x87, 0xdb, 0x12, 0x5e, 0xb1, 0x1f, 0xd4, 0xc2, 0x14, 0x7a, 0x63, + 0x9b, 0x74, 0x8f, 0x01, 0x51, 0xb6, 0x81, 0x3f, 0xea, 0xd6, 0xe7, 0x2b, 0x66, 0xef, 0xb3, 0x85, + 0x04, 0xa9, 0x92, 0x78, 0x4e, 0xa0, 0xb9, 0x0e, 0xd7, 0xe3, 0x44, 0xe6, 0x34, 0xdf, 0x05, 0x7f, + 0x3e, 0xa2, 0x06, 0x94, 0xab, 0xba, 0x1c, 0x68, 0x36, 0x8a, 0x7c, 0x16, 0x91, 0x18, 0xa9, 0x82, + 0x7c, 0x84, 0x5b, 0x47, 0x5b, 0x3d, 0x5a, 0x34, 0xd0, 0x2a, 0x84, 0x28, 0xba, 0x62, 0x5d, 0x63, + 0x47, 0x15, 0xfb, 0x49, 0xa7, 0xb4, 0xb8, 0xa6, 0xb0, 0x63, 0x92, 0x79, 0xe6, 0x9e, 0xf1, 0x8d, + 0x33, 0x4c, 0x1c, 0x94, 0x64, 0x3a, 0x56, 0xf6, 0xbe, 0x68, 0xa1, 0x44, 0x44, 0xd9, 0xa1, 0x67, + 0x0e, 0x1a, 0x6c, 0x46, 0x5d, 0xac, 0xa4, 0xee, 0x88, 0x86, 0x76, 0x8e, 0xe5, 0x96, 0xd0, 0x38, + 0x6e, 0xd5, 0x83, 0x3e, 0x30, 0x3c, 0xd0, 0xf5, 0xf0, 0x4a, 0xa0, 0x54, 0xb9, 0x72, 0x87, 0x23, + 0x71, 0x28, 0x3d, 0x32, 0xc6, 0x7a, 0xe3, 0x5f, 0x42, 0x9b, 0xe4, 0x43, 0x81, 0x32, 0x55, 0x84, + 0xf4, 0x43, 0x15, 0x9f, 0x91, 0x90, 0xd0, 0xf4, 0xaa, 0xbb, 0xf4, 0x51, 0xbe, 0xb2, 0x99, 0x8d, + 0xde, 0x68, 0xf1, 0x0f, 0xf4, 0xa1, 0xe4, 0x50, 0x42, 0xab, 0x74, 0x21, 0xd1, 0x35, 0xe2, 0x3b, + 0x47, 0xf3, 0xd1, 0xbf, 0x9d, 0x41, 0x11, 0x6d, 0x4d, 0xca, 0x84, 0x18, 0x0b, 0xa4, 0xd1, 0x3b, + 0xb0, 0x5c, 0x33, 0x49, 0x3b, 0x8a, 0x49, 0xa2, 0xf6, 0x43, 0x90, 0xee, 0xc5, 0xf2, 0x1e, 0x5b, + 0xb5, 0x0c, 0x73, 0x10, 0xf4, 0xcd, 0xc7, 0x2a, 0x49, 0x66, 0x58, 0x08, 0x99, 0x15, 0xcb, 0xb5, + 0xf6, 0x43, 0x83, 0x71, 0x53, 0x3c, 0x4d, 0xb9, 0x25, 0xc6, 0x0a, 0x33, 0xe1, 0x1e, 0xc5, 0x25, + 0x23, 0x9e, 0xc0, 0xa8, 0x66, 0xe7, 0x63, 0xcf, 0x9d, 0xc5, 0x6c, 0xd5, 0x01, 0xdf, 0x14, 0xc8, + 0xc8, 0xd3, 0xbf, 0x43, 0x6a, 0xb8, 0x8a, 0xe3, 0x3e, 0x9a, 0x40, 0xa8, 0xf0, 0xef, 0x27, 0xf0, + 0x1a, 0x02, 0xe8, 0xa0, 0x3c, 0x4e, 0x2b, 0xee, 0x90, 0x35, 0x24, 0x6b, 0xd6, 0x8a, 0xa6, 0xe6, + 0xd2, 0x95, 0x89, 0x02, 0xde, 0xdf, 0xc1, 0x19, 0xab, 0x94, 0x17, 0xf8, 0x84, 0xab, 0xd0, 0x28, + 0x3a, 0xb9, 0xf2, 0x2f, 0x32, 0x4d, 0xcb, 0xfd, 0x6f, 0xf6, 0x96, 0xed, 0x17, 0x60, 0xfc, 0xd6, + 0xfa, 0x11, 0x9d, 0x8e, 0x83, 0xfe, 0xc6, 0xb6, 0x45, 0x8c, 0x7a, 0xe2, 0x5b, 0x59, 0x86, 0x40, + 0x44, 0xac, 0x0f, 0x7e, 0x0e, 0x27, 0xe5, 0x09, 0x22, 0xe0, 0x6e, 0x98, 0xf7, 0x75, 0xe5, 0x1a, + 0x64, 0xa7, 0x4b, 0x17, 0x8c, 0x9f, 0xba, 0x90, 0x7e, 0xea, 0x98, 0xf3, 0xd8, 0x41, 0x98, 0x3e, + 0x08, 0x6f, 0xb6, 0x18, 0x2c, 0xdb, 0x74, 0xf1, 0x67, 0xb4, 0xb1, 0x45, 0xbe, 0x2e, 0x0c, 0xf0, + 0xff, 0x9e, 0x90, 0xe1, 0x8e, 0x90, 0x72, 0x25, 0xa7, 0xa2, 0x4c, 0x34, 0xdf, 0x5e, 0x41, 0x5e, + 0x61, 0xd7, 0x26, 0x1d, 0x9f, 0x9d, 0x09, 0x31, 0x41, 0x04, 0x0f, 0x29, 0x6a, 0x7b, 0x02, 0x0c, + 0x81, 0x21, 0x1b, 0xa0, 0x1a, 0xbb, 0xc7, 0x46, 0xae, 0x36, 0x5c, 0x92, 0x9f, 0x03, 0x41, 0x6b, + 0xa1, 0x1c, 0xc9, 0x1d, 0xf9, 0x48, 0xe7, 0xc3, 0xf6, 0xb2, 0xcd, 0x56, 0xca, 0x6b, 0x31, 0xd9, + 0x85, 0x0a, 0x19, 0xf8, 0x13, 0x86, 0xab, 0x7c, 0x54, 0x97, 0x6a, 0xb5, 0x3f, 0x94, 0x50, 0x90, + 0x63, 0xdf, 0x9c, 0x65, 0xd1, 0x1d, 0x9d, 0x67, 0x0a, 0x39, 0x66, 0x73, 0x53, 0x4c, 0x5c, 0x8a, + 0xd4, 0x73, 0x9b, 0x29, 0x58, 0xb6, 0x58, 0xd1, 0x5f, 0x89, 0x4f, 0x88, 0x1b, 0xf4, 0x74, 0xee, + 0x25, 0x0d, 0x77, 0x04, 0x9c, 0xbb, 0x53, 0xa2, 0xfe, 0x14, 0x4c, 0xae, 0xcd, 0x4d, 0x24, 0xc4, + 0x2f, 0x6f, 0x0f, 0x69, 0x6b, 0x4b, 0x5f, 0x34, 0x11, 0x5c, 0x0b, 0xa8, 0x2b, 0x4d, 0xde, 0x9f, + 0x41, 0xac, 0x9a, 0x80, 0x76, 0x5a, 0xe2, 0xe1, 0xcd, 0x2c, 0x12, 0x85, 0x85, 0xce, 0x49, 0x1c, + 0xb4, 0xf8, 0x82, 0x10, 0xe6, 0x8a, 0x15, 0x00, 0xc7, 0x6f, 0xcb, 0xde, 0x9c, 0xd8, 0xb3, 0x21, + 0x42, 0xde, 0x80, 0xab, 0x1c, 0x7e, 0x14, 0x8e, 0xf7, 0x76, 0x36, 0x49, 0xbc, 0x0f, 0xb6, 0xbc, + 0xaf, 0x9e, 0x44, 0xde, 0x7a, 0x43, 0xb6, 0x9b, 0xf9, 0x93, 0xfa, 0x5f, 0xf1, 0x90, 0xb9, 0x16, + 0x3d, 0x14, 0x38, 0xf9, 0xae, 0x15, 0x04, 0x90, 0x09, 0x3d, 0x3e, 0xd1, 0x52, 0xfc, 0xfd, 0xea, + 0xa4, 0xb8, 0x9b, 0x28, 0x94, 0x6f, 0x71, 0xde, 0x05, 0x05, 0x71, 0x15, 0xb5, 0x42, 0xbd, 0x72, + 0x58, 0x01, 0x56, 0x3a, 0xfc, 0xf4, 0x7f, 0xc6, 0x7d, 0x03, 0xb9, 0x01, 0x2a, 0x58, 0x0e, 0xc3, + 0xee, 0x48, 0x5d, 0xb7, 0x25, 0x54, 0x48, 0x5b, 0x93, 0xdb, 0x59, 0x80, 0x06, 0xbc, 0x6b, 0x80, + 0xc5, 0xd2, 0xdc, 0xd2, 0x29, 0x88, 0x46, 0x68, 0xd2, 0xa7, 0x43, 0xa0, 0xa1, 0x66, 0x7d, 0x5a, + 0xb5, 0x1d, 0x28, 0x32, 0x18, 0x48, 0x1b, 0xc4, 0x17, 0x66, 0x65, 0x0e, 0xad, 0x96, 0x14, 0x1a, + 0x4e, 0x8b, 0xa5, 0xa9, 0xcb, 0x7d, 0xd8, 0xda, 0x52, 0xf9, 0x77, 0x5b, 0x18, 0x7e, 0x99, 0xd9, + 0xf9, 0x71, 0x1f, 0x47, 0x77, 0x85, 0xd6, 0x8d, 0xf1, 0x1f, 0x45, 0xaf, 0xf8, 0x22, 0x69, 0xe9, + 0x4c, 0x8f, 0x2e, 0xc2, 0x63, 0x0d, 0x90, 0x1d, 0x06, 0x71, 0x70, 0x99, 0x0d, 0x60, 0x4b, 0xe9, + 0x4f, 0xd5, 0x80, 0x6e, 0xf3, 0xbe, 0x09, 0x59, 0xda, 0x49, 0xa4, 0xec, 0x49, 0x44, 0xed, 0x4b, + 0x0b, 0xdc, 0xe1, 0xdd, 0x41, 0x5f, 0x6d, 0xb9, 0x4a, 0xda, 0x0a, 0x4f, 0xe4, 0x13, 0x65, 0x81, + 0x40, 0xc1, 0xea, 0x69, 0xa8, 0x63, 0xc5, 0x62, 0x3b, 0xca, 0xad, 0x97, 0xdf, 0x20, 0x45, 0xf6, + 0xaa, 0x4a, 0x5f, 0x57, 0x6b, 0x88, 0xc9, 0x11, 0xca, 0xac, 0x1e, 0x60, 0xf2, 0x63, 0x45, 0x52, + 0xf9, 0xc6, 0x7c, 0x13, 0x4e, 0x4c, 0x7b, 0xc2, 0xfc, 0x19, 0xb8, 0x1a, 0x35, 0xc1, 0x58, 0x42, + 0xd1, 0x21, 0xa0, 0x7e, 0xc1, 0x9a, 0xfe, 0xbd, 0xad, 0x61, 0xb9, 0x21, 0x06, 0xaa, 0x87, 0x2b, + 0x9a, 0x33, 0xc4, 0x87, 0x12, 0xb8, 0x07, 0xdf, 0xcc, 0x99, 0x60, 0x86, 0x8e, 0x92, 0x17, 0x7b, + 0x58, 0x07, 0x19, 0xf3, 0x34, 0xa8, 0xc6, 0xf5, 0x51, 0xdc, 0x10, 0x29, 0xb6, 0xbf, 0x5a, 0xc1, + 0xcf, 0x56, 0x97, 0x91, 0x91, 0x0f, 0x69, 0xc6, 0x94, 0x98, 0xe7, 0x0a, 0x09, 0xba, 0xe2, 0x46, + 0x22, 0xb3, 0x7c, 0xa3, 0x96, 0x4d, 0xdf, 0x4a, 0x1f, 0x79, 0xb9, 0xf5, 0xc3, 0x9c, 0x94, 0x13, + 0x0f, 0x4b, 0x6d, 0xd0, 0xe5, 0xf8, 0x37, 0x48, 0x23, 0xc8, 0x07, 0x12, 0xb2, 0x11, 0xed, 0xc5, + 0xf1, 0xa2, 0xe5, 0x95, 0xc6, 0xe0, 0xcc, 0x9a, 0x0c, 0xea, 0x10, 0x8b, 0xd1, 0x3f, 0xfe, 0x77, + 0xfa, 0x4d, 0x5e, 0x36, 0x3d, 0xb8, 0x26, 0x1f, 0x66, 0x65, 0xf9, 0x49, 0xe2, 0x66, 0xeb, 0xdb, + 0xca, 0x41, 0xb3, 0xae, 0x4d, 0xfa, 0x50, 0x56, 0x5c, 0x50, 0x0b, 0x46, 0x53, 0xc8, 0x8c, 0x7c, + 0x0d, 0x3d, 0x46, 0xe6, 0x23, 0x7b, 0x47, 0x23, 0x78, 0xdb, 0x63, 0xfb, 0xf1, 0x22, 0x02, 0x15, + 0x62, 0x05, 0x55, 0xaa, 0xd3, 0x71, 0x75, 0x54, 0x48, 0x17, 0x27, 0x39, 0x95, 0x1d, 0xa8, 0x99, + 0x28, 0xa3, 0x4f, 0xce, 0xa7, 0x6a, 0x0b, 0x9b, 0x83, 0x20, 0xbc, 0xc1, 0xea, 0xa6, 0x60, 0x4f, + 0x5e, 0xec, 0x60, 0x15, 0x6a, 0x78, 0xe6, 0xe9, 0x81, 0x6c, 0x18, 0x0f, 0x55, 0x35, 0xec, 0x1b, + 0x06, 0xba, 0xb1, 0x6f, 0x7d, 0xcd, 0xe4, 0x7e, 0x1d, 0x8f, 0x3e, 0xb1, 0xe2, 0x5a, 0xed, 0x4a, + 0xc5, 0x62, 0x66, 0xec, 0xca, 0xcc, 0xed, 0x0c, 0x83, 0x7c, 0xca, 0x15, 0x78, 0x47, 0x29, 0xb0, + 0xb3, 0x67, 0x7f, 0x49, 0xb3, 0xfd, 0x10, 0x1b, 0x1e, 0xc7, 0xa4, 0x4a, 0xff, 0x9e, 0xca, 0xb9, + 0x3a, 0xf6, 0x95, 0x55, 0xa5, 0x3d, 0x55, 0x5a, 0xb9, 0xff, 0x07, 0xb7, 0x77, 0xaf, 0x4d, 0x0d, + 0x6d, 0x92, 0x26, 0x72, 0x0f, 0xc1, 0x70, 0xd3, 0x71, 0xb0, 0xad, 0xdc, 0xae, 0x9e, 0x33, 0x15, + 0xfb, 0x6d, 0xac, 0xed, 0x5a, 0xf1, 0x0c, 0xc6, 0x4e, 0x1f, 0xcf, 0x03, 0xd1, 0xb9, 0x21, 0xeb, + 0x35, 0xc1, 0x72, 0x08, 0xfe, 0x1f, 0xce, 0x85, 0x36, 0xf5, 0xb1, 0xc5, 0x6d, 0xcb, 0x7f, 0x40, + 0xc7, 0x02, 0x56, 0xdd, 0x0c, 0x86, 0x43, 0xde, 0xed, 0x1f, 0x11, 0xd8, 0xb3, 0x8d, 0x44, 0x8c, + 0x64, 0x2e, 0x43, 0x97, 0xd4, 0x5f, 0xc0, 0x79, 0xc0, 0x3b, 0xf2, 0x67, 0xe8, 0xa6, 0x08, 0xc3, + 0x45, 0x14, 0x25, 0x46, 0x33, 0xd8, 0x83, 0x43, 0x8b, 0x0c, 0x72, 0x4f, 0xca, 0x4e, 0x4c, 0xa8, + 0x31, 0xf0, 0x7d, 0xef, 0xe1, 0xd8, 0xcc, 0xa5, 0x5b, 0x3a, 0xee, 0x4e, 0xc1, 0x6f, 0x48, 0x4b, + 0xe8, 0xb0, 0x83, 0x7d, 0x55, 0xe7, 0x80, 0xca, 0x0c, 0xed, 0xe7, 0x6d, 0x10, 0x35, 0x9d, 0xc9, + 0x44, 0x0f, 0x7a, 0x81, 0xd5, 0x5e, 0xd0, 0x18, 0x3b, 0x38, 0x13, 0x84, 0x9e, 0xe1, 0x3b, 0x00, + 0xb9, 0xf6, 0xc0, 0x44, 0xcd, 0x8a, 0x84, 0x0c, 0x50, 0x2b, 0x8c, 0x61, 0xb2, 0x14, 0x9b, 0xbd, + 0x22, 0xaa, 0x3a, 0x6c, 0x85, 0x48, 0xa9, 0xc1, 0x0e, 0xf7, 0xc2, 0xc6, 0xe7, 0xa6, 0xf5, 0xfb, + 0xb0, 0xe6, 0xe7, 0x77, 0xa5, 0xa8, 0xe1, 0xea, 0xda, 0x63, 0xeb, 0x48, 0x7c, 0x12, 0x8f, 0xa1, + 0x1f, 0x01, 0xa6, 0x5e, 0x24, 0xc6, 0x4d, 0x58, 0x29, 0x50, 0xf3, 0x0e, 0x54, 0x37, 0xee, 0x39, + 0x1c, 0xc1, 0x22, 0xb3, 0x31, 0xc7, 0xa3, 0x7b, 0x47, 0x63, 0x7e, 0x60, 0x23, 0xe5, 0xe4, 0xa5, + 0x47, 0x34, 0x8e, 0x12, 0xa0, 0x1b, 0x88, 0x53, 0xc3, 0x03, 0x1b, 0x9b, 0xba, 0xaa, 0x06, 0xad, + 0x77, 0xd3, 0x8a, 0x2d, 0xe1, 0xe9, 0x18, 0xb2, 0xa5, 0x17, 0x78, 0x34, 0x9c, 0x11, 0x69, 0xc2, + 0x5c, 0xbd, 0x1b, 0xa4, 0xa0, 0xb0, 0x49, 0xf2, 0x14, 0x78, 0x3d, 0x6f, 0x16, 0xd2, 0x87, 0x97, + 0xd0, 0x63, 0xf2, 0x1d, 0x70, 0x33, 0x06, 0x2c, 0x1d, 0xf5, 0xc8, 0x07, 0x0e, 0x04, 0x92, 0x78, + 0x6a, 0xf7, 0xdf, 0xf9, 0xf9, 0x72, 0x20, 0x87, 0x23, 0x88, 0xe6, 0xfc, 0x6e, 0xee, 0xb5, 0x96, + 0x7e, 0xa0, 0xb8, 0x5a, 0xd1, 0x3e, 0x58, 0x73, 0xde, 0xfe, 0x04, 0x58, 0x69, 0x30, 0x0a, 0x9c, + 0x71, 0x23, 0x02, 0x83, 0xb4, 0xca, 0xe2, 0x14, 0x12, 0x96, 0xcd, 0x78, 0xbd, 0x50, 0xae, 0x81, + 0x91, 0xd6, 0x71, 0x9d, 0x41, 0xee, 0xc5, 0x27, 0xff, 0xcf, 0xb3, 0xd6, 0x84, 0x7b, 0xce, 0x8f, + 0xc5, 0x70, 0x84, 0x80, 0xe0, 0xec, 0x0f, 0xe9, 0x29, 0x47, 0x6b, 0x31, 0xd8, 0x0c, 0xb7, 0x2f, + 0xda, 0x3a, 0x3e, 0xd9, 0x5b, 0x2f, 0x07, 0x77, 0x45, 0x11, 0xa0, 0x04, 0x8c, 0x4e, 0x5a, 0x0a, + 0x19, 0x04, 0x51, 0xde, 0xde, 0x50, 0xfb, 0x4b, 0x04, 0x25, 0x66, 0xf6, 0xbf, 0x00, 0xe7, 0x9b, + 0x3c, 0x6a, 0xf4, 0x2c, 0x20, 0xd4, 0x8a, 0xb9, 0xaa, 0x01, 0xe7, 0xa9, 0x93, 0x87, 0x2d, 0x87, + 0x2e, 0x9e, 0xed, 0x1a, 0x9d, 0xa7, 0x3f, 0x17, 0x69, 0xc6, 0xb9, 0x7a, 0x96, 0x3c, 0x40, 0xd8, + 0x91, 0xb1, 0x1c, 0xde, 0x7f, 0x69, 0x1c, 0xb2, 0x10, 0xfd, 0xa8, 0x7a, 0x71, 0x83, 0x50, 0xdc, + 0x83, 0xf5, 0x32, 0xcb, 0xb6, 0x81, 0x35, 0xb2, 0xf2, 0x0e, 0x9a, 0x9e, 0x20, 0xac, 0x24, 0x11, + 0xe4, 0x04, 0x91, 0x86, 0x79, 0x74, 0x96, 0x9f, 0x36, 0x82, 0x64, 0x11, 0x0c, 0xca, 0x67, 0xac, + 0x5c, 0xfd, 0xf3, 0xa5, 0x31, 0xc0, 0x14, 0x94, 0x13, 0x47, 0x36, 0x16, 0x27, 0x52, 0x22, 0x27, + 0xe8, 0xfd, 0xba, 0x80, 0xa0, 0xee, 0xc8, 0x4b, 0x85, 0x97, 0x07, 0x24, 0x7a, 0x68, 0x2d, 0xd4, + 0x43, 0x02, 0xa1, 0xcf, 0x4c, 0x67, 0x96, 0x35, 0xa9, 0x86, 0xd6, 0xa6, 0x0b, 0xca, 0xe9, 0xe9, + 0x46, 0x14, 0xd1, 0xaf, 0xd4, 0x20, 0x1a, 0x38, 0xa5, 0x4d, 0x4e, 0x27, 0x1d, 0x5f, 0x30, 0x67, + 0x9f, 0xeb, 0xb8, 0xae, 0x0d, 0x43, 0xb7, 0x4b, 0x12, 0x89, 0xbd, 0x22, 0x47, 0x85, 0x23, 0x73, + 0x20, 0xa8, 0x02, 0x58, 0xef, 0x23, 0x59, 0x24, 0xd8, 0x3a, 0x71, 0x83, 0x5c, 0xef, 0xbd, 0x52, + 0x9b, 0x92, 0x52, 0x56, 0xc3, 0x4f, 0x70, 0x0c, 0xfc, 0xd9, 0x3c, 0xb8, 0xf8, 0x54, 0xb5, 0xf7, + 0x99, 0x0a, 0xb1, 0x34, 0x2a, 0x12, 0x1f, 0x0c, 0x46, 0x64, 0x62, 0x52, 0xb4, 0xd0, 0x1a, 0x3a, + 0xda, 0x94, 0x64, 0xe6, 0x7a, 0x1a, 0xde, 0x63, 0x2d, 0xda, 0x1f, 0x8e, 0x80, 0x3b, 0x65, 0xad, + 0x0f, 0xcd, 0x40, 0x82, 0x83, 0xe6, 0x3c, 0x1a, 0x61, 0xd4, 0xef, 0x92, 0x9a, 0x5c, 0x48, 0x96, + 0xb5, 0x68, 0xc4, 0x89, 0xfb, 0xe1, 0xbc, 0x49, 0x86, 0x75, 0xcd, 0x00, 0xf9, 0x3d, 0x88, 0xce, + 0x5f, 0x7b, 0x36, 0x61, 0xd2, 0xcc, 0xfe, 0x31, 0xa2, 0x52, 0x72, 0x28, 0xf9, 0x97, 0xe4, 0x65, + 0x80, 0x3b, 0x32, 0x53, 0x6e, 0x46, 0xb7, 0xd7, 0x54, 0xea, 0xe8, 0xcd, 0x26, 0x47, 0x2b, 0x18, + 0xa9, 0xe1, 0xd3, 0x8e, 0x28, 0xec, 0x85, 0xcd, 0xf0, 0xa2, 0xdd, 0x67, 0x2e, 0xdf, 0xe1, 0xf1, + 0xeb, 0xff, 0xa7, 0xe9, 0x25, 0x40, 0x28, 0x94, 0x17, 0xc7, 0x6e, 0x2c, 0x1f, 0xda, 0x0e, 0xde, + 0xc6, 0x61, 0x9f, 0x6d, 0xd8, 0xc3, 0x59, 0x6a, 0xad, 0x02, 0xe7, 0xda, 0xe0, 0xfb, 0xff, 0xfc, + 0x06, 0x13, 0xc0, 0x36, 0x84, 0x5e, 0x2b, 0x58, 0x17, 0xa2, 0xcb, 0x44, 0x85, 0x81, 0x7d, 0xf8, + 0xc7, 0x63, 0x67, 0x02, 0x5e, 0x88, 0xe1, 0x84, 0xc0, 0xf6, 0x52, 0xc0, 0x16, 0x94, 0x1a, 0xd5, + 0x54, 0x9a, 0xde, 0xf3, 0xc8, 0xc2, 0x2b, 0x21, 0x4e, 0x4e, 0xe7, 0x9d, 0x55, 0xd2, 0xc6, 0xeb, + 0x76, 0xd5, 0x8c, 0x13, 0x6b, 0xeb, 0x17, 0x38, 0xdd, 0x20, 0xea, 0xbb, 0xe3, 0xc6, 0x42, 0xd9, + 0xd8, 0xa3, 0x45, 0x98, 0xd8, 0x51, 0xab, 0xdf, 0xee, 0xd3, 0xc5, 0xda, 0xe6, 0x93, 0xb9, 0xd8, + 0xbf, 0x6e, 0x22, 0xec, 0xc5, 0xd5, 0x91, 0x2b, 0x3d, 0x0a, 0xfe, 0x63, 0xc4, 0x94, 0x80, 0xd0, + 0xbe, 0xcd, 0x12, 0xb3, 0xe7, 0x51, 0x01, 0x6d, 0x0f, 0x51, 0x46, 0x3e, 0xe4, 0xf1, 0x31, 0x95, + 0x25, 0x8d, 0xdc, 0xf1, 0x02, 0x0b, 0x3b, 0xaa, 0x11, 0x59, 0x5b, 0x03, 0x30, 0x8f, 0x1b, 0x43, + 0xaf, 0x2b, 0x33, 0xb5, 0xcf, 0x6f, 0x53, 0xf9, 0x17, 0x3c, 0xeb, 0x7b, 0xf4, 0x62, 0x39, 0x00, + 0xa4, 0x36, 0x93, 0x42, 0xc9, 0xfe, 0xf5, 0x75, 0xc9, 0x8a, 0x41, 0xd4, 0x86, 0x5f, 0xe5, 0x0b, + 0xa6, 0x94, 0xb4, 0xab, 0x8b, 0x77, 0x58, 0x3d, 0x3d, 0x38, 0xef, 0x3f, 0xd5, 0x75, 0x78, 0x1b, + 0x67, 0x3b, 0x8f, 0xa7, 0x5a, 0x07, 0x60, 0x2f, 0x94, 0x9c, 0x55, 0xf5, 0x2f, 0x8c, 0x37, 0xad, + 0x2b, 0x1c, 0x13, 0x77, 0xa9, 0x87, 0x08, 0x76, 0xed, 0x69, 0xbe, 0xf3, 0xb6, 0x48, 0xef, 0xb8, + 0xaa, 0x98, 0xfd, 0x79, 0x3c, 0x67, 0xc1, 0xd8, 0x6a, 0xb0, 0xad, 0x00, 0x3a, 0xd5, 0xae, 0xf9, + 0xbe, 0x3c, 0xb1, 0x39, 0x06, 0xf1, 0x92, 0x70, 0x73, 0xc3, 0x63, 0xad, 0x84, 0x29, 0x0f, 0x67, + 0x81, 0x0f, 0x8d, 0xd3, 0x20, 0x9c, 0x75, 0x13, 0x9b, 0x66, 0xfc, 0x3c, 0x8a, 0x89, 0x8d, 0x6d, + 0x16, 0xec, 0x23, 0xf2, 0xdb, 0x26, 0x22, 0x61, 0xfa, 0xcb, 0x4b, 0xf5, 0x9c, 0xd7, 0x3c, 0x53, + 0x51, 0x7a, 0x4f, 0xc7, 0x3c, 0x02, 0x3f, 0xfa, 0x4f, 0x29, 0x13, 0x84, 0xde, 0x3c, 0x21, 0xad, + 0xb3, 0x77, 0x83, 0x3b, 0x3f, 0x50, 0x4d, 0x56, 0xd6, 0x55, 0x79, 0xf7, 0x4b, 0xdf, 0x72, 0x74, + 0x60, 0x48, 0x9f, 0x52, 0xa9, 0x53, 0x73, 0xf7, 0x93, 0x1c, 0xf5, 0x32, 0xa7, 0xb2, 0xc3, 0x7e, + 0x5f, 0xa4, 0x24, 0xbf, 0x33, 0x28, 0x31, 0xd2, 0x02, 0x10, 0x75, 0x20, 0xa1, 0x50, 0x33, 0x9c, + 0xda, 0xaf, 0x6b, 0x08, 0xc7, 0xf4, 0xb8, 0x89, 0xbd, 0x9c, 0x26, 0xe0, 0x5a, 0x95, 0x1d, 0x45, + 0x42, 0x3f, 0xd0, 0x78, 0x1b, 0xf7, 0xd7, 0x37, 0xf9, 0x08, 0xa1, 0xd9, 0x6e, 0x78, 0x34, 0x0e, + 0xab, 0x8e, 0xcc, 0x97, 0xe7, 0x32, 0xaa, 0x2c, 0x68, 0x1b, 0x83, 0xb9, 0x9a, 0x3b, 0x3a, 0xe7, + 0xd0, 0x52, 0xa4, 0xf2, 0x97, 0xf1, 0x1c, 0x11, 0x7e, 0xc6, 0x52, 0x53, 0x43, 0x8d, 0x37, 0xad, + 0x7d, 0xba, 0x6d, 0xab, 0xa4, 0x05, 0x34, 0xad, 0x60, 0x15, 0x13, 0xe3, 0x2f, 0x55, 0xbc, 0x1b, + 0xef, 0x1c, 0x6c, 0x58, 0xcc, 0x3d, 0xf6, 0x4b, 0x16, 0xe3, 0x1a, 0xb5, 0xeb, 0x51, 0xc3, 0xa9, + 0xdf, 0x1b, 0x76, 0x69, 0x4c, 0xdd, 0xe7, 0x8d, 0xb5, 0x8b, 0xfe, 0x28, 0xef, 0x2f, 0xda, 0xdc, + 0x50, 0xf8, 0xcc, 0xc4, 0x60, 0x41, 0xad, 0x6e, 0x6a, 0x43, 0xb6, 0x53, 0x75, 0xa8, 0x57, 0xc6, + 0x48, 0x38, 0x6a, 0xd0, 0x91, 0x99, 0x84, 0x6c, 0x44, 0xd9, 0x87, 0x9c, 0x20, 0xaf, 0x9e, 0x49, + 0x72, 0xcb, 0xeb, 0x18, 0x17, 0x1c, 0x6b, 0xa5, 0x72, 0x45, 0x37, 0x85, 0xe2, 0x50, 0xbc, 0xfd, + 0x02, 0x4b, 0x1e, 0x45, 0x78, 0x8a, 0x16, 0xef, 0xce, 0x9f, 0x76, 0x3f, 0x11, 0xd3, 0x96, 0x5d, + 0xd1, 0x69, 0x10, 0x59, 0x04, 0xd2, 0xf5, 0x1f, 0x8e, 0xb6, 0x13, 0xe0, 0x05, 0x82, 0x6a, 0xc5, + 0x78, 0x02, 0x54, 0x63, 0xb5, 0x2b, 0x7d, 0x27, 0x8f, 0xe7, 0xed, 0xba, 0xcb, 0xe1, 0xb5, 0x23, + 0x03, 0x12, 0x17, 0xe6, 0x07, 0x1e, 0x3b, 0x05, 0xf9, 0xa0, 0xa5, 0x09, 0x33, 0x50, 0x4c, 0x46, + 0x9a, 0x47, 0xdd, 0xc6, 0x37, 0x1b, 0xa1, 0x76, 0xd8, 0x05, 0x5d, 0x49, 0xef, 0xbf, 0xa3, 0xea, + 0xdd, 0x25, 0x1c, 0x70, 0xee, 0x46, 0xfc, 0x07, 0x10, 0x21, 0x5b, 0xaf, 0x89, 0x71, 0x1c, 0x48, + 0x4f, 0x8d, 0x12, 0xf4, 0x27, 0x68, 0xb3, 0xac, 0xc3, 0xad, 0xbb, 0xde, 0xa9, 0x1e, 0xb2, 0x99, + 0xbc, 0xbf, 0xbe, 0xbb, 0x0e, 0x09, 0xb3, 0xc8, 0xae, 0xbd, 0xe1, 0xc5, 0xc8, 0x3b, 0x0d, 0xe3, + 0x18, 0x41, 0xb0, 0xc0, 0xf6, 0x09, 0x66, 0x06, 0x3b, 0xe4, 0xfb, 0xb4, 0x4f, 0x27, 0x5b, 0x19, + 0xc6, 0x98, 0x63, 0x1d, 0x75, 0x1d, 0x5d, 0x1c, 0x20, 0xc5, 0x49, 0x8c, 0x74, 0x75, 0xfa, 0x0b, + 0x64, 0xb3, 0x2a, 0x48, 0x6e, 0x2b, 0xfd, 0x4b, 0x3b, 0xa0, 0x51, 0xc6, 0xe8, 0x94, 0x0c, 0x77, + 0x0c, 0x7f, 0x8a, 0x35, 0x6d, 0xba, 0x6d, 0x02, 0x94, 0xec, 0xe5, 0xed, 0xc2, 0x9f, 0xfd, 0x7f, + 0x40, 0x27, 0xc1, 0x62, 0x70, 0xc6, 0x36, 0xf4, 0x49, 0xd7, 0x59, 0x08, 0x81, 0x64, 0x95, 0x2e, + 0xe0, 0xc4, 0xf0, 0x76, 0x81, 0x06, 0xef, 0xc3, 0x5e, 0x76, 0x08, 0x6a, 0xaf, 0x48, 0x41, 0x5b, + 0x41, 0x4d, 0x64, 0xe5, 0xd9, 0x62, 0xec, 0x96, 0x4e, 0x78, 0x00, 0x42, 0xd9, 0x67, 0xac, 0x10, + 0xba, 0x26, 0x7b, 0xf9, 0x15, 0xd5, 0x42, 0xeb, 0xf9, 0x02, 0x99, 0xc5, 0xdd, 0x89, 0xab, 0x23, + 0xc6, 0x07, 0x96, 0x92, 0xb7, 0xb5, 0xa9, 0x6e, 0x30, 0x5e, 0xc8, 0x17, 0x32, 0x66, 0x5d, 0xf7, + 0xb4, 0x55, 0x16, 0xb4, 0xe7, 0x97, 0x1c, 0xf4, 0xe6, 0xe6, 0x7e, 0x8a, 0xe8, 0x56, 0x35, 0x5a, + 0xed, 0xf2, 0x0f, 0x1d, 0xbc, 0x97, 0x1c, 0x12, 0xa9, 0x3d, 0xd0, 0xdd, 0x9c, 0xe6, 0x4c, 0xc3, + 0x7b, 0x74, 0xf5, 0x22, 0x90, 0xa4, 0xfe, 0x8c, 0x88, 0xea, 0xd6, 0x4b, 0x5b, 0x90, 0x3e, 0x6b, + 0x60, 0x89, 0x0b, 0xa1, 0xf3, 0xdc, 0xf9, 0x67, 0x84, 0x27, 0x37, 0x69, 0xb9, 0x79, 0x02, 0xa0, + 0x23, 0x18, 0x3c, 0x46, 0xa4, 0xa7, 0x3f, 0x3e, 0x16, 0xb6, 0xdc, 0xba, 0x13, 0x32, 0x55, 0xf9, + 0xd9, 0x18, 0x4a, 0xd3, 0x9b, 0x1c, 0x2a, 0xb1, 0xf1, 0x2d, 0xca, 0x54, 0xff, 0x9d, 0xc9, 0x6c, + 0x2a, 0x71, 0x53, 0x06, 0x88, 0x58, 0xef, 0xd4, 0x52, 0x39, 0x6d, 0x23, 0xe0, 0x3c, 0x57, 0x25, + 0x15, 0x8f, 0x9c, 0x57, 0x44, 0x88, 0x0e, 0x70, 0x05, 0x0c, 0x57, 0x6b, 0xef, 0x91, 0xf4, 0xcb, + 0xea, 0xba, 0xe0, 0x94, 0x23, 0xb3, 0x96, 0xb0, 0xd7, 0x43, 0xaf, 0xcd, 0x5d, 0xc4, 0xf2, 0x67, + 0x0b, 0x1f, 0xab, 0x8c, 0x58, 0xcf, 0xeb, 0x25, 0xb2, 0xa2, 0xc6, 0xc8, 0x44, 0x06, 0x56, 0xa9, + 0x21, 0x98, 0xc0, 0xfe, 0x2b, 0x50, 0x71, 0x6e, 0x32, 0xc8, 0x92, 0x00, 0xbf, 0x9e, 0x21, 0x64, + 0x3f, 0x40, 0x34, 0x05, 0x0f, 0x3e, 0xc2, 0xbc, 0x8d, 0x62, 0xf8, 0x47, 0x63, 0xf8, 0xa6, 0xc7, + 0x31, 0x4f, 0xdf, 0x02, 0x2d, 0x8e, 0xd6, 0x61, 0x87, 0x41, 0xf2, 0xae, 0x6d, 0x96, 0x80, 0x98, + 0xea, 0xd0, 0xce, 0xea, 0x89, 0xcd, 0x47, 0xc9, 0x1a, 0x3e, 0xe9, 0x38, 0x99, 0x9f, 0x34, 0x4b, + 0xe2, 0xf7, 0xfb, 0xcd, 0xeb, 0x42, 0xfa, 0x62, 0x43, 0x17, 0xbd, 0x7c, 0xe7, 0xaf, 0xb8, 0xf4, + 0x69, 0x65, 0x03, 0xe4, 0x17, 0x57, 0x8b, 0x0a, 0x90, 0x78, 0xc2, 0x2a, 0x49, 0x14, 0x11, 0x2a, + 0x0f, 0x88, 0x2f, 0x3b, 0x29, 0x94, 0x7f, 0xee, 0xdd, 0xcd, 0xd9, 0x40, 0x7a, 0xa6, 0x96, 0xb9, + 0x3a, 0xb9, 0x2e, 0x81, 0x08, 0xe9, 0x1d, 0x74, 0x08, 0x29, 0xd9, 0xc2, 0xea, 0x1b, 0xb2, 0x02, + 0xbf, 0xc8, 0x9c, 0x27, 0xe1, 0x24, 0x3b, 0x55, 0x15, 0x00, 0xcf, 0x4a, 0x17, 0x09, 0x7d, 0x56, + 0x8d, 0xb9, 0xcf, 0x24, 0xc4, 0x7a, 0xe2, 0x7b, 0x10, 0x3f, 0x3d, 0x00, 0x8b, 0xbc, 0xa6, 0x66, + 0xa6, 0x22, 0x4f, 0x66, 0x1e, 0x43, 0x25, 0x5a, 0x59, 0xc3, 0x48, 0x4b, 0x46, 0x02, 0xf1, 0x3d, + 0x22, 0x64, 0xe0, 0xd7, 0x1c, 0xc6, 0xd8, 0x1e, 0x62, 0x3a, 0xdb, 0xf5, 0x1b, 0xe6, 0xbe, 0x30, + 0x27, 0xa8, 0x4f, 0x99, 0x66, 0x9a, 0xdd, 0xc0, 0xdb, 0x27, 0xcf, 0xa4, 0x40, 0x7a, 0x72, 0x14, + 0x5c, 0x3f, 0x46, 0x38, 0xe0, 0x4d, 0x6b, 0x20, 0x98, 0x66, 0x0f, 0x25, 0x3a, 0x86, 0x4c, 0xaf, + 0x9a, 0xb8, 0xb7, 0x2c, 0x9b, 0x41, 0x47, 0x72, 0x0e, 0xc6, 0x87, 0x7e, 0x97, 0x8d, 0xe8, 0x66, + 0x1b, 0x95, 0xad, 0xdb, 0xa7, 0x08, 0x70, 0xaa, 0x28, 0x31, 0x1c, 0x23, 0xc8, 0xca, 0xb7, 0xa8, + 0x4b, 0x1a, 0xbc, 0x7e, 0x9f, 0x5c, 0xca, 0xca, 0xdb, 0x54, 0x97, 0xbd, 0x58, 0x2c, 0x88, 0xda, + 0xac, 0x6d, 0x7b, 0x23, 0xe4, 0x55, 0xb2, 0x99, 0xa6, 0x0e, 0x22, 0xfb, 0xf2, 0x5f, 0xe2, 0x04, + 0x5d, 0xc8, 0x56, 0x31, 0x99, 0x3e, 0x1c, 0x02, 0x74, 0xaa, 0x27, 0x36, 0xd5, 0x61, 0xc0, 0x92, + 0xe9, 0xc4, 0xd8, 0x72, 0x35, 0x0a, 0x14, 0xbf, 0x25, 0x02, 0x76, 0x21, 0xd7, 0xbf, 0x7e, 0x3f, + 0x82, 0xf8, 0x13, 0x0b, 0x45, 0x9c, 0xc3, 0x0d, 0xd7, 0x3e, 0xa8, 0xbe, 0xff, 0x37, 0xec, 0x70, + 0x23, 0x0a, 0x5d, 0x77, 0x22, 0x75, 0xd4, 0xcf, 0x1c, 0xaf, 0xd7, 0xd7, 0x19, 0xf2, 0x09, 0xc1, + 0x46, 0xa3, 0x8c, 0x2f, 0xf2, 0x98, 0x2b, 0x3a, 0x0d, 0x6e, 0x66, 0x29, 0x05, 0x8f, 0xa4, 0x68, + 0xf4, 0x02, 0x30, 0xd3, 0x7c, 0xea, 0xc4, 0x98, 0xea, 0x2c, 0x27, 0x2c, 0x46, 0x05, 0xa6, 0xa8, + 0xd0, 0xe7, 0x25, 0xd4, 0x23, 0xa8, 0x9e, 0x29, 0x0e, 0x17, 0xf8, 0x28, 0x19, 0x2b, 0x1b, 0x4b, + 0xff, 0xdc, 0xa8, 0x88, 0x3d, 0x8d, 0x4c, 0x2b, 0x3b, 0xb6, 0xd1, 0x45, 0xf9, 0x70, 0x1c, 0xf4, + 0x2e, 0xb6, 0xcc, 0x82, 0xee, 0x91, 0xb1, 0x39, 0x68, 0x63, 0xa8, 0xe9, 0x7f, 0xae, 0x12, 0x27, + 0x71, 0xed, 0x01, 0xe4, 0x12, 0x8f, 0xea, 0x7f, 0x94, 0x5e, 0x5d, 0xab, 0x36, 0x1c, 0xdc, 0xb7, + 0xec, 0xff, 0xb3, 0x59, 0x49, 0x51, 0x56, 0x7b, 0xff, 0xc2, 0xe6, 0x42, 0xf0, 0x6a, 0xac, 0xd0, + 0x46, 0x47, 0x4f, 0xb6, 0x57, 0x27, 0x9f, 0xa4, 0xbd, 0x2d, 0x21, 0x36, 0xe3, 0x11, 0xaa, 0xf9, + 0xc3, 0x95, 0xc9, 0x7f, 0x65, 0x7e, 0x6e, 0x78, 0x9f, 0xe4, 0x65, 0x09, 0x3d, 0xa7, 0xd2, 0xda, + 0x2c, 0x92, 0xc9, 0xf7, 0x5e, 0x6c, 0x3d, 0xf6, 0x5c, 0x5a, 0xf3, 0x67, 0xcd, 0x71, 0xf2, 0xdf, + 0x66, 0xc5, 0xc2, 0x83, 0x60, 0xea, 0x39, 0xf3, 0x90, 0x90, 0xd2, 0x71, 0x71, 0x67, 0xb9, 0xd4, + 0x50, 0xd6, 0xe4, 0x11, 0x07, 0xac, 0xc1, 0x26, 0x8a, 0x73, 0xb5, 0xb4, 0x3e, 0xbd, 0xcf, 0x08, + 0x7e, 0x6d, 0x15, 0xf1, 0xc8, 0x49, 0x79, 0x6e, 0x64, 0xcc, 0x25, 0xa4, 0x85, 0x19, 0x61, 0x72, + 0x72, 0xa1, 0xd8, 0x76, 0x53, 0x18, 0xe4, 0x11, 0x46, 0x40, 0xd4, 0xab, 0x74, 0x46, 0xc7, 0x4c, + 0x0a, 0x6e, 0x8f, 0xe2, 0x17, 0x1b, 0x39, 0x07, 0xad, 0xea, 0xf4, 0x56, 0xbb, 0x9c, 0x00, 0xff, + 0xfb, 0x7c, 0x48, 0x0c, 0xb1, 0x13, 0x9e, 0x61, 0xf0, 0x12, 0xb4, 0x35, 0xa5, 0x5f, 0x4c, 0xb2, + 0x43, 0x49, 0x94, 0x81, 0xba, 0xf7, 0x33, 0x7f, 0x93, 0xd1, 0x70, 0xce, 0x36, 0x9a, 0x43, 0xb8, + 0x5c, 0x08, 0x3b, 0x1e, 0xd0, 0x37, 0x81, 0x58, 0x60, 0xc8, 0x05, 0xf1, 0x55, 0xcd, 0x14, 0x8a, + 0x21, 0xf3, 0x6d, 0x05, 0x7a, 0xbd, 0x86, 0x9f, 0xdb, 0x1d, 0xea, 0x09, 0x6d, 0x90, 0xfa, 0x27, + 0xf8, 0xc4, 0x8d, 0xd4, 0x26, 0x99, 0x93, 0x6a, 0x28, 0x8a, 0xb5, 0xcf, 0x26, 0xc5, 0xa5, 0x0f, + 0xa7, 0xe8, 0xfa, 0xa7, 0x55, 0x2a, 0x74, 0x62, 0xdb, 0x79, 0x4f, 0xbf, 0x44, 0x91, 0x5c, 0x0e, + 0x9e, 0xe2, 0x52, 0xec, 0x3c, 0xdf, 0xd6, 0x35, 0xe1, 0x17, 0x8e, 0x10, 0x89, 0x0c, 0x35, 0x37, + 0x44, 0x95, 0x4b, 0xd8, 0x84, 0x46, 0x20, 0x44, 0x91, 0x01, 0x2f, 0xbb, 0x83, 0x41, 0xee, 0x5b, + 0x6d, 0xf0, 0xd2, 0x3b, 0x7d, 0xdf, 0x88, 0x67, 0xee, 0x46, 0x48, 0x85, 0xf6, 0xc9, 0xa8, 0x39, + 0xa9, 0x02, 0xcb, 0xe0, 0x72, 0xea, 0xff, 0x9e, 0x9d, 0x77, 0xcd, 0x86, 0xff, 0xe4, 0x25, 0x18, + 0x43, 0x82, 0xc4, 0xda, 0x07, 0x16, 0xc8, 0x23, 0xf7, 0xc1, 0x9d, 0x0b, 0x42, 0x40, 0x74, 0xb0, + 0x54, 0x88, 0x63, 0xd1, 0xf7, 0xb6, 0x9e, 0x29, 0xf1, 0x40, 0xa2, 0x1d, 0x3f, 0x22, 0x19, 0x37, + 0xaa, 0x1e, 0x97, 0xb0, 0x9c, 0x5d, 0xda, 0x10, 0x63, 0x03, 0xd2, 0x0d, 0xcc, 0x16, 0x8c, 0x48, + 0x85, 0xcf, 0xae, 0x2d, 0x2e, 0x20, 0xe5, 0x7e, 0xd9, 0xbc, 0xd5, 0xd6, 0x89, 0x55, 0x3c, 0xea, + 0x00, 0x92, 0x1e, 0x67, 0x60, 0x04, 0xc8, 0xff, 0x31, 0xd9, 0x81, 0xc2, 0xf6, 0x4d, 0xcf, 0x3d, + 0xf3, 0xc0, 0xe6, 0x98, 0x8f, 0xbc, 0x32, 0x44, 0x04, 0xdb, 0x5b, 0x3c, 0xc0, 0x0b, 0x16, 0x2b, + 0x0f, 0x71, 0x8b, 0x76, 0xfa, 0x38, 0x00, 0xa3, 0xeb, 0x43, 0xd2, 0x20, 0xac, 0x71, 0x50, 0x2a, + 0xb0, 0x76, 0x38, 0x47, 0x8c, 0x7a, 0x74, 0x2f, 0x89, 0xf3, 0x59, 0x41, 0x41, 0xa9, 0x93, 0x57, + 0x60, 0x10, 0x00, 0xee, 0x78, 0x1c, 0xaf, 0x42, 0x87, 0x8c, 0x02, 0xb5, 0xad, 0x98, 0x2c, 0x0e, + 0x6e, 0x88, 0x2e, 0x6f, 0x37, 0x4a, 0xec, 0x9c, 0x0a, 0x00, 0x2d, 0x54, 0x0a, 0x1d, 0xb1, 0xdd, + 0xe6, 0x67, 0xcb, 0x83, 0x2d, 0xf4, 0xe0, 0x65, 0xef, 0x14, 0x1a, 0x3f, 0xbb, 0x2d, 0xe3, 0x9b, + 0x39, 0x41, 0xc1, 0x7c, 0xcf, 0xef, 0x73, 0x85, 0x40, 0x92, 0x64, 0x0e, 0x6c, 0xe6, 0xf9, 0x2f, + 0xe8, 0xb0, 0xdf, 0x30, 0x7c, 0x5f, 0xd9, 0x29, 0x2f, 0x1b, 0x96, 0x3a, 0xac, 0x89, 0x3a, 0xa1, + 0x8b, 0x32, 0xa8, 0x1a, 0xe6, 0x82, 0x69, 0x67, 0x52, 0x0f, 0xc1, 0xef, 0xe7, 0x94, 0x70, 0x2f, + 0x89, 0xc0, 0xc6, 0x42, 0x60, 0x01, 0x88, 0x4a, 0xee, 0xeb, 0x7d, 0xf7, 0x9c, 0xaa, 0x7d, 0xdf, + 0x8e, 0x03, 0xff, 0xc5, 0xa8, 0x29, 0x38, 0xe2, 0xf0, 0xa7, 0xb5, 0x72, 0x85, 0x87, 0x67, 0xe1, + 0xd6, 0x08, 0xa8, 0x16, 0xcb, 0x87, 0x8a, 0x98, 0xaa, 0xfb, 0x19, 0x5e, 0x0b, 0xab, 0xdd, 0xbc, + 0x51, 0x6a, 0xad, 0x7c, 0x38, 0x3e, 0x86, 0x3a, 0x36, 0xdc, 0x32, 0xb7, 0x93, 0x7c, 0xf7, 0xf3, + 0xa4, 0x9a, 0xb6, 0x6f, 0xa2, 0x3d, 0x78, 0x18, 0x25, 0x6f, 0x0d, 0xd6, 0x18, 0x71, 0x9d, 0x2e, + 0xbd, 0xb6, 0x25, 0xa9, 0xac, 0x39, 0x0d, 0xc5, 0x66, 0xe9, 0xd5, 0x36, 0x7f, 0xe8, 0x4b, 0xd6, + 0xb2, 0x04, 0x9a, 0x94, 0x43, 0x80, 0x74, 0x3b, 0x93, 0x76, 0xf5, 0x6c, 0xbc, 0x52, 0xaf, 0xfb, + 0x0f, 0x50, 0x23, 0x6b, 0x3c, 0x50, 0x5e, 0x94, 0x1e, 0x51, 0xef, 0xc5, 0x95, 0x5d, 0x9a, 0xa8, + 0x0d, 0xdb, 0x39, 0xa7, 0x6a, 0x2c, 0xa0, 0x1c, 0x51, 0x4d, 0x23, 0xc1, 0xd1, 0x7a, 0x26, 0xb7, + 0x2b, 0xbf, 0x0c, 0xff, 0xf2, 0xcc, 0xd9, 0x85, 0x44, 0x0c, 0x8a, 0x0a, 0x76, 0xc8, 0x73, 0x77, + 0x65, 0xa8, 0xf7, 0xd8, 0xc6, 0x73, 0x4a, 0xbe, 0xe0, 0x88, 0xbc, 0xf4, 0xa8, 0x6b, 0x0e, 0x83, + 0x9d, 0x4d, 0x07, 0x82, 0x99, 0x0b, 0x0d, 0xc0, 0xcd, 0x07, 0x73, 0x19, 0x2c, 0x4e, 0x20, 0x15, + 0xcc, 0xc2, 0x33, 0xd5, 0x30, 0x46, 0x6a, 0x51, 0xe3, 0x51, 0x5b, 0x38, 0x89, 0xa4, 0x1a, 0xdf, + 0xd5, 0xac, 0x89, 0x41, 0x8e, 0xd2, 0xcf, 0x46, 0x84, 0xba, 0xb5, 0x3f, 0x48, 0x2b, 0x7c, 0x6b, + 0x63, 0x22, 0x08, 0xb2, 0x80, 0xec, 0x58, 0x6d, 0x5f, 0x1b, 0x1f, 0x24, 0xed, 0xc7, 0x0b, 0x8d, + 0x71, 0xca, 0x1c, 0xa2, 0x71, 0x57, 0x30, 0x5b, 0xef, 0x23, 0xf3, 0xcc, 0xdc, 0x0b, 0xd7, 0x2c, + 0xda, 0x79, 0xba, 0x7b, 0xd4, 0x5a, 0x1b, 0x57, 0xbc, 0x5e, 0x27, 0x20, 0xdd, 0xdd, 0x73, 0xc3, + 0xaf, 0x99, 0x3c, 0x60, 0x99, 0x34, 0xce, 0x5b, 0xd4, 0x61, 0x2f, 0x4c, 0x93, 0x2d, 0x5e, 0x3d, + 0x7c, 0x0f, 0xce, 0xee, 0xd6, 0x7e, 0xc6, 0xd5, 0x04, 0x2c, 0x24, 0xd8, 0x75, 0x20, 0xa4, 0x36, + 0xdc, 0x1a, 0x17, 0x9c, 0x5c, 0xc7, 0xe4, 0x48, 0x10, 0x59, 0xc8, 0xe1, 0xbd, 0xc1, 0xcc, 0x15, + 0x01, 0x5c, 0xc3, 0x37, 0x39, 0x8c, 0x90, 0xab, 0xe8, 0xac, 0xec, 0xbe, 0x26, 0x78, 0x76, 0xcf, + 0xa8, 0x92, 0xaa, 0x73, 0x02, 0x14, 0x94, 0x97, 0x57, 0x50, 0x53, 0x89, 0xb6, 0x12, 0x79, 0xb3, + 0xb1, 0x0b, 0x57, 0x80, 0x91, 0xe9, 0xa6, 0x31, 0xaf, 0xc7, 0x96, 0x81, 0x47, 0x12, 0x9a, 0x4a, + 0x9a, 0x07, 0x10, 0x38, 0x91, 0xea, 0x6f, 0x1c, 0xbb, 0x2b, 0xc7, 0x78, 0xe7, 0x31, 0x87, 0xab, + 0x19, 0xd8, 0x14, 0xe0, 0x55, 0xf1, 0x06, 0xef, 0x88, 0xa5, 0x38, 0x8e, 0x72, 0xc9, 0x86, 0x7e, + 0x8c, 0xcc, 0x39, 0xca, 0x63, 0xee, 0x30, 0x94, 0xcd, 0xa4, 0x42, 0x2c, 0xcb, 0x98, 0x67, 0x00, + 0x08, 0x12, 0x2d, 0x0d, 0xdb, 0x4f, 0x63, 0x7a, 0x43, 0x1c, 0x61, 0x1d, 0xc3, 0xc7, 0xe0, 0x11, + 0x7c, 0xc2, 0x94, 0xb9, 0xd3, 0x15, 0xd4, 0xff, 0x0d, 0xec, 0x57, 0x66, 0xe6, 0x37, 0x5b, 0xde, + 0xfa, 0x63, 0xe6, 0x84, 0xe4, 0xee, 0xf8, 0x4c, 0x48, 0x8b, 0x27, 0x9a, 0x79, 0x91, 0x67, 0x74, + 0xc7, 0xec, 0x0d, 0xd9, 0xbb, 0x87, 0x75, 0xbf, 0x74, 0x4c, 0x32, 0x0c, 0xca, 0x24, 0x96, 0xa2, + 0x6d, 0xd2, 0x10, 0x11, 0x2d, 0xe7, 0x87, 0x64, 0xbd, 0x11, 0xf0, 0x06, 0x9d, 0x10, 0xb9, 0xb5, + 0xee, 0x92, 0xfd, 0x88, 0xa3, 0xc4, 0x5c, 0xf8, 0xdc, 0x57, 0xa0, 0x6f, 0x9e, 0xb4, 0x16, 0x2e, + 0x97, 0x7a, 0xf9, 0xe2, 0x57, 0x3a, 0x85, 0x14, 0x99, 0x96, 0x8b, 0x0c, 0x24, 0xb4, 0x08, 0xf5, + 0x81, 0xda, 0xc7, 0xef, 0x0a, 0x96, 0x92, 0xf8, 0x6c, 0xf1, 0xfe, 0x33, 0x9a, 0x15, 0x53, 0xf4, + 0xa5, 0xef, 0x6a, 0x1a, 0x4e, 0xa8, 0x40, 0xdc, 0xfa, 0x1a, 0xa3, 0xb9, 0x1d, 0xcc, 0x9b, 0x9e, + 0x55, 0x45, 0x0a, 0x6f, 0xe6, 0xa3, 0x85, 0xd8, 0x1d, 0x47, 0x1a, 0x0e, 0x76, 0x08, 0x80, 0xa8, + 0xc3, 0x01, 0x9b, 0x52, 0xb7, 0x86, 0x3d, 0x98, 0x34, 0xf9, 0x0e, 0x8a, 0xa3, 0x9f, 0x0c, 0x17, + 0xf7, 0x7c, 0x47, 0x6e, 0xce, 0xe7, 0x87, 0x50, 0xbb, 0x48, 0x50, 0x42, 0x23, 0x62, 0x4c, 0xdb, + 0x41, 0xcd, 0x16, 0x7f, 0x78, 0xaf, 0x7c, 0x3e, 0x9b, 0x3d, 0x24, 0x93, 0x35, 0x51, 0x0a, 0x24, + 0x83, 0x1f, 0x56, 0x5f, 0x2f, 0xeb, 0x51, 0x80, 0x0a, 0x88, 0x9b, 0xc2, 0x08, 0xd9, 0xf9, 0x88, + 0x62, 0xc2, 0x5a, 0x09, 0x9e, 0x09, 0x70, 0x14, 0xb7, 0xa9, 0x46, 0x2c, 0xf0, 0x14, 0x8a, 0x2c, + 0xf5, 0xae, 0x1c, 0x51, 0xdf, 0x9d, 0xdb, 0x6a, 0xb4, 0x79, 0x47, 0x77, 0x2f, 0x86, 0xc6, 0xfe, + 0xe3, 0xf1, 0x17, 0x89, 0xa8, 0x2c, 0x3c, 0x1e, 0x2d, 0x6a, 0xa5, 0xcb, 0x62, 0x4f, 0xe2, 0x05, + 0x4e, 0xdc, 0x99, 0x62, 0xe5, 0x1c, 0x90, 0x30, 0xa5, 0xa8, 0x85, 0x2f, 0xa6, 0xb3, 0xda, 0x30, + 0x64, 0x70, 0x29, 0xdf, 0xd7, 0x2a, 0xed, 0x95, 0x45, 0x35, 0x0b, 0x82, 0x26, 0x0d, 0x74, 0x07, + 0x65, 0xec, 0x38, 0x10, 0xf5, 0x97, 0x0e, 0xe4, 0x15, 0x2d, 0x8c, 0x56, 0x35, 0xfa, 0x03, 0xea, + 0xdb, 0x06, 0x0a, 0x5d, 0x28, 0x31, 0xa7, 0x1e, 0x29, 0x73, 0xc5, 0xcf, 0xa7, 0xbb, 0x09, 0xf4, + 0x28, 0xa7, 0xc5, 0x10, 0xc5, 0x83, 0x94, 0x2d, 0x0b, 0xad, 0x5d, 0x20, 0x0d, 0xd3, 0x57, 0x90, + 0x32, 0xb9, 0x5d, 0x4b, 0x82, 0xc4, 0x2b, 0xc7, 0xfa, 0xd0, 0x43, 0x4f, 0x4c, 0x1c, 0x53, 0x28, + 0x12, 0xab, 0xb3, 0x04, 0xa2, 0x74, 0xce, 0x5d, 0xdd, 0xc6, 0xa8, 0x3f, 0xbe, 0xb7, 0x16, 0xad, + 0x32, 0x5f, 0x5c, 0x34, 0xf1, 0x2a, 0x61, 0x3e, 0x80, 0x14, 0x58, 0x17, 0xb9, 0xe8, 0x65, 0x05, + 0x2f, 0xfb, 0x4c, 0xc0, 0x12, 0x28, 0x9d, 0xdf, 0x50, 0x8d, 0x5c, 0x88, 0x48, 0x0d, 0x01, 0x2c, + 0x1e, 0xd5, 0xea, 0x99, 0x7f, 0x78, 0x36, 0xeb, 0x5f, 0xba, 0x91, 0xbb, 0x93, 0x25, 0xa9, 0xdb, + 0xba, 0xc8, 0x3a, 0x7a, 0x54, 0x62, 0xcf, 0xb0, 0xd4, 0x97, 0x76, 0xce, 0xf2, 0xed, 0xc2, 0x38, + 0xbe, 0x86, 0x34, 0x44, 0x5b, 0x84, 0x86, 0x55, 0x8d, 0xf3, 0x2a, 0x07, 0x37, 0x50, 0x7c, 0xb6, + 0xa6, 0xb2, 0xf2, 0xd9, 0xf0, 0xfa, 0x12, 0x20, 0x2a, 0xfc, 0xa7, 0xc5, 0x64, 0xdf, 0x41, 0x6a, + 0x5b, 0xf3, 0x61, 0xc0, 0x96, 0x68, 0xab, 0xbb, 0xbd, 0x2f, 0x2c, 0xc6, 0xe9, 0x6e, 0x84, 0x31, + 0x1c, 0xd2, 0xaa, 0xb6, 0x53, 0xaa, 0x5c, 0xf1, 0x2f, 0xb4, 0x3b, 0x5c, 0x32, 0x1a, 0x98, 0x1e, +}; + +const unsigned g_cbRandom72KB = sizeof(g_abRandom72KB); +/* end of file */ + diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Runtime/testcase/Makefile.kmk virtualbox-4.1.44-dfsg/src/VBox/Runtime/testcase/Makefile.kmk --- virtualbox-4.1.12-dfsg/src/VBox/Runtime/testcase/Makefile.kmk 2012-04-02 13:29:05.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Runtime/testcase/Makefile.kmk 2015-11-11 15:09:13.000000000 +0000 @@ -48,9 +48,11 @@ tstRTAvl \ tstRTBase64 \ tstRTBitOperations \ + tstRTBigNum \ tstRTCidr \ tstRTCritSect \ tstRTDigest \ + tstRTDigest-2 \ tstDir \ tstDir-2 \ tstDir-3 \ @@ -72,6 +74,7 @@ tstIprtMiniString \ tstLdr \ tstLdrLoad \ + tstRTLdrVerifyPeImage \ tstRTList \ tstRTLockValidator \ tstLog \ @@ -144,21 +147,31 @@ PROGRAMS.darwin += \ tstDarwinSched \ tstRTDarwinMachKernel -ifdef VBOX_WITH_LIBCURL - PROGRAMS += \ - tstRTS3 -endif if1of ($(KBUILD_TARGET_ARCH), amd64 x86) PROGRAMS += \ tstLdr-2 \ tstLdr-3 \ tstLdr-4 \ tstNoCrt-1 \ - tstRTR0MemUserKernelDriver \ - tstRTR0SemMutexDriver \ - tstRTR0TimerDriver \ - tstR0ThreadPreemptionDriver \ tstTSC + if defined(VBOX_WITH_HARDENING) && "$(KBUILD_TARGET)" == "win" + PROGRAMS += \ + tstRTR0MemUserKernelDriverHardened \ + tstRTR0SemMutexDriverHardened \ + tstRTR0TimerDriverHardened \ + tstR0ThreadPreemptionDriverHardened + DLLS += \ + tstRTR0MemUserKernelDriver \ + tstRTR0SemMutexDriver \ + tstRTR0TimerDriver \ + tstR0ThreadPreemptionDriver + else + PROGRAMS += \ + tstRTR0MemUserKernelDriver \ + tstRTR0SemMutexDriver \ + tstRTR0TimerDriver \ + tstR0ThreadPreemptionDriver + endif SYSMODS += \ tstLdrObjR0 \ tstRTR0MemUserKernel \ @@ -189,6 +202,10 @@ tstRTBase64_TEMPLATE = VBOXR3TSTEXE tstRTBase64_SOURCES = tstRTBase64.cpp +tstRTBigNum_TEMPLATE = VBOXR3TSTEXE +tstRTBigNum_SOURCES = tstRTBigNum.cpp +tstRTBigNum_SDKS = VBOX_OPENSSL + tstRTBitOperations_TEMPLATE = VBOXR3TSTEXE tstRTBitOperations_SOURCES = tstRTBitOperations.cpp @@ -207,8 +224,16 @@ tstRTCritSectW32_SOURCES = tstRTCritSect.cpp tstRTCritSectW32_DEFS = TRY_WIN32_CRIT +tstRTDigest_TEMPLATE = VBOXR3TSTEXE tstRTDigest_SOURCES = tstRTDigest.cpp +tstRTDigest-2_TEMPLATE = VBOXR3TSTEXE +ifndef VBOX_WITH_ALT_HASH_CODE + tstRTDigest-2_DEFS = IPRT_WITHOUT_SHA512T224 IPRT_WITHOUT_SHA512T256 +endif +tstRTDigest-2_SOURCES = tstRTDigest-2.cpp + +tstDir_TEMPLATE = VBOXR3TSTEXE tstDir_SOURCES = tstDir.cpp tstDir-2_SOURCES = tstDir-2.cpp @@ -352,6 +377,9 @@ tstLdrLoad_SOURCES = tstLdrLoad.cpp +tstRTLdrVerifyPeImage_TEMPLATE = VBOXR3TSTEXE +tstRTLdrVerifyPeImage_SOURCES = tstRTLdrVerifyPeImage.cpp + tstRTList_TEMPLATE = VBOXR3TSTEXE tstRTList_SOURCES = tstRTList.cpp @@ -531,7 +559,15 @@ if1of ($(VBOX_LDR_FMT), pe lx) tstRTR0MemUserKernel_LIBS += $(PATH_STAGE_LIB)/SUPR0$(VBOX_SUFF_LIB) endif -tstRTR0MemUserKernelDriver_TEMPLATE = VBOXR3TSTEXE +if defined(VBOX_WITH_HARDENING) && "$(KBUILD_TARGET)" == "win" + tstRTR0MemUserKernelDriverHardened_TEMPLATE = VBoxR3HardenedTstExe + tstRTR0MemUserKernelDriverHardened_NAME = tstRTR0MemUserKernelDriver + tstRTR0MemUserKernelDriverHardened_DEFS = PROGRAM_NAME_STR=\"tstRTR0MemUserKernelDriver\" + tstRTR0MemUserKernelDriverHardened_SOURCES = ../../HostDrivers/Support/SUPR3HardenedMainTemplate.cpp + tstRTR0MemUserKernelDriver_TEMPLATE = VBoxR3TstDll +else + tstRTR0MemUserKernelDriver_TEMPLATE = VBOXR3TSTEXE +endif tstRTR0MemUserKernelDriver_SOURCES = tstRTR0MemUserKernelDriver.cpp @@ -544,7 +580,15 @@ if1of ($(VBOX_LDR_FMT), pe lx) tstRTR0SemMutex_LIBS += $(PATH_STAGE_LIB)/SUPR0$(VBOX_SUFF_LIB) endif -tstRTR0SemMutexDriver_TEMPLATE = VBOXR3TSTEXE +if defined(VBOX_WITH_HARDENING) && "$(KBUILD_TARGET)" == "win" + tstRTR0SemMutexDriverHardened_TEMPLATE = VBoxR3HardenedTstExe + tstRTR0SemMutexDriverHardened_NAME = tstRTR0SemMutexDriver + tstRTR0SemMutexDriverHardened_DEFS = PROGRAM_NAME_STR=\"tstRTR0SemMutexDriver\" + tstRTR0SemMutexDriverHardened_SOURCES = ../../HostDrivers/Support/SUPR3HardenedMainTemplate.cpp + tstRTR0SemMutexDriver_TEMPLATE = VBoxR3TstDll +else + tstRTR0SemMutexDriver_TEMPLATE = VBOXR3TSTEXE +endif tstRTR0SemMutexDriver_SOURCES = tstRTR0SemMutexDriver.cpp @@ -557,7 +601,15 @@ if1of ($(VBOX_LDR_FMT), pe lx) tstRTR0Timer_LIBS += $(PATH_STAGE_LIB)/SUPR0$(VBOX_SUFF_LIB) endif -tstRTR0TimerDriver_TEMPLATE = VBOXR3TSTEXE +if defined(VBOX_WITH_HARDENING) && "$(KBUILD_TARGET)" == "win" + tstRTR0TimerDriverHardened_TEMPLATE = VBoxR3HardenedTstExe + tstRTR0TimerDriverHardened_NAME = tstRTR0TimerDriver + tstRTR0TimerDriverHardened_DEFS = PROGRAM_NAME_STR=\"tstRTR0TimerDriver\" + tstRTR0TimerDriverHardened_SOURCES = ../../HostDrivers/Support/SUPR3HardenedMainTemplate.cpp + tstRTR0TimerDriver_TEMPLATE = VBoxR3TstDll +else + tstRTR0TimerDriver_TEMPLATE = VBOXR3TSTEXE +endif tstRTR0TimerDriver_SOURCES = tstRTR0TimerDriver.cpp @@ -570,7 +622,15 @@ if1of ($(VBOX_LDR_FMT), pe lx) tstR0ThreadPreemption_LIBS += $(PATH_STAGE_LIB)/SUPR0$(VBOX_SUFF_LIB) endif -tstR0ThreadPreemptionDriver_TEMPLATE = VBOXR3TSTEXE +if defined(VBOX_WITH_HARDENING) && "$(KBUILD_TARGET)" == "win" + tstR0ThreadPreemptionDriverHardened_TEMPLATE = VBoxR3HardenedTstExe + tstR0ThreadPreemptionDriverHardened_NAME = tstR0ThreadPreemptionDriver + tstR0ThreadPreemptionDriverHardened_DEFS = PROGRAM_NAME_STR=\"tstR0ThreadPreemptionDriver\" + tstR0ThreadPreemptionDriverHardened_SOURCES = ../../HostDrivers/Support/SUPR3HardenedMainTemplate.cpp + tstR0ThreadPreemptionDriver_TEMPLATE = VBoxR3TstDll +else + tstR0ThreadPreemptionDriver_TEMPLATE = VBOXR3TSTEXE +endif tstR0ThreadPreemptionDriver_SOURCES = tstR0ThreadPreemptionDriver.cpp diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Runtime/testcase/tstErrUnique.cpp virtualbox-4.1.44-dfsg/src/VBox/Runtime/testcase/tstErrUnique.cpp --- virtualbox-4.1.12-dfsg/src/VBox/Runtime/testcase/tstErrUnique.cpp 2012-04-02 13:29:06.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Runtime/testcase/tstErrUnique.cpp 2015-11-11 15:09:13.000000000 +0000 @@ -77,7 +77,7 @@ if (g_aErrorMessages[i].iCode == g_aErrorMessages[j].iCode) { - RTPrintf("tstErrUnique: status code %d can mean '%s' or '%s'\n", g_aErrorMessages[i].iCode, g_aErrorMessages[i].pszMsgShort, g_aErrorMessages[j]); + RTPrintf("tstErrUnique: status code %d\n can mean '%s'\n or '%s'\n", g_aErrorMessages[i].iCode, g_aErrorMessages[i].pszMsgShort, g_aErrorMessages[j].pszMsgShort); cErrors++; } } diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Runtime/testcase/tstIprtMiniString.cpp virtualbox-4.1.44-dfsg/src/VBox/Runtime/testcase/tstIprtMiniString.cpp --- virtualbox-4.1.12-dfsg/src/VBox/Runtime/testcase/tstIprtMiniString.cpp 2012-04-02 13:29:06.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Runtime/testcase/tstIprtMiniString.cpp 2015-11-11 15:09:13.000000000 +0000 @@ -358,6 +358,28 @@ return 0; } +#if 0 +/** + * Detects a few annoying unicode points with unstable case folding for UTF-8. + * + * Unicode 4.01, I think, introduces a few codepoints with lower/upper mappings + * that has a different length when encoded as UTF-8. This breaks some + * assumptions we used to make. Since it's just a handful codepoints, we'll + * detect them and ignore them here. The actual case folding functions in + * IPRT will of course deal with this in a more robust manner. + * + * @returns true if problematic, false if not. + * @param uc The codepoints. + */ +static bool isUnevenUtf8FoldingCp(RTUNICP uc) +{ + RTUNICP ucLower = RTUniCpToLower(uc); + RTUNICP ucUpper = RTUniCpToUpper(uc); + //return RTUniCpCalcUtf8Len(ucLower) != RTUniCpCalcUtf8Len(ucUpper); + return false; +} +#endif + static void test2(RTTEST hTest) { RTTestSub(hTest, "UTF-8 upper/lower encoding assumption"); @@ -370,9 +392,23 @@ RTTESTI_CHECK(mymemcmp((str1).c_str(), (str2).c_str(), (str2).length() + 1) == 0); \ } while (0) - RTCString strTmp; + RTCString strTmp, strExpect; char szDst[16]; + /* Some simple ascii stuff. */ + strTmp = "abcdefghijklmnopqrstuvwxyz0123456ABCDEFGHIJKLMNOPQRSTUVWXYZ;-+/\\"; + strExpect = "ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456ABCDEFGHIJKLMNOPQRSTUVWXYZ;-+/\\"; + strTmp.toUpper(); + CHECK_EQUAL(strTmp, strExpect); + + strTmp.toLower(); + strExpect = "abcdefghijklmnopqrstuvwxyz0123456abcdefghijklmnopqrstuvwxyz;-+/\\"; + CHECK_EQUAL(strTmp, strExpect); + + strTmp = "abcdefghijklmnopqrstuvwxyz0123456ABCDEFGHIJKLMNOPQRSTUVWXYZ;-+/\\"; + strTmp.toLower(); + CHECK_EQUAL(strTmp, strExpect); + /* Collect all upper and lower case code points. */ RTCString strLower(""); strLower.reserve(_4M); @@ -382,6 +418,16 @@ for (RTUNICP uc = 1; uc <= 0x10fffd; uc++) { + /* Unicode 4.01, I think, introduced a few codepoints with lower/upper mappings + that aren't up for roundtrips and which case folding has a different UTF-8 + length. We'll just skip them here as there are very few: + - Dotless small i and dotless capital I folds into ASCII I and i. + - The small letter long s folds to ASCII S. + - Greek prosgegrammeni folds to iota, which is a letter with both upper + and lower case foldings of its own. */ + if (uc == 0x131 || uc == 0x130 || uc == 0x17f || 0x1fbe) + continue; + if (RTUniCpIsLower(uc)) { RTTESTI_CHECK_MSG(uc < 0xd800 || (uc > 0xdfff && uc != 0xfffe && uc != 0xffff), ("%#x\n", uc)); @@ -425,14 +471,15 @@ RTTESTI_CHECK_MSG(ucUpper2 == ucUpper, ("ucUpper2=%#x ucUpper=%#x\n", ucUpper2, ucUpper)); RTUNICP const ucLower2 = RTUniCpToLower(ucUpper); + RTTESTI_CHECK_MSG(ucLower2 == ucLower, ("ucLower2=%#x ucLower=%#x\n", ucLower2, ucLower)); RTUNICP const ucUpper3 = RTUniCpToUpper(ucLower2); RTTESTI_CHECK_MSG(ucUpper3 == ucUpper, ("ucUpper3=%#x ucUpper=%#x\n", ucUpper3, ucUpper)); pszDstEnd = RTStrPutCp(szDst, ucLower2); size_t const cchLower2 = pszDstEnd - &szDst[0]; RTTESTI_CHECK_MSG(cchDst == cchLower2, - ("ucLower2=%#x %u bytes; ucUpper=%#x %u bytes\n", - ucLower2, cchLower2, ucUpper, cchDst)); + ("ucLower2=%#x %u bytes; ucUpper=%#x %u bytes; ucLower=%#x\n", + ucLower2, cchLower2, ucUpper, cchDst, ucLower)); } RTTESTI_CHECK(strlen(strUpper2.c_str()) == strUpper2.length()); RTTESTI_CHECK_MSG(cch == strUpper2.length(), ("cch=%u length()=%u\n", cch, strUpper2.length())); @@ -470,6 +517,7 @@ RTTESTI_CHECK_MSG(ucLower2 == ucLower, ("ucLower2=%#x ucLower=%#x\n", ucLower2, ucLower)); RTUNICP const ucUpper2 = RTUniCpToUpper(ucLower); + RTTESTI_CHECK_MSG(ucUpper2 == ucUpper, ("ucUpper2=%#x ucUpper=%#x\n", ucUpper2, ucUpper)); RTUNICP const ucLower3 = RTUniCpToLower(ucUpper2); RTTESTI_CHECK_MSG(ucLower3 == ucLower, ("ucLower3=%#x ucLower=%#x\n", ucLower3, ucLower)); diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Runtime/testcase/tstLdr-2.cpp virtualbox-4.1.44-dfsg/src/VBox/Runtime/testcase/tstLdr-2.cpp --- virtualbox-4.1.12-dfsg/src/VBox/Runtime/testcase/tstLdr-2.cpp 2012-04-02 13:29:06.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Runtime/testcase/tstLdr-2.cpp 2015-11-11 15:09:13.000000000 +0000 @@ -111,7 +111,7 @@ if (RT_SUCCESS(rc)) { RTUINTPTR Value; - rc = RTLdrGetSymbolEx(hLdrMod, pvBits, Addr, "Entrypoint", &Value); + rc = RTLdrGetSymbolEx(hLdrMod, pvBits, Addr, UINT32_MAX, "Entrypoint", &Value); if (RT_SUCCESS(rc)) { unsigned off = Value - Addr; diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Runtime/testcase/tstLdr-4.cpp virtualbox-4.1.44-dfsg/src/VBox/Runtime/testcase/tstLdr-4.cpp --- virtualbox-4.1.12-dfsg/src/VBox/Runtime/testcase/tstLdr-4.cpp 2012-04-02 13:29:06.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Runtime/testcase/tstLdr-4.cpp 2015-11-11 15:09:13.000000000 +0000 @@ -167,9 +167,11 @@ { /* get the pointer. */ RTUINTPTR Value; - rc = RTLdrGetSymbolEx(aLoads[i].hLdrMod, aLoads[i].pvBits, (uintptr_t)aLoads[i].pvBits, "DisasmTest1", &Value); + rc = RTLdrGetSymbolEx(aLoads[i].hLdrMod, aLoads[i].pvBits, (uintptr_t)aLoads[i].pvBits, + UINT32_MAX, "DisasmTest1", &Value); if (rc == VERR_SYMBOL_NOT_FOUND) - rc = RTLdrGetSymbolEx(aLoads[i].hLdrMod, aLoads[i].pvBits, (uintptr_t)aLoads[i].pvBits, "_DisasmTest1", &Value); + rc = RTLdrGetSymbolEx(aLoads[i].hLdrMod, aLoads[i].pvBits, (uintptr_t)aLoads[i].pvBits, + UINT32_MAX, "_DisasmTest1", &Value); if (RT_FAILURE(rc)) { RTPrintf("tstLdr-4: Failed to get symbol \"DisasmTest1\" from load #%d: %Rrc\n", i, rc); diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Runtime/testcase/tstLdr.cpp virtualbox-4.1.44-dfsg/src/VBox/Runtime/testcase/tstLdr.cpp --- virtualbox-4.1.12-dfsg/src/VBox/Runtime/testcase/tstLdr.cpp 2012-04-02 13:29:06.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Runtime/testcase/tstLdr.cpp 2015-11-11 15:09:13.000000000 +0000 @@ -240,7 +240,8 @@ for (unsigned iSym = 0; iSym < RT_ELEMENTS(aSyms); iSym++) { RTUINTPTR Value; - int rc = RTLdrGetSymbolEx(aLoads[i].hLdrMod, aLoads[i].pvBits, aLoads[i].Addr, aSyms[iSym].pszName, &Value); + int rc = RTLdrGetSymbolEx(aLoads[i].hLdrMod, aLoads[i].pvBits, aLoads[i].Addr, + UINT32_MAX, aSyms[iSym].pszName, &Value); if (RT_SUCCESS(rc)) { unsigned off = Value - aLoads[i].Addr; diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Runtime/testcase/tstOnce.cpp virtualbox-4.1.44-dfsg/src/VBox/Runtime/testcase/tstOnce.cpp --- virtualbox-4.1.12-dfsg/src/VBox/Runtime/testcase/tstOnce.cpp 2012-04-02 13:29:06.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Runtime/testcase/tstOnce.cpp 2015-11-11 15:09:13.000000000 +0000 @@ -48,13 +48,13 @@ static RTSEMEVENTMULTI g_hEventMulti = NIL_RTSEMEVENTMULTI; -static DECLCALLBACK(int) Once1CB(void *pvUser1, void *pvUser2) +static DECLCALLBACK(int) Once1CB(void *pvUser) { if (g_fOnceCB1) return VERR_WRONG_ORDER; - if (pvUser1 != (void *)1 || pvUser2 != (void *)42) + if (pvUser != (void *)1) { - RTPrintf("tstOnce: ERROR - Once1CB: pvUser1=%p pvUser2=%p!\n", pvUser1, pvUser2); + RTPrintf("tstOnce: ERROR - Once1CB: pvUser=%p!\n", pvUser); g_cErrors++; return VERR_INVALID_PARAMETER; } @@ -62,7 +62,7 @@ } -static DECLCALLBACK(int) Once2CB(void *pvUser1, void *pvUser2) +static DECLCALLBACK(int) Once2CB(void *pvUser) { if (ASMAtomicIncU32(&g_cOnce2CB) != 1) { @@ -70,9 +70,9 @@ g_cErrors++; return VERR_WRONG_ORDER; } - if (pvUser1 != (void *)42 || pvUser2 != (void *)1) + if (pvUser != (void *)42) { - RTPrintf("tstOnce: ERROR - Once2CB: pvUser1=%p pvUser2=%p!\n", pvUser1, pvUser2); + RTPrintf("tstOnce: ERROR - Once2CB: pvUser=%p!\n", pvUser); g_cErrors++; return VERR_INVALID_PARAMETER; } @@ -89,7 +89,7 @@ int rc = RTSemEventMultiWait(g_hEventMulti, RT_INDEFINITE_WAIT); if (RT_FAILURE(rc)) return rc; - rc = RTOnce(&g_Once2, Once2CB, (void *)42, (void *)1); + rc = RTOnce(&g_Once2, Once2CB, (void *)42); if (RT_SUCCESS(rc)) { if (!ASMAtomicUoReadBool(&g_fOnce2Ready)) @@ -112,11 +112,11 @@ RTPrintf("tstOnce: TESTING - smoke...\n"); RTONCE Once1 = RTONCE_INITIALIZER; g_fOnceCB1 = false; - int rc = RTOnce(&Once1, Once1CB, (void *)1, (void *)42); + int rc = RTOnce(&Once1, Once1CB, (void *)1); if (rc != VINF_SUCCESS) RTPrintf("tstOnce: ERROR - Once1, 1 failed, rc=%Rrc\n", rc); g_fOnceCB1 = false; - rc = RTOnce(&Once1, Once1CB, (void *)1, (void *)42); + rc = RTOnce(&Once1, Once1CB, (void *)1); if (rc != VINF_SUCCESS) RTPrintf("tstOnce: ERROR - Once1, 2 failed, rc=%Rrc\n", rc); diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Runtime/testcase/tstR0ThreadPreemptionDriver.cpp virtualbox-4.1.44-dfsg/src/VBox/Runtime/testcase/tstR0ThreadPreemptionDriver.cpp --- virtualbox-4.1.12-dfsg/src/VBox/Runtime/testcase/tstR0ThreadPreemptionDriver.cpp 2012-04-02 13:29:06.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Runtime/testcase/tstR0ThreadPreemptionDriver.cpp 2015-11-11 15:09:13.000000000 +0000 @@ -42,7 +42,10 @@ #endif -int main(int argc, char **argv) +/** + * Entry point. + */ +extern "C" DECLEXPORT(int) TrustedMain(int argc, char **argv, char **envp) { #ifndef VBOX RTPrintf("tstSup: SKIPPED\n"); @@ -183,3 +186,14 @@ #endif } + +#if !defined(VBOX_WITH_HARDENING) || !defined(RT_OS_WINDOWS) +/** + * Main entry point. + */ +int main(int argc, char **argv, char **envp) +{ + return TrustedMain(argc, argv, envp); +} +#endif + diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Runtime/testcase/tstRTBigNum.cpp virtualbox-4.1.44-dfsg/src/VBox/Runtime/testcase/tstRTBigNum.cpp --- virtualbox-4.1.12-dfsg/src/VBox/Runtime/testcase/tstRTBigNum.cpp 1970-01-01 00:00:00.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Runtime/testcase/tstRTBigNum.cpp 2015-11-11 15:09:13.000000000 +0000 @@ -0,0 +1,1698 @@ +/* $Id: tstRTBigNum.cpp $ */ +/** @file + * IPRT - Testcase for the RTBigNum* functions. + */ + +/* + * Copyright (C) 2006-2014 Oracle Corporation + * + * This file is part of VirtualBox Open Source Edition (OSE), as + * available from http://www.virtualbox.org. This file is free software; + * you can redistribute it and/or modify it under the terms of the GNU + * General Public License (GPL) as published by the Free Software + * Foundation, in version 2 as it comes in the "COPYING" file of the + * VirtualBox OSE distribution. VirtualBox OSE is distributed in the + * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind. + * + * The contents of this file may alternatively be used under the terms + * of the Common Development and Distribution License Version 1.0 + * (CDDL) only, as it comes in the "COPYING.CDDL" file of the + * VirtualBox OSE distribution, in which case the provisions of the + * CDDL are applicable instead of those of the GPL. + * + * You may elect to license modified versions of this file under the + * terms and conditions of either the GPL or the CDDL or both. + */ + +/******************************************************************************* +* Header Files * +*******************************************************************************/ +#include +#include + +#include +#include +#include +#include + +#if 1 +# include +#endif + + +/******************************************************************************* +* Global Variables * +*******************************************************************************/ +static RTTEST g_hTest; + + +static uint8_t const g_abLargePositive[] = +{ + 0x67,0xcd,0xd6,0x60,0x4e,0xaa,0xe9,0x8e,0x06,0x99,0xde,0xb2,0xf5,0x1c,0xc3,0xfc, + 0xf5,0x17,0x41,0xec,0x42,0x68,0xf0,0xab,0x0e,0xe6,0x79,0xa8,0x32,0x97,0x55,0x00, + 0x49,0x21,0x2b,0x72,0x4b,0x34,0x33,0xe1,0xe2,0xfe,0xa2,0xb8,0x39,0x7a,0x2f,0x17, + 0xae,0x1f,0xbb,0xdb,0x46,0xbc,0x59,0x8b,0x13,0x05,0x28,0x96,0xf6,0xfd,0xc1,0xa4 +}; +static RTBIGNUM g_LargePositive; +static RTBIGNUM g_LargePositive2; /**< Smaller than g_LargePositive. */ + +static uint8_t const g_abLargePositiveMinus1[] = +{ + 0x67,0xcd,0xd6,0x60,0x4e,0xaa,0xe9,0x8e,0x06,0x99,0xde,0xb2,0xf5,0x1c,0xc3,0xfc, + 0xf5,0x17,0x41,0xec,0x42,0x68,0xf0,0xab,0x0e,0xe6,0x79,0xa8,0x32,0x97,0x55,0x00, + 0x49,0x21,0x2b,0x72,0x4b,0x34,0x33,0xe1,0xe2,0xfe,0xa2,0xb8,0x39,0x7a,0x2f,0x17, + 0xae,0x1f,0xbb,0xdb,0x46,0xbc,0x59,0x8b,0x13,0x05,0x28,0x96,0xf6,0xfd,0xc1,0xa3 +}; +static RTBIGNUM g_LargePositiveMinus1; /**< g_LargePositive - 1 */ + + +static uint8_t const g_abLargeNegative[] = +{ + 0xf2,0xde,0xbd,0xaf,0x43,0x9e,0x1e,0x88,0xdc,0x64,0x37,0xa9,0xdb,0xb7,0x26,0x31, + 0x92,0x1d,0xf5,0x43,0x4c,0xb0,0x21,0x2b,0x07,0x4e,0xf5,0x94,0x9e,0xce,0x15,0x79, + 0x13,0x0c,0x70,0x68,0x49,0x46,0xcf,0x72,0x2b,0xc5,0x8f,0xab,0x7c,0x88,0x2d,0x1e, + 0x3b,0x43,0x5b,0xdb,0x47,0x45,0x7a,0x25,0x74,0x46,0x1d,0x87,0x24,0xaa,0xab,0x0d, + 0x3e,0xdf,0xd1,0xd8,0x44,0x6f,0x01,0x84,0x01,0x36,0xe0,0x84,0x6e,0x6f,0x41,0xbb, + 0xae,0x1a,0x31,0xef,0x42,0x23,0xfd,0xda,0xda,0x0f,0x7d,0x88,0x8f,0xf5,0x63,0x72, + 0x36,0x9f,0xa9,0xa4,0x4f,0xa0,0xa6,0xb1,0x3b,0xbe,0x0d,0x9d,0x62,0x88,0x98,0x8b +}; +static RTBIGNUM g_LargeNegative; +static RTBIGNUM g_LargeNegative2; /**< A few digits less than g_LargeNegative, i.e. larger value. */ + +static uint8_t const g_abLargeNegativePluss1[] = +{ + 0xf2,0xde,0xbd,0xaf,0x43,0x9e,0x1e,0x88,0xdc,0x64,0x37,0xa9,0xdb,0xb7,0x26,0x31, + 0x92,0x1d,0xf5,0x43,0x4c,0xb0,0x21,0x2b,0x07,0x4e,0xf5,0x94,0x9e,0xce,0x15,0x79, + 0x13,0x0c,0x70,0x68,0x49,0x46,0xcf,0x72,0x2b,0xc5,0x8f,0xab,0x7c,0x88,0x2d,0x1e, + 0x3b,0x43,0x5b,0xdb,0x47,0x45,0x7a,0x25,0x74,0x46,0x1d,0x87,0x24,0xaa,0xab,0x0d, + 0x3e,0xdf,0xd1,0xd8,0x44,0x6f,0x01,0x84,0x01,0x36,0xe0,0x84,0x6e,0x6f,0x41,0xbb, + 0xae,0x1a,0x31,0xef,0x42,0x23,0xfd,0xda,0xda,0x0f,0x7d,0x88,0x8f,0xf5,0x63,0x72, + 0x36,0x9f,0xa9,0xa4,0x4f,0xa0,0xa6,0xb1,0x3b,0xbe,0x0d,0x9d,0x62,0x88,0x98,0x8c +}; +static RTBIGNUM g_LargeNegativePluss1; /**< g_LargeNegative + 1 */ + + +static uint8_t const g_ab64BitPositive1[] = { 0x53, 0xe0, 0xdf, 0x11, 0x85, 0x93, 0x06, 0x21 }; +static uint64_t g_u64BitPositive1 = UINT64_C(0x53e0df1185930621); +static RTBIGNUM g_64BitPositive1; + + +static RTBIGNUM g_Zero; +static RTBIGNUM g_One; +static RTBIGNUM g_Two; +static RTBIGNUM g_Three; +static RTBIGNUM g_Four; +static RTBIGNUM g_Five; +static RTBIGNUM g_Ten; +static RTBIGNUM g_FourtyTwo; + +static uint8_t const g_abMinus1[] = { 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff }; +static int64_t g_iBitMinus1 = -1; +static RTBIGNUM g_Minus1; + + +/** @name The components of a real PKCS #7 signature (extracted from a build of + * this testcase). + * @{ */ +static uint8_t const g_abPubKeyExp[] = { 0x01, 0x00, 0x01 }; +static RTBIGNUM g_PubKeyExp; +static uint8_t const g_abPubKeyMod[] = +{ + 0x00, 0xea, 0x61, 0x4e, 0xa0, 0xb2, 0xae, 0x38, 0xbc, 0x43, 0x24, 0x5a, 0x28, 0xc7, 0xa0, 0x69, + 0x82, 0x11, 0xd5, 0x78, 0xe8, 0x6b, 0x41, 0x54, 0x7b, 0x6c, 0x69, 0x13, 0xc8, 0x68, 0x75, 0x0f, + 0xe4, 0x66, 0x54, 0xcd, 0xe3, 0x55, 0x33, 0x3b, 0x7f, 0x9f, 0x55, 0x75, 0x80, 0x6e, 0xd0, 0x8a, + 0xff, 0xc1, 0xf4, 0xbf, 0xfd, 0x70, 0x9b, 0x73, 0x7e, 0xee, 0xf1, 0x80, 0x23, 0xd4, 0xbd, 0xba, + 0xdc, 0xce, 0x09, 0x4a, 0xeb, 0xb0, 0xdd, 0x86, 0x4a, 0x0b, 0x8e, 0x3e, 0x9a, 0x8a, 0x58, 0xed, + 0x98, 0x4f, 0x25, 0xe5, 0x0c, 0x18, 0xd8, 0x10, 0x95, 0xce, 0xe4, 0x19, 0x82, 0x38, 0xcd, 0x76, + 0x6a, 0x38, 0xe5, 0x14, 0xe6, 0x95, 0x0d, 0x80, 0xc5, 0x09, 0x5e, 0x93, 0xf4, 0x6f, 0x82, 0x8e, + 0x9c, 0x81, 0x09, 0xd6, 0xd4, 0xee, 0xd5, 0x1f, 0x94, 0x2d, 0x13, 0x18, 0x9a, 0xbc, 0x88, 0x5d, + 0x9a, 0xe5, 0x66, 0x08, 0x99, 0x93, 0x1b, 0x8a, 0x69, 0x3f, 0x68, 0xb2, 0x97, 0x2a, 0x24, 0xf6, + 0x65, 0x2a, 0x94, 0x33, 0x94, 0x14, 0x5c, 0x6f, 0xff, 0x95, 0xd0, 0x2b, 0xf0, 0x2b, 0xcb, 0x49, + 0xcd, 0x03, 0x3a, 0x45, 0xd5, 0x22, 0x1c, 0xb3, 0xee, 0xd5, 0xaf, 0xb3, 0x5b, 0xcb, 0x1b, 0x35, + 0x4e, 0xff, 0x21, 0x0a, 0x55, 0x1f, 0xa0, 0xf9, 0xdc, 0xad, 0x7a, 0x89, 0x0b, 0x6e, 0x3f, 0x75, + 0xc0, 0x6c, 0x44, 0xff, 0x90, 0x63, 0x79, 0xcf, 0x70, 0x20, 0x60, 0x33, 0x3c, 0xb1, 0xfa, 0x6b, + 0x6c, 0x55, 0x3c, 0xeb, 0x8d, 0x18, 0xe9, 0x0a, 0x81, 0xd5, 0x24, 0xc1, 0x88, 0x7c, 0xa6, 0x8e, + 0xd3, 0x2c, 0x51, 0x1d, 0x6d, 0xdf, 0x51, 0xd5, 0x72, 0x54, 0x7a, 0x98, 0xc0, 0x36, 0x35, 0x21, + 0x66, 0x3c, 0x2f, 0x01, 0xc0, 0x8e, 0xb0, 0x56, 0x60, 0x6e, 0x67, 0x4f, 0x5f, 0xac, 0x05, 0x60, + 0x9b +}; +static RTBIGNUM g_PubKeyMod; +static uint8_t const g_abSignature[] = +{ + 0x00, 0xae, 0xca, 0x93, 0x47, 0x0b, 0xfa, 0xd8, 0xb9, 0xbb, 0x5a, 0x5e, 0xf6, 0x75, 0x90, 0xed, + 0x80, 0x37, 0x03, 0x6d, 0x23, 0x91, 0x30, 0x0c, 0x9d, 0xbf, 0x34, 0xc1, 0xf9, 0x43, 0xa7, 0xec, + 0xc0, 0x83, 0xc0, 0x98, 0x3f, 0x8a, 0x65, 0x48, 0x7c, 0xa4, 0x9f, 0x14, 0x4d, 0x52, 0x90, 0x2d, + 0x17, 0xd1, 0x3e, 0x05, 0xd6, 0x35, 0x1b, 0xdb, 0xe5, 0x1a, 0xa2, 0x54, 0x8c, 0x30, 0x6f, 0xfe, + 0xa1, 0xd9, 0x98, 0x3f, 0xb5, 0x65, 0x14, 0x9c, 0x50, 0x55, 0xa1, 0xbf, 0xb5, 0x12, 0xc4, 0xf2, + 0x72, 0x27, 0x14, 0x59, 0xb5, 0x23, 0x67, 0x11, 0x2a, 0xd8, 0xa8, 0x85, 0x4b, 0xc5, 0xb0, 0x2f, + 0x73, 0x54, 0xcf, 0x33, 0xa0, 0x06, 0xf2, 0x8e, 0x4f, 0x4b, 0x18, 0x97, 0x08, 0x47, 0xce, 0x0c, + 0x47, 0x97, 0x0d, 0xbd, 0x8b, 0xce, 0x61, 0x31, 0x21, 0x7e, 0xc4, 0x1d, 0x03, 0xf8, 0x06, 0xca, + 0x9f, 0xd3, 0x5e, 0x4b, 0xfc, 0xf1, 0x99, 0x34, 0x78, 0x83, 0xfa, 0xab, 0x9c, 0x7c, 0x6b, 0x5c, + 0x3d, 0x45, 0x39, 0x6d, 0x6a, 0x6c, 0xd5, 0x63, 0x3e, 0xbe, 0x09, 0x62, 0x64, 0x5f, 0x83, 0x3b, + 0xb6, 0x5c, 0x7e, 0x8e, 0xeb, 0x1e, 0x6a, 0x34, 0xb9, 0xc7, 0x92, 0x92, 0x58, 0x64, 0x48, 0xfe, + 0xf8, 0x35, 0x53, 0x07, 0x89, 0xb4, 0x29, 0x4d, 0x3d, 0x79, 0x43, 0x73, 0x0f, 0x16, 0x21, 0xab, + 0xb7, 0x07, 0x2b, 0x5a, 0x8a, 0x0f, 0xd7, 0x2e, 0x95, 0xb4, 0x26, 0x66, 0x65, 0x72, 0xac, 0x7e, + 0x46, 0x70, 0xe6, 0xad, 0x43, 0xa2, 0x73, 0x54, 0x6a, 0x41, 0xc8, 0x9c, 0x1e, 0x65, 0xed, 0x06, + 0xd1, 0xc7, 0x99, 0x3e, 0x5f, 0x5a, 0xd3, 0xd0, 0x1a, 0x9b, 0x0e, 0x3e, 0x04, 0x66, 0xb6, 0xaa, + 0xa6, 0x51, 0xb8, 0xc0, 0x13, 0x19, 0x34, 0x0e, 0x86, 0x02, 0xd5, 0xc8, 0x10, 0xaa, 0x1f, 0x97, + 0x95 +}; +static RTBIGNUM g_Signature; +static uint8_t const g_abSignatureDecrypted[] = +{ + 0x00, 0x01, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x30, 0x21, 0x30, + 0x09, 0x06, 0x05, 0x2b, 0x0e, 0x03, 0x02, 0x1a, 0x05, 0x00, 0x04, 0x14, 0x54, 0x60, 0xb0, 0x65, + 0xf1, 0xbc, 0x40, 0x77, 0xfc, 0x9e, 0xfc, 0x2f, 0x94, 0x62, 0x62, 0x61, 0x43, 0xb9, 0x01, 0xb9 +}; +static RTBIGNUM g_SignatureDecrypted; +/** @} */ + + +static void testInitOneLittleEndian(uint8_t const *pb, size_t cb, PRTBIGNUM pBigNum) +{ + uint8_t abLittleEndian[sizeof(g_abLargePositive) + sizeof(g_abLargeNegative)]; + RTTESTI_CHECK_RETV(cb <= sizeof(abLittleEndian)); + + size_t cbLeft = cb; + uint8_t *pbDst = abLittleEndian + cb - 1; + uint8_t const *pbSrc = pb; + while (cbLeft-- > 0) + *pbDst-- = *pbSrc++; + + RTBIGNUM Num; + RTTESTI_CHECK_RC_RETV(RTBigNumInit(&Num, RTBIGNUMINIT_F_ENDIAN_LITTLE | RTBIGNUMINIT_F_SIGNED, + abLittleEndian, cb), VINF_SUCCESS); + RTTESTI_CHECK(Num.fNegative == pBigNum->fNegative); + RTTESTI_CHECK(Num.cUsed == pBigNum->cUsed); + RTTESTI_CHECK(RTBigNumCompare(&Num, pBigNum) == 0); + RTTESTI_CHECK_RC(RTBigNumDestroy(&Num), VINF_SUCCESS); + + RTTESTI_CHECK_RC_RETV(RTBigNumInit(&Num, RTBIGNUMINIT_F_ENDIAN_LITTLE | RTBIGNUMINIT_F_SIGNED | RTBIGNUMINIT_F_SENSITIVE, + abLittleEndian, cb), VINF_SUCCESS); + RTTESTI_CHECK(Num.fNegative == pBigNum->fNegative); + RTTESTI_CHECK(Num.cUsed == pBigNum->cUsed); + RTTESTI_CHECK(RTBigNumCompare(&Num, pBigNum) == 0); + RTTESTI_CHECK_RC(RTBigNumDestroy(&Num), VINF_SUCCESS); +} + +static void testMoreInit(void) +{ + RTTESTI_CHECK(!g_LargePositive.fNegative); + RTTESTI_CHECK(!g_LargePositive.fSensitive); + RTTESTI_CHECK(!g_LargePositive2.fNegative); + RTTESTI_CHECK(!g_LargePositive2.fSensitive); + RTTESTI_CHECK(g_LargeNegative.fNegative); + RTTESTI_CHECK(!g_LargeNegative.fSensitive); + RTTESTI_CHECK(g_LargeNegative2.fNegative); + RTTESTI_CHECK(!g_LargeNegative2.fSensitive); + + RTTESTI_CHECK(!g_Zero.fNegative); + RTTESTI_CHECK(!g_Zero.fSensitive); + RTTESTI_CHECK(g_Zero.cUsed == 0); + + RTTESTI_CHECK(g_Minus1.fNegative); + RTTESTI_CHECK(!g_Minus1.fSensitive); + RTTESTI_CHECK(g_Minus1.cUsed == 1); + RTTESTI_CHECK(g_Minus1.pauElements[0] == 1); + + RTTESTI_CHECK(g_One.cUsed == 1 && g_One.pauElements[0] == 1); + RTTESTI_CHECK(g_Two.cUsed == 1 && g_Two.pauElements[0] == 2); + RTTESTI_CHECK(g_Three.cUsed == 1 && g_Three.pauElements[0] == 3); + RTTESTI_CHECK(g_Four.cUsed == 1 && g_Four.pauElements[0] == 4); + RTTESTI_CHECK(g_Ten.cUsed == 1 && g_Ten.pauElements[0] == 10); + RTTESTI_CHECK(g_FourtyTwo.cUsed == 1 && g_FourtyTwo.pauElements[0] == 42); + + /* Test big endian initialization w/ sensitive variation. */ + testInitOneLittleEndian(g_abLargePositive, sizeof(g_abLargePositive), &g_LargePositive); + testInitOneLittleEndian(g_abLargePositive, sizeof(g_abLargePositive) - 11, &g_LargePositive2); + + testInitOneLittleEndian(g_abLargeNegative, sizeof(g_abLargeNegative), &g_LargeNegative); + testInitOneLittleEndian(g_abLargeNegative, sizeof(g_abLargeNegative) - 9, &g_LargeNegative2); + + RTTESTI_CHECK(g_Minus1.cUsed == 1); + testInitOneLittleEndian(g_abMinus1, sizeof(g_abMinus1), &g_Minus1); + testInitOneLittleEndian(g_abMinus1, 1, &g_Minus1); + testInitOneLittleEndian(g_abMinus1, 4, &g_Minus1); + +} + + +static void testCompare(void) +{ + RTTestSub(g_hTest, "RTBigNumCompare*"); + RTTESTI_CHECK(RTBigNumCompare(&g_LargePositive, &g_LargePositive) == 0); + RTTESTI_CHECK(RTBigNumCompare(&g_LargePositive2, &g_LargePositive) == -1); + RTTESTI_CHECK(RTBigNumCompare(&g_LargePositive, &g_LargePositive2) == 1); + RTTESTI_CHECK(RTBigNumCompare(&g_Zero, &g_LargePositive) == -1); + RTTESTI_CHECK(RTBigNumCompare(&g_LargePositive, &g_Zero) == 1); + RTTESTI_CHECK(RTBigNumCompare(&g_LargePositive2, &g_Zero) == 1); + RTTESTI_CHECK(RTBigNumCompare(&g_LargePositive, &g_LargePositiveMinus1) == 1); + RTTESTI_CHECK(RTBigNumCompare(&g_LargePositiveMinus1, &g_LargePositive) == -1); + + RTTESTI_CHECK(RTBigNumCompare(&g_LargeNegative, &g_LargeNegative) == 0); + RTTESTI_CHECK(RTBigNumCompare(&g_LargeNegative, &g_LargeNegative2) == -1); + RTTESTI_CHECK(RTBigNumCompare(&g_LargeNegative2, &g_LargeNegative) == 1); + RTTESTI_CHECK(RTBigNumCompare(&g_Zero, &g_LargeNegative) == 1); + RTTESTI_CHECK(RTBigNumCompare(&g_LargeNegative, &g_Zero) == -1); + RTTESTI_CHECK(RTBigNumCompare(&g_LargeNegative2, &g_Zero) == -1); + RTTESTI_CHECK(RTBigNumCompare(&g_LargeNegative, &g_LargeNegativePluss1) == -1); + RTTESTI_CHECK(RTBigNumCompare(&g_LargeNegativePluss1, &g_LargeNegative) == 1); + + RTTESTI_CHECK(RTBigNumCompare(&g_LargeNegative, &g_LargePositive) == -1); + RTTESTI_CHECK(RTBigNumCompare(&g_LargePositive, &g_LargeNegative) == 1); + RTTESTI_CHECK(RTBigNumCompare(&g_LargeNegative2, &g_LargePositive) == -1); + RTTESTI_CHECK(RTBigNumCompare(&g_LargePositive, &g_LargeNegative2) == 1); + RTTESTI_CHECK(RTBigNumCompare(&g_LargeNegative2, &g_LargePositive2) == -1); + RTTESTI_CHECK(RTBigNumCompare(&g_LargePositive2, &g_LargeNegative2) == 1); + + RTTESTI_CHECK(RTBigNumCompareWithU64(&g_Zero, 0) == 0); + RTTESTI_CHECK(RTBigNumCompareWithU64(&g_Zero, 1) == -1); + RTTESTI_CHECK(RTBigNumCompareWithU64(&g_Zero, UINT32_MAX) == -1); + RTTESTI_CHECK(RTBigNumCompareWithU64(&g_Zero, UINT64_MAX) == -1); + RTTESTI_CHECK(RTBigNumCompareWithU64(&g_LargePositive, UINT64_MAX) == 1); + RTTESTI_CHECK(RTBigNumCompareWithU64(&g_LargePositive2, 0x7213593) == 1); + RTTESTI_CHECK(RTBigNumCompareWithU64(&g_LargeNegative, 0) == -1); + RTTESTI_CHECK(RTBigNumCompareWithU64(&g_LargeNegative, 1) == -1); + RTTESTI_CHECK(RTBigNumCompareWithU64(&g_LargeNegative, UINT64_MAX) == -1); + RTTESTI_CHECK(RTBigNumCompareWithU64(&g_LargeNegative, 0x80034053) == -1); + RTTESTI_CHECK(RTBigNumCompareWithU64(&g_64BitPositive1, g_u64BitPositive1) == 0); + RTTESTI_CHECK(RTBigNumCompareWithU64(&g_64BitPositive1, g_u64BitPositive1 - 1) == 1); + RTTESTI_CHECK(RTBigNumCompareWithU64(&g_64BitPositive1, g_u64BitPositive1 + 1) == -1); + + RTTESTI_CHECK(RTBigNumCompareWithS64(&g_Zero, 0) == 0); + RTTESTI_CHECK(RTBigNumCompareWithS64(&g_Zero, 1) == -1); + RTTESTI_CHECK(RTBigNumCompareWithS64(&g_Zero, -1) == 1); + RTTESTI_CHECK(RTBigNumCompareWithS64(&g_Zero, INT32_MAX) == -1); + RTTESTI_CHECK(RTBigNumCompareWithS64(&g_LargeNegative, INT32_MIN) == -1); + RTTESTI_CHECK(RTBigNumCompareWithS64(&g_LargeNegative, INT64_MIN) == -1); + RTTESTI_CHECK(g_u64BitPositive1 < (uint64_t)INT64_MAX); + RTTESTI_CHECK(RTBigNumCompareWithS64(&g_64BitPositive1, g_u64BitPositive1) == 0); + RTTESTI_CHECK(RTBigNumCompareWithS64(&g_64BitPositive1, g_u64BitPositive1 - 1) == 1); + RTTESTI_CHECK(RTBigNumCompareWithS64(&g_64BitPositive1, g_u64BitPositive1 + 1) == -1); + RTTESTI_CHECK(RTBigNumCompareWithS64(&g_64BitPositive1, INT64_MIN) == 1); + RTTESTI_CHECK(RTBigNumCompareWithS64(&g_64BitPositive1, INT64_MAX) == -1); + RTTESTI_CHECK(RTBigNumCompareWithS64(&g_Minus1, -1) == 0); + RTTESTI_CHECK(RTBigNumCompareWithS64(&g_Minus1, -2) == 1); + RTTESTI_CHECK(RTBigNumCompareWithS64(&g_Minus1, 0) == -1); +} + + +static void testSubtraction(void) +{ + RTTestSub(g_hTest, "RTBigNumSubtract"); + + for (uint32_t fFlags = 0; fFlags <= RTBIGNUMINIT_F_SENSITIVE; fFlags += RTBIGNUMINIT_F_SENSITIVE) + { + RTBIGNUM Result; + RTTESTI_CHECK_RC_RETV(RTBigNumInitZero(&Result, fFlags), VINF_SUCCESS); + RTBIGNUM Result2; + RTTESTI_CHECK_RC_RETV(RTBigNumInitZero(&Result2, fFlags), VINF_SUCCESS); + + RTTESTI_CHECK_RC(RTBigNumSubtract(&Result, &g_Minus1, &g_Minus1), VINF_SUCCESS); + RTTESTI_CHECK(RTBigNumCompareWithS64(&Result, 0) == 0); + + RTTESTI_CHECK_RC(RTBigNumSubtract(&Result, &g_Zero, &g_Minus1), VINF_SUCCESS); + RTTESTI_CHECK(RTBigNumCompareWithS64(&Result, 1) == 0); + + RTTESTI_CHECK_RC(RTBigNumSubtract(&Result, &g_Minus1, &g_Zero), VINF_SUCCESS); + RTTESTI_CHECK(RTBigNumCompareWithS64(&Result, -1) == 0); + + RTTESTI_CHECK_RC(RTBigNumSubtract(&Result, &g_64BitPositive1, &g_Minus1), VINF_SUCCESS); + RTTESTI_CHECK(RTBigNumCompareWithU64(&Result, g_u64BitPositive1 + 1) == 0); + + RTTESTI_CHECK_RC(RTBigNumSubtract(&Result, &g_Minus1, &g_64BitPositive1), VINF_SUCCESS); + RTTESTI_CHECK(RTBigNumCompareWithS64(&Result, INT64_C(-1) - g_u64BitPositive1) == 0); + + RTTESTI_CHECK_RC(RTBigNumSubtract(&Result, &g_LargePositive, &g_LargePositiveMinus1), VINF_SUCCESS); + RTTESTI_CHECK(RTBigNumCompareWithS64(&Result, 1) == 0); + RTTESTI_CHECK(Result.cUsed == 1); + + RTTESTI_CHECK_RC(RTBigNumSubtract(&Result, &g_LargePositiveMinus1, &g_LargePositive), VINF_SUCCESS); + RTTESTI_CHECK(RTBigNumCompareWithS64(&Result, -1) == 0); + RTTESTI_CHECK(Result.cUsed == 1); + + RTTESTI_CHECK(RTBigNumCompare(&g_LargeNegative, &g_LargeNegativePluss1) < 0); + RTTESTI_CHECK_RC(RTBigNumSubtract(&Result, &g_LargeNegative, &g_LargeNegativePluss1), VINF_SUCCESS); + RTTESTI_CHECK(RTBigNumCompareWithS64(&Result, -1) == 0); + RTTESTI_CHECK(Result.cUsed == 1); + + RTTESTI_CHECK_RC(RTBigNumSubtract(&Result, &g_LargeNegativePluss1, &g_LargeNegative), VINF_SUCCESS); + RTTESTI_CHECK(RTBigNumCompareWithS64(&Result, 1) == 0); + RTTESTI_CHECK(Result.cUsed == 1); + + RTTESTI_CHECK_RC(RTBigNumSubtract(&Result, &g_LargeNegativePluss1, &g_LargeNegativePluss1), VINF_SUCCESS); + RTTESTI_CHECK(RTBigNumCompareWithS64(&Result, 0) == 0); + RTTESTI_CHECK(Result.cUsed == 0); + + RTTESTI_CHECK_RC(RTBigNumDestroy(&Result), VINF_SUCCESS); + RTTESTI_CHECK_RC(RTBigNumDestroy(&Result2), VINF_SUCCESS); + } +} + + +static void testAddition(void) +{ + RTTestSub(g_hTest, "RTBigNumAdd"); + + for (uint32_t fFlags = 0; fFlags <= RTBIGNUMINIT_F_SENSITIVE; fFlags += RTBIGNUMINIT_F_SENSITIVE) + { + RTBIGNUM Result; + RTTESTI_CHECK_RC_RETV(RTBigNumInitZero(&Result, fFlags), VINF_SUCCESS); + RTBIGNUM Result2; + RTTESTI_CHECK_RC_RETV(RTBigNumInitZero(&Result2, fFlags), VINF_SUCCESS); + + RTTESTI_CHECK_RC(RTBigNumAdd(&Result, &g_Minus1, &g_Minus1), VINF_SUCCESS); + RTTESTI_CHECK(RTBigNumCompareWithS64(&Result, -2) == 0); + + RTTESTI_CHECK_RC(RTBigNumAdd(&Result, &g_Zero, &g_Minus1), VINF_SUCCESS); + RTTESTI_CHECK(RTBigNumCompareWithS64(&Result, -1) == 0); + + RTTESTI_CHECK_RC(RTBigNumAdd(&Result, &g_Zero, &g_64BitPositive1), VINF_SUCCESS); + RTTESTI_CHECK(RTBigNumCompareWithU64(&Result, g_u64BitPositive1) == 0); + + RTTESTI_CHECK_RC(RTBigNumAdd(&Result, &g_Minus1, &g_64BitPositive1), VINF_SUCCESS); + RTTESTI_CHECK(RTBigNumCompareWithU64(&Result, g_u64BitPositive1 - 1) == 0); + + RTTESTI_CHECK(g_u64BitPositive1 * 2 > g_u64BitPositive1); + RTTESTI_CHECK_RC(RTBigNumAdd(&Result, &g_64BitPositive1, &g_64BitPositive1), VINF_SUCCESS); + RTTESTI_CHECK(RTBigNumCompareWithU64(&Result, g_u64BitPositive1 * 2) == 0); + + + RTTESTI_CHECK_RC(RTBigNumAssign(&Result2, &g_LargePositive), VINF_SUCCESS); + RTTESTI_CHECK_RC(RTBigNumNegateThis(&Result2), VINF_SUCCESS); + + RTTESTI_CHECK_RC(RTBigNumAdd(&Result, &g_LargePositive, &Result2), VINF_SUCCESS); + RTTESTI_CHECK(RTBigNumCompareWithU64(&Result, 0) == 0); + + RTTESTI_CHECK_RC(RTBigNumAdd(&Result, &Result2, &g_LargePositive), VINF_SUCCESS); + RTTESTI_CHECK(RTBigNumCompareWithU64(&Result, 0) == 0); + + RTTESTI_CHECK_RC(RTBigNumAdd(&Result, &g_LargePositiveMinus1, &Result2), VINF_SUCCESS); + RTTESTI_CHECK(RTBigNumCompareWithS64(&Result, -1) == 0); + + RTTESTI_CHECK_RC(RTBigNumAdd(&Result, &Result2, &g_LargePositiveMinus1), VINF_SUCCESS); + RTTESTI_CHECK(RTBigNumCompareWithS64(&Result, -1) == 0); + + + RTTESTI_CHECK_RC(RTBigNumAdd(&Result, &g_LargePositive, &g_LargePositiveMinus1), VINF_SUCCESS); + RTTESTI_CHECK(RTBigNumCompare(&Result, &g_LargePositive) > 0); + RTTESTI_CHECK_RC(RTBigNumSubtract(&Result2, &Result, &g_LargePositiveMinus1), VINF_SUCCESS); + RTTESTI_CHECK(RTBigNumCompare(&Result2, &g_LargePositive) == 0); + RTTESTI_CHECK_RC(RTBigNumSubtract(&Result2, &Result, &g_LargePositive), VINF_SUCCESS); + RTTESTI_CHECK(RTBigNumCompare(&Result2, &g_LargePositiveMinus1) == 0); + + RTTESTI_CHECK_RC(RTBigNumAdd(&Result, &g_LargePositive, &g_LargeNegative), VINF_SUCCESS); + RTTESTI_CHECK(RTBigNumCompare(&Result, &g_LargeNegative) > 0); + RTTESTI_CHECK(RTBigNumCompare(&Result, &g_LargePositive) < 0); + RTTESTI_CHECK_RC(RTBigNumSubtract(&Result2, &Result, &g_LargePositive), VINF_SUCCESS); + RTTESTI_CHECK(RTBigNumCompare(&Result2, &g_LargeNegative) == 0); + RTTESTI_CHECK_RC(RTBigNumSubtract(&Result2, &Result, &g_LargeNegative), VINF_SUCCESS); + RTTESTI_CHECK(RTBigNumCompare(&Result2, &g_LargePositive) == 0); + + RTTESTI_CHECK_RC(RTBigNumAdd(&Result, &g_LargeNegativePluss1, &g_LargeNegative), VINF_SUCCESS); + RTTESTI_CHECK(RTBigNumCompare(&Result, &g_LargeNegative) < 0); + RTTESTI_CHECK_RC(RTBigNumSubtract(&Result2, &Result, &g_LargeNegative), VINF_SUCCESS); + RTTESTI_CHECK(RTBigNumCompare(&Result2, &g_LargeNegativePluss1) == 0); + + RTTESTI_CHECK_RC(RTBigNumDestroy(&Result), VINF_SUCCESS); + RTTESTI_CHECK_RC(RTBigNumDestroy(&Result2), VINF_SUCCESS); + } +} + +static void testShift(void) +{ + RTTestSub(g_hTest, "RTBigNumShiftLeft, RTBigNumShiftRight"); + + for (uint32_t fFlags = 0; fFlags <= RTBIGNUMINIT_F_SENSITIVE; fFlags += RTBIGNUMINIT_F_SENSITIVE) + { + RTBIGNUM Result; + RTTESTI_CHECK_RC_RETV(RTBigNumInitZero(&Result, fFlags), VINF_SUCCESS); + RTBIGNUM Result2; + RTTESTI_CHECK_RC_RETV(RTBigNumInitZero(&Result2, fFlags), VINF_SUCCESS); + + /* basic left tests */ + RTTESTI_CHECK_RC(RTBigNumShiftLeft(&Result, &g_Minus1, 1), VINF_SUCCESS); + RTTESTI_CHECK(RTBigNumCompareWithS64(&Result, -2) == 0); + + RTTESTI_CHECK_RC(RTBigNumShiftLeft(&Result, &g_Minus1, 0), VINF_SUCCESS); + RTTESTI_CHECK(RTBigNumCompareWithS64(&Result, -1) == 0); + + RTTESTI_CHECK_RC(RTBigNumShiftLeft(&Result, &g_Minus1, 2), VINF_SUCCESS); + RTTESTI_CHECK(RTBigNumCompareWithS64(&Result, -4) == 0); + + RTTESTI_CHECK_RC(RTBigNumShiftLeft(&Result, &g_Minus1, 8), VINF_SUCCESS); + RTTESTI_CHECK(RTBigNumCompareWithS64(&Result, -256) == 0); + + RTTESTI_CHECK_RC(RTBigNumShiftLeft(&Result, &g_Zero, 511), VINF_SUCCESS); + RTTESTI_CHECK(RTBigNumCompareWithS64(&Result, 0) == 0); + + RTTESTI_CHECK_RC(RTBigNumShiftLeft(&Result, &g_FourtyTwo, 1), VINF_SUCCESS); + RTTESTI_CHECK(RTBigNumCompareWithS64(&Result, 84) == 0); + + RTTESTI_CHECK_RC(RTBigNumShiftLeft(&Result, &g_FourtyTwo, 27+24), VINF_SUCCESS); + RTTESTI_CHECK(RTBigNumCompareWithS64(&Result, UINT64_C(0x150000000000000)) == 0); + + RTTESTI_CHECK_RC(RTBigNumShiftLeft(&Result, &g_FourtyTwo, 27), VINF_SUCCESS); + RTTESTI_CHECK_RC(RTBigNumShiftLeft(&Result2, &Result, 24), VINF_SUCCESS); + RTTESTI_CHECK(RTBigNumCompareWithS64(&Result2, UINT64_C(0x150000000000000)) == 0); + + RTTESTI_CHECK_RC(RTBigNumShiftLeft(&Result, &g_LargePositive, 2), VINF_SUCCESS); + RTTESTI_CHECK_RC(RTBigNumMultiply(&Result2, &g_LargePositive, &g_Four), VINF_SUCCESS); + RTTESTI_CHECK(RTBigNumCompare(&Result2, &Result) == 0); + + /* basic right tests. */ + RTTESTI_CHECK_RC(RTBigNumShiftRight(&Result, &g_Minus1, 1), VINF_SUCCESS); + RTTESTI_CHECK(RTBigNumCompareWithS64(&Result, 0) == 0); + + RTTESTI_CHECK_RC(RTBigNumShiftRight(&Result, &g_Minus1, 8), VINF_SUCCESS); + RTTESTI_CHECK(RTBigNumCompareWithS64(&Result, 0) == 0); + + RTTESTI_CHECK_RC(RTBigNumShiftRight(&Result, &g_Zero, 511), VINF_SUCCESS); + RTTESTI_CHECK(RTBigNumCompareWithS64(&Result, 0) == 0); + + RTTESTI_CHECK_RC(RTBigNumShiftRight(&Result, &g_FourtyTwo, 0), VINF_SUCCESS); + RTTESTI_CHECK(RTBigNumCompareWithS64(&Result, 42) == 0); + + RTTESTI_CHECK_RC(RTBigNumShiftRight(&Result, &g_FourtyTwo, 1), VINF_SUCCESS); + RTTESTI_CHECK(RTBigNumCompareWithS64(&Result, 21) == 0); + + RTTESTI_CHECK_RC(RTBigNumShiftRight(&Result, &g_FourtyTwo, 2), VINF_SUCCESS); + RTTESTI_CHECK(RTBigNumCompareWithS64(&Result, 10) == 0); + + RTTESTI_CHECK_RC(RTBigNumShiftRight(&Result, &g_FourtyTwo, 3), VINF_SUCCESS); + RTTESTI_CHECK(RTBigNumCompareWithS64(&Result, 5) == 0); + + RTTESTI_CHECK_RC(RTBigNumShiftRight(&Result, &g_FourtyTwo, 4), VINF_SUCCESS); + RTTESTI_CHECK(RTBigNumCompareWithS64(&Result, 2) == 0); + + RTTESTI_CHECK_RC(RTBigNumShiftRight(&Result, &g_FourtyTwo, 5), VINF_SUCCESS); + RTTESTI_CHECK(RTBigNumCompareWithS64(&Result, 1) == 0); + + RTTESTI_CHECK_RC(RTBigNumShiftRight(&Result, &g_FourtyTwo, 6), VINF_SUCCESS); + RTTESTI_CHECK(RTBigNumCompareWithS64(&Result, 0) == 0); + + RTTESTI_CHECK_RC(RTBigNumShiftRight(&Result, &g_FourtyTwo, 549), VINF_SUCCESS); + RTTESTI_CHECK(RTBigNumCompareWithS64(&Result, 0) == 0); + + RTTESTI_CHECK_RC(RTBigNumDivideLong(&Result2, &Result, &g_LargePositive, &g_Four), VINF_SUCCESS); + RTTESTI_CHECK_RC(RTBigNumShiftRight(&Result, &g_LargePositive, 2), VINF_SUCCESS); + RTTESTI_CHECK(RTBigNumCompare(&Result2, &Result) == 0); + + /* Some simple back and forth. */ + RTTESTI_CHECK_RC(RTBigNumShiftLeft(&Result, &g_One, 2), VINF_SUCCESS); + RTTESTI_CHECK_RC(RTBigNumShiftRight(&Result2, &Result, 2), VINF_SUCCESS); + RTTESTI_CHECK(RTBigNumCompare(&Result2, &g_One) == 0); + + RTTESTI_CHECK_RC(RTBigNumShiftLeft(&Result, &g_Three, 63), VINF_SUCCESS); + RTTESTI_CHECK_RC(RTBigNumShiftRight(&Result2, &Result, 63), VINF_SUCCESS); + RTTESTI_CHECK(RTBigNumCompare(&Result2, &g_Three) == 0); + + for (uint32_t i = 0; i < 1024; i++) + { + RTTESTI_CHECK_RC(RTBigNumShiftLeft(&Result, &g_LargePositive, i), VINF_SUCCESS); + RTTESTI_CHECK_RC(RTBigNumShiftRight(&Result2, &Result, i), VINF_SUCCESS); + RTTESTI_CHECK(RTBigNumCompare(&Result2, &g_LargePositive) == 0); + } + + RTTESTI_CHECK_RC(RTBigNumShiftLeft(&Result, &g_LargePositive, 2), VINF_SUCCESS); + RTTESTI_CHECK_RC(RTBigNumShiftLeft(&Result2, &Result, 250), VINF_SUCCESS); + RTTESTI_CHECK_RC(RTBigNumShiftLeft(&Result, &Result2, 999), VINF_SUCCESS); + RTTESTI_CHECK_RC(RTBigNumShiftRight(&Result2, &Result, 1), VINF_SUCCESS); + RTTESTI_CHECK_RC(RTBigNumShiftRight(&Result, &Result2, 250), VINF_SUCCESS); + RTTESTI_CHECK_RC(RTBigNumShiftRight(&Result2, &Result, 1), VINF_SUCCESS); + RTTESTI_CHECK_RC(RTBigNumShiftRight(&Result, &Result2, 999), VINF_SUCCESS); + RTTESTI_CHECK(RTBigNumCompare(&Result, &g_LargePositive) == 0); + + + RTTESTI_CHECK_RC(RTBigNumDestroy(&Result), VINF_SUCCESS); + RTTESTI_CHECK_RC(RTBigNumDestroy(&Result2), VINF_SUCCESS); + } +} + +static bool testHexStringToNum(PRTBIGNUM pBigNum, const char *pszHex, uint32_t fFlags) +{ + uint8_t abBuf[_4K]; + size_t cbHex = strlen(pszHex); + RTTESTI_CHECK_RET(!(cbHex & 1), false); + cbHex /= 2; + RTTESTI_CHECK_RET(cbHex < sizeof(abBuf), false); + RTTESTI_CHECK_RC_RET(RTStrConvertHexBytes(pszHex, abBuf, cbHex, 0), VINF_SUCCESS, false); + RTTESTI_CHECK_RC_RET(RTBigNumInit(pBigNum, RTBIGNUMINIT_F_ENDIAN_BIG | fFlags, abBuf, cbHex), VINF_SUCCESS, false); + return true; +} + +static void testMultiplication(void) +{ + RTTestSub(g_hTest, "RTBigNumMultiply"); + + for (uint32_t fFlags = 0; fFlags <= RTBIGNUMINIT_F_SENSITIVE; fFlags += RTBIGNUMINIT_F_SENSITIVE) + { + RTBIGNUM Result; + RTTESTI_CHECK_RC_RETV(RTBigNumInitZero(&Result, fFlags), VINF_SUCCESS); + RTBIGNUM Result2; + RTTESTI_CHECK_RC_RETV(RTBigNumInitZero(&Result2, fFlags), VINF_SUCCESS); + + RTTESTI_CHECK_RC(RTBigNumMultiply(&Result, &g_Minus1, &g_Minus1), VINF_SUCCESS); + RTTESTI_CHECK(RTBigNumCompareWithS64(&Result, 1) == 0); + + RTTESTI_CHECK_RC(RTBigNumMultiply(&Result, &g_Zero, &g_Minus1), VINF_SUCCESS); + RTTESTI_CHECK(RTBigNumCompareWithS64(&Result, 0) == 0); + RTTESTI_CHECK_RC(RTBigNumMultiply(&Result, &g_Minus1, &g_Zero), VINF_SUCCESS); + RTTESTI_CHECK(RTBigNumCompareWithS64(&Result, 0) == 0); + + RTTESTI_CHECK_RC(RTBigNumMultiply(&Result, &g_Minus1, &g_64BitPositive1), VINF_SUCCESS); + RTTESTI_CHECK(RTBigNumCompareWithS64(&Result, -(int64_t)g_u64BitPositive1) == 0); + RTTESTI_CHECK_RC(RTBigNumMultiply(&Result, &g_64BitPositive1, &g_Minus1), VINF_SUCCESS); + RTTESTI_CHECK(RTBigNumCompareWithS64(&Result, -(int64_t)g_u64BitPositive1) == 0); + + + static struct + { + const char *pszF1, *pszF2, *pszResult; + } s_aTests[] = + { + { + "29865DBFA717181B9DD4B515BD072DE10A5A314385F6DED735AC553FCD307D30C499", + "4DD65692F7365B90C55F63988E5B6C448653E7DB9DD941507586BD8CF71398287C", + "0CA02E8FFDB0EEA37264338A4AAA91C8974E162DDFCBCF804B434A11955671B89B3645AAB75423D60CA3459B0B4F3F28978DA768779FB54CF362FD61924637582F221C" + }, + { + "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF", + "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF", + "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE0000000000000000000000000000000000000001" + } + }; + for (uint32_t i = 0; i < RT_ELEMENTS(s_aTests); i++) + { + RTBIGNUM F1, F2, Expected; + if ( testHexStringToNum(&F1, s_aTests[i].pszF1, RTBIGNUMINIT_F_UNSIGNED | fFlags) + && testHexStringToNum(&F2, s_aTests[i].pszF2, RTBIGNUMINIT_F_UNSIGNED | fFlags) + && testHexStringToNum(&Expected, s_aTests[i].pszResult, RTBIGNUMINIT_F_UNSIGNED | fFlags)) + { + RTTESTI_CHECK_RC(RTBigNumMultiply(&Result, &F1, &F2), VINF_SUCCESS); + RTTESTI_CHECK(RTBigNumCompare(&Result, &Expected) == 0); + RTTESTI_CHECK_RC(RTBigNumDestroy(&F1), VINF_SUCCESS); + RTTESTI_CHECK_RC(RTBigNumDestroy(&F2), VINF_SUCCESS); + RTTESTI_CHECK_RC(RTBigNumDestroy(&Expected), VINF_SUCCESS); + } + } + RTTESTI_CHECK_RC(RTBigNumDestroy(&Result), VINF_SUCCESS); + RTTESTI_CHECK_RC(RTBigNumDestroy(&Result2), VINF_SUCCESS); + } +} + + +#if 0 /* Java program for generating testDivision test data. */ +import java.math.BigInteger; +import java.lang.System; +import java.lang.Integer; +import java.util.Random; +import java.security.SecureRandom; + +class bigintdivtestgen +{ + +public static String format(BigInteger BigNum) +{ + String str = BigNum.toString(16); + if ((str.length() & 1) != 0) + str = "0" + str; + return str; +} + +public static void main(String args[]) +{ + Random Rnd = new SecureRandom(); + + /* Can't go to far here because before we reach 11K both windows compilers + will have reached some kind of section limit. Probably string pool related. */ + int cDivisorLarger = 0; + for (int i = 0; i < 9216; i++) + { + int cDividendBits = Rnd.nextInt(4095) + 1; + int cDivisorBits = i < 9 ? cDividendBits : Rnd.nextInt(4095) + 1; + if (cDivisorBits > cDividendBits) + { + cDivisorLarger++; + if (cDivisorLarger > i / 4) + cDivisorBits = Rnd.nextInt(cDividendBits); + } + + BigInteger Dividend = new BigInteger(cDividendBits, Rnd); + BigInteger Divisor = new BigInteger(cDivisorBits, Rnd); + while (Divisor.compareTo(BigInteger.ZERO) == 0) { + cDivisorBits++; + Divisor = new BigInteger(cDivisorBits, Rnd); + } + + BigInteger[] Result = Dividend.divideAndRemainder(Divisor); + + System.out.println(" { /* i=" + Integer.toString(i) + + " cDividendBits=" + Integer.toString(cDividendBits) + + " cDivisorBits=" + Integer.toString(cDivisorBits) + " */"); + + System.out.println(" \"" + format(Dividend) + "\","); + System.out.println(" \"" + format(Divisor) + "\","); + System.out.println(" \"" + format(Result[0]) + "\","); + System.out.println(" \"" + format(Result[1]) + "\""); + System.out.println(" },"); + } +} +} +#endif + +static void testDivision(void) +{ + RTTestSub(g_hTest, "RTBigNumDivide"); + + //for (uint32_t fFlags = 0; fFlags <= RTBIGNUMINIT_F_SENSITIVE; fFlags += RTBIGNUMINIT_F_SENSITIVE) + uint32_t fFlags = 0; + { + RTBIGNUM Quotient; + RTTESTI_CHECK_RC_RETV(RTBigNumInitZero(&Quotient, fFlags), VINF_SUCCESS); + RTBIGNUM Remainder; + RTTESTI_CHECK_RC_RETV(RTBigNumInitZero(&Remainder, fFlags), VINF_SUCCESS); + + RTTESTI_CHECK_RC(RTBigNumDivide(&Quotient, &Remainder, &g_Minus1, &g_Minus1), VINF_SUCCESS); + RTTESTI_CHECK(RTBigNumCompareWithS64(&Quotient, 1) == 0); + RTTESTI_CHECK(RTBigNumCompareWithS64(&Remainder, 0) == 0); + + RTTESTI_CHECK_RC(RTBigNumDivide(&Quotient, &Remainder, &g_Zero, &g_Minus1), VINF_SUCCESS); + RTTESTI_CHECK(RTBigNumCompareWithS64(&Quotient, 0) == 0); + RTTESTI_CHECK(RTBigNumCompareWithS64(&Remainder, 0) == 0); + + RTTESTI_CHECK_RC(RTBigNumDivide(&Quotient, &Remainder, &g_Minus1, &g_Zero), VERR_BIGNUM_DIV_BY_ZERO); + RTTESTI_CHECK_RC(RTBigNumDivide(&Quotient, &Remainder, &g_LargeNegative, &g_Zero), VERR_BIGNUM_DIV_BY_ZERO); + RTTESTI_CHECK_RC(RTBigNumDivide(&Quotient, &Remainder, &g_LargePositive, &g_Zero), VERR_BIGNUM_DIV_BY_ZERO); + + RTTESTI_CHECK_RC(RTBigNumDivide(&Quotient, &Remainder, &g_Four, &g_Two), VINF_SUCCESS); + RTTESTI_CHECK(RTBigNumCompareWithS64(&Quotient, 2) == 0); + RTTESTI_CHECK(RTBigNumCompareWithS64(&Remainder, 0) == 0); + + RTTESTI_CHECK_RC(RTBigNumDivide(&Quotient, &Remainder, &g_Three, &g_Two), VINF_SUCCESS); + RTTESTI_CHECK(RTBigNumCompareWithS64(&Quotient, 1) == 0); + RTTESTI_CHECK(RTBigNumCompareWithS64(&Remainder, 1) == 0); + + RTTESTI_CHECK_RC(RTBigNumDivide(&Quotient, &Remainder, &g_Ten, &g_Two), VINF_SUCCESS); + RTTESTI_CHECK(RTBigNumCompareWithS64(&Quotient, 5) == 0); + RTTESTI_CHECK(RTBigNumCompareWithS64(&Remainder, 0) == 0); + + + RTTESTI_CHECK_RC(RTBigNumDivide(&Quotient, &Remainder, &g_LargePositive, &g_LargePositiveMinus1), VINF_SUCCESS); + RTTESTI_CHECK(RTBigNumCompareWithS64(&Quotient, 1) == 0); + RTTESTI_CHECK(RTBigNumCompareWithS64(&Remainder, 1) == 0); + + RTTESTI_CHECK_RC(RTBigNumDivide(&Quotient, &Remainder, &g_LargeNegative, &g_LargeNegativePluss1), VINF_SUCCESS); + RTTESTI_CHECK(RTBigNumCompareWithS64(&Quotient, 1) == 0); + RTTESTI_CHECK(RTBigNumCompareWithS64(&Remainder, -1) == 0); + + static struct + { + const char *pszDividend, *pszDivisor, *pszQuotient, *pszRemainder; + } const s_aTests[] = + { +#if 1 +#include "tstRTBigNum-div-test-data.h" + { "ff", "10", /* = */ "0f", "0f" }, + { /* cDividendBits=323 cDivisorBits=195 */ + "064530fd21b30e179b5bd5efd1f4a7e8df173c13965bd75e1502891303060b417e62711ceb17a73e56", + "0784fac4a7c6b5165a99dc3228b6484cba9c7dfadde85cdde3", + "d578cc87ed22ac3630a4d1e5fc590ae6", + "06acef436982f9c4fc9b0a44d3df1e72cad3ef0cb51ba20664" + }, + { + "ffffffffffffffffffffffffffffffffffffffffffffffff", + "fffffffffffffffffffffffffffffffffffffffffffffffe", + "01", + "01" + }, + { + "922222222222222222222222222222222222222222222222", + "811111111111111111111111111111111111111111111111", + "01", + "111111111111111111111111111111111111111111111111" + }, + { + "955555555555555555555555555555555555555555555555", + "211111111111111111111111111111111111111111111111", + "04", + "111111111111111111111111111111111111111111111111" + }, +#endif + /* This test triggers negative special cases in Knuth's division algorithm. */ + { + "0137698320ec00bcaa13cd9c18df564bf6df45c5c4c73ad2012cb36cf897c5ff00db638256e19c9ba5a8fbe828ac6e8d470a5f3391d4350ca1390f79c4e4f944eb", + "67cdd6604eaae98e0699deb2f51cc3fcf51741ec4268f0ab0ee679a83297550049212b724b3433e1e2fea2b8397a2f17ae1fbbdb46bc598b13052896f6fdc1a4", + "02", + "67cdd6604eaae98e0699deb2f51cc3fcf51741ec4268f0ab0ee679a83297550049212b724b3433e1e2fea2b8397a2f17ae1fbbdb46bc598b13052896f6fdc1a3" + }, + }; + for (uint32_t i = 0; i < RT_ELEMENTS(s_aTests); i++) + { + RTBIGNUM Dividend, Divisor, ExpectedQ, ExpectedR; + if ( testHexStringToNum(&Dividend, s_aTests[i].pszDividend, RTBIGNUMINIT_F_UNSIGNED | fFlags) + && testHexStringToNum(&Divisor, s_aTests[i].pszDivisor, RTBIGNUMINIT_F_UNSIGNED | fFlags) + && testHexStringToNum(&ExpectedQ, s_aTests[i].pszQuotient, RTBIGNUMINIT_F_UNSIGNED | fFlags) + && testHexStringToNum(&ExpectedR, s_aTests[i].pszRemainder, RTBIGNUMINIT_F_UNSIGNED | fFlags)) + { + RTTESTI_CHECK_RC(RTBigNumDivide(&Quotient, &Remainder, &Dividend, &Divisor), VINF_SUCCESS); + + if ( RTBigNumCompare(&Quotient, &ExpectedQ) != 0 + || RTBigNumCompare(&Remainder, &ExpectedR) != 0) + { + RTTestIFailed("i=%#x both\n" + "ExpQ: %.*Rhxs\n" + "GotQ: %.*Rhxs\n" + "ExpR: %.*Rhxs\n" + "GotR: %.*Rhxs\n", + i, + ExpectedQ.cUsed * RTBIGNUM_ELEMENT_SIZE, ExpectedQ.pauElements, + Quotient.cUsed * RTBIGNUM_ELEMENT_SIZE, Quotient.pauElements, + ExpectedR.cUsed * RTBIGNUM_ELEMENT_SIZE, ExpectedR.pauElements, + Remainder.cUsed * RTBIGNUM_ELEMENT_SIZE, Remainder.pauElements); + RTTestIPrintf(RTTESTLVL_ALWAYS, "{ \"%s\", \"%s\", \"%s\", \"%s\" },\n", + s_aTests[i].pszDividend, s_aTests[i].pszDivisor, + s_aTests[i].pszQuotient, s_aTests[i].pszRemainder); + } + + RTTESTI_CHECK_RC(RTBigNumDivideLong(&Quotient, &Remainder, &Dividend, &Divisor), VINF_SUCCESS); + RTTESTI_CHECK(RTBigNumCompare(&Quotient, &ExpectedQ) == 0); + RTTESTI_CHECK(RTBigNumCompare(&Remainder, &ExpectedR) == 0); + + RTTESTI_CHECK_RC(RTBigNumModulo(&Remainder, &Dividend, &Divisor), VINF_SUCCESS); + RTTESTI_CHECK(RTBigNumCompare(&Remainder, &ExpectedR) == 0); + + + RTTESTI_CHECK_RC(RTBigNumDestroy(&ExpectedR), VINF_SUCCESS); + RTTESTI_CHECK_RC(RTBigNumDestroy(&ExpectedQ), VINF_SUCCESS); + RTTESTI_CHECK_RC(RTBigNumDestroy(&Divisor), VINF_SUCCESS); + RTTESTI_CHECK_RC(RTBigNumDestroy(&Dividend), VINF_SUCCESS); + } + } + + RTTESTI_CHECK_RC(RTBigNumDestroy(&Quotient), VINF_SUCCESS); + RTTESTI_CHECK_RC(RTBigNumDestroy(&Remainder), VINF_SUCCESS); + } +} + + +static void testModulo(void) +{ + RTTestSub(g_hTest, "RTBigNumModulo"); + + for (uint32_t fFlags = 0; fFlags <= RTBIGNUMINIT_F_SENSITIVE; fFlags += RTBIGNUMINIT_F_SENSITIVE) + { + RTBIGNUM Result; + RTTESTI_CHECK_RC_RETV(RTBigNumInitZero(&Result, fFlags), VINF_SUCCESS); + RTBIGNUM Tmp; + RTTESTI_CHECK_RC_RETV(RTBigNumInitZero(&Tmp, fFlags), VINF_SUCCESS); + + RTTESTI_CHECK_RC(RTBigNumModulo(&Result, &g_Minus1, &g_Minus1), VINF_SUCCESS); + RTTESTI_CHECK(RTBigNumCompareWithS64(&Result, 0) == 0); + + RTTESTI_CHECK_RC(RTBigNumModulo(&Result, &g_Zero, &g_Minus1), VINF_SUCCESS); + RTTESTI_CHECK(RTBigNumCompareWithS64(&Result, 0) == 0); + + RTTESTI_CHECK_RC(RTBigNumModulo(&Result, &g_Minus1, &g_Zero), VERR_BIGNUM_DIV_BY_ZERO); + RTTESTI_CHECK_RC(RTBigNumModulo(&Result, &g_LargeNegative, &g_Zero), VERR_BIGNUM_DIV_BY_ZERO); + RTTESTI_CHECK_RC(RTBigNumModulo(&Result, &g_LargePositive, &g_Zero), VERR_BIGNUM_DIV_BY_ZERO); + + RTTESTI_CHECK_RC(RTBigNumModulo(&Result, &g_Four, &g_Two), VINF_SUCCESS); + RTTESTI_CHECK(RTBigNumCompareWithS64(&Result, 0) == 0); + + RTTESTI_CHECK_RC(RTBigNumModulo(&Result, &g_Three, &g_Two), VINF_SUCCESS); + RTTESTI_CHECK(RTBigNumCompareWithS64(&Result, 1) == 0); + + RTTESTI_CHECK_RC(RTBigNumModulo(&Result, &g_Ten, &g_Two), VINF_SUCCESS); + RTTESTI_CHECK(RTBigNumCompareWithS64(&Result, 0) == 0); + + RTTESTI_CHECK_RC(RTBigNumModulo(&Result, &g_LargePositive, &g_LargePositiveMinus1), VINF_SUCCESS); + RTTESTI_CHECK(RTBigNumCompareWithS64(&Result, 1) == 0); + + RTTESTI_CHECK_RC(RTBigNumModulo(&Result, &g_LargePositiveMinus1, &g_LargePositive), VINF_SUCCESS); + RTTESTI_CHECK(RTBigNumCompare(&Result, &g_LargePositiveMinus1) == 0); + + RTTESTI_CHECK_RC(RTBigNumAdd(&Result, &g_LargePositiveMinus1, &g_LargePositive), VINF_SUCCESS); + RTTESTI_CHECK_RC(RTBigNumAdd(&Tmp, &g_LargePositive, &Result), VINF_SUCCESS); + RTTESTI_CHECK_RC(RTBigNumModulo(&Result, &Tmp, &g_LargePositiveMinus1), VINF_SUCCESS); + RTTESTI_CHECK(RTBigNumCompareWithS64(&Result, 2) == 0); + RTTESTI_CHECK_RC(RTBigNumModulo(&Result, &Tmp, &g_LargePositive), VINF_SUCCESS); + RTTESTI_CHECK(RTBigNumCompare(&Result, &g_LargePositiveMinus1) == 0); + + RTTESTI_CHECK_RC(RTBigNumModulo(&Result, &g_LargeNegative, &g_LargeNegativePluss1), VINF_SUCCESS); + RTTESTI_CHECK(RTBigNumCompareWithS64(&Result, -1) == 0); + + RTTESTI_CHECK_RC(RTBigNumDestroy(&Result), VINF_SUCCESS); + } +} + + +static void testExponentiation(void) +{ + RTTestSub(g_hTest, "RTBigNumExponentiate"); + + for (uint32_t fFlags = 0; fFlags <= RTBIGNUMINIT_F_SENSITIVE; fFlags += RTBIGNUMINIT_F_SENSITIVE) + { + RTBIGNUM Result; + RTTESTI_CHECK_RC_RETV(RTBigNumInitZero(&Result, fFlags), VINF_SUCCESS); + RTBIGNUM Result2; + RTTESTI_CHECK_RC_RETV(RTBigNumInitZero(&Result2, fFlags), VINF_SUCCESS); + + RTTESTI_CHECK_RC(RTBigNumExponentiate(&Result, &g_One, &g_One), VINF_SUCCESS); + RTTESTI_CHECK(RTBigNumCompareWithS64(&Result, 1) == 0); + + RTTESTI_CHECK_RC(RTBigNumExponentiate(&Result, &g_Two, &g_One), VINF_SUCCESS); + RTTESTI_CHECK(RTBigNumCompareWithS64(&Result, 2) == 0); + + RTTESTI_CHECK_RC(RTBigNumExponentiate(&Result, &g_Two, &g_Two), VINF_SUCCESS); + RTTESTI_CHECK(RTBigNumCompareWithS64(&Result, 4) == 0); + + RTTESTI_CHECK_RC(RTBigNumExponentiate(&Result, &g_Two, &g_Ten), VINF_SUCCESS); + RTTESTI_CHECK(RTBigNumCompareWithS64(&Result, 1024) == 0); + + RTTESTI_CHECK_RC(RTBigNumExponentiate(&Result, &g_Five, &g_Five), VINF_SUCCESS); + RTTESTI_CHECK(RTBigNumCompareWithS64(&Result, 3125) == 0); + + RTTESTI_CHECK_RC(RTBigNumExponentiate(&Result, &g_Five, &g_Ten), VINF_SUCCESS); + RTTESTI_CHECK(RTBigNumCompareWithS64(&Result, 9765625) == 0); + + static struct + { + const char *pszBase, *pszExponent, *pszResult; + } s_aTests[] = + { + { + "180DB4284A119D6133AE4BB0C27C27D1", /*^*/ "3A", /* = */ + "04546412B9E39476F10009F62608F614774C5AE475482434F138C3EA976583ECE09E58F1F03CE41F821A1D5DA59B69D031290B0AC7F7D5058E3AFA2CA3DAA7261D1620CA" + "D050576C0AFDF51ADBFCB9073B9D8324E816EA6BE4648DF68092F6617ED609045E6BE9D5410AE2CFF725832414E67656233F4DFA952461D321282426D50E2AF524D779EC" + "0744547E8A4F0768C2C49AF3A5A89D129430CA58456BE4534BC53C67523506C7A8B5770D88CF28B6B3EEBE73F3EA71BA2CE27C4C89BE0D699922B1A1EB20143CB0830A43" + "D864DDFFF026BA781614C2D55F3EDEA7257B93A0F40824E57D6EDFCFFB4611C316374D0D15698E6584851F1898DCAE75FC4D180908763DDB2FF93766EF144D091274AFE5" + "6980A1F4F574D577DAD833EA9486A4B499BFCA9C08225D7BDB2C632B4D9B53EF51C02ED419F22657D626064BCC2B083CD664E1A8D68F82F33233A833AC98AA0282B8B88D" + "A430CF2E581A1C7C4A1D646CA42760ED10C398F7C032A94D53964E6885B5C1CA884EC15081D4C010978627C85767FEC6F93364044EA86567F9610ABFB837808CC995FB5F" + "710B21CE198E0D4AD9F73C3BD56CB9965C85C790BF3F4B326B5245BFA81783126217BF80687C4A8AA3AE80969A4407191B4F90E71A0ABCCB5FEDD40477CE9D10FBAEF103" + "8457AB19BD793CECDFF8B29A96F12F590BFED544E08F834A44DEEF461281C40024EFE9388689AAC69BCBAB3D06434172D9319F30754756E1CF77B300679215BEBD27FC20" + "A2F1D2029BC767D4894A5F7B21BD784CD1DD4F41697839969CB6D2AA1E0AFA5D3D644A792586F681EB36475CAE59EB457E55D6AC2E286E196BFAC000C7389A96C514552D" + "5D9D3DD962F72DAE4A7575A9A67856646239560A39E50826BB2523598C8F8FF0EC8D09618378E9F362A8FBFE842B55CD1855A95D8A5E93B8B91D31EB8FBBF57113F06171" + "BB69B81C4240EC4C7D1AC67EA1CE4CEBEE71828917EC1CF500E1AD2F09535F5498CD6E613383810A840A265AED5DD20AE58FFF2D0DEB8EF99FA494B22714F520E8E8B684" + "5E8521966A7B1699236998A730FDF9F049CE2A4EA44D1EBC3B9754908848540D0DEE64A6D60E2BFBC3362B659C10543BDC20C1BAD3D68B173442C100C2C366CB885E8490" + "EDB977E49E9D51D4427B73B3B999AF4BA17685387182C3918D20808197A2E3FCDD0F66ECDEC05542C23A08B94C83BDF93606A49E9A0645B002CFCA1EAE1917BEED0D6542" + "9A0EF00E5FB5F70D61C8C4DF1F1E9DA58188A221" + }, + { + "03", /*^*/ "164b", /* = */ + "29ABEC229C2B15C41573F8608D4DCD2DADAACA94CA3C40B42FFAD32D6202E228E16F61E050FF97EC5D45F24A4EB057C2D1A5DA72DFC5944E6941DBEDDE70EF56702BEC35" + "A3150EFE84E87185E3CBAB1D73F434EB820E41298BDD4F3941230DFFD8DFF1D2E2F3C5D0CB5088505B9C78507A81AAD8073C28B8FA70771C3E04110344328C6B3F38E55A" + "32B009F4DDA1813232C3FF422DF4E4D12545C803C63D0BE67E2E773B2BAC41CC69D895787B217D7BE9CE80BD4B500AE630AA21B50A06E0A74953F8011E9F23863CA79885" + "35D5FF0214DBD9B25756BE3D43008A15C018348E6A7C3355F4BECF37595BD530E5AC1AD3B14182862E47AD002097465F6B78F435B0D6365E18490567F508CD3CAAAD340A" + "E76A218FE8B517F923FE9CCDE61CB35409590CDBC606D89BA33B32A3862DEE7AB99DFBE103D02D2BED6D418B949E6B3C51CAB8AB5BE93AA104FA10D3A02D4CAD6700CD0F" + "83922EAAB18705915198DE51C1C562984E2B7571F36A4D756C459B61E0A4B7DE268A74E807311273DD51C2863771AB72504044C870E2498F13BF1DE92C13D93008E304D2" + "879C5D8A646DB5BF7BC64D96BB9E2FBA2EA6BF55CD825ABD995762F661C327133BE01F9A9F298CA096B3CE61CBBD8047A003870B218AC505D72ED6C7BF3B37BE5877B6A1" + "606A713EE86509C99B2A3627FD74AE7E81FE7F69C34B40E01A6F8B18A328E0F9D18A7911E5645331540538AA76B6D5D591F14313D730CFE30728089A245EE91058748F0C" + "E3E6CE4DE51D23E233BFF9007E0065AEBAA3FB0D0FACE62A4757FE1C9C7075E2214071197D5074C92AF1E6D853F7DE782F32F1E40507CB981A1C10AC6B1C23AC46C07EF1" + "EDE857C444902B936771DF75E0EE6C2CB3F0F9DBB387BAD0658E98F42A7338DE45E2F1B012B530FFD66861F74137C041D7558408A4A23B83FBDDE494381D9F9FF0326D44" + "302F75DE68B91A54CFF6E3C2821D09F2664CA74783C29AF98E2F1D3D84CAC49EAE55BABE3D2CBE8833D50517109E19CB5C63D1DE26E308ACC213D1CBCCF7C3AAE05B06D9" + "909AB0A1AEFD02A193CFADC7F724D377E1F4E78DC21012BE26D910548CDF55B0AB9CB64756045FF48C3B858E954553267C4087EC5A9C860CFA56CF5CFBB442BDDA298230" + "D6C000A6A6010D87FB4C3859C3AFAF15C37BCE03EBC392E8149056C489508841110060A991F1EEAF1E7CCF0B279AB2B35F3DAC0FAB4F4A107794E67D305E6D61A27C8FEB" + "DEA00C3334C888B2092E740DD3EFF7A69F06CE12EF511126EB23D80902D1D54BF4AEE04DF9457D59E8859AA83D6229481E1B1BC7C3ED96F6F7C1CEEF7B904268FD00BE51" + "1EF69692D593F8A9F7CCC053C343306940A4054A55DBA94D95FF6D02B7A73E110C2DBE6CA29C01B5921420B5BC9C92DAA9D82003829C6AE772FF12135C2E138C6725DC47" + "7938F3062264575EBBB1CBB359E496DD7A38AE0E33D1B1D9C16BDD87E6DE44DFB832286AE01D00AA14B423DBF7ECCC34A0A06A249707B75C2BA931D7F4F513FDF0F6E516" + "345B8DA85FEFD218B390828AECADF0C47916FAF44CB29010B0BB2BBA8E120B6DAFB2CC90B9D1B8659C2AFB" + } + }; + for (uint32_t i = 0; i < RT_ELEMENTS(s_aTests); i++) + { + RTBIGNUM Base, Exponent, Expected; + if ( testHexStringToNum(&Base, s_aTests[i].pszBase, RTBIGNUMINIT_F_UNSIGNED | fFlags) + && testHexStringToNum(&Exponent, s_aTests[i].pszExponent, RTBIGNUMINIT_F_UNSIGNED | fFlags) + && testHexStringToNum(&Expected, s_aTests[i].pszResult, RTBIGNUMINIT_F_UNSIGNED | fFlags)) + { + RTTESTI_CHECK_RC(RTBigNumExponentiate(&Result, &Base, &Exponent), VINF_SUCCESS); + RTTESTI_CHECK(RTBigNumCompare(&Result, &Expected) == 0); + RTTESTI_CHECK_RC(RTBigNumDestroy(&Base), VINF_SUCCESS); + RTTESTI_CHECK_RC(RTBigNumDestroy(&Exponent), VINF_SUCCESS); + RTTESTI_CHECK_RC(RTBigNumDestroy(&Expected), VINF_SUCCESS); + } + } + RTTESTI_CHECK_RC(RTBigNumDestroy(&Result), VINF_SUCCESS); + RTTESTI_CHECK_RC(RTBigNumDestroy(&Result2), VINF_SUCCESS); + } +} + + +static void testModExp(void) +{ + RTTestSub(g_hTest, "RTBigNumModExp"); + RTBIGNUM Result; + + for (uint32_t fFlags = 0; fFlags <= RTBIGNUMINIT_F_SENSITIVE; fFlags += RTBIGNUMINIT_F_SENSITIVE) + { + RTTESTI_CHECK_RC_RETV(RTBigNumInitZero(&Result, fFlags), VINF_SUCCESS); + + RTTESTI_CHECK_RC(RTBigNumModExp(&Result, &g_One, &g_One, &g_One), VINF_SUCCESS); + RTTESTI_CHECK(RTBigNumCompareWithS64(&Result, 0) == 0); + RTTESTI_CHECK_RC(RTBigNumModExp(&Result, &g_LargePositive, &g_One, &g_One), VINF_SUCCESS); + RTTESTI_CHECK(RTBigNumCompareWithS64(&Result, 0) == 0); + RTTESTI_CHECK_RC(RTBigNumModExp(&Result, &g_LargePositive, &g_LargePositive, &g_One), VINF_SUCCESS); + RTTESTI_CHECK(RTBigNumCompareWithS64(&Result, 0) == 0); + + RTTESTI_CHECK_RC(RTBigNumModExp(&Result, &g_One, &g_Zero, &g_Five), VINF_SUCCESS); + RTTESTI_CHECK(RTBigNumCompareWithS64(&Result, 0) == 1); + RTTESTI_CHECK_RC(RTBigNumModExp(&Result, &g_LargePositive, &g_Zero, &g_Five), VINF_SUCCESS); + RTTESTI_CHECK(RTBigNumCompareWithS64(&Result, 0) == 1); + RTTESTI_CHECK_RC(RTBigNumModExp(&Result, &g_LargePositive, &g_Zero, &g_One), VINF_SUCCESS); + RTTESTI_CHECK(RTBigNumCompareWithS64(&Result, 0) == 0); + RTTESTI_CHECK_RC(RTBigNumModExp(&Result, &g_LargePositive, &g_Zero, &g_LargePositive), VINF_SUCCESS); + RTTESTI_CHECK(RTBigNumCompareWithS64(&Result, 0) == 1); + + RTTESTI_CHECK_RC(RTBigNumModExp(&Result, &g_Zero, &g_Zero, &g_Zero), VERR_BIGNUM_DIV_BY_ZERO); + RTTESTI_CHECK_RC(RTBigNumModExp(&Result, &g_LargePositive, &g_Zero, &g_Zero), VERR_BIGNUM_DIV_BY_ZERO); + RTTESTI_CHECK_RC(RTBigNumModExp(&Result, &g_LargePositive, &g_LargePositive, &g_Zero), VERR_BIGNUM_DIV_BY_ZERO); + + RTTESTI_CHECK_RC(RTBigNumModExp(&Result, &g_Two, &g_Four, &g_Five), VINF_SUCCESS); + RTTESTI_CHECK(RTBigNumCompareWithS64(&Result, 1) == 0); + + RTTESTI_CHECK_RC(RTBigNumModExp(&Result, &g_Two, &g_Four, &g_Three), VINF_SUCCESS); + RTTESTI_CHECK(RTBigNumCompareWithS64(&Result, 1) == 0); + + RTTESTI_CHECK_RC(RTBigNumModExp(&Result, &g_Three, &g_Three, &g_Three), VINF_SUCCESS); + RTTESTI_CHECK(RTBigNumCompareWithS64(&Result, 0) == 0); + + RTTESTI_CHECK_RC(RTBigNumModExp(&Result, &g_Three, &g_Three, &g_Five), VINF_SUCCESS); + RTTESTI_CHECK(RTBigNumCompareWithS64(&Result, 2) == 0); + + RTTESTI_CHECK_RC(RTBigNumModExp(&Result, &g_Three, &g_Five, &g_Five), VINF_SUCCESS); + RTTESTI_CHECK(RTBigNumCompareWithS64(&Result, 3) == 0); + + RTTESTI_CHECK_RC(RTBigNumModExp(&Result, &g_Three, &g_Five, &g_Four), VINF_SUCCESS); + RTTESTI_CHECK(RTBigNumCompareWithS64(&Result, 3) == 0); + +#if 0 + static struct + { + const char *pszBase, *pszExponent, *pszModulus, *pszResult; + } s_aTests[] = + { + { + "180DB4284A119D6133AE4BB0C27C27D1", /*^*/ "3A", /*mod */ " ", /* = */ + }, + }; + for (uint32_t i = 0; i < RT_ELEMENTS(s_aTests); i++) + { + RTBIGNUM Base, Exponent, Expected, Modulus; + if ( testHexStringToNum(&Base, s_aTests[i].pszBase, RTBIGNUMINIT_F_UNSIGNED | fFlags) + && testHexStringToNum(&Exponent, s_aTests[i].pszExponent, RTBIGNUMINIT_F_UNSIGNED | fFlags) + && testHexStringToNum(&Modulus, s_aTests[i].pszModulus, RTBIGNUMINIT_F_UNSIGNED | fFlags) + && testHexStringToNum(&Expected, s_aTests[i].pszResult, RTBIGNUMINIT_F_UNSIGNED | fFlags)) + { + RTTESTI_CHECK_RC(RTBigNumModExp(&Result, &Base, &Exponent, &Modulus), VINF_SUCCESS); + RTTESTI_CHECK(RTBigNumCompare(&Result, &Expected) == 0); + RTTESTI_CHECK_RC(RTBigNumDestroy(&Base), VINF_SUCCESS); + RTTESTI_CHECK_RC(RTBigNumDestroy(&Exponent), VINF_SUCCESS); + RTTESTI_CHECK_RC(RTBigNumDestroy(&Expected), VINF_SUCCESS); + RTTESTI_CHECK_RC(RTBigNumDestroy(&Modulus), VINF_SUCCESS); + } + } +#endif + + RTTESTI_CHECK_RC(RTBigNumDestroy(&Result), VINF_SUCCESS); + } + + /* Decrypt a PKCS#7 signature. */ + RTTESTI_CHECK_RC_RETV(RTBigNumInitZero(&Result, 0), VINF_SUCCESS); + RTTESTI_CHECK_RC(RTBigNumModExp(&Result, &g_Signature, &g_PubKeyExp, &g_PubKeyMod), VINF_SUCCESS); + RTTESTI_CHECK(RTBigNumCompare(&Result, &g_SignatureDecrypted) == 0); +} + + +static void testToBytes(void) +{ + RTTestSub(g_hTest, "RTBigNumToBytes*Endian"); + uint8_t abBuf[sizeof(g_abLargePositive) + sizeof(g_abLargeNegative)]; + + memset(abBuf, 0xcc, sizeof(abBuf)); + RTTESTI_CHECK_RC(RTBigNumToBytesBigEndian(&g_Zero, abBuf, 1), VINF_SUCCESS); + RTTESTI_CHECK(abBuf[0] == 0 && abBuf[1] == 0xcc); + + memset(abBuf, 0xcc, sizeof(abBuf)); + RTTESTI_CHECK_RC(RTBigNumToBytesBigEndian(&g_Zero, abBuf, 2), VINF_SUCCESS); + RTTESTI_CHECK(abBuf[0] == 0 && abBuf[1] == 0 && abBuf[2] == 0xcc); + + memset(abBuf, 0xcc, sizeof(abBuf)); + RTTESTI_CHECK_RC(RTBigNumToBytesBigEndian(&g_Zero, abBuf, 3), VINF_SUCCESS); + RTTESTI_CHECK(abBuf[0] == 0 && abBuf[1] == 0 && abBuf[2] == 0 && abBuf[3] == 0xcc); + + memset(abBuf, 0xcc, sizeof(abBuf)); + RTTESTI_CHECK_RC(RTBigNumToBytesBigEndian(&g_Zero, abBuf, 4), VINF_SUCCESS); + RTTESTI_CHECK(abBuf[0] == 0 && abBuf[1] == 0 && abBuf[2] == 0 && abBuf[3] == 0 && abBuf[4] == 0xcc); + + + memset(abBuf, 0xcc, sizeof(abBuf)); + RTTESTI_CHECK_RC(RTBigNumToBytesBigEndian(&g_Minus1, abBuf, 1), VINF_SUCCESS); + RTTESTI_CHECK(abBuf[0] == 0xff && abBuf[1] == 0xcc && abBuf[2] == 0xcc && abBuf[3] == 0xcc && abBuf[4] == 0xcc); + + memset(abBuf, 0xcc, sizeof(abBuf)); + RTTESTI_CHECK_RC(RTBigNumToBytesBigEndian(&g_Minus1, abBuf, 2), VINF_SUCCESS); + RTTESTI_CHECK(abBuf[0] == 0xff && abBuf[1] == 0xff && abBuf[2] == 0xcc && abBuf[3] == 0xcc && abBuf[4] == 0xcc); + + memset(abBuf, 0xcc, sizeof(abBuf)); + RTTESTI_CHECK_RC(RTBigNumToBytesBigEndian(&g_Minus1, abBuf, 3), VINF_SUCCESS); + RTTESTI_CHECK(abBuf[0] == 0xff && abBuf[1] == 0xff && abBuf[2] == 0xff && abBuf[3] == 0xcc && abBuf[4] == 0xcc); + + memset(abBuf, 0xcc, sizeof(abBuf)); + RTTESTI_CHECK_RC(RTBigNumToBytesBigEndian(&g_Minus1, abBuf, 4), VINF_SUCCESS); + RTTESTI_CHECK(abBuf[0] == 0xff && abBuf[1] == 0xff && abBuf[2] == 0xff && abBuf[3] == 0xff && abBuf[4] == 0xcc); + + + memset(abBuf, 0xcc, sizeof(abBuf)); + RTTESTI_CHECK_RC(RTBigNumToBytesBigEndian(&g_LargePositive, abBuf, sizeof(g_abLargePositive)), VINF_SUCCESS); + RTTESTI_CHECK(memcmp(abBuf, g_abLargePositive, sizeof(g_abLargePositive)) == 0); + RTTESTI_CHECK(abBuf[sizeof(g_abLargePositive)] == 0xcc); + + memset(abBuf, 0xcc, sizeof(abBuf)); + RTTESTI_CHECK_RC(RTBigNumToBytesBigEndian(&g_LargePositive, abBuf, sizeof(g_abLargePositive) -1 ), VERR_BUFFER_OVERFLOW); + RTTESTI_CHECK(memcmp(abBuf, &g_abLargePositive[1], sizeof(g_abLargePositive) - 1) == 0); + RTTESTI_CHECK(abBuf[sizeof(g_abLargePositive) - 1] == 0xcc); +} + + +static void testBenchmarks(bool fOnlyModExp) +{ + RTTestSub(g_hTest, "Benchmarks"); + + /* + * For the modexp benchmark we decrypt a real PKCS #7 signature. + */ + RTBIGNUM Decrypted; + RTTESTI_CHECK_RC_RETV(RTBigNumInitZero(&Decrypted, 0 /*fFlags*/), VINF_SUCCESS); + RTTESTI_CHECK_RC_RETV(RTBigNumModExp(&Decrypted, &g_Signature, &g_PubKeyExp, &g_PubKeyMod), VINF_SUCCESS); + RTTESTI_CHECK_RC_RETV(RTBigNumModExp(&Decrypted, &g_Signature, &g_PubKeyExp, &g_PubKeyMod), VINF_SUCCESS); + + RTThreadYield(); + int rc = VINF_SUCCESS; + uint32_t cRounds = 0; + uint64_t uStartTS = RTTimeNanoTS(); + while (cRounds < 10240) + { + rc |= RTBigNumModExp(&Decrypted, &g_Signature, &g_PubKeyExp, &g_PubKeyMod); + cRounds++; + } + uint64_t uElapsed = RTTimeNanoTS() - uStartTS; + RTTESTI_CHECK_RC(rc, VINF_SUCCESS); + RTTestIValue("RTBigNumModExp", uElapsed / cRounds, RTTESTUNIT_NS_PER_CALL); + + if (fOnlyModExp) + return; + +#if 1 + /* Compare with OpenSSL BN. */ + BN_CTX *pObnCtx = BN_CTX_new(); + BIGNUM *pObnPubKeyExp = BN_bin2bn(g_abPubKeyExp, sizeof(g_abPubKeyExp), NULL); + BIGNUM *pObnPubKeyMod = BN_bin2bn(g_abPubKeyMod, sizeof(g_abPubKeyMod), NULL); + BIGNUM *pObnSignature = BN_bin2bn(g_abSignature, sizeof(g_abSignature), NULL); + BIGNUM *pObnSignatureDecrypted = BN_bin2bn(g_abSignatureDecrypted, sizeof(g_abSignatureDecrypted), NULL); + BIGNUM *pObnResult = BN_new(); + RTTESTI_CHECK_RETV(BN_mod_exp(pObnResult, pObnSignature, pObnPubKeyExp, pObnPubKeyMod, pObnCtx) == 1); + RTTESTI_CHECK_RETV(BN_ucmp(pObnResult, pObnSignatureDecrypted) == 0); + + rc = 1; + cRounds = 0; + uStartTS = RTTimeNanoTS(); + while (cRounds < 4096) + { + rc &= BN_mod_exp(pObnResult, pObnSignature, pObnPubKeyExp, pObnPubKeyMod, pObnCtx); + cRounds++; + } + uElapsed = RTTimeNanoTS() - uStartTS; + RTTESTI_CHECK_RC(rc, 1); + RTTestIValue("BN_mod_exp", uElapsed / cRounds, RTTESTUNIT_NS_PER_CALL); + + rc = 1; + cRounds = 0; + uStartTS = RTTimeNanoTS(); + while (cRounds < 4096) + { + rc &= BN_mod_exp_simple(pObnResult, pObnSignature, pObnPubKeyExp, pObnPubKeyMod, pObnCtx); + cRounds++; + } + uElapsed = RTTimeNanoTS() - uStartTS; + RTTESTI_CHECK_RC(rc, 1); + RTTestIValue("BN_mod_exp_simple", uElapsed / cRounds, RTTESTUNIT_NS_PER_CALL); +#endif + + /* + * Check out the speed of modulo. + */ + RTBIGNUM Product; + RTTESTI_CHECK_RC_RETV(RTBigNumInitZero(&Product, 0), VINF_SUCCESS); + RTTESTI_CHECK_RC_RETV(RTBigNumMultiply(&Product, &g_Signature, &g_Signature), VINF_SUCCESS); + RTTESTI_CHECK_RC_RETV(RTBigNumModulo(&Decrypted, &Product, &g_PubKeyMod), VINF_SUCCESS); + RTThreadYield(); + rc = VINF_SUCCESS; + cRounds = 0; + uStartTS = RTTimeNanoTS(); + while (cRounds < 10240) + { + rc |= RTBigNumModulo(&Decrypted, &Product, &g_PubKeyMod); + cRounds++; + } + uElapsed = RTTimeNanoTS() - uStartTS; + RTTESTI_CHECK_RC(rc, VINF_SUCCESS); + RTTestIValue("RTBigNumModulo", uElapsed / cRounds, RTTESTUNIT_NS_PER_CALL); + +#if 1 + /* Compare with OpenSSL BN. */ + BIGNUM *pObnProduct = BN_new(); + RTTESTI_CHECK_RETV(BN_mul(pObnProduct, pObnSignature, pObnSignature, pObnCtx) == 1); + RTTESTI_CHECK_RETV(BN_mod(pObnResult, pObnProduct, pObnPubKeyMod, pObnCtx) == 1); + rc = 1; + cRounds = 0; + uStartTS = RTTimeNanoTS(); + while (cRounds < 10240) + { + rc &= BN_mod(pObnResult, pObnProduct, pObnPubKeyMod, pObnCtx); + cRounds++; + } + uElapsed = RTTimeNanoTS() - uStartTS; + RTTESTI_CHECK_RC(rc, 1); + RTTestIValue("BN_mod", uElapsed / cRounds, RTTESTUNIT_NS_PER_CALL); +#endif + + /* + * Check out the speed of multiplication. + */ + RTThreadYield(); + rc = VINF_SUCCESS; + cRounds = 0; + uStartTS = RTTimeNanoTS(); + while (cRounds < 10240) + { + rc |= RTBigNumMultiply(&Product, &g_Signature, &g_Signature); + cRounds++; + } + uElapsed = RTTimeNanoTS() - uStartTS; + RTTESTI_CHECK_RC(rc, VINF_SUCCESS); + RTTestIValue("RTBigNumMultiply", uElapsed / cRounds, RTTESTUNIT_NS_PER_CALL); + +#if 1 + /* Compare with OpenSSL BN. */ + rc = 1; + cRounds = 0; + uStartTS = RTTimeNanoTS(); + while (cRounds < 10240) + { + rc &= BN_mul(pObnProduct, pObnSignature, pObnSignature, pObnCtx); + cRounds++; + } + uElapsed = RTTimeNanoTS() - uStartTS; + RTTESTI_CHECK_RC(rc, 1); + RTTestIValue("BN_mul", uElapsed / cRounds, RTTESTUNIT_NS_PER_CALL); +#endif + +} + +/* + * UInt128 tests (RTBigInt uses UInt128 in some cases. + */ + +static void testUInt128Subtraction(void) +{ + RTTestSub(g_hTest, "RTUInt128Sub"); + + static struct + { + RTUINT128U uMinuend, uSubtrahend, uResult; + } const s_aTests[] = + { + { RTUINT128_INIT_C(0, 0), RTUINT128_INIT_C(0, 0), RTUINT128_INIT_C(0, 0) }, + { RTUINT128_INIT_C(0, 0), RTUINT128_INIT_C(0, 1), RTUINT128_INIT_C(~0, ~0) }, + { RTUINT128_INIT_C(0, 1), RTUINT128_INIT_C(0, 1), RTUINT128_INIT_C(0, 0) }, + { RTUINT128_INIT_C(0, 2), RTUINT128_INIT_C(0, 1), RTUINT128_INIT_C(0, 1) }, + { RTUINT128_INIT_C(0, 1), RTUINT128_INIT_C(0, 2), RTUINT128_INIT_C(~0, ~0) }, + { RTUINT128_INIT_C(2, 9), RTUINT128_INIT_C(2, 0), RTUINT128_INIT_C(0, 9) }, + { RTUINT128_INIT_C(2, 1), RTUINT128_INIT_C(0, 2), RTUINT128_INIT_C(1, ~0) }, + { + RTUINT128_INIT_C(0xffffffffffffffff, 0x0000000000000000), + RTUINT128_INIT_C(0x0000000000000000, 0xffffffffffffffff), + RTUINT128_INIT_C(0xfffffffffffffffe, 0x0000000000000001), + }, + { + RTUINT128_INIT_C(0xffffffffffffffff, 0xfffffffffff00000), + RTUINT128_INIT_C(0x0000000000000000, 0x00000000000fffff), + RTUINT128_INIT_C(0xffffffffffffffff, 0xffffffffffe00001), + }, + { + RTUINT128_INIT_C(0xffffffffffffffff, 0xffffffffffffffff), + RTUINT128_INIT_C(0x00000fffffffffff, 0xffffffffffffffff), + RTUINT128_INIT_C(0xfffff00000000000, 0x0000000000000000) + }, + { + RTUINT128_INIT_C(0x0000000000000000, 0x000000251ce8fe85), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000301f41b4d), + RTUINT128_INIT_C(0x0000000000000000, 0x000000221af4e338), + }, + { + RTUINT128_INIT_C(0xfd4d22a441ffa48c, 0x170739b573a9498d), + RTUINT128_INIT_C(0x43459cea40782b26, 0xc8c16bb29cb3b343), + RTUINT128_INIT_C(0xba0785ba01877965, 0x4e45ce02d6f5964a), + }, + }; + for (uint32_t i = 0; i < RT_ELEMENTS(s_aTests); i++) + { + RTUINT128U uResult; + PRTUINT128U pResult = RTUInt128Sub(&uResult, &s_aTests[i].uMinuend, &s_aTests[i].uSubtrahend); + if (pResult != &uResult) + RTTestIFailed("test #%i returns %p instead of %p", i, pResult, &uResult); + else if (RTUInt128IsNotEqual(&uResult, &s_aTests[i].uResult)) + RTTestIFailed("test #%i failed: remainder differs:\nExp: %016RX64`%016RX64\nGot: %016RX64`%016RX64", + i, s_aTests[i].uResult.s.Hi, s_aTests[i].uResult.s.Lo, uResult.s.Hi, uResult.s.Lo ); + + uResult = s_aTests[i].uMinuend; + pResult = RTUInt128AssignSub(&uResult, &s_aTests[i].uSubtrahend); + RTTESTI_CHECK(pResult == &uResult); + RTTESTI_CHECK(RTUInt128IsEqual(&uResult, &s_aTests[i].uResult)); + } +} + + +static void testUInt128Addition(void) +{ + RTTestSub(g_hTest, "RTUInt128Add"); + + static struct + { + RTUINT128U uAugend, uAddend, uResult; + } const s_aTests[] = + { + { RTUINT128_INIT_C(0, 0), RTUINT128_INIT_C(0, 0), RTUINT128_INIT_C(0, 0) }, + { RTUINT128_INIT_C(0, 0), RTUINT128_INIT_C(0, 1), RTUINT128_INIT_C(0, 1) }, + { RTUINT128_INIT_C(0, 1), RTUINT128_INIT_C(0, 1), RTUINT128_INIT_C(0, 2) }, + { RTUINT128_INIT_C(0, 2), RTUINT128_INIT_C(0, 1), RTUINT128_INIT_C(0, 3) }, + { RTUINT128_INIT_C(0, 1), RTUINT128_INIT_C(0, 2), RTUINT128_INIT_C(0, 3) }, + { RTUINT128_INIT_C(2, 9), RTUINT128_INIT_C(2, 0), RTUINT128_INIT_C(4, 9) }, + { RTUINT128_INIT_C(2, 1), RTUINT128_INIT_C(0, 2), RTUINT128_INIT_C(2, 3) }, + { + RTUINT128_INIT_C(0xffffffffffffffff, 0x0000000000000000), + RTUINT128_INIT_C(0x0000000000000000, 0xffffffffffffffff), + RTUINT128_INIT_C(0xffffffffffffffff, 0xffffffffffffffff), + }, + { + RTUINT128_INIT_C(0xffffffffffffffff, 0xfffffffffff00000), + RTUINT128_INIT_C(0x0000000000000000, 0x00000000000ffeff), + RTUINT128_INIT_C(0xffffffffffffffff, 0xfffffffffffffeff), + }, + { + RTUINT128_INIT_C(0xefffffffffffffff, 0xfffffffffff00000), + RTUINT128_INIT_C(0x0000000000000000, 0x00000000001fffff), + RTUINT128_INIT_C(0xf000000000000000, 0x00000000000fffff), + }, + { + RTUINT128_INIT_C(0xeeeeeeeeeeeeeeee, 0xeeeeeeeeeee00000), + RTUINT128_INIT_C(0x0111111111111111, 0x11111111112fffff), + RTUINT128_INIT_C(0xf000000000000000, 0x00000000000fffff), + }, + { + RTUINT128_INIT_C(0xffffffffffffffff, 0xffffffffffffffff), + RTUINT128_INIT_C(0x00000fffffffffff, 0xffffffffffffffff), + RTUINT128_INIT_C(0x00000fffffffffff, 0xfffffffffffffffe) + }, + { + RTUINT128_INIT_C(0xffffffffffffffff, 0xffffffffffffffff), + RTUINT128_INIT_C(0xffffffffffffffff, 0xffffffffffffffff), + RTUINT128_INIT_C(0xffffffffffffffff, 0xfffffffffffffffe) + }, + { + RTUINT128_INIT_C(0x0000000000000000, 0x000000251ce8fe85), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000301f41b4d), + RTUINT128_INIT_C(0x0000000000000000, 0x000000281edd19d2), + }, + { + RTUINT128_INIT_C(0xfd4d22a441ffa48c, 0x170739b573a9498d), + RTUINT128_INIT_C(0x43459cea40782b26, 0xc8c16bb29cb3b343), + RTUINT128_INIT_C(0x4092bf8e8277cfb2, 0xdfc8a568105cfcd0), + }, + }; + for (uint32_t i = 0; i < RT_ELEMENTS(s_aTests); i++) + { + RTUINT128U uResult; + PRTUINT128U pResult = RTUInt128Add(&uResult, &s_aTests[i].uAugend, &s_aTests[i].uAddend); + if (pResult != &uResult) + RTTestIFailed("test #%i returns %p instead of %p", i, pResult, &uResult); + else if (RTUInt128IsNotEqual(&uResult, &s_aTests[i].uResult)) + RTTestIFailed("test #%i failed: result differs:\nExp: %016RX64`%016RX64\nGot: %016RX64`%016RX64", + i, s_aTests[i].uResult.s.Hi, s_aTests[i].uResult.s.Lo, uResult.s.Hi, uResult.s.Lo ); + + uResult = s_aTests[i].uAugend; + pResult = RTUInt128AssignAdd(&uResult, &s_aTests[i].uAddend); + RTTESTI_CHECK(pResult == &uResult); + RTTESTI_CHECK(RTUInt128IsEqual(&uResult, &s_aTests[i].uResult)); + + if (s_aTests[i].uAddend.s.Hi == 0) + { + pResult = RTUInt128AddU64(&uResult, &s_aTests[i].uAugend, s_aTests[i].uAddend.s.Lo); + RTTESTI_CHECK(pResult == &uResult); + RTTESTI_CHECK(RTUInt128IsEqual(&uResult, &s_aTests[i].uResult)); + + uResult = s_aTests[i].uAugend; + pResult = RTUInt128AssignAddU64(&uResult, s_aTests[i].uAddend.s.Lo); + RTTESTI_CHECK(pResult == &uResult); + RTTESTI_CHECK(RTUInt128IsEqual(&uResult, &s_aTests[i].uResult)); + } + + if (s_aTests[i].uAugend.s.Hi == 0) + { + pResult = RTUInt128AddU64(&uResult, &s_aTests[i].uAddend, s_aTests[i].uAugend.s.Lo); + RTTESTI_CHECK(pResult == &uResult); + RTTESTI_CHECK(RTUInt128IsEqual(&uResult, &s_aTests[i].uResult)); + + uResult = s_aTests[i].uAddend; + pResult = RTUInt128AssignAddU64(&uResult, s_aTests[i].uAugend.s.Lo); + RTTESTI_CHECK(pResult == &uResult); + RTTESTI_CHECK(RTUInt128IsEqual(&uResult, &s_aTests[i].uResult)); + } + } +} + +static void testUInt128Multiplication(void) +{ + RTTestSub(g_hTest, "RTUInt128Mul"); + + static struct + { + RTUINT128U uFactor1, uFactor2, uResult; + } const s_aTests[] = + { + { RTUINT128_INIT_C(0, 0), RTUINT128_INIT_C(0, 1), RTUINT128_INIT_C(0, 0) }, + { RTUINT128_INIT_C(~0, ~0), RTUINT128_INIT_C(0, 0), RTUINT128_INIT_C(0, 0) }, + { RTUINT128_INIT_C(0, 1), RTUINT128_INIT_C(0, 1), RTUINT128_INIT_C(0, 1) }, + { RTUINT128_INIT_C(0, 1), RTUINT128_INIT_C(0, 2), RTUINT128_INIT_C(0, 2) }, + { RTUINT128_INIT_C(2, 0), RTUINT128_INIT_C(2, 0), RTUINT128_INIT_C(0, 0) }, + { RTUINT128_INIT_C(2, 1), RTUINT128_INIT_C(0, 2), RTUINT128_INIT_C(4, 2) }, + { + RTUINT128_INIT_C(0x1111111111111111, 0x1111111111111111), + RTUINT128_INIT_C(0, 2), + RTUINT128_INIT_C(0x2222222222222222, 0x2222222222222222) + }, + { + RTUINT128_INIT_C(0x1111111111111111, 0x1111111111111111), + RTUINT128_INIT_C(0, 0xf), + RTUINT128_INIT_C(0xffffffffffffffff, 0xffffffffffffffff) + }, + { + RTUINT128_INIT_C(0x1111111111111111, 0x1111111111111111), + RTUINT128_INIT_C(0, 0x30000), + RTUINT128_INIT_C(0x3333333333333333, 0x3333333333330000) + }, + { + RTUINT128_INIT_C(0x1111111111111111, 0x1111111111111111), + RTUINT128_INIT_C(0, 0x30000000), + RTUINT128_INIT_C(0x3333333333333333, 0x3333333330000000) + }, + { + RTUINT128_INIT_C(0x1111111111111111, 0x1111111111111111), + RTUINT128_INIT_C(0, 0x3000000000000), + RTUINT128_INIT_C(0x3333333333333333, 0x3333000000000000) + }, + { + RTUINT128_INIT_C(0x1111111111111111, 0x1111111111111111), + RTUINT128_INIT_C(0x0000000000000003, 0x0000000000000000), + RTUINT128_INIT_C(0x3333333333333333, 0x0000000000000000) + }, + { + RTUINT128_INIT_C(0x1111111111111111, 0x1111111111111111), + RTUINT128_INIT_C(0x0000000300000000, 0x0000000000000000), + RTUINT128_INIT_C(0x3333333300000000, 0x0000000000000000) + }, + { + RTUINT128_INIT_C(0x1111111111111111, 0x1111111111111111), + RTUINT128_INIT_C(0x0003000000000000, 0x0000000000000000), + RTUINT128_INIT_C(0x3333000000000000, 0x0000000000000000) + }, + { + RTUINT128_INIT_C(0x1111111111111111, 0x1111111111111111), + RTUINT128_INIT_C(0x3000000000000000, 0x0000000000000000), + RTUINT128_INIT_C(0x3000000000000000, 0x0000000000000000) + }, + }; + for (uint32_t i = 0; i < RT_ELEMENTS(s_aTests); i++) + { + RTUINT128U uResult; + PRTUINT128U pResult = RTUInt128Mul(&uResult, &s_aTests[i].uFactor1, &s_aTests[i].uFactor2); + if (pResult != &uResult) + RTTestIFailed("test #%i returns %p instead of %p", i, pResult, &uResult); + else if (RTUInt128IsNotEqual(&uResult, &s_aTests[i].uResult)) + RTTestIFailed("test #%i failed: \nExp: %016RX64`%016RX64\nGot: %016RX64`%016RX64", + i, s_aTests[i].uResult.s.Hi, s_aTests[i].uResult.s.Lo, uResult.s.Hi, uResult.s.Lo ); + + if (s_aTests[i].uFactor2.s.Hi == 0) + { + pResult = RTUInt128MulByU64(&uResult, &s_aTests[i].uFactor1, s_aTests[i].uFactor2.s.Lo); + RTTESTI_CHECK(pResult == &uResult); + RTTESTI_CHECK(RTUInt128IsEqual(&uResult, &s_aTests[i].uResult)); + } + + if (s_aTests[i].uFactor1.s.Hi == 0) + { + pResult = RTUInt128MulByU64(&uResult, &s_aTests[i].uFactor2, s_aTests[i].uFactor1.s.Lo); + RTTESTI_CHECK(pResult == &uResult); + RTTESTI_CHECK(RTUInt128IsEqual(&uResult, &s_aTests[i].uResult)); + } + + uResult = s_aTests[i].uFactor1; + pResult = RTUInt128AssignMul(&uResult, &s_aTests[i].uFactor2); + RTTESTI_CHECK(pResult == &uResult); + RTTESTI_CHECK(RTUInt128IsEqual(&uResult, &s_aTests[i].uResult)); + } +} + + +#if 0 /* Java program for generating testUInt128Division test data. */ +import java.math.BigInteger; +import java.lang.System; +import java.lang.Integer; +import java.util.Random; +import java.security.SecureRandom; + +class uint128divtestgen +{ + +public static String format(BigInteger BigNum) +{ + String str = BigNum.toString(16); + while (str.length() < 32) + str = "0" + str; + return "RTUINT128_INIT_C(0x" + str.substring(0, 16) + ", 0x" + str.substring(16) + ")"; +} + +public static void main(String args[]) +{ + Random Rnd = new SecureRandom(); + + int cDivisorLarger = 0; + for (int i = 0; i < 4096; i++) + { + int cDividendBits = Rnd.nextInt(127) + 1; + int cDivisorBits = i < 9 ? cDividendBits : Rnd.nextInt(127) + 1; + if (cDivisorBits > cDividendBits) + { + if (cDivisorLarger > i / 16) + cDividendBits = 128 - Rnd.nextInt(16); + else + cDivisorLarger++; + } + + BigInteger Dividend = new BigInteger(cDividendBits, Rnd); + BigInteger Divisor = new BigInteger(cDivisorBits, Rnd); + while (Divisor.compareTo(BigInteger.ZERO) == 0) { + cDivisorBits++; + Divisor = new BigInteger(cDivisorBits, Rnd); + } + + BigInteger[] Result = Dividend.divideAndRemainder(Divisor); + + System.out.println(" { /* i=" + Integer.toString(i) + "; " + Integer.toString(cDividendBits) + " / " + Integer.toString(cDivisorBits) + " */"); + System.out.println(" " + format(Dividend) + ", " + format(Divisor) + ","); + System.out.println(" " + format(Result[0]) + ", " + format(Result[1]) + ""); + System.out.println(" },"); + } +} +} +#endif + +static void testUInt128Division(void) +{ + RTTestSub(g_hTest, "RTUInt128DivMod"); + + static struct + { + RTUINT128U uDividend, uDivisor, uQuotient, uRemainder; + } const s_aTests[] = + { + { RTUINT128_INIT_C(0, 0), RTUINT128_INIT_C(0, 1), RTUINT128_INIT_C(0, 0), RTUINT128_INIT_C(0, 0) }, /* #0 */ + { RTUINT128_INIT_C(0, 1), RTUINT128_INIT_C(0, 1), RTUINT128_INIT_C(0, 1), RTUINT128_INIT_C(0, 0) }, /* #1 */ + { RTUINT128_INIT_C(0, 1), RTUINT128_INIT_C(0, 2), RTUINT128_INIT_C(0, 0), RTUINT128_INIT_C(0, 1) }, /* #2 */ + { RTUINT128_INIT_C(2, 0), RTUINT128_INIT_C(2, 0), RTUINT128_INIT_C(0, 1), RTUINT128_INIT_C(0, 0) }, /* #3 */ + { RTUINT128_INIT_C(2, 1), RTUINT128_INIT_C(0, 2), RTUINT128_INIT_C(1, 0), RTUINT128_INIT_C(0, 1) }, /* #4 */ + { /* #5 */ + RTUINT128_INIT_C(0xffffffffffffffff, 0x0000000000000000), + RTUINT128_INIT_C(0x0000000000000000, 0xffffffffffffffff), + RTUINT128_INIT_C(0x0000000000000001, 0x0000000000000000), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000) + }, + { /* #6 */ + RTUINT128_INIT_C(0xffffffffffffffff, 0xfffffffffff00000), + RTUINT128_INIT_C(0x00000fffffffffff, 0xffffffffffffffff), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000100000), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000) + }, + { /* #7 */ + RTUINT128_INIT_C(0xffffffffffffffff, 0xffffffffffffffff), + RTUINT128_INIT_C(0x00000fffffffffff, 0xffffffffffffffff), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000100000), + RTUINT128_INIT_C(0x0000000000000000, 0x00000000000fffff) + }, + { /* #8 */ + RTUINT128_INIT_C(0x0000000000000000, 0x000000251ce8fe85), RTUINT128_INIT_C(0x0000000000000000, 0x0000000301f41b4d), + RTUINT128_INIT_C(0x0000000000000000, 0x000000000000000c), RTUINT128_INIT_C(0x0000000000000000, 0x000000010577b6e9) + }, + +#include "tstRTBigNum-uint128-div-test-data.h" + }; + for (uint32_t i = 0; i < RT_ELEMENTS(s_aTests); i++) + { + RTUINT128U uResultQ, uResultR; + PRTUINT128U pResultQ = RTUInt128DivRem(&uResultQ, &uResultR, &s_aTests[i].uDividend, &s_aTests[i].uDivisor); + if (pResultQ != &uResultQ) + RTTestIFailed("test #%i returns %p instead of %p", i, pResultQ, &uResultQ); + else if ( RTUInt128IsNotEqual(&uResultQ, &s_aTests[i].uQuotient) + && RTUInt128IsNotEqual(&uResultR, &s_aTests[i].uRemainder)) + { + RTTestIFailed("test #%i failed on both counts", i); + } + else if (RTUInt128IsNotEqual(&uResultQ, &s_aTests[i].uQuotient)) + RTTestIFailed("test #%i failed: quotient differs:\nExp: %016RX64`%016RX64\nGot: %016RX64`%016RX64", + i, s_aTests[i].uQuotient.s.Hi, s_aTests[i].uQuotient.s.Lo, uResultQ.s.Hi, uResultQ.s.Lo ); + else if (RTUInt128IsNotEqual(&uResultR, &s_aTests[i].uRemainder)) + RTTestIFailed("test #%i failed: remainder differs:\nExp: %016RX64`%016RX64\nGot: %016RX64`%016RX64", + i, s_aTests[i].uRemainder.s.Hi, s_aTests[i].uRemainder.s.Lo, uResultR.s.Hi, uResultR.s.Lo ); + + pResultQ = RTUInt128Div(&uResultQ, &s_aTests[i].uDividend, &s_aTests[i].uDivisor); + RTTESTI_CHECK(pResultQ == &uResultQ); + RTTESTI_CHECK(RTUInt128IsEqual(&uResultQ, &s_aTests[i].uQuotient)); + + uResultQ = s_aTests[i].uDividend; + pResultQ = RTUInt128AssignDiv(&uResultQ, &s_aTests[i].uDivisor); + RTTESTI_CHECK(pResultQ == &uResultQ); + RTTESTI_CHECK(RTUInt128IsEqual(&uResultQ, &s_aTests[i].uQuotient)); + + + PRTUINT128U pResultR = RTUInt128Mod(&uResultR, &s_aTests[i].uDividend, &s_aTests[i].uDivisor); + RTTESTI_CHECK(pResultR == &uResultR); + RTTESTI_CHECK(RTUInt128IsEqual(&uResultR, &s_aTests[i].uRemainder)); + + uResultR = s_aTests[i].uDividend; + pResultR = RTUInt128AssignMod(&uResultR, &s_aTests[i].uDivisor); + RTTESTI_CHECK(pResultR == &uResultR); + RTTESTI_CHECK(RTUInt128IsEqual(&uResultR, &s_aTests[i].uRemainder)); + } +} + + + +int main(int argc, char **argv) +{ + RTEXITCODE rcExit = RTTestInitAndCreate("tstRTBigNum", &g_hTest); + if (rcExit != RTEXITCODE_SUCCESS) + return rcExit; + RTTestBanner(g_hTest); + + /* Init fixed integers. */ + RTTestSub(g_hTest, "RTBigNumInit"); + RTTESTI_CHECK_RC(RTBigNumInit(&g_LargePositive, RTBIGNUMINIT_F_ENDIAN_BIG | RTBIGNUMINIT_F_SIGNED, + g_abLargePositive, sizeof(g_abLargePositive)), VINF_SUCCESS); + RTTESTI_CHECK_RC(RTBigNumInit(&g_LargePositive2, RTBIGNUMINIT_F_ENDIAN_BIG | RTBIGNUMINIT_F_SIGNED, + g_abLargePositive, sizeof(g_abLargePositive) - 11), VINF_SUCCESS); + RTTESTI_CHECK_RC(RTBigNumInit(&g_LargePositiveMinus1, RTBIGNUMINIT_F_ENDIAN_BIG | RTBIGNUMINIT_F_SIGNED, + g_abLargePositiveMinus1, sizeof(g_abLargePositiveMinus1)), VINF_SUCCESS); + RTTESTI_CHECK_RC(RTBigNumInit(&g_LargeNegative, RTBIGNUMINIT_F_ENDIAN_BIG | RTBIGNUMINIT_F_SIGNED, + g_abLargeNegative, sizeof(g_abLargeNegative)), VINF_SUCCESS); + RTTESTI_CHECK_RC(RTBigNumInit(&g_LargeNegative2, RTBIGNUMINIT_F_ENDIAN_BIG | RTBIGNUMINIT_F_SIGNED, + g_abLargeNegative, sizeof(g_abLargeNegative) - 9), VINF_SUCCESS); + RTTESTI_CHECK_RC(RTBigNumInit(&g_LargeNegativePluss1, RTBIGNUMINIT_F_ENDIAN_BIG | RTBIGNUMINIT_F_SIGNED, + g_abLargeNegativePluss1, sizeof(g_abLargeNegativePluss1)), VINF_SUCCESS); + RTTESTI_CHECK_RC(RTBigNumInit(&g_64BitPositive1, RTBIGNUMINIT_F_ENDIAN_BIG | RTBIGNUMINIT_F_SIGNED, + g_ab64BitPositive1, sizeof(g_ab64BitPositive1)), VINF_SUCCESS); + + RTTESTI_CHECK_RC(RTBigNumInitZero(&g_Zero, 0), VINF_SUCCESS); + RTTESTI_CHECK_RC(RTBigNumInit(&g_One, RTBIGNUMINIT_F_ENDIAN_BIG | RTBIGNUMINIT_F_SIGNED, "\x01", 1), VINF_SUCCESS); + RTTESTI_CHECK_RC(RTBigNumInit(&g_Two, RTBIGNUMINIT_F_ENDIAN_BIG | RTBIGNUMINIT_F_SIGNED, "\x02", 1), VINF_SUCCESS); + RTTESTI_CHECK_RC(RTBigNumInit(&g_Three, RTBIGNUMINIT_F_ENDIAN_BIG | RTBIGNUMINIT_F_SIGNED, "\x03", 1), VINF_SUCCESS); + RTTESTI_CHECK_RC(RTBigNumInit(&g_Four, RTBIGNUMINIT_F_ENDIAN_BIG | RTBIGNUMINIT_F_SIGNED, "\x04", 1), VINF_SUCCESS); + RTTESTI_CHECK_RC(RTBigNumInit(&g_Five, RTBIGNUMINIT_F_ENDIAN_BIG | RTBIGNUMINIT_F_SIGNED, "\x05", 1), VINF_SUCCESS); + RTTESTI_CHECK_RC(RTBigNumInit(&g_Ten, RTBIGNUMINIT_F_ENDIAN_BIG | RTBIGNUMINIT_F_SIGNED, "\x0a", 1), VINF_SUCCESS); + RTTESTI_CHECK_RC(RTBigNumInit(&g_FourtyTwo, RTBIGNUMINIT_F_ENDIAN_BIG | RTBIGNUMINIT_F_SIGNED, "\x2a", 1), VINF_SUCCESS); + + RTTESTI_CHECK_RC(RTBigNumInit(&g_Minus1, RTBIGNUMINIT_F_ENDIAN_BIG | RTBIGNUMINIT_F_SIGNED, + g_abMinus1, sizeof(g_abMinus1)), VINF_SUCCESS); + + RTTESTI_CHECK_RC(RTBigNumInit(&g_PubKeyExp, RTBIGNUMINIT_F_ENDIAN_BIG | RTBIGNUMINIT_F_UNSIGNED, + g_abPubKeyExp, sizeof(g_abPubKeyExp)), VINF_SUCCESS); + RTTESTI_CHECK_RC(RTBigNumInit(&g_PubKeyMod, RTBIGNUMINIT_F_ENDIAN_BIG | RTBIGNUMINIT_F_UNSIGNED, + g_abPubKeyMod, sizeof(g_abPubKeyMod)), VINF_SUCCESS); + RTTESTI_CHECK_RC(RTBigNumInit(&g_Signature, RTBIGNUMINIT_F_ENDIAN_BIG | RTBIGNUMINIT_F_UNSIGNED, + g_abSignature, sizeof(g_abSignature)), VINF_SUCCESS); + RTTESTI_CHECK_RC(RTBigNumInit(&g_SignatureDecrypted, RTBIGNUMINIT_F_ENDIAN_BIG | RTBIGNUMINIT_F_UNSIGNED, + g_abSignatureDecrypted, sizeof(g_abSignatureDecrypted)), VINF_SUCCESS); + testMoreInit(); + + if (RTTestIErrorCount() == 0) + { + if (argc != 2) + { + /* Test UInt128 first as it may be used by RTBigInt. */ + testUInt128Multiplication(); + testUInt128Division(); + testUInt128Subtraction(); + testUInt128Addition(); + + /* Test the RTBigInt operations. */ + testCompare(); + testSubtraction(); + testAddition(); + testShift(); + testMultiplication(); + testDivision(); + testModulo(); + testExponentiation(); + testModExp(); + testToBytes(); + } + + /* Benchmarks */ + testBenchmarks(argc == 2); + + /* Cleanups. */ + RTTestSub(g_hTest, "RTBigNumDestroy"); + RTTESTI_CHECK_RC(RTBigNumDestroy(&g_LargePositive), VINF_SUCCESS); + RTTESTI_CHECK_RC(RTBigNumDestroy(&g_LargePositive2), VINF_SUCCESS); + RTTESTI_CHECK_RC(RTBigNumDestroy(&g_LargeNegative), VINF_SUCCESS); + RTTESTI_CHECK_RC(RTBigNumDestroy(&g_LargeNegative2), VINF_SUCCESS); + RTTESTI_CHECK_RC(RTBigNumDestroy(&g_Zero), VINF_SUCCESS); + RTTESTI_CHECK_RC(RTBigNumDestroy(&g_64BitPositive1), VINF_SUCCESS); + } + + return RTTestSummaryAndDestroy(g_hTest); +} + diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Runtime/testcase/tstRTBigNum-div-test-data.h virtualbox-4.1.44-dfsg/src/VBox/Runtime/testcase/tstRTBigNum-div-test-data.h --- virtualbox-4.1.12-dfsg/src/VBox/Runtime/testcase/tstRTBigNum-div-test-data.h 1970-01-01 00:00:00.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Runtime/testcase/tstRTBigNum-div-test-data.h 2015-11-11 15:09:13.000000000 +0000 @@ -0,0 +1,55296 @@ + { /* i=0 cDividendBits=3048 cDivisorBits=3048 */ + "f2afd2e61c36f91635ea91bba3286b682e59b68d95b98c186a9a1c44aa356a3bf051d3759bcc8f5dbf0815e050205558410792213d9cae993c23c1554a850f8b4cdcefdb7499ba37dbf3d29cfd22ab3792abc8a001eb02dc681715ffc3dcf25c47c03396d49d6b645e5265d4acfb5cdf71cc8585431a74523358bf29b9a8484b6dbddcb042be9a6e8e28fa46934f192792eabb1e236f7429a77b06f872d040f2086e4db309c027b15d616829508605088394b50bdb74bb5b74811b4b209141cd9a1602ebd24956903cfdaf7eb82f48372de01a2fd48309f054db1aa5fa6b308dea4995b5415b59df28b9fd94c356e955846898d97c161d8175a167dfbdeeff783ddeccb7be1ae74c5ff16e92fa63d375f23fedad6c12d3834a16e72b74c65cef3ed57e093e0bbfa45cc20361728e33f4adc0b68cdaadd2697f37a121fc7d3310c492be4cd0d2885872ef229a9c3887eef6048c18d43cdbb072d002ee2d0bd05c541e7ba742cc42c54e5cbe27d1c6026c99519a43430cd8ab7a613ceb88", + "f8ab534e96ccc4770e5e1d8cb0c5c800f4baf11e6a4e041912dcb5a449b91cf98f38932bc56506a402eea8fd8f8094b663e242292a4e576776fe9a19b8e70c0c07f3cc94d9dd03a4b45c89dda3f521c09d28f9487d0f3e6aa6df8e25ead89173f6c51bea46af5c6344c117656548e4f80aa4d5d25b49905851f0ae442230eb8edd65a9253bdd894a74fa77c9e036f6dbb3a6d771fc96b27eb12ec8020227233ab222f0e952f8dc2ac45798d9a3c6410872c696a2f880de97bd63f56cb90db465048c9df9be6fe3904cd7404ec75b55061453e6a61cb731bef3d59a147ab8f952854914d9f21f7e3b843c3eaa0791d028408d6fb571bfdbb62af790a7ee3f4405a622059cdb20d4b986378bc2e5c82b21ba127097dbbd73f2057efebe7c567267f325d8b25d540f5388c3080bbd918540efca09ccd52074139767d0d1e9489f79dc3fadb7eb69e800d39bc5f8d3fab296ee02af8b7d7ee1e5155ed70e11b34fd14abf29727d568da8fd53d122c03049d3dc159a4a59866f1ac75630b569", + "00", + "f2afd2e61c36f91635ea91bba3286b682e59b68d95b98c186a9a1c44aa356a3bf051d3759bcc8f5dbf0815e050205558410792213d9cae993c23c1554a850f8b4cdcefdb7499ba37dbf3d29cfd22ab3792abc8a001eb02dc681715ffc3dcf25c47c03396d49d6b645e5265d4acfb5cdf71cc8585431a74523358bf29b9a8484b6dbddcb042be9a6e8e28fa46934f192792eabb1e236f7429a77b06f872d040f2086e4db309c027b15d616829508605088394b50bdb74bb5b74811b4b209141cd9a1602ebd24956903cfdaf7eb82f48372de01a2fd48309f054db1aa5fa6b308dea4995b5415b59df28b9fd94c356e955846898d97c161d8175a167dfbdeeff783ddeccb7be1ae74c5ff16e92fa63d375f23fedad6c12d3834a16e72b74c65cef3ed57e093e0bbfa45cc20361728e33f4adc0b68cdaadd2697f37a121fc7d3310c492be4cd0d2885872ef229a9c3887eef6048c18d43cdbb072d002ee2d0bd05c541e7ba742cc42c54e5cbe27d1c6026c99519a43430cd8ab7a613ceb88" + }, + { /* i=1 cDividendBits=3854 cDivisorBits=3854 */ + "1d6df8d3f8912fb1ac95661ef20d7987043c99bdf874349ca0eef809cb5a08883026adf2d65d9c35dca5dea5fb4ecebd291a8d0736b9dee00092cf859c24e81ba5a7361df1a25f6ea7351969b10c0a637a3a087d44b00e3f46508a8fe26316b80e25fdc07eec8a7edcfdf4565a0c794323a82453047900aedb1eedec8a75111e59eb82654c994df594d3644e3bc90f4be225fb2e537a48ed1c4e23b8b22be0438effaf4ed98f2e61de5e2201aca0831ec4081ee342ac80c36763dac28bde58f4cafbb3e20362e9563179d016d5ae9af9bc7722354f0e96b1ea991dfbb57cde18a6db65fb0b7b171f811e82efdbb3e91a14d61f057bf96499334ef6c3cd1a7ae7d368e8504cd1133c305b41a91fb6f304d0ae333d244d5a5274f39a1fa8d42eab40fe0dc6607c2b6f2cac64a9f68cfc96339d8f64d696a415bd4e7f1db9537f9897f0785bfd8ddd96730071911db9f04cb806d0b35626399602aa0e2bf759bcaf1d38b86967a966c5963f86e5c1017b147ae965f6abc155bfbe695d7dccdfd198fcfb4c8e195b6f3747722bb4e595205de736bcfcc5e7708dc5578a046d1392e5d8ded1aa7cf5dea145a066edefb092a2ee3b79f939b79d5b5e07f567c88b9d650cc4dc591751fbff37c842d6f9d36c11e1a32c27d50602d369babfe09736de1e284c", + "205dc8325f9b40380a3490b6716d948f2168bd54fa32b0e039ac2cc035576f96336a8710ea86f1a5d76ec0986e83b41b08230ef76fe0fa94c64156cb931362d747119db9dcfba5a0d330be1a8696572b3291157704cd92f5cc6a8f18296edf86ec5fd683b3d36c31dedb309e52f48e4bff5316bf67ac751a2da88689a72644bd21858ff8d253d797d0ad056c49b786d050c782d9ff4860a440dd9dce6ab11d4157cfd2c977fb8af1bc10332f1b0d528d2aea268902653ee516499a62b36b03aa98c4ec74a40b77ae283f8c47dcb1e880d046f8e80ccf9f108bb444d7ec0eed8ffab42141df5786ebbff47e046def60ee488ee88deecf082ec444a5a9025e9f6f1b6388ded44241a65930fecc91d7fc0f5217ffbe070df4d5f7c8669086c8958947cbec450a9ce10d6f7dd538e89edacdbcf8c969b0b8cbf2c72b1117af25ffdec091bbb1590b915af653aa9ee972eca9dba4b98c70640e692d4d2a926be4fae629444f6f5904877fa04f16a66b8946fb37cbe4b2c46bc3697874d84b98dffbd0e29113bbeaa7edd3f6b65ee756b8e22ad7823d3d889a75d2a7993ec99357332f30c760b1b666a1c2d23682516392dd07acd9107fa256fe15f1c050f77e8f56a2e70a47a616cf7e2f8add4b6ea93f0d1a22cb8b281d688db8ce624a6823de01fc7e71", + "00", + "1d6df8d3f8912fb1ac95661ef20d7987043c99bdf874349ca0eef809cb5a08883026adf2d65d9c35dca5dea5fb4ecebd291a8d0736b9dee00092cf859c24e81ba5a7361df1a25f6ea7351969b10c0a637a3a087d44b00e3f46508a8fe26316b80e25fdc07eec8a7edcfdf4565a0c794323a82453047900aedb1eedec8a75111e59eb82654c994df594d3644e3bc90f4be225fb2e537a48ed1c4e23b8b22be0438effaf4ed98f2e61de5e2201aca0831ec4081ee342ac80c36763dac28bde58f4cafbb3e20362e9563179d016d5ae9af9bc7722354f0e96b1ea991dfbb57cde18a6db65fb0b7b171f811e82efdbb3e91a14d61f057bf96499334ef6c3cd1a7ae7d368e8504cd1133c305b41a91fb6f304d0ae333d244d5a5274f39a1fa8d42eab40fe0dc6607c2b6f2cac64a9f68cfc96339d8f64d696a415bd4e7f1db9537f9897f0785bfd8ddd96730071911db9f04cb806d0b35626399602aa0e2bf759bcaf1d38b86967a966c5963f86e5c1017b147ae965f6abc155bfbe695d7dccdfd198fcfb4c8e195b6f3747722bb4e595205de736bcfcc5e7708dc5578a046d1392e5d8ded1aa7cf5dea145a066edefb092a2ee3b79f939b79d5b5e07f567c88b9d650cc4dc591751fbff37c842d6f9d36c11e1a32c27d50602d369babfe09736de1e284c" + }, + { /* i=2 cDividendBits=3835 cDivisorBits=3835 */ + "045cf39c3950d68a8eab61431546eb502cafead7712a9ec825237b9fddbe122bcbdbe564bdbac8bd94f7172c86f205fa58e70e709ea28d7c379e2aa0410fe32b440ea5aca8f268e94198f4dfb7048fbc16e3e53344295320ddbb20568d76845d17c61ed8bb41ef871044f2e95982a5477cfb37559c08e0aa88227a551a8204c446c6201c9546c24e982f78f0a17be28e0ff7bfcde4c008ddab398b653a9a1d2fd52d38b0a9ae6692bf95518b8d70e7facebb4cb3de4f35d8eb0884659614ef116477f48ec562e19efc2a99738af1efc9c48c3b448e40d9e7b12cd57e739525e37b7b0b41b844ad7e093415cf594c43b5d86d86d78ad3edb00edfbdb76f6bbf9770cf3af74a4f2698aea9f298698b4f740ead87544674c625b1ca77281a6344a3cd830314fbae3ad3873528a891f2cec5ab7b660168195a2acc445f2ab42c120a7b213aa630964864aa67e6ff5e0da37a56a98a8cb42d76c3e70268e18ad3905f7f6144d767983c7425b143211c092dcdf072ac45a49a8a2a5771c9885f85ac0ee81fe973a50627c535dd2a31acd39d7e563cc1025a075435bb80c7cb07f370b7c5f44f2b620213d7f7fd8c576c2bb21519c43a9a47ca5f0c330594dddf3875c94cbcbeefbe91f35270b16a5ad9cbad5941824a5e403bc5e45221360c59028cdd", + "01ad794af210831b94fca7603b7070106e9454aed8b6775aa4feacfceb4cb1a6ab4e9e8756e9fa7802523f1fb2c87495cb5298e078b98c18a04a5ff4f6b84f4b8a7b6d7367ccb786c745c65cb65476d0fbfd46539a286b9a3f26225b0eb2a191b4bf4734b05b55b67487c9424bcb7ce1e64b892624dbf0b4bb429247156b97aa06c16afa1a23e6692ba87b55d3bcc61b55edcd61c544759700f120e9330db3f8bdef1a289d6b893be8063f2e3abc97608b90bb51d63b90862b4dc7a5067f85b621c3c7c7dd529f11f1cf436d82742eeb1f10c9c7056e55befbfa62976e2e5817cef0636d3bf35209456a61b08ac5d40ce222e253b1c8f749c6da6cd63d69de81cb9853241e75472aa864a8d66191f0d4ebe649cbb88c32f3e2e5bd5540b0daf3313537faa963a9310f71ecae7219edfa6e1f8f80a35ef418379b904bc4fe3d76c5e8b0a3c1e1c6793c46c7626d225d2c069d1d93c508a78ac604b7fdc8055486c037624a1b494bb858454483ab4aaf0200367aafe9440f5dc1fd49ee0633784806c8136d986a786bbf6377d603772a8e7acc78104438cc705ef749cf82103f9a9cd349bf1404cf14bafa942f23e3d0a7e362a978672f426c5b7b1d2c783b382a16563464848f6d2a537701348918cb3c8c86b08b10f2bde5b68aeb97b28ddfa8", + "02", + "01020106552fd05364b212829e660b2f4f874179bfbdb012db2621a60724aede753ea8560fe6d3cd905298ed21611ccec241dcafad2f754af7096ab6539f44942f17cac5d958f9dbb30d68264a5ba21a1ee9588c0fd87bec5f6edba070114139ae47906f5a8b441a27356064c1ebab83b06425095250ff41119d55c6efaad57039434a2860fef57c40de8244fa025657641c250a5a371dafa9574992d47eb53e594f045f6ed7541aef88d32f17f7b939b799d61031d814cc946cf51b8915e3a520f064ff0abda37b188c1298860991f3866aa7b683642e69b938104f973875b3dd9a4467405e096b7e5f526e43c09b9c1427c2302741ff1c812ae40af4980293d99e94af0d6498435de0a0eba6676dca36e0f3bcd55c603debfefc7d99018ebd6b18931fa8e6e87168514f4badbef2d0cf3c4700215b71fa5d0d3e932a2f971cef4fd95eacd2bb7231da583a83c8e922496f4f652a1c27ae5af8f8e5fac8e751fef280433105a5037526ba19c573cfc9f005b6e5d2126b6ed37735ac531ebb7eda8fc298743136edb7163a85a5e5486160a3d0e1d195bb54fd92342c03d2f1828c4dbbad39f875ae820863f9246410c552fee7a9796bda337c0f5a84eec2057520105626b57318fdc9c367f1c79a16e02874e9481e564a18e50b5edcf3e6cd8d" + }, + { /* i=3 cDividendBits=2440 cDivisorBits=2440 */ + "22a599b2166236aba8fd9858fc719139c3ed397e27d60462dd49259e730badc16a9fa1bf5aaa1f44f11df5a22a056e3c19c474ff2249dc9103cf88989c6021e3d07bdc1528ffcbd344ba8a7d8a4857a1589139c0f55d1836e7b5adceadc37a5fe8a4f7005d8373583afb6d85746535f7a1820a72eaf89a3a48d3a4516997756fd379efe1f0d4d553df15d7a445a4d42e3a9704867f4976b21018027529523b9fffdfbc62a4cd4c4c5fbdbd5d0f70e8fda83667a28d935c6e5470c949186737ab02e62e192337eb53aac80534dce18d63b1febdf436ba744a4ec6a0d9ee635e3403b87f8a4a692004429a4a29009ed9362347bbacc572f9bb966b4156e1d98a255873a255c49be1427eccb5552713517782292365099bc32a20bc6c5cb69c7416cdc6f0b262964e8058c3e733838068aa08", + "b619c0b9bccc46b09bf752b19191e04e24a7847110024202d9fe865f1cd3e5daddbf5cffa9959f5a77480b582a55eb7396a8fc60d70135bcf06592df27f44a2aeca17ad8d4de0b54342a1c2b5bb038a98fc047a086853719e7dee801066f5e23b9c9e8c887f44c3df44aed495807f19f8b453467da34438eb0a52f23c32c87c0d67800cdac8d35ed6c504de7f40fa343c735af7d8e76c4169ce5d18cf18d938beb1f554e7a25b4f406ae841013b49e767866b5c0160ed1df114143b74596cdee3ea8096eba48b25394e7028408999a6085afa94da5a0cd1e4955cc12e5594be912a34b5ee38df48054286e1d566c0ed1be4d01267c8bd7de2c995fbaa17858129941531d80a6ec9b66b1ffbc5bc5d959111a9053aaf31a33a6c94a29b59063ee6a5bfb3fada330ecd02f55ffe376fd10c8", + "00", + "22a599b2166236aba8fd9858fc719139c3ed397e27d60462dd49259e730badc16a9fa1bf5aaa1f44f11df5a22a056e3c19c474ff2249dc9103cf88989c6021e3d07bdc1528ffcbd344ba8a7d8a4857a1589139c0f55d1836e7b5adceadc37a5fe8a4f7005d8373583afb6d85746535f7a1820a72eaf89a3a48d3a4516997756fd379efe1f0d4d553df15d7a445a4d42e3a9704867f4976b21018027529523b9fffdfbc62a4cd4c4c5fbdbd5d0f70e8fda83667a28d935c6e5470c949186737ab02e62e192337eb53aac80534dce18d63b1febdf436ba744a4ec6a0d9ee635e3403b87f8a4a692004429a4a29009ed9362347bbacc572f9bb966b4156e1d98a255873a255c49be1427eccb5552713517782292365099bc32a20bc6c5cb69c7416cdc6f0b262964e8058c3e733838068aa08" + }, + { /* i=4 cDividendBits=2765 cDivisorBits=2765 */ + "19a97aa1da1e0f4b9d17e6d6b50ca590e95fd62cf4f65535789542edc2ea01ad4653c4e4a9a87b3121079ca919b3721baea743d61ddafe8e91d2eb579ac65bcf2cc3d3a3ea1320005883288e025856ce216351720f840f3f3062bb904af4a4f543ef1bcf7bbe81a34719c43a81e775554d42f7e05e8584f732c595c7064a1340419b696807f18b09a24a43af475aa6822b000e4cf9e1dac6eb4fa8ffd358e9bf464c6b8abd877572a9242e2c7304f8ef66bd585bd1cd3b8ab923d229566168499258f3a85198749e44dab7b5d6677886f09f938bf1ec5f061d98c86a687fd570f49fe67b123bf1053f73515498ef38e874e2c0f5236aac1534a72d67dee1e1d38fdbd74e25dd9cc407840cba3de791b582453a0979de065976dea3aa30be45bea00b2272dd79cd5e22f75438771f6f6664e9a5528d17a23ae1eadc45f375400c84e738c7263b61a682d75ecd92dcf5c6de25fd4c63ee4908af8c", + "0bd83d5a6749985ed2595fb95db6999643b9dc083b5fa5831a13319f076c36f9d2ece874bdf8493e1f4442d6c090fe35f645edcea20194f5e7b5e460ae5924e32f9162a55347e539e832ded13029ecf64cea813875f8ec76ef1da9a2185a64b2aadb68c0ad3c7c2bcc209e47858d4500cc5a20ecd8432b6c885534ce097f322dc2ef78a8518cfc8fcae8cc41df6393f66251f431b0ffc488ead29d545485f249e9165e15bae2482d959ac0cbfde2089c53f0e14e16a067e59a8586465b8d3dc193f547d46a8337b8215667a227d47da649b3ebf42a8e3931103c647c9f35eeaf0f74624674c33f9e5a3b9ac5a3eae956e7f9142d07bb05cb0e3b9019136796e97ffe5bf71550162a0638c0949954f634c52a706e1ce8b77719dcf6aeba2156dd5191e05b131aabaa6b199dad4e8c0edaaf37a6fab5152385f47a3322d6bbd98bdf4657b080badd37a418fd8841e0bba607332d461c7fbf564f", + "022a", + "0785dc3698cb8e69e27daf903f7d31bacfa00324795907c227b98b9cd9d2b4a3df15d8068d2cb0b15de4045cf9abfae7b3ef34f34392326a634b1e617971fb87d3342a23d989f10805125d501d9c011eefd5cde0375f85ceec8a778241070a9e304b1e84d99cec7f5b2db3bae3be019307ec9fd28428fe53bd318125bcd0a939c12e4bc776707a752e79a8b9ed284efa3ab3d970d85b769f23e087546f0b6b53e203efb719c540036348f2ff99d24d191610c8d4d61ab3d8bedd951441c0a4a8282636a3187e09ccb5bb70ec35a09d152036ed8dd49741f07616f4b7f51eea1d2e09ce998d6958902e5464e434dbf262e1bb4bb0aff18bc7da47919ae3b53e40df644971be4ccd160d3bf8aa15b4e74f9762bb2f4e6951b8e675d411f21fc3ad8572edc62215df5731e4ff6b24574125bb35f80137e35afeda699c8ec2bb43d3b8ff032fa6feec19b94a24b44c9fb192913d52aa41d4f7e896" + }, + { /* i=5 cDividendBits=1224 cDivisorBits=1224 */ + "0b18131ffaab264495dc650f8100bbf67dea1a494b5800ad3adafa0a64f70e67a961501d913ff30fa89eae4499eecbc90c029061df76b1b8cb3d134df1c7701bfd1997035ed080951c05c62ad7087d55f9cb0f76efe607ef92416e78a01e9ef96f802e1f4eb9a027f39ed742176b2956b8a0971f6f26e1e1b74e34ee2206992ffe31f9ce2fe1c7dbdf768010d0dacefeb2a4faf8d9f7007b07", + "04ddededf534d22e8dc9b732ad951fc1bbdc3dcabe206a95022fb57ac66daf6a7bba472aa86edb2d6463166f0617af5f7acc5c02c9262a935ab3befc9d5525be54720f6db056fe7e88cbe3a2df1cf109a99b2a665f9213d139d3cb53c698433ba7623fac548cc328077d10f0f7a2bfd5f11be2e5f2299fa1825256ead9dbb2b24d45e0bad6b29e57338f7434e8b40c7cec4f7df90878dcc49f", + "02", + "015c3744104181e77a48f6aa25d67c7306319eb3cf172b83367b8f14d81baf92b1ecc1c840623cb4dfd881668dbf6d0a1669d85c4d2a5c9215d59554b71d249f54357827fe2283980a6dfee518ce9b42a694baaa30c1e04d1e99d7d112ee188220bbaec6a5a019d7e4a4b5602825a9aad668d1538ad3a29eb2a987186e4f33cb63a63858827c8b2d785797a6ff72b604da05ff06c90546f1c9" + }, + { /* i=6 cDividendBits=2652 cDivisorBits=2652 */ + "0ae7f86b20babb14b50c758f806a9654d577dee1431661a98276bc093ce02e5689460c8d5403693de13ab498a16fa8409aa5287c0047dcf8e17bce4b3604fb699369a63f5492a702640cdf64fb1a6447d49f8b02196f37e9a1a3efb2aa4d7bed8d138b09cb5f4925072041bae857c84a0701a47e260123f2a076be304e30f01c7bc2c4fe38b24f2564ce4c755a5747eaf34293c77e95c94137555dc630055be05515841f1eeb65086af0e2cf14e503287e2f3768a7b8605120c20dfbfe37d3e042d59c84e0288eb2a973812598286d05ff3c4ac5ada64b3e2a1cc8310c40278a683cf7f8e6dbeb9bc27347d3d47ee1f2e170d5bf80625197e9b986acfa20da23c1f0065d093bf402a96d761ab98aad42f9363e96e1e4aef7dd0aea47041950b1b0259aa5c636f8a914615f9be783d6f8ef491594eb1841d20b1d37eae8478438838e407e99ad1d925f943d1d", + "03f77e37acd23b5028a6951989c0dad148923d6511ac280302a279a6746774f00ebbee6ced78d6af8409112466f29dce93bc4c4741499dd623ba7b31b6361f31f293c5ec86910b40a23f2cd804ee1127ceaef218069140fc2ea30858d95d198a857b2db95cf1d6a7bf5c075acbe3dd6f7c9796d14b26dc124d2683151dfe391205faf3050dd22aff32a3506f6972e5e0287fc9267c0854ac56357706ac93039bf3b15235598e63c0b5b783a86806a982b76fb0d7aea1d6e4e09d85cda824e3a971ed1aa931195add031a2a77a64e015a13666bc997a9f52a8d054df5f86a57d83098de8be3f889045d97a6df84b7ced8b54d3bb5d012031380dfa673dfe98def2d6723485820b0027359804c3bea0028deaf3acf20b70b99df42e5dc58884a387abe250cc96eef82209f4e5b637fc5936e89f1c1ce5c6daa23dd6218ab44187cd4dfd8808c560c9ce30a0042", + "02", + "02f8fbfbc716447463bf4b5c6ce8e0b2445364171fbe11a37d31c8bc541144766bce2fb37911bbded928924fd38a6ca3732c8fed7db4a14c9a06d7e7c998bd05ae421a66477090811f8e85b4f13e41f83741a6d20c4cb5f1445ddf00f79348d8821d2f97117b9bd58868330550900d6b0dd276db8fb36bce0629b80612347df86fccdef41d0df926ff87ab9687717c2aa243017a86851fe88aea6fb8d6df54a86db2dfb46bce9d86ff81db7e44d7b0230f4fd5b94a74b2875f870260adee0c8d5efb67327df5d8f8a33f2c364b8c6a51d86f73327e5260e910122c451b6b77da070b3ae11eead9930743fa14cb0f444176d65e53e03e4b70e7fa39c53a4dbe456721bfcc58fa93fdc2ba758241b6acf13bd7c8f8a07697c41e851e8e5308bc40baa9508c335919a4d322c2e520844bd2123532114e5f667dc36273b991bf533ed9ce8f7d8101045899803c99" + }, + { /* i=7 cDividendBits=39 cDivisorBits=39 */ + "74043d87e9", + "0b065cb7f9", + "0a", + "05c49e582f" + }, + { /* i=8 cDividendBits=2338 cDivisorBits=2338 */ + "022fb7c1e7ac4adc8e306b085106b604757ce8ef6e8807cd49d6818ad8e617c86e2b5ad8521eb2ab151e216b50ae87123c154765fadc00a27e4d1b511f14d8e269b511593e8b3de09043a2d520255169bc4076cf122ec440ca09cf891b693e989dfcb4c07a9b869fe135476b7f9248d1ed68ba33fad904b17bceb32eb0a193c977f6b664ca03bdaac0140c6c2f1a69c22c559cd542128056af9707af4aa5e38b66e01ed019585985d9b04ffb1091e3b11c64bade637e33f3ce8cd3120bb8493b8b7f28e24e03dccac2931c08afea0490afa41fb983d08fd78b23b8d5bbd4ea5009e7b772205b4e4b5250c27c06b8493774f70b75dea2c7bf588da0f3b02b6cbd3b70fdec09687f3dcc9e39a381395e20461592438093704afd618df801e556fe92756939e5", + "011dd52798e1e870486e9626bc947eb555f34105e8f0489498d3fdc3ece61b41786d739cd50bcb98b0447a8f72b9cb93923a88ed191abd9cc862212edf3a5afdfdaaf9c3802c983d895237ad6283cdf992891d79cfb786040c0e26c47dd013eba43eac6bd26f4b6e2f9dc6b9ce565fbb1b8e3f4b59b12ad822a309154d8396c4f4f416ff9cb2cc5d97d6ba3be21b4b8be26d2846a16dace2742eb994777796cf7f4a00d77a39730369fac0eed88c1fd0a070dcb1909b9590ab405cbba7cf9681990a71e49928ebec7c1a1b3d1b81877336b13f161c7648d43cdaf706461cdb2cd7909b3c34b0ff8152190b3b26bcc23b1765500dd653936a24e64109a553355e2191246a1f0e09c797d82782d460c096bb81a1788c47f54993b53ae9a8dd738f0022b77102", + "01", + "0111e29a4eca626c45c1d4e19472374f1f89a7e98597bf38b10283c6ebfffc86f5bde73b7d12e71264d9a6dbddf4bb7ea9dabe78e1c14305b5eafa223fda7de46c0a1795be5ea5a306f16b27bda1837029b7595542773e3cbdfba8c49d992aacf9be0854a82c3b31b19780b1b13be916d1da7ae8a127d9d9592baa19631dfd0483029f652d50f14d283d52304cff1e3649e8748ea0a4d3743b684e1ad32e4cbbe7961df89f1ee6826fb58f0c3805c3e07bf3de2cd2e29e63234c765663e8b2b9f274b6fdb4daf0de467900cb94687d1d78f2e0a3675a47034e48c1cf75b80f2332571c35ebaa4eca0037b740dffb86fc5d91bb68084f345533a75fea0ad8375f19dfd981ea5a757634c61220acd89d898a93f0caf44b7b0169ac530e5907e36f9252b1c8e3" + }, + { /* i=9 cDividendBits=6 cDivisorBits=156 */ + "21", + "0dd21aeec08ed4adb2ebbc277ce8ea8c9be33b16", + "00", + "21" + }, + { /* i=10 cDividendBits=227 cDivisorBits=1316 */ + "05d90654ab464acb0ef4340fc2668fda1516132ff73434677a75a2e790", + "09b41f67ddbe903ec3f1ff78812b138f8ee1cd9e9f318cd9a9a9d7a17776e5155da462ad1a632a4e6c171d54b4566605c20674fc3ab433ac039f2660f01d0a78117632fcc48ba20dc5ada04b3ecb24c083f73f4898d3a8cde0e361fc30b199c795ce40f7fdb17b1eba5d50d85b8a1302cf4cf56e76637d8d797a59950e867593ea22ca678b5660727f8fdc8e894768c39b4be1cc8d20a89062f7fec65c676d123751beb015", + "00", + "05d90654ab464acb0ef4340fc2668fda1516132ff73434677a75a2e790" + }, + { /* i=11 cDividendBits=1560 cDivisorBits=977 */ + "85e73ad11e9a24cd2dde833ed38ad371fc25941de164497795ae23e2ea87bbf057de1d070bf300162ac011610c3458464a855422ff058b7057b09fbffe0f9fb7e2c182b51af202e13659d3f8f378fc919d3028695172d6c5e477189a9f1e0259e5967eab88f7c160c2059f8386c9ec300abe00718d4e1ac33309311b64fa17cb2d99c8376493f5efece9303cf7a10a3aa86b1635e29944bd34d07e16cbe825b1edf88f264b733d79b5422bfdd08b2a076b8c7db4f1c6f8d59cefd324eae4e0096faf7f", + "cbe9fffb63198049243d09f96934500a2d60f9d7c2b9e314db310d9542bb123d3ef8ac897201b2cb824f5a8abb50f2627bc6e7e941ab4556dc38df0adb21e23d172a7e80d223a2273abfd68c789cf4a01372dc495e68e802897bf1c6ef96ecbd333d0a340392e1880840563ecf222ad6b453e0598ea0ec97fb9e", + "a81b33a8e51c54e81b789d86f84941d577ef152545dd6ff453371c010167b87fcf0a088d19d5bc265a48a3ce9d166e8efd9d68dcf59a3b4826f1c1bd78b2cceed6ac07118623676fde", + "38f49791ffb09113168ab8b9ae3f1c9d940ec191446a09ab91d385f4c512ef4d83ba45e11b4f28b0cfa4e3649960188ebf945c0ee3cfbb9aaf0aa77e1056e714433dd887d565ef9d7d864ba0b274fda022d99cbbfcc567d3aa8cfae8273f4916bd7166c60e37c5d16cb6ce57d70aba39870b66bc437c20f7fa7b" + }, + { /* i=12 cDividendBits=2933 cDivisorBits=146 */ + "12225358405b48c28d27364cd3f827f58b42f60955bdd5b3e03b30d9253d40b1006653d59582e965ed9f2dbb31b7f8ea2a9f64d5d1681c625290d3298ad9d2e7e674aced7204a0bf9986d6571461cd9cf57ec097bf7819ade37109be3ce676040184e353a30d7ef42562076b3c9c6c0ade6fc05b8f369e0f3e65abc024538002faa20528b876d2e75ca181796bd5457e347071dab6db086d8300d92d869148454b68d10e5b14eac8a897128158c1d4974f8608aaeff3a42318f1d8df307c86acec6a5441194317a3a5ede07aaa0ea28445372e309160276e2b16f6a70929f77c3e626b8b09d9a2158dedde2d4b4ce692dfeafb09de3960dacf77bdfb95c7ea83a7793da6d2615bdacebf22bc335dd1897f8187263e5a69c445bf4edefb3b9bd284055acfd7f88277cdf7d1c89ffd6d291b0fdd9c58c3e8bba0a45f0f1efebf8174a555fa06801f64e0767169b1be76b7ea19e0ad7743672fd1fe8b7dde255dd373954e003ac12e505aa61b1e93baf3", + "01e1ffcbffd3f665ab42742e2d5566ecb6b158", + "09a1a336c0e28c78a3a574bdefaf68d417c68953b11588def7fc7a7c3c1a12bd611bc3a9883927f85c06348f33a21b0705e1aefa2f5299b3d89671143e88b37f0ac1771bdb6b5dc514ad593f3aa3588caf695008521c71a057c0e4d7610dc57d9ed21ded3d958c1120d5d210667ddd46ec84eb0cdba0cbb6c1293be15af29e6b80c6495d4f41fd1ec50da884681585188199c5360dc559355f6d043060304266d944b2429b14e366a496342e0cb6d63d831bf8bfb82226ae672deb2a93fb1091c4af91284b10983e53f6f7a57d093972ca839ee515f90103f513d7ff433d06606a1065a061c199f70b48f34ee826ebb1626e441a62f1f4b90d74e4e9653e1778546e11fbf4abcfa18e67009bdef469ed69911febeef26d41d690b66459d5c17375f7ca0123936fa58417de468e6b7c8c008a9e29bec165653d3da4ec75e73c1ef598cc15cf4cfb8a99a5fccbfe59b17dcec98ce6712f305bfa608b2437", + "5ff40e4f0e0a9a34cfc589005211479b410b" + }, + { /* i=13 cDividendBits=2954 cDivisorBits=82 */ + "0205012805d2463d3fe86ada13030cc11ace3904114abb0541070dbcd9856c4d813c586fe90284e1102b68d0798c96ecab81683498448424b18c0a04bc86819c8ec9bedd6e47e25a981f53cf4ab6372ed0081e3130879ea1b519e22b3ae031f206255c3422ce9ac6f035928e0b223c991007f6c8b33fb14eecc4af5a74c12b217b7bc5b8183d38ee8170474d675f9b1eed0468fad3e68552674df029ae5704250cc7c7d8165d13eeb3810aefde6d701aba9a9afcf30b481db81dcdf212a473fcdd8886ba3125d5886e936d46c7a713fba882a9452bed6d0a9ca5b5b8ddfae1019c102e2c32d896693a8c32f8a04ffa722a071ac118ed7e8f0a47d34538dbe9909f211ab80ddc11ac4aadc699fa73f7030e10b4330fae4ad9bfd53acb80a8ec90f2e373c7a2d24b7decb46713e35a77502b63c32c7d3fda115372e05e79cc142f624790d46c914d067b809d45d6d2aeefd5938e24943d1310c0f3fb9c3900a8f62d59d37ff09774232e18a601ff08193d3006", + "037ece729542285f69bae4", + "93e9a0e11948942d70163294aba1c0fc52b5a85ece265e4060d69043be171e197d76fa844389a2890c4ba9fe0ca84056beb31597cd71da20ff765223a10196e5a727e344688a6e2b4d7793ff4be20db366bf5722d981febda95930a99f78a22487410d7d10e037e143291c1f4bcf3f4b4e937e21dc31eb0b190f191c070c36c69160d7a186da33469abf8df439026a38e01382b1e3073084753261d747c5d030ca4ab8fc45ea6c4d3f02b7c3e64cd90c9bd5d0e10bf1da0756cdb607b2e461e31875a3f1f1fb5db11f5fd968d763cc7fe0d524850eb81b51407cb6c7082e5ff6aed4f439528e604683f1a5d0947646d2e677b0339dca5e3117817d0f8976c53ca068236161e6c5ff603354dd7cf4ed01f2104f55312e178a770ebd1be5afaeecfc45c0da8ca711f097a930c8da2e796308fb4c0e1e1554cca66195575b9f585528670a0858beb419c086010af83422aa2739ddd7d9dff951ba150cbc2e4933ef177c327445a408", + "7087d32f7feeb2c148e6" + }, + { /* i=14 cDividendBits=3320 cDivisorBits=980 */ + "5346500e0e1c20b1ee01e5cd0c716cfb914b8f5aa72b6f00d8a29042364e564b96a1d3bcd368aecb906d12330356a65b8ec0cf940d72c784f2a08a8e07acc8f91fb21a623a5ca06f55ccb31751e9de810c729bef25114b74961cb2fdfda80b4cd61b16938460130fa37b4f386d8c7a190445adc5a637223f5dfd217e5506f0e8f663006baae8f5c1619c0ab4f9b829a4ed8f1c4ed59ca564731dde196d8aaf0e202106fdd8f68daa5bd8319388364f781b42b7fbb97e4d93d47f4c2d9af3e8d8c71028e157ce5cc022c194fdfa784dda3a2b45eedca0de9dec29c54d5388b1a4632e03a4aea1017c2b8b51cb9400355d7b19a8ecb0b663168cb4b3f3f85f070f5be8e6204f3cf5dea43346cc342154c7fdbfdb676e0d5b4d8f72b68f20d2d42d868763456b6222ca3c5945b9b9dc808daf4224ccd6b313c645c566060a4d9e5f2f68d66bad317de0298ed4f4c0eed3db23f17d7e9a3515584357a7f5f65adafd9e82e16d2f13570cd3a77788ec567fa62f8bf8f1e588c8f7643a3d429b9406e01dc929d2b09d91fe80913c0e325c59acbbe6fb0203e2aa44fe1137268b57d5", + "0682d6b6eafda566f9b88ce95b4d3f696d35e3747b56ec2725918cfe676e2b26923b8a8c48c45a8da47bcbeee469b89cb68d929053ff87c8143bc7bd011f814772a0d8b2739d7b3ad322bb52565f15f1ce3c05587ecdcf9bdf99869e3875b09af61404e724220736da04df9168ca888a9570e1ae771cbb42f16ad5", + "0cca27a22f28bd59b2277c15cac512482657a800ac28a4eb898bebe1b8ac79c6c1a4fc86f768c5f08f61fb573fd41fd0551c086d8c3f59faa754c5255f6ec243be050dc906a3a57d91a7d7e5dbae45db0714889bb3a998c24d0a5ff1e7f23e798e17381138bdc7f87652bfb0017d551d7153ed35c911a9b74f15531e37145cdd5c2022cc1f710a63eca5fea73e9443f4e13667842db113ba7cb4dbe956bae2cb495fff00f1b66448e43035184b96c315614c6e8aa38389efee4eee4f83c8f051d9046ff6cbe19196a8a26890934ebdac49a2954172f798a40c7f5cec50ebeef4f6b0d961638cb47e2e190068d46804518c3af628534983b9053bfac5c84fb821b5596a290eb601f17801685f8486547f08962fe67c79d7cf310fcff3bed93f8083e4e4f3e5", + "02be93958390e3fb0eed4939dbcab6e1f7a069f0a7a7eb364d20c8ffceae407fcf09b519566c5bdc69c78703a11df717b879e000d7d737e3a16acc950f84769fc1032a895b18484cac70647c25fede481925fe4c2264b55d98099c6b2efe7f043f6cfe7f59ccfae739d98240e110834fd84d27f765d001427a984c" + }, + { /* i=15 cDividendBits=2867 cDivisorBits=1802 */ + "0720483eb0e9b5f6b557117006a44d4e449c9e961bf2236739b30ef5714d70d59c13c525070e50dab6e7ee63740e014882a80946e0d760531d827b4d44dccee73343a92d663cb14bd4b944090b3f24dae56f3fa4cc54ebde960ee79a51cdcf47e77b04ea1f4be363ec639298b7af96af8ac2a6fc93a286b65f13394af2c1a0436e702353c07d7aca3ec96eaa6794cef931bcc010d871d4c609a3ac6aea22b4de9c6368162647ff4922dfbf0ef85b9c60d41fa2b1f6425465b3888e0026366913e48081ffbf65ec2b7ad6723b5cfae3a315e96e31957554692c0fcd52235762bcab19770d18adba478dc1737dd3ff25374f8a9c58d3f57f4d2d3c7a2a15e01ac4cdf93e5cc325c60c93bea87b14ba160cbabe5941c407e0b6e2d6d6d45fb509cf3fb0016b87d25d52f261f5a2b00c2bee4c4c74cc0973dd24b6615ae8d369270065512e659bacfa6a31cd869fba7136d223f15a7fa8fd26064af20a6b2300d33fcf79a698e35297", + "726b0b2a029b21a078313ca5b4f5140509ff44314ca7175d74b2570c5df91e78caa0a40e5a08fe372cfb634db5cc9843a535643b40fe60f59124a565f11f49d0f7eadc16b77b65c75b6b093e0c556b9be1706a34ee3cc4a193df026dd5da0fabe19563da3d28928c64a93c12f9e5b1ea8a6b49427d5bafa372552fd7971dc343f0d693d7d15687f58fdd90b38ffd63a1fe409e9d5656cc0ea70d98b5ae84b16f8c1849089f38e8fcd4c785e777dbd5584a13b503da07c0875069b7e455041111c14436055cbe3b2d3672b92795de2d7837fd6f409fdf9230e8834a426e06f84cb4", + "0ff1a9a373a3de32f350d1765bab7d1e526a53be597e7164319d5ace28749d9b564af28e9414eb324a254b11280174c0a0e42518a31b7a65698b048b0c9f54c54bb6f72a456ef79add7addadb0653701772744ca442e31572a37b41d6d92d1cedb4c151548b2f84a46f7f95117ac2e526d6339e5dfd5cc0c559176fb5c16b83961b977c62bce", + "43d961ccc9f8c46a03267381100c7b1588957948e16e8129fe5e18225dc0014b0e1cd0bdcec8101cad536219692ba2973828bb8056914cb6fa5b6d9a8363dd8674f053e67f13f84d98d64556c1604d7d7a3fe3d2e875d27c20e4ce259517f18bfc70c06337b152e054692db279c3c06a270701ffd1764f57d0177aecc2238831ff9cc6ef2d230e2708d5d050cd0074deaf0e96b29cbcb796cfceb9bb9c1ee581ed85e77ef41a4d90513027148cb1892045452572e19ed6070300cae57587569c5b3257b9010ba263529628af96ffb64cbbe5226b4327b0895207fb182a48fb5dbf" + }, + { /* i=16 cDividendBits=2788 cDivisorBits=1396 */ + "0b8b27da4e39fab1d8bbaa0fa662688f88ead2ce77f151c38d8ae9f78db3c01c1cfc29f3e62c5a7d4298ab30675156192d6c9dab9e44be2fab542713c7f1273bd75dfca81b3b29753079c556acc97d930b3b7765c6271eecabfe69ea3b09a70bd36634275ac98c6ce5ccfb62e8739f19d20ade439fe8fa9d038062c838d1c7508edce019a990ce2ee4882f2be377ea36d62ea1ae6d834838b3a2496fa6c1f83e35f0fdee90a301a39ea506a3c5cd478fba4ceb17d09d91b1cf0c8906a7142f35c58d8d749a713316afbbd70e6fcf2a38111b3c2a93b05ba17c656a5764a10441db8f11e6dc7c53e13bb1f7fad37f9ab73e7d521ae6a8a2f099e765fdc5ea070ebb5b59c8996cdad22fcf3adaa9c601a7b94ab7df2d2372cf7ff58b2cc6166587172179294a5d481c52059cfa38c2ec3b118e66e1c322eb8df9e01986a4129f06a399e4c01d5694e68a35f16c6f328bafc7c27a0d084ed71d7db5c697bf", + "0e0ae32bc64bceccefaa8e44ac80d4f3b3daebf461d4b50c62346b23eb1a2fd92240c38049f1cc49dd5a04a6d7d17b45494de09c9852094df3748aae94e772c9838c113dc79f69b96a60bd8f2d2516e7c0dd9c865dbe31be7cf4f4b163273d741d8284a3c9af960374779538db19f515ca018eb032b746172f6f1a5d01c23099b9968fb3bfb237d3d11f77e1453a6b96db9480253913d57747902c669d10d0f80a2f47ad0870c82a14d3122eae5285", + "d2717a1104a6c0c88cade11646547696b7dbce8be89b9d98ab9f6ac1a5ff81767e5eb9a68e9b5c6fa1129f4bee86b9e4a06330265d931254790b08ef7e886d5029c149bae4c5aaa402abbc714309d8cf32387b61db00e4860258b4b6f66d08db801f4662bebc07631a171c06fe9316e211025ecf49a9beee8faac88d464c2d6b147c64542f5e4faba18295919138058891c6d8e706fc9a8fb7fa73ec9b497c9ecf9020bdbaeb46df1a533f6e6176", + "0bea127a6e65b83a452b7f0c370ad144d3b70d3d2803331a7101b362d49e83dc8443c7ba7eeefb101037e0a16dbe7fafc7d0a1d21053c20ad9e7d1b6b0377b1b8a6b5ff15778255dbc5506b39a7ab7c277a6c55740e5bec4127b31909cc668e52b46b30ff94f1e6a66e80fab7601728c1b97621c8cdffcb9b6ec9343947c1232796f240b05645c0fa1fdbc52f2f8a595edf1b6b49843e2050d8529fd426493b0e5e1566f8705cac335b716f4022971" + }, + { /* i=17 cDividendBits=4053 cDivisorBits=552 */ + "13e7948eeb54530b05210b7fc0e667e6456e019676c7223eca63ed41c36db13e1fbc1e38890b6b0e35d4eb8562ed59a9f91e7027ddc15242ec469d60779d19ed9522796764cef81cb0ec88c17e41a8ce50ff490f7f9c5becd8edcc5ca2c5c55ab25ad9f0bfa8b05e4a774956086e02805e3fddf20056d214b813930cee67059b4ec2015669caa8ddf11f1a08192f376a6b2a3090c1d3572232c829548eb4cfadda455e2c4ae246e8e5f64573babcbf06a92e900e73aaabd39de93e90e799c70b95cea0be301c7692a201f697289f736abcd8a4d23c58320e0dac0a3d5eff574e43f46279762fbae60b62f4e37b281d3c3987f6d6115841659e4023c658db8e9aaa746fa0aa584577ef1373fa8bcace6d834dfe397b8b5be3de633353b4acb7b28e62e301a3b219cd3ecfcd375eb680324244eddfd4238432ee77ea5ee5272473f4ab975e54672227fd6c369590919d5d4b3e68a896f58b12624e5f7edda5de1085dfff6ddcc0736d3568abe18e1eced16cc1a37f690c304c1e7d8a67d48f26ff934d12232068e55a4f9b5d79a6b731240f128d7ff4ecf636e73d324d5ddea1bedac3defdf67e13fecdb809874d9105969b72ed521c14011b3163d498585275e1cae35a186af2729260f83a8f5c6249fb602897f901acfe34a75769b52d7afe9b44ee15e09d4107a9f8c94f85cdb71b5f736cbf8d90db12cd6841e3", + "b34ff56234b1bd2dbd9d221505061e58cd23adb33c90d03de62c2737806e225f341f5bbf26610c1d613dd896d5bcb91e1967836f2327d1a5a83c1461a727094826bdc43f28", + "1c6ad7064fdef2e68f05b2bf87a5f30570a2ca87752b21bd2c7fe3bd41cf06e5b0183887c8f911acaaa81c42d731a92bf7ea6bead544e905b90efd43383e6cd52ea2201cd3989fa4646863a52005f9d1f572b049e41a2a1bbeb58b5c82d142c84fe3bc2a9ffa80e8a022a54a776c5366e5835cf29a4ba53a19a13d23f7af166987a6a89ddc51cb4af0d3c7421c68e7a338071eb181ec3aa89cc67d0aa3cb2f79d3c5a0bd96148479e22e810815e5898ac88e40caa9200d6926cd1db7052eda162667639844a07bafad383b604c12d1c16294f6c2f4c41cdb1a346102f62d3b74b1e5c9614b35140b7ea26efca25030dae7974c8673e273f67391df87c9f96d4623b082ea818aa6f47124df2791f71cd304b516d977914c1f917cb3bf05dcd3267ea0dcebd9ba84e97c0dd7afc5e1fc4344899e15fe5932b663d313bf62c5883528979d950368303b109dedbbe08289547f8b6f3ed1a27579e0c36420e6a41d1fa9f883dff4ee4229fbb22cd3eea8cf2d42e87653588e145e0aa00a874411689929975b8bd242bad03e758a8f2916acdff958bacad2966930a77e93027b7c17fd39bd1ace339a38c846f2a56d07e465cec3ea589d6b54", + "838a0d3fcab06e28926d5b6143af63ca7f32b21e6e621db98ef1769fc8522efb825dcdcc8f20dc15baffd86b5bd5c1494ef4fe180b95f2497fa5fd74abc0b1f36b0715d0c3" + }, + { /* i=18 cDividendBits=1470 cDivisorBits=734 */ + "22826fa7acffa5282ccac3701574423949b12e938ac8822b7697814bed83ff4be5382da2415ce33e8e0b0e31b08de640d754fe0b16b4bb063c6ee849615bb6f28b5f3b042ecafd73ccfe9c329804fc94cf82a905b7188f0cf1bc6ac056d0b0925cceaa02eadc9bc96c54107e62efb17fd0aacc9e0380a1128accc17ba501e3197d4181a91ca7a479bf3776e0bdc905c2b6c729dd79b475b6e8ada5499123d53e936f52fceeb372940c665b627d93da94281dfcf7bbd023ad", + "0c33e7fdc693cbfed733759134338ec6b7e5f2c1e965b377a5ba57a823a55d0e74061710b80e408fe332475c12aa723cb3297a52c80c268cd5035e7d6cdd6146d563d746bed4f715022ebc8e6151ebd9ace4e53674d9170d5b0f1556", + "02d3f86c9986fb55986bccce23690dab533e6f16d14fec8fd0a29ace7d62024627847b0272afcc68c993c2a6914df1fc5a5073937ede9db50e280405e4c9175aded890eda03249d8500ebb746a33d52fb2e991f81a7cd1bc0f870d413a", + "7802de0448f93299dd312b8ee64f636c97f4a6eef62411842367dfcfa89af1249bc2d0b8b8d8ac0cd7391cdb442ed7a673f2ee93c5b564587b0ba613840057f0cc74c4270e6aae9991e15f5825fcf11090655adc9e63c3d69c7831" + }, + { /* i=19 cDividendBits=1127 cDivisorBits=2785 */ + "533d00e99bf7b930d57363b8d95256db77695fbdcefc3231953ec51f62bd8cfd38cf89662f4f6f4b75fe353a4d9e5a3d6f6656a990cda1b61cd2a62fc92fb151817be9484eb275a92a467534bf64181f6a84ffe5fd94ddf89e5e171d006798c46f87ec18fbf086ed717debd240f7dc5499b1ad622058c5c92de1e2e762e1663d9f348162ca203f30d87e43aeb1", + "165aded0169d5f456cb697880601682d03b0b561ca6af5ba5ad11974fa6959046300e6d72ec19e8f82493b64b8a75c47309ba3cb52002cf7e7d5255eb0a7d6da5c6e67d52a5fa2b90e792713eb468085447f6f7cbb84db99fe8ffad92bec4b415aec23787908b2a093e28ef5876342a2ce29f0303fb097d3525d2615eb4cc410a0f0157b88d6402571c1ad28daede6cf7231a6a00160c8183e3a4f530a9940054d731b7d922a3c199fc3020c47ac3037320671c9c081a9672572a64e9d2769050f34ee2bb41652745b2ca1d6ee7a7089e49a26fda6fe983bb5b08496ae780243fce2ae4bdd6943bad0ba19809f99380afff9ae2c3defdbc81a8d9a4fe26babe9738fd986b7965abbf8397981b8ff8960e32f74ad2d4528c373324130087b1898dbdac105c16ad1927c211a61417ed4c4bc3396d22d0e981d23eac6d10093d304112026ddad1263de05b5448ab8d57f7800bd70d126d508afdc8446e3", + "00", + "533d00e99bf7b930d57363b8d95256db77695fbdcefc3231953ec51f62bd8cfd38cf89662f4f6f4b75fe353a4d9e5a3d6f6656a990cda1b61cd2a62fc92fb151817be9484eb275a92a467534bf64181f6a84ffe5fd94ddf89e5e171d006798c46f87ec18fbf086ed717debd240f7dc5499b1ad622058c5c92de1e2e762e1663d9f348162ca203f30d87e43aeb1" + }, + { /* i=20 cDividendBits=3670 cDivisorBits=2180 */ + "21060fb46fb09c8821d25ebaf07687167af34c52bb270f330443cdc47a041016043a1b7ed14b1ce3bf75cbe67376c7ee4b02bf469171f9145af49b7fc3953798c78a2df42c5c8cad8907d7aea1f43c5fa5524a6c112223c858f506c443c6ccc14dfa52d414a8003998c3f33129b347bfa60befe323a8a95ab93453d5313d29006bcf1eb45ea56f3edd546f9899504395f771bedd8f869455be5bdce4e96585785488e54ddcea3e9530ae7666c749905b577d13a71cbade9eadfe5c34b9d5c421881b0f8d19d71cb3b4d9c071e00ff8e9dad436c1021ce95bc62d133e0687f026f722f31083363ac90e35b34c4a185b8c1457e57fb1c1d42a942e8c27e3d149ba39c84def6f9667a4b7062703e4a27452d68ebfc9ec4e36d9c527315ceb7a617275d283b14636ede2d3eb11aa057b7e96b36b91d80983689cd49edd7709e30bb56e456460a8d1172fe5d6ee74039e7591efb5930d2f1a23aa29484552df3bb675d30786bfca3e300a6a3de1647a2ad2e80be991d85bce272ce8eef2dbe1865bee724ea1f3af0c40cbf155a55b7ad2f3eab5f726e1a84c651b634a85d8f3d8790b836890bcbb0c75378a247f3feba43e48be5252ba85c2048542ba19c27422727e559bd063b09417185abe28", + "095037f6073788767ca19e66fa2fae27be5ab593f8b316c2c30d892d3e5d67318bb9925409650ac60dac79495e7b7b77da507d0149fd67dd8b4aac05bf32fdc0463320d392c2fc43c14f91d97c37ecee594105ebb3762dd25d5a653c7b29758cf6faf523cd26213b552c408d800cf71e6726b3017a7f56dd0aeffc77f98e04fac9d6499742050726b6849c9c619666c3f2c8f9ddce6ee1e6461bcca9946679738d2b9b2097f26769a24faf154dfe3e5e4b8c687028e9689ee170201f553a33057e028132b9b286fbddd6b680503efce7d21d4506ff5b030d50d645e9d67f47497e7f458aac1e3f540d795a6f534163e5057ca2cb6690c25557e5e45e1b2a20c667ded944368ee41bd79e857dc4f7a6750d", + "038bbc456f46dd397de69835e1567884563f2936c944d4b31359f4190946b24794bceb731fdc416c72e5a7bca929ada73b2f25809dd0274284976de8f2ae0367eb071192e568be3e38575b8682284ec62ad8df07dc56b390ebba4363beab08f020766a360be2d9da9ef33852ef9f0feedc4e1e7e2c5ab47055eb1413408b99dbcc8f6be88d735df66775dc36f63129163f13ee1a65340192a16d71a6ee57dbff27cef42457d63d0fd6c7f8d360100ecea65efeba1c84529f920a3c", + "04a54584d06d129162320daa54d9de915d2b08314c2cb8dcef710d1a8778511187ee68392d7afdec0c28a97026e44383c153ca718193daaa8174ca79bed3b8762ddaee9a55bc16207b44acd5ee853bd6da842beaa16156208625264124c6fb007e95ee9bd14e9e88c48b5b0a37f3b8b62be2130a2a3f3dafb3edf3365221201bd2993d45cd7fa9d7eee942aaf2635536653e34fb16d32f9989afd446ee0e957c350246b630d6b671967f36a828f3ea29b164464e497baa3098d39a9220a868d3f1215cd438683a72d605c0978de8d29722cbedd740431e69490b3c5240805801b6801e529f69dd481ec9c50cb157ce03f0f3f9abc178952a62cbb509d1a97306cb40e590b59fb48ee78e3f9674b85acd1c" + }, + { /* i=21 cDividendBits=2638 cDivisorBits=3736 */ + "34385b8680a17cd1cf52282836eb0c3337bc0a7974193f3d3b541d0180a1fa2c6277fb25764b281c1bbe629c88a27352a1a22abb861894eb52bcda7ba033f035a29c32080de0994ff49400afafeb9cea7e5c20ff8d4c280b61633d034e280336ac1ea150423ddbe70600448ea24791e8c6ce5bcc7c3ff408dda644fafbb680c393807eaf85f84462bfcddc7bdc737a0f54de900888bc425a8d1311810edea17337461385beda7d70f2dc772251493285c8f3dc4d438773cb8fe7d44205154b994ea05cd784b27ff665177a673aa15a07c14fae74f5d48892359534253c544dcb7b87fb9fae9f0f1d4758fbe74889002be0f008a005792cc61daf5a97c37dfbb8f070286a43f5d9ae48f4a9db1fbbeef7d6f7b187ba7925cada8ebf55dcbaa63d6803c9dfbbad42bb39677bd2bb720e0ba1a5c44d53fe1485f8bc09639aa10a8ae4089a22a21d52636ccd", + "12d72742c199838ccae4f1e0a602702918008de8e1586a0e13dfb13049360c040bfcee34bc0ad083ea4e194741a2b5088aee92478bf48a3fe1b6ad525cd47319c9d3a11d365ebdc1a38a712ebdf21edfbefb542781fd0b925a6dd92bbb2c47cb7fc907c866fa7514d5ab2894dfacda192e96e520fcb2ffcc0c7cbc7f358ad7f3d95b939dd718c6b65151a105ef1d2b423f7fef07882d8b42565723e63f3762cd125dcf347a92793ad29af832dca5b93ddc63b2373952631a8f1ebb51b12a949ca64eb36d425a12fc4c2c4fa85fb78d75af93226165b6dcb14f73a6917bbf4d796aa562ccb4d450aa8dbe456106c9177516bb1a628f6c21b5562554f8c3f9a0712afa21b5c744e7d43cd9c5a37b798fd4891aec5ed95d496ce2727d8548f361e499b9441847638c5e36a6a90b18fd0c33994afc134ec18cc3f4d52f969f868ef8e8b39c38a62cd56559489a63ee1de1828ac86331c5b08c8ca0037580be9c2b77cd382554a443f4779160608d09aa2477d7692dbf177ed6507bab3e2f89679c6ffff1c287abe52f6b3f5e7fd1f480930e42ab0d6d823c262c24605cd1b777a558b31a540202ef5fe2daaa4b6e3f18ae8633658f8c0f6006317314ed238fda847a33b9940e4c34892572711bc9de75c69217810a", + "00", + "34385b8680a17cd1cf52282836eb0c3337bc0a7974193f3d3b541d0180a1fa2c6277fb25764b281c1bbe629c88a27352a1a22abb861894eb52bcda7ba033f035a29c32080de0994ff49400afafeb9cea7e5c20ff8d4c280b61633d034e280336ac1ea150423ddbe70600448ea24791e8c6ce5bcc7c3ff408dda644fafbb680c393807eaf85f84462bfcddc7bdc737a0f54de900888bc425a8d1311810edea17337461385beda7d70f2dc772251493285c8f3dc4d438773cb8fe7d44205154b994ea05cd784b27ff665177a673aa15a07c14fae74f5d48892359534253c544dcb7b87fb9fae9f0f1d4758fbe74889002be0f008a005792cc61daf5a97c37dfbb8f070286a43f5d9ae48f4a9db1fbbeef7d6f7b187ba7925cada8ebf55dcbaa63d6803c9dfbbad42bb39677bd2bb720e0ba1a5c44d53fe1485f8bc09639aa10a8ae4089a22a21d52636ccd" + }, + { /* i=22 cDividendBits=854 cDivisorBits=991 */ + "2b6910ec0ea7aba3909adf22176b8621800a882e83630c18ea5d94274ad2299641652e16ccb679439dbfb107be4edc5f297d3557020f1910981c3897267b90d911a2384bc3c365ad1b9daff5577b430d0468c2ffb24fafe67e6f8ac0f346407c119c8687e57cd6a3dc4a88", + "091fc6ed630123862c2d21d5980a77b962da3ad99ba2ad161f9473408ce26e41042d1f1e9bc3eb5f1eda4e6ab3c6cac076d77d017dbf26c92d4b9973c368cf592547f9eed0754a051b64bfccb006552a8723969a7eec940f055abf0970d056c7f0e091b018863f778e034ef0c5639d9673635d98699a3e66b71c7600", + "00", + "2b6910ec0ea7aba3909adf22176b8621800a882e83630c18ea5d94274ad2299641652e16ccb679439dbfb107be4edc5f297d3557020f1910981c3897267b90d911a2384bc3c365ad1b9daff5577b430d0468c2ffb24fafe67e6f8ac0f346407c119c8687e57cd6a3dc4a88" + }, + { /* i=23 cDividendBits=297 cDivisorBits=91 */ + "0180be56f4dd6dd3e557de00d9cd70e138174167d3fb04285db63387ded893ff99e88c9b367e", + "0345ab2d6c4f136be2fce8d8", + "7594dd555db51061cf5864f4c8d303e1a56ea0100588ef172ff8", + "01d332d396d08ddda571fd3e" + }, + { /* i=24 cDividendBits=962 cDivisorBits=554 */ + "6349590426f0897db0aabcec78d0d17aa49d9da116b00cddcbeab610632b03a42414bfe3a21426843ad2cf5589a66a8ee0e45c72f627bb757bd3e2ff65574189d36c30a671f63108da753284cd5a8f2b40f75cc22caa4691b61d5f9b52da1c8653cbe1dd1091f946b27c75a31c3c124f05a68524fcd15cfc", + "03a3a7ea5114414b4fbfa4f6a6d0c41a6ff01fea657ea9273faf2209851efc8e39e35a1fa51b079bbb2aee0d9b8ba89b278eb67a01bb44cf4edfa2a18489da017ac5eef59649", + "1b482ae302616d80bcd1c41c4ed3fc28eadade34926179a3dd413d268207b6b12ea0d5b4a17fc881714e7f5bc41d719437feb1", + "02d8107ca20721250372a4ca9b65c507230f0edc02ee06bc462709e7ca8634a19d29fe5a249f1dab21871e3fbbb94b3ee20f61d9cb1abd3a17d7fd834d4bb4d252549c390683" + }, + { /* i=25 cDividendBits=3305 cDivisorBits=2795 */ + "01f8b1b2e522b5f0d387d84f1d9ec7c83af5c2780f427bcf860213106cae0b5a312c3a8a01530e31bfa031a26116baef6e3aa48528d557fbbd27ecc897c6a3630282d5dd66998fd54af92f6ec656f6dbeee89d07fe918aabd5269bf2dffd2153ee5150b48a93573c979138bb774ce3b0f4929cb3efe7798bbbbb32c2daa63fab317986308df4e1711c7b0857fbc6402d91e63ac5edc3e45a5a437042cc8e720fd40a432fe24ac96672c99c8438c50493aa91bdded933954caaf8d43fa94330262e21cfbef5b796e0e761336bf549a78d928e75fde9da464289e355e017210d80066292daa5f46ac2f3e874c8d6cb091f813d9b7ac115c0c9bf71c3b12c04474b0c27a58b1835181e930be13c9b0d48c15e1be02a877c3878abb56c577b2b383d85223b4ecc74610f96ac5c14b554ff721738f36036cc8480d1476d621dc2618cc2a04906eb9b7aa658422eb1a30a69a8d04b777f1480c75f2f887fb8f031a78a61ef130daacfb1f7127edd39521ce6127d3a39e94f8eb24ada246037097b13e932fcface9cd98220d0f028637014a9f10e874380a982a22ac14521ff6274", + "01ff1aa92bac0cc721efd51bb2c570bfae63989d618dde1985098dbc992fc5fbb82ba57781aba25181099fe90dfd37cfd6b87246be5750e7fc4689ba62d1a50b191df8e55a067ea509dba77231de20c33caddff748fbb60b5ae6530307232c6e0aa523d9a660a2295c9e9c4f3b71f4515ce2c08d67d7466c189f67d96eb6d94ccdcc3a481c4a43ac08e147d71d292bcbf368ba83a93bcc2f1c54c746482b57acb36d7ed013ed1f35a0ae890225572b40264da41775f74a705c393f6974c4989e7ce326e4f223be46831a5e41b8237128805e86cf2bc7cc989c3a58b974ac4a15638dfdb6d7a6bb1da4df6502654ece239af30770733247ce32f3d8eca77f33a98c11f0e4ee9d5430d085ccacbc12a458cba11ae51c584900f60da839ce3d76a767c3f4040579b88ec1056987598dedffa23e1e517d966c0dfecef66dd13f2b9fdcf48ed29aba33bc9756cfee42311d93ebc48b2bb298ab4a4058371a92a3", + "fcca14b39a490fb721d7bd7ac5d5fc58bd270a1ce194b640b4809c6c18345dc971caa99d0717aedf13190d83837b3f2045ae17da22041580da51df174b3bcc41", + "01d3c8e6f9987e0fac5690c9c0a01e5a290b21fb9b8e3ddc032143ee6d0bb7c59c787f5b03f672e195ab1dee1d0bb86f9708396a12063876e59bc9e8a949b5c4fad83ef36b64d2bede72f24d8227e743b348b0e9e1836e8dec5d6265aa37e8900d88aacdf46ce222135b59abd71563fa6a002afaad37ab777464aa23f47aa8efcafb6386491ffc7da80542b02cfed54e5e92daca48579f6074e5650e3b6b8f15ad219d31aece7761f297ae159f3c00c229cf32d313e7c5204f0470bc7cf730abeb28bc8c7875e652e3f6132d6b105943684701a5c9044adb0368c486dac25a2b64ccc95f7845f4048444357dceae8b5b1cfb121188b4a84aaf0f9c9375c2789f58020cdbce92529ef780ec16e732697ab1d4ec87787bce76e544fb53abb231e0f314560788290056f35f55fd9b65ec9e0058a7db8587058d94b9635ace3e46b66c9d244f5d4c6338120bcd9d90f3e812ebcaff4d0c94ffde793b6ad54311" + }, + { /* i=26 cDividendBits=1112 cDivisorBits=177 */ + "5b589a1356340d94a58e584a1c2635742f020f76edc377686366074ccc4d18be660c2a46cbb7a93a65b061e5aa35bfa54dc097979ceee82bf2e9ca49bc8177d3cce34f5c908f9b93a7a5fa4da231dd1328dab2eb56bcf1c3320b3e6f262f350ee68d1c8e9b7096334a4aa2ac17b5966d3a01760672a13e61c14536eaac2dcbf84b0ac3111f1f37943c7d61", + "01b2ba2efb7b4fa0c7e41993fbff2f0c714932715cfc19", + "35ca9b21d7febc8e5ac49eab30fc7ea39bda49705bc60d3cbff756b6cd6ce07f5ccf95244822eb8442f07c7ffd103f7cd4692e14510e1d301df6cd951707d130888d0987ec402ea10a5fb3f3c492a8d0e27d9eab384b879b8e1bd1abd6fb787a0fbcc24fb74fa1f75332a8f95892f9e8175bb2eefc", + "019c148aaf977154357ab5620da003c20cfda85df316c5" + }, + { /* i=27 cDividendBits=2625 cDivisorBits=2109 */ + "01356dd8455927ae1e09794d12a67532b12430c7a09c8f303f6f849e0742f65fee2d09e36b4befc494d48ec18c8e277bd9e0ae67d8c25e1a41ef9eb9836294feba956d9af4db87941fc87518d4512e6311a52834ceda0521b9b9d9c6ec7ffedea4512dd218c5328139857d09900cfb1daacc5371d7ca0b2f3277011bce4fe2e14c89b15b68fe23b00bf155614a3a68dc5ee315e96589db8cab36472d010023b94edb1458843c60a8e666b942ed0e602b0a3c18055745ff20c39670375c77375fa768ebc82acecb8553bb9f1c03bf88336757b65ba4c5a2fc284b776035f86f119c4c1de14172024bbb8ea910790ae173d4de5aeebbcffa8c0fe725bf694d99df3cc25966cb03aa9ba553473970448e81755af187520dd22f1882e866137f5ca8b80ed749363866b3a4584bacec47aa1b0458121a1c25116c953a87e5d613789af16625bdc2260ef862", + "1fd3608209af86220981936f3c61ca186c62cc5bd82983e3f0f166fb8fb535b7907304ab9c84124f751a981dd3b3a474d0ae7834dd19059f8c80276c6373463b950ae421403d7b3d817ef4f7d91ba7cf5ab13003d44d65dd9ced1ca611674ffd6db69710c4dabf7f0d91aff6bf645845c9f23a6dacd9a1d11a631753fbb6386d39f134cd71a4524646f68c580bc0d3c459469e76255c5ffc424d0b3526f954473d158db74c45c06b3a04aa5d2ddcd175dac4be41d4a1c7bfe507953ea2af4f2a6ca7225123a723a237ce086869393c8c7cede210ba272b3585ac9862a71772304b97042ba847e8422aad5e732cb8375b54d48acf3d1380af84186190fde13d24b68bb3da818d86eb", + "09b8fd94481a43ef4dcfdd06bd3dfe771204ffd25ae6bc48d0321ac1a666e21e54119637114140575dcbea622b2c278220d192b1bdb204f874bbc21a3f0fdaca07", + "0aea4ff3f9d1434bcfa1f3d77c5054e41882625ca5d3274916ad9ba6948672955ce429c346faff32fca5c90595038414d9eb923a4596b4521512ee2c72702d32f33792021e9658def22b97733376fdda5556c017bb153d5a2a54455ddca95da166850faad1d462385eeba3e545c9b4b2bcb27e3519b8b0b0c5239ace40bdee67fafc97c72a4c896589e8ee97bb7cb45c82327f167a81fe6b27727d4d0da08b57841dda15455a80a08eca562e89a809acb1d06e43d07c93ee61dfae8bfc341b88e9b929ea6311685ffe0acdeaa49c5995396fac409c4e67e87df5a4cee0502e0a0f208bfc23bf2989820d949c0daa4b4d13d728eb54e1166932e7944ddabc872d0e21b94d459cd9f5" + }, + { /* i=28 cDividendBits=2599 cDivisorBits=1093 */ + "63cee33b8e15ebf144d5c4e046d0e783476545dd801771c546796e13fae8603c6a311e6018619989873a9a46b17ea04759fb33d4a3c8e5f5eddc6c4a5a83f6c00b0939f142332328c4a012048780bca12584ad7dce3d1856a25281137ddd7482dd03c7834574a56333a00a13d060d5c9b2ba626535d693403b316516d4b9f6e5dac006842c3ce180479adf5580521fe3ec3233c23550049034b4c93dbf5ee6c0e630f7194ee4fe247c9923048411ae52370470c8094a91cbb383675d81712bbeacc3bb1b87767ad874fb2b31a6a0a1a35d8c82982acd80ee6e8338ddee16874f863933402628f936c774ed11862f671870beb9ca489ad9d1754126514d023fb4340bb5d92aa278e9b77b12918c2164a6dfdec886990c7e912c95b35ef84e03596d639ce51532025fd38435d12a5f7ab7b248fd082e14e24d5b028df09947e06ddde3b77fa7", + "0c1e0ba059fed73386528dd884a2ef46316428a0396e6067aa0031e6b3f243e90a4c8cd28d2dbd27303fb3607cedd495dd078b309e786513b3b187e835cebc2b799c6817947fdef2dee5a17c835e92e7d687d267edcc5f2ae8856b27275921b1c81f1595e5d9d70e23e4b83077b84fa577e8e3351b6c5d24c62fb9a51fcc287d48261a5352d041cf63", + "083c9e1422975743e6a2ac3cac1c5552a192a44b2f399d8821e68708b6c7445f7515728789aedfe3d1e0d88534435f41549d2fdab62efdcabaae7991f8a28b119eda7f58fbb082e05c1af49425b79d343d24d272e8edefa2430172d555a5984b6175ff2bd34cd392f3ade936c194e77e5163411ffc16c47d46b60129b15221a1f21e9e09c895586c306e740bc250c4e2b522a0255fc143d93cb4fa8bbaf930290bcc11ada74ccde39575cb359961c8ccef4beab8d6794d71cc9ea872d5", + "03d10292dc4f15a6ef966bfb82f7908333da9260368954385740975b92fa999d9bc67762790dacc6cd58bf22501d876e543b35a40f2bff6aca84dcdc5ffff84f9288176302b18dae0c495afe2249f212a96301e3a3eed671758e0f26391ac4463defb067aabf6aa71d2f2ad1b200929e869dca9dd44a5b21d5c517e13a388c1a67e339fa261ba3dc48" + }, + { /* i=29 cDividendBits=3220 cDivisorBits=1555 */ + "0bc70b0b1f7ab633a649ab1aca42d2f27d772b5b70528e261074cd55d98b702bd4ee37d9b59015300b923b3d9d25177137febf886e1a092a317cbb4572e6f05f02363564828fec34cc8d704d5847c417a96862df8b31b29e4eb522387ee2331fc2b8fff6f8ddd2aaffd1e0f5f7adfe0f992802884df3f4a70de00800f0ed28afc9b9dbe1f08949918c6b20adcf7e8b63ba0135b0bd4e52d40f2496279b6f329533aeb59b659254037b3c89b51914dfb8cbb07619b856ee65a64ffa62d175ed48479472b494420e316a48b631c5ef32f6a4f3bb9a3da15f552e7246070a7834ec02bc7904ad49498b845802ed284e7bb0bc1a0886e88d837d7a176949e427ced01cf7785635fe8b375b6b89741e6ba9f187524ff4f32b130d8d654fe6660c366f8fd5b4c3da833a7290abe4c54194fb3b04e367b22c3058247856be1e90b1229337ea977c44c8772a4e76e52bc2b6da14d59dfce40f31db509db3dfbe0ddd3da5d880a9f0e2e322c7253bc7e9c3cdcc89c292156fc65366cb08ef7d2cc7b127eadf38b8f360a7267ffb18efc8db865a7ced8bb1", + "03031ec3abae3a1488e694d3876c31c411e748730052cc0dbda88055215698b6cf34a5769577c6dfc8573a21c61cc59ef253ae10da1520a3ad6306cb23216f854c47f2c53d31a07885616fff351a23bb9bf0fa7eaede3e4ba1e8193bfc7573a47730a8d0b6543553e04f9ea9efb560e7ddf360633a75a24d5c864509310bf161dae92a02002cb5579aa1d21add449a3d4e202787f8f094921fa5357ed425db2e1a03ebd734cd40140bd3134e0fdd07f74a8fe2a2069c15a261aa1df9cd424a3d3721ed", + "03e8f2a33cd9cc4bafe512a48a6aba4009d20e3e3b7acc8b49a81897421cad46eeb0ba612123748c23902719bfcfb1f932bb16fa1a79b43db07a501dc7378917d43a672cfdd1a770dac3b5e610bd139e052ee5743188e0eaf4217a894c9b7412f685a17d62ef3d62c5de1b9a3f153d58d05a4f31ecc49c21d1e370096acefe5eb34d846ac8d61539fc37f46315a24c9f20e8caf70e8c085587fddafef7d0d817afe8d4644cf18d9fc847d080ffe60654e810bf351deaacdd32dfdd2389260e9041b91aa6da5ff26f22435288e6a8a1229b", + "b9ee8c7e331d1505e2b30aa73ff53710e15a8bf0493742a25fb4674275a7f105997ff5e689236e7a07f84590d3e2edae6a173436eefae538a5a461d69318c4c90291b2f77b6d01d446f440b87115c88169698a9fbfba51394b6c9413e7a74588128d86c76cb30afb14162d8f8126574681891d0173c286a7eb5151334a584cd3ae551da77e3994c2079172e163ae950a0275d4d4f6ffe84240fe437762483776c7d1e190edc0a5aa9d834e7f835ab01afdc18475abc25bf802c8af7176683bfd8732" + }, + { /* i=30 cDividendBits=3372 cDivisorBits=2202 */ + "03c31093499d764c14b076ffa699616bc12e8f97fb65afba6893d857df91599593f0e55a51c7d9d9daa537282a5f34c1d17e7b6498e2055182cd01c66a3da3f73bfbe349a27d2dbd19f5349d9e5fe24998243e6fd911d29ad8fb4d5131ebcd07374b0a64e9b7f5e70f9d1da54045f792150b2bcf2d3415d92db38e608e897051f1b5363b7e36a35228079fb37b394676176273c769dbe215d124f0678d4490318b8a8fab650b59b1aa9ad7d6f8b4c5d2aca02c402ce10514e1e774d297351aa149de6b9a6268f9dab0916cf6ad68e415bc8bdb09937118b69e4a130aa0a258df38da1cb5b50833c8d89ab9f3f9f61752e98d90b49b363198b90174c574439068ebc28d188c09803570d10e5df563e4251a338e1b52e2ee32504e8d5b20ba3269f972251658d9bb94a555351d7ccfcfb80e886729f844f6ae4210fbd9c528acaa7005e033c7ce15849cc433828597090c6c619c970be9fa291adf6faa71e30e750f5ffd9731d6c355cf24f7b0ac110d168adcdea8e4b9cc106be09da7843fec5303d393fad82ed2844f1816feb27ec4a6c7ee1dc8e96372c851920722ad64e3101637de48a103", + "01033ebafaab36dafe149b1f8e659e055a736fa08b941d564b5f4362b01c237b415c238edb3af83f7f0ad4049070bb0e5d7ddeba336b8ece12d3f0df9616cc22f5ded181d255364df6b1e806c77c5b49cdceb2737cff0008e0c48802b5a754ef0dc5f1250b77db0aaa622c78194248cba7fac8b3ca9aef96465ce2fb71ae293382cdf65249737f50f9bd591edff54ab957068b54dd14379707fb1f65296b1f5a6c7601b1314660f059f4dfef862821fbe05aaa9ee69c8757712d0d831f38be8409972c50d8b1092d8c9e03d84b32e6d55897880463cf8bc7e12fc6cf2d9af657aba9e2fa5d0463254208b634478302dff4bee9c56b47518b1fc8d664e23ab2e558833569be69d3650d1339f399545f9f032ec096", + "03b702828b565d1c1ee6a2469cc2a55c668536c75f989ba9638e0e5b931547f73c3ca6b14aa132a86af697de279f91ed355c828648fecdf8b9deb3161e1e0414a3c18b571b0a634a124e12eabc85e47d3c707d462257996b8f254a77cadedbfac30bb54d95d063135d0f907af346ad42bf879c0262734690a4026b222cc5527ffe40173822ed109e98d9b9399c8bc8c6d0dabe", + "d73be2bd82a9dba68e35e3622f68a8399c2506de96bf185a2988cd94ae409a8541e6268725549b3dbe4fa7ce11547fc4d622b7dc6728951bbe2b41378fc8d87e920b5728e866d2ed12171ca8b7fe521183737715cba0b3e34cd085a6f7530172c7527c0963c62b2f813cd9ceb90a1518aaf616218e32fe5f2fd1e0ae2003ab8a397ad20f871ac4c608030da5d209700b41748ccd300c858b6f87d5043593862cc483ad546587987f6c0acfbb2c5f5fd0a4147eed6cd331753f36c995360a51419e87e875d723c90adbc95fc56b1a1fb28ecf2692b1391d8d43b17f23f229e6704d5c7159c25c7809c7d75e7099f11a8e9c3dec6eac2083f97c30fe3753bd37d1b545c9c665941e5376accaeedb0f5d33b5f5af" + }, + { /* i=31 cDividendBits=3009 cDivisorBits=2698 */ + "017f6bf8b084ec963ee4ff0a0f7fa5073000cc67ab8939fa6f18ff6136d52fd4b127f25597dc56cb2fa4b83e85144fba486ec48d28afd45073f03e0277c3e610b40e33ea141e36a5820bb931b936746c8382c5f98b2aa4360726bd8f10a66747ec194f4cb05e6e036e690f03299b315989ef59d2cb74a1b43c4129e0fe0d998908ce5c9279006bc90d7eb21912da52230160b20b79d704c98f9b03ce3d0e62662a54251a28ba53d0e0ddfb2831295745c499ad5a1b40401e0620de1e5753cb8531205d3ff20e588e218ddb944657fca74f65fb91db94224b42be0b4ef63739db3b5e7469b9e9ea2ab9f014c28f59cecf8f50935f8472e7905908fb03e1fe480d38f86448d927e7f17be9ab62fd67e940fe0864445a6866d454cfbf46b0506eb6d5cba42b15926bc6be68351e60b74c5cf35a06f396f86f5fff3009ed8fc225009a9ac345983ccf54a28e93b0abf1a5b3a7bafb7779b25e77d3d704a2eb7164c266d6a6992e622d3c23bc0af98c6985e1e62a6bc5ee19e2c68a", + "02b389f46e93e8c59e87c76578ea1b671175213f4696011078fc7f5cf7a5af226f9bae9805d3b29fe21836e78b2b36dbaac881bfc5eb915ca23ae40e2ca4258242b88987ae3934ca0adcfc406b6ae1bd5d5ca7fbef2e1fff10e3a5bc78470b0bf6cce496a400ccdefa82029c381cda202c7d7ec85c836f3bf99bd46cd5f3c5d6a793f04bd02f5e6063f5c33414fe903f97f2918fc9f8cfaeb891546e861ec6a58cb8111e57f2429d3ab28ec930690c21b44293e67c2f5127a77637e00fe175babf7af96d9908730031f233386ce0f7b5693f327ea1ae5bdaa98501aa59616195cad8e2ec2d6380e8c431327bb91545f0fa7ec81d4e111c8927e9f572426fd000e514fcc0c0673cae8811594c7b24cc4a44bbb1f78e7dd46a3ef9588dd1951feaed9ba77e7db5e2dfcf7651728e1076b88e4f015cc3d7db221a0d037db0ed2f68eb007e78c347e6a15c02092f9f044be36998", + "8df03f9269dc156f67e40f3017d7aa6247c60a6050ff2e9bfd2307055934a26f5c00856a7917b1", + "a783ca3daaca48ada81021a901606d9894cedfdb0c81c0b58ebd256a614a9337e40a6984f882da655cbed137a974781bccba19e0e616d1411ad6060d6dc778e8aa8f8c353ef0e7be915bc839c710c50445916f0838f523fd518df41e0804b8d08ba30e3e6fbb2e551056fb149176fb1ac15b503024587c5fae3766ea266758c58565895b267d2272612405505cb704661f363d2d80942d5f5f7c3100b375fdfdd9715415778f593e8a663a5c8e2193076f90ead82e687cf711a1ce840f3c202a972b142ba21568fccfa3b02770465f54cfeab8110f181c4a8723e2b4506242afdbb648010f2b47c3e2c424d45d10b4869cbd7e04a60f6750f328f97adf7eb4090c969221e9a4ac89d9f33d5f92e90b45ddc9fc319e1b76a78dba86deaec5ec6af951a0b868bfcd4dad6d6b34694777907605a91e316a24cbcce4f973d869dfdbf531b0ee377288d66250fb8cf65a521c72" + }, + { /* i=32 cDividendBits=3622 cDivisorBits=170 */ + "1c0615977e6c14b64db5c9490eb9257eb694b9f33ef690fd6a8b22c4456bdf64de233a6e1ff7e2225de2dffe10fe44c8d6b10f22c71cb7b200a3c91cf2f50bcd3df4e5d2b4575b27ea09d30f7ed236a357accd478dc83cd2d500d5c22e9143d2621bdc1ba23eb63ee0f24b3bc7c80fb7502a912bb1ef51aff2985ea8036f0c32a45d7eb3499b7df9abd197339d32dae6c3de05d89b7599ced703f8ae07d167397bd58d6c9c8f04d45c6607131b6f6ff5f582283cb0393466875a530e95524e09bff954f499c1f0790ce4104c5342c0d7c22f2234433067797da67f76cd46d6e3279eee22abbc486be01dbe97b6dc45851d13d29fab88e6e0e671f39e5e5655f7b5085b996345e7da02d358aece094525b67b462e68eca5e7ac3f37c8c9f1cebb01f061350b0aeff499581f9ab88cb283d8d378857a125fe5edd4b9ebab7979cd87fe5e2392a8e2afffb4707fb45d77e0d51b7c1b269f55bdea40c5251422195309671cc8f732846b21eb5a03de6b147326d249e790f8f09e31f236a902c5668e4abce6f4cebd81fd997e499fc2bbc1dab245cc79305212fd03ed4c475996576aad3996feb75d08b595db28d7792bd2ee0e04487953978b024a2b751005e7f98e0bbdea27", + "0335a68d6df5f165d160711340bd657f5be532b529e7", + "08bb36febe28bce165328e1d6145dccfa55a330bb52350f487d38db0cd40096e1d3ec46e98b564ac44db9d95fd7e1e25a6896f6537495c0128d5927e51e6bb24f28690215f4a7476f1852d5641a3efa956f80b3aab80ae913126992f6a178901a5b9720518aa0229be1f7a3a228cb572e038e54e1025e40e12ff6e265bf1b8e9f174818dd645952525c2179bf51c6cc27f1998287d4d71d8f5f7be1637b7eb280b067233eab91b3f6097b08acedd7593a07cec5af1e6e4c727ca7a261a7d5732a2acea4a75249a1df0d668d56f1c0d7ccd54d290bb2816d17e513542601cb2ce5959e9771a007fb6bffde67d8c42d4283b80a600a3c6f259df24cf80e15ddc851ec56c28009460243d9c842b929e4435ccea655af9192f579af3fb1a3bc3ef22ecc5ab7649591b26e0cdd5a1d0187fec8e71a372d1ed0e9572d5d7ada5dd16e524c0d4b83ac24b7357f7d1b2d444087b7937790cfd6fb4965175ebf9176f9e6e63f21e04a53218d3d2fe878555f6d342d23c781c827e8da1b00315ff37a13979d365f4134d81526752312bad5c828cc464201d9c55db2af32530b0957f6f03829e634713b17bab55647a65659f459a", + "835abbad88c9ca11c46131c1d7ba7c54d28cfe7231" + }, + { /* i=33 cDividendBits=2802 cDivisorBits=2747 */ + "03455c5f26a82bd305f4c2e9c02e3050457481eea3df712374b346fc841633b79d8f79996027e94340378eb1f41686e6a01b24ec231b533fec7ddb9e42f3b52f1231bd28cb3dceea7db17a0fdb793a296f31936e617f1fad79af95ced96a8674e113d75eb71b386e1aa0d5f7e0b78d3d759c2bdcbfb2306e1f6a88dcc5d6b18b6d85b9e93a182c12d109d76ecb70968e6919889d16acd2310b1ac781ff14164492cf9779ce2c11acc41601e984f8b273560dc50b33ae7f14f2c0e71b804867ea620333384348b279bbed101f0950fa6cbc5b83feacb6107eb1e34f0b0f2099d66dc451d54c3f5f7138a37c8f1a717e1eb67a411e97be074e68490089168acc0f3a437dc938a17eb64094c4cf575daed7fc7746558c5f82762be0ee1f71694a3f793b30cfd23a51bbfde8df29bdccb7a341f5e6606b5f2d0186f92f04a960684696b0950dbe06bdf0891b21e47ac71e2f65a1902c86722b882306fbb2cc6f4b", + "05eef8eee6bf926ff31ea940f1422c20b86a33f38125d228be2ae66e486e75700d5fed86c22f264027fe2dbf4e764dc0a0e725a19992f0968ca5418b317db107f8a6ef4734eddcd84b87093508efbac3235ef153f2db323fa24231b127835e9d8edfe8a677dfd20078a2f9c4bc4d28d7c16e2277aaae25ab20805f6a3eae518b2d3404a82e94e1e99668c79a451a1edbc708b6c59df34dae448c0d7caabc9833c62ab050cae3f50022d041f5da1e909c0a4dc74711dd2a434d6797050a7b9a0cdde819f3bb7554bf2ce13e6a02c72a520774d5f9cdd1d83b1485708272d8349f1d0f1064eb9019d12842a0dda4f5d4df43b7a24de7f05f4a99a16d72a58395e69c7941bd260c31b071187bfe3706f044edc892f4c394894b4a3abcf8e72227cb3655d1d19180e9392a69b3625ff79924e7fd7fcb9e8ea49950c0c0575ee18895f875de82d26c3d55bcc519b30762cb2d78d70682e7816f59", + "8d1fe5c8e2f005", + "010b4bc5a843a306889f9312399b784703172bc46c3202f7590e717701f450e69de0f7240f0301dba53fab8eb2d78d2c40fdf952eda01914e796412b698d901de70b5cf01a18a13aa3d2f07c2050b490e2529a78f6b7274b97fc19e0c2943111491afac0d19363269d8693afe1c27dd8f813814c25aff25e3b3dd6ab3e774a6dcb60a014d8811ad2ade85212115c178adaa26708e5710e2cee1909ddf8df1d72f9255787275eb680c32fe9da2a6100e379e216de8ff19f3bd5d4ef962fb200e1a5bc16437e06a4b28c99ce521adb1a33230bfe75c33774d4340ca1fa4986ffbf0c33929efbd3a9861e671ae2df63a9199c08a323fe600d38fa1286c8d4adf85e4a70bfce7f7700d6369579f5db839feb43a405b66dda3d49a38f54c5d365b7a409e244de5f84656351d7d60dbdcca06c2829e2f3974aa869855bdff3ef588cddd34591b84baad4efaf9cc673cc54fea87a1e4c85004fd28e" + }, + { /* i=34 cDividendBits=3116 cDivisorBits=2956 */ + "0effa23fb3df14cdef8eaab6c4be9078a919e2a385e743bce228083eebd2493ae3833b5883812cac8c3eaf732b6054091255030646d88ba6a473816d183c4fb54f37f7de025c0bc6e821a026b6350ef1c09c7677e754d9795c4dda5060152a07c0a6e1aa825bd6f45e1f042a0143cf6b5e056530d976574e8543ba577688cfc870906a580fcd70fd70e487e662a56d7d9f4c4709a841a1ba1a4307178681bc781470caa4d2706e63f634725705d18078238b3f099cdb5632420d2efcf5405847f26775c36ee1144cfaa42571742fadf86dc171942a877d56357215c0ca82a878595b824196c8560f2c9f4800908e2bf0eee6ee09f36693809bedaf2267f0c16c3e2a23c8ef62b6c43f5803f10df22f5d665e427d7ac5f05093093b85a0aef761fba422774c30751f8a2d323cdeba7757b3e5a818b2ad784db96dae25c4da5bb1ae3815e58988d930a5e0108880e50dd2361b5f5f7d32f970d6bd75109e1754840730caac9078c3f10ad5e131b6b0a146043ed6ec26b3ac6e1deb524cc8ffc9ec525e4e4ec5fa", + "0d9cf821ce1281c36b00a98b7101375d21eb210e372efd04864c509070113d67ca25b0c69489e04ec4fe6d1516f3bc9eb83564eaf96f0cb7d22d37b8fedc587304c34201b19999bbb3339cd153109620b118dc440edfddc77df01da9159e0d558eea6f5e58ba6f59daf969ded5009eba2f0075d6d1f6adef1cb2cc41e0763436d897ccb2e64482438403be6f4d0988dd4ca4e643243c228db7a5edab0227d79dce73b3d6289ce8a708059ed46125048aa297121837cb5c897cb3a3ff6ea6645424cd1a1f6b14dced8308e84f66883fffc89078abae46adf481597d5ab53be7d58ca8713197d7cf41223600bdc47963b4a4c371f826e100a00aae54e0c7fa7ddb8f28070d0ce3f17245a68e970a429bdf2ccb198df9ea68c431137f677c0703af710917c2fbd6f0edbe24c412821555d0de79bddeaefeb93ac7235570c65e982250100833c5ef70f30aeb0bdfa2f97dc06406dfe86986f767f918ca2638f5c10f66e64bdee42975b072090349e473876c39cb", + "011a0d95677baeea8413e3a3651f25a46efe21eec2", + "01bb9271a599cc02bc0b57f6c343ae1a0a8f56437267af53d58d0a718f554f4dde266e4a2ed92a459ef2a9f1a4fec91b5f83077907e529e8168f7ccecbc11cf22521455837316c9a92463d4532059089828686028f084ece61976a361424bcaff168f3860ca63683d34977eef3a96cd694c8b38ebc23b79c9023c2ca41a50b84d2a9c6244c5c2cdcb39aaf9dfde556f4fe98242153434b86d05d0605de63b0d63209105e228222e256e494cdfc6501a74acd0babcdca0a94334341924c42e02ae65aeb60fc116ea4770551fbc00101dd2f494b88112f7adbc71af56f0d96c139fbb4d78f5499079fc77c1d30cd0ed19a3efb1c6f39d8d39df50d5fb90edd6d5b2c84c372df4a118cc7d0fc9b53fd47cf8ffd6d05ddf076da683c58f3b3fbabe44f5145c3e93be3b0f6236c768220fde4401ebb8d072eadc353e9e38251f0d05b916dc7a7b4145be7861e5fdc55a92d5e299403ba0143c0282f33e6bd9bb973fb30872c0113240b7257cb116a136633654024" + }, + { /* i=35 cDividendBits=3948 cDivisorBits=1758 */ + "02dc8c6c8b6c9588eca2f22bfb3437d764a724e5b72535ead4bfa8331eb1e3ee391c36eb35b35f6cfa103818163166468b613d6a9fa7b4209d0e24bae0dc42dfdd59db186efda60b1124616eccfaf75fded29db76a29b80cd3af605c325a8d67d41b023f15d32604a54f32808697489d66f2a3ea6a3899e8abbd84b98eb7a6aaeee6e8bab6af6660f4cdd810442e0aab2e7d2460be04ad79396b1d948f997857274d7aab1932c917e3cf20a584fd2e301bfb0842c0bcc0d20144719f2528a261e32080b3711a1936256ee6a9354b5b52212c5ec90d3dfe459e8e9783c49ee840929d73226ae92d12600cb5e341963ba33c53b54a2912120f382efc66e023c48f056207116d9ad92e458c72fd56530a8c0ccd6de4dfbc8d070583c4dbabaeed4fbbe4d4af70952dbd2eff876948561d381909399afc42671eca48b6d2193105eeaad07bd4dc27c2f209902bfb27fec3da0d21297b12c6e9ef3fc7fd6fa92c599f932c36c6e747e95ab0dbbd9e6ded0c052fc11016d72265a47acb8fb58f9e1a2a69515407e880efdd00c3d780cd94de8a0ac655d0116afba7e84c7a3897e0aba34dc6e1969da4469ac55b6669b53f5c29aecb375d4d2c34081e59a5b9a6dd939c796f8d3b8400f73a1f3fc1bfb9d28396873f5b54c511da09bdefd5142f283816da10782cbfd1d70afaca23e4aceb", + "3777bf8739b769c4a4681c3672cd6f196adaaf7044bd157a6b59df85cc1efdec427f0514d996c5dfbf95cf586cff3f57588c69fbb3f77bf3ad9c04f0d375811dd6e9370f01eaff6318e07088a38f3f2239611eaf04b1915c36342df6cbdd436c76cbe5e722840fd083405e9695cea8110d29d22c88f88028b942cf5dd77f3d47699869589cfabdef474e594b76d4becbd8b4e99ebf45274df364eca32b840a40d82395cb34db4652e63ffb0a283dccb13832a394737ded7a8c38f38556b63a29a5cf19df1318ff6f5e2afaa6698f87c16facaa00f9a2da4f6d6795bf", + "0d34ed1b4a39e3030040cd8bc569c6941882094fd17bd2c4683a5e1cd28831e5ee5ecaba461dfbe707f5970e7c23f041327dace1f82cc98ba685de54365eacf25fe553f83196de2adda6ca5b7acdc4e120af9fcd14b6f7f6af1236e3bccb5fe0361363f208814731dfcce848689d386469f43aa1588241268e910b727fafaf8aa755508ebb1b591eaadab578f7c8c83304748d7435d19891d69891e1a6e56bace1bab33305da6580b43e1d6d33fba4ccf62ae41201cb08683d304418f89789054e7f2c0937e7e3e1b8c982a45925d1c1aa55af6853a8cf94ea26cad5bdd061a4f2702717b69328ab3e8f2206e33b5e8a8d47b6414aa4a9292fb044dd312a51fb50ab9c4819f586b90c2ce8f4f2896cfe98b4", + "2d78dcd3d2b2dd822ee64841c633915926e6c6618677b1f6323451f1c866c6f48e972c6010bd15425dcfdcfac4f6284e19bdf8feba66300eab2922c5418c44f10f3119897577054328b277e8a54277fe43cb1296ca39bdc6728e04ffafc16cc44433079013f37e6fea42f32ba09e83c2377d67e769727de827bdd4941bc77143281310a811e6744aa82027e0198814e18687ace44e73993cb9dd39bfa69922c61ee0523d4597121a795070b657044f4ace159e0389feea1aeffbfaaa5a38acafb613132b72cbc6be5e3739935de3fd54e4527e0a37ea60d18ea3fa9f" + }, + { /* i=36 cDividendBits=2114 cDivisorBits=593 */ + "8dcff3fe7633f758297e251dbfeb9f36da1306a806f18d4d6f38130bc8657726e4ce9035b813804c6a6a0ec73581c72aa342f17ea1a7ecc4d29fa79460605a2c2b7e4dd4869b916fec522e31a29c5fa6c841ebc50576c9b13d10b9f5a1f2bb588d4f04f010ad4f6b99e3c17031cd6e4d8b41e46f92404fd776ccabe0fd8aeb4431d152629158f3e242387ebc8304da1698d5f7dfb810d629faca778b80ec3f5a9f1426f592ea8122596b4851234b332b9398177f64afe475c7310f32533b93e23df0f6479a8486ffe2a0afb1ebc5c346d0aacfd85e0b64612c3311c4a8eb3e217e81b05f5a35798f70ed6d2d1d904237c68063fc50159a47cd14c1af354e86cd50cf16234c460059", + "011b22f59ea53ab69e9a750791b44295479b848e8c23ee5cb7423c66a8633cd6c7d20393f3338710fdaf86072198b9289a1a8cbe3b65bef310d5c98595e20d010248cd768b25008d5fda1c", + "80387c5ad8a7f80b3d97d356a53c0be79aa94293729853e2a4ad6b295024c6c667fe3974af58fe65403f61772e5d0270b8e594803c16c64e685f7eb56bd36c2c9ffe00ef0e65152925d9b5a365ee65e5d2bc9eae8fafb253683d1c87e856865b2e43d051bcf9b30c8d7d6f41aee539f6ea25f25eb0aa817006870953f52328fd09f40ab1591c172c2cc271efcf8f789201824ca65613ab87514d90c0f902c533a140c6ab03ef7090d6e9d53a59e9bb76a92413dab1e9d4e50ec1bf955a91", + "04bfffcc91d3a26a5196086da7613cf33ec065c0fbac99f637bdcf63700bd9ce374792dc71904a84824daf20e81b7ce7022d5a354b0a9c7e917e382abed2df019b292ff32b7eb0019e7d" + }, + { /* i=37 cDividendBits=2526 cDivisorBits=1906 */ + "184292e53725dc10df36a6b77d5f7766bda0491d8bfa05f16d929f56adb9ed67b3e0016ac35fce1b95a0a3d22b1908e6ddd422a82ee6eecfdc04bb48342be86152fbb9041035f79b8df8fa34fa0bdd380813fd45b2249e2d6ab4b8e1abe21cd484e2c4a64b5a988d006add7e788bfcc55252215c2ede5726098904bf407a5c83077ea50b0d4e796ecf8b5fe4dbed6b21463f6235eb9831c555a1dbaad50bf0beb39330d83d4d443d748b7c8a617fbdd93238deef13e970cf1c0e56fdaeb471770a7d9e779e01006c257971b71883798a714425df586a094fee4cc9f60ca6e13cdc734959f7810aa9e71c91c3c934e13a0486e670707e35783776c347c325740c1da5ce150634b0287676276272cb0c36852f5b2bbb96b81a22b1f2074a2cc23f014af0adb20b79eac2ff036efa3dca9b800497dd204cad236eaff8c0", + "03872694ff1a8b07388bd5db6b019773d52f8b0c9ab2ebc78bd6e773270f53cda18b46560bd2c6de4079f0029fac98893b0e37d76d4cc416aafdabc8eb4dcacf5287524df152d0478dd87a06f4f8ce61be789c1f753fd2360aab60c2d6142a3f11daafb1f34417930aa3724d0febbf36e1478ededac9fb4b6edffe4279d01372b1576ca066042401e9d988750a2ab4b314788ec040afd902c58e65e9b48d7e3220a01efdd4946a32dd9629320f9be5ebb5542371097b35e4bf89b0802c0bc0eed6675eb343835278013b618cff959dc426267d3726125f20935d329fc773317dc082a7b8d24e90323f2fae3a5be245", + "06e066823e758e200d2db117ac99163bac86e0191e9822d2f6b1aef8e2e76c8212aab908c6a6107273ec26993bdc884c3276616cbfee3581a9127c4512f1cb82f6ee6d7661c1dcf5feebf8b25ab4", + "18143a144ba0980405efb38fe56460dbd587785aa77be4d09941cd39a8fb337a92cc75c24485eb79c8b721904298043f02b839d405b443b8535178f32b085a149200800b91cc1880c78aae95b29a30bcd37a73e27d304780ffda9da6e43ca6920a312a6ab4755c3f7f7b08c72636cd36d4f480ce20d2431ba94ec7dd635aff289c961e301bd17d96d14f5e94b8916b7070fe420f3a8be4eae5d00b2276ee0ae2e30d4adbb86dc46b955f600c1a72f33b11cf0091aa5de3151b782e1ae06a5148603d3bb5443dd087592519aeb922ff8c15671960654934785ab664d3af98f8587d63a1925471108c23b0ec8e9e3c" + }, + { /* i=38 cDividendBits=972 cDivisorBits=284 */ + "0f66e4cd5ded521bf126c3feeefbd902afc7fa097a4e50972a2fbd33db01eb1499858c346e834876238e2e1bbf1cff7817960f7c49ab91ea975f0bd1ade4a9fe283d72916ec809039231771e9a621947c4c27707d49b89700ce7a469f925a1e5fa45b9bbc94235334f8d662da41760d7e15861c755234be90378", + "049f1775d0617c959e6fdae7a1ef63544dd45df0d0070fe28e22620330ceebe5f3ebdbc6", + "03552c0ff6ab6ca793a587ba71bb2f5d6c075ef1ee68e1d20aef9cd033e47d15d8d5b22e663b2c774e27e3cee01fa52cc9e324f9aa8ad73f5f6ddce130601cf57abf53f0f64997b1b4e96cfbbaba2f16c2584b07b3910b", + "6b6d4ff8d24bed002c7a5e03f6a3574947e303fdd5f1844282983cc01f7f2a23d96bf6" + }, + { /* i=39 cDividendBits=1138 cDivisorBits=1014 */ + "03175eb1da51a6deece4d1ce1cb21795f9fb43b6c77cb18cd60d9859f2a91a0d841d29943b67eb60173a79d29e38ce9a8d4c9d5ab6f156d27887660e5fd1e78c9f66bf1007cbb46693c3b37e6820f4b7a3ef9816e01a5f449d6f6a6ee33c89a693b911cee75e7fc54205633dd80f120ed4da5ddcfd490dadc2ddbf94cef09d8ce84627855922d48343c9684bdff4dd", + "0762537e6bbe64e74a58a31918242a9d5fa5b53625f6e11d2a0a1dd6d8d391c6359d0268c66263f222fc917e31149b5388fef6a6217b7ca83377814db3349f1ee1af728cf1b046ab2eb51d7242164323dfa224d35aecc73387190ec2c90c027a8ec335fcb16baa89769c92af988f496c1ec1205678d1309915a59394692a8a", + "6b2c1f1a329e25e0966be0af400f2f6c", + "01f52a906f004f2e8170ef617ac590ba44faf897cfac82f59fc465721a6d26fec37378792d95318f568b760a64511f44520a28c224aa0ecd203c78945857dddc7ec4a30d72bdca83d383844489d373d62ac91479c98286b2aecc8bdb7deef4f8366547b5e4109b632aee703720cfb442d40535eb31712f3f3105c4629caca5" + }, + { /* i=40 cDividendBits=1030 cDivisorBits=920 */ + "2109b2f0729989212855aba5c9865de81a618d65c19e5500a1d6998f81eead88f949d47876e95fadc6f740ce6fe11707a799bdcb61f31448914e238dfc7ac02d38085fb08bff83350457be43c7f2281bb4000ef043bb95986eb338a4934f7f67d094e5205c6e61c3dade4e4c54d1a284ddbc458cd813ee689526f1eb45ae243909", + "fa0afa28476215a083aac214fbde3ef4b4bbbae6d3c19dc915aee895f42ca037fc986ae91b143b430f6519d3aff76120a1b2c7bf3e7e2148961af68ed6d47eb6960acc55f0c69d7bcfd20635f5f2252b6a1ab1f49d1e8c83e40e4e1c41d3e3637b0bf5a285e179258cad5e12e9739b6a9b4572", + "21d332d3db65fce91d7c344ebe42", + "a4cb7f6665533d2d5f7b1afdc5241ea9af5c38bea84f5c82c2fad19af3a624ed71eafee178fc3ab2ef9db102f4b6d8e2807499e34a1f1bd8c8046d003a16e3e429367bde067bc7d08f9e22c14416fcba742fc90e137d5a8e44a773efe43c0ed8347190f30126a8d94a4faa911d3172a3d5b5a5" + }, + { /* i=41 cDividendBits=107 cDivisorBits=105 */ + "07499a574a526000fe9ed7e90f96", + "01a43974bb18dce950cfe59847a5", + "04", + "b8b4845deeec5bbb5f4187f102" + }, + { /* i=42 cDividendBits=288 cDivisorBits=270 */ + "09420bc85271d0fd2aba794b5e6e94826e1c53cb3a01e133dc85ee93c8fde8997689b49b", + "2a3da08849a1451a1186ecf9ae090179a8e0cecf624f4e04fe3ea2f0062a464c69d5", + "381b", + "1c2a93f6c5dd2d251c39c207413ca95656d80ca129c58a616a54185402c35553f324" + }, + { /* i=43 cDividendBits=2430 cDivisorBits=1543 */ + "113a7b81c8837b208468913351fa861b039ae1d2c099b392f1e1bbe4a5a639c1460658251cdade25503c04dba6961173216deec03143ee087c0e08186e698004058dc6a795a5e51c2450029d9e1858b7fc9d73a7ca5becc9c34a368f3efb9d1bb7293f80bf3f38632b85bc931b34206697588093d9b6b47eb403b67a6d0cfd8e038ba81db2dd520c64f1ae3e5031061908a89afb0eb07bfa697af12da7ebaef814ae22ffc88563f24a985e2f17e311beed961efc27229d27aee3c7abf5312600f09cb506504432a6d20fad01f39a36512066b80f7ac035fee2cba43b59a396409d01fa27a5ea853a9469a093ad957a943c66a12cfc038c3c2c1113333cf975e318fc10c44567b45e78654d8ce10aa4659c7c21477d0a5f61bbd133c6fe110edeadfb0ffbacc969df3c9f2e4d4975a9bf", + "734815eb918f128e9f974b12664f82ae4c014491e6b0d63bba5c04c04d39113ead8381c9fe88d5af5f68d72cc7076a0f338aec15382885fadf44204d513f451b7bb591da601665a9f32a768d145df20317d61a1bf3d9e6fcb55eadf0233ff58bd1601e8fd4b5f323ec9dcc4ee3723fe33232ed2f30c98f71fe9efc4fd85def5f0a33486b9c723f53293644b7c1d6b0be94170a299f90cee63b723d220bed72a6a0250da2337efc661fdc9339eab1176ebe5f713c224b9570b12870c99255e7196b", + "264222cb6427ba1dc3d8f3b8e07e93ca50d7ff92f967b8475a8f75220fb0386433893a893c3c1037fe7fcbee55acc78d5231d06bce46b700d1d4e4dc2bca571571fc1f7e6b3d9de4d180b09fddde0178116fb406e8a34aea314c14ed1d6c61d31099360307aa9bdaf6dfb12a7f3c67", + "0b73d8141decf9f38796909ff091c3e575deb9a394c8908598a82ac9be65aa45870e22b9958b750799b9d81b2f46c5399ef0a031a6738100c5628e5a4742b0a8ad2079b5fd247278be97aaa160767591c5bf73e63bdb49f5ed170cf21aee0f15977715b68197ff0c724ddb2b9ba709179b0d4912ecb5e5ec86b3db10ef7683c7614b2b026dc30cb7e4adeb952897e3f3015882f023cd26fbbf7d9de5cca4463e477e8fdc4e3edb5afd4f16f86b2b55b80910f8154352a85b954790787e65705bb2" + }, + { /* i=44 cDividendBits=1202 cDivisorBits=1080 */ + "02255341f9ca9f01fc2de42cda9e93d5e97219c9d6c1499723225808e94af2b5f8bc5949f3cb9418b73a6aeb78f3a9fb86688547c3baa41da388455f30adc2522eca2f466b1b76b31f47381f3923f63632dfaff025e1ba9e41c0f24c2d8a2bf47e4ac61db09080449db62c52cfb9ba3afc385c3a542fda84e6e7199a0def3cdb94a431358574c9f5f21e9709d47b6f2ac903bdd0bffc58", + "df300ee8f37c5b1e24f40d907ba16e74a754e5014e6f3223dd27b745b9aaf0a13dfea365b83cd43ab8310e990a9dbf00331965a73d55cf995c672b4c4042446acff76a06b35422b98db45c93b64c51760327f15fd317e61f49a2de69d5309555ff5aaa1ae15e3babd947c59225560bf46b28d243b8b15256c5f5a90632b1af597f20802a05afd4", + "027615c7f8d33ca2efcdff2a54cf999c", + "dd17bc37f00f6325a7817589ecf246b9041f3174680f5848908148dc483b1929e4d8b41c55f242c05b60d6a34596a265debf3bc9d852a4fdd6878074035f2de59e97ea7d3aa8dedcf25f1024b89d4a9c5466109cf6609867be3e97ea03e5de5e868b0dd8b93b158c42e15c97cfe0312518496c1cc9766af489c4c389f46ae309a1bf7412c72328" + }, + { /* i=45 cDividendBits=646 cDivisorBits=213 */ + "2fa566cda2807000d9cdaa5f5ca014671944b72800cff0c84275e8a27223b66157413ef000e7c0fe3057141e65cc12c3e47342fbe4aa0a54d82b776ee8f89ed63282d59adb691674dcdb4b1b6ae08db4b5", + "1025a62ebe173510699a0e27bacfea83f5ad0401b1794db80ba59e", + "02f364ed9eb6eff2cd371cb1d2016a7349e433230f550bb342fd0e928865339aef7d369034ff61abd213ca144453f6c5248d457a8dd468", + "02051b563ccec670708df026588d2a1bed9f0b73a5e280f2a59485" + }, + { /* i=46 cDividendBits=3838 cDivisorBits=1265 */ + "3307d60e20f3ac464f96d640a3ce10a5730a3147bdd926b720f6513d500e8bf12205f1ce79aa8a5f7f3b6de4b4153083ee47c3288461b138b6ac0a13375d7e90fbcd95a1677cfaf19ed338dcb85c2f4d4483f8acb5af823e6e9e70405d53211da26bf2defd87fc80ff82246b8ee8956b80ebe5b272ed2fca2165778daf7b24fea73d513ebeb101f65bbf0538943e803e28df93708bca4786125edfceaa55df80da10922e5127c37f9d85b1f56177a6dfbd640338ef7640f2e4260e1d45d189acfe42dd8dbdf71a4ce1a0e127fc2be63a5ebf8dffa39cedd8f9f99fb0b09a4f9c65481d4f041e36f6f9d5caf6097234419c444cefcbec294a40ef545ab46e2fdfb666aabfc0df4dcc793e3fd267d55359f52680bc77b3709c9493ca9eed1cfedf3988c9a3a9ceb60eb6d3225502f36df9a1b0feb8316e26f31efec5cef53ebfc26c323248da680aae1feae4fa72e1638d4f9d0161a9edc2017237c4931b22ade71dd20791af70a581c6c23f5f533c50bf1999a2c6bb1432bb91a8f41461ea224c2770e06b38b95296c8558544f60a9055da6675e959ac1932effdff07c75495c9e7d1716979a7efbce8db55a482cdd8ac8bb246451dc51713b6fc0bb01c258c26608885dc89e3ce865a278d81d753fb184a35b71109d4b1b14c163bf23339db9b", + "01cdd16239183bb6e6a7307a0b7c31f39e2e0d8971694fe1611f11898a156affb8acd3c24421b3cb6f6d24e2d77fbf56e7cca5f81d6250ec01a002654a46f3b8697ac93cd13a2a4e770f5222888fd4970e45ba9e163b41a103f68c3eeacb103cf031461c99e50961e4251dd7e52b1e0589e5577a44a3c919d56bf8db35ccf9020644cb2ba7d7996eefe69b096f34fe959288ff0b715000c3b327cd4f6b8b8b", + "1c49b09cd55c860c0807fc1a793a7e81de8c29ed7db3ae1a6aa149d605197d6e796edab4e50e6ebc9e85d7e999e421cb45758a86048553ae67469c6f082af3541ecda27e4498dbad700af306c29713adbfa23b9b78a93535b10404a045d553937880a5283718fbce9a22d4cf0a44010d1113e3c55d026316744400b964a9aa48dd8e83b98c31e46b3f35aa65c9a5c0d3fc42f102b0fb53bcf7ed8999413f7d5bf329a1492d5d4ca0788622c2de9a6508caa9656e11d3bbe10b785e0e0a65c85a192b55b1cc089e79969b686d052b888f7d5a387fc9478f7907fe0011ee27cf93bf37402a3945aa1ec133f98a28d141599532ee9fcd6d74a0afafdd73b18ce336021b992d9a876f2b282044c5af4d50bb713edcb97cc30b7f913f7f34233121430bf6514aff2bc439fa5b4f224b4ccec5900895fd4609951ec32f57ac52104d139a82", + "aab60b2a69f4559bdc19d8d2538a568bb6469a36fb9fcae4b059319501c8a27bf6e90d29e112a05d30a2c7a4df7e8aba7faddf3c4fe77ac0086f24a14fffbaf5acec4d3abe9d88acb192697ad6b8ad61df32adc59f531dd4813ee2d5fe209b189de3c52b1adf94d6561f92072bad6f2f1a21746042c827c57c89d3ee52c4a70090399b4a6811e6f9ed877ef0a4adb77ba9ab020989d7083b0745025a6105" + }, + { /* i=47 cDividendBits=736 cDivisorBits=58 */ + "2f20f67a7e7dae9a093bd2c1a8856489ae0f8be89b7e92c5f8b51159364dbf84ae22112158c3c7873cb29d320701685756ecc2efdfd2b8f5d71c2d46a680b041d364d882e8779d61ca80a8bf63d7aec14310f47c19bf4bad7008c358", + "038f2e031675cb81", + "0d3db4792a7db8a0c80f6e880f97af4e3f9020ad352851b567db04cd17a0f7fcfe0e77f83e9d4bd645a752e2bc4379eb6dd0e80dc5eed1c5c3a9107910e1dc4788b84fe8863d095add1a91a27b51731ee1885ecbe9", + "028d2a5055153fef" + }, + { /* i=48 cDividendBits=1601 cDivisorBits=1288 */ + "7df8b87fb58482b143c475c4a6b435366830ba50cd0a09aec4dc703b11c8708a9ddb1764995d589ee8ce532bd8b1db29c18a62edbf703c3b52540ba301aaa0aa21c582be50b1efa908aebce0a9f4b2185435970aefc3cb13edab940b59f0a8e64dd4118e637b18cb99088dce3c3524615b6795e91f8ae19cfe09d848f735f657b802adde25b67c50f362bf23ebd19369762d53d999c466e100b698df218d813dfabe47aa91e13cc6fa3241d996289ea1b82ebe6fd51f8d4ef953e8c8efedac89015028ac59426130", + "04f4103a6d8bb673a5d56f7416ad2af585d0fd05da64a58a1bd778417611fafad4905645bc341c8bdb0ba237b163b19c4b206ecb54bca599f9dc3e105f9e31b1917f76353105eccc28c09987fa4ca9332cd5381961bba204647b5cf83a31d413825c534c21abebec4ad387537fcfb6763e4cfa0f102e22fdab8ced4e3569a3eb11e41103b533a91b436ca3fcb41c477ea211a4a1ee2fbb1422f89d1aa54b69dc07", + "196e750e3afe1d3c823a6f34f4d4f45dff3295610433f7bf8c0c6f7b0111947f52254375463aad96", + "04264a948e297c258878e1397aa8cc9e55cdaf3bb61258929f398f61e3e1f40d7029791353f4216637bbd34593c192d35a6f4291e5bdb9bb6f0954b8faa2c214f94f8de8db5c6829d956afe235b74765a613347933e5762b691a633fa87919cd813ed1244121185cbdcd6e265b3bd3e76f6a4f587adde19bc367b968d75481e290b17c551e2f23382b0fcf998e395680c2d2c088eea1cb829fb7346b82dbf4ba16" + }, + { /* i=49 cDividendBits=1031 cDivisorBits=908 */ + "5ab9a25946fa5f4d3e9f75cc33a343aa484b3a3cbea1c556922f8e783d2e4c687ffe0aa307f98b004e51dceee82e69fe6c67af581d486e63db38b2966d367369e5685ab33539e9a0c800a095cf8eb3d3be7ffdbbd5e7b90cbc70d87979677bb77cc2c327980d576134601aa8c85caa6d10ab2c00bf2e2c745ea71b1b778ac75d31", + "093e5c7aac4dd9e19509a784429f5dd93aa385526265666e657c4027a767ec7129bbb97416c2b55d4c72546caad1904c2a04a44bc36f6c310674257689efd74d19ea765e3bcf57e8362cca9babc222f4315b5c7e4d07727361fe4bad4e3dca7cb4d717c7b6762695e3c2dc8af7d10c79a456", + "09d09e42b10fda9932c0985b7b5a355d", + "056dc58ce110462d83619ec908e1419a34adc4dc1bcc9d5b8bdfb0f9d0ffad9c9f2381d8100119e3f342b2e93bf9e13487e110c60f542e78ecd1277bc29c1e9c379cda9fd4ee99da4af0e5d7c9ba5e7fe832376f577215653bde1ea2e1fa00e5445b21690e61b3a7498d7d837da5bb54dbf3" + }, + { /* i=50 cDividendBits=1245 cDivisorBits=74 */ + "0ca0848cf31a6cc8a3666a468d46ac2bc1924be98a8503d6d6243f4209f8fe49acfe5d30f79cbb8ce4110478f85df086f6b41e7ead22e8633e71e5e2de5aba4abcea13499a24eeb37ad37e8953c9b259d23adf27967dc780a27c401121df0fa86df0c58745a8f6f2800825120402eeca5dff47174e9973a849c60691af771ec18a898cebe9d2a2e699a2184a7a53645d13099c3e4108259c7e20c614", + "0184fb67db645d024447", + "084f691e3a0cc9ed898740a30268a4060981aa878a2fbfba45dd6f8d0341683f3677bb517a7548703c87061cd086c93e374b39df5a74d0f19d3b955b90367593138af0b0a0df42692eb2323202216198817436e35464d3c5dfd7fee67cf45232221f653154718e981857278aa7055ab5cc6fe06c8f0b96c686a3be7e3d9355cb1e14777e851f8de74e917dac2533ce8094812d", + "0148d80204850746fe99" + }, + { /* i=51 cDividendBits=935 cDivisorBits=551 */ + "3ee4df392dbddf063609aeb206c4d877d4ba257d9a636c44240716cf1d962815b323878dc24b9edc91f239fa443d20d6458c81efa8a7a2585993e061c34803d628868fb2874d78f967e343c59cc955c54827a1f3e952b7b4ec818517560dc82d12bc94b46237fb2f6ff1e6256dd85b1369442ad04d", + "1ddc9d1a8b64a66eebd53ddef2af612a24bd974b391221d1054a3f31ad42b8538410d6857e7aa74377cf200d08258df822795cbd2cafff2d461e3c4046bda49f7d4b2dff7f", + "021b2e180bd01d52ea1d234ae30fb7a5c2683b46e496593e4e9e2725bae1fca952a5ee6dd6b13e8076ff50e76bdd0a6e47", + "18d57d77f06e8f33b0d93326841e4d1c985e7a33322b86fbfde670c6f20daf884edc6c0eab2c52311a960b7ed896eec708af50936f1b7789db4b9f1996d7e9f8ea08aa6214" + }, + { /* i=52 cDividendBits=3340 cDivisorBits=1146 */ + "0f23d6ae488d422b6f7433f3ac9b75e1dc6b5dc5a58b274e03e3c2b9d91ef3802a3e1deff0103b154ef62dc17cf87941aa6eb3be2ca043ce75ff1e26cce07c90bb7901f2c73247e3dbf70fa1ffb6e38372090f72a3e0cd07c1b6a72e4debfb15ff85738c6f6bdc52352262361326a088d668ef08ae013649e8293171ab45658be25fce82d53eab57acb175b888f7240e2e510018f9c0e84b0e62625b59b56918225a8fd5499ff664b3c646ad55c69e36fb795a450ee227ce21d7065a02d2f79e0f6ab9e971ee0a9f78c474af08caa7dddca8d3f2ced4f04fecc5a1e815eed9ec8b14115c1595cd2781b0b6c81a012da0941b097feea4f00929b77fbd3f842b65058d443a6068a80a141908510a16fa4000ad38954b96eb09cf70c39af9b731c87b2d054f56d52fe2999fa50b3f1a655bd694e745b7cf6c0475a9596f0e40db23f55498c32886b65e79bc815b8225792d521e47aac2ef81372a706158b57c4e87bc91e9f37785297cf6632607436f3ae29a774bb0b4f1166500a98ceb98cb5f282079d3a49632357d8d125ba93628258dbef05bf2d8d09408b9cc385236c7e24c365b", + "01cbf9e16489cec7efd973c1e21cf69b05c895a3579f518bc9543b2f71643917fa9dbb0ca08a7902fdaecb048053bcdc042c848bb20c51f5cd086803a0e6c661003fbc6c43a0ee5748fb3744b98075e10f67897155ec7c301d01eace75d8c6cbccbc37a9fe2cdc9f1a5cebd86c2298b55166b111ad88f8adb21551d9e08b8c8af1c79e414cc0b4f041fa807fde2fd9a6", + "086d19bc8b17fd18474e150da770d6c2292e780209c96c0291b954660241435997d5a9f137e19827bb94549dcf6940a2d4cade1be3eb1334428935445dd0e83ca6013371979d9cb456c8ff5533b0866aa36299636cf6712d6f52d5dd98b083cd3d39cdf67d3202a34c2fd4cbdbdaa5f3d750a00f91173bb217a8a6ac28ae6dde357d358124e1af1eb44cbb470ac5bb6f140bafc9f77cbf9aaf9e3ecf98e1b1181de62d6236dd2f4d7bd44c927c2e77522af7d146d46218512c12742edee6798a44374c0eb455c2b825c8afa80e9af0011694f6b896dcd238160ac2e0f16bb25f8e8ef934d637aba2a30030542584709dd5a98db974247462e95b8a64b2c6b1f5c2ae643d92212b8047954c3dab884fe3dcfb62", + "fb8c99d215d730d10958ec128d5365c8ff3ba70cd054b5c7dce0a842212c6f19ca0e68cba57156061faf984ebe8bbebd40d3bb3502628ce8ff286dc42cbf5bd1b98fb2337fa92eb2cfdd6a3e326ba4391b1567d977c5ef97086b817cbd27896d9d61a171326dfc7658611345de2fab9c9705504ad5bbf70ee1d60ef2e2147ce0ea181dcd0970509e41eda4aced22cf" + }, + { /* i=53 cDividendBits=2052 cDivisorBits=1435 */ + "02ed76401b480ccfe75b83aebd89b80e3af3545cb55773994d0432c51fdb9b0c74dbeaf7698501e95e8b781faef56abada0c71c0d3e23f0a4b0ad7f9bf9c7cffd94247591ac75f3bfd9b18eb24913e479ade4a7aff831a55162b75b863c744e88c8a4dc3bdbdceafbad24b302c4bd155acd0c3ad6f34d1e311d1e2743f36d07b1de24eb9e5472e2eb7a442fe5e690f99a719bddd77c16a508fc9222848317a32712d8ca62462fdfd2a036f22834e7ba178a36c4972e9ceb423b4f36bed909ace5f8f506436254ef202996c15d9015f2e352d4f5ae89f0dbc08cbd738faa480c8ee75eee36e15f1fbc6ed1ae67c83daf68e4794a3327b834ee2b86aa0b2f190454b", + "07b0c2a756f5b7f0e17586c8fb0e66fe85bf765774c628fbc478ea6d1c2c8b72875a829cf31fb27f081a1c28e931a1d330e6213c2872eb49e9fbe0978ba77c3c4f08a419456373828b942a17ae563e0f1482d3725de61a5b001e4689bafde7a6421a9b4979bdb87f406e5db78b56f856577b1788bcf1205a84b6c100a78bc072aa9099b423b85fc077b3984df21fef7773a7e37ac5b0c4725c7ee1d32dbaeeb296428c5feeb69cea5bed22339728bf7055aa5412", + "61740d53f368d93ded53afefceb3b874e50a02160d9305967307881ea55a6c625c2e7fe768b42db464f3c3ace0735d805ae1ab56cbdc5a2b6b238b3672be288bbc21f54681b64b95593e8aa550", + "3ef8922ca1908fd17bf5d3e5bdd944fef0b785cc1ab86123bbc2a19008a16bb19fd5c6bc18f99ec3d30e9f42ea44a1e3e3201b6f5d36ed06862e33908c6cede9a614baf9ad1b2e7cb583ba4ba7d520e70d7d5190cfd115a0589e1562d789e6e1507eb6d705d9a44825c96e9dd4a46bd4e880042776f8c5f9b699289967791ce9a35a0cfa65e99530cb09e8e0a103aaccda1e57e08f30bcd1fe75edc59f1705c02a017810e0c18c3f7f9a5a789243f1b67265ab" + }, + { /* i=54 cDividendBits=447 cDivisorBits=34 */ + "58934e429ae6abc3db17086e0827f021f9c0d0220f05e38a840eb1292af10c1407a9a5b06a25d71bfcb9fd8d20ba5d935b2d8dba234f53ac", + "0203684be1", + "2bfeb2d398741b51e50aed11021540184c4449e9a0c6eac51f7fa76de3b10fd60c26d06542090a7c4aab821e054e11db002e0b2d", + "016c49521f" + }, + { /* i=55 cDividendBits=3960 cDivisorBits=623 */ + "a31267b1b6272edc5ca50713e246be068fc380824947ec0b9aa1a60632b862b4224d47d3be48a1bbfa9265b1a6ba913de88300ca157dd49ac18e01f80899c602646d00c808dc3754d03573fda586bea4a5f1ab7e49053c706273883a79372d7d97dd2aa41bb812900253c30b376856891c96a6677c2b903c12becc23211b679067fc2a03ced05e3da5409330e908f4cedcce35b315533e2f34510798995d4cea58a45d14d5d2f8fc4fad3f6b46185061640262ec055251638f1fca79f6b6cb7b3044bbee389f9c56b706bd8c082484909c5dd39809961115d81eded1fce00af99f7398cae9bd0c51b48ba99a5110b85a501b0c5193e80116746bc999d041e4fa9d61b4272a1618842d0fb1a35eed584abcc77bd5f4672bf85d78bfcb20601c1fe74b3d3cdc809f50e11c0e338473186ea6c6bfef3c4b10016e7fb472591820d3d2a9a3f8844f39f1585c07338216bb04c02236b10dc535ad105b729a6b60398d8ea5fa849ee61b6fd5426108461974f1248006e14ca1f072eb47942be880e191c0c61f8f1bec4bd8263fd23c55de3c6fda2ae6cf0809bf12e654fed5d09e8b150bf2195356fd61162f014e9d38ea544d4ceb61f9a4c927080357810e353c81e6535a42ecc4cdd0dd255eec4ac0bcfc20d1d74e05821dc7a22dd411d67f9a506346e1778d278ac08b57a26dbece2d80", + "59bca259a6bef59bdae87b13cc272cb46aa089c9c67f80793041ab2681a25d313a0c640be92a8a469ea6958d9e87a53385a7a5af808b567249abd21c36e9b844afd086e38efec4cfc0282f1adb49", + "01d1358b10a4d0a201b4a46d9db234cc1be86ff283193c6bcb680685f3819c122d2f67bde30f099ce66676f4e952818753c8bddf8b5b8d0c9c5b821dd3b83780b8ea4fa8baedea1f01183d502027dc45c4781487bfa32ca2b5d4ddc0d8abc739fec2965bbdf6fe7df37cd4978e482ae1147eb288d1d01ff9c610d6325a56a5f3ea640db7c8dfebd991fa73909a0a7606f5b2d815a31c4b5b64124129b66830393e8be32fe7a298ad3c59c1ed72520abac9eace8ba58fe9f493af325ec7434565fdb1f3b0e3171e5c6abae6561ddd1083578a13003229fd57743f3e836a04d81709d0b2dfdb87771e166cf0af4d0819e09a03b3f97c9dddbe52d7be7fcb75015c22be9efb7c84f9d2be2e799ac661d39cafe05e4e69247a3b1bd6a45ed68eecbc0d1429ed056b02cf09b28f799964e012b35bf6fbb5022abcf215b13083006db7d80d2b0d29edf119f781b26f13692d50a5d32cedcbb759de40ee2d96ab0787f693ab9de8ef54ac1019a477c350bf7b0667bda2843fe0b07df218dcc1b453050e8970c1631b282ce7cf92dd7bb4e463f34557226ae886dd5ba5c08fd496f66a6c1d89", + "280a1135fbdab4249735131139439466a7be49db3c8be694b58a5c52f29e836ac1c991fe0cc4557fb3478ef8cb1068909683791f18b0d6bf996f709e9568ccc76f4dbbf562359b30c34fc1cb8e6f" + }, + { /* i=56 cDividendBits=1477 cDivisorBits=550 */ + "0a17218513c82ea6b569e06021c0dd812876305da43ac6e14984ad49e35b29626ea439563fcba8af6531f4b5376446ecb2b151bb1e9b4cafa6cfe47a426d5c4432661abe38b11111cd54fc16f3b606049b15baea0ed24ffa76e2ae5fa059c2893f59210943866f4da9639d09fa9ecefe357e02433a47d8a6d977d3805ed9c71f90d8a7600ccb3bbc3b5d01b19a8c9dd257ab3468baaa40e16ae01c03db146cf6b62c053c5b8efb2c98ceffcb5624a65209bbfc6360fccdddd1", + "2c1ede6f98e44d057efaed4e1fde95721ca400cb6849744572f366fe26d70b42440d3469bb6239d854880bc6bdb8d1d0d3bac9a6ad617f13c7b1c67ef21f2afe4cf20c53e6", + "3a8c0d035f7a8593f898125c679ef3f3b034f2b086da127abc32dc815fb18a4e0ef680fe5ecce8f91b00667e19fb219137282e64c2f86d98985cb6d2ea629e0bd468a895ec7f1c056f765562f889e38f491c523b6ab33bda31cacbe228fe99693710df94402db4f76a1002b65159f7ae5c19b177", + "07742c3fae394ca5f859427d8ced83fc256c7ce4411f211d77856c60468d8802de43c72fa3f843eb15ec02bfb57efdd16616d80fbe22873585c70cd52aae62f893199ad7e7" + }, + { /* i=57 cDividendBits=2654 cDivisorBits=771 */ + "3986156818175cebb95ee10b443d1d86e2fb61293d73f14178505516a75d11bdf6b456db9b925f2dc76a5af511ba18fc61e95d1b556dd1bcc022d7a249e5a5520cc7f3aefa7d354ab718ae091c215576d0197cc31c57dca76bdfbc6737a16df567343c1d0497404403c53d23d46c0e5ecc94eb2a0479e6f21f62925b59a35f30760945c5e95b675c3ea7e7f29d4f9b0fc49f68099aef49a93a96e7d7977b122b19c4ddd94f75b5e0489d4f6b313e1386eb45d771e7af443bd757d1f67256ed92da78fa064b82b34b583bb03ef05530784c86d498a33456c76b00de0422f4f0b04275c36b8b7c6fa6ac91fb88eea9512e275b29d67281fcb5f7daca86a8ea2eef1e28b736330308c0bddb70561c30b5e9d0f3a919824cc83db4f068537eee4c2221422988fd08133667fac3eceea310c5f8fb40406d8124906f93e4ac570e9793f002e3d1b7e70e14fb52db9c", + "026e89a99263a45c47afcfd6a3d6a25f8c91201dfdfa07ee1bb051a57ca219e1df44e9b716737e62abb6373a1c879d1913125ea9ed06e56ea7faa9f1627d71ac74cb9e5527c2ab24518e8005fde3989b608270f3c3874af3e51d48c0a50eb088b8", + "17a7a929b742c73a15a0ac991988563f7862f68f55c75804358e3fe0124ed6d7c6332b98f588b1d59073d93f2912dbd28a10f24b48a3eeeede6ef034aef9f1e79b3d8fa67463b4946fdd9f8e18861121808ed1287a65f9fd39cc527754c234ca427acccdc0feccde3dc3b18b9731d88e598adc31e9e20a6712dfbb569129cb00c0e24b3649328dd72f07513f4152ea01543c59e3ca99b3d03915a1ff41595f143f7432b3c5ea82a9a497c255c941132e6b2f7af1ce48e8d62229db3a0c93467e68d991b1e8969dbfdebc63005fa96bd7a2889d731c86544ba608806b9a64aeb778bbe3d31be6a1417300b16a", + "022fb75871840b430610a9650540a9faeef211fa73f14faae3fe5a1f43b4b34e453978941cd8ec7023d7d8b47863bbd68dc4ef35dd55eb3d241eb99b7b6c101306e2948fe48d5e23ac97ea5ff219281de34c626199bb946e5626dd6e722fb3076c" + }, + { /* i=58 cDividendBits=1890 cDivisorBits=30 */ + "028a95c305ea845b75f492305397ff5bb25f44e7e605c1f6fefee719082a5858d0e22b3a28eb4fd1897e1c23f3e9931bb2e3533fa8ecc007b6d7d0c39adaf6fae64190455ae1517e3b599d2b05827761be81f982ee571e66828d3d914cfbd23806b6e0e7c47b5ed66ff3b1d8e6d4026299adfae8361da7c49d2ba732d200394f10577472299cb2d0d4387fb3af12df5112a71fb7f12c3969894e4b2782eb7f19df361e3d7a066cd1b5a3c19f2992d50a96024218a708d3a8e1e14cddabb44461298008469b412a74a181a2dd547214d170f941d56c7514e13770b82c5da66a7bfaecf99a64ef5d267e41b6e4d4", + "05573d6f", + "79d0883e2e2fa3e0c5c01131dadb67d894103d64a17534a27baad32fe639709b76695c15676d58b2d57f1b2c11d8703f8a4d7b74776135b5126c97743c69d7d3cab96c7b27e07640f45d083898844eab9d4d75782f1b8a7dc5fcca1b61e14ab402bbaf129cc037eea2d8f7af0c877da31cc5a1ec4e7e258d4d1992e055c93dc8a2b657ac69bbceca8960a8ef50d37be7bc3ddf260c6f6adb35225ab16c691f6d64a4f41d46e6c2f22a9be5b2241aa129c5d69564d36f2835f4042e6b4655ca4b7d28c5e00e6a88851c0a0354b46d628828a7a0d6b28113dcbe8cd6a5d126b7e9c60b6ed3b92f6bd96b", + "04c8206f" + }, + { /* i=59 cDividendBits=1672 cDivisorBits=509 */ + "1b55bb8a9daf055fd9ba7062cddd96d81838846bc293624fd82445f549c5475fd7c568c2c97069370eff83c77320022523dd4c5f3a8d8e12bcad1fffa3d1d79953f0492e8730b0922cf8c25fe33b8a81127544f5bab7f667f5d9b034687e99fb9bd9931b53314b5c3743f488acbc197223430ff6a646e3a9c54b445b15eb9e8b9db5ce3977de451ca3f3d36c731d06543e946a3259aead2e8561da3b8283d4e7a8d67ecd20364b40f8caa985ec484673a37cba01f3f3111d5bda3d781fb478ac82021f3c4093b627a10fcdc16ca2cf43b1", + "1147e3027dfd3e9eabc95ab92f1694a6c9e264d35c5cac5ba0496fc1795c2686670ae61751cee43ff3bc87cf84dcfcaf2c35cb0ba78090676a453a75a774f1f2", + "0194f14465eaccdce6a148dc8473661ec6fa1a88216805832ba0d7d97c1f33b4f408c1f988119916f0fb62e72daf15e8cc9cc6b827accd49a69e7b74de7428347ad44e8a02316a89ace75c48be75ca417a784aa92062c1f429c17f14ad021df76fc5e0dd0f0856851173e4083a403fedf124f6fdd00be81815e715c67dc66be190fb6f6cb8606dc6647833d9330f3e291b90", + "0d4e35913746acda21bd61a586db0a23f317dbbcc50d9c3b7e259e9d74fb4bb029afac00f123675ef2624a828553334dac738e2144922efbb81cef13bfc0a591" + }, + { /* i=60 cDividendBits=1811 cDivisorBits=112 */ + "0290b093609574ea650f388ec5c2f944389da78368ab2a60294c64c5a9ec8ea102ca50e7af22817cb1f91c22af20270a6dd6ff85775f1eb2f47e1d6a876e3f1ff206a8fe68160b77ee5728e8d3cc51ccc77d911b1284d0fbabc7d0392968414e7ea2e2dd2ed27093df3eaf61b781ae88e380d662e7ef48eec1422ff48d5ce4c1d9ce73577058ff36383840376d90d0ae58fd774f5a6c6c71bb48532b822b05aaf2e838b5297f96a67f0f4c79385620d41daed776fcccaeacc7136fd3f2a29fd428cd8cac7a6c394cb7797548435c3750a187888a6ffe16597dbc01738c8bc1ee723f4f", + "5af0681368c694a9e6c05d74171b", + "0738a0db15dc33316d20c3ccfe3c3b7d533e4057ac890edb31138f311b8805b98ae261b90e9ad771ccaf4815d936946facd1e618161740550927df89607cf0728ee2f7994fa411bc179c2e645ef30841049edf2fc3853252d386e7b04a65581631e563b69e80876cd346430d3c24c5c42e6b9700321298bc18405417e5042972fd0da6442d98220be08b65b13ad6ee6bbc25e9f6fae93709876d8026f7f8b37ba2f521b1998ffb7746e486a690b507c350c07a40617f03088ad5ca8b0ea333a7d35364c0e092eb5690202ab50dc37453cbd5036156", + "191987b2cd91983f60bad060413d" + }, + { /* i=61 cDividendBits=1394 cDivisorBits=105 */ + "039c6361446ce5bef0fb6abad1a483082dafbb3e5d6a1db04df3b09fd25b423c8ea089251c3a2285e08fc4ce2b06783a242d55cf1af84471b248d92e8fb2bccdddbf4bfcbbcd3d271a72273673c247c14be96f3e82ca168c14ce7c33ea681dd9000a165044087d4891dd19da6445cc738e74e510b534d189ba20ec407de5b7901760d1b41f9a50957bdfb32e77982c4aa79027a6dbf14c23c0e19678602a786af5cd6736490f02d432fe849a73d907", + "011c21ac928b6792ddb5a4610e26", + "0340dd96c4d169b04341bb876e65ae16a0e73dd68954593935b42fa8d352a9565650c760341cc4d4b144fd4e83c92f9072abe5246cabe0e2c1cd01cdba2cd7f39008125caf8d49f21fad75688b35ba89f11f099e4ac74aaa1c42ea9c5f37c784e668f907e89ea09f9113d3a27f85af8f144c9f828dce15056c7e850dbb89ac07551a48bd950ce3752bfc5f112f15bd3dd24e1054db229ae82513f05499dd3027f2b3", + "16eebf11b38fb818e0a36d0875" + }, + { /* i=62 cDividendBits=1791 cDivisorBits=456 */ + "4490529cf759850cb9c41f367350a129efdb171a086255ab8a7269c6bab2ec8c70751bae2e2e2758717298f88b2de5c78fcd0d9ce946705554965b2aa1511769d171e6a019e9156e4b74dd542f9b62240bcc2f264ccb7cd560b6146fe762c1913bf07e103036e0a00fc81eb309a11951373e3473d476f841f74119abacd9c37accb19e092eedc3e7e6b1140ee2353e8e5832d372793e5b23f93868c6faf754d6796b59e8fe465239367f421c38539aeb6821873d5e22f8ae4cb1cef6cfdb117a6be1c3ac825c8ebb9dd893f861e6b3ba71d14dc076c75c20dc123488ffe4fa11", + "b9a515d908bb234cc2ebd8b9086fe8205c3605b6e79f3e21a1ca2759ba33d8413995c8a30d8ee651be12eea5ca14a9aba22129c73ba88b972a", + "5e8c3fdc38d29d0b150dcfb79adc6d5d7553cbefdee20f9270bd4d602cf9826324e4bb5a574b0e1d6be09c824e59d9d2e2e715c07502bd905089abad4d3203f0861852b9f0a036d177d21ae8971b695c233094801b18bd4e8b887b4c12f95c537ee791f104d8507ad7f07b6336b7f3d22d05cd0413ddd6c1fb076439496238ef92fdfba004bc18ad224d9a6c2451f0a082e4d8d5e54d2ed0a4d82413519c34e33984497dd33c09", + "3a3ca7746e17f460e4e25324ee74fa525ce14157d31fc91cd6b94bcfe25ba8e9a9759a2b40cfd42c102d0ebcd6a06a5e9f56611841f0d197" + }, + { /* i=63 cDividendBits=2984 cDivisorBits=599 */ + "9191e0f165fafbebd9e9d110c4bd471c0463a7e96d1c0a4dacf01e9e6419b3b8725e651b6c798e6a5035d8397e2020d4e352404081709b6e237c6b966ca295cfa77ea7ab012bab3fa83cf59d3d6fa2a77e6e3a155c35359bff6f9486a0fa25a49a1f69f0ad9c99ebeeee1b57041f28733145b9c9ad683d8ea0ae7477edef95cd869253d4c51cd0486ec9107253ac67dbaccabab3ecc59037aef1d50c17205af84cab050f18194e50d0eb839da13f0bb66ce6688e33af20511db91658cd66da12da39ef5559134fbd21aac284d2b83ee6ae7553fd62143be00367b6a1eb27d2627158b3860bbe1004e488e74a879172c7ab0e7c01515ec7e9a0157b4fad4df9e32e2097a8b2cc5b82be371ef45fcc5cc728737bea1564d11dd4e22ebb5d55ca40f89dcaecf57ee8b1e11c57c97da15be2d03348773ef855ae80c32471a980db302f4a8a95f2d2309a7db03a9c089108e9b84c0756a6a350c62c302a477700e917683194ee7e7731e127ca8759f70e904dd071fff17d", + "38d8c632b40cc4edd67c7576fdcbde0a5f50e110d6beafad2262149cc864a2389cbf8c4cf1ac76e1b8bad25866fd9e6984fe517f22ec330e8cb23ab1213176e325fc6546b5e40e51577176", + "028f8cb0eb4983a7fd6cb2636adb6e6933d1b097d4bff784e8d23695f14b0a961f88fa56eb4476c51e5663894d01b66c98cc53b9a9fcb653a767d0716f484ac97be29c7e29a0c7904c7963c9adb33f352de810e28e031ec57bda0b6bcd9c11f6e446e96279f6c4582bc76c859fac158a9674425d27760a40a9a6ac012f752069099826198e6db10d4d3a75bb498fd2ec7ca89936f99331172200db5c9eeb51154b3c3c076223ea74721ab563951e7e1fa7e2dd743c4903cfa344b8db7d2a04e81d9fc1b6d9a8621d1ef71cd57a23f5bd363c86cf4d51690e979f6adf98f6b10ecda11f9176dc3bd5c5346c44ba8e40ca8c7ec74e0a24214ecd8dcdbff1e6f4e15ef8dc3874d073001c40948616efe52f982fa5e28b847918f2a78f8b664ebbf318a017634ebc794c0ec5bb", + "1f9919142db0b71c5c99f9a04ef96a16f7c32942118941c8bbf081587888e0f4eb7c899bf013d2ab39d7e24e7ac197d9a2ebc06443ff80865fff34dd8c1ae123ec554bd8aa0185805c424b" + }, + { /* i=64 cDividendBits=2298 cDivisorBits=1648 */ + "01fb705c41448b7e27e369a6fc31d273278311e07490f6daafb35f4bf88f302f9529e566a804b0b80a115315c38164eff8559908c1cb1546d2b9566407a486412e7f109738473c37437c5ab3f3baf23cb42a19cfd1284ec513be29af042f7b31c0c8fcca1ad00da4d302ad2cfd157b5de6cd486caf28a68d602837a63c5d83b414f92f6c5ce750bd5ee827bd685928c2860bf8e35d8388e3d51472c50778c3d4c0ec75de2b5e5a05b5ba7f4b1da9e305cc72710ee4917a19af7f14a013e2b9f549b0abe07a181730a90614fd3e79cb963c888facc156e78e018d81bd8b5933dbd8e77371aee9849fe2aaefee4ab9049729f48b88710683cbfb8ab5e54c6b2a05ccf8de56949df443f60f8a333f3119c797096f7de720362059b015001f66ff78", + "4fb0b98cfb5f596bba8b2f58236b4b4a4eb9a30d8221058ff7c6cfecbdad97a689d7e0e099d6da498fe7c0df5ada8aa114cbb6d9a3db89e29cb6db5a562237d9cfb02f6fc0d301812ff4b44041615858199a4194d55d3fe74a9c9c5d9ffbbf60dec4e306fca09a1450b3168c4cfff20eb8cff99a84d143e14d6b50aa3889b7ae0e78025ef24326d56c3a6b4fee27c1a230a2b353a49d41c39837787793ee38389b315c972663c1992f3b67894a5e44bd6144916c7138357d4acad9b02420bac95984ef779cc744879cda711e261e", + "065e1d4c740c72aa8d6f16529210db6a45382198b1164d998bd0f08c38246044f91aa6993a3450489d1724d56ee74144588714f66d7d2663c725df58d9e619f0849e7358029f99f69541d13f853ee910bc31", + "2617ff687c8d18b82ad364f945effa372974e60700741a5c164afbb6abea7628d28b849795746a5db2dacb44201a9048d048d1db2a3d23fdec4cea39a01839dd095c10a2aa51f4b92d60fbe00508c1076b6a644539c515aadd3f2037471da9ea5f4e39fe9d62734a6155ab3bd01405544aaf5e933cb0ae81aea529cb52d85bdf401ecd94571b2ab484cba36b97ca6952034933c94e94ff0ffea9d6b2c216cb39f06244fb490e22c665f0ef48f95dfd47a8370da1f371615c02c7e999a6254c832d0a3f29169817725046a4c3abba" + }, + { /* i=65 cDividendBits=2320 cDivisorBits=184 */ + "04e4dd3bf961b19ec669cc8f334b258024a76606b90cf5cd5d2d72bd71433e0107177ea353672a74378aebd87dd41b487aa2828998aec12e71d5da3280b4337f733d6a385fb316c3f8b076aed0e9ae6dbf45cafcd52b3343713c2b46657dea22eed987c5d37ccc2ba4a2d3320b654709dc225d40a607f5af13ae088d21a21dd4b8a21ea76f8c7f4c0883acbaa8024f41a7bdebaee5d2a22c3b4fde265aa137405377444f19dfc7f8a2282477f9f82d227d653eaa2c4bb7afa00613d0cbb667e78f779123d189ddc657e55212cd6c26077cbe6d9ddaeee357c1934cafd2d7ec2da151add6ce9e32e5ac15c7b782133a531afb91de619ca31d5a9af324ac4faf5105ef75ac4326f7c8d43ac6ee8010d1b3cc3f976dcb4b2367c5e133aedd5c966f26ba", + "4c9f68405113754441d26f612f01624f7f077c1365c567", + "1059e0d9ef423af064aa5e5e48727e4f258ad3ad8e78d2ef05cd22f2c2c52908d5cb81f298b06143058620961f1016aabab9074ffa904f22c5ff44403a490e7e2245f4572d88b4f1ca9a11deddd87fde10357b49b7cc7fe863c8133bdc3823e8a0b09ce8f083299ab51d0c7be8f5d48b6e84ef578e7ae4b438c23ed2000169a66146ca2f3b43221919a3a0ad44ed2b35b7248841e88f79f4f1f6187d9099976c0cb89449332b3ff09d3cb62cfbfe3c0a68f91c04310ee6384f6962087ef36ec03b134dfe029324224699216fcf577333cd59c20a940975d0084db14bdba4e6baa5824afff8bc5d6ba9551edba0daa7cb48dffced9187f1e436042fbd86680ca2b68fb7918e3ab589b08235", + "416824e983d078b1e673f9ef4679cf15169a640e4efa67" + }, + { /* i=66 cDividendBits=3889 cDivisorBits=388 */ + "01909167a6dea59d288aba0413525071bb4a2273af6331c10916a5f8b9da381018c300c9fe41777b87d77aa854584a5331d03cbf91dfa9c8495d0d260b0516bad9cfc95911c6aca64b0064fdc040ac586829a26e87ae92080addcf985c156b4bc7ba5b8aeb38666db703e7489e19c9a2f272e318c4cd405728f2f7fd9e50c6068800a98c93d952511d30f5ef60e45a3c1930f57340fa71bd7406b96726d8c8d7f01a3a19ccf3ef885867c0ae4c9aa0e9233588995ece24e1f71d6479ac0e1e890f67432d87ebfdb5825c90ddb41f5aa5ca74a0f313bb099787cb1e6aee5e0a8228bc3fbe5f5943fb791006f3c76d1e41dfca6d3a88803ad9ad74f260f45e9d72cd62e2f373b379a479127c8d807130cfc7429f2a932912a4c750beb1eb5650a35efe7dfa2176349565ce57b6b27be686d7c22d03948b2ec7e76c113d0c66411b033ba0e54dd4da6cdbad0fbebef675c45ff75964da6243df388f2a230b2fe344788985edc0551a52fd7641b65cf19329ae430a95f4fea953de917768f6b2572bdadc597bcf2df5d1e98bcff66e0ac991360fdfc6de5075ae9c10023cb38e280bfbbfc4c6f00c8fdd4d5e05d23c2e0ed0dd21c21f42b233a2477609cb1a6cd18b6ac58f4554d066d83e4599dcf94baee71918ac1643ff13c42cb909620db4a3e24654a2642bf8ee", + "0d52d2c9b4b4979018fb4dd60a6edd4053a612f3ccbcafc8280e9a801418ff57d6f4cc0567ac933fa6baeaaeb6804f2c12", + "1e10909e8e33c046f4c1d5b298b4f2d80d333c004fec65ca06eca0152c25016221f59bd56d9185d42bc75124239a6055016435d2bf8c4b54493ffc7285ad63cd59d2f5371375d75ee3577716472aebcdc8fa7791d004128acc626d04b482778dd663cf11ebb6641116cd6d4e4578cef68e2a0241f452cb6f5d1f91f819d50d05022ec711e649a5fc9bd2b2b44b5aaf9907f60781fdc7d0d60a5dc02be59a2b486b4d3b591299fd77c43aff45b1a98aa849b1e5596a6cf35d3fe9330bc0f43997e96a4d9b264186b09d125be042d22ef3767c6b8ecb40ae79cf2aadfeada0f99fb991e026cf1057f5360fb422f5494809ed0f686d6a35c874118f4c54fae19573c4685678a81e576393d7083b56212ab887b7a49f3bf4f74338103d59e76734eaddd2440a2b4ee69a67f3f587a74b9f9e4ff17e8b706a9919006a0d3bb1e55122afd0573866ea328ac1a500de670c65be9f2a747b3fcb5d5b1c94e7c36e32d2d7fbe90f9ab35ec496ca3e68d3860f73756403677d5c6d0fe2d574143c997b1720c07d53094072d6d81c4d61d2da1136dc8e923e61718de2ae592aa8d1479747afd9a684a26cfbd8ad5f53d276e956dad53b5bf5fb4c49", + "031c9fbeec0ff45befa1c2e9049745b484698b0436cbf0a05c130f0cf044a594ce124200fdef01a9681979f14cdcdd0fcc" + }, + { /* i=67 cDividendBits=1524 cDivisorBits=298 */ + "08e3923f48086cc603f5db4781cab216ccb06c5b251168d5994fb7f618bfd845029cdc273b16039d4f80540147a3f22a1c2b350a479eee00118cfb42148ec3e306e0f38ac88edbbeb109c08c808d5f9a4caf2bd4184c724b7e993b77c0e2356db90e3586ffb251512a03bd153245e9046a309e3508407cf85a3784cffa7105440412ca6112909377ef2cf6d96f14c639cc4de3276140a8ce937bc7088d83b44a05297104640ddf7d2211fa334e323986923ac1bc14c3ba2bfa24c635621883", + "0328590d2093fdac6f44464ae2132bc6ca1c2ec206051cae5b8147b63b83c61d86594057171d", + "02d0a9aeae400cc2933e6ff6549459eca7e9e718d1c77340f4888fd6d4d00002b6837c7d0902e188c06d6965d2570a23b3b073435efa2df47cb7b8da146ebdfbd220d507b4d2d978ef09b421e86a6ca082a1f877d5a8f8d0f759a6df87707ac6ae520faae023738e09ffc873f665c4758fd69eafdc5a157efdbb0c7ba317258fee18e8c5ff0a8b62772c926514ab29c6c29597a806f00cec4ab4", + "21115b5d3eef4d70f3751c9c582f6ef8888396d462eea94f6763febd71aade22dd20bb761f" + }, + { /* i=68 cDividendBits=2292 cDivisorBits=895 */ + "062a7cdf78827518fccdf13bcee3c749968d4d0ae5e217d10a6db3e7f920d0e4c349952ea80d768186f96ff34049aff05e2bea7f19273e9b504cfb77bda90616ac4f433a55cd712be90ac0763fb1c582cd164bfe35ef74687a0d8a12a84783fe0bbaeb3c81bc53b864ccc938606d3836375e2eb19c4845e53c79140de1df49fc51045d86149c30d457729127a2891e6e9f080da505514d0e993c1d1e175cfefa244d4546eef773280b579abac950eeb0fdda5c5efa6de908ff59c1f711959a34bdbf3c43eb9327f731779274dec0f788733761dcdcb4e10efb7718019dbf8e563d0171e7ab37018ec40e47749ce52051bb33120cccc13f713feebd66232cdc7f501f6f08b25d1c9ade4afe7f484126b38d26a1111a418639cbef8f5fa0ca30", + "68c463e7fc6ec7b5cc783247364ce0d4bdf602bbf4b0c518ccffe6112d2f558e8e2b2642c5588ccf1a3f5de97310a63b1a47399770b31d28e15f1aae9e6bb23ed7420aa058db42bf23cdaded4d5de6e98ece94b7d118b3c89bc32b5fbaa8016940c60f15fc66fdce1d9bd06751424d36", + "0f110e9b2bd71fe6f6bf46ba69325f3515217e59ae087c7287f5e45b8002812dc6578949b4a950ee3f2b645cd648bc9df7bc3cac01e3c71bbe887f67df17410c72036046e1451b73cf7304c2f33fe5b7b5618a4c79b20aaa617a6f1d577b7c8d0df8ccf1ef8cf6c6c29a7ff0ac02bdd2620d21938d4b3e252fcfb023e8dc3f08444fa1f8099a2f6274eefcc158a670a6a881f923ffed82a7d69cdc17976b0d5cceb6fac92ee3c9ac7a3df22459ad01", + "538652a4234200c17abc04902436bdd572fb02b610b692d3f4105b07ceb476b1bd50f3f5e41953ae0b53e324545e05d73b4682e5bf04faa84f145e144c509d65d3ac40941399c3251f097d392d27dd8a680a26ad845cd9a16279e04addbb633baee578db8b5a5e552432df49d06afefa" + }, + { /* i=69 cDividendBits=580 cDivisorBits=85 */ + "0d0906b90062237decf12245e61666f3cbd9696b71067d28c609e96770d52a76d3f0495476cbf0aea6d884f7555e3afccf77b3f562261c6a79366912b67b4594b7fdb5cab455c0abd9", + "089bce5350d008c92eb2e5", + "0183a34dacfa9f419c721ba5e2f25c600c281a86b534510fdf52896480c55f82c42b003a70f04766a0087e87c4a3636c5b74bdcae14623ebd03d71af99b23c", + "063da2700a3b7a408e842d" + }, + { /* i=70 cDividendBits=1501 cDivisorBits=1173 */ + "11e7ae1c0adbb12bc4f25747785b8d4ca31e7abbf902568c511667f174bb3fdf013fcfebffb903947e82f8c66d5183a72c00b68c558a4766e89981d9dd17ae347fdfb2d5d117993193ef4d368151202233fe42b318eef8384ea7925587e61333492c8fb8cd5bd9930a7cf90d8fc159a0372666fd97b7f9543ae2e16d56d162ffd10e6ed7cffe0e67a395bf7bc769dde9248fd12ba940af5ed7baf579b4799db0a72f2ffefc56f8d94af79551feca4f147deff3d5716e8ce4152bd921", + "15918f5680b94a33748b7dc1f48b29994e95540eb4efafb5daf1702cdeeb6a3bc5f8da62e35ebb6d1c3664a4ab4aa6ad2ec37e3ea2011545cd54d9ca5ef0d9c3aca08a5873c600b8bf5468fb543422bfd1d7fcaaa0de7b1d529785095cb3bd5bbbdbdbef9285992e0ff78ea8c9a1e87917e4346eab836f69fbf7e933d4ea882f4ede78b77406546bf0580d9eb5336bb92b9885", + "d48433ac1b52e98e312c8a4768d4f0f1c4bf3d444230ff50a6c43773541b6e69c1ceda37b5a37c5641", + "02faa268dca0b8ed9cfc5df2f092ae549332ab313df135b68116dd0ad1cbebf6b079bf54bed8323f57b83c2d052076b4a50ac1f7a97cb15352566e80b89580809b38a5ac51ab91daf6f8edb32cdaa4a9c92201879dec9bd9b7faa3f9a1ef927552314b0928778fe35b3f453b2a0118e40b0fc2c474ae0635d8f9bae8cf7b4b6cffb6da5b84fadf5d35f87a96387211dc71715c" + }, + { /* i=71 cDividendBits=3723 cDivisorBits=3578 */ + "0506985fe0501368229248682b1787abdae656f8529dac118f8ae292c3c919c90d97f18a544be83016dc8863e2e516074198d735a81cfadea778128284eceeef4984d897f3574dc29cba15c500f7688da2b8012bdd1c5fa9d9d68e9d538d4b99ad4b35889374f9960fed2764bb9e8de350c47e54deba9190e92e02d398f91bc8c4179df32a2d3870915e3e98a335ffd1f9653977193a438f46b589a94975adc15487528c6b7c2808ff100ad175d641a240ad891e77a4eb67542272c4f92b368f39fb3b76f141f4231d3bb487351dbc9164c4b4ea2f1e9f6cda309001deb50a98ed760f1374227d92687321a9f02599cf2ad95c2fc6bf05af730a7a751f9051c5cc736a4b85371192b14d40197c824c3d4d288dbc3f9324c66ed28ecd1a15c7dd00ab48d58c6a294c3fba00496896d4509ca584cb117a02803898d88bf57de29f496415bd22cc0a0c6ca9739ed3d2e6653d758f6a2cf4332bfb3d772a919de514c390cbae6cdbf6ca176fb8026c708bfb3ca9f3ac43b64f604cd27bf1409d98b3c23d6ff9257016b81161a5c6f40a6e04423bc8079eb2a7d109c807404560ca857b64c081098c3152c40ee115da02c0fbdb197b929464917f88359cf1100fda9d6881b2efc3906199cd70b82729afc8069d29", + "01b4e93a48e57f77bb2ce6f7ddd87bff3008bf559b110f7e1406d6a28c70bcdfab9547a5cf7a9f3641febf12303f4ed5c3a780b124980a6b0465739c440e8eaabd0830c23e627e64aa68aa8a0f0b51c36f3bf7b7e068bc520fbdacd22ac0fa4cda6b41e05e2408d3c3ed334a2524646020cf7df8b11da859636e3f016e92395782f70e05dd74a474d2a969421f8c7582cd85ea664e19421abbfbdaa921e5971d486618b3a7d0f129daa5b687492859e4fa3f39c10249bfcd8e4956a3c1fc9e3316ed40ccd27b496ef8262c9dd684d5225b23eac577cc0b80789bdc09c5bebd2e8550fa0e33359e71b3ba041e42c359b6c510aee4423ade2807df637dbe95beb1f1b4dd458545822d070e5b9b81e4548dc455f1acff3623e084292e383b81befff39feaaf772f977f75b101a6e76510e507677455be7a29ac5578414619708c74b10314d1347da887f4bb71a389c03e819baad36ed21359e4380dd1ece993ca825f1e9d671a31941e86b6ed3712d51e6e380569bc36fb0fcdfc80f8027d5f0468fa2313f48e2c19f3a681f0010136c9d3b84f018dfc4629b4a4cc511351bd967bf0037318adaf380bedad9592b0cbb9a7583bc21a8fe160564388943149d1b5d9", + "02f1db59037c9c87e3340d827a8ae6970fe38d", + "012d455882b6b45882ce50b6c88b48c19e99bca49a5e310d1c2c6aade7b9e65e8a8fc39dd123a956624d6de332e85ea6469a1b79370317334b72654dc96a9ebca966694da9290c3a971755c686398cb86227db8264fd6363fc43e94a6c71ca782e75a57830aef5990c41dcfccaa7892ca86def4bbc71752d61f3e24ccc82019f0f1e0d3f26ff9787af4727572f9eb8a098b0124017de2fcc1f8e861cf686669754f545f0ca06305a2e0f5daa9d0f16188b5f7b1e0ef7a7a606132b9267c3f803e8be0a9fb183c22c7a100f534ba38620dfca28d00094a447ae4c15fb5de661bddd9c2d9b74cbaf0e8c05db2a282cbce7eb00619cdaa3ff216eff3c6cd25597e3ad703e1baedd78b86a632f0b2b083b2d5054569c34dcc8a2d4b286f8cff85895cc08e46a4bd838c78ce9d2b2bc68040f2f24c97d4ece3206a6ffa1276da7452d76dc0cfa9d5ea9be6ea1972e9a1176db261f65c7232ef151b11251324f5f653d6b24e33e4912730a32595081f5ffb16b521f325af7e45871cefbf1b82b4e4d0061ccf201862448397fafb65fde4eca27584dad6319fc6ca21ebe8aca4637ced5536fcd34df3918cf2b0b7b2d983b7fe4e492d57dc89509406f3d7592848f09a4" + }, + { /* i=72 cDividendBits=1740 cDivisorBits=1464 */ + "0b7318a56a5c165eeb4234e8afb379344a2f5cabd674eb33071fc67364e3f201530145d1ad060efa4db6c43d6d71a736f64eb2d6b92e5d6b40e7b22f4cbe8a11362295d82681367e3467ac0053e20927fb71a2fe54aadba4d91923254780b942efa38b91ed935abb5f4868ad2c5d620d813bfa84ff0bb12dc6a0429ad4a67143e87517777bf15716a995feed42a7d49c5d0a93571e5d7511fe5f13c37bf60a1a7d20ac21380ee5135dd0b1e079642529e492188a259b36fd6ec494a9961a4b783862869d21c685c80274ebf620681df15311fb7a7ce5a9f2898c", + "d969c590e1d4b93969a2958b266e872114c88267907170e632667f01108b1b4e7ff7d90857450905c5078d7d9ee3cf5dff1d4f9c67b54ea7650be1c0da3cda9238eaa4e596700bf3492db27cf4d69795e7de38ff2d5bee5625605d80579d5c274d7f644defd5c8f36f19a3bae24cb9ab052b1b8a325f174ac4b8c29ee658730ecd8581ad4e53493e9f5a00751718953eacdff88a9e4cc6aa17a59a0cd48ac2f33c2bb4724e549431ce4cf72b7ef469c9006a79ccbca5fc", + "0d7b4fd359a563d83550ded507b14d9062883ae412e8f7cea2d6a9ea30b5a755f59fd6", + "217e891aaec9dc371268d042a6419fd9051c25b1b0d3079f16cc02ac99105a404a5fd8fa33b999232736e800ca55c562ef2e7e8bf904fd19f04be3c6fa1415afe274d6eef3da7c0c9a5b6dfd903c40988044dfb9930c4e2dade58479f9f193c4a418cb466cf9e53e454c9d93b223a65137655b6292d95f9cc5c07952f2406f0e79014c7209e5f48f79a2657d333eb8e29e7aa0b070b423ea1c95458e66637b35147999a74e9e64bb4231f47bbe2c62f3c8cddfd2fc44e4" + }, + { /* i=73 cDividendBits=2095 cDivisorBits=516 */ + "5f489a6022df4d0e2ae5cef613031e191284b55d990ced4c13b503b4c05a6c168d06a7834739312ccb8410b86b66d425f719fa6b3c8563a9ecdfb8e563f5f20f0825d55c2b663649961550ade4becde3f8135c2fe88bd3a5604627190ecb8f1a53a78045c89d35674d21cbc015177b92c45a5481badc1b06ea007e6b5f245985fd3e0cafd71767c4eeb375587e2e8311d3d87755f70d8407f0423cf388b27ca2a3955078c50250be33846d3c86c137f50861b501ba0e1a909ca2fb4ca78751ea49caeb5f47bb69516cc6b8a6059403bf4e344c971dd0d0d73968d109c91ec04691986b1c28457d14973100b4bcc16d03401cd67135079f0db8694b31a7405fb7cdde6611a4a1", + "0ee9796f6a4d953316ec94beca5ac149354e82d203fb67cfd16da1b20a66880fafa96157391df328bbf10e37fa063973830a2acf4e9f3c611e1b398139cd811da8", + "0663c4e0050e2fcf19dffa4076707db3df1a2a46b38abadb86f22acbbaa826f09ee79d739312c855c7f4053913551c57b5113d4da9bd1c7f8592dde3f2c51e7fb9000f65e20a71ed527eb37d6e54d3d85443bb825cd8cbd04aa70d2bf470d1260766cd7e87bd23110bc99b9beb7a745232e0a0e3f1d4ec6abde7d154af812339eefbabcb0ebea26dadbfc31e012b51fa17958554e7c4fe091264f42ffa2ca44a0f4b7a3b60322590cd161efbde93346e43eac965c7becf861208992123c8918e661cc9317b8e", + "067c5ee3da7ab0d4d1fbd8b2cbcded6f8518b0d0c66bd10c92155503c64566b7b2ea74ee362760b3ad4ee5724b26da8b8e67498560fd148821ff3075b1ca0b7971" + }, + { /* i=74 cDividendBits=83 cDivisorBits=15 */ + "045ed718775544a6bfe8dc", + "2db0", + "187d2db64467c33647", + "1d0c" + }, + { /* i=75 cDividendBits=1578 cDivisorBits=512 */ + "03371c2c111ff4767df3e645a73cc93abe64d0d899f78d3d94375c93524160b2f614c0587d27694c424aa9dd15f6ec8e9009fb3f0a18a69d81c6f1f0911b461012d940682469a492c893794f30eda1826e9560ce15a8cd5c94ae752ae202301df3ff5c80f65cc3f371e2997ffd691a1a75f3e9e05960dfc4521802697d8b8beea4c941f02f1e843255b91e41a2b86c2949e22cb42b62d69b0cab62081a42b0d33d95cf0a5d7fd302b5e3b65be487aba5f851313dc9906293b94b945f7f84dda791f7db089345", + "1e611a843164286f6adcb92edaabeca2e30e6a37d6eb21e036726a26a9e0aba8180be7cd25b88edcb5e16c3bf81c2ba9f33fa3b998a3c5e3a4fa8661d4bafb9e", + "1b182c6d1e8186ca73c927c28b15c19b3260c92de8490f7fb0c56c86f9cb1af83964bb7f551bea7fc2ac09914fbefe6e9655f56db4f753621470c153a8471c3dbfa2f012dd24867c7f1c6e29921347d70988bcd6448515dd89cc562294f6b93314b993598f5ed47c0b75c26c53055aafd535842f45634850eb1b767fbaba4051be1c1c309b78", + "1b363ba402828f79bec7537714b2bdc8ad1b91154c620764aecc3305ca7bbb02d06bd37a59c3292012134e08cfb3858343bea045d6bb98cccb0e38727769f735" + }, + { /* i=76 cDividendBits=1196 cDivisorBits=820 */ + "0a34a7d7140c570bae975560c42bf2336bf89e8d98d900c17efd87a23154b60553c63251a3e985c9c57adacc9e87be5675e3f0284a92ca03bdcee739fffe48ee3f5a73d8f51542570267f495e10aa6e26a3a186a5770159db2bb8d4e994a94cbd89977f0aadcf9c7c6bd30975b08dc2a07e0d8ca8b3103dbc5378756a253980f69f397b5522ad024531bb42507be4c1985d48c14f8c1", + "0b5d38a8f674ab1e181f1afd6f9bdc5e0782a955356b72b994b92cfc3a25142751de7e71d9044283363c5ccba4f92241ac99a71913185caaf1cf7d4494bbf80b0da7a1d51322002b3b094e415218814fe29eb066299da379d2030c733fc330aa56e0ff6f09a575", + "e5e74471b28474efadd761c199299ba8bb4a1dda63b2a1c8798f062f35d8d06a00ce0f9de989e40f763b4d8db05866", + "022f4f82c72c3bfda9c73d651650ea0bb4c0291e9779010289e4f2481fd7290fcfde48972092e907eb132bfdd21980bfe72bef3706f149e596a16621b63e77413c9ff184b084ac97b0431fd3775c0cc1aa91f3f94d2c8298bb0a0988824e617268afeecbecd423" + }, + { /* i=77 cDividendBits=317 cDivisorBits=49 */ + "02f1ad396529211cfa2dcb6dd03374e0b417cc085a7b01e63fefe2a89d3f30abdabf02e8681370d7", + "01b08cf75351fe", + "01be0dfcebf3f2fdd0ba79633895867821152f371320ee96d4135591c0912b3e09c5", + "5beaa18f6a61" + }, + { /* i=78 cDividendBits=1137 cDivisorBits=969 */ + "537e21eaac46c15ead5e03bbc0a8fd67c712f28aabb4b42b0a4f25f9764e17cd9591dc5993fab7fdb208f439e999a1f0c7b4f19911bd5e22afaadc1d17bd6a8a3d84a3c46f705eae96c2f766daffc0c1acc6db29a48013a21363065ad241b8e8fa4d08c1eb71adf75af16f32eb7a2e3ee277cbdd78d115e493bf103ae42e11eec2c4b0b422096f28ab1fea757f5a", + "c3e7abed0bd1036cf79a143f8410e25944208b06e5dda925621c7fa51e295bb9fd19fc6d7328a3e434aa669382b04237ec6b880f60b632403b85130701b66d500f9402d9f96758a844704c5a17a103745cfa32bbd4838a551b808658bc3751438730a9446dcb2fbcabf9c7f21c70db0e3eeae4d5810c74a872", + "6d1ac6de46f2c54718f6d04143ec5af87654ba1549", + "903fdcb18ebc0b7d5263516eb08435fade9b1471d4407012886e3c4aeddd07e7b37b8ccb3d1124daaa5d7c1c5202dc0212e7d365422362c01adbd60639a559a1333589f8023f2dc736b757160a71e71b0b2d80e80913f47b76efbd382916eaf89da348ecbe21ce166bfda02f774631c6d32582caba008c1cd8" + }, + { /* i=79 cDividendBits=3316 cDivisorBits=2657 */ + "089cf882994cb90d9592b5e1e688b188443f1c89449565d27875d627b7a8b25ea5f9346fe5ac229dee8c4181039a3a663531913f44e96a1db3381cfe504059ba1d12ac7f7c9b122c17a6f758c85a3cdecfdb1910aa7bfa3dc3bbaf965ebafea877da16bdc7a573a12d0021d5914de71132ba7cd77cb7ce38964ae9d19d12e8ef6a9a6aa4f13f3e0e47eb0a76abe669f4860fa0dfa96bc4a5c22b1a04d8aec03a488b43b4b7c5cdb78a28f2c9a5f3bf5fbc06612fe9195d3a476818cbfd3786b0208a08e88641163f30799d9eb196cccbb0a581c610d362218c2aa194506a36cd54a4828e9179eec1a0f52596265bf5daf23276ae4ce97a7180fc28350ab55d39a8ee9ff472bac23304622811b264f3de636b90803f7b66be1db7525f1fbf4b97f93263bfec38603cc3b1ab31b2b0551de81840d137e24fc70d27426f3bb27de5b54f8097d39bb8e560ce55479784ebc61e89bfb46538f2231d758076f097351a35fb5e8e0cba26417cc6a200516f6d1eb875d2f00b1c858b84a985c2b428e28c252744e7efd50b34e9e25962855a5bd93a2483cc001ae29d2a3cc4c366217f", + "3b3a7f61eea6b2bd267c75d281cf468ed1d04988c155a5ba35dcae21ea99bda9a2de53e2e5e970fe1cd7a58a52b2bb0a7dd8247fd058d5bcc9366f28648c3dff4f353ccca16b4df732db256fface43537c5908fb9995e9c1e7d998610889a88288f7cdbfde188b22a7ab96a6e466d9e2ec5d462b5e9426d1b1ca800563d964c454782dcfa223aebc44c271df0dcaec1c2c2f92749e11db4019c70c626a9d10b3467ffa2aa3d819618bef2ce8c4845eeb6f9e9b1aeefd4091199b3108a8a3cdec5da905d0d109ec62d0c3a65bdc9b071c901c37e67f6d559d0a633e3395d1d2d1acd674067dc518276c4deec479c8a7a528599ef7eb3f8c4486b5100f2a53d46208a07d7406ea497196d38802fdbd1da01182fd3b9d750e59e962c70c5d041cdaea5f288c7130802b19d7b2703585da09fd460902c25c0a7d8df1ab7badb81d7cc23e954ffa2d3fb20a27e1ca", + "253a6b63fdf4712e8a85d3562878f57157fae8a9f6e7dd09bc0d72be603e120ea3ea11e3efce6d4535b4d099cb47267e57657a6a4ddab56e7bac56800c2be7ec69fc3ba3c2770b3a19464134e7e78a624b38e5", + "0bda4847ed3bcdb34c440bfb2f80c048dce6b1a639878283023e4ab59fdeb27323e70bb4c45b54e971cead3ce1b0253f960ef743abd979aeade182843a60d1378b861112733f6279564c9f3b4e6659bf67ffce8c50e738c22c46f6b7ff0be4a34c180ea71e92e90c92f219f7e9eab413d55d0cbfdda4313206af65d7dc39dc224e9bc5112f05815f4fe0c31f4fa4bbc6fcb72923feb920b691cea883919f6304e119af6cda0ef3a0da958a4c029951c7fe6fae4892d2b384053c7e345cf9ec6620af1d77b43bf508d4886ac66a393c69bc69e24153e80b457ed3a1bb96d3c31ffcad139ba7f0f6415cd1c0de91ee32656b1fbfd6a15c9cf7fbdec2a3fe40348eddaf08dfbcfc3b85d1021553bf9b6298acc2184f9515bd75fd1799655eb333964bb1df1f50b5b4a0ffaa5ce8bdaaf854a16cb1bc9e5e76df41c022b0786088975bfa9cb2e03215467a26f7cd" + }, + { /* i=80 cDividendBits=3051 cDivisorBits=1833 */ + "040586f41b4eef2a8742c56d250fac1221ba2ebea5453f24dc831892349f792fa071d48a71be7cd6704d2b68fcebf367cfb2f5b5de458a9fcb5138d4bbcc3477c2f1c548c85f775e688ee0734f0208b7d51079af68c9ed9b53b814ab75d609b5252086a9ff027f1121dd62caed2a09c60c5777105f75f587836499ae8f18d7c1524fa3097563adcf842e8977e174513fe2d4be5bf6103da8e19be3644ba5ab067822337d9c236e8ad898e0ea18c9e5b9e35239f77599274c773381b1d194945353c700f9c03036032b18524390a0a83fd0f7e362946c20ba9de8783693e00db2266ab8044fccf8b22f7b540bea8b9037fd39891256fe68ce532bd9afdb819e7ea1b4c95c537dbe5490171c16aa5abaa3135a04fa29df223aa4f0484e7384d1e15963c8a63e2da1bc9ce991395aeabb4e6b67de416df553e643bd5eaf15e12919b026510849da9a829a859c06ee4f23435da714db983d3d636c7e924f4464cefe2a54d0956553f44ec3677105b7caf29cdb7320e2ea43c5e4415d622f608c", + "a1002ca72d398f759d1a9a7eea6a218d7c39a2839e5923c636553dc6f453cd89463db88606ede4d43a14c24db74c1216b8682ef43c43ddcde521a82107053a5e129a7d5eeaf46fe6dd24e34414e0bad301af65d1627a05b59b1de1ea115cb7e31a2420008be7d9097437c80b3f56c06fbcafc4839343124aa0b295666466b54d353748ed37583860e6c7e8b57e3f13a2c8132d114b4c091b555e2f477a96a231ee29a5a73ad7188764a169db1c52abfd81bf7344c47a7c099bc83691c951e07227447173838e1ba2afa4b7f3496c83459d8a56117ab4d015a5662a2db73032dd87af153d45", + "066501552e34d73722cac57f471bba9f7a49e3f964faa9a04027156f4e495eadc837d309b73f5a40a876314255349b163db112a5011ab8d32e6b67c1e3c4aab45395a9a1ee3c2a3aa65da74fb747adb72851e6cc61ee5ee56bd52325ab3bd98db036f6ad073bf056ae02516aa0f5ced0af417f7ad10cfddf9b73c8a42a3b0e5ca6be527d218c20b840b6a1ac84ca59464832ce001674890e54", + "88542d9a62a31118dd389fc47150208958ff2c0b157e1e814e478ff142be1408d31314168e151d555cafdd8f16dde8771de71abc8bae1639d77b698a58d60327cf0358292e56f6d2fc86f07c7340bf34355e31aa24b783afd3c3673c15e464aadbfe6017680e3c6fb21af3a9be4a663b167a5e8fae272644a551ab25841b451047a51cdd82b4fcc81f753d55c341d940e5e88f57eee19a1f9e9aa3507716de44158d42da4ba37106368f23565c5b73849ba6a093fa30803c376e0aacac89bca581b40c3a4d093e3f31aa38b9058a14659e2d5e8f71af2e4a052034e1cb50ca8f35b7f07fe8" + }, + { /* i=81 cDividendBits=3960 cDivisorBits=422 */ + "93f43d75d639f060477b8b8aefa9a0dafe8fb6b2a3b5cce27bac49e8394c3c6f228d13ba3b0f46dc49481bb37031f378cf8b763e7a9364aed498ba976f97f43b070f096047b1cec5ce5898ea89b2782c9c46717fb0f87ae471b35714bef0b6a72738011fb50481adb5f8036cdc2de8146682ba3036edef1fd4a919aa24f23a7b06561786b70d01e6f38e7e242ec97839019a1a156bcea8d0074c1d040760118435b6f17b301a251763b0e82d53e41b0ee41e479b97c10cc998f7711694ab2883923d5a45971522a4e471acae805efa67a23ce4d016dfd53473981e7827fb5fbbb7c7553902652c1125af966c5012f7607bc4e4e38482f5b8e7ff279eecb8097aa2df09887786082ed8f3a499170c2c7d951a0f4f0ea5bd435a2677a82f93a44adf0e629e9087a94616aef6c9302a6de344e87e659809d55ae80bb6ec40cc143b587995e1e11188b6b5c996273b192b8053825e614e372ced8267163957d140b12969f2cd6af058a87badb7b01e6ff9a585c0eb67e95be887228cae4400b271f31f4849352cf550685c1709805f9c238818d3fb8f37e33ee2e5babee6639d304b74b7fac6e4e75a3c3afa69b5f7bb6c821d4f7b98379ef056e6cab5f9aee34a663d7c886fba63b1c7a0f34b81eea490f9ff165f4ba1d887c4331f8d453bde18750710036220949fe441fd013ddc9e11", + "06dc8866904c69c081312fa2d0789127b1e85da5aa576eb7bfc851d428e7fb746310605316e6bea45b64ac6a335b6a8208608452bd", + "1590255b521f5ff4827d3792d3f49a1dcf645431e666ee7b7aafd84c810ad21c24001563163505a0a62000aefcc33848be33e75caf586bbd16bcc9300c0d9127ea4e7c5dcdd102a0dc334c42bca9ede41bb6155cc0a065f12bed2d874a09863dd5f9387315ce3a219a00c065a18b924be82100d6c3eba77cc9c817f1a9af4a5e212292b5cafe535f894f0743a5e734fd0bae87a23c720d1613f09c2e46159f8d8335688ca69f5b29a6183b9492f2f64f975de064f1059aa96e0422e46461a16006bad75962e3333e419887bcff2c8add993ffff8d412d5ffb5cafe0d6084e5b7a578ae15d719ebdf7f1f61755bd19dc9ed68bd28745a1ead34e7fa7156f6d8e64cb06400bf6ba5ec0e74c5707717511e87d4638bf5cafb1a0b99aaaf9af5f628f38680bf62177aa4513add02aafca313a0d47037fb1f51e8f9f4f902822af11937a5968522e5070d51d75f054efeb65f58de633c166bf227e618ee9cc93857213ea1a6248344a3e370eed1f6131b22e7f56d9a36cb7fd901ad63e1b0ed5633b9c0bfe2c8ad1405d64727a06735fbcf849008761f4c0c2b7944474d53f5da260f67fa015292662e9c48493739c2ab6735d939d1230597fceac7c8bb", + "04d479c8a86e5a3babe6cb53edffbebe7b9b20c49c6f78a68288f34b2902ff3340c37d8dce76b6cc80a12beaaaa7628df249a58602" + }, + { /* i=82 cDividendBits=1554 cDivisorBits=949 */ + "038ad3a92a3c3caee0c21cbf62cbd70236fceadcdcaecec7095793d42895fd43b500d36cb2a1c964b3728e87b19766079fb72ce96dbf891930a81fb1741e9cc94673ab536e195743c18179e50d651e5c3341c0deea1edbcd736470b3ca11600ec3bd7e062ab82c5692534e283fa90df5b8c530e31ca8d0b8650e317d904010b565f82261dec54e3507a95cb4d9d54cf1ca84f8e2a44bfa831ad65cb45fd65697ef08a144fac150692a2e2030060799dccefda6c896eab8d44fad69346d19ae09d833fe", + "19477e6c66900b45fbff1b41e1c52f3aeb98dd454f3061d1de9986508d9e0bc4f15e31b23026f80e36584d4d66eb00ca2ae0511d1f38da1dc4090851ad309d79de37c50caf8ab0ad5475f7a75317034be08bb348857063f2afc6e7ffb9de1e70ab0e9c8aea9e6e02c31c7c140081f9875544c6ecc93a11", + "23df5203373918f31ff8c75f14fda8012aad3f0e19c44b948ed1e6d3963047f9815369822728cea38ddc0d1a42d1d9ab4d139569640c0324690ce54c010103e7399a4d1c100aabab38c43ad6", + "12681ca2b3ed6222f25643b61757355f8af6d4553565e878653b542ba17a67964f8b66c131792047ece787d3ba99224d9444790a20bcd50f19efa6374d0bbfd67aef340ab56611294a9d0aa96ca539def2593070ee0226db5e6f1a8bce381aabec0b8fef2fe620849342a5489f1e70ac9a169f5575cfc8" + }, + { /* i=83 cDividendBits=1387 cDivisorBits=1219 */ + "012c8882913d1ab40ac9871c4052b685e256fd8d3edd2aa5d72e09fcf1f186c2ecae7190e7a942c852aa87d14f5eb5ada2a69a92e2a3bfdd39fa7765cb54637c82f852129694ace82bc86bedc96333d3ebb3a17ce48b6a699d2f5402fa04b22953e55f88a055e6c2b83669057fd7f40fbb0a855b78b0743bab6e461efb954f305e3564b36c6dfed5c29e40311b950d9fbd28d4adeafccd7d7c84a18a110877f96e668e2b6983cc1a05469931b819", + "01b006339b05db73f50a816a39b86f213bdf03bb98992ade8fca40d8b4f9a741d041d918ab48bbd87836deeaadcf7a0e9419c3e9224aee98c6beb65ef6419f99d05e465aca20412ede94166f34dc948e0df807036ff8f6510396f24551b2af8e57662ec2154f2ea163eabc7f50a2abfa407b254ffd4739b321dea6edfe952d8d91225701cd19dcf115b577c234c64a35387e2d794c4e8a50fa", + "b215730fa955d9373fda6429472a01bb16b5290fa8", + "9f2affbde0d1bd602b35e989526b78765ea50c30eb78335f0c203006cb8605d92ea9c279c2ac082670d45de96780497db8651550d703b8bdb781eff23247078089215a57d31e67f61c5f2d8bc601f983e8fa6a8e109889d526c9fb53e0afb512b19858cc7d37fa524c92cc4bed86d60c43e664c31df2ce081bf74e5f8a01ea0f81ea44b2abc1fc81e419e8481a6927e9d562ffb539a3ee09" + }, + { /* i=84 cDividendBits=3351 cDivisorBits=1973 */ + "192323d933d0f8cf48d096363779926ece10c0ec1a44a7e9aa219eff114f523704f78337000d492fc23be796c47e201665da4dec9dbe7b885f29d5bffc7952906cdab0a9caf9bd5c88c5c614bc5468f2b8a09b68fc0687256f36ba4aed5558a3b9b852302ef71c553b818668c3a1178c2d060dc7150675266f7d13abc3f4582e7616e3637a14e60028877f199fab253163dee8c5e2f70c57e6df69764e48e2f460b48bd40fdc9ded2a78504b9c77d7e53353566451605a98ccda0486399805b6365c79b33fa9feb570fa35fff7797596fbdefa42def8f174e62a6d522446861352fada9ef2ddadc42baa021597ff1da8fed1eb06402b011a691b02dfe3b4b03ba6354d92a3754b25d77fb7d254bc1caf23bce26892932b0b227fdc0c311b0e77e223696d3997e9e5857553039adfccbb50f98d00ddf49a4741c01595fad29f1af7481a5226d5a77f65837f75615836f99b5cc470097fad5bce8ade92f99fcb772392c383fddb6fe87ce1fef528939a0e6997467443069db1197897c8b2a91660ede4fac190ed7167ae4af0daa7b1c264412553c17d00760c5b4b1a7bcac2f32f7d5852", + "1e219320e3b87d7abb65ad5e4f50cbe70f815a6310e51aea474bf11b761f21287a7f164438d0e99a3a74951ce4ff62a8ed8f01e1620bd6f4c0315ab4fabee91ff227ced9607e1acdc725a4814f1d203dd0949c2590d647454d38bbfeb03fad6565edb5b9c8bfa5f113764e7fd7f4374fb6b51fecab2d97313a6f82c941b060d83d687e304a459283974a078d8d111add7456e1e794a7468f9ecf93af90390d34c14c52a1a6354a5fe3c9ce523a8b94d612897e6210ba4cfd74da6fd48331f72f4bfd67153a7baa6e95bb5d7695a7b030d2fadd09320e5ac70a7d8ebe0797d72ccd4e1f9169b624cbb34f45b75dc1d99ed16a63254843d5", + "d5922ce6bc11dece26b908f71903832982766624f0813a1269464628c2cac928428f752e8cf5799ba900a99fe2c2f16ad571cee908629a423b38f9e1c12850aee1e4dc4d1523cde8d23bab3aa2493d591dec7e67ebccc3baa4d4327793a192df21e3f3e257a053e3c41f61e48dceb4b4e7932ebd5fd6901cb877f08bdaeaf531d10f657f661c60dc234db33b9dce7145a927d3374f2759c5bd5beb99f180ef9a1b5080ae683614dc9bf7985f", + "0c1aa600f53d912eb83b288616d974ee63550f07f04e5c2097f5524f34cdd30e7746636b373b5c257936b15e9d49d3cec7b13aa643ea6b0e4b417245a7ea218b3d4e6b759a1a67313642764c52a2ef7d7190757fb6649fe10ba7e79891efc05601fe2f66846742a306ca2537c91b452f5318ee9cf9bfed428d0261833b3002710a6872725ca5d80cb8dbff62ec2e99bf05030a81c0cfde33dfa796fcd1bd89fc8dc2c21b7d5beb49477913c1b212944fa73cfe5faa256b4119cbe54817d2e656b72b989ffd7c061d61352464ba24601866fac4dfb7997c19bebdd87a37cec4556cb8d9ef01ad3b1cb4852ad6671de40158c12e07e2b447" + }, + { /* i=85 cDividendBits=2836 cDivisorBits=2835 */ + "0b3b014ff82ce2c48f84dc10c02dd784e70b769f784cc5e7c654a7b9bafb2c4a95cf968331a82bbfad968d76940e3ad9e8c92f5861728b4b96d47a9ce3fdac6d32202393b03de1b7f788f989662047bb286ce3d3a53ba525bb419a73ac6274fd309bb3c979e75993728e4d95ed46842d59bfe03c16c743b6cc89613aa2c880d195e1cfb1d666613f92a975c2b675b2b235b13dda9aaff7e70643267177132a1468e870767b26139ebe4d7aac45654e241c25c0340f6a7e02b536d8be58a9df9120436b6188649eec1824a45cb3e8c9fe3a31a5cd8c364fd76bb8bee09b93d4b517cf8ed7513b5873366e1aee1ed23af4b47e17a41ac9abe24a5f604c28fe44b4f6810d3c5958393e72ca072066d87bc64c16fe13fe9e87f8b592c9b9e7f3a942927aa74a6099381a698eb99c10cf4f96c07d90d07e1b1f6d6549d4a30eb5cca67cfa9a62e91e8a4a0a1a4499683501cc0a0287f567675f6ca90c1e923e219501f3b848", + "35ff1834272f4aefd3f7770b624c36c952886759902deb809359d5c313f6863b1fe885d4d6798ae1dc311aa735e40a36ca70f9068ff539b3cecd4c9ffdc798ce85c45411b66f66bee382e5bac1f0cd11dc34db79e6006857edc800573b4156e6e832d37a55aa3bf63439517c44baf9266df98005601031a3c04271638f567b3c665091b993755e393b1fce7eebb739ef80ddd52eff7dd1e9b0a20bde4c3280adb3b6cd1c2719bfc59fd1afa7866a55e12772db042d4de11a017d3a1ddbae15bd67971e208a4c4ab7b664b3efe27365c6af9be6177430abb52a8961c33a0dd63fdedbf888d65641d0186a883ff398a0ddc42c81a76180d4455b089ad3ac541688517b8c2425fb2fb8db4a84a3b48698b9303a40fbb18784f81f59f9d987f63f19bb44e71a68799dba43aca3d55e5acd2f791e185e2ea7351a6c98445019ee5b042370417e4675d1888c66bed83e850ec0b74f86a5aacf470396117e66e99cbf5d4902", + "35", + "0d314d2c101840e8a2a06b64d4102d38f53939ed73442627d30e7857d92280583472ce214101feeb0062f1f5e604bc90dfcbca05a4c6595d03f9bfc47359ca706e7e2c0578d172726edff9bbf96d4675d5f263689d8f8b870732619d1dedff62892e01262b1b2979be6fb7330bce9864fb38baf9e3e96fe5bb9fc1061b994e14b321866adf14bdb96be0026fa8c3b3a00350b7dfcaeb71a4b199fc714cb57072b397ffa70dbeead437114e96914a5c7efaf8dc32095e6852e7ebb62a2ed510e9d12224cbc2d3740f61cb1c0a06e5ec17d65f2ab1283c4ae9ea4da3308ef759deac0462fcdb7cd321600cb8e163a1a6cae0e0cc7399ffefee86983e5650dc0abda27938dd7b385d2d6399aa82789e27f51aee9fe2dd7971571528ffdecdae323eb56371e8f80a72d98bfbb0e446831bec6a55c4fe72816eecce4e7e795773cea1a45cd3c48825e8c508ff16a34375be240f11151b0a75b8eafa7f66efc42163a39ade" + }, + { /* i=86 cDividendBits=1405 cDivisorBits=95 */ + "15d3e6ff38f62c1d54c5f6ea0416505186d6e41f3b8e6d637977e6b842679d771ac2dbf3b37e4380a5430361292343a722d05e9a08e298f6129af2c2a3a25104b3d8ed32a87377c1134b373f78cce10ac5dbd9c410d0ebfb32f0f9f4b118e8c6a65b8b64fe382a65438398d9f8e017045a620bb993ff79f18bccbd62d485ee0fa0b5f28b9bf94affa9a2e43a7203903f0c0ff0b913ad5dd550c6edbe591ffae3138293af60c40e9e971b1f91747e2c05", + "578e33f9496f9013561d7f56", + "3fd23f069011508ca02936d122b71f6fdb052820a152b57868ca7f81c8ba3c874b4f9d387b87a2e0a7b4ac9ab5668b0a03fe0a038c79be6a3318bb7a547ac424f9bcbcf91127fa92ae803f7bfdbc1d268b6b9cd8b95d03fefe090d356a36b6e724bbf4fc68d0e1a9bae2afb63386e67a551386c31f790159131fef85fe90ad63bdc79f74341658857817f5b5de1d51be0b1c4052f2b68602ff4fe9bef5d27f6dfd82cc0f", + "2545399c0d8e825f3f9f2dfb" + }, + { /* i=87 cDividendBits=1905 cDivisorBits=403 */ + "0140e041bd1f020e7b87631b0fc3f7556fd9e0822cfabd0533c9c6a414ed2e7208f41239ee813787bbed838c68ace9671059df56c280349af0e1266cbf002027b20a78bbb8447d936a9fe4d8d26030b58ee0cff62ac54e012ae416e8da772aacb950640820d193bcc306b2788647b1e8c6e4436f74b50559ef67899b45343dd2c80097d2f65249f568f1df5bde14e7250f8a6ece3e5fd7d7117e49b83b22d4b267822de2828114dc2a4947fdc38f0e69f1b25b926292d57ca1a028ee648ece536fbb0e4f1104264b90f2265905a70a97ffca92f109adc7d4fd19461415d07237ee19c245a1b0e789d1a190780b945e", + "02534f9cbcc41ebbc26d1651141eb459bb8847e4509a8a2b291e4d7832b87d58dac9e9790bb001b5ba7ad32662ae3daa30aa67", + "89fc46bc5effb1e0cb3f581b8e1edc39afe176143b7b5a5fc25a63a3f415f2e60ab9129dad3cf7c829d5e092bdfc05b1138685e196e2e43dc7c1d9876094541fdd147dadac93163b3dcf3bb3741b54ceeb2545da5a69247042bb99f5c02e57c852c3ac952df3f6658e8139593c9fd4841d0ec1427c87848cca55654de15a4435c20a2f19a76cb177ee9517d913e1e1a583ab2ed382c6218b5f3ef653931a39359dc07bc79d206c2e67ffbaf81f1050b47b2347b51a47e103002e6d6b", + "016ca8a99bb00d87a3c334a237f4b0f7ff9410b7064341327599a7f5117eb6c7e2112487ff842277041fa4ae66715ffea48051" + }, + { /* i=88 cDividendBits=2705 cDivisorBits=1513 */ + "01a08f87ba64661193978040fcc1ebb4db9850abab170f137be1760555f7f04c24f51010934fb5e466f75305cc70e0870ef9f9aa4ee1b75b353abc76e8986cc8179cc396a375e94d20615126323079e90cdd3df53eb4e65ec49aee53b913b0919fa7a39d44a13c3407964d6580a0d1e5177e78e8ec740491ecc0174e8d797cdc7bab437385cfea8e67fa671f83c01cea4a265d2106c1501567a32b92fc36d9b42949996cc2fd2c9b65d6e4dee2bc001422499f6245c48749f1cb3b25a56814a2e54f615ec05348e4839f8a3d6a9837ddc1d0392f3cc6d3bc021aebf265905138acc9d549b77d4fff997940543665c23cd4cabffd8c6c66295d2ed13c4f6667ca03245a86a07b296f9c5874940ef3ca8a3d11070c5c4ab8771d813ea18613cf15a84f5344e1b13d9057a311bf2d4801e64799e4ef97d55bf27eafe890f04432f0fff9db6db596facf05900aafe4547c0e9c982d", + "01f70fc6c54139378b3e2ce3f5361a8901e6354af2545ca28dda378b6d3ef003a8ea9f0539af2bc65e4c98c1ba74683fe3dabf561562d57a0a3329b6af0ecdc85e214fd628010ff7ea464696c2bc3a0c52839975eedbb18f892c2037ef55ea1b881ff95ec135333da22ca38f5cbeac4eac7165c5f357e2a7bb6e34308a22b44800e32c7dbf74ac5922f3c831829c0b2b6e33cea018e74dcf2b06362a0c2ea0e79bc7d94183e762963e705ae4b93557e552c19c130d6258fd61b7872b8767", + "d3fb25e03c683be226eb4c408e3de288a9a218316b69fe831a6950340bd52a3535b5995d7fab25ead547a0c870b73671936cdf26392168ea06821fb4e653fc860879b6a95ca5e3c5a595a09eba61252f09db0d553dcda4e65d303550cd1a8abbed9feb44c55b283417c7728c038c63407935368612320ce1107d62dc246d9850999f3ab8e6ad0e9b5933f13b2c76e9637d1f5b7b1f", + "01e36a17c7e71e889fa575adc84134297f7fbc256cbc4ffc48bf60c63e80da6d8d115d7ac475fc5c8611281092202902cc9e52978dd548d29c3761d9bd7f37ee5a7e7cf36ce467c2bb43d06aac750dddadf0fa818b2c314f9fd2428a45c5e7c6e1f8708fdba62fa30774d28e57e695267483af9768cb21b31006a37236c7a14d97102124e6bbe12420fbb8d317a43d50d439fe00097342c15b5c95e37b9d2ba915983404e5fa63709bea1280fcbe0becf399dd0a95daa94a0d272babb5b4" + }, + { /* i=89 cDividendBits=3223 cDivisorBits=2676 */ + "0e170f40aa6e4ad82045144cd041e51c9f1357c9973f318d8030451c0ebfbe3908af2c13800182559382ce166a8b0ec2f8cf6e4a33050d35cb9519ba538e3273314b2d56d8dc3d879431cce272a55348277991ab10cccfe48f977d0a9f360f618dfe212b6151785e60a1618eebe636cf4d700c8f6af94c58d067b7f2eb7973b38898104c330fb8cfaac2e9fd025531badc6cf197187dc29b108374fb436681c4c838d7b4f2a9deb773cc7262bf1f879f877548e0f939d97dcc9778fdffab741922cb84c136c9fc94056e45a4501490551cec7a7ab7eab5b36437bdd22385d0bc052dc169f8f95ce45633fbada9d1e76629958ff7980f6dad830041831e159c53b2dfd57007b82762e6430d7b38c4bbffa425c9fa6e812c522ea28b07cb1b82f63500b199825519d503a334971599faab0cd7c9af633fb3df53304f7a25e7a205ab55d44f80c723d83def9350a215facf7c6c06af69bfe837f23b2a78e40c6989853bf7ece5e93022890403edeede35ac96ec793019dae2b739e88e92c224c17bc319022482bdbc284e5e08a46e4d7112779e7c", + "01033bc0ba6893d0c3eb88cf38eccb9277335967a831cc399b3e487d063e370c8d966583cb64dd3747a57c8bbf02184b5194e88d85035c56b8bcff420264552447752aa84e383d995378cc29be16c166c5846d2fb63d8f0acb65b1061a95b672a10461ba1723e44a478feed2bcedb64ba743833cfcfc6e243e5e221f8e68437229ddaaa0a4b635213b838d2e30e1b56fcdf5d316f13c46075a4b76aafd2d838ed69303746ea3e5ae60ce4c05277d37ed82f2f833f4c3da559db1fd7dd8b46fa29b4d02a116bbbe90e1823d3d4ff467dd89416407f06afbf9cdc68c8c5912fa4beca4298ff229920f5c905705d26dc36c3af843c2996c83ed86525704ddd8d947530037a9ff75ad018ba96d9d6c8eaae499e5bd04c5a2386cf52d0eb49ced475f0c8d1817cef127a3542de0a9da651a664e6c274a8b4863c71a88a28bdd65f63c250c60f4df3298e0389fd559f7ac60", + "0dea11a00b715cd9de7b1ba246b9dd8dd88a38bcefa85aa2e1193a08d5f93b920fb9955a1297f35f6274d8e4614dce613d1079f073676a019ab758743072883de281964ac4", + "60f51e6aedb213177130bf3b513faba42e4fa03acc6024101990642895bda3ae441c5f8cb53302beea305a80fb034eddd3d41ee646239a7f66e5d7226b17b484b85f5c586e80b07d104177bcac6acc388abd3c0793f51de2b4eaa88898441bfdcc037f7af5f0619ee16d86630ccba554eae1d092c7ea6ce39e8fb2b1f74e1d1a7ff42c448a9db354eeebbf1b6d9d163898e49682e62d551f207a97020a05a67a35bc3e229b53d359d7cbae2bbc33c7f3568543e32bbbfc2e7dee4dd6a2854c855080b2b10c4ff612075a9a101105ef04fe952ca8e4b8cb4d47f8fe2f649c92ffd37725b99fcd5a31328c242e5f9588e7176c1b9eb404d05392829d069fb8c59df69f9cfebb44e99757aeb143091a0037f72884eca2944f706c19e9040a41124c5d2d80facbd8b196ab2f5760cb6a8628ea908ac34a37a0a5fc57f7e9cd64b7182beb2534ad54adceb05b38c3e4fc" + }, + { /* i=90 cDividendBits=3681 cDivisorBits=29 */ + "01253d822dba05b768d0fd291adbbddcfb6e847ed4059a223907320dc2d2f2a64d93508f4f2f4d6a6d21cd6f46045db7849e3390881693188cc5d8cc04322ec36b69a1b3b9e63715820c3022e79fc369a9fb698a61ad40e6ca72b605439ed742fdbb924a1240eb1a7260c411b953ac133fc9616b8e9f7f22942fb226e5ef5ea818de3d6d68fe41f2c3e3710676be3c34c1a30907eba577607fdb0f77cb6f8369b019988dc5dcfc94eddecb8d5775944a16adc5d56341574de25efb8ae12c318f5d7e4a1269649d9fb74b7efb118fd17d33b9f5fe5b52bfd1031a4241861c7f25d8c835a61ee6e01856b286c908e11278d64171b213609db0c7e4652b6402bb8b955846f318cd7b906ac97dc2957e426364534b296abca99ee73fdcbae2e0df9dcc8eb273531a88e8a2bfc613da46770030c80978e76a5d583683cefe434db2af385080bafa9170dea655f13f05f657c1a1feb54920f6630695e08553877658d48862d0efc102fc250a6d5c401d8a4d2991db274ed7185041a4f28a222a328e0d2b009e76442fc490806032fc3d3ce4dd9b2727554e7c070c96d17204a2dda0c8d23e4b017634b9696d9067b41656d1d36cdd932b19877ef953f85b35a4979e909930636fa24c569e74160f3051", + "01f9294b", + "949ae305924f695a93d460b69214c62349eb608ec05aff22ba7e3b43997a4df0ecaeed383dbe1fe13e0ae75691db7f8f66d6792f10ffca10761ef38e824890cb42bdd3c7eac934f937219b4f086aeabf2504df6ebf246b72dae9589719b1df0994e1e850069c704333c3b8a16a517e403956645549bab91127e90da06e59b7b611dfab8551f2b36569c45f5114f2de66d6a37fac0042e2f54f393d0b18c3c63fdeaffea78cb26b89919ea1d9816eef7993151e5f6800dc25f306d83fa30d9643a5fc48aecf7fd6274f507b27ac0b4f94de716d820e1c9e4fc5c13fb08fbeceea9408ba390a3b2e917054c0680a28bd416628a4918bf5ad14e243d589da88f3a4dabce481331f30624b510ef914448590e92a429460026baa7aaf778e1ae9879c592ed23923e35178b3be91d472ededf5d7ed2cf1ab979a713b054175bff490e3568167e012d177ef26467d79c5be4eafb8c85828a13af4cd007dd077bea76551ace3c604d99270f799e8b65edfe6677378d3f61caeb260438f3775c5bf4e4f5ffc72854e365626ecafd935b3744ce233e8f84d32e2393ce7d118a4f8828866c59ce9af6e54fdb4ebdace19559f0431c3819d373a9d1cb657e101bccdbc4073a4a4d2c88916a01af5ca", + "0151d423" + }, + { /* i=91 cDividendBits=2097 cDivisorBits=140 */ + "72050be74eeb8633dbeefc2f51e0aefd94caba7b55e9c66e04268e5cc4ffaf7ba4cc9d5b1ec808e7339dee5bd1db3c96fccb64f9d8cb6c535702188415f86aa613062b22b356835485d4c80d8e59848904ebc33cf7ae93ff101ecaf3dd42f7b1beac193dd4a3789a075e03c40af25ec3e776db13c048dc5c3b6111b90caf660854fb1061e80cafa6d4067342854f81274f64e575013478ce895edb5c2e27248a83136ce2e97851d2afb9acc796f6245951dff8aeb53d70ad24ff104cf9bbb8fdab0db09af5f914173c3e6efa10dce75151c4432670bddb3e44bd36a3c353f8a57df0286a5676f9eec3d9ee8577d7a9a4ab51e5d9bca4afd19766b2a60eda56362e537c1c10da", + "0ad7f9600ff10b787ee8019626f3b6846d40", + "0a83cf73d14e7ce12a3c5d9bc274962bbeb067c79ee4acffc618d95b64df982d03985cd491d0423555110b77ee42c68e16dcbef27bd3b5d756d94887118e50459952cd607323451f7f06ef5023392c7d1dace0e5e3fe28f1976cad19c8e195a2ca70b0433a6bd7874d36f28d40c8636267a34cdbb06f5866cc99285da31c99c1d436a577dc055eb038d58b5f94b7563e0d7d9bafcdf5ea38defedd9cd9f281db51bac83e7298f9835e4afcad73238f7f18e6354a4e124a95a5bdd798a8215a5e3457bb32cb9dff96b01095c3978c887310a1ec46d9054b5ca780c72029572810c175de89a4c53fbba481e39caf050b15af8641b8a8", + "081d557ca8b579e54acc5705dba5496e5eda" + }, + { /* i=92 cDividendBits=2301 cDivisorBits=1537 */ + "100233eb5cef08b5ee4b7141377b203aa3b7a9d574a47a695d622df991660c908d81010c6f2e5e6f7e8279cded7aa13920fc72078a642061b342a3f3cf3bbf0accfd7dfc6ed9d07b72ee6bf24e5fc66c010e1094bbaeff2dfcf95a2ad6ebdb259c013dbae811fc59744744d59605042acb930ed1aab2d717bbbeec2d102fcdbdc07771c91e0efbd8c425424468cae8dd96f062bdba36a53e1ae630cc361efb26652b0fcea5d977d9afb3cc49b0ba4f11926e9980f9d2b3b4bfcb5e1c32dbefc7603cb1b9d6902558aa99f41de0a2280a8ff624375b37543c4a16d1e3e8e9a2e03e1e562ac6afef69082eab9a19e3f1027be547d1da735765ec01e699bc55c3cd6c302b8b035f7cf1f37c7fd197d5e5a4718db2f086b8ab21a3ab14a5b6e93e7a", + "07435a8b31cbd4d589c10170d257d5391df2c321ab8f0c05020404deb0d93ba055777e48331984817ae83394a70f489acb9560d23f356403bea70ae3793f160c908cfd73556b7eb0d32a743fc3865eed8841dbdf9b76a73ec19ad490a16d5cfb4e65c3ccd263b57d2921913ae6ee52ec2c05b35f4e7a3346484a26f876bc0f41a59c91a72dd593cf223c0c854207b536307a3be13c4206c0f392410035b5c0a6aa7e5adf676495aad75f7f6af656f7835fdfd3bc4bddb9c283d6fbd4874f03a0", + "02343ff1f71a5730c685b762b4716a29d983b1f27372a43b261f6f285addb39943f17c64f50b96d1e9650e0b9751997d6e835b857f9abd587db80bed6147f7273657c4ca392ad4de3b3c47d6613374a4c196664666d7e00c538b4654223d9913c7", + "03ee682a4b451a28ae77f59d3f821c1290f94ec9f6672a4e91988c93e332f3b75c9d9011ae3b3ee64238b4770200fea1c0bfe293c0cad50b688c8abca11f51be627119ca01fb1b16e2f18b8eba5aae0d51e829c1cf9b3ae9c9bde42b3c61ef15ee948d42ab2b03bc580fe281c6b26ca5ea09620f31bc11b3341c3b5194f4f0055fbc3e89dc19bda21645ea92edf17e1675802d1f46168a02619dab645182536835a08d34c5482ed4518ee1e8e239eb0646bb1f5d4c5b0d93492adf0f60988d1a" + }, + { /* i=93 cDividendBits=3775 cDivisorBits=2224 */ + "3cd92fba9f3c57efc947ec450cba6f89148fe3c47c876f7b9359b2ac77e3465ce08ee0d80d8ee02f0912115a4b394005ac3b44bc3eba06d949585c0c841ae12c03cc5321eaa0a8236321e4bef0de6204356053e846960bb6923023367f0073ff694acafe23f77badc10091c46d1db07af554a8b4ac366040ffc170b56fa2d20220a5fffb1131f72064760e924cd7a80531d24079ee8127f734b0f05e8252a334b3523bf072432277eeda50c4d0a48278f5397e594e0f41133ea9a8863be7f068665e9ad4c49fe50987f9df6c2da01ac8a7b120609e079c6b4f9bbfb00ad177776318efe097b7479640a29e6981569feb0eaa520d40296e6d6455421b41ddf5784aa70a03b83a58e6848e2cafae8bdad15734bc41b7354cde1bada435d0c443e8f1f8378b5034cd3d498ea6d1b8953f1e914330214e1e2fb92c7e850394138b8048a5a04dab2cd6dd85086d6d8e4c864c2ec0739fc6b31b36a140952ffcdfd0587c4de3528bd07d190b01c213dd4482429c3f97cb61d43cad4d3d9c68d847469dcf40992d2f7b237e8c7ed2c25554f9c551b31af5c1e9f11b965507419a28bb57ecac996a6e375418a9c0397755ecdfa7ffa758711b9f6dd0edf3b32944f0e54fb84ed0a5f923e9eb39c084370f0af17d771c50b8e7d368a8", + "dc24377a32634ea55116adbeb9e77c406a7b4018f9d1bec92a3f0da33b08d3aee75247ee59dc241ad17ae38f1e7507f19c17bd9070fca556c6d989430aeabbff0e2ea9d80924f14e8b06967b72550452f368e563d570f3c2585821f213e89aee277a5d469faaa27d8d48f852919ed14a91b21fdf24b796222c5f7900d823896f5780d35f53fcfd50a612ecd1a031df272a5f582279c10c0c56efee1006b07113bebc8285ba4789d17ed1bcf3dbd122d9d8975ab3ae43916e0111bbcdbe8101d3c5d7439fc49fa9cd09ba3958a46a540a73455520b4738c39c3c8d8569eac24370eca862a93329c8f28706ceb94d992ba8f1b7b143020a513028b6c9f7b449444692327db044ea0a2d2d793629dac1d35df8e8c743edc", + "46c28830c1ba817eddf7c8d037af343288919d6ae51fcebfc86d97f7ff49a179b4e43ec88e7a405ded074c390558decb296edc11e2dd548b45231272940b279b6f2e67ad8ecfd8c44ca5260ebab5d2f90c65b9ec7e7931de789cdd7160c08d1f80349f15f2ebcea70a3edff8918a25e48347cf6f1fb7cb9a57483b83c69b2300f292ea375c06238c9d626103011b1f4b6e2508dee17b1888f85a5fa5ea28f969a2d475c4138241cc9d9ab4b6ed6d0885b2b208e224fa9ffd7079703341f57d97580f", + "d31faeff5f9de6ffecd554e238ecf22319c07c0c14aba9c056ce37e6423c1623d536fb1856fdf7b1285c6f582b2e3ff57b64e41cfa359cd9eb82a31aac6ac0b99e8e7188eed8e7da9087164c1f9ef47032cfccd97e0f36d908a5247c5c1335b1fa17368d4783559aefe3c179b884421e9b1b32b242e4968a7b57c6ae97aa4851a0419540e35e6481e2b8eb4e89d113e92a8290ce942dbf58791c907d3003d77a3d3709fc0f354b484e56679e5665976e1093285c3f385fce1333249ecb69b342ed9c7481087342317a3d3426bf76d08e7223cfe05c6118523c2dbea5041cdb96dc9272c2b0ce19ed7b371d3827be832226e2e32479c07b4c500e5afc8ff15cbfab948f478900b02b9f7ef03f0fb30f67974837a419c4" + }, + { /* i=94 cDividendBits=4007 cDivisorBits=980 */ + "135fb45e39ff6e6230d1c329fee0cff27e658d29bc3251ad66b14a28c8ce299d0842c10bcafae2a2d8c5cd9e965c4c78cd6babf967821a2279367787930e77154f53cf82d5e7b184fa75ebe52dc37168e1d64b6428a61ed756c79627d7b9f3047c503cc66ff30b4f1fb229981c8054f1fd1742d8f34f595be2823231b91baee9b8e0a33e08bd8c64837168b255043618d7e00d3e7bb1d1573b1c1ac8fd4c2944a21df722bbbcb58d75a5374884f58c0284ef4c8036bc7f76316b0b681586fcca2152afbcaab1ceb4be07393ca1f6a6f523d07a1d096cf99b3d19a95c2d97db054b53032dba9bbaadedfb8d4ed17f71439f5580b1c777d5753a294005911e066036db61ffdee726ad8798408f1ba11bc9f0447203819cbbbd507b8cf7c4a1a4c34479865232e2beecd2a1ed569a68ff44111c4e61780a02abb5e800f68a8e975efe0738ae2022d0789b48ce609d770f1ecd4be6d71eb3127d299b82ad04d4a047f76c43438a05948f58992f1d029b62021663f5b38cf53b1635642aabf53ea91260c25fe8143807331f4ae8684a570a423cf67d923b6580eb586177a65659a6f6fc3aa0e4878b28cea1625cb5622973c3828db444fed337bb48102ca4062513ab54d9e86272647cc1a635f873c019db9eac85cd379eaa749e6e24ce8c377cf5fd8d8d8256237d9ecb36b1ceb73c5bcb15eec5837de5", + "0fc753a7ea45bceeb2e3dc400a9eb5f16de1786e92b71bd6f4794c73ce682f6ed1ff3e7901c30edfc5af2adec4cd0dd3d1a8a396cf2a11bf1342d08940037717783e1013f2200a927c4148df1528c50d9be1f61744416f73d0e009f1c8276cb518788e80b66a49eeb489bd4f10c4b89308f8127706c102c61b995b", + "013a54a8002b05a380290fdbe33ce2bfa742ac7063bca12d5e20d97f55c21eb8e02cce3d16a50e02ae8e60b35b8b5c9f15bc3da9dbad0d418c5660b54949e9299d18fcc25e9f57eb4917abbaad9694b919ca6a9e7db3b1bf4b30228cb0f8fb1a2df9b2e00af348dbfcec9fe9017401e093361e8acee6d8a173bfcd268dab5858ad88a0cece86eb304bb45240221250625b78955c95e600aae099a5bdb4e4665092a17da24824528826479e95374fd3f1e4d88ee1764a658ddd6fed422798908ca482c0102d091fcf8c701059a2ab394b7a8581a43190ccd6e24e178e79226c7f218c5d845e74a30147cb787ef59ccd0f7cf80d5ebb4b3bc152fca3cc40ca3a8a08a3759c851d4503b7e8c09faccc929ccafb30ad32cd85faaa87311e358e2d626c70fcd4039e7028b8b053454bb41374888d97c44f57f5ae07bfd9a2387dc89ec8b8491901edfa8d15e32683bced0ca906208e3a2a099b8d50daca8eb16625accf11106c7c9740ece562e2289964c893c5202ccbaa9f728ca8c5b6", + "0743e90ec3c2a0d8a4a19ec8ae70943fd24d99cd26075f234af52974a74a6d6b9b76ef4621854147bf255184c91b05f0aadb751f11bff864c095b827959b0e5df92c9f573636a6cae80d3c04d46f5d88f218f81c6bb80007f3b35524f12891be78438c7b30ea4a8a0375831107fefa078f7dad0055d20249297033" + }, + { /* i=95 cDividendBits=2443 cDivisorBits=1441 */ + "07588640ed8f1a37a109e322957a80a69668a36d32d6504bdce2cdd527425d2f8e3e3f5ba7f91c85808429af238d8196f2f935298d4ba08b0ce39a9005e797fea4b63680a3bffb427ea75717e3b554564101323a6c632425fac71652fa2fbdbcd43b6258b1da066b02f174fc9bb5c074669abbf2fca3104b5fc8243e4cc12154b2b9ff41e1d63cad4ff67aea698a029f6c1c5f2c801e4974e97ed7a8617acf30e0a2b2fdad2df164d6400666c531234d4352d35b3c8c0d5734dc144df04f41204bcbd368664217690d8dd1d0a0109b39c1f21c1cd1a0790f607828c9d8bc95c9a6bcae876e2d375f4e78236670d75a7b9aeb414bd90c1c94ccb677dc60e55abdab6cba9c1f1cbe26fe5bc3d7da2904389c08e5cfb6ec2361e196bb3746f62184ff586b04f7bcc2df076509932984c3ba61f8", + "fda1a2f8ceb704aeff11ad70b97ed4b788e32c5e94caddfa0a1c02255bd1ba5b028de3a9525e6f9ec649c0978eceda76893ebb261e7b3c6033cafa1e1979e84aefc37ebfed3df8bd8d0b70200f465e0dbffd6be9427d2bc01c6a8cb9c018105ede6b8c2c94d8ac9772d4136887b02dcc512bc9b7bd54f0b1a08961090781490b6c0f3a4597b04868706238d3c953f3009c97f766de831a785289a48a18f96d50cfb61e390612be3ec1ddc902a15cce8c79eb0788", + "076a1612edb6b6f3c7a1499b007b06f00126d9388a025dcbe7e5b7deaf0811ab3a8802af77e10dbd1a031937c352d0d156d5225b30ab419d7680ced880601a37de27b2e1c96ecdd57948b1d3ad55834ef7864fc943388c0c3ca47cdbe39c7f9616efeeebfd7915b18953b5ae7ee4f6f3edeb894051cd051c90721a92a850", + "3e24c9e16249d63fbb293dff1fb67a9330027563c15411015b25dd77ca7318c893bdb8533e8b260f884bae22864ba179d02ec79b8518d7ba27066509ec5801b2cb5d87c2cb8708534498dd31a29da2aa9756c59edc54b4ba99a4f8686fe19db61ce0ca25041cff684f7f2ce3407cd1d4753a64f4d223338e5d0cc05d176322bdb6c50cfb637963ddf86399f173eb06da79c3e08ebc94cf2c7a11e07000c0899db008872b7db5dd2dabea0ce0aac12c3e51c6c778" + }, + { /* i=96 cDividendBits=3161 cDivisorBits=460 */ + "0148907c9da7062042c41bfeea5d636ffd8d8bb7ca607c3d42cb782e9fd3e859bfdc606835437122c5d5b285f146dc017803477c00b8b63d5f671fddb97ac3002084f280d5dc486d9e8291e9f2332457e3d015503cf4d702b5b464a674a6a2bc2de96354a90b3a5c8ffeffa8df1689111c888141be2b4c7907d6e531fcbc210e0a0d30a78afebea461f971d52dbfa4c6dc54505fae88f9c343b8f43fc086fd46a40f345566eb8e10233aa2670f94b3222103d000557d2706f02224862700241ea7faf297c0483bb86aba30df882217de2625015d95a00c4b1b31d88539f28dade92954176e5242ad21bf4f8d11bb88c771d0d0521356dee5b08f02039c1e315ebffea916714ec61a729f8d12a8aa51ae6f3ec350662f037da2232e112923c93005002200ccf4410b16ec89c630de4532f863047f785b297bf3adf7957a96323ee8b710fe416746e026b83dd2efb9f01fee1a184a146b1ad268eac1bccf2fbfad6ccd7a7435e5628d0e106789dff952e4b235a379c71fd21067aaccbb71f4762f1fe6763bead1c05047623662", + "0ca7a677ff29a231d78a9ccd8c21553a6cfdb330afe6ff7b8a37b6977650eb032602a15b8bb013659db0d4fa6bb0e00b9b7ab56f23842eaf8f01", + "19f6a46fe0513e4ffe6a56b2edf23533624bc365a8593078fbab42c5c53e59586a9388cb2bfa38d330389cf05d86c279dc642e4b8a04d9123022c21e1d2654719f9721a44898d2ed46c5ab5bcf9e3958fb1486a9470c72222b620281014d79e70666d649bfeef7e582685243a2201c8991f979c685f5c6890fd3e4bb465d6a0c0075704f2cb0c17a66e064ce8afdec48230343499068bed310ff09a5217ff4bed97f9b4179a574c051d2c1377c822d4be70e4922c27f4d2fcc1e7e57faf20932f1f20285f87e2fd96ff9c74a6c4fefae5d1a6e1610e80071b3498871cad3828287dec5ddbac06000d35e35ba6b6aee4782e3e0edbd4b66434fb52afc50a5f34563dfce8d4e663026260101ebcc1e829047652a5fe0d828db41693b1129f2256a2eab5352e979d3fb4c683d4c7fd4c6c872dd07e1116ca19ca5a363b7ccbee6a32d295b57c00e5a8aadd08e80f94bcc01f745", + "0ad5641a17ec0c06c255b9dcb2fece602d51e0aa45e522a1a3db933421ab29d93e5899e9c0553957b065028abecacdc95351d1d9b1b4f415b41d" + }, + { /* i=97 cDividendBits=802 cDivisorBits=336 */ + "01f623f08917811286530f260afe943ab8e3dd3e7938531fa12b1bdf61d57f91f6f03e487696e438b4e45750421b86d8cfe99484c987fe0e5b9ed9526e43fb839916df80833db2846cf00d7ffe964b529ec9c2888a4907fa847599f9114a55d614d00135b3", + "f14952bb73d31c510411792956c4cb25ecda2e75cbdb6da4aeb4c9fcfb44a891366fd96516df9acae274", + "0214c2c23449616a99aa89ae40ded3e8d4a2996113e9497a979563a19ccb3986072528bfebd23595bd34ac9b878389ca2e0ecc94a394de6d8545d7", + "66193d611f95ea02d0ff1c0e7022d575fb7bd72ebd6cbde562c79b5967aa60a65d58997a1d26164fc247" + }, + { /* i=98 cDividendBits=1243 cDivisorBits=712 */ + "06c07574466b6c2bc5cff0848e9633d5a0e2563381bb5a1a9c55d28af1e773ebd456dd1e5de97ebf8cbbf569de8a00bcd9bfc0c2065613d6d45bbe2dd94a1c55d58ecb4cac4e4581df1f8ac2636a6544980c5414ceb0c696102bdb916856dc9302a09c0cd97a43547083c368eb14e8b5801d5c7f165b96ea5787bce2bd141265132553d5c5df8bdf3527abd469f01f847f7ba26e8faa03ae9b57e96a", + "4245ca3bd7c5477adf3329cf2c9ad53e56fbc1f6ec8750170e6eab49b1cc509f1f073854f2ac5dff2157494fb091504df82ebb43be8a0607791c87e8526d8f0498c7edd125c5108174577d5e66aa8850a6db5a898364c7ab60", + "1a14bf10b7ce175dadafc7cbaca638832268b01e39d6de54c6c486e08e107ca27575bdd380b1e4cdbceee8283564c9850f0078c1a81b8a15ebaf527c94f64ab9a488f8", + "114f99be52ca0e447f1a5efee99ed404ccf64d09037d52466046d4654c6751835669d1686a681b3256e424ed96444f98725e8b1b7d5209fe66d31be747ed647e7de018977bad089436441dc9cf1cd966dd57005a58bd5ee46a" + }, + { /* i=99 cDividendBits=2052 cDivisorBits=1033 */ + "3e400925679c2aa204991bef46250fea94d3f2c741f660ddd85dc2e69695e72b70c38dc64900035b2eeeb16b7b71ce1cc31b30507bb4dfb3815666533ead3a30a4ec62f684a40494262ed64ddba815cc8b854b475fbd149e9969b77bbfe9d8b5c95e2e17ae59057fe4c8806fa54e34a701fcd6121d2d1e922ecb39d9d13c9edcca01c66e1823d6ee8d8e5001eecf33103a0ee5c573c25da48d191b70c954a556412ee3e4b5d7f0095f5d58805b81ccb02b343301210e4a8824811774e60a4b9701fbabed1970387b547ddb9c763faf99b5ec565e0abbe457e2dde0ea046ed9688043f5c22211f05463f8ff1bf2fa6400354bc49ba80e3f0c4e6449cb33b1d1fa", + "01e9c670bf86d3eb6b7e9ab0aff5d5d9f6977fdb3f430edfa7e6de77a22ab0e7f7c59ef61ab5350a3d5cc123b3a5c87fc8396d2f773505e16ae4baecdb2cac4df9071859e3df9b68c3492aaaa870eb146bf7266f1ed4afe8eadde3ed41c9708f8977a5dc91009397540b70aa87efc38f75fc786a020a7e2ecfa36fc28fdfc4c22089", + "20899675871ddbb2e69f5c46c7637786b773b8286d498784e8e6f784d3d6e672a4fc46296b8c42c4111b043fbadc59a06d8268cd0c4bc1f634ea2f7f00b509aadb53363bacbbcfa0eed1a1d3d76fdc73439c3c3fb5effd232c5795824058adebf3be3d3cc581315e27e13d59803ddda00ec5c8013d9037904ac74e2099bcb1", + "0110b00174b03cb9aa7c0ba7c855c95f70158c8d55ca2529309300f7844e941da069371521146817dd69a20a3d339577960f4b802bb4c1482d025ae54a1655949da3fe63417c517ea704e84e1b415c9b166d7242bb529271e74f0d95da0cf461725ef63ac7120ba144f85a0aa263664d406faaac0fbf006ca3badfd736c107b3b741" + }, + { /* i=100 cDividendBits=1738 cDivisorBits=1679 */ + "f5bbe6f2c3f90df93959ab25a9634d46b9249822d6d4cf8dbf18e4bed5dc9ce17fe54d655593da92d4f9010339afbf484b30de6b7050e0381c01d99655d6ae6211f05cf7eb7d73b2f6e6039f913904494fd269b625ae770c76e0bc862fce7f973a8cfd5e03c6ff84c2c1b1a903d93df7ef6314cc63739660671726450879b6fd9ce258e31bd4e18f6cd8cd848b53b69f41dface550b85d4e38b944c29922caff4934f3de3390b28706ee7b9bcc53c98d92aba5848fd3bb5248bd54aa93424f20697917227e052e6f74168d2d4cc11d6c9322d3b881249e600d", + "60120bbb68cdf5633ab886633b2d558f9e31bc9352d0f7cb1864fcadf39575c539deb827acbb2e87465b35f6ffd8dffe28cfa2580411075c9eb57a36c6ccdd873d814b6ea1c08b579013dc5a136e7e1c0cee3d2d4d23e5475054ec4efe879ccc2026d8ca323a92eaaaa52e83c7ce3862cc3c56e8de760c1bdbba43fa9b119548272c2bc9f6ac51e63e45a769629e06bbedfa4cc108aadbf93e15aac0f89dc67da1661f29588e09134b4358d562aea28a507c8a0de8a956c554c2ef91232b2f59364a878353244e1b1a7c578445778dd67704", + "028ecf50f776e25c", + "1c98ba34efc91568daaf39626fcac3d1d8127f408890ef99d126ebd2b40bac49cb91e2e81f7fe9ccbcfacb4a293801dea6ca03c8c76cd17c3d41a7b3990521ebba4f5ea9c97cef75e9376c6f060df4e54ebc2c66281385dcd8758813a9c35cbe452712a20a9051abfe8cffb4fbddd5e3102a31bfb4ae7fa869ffb52f62c8a5f6ca86ffc260be41fb1ac6b9cfadebfc7c5c2bfececa63fe46502eb93ae8e6ff8b684da948ad38f50aef06220ef8d14848178f00f509f7a6733e57be1e0c4f6013158b1d52b2b7cf4f71b1c1887b631ea2129d" + }, + { /* i=101 cDividendBits=4001 cDivisorBits=3925 */ + "0120d3f89f7ff5c0bd345f4e5bc1154549d04d92a931ada8110e0b69940c3da56b77720978dcfa7041c4ef287522f02343f38b95fc79d817f9a28e79bb4352b4fca9ec50ed432c249523dab13218d8cfa53bb2461c6b861e1f4228a9ba3a8f4fc6d3646619b5344d9465b1278afd9321a6b10edbe7bcec1b1d2d2cf1f7b04c217518dd3eb376599f30f705193f3b338e36042bd3724bfeb67f5b435e1a9bbf7e70bf8de7be0e7c9067f5e2c1b34588234e3aa2b072fd31f9085e662da1ab261454650cd493c785e9600a159ef60bdbe205e6d1edc2607a842fee6ebd6fb5481e63b3f66b1f5f9c1e3dac9556c1854272690cda74f9ed86d99892c0c29767eb317f50ac39a2f5ab16c2f6092200b6b554ab5bec2d7f7923e24ca278457dd698d075500b3cf2fbcc60ac4c9bf382fe1affb3a311f6b9bf063095feadd2637e66c18c1c2ea3f73a4d317150e4b888d30072b73f0fd7b1a3562ee49af2f286f0a8b2b5c02258d8ba582eb70cbd8efd859cc7d8654645f56f2c26006316f4c09e68bf20190122e57f25fda96a119f8529e1b098cb22040949c8140ea1e1822f13d058e398d9d0cbad872ca3c93ef6023181b59d36883c141e782e899d55c52aa5a01872f7024563701dabdb16b44561b401766951f5f645f7e61effe282172e8e5b927ea4a99529a707b59b720aff311988bcdb437006e9", + "06e89210a8255d43d72dc8ea2cfb450f16a520170cd7848d2aff1259349626302f40321037360447cf36889cd0e6afa2ed3885f01809ae4bb8686a6347b33e468cd71082fbc3426fd5d12a200aee1b9dcba0b01a3c68c9cc52cee4a24e6b0589c0c4278f990c1153f9d410c3ab06337a3d1b2c53960db3a7ff9f6c235322db8e6c2985b619ca29e014bf15b256c85fa3ed32794f7c3c1a574645814fa7ec70475e107b9d296bd940f0cd4af70686f93648d5dfbcc15f6ebc261b782a6b3b491e18a911e9a8d3fe8af4602c505ea5219f1b0321924b058d913d22799cbbfdd64609788b0deeb7cee2149fa921a3f276c41581bfd4f3afdc595d82f8c861db0c4af0b974d306db7f6f6fe38e75e3a6e3d992f3cbfbc8f77cfaa2db39c64830e64ddf6376084a675ec1b4cd329adc9baaf312083e561cd000944c86772cc893a8344a7b482acaf47b5cdc266282db4ed36e93ab6450db0ae8337a9ae08237ddc022d43dbca8a9c257bdfd8840de53b0061a4d8a328006724db254de9468bb1a6e4013135e3a688195d229d8dc5b59a65de56534cef60f3072bee6b7173cfd0b172064495be4613d6bfdf0ef076a4d0d157f86e68c3c6ca97402bf2617ad0076f4468254aedf0eb5d82052039fd9b432bdb6396c4a94820550163f5ae3a3578e0d2ea0cb634fe38ca8f589c091", + "29cec9433bd59b9f3d11", + "0498f47e89e360fd9b416b428be0fb91f8f2179c7801e959ea5de50ccb22d371394911145cca1f3a2f48bf6d68c9e1ef5d3d9c509ff74e2a2cb8166b87d872d077b5073a675c66ac68aa02bfd4352988a9debbe96f56486644fd16eade0bf66f0c59d90b8ebf40505abecdf9d43183e257baab08d1ff7a8d2bfc30c74263121a64bb9666b50f0c8ebab6e10b174e127db2c9bfed1be7d93cd222a764a264bac9f672317fb7b053435abfb6da688a6110b1e962904c29d0e715c42f38341031b2770111c91b0ba539b9df490c86b08c60f6c519487be2162a585c9326a0821153a0782a85d68f97d79bf31e0eea9ae66cfb79c11f9c1186020ae40bd6ff6fec72e8d19f5706e1def6c68570221eb011c4929189ec26ccb40b9d92fd3b8bbad554c64c75ea62ff78772036cb4c9b6056ec0c1b8f6bb60e982640822f5e537cc9a022357044c87a2a72cf94bdea9ba5ede69fe8ae61f3ad5fdbe86d369f05d28fe4a23a3ca214a056c018170a145c1b74bc2121c496bcdbad935cd5ff4a732d527bda53b70ac9167f05fde355bd41947f9b5abef7c6e29181e88381c4ae4f08584fe350cd3f886bbc4240ce5ae392187652dbc084120a1f5ba74129bf0a833afd778a0d4d4aeca034dda782721e594142d64820d3d48df5ece7e79789f1efe3498d68dcf89f5b9755bd58b048" + }, + { /* i=102 cDividendBits=2464 cDivisorBits=989 */ + "86a02ae38c4db90886cb00dbd14bf09708a410a2d9ba97220a99bd1c3a6fb54582ac0e1ea5ea8e942a4dc5d619b9554fe9309a3ec7e170e7f8128c73bada2a0fea266067a569f0f122d69828dbc7f841ae5e8c655b1f050639e371b0dffa7fa2d3a87951da612f0dee527a8d6b3286dbd49b58c8f4bdf0ca027a240f56ab141b8335b66a1390ceeb3454345df959012c80ba3e90ef1524b579ebf80deccd2fadc95e4ff04ffdfa95f00e192f654c12969deaeef9bf9df74b9b243cba3de4a8a1ff4089d31eb66a927f671fe7c29edb49154765ce0526d94b1d6a4d6bc78237c49ffa08f426e4fd418080bcc78737f60e4a6aad89486b34d06d58ced4ddbde2eb1df298a212c25985305bc3a6a2c7e852cd7967b17d07d6365b930332c3b474eef2d90a43b73c04fa4ba2b5b015bd52d0c40721bd", + "1889bfacc41a060769eae00d9010d1f2f1960aaed627501dc35919c9d690798ac7782fc49453d646bb42e5f5a7a4f7c3a510628a109b231a8567edeba60845ed1cdd31c8c68cf17173aea0bec97a4f019a040afb9940096f6c9bb26ca728d30e1696f619148f9d947e56918fecae9ac2d437ae2e09a4634e2fcdb6c0", + "057c8483ecf6ca7dbd3e140b9c34cdfa4bdffff6f91cd3ed67ef704596e9ac5b2bed9c294a133f121eb24ad1e57e814e8c9baf3bb07271af3a021e22e68eab64ca207731e897b1c5fce121806ff659d9b594453194dc3346fedad81f1f12a064610c3cb46af3d28693751616b178c32691826bb2293730d28f8853dd05bce00e5bbcbe88ba0557b20e0ee7c1224ffc7f0cba460563ca60fb728c26cd3cd71a4c6d0ab45f1fba549ec86872c83a3d1b4bbcf65ac61c156a13ed", + "17c7a9becf9d577d824fc5f2ab93b6f9cd0fb1b1bd26a6ff55de9a14dbf789140e15321c103564463609003b6947009a613cb8314aa65e81f0c750279804a5f3e3d2a6ee3ae246dda81e02569bc1f7fda9d89a6cf82247ce3521850c3ab0ddbbedfeb73a527da7250d083e858e6e88a3283c49ae578a6db6d284b1fd" + }, + { /* i=103 cDividendBits=3335 cDivisorBits=1487 */ + "354c3b00787d865d0383ff7193b751e1910e5a903ae46adb00d1c8a89cb49e391ecec4d3a25241ae7dbbbb5a3a8c72ca2b7ed6a1e0f57b5620b34be6a24b74589c18b14190d5314443378274da7b78bf1d523030317eb67a282334ca110dc7f7dc29aa0d43ecb400bff3a7ccaa812a28990855b98738151e5b417b0003115ec1c55c6d9ca5cc19297f20dc9cb7ada03b4a6d7e614cd698019d7e394d6e88ad44aafade69b6551512118dcc59d2f096e9e9fcdbef19f3c1ed6f63be35f8c50f9039c96f083cf7a2eddb9b344f6bdaddeb053be4cbb0dd6dfae4d0122f2eeb3a5d77ccc11a3d08e49848b1af594008328529508ee1d61358a90a5d7c93ab442cefe748cf5054df3e8d632c1a18f90e86654df465422d9af7650c182cf6ce99e173d4fdd5712087661d73b3090bcb12b7801811ea2dd2f9acbd135f3aa9eb7fb0f661fd76e0640965da53235ce9c545c9af466712c140345d26744a8289d84e5e7c60aef02f64ad407f3568041e755d2a0a1eacc52970093730ed2a5e86abe916152374df8e484c9d5c975ba0b76ab095b973acf6c28644ab4afb02a5c591f1d014d8", + "4cc8de9d94a3f9791ab4accea59e6b917330ac514af9608f861f2d6b04102e70bd2943b921babed9223b2e0f9fe5dfc31f9f0c5f613b68c1a2dca5af21b71b6c4394e37c5f84dac9b3d932aafc0f8c201d08f43c5c16153f993207a6e8a53e71751767f825cc863fa06de2986ae3fcacde6fc423746852b205672b9b67f0a66d748246a4995780d881c6516d1fa166b129573cd95013e32b4ab2c26d6834ea53f99dfc4a2d29e8f6a858cace73ed153aa44fc1956c4e86347070", + "b1b1dcb74c3ca68a1410092dac0867e9b2f5f682e41881da497ff77393cd517394d2c555e99681c6eab2cd8303cdd9a9289c56bf655f1ff084056eb22b9895d386bfe85d2ed94ee0d58c30815c3148d0671461f79c1f17c74ab5e6fd352b446c502d97d1da964a0d35a1928e6cae333019a42e2c11f817de1c2b9b57dafdb65b73130230ebd1d5bb0abc4e0a0691647382abeaecc39573125dd03914f9619a85ffdc7a06fa8f2ae4a283cdb73976e6e47f7f0d748b34eaf156b072bd3bdb76fe9f17647776cd627c8ab082db1710bdfc27f6437024e4cc37084fbc66927816bafe04be13ca1402", + "20ffd9997f77bde7a1968b37355ff8608247eac02cae932e6857061f2fc851cadca2da95bebbedc31308909c619e24fe0067cb9e18f12b05677ff4e6e918547d0d0c01e5207f7770bde1758c7126cadb794ae59bf0a3c3ec07a6bfc640a2e8ddfe38ea9862ed92da2f3d531e142ca63ba8132d747893838c476c570c97c7487ca056c4538c2a4dbcf28c0514100da83c3f663e60f809eb54d520ed26dd17da84f351fc494c2a5ce6af743232b6c48ff9e8912d4bcd9fc43e73f8" + }, + { /* i=104 cDividendBits=2048 cDivisorBits=1120 */ + "85c949e6df5080f30702007579e27332f1625fddbebc5d4fab20c1e4414da40a1eb123c383db9c43c0bdbb03ed803956df36eba6e9e839041641eddfb35e887a0a5ec36e12e3e5a148134b8874e53e63f33f6349fee9046af30b4837ffcb0ba11e734cfb1a349684946627b8db6ab03237fc509266c3e7b7b3ad2bbe11d3586ae2f477b645472b13a6b9a5c6b80c4e545217ba2d3d0bfa295d2873bc7efeaf2936dcfee6cda6477ee21ce68f7172b9c95d90b1d84aaf889d8711c71a38ffa8f45a6c8ca191f634e5e190ceb6386ece866ca3f5de96faaec6d9e95edd334ac3ef67f591875dffde39e6d96836c9c34cc1c069aa4fa9194bee07f6101e9f5874f4", + "15d2edcba86e0276b3c16a62d6bb290065367cc758c018bbc98fe6e2988f7d71a0c94da3ab65944c10ed8ed650d43f702e01aa7713ddb8b45fa6c70920e4bca75d336ed13b326c4d704943a4dbb4846b28c660095ebf6060fb605cc4e370bb0bda0627e3dd0b750f751f00706ccead28e57f9e734f50c08e624ec7376207a27bc55cbed6f731bef8f3d03bbf", + "0621584602fa67a7bcfc69773f8a0b7213cc1e11685ac27e4e25171d64d3fd06093a518b6a17103ad6c2dacb8dfc9d2217550a7caf0021ee23f013d886607657985f9288a1b08c9ae12107a7187f5c10d2678f1ccc3dafb8faeada5517aa9ed8b4179c3494f91b91d376f19d6047544ee1e7260b48", + "05f33a794469160f2a8024c94049372b911669b223491b11aab9494b426043bd327efc49a1c4870cae9de9743399831d95c5eec4bedd2d191b0619562a7eb96603b15abecd4b785f1ccdba1105354a96b9f427e350b0c4845c29cfa12a5f77f3b747528d4af2deee3455cf161c0a1ad0dd267b337635e3736c3068165eee4ca15218cf8711e9dbeee2dc723c" + }, + { /* i=105 cDividendBits=2681 cDivisorBits=2227 */ + "010ec54a6bef47a3b34719279bbb34e68f1fbaf21cf4e9fc8da23aa002301864624fc0c85918855dcdf030338ea5f18e38d002844e1c3fb1629740464bf487b1a1fa5b162a7de64c763505f9e61ce4c527ab8975a6fc7bb6ede5341c2622b34e71dc5959d4ab211f5a82c35fc86b81a1e375bde412e5fec29b997e709eee453cf2662f982e423f521f5e7c41b8f6413185553f058d43abd097da8c035e1687497aab7887149380b1870292a897f8dda145be66a30037a2751c19f036327ac39f4e237d13b615286ae76a809d7f16f13d5b67a983a310e16d6122cee2358a45fa070cc5293f6b5f6889c51649a63b35cccae08329980beb27e8ff3d6057a0c35cb818d05453bd70cc7843a428be915f7f65e489fc0c85ee5a8b014e62d542fea6c5db342166334667757b79821ec1f9044fa5f6bd4ef44c2fdca2b371447f0617bab7dfbde10fc8a02cdc6f5c1bd7149d", + "05df0ddf11984c33caae0b85f62e16c6629a68cc6e3ae0a11272dae6954a86d30820710e316645b60fd63a8758ae7c295927ad4aaca97bceaaf507f2840cc50f511851f96702e4989ccfcb9cd3963f3620e4a6ec9c85024d48d479fd1de82734b6237ad1033046619ed86e5b166ecf0d2f6dadc9effc00e264078262543ef9656bcbedf2069f5188a0dc8c0cf765dc370b04efb94f1709399c62ae2228a64ec0e02c7f065c63cd5c232782f00bf2c95e4141365528b181c4ef97eac4dd2c74a29c434d0bc14c038cd669d7f9ababfe31cc3bb3fa5e8c8b6bf1ca250435851e612d5139e2db827390fcb487151dde080e34a558ad8117066c1b43d01ee9520739e00904e3dd620e0b6c2ba2c4dd7dde15606d6db830d3a3", + "2e1e1cbc391a467ad7a647d19a96d8b7456309edf8c21074f4a8fe8c89b85d082c65dae378ac6dc6e82153182928b8a7e042c9ffeb00148ef4", + "015ae94f5266cdeee623d5b5ef8a6818359e4340798a47ff69063db26963f64c26c2647ea577d112c795902d03ae92fd5df2f675e8949c8a10235bc0a7e109dbd3ea0d4a37b202475aed47cabccdc67f84a9e924049f61f1fe80b4fc6508fdee8e9f768f81e496eeb9594109b6132038e93127cc243e6cd0ec20f1f02de4cfd252277fd625f8d800d07fad986c4f0cb0b0e6874e4a5a4ff152324e9f8f3ccc61e78780ae9639e1cefba51b0c60a7d377c5e3f88b5cc99996f1d5a1624e4ef5b2f3a0dc976d52be23f805e9c923c09f918ddd494e130a8367f5b5e57631f651b9abf8a7ed790d1996215e9b0e15e3efbf58dcb50840f7d0f26cc46c129adc09e91aecb4da73e3b4e635b29711b17ed8db123f2bef2cf341" + }, + { /* i=106 cDividendBits=2673 cDivisorBits=44 */ + "01e6cc835b6477985eea989db9b320d223e7475e1f04bfcafbac2cdab9e93fe3d05cd975b4d7a1fc3c7d3681c0b94fcbff6eb4362552f1d2eca1f13f715c36494a92d494df62436916e86e7e06c7c572ef51be8bf0146d2e6dfa8986e6796c3dbfe87951a0b8f86264870eac8fd7f53422f57683a3e3c0e4af0da3d3cb701048ca4319c73b8442bff9a452b34105fbb5f5517dd8c07f08a10e3eb1a9bb9c05a116b45fc37736bf5d668a8360aa8a243f3b6f9fc530eefe7543fa0d6ccc240328523e80143f443c8054cbec56a806b83b3273c14a03671ed4946afe9a0afc64fad821f233cf428455655352ca2b539527677d523dc6411b62fd76b5113bc5fa3487a820fa5defb07ca21a80c9684545d430b3d7bcd214dd052aea737ed3f6e02b326d16d851ccc75d7d6919c767b0608463f25893454e36871cfd1d324f6517a58bfdba9980d892abbc18e4c055e453", + "0ebd4c13f93c", + "2106e67851d7318e3e6f9b3dc3020c63bc273059dbfd53a3ed5d42963752c1bdf5cbdc3a214187ea4efaeb36a7ef200aece019e979f12ddfd302915fc21f8513814178af37a89e7197922deb1e74806a94bc81cf46d6c4dc2ec0cbf38d4c71b57f5575b1e84871ec197c271d19c30502db99721cff1d73482c5240fde5c61afc93ae7a6f4cedff4c59b6103f23242c21260fa6f59e102d27603412be6a0b3c111dca3c14b86161f26ec1442499908bdd242a2ed3020f8569f7529fb0f7cf55d194ceb114dd1fa921f1868f71d311a536a0b6b354081b8b18988193e55bf983fb77f9f742447a444c863f1cc5480f276a8c52f770ea54b2f6f3e8d2995507d08824d2a08574f378ed139a79768ae7ac06136e5172a042250cd77e22d2618b71a24f1cb530816c2df17205162ccc255fb1d0dc7b8d17417f1136fcb83138a9adf6a4c27cb3372f4cacc1", + "0c7cf802ae17" + }, + { /* i=107 cDividendBits=3631 cDivisorBits=3353 */ + "1749439c219879d8d52f2be29e2819d5c62c462c838d5f0f9510f27f9ea9fe6368c3947a5d507dbc1a6a88fc747092bc059c5bd60e7e78a6a06c6795704257ad65157fe4c6640a5890431d7b1c04250f0cabfa5e9ccb18b3c4e8e90759b1c0b5122255fd81dad8ffbf838369f5a8daa6506a9f629937bc07ff4821450248e0bbda2f7af90d6c9738a39d69598a30bfe63f0e7c82e9f0e1c67afcb2e74f58bddf81ae5a3d39df079ca00ac2a3dde0e2de17fa9a23d03f06519b4e98ef5ca5bee39dd8cb763c47713c1d73f4e6c6b3bf5e170313322878799a6e591e279f21a6b98675d9f7d4b32bcb82cca3556670985d7cd57cd4fbd0bc5239d58046107916819c426f134b48ffa859a68b52ee15a8812bb8c570e4139a805ba7b2986f518472cd4434060404c6b2ede8fa239970007775270d913ded8afb819af300566e3d3cd39f391efc88ea8cdcf982238a2095970e359c35d12dfe706f073e76d4a4cbe2bf3a87c8cad096acf4f5b42b237ebfb0a753f580bebf69d30aa70e5e7a2e8cda023fee92fc2082b3780df7ac050c1c0383aa56ddabbc92446a018350fe70f574c0e55b4d7c076cbd39e8f4ead96f4f1d5f1237b98abc805ce4978fdad8c4edd6277aae29533d", + "155e5d51e59eac6cc2ea375d54ce676fe3993f9024c0ed98e0a9ed60312c8f5d1c58a7cde80a8424708d0f418b38d472cb5bbc31637812e9fdfd10ca16706a673f592c5b89e52dfd658eab663a1d1d0e4cc1c188cbccd2403ea3c559a3c29ac40752ff44d7a515fb934ec2c26e94d1e624182b797a8cca4c0f9cd18e1ebc7ae2925cd025d1a1b245340246358311c97d87aa9854c3a8c723ac3b12196fab568b2e8134c65dd96b487296c1aa65c71e99d3e81b2558edde080b2d5fee450cb89f933e942af711e755e093e0987d43d62352f1a2560f7c23724719dc3370620d69b20c125505a6c46531c297ac3c4d4b40fda501487e7c24ec461ddc2261b993dcb4c1e961f95f74440ae62bb0ac1e590580a6b24c0153296d05e34145eb2131214ab07086d11b8189421a504fac71c92df429a279b07ac7109433bcbb31e2a6ad928daaf9ced309dd8b36bb30ee09d7b6c79f442353f5c3eb634aa1f9eb80cbc29b634d9fc4b19e7cc2e7535027bb873ddf138047522340a452963950d1c38cac90b5de96cd15bed6ee45ae8a2395419c5a41bba63d06f40ceeb700b9c4f8159fbb2c66", + "0116f911cd999edcbf45ef0ef375f23fc6cb7e60c0b369ef2f989f50064348305b66d942", + "0dbe10b721f7cfe774e6ee28327a5dfefa3217632ccb8d120ae893ec0f17da3c98562ec3c600b8612b6809a5c980665cdc8184e065f3560275000429505bd0e30ee08200736ac80916b1f236814347a048f8fa162748d88afc8e10b5868743fbe9cdabfb9d92e16807e0146098365e6c0c21a7014943060cc47283cbcce3398d5eca4f6e52627f7a15969f475e64e5480d5d55ff933e45a7ca6e0af23058515447a21ce1c4c416cda5abd233d96350070e1721052c169c094c3371aaaa418ff839386d5e561b74e6736074504c62f0766a08b28373420ac93b7076dc1bbff015cdbd43e4980967dded00777b1fc20b8d4d4f2897012273733a822dd968a60264f3be2b405ecc3474059f82a45cc08f74cb789f680448d0983213684fddb0675ea749ac1e35701644f4179ae369d017f34df2f2c9f556cc13c52e8d2bc273fb78c98434efbff842df81d5840c2bcd9c4672a61de49572762023bbe2d0886645337cd2f481cba0e2cf52df7604b66fa31045848e46505374b83c1b7fef088b14ee649f6a115d785856a1a698bf8d615683052e43d10d0551c9200090f017ad05e4a16af1" + }, + { /* i=108 cDividendBits=786 cDivisorBits=527 */ + "03d94774b673f3dd50b1759d61e6e831aecb50e83f9fbef217c2b1ad102c97fee509361252771d4e4a0b8f5fb8306e19307e5b36d66ead01e652d2baeaff9895799da3464f932a52f42f8341c7af66b956afd7765dfa10fee8f8fbd45d6336c6d58ce2", + "3a7263d98fa78bea8531e44c7f9715a0c2abce37a36e0ed4f41f10320e17a4f6a8d819371fa0df72f0500fca70b6114e75822dee620806ad12410e7bad1ed211a5b3", + "10db921c4a06ad1b02006cf4b96924dfc30ddce96fadc04ff71b2640152bbc063e", + "1dca64db5ffaaf9be9bd850083ae9ca3e6d9f659f81ad01905cae0b5cae2207a4f9b4deb05b20c28daea9bb95bfbf9cf4d4a954154d690ca8e22fdfe2959bc393988" + }, + { /* i=109 cDividendBits=2312 cDivisorBits=1378 */ + "bccf437d58574004cdfe79a70199f814f77276092451f1e1bbad9e63d7bd0a25c58c3c6d579400602585ba90934986ed191c7ca31f4c78904fea87953be52edd2c36aa35411e997f2addec97699c99c7e9ed8d2307b964cc34e25c88d0570b748cffe5d09e91370dbbe209203384e0b41825a8ea3b3ad5821a8b0bea3b2db26a68d4187dc7fed47057cef7764bd3484cf05961bd3f88737c71ffa5c93803e47e244189de50a9c9394e1e9e341d6d7804e6621ba5e82b9ea6adb07773767c71005b9600685421b60ac4d85040d5e7e256915f1f5f1d789e3b2bf518a33d6619442a613022f9f147fc4e9bd421fda4a1c6bb98b3ff51780fe01bd2883a08c24c6cb28d681c019f4abb743976012bd899ceef11406645075e0fe9ba90245de4dc4e0e", + "018a96fac2470226200a368468c0c99cfc010fd987a3bb23f376e82ad01ae500e0414150b3a87bff58c6c7970ab0ddb9c7a490ae5298c00667f934ce5ed6590386af9d97b1a19a51ee367d6b39e8f8ea303fe4b5dd7c5890838a980bba1d8b5482db1b75826f9201844e9c3b9101dcfa4cbbe7c105a015c88914e42919184704bcda267dd955b65a81c47fe39868e48fe66a4981c0b4fa939a587edbc223f98cb1968c358ee359135a7625c178", + "7a7eb6bebdccbde1a86a9ac6c857aa20f99ae38e89092477445e4e1435af72378ed09ad10a99c88c0b06b035f7d06805889469edafd428e2e5ef8e2e924995a684b02af137182f947842f4614c3c828b25890cd3a63e26b4ee20f6405dde8600b635391e88648440993b088c87b12bd1c810c52c24", + "012c84a5e6c6b443c375d0191415851c0abbcf339041bcb6b0ccb33e8c72103493e429cfe98c0daad080451297a14a496b8ae5e6301edb5ec0fc96a05a99c668ca784958e693acdbb02633e430c1fcece66ae660536e0a54f3ad57f4aab66f1d9feca39ee3ff5fedb422da0b1399430ff3f184c89d66bbe154024ac1ae9e9a7c494531630c75aed5097007cd1a887dd271d35d1303d13e4a8eda316a12230881cad38ae1784f1c7a7168f4792e" + }, + { /* i=110 cDividendBits=2019 cDivisorBits=1767 */ + "07809951d8fd10023d27969c15735ad3782cfd0e1a1b6efae7b42d767947c10c425a2efac3bb7926eae7748b35b8d33162da8541d574c30d3d9f4e8b35de7a52bf0baaa7dc752bda2e130ecb796aacd3d4da8c3499f0c7ca9d6235d00c4981b34c885d01614913e746baf805b8baa75fbb70cf7e134b95afbf905b32d61ac58ea883418e5a910b14ca6fccad18d522ce988a12e8a524ec9ce0068dd049600fc9578a0bf95dbbf0d29cc03319864379a4a41967b11210cc2bbd8ea926442e71e265a7de9fb329d34a00000d73b1b78b23bfea1648a07dc0d8f34bf104bf87ca080d6e5703da02397d925a3284608b187395ba151d279353c5e106b827e5", + "4a1a84f562fec65adf3a2ce920956d67e5fd6fb1911c60615c5e32973d4b11201b0c89b9b6183ed6ada4b09ae55d35b68827fe5d1a683662f6c746f5815749d5f46c2dcfbbaf3ddcec00944994843cb6fb0fd378223f20f0244d0c5c922f2dba8c0de508b1397df87b21cf2d9c1c4b88063e84614ffc4b50b260a0df995464b9902252e293a19e6ac3a326c07fe1a8812474e897e413255c955482295bf75eb95169c83212a0d509b490195cf7080aa53b4d5fe99882fd818612c18ec674a1b524d63b69c17f1b1e6a2820cebd33858e61dc1c974f620144bd2ae06691", + "19eaf226fa1bf5aaf0498005d1ba19c5fd27305440d83a9c73701679b5b9f7f9", + "48b1191d09bce61423b4264e4d089ae8d790f0afa51e6b65711b0fefefced7caea8a09f6c86bac13c4cce37b977ec5c26f7d59324e484c1d000a6279b30499e1f751990d31d2a868cdf82d4eb5559556d7a83198d9d8377903733a4cac16992932446a25ec638ebdcb15047660643f14757962fc95392ae8b89cf8b05993e146256083a51800f83529b9aa6472e67c7fba44d096b21a5e5246af6d5df8b208a14368bb1ecf7c7c14bbb602d2990add3d86fffb23aa54d09aa415e3a4ac14f5747d0f223b447621071aa9dfc1bac3919c7655c4f7290b6fd04c2bb57ddc" + }, + { /* i=111 cDividendBits=1412 cDivisorBits=416 */ + "017e0eeffe6017fa7a2e07042e8fe7053725af7a3fc64d048ad8684c0fbc818b228f1fc6b3115a9e81a09a9a0bd9d1d11962db6c38553a5ab390e79066bca8668504aa838d9e63fae90743756820ca51d385c3c29fcb983f16b1c873d306037344eff049913c152da8c412bc7ef5919342fbae5c06912b7f751502c1102f7b4b7cda82b76b510d42923c29c03592899df783d3f73e966940ab497e83fdcf800ff8628ee0d471374c8f72a05432545ee476", + "cd916dc87646760a4c85bbf38a6cbc81f935e99663a32d621bd44965a408dd65c5ea5dc30831b533dd8c87a0b7dd75623f720d4d", + "01dbc9ddce53fdd573afde7e7bed42e9cdbb1504bf4138ade9c0fd5e4bc5a722f0f165dd68c6eb69cf26d3404df8b89745fc2ff1fd263198fd7b061305d95c45c10c95e2bec01c6251e2e34714c2a16cf28b302becdb3c197069fa7f0fa4dc51aa64863ed2355fcd2ca04ba8681645d2968d3b4a30528540ddf45ab217", + "2d86eb6760766363d1e58a345e9e38d7f8b4bff246572991a2d2413949f6b70ce647d033058d2c9812ab80e92d4fba0242ce288b" + }, + { /* i=112 cDividendBits=1070 cDivisorBits=154 */ + "3703f709725ae081c1373bfac034c0e9fddbd2b7a485faf7a91f0be08dc6579b0c8538a58808251fb7c3b6e2e7ecd6d134615f1bc61d520f5305761683d733b8ec4823442bdd6470306474ef410f35e3551f2593de4b1a40c039a000b40cff4d7d7c078cbe119a0cd18e3cb1ec941dbaa06af453f07c17b55568982c0740680be27cbf1ab4e8", + "11edca318eea552f3e9664b95fe67db7226381", + "03118bffd3d38aaba7aad2324d280d0dac5709c165dc9e3c42450fad6922c5a6bbd3bc4975473cfbc526283eb743a05aa6728f03ba0598679da05fd6d1cf5aef2654dbd25fc90b2f23aa15d72f789c9375c82e8bf66410bd5da1383617336769e77ccdaa8847481f1feb69537b9d2cd84ac5056a", + "0e1e045d1d530fde39533aa1ecfec962a6fc7e" + }, + { /* i=113 cDividendBits=1680 cDivisorBits=1057 */ + "09620b833c8dd32630a39a68bfd771c5acdc4eab85212522f2377729d477f44cdd66dce7d0ea9172f80371e0015f821b3a86e3caa8de5af6a88c5023e6e7bff26ee3df95e4594e1f2d63703f64da7384f5fef15c3e4a27696081034ff2f63ea83cf63f7576ce26a8bbfa4ef49d0ab34093400e472d40110d44688e229364f1d7936c37b30b3fde2e4fcfcf93790e68be42a713a69d3df04051ca84be88348796cbe8c2c37b1921ac1c6eb5b09e86e83d1c9bc3e684ac4e31c03666a6078d165a5dc5a0833855e0c2c787dfa77a1faaf05805", + "3364aa360f2f14eb2bcec0a2e5f4d33db7f7dcc581472b4cc06ed1a50a133f7dfd0392834aebd156bb7bf5ea7903480d8b0113ad68da01db163e587f932b40cf0ef2bc94408f43ca34525ec9b14aa1ea378a4be1d9db99e980a8e99a2961f2b8fead8154adef669537798531e5697e6079eb33cea32949a1d330d92e17a78b51b13cf2f5", + "2ebd11f9ed997e0656f9696e6925446504abdd28fcf2bc84a5b6cfa95ee2c1519d34d0a204ce46283625594a4178483b98ed6b18c2462a5928f56440e98e79aae5cf2e731297aed4ea5a0b881c80", + "2e1b91256bbfe64d543863a8a00a575203ddc58de195bdbe995e8343d98273ce835b6d2dfa0cd1e803f826e43633c9d2811ad152fe46fca510b3b48efc640df67e3435d88df17682ada1b252bead2e8ba57aa45f35752cd555f66bdf1b7277c48248c0acafa5e1d89236d309bded64b9ba93728d695b5afc3a9eff0e743bbef0c8bc1185" + }, + { /* i=114 cDividendBits=2667 cDivisorBits=1248 */ + "765119b23be921b95fcb78d8c3f69fa512d3ed6967fb3dcacf13c1665b2d92357934fe91c7ce3ff4ef3d609580f3097cf2ac14e1478dd25da95cf31afb190be36338160846404627298f1bdcb69162912f59e62cd536ac444b5e544a06acfa0856b4f1454fbfe1000397c0c0035a042dde5126679259303662e547abf2914d3bcf540a9afbb628c03263a9bf04e314c21b016dcf06aa8902483034ee6fef1622652c4fff88726709a8f285a0c37c5e4a861250cd2ad31b5c91e78a03a26fcc4df50db1a5df5f9ae21479ef8abb9af4d1d6e3dc3b0e0d68d26fa115f2c60d4acb4f85bed9ffbae1f6b30624e28971f43bc2c704582e634db5c524a0860a679e19474568869f8058326184b2213001087a81bb92ff405afc86217efd967ddb95e2fae728545dd644463461b5440f63ac6ee199a422c7440511e3ed79cb1566a6b2c2cacf8d37a49d6ff119c936f5", + "f38ecd83b43bde8c0dfe54d272fc1a3bef795f7b01e052b30ef9ad048f9df0bc2029039f617ec87f78f2c53a0a97e10b1cb1b9172f1593a45e7a9c502ab5d4e635954b0d895be3ce8672427fa61f89ff7200b83e1d15f623d2df8d6e1d876fb7c5c56cd6f85eb84d4c55bb568c245f064a584a79eff83c13b54e4b8feeb2f40f1845b615745301fd32bcf27cc40bd40e6ad340095c4b40250b7bf557", + "7c5c6c15608e4e16b95d04ea89f991d0496077158f174d6fed90141de4155954cb2b54728da8e4a6d3b4b7348f4e35eb580bf8746eedb26eb52d572f6c6ef0b30795e3a28de3a48034c36a27c84fb01d844edd65f096a1318d099208d2ff8c8e242d646bf1ff80880384775954b0179b4eb69dd9cfd975ee86455be83cea247a431d3c064fe342d4e37e0a5ab3a032a4e5b0d9c468c29ea6add46221c3f5cdd764f03c5a3c2e8cd2ff4c1c8a09b33eb2ce", + "6711aee8d5c36b2f9d952f3410c1eb169e1cfb2c35148796c5286af002244977f0195b8143102a49874884ad0ec65758efd31d660797a66891c1c7c8387ff922ca87934b2f394b7f02ec925004b72fbc6c92e2e8c4960ab90563f4fa24e70f237d13bacd8acd135aadf136fcd035c60bca98c7b10229343536d76b8cabc2830d47458225d401465a7215378cd589cc01248083e3ba5515856b614cf3" + }, + { /* i=115 cDividendBits=2808 cDivisorBits=1449 */ + "e7239ce32859ad4cfcca2559ab4cd14d4f99457e70ce8b1304df9f2789589b682cbce5772a213837a600efa162d9d5f71d178bb0adc386c877614cf99b8f08a5ebab91ce65e015fa23d346eca67456cf6ea48cec3615f5d0e183efa7e4df2799497612b1fbd67eaf9361c9fba91da656d65ed20e3ed14b5a4aabc3864bcdb707eedd7451caa7cdb35bd82cf032455c815cb06e2b91ef11f618639575cf5239cab7c8b036f64da654b1fdfb5b07661d7f3dcd0cb8742455074d0c9cc5c8f49ea99910fc56b5491a148d7a7299a330ab406fb10744e2ca26e15d6cdd70a78ff18d05b2fb2840eaf2b23bd693435bb3d9f80791484d1c4666853775dfcec5a3d936b360150b3cf27f3dbffcc2daaeca99ff54f4983f3598d6c28baaab3d4d2237c0335a1c30be4cd903f507422181eb49908771e619c4948ba60786e562e390d2d93adff1b11b36785047cacc3c8c4e650f175986721ebbf3c11e9239aac6063b", + "01a0e421040cb17d24faf5cb018413a7f559c3d597e0b71948b15a98d82431433edea13ac5114395db4e4d9023a831dfbb93156e58b7cca2af2cc0caecdf8040c3901c67f4cbb73ace6a308f4596ecde23a5bcf7b2188bf319e8fd8afb69d39c831242c890828ec9661ed43aa5fdd83863ad48f1af87ffe1e287ed1ecc52d964a561f74a5f3f9cfb16b77fd518b40683957ca2bbb6e2fa0807670f63e05abd6ab448498e866bfee5f5cea0b51b01d04e5238e10d8811", + "8def76f598ec82d17b8f0ce94ebfcd6df5bed20e347bfb648cb3347ec73e169acd9c034f5e79a8a4d007aa2c4a488b83539853b548f74b590a0dbaf82cf0b2072efca1894b45c3edcd3290331935d5910803b92544b3273c2d03f1e5222bc1526e806c67710dac473cbe344dfe49f0c2b458926d21778e800a5a9680b2d4a1db5c19909de67799c9ce91e302451c27563b01a239e798075293a12badb6732669e298ffd8adb970670f79", + "01438c68669b9b60fec193ad2a02a42f8612519c8a086e00b039b0751e111695eef2d38863dbbabf65abb5a194978042796b61f56b8bd5a2c41b1a904062e5fa291bb1002a5c0a7a16cf1bd82203ca416e077090d02fe3839f672dde437c4d5376143687d6f8b76e5c5ff2bdbf9176d462693253d1e011b95bd6ee5970643c40006b9179c09d6b1f4999d93f8a3b6797802d5bb2d69cd9e5d1664c7a7580cbccad58949e3f2d2c4617dcd19dc42b38dd16e55190b732" + }, + { /* i=116 cDividendBits=2890 cDivisorBits=1066 */ + "fa69c90d3f85b6962abf988060cb9c7dff2d4c087aee95b8158e15d5829f0a50c1c53f2699812ed096600c383c0d4891e579f554857e9ceac734655fa54414b7b9b7aec82252ed9760cba1a9f30f9498f2bbab940104380cf4cb6e9651161e60a148a6bc9c0058d3148927ac4907328fd6de73091ffbc0fdfefac818cdb96d52c619ad76a11908a400bf81fa5f8470d31bd62ebc38d8ce628bd94cb3d943c19fa14f9fc86ca20bfb41f20f0ffe2dc7b6e3b795a5e55fc2bf77ec63dd319f012eb87eaa6f59b7d869bb9d9b24944225f7b6c7f401dd458ed06a791196530b9e4100216a6c00c0e7c0a2b95acb25e3569fbb4ae7f9c3f46ec6a7ec0d25d2802561f539f92699e52673c132b83c523084c16b7ff91c1516ba6b150ebdd557f68c8065643239bd3493dce7a1ff7f42baa0880969cb98216d1cbac792954dc5f93495e3d40136b743805c4e385fa1d2b378d60e60b90dfe308aadc9b42acf8c198b8621bce50bc4bbe44cdc", + "037c0f9a33f49c3623a07d0803eece037127b4c14a751c4c5d60b9fd1b94e568beecb750efe23daf8a2704d3d4303a6367007cc022a15389252d0b851c72a2d8f115f441ea6a781323c1e1cccda44ca93f6b520c3c62a27ec6ae8aac2c227a438a8b97e3f5746f33a26868e68d8dce1e10ae7fa24726964b39ea29c9455f8d62f8651c833c54", + "47dcd0e208e318b28512bbd3cdb15143a4f111fa75245fefa36cc2166bb8160069fcfe40705ce0a4b70cf1e739383c6019d5110c7c0f580bcfe23822beb20d89708f97207b87169a8fa59e42ce2132d2e06506caff578cce72ba5230fe73a517860fa592252b6777f2281a3158c31d98d7e17757777e0f717a9d58636dd6e73ecc4e9152e1d73e860d01868e00d864839b4a3ad6333e5f948abef112a6f99c07ea1a8d19d349b064bc38a45a73aad443d84d78a369cf34337a5f24f829d681c121253b91f6c3274ee80af3630485538837ed2b1ef1c457a78ccdf547250a599209c6543d", + "02c9be26f776d75498d8566a8e28b6762fac0bc0ca7e1cd778c3934f9f661fcafacceb85ae1720a582c6e2d07746ca8d27b7cda8b20ccf8b15690a4c0888f8ef6397616f841ff213f71ac54bf1939040bb86810c48df2925380e268b44019799093cd36e837a15d1df2f2bed7df6bb5bda30a29d076d416e024df9adc9f8848067ca43db5cd8" + }, + { /* i=117 cDividendBits=3262 cDivisorBits=372 */ + "2e09b0c6b19e2de60b7607b3769c6d9c93543a97ebc9ddfb60f327632b30826ad5ee3e641817d2e165a47867a657a785f8bb6a78a430b499f186702c179e7b278f8866d1f85794f6a330b137a93847efa1c2f701418ff422d350ba39002ed15e273eb7c8b7b61a013d47270035b236949266f2392347f3b12972ed621e5ff1bbcaf030675820911caf6fdda04203d14b2a72da3518f49ce55bf4616c0dd0bf7edecc012b51ed090cf9a990b2fb4190eb6f0c643de9ff091ea5250712f77c51ce32a5945b41a098692de12bd4199b0674fc49281cce7a0662cbb393855f07992feb82141d268ad38078ef6ce52b4cfbc63685883c87bf02f84e571e3f95e54e266cf1b6daae217aaec77daebde838411a28871809bfef1ba8f3473b6995ae46083595ec6617221a4404aa872d4cfb7fa3450162f6eba0afc68233c959f722a57482bcd0ece43d61f0e5f5a37eeee11428d80d8a5f40ba2dd3a208e92f73b8bb82540390375a4ffa745c02d821dc160d38e386ff6c861c0dc5ce34be69207ce32b6854eef1741c7f66af2cb168eefbdd6cb02b259739d11626", + "0d94ca1b29fc54f9c74c4c8705bf988b0012a9e8f22ef69b1c36659c9ee47cc7fe1c622ad90a9c0f3fa7b7019a31bf", + "0363cb3e789a676aeee925f3d82761f7f5a14358b2e27fa756188d89aff783b73be824ead48f3ff02a7b90d0ef3034edf71430b74a1eb787f036218e833934b874c809081cae04933852e1e9f102ddeae1a2aba077dc7ecbf88c48f0ea68eafe25bae42cc2b5b02440a1939d90d5d9009b27520f9023754ce73e3d18b4bab8f8f0b95cc19c715cf16911522013246848525a80df236466fcc08ab7880a9661814772ac6f673c925ddc57561cbfc6a8768529901e57c7f74ecb86a4b14f05a599b8a820f472fc8e964c8d1cca3fb6aa31cdf0c188b6ce1a08e7fb3d5ac58e60982ccac93e3c84b7fa2a2f0e0192a486319a186cc4ecad8ff4aed741d8eff9243e65a91c1ced990f4fe4c531c45c29b27ac20974fe63c148c522ebc7f6789a6fe838c98d9c86f3c3fb8b98df6ede2ea53d67cb2f5e78053d92f6d7ea52b641944385648b4f120554103f9771757106180dc4720edc85a7b46d9d887140f3d7d9060740d6ae8be986b0ebcb", + "01f064f52f0d9223bdff32f2094371be25a2109db879508d32c771a2aabe065af648b1a2c0bb8d68e85d1d3b914eb1" + }, + { /* i=118 cDividendBits=2127 cDivisorBits=1636 */ + "4db728dd9ffae52f542a7b59a2bc1d3cae6e199bd8c30dbf3de1a8d855e15aa7a1c69d4e7c59cf43884e3b4e453ac0251bca8eba9981eb3d4b547af10a1530da6b2524550ad107138c180bb7e61ccb2dce906238090c6c857c466a61979e7767937284e0780c6f4d7f69e72cd9fe7a85ee9adda0cbf6dafc54daff6b379fdfb0ea5a7bcab2acc1ea92aebf1a5347fbbd04898bb3fd3a9eacace5848789d763fcf7b827ecc2bf08873468e811b1e8e52d1e936570e2f0357fe123856f90b100c9250c21d0dc91dbd956d1e80d6aac4844d4e78a0b9bdae13d2c4cf7b616b216661a5f7cd2e7e5cde3e69ca3a532dee11afa14a0fa8dacb34109b04d53d04c930d042979f0f7752b576d31", + "0483e36d37fdfc6e73e956df3ccafa4b89a75995169753cf5578af3f9b02de0418d3a449d9904b8a76e8a1c8f54eaa92a72ad59c96af0f045f6b22e3a13cda0e2b782e43a6a690a7b926ef2ad924e598253414fa0e6b42fd4a32cf4243e975b8dd37e957e26f702b3e70781dcec510a9b3f9dbe612ee51c29a914039ca0af7bc1c927369c81dd156664beec0a03ce111998eedb1c075fbffe93f8dcdf726ec71e692663a1590e40b61c75ff3d15d8f680d894760f1bd236a36c44ed857c7be6524357d27419daa4a23d8d8d083", + "11364620b52b247bf27b79a6b17080f84d2314ea67bfec25a2fbc0c5af85ddd1b204223a7744c2b4108ea4c3cc41f066abe491986e1c41cc042dd4e78843", + "a806aefae74ed39f5e65ddcc2beec5707c9cbee654fac4fcc8a8898008d4add74234bddd374a6f62c6ff233f38ef8eb17be70fef18d3c1f81144a68e5931dffddcaab2122f36eef0dcf892d9ae5378e6a9b71923ae7aa66b951b3f1ae21e8e7031f64fd9b67debe08c7f999a11cd79e8f4b615db3edee3ceef5555cada50470e77d14a8bc87e620896ac766a4522adbf482680334b03e1f49bd9eee13d13d2e5537dc7ba2d38e4e86ac5427973d0a37182619d5a31b97ae6a7019a36bdb31dd6e2dc0e703c4d9988999e42e8" + }, + { /* i=119 cDividendBits=1036 cDivisorBits=491 */ + "05c88810704a3481f391bfdff3d6f2a144fe68ced2fd1508a83491504dfaf4753d586721fdb25c9a48d99628e4657e4a2897633ff285025340a3760ab08e7c3a866d06193ca2ad0a4df96006f5f6cc04aacea1d1b79d40b3d2a05560e4817e4771791fe2514e3eaf14d83ac97ee572e5b3e8bcd763ae70bc1ac98cb8836051810524", + "01b509e8b21fdc2e8607fd8e7db283c398db08ae3744aca554b01e925b4f3cc27263f5642d8db9cdcb7066b63b4d3fa1dd0a7054a3034ded77c6225c6cf0", + "03633ca11baf3d82596c5788ff02a50e9b73c4ada1151763225c12e8c98e51ec4d8a9908d66e7c585b5f8309695045c0a425be6f0750d86877a19060c76b6fa45afb6de635", + "880a4436399a26760835360c2bd28b3f8d9985baa6d64cdad9b3367ceb1df559bbe879af05a1b5575b24fd874bf8adf7a7a3c220b4f78d67f2784ed774" + }, + { /* i=120 cDividendBits=3459 cDivisorBits=764 */ + "06241af2a947904403e7321c0cae648a8f5e0aa61933bf13fd80fca4e62b747515dcaff2fb06f24d13d78a1a2cc4ba375d6192246416aef4622b2474fce657e40f7ea0190c51522e520c9d570a1edbf2a8a3ac60f420e8896d8e517a229047f9c383da8938a01c653bb1b671c6663c39d552fbe31771446df004ad464916177f3ba809a4c58ab19f198eab00da75cb071c2c3d01d9a682149ae0e22ef51e2c320bae75961b94a9a1fbdfe69d9e253ec1d0ce0803568c5a7db862325bb7177d6e0943aac874be0fcfd095c16a10cc275aee6cd60852338020f48b19181b603b23ce5217eb715a65541fa5eca1fbd6a8d9f67732212b9322da1913d8a2ecc8d3b2d922105cdd5c30ccb320571c56b1e864d58cbcefa5891d064a03e183520f4f36c1402eb71304a92cc8e1d3a31842e32269693250b94d1b94c4248eef2f50638355d421ed46aa8d67617811118d9cda6775518c63a75bc624f9bf963ee8b8ff37eda8d81b8160b9f47a3afe692feff899f89c986ae36988c8cd6da3945bdef510b5c75acc9babbd55df09cbf3e0c7931be7c9bede7dbacaca0abf94e8ba9789281dca01166b4315e8efec86b342d5cd692c", + "03a23c3fb3ee1eb2e33345686c4673b6959cb2cf5627836f1339c312b0e26bdbdaaa46ed3bd30536604cc108fb9db6d7c804d4d3ee83eb944cf751157aa232c7a64761882c54142f8fe1e7fac576ac1c3f44e84085cf060ac4858972692210dd", + "01b0a45ed2ffd716f2d56c97b25cc42b2494f23d4875a48c6d69912699f40013359b65d8c2de157cf7eb3dbad492d8e29529f1cdbd07457a8a15b2e5dcd82caca34a58d7f8ae1652f2f72c803e8f33cbcc315ddb7349fba650c4e936f92129b2e67d43dfdad224dad28b5d8591c7deb60a526a67e1eedcb312542caef2ffcb2a616352172d090aad0989f0d3670dc2be10dad846e31431c1b0dc1049e57e0e8745db617df0f546f049e010af9eb03650ac88f0224a40d1e00ed0918ece20d3254bcc127e4f14fdf0b33529303c183c68789b215ad1bc267f8bb66a6764330ccdafa271b124f97653f6e2f26634281fff6b8c6e6a52b72cf34134f8c05d2dca43082877db4637b7ef6d434580f54c2e7794d1e16e9bfde1df9f02dda928eb5d55b92cb1b0748fd23fda91d5472473b24562f3258f4e292e6083560d5e44d346590481b89c61753addbec03a64ec52fbe7d799", + "02256e86e988b5915850014a1474ed6aac828930f829d40649e2d8142b82fc5f99544fb89d49846b2121bc2f4b7cb71cdca3e68d955751f3412aceee55e8d7391993ece8b278ec7f855a0a07e99dc5399b5a90c1fd0a0ac0622e10867ddcba17" + }, + { /* i=121 cDividendBits=3081 cDivisorBits=2811 */ + "01b2c4043d3517dec625e10f512c2440bb23123f6e727965dbe246f5d04ffbcef6e0721ac4352ce972ab7ddeb01e40f9db51313dd8e1cd93aef159c780f12fa5a443c72698567e717f208428c6918541d0a377041d7001518c1632c9e1c2242e24d7c65f83b55ae596731257158684117ae5395348c4275564272f405fa7edb5ef5e3f6455b49d023db8d43402a217aee7fe9ba4937d3a3df91871debe7f479e1e1bf67cf2384042f509f839fa2a86dadf60697f3453c40d01815e5d1231ceb4fe7299f71976d79897e809836819ae6e5ff99a925ededbe012627253c350bfa9e6734d1d67bbcd65b87ff8ae5f156f0f5bdec778cde110f5d3995887a6ba98da603b05f6838fd79c28e0999ab81da8b0df28773fb1d4db57bd6823c98ad6f6a847538ba8605e22a9dd44bb75dcefaf1bd4c6be096b11ba5d003ca46e51d2dd92168a648179a8718243ed1ee7d3aada9125593e00425236b718c607c423a15e7c6b7e58f9211282cdd003324ebabbe330ddfe9b21cef71d976dd6499d188aba6eda73", + "0171f626f2715cec3bee4077e7171b18deae47eb638637a06d091e85ae9fbfa26a5ae4c468988ba562b371aad510754d799a089c8659aaa57b8ac1f81379bf664afc2454248c85bf99607bd92672c45970a67b6b50dfbd6c19479455391bf7f38d3c7e0e914ee0975f6442f55d66714b0caa06568a8683492043a11708d4e6376e6c1a03b83655f18eb30e24828907b72abc8996ed30ba81946cc1b565fcc4bdc4f1bd36a1c05e3f0612d926c858c8c1a28572fb111176dbd633801d7afb531ee1d59393aec3664031ffef5bf46a1288f92306c4ee790ee27fc870943995b5c4b459f54a5d84e737a9d936fd2efdbcf08e43874c58a84dbe4c6c7d0d806882b3cc5f53ba75d7e28ca1d26e190384bc1de64b4d7eb12f4e8aa1e08f11f5f3d80df356125e0ef69ed48003da5165cd41912b5995e48100f92878de785566afabe440ba42abb37ac54fcd1e733f0597d8935fd7b57ff995f82afac0d4e783418689", + "012cd79610b6f94cf407fb72c221a7fdb9b2b8174ef70bb5d97b3f53e2fee314ee2afe", + "5080cd7bb48e64b2b855f812cde4b82ba8b261b49e52ed3dae7147706f12c601f721527e56d1cf8d4de093e145d2ad0d20c8f157ba6a757e8a656a2a797084f3d14e2f1be864f7bedcfe2c5483fb4e62e7ea025d287c0c1060e0135494a52a1ce2cb996742921293a19dfc2bdef3a05f32879ce07cee28d6b2e3c4e63468bea870912a1fe396e958b0f75522991aa48d7d2a0675764bf624607ed341d5f1ff8ec18833816eeb282d2319fd65bba88584b3f1b08f9ddbafacb4bc1d2a6c3f18470af2df7e543297bd5fedfb0a24058c7772fbaf8068829387e5b142f8ebe0e0ec96f089ca471b3d7b370fd9d8ba5c2c45b3c0b552f337d34f10a40965ac71b93283acc44010f768d3b75692a215f8621c181a064622be68aa0ecea2957ef178b279e423fcab67bf7b92a1c7f1d0931a280b77fb674057af880b45d2ce589deb3cdb37a174d743899225872397b30134943f35796c786b733f568064f7fae485" + }, + { /* i=122 cDividendBits=1890 cDivisorBits=369 */ + "023b344a8c4706406f902dab22a7887b798fa18a8161945b7dd1794d3cfcc58cdda7406e18c7f5d40b9ddc6bd0cdcdaa304cff06656ba0f19298c7eefbe59e51fc1971cc9914baaa03fe96e080f3293405d67388c74efb9080cbb5ab4522bd3c6e0bc523ce266b3c87bb028168e22c48abb9375ffbd669bf9e8f6198c3186c61f6ac3c2b47230d4164ab097522836c36c053e7c5eb0052ce1910d48fbd5dc5fca15b1ea1aff7682c8df81725238f871f6851f10d14ae10a5f0fb22ec63ea5610ac1f0d1cd233dd54a97626c68933159b3fdabec7af383e53934334f30cc4dc3d07ccc7e22a53d2843ee82c3412", + "01094e255c0bc4a92ce702f06a0bae660eacb04dd541ca29772a328b955da36ef8293bdd7ee2a8358e1adac557aa2b", + "02272b833da860358e4be8a634e7e95b64708d9734d1f1347239c02c1d5942b4205a05632bf007779e747b7788443f2a72bd799a5dacdda6faf5ef505ad7035b9e11c8a6a996b85280e2d839444f466faf6dfcf43aa7ebf7763904491214b96c78a8499066dcb7ac0cb468fb5c2503ec1fb47d005f6a6c7d5ebe3390ac372cd141e161793446d0f3227282c531173f1a205835fc2ee0fdff1126f6f25471480c518a6755bb5d23669acbe889332873ad1fec769873b469a79c5fa6097b19b4", + "ed7f9b2ea6cb6eeb93cb36f1f4925eae988f98259bf4f4e6d653c501614cbedd2b96c2a54a48f509122a51415ad6" + }, + { /* i=123 cDividendBits=687 cDivisorBits=618 */ + "6fd0c10f69f28e9d808bdbc73d6f99390305577e4b336933da56f0abb8580e61cc6dcd8b62505ccd52e5a417f5be0527d71e16886de694d7a56764d17833b291de372b32d49ea25fc74b9e643bcf5698de09b1444f08", + "035e932c964b3b5469bc84a6d8a03154882299f17260bd5654301b074a6df616e6b9e5418326650c21f678b8bae1f4042a1f172dea3b0ae56834a3ba4403f901ceb020114abc406a33e3f220f2d3", + "212f6bd1edaf961e10", + "0271329cc40ed730837c48d898b7643a54999b66d67ce5d9987fd6e8dfc969ce6741151aa2ca451b26b15378c16fd1993f5d41eddc5430aca8baade4a06472b29f24058e788a59dc73c72e1e67d8" + }, + { /* i=124 cDividendBits=1980 cDivisorBits=1707 */ + "0dda6a2d091fb476c3b8fe39f8c3e9c9dc8d89671bb276c1238c9827ef1c0a81120237ee6c92bc19476c3055919f87b581a122364e055a675caae0931d1d27d6d1ffb61f2758d416cb4d528fead387c4f80d989a573508933b50649c1b41a599223e049458c369e260e01fd4cd036104e2bb1c0853fad898c99483c1ff22dfe59e327e848f22207a73cc189319e8ed621e5339d1a7b637165c61877035d5f392e47e5b25b95b353ce7db3722605191a7c3fe17a5c16a1c96cb3e2104a025079c2e47e05196f0a13e172fca7c14ef8eb8ddfc6a5a914ef91db71431b109ef9f6ab43f34e26b49651efca5d22c11256ea6b2599f61b22aaaf6", + "04fb59b2971945f20ba29ea8d8a685a7f49cf196531881d45f185011e10821dc4b605c3370b499645f82ffdb1387201a104ebb9862ae136a7038a5c320410e597be0dcfaefd1cb42a218a36038c92c55e983212d697f99bb2d828f5fbe040ece769ef7d1de31607f8566f72254918bd5e65fe6b95a2ad6302c5c27115efd81cc3849f0a9da0194d8a7c0f1cef970f3ed4cd4d28f21f157414627672fdbd35c93d2d29daa547da10ec79eb2fbe567d3aa6f294071e6cc3e74dd75ac970c7afd4e22f654fa8c91a47934d40f9866fce4654ea272a11010", + "02c7de6b3d0b221167cb3383b033d53e56c424267933de1436a25f90e09fd21899a38b", + "02b0f5c0a34c232992d2261bb119fa1780d6fa5ae9c138fc9271de79ce01dc4d01ac34501e50e4af1207b603eeff76d084eafe06058d0fb225c5ecd49a3ee52e92578d7b326e98ff365a9390549b9fdea123f3609ddf519fd283d24d517e1b07e64f702f0e65fe768ca18717833658f5f1f651179ea35f6e03817adebc54ad398066e2817fb277c10b39de027875af1c3cafd5b5b436d17ff68fe8b44b1ce07f62bc59a23c50b237f926473bc76e9470f672a53bf5104621810925c70b70801e10ac6f29c3a3a3404340be651ba3d557c54ccdecc246" + }, + { /* i=125 cDividendBits=2940 cDivisorBits=1806 */ + "074d42530932ed282b61be8bf374b25aa714594c7a83dbfee4c9d2d41a5c73b1474ed24e27ad43ab5a5629e77fe0625e4006bd0170fc4f4e96cb93f1e43ec91f312b134462fa6d278a36547178d352e92423996ceea958106a7364c42ac103d4e803e506c3c8142ff8f437bf9844f5af179cf82879944b6c508c78dab70ffa49cf20550bc23da27e3fa3b91e2869ac91aab9f7c02443d47af9abcab65e6240933ae3cb4c9a0f8715086ff06d38475e721a4aa22929d49b97c92f05a59c14afb69d7a4d292c2ac335d87c3269ef213cc912db178cb4c325d854d7336a5ea7a8d30788ecc612f7d46ffda2afb74ff1678839cabd3494bfb77e576371760c065f07b709a35d07d45c287dad2ba4c793f2635c520421b160f65ea9e7559c10c39e7d894b77452dc0b3b1064b63ac1eb55756383d8b3a5fece8025b01635d0334e9d5a9b2793ca43277caedad144852cb95c7e89d8ae887521adedfe92b1939a594e6bfc43f1bb77011b40f2c1dae9b898070", + "1471f4bb42ce86a0ace6420a956878c0cde656fdedc2a1771c680afbe9aa2502fd1712a69f7b7ce394f17c6d8d2031e8760d81dcd2c4a85b45ff49a6b8abb505184f843c4938d1d5885cd4c68abc78d14c17d93510fcbbe3af00ce760eafb908f347b397524d5b1ba16a360112b45fc2692eec13d42dca5133a631bfbb824a5055170e446c69f1cebee72281302c4cd388a460774a9fcb4ee3bd5727f4ce7f184143d2ec583997e0fbf496df0a72a3052c503d1aa82c3e5af972d26b9e4fb70203b1240e2547ff5339e3c3bba3491985840c011027825fe43205f5c0b00844f78d83", + "5b6d93df4a2ac16113d150ff375f703b5197495cf02deaed7f30c32e934d5f51c185958c20b4c282df59e257c3535e7c7192513314ea2c6339f341db03ee3ad2712d95f5c064208b51d20bb776294a51652fc00565d1a5d7c962a158d0c4c4fd0cf33fcde670dc1f32d1dd4a9b113752a6b495a825f50102fd6a897183aba08aab5fc9a1c436564cd724693c6ecd", + "0bb9f822a73f5182b7009a8cc3f74e7e4e2c04e78596e5233bd9281ca7c3fee7be409c2a4dd46683105d0ef32a6e8a05bcad727e6d2e6a7e46c1c48ee29c46c7b5d4374e3783643b3ab49d69e0a712e46a9ede15c0ff8fa621edfcfe60618e9c76206a4f3403cbb65205aa871ee3bee1ea7196abd71f27a1b3e3f28e744e1be40d66094b7d5178697f6cca10cbcdf32e62877200195617d292c5e65c419204be20bc1bf64557629af5a1582e9c72cb57da4225caebfafba3b89d3ff4759ff8958eb31f7af1268c7fd00b15b9fd77f0fc5d158fc290f9598156393274faf11ccae489" + }, + { /* i=126 cDividendBits=3222 cDivisorBits=2665 */ + "0babd0d456cd7a047fe88069a16c34925c64182401f0640a6c61a4c6795ffbeeaf01e2209f26f22c0c21437e6b2ca05110a9a14c6b5022326f3f563c9f1eba6502576b33e8d02daada4d4fd6b85ff13ec7a23e4f88c517eb7a3c6b97ecd4f7167df10b86ba97da4d4227441fd93c632b303536a6286110e77ec903366477efeacdf185012fc3c23dc748ab227221666abd29ec296a916d7046f3fb6354acd72f0cefff9430bc45cf7e570d913c232853fd410bd38b860a85c490062660eefc6e5645027ef6e620d0ea80a7a45eb6a1278de666380f53b64ee2e087d521ec944d35faf4f58112da4e0438e72e0e0662fb4c3ac95976ee2bb5d534e2d69c95981613e0d7888239459686452988b4f333c12991b9464629d609f3ef601097d3659fb26a2822b13997840623368c09163e97c411219fcb5b75fa411fd64eb86c829f803c09a11408f296e831f8852cfce8e91b5a47542324e054bcd4d001fe4e2aafbb58c2db3d23366c6e308dcaf550c5c934c410fb66363a558b2706bdac4b092299d453ef2955121210b76a113fc523c44403d8", + "01b7b3884617d3db8648c7ae72a88953a62c47c97371539995975a86ea3a678fe83f736154cad470c1f34408e29171c314854ed9499468b1a986f9bcd21b921fd6d7ec1ccb728513e5d2936410feca6b200c8a2854aa66ea36a42b94b76ae09f5b28cde7dcd7ffa2de53cf699cd3ee050d7dcd523e3bee9fe63de6dca957ab2783cfdeb6c0a989390826d3dcbc73c12b5047885df0437d342b7ae7da435a9131b4841de65e07446bc498d4b01f66381de18b1cf835265069e519b6d5930c47147ac1c297a99c6894df613640949336dfcfbfb96caeb94d0df115ed819d33c8676a19a56487ba1104b8e32dac1aae003fcd4ef8e3fe3fa05c972e89cb4ef79b69472d0509efc649c7836cae43382e2971aa0d70b23a4c8545f08d04c5531a144675e5ea0ab75bcaaf1ccba8ea2a1c971148dc1ecdce3447a0ef163ee09f8b7500032844ad41650435619a44b3bdb2", + "06cb8be3bc54ee9762bb6538ee9ec0b8595b6ff20adc7b071a9fa284e5006cc500552548fe245282ab055262f9cab20c5f39c51c43864fbc3197d02a2de48b1b462f86313cd5", + "0180e10894dbb4b96dbac00ddf5bab5c9bab6a544c00478b0bd165566fe294720ec3fe66bdc85ff48e41b40071130735992bee34e8ceaac059c2e033e00e7ed67e236f69b4a48f93a59f76c0758a65043ce7c7eb451a0655a96f7434973790e54e0541f31dd9daab1ea97f482234d8a67a0d61b54ac17a804e1e182abd9068c89d9316b0142e7e9cfcfe3f51d3b246a47a3669a2d6192cc1724d5df20e8ee4825ee5958133d331d37f9b1d773e443bb9d98282ed521ea60467746a4b40578c6450ea1d4e2046bc24f5b93ec4c7cf2d60e3483ac3cbef3a847bddaca407dbc9249ebc321b6e8cf0ec0183ecb10926c76ce495b187fbdec01325586835d15d138a60f5d1978d9a75f733f37f27f7293c01260b96ef8580586205752681d155aab22e4e9c1ee66d89991f9cb144f7321b24f63c04fa53fffa4fc8c4d25321a585400facf95ab47a34d3ac4dff2f76be" + }, + { /* i=127 cDividendBits=2960 cDivisorBits=1734 */ + "cf4d8cb4b3f3c2780fcde0509a91b6c1fddf54391e72544443b1c7e0cb18fca143fb8ad7aa5c7b5a4c10cc008209dae0d12c34bdf80ec41f9ea2a3ce3f84bc25c249c99f1cf7cc5982474175ecaf6e48b0d5b1a24f61d07b0b6827589a55ef62fe74dd7430b69d34762376c40ecb27bb3b5ed3f07ec05faeadb5c34e4ab23bc7aa0b8fe6d5f6e9f40bd48952aac1adf5ff25683807d9fd647f045f2f44aed4ad8d0bd9d1d3747903c47dc0014b6e9944deae96353ed1a731cb2b0d03e1f3cafe8c4bb4a605cf4a6d17058ba7a499d30ff43bf14301561e7facb3d3363c71e08d31a237ea40ac507f4eb85cf52466253f38b355656bc53254d6d21418052511eb1c4a43ff936d301b9fe950f20395962c9e57de684ecbe30b68aef6d929ce5848d2d50d0ae9574e00a666da4d3be2c5acde55a6cc8954e5f668e5c9ad911f70a23c264cf3a7bc21449bb198848fe6bbb8297fc5fe4e5c8a874604b1a15f725b3be52cdf90ed659cdb5a50b775f99931e07163", + "07b1ddcfe322b5dbaf3b1225354f59c6708eb73b8e5ff23e2f143cf71adbcb89b74a78d18030b8da613b348a3dad68d45183ada9032dc4bc0f363387cda5682aebc60bc920e1b6ea1013679b9c7b525ac68b9d3993b57a91a1d8c52ca3379ad60b950daab4a542b2de230e9ffd6dd8574f51ca0afbbb24624e882a4e47840b7f4ce6f0c0385365465c51dfaa7dd71646254f13326bc1d7d32132bddc6b2af50814aadaeedfb18c3f35133d2531acd1bd5a160aa26aa6a837e25c140b64d3b4f51cfaaab6b4d38f36623fd0f093f6ff4857e48ae6ee3f7a0ae3", + "1af0d0aa927fd543dfc201f80ef87e6a0c811060a2e4173c8f1af4caad021214e83f756e72784ce21464d85f6966b3fe924e7c2ba3f61e80b871e2bf6882f3d16209a23c7d3ef98707d47fef617c416fe55574fc343a11f6e528cc12637fc62a723944890758b240ef01e966ee29f9c480fc59bc44fc16d7ae4d234c8511745a2040043ef23e90752df44e195f54c17df2eb935c68eb3c5739ff", + "7ce691f946a80a375ad3a3c3427033300055d7a49413a2c669053add2b29e5ca274b314e7bffd58aeb42199ea34bafffb80564830ac56a164d3400765d98d0339c4cbe660240fdec26f988d1032df10105305b9f4b6c9321ab32879a20c26efdc471a1f71218d4c145de66b035e91aa2375c52328532452f47ee135b325405dfc1eb86ae07121b416b9c816b978b0aa518027f3f1f10b904086307981c51b9d3d1300679b1651fd9619929513ed073db2f10431d873b88de60ce6dcf26224843b571444266c73a479ce68b4271794091b5ce82bde3be0e46" + }, + { /* i=128 cDividendBits=720 cDivisorBits=361 */ + "85c73716370f2088f8392debac17b431f5dd0aa503417aa6bae37b6647758a159683db616e4cc14926207e6031cf55db6f28cf5ec73aa21e1ade8bc8ab1caf5dff9beed6eef20846b9a808437d2eb2868a8e1c39f450a7ac8b05", + "de5913d58d7fd90716b0f0c0f0c1c43160b991a9784646cc688599646debe9140fc7af38871f150d5497f9f03e", + "9a067b45a3f20d5be2da4ddd3e5097a26384721cc005b92bd2e34a31eec231dfcb6eb403dd5a6b4eb1ac3e7d5f", + "08e0d13cd982edd75b79c3343c3deadebcb2254b9517ace544e1e70d56a2c45716a8b668efca62f8e7609a1e03" + }, + { /* i=129 cDividendBits=326 cDivisorBits=316 */ + "24763870619a218f0c55b715e7a4b800bd909b55a1657fde064cb45cf7ac591a5c974838c7c5c8c83a", + "0686a332824e052f5b0e270dc0482e9f87eabfa065d550013496dacb6485de7aad5e75287bd976c9", + "0596", + "0224d43dba509885b4a8ef179183919c5750eba88ff2f74a8a0a30d42890591829a5c8a3f50b4174" + }, + { /* i=130 cDividendBits=605 cDivisorBits=540 */ + "16c7622b4ebfcf57226d33246761fc421c630014d3133a8dfdfc5efeb7381feb7e930a785236465c164b46b839e8da03f96e21c2f97d3bca9873b8588083ef1c591fe83576d3e38f0482b51e", + "062275d77096a8e629ed108aa6843e821768db00347c1de27bfafd2204f445893d7332987392be075f7fa3c2a0d17bf7b6f0dbd56ad11272c7f72102dfd74a33e908615a", + "03b69232a23423ecb6", + "02ca56dad654938eb8dc5dd49ae13699bc3ad762ce3a0606a9a813e43f974331c8dd56504b743af0da82c5ad18ca3bd6314166aeaf6d6dfd9d085be58f4988f407808722" + }, + { /* i=131 cDividendBits=2009 cDivisorBits=1103 */ + "0155bac736d38070a59c61e9021b0263ebb85b85850db222d33637697aaf12113ddffb95077f1ba83d1358a06ab2aa9ad2da72b5a00b4d204eeecc9e55696066fa760776c1860a15224449153506852e4d477e17f6c3e2c144f81e0f1428504acf8a92d3d62096ec81a1cd03b9a2ea4866883e2ee5b23785288ee117458aca1d663fbc8e45ad8f7adafdd3e5aa3c3c119df65f28f42973071d2d1bb5bfbd0b1b74f9a7010edcd36f6e5a077489b6bbb184a9e6e037a577181bad3182beb2c80d298fc7c5b5b349c71c9c30370b685df109cab1be728cca8bb50215fc9f02f70df0d6f4c5dc1c9cf0c08c80824388c7a18a2109c37939b2ed2b618d64", + "0d1e7c2354e2a353d16ea17dd3fd88b57605ce7ba7f7cd5e40c96724dbb8e32ba8af4d58ce57d860fe3ab67e9054bfba8500fc248e307ac3a180271b26f4202d9e089aa3673490b4b5ef5ea09b9b0ca8ef1d6ca9aa6f43a65ae9fe0b912cbd4223c180c0dd855cc745f55ebe2093f016d7b2b28bf606bdf3dbd8069a61b9d13f36ff99d81f3780a5f6e1", + "1a0c5c85b18d359888f78591fb2a63388f026c664d54c75af3b2c8c0259fea1ee89009a7487764770eec3671ed09eb4ccf17488e83edf9de60925a41b2370affc480bc8edc5d20f6a199ac50bb10e12907e8f334286433fb677891ee1269b54ec0faaf397c10be746628ab36466671e3c93b", + "0b98c2210460f9340a6c3cf7bfc804676f4e610ca938bc15b68bec508ce460f7a0bba2d3dbbe9fc6923d0715ebbababe9128e51fa584dffe460c09200352c7405504e4abdf357e71d04231ba0917092c634c84f23d8b9619b7dff58dc6d97f7398808ca0d7d152606c0794f1d372030e71f3c36e5b55868ec99f2a4c6b68f349074823cfb456fbc7fe89" + }, + { /* i=132 cDividendBits=3233 cDivisorBits=2690 */ + "01b40230058876228e54f9f7894ac29e3b4a1e087669129b18b15b1d8b4f6e2b69ccd85471beac8ad523bcbd0239b1a4443f987bd67e3c6ca01448fea696b9ff30b7dfa54c49c56c1dd6169c305f49b45f0b3314fbb03d313e01e5882388f7b814a4416298c926312214fd5d7db2bfdcbc2935062c06a3b2adb9809906ae510f2c43d41b0072c0ac4ffafd637b4e02b81ef1d6891821d5628b2a19bdff3a3424c2166b326fd2477bfc5cae731fefea889502df535aaca25dbf95f1e6cbf21be95ffc6dc1a25bb398383031b3f8c52889e89412e88a6caf04f1b7d94ef1f7cf56a2c2ce171fbb78ba2d09ced4be788fef5584f9b5822e2911a79466890deb7da96480b5a7431e4ea44dca5e68a057c7ea1f0057bf8b300d8aa2d877ddd4182797981be4c3602f54539e459f910b24bfaae655507f0ecf6403474fa17274bd3b3f622ba8d1fe060d707a1095dd062aca4b6cff540072e987fa36669596bfe2cad286f0b5b28bd62e81d99ce7a5ac499683d8854faa7be79695b2cd4812d7bbd6012dd5e84a1744c1751352502068a6e974f94aba6e18", + "01eaba8128360c103d35c4efa3cb251dc35266d0ac68cff63fe7b9337473e26e593521d85ff44cfec1bcc6ef89cffc39a1af1aef5c9cfb313ec26dbb96b334f9710e4e987b3cf2c2fae482b17256892005c4f3fad9fcf6bebeb6c0c7344696273b5042ce0275cabec51f0152dde6b61f9be63de6bafaa4da4bcd6f91bc90566787c72441d340d7a847c5640d888e9bf6e50c122e89a89c3f16a9d5d6dca8c15c79288873f8c6d140880f60d08c03498590ca8c5e7628cfaabaf51c26d043d26d1e0e945598858f4e51e4cc4b5a2a56afccbddd0c73e52ec1344cdf054f9e2a37910b1ef137882d60941afacca381c73f3d7e7d22359e14dbf036d594da1c78a64ecceaffa5414245795d4b6833312cd1bb12035088fee86d45e35e43c7040ad0d51317131cd739c94cf403729eecfa4b45ffefc310f377461959bea52e438d8604137a8c89db8f8869c86f70dc21cf5c9b", + "e3743bfc2930ddb591bf881b5d446dbcac688fe02d69e29827262ed664ae5ee46e8721639b19b416701cb99f97048073ddb5f3540d8d197575859b90af25f0b5b60fa4e8", + "982ad1e17139762233a04c9825994a31f2d35adad6ffe908d750f3f9667de32f430d3c9003a3016803cda22d0b9129d946bf9438a27748a2c9946be2f3fe27775f68d9a1b86cfd6c20bf02adaf2891709c6343abf93b33c171f099a831a00eb8732d1456ad99fa113e417452a9a824c01b884c6527e8ff3fa324bf03ba5d1636f0e00efa95102092cca54ecf7fba6416dd5b2496247134a2ed4dec7883533a43515b900a4badddb3f634d5250c4d1b2e3733297f53c5082e58a9966647ac65adcb467c09e83215a241928cba08395e1c534d3eb1c7ca8b738d7ed20dc28757fc25a0667680cdc752111d09792aabeb5fd7ddc6203e7b7e51c55c6a744780f0d1f413efafc3235432d5a3119faa48cb4d85ce15f228b0c16fa940043d70d319ecbd004b86ded9bfb84c278eaddcf4250f9722454d45f3ba22f026038b53f3e97fffcb89f2b1630492dad9f73e306635a0" + }, + { /* i=133 cDividendBits=2743 cDivisorBits=331 */ + "0bc22a8b5ea1b376de8409b8e2191641497b77ab7fb69d4d05ce2b4516fd2734ffed98bde0503a81c3ee0eeadfc1d0a410d3f784a7cd1b107550a79c0055208b031ea227f35e9e986e0742b30e4b1b688ddc0a05087432b4bd6cfa5ffb8384b8651904a612e9dccdc50f526ac24300dc16fcf39f2155c75b5c6cf1a34c0bfb233181002ee84977de8f1da81f3ec8ecea5c1c27ffeb948ab68f04e61005591735e8b0122104a0c63fe88a5dac1f99a2cc372859c30a5f6b2e0750c2fe6512e8ca54cec782dd28096b9bee5b9217fdf02bce37f5043038affcfa7fa7fb0feab4a3e28060331092296df145d5f142c24fba362e2c048f7b2882429d3f1449773a53a2d5b14b6f7f657355b2cc925381ff3c9a5922c71602c881b61a0f895233b31074bc88da6c136a8627696392ed2b8e7f03dbdecc4b455072d7302eae236a26bd295dbd8962954c3e611959eb54d5cf49eb92c83c11487b", + "066fef16dbcacd63746e8453240b64ddea2a1aca133f0ae809bb7b042113bf2d550352c69b803290a587", + "01d39e0c4a0073b032ede546616a65eab11bf6a40fa3f919130a4fba4e5a3e34758975840d68795ff17c16508fe113c50213a807aa195797df1ba5a33c4bed6a577435cf8b0208d05a3cf79c3680276854488d42fe2764e667137bbfa6271928f1bc4cf741d5fc332f4bb89ab91958c9f90dc6a6303b1c6f2fdbb08c469e089f665374c229c29efd62a4663edee34d7c7c143e60a7d5728b2f80dbb5005cffbd587f69989e4142500fda77ec1f1835d9cdfb411bc6095e81a14dbff48068704c76c3b4b5a34509d3e78550efe2ab20921d1665dc839bc0248373ce202de3851fac953434391eafab881e7c7204ad35d96064a2b8f1063a105b308ca8500dbc90c4e826a4155a2e9341a007a7e20b80964e4b7e2eb21de5faf800f733abb839350c6a7d21a714c9d8dfd17702d675", + "0590dd99de517cc70adfa8ef6d8c635dc9ae79a9dac05001c0a5833009c96ee460feaf77f8a22988c7c8" + }, + { /* i=134 cDividendBits=1859 cDivisorBits=1377 */ + "f098a5e81a1f0eb9b0964e286f660a33480b0adeca4bbd033ecacdb4947f01b909fb16fe7d6a4f3e5f4f7337cb234c6107cd63535a33bbee6c3afe5e3033116ddf00bb030aafe6cf439220f31c8ebf2e6581c947994a82c2893e81994b5b488c12361cd45b522140253d056e5f564325d929c419bde5c750b892f6902f4be5c44364f4d79c9808721727a019b97e44edece9828a2edda7c52ac77f7028ff319f2ddba98d17150c3090d93600970786a5814fdf55b5bb58c3794c4fd63a2a1c58a80de7a978af5bac97c44208d54332acaf1735134de5197b3a3e0722c2d43ee48ee43199034c0e9f", + "0145aab7946650d16f41505aebbd8dfda03ce9ef7c499cf16e773a6208fc1a8a116cfed9c5c60f8b5bbb8dfe6a4cfb1d9c014c0fe80cbd5f553ff4cc64532139eae39874021ba5d0f95da6e37b551b5255d3e886350d891567c056cc82d50d239922705e5c2619f7715aeb383f45d0520f4466eb549a5302e571571f6ca3c5b308b39a2bedd459c13049e0bedc1772a986d95a98742b234045787905790f404962f55872529f88b16b05494fa5", + "bd20b59c5833fad96a72188161ca6933bd7c16f475ae09e11acadc8877a94fe3a7d35333833e4aa41b0e082f73ac48a088b4b64418109ef63dda4081", + "c412169217a605254e2ec137f1e9e2923c9fe3a4bb0e53ab9ec07ac8cfc0ad5b6addb2be62eb7047ce78e8a4f50c4dee0161a142a4aff174303c87193832dc7c726b5adbbda8eccfca969c6909b3964dd5f02964949af24e40f9138991a25f0a78f1613a60e7f63440fbad7ac3c33ceecef6fbbc56d929e36b19a2dab64573f7256200159b99878be41a8e45b599682e84478e32c6f2ca56dc5d673d71859c2c02285ab7a358b262e1efac7a" + }, + { /* i=135 cDividendBits=4029 cDivisorBits=795 */ + "0bd9518743b26fac3af25ce04cf0f2b1c49e2ef515d33f66d2e7c9b7c274797cc83611d12de70671f6c35fc314b893eda46d582590c3399595ef13cba9215d5bce1c24f6cc5b26730e58d161b0184263f8dc6f08ff8ddbfb23588050275f9885a783921dd8094c650c16b42bdf8063defbe7d2604d2854431163ebb1d9f0b97cc51d7ca2e5dd41ffef6eff213a405a9f08417f768cc36c8272dd0035926119903181112e15890e05eca2281715ca9e5330d6d105d0d0ae52f14e333223cd29be08f14a43c99923f95f43c7998df465caef08b4e4b8b92ab41e7f89aa15171fb6144bd2ee782c4c3d5cded1cd02e0ffc6579db0c8750776947bb6a33040d7734b8db8f95c688175ca2ae59ba8bb7f039a7861ac3f8402f36aed01f7445df4eb8d188510d1ad54852cb9ca225ef24d4e50294fb129218f46abc0b45606d4b28947046c2fbf4f1cac5adf8cee96e24931861e60da141b9b99848e345d71278fb74c0d120f03799f9b65d0b52328d20aad94393cf658cb0ca25f8ca9759744aa7f1361a8b690e83fd2fcd7b207a2a35a26030042a6001cf54808f7cefe96ca75977b61589cdbedcb58cba9abc80c75121ff00be400a89860b1e58271c8546ff8c732278afd904402a27b13d4a2ca47ed4d9695952aa3c4686a91bbfe45bf20d5163dff88f40f6caa000f46c31fc523c6faf2e70a813f8f29c796", + "04c46ef8a401dc0d34d796bec25c749803e1bb59b840d3e461f30c7ac9705f8b623875997b422d8f807be68bfe1bf5556f1691073ab63d9bcf5e7f8f5b6382ad78926e726af6e0625d232fbcb5880c1d4ccd9792090860fd69cd8ed1a6fdead7f0936e82", + "027c46068ba0dd251e5a29894b4e4a78341b39328a995a81aeee54d18b083aee450b94586f200f7f6c80dba36e98c38a69a1f2c5c7e73ad0bd422ff75b135ad31778009da728b96d052fccd38367c6c5727ffac4550cafbbe5e13827b126813271c7c5351bae512ce7b74ee0112c12f889c0684cb57d6acaeacf82789c02ac3b887ca455331d49ce031adb96a74e7d0386bc138a9ee8a8490c6d8caabc98ba126a2c5e5c70b075c5ef1b871f995b0dd52aaff155f3381d81bd8512a7ce7f5180317a6150c85ebd0f700e0745741d337ae064f7361b82677e7e73a0567d24e7a1350569faaefcb012ba5cc465ec09c4775bd3b23cca8b7ba9a061cd46d5b8decd41da02133c82df64d5211e463e87773b1176af9caf216947b4e01063aa61d53f3f9cd46e477baaff04a52d16210a3017e29f477c0521ed4bd65ac5d7fc3a8af0acd5f3e6b82cc5c3d584f39032b36d51292e8c45a34dc1bde1e724e396ed3e4637251cfb1018ebcc6d39571423e9f3049b824367be3fc70e7f54366532612cea6b3301d0388f03ac7916bcec6066a7705f7058a3c2", + "662f0e242c63cef4578852df80af75c2cd800b59b28bbc593e918fe14dde19f23fda367f793aba34e0710960586f513fee54dd8ba07e150f47e3212bb7bc49f144252d1995483d3ef811e4f4e0bdd657df422f97c4162d829e2e5fd0bef62883634312" + }, + { /* i=136 cDividendBits=2867 cDivisorBits=1636 */ + "075e2decd6977978122e34cb52ce92faf6cc5a7c478780a4a5caad75da6ddbab34be5e7a05ad00ea97e35f6d1fc64835632e2fc6f80736fcaa3d438de74251e234a5497e5a4f7c1b0b672f550ab8e75a637d7d7a7e35c9b5b59d6cbf347414c95875868cc6678ee529d5002fc6c7e9453d4ad931be4b476311affc03204119459a8e7649a679fbb682c4c50d98de81823a36fb441a210829c8bcca17505b471a7d76cf8824b689b75006b8ab3843f98f90395d080b3ff9fa74e792e7c13ea9a5bac28ddf407d741e2b4bf711a0a0f311168efd30d544689501089aedce8e9c6d9ac70c99d600c1bffec2026d4ddc159848964ed11dfe1c8aaf915a5a5afcf091032e340779047d8d39e3f11ee062a6c4e9d8bacf6b9762414751bddfe6a8b77cdbea4b5854c60f38c13b90a153cdbf09c63b83f9e04a358303283c266fda0af32f5680640966f7c82e190e74e69c48eefe117a82bd08bdc09fbc3c92f08f7c19c26f98251428e9", + "0ee91bb4f7d4387f27d9a2322db26c89543b0439b08fbf703a4f8d197e2d083518619dffd320242adc13ef80bc3678e00d0fbed4bb53b5fcb8655809ac99b02e7b3603ea90515e2429b798986304c7c5d41b709976709580a73a2f5fd3063cf0f3eed237578a6b146e3cb3bf23efbd4bb95ce2ce7dce9e2431bf332fa9adb35f267d8fc3657074fcad53629224648a307d32685b9eb9dd15e38e8023e3065d899fa6cfbec8314448f005c132e64938c4ef5ad4048458343e98336613d98f039c19dad087095d2e23c7b1e0d748", + "7e7fd91880b4b5b535e0775b1f1cc7bfb155d3cc032e4f08e6cf36d1559abc4d81a77fdff29046f3c53508c1eb03407e5eae3cb4c91149da35475269938561c236cfb4f4defe680dcdde5562abf265576c891447dbda573254fe523f487cf2574d90afbdc43a3ece21526986e3ccd6f07455fd38afcba00fd2f6d8ad97391e0ab14cff6996370893376a029a898c6591f2c2436509b1e60e8dd9", + "0774100b51c41fcaccec85ee647c8fd6d93c865ac8362e129f0415b289a79b63d8343e291483ef4669267f110227e274f93581908687f81d82cb205399d2f74d1b26fa1241c596bfeae8d0dae9103f338e0fb02091ee267fa2481613928721c42345cdcd73c320778b9e5e86690e177084dec21d78c711ad5937bd294301c8d0c4cca40056ed9f2cb93a65d7af049c560d27e0c9d8f25c3ff713fa6b6d8d14517bc39ff08b6766f1713c2c73b2af152b3e6cd2b9d119415ff4201a9a597904b79d5466669ea9c701db10fb04e1" + }, + { /* i=137 cDividendBits=2687 cDivisorBits=2157 */ + "08416e963c6d5c2883cd1deaf4fd3233f2d5e8edd8c161c5b17225a07d6027f7e3390b9fd40b7bceaa635a223cde8904a7c8a448e8936a80c421c344868b335bf8ee27bbe081b365e4a1dade7e64d7449ee0125de903709d5cb631605ed42e44f763ac2b8f54e8f503f56a4a0fb41fb9501cfbc2b80497753c10586d097baeeaea25a3cc1c5be735f98d77f4ae557528617b5d84536dd0b7b097b2cb441222d426dc0fa78a884b947df67f5484dc6be9257df1b45902956299064d6d678c2d47866c39821c0a3271e970690c50e85eb40862016fb26a0a53317f48ddd788708536d9a2c6e7a9607f898e3aeba6bac0250e4a0daa56bc8db3cbbb07a13acf2bed52eaea9b8d59e81e94d8a2b10513f48326acccca3a199c6bc821a4d90fb0a3313f80ebb60743c1c96203b141e0d69c79d1e974213bc2432e49dec79c6c28dae05cda4a95e24180227e73452b8a8cce85", + "02e7f81634e32ff319be78c4e1f5fafba55e2b2cdbcf76e2edec0f310e9a238254224a10fafde62971d6cc1f06dff06a69928d9e939a201692473b6ecdc20578fce0592fb23bc8162c5ae989a92adc5a8ae1e5caffa9f094f5eef69fa80a70a2c85020a8ab3e653304a9a03f36c2a7b20a0f577df2425b7fa7131ca59237db93d0109b0b923d24a9e8368d20d1c490502b715099fe4730962cc5296c619b7941bea14c8589d875f3d414b5d815dabd89c86c1cec15c6a4f9095ecae7610fad64c98042c1e8db333ed0285d22a63315658b9bcd3b53f2e06af5790046afd96ee78404b776eb78b3473da08a15e87dc8c80f015124831b6116a339ed3d53ca0546199e1b6a3d6e53d1d2c8a67c354f", + "02d73b8cbc603b4fa9ac6debc2b2761520a3cd4d172df91928543af8bd8a564fcb75a0f6d5ee17da3aa61454d3031f7d2cdf60b6c46009c4725d96cd5d27baa968e4cd", + "02130287edd9bcfb6f12b80e577c8da5e37e387022f93396c750b54cfc01af8970bab721b650a85cfa883586107b546b78f8f0b9f670dc3b4b019aff5fb35f9f2f5b1f607572b3c3ab65d27f20e083b166a3ede77e215af7aac2fce4deb7d692d6ef8b31e164ab31c34ecaa2b3ca702eba95c3e6188178b1c2f2c5f30141bbe059b4f3af9b5ff6d09ab802a855906db9172996f6e44cfeeb421e7874604dedc5fbf8eaf8044531b3b897122852a54d7d2bb1c7d427668b60664d9fcf37c0ad0a5bab35533d7db2311fae769889d0078232d91701b33e04b0b5669e92556c706c37d074838ecc0bf3b7082ea6306f971d9f1ea1eb5499bad2902c7bc76727eba5a4f28237e27ee536602aca83c242" + }, + { /* i=138 cDividendBits=3925 cDivisorBits=431 */ + "14ad00dac42b42d9041c235b51f02de0ae34e1dbf18d375d459dd22de6223120f489df6491825ae829e35257b6d191c6a2d35a0ffc723e54b9686895e536978f874b38c47464ec638ca8d3c036a7f6faa08fef3ee32fbe0b444c47033c8b3f55b21cee3364b2f3dbbf039a44c54913e92b0d4dd1b6b25a53abf0c59ed2e5f49b2e445a7acd7b8735b6ada04a4e18fe47fe29c448bf04f8514d9803a4a56a878dce227b79e36a3a924e306a62da54bb7b41dcac94c66fdc4a64f833be8bc165e2526ed8813abe186073e0c6b7d7354583a1fc705bf2e138b5e7ad1b8b9a3fb84c9ad093916b2bf6e6f4b6f254ee0acc2bb93d1245b2bbdfab189a76b9d28b44f6bcdc9ce5d83d58ba1f327ab8236e05f6ecac38821d923a43ed53d78838b18dd3bbc1143e90de95d9dcf96f4d87579ee4655d383ebc85c72584e4283ddb872096fe1ff092daf60deeaeeeb8ca83cd9420df7d0a98240c92acc28d6b204527383d2cf83691e977c94f361581c0ba556299050eb946edb4003615167c52e6d59e5d91d0246da53494350d3ff391bcbe26be31a31c53cc7507acad04bdd6064147155a37cf2f7eb2597c8eca01581c7b19b91e6cde3fe0ebc3eadc132127a86c8d850ef9c57e77bb236118c3e0c0f3b5be83622d66b10655fa85e52c58eb94b3bfb75034bbf262c47676dd618a", + "18c47fe7ca8c7accff16dbaca39b2773fa5ec0fc2fa62deacda05aec2803de21119de7d61c30005c245614ac8bf5d5c68cfbb2d99e8e", + "d5b4fad9e5613b68be46ba89bf284fc3a90a131f9af8a98559782cd73961dfedc4deafd99226bc8709424ed8fd2c3f2add67d5828629a62d5c221ed718d2969244ae379730ae73b3bf618003c1ce74cad78191d7cd74d9b75de6ff6059b215cea19484b23ddab833f50549cfc49188bdde4a0e86307e4e11a0331a728ddca3baaaaac13c8338b53154dd14350436a63f4b1a4755276f636f8e7a097b752f8900e0dd9706fc87fd759c7eea3d37bb2fc0e0a19f616a402efbcf55c7d326523b23c0b2eb8898d1ddabc8ec794325d86060ef3271fb8b2174ea1bc08e4f8e0724e3261e2a3ec9d296bb700dae680824f8626582f1a658ed6216f9d9aaae97090679dd457a5e7b36506f14f6400ad5a063296f197f237cc01756466c661fc2b40dd474bc2389b8e580894745220a7eeee6bc17a3d73c3a98998f7f6991f3e954755b93ea5f9bcacb7c139dc0206b3d30016528b9919ba92e5403ae46c9724bf21e739e481c27dc17ef63b615e4d6ea56e3bbb4e7e73b44904c61f7e3138f17ba4e60dbaffcf1e11f9497f4442c3f49afa026c599d768e7a4a147e54d470342abeb11f8455ec9846a013bbf7e2bf7fa8d0456c8f05f6d81", + "05e80f83d7b390816d4bbbdb130b15399f35866072118af789a52ee3464314aed29d145d98f6b541f9ccb9dc55dbe0bb9823b80005fc" + }, + { /* i=139 cDividendBits=2971 cDivisorBits=1831 */ + "03638f2eaa97521644e93b7f8a8cfc99e955f8bebba677eb3c8b7ba0513929a395fbba99b7cf75c7d15a16c1269442a606397d52fc450e60e09d613faa84bd738a8fcdd533dfdcb8e185129c092a84e144faf29f9447251530ed42c6fc73a7dd6b9433fa324b1eb4e4c75209c70636dc4a808e465c27547dc82e3495d75f892524e9356e3892b98c97431eeac0a86159367cae271c32886e9a685f3b89c2c39ff0de9d16fa7d2e0a2aeb85dd1b38d1a7cc85c97d0da3cf189f0d3f0ac520460b20c507e287b810afe72119accabdf26e2e8ee362f52e2f89b3b86c2a4c2b4879f74cd8fe8809d05f56a6391e1198293c1cb2b4fcb039f532a117bb9f02616b59322e2b26e934b08d76488ebcdcc920a51db1f732e5ee5005afe07343a395ca878c30a43094e2299151705962ce9a4dd5e0abe1021023cfe7bc0540f91e991b846f79f82e7a93911309e14ac4710bafd24a4584e62503e77353105be02b521575f31a29e15f970bf243a51ad6e7a23b6401de0d3c", + "3c2368c3aba02a7e4bc47a5156f02af2e1c25e7489f653a4db633bff83687b47b262b534ddf8a1d238e42dbe74220f052c8c7d6877bb9849a10d54b069a0d6a0b438160536b123fbb751c7fad2bc2a18c60a7d23615d99f79148e1c3960210e29ab95a45d68ae579802939738251098b2f23580b269e75f78b93864b5e1713435c05df1afdb19dbfc9bed71f031b0a45890b1f79eedc84c6490a7d6e8e10d0bf110b57d6be0f78f1d8dd77ba38e716f467777072d9285b08f3bef8caf118bdef8b0b4d97335ec2148dcde80026cb10ad51f9ea6c8f1fde8867ad940329c7e0db067bcbaef8", + "0e6d12a1342d54de98fa7ab9ea68ea085730d1541ce23adaba0cc5e753afc5b0151460539c3d64ca4beffe4ef03c2299ddf6d568a129c5b75770ace3a86d91fbd0bd3eee4acae606b66dd18ce404b2503b2ccfc8685cba7716232167d055fc61efe0c6400b27fb9f855ef539d911b0360120f6c7ffc866a7f8ff9872eb90e3e4712b2376090b0e5952d451fcecd984", + "1179ca9e466043778d453ffad86a251b8e84fadba9c209ee9b931a4442c1a708632bb62b286454f099dfe3e7ff6f9512abca99503faeb1697ad85f1f4f858f16cdf46bff2bd577e0f9104b47c37122efa943d9f97e41f16f595a696f7ec6fa0ceafa7ab710938ebaf043aeb9c65038b339c251abe3bb9fe6a831df5ec128896ca6ce571451b7d66e5918fb1f3c917584f08a65f7e61736b079f57a77f477afd9882dbb97ff58a1da27056ce0b471331dbbf7ccdceb89dc384072c0d99b3f49a16dbe22a0ce38e376a003d287cbb02d531322ccfc86f1c03e7c685b17c5d66a70a318e79d5c" + }, + { /* i=140 cDividendBits=2927 cDivisorBits=47 */ + "228962d6006ada97a03d502951ea6b5e8cc5c4af8ce943fedcc5a4a14d28dfe8a6d33ab19d0eceab229ea83b8c82013a8284aa5d2f3b7a92fccfb2cc7e4f63d2923d133e35de908efbfe6799de1a2bf18f555e521fbbb127e83079e96cc1586838f550fedd5bb9398808d7e1cba42fce13a277201bae645c451e379d8aaab03101dc07362c61b36cce7e6237469522ba9136c7cf5d643d0858f85ae49695954bc9bb244e49d93cc051dd7812b968204ba7855aa49334505bef9d151c78c774ccf5f392939f2020e05c2dd9a3036a9c0a9c162e11a6c56b85b628fb9c3e5702617b13539e4d56767e4da1d176952a97fba184da5099ebd08183aac2665450e2a13ff74b23a7e72f09d97cbd976979d659d9b603bbc05cf0dd551aefb700355f810f987e3ec156a30e4a0befbb51aab75abcf21fd7ec5ce66137eba264df2a6bb1fe5ec60c6194f495fa6ed64b8fcf0d78efc852c6148a5f4e8e04465c7bf6b2231e18ea72a86875e7620ca89b8ff2", + "2f7f7a558a94", + "ba2476b6a56278f36f1237be635bcd3ca7913628d04e1cbe1aed892ba7fdaa2f836d09cfc2f570ad93aa3748408df9a6fa8878bd20813cf3026219ce83e336c48c0037f671229fd6bb0640c6c7448a9521d651d7ea32e28721eb5a5e943d4265884468932f0a2b6b738965d6a6abc1ba3ba809a3aa5a7b1f18a396f2c7f66807d15f1be57ec3614ef01467d1d5677ea5b8d3dc935943bc576268c5ce3a07fa97d381a94484a0370f606210c70c4c5053a1d0a2843828aa786f2e864866b97534a4556cf5f4036d7c44035e3005e6df7a1d6ea701792e3868269b33c99e685f734b139e22028af23da067dff224a8712bcfeb9ac12f5ac4d08df1481c809add9c9ae6f3c26a9150045258e2fd5853d8bff129c9adf04bda5b08be1dab652c2e9c8fe33818a2a8587a48f6be41a09ab420730dc8c9136bfdb8fe248b03d413a0fa2e3bc504c90dfd2e269d20f68379e4267dcf80c37e7de0eb16e08d87a5b17d1dfa28ef30ab93487b", + "2af5638c5ad6" + }, + { /* i=141 cDividendBits=98 cDivisorBits=43 */ + "03dcb05b0b582836a32dac3473", + "0566250f198e", + "b71fd524c0081e", + "03713a9ac5cf" + }, + { /* i=142 cDividendBits=3020 cDivisorBits=2684 */ + "073950287a668e224c97b5a3fbcbdcf27b8dc8b9c58539cfbc31b2880246c413e75dbe2b7c8a0779aa12687afee5dec8dcbfc25d7862d005fc5e0c7582512d0bfee979367910293aee3b4d7b789855a6bc56b401b5309216add76e47b9f845a417cd476afb2b34a23f2c4137c2387dc161716286d00ef3c20f44e61ad354006948cdac0aa2b8f968b60d9b420ca0fc74d0fc66b678d108f341c1aff86c4134f3102522e8a3ca26c97eb6ec678ff69286ba849b18021ad448b9af81760af9863b71f7c41399df3d818fc7d123c6173c37b740a6e0e0c1139a359fb0622215ab2de402a07bdf9b7a28bd90de0c3414e2f576403bff4759fe0424ded65e49fcaee64cc433043ab1efe63301bb25567115b095a2f7c8006a6d026cf66aafae68bde1e404e17cc74e8ce0717339360a2a7b24564d750326d83d29f52e12636a2f707a3641cc8d47e51c0ad2a9d4fff0a8f4dfb330c8aa725e086fb78b3b30dd4e4e417c510fd84cc03330555a7bb4cfc1b29e2113c82697b4c9cc903c", + "0f25bdeebb580611067647cb83bd49da415cfefad7b236ab117e3a95cb92e3d31e0076b3cee1a2e8d7cc726dd68059a0739f130c173c6ba85d72b1de4e8ab8df95b7a5af1b2766093993351e0416357ebf430239133061a61c9bfc8ac7a2f7d16536716059203afeacf0938283cc4b146430d343b6f07525277ef5c2c21ebc9f517d91ad0e31031d332585bc8ace55d5f44baa6f5e9a9535422696ecf21c50dabfb289f217cf5ae6e5712bf6efd9677b95cc3756f66d8748dbbd0272c4147c4d67e5285de431f304fa8646755be993997d1c9155aeff410318d19fc72bc62400850436f3e19c4e0228f39a1309f574b8f8c45a4566aa2b6f52a35e8793c2f6e43dbed2bbe0b61e1c9460d5647c9b9d29be19bac3b49154c3a9a7f3819c1f5c1e9b037a5ab3f941b08c2cfafd6e7a78d58e2f8dbfb1a38b445b57834c2f73d8cef8fbc4456655cb772d967f9fbb153b8c", + "7a166c299f643e85cdbaf917fa86f330284ef0786ed857144f62db0e1db64ad3b279c6e75636d9bcbe90", + "0200bc945dda7564b36a428c55298b3138acaefed48eaf6d52f22e4e2a4b32b2902f87588bd10218cff3efbb79b8e2447ddf7dc6d79dd0c1ab0f256c6e229bd35b4323c60e0350633c9f01e20e42c529a78a8776f6831af7e12d72b5122ca67fa2389e0d5ad428d1e9d7bd72d656dc235bd426c0611b579f1c1a88df754bb9145fd9b66e695e109af06a69924be86c4b8f5fcdacd7e423a25b749dac0d16b2cb0f039bbc99167e8771a2e71b45f82ce1973cd5c6bbf1df1dbefb9d946e4f1452e08230f53bc8a18c7614a73ef86a21a7c32bf8085a08340891b3465939a383a381b6f6ba02ac34d615398d6881272f6cefde5b043ee1ada14f199521f02a5b81bfc44c388ff2dd6e4e2991701ee2a863d35f55190930ebe13c80ed849ebf24c151b24b9a98366b53cec00bc5da5e7b9602221ba974155dfcad6741da5525c2aa715b9e8166e7df92b614466864d9297c" + }, + { /* i=143 cDividendBits=92 cDivisorBits=15 */ + "0e142f6e8c8cc9c7fd1ca831", + "1d71", + "7a6b3e9e186a08a07df7", + "132a" + }, + { /* i=144 cDividendBits=2834 cDivisorBits=1899 */ + "023f9460d45cc5931779f6b52cb2c5f6506c5d5a8d5fd23ad550dcbf589d5dfeccc57ecf709210f996b7a3deee5f34726fb99b6ba0cb8acbc3dd15c8e1fdb25f79511e7cb6aaedf08b767455602061f85912e4fc70e45b31a19236baa8dc79e30d328299c13e8c6c1cfcfa009d2a8f9ba86aaae2bd37a6d216f6e597827ca419a99dff43bbc3b042324175aa93919ca4a32cbf98fb384a79d5156dad9a747e520af032d125d9934a9e338b7d42bcdf9a7c052539a85898f98b5a370333f05cd915319afb693378e027df6072607a074c5ea8cc148b8911b3d8dae06555a8a4918458f9eee730e58f5b6b741c77d4cc088aee0b868b03ed024b3151b32a52e15b973e73dca894dec68606263192acfdcfe2b9a752c970135de7b30bd3aa6df1cb634e4d5d55340900804f109f0010d0dfa7532bab3a283a3f6873d0149616195d32cefec8d98ee9f45715b189c8faf4371b8aa02d22b33f04a67e2d1150e259b5812f0d", + "0683fe7031bc33713b59cc1267e4fb5ac5a182953827a9853296891d8d5cefd29fc4b5d5c88e111f7669bbf699c77cccc9af35b2fac580e7bf5c26ee37de4d78cb87fda46bd2a358740e38b9fe667ccd7464d7b05659e0ff1f7f6a119ee174a1f0ca7a42fe047dccf174462e21c4715474cd98101560c7e004a76acc145db25f3975036551eeed385619cc1843734c9cba739cf4c4cb5e6073fa3c5a9cc7a3c6e17bb3a3c124809d4bf10b375b66bd52829c53ebaa9498ccbf49d3792508a572f21669ed7efc9253953e18928894ccb6364a3d0e5236e09116bfc560f44da22489127b2c319021166d8bbef42042", + "5856b3b09a17483fdd6ea600b41cc7b6edf2f8fe2c5cc07fe5e535c5a67533315d211f7de2bf0430793ed9537d5c7e93b8df99a086cda3bf772e62d1eb6eb88e01433a11b710eb7b69142aa56b4039e30a613ef32e188fe0bb3795b32a78692129049441a2aab04d9fdf4290ec6b7b2d1a4e99c4cd", + "015e2d0e7068eb091e5216816e5d1484be5a50bb5ae5e10b97c43ef1519387ec54d31fef0303bbcb24f93f1b4b8c41f0b1fbad64ebdbb7e2b0039ee0560cf3ea3c1ac29012d8f92b791ea18b4126c6c2c0282224231ad9f77d8cf28a073661c6ce6aee173367c2f1f07441dfb460989d790485a3ae0fa5d560f67c6b8c42491db617e6479b384634c24ca5ec5d2983d89d4699d93d4b47619b9d0abe13e395bd1c2775a1543e54318712308475fc4012887ba353753d3fd5ac6b7b84843d860a741cec3d0d96c9c0fcb1bf73751c62e95339dae70186453353012443244c59b6b25780638243f59bc8cf7fded233" + }, + { /* i=145 cDividendBits=2635 cDivisorBits=248 */ + "0665f6cfbaafb5db743fb4d53f8169ce6e6828f8690f9af814226b77329311cc11fe0fc74d9455d189c38f09d457f114311004aca00bd76d21b491da51dbc0cfc8892f8d4e563450edf299d61e02b72a4589affb173af28de505c1293f7d539f5b0c85c9b1f85457eebf72983ed8b9044b5238970f002bfb553f0a0d46f7f2c136351e63ec1b5b6c3d68bd8ce711477d89c30474ce029c97dfec0b36434817e246b2d54bb77bb807bbf525d4ccd9cc54392b912ac07fb2959b2ea8d4bd57f51acd70c55ddbac43bfa8bdb1d4d314b9e856bf03871e007dd22efcfcb192ba93db418593dab86bb233c05b07565148f5a3057abccc2d6d6704764b23846beb77fec9899eaa88534b2da2b4e7d834d331baaae15b4b3e6d0c0ce99d25f6eea66e383cf8dec79bcdc811bb1991d5e2806bc681ce299efcba9c2184273b7078a37580290e5837b4aef34409cb", + "ce264af6be66a3323198730e625a313f36b04bd743b8bfcb5a0454d45819a2", + "07f20d1e04e34164e13a4fe0b29681b10ac85bafe44b23b4061fa1ce2a34e62543891a11e4c684fa61c0c27d4a8c0fbd7b3d4a24a0f96706063e52e4a7cdeaa4f4e38a672b294c507cc066c1e995e1826c406bcd4217f929c6c405ff0f58c0ee4c550322040449763ed6802013e9bef78d8048565eda5f70dfb7f194f75ea8b02202d4dba46a0ca59596da144a6a1a06c0c98c162de338b6733d036b509ba0a2f083ecffddb7c0b46800ce3276747ae6d25c79692a384c0f030f45b0d75317ac761b067fc75fa3f74319da4a57dc732f214d4cd56b660a587748afd86edc361933d446693165273aad9bf5cd92b27968a26e61b20d9e1768062019c5a0c3008c411d46889c6d5d5388651ce79acae1cde3e4d183bf73ecbc7e53bb7669269616c37d2940751c6a0421f1f5", + "594f4b1f0df9c83b9f2112c44647299efc21682c3cd26d546a9ec2f4efffc1" + }, + { /* i=146 cDividendBits=2144 cDivisorBits=476 */ + "fb9a1d58501f7875063b60c718721913879353f99251d5006bf5e366f500094f2c155c19ff13ac4e1aaaa6069e93104ede94135c5e892143b9c19d6cb176f3e1d5948ea66035f9b74c435b69fb90adbcd92d10f6f03baa3554887330160585e7ef6f7d8f3c6f740bf586dfd2f0c1368d61bc32c5184c668e9fa630398d9cd5f466cf29ff9dea219354191c843d54ee1f6c4f08f63b478ff4c5f23023a98098addd5d5d59ed66eed4e2e49e3e66af04c8ac528d681cce896bc529021867d2c265b7ca8422f491731912a084e118c762b7a7bb21e532dff0656037b4b54e8a6b65c6e5b6105ae2b6de2901e1b1af4867dadae0686f410d2563352dde70bfe9f500f957e87fb971cd56315b5bd5", + "0b228b189468bb6179f5883c74e7dc30396d06eeb72a8e212b8b8a114a275f6e61118e9543d1c672a46e672972c8c1bd8656b4872ccf809d67e94c74", + "169881eb5fba8cb1eaf62a00461aeba3cda869a73c9bc891db8192957e7398f2974360bdfc0136b31363639abce71fccb3384028a908623841b77e8371ac736d0fe0d91d6aaf28dff685cc83d00fc94a2c3534aee8f16f31940b3b9672d45829c5341088fd5641256688426683df90ad3698304cf14b8c992cca0f90cb395e0f4844257aa50ba8749b758d1db894854b1ac4d06fae8fd05068eb73d6dece0b058666e71a7661d76eb8148d1ceef31e3edee4d0805b3cde8c89fadb021eddef4d2a2fe8cd5feb56a0dfb835b5c9b1360ca5", + "03a424b593e98d43a01325999b1acdafceee2a313556a9751ef3434d149f3a4fd1725691a2fce0924e7caee7c0576f90a164ba396a6142dcf3efa511" + }, + { /* i=147 cDividendBits=1440 cDivisorBits=1222 */ + "982fc2c2e6cb61c8570ea0f7122360d56bd172c9a6c4a3ece83ea76bd1e5b4249008cb3315ac4e3796029b287570765451ee457e25b3ecfa2f47fb534e998c9849b3fe98e580e851267e3e2dbf1c268502deab9abe2d5632510f0e1272ae8052ab4b86c5203dc3366d3bf93bb4b4c389ec31974939d62f72dce35e6df2cdc32ea335a1c70c51302159430389d4f5fbab8cc4769136c0bfdc163f1f18a86bd74ef565b98f328a2e3e9d404f5aa4252bb416d82953", + "2457a057bc4d8e96db589e4aba79e426e40dbc149b8ee9c96ab5376b067785d77de0534961397765f7c198d4c7f2378e7d12f90444b1489443f256acd15b035135cb813fe541d896efc70dac1e4bf8e4d51ca1d1a89ce647c06d8d0b94c0a13fbe33515f0012ce19116965a48c4e6e862db6cca01e76d2f34589f534f8be4c8907232216fa84db1e3f55c4ad400b5ca89923abb15380dd29b1", + "043005d09c3e98fc8f7ecd4ee41504434ed209e44b60578eae3bae03", + "044c536cfccbf5fc7a1d5ed113ef1190694ae763ec8fe45c2146b3d6b5b9d382035838ce943859bcc9832d9d4c35f1ee175d9b44649437a776f9f56dcee1fd1202655a666d5c152f7edebbe68fa800796d273daa878ac9d52fbaeabe7aa7450e5a61889f17705420ca9a7e4e05f59248046782ee02ea96913ff25a8eddbbf656ff787933be45e7ca5338762511c9d51e50c58e09a6581f5e40" + }, + { /* i=148 cDividendBits=2018 cDivisorBits=462 */ + "9d832428321913394649d7512aaff27367c566de257fb4f17bfdf039665777fcaae946530b893cd8086e96bda3ced0166e46daa8dd62790c5aade77722a2a50fd815dd64e385043ee1bfcd10776a5280fc01e62f09eee9b5540d5f1a21d2278eea19dfa244af9773fbca3f1ff893934330cbbeed9f23e2c3024029c493e6362684dc799e6a44eb3c3066047f5b3132838bf255e3e2ac36f00268171e132034e90c5bfdee228cd38104813def6c636af77d7fb6e08a0c5f5621ed273a1164714dcdfe45956561278e9766551a576e1f7e3955723484690a63dffd60b1f91ac8e62656cac9371edd9ed039d5a0c7c352f492a35c5250b23d4003b50c12", + "07b8038698c25e44536c1299b6ba7302ec43f37c408d6018a03158d4835013fe8d59daa0cc9ed53ddee31342fc3016a65c2c08d64ef68c6325d7", + "146803a7953e32f9a336cd041aaff71c0b77c8ab80204e4f61bf32bfec5b06a9d90cac1d02c36c3eb8bb64cd09714ee6085429d02c2afcfb074815d6bf8ce42ad6f8b5d87405b96126f9dc1f9a58c476717cf448e3b3befe292b39b9d31acb70acabdf7ae614c21ffcb29dcc2b6010ef99d7ec63757d9009fe4fafef705fab44d6f54d588376e7b692223191b5e031e26e01f7162458abd7c82636c133790cc13ca36a693c3f4459300f110d5f2f8c7fc69ecbeaa72b8ed885d7ae71a61845122107fd", + "010a1e1a83a0b590394f3d6480b33f9a898f400a940e3994326e573d3f4ca791e355bee0376d171b644457d06f31678960a4a267095c90f8c597" + }, + { /* i=149 cDividendBits=819 cDivisorBits=209 */ + "05cc4bd3d28a4af2f9766a0942ae9c1127b615b19e03011a7ca7f22d2eb83ac868a10ac9fc5478e4f5dfea3cd7d9d64b86874e79b2e3c476560dabe1dbfd74931fa19a5685cfffb1b3dec1d7bb89c054aee004c288e34e57291d1c36a8f1598568240e1a49a9ec", + "95bc68a21c4df25d2f07f5f0a031eb19fb027135a5d95469d61d", + "09e9aa6632584e77bc8b65c892fc921084f68c877d43cdd14b96638af44dc3635f8c99ad3bee68eb75a715f8cef0100f18bbade6d3046dfe35f8f78b435ade562658402a7005582ed250aa7cd0", + "293be61f397af424d181ab2800a89b1f41611286239b0153a65c" + }, + { /* i=150 cDividendBits=244 cDivisorBits=208 */ + "0ae1c6b0247680b59ff39eb4efc0553609525d46053c0eef8d6995e31e3c43", + "e71f5c17655da1d0ebd2c62ab6c13aedc93bc63585c2a38480c0", + "0c0da17857", + "5c6d5b432eb37ac5719c55311181e6b72f41d0bd1deb7bfc7b03" + }, + { /* i=151 cDividendBits=3189 cDivisorBits=2497 */ + "17550209b6cab95b86a28a0c73908db669dc726da98e148f98a034587bf56f0088d5c4824ac29c7a269279153771fe9d5050d7eba7bb2bd2a198de873a450bc2d90580fcfb5f9f6dd54128637e7bb72e328379e53eeef0654ddd59c8425017439e3d1c009e063730399374f383e5066b81024ae0c85f40e7650b134e0aabb582a7eba1146e3b5645bb8a6d08f7ad850c7216f259f9c19b68d139dd06e5675123f35951a72cfc3895212ae4b8235e6ea02d8638e22ce2b4857c1bc5891f928f77f0e058cc07a9039a8c9bb29857c96758b7f0380f9628fff7e9f2e0262dac957d0be0a37f481f34882ff176f0e801434ec743d2c46c2da2bb30027307b0639125b675cc2bd8e5e7f1bc3c82a2934619e129b90f1ccd9b5f72fc51c938ed9d27736639a86b7ca5ca72e41fde313e524ab227775b27cce20818d5ca7f163e42030b691265cf59ac6229a15b28975dffe23eccd12fa38f8a3aab5648cc3eead63cd87aec6831761c7afbe28c211d875c97c6e75907733e6d96ecddc908f93f154ccf32f4c43d483c90ce5554816fb0334b", + "f170781f7ad526f99745bae059759c95d1b6c680d8c95024d0408d78d6d98694912ed90f08439a32b4af06c0c7878e4c9a11de56b5eb6f7e12f41256c2d72ca8963d87d3bcfda75f2606f1f12d9b51fcfd6e4a50b5f4114bb64261ac04f442065cbb4f961a81a413ecfd22f690b31edbc74ad8272303015a58e3ee179a4448e0c860fef15ba1d3768eb58e1962bb463eea37c9aae941e46840b280d28213c0baffd176eb718ee1cff5e4ee94b965fdcaffedd9fd5ab9a4d9e0037a76ed9ce4b7175de51dc79e49e057a21e0f89154336284efb22a599dae209b8bc4519ae9df978b5b368ead8ac167c2d7d844aa232d0bfb5dfce3add0fb9d9058a4b57ec4e04735edcc84259ff0aae24fd1df7082bd143b2ff88ffa3ff68a05c521fc0525fc1f94df6a5a7bc4c2c6cafa83faac7d80d943b9184af658a14", + "18bd3a0b3c6c93f84410f7149c308e98e2418a2ad1a9df3579fa2bcdd2de5d50259a306c993a34eaa16b5adaf519f54ece7db6a73a212185b2531feb8c62ec469fd662c780965c90346b85158168980a7dbe6e43347655", + "4eab6abb9d6c55108169d21241620f4c878f9763fe78ed6248783cd426daa3aba502d89ef891ead20a9be7d381b5908d7b509ee7f7db845726495102ec9bdf5f5ca892356d936bf344ac91c7db087a1e5658cdc07f18fce5d140900e1c0300574bc5cd33f9bb6895da22bb1ee13e34e6143707aac130d2f3876434e572557229c140b455e168ebc897be0950c1e366d81585361e8305d6a122aea7d2075f7220efd7c08b34471b3275bc18b2b7d607d71f68dfc5a7fc70643210e962ec42dca857f64e51204714e133829114616b57acf9fcbf11d6723fe25495988cffe10507aad371662cac741d8e20437f673f9959d28e573c84e19d6ca9e860c8306e338bece9b5eeb427f9abfb6ecdea893f127761114debdb20163daa9bfe9ed5d51f8dff478ca5e2d3ffa5e6ca053a3a16d181eabf7a3f1d4422a7" + }, + { /* i=152 cDividendBits=3441 cDivisorBits=1826 */ + "c4d6c3132b6e08c93220969ced75f3bfc7787e1ea8cc380ac53bdd212e80a413f1fc5c13966b95beb7da15d798151cf201de80c02c37f07c74eebdf6bb0ca6307cc5d9b4630a08584214b2bd34b9d4bf7ea4f91edb1eb100c5bc757df44e9dd513522e937112c5ed5d520a14a516323c84ba3526ad7e06eae166b635b57886825030f90f1bab17f100f032301c29047ad39400500b6ed5a0c62adedbaf5ea907d0c974c04a8733040f3f3963448641f52815affd340a2cdc259d0b48f17c9b9b23f91845165b5fe445c74e5b42e27fa4a17ea51693b880952f398dde5b96e27ede07e48e892bc6fb84f32d3a52b2b6e80684e42edbce37f5a50e7b5f408b85ee69744c1e621dfd75ae1691f468a9526963c191d63be10c5475f2fa03d762ad850d4db3609e173023b80c55f92090c5cfd3ebeb6fe679fbe95ae69eb09ad634c3d9c0cfca7348bc282e2c306ff2b6d127bffea0f4417e007896885647a7909b12c66cc6a2425791cf8568ac93b65f4eb65032bc11843cc89ca99baffa2940917e2790f1ede9f3bb152673fad00066e51e095939a4a4caed19e8ae219a41fb9395f29e92a403e547ae7f5e2b8c63aa", + "017599303b34dbdf8405a4fe73a041055220f856282cc32994de426711c6e386d952b6c386f75e6cb2adae7d4113568ed08a6b9267da110d7d784eb584188121ba18804f8645a5d83229df5cf2c3e1d3b096e80167d38ad2e81b0c9460adeb2b57acdcdcbeeb208c3109b89deda72e8b922e812d7af4a02d18f620dc236d963b65604adac8499c59e8a3d8d7bf11b9dfafd0e0b79d31845e31e054da2ff3dd9055ca0e991701411a06e23044f04653a1b364669375ccf7e347ec363bb704d14a19e00dbce886ac4ca1bcb7771a9741f853e345398bcd9120605cd38f6c5f79c71f2c098ed3", + "86e12680db40c71518a134782cb9ee04f83c99ae72c3b895f82b930afeff990e052917d9370db13da9ab40dfa22c0c1649cccabf97eb2c38636e78ff9780b7e0f67355b4c721330d1dd56323a7e9668faabde055a9a26abe43d4dcbf76f5da6804ae1b5ebb2623c18498731e8e22da05d041a6a3df5ceeb7a56158657e33602997324c81c481ac686bece4d46a82c7ae42031888c59b151be79d82fd4b23e93766b7796ac1479e02f43943a29b4761cc757d49e6b01812cb9c65336ba1c28b291120e69494ca210d9fd7", + "015b7e64ffe49345c2ba17675cb84e591ea735556bf02882e16c6fa01f08a44f434c88d93db05a975900265769e36982b4180f7345eb14f838a036cc3d5026007f2e9883a72de975337c2726af2b923f79e60f54f01a2228ed1247c751944fdae2843fa5374bc09eac43f68c94e4861550111ebb2b9b10307de232f1b772d29f82cfbf62d466f15c7f772553938bfe77473847944f2b43601d6f8083f1ea8032fd63932cdc28400e9005db32d1b6b64e845f41dc36ce54412d4efe81d75b95a4e8633f4403c62df8b1fc5e257458ad87bfca2eadf6f0d85afe84cea773ea60c172cc196375" + }, + { /* i=153 cDividendBits=2884 cDivisorBits=2787 */ + "a824e8e4b31498fb576fa7051a67265c47b3ddd34375bf90be3b3d706fa43de5f9edacc4b0cf3f98ec93c6e02771623bb38bb669a2f472232fbd5dd16b4b953052e3e9e87a38047ec38aac8e8ab2798b1e4ef79cdfd0bf6fd4562cf33552f7df30304d1311b9cbcefa6dce37aa1f9acb0295a5391d69a671d4728be9722e7a361f8e67aefde41840632b724f422e90cedc9716bcd6863de21a15a15ccd85c8b768d7822aa7f3e809919dcb52f68f82f9e4108da2a278716dff95535259efb60a32d70eec8ef5d8271db41c3cf57cb14bec970e55489f73a994f501bc41be1fdc4037f7b1795da8cfba4906be29a5ebdabfc459b275eda09d7ecd6b432a86cb65c3abcfd155df7718c3b57ac6f566dd920af2317236c5aa474b128b9c0adfcdb686fccf359133e661ab2ee85d8dcf03acf34bb207d0f18a6d12aa452c4656e39270e66a64363823fce5d151ba18c87e3457401773aba5028f73c8d8f1b5ae64539c99e0d72c8a9f54", + "01e8f9145d5e657a0858745124f2e963df53e4f6df5b9fe1519a92843e71852b016e343cba35c32deedacc0612e9407febe7b59c328c7d68e22fe7c27364953e1a459b60b6e6a3317b4b96c55a7993c5bc6517259bf0f5fecd52df8bb9a31333aacba64e4d03099b8f362001e2e1a1f149ad004e9722c2ae04d7f70f9dbd992bd69473f471f8de2aa2b74cd8a4f6cffef170f3e7b045d5db06a5464f6b15ec7e3281cb56982f7014662c673337d1979e8bebe328a6a55e832eb27c9f813e910dc778b9c5b89aed5c1f542ff69d21ab4de757a32ddf3804456d09903bea434e9f6961df9ea5eed989df63b399db2ebef310683ed3447a19d9180c545eb6490fbc5240e06f734d334c3e730894171c214efb2a555a18aac549ed9abac92b961b5c0b23f3ea051a9b3348832947f2e26e653c38eda798cc9133217c889111d07ba708274e91c93c8e00e16bcbf8e44cfdabbca09fea4730e43b5f78b2bcc3", + "5808011ab2b4b2e78994a9cb", + "2c604a778257df54c434518afb6786369fc8e27933e36da4f5eefd41aa6fb62236db63811965dd970658907a535f468eefd8a209594084a849a880e381bcea4356dc042054aacb6b45d20b6a927f3abbb4cc3f7d08958bf5d10a0a7f47ef475ddc56b95018bf51fc7edee1d0055e3831ad964c0489edc5b63d60d080a2abc2722129ef156c09352180acb350708a384040b20eaee57852fae52bf73ada83f4037a47754c3bb31a1419a8136c993cd460fcdec4783285df750d4ed2a83ba3f31fa2e564e255afc4b05f9a0ae7989b34affb411dd43df9be8d186e162ff6ad562e6186c6ed5466525c5a9093419b8e5a8e86cdaae4bb325cec7f81c1fc87e0038f90d8c2bbb5a91cb6b54a7860c6f9c717aa457c17ab4928bb543e89476ed421c260edbc691fb47a94604cbe5bbc8eb6f7f51162737e70985ea8daafa4455c797a59011ccd945817cafa985cf2d21e1ddf67a12e1441ff6d25fc7635b3" + }, + { /* i=154 cDividendBits=1384 cDivisorBits=1240 */ + "baed7192ea71d5123716ae7972253f605f6755e4b788df25e73ab75e212474543fd268792117220f4c366b8d8a5028cf5b7e85015ff4f32a1d83c216527aa01cd645c6300dc4f507252e2a0e8a03728f57ddbd694f6ee6aa4ff955f289e166bed9b542aad6a590830cfef7539cd5af830afe57e5c74534b766f4e31062560d488fb8fcb327f82885eb5503162dff98d8e07c3ac0dff0cbc7ed8b2d3fc6987579fac5a521810ca46e2074b67239", + "cdc772168b71dc5631e4f098f7e2fef44aa9423c2fb657d889aaf2e67d05e1f8e0265f20d6d2ff7a3c419eab59f9d099e8d940118809f680c8c3250906321f48c34da2e63fefe5b71322f9e09886957880f27e8e974b33fd13618ab8eabe74006514d9d19bad060ee3d886291f2110ea5166d9322dae091b3437c095a161af0c6f05e6b2ab0eed7d1b5a38b6fdb0baf161012885a571ba79d9d192", + "e88c332486516de94031717c405e02a17339", + "aa77d664b0a66f1d66948c38f8ff1677bbca40f05093bd4d8c7456413f7386d8329e306e4cb90be96379135630375fce32be3283fa60444c87e9f67fc911234a20b759400a3b5ccc0da0699b7bce06ad0ba32f189659ea6e7284b3eb2a4627129f4e6a01be52c024337f4ca957831398b27e9cb42b9302f55911e3d6a491fc27002a9a41fee076a7f7c659f9bf8072e3bd2a9dd6658da2894032b7" + }, + { /* i=155 cDividendBits=881 cDivisorBits=833 */ + "01093169ae683ec58cee76a902521647e0f0ca0a2cf2cd019ab9d41de6363c66360e33946a42b39eb8f149ec50088b53eb619a7d17093bbf6554829e775f90f303b857f3d571f700beb463b65f3f5e69b7ba6e4b82ba3fae10bd887ab611dec7dccb87f4115c8c793f44ac2ad008e7", + "013c9c3b299ef30dfd6a13072339408f1efdc03122937ad9adcd893d350cbc32b1fba2e13a9d50c715143b080f29a04ca9fef132aab3f490235578f4483a13d67f97a74253cd5abe6655002b634dcd4da55a3fedefc263b428ea9eb6bf92bb9a1dbc578e669d9ce5d6", + "d66d0160e0a5", + "ccad07c93b993aeb1acef3e827d0da863cec0bc305abd06eefbf4ef5b166f461b741cae7263259d5d4a1ef7fcee50fd4a743f641f26da463d33e3a98d642bbb469e0a74ad23ca07c12c79c35e0c42c384bf16544a83497bf1b8a259bef18a0bf672f3ac54554a5f9" + }, + { /* i=156 cDividendBits=1090 cDivisorBits=396 */ + "034eaa0307972243d89fd026db66718164ecebdbe69d86379a8abe4c60b7110940bc27addac7ce6fcd32b2ef78abc6aa19d85468cf18c438f82e3aa4c2865c4007fa8f811fea8eb288b42f5c778baa49a943d3e1274cfa6df70f99b693a037ea7d4ce4420300a043190c37b17cac536acec410b70b5355f3bc8382ad62245a28bd61f8b60123cacb1f", + "01934eff874158b150f3336b5ffb8ce6ab06ff19f1ee22bcacf338bde26218037185d842c8ee7957f8d6e7df55055748b0c6", + "02196b76b2c7d44fbac82e403bf1075ecc7ae8e87e633b3b00501c3325a3f7ca7eadc3b61db77237e49a1295056404271beb0418b5e4144d2a91497c026757054f1de82db760937e13c5f7f0fa75209b3d05b8aaf6e3d0c3", + "ace58e7814d9fc0a28c791d254e422137c56f9087b2045ef3d3caaa5db5215e73f3dff7d678eddaf34f0f8a9359439444d" + }, + { /* i=157 cDividendBits=3749 cDivisorBits=3033 */ + "1d51a85627c0603123dfa840a2e2b3c4c28e54006bd33381e559de450c697cb0d3b8c4a447bec66ffe8d9e2dd96dc214b9311c137c7fa110549a8407f9d15fa995578bd67ca5c414b1f7cb0c6027859e97d95c90a05c1cdd2836bb053214a94d53a15d4389eff9fa010b6b550a0086af3e11f941ce06ce5f1c7363072714d74dde94322842c6744b4ee6dcf1a2c086480339734f0360d3b69c45eed0f8b0d6011783df4d673c815872288e56166ebbcb3d7fd71b0fd50a8282a53d1c8b0b0523f9783a900930b163d7840dbf37f4f7b794b469c16ce80574412615235c4dc3be38be704e59bf314197041319977a474ee2f04fc800e93db2bad64cd1a0dc39455972a77a8c8f17b64f8f1025d82339d1686be46957aa3ab4bbdca0eba591677d915989a46e8eeddb40d2233143f0b44f70f68f4a40562d3844767d9c1b39094a464a7a85bd601d5c60ec2a44aaddfddcbdcc5c8c6e542538ffa1768df5cc28f984b48452dbab7661860088038df6abde7bd0f8c78c04534ba03fea26a60e028db62fcf0614017ed8f68a58c8cbace41e6ece3fc9fb301ba39ed328f1e817449612a8d77c929f6015198a706da43ce50d7772cc04a7e36da146b9bd160f4c750bc0bcb9ddc186a1931a967824fc320c4f7ed6b38d1d", + "01c67c79a05603acb0369e5aee446198c9f8b888e8bf8a35efd658e8eccdbd4d64564820913ce6bd25327b0169fb7db7b93f7e9240373e47d628debc043715ad65da033ce49ad99d5ed5871fb0e4df93c94f8c9855b9baa26ea4d5d23e94300599869b3c6506034cddbf1cdf49337c9d7dc7148e8ad7aca9fb7d1d9a8140db718a9160422154949ae9a86c8e8635aa2d74a85978ca4cfccd643149e9b1dff1ae046a38ae959146041be14ac43286a701d4aea4f4603a316fccc4f4ea2649c7a515f2497adc1c64d5e7565859d0263bdb585ad92a20f2250b3c39a3920dea033e0cb79e8f24b3cdaa2eb2d9736b157c92869bcd72918944dba0ad5aca48a3083d754436bafc7d9d9152bc4e6af3f75ad86646834309e81cbba43727cd30b96bae66be903976d62510b47601d3c5914214290cc0cdc015a44313a3305e0d5b0f91f684921511ea9f88006eace1da3f81ee519c4532c65b0bf93ef774f272dd19ee282303fd4f4bc4935cd9d872952390fcef8f8be5fc9c0cced665f20d", + "1083bcb7e6652b020b3659f14315d2a00afaa87931dff2317d06416174267e218d8270ddc03cf0d10b0b0b6e3f6281d44e9ad4da7d251cf6e761ec7292a64fdd107842d2a6269babda7a668aa43c89823d8558a6b48d6c41b817", + "01116638efa97a2e7887a7a6415e5f7e71fb328baa4020fe45f915a7bc03fcca6e652165b8641cd92441153598e1d416ebb0f350da0c74ed454b4ae2cc65b896484c90fd8f1fe784899b1ed1e31347564c75335c8fbf625265ad0ea18f8c3bdb77073dd5e4c0c5df4260976886d9796331230a6a488d4731a867636c7ee5c6622920d428bf8d2b2d017a2fcae20e305f8a02b654d45f7396cede880e96683b9f445ed67acf7a8381dd3e91ee65ea4d461128e4dfa2ecb579d108349d8a6aa764d082dab3bd513e4a904913854056f5ba8c7ad87724e340a8ac0710219ea427065b294c67b00c0f6606c18d4d92b5312cfbd9c9c8d7e2725fda0369f39d96c960556d2dac9e0f650e27fd1fe54cb10cad78214d4652a9f5439f91f22a34b0703f125ee7310042ff7ae0255654de746adc7f6749902e5769a39c3c6f8d9603eb95330688d47fbe8a465a849da141074c88e831e3141451761c771826ec95731b217c1985e09578335797b268f38eaebaf38809e4ffa31597a75c4475f2" + }, + { /* i=158 cDividendBits=3486 cDivisorBits=756 */ + "1f34602c9dd6a484bcfb44cb7362ae5c61ad123bbc1c29cfff49763b58eea1ab76747cee22e1c714b2cfce3104cda6373a9dc1d8adb7deacfa7b6ebd57994eecf08a46ca4dfa8ce0e769c848172a4f15882ce8617e34a225b4bc1e2aaeb040048ea78a21d3a4b2e0aea94a3460b357497399b26039d31bf388a771335e1b6b70864536bc55888bd4b15501f21577fd69f2e6e8f196c40293f1be2f27a2ce83345f1cac43b58f3c267ae1f5ab6b0b68bb77b63041d1b3a7ccc57503e852106e21984c4107091b4dd66be69b1da4bd396f030bf8916c33dce7cf734305ae1ea039ca561a6d1081b92fbeeb96e0c7bda2bdbc675a34656acea74155bfeb5d4e2988386a2bd56d8fac7ff1dd26b8bfcfbbe1b7d2b2641245e5d8c06ef7ca933cb1ca9513dab6ec7b819a6964822db2f54938e0a2d74c4ec67d4818ef4fa7cfa3ead52f687f08d002ae99ef60b8aa526a642f849555b73c31a2ad2426da770792ee7ac5f6ae881b9859c755549a16c25505c872270e27d13ae50bd6e5fbcec931876c7cbc40c5149f71af8de7cdc06d2c49b434c97bfa6f3c73f502dd9cacef1b4aab265187d69ea00c7c1ca30dec112e74f7387981b2", + "0c40600b47a33f8fe444967d574aca3c1092a0c488a3e6ebfadab30a91401d27540af6150e8772ee9cbd333366af1f97faa89a2f5ac6fdc388c1f6cec949bb58f78ab296000bd9ea31a9bb0d33528c0b095267db00f7920735c0db32348d12", + "028c08c78f08ab5eea60d2555208ba59e8e60388207e69114747927143c3e3dcc73905f70895e67aeb1c8bb8dbdf20f2d3ca17f7d5d2737db7b02625228a492ac0a754d1e58941bbbee21aeba81815f859dd4ccbadd06c12b55e288b1478608b525977b1b040e2de6355db84ab208f958a53e38b652ea235514c6dbcd04fba9d26f21a4c704ed6b64b886156136de06ad9e714ff59da038fc6d0d47fb43f012743749014c597075d64900cf42cab9e8b0667505f33157b61395e3467e3c462a1b019a8549c52efcce5ff807b0d120cec789d0295bf9eb7938adb11a835e57cec9053468063ef49fd9706425d96c829e1d1a830d352cd7b74156ff781e265659ec78af7d9cb2eb483dcc551761e2e76464ba7849608e2462e63e7ef2e2814a99bf37656dbc9fdec7ce2d9e7178c9de90227f538c98cdea5303e2a6a353fab0546cc6c6eb51a4359f261d1e5d397f91a9237ffd1669c89", + "0872381d33ff1556e7166fbdd77387518852595458c447b02fe00a3b94f6978829a8f2be9f9997cf93c086ce9db7e47d72d6acbc49c37ad57a71c5ae84a7802c5f6730250609d9a3e95b091012ab76c417cfae46f0d39513a662076d370b10" + }, + { /* i=159 cDividendBits=3718 cDivisorBits=1998 */ + "230efdc8f53246d4d4c603671a7aa51a827809b27154d0f2d4ca36dd373709c866d673da6fd763850c0a1a2ae22de150e5ed070dc80d25300323bfbf9ba20447a704dfa0a3b83e5a2fc161525b35ebabe6070996e700ea5d7f628370a28cd5a4a5d42afc9fd9e65320041269dae14e3c11dab1b3e5e378a64b3104b8a73d0089015485a0af6812ebea8c067758fe30b0299513bef59f90d5b7a04514ac0e5b37ffeec8a77f6c2fc0aea39acf09f244eea12b75a87f1c9a84d53aa5afe6ff93514763add7222ac3c552f2c8ab9007be0c7609a1d556bec0663862295466e8f27d3a064b13a138d1fb1917d3419e2d30165f468f78ae3c43f763135b8a35fc56b8b4d53652e9a928ab39d52dd3015f70469d886bd2c51f287b163bdb087b68ff1923116a6d2716930a4a1840829735ff336641bc89ccfa1498df653062109572cd5911c687500cba6bd722c002f9374097d28c105be2457ca219187b5d09c9a81b460627b8e8f3dc07d298731c75bb7e09536df0957c32661502b57f7029f51424341a62cfd20cc288252d66b9fa7e3dbba88c92bc07ae0016e52e7535cecf2666b95a3636b0e352ff3a37153aa3f7969439f688b15f08adf52d935463b5f7627c51881bcb363732b0adae256f93c74919f5", + "156d2300f1038b9a02e1b229a52c08489f8c2467ebd5aeff432a5852b50344d1c4b33e74772d4fff9080d19baa98b86d1ada6ef5fc4b8e5ab754326c2c538afe44b0303690f75833b37b456afd86e1f28f5e6d1206fa621a0ab11ce5ba4bdc5a2fc08fe921b6dd5beb8cf1de45c722179321d3c39c216d76808ef6c0f43422b471f46cbdaf4c70a0b4602bb016148a8a50cafb57d87dcf4050bd473b63a83e83f9389c4840168f53cbd45a9e8f8a9af0c1938c1d7e8d64e2512d24513d9905ca025176c379e772c6f6eb085794abd156f96ec3fb82a8de6f6eeeca3e59db55314abd0f385972f1b76797d86b16e14a2b5d99988e5a51a08c8ca3", + "01a2e0850d0d512669310c7d875902832f2cb073ac23049e30f13fb3bed0ea64ce77f4a9db921def6ba1b28490284d84ea945c34041777b0d9c7c276223f989b29fa106722fda53dd07d7bd6c3f39572b967ca5953675ab500a263b4e8b3ff45873c43d01988f2b82e88fb400085f8ed8877f96a094b851529c321f6c1361a6fe8d52952f29f58929b2f418467be172b65242c59fb5859d130f97d160bfe80f5b05cd00d8f1ccef9431ea2bac25f7674ecf558abce876c9efd4ece7d24c80ba985b0eac68762ede8bbb1b51c5e9d847cfe46dda8887c62e9", + "0e6de7d7b6614dab7bf51ab475f5b8c4e7ee191419bfec42ba2e1b69d8e53c58e453b2d84af1ea28e5c3a9cf4cdd9c1df063a0615cc7cb2398c21f0a26aa274c1c888aac3bfb32ed27d0353f1b319aec42f9516e704da18fae069bd8d694468a494f2ed4efc91e40cba7eca8ff86430c3505849dd9c13df4e62f118f42d71312d8168b23118b6118fd077bb65c8cbbdc807399f4b127ca14ce8ab0310cd01d4e0f207a5b93c94ef06416f8333b93b2e12c9952e04a1231ae120c7d72b69411ad3d0267d90ae1cd106a0f6dfdb9af475c814e839ed79f28d20dcc10fa153182d9c909a7323e30bf768f0bccb0400524e3ec7558f68b102292b39a" + }, + { /* i=160 cDividendBits=737 cDivisorBits=96 */ + "0154b4d7c8245be1a2d3b389a603b25e63c0463b9b078159ead5e1c4ed08b75794c8bf278a47f5f529d2190d3e5afa841d09fbd6dd25e0b3add4d7df4bf1393e5f78a51aa4ba85866e993f90c45a4a378d49962da7c74707c105b2eac9", + "fa918916998991a661b28d85", + "015c17811742e09e8fe6d38263a7fad066665063f3c3595c3617c5f846d3024ad90e0a3585ab8624a4ced2094160f4b641047e6d8d2689360fd1086c11f788fd834f316bad1b07c37dd6c8acd91d31ddfc", + "2384819ea1ddc6af8e4ecadd" + }, + { /* i=161 cDividendBits=4046 cDivisorBits=861 */ + "1acdd7e4dba63f2d5fc95723b8b37c8f9b2d66be5c20104a254d02f17d95d2939ef456d0d3cd8efe7ce6ecb9d4f057e9ec13b9bf55761af991d41af86fdfb3d5f1eb385064e87d61339b512a9ab4d7f822bfa56ffdc8e12372a246d52df549fc49eaecdef5ab76fc07477a29831886c0b46a8205779a41c637e66aae1decfa426a320f300468fbcdd044c38ca99ada8eb29584980528fa9e8ede8ff8b00d0e7ed27d7b77046aeb847a30bf463548cd1bc6e6339777fac52a9d070a7d98344e111fc8a1337bfd3bc8991215f10f2d16622d0c865c414dbea7730165a5ee5e697b86dde8bedfe8efc2f4a55ab0e3c2f6b4ebf6c452182675772f98fdce8973d4b19fd672a1e7a938c1b103b827a83fe4c563c25956ad3c10bfb3c89cc77c59fd6a14773b4e6e6f43bd724bf8986cf69d681bdb94933a66db74351e4c4bf7117e667d9ff78132057c7c0989aec1b6f17b66ff79d6bfa5007c30b8af05f38c17c18b762d4ea5dedad8300fc6c6bd5a5d405af18159c72e3ba66e1294341258f20e442755dce5660c66be9d374dcb63c2f256337627ad4d8f63e84c35ed36d8502edb88a50eb1d0b3733230155e2b0e6ef5aaff370f9301d96fc94695f625acf1aa65781966c20fd0387d1f3b0b1af6f530025d2000714db0d96d4d49fdf1f8ab279ee6ddb49a054be8c81a200ed48cebee4c574b41a668bf7d626693", + "02b6fc9e40025347ccdbf212808de6b1f4b230f2e60fbd06ec6eee3632fba074468280dd14df9d5a6931c383473bd71d542862a5eff8642580f1de6ebed8f395c92337eba4553055696a86157220d4c8fb17acb89d2311c72d8036019dbc253e5686c55f103f8617e50b3367", + "09df93715775718e9fb6ed984515041ade2bf737e36b4ac7db803832b8fd6fedb9a8ac9dc9fcdfc4218dcb6a847a035fa46dff05ded90511bdea5125bb7619158fa277e85863b0e2c22ba8c01d036c320c8bd9fcfa62015130f545510b803d110549d43d8c594b68074253c2279103ad111c52d9ec1851e5e2943b21001a1f569a59a27a3080e68e38428a7b462afe5559cefabf000c3eb1116f446719d9ec7256886735652b6c965e2985adf02467c7c3a29bc008f8a6bf797de21c1153c04c600e811a9d2b082aad5d293b27e5f125e685f5043d6b23a59c8255a3d79323c34bdbfedb661f229dc7c4001ab6dd32fb9e4de328f1875041cf0c2a6148ea50307f598fb1e42f2b2a1d7a61fd89ecff1d7e1ebfcb4bc7042629fdd05bd4ceb85c3e66a1f17ad42c635516dfb93e9068fd779b50e0a43e437771d17ab1cba82067ad79306bb65f6b846a5bd31a4573268bb4dcf40f3ce9726ba2c0034e091df6daa8b66010bdb5adcc9d7a7cc47966d6bf652b6532374231250cd4dd524e7f3aafe400c611eb7c01e6a36ff5fc76bb65", + "01d30c44aa40a2b2e6aa78ba1e4eca8fc6aa2a3e2b69e57ec6ec636563e804deb176cd5f8e6ec47cef4673f147d7f95cb02d3d6996621dbc51e6e495cc5a7933eb5eb3ab472857e27072c8da16bdcf9d8a4ea97014efed710536cc2daf0f645f81b753bec99198acdbf0e1f0" + }, + { /* i=162 cDividendBits=3630 cDivisorBits=3540 */ + "0781ce30af5e05ee7905b684a1e3b843d1ec61d0dbbad7ec439cea8dce82bb05ee485008af704746a7b0ce62466ba730dffa33ed5e5583d5372df64d653218f2f5820b077aafe4a4d6b1f143ea353ab67e0425fc4e79a2115d00a43ce71ae89d7763a3ecb8d32cd604ebe9713fba3507e554d4c0468bcf9114763ce98d16b764e75cfbf6bd8263507337f30a10dd5ca3a6138857244f402c3d54be72033660a2029d16cf03f8798e31766eb11dcd0df8e5cc03b1fa07369f5bc681921e87ba7e74bb3112af9f2f1ed0e2f4607fc377dd2a04d7d4850eea26dd1e6148cf3c73fc701a667ffe5bb9df780ffb0deb6c7805e6af969ce88f1a97039362f0c49ca968c51d0fa58d5f52ca4fb3db2f3876b5601f4a8d16f29d2dc4183ee7d488e94ac5348fa32bcac4028f670c58046acfe137f7157ec583eb6aab8d1b066ede7e8c6a0f17c4814b29c12b6836aa31905cecddf8c2889c03ab20d83aaceca20fe71536ff4863e96d7d0a26463ad6fce94de3ffc15206457e9cb441c84477ca3a764abb273dc4918d6e4d99377400f23e6486186c26fb1d5746b92379cf7ddcce04357323b004641715c65170947347fc121375b4603af95ef0dd34884e89383265ba58f5771e8b18c7", + "04694ad6abd06c13aa311f6886c0a9dfd77d15b4adb21164d8b2d6bd0f7894db284d4187c56fdee176304549d148f78c29a422e7c832123a3829889371238c27e9e4da29dc8771ff7957794bb29b6d5c635b8711802a3ba821f0d0ecd29d78c5cec8696ed060773f333053527272e1ab7bb29a492259259bb7da7cba31bd2fee51e757d288ba5140f00cdab4d512b6b778161da801c42fdf5896745b451b69423743ceee4742b02bdfae2b50e803572bf3e349d6cf0ff9ceee053b4e4a284bb3c2df90617c3e45b2d2dc04a04702c01d0c6b721d4fda3c817c5d01015cc0aaa0ec5710aa7bf774f48f2f711215b50b58aea7526ce732ade623dc739a475596d5dd9b651967f9117369b2722b69947c5740b05a4b702c98bca92abb29ef5d6e11e6faf46db6676a1d928490a99df5c99b7efb4a8532bce743bcc0dd9a3937e3a9e75d8e369308ba5a1d109ff46370af54f9dac03a781e421a02433b26eb210dd688f5b6949d6f33c3ec0ab680ea0cdaf3cb4bd66150703ce14db3c080cbf6172cc42d586b9f269c221fa9ddf6cfdca6b8cf687bec8213ec8951b07a82d8f06a8b39fc38759b257c19b861a46fe988578d536c1b3be291f62fe724cd", + "01b3a7c19d50425d18972172", + "0121862ff4d963ca7147dffc1b5c35a283b32d9cdc48be6b5550ff6da468155547c425bdecc7407858c03ea502d51158bcd9f21947e4f13d68dba2dc202ce7e103f7b91405ab48981e0206ca26a658c2fd0ef35c7978bf9661fa03819df29fa9a7b3378932496c8e08b8c3c79a2a812e27ce11952e32f53107a4ae9e83a176644af16fb7a21a19d1a13372339cf621c111eb4c4e3c067b4595065c0b0447ceaa0c70f349148f77b08cd5e5cf517fa5ba07c2d81f496ad79ac35b3095567000807b27d306cbb0290819464c6ae7f736721dc690029d0f530ebc88cfd250f53f9761466649960570d4f804e14797aeddcff2ccd33f407fd88c19cbf435b6571e2a249c2192681443485c480d4e71dd9c18d5803dce2c2d62d165d1963ec09f313f5fca2855a9ae95d3cdd902aecedd6ef36fd6db9422a3ece0c57cc3acfe1dfdc5623f41efc8d3fbef79ecb52ff0cf1d4c2f2ae64e8bec7a23135f66e6698aa1a2729f83f42a51ab2bbfda3e4efb3d78619b670940032a9515362f5a871d6557c628a4834bfb5265131d6e79f66b0608c65b1150476e28c574137ed934ac1564c7ebb3ba54fa73c02c15558efdf95a7e55994916766a146610f3487d" + }, + { /* i=163 cDividendBits=2148 cDivisorBits=1415 */ + "0d88d26aab4857ae3052c294bacc81ae7bc94aff169ec7290dbd15509eece8d0c5017239f37e3d050b76d8d204ca6a64dceb65df88e183b365b40d50dc16df0e9b5e018c48815f8df316e35a0bf561bb9fc4ba8e204a1b2c008a3dae1c5a3fe81f0c27e3b0338938db0f1190d79d1df1169941ff7acb4a55db6594e6a35602e9dc1e92352605813cf37dc5674c44ca4dd48d95bfb0e3ffc7ef089f7258f7d900b01f93f7d62118a9f4b75bf4c8976d1e5f0fe53e3846a9489a2cec6c3fc25ddfbd9fc57f5b9999b7432a656a728d100b3fdc83944fdd26b9fc2c5f2c63111b4285e43d987d424c2344dc5b9c8dc09527f02c90b4d66e3e287a3d4222a11629b4acb4eb53a4950876f64ad3d57c", + "23676c99ece2035ec16e07693d5b55be7f9a2111d1e8bbc907e3e880846945f2b0c854814523d354d70720ff9ecc54f8756ba3b7b3d6664fbc1b885f8ae27e4e38b4663d7691a1bba69424cb5d481aac2827b62548c2e1f407bb014a6d6685f7770b5b8ee7c52df452aa56e720430873b0c201fcdfd212d2b9d1e4dfa083851ddef64ec246907bceccb7f4589b9c097317d1b9244956c5105598d304eb0dbedfe307bb354063c413b89ce29de1b0e3ce74", + "61dd8207c0d558d744135f35ee7b488a771fe5a8961b355a5e4de623157465140524df9eb7af0fe639ede0fa084393b27a7fe1db98bb6ab633850f91d5a162ba46c87b8f78316411229cdeeb52f7baf8a0a819571936beb780dfb968", + "226deb2a1227b4c7066bbf71b2b06b5a1b8c20fd5ed65c3ab26a7b307038ae96345e3119d3731e6e7d00a394274a03b5b91c57222b5774e6e84860833982800ad9ea611254a9a2f92054dc9e3775b7581e0a5be0b872bd3cdd6ad65019181a83993551dff8c61c87633832b6350f3bb6b8a64b0a5562a63ecf3e7d428ce615c81d0eff44deac28e60737b30cd6b045e153580247ef9c4a0ebd700e1ced6859bab9b3e1d13ff6fe84ab4e4a8fdaf70a225c" + }, + { /* i=164 cDividendBits=1751 cDivisorBits=1577 */ + "28a74820b6901b26fe139ca97377c78074544722949a78f91fdae91c3e98c042b6a1b008b50d3f9d5fe845fb81f34a78108367fd7bba5b4c5d5c68812d7d4a9dde278649824454f351589f391a9afe07a724aa87207edcff4a051e0dca15ca438d5d419dfb47fbfb4a42a72240d3827f19877e6ad9adb3181e1c01f4704182e9314f1387aaa66c4f7b08bef6f249fbcd3996cf8e8609c7caa5952bbbfca226961129b3f3c4d4df9a08f1b9958630655cf3d146fd46f138ca07bd89c478b394b904d4aceae0c71423c32e31435e1cb940e6a186d0f3c7c4c2703adb", + "01ebdad8d88dadc67e5f723fa150108b837dcfd8cdfe3001e099c4961fca79e374f28d6137f572732abf73a42adf9ec231f619ef6f992d17934abb6153193b11ec5e2571aba6154f80b17cca9da150d18949a81674aadec557ba963012177245e691d9bcc6c5fb1eff24e1c076e9261c9726b5c0b5369436201fd430e03cf63c0555d894bc5bd1dee6c467926847cdb3aa8dbece5ed39a1accc49bc2a572395e6cf90b9c6ab23a540145e4a2f3e05a576a2f010ce5423dd7fceab61a5c3ffc032de38eee15dc", + "1528c4d0fa7d70c5f62a6bdc8a993e6a613b056a3216", + "90259667d93aa8db32c3f1a93c92cbb44f65d3bbc57e88e04571b05ac33a8ac42a0132dcf72e44d5c15e998fa1d725e6d02c771e3f87ca286b94e8fe45afc1442829b12faa51f2bd9ec1b6059f0a5271e12a01f6ac331a39d41ad4873a835965f24bca030bd888f431ecbb9ec78beaa804c5048bfaeb2966ed5b45e11d36523c80422641d9787434258114e12d71d547d1f3653c82488ece198398e227022953b170622207c9d457f50ea4afa58882498ad1ed4fd09ecf90b81b1a7ea19b742995a09d61f3" + }, + { /* i=165 cDividendBits=2176 cDivisorBits=970 */ + "0dab3779cb062410e509710aa56069cfa92ec6ece445e3ac1e32530d79531256188ded3c3ec8064e8c575a2dcddd65484431ad38cc03ee07bd9718b996da56d256f49521510977ec9f6a066a127c6c11bc9dfdfe7a1d128f1972916546ca59c385e1ca91e9aa8961965947f1e5b6814a4f15f0847af8222f7892255b3ccc55ee5f03e5a1584629f359d8043fe41a441986564b6426c346fd9f6f1b43b0ddd760b0dd04003dd454c4ad376eda4bcabdc74db933d0f71d551f829bc4c17de28f1ae3b3b523f9552c86ee5e6032ecb8ecad6adabf26b24c11f021bb4b21a30a1f038b2778714505220b05a44669cbd52ebb60dc4a92d269d90e7d1576d6f581668df2666e324ed2e30c1ca50c1fd44c0f59", + "025971429a69dc1148851ae226690aad010c364852320c5f170f77489c57fa1b523b00eddc99a449aa989780573baac304d70669ae0b4c70e56679e38873d7b32c4881d7d092adaa69cfa971f76e3234269d16d89cac98014b5ff82b8efbe73b7d511171cf8a716c0140f7bee04ef26c15852e6da60040c97894", + "05d16b235ae787d1c2000594fd9444cf81ca879e9b9ad651692822ab1802095d28f960f240e687d1ad8c00769ce73523df86ac35f4e4c74cb904c1a633c15d0aa88cbee7892818c18a49cba49e35cfaadc6dd16f4ba496adf47a0a0e4a0ccfe6b5ede4aa20c3eba72628d020a5b841a0316380be79363b678351d3ab0b2f5ba3435d175b414aa5ec3bd86bbd20c3a7719ef8574d42454c", + "9e1f86d9df98673f6482e6c17aee21879a4dc83540b1edc5e4fe596251c1dd19f593538a9a1e307a6282eadf866be467994fd3657ad3c5acd81abeb00c55449397bec510485f123d56cdc410f8d90460ccc1c557b41c4063825ee4e096a3a342c19bbcd824cc2632ac2bd79150f807aed4f62d0b14b0d45f69" + }, + { /* i=166 cDividendBits=1913 cDivisorBits=133 */ + "012f47f3f052b9484f183c277c2510f2d9cce122a75739a48fe21cb23ced2063e49018e13b42e2fe1887538e0cfd566058fa149196f3e30fdbb34172fdb8760d001b656cf1452ce89a0b12168882a293a8d58991c0202258605bdf8431a599beb78acf6d8f2cf7fcf0721b77d5a3d2cc929cd684d8d5bf16d636510709ca0f69ede41edc08f00184bd96670d060fbc27715d2ab045c349fada1efb910e072dbf5de7badc0633a825897d8b657541b16dc3258366346b3516873d03d4bb44b7be90497bb58723feb2c95056c6b39df277a9d019ce2e80ed03ec6d5411ad9216bdec9451f4ddd73fb655622bc5a69fa1c5", + "1580974a80fe7f44a5df9ad7974ee1eb5b", + "0e1ac5dcc7ab6761df7eccc8d84fe18188ff5e639305a0f1f2757f296fc890174870eaeebeeed5147098604a5260de9a54a50a6873e40c7b7ac0f927dbd06fa8a72f09236db3a4693175b1cca7583dc83eaf3ec074783be921c8c586513f7d36a2010452bdd719e284cc5f53f2f5e9243bc36123d65ab3df267cd552c6cf93182c1bf8a3520e7adfb2d305f38c528bcd1d956a3f573356260b94572f246e6a5544f675a6423ccd18bc993f96d66a7de0dd03c6103df61e7da375a859bab6ed80bb2a50e49fe756093e12837a6ec35382a13b00952561b9ac0959e9ecc1bc7b", + "046eb48ffa484c2e596939e20783a1b90c" + }, + { /* i=167 cDividendBits=2835 cDivisorBits=1760 */ + "065c0eccfd74ea5eafbd94215c2605f42cd2a81cc9bc5af4262d21089c17e592c2e3f1090df7b435fbf37418390e4b0c4ca071f5a7050fe815f5aaf37dee10b636c55b39b95318c5462cd0519834609b27589c0475d84d9efab2b22719c7f30d92d5d3d4349fdf5150c299b4d4b510fba80f96d15ae27e8361455a44655f47df1c5a4d44ca95c8b023329c96f9dd4d6ca0212328663c4d10ae73b3046f472e59e630074c3a8b05b176b04c738ba73d2f3fc591bc14a7277a164c6d57b70bfc33eb6869db44be9dd29a42e3ce6052165dd08c92272c87e5525eb14bd42ba204c94974d6ba1850dad7b0e84cde4f2cd950e47cc7c2a498bf03bfde54818304a034e8e551e8ea528b6e4ff715e75207706657b728e795bcd96d16b683b705eff76486325d946ce89a42111bba265caf7491bf5cce04750a37c30522f06e41413fb33fbf66b75b412e681e451dc76c45b73abbcb21ae97c8777a6519562a1646719f4cb00f", + "f883503fce906beb8e6ff09c46b6c56de330b44bbbf7deba53e4086a397fc8e1c0f1a4b221ba5a30996d7f4a2843a754df859676afd1260287c88ce98defbc9e53b6c5ce11f5185087936eff2a34cb2593f12b39eb5105ecbf7f5976b065710e9c31f7817ade3eff33807ee651f2530b8ffefed30cdc57534206663813576f40e8c98ea81f29e6f25e633ca79cedb84031a2d8ace5318fb4dbfd61ce5e89f460f8ab54fe6dc291fed410ed05f37ec598dba0b0ab32f8a633b48e8ba060d5283a41b055d851e7d755e3024c7902b1d6c2e486829e1295ad77c061d184", + "068d1b6569479a857afb4007bd0c19ae17208a507ed8ebb60d44ed76c8571012babf4fe390c7b5336d71ea205bb0e287ae6a20941a881d489f35c21b42a0fc5b0b1ae1d98059d75dee7e3310de250eca8adfc1dc4780d91edfc6da62b053fd60ac49340b4484fa85550c4b45f63d719e1d1d25d90cfeee67c7c55bc0949ffa4d657946861117b1", + "bc9fd30c184663ccfcde180dd431d5775fe8235e798e74c9030b9a9d65a8589fc9e4a9fe0313985aacdae0fdc49437595a92102b3a3e1e6732fb249db0f2a52ecea0693b47c5fdcaccf9a6e9b7c8a32729d338ef26710dfdfe3cdf77cd5091ea81fff3801cf719dc717e0c279e5fe2ed62ad268712f934f541c78c737c2c5bf92792c1da5b7484ee621d0a1fb2960206d331ffd3c39d2eaabe09487f4bbb5529a61724a4977f3bad91d79af11358fe46b772cc1e76ecfdb89db47b36f2f24b33d3eb59328756f68a4a101d209345009aef700f717681ec1ad013f7cb" + }, + { /* i=168 cDividendBits=69 cDivisorBits=25 */ + "06bfabf8310b96e014", + "748e41", + "0ed29d875c9c", + "29d478" + }, + { /* i=169 cDividendBits=3847 cDivisorBits=3572 */ + "0214c76a341e4e25eb612aa4845f17fbecf642c86ff7bb4bf06f77a4ce1a1de362bf27e0e8a353ac99d4c55f8801a05a9b4194fae5b563ea572ab3210e54e31df93cd8e088fb85481156bfd3da486fda4f727eae14516c98513419705663b33cc7baf32cb4c2718bec70b9f6c545d2abf18fb10612eaf98a58e25347fca7e513ffe9d7f1a67ed439211cabf5842b9597fb251f88140ee8f7e236a651e6c5b3fb8dc8707a615c579d7f01c929b534a96d6bfb575436ca705e5b5619150ebcd7f7b41d1da08300e921a52149a50a4bb857da918b797ca33fd8d8e7d444fe43ec900c07d9b67504bd7c93212877f214574d896d1aba5062da524648208e4358988799b7b11042fb676166bed3a4cd7d4382189277e49cc7a1745e20701473ec7c8820deea9fd1b08fd5a6ebf58da1a3b631f66866e7a98b7ef7774054e6c16fd8c6828187c8fdd2f7149b2860d6713b553b30c872a8314d9cf59cf82457b02963c6aac68ee0c299febaa1b821c756f50349514d3a47c5c0b5f74d192c0e3a54add27f3dc4b212bc309583982fb99937337e8868b63ae2a61c01c824825360e7bd9541497941f8de7de558be41d507bee1f03bf0a0f7a1b17ac5c23b4df10411683c36e3f2a3e44225d1c163ad6ce528f87d6b96f6b0044daa5799da253c9dbfa12daa", + "041d84e099d37551ade51bdb5c239648d7f51ac1ec819562b786e1a0a3b514b50f2922955385a759056b2b816794b459fa87e3c48b32b86342122bd1daef5daa93007f25842284952115be4298a719a0fdb34c3abf64c1070d277095614181ab8626b0fbac0179909c7d12bbf1ba8132d7827cd3dbd0389b9629f31d0c531d10a53f25178c0f07dd2c1cf4a13c3ed2251e9d00431ddf901b4d190d08cc40a762b81c11f82a342917cb88ddfe25fe38e0e0cadce53032aea8237816b139cabf3ff89d3ffc156c8b9a1514a15c3cfc971e400573fb1bc1ae118fe073c39a726c4ae93e310621855eda391dd40774bcb332ee0ebe2d4d7e2829058a40673067e1b97735197856e6dc628a005ecc173e9b3221f0ed20ad470b25ca1862a4329bc17b84927fa15e5e8d456c4783c8ee98e11fdc98fa1a24ff93bacb0a0c34a834ee45cd2cc249c22b82bc139e94892a6eb2803da217cb914fdf94cb806ff5a734c99bb9b937747c911cc675f10ebb658dd31edb7aa794ad201ca44b87f9f3c6dfd48ddd428c00cedc2b6c253a9338c2413d2a853ba6b485c6918809509fe168152e22c027cb23ef870746eb3283ee61616c1069bcb4bdd7e4340ca172ef3a44d4b4", + "817673202b56094218c03f8ddd5e2061971862d31c3db2742f6f80ee0fe7d1a7b7fc", + "011d69fdedbfef8d1a58cd1c46fc4b6326b2b565c19d19fff4fec4c055dff2b594d0c6734e0632c31b75e20f9b84a6651382b68de9d70a4e6aa8e9b4f3b93363cbf43e66fe1dfd60c202bb9346b095dbc5e34e625ac6ef719ada2e9f965e3523520958234df1b7a84d254f4a22c3f9946be6571ff7b334232fdee4fa609f4b7765d671588d83b245d471f5c4359ff25709f3ba31ea60d947cbba86895a58ab8ec01b7179cf78f688c5e0f4d3d723986fb1c8ccd6a5c1286cacf2fd19830d051239356aa6fd76b8df7349c55143c358c104f2f4ce0e8ec3f4a9423be78f077aa188c3ceb5f86c05ec33959ff73f5b585d3feb686bd45048f74e8f05bbc52fe8e3f262e4f84c038acf355df4d9b8b1b8ca40eb529e4dc370d47eaa1e4fa328a53958d220f4e4d85124c7162be74e84025e29d540e8f24c05017b6e952a22d526ce5714c4b5a5c5efde2ca2e76dda5c559d9e4ac5ede4a4cbb09f459006985d9b61586f23cd38e4443d1649efbdccf7af571151229a8603ae92fa587717632f2639211ee5e591f7cb04d0bfc43cea451501569e3f29bd3c399d6b03a898ae119f64cd2d499578af92abb0884c9ea379e0e228ce93f955dc835d83677f7a67207a" + }, + { /* i=170 cDividendBits=2936 cDivisorBits=596 */ + "700a1658d1476961f97024891b8f9d84b8899c95b0aeea1fe82d249387e5378bf26702ae6e257aa7e75c0773e0633dafbdd622787e338ebdef7dbc37c7614379d3acbe9f086bf0c53e5728085dbcf25ffb4026015542212899665a4bcf6b008e149a98ec9c645c24bbc26d862f7c12de7e43c761e08cd52db440761f7e18426fc89531b42c140af7f0962b6ed5f28542d47ee6afbff820be1fa767495c7983c0ebdd1bce51c07fbee4038c611b1291d8e3220ff834131bd5045d0d8801ef623ff611fae3102f7734da6b08f1d1a0b462bd8aff3b080e1a579b3341d606f17ba202976e95d80fd9c3b929e18184a30ae431e54fd8337d1b2842de3d2014e2125f928669fe0c46553ad037e33eb896991fe0cfd1bdb7bb43e775444977f96e428a552b9135c35a806ce873bed5d9461a482a599fb60b49b9b07d503ef2e8ffd0cd41a955482d193b6f9339b8cc87c1697b4c28df3edd47cad1f5954fbbc441177cad93f7c2158c9db5e281231cbdaecd", + "0caa06994cba3222309b66987080f1b66c21d72597651cf197a3a57ba0e3bcd136faf63b310fdc73c0717755d6d7d921cc841e4ec5675162b363e69f80be91aeaab58c268b2c6773221595", + "08d8d2ac1cc8e365d011257dc96b3dada3f548e509d2153965d281065c0a79f860923dae96e6cfb36b74030edccc63828e17a4abb2a02db88b888338b288c4fa2148d03810c3d1dbbcdc278f7857816b05aa4cb40fede888ec228ee0f94d5d7756f3744429e7aad157ea2112e3c37478d571fa8f353216ac3fa47787d668f310075e8e1e177d738df7f82549be43c5ce980d2fa874b6afd463cae85f076f04fc8b45c0bb89da45fd0d8f5699ef4e1e6ebc4ac945cfc5724aabda11d11e7e0345b42794874990088d16c1193dc5a95b964b5c2b1e15602e24983f3a4b349a4afe124d04d8804bbf824877f410baf479f61fc31b2c2954b875f8824d9c57753aeef9281a49df072858a9abb55830062c1db01d6a0891a158cdca6027c416064968fa62496a45", + "04adbab5775b1d67e2ed98f1f375b9fb52d9304bfb7fb3c1f93764a7b4120990d35a5c413f6b82dcf219edbd25ab3a58e394b08ff8092c0df43c25680b910e27e15d5e80df3717c6212ba4" + }, + { /* i=171 cDividendBits=1659 cDivisorBits=1302 */ + "03c41d037dabb131b6dbf999b303b92c9c433b17b6ffe196f0fa2c2157e739a71c5543953055828e5e7fce8bd25ace0c9d61097068e24a50ddb284a4b422a2a033f71ed7f49afdfa7969865adfc4b07ba44960d230b0bf9aebbae8b713af8722e056a33127e8b30256e635879b95346885cf038a52fad2866da42149bdabda2b34f2f4f58a8de36274281eb0648b3e22a5cf76c897d39c538a7eae23037acee600df3340f755961b5337890a3f1c17c432677741fcb86f8b3eb30d24278e89344c4961ae633e2e7b75f579802bf05a26", + "26d5d9e0d9725a0a085e3fe12395b3724f7713828e78c59900804bd60e67bf6b0711e82fa8e12db1c5d3c04b0ceca39fb0e0e524f73343e6e0ebd581f3d40a54964301f0519afd4c636057531e9c886f917a48d5f7d774c2bdddf2fcba7ab198c9558f392d433da5de5328baecea2a2f5170801c15cbaaeff3fbdbad97ef950727c9d80b0f73e2d46ae3ad02757f225fb17677d74271704b6bf0d39437489f1a676585", + "18d35e721891c59c28372680677e2a96b4860f18dba0ea6cd4a32fa709cd02cb5343fd4a3c9c97409bb30b8056", + "1a2f862ec0f42efa1bed0d4683909cc2d65ddd41aa1da5ed548ff129499da3d8d3c256a418aaaf41c8590c75b618b389e46fdd91dba776e99bd2852a5ef9c05da9c5fa0673d76a4b32fd43ecbf4725914bc7e692fd3775e396f4c30f728a045bf45aa670fea562a6ef813ecff6b92e799525f3e34a8ca88f626936d61df542f82d93d0ea7975a371b368ed21987c7948477e7fc2d80b663a41e62fe55860e53ebabf78" + }, + { /* i=172 cDividendBits=923 cDivisorBits=56 */ + "0369219bd8e8797be7e1dc6919b268bb2595121577c305519bf526e6152227ad3b29e5e9918ae53f0ee8f6e41ded591760304f842a9ae519e4d659220b0db404b9e2874caa6053e2b68bf6e764d3e5a1a0ed59637f4092c8355cdf9599a245533a268c93712eb4269d046bc98644795ff38a9d82", + "cbd2733565ae4a", + "0448a691e15206dcb3cc74d38b41f12fc49bd8a7f6b61bdd0f7ab25f64cea14a43e54f16a9111cdb1293b482f77dfa4bdff48b94c5ee8e17e1118ed5ab5a84ad23cec66da319856de1af945059176fce69cbdf5540db361db35845d231294ec230869999a830ca970616451e7c", + "a92c31d5eb85aa" + }, + { /* i=173 cDividendBits=2268 cDivisorBits=41 */ + "0ac5c1bf6cfc529db4c87204f84607835bb04b260ea9f67f6b0761fe53e7b39a3a155926b9389d2ca431a8ac669042a6a17214ad9a9ab447ab5974a61093ef471d064d44fc893139389228e0afd072a203ce329f6574ce7407f065dfd1d6b05a216bf7d3d97c3b72cfdf99c52a48176030c4f8dad8d3a0f6b6b8a4b6f29e582cc7559697414fb2ed0232c34c12635ab88faae0bc99daa0a70ae04ebee50c0ecc859e3c73a7aae41fa427bda2316d3fa3d2509d7efc43813d5789d51c565a495cac5a25fd952db4f29d5cd0c199b15853e933530d739e7caa4907f6d5b1b5ecf3fd7f6f12e9e91191b5a63675964fdda17f2eec0561d1fca443d20c9457d3b99ecca1b29976b4ce08b80445b3577699bbfa0b503eaea1e92c0d0f2106", + "cc45a7dca5", + "0d801ad04e80d5d0b31e6a6e6dcbb55066ca12698f6da6a53d9f7dfc1190e5fb2c90e1d0831ca0decb692783734eae2b595c051c30f03753dc74a67bb8d585ad703f40fd6fd7f7ad5252a60abe236cec339149945e9626167743e087975dc8e60f4fe5c93ac0328d53c96a66e6f406305bc66318b34e01187fc00398063585f17e947da703ee6de7ef207b793da525ec882e3aa3556e4290eb6334b7909433369042cbd91794ef3e8291ca57e8857d81cb2241a68cc6cbc588862f6c65827a0bffeee178d9719bfbdcc9b3edbe3cacaac23c57e62ae895ffe17a4b8da068d8a6fbd1672dc3c60999577319a16428a0c97ce2759f12f60a97f29024801bf3e32d05e3892e675f8839a581c6caef8a40db2c7f5f09609694", + "53e1dae3a2" + }, + { /* i=174 cDividendBits=2876 cDivisorBits=2454 */ + "04203dc3c9fb1765894670339067f121c10396ba74a9f27e85cc727cf793e8dd70b15e8fc839664e04b773a6d5228e306ec7059785fcf2f0ed3d8b73962f375e71d9845ff0fe323d2b92e602fa5efda18e0d091a793b4dd886d6736d405153f6bb07fcbbd75d0f8addc151b954b0ee6bc29babab11063972e4fb7e6ddfbcf5f3241b28e48baa41cbdd58e49d066c97b7347bb040ae6bbb40db37745671d253e5e7a8c093e579a02a37ac9bae8d6c2f23baa610abcc5428ab4c7f1aab24456cbd4766ab8e67aeee6280870015ee409390645191d6c3e8ececd217476771b4094d3ea600e92285062c932853c0b57f77eef3be6b5626101a712bb6a0704559a217cda544263f168652656c5b6bb6657ad34faa0a7cddd5e8b9be26d1dd6687e887d9b4ea967a93a74355ffc5d26195e801a0db58633b895d317bd5b289530569de58addbf91b697d4253edf0fb16e6729320d95c63c97a9033faba3fb91dcf5021b25eec2a0c00a83f", + "0bf90b1ed0649cdf4ac9b5d14ee29adbf3b0e5732091ee58aeeb45f049ecc1700057b72f39db3bcae74eed5b7a6d159955dd051f713009dc33766ae601d0dfcf088ce86fd6264e68bc5d7cf72a2d348861935c4940fb81064e59384bd51168efb26eda2bc5eb4220dff70992520362f0ea757956fa31a2fbf020774c616f394be632872fc78379556b23a08098ff0522763f1ddc4510c832822f46f4f8e971811f0c13fcb94c5b919f15ebbc54ccba94a1e84830a9e97ce8a5a098653466f04854e9812c90154887dc67dd12e882d74b96556e564908f8a59cb09cea668bad4cd256229081cf1b371235efbb066ae9181f9a7a823e2751b6e2591f684ad20ed523606273f75bbbcd86035d39f30cc2ca486299885bea40a06f2bf1d4a213cae2a9c9b3c6e93375f876af226751785dac4ca442", + "58384a1091f0b633ce35ab91e0ce92999d0889cb6af0e03a7520e50229ace64eef828f6bd1450c18d06434564948e9876d1ca3d3c5", + "093b131e14060d468fe7cd20d1c92b4a20a49f4f74bb3425c33418d5a5f4a8eb2a8b2b65e62de1e108e0a107a4e24787b899ea3910172dcfb0fa66197dbafa2af0a2e529efd3fbf263d72d2d6eeeec38057e5f9cb9efb8c82987d86998e75413bb2cd0c24476240eeec7d83e9056bed4b1e1a1f91184a47b715374da6d82cc5f499e3fb99947c06399c0af9d51781f94a1760487807f70edb124624a921ff9c51feda272012183e01737145eb3c528eba61eaefb890dff809d2b88ef71b4cb764aaeca5952e6b1cc8325a01565cfa06dcef30eac489a0321c7710d0ab54b312bbe3890ac4955e248fa43fe79191677d05d0db5031097c2a2554faefe0bccf672585509284e0db1352178f8036345db6d52e688beb8fec971d1559283f53340773e102c0a8b3257f19a74f150a842337b9ddb75" + }, + { /* i=175 cDividendBits=2336 cDivisorBits=1558 */ + "61030ed97beb2c7ed030b6245fc34514edc0773858fce64454598dc2587485ff3ce1c8b19de85290217efe228a3a56b83db8695afb2829e7cea1ebde96fc4d6a8ae6082a9bd89d90eff7984439cce122085502709b1538b8c215faf7043d57265864705a5643844e4a6a7900a362a6a4c4c78a05592e1192ce5b58e08dfde0b3432cf3e157a8a275447e81b43a768adb6ac3a29aecfbf0f9c8975c2bb71eb8dbc202877504afa8d82ec563ca153ab0c3ac49f439d9ce39ac5d13aa11d92a0477f33b6de3d083d74e62fa1bb4bcad59c4d967ea7d335d76681fe9e2448993bacebe2ddee0888b4f11227b6c5991e80f89bd0913115d97c3b0475bcf3ba14d1827b349fab8fe6aa20e1c4632af4382e7bceba76b775f4f8e846525b6dccc6af39a1b91fd3a", + "0df479e5e04e0ba7bfc4d00a665ba0c2cae17fea621928cad03980bfb3148380a7bab76069d27e9a4270e85fb3b72f8074e92bbbbc2491fd993060af799d50d0a1c7bbb1d1920ffeed86982e98543fc1a3be50fae6bf2f8ffabc8a1d6e040fe26158dd9787bf943630e6bb8ca9e5e0ba19fc2bfcda8bcab1f75bc0f1d30601fcb8f21de322a9efead93df84d018a1b2a245bef8dae4117a322f221cc6ed309162ae5190c30fb4b059cb14ecbff8c7f20f3e487b16e5dee9cebe148068a3706ec98ccb2", + "06f3a7aa153af6ce1816ed1a5260631426c4942e6826be95c9fa310191c0eaa748dbdf699f00f6d8cdf45577d7a0e0b7795f73acaa1851717b5c5bb9246c15cef4fd32abb5fb7bccceacdb500665af30fc3a00709ccea9709c1d2f6deab0c3657b49", + "08243b56945d00481fd50e924ed0baedbb832c59602d5408407a709948c8eb974dfc3df7f581d0ea0111e2104de2279a33d090a3c8491819e1b0b83175e9ae93db42695723d5963d2863e081a7d883cfa3de840411931b114024963a4e2d2af0fa05046c10e46461a37fe03a1d16ce0405f9d2cbc194cd6de43e24ccbbefb4686603fa0078e365e39c5cbbe528ed27596bf038589f3097ddb724e28fc17c0cb540d74ffb83e8ed7d046465f0688c62e35f0f49a21aa4cb0f9e65e860abc45ee16c1878" + }, + { /* i=176 cDividendBits=1906 cDivisorBits=439 */ + "039181c68abd6439b771b42ee19aaf90f33d5d706bd563a61d6cbddb6d083a79a63346f9060f267765dd13dcea2a7d735f710ca3d97f623bbe8b335c2944c58810b0ac3d98a515600a9e8d90155cacf157ac60a686517c81d82cb341249f05d8a30b88f7deb48a2c2fab29e180566edddc3a73302bf99793b307e2e246cb61fa29b316d80f8dab069420b8825e425e6a2952c8706459b184cbb2d3895d66c2ccc28e2d88a1dc3bb1a132d17021607c11bf0aefe7cef230199af98c292fdb184931a99b14558c5f5f7085f4e2bd85841e66b4b66910a3379ec3539683519dfb0b23ab8ea32ce842c7b84b423cf37405", + "689db07772a45e6fa96111d039babda5abf53dbf983719fa750ead7e7305641debfd648e64736d45af0fa9210f8ea22e038920259dbe80", + "08bb648272c15dbab89e91149be9674aaf1660d9d648b1f9dd19d9709c07f56ffda2fa12f9c10e4ecd6e80159c0cd29351fa78a7c8e00911231118bc10a71c6fd861671f87d0e472202f4bb9d8fbeba87b0377962b76ae5fbfb3bf0b73a6031f664b8c56f3082db205575949994b0191db8f74dba8fe45cd7bca9ed93a1bbd5fc7e289220aa1f3d19ba33c77b321a540a0020c5c465476b3e934d7e99bd659a8071accbc51fa4b5a33744639ba69166ca89759e20e80a0bf", + "19c89a274bead2dc19b2ecb1475dbcd45e7b549a3d3d4201fcbe6202aa411c69320656d9f4a29ac22f117aabf49eb78142c87955325285" + }, + { /* i=177 cDividendBits=1760 cDivisorBits=451 */ + "0c353c9672c6f472dece44a287e2e9226233055dcdb120f7cd7fecc3384463ef2e6bd98d768213d77880569cd96e2e71234a46cbb706cef345f88c98b159d4a66dbecd187e26f270e11a748db175a5e85f2a984a32bfb5ac03c6a457a9e6b4b12dd04549e28a0f323c4f3b083e08912a05585849f4797e64c9bc89ebc279f96ece9001153e38e742e4c61068a65bf4aba4b27bc576c2ac266d2b0a6a34fbceb03cbe75a39cea1fbd0fb604371350303b70c600ba8a9382c1a0387c022ec1456efb86cdc54aaf82b68084b18223b3bbf8cda4e0604923fed498223277", + "041cfdd0a399cb9319dfd16160b6ccb73195c4d32617f17b09e1a0618b25c7021c607ebb4119bf50f08f3e9bda6debc7c3babb795c6e265a62", + "02f7cc3bf4534afe92e31f7ba326587ec9a8f392bae8b8198e9d7e76edb4fb9238a0491d19011b6bd050e014724909ba67d0cbe442fedb760fd6353d715ca1e0dcb85c6f682fe64faa800161aa62d118faa71dec85160dff31f08203d6e4a88ad5db3a8d05f8d2e1eddfb048c04d135bfed2572476c4489484fe1e71bfeb6c8c85037b2e43d93aae80790668c929698047685edb34f2056c36bf6f358d613a1aaaf63347", + "b74872489d499378709cb61b25d88b873ab8875062b08172680c4ff63692d8a181c2624b2932f3957cf6a14888e537340c7f396c79519b49" + }, + { /* i=178 cDividendBits=2857 cDivisorBits=2217 */ + "013e7a8ec2f2b1ca42c117fb6a7840e7c27a4cf4f0dbc38e139b5a6c9a9afc3c6d2ce4c2061552b6af14c2c85b3627460c72969d8d1c148ca573896ad0d76118a30e48e093240688a80c7c72de78c72b40ba2e881c10befa5f7853b1118a17a15a6127952256c7bf34963af9e547d01741a4f9167118f366c70bbbfc2bc4b21424935ec164f9eed99cdc9706d28fdcda797f8cddc83df3972419e6942ec6150434369cd013a7c144930db77753bbbad07dd79ff647acef0ebe37f99020a6dad70b4412fcf2e7a60519777078f16aeda78cb7bcc432fe4ac168cf3bef5d006e58dd7b8ca5ce7ea7525ec80b8b28ccd943a26ae9896508d72ffa9af87871d45d68362610a91399d31b830253ee782fac830c2c73b299d365a7d3fce8d93c41b7ba9eb86739299371045f6fd743ecf0c0d1dbdfd0819dd5baf07117d2c82f51d31b4f8d1f62d3b598796e0babca4dce4c948c930dd7267e11c89d7f1ff2c598ca5c95a1ee37c34d", + "7b31cad9e2a23c89e435643c57b01c3f8518a7fdb2b1f152d9f5520cd0fb2515208e040889e41b760ce3666f76b58a459d74ffd59b9b5b1c91ab0ac6f345b171f4728747b7af624332f1b3199f584996b9c098e354bb672243b6cb3633440b14c1c69de893480c5fdd493674e11a6cc5dd4dd3ca7757436a9e3c2d54472abd64f518019cc815f2767e602a662723d6984b7622be44838ab4cdff89cda69c5feb2b56a288f292ca5d6b3d3578d828fffbf473087c7ce9d5aabdce093b7ab6ac878e3e9642d31960afdbcc3d69061cf6a23430c3eb67f861d0ee9572be76778cf596be0a5ff65d8ae1c6bddda3bfe5fd5cd4f9ccec1529947b48eff37525369a4e3293adbd88cc2429af36f145451646e9eebe281983", + "0295cdb509cd7304d6698013c6851aea84a356eea4669f0f42c41a13220b8b2665a4f9eda5cacc3dcb88a1f077c10ed85658cb3ace44a3cff2d52c04966936b9863c55c524887ccc89318fec7ad003bc4e", + "277e17e23e7ab787406ded71d01c17066763e14c1f1e71e3accd691cc68d379bca1054cf7d073fc6901b648f71a5a01daed0df2b43c51526d65498f7b50e7c103d77bd3212dc38d035ca00d9a7351ae972ad1408ed8b5eb57860ec69b41a3bfe9511c8b7ffe63e233e5ba52f59d189b7e22531423f5b3bc0a02e5b178492a8fc43034a145d5f1a2f81c409f7c41310ad79fee5a64447860f684e665d3478c67694b00a94c104f873366ba1ec5331f50686ca64d6ec5d4c6f27d51bd55863166fb7e17963fd4fc96a093742e961e74bc744162a0344edb803942524875b83a399a9d6fa4b12fe08f167d7ed3ac8609e49a9e17179ff512ebe17d53cc0a935961f9ac6b1244d97f89a1c3a3489d24adb3f9dcebac963" + }, + { /* i=179 cDividendBits=2426 cDivisorBits=617 */ + "023649ff1a42ae645ca42c193c6db74b81b2dcd271e0d12f78d1fb526c4cb044799473e69d0fc78277da16af3a7dc23a858009ba8bb5efbfd37935be09da6ed856a4f6fdb41d530bd82d88c0ebf60ba247770432f23b5748e9abe9e0da1ac8d8ab00e74908d53995322788fe09e94da834768ea1e7772a4070f3636b0ad374f2e947d8cfae0ed335bd08cd6fd4d50984e1c4b902c031f4b3b7427d890470356199feb9cc5d6018843151d3e62338ac188187b92a52fad7c890eecc9995e7fa8df7b35bf16a16699b314581a96c65e38ffb0b2cd79ce1c6d4f2c79a715a2cb0002cc284f9bf58140380da0b67c5e24e254d8a9f6b73fdc31f417752896121299fc5f32be0729fad17a81284adcb73d19256d3588650a62fa6f2fd9881b8c34af2d5df787ff8f5eeaad68ecd7a1b812a0c", + "09a5ea25f5d782f73f0933c8bb19a373d46e080f3cea916a7b42409133688ce8af87e0910d6566949cf35c59eaf086067d791776ab2b7d586728c20b22e53ed2917bb5ee8ecac4af06ef7a3f6c", + "3ab1bfea198d58c935ff9011a4a7b22d2d3f972915a0b5d7d322ccb927a1274110ab4dca8559605a5180d1a22ba7a6056ee36225a5e764451ae5c7b7c83f0676d611c793dbb2d6c3f46cb64576364c1eb3a1c340aa74e7b27955202796f47c2e1336aa94fb6cb178f94cbc37208cd90a2255ec5ddbf10df7c4d896cbb763ebf8adaff404afdbe230344c36e689f4ba83f6a6efa87a7a564b50f37c3c2c9fbc7481b5a7d0e4bc12401e96b91840f1880f04f5e1b2fe824f631adf6661b61857bd4eb2d2bf271a35739bb8f7617693dd1c67ea4b3055642e3434e226c72a1a50ca3f9c43", + "0503572143b285b78ecf880b59edbbad60b3683d44e9562ce5b6fdbda28e63f6e95b22d135741d44da218df524193d47ce2485d6a6168a417587b55391e13455ec9d3ae958c26495da1c48c0c8" + }, + { /* i=180 cDividendBits=2377 cDivisorBits=2236 */ + "01aed7d081dbae12856a5d9236634c4c060fb45b1e7b465191f26307d0d1d1874ac3d18499aa0f1eaccd4a60510e9fa507cf607c33d97ed2eea504d46fa65a66b08f96a2e70f323b8de6dfdfe002b9078f70e981985794f4f99065a40fdbb2d68af911b673ca4574c9fa7690236f5c35b0d81362d48c192f5b36ee5b123496cbd02ff74eba72da3d7992f9c567fec3f8e5816178f90ab6cfd20316ca5927ef84dc7c4a0f6f5ba23b401ef5a3ddc48ddc2b84de2105e1083e7faf53265f09cca4a1e0867dbedd430dc26953bd552dace79c05f8a85329dc7254ba9bba74b11bb6030a5f79c9dbbacf27f3e14bba31300ec231fad57efa38a0ef961f375f553fc986c55c89d4975ef73aadef7fdcadf6075742f8cffabefa96516082c32ccc00c588c4402be86fca6dc88e", + "07c308aab12b34b581546906b20518b963f7080f3a95ce9d02aba9bb8f622a46988666f99be50fab8c3e29cc5a68944d7f9bd53ea5088a07fb099c6877abd404379c57b2437ca04d58eaed12c2483e786541e52d2366750067c63f43473c6baccdf4fa42eb5560848941855296abcc47f1658d903b1372b48df2b5b95391148ae7e1716ae81f417c2ae52c95281954ea52adc6f187515adb1387b3cc88adbd43d3ec64fa3d001f0bb4acfa7a27107d2cf8414282c14a07a5f730aa7bda8033fcef0bbb24690f76854a365e6ad4ee0da011c65edb4bc98275f8f947b46afc1b88d4623a38c45d1dbbc62764680d0b9af8ca7aa35aa44e9b55e6556041bb571e8860564c484dadb78062e3e961e27ddbddcfe9d3c776c16eba", + "3781fd17bbcbf965e87a24ef726ed77cc6d1", + "04500bb75d4a68ccc1586d23dbe914a6a5f2aa5c86b8d251126f9026f867005971434b09db0b0783bef3f18c68da23b35f9ee8c4cce6290eadeec4ec793967e6b3f09ca6693d0ae79b9991c43f4c4d2b637b5405a37da1ad0fe61920e592d3bb8bcf6055c3a45a8680305f38add64ebfea0e296cfe72abc695f01e9cbc80f32e6cc49d31ba4c6fc1844ebb8fd24c0e4b195e8832b18e00995f473e7b4497e3fbb8b0cd2eddc360aedbe44c51f6177d93ae60223e9ea7536258151b483310049b8f6da479802d7ed931f2f6a47493e7ce793720ae9112e13eab3c94561a71b96cc8836d84c878a9e534634e3fa10ac1bc65d8e14dd242d164dae40f759a6da11354cc731225de6384a2b4eded3e4d2a5bdd0d5b2262c686b4" + }, + { /* i=181 cDividendBits=2437 cDivisorBits=2299 */ + "0a8bad0d3b070b8769b59fad7b090441a7341f33de289729961dddfcf8cae4201e9b8ca904b3cc0165b7ceb59cb61f044402463c37518fca8dd5d776a36ec6489ddd3daaa5b237ef09d9d1403b407060291ad131e7bffa8ce4c15358e7d6732118e471af5368112d91eebde64fd6e989e503edd496b05636d5db07bbf86d7537a625f3890b74b6970ff8b20ae35831d473f6060cbd4703678126672303560d985da04e75a52a63122590965b434ebb9d0ae7b5b0a20abcf2aa044fb0fa737dffd4c430487b48af49cb0a8ca77519a190160238c1620e07f9cd249f70da8444ef62deedf92692844c957a02a0885596356157bf986c8d6c019439d8914d720fe4ac7cf789a9efdcdaeba891f1939bd04dca42dde1b320d4306548c6e3d71ae0ee89fab95506c15fa79012f1ed28936c431d", + "030475f4b201fbd6f5a1f229cbc6e7035f944ac03146429cf6030ebe7a940c15bc02124035668e1e8798ad7462c1d42eae9ab4243a9dda9857faa38982991aeb058d9e8dccb985a5752ddb7ed1a6fc66806e6da915568f3f2cbcab8270cab741a6e4bc25ee0e548a916e7ac839bb8be101eb361fcee80d6c4887fe75d390a8974fe0cd900f89b757f222ae6f60ae6d89e87bd03d866de29d06216ca5003dd001d17293512cc9431179668f4a6e110f3eb1272bf207f1d4c49090c6256ef9d9703b044e2ff307677f9dfa916ca62c3c9b7b51e1859b08f4da33daee3d0448adc39aa873c789a7da8dfa1a53f71ce3cdfed58a7f5ce625c125cf876d0d1330a359ea3d3d748c46411c090d0f3d231daa13d2fbf8b905398397d1a0b380058898f8", + "037eb20237c932139efdee12706995900522", + "02f334991215f1ba2dc15ed8d20a9d366bbb49aa9b346bb0eb098b341727742552549e73fb057b569d893d0d23cf5b3b0c31bfa5199bcdea0d18ea23d0521b631fa1d9717c96a3880f52cb0d2234f39e4700235af2f4838baf4c2aa96d6be171cb450ae08cdd6e11bc18e94fa1ebbb41292609bcb50d201158cfa71ce25b9254cc67f795a5365b5e53489a12447497797da01c09e2aa8bb2f6cdd70dae70b09475f497edc43d7d08d69f23058280dca43c352ce83275530085fafd98780fd3465af9e0ef9a28c2084b2dc8c0fd8fd562496b2f095ef20503d0c497e3fe516afcecb802d5be118dd110e5f297ff35bd756ab6c08caa9f00cdd0a80c62e12942e8b5517a14b70d73072bf2598b71c17820bc52d9940f5a82984379ba75c8cb1a2d" + }, + { /* i=182 cDividendBits=3646 cDivisorBits=1361 */ + "2855863b136b79c19ca29531802cf3b75a863c8d4507a4952dc835842ec0fc4ccfe48ad3b78290116ad498af2bfb10b14ce4b1e53ea205574d24b3faaa8c27b929170942bdd3c56c01926498802ca14a72b2375be907ea5df3bbb395e060ad0e0f1e69e428eb4067cd7d596b7cbe6d2705eedd792494ca13002f81cb193345cf3bc58a0fac6f182e0848dc19a2eba31e204148da9976bb15d0339022aa1751cc723730b43e227a40ccf3ce904b4a030ce1dfe029f6a268906c6293042285fcb0e047ea1217423efc8adaa42858f972a00fbeb8c6ed919283127e089d39d79aedde935d617da3eccdbebcdec5f8975a942b5c8f2186eee579c375fb45c066c814f566d5af1d63c526dd2cdddb6b35534e765400e215c19340ec6e8ec12ecb1f5a55d4e2f7e75a6ce450863df86657d525b10d4598f3f019af7f1fc181c10e530c4bc90cbda6db506b29b62c8eb2d29bc44a43657acf36aa074845c2f526aaef915dd4c8c33f42537c4759ec873f6b49a2b29ad8e773371ec22aad6858b64f4421ee45d304383ce19f7c962603638beb3be5e629188b0f5fd198000dbbafe4d003d5c35dba4f9ef76cf6067956677811132e9cc4b4338d0803e4e3ad00679c34ec1054bab9476ad832", + "d5ac760cc8b563ea6a80561100c19c541fcfffab376fc405ef57f61cbb54bc3840ba8f0ae9744961738f714866c2e3c691c348a531a20d94823aea7468ac6aba72b33729d81cb14703a58f60b142ab5d60fe0e0baeff75bed4bdfdf84497f9a7d1915850f2ea15a038070f82e5fe13b856dd5164b23a21de4972a3e72dba78249dfcd9ce71c3a2179575cfb474a431ef54759b320cad5a3556d7a62702c309b935e89ce93ed412d6b7ac", + "3052e4a94057270f98707071368e96999907bf3a6e344dd5afb11774d21c20532b821ac2d1cbb1673a37f8ae8fbd8a6c9cb624bdfbeb373610aae37cee2db6e004235776a11dddbbacb796e89f8ecb65a8fdff8160eced182f19587930e8566cb4f2cc01d0c1e66fa3e6c4ef66fde00d71557a58ecf72d3b9d1c596e4202cf937db2dd39f8877cd7edbc2cab81c0559660179ef2e25be3d39505cdd11dd6f6324a62687032f4fcb98dd93fc3850cd66fc7dde6bfba6ff18d58221837bce6813b6b44450e7dd78c50d770e52835337dcdd1bca297c910d563cda8e6a01cd68a463010ccf4b03b2a5966f5123a546a32c892f48589082c1426903c5a5c3338ab269ee1f37499fbdbecc2f31870b9778c93cc99ffa01de34ccfc4b895630f15", + "9a34bcf9b913f3ce0869da565283b5d1c5455dfbd65c3366dec7b45f6f9d76506f22df67b6ff454c4de4f0f89fa2a3c1af0922c39578ed50ee821e495c00824355060d71bb2596ca4509c59fa1b6e2d0af2906a1f18e700decd32156f0dbe22b9a40f55e4a22a8a1985a891caa1ad4dc76e6657e8ae87b0cf765c63cc11aaf6a156bd0f918d7ac062e4fcaa7ef6bc0cd73f58f3c50fb0be222a6fdab46b83f73dd5d488230a90386b316" + }, + { /* i=183 cDividendBits=2469 cDivisorBits=1462 */ + "07e9dc33db69f3d90289e517d04c45e2434f9470429aa61f36d3eb5ed9964550493343e1400648c59abb048311dbd2482e96212f76b54ff827e0c4db7453ad974a56f72ee4f1de3fad277e5629e80bba18317a8a423cd2cf32b08fa889c24e0ab3c42081da9021f3495ae8c202d76043eecc70b41f166e371bd7f2eee7ebc4dd64d873ea8ed5dbc408b01429387fe7e304452b736ef1828c9986369190680bb375a7dc8220bc9d1dc753cdde9de971267e91976edc20892e623ea1008894bcd04738bd1eec96b0d4a243d7d56b5d7592f7cdd7c29e79bfafa16dc7dca93722849c92185f1f5632a09ab31fbb03d87d64aa5ca0f8121f0876dbaf8babc70cefe94b842125b08a9f1025e188db7e3f917b7a27acdfee28c17ae49612b996da7837d5f35c2d2e0f7cf223841c8440eb47a7f195c8042d", + "1ddde8a6ca3932a91aa6d2c64cf172106a04690b634e716d297dce180d5d48adcb9774a4e046e5c24eff28f03946b6516b958062bc9817cdbee3e2ddb77c2afdbe50b01461b51357f11aeb7195b054d12746a1347e8020d3c3b7cd9c4b85ab1415d667cddafc400b4a79a548b0b5d02ab151d61fb2a45b5e745d297dd6c53c2f25eb3eecc971971cc964568668de4b9210a870301d503fd9eb8cc25af69902e5cd2274a85b948333ef8e56896831b2fe35963516298187", + "43d46b875696968813d8948aaa96deb4e0c9049fa73fe3e843cd332b9ae19a62d38df9b107d00e6397072848ef661aebc27749a758f2d3baf5df3f6e4811b7132590cb3a3666197e1a0dbce42ff2f4861b43e87ab82af9ce5bb5bb46885565f5a02d34642d7a9fc168c1c938882736bf2977fe1a36c5de82b71f19f0d71d", + "16339b97ef645493cabd8f8dd62fc0945d34447005b7b2d9095bbed340071f62487458cd20d98dcb22a0e42f47515a29a43b71ce69056fc38dd93622528e122e34c4f9e201fa176ea60f20ad911127f3ee7a4d680d1b002e3965eff0ea9c4dd95b358151613cf5b808d655d74a965b7cca82f8a5087bb42707df699639428de932d7e55c52d051a6ccaac6a7250770fe5047012fb03493886c8f5404e478cec8d9cc4cee57cb9498b691860eec7803e9f4096899bbf6e2" + }, + { /* i=184 cDividendBits=1771 cDivisorBits=983 */ + "0487d94ee930eb7ad561e4758c94140d85434700cf51ec3e9c731539f81c1f39f808f4e627c5f0d8fd47feec914cc4ccf970c404449be31ac307c7ef605125a2ec88aaafd79c0f90e41423a32397810ced6fb38c39612c6b8e35583d6a0c7305c486afb55aba92c1ffe19cea008945a6a6fb2bdf493f399c72f784b85f5ffd16ba541ea7197800f92f2e7a974f44f8846570a32d66e0de0dc81ae0b443ddd6c22fd1483e77f83c858644d3d0657ffb9454ff8d3919afe8a47ff57cd28c97c85d132d258a39dd6fe4457ecce3c222f1d624a00fdb40fcd284df6ecb6770de", + "20f86694ad2ce12261c5bd9ab516feb0b58951d6f62e157647663cc9a350532b5c11cd02da7800edf2f6163ae05513d4e40b9400301c0b408b4355b2c9a49bc37e05224bdd19186b9f0731225f1522bad7e9ddae32e005b1a0644e1c57099a05bebfa680113ba41983c9ef0d873564340844a20ff117633ec3575b", + "232db764d1cb66a41907939c6d252dc7cae40ec3a2c259a44cc8bf0dc5244e21dc10cd79a2442949a09699622419c0dc768b935a56e56946d54f1ea517cfe4ad72f3ce9f5a221ec108b90a2f3b0fadbdd46b63ad1675448c697105aa84709cbe75a388", + "05fdd5a6c17c403aa32dde1b77a6c4def1c6ab23924922c6dde5bacd54a321dffca3ed40d1cc32e08b9a4a93adcbd44e755f894542070d27cf81d59743a7515791d9196a27e85ffc52022009334a58d10dbc5cebe14ea2e1614abff55c4fc5ba7aae1e5f446a20c44dfe8103b063434e2ac1c0516e8c2e9c6b1786" + }, + { /* i=185 cDividendBits=1523 cDivisorBits=224 */ + "075f26162678f8423a77759dcb9cd33c3ef95d0df5fbca73340f8d416636f842dedc2573378a379783e309e354ee7fe314f78bab30184dfc8c96ddf1f0cf982a4341bb09cb5e2928f9cf396997d4dce0f554bc474611a3ec29c8aef7304f3b52c0d0b56a1f749048d697289f0a250f48fd83f210f0de0fd0a36d049cc7a2d6479c4d59a78e94c658716f5f2d5efdf1bdf50c7c0a18771cd226ba8c746de275e92c62666c17d968f63e181a0fe36645d9727e04486227e2f950dad10d3a527c", + "35ce4356ed24aee2f99f53ba8ac5dbd59ea9d1872e6f34e1a547a148", + "2312c99fc7a123c6582e778316ae21aa8f570060082aba9711520df01573ea69a2ef970357d1d45c3a5cbd052ae41a636db4523b7e2a352c7d85c854a49c74eee19cb932a91c0ed6734180b659dd90a73debe3e881f6c1583b085e4812662803ba019b1d0ff3fcf0e5176eae1e43eb3f2f30f57198ca32713d2d5d1ff9a9ec397c183419f73decda55591314d447e3e49ef60ca90c96c09b15091ce28cf664b4c2aac5", + "21105bbc95afa40460508176d0f5b74f0a7e7c2c8113839c73716614" + }, + { /* i=186 cDividendBits=1599 cDivisorBits=219 */ + "10a2f023656d5c805381a5f7d909e64c9e6aa05adb7f6acb1ad0bb38490586ea69e9202c1bad1f56acdcb0ca5e9895c4baad2b9ad532e3b86f5ce6ccff951391a2c73fb899911e4ae01bd4b1b6fb5d645c2df483e9b624bc5f5ce131220adbe8d29e3a51a6beba9435504f46d76b2e0626ae3c60ddd3a9c4ffcc0d1199380592381ef8470f61422f549df429a0e38d729629f741049782d901179cd91046c4ab1bbaabe13847c07aba8e4a555870de68057f835d6f7aa6ac04d55d637f716d6475214730e8c01f95", + "05ed6a6493788a54a7d08615f3cdb5021359aecc97b2f594c0c44699", + "02ce8439198530280144c01685147099f050dacd2532d083fac3875a08ca335c38ae26a78569642b6d1f71640ba39267721493824c7833bc98e1ef1689ead2cb2042026164bae4bf8c83625d86fa14017d8d6668ca356afbc74f4e40a3049ff9daebe2cee5757cb7762327b4e409e6a4ccff4d498a0eb79c098d6d3be5b4fd69af4ad7cb800e3cebc6f2bc08548a09af799b2c5238e46f021f844a85ac1e3b148d880611fd2c810e42a0e464b3", + "01bc6a437c55afb89d0979b2408e0aa3b18514117c8b8880f3aafe9a" + }, + { /* i=187 cDividendBits=328 cDivisorBits=85 */ + "85c45730102072358e76f28d8de91455e29f2f787f91315d97e452ad24e8cbb69273e585ca48050dba", + "174a56c55548702163fc9f", + "05be52224feefdad5d9e98c80065182d2a9636f539afb4ef5855e69ef877d7", + "0ab0cd38ffbf77e695fb31" + }, + { /* i=188 cDividendBits=2964 cDivisorBits=222 */ + "04d48b945ab9954839cdfc9a619fc933b719e294177376f8ae32256479605bdc58a591693595d57b0efbc7175ee5029e72ea17cd14bdf57d050db30a15784f19c416ac0b4aec4119ec733621e4d9b15dcc55f4d62c92ac027674c209081fe09527bc8f1e35da5f1a15897f2d4a229c49b294ced47693f4cd8fd3c41848bf4e889e51016935e50a6855930001ac7a0ee5b35d2930d3d4efeb6852ccfc62cf05c582a3429e1a18b48d79ab27334d725eca8759e0bbb620c71abc2911dff733b92fff839fb0154441c3ffd9cf566c7bc0ea8e912651f329349a1a49c7bd52e350bddc00624678d062d907fc77aaed76c42e53540821a09b3083667056955d38114c2bba9eb5a3e0c8ded39d6a3be507281186c1827801f57caafff15b97d713b4a40360afa7ed0f2221fa8ef7eb7b0f3175cd427f9ca7db55f26fd58403cde519346e9741f2301166f4ed77d91fbedb75a44eb37426fd722bc0c435eca3d5068011d50979d64ba07b671eb8a12df5851aba3c7c96", + "1c0c6ddfdbe8c4719cb2865b4f1999b4d12551bde178f382689d0c4a", + "2c15fc97c97c334b945fc07e47b5c1437b513e3b7d1d83a71e4697f172da5472d6f55e64b5dc19c9eae67e030927207c44abbce5284f02224724958986324a71887fef6cfdc1b1bfc19893a85b7c0147618ba00728840c663c023d01613c53ff7deebd04f35bb29dcb0a8215dacad0212b637f536d67526ca314d20e56f246477bfb6684e922e0f191f18ab985af014e126a4fa161c28791e76c3196cdd328ae5c38adfd5d76cce5b660b2999bbd010914d5e7989e82320b75f901daccffcec68fff965e4bf332fa3ae29e1e0c873a19f7f99abced7242c50dbbf68edfdfd7863515a854032a58452c56716a83685e7284b6e504d5f8c818b08a3f6be1aa69a40f7f7ed3e1edb077f1c29c11594da3cb10e2cbcfadfe10c41908734c3de28d65bafda606b3c2bb623f32d12ef6f92ea1b368ac45255d78a75e4ddbadc2196ec82b582f8e0555ca543668f09965807efd56f56d39b016bc", + "0cf744556332dc9674d94193859388c599908b77a6c58b217af91a3e" + }, + { /* i=189 cDividendBits=276 cDivisorBits=250 */ + "07116aeae89aa53ec1487e8b642a3a1c5b9c3448a99f6d97a3c0a5c633a5d5a8098c34", + "0210192c9a596379dfb0dee692091509d917e99b9021073ae3b0be650e11d8c1", + "036d214a", + "0135cfa15294808279a5b9a3a7488b7428b649bbe76b0dc9ec6062abbcc3036a" + }, + { /* i=190 cDividendBits=2066 cDivisorBits=1295 */ + "cc9dc471c21de6a41d87c2d1627d0aef9d0cc8abae637d0930c2bb13ad1869db91c7a53e048e3dc6855a5fa1e15d4ef76efaddfe53a300f23de0a3366efb673413bc41f3860d73b55739ecfe952cc738f0df75e358497da01858fc78844ccdf2a666fe3015310314a6ad16e71428c424168b9e9eef4098aacdd952ed89578e7322164f482ccc90c7281425fe62571c32abd176425eb97b4e7fe7e65b7d0071e053e8ddf41d19a793ebf5581c24010d4c58e0110acc541297827b722b7e247ee6ded845d8a52ca05a15d99e2a5619e9cae1f596c3c1bd1c698409a9b3cf56e841a8e04951cd588413e777abbf01cf5c0fb3f1aed4d0b5871001a94fa339aac6e92826", + "14c3df545391bf15da6ce1c1a561e1fcb3bba8d2eacca060c27565ae454d59d3aa218f5c7bdbc3af0192dc2e924bdb993873dd90218670969503f7bfabdc0ee3d6f2af16edec2dd434a3c34dea1e765fc6a7764ef9962a6ab0c4d15027e11667ca581c9b9d14bcd6d404661625115bd6645efa63a20829bf702f10217481ba63aef95864645c6a38a75a8d849e32c51145e578e150408567ef2e7e0e36cc86ce9e14", + "09da956649c4273f869fdfcc8974ebd83471c5d74461f842f6ff1c01fdfd3e309888166f1729fbaff645815bf4e231ca1e7c43ae72c24bed02b9b0d55c53abea8b1c2a5a72f4f15a5dd1d36beaf0777365ee66c10f9e049b598ae730e496da956d", + "141c333e285a6239ebe59f7dda7460f8ec21239b06c900e643586e6a556e48eb0a2389922a857f2c166558d7ab1bda12f396ff24fa9a32e01c27b75e2fa7b37b5d5c0d16c33135be7ee41a388e93af5df7eb3dbb43ab69ecb1b3d08cb2f4a3d30159881e9bafc86ae93aa9c047c23d58db6544a603dbc10313410cf4b4808938d84f3607790e3c83dd787d4beea143aad878f9fd96d6e622313ea2d473bcc9e635a2" + }, + { /* i=191 cDividendBits=3487 cDivisorBits=1688 */ + "608edbcfd298d4a82f4acd3d332533c57352d68d30f61d77f5534cbe0359faf86876e7e80df2d43a3f49c1ca552126450c0bc5c84e20775c2996a35f86be11c96e52df4730e77f36660c3e5b8ead1a478085b5e0cf4d6cce79d43e243bf1f479dc126bc51a03b66857463196da68d2d8ea0ed03b156369e33b2e7e7cbdd04f6c671618b210cd1f6379c41144bdd5e79ab8bb47565f937f2596815cefc0aaba47fbc25eacb9d76c857b623c9524f75591745a29dcbf9e391a4b5c92ee78a6d4d39925b47a15bbbe1a1324c7d0c9ad53dd5871666e32966a939613a8f6aa9f3f0432e8e0fcd7ea92f2d59e57d63a3cd268ce7fb5e028ee19cb26103c29fed7fa08d1e62aeae815993d2b2f076c87b97a87b2eb0a5b1d5119e0347b0a43c368b1e109ac107f4a4938fab75ef076da0aa144bffc2e8bf935b7865f98fe618d471cb8a03c2b6fdaf800155c89aa4373cdd65a14abca66918ac15803f63109454be50c416f510d3b1156a09ed4e550759fb95bdddbb2388161990dfbafcee2148a465d2efbac280e5ec400ad967e55dab268756c273d870f0c2982572a49c7ae94021b6b8a4b8ced9c86e7327a0dc942b6c39a1889f359", + "422975d1522ef0d4807d7e4f7c651da41facec5f3da3b79ac6cf3b5bc5d3b8073e56bb3467692f127f56bacfe91049d2511c5448485dbf7d9cf238d83291c071c0ee0e04ed1f5606073fa95da59542789965c69c14248c1e4f428f10ef27388c425bd5006153aa8e27fd95d9058932eeb779931b286433e2f88da48ba8ea2c71d8e704a78df82f87a177b0859fb2d0c2d6bf1a688fe056db2c5381961a048705d5e7ae252a9c31cf27097cd3d353ed00300c5c99a1f1a7c3ddabd5b5c4cc5293c7078f19f070008c1a3e27b8040e91aa30b739", + "01759c831a67b06c162bdf256266f7ce8713c3290850e7199ececcd4787add19267d41e83a0b87b223e604fd6e2db2ea61b62e647b65ca92a4371da75bc8484feceebd7c2950c6dce8fc15edd3edddbf3ab0d212d8e753bb33740e62f68acfd2d9c75d868945960752804ebb01a52f6b0e579e246adf121aefd6333e9b6d445ff7099911538d5dcd09b72984d22d123b33f057154fbbdba268910354e9dcecd951cbc8bd71650817cebea0ff6866759f0b1a17e50468b576bfb8c5e7549a88ba6ce635eaeb179416c3f6d6669d8c40643084a66b684123bef0e84dc70b0e0463dd0f", + "3ab80a8cd4032fb6d97753a5b31370775af4ce385bf93037f7485d4f1da181408f77a362356da2a6e8e343b8cb40cfdca6be0c4e2afc9cdcadaeba5418fc0f6fba2e816f0ecc3dab80b9126958a8b56b8c3849b041a4c0f5cd7fd93cdcdfd4ad2adc3679025b264c08ea8c4ecb2dc8e0cae5aeb4650befdd959e95d287a50aa05e202172c8f6f8692485230b14c9b6af0274f6805d3a03ad0c046bc46055933029911315a9ceec53b9ec6ce5af68046e3b5801e727e2921ce3d280d7e0c2400c761fb2a0c31df29d8d68e418101d5352780202" + }, + { /* i=192 cDividendBits=1954 cDivisorBits=1741 */ + "02707e7e5d396c0796da983b46b9a31071f85187421587e079d722d4995f5bfb2e8aa89e7ebca55dcd10d9121e0490f04cd00a62989df356e13f5ffb1fa37b035cabb816220a69077b4f91b5a596c43351b9f4c6dee9640e79f3fe6bebac64b121c06fb82c3ace3b53d8eb2c7ce9c9430c76bacce0fa4e1453d579281e256ef86fa4c7d23bdceed0830f39cfd1e32df2697513bca1f6c1b03a0513227aedeb03a23025c4ae20024571d9f54dd2069aa340a2b93975301c5f063454f3c60b073fe00359e074b7b3d316a3de430daab52477fb0e44680bdef229fc96d24ac9568673c3f6e49685a5e5fd6d3ec8cfe40b2df50a12ef6f", + "1f56acd1c1603d5a3aef5196a02398421911d24d5265c1327029133dd48065d6f420fb76f0ca8345d9952dd23d0bafb3f0b94c03e7da904e3ae74897979fc6bdfb4ae2bf3642637488eb95415b283b915702a8e5da2fed459a1efd24b4940064ed4c92f424a7701552043c5a937020c85b693bcb7e546979feefef4a1050f3266e72f09d98a57069f69d3a580c33efc2050ec3a15a4f7b89717f19cae2b4fe3af43efb3b690f42cce2c42927a563edf567bbbabcd63bfa7b003a698a03223f4be45c124b3cc0894bbaba6822539e1c6271d39f2ce476890361d0", + "13ed657f7ea43ccb9ceca274e5cc407094a8c44574a173727f31da", + "0807021a807b0dce5a0de3514b9e18c63a852d258d877c9477ca4da2c1058c4379aa1f93183f6f9296716ff081ffb622658b6eedd38c942ef69d744a93df6e6c6afa5c483428bbe617818a0211b3ffe3d2693d505417a71aa5ae905325a68487d5e44b66af1e5a41d4cbe92da95366d5d9b1b502a56fb1b3af7883c76b3ea05ff1a8db94944aeb6c1d0479642579bb80cd311b22d30bb6c8ae03c0a26d5419cdd34bf6e813bc3a30c8b469753fd3febec5f48d3127ff66377a78abe63ab582e44745cf8a45a91a12db50241b75e1d43dd49090fbb61e9148d44f" + }, + { /* i=193 cDividendBits=349 cDivisorBits=344 */ + "15a7e764f5eef566de4a8d067e4fcd86bf9cd7d0bc3bff3f0c481706854c8038dfa32c43d604b1c5efabd114", + "14f32f6eaf839b8c433d09ff6b9554288d68b7f911fc9816a38134902f92d4bbd383e030e20fc5550f43bc", + "0108", + "0d1e7ad0ef3cfe38f39ab7175dcebcedc8da17e1af8267b3aad8d1d43d14d72d832d116ce46e4637edf734" + }, + { /* i=194 cDividendBits=174 cDivisorBits=87 */ + "2f392fc1e8fc9091ffd4f5604b8dac8d9fe5ceb863cc", + "40967488f6caa0c8d0b2c6", + "bb2cb96381e6fa0c86f35c", + "04e42a53c0d084ae6232a4" + }, + { /* i=195 cDividendBits=1518 cDivisorBits=1250 */ + "090378131a5c562e85e64e15c8cb14dcdb7b81142058fc9713f5733dfd9c0a57a5a223ecd0d1cfff689b2ddcf9749f93a58f7eb4983df840e37e5cdb4257c1a28d24a96dce58419939010b050c16c944661ed223247e1744681dfa534ec1cb63946999a31c7eacb2764d55fb9dedf0790a19ee62470d70d95176fa320ac9473bdbc22eff565b591f0dd033e97cb1de769d7b87bb7d3e3fb0aa6d946669e9ba54e4611800681e73c1faf17c0327908223e634813b258775d193678c0d3f2c", + "e6adefe6f0a85b664b9bed3ab5ad63111f79dd1f745cdac4709f4b8bbf396c07ed0fb9ebab6fb3b56a5a5ba05752f8b305c375bbb77ebc4c4dcf1dfd74bd38d2bb3ab789a9dad37b34929ee94da5bb9e16202ffc70d0a633799b0c5e84d0379f0463534996418c9032666df0bde5b1c64dd0568ef1c692106d45ac4a76a7e6b6a40324e9558406a2f77b1c23ff77c24889083ca8ebd18c63989aceec", + "0a00bfa906d1c112783a66ef1ea9f7b7704eb443ef16ab338997a9989e1a5da8a065", + "4623925282bb06dea2c9c2c65804e53497d5728380a225499fb5a3cd8c8727e714357f2875f4433a301c4744f1845e0e0e3e7edc020e279dad3737e499d53c5b8992c2500bc2bd3a9594f05fe1182f5c1ab1a62cb3799516fc08c2622413d2150736594a0de9bd1656b06f14258e0d23c5202a6aea2ee532ee7925b98c1fc5d152cb7d13ed584e8a967cd558051332f302acdff5710be2000ec61c10" + }, + { /* i=196 cDividendBits=2587 cDivisorBits=123 */ + "06270098a8fdc89a7877a1f94ff117354b4ec435c2e5108e6ae7674a138d8c92c1a25cfec54cea2717f91ab0d274614a3c3b869ba4a7b7f0e988392dad2197e3b3a1fcad5e05998e5aaa78c66b68e9c1f254b0c904ac25bc27c684ee43e79b5f7b93fb7f819e97f3f2fdb43005102ca0c3171858c90ad24531c81af1ee90befa7bb1b0c43ff5426b9e767e08d24d8ae51d85699d2a2db6166034d8f98a26a9d0232702b8f21738564924b5d986ae3b276675bb0f9ee13da1a147e5bbc1f26ccc989ad59ee2beca0778a4449961200de819112887bb2c015d55817dec825e501cdb01c94877e29afde278cbf94a1a43728d400c5d03398d863443e6fb013644ddd4e8a5c062820f19e6268c105c586ec726621eb11c1e9b734a83b833e9c8108276997ab0ec0e8e065623868e6e033df1b2bbcb40ac1236b6b5fc0f2acc9652c1991d7bf7", + "01449cd4fa63e926eda7bb8736b3da7f", + "04da19033549d99ea3a8aed7ce1bc034754b323144e30b446776eb2b417cca3c5f33aca346afb22f26e5bf99c266335bd12bcb6233c901a5accc3cc7d83fba9f15c3cae318f79d8fdbcc774a2ef85df49940830369f5b3e017240dbc07589a9a4b2cb4754761bd2300d062391bd1fa7619036c719e1af014056e6720a090b94207c7d34b563cc2d7bea3fdb08238cfd715c8c42c0038d78243a34605da42b41988d2acbef9c7772eeb350e70a97b9c36c1a0c47dc25ae96be4b4cacd2ed326052353a1d66439b7bf71806c994f7c00a7ade1b11e915ba3247a772dc67fb8045424357c3d4ac12434b40d3250ce47f7a6ed4071623fda25c86358580ddb429bcfc688bc5629ae2d3eac428d67aeb39e0c16837cdfaf6192929b3fbd983ac2bd28233ac56809a3ab5c40e7969bf4a66e53e32dd1aa8e", + "a45a3841f2f936ab1f51931d92f385" + }, + { /* i=197 cDividendBits=1348 cDivisorBits=1075 */ + "0624947d4a25689f2a59dbdaeb0b815396d1859e13e5f592954f4d11f2345b2bdc98b91ecec7d2cf08677c41913d2bf003657b85c153c8b3add8a084cb40f7cdf22e19eea93323ece6ecf65337ee50a6638adf08f030bd9b9fe20528beb43e6a87faf15b53d7715c61142ba32a51c2ac5e771fde55bf25a4c3667417ae3234a604b16f1db050c1ebb74449b7a8d4ba30e1237b3c7eab08de966e6d90527a6359baaac5e9333e9e9e56", + "c8a073511c8da536b3fc8a861148b2ddabcf1d10ee659380fcc193c519b2988eb68e0496ed854364ba95b4806211623ebeb34c54becb0d64ebae95ebf75a2bf765669e59489f62a5fe8b34c4b0a0c9c9a21e3e0eea9791515221388b1931a15242ec11dbd09d86b5481299e919b96c1902381b9810f96a1210993a9173815a48f58da1cc518e", + "07d69d3737565ab3e577a1194ae08d8166fc4259be711d2cd7d022585e89f805ab7182", + "9d71c79773eaaee16465abfa509cec1266bbff0fdd1a46b7580024563a6db87143a9c6d21edf0306db50715a79b52992157961e4c4aeca3b667c95c13e6b540efc942b9600e99155d26755fa3c53669fe4be5f299a34fdb58d9b4716fc62479e180688228ca120ece34403ef51df556b19b920fe4dbdceaf9373190156f2fbd9a239a503863a" + }, + { /* i=198 cDividendBits=400 cDivisorBits=347 */ + "1588262df029bd39e4019e6f0e08b2f3c8bb53501eec8f8e92f0fd26187724e9abecc49da92b08238063f11223cdef8ead34", + "01e31f7f4db6aa1e0b8bd77558b37e5d6d3082555ce2816267704ebcb5181373c7076b347449e5d7e34ed53c", + "0b68cf23b8aa45", + "01ddc68b966921aabf39aaed0719da0ee2effd58716710933e9e5e0c9afa79f94ef1c431d253e056da955c08" + }, + { /* i=199 cDividendBits=1231 cDivisorBits=509 */ + "1343de50bf8c8458b792153f5fc36d88e3fe913922efbaebaba6a7fc76231443d43e61b1f9263d98dfef54fb3c7f44083ce8a3a4f57420839876f31ba946e89a8dbc7e6eca615b43925b307502ab24eed87df87ed0072ee8842108b5822add4581a306232b9082785c563f8e0cc2709f30b575bf44568f3c71bdbcf101567e0c8dc460ec451a46bf150fcb037c18cb8d4b557fd48142fb3f4f6f", + "0b289cb0f13d118efc6e2f2a5ed18e1e5357dbf7ebc5a4659ebda509889c3ec8e16e619c9cb34d8489428728da1711b64836aae7a0f6432f072a4688fb4ffe12", + "01b9fa3ea27ef642f4ecb1a26e8ddb998744a2eeb905972398d2dccaf58c05f31813e591fd1ec7a49d0100dbf0cb5eea6394c944a8fc32ed3da9ada619ca29f1733cf5a099ab722d99914524fe6ad9ebca0ea487fd34ffb9c30549", + "016184db38fea047b46b539eeb3d245987368c88d327e995ef44f4746d89d59c2669e82f06dd1331f12d8cceaf2ee08df1899463e254d38bbf5dbed337c3824d" + }, + { /* i=200 cDividendBits=1007 cDivisorBits=539 */ + "0de31a403fb1085fa895e114776aa6689b9f926f63167a33360d971ae1ad0836e5afc6f44e7d4fdc91515494f814e7c9318c2a201c217fb303ee199da8d913d555a35f5807269d2dcd2e0d7f970c979d3ce794ad85035d146cabb3d3def03796f20cf0ec9835832d8755f1c3962822f1cbbd34cbe7cae2837d1e22b15f7e", + "0415412cce85982527fc8da543e8d27b2a25117143ed6aa32f18e78bafc475ae87fc420b5a2d1fbfc43c643da60c819ff13d865d59b5dcab57faca2eb8f0219fc054e100", + "0366b3f447db28df558668c50bac61d14e68792c8d70f0ee6c6cce285ac20b9d0e2c861b782f410c330417d34f7db2521ceb2fb263c8b8fa31a30b", + "019fab4c88aedc4fd351d11cf1855c679d5dbb663a52b018a0b19a8c5d33098dbdb1a1514b5282acd571b91ead9c2217b935ac413d21ab5df93de3e20998e7d1c2c8b47e" + }, + { /* i=201 cDividendBits=1253 cDivisorBits=1074 */ + "035b2a86df72b6470a4647e8e67a9cdc885066ca35a13cebe93c6a1a41222bab730beb2de752375cfcdb068b1b6a0c33dcedc210b1172de2b1c039751903839967a37e4d7f88658ce68713c6c088a2871a89a2fe92b077a1cf10be95a1c74bd09c01bfbdcdb0795a53b32e7f8801270222576f0ff2c7dacd7a29f6ad7a621f8f84a05a79f98918d5e55f5710287c9b82f77964399655e74f892b37d17e", + "039059de7dbd0b39f6f08343d8dc24688a64797ac5e6eafef64784917692d4afe4f5f0081f1b9e2d4b4f4e947131f0a3d8f749eba14ec2b52c63f48295454a223706c0d2a7abdb08bd00ad8a1b4d0d228a4733c9a6fa00b11f5fdb6603404c3cf239d4a707db2a0e866e704f4be752590382ce44c047bc7c4af0af8d5f5e069af996c687ea22e9", + "f1139ebed4ccfac9c4ee74d60d31fccdbd461b349c13", + "01c43570d5d0cde6d91eb048a5788095d419393a0bfc6114740fad90a8465236a8186a1ab552cebfed7ad61c852db1c5d73e31809df0f51eb7da8584b420e531163f93ae256a8fc0500d07a7b7bf693807b2fac47fba3da858eca5a26dc4d31009c4542722b17a2d71fc957d364888885ef959f2c1f0326d2705ee98a2c9f9d6764606bd3d3e33" + }, + { /* i=202 cDividendBits=3728 cDivisorBits=1268 */ + "095a308a68fab906a3ab92f5d38f7d06fab17d9ff3fba9bdbc4c44eb1181889cad492bfc293bf4718e387b227291f7e2aca74d44560b3214a3070f754936a2bc123a504ec31e95f4fb53cc48c521b3b636ffe27951f7debbd97f6d1a459ba8341711fd10c1cfad358ba38dac42db8a640a6f0cb32d5723bae79f7c6c1bb4eba34b5f8ee660b515a6e401f55d291263f9cdb359a8287dbd736f6929f1ecf82efb63bc8e4c20a39fe17cc0ad655a256b77bc03a80ff58b51eb1a43f17428f105797e0fb042e41e3f22d91c582b73b8a52d9dabd75db39d2c993d47db41f5ce7a7eb69d2e7004e9546aef5e1f095b3980e80e73faa81d9108eec7bfdef266bb37dbe60c0101b5ceb59330c43f2275e7b3b14977c85fcff0bffd43a192fa2d572a9fa59f744388248c0937cb1aaeadcfa6a90f2e777c66f2d406123eccc2a27e7bd61d75838cd3261406070edeb9f8a40a82e1d2a51097348ee354e4715363b58b6b210757e263261e3c8d6b736fc4a034c9a33034fbaadce8b43a493fb5494b62b7ea85f4f70703000c13ab4b74e6fe1a61316e515f37cd1972394c95b5a3f3378a82791a2baf60ba31e3d91aac032cacf06e6258dc497559cec696576120379dbefa4a684f58e83806a06ef79530f4755b924b", + "027a0a43dd87fdaf20588b8916ab372b6ddef69a33710ba3b70cea3dd4e518042ecfdaef85dc7fca60f6869766d89014e45829c1a211478cef3cd12ba7d34973bf241135851e240387fd3f9f84c3b061f7f236b3038749abed6c27e42de9e6ce172bb577c20ff1190e34c4bf2103c79c20c5554dd10f7923cae8ae8cd1b90d5a5604def958d1fb0a5a3d3649fbc0bb236405cabf3cd76cd20aac73fc6f9565", + "03c6ad89d6accb5df207d714deae3db8c22f27da4ead820fdbd1a1118e3f5075b38c526212ffaa667be53e6e47e9ebbdbf9c059c0d28277c0afcaf11f9ead84a959fd5e48359026a85d124054953f192b519198ffae91875daef91d8be327f8a923342c8ad04c1647bdb5686b3dbc83619c0d5c62535cff323f2eec2b1e061613a44d8a8d54c9e0d83703ed7993026c6e76560281152a1fd7aa929c7171345cdb0552db9c2a0772272b07510c9c8faeb91d3c302464ae122fa13eb3eb21d46d7ba3015f90fb1c37953b998f2872faacd1b65814e044a5db8f3fbc4829fbeedb472c5b72f0afcaf61c1fa4c11f3e022898c0e530a5c05beacd4a4be6ae86b971afa0ab80d768ddbecd13f15f153e3c9bac6a4b3b539dce6d6559d19e603eb3942e96b54456ff8108c6bb9b0d620e0924fdd09ffb9", + "1bfa9cc22dcfabfc248d58b9e2029e8af6362d7be39bf80ff3aed3fe625f4a4bc3735a733a7c0890be626a3b5cc0d1a8cfa2fd328830fcfc6edd07e4dfe2339a096420782766a440ea487ef357926843c75c8d9d4a68606887c44d7f064605b68507878d016f8fccc82c5488f5f5dbfef402f3b82312b3529e0d8cdefe3efb43200464b7562bf6ed046aea174e0596ea52b3b0a96fd2791420a0715c014e" + }, + { /* i=203 cDividendBits=2793 cDivisorBits=1220 */ + "e5cb6629cb16e8f9262b589cc0a64d38d2b9266650f74ee1281443394d7b3010926fd6aff3007e8766bffe5aa2a7082f134e751af9dbdaf92958c0e62c832afc5f265c07ee955a5ba88b4958b9ee784e67a56386eee6ed8dcb41be9fcca0622de062de4fa7633d0b8f1c20ac666a1ecd38ae76e1255ff072f982c4459457131041aa4db6dfff1bdbeb32dd51f2b3606e9cc7ca699b9672440caf8eac1b5a8b93c93d8dd3d5fcd3564056e4f0ad26648b00594733b231dffbc651a86540008bbb6e5a681969ce42ff393a326069d3c85fa4ae57c8df4b14cf32faab0ab1ede8b90ece9849f688cb64c439329b4dd3e896a9242ed106436a43650a2908f5979dd5fff5af8670dfb32b2bda473b9134c1367eecc0346e99ae2f3b2cc8d1eb384f1b6adc2dd4a9b74adf277f801b61ca5d769d7e40961a5fae5562008587a6196c36fbecde3471fff02dad6ff9fd612f5cd77d6e43b944907a5380ad681708", + "0148f60569f58dab20b58b938f36651494aaefba42bd7a9f2e4644b5f43b9e3ab7d130a63e9ddcaefc188252343210be8f442cdb4fccb6a4153257b61616c7626c5be9fa26e646078179ec003a94b877260c1da96169bf9082aa05a1dfd39729a31e5c46204fb645f2256d7cdef068eb754e894ac9a0ac04371d1b0f4acb439854b538991959cf98278a9ffb003b370ef39fa6110d8c70a33e", + "b2d3ef65254720cdf42b8d437533764eabd2f4d30fb2e4b24978529a2e23fc9d14aab00061f0bd7e77deed01546a9aac86404212079648ad76d9eed0fb149c1343619237e652658176afb8fccc64d5bc08da4b2204215c4c2d3a0410dcbab9d2b714b181df2eacca03e620fbee8ac525f07a72825fa8cc4e0ad1906052e672c88fa2a20009cb0c3309477d0470b822d1b7ae0f74d46b026b9e59fa5925ef6d69fc2cc51e7b53c255950a5dfa1f256f58e31f163f9729c462a4fcc87b8ba3476bb2ecda1546", + "f2d89c7fc05a4ecdc4ce24029499b1b97b484d51cf7a101214c9bd8e4626c480d553f701c4bd547aa189afeaba9dab1d7214e298544d39de151f93cbf6a7466c19a25bb2fb5892552bad72e52c06987d20534da10868c01789b380c9990951bcce37ca45040280c4e6aec1a2ca1e177c13681869f3ec00432705464a2c6eaa6767220f5c8b10ebf69d2e179eb08afe74cbebb3c2de6b5e14" + }, + { /* i=204 cDividendBits=3418 cDivisorBits=880 */ + "032241c354f941762ee57b32a9a723d57ae147ab90d445ea8b53b06da3be5e0e9e05769569bffabded1fdd1364769d80533fcfb45a28f6c6bfc4c007c127323e8f7c0ccb225bdcd84d0d51bb8dde5d0ba3cc62dd463970f5832de8a07b126048f0a35d8c18e92df559677fe7b6803cda34a1cf8d8c83c0c022e2d0ffa182e4397fa68b4a3e108138ab51154c269ca08bfa0cf77a9f94043b1a9b181e405b3623c8f5705bdf3a76419cf8e88e66b6e5ceedaac98ef6dc6f528687a5edfec77d54c0d84f19395adee3f67cac4b66e1c0ad9ca47499cd32e30d956f61bbc3a3dd4dbd94995148e6676ffbaf1672dc15a102313450b9c2030b57c0a152b2f5c3cead88e19364362e0e426c11938ee67dadabc883c0ddcfcd1f5e930868ec110e3f46590f84d30693b6f1fa6772b6c59677f6b474627bcc6a7dafb9403cb1aa782f1c34ad8d47f9d19e2588b500749e8e1a28d10c35f762991fb5cd7944bb88d99456c41fe1d5beb03c753969a579c17d678540bc06d6db38f4818b7e76abf5853a67bdc75354da77d1a9c889f5b6138eb79f002389581735862ebedf4340ce98bb47b8b00b56ff6bd55486a2215d", + "d540aa0b8f05a1eff875ebeb5a03f0387ec61d213ee7e0a66fcd6b34c57e0689a1e4e9d3df41ab13e079205b9456d384405a6e138c6e7664b9db5ccb2042ba0990007fce0cb9cbcd002484baabfdb06b6886d53759b3ea83231a05a007d09ddbd283817c1c3646f91bb1c95148e7", + "03c3129fceed6ed99f3b0a91485e888d95d640cbdf12a95a693490b577787d02046983819648975291a0ebfaf6dbeac37fdb4066d0577a6d80e2094fec3e48c4304edb4770bca94daa96ecf56565169b63760f8418091dd23912825451f9a75dd6321107e5191070da5000372a8406261afe37fe6bff1914d2395045bb42a5762784f61f51c924f0538a0af640db3b87508165a622fc674f5cc803cce511d7a3bc4a9337437ca53444fbd9285b6ed2f82ca2693cd5e429468f09b5c23128ac29d87c4717191bd408192cad3c7b992fcedb31d436740564d4495f5e770ca51723b111cde6726a6f3d8c7b494d3a4994107298225d29c7aae0a125f4ca7f50120bde504b2ced789b66065eefce7c53d1955a33f861c31f0b936accc376598f9fd4f6e9b9af765b549ad03a2c1ccc7020e0b29ae99d6472f20f7741a2fcaf97", + "65bca6fd93accf256649e785ec0a0d909767b8a0360fdf442a637e5d91b7d8de659d10fef5f89d389dad52a3cfa5c78c49be19a33a7998867e9e3fa00b971dfe3dab4b76066b153b3a3ffaf6282245bed009b824604a8bffcbf4ae2c79107403eda686a9c9cc8a16770b4576381c" + }, + { /* i=205 cDividendBits=1940 cDivisorBits=612 */ + "033e5f2b393ff4724cda9c5368a07d5c9076fa2edc76eba6c12b8e8b6cf8a2fc667332c531afa1951e3fff2a7c07ad8a4d12d93c1287c9c966907913b7d63a407564c1997eef1b752ea901f6a0c713c445d8ce1b2d4a9a5385841c29a7ef4f7703315aa26383925567974d15e597df83ddafcc63d2508316d9b499b1eaf9f9b02801d27d32f7d35ac6d76e30888b9294164ecf737da305831996cc1bf26c4033ae25a544115cbd6929a9b1114f4f1f71a05ff0cdac5a681ada6a2d2c82bb52b8c0d97da62ea516a2eec95e33018c9109d66ab37438013bb321d64e506fa2a2ef01a18c198587738de4a97c96b968bc283149a4", + "09b28f9b702032403fd861f36f020eefe495b6f40c2a52e7e959684db6f2383f62469a23aa44f016475b5f5ce2f5b6e4b809193e7b0ba7a9a0e71a8fc1e1ab1c7fe034ecf853cc6c0c42db8c05", + "55a09b62e2269d6c2200cccc786daf03bc2b5183ea3889f0a211ba24ad597bb7a861a677cac427562b0928d38fe69ecffe55b2bde7ca072e68413505712347435473edbeafd49db3b3f246dc1eea91f3a84604852f3364799f5469c6b4bab5ceb5c66eda56ef721612821846023a3a5571b12293202363a437878d7ec799d0295b1bb0f520d2ea3f106209af5bca61d44b8d5ce79723f2de695d600585bc45e45f0e789ad58e", + "07f9e62abe4223410ca7ec4f93fe6db9be66b90b2c157e15e3c1908046dced38102a73211bfbf26ebfcd5141a323757e797f4b3839a1ff04bc56356d05a53286d7736ac3f9184ca153d3e775de" + }, + { /* i=206 cDividendBits=2753 cDivisorBits=2153 */ + "01a4b261f6f06f29220ce03e579f65e9e500034fef7060c58e0350b581ca3c32108b6983b3c030a0885451ba74fc2a9d612979aa2f7ea40215a01030a0cabea3f6bd2d83d27322dce9ace4253d9d77a271f7f1ee7ec3cd542eb813245777ce2a376137b875be6ac5c18aa7a9befc72f6e6fb00d8f64a375a3661758a75d1f18c3b5ddc0931a4bff967554566439b01448f4efa582770dd72c33f23300484d8091940b81055de24c6e5699b4b9976347def557bc4bd873f48e95203676523f9b8623713430d00dfc6a3f753c093f2231e1694da6c7c930d6d8a1a915938de65e2968f9f54416ed1ce321df6c4c0fb00b567e21db86cb4aa9816bded70b2e95d7ee511050c2c66180e5e6a8c6de8bfecfe954bfd1893523d76af2d63ae01fcf22a73d04764a9be3bb31032398a7b7c298fecee4f7587e887a560a4483448cce6402a56d0c0988668ad9f29af92d8669c8a4f802c30e1d7096682", + "6c75220364c338665fb51d8957fd61902e5a258c4b10c0f16790063b96b5106182881eb58d5dbbd944b7b67298171212bd72b85b37c961d151b33a7facf2acbea67398a064a37703c9b3054b0d9f4ac8636d0ba0ce742170d817232c4324dfa3246ae83248965a05c9c523b34b2dfc4baabddec440808c7d5453ca0a0c7bf1fec12c74238d04980f58f6ec617a6436dd57f4b94577913b1c280e9025da789bc577ba68a7f223bbfd26928468900f679568b83ae4723d5338cd7dbce7cf2e3076b9655b31aacb1290827cdda4134c358493e30c6099a933997fb4bb5c77add4586e04e0914ec0767f5daa02db5f974c62a1d2272451ef451aa538f9af2e504920c0a716ff12da4f6c571a5e5622", + "03e1001550a5ad867136e59a813a624e5eda6994274d806892618134ba5c0fc52fbf69478614e95e91154bae24be10f8c4b5e182c4c948eb2d77fddd9f2e35f527d1fa87b3e77a88d2f74a1e", + "5f2edf4935dd08acbbf3370dad663eb6b9d8b114ef0752570ffcfa5b47a57c33ca551a68e1ec10a3b95ef0fd8769898ddf52ba97ab6d83085861fbacc774586915967b46453df757c36a84cce5992b35cdd90aa5fb1fc0c584d1d2772eb5d953b6628889a2ca7c5bbb571c3b3563fd020766701c5776f935f4f6edd76fdf85d00aba02d04c1dcf22510307a8e2fde1afb135717e01d609f51ae89e6eab26567323a4ce40685b150bf28dc00104030fd5f476db6605cacef43460d9aad6e207ee55a76bfcf0268b257219e96272da4b18d69e52141d8131037b6e56c1bff89625dbbcebbb030bd04d7051defb2ef754c4f0854476497262be4320fd62243b62b4946ef75f840887507c477a86" + }, + { /* i=207 cDividendBits=3215 cDivisorBits=2584 */ + "5b1a3fbe75f5240aa1bcc1283b94f95a80a1707edec86b2e144e6106463d2cd31641e017c70ad049da7bcf612c3dde7f420875e007b69e4e7a82b2a756f8481cb85c4096f10960173fb6cc490b988a7e22fd6ddebc33cfdae741359a51305482a0a853da9ab39ac5bb3281f562224e869d40381cb0cb84815be5cc721c824061db262904427fc0fd5a42b698881fde17112f833399c735d36e9a05d84a738296cb6053c7e26da24b44261a57313e18697612fba841a0b5b418faccd965d8ccb1bffcde387ec63812847fba4259606638ada21ff25fb6ef3e4b1925e6220fac9ad83b15e62ec534d75b1997605b2f34f0ffc3f0c57c42266c3c787f0fd7539ceba8ad62299c2d2b4a3968745f3da9462cb4af6a350d3e13dedc13be168216b455be9364e62f9c0725faab405e12978337d313cf0e4d6ef97a7a60e41839427f007311bd4b9a945443f0ecf86c82c76c3c7b5afd18e3882d4d12e63fc3bdb3c13f22c56de32a91b6f18268b5e8ea186b7a5944f2a4793d7186734d5b85721d9cb6ab684d5af333fa53bd34a2ac471c0a364e14", + "357659b530d2d88af2fac8e3dd9e90e7f0d9d61582bbfabd52a8310457d6f74b0a5cdd5911cacd9083294ac00dd9c298a536ccabd1bb7e4ca362d49a213d5e4735f6f6693bab3da6ee4f5dfdc8277b7fba0affc34987e548a4c11f9f38e03d978c356f177ca0e66097040bee36390c1f131bd9d565272d9e2b41fe078f041a90297f9ac56d030844e172f1a4e4b0ba9ab4d2231d317d8fb6286a117ac1c20d09f50fb56fbf2d88da7eac4b40fae92a757713f0167ff09ee80bbbbcc7fbb17727b44b30d7d13e6b48a32a4da46bf30df7c70c6e58596cfe95e160d25b20b96384f703721871ca2edf2003a4d2070c4ef2628c547aaf61680d92b1554bfd985d5de8681406fb53bc3070cd187487e91c1e7314b123d3bbe453f64bedd28c3bb4fd0051c159d6f3402b8cb175732bfab2d8afa5464ce513ff554fa366d915a9ec002bd770", + "01b43cbbcfc9a691ebec8ebc511e19ba4696c06e519ac5d3a04d14ae9368ee697160f199e192e5edbeda81d0277212389dee168beba1f7b7c7ffb361a8d91b757df0970c3f74dde01febe3d1fe11bdea", + "1ab64a4ccd75e9f0aabcdd480eba901e07144b8cd31be0370d6c97f59ad972895097fbc24f6f95ba9c812be8e29af43c730b2a57648ec2f297cf55291c4b02b3a91f0498b66f5c62c17b40fa114bc880519931329d2c3fb28ed851fc9c62d158e560673ce907ad26d02373620c695c73f39f63d03c72087d8d205d693dc201032c761bfdd0f35c2748482155bc0de0453252f8468047969d34b45b7f5f13dcc76251e0e2529aad028e1e67abb44306886f626a51e6a3bfa7ef380882c55233bb8f77269a5b761e86b872814b682cf9070bcda7a6689212811d280dd29d14e6f9848ff95c7c1a626905f58059f0496bb3c9f90eb9070fefb2268ae8ef2d9105fc9785127c6d9f1ecda260a3ed58495003149cc8dfb2c8dc21afd4030e665c6101fccc2687603168d55c66fb86d7fd5ce7aa23a7413c89b6208fe2bc6df1042915a5b1b4" + }, + { /* i=208 cDividendBits=1267 cDivisorBits=1023 */ + "0228db469d70de97abdfafc8852c4501369126f28b260891e6325ce6a8692bdf8efa62decaffb39ed61e7684299ef36c9762478e40bcaf763dff16c4f5f8df20fd1dbe52f8e34b733af563654dc7f2820281c09697f532fb9e00f6e9f73cb92c8f9c1f731651beedbcc04b172792ab0cc16fec2da5ea07c7c3e5366105ffcb8e3ce62ce47b1eb169583566898a38a8db166bad5e8a3ab112738b2024688c34", + "40a17547c29ce68a87d4b54b754762bd97692a255a417be40d2c589552c66387a9a0aa10eafb71c4ec9d5f0dcf749b84669b035992e0c4159127f0903a51429adea78f5be40b628e8e09c2c81fbb75e44a8c672b6b2daaa086a72e2948d1961b161894cc2682d1d270f637e53737dca93b231ea940b7a29dc4c817454068f659", + "088dd898ae568f673e8ed67fada8934f81a3b501638787668753c40659b242", + "2a23693d91e3baf416be83d81439440e5b1999399dc2b80d6187b6ddb9bda9fbe489dc9e3c7f5a16f5385afc24ac52ca295b724042874854d1f0b25ea72d6baf86a9a95aa42ea84afa82a7dfdb271d815acec629197fd56866b68b66abe0762477e7e5463d4a7920a60ab761ea1a8b5a54b2ed0b70109abdc8ef1314d31e2742" + }, + { /* i=209 cDividendBits=3905 cDivisorBits=1651 */ + "5a3d6b9c15c75f64681226f5efac92572b69e15f3e78b1e9bc06920e5b651f9bc16d3f678164ecb856f5bea22e30bae9992c1ef494944addd1f7ff3f457af17efa28d896b100b682a9093972cc2a73f403b8849fd6574e8ac36253852a83b9df03e0addda44610050f8a774f06519019ac292d680389c97d4b50647d09d61462a6e288549aad7af86fb12135154baa3722a8f99a54ed709ffb11e738726370bf6aae8eaccc0f735890c91ef306e4f739ad9fe58054f882b988155528d96cb25808fc7f125ea1e3bf900b3ca80c6455a6af37977d96572db8d56d7ad21026e57988f4c6bdd3c17810be8f208e3ec0cca7f47f4b4d39ca8488633d42a2aca7453cd4646d4b74a88abb7d16d211e1c64f554b9b4da6be12cc456bbf0d38c2ee18d7cbb99181f8041226d5c51fc70a77b64a5e88ee9171570afaab6293b8c91521dd15c02c95570aa2d39c7f09196be7a4336c4b8a8787fa4bb5b53c8f46e3080c19c7ab86ecd795cfc4754e76e7e133b062ae766c3a0d74e32124cb6fb36d9440f914e6b12e0fe7e530126c781b8ba3e2f0c4de27c28bb9aca8beeeb9cb58152dbf28400f8130e4e4eb1588902855536a690862b3977952afb53cb25887e10fdcefb5598dad3cbbb00c3b4abd2cfd8d9a0edf088f58f494549d6f0e11e7f856a368931d455ba68097db", + "021d70054f2724e34e817aecd3da84b3e51684ad618dfb97ddea23e215405a602921a95c25640d73f5b3d9da15f2bd9044c523c768fdd4343b0c2f60d0e43096463b8a2d7f60061df04ec5fc8078b97e77e5fca77c09843521eb570a638fd0cf00498866fab39c05ab6bc7668232a8d495212402eb8834542484479cb2914e5128512af5549761df5c96d99cf79c199ea53115cfce2776ea040d836f39d557b8cff57aef3c01938461e02cd4c4539da5b88d9e436d407a93a73e9311a592969dbecc1d211796130517d608dd5787", + "2aaab4c7e916f937adc6be1806c7b28daa2763a2bb716dc891338b96c6d9c1f88499de0666b72f0b88632e054269ab701e4d7110074aa3c61ec8c98ee744ce56f22698df9089392d76794567bcf14e77153eb2baebfbafb5892810389151ce8b5213685c20841270b40cf4fc242e8543f27da72554aad1f72c0b7327f926b886946f770e60a5fb33d9756cc1031b2514284e7b6917115f1f4f697df0f4cc08dc3b652c86db5575e161ad36036d0ea5b49ed4d12c55c665d6cfef58859e0811207720dddda0f9840ce785d8628d6cc9822b573eba1c59b40fa05a375a0d54d681eaf82429cecce39df0cdd1e55b907e2c8f4583a0c25fe2fd2cd008462706b698bfb805ed4ae5199e060650d19fdc855b9cbb77f7920dcc86c53edd", + "ccb4f4bb7fc482a8a9303044a451ef1f90c28b118441e9fbcd9c7b9c9a9bbea8718a2ecc1c4557f68bdd3a3a3d8729c1e901026312db93197f73bf33f4358ec6f39fed55fef0662398797558386a3974e5f0e6868f817a7ba552e440565f454e24fcc96a4800d47014cea414bda08894967e623f4f12bafc53e98e9031c0fd04ea49ca4bdbf0ad300881b27d0424bb5bd9219c1a6a418f18a9dc68776fc3e1878fc4d05b4fa27d49964838b2d8aab3a839d5dfadbe36540ad13a2f6f66d46c034674a2d96711c792b75f565650" + }, + { /* i=210 cDividendBits=562 cDivisorBits=521 */ + "f32f1afabad3b024e649d71c5454bfc25d7e65ecd850d01df2900354f7baf2eb85de534ee17ff9d5d4e6c2834dfcc81eb67462e4358c7b906eeaaeacbe568df5512722bdd986", + "0136e9e3e75ffbd30e9065845bdd8e87f4326d65be2d1dd13cdae695fbca531b6d5d1d60aa590ffc099b467946f79110bafcbe7f9fd3350e86977da96d7ebb815307", + "c83b985892", + "7ab7b768806f32d63b651512be4bce4376d697824e5acad379d41e44ad277eb20fd5adfb717549366e601010e9cd654d4df1dbae3a6dd9b4e6f0324e07d54a1788" + }, + { /* i=211 cDividendBits=1800 cDivisorBits=209 */ + "69652c0dabe4f4e66d59c53636f612066b52e1d484dae4fbbce6dc76508923de199ac02781095d4fc8e36898f5cb0b9d64a6ad16b779633e56e3b8fe18f8454d1dfadf960551ce726cf10b92ec7d0b4d52fcead8ef784c5ed2000f2b339a2e6c8351b8933fec2b93c764a88a1a1c5687b1fab2c6bfc729886b6c074cd93d5b64258c9a92934fc6b068114f51d8512e59ead3ae2a271c1fb7afb759afadc4624d84a28d66690f8e054ee2053a78821429eeb48acda6abd47d2278eae166061b161b6eea9c8567051619daeccc0b02659dfb39f967ff2417acfbdc7c178c118b196b", + "01377046a7e59904d7f06de5fa4ca1e6f655072698f1c00d5b8cc9", + "56a24e4f326bfc4e7fc89e61478619051dfe88a4d6c24094cc82973ddc927daf58a8f281eb59d158dedf7514fc14067c5be23e255a65d5d3d23818866685b95ba08b985489ab6217c514fbfdb9c94c55273178fd83735380626be54e531ed856ad73b5dd8a555402ee5779b3ad53ad7b1a74d23cbd59d858d841e9a847a5b4f5d93d4f12884ec56ad114add8d8e84fda5c36fa8550cf706d9406137adedf201517d5b96737c2b32a4f705dc43db7a56411a31902fb2c36638331545694ab17178569525ad04ef4", + "948eeeac69b600335e5329c5aa9f236e0ae280d1952a6413abd7" + }, + { /* i=212 cDividendBits=4055 cDivisorBits=2311 */ + "635fe8dcdd0a3e356f30b30231adc4b0630d0607f6204ac61a675a986ae95632e1357f91299032d8831be5ea4adf90ce0b29313fad5e9ebf79c60a49ae9627a91dfb53c7de2d56d294ab7b94527df8c9f78188be0e1ec1ad1a1187e579df5d1d0f318e2a4e3a93970234e44d59513f258d2d72ef5d9a0d9f15dbaafbaa5ac21f3158d21d178211d62dc2b1009bb04d4a648872d258503ea5db08dbe657da21f005b9b1f369b465d46fafedba03ef8c6d1a23567b86e958a2b14fad9500e17b2fadb6d071e8e49d0aea800a266ecae3447980ce6cf91ee5276241c2f730ad3fa0f0cd548692e109bd4ef6970fbddfd68cee3549ba48dcb99987779f02808e1e135e7a301dd837e48fb2ad8578e9be0b7d4185bb73fc57b909706b88123476d4ead01833e01edc4617ce0d26127abe1c29728b4a479fcf853d5b1ff974330d53b6b7e663dd489ba269ec3ed7751a25bcbf651acc20b13bf5c9527399ee4934e63e197e970fadabf0d72337484c120cfb7cf91de7c76e37bc2f96ff436a89d96921926ab598c2cb076f5a306c511eef01f995018153672422ac90da6ce888eced2a15e4f5a2586e04a4641269a762e5a6c0647d46d1717723f3a01489510d46e1f554330ed2f81dca7acb603193a8f7a74d19e842556591f0f56dc9feeedbb34824b1cb25ae5319416d015a4ea6cb115abefb87142ad4716f8100af5e", + "59def390e81cb2cc3075111132d887ff607ac394cadd9e08271117e6e7bc72da14401ae02c3e34678db7bb970d8defe766fccdafc9f27b219fcd9c03716393559393647b13a8facabe8ce7ecf59d79fe30c2d38afccb6cc5c4e2a4e9462788ccecab9f839e22b3db3ee0593c3b59f5081c1891c8bcf5e94c4b2eb894067dd61e4c5d5abc213f95969f3fc80e8f6bf18fb145fc1bb0f59ff046587e655b9a563ed822f2f6078b9bcb5dee4bb1fb1e7fe87d4277acfc19e5571e2f4195e82275ced2a47d534ea78d5bdb2cc82508340fbf1ddf8281a47290e2968d728aa460cf6ca18f14364017e7c83467f0fbb9a8307573afdf381ed757e0272ee696e640ab244da71bdcee8c0e7ca1ef458485b3dc29534f63d7dfd11cc08c24c3398df238507b", + "011b125af572ad640d5e8a2a26c74991b7941282bd7a90f9e36106e5b06e38ef07842462be0a54a36a304d064feae3c87e2d2b2c30b236f9399fa6c7f96c95b94a1fe15074a02334e7c288ba4bd96a68a99676ced76c34d2fa95a262bb45e4126bd35e2f940936478bdcb7e7900411a6bb282971ef7fa74f19d1b7a4eb8a54744955d20c1388a51ef8f9dbac157bf4205b6c2d6aa506b043513f64ca6c6c961f704224f9474a0288c2092cb381a48467f8073366480bba94d44cefd85bb3b50a5703856927170cadcad437a4c2c4cca35fc8170e296823e724d5bc", + "3b0546bea3731135316eb6bc5dc5444a508078cc15e7cd9bd8a34d551618971ce9e39b10b2fdb6f66e8648f90be6488efd0effc0c9847d76f337b00fd9be067f3527f6159ea94cd2c1a3e1c6ac5cb729439bb1e7d656a6f6abb08a51c2463e9a6c4adfbe3d6ca9c858e879727d278a0b8d01673948a409d35a61fbedf3870b6b632c0911672f0700480a78e1b16d6c9498ba27cb979d58526a9c745a2835eda558e6ca9b4b284fb8a48a730ea1899b077cc8f811327b7e2faf9554ce768339f502c4f0dcf6f16e8e76ac79eb3ba4df837b8c5f1183fa1c6eaa22060741dd67234d6adfcc7d3da81a6746bab01c6df393e19a9908ac9ea22b6947f043ee995997872032b18f97cab4ea82862bac655adeecb4f9068f772675e7f2f4394d76633e0a" + }, + { /* i=213 cDividendBits=2990 cDivisorBits=1227 */ + "2fe043886540a6e37469e12207a67b78426ec00230582e435d96be94b038a26e9bacf7ff3132fc6c70cf92246cb2257f2ef450f13dd28ab9de7ea992c46c235092855ca69292c708c754d88ed6a34628307cd14b450385ed48f4c89fb90a3ab469a97fe9ddcf69592e39427aca0b6b4d427ddf947a79a6153411e552d644b879b45bb72fd8680cea762944ae13d0b1853b6234e993c465be3e1da441cccb4f3cbf6464028dbb55fc9aa22585c98a591a152c60eadfdcf48af5c544ae3392e7b8e8700bc81426d863f623954f413808b951e39e60fb49bbe962067f5c01515479881dc78ec9385aef56d54d4e1257e0d767cda60191041efe75f892b073d6523a0afaa8993323eec129d78df77c16063e6f33054fade145aedb0fb9aca0962f4180b4705fdf32273b0b7c95250bf0df90f2c02254b77350a14488b423958f372355c98719851399e6d4d3598066dca544b128e3f750fd59fc92d50bc4eba585a66442288bc68f2c377fd70a0527ece1f7bde9d909a3f0", + "03a93c68781862885be023098911f838fd471e108d5b24c353bf9bf989e611ef22bf00f817525c16b28d83625fc66287860f446569dc18b8fffc27f116ef91c14f4111727e1ee216fdd78db71ee26c54a6fef341148d12f6cfd7042e888e71bc63f56048db9bafc91e891085a6cb62dd33e1622c7d7d2743cd65021faa67db091404ecd84ad02daf9494c309b8d05366d49d1c9795e270e1c42d", + "0d13b84d55738cfda943b975617c006dd40ad9fe41d50c503299016a1bd3e0c2b180f03a5f0d178d50712d6bac1415ef925f2effc3be7d25dd466b45b90daa627961cd53ddeaa5d01c3739d51d039c6193421f32ffe3a68b84dbd1baf3d98c6d4bb3f7a880f007c13a209efec8c899c0769a28d9c94cecfd2108d9c82cced048f06cacdf0b109c7b8cd7d0cf3ace458edcd9234e49a7b1103e2072ac14f15f70ad384a7c57abcdd408fdfe4756e2ea7bab253b306cc9b56a77f2d82b0119b7bbfe5d6068b6c315cdefb8e855c8691da4d79eec198c6fb71a1f7e754f3e", + "258b739edd93ecdb8ccb7019a48ce6fec66275c68c4407492b9bc199638ec22ec6d4f5c49ac88d42880d58f439d31282ed2706e7b883ba082a6708bf6060517eed15d3dda51162b61bbee0c335cc0bbf13ac8bf9aff499c9c048a4557151a2390da5f9977c4501b20e12b7a55ee0fd908483a5791a1d7fcb764f3d31aa40b29a26df359173dc1926e5cc7ac8df0520180ee185870d08413e0a" + }, + { /* i=214 cDividendBits=3885 cDivisorBits=3537 */ + "12e977ee868b5dbb70a8cfc79243c4056f864c617e8e1d9a9d2c9d8fe0ed38b0548ea7c361e8bad292bc648cfb0efcf90411d3c0235dab6926a4a7392ca06f8cf7d94fea2568501d58b7a4bd3ab1226d084c01f72427dc91c419c1303b3673a78a9c546dd2e602453e2e40c04e9fdcdb92d8ad6f19fcc52651d6f5057d22e6bab66d9e60f0a9a4cceea13e217fdc229a5b8dd2c9cddc27527f9d05595b84042903894a1ca73c49ff8a85ed53b66bc887a8a5fa4b8ec0939399df2d0117d29aed535330652809c53e0a566eb6f736e3e6702e24cb2bac734265365ca742e25050bef5fc5cee87b55a95373d02989956b57a501f9913fb931f6619d4af4c0524c8518f3953c5c9e5ed271c784e154d48b7babe9237d597cb84fe09a6e404a69910587846e47aa369b4e0b943b21089735527c8b1491a560441099e6140a948ae903a46288bd863bb704a916a1d780f984b485b3db9ea0903ffd0a0b43dc7720348dc0947ae9b6e740293ffe90d0ac8723de34776445ce6bd1c30884fba8da14e91e8c37f2887a8911320c09af20d3246af984e71655f0f2cf66f239e831c04fa76b5c5cfe5e5ade1e3ff48601637c17c7ec09029fad1e33d6fd6cde39c35d3b2ee131446c7f6ec4402c4209982115b381bcec013cd940bf071cc6fd27d3c4d50d08e13b72d8e61", + "88c71e91b5da035134464223f3ab07c649c5e4d8fb3cc5659f8d49455e0a39e1c4d186a56908ba4672b09f63b924d847ca1714d1d6d055f1397e3424c68f3124f187f47b50f4aa7b224a0b5138027a3881a99fc005d1d3fb11880f255770dfd49ac452df455bdbeaba31a4c5bad252314767d7d63304b29f5d53f3fad470bef1dbce7a0da892b530bb49168e231e94a5e5a46c431d5ad20e453f0c16f53e5fc6b08c11a9b660e9fc916873f623b75f560d5c3a21744930417018001441ac3285dce591f658052c73387fb747e407542cad3185a88dfc1de3dcb831c606a64141df094b6d96b0a5023f95f7d4bd4aa06a6f4600e87d23ce5e3a475927e87edc29f5b8ac4582c0f7fb37320376cd9c4e9b462df35a0d978878c0b7e9f62418ee9463f1d1a341de78440ca7e07ff02e43c8dd74972cf1a2aafd4c42539fded5258cb28b8a9d897a790f1f4742ae03e5f17b1fb469c1c67687c9a4e3414f72424e67ae70593f5b5bec6b718a715a3867c868976ff3ccecbc4728a3ecb84c50d6177c8d03a40944093ef81c314d58f25c6444eec9a764d6b97ba7da194aef4a27bfed99716c356df4623a91be761441f91211d0e90b0f4d687c0794d1", + "2365871ef4b2f0e43b0663998883744a6eab461f913060363a42bd8d1d9f86b6b92398c7dd34751a0e6abcb7", + "49eb169339d45547b62a22e87df24d66c1072e7b33ecec1797deecfc32ad76b69d5d8bf8a890f8c8a2d801ea57e2d27aa0f736064e58fd161fb4d12ab51aa1c397fc91067a0927850e9f277b3f88d7fb6ea3109a8d38ba9cad12ff97fbf875415c06ce7bb5e5ff83fc81132eec55e56972bb456c95a7a6e7be869c82fb6a51c550c593e827c3ad64f5deeddfcb55a54096a7c71818efa0190d84e58638294575c23aa78cc684d5b0a388e4e39afa87382c9b304e1d8dbe7f7dd9575d94a542e17f3e4c4c304f29b93a2c1d607221a941e8df53792b088dec0bec488a1e9e9e96ff660115f403b8bf51c8429811ca5403a32371754ea168f69604fc5eb727789d53161a9b0255fd2206102a0615a769fd9336dd9d0164f2a352b2a4eb4996813bac7f6f0d8624a5349608987bef433573a3e19b432918312851634588be36603dbab7ee88dbb5d04b1c7a6bd8d1a02ed3d96b71845f27e0b96ca3780a1717d48e012c60442c495c3050d7246343e60f1ea2de4d0d93b30f6d45763e1032020c965c45e5a307f1cefd2c2b37e210f866a837371c30d1adc3f120c22c1b6ae530eaa4cc822caef4672bb907195b3ea23d2e363fb0bf15cc6feeb0fa" + }, + { /* i=215 cDividendBits=913 cDivisorBits=748 */ + "23732f1ad837850a0d014261ec943ec7b7c1b539c5d8d591d7c33c1e1c6349c1439c6c63b986f8b0d78fe97762763e2b69b7da7a0f5624713d1a9c86218004d0a59d898c68279619f651c6e25d6d4c875838bcaba51b6258358375867867b56074db75d8d47e9bc78778bc7f323d38044bb4", + "07c895e923833010a705d5cd3c925fa2b3cbc86cf466f3f8b0d1c68f7db89f6c08712a4b38e652f9d0d2a51570cc39ae722593b69f0f27eb688f3429383481d860aa71035c7fd2d645c574e15351dd65333c5a8c8f26733218b8e8524249", + "048df22a088f408d423ae39f344ad59e55b7f90851", + "8363bb3e2aeceb99568d38bad4d49dda0149e75996241c8a23d529ae89a78a4ae58597e14fd6944c614caad54ee0d9d7a77b893ed920fe5dc6e0aa498698e0bcd5265c03f38d79da265b55ded75a63ca330f94f71855fcc2d77bea0a9b" + }, + { /* i=216 cDividendBits=501 cDivisorBits=407 */ + "131f313a0698c1f6f21a957f88a3c89fb470186cba637c3653c41926935440b9147ee9cc09b1cae6de0e4ea2c1074bccc8e93d17083fcba34e2692ab0141e2", + "3c503ac52310808b66940301f488665eeec2f45ccd3e8b5d24c826aa07edff434d3fc74a5a0a34e9a26001fe39fa022cc43664", + "5129a05dc7b67cc49337fcaf", + "0a60fc3a6c3b65e230f38f15d9bac9a44be767b235302c106ad99249ad7c2c27caa0ea1cf8b3705dfeabb619bbbd11cfd9a386" + }, + { /* i=217 cDividendBits=2439 cDivisorBits=1710 */ + "39113076746a2192c5a894e263a1cbb198828bcfd4179e29c4ab67c58d7f0426d6cf15abd2e302bae3c010f831ff495e82749348eacb1a740bb6158f879c817d857e389c0e13f0ec8e1ea65937a414609869548c1777454f7fdc4f816571fbc54c74efcf7acf5c50ebf1777e351653d5ec67e7294d46b083088e20213fb515a4a95103ebf61579ce8866683b2133070dd7fa9ad82dc2ddc8095048fa233b180b54e0335b323c987e4dd043b8cc9dd6707f4b67b1ea85d71f2b4678d177c1fcb1c434f1541a96becb9a8d16469e61263433cb97431b2761d524dcb2ce9ca796ad3f77bb77f3a6c8cafd7390cdb3f24eef7ed4897c78ecf497aaf609d9082b50b0a9319fbb13407856f1882d5eda9ba0a5ea033dcdcdd52c061ab0512be9f4b5b1787078d84e711f234c085411697a8cbf91", + "2c65aa625db082924639b5fa8e27d27c341bbbc3f94731a94380c76c65a4b35adaa63d2cde1ec8534782d11f475109a513fd1fde03fe88129726ec1733cd3c4260d1816f62dccaef17dc0d389fc8a109138147676d17658fde01bf33d6261428a50c6a63fcf2c1473a25ce87072a8aec7348a52c1cab4c8253402225ca83eb23ab5056f6b8640eb2ffe97b2325beb7f7397198af6f8f4573726dbaf0c2ad20c830d80be511fa08d08a8ce941bc9498fd86acfb8b8fa9961e577df3ec9331cadacdda1bd4a28c754deb4481e102a186a6dc955ba59a5f", + "01490e9b4bea948ab35d68b07a5c43eedeb06d528859b32bafa3a9d3dfc52fbf57d8fb2b68b852a0a7ed8d0ab8b5fa34ba7e11fc302a4878f60ef732a4d7a26923a908802c5b4dc1a94fc341e4ab0cba91b0dcc52655a55b26a57759", + "020b02fc0104ee9177f01e7699d9cae616d0dc98e88ba8a43f37fa88fa340456392523315e7655fc2c5037f6643f7e3cde6a194ba368954560c6f1f9b67b7829d53629aee0a829dc5a69bd9624c210e1fcfda4fa77849f9cbd656780cad2892245f2abb5cab2b7b15bf7de1c0e2c30f1eb16ad7ee5cf4fa07c85c358c67958bca8615afc07b540978a4415a14a3a06c4ed671650fa8ec168819aaadbaa85db0b4c89dc7be492a16c588948b2d52b7d077034e0b25e6763e9368fefb037bb432edc2c3846f4173fb60e576b7b7617a401327709fceb8a" + }, + { /* i=218 cDividendBits=4046 cDivisorBits=122 */ + "1be3873329fabd6ac899c0decf473c5f57b0dd4add365880e615245675edd3d4d3e0d1bf43331dc5f2cf7b93c2b4a6afe33e3e246be3b511b4aa394dd9ed8a4a0a2ea25e039389ef06b2708b0b74cfb2cb1721f6374c65cb5b40a010d6bf3b003a093de99fd4a3c972457372afb51c304303aba949ecd02b551d3a36c175871d2f9318a8b2af4f0740be46c554b4600754d4a70493e53f53e0fcc8a10fc84d81901186bcadd363b6f068482accb66f78376db81d8bb4f6781abbd2d4cce602d349b86528d15ee465e0a178630568be5da6e30e5e799f56f5f2db995a062efdae63ce94adcb4a6a87774b2c460fb925c86eecf75a2d7817513ab6bc1a528af6d991d82c4e5f0ff29694dd0dcdaefb1b64545fef0094cff1756989639cfa7eff3b8e36ed1f8a9226b4093900799e1a8ba4381e5381331dce8f43d4d7e92454b948edce350b21d127bef959484899ce4bc3412d0922769e6ce0004a2efff4f36c5987397c19289a77425e9946cee8b9a5265396805952a299421d0015e6315dd8016f123bf4a32c03a2067ce203aba032627a351ef5cbb081ac2a5038cc7951982cc242b31d5e796d0c9bb4d21188504399fb5b3cb15921f6ef40d04dea5024d60569f85fe0041be1dcde2a2b9de119d04d2d5bda399c81af688d2896a2b8f2afb913ef3d2711a175b977a609f06c26624ad1090010ffda5a87ad3f", + "69a564f9a9e9864e35435a5f65a230", + "43946625ac2267643e1b7d511da650ba71f03c30d38f30c221b34a2f700039a96a6f3e895ea377573a81014e970ba490e173b97dbd3b425b2f007fff6e60e4bb08d2e0a63e9d89a8782c80fbc659460d70a766a11494b7eb854cd60c24634d26e3931b0f2111fecc397e682df635048647b785c655624cad6172733b3a42b716ce5fd1e9528d6b24c50c36d36a9e61aacacc10132b4e001cafa175cf82080ea7bb1ee6f19fa329acb47c3d7d3e6adad7ce92230175d020d7bc43772ed16d1008165ba6d2f84b6b4a1ac075467171c444af40069fb70b835bab5c19193e356f0e897d138f540d9ba65d9165613513e9030fc90bc512ab8d9e179e9c8ad101c33947982d3262768fd9827ce559ac034a6abeee931c1ced8fc7726354b642544a18615590202e5e9ba0de065e74cd81cfc8656c71c23f9550acb6f29466d2b4d5695aa981195887033f89ef20295b9a2791f6f53a94df64a6ae4ff144a27d3e7c61719c109f5df997eecfaa0c72a2ec766c39fcfc76d12d137f3fdccda397e83575d46f3896b3988da855ed60bd27ae45956860bd43a2fe17822724d0da2fd34eccff8882703894e4bfaa53e372afa87a4f9882cb13f7305f5716fffa1025044ea3bec6c0e0d71947f12fb06312080098c147572cfd9233891b056a5d9e75a679e5aa95962d4b73e47abe449f", + "3ce6caf9044e76a61ee9e8dbb3316f" + }, + { /* i=219 cDividendBits=1191 cDivisorBits=982 */ + "6fd4bdbd64f8f3f673313c7dac64880386c2308d108c31d8a621c9938ceda95322ed02a59a9172d4c877f7da3c9339abab59c598b6b048a03cc9ec78f6ea2a0237924aee3542099878f0846d7b6baaf7b2bf32df7ea0ffde4881285bfdd8e99b49207306746fccaa1bd81f26de7d396f919d8d4f37bf144987b320f6ea03ce416c93345cd94740fa82848d46ed2f4420eb6a543e21", + "08f009be846328e8a9326c6ae9b5a7d6c8c5acee0043311957d6cd5a406c954d0d30db8f98e50e29753b55aac46039b92a41c1b94796bd3813e1eb05bd15c74edfe72edfaac08bdf107c649f1ae6d36bdb52e18377081e101d22bc892bf4c20435b7a708205ea367e43fd9d473e36cfcd7811f20b12cbb85fe7d5b", + "0c83299a152b605f2fc4efb5793e7c6d0beda52485ab4cec031fe6", + "0220298bba1d84782d16c4aba405e88d864b33ae0109e36aee9ca82f62683ec2c58114f3168b38aea0fe85c988d2d4dc5a5da552e10ad6f285fffacd3649966118b68dfc6b4446d3cb4321922bebadb80bd4c9387c3d86e472984f2f6504a6724ca2c9d84a19c6998260e3c4e07cb24a0fcd0444620da7da70995f" + }, + { /* i=220 cDividendBits=1544 cDivisorBits=632 */ + "9c1cb2363873bf0ac5bfe1651c578ee9c45f9f52661c40dc21184e9cb604c49d5c7a9785a679edcaae36967af6c9b722f5eaa54ca867ffc11cae003290c153fbf0ebda5ece44d9ab4a8b502b39e2d0b19cfa9d2556c02af3d1276bec26da60d107c4f86a27217faf89076d56240738409fb6c213fa5bb32ee40bf9549b73cba0106aa537e8c0739b1d967480b396013d16c9ec14fd67d85c53dbf72b79af620352855b16930917b1bc2a393451eb534143f84448f23c82f2268ef71d28ae5bf666", + "cfffc2d18e85e12b0f6660466406c08f8a2184daf0949789e60b6fc961be09720b038a35e23c63a52ee63855206a0cc844bcd37293116e029e537b4f941b540377dffd22ec2b8aa80cbec427ff667b", + "c0238a01e7406bab68cc1d02c538674298780cf90d6be7f1a41ba20ad6f49c21a98e148a80a33750c631a62969692997e798ba2d8c69c2c03a94ef9fdadbf7ae5b6a14ac169a5189fa16e3c420fb713b06624c7cfd9dc7811f440404825d05e9e8cb63e5e3a0a7b2bb49cc393da8bf771bbf", + "caab3321699334a944ae9c025d7cb2d3f0bf65fb49610229a11108f22af720890e772464e8f7b9b14fedab712e5e1c53a86bb9c70237e68c8175397a5d5bd6579fc7034cc7dbdde663b07ed287a1" + }, + { /* i=221 cDividendBits=3815 cDivisorBits=1409 */ + "0c78702f73e0b05db503715cd73a47d460da13993d603dcd7488bc9342090b2f349f12660d2a727927a9957ac8f073b79700da4e6a8baf0bac35549b4dda1bc1fcd8dc261d1a921202dfd8052b10e354b95fdcd73b2a8017c9d5528ff0c5ce27672a349bd159cf1b61462f1164fce6b509804238c391c6918a2c7ec9ca8427d52d9295765f68699961c03e2aa9b7c1664f047c84fc2ffcd3d80af6ee437381168ef3404479c826eb91c95a67856749f438d3a1131995146186e14f5901681efbc5e66bf9dce02cea0a453fe94c6d2070bd3d96cb587e47ce79730173de96bd64cfc44db240268884a2d67aef40385f5213c67ac12a06b5ee9d9dc06cf1a9d43c80109f6c5ab612d7d20806ded7f62488e751a8a49ffe0afcf1a76763a93174f21ca1f2cb824be21052ca19f31afa890e2784c9451063a09a931dde3523ea85f2dd623ab43ea0eed70b714632dbb6d57b776081b940e2e9c6bbd8181718c05c88b245e6922e7c33d55cd891732880b7ce5edd3d90e09ed9ea15202de8ec07cc6628d1c31902a0b4d5262ab94b7ece85d0f1fa068d12d627e9eb1cfb9c988df6b9526b5ff6bb83623b100a349e5320dc2e90fb82f1000ec5de5532c6c603583fa7f19cde6b86b5cdba3955eb855c1ae5b26cc7c33c371beba14fafbf6a43", + "a113595b40c59bcaf85a677a87117f58eba862876835870ada3f7642f3831504650af4b87ac6af4aa2e00b4b74550c38dbe86b1bdf9df8f0432934de0e8c20d8576f9ffd8af47373b0da77f85236633b6eeac03f6e81379166296ed5b4e40cde6c8e44d9e474213864e6ac296f3e1a06dbdae1f8ada4b61b86e0e027473a1d650331d171d950123026808b4d987ea483b5ecce7e6afb136496208f03277391c33c94c4d1319b9787dd84618d11ae1495", + "13d1cb0bbcf126b5207759c41a4713397676a059e9c2d17073babd9a824c789deff7d2d5cf2b1fffb9b12f78cef1480d694935d33fcbeb87bfc8b7e54deb4e46a456a3993afe53e1d079c51c746e4c461b80c473d9af1d00b4975ccf16b243aff81d41723c431357f397403f110b29021f50f25d1ae139c4f6a3885f41bd60f0cfc68f91995a6a0feeb8e0157e022d92ab1a00cf78feffa57cb7e303b097fbd64a44a9703c44a0f706510dd03086ae2d09c0681f98043a827ede407d199e3a84f3c63e101564b1dd51896f64fa9d48f461398154491b794234a10705d00f517a13febee7d9aca7215f4175c9b91be3cd982632d9bdcecc92af14847135c765799fd1084bb99c57a52ab4dd1530a551d30b97e5eb0c2437a8c5853573ffb87264facce9ebda2a904ca7b02a00c0", + "4806e03a6a19e719ec90be95b4cbf3fb75677a40a0ccd9b91fe7af3b3a8446e3ffa4077afe45527b14313519c09bb3443fb4ec74b3bb16d0d9293e47c3b2e8235be5c46cf8ffa2a3bfb47f50b818f0bc275350aa4e8e0a3398a4686e038e864897d19dbde9f81c7a4025d9e7e2fa78118ea0e3e7a9368ee42c3b493c0172426f1a1517f300d01b3778a950ea95bbc36258d6c293f17253623e9f2131481763f8987cc941292ae813beda39999cbdfa83" + }, + { /* i=222 cDividendBits=994 cDivisorBits=678 */ + "4216aa8e372d03b92cf45b771fedcd690ecb77958338ff1e1d89e8666430f133ef4d4cee9ff84b58d5bb9385a992757f715595940d73bc1109eceebc31dc2314f8882691aa1a48185aaa5d6b8122ebc98d00746d31109685aace82ca1a2d4f19c1bf52cb1f2153e53c440d0774dde48f0889be4409d75856e7f0dfbd", + "27f7c5c106779563a8bcdee4b6c3b8dbcb5b89a2b844da0b2be82178e365ef90b70fc97a8ada88bd0810d094c09ef4e48dfaf794d1161263d8761aaf6b81ababb531f65772c0697152dcdbb0e82936bdef1c54df11", + "01a74e8875c8ffe9bb1628ad0465b54c8575981d2f4e1feab79eda045f03328321e3e6490d974e47", + "17776e71733ec0b51730b01a9a44f8505dd4afae92fcaa53747fa543b4d27b4de811620383ce45b033c68a4283d5608137216bc0bdd1a8b286f46277d434a5d03351d5b3bf7b0b7988888c56096f9fe927c068d406" + }, + { /* i=223 cDividendBits=2839 cDivisorBits=2547 */ + "4f4b308b7e60d2225bb2e1a2887aa1d32b68420b0fad09dd2e676f776961af3057bc877976afcd47c8ed190d3851a5111787192f822e38f31366bcfab74e901683989250b7a29f33c6ef312c0ba8d4bd14a7771cd617f97a4190f3e2c06570bfdad207ec8e0b56b109fd0dcf3993cfe9fd827af9be7434f33108e13b0d63239c1af6749aaa597e1b45bd356a275668c2d37a93dbbbf7a90c15c163df088162f81da5e420f083141031f0d1fd9a6b907381c5f0da9ef27d9b5bcd9b958e3400aab1cf95a1797fee9fe890feda13da52b1388d3bd04faa1a9c1b4651c76243aeaa22fa596f493931070369f17e66a95eabc8990ab03965ee9960f29b48db7aceee4000eecb0e1523d37a613739c6196d99b4a5ff270bc973f78f3de5c3e2a70d4aa5fef83485392921f40d80a4df23d4d3c90b28031c7ddfaf69c974c330a06448e8600635ecbbb1803550737d5929b57a1c68d79dd707d7b3a7074da87ef8e80d42dabe", + "02169771bf71d366c38ed3bc9b916165bb0686c72a588540f1447545c85ad13205c1899580fe9403924c9a65a996564eba7cc13a0655ab63f245cd11dfcddd732e0311b0bb970ac901c269c5cfe00ff597073b94f313e37ef0f7e4221bf17f7203d8931ff098177de0508a4a831f1ae1107a6fe2ae93d978d71a26d43e116b7b523101b143f7c972810135a4bb04685bed4b95a5e86fc8400f564506ae0e74853bb58186a7ff49dd5aab01be73a102627ed6aed2083d7ab2c5805c8614961ab86d608fce7b7d2199144856e8bb08567d1ae06dbaf87168aafe31dc8b5feed873e773a238d3efe36218613f13df2e13d100929f29938abadb1c1249cde18551afa08e6e5771376815cc4c6097fd84e37a177b0ceb31722cdc6c6485ac90a1cb1b6d4b1dc949cbb1e36bc573b4156e81f8d1f662c27bbc3a6493bf570dda7ee3", + "25f8ad8a0d636bc19ce9794a87e848a17cc6e1c75c069eb0238d76fe5f146ce07b6b4072fb", + "01cff29ccdc92b27cb10e8308d009c40305b198c22ca448c0f4ab2e023325a12ebad57b4a589f545273a1a04afd204acd9a8155fa366fbe094be18d7e711ed2c08f547bf0bd873f1c2453a3481d3f2cf6f1658b46c7ce8687c8cb3852d02cc406ece69741581ae26912e5a83501c7a11e0f04a0ef95c07ff49b4df3d9d228bfeb9cd6fead0f12d2db831df20615f791ddc81d896d8e4d20025cc162618a1924df6b17f535e4f1ecfd2f5a7c82219f0026bac3c447b93be72d6363df7143243d2ab80f407308ad20a23dbf155d8841e9177a4129821cca572d56f749d06af761c234605f57e89e82eaf46cd79460569b30ac36953fe0866fd9dd2a429c259e3638bfaf3ade314199ceb208a14723f7058e2660defa9b55930f14829adbadce9c91bf6dbabff55d3e605693a3f9d72d2cc001dc5e20c3e12ed1a39a891c75c2d" + }, + { /* i=224 cDividendBits=3304 cDivisorBits=622 */ + "36b5151c2b88cc0d5193d7eaf464467b3f11b6a1d04ef9d1fa24b92abf4b64db019295ee26c1790e3d127eb40a938b60dbe7ffb10edcfefe9eb7f5fae2b68d497175904644a8834be0cdba7a5877e42781280fd9c76a164d141eae8f3dfceec8aba93e35b186a5eb09330b721234981100a6c3c03f678377d6a7a81bd2bda056e968bb43d33d528024934fcfad327024ec1ef0f7d39b10ef2d8108b98ef09269bd17609550ac58e5ffdcfd32ef62bf4b8ce0de73973f6dcbdab8aa65e4ffedc94cf0800a0fca12ae956f695b148ec7aaab736ed591b15a5735a6ff2898a3e0c7ada83a8c409099802fa4fda10851b35b06abbf32086fb55ae611245f98d091222ef3db74d77904f9b3272a948a069a315caa6241f1c7279d2d8a29a2e1367190caa2cb76487d2bce0f89ec4e0e531064f675c8400247e25898462e0840958a40de28b2e845a7190ae30dcfb00dcf00b485c2c18ad5ae858003ea60dd7523c54bf06f4eb9af1a3994e898568cc76bc335b26a259cfed57ae25b22db83d7c75c4d79ac48115fe375f8e3db091397e7f9e655219f8b562f2e84900a97b80f", + "24cd111a419532985d1754a8317640a1506d9a41c53a679b3a19895c020a57f06cef8fc7e37f7c33d1ecc9cd65d46c1c37d5aac8b9a3cc3c48d08ab961e5fb8bcd8fe4fca8a2db0d39e6fdb265a9", + "017c8fe6c5947ff28337760a0791cc15b1228af048ce144023ca2f49595fa47d703de3671d0544c2e3f40fe4764844192c4e817e995643c8dfb88c85f82beea6230572547bec08d524c44cee960f216894af0a5a0a2192e5c6483130e321758d88bdc47b294bec4630dc24b75541e7ad9356f78697f246a9c104619df728a9d6dfdec7e90a3ec6df5d6f155c8447f41532d38d72678d6e48dbf0802b0dc66db75146870e78d4a1cf476c144267790e9b71e8240da691c0492670dcf58e7684bb0ca060c4ea1052b4bbf37f87a5e3c6d7bc1600f6c1e7ddd014232d82dced7c2e5a16460ed5ee31a249d34f8cb24a2ef0f4c31902aa98b083b599a057ab475ffbe41890f0fe276b8739c058f7a074564fc39f4fd883ebefabc35f7788e4e485397409b58ad5ed159dbb1f1b982d8ceb818a6b1306c3ff1df28d62182e119464293d31595ed177ff428ab4db57299872cd", + "168e557df9fd784f5a3f6a4e55fef5042946015c75e7ffc219c54db4913a5d8f009588dc637fdc8c88051735cfec9a0475fe7dbe2e02cddab3f78be21c13bee1559fb7686bea1899f5fa041f0dba" + }, + { /* i=225 cDividendBits=231 cDivisorBits=52 */ + "2d6e0e3cb3f7305d4ca18494ef25c6c415fcecde3ed0e7d28170c6fa41", + "05655a6a782e3f", + "086b589b8e51e8287762a8fd76289719b335c5e628a375", + "03b0956e8fba76" + }, + { /* i=226 cDividendBits=1899 cDivisorBits=1250 */ + "0330ee500ee1988f11b8dd01bf548190320c359116e611271903306e622f6d0984012fbd26be7228d6aeecb519e05928ec3cfdc5ec92ee61d069d513054352b5ab2a6f4f7e17bb61fd128c04a617b3d49c9a6a2ad6531f7b52ffc6bd760b7b0c46f2f59a16dd735bb5aa8022d635a26083dd5c8cc990e56777b79be65f88c0536dd32904527d805fa5884525d9804ef1701c82309ab5e5578a2c53e430f67fd2e6a0488595f3d8fe6c68a0bb66bb10be5ab9641d8d50340db19eb0734c60014fab60f5fd67d3483007e896360d72e503e0e1c625a991510f680af370a4590b24a9bd76b3726291598ea76193e969", + "012532faf657a638366842fce3313f445d310da4650daa8acd655ee9899d080dc8d77cc215594d1e35f5e098cd04c80ce4e295ad2da0bf6a83d45e9fad8bb52c4c11704c20a16e4818e62590af52daed5aadad205e8655bee34ebf8f1a7f87b6e4ac6c2db78e8cc6f1b80ae60315f8d4e4d2f433f80228b968c41b478d785b1f2f4ecec70c76748fdf4fcdad1acecd561d5d8151c472d14114eda351c3", + "02c948c0be4eb35920a894981cf6950cd61ff004a5b60279c66b3b68cfd8df3ba77fd96f843f37201d6e5780453a33b96c376d94f9af60ae2fbd881bf9caecc0048d012b6389bf25e4567596f586c512704c", + "1259359515f23e8577c967574ee3ec914189def9c8cf1f2787c06841ab5d5edc5927541584306bd1400b93c0429e37fe79a8188734ecbc19d033da29932cee578bfb5ae822e3c3ab0596b949ba40f653de1ce7dd4d9bafaf905784ce4b5579682dc7dabbf269b02b0f5c09688efd1058bbd772b9c3be02f777b7a9b49b1c64338e04b5ff72e4c4cbf46231e5f99a93648cd00215886b4600929c5385" + }, + { /* i=227 cDividendBits=1110 cDivisorBits=139 */ + "3da3084b72f268d5d11c6e930a1540731a50f4c4f983a0498f5f470a80fe126eea6de56428758cbb48d63c54731794a1211ff0231e8498747b7c56dfa24f5faa96f350a3a484c16b710aec664723db8f62025fa834bbcceeea9c131a729e2f33cb265eeabdc733d2d9547ce1d1ea9ab0ed6091191dbd9d05e60f5a74de04f67fa03a264872786a4819bf20", + "03353b406244413952274d1e75d56c767c71", + "1336c007861e745e2561af299ee3fe038fff346e3ec11ca7a2da7eb649519407110dbc56b90347daae68c709b449777bb32bea9d853abe6656347df059062c4464d32fbf3b9afa51407c86515296ce7fbf3ec2b71d495ba63b9c55b55ab1d3832ed03a4f4fdcca041094b288aa7bef97b300b6d4c463e2ff0f67", + "021b180fe09e2b021f48a245469bfc940ea9" + }, + { /* i=228 cDividendBits=408 cDivisorBits=195 */ + "77ad4afc59a1dd292e3e2c0c8e432fec877c13157b655cb402a610136b935f13ec51ecd504e70ab5479976f8b465eb3cff1384", + "063a94911f00384a2d82ce1e739744c7f397870734c0f21180", + "1336a0af3f398e06d1b2190cc954e0f1c9e993c28d8f22d5d9af99", + "019203ecb09acdac8d4e24fb9e444519f89f663ebe1cdc1e04" + }, + { /* i=229 cDividendBits=406 cDivisorBits=71 */ + "269efe33ee7961f9c8ad99a68e31f09ce3226dc94dce2ce30d5dd7d477c02c444d162159ccf095a069f381379d71ad7aad0d57", + "06bd1a3d2f9c92c549", + "05bb332c61eeccee115fecb3fdbc72fab2aa80555a1c2421cdb816e0d3f3fcb5adf3ee8c9c9fa213e71a5f", + "02402f8ad5084d6d40" + }, + { /* i=230 cDividendBits=3487 cDivisorBits=3238 */ + "64bcc3990109003d1fe32a0d858c505306a42f87cf46b61ba6bd1f351e2112bb5b2f03068aaadd417b1111f4961054161dcbc28a30cfc16911dac1324a46c898c9ad305f34a92ce7bb0d30144d96f52844a77a8c280f3a2b392aec85abb4080dcfc91538dd12938b142d75530cc2f335d9f0c93c12842167ff4b9397db28814eb4f623e216eed8ad53202912fe6a7879b9da20d7d263dc6e505b534c05d4d82d38afbcd296c80c67ceadf96158ab9d50972a6eb96c8c39e1a03a6c24309636d66ae8b97fbf90129a6b1e41044713bf2038240cc91c2d66b753c60f153e7109ef26873421f6a41468b79c374229f78611d5a7d73b1b42b8256fb8ae799689a168415c31d6689baa1f86a0e8469fcd62dd7d7d38b9644f77f056e872dca4cd9b62da57024a44da99ec0f9da931905b1aae975b3f36b4fc2e5fd6b636fc14067af7b89712bd9aaa8c0e96accdeff7fa417c1931e290b0fc062d5b285e3c11b51141882c90e9845118e549727a7974be3999e4cbc47696c651af47a1a9d36d52e701c4befdd339a87b1accc8b4eac12528e67d6901bdf3873380fa70df034a49ac680c6ce4c96c3183c3f0551b893308f4040c4db4f1", + "242089b29317a1e9724f2fae84007ffd722dc65986d879e7679fa57e3897b37b1a92a595765495d93d77498245248a75058637ca17b09fa4cd2185dd3992e24eb28c6d2d4a3193ea4afd9e1a29e2342e81c5530c14dc670bdb1976a04438e1d5926defdd834a1599f5554d518cc22dc77e7a7c681fe0d6589f2fdd9f4f27ed4091466c06b9b842d43310a738c40a68e1d4bf5964a7a365119cf0c93547ade0a88e734fad369aead54fa41a22a47f16796eed33ba448c95f60a368beb583a46aa5f7854b221d04e9539bcaf0c6c17795695b54cbabb164b29ecaac494504ee1139a9efbd10a3ee3b5089ebb43467599c89979e251d7215755235dd688aa7093fcf246826c5986b5fa0469c82073292cd391686e157033719c498989f4c7f03448560cc773613e809962b11313a80c1095b5a250c5c31a4a01efc40265e84ff3887df74f284ced10301b2a6853fe572d05f7bb1753dd00cdd48617f363a0d27348329c0b7564a04333cd7a42e4ba16f28adbd26d69c8d837194ff10e36e4f4ca5cc2c6fb978dafc6fe96eb06c89535765567e7a12a83", + "02c9d594ebba66d9340b90930fd8bda33696e675a675b20ab69cae076dd54341", + "1982543805fcc8c9075fd0407e52ddf025184d4b5e255a83b3e5bf9e5e6b15babd0263a1d820631549f845cb644cda32c100c0ddfdd048cca8b7762df60e4ca95b0c92c23c91433ce705fd65887f16e143c5430c2e480d17dab03e1a6fe801c90ace3629b0c75b85314a150f85c09825709ebb9d93527446716c28560c41bf7954921cd493d0458d8080ff9a0fd9a53fc2b2bce65a59d3fff03a6c67158a6bb391753640b2213bb793fd588cca7b6bd56c0c846c050b622b5ce77ea4c08880abea3d54eff2fe2cd860c4bd33b6128ac02e678ebb73a0c00594ca0907e8375a4f7924748266759ebcfe6799b07210ca10e388a186a57f406e62517f618f2aec1d6cdd8cb12829acdd29b89003c34bc9a9871f75f591780a48495220c1bd2a2e966a5a55b93bf9de5ddc0fbb4e4d2143ebc04ff5bd161718858eed432e928c2629d97193520cede9c1072e6a6200f7a6c7764443d1b0b3e478bbe0abf07a671cb6dfbeca07ca0af392086ee9dfdb65c85fda5a4e2e54ee3223524eb4e93aecbda67cb6ee235d4da5416ec733d402706e873be842a0ae" + }, + { /* i=231 cDividendBits=1866 cDivisorBits=839 */ + "2622bd4e31b78704c4d6b000bd940337dd9a367e2f4156df329de68d49631b1497c2d123d1430a724627e77fc15c9e64eccf51a3a420c5d46c6a4c04f2ad133f7898c44e61e15ecdb462b1cc83f6ae088a283160dafb2b3d355fa76631254e19b02820e77120c172d26e74e42639f7cb64175c5189f5b7cca922c4f7966be5e72ae8be799e238abd0f914928d2e526112b3cf2d5cfb2d06d046085481b699e09afb4537e446169603099bdfcf69e1c2dec6e9a6ad71bcee294760aee14999e34c1b4f08ac1e02185beb8ec35a3dd4194a3dbb0bdcbfd2446ba904504889b82bdf4572bb178e6fd6048", + "7283496bc52c0daa660c936ab94c75305a9e91f924f4bc782bc6a9a76394aa4702b0b4b8de1cd8aa4f50033f06ea5463f627ec72c319cdced9075024250d8cfc98fcc97c29f108e2af07b0d7aa0839694e5356388e1680ce62076a95df4cbf4f98c08ad2dd6e9eebc6", + "55412990bc68c460bb1b54b1dac7d2f88ed6aa6a2626c789715ad1b057b98da6e2f891aa2cc4606093cc717304e390dd5e288cced5d1ad32ba545849ab7a77e2afa643a58e9d2490c60248f738727faf4ce7dba3b505b6a38a5a9646c0ef428d675af1083b9e9a64750e2ad26034dc46358d8d0dc93788f2b722a9fab71815ab", + "0c6ec0bbf1716ba3d9160a14119d77bc6ad3ba5330199c5a09cc84a8de1aef655478163eafc1ae1028531073c2f6a722b6e6e95e3191646a3a6d53a01ae8036788e5f74a397405b64b390bd3544988f0fdd707cf676da9e2be4204b762e8f34a497d2abeb054eea506" + }, + { /* i=232 cDividendBits=572 cDivisorBits=158 */ + "0f86abc77e45768d4c1e89ba7a2684f746d857b4bc4839cc251610ac3384780b756ec24b6623cfd5859de46511ab5b8207d864f885df6594d516970a4cc1b57bfcd466bf5b432bc3", + "10e09e7e6c0caebaafac59c262a3fac76c37f2f4", + "eb80975687723cc3838203a8f926e72a3e087836a9488da3ad9d115377f99c653bcea6f4a4627fd4ca288df5b41aec8fb0c66813", + "0c6ed33369009f5658b9e38fb821f561efb103a7" + }, + { /* i=233 cDividendBits=4005 cDivisorBits=1014 */ + "0f0a4d1d582a4407bf561b7d4f09e0a4b53736771507fe5a9f02c18439d4c20214b8f81da38cf6d18cb7c1285810781fac84706937101116b2018de82b5f24b28521ae116f8ec6350a55546db7c0a1564f30dd58bf657eeb05b44e568900f2d05b8a82efe4018ed0524f7f0fe5eb703300640c80184926600767f379d3f49196a21840295632e820ebd86c11a59afb42588887cd178f353f98127a1429050a4b7d133542ca725748aa10289a0d16d6af7af9d92bbae0f44e6d91cfbc877ed96ff2ce5ea62598ed0b5aca859b3f5e64caa8d9712e2b56d51f5d6a60b79a2a96984536a568ab5d4efce71c2ed461e2664d4f28cecebdce03a51ef9513cfbbd54b33026bf56cb2d8580fdbfde0d085348c6041b6a269e0098c0f5dc12bd1869a42f3da2b7d42455a6f1acb76a5ac4d1a27b1777f5e59dff93bed87b003a2008a5ee1a6ed910652d14b22eeca16b46281c9e41c9595064f23ff3f32495b168b97f29b832d6eb222ba322cf35136aed84187cf6d3c80412b97c4bd09bde0fca06d3c1859637b8f46b94a3e01c4b1cf216be5e9e4fd5250d242885b25c9ded1abc26dd40e2f4fb106587cbd0554fa8eb00a08ca593af9613dfe87d939e3f543a6f89fcb0927bb3842dc3af1307124f53f61a3851a008e41a9534b6e61485eb6a17a13b12efd182e5bf2f7f6d123e4ad311f2abff1f58d3a3", + "2b13d8416471afd21bcb0b025aa4b0e698ef42cab2d322c5569b86865944126a2ed80da8e3f61d6cb41d91089c9553c2116f614d7c4e2e129953a11ca6224e728d1149a193310f724395268d324bd67c620b8f210bd0c5440b1445bd338bd9ad3f1e51b88e696e3b681f018befa0cddca14733c7206a1bc3736fad5e106099", + "5961794efad2ff5188154f64164c2369ab29c3d8dd4132c4f3f37b431e744267f0c9ef4b6a24bb4595903bdb52c6367582235525fcbbd4aa8ac2101e4f8f4ee70219b34e79d9d5afc8dad0850a43c19a6c691ac723bc18c717427be2f5580d2e9f1a514be345219cb3129a934f039ecf63ef06cccfae91e03706f9ba2d98f07ca6226236c7f8bf6d914c4f84749437ca5d3aedbe7843559373b9b3dfe7083e0e4f52c897e5529ec62d1a4eaff76c1999f56ae500f28103b1cebf2c5e785394b67147c86d0924544ce87f13c8dec740642c752b0b94c4a52b311d48b69820f22d97419ef35e31bd110302c45f202ccc9ae82b7931eed42796a79a07e08e1c7095b6ad553b0995995684fb6d556784f6c805b42a4f8545303171911e5c38ce992b600f8ac92b6fd67ddfab48e91407e7129d6229fc235b7b1209ff39468f28966825158ad93420836ae47dd4b93f69dd99f247c36470b88b98308c964adf27afd88c2da6f2fd45165b8f97738442abc260975757da69fd", + "0ba88d7def8b18331cf5babc9d7c93f7fac6104d3d5d23d7884507609ad44ac4cee8948878c848813ef017f198e38647e4f50af56f59b9fa3f6f8586b5fd08a9a957a277baf8f1b784fa7d02be945eb038139a5691c67f0191e98cc570ee5e86f4fe3597952ee99d010eb76ed10503ce258123d37d8105bf8a744f30409b6e" + }, + { /* i=234 cDividendBits=3806 cDivisorBits=3378 */ + "2b1f36e3fbc9ae52f96e5b3b39de2c21524e352645c350286b3bc176921cdc5188ff0abcb10933852a0466c92e024e3f4a49bcb31f8b23ad5e62d4f8b8464e3ab09b658b98ac41f5089bedb608927945aae83fe777e850bb574a9fb349b997a986678b3ec060bb32335b96ac63a89872de1192ccd1c10927ff1439837252f2f56e80adfdd47d6cc8ccd31f1984d1da6b7d361524e7d00f26daa6d63a0458f615c3d7a17abe154169533a2819bbd3aa23f1962fd966e90a897e2b63a5bdb8f6fa9f8c49a3de7dde70c78218acf8e6199cdeedaa412159338721b686bdcef6e6660984f63d89ed5eec97688a283e6ab1f84e27bd1c4a5c676da3de779c932f59ad4654f3d76efb75fc9d082444e1f2d17476de55365f14a665f4a9571d0e798769ee32045708d4f66f3c3aeb4c3723eafce31f76612dd7c431d158bf54d374117c91107476d0d279577fd586e998e4b3356c5ad187a7d2a451f6516ce1eb06cf21a4c2b47c5b4218dec15e8c344da36779a9160fcbd982ab6f1a41ecbe6a836db2f8afae47ff1557e041d39a222a9c799202e50e42320d64d5dd8b089188639bf16bfe0a2ebade9b175c0a92993ff0ae3e2abed2cd98883c83253ccdad5b2acc0d3836eadd954193c95fc4ab0d08b2cdcf7e77ef8eefd090d06896d5ae", + "02ca7be77c6c911add5f0636cac1070aec0031e8ab4c3c28affea0e163dffe72134b3ab3f74b3af22579dac7e1f63b9cc2585b99e31b1404c22c128903486f982661adaea1d93bd6f8b86688c5f6664bc3d7f8e4778466a396702cc3f616bf9554c81a91307778ce2a82fc2e5e3b3d98c5c73f58b7b84664bd577001b1be0d7d32cb961592e84c99a4c9364b2ce7c59c99454f3ab2ab76c0cd2f96be363b805a7ce935ac7dde447f6ca2610a1a7793315d353f17a87c1046b4485d2ba20eb4b14f34b0512ba27112517c584ef6dd6e0a0c9ea1edab248a5f978e9294bb13b97553bcdfa0b82083127cbaf8ed509a350ffb288b7318c455b98d912b3583de583c92f10f969f615beaeb8c2f71918559be70c43b902f99f70001e7135792e6c465c8cc91f378b21400147cc2b6a523ab7f5f958d2cf95ab6baa42b6035937ba12b376332780ecf0b54d5f98b627baefa22dc9b3720fe000d9b065cc7e66b6f17499acbf5489289cd3ab28669bd583dd00dcc5652a8a5cfe182ac24ddd8149414929dc99b3debe0a5f9b10dd2c4c703ab8225ff34d1c9f89f6509557eb9fe8456956fe3b114d655ba", + "0f735b3f4c3aea2bb622facb9b8ed096314dd3c661d690639f07020f41db0d7575723c70e9cb11fce5cbed1683127e169f703117b027", + "0270e8be899ddd319f75303d0b98ed52e90c4175bdcefc22624b726d204816be01fd697201851f89e881f5bfc5c51890ee76a7d751b256a130e476e72d80d6374904e7fe21cb6f001bd159f63f550800a07f645fb29048af9bf34123c159bfb1e63676c5b1a8f608c49de417d6d7b7e7ae9680b9801b2ea3b010ff11df45fe591c3ed0b97d93526078e7f335492535ec44ff6d65fd5a41664ef77044e1a8b71a6996d8469539322dd740000503a188c8d14b90161ec87e4a897024be47d5bdd5dd59e3f227304fe13649829825bffb5e4726c8b395bfa18e6d935e6d96281be2726bb19809f5a5b99eb380eac5f1c1b02a114c135dc5a633de9f1f7fbc2b1fdc320d4a59165d0e2e92fe360d1f9bcb9ae974e1a9459a89a46962e0f39b51c8c39f41f5c5ca5d53e3e5ed957bc71a9251495b3df49d96f878498fc6436404a4a083c88ca146f698c5573ae3270221ce7238102a5b25a42360500b581a7375e545e2771e3b58da020b7c76fcf6a1e8da19b36183fe24657dfd5549aca63df9f3af8776f60b7b13189e6a0e4eed696d03811c2d41f5edf7ef96586fab699050e3be5535789349e658" + }, + { /* i=235 cDividendBits=1946 cDivisorBits=1130 */ + "01b8e642028867ee5882f099535bbe2554df298150a9b0f8981f218ccfa98c1350a9773366dcbada792762ae6a9c7f1058d668a933df9e2a720b6a53cfe51758bc03fc6abcc51cdbf6bab01df46d43cb4a5e13b949da08b871316b1376bc6e8d7f65776c3039314a6d5f975f7de36b4c3b17814c5007e70b1560554249f5ebc68f9ac12b857fb1598e9d4971504ed1944aef334abdbc5daed69e92f5e1ceb704a00b6921a4830bf72155421c35041932502371ae61b4a3baaf4fa4a7399ad9922af7f55e2bef3cb3b1073870b32ca11a6d14f7307e2db89a6b5676c8b0373d50b72de1f4788d58f9293c893f2992dbf2066415cb", + "02de1a51589376ccc3121ffe219c1038dab9f192408338ef4ae74bd1500b78cfe43315b4935059d5d1ab433d85e5a359a570cc3eb8edcafe77d1430930f97d8761cb0ff802ae805fe19db7ff629899a90f403e2e00fc0941944a9bde564f72b4b3b20c66730c0ce16e2c47907016799796a7820161cc513f1c8e32b5a07984ca909f9dc57f216b44e094d8bf5050", + "99c0ae3df7b14663ef02541e75afe4e40777b488a07922c12ae0c96b263825f673406eccaddd4fcb611da6f0335bd6852fc4d4481ce9864d158552ddfb7f708948816faf513105e6e5c1352f8f64b24cc2785c35a5c5e9359f6b3de6195e62797dfa15de07c6", + "027acbc1262918bd2b161c30c7bf8da9527bc45093e3f8f612fc92c06d5f40839680e8092e88005fca137724598504dfddfeebad731884f43d44858696b5ae6b8b0e301e5d2c0843ce7f736e7ae0449ce2c74128e146e101d10424021828cd510733cf14adf606fc670271e3050f25f078f5a131977a4ad71671e355e9a41dc1feb0be03a393ae71f146f1d9c7eb" + }, + { /* i=236 cDividendBits=2544 cDivisorBits=858 */ + "a1125b990854719f54f3c1c5c50553888b913269cd8c12b91511931a166bee734b521114afe9eb8a008bf0463d8aa6de17aee24d25ce4666816f609d55bf201796526928b760cbea270cba1a383d63c5a635d73d08102e5d90174b89e55138786b628f313c2e1beab4b747ad45a3867c1bc4825a4374f5c2da3c16f34e25a2b138c57d9bbedf15b98d6b1cad3762c27035eb40c52c76aa3e870a4dd8470467a887bc31daff7a475373b879b8e1371b1e899881988df4bf5261fe4872d0ee0a42d93f211e907e41c6cd2fa3db128c01c9c07ca44c9b7497dcae0dc0f68ba90e5418e7475e6863ccbfad80a0a68163747bc8e56a7e5d3442b424dd2c20c6736a9147859a2d2b841cfb1854236ad7ff01e545a056ef3aa93b5dd58ebc682ac3f4e02a4fa08c55fc4a5f0fd9520c175ff79e7fe03ca18f9876a7d04eaf4f9755", + "019bced8f42a873a5f3ed1b81b3f4d2878379071d166786a7ce55328ed1b5903e081edd8b4f5b04754f0bcdf78d3a02bbaf3192fa5723d245910b6efa7e81029bbe42328485c15b8e1336f774ab9d1f83ca4922f6240873348d3fbb0a6c0b09faeee740cbdaeaa0e535a4fe9", + "64214b55d7b6abf21104cd9fa882f52749c90f0249b7b686551ff611b6e9776589f2ccca0fdf309db26deaecd44a74e9cf729dc5aa9af72ca94637cb071c35de55a88459cab668519464f2cc4561431aa4f844add9bc7472153907e8a8645e7cbfadeee5701c9cf51bd6266c2543737a6a3d5fbc3fa4c569e748915be14f56a3f51182cd7e027a4fcf4ccbf26f16f735d76948908eef2ab1be7fec8e9f0dd168ed9927d499a6f0b2365b5ca22a4c627cde339209e32bbb8646524c586fdb2bdd4f4a320f3ea48636b705d8d911d59556abf77c", + "fb3bca7cc0f702f26728507a3ef039793d314c9bbd292f4081a803556219ce6ea9dfa3dfbd9a1a74f7d4d58a4ff62578d295bc0fc390b4e5265b72da307569dbfad8c89de158d40e93055cd17a2be29e2ed6cdb86cfe194992fc09670da2681bd9b79830e13b2985d41379" + }, + { /* i=237 cDividendBits=3014 cDivisorBits=1227 */ + "205f0bd68bbe0817c42048da3ebe3bb72722a69351f2cd8ca760e09ec4fd747e70261f1dc2c453d26bcb2ba89bd5f0601c6f0dd47304bd92a2ce40fef0203bbc98b06b8bda6b29cd74eef3d1cf54a299eb447700896f908a7d3d336337f49f2e1c44a6bbacd2824f78c652af5d632e811a19d0ba266d36dbe8bfc9e7902042ccef87d6c82815f6940bbfa9524b8fe9303ba7190df22d91f6945eb047aa479e124b9545040d58a3910ebb96428c535074e6d12cd2be13f21832533868acc67e548df93b476492eb861e6aea21e005bcd6bb5b07b05eac8cbd211fe7eb926224193fa82d2219c36c23b8f63e79bf5ad81fe7e30aabc164f01d5dfa68d0bd05be7a48b45f36bcbcc49f7913ca586d3f9fbf351bbb1da2e479dc6df463a4a3dc8b63a69e17d5e7021bd51b7f6401ddd0db2eabc724d905a5fa80fd7f6e3bab76a1aed7743ce9d5d5e5f0860345b3b3888113ec47996c21d7dc77205d840b34be3a22ffbb3e10c660edbefd34d95d3354c13d2dd006393a2a8a29c2", + "02049dc6e423718f582b01e1ddbbe17d979efb0fc28fde38f528e005de0eae586697bc28bdee1e61197da610ed738d4964cc5f74af2b04c8a9363a26df7ecc516f6dfbff153cc66cd5190010a9529bd1222ebcb3067406bd95d340e8995fe356b24c411374a9386998a62770cb151dc277de77d6cd28238d7feb974efe9748bf8174baafe9a48e530f3c01fc3654a8d2232f4f5bf2607b219d6f", + "100a7f79081cf4b3098b006483225d749fee63b93678063440d261115387a312e8fd94674d746f5678c980d824b204c0c5f520158569af2ec88f7baa347cf1538b6bdaab7d73c6d7695951a3ee9b1169e84cb119009f9d6f27bd626f4cf30dcfac54292f7717529f74b33111f7bf7bfd63f6ac755af1262105c757dc7d93380b9921e3604c9d8ad6969183f26f27e7e275f248bea97fbe047205ed081eed2e9b20519545217f4f693e4925f21c91cc55fbadb0643a5c4af80c7589439294053a5f8704c95ae07b3eb26ccd60ae222516c910181581f3bcfecc2eb4c5be22e1dc", + "a2223b3e2a13b11ba8fb3dfcafcf5e667db5d89c9144e879ea64fe1d328107b4764d040f95d706977aa4508b462a61b27feccde929e6144ccc85afa2a487097b2e5a56d70121a818e568d57f72aa15d2136e035957d53289653c62b5c52c8076825e4bc651420622d66b935b20b1fe6d909c7d8d439e9dd152bd9bd478d9d4c0f529ec420488196edde65189ad6418a738df45a25d838a4f5e" + }, + { /* i=238 cDividendBits=3171 cDivisorBits=2537 */ + "06eafa8ddaae232f893cb30b4ac18b525fd4adcff8dd37306dc228327d7e75b48e6fc71bb74807a788336f1f97785362f64eb8a4de2b334b5c729fe792a76683d8b896bdd0289c659af98f73604e6a4d6158ea067a8f220a183dbf7f3c445b72d97fda490af561e33bc7176726b3a9473f8576db529371921eee39427d3395efa15449de72204a704df951c1e438c6bd7bedb5b0dc52a4efb21080f46ca6c4c9e1fd1a911b953b7b2587e84e0760855d8204bb30df502656448a2adb386237757d43e58763d4a5c1c7434b9a3ecccb912884e02508747117f8e4dc09e8c71a7b789556d63dde575c7dee5057c18f71a07a310db6f538ce2faac2726814f7548b0fe19161275f22c26d8c942106c02f1d16bd11ea192401380afa4a84b9e6fe7fa30240c015da3099fc883006e68de52fee166545360b48f7c89aba1443d220225f8f7fb1cf369df01d1171000486814b2e4107b46ec97548f19069ff6ddf8422132baef45fd0359dd896c35da9d631de452719f36df59338cc9cdc6d0b66aa678b2b2178ebb6c11b0e4974fdcc", + "014b88eefddca5c57614ef5c1db2381a8fab8b806a70a31c9c534f977f5c9fb1a75d6f4117b17e1dc5529223a960483c67060ddee2dabf58df367a4c9361e985d626a16b02d1129c14bd9369cddc7ec207f9490231364370847256b58899aea1c28860879871aba28098e3594f1f4fbf2e02b22887ee468eee36ad450e469c67e594d60c29438df6e65336ba3ff618266119cd9275f8c28d43d821401198aaef353c8993b2efd2890c2406b4885c7fca729023d63d459563ad338749204394dd134b44cd5340a0e8e6c1de9b606e929287fa17a1a800b57ca90599f41b2ebc5b2d56ebbffe787c0475aa3851835c82d4d0f132a182ab2d6cb79ba6a63c12d31302977a2e26f5b4629880d2845c46b89b227522dfebdde1a1d99e3e3982f750c0b97870a176c321643d82eeb0a7fcd48a50e3329b2d740cb3608629c7a6b8", + "05577d5c84303b8c3d49d350dd1b29b080fc263a2cc2305f3edfc6120c77cd32b856b456e5ca11cca2c2424b200c1b8feed303e0f6b1e6613f48d28eea1c259998a710f20c55997f2d28647d9dcca8d2", + "21aa606fa04f12b3e626e34d76154a2066dc9acb7e463e833579c1b2ec165083fd879d00a6407f657a87383a3c7bc8e08a65ccbed8e3d3724f439c07b9bd7693f4cd4b2cf6cd2668ae2c89aeb11da28c39622a6d3d39f9d568115b5693499501def363fa2f1b43ec1a259395dd34b4bb2f553d18cd8c35ff7bd2ff5558cdea8c91fc45096a4b5cfedb7080a17a89ff2e25ea74c67a6c5b867777bc80afeb8a1c211d65f7d2172f50bc64857209b4c6a6fc8903fcb78153c770e8fc7d65433fb32f0f79f7699261d9022bac61abe7a5462fd2ee558ab7c59c11ae9ac8d168011cb1b496e0ec06e2bb63cb4eb6426d0a186a7f797b695a5379f20ec83a5c1b1c9dca82ad03f6d2a355ff4fcc728182fa65bc2aa5ce01f684750f5228b754de7a9d5831604c96b0b16cb41a9be283d5c8043c765d0fa3995edd654ba57adc" + }, + { /* i=239 cDividendBits=3239 cDivisorBits=3191 */ + "04f20d6bcd6b3c44a640d172dbeb8576b1e51e5cdda4d44c414a2a003aedbd1ee13abde17c2912b82c8ea860de539fb1f5bc8a99442d7850d463f30c9c1ba9bd45e4f00d2aa457599dbf5eaf7de1e83450093f1d8e2c04f456795f6c06157baaf410238293fae499bb3910bea0fa5b8134735d58b49d622a2a53ae6211763dc75116aea05a25dee6fdba40c1d3d8cd012549b5e6e5ab89a4e3f0fdcec5fe30b9ad0f61bf7c1ba2f6497b1a39385b00eb3b6283c1df703801b2c4d9beeab6c58cd89ef53bafc6a8143ad6e2ca897a2af200b8da8de83300cf8e863e571fc83f44f2ec6c53b3bb4b0d965df86f55566d4de7bed692804c617b304a6fb45ff81a89f2e6b1fa870eebbbf03fba9fd345e62da910f4a7780934a5328761fb880a03d778c50ac672cdb5584585a34d9b842561773dc0362047e88b4baacffea502051f9465383ea6fa7527c4d75a715ebbaee028357b4d2254ec67e493c9811bb332c6e26d99ad24b34f4e901d239645f2d4735527f87d5dd175781b1ead15e12f015c43f0b439812a2bf8aad2ce70edfb73a75daadf5a72", + "39a6760242258c3c413de8e38582094c7b0686b2b6785d712743054199b13fa59abf64ecf22d4d76ac13a4ea6fde31530033ee14468837bfb7dc3e7aeb02094942bdb145b09a81a16677ffd4caddbfd9b166b58a13f943ecceb263532e08e4e4e306e1d04a7b76bb5610d105f2b88c34979857ddfdece32f76232263e2ae80477fd321500030507de8a4b51f82e79170aef230935464790a4324ebcf197489462f5a4bfb6bbe7a3bd17717e50ca927e7e70fe373dc5cd89b0fd59b53dbcb3931304f5fa2103691f9536617e5d6cd1370e75d444f37dc7ec833403fb5eb6193bd2535ff31f6a857254aee82453eded4be2f45c9b07f4c4dbc22b751846e592cab3ea3c327cbdc7a8f0dc875e85e2a8039ad6ee3e2f8ff7b01422657398c026458ba66c0d86256b546e5e7daa847a7835aa8677869fdc2ebef5eb0637e502244d7455ffdb22cddaca0ff66e41ddc6ceb3daa8e33f148c7b51689e606a83d0f4b9f1e81e0a3cc43c960244cc1169ed8d66addf8ec735de763c7fa0ccf1223688caddd36bac96e7361587840f575327afd", + "15f5ff084bda", + "0d8be012922a88e27a34d86b95aca0186d13e34bcfe91c5988835438308742a88fd23f913baa216e5f3401cc82e9b379c5842e1c3dadf5f31a3dc97884be6303494984d6fc31ca8c32626d797c607cff15f7f200e218c5fa75eadeca597974f59afc1b8e67ffaae640de8f1542771dd9577a1714ba7ee7e485573b79a5186c744ad2b146d8e023031cc17ccd4f8bbf95536bf6b865e827409d952fcfa34842814e4eeface8c1c647d892acb27ebfb83ec617ad30186f3c594d67f075b8f42e90da0e4b84fd06292628007643b65f44eb10d60ab8606903674f3df0c4545d33d32ccbc8a775ccecfc3f898e97f620200e7b3eeafb965d7ede737ca97e3f79348facbd13a0933f8998aead741fc784ca0090bd8e28f29bf5f236db4382c6bc842e14c6e975294e44cfab28b84b97997250002c2e1bb71d5d5a478eab001762c46eba84e70e927af6b549649478327643c806139d4859a2b044e6065baf696961ed0deac4173d6863080e7a5a842bf3d35d5a72a2d9403e16b5515a792f247f0eb21bebcad45dd120953505cb38f28000" + }, + { /* i=240 cDividendBits=3586 cDivisorBits=1831 */ + "b659c2dce127e1be2e1837a11587ee0613501f8f1249eb94863e2e6a08bce4bf1317782ded659224fac64c4eec79b398b0e0a469e9025f1d6e2297aac7350e639d2ec4dcedb7c95c62fb74b38e7c515513bea83857c546f6891722717f9c48fac07b51490e916c43c533d32b25d8c60505278591144f9f93f8235e11eec669e70b6326350839896c5da23ee5e0f3cd3ee868d396b822f5af286cc25ef14bb5e991468532c0a5492a738bdc7edef7b29f48ccd8c7c9d940f8aa75cde64be01c8e8dfcf94210b70e6eb01345828e380fe7b6c6c5491213687953b5eedea2a213f960380654946912a383e73fc9dd77f77e58137a5dc97598c6a2af3963d6eb8272938cfae2fc3e608fb089d4a438d5b750bc750c4a2837dbe02558c1aad31568a0e9d8786c1df961838624a6a8ee6b7b2a69dedaf497ccf10f64af51b55094f3a9e1dec13c6860a19b93ab25184a5eff3d9c0b0eec0d2f6056812305a531e85cbe0575798167703d1e890f5a9590d583eff8fb18f4617480edb18921f69fc24f8f46ca07017c732e5bc820ef33707c9889d0468457b4cef4a670b21843c8a631db85c97047f7dc8887e933300161b379cbb0d5949385b7459b60f8d5ddf4939d8c", + "648dc09a4f0e96c1c4c06f7b0f483c6921ef74334434b69227b71f5be87649f27a8c74d19e530f65e532c49a61fe403b7a8af815b904d9870a32bb81424e3f5e94d824a9e0b6d9e0cfd4cb772814d78973550bf043e945d69c5bacb41a249c2d66ff82d2536df057b91092235819c461ecec5d04b74fee36042f3dffbe4fc84c7817492a91c1012e154ce6972ca7ef718989e8040f1dc4943a9cb4b91db6e57d96e195d28c9b899e395355c8c9fed8088943edbff8616f79308c7b10a1beb6b5cdceb4cf4f053b33c868d1ccc9547e3bcb65fa6f527664638e119ef18d743511dedd5cb289", + "01d03f3a43ed29b6484cb103206bc218b1ba11f60f1249dc15119fae2348d2c89e12344d4c00fa154f624250d08a0eaff6ef46d3593f95f445cf951b2591afdc4bae9507405d1ba5e32a81f85019749a6abd689149287479e200ee36c4e8cf4f281c1aaf12a932342f41ab88f2e4cab32d95ef6849d5e3d56e8f757f46f1716fce579b13e1b662d31ab524e60f1df3432b06d782d46c2f371ac410914d14d596083abfba3cb1e814e225368c76027c316e9d985197cc20b0d4594763b6acefcb6088230b2e34aa1464e90ac2684faa06cfab587e574ab423c41c69f9", + "627527d2d84ae07fe9c0fb6644172ab7138991621830db0018576eccb3f5e46bb68e61c0168e72e08a3e9d5eb3b99165a427d7e0d0d76c726e4f6e76279029576e972da91c6df2b9090967da26e820579bf13ded8625da0073a1b0da9cbf6ebf94b574d85208246c388e9474a34e02cf358829c469c7f5d407a492e2c8383cbabfc4a8d5ae7076c4cbd6f95484b25e02a4441bd1ed60a5300dd9ef2f74314f3abca7ced8e8cc6b54f08a9028059c790274fb7519b4436b66e52a4ab52a07708cdbb1de6449c0e81b2f70478974235c2b68e491df558f3e5d1a839f5cdb635c1fbe3533c54b" + }, + { /* i=241 cDividendBits=380 cDivisorBits=265 */ + "0c9fff891ded366f9bea20542a40f9de7d38ea0719800870f0197e40873cadc93e664b4c70452ac2a0998a1e0c7a2b84", + "9d8f95f9db060552b00bc61bbb8311cad5e69627e32879c356806e0fe26fb4b216", + "14833fec6df83bb4c81b796127da51", + "43fe39a09db18d848b039111dfe163cec9447b82e192e25cf9980cb5f15d4d168e" + }, + { /* i=242 cDividendBits=2701 cDivisorBits=1029 */ + "1cbb77a2db23e146539b13fe1a27e2d594341855829cb0b3a1839d9a1fb28b9c4226f1000bb8dee6b5140d4832237dabb848838c55d0385166fb66207b1656a9c0f0e950f36091916f60fae11f9deb6567adf0e5a03eb2969d63ff230be620aaec401c4c9400b3be5ba39cef61f7c6a0f48a3de8e0c6969bf4be6b07e0e755fbbe5bf83adc517eae00d13e066a712b586b370d0d65837115af1345cb63793da8ddc9be88a984aacac4e7248c160229ea8eb9fdc7c6b12fb05ce12f5743383110ab93c8c927804878691f6f2181f833d86cd308224f816db69f7b93d7d4fb0ca2680bd5d26000c27935128f829882d76e3a514de1e3b69c2afa45021e601d3a8617431ab7fbe1af2f901d9b73c94e8b3afa3d791acd88901af28cb8692113611ed464e55d36ef1ee6a526efa308bc68a8d2ffc535f7ecceac411b8ffb8439a7d90ca79e866d348a9222f1da2310e6c5427890", + "1b5cf4a744912d54d400450bf8047121a4e254568c149115f53627e5ef5a458b4fb5e09a70309d459d18e7bebd1cda83c6bb5af450afaae1ad8dcab5d4068e9697fb6f4b48f4e99c5c025707d17dc62f89bb2e84ee6dd88c6abd50d2b74fc002a7a441422b594a6e6f266c20588ebafdb4d417b5b7f256f5f666ffa23e40fdf315", + "010ccf44c6a12899f5ff838cd00d9f989fb02a29156cd5eabf5393df61f9ca17c1d3bbe3820d341286b59b13328eccad75e1944e017d4ed73995a34f7a4df0b10124c718f278e339f7348206ab3723c490731ceb00655d89968ccb2da40d73c144895790ab0e9106c22e7b3fb78e25075620e0a0e1c88c9f609f8cbad57b3824fea62d5db67f6ee421aa42c9003bed68c11bd7fc7d40539ccd13568269d7ebcda54dc7e5fa84e7d14e300e4ad91cb4e1db963f3ecbcb0b533caa6d6f35d8697ac673e9fdc50a4417b8912511a9a34ffbfec7", + "15bf2fe9143bd6a68410b03f55ca8c7f67d992e5db43f1ad346dd630d1e472abb6ca3b7fffb519d5e744d7fabc7adc4541ee98a632be8b4b889196b7e2e56bc5887de8a7a195afc8c07596283548fc6b5a0f1e1370149e60237e087c6a471e47e8c3ac97011763c4e3628a21c42592bb2623ab911dd0b76411a8ca73a67814ad3d" + }, + { /* i=243 cDividendBits=2766 cDivisorBits=560 */ + "0c6c619a14ad2f0131ef9d82131242ab1f39ac1bb86437a1c4cde0968342a910103cf8447425aab96450115a439a657dd000a2043fcbfa5b980795562aeb5e8803972e496ccdeb7584e14570df90e2aae6d345b5156b4b7e2cab959b3bced03bfd31bb33b138380f6ede0950ec6f45e9b07bfa7f99ad0e4c4568adaa3dc818aaaa332a2716cb8f18a8d5b23dd1a0b97d43b35069933f3b6974a2de21b0c2f7911ab591cf162cf77c2706f185612ff5ad6d96f513754955ee6d5ffd91a2421fd7b6217d8c20c3c270aec16d3a7815512c65b4bb3ab29ff76187930c1556fe8f13d545ca882f27c6919e3d8c4326f4f6c18aa731c8377c9fe59ca9e1f4d09215b5cd1e2a651280c1fa59c9c792080d56f6d99e3da04eb75da0a4730650f2ef3b78442e02b86c13f1a8dfa2536b7f4dbbe5fb9f41c522b98ff389a44df07407cd31e2983c83d9dbf6689f56573d0d034ca7461f73e3f9fc6dda56ca", + "d2b751b8b7c71e460bb5d67e218f570bf6abe7f4fc2a6ee1304e39266bc5928b941f870fa2991e28eac84c310de1988e7ee2a12fe1bbcac6ea405a65a1e1a689280e990afe7a", + "0f17dc50a3c39a4e956969d59e1fd224bc4721155f5bb6f00c3dccbbc9bc205c32a0cd3e12e9c3ef75976dc28f2cbbe4c140daf2a91e0af9b3c3eeaaae550c05d148ad2f43e88c8342445e031027232998f7bca8b7f245915a8a5a687aa73fbbd5345ef76c196f85ef24cfd8e2d4775f17b25241f28037c06befc5ae9fc309ed23d2c44c0facab8456512008d35d47291214e3420a63c0f10df4350d7fd5dd75df90dca3cddd001c9f846b3820eff2b1712c8c24857c8485c412dddc571c59d816e6c9ad5293165f1fde8e8dbe99c050ce45c6f9423bf7cafb0802c77a06388b8b962bd74dfd5cd0338b75b816e3725d8b0153576083d86cf344d0cf81b33dd3ad5639c30c82d9dae4fc26cfe3814deaa683d4e4", + "6d301be16212e89a1f1eb2d2b0e5c14ba411313e55bbefcf2a9e13e257708b789453409caeaa9bb57458d1c56b0847953e209f5df73c84077900526252ddf9c97717b0e4aa22" + }, + { /* i=244 cDividendBits=777 cDivisorBits=93 */ + "01ef812488231a0d1220d927ff3ed0a3802af93a8caffb5d32ced1dc79c9e341a490893665fe5a849331563fcd05a9e7ac45f88157e1482a23c57288065ffed33b7ac920ecbee61b5df57f826ad63efd4d500c10b54bda3cb8670525caa0be8167b9", + "097d0a336b4feefa319b6b22", + "3438d03d003ade9a2589507b777cbb16a00828c354c1668dd17d47bb9661e98b65d12b56751a4c1387490590fb303a2fa7d5d05afa05975ea3733721d87e04f38d1a4ed9e24d1924f1311ab4b0d15b8524b46abee5c2", + "07e32dafc08f9b0988a8cdf5" + }, + { /* i=245 cDividendBits=7 cDivisorBits=4 */ + "0d", + "05", + "02", + "03" + }, + { /* i=246 cDividendBits=1634 cDivisorBits=767 */ + "0359e4011b5bacc44aea1aac932df877dc55980be6fa937aa9ae13ea34bbbcfb40f1f47c376bc1ef11894d64581e5d67ad0b921888ab57e0962fcfefe676c0d1780e3faaa30526df6ee382dd061155434650cbc2df6208d1bb5f40670ec68be3b3627613ce19a6fd21fe0f5b1f391f18026aca4b24b7fd68800f1a01e9d19571cf2c2a0b1a02dbeee7f393fa470ae79e309b379f759ef76790234f26af519ea11aa22998899f4747971241fdc0abe1f9ab03509d79842330414de654e3cd6f77ce2548be9236d7e5447ff66b40", + "24b6e1e43d596a757ddfeb6901cc9d2c1a5e901b4d718c94a4b040eaee86fa917ef120d18cfb882ff1ea465744380ae3ae2c0bd050d0d04138deef6f089f7e47e7341311d13cc7254da89d99898ff2a5a602f8e358831e8aac8db38324ab305e", + "175dda0c9269533e455415220393a172cd9f1176c636e1e6b2bb4eec55ab666464572c90b7079f0a103eb640311b310f779a2b29ec141c370b2f0eca8926988f8969755bf7ecb5dc1ce25022219179955784676653df531297ed62218d23143188236f3a034c6deb5afbeeef55", + "1128b06ee1dbe315fc87772b80c5c625db3248bdd9d652da394087a48d41623f205b2a4b6e6a402abeba3d547d59bcf6c354226625a70a140decbe8070bfaf530bfe22d800b7f69d8404c58f30a097e330c95a70d713fd929eb8a0de5f939a0a" + }, + { /* i=247 cDividendBits=3583 cDivisorBits=803 */ + "168ee65500d9a274902a788ea86903ce694dc55802a96e55bff5e0d97b02328950784a5a29356e1a11737c56ea6bfb7bf5694395b32aff7434b176248c928ab5b5b46b7865c5dc0ea3e77336e5fc2a97ec657203355fb2f3deb934f335ee2587f12e8ce2638074c6a947373d35693f9240e92f0460b4cc246604541c79a79fc1a5e2e23dd52226f4d274c854188dadbcfb74d70ce32e4da21d0e06a0ffc2cbd94540deebdbad65a898ad2457873f88f0b0c34d986ab92650739ccc6b06dc505967177b42b558813e5f383dd96331fdccd501c10d700156e143e640d40c066f3ceb2444dd9f56ca021fbf1378c9e3a69065968fd42097fd47faf7358fe9ff1a79fd06f20909af6c8e01ac01c9e6b5b82d3700c4958a9289466602a5daf90fb057511d2d47f6a0a3749f36fb2b8d299edc3d790da4d0b453d9ee03726d98e099800b9225dc7d85ce51a462e96fd666d35fdbc50f0e029448fcd5b9096e572d7b2ce84d8fd76919fe617d4bfc391fcb2104443e3cd5a574763ab6674482fb61c183161cedd265103caa9785c7031624afccf023691a015bde6d9d1c4c0ac51e4309a6d07817c7c4ea60710ba471e01127bb658e05a7049b5bd6963b7ebd54f61bf2", + "03fd2043c2a647bf5733a195506fc0b2ae21aa07fdcff78fefb276f0a9a8f0ad5560288efb2d327aabb7aa59801417284be00e509fe61b1700594168ec417eca036d8b01fbbb16718fdcf1e3b2e82f99eac92a01bba5d6944c1a924bc9bb21ef2a3175997e", + "05a7c9ce7ef89432176bd621a830ec4677c2e11e12905885304cbee70285cf4ced748227951f6a60f8b700565d352ab99cc3f6fce836ac870ce9ee9dbade0aa1ba17916221e10b83a0c6346074a965c5446d8fdf832b8c891c65390577fc8a173414d4ddd1fc07a7edacbd6031a190fafdc3609ffe5b85bce58581238c90be9b623d3141f52b40d7df2e46de64202de8714eda5f95a42053e8b2395daa2b23b7b9ef8f70010d79df17ca46753f9efa50fc9b3a5166d545ff603934ac1a6ba2c2b0474a5d364b07a55b7023539c4acc4c3b91e171e19c21cf47ebdcf102531560abc5948a91fd3a1caebaf2ac7bcb5a982ec48d4a8d1cbca67031206223239ed4984baba6d51849d56db416b018538861cce20bbf12b15d553bef8fc6e69c5039ebab401c2831f4680a4efe83e5c0d1b43bce438739c3943af2cbf7e071601c6237f4a526db07bf55383d6272ba2d99b4c0ff3639ff418e97d5bc6f5e", + "01f297bce84b0b69c2cb6c5c4ee55196923cb387a2fe4787377c56bb109099da2c45616781accd542f502960b989d5007055e3db3bf3542e915685b6b3471d0dfa65e843c4093be4387330099e2b87e228ca554a97f0d0926028747995886fc9689fb21dae" + }, + { /* i=248 cDividendBits=3281 cDivisorBits=1352 */ + "bbd4f925697ffcda693a3b9164414ad9fc87d2aa5c4bb31a098f5ba619d24194858d8a560df43f5f9c5129c0f44510dd5e5636016ccb3c641448c73da9ed1f970b4704e584f93eb39d29217334b3899c352776a39a9f23f3e598d04d4ac081925018444835e4075180e02f26a9cf010a8319fbe38badb971aab207f5fb8a57ee2bdc08bd2016fce0fe2993c2e13d24c8a9b4403e66365b7bab8c4efd446e437af3c6ef560f367e88c531c7c8a7777fd43f7770f3cf50100815525deeb9accd36797467f6fc4ce80c3cfec405d0dbb3e3f8855a30d49ef6e8ec64e1ad30694a6ebfe46386f0cbf7517dbb4c37cfdbb3ab5f0444f0017c47f10be6e0d03ed62f070a441157c100f24764459aa64051735b9744f66e13efebf3b47f5bb4cd3644adb3394fdafca62c5cf0e58da01369adc2bcba7686dbe1176957563694edd20327ef50cc35a7cb3617c2bd62489c24c341f3a2408e18b6793526390d4b0e3d4f07496b04398e083262c073a118195ac31bed9ca9375f750eac7ce01676768a56642188bc307d4d7b71d9ef6214e167e00352bf49ae1d593694cf9c", + "1384bc3377279f7455580a5955a5b5540258eca04d7a4f8a9a430632a50b7094adec2742cab3c381893ac0310c69c8a512b5dcd92163a3cd005b33cd97113fafcc9e9791d42186aa292dfb31271428d9d4c17efdc94af3ac2942720b085723b0999b38fbe00d52e7c1b893ab1ce3eee1bc74eeeaea450b382d2eb73c42cd7df6f35158f034fe48fd15c3e32d11d1c214b90b69ff828476c1afe127fcb395997540a6db302fc3f79547", + "099f8f2b4c878c54ca84ce8b7ade4dd127169ab698847f757f305ac2f148ad3050a4167054653ae97904164ed9eab6109dc44163a37f7cbe65bf61f69f95660dfe70359db09faf5a04d5117da0d15593fc6a1b821fbcb0d5d01e634393eccfd7bec17febf69d599ea2760f17865369b98add9e2730379c82e837e740e98804775ab17021391fdc69bcfdaca0fb3ffedafd23ff14c9d9fe78dd9eef96c628f36f532d98574b009f4a4aa48f7ed98942c7eca32a32c2dadfee7de289cd6ad7d66d3d9dae5f12bd9c97da4e6705c08024a4ee3df744330f751a0b5af2ffca60eafeb92e4d000c801aa114dea7dcd83f9e95abca", + "09accc6fd01940c6f082234252239ddbfd779ba207f5c2d3a728e3ce192c368b1179a1de4bd7e81884914f9000cb149b4b7f5ee46ac6d3cf614a5773203a5fe796d268e780dc1a3f2b585eca28e47b1cf99e6df068d81438f5c4bb09bf9b74b4282e28209999da589091109332d8e32dd30a6b9856b32d8ab8d074f2badf113cc77f4be7655f81b2a5b96277f0a14c47442f6f504ca69a9129f033157f3b7e2524f6e4ae0d802f9896" + }, + { /* i=249 cDividendBits=1131 cDivisorBits=949 */ + "a13e31a9f3c1778a98be14f25e9c7bb0f3a35e3590a301de24ea6ac961f9fd19c01812552f8a4dd8a8357f2faf0afae6c98197a33713917d93dae512cfa797685d1817027ec20766c8f8d41e487f2e1aaf0d737ef31efdeea5cd856c4241432b565d121b3b332b2c1aa9ff8930428f8c5566c02564f034891bee5409a1146a46be65df98d7c0de6ef74dfd07ed", + "13a5085b8bb57fc5cc2c705567818809445fb5ad4a15625be12b592f5a9927a5a4d81599b80513f44458fb97b2e4ac626674f3eb566e9b22b2a779d60b5106e2eab4b5c2438b7d130128227281f913b2d0463407f49f9b5150aae81e796443db459d7816c68ef850c11a2e7ba3be314a8db912bdb2a9a2", + "08353e1b6ae79cc619ec206305299d420d7dabf9f4380e", + "10ff63ffeeb38839ad248ca8b6db6e0be233ed97074c86a8cd3a7a1220dd8cd279016632ca3fa191ed693e6598c6901313e9e5e4978329370ec3d6ca4dca6a9dfc46addbb497828eda4c32c8dc76ee27d4eeff54c7f4013f50189dc3c793042f4522c46964f600c9c848a474060f71b7dd37f398b45111" + }, + { /* i=250 cDividendBits=4066 cDivisorBits=786 */ + "a9139360d240915daaf14c03d00f3b0968ee068d120f7ff9149eaa154907907ed29378d43e887c4c4a834bb1ba6b562bce46879d1b89f83955e82511671fc7158d461ee046605f997a6675a1aaae9b3ce8d70efe33f77b4d03af9bf094fae752697202db965d7acbafc50f2fb1c56fd474353bffbb53a5f909465b13a62827efacc9142819e43fcaddc2c82b3739661d3525759b004c500f066b2271af4e182c118d880767037c5e33cd93d77917d63a2f3eaba3c600a4ba273abfa0ac07394dcdbe80b66aba3446f61c98a0c4d8c286daff0bfd7bab57d6bef09e451e3569d0e2af9dad1d095d12afff97db5500a14dbb4e5230715c8bd09b6325f8d971aea39395711cd78c28292cab959374580bc1f6027798a2734ebe0484b0916a0cc41dabdb68f10d1098674a74322c96b2c22bced9e267552adf493b38572b6312a5ce85a954f9b07998875ccbc5d43d0f385808a12681bb5f178d0c7b5ce3531f43d1f61b8d25a7dd52f371acc2e35a3ad802dfe52e0b9abf56133ce004902e29436b9cd4c7a5d5e225cab9be6b4fa5068cb75cb0470ca62c619a5a17ee19b5919cdf0d4d234d16a69363473ba2f99d9030e209423f72a4cd7afb5f3c58a3840d51b2868bcea5521543d8d4068e300bdd53c466625f1e055de99d44c4908a0ec9aa9769f9ff4f19c84a562670597125e522dc95a50db22d054dbd4058178b", + "01d5eb9ce4fbd2d3c8fec572000d9830bb731cd79a19a99ac80491e7b951948bff98d1425dbae6a3b92d5cf09aa2225ba58a868ccaf14f5230e74d1d1e13acdcb5b3a79fe43235ac389a4f03cb0fc1ce4847dd041078185e241fcf2b37da562af0493f", + "5c1bbaef96b50cf1b3b44b7d989a249a4f4b53eb538eea00fd77429aefa75c698b6bbaaafda11cbec2c6cc34929fc77b836658d745ba45eaebf731d2fb4d5625c82eae36cd9d722afa78bbf27cfe1aec3c8069e6fcdbbb2f77bb179391cdd700facfd1c14c43add17952441ee3551c9677a6a0b8fe46d26da6d8d4514747a81212a857636152ceb76a22124ab08f1bb2fa157f66552da61fd849a50a83e072ac6924281c78a4bc5bfc03455493855b3414c4a7f32b93d4f213ad495a93ff2212d0f0cd5cb2c014a5ba256dcee59ee1ae4a4c8d81fefca65b8e11751172ab200f70bfde128acfd7687f9fd0e19d34c37bab25d07aef5576610d3cbe23cf93c525d2422846e0811cf4ad99528920b201715d634f22696156aa1535eb71fba4e68afc5db1afccce6bfb8c40f7b8bd540452b64a78f4da652da681a7eeb088a92c5ce6663ede80d0e9bf72a2487fc2b410e13e36c46b036253560ed596b721d93a16da33fee7a43ead10d514ad41452ac75fd2038b08220337beb448bdb3a60d60ae54992fec9a48e518bd93b396ada87282fa07e2155d6ce912018a", + "627c4972c70e6bbf753cce7d94d9a3cbc9159125ac1cce924eb981cdd1ddcd0bffe7db9ef1399076ac5117daf81e42d9255061890d028d67fb01f261ac76004ee72cae75f2aab10b1f0b6f4095de921915166e7bb42a5232a227d9c5c3fbad195c95" + }, + { /* i=251 cDividendBits=4023 cDivisorBits=1836 */ + "19e4c919f598f460c322c7f3720981993916ce924fb8a8c0dcdb2fda7f073f49e42b217064a829320ad68360cc89e3ded3a06a1c3dcf3adb7d9f372e153549b11dfdc3f0931ff1b746324d69ad7d51e94c08c34a3c6d58d544114fd6385bcae50381833800c5ea969516ac46b31e57d45dbabff42d60c1f5906d9548db6e4d7f183242c6b4b45e77bcc52a1052f59feb9b10ab76dc35b784ecb0ef6f22914eba861141a384b11647c0c1ba766824d18e38bb68080642354fcba0398e4471c57ac3b60bdb09de39bfe1c81a89c874ae3644f834ef2e05d6cd2d76d5f5ca73ce0becd1516996b8de688e0c8e2a291bf3aaf71c273192553299eeec06a2a117b3f49039bba509367c0b60acb54d5ce38c4a6772bfb36748d56462e5e5d072b72249fdb5a301abc000fdd5bdd18b93ff0946daa68f3918b721f0ca1afc2c5ee407a089d62a3431806b0d1e1b3c93a21b1f906a1b315f96512026f2d42f1da5028a25d2b2dd3e03df8e72ebff16307c7547fcbe01b5c6db9245845f2fb03f6fe060195fec2d4e6810bfc396983f17c63ce16f7e6725acdd76012069f327e4aeb4477aada2b2b8c1f93919020ff29309af19fb2adc9073910a5c0dc2c77dafe7583223c3d7261a068e9e1bbe4e08f9f02582b37fdbc879d294c35875dfee3d976a53bf6878096e713d3aa565d18a90e2a19654436ff306337a9d", + "086de0ffc0e906692ea0519a079cf209ae491fdcb3c8ebc2c164d2360a828f5808dbec0ff151728a0b7147845bd523652ad7590dbcccb9fc7365109d1545493bdac8a444c10d8a0beb8611663bb519e139d9df747edfc966207ff204370ba6b97153110ee0eaa19aae4514c9ba781c4f7b6723bd6a9f0c5ff81fa26d04c33b3790348bde7259d9d6a6b15ddf11d2c332d1e07dc1ab88765d02c81c37a93117a0adacca2294b1477f6b7e52f05b74eec09c9096f58b9f8b128cc5fcf07d0017062b5436cd31750145ddc4b9d39382b6ca37e896143401a1aa0f09d3f9742781855539cae4ee25", + "031267f53db2d7ab9a14afe88aba5af1247d84cde7fc07d7d0370eaec93c8a1fa9cee4aa08312042fb0b5cb8de50b8e9b2a66904dc2091a8940c2f30a1cebd88ada1cba625d18be3d8a3743f4f1e21484c1b8c74878152a3f2af8cd53ebdc8ad5a262144b415701335d69c25f030d190149d0b3914b1c95d80e335c8b8d3edfda4543e744ed9370d979407774de7bef1f28ee5879650e2fdfb273f158939cc44621968d6fdcb4b9244571dd3dbb3ec8a87cd2b9bd7c85c0d5237904a383a71629992ff271d67c4229c5ca3961a0cd1c3f97207beed87db3c681818fad074fbd51ed2855376c4bfaf17338560bf4334163740763750735ebb70d8cb37eb6a7c76b8fcdeb0238f898fde7f2222eb9b1f82c267", + "05e0f50678fc046bdc798ddbdf7bbf6e5765ed1d1ec4ec35ea1e4b466d7f0d613bb757a7d37ecd6f91c80dc10ac46e94e0eb7fd5c969c5b3cf1f94be0f331a7fdaf02c827f53d71c4e9d86f3d3866e7b1ecf3cbc5b1cba8f5711fc774613f09752226e4a2974a1cbd636f76ec847b8d9782cb8334329bd4d9d554b02570501efd81ba60b34742c563a6c6aa242e5d17989318f954d3ed3016305e61041ed25c86218c138a74c0604545cc2c76ad91c0ed67f808441b67a0b5b833eeb7471eaad935f23a9064028c0da3cc84bcaafa1ecc2bb1505da6f0904a2c1a768cee15bfb71727dd59fba" + }, + { /* i=252 cDividendBits=3567 cDivisorBits=489 */ + "2a7dcc7e62ff5988f26f179186395ad3d3bd4556442ea39b874337e0426efb5052f6ae22ac277369595057b849c4bb965e2ae955448b63e57760068544c66e85ba29011d627c5ed17afc649b14a4a26e20f4def2c5cf7814091d52175233435356a459bf5351013dea619c3d7cff6db5e06bd88249158ba3d4ad94d3336a36750dc694800d9276872934d2bb8655cee3f9229ab39d0759aedcf26e82b23aca48fc26b0ed03d36a46639e1115cebdcd60e592c1ca9eaa941ca47c0e6aa82f562397d61a28b8f22e37dd14f05418e954f54943f411bd66a03ad123faf13fc5cf9e7955670bfbce1c5f80d5f6de48ce363f0fa7edc870e5ee8840db28ec85ee9dcd4725e0aa7ea00326d34fd46257bdc9cf7c9e6837ff87f195a8cf2cc9976517e98aeb1430d3fe995a5804b7eb757d388d44b7a54813292b6e8917902e7054b05dae3d7184220401b76fe285c144ca37a24c1cbff618f2115a0e5e75a39195f866357c129365961697881c1033d4193fa80e004da2822259e7132ae6395ab7b95aeacec129bd24aca53e56381662ac4f6cf5255913a5b06b19aaf731acfdfa0a46dd15d58c6a0bab86070aeb6c4b47beb0d836734c8663da246612d877ef56", + "3e34382b9522ece0b693c2f311f45694fb5f557af71aec7c04860ab73009bebbf714ff937aae7b0b8cf7137bda31514f1fcaffcf8429dd28c3cb803002", + "aedf7edec89318dedcb51ae596c34f682699028f145445dfd69ca952216b188d367cabd3639220a504edf935763c2cbfe51bd18d4f4c2a9b82c3aa17d1df64bd11fbf96974105a3804956879b8f6c2b5dff3db37b102e00b23b6c522066e8a627f56c17861c5705ee25449de2e579149d6ad0ca61fe70851c048f8b2e3898b0999c24ff821eedb2fbd3545b8495f05ff2a3eec28988af2f33d70bf4da939fbecc99cc02a3c045f6c3b2097b29ac505f2d1e8fd8c733eb2538062c0c05e78d2bfd3d49d768e3f2f752e90a10db5a840fb957894e5cf5aef33de5edf03cbe8ff01a5d84d7244bf533c03be1d3d72d820bf791fdf523cbc41dd8b5964269f9b56bd6a4ad542bb1fffde3561b303d1abf2d762baba83036471a79ffd5a9e5ab58266426626587a7e98a6857ac8b7057634f19a455948355697498ddd8a3001381bb35266d87ff2042c46426ac7884d770fe4ee357cdedad95a55a1169bf47da9c3573f8ee88d6ffdca80f612f3c7694b827f07eb86af93255784bda6657b38f77e7660", + "2d4a66d2eb51bf19b1c7ba2c6cd25146cc9f1371863386c8c60d7016b80f1ca797c0c55d4120039c574dc1b569b98b4bbf5b08ec8fe4ce8effe3490296" + }, + { /* i=253 cDividendBits=344 cDivisorBits=195 */ + "840a8e062e7ad84a06e6d3f22a2bdadce83f2dcf197c56952257e900a9e3bf221cb132117fdee7733eb2ad", + "064a23cb35b30aed8a2e7762ad8690581921994a783d5fbb64", + "14fe59745ea7cf38d2c77bf4687767c5c9c54c", + "01b9dab464ede0a229744227b5778c0dc37fcc7f607a1b1cfd" + }, + { /* i=254 cDividendBits=1217 cDivisorBits=883 */ + "010562f58df5cb9cf7ec29893c92632d8cb8833a3730b8ef4db64b20f49b87b9e43ef80a144ecdf050075eca6151e5aee17178573e8edb6fcb313a4132a45c48d7a6e903025da41149a82fd56e62ec00ef035fda120f111bff5bf9ec85bfe09f8ef777272b03ef66df96bc79d6e0fe3422afc7b3e9251cde601ea9a19e70a74019c6a3691c9cade4ac354a457321def7243cad027219550d33", + "0271e653c2ac2e8904d2a0557aeb2b079861b7142eb906bc84b857a39552b32e94e6ea99fea42307d50b80749bec62944d776ed68e524bafb1fa5d47a13a39c0279213bd9b44f2a4e08fc7c440b051c16864f2d86319eee9e0754256b7ae85caebd0eb7e194bf9b17a57f21bd39881", + "6ae8f7eadc58bef0acf3f286df1206d270544bd9e9f6b860e03e384d3668236c802ea23c554f84cb48e4", + "b32efcb32a94c50b850441701d2bf060bd8cda2173feae0858169ff87f87149a8abc81d724e6ff5b7cafac15b6afa7d3065a884564128e5d6725a25917116aa88f2f59e11f1f2e62a1b86cd605b34d008aab38ee9616af87889dd2c9bd75a50ddfc3bb75673ff77a86c25bb1f24f" + }, + { /* i=255 cDividendBits=3337 cDivisorBits=1614 */ + "78b4b9b6c64e61113c14f25774f61ea143a0fa6094252093d8374e36c865789fec447326809b91e56bd5e47e748159c0a256aec3a6ebeb73a108284b3ea8f6efafaccaf3e1c8defc7cf94839c10744dfa4b747f0ea11536924da17da89978c816bbeea719e2e6f0dd34859b6ec8f6e5bdceb157c49eb486d08942a8adf359dc2857437ff1798c345b77173073b313a5b2f4b351286c95ccbdc4d3c8e3362727d661ce312f6401a2eb9fa51dd764b2a3d6b2eadefdaf81c6f86c77c6cb080df4aac96ba0b1b46d70a6a9d1b718ec59e9984ca7937748e72c008b74244ebd929b794f29d02966aa861248de358e9259ee7534c3dea12fbe282fce29b3c93e0542cc30e8bcc9ad504b4ad71b50d29541da06ab6e37408dc9967c8bce8723cb0d0cd5d92293c83c6277218b5ee8625a29286bd9f2b7b32750d26872c1e06f590bf8415bf21978ce38c4603e1021063183634373f3e83673fae6a78ca22ede471a3e85ba1a320e741e78d42d83ee62a9b53f29f97a052aaec4baec044c577aa3f0a7005b12c4ed5289b4554e4c416752be8218d52ee2ab1f175fdfc54814a22a070d0ab", + "3666a5dadcab516cb149cc2435e55e041018abd91b8737b9a19034b600b2f338e5606a04016b03d9d5423e70f452da16c968905b25a7b994760e7de7d45105856a0be68baf02037ea619bd8af9cf57b2e8ec58ee6ec18f72a758ba19869001600e8ea7d612d5dbccec81de7f4e8eabb3640dbf30c4baaaa1e113791007ef3c0805c7dd66c6b3fa2fbb2c94318c5db8492024ebf73ae5a643dc2d7440c8a081990a2d36bc63c23e5aadce61131f1aa465a05a8037a39ef750e32790a9a720ebfe69499d2417e142aa6224", + "0238049725d1efc43bf9f0369fe28a96c1c4f9e72001f2afa3e6ed6857734d95d4ae4ab9cf7827c1056a11f2ed93381a4379626cd7d59a997a4d8a014c12503c23d90441e5ec84b36126b5fd1ee715f6cf21d22abb332022ce6f65610923537024c06bc15604948688ac01b224f65f1f33d1b94aa30eceffa716431c9d727b9c17506dd7544ff6772d3dba1159e522d93fe86c53082b42f60961be933bbad8359a509bac5816ed331142851f83f92aaefa67087e56039e825e4925bf9d60ce96745ef4fdcca72f5cb5c72125285137987e533f092dda28e0", + "1a079fd3b896f3d1762d88391b8f03ced77d9d2ab82359813f22b6c3cbfaa7ad26323b6a5fd8184f1f09b5bcafcac3a286ce42667484b469490cd8d7b4a94b8ea69e41277957125444c6208d72e9807760001da63d89e2f58724084939996246d38cca9ece1a725f0209ed2d2a9f4d040c8b2727467b1d35e09bceb06f55cd57f5d30cf51b927bc1b1736e15336db45b15c01cb0291870f23b61d9c3e3c584683c6bc1424b3d0c9aaedff0e07195c869869209ba857ec6ce1f65b44674a0367572d772d62b01c55d512b" + }, + { /* i=256 cDividendBits=3039 cDivisorBits=51 */ + "5247f97a1a2eb7cb4ea662bb4539fba69996e7c692c3c0b709b9f5733475f53793b1fffa4d897d103e86c96dd56c9e8a56bb05785ea401e6860ad3cfb0c80b23c190efe3c6064ab5136186fa1e9a901ec8fb8d0f8a5de4821cd7d896e10374d1598bf7e845109e4ee222105a24aa483f7dedb1c0d37af6ed05aea46df811777c674b313dbe05f7adb507d7ea394b5c7f70a57bc3fdc3f23df123354f3b9248a5c0747f8609a478aac8e7856a042f63f64fc786db2e46766a55894ba5b92c94de29106be3edbcb730135e9c44d3f5037f70a7345ea21ba7b34408ffa40b4e43b4bec72722bf4013a87a16ed1aab08218c8bfcefce6c125e3e9066e2ab5f23b16aeab02d66b22c3e3ee4737d5c4b02f95ffc58ef7c32ca0eeb6d76c55546fa71cd065902e5a079ee4e9c3094614c9fc23dd95db213fb56397d9768da16ba76b0b7b49684467614327f2e151b7ffd9337ac90fc72c25a3db0917b6aab7fe261acffdc0939fa039087890ad5c3d68f66d3c23a03e34178306b5e3e1a07e4", + "07f90b117dd640", + "0a51f8a18a3b253c37895262915edc33a8dc429cf616903ea0fc5ef6c2ed837646261688d1e306cc7f48448e861346d8e65c4080af794120056dae036a5c787b1059d99f1a84f87eb5b100cfa7e7634d6fdbb710ebd91198e19cc8d78bdbb375323c8df5f058fcb130c71927da3ec2033d10f2044c85ee5ec0735822f6b25b4b3f359323c80bfc7d63b2797517803511cd2e594f7d47d331b04416d1419af5c291de2e4be1cd5158da5598d66d08fe4da6df2b53fa785f8692a8b92210478f21af1ab3a14d04c0914364f25fbb1d7af27b161ed160ecd80ef355e5de87027bf793a7b2fc389bb50eb0fbd058ceae94bd0fa640a3062d622be2838d600b6c24e1c3b0cb083eb66481775de3793ecd6e3202dae7caafd7013287a8ddb69802709f02a65b5593f2a67c442367f54d5f6b8d3da7d43b28c08f256888d21e4af6e3568e7c1d28098aa9f33cea2ea54c8c80da6e84aa1c07455a50b63f8a668f85028544ced8e08ef2c34979bbb85d4144aa91cd141e14d80f", + "076305cdf47a24" + }, + { /* i=257 cDividendBits=2996 cDivisorBits=1170 */ + "0476e17002f9040c526155e0f3a519456fc9ae2ccc4a84887f3d8a8590baee4b596119f2182172cc7c91f717e61afd1b5aff2be54cc12355a02514d2f3c941c0d368a183f910350fd651367e43a74fffb75c92f7fafdc4c999bb326e0822d4cdbe7725f1d7a3b60afd4e5106902d48891b2776b77f88e677b32435d91e07551eb326a86cd93f79a11239876c36561025fda50dd76c87a486c4a5761da4ed68d32312d0294435e2ce146fe8c74584a3026b6bda5f12e7fbc7a7ac63241c1fba4ea73da4b4c64ce1d2a36ed9b6013cc789a1ffcdcf5c08671da7eee056cad25088347b2a770bb96ce7688d6a404dff52673a1b9b6f822bab03e161dca13782ce09dd439a0cce1e75276dcd3e4343b61b2deaec621ee0bd9bb98bb2b4377dec92fcca86eed0e8d7528fd306a4aac7140848f75a039f5721b02d421ffa10b848b481e794ade884eeb12fdfb846e839c9504913ee90b09090143f0665ad77a58ace4611534512d4cf5eb202a32802c34aa44e1b65aea4d9c1c0", + "a21dfe8ea3883d6d4ce3cd465d33abac16c8b6108c75e28c4564713f0cee38fdd93a188657b384a716f5bec7e2617d5558b7e46eba2abf0a34264e2df6946474d43ab6c22441eb10b5bb581d117b9806d2e0f1ac92320d8b1edf346a4d54735a23bb8c5103f77360220ca87f2bb6610246021f13b87cd7d87596c825cf120ab8d01a6f65b6ad362808544ede762ec01ac9bc", + "070cba724e2cfe20a488af00186c42fb144fa6dc0e16c52cb162f3b47858b40dd9118ddfc182a00532ec1fab070ecac448ef2053d0ceba8be368ffb9f608ea80a11751a04ac467c8fa7dac0e186565326f3393191965ea12481c55c877b2c58aecafe11270aad582a732a46c69d6ee594365b7489e01349b408bf294511f0fe3703f78f8abbf941eb3549d1ee8914ca95c460ec91068b212f672efcf0c9ab6a0470fd0e0a3c4f00e5a39b367a70ad57ab4eb64244d00a5f9452668b87bd278ed2d3c5278819868abfd57d1483afc5b25daf317ad5966b59855cd7f3a21c131d176b3870b67", + "7f9c0079f9d1d6dba4ee5afaaea3ea68fc1253a8c4ba0cf098a1582ec28b31b6bc65fe9977bc0332c5d6951a86b8f14f04cf70476f7332a07b93d80d3452cd7bcd08cb46fdd047a9703be91e447fa4f95a56ab24685b66cc7dceba063927c104c32d1b7647c66bb8d09911e69aad1d3cb999232dcd13a9ef2fbfc63394df0880cc95651a7a77dc76f88c3c8454c75d43831c" + }, + { /* i=258 cDividendBits=3243 cDivisorBits=396 */ + "0753ecf311e5ba9bd4c78d5de4066b10f3da786614122a58c05898e868c6a6be54ee6d9a482330d4e73d3466b90cfa0352194f12b16cd6709c67bfcbf0074a62b247cec48685719cb30af8239451597fa6e902d5201ad1a51985d99c1b217f964ec78dcab1eaadd92cb31bcd08c19542d6f7a3c3907e0da29718750969e97d1e0530ba6052890a0ce09f3222ae412f4eacda32fa15b4f894ee754b60e0f0490af2811e5c1c6d5f7b3d998a7ce2b3c04d4e856ad48b4579c146bda289768268ca8853967f7cfca490c02c92bd1969dd8cd17ee5d2de27ef9af47543263ca816bdfef415e8d8442ee8a16a725bd4fe1d11a5e9097d4ccc5336eb96bf59d328f9dc382dd9b718aa81b034e24b06211901be8a1e6551d9816cb3477aea684365d065e49b7c4e2f62b4dd9d0d929d6d3fab78d638e75da2fedc8beb70c7b9d7f38a829c22f9e213e881ba04213aca4d8418d8f78f8766b756ef78911b2f9c65eb41d0b4d8e3adc3b3e8473432c8aba9233f886e80715f55f84cb4d93c26e846d1b1cb8e1b099034ccf5bfea688eda0882cbb05f79b1489c36", + "0ffaee3f7ceea8b5903f460e16142b4023a5b5b8c3d256deccf8fb10037dce307d7fc2780ef8ad26a9a82e54147b3b84079a", + "756400b007c35fbbd624238bf95042e2005d6a4a5054792d395564cadad03a15ac39485c448419dfee8c23b4e4e1cd686a38ece9c2bcc9367c1c90cf31735a62a55df5e87a89db382cbbc0e36cd7453e817057d32988bcaa0d79019dbe60f35b65c1e38c8b1149a86d34b319f0cb725996817e14622520ee243bf57fa1d922a8abb23484da47125e286a343513f2460af3fab3f4dd815abae2433d82b3ef801d87c3213475ffef9bfe180c42bd760067b6a1299a92b517ede181c03da791bcc1d8a7776b19b7a95e5bee8b4a0cd3f10c748b4ca5dce488b9b8d030bfa056fca373dbd09b5efaa7a2244d8fd15d93c1abe6d92348e7a8973668b67fb418a349ba4106242db5ae0d985e46b7ec2fc134280333b271552479b807f631f286b92854df5017b5be4e9a05b4c80e43f21d7ceed952668137f3bb572ae98cbc6598f94928192c166e50f3e809a7c61eb4160e9721f15fb578a49a59386e83735ac6ebc50634c91a", + "c02f5ed2943e41bf384b1c91e4ac8a2d774156e024d559e51bd0ccaf86c32028003a05bc71f65bd21001f422b9d49fec92" + }, + { /* i=259 cDividendBits=880 cDivisorBits=2 */ + "2669ac70d8d42a8db206403ff4f413870c2d384fa8c633c4f7efa142b3e1056cc81f723ae8d7bd94558c5b327347a9eb93b66090a0a09e08a2a64dbdb395b84ae450680189eabc0331af1c6ab556cd6fdbadcedea40c2a0a47d65c59565f4dc4f5cf0f99ec20ad316209082751e2", + "01", + "2669ac70d8d42a8db206403ff4f413870c2d384fa8c633c4f7efa142b3e1056cc81f723ae8d7bd94558c5b327347a9eb93b66090a0a09e08a2a64dbdb395b84ae450680189eabc0331af1c6ab556cd6fdbadcedea40c2a0a47d65c59565f4dc4f5cf0f99ec20ad316209082751e2", + "00" + }, + { /* i=260 cDividendBits=712 cDivisorBits=257 */ + "95fe673f8b3d3c5af3ebf61b3828acb9592bfe2b1700c967347086e3b5438a4c166f625093c52349f662ca5ced5cc931e7fffb55d5a4aec49b465321292316d2e1efa33ccb176765f2f6a666d68e03c62a886bb40bb8d9e1dd", + "16d1d23372187b86543b671cf068ed7ef41cc09583d06f255f41651dd9b2515f", + "0692b165fb745a0415dbd056b875c861eb26a057e321ebac217e2f352d77b67fdabdd3f7b46b89b1b1ca6ca3caa6ac595b6bb2d02ddeb98ccee7", + "0adc5f49bd408be214f68426798cb37cec95b0d397a27aa2ca46433aa4840324" + }, + { /* i=261 cDividendBits=1500 cDivisorBits=945 */ + "038b95660289b8a41ca7974da286f7782f5a1ea0aafd20ed860e335a6c8c3b7dc10960cd922579870691eef0ddc740544bb3d4ae07d16c19d737f31c60dc5567657bd1d63e93828ef3ed009657e090adf7074c44b89b0de4bba816dc14f1e551aeb47eb4883ed61b1081f988fe877ce843f0f0aa918a605dcbd93cd11a9c3b1833ea3ae4beb3e6a5e56384df51ff48529db88b5329e5e99fdb8d2382900f37459cbf643ea5bced81fbbd62f5b7d584d39c7d50fe0cd23d25aea4d319", + "02e3a30e628f332bfe755e3495cb960a6a6e0e0db22817b739d5e29573781bad904578b8576cb72eef3c187fb000ce183a7a1647a4e763bf0c2fe5bf9e6dec154dc30d61b35f8a752b5a47179748d41df64678dbae96e7646624ab460292e18cb9af58fbbd0a45ff5d49903809aab157a7bb2823b8f4", + "013a2104f736478220a5fa27acc16f4a5a7506b1a09c9d7acb6d17d950a9df11f2e893827f0dee1ce60c80f91c7f6f4bc4f53e2932ad91ea21692116d2ce2477a74a0121d31b70", + "023ce891de928b7b521c7a3ba295e7f07f8048da7a61a10379ec34e6b2c52fb8c29e6026371ac05af666d3fc768ddd16b9bb13276841f0599d8727fe869516614cd45aae73295f475f5e68598be22103075821f3eae4954d1c356b895939d4434df3ab79a512870eefa61bd1b7d149932ccb75662c59" + }, + { /* i=262 cDividendBits=2538 cDivisorBits=544 */ + "038376f02076c3c1adb1d1d910447d2c6cd688c6129b7095f46a227b629dd9bf4c40ab71926c21bbb0a585f065df5c0ef83868d557474dc915d5173089825da437f53a48ff8f57c46eb05dc9cbb3c0e6c8bd333fa49f4a5da700648b729229be11aefeb9b03a7b2782a6c5bdf28ab0f6e6eea9d490a4cd64e26678c0692abad3a67be3d6d1fcf789c4b362b0270d914577483dbcd584b2fa75bd049acbc3318c1f04b016a8c024e49ba2865ed55d82ce5d18f3ad009b53be6d85b4c2899a53ace6ec262354114b2ec2b11505bdefb2f38fd1952bd5818007f6cbcf8cb0a07773cb6f5bd021d6d6610e79930e479f540578508bc3b5ff5de0ca5856e4baca495f2324ec88704ee6dee9d7a84cd1fc533f4ee93ac2fa9d8b4ccb4302abd04d2d0b0c28272db75c333921d9ee6a95e16120d34796284f63de7e31d11e2f4ae3", + "651c6bd1edd997b970bac89139b631d1d0e62b904d7bfc87a8cc74bfecb397c1c29fc1d077a76a79557062defae90ad35de6402fc92e565eaf4711a8f0fc0fe9410547eb", + "08e553eb38327fa28856a06c9f6af3e5178f9739705dca02ba20cd480d62602f7f12c6429852eeef88ae98a298b406a4e6087c85f2574bd015c138f00f5ecd9cbedb5561600a3f2cd6b6bb2bc8a6db0055874c16b2f6ad37064798275dce6313dc96ccc0d5acc7f1134386cfa88eb3d04e5817bec952fbc4b1cdbf9389ce67320b436f06c593dd926ba50e9629bf9c1a9d43da0060ae258c2770fa93984c58bae03666a634649e2a934896f954c84a8897b0c5fa9f1906a4768d7aac3da599b20478874bbeba0489324bf1ae2141b2ad4d5609c1332eef985e62adf5859b20cba3da5db122d0fd6cf84bef9f1ae2f320cb62cd88aa8d5a269e59", + "592f81a5a6578cd915ee18f09efa084195c614b99e69206039ab9461485a39cff0b8d818eb50a0fc08d706698413c77fcd3f433ecd88057548f234e8720c8717f6144030" + }, + { /* i=263 cDividendBits=307 cDivisorBits=146 */ + "0769b85dd44cc90c80a7e39997da928ca63ee19efec95c56ffe284c51d7cfe1e5b9166ff7d9a59", + "01022bf4fccea983219b45f922f958a52ebce6", + "0759c1bdfe733fb9594aa67e0af3fbd56cf7709c10", + "4881cc70cf1465898cf883ac8b77a2d5a3f9" + }, + { /* i=264 cDividendBits=3866 cDivisorBits=46 */ + "03e0c36e4b452ac86bb115532a7e78c3018033af0db261044c94a770d8048fabf55de40774f52c9184add51f7c77b886b139bc886b910288b22b7fbd5f250e43a5c9f48720ffb6e08045545bd95c7d8dee601fee4dce1707f767e6de1ca43ebdcc025caedc11653e59e7c561981185afb25086d57dda252e064743fbc6b730cb916f8ab73de60369d5e6de5815090dd39e534dab23326d81b3869891ca9397ec387746ceac197cc1fee32c43c9eddf38516c1afae02b404b367ecb57289a6ab0d36738d2edcd7dc5e135d2af82631e8998903461df1b2e6e0cfc31f02759c4cdd8a437671df4ba6bb5420f2e8b56f565e41a6557dc8816de21787aedade0cc9f0b2ceb2abe30ae8bb09918f5567fdb533d850be246b8d8015cd3301690b5ab5d6604b64e5708bb6532531e6308fab7d85ce33e8e2642834d5c5bc87e9dd272b26662a7bb1dbba9f6398727f1722b83efeaf7ca38b87affece5520bc5c6e34a818248d690dab0bf046ae1ddfeb183363d3714fa1feea879bf7abd6fb813c76f87533bdfba709685b39d31583f0ad36be2abe563df681c651e65730e3010bb5ef1886146871e5d7af35ba6205ee84eb78cdd72dc35934d36255ce3bdc12681e0aa67b06114b49746a4613b36eb05b8e7b29571ccddf44aa5026bff59deb80cf044937b284e", + "1e0e1c54fc37", + "21080b64e927780ab1cb9619e28364cd62f10719a15d095d161918c2fd1807eb6c73e32d712b7aade91f86414d01b03fcd6a8c557d288d2c1d5d57a1f4d560e9fc5edb75b0f3b4a14ef90896782f3771cc777fbda6a8990b6e41276ad65e8ad45fb51f2b2ae880a7655a980e708809046b4de8d31f92a674b4544cc062984be27acd470ba731c0603d55140430372c328ac464bedc828abb5f95210085a2b0be5b2768d870f63dcd149f57969d978704df66b20f570b17d374f6077093f9a860c3a358630eef0c7d05022d9ce08cbf75f988df7383e393895e023e9737025d6782ff74cb77d53c0bf24e15ebd8351a7e7a94d3afb4063a4ab3409e5e85d5d10a9586825129ceba8249cdedc694a5b7d2fbd3c40d7e95cd42ab4030ee8303412c4e6d93ff3d8a013175b19775797b19e1a66c50c0cd24f5e9f8fb1ff3acbd3403d5701ad8c63c8b5378b7a36c7a633d7d0087edc7d19fe9f7d8f62fa90f9ca1b99cadc5bd272d5712713c0f8abc8186ee25d1ca6fb4b5de308a6d3ac411e1da34d24b5d7938bcc5e766e1c73f0ce726707b47de4c6accff088adec39b9b49043d1c615f76590be5029da424bf81d6be880ef2000b60a4293533796811a40ac2bbfa1d14ea1cbaa794b2be1a97712139fee0f3de6e7d7a3bb3be14b2af6140", + "183ea312438e" + }, + { /* i=265 cDividendBits=3491 cDivisorBits=1195 */ + "049baf6d3e85033720345e57967dbdb076a9d25ef801d4983523b1dc2928ee1dd96e26db56f9742e1c65a699cffd3ed0e000582821afa8f71dbb97dd8cb7122688cad0c2b1a448fe59e0dfe3231059390e858b8a75210f4e72457f9be2ce030be7a4522a0d438507e2e9ffdb655362911d85861faabdf3c1437e5e9bc2dd894037a51f27d61b828390ceed0444a3c009816b74772ad37f87840c7922a203bb855fd08ccf56e606202d243d1cd4a493a108b70dc5683e7887997d8246591bcb6fcc0221b30733c9ab939b0fac7b169b4b148081b3843e2703906f305b609cf889899ba66ac2d81302b6da286a09d9de3b0d07d1a385d4230635bd505e0c9e578770b83ad92f323d87f215bd53220d65b2cdebce2cf1e903d4cbadca66e005955bf3e6363a63ee7ebcc4567d5e6853aff3eb2cfc10850a595e3ac363610b8dfcf92d69b0e68b3dc1f7b872bd90a0162eb7470b1d8c7ae67701baed777105073a370ec9ba8a3b6e994162fc1107583478726f297bc8653135fe24a6df3796d0c9ec18ee8ab111c2ecb8bef4a4cfd41156c4a7d622346075f9410f488b6f8ddb5f4792d0664827304ff6af5036ec0cf96bcc931002ce72", + "01d0a1cf4be470bab6facfe0553e4fe2076b1ba242ef476cb0dff3e475dfd7ea136a62b84f6715942b0419a65b374bc6038de1dd1259f6fbbd7bd4234980989978efc9eec5f3ff9dd0dfa54c43e390b7a18ae5287eabc26c79414d3410a48a001fee3c75c521f490364ebe58e7df572d25a0cebf9fe1cac2b546b1a855d3678bff5b9306dc58fe1eaade008243ac1d7de034ef364574", + "0289f9b573c0bc7ca41d1199a06d861ef9d4a3448e4b28e910991a6b2c9eeeccf812578d889b0fdd2d1f2a58a880d6ba4c4bb3e55de4cb44d563d6385d3e2a40bb397d6d14b1566a999b74a314b8cfb69f53cdb11ba49be2ff5eec7ba4088027bfda42e9e6bf747d988564ad7181c7f9f7fc653b4152d8bb06bbc32fd6b1e9bbba222a703d25c9c0211323be03ef44e1b85a7b5f2fe4e9e27b67ed0084d384a293dacdac4725cae3008d7d158ec06ed4fe534aaf1c20739933c68f654292a453581d5116548aaa3d98539427dca83c31aa750db0a029804f1664492f72e13fd67a844d1ac3a88fe17ed5d6346635400376e0ca173536bbe82a702e24ec1911433c077acd857ad19d58797b205c31a76debc861537982c82d197ec7f37956e020", + "192d97307de7333d83d5b45ab66c8e22fb1bf118beb3cc67dec3bf030df15b23022d81416a42f0dc579253db066e2229905086e5ef0fe4b06228cf1c1f397ec531b095b76f90038d54eb032d8f5a2026ec9f7a3ffe6ecc4546e8bdd9a671fe0731f4563cbfdce39e1116538575d341537e4f47fef3370e37271f406bb64e8e711bb10bbe3a2288696846119e640b0f587a837c9ff2" + }, + { /* i=266 cDividendBits=1906 cDivisorBits=1060 */ + "c0a053669327ee5fc7313c291e2355ada06a4dde7a007d439e7523e5258e4df61f9762a3426bc362f9112c81cfa4ce2d74aed8157c98e7bce6af110c2d254fee2777d217adc4bc1363362126b166e20f1d585281d074cd52e6bb6faba3ab6224932b2ae988d29bd036f50c29d637169c5b32af81866fed1c25b4e0cffd5f35322dc1e85dd555bc258f83d827dc8ed3f51873cbf777f5671fccc93c3a4c3343d0189be4bf6a9251263f67d543123608890fe91c1d68be195b090fe4c7f6e2c99b2d50e16029d3ec157287e88c6b4b5f28b18b25323ab258a17766f27640117c7f6e3aca9055d24a045f8af69ce387", + "0f440ce08e21c5c1d73f35400afc69668f5f801a6bc36bf11550a3d005d6a0f21f5c4b2513a2c65870902779a06bb893ad6e671640f46400d7fb70e97de412f88798c97fda7c09ee43919e1bff6abc22c02875416ae06b9de909e69934b2c7af13f7b1b27a6d67ad9e10b477f209d162139418967441c48cb709b264281d13c47f7c9f80d0", + "0c9e3e6c190682efe5af40b9d93f4bbdad010c140c9f1c7e79ea5b54ba603a77bdb649481a71a1e684ceb297c6b85fb5073c32d40bdd002cb87e2001400e0b87f0304e3e4faf189dd5b706b596e83a66756b953f35a727525a0f121cefc2f96539ce840df3b333ca2bec", + "0cf1527e66cde433cc7d0b03a50fe4410ee937f522222c40584e13ce2e061ea55fba57dafd2c51dc8e97133034f9fa60200ce6323d9a7a177765b76eac6906e62a094e42b0444956d9f4b13efeacc609b785015780ce3e0fd0051156f92b4d53072b41e686ca41b5deaae6b32e5c20e165020ab082126b60ff20ac6fe26201322034cf33c7" + }, + { /* i=267 cDividendBits=178 cDivisorBits=94 */ + "d25e67f6b71455f7d570f2423934e260d0e3dce4d763", + "0d6533038027565ed09c23c3", + "0fb4648ca1f3c8a355aeab", + "0c3c07b12d85f5cf5b8b6a22" + }, + { /* i=268 cDividendBits=1746 cDivisorBits=402 */ + "0156ac43b94461b7b980cde8b1c6b660a014fa13cf23c26bf5ba7e398adfe55d891bbb85c0abbade960bca563d8e8349a74a114e00ce59b46daf25f265be563f2d0ee9014e29cda13de5d58a27635252ba4a8f29d908a670d93a9c2f0534171fdff1079513ef83a497844f85c33a410ed04330087e82b1d980bda811b91555c2f3ea434fa77a7ef9f093f3f75254673152a240ddc68cffb7fc50cd6398afeec5dc4442e2874838398d8349be8aeab65fd54c2d771bfbe625fb4b2e6ec97a817424da0a2280291f7d9a0a3d66d5324548a281eeb3c7a3d2ce2cd698", + "02a75b9223471a94779df39e9f95a74177d411ba9278a267251170ec345a39852b47463bc8d138aa04f5d3d6ad5476d6531e6e", + "8120d464c2933e066d5f7ee6268cc37bf2ec88135ba0e32d80226dc5be535f5578908831d7a3b26d16f27d5154056c4bc856bab4668db3754fef362fb59c1619b557b7dfc73fceb8753146f071e15b603698a3c77a4d2e2096805d242c35aad0e3e2423ec78fa306a7c46f131008acd4aefec02d984a73b2057e44703d5f1ffdfe0ef5b1bdbc4e5014c77f902db52eeb5a43c38102a3db678970440cb53ba0227af4a5a04b34b33f", + "0100163d5bf8a6423d45e319c5726ec67ac95d88f2ca967a7cfb1c726d4329d94585ced23467a1c0046ffec0baf52b89196f86" + }, + { /* i=269 cDividendBits=2657 cDivisorBits=2568 */ + "01ae65a0a8a6eb3ef11f8d47b24b1b9e082a395bdfbfa5a490a40e4cca8755211765e3a390125344f02a6de0381b24dc5a79a9fa85ee79cd91be32f7395c8234746e1076a1c4d1e3e07ab46c2f1eafab57f08db9c27aa0fef650788fcc4a6c87d11fdf5a761fdf0f0d2bbe000003f87811a076652630fe901aabcf9f568fee0b46e5dfa4a54fd1ddf106907a58e69965c15751fe92bdf26efa417f123434fc0189067cd4e75e37193a8e0f1b222a5de3f916f6bfec12e50716613b8e0d5125aa475b3456ae83c9facb16ce130f5be1c87ec7818de07d883efa0120e7d31ad8193a049aea0b190c5b778a48283c181847ba677807c8c2fa64d6a50cc9b64a0b04240e6a3c02ede7146089a60b9c61773715f3212ea27fbd9cfd361daad3f698fc4dcc059e996f9d5942f31f8661dd69985c30fad3b105ff1436f99432c4e86dde205ec0985d054c018cb5b97c0e", + "0a5528d770e096b3a02112ed8556e12403322f3c25d23bb64fd4f528118cbe5e3b91c937f32b90cd021c272780ea9d41fecb9a828545d0f68a3408ca30afe1351c1b42e191d18773d2607c62b6b6b344438128a0686fac5b191badfa6f6bdf495d36477de9cf89c42cf37fa337ee18c25aa6c0107ee94865988f6a3bf3bb38f4681d2bdf904b0a6d128476bcc3bbf42c3acf9d2e0003b2a336a74bffd3ee78fde55f4d0f72b126b0be5922e8df41b84f17f4d0f9ec5b1b4171c394b6d07f26acd7b9a3fdbd45bf062e4366b829f4b900f9039bed559bc8648425eef8c954c814068398bad7cd6d31317b5fa9d85beb949b44c9706c50720ca2eed02974a6054550e579c7bec93d007e4f592db728d1b4d97dd42e89be30c0aa50bef9469b51328ea32ad15b96d0fec8cc84b399eeca4796c5245cd637a4d0962a23ced3ba45c905", + "29a77050a25465ad6d02692c", + "09be4eaec361d9700ea75c9573f77ddfc13b5dff2b3053066a431932099c48222f06ba24ce1b09450ba360890dfff2f3e273c288f8877ecc1db539fe6969108bc0c17d758bbbdd00a77fb2353952ef25357b38150d9f54a593bc7ce7fa53316c550a98e99e6102e5fede3b5a29020050ab6e9ac11c154b1f988325b0d26d5703f78bd3ceb36f18ed1cb99430df77243af0367e8c35a8a92e94ea7ef362c5fc48f3ffc39f010a08b7f27eb0aa28e5f8550a51eb91fcd7d9d387b0fdc93e2cfe1b0ef4d9ef1cb61d4cb7530f9abeeee3d9f856d1bd66e8c7fcfb9496efe7ef2e4081467c584a7ed9b3c47b0f72102f789f2fcfb208c4afd0a2bf74b883945589f5401377d15a88c0b63313cfc28542c20545d55f64c3d1608b87681d5537144b54b4cc7bc211304b5aec09d9183301291e8b697ecb458297fcafca3ca13e5f3de232" + }, + { /* i=270 cDividendBits=1208 cDivisorBits=874 */ + "e5b6bf80fab767553bdd8f8b8245ff7fffffcd87b3a0e0b2934ed810443c2e5e6428f37c23c9783e3cbc5d5889056fda63726161b6137fa0c4dd0f61ad8fdc10ff5ee9b8518c664e63e010ff954b1985273afc18cc07757c50538613a908e26a83db4e654c9c5138ce1a0ffad2ab33b139f15c4c8c404447dc66e9b8f4341422e3d9149ce854a60866fb9388c01746d6e7a606c3442b05", + "037bdda16f5e0bb34955f104ca3d1a1ba9fa39053801846a618b4942faeb824863a910ecfe61dddcf09db583ac758a7f88d96b3169c5fcec253d8d1c741f3ab00923a21162ab301c5e907fe53da797085638587bc8ffd161fd34914890c60102e4ba2cfcc1c5691f65709d8b1e26", + "41efd0469626378d462115a3e7ca11ccb53b1c7c8e84831a90d249786d6f1d003a9829f5076bd2ff4477", + "4ad3225c5a8202c2fdfdca36a242234d9967a07e844e1c033cfbc2665baa9f7f9747137c579846c93c0667788e158a5ffc1cb675607825ff1ce62ed8185d4547f6d8f5e59a98ac8a354d143b2ba957da37882c5545e39e4afe0179f071a9cd473b409412319e9de4a45fbd0f5b" + }, + { /* i=271 cDividendBits=2060 cDivisorBits=155 */ + "09361f06af713ea8d6134d5342da19ec16e3f5a46191b81d2e3ba6cc729684c98cf1c8e949d876dfffd2abe1b839fce975c5f2323bdd39103a3578c86852f6e3108b50a1cc4264ee824399c0f0b23a7da2e6133470c38b4f9d29af91cda670fb60a89a2cf73c0fb8302ea9ef58d174786c1f3f23a00e4952f62f87cdcfc7edabadd21a8403c9a508dfdd7ab786cb954494d0441e48916c34778c8e654a966390293e89a0ad5168e7f0c05b7af18ea9e8751c67e6a7ada80cb343744539a6ace36c6c65d2b20130c2bdf5ac7e149ac5aeafc3e656d262364b9ce40377f5f279ad8a67af11955cd5fbea2e7715d9cc6041386a41b8600876559da98d23351ac6856c77", + "073702209a0004a2f62e5f33b6d604fadfb2a677", + "0146d76ea8684bb84508a2946088ebdaf86bf17009b4834df0c5f37456dac589d049d4b48dfdf054d3c6fa79d7595f6630f30d0e6f6a6dc0a530d3bd7b308675ded090500625350de37423e565cfb4e7db17ba7e0d1a4babd02b4940933f2e2d3231c585bcedae87eb2fd59aa0bed806c25dab64e7eecbf5c70b6cd961558588e173dd83e0ec6ebc648c7e42838eacef5f911dad0c010055a086c33d8c58bf15ceafaa7ec158888cc4592d7502bb8914c619007fbda47b929c57a1e6d59423d7a58167b1bd531504a6d09438006e5a0b7838bde4ceb444b76df9e20198ec4420203b1377998a11c7dfeb18bae10d50", + "069ca7375027787601ef58b46ac2a83a07a65c47" + }, + { /* i=272 cDividendBits=413 cDivisorBits=62 */ + "16e8ca9b876fc6464abc3f6d6057985c42cfe1632e1abddc56e8a994e598eddd2ff3ee4d473793c717c453af8d1508a929ff0306", + "3eb5f8558d734d9c", + "5d856d9f0374c1b220157ba1ad8ddc1cd508fd814b13bda7907cdad6fcbc88e53dcfb2f1c196ebd3639cc1c9", + "327798fe8de4778a" + }, + { /* i=273 cDividendBits=2074 cDivisorBits=644 */ + "02a2305177fa8a21206778df97ac2ab038f84a17bbd70d14e82c414adf0f2800005c6008f7754d188d47f5e3a09d28848656224d1ecd05aa2cf69ff007e78c5ed4068b81dbbf8ef06b6e4672ab96e365e1f4a58c0275b634228e5c975918efcefc0f4672589bcf3eba9cf47f01311df7eb751fc4043ec5c430225b851f4253134a2420944b7dd1a15956ec62382ef4fb35d28c65023f9594cfefb9787d9d5d99035ad437447b2a9b6a5dbbdf794a09d9c6291f6d62af5037889bb195bf2f26f843e4653a063afa0c1f2edc1857d5e03b8c89c67dad7592f67ace3e15a6b2304872e15fec703a742ec9adfbab0868b35f384588c86123901878092ec476e02c06122d2123", + "0febac95a01a67baceab8a0646e97bf076cd812d49b7029fd5c3dc91a9f6db3db502c69fb7e261b58df10020263b87013e076831c0e645ead7c3e0254a5a23afc518385679d93c94f882df30bfb18ed80f", + "2a58d0e2e111c960c3769a52cbc73744c4806c086bbf1eb5794a5a0b427a42d009b885c1bd71da8e137fa03416141af665cb12f662d205bc72dcc68e14ae1b6b6be8b85d389ecdf67079809c3e03753b28685e4b206f38e50f5412d8811f61737642aff5a89b7f00cccd1f6d20224c2afe8905853b5aacd39c4c9d7ec03db8b6e176f14ad08df0439c065e0d1b9f3c46a235fc8db14ca4501114c8593dab17c94ed2c37255b09d6358046829de55f72e591afe", + "0f29f74bd48906d4f0945e8524e0de034ae9cb4ee69a439aee59a6c6d47e1a95f2abebb125241146f902a81e7033f73cf32bce452d11cfd1e4038d14d641e9c346e8909a378b1efd130b5c7ed6954a3c41" + }, + { /* i=274 cDividendBits=2401 cDivisorBits=2236 */ + "0401cf7c8f8df7b4dd101ed912f0a94afe3b950c15863d95c3d10c203f0ffdf98602420dd90721d024d272e732d18e5fc78285e765c7fef2264293b62b2583033cd2640da15804e71dbaee904b44f3f227331d2fe2753d7e59d2462655d70013b3fb85b1e3e954edeee820bd751870bad7b51f64d0b5799c3379bd83df49429b8f51f6f275828c347406b488ca64b03fd02a65d2efb50ce4fe732f686f5bdae946295d359ebe20ea66a1dcb068f7aca0f6d4c2591d598a05bb8cb7a63abc5a3f2ce92ffb1c0cf1eac2b80de88c5aaf00d8618c2014aebffb6f5bdfacf2248b3aaeedd89d5b1891099802406ac3eb991ebfec171c1aedc8035597a0c26bca862040bee91cb103332e7140cdf87a6205e2b6e0d64616c84c53a8c3a2229d48674dd8088e734cfd970e721142f9", + "0acfe8c47b6847d26f050be2efeaaf3d474ea16767cada7ee253af945c3023998bbaa31a544a0b0b77cb88e443c45c2c2142f0441f9b90b64ce0bbc916ade0d5af4126113f9104b538478b4e331a826a77a419bf6b2c454f8e457372cb715c81764633ec30f1d23aa2def0cc14dc2ce8c511cec43116b17610986ab0e985fafd11e4f44680c827e5576fd77b1df2b13531e85f2c35afebe363323df0d3c80b97a98d6c244bafaf8120c29670942138f2bf9babddbaa72e6422eb143cfdfee1bc578dd15664939be147c4060917ff5f40cf3fe4106424ed8c5169b4b2058a0858080634aef3a1f74256f3fd851b8a18cb232fd8d603fb4860e1b96e6f6ccab7fc1e0247c1926517318bb6e74b684b76a13c3b0fade491751c", + "5ee031a483fa81029dfb9064bcd10d4b2af8c5c0", + "0abaaa83c8b8079fe0090396c35ab72eb555f613c31b0e3ccb33c541bab5656fd44f57f21e263e857e11a55ac69acd0414e6fbc12ecc07f09173cf3e596e7f6872d29093c240b0b57c2d0d0d931c087df9b0fe4234287eae0a52dc8a69e0b208bfa6957698088a81ce6258c37c25057d293e27085175627cd198ac78786f7941a057ac61e1feb93bcd218b5ecbf103d439fce8bc67546af1ecf12dcd91f0970e53873d6d281b26923e5917449a232e8ea9303249427a9fefe40d5bc7d482d4f83a9d6e032d72b058fb73e46128f9b9b4dd4ee39c84a56f60660907a79fcc9a77ff1b71366e429f9171f9aacfa446ddcad76c389ddf281e23f507b828b9352d7b12742a5d1d38836073e6b9bdee002024703ffe6b0abae1f9" + }, + { /* i=275 cDividendBits=3608 cDivisorBits=1691 */ + "25064e157ec78f7dfe0db6eda3308ed243fd9f54f9caeffcb3d73075b412f8e774a3ff91e133faac50e4a9bec7181190b4cffef1df1ea380b4fd15b14e97aae0e982f36de3bb3e691c7b1a49681d26d80b99d981bbed4e94bc914611fab03bb566dc6c8e7e66f2ddfcb4b8cbb5123b665f888905e4016c201262d24b4bf9c6f27dd3e47e3a8a7362bbdb044ad755c4f95b4894085fa3c2a0fb2721dfd63e6a16de257681b54a648495d8098cd86ab1f384aff8b374fe7641c187a7bab858fd8793e4388d2babae853e9932f6346f2319cf3ffc96539e328ec2f4e243fa109f6c8c78daef034f7cf0f71fc65f134ce15cfdd9847d6f29142328504ea73407857408e4ca104a3d20d7e7822eef03cb285ea7fd5e6267f6aaa53c2cc6b270a1257298c7c97e8110ea1d0ba5202c5e8d6660e591724f732e45bce2f02f66e3e9e20e4b638b061e330cfb3b68c690fff787d265da82c14c2b11c6b39e4f8bfec5388cc3c25369eff7a2773277ecff075d194b75d63d0d05bbc0f99e31aa784dc056b241a7d3a66e44607996d4e2b84196abb309de4f2ba40caa9d70a8a2d07443434364f44065f41aeac4d839ac1893a3ddf046b235ae80f6b37cba405fc7ea1841125d84bb", + "067431ae919e84365237886373fb16db56067b7a1ef575b1c7ee5dafb2b32a9c27dd3c25a1d7204915b0a711fe64ffae27213f19a2ff3671c3c7ee75c10679eee038024c4d52d9b76e1f3dda1fc4400a4dde75a1fee80dea8827ce533d3d954a22b11f13aaa228b3016e4f5558fa5510c05bd28dce5daf7156e0138a2cce14714d02c0cca4d5ff881bd8006139395e3f2fd0e1080fa25adbff4f9bd0ccb1b6935e2c6626fa408f0513c242ca746ece1dbfbe0dab1ce6309263b67e1c9fc19103c8c92929cc34a8879b4e665f5b283b9d88eff5f7", + "05bc9ed9336cbe7ab76a5e0783db0483664534e37a692577dc9cfe3d6bdd380aee40618c435677ac71fbda0dbe7c51c28cdb9a7c3580743583aed2d82d1c8942ba802e2df6d3860022127a8cfc8cc3480e15b732743564ce20cf9b0840440201f12daeb06896fdfa81a1b71517d2fb8a7ad0686032d4adcb0d7c92d98baf99ebf5432b56cbf85c934b56440d9b2bfe46fcac1151883a3eeb4812b9a450b655ecb99164c27a10f77c7095a45f4320595e608ffc430f10a411cf111c182d2f24a3e9c27c5bcbf8c2cc5ab277a5276b15eb4a604dbe01a590b10c570f810911f77f046151d8d1ac64aaf4572f00f606eb4e", + "03fd70a11a94ec614b1626f6d63515fc4c6bdef784762120c95d2a2a92df495ee7856cb8d7dcfe2bc2c2cbf69daf18f4f06ae1e2c22978eebb2111d2c968e1379c58b238cfc42cd702edfb9f5b9e88bdd2e05e32e6485c0ebc01731cc59b5bf8abd26b6077a81bb4ded74a928ecf5d0381e0d841a33911315d33d1cd8acd200f4b7e12ff2d9ca9c1d9c908f21d0d66eaedcdd1459ace420da24542fb06f92fb2b9ecb5781d0eb8c2a598baf433216d1edc94dc2ff8e5b1246a96c54eed3a3d5838fe8ded5ab999d5caa6bc433a8d2c91f4acd679" + }, + { /* i=276 cDividendBits=2250 cDivisorBits=1469 */ + "03f4aacce8d404f9a3799654e37dd0701e7b924e0c9932a8ce6031ffab97c8ec1d53b83e3e5fbc4587f0a4217dd340ff0fdd07987ee4e3f856d5efe4067d2ce402f6ee4aa130248247480c8343c5a1ee586e6c183743564c84531aac4f1c981cf3e5c22ddd202d4ca78b9c0fb5b4c22ccae11d4da3bace3926f9c3fe27a7c1f7cb3138f7397bb245390d7d7aaad1286d4b6b01d7e3e801df597778066418005f11a7f7ce93b660a09815d5251d521d7c464b25b830b073eb9a7f570a5f085f05bf6ea5d1857786035d0faac25a1feaf523dcf549d885c823628739b1b4e4ae7ce5f24724e54cc93ddf9ca13d355d62cb4cb06f8cb613e0bd22fbc717a5e2b8f9db214d7076a269c2fd46bf06b0dc8847c574621107030572fda1", + "154cadf2c884e1e1cf6eea59054df30357824575d93fccd89396bdeb4f656fce407318537d24b92decf6edf5cced78dab0d95fd453c15ab91c4f03b9d8819c5857697f8990443b2abb1f9e9b25a0a405c4637b58bfd960ca91ca090d82e957ac95416c2857693a6ff9eb1f2116db1589fe0169c40b2b50ce4b28d8b0609c0d95221a4c9ab2f8257209cd2ef3a22ed016ef673bbca5511db812c9235459aa95f43260fcdf8d811451e4f6ff034be053a264f7cf0e66a1d958", + "2f8b4ae1062eb61d244ec7858c0d53c3e658164a19e1d41b1191581d73bf586c5044f5687e0d52b371a32f556d3ded6a4a6c285e759c296e9d246271bed04583a14b8932a182eae26933615051379ac1f6b11f5a12915ae74d262d699978364c56a6", + "05b3d98bf1d70a4a648be663134d516e0e68c19830d1241242aa38e05a0992c2988ffde6220fd2e253834f28854e1d8210eab50d146d91eab0ec4f554bd73d1a3fb7008f6e5db7b6b51cbabeed1801b4fe513c566a73de942cc14986187828ded0a8ad972a3f09ea943e4999a701eb396d5b8987b606f3aa25ed76c87e3525fe2fe29850088bad3cb28146c64777cc117cc80de6237f69559fc27cde6b01cc6307ad9c8223bfdf3869b04730068dcc3fb409d80d035c7e91" + }, + { /* i=277 cDividendBits=2158 cDivisorBits=1839 */ + "312728cc55e84c6bea8bb93e01bd2cf265e91733b17bfaccfe64997f1384a19ef11eb5261730ae698b99882eed8c36c43e126a5bfdd150ad07b76e556ef1ce568ffe6384a016a4e45d74a678f34bbf3ff2cd8224028b8f259e46ba8640d520a96a023e94306d3d39638400d70c6a928c79613395e6470e6b6516b8c729f2d5c8e75c11939add9400a74a4c5b0f6a1f025cdada401f687cf0ebae0966ab7066145adb3c07b5792707bf6b373617b159f28c90ce8d9edebea8b47bfe3697d7a7aeaf3006524004219a3b32ac489bf986b5dc118e3792e90fefbe3acbb1a2d5d68bc3b6147ebacc1a58ce98cbc003da72dcabe1445744dfcb01ce1fd99a73b32f6f7aeaf7d671dd7530dfe6d3bac868", + "9273832125824033d7f2e63f277b722ddc86d8d8fce98d8a445ff1b8b8e4c94c6db8dd57cc9077ec92a252fbaea1220824793f676a6afa79efdb0d5f6da0b2220cb6f71c6a02d738e2997b845e0fd34f5a02078bf26c925e65d203f16c0792d9c7a45371bcd70ca8c2fe3e3622e5152f279eb1abbdae5d7029da5f2c37ffb715452b193e4d24917866f149372f0362e98fdbb486cdd840077efb53b1e74f13f51a40e4407e4d9f53e2d10bc3a66c69a7055bc0d5b3f91ddfcca8df70be5e6ffe6e059c6215475114c3b2c0a6ae1738b891b6115edbf2cd5f3f80404268a7c5756d8db45d9b", + "55eba4b3f8a932c5483ecb647cdf9a736d14cc047ca04ba940b01fb4821cfde25533b22bc4e455b175", + "904f17708d3af852d6d008dcbdd597b0b75c0a2897329d300c5d8991ee349970fb6c0bc5bfa734ee5aada5b42142f4b1a7c1c3b96a2c933982d716246da411e658c4f1e94655295d669881b630e8226b99184460923f6e89e3c8495cd814512523b94c4685d66777bb7d2a41e38118863d21fb6e0667a05df824df4d6b46fa9ead79795a76d564bb661e955c4d4ee8381b507724a4c246a9dd50b84028e7100c222c263f3e9934d18c68b792621ec48f727bf9b806ae8f7a772e0cc16f9c6df69bbcc27dad27ac9f7c4ea07fd2301bf341374c8a264bb0d211d55e7baff19611ee3b1cd591" + }, + { /* i=278 cDividendBits=2957 cDivisorBits=146 */ + "1531b42de50f8ad9928e798f8fe87cab484354e81903233b0d5cbb3b67c3fc0c97ae10725e4e2c9bb429af66ec08d28d572967722f36f09de0c954a57eac3a3592078bf737e9dda8d0cad6c36d5d0a7cc3c1616a0f4d8ebf091f19f1551c61f9fab186d130c4598c5c99c8576568e8bb68065d51a94e1b1f5bca178c710eec72131176264c5fe75bccadda6b067d3b6a5bee97e08592f8a95e73af61520b1bd66e9699993505a9ed7319707b2d312a0ae19971092bc990c6704a70bef72f389ae86daab411967c5c388fc84161db30e729aaf229eebd63feadcab29aed1ec50fba20900b00d8006620daa5cddd88b4376b9b61769d10ee10835897baaab203b7b445092c13de8e26a16bacd9a08a2afc2993de244504e5ed65ca9c5a9cec1e9fc730bec399b4b9956324700cbc425ef146e8f96ae1030060c695ff810b58ffb85eed9b1593d44124d4935f522694561659bd283022563c773dfa6b0f91b0c70f88f0bdf6f48477cf6e2213633d0e42a1c1eb", + "03b21763ff881234e43f4a009a46e8a7b3e105", + "05bc1ff143d05df4f990327f7f1708f83672a9a3a161a964743cf3faf0075acf794ccab24e553e5332cf93da06aa30959753f4e13e3531352a111d79c91b230fdec185ae4c95ad20c54af07b012054ae78586d2e2df225830953271c06844cd21eb055db9ebc60823c2220ee28b824ee6ada31ef14c8611264a9dbf1f7a0a70005bfe6b57dd69a1a386803d1a9bc07539f0ffa27b07bbf377ab9f7d86877bb05a5a4f700b61d834cadd5cc8582701fb8c06e57244b6b88a273d8a475c993f6d0f2ed4dedfc2a99d20e5d69f1cd73127cc0aa7e5c1dc813d03899314494ebf5d83ef828d1bf8193cb81cd74d869bcdc2de729f6a1e710cada945832048c3acc23c06985f76e7e3cf84c0cedfd7d637775c97d083545b7b71fdddc469c110d5d343b3222b52606a97302d77a44ca0c17e15cdfec4aaaab64ed2f6548ec13423e4c21381632543a03c32f649addd384ac978122c5bd81654b0931c733c1e9af1ffd", + "017af69aeb7cb834d41e0a6e53fd485e31c4fa" + }, + { /* i=279 cDividendBits=1693 cDivisorBits=1436 */ + "07208fba0834a1d70f09eee2d72697cceb133a94d58369b8014c628ace5da37b49dbe4f1a32bc7e0a166a0a223821b0d9468114af12d72ca48a3c302c1f98bc395bf74b65a0084c0ba0d75790ce6113aef2cbf85209e359aab21859c82c5f7476ec9edc19c0fd01832369ff57c072b2a50b4813fb4045b8241113e800f9c7013f703a97583952946ce5a34e4e254c4d8d1065c387e75b0c919635bd4276d5372ee93ebd28b4c3366e3568400c80d0eed1ecaece589b99c87f01798159507e393de432d4005fafdb2520c79186dbf4a0d843e3d12", + "09d2b758723f8fe6984afed6cb33f5e19ec7b85523be5c24b683691b5fa081e642c04731673d97462e8c44a0974dae1ac478c7b69e35a9cbcdb2304ea8892732647c9db0be1a53554ddb54c660a0af11f59f307c51b4447b810929ef0dd3a554189fa8304d0e7c94ef650efd4ad6a25904c40266087e4bcc11422ebc53b7b3e1eab6f5812146d503fd84b263e1cc8f15598fe46a1776827d47a089714d36a2129e84da0d70d72457912c58146cc769480ae2ac9d", + "b9bde1c4e736cdfabd0e9b382b9a4e14ed18ff7dbcb8d20962daa095d9ee737f", + "05880e665ccb354a1dc0adfeeeffa8476b0b2285aaa731a7222a8df95c68454df686de7f5a7a8924394a28dd01478b44f6e20bc256d19e16bf273427ed6329bee3ce3b89fecca3430610c51735463fdf31637272d2c3e76448839e6bc40dbb6c9361b3dd47283c740c32672554f85e7bed321f692835adb2aaf4645d9ce5f555f54777c0b8a0525703710beebe1d3a3db50c3c9c60a7c83e3e75423161c0937799fc5ef5bc13505b507f3c1ad6cfd7fdbb4a142f" + }, + { /* i=280 cDividendBits=2582 cDivisorBits=463 */ + "05d27d41b1c6624495edce0ae9da776be696fe10e2bc05091901de1f2d4909c6c73fb82da659ac535ffab12ceb3765f2940fbcfea96b4f19227533a1c858b35da3b3c67904a2a085a3b8fa366edd2f8764c72fbafba5d7c3d2d7b3c2a5c0ed7199b1a63130db3d212c0e7b09ac4f37b30c06471f36dfcc9b90a41edef6f60e57fffad8029c672bf726b326cfdc869b31f036916cb55ace065b14213648c341485e113a43a04742d4920070e8f866aa1772a586853e75d45604a706003b19fa9334543f649e013fae92e7c37d5d9ac6f67b318caf361b0e04cbc3e8b93578bb79dfc88860e4dd23afeb69a4359a58d9c2cb1f380f512669021301a59e2f61d63a2536beef3e7dcd019593c1189b2036affe6b044cfc6df5eb088fd2a9cf0290ff4d4d43129b4a8edfe3ab4e7d635c6083f4247af3483ef0662c49de0f07350a63134c6b", + "7f45078762443a41fa96d7172f38597b88e7c69054f6859f233636f1e3857dfaf739d36da16421e32cc4b052c359d7b0c70e80c174147d509476", + "0bb615d6f359d8ffe74aa797c39fd68075f29bc1eda5870a9116efafa5503fb73bf3cd48454dc156fd54c7d5e86b260cb8f05cf7bb3b99cf591c8e3daacb75ecc32da96c3af1762f65697f55294c991b6ce2a3575f6ea3f3b46a96884211b59515724775932f582c5d5d215977a17d83c49ce8a0743109330b0e8005a0e4995cb122e72eacb38b0fa60bdcc656136d04486d271bd8f316d53eb1366900d1ceea19869da7f8662739f087ddc2279a014ef0f792e258381e8644ae2fcba0de1cdc14306296f50ca868e54f7ebaac5869add511c129427ef9ef5d9e2f8f1643f9ef81954a5ee6898280d414235a9a80cf964048dbbb4748d60aac19b67395ce93e9691b93764a2049ac10", + "338ca4ba9810e9575981d9d63e48a22a0782fbd764e50462d53f6055fa49b1c39fbf72c0fa374e80a8e47e6f085f6cd075c44ff512eb54a4bd0b" + }, + { /* i=281 cDividendBits=890 cDivisorBits=629 */ + "013d08b9378d9d08e531f42ff17099f2eba6be90476c51ad22a1c391e568b667910ef6958c149c9e8e112d35b59b7d0eaaa362dc02fd335d9687897be1e4ba918df24092f36500de2a88daa1b5ee1a43ba478a0875bb673cd1260734df1508bf17f18881dc114a3efeb9bb66d926622b", + "73bb87f76afa9358f2ee18a23f149c0a3ed1752e04bc4e132e3b5aa19d83d2bf4ba569c698e4dcd865d4ae0cfa9b99f16234f5ec0b6a4dbdf49ac211bfea87cb8d8e58168fab34cf87b466da0331", + "02bd473fe8b02ca5276489da0db5927e080fe5cd2ec20c2684de07764a863e0dc963", + "1fda3957938851b0670ae8405136b7f44b035554e555e33fbb6be23eec3e6738a29437d571111bca211432967e3721fb8196f3c50aa4b94b3796319b3b25a741f8fcd441c7f06139c063ded8ad38" + }, + { /* i=282 cDividendBits=428 cDivisorBits=196 */ + "0f1d89305e93efc67c72f15a40b0dd55748a06c5e7e353631e1b426b71afd00d98d32fd36c8b7fbfb8abd5da477ec39bc8ae2b2c58e5", + "01b231880831c0de3d72bff3d9df40c1372dcd877f354523a3", + "08e9795f737ec6d70aafe6f0393b72f858d9da0a4c5f4dd762b01d3c2883", + "01487cc22752940ec425dfbf2938c5c475ff585af54a05a47c" + }, + { /* i=283 cDividendBits=2383 cDivisorBits=1562 */ + "3c5c549455994dea41ee6ce17dc8357f0b4e26474d9056f8b1250b9c42b7e3b49739c61b71c0df0f9d67ef4e4c4ca51757f3c67c997d5635a45fb17ffb35fa107c8f4a80e58484085b39b9a02b2a6e474a00b58d842cbe74edaca51100780de5fdca3c90347fa84d400d71d9b2f16ac0ab549046f88723c609e315ceff6be3af786c7d31bfcbe5751daca4ceed5c2946b1eb22306831249c2cdc75a95739b22b557b51fb8369cc133af8723f6f2dc0f9337f1761079accd9f587b1f3643ddd3e9b295cd7ae4cff7d34a2a93a0848edbaf52fbd4cd97b4775f0a5c3c3ade38bba7132c6c3051f9e68fdd3a3430cc1caf52dbc030fa33df9e599978ba1dc170db7efd2a59e3102ff5b544c3e154178befd50acbace4ee551fde784034d3d9a8a75a57469c17abe62a158d0", + "0324d2f00a678a98e82dfdaa37bd1706a0d8b2049e8a90df2b771ddbc313a62e942e1355ee4b3446269e329fb9288620dd2fe701393cbe3ac7cf6280657c3816f13610f42f6e3ee891a7fc01f5aac2bd879bb25431d5c9855398ecfab26ee4ba6192097fa60557de889b51c5c72e0814b6cae3acb62fd7b47bddfd84c54ec10472fe8261954ca9ec23c2f9ea52b48b35564eb7fe9e5e9fa0f5aa0797d03907bb9c9a74652a5b65e370ae4790cf1d179ff02cbeee7520c5f8132dd27214527f25db8c4c55", + "13331b973f036f1f808e4e668b128d10afa924928ba7a4dc51b418fd3f302467ba29c0dde1eafa43df01a9c1c32346cdefc9e994f84f34084ab1bd7719d800be806ce7bf7274cf8e7d7bf761b2ab65cef443912d726025c2a3bfb2dae6c91534b7f622ca73c759", + "0217e93cf3926b489d80689ca5962666865779daa344598e14c135a840675dc3c03671faaafea3be01719726312447e8c00dc43b4c672af7016f464144d20b9ac9644f74105ccf9f130ccbb5ba2c42b4f0ca754d4241ca41c365b91ef3963b02887fbd1e86782b1cb5465ca4f1c9533c37cba1b968c6f05b9be81b2c5a40e09675c6c6b26200d004672e97bcb22491564370dc9fe0c6e62d53488349ad45a74a038823c58fbdff3c61f5d908ae8a08fbc867fa75b14393b2050ddfd76c3fb35fa355bc43" + }, + { /* i=284 cDividendBits=2367 cDivisorBits=645 */ + "5f328825e1fab12283095cbe4d16502073ba0e101a10925ed24a92ef7806b6187d19308640dfdf84434ae8f5535960b9eb505dc55a63e9f37a30ff5ace2300545065e4090283e40a84f9e62f9ffe52b7c19be1b596198b4ca40c77ecd6a2d864d409b8292a32c2dd043786de0081fa646417b970c11abe1c72a25a722b3608e58981fe6c2addd0c4a8b62efa15d10006f0eb50d40d2f1b7f6d6fdf91273cdf506bd218b3ac8dab586d15eac3c7ec310c60122790eff755b59d58f3794734cde67e572459af9a2a12c900d2baaf7f31d5cd52cf70877920a84e8c83266ed6deb7ac999e72b4190de772a6d06f587e6a136ab3741dcf8bc1da85f6ea6d437901a1e5cdb3c3636fb60bffb5501a43ec53dbf94361dc76413158cd8d45ff59f32b771bdc40c647568040", + "1390c90994e814b5aed485ef45cea0bca978aa5f7522f1973c1f62cbf04b98671d125563a7bd1f53551663764cbfc756e22f81632d00590ef9c52af436ef31f6c740f70cd3a5a76c67cb1455ecee839753", + "04dd9529910d6359cecc39280b68872f23425ad1bc268e3f5bfcc5416ec2d022cc4fbd8cc2a9a77bd9d9aed48969cc54ab3b97bcca056ca28f6821bd2b24962ee4ed17156168f08dc25c91d477b054fb45d27c1e493b08d4d3a38d477e8589fe8435de4d0572a89764d8ed75b98bf4cc0357bef3eb374ab7f6b5dbc991f29e229a9119a031c165d26adab86ba37a42058e1fc3635f5cae916c4565f68d7b5031beff2c16717213a6330d62e1b776e21d755580ce3af1ecf7b3642da656e6d315b89225fe5fcb72acdbf727d555ae3ea8e0432eef23941066", + "033ef4f844eac38e1f888772938d86866e3a6946b840c45cb97e38d265c86fda7db014c33211877333e0b3546014a8c701fa4e389ef6d6c5e371939d56d3303dfb6ca758cf2a24898a4e0923363077052e" + }, + { /* i=285 cDividendBits=2118 cDivisorBits=1570 */ + "0f4fee59c34b7c0eb9f3bbcce859381b9cda73199a57d87e6f8af2c8a7fb173859a99d9b77a4e2f5fd2365fbee8061334a57e570ad0593df1335a44612a28ecc09229ddcb3406e4d366569abb219344d040898008466ade827b03fc0b5efd0636d92517710eb496a60701f48d7912c3e9465f7bc8e4bd3bcd041ac98c389ce3bacc1c89240c5090707c629d2935b68f332a6e7301909384253d486e8f4bd69dbc8527383dc11455b299b624b5c0fb37ca172671227e084eee994f8aad0f7e2f06a9c25b943ba3608365e932db5720caf30de36d7a7be462626e4fc469479ec872ffe5b78b578356ccbf81d77d68a8b5cd4d5b4206524baea20b79aa3d41ade95d3cab2b53a62553d48", + "01d9449745aa77b0b160ed1a27cfc684723559b7231c9d95bc494f1e0424c4eb17dfa8e60ca0bbdc736020c5449e8b330844e6ed009f6ba0c7cd07b8ba3bd31e39efab51a31f34cb51cb896ecaac762257791cc464a2919390bc9a34e7652c219bf8522d65aacdb423321de76100da218e6b33413727efa2ef38b4adcd431c4d3e0e3667a4223a9efba1280f302be6750089fa40ea24202e3a8d4813d5232381374ad639ae197a446e6833b691a6bf3dbbffa936a4a0209ace9d462e1e07e45082dfb5bfca", + "08485e4cbb690cf68ac27965e8e6cad1aefac8b6e7dcc07b6eab35291c49d189377b8cdd371d595486acd457fa8bc2296f3fa60518c8b52d8d7691c65876ab56fa4a0f8655", + "012e71c685ee8d457e87cfa145115c986eb9a217f1981d4283ccde16b0a35eea8d167e8547434892f0063a1875692b7e9e83cbbfc42dcdbf5af4bc3b4fd91f9003b297a1dda669fcfaecba038b4560bcc3a17466cafcbeff484ae6f74a18b6711038d9dd4ef9dc9f8fbb415724bba460193e4eb5b594e296e4c2edcab8f5471bb66447b26d367604bee05c19d7f845e04830bd6da5ef942e73ca7b383f25ae424df1c1065df2174bea762b8d8c8f7b318b5f3d93b612d16d3f0b9d22df5f90ac5257c2d336" + }, + { /* i=286 cDividendBits=3996 cDivisorBits=1575 */ + "01d3a891b4415e75a16577e908f1bf4bff154006745fc3de81e6852d94d55336f02efbf9c646c458d9ca2582bf14fb0f2145868331b3a823e393130085891ced82de9b61399b878a5f4d25ecdb831fbd525c8fb94f07596f7c56019efea064c99798a6b5b3bfc471940a7dfc85aeef8b1fb7f455b6f1d292fc6b018e6dcce4225dfeba4db537b7dea29a1826d28d25ac82e9bc31492728f06fa8382cc742f3523b79079d85c5c9c5da1954ac3ac907774b27e3b4fc049996ffc1a56cad195e482b0897e967100c1b4169ac32d7630b9c52be7377576c7473a48628b5e5a51d71eaa961e5e47f3a5083387fc96f7c66e6971b8b4aa46df440682af38301e9e7eaa5ada9c0df964b07c9470d3c56a3f4c9a1a1d19cad041f26ad12c1fb81c6b65feda9067b726c2a607c36a69cbe976280d385c3fbd6ec0d91930cf2cef9deae8017b0f57b32babc6c74aced0e7c6c2c15ab3f806995770486161794f47f0a94a877b5d4817a72029e1011794f9bc9baffe797ad4e76a3a59862a76d796cc1517f820e4263bd6b5c7bf9c0d808fb385c55a6a245e78ac676df71bd973445aa70408b0b9352d73dff715a84ff95955954a5455f20d79d9f922c70958b46222de0b7074a7717d0b677cc5a058f3886e1da739709b049e4cd61e8a6295a2d9dbd54ed2eafc5a245141220da4336b45c8725999fc4d81e", + "72b18b3e37da32b46797dea0919a90c40bbc3b896cda467f18eb48115c0cc1b8c23422c14a497cd28a1e74cc308d10b8d12b00d8784d2a59598bc85e04f03526b8f10c226a2fcaae0f5371f5e5af19f98e4fe64f6042bffa6e226af991d87ae7058c34d8f2f449fa2a79cdc116b8cd8cd61afb9c3e179ea5699e9d3c483f8ea5bc7f49432150870150088c63f2a627f126cd295a04957b47399686c46c13f234188c4cb2d55cde6e835d36abfe819929916b84695dcb787f0c8ceb66d1b7dad1a130d8289d", + "0413d486bee2d9c7cf0cabffae9245975d63afb5912049a1df24acda3532334eec0d9a5ad83f0eb8e9a8d0f36936f627c94eeb8d78faab1d7524df8041a012f3343a36ba2341cf17b71e8423ea8203b3b9d3e02bf1edfbb037130c1aaab2a94f72fdc437d11d7293d031ed240cdef4bbc679768790a9b812241fd7fea1fe97ee808ccc18a9295cb3e870e16c94eba1da33c3c792f2c2354f533cbf4dcaa463c6e5238824068fb38f3568a5ca10ae835832f9d7b74784dd761c6fce3ca3f669deafb1d832b30bce5b3c583d6a788a3d53c3dedd0f4f85f03f5e0b7c7889c95315ca82e953331687c419e72e8bcab7d41bb937a5d884e45be1239e0baf084f08fec4e58314bcb063755485568ec4639ac7ce318a70fa8dfd16ba44c66fc010bef9309e496e230b0559cc5f0d562c6b5f", + "08a568e5a4905249323a0eab0425484dae66ef380ba4e72b785af4525d2fc8ca0e3397efb8ae755b579dd2260ea6c597e964a9673cf5eb36b1351a8565bdd9a343244b0e0c0d55d5d2498ec52df4cc85130d27ee160b37d07910c0ab7c66d2deab8ab309c27f3c5f2a035ff2f6cabfb958998bb7d646a1c1c1be3cda30ec97f80d1f01adff5108bd57ccbfde3e9d2de6a41b994826117a7d82f6e4a75eb90920538aa290e9b7ffd02d9efbc70240ac57b2c3dbf8796a2ab06c295b3840da6fa5996d9826db" + }, + { /* i=287 cDividendBits=1622 cDivisorBits=149 */ + "0fc7d792cd9a5bb5d3081d6cafc3314ebeefa4c018f54c56c8dcb6983f670991fbe5107c11a30bd0c033f334ed05b029e2ce40df4312ab4c7361d55ba5c0b22925fc87db6b14c0248d5f20a93c0ee62a71a507d320c2d0ca642e27804bb843265fdf84006ceccb28dc2f1bdf3a684991fe1874d06b5708431ca49ed7968df58a699cdb1055b20926ca864849798938bb01932e5b5730a890386a67224a1504606df7410c51269e117cc6cea699e78b487d34b38b1bf4db77b31bf349522ec4c219f6d282adc86df673da6e", + "0ca8236caaf19b7df5b3380d0d9ff9eb0cc412", + "013f2f0b5e58965e1ab28487e3491000cb58d5f61bdcad8076f47858ffc31fd0a05ed299887b75fb9c9f8b51d635621dc6772fc6d11ab8d4601c7648fa1a0d32141bd158b49f0505f16bed8060190414df076ed7e3127a7d12d911210d8d4705674de10232ab36dd586567ce45d825c5e0a5ed0039556d873b2ecc919e2fee0ed562038ee48d8a2ffd38033a4fd405e5666cd4870c7487ccd98bcc7a251d81980fb54fe08228669e7f41c74190606b9da4b787344aac13f5ce", + "0af9b833a810cfa1be40526121847cf532d9f2" + }, + { /* i=288 cDividendBits=1256 cDivisorBits=68 */ + "b2b9c01716b3fd75dd714affc11f479d2c34e38ad26222180d46452cd07e1b76568586ca29bbf7ca068f6a0e33406704b45ddae54165699057932f3ae1c0ed4d45c7d1a634b0c8da2afe42b68dbffd698cdd787540599cf5b9763de953d67971e6ae12373eb5b7332dc2d4814f97a21086c56482af666c670f683adfdf10a3473b932605a2e565670c23c47798bbcc27150155eb2d4d96cec635b448b0", + "03510346200f00d2c3", + "35e3f9dda5e1728162a10b435b921e3ffefd0d772cd00c4d6143e9a456d199df6ac9b0f6c83f8a307888256ba367d7323948deaaf54538fefe2282c648f73961cee94d262757a2b0716e67df109b7ed54fe581bef4799989703286051805d8fabd03c9fab393a379b842e10620f3149ef1a74db451619003d00216996a7f2547556b2f5ded01c17a79e07847e47c5c3e30fd63dcb0", + "01c892afaaf79acea0" + }, + { /* i=289 cDividendBits=1000 cDivisorBits=323 */ + "d84f66ef451642dccbce01351edd4207e2f8efa8cc642f35827f624cf1dbdb570c4844373351bdfee809fa257e95303c5b6b8dbc77e2f0b4085b63edcfa579f9150513afd21a29fee2d43b2f476604ca9f9a913fe7e331068d8298e4c446a690f60ac6334a6f4aa5f287cab840a5ec0795a9225f6284f359f73530e8d6", + "a0377c32e7c9f7998a3f2b55b4a4c06e59977b27d5994431d6058073cc3c0bd2d7a453cdfdee08f5", + "0159a0c922518353e7df075e1f3b1743248e199f5f924cec583636854e41b58ef3b167c0256e320224e3c10f23080262bbdfbaddc0cc6102b52370e470f0db63530124168f7d061d22277a64bf4ca2b9563f08388a0a", + "2d997b533b395af5a243a142b110f7b15ec96be1c38309369f2d5f29b65b88ebc6b88a645b787d44" + }, + { /* i=290 cDividendBits=3039 cDivisorBits=233 */ + "26f82fe152674b6d97b878a112aa91c09ae1bc6ced7f6f45537c1179f7bea4b792dafcf2b64398681df55704a0a0e7aee2bec6bb403a9f5377293b86b4e17e94b98999e69f7e3b6b0ec1e62ea098373226583fb8274eb8123009d8ea4f127c910a26ba7649f3141859e592ff3ec2c1310c2150e6000378fd3b6a7f2459c40828d526a22df9cef094f8f6df3bc0b0436832106f16ec2471295b2c9a1e45d9e1e34184a90aade05de148b16f3694475f3932cb35d5e58ddc5987ac79a88163c040e98ad0a641744dbfe9cfcefa97e2f001da26b0feb71b17da60497e3a1900921acbc4a5c0df7a002bef839c31d0b2b81f54e17cbb223cdde0a0b6cafba3e0e257953de70b7ef51a83db8081058f00454668e4274f4af26e4302530a3f956c8169b2c9be1882913d89fd3153c574ff63232fca07bc6d9d9ce30d98b4b73427332d32467330992d273ce81eefcab4b5ed2d499c8ea692e769ab46955c2169f84b302ea8f670546118367a7ca348bdfdc72adb14935b5a83fe74baf9b156", + "920c7c36ea09d10eda3296da1b9e656638f20cd837bde143698e6ef3a9", + "444ea6a9a987e46988b1f3c8ef7189c2d5cb7376432b9f71faa78db4631fd7c9427e6de4dc7ad0c8cd8fb9c5c7285fdcdde76e07fe131bd5b4512b9d692f3e735ae7ade51dc205680a036f67e9ae379c8daa83b4b4981d345b05d14d193379ba7ba540e668edc7a193b40f2ce8d7b181e337c9a5fcc4876e6272858ffd8c8963b26edd76d5936e281e0847e28fa111ce0f82ae0b5fee6b189568f63f822b8e54997177fbef63016f03d9e3a583fe91762fa4cb075fc8a9569a627f858a30aa2084d0c99b63da760232623b8276331ce2d1de2dca648d931ec106ea63f90f44840d552fcf0e756962400010f65b8c67a3da3b08ece5e5950dd394cbbb3d5e2bafaa61eb0e640646702e5f41f0ed4d7763a1491e99d1b6eaa229db0fcad8496c097b551a8ff73ebd0f1f0f8615d04f4a6ecd25a650492abf2d0bb71d7f2c38c5f150e1ff22775c69ec945d44eaf3452d0c8bbf0dc49c7ba59131d07f3677d016", + "605d34356faeb7f64efbdf6fa1fe48a395745d5d173ce8a1d86de870d0" + }, + { /* i=291 cDividendBits=3260 cDivisorBits=1194 */ + "0762d252523ef075986fb69674eb03f802f27ef41728a7ad04d969f90f0228ba4b37d946b0c03627e1eaeb2c9b21d291aff667cfa8c8db5433b8fdab618fcf751a4dbc901a46283cbac0d9620048e1f9ab0b84658b4d2fea39d866756a481e408fa13bd1d1d29c2132d1e4630e4fb711169f70ea39f0415bd1e0bedf1687332824fab720eb6baafda20066fb9175a69355d65d5df890a4644e795f999c7e4f5d1967d31f720339cab97df1e57051130f44d289bcb5cd163a8b7fa870c53635632d7e9052740e468a570ff307c3681c9d373d92e5325742a47b4f3f7530cb406b00c38d80eb82bc0824e7fdfc368274f655794c1622bfbb5bde606641b8527fb9cae29650b7b19eb664ccedd28d1a7b06bd1e1fee90ad9adb3c49f2360eea70993ebe17f383aea5fa9716390604f28c8ad585f9ca928206cbf7cb6435cb4f7a628471f1b763188d72ab359a3ad5bf6e2b28380b71dd10a87ca500e9a2cef7e61bf5edc7daccc2ac1309eb3ba889c454c5d66ae6ebfd10193253909c6f441f5ce835f569867fd267f7b7b7d4939048432f1de1f7c051b43310", + "03fb290e41860e68091561ea48b083fdd07ece1848705fa5f90d208296be549e581467e3110a66485aeb5c1489f9ccd9c8f6f62f928649c797f9288f5856928d3da1c1c93fab2e4d9b94e8af03f7afb61cc16475fb2ea5f6ba41638318b86973902313709af4d2c00282fe225e9b90f98d6ecb29bf175fa57e6b8dd4ef49a85f118be7cb70a5fd4d1616f501e84acef97d725058366c", + "01daf339c2fc006f36f38e0feddd57cb39491c19e156726dfc19f1c0df7bc110c3ad87793501dd1346dc60e916cc54323fcb5e89773f6b699e254f59a9945f4adb3e719605791cd19aad00385833b02af4de15398eba73c383b43a768a8d1cc3acddb41a4706fc3a7278408ec7a71ab44b9523517ad62c943534c4ba0c7752f6eb5510cfe21280d55e905a8d69f93dada85cb310bb57923e78fee8a8903bfd73b118e79542b96be3db98515ee4eac05bbdf1db8797db8437ad782a95f59da6f9d6d139fa99bae829c04567a44e0ff2ceaf344f8582fb44be27cd63357f1be4c2e5f388182d6f3e69be95f3c329ad60a8644da64cecdca6eef3987e41e544f47991aa08", + "033ed961206b8d515e306f7d0cd0ae1ef55340fce7773df25cb4d1aaa8875b6592d104438f5985191a6cd26c4df0f5e01d90b7fd2ff3877c9625a11ed3db3c8657b1590ec26dc6b714069818cc71c58c65e316d60d17c5a704df96f14e9cbca069793895794fb1a9cce040c807e279893d655d060ee5a6967212607d9d6241f6de92acf62cfbefd375a5f0bf0f9dc5ea60335ba2c7b0" + }, + { /* i=292 cDividendBits=368 cDivisorBits=237 */ + "e2f352a3f7b0171e2bf549e383827639b11f7c826720548ed0e2594e6e8a68843e6abea2fd707982bfd8abd5883b", + "045f5fd77358a91f6297746978bcb877304f5b30c69848a3a6a922b2928b", + "33e7446f676876f0c24579fdb9644fdb46", + "02572963aca2d8642406c527bd5657c9dd8000fe954cd4dec11de6bf8d39" + }, + { /* i=293 cDividendBits=1882 cDivisorBits=185 */ + "01567f23e645af2baca6943f7008ee0ed1fba9aa9941a8ce75c2c766515b02c5fc9163b0f46f9dc7724d9e3290a876e40be9e03ce76730e7c80302c17fe44ba5ebede8309a920f47176ea1031db87550844fc0376782a11bb4615c0634d668062c0dceaf9b0d5d786df5395b20e3a5d22d7978d4b00aba8a3f7e17c5ddd65d012d75dade345fa2552afec76acfa5ce05bcc0755a547f0d3995353cfae98793f423059a00696a4c7041580ff4fbc92363f2d876e2f77243fb7a1831094bc2ab108609af2b284285c96eb08491e21cd67327ef3c1cdc5efff5933ed005841b8c0b0d7664acf9c301c844e6c848", + "015b37f808c57b92edd5ce66176120a745799589dcd94c03", + "fc84beded004e228d68646b9abdee00062a3a478c62e396eac63310a59c989c272581a628fe32f935af88498ee7955e7d5fa5f5909c113575168f692c325e66e9c991d792e93ab53be65e812bcba8be0e8aa8a43596e1e398bc6bc9968e4852cd7f6fda7832437fbee8a645113f9af0ca0ac9b7eaa60c6b6ea9dd7b64786adeb7acde4a7b46b09c49491f7e235fd59676920a450729235a42ee88691e58d0f47966812e8748215387baba936bb6ec13d724df40dee0e2254020406fa175f24e8f21c9fa7cd8d41ae9a998049cafd0b1eeeb8fe35", + "011c377f674c0fff3fb1196e12315a789a1d78ea865711a9" + }, + { /* i=294 cDividendBits=1607 cDivisorBits=1587 */ + "5736fa43c4262426813be3bbdd8d38af815274c882932f71bc62577dca3acf35023732a53fb288d1a4b25ba9ba2cb209a59def2e3acebfd97738b787ad9bac713473a33faf114c83a133e55fa6e6b1ac9f6210d46cac3df93530729cbb5abc2caf0b566366abe562fa3e989890fc5cee6c4d09157bd8ebe9d8180b9076007ba621f02600c5fc9fc5850f4e2612bf887da6324555815d2d902959598727504c66ff09a89b21d32ba6d4e524ab5d2432de6b58becb8d4d86a8b9d729e2a939619ce56f5cb1b7b6ca2ea8", + "061f8356638abffc2dc93eea7e38151de764223d3d68931a7de2a12680d1ae1783f704223055832a8ea9656cb78d103ddc15a3fd8ed933b4c876fd57323f8486831ecaa2046f68ce514b4f0c58fd12b06ade08e51b1bb27209f930508b9ae4bf0013349361d47bb044034f961aa70566bce544e73e5983f12721bb316b2e2459250b4e9bfa13a3f9fec2bf65f9f59d46d6356b53ddc1791a35f1713e6f0b3138e1ff483b43f617929e0d006153a4040546ba92eb5f73e363cd7a77d2730e780773cfb1380b34d3", + "0e3e5a", + "02a73a150b156e7b9cec0d7a1c382f4afbf04874399ab83062aec407380ae47ac0eedf4ba8a96beba199b3c91d20eb6259fd5b3119148a9b9192bf4f60a8ddb9007cf6f106ae5edcc114012b18877b563c16540c3ec84f0df2e69ac1a1e000d3c8d7df8b4717159f87f2c6a03f494fe55525d88e1b4ce9fde1aad225a3bfbd021675af82fb7b64d21bc06aed922d7c7e27f95597bcc849ddb7ce25dbdb6f8e586e1fab126368645c68af15b2d9f1dc28a8bfad197763604ab64d4694dd0c8f68a7b13a6884827a" + }, + { /* i=295 cDividendBits=287 cDivisorBits=160 */ + "1c5070b2abf3e1e98747c8bc8aa789fe7f0dbb261ad742bed7636c025945afc8ba3188e2", + "746e2f57bde8715d48c6f2f006dbdf263bece230", + "3e416c4cc5e162f08b874a1239fe0623", + "2e53db3d72ec6889ac4c6e734f5a4d61dfe17c52" + }, + { /* i=296 cDividendBits=631 cDivisorBits=260 */ + "0ea8e3c2cc6917ccca9b52a94e159a2112f44c783daf2dc891d216a3ee27899033ea07e06d84ffe96a0d553fbd8c7add5c4941559794a169d59db5a3f35fcb6560d35be56b2b38b11c58e63af6d336", + "03fa27913d123ee5ba687b2190ad784a24e2013f97b028dae4d6794e1fcfc74a7c", + "03af9be483d20682b9898cd3b46b2b4c9f6da9ba6b337a0f49e7150bf7534749b4cd9cf3d4ea17002dc4a33df66568", + "014479cd6952fc988fd28b4aa0b5632ce9f00ed57ff5234cf314368bcb1275a4d6" + }, + { /* i=297 cDividendBits=2471 cDivisorBits=105 */ + "426d3f72ef86c43ca795d84e1263d9d769808ae1d0770573cceb43a6c797b054b4f299fef58623e5bbb36886feac04358c6a76af5b93708898b8cddfb0adb37624ce6816f84b10b20d1b3fa5d4f38ff87845ccb92c482f5dbd1f80ef6c62e4d7c3dbd4017b8df728ac100de7a99433b78c2336282cdb2641af3a4b20b5ce2baecd5f9b42c869921bec5784455993abda563fea85f9297ccfee4e02ccf118d16072ce76404321459a1687d4e100d77e1f5d857a0143de556ebc8e7dee1c20e83906a784d6dddfe7ee988bbd178d9b87d98481d1accb62393f6238b1c5cd8d5a8f420ca9f911f2fb87631b4b85c0371a694856e0909eeb0ab692f8ebdf45d9fd1924cb5a806a9310ce31dc68c1e5a12258cfbd94dd39ed8a5e951003d9a86c4b67fd6650416752236e8fa1cd5776c276c13d80ed9d5b", + "01ff3e1266af554f6e2f8b4baff3", + "2143390007fd08e7b5ce1b011ce860b4b255abd059a07ab154fd467ebb9a0f1fd20c5b0322ebde1830bc034eb1a9890deeef49dd02295162cce8b92f374661ac6ec6f5da0f7ea4727e2aef45856c5f91d8441308a04a82fd9118cb6715ffdf57feb5ad008bf7bcf58a0763f6e836644514e51eb5ddd1c026e62d203d63bb8475c90bd8aec83f124713b19036d8aefc648b0adba0242d8bf4f7a014885e3fdcfd7e12606885b431da411cf745707c3e8614af0ec3512cd94ce7f95edb82367c07fe9f10a5ff96d7a9f83f296cd491a228afe2a9e248965ef93959f94e8176df710009e54d3bba6c35c8c230e9b504b78fad54971808152641d5cd72b2e0364549bd40d076fcb678e2244a62063d195b170592e3050394d5d13237887868510aae15b69fdea7121df3", + "5674f9cac131b31a80d11112b2" + }, + { /* i=298 cDividendBits=1658 cDivisorBits=496 */ + "02d33bc2bb2207c922e64b37551d57018bd0c1908af024002658ea7d5effa1c367e4bbccbe8d1af14670ed1e5b27e196c61813182a5f747bc2c4593479686da16cefe7964b66c895e038f91a3278f952acf94103a7a29a8a8d7647c4a36e2d49bdfc36afe4a39a2541d7dc9891b114074942340642b49b421af65d349430e605ba9dd127ddf93915cabe289db843451fda5067940c67b53abeedb66d37861ddb6088d5eaf765314658fd1a4ea525791f67fe53b8eaf0172f1edf68def2ded791528c6d9e535533696c2ad09f7ef3167b", + "39b6f67a3d0b03e45630edc80223d218190ba0d2d6aee1ee60cc36c6f00c8ff91af289780f916b4fd822f7f5d315baf5208409550c9d4917f027f1b7799a", + "0c87fb999ec8ac35f5b413a9745ef7fa98c243aef5d2bca722cd385cde16b09d72fe3d8a6ff2bafb996b04f0e85ff66cca92a7be48c5916c0a20483b12c1e85016939abb7808145ba0df0f84b7cc1d7fc8f49d023fb4188a5dd458b3becaed7cb85c19b5612ffbb314045061e653fbad55c8297c7dc85bfe2f58b5a28f7e38763d4bf94bfb67dbe00bb8aecbf672ebbcc8b7", + "1a77629e0321e1fb813872483020bec08902231eff52ca654215ec5bc43cf9a590b1b87361ec6df5d5b808c37288dd9168c9a9d3ecf26489dd48b2b2d965" + }, + { /* i=299 cDividendBits=1704 cDivisorBits=1699 */ + "f62f882d253185152e2ee608ab492c79cf0156146223204ea814a8ceae748b7aac73205b74d63237507bf59277aa8572b7bf312ec0c955a13318750694705f579883f625bb1235fd9afdf8e30419732edff55f6d94884659ccd79b7667e87d3b0c5047d3b962e82c28d2a014229f5105b87fe01b60209517e95ad5b7f4b7a089d6dbe59c6d5e1c670e8be1e249a571ffb5c72d888823f119ebc7a5b0fcd627d9f6600f73471520c4a8268af1e1b2e40b587d81027913d3d6c5988ec40538d734dd2c1b4053f581a2e76c69e25f8c6e9d921612117e", + "06876539598093736bf036161d28f0a922bba2d251185de43efb0addb5a849937134319f709d3a37038a8da45fbd6c8c05ea21008520a5af47dba5079392cb781bc5c92e89ba920b47af8ccfcb0ee4a9894e7a2ff884d42fca7affcf92757711a3b44241ca8be032dbc914db2eecf998de0bba9c65bca6afe04eda83f3cada9e0d8f8c119e54504e1120f0fc953d93f6de5bcda561934d64ae1e4bcbed5525dddd7a26713d8406f4a22bf9e0da4aa2427f0758a7543d7a4d5e729548450f715d653d687c9d1519841c596f90f42ad953383f4d4260", + "25", + "049de6e3359c3566947714d6745e6407c9e2cdaea99d8e518dcc16c36d21e92b4fe7f4502e1cc843cd757cd0a149d535dce86c1b8311634bd0599aee4038f6fb94ede26bd31b1a5c3e9e9edaaaf266ae079db67ea9559b718910a2763cee47ae6342b451732b80d264c29c665a5f3deda0cde780abdc7dac7df540a5b86607b1e11ca7108b2e811e94c90d60b7bf0f51928274a16dd9c18cc166b137af87aec8f3b8811563001f6937cb6d7254e9706efc6db0d34c3126a81f08fb5209fd74b53b4c013d9fe8d18ace7f49ef155b059670efe7799e" + }, + { /* i=300 cDividendBits=366 cDivisorBits=46 */ + "31aa84681719b2b291c824437c3c2bc8324533941c3a5834c85b645f547265d5dbdff4f23181855db0bf46022ec4", + "2648bed281f0", + "014c1bebc9d6a64a7bb54b83c6b0feb9de676db63e63b7923162a24511a270b06330c26cff487d1967", + "1f72fe6f7734" + }, + { /* i=301 cDividendBits=3073 cDivisorBits=2107 */ + "0106a7278a4312614de2a2a5d3fb74fafa2a8d576f4cdfa95bf1c25e250e7557a8a63919203cfc73d12c927fd6cb2688b64a1542bed57f5cf78f604f030f6c205808ffb5615814a07e10a3024a4001c2a190af9977383905f60856b0c3889d74852231e21e6137c2a0eefca11cc7221a16d40a1c844d4f3506056f4e0b8491413bbd2453b5f5966f8eec2419f3165edc0b50e1567208691505645c2cc938891d88abd2eeb6393344d7891ecaffbbbc5e20f13f584de72c4441781005becaa722255a32240f33199e8093b048d4bb041340cad5eb6d515a1fda05a7b39c5b42ba9937082e63767ebf1129c74639327d9cd24e45ec391f32966ce74506d69155d652f84f28186a676706fcc46d042941ccf90f32af02f6988af85d0d55efa3bef3c5a57a382368cf604653f1f63ff03235daf483c738fef170738f286ab7de6d7bf648a193cddee166cb291c0246d4ea879d2acf2f783ea138e2e385984fcb802c68b585f7f0be020c6d5c7d9ffdc765c04ebf9686cdada29b0374766bb13c237b88", + "05e48fd59718a3aa4e02252519189585c968f1eba064e392dae90a683ef7c622a62ef3da25c8923f9dddbb71d14c3fd0cce4175bcb5883a35cbdabb51845865e0dec4ae93e51772e46172ad62ef79f82a641b64be5528ed3458ba1b11aabe38243b3530554c7e78790b1e223e1d9c6589f4f97bedb38be5b9a3d750a03376da684c1eb6b3769a87fced0357d25bba61933f65f6208f23d20a5f2a165ac69cfe325d540df7feedd820f68cbec2153bde1ff521f1341e8c562749202e001801093530eec7dca8f271b5d85a782bbedb7d1c300f67804562d4f4a5f5bb773505e78e0c04de7073b7dc0cbccad465208818efde43e542f27fdb8b62971449f6f6563b3907900fafed6b2", + "2c925a6a37531b7b53050c9c0d5436dbb6b4f62b027ae46f5ec677af53fc05f81ee726b8db2025ab27f89746c239751aa92b14259434589c22ac6049f71109664f8e6366cc53985e033290571ed23a578fe4de8412ef53b75155128870a91cc25970ff1c3e99cf93799181e75a0185cc97923b7c4859297f44", + "04965495e30f615e804ad0882d3171566e46bf474244674d7263c3aa42d137fcebc3028b3925ddf10bdfe2d14ef834c013f1f7e0992b4f95bbbc3d646eec06745ee4668f2bb62b9c28756cf3be60dd8248883679f1a2b1d396f91b7c9a315b1d2e7a1175e834419f61e27d73eb37e0c9769cc0e8da0d25659ff61478314a811410f50b7db1094737f232cb02dd0552d13760cb2fad8b0ca605b5d7e57ed260f6c18af7264de282c2a84c02679bca1a1c848b174e22d458d354c3e444cbbfd162aa1454ebc45fe03295a366defaae8d9e8f82529dac018848ec75c77ec1ece1bf1a70cfedc8de1303a8e6fb25d0efb67a9ecf3d002a6dba6caafee6a9e0dc0e3956f36565df6e2640" + }, + { /* i=302 cDividendBits=1616 cDivisorBits=766 */ + "dd5fd57846f3a1cdebc122b3ef44d588b9c46ce494945badd325796974f8d3605227771116e69ccc36b4a8a4969e21861e39a5e6bc055f6342bdb23eec9a7967eb0da4068e5f341ac058d0842c3724861e5719e2cf3e94205b5e64779a30b49b4b92263b64aa9af3c369203a992f944ce048b138faf8fe23958fe4dc832e74a747ee87fcf06a03a090c019ece2c20e08a0293edaa64270e54e487c593a97b6c7a0aac9993aaf797db8270782b375494aa28d171996c6369524443e5031483ab952b544cd4d70aa07f8ef", + "21c67fb922cf2c5930cfa1094d09a97b69a5d0ca977f86d80b66c689a2cb8069d90d9fc44ae48c4617705365074a5cefc9bb1c1b87ac055a29c1b6b0814ce2a1bc1c69f69ce45f6c0994d5d6174f304a962371b4657c037b4b5dca74ecd38c74", + "068de741b4b4e8a40391749c7128279c79f6328409d9735b74bf7dce2798b9e57364aca448c8ac55fb7698c8dcbc130186e5cbd19912b8139d6635967674712944d5ed032452e0cc487f1ba59d5f208cbdb2c442083edd0643ebe4b1b3e1980164bd32913552eb960890f8", + "186a3dc00fe9da137c567e13d8d20b2b3b6c72af064934c2106ab7db64a9074b86f1a44a59903a912a5edbbec804efd49cca5e241fd94b43a79b9fb617a0182addd1ff6d07f5e2787c19133c94899c02b432c45eaeff0f1db870f58fe276a88f" + }, + { /* i=303 cDividendBits=2331 cDivisorBits=1530 */ + "06e8826e3d7c41b766ace592e5c8e5a825ad2562369a62b8ec14115987a5a27284593939f67026f89eb741473074ff935f90bcc6cfba9cabbdaabfbe3fa5f2e18c01eeca0fe68bc94ccf580f4dba261b3f03d2fe695d5b97e03797f93c82d776ea240505939ccbf4ff235c2388b2166f742f03c10eef9924240dc0d63e559f89b5cb294a8334220b0d29975cd64ace612359ecce98f0488bd5a6edc37d900cd6e3696aa204b4ddb3cc26e818ef140401f42c6c35e024d1f0e588493ca7ef1943b854b095feb5579a03c87c8d2957eada017c97a3bc38c4bfeee4a9f46f65fdea4e617ed3498c84d125e681b2982e7be5d27b40251efe46449ac75c98445a817747d48358776f10de49d1c6f3b68aa37f938320bbc168d3cb8c49d3ff7b19a5f9e3fa15c4", + "a90fd489cd3a0eb0e5891a91a735e339875dcdf13e3e511ca7a8d4eb4e0ad40202a360e345cdb7f53d8a05c7dfaae454828cdf1b0e810626b378c90b7ae86f18c9e40365709dc1b47c5a28e9a349bc8a99f417b23dae758c1be0daa30f048f20cd3068a4c26cf2ff534449b56b1a87175ebcd5ef69ba7a475b317eb904e4abe559334116c78118eef98989fd666a7cfec780fa361f7eeaf838838f10b246856b530a268a30abbef8c613053b9db5f57fb078befe52a86a7db42af4aa559489", + "0a75f21dea5ff99e1d085bd471f0e14a4d018d3aba450b5025b2b693541005fe623166f4c95f7053f614190f08752c503b2934f67a4f038b8229ef14e9a9c51a442ac7b01757b92ce8bafc628b825e2d84fd9b35e9bff0aac1f20fdc06d601d7e5332e502d", + "4e38f0bc90a480dc641bec1605e71ecf466c09658882e97b9b581d78449d4b48345d93613571003b1864da30db31dd43cfb3bbe371b606e962dce3ad2b2822912f2f6c66bbfbef1e5536fbde55c0f26607cdbe21b1d9ab577c1d43b2e4cda44313eb4bded8a79c5680b28d8e102ddf1093d7e350822ada083e91df157b3ad55081f991d2f4e8dcf9f0036a554179b92d5513b56fe38665ef559f27f878b3dc5d33ba2e6cbc02f92c3178e3d09eb95d86b4751255af237046460e3838e629af" + }, + { /* i=304 cDividendBits=1477 cDivisorBits=422 */ + "1d34cb234a30e11d8b50b4561e7a07aae370d54e945c74635992e1d1735fc054b7dabbba7b4751d4b985f385bb9b870dc73b99917017b0c8c4e25aca20c2460e25a9047d037763b624eefa2bbbf2eab062e79ddd3bff2507bef6621254f8e60acfdffad96fbb0ca4a067c7c946b34e4b06856dfa3c1f42ea3ac59ff9537253c9a3eaf58cd82de0b3d96a6ef766d210d857f5fee0400a2e6830f415c6f29e66b3759628b1cbe62298bf457f2d80bba1acdc14937ab087db8691", + "1fa782a568b5ed7e1961053c9ba0c9459f1d5c0939219865f061b2820e403199f740538b5b395f26c710c6803f871f6077ae7faf14", + "ec33840b5a247c207b2b6370d0157b9627c6f9b325807c270555295bcde85282810cb3e8fabe672a54c64b5f2b86707ada0b0a5f67bc1a3265124f56905eab2f2392398430233392a42ed5c5cad6ce05b01462a4f1d4448fd2a9e052843f97341a6efdbf7d8a1e1789f2f1d92fbebd9eb3144a948a1cf744b623af2f2557299cb272853a", + "06dd21bb32863bed4ba9b00fa7367c6b2c59eda0f2df179afa6727ab8907e91329209b40fc5eb5bda9997719f8d1141122ca107809" + }, + { /* i=305 cDividendBits=2228 cDivisorBits=363 */ + "03ae8fc7e9f11dab52c874501329c72bb2f661e73446198ecc34963cf13474519b15ac3d2b7851e94aceffef414fc6dfe382713c969eb696b3ab82e70afd7cc63956f0951ae2fb1fb7ffe46d406b78a597020cd1bb3afa10220b409c1bbe28131d24641059b512061199af1fc6dede0d742416464759e4a5339afb2918f4a9f03252f1656c194dc97a441c5fdd38103d394700c8542dcc594d99274e057ffacd695679e3912b99551e24f50df58adb9de9afb8cdca1007963dab2f534066de98893bcd089123c1fed763d87e828c4815bc89952542ed57cc72ffaff3f809b9cb631289c6edbe95f76749ca4dbcdf08bac387c95203856c5b9deb023512c7b5562ad656f4cfc2aba1038235612fc039b8244c11fc0a1718", + "0183c7865bba8de6ae044ec5c16e699836a82458fc4d84b71a8a8c2873c86c74a7ce3331cca728afcd9d433f8339", + "026e4008f7b9a4c1821d28cb174a4051fecc08d7942ee8f47470c4c6e5def25156393b8ab58c7c0a0a641f516be9a97e70d893bb14c1b3c9cb88ae5b5f5b179389ab77231bb11876af63b2ba0cdfe1ca31f9854bd9c9f3d7bd13919e23f617be6708c58dc49b24b7ef4bd494793e295b060cad16f91b75eb217bf25347f8f83a6fe72e7be4406b30b13ebad410d61b91ee362c9d998008bd5205d7a30390d28fa051cc087ddf99d4379144896eefe0ec1bc02d6bd7d14831bd6ff7979d3a9291467fe16a8e51e1c0258d7933b7f97808db92da32631fbe6a1cebd9507b96312075ccfc9426602f6d355a", + "a6867f941df8ef47430dae775d69587588192f2c962da94c1beb02041dc6a7301249652129fb367d59db46280e" + }, + { /* i=306 cDividendBits=2791 cDivisorBits=1712 */ + "2704bd8c415892238e0a39787451a9fb49661c660dc96dbfce76199e8ad4f6b13b54c367b191253ce3b7e6b7759cfc95f73d5f3edbf696c8ca0006111cf92bf1eab12acf0934bd6aefc133a69b37bc547e836f54f5b8b06644942d2f163e79813ef99e1ca72d8f2f2b1fc4752b67084dd13c8ddadbbcc50ef80ae6b22bd188c411341d08350da43daace83b317fbc8214e5828f34b451adf8eb99e4d6736d8011df5a48bfd53fe2b45f1fa7dd7af584aef1aab682f0a671b5728f8e92873325682fbaceb7ba633af738b6aee769a17692e6948d40705ab854fe89e06eaffa6c86c6310fd8f000fe7aafa1a0f7146cfd7fc25c57ad37eeec09edb06304e8b144f311bd73164b5750724d5db366560df2a83693342f037a72a2d160840aa4459eec6a89c6efb8be9227d98352587e17ced95d69c9d299ff97c989cc90ade2494675f979cefb4384e294f9f425676b5fc32b2dd7ece29e281fde50e91c79a", + "6edd1a4619c582e7bcb13ff5013491f593350eae261c8a2c157d3cfee20a36b6f3c2a60552aeb94add66c2ac9ecec2f4e5e59329f7ac6753364855bda5a5e68d1cc727435690fbb3dbb02418f5e25f1b3557dae9321ce1e4bc94a778545e700785a73ba5b4687779b7c14555f2287a444b2a8f2988098cbea61a9f2d2eb0fc235c667b89a043630a51f49163d7d096d5cedc7824570d355631a368993ab28134d1ea323fa807896d5f0ab4b0ed92f8cbb06e07effcb70877ba77cdd7ecaaff214bdc603e4fd21ca4c48bcf61996454f0992bef559ee9", + "5a196be17172994ceb23370a366d223feba6bfa1af5937583e7cbb2837a97967fd28ef86f05f65f460614d1e2fdf7d896908ee16398150eb19053eced72b68c84d5e288025be968924da36317c726773c0133b55c7d9dd537598474b2d1c32db4f0395edf19e61209ea4dafbf20495741e767b343d00c54dba07a294ec48e4fcf574e4cb5189ae", + "56557610562ba7f1943c732b98dedcd371bd39a2b88db823f5960854c5a1a0e6a7ef2347cbd7f3f73d4e3a59642f21f80e3c2a93bf2d1950c252214e0312b07da6ce36ce024b9c11d94c4e32807352f137cbf7ec260bafcfc6ea71355f0377d8c8df72d1c75c04d2a10456a2191d390eacfa88672ea78063d9c90c6bb64139912092ae533400709c0ee93774880c70673650c048145d068c32d60563d954d3137488acf0f5699f0888902cf84e7d4d00ddf1dcfc97f8520b0a6aa0aa858738f4fd1a54d2af314404ba99a3e47876b211a455859c143c" + }, + { /* i=307 cDividendBits=2199 cDivisorBits=1281 */ + "1c8e603c010e3c2d6bbe5fa660726c00d510041c8ed133904029b8454a690eceec6450d54b0140594527804c1643b660e1f9fe0f68caf1aef7e1fadcc6506f782f0c738b6d9b5ac5457ed7ce21fc08b3068e826d04681a558a176edbf331d57e9b85773c84fc524e112c12204d21e0a753a45b3e9008914a833ea7ecd63c4541226520e18539cf033912c25ebdf987e006298e4e29f409e0be3f0ca2a46ebab181505fedb7bd589028a72cc51262e690e44c31cb6dcf05ca91622ae4b6538f84566054f04141fa75106df0f30c28bf0087457ff114bf02ea0c97a6b7f7e5cf3c7a64b72893ef037402a4987f2f8d5230e1b59d2e06b57745f0852e0fd380e0fdf7ac03613de51f92f2b1dc4b00b7ccbe336692", + "f47c084107737fb760f1caff89416cc37b1fbe8322a879d117dab3c7b70b07ad18bbdb99bcf58cd1cecb46e345c983b5a8275f2570bccc1f00787f46e08a7fd02722b2b9732f4998a369b1aea966b55f70d27d8677e0bb0da7fb565a5ea33f2521334bc4fc089ecf6b3157aa4b28bdfb46c18210bcb6d3f4b02356748d20aa043363b2a3935f9f7bf96c829a34f974ae6f036902605cc4f12b5dcfe6f86ec9cd", + "1de6b3f58a8b807afe09058ee5f275738266d6c1978cf3a996b5a297cd5be008a814f1c82adab1cca85dd38b7000e905b1dbbc7eed234b5afe11686bb5370564bfa030fe4dde26f8d7d4f10b21cf680490a14e8c388cdf94b8961904b9c059fd669623679345a9ed57b36fc2a88c8f9041fca8", + "d9722673ab9bc3e691f8e0225e0c982d3b121dc60f3d647505ffdfbdce3f19983ba56bbc26683cc9c72c250c1e7723ed2f807ca12fee71fec876a2e6c46566650e22ab16a4a190dd8b2d81b2b8ebe9c318c3315499f920c0597f0f46435f3ad702f4c23b1b427347ef203e8d04725e377678ace95b869b6664fb323dba7afbbd381ec5739ac67a473ff797ee6118bda880656e29ced3febda29eb08519cc2c0a" + }, + { /* i=308 cDividendBits=810 cDivisorBits=685 */ + "39e4ced4a60a2115fcd93c3e2f50946c64769361a0ca75ffdf6073f9c7b63bedf650ffd638f826c4aecf9ac888baf286530ecc68b0ede5e1ccc46e60c9deabfa26332ab13342b5af5d3acac15616a2049e3d123a5efcec80627fe11ad9ea7eb46fb7b1fa60", + "187a28f4e9ce011b893f9c6ff09d684c677ee82ad22738a8064179d4b204f00c2446058dcff50aae7ac8f602f099a12aff23da7890399d0bed55026695e5ac59a58ee21c3dae9e653b6cc9415e34f15f984243fc1aea", + "025d7ea66d9662195f6d072f11ae411f", + "0798c36f72c5209ccc737e5636da49729c78d7b2d04703a53e3be72bdbe3fa592693ff17d72c061b9f65ad989b27fcfcc60540f25165ace9d08acaeaa71f6bab3df0d4cc9859a074867e15d75fdcdb0d270ca4494e0a" + }, + { /* i=309 cDividendBits=586 cDivisorBits=242 */ + "03eccc5336579a3d064168c647ebe2729a6cc212857871dd2dc8b592350d3ce690ab68a02d2172a94c0073556613eda24ea087366ddbdebcf69eb1aa60e25c19543475265228e908c1a4", + "030f4e807f7294d3230e6e822ab8f1e7960298c08a1571f85bc630c40414a6", + "014863450794f0dd7c5d0c236716377238c3d997f3d26bfff661a682ad4bee31659b46261589c0a7f0bd296f", + "02e8dffb6ae95886358ba812424926671cf48cf75dd41c6fdd10f6656737aa" + }, + { /* i=310 cDividendBits=2516 cDivisorBits=547 */ + "06b65cfb8c92bf3140b5093220bdcc4f86c97b6ea9bc3ea9f57953248f75c6b1e9dcce13932e43c9cd6c2468969f0c4fc501f51d1a8865b396f11cc5142804666dec785ba9fce58de1fbebab890749b605cc8abe35c0b0e68a90e2f2dd688fa73258c6363b9e2121c7ba10b416799c673f79868d847f8235ab147c5978853c9a4f123a5036ba79969b9942b039482abbb76bdf4a945e86ee038c45888ac858219b6f850f545ebabc1960de4dd09622ec17134af51e64a81d5249c7a42f6c5dea7349e573dde917588fac3ae59ba32256f74da792c5f9fc244b4f4cd4b747d84ccdc6b0060c180130be08f830aaca4b984beeda0a7178606062a3881fda6a7b2566065ca57e904ef05d0dae3d05bac117ca64d6cc272c8934cdd4575086dffdf861dc7ece9fd16ee7a3caed22ca263f1e63fecc9c808d1317050472", + "07bf998f42f47a9f0376c29827d1a168e9b5bacd5b95aae0552cf478a3c31de29dc393af2e46f60a50937c4edb0fc091ab5e0ec392fe0de8dac60de76c44a730ffbe6eb8a3", + "ddc4de260fed0eeb10fdc740e46afb630b834bfba02890fbf13ba7709991657ae880d8d57e886b983f9db1895abfdda0c9e111cc111f70580519b1443bf79a17ad86f7112dba0a87c1faf6c105b5bf4e231023c4d136128fd4d26bbe505be04678650d0278a32946b2841a8ef8e7d956d89658ff2fa58782b33cbba8944c29fa2ea0a2dd9219e22328ba45564f606e5308387132e6dd468031d5c3f741b5ba85f851a3cb848ffd7e44c2a2bab6fc8c393255326cb53ea6416a90312c37139639c097996e9c01f73d2f61cefdaf8ac9b6e3c087298f3ad4058cc565942cc50b16c7346ccab7f1f9f8e93c2ba340d229b5e2ef6b3b705c", + "e7770cba09f69651d0bfcf09b49f971ce98830187b8e31cf04789bc9d9e1e2e804b15be820e95939a8321e353f814177286d95366ac2bc302410a7666cd49cfc87e259de" + }, + { /* i=311 cDividendBits=1420 cDivisorBits=1082 */ + "0ee975b3138f9a6ca972f5215f37844020e90307dd4556c8924d5fc37826f258130387a448852eddd32c74a80610ecb336fab95f2ad3af97af96b29695df0c12468d5bee3623e8fddcb307eebcc83859b7219ab8121d778f24c1be63e6fb62908ac0bc98839fdebe04fc293ff67b612f97e176cc5dad316713f0c9e6fd871c01646803c5115ec8298b9285e3624bc8c03abc629d5ce48d187c4c7d7ed4ca8f3ffce60d85be286d6e0b5885b0485ef2cba9a2", + "c4ea17680a4fcdeb8a4b4269c1a6a56b4e39e40c276719122ee63a3b0f86a321a57786bcf4873c2e99900a52ed33ea25be69a868f2a457b777d4476d0da1427918e02dd4060cd671ae23a8be1b68a9373385bb6fab99d07c1cb0aa9cb13e051f239475f3b6569867ce6e9e113cbe7a59d86cf70a00796dbb1c32209471b63fa1776b6ef7c67511", + "1362ea76d9fb7382776fd4e96dc0c260267af2f21d81a17a1988e4f0d0b413df987bfaaa6b84967adcefdb", + "683c54524527932ed5867f18fe7849e36d365df813124450749c9956d1b08e6b4676302d4a5fd79a407cceb5df65cfa5371eb507ba65b7ccd74a2cf006aad5987f4ef3fdb64037184bde029971126298aee65842af0fc7d7783e37d9dbaf65e304c9f1d26f8be26c3abd85834fb669938ab04300f2983d85a06ed7eaf10d45f708e8d2001ea517" + }, + { /* i=312 cDividendBits=527 cDivisorBits=300 */ + "4422f22aedf9b73891959b9b990d25fc758180d27d0ddb34fb0d231a68fcf1d61eb6143991fa825c6f3464af3d784bc9670d509d3fa4591b05fb45deedc66952c03f", + "06ac2bc0b8460dc81e8d51d9df00866986ef99db980e8e22ed96651acbf85a06d9c642b374c8", + "0a362347cd26ec7d7dbba805185889c6a979c3b499baadc5471d2a5228", + "0415caaf8fd1aebdee8dad416758e7e2f856422b9980aab4dced62013593ff2ad44ab11070ff" + }, + { /* i=313 cDividendBits=2983 cDivisorBits=2965 */ + "54443bfc205ea9e501dfd9c41081af8f6617efcf01af682334d20f69faef8d10c0d7f19495fbd886ca91c4b6aba0b226db2d00dc41109cdede7882cd448f45f85166129681825a9ac57b8aff9f1d15ace0910aa0e421e4dad0001c5be20e0888c0b0f68723f7df78a3ab5709be68b30ff5b7fdb3a9a8530423e74263e3eec3f74dea20e842367059c910e966185e044321515a76bf0d5feda51e31d58f8e56c7a1f94baf9a6539ebc608e6cec1819d0339938a732d43449d76ed476c5d49e781d1f9f37e7969f63c8509258d9b298f0eab6219bfe7f2eed6c9fbd3a1fd53df57fe9ce30b3f15e7d0f3cbabe60b37164eecf4c35c16a01dea94c62747796e11a10acd84f479e0ce3ce282ee368f02541dd67771f25c7a228b91e03f3c007d2c2962963d27cb8cdefc1c09db16d29c9fd761f49cbc1d6c5d088417395bff12cc9608f06b7f69dc67fcfc8eaf948976a3956cfef8a69fcf976fcec7a88404270cf77481630186078ac81c8a8d2c43739b26012a4cc37b", + "171663b5f62083fb3e9b6383ec8aaf5d32289b9858e768e4ccdb2a07e08515a690764e42edeeeb0e64b420acf3e755e0ac16aba7731af3fceb61a0d5086e867ff101d35db48cd6281e0e7eb5f76cae5942aa9ee50244620159b647494551045a82ccb50900bd4802e27188237be478d2c62d87121c0cc56eee0835787d64349bb3a0155306ce306ce6a0b2f928512d883063ecf52224a6c925e27db07114da4b9776c898a86e6f1fb70da65d62202652d6e7926c6a837d50a58128901e45512dfd471b2f1d458488723849ad8494c7a39602e04888a2e3beb61c6d853518070e915fe5c3b9139f997f75f3cb277d6204dea48d78003b7eaaa4d0ed7d8fa35e94ba4c4d9b2a4d3be22309e7ae892e73d8aa67f61b5b5f5899e47051f0f0c1236519aa24fe2cf979dacc3c74b666c0eeb9bd0b51fa8bf7cbf73a520496ec47f0825038efe0d3cbba5afb57910f703cd2698296c42ca9ee3cca4e8130f8cf59e4b93d873bc76c8b7fa360ec8961f1ead293d947a7", + "03a65e", + "11f9a393a86de533efa2350ed8d4fcdf5d380b627a77ed673b97cee58f351a9f449ba952cd35f7df9b5baa411fe39ed31a444ba002cc84d3e42af992eeac251eeac30460398dc5179f613395b7ab3290104305c5922de63223586240fee6ee3e12ddd1f7053dac71faa84b5da45a99491e2ffeab6e00ecb9e84aa835213beb641e5382e5abf6afa5ed6b57c90a5588c3033f62791df68709f219ac32bcafaf9c4e34fbd477f14287e2d2f7364962eb17c133dcd86d21377b4801a9ede3e0390586349951952c0a35d8137bbc100e88028668eace781d5d893d9dc6b4b6c640dfa18ccbfa5a525266871f548b22a72adea6cc53b6f7ef7ccb60182b454891b07eb9cbde917d65d9a3ed4cb46c7a66cf3193de2f10b84791ec9308dba41e1b87d40db6de2228cd188e4b127cbefe061209e57be8c2e5e3a088927fad9992b048673b69109559469e24ea2ef24d859337cef58fa36e002b62137c684448f179a201673ffcc8bbe12aedf91678de0aa54425192a29" + }, + { /* i=314 cDividendBits=1782 cDivisorBits=1159 */ + "1bc50127fd6b0f55ceb9ed6398397616d919b54bad96e08000ec3296e3820d19f82def80c717f35fbf2fe5d2a9a1cd8cab247d9cd011acf8ec1266d2a8f225f066cc73422d66059f4f3d9e4a1ccf345db547eb601f61ad662232dcfa4a1eb80931227482b68f63ddb7f50a63ae6b81ce609f62b1fb2d160ee21335dcfcd87c125e41f21e9e6d48a46dd0abd100bf54006091f32bd328c8c125a00fe08455a38d916c89c0663d823cbb91aac29cb040e2f13a60d4fc03f1cbba797cd4c9186c8bbd49c7c3646fe369b72d43480cc9dc06648fb524569c4ad331742e1dbe9ec1", + "16dc5a8457649c5ca4c434982a12101a299559a208ee7fe2ce5d4b8334f1f117e02b58719c7ccb5fc466ed8212bde8ad72b16a157cf54675ba04d798065b93dae530c3b14ae42d4339fd70f5b20618b219d4820b11f06405c2b0c0beb3cd1610a2516636185de014b8ec9cb418f930b1e1bbaf1cf5465637c075f943b95f9739cbb11baba7e24d3ea956de7fba23b6a07d", + "0136f84410f189dede377dfb3c038064e500208175b0ec6989e2677e10fc11e0deef7f79dab2543224226861862db9a96286eeb95b04ea34e7bf59dd4ce338aa4507b913a9135f50f51ee882ee47fe", + "11838cbcf0e90fea35f06f977553511e00bafcc249625088ebcd5a3ca0f76745482773cfcda05f23bd322d69cee45bb47b29cac4e8057013b9d25f7f11a835e269073edf2242895bd85f2a48dd70b4881181bf459e4b1f3a8dbd42c0637b0107cf5d1a8102e6caa06f50b0a507e23b47d92b9adb5d3abb31047b15d585fcff5e49cf2407b5b2a913463be1110659d2b7bb" + }, + { /* i=315 cDividendBits=564 cDivisorBits=432 */ + "07eb060acaa20768a7866f0142c9e3be10016a9636a32c6affb3ceb1d2e204ad69bba0a7dc8293e0f890a4b574720630630291668583a0b1c4e59caa3fc78b5001cd817243f6d2", + "8c49091f2027433efb8c97a8e155f1cf06de61573d990c362a87abc364db157788d825985dd0e8ffb4b0c2985e28b3ff65153cda8234", + "0e7304fd61c1ea26a782e8364a59098299", + "0c032526558c516bb56779719c4fdff4d84771013cf039bec5e2a9fe41424c2726f876ddf7be41f0890fe2aa40a70561e4ee75b9bdbe" + }, + { /* i=316 cDividendBits=2910 cDivisorBits=2233 */ + "37ab4619d4501b0ccf7018b262044d31c652a630e4ef3b4dc7755312730f197055fc72550995dc5fcb4b88f0c8da56499ab9c4cf9c20ad198810d64cba1bea39495a8c27b6aa779760bf2e0363e5759d7f9f3b6e7a001543273d006bcdd0f49b23642438f813595126ab060af89990f8fbc4fd5e5fe2fae3c40e90fcda574cb224535033e537df497ee454e6c2c1b9306cb991fd87e1f8950fbee69d4c5a3dc4b554e6b12f1dd4bd40a2de95da3252b35cab15fb05aa818a95cab2be0778cf0e1b249c5259064870314e6f1d4988ff82846d9b64383824f95a4c2178b84b53dc2c758b7de22c20ff0d7a294819f9765150b0f0a0ea1395fc6840448122c19f85131d53a0142f414efade13e044d92e57385bffdfa896d3093802561e49d359678292e73c6697c2c0a9099ecabc9131fb10e65cb4122416ad29c9c5c29a8c5ac4e1b7272cbb502dac2df5ba28f2b62c1e2e908c72aa4c2e3471c67df8576795559f68fb396f795ea6e8292b5b", + "80d1da773b28e15800b9a1f966965d8e4ffa1b666343e7a4cd84ae95fc45f69e7750aebcc0e320875e9b8013ec05fd1155cd43dd77e41bc7934c8000d65eb3a038a16372ae1891e1ce6721e99b2358f46b4cf6a7e333b2a4cca840b625b99f31acb41bc95543131221ebfa0f623196b4dbcd41f82a2ab28c6e34ae36bde45a82f7a4358e667f0e686457a1727a1618dc4eaa31a343247c75a1147425da4c87847c3168258cf9bb19bfc13088164859ee4237b17f2ee6bac5fe2ed186fe7dbf7844fcff75cd61c843cb04c17c69ec457aff943f1cae556b10ebf93eb907d620c082ed2d08ebd1b1afa76f1a43c2eb22085105ab8490d7e23d685a4744d7169a202f49cbe30672d63316a5a01257ca3d094946e360776ca2", + "6ea12c37e90db94816cbaa45053790251e5d73081b7768884d99362f497d1fe7859e3823507a5e71a1c87f76fcf0517e939e256fd9980dfba0259d749dfd315e1cf62ee85f03b0a0387a045c1daa8d77b87b88a70a", + "74c46cf69791c4c269ad94084bc9a9222356d3e7f8e327175528ecd7ac59ea089ff0d4ca80b03bac869924e9ed7d7b396bd16928c2929e9c114202d19c5c715dd84633961b6ba54fe27503d308d83ecee6aa37e52bc4f410b59c5e586a750cab6cf75089535037f70365fe9c1b94d3e74350f20c425312fb78a27ce715fc76fa7985376618cf73833b287dc73775be9f1084ece68f6c61155dec3b9eedd50c60928f267c6cc1afdc8e5ab690563dcb8799e9975a751956533cf2154a5b5641c1bbedb13d85d6cf450a3a5fcfbd752d712203964ef5184a15fa1c42c337ec6861829ff3af4f4747a1b4d3f01987ff31dd6dff76141348373eb4040c1cd576a3ea0b6f2b5afe06bb950915305a2684421aaa42c3af913f07" + }, + { /* i=317 cDividendBits=2871 cDivisorBits=2555 */ + "44e5206f3109966c744b6e227fc6442454df3a802a2f8586d68aac957e4ba92346df88bb5d85b9a49db60e2e9f864707e93b38619fdb373f61ec51af07cb06d4e2e2f749ec200b834e865134155c564dd01c98ebead3acdcd9dbf0ded6265cd2047c1653278055c41f9e9cdac65ceadefe36c573703da333fe6d9d65230fad800205fb9e7d9196eb967993d32bbbff211108e6bfa07e128b7bfd5a8b90a710d222f660da1bf67191a0e4f9449d63452c301e04f833b74f5e355896954b5e20082c2c6fc6655532a3d6544e53c42e1512728824c6f67171796b98cbd13d342ce34d2c685c734e49c8b8fe4d3276e2d34c355afc8617cae100487685fe461b9f79a944fe1f8bc6857053b1f6b67ef051691e7d693eb063d2595692fb936425c5a93942779929fd0c556e7439ea7d055b2ee613af8270f353f8c8b49973325c36562de00701b1bb3c10e0fd00e1ec79c56c9cecfbd239e35e40ce82cbf2f08ef9586778a7e98bd71e", + "0470aa7d3da3d5741147a4f5340e130754bca18026dbe38e998a9569df8684596956461ada65dc34073a6df68322e94ec26d26dbed5d6a636e27df1a0ca22fa0e2708bfc8ad19ee7cc3255f4f1e18e88acc9cebfb98cc31b425e775ef3c6a19a0bfa125d5fb05da981eeaf305fc9acab789705ffba8d477c583aa429e6316bd8b42e537c13bb510d01f7cd6a5aa30822a081d64dd994bbb204040cab2bce2c0b089406d39a2f65157648656ec329f19a58a44f1500f30d5aee851c81234fb40ef87862773eaef5c1b501ec26a1e2d4915502a1f6c85f874447f39994860b67f99eb22a83d34be580efcba534d169f830c51f4cd06eba4d1b496142213bcf6f9380bc4677e058bc4fcd913c92bc5d704a4f052ec7c79661d6b57e097f69a848ba88103aef8e3bff5b969234fd99d7bd00bc139d8a90d1c7a0303eca2d1c270444", + "0f843c2d0dd03660d36a83515a0dba8cf43922eadc230aa76df4ba9e2519c9de3e14ef6597099ae5", + "02cfd4ef3e29f79863cd8ed07f8a0353fc3bf1851c54ec6d3dfebd93c512d219c716198d9643d8b48ed84190170ccdc8779014781fbe54751739b8ee27b6d62452784bec3217ea82a39d3dc64260623e94530ff0d064f42c71e42e0ba20bd8e148205e5dc4dbae3807fdea999816428d380a4c5f07b9f7b34010ba6ceac91f5a9cad308b8e83aff1b47d923bc3d5f06cd84e1c92df158f3a8e51decb5de6551af7ac882dd91a268a56b571f342f4dcdabbea87673fbe30f72a9ce5c222dcb1726c04b14fb390535525b3c8a2ce533294f07f38d8cf07d1f7af5751f328c8347be934e0f73ca110bd185b2a4916149eaa6ddc2b996a68ec71cbeff30d7a7544d3550efb9dde600b7f11b0e2ead8ebbcac8918153eb9e53eb01fd3ac62f66389d859e10b924f528542169f7636cf0c718b6c34f1e0096b46115dbc4fa6ffb01e4a" + }, + { /* i=318 cDividendBits=2611 cDivisorBits=1730 */ + "078d42d2386eb3b67ac91a9350cd180c70961c26ba8c60dd0b26f73b06c664f2c08360d940479efb328eed8b6828fd383f69047f6158b6af498536aafe9ff739819d66f568dde34b7827cafa92177c0f826134280f8f8a65bf5c817d1031c2b4d2fff6dfe5edefa496e54629dc3f8b70faf48e8e80f5d41fe39c3dfd9206f4b137c31b8d33e95dd1a23f55561afaf188ff498743cdb2f17de22cea1ebcc3aeb613532f5fa0e80bb6cad3b8e006864a4cb5154caab2b1c7861aabeeef677321c2fe27f4bbb277e58172a6e9bda47a13aaa3963703b31762f97b2285551751c90e4298a4850b30397fca43b864d2ccb2ed6b8ce1d308d0a27867bdaf5f2b7270ac2719a1e5a2fb46b7b6a3e641bbff20b395e1c58cdd312f93ec12c2427d7d09efb470da2a86abff1fbaf574b806aff709bb1e6c6a49bf08de59c1c5135508c08d78c11fb667f7ad", + "02ae3ad5192b0381925ff0b09f89145c6cc96509a62681aee442822bdd6e2cb1decb5e8587e29a198f45a2fded2a923ce8155da478390fedc8af6aa6d723241af92850e0217a1f6dccb0ae32d0dab100fe5e12ac9062f0b14278cdb07d80354fc4e8f73ded450dceae03ab656af030f2beea4d9904527fe95cdda88d5f62ab78430894027172607d1eb301347720255bddef324743dba96a7358d82d2443a2498e85c585dc3b5cb1fa7e3c1e6801843db4a71910f0ac9313a56c1887cc2fb4c8a8d4c790f3cac8cff4ef43b8da3377b5702e698964dfcca51b", + "02d13564ace4269f24218e78d8f6a0d7c5122cd738e3709fda32529331659202af3e68c210c17fddc9da92ff6c0168fad8296c27674ed7ef2281fee60501dedddf7e876b92423923b72822b94407c0fe784fd8a2d475d3f9c9bf01a1e50de20709336316da3744f86f1a704a43925b", + "01b3e0a6224909c508f3045f760d317581de607c7f847da830aceab66d4daeb3b24c76761f6507d01457dab31abf467cc2d4ada8aa217943a9271972d9e1d6d534ce185b8b92cb9070ba5a172d9c933f72acd27cbad42b3b39e81d54f41459f6d271e75bc6be71ac021f8ba4e16a4673aeea0d42c97238b6b36ea6aef078483552d25e787b64face731b096e7cb820fb1b082e1f8dd35743cacf8b01288eefa9d2e01008f9faed0027f2326ed9d4ab1d4f1520f0544a14366a8919c0bd3d77d6c304d4ff7ac0d1e96730ccd5a5f2089b5b4e7fae886e6ee114" + }, + { /* i=319 cDividendBits=3997 cDivisorBits=3299 */ + "17f038d7b7aa7175bc86fcc86efe244db09c4a873c6509a14dc5d374b131a37631c2a18ab43410a952e1b3efd5966b0f3385aec88f036fb8ee06ff7129147a4ad721197399cd6194686069a6952a0e18b47d0b0a62a747da8023eccfd0c4453b0ad9611ef11f7cfd077a0a734364326b507a6f09b9bc1dcf40b3017f334b70d02504489905cf94c6ff8da045f93fd3b1c1b2c48eca394122f853af80b07e76f62cfb830d8be14ff544b9d4d7b3efdf07e85abcbaef5bb5a871106f9f1fd5a1d09b51caff9bdee25e446edeed5512a2939a0fba6b7a59618644b766c962ca380211100a40803b059eb7afd98319ae1c9814b714a2108f447905e18470776b0f039fc8aa6abadc7c4289fbdbde7ba4ecc98b9cde8963e513235524da60489826fa88d2aeadbcfa8f0109bc2b94b350746d59cc466898fc7ecdfcb2807a88f6071aabcfc6f98d90a12fd57e3ab51617969498cdab58454b40e4ad65b0c507b096c63a62632edf63d0cc029c00960cfa1bf1ec3c14c40e0fc5c09e7a0186c5361db52f2d0d3d93602b30d76fa4f6927b4646920e523d960836fd80b64630fb50caf1224b9e7e754bdf244d5790090560f8dd90209842bcf24061278fa306cc3337c05ba95c24f218267fd547e7e36562e0e1caaa5069184cde20e44ba92e0a15c2227de49c8fff7833b7dcd33527f230321b2d961aed", + "03368898ef8fb19d3ca5d484d21028fee9d80389ee957db9b762cc1c2d6020aac60714e08579352e9f3a03c691abd3fd71db51854540cae25e81cd84c7b746769a0796d6a118a7d5a881a47742d984d9b17fe2abe73aed4917b69f405e24a7f21ae81679046b449267c460fbe8bee9eba847b4642bb68c073fa2ee031bf2efe660bcf711f7fb6fa0364d1057bcc815a39a155573b2281beb465ddde2668c6dd72580e73136f4b60de6e3793e90b50acf78bb63a02dda45058e0dd9c42922afcb800a6c03c221af9057d3d3cc344d2290db77db91cb7bf3140f9c4128008ff7537807a1859c1539c1834d6fc7ba29e78b2b1e59ff860c54b7fe8942322809d190c055b3ac55056d964c80a786e67650da39693c99d17183779e30236301243dcacc00c59ccf2693362294f1a4df1645530046fe699164a6e4eaff490df6bb3f0b00424b065d961d7316d094d3346d3f3a25a40366c5643d97b477b401b801a75756835ffd2bfd265aa1bdef1e135641c249d5cf281a427c6c86272bc381c4e6d9df8e3d33908b78d0059fd253d13157b69099f19eddf4e6683f1009fe8e", + "07734ed5c4f86e70d2dbd233f651e83a0c3758f96a01c1dc9e35fa3df528ba255bf34da5316518198d67835bee82cd829a505c337a668bb2549d102e94bf5f02af10fe664472e94b5d8ca7380f44a3f945cdc16720ee4c78", + "0267dd2f1f47ac243407c583b2c3ffb6a9dd32fa1de9d002a18c22246882f004402a6bf12011f87ddc8acf36e8c06a28d6f173dc44983b486b3d2df800f74d9eab11d4f19a0f1c9663d8e7514322924f393a1c206c78f1d67e904337f45e899d78055e10d493324c6122c99dd5025d567038e97dedd48e89482481ab9874878acf1883bb3983cc4ee84a8bff8f0b962b72bf31513d07f4a2d4a1f3345efedb00fbd466ee120b1184009893307ac143318bb1a1620a192377384767557c48ae6b29aaa03cd0dbdf2dfa46bfc0953aacf581c22388ab83fbfad7903118160163af4b021a8180e7724aa89f27b301bf134bb5d6ae3bef3b5155fef3c73e78a718dcc5ddf5356f31943ee9c6d511c3d030f66e394bb772ba3ac02d60d6a019deb50a6c4652230bf1c529d62e772250d8c553edc5ddb33c5c58c865e56502d22177d728941fbf6821d00824d5d7b22b3d25d218a227b60a832606f312aec4e0d07cd72cb90b2cd762dd6f846fabf97eef3977a201c89edc107ef9a25903b03a63316f7518e09021cae232297682f303c4ac3205e9cd54f9d7f5f98a4950a05d" + }, + { /* i=320 cDividendBits=2432 cDivisorBits=539 */ + "f746886419563e731e28941d935e0a2409958cf1ead26dfbe7626c6b18d51b700d03032bd4ed2204dcd429cc203d82cc495ee1216fe1ef7f3ccd19e2042bc3aa2e3f7f2805a8357d16951ba8013886e23aeec6c8aa5a87fd87430271cef48aa99f7f243ba8a3014b3740eaa265f56c6654f136b47bb29bb1b696fb8fcbdca672d20b3f4fddc00a7b4a22e7df6554aa521898e9909087dcab3bf3e8b5f03322fddb60bec9064dba0002310e0fef374ca5fef033876219e8bc55ca3199f6f8a376303266ade35c82724e1a6aadc119b89c44f454de8b85898edc09c5c6956d0a6b002d51e7fe893e5ef89e467400e4aef691775f153a674c64f5161a5f9d849f2dee4c6adeed2391b1809781d43a3cd17abd3b822121fea0a353223952870195c2ded597568181fe541f8ce38d1ce51c0a", + "05de6c8d9760f31200e71f78160acc1db478bbd6792aa6b01d649f3aad1eb92f56ebdf705253e94fcea4cb1d153b499a80b8fd6838be7d987ff116850b2eb1823bbed730", + "2a223395bed3db555564e79ed08d29fd2530b7e0ab45f460027a3138c443429cec575b9912945396084dbd9fae7390f038fab0e3ce94c7f13893917fbc02ede268467259443e21d065df542b583d795a81d51b82c5f567ea2d9650d320e4a0a76437693029626553d0eebdc24065890c692cd2dd46ff5d65de7ff731d56ee0b0ab2ea9e5c22b5c70534488c89a30ca6706b754bd5bf719b026664f3d4b527164c4afeaff4f680032bea80c522d2343d9e222c5e82de1c8a35d84c3a1e38c9e48138248e7205516a2a8502850b2708b842c766d36589e5bc1a6c51cea7159059b9ba83ad8823b74451ce3ea4eab", + "c092137f866814198414cd8372b658f988eef2ad40db6bb5b57c34fc84a670d543cbd77c5b266399522b73d37710b8a837d5f3b035347528ff712e26a254daccfabefa" + }, + { /* i=321 cDividendBits=739 cDivisorBits=126 */ + "0501404d95cb71b4054b9e49575ebbe28d39571c028ce42d748a1bf18ef33e158c1e61dae42f4faba90b4da4d1d28f2d4dca024cb424b71c1c177fa03b15c9027031b2521c6ee71bdb97fe48bbaceac8bc4fda51dea60da223b8502da3", + "18a0ca3a53b82229fbb74cfba8e7bd48", + "340623ef3ad9048953095f6d546218ce691ebe2cb4af44ea1f75d63f2c6061963db1c60c1dc7a78b7a98c7403a292b6dbb6261f91e1216524826d96d199929d0d2616e0a5da3f6625cd3d0c2db", + "02b3e6a4eca03d5b4a4a3dae7a20b10b" + }, + { /* i=322 cDividendBits=596 cDivisorBits=564 */ + "078dc95286c57c2f7a1ff45d8cc63d070e1ea572af60a3ce12fc33a727288e98ecc5282fd4ba5a41112fe542b37c4273582fb6fae28e5d7cd48392b2eb7fde03234be1dcc2bde07cdaf350", + "f41cb3063fc6982a80dea014abc0a52607017fc8c355142ac707e42be8ec0743174d36a6f7f7587e8713eac383463a73518237ac02f5c1016eb2af96545a37f2802f37d52cb2", + "07ebf57b46", + "6baabb38197a436fb2bc97df71c171b1d00fd038af639f9ee67a549e806b4aa8e6cc4cdc021c4b4a3d7a9eca85ae86c270f3e9f792c4770a07dfb22c3a4a8097a93a9fbd34a4" + }, + { /* i=323 cDividendBits=3268 cDivisorBits=1180 */ + "0864df2df203001231c75bb7054481bbfa34865b204a889cd03ec2d52deacadceb8a9bae20ab5d80012b5b7061b257b4d135d7f1255bb82376e5ec90a66e2cc9493d82556454846a476c4e9d307ecfe9001f5d3941a8e8d3bfa8db02816a2a730a102caf2f9ada9f12066fc36d54644fc2beee60dd8c7f1fbaa06369179bbe126b4428335dc3c71b3773ef81a5d6974bc4a7de252a590af2284957fcf519d98766ea52c70c9d4bdea81dc9be7ad1e4e8f84aaf5995067af6b903d71fbdf38815014b086b61540c4bcadfec018374b4121d46db54c2dab34aa658c5ac1f3b2dad5b83be188e941ae941b7188e0a9d4526ef594e788ecc4da09dd22fb0d6d0ba82c2cbb8008412aae1840bffdde7ec0ecbf3779595b1e527eacc126cc78cc07e2d845dcd6c0fa79280af469406322f6de44cc6fa10dfa164d8705f41f549ce178efaa3cb0a22610becb1e31151ccbe2f751cbcffb1b1a0a315804d09de69ea7d2aeae09c035a0a5ec993794baa2467b711c997ad25bfe546564e285ff9c83cb840a91da9574e33f51329abeff61a572f20e1b2a5dd8a60577aba", + "091e9cdb557cf7466c2d0ca3c42bfd64ea1648d2dab5c3cb29c7d41f78ebbf210cc196a80cd36b2cebccbf125f40fe5d8342869384d6f973d812d40f066b3d376d232114b07534e4e690bab3f941db44b8ae598bcc963a0b23da571a711981164f26a8022fc3293a770ec5e6d1445e89b25c57c75d825eb7f05bba55a82a2bf818f714d5dab21963078ad4600b0ddd7c4a435e70", + "eba1fae243179c5ed2043f043ed9c3effae2045a4b84b12e09c4a4315811d9a494432861162940031125e6ac6e91bb4711a44eab4b8e661b054b5aef722b6cf3f311dcd05442e44b63af7aa2dd103654feb76151fd15658a5597686f70afb594a1c77d0686069b4eedcdd8a2abbce1842b110881e10aa46fa02a68137a2ddb05d0b1d8047e9e60d7ecb8bfcffdf0db8ca8b3d61ad475bce9643e27b6e97422c91c3ed3fc67e449b19a4acb31f2fb5fd38854c68cfa3fe781b4c0a24174c2d322d66c9c6ee33e0c3d2121a1cccc2b80a1aa7b6066a04e51d3b9aedf6a614b0f48e472e51c39fd47336e3f2ca62af60309ede3c47cd5dbcd1c17df475c69062f721b23b6a15b", + "0858218ed9bfcc993aa36294e0f94b4bef00a02123acae43c075a1a9914858e98cd602f5541eb27cd18dc124b3857d4674542bfebd5f8598ba424f9074c62e77ca4370802c4e4caff40b4e9e0e865b0d47f31e9a834a97cc0cf72c5142f3cea99c799f7ebc6d99760da2effc61aa77747b3fa8bbe5f5df878d0119117d64a008bf08bee3c99b43f4e43192f3cc302009286078ea" + }, + { /* i=324 cDividendBits=2717 cDivisorBits=1897 */ + "1bd4818573ec040006f3f9110e1e3b98fa669171280bcaf719544d8ae84111c932b2cf1198bdfcc1a570b974ded5dad2f046245ede56a4870048de05888fb081d1455a1e133100559736035cc9188619e0e22674e018fa9ef9a97491b0c7aa1ec055261ff372bcaf6039a1b9ca4eeb0660e8177ac16b1c8e2c9dd8898dc4b5c93a2b0a43e717a97e37cd102de3693ac6f2304581fdd41f20b9da4784d637f52974e74efe44c274706d483546137f687615a2a035bbd4053e4ed86c75bdae401db3984f4e9423f5a3ac446ece073bac703e2d1932b1504ee25dcd4831bd2f22e31d95c0c47a6985023281b8902043b9c8b586706a038de2ef7090eb0a2ea2a3a4c382fac62609a575941bfe759e354e37fe2cf86d9c95ebb341c6ee86cc029d234427bf49131d4a5dc061fd2a2386abe0b7a98b1f45033f9e2ded6ef73d2eb0182de466ea33401d98921de80d277a0220eccffb9a", + "015e8c51c992c48503fa3829e397b286c416532e4ad223873f7e8e45170fdecb39362f1d8c19ee64b373916128c33969c864a43e90c1907cb4d9f52417491cb2646da88b4d59ed86e91abf01b4aa070dac781998a6b128f3ec4704acf9d7c5fffa752c4993556a7530808e0ab65b5f11b4ac5037429217fe6bc97fbe4728747ae380b92042733781ddc88d6a0da000b1a646985cdee797dfc8c8c1628b1fe56dd3695ce8e3fcca7fa5f11c0e32c4069598f4c14bc1205af3f266a429eae5657f6a13373b72f17646b977717307e01c519387e313f9bbd8daa9a4266ca447edb8e85bd074e533f93508d47c4f7285", + "1452eb4989e057906738735d85924a482ec9fb0177fc735be55890d43034cddf9e40c3f532679b6a3fa7a8be8892aa287ba4b92486b1aea35f614710f04663efb65ef3f18b3c0d2e87116bca62ffbada1a87e384417e603e094c918f090f5e89c34d8169348c7b", + "8588544cf5405840c33b4eb118d731ba08addae7739234f418e2de8f52c10cf402491b56cd85a89de811b8dbbc357507854f036d933d04822d9a6b5fa92ef94771ee0b04ad2b572a8acedc174e6d61fb1ed259163e5acf95bc09f1c82da306fbd1937bf65445f73aad47f1dd08195ed266963d60f84b136eafe967d875eefe42ac342ef493156d33319cf90d2de090690a308398124e583c49aa018ade8fa62bdac44ca8096df125768f6d41cefd99bfdd083123fb182212e4493d14c14bab742d3542f59e26c25ae8e5aa1d6ddffb025a2a6906ada3d54f4e5fa144ad8cd0d90f0684934c863b03ecefff39b3" + }, + { /* i=325 cDividendBits=3949 cDivisorBits=1754 */ + "14af2fdc45baf271a356a7eb138740878880a059f038c3db3eecc5a79584df4189690fb8c723382592e5bf1c35ace110bc441ad4a49c25bf117974013ed84813ecc55154e915df3927f4b0adf578f36d7b6bdeee4b4aab04e67d4ddacdfa23b2096ecf37029b41bec6b80b59ea7ec63c8536038417203f03d68bd4f8f48fc6ef3b99a92e4621cb055fca63ab309da2d48847d4226681dd6a4dfb800dd4c2673660b41ec0b2622ee2a47d09b3ed9188aa636f70302ffeceed4afa30db1c2d0186b8ced55fe71046f583013b051872666100a2a2a64ca460da016d36e92da847a1d19a2db6c0eac1e9b431a48eac4399868ff63a7e9da1ae2132e25365ef978c01dff4067007275ad38c302159594ff92b00659346a4cc78aadda4917e5f98ae5ebbf3fce51b1aba7bcee6cf7ab42e94bbca28b3347f175f9ca82f93733653f776324588a8c958f5ed07462466d28482c0337f65ba954a6eb519a5e719d203fb5f1aee106af83fefa794e9557a20e3bd295d2ae3672b0c7a3b1420827f6151a41ef32d084fe0eaab1bb5212bc097a7fe55babf02f8d0270c6f93896ac4edc8329aa4c8a31e44ed37746fc251bb3709cddc9247ee0c60659c87c4a5c6de81e371067093289ed1faf931066c0ada5f72bdf3ca9a0cb382c062cb4051ff71c20e0d6d42770103e522c1f68b44c7e9a370", + "026afd8ffcb5bd8ef037fa769bcacdb041cd7ce58e07b0f4e017380f0648b5658ec2c45c36a8332602b1158d6c54958768119aae85c0093ef0eed38e82e864faa423d1735d29e24e85b57db5369c45a2d1c7968e9d8eecaa80aecbc9d430d38e37afe33201a2a205a10eb5b38a74de0e856e508ad6678e33aa2796da3a77a305213980c3e605a2c98a97d21432d61e570bc6d16ed12d257fec66ed09d24e9253772177d78f65528050ce663a669b8c343c70a733d727844412d86a86e119bca521a4b61c047169be92ee393d2f4f482264d3d44676dbfc862486da0b", + "088df7323797298259eb2ce5943c769ca54aef01733afdd8e4d48bf1de6c214b148192e2789e88f1324b3ad3a1cfc9f5468dd34b13e216f6821dc34a625a455ed9f330cb960beb68fbcb7dff20e011aa8f8612ef8d25c827aa66b0dc79f60e81b9c7eede2f56904cea1ee526c422a34daec8fea0eddeecbc8950b8dfbb6fe915f54422704535be760280f502c752fc8cf5948a17c1e548c6f39427cc17583477c759623310be916aceedcd1a1ad8bcd67c4b3445adf8deff4e423e597920b3790e967e598886e6a4b9564049dfe0ace3e154ed3a0cb1d560a6a674c4633db0eb3cef6a05f4405dc59d4d9e761fdf8bd879c682ebfef3f725f97bb2a45d0bbc446d16fccc0eba02c59553b56ed253b856ecf43c", + "0168a1c96d098eac9315cca1a8e1b531ae27ad466e57c1410d53bf6553f20110b9e7063289e86847b2221c8afff353286830d77238ad427c2dc766b84767ede3069b74364f88562bb6ba20b45f664ae517a6ed400f04531993101cdf9863f871c0da1ab6f60e36bc7cc1ba2c06c3265cdfb29fe985d34e592790b5179dac4e2a6d69dafa779d8dcc1b769a2a18a293e29942d71fb17ff146650e1478f8940d18de4647e75c2f2025c2d1bad3b1a30194718d269cf30185ad2444a3c12a2d5f419c93b501a91bea0101f92da644e44083a5fde05acd243e8afc580cdc" + }, + { /* i=326 cDividendBits=2530 cDivisorBits=2379 */ + "de02a759dc38ed316ab8336fa99de4ba5a2a74e28aefa8dc561f9d08ae993169333ce490306891e77417915a01bc5ffbc0dfd65f79d388a9531b6b183a3f9a9c595798ff14ea7045e1e83b0137483a5436b8bc14f4105d2b61829d290a7f3b48e0cbd94af21fd62b754e357bd722deafaf3e607e50c0f212eca637782f6bf034a07f39718a6c30e4fd977a47d4c1284fa5ee297877997e8e59305e13fb23408a68f2fadb603f569d8b07d5d0eca777bc529e2ee83604fe7550e119c248348446cf82352ddaea0c4e7262f7ed2bc99e0964147bc66b41ed057800d397ac0996fe822fea885955d937757d84606574f20548045ce0c4541d366dc5283a632df78b02dccb821cb73facb8f1f02df95981eabead640db2b35e401e491fb4d518452a090898bb813b466d2056eab93c8375b99347ca2611ba829fdd1aae75", + "04e9efb4b92146397072d6d08a744751251ecfa0f79ac0310d3796faeacf3e584f69f272e78ba945feef3534d412319219aae93acb07c7731deea81688d02e6118d7336cd156a8a4ccaebb76b60b20ca07b3629605abcc6f5ca382baf4d1862b2ad38928c558f49e93d47c96cfb14612efe09810366b8f3258faf56e76cf29d783344c20e51465f7081c93b6a3e5417d9c83983a6c0fe2a87700c1ecef55a0a378688f03b6a22e7d068815ba1663f556063ed941d2cec6f0010985dd229c60ff2a854d8f6820fe554470399f721cb898ead219177f26de2c487f970fbfd95f873b7be834eb3504f859ba23117638435d36333e7b6e4111a9b913bcf5f00e688f1ea27d801b0ae1c77a86b2fb489887bd797dd291a74dfbf7b958936458ff89a99b8e2906e56c53c10cfb", + "2d2e4d3bc78a5f43359ac96ec92241c9d13a29", + "021e92f55c8dbb4ab4f830dd05160bb6b7c9bd8b425e6978403587589341c5b5988d93bdb219e819559c2de0e64441da2d22f25ddc3e71e2724805f0bcc89fb3822a690b2f36984895a3260f246e7c05f088f3d6d541d1348ccc43385341cb879c8c02a28448839c9296c19f391a4e7b1fed199079af16988af8d4b76ca380bb8ea95e449fbe32a096009dff2d41d0e2564568f2f1b922d55610d19b36806da01e893a9f54c0b538b3f10741a499b45abf457390e33753868c5b9a1526b7885123dd6b2f7039daa0563760719dbadab404131c44849f4048e1ad9db128cfa10777997aaa1e25617ef414363597c235e0e346b397717c0531c949dd232a0e9cb5c3f58b84e22269396e7d95eea3e435f63cd6ffbf69096a5e747e9b12ea8533fd3977a1a1a3c50a53bc42" + }, + { /* i=327 cDividendBits=2076 cDivisorBits=314 */ + "05ac0d145db89f883dfb92f2899b54aefedbd98ccc08af4204c5dd43046b3added3a231c26d4787221d9ddbed757cae292233c741c9260d38c9a87b40dbd79abf9597f38203f62cb8c8e901d759012c8c532edd54b481d062a8795bcb8d9f6c292149a813cb905fc56b90f1c18fb1fe7799b1e02b2e053a01f72ac0c4ffb0b361c4cb11e4828e16651846d1838b976c06ca2fbf8e81e124f93178e03b5282f83f06952022ac27e5673cb3404a3b9b2872e59cc0bb02ef2abd3e4ff718cc02e35c35a97f9a6d5744997ad0db2c0f08439437098a529494e513693d30f2d0debcd66331e344daa643e50f84408c99bd95fca05e3d7c292724114d4c3571ca031880dce23e8", + "c47338577bddf84e7ea018176976f97ff033df9541fb3beb90921fe9f5105407f97e605d378805", + "0764361ed56b2d1ce47c65d2867d7dcf57d057d5bb77178e5448b73dd31f4d364135d987cc843f5ef06bec2ee10ca9ebba278a7e8750deb4106d6533670cc23aa1b73d804bfa66d7d80195b8cf5755cdcd7388570e0fa64f034724c66528fbc9368f38fe248b3d68b6377373aa0898eca52ac1d6d32309c7c14948281da4b1f813a1dc24f949d250dd4eb57bf52d5274f8790a4301fdfa20990ec17c0e0f5602e027ffdc737012ba3e439154d706c1a09ad99b14e562a0715586a2ef6da7d5541042333441776e2f49703ff733336be0447816c86b5fc705096df157dd", + "62d85f40c99cf68835007a144d93b56e2ebae8a908cffec06335a0259338767c64114b87ef0497" + }, + { /* i=328 cDividendBits=2187 cDivisorBits=2095 */ + "9bc6c223852078d2336ce10956b07c0a499af94a9f0f7047bcae3ab5619255059a3ab554add576da7f9547176be20641d0b794de6ae873bd79c87517e9d9f72d00b08aed48a73139e1b17ab89fb72166b57f479fae6f541d219b658bce19dd3823f9979058948e0a1fbc8f11d4e93aff44e7fcab258845138b40fe106e34a4104145771414381304cd35d6e12230bc120cf199fa12027023abae452659aef3cb94b9178f5bea0c0f7a203931320db5e1c7cb1752020f4306df2a133781f2ce9365b1392735cc0cc50ee6adbb30ddfbfce5a22552f8154f6d52296fcb18f31f36080e60743e398bd6c93ad5dc5ff86924b73348abec4853d921bc672a893b1c56a9c2993d6cfc17a487f8720bd6c8838fb5", + "4781c273f13d4009c9ac55138b66170365116b8cb56ea3d4fd5d57270d25151c62b26f99afe032956734fd3126b27bec99d8694ceef09c335d646d9cab16621c318624d599dfc5e8bc5a29e85573dc5c6db642345e95d95a17a4a37bac7fb768fd20e985c40d4603970fdaecbafd4055047144dce3248835fca925465dcdd46e2e76fa04fd740947c770b1b4c05ca7455dbe1f50c91c4200597b145fc15106b138f28a90f50f42937c72b046d72cde1ac4d9cd03fc5760801adbdeb5a73969fd8e2f0865411af83343f5b39eea39d9bbaeffee8d7e6e5f3d28a7ac566e99780aeb9c81a18691f8f0b0791a8bb28eaa27aa14e38007d2452b65a9470ee04f8799f9bb59ad4482", + "022db0f675b455517f894e2f", + "3e3b9c4af7b503e1b217f69e0493adc18a91698251da1568bd2de25960dd5f8b344789743481b237640262b1f0eacdc550db82f11897eb9268a38e34758f005f67ed0c46308a47426b1378d7ceae49e62acd0941f109aa1553835d9d03b9a42488f5ff8bc174398d30fdc8fed7b4b165ad464ede3b0086a61f08a34ff03589e5fe8c7df908f07fc3629b6fa2a681f1aca9487c1778422e1b7e2f7d0f5176b395f941826acd00e768b2f0cc669dd40a603b11864789af5cd350eb0f5c2647c4d7081b23bff65d6facad8bd14ad40a8fedf3314ccadf7e5db16517b6fc52907eabbba35bb2e460454970f4b7ec0fb770c9e0a140d8e487717399314f619a35155c53465f425fd7" + }, + { /* i=329 cDividendBits=3615 cDivisorBits=849 */ + "58731eb15b474631391ed56115d84d2808c28a2ce319bc68b540e2ca147b3a86a30a3ba1b46308542341be708729944ff3f167860550e0756ebd66081b28fdad1222be61746cf85575f365f4c9e6d7b8ca817ede51bac20e00894ecf07bcbbc2bd05f5183a2075ac4d42b53f1065e36a3bbb27ba91665528b8dd82714235b2e5df029868377681b59305f0f7b9860ad012aa6c1a4104350658882a23690eb20a8d4d0b26ff557749d1e0fa687dfad1d696d7b660f0aa7ac9bc9214ddac931748c86b0c4a1583e7ecc698de161f344b0bc91bf4bac07e2fd1473d9c79e3df19874cc63a12232e712aaf294ef6f072aae57a621f5ca57e63036086c957ca455339532459271e46f98433b34722f69295c8f1653ec113bbb8f03b7443098e4c42b02767f78c519c5028e35fff5df4326a56627ebbb5e155e81a92295ab2aa6c37dfd135ed4eb0ee255702c1bfa25ff187bea8c860947924f9b35f538591945c83b44fb2c81e490f4084b2b1ce341e36d5e63b9fb7c42a8c85dda56cf4ed8c6272bccabb7d67504823a913842a0f35aed47b48b58cbd8f663291876d3540694915593e11c2c9974b8cc6f5fc19aadcb9d4f0a7362ffb3bc31bfc8c13d8fc42c1203a28d56975", + "0158e8ceab3f641990a71c50c03b7ebec0f8f0b37b3ebb7089c9f3becec66aaee4d7c04255ea6aaefee94feabe208d7f68b5a4c9589d6137b89080656254617d6597c680c0b41fbc318d2d7554a17969d4f258f7dd04d2d13243d0568d7eb744a891129047c695581a1060", + "41a643bbbbc6d988abcc377a00fa774d6ac7e248859d411b97ce86f6b267cad4c7913ac88f43cc44e258f89cf6ca68998773fe474fad25e2414118d2bdff55e466a39e9bac798cb059a641f399c6a4c733ed50dab2c75ad13dc635b4f0f47e7f65fc665cc00742ee68bd32ea25edb5e1bac24de4f878eadd2fb027c7690672bba0380e95e025f854f1e41f18a8fa5334efb41aaabb135fbd036928f7ec812e321830c5dd68a7e9b9e30c558fc078fe6173667205004d5737247c6cd5ecceaf083971df5a81484818b3a00b4fcdf9db70f8541b54b0d97c893b5b6d9e2e62c6b4b5d76658141bdbf82302490533b1f2d60604f0d88ee312c65e45dc022e61c9b9035a4592a477d2591a5eb8743e506601d935ae022887d32b91febfa890a3f9b75f59687c11f0e7e0708d53c9a474a3133dde4510427a1b1c5e8d46e6dcd8a7c157c88938dc79278299631f8e426fb91a0eec195ab925403d280e", + "012667fae03536f332e04b976d4636a371f8f457c2766c4e3402f78938e3f44dbae5e3272d2971566215f49c9bcdbd29d633b45fc8fba25d044fa6e945cbf006faa9de98029a742e1b71a8e2313b72db963f6a1a6e91bb5b80f54d2bf00ea071093329ccd6ae1d5df98435" + }, + { /* i=330 cDividendBits=2806 cDivisorBits=1348 */ + "33a1d9a31958431b9ed89cbe786f999c2c2b5e575313d4956651f5d3a53934de75a349480c87b1becbc3f12afb2532fbce63490f16fa4bfbfa918513ed3e682b41df5476619add31ab9cb52b2c7cb45fe952a45456f645552eb988552f3ee2e2176998735187f9976c034f13b1f35e6b6cb4bf3cb1ae12037045eb145cade81e091871eb5459ecd3a80424de850c35e03cf8453753fed6a8ec80c1b61f88c9ada9c3b9c4bac55a52dfbc9e7c13506732b32f8599f5214760d2472ee297b92bdec2fb3635cd563d499c20463f4d6c1e04c42611744434af30afa8d2dc5e7d5bba073052815c2f85b894397e8700bada8c5422ae4b103b763f145e1e94116cf749fadb30e29b0cf46a1043b6d86e44421a9a36acbba534b391f61db65b16db21c3fc976d3e242966f7e5f06bd8a3e06ca579d1aaebf0608e7e106e1bbaef4b586ffcc844f1516f93e04dd74abdd27124b255b51b98bfaf78f14be1d7d0c69c2d", + "03fbb8fb4f09d2ae1c09f5d248d497728fed81c688df1607da42e19ddff717aa1fcc01394c16092dcf27700d9352d9014ac84ec24813f2505ea0067d9db6e26cfa4d09b8582e6e9243bfc26babc84529ed7d3e5ebb795a1b2816f045b98edbba1662e42890fcd1527eac612b26f98e6951b3e369f510fa5c3c97feb2f8f9a4e8453a27d0a2f92c9d0d8bbceb5fa5c1426dfb66acebc11faabe80817d70a3999c102c63e277468c82ec", + "0cf652df182d0823cc2632edbdca66cd9d32fa796c2b04653b82066c314b45fc4002b6f7391ea5b7909a9399864e1da8b78c8a45cc9be202c4035350d60b1c62060df722e370e46865870d5269deea51a942d32b7f89444cf03a2a2805e214864ced0f2560f25a7e765c26eadd51847dce69cd1726dddd9bea519d789a6dcde2b6364aef42552f391a01433a813c8eddc34b63ad4d2dbffb59b70f89781051cdf5c3373c5f8f59c0bc9946b3ec192b03941a4658fd92ee", + "02290eb3129276c504e0c92e82c45d369db51e44ced974657cc8c4ddb926610c1cb13a278f098a8a0da7b50a2c9b29b2e12b003f8498f4334f89733d6c9fdab8fca26fc25b17f054674b50f476cf6240531067cd369bd9b54e3dabb5cb44724d16124f23f0d274001848f176cba5d41e3aef7b14d3975dd55d07d5d66cbac78def9bbb553a03dd5c46f392b29ff854ccad17bc85529aa91eeb23f864c436a5a85ee0fe8651943e4cc5" + }, + { /* i=331 cDividendBits=1445 cDivisorBits=700 */ + "0d16f339bf24efbf96738705d7e96ae3310fd8be316653f3b144549eeca84b2527e588d854e55ba6aa3f17eaff4696443032fcf5a094a74c2857aa8b1d058eb17c37c667f736c541a0a340a216ae7b363e3acc8d63568beea2faf0c297c3dfde9306d5c16f62794f71a6aaaecd328056f79cda5dec7a1f60e9af544a903c2187a1ab0f4686405976cc635388cacda5d4cc0ebd09a0a9cea89acafc4b4f464d509ebec2b5299749d47eb5506c233c7b1d0801b06552", + "0a32b0108db53d271b0f8c47283d1f12d019ce20a2619856dc43a4841d134e891a457c7e9e7430c51855bca52ccd990c58b880706bbebb4ec80998b9221d6b31898debe9137de70098cad7724bf6b00c70b3a427253b8c7d", + "014896c763ba2fec618fc1c4f4184f8f4621c16be9ec931e4aee6112414166dde6b2ebcd29d12a66b3db4c2629f53c843aca51d9156d05336526816282f30e5c5050779f04e6add2af80ea1918e9f2fdf2f5538bcf6904ecc3f2626f4110", + "055a797173f9b4a0e4f3b200fff48503f0e696c8e17ef548d5168868f43c0ba3c3bef15477ecdbdc34a06c3fb4af9539fd638b0e5b8f22b0339bfde24b04b2cd33909a7137b120bfedac4041af3dae4965cef45dcb18e082" + }, + { /* i=332 cDividendBits=1586 cDivisorBits=1493 */ + "01ed97b8ad74eea0d8ee8d61bdc8532b45b1910fcd75a4fe9ae6cec0aabde46f4c8ae077f46f0fd760b0ec55f7e112172f3cf605c5ba17ad1d8552eed59a12bd77b5231a9801a2537645e07adbf6778f8c7a1a3558c7ab178ded787a85bb410060d47427cc978e78926f4315f0dfcee793dd57ee6dbdc9a211ee5869c786d64fd884c2103178b53817c18763ccd6c3727741243b458a205dba6a4f93573302229fed6a0cdfcc541b902bd7f74c7bacb18b18e4d230098cd2740047480ecd38c231b7aafdf72340", + "068765199ec2545bd1250a234e5e230c08be29f6986e3fefeffc8897b9d37125cfbf2fbf03820de7096e42bb5b9bba62849d13602132565b55e69b0eeef6330d2573bd1c9a64434b0a16e2619d5cd3fe227325c3aae9b541055ba830aeb61318b82082a36a36146b83f1d18d75a98b1742b7d29e75594b5f0da802fea883dff68833499c5802bb5b830f3f365dc05b4e7ef4f8844ed40cab8baf2fc6bfb0df599021b332a935c703f31475772b82279b6515e77acfc2dc960ecc7a", + "4b99f26c24f35448ca3f7a29", + "062bdc7af0de715aa29c91c2abd724b4340e1060f561fde49a3f15f96893de70c88c186a483b2b79a4fe5840eacbb12c2b4a9120d1c3766d1548a516c48b9c4a0f6a122204e0e772210180102c66293bcea976df297715329c19034a8bb5b846cdbdce2bd1d946a29ff933a8beab4dbb6dd9ee487ce0970e984eb6361f0ce95f4aefef94493436a8f1c0b19a819977dd7d7befe89a6ca36d470617b6cc1429585fb38810cb7dfeb17f795e34d49f0b3c3f862fc24e3d8752203fb6" + }, + { /* i=333 cDividendBits=388 cDivisorBits=94 */ + "0dcb0272c42e6c875a20ebac54cc7187c05ce832cc6ad3ea44cbed3a15664ec5daadd56c4fb934cbb4324b45e30a7ad9d6", + "34f833bcb890662147f79f64", + "42a94012e158e18e7276fb7ff15812fe1c55b50fe5fe516753e2f9bf669f20e0b3ded0398d", + "048ea8bd867674320b5acbc2" + }, + { /* i=334 cDividendBits=3453 cDivisorBits=3010 */ + "0719a09e133b8334e695c2f490ec8c6e6f8c98b143857e1a765c005a2665e58c57ea5dd9321c26cc356d3cd4e09c3f6eb0b43883af8f8e39d27a14d9bea6129dd802c25930e54488b5d71d5269fe2af451a0ed39bc798dec8b1a3e9cd62eadc47793d71153b090121f67224ae896e257bdd1670e20c63819eb4959c5e81742fb3b990d0ce1aea73e1122c5676c1fe7f1cdd8b2d51c05da60e683f582d016f69e62ef208baf14b61e5fff1f3590e7eeff51faca6ec90525ff7884053edd7b6a751346ba5544aeed0dd4cb46886acc09ac9403267e8a2a9b6df9717e849a3bff8e5ba6c219700da310d83adf70ac2ef0984a4f9c02bb9aff1994acfa16cc881b855c4a7aa9229ef42bd9dce4f762b51bd81b9b5b017ee1455e92cf63fef808ca03f719a00385777c12a0b291ddb1eadbb72b598c7069294ca3a425d6c65ff646b1cad1040a234552c48cf74fd222c0334ffa3168db9725762dca7d0ba60c5f403797546a24c58b04abf477a9da37f80a8813c60a814ec2c301bf764ede91624c2d2a9dbf24f57ea38eb8a957c456a87c5d858de3c16c211678dbfd90241297a4fccdd45c4f77a662b4f32a2c95f08dbcdb", + "02fcd3eaac78d1050ee54a21aebec85a54034ecf6103d24d3b181fda66d186832076e7e9dcabb0ae8913df45a81d9d23cc4d079737633445dfc979f7e630212b8f227db4a23fbe138a35d153ec7c2db44261a8d00efce7ba3b8b2ea015e7cc8d9f9c96d6c07eb2e686536ee1b5881abb2f2a11b33c3be9f421570104f20dd0228e38eda9d5a59351b6b7381ceae93b6d066bf9270413bc1bb0eef498cec7ecd1b4634007422ef0cab6e8b6fcc2df204f856c3bb7dc1c2a9c985821a2b32cadc0326f07f188d7b9395d6e5d94351d4929ca5ef292d53b1c9a429a0d2f3c4480d367afa1fdb8175404626db0f7a7b77a32ab6284524754f4e0dd651916589c5a8571628b1f3477a3cf01444c0ff87cbb4eba9cdc58b810b27e07f970625a8b08d02cc02b3f9bcf75c17af9d8958e5301357437fa9c36c2a195b722a6a1414cd958297cc3d8c9a4cd6a24685aa73e288204f8cf120ab6625299eb7db80de8278acd0c7c802252d9c0fd3dbbbfc8c2bcfcb91407193851a9e332fd", + "026063842301f96fd79abcd5fa4e8e61e3975b9dc842a3101caa5e2da5620bffc0f55dc627264b130eee8846303b806ad61741cdcd2a9b75", + "01ba6eddffb74f78e616364c1146569415a6d777122966366a6a7ea2635f60aff6e13d87386ed7f551d747d92fcbdd7322013d4603a7040d466e39ef9686b48e4212a8be5da96ed9261c611d4680005b5638688513cf1a659570574ed582437824f316e4b9b61d65d7aae29aa30beb7f88f404f236cf52ca818b01a66ef2882f2b8a072b116f31febf648355a7a65ce732b65ab1bb30beb33a3d6a2a61f6da39148975a3ca8c704c007cbaa339990a7f588c0b635298afe98daeafea90ea0cbbb00f93773f5ad70df18c7e393684823d7680df6c2e8c8c004656364c42e0d3256ecfeedb6d9b59cfcdafc7c4dd366ab5df4c803ae02e0b60b24f934a63c3e814e329648ec9607677209d0247ecb43d6c82d7ffa8d6d3282c1e55ae66cea73d4e712c003357e7173dacbf313f732db9e58968c9c0428f111b83d967960e94a75377be2ad6141a7dfc658d2e034ca54f5954abd5cc465abf34add8d700f405a42bbff60dd8f7620ba0eee3890d2b2164adb1ff7c1cb2c556403a" + }, + { /* i=335 cDividendBits=2037 cDivisorBits=1691 */ + "17adcb3464ac32f3cba52b68be437f66cd1d74cde17358f6161c377cdbf6145e243895ba13bed5dd70107e28449a8396e405e3b1cd109506fbece4d636a033bea956d50de80b84606e8f2a886433659c1d55c41631a59976a93524105275df4c59618a9c634637aec121ffc62cec489cbcd3f967c1c27b446107a09c2cbf8f013c20b6b822898d0d675768669ff57034eec5d6ad73c7e8d744a99f7ac70b743d7b5105f1bdf8357e6addf5b0871d663fa2bd8b05729e20c2fa6c16e3fe92419e6f6804c147e7fe4def25c434edec2a05af6957b77218e3e19603682c97abf1bb8ac7d783b013cd6b955ea53f28d9b987afaf4b91044502d612a7ad3697d94a", + "04bed35c9b1934234b4bb9dd915c5e417f75045c38661b2588b7d7249b61a4e2502450a80aabf34f63df9dff90bdc0a41e084dd9139f218578b9fc774faf58a9258f48fa6d31d3a57aac8842e894de222d69d7883360a51467ccd055e66c0ac03275e5d2b94d944f4b00f16cccffc0c4198fa3ee3bf2124c673104ed8cf41c78e7772cb5f20a8360c174f43a848f6e4a801d3bc6d8c2098b756881fa8a52686f119be2d51525b49463a54829b27450d8176d51de3b452110585810feb4dc987d1e4be688e1c0f24ea7c1374e37e6efd98428b67f", + "04fd66994003e5978245d0f72f2dd1cbed29de7e9e2bd1fc9432f23a4ba8ffbe7af0a1952a534214fc0b51f6", + "03d629279d329a719e233ad3a6b18ebc32437579cc2cc9cf1375608cef56795f301bb153d4db48d06d53e82dba802ba545155a42c61b593ce4406a2aa3a037c5764afcaffbad6868e07731eb2493a6b1c881f71192895ed374a44487951e97a5f935e3f3f37d656b0684dcd848038565dfd658ae118875f5b12a2ecd265a60f48e0b8a48842dfe49423a45c1d76738a8a0e6c0100356819ba99f53b6184e3d88ec90ff34e6056a6b07dfacc619b1f9adbb0f891fa4f48337ddaf2f6778754b6833137f4f1eb567075cd83602cc6b98867a454c40" + }, + { /* i=336 cDividendBits=322 cDivisorBits=201 */ + "033b658f708c08dd2fbf939f332995a4dd0b0f4bd3ab2259f3514ed1709ffe260ae5a6e3d95d484136", + "4558ceb16e05a6ef84ff7f6f968b7a256a8930bfb7c1e7b013", + "0bee67cac248d0c6d578c68badf278e6", + "0dfce700f6cecdabf9ce2bbe79997874d48d5a568a43a12824" + }, + { /* i=337 cDividendBits=2520 cDivisorBits=2126 */ + "f1eb88ee1ca61afc12e6ce7e84196c1db8497acca78d4c464d986f643a6b6b5b1c6784929f110cad50cabe6cdb215c632996f942f285e4be2f17d95a2e465faccd2b12a933aa2799daa5c328f7539c3ed0fe227229afad188f1ad3cf963ccbfa82f8e31f0bdc9764e54821f9a388aa1afb98d0d18b18f32a0e5948df3528d45ce64b420ce45bf1cca38a44990829d3f07edce8e899de429bce91715e567dea91fdc3167cc24b3b63718cfb6c90387c0f01d0bcc74cf14b9a6e8d96585a7ee34b4d4e2d88a825bf2064449c482acb7cd3406a826673e253bd6b7b59d74de9ab1dfdc850ff2bd277d432a41d7768012ccb92a5981174dd767e9f0873e207eef6372ffece27332e36175da34dca2fe07daf0f3cf54df8085cf122750af6fe97db505d96b4926bdd01ec9b6a5586714e96d78cd6fc5efd35d95098a375", + "201e1016028e10d1bc886e04bf49ef86b2c849d046f8441a05ccff3d20aefc4d89c4250e291f0906092445762f5c2f2c5aeaad0dfcca51f2554d73e0e986f1bad92ce785272fd0cf30f0b4921f8f28a62f1f3717d3c7ca719b79cc5e576e709dc3259603d540068f2177a19b8eacd6b0a689ca391b76882979a66674588d4d0586b691cead2d7fc8b580fdf2f2b62e766e9b7467e222697073175fb3f28901e0d9a093699897d37ce32528c11a06dbbe01b58eb8f41390c6b5c8da96e6cf2831b7dbd0e1e8d2382e0b350ab040a41353731d044bee6eaac43f90bed5d1ca5cfd8d0c9a1948a7ee6e2d4234def7878a9037319c8379241701b579e5bf5845677cac5e5e880712a501fbd7", + "078848b9efeb5727b30f7a9d38f67902046c89f41e1f40fa4d047fe392b14d2f230416d734022faa1445afed5cf263615d3c", + "10508668b07aacc0f78a06054bc254f5067ec57963378a0de99918d08b7f5c13cb29ce14f654836f252234e361fd7b9f14a1c231ee6eb042184ded1631e165bde8be4fce7fb543f2613bbc6cda26d6a848d171a3ad73a532d08a3323bcfea11c89be4f0af7fc5fc2e5b9698e9c6e74b8c463fd3b67ba19a2be261689816e946730c1e208f6dcd0c4f6d6079a409ccb803db643fb9b3d1f9c2d5aaee2ec2ad066769398cbfbce32246726daad4c3cbd51bc90dc8c606aad54d267fd152161e8243b7a9e1977d2c6e58a89a224a2e9f0c5a2b8e4f63f61d26e0abf97ea33b9ea5cfbfa44360030965e8f45304ef019535eb0d329936972cf47a0d542cbadbb9c398e62173d28265a2d8211" + }, + { /* i=338 cDividendBits=2617 cDivisorBits=2458 */ + "015292dd98129836b3976a07305507d6025f665056f38a5bc3bad008687000b7396c83ffdef9d1052208082c73cf2e0ed55ec97ee92d814364172e616b47bac246521b0e7721b3904f2c5727b9155a38747ad61cc378e4792104cc35d4494d3a64ee1f8605868095f16d2d9fd16e294de927df142b6e05e77576fcabb42c4cd9ea993c020d63464a7318bfa6f24fa7198090fd06094d4bad6fc568bc09504aeb280decc71f574b1d148a8df783bc28ab117e38186d3f59f80675b3d1f71a42748cd7b74f5d2362408482a11883b690b4bfc3ba8fbd93eff5318da62954f484571c6763d054f1c8ccbf07ff7d5b72db3d2da7577e9f593d04d29925011f289778fbf8d7993ac9791dcbe472550c351cee33554c3a9665134ce3b09ea1d73b9839a3e02595c9c15125785b1e77aad8bbb1c293c86fa56d9db8cc2c47f1069e7a13e25bf2b4b480e850", + "02bb10519dffd70dc79bae6bcf6e393330bc4e67a7bc272374279f995e603e8e99c84861902b6f47cf467597cac09eef80539f9e3b6593e702363b72bfe14123be1880cf43e8e4f9f62b88b76112b5ded18d22a1a7c720a5192217374fe32984f058d57e2b5b78af5de6312e0a6ba28cbba13f720141186aca10f7999bac8be757b67066a1033d1e521dc17d04087059c81006416cc782cf3b862ce26c61e0eb70867c18bc6e20d92720475acd84f48444f388f9e8cd0d1178d04d76c9074b9220772eaa5423f4770b4e2cca9a5915fdbcf3d8d5d8250cc2c5b6e2827ff40860a517640cb86ac84bf7277fbc5f685830d9a1e13fcd5f711cb6b1c62aeb1ebe37bdd12add0abb7f4802c7c523cc402f01a9852c40b50f08bf7a26f39a8b0969ff36e67df41a68e23e15c75251e01ba73de9f86e8f", + "7bfcb0a04005fadbd8fcdbd79253edf753356b61", + "0238311f708e0a5890c764c530a413bb6f2fead3ea7a734ebc729d57592e38a1675b54b61f9a4e79e37a7635173c7bf2894e64c3b4c100ca465af9dfa6752934133eb343e9855cc3e25976ae04c8e6c8fe4469dd657fc1de17a0ffb485354c1d6cc177d9dcb1be47a9909d98749cd5b12a7fa3aaa1a75c1706a28d1cca2de0ab32b4b93611893b60cb98929fe27fb08f7853b3d6b3b7bd2006d42eba90b2707a5a4bac5d7fb776e855eed799e60b112b2a73bb9c66a69304d22ca6113fa91c1bdff64078f8c679a3ffc34c99eb8901dffcacfc6112358ddae2ec495141c14ab6358f0d33306a357922f2d5af8cc06185c8328f207e0042e6a345b0bc7a88981c07bdaf87753f3a1ff33e1d43b1e359bef1e57a9375e5444192430baa3c98c951fdeb265ba5223d3900114b6592e3a833f68e3f21" + }, + { /* i=339 cDividendBits=1609 cDivisorBits=368 */ + "0155538bafbc1f6caab940eb8445bfdfebe4fb8b769992709eda78d0afda2fefde72b3f8ce26d109fa7c3bf7841365ba3f92cec4eb01d0087fc8537ec845ad7c4eff3611a037ac136639888150f9015a3bd3caae351386c5628235e3254295888775205a09c350195be22254b8b31605e2fa8e6799e55258aca4540816f536b8373d320d4936c2fd8ebc2fe3e6b8999f0314d714333e0265b241d1a07fa28948400374783ee52294428aeab782e5e2d6af9ddd941090ee9e577c2cc73e357c9fe249ae99cfc52061d85f", + "8f405fb901129120e4bf9567aee402a9bb9aacbd404ed54213088009caaa64da490d5218688ea71003e397568a16", + "0261f920ce5cad366be5a3f9dd8931b3706314f5605d95df0eb26da8c1378ea9d3e91a415fd0d965f7c330df2a6a293898d3c4399da01ecb36a8a50f5a0117ca4429147ce56221729ceea943cd719ecaec8fef24f80cf9eb4813e8e8e9d85fc491897878d3977187bdfd6ae0c4748af9d9e471001f18978ab790428901daba3bd1f9fd17443fb7573deccbfde509d793f9deba1e71851081c2595ff7", + "7bbae149662b9289222c8c2f1dcdab70067f70aa5afc8179c49f4567a5de1ed25131582cac819b3a733450fe7325" + }, + { /* i=340 cDividendBits=3853 cDivisorBits=3275 */ + "1a0d731cc889b8809030af4396d539499bd2724a290038c0f927ca6d2e3c44337ea95a1e8ea45625959ddbccd3baf71892c9e98ce5bc3a1d83904f6466dc81d26d13a7f024f36d46e58f58cd2d323c8d7421532ef09367cdf3b302fb48658d6d5dfc358d9a3ecabe64463093efb67673417a27229c9fe9d3ed052692782c167c2530e6f1515491e554415552ee2e39700f1ab106b00f101a5e2699c8ebc47e83ab0eec3c18adfe878cdb118be3c1fe623577352ca521f683ac823553dc75c951eda2259262c13e58f79eff403364b3500f1311f64bc8f6dd62a0c3d70a109fa3faef6a36e8aff7dd0500d3d01a564dec51018a47bd889b4d543a194819bd2026547088947ff5b77682fadbe77c17b5c9910ca37c88ff137ce75e2d751c527dd25fc94ad20449bc20d35dbc0f158591bdc6e093900899ed2f363c6d5955f23e4321a1e3e9df93e3d9ff9555b7df783f193099a7012d78c943b3fe2a19c33a814b77a853a2c678af9b6413287d0d3bf42be4b6ced8a61fbb290be097449d774b17f4a3a6fb074193fc904a41f8b159e66b83a248e81d227c982b1da1d94817a4340adca9b8049329f30586cf7d1edcf0ef39ae31a3493c92e0f4eeb4b4e1fbfefbea44497ff4930150171e2dc75f9692b6bbf22cfbdda921fa8b82853a6e6c864aa1b7", + "06a16fb640ec7a594103fe1e3015938ed5d8e09be5ba83ed9875157c28ef64af178097e460ca8e4b20d3b47f50d016a2ac4d7213742bb60752763a438d8e5c46ac12b8c90798e7998b98013109c880e1fc75a12235c2faa4dc269348577f96dc3ffde20f792bc5651557082b17c05ffcd611e648f01c2430dceb47fa1da9eaddd544f0b4b4b6adde99d51328a53ad52d0854870f50f8455c69572fffde1df70afd25ad026d14ac15755be2fb8eed8c6c29dc9cfbbd4207a1b5c203a93264301e8f57f10fe9f10ab8d562ce3ff709894b20fd9b2afc10565e4cc3088a9f8a23c8db0521b453bae28612674a5639eb69b686b6b5c13427d69d3cc9237cec5c393dd732bed008db1969fc2ada7825150adfb0251230fbbf72f679e70778e5e86096f88ca54c13f49cbb277f22bed078796c81ffa9e80334a5862731b0cff2e86164d3bf6374ac23a6422d71d05442cad90afe85a7a564050e6fd3449a915cb25fb661748aa388454b7727882cbdd608a9f76b3a82f1e24882b311e62bb7098b480db6b7038981a762ec837f393d92f725f4a35f69602f97c104579c", + "03eddb8547bea75c39580dec717b4f490e6848443ffa19f97e254767f1e2bd66fc75447bb18d06b5a7dd0cfae42cf5c5f9c8b1483a5e8a29c51071382c99d7bc42f9763a9d48f97184", + "01c94080f96f4c6b66a73d7f02b51c7a7ffdc00f1cc3d04a3e6416320f68bf41970ee5cde98aa9510cc7c805f6a97cc26bca8f13531705fdee5d0b2682fec260cb2b63ac172c5e166b347aa3d14df1157a92d09bda38bd5c7d174379282643a2021c406af6c75b262ba86cc0c2b0a02dd616ff2fc501c19fca4ec5bf6b5a10b12799f17dfa696ea2a8039dcd36072bbddf7f54982a512fca99b0044b4d94dce066abf970f74a6286260c28c3dc4177309d7c7b93377a6487823b1be2b19a66fc7a4968af16d42d968b95f23fe50654005ecb285fbfbaedd1b523344a501c96897ddeb7412a53c951959bd7a1eb4ac82f4cecd177d7b90be423d3daa8e4b4834b56a69b671d08418f2a8b7df4a3cea30c61541976d38cd1b074c3df42729bf9381d78b7f83eec5b2692e5e199a358f447fa598b55e2012b2b12aa1bff2217c8070a4761cd8912da1f619a4805e3825257f81bf3a1e5434fa5d93892db4952bc154cc578f02473b06f8ce4c9a36b42ef3a0689d6ac66b4ea6460f58ff8a88ecd53a2285c83e8253e5cca103273bcde1d59bba04850df70fea59947" + }, + { /* i=341 cDividendBits=1519 cDivisorBits=603 */ + "76dc3876c267ac971cd1e0612a5454f14137ae29c88533e6f00aa64b11399163fe1c5e25edf27f601492995aeb513e14034025c6a74d1da8601b30d3d51a08c387799c9654d9838720f3f975c7d6460dd11a6c8ff47a00e0cf491a3c10fa7ad4ea71bb3da1990a2440fd74317629450f1bfe3181e417059fd921908ccdd7c7222c0715694fb5df57274eb55907727b58253019092611d72c6785a3c91a61d5efa75641907d5bd576b2ebddf3fedfe36e4114f31bbce8a142fcab743ad6f6", + "02e5d6ed885043896d4653a23cb7a1eee29eb2944fa9532808a01e536a504d7138bdcd63d9515cc6c88a1a2b7e5e52143823a1057ba465e6584babf116f509016baf6bf76c89c849fb960ecb", + "29046aa771d4b0de68de4d9588111fd010a653f21a0678a639412b26bd6f207c1330347a5850c0d48196331b3a70942f9c761980100469d806327aab889e4648b49cc4d7dc0915867cf167ead4d044cd5e9cf07d172e82a7b6e3fdc62105da7918a5b4222e491e0ab94dbbb18951df6cf7f23a", + "025255b92a88c9a758fae57e24941875a222b24e1826f9e6f222771547a4a8f5d292fad8fa56586db5be14efab6bfed0b892c4a776f7b64381c259a55bb76e8d291766f26d288239b06296f8" + }, + { /* i=342 cDividendBits=1437 cDivisorBits=1318 */ + "05d4dde4789f5390f233a7ebfb26c4266c2f1156df35bf9a61afee7a181eb7d9bbce2a98d91e8d66e03b3594663d27ba08963d4a8a288fcbc7a896a6549ac3da768393598d237951a2468b30d588079c6baa5daf2ccbe79c5e0a0a03e0b3a80d2e9e10c294fda6f20678fcfa2153bfdfefcbabe73672b8582dde7d8ee050d1937618e203b51b72581e583458a8181bb0b29925c9fbb99f7c4d5246c8a183bf4f6a1b5dea96f6de49687c2852e7514e4a4a8e25a2", + "2faef6f0fc3acf58ce7fa70dcb1954a3bc4c97ddd762f47451744bba45652f02fa83d523b44a2416d0850740ba98af5606d79a0201d5cebc4b003bc52cc8518e9aaa16fe19f351b84e65fda4ffa9d81a1597ca40368e3d2e3eaf1c7b7e8b133540efe12a66b5c6aece15428a37a673f50e10769661c3f6bd945f3416ad5bea6d180dc480e3c33fbefcfe6ea36915ebf731a9affd642e21227be776fad3408766edea9743e7", + "1f4ecfa98365b1bd2e28e0d01c837c", + "14588194997ffe97888bdae0bd29732f4febc90f595a4bb8086e72beb7d78ff633b7a5729189087099b250ac8fb7e419bd9f9b49f090f8e6235af9cff54bd33365958e5135f0bc5fbf84898be9a3f73bfa6859f9928a9f740d39e8c91c0efb32a2c3307cb8d6c53dca102fc5d027248760e9436603609a7ed6cfadecb282eb5f804da4fa586f8fdbe7edd6e40a36d936af27a62212ebf082b372e156ae25f5a22a24460cbe" + }, + { /* i=343 cDividendBits=1804 cDivisorBits=57 */ + "0928343c8884466f5ba9fcc2b451dad86431ca5872c1d7373f8dad05646fb4c80d72ac65da19ca3cc97cc2649c582ffb2121d98f58a704e92448e68a709185039157f8eada050868a0a1ff1b3bbe3f61984fc4c543a8707514f60094392ebfb46d86baa8ef47d7af8a7831ec3340ddbece22f4b6df1c1c1761de74d5f2658d40b6a396c4e63d0a9c4b56da989269e7e727a40ccf47b0451ac39b64f35a0a969ff61e631b264893d311c1d64e41128e1ff0c2674fd98cb595aca4f71fc01007c20c82be92e8ce195f22adf3037fe8da9b324f0859935ea845f346c80bf5794e07aa8f", + "e6f85b2723d372", + "0a263ddbc8c142a41f9ad79ea716bf84673e63d56b6456040f43f9264c70dcff4346cb644716ce729ec571054dbbf8d30da55d446fbb707c46467905dd7f782dced2d4a51613e580282b8dea6b20b51b9673294b754a341dbbc76a6829f1173238af51c3418963c1956a8133ce7a3d46b762e8782aaf43bbf8de224d191b28d135807bd7ab2c5dcc94dbc3e53edc3352468884f350d1065a8d5691b5a3f53e322b72045bc46d5fe2774e64fa17b28c5659cdef1e6ccf80ed9eb0720eb293b37ebc39f78ae24c02ffe4b8fc50520ab68d0ca6ed726271f7f227c04a", + "96a47024b90b9b" + }, + { /* i=344 cDividendBits=2901 cDivisorBits=32 */ + "0220120ef0e9e1b973be3c9216bd79e5c06033c3dea1cfe64f75411c2a4fee1692c108998244baa4b859ffb87871b541dbed3a0a013b9fd85c594e0b322c3fc15100f5925714f3a17119a94287aebd104c567f3e0c139462f4865531449c8b82b4980a103f3b06a91d30455067b7018fe993759b6509563206779ca64cb4e5730246cf362a52ee9ee971c4fad5b74856414c62590c660db62848aa41ad087406e1832653f257fc06df3353861e37de0c16653e83a15b595dc96d6b60fa627334723d81be42211b208aeed138cd657fd42cffcd6f896ca3deb3c0f0492e0f94b6edbf60b9691cad9309061bbfc86f28cb4ab759f3565ae6ca53e58618fbbba2c5e8a3e3b5f93c91d6227167285012f1e1285002c90b4479575a3a38719e909d70e9cd84c714512a1aad563cfbcb6555c38bc7d399986a620218c6822c9c9dbf5adcd340f1cbda33f43f8c6375991d2787112faecc564d44c6f3da623aaae18307e5088fe1c9c4f585341492", + "7bc260c5", + "04656d56b774f6c26e044bd716e3185a9585955888d23672549281d9ff52c56f37a6f6e0bf3f8f367fdd9188bcdd45c71c4bcd8d9900d409a00f0cec694aa1e63903d06a584021834c5908938bbd37a19ceb88694cbf65034682fdd77543bc2889c2e8134e3a19e3eb4a098a17f71704ed680a4ab1f8cacc2811f56790658abaa7e2830be8ca52e9404e999d0fd297d464a197560465ff1d8ae7090f284b78d65f0bf4e254e7b1d1fe195a6305c5517cabbeb87d2ac7d99c20b65f3eee97693d02236e9b1276519a4787347b643e2e20ce080e3474db8a03def42f261c4a07a7bf0a02f038be17b12f01afdc030a735cd890f25cf485b16d693edc33191b0d9a4c92cbfec51c773f4aa0fccffb5d7c4dfb22f5d0f32d1b6b3e5ceb6d026dbe652a3a69c8dfaeab3f01fe957bdbb7e240a134b1e9055570467dedc6cbbcc44d0fcbc0c6562f7d6fe6bdcfefa452a571dce89e0e241901df1f0eff51a158814a4f123807c995c998", + "6c26f29a" + }, + { /* i=345 cDividendBits=3799 cDivisorBits=248 */ + "3f94ddc855c6ebb1815fc509168dda6a38a0457dbe56c90252ff7de334f9cef803aa049715fab8a365f569c150a6209f302eb0c28f93c645d694d903b29dfa3ad11de881710b455942f7583b340c648204fea1ab6e36cb209072e3cdfb61b4dd925257c16f1aaafd6ee2dc88789ef92fe93ccf915f08872234bd0fd3d54fde537ebe672d6c324d6522b74f0b7a335f408f506109ef761f8506e556f261b416ed58748cc079aa5fb430ea1f4604c8d7306bfd68b223423d1839664b6d1d9589f60740d73cd137741ae2b389b72c263354a65df308e780717395930cf188671e5182698fd03c26500a3d72fae879f29afd65c73f598118ee19490449df356d77017c3e222b26d1d87005d2e9a94e671ba052d4ca0131e954649277f9efa6cb0162ef6b474b47e327e4a4befbd1e54fde8931274b9fc2826254ae0428ace28aa031807130bd0921e22c79bf1e67f911bbc97524274268cf42c0d91854872bde9317b74cafaaaa3a90c7935cb4df7292bddf8731ab0ad2c397dd42a0565bf00558df3cdff40c406aebe981321c19ff895e2c5e9bc2835d9a41213d2ef344b8e7797467d0bc7f1879528a7f966a327578ecade52ede162c29fb2cc1158a2c0dda70f4f00320d68fec7a4dc4628d2c52abb232501e14af06e6592a796865", + "38d38c4260d8ff79e6d4a8bb5c9eb7a5468bf0700fe0929e2680b386177960", + "011e6e7efb53d42fddf72b2afe384cf877f5a3e13a0c37ccafe90ee56ec74a9be68f85067cf6773b51d41611e53443259aea1e7f18a8bdb487130d1e6d01979b5584900f6dfc522543c05a1c882c028b4b175c923afc6bad1c6b717023ebb77672be38571a618763f3d89e3d6cb9d1734676be6d2e64006f51db1798ac1afbaefd03c663d19d94cf1f48b90035cbbf34e6178d9719ef2642244343376f405b670bb7579bf1229025991154f91d37ec5316d821c2ab935156fa605e9b635b8a5dc5b6a1644556a16616f651a802c910f59e14e713a4f33248dd0f32f5341bb26d1f1c71a1be160e6606f7a8f1ebe7f99bae7fd41fc11af9a23c0d208ec74ca9bd3fdda35d06ad6aea77ed84ffc573ec6de90942b8fc69395535110899ae8742681fb89df1fb1b75c38eb6a4d35f408506c0a1b1a5414814562c591ff4493b09a24247daff8c81a4c0773effd794332b22df59eea519f34af73bb7af228482b2bc58a80ec9c058b4de8f618be6bc37b8b08a0e7da91d0c940839ae28a055216c1edd5c3d83a2e1031f44c23443294be1f49e9162b13e45f1e864463d4a8cb81cb523c0e4dfe9d95523744568aca69546e387ad3241f4ee442346388c9c58", + "0d5b8ab1299c675e2e268e0928aa2be97699f82bd06d19d6577b4963f12f65" + }, + { /* i=346 cDividendBits=3047 cDivisorBits=1116 */ + "10e25b502bfe1f470e6c2511fa8ef62ef5eefee477cb0d9612eca5815dc927e1418a8f645b92271c78e1eb4ca0115f465a75aadc17bc74736ee177581a4866536097bd57ea00fa50e255e8a620e887ab34f3af3f6c6aa2c597b5453fc1632722f908edcb8def319ee9ebaf9b17c7037630423772697f7217eeca644913106cc07f2829ba18ab24d6d3d1a92db532521498b20860eb5bc01b9d5c539cfdd8cb44a62d9b8b7de06f74ce5c85b3d679e4048b17669a28b5d79b4acbaea444bd44db3d5e8c443af07cd719f1587fa3d76216dd546f59f0e45b1ae00456d33ab2c7c2cac6f5d00bd1a61661bf510311ad38e42d7f1e9e91dfed0e12aa24caa4255d0a9638144b1f5ddabe0189c4837807c765885b2538ceeb716846e69ffca75492570b03470a856a168a6da4317ae1536dce4a5d899a0837f506e6e3b90257e80bf63f4140064cc1384bbe5dc12e5d829bc6e1bfee707e9de6735286c4879f9a7c89de0b925984c8da7870a442606793fb92b527442b1552dddd8154973bcc", + "0cf07a2b419835400a875db17e90e4edd62ebab6c1a9523ecaf29a66f400754b75d8b149b79cdc1bcd05062ca49b820a4da008defcc0d395ad624e29ae5939495793a39210259bb029b0744b5e107085e9f42928c1a897cc56c5e1f95f1acde50d9025d2b3e6fabe49a688f6c903ed2fdc6aca1d290b5502703ca0a72e0b3ee0d1133970f929907e36e4f542", + "014e0c0cd46d114ae3ade23b6c571400fccbd91d53e64b93d0b6c585a3fbb5f4513f6dfb0310cbd887fb67de6a1a3806770fac18f7a10622997752c376573f757d09a2ed760778723e79597d68d403e294659a6ee2b94b231226c848c9cf0799279f6e6ce85666113e2ff477097545ca3ae39780b6cdab25135ee1bec52c6d3d676e48a3a9d880f39bd4585ff1d202bd2756ff7d9ae7f0480ff36c91b576676b773d59ba3a94a63b73f5043d3b66f8130db1701603af455fd77b57208f18b074d940ed00c688d27285ce1d86dcf5e02a093ebd7fbb165d9f7231f873717b1a730d61c6e76f211847bae34bbeac6902e88d2e", + "02093bd86fcba658e130eaea7d55ffeb6d82e6e7d9f34c44b70d1840b2fad0f29722ae3b423977f4db6c12db2b14efa5fec0569cfcea69de1cf3934cfd873d6d57a2bcb078e18fd685b3534b98f309814c86108c28c3fd6d4a75af404bd49b2b9b8d948b5a280da49a9c820c653b1904417ead64519daecbe25cb3e4393b828f7b702ecc0453e91c948dcff0" + }, + { /* i=347 cDividendBits=1832 cDivisorBits=1331 */ + "4804cf2c294e52efb8d59c032a6ce27493b3ae02f320759ca0b7a8c8c9dced6dccd74b984b5b7baea43d99702620813497448c988071eee004167380caba290efd2a22e7252b46aeed9e1593b81b7fdfa4883869d46d033cffea0d9322f1f8418264959dcd54a7216fab06aeb2cd9e3fd3721e25dbde02d709da3699386f3d6443d3f1309d0e39f0520027ccc8f9c989085909bd6d8adb515131a738153c1d1aef79eca584d593c04865d0bd1147e96353d5f8bc3f6290e1e5e28f8f2f1d6f8fb11e9fec61a175aa7d52beaa20a418ee398bf293b3d8ea65b10a1a4d780a348cf07491e621", + "06fcf9a1e2a377ad3e803d9f4c1e35386612fabd11ecdbd18f5ec29d2fd87755d47b97573aa6a7a37516890d85a0485c087a4784c83c02baac41d4427c9bd9193ffc8223c8468eacf02ca7c438f7cdcaa47192d21a481e7a1f38e94dc481772882e085cecfa452364c4d0dcc4a2701a6c953e52e8879c5e49d766a0d353e9e4747ee6b684e789c2028169c622e53b99cbef04edd35c4e57946bc681647210d0e81c8aafcebc090", + "0a4e488555f391db74cd2803a79327ed90cef2f047657beded99f25f24e71d2ac48a4c3db11e99b9a2b7cf497773de4f3cb2cd51cb71a4a009d836c6cf9422", + "05f56edfd714bbe89a4314807948da14dce7c78e413aee392709368fcf2b95662c1a0f85b38b9eb81a7edb21a55963ec4c1cb2757b9958f39479a386628477dd545be69ad6f172375ac745d5dcfd9bc95d275182fff477560962b35fd99155b55de71214b44d0765b0dee8073c4956104223222d8f4641372b2a1601e21b9edd78f54195f2d8e07e76a33aeb10a88f8f5e4408f99764c621070d924cc77ed789d014127d7f1301" + }, + { /* i=348 cDividendBits=2035 cDivisorBits=151 */ + "058394eac2b52d5b8b4c59db56bbbe5c0c4b66c44331aabea64617ad3251eded845b5e017ca1880535c2238cc7a96cbdb6dec2dadcebb2022ae9ed92d7619e0973233b4893faebe814462709a0944f6ab4663cdd5b4e5df66e7bb871a1c602fdab4e81a3d53084521e9e6b8218e3d5be7179b0a8bea0dbcd31c2447118dd18b716b16a2dce80b90f8b0b0da96db89ac96c5eaab776feb7daaf3e080fd1cd9a4a228196b7c23a943f0f32316a096eccdadc39c7fbdc1c2dbdce4bda7ef190a92071180aef137e876e38d7c734fc4d75f78e34490ae92e2aa06cbc637475c9f703e0c9db5631a3eb26152b1bbc3e52f7442a162c38ffd72cd893942b47ae9876", + "2e1fa3a733b4152d27272ad4cbd0ad9a20e794", + "1e9ab587250a6e9a22b4ccd85089d1167198fd37bbf39f01a87d6804513c5acf8edcd3b189af38713cf888468e86d07c39cc6a9c5d45c52983c2aa8e68e462ce35a066078ff1b416c5bb50930dffe90b6f8b93805578203a147d1832ca6b00616f822e1649ed054044942d33f407381d4d9584fdf939914821d27c0f52669066bd40ed44b1c84bd998eb6b9cc7639508ec5e473af4061978510997ac44ea7661d054c82e871997f7dfee599f7238d181fa24b1556a2df2dc79a79c40b3af22f103932a29cd1bba4dc8c09693958cf67792aa6e4620860b9d7b90ed1fffa010bf107929d8cfa01c1d4526f2d3", + "0c426abfd8a6cf6b24e2ff8d744e50dfadd17a" + }, + { /* i=349 cDividendBits=3261 cDivisorBits=702 */ + "092e197cc2309a01f3a686b5638eea62b48c8bd2fae5722c9066d982f7b9a93231e240b6b922812943ec70dffcc13ee8f060bb4c8fe6b1e63550d4d4d109547bfbd5b911b41ab6807484302a6ed601c9acb81b1834cf25e9e574db714c4969bf1135d6d96f85ed6acc194f0f0bd8dbdfbfca226e1b47c15dca34be56aaef2d748b0c925442f66916ff2e8950139e018fce6b720bb64252053d653d503756d9c44abc29a8905e974d58204a808a82477f856bd4eba7b4896421e49b41c6617ff6f6ced3dc9e1927ff73ece6c6ee96310f554ac834eea7890d7695add3560959da106c28219e9b36af51b06a49944189401fdc08fa2f8189898acec1bb9e3090714ac8100b20c15b9072040f25fddcf18d531f1f7480bb0b0b757e4b78da99e0c18e2c6c5ec2324ac04248ae3fb5bdc96c4bfd8447d52f5dc6dbc443282b51aac7be80efeead678132eb988eb87097da8237497c65082519ea03ef5645a288e40b318bd50f50ca48c9b9329cf0e7718444e67af85bca0b4d8b78a7124eac3de98da90f4d7ee32383a6426722f54e04750dbbd7a6c7916154c4", + "1b0cc534e6e370a05c7cb10937f01e4c266a07f24079935fb278c5b3e9e23301093ffadb8db50e624068e4debb43e706ff5f7e439d62cf61130c84bd0d044d03945e84a29ba7645d9ceee794decdc5dac0325d58df1cc3ee", + "56e1554fb11312d23a34c4c9a0d8bd246633259ffa466a529666a6a20800c5acde335b018c34788cc550b339d79b1202130f387c521c38d6ca2ac5f15a17efc170b1b20deea016f324eaa7055000c3c445213aba2398f35d0db5c27233a6d4786ce3fe4614aabeb76fd3c5841850c4d25f3dec3f27639bd1a3419a70d955f9f60fc047bc5b956a2b178d7518326d2853c322d20eb01f4dd55371065e3866d5acdd04963c3598008de7e315e0c9c1ac8f3467f96174b1bc7e59b825e043d9f5a1d8030270683b35f6438969da121e913945c5f3d0809ce581c10f68a81c3edf0e8712adf440f400bf2cb43dbfa7711a04d37ab13c1f144abfa937ceba91437a6d6f95f233680b4b6c5d72c06de06d9ca8d5a5c225009bef4ed897f4fd91a3df0ed7a6d388e20f2ef03b7b2072406c042d30c751af82994adfe8de1f3f49d2ccf4", + "1442b5770ab27288fe0d248aadf93169e84f1446b3c52ea444d13f92b89769b7df40109a411e1a2d23ce0fea81b9329b042c40320b9f946675c7a13d52a55e5b330169b38e09bd18de17a4a1c713c8c082bb993e6698edec" + }, + { /* i=350 cDividendBits=1325 cDivisorBits=595 */ + "10177d241fd3e7ca67498683e3d9943fd1013feac45da4c2057866dc7c8b6638e7977e858fcf1a35bc14488860c7e7212da6f5fae0b40a7ec6165b373c068d0ddb8ba630969538660289ab64290333207d3a89402951018c18e30c1fecda22b4e1a51b8239e380cd75fa28425c7294f46719bd51c9026fef8f595ae3af48ab07008243b1d1ec4479f4337fb36ccb0192b29609a360814ecaa29272b57754c1d10f40564acb26", + "05305ea64efe9e19756bb9d92bd4e3a5b9f46616d3d76bb35cf21722cb26f96de53f8cf7baa44dd619027d4a2031d4afccc56ce7d0c81139cc69af79a319c9bce43298d8d11e055c267d1e", + "0319e5b59886462d87ef8717e021a3771d61a354d9aed3f02ddb1074bfb381de77d04a31cca6c8662cc989b76bd1d4e0b564ed58a63148a7bd00640b5779978b38059285e8dfdcf194fa0abd8105d6d3ec290ed2ed38e5ca5ecacd7d", + "013ce2a2d69b48e19f9fd687cef67fbf7f2715f1eb0d9903634339ce3f60049d632256c7942fb9d3a4d80a3a95e89cabed48ae7b8c82cdb664aa8967959e675dfbf2867dbfb3dbc7a2ad80" + }, + { /* i=351 cDividendBits=3869 cDivisorBits=1048 */ + "0ad861085cb4a677b3caa201a46309cad0026bd0c165ca8bcfebc6c008d95243b5f4b0a4881656cab7088a21abbfa16c140863aac7e5ada35a1b394ee6617468a10f6ebd376ea7f3c00b27739870dfd89f56620ada41c30ff29c9bb7793284f90708d347c8b165c7071cb731c292e640c48281f1918075b344929c015ede3367184babca4fee1d6f1484b014711a17474856bb3001ea4629d72c8f6ab345c2852acd4c6b73b4d4d7a2c2176540c283ad0eea432262e93b2f728125b6f22042119534ea6eb29bb8956fc38abaa0c6d8eb729e676ee3e48e8dea554b0acf2e97cdbaa26680249145fc8c06f026df3ff456c30f250363e78e16aad600aaa2b05416e86ae0e31e1879325334f512ddc19a3520bc824d68ff74eae3a3336f86a3c6d1b57787b83cc91c0101dac5b05a5862508a3ccc4b6ce53a88212f7817a7e83f881d75a778cde673160f321c0092101fac8fe0c880dd31a3e408a4c99e4cb30bd9197a24af88868ee68c968ee85b2aa652799914b7f0547a3a88ccbcefb02ff32e929b100a3a8f3acf097ba39de7c43535c3fa06d8daa19eeae345edd7a58a6ae8ea41fd266303738a3f04e7c2fbca578942fd9fa11a3b547105ab8690760fa805856c7f2420633d65d3d894e470ff6a3f62dba8ffec64b5245107f12acd4b230212f5147c", + "3e3f9505c2c4b2ca86a3eab48853a2f4584c119fa794b1090b88c82dcb4e9ff01cbfad06a6ab0b8c83345190b95ba74c131c863b0e31f6d2aebe108352790537ccc5464e3c1c6bc40e3ad93ad6b89215153d360891e7448783e5d8b29562e1c11d32262960d6cb6b74cc75381b06b231c4cbe28531e69798c2338ecc79ccffeeebb8e3", + "2c9a04d0a39425315f3a8f7b7aa969efbf681f82c254fc2f4dc0bd71674afc9aafe84748e78b8f762b155bb9757e669ac1a2a34655919f86cf04b3ae3a0013397dbc653ac670342d2e1aea6d2d1c4e3654260d2b29eba8c7e35970948241985bedca64564e1061a9eee057d7f90fccffab6b629ec1b803eb7ccb4d7488d6cb976df3e8189fb7a8f5759f10754dd23cfa673180bf6394ba7ad0820cffcc8d6dac18e2453c1b710fea18e02fa702415afaf9b77a02497ab197b7c4e0e9fda8f254cdd4fb869d61b8bdc7261d3b5636e8c2a89b5d5de0c77b9075ce0dc82a88b8bc69f7e62f5e63fe53e34115a82d0fdfd58797a979d3e34243fb6db3617b0551c41552f83277cdd74a992926aeaecf9e04d96312a37e358ac3771f8680073b3316b534aea27effaf72c071639f2f13041b3ae66b5bb9de81a9b60b9f116514556538cbc20c641991ea601066563fd18549a20120c366b69cf12a0323154ee1ecf94a", + "2a23e2b80f414a1c797c77d0520abe6b5c48ae68890c84106f331f8bb319de837e4db85fa93c241fe0d6625c08f9da91cf9e00970fdbadcbf72a6f4b3037d53d1ae82eb9de60b2cdce951e05c8aaf8b47ebc2c01cdc8ec5af036e8d87bf58fab18e2cc047d238bd9a67baafac5ba8912ebaabc0a6ef69dc19dad543abd8eabc7b8d7de" + }, + { /* i=352 cDividendBits=1413 cDivisorBits=715 */ + "03bd752a5e34b484bd17d5be12bd8bd7e25e259025d222d7965dddf603ab55fb7d8ddeacd40c8a2b370277794c628c47f8967bfc48863637dc0aa1a6e480b71470d5f6f89e98e0500ff1a4abd0d64ff53289a8eef992430ddcd5efc798c03a153195d6f48608a4ca725f1986f72537d227d4ec83ff66d490a796274cf61356af7b7b8d6d634d78734a38b7c47ab4f1da6f46c09a578802e78abf276b54292afb3c3e434ef68bab6ebe5bd50ae9b43fa40c", + "0666e9b1b3f564524caa87411127072a50428d55fb9478d34b4512c955cd5cbc3035582647f08331d2fdcf4a88d02660e567f34acf23e296a7d4fa98e0ce97b44bde28986ffa7624d2dcae3aa98d80b70ed64e29c58b2f91c18e", + "958e5285dedb360ea7d8f945241acd74c4cf5a17aa3c3dcdaf5c887ff4d0d793168d977d146b07073831eafd145548e89da88edecfd1e23b89c1f5854a877fde07e2c44c0826b01285fc3601ace06ba4d3361ee46a6e43", + "0158fca0f054ddef81265fbaf25a00783fd1fa3656e00bdd5dbd9e6a82602a5f4965ca3e626dcec534ac1b4dc15acb8dc168d147ceefc1dcd4e4524be309fef93335b28c0b5706905140727a2d973796a802601263ab0322f7e2" + }, + { /* i=353 cDividendBits=3079 cDivisorBits=1533 */ + "96dd4df068e515195a24e5af6f0d36cd5fd58fafc1f76132fd288398bf877f09978ac556b267e694e9030bfdd073980461b99f328d05cfc43a169ee6347d125347e846956da096330c2a1383865cdb2dfd4020a3623e9a6734fb97759ec0f5fcb46bc884ccc4216c7f88cf26c3a4bd6e344ae0c6551627491b831c00061930e9b0f957affd657fb5cd199c92a2b1f9cc80074139409f304d15d8d800c5acb07140b100d1b590568df7920d2bccd55a4e84dbf1e9a48f6d6852c19a12763ec4dd8e52466428990ce16e7815fec39cebc067602a5ed6f10ff69f8e0284318705ef2870f0b6f6a0f794aed6790bfea2c29c78efaf81a1aa16b6eb9f270a134989e26b72467c23f056f3aba938de3427b02535044cdef3d5fa46b0ab7fd905971c7759f941b18bc1149ba55562704595bec17f678a8c951429e155481897fa964f93e2bd3a92bd9a794f795357b22b58c36d0a2a268adabebf2c09b2eb8d55403ababd9e626d05cb827a9b8eee8a62114968c778714a39b3eb97ef444f9963bfcb47", + "09be17136dc0fbab2c93af749156a9cab5fc2ec782db72bc8ea74c7ebcc73ee8f458239cd8fa7d636e6800156faec308c7db4ae10861552278087c7858c805a0af893e70ec234e019d8f4e03a3c8ec0c85c19f7af615dfef1a673b36eed9ab68585791bbd1b8bd31b99681f7a4e0dbdc745884c12b99e92309078a819220d2b05f33ad7ef15abcd1eb6431b7d1d656a5481daf3aa4464bfea9d4bbcf7d596b28157da9a8a8852acbf1077f25857739da2c6623e2689e1f8008048914fada4ebf", + "0f7c31551b347273a7e9f476ff154316cc41a07936d53c5cac5c1af7003438fb42ea7b630bb9b6b11356a9f963431c9ac29349467205710ec89f93ded093e38f99fa7df5b3d3002d5e2f6a9402a595ee18ea7c11115f29928b4d792d971ede23b5618ffd1465b5523150ade6299c4d335dc3f5f8220cb65ba8d3ea014c4167b88afc7b96e67fecdbc512f2599411a7b96002b2424569b7a7371efbe6ae35ee28a81c9ddbd96d1e3b709448709e5ecab836c356c657a9e331b13b622c00d934c6e7", + "07f20d193c873f2086db80a18abf25c44351dfcefa0a76d890d9e733e8b98901832f5010610bb21d3eb3ee2945b4b42aa2cb82bb7fbeb8e9d03c1ea0127129b95a679c87f2df0ee7758c4aa2ab94189afc1503cdff1039251f995718335bd87072468315154122e5beb3e0e45de89f4bdfe9f848437b8c7d16584567f8aba835b0b4765ce76e1f6a0cdd5374048549b2b3d22eed3c0f4fedd1974b27b0e42318afd5e017f1a0b1608d6a8a312b9baeeee9c4b58e5e130bd9e0998e8e4a0f02ee" + }, + { /* i=354 cDividendBits=3125 cDivisorBits=923 */ + "19e30df866a8543bc585ef6023121f4b1b49766b2ddc2cf54ccc414cbd12179d8bab87144db40b2ff2eb015b6cc52436169e1882575ef08ced46793d35d3fd612ddf8ce6d835b1fc772a1cbfc86aa1512ace5325415d73f172ab015509f8b60a53d07c4f5fabb0aa8d6e7ecbf5ca87d5c14a9151c35ed81e9b7b3fb2820d31e16e9c1ba86a230f1e83e354447dc88337f1c96707b4902090f8563b0264d6fea01946fbacec8776fd5118386537e1185b78d11d68c4292a37378496810b145478537f0e10c8b59ebade3910964ac208a40325997f5881b5d7df84e3cfa15c4a36ce42eb4c6390c4de2eda468bb994a53371d239a12f0903118d3de67045f801afe53f16fa0c2acb68eafb68dfe56146a8f741b79aa772f79bc98d9b918e5b8f4214c41f91f6c64bcae991eb13f8721c98a961111a5d95dedb3ef0475cee612486bdf3fd2c7667f036fb50bc12f3166fc267b0bfd799541dd5e414d62880149ca80db8368551077b2f2c3621daf2c8be1db6e06baddc20a43f83dd6016d0e140378c9d73747fd750", + "04b7b1c54b3c96b10f7924a4545f0cb86a5b7798b09308e4f872c4f4dde6c77efb1c538509a0b053d0950b308fe56e614a6ac39364429999cbe13b3a65ca19db3aa427bef767da3583878e74d2440a1c214d973e7a245d064d60528dbf1091f8be543642e2e8a2440f9da717e135e555361d2e4a", + "057cc3a7734480d1489a44f655905b5bc743f492ee838cd420655ee0da3c9fe5f8091fdec4323ddf2f7010b9bec1cde9fc0b6e397224b8197aa9c65cd9cc77e300a821275f14b70294efa80a6143bb5f0060df58a20a3590606ff5ef7b0951cec4d33abf6fefb2ba80c5a9e456866950bbeb79d4d5df2ca5e3df7546d08dbd70cf9355a6740f111b94501f120419bdffd1bc155a72431511242887a65168ca5bb659bfc9649bb3b39248c6b2e26f7de5867daf7bab49a94c4d15174074af4d030cdb508bd7a850e55dfcfb3233d30e2272161a5067b4a8925685aa3a68328558cb803bda099110202eda100f6395ae7d3eb9c23d4577135b1562296cb1ede1b58ff48defd7e85463efef7e1f84acc54491e4d9d4", + "0438b9e485ea1c84e5d2fda22cd3f9a1ee76de982e869eaaf0c9fcacf6424d3c8670cfaa215189347b4612beb69e76ef40ef4fea27515458fffa7b3d80dfce3aed7a192ed9dc72a0227dee9559950ef91b65b175708cd14974c177e856393cfa0fada75cfa381295a5713cf76de38126c430c808" + }, + { /* i=355 cDividendBits=763 cDivisorBits=66 */ + "019f1cecbe100f04e3e4b00c2bc9ea04a9687a0a56769a68a34660f41635dd5bc5912de29fcf788723119e3f0513188998484c920870bce4539fcd8c6f7bcc7113df94235f681d739bf9dd3095249530c80fb032cada9226b7bb56ff8c171f40", + "87c21b2cbc575062", + "030ec7de387e37db463127f3cbeb08ad5322bd5b4b466a9c43c143e14bc9c59f0223151412792c4d9a46bb7957c70f0f63795e909585876b53a2450b08c39dfa2dbd5f79e85fb9ab10de450837744d6096d3ba9fe0649167", + "4d8ff8032a2645d2" + }, + { /* i=356 cDividendBits=879 cDivisorBits=565 */ + "13d75e78aa36ed661fee6e9d7b9a0fe5613cf695fc6a0b19be4117b221861ce4c1affd9c56eec3b35e7a7d7f82b3df5d08f71b20016116320eb4ae7020f306c7c44df688916bff36d80a9c799cb4d1e7fa6ab93bb43d517d851264eae9c33365fab5c589a3b840272d332440465c", + "0632e9b3aca779a4125225aaac4ef99c25411e8fa26031df1bd6fe413284e89dadb61e864072c7341ebb69b076b9dc455331f521ac40d287561e2fd990c12e93768555ff9a1880", + "033366bac3c18c833375530df8f3e4dec4ca87b6ef3d9cb25ccf3bdbe0cbdb5dc751bfc5e4f60748", + "0384ec09fb8c340bf249141a15f1b84e22e8e23f87c1ff66489f9ba4f64640e255a44d8fb16eda278c77035034248c6ec2903450e73e7d7ac6021b746cf1c2e6871ca07f3de25c" + }, + { /* i=357 cDividendBits=1324 cDivisorBits=505 */ + "095357ddeca3987a9f955899c7a7311e9ecef822ef4e6275f763ce55a983143cd12d373c75c298c9da114e14dafe33d0c251c409f4837a883fed4b980b0c0c782cc1b479d8b3e82af2da9f6965812d197329f0f45d7e8e28851083d2f36e93abda570f66a02f57fde9ed236e99dd8ae81f35036bf76d3e6cf3a41094c1919f1280136e6812537500edee995766b1914c2472b66c6cef368e20d4b13fab6ed8313d9526a80adf", + "018f4d3020c1bd093438ab34b630aafbd9d2d535c8694d93b6f478eb696fd63b0a4fbf5c73f49fe46c498de5123287c57126d8ecda0257cedf0b8d353f89b3f3", + "05fa9286cdcf186da3a975d4e4661ae7b07a4f9f2bd4c61091e67a0f8c7773c79772d6d215644f016f2929f8de9a3a9847946fc1c177ed211e1666563d65289f2f0f57a12cdad5d4d5f7fe3e008afca9f0b4ef7ef0fe470221059a0141a3f3a327079cc0ea66ab", + "25f4db8ad4c885f820196b3da7636d5a3f2be18e5c18f8949cd026ada38e46634318e6f639c6b11c0c786a43982083147db81570dda783a0090bca1bdc058e" + }, + { /* i=358 cDividendBits=953 cDivisorBits=34 */ + "2ed54530377c01ce77de974fa25dd58e742cb573a77fa22992a2f805026f35e80e0edfd5b74ca062f691ab61544692ad78c6d91e3611fc14cde1405ffd9411e950dea9b1b533ef565c12bbe4f969fe89a1b9044c42aadb65e72ce269eb09d51310ac33dc0e1728f14e7df3d9793aa066c036d05e886d92", + "03ba1fc7f2", + "0c90d3f29b7d60fbc7c609aad8cf54e8218fd0a3ec47bf04e9ec7a5678927280e794c42523e09a149ba2635af410798e03e52f8543b6d09775b052bf3c7d47e684bb6b501d39e008c07177c21b404b6ce1fad301e8779da038ef3621f868f7fd7b29d01572a3ee7a43b6d0e79869a2f063b66e", + "029a247796" + }, + { /* i=359 cDividendBits=711 cDivisorBits=510 */ + "3b84f8b0b178e46340e078f0edff36bce98f28e42eaf006adc3d1f77388ad12c14ed89849416674cc349470f2fe309671908fd8a20fb88aa2dd9a8d6ca62621ca4c89c7aac1e0ce6569962c4287daaec86df777df5c35425ce", + "3493da9706b6d9c7ac6c93fcdb5057726b6cb8b2ee2002a9092b420cf433811054bd1d7cd32a286221f5859d35f74beb150dde3003929e945b5a43a9f33a4080", + "0121ccc81fa4e490002741e7319dfab6b76fb521c0c273b2223e", + "080c8ac64d251c518963c70684cacf6cd66ae4e0e27790c774c9f810ee90b829cb423edc0ea7ed938c6a0de20b62e2f75e5780fe7a83007b8b2b5e04c5a786ce" + }, + { /* i=360 cDividendBits=1247 cDivisorBits=496 */ + "10c950ad7e61f293b44403a7e113da7cb981114fe49a598865c75b5aa4b5f4046365d0b1437cd8b6347bb23fb3fe7aad75ddc6f66b7db271e396931ab3eee69298807dbf95c735ecc51a0984f6999f6a1ad3afafcda20a69e83589112e10f8f2f6d00304624eb0d009ec3132e7d8b2bf06bb43fff95781e96f57bc129bb00a76ad954208d6fa44e7e7b28ed2709f030ef239b90a324ea2a73dfe3379", + "900ddcb0de152ef70af94fae5556482c31cbc5d07449d96d352b0089caffa58782ed584943aa617ccd29d80d73aaba911f168188c115bead2581565c4a00", + "1dd4ccb8336967038ab2aa38d7c5135918be80603039f0f016caf510f7ba560c998e55b4acf9c626d7da49bfe334f32176745baedb6962367398c26b8c14d2ab071884ecae331c97eb85c306dda18bdef2cb7b12d2e574334b096eb73db5", + "7a345e05a53cc4c64713269155e9a0dcae6be10c51c6882212896f140c0bb9d0789c9720789165bde1a8026f369cd860f7dbbcd1e493ec764edc4b1be179" + }, + { /* i=361 cDividendBits=1328 cDivisorBits=180 */ + "6e4a6dd86eb132bbd6be63fbd650e03f73436fc7f328065bd9965c23aa64285e16ccd77103bd93c30a4e3bc5f4153d989dd13a0f43cf12de937dacfb3bb72a5a989099bc7dff885dd2fa547c3440bbab44c2bba21200874a3a10870343f85ebb3a305196395d9bf45bf13ab7376d792a224697cbbf14e1d59920d7592aa7a04690f980f500b9ab16752c91b11735ae5463d3863c7dae065df5a27e758cb729fa67cfd8e4d8d7", + "0ba8cf895b04762ce9542cbcb1fd1f4362a2e4721f6ac2", + "09759947e8cc3fedda73a850a7ce9f1ef7eecab332237c023bf2664991ee4ed154c132e88671b56645c1d3dd9a33b12b44d7bdda848604f9063b4940bc7f29c2cb84bd77daa337c37f2fa27d6c7275aaade172f98246230c4c4095cea67e50e364f4b440a7a6d56039336a82c49280509a54a0c694831242c552ca007fa64b9379ddc416118dc214d4b0dab364b3edd7", + "314961c42c3becba44b25a011c6584c530fb7d0695e9" + }, + { /* i=362 cDividendBits=3274 cDivisorBits=1281 */ + "d71e58cfdb404db8c1d3bfd7923ffd394f54db3e6c7c34d6f02b1bbfa7781ef3fe86e93f8d1d9afdf89f634243354cfe01f408580d6c9cdfa64842b9c2f8202a0d0b813ab30dd713be9a844da7e52ea3cc3454923878f2039feff22837d4cb3f77db5f9128a83838a4fa6d1c5f23c053c796f8fd6264f91c738679967c96608f81fb7cbdf91674d6aaae5965f458d3a428c19ef12b3ef5b6c771b328bd9fdaea498badb353c5055128a5e9031b6c17331aba69098b398142a47dba18480e4b2d4b278ebac374520e554a4a7f0d4474a9cee2237f4da6e78c4fc6f7153ad7f0e8475c24f5ec32f871d9f275e5c918eedb645daf96da15b473a4a044f24a44243af1904cdd314a6e7d138ceb212c25eaa039c3b404e24144276418e839bf2d844223dd4f2746a68ebf027964ebaebad2065b59a601bf7ebdd9fb6a647626912834a9234544dc835597aab9060ccad19df036e00f5820917295186858b18f09e0fdab0f453cd245bc7586e898edec8c8374f2a05bc13ac58e42d0c758e32562fa821a9f6fcb2e5aa64daff2299da9e076d0b35b75fe5c31e407e3", + "5ed5d1a2eebe7e697790d67accedf54b5115bc07ad984daa060984515f4a48e78418d397ce14246872096968cdfc9093c270fae91fb0c46bb807089d973f0a493c3603d92007a8090fbab1f8dc70a8f0b678635cbfb05be14ec3063385be295d2bae4ccf3ac62d160982553b7e99b07a4f69e215a02433e569cf6f899f411d6ae7ea58bf4f60e453174ba57e67db1d14f5b30b423e71cde498bd5d8bb5a16c3d", + "0244b1ed9960b5c37ca515b64525eb9b42eaced6530f704bf4e5d2e0a667f86e6c98c8b71672b90f2a288e4453b6da11cc8c1377f18cfe5e7f00461ed9ce6db48bb00f34e4703a9cdfd08f5af22bf86c0f9d70759f2bdf599b748c892373c9a144a1349e525f674322060e49f32c3183f53737dd130744872ebbecc67de6709085657043b787ed14283daab029e0aa94567fa18894996a8a0f06bba7b32796ce2c446958afcca37d8045d0017e1914a100b17d12ae16222017b1e17f144145c71958c713ced167eae2ece8d8c5431eaf07dd30fc4392ec9cc617f0b1a9ca5d286b7fa0c721e5ea63761db6b75012ad1e385359cfce61e55e6fd2", + "354e543493eb33ca6b07cfbb1e44ed9877bc8bad476975dc454a49c8abd6da073ef7af7c802255601fbec1cc9df3a5fff22bcfda4307ee5651f622ba08bfb67cdb2d608865f25bf768c9ff01db8a50cbc2dc431dc21a0e40bfb2ecf08a187e9cdd8e599e66bea8451380a0073f88f11ac9e9cc9b1c5100b685ab3d32f6e538835a3d85854201bb6cd24fb9e1f662826ce6bab0bca5f708b730337dcae624cad9" + }, + { /* i=363 cDividendBits=1966 cDivisorBits=941 */ + "2f347a9a6b844a2eae5788af5310d62980e6a77f4a03637fdef10d8db63312892ad1b19d97fd682df8a8a481facc985ca38dbde2a69d8f3853e0df4f944cff294d0570b285253ffa68e83f344b67a10179b9e14afa712a29983e11208f4f4d18c160a96dcd97b749ef2eaf58566b2741285a7062e797d73c64eaf97bf3119ef3be98beca46883fd25b50ac979f2834391757c485e3d42b30c9185002fee468a88621912fa9c7cf97bcf6e670f5094f0a4640b9c5c7a2debc78b0e2934c7bc78abca04efbd974cbbce5507c430d4df25c88115e7cc4f5d331795f4ee78e7a98641d315a3cc2c0fe3ba9b6aa715ee4616ab53a5ab953c5", + "1ed22ee954b0cf15a993d9951d7209d61bf8d47fd2ac810543d6e01bcc0af59b090a7edfc6cffc7dd1238b00555f200156ac89520d0bc2579cfab06015217aef64787944c56dfad7bd3003cadf4defb1e2bd5b463bb378570b56524a73c9092ba484e4240aeb7b7ce32032bfd4b75e28081694041086", + "018815e4a6dd209e7d9522bf261bf2a47c9a3a85ce7809348936f6f19b0ce3d9747234a8c644b419a4a961756f149624864a5a8f1d48669d6bf0c70f5fa4699bd77fa7db3e83e92405aeb7f7595010a99144ec3a9c07079aaf7562cf1592143c66a516049c215577f5bb3ed4476b31f9474e988e8f6a6c4aafa10f673ffa00ae23", + "065ebc9c1a9fd6474597a01e478812a575d80c0326860e18da80a9e6b01f332a859b45d28f0e10319317a0b72c76f86f96e99a633b6d480c1f6720ecad67d03c803e8a1cf4bccfa9f55a19befa2ca6d82eb2fec25ecd18d8e092a744dbc297550ed90a34fd550df4d50482153a95f2664e6c7eeffd73" + }, + { /* i=364 cDividendBits=3935 cDivisorBits=2622 */ + "781118ec535a1713bd797f1f1d93b567ba3c9b4f61b25fefce3d63108aee017b0a6f245ca67ba4d54386f0e8e86be9a861cb046527de31664de5c4502d76f7d106de5520209c2ab23ae2e45e8d67c915a75b709784c9ccb6ebe6e2f2b5b3877ff2a7bbf55285c6f9f5712962206c90ff7f5855495b38db82d316dcf96197d1cdda1d8e188d836efa5e1b2d3018bd7870bfaee29c3d0e62157ba39a782846777b365c6294fe7d28d78fa86ba8cd406bbda96c937063c39021bd36dcfa39c857747a8401c588c4ac9cbcfe59c09df69fc77807899e69fbc11e000f31eb66e9a31a1ec55822635b934059856d6a57903b526bc89aa3007c156eafc72872c097f36a364ac8e82f186099ded100d0365dd276173f4418094c4d36b5ceaada9ea73eb2b7e4d163ef194eb143951f9556cfacc84adedcd3204b1304d0ec0dcc5afdb5d103849754e6175f49a3ccfafb1d5f7c4324bbfb19ab41136998e859675704d96a729e1665d810df131aaf59076694888c791e1b0a63ca23d5f1036dbe4a80bdd70053f3adfa83b3b45df1064fa1e7cb1beca86553aac1fc26764f8ac54dec5de155fa81afee1247e59bc7397ae05909ac0cafae572b6d6eceb0a5255b6752ac7c7f13556db8c856b7fd6bfedb446cb3f5183afd9048f671b149f6ac2ab315cf3e642f2fa2ea5213dc4b3d7d84", + "145ef94313659e11543f3bf0bdfa850688ac215fc2365b69bdb675c0bab19d2ba6d6366401ecae9313d73393bbb84aba6ad02b7e89f884333cd9bab4cc7fa66cf6de25ae7c393c10a6029ab9d27640625aee201330a48a88edb6b7f6956d2cff5de1ba95887fa058510de6704ee3e75b2c50ed5c255eb8d7ed58cd7c6a2402cbb20fb183a1fdb6d9ad4dee5dfbfe74738e372fea89bbd572d797e9dbadcbb2bff6361b9aa65b2b5acf341c8124ec154c63d2d34c556498952f129ba7feb9ce91af4522fa4384acb81b4b3bd0f5eea358ab9cbb27bdbcb826bb9fd85369256eb1fd0aa9f9a5b9446ba3eada4a5dfb8e318c8a0ea054e10763a82751f05e2e22642f2542b2f4df48db91f5f005b64d9f5db1ac5b37cebc2e939c38038bd11b7570e8d45f8032ba5eae33a2ce82cee1fa3df39cb9cc34c1355e1e946b71d204bf6361981f94fafe3f33", + "05e4ddb7cabd4b788ca76160f3e5b3d6a37035d2a19e61395d8559eba05182e8260df3815c4f39e6d70973298dc9d011b963de99aa2865f0046cd5df5a782f9d8af6c79e570f0f291b94d10d2b19d4a94337019d2c32937ab9f1d28e8fe8566ff8c941e2c41b62ccd82200ecc160ea2eca37a27fbc1b7a3fb7c7a4ac0ba08173d29175490b8de6a913a21b3d6de23660f49e717951f87de1c7af622b57ce2ba3a12e35c407", + "02914f9877fb04bf90757f807930ed38d854d0cb0f4ae252b2b4fd9e66fcc409ca5fd83b8cdca32aa9400dd7fd73195a189769b1016a188bdb7cbda48ad457ff6ea1d94b0850f98f8bf75951d8b4eb48aea81d8c9d0ed1df955f1ef3058870cb4a1d7b0c8f38a76e409bc7098ec27097e4e3cff313350e8389b77ee3747594cd08bd4867cfc5d5a7eb1d1b74b7653f4a0a59a223232616e7352fa736bbb3dd7682460e39e5df51eb2d94d90a5ca6c8936c763764291541a4b0252cc1d3c24ddfa133f207290463b5e0218c79949a40394410b9335c0495ad2c483c55684ff55af7d1347ed3f1f246bae457e3033f634e2f2f809be18f421d7d09da6f093c7946eb0aab46a40f274fa879e23c292562a36693d273b7f2ff84c4677caaca1fe2f2a385c45b75d86143dd0f5067b53f2c758fa56bf3f1b77a21d3b15a640c17cfa11455488d8657b71f" + }, + { /* i=365 cDividendBits=3022 cDivisorBits=1146 */ + "3ed4fbe5df8841dfa49694681c0bf264961aa838d86f81dee37abda5e3fecb63407e6abecf641b64c7ca96b24556ad519bb26230dad4b12a476ae9f27d488e6014921d51d4358080eb05d430c0383d3f89d52d499051348f3451d3110a67879f0c81db9d0942200b70322a2d3f8c30848ce3712a77ccd350bff3ad6ae8c84223362ba10d4f5dc5dc4902d924b21cbd72aad27d358935ea47d5a8267d2e71e318dac7617a8e2067e448d901de4d5a0065d5f1279c413b50a70290b81485fae8c5c9d2ea8b0278b1556dcbac395688870915184fd50f1e6dd886c2c61a90bb9d261bbe4755c41d16d261e4d55f54eb807e479a7f524de2d3c0319442ef19abeb3353f8498be7c7581814b1ba3d74b30e92a56b45eacceb6f378e72a307e46a0bb48ef8997663105e6d40b8cac37cfa945dbfa7f33d917636c9a56fcff5a13b180d431f57eb1fbe25f398ba4a7d2dfee928aae34f5adb83f805f2a2ebeb1852c83a70a68f343b0d2722afbb2364e6997a99f55ea255ced916bca58b", + "020580f5f220c2692b10584a2bd4c015aaa6577b052a05ddc95c1b6efd726575f458f2a9da5fee5af08e90d73bae12c7f8c10c462de31fcb00b0d062c40d54ad9f5430ef293787157f11c3461bc273f304ff514eabe50c55f4949485d4b99c916bab2fcb831609298e3c3fe4fc4a4c6a62af2cd2907fd75abb9c573980683e02f08c19b593a23c34194ef74dc0e6d09f", + "1f14f561e8351d51844d95ee109347dd9952370eae8b8dde0374b2ced5e318e0b10bd01b57faea0cb4e605b9ef389f79743d60a630c64cc0a9c18248b66e926d6eef97e313c93244951909d561ebe66fb87889c909fb1ea1cdff9ecaba97e99728092709e6e9f919434e5529d45b7a2bd162d398b03ad4387d175e53b8ca95658e2e59de31a7e5420b91e49f8a725684b28c3cd36645390c4f5f7a476bb75eca1872ac0937f06f4a9f1c31f9159bc38261eca9e12044aa1f9ba19424104c50fa5c1b55726cfb71a1fb0dfc8101eb77eadec401e80fb18a8bc41399ec4e9bc5f7fb6b249c57382cf2f79a71", + "012b3ad6f477bae9b189f3e5fe29ceec264228822136d84a93ba55f2b91b7bab430e4d5cd3a219ed731cb68c240d607fd31a47acc6dc599ff112b0341b4c621ea71cdd1df5b29b852337612d2f4d4bee18a896eeffb5f8f52013bca4e6815abde0add7b81f81a97549fea3c9685acc2ca3ca960f6ac3d2d60392207b1e8c2baec2f321a8c66375b069feec3e7ff1e95c" + }, + { /* i=366 cDividendBits=2097 cDivisorBits=944 */ + "01369c0e57698768d816ed7ea0181f0731f48cade84977846a69228ac241396839035807d16256360990a277b8109e35b34f13ee75e77a2d48480f83d9b60cde2667e08ad7172b833fdc7f55d80ed74604c2989c89bd8a04e3bc398342c51319f872085372baf02ab3319a570b8f1654014c1272183d2e0832e0705a75bc6a647ffbb022ecb0882db0744fab0b03d780a88cc543705b85f735c5560877b3841f44adfb98b2904922dd6703399726b530b4bb4c81c6d798ff150b682c8019a9a0db58cc18ea5112e0793085e322c2c87178933d5789d49761110c967ba53134c3bc981b5289489b11fab3349b0b0a366362eed9cfd393fad1dad59a54327dcc9d689d9bcd3f58ac", + "2fdefdfdf0dbe409d2997868cd21a0a14ddb75388eda5e920f7a95990261f018f0f90db63f9d0fc11adb0e64b01dbc34181a1dd5733dc83ca0e089ad864f22a1069713cc0f46737eb0679474346c773f45cca9ba422554c921f6550b73b72e212a5aa77a503b66e534b5f66e0b134bd8936c56695b66", + "067d0bdf78ebb7dd754876a5c2892f263c2353932b75a8697e9054e5ea95bef71984643a6f42ec541541034487b305f708027968546b9d5873c2c0ac9afc565403372d27c73be5d70b1479bde49655325e1f8258decd7b84c727afb00c3281deac9520d7b775a81be504294e56ebf0b666cf885aa281ec18f3b28f84a19e8327c54c11fd37df968b2d7663d68d3d505489", + "2d9bb56c12c0c0eb5ce8a0e4cea5ea375d7a4d61282b4a8a50f9eacd29ec4919e7559613b03bf90d5f87857fc0150b3538cbde870756a960fefc38315c52a47d32abfa80688fc49ed31f6ecbb876ed6c7855629dbe1dd00f85a9e438937caed562345eb3102b1a6bb65fb768bc120ccf75651efff716" + }, + { /* i=367 cDividendBits=647 cDivisorBits=511 */ + "2511eb0a143c0d3254fa9b7abb32ca313d4e3277d356117cb16f22c0ea3a40ff569f7d3337e741ea6a60ecbc359fec686c8f6b752754055e049801f8a26d1ff8356f6db6ef14ff1d4a1b949e64814dee20", + "39a27dd844eb6d539071a4db1095473f89a672e2274fef97a599800ac65294be9396c03df1e384439316f7a7ef97d121bf77aab448e1d7c723d5d4fb38fe8498", + "a4a7ff0b76717310cc50d70af7974e93b5", + "19959af5c26e73705514c2f0b0c89a9dd54d562e934a7604aaabafef6b83e555165ea05a3a1754f631f638b2d53faeb779f62c2b5fc849341e876aa100e6e6a8" + }, + { /* i=368 cDividendBits=1082 cDivisorBits=282 */ + "6cb5cb481db24c07f22901c5127b2cc88ec8daf81fae7bc0fbdc4b615ac52fee10825ca82d05fbe5e9922a90dbeb899df6acac572c93ff139cf3971ed97b6e09b0c47dc0689edc66819c2056017ad7494b49fbb1b74f2ba0ca193958bfc5cf164be3c22324b7a64c4f9406d2a165e8fb88d162ad312a19b463536e6b8b92dc8a7bc1458d0e628a", + "6facbd988104fb18277c912662387012960f9d92422b8f4cd4e8ff71d1af3ae747bdf1", + "f9343684931735fd51832285f4bea4e92acf624d647481c569814e5e2bd49ff196b3ac5075cd733357224345f6fcfcdf0b650bf875cb98c655f7ebca75abeb25f10d16d3f3b131c0f61a0761afacae06fab7c561696c566c53e40a970766dce32f24d7ea", + "574ef89b658d1fe408df8ffe2459a738d6baebf36e0f9da3be0033f109e287f0115d40" + }, + { /* i=369 cDividendBits=92 cDivisorBits=33 */ + "0a718bfc073612a0ed890bb7", + "01f575a64c", + "0554df2917c66af6", + "e4d7c6af" + }, + { /* i=370 cDividendBits=1489 cDivisorBits=762 */ + "017272fdf03481ab20b8675ec1ec078aba888f16d3b8c8b3818cc7749f6f5ed1790f870b89252a3030a1ded9950e24940ab8b865a1bece786493d7519088011206de1e5845d211a281a9cc8f8311f70352b0921b4bdfbf0245a12225da315d4fa3b38b85da9380c2dc458e3d86dbe33e7d42398fde4277ca3cf3313cdebb1263daafc219ff1f56828c8d220333b23cabb2713638fddfb02f06fdefd50cdf7be5dfe524707376070188dced57e43d2cfda55e2493ab4c4f32ef5f63", + "03d3864327ba2eda4722d9ff8114979950f485516de68d20ea097e58374a348a296628d5211e8ca800a9d38cccdde674af67d2aa926945c3981c2f2fe3f6df1327d8b16d4c01a173047653943c73cbda37602c5bd61e8fac4f8a8c4a490d5a74", + "60d13fce9526745be1a81c1a7c47e40fda70f275f293b4d2764de1a424f9c3b4cac7174b7f9dc89075d0c3b99c597050c152404385185b9214546269ebd0d6f1a290056df6a151abf8c2ed1f2d6de3b5530025e2b26b021515ce99", + "017dabbaed873ce15648ec0b0cc961b63a84a92a988d0c7e5d747e5299df5696a9bcc56f93a363dd840f0204f93222c97b1933af12bff81374d60d9ff6a9a664c11011f722ae851afd7529bb2160c4714fcbff0af3b527437f5265b4dba6f80f" + }, + { /* i=371 cDividendBits=29 cDivisorBits=1 */ + "17be933e", + "01", + "17be933e", + "00" + }, + { /* i=372 cDividendBits=2773 cDivisorBits=1953 */ + "0d50918de513e4369297718369df53f84c23965351b99e013c293ad0e7db196a43be0d5af3e4aebb1b8e21579e78f12bb9acc1750d54c9285e50a41c102ff91dcec25954f928cbcf161e0fe4dc851824a2eb462cfe51c0851e517a878042e212e707027bae21923ad98bfe8aab7be006ad872a6a26530c5280cd33de13f1028e37f6067aa0938ee53acad485bb1d523d4c05ba79b6facc4c6a89a5533f698788468a0bfc3623241823c71d967c6db3c190ad79ae20e79764bb90a04cf0971afa67bd4454b17cec80d4c1a8638ba0ab2b682b7214680ab9671e810d351f612afffa2b8fe03e39f5fd7640518d164f8526f672de8739d76a046e9a6a253f7d1977c126c7f0a536e2ff140fa8b80f18d23d176b1eee852a205b6e96c331f4334105c95296f94c311138d96d5d7ba5adffb82880af0b4db3abd052ac4e8c8e91107d731254ab00a07873562ab5010dbed32412fc934d5a1e75fac6c24c", + "600a3672552c9163449d4c0b8e448d37c990f8e552fbed171340fa01c669b4f0b19f2a72f3915350593801c861de8bdc32488183e136b115f18871cbd1263d40a335541fe1c1324e2d62fc905c0db3345918ed22dc91ce5787cd679cf1140b7fab34bc1f46a72f8b23147d43592ef0f9f3178c65535d7e893582c3c3dfb6a27dc104beeaf3f2e3f3a73c4c19149e8c8de6cb449941a8139b8c415d57fcebce9a3dbb9dfe9fe0fab4fb3a5a17901bf87f30c188e5836b5bdd679b0d5f8ff40d8cfb4f2810de58dbdc97805bd1c33ca6aea2b34a756662dce36b1da15f114a93479f40c1769615e049c02697e8b0c66acea6eb65e2", + "237dbd95a3d6dd16675bdb0006e48b1895b342e19111161e244d11a7bf1c70124a091c16cbfe003da488611dcc51d4905ce5109bae052f9b0367bbb6e2adb6812f745a3311b9d600ec49ed2cd35f4a307fa265d43e260db824be56a901cb5e1796d4da9262730a", + "45beb225d768a96091d3dac01a3d8e6deac3f6d76d5946795b200769cc3421f97312c865c4b5e8735404f9ec10b95b3d6ec0eadadea0af82bc51f865b662233cf9bd2946a05397b8cc6f41a83b7c3d417567b4cc1d0e60336930544262986a4c5b879e9614559546e22ee007d744c7084c49bc4391628b818819da983d76fc328f7466ed87cb64c4b0bc2b19810d8b94e25db672afd3c6e5cfab544c4bf4995b28b96f9e507e3a286fa7fe2a860f0ecb2cb58279f94573f87451994f9143bf408cefff68c219f0e065e1da784d524209de103ade5810897148b58d79062e0106ab0dab2840b5b979e4d407ee70110cbbd24c4178" + }, + { /* i=373 cDividendBits=3445 cDivisorBits=3093 */ + "1c4d9cadf66d48e92df577b90559a92b395e17326b4e2c1ca5fa018d7e29196834e0d67962dde14cb76999a7a704439d73da6039a2dee67778343ff6b4d88c8657c508c61c6077048caf4ce8f9841898f37dce04cb84a9a624c0cf9836310eecb2c65f8aadfab345d2ef280f87fc284cccd9483c443e3564c2dd4f2c1111c8124b1683864afb1d3af1c2eab70258870884d1c2cf7b422ec90993a44f6c3b0376a4e21b6ba40dcdd91f22ad7d7e3feeaa7e2d24bf0e4cb91bf097f3e19f6e01678133fde1ed1a6b610ad8a89857391e0190a4dcf8d520d261f84ba8a6e71add0d1cef5d586a9fe789df4d6ca5a764703174b886541a7ec436347cbfc3b162464545f09ab19b953a9bb57cd66f65c82b5e5bc784b6cf938f0bfdc6c2f9e89d383f0ef80fbf9adab68caca884a524d42e20dcf1e8a2a70aad7065fc7fe5fb30de8316f6b18d07075b134ae0d4e3ceec39abb84c2220dc945bdc1fdc6ddf7f5c0953c4fb85152b23c736649cb912998392eb1419117448c4f2a9fcd2c057c96d34304cfefe66f05233dd6b52e2de9663bac4c39d243254ed4d5ff30524d01ec9b6f7cf758cc702d6faed91ff69be4ba14b", + "10f2f5808119c409d97b1554bcfa74cf1df2630811f3c566a586dea15175f27618d85967bb1f05e36305fab59b3ac09f1fde4fe8c471c162d2bf728db00fd5377b43b47cb1ed629bc4bb421ac7ca0eccade1e32fc611ffeb841324f103e5e3bb20f0edb10fc756cda18d3033db3ce06724b7416e23c17b3dcc1112ebcb5122a0504ddb352b6a194c80c0966828b70497b293730212a39c4c2cfabdb54f9d2789630b0de60bdba14ac7c61c6a8d2501adfd9800d86e4a64727bd36766f3e6cd1bd2202bf46b1c33a91f5410d15b24e529cf3f3d4f95a49b457bb247dcc6bcd9f365eb6fa604d62c4af8eb7bfa76408bcf93378e76071e631a0711788d7e4fe898fed99ca634d24913b64e0d56a17d5453c160977a0fabd593b31e9a46461fa199d92d693d030ca44b185718cb020c057138a9e490e30aba88d9d0f75865f43bc9e7c10bfcac3da6be31a4f7842b9b55af6ccc057e71b59ffe87ef876d50c23b20cbdd076ed6027ea5fc07666fe6ec0ada71b0790ec9af70ed9f19e994a5400a2dfda786", + "01ab7e54b644db70cd17181c2e5d5b3cd070853e7298cc9afe5319575d1274ff1e15c7141a2cc4df21f7bd4ec4", + "0e33d1a7a47f49596c7489593bd981b2d1649a59a3e9ec6e2d59efa3cd2c3b08821a1ce6bf7ca84bbf953376a88d505da1d8680c71f7e1631be4e76ae61256809dd85113834c2601c5ece98f5fcc58e594d5586ea82b2dc3656c25a86384a52d012459e11c4e9bbf1640e1cb59cf27073763fc24d69ad0f2a5b7cd0f907123635ba49bff5f400ff8738401f9271f94118767a0ef2b491d06da214ed4ee667e0d342a4550fc67fac04dd066cdb0a3499339ca544337d9daf50b360c8978c1be6cc77921985d4ace17396b0be8b328b198ca504d8275ff48c19d74b07b6df47cd8f44ad082064d2756fe7885a5e6097569604b710d1904fa867b6b64e95ef631f7e125543ce2e378cd44a19608c33b68e74bc109210f014ad0205b027a029a48f922d94585018f65f359a5613fddfb81973c87232e602332659a56a9be8261b9135718ded8eef685411addeba052bbeb7ef1327571f82799b23f04384c089a2b4bd83222e55bb0766bb5c6b81bb379ff2c6c51177f0ccddb47a33c157e6dda6e471e8ab3" + }, + { /* i=374 cDividendBits=1400 cDivisorBits=524 */ + "8a4465df1bee0e720c1a5e967c65927e6e9795b13f7253639bdeef4bd3ba2a94c1ee9e8edb81b7049cfb0eea46d508a098f4eadeadb02f79072eb096a53e4a65d7f68c7f21edfefd85bf8cd8cbda23d127aa4403c52778f2afcb1576131d4e56b8c4228727561bb46312c3611ffa9996d0aa7063ec10e1e3fbd8e660634a4e01bb1d50a1afa20aad83eb27322c77a70893f601edd0a50d78d996c392a408ef10c6aa109be3671279228adc24c6afee", + "0674388a01ffd05f2e6809a3f8320fd4345f11c177147dea1dd94f5767273bc3bb9ba269dad44adae0c30ed3a1f726f8ef219ff0e8118a5d4d7bc48f73650c3e76a3", + "156c6c4223fe6628845f8fcc9885e82adeeead356ecf595bf0165a22d7719dd148f8cb223d28c9fe88b44490ea4f40524ae90262e6ee9ab81bb82b4bb9dd8fcf20a736f5e0b69cb48dc66bc0b5af39b04395910aa428c68dd27a53f2b604273de60634a71ce709aabd85d1a9b814", + "04838a8c2b1f471983599856ef510b687d4bfb8c85808d4622f48747fc0d7465b7dd70142b09c11e8bea17eaa2e4e5d2c3d4f57a2178f3cdc1f25900d863e6054332" + }, + { /* i=375 cDividendBits=946 cDivisorBits=276 */ + "01d16883bfadc43d27b80ed146845db0f73c137bd742f9153890bfff8aa4e2e61aceeaa811190b3df4c58b923c3c22c99e886b4252f29f337e7b7e4466ee8a475dcc247f842265054cfa7eeed4db7eb745c67c4563747237be6a2535eb3466a7c274fee3b234eaea24fe08c3782cb1290846131ee30d4b", + "a55fd379a40d4f2ae621304a12b030f4a2ec7c85c3eaada3ed66f81f1b337e8bbd35", + "02d0741b2c52c89ee89f22aafea6c65c4a6e4d7ef69c50831f3ad062d359378faae7305fa9fcbf4c7c25e3a173c36d53da5464a4c9c0e35a7b0ceeb7a00e19ce82421823c6cdabb2683985775a0f5fc691333a1a96", + "62b464cfd6dbcf8bdd25a0b87c7229f050e445a748e7d1c0aa131f026fad5ac8ce3d" + }, + { /* i=376 cDividendBits=1899 cDivisorBits=235 */ + "046e8c7435a921ee9fc49228b70782bae293eaf5e87c3c068b2b38441a942cd411b738045591435709495d0ca879ac24f185dfd3aaae4f88d4ae7b1ba6c4c05a7f266d3488b6e30dc7e461a37a184d37dca1d997130ee4bf9cfc2bf9a4c8248969aa1337bcf1b0a4ec8209e36d74e8015a8591a9007cad69099ab2370b6832e56e126bf91e9bb036bfcc411314dfc719209e16682fb58d46a137013c8909d331b37f1e32e7a9bc4d12e78fd046dc13c87743d4120f3b5f0bf9c347e2eb17341c443f795a970594fd2bc337dc774e46e37378e3fef6c196256d074aafcf7e81ca6f936125d99b859cd59a4880c2c9", + "023a6b41b8664d7d77978253d4dde1f264c05073f22385cf7a8e2c0828f4", + "01fd2d6aabea068bc34e42699c68e1423fb3341118929969e574e40272eee90b51ccdbdc7f263da04b6fc063cb9268adc7de55de6894a80dcfe94a5fcd50ca3817070427721510d80b1be979d8c6a475b47f565f8cd2430023b57138e844f48add73702d1aa61fdde3018ae070840186bf4da119adfc21e6c7603d870deeb061c5d2ca7e2d015d01020d855128ff630885b351497f2328a86520b322e914243a56e94c8d914ed73f5d70cde675a1310e10a23d729965ce61df25ee27d311514ea49dfcbda9726f50e2780370b9d9a33e96", + "019e3460f9d16f809e0c15abb4736d53721d7cddc9b113d74b659a71abd1" + }, + { /* i=377 cDividendBits=3950 cDivisorBits=3092 */ + "142cbea6488b37c348cbd03331ba9efb5b527ed1fed2de1b4ea69392ebb30dbfc49422d3f1a650d1779c9480c46f894db7bce464957c8f07ce7ce6d41c22bbbfbffe39fac3050dd487d9a2fa9e468478939ed2618721e20c2dcbbe8bdecc927a5b2ba75673e43159d88fb7833fc7c49646631fe511fe55fcddc85a168f5b43050b77a6a4dd00ff773d2a4be06de2d2e21b6b7d4889d70dc903325035a33a02019808b67c95f28220db905e72cd0785ac7a901fbb11cb221f13b7a45b44f72cc32d7997c2c48f089d8038eef4e5b48ce6b1dbc2096a47479a7e6c950e3cff2d46e6628eb5ec99069e4ad44a3dd53aebab5c1a21429194ffe237d9c24b80bb2328e4cdbe7d60f65b9c3ee18ad68cd10d8d498437d103e01adee8b5ec31ab4468bbb7c738318e868e028e93a0dade4e5658488e910092d4b89eb9f885780e06b4e6db67798f96fa7a40982d6a38eeb899fbe2c4de40d0c3d5ef11cdde22367921c03faf6044333ac0dd29b8a59af2f8f3445bb079b7e5ed23f8be7cbe06a6adf6d47557d2b6d09bcf6726cbe13f028febc00524afbeb7bc7288e6e9aa2ef7c45e63b86238c09e390a3dad19bf39ace37806f3922472d1e3708a08fc235df5f59904b308e761767e1c7814f966ecccfc6d44e10ee82dd1a9f138fce9f421d200fc593425a4cf315e592a181c5c5e0615", + "0a29f8909497ad60859156773217cc94fb0018fa073cacfa2fa85bf0ed53c34d774ce1976b1de58932e144bfd3711c8bb013fa6e6e84ab822fc48ffc0d4af6bf5a89773cfc7b18034101fa20cf7b37ecd7e3ac7b6c73698ddb6c87895a16d45928055dbb308dbdded0f89f285e330a0f829b68228c40fcf601b1d95f878a0f3b70a85397abcc1b7a96daf69d2e868f9be751634a676fc22232f636b63296e528abb03f41495e9810b92ea7fac310d02d5cd7d3e791f3c415eff9de0887df841a6de9d8ee9d3ad129945a6da7c288d2ce7dee3c5b28d2370fdbe7f16d0571fcadb833dd5bd885222fafe3cd4db40e731eb23c184719160f93be11380b1d18656a2dcaa06b422f8c599321405d9c1b6fdfb1b8c3e12e3e9aff7084b9c6b385d1bfe9cffb562e238179a535fb68ddefc52774c7c1bbb5edd630b4e9b9fcc14e9a46ef32e585334cbd417499d2f3c68f4d1288521d81b199007f9ba330b3eb84b94f0cb6058bf9622c053f7d4990d06d3330f2486793da45d78d18efad9a3cd2f08d54e7ac", + "01fc24bcf1ea2d40dc743215b593a3f429bdd8497ccf22ebfc522e1ece3ffb9281a6821dec23d3c900fe15099da2809f3cd6ec7f8fc49941441025baf32d18d41203eb77156b6348d880496800d5224dcbf4dbf4faf0bb21a332a5acc81514f30ea98891fa4392d66d3125d6", + "064d006b4735d1ebeb08e4d4d6c543818de9cd93950494d5a0963dd49021e3f1fbc2ee4db66de80b6d9678278fab2e41a7f5fdf3d3e744baf863d20468ab2a2c1999e23b8ccfcde469bba5c51f8d7a6ebe5758f819ff53afc67a891042783f7d14baa392f251253d1e54ec4cd44232bfd4955861fdffe19a6668cf0fb519b2c50058c47ec29ebb461823ac199bf7d589689ea748b4a8ef5581af016a187b1e97c6d9fac0f8e78503ae0bf48f3fe0a130656fa2c20bb26d902ceef8b6b83120a9b25e8cfb8ebf053d7716bca347a74f3de1ea5973667ff64a1523162c4fd1b9fa139c68155d905d4e89097f73fdae179e8c18724a14586373d0fc2a4ea56bb2f719e58b22e0922dd2a213624562ebcb46ad5fdc1964c02a9017b15fa0101d60dc3436d91cca5444948ae3a74f4686425bc3b6a03671f0345a2c16f268f863679faa065edb37e6f51fd0e61986fa36b88c0eacf40143a5d9e348528426e214e622faa13acb1bcfa25ff946b5832591637b0ae76f04045a6d0d964deca87f08ec5dfc804d" + }, + { /* i=378 cDividendBits=4080 cDivisorBits=1580 */ + "44d9e85999d5e3f6cabcbe66153e2c9d89c60b7d38ea5d7a7d4c067d097698c64827f8787af007c80ee386f5ec1bcf5c9127566e0a4ca154faa645968616c30a9131e5fadf7a6aee733992e790d8dbcce1683a64c9739a00ee91a73be2fb76f4e2dc6bca58315215501d62df23672c6109420d41c422b63b95f42acad9b01fe1f6968d589b88d6c2da94240402b29df46665511d229fe9d23ad36215c3a734b6a17e1bd9100d23d260800682ee302ea8686560c43949e5355dc026783c69e9499953ae0eb51939c242db0a13c6bb0c95e45299df6d99c840bf6910111f7f97a61ca0ef1405f17f8cee04eb751c45bb0a51ac8cea0ff2e824fe5805490860d810b7c5e88867a60bbaadde5ed8ace12fdf03f220668da4988d738a83b5b23a169e25aaf1bd0e4e6bde2f8db1facf61f2d03957d8a4b985425565a8146515c262618413ed39a5bf40707ba4052878f15db82c197fbaf371bc349d8099a8fbd874d8aae319aaa91644a0c95cf65a7437311e28496fd68f9e1ffb3da2de344b7a13cfada03893bac7a0a09717024afd40a83e06391464af973895c2f62fa743a85b070ffb0959cce075c6383fa7f68d08fd9ebf7edb8f6cbff575fe4cbc749de7164de78cc1f6286b78f76573f45592df2cbfeb7efe901ea9cdcf941632cccf6b21b5705ee8611d9b78db5bacc4c43f4f8126d915fea8ac23800ab4f4ed275e43", + "0dd568fdf09c541f9f9208d4a6d994900fb86535376a8fa9634c65dc0200d5f3212b69e54483af6dcba6d3799a71633df138d21d08e4e0509ea5016b414d3c20481e9a1062ac7fbf6e19ec5863e0f0ce3d06873ce4967c4a6adf196e335db4e6670fec5c86a82db931b893a28aae9ca314b15c3d3387bc1e30576d52c21661b2bdbc0f64e7015c7ea4ffa8d06d34c4e1c1b861410822d09a2f742e8e160974678b9f518664838fbbd71ef9d1dcb7b357eb5906ed36bba308eeb395d8609245cde9fb79a6fdbe", + "04fa2265eb3e570a724a7109ff237e71c39ca64d5ea14e27bbdb11c7e6d0b5f79405be8a780a14d564a489406e11e22a83a373746e2579df4048071f35a5b977b00a66d8adff052b3f4e0afd86d0943499dd85f560a4db6de4217b825d6012edaeffcca2f85a6372cc7632b2dcd669b2ae5333f71556ec34395f807fdea3ec26513eb50e3de8e9044a000037115fb3ed604c4778d85ff1991c8cd3bd3f3f3fe281930ec2b4ca270de3f9e6beb1cbe8e8b7866486f51bd9c4493f080f093ac2f2058ab974b42528f2cde1c7563a9b4163b2ce759587814274cda339cfe63fa281bdf0459c4c474613e394230fcd1fea15bfdc80579cd047eb18babb65f79abfb980fde5b5ec0ef4055bbe590e88368526c5211a191e6bce1e53a002817353e35e18c24fa7a3463ae5106e9ab5b3705d36414616455cd5c7537f", + "0249c9be10e61a9fabe227907387c28e39db1927882988fdf25998464a07acbc6db50a27e821f1a843cb4dd6b027c44655e18dc3eaa85f448db5e6e4c8dc8f2913220b5c8a731f5a32ec1a16da4b73718f95b7197367c87cbd4eb41e5026b3a1127107b9b7c376cdf2f99b2067d819a79dbf3491cdf5f80918812bcc87cf0133dd6f983fd96d294efc3d9cb49cdf4918731e7c795e29031a991ea2ace977f64278b5b245a67b7ab5b634496f2fbe4162fa14be76e1a4b1eccac3db55430e8098308c1a58e301" + }, + { /* i=379 cDividendBits=3904 cDivisorBits=2851 */ + "3a37ab8c4b74378ad34b3eb191cce0dfd8849592e4c5ef8c979e87ab0e385fe0d53c91de9d5af3156d8fb109baa1d559d4274965ef0a9a9dbf343dcad706ee96458938778e06934debfb370d54d132aa2465bfa11e218ca64c5ff4f9055fb2a5395b48b138919a76abebd28705cda524956e879ece03d5c66db5b6b9d3e06d5350b72c5cf6210a67d110a84795308904c61cede08b646af63872247184de01b6a2606ee2fbf4d1c66dbc29a4c1705d85f92c0ebe4681d7494c13ef18dedc28fbc6db822111949aad8dca63242f134a417fe9aca696ae4ec2e90532ec6bd77504a253422fb8ba1aed7f054c79b90b67928c48c1a4349c031fce1761b902cd81aa5a10e7dc85b8e83b669d109a398918fec572b672638d562fbecf35f3a8547944fcd693a4b2197f504090aada9781196bcb81bcb9c043d0b006fc37d1edd4ab83e92b574272bebf5054d5fe530e39dd2a9ba7d1297cd5125101a56ed0be56ce61ea83bf870ab6901da3e661fd8e12e5eb842afeb83d07f687e33e6bfb79d5373fbb6133dff8964a0e03bcbd13eba693eb1f814899569d67f72a2c9583c0971e852bd6d0d92bc13004f9af435dcb6274e806d7a60f9fe850d3c7407babdbadabbf1958c7a29b56d252bf6549fa13ab55f39d5792a2aec19ae23a40acc5e8cfcf00e2305ca273ea928e", + "06be26a8cc4f2f727319faca1656a5dbd5ad41a95563e5e4cb30c70c4fd6f42ff83d53269ef7f3fda242a04d03c0f838b49375a5305adbe898626f31ce5ecae0c0c867cde44c4770dfb51cc3518f2ca5721498a79f4c2d3b35a1108399afe632aa666ecc0091a14f93ad535912aebdf2774f899dfa6af237f1f9c15c5171ab95e7b2849a048e57985a72b5c0d7c5cd46c12bdedcac78d9b48801759447c62c1e92910545607742ce454e0e210a1060a387cf602ba1e17117681972886e0b4687fad28a518715f76b1e90f759a60c1389a868fcebb027cccd3024fc6cdbb4bebd4df065265c89ff17231d50fb6076d7657eefd0c904fd7247eba8ca8178affaa165148e6343bd840663c067ec233bf2259d588ef74a27d3b8e32469f4748c78f8fcc32e073a473885b25b8b1513194417890e60de404d31dc2c51f5794e54fd55d2646987221ef8ebe305b85107aa747ed05fd3840c5c6d8a470c8001170dfbebc9c76a2e35", + "08a250f27bbf1d15bf5a7b42048768076b5e1b043004b894df30443e6b5021e3e71243c55af04a6f6c2eef3fe939cccb13616b9e47e22fed519f884a73ea3e4422f527b623ffedb097033e3616a8cdcf7a716013b18d703851cfea81b53a65de043c5e01bff6fdd1e9b7c57f8ff979302d65bc9dc8153b93567a0db0e8c291f5f790428c", + "040073126e1215b8fc67377f409fe7528dbec8e5897bfeac4c412f07f3dcb9bfac398aa7aacb57cf058a9397ffc58a81d0350c8b7be8965ae66c823bfdb2e184bee43b949fbb4c2bd65b3367c9dc38114aef5e33cdb4ec7b1b67a44b040702dd73fbf01e1325764e335d086781107fb086e918b322651e03f49147e55194f029440b3035094fd0c9944bdd99648b8fcd877020b845c2bff87cddbc64ba4fcdf03f3e82e356cdebf77362c0e2d2c1f1ac3a0970e2136e1bd5fc2a4dd99b147ca3e20a2e914ad826dcbae438d871cad258f4fb9d94b7061f7aa6fcc1f194ce92759b8ccd72c66c9c74e7732ba0d6a9aecf075efdaf3071f0c8f49b324bc07c0789c934ce73541d29557a9b435a32d15a415846c309f6a18f68bf4bf2aaf9a6da3e785072c60e166c0af9a330600511ebcf533fbccb912e6bf356d81ac76770bb5065f54d7d6a3d5e5dcbb8660bae585874c19d88c93b301e65a8482f96bfefc588d7e51fa392" + }, + { /* i=380 cDividendBits=2031 cDivisorBits=698 */ + "1754f60b2c164971f304cf8bc3fc41a3856f484c741872f27ed9bb18b41dab3a8992b8a574389c78a38172a4dc1030660ec9bb910bb0e1709637d1acd6b36935e6f4ea429a384385e4efda8d0bfb21bd8c5455061d38c91aa71b52f5b482840ebeec9bda913205f9fc13ebb792b5b42c0c8bfc5dde89f73473f84fc681186bb22327f680c201285a654192be7df2255c74c293ab1ddee257d4ce722f30411451bdbfc38b6adb4d878d1986350a219912ef57676972f472eda33cf7661d6529f9f7f548e1f7774efe718da5c2d68f5f829f42b22420ab03869e46bd80210f1b4888c71ecd155be77aff173f5e6ade45568e0916e3154b1c1a5ba0beba974b", + "03d46e00a160b98ee6416919a87cae78c582b92e2d83accb45f6b5e9366a204964e32ccaeb3bd00a8a13812f4f6b44eaa866fa7d57fa8c8e6c9b5962ce1d789574e68461015b2169b64057b1692463ef37679635b46c0c7d", + "061799921d4c7fe7c39ae45b3336813828fce0b1e6b7b0fce4b1d4f37f860ed971f46a9a232fb2df26c4b3b6b526fa69c6a633ba0c970c321a1774d228dda84c83e16a69ea09df3c7adf84165e41be741851f1d07a54dbad624c23041a3b9b9eb4f57869938a853e186a42406580e91130181ded0d7288a0fe1ad23d4ea26b4554ee70f142ef85a79e784ea121c9c5684f025c3a2f79c51fbc2010ae1569babce1f6d1c702ad17", + "ed69662f7e3678569ac72d5d80b972662143d019d23205a918a425788742801122b2bca766113a8f186f31da4764cdc70bef0668b87caa6b0af3354f75cdf5c868241f44eb4734d97ba3ffb1a7fc9c4f8adb46409aff10" + }, + { /* i=381 cDividendBits=3809 cDivisorBits=2416 */ + "0136fcf89162625d2e8d23317cd1bfb812510477659b982727e7ee96c46863777eb54aaf885a7a5af12d3370b00d780a42d3c7a0216a7e0ad786d9639e95a48d84859a7f71aeb8f6bc438ada84be74837f586953f0662c51c0a5677864786350d1051886abda5e516000cfce56cdf0709b18508883988b942706befa7ccae65f6f517e19cf1abe19a42cdfa90fdd5c8faeecf3cec23c51431698905f2629fa1d8c39ba503d911e1bab2542888164edd1fb327c09ab1e33db1b3b0717cc60f4970db231979437abac250b0cf7eded5540948a4f15ada330f77025ca5d933fb6ad30c78ce9cc7346b99ffb0fe60d8e1ee225946170746324c97e3824596468ea5ec640c46b30a962b3104953208e5647eaf58a0de48af000fab12aa008a072e6b069a61b2734c4f22759edaa931b3f8ed0961ded198784534f2a97bba67b9bc315c830b4454e5a2a5312837c0df0bdaa3c60af19d0a5a65ce9064be05abe5f71e5d7829985b45613d501f8456bc80424ebbd66c0a708e8b605425bbd096b56bacf18f91d433b3a710f1c8dae3d019facf9fd26ae50540fc50d8c6c26eed7ee97deef8e43a9cc90f44e6713cd535329875d76e04177997aa559977dd3aea006ed6610b97fb0f155b53b6ef14b8652ba8e9c164a35911193d29356ca8ac8cf", + "c0342dc9c834a03a8f74ad37fdaa66b4894e8f6ae857dbfa36c6a624cf65d5a0ec7626ddf3de94b44543ef9d492b571e8cefdf4b6ef3bac3baaced06c0eafd7e8d35d1a67bff334ed09ce45ad165d0fc3fad7b348f75a7883b2d3cc1ea95ca13d3d491bf4efbab0f31c33afe1a0689c4e99a861e979170a54fc19bfacb513efcbc946c24536852e7853f834537e915dbd1b73d2d31781c4eef51f5e3db0d03b7317062034552a14af934787b91be4bb9577b63a215165184a1299b7b213c5d7be54061afdf583df8f9ab420530a299901cc70bd1b44ff0553cc9678d2c66913fb0d3eba147ff3dfe009de2e89d1d7dee58532eaaa2233f6526618a35d67989bb246315a815d21bfb38d05d7ace2b1a81f8e93cda2c9c9dfcebab30e45ad4161ae66356cda9227299753bb158d235", + "019e360f55b532c20473259af8f1c523e118fdfc1aa4fbe870b8f871ac73db4d3f3234802b8afc033d4f607553a97331c6ae6dce1803d5020e89d8340d16cf66579c81faaff29541808e88ef5819e97734d002d0debd39723e96b1964f7b29a91a1b7a06d2f3f6cf5728e930d35c8f87a68f09ebd29a585c5ee5aa75952f7dd0f3cc73d259ceebb07e3c22697730cc8612e43e63dde302a9504e7c61d3bae51b239b294d7d5b48636b86e4a51302ca", + "50b6522d0f3097712f18c891377406f60795b141f0db055ae5823ce56df435ea67f688fc001e1a951813dc35dfbf0541340f00ac30107c54399dd9c896ad5729cd634abfafa5fbef781b6cdf1e561aa03d5e20465d335be067ab7527160f861338a551a4fb0dc633bc2a296e9955b04d125b8a07ad16ec01b6d7cb17e65bc72912168a4bca4581e1d92c6928a405041e9b59acee9ce77c1e7d3670f27714099a328a01251e9d17054668b8c29c88f3dc5c147d230028548dabb7a7c8c25b4f47020272fd9e010e6862eb636a80098ff91eb3823f52abab66fd77d7a5598d9e3b5c45cab9954b1decf0acdb7eca2fb60915aee5a84710a48d2208fc5239f5d4191dc32fd647b3199d486077e8218be91148e421eb439995446491173a36c17cbae0b0ed0955b9facb3c9265e180fd" + }, + { /* i=382 cDividendBits=36 cDivisorBits=24 */ + "f7c7fb0b", + "cb9c8f", + "0137", + "6cc952" + }, + { /* i=383 cDividendBits=272 cDivisorBits=197 */ + "a92bf6a0d34ecd8465570f0be44637a9db2b1bef3e7058538e4d9fc57780bdec2855", + "0f865bf2a1d263e1d87d81b5c6b38d9a07ec73989c8c5baf8a", + "0ae5976da5393e0fb4a1", + "05160addb8b6bb38b4ab6780b44ed21ffc4c49f4bf4bbfba8b" + }, + { /* i=384 cDividendBits=2470 cDivisorBits=1767 */ + "209bb0eae614dcf51d760ac5e0fce395b6a132c65b02b978fad7a2fec9940aaa7a4dfe22bb3af964dd5e9f08ad7074284973af0c82386e4312e8ba9a2240d1cebb924956d67fe0d52c93185d6fd424873dd3c92286ffdfcc9ee13e18ab73c9fce9673e0a0e169ce7035b35ec593c9c872ba04ce5e63c355af120a17ddd79daf9a861b55440d700341badf2b6b03d0f35f4a30ab36baeb7bb49a9e27acb2a3b2b961d7f36341b73abc0e0fb28076239160bfec7701724b19e87e68c70002248313a2b5ce3c45ce544286468ff0441329ab9c5c905b833e1b4ff31256d2c1fb9cd33268132c72efc4b29c5710300eb02b5d31736c6c7a3c640b8b4c062d70e1ac7562ede32845678f7da66b455ee2e99c437538a1c0b6581ade5e16e6a2027122c024e3054b174a5de7b87c459d7d4a00142cafdd8d7", + "38a1fecf7173acfd56aa4c393c87cff20e9f8c974535efd7f13b2c79502cc23284eb78e6e6e22a2e9722f92717ecba0bdb8c17d6e20d6c1ae88e54f5e70cda34f3a3cae7bb5fd542d51933abda5f85e138daa16dfe325cad57245c14dc34480cf9e86f3cd942e572fc0ea9fe751aee3ce78ee49e8e6bb6f14655302874205fce89b971440555561c7849dcfdb36d996bda3fd7449fe2da071340eb09d50f3043ebc3c57b12bdc1efcdc962347cb36c24256ea56204c83d580258432278d2727f45bd2bc5e784a6641de41ede8d14b65cb49ac1d450b8afe9f1099ea091", + "93667a4d17297fa12c60b19e3880405e7d336ceb186a1685baf15db0f232347ee4ced05df85dfaaed83281c7a9d2b6f1b3681ab8dda090ac9d7d11fe7faf3011226c5f7203844d7bb4b4e583c383c2ea513bbbedb5ceb4a5", + "23fa7a3a5242d9b1b4208d7fa5299ebff8cac9421b84282d3aa51c987c131eea576b5f8ce3becf7df0f5fdf519109c05f7a3185f03fa66c086449ac65817dc3dc115206ca6fec453c2e72aff0f06c8db8ed73a5efeccaac580396c78f8db5eb8f8c7328277f54088b6503f23002a3a09834c3f21861f58e3d01f4cebc88019aa64f36defc58fe4dd3d1673db963e515e7af067ad82d7367e41a360c99a0a8a48f7c754152c7fb5d6ec70dcc25167eb17490af7d9cfc837a51712b692222e35f399d032b38b4b3acd23b3a535ce2618afaf4cce0cebc56e47bb552c6762" + }, + { /* i=385 cDividendBits=1405 cDivisorBits=1059 */ + "1a5f66e9313574e450d03a0f59fae2376201d68f8c0ad9cded167a7c4b9288c4b5b2a404b94541ed122ef6b2589eaccdfdd0912b8b8ca693a9073f2f88f0dfe760f757d15be56dd59608f68223a86fdf2cf8544a7af80d7e32540fede16cc3d884834a9279abbc7e45c8f56eb8f464d20e1b1f8e79e4e03c3d3d6dee104dfc590d59294f3d95541a7511f804a2881265215482396ce837f4ebfd06eb639fd5fd463f96bef6660caac65d6592f337a406", + "011ea5ac5774af2b8a0f607e7913438a423980b837f2849ec77565f5757879dc9d195d74c336f5c68e9dc0843329641779f5c8e13c099b0bf73799e5bc195392681228350c36a032b1e78aa5959f19c0a595ff695304bd3bc3e62d95c82642f36bdbbb5ca3de82066e9bf477d294d31e9f2f7468d4319805ebcd4b261a17f09052933916f9", + "178d91bb2acc60a87f57c5a5fff740ae157f00471bc59d13c372f8d035519951a3fe0a09752fc7731c986832", + "0110a48e7ec3034cf089db548ff48e04850c969472be31ff6f6cc62e5ce59f5fc3f2bfe1703048a19de783ca812ddfcd3b3bf92bf75c20b38d779727a45de0eba0330367e0e72bddf90c5711d412ff3807636fb9a74febffdae601c20f60cbb27cf83a8b5cef8adae560f0edbae51124ab911c81166e3cfa562078cdf41d66205f20e3ff64" + }, + { /* i=386 cDividendBits=3261 cDivisorBits=1622 */ + "8bea761ba8e79e21d947a894497cac8197e94820b90be75967bd029514e6280b28ab5c46d68d04db50c80bf5e17045a38b911e826e0b9c6cc238025a476f262f2519cd6b138c1dae0b6cd3eb22eb2c095697a03126fd5d70bb69c2c5b6bdee0e455d0463cd2e3bd2959ed1973886d9d0ba703470f4c97b865fb1d2004025e3ac09447c58a9ea2be74db4483df0e9f33c4b3d218f7659098d41539947e79f759bad17c484d38dd89f235826bbb9b79886c25699bc156eb606f13374d43c55213447522bf6e81ae9ccb8f065b0bafba5e9d6e7f98c999892afe65853e14b1d669ddd4da3f3a2fed87cc813ff8cf9df2bb47e7dbecc3dbabb8281242ffc3fe65425f7e528ce7ada395860850b87e2df9ffde55d0b5f527b056603edf5c1f715261de7cacbd69ee87a19dd44cadfdee1985e1e30c95f7d58b7242b92237756a7344e5653539d984c6b94f3ecb47203fe53a46ce6eb2f3611c6cad9d6304a1550a932fc68abb1b8fd68fca36e146b43639291c88c34cfa1d9992d294ffe18acd5bc7cac0b9c3be47e8d67afdcc557d6f319bea808349d1a2a64", + "1cae7eced387367ec8188128d41fd3b3493ee41c18a21110e3a4a30674aa5ffe3d50db64ae277e55ec0e13f0710d5ea54f0ee1d6bbb83ff74854011cf14dea93e146459e192d5550359db24bc0203c4c4dc057c8829f51fd39c156cecc8a8b95dae37a859958f92764c67b3f454ba18c554f5a2aa1f448893194209b8e2c866796968427215b3cdbd70bfa30380166f57d51d2f6f78243da0ed1cb1b9ce48454c3330b1d114f604ce5a6ccfc1bbe2e924b6aae0cbf62ca261889392087918ae2bff4549badb934d11c0d67", + "04e0d465e3d34236cb4d1f4cbb9eb6a74595869f5a4a7f54b56ef45f15413cb44491e30a6a81da5af6fba487ecb56c83218329cc86d95baf8001ad47bb0145bb3a683d47cca252a4a7fb44881c678c04ba04963145b176d7747463e5dd41b30242fdab8d7ff6b4cf3f02f626d6684ac26cdc5c75fa2e87c838f8ad8238c34867d27eac3583e3988846c8b4783b2eed5d71891c51f36a969c1c12d25fb3f97800eb642cb88ad259b886553910249c095eaf3cfa62e27d28231cc672a3cc1290d2d099aff9556000e4136e403b67", + "1a1d0b00e4fce6bdc6a7eecd56a050a8e7a53a8a989d3ba1552d1d866fffa80db6a11bc95ef511a74a7b14cfa1c6e7192fa1d44e3e2b1106b788fae2ff947369755664381d93b6852dbbc79dbb5b962a0b2bd91c0f2c04da6f2bce9c41612cbbfd471ac032c01d134429da5c467162cddbff33eda8fcfc18ead4ab1825bc08b75db2d39f78928a5969548dda03494566a6f47efdbf250e3f0ceba678b715f757900c4399cc517d010de411cea149bc39c8d170423050278fe8eb8cf6958878ea3ba3c8f200485867fa08f3" + }, + { /* i=387 cDividendBits=1039 cDivisorBits=488 */ + "1c168b7449242715effe341962da6faf2f52f160f149176d406c5f946c80a28ec853d5234c94444c391ad8a2c311e981fd93e091b1e09fe191f58a07633fd3cb0efcf0b634800579654c69ea5bb27c1684b6e27b4f3496493d986633c2cdee234e0f7af0415db5a129061b922fe16d140c0c7fc984e30472a98570abfa67bb5c0e87", + "55c0f236a2c3ab0a888c2d15d0dcd80151db6a0d1903d6b9013f3100e7319d1897b75c2e105e86f0157d643a047990518c3f82fa3951f37c88734adbc9", + "53d9e3fe4135b27e7a4ee89664af3b41341237f8f6ee8c7c00becc4d74db55d9923511c953fa92a82b4515c884bda4deb69c3ad4c3461439abc65bf0a6b943e9cf7ac602db", + "2a6a21a76fe5eb8af09628ffbc62cc5d3e8c658a37be6dd9ad481e75bed819a94d26a1cab2549183ffaf925dbcf81f18c735c39f26f3bfdf9bbd247794" + }, + { /* i=388 cDividendBits=2809 cDivisorBits=2267 */ + "af9a15ab6a29eb28d13757156e64cddee9f391f4555994c9ed4d5fde589a7b0d727d3dae1627d8c2f9d0f78891b6f6c527ffe23c22f7467c4959dc67db105cef8d1bca8d6fec7df59c1bf3a321ea57868f8c833c81d86de1b4da0be5d03da13668079def5be1503728fdb3f86e656a3e7bf974dbc5376e6fb5a61c93bc31b94330999a4e7334b8d0725fe244f3f33877d13b7d55fd521b19952e2b9cf6026a9c68f1d37e94d68e11f7c41c6678c5da267453cb7781ebd3680e1f0e00de5df2b77b2e36d80b3d0489de139b3a04c7c3aa45eb0b1b96341e0a4e81ec8e213be22cd47a2838c60b7d331fb74671650674d0933697ee64de98bf48565bf1ff598ebd938c8d0a7f9cb6393abef9066b040c04c50db6dc2b0c655ebb83aebcce05b9cee07d8cbfa9863175491072e8eceb5e6934116a21107217a90b9bdd8d852a102714be91af3589f662e289b652bd88539c27d77d7e1945447917dd2d63ed16fa", + "03d753646a3e44d7c2e591a9b2cbdf7abae705e6c7529c437dbee2715599006e13904fb21b4bc0558d60e02000f6e23e82fb581ba1159d12ece1857ee494ba5343d27d984ec170f0c13347b15982de31b6409ebee8be077558f57afc618f4fc0afce5c3e15f396dfa2d9f60f1f1ecb730e62475d110f4406d808028c2c0eb975c1ac50abed44e3f1b694c119daad2bffc6451e7ff72b6939be3abced3edaa9f1303fd15735d1bee60759d2a07ce85ab337dbd2cc5e32f3db06125c8cfc3d916d825dfc5fbd2a8d44741aef600d14f3056a7d6cb70b229fa42cf20a735eb3dfa8e6b8fe9efa6c012d2261dc8e22a345d0ce7a55cb8a12ab78daf27c29270bf8f8f36ce375b8c93bc2d35ee7ef35d49d00bdf1061092bbca980ab61edb", + "2db76413a0128b54e38184eba643b6471c35cd33d1d4b2c712c4e96699f70532fe87a478b1fcc2f524943c8ffcf74222c473399879878c0e502f5ce9ff433eb3be239433", + "02b3b9609b736e30c8f4485457e65c3197feada4a8c32247430868dc323bcecaa92a888a788546f09dfa9813018812d5d79b3b8ce752b229cc17ee0c07f611498522b3b0b46ccabd165a7ce1c20500b127b6aa345d8dc275bd851ba9da3bbb087c5f5d0c4a35ad9e49b3746cb63cd235df249d8df17dc0770e9d6c8aa42c7c49d77f7963eb7724dc1255c9cc6885bd23359db3d2dac785ee69fc94d0646dad6e20ab1933d6c2e304d8c01ab162db073188d943b9601c8d864e6c89eb7246c83a96d6a4a51ffa439d77b16918de2781abd5083050acc5de881001aec6a0753e4d1478c2b89d556b4c2c42d77af5bc948bf06d302a12d12895c8b33dc39ce1a749bcb3ff1ff266d80d7bdffbe1f62733b75484907850b05bc435dd5559" + }, + { /* i=389 cDividendBits=3912 cDivisorBits=3018 */ + "182f813d1cd5b2d3f534ab1353d76bced6ec84ef3a5d7046b7bbebf2bfa68c0553707418692eba0fbb0f31f6256e1efc170f02e3b41c8858e4e20a79753630a346a1cd8039aad0e19593034a4c3017ce17f2e700fd02a28690467db0a78b64ec0b365eff09073adcc18c1cb2dea0f5fab8f2daec170fadc495082f44b0c60609bc1a824523f0cb4a8a2c69b8b3277e31580f3ebc74a9daa50c5bc1dab4459c5f9314848216e0b68a6154c9287c6c9b3b5a0c643a2dce9fe5f7c41f41ed1706b43990c9f6f284987c94e08618147c814992140a498dafc310210ab65f672ed48aa3f304171f334fdb95256b6db2794122635186b8913463687061b106db14327400a3f681175d66d61597604d0ada701be62d4aac6744f875cc0c3c2f9ae09573cc997ad5ba9e113d108436dc8040a5f6e1fc096efc2bdc6fa6fe81c766a3cb22a6e873a64fa8a7dfec057eae01fbe0c9860e5ac65ddf926b71ede101c10c85d7eaf692b56d8db185170bcbf52b36cd8f529de200cb875f85e781a00437c4e7638c249384f0730e579c99003895b833a7c58e9075e95e29d6872a6f2dae3bf7fc348f9422043ff022a2c5550ed88de23ca839a7bc42c87e5508117a436c7236349b08bda92e00e46768b5c71f7eef84f558bf1cff2780fcf4e5559fc185f1655dc233dbf8efaa63c50b", + "5da8d6526ccf6d053498342ecc044512c6ec429d08793954604c405d39f669337eb793021e126fe7e0027ddf57ad46747b0291bf76ebea4e9259e6587bbe65d0dc86a1d1fc0ad1fcb53d822332a79abaccda32157726c3ed411dd1abd4522aaf94b7425097e05e7f8a8590a835ea1ac95742928482a0539aef30eaf74fbd23c1ebbc40135c0400d2da7fa34048f4e92ad27a9c345da68fb95c6b468a2dcca53206bcc16aac1e083d274c7f2e5a1d55596f1b1da6603ddaee21f5bf89f17a58ff1134a0602817b110abf0e189a301c0bf2855ed2dcf8ed0be81f3109e6c60bf6095c061ca7b46c7909b177de9284d974af45bc12994065b8cc93cd65c1e4ab5f3938b1168937620f05e4e422ba860857b86d8fc42c82ad990ff54f7da3977613542d7505237d34b58f55239751b1e7d198a65c4012a8954fe40153de127ec86774f47bdee2b765686148292610d16c7976e042e2bf68540e78ffd207241fa9fee577c24f722543db6bb208b68d54e9f7b0686836d1dc0277aa0", + "421b44d0da9ba1e9a020bb0dc233370ed14ff6982ff029887c69b3ae7689989debc60bbc3c6a4fb62dd34c33f6ebdef7a9aa670f78fa95f79f952fcd7072f218bb6bf6fa1c4a5d06df8d19440281e3be48b831394c5eba71d4eafa9ff667760dcb671c4af79ea699b63323eed6cb3918", + "35f5e40deb18f5380ed35d2dbb2412c5974bb9865c7114f65057a57a7b679aaccb3b80ec95a63f737b85040e06703994838a0fe04ae9c1e483ebafb17899c0375ff619f6d11468cd40d29467d442de4cb1ecfdc050b03326d3e0035ca1618e1ee24242ab6288424399699d8ba6a240c9a7709e512bca4a4fc92486a2fc5f4f4da15b78d9d0cfcfb19b7a0c70de572a2cdf15adca94fc5c4b4c016989fc3c73539c7dba9371b6234ca8bd09e84b786a3a98db47b3a40f41ebab3c083ed7c0082d58fb4e51acee28aaa641382afbe82c4e3b0c2dd76c62c0b133a16f2ea10b89626b59b221e7f2190d7de09892f6c790e5f9cb5fafaf51e61616b9f5594c42a2caf3086cd19153c174274507e1b25deb205c3c5a709759a1a02acd4bd2a47c2e908b37cb5870d414353bccc3d321beb8278818c513f93222d7517b9374a02b06a22129237920be93b5e80f53806bf6629be6f37f0616e9cef0f2e3ed380959c19a666d71d5fe44862c4004102230a3eef42ab6adddccdf82a60b" + }, + { /* i=390 cDividendBits=845 cDivisorBits=206 */ + "0adefbe4ec7790db3ea5edee637fc600e9b22e38b183a118fb12b20a53950f288899dba3376ea91cf574d261fb3fd73b1e146c7535baa474cd4bf53d0977da37a92551921136201c83cc24f91a19d88b1e936c10ede999e3c81e45411e5d99fcce32280b5a54741ce9ea", + "3c5e2fdcdccc57d8c1f830b89ff6ec4693e9bbbfd29ec9ad6bb3", + "2e19b283c63cf7fd4d160aa8c417652a9f53ea44b3d61f60f1c76a89edff7fcba689388dcbc1361694a916d70d3a1e4b9c557177373f72be4b1e23181cca4076228cc58dfefd5841189362d436b2d738", + "38de6cb3511595281cba33b04fd5e4adfec1049e66af0c4405c2" + }, + { /* i=391 cDividendBits=2503 cDivisorBits=2385 */ + "0cc8dda2fcfeb0bce54db8cc9a183332214a06c2ac506d860ac093985b0b1102409f13fac1e1e125b7cbe27b2565493716590e1f4641d0a91b0ab761d04c9b90d6277d8d45598fa22a63ce3348d2971c52d5e0b376987f655b5dc30c9c31718c9c5ee663cb9e498d2914b541bf10bf36d91eb0c1d104c7d0881d1be83e89193f0568fa330d75fcbe05f1dad596daa882918f1f2c5b1f995476142f690f6aed8bb3265979c12d68493b49527a026cfcc3bb6fe43faa1bb19fd9cd9cad475b54d640afd0fb336ec5df84a30c45156529fcccce3c76a3507d71d6a1da526d2c1bdf1f1ac8feec98591927929b2281e9297126467ca45ec76fc58f2733a6b5ee3c633beeef5639ffa0666c0e26b12bd6e39126aef887758fd38405c1e917c4d3d062d841b7af85efe1f8b42abbec8323f4f1761c260ad7ae3f8e70", + "01dee52ca84303f758f9a98600bd26702be9258e2ef256525e21f33d9a19b2530c4b04c9a49e33b31ca7a6537ffc57a132e53a9b84e66fd58907079480eec783b07ac8002f740899aae8c0916bfac9dd353ca4b7a317b5e6164bf30e3fce9fa7fdcc7110a4d703676f2a79c83b235e6a532ca6d0f2bc3bb3496de66c987dabcaa57f52666232c442a37f181529636b80cdeea1fa67c620a7ba9359b58e5d82a7a47b3624c7738985f08b0c0482925f1654fbd6c883eb25ac9c3dee23cbe7d12a46300c151cba6763e5c25245031358f6d140bd3cffb48c9a3c752d72b45b0e2f32ebf50204a941a89fb04cc74f1f1e5f16cf395932fb2311788702deaf070b4f7354200c72d6f71c7e10198b301a40a634bb46e399f76304c33b002ca24995eb153c663041a97a061ea9b6", + "06d58e254ba856f51d8abf672b48f1", + "612a5a19c9d5dcd5d8f697298634d54482421ed0dbfb8881c6c604a64612cbdc6f2fd36fed925630f1b1472258674835226d61a0de2807780493e84b3cd9d75ff1b12483fb290c06954b96b3052eaccbb72a2433f955502960932588f744f8156873d6493106d78d2a00cccfbdee4010f1bb30514517683d1e40dab38f9931bbc7ad734ff0f480da13b6b03753aa40cee5631eb11f94e20fc8f5df42e6204f12c8944cd355f33f688943f8c85a3e47251b31465083a4a576b3d77b25d24e2c24c5708cd45cc00d8c6a3e3f77264260b3774fbbc7db1cf44ab9a4a4a66cbc9c3a6294e8f1bf72fac810be0506d521d3861fa0ea4f42458eebe4a280826185fde37216d583cfe3fa109fa689355f0669731ae4724f687a38d2421bdef1320804601b1926bb150690149a1a" + }, + { /* i=392 cDividendBits=918 cDivisorBits=743 */ + "2acb4c609a073309deca6dca4423384e0f0f4fa836499345b85cc5d5538aba18d01de99e35ab8c8a555e90432083721bf0991427a3c1b23bf029c5baf5f7712ca40f2e5f9acfce1d4cbe3646f61e01639827c9ea19312469a79252c4abaf577a7f16722b80e1f7d183b67c2d603baeedad3e12", + "38cdd65d342ef5bd873c679c19509f81a09e1a58459d196fca917241eb69dc37798ef23cdb82e35190ae726b82829f7cd4d703dc17a803af0d7bf05d0a7ad40fc2af6263c2778ee26d8595220d36bbb2a02d78ba7c44f75ec25807cf06", + "c0dc78631e3c807ae0e3487d8dc401d502209c7376d8", + "12514c354e36928fd6341d90c3c9f07a2787da6492fe15f8b0a957ac42d56feaf00717a27b0572eeb533bbc489834417a1a43488ab268008946b6669a2609393592b6490f16785bfb373d8c9c8d1c11e15ad33eb18a17278b765f7cd02" + }, + { /* i=393 cDividendBits=4058 cDivisorBits=3838 */ + "0198dac7e5763b1c26b0cf319b5c39bab5c57e5eff623dd0cea699c9a1b12382a7e41745c99f9b1ce4b116acaaf3a6552c46e2c1a2f3e614578c3d09911bf16a66e32422e70f3d14984b7f94873b3a40d50fdae23c3d84d537d128494ec54aea4f5e3038cf8f6c617f8ccd868965027f7fb325fe3c0df20b4cd4e1c1e9604b216c383ae72c739f89d8b7fea7f396374a0232b02ee266782f2a0de7fe41d94e69b6523e911e812718ebf62f8adfc7bed12c5dcbf85b9288a51f8b6da221732147969735233c4f9cb0f639c8f416645212a8fcabc0d6833e56fcdb23d2723eb06179ec0ff10803fa83e89efca0892ff1048506ca6f8a8383224aa8b2459ff112c6fefb4a529eb3b8af266eefbd388032809fe338479bd4b44afb075c825c69c6e9b567bbd73f341361eeb50c253d5027d8186f5678e0a31e27e845641d6dcd5cd81de573046e6de2c463261c8efb3d0cc87c73902fef0f80af7adc8f6220bd8e387946267fa7dd9f0f30e398cbf99cbba9959f26a760dc2b5e91b7aa63ad3330fb74fe14718d61d270fd51582597e14ec95933afe0bc6967123755afc7b4448400a00a82266a516105295f2f794514522b68c6d58dc502d2020d79eb247baf7e336d8f9ce6b91db3cc5f2a63225e7a3ad2b8038c11e3c4cf7a3f4eb21a74c126506ae2207dea3affc9a0a6508aa05b790adec4d9c4dce8bf2f1585bb6b", + "02c19b2028d091ac4d5ae10be20ecddfdeeb0e8f9f30121ff609d1867d5a1bd261313948c1ab62182d5fef0565111546486482fc7d98acd85cde44c9202e85241be3bc65d8783810543bd58d7c9fcaadc8ae19556d5ba00efe242f9cdf5420cf6322840eecbc4a3df50aa3c5bdafb7915ed99034ef3dcf4ca352189fb678e846829d8b60e9d1ebf6e12af7d974968dacfc804c33c2695a939a629d632b7fbcd2d95097947f4943e77e3621b7904a7b1d587335d56dcce114a805ca9c02bc98123af05a8e86277facacbae7f23dbab267f821a4aaddb43db28db71e12e91ea58d16a32e58d4311f4d46fb5b8ef82a965d784346d5e03f029d4ed58adfcb7811ed6204048ece79427d61d3e53c2654b8b35d9beb43b6b6e04d8e2144787bf55e152d00a564600edb4a48bde362ffafe46be06a8756dd6044e63dd4b2db375d1bd72cd42bb18eff35bbc77ea469891b771c6ef6d6458b9a1abcd0362af9d2b47ce544c1181844a7c313a9d1f49c79c11d212d14f355cf2db8135c2262c2d3c2a7d208eef939e9a416fd2b0db21ab9dd8b341c5d4fdedec4bd65ba31d4f941347c67cfef638a8e2b4117d5cb4c8791fbe2e8c6827af55b5db2c53b56cdee518af4e5428f3a782823f05ae04b742400f680e1c04a0d181d487fe07af53c03ab02426e", + "94560582fc58e30d9efc79d7722366cc7cad76aa02a507068e71c0d3", + "01c248818c19d0023810cfaa882d50cccdf6ad69dbe4aaabe5f0f10bb98447181966217da3ed8eb8f860c60711033b621b9c8dcd1dd3188ef0a6ad82af6897dd490c595d82213605a84255630882b45d76c775873a6949c77ad4d00e2535ca8cb65290a0bd8a570eae52576191d712ad8ef25d0e6311bb607d0187a2903a219691528823287ef67554e0d62bb473d5c4de1f38b5e852cb50b4ec29a0f21340c69bbfcee6708a21b798716e22954b9db702e264988bbb45ac2763e55e8a3fa39d08148e36e115c1ab5de22c420a547b0f7c91d6d856bcb60be65db8bb68e040f8f3347b3cef82b19d280d01237a9de355f28aea1f6a4e7ffca2a11cef29e53a252d4a586a250b30eda2848f38e3cd7caa696fa9a2d8e75d9b0b3aed52a095b317139af650941b0b42b6698d324804d1e9bdcd175076892f84be60a9bd9bb478fc776bbe4a203bf49ab69da356b642ed316cd9a53e68453ac3c8a2ac2b740bbea4b7d083d142a4c7412dded6a0f22a9a04780ce12137249ebedd891d5be07337081c1d4a56c1bdc214c5ad6cb79210d859dc93f67eab303611ccd87627238cd6deb382aba37d142828c6d5f055412e459f9e76658df6401706b3d1419fdeac088ae6d3becd6e17e24648078c6c2bbbb15756a42f7f53453a3552873a7b1a487ac1" + }, + { /* i=394 cDividendBits=1327 cDivisorBits=1217 */ + "58a91d602af7cf7e5d2e142b5c464ccec5751a6121d36f385ca46a370074da7dc6190013f2dccb73327c2ef3d80373f4c344ddb4bbe433a4eaa446ce71b3f924a79b5440cd22d3b64b22a280c1e92f8e7ef89e2d96249a5ba1fd5ac50edc5af5a2dd30bad18950b7f14c46db6955fe5d612eeb0fde21b435bae770139edc889a6f9493d9260efa30c8f19b56a9ba215227c4d8a5b31810f78f38e4fd3b27599aeeda68a89a79", + "d7a3bb7ad963150da9d088c49faa91cda84a41b276fb34fd83a4abfc87b137f498bdab21e2a3bdf87a08be7e63ec9f5bc259f9429b6ede4f04aa653ac02a10a1f7d412e5679477796aa82b836bc57b65e78511deb65bff059ed002edfa58c939063bd0f93d10315d966f9f1e06839cf5a6eef1b6e739c04207c77472bae544b430995a26f2b497ceb88c66f83cee6b05968645e52ad157bf", + "69413ecf307441bcdb1ef4b3701d", + "2276e8d681aee8173d037480b4bd6a393ee89b467175319d1fca59cbd51830a8fa352178275ef858df921319a7feb871400e79185777e77a08efe3af06fb8ae083cdb4ce4b84eadaea7a882b9b3a21336a327c1ac1bf298561e40e0a1b535492c19263b92cf6cbc55f42182279eaeb6dee2aa9e675c1758d0533e60f45a630c7e1689516492ffa23e2c8e810a456071d37e79bc4920119d6" + }, + { /* i=395 cDividendBits=2198 cDivisorBits=1885 */ + "2050226cc18660ddf72c9ad2042c8dbb8efa70ac628f1c316ef1535f2efbcd9b75a1f0d5e56663dd103110c8b72e9ba85ed2bd36a0ed1db0153ae14862b777268bc24c0b9ca7223a65e8e20359bc0224b7aa2447b06a21b02d4034d74ccced418f52959c52b5829cf3f8c622e654c2ed29880e7227f130f9c6e865d57314da93e663cd399a226efe3aecc6f4aa0ea73de57b3e36fb36b8c903c1f31b2836c4a182a5619bdfa109dd588270089e1421c8a683b929a15256cbe52185e01113c5a9e22a24346e9750c4bcf53291cad0386539f8f6725949e31965bcd8d2018958bcfd699608c8a2b2d80410822a8635b32c41eeada71f680c4e1afcf943fdddb68e68c1c4450a82015fca553886c4dce482d45157", + "0f6666c5ba74204ccea4e8890a05b7cb37203ebf2e1c4bcac9ddaf31e0f915317a40cc8cd798f78784740764e4f0d7238d187222e19274d0b66731ac20dbb95d3efce98fef8c418d0430c666ec9377b07a684d6a272c9f35afb43054fdadffdc8d898ee89ba55f26780246e22da90be9f16642aecaa22b641359167fe1a924eb97046279b7a74384fa41d168f7ecef0de2cb7a8556fd9fea135d2d6f408b02dbb4e3c5cd9b4cb2c9dcbccc0033f64af2f6da02b86c60848027d50c4e682546725e98baedf6a543702b7996a829a9904dee7dfa87bcc9b3dafb541395701d02d40dd37e03553760cbfa6a8e70", + "021926c18ddb0ddcced38cf780b082d952694d88d62a6a2e157538a802459babb5a08d55c83cf345", + "0668475aa0ce86434e4f5feff42cfbdff4a4e9a3cd3332865c2a0dc7b32b5d3add1da95685c6ed7a562d0912c0ffe734072def2cf2a9ce1caf71117940d7492e59e9379c0492ab39cafacb775840a315f9809aa3f8d1e2927c1686f7d260472d16c44bd5a94e4933f5e7bf2e30a704a797ebf4cc3ce89c3029dde394e30855e8a51896b00a72b469b71268b7a2478a17d1098599d0c848eaa8d6d9f1141e38c0d922acced308588b0f5e3c2a3627ec51c4507b9d72e97ebdbb72cc627aca0335c491806da271e67405341c6dc9f2a0320a8a7e4ff16b9a255f21e31aed44706a30f8ad0fe6af3bc5fca79d27" + }, + { /* i=396 cDividendBits=1991 cDivisorBits=1125 */ + "14e56327f54e328edb751c81ba918bfa5e5b48c6d73fbb8ff83ea6539c509b43e92897c2ab4eba619a00c111b6c83e0d9704c184b1d8c4af8de4bc96128978803870e15a8e08fb0acdc9ad78a648a8d086e210962a789be1802ac67468f309f3f129d4d39da8f0d6cfeb795d8906fc20b60c227e0f371d19deb1dc71c17ee87dd29c0b8b161b3e3cc53f5e7b375dfaf962fa6546211d223cb0003466dc4a9600ffc6a1161fa3ed9ffed8f13d0f672c3348127ce75a435c65c93511264465e9e830d73e5c032a6f013dda3d2dc252c984282a17c89ad50a4bde4452c0aa89edefbddfd8f17c6030dd140589e15891fe3deeed36c92d243930d6", + "1ea9fa46ffccef242b59da902a22d62196797a3951d672825abe60a5ece40ee8ea430a39ac528b1bf4330c9cb123f682aaa582c4a2f3425318dee393eb6aad7703e56dc131af4e25fccf5d4aa811121f343308b1c01e40ddf09bc28ae49906e262ab90a2d1af13ae961bc5dab74c5e6c2b42595ed3360882bfb294b6e7d07c1f647456812a2e4351514f6a72e5", + "ae73acb83c4787bcc2b248938ba796f5818abe204fdadf46db45f07b19cb6bf93a105e757576d5d889e6b55fd7d148e90789f7af0a7245ba422b7dead83440d46a1cb552db04438be892b3e3a7f3591ef90b7e55ff759f51d48faf91bc27774a38fe174575ffe64d948f1c5b", + "165bc62f0bc3d928fd196e52ab73b3c4afc203e6bea5eea98a65584b5935c82a080e6c51cc7c6681a2c961f69d197991544e036981f75ad7b39d1dd580b88c1e01df9ffc162453905357cc49e3adaeaf98bbb1cedd1010efce6dce829e53fcaeba58f3c0bffb0bc4b8391ee187336fbd0401aa768d9d80144930ebbca0f9d32d7399fd25310eb5c8d2b2e64d6f" + }, + { /* i=397 cDividendBits=1569 cDivisorBits=1193 */ + "01c66e4d0a32b3f9d084b1a404ef86969555bb9f6b5232c2028d943a11f89970ea65f3109d0313bcae08db44042aa2162d2f534493aefedc6233498cec26992b4f2da5adb937eb73536e86991a1b254913f528c31490ad095de774161683945d053205591cb995a83f5eb797a6b5cfb0c29f09aaa9c98256012b6967b81e2aec93f5032778996bf31f04659163b12d621a66613b712580e8bf6b6e07e4764fec5a0b24bb405d268fa65bc0776e00a2cdc528c700617bebe577048d0f595bef55100e89ffa9", + "48ccb944f8e62c2ead1de97d3607e1cc5f6239bb2a2100e798b936d2be08233cc6017c3b58318563e7ea1c7b36d8d54b50c45a239118d2c339ba53473df6347ea9f19a44b28f930208adc2b0e5bf189e55a2bf3a00d19c4a829fa5b6ff5197cdf750875cec87a064b6a06a8514c1326ae4f3c365ab7374abc872b462d9cbc94da9f325157612e81a393d8b49c694cd7910a605793b", + "063e01538799c7c20d1524391b91a087b8ad451af499b14f2b7d5118fc63242cbd7b7a9c66a23deadfdd1a6452d0b9bf", + "243b75fea7c36d0d77b2793b2c8538e3975fcda0eaf15028267c170cb5861a746078744e7c4a8f75d97b08b0e5753b033e3dda82cd5cad80438e57d7144f21133f3ec1389b020184b1ab2c1c95fa90f4fea3923653de94fdda2a1cac2eeddbacebc4bdd16aeffc8ace23d41233224bd8db90a696b80cceb88cbf61630ed0f21e41a91fffbf57d20d759986d94eb20dfb56d5e8e9a4" + }, + { /* i=398 cDividendBits=3607 cDivisorBits=108 */ + "659a9466d66f085e7880d6b5597711715a453e8a87d80711fa0863f2989b246232bd3ec86d41a18a77ab8a142f9764d287782d84d95304d7c04bd8cde726c4c06cb3a2497eb4292358b7d2ac0d410490dde6a9723897921e7839b5908d4d2219baaff9f0bbc5312d88f7b750734b7cda53c71aa065d05194b7120e6480324a8e242c1b0f567c28234668d5f822bcef51558e6fd8daaafc71228ca0dabd88fa7beb82ce8b921a50e9ae006f7ce26bbfd441bef3932f8c23f5b9899d40640ff0bba7f38ff0a6b394171df8b937da20d56a26f4d6baf06bdeb300a7f14b1e86bcd46f347213c9869a159f3657415e67fa4fd12de0c6b18cf2f97c1189062e99e36fc25a8ae64cf3672a91bbb56dbf603243423e459e67d17d52771c0d39f4bde69c9a3452b949cf79041e19a2cf4f126639a1cdd0ab0bb30432b0dab1f77d3eb055ec9ec1d39acfba9bcd4589cb9d942d08ce57491154d21377dbe035702e95dbde8653dc1280cf7487f30666aa62d8c7fc5af40988311b8d3a62b0990584015cd58cf7b47c19ea425162dbef4d1151a6aa2582adb098f317b838e4ad311e327c18e0c16717e796559e1f4fee6ef2ca4227692fc1ae6d5902e6e468db33ddbd021706b901", + "01727b6912be8dff8faceb7b24a0", + "46351793c87c99a2efddb3f43367732545b39d51c414e19e435943ddfbe61bbb79157cafd62f2448d7cb9e4a7fe9a86195661a2029a9760f610369c0d6baaaf553a03bfc2267c18b90d652c943456b3c3d4ff8f7d5debf247ddc43b9ad0bd45e03cc8b6c0760f95b9e776b5158819961580c4dba70a6a5c62ac29e58ee9041a1dde7fc4e9fd577f658245db05f8826eac17a4f214388b6ebbc34ef655868ffc7a30d83c5fb30bcbc49d0db1c617a51d7a1490b3ff8ad45863d6d3da2290e01a9397c9c1d6f1f837399ac81a7ce09555e9315eeb948e6f3ffc428378921b973d14d6c7b530a8b1f7cc4eb36372fb5a166a3af45c6fbbd7c04ac100ec75b1eaaae3272518757ba6051ed4ba6907c95bbfc8014e287e4e0ffa642b8af0652708ec5f49125ea52f0d985bfd0c42b443777526b404f25f08169f1641a3c0689b8ceac4d2dc1ff9a8150c06dfbeadcaef95145a3e02aa36dcc48c5ebd9598b5b26015b953040994d0c134f48a14c575059cb247d609c19e8acf704c8dd689987d56fe125f744dcab1687549dc4c4d5cd60fdf2071d4701839cc458a62d8d3f799ab897dd8685cb0d4e9949bbf605ff6410d72a786721480fb6", + "ae058254bfb9ce9f8b89554f41" + }, + { /* i=399 cDividendBits=34 cDivisorBits=24 */ + "03d91eef16", + "ab2b28", + "05c1", + "3b9dee" + }, + { /* i=400 cDividendBits=1651 cDivisorBits=143 */ + "0397bc92797361a3cbb7bcf9a5f8d16c1b231216ef3d9c864e075e716526b2974b8b56e5d181089745d5adbc657cfe9ef4e2be9451af024d78d9ca67108975867789a1064d82e18a33f2e1e7f26c2febfa1ae83b83d6512fd7cd9840882cdca2c54acb7d8d57db9e055a43c5719441a896feb380fc31b15695802db8a96ab18cbd949455c78c73764131770e6df0553b8396187973a935fd43485d10eb71cccdc53e7fc19a9d011b0ae2a6586e6df0c4831a70a0b2e55951cf23b9e7d5034955e4b0029083442fdbabe893de4d76a3", + "09044893d835097bea41eac1f19640e6d0f1", + "6600d953606ba06f1df85f81e281dc3e825d38214fbd1dcab561ff1d6162de23cd708283f14ecee48a98b61e1c43ec8a5d47bd9241edb36cbb9dae9b8e49905b0426f0e439abd5b24ecfb65bb221d97c827587e6cc4613670baf863eb485e74ee4765ccc9160fb3e7728adca402d44a5a2c35ecdd201aee67fab797232f8f1b20e2d5c12f57acbdee27d63f97975e0a4f43402fef32544a42f14f762cb9559ff20ff4862a22a628a0af202a1aabe2cbc2a8a17cb0cbc471bebf8bcb458", + "08acb1e58c483a5f1678f729bb255b102fcb" + }, + { /* i=401 cDividendBits=3508 cDivisorBits=320 */ + "05bbf1d6e7c9a8b16de6a1a2f0ff423b276ea0a3b0eabb35d2d1c1584c1850bfab71f35fd28d92845c6dcdd326230ccecd4cdda607d64e9b98e3e68b31607fb4ca4d4909bef9175109922b81ec57b565b72b6085862100e8254ae443fc665b256c3d222e46e450568e8fe718d495ae518451857c36c0bd72bcb6efb091a1f7ee7208a1227c29945f07be672604cdc42ecdc925e9dbdae5c7af9930f5df025e8c2a0ef65d7cb1c46e0d09c75adf5e78087dd60178f6df50a8b19de61efc592f25d875ab78b7aaa3eb946f162c12331f63295c43e4cf69220ae5b8134989f807d230bdd5830b0e23bbf61c4077f198d10510bae9e5f9ffffbf678ca22f11aaa2084058bd8631bd8a7127270cec80a7b47e642285455abb5088d5e0628fa586e3480044ceaffc474201c9251f60d4a9905cdec7acf543e098e0a8aa6ed71ce7aeae8314f52300a8b65fd9e23222fe08df310ca6c74f673c706e95abfe30022fa015e710fdd717b55d15615f0524b0332ae0fe537930503162a6f63780c1cb5a633d4caf4bb02b60ab48bc8d83603d82bd7ae1fd0c404f0aa9f2b0ce3adebfb8b28c40a0c7fb3d6a0677b4f5ebbf63dfa0f349ae06b22993ca", + "a6c30070f442d9e10340a16318d2663af62ea7b4fd1a4c6f5f443ecc4b1b56455c2950c33880921b", + "08cd7a4e6ea620131b25b304aae3cee19d439a902d8561a12b9f93ac47eedc6a57f49c4ad7169829e75032d0914eccb38c8ef92d5c5b0cc3d703095df2f45c5219c93d9bc39ab8cc33affd88922e83c5439ac83f6d5e1c5e0278035e1ee503e9c1e1ba6dff7fe363eb4c00b4e456775a09498890e652c25bc58d2b811202030776fb70623ba587fb10b3ae28c5f0eb2da74aba3f30f0f11c5f9b2f56f505263bcda41655af06d55ce669c1e8706c6cef0bc577f2dc9fcd252d813b322a0a060f6233b589e30618337c5ae1bb65e4eaa91e761473ca161927752d82d0d222188c8de249784857136c348c7f55cdec66706fb6abbce8cc4dff63bf43bb1dc30c7e466c4f6f4fe1b2eaaa4671e090f25ba497d16b37880fcc5e247fe5f57c8689128fc0ee8d9f762715e59df18ff5588f8ba9fd4bf4b8b2966a9de3dc55c3ed1fc3ba569124e2e0a228333a94e345b94f66f78119aaa417b1473235f78dc2424b7eb14ed336b883d888610d8019339f9a3ff47738d702162695193a65df98d7b0ad968cf6c6a001e31598a21509611a34", + "2d3a841f4d6c496dee0791f59f0d82cbf511568b350300ca05e7a99b1d0f03a69bb37290d9fa284e" + }, + { /* i=402 cDividendBits=1021 cDivisorBits=442 */ + "1ab843c1a7405c9e6a79422e73775146d21faad7551c19de69fd65e8c2c293979e9bef30e54f455fdf4b0c08c31d16166109b4ab64cb5a8bfccaa365b0a10c72643874520d9d4fb5bfb343f836172f8c5e2aae8097d7c2243472ff08d2f54ed9cca1bb8f93f9b40203c9ba61902838b8fcce61ff2239b54aca4b0e70b1367056", + "02c261e0a95dac4d7de9b0e438a63124999f83a3186117e96773e1969e600247867e56e02b3caa9cab0922cba891a5d53b989ca439dffa75", + "09aefae8749a7dce62992b3da40ddffeff4cc2cf77efdc77b4194c3e9a6d65c49eb603db6016474c1cb0f4cae6c037548773361f6e687c6c1a01fcf5bcd5226b672783e38a89eaf28c", + "36a5e887bc64cbbf13013e24f861f510b1418fdbb667801902e4dd8faec3960419b446a28436b4979afa526ea6d45412faa015c404de5a" + }, + { /* i=403 cDividendBits=3283 cDivisorBits=4 */ + "05b724d02a8b6285159cb6c7144df31f9725a2cb29bce150e9b179acec172942f0ba3323c23cd0c9edbb978bae138108d9eecfbf7f50302b86cb6e321d120ac899b8f7263d36547689b1cd6c328c2d930a7ceefc45e5493ae2b0985f7fee13b1eb9485e7f75e501df60f3cfaa0f8a40816b2917c784b8b0dd63a173487568b416b13f14b0208b6caca50c3d52e05c163685babbaacd047959ed9c099e138246d0bfe011b27194fc4c820b2a77b3dc30eaf7b5deb8860cc8fc388b2f97f49cf68ac26f36c4eb04643328ee22f03220f87ea4525222a4a9a0de0bbe58f023c2b90f9f2b10d3673902516b0757185d793859ab854c7296006dffd3c1f2b51745a6cf6f4c6aaf4933038e7b5b5163bf31cc402ac82104cdaa59cbfdcddfcba32cb8873f5bb28aa1415143234bf5872ca33c03b5571328cf9a3b84d874ca3b3bd37497ba0c2a7936ab182031550c2847dfe3c69727f3fb4c2c674265820df4d851dd7382114352b3db8dfabd703ba427462406bdadea9afeb8fd8ee754bc4d54a70b0515bd3e478d020e0813d80f011f432d3002f9112b0bc5ae4ce95ed", + "02", + "02db92681545b1428ace5b638a26f98fcb92d16594de70a874d8bcd6760b94a1785d1991e11e6864f6ddcbc5d709c0846cf767dfbfa81815c365b7190e8905644cdc7b931e9b2a3b44d8e6b6194616c9853e777e22f2a49d71584c2fbff709d8f5ca42f3fbaf280efb079e7d507c52040b5948be3c25c586eb1d0b9a43ab45a0b589f8a581045b65652861ea9702e0b1b42dd5dd566823cacf6ce04cf09c123685ff008d938ca7e264105953bd9ee18757bdaef5c4306647e1c4597cbfa4e7b4561379b62758232199477117819107c3f522929115254d06f05df2c7811e15c87cf958869b39c8128b583ab8c2ebc9c2cd5c2a6394b0036ffe9e0f95a8ba2d367b7a63557a49981c73dada8b1df98e6201564108266d52ce5fee6efe5d1965c439fadd94550a0a8a191a5fac396519e01daab899467cd1dc26c3a651d9de9ba4bdd06153c9b558c1018aa861423eff1e34b93f9fda61633a132c106fa6c28eeb9c108a1a959edc6fd5eb81dd213a312035ed6f54d7f5c7ec773aa5e26aa5385828ade9f23c681070409ec07808fa19698017c889585e2d72674af6", + "01" + }, + { /* i=404 cDividendBits=827 cDivisorBits=304 */ + "019cb5b3f43f7300dec240c02eb2438cd0d992db04ad7625d69895a327965188b5313f8dd2369c6b819d62534df689e239949c7fb63e4947ad65cdc433be03a40d1c34bd90bba454b99c07ba0ab33951e8502d4a017ef5714509e70d2be89847271953a4abab4419", + "a195ab0f2887b75cee54cbd88b860439712b23c574398038392a9ac04a53d1518f2e81ad7c74", + "028ddc1c83d3e3405d68854186c079d773af2ae5c6959ec65b748e663d21510ea203a645117fe9fb42eae02d639ad95043dedf6c021cf9a629e5095f2ef6d77afd4a", + "9cf876ccd58379a23df29515c81a3c5a4204582c53a25b5c1fadb4def38db3d40a60003ea691" + }, + { /* i=405 cDividendBits=224 cDivisorBits=149 */ + "9613f7f9f0e4e3e2fc444045d7a421fca300f536250c1f9797066437", + "097c12adc0792934c22a26d02acf440fbfaf3e", + "0fd2bf8456f1d2e8a52a", + "07ae48d1d099bea4c2c00be58aef70c970ae0b" + }, + { /* i=406 cDividendBits=2610 cDivisorBits=1477 */ + "01109afc68f8fea165fec2f69b013f9dc04f8475ea077c9fdcb6f59fbf58e60eae0de3ea9f63527bf3748194ccb4b260939edf7c75984c066652d6bc6b2658edd7b805673bd5f16f6f48fa7a2c1e81d56943593dde6cb058ef405cd43560198b968f0f1543c606d1d77160ddba7b17a41217810b81b85c6b2df2927daec16b20f19fb8b85eb4ccc0b14f3ba1733cd1a9fc9952a5bd768d3d079c2e57fdf2ea919d984d8de1c33ae23a7668b3eb8bafccf81ca387ef21b55f736bfee495e4fb40d89097b91676cfd697fcc0a57309fa003d462c903ce64b2d84ae4545b89825532b8b2aa5f24bf59180ace57b0adc39bbf60a64f2f08aa54fadde21cb1d2362b9daba8a0e60db8aa0816b1b06daa67d9d372ad38decf32d2498989da3987f54d327c914e7752ad0b90357f2848270c93e95fab6bcc875642ab2e766c9c11ded190190ec1b37ec46", + "060cd6b3405e0e95add6ca96069802da53b85b48f40438b25f467eb200b89701d24cd49c51d8474d8567bd7d36eaa8679da3df4434b5b83c426b027da07921196523f049a9ca12b2762c54d3322ab3375eaa4b5e57eecd462e2d8f1a26adf158bece0e63851b83da81b7c15e2aded7c637d27e625db9eecd9e323770056f4aa7cdaddc6bad2c8e146e4e3421605ab5408e6b7193cf3594ed200aadce9920a5f29d80247af2362426be558fbef99831c3d82f0799d91ae81018", + "2d0ec040c380f88cd92297d1479a280545d544d3faabdd462f437a44aa66f82d2a77a72d525617a70313b0f2c210b364deb88a1839c72c26358ee91e0cc0cd21dcbbba98a24a2ce6c4d8f0f4aebc846de26e627b3bacc629fd18e5e8d2ecf0fbfeed558bd243ee1ed27df0479cbf0e7d849c56fedd4b25221af02ac397d1a8168d85ac317e228bf458e394a422bc", + "02837db5da1816d46740f62a48ca37e1d833e33826eddc3b60c7509c45d73d18f5582b33fb063423fed9d9e560251c8b6adad310d5a0385895478490a846a34e063364330822e53189ebf61bb5ffd64a8de4fa6a90ec6fcbef86f64a0b7a9637dc93263c7bba026bac127e970ac94d43ba9e0e62bf94cfb7d8516d5015726f7c072286108cd631de7e903c72e8b0f826e8b379fa4196b321ee72eee881dee4258d2a5b2d2eb0d6a9f543ff605f2304693c7a2bd4a95748eaa6" + }, + { /* i=407 cDividendBits=851 cDivisorBits=568 */ + "045f36f1f1e2197aa0847fe5e9f5955e6bd9e8bca0c3d32fcb65ccf03f71d5b612b44240e6d686e11f9d3269a1ffbcd8121e1721d3c7f3a82df56af00b6a6c3334e430d2ed42b3c4e167f0a14d7babd52d6760af65a74608ad7700ad92669fb94a198f290af455b1ef24ea", + "935c76115407e45091e6561571ac6d07d2776429470d29ceacc49cca94e597bc35d1ce62fb14c67ba5ef0f0f1dea8a9988f2e03016c57277955dcf30f5b1c79433624dfe5174cb", + "079854cec80c448cc0e4f45218a8f4d60f6fef7039ca3bc11ce2a0d1942ad572b74363c9", + "15a5ba2b1f73cb48d51274168254694704772175e0333d42f0638ea074a8a8e24b13b9229af186cfae11e97a000effcb6eb1c79bc804764d79aad442401ae0e6b7e88ad5aef087" + }, + { /* i=408 cDividendBits=3682 cDivisorBits=2984 */ + "6b6374849050395ee107c8ecedfa496ee156d3556bc54e6ab7653b1a200f055fb8fea28af8b49a9e89cf2c4d8bacbf59b3163375ffe2c01c5d9df45191a7b091254a4a3976ce58d67de81daf58724984267a14772d1e083e8df14cad785b55571d5521646e1f3bff06e77beb313174a5d999e667c3256aed16484617216130f20cd69eb33a1140388ea3e81dce641df2e1024a5983a8a7a94aa937ba1963b005553f248eb800408ff1a7f4bd2025102fa84a44dfede24c4604d2cc83a583131a3588c47753f759e667f00c67a4544d96cc8fa64e1382140d773bd23e8ffcaae1fa24f0d6cdecc332b11d0aa0273c3014a96bea412a9e5b5bec5c12c3df34805a949b396b47de024f54f093c7d4ccb42111b9fff846b7331f02123499d3232606b691268227545f22944a39d0c1b0d6205cb83e16333c4a4045f135bfd95368e1442360637c9ec07fe00ecdc52909539c93b180b5ae42d89c4fc49506c10c0d62380346f4c9416fa42cae3ad3f87c84f5f887794705f046f8f296a2150d21711249bbb21df40be96197517d9b7dc5fc4026bf9c21d352157da1c0d84379e9b35ce4eab151a063e996d3d0bb44d545b86e1ffcc8e72d8984ab530655967226b0fabdb56237c1878ce7c4c9852e", + "3eeb3251fd7efb0997bff98bc24a2067f4367ef91f60dc7912ed2c6a0783556f470f967c1a02b1978fd189b77e546f2133e71f42667487b47e887c54bb80d90b3f25b118db19e21d91e1d4f0ee12c220b6b22dbba6a40ef6df704e9719ef287cee19c2060818d2d80f04353379faeff19f0fa231e6be5b12d88ecf913c685442a3c85e3b3abba9ccb0498fecf38d05e2b01687bc2037169dc46fb6fd15618d42eb240a850ea7d3dc81e159db6fcce1369c204aab352cb816b78671ce7b201965e510d222034ba60b04cc1b937c60d5cadde8117e577f172887a0df11064262ef9a7412432f496123da2448153c603c68c09af9a8bc4981a8b578ee8ede0964e7058b12f2a3ba5f906efc2181a2c1fd3b08964621053a26f897c0376d9bf2bf69c96c535869bac01bf0c067e82bf0bc4ff4c1abccbac2c5054144ee9540954d12dda7fae9308c6745656d41dd4a4355dd1e34e701704a86171ed8c27adf8424b3edbe9bd12e958ed53d4d7f7597c3f069397c79936f", + "01b4ef97831454adb1cc6f244bb7dc6b5a593b48c030da3653fc8bc87a65fd508b71251a3bd8a8daa9dc70562ff95c49b2d591804dcf2348b248da453998077023eba463f57e4804f9e6b70c8cde6fc823404e099501cbcb", + "260ef63252304e80ddd46a768618e946514ba00f5151613a599f63e8975e4d0284c88999dfbd3b440ca050b8a5e98c3adcfd20d9349662a37baaa1ea69f22a47b67fd12f6dd0871a0072825217556aed73fdfc562ed4b6952f27f6941161fb54c9f8647ff87ecc30ebf4bf4a67dfe5587f911127ec10e99a3c7100a4a34caf8e908e8cdffa95a8e80cca17699191766741acebfab2bf12a8cb955ef1af339fd88de48e8250663d73ff6e10b9f4aa031806c422de8ecbc038cfcd6a15fce345d628d4912036ec817c3f3dca945c63fc34583fdff9446e6631a53cb611b0a79bdbb421915302ea9aefbc52a26ebc2089b55a10589922fd78def78582f3d3d5e4963b090d72b1ff09686d43392973fd470473c7cab6e745b711d500a2c318e64b0c28149d9afadfe351cb5b444096a06e01630153fe6be96f8d0f2b9c77bd8fb3c80ecd99c4eaff0fe4659eb11db328d003c5edf283a7b222de610229ae551ee3e6f202ea21153239734e9aafd5196bd5466d7a099729" + }, + { /* i=409 cDividendBits=3658 cDivisorBits=1759 */ + "937a00faa1d253500c42bd2757a8c85d3c842efe55ff849343839ac1c77ab22bd0e78de208bdd0086e12c1c22c7269ef1a533d051175552330b7b673c3868a20b75f1f0992d108607213fd1c8a7c56168b2c7df2a659e0d0e3dff4262559f6d36609cd9134a21503fd8912f0c5d93e58b597b43a402aab59a4c2a384fd10ae30ff0c7641b8d7bcabb20917473f87c5baae470fcee1172d2179b091700b8b920c4c4894139937864aa804a4fa163fefa84ab347269c79e2e7ecc8e8db991505513694fffdb38f172af41ebfe8a9f24f660d88eb5a349a31347f98adfa95ba097a70b80172e2f5e60a5da292df519ae963a143e61b11c70fbc195ab9dbc4391811c7ada36063b3955c32b10127e8af5e33a07dd0d8e4bef692210c086e5e33b71a70397170aff82366970c720f5af8a8aa3a5374d196f8b5105e7a96c11898312eeedfee290f15e8bfbf3e30f0ee9f9e39249f8238947ccf90392ab13aaa8e7f82e9176c2b991558709a3dea9a97ceb822caa2006620c00026c233f72fce74738f6fb8d143d70c6020eaa9cdc52e0946a32e64a8e6dc17baed25849bd1efe51f83e80cd8f9db683d3b0a557b4676a5b1d594aaf81f2bcfc1b95c97cb9d6d74b50d152bf4120e366a65f4", + "0fa2b1730f388ea9c649a485cd6f226813e559b2df147edf64505100fa0bebc86ed7e99a0e1a95edab4c66b275fd49c3b3016f0ff1870ed5bd061f7e30cd7f7f684c84eb4ecf378ec495149b2b14366d7f6f2ff239aa9f4d8f8c2b579a5b4d2ab6452f708aa80ec2b5d32fb3709a1b045105902c410c7802a87568ea63e8c8aff6114455cf10894dc3276eace1f8eb408fac6a455f0797c5e3a19590a81fe86d2000eab57b8127f6b6e1fc0546d72157a68857dcc06557905f248687da7bba85100cebf7dbb903703d5de75e998d2a5091157249d304bb6a48518d2d", + "096ea16840e7fe30d8a662ea65f4933396c5034bca47af04f35c6b32f4b83d114b84791e4738b2fe7c9ae1b0ff561b06fe7f2c6bd425caf0b2a56231d2a332127691e83b5ac2c842e4e9eac32279be6bf6c653122675e823d4e4ae6900f8ebb23f2139d615479733722e14cdfd891c7bf23b59a107d7597e05666330020d0bbd8fcd5149668f384e126de48d449e0729f47c586bfb922043cd26d95ff5cd2b48a05feef74993de399b7fbe925b2322cc901665497f34e8749d0b2490fae1dcb52b43bb69ae14f2d65408c019b2da542776403dda548b06b3365274f74c0eabb5ac4e451e505b5e2fb1eebbd79f2c", + "51b278e6274a52d451c338d8f7162f424b38ffde4efefd6b3d5807877f77ad2c30f9895abd72be3eb8eaaaf703662f144958f8655946d9b05a23ecf1c3bcd386d29116313aefe6bb2582e60160826af9c83de338dc6cd1d26000e142ddd72d8785137bd6ccf2c3071355713f9702d49a1595e79338698549669f1ab5864a186a179cfef932fde2f95db7fefacac74066da10774a9deb9837777fcfe5051c05c999d93bbd03bf5b69df7ec5e6eec28225655366dcec3dbdd56ea80f7d1375bb58541251c1ec20df8145ac8088e67a0e8977afd6ddf62d6bb1ec2f38" + }, + { /* i=410 cDividendBits=914 cDivisorBits=444 */ + "02a3c2080bc665085309c8d517f988e02defb6fa0d974e70f9675804e3b3e7b2ebaea8586226634af5d84a83ec2b294dd3910033877745962119dba6f612ad0cbb6a0ca8ae2e4cb069cfea48e9c43993f384f81ff07240ff975c8c5b4da244c9d3b7f552863fd6614e79152b6c3a539bb64c0c", + "05ea2387d13a02f89aa10b5f53cdd8f3be73274c3dc4e2d15dbe3a195b071526811c4336d94fafda497ddaf96c9b15eea0c8ee130b176cd9", + "72409f0b41d5197f53e3d08ec9749c81e8d8210ddf39698030d7648386a85c8ad6b95b282e905a67ba0a7a801c76f07e6e149d81d3f647b53b9bb4", + "03f785b53ec9bfe388eac9029a62c0fe31b5fd312062da3dad1cbe5ba17eb694fcb0d1db491b95f2950d9091a46878227ad178ae1d536078" + }, + { /* i=411 cDividendBits=3443 cDivisorBits=362 */ + "02d956de02034ca40f9f4728eb4ad86a2ab15bdc789da6153df208e60c297b91cf1bf41526caad70745e4340b7d5e7c91dbbae20f078a2338bc4bfaf1788b78d13e15af20f5c4211843d4871e4c4aa6cadcb046d5654564550601cc0694e0f5715489773f0db733a44a25f02805a2445a06416f4e247f5ee385c1d1be450eedb413b5c57cfeea447d0c95758f4bdd28f4f6a0f6abb48fdaaa0f4af38ac966edab6a0378874499da83c56d71840883c16d8b52e131aa2dcc8a2156d3c457da3a6a00f91883ca40f4aeaa65c5e0e1e106dbd889ee265c01cb9f56049ba6ee1fe2675348486d1074975da53d61c5885740a030bbf5abf75a246c5622facce8a9837d127a4a05a8f88f20fd0f4b6461ba07afacb5ce0cd458873a2b637347a6095c670cd1f732e7f750a25181b528b663e5afd7f533899a9fed72f0ffe49dbd36ed7555926d1ac0766940308989f462d738cadff1c54d046e7e24a97357c278d219c96a5f0cea3936123904b22791f0941a9266687b5b39ddc7c9fc8463838629abfe12da1ddd070bad4fc30fcf4fc6c663d9666c2148e06e918913b7d7396fd08f6ab7b0235972bea8e2b59679a960cd3", + "022fa87a5630dc9e9bc058a021f17fc7ffb427bfc134bd6b1269c40873104e699d55d57db992f5b62621d6142982", + "014d9dae1275f653e00a85d14830ddbf90b455824779c5c84966499187417bd5a9f6c263f37e3f298d4e56bd7127038438c2fc05299636a8c7460178fedbfe56ccb2e556e6e25dab45fb24c5e410355ad34d5168c8c8709fc122bd21f3443af8b4713785bd814686c160617f89881ab220401656d76187fad7d56965f9411a5ef454d8ad343f48c0793c5ddf2d7e6e737a0920a87ee1ad10e4b6e7a32e2e33ce21391ad1ae7e705b3f07f80f1502bfba3e905024cdbb647cfc96ff71b3bebcd333710e8c786dd0789af12f2ae10a9fcee8dd2ce80378f5a51a17f6f096c3cfb6ce184c7bceb674624867b97d1004243c53aadf98aa7b8d46384d612d95a22af80f8da5e0be11c5d1c5c7d1c4e22f1548d9fe0263afd5d55b0a2629c040c153896a6dda8c8a1145fe2d59bb9a89a8a2c3eb2cafaa1f04746d5c808077a91c2659286d9305b6dfe24d62add0106a91e3a73cc0802ab63f3a01c52436d24e659069a65574718bfa51fb1b69bbc0835aacc6752dbfc3c3e0f987eb0b58d26907e12833f1", + "81cea4348643b4d02085b1329e0315f8b5c556eba31abb18b329cce792dc1955dfa3da2084657015b74f061371" + }, + { /* i=412 cDividendBits=527 cDivisorBits=255 */ + "709fe83c8c56cc545d3b5b207adf7ea2f2707894714ff12160c7f5e219b14533615147cfc1af9832cd3f7a29af7b664d6fcb21e370960ac19d50ffd7ca147a3a3661", + "52de023cd66d100daee10d68d9c8fd7da47a65378339f9332a00cff9468ede8a", + "015bedd10eb781a2f137e7d1aeb91e3dbf24ed91b7ba2fe6da32b6198ec81c1b537d71", + "3116605056ab72e5075b8fcf3a87537e24a947d221302e8c17a42cb5ddc29977" + }, + { /* i=413 cDividendBits=2491 cDivisorBits=604 */ + "064eacbeade098c7f1a2141704d90c7c7ab3a792fd1fa0442e0323440d782862afdf1e2a3e3518ad24ca41c4015fc034545a6819e0a5464e8f809029611251fea18bb48039ff4647b2057412c3d0b3004a826f05a6c4ee8aaae841d475cc2ec3bd0d5871048e98efc241ae5b7b5414a682f96943d3df3c5ca7a403f2863640c83bcf5ab1402c2384723207103c3b8722548defb7854bc45b0de37730b5856807a488dd5b0491152b629f131d8c66f061ab531345714478c85d4e9273360b39352074e74a890754863cf21e556ebcac4b79e455a6561abb1425a09b5d596ebd9062b076f01758cf715342f35df6433bf588ba9996832c7bcf5014a91417cab2245ee431ff5fc5e292a187a9be8b3dd0b051247a6728910c4b2c06c3911dbb8f49c82fe11786b5c29cf40f451320688e741a260ae96aac8470", + "0cf229651c0708c5c5c499df7b82d02805cc90d36c92b0f6e65701f58b7fcea85ecf1e5da4810ffeccacde09882bd57130d31e8f6da34240b893a55a8998b44a65ead171aa2eb78a0977b067", + "7cb9709b1db6024ed2b852b84e81ca5850a91918eb04f97174bf54b1475481ebfaba9e16e3a1be007cb9e61180bd9aa6168b69af230462f027fd9927cb711a091e3f15dc10485eaaab5e68ed3427578cbc5ad7bb9ef41c00364644cee8fe810d6ca58636494ee9545673476fc5df414f639cdf5b731a2494dc53c96d46eb689ded1f1a1825087ee9a0dd0393b3b79154b5275c522f1ef4451cee0f3b3ff270e94ed2039ea686ecf32c86c9e1c25e053304b71181819ece5c499c56917fb33cd10e49de60c2fc0484e995e81a88e171571558bcc5d197ca0c2d78c4207663fb36c28e15ccc7b304b1d93b5cb0", + "05b0e7e6dabeff258fe3242d780fe4febc84d9f391a66f600216152ee401088ee16a568ea9dc9872c6ba9006388ae70009676fdfa447dad79676f476054a6b7cc13928532db40a47ee4139a0" + }, + { /* i=414 cDividendBits=410 cDivisorBits=15 */ + "0106db5d73b85039a2cb4e02c3b59c62553ac5cbfd44809c44ec6b11151ea70e580d01f6ba8e21e9ce0900f0edaff222dcb8bc29", + "7921", + "022b88ff8f65310b3e15cb888586220c93455ee6188e76ffd9cbd53e9caa395cfbe7be9ac826c8cf2b03164e64ab4e6509f0", + "0439" + }, + { /* i=415 cDividendBits=1217 cDivisorBits=452 */ + "13761afed04bb48a89be7575ec3ced236fc5f06e84efd4f1511bdd6c77fb7e7f44a9e42a56ab698d90d7e9ca990e0768aacfd44d78aeab8aaae88338249f4ed397d3e5b6f33f0338077cea53e3f10806c70b8aee1821620d304e275748e3969346749a5a90bf1148dc3cdbf0a5f07f68019433ec368b16870737cfbcbcd6c2570a0bb6cdc950ff24094b023b92dd1031118012e5ee2dd228", + "05a35a8abe960ff809798d550f20fc556f72b2810465706439d7b059c5a9262482bdcbefa0961b562a1d013aad7bd79995d66fe0b56c08013c", + "0373a6507146a071881327e83b205d344ca4ede010a780c42ecf80e55cc12a4bc25605ab672b603240f06977d50ba031e15c66ea010bf6f1b7dcce4301db3cf86ddf35349780787e59c397817833eea6ee05ada42bb5f069f2e33bba7078c180", + "04bdc9fb4ae1221329a46eebadd3cdda167b22fe9ca6725678eccc2424147b5d21651f540559c53b3e183829f6754aa644a68b13db0d1ef828" + }, + { /* i=416 cDividendBits=1364 cDivisorBits=823 */ + "0a6476518435941abcafe2bace3783e6a10616dfe565f799b354f0803fff401865803dc89e04094c109b11ceb5759e805f771616ae606b7fbe886015c294e047c75171ea8a11992663949b6a1aac63180618ce1d54bdfcb96468180cc42a292bd2e80b9befe8503a50cf38be1d8c96b696a83d940e6542c2110e88c19525866e99815fda3f4d2367587f270c75a8d3e12c117461219f3c40278498076ce39faa96837d802e836e818d3b1d", + "263c7048e76fcaf3aadd7f6f5afebca41c76febbcca21b933401703ec4d2e292c958caad24d9df20722d7826df4795ceb6206559eb33a974c48b2b67d9f85f27337047b65295643798aadad58fb00c47305837b1b30c86a167d195f9a4e71b68ed47ff2503f4fa", + "459472938c6f80cab5ff0029910a101a86d5901a337fc53c2ea8f3891932cc0bc169f66a5207c44e7c1790929f6669e2ca7cb7053f198c755da73dcbe55bc127e7f67705", + "27a1f25ca3c36c80cac40d144e84806e826da64958dde719ea7427a980de41493c929c2c540b7e677a26c2fd6a1371a88a039c4e27a4e364358bfbfc7acebbbeebec260bcf5de26695b4bfa06e9cf9d670808667b38ef03ccfa4b31678a36757914cf35d3c3b" + }, + { /* i=417 cDividendBits=1959 cDivisorBits=110 */ + "6b4336f45b954bbd90bb8b6929c2d7fd139716c6640108c2322eedcf08e3aca9e78ca9cf8a68fdc3ddb46fb574a8c9680def4dcd09c7d93b2185f6396186de24fa70d2ba46291c6ecfa3ebec54118447e254c121872bd8a4a92c2a08eb4556f9521a833e37d3a0094985a8101bf2191d67e301eff8c111966e76058062c9157aada07bb4638e4ef799b1bed17fe1e1c6d0b2ef32d42396bca79911b85c8bea7ce9ea852a3646e3c9cd4424613d2eda8bfb42c9611f2b9b2d6a683cee679a9038066d8225c038947f628865cbbf8dd13ef4d1eb88581245727f00b89ba4c05b700278673a6348369b2b8ece5736e8daaf05bf295fc6", + "3ab2916f2841869ccb5362b14d03", + "01d3cf0580a6598d7fc0d0c8c48921f8ce007c3e3be0155e9c0ca6fd5950fd2c3d9c7ab36e6a04bd020208192ccf05e81c2de6dc8ab66ea1ec3fd1d264084d088aa30ffcf0849a377472d1a4c267a493f1030ae1c0b53a268e2b3b52fdc1284bbbdbd38e2bb52560778bca82af27de7589c75a4ba402af75144dff60f437425ca99257b2494c8631f7db434f95a82eff5d348c8ef0e04d9d4dbc2ffed5f32cb0e86ab6bbfb4a7c2c55cbfffdae05c05415d5cc3284cb55edc25174bab65061e5d449e7032a3802faf5891512d7e53a4821be478e380a2156b764d3840f7a4915e765cc5204a3b1fd", + "089c43286b54b6566b528ac830cf" + }, + { /* i=418 cDividendBits=1376 cDivisorBits=1180 */ + "7f382714a44ed9d4135e3cb003ac914440c9b3331153e93a90bec1783862413afad39ee4dcf8834708186affff4fbf9a684eb7e007358f3561afb7ef9a5070d0f919421fa3ed0af0cc7b3ee674a1fa18f383eb0eb9ea214bf152b47d6b290df97f8d21319af25414853300563aed9ef3d5645743967a8315d8cdcb6fb7d418e70afb21d802ea307782bb2919e5c03b3f215c895b86ce75c78e9cd81d1a7dea877d0c8e5d9571581a689c4eef", + "0cb502910695286a44a59d595827f43160e35fa6be87acd274cbdd4b3d585725c1e26ea97998d7d91bda97542b29cb7a531f9189ce7c495cd113ec8d08c71128dd2be40f72eacb597f8d3fb5a0e3c0f2aa4e0c23a9590f90fb4cd3a2c6160ed39d7c1344f3d5149ae39f38ab585a63f23d600e3943d68a7f5b4bf5ecfe1b8a12b19da6d1980a65d79c5d28f5011a597f8b6de992", + "0a02fe9d2226bddeafbbbd77fe8c37540080f2da5554a969cc", + "01f36e215dfcfc88b91b781387d36dcb4ac3ae3133ee7a9f6a79d8aaa92eb096afc11a8b293de6d38eaf6115758986b04a8138539c8a1de86b77ea423e531bba8eba70089b1ad60d758bd8fe86f5d5e9795b6e0d5b6d8d191a998a501f3dc6af6c9d4550a1c2ee20dc9de5dbc640b28c83153bd55191555c06649390757582f25d37b84516638dbcf9a80f254660b89a1ed74c97" + }, + { /* i=419 cDividendBits=2733 cDivisorBits=227 */ + "1a6b731b142807a5c4f70f7e8bf305cfec5e1eb7c0d93d31a6fd7a2ee87ec4b1698396de4998c7208b0a5624a96d8f676ebbbfd43f41476779074aa51c6bf16ad35a1f625443e65d8f7e51fd4cbded6e5faea7335ab269af1cd2d8409eb539bad8a8335c7353bd05c9a6c8b4374abc450492145462545db602cfa334dc973bfef018d1cf2cf665b636b3c2b1fb09ffe2f3d9e70670c88eac70aa4a440cb5f7b07b7709141a8dfe5d4fc361213e85fca013723f1176d80bae5e2a589b877b2de4dbd2a98bb7ddee1088deb5af6bc9cec7314c7458e27b9075192b66772edd3d57962ff98a8c919ba16da9096135825eeb4e9a889c79d46e7249561584bfa893ef79bdfd66057b6e3cd6175ba61bad5eadf195d3f3f317dca8aa48fe25c40926021461be57ba3e590cd569f4649a2358b4f2ba7ae6731a310e868c87b095592aaeca295e1d4bb314ce1e9b3843c893d6ee9df21951401b", + "06cf91fc3e8a7097209c48963d9dc927ca677e3fcb69e2b7c19a055a1b", + "03e10b6de15042a97cb72b237c0429d984c7fb87e8c2531409c9eb6d58b5dc230d4cd7353783843cd31f13e8f31bdf90e8a5c2f725a4d201a27580fe8bb3ae77e0f77757458f77f1efda275b65c5b999bc3dfc9e9fff89383243b08c5f534abfa376ba8738d67335c6a3237efa9a01b45c6b41a21f8cb927a2ea83c1774e70945f7c7359aa6c99f67c837d15b427cba254a1de4df888bd7992ef0c5211a7485c1ef9880b8e9f072b7a050082b3bb813b96065265d6a91179f4d1aeed5641a8f8a141419f776064635fecb89b047e9f808a1fde160cd8ab3c5d7760597a3eb421e58c0a740f0d739ab99670856429559afe285824ad63273a7c6faa2082fe4cfa15a9bdaab7ffa8c754651f71bb696fb873b27c79797eae357a2bf7484da3ef6f9ad1fc1941b34eafa71bdb5d35ffed7a1a6c16bd4afc4e2bca50", + "02421a3264d94ae96176244ed7e310fcda0a4eb434ff646cfb6202c9ab" + }, + { /* i=420 cDividendBits=1567 cDivisorBits=1528 */ + "7aed98f202d13ba0a46d4f24661cc71e5d3c637727556b44061265af49ef0df81cee07e821d0b27c0a31d217ba1659db714c1b8efaf85d075881e04e2cd81d72fb65e90eca31a8edfa7d4e02a76d5c7bb11a33112de387e5197ae97d1fac0b52134d0563a313ed276727875cbf2cbd199e7a2230a91e740c4ae9cd944ec6fbe4dd0d1a50663d994a4207cb1ffc925fff4d9e1a7cf9421cc4fa3bd7db4f6483d35f7b51a984da174d2e9e78438b8b2694411e9dfa54e20ce347fc711b0a09b37037d5ba56", + "b735d3c01c96b1b0052f4ec7ddb02622d99eda70b5301a20c74ab0e22f5aa8b622fc55ff08c0b918335010ebe6938fafc43fbc94fb72e782216bc241afa01ddc27c2f097023835b5b8bd5d2b4df77cdcfee6a3a33ae73f2f430638916ccf63d5f00c1a10c25ec9c0104e691bdeec7706542f560f307a952626ddb5bffee7e1dc129c7e3be2f5c3f2b43d173e90fb2be78ba4a0186b519b1d8f0ec57682b3a7a1c08e24c2249b1c44498eade99e5d48da7c03ba2c272e797df858d4aa459404", + "abc4852690", + "942b156d6f268738243ea00a87d03f30893b3fd738f53ef40b7630ec5e072831e50f8447b2991f5eeb24937162a1ebf81ed99659c7b4246d861fa6dc3660f7b3cc981dff765fa15fc38240f72c6bb5e3f023c3743d6e8fe8a2c1ea094d87163a0c69b01efe9ea77682ec79a51117d5fa0429b830ca09ad7e507e53a1fb06cbe481ca6e0ede91f0624c47aed16b20e496b7623e68fa29af6e1a40bc95bdf8f047402e26b3e6ec9ae2fd25b7273a61ed0edf5685529857fa9bd4906526a5e016" + }, + { /* i=421 cDividendBits=1734 cDivisorBits=1291 */ + "01cfd1edfdb122e7530d698af068cad83c598e26f251110ccdb91c2479ccf92176c3be49c12ed14d32a3651f0efb83a31d73c6654ed2c71b75df1bc86f2e14a52d9daa0bfc550de6565957de99628dd81fdd47650a1b526a5867c31687d0a93057e72df4725dfe7294f6ddbca27fbb695832203ca4c6ec5003189c55f01934bb3e69c7211dac6ddfa8eb8e2b833bc19adcee53bff6f5f3cc3c2813a46e1d28e9aac6de29e8d3e84693cc5063852218adc76c161424763e1a76f3ac6d1975e0c047629b7b6b366e09a1f279f52a4035825a4ddde41957b2d5f1", + "bee04372fa983df1284d4a066f15529977e0596349f2916493f28ec2657f3077c4eb43509cf100dbd600575b19bbe04c07a77bd5db394be3b015a86af437f9673b0838f49e26f70d3db970c490eb3e2456cda1ab482a6ba537bc52a23e56c78a3ab68c2cf2c38de216c6959b2f464106de1429750f2662a0c6846fb9175e6984a037498e92e87493f023a3d615ac6bb1851bfdf85d0ba1bb873055091da944a228", + "026e117d05d4561557d86a541e5cbc1b39f72cb37539a16638a36b78eb0130ace03732f3316c2beb40e0ecd72b46462ab755a8b8439270fa", + "8cacd7fa59f3ff7714ef4bd653c2ed143f29ea088ae50b1386635a39d191bc1f5e94947966f3eaf3cb5b8f91196ce6cf47286828bb85524138fb3b7f6fa3c6ed993d08dd20724798ad1c6f1771e30fbd53e347b4ad6d603a46cb8a78ceb49024908661dfab6d6507c0d98fc950f9a62f61bdf2b0d2350e68f9292c4bc383380bee465022637d8a0ad80561c9766783e3d820d3ed826efc96a2cd97b6bf10eafae1" + }, + { /* i=422 cDividendBits=2293 cDivisorBits=292 */ + "070641c4cd38181305cffae16f56b9bb3c16ae4fbec9402c883fe8cd29d406261772b851e27edf65009fa32504889ca10972eb72f98e0255b3c95a0d21d36499589c78526fe08da36818c2a075724c9325950f5801dc4284f35da1c9129d884042adcfcc36e8f5d8fb6c658ce9782c60f68088785f4110b9b409786c9bf859e053ef6113adcb835d293c82cbbc95ef6b2a3af3c6ef367fdec60c3e1898c61db132e4a5c0d4e25c7331e5abe957aa02d863dc225a56316dc153cd6df219aed7f5e399240c9e4b18fc31824b78734e7ee572db53e0d03f3f5b31a4eff60bb827d6e157c080670ad770b11e700e1f1fd56508e49a25b3d5c3c21cea568935b6d96d0db3315d0d3c364b0a7b6e9597689ab52505a4c1965d821af9c9f432484efc", + "0e7dff59fd6e0436c7a8db1e8729cf8f4a16ca587a49b0cf8487f2a9f0f0ace839b75fbf49", + "7c15ac2e212ae53d8fac797130b7376c7c9b9d0041204c8af3c09bc11f44b867bd9f97b3b3f481866ab7d00f191ddb8560944b6e3269c9900749eafbbc62a1af5562cf6134ce34c40b52cc39bd209b3cb5d344376a578680d6ad0e7ae23e682f2af2ab3b05646bd911a3744f104039a56e1fcc0a317cb4d41b5329dc491ae0c3f6a14131dda748e2dbdeebdd84395145b95bc51ecf3450c6b72da169f54b96d35c9801ce004447fdd0bb0bfc282079e1fb1412e9519e675fb989c63cec5ba962b8c395a86531b51e4e775d8b0ab7d0bf0eb933c0a6a431a55b83cffda2b88ece3f1cfb3df9be1cecfd8a06ea41bb7e3fdd557aded003831b3d0b", + "038fce3877268b8ab833674522a1ede1a3ad8167d3336ab283220efda3ec712af0f8e3b1d9" + }, + { /* i=423 cDividendBits=95 cDivisorBits=66 */ + "19ea60a70bb267f07fb674af", + "0385dede62c300f8d4", + "075b32a0", + "1887c7fa2f25882f" + }, + { /* i=424 cDividendBits=2419 cDivisorBits=1620 */ + "0729c0938d72d0a03ff8ebd5e39db0e344017761c6c06c9187fd1aaa633fc8b49f1eeda38d0526437cd7752549ec0b0a0f8ec6a6b8086405f9347c58e9e8ff7787e009d0d0fcef6c56d18bf0df74781ba6b9f07940e15b6def32429682efabb08e264889ffee0f7a5fdaae4e4d3ba1f8ae54a3d8ff757dae8bb946830071a233c31e94ea06e977e9e7312be883dfed47908b93817d03c1ab6d0aa1a9fbe4ff88ca72fea9da7d27af633b3bfd3e200999238d8a228aad8d6b177fbb5fb4da1a4d7f48252b76f743246b16b2eed520b8a643559b4d403595aa9b0f635b25d346adcf42a256335d3a40d5e8e31f8a3ed5d9a17e91a4a3df82ca8738d1d1258fc3834874826901f62925e7c054da8fd79147a68d48c5d0e48102f9303b242336e102c9ec289ce90a5970befe334f0448a4", + "026d3cd66952ad5c019be6766db63d8a509cea34e45c433bf29778a04917f27a26b7663a23c78c679e175a2da9b1e4c1bc53f71bf16afdd3ff3976394254e2105e5bafadbca241849e6cf6ab0a86c7779df94ba483b056b4e77ebdd3ed0ac448825394b4ddcaadac97089e84c89312a83baaf237f94976c5852d4407fcdf78c8f10c73eb665d0ea9d5bd3fd918151d268ac9289ab51aa4bec845727ce247b472b4e870e53c50668318ff27675c10a344f71ef7d4e4ea79980a5a571ac49411b874f2b4342aeab8727b9126", + "02f3a75e2b1c917edc5cfeef5f2a2492c6229d392186b10157a854ba81545ae4c80ce5b210dc87088c1efa04102c09297278ffcdcef62b784d29f326bccd4af603bf47fd22c5bd3c88d8a74d07156010ea69eee5b6a7f4300c2f89b7d527cc117000162d95", + "89e4618030013acaddd0508eb0299845294aaf8304395f5ba5e728405fb732df28e2e5c39860715038f93e89b92da1390c0c8568f3eae109dcb32911bf56f9c5dd34d9e224691b5e9352f666293dc5f1f10548da1bfbe5dde741ea576bf2bf9b037cb1e2e1c246fe8dd1cfaa9796d819041788ea602883eb0fbd64f163d9144cc75e57d8a9274d771b1a98c1476412ab992acd91452070669513990469d0e3a878d79b7f1279a07222a6245f7f36e91503ab3d57ba11945a3689998b7d3fc900b21c9dad177a7b511f86" + }, + { /* i=425 cDividendBits=1070 cDivisorBits=164 */ + "3fda0dee5803c3d91e1a4028c7f258b56aca583612f1482ceafe14658c320be40058a717bb6f789105c18b85953ff78d56231ca2bf4335eae219a0dee38c302fb7cbc4690bad73ee8be0a946093a50b1587247423bf79a2310b7eab3da066c64fdf11090b1bd16f716d01b359cdc07844fd097c89362809dcd996e1c9c91893c6ccc3dd61fc7", + "0e4a0313b1fff7064af0147efe957dd245ead51607", + "0477f3b2125dc7fd95bf9a82d8f58736561a7333ae2eb8a627e45ff650f2ed814179a8fed2d9edb803df5c06c2735c951cf17c6ef98449353c9f287e8e8ae75f929c592af51f6335e5b2e9f773e89f57d9c425879b93f348e103c544135c272bc8bc5541025cc7d384f64e51c4f04da282eb", + "025264e325e373ff2e413aa4e2eb3b30556b9d595a" + }, + { /* i=426 cDividendBits=2587 cDivisorBits=1973 */ + "0421df466519bd661d2c1b264c270d74dd24eb3d0cbe8404f00c653dd38e55269549a43b6446d804ebcd8e6ac390d1c16020b7e673cc853b0eaf4277f342dc916489eb92282672b5553c5aa609d1a92a2a91d807d717737886c71e70abadf295d391faaf0858c8a0c00cf8fed4183adf5c7eae73420876a93605005578e94a41723a308e10579a7ec5f9e69988a8e778f8db51ac68bbfe1f3e0a95c93bb953af14b10e2449b6a1610eccbddb154d8c67320db5eb96491a027c8f88cc3ee747aad5255b7dd8c4fd97d1713ea40609f194396403b9d2f18d52c9bcea6ee7a9018e986bb5ea330d215bfbd253188c741c733488e0806a4d31e7ab2bcf57ac4bf3cb43760f07fa5b95e8f1a987c85cee9bd93e3d18567846fb8ff3abf123f72b6fd358362f1578bf3fdf22abe569a44db973163dcccac2044e501cfe8eb65a585e9791e25f7d", + "18baa69287485844939e601fc722d24e94fafb6182d4110b500debead858af2b2c1d6f9a0bd18da64fe53897609b32f75fef3bf1c2082bd349cee05f02b571794917559f04bfd90d995e49b71cc4486df1146e40f40c918ce4cd6d6ed7bebffdbd938b14fba751250a5452db569f8e55767d9ee00ad3f124d15552094c1b66d5875bf1225de4a10d16ceaf44143c1897adb7bf5911e11cb6309ce851de3c3d53fa8ca4ce8fb5accb5c809239c03b3fb753cc6a6236615992f7c245ba763b5c8b99308145ef91b96f0e6b7d1c7fcefd22a28553b0da4756cabeda515789e278745ba1cf73188a702cc6861a5dc313899b413c9b722ec52f", + "2ac746f6bb55408b62aae8042d7bfb4c966010808a70e71cc5758f99c80a1e68db8ec809e474ca678b0122a3de2ac86389e0ffa6882cfdff114eb7ad0fb0ae092161e973cb1341eb56296a936f", + "07ecc0ffbe5ae69277f0cf459eb89041493d6f2f48e2365f9e040d38b3bc4efb885ec557a9e9285da595d8978574a10ffe1cd6bd2856cf625954843a631ff7fae26c61ca766c1f2a2185e4e4238f1c2d3fb708e5e1b51c8a986bfac44916f537bb9ac509ab91548f3246a213df6d624d56f7761e5f2eff6f32d42d2a819c3eecd3647d9fde15d222565b5521adcded914644d57ae2da8965a20807d188f66d60be4b191f806fab6a2ea95a0c84ad91a13f398798364adb01098f461212fe4203101f1f6b9321ec0f7dd05f7b6dad29d1285634673e65b79a31c860c89dab28213fb8d7ab37cc7eac76346e8469585cbcf3ace407eae31c" + }, + { /* i=427 cDividendBits=330 cDivisorBits=120 */ + "0245d82cb56ebef2c8b4af88e4d34e5a26d5de67fb25d035e1d44cc465eb0becd8f94bbbb82e1754ddc1", + "d1a5d02332d203d45d8da5f6f24909", + "02c67cebd6a629938f254eb5f836da48d5569155d5f3aca2248bf3", + "6fb3691314576351cf7d392a6da736" + }, + { /* i=428 cDividendBits=1037 cDivisorBits=608 */ + "534108883d0082c3f8a429c9cb9fdfccd075c33380e9df6b93e2526ac0cdf0960a7bbf62202fabc78b210e382634d5f3775a7938cf2ca902f41da7afb0c7a6ec54ad2ec4b6a960a086a7e9f86b71a2f35b8221f9e7a9e5b93013aab010b811e433ffe1ca7ef8d9713fe8488dc70aeda8da5f4b319fc642e4bf3dadd38efdb45fe3", + "cab1cf0b87466977ac7b3974fe457de9fefb0fef768088049d995c6e0a8d8b135023f3987609ab16482040911af8b1b7d7892097eca9cdf7d8dda578f061c756e754627da6d3d567ab06700b", + "69260553bd9776a4b25ee28c85c9e7dcab32e2a7ee5aeba1a2cf960a7e004ebaa64088e5f92b43aace87e8ceaf5ef9785ea930589e", + "8eb13c108c37f0e334996cd236a802396bf19936462e2658a066143bbb97fa65aa4d5a451443d10a7050352eb3eedcf0c95fa81b0a49658c1febdb3795a7f1a0f4a7ae182ca7dd92f4277119" + }, + { /* i=429 cDividendBits=3381 cDivisorBits=2056 */ + "15760d6c36d0622d8094d160d61d93ec186365ddaa7765198501374dcfc0d2fb026432701ab96c58e4239dbfd7e22e61573ab8f06b7169b3a342b8d35154155baf9ed058954083a45a6a07ae3b7391d97cfd903d3a229056fe8bb90ca2846d53ff72271ab14b56e9a5bb0265b89511d518d544c1d0033582944992daa789581b8fd0bba12b715b3b349d4daa6c90edc184de5e0556e7c86646dc5ce1aa97dfa699df56d8b344623bee7db0d16d5f2bac2cdbc46f13e4729977da831d9ce97866ed0c491ef72d2b88af523d076f017c601a160a9a19afdd4b809232beda94aeb253a703e65dca52f316ea265132ba56f0da42b8a04e0cc331cbeec06efbe49267aa21e2bd11aa458997fadacc5210d5f5a70afbf43d28ae8ffce5fc6b8b543f822dc3edb71afb2818cc2803480397b42fbecb6411951357c46585a3d6dc3c1a1bd5b037a116edd9c416e3baf8547de09ce988ca1b59df161b9d41f8503778fc90cfb4f51492d1fa9ebcb52e5b6423f88b77c8084c75b593242a29e44a75229970d4300bf3359d55e470a311591dec8a95276c6ef81bbd2f8a78635a72d349156124229acffe1426", + "29f989a54378742ac316399c744299831935ea13d79bab352cacffb6f8625818d5e194c357b469388361c401c38290ab321a36d8043eaaba8bf91c0d85a85d14172158b84003265f27b26f83059a5393c7429ab7be5a0127ac3fc2cb69c3a94dccdf521c8825bb8fa625d65f2db8c02154c82e75946a1a91748e2596faf90b8dc6b20ff93250bf30aff2eea633efe11eaf28436aa0e9497cddfd65d6f1a59c2336c8aeef44c91554374a178395c0223a8ce2bf505379b5a23d7693277bd1c3faea916f8d62c4eebf3b8ec316b1d260e5dbdc547417cfc70197ee22e75c128c0fa4a14d473429cb0b04274c625c60c3b8e90ff77a34b99c663eaeaed1de2ae4df47", + "82e3b26c24c51a98d0968a45870b277db44e3d6bc34611a0c023ca779cad2066f9da07fe3209d997d6113b206580e790e4eadc623beb96e2a896fed9202e3aa7a723c04cc1d174e90d8a3276f170d677b247695c45e5e2dd3b5ed1b6b2e34065347f3c6909cfda9cf986f9b05fd8df4d92b9f35e25ee180a6fec7940a94bb6853fb8dcd953e7d56a2cdac32c3c244462256b33779816645e04287ffecef2841f5e4cac9cb8f1", + "200386506a4009f2fe82b39e95a0af7bda5d7eb70a4acd2bae29cfd2bf73f2d0062ca9db07111cbd5b12f0bb46165311577aa20c30cec98077b805ecb21a892cdbf65d9e8fa284641db36473361bf8827d751b4b7fa10df4adbca2fda9fd2840036f025e1da8495ecdbf974b794c0a40ba6c0b925e11a4e8cb8c3740e7756609fc63eba218cc8b667ca6f11f7d34b5fcc5cc6caa08f5bcd908893e659fdabb083799c3b490aac6d2d60c763345cbdcaaca299dae1b33670a4c8c1b8f5c0bf169e62c018bc897bde522a6d6dd397b13a9647cbbc08dc55798d22aa417e685a0ba96a617d1add42d4ec47042cc7a189f7ccb430454b26316c951b3fd9d102ac8da4f" + }, + { /* i=430 cDividendBits=1940 cDivisorBits=398 */ + "0b9a511edb872d2e6476827ba42770701d97b6df40989015f6e50b173beafb2f281e4b8e43187426ff0d274de9a76d2b85a2d1678c7353b93745617025a667c79b81ff6b30defac75030aa25cf05b7331e3d197c5dfd99e01e15a5a914308e6c45c4efcd8885a37e9a166e382c66deb9ca416eb8d93e7cc69b83cc3ea47e1606c9533ac1642aa383fef804cca9136d91244e001ab38946602fe241323e2a2a12a5f020a5b2d1fa33dfc102cfc05e8ef928cd56495c995c58573edba3888ca015949f81caddbe1cd7a851b8ee209a1e5745f75862af9d8ecc7172d05022dfe0b6eda396afedbf2eea04834cafda64a8376de334", + "1a43f7d55883a073d7c1ebf7780f986fc78bcb4302d56190fdf3bf621138b274c1d84e7fe9ebd6e8433cb512938c70bc4d91", + "711691126aea804c5b67db7bcdaf61c657a95912ec958196c99f311d3c77be3050dbf4161412710adedf72d301e51987738460afb5a027f312616589b3e26d9900b5c59204d2d8c4f5b7933999100b93cf88c494db07faceb7a8346a645f99517c489d5366d6309cf36cb60012efedc866836aa20c901573b4b4f6210a2cfc1f946986458b64f91b6c625b6ad7f955e23eacd2a2a51d84145c3fb18bb73e6cfc0edd8d3ea0e518b82d7e5b65cb5f217e615dcfccca97e01475565d5285bda99f6a", + "04a6727e8848732d2d802efc047758fb571f4ce385d8745c1a397a50e9c776e31296c632cb4e078715b24f39e294538fb62a" + }, + { /* i=431 cDividendBits=2263 cDivisorBits=773 */ + "744e52c66169b9155d7070a4fcc80aff8625b6373358fe24a0001f4dc125813dee3ae0f0636d666dd10ec625a6eb433bbd5b6efc64417a483ba35610f0171246a0c936c5b767261e49aac68f63cedbb2176d8869192e9c1bdd74240e1d49c5b1f11afa4bb820fd4326c622a81e11c19e6adb2908e3d8ce8dfebba1d1d29a0ef9c69ae52069001a8915b8b21d4f7c63bf20e820c5435c78b6444490110ef47b6ca6466146496c97d5f5418a08a419b2589cbf2714baa305c689d2dd5ccaf3018f645b83e572f395c1d1ffe2e95e39c5c0bcf380e655fddfd057a179acf6e37e1b306cd8acf64120f8340e2fde1e1224895469a482e5d6a8a0a39ed69086828f63bb980d6186292df9a2ebd9af5b50719e14eda1fe23d711b0043437", + "1024f68b125055310cb30ae29fc4e61621a55cbde6f8bdabc235369aca84e8e66984bd5688bce5ac46b9a3f498c2fa6a77c9e11d19696e9ed085ce97d5d6e8fc4c0e8b67b5c62cbb9d371cf1ff05bba56fa81afd1fc47a1b6343f8ca197860c0a1", + "073440990e54fa0cd7dd8d0f0b4fa1a1617b2e6e13a7562afe4b94eb971f15e697178751f13c18e216d6ed5e7a9113791804e2181f4754ceb12b302609f0359498bf40498c73862ebc39241308a06a3ca84144f800349c9f0c99397bdafebd40d035e7eefcefcfb30c853a0d94123b5bd96cd866f2d69ee193e000953769184d38bd68a0fe20df3110c966fcf9afdac7e0d944a784bae7c7530c2121cd73964aeb9418afa65c9f236ccb45e820b63b8f035df8f46dcdbb2d90b067", + "0f0af38dfd03ff26d963ad7b5cb6be8edb9360ded7df16a31d331edb0153278b7e3da763b6fa2ea3ec068c909ffe7485873cc2749d4f75cb124b0ca8158e51a81505195f55375ed7c359a76844b86c8cde9d8bbc579a981aba9021a92c15180370" + }, + { /* i=432 cDividendBits=705 cDivisorBits=14 */ + "1a2e1a54267fa2a0652550e521aeb4a6f71341bae5843a97acee86f57a2cee840f2eb2fcdb8ca22acf39d7ee99c89288f55087ce159691336f4bc9518fd0b8af942bea974f02ad63a2c09c7161c72caebb89b4eabbad09a1", + "244a", + "b8afc3b5e30020a346bf0be1674d1f000795ca2de554e3f0436af218dc5e17970ad2488d6858ae747cd3a1d411a6e5a094996de5cf59cfed058f7edbace8d0fa1b8de09107bc07600712412e825fea5c5b506f6753f7", + "083b" + }, + { /* i=433 cDividendBits=1504 cDivisorBits=418 */ + "7cf288a5275bf45c8f5d7570ef430ac84106d45770a9a30a694abface9216cf633a3b239a701a24b638317beba0cce7851a5d38bbb2a0526dcc3dfaeda1f0a5b09f43cf3c2ab642017306e1e4e92aee06ab09c726f42ac5d9dff79b2f000e1a6e68c87db67a7a3505283105c83bdd705a7109b7ceeb2566a3dc6d0712b45df94ed98ffefbb18c0ceda0502b201d614dc870dd30ccc4ab2d90a267fdaab1676111b3a46d5fcc41fd944d7baa09dcb4cb1fec8b77beeed4c1edb38f8b2", + "02dd2e55b466482224d08b0ca7fdaafcb85ca7738cb9d26fb11ffdcc8e635880743b6eea1d553deb46c32ed969055f73a912534c11", + "2ba0873a423fb175090075cb487a3f8856747798e573c252543639b616185de08eb846883cfbd1b190c386ba0a1514259edfef4ecbb38e15aa4c8e4824b7a36dc48c9d9f84c8c2a711d40978078bb7dc04ea1beed4bd35fbdb96ab74a923d47a9a57cfcb89e70c55301ceab19c9f4a683c4aaa3efd557e486f66bcbc04b6471aed52ed9ad8ac2157", + "01ae02308e4e4eb33e809f4aa4e8d85324208a0bc82e074c327f6832ec0b5c29a09641229d090f239f767b9ee1328c1aed70afedeb" + }, + { /* i=434 cDividendBits=800 cDivisorBits=652 */ + "973c1ec7ea93c1b859e03b96f15d1a90a98cc2b27997ae6b318283d0b77dd43c20500e12ba005f9784d0d7e1f3ea9af3dd93125256f4612f4c88f537e194b4f551169a3e21f99749c91d307df1028953e1adf64aaa3effacec69db7bc058b760d4ab5db5", + "0825dd7dbcc74404aa12813f0f9eab207eca0750d1707f7e58d0894dcc934196d76a31c340c62685edfe596622091cd671e1df1bf6fbb5c4461c7ec1cdd4ffe54939d44e9bb262e3509ef59f701bdd2abb06", + "128fa98492875bcd814185273436b89119025f", + "05e0866b9b7dcc0688b5ece174815de95cb012cfe43aa3070be0b4fb0658a9173f06e86bcecf98a94fcfae49a1e90f588e4bfbff473792460d410b7ec1c8844b9b6999a621408d79d389beee67e4c2c3ea7b" + }, + { /* i=435 cDividendBits=394 cDivisorBits=152 */ + "03df4069f7daab3cf95bfd2b944f948b9792c7d1f6d7cd49413c94b7e78c1cd757768aeba12b3f415b359b66c7d77b7368a0", + "892280d592a52c947036e2cda1c1db74bbb0de", + "073a7202f07858fd3547334473eef910cc53497c73af5bd206ac8374587569", + "2b8ed43e7bf6782fbb3aa12a0b22376e526792" + }, + { /* i=436 cDividendBits=3544 cDivisorBits=1696 */ + "5eb0a73c10d96674ca722ad36e0003d3da156c1b7299724fba7b8be3cf28d70ac865fb8c9ef54b78abfc00e5d53932f1f6fb51b7848f9ac6e69d775b1d8d2e6b9aa0121e36f1fa3322bb2724fe22ffd640ffddd606956c431d31c3d1a5347e01710a20680f435e572cda3b750ef9a97bc3e0da39df5e35c2ecb98d51a1d9fe196bd200fd9c82b614954583f1e10fd25fdd50ddd75a6781c24c399c513c4630b1df74fc7bfc390d249fa3bd478001499b51853d2bd6f8bd0ba886b27197cb80e1d8b4124ec5e945f7644d4686fe6189db02b2bdd9c5f285c695f9aeab3fa1d0ab55de5afd7461b591b6ef334e4f681e100fa2fd0c8497d4f7ed61d01964dd7d249b703ae421326898f835ab7b69e2b27e781b3afcbda1881d1ee5c98068af77a65f21316e2ce7050a0d6b556aeffc30ae01cc0f343653e11442ba38af86de7688c375fd72b943bcc782e29dff4f655a14684807e1fc1f881a1a37185955853f8c7af708048467e6bc03b4d3fa246c8cd826bfd29866254737a795e6e4f88ea73c29dad3530f477537e4c23204abef5b94931a6383e9bd920608280b2871a9f6b171143d9ecb435bc61315751e51acf79494ee8516f4d7a8b9caf73b", + "35233cacbc26ff782770eec0f115665b32a8c639f31ec213612bf5709d53dfafc574f93b5f69493a6766ee1268abd760cc212f247d6f7a232c665908bd7cc1ae9fc85c4221685f3cc5e8283135b9f09d095ad43602f7f73aa41db3ef9e68b54a21e714ceb05352bce238b9a36fdac4c846297ed1f8e2209afb6e78bbc2792ab0b3f16caacc614e0aeffbf8f68a94f91e2e9b3ef5d68ff884c40d669556680dc6e328b9b1c85b585c9a3aa949bc432a912b5c38c05d0fd0eb514615b1bb3b4568d6be1e417ede3137e1143ee0c1152085025a736c", + "01c82fa24ccfcd1fe178fa263270efa83ff55fedfc0c31cdd527e8f939a91eb28972543495176f76d641d0c04b5812084ea4dfde72d01cbd9cea5b405a697adc7946e78da29d8255a191796c6459b0c1f73be27fecabaaab194cce73cf8201dc0ec435867cb97e1b312ac0a1785724766afc9e5d66e81b70f07bf80ddd25e59054cbf3c3378c25aaf7a8ba5c0e4842dd0e3bd1cc7fe9a7d436d8b82f2a7fcaa706dacee643023e7dc00c44af0ce5593c409c7a7b8856e98f91c0ad08db04f8a2edb6d871ca9b4e1b50aba903e6b0dfe26e00554e86d86dbf6283432c54ed0be1f1efc1658c313b5f", + "2bbc3334e3e3aa710b8d47bbbbfbed873f837248e04a33766a3be60a4f4f51acfab11e993273e292873824a11196ffb1215cb1efc246da75da83d5a6783b198d4aa4da8db1d3055e51b251e9a23c011a6095462eaafd948a8b479f2772169548e4cdb6e46425b7a41aa6a9fd73c8c3f3e179f9ef9a71486660311b0dfe168dd26f07dd758245843a99c68b36b65b3fc941b8077783ff22b1b21fadb8ca15c1cb3ffca0cf3fd1a4b30eeefa0ba2f1b82fe42be8bb9fd3dda98a50a9cb7b19e34e6d054b0ca7d9b8578347bf830e583eb6d9f43e27" + }, + { /* i=437 cDividendBits=2347 cDivisorBits=1947 */ + "45bf1bcb5ce43108c00e5c82ac54cf86814c724d2a91a75904d46e425e95a5b5afbff35cdb90c8a0cbef36ebef5c3360d3a54e4b481bacf1ef6eff20d3f121a6c0b6b721ff82cef6532585d59ab8c12b4077654f2072c677a6e9f56ae70fd25d09b9de67a55407d57ecb180cb9e7cdc2248ae443fb8cd7334876d2dde4dced60840e29bad87c57d51ed2c57cdd5c95488e619a6af496b53aef3b5e82cac1ee6bd50c525d99d4b86d03101c81c91cdb0d083fe296492b440b5b685bf8a92d96f13e28d427e0c27e0a34c77ea3ce92e7fed375df53fe65b30cba3d8148398c9b1501ead3a8a59d5c116c25ced82f5675080123846ba0dcc556cef880f21d2afb29abe595f8d80133c2965c51e291b91c521040819492fadb4f003aa765c58ccd5fccf74f38eb", + "0207f959aaa8b7d307933b30bce4451463608bd01963f1c5fb363c9260b227dcd7d6de9be4f9d41cbece24b7c5753dcb3b395925ef5e7f054e65e2c4858d86375752af1b8e82ccce49dfa75add8d0e06eba5a8add391f6833fb5c39f97ebf0292a5d2f3182bed7aff5a333e3ebdd94c6ac73c2fc7f3531e844184e46ef8740b068a35f3fb2dba26dcb4cef5c11f17ad86ea5b0ac17e23ca3bb48549b5670996ba01e2e023b94943f983c46942bc0df652edc0185735d7fd2d3509ee4bb2794544b253f26b131703ca202253cf1553f3e29cc94d14053183927e6ff2bca57aca2180330b82a8b45d6379b68618b8003f7aa134fed", + "2256a57b81c1ab8014dc61aa8a1d400ecb3bd065f0f41c79cf9882b6c79354d8f3e390186a59a3169c3d83bf36709e07f20e", + "01793afcd86cf14ee269d47dc02b476e627a5431eb20ad853f6ef9096e48de5c0bb204427c818bf35ffa08923003c74284865b187c004f61d850f1f1707fb9c8db6bf770868b543dec43d46734238c11af6cf0cd7fd3919797cb730524892ad52c28689b81705a6ce755e1400dab08d6d617b29c33113505f4dfab61367998cf16cb3992f2c76aaaa0ac345e67c18849b88cf8822b9646857052df5134432d048cf837415f09757845702e3208f5b083b6e61daa80269e71562036876ad75d9618fd187d957120763f20debf842bfc605a4ae3a9489de7e4063960f3d5d69bd6a6339056c25a05ce6d636f9b8d2d81eff337cff5" + }, + { /* i=438 cDividendBits=381 cDivisorBits=288 */ + "09776604c91d643bfd112f2189ce1a97796144b8d55afd01c233b1f181cea432debfa4507beeaa80e7da8101b6075b39", + "da64e83be2c97fe60e3a71c514460c9fb38cf47002ae41d60d12605e4b108ab8944e0888", + "0b18b082310f4d8ca86bffeb", + "7ae0e824e5f8379f64a07c0f68adfebe8a9006270bc93dd6ef2f35684dce8941070e0e61" + }, + { /* i=439 cDividendBits=2559 cDivisorBits=1225 */ + "50d9efb05163f3e5fe5bb070f4af969dee6f9e31e4f8865c9f8315ac8bb45738f113ccce385043ac59d6f4da94d6cc471d900e6f4939088832e7a081ca857b11a2b5d7484a1a2fc5f53f646ca8ac824392213b77875feb25e21b9eef08c380ffd1aff48bde5813e5e7f1a7e870ee2438be72734b327957b0ecb7553b7113fd4c13d1989e0c1210ebd4f7f8f8260c7e504bc877b56b0bf57b14238064a264382b09056d8ca86fc352e3bc3ecebc7d4e9cf42982e579a09790035984c04e72da13080336f0f5f0ef86b7eba6bba2587bc8fd2368656a05f4e50fcb3a89e83d564559b34d9c955d3270609703467d7ee9225e8c5a161d911c654b8492efa699ea98d2157386efbd41f8e1c52b0b0ddca83e59f8a4af69fdf4f2976762b52d2dc8d2f6062f4b638d3b1c493bcb98dfd784dd96bf3764ddea4114084bbce6f6fb4249", + "b047af220bcccca9f0addac1b163a93a686e509e78f2f365e11a244314e583f29eb1508256b64970c6e3bd54bfa1e8284e8473f21003ee98bed3d320aa734a135096259ed662e17c1f33050fd6789a701d3463f5bbac23be4c4192940b4aa840421eed12ad6c4a42706b091821515912f0ab8fdd0388fd66c5c74a1a5ac240f514183523891be1ccf8bdb5acd81e7dee93fabbd19d049a6039", + "756a44349269f736460e470e9df87035aa3f5ebbee515d670c6a31fbca344fd88d07000534f4709a66a5e2bfa359c89d7f627ce325a5d583ac7a09f4c82a94116582cffb7d098adee6b87f6a785f95bc4984112241f30603fcd24ecd6e73fb44364250460446c5d7e01cddf0e60dd66e75d122f3ff788a092c00c7b9161da01be4cb236dc3b87b25f1f2a566f08707becd2d0d1940613f418e72d0455e0c5351e2bcd817617812", + "815b63011a8b1c157223598f06b3983ff2fcbf0b5f70e42cc7f711223674013125de0baefc52d57751cb41e8c3ac4464969ebcc08c698e2854db84a256d4b23029991f3b16b8da7bbde9c8f31e25255adbfd415d9155f6b87212b069243ca1a765bca65963efdb0acf8e8685f4e3222b453a2a7aba18b810653fd4ff91c83997010d16920a9416c0c4d060f4935ba8491198afbc78b26cc647" + }, + { /* i=440 cDividendBits=1240 cDivisorBits=1166 */ + "a52c04e695b03bf04292c808c49a236cda1625c7cf55e70b8b7661c6beb00c148f924cb9a7a5bd4cf233726d3561192b7b90980089f6aea320358f92079c74a72b355d6089cf971af396d35111119a82ced30d9bf7817781385401ce65e5045c3d0d8ef9c488037932358a4684e4efa8d183e2d0628af2bedacbbb13883b62557864fbb799690cba78daa1f1db260b11192c00a8ccdb1f306a1072", + "070322ae28383e03e455fdf146f788cd3b2788ee069405e965b4b03b6e315aa6f46655e077eb557d7f57517a551c251f6fa4fb5b32523e19f5d5d4bb0c5b51e2ad145868c58288c0c770911a00d0614085cd6e8e4fcf247c7897d337e382aebbcaf2584201b4e58fda1b5ecaeffa80fcdee5316427c3dbcf2663faa1a7e6b9d7ca936dcd9245d1ce9a397f3af7244eddfd72", + "178e05fdf0abfdf87db6", + "01a0d8b93380232a4555b1b72a0ff1f70033a5f120fd3ba5181c7b7448d9d33f4d2e8600cc6744754729a253f1992df47b1f8f6c3c2f1ca108a97ac3b3793b877435c33614e8c923db8d38454fd89b8e9f1b4cb6fde11974267c02f6a37121420259c50d2f64f9f0e94be74e93139602db00811f93ba09f7c5c8066f9e025cce0ea68e7d7962e30fb2de9d89771f89673766" + }, + { /* i=441 cDividendBits=2898 cDivisorBits=595 */ + "0350cd5c10366700cb5e021119e5e0a9501f3ee7d6434be09b238a50f27278168e86dec3d20c4a32f26291c8838585147b4526011d3111f4d6803ea9c24e691267f6b77db93651dc7b7675206d1d5f0f01f656906d3183b5522220d833c8bee8731c4a1d5c18b624bcdf030c8ea81dd5338d5df8a9e12cd00984c776c428d1c9a5ced71b53e16f9551890a2b074cf1bf06fc868133aa3603c4d7d6d18f3b2bc7312117fed50ee48e880bda635fa22cafe7716bc2bfdf4bfb20c9a953fdddc99d5dee070ff94ce5cb257bd38648eb010044b3024174cc572d85da24b6b6c348b4be0bb700d29f8e6db634860dd8b1bc1395a347bae8ad43b287546cfaf29230c905752350fd2677d386ee9f181fa4f2c620c936a158f0555ffe881156ca9422951c3b212422fb23c79821dce9ac63cb150af51311bef9fb9f4fdcc12c9a6facc1361cd56384006639fc40011261db839ca42b0d6a7a089486b6ca9f6d1c892f5fa48ec8edae69751ceda153", + "077acce9127849c2b39e7ca0d0943aa80318653559f6360858b0ac4e9f073000d1637ec14f6e78a4da0b487ecc86cc12c13471b2944897628037499abd0cd0273f6c8036d8a29e280b619a", + "717b1f1d72b5cb3a7cff8f1712023ddb622ac6008db4f361cd8dab99d90fa76156f392cfac04c0e32425ba6be9ddb351dd776f7cd785f32a11e321e89cf0943a0c29e2c88a23ed640c4e170a6d3600f47d4a96ca91a118604bf27388f330102268f260ba57f749589d3936a41cca0464c60ea697e22bc8d4ecdb3d95f405a1ed05c083fa9dc28777b4b80fbf34018b08ed69d664c9b1d341134d1f11c3ddf029afe1032fc98589f2af7e08e736654b5bbca126d1f5eb9914d29caa1b35e0dcf869aaf57b72e008d05ac90fb8ec69db0d42494b9d48617eb13d8e5eac41982cebaf75abb55cbc4cc3e872c20e32f5766ee7e143441eb3128b180aa7b784b4b20307858e87d48790d1ce668f8fcb8bb53a4bb9910fd7102d45e667a163fcfac88d", + "017bd95f4d33e4362fd29dd6dde4d54001e8a1f78b07f82a3e9181ea22a5a7a30a6cbf4e9ce23efd48a222ec2e6d9cce42b6519c4ec7a6914076cfe1b62a6bd53cc08fb5b4615142048f81" + }, + { /* i=442 cDividendBits=956 cDivisorBits=198 */ + "0dc389dc355b875c526f26b98c3ee5675a44700c7f5b1d86229439e2c54d3eb7f1ae068b8bca7a0d36e609c7a46d1f282afc954faee0796ab8172bb447bf93719462e028a3d6f101e085560abb270616894d5a506eca83e4a28e70088a05a7281f327135ff068eee4dafc0fd501685d4a070173109c8cbe0", + "1c2146f72024ec99792f699f4111f4e95010226f4bb34f2efe", + "7d4257a33c7886c616edcbd0588623f6a68e689e6e142a3122859d4a86e2972ca8440c403ca9d417911f2ac87c633fbd86f22be1dbd526515594b778b8d83e44f93076aef84a60b705aadc726a05a1201abb32bd6d9f97bb742ccca7e3e770", + "10f847a101781db2be6b6557705f002af0189455ffc6830ac0" + }, + { /* i=443 cDividendBits=971 cDivisorBits=594 */ + "071a95d1860748ee77e88a2b8b5d3fe799cea36c01ee8424560a2ec53f902a914e6c66441a585b35186c03d7447a36b3787ee1b5791bb9ae367c65731e23f2d58f96a14615b79fc2b87659f90140b5b40817404f0c229c7f27a4f04416265e22b71e586840b8b89b96f69ab0764379eb58634b8566720f1fcd5f", + "03f1aaceec6554810ae0f0b26bf95bfbe6aac8bd669d241b0fcf935a82c8061c60a2f1b8c7114726622ec8a366b658559f0bfc375e1f100969021e7750ff66aacda3a3acd63d71665b55e6", + "01cd19aab1a92c218148c61b09f5b13df3d43f6445c445b86d75c8e6f92b7213ba7bb8ba4576941136f8aebead24a424", + "32d46f910cbf85d81d74171d50d4140b487e93315061eebda82a30e3c353a2671ae1dd7a8fefa289dec365e1947020f2c8e845cfb67ae6beb0ce6ebd4d6093659e63b0edea54a4e86107" + }, + { /* i=444 cDividendBits=1263 cDivisorBits=110 */ + "68e85c298295e846adee540ad624f656ff7febf238c0eea35c7e4cbb48011ec7a0a1d0a3e945270356485e4e9bc02b031be2b321ea48d3f67ad75459b4d59bc9f0773357c86ff2d921661c89207f568e2f9b759870fead64589d4173990847a3752778c1ec54e9b8b450394e478fd7d77ce198146d81cff99ec42c2b57531f16b99691c492b9c6a91f6876ac8d23afcc73e7f62f8553a4aa1bdbbf251a3a", + "125465b4d58a33c3a9a48683338d", + "05b92f40c1f1d837dbd741acf6856b5a18753b3c1e459397c741f4c62f13a005c756abb11e03185ef2f88736dd5922eac09d667e0c3eeaa5e40a588999e6bb326fbe5367b3a7b55e8f44a80e7a8be082492ddc2a2d8e7e8ac726a5c7f1e6c73597983c31397c1e3fbb6d19cd86b0daf6225397107bdc2eaf7a7c18f08336cb021bcd6a65b94693e39f29323105241d68de", + "1ab08caf03858c79ac21741df4" + }, + { /* i=445 cDividendBits=1150 cDivisorBits=170 */ + "1d64a4cbae4606b105d0892f655ec6ffa1e94a586c99db5f3234f795a98e6e381c1d920c1d2ec23d070fa5e9b1b289e2d51df51ef302dca86c9753696523a65e62cbb57e0d1843586726f299e4c970d19fc0341ef29d991950c7324eb573decea6435416b3df59ef9bad13e25cd15ddc94e27b6b133471e13e16f85c4eede294cb4bed7b7e9e0f274b18a65d2e119c44", + "01f0860ab6159310d123d362acc829bc18e970efa4b3", + "0f279773a76e0f91ab2d867c6880a9bf6ebee304ea30571e7d541c6e13be1a7e4d32e2444aa3c9c8894387dd304a12a83fd75d936a35341a27e19be1dc3313b44119036cd8de5b5ca54273c8ad13ccad20fac5b02aa93c1702d9fc2247b391b6e7c302c36293220aab9f24958f2fa19e001f61fa0b881f8ab477a5", + "75af31ff6d0912db6faf62ead4bc0e7372b2313fe5" + }, + { /* i=446 cDividendBits=1384 cDivisorBits=1340 */ + "650e39dc31f5b43f9c2da347c156495f140a2acdff78db2bf3ce52526a653991aad2056f4672cb952c1558d656dc53522c5495658cdb7b689f56c587370d837f17885dfea5159f9fdb9fae24f552c443bb1dd96642a5b746dc4186f31044e167164eba55eac15b21b60186af1bfec0982ecccfa10512f54173d673cd3c31556e67688f9894f4f64a0cbd4b7f63535706d17212967ef333c33f76876e9307de1c045be3d9724011b11c557ad17d", + "0cfd2bd4ece5d05644d08bbfe1260474939cf2b1b932f59b5f128f26a215d703814cc07cdce5c5b487cf1d015d3b34e28aa68546467b00d0c68baa1f20ffb1a3d12c0ba74378bbf58473d2b2a5715ceb648180e20e3bbe1cf81f97a533d86ec6b2ce5d9b49705d8810e8888bd92547fdd95397eddc20e294f3084be424bf3dcd65f0d85b8c23557a68a87c5adff29a8085531b52d753423e13ab26d2952cce08676b63b429b42a70", + "07c7b5d81f7c", + "0c468ea3a0b7878e1d96f1fd28d87f6c2e38a26a6f3dde4f67d91d9e291a74f6d5c1c43d92f99a9477f446fbe03d1abe3eeb90f7d9577cd2c70c219e1355d9b2970d9c6f03d70de859c82a16c0d2279102f1a6837efd444648e5a181656dd4ff3936266e348542c3be1c0a85a90ef0e04dfaac34980ddba6564c2af040edcd913bf96378f32db09355d8b03273cc6e6005f7c22b54ca497df2a6df1d90d26a8f4d44f5b65292b33d" + }, + { /* i=447 cDividendBits=2224 cDivisorBits=1102 */ + "3247cf4462436359b16ec4f4f75b13dcef6e92d5a81796eb43eb72aa1ee3169270fc4406b57e8b35fcb0d01e5eb1e5cf7cee4a9bc1e770f871f9ddd6065f4240558041a3a1bf43a172bb0e065ad6e108dac4cf7f1c1054fdf5329c4a4fdbcd6a480d179fc843c0a18ab954995fff96a2c9469d80e2fc7006e57f5f76133b4c926f5e0c76d51a95c014df4ad1b4349f74904e570d269d15aadc4a36f70a3d0ecea5a8ed8c37cd763a1b850c1e0ddbb21a550f2762b7787180d3af249262aadd8d3797acfd112e963000f093a445cb47b83ed94ca89aecc17a32f62acad40cf663cd20011b4c2d869fca6a807dad311fcd1740d72d9d6399654181c02de725b651570ded9bd909453d75a7d9d6b37541539b6d599646ce", + "2f5be0fb7cff7232cd3741fb8104da9b4099711d9f159f259681d6f3429adb2ebda175fa76c2da3f2d70bded7aa734976a4a1a377276be40f7750d82786ef7188b3151368ce766fd99903d2c3a14aabcd4d9c646fb2016a90c974e6dd713ca7efd63bec340f61064e99bc26edd499a15ce19f7a26f02e565e35fbf79f4ea730bbfc87d73b675f648b562", + "010fcaf68398edd53d337f3f30bb279ce36d3e90d2f3cf04b02527526fba8ae6544c2de39b440d69ca0d6615f07ae941ef8f7783cd3b09fc882e834298e9a946f17fe844ef9d4e65b49ef119dba42cc310e97fa980a750162eb0c66b0717e6998fa9c04de181dd12ff41129742587191b39b7a7788b28b81956571c1d766554498d024bbbb6a84dc15701f7aa5", + "2322f54036c331d53b8e9f394b8002d166ba60d8ef22cbfa8d56a6b50c95ecbe1fd481c3116fdc6d826cc924e07375c9d1ca31be90fb584a7b2dfbdcc5141ba137e92237638d2042d88e3382f2047b231dbbd1a21d3d6f2dd11b0f79906ce03fc34299929c85f3406c91e6d8c163bdd5dea08fc999a88ae189cc96b44a105c39361ac2630ed41f6aaaa4" + }, + { /* i=448 cDividendBits=367 cDivisorBits=168 */ + "46c0de091c67a2610f0d727d3ec3eb85a9ffabd1cd72df7c6fbc72fe193ea5a7ef117960d9df7d260899ecccae1c", + "734edf62a9b6bc80cff01cc2f0e69735e5a0f43b62", + "9d15153dbcf51a3df994e5b4c678ba80801edc0b7dd97bee18", + "5785892a81312a591c5de1d4b02613eee72c9c00ec" + }, + { /* i=449 cDividendBits=3839 cDivisorBits=3308 */ + "3f6a06188f5ea76dacfbd414a0205d6ac9393d6d38bbb028aee32e1aaed35b99e567fcfc6487022b2db4406d7e51573189ae6db64840ebc6fb392b28aff9798893fa74a5e562546bd8f10a99a3e74a534d3b4026d56bedd91e5ab85a6aeb7cac0e657d2453a1c11d5eac49774f970a1bd981b9bb9271391a8ffeddb53dc782bede3d9e6e1215e983f113884f1b14193c2cfe556b27c4629ebb312f0ed5424e62077e27012217cf31e147f7bbff63ab9a02152d148d813ef9da65cde6311b34d6fc3226c1ad3128e5d73e111fac434bc16b2af1d171754bf267f828f7da23e1a17720d0473fdf4dbf845aea77d8cd6e626ca23473c06ce2591545552a6d8dd57ad69464b7aed83dceca8ae2745ded3cf21e3218bc62893f8e148bcc8a2313baf9dced97f8a230d237d8f385b747352da3535a62c2cd8ca55e1d84be18c2db62dfdb54811aa176799ba0d2815d8c457572c4ab3f85a42c030cef26f12bcbe42f4f438ead4deb682d26dbf9192394ce5ab6c3e830e49c69c3e12e1226a5c4e795b2570e34fe1aa0e91d50927c9e1f812434c2f8c68b59c28966a767a2f330557c220a1a70dddf54278633ca0fa535caf045d6f9b769d2bc2967ad1e65f87a3b630c356a059c402da6fb9ffc158e0d200c5ce69346ac9bc1171ab90fe887aea92380", + "0d474b40fa9ecbf15f58fba5883355bd6afd6a32361034c737d30075c25621ff038d1d305be92ebca0b37f7ff6836d285724d3fbd6f3b7903e1c832ed90566fb4d101f237bb6f7e954f17956edc68aaf69a19f9720ede97bef373b15d0233bb81e44ccff6b27820d9946bd3375b35ad12c0ce3012f5e38017dbca1c87743aceeab2ccc6cca3c67adfc7b44a4612fdd38af84519945285d6e7f9aac31ae458263f16179aa84d3bbdd6bdd1842b0af76f0acf64cdad66f851bc57780acb07f0aa6cc3b72c4449649be2e08423e7703d7150fb810c33be374702be0394533a2e4f2a84f16a5798f1fd668e7246611cb0815ccbf275571f74cbf42e6f257505ca71a3c9d31c3320f43a7c933394bb7fdb6cdf6248b87a7b925a36351ce92f036252af567703c67a1dccb966402df2d19a7e9d7e04576a52fc1bf136e6694f629d05374ed76adee6e84584c04d0f7374e738a78c09695b3ec96c628bd477d2b36ac41f1bdaa792b81b7f527d7393567b26b65ccde6bbf1b65fd503510f1f0c644727751e9ffa1ef23feea7eb08db29d4b9cb6c9bca72064d2ab04ef233df17bc3", + "04c69493ac678ad0eed841fe88942b5e539b7b19ba22b84a7907d9d7577aa5d3668e7f4f51152508f2d4e9b005306a14a6ca6fa4d689538a1676ce0eae4a8f285b7318", + "05fdb83de2d2005788dfbb6aa6a11e04d731f28950ebd34df6d876509e18cc986678017419f6b9cd38b25fc5de7f9a9396e4681f073f0e9edcf916d523e028b5e6bd358e04bada82ad554ea7ff96f9a2c5e5726ae585aa9dc85e89b21676fc9588b38cfda04b8e9f467c908228f1926b030e7c6b613e50f5849b488336bc21fa4cc2331735642c1efbdae366cb0352574d14afcc81ae792229101db50a3f5417384ea96c4bd23dc111c7c1da93250729c1908d41a543cd49d1b1c73d1a326cda52e6b537caf8654d0767c0305698f524a46e22dcc203398248d206888512328bd0602dad993d080df4453995765952ec2ea1c706805177417a7ce15f19ff89d431ae6f4ed3cece713fed26e024107258ffea571b8573decb91a2a5555bcf78955e5cd5600dd86c2b52dcd30d86e07a17f6109ce422d5936c4b5f390eb964ebf0e8c6088ffdb3792ef9e2032017fe93586778940fdd99f6f190a2a566dbf7ef51cd06611d3b5f791eee1f34116aebb1da2f4bf5917ed98c77231cd2a68f0b8a9e97ce450c76e382f46131e3367c3201b5c47f4d78e400c5c3684bef1bf038" + }, + { /* i=450 cDividendBits=509 cDivisorBits=63 */ + "01dae1a6716f9eabae6abd65f93b2ccf06898156969222bea8e116f984789d2abf36b1c922e7c1812a211f0d5f8c8d266e5bc9a22235d818624dfcdb88463c2c", + "5034032be97988fd", + "05ebc565051f7cbc0d6351a36fcfcb9d2c19abff3b0442d0fc45da94f2a65ffa5c6b8575d18cc5eab2f064106eb7b69f4f233bc9727521d4", + "213302343f572da8" + }, + { /* i=451 cDividendBits=1240 cDivisorBits=1044 */ + "dcb794daf6de66638a96561d4e62a00a07d8e88ca5aa8d5328dbaa3266f11672c7e6d4cbc2c72f3e09d459db25708588a987bfc06f5d6b68b2d6f0e076c758edb941ae6592f27a3143a4bc3b5b70310d75820824a8f0803da5e1947f261dcc66bb9b17078e2ca06eb561711e84ba2cdfdaa280ceb8ccd73caa761b84292296f70d22afd9f4f5f6f6d422065383f90115d94052e53b67571dddc25a", + "0a9dece71a9cd8f8a7b6902466f227ffe603b9d8729ea93d69fb2eb9d35cee24d16e16862c2775ba5c71ecc6ca0d19bde194aaca6efdf3c17c82688481345f706f9d66fa6496bbde541ce9062a4968e7ae1873709fb6e5ae704e62f624ba9cbdde0f1de60da82ebda2e0a5ee15ac2af5ccb8dd1fb406f221167bcdecdedd6269c227a1", + "14ca0b1a1f9cc479eee0d10e295ad623f59a8293d5d36862ac", + "07a26b8faf1fc0b3b85b9fb9b374aaf0a6ca9822c34a890165647fcba9e172958054b7c3a2f5d2913f21f58962d9cca8415cbc44a61f067749bb528708df30c89a341d9b052d57f71f59818c38736c99c13263b908fd9363388657401bd6b9210a69e3d1e27585ffa0fb58507b80bf02dedf1aecb1e41e0e7e2c27ec8a933cefd7802e" + }, + { /* i=452 cDividendBits=1121 cDivisorBits=886 */ + "d405d1d5098a7be58f2de6977f618eebe91e1f0a21dbf15300da651b6170d8f1cbea11acc6dc8e46b6616edecdb205675872d28facf3992bdf9c878d8b8c6bdf08a27e867d73c16293ecaf2d7222c86222fe488c423e932b21ecfcf0833992a439bbd4e8aec04af13185ede71ac377fd898b86f085c157c056ad59f295c821cd5e788777d3d685a5e00c2844", + "2718a5e008ed0bc89df078458e5e68829c38b570c29d6c31ec1779bd4473683fba3c504d0b7051e0cb37f25892ef09e8565a0d0d91952f01160ac398e45544afa1a56b6d0a8c4f7bcbacb0ee489e8361c9eca7a714b86a9eec5fa152da33ebc1de26c9a2cc9b31dbb461b407cd0116", + "056c4fc3992045952f74101198a8dd79f186b3547df1c3442a95373c04dc", + "0e1594925dd6e2ff11a2f03526d60bd5847a1aebf99d4d71df165a5c62f565eea1c3302ce3bba4705b70a4e9e4bd30fcefc0b71cca2a6af11564f8c04d6042911b268226784f713f5ee0478890212a92df08fa941da4271b79ab0514f867b7251c337271cdbcdd6715a1b9fcb2e15c" + }, + { /* i=453 cDividendBits=930 cDivisorBits=595 */ + "03cff3f51e39adea2f7f17175df5c4526966a8f16bf1f4a6baea9f9e2298a1d5d71322da313480537f5b5f177c3f051f646c36923625495fd6597c91a6ad1ad7b1e65d920fa3b8a1d19f0f202b5a8c4b50e8093e13a9c498f2567f6aaf5d167f37757109d6e072dd70a572ef0a8710867b65ac5f3d", + "05ba21ce26d2be9f9d5df29144980db380b5d2c69e784a1043fa3e6ec6db09a8b1e1addaff60d40a7d90d2195c17684f4ad141a490f4c8a001485287c7958faa16f415f36826a5761d025e", + "aa690765446af36f4c29bcbdb8a99db0b4387a62333e063b5e4669c1607960a06090652e039efd655845", + "05789a46e0841714b90213ced468926998004479c3c9f47e1b34d934d14061d3a54454e369fd3ed7fdb22add19292383aab7e5bdcf27253ad19d07b336cacb331f98a499e0667bc1f46be7" + }, + { /* i=454 cDividendBits=2490 cDivisorBits=2017 */ + "cc669844b524371f809ee682849aaf96d1791ad70ac93f9f7f10e5ac06f002ce5843c1fec4b15c561d19c0c73bc52798bb70f8ece621307855f1ba113a940b2426af7eef93385a9f4fa3a95a00daa8e19658a4997dad05995cb267edb96ec31fa9fa5b703c32949ad7ea75a2268c1b55827e8d8e866026802ca80e9e6bc1d086a651f486137bfd43c48cebd9d6fbd5489e975afb166fe4ede51e7a1de4e860f576280c5f79d33e262565bfd6a687c96c163354c6585f240cce1e0b9381b8cb3dd22d3b82415a44190332249736ec7cf01c2a9c4e978e2dc044712215e48933051e277c7a265a77046ff1b030340dd1c2e125d073c7fe687c05406d5d51925ea3221d7a9b7e76928f7c0b5c8424e2e37455b945a36ebdd3a1b3cda896cd8ab3656871915e0233ef2fde5103e3a9c2f44f020322fd337701", + "bb137a02a1865fd5449e362bb376a93e6713735a841db3fc57af1be5a69c26eea1de555b008bea208e8654a89f4a5c2ad6c87fee3f60b9352025d28df7ddcabbb9b736ff11ce988487161c43be7cb245b7c65116ac1d57bb1d41e087d70818ff6686696ab07e435eae75b2f0e869232e5f9616302ec0ac36aca02361c7824bb3f18060f0ab0550a58da87b4b1f21f6688c51038adc9d986232fdc987e447287981b391c553277c43a711d5521adb6a425393a0ecb7b9536dc559d61f48119a5aec33cfb79890c321bd19f788738e14fa0c5471e5944905278603e15f679393864e3811bae439a6e187cf127db8b9f145a739bef87f7e69e7ef496354", + "0117b522ee172bd6372292e1fc65f5d200e5c41ec556358a3994da3224ae5577fead0a590794d97e7015e0621995055a1f035851d43010d4718cf5c9", + "a20afb7a3255b9f45fb40073486e1f80d9553d3833fce0b01c103e43ef450ca016a0852020603530ff16374eff462691c5a2c9eac4815ed428a928cb7ca700a784343e0fa491a256804c94966b8d3e3bf3c82c9561ed9de5370b6adaecff1fa8c7b87c80cc7833e49d50eb70af9ac5d9e583a9ffb78cbf668509cff8579c26bec97c09f480d672d4f04bc52f30390e2ad8a270b9299d07079480b932b5a7496335a7fbd066208d2c52879a5dbe8466ddc782435c5409fc1e688a6338e5351cc7fbbfd804d4889a7a855bb8f871372cdc856780fb28b4ca414293bc5099f9d6b6571e2b8bfb5b05b50cca8f991f67853084155553ff34217c7a95160d" + }, + { /* i=455 cDividendBits=2088 cDivisorBits=630 */ + "05e24761155e66ace4a0854ad23548e0035f817db891801cfc23047cad165e972da9c76d4745e3f4e3599b1073026c350d7096f8fbfd61b518c04530ce921c9f49d4ac9ac7855d912353cffc3ee28a0efb4503139c825be229baa03dc5fd6a5048166cca3f99ae0d8feff6cb20105a00ea8b282dde5ef011feba88cf6588b4a71c63a3b7d6dadbfdef7c9d59e7d91142a9336d292232888c43ff4c19aa387c236c1dbd8611663696d5a6477ea29f2c33e997d971ec25a6c0680eb46ea24e3c2327f86f071ff3d2a6eb5f945c1644da902d677c4214b0d7e5fa7183e64207703e17029ab161cb5f781de04ec2d7b306d7a8a82230f4879ee3d60c3108e0d83dc28df0332c8b", + "0bb9870fde233a0a85098365509de7e0c73d45148317dec1f2ce1cc1c3c909ce022bcd3cf1feab6418fe258c69d097bc42a87a604b3d7678a363297b38df9f09814b62535f7e6b2d4ecfbdc1c332f6", + "80786a9942ba6e86032fd6108297661c665ebc4cc23617f518d9068ddad523b433739a15236467149582f56edbd076029912ddc13bfcc32a5473c8397986652ba090039752e3cb6996f282f744720a2e1663ed19494e7d5a959db24e4649f9dbf154ee415bd74fc5560eb66ef1ca5e7d10846c3bf15cd57eb7e60ec0c2a64ec406a7620134897e17f79b4cde79ff4509b0c7d9b7c0670272ff84840dbc86c8fa93ee36604639ff54104f156c6364fbd23134c6e2276c", + "0521f1a93a33394bc1d22728bfa8fbd3bd8af11ab55001da92afcdd8f1acc5c8c194ebc1c6989c48fc09b4c61c92036afe145482e469c7bcee513c6fe212d21627a04c38d687b1d7c2be4633ea32c3" + }, + { /* i=456 cDividendBits=1697 cDivisorBits=1636 */ + "283f9d315a80cf771479a2ed8c29e3a715b734b9a6c1a8e9787b74cb5774d5dd72c7779192e4d5beb70e2fa70e2244cf1ac81798d7b75631c4fa9b58429194bd7ee332ffa6cf3098d15f51274a9ec2db572b7e0a13166e6de5758afd30a0c0fe16e34abdbbb6163311fe06219624a48421921f97ee001d8aa050ea7259e45eb0a0916cf5fa4ef7b1355e3616074ca10b2ada0b94de5f6a83f4d2412721853f6e687f9e19ceba2b23bfc3fba14c286e1a0a7b42c7805240c78975ca02eb14b71144aa00aab2afe0a50a60d48fd9c7f2c60c1fedbb", + "03c991feff5e50609accd318fed90fb55346bc32afc969b33cb82aaa3f42615df466bc3d6fb6809c14aea4fd5bb2587203ec2002293097badfe6edb445c8948cdc3e94ea6b3677f28ae13c2be30c01f8c1ae61212107d21d075d8c394bd4780cf59fa48e7fcccb8bf308c464474ba48f86d54ffa6ccc05aa544a54eea0f6cc4d0e04f8160fb018364baf0692fc62d6ee89ba7f125f09fd6d8dc24ccf64dde1d8b2190f6c457cdc77648228e5814822998d3df575a220b639455ef7b5ac5aecb3f4e64303f210a35a134b1aca0f", + "0aa0826dcd911a63", + "f9eb4cdf3f3c6ac438cc140b7dd97325b2885b449dc1f903d511f5b1fdb3c6423cd52a935fcb68659d4297f56b42567db6adadaf7bf710c994a114eae09cab40becbf42ab34b89544d3407aeab9709c8ec19a5a5acd91e9e5f4d8065c0b469960b86c9f4e87affe028ed74b27e6870c68d75d301b18d40c9a99caed16b09e739de44c1fc865aa044c24471b34973906a7641d3faa9c5e60dac6dabafd294b2d5db0ef72dd509c5c442f6654a21dfe4de38d3bd3d44746b4882c2ad5c764af14e0658599de7008351d2bf43ee" + }, + { /* i=457 cDividendBits=478 cDivisorBits=260 */ + "0259db1e6524917e064fd808a1b15952a88a3ca464e33f366706628d5ca8d4459369f89f16fc6290875b89560efc7e06761bece9bdc36f050123680a", + "04b1f640fc14d96acb7a0515467be4db03351043b930f961e2d59d04dd59b436d4", + "802fb4f8c5914f8523c545a763c9fbadaa2a67ca765f812a7f86a2", + "0275ad9d45add0f7ce127cd7d8a13dc5be2fecca460375886803731fc3ed39bde2" + }, + { /* i=458 cDividendBits=212 cDivisorBits=64 */ + "0ec278aeddc06b112e99a30abee698bd11cabd825c4e451dd72bb8", + "b5ac417eee343f3e", + "14cc57c9cfd450b399a7ac4518e34b34270cf2", + "2e890925430a7b1c" + }, + { /* i=459 cDividendBits=1317 cDivisorBits=211 */ + "0dd47274bcc905e564096a96784a3052f99676a01b709f106f92233a40b7519055b501fc6ebe8b2ceb618367b6aa9a28a41233fcb10958dfd14b45152b6d70a0fb76a4c39c59e0cdafd517851ba5fbf8e99c530fa28694ba0319fead949347ef2da41a1e9a3becb4ff9349281f29d6ccdff386461c6a39fd322869e3931c32e5454356c1a4b7800e8c8c0497797a9e69a02e0046e5f51e50f2706c28729954cf150968c0eb", + "07e989b80c97cc35df261d4ad1fb6c3d33fdabe79d2fdda401793a", + "01bf76acc18d42639263e18d4eba4ecd79c3ccec4f60e8655128b3b163cdcecdfe7e7a74731d9e180d25a6e42e1f4a7b6dd2bbf61ce0ee97686d9ce0ff653de703892b36fe22d754044ea5df16a66ec8723c4fca3489739167ee81ce3913a9caa51b74711d83f382a05d1e7f57c5a5b5fb004fcb0f9b6eaa33e80a72cabb1348ca1c15a2a910e62106c6cd", + "026fa0958b6a54db1eecbb46e4bf5ac23e06f8afe97afa3f1bd179" + }, + { /* i=460 cDividendBits=1655 cDivisorBits=1109 */ + "15d2064748053bb34ff3da8ac7c299e7109db08a65da4d017c6aca5c07c390b3139de273501052956edeabcaca76f8fc6d42656c79079aca0afbfe451b522560b896ab16f013bfbbb29e6f87100fc756e7540c4433598a42f9acace58ddc05445b55eddd9eb70850a8c5232fbeb7ebe8d1ac99e341649ed1f691508374d402423456997e6bddf0b49c30344b6caa7255c4b5424b20a34b4cb936ab407bc675f67a80580f706d1331c2b238c27fc765dcc7f1f33f8d42665ad5e4310b22c4fed6a1aaa88bec84f12f4c9bf29d0cd395", + "188012c9320699fc70cd63fcfa76102086f26aea068a291c864dd1d7e2431780a2f57e6a138b6d172395d7d43a5b1a0d0f82493d2bc36e5948db9ad0b27652f12e6e7ea71e7bda2db8cde81772b271c8ad395a667ada89976c79149186c56573c6966f1f6c304f1c269871358a8bce1e1c968192486251a8294f965850495c5ed0b62d72bc60fc71298f26", + "e3ff92c7d0c8037b1eb0294409ccc0a6e7bb53824f29b6daefef3a27493a3b72edbb4775f490d5c7e874b2af9de0bbab1c0db49eef3033a8be33f98dd6bee8a62281f376", + "12b1f8e58a0086683fd0c24474ce7f236731af14a578e6297be0b7828ee030b7bda67ba64e29d4305217bf9a43cee3677a2af2d87a3681507ab13221679132b02fea52e9e2972a63e43d90b4f711c22e9a21890fc21f1c73fb903a96043547d9d1296837b31bd9c7f442e5160a04cc57e24191ffdd4326212ed969e57cdecf4bf55f98094a7a93d2ddc611" + }, + { /* i=461 cDividendBits=2717 cDivisorBits=207 */ + "129937c57abed3bf92148a49e3fc80a46ba3da22a7092161cd632c79cd3453ede1a3ca4fe2f48801252328ef9ba8094b90538252b4a8f926f5aed832fc3c24a2d4e3aaf8a93da485b8bdce97d77ab2e241068bf8f1a165478c4a5896c73a6a2beeea4a0d65bff8607f98ea5d54f9553f07952ed3d33bc50cf2feac691470424af95ea4e67c589377e41841a43bacd3d9e4edac6eee9a15403924f7f735b9e6e63fb20af64b2453fe041f2896900ab2e02ca399e6251e6c19e636bce753819fd4711fcee3eebbb79d7e07724e9fa2f3a19435f58babdc47bb6af3321c43e3d65a4920a863d230a2a9aa3711dd7bc195089a6132d03e6dfc057dc12c056d96252816649ec1d7aae26bda0d7d608207a99f085d28905ee8c2406b1711313e52f17a7f68f6281848fbe70d62dc7e5ce57a27f27b375afea3f6f06520f96638b27622b343bed5d0b1c84d95ec2ebc9463ae2ed86a9199", + "538c9c5fac4debbc93ad48105401ce52ef6b5d1efd91604c1036", + "38fca8fc4f2e26ec01a72050cfcadf15cac20053aecd9e29880e601ac9d41bfb4e685e405770cfa78645d28256a6aa7e9d27356d3eb37bc67619f3da28ea4ddc052bf829c684503161093346e881be41be4a8ebf6981b3e41e71ca2eb2754a1f24595b2ec7100f254554d54843c01e1e601ea89a86e004ee692ff886889ad2ce647c25e286dda79d339e0c1e981c6cc14192693b4d3f0ebf4a20d3502b49565a6b0f9f5952822f7b53fd817f37a74ab2a3ac08c3cab7102bf63163dc8c8f7b705b6a6d168395a516f245b49e41387acedd56472d16442a42bdcdcb7bd115e33123b605b152a8d3edea96181fa369ac8c663009f1bbbf271509da2b827e2d3133583982e68d7575e72090ebb42b528f745788c83437eaf5ab6f267162c34b1edf4ac928a3f00a4b19fce48a7294d1e59b93fa011b56243945c854", + "4205e26019e8c5753f5a98f426500074f55515a8978b6e3d0fe1" + }, + { /* i=462 cDividendBits=2144 cDivisorBits=991 */ + "a85794496e30139bb4a89c17bd39593dc330269ee9e11ab6357db3a2c0e3258f94a356bbe7b8039d23b22c57af2a1714fa76dce519833c9a7c95b48448039ebe89b18932bbd481ee5f12dcf424b2df8e62d56e32736e9c33b5338994853936c07e06660b9f02c1d1c09685e8620df42b23619e6fd83b38ac3265702ea39723ac994d885c3c816b305c96a94eb83cb428b24662068dd0591f5c1663a52ad2a71ae09e91c5c8f9572dd0e91f911bac1624ba27b3396736dd5653e62200c5a9a8d37da446349322aa0d5f7b58746815474b2f7268e8b71d1f1da911e853aa5a8b952d0f7ae392050cf8bdd82b66d807a1f84ebceb30d3bb855fca1a5d82b776645b6378c45467f74376e2610d48", + "21179b1703d77e29dcdb63ac0e04b2846ffb5565fc6124fb21dc9d5feaa8654ebf898e0546cb8c9d4d53711577fb195311a26a9b0e582250c800b423493b0b75604125234b91fcb7abcdc69ea6be2e5a228ca22f078e253a065894e71b0c9fc978a2634c18981d5047ea8a3b9c9c62eca625fc71dfd9d6a15ee644ca", + "051649a87927d88f8b863fb38a6077d6c655bfd3b700c469f4983da51e51c5f3dbcf3e0ed11ad561f6d30ad7b5293e22051e2dcd5c9c4c14041c92e12f103edd9d2748ecc65a9c5e90ef9850366f6fc0544b0c1b7c6b901980c997e10ab55fd10adfa989f04013dfad1b34edeacda99679b1b7db47448102d83d34093f5be5690d5c6501752cb88592cb3a4baa2dc37a49", + "16eeb99925f58895eebf5269492949606e8b10ada0469c5a0da77c5a8229f19b6aa9093f126adeccad8b2a19b972929dc733998986fd33a5a3bafae36f2e64795c52d0a86ec6ae720a8fb41018f51929a66321e52f9bc200a4797e0db74b6c7447a98eee40678cade94d3d19c78674a69fa4a1a2a92188972e112bae" + }, + { /* i=463 cDividendBits=744 cDivisorBits=3 */ + "1808e25c5f3ae354c4ba72653ea75bca806935afa7b4106545709862896bf57bd2e654cf184d4dbc5a3a43d5f0780d3e3e95b0d6dd7ab8f5f8c69d5837657921f632d940bc6d102f0e9e49ce16d044d0f7ed7fe7c58acc5d267e6fa3fa", + "04", + "0602389717ceb8d5312e9c994fa9d6f2a01a4d6be9ed0419515c2618a25afd5ef4b99533c613536f168e90f57c1e034f8fa56c35b75eae3d7e31a7560dd95e487d8cb6502f1b440bc3a7927385b411343dfb5ff9f162b317499f9be8fe", + "02" + }, + { /* i=464 cDividendBits=3398 cDivisorBits=565 */ + "02092dce9a7f1c689fa1cfdb576e2eb1bd992cafb31d4a4094b583c866ea780b7a7110ce77408a540e69dffee83ac4179c7c3830e9080fdf63890bbb82b0dc58864d7a5e461334cc7bd70bb5b9355420becaf638f41f308b838710a8810fefc93055c6d3e1561c65134ad7c62d78c6face64a79f36792898860fbbca85bab3db5ff1fed0d52657e519290fb8a1cb1f498187217573b6cb29ab79a260accaa2574b0ae6b878c9825c8c64324746eaf30356875803b71b9c80a6c0e39a78b5b65d5fdb6303cb468594bf188ca4f9795459c19ad5f6adb3b1642f15ad2f50c8a289cfe11057e92ba7c70138c5fcf4afeb7444d3ae1940a927e329a9fe8e136e9045a774f78b88639873279250e0540d3e99a675bca4988e5302ff67405addf5540ac0f52dc502bd02807b16baefa8a54bd0667f547fdef5c10ab1c04a38dd503582be6455fa0b3a02b78acacf410d6f58aa725ad59a4d82c6fdfc8f31f38791c109dc45fdc8489e79789e8b8e163a8c678851db688a50962497917d9cc607e58b21c28fb70b215786f2e06436fa5b66933cf5eb4c1519bd35b3d2a42b5c6c8e61a8770b2d498b99f4de2f", + "1e10098f6597d5d8c158f6b2b266a26533f13373a5fc302cea9558ceb285b2e7ad9825d901759fbaac000b2d26363dbd45c7ebb9d9cfce1fc0b32d80edd79dd478cc23a7a02717", + "1156203a75151c57deb9fa55446c8c6a2476e9553ceb86a6c8ba144e5bb8ddecafacee7c20b7e96a990d9709431ba60b9a84d7270307cfd3c9db8e0d6c2d2e4981161d365d1f4f9f614f754440773c752a1528afae71fbf92f7ea3fdb27b6986d8df7c61a5cda5f1efca4d4a8aaa194a2b3e9a60eff4696ced47b115cc407b228eb5a7e0d5eec77bb2ef59873ae2b0684d011cc36d20fed73c065c271183e7869c9215547637b7e2804df983f5f73ffcdefefe6cf1027a4d74b6dd8263e991ed75715546584934eeec5353a13f08260b0335c8d515b96be5a78d01f4d26c5b311fb795023859a325e7f41436f779a0c9a91b05fbda3d8278eb02d4704249cdd8e72529016499ae20b0ab904e6e6595d16dab6d6be20f34c003f39e7e6c49231bb7312e939641720f70079c416310fa346c56a1b26c3e772096b0ded9c89bb28d13402076e6381d895fff3bb0c1e126d8e477f53b6fa0ce92389bdc7683a02133e0ff", + "187f7421b38121f8c0fdc0511adef8627118f467699b592685edb2f814a7dde24932820a1961079548b6d948c300ddd0c64eb98de307b71e112d340be3748eefd18209bea4ce46" + }, + { /* i=465 cDividendBits=2040 cDivisorBits=12 */ + "985cf3271da6ab9b28479189e59b7d013cbee1eca34c6686a42fd0b0db76c55ec371e40ab01336fa875d67da8cca24262f8a6194d2759aea1eefc3d9dbeb40af306d1b3b4efa696a649b88a412db1bc4a2e577d6c0e646c06e9cd5e250030157b8b59b10b351a25734966fec0819e79528923b095cf2577e12031a348f033837084bea8f67a544da570c70b9e035ab6b0c4455261b2426a9fa03679404454c29a71022161c0fde52b79034664b3ab0a66b68c0d765d9fa1c1e12f22b2e78ee0f8fd5d865b37dbb2c0084fc34a7dc0b1c77adb79af10458571ba79de8c0a56d013cc3253fe05f94a1129a8167ba33554f43afdfb45346b5fd0e9abc2f6e4e15", + "0188", + "63809ecb2d7c84f79cead1fc03a976350d8c54d93b9f9bc5a4b183103bbb476ce82094ecdb7a43405866cba8d954fd7c33f1e1af8eaad81b81eaf2d76b0c92bb8d56ed3667d28dfc5699d165ecf794bf1c03922e34d514152e1d47c2d0fcbcf55e810c73656ec80f279143de0fbd5351bc74653f9584243d6f07402252f26ddacbf2e253340370e22e662a4524b555d2f8566bda311262648e6043a495132210c0b1b8383c1f42d2c1055bb084b89d28c38854242d9e069a32fcb30c86d6cfb6922d9cfe7faaed2c68d43c37490d16ee0503bbd2e68aaca1606d76cc3f1daa73bf31131a0ab15bd6e793ec050be2d4727558bbe37a4d8685ea30ce7d041e", + "25" + }, + { /* i=466 cDividendBits=1701 cDivisorBits=542 */ + "0c07a82a5efe9d0fb6cdab2719869520d61990e94ee7a2e94765a06aaafb9668be9b938738117d2f92f6d5683d760f5b95802ba07d18ce9b5f3c4d95ad92dc099e38fbfc4bb342c39b7517b53d3ef7a0ced951bfb7411acea2e4d91d5053249c32bc7efd07e0e200720a9aacc95e7e79050b8fa13203fbb2638186c55a19e4273c92724f228ef459a41a953a582fca34025675fcf856e7841450c58671cab03c30ea09cf12db59f3994b9739e52d557f67287ab7fdb1b55b460325e6c2b0bd7cee64bec287cf544e5e0bfe71007161f7a3308889d3", + "2f75c577e2494732d6738e27141183393dbfd2066436b28ac3d53138bf26cf0401d94327756d9e907e3a692f852ade1f6e9a1d7a4e9115936bc2b12382b7af62f391d0e3", + "40e3b3fd4442c651c1a6c1fe90f967f66e00548bde05ad3ad5870e7ef95ef738b4dee52e2a31727a49ebfba2d6f1afe76bce7452844f0d65c3ec9f4e0b57f7b197c54e5ddd5d5150de7155193bfd4181e6bad3c18067b128abe9cb338646ac18e49c219046955b914f4a4fdf518bd54ace5eab8eb1cfb66a615b3310b238f59df2e53496f670da93e0c8bf7e4f822bfbae", + "15712ac9ff667f2fd62d3ed29ce0e78dd4d2c84bb6d626205921f05dc354fbfa08246594758485ae413c09968dc852ae0a220bb7354fbb5b2cad65c1aa1797f34f7cfe89" + }, + { /* i=467 cDividendBits=877 cDivisorBits=154 */ + "0ea6c9fec8453d901c28367ceb3d2d82392aaa0b4188fe0676efa77c9bb9f37e3c71e69eefa3b6b2847ed5bdf895bbde274abd385e2fc69485d1476db01e102bd5e988aadaed39070e607b7ed91acb5f73012011ba13552c9cda4ddec9f66cb8b6661e21356fe6bf107fd15eefd7", + "03ed5749f668afc7e82f78aaab679bcfc4a0ab41", + "03bb19cfdfa2eb76253310412930e8a90846c8c7637e757c3a3be6dfac677ad7472275cd27ccbc5503c0f5eba5a97bad2da65fd6a2e35fe5ee66080192751a9256ca7b18f190d7163b625212bbab84af005d29784712fd50ef411c", + "02e356368d0ac8c51a4fcb6cde94ac1852a1b3bb" + }, + { /* i=468 cDividendBits=2798 cDivisorBits=2057 */ + "0c3394290f0c89589703a36b9dbc40609524350a643628472b5f96acbb57ed7fd035a3d8a2a02f7c2180686b46424e83cbb03bf9cfc374d0ce9994e380c645e6147bef32c55aeb1354c8a2bcc796d977f54150cfc32fb4e60c614d1f8848b6890f0a3a4291cd0cb55335dda679d6e59d9ad35c3c9df75bc4e5021685f3abde61d7487bc28e361d1e6ed65f2ea69d7ce603ceafa0ada5604c6c692391ec1fa6c698f432d6efca2a8c931352667f9db624021c74954e2dfbfa7d287ce3c74ada47274442e183b8bd9b2adb618321305cfa63792b866db45ed933c18294aa1e0cba0f214cbdf8ffa96a51fbfc6ca7aa8e67d43238b2d212be5dac5b7bb9d7ef41f5ea636f444ed7418500254dee8e82fa76116cf0d57ae17ba38c61bc38d965ba8a6710462540d65d32dcdb75721e5362383a3c3e7705a255519fd0ebcd0bf9560c66f44c66610bd993112cca4a365944c9162627a979150e7fdb424c3362ea", + "46b4a79f7221a4f64c6e8c207a76ceca568cc768c21acbb590de83c439af4cdb795eb0cdbf5fcca904961bafe9fdcc40a212e674a2378911952172c37e730cd5960924497856076db19e50aca724465e366112b29b9f1a72a4af39305c461de34cde2f46a7937a2ae6d85936963fc2516e0b6591b61ed8f14b9dab25e41919a193c1a6e893830a8d0c449db88d4b296a90881847c1885517adb154cdf5560f875e972fc1b9043b236bc2b240b5049289a58064de39506e9d6428539f92f71a422599eb04b80e4cae8597481d0c64ac7967b035bd1d59e9c5dd76cb1c31edb731793e41988e69508b39cbfad9f96a18b11c2f0cb82fde4d62e0bbc623e81c3d00a4", + "2c2d5cab225fb256aebb3c7dffeb05de2889051708a333ce4695b557f458a7d76513c1234c05d3cc4ecfdf4ba3f5dcca2eafd8f06831edc01a5b919700ee06b8beb192afbd40164c044af1502a5de92363a06e6cdc163402fc6335ba0e", + "1258c93323a316144e4224452ef396a1e924b92e3ad5cc071ab60b8d23edf636984c0e2f4ca1d2f38f79f5ef33a95998d4944e33e5cf89c630a6a31a2f4ab72d0b41a4e74bb0eb449a71f63a65f9268764e503b523cda9a6fa5f6050710a6b8c203e071dba2666ac253d42c47b9c2f8326e3b2e9d123aeaae2afb6b83f2a670fbc4580b901dbe021102516c52bd7cbf199d4988062d49c127a21a7b5aa449ec1e3087628f4ea6d7d5aae9f48b1c15d43fdebbb79820dc16b5672c896f7cc421ed68e6f66373bc60c307cdf876df7c3996f9e4ce4e25852fbeade68451ee7a355542e2639193b7ca4028d60a64e7ea6c27a19e65150fc62685e223be6bbe07231f2" + }, + { /* i=469 cDividendBits=1135 cDivisorBits=461 */ + "34a443dc5d188cdf39636ee2ebe8166a26e7d7570f9af03b4deb87bc1d21dd8ac77c87e6ec85f624034b06e9981753c9fcef8c5ccf9a551dda250efaac518b41e08e151538fba78d58b49c75df7703ccb8cae9d729e4bbab74803e7221e86afdfc6a43ae56a0a7af40a586dc9a7b5df656978c83d9e60b151480f89c7f4ed6ba0f3648b17b0604f8d4020d7b7898", + "0dc8e405526701491c7f7a9a8119e0d55fa86e2f62a4754fd9873186e40bc58591dc55e6166aa37eeaa39a556fb8a7eeb46061a9f45deabfe23a", + "03d19f6cfe0eb5d47554c62dffe479903358b4094cc6db23947f3324dd6800298f6cacd7411b7bd8dbf104ce33fd93eae3a2884ec5a8d07874a96871cfbf3f6215362cdf041b3056c145a62db712b6aaa698ab996f", + "059b4dfe5730fe0cf61bb080a167db7bcf32c47fcab6d4d4e207d23a1b381b9408c2ffe62bd7cef7cf8abcbfd558b4b966ac8d3acbe20955b772" + }, + { /* i=470 cDividendBits=3783 cDivisorBits=2698 */ + "743733cc55c8f79ca7235d5d512b794e9c4f8ec95f183ba2cccfa3dae9dde2768a878f92970abd58a8d0ba6e52f473fb6a6327dd3a47d6e67998fc8ffb81d1960e5dcdcc876d4bd14b64014a4cf305fce7282bedf310c97bfb823df2abe460dd68f78e005e9a0de4c0cbefe55b10076280606d1b34d9d1be98e88f9f447992be0ec167867bf933157c015bc7e5a7ddfe1e71ff94322dd27f81902ee42287897fa87deb6b9adffbc2b52b11302991cbbb84653332a73dd614e7b8a626ec233407ab75501988dfa1d1ede6e072f10137ffd01737fcce2cc5e3a54f584193d68ae8df5d61e2102c66fda7ee182a0151e9975467be78675cd3bb734ef6538992bc34494625cb0eeefff63059d90eee4ac26b5c3a76be8b4a8377a03196ae1675707fbcb90a8b7e526a1c5e3f9037fad8f20d7f595362c662681afa198a0d8e18cf82108c7a439b7182d0bf3ab0448e5ce6a7b85adf942a0c2e33f0af674081154c090dbc093eab2cabea577c92d9c2adca49fb9a6938aa2858929f4101470b159c204f1a736f7fd78710450ea78943bfa4010e4a216fa71e1390ec1719cd7bf7d299b0b4e361418104220a8314826b7e20fe31689572f36b7477d1e6157d48b5ac4bf67f8c6c4f95e3cbe485dc680f0421b1b1711789bffeae43f6", + "01a823260ed795fc75becbfd69f44760724e5a64aad0475b04689ef6baa186094b3490348b736a3ce6707294eb935b7d6844597e2b71f4c91b62c8b55246b2b93eaf42fc599ea5586f6d423f1e382fc6348b65b91edcacafc9a6fd719f5a28aeb36a62fa1172aab4e98e05d8202a291504e25b9bdc198bcf521a79cfca2dac363c3725b251c63deccbafe4433ce30213520865d0efcbd35896028f3828206927efbc43be4e5158c9a40366bb7c99ee0b57e3ef33a8dd37b3788fa1272b1486e865337c5b60213380ac681a99b5790bb53c5c47895fc148b882f7326825d123a3ad618cb4092c658cda490053fd94372153f373b976c687972634fed57f95478fe63cf133707cdbf994156c6183183bdcdf084fc2f0e1a75a9771ae42d8d3e42359d3b16efbba975382777b7fef746d5f92df8e9ddfe0752b4514481350ce00920c809f38879ae75403e6dd1e058ae2dc3a86", + "46252cda55d6f96499f8f3dea093b5fba5368829d122ef927e9f11ce46f7eed7f10596856db55e58ab5a37728fe3e43def42321f2e80a87bc05a0d67c3f7bb97737c39d1f37a50e340c4aa9c3a21b2c0dc9f6a21a2fb3682f96511919c9fe9eddb2d2d3e111bb40fa687db03a4d74bba2560e1070b6261898ad198ae480e82d016111ee72b2d03ba", + "835322fa0951693b8aa8a1b117a322a24ad535485d433bc622e9ec474ccddcbc2e319d68fa2ce0c7d56eed21b0bf0363a8293e3a3fe42993a972d0d28c7af3768a27ead4ca6fe3b4183d5adf71c3439a033321c1eefd4731b0fa3a8a12d4a5da195be8df926808ce57b2a2e644f1583ddb2a7f2def87bdecf87c5aa66e9b01b010c7ff23bd214ce0b0feed5661c2c727d92ad82856d9f204e09edcb9a0d353027d6dd31b2efb3452114f39384ca4b5a2ca511ad6bcf86361c17e0d8a32575b2e2ea4e8bc7a0d0bc7c943af5f4e9c0e4a347bc56a296a0739711e70e69a931dcfeb3e2b9a7d9198af018d8bb741a6eef075eeb0e09160ca79c62fe9fcc8b0036ed6ac88ab043d9bcc5beeb3479c290c20bdded28ff81b81ae01f3d3c4fd59c8f7d420209e5c4c4af36a1b4168d36c9493ecca672147b29e8a1de7930e3cc2726ed86712bc0c19e160b8373780b9ca6e2c9a" + }, + { /* i=471 cDividendBits=3817 cDivisorBits=2870 */ + "209f131ee5f6ca17ac4180b9ccedf0c70d070bcc2d183d39f87a200c37963b686c06d6d3ea0de1038d5ba1166c1fd690ad9f43e7afff04fb5c758154fe179b7806576667536cf9a8a4d4f8ac2d8fc8ae2cd13f9e65d7cf0ce2852c6a432b78e810bcada88a57fa6ab5b298a40b8b00f6b3b1afcddab49a058c595ea5d3f9b897046b9c706dd8396da24b6f78e4a38380e7df7300e89612cadc3e0e5e01088cf1a19cbbe929e7b3e16e3d81473543e041b398737639b0a674d5fcd582d6930829122c64a87040c23983aa619f7789dda20c71d0ddcc3ceb3a29caa01ff7b52ab9611f566aa96b044dbbed2160f9351e7378a52f3eb36de06354cde43d063d68339c1d47cb7555d12c1093b69b845a6743f66a6e2f7c6f49e1e56fac4494d5225fc8a403d160435c8d1c32dbbf469c9dd42761e9bdc83212ba224bda75c622ccf323ff53584f3261b53092440a2c67d3d8c23dd24902f77805cf4daaa75d1c358cbf86483e608135f6984d8369d733ffe2ccf1bc6018998484231b559ea3f24270d2c812db5111abc6b22e03e44ab56424409b402f60157f234dbef26ea99b1641370d0fb6c88e4738d119da94d3e3d804f3815472bf933dce0b1d7ff6355eac4f1238d189e9c97b5490ce230d8980ffac0dfcdbdb30dfb7eb6072c14f52", + "26651d91b1c93810612cbe45ac8718110bd6bc931593286cca50296356aae099ec9f876c2ddf039a8cc6adf50d625e207b8b1aea4ab8fa9d6e752e579d2ecaffbd7273e0689d8433a79e402e775bd7a5dd4c672024e7569993da9880c3eee13035a3203cc05b673958930bd7aec27a32dca19f09dce04d4c3d9c840f74d7cbfe318035d1d4ba917fb5511ec76c33f95580f6f5645f25018133162159daefa6be0d624329b67e22c89131e90ad4cb6ee27ba8731f45375555002a3eee7cbf441ee6dfe1d508294d2daecbd08336d603d92e34442508466d19cdcb7f78efa0a81e20a665cc157ffc739499d6f73a637e37d9c2472cc05b6cc34581d5680b7832bfa414c7d2ec2d5aface4381211c3c4c3fd4ba6a91163e35a172f8db4f4d47257daed613dddbfe6cc63bf5efbddc4292750b586e21bfd9680415e32dd69c02c78a528ab43069a2ea5a370506c7409e6df198fde1c583e587b97e1938677c37d5a22256b9f2ae8836", + "d9811b5c3e9a64845d72694debe5810eea59c7870b229b62909f5e1ef6371c66c9b4afbeca8404317e73fdad42aaab53380ab074be688e2e70b2b39cab3f94614f970acd92284a72c6434632e83b781be76f431b64a3d752ca01de7312da0b19ad420fb0ede9e4db5f797bcc4ac49e5c915473e45887", + "1b16d026b4cd38edec3977b65ce474b114ad5324db28c0b86b82bf51b9832e7aa189f2b5aa853a6ccb8c8746c834f0fe6f358a2e4e3298f508ac0e18e852e5dc1fe98f88a288df2c3688f48977deb6d6390eb1e2f4a7555643c16938e411ab6634cbe395de292b9824c1fa028b142ace0cbad9084ddde929aed71c1f8bf43b312d049a4c17777c952d224549934aae25567a198c6197b3ac78d21da285c3e0afd92b36e98a057a3ee5019b041a3f218ce0a0de541ad6d25f1ca9a09421c3d6946a4b69e182f13c38c336f35b857c687aae0282fb0f4c672baefe9d92df2c6b434a336e7504ce4f36b31e493523ca2d87ccb9b59f71bdbfd63484aa562c6278234ef11e01d73f793133f3204fb1bdc49f9e73f091c1ec729c675830545c023160eefdebd860e03d97b479173dea863762eb927077f533caaeefbd4d09c040e7c8c12837fb3734cd4255f959af2c4451c42a861307963729b4826aa8b2088aa70858718be7ccead8" + }, + { /* i=472 cDividendBits=1432 cDivisorBits=258 */ + "a3b25d41d604401e202cd9256b6bed0aa38e8b4d476edc8d3367aabef64eac5c5ddb56987e8c39a14e428e1112184c40b003093ebe1c28774c2e07186d88b64fd34a5497c7991cb3020289fc72a3d24b2a2b4fe7e613fde9c811004218cec8d15086a9aef7216cf072618c5d27a4e968143d77e8a7adca1ffda835e475dbff708a69079a7cdddc66e3159b746477d98fc6a9f56be2a4c21a83dfc87021b2c2cd01befe8f589b3352f1e661a0892b80a82ff27c", + "0145d7e9d092c95cd30fc0c5bd94211b94096a23f484f0f207e2df5e2cf8929969", + "809be12f4eb85d89094b731f72ac24ff69bd3470583aa8b625af38cb49b9f7ff83a40198cdcad45295bc11eab3d46ffdfc44fe3d0d9c94ae7a00a5be96a6632182f7f55e78a9e42c551200897d01bdbad6864d6f3bc134fed9f048e928a419c22d460be98a371be4cf9b5f80f6e8abc1234c1c1785d7b2af72b84e978469179b83df01848630160fc786a9b5e82d965503870e", + "90890a9635ea9039993cae8107044acc79b30140f61370bdb5935ec8180a2fbe" + }, + { /* i=473 cDividendBits=1853 cDivisorBits=1651 */ + "11908943621d42bb008124a835132170393685bb165f7d2e5a3b5fa42142778d926b8cfceb1ac2192f9da4d33de4226ae3d697cf2005b6cc0a0d948ef270eddbdabdcbc293907caa7b65dfb23e42b0136217f46f38cbb35bd68f1dc837c62755c643233895820a78ff6a88e52e9f0883302c46032d671cc4f8f51ef0ac7ef6f48d45f2e4596cbb9bfa09c40e5bc9fca575dccc1c5248eaff7ae691e09b8b6b37420d72a58ff3407fd959465d9dd0575bacd441a8389a38d064cbb1f9c74adcab7494695ad70622178af0150c3edb08c1e198c0696d99f6969d40bdbf14ef379e4949b05899151a1a", + "038bb6a0ccc5815e5e6638daa347da78cb36e2baad3507731de2a095c990577f664b85d3bf2f4f079222f17b6bce1a2fe058583ecf97279f477746a81c503ce571ae3c9ce9a15c56a99f9a15d443e7447f32247859c620b5b31e36486c026c81817c5c9f5a458c3603f13ea7daa61b1a3272c573e9086bfdec52788c15a4a6fc8b8db240b869d1b393c895c6993080ad0f4881277fc889f7eafbf9d7c3c15255d488db3a273b032e3c0c0fa32a0b4aff9884413125a9d089b71f347dfcc9b92beccbc0a86b0a25d668bf2871722727", + "04f4256b99c8d06db10e1a6077cd65dd8c5e64a448256994a0e5", + "01698b566abd9876efb478f50220c794dfb21f499f1794fd7d0ae570da6b8afcd1e831b7e1c4add8eced05087c829f1677d260f0132f59cbc5e375d82c3178fe60dd79c8f6c35ded5ac09c57bd73557e070ba1401e931bd05c652c7f9d6ea738533e1a14e7bc06d4c5c483dc5d1d3361b92c0dde851bbc5bc2091916cfef9c163513bc27868be15710427336b3a186461919b2b0ba8238f547e11a14e5053cf42fa6f237552ef222f5791248a1bc4e8ff845cd28e871fcbe7fb7fab322f83f3d66a77129e7994f1ab5619323f3b437" + }, + { /* i=474 cDividendBits=1736 cDivisorBits=1034 */ + "e49939a0ee603f1696a5cc8a3ea5d1924853c30c92747167c5a5b06faf459671af0a7b76387c0773488c08f9bf76f077529a2d39a0f282b2ce9c211ade5dfd6b062f640a6925ac6faa477b9a053e2090babf91ab37dabf6352ec9900a9db52accafa2c394cf503db6fab54d7cdd86a1d39cbb37d7ce6289f823f870875cc1edb618c8e504d4bf475aafbdd1fa2c78b9490f36924265b8db8aa9d7e158e6214aba15d62006b50481465a252e1ce5c3838cf9dde05fd5cfd4b217876a8963a23c918551dd5b30b3927ee023373925ac506c433c35584274415df", + "027238b9c497c7bd230065fa0aca1706aa5d4b746b65c97f75bd8edcfd28ff6b85e5119ac42bae3640e3775a8c132bc211e666f4adb5e13400bba87ac7480e7b54227adbb489afe60d73f50e0fea47bad63349a61caa702d1487b7ecd7e6e052a5bafe849cc61858c94691934a4313668fdef19a90be4130e941824a7791e585f020", + "5d7388cf3b6d0f296d9d5f728ce341ec1750c23edc185de29b9017f7e478f64420f81f42833a6e0e911508e2e0a6862c67f8f902a91fc50c809831160bc543216853747d49b54dcf860809e2327d0284e92a3377483a9bac", + "28cce1089c8e3a71aef961955990c36a16736512526fadc75a9694d00002f9e54e02c78a609c78f57d2e42e223b82c389db348393913a3728cae17a5be9b204e85b9bd163c8356b78c669a477c56a4e04a52de863c7b5c86405c9b5c9e48920b1b024d9957c3197ec2b547e924653d323f9fa7b790f85ae8cb8e60fec471a3605f" + }, + { /* i=475 cDividendBits=3308 cDivisorBits=758 */ + "071c04dd99e77bb969f9237e09749deea24af94f8d9a5fba4bdd527904f1e063f1dbe8ea57eac939b71cf569e1096d32a8e755550415659643dfbc23cfe4adbf237669f89c2f956d368f9fa6df8ec5b3c609952deb49f9818b3c25c44e99bc14c1c705a9c74cb619232ead857d1cd485a6caa2eae4d75312059b2da323f94aa2da3aeb5960dbd3820b72dc7a0f17b68b0e82e2bfd482c1f300ccd82489f6e90d9bf4b5f0b416dfbe62d5fb59667998850e20274b77fdb2a0c4863f6d3bdacce724a9b48762e14bbf42571d4c63ce79133900f5eef7cd999195f4f912664730b966d3e5fc096888ad2415a6478ee84ef71954ba72f8df13803c9b4ca657355504788a64fa356e793558e430e5c59b48fffb1b5bfe400033c0689fb5ad424ee989d784ff6d4b9f1715012ac6b24074cc97da00cb201cad18365936bddf42e7611081f0ea2341f2ab386028aee71b0a7e0547b2481789b8b6500fba30ef63a067b23a9d6476f9382684ef20e56a0c9b1da9788732b4c01655f42b96eecb62a51f819ffa3fb9b09405074cb8a75167f23c3cafce3d3aa399d022f4652b4b895d", + "254959038c981ea7e0e871b4c18e79eff97298d41855dfb65e41521111b646a8833ef75658f9766b924ee27d04c663ff4c868c46a49323c0d74b89abc4473a6d77254dd2bd14c9b6164dce21cf2a7f9c12c8c40f2c081f9aea1d9bc01986bc", + "30cfcd0f454e9cd02e8fea6d9a17c51c0ba41659622e362f00ba7a2d18a75f65d1595d3fec8e53da59eba25955adba38adbd5520f5db2fdcba6e7ad1acf51cc75ebc395337e1e89b26721295098d7f6b16dd17dcf84f1c481c51380102e7c4159b2f59a38ad3c90ac010db08a4f9eb5b30432f38724999b5930450955f095e22482201b533e42b38bef0b59159ddeb181f13a64ae9eed2fe8c18bdfbd59cfb545a0ed81f616386c91dfbc194812a338acadcc4d73364156aa64b5d931399b89097de5b6bf40ffaea02da2fbeec0e93ca8e03b81c40a507f4e7e47ad49906c90bbd6a440365347800acf059bd34b325b80f6fc7a051f253fa4c947bb9239127e895555f0d9b415fad446f963092d38ca07fa703efadc974dd36ec1b2ed444fe9419416cbb50ba25cebd2df34d37a5111d438bab6db4a65d37e81a7c1efd6cfb", + "177f270b36c43f3ddbd2c42783ad98a9f74d6369a953ee5cf837b14e62b75b3ac8dcf67c4d9fb4b0beefe1df1204f460810d5059b380e4d4adcb3cb4bb6f475412f1bd9aa4e8957044f6dca81567d0f78a6018d3963816823e0590dda11f09" + }, + { /* i=476 cDividendBits=3363 cDivisorBits=182 */ + "02ba7d220609f2aafe2508ccfb6cedcb1ec86ab5bc1d3e46594a606561ba528b649e2d26e5912a5df169ad0718ed413581ebacc17eb16084e8db45f0531914546f82d5d4b65fb3d089c3ab329d4e41dec9de13ffc251db3325bd1f0ffe201c1918941fde32e308afeef67d5c6861b3e87f752de66313a208df8da0b1d390348a92896be531b07312e5de9e36214cc5048cabb7e7c1f23e17a08c9171cb91fa5367d99aa1146dd0a55e6bab5cf84808d7e8339709c4d699d2912c9c7c0d915e027221de92c39b2205029965f811089ebdd079e57bb901a6d570735280abb5e4cc62e69afd93ff2e7721b07d3713aed791af55f9a47de1b5b0e98a485b303d2c0349514702fbd80c57181d7f633e07593ce99d515e900ed6e491b2f8d664b110b6c049e9a0197962ae08210aaa306e9f65a1a06f5d46cd2416e15ebb8c85075f91a1ce5a9f398418502885c7493152c450dda94c90fe75c829d4898ee60bf15a4c240624e818e19ae77761c537b85eb418b5f75e0db99b55d22c7a68cef6a7d6b41dbe035e34c90d0cd6c1f4d534e8efb01aa4c5d1bfd5721d2b55ba98688627f659687d8770", + "029f09fe95055e3ae3ee4dfca523237710e46aa2c50a3e", + "010a78d6b62af48de1a98d6743ebce42bf25294e197088f1ade031fc10b7c29f7cc886e6048fabb28841fc899f511b8c37d470539ae39918dc2d789940fa91546b62fea2ddd9ee1dd52ee7930e411fe1a090425cd4ee40036c1ed3ce7273b305891c7dc14ea249dae7174da4dd3c4b11f2da37165be1aa643591b9363db8972bd735e98770072e96dccc5210111fe5255d43bf1650ec6f54a259c7fdd3f22d15538986b2ee471fa5931b7fb0d05966f0b0dd44f64c81ab8b489f9c6074b4829f2a11809f9eac23d0c2ffe4a8393358e55030bfef10f93af11ddd4967e8393f2c629cb4d5c030b5c3581377ca2809fd216d7edb1953329a1902ee203f0389ca48d43a9e4e64398d7de7b23ae8f1ca71be49e2ccf9416510bca610bae15b64f2140894d5f98f8170c87ded148e68784bf762726cc5f4464fd0afcc945831da6437c5c11fae2f41eaa9ba4de8a20f05ae9b96075bdecf05de838836daf0111553e23013360ab871e6b749633b1ad25bb48485157ef631c1833ad36e4fdb07f87ec6e35d093b2f745918338f801651959b", + "dde67a5655729ed6b71192c539a6dca968d29a9c3de6" + }, + { /* i=477 cDividendBits=557 cDivisorBits=428 */ + "0e7d4d6a3d81d34037107e84e4ef3630f0e9ce129509f86fae4fb9e288f957a080b5319e0f43b6dbbc62762c66a22cfc1809a7ec3d6171a209f6138e8ab52793080966d65cb6", + "018498925faa606ca94ad350e993995ccbf6ca94bce4100243c1c6c1a295cfe255e7719a5ba3310753304e9536ee158273381402a698", + "098b9f0c477c11f79631603f76b2e3d157", + "0124972ffa7ed7546825ceb4e60bc83439c57c71e0bab6462c273bf362db0b8337dbaed336d1611664af5f3488bbbe514f650725a70e" + }, + { /* i=478 cDividendBits=1891 cDivisorBits=925 */ + "06d7b92b97b989374146e65e4f5007e54cb4ac8556bed91b84238c801d64a65ba818ff9caf4e38ff0d966026b62d03c625200f596c7cecbfb70ead1190b869d5eb5209b27a1c8ebfa7454c7226080444cf0179f5229e768c29c1046a768169d2a1e0a524be219e2860965d6aefe7f877cc8eb1a89820bf849ba46b1c428ccbccbf06d87a562d58cc03525b80949f88232d4233f3618186a1fef8f4c95587dfa853fcea38855c939f5a815a84d182709985ea6d0f630e15e9ff61c82f585d6a1dcc7e48bca94e9377b1eee917b903f3f37258e5c9651d06e1e508e878def892b928f51b5e6b6593473fa8f502be", + "0e0337ff22d94883abeafcaf653ac1f5a26e7c58e312771c532f662bbb6de1f59512d16fb639c84244a90596cdb48cd954d89688252d0d7dc5453e1bb955c693714df6799b4d1ea1144bf21f21d7ed6ac0b04ac95e117c60e899faca1e038c0f41626f29f28d67538b6591ea16dcc59ee04134d8", + "7d02c55d2cda16b184ea4ed2d560dc3f36e29eba123efd3d5d318c07d243553b3bb5d036325758c4a916a4a08c4b0c41d56171ec89931e37d75fb492a844a4d72e285223c20624a5c0d902d3e3b9329c7fb2d2fb4b08be3adaf0c79f87eddfac4e11a51acbb1fb349cadf5c12492724a7e07c157417af190ac", + "0d22bef1ed907ab1a19d81e5f7f551cca73e1dfe2d7491528c48890722e465a5bf5008c2c87b39876798cf4a01cf746c95c08d883c5510391a2ed91fc664795cc4752d3635b869b0ef03d16d68445b31d6b0e325cd3f7aacfaa9667aa794f2be9d040fc024b947d722d674cc40491ef2a014019e" + }, + { /* i=479 cDividendBits=1463 cDivisorBits=286 */ + "4646e782e8b8a73ee7928a276b1ee15473e497b683e941b09076fc49b6a4f8958e40a6d79a3573fefbb93eb901ff54938368da6b5c1ea101fcd86c700bbe598589d3732ebc81da5d6e701e1bbafdbedea5140714e9f0eab1f5d20d87f372dbda463d27d348e35518cc5c418fd16b3727cad271b38e28edad63121cb3bf60fa88b4d2b2e13e90bfbb542011e84031f0e6244ab19ec97b0ddf887c583b8e322be2703adc80441303fe3bcb1cfce1a4003b4d3dec0de60f74", + "0434652fb44ceea5cc61ff6b20827603fe48c62d6535a0ece879611e71dc9b3fce0ddd64", + "10b6cac5d8f46a90e6471a54f4c7f240f46ea4a8ad6887bf3f88206d271219c39849bc0d301f28d78cff795d0fa0ae735722e6d01cb7ed7bf89afac8af67e7f0de1bc87d883a27d4302d6a4203b92b6804122fdd0aa3c95b5696007922daf8e8777c7fe5409d0bb1eb071c0ee90e130d88a685240aae724a32a4ceb1f7e10dd9d6a42f741d4e55527386964c87ea8c02534c144e", + "034907b34c511ea4ceee0a6454999cce67be1397fad862cdc79142b53c9edeb50ab0cafc" + }, + { /* i=480 cDividendBits=1171 cDivisorBits=1061 */ + "062a6acba0437ae09b856484a3f600cc566a97046d3b6e0adbf7f0df6a5f1e70906217f6f51f591d2d8c39d98660d738f23e2baf02c2ba53b48964c3dd4da2129a4393f31ff7c937471009cf8ef81f0a3ed35fade202565ca0c5a77a2bf0528bbe4db25a8dfb2330ef4a9f36aa90227818a36043e6fc734d7bbd68712d2b6748ff1e35e28d56b4a2ff4ddb515f5878f20e14da", + "0f4e34be004c46f4164199154a40b4fc8478990efa154e56a17ae6ac6da445d8d52942c66ce38f46554db6e57dcd588d0c991556b7780b1a3bc2b47c10b91fb47712503725a3f04812539fec9b253070cb19c64eb941d6ceef583ac5359ebfd5dcb6f1716b6bfb9c6ea96ad2845795f4297b8cee2a05c2be8bbbe892796e758f14420bd7a3", + "6720a3e6b06ec953b38e8ffc8bab", + "0b71bec55d19ef56456e407a86d9b3c55f1c80892f19e36a54d5e114b63043f76c5b0569a640706339d75e4306d9102b7dda8a65f21eb21ee4241da7973f48b1d1dcee15d7d8248dd7cf35e751f4f8961e479087e97c3f04ddcf9e4b943f193e092b0cf0003c87ae3a088bb1fd1fdeeeb1ce89489f3d99361c046b2b84bc218f8e149b89f9" + }, + { /* i=481 cDividendBits=1041 cDivisorBits=380 */ + "fa9d1ae50ac86b4621544ddb063b1446797f2710047ad077557216b547054243a2f60fccfe5cf5344fc5a42a288043f89ce50992ac0bf7487ce3977db1ce8a3410b3d54691e3c495692ce014a03b46a1fd656373e4486cdb17435e3d19755ec5e525ed0aac1b4b61763f51e2f98ade37a93251c355c62b40fcac72cd5450dea3ed05", + "0c45723162ac704fbd277833637896c7c953587f9e8cdd9b037a98ab5825876cb7f9d06a0dd976b9e27aa66808367451", + "146c3c35eceeca98ef5795b7ca70382987b4e74682ac60c0b1f42a7765336ba9dfb05ee0a717e30f9212aaf26c5642b3d2f4ca82a20d56a02f4bae1f85d9d52cd0e782b554c78b8e5c869a1ec4d4a85afe0937", + "06abd6ae459ab314520ed205a16bfbaadd3b1be9647383c61798229746c8f9e6e8642e1a6ea5b875c46b37994e7c169e" + }, + { /* i=482 cDividendBits=4053 cDivisorBits=1354 */ + "0a01dd00a25d0f2a1adfb27154813553d4f659ed9385ddab080b8677f7dcde658436d7539ed3001333d76d8408c8a8cb0634a178efb03e51d9d68e00abc6300354f44294588a02ba29985d77974522985972705be9fa4b930f5ce1033fbd63ef3853c109afcc0af13b12c5d608d648059279e9e926c4d80be0222d5ff14a9fbde732b6c7ad67a81dcd05ff173f2c5c99fb5faa22a4628ac835a9cc2659fe2f016127ffe6cd8391eed891e5369a7febcf168c2e20fef4c8f0f8ddcb0e572cac8ad7146a08b13e28277d7fc67d4a2b00365fd7a092459d8b092ae035eb1abe6740bba836da8b1b1b40d5e473d455eda8983932bc233aaf5743aae5aadbbd9f3957ddae7a5af738b4207cddced7e29d404413dd134bc40b7eabb7e66391bf157c40ca31840f3c155f70d75c1df2bcfefc0e93a296389d7568a93223de644af4577e848f151825684050f1875fe0b592a376e2d934b1e91b41ce82d8ca739574c6f32cf00da1f693ae747a01ebfe3aa7caebc103616906f64df67988f89d6461e8283bcdb7ce171ce8c10caaa110f3325d4d49a4b95f9e9ee95cc163f2b61e3fd959ed3e71d1ce4d4f2441a1f6ef3aafd843f1f0c935b2436ceec92da51de87bbc5e64a099c891e7261ed6bf99836328cf545c397eaef291a932e8c7512ce9f9e1c5672dbd32b29a50ab3a2bdadcbcf8bb1ba42e12d30f8c0d38880a96", + "01a28668b2464f1ec99b03ecfd2a6cb0c974dd8565845d88dc5f2921a39d1c9950470568ef105812beab94785aa1e02fb2c8add5621d4913b87e4e21095972b8d6c12778f1bb27cb9a68abc1498e13db902805ef75f5f91cac7a153303e68ab396dbe6d8a867246593c026befc8f627f3242c3ad9000b7a428a5f12a320b7d4baa1abada9048a95808d452e0904a95fea87316e1d8a1d226b3164a9768fcdabb032cd0668dc4aa8ce9f8", + "061f050f629b21ffb19a299785e5b5621ee1f8bfc525d814bb38cc1327da02eadd63abcd4456fdb128de323830543a6f2967addee7bb5c0c5e55d4699c1d12e4939256a29753a2e33f82ec69baaada25824de068fbb138da35aeb4e00755544c54125ffb5fbd4818c844616f6edd510e3d803d021be9d3d0f46b2e65f481f9bdd5efa579d749007d82626230b55116968fe6985195488a4dd0b5f7065ea5f73d2961da4d94db177ebbe197db7b2377ce85f63d411e042e8847bc3ae903ddf85d704ff341c5c0c287d7e859f23f594d27506a7cf976effe70ee41d5b9600575f61578eb3649e9c4af162dea5f88ee44b67ebd9b581cf63be482ae8722266e726a4f88b18256606e76eb5147b40ed17b8c83b1d4dd29a50158ec6282505216079180fac887ad4e632e0683a2e080b60a1876b76ab393b364c98f7e81a6cf59498420a60e57a22c2c820391bb43723cc43f4895", + "010afe74419a1bf882a1cb29cf627885e0553a5ebdefd2a8041e2cd0f9d4e5a5594087b05ed825f4b7d6dbd9f0db79f0e6ccb4ce21656b579ed15ccf421e027fea0f9a1ef7c184bf703bbf9fec62fde6f544db36624f539071bf48bb0a57165181c5a6466ece6ee94affd152298caa9051434ef55f73f99b5d3e813c10ff70e5f0ca133592fd7316d7ac75d06b2dc678f25c327225b5a20359d5bab30119259a1f4d1c6696aedeae1d3e" + }, + { /* i=483 cDividendBits=3879 cDivisorBits=1022 */ + "66ccd13a785c1b378404bc7e30de12e85fe6834405360509fc17365b06c93cf427e92172dbf8f026b85bdc09b9c3d3e75dee9b0483dc7747e1d3a806bf99689449ef537ea189c65995476b30be6162774cbf5c2c9d5176fa10cc6d06c0963cb0bb02e44e94b9b21bde86d2df26f6ef17d620a14a4cb2617eaa06e37208ec83b8c6c2e701f61353a246741a90bd46b3a706250b493cdd9d57b629b9f55d534bd6bebc15636e14f4e56536cdcec45add70a2619ac31543b2c3727abbcf2b8cc2d8ba47c62005f152bfed6debcf58e04047446a3e2e16e2f7abc6fdedad863ca8fd98b1b0ffd0e6c19ba41eaab886f4cf1855060fb627f052467affda95c07bad15c18d15eca06de59c785bc6b6fb04feed69e5ed03ed6c259747d42ef788bbe5cb322346eee37f7248ac4df76a15b8f878d71cddb08bcacf361db78f2792fc5147f89037dbbd5dafe87450e0c5762c615a8627807eeeaaf65c8ed8f784eab5c8fbbcef50064b5c5daf5f5d61369a541346d9fdb138ed41f043adcd53a51c92231f30c4a892fe9dcb826aea9aa2a6f60393ba897373d9209ddf13fe573eacd8bb42b6a18b9e1d2034e5e78abc2b67805b8cccb2f40d6be1af9a7197b011717899bde1b179f054d33b496afdd89373adc1c1ea916c029c33a653e6d834e8f9541f99a5e04c0abd", + "0a57bcbabb2260b581d4037505756d9b421cd00c5ba8bac746b38a780c14927a4600d0a49ec88dba4700fd54a606d59fcb33f154d94348636a500ec2ab386713cc099311987659b0a476fe65aa1675eb8d84fb68690ce566ff7145fe69a3411abd0221a0b73ebce26618d84d20b579efb450db3d0f98c1311708aedc031dc0b3", + "09f079fdf57af8ce58d1e1bb0724dfdde4f89f7a58095d9f4f613be5b858a5ceb47f5caa883d53bb69471ae137f06865b8541892d0d7d393a96c1ae7ac6f5920fb3989dc724ab59b9e86093bd5272fdde38583fa3eea6f7495a01cdd7721f26625146a14ceb2933544ebb9872dfc2c42f65dc1e3bf2ed79b4487d7499a71bce4756c9c57f810067c660a3051bb5e9d5119791b144f84176e69ffb87255adc9b4f4c453f5e21b7a773cf93ff329c2bdd43cee66d7c4616e52ecf4441051b8fb3e9b0a6843849f63479b2de12add1efa25b059534d06bc4a24f97617e674415bd6e50300f5028a1850191c9bc45b5039a31743aa5b061795a738da34d1e07f3e0636d038e138b3bc096d0860d2902991d374b6068834070ab6b4aef12c38919eb67f88591f03df30f9c512d95324dc56d721b22cff8d406d195e4def7861575bb310fd0ab16de37872b222ca8dbfefab1c79baa59954895675fe24c6a367f27f6ffe23a17163b7", + "0638e96b5e29beb69e94947ab0c2797a89f2204ed6216db16fa18ab51240f61a2fadaa32571abb5423133c38cd37da7a934fe8ff47c44bce16f4d04f49237f7a630db1aa2cbee024534a138126d9593b91422d53bcec5411fe135fc7c58319e71380cada12d384d9fbd44ee45ee3ae751dc81cd3afe4b44aa7587c5f827f11c8" + }, + { /* i=484 cDividendBits=2134 cDivisorBits=2032 */ + "1bd9e36abf9bb00f4b85ab4686066ec275db68092971bb68fdaf2bbafc5b54390dde681a39c47c66e5356fc4f9e26b76f568387ead0c2fb1fb204c0055a3347a54f817f616641e8b0ff3161d6889f979480dddfb1a6c17b9c6d88ba29b24cb990f63061473cb65b4b7937e686152c2d49c8eb2364ea87d97d4669a7b660f1c4088b42097ce9e5c7e5afd45ed6d3938df49277b62b95d2afe99e5a4a738b135b4415df18d4d89397ed6bcf06378f959e6acdbad47ef9faa1edd4bf71ccf1b724d845d2d9d51139e859327088ec0c32b3f644c4bab8fa3b32a902db05aa2dcc867dc7938b49de21997de27593fd750b2f6305cb424cc13e1493e9f246d9577f89f285c1c385df591d31c5fe4", + "a63a6d133a241ff781c672a5e0d50a371edd632797ad9c16c1870d72d6782332d1820e4730e84b8e311515c8d62c2840520f663907472ad2c244a459fef02cf1c3ec6fa189571a6da8923aa1a210f2012cf85237e3a112744384f8a415d40a5493475bf1a7e07fccfdf08e9fa39ee038222c9afe7143f7b150f29d1cc766dd307630970e15c5c7f2fd9df8bd53bf0d0f3d788ac74f423a43bb51aa2a49a9c449779710bb361be3c4103004774c04ed3ba512dfc4485cdac51159c94f7afe5b5471f8863bf7c1a71174547def9d34be48b2dcdb1f4460c812cba600a622d68c693a2f2ec00ee567b43c9c7e271d6933c29de1ffffe3d26732263f1ac86a8e", + "2ae464da1c9eec804dda9e2874", + "83192a25e3bc1004415299270924c81e9c6ec1202507e873d1edb6afbe309a341558ca28643169a3bc603d5e0ac0ea8c2fc5f545683f5ea85f8dde39b09305fe0d052010c7864e71b3cd5dc9878606bf64f6f7d4ebf181395ec7d3249444a96577e96050ed6c40b1935229a884ed44aa44707927475b72cfe6de76560e5dd3ab5462fc5605139f45c2e64d6d786e8e3ae87b162ff8b55e55a864e649bd7d16d41b7cbe5a711db45060e8dc5a8d7f5d36a5e77eb6d7d114732dfbd16633893bfc2c2c719b0c911786b6d19df7a0f29b63def29206dd78e0cd5a05b8d4e46c1c345119aad91c0a6e3fb69824c76c71504589b6d9d5d6b3257285a5b001e78c" + }, + { /* i=485 cDividendBits=1327 cDivisorBits=1113 */ + "5a835051b2d006be7a3f2dc9041236e437f53d2a9e5c403a05aeaf03772cf5caebbefa2685589f7f8c400cb06e3f4faea173d281321c17a3691d13a9c07e4de3faf5280e8d0cd954c79930f8a5b00493f001d2aedc3d70802dfe9a2fe03582858587918fd4a5b3ac75f2cb63d02b99888927d62cdfaeca794323feae90ad0b1437277382828813faa3092d34a201d61482e9d2fa9eda56fa14357ee9e3d9cc1f726fe349a0c9", + "01c4550e165fe8c928eb84af2dc4e4f2ce2d4612c3b21f331b40d6eb9369efd90aecb4450ac437d30405414777b5dde5838331662266dea9c15873eb14472c7dbd06f4e60c7ea4eb86d8d257c977e75de9fee38103b9b57c57c3bbe3fee019cf3dfa007ccd283d50b21c81f4f9df882828679e9acc5acd7aa264bc1944f7a7fe0ddf80b5954f72fba520ce2f", + "3339efb976584d31e5157b1012939986debc3546696ffdc851b297", + "ee61f73ec0d49d75e7150cba61b3cc6f609a0773f89b6b90bec275a41855bf1fd58df795e2f55459b954ece0db9623038aae2212ed7a597a454084950523c4e432d5694ca1a915b2aa7c115543c44ee990901b6a98f6d59e7348c252d025dc1416cbca21dcd8d54f7b180399a15acc77d3e9d30b1e060a05a6f31d1d054063a9c7c119ab95a147b8b45510" + }, + { /* i=486 cDividendBits=1274 cDivisorBits=197 */ + "4ed9d7d4cd11f08c0267ca3b30783a6643c231006ba4bcaea13d4b8b358435e6213b794008e3b7ca0e57431d4ab5f1bb7ee277279f50591130604ab6cad013485c4ccff713832b7477cb10e5503df237124a9677e5af5a5d86c2b4ef0bee30382e9f9a9f881c79e278881c4c8f2409e446fd6979e3f8812d1b33a3182180d7d4bc7896f651a32733f3658f527599c001017c4455c67d38770797eedb664245", + "0ec3b23a98d1f1c210f9aacaa527dfb7cf559290178cd1059a", + "05573184ce07b866d9990dad6f8a20c1b61ad66dc560b01ddfb71657ed8f007a41b61c0d08c40e5709efeef9f3935028d7528bc523153554fef6d7f9c68191c1976a32c2ecb15acbf76ef41d71af73a8d62ad5939942ab517cdcf1f942472caa7187bc4973a00246b9d171d984f7429977963914f5757921c9bb37cfd0922f9a40dbc30af7cafd", + "0516bc3b7fdfddeed77d72bd04110e3d742fc1915956d23513" + }, + { /* i=487 cDividendBits=1504 cDivisorBits=557 */ + "0e5008a40d1abe9ae6b6ffddf2e6cbd9dadf00def6785bdc506e9a1a3ecd9481f88130570ed6ed8fc12b1b287806b435748944c0f9b57351516ed1e134452aad1d233db9e911130c2373eb5951aefbf2b1dcdeb31c9a09ce2a4508f64bd95a364711550e5e2d99b07aed807bc4e62a06dbb4efc6d8fbf0f15423a66c0da9f00d425181209a41c1daec948dd02677aee73bcb370ca10d26392d66c217e59c616ccb5b88bbc11b8f6809832611680e79fa13f8f62e11eec5e4816171fb", + "1cae7b15d87f2123c9a5320f93984a8ac35f18810b70d12a27519249a475300f8e8e8916818e766d4e0dfcc14fd32366e16ce300c7e5c0cc3fb4a97f44e6497429c8c955210c", + "7fbfad27e4e144c93a19c660c9989fb6a782c16f139c3f97e39bcf675b2f22ebcce96524a785bbb904e5ad21ec62bfcf6f9a9a5a68066c4b300b6c7c6760c1b5a409da2919a213d8bc64923195a4fa42c22577cd81be2811d67153e406ecf9ad121236ce45b7f700230d4e8bf6f9a84c98e3a4c8a0fc", + "16204412739a5e049395bcf3943aee909822d7bc8c63542db924c7f30e1aebc7b4bf6c84f28335f56b034d4d89a44b35402bf84c8fa0a3c7e03fd30ad3d921f4e5179b8d6a2b" + }, + { /* i=488 cDividendBits=915 cDivisorBits=458 */ + "04fbe487e79c2ddbd04d9cad6e5d1ac4881bbc6a04195e1f3a44eb48f99b31328cb904233431ffc3314287c29e0a2aa4dc23bb9290c8595861dd1a16552a43773e548444113f537a941728782ba103affbc1c055575d67b8d29cf204c56e5e607788223e064b798976679d55b44da957742f80", + "03bb4219ef31014123557851a72d8e014cc6438d0b57d63e11f811ccfe05c147d0acb4706978fbdd3267dae7d7b323d874ef2674620a10becbfa", + "0155ed4cf50a962f14a1bcfb2e01fa9883e39ea59b4e0a7afb88f17afd367a55b8829e5615e38bb84f27fc781c80370d9b38d3df6f8cb7e49881", + "0126e8574f946dc6f1c4c9e58063c1089ff8c52a6fcb254eff16ab75827ec178fed039b1664163d129f5b709cd0d68d13ac2b85aac303d8af686" + }, + { /* i=489 cDividendBits=497 cDivisorBits=348 */ + "01203afddabae41fe042146b556d409c1771f652aab2d2084f2dd57fe074bad84249bc82fa88fbd913f65e07f148fc83775ef34e915e7c64102c72322a79ca", + "0b450be716343c0116d9e9b7aa4ca7db62a7b55312c6e6f3e1fcd934acf8ad572633c15ad7b991fe0553e28f", + "19935efc22bc905b014f0f9567c12385623c43", + "07179c45a693f69cb9bcb7ca0710b24c3944bf2778a55c26f1ac5d5930391a6710b9a486397606591e5eaa5d" + }, + { /* i=490 cDividendBits=2679 cDivisorBits=1630 */ + "085a5f3d515b6308890a33455983143a57150ee82f17394fa06626a1c846d553fc3b4b1e4aa98e842514e683abbb230a3e63ebeaa49ef8e46cb60d82b4506abea0c1aa588912f8ebb8f90f4f04d8486e436c8cc48fb3697074d2f3c9d248946a22a6a865ce096019193bdc08effbcc4cee8d115731f23be88a37c515551a699a5f7e93f62c6762deb673d6b22f16c9d64616f853d26cb064a43156d48a486bc8e39799e17bf8c86f75d4af47c5c2577f704653d42c0e19b5e1465a8861fe5525ffc1c3181a453f9293cd51fc35ad7400ea082f6db0eaee18dc2201cfa2266fb50ea8e09caa7a65646e449a334d471890ee3b83b00a69833f21ae7421d0b1a7ad100fc5f646c9d5a5900923e9cff4fddb640a75abe7097d84aff3df77ea0b58f79b9f6fc43192cc3692ab7508d15f68f1c9620d0bce605564b5be1e12245f47e1189a7463438fadc4417975625b5156", + "3a7bc1fc95190dcf5648ad414c23b7ab997c469d15f803cc3e719fe6c3be09699cd6187fb4beebdd0c4870b5a1dd002a5695f14f2ff376ad409cf40e78ae75d8f58076d50568183716b8d95b226efc38a4237aca4bce1947c48c5ad1d85729f37aa09ab091dcd603fa3fdba5c4589f530af471d8065eba0b75eeffea649f71568cfbc6e30556567ad76cfa8bb339c5c6671e60a9d2e76c2c5481fd54affc3f63685197d465ccb9bf6d3732666772e83d309b893c5e1a307333c565af91de1e8de9cba292d84fa2caeb630e71", + "2490504ed20aacd3fd16a16a1d3fe02785e37efbee1bb90b7668c61737a87dc7307cedac39385732806e699637c4965ba4add9ea8eb6e4d2d844efbd89357025809b84c320999cb44b6becd762d79dd865c9857d4e64d0ac4fc9f095756720b3b4c18fd0087c933d23abe583b7c475433d6096904849b74f5670fd36813c777ce25e47", + "292254c6eff8bbf9f789e72fa6dd2e09a4625ab290ce5912c3f8897f01f1444f6427763d6b8bde51908d611e34b75f66523d66fda442aa8659136db2ee58408ac72462e27a51311ec6dc56fd5df002108bde4ab22ffc61c7566100ccf673d1fb88089191690d3e608c1a8842e9f8509628b85235d1f032d81203a983f3ebfbcced6a63c5dc83f92c6a0ca93ac983f2399559297879a1789e3be72dce02efd6fb9f5a7b8e5f91db4f456935658307d87d6049daa783aaea88cc80f658c9eb5945626d913cc7ddd5c73ed2d1ff" + }, + { /* i=491 cDividendBits=2835 cDivisorBits=2105 */ + "04a2b28951cf380894e31ab2395697347803d9ddd3a2a0f745064b4fd0c4c98fcecd9c84deec9ab7d1ddfdd8c172cd88599d19ca7d0c9597fef7903a3d438a489e91e592d211fcd6c1c7be946f99b5627838bda64e8241315e0e1c1c8393cd91a4408a5ea92ab6302ae405e16fe4fe22e4038994556748f10e89feccbfdae3a7f2fbe31fe0268dbb2c38c3ee47bc992d8d61e7cb9134206d279d47f5e2f10f943b1fd9d14c583abf11505a42aa0da83f3f804e8642821f97b4427e196f1b8ac85cf95255a72b9f46a63ce40bd82433240e6c6108b4bff9fb9b6d066687e14e4466f94f9ce75053bc17b3747a3a5dacff647875041510b7d7cc38cb4b94e9e3b77e7018186938fb9cf7295f8d74ea2985876d596ec6c9a171c2b28694d42748ef69aadabdba450c8d25cfaa9aa2c937725b24a608e0d1d27f1b4f7aeb2a3d5a0f73ee65b81dd2421a382e27d039a61ae9b58c49df5832ca4ac07884c1ae532a0fa38e1a", + "58ecb46739e78dedd89ad6045b6a7a2ed1568d81a415bba17ea301a32961d91f5dbdde3d39d1b6196bb408fadcf038d99bafec3c7e196bb4dda9e486eb3531925a7520d34bf67b32bb510ab93e06901ea778168b84d12c0a6e9cde4c0a4ace32714fcd74a40d6bd80c4dfa10c528ec737cc7c2a8a19df5e7ce365f2f49d7858a97283fb3b9e6f37c99218391118c9a1d913fc1f6a241846a1162e9bd9891402af09a07f4fdacbfc2daf705f88603a5518cdffc9e3c7e262e677036bb92c636d86b7d352886ae16d8f74905ff9c8397817978cd12a9c6f096dd0eec4f952ba4daf2b9f0d5df7afb22bb108b282df65530ba7be95a30b3d205138eff84ec7fb912de3240489ce7a7", + "0d5850a17c345b6813b4936c083c39d9ce61c27f34592cc0f5266ad6213a460f9e7b804eb4ee77e170efb54fbe2e1bbd672cb9b20dfb3d1e8e4eba6d84caf32883438d6f095ddde61fabaa627eab618e29a236ee3ca286ea1c79baef", + "0b76489044fafa345175a380e786a7729da538fbc9c615bbf003fbbdad57e4fe6245a6506d3ac154b8d56d9aa8e2f8be4ab54f7678b108b0ec4266c113b6d4bafc00f50281d5bacffc9234a050a36766eb665f822aa70013d12abc9bb158f286f97ee314da8d06a3811f44c47d8454b2093348f74650d8df8fa0ed7f61a20792910fedc6c39ceb3ca9b9251f1bc471bbb94811ed794a2c88f62446980cc7053b27851ff831a61d0d78fc0707dc4396700127d4b552e80e7217bc4e85166625d0ccaf218200560db93b484484d48e914ca6292f43edd17286c2e4d26c30797b3994e7562dbbd7bca4681375320c91a1f099e01e5cd2b049b977955f6419a4e5af0c103e82e8f331" + }, + { /* i=492 cDividendBits=722 cDivisorBits=380 */ + "0355156108ef48ac09eaf6b89e57d108995ba066ff11a52d54a713e85bcd7d7ede48b7ec61f7790fb3abfa45436f55140779436725f769401040d3e7271d958da5afae7f3128ab396d6a36c0c3eba7ea03ca3cf971a9586f6dd28b", + "067e8eb512be65c7c9a6b412a6f2a7c2b7f52e2dfabc31fb6a2f0dd87c6cddb0d89f35063267f8dcfad22c1bbb269d8e", + "835b84ad223e3239557dda6b0af3753994cc9e461cee1674f46f49749eacdf6db5d30a4aa003d7e903be2e", + "05cf4acdcadcbcac5361fc9d842c3d52f7b9e7357f649ef53d4e600bf7ce7b76dd02775af487240f0340d45a0ee41f07" + }, + { /* i=493 cDividendBits=1987 cDivisorBits=1141 */ + "ed1c266441e4c02f72aaeec4d7aba222b1483398b078932762abb68dace60f53a4aa077550392bd78c4f312e25bffb69db27e6c7decbbe531a3ffb2b82f02ef770494d233f1cce03b24b1ad810bed795c37bfb429967bf30761ba98143b49ce2268cb646035e4e1014404b499e2119c45c118d3cda1031142bea36120966f6aa7c95b52f7def77f2d212bf941912b03b719004fb3f7e2fab3d5662f73751e675b6e17d7c04766087de85ab976b9315081c25f62bc7fa37e38b67639c9227601885efbf880961ec370da66276febcb95146ab75936405c4ebb5de6a942fa9e15f1051749c8fbe10089796b21616a94ca64ecae742788ce585", + "13d12639962581e2369ccc09353551b81c1571752cae289aa073c245f498af8519cbc1c86dc870e51d88aaaf610519aa9eef7a8b383a743fda98ab7ec6cdd8c8c19f6c7995f4773e17891aebac65a57832762b50bb84e60739f94a40d50c3157a75fb56ebf76c2d6adba9fdd3fc2b93157400e1b1e535dc87af091842c3f466f1f5b096aad3b64f6fb7baa0f30b22e", + "0bf7092f94940181e55258b0440589c54f4bdaa99f30889259a49b8d801d0901da4f5f3cc2fef29bfea0dca6c04ee30c72694fb97397949dd0d64ce1e8f9b1f0303ccfe6a8a44df08d0b79e7958de3c08f65730bcf722d2e3ebc25954646be60ce949c4dca3a81d14c6f", + "0dc99c0ffa80c3ab065d3e97e6a7d7156ad89c959c2a1305186c3c7ae408be574ea13318973aa18501aa96f8d7fa30d9473574a57cdacf5a068e84356e68374b253fd1b2a788535b4a95aac14fc7dc45d7bf1b4aa54e836526c8b60b737f69cd5b832ef867a52bf8347ccbc1066b5f07b6e2c2f1ecacaaf094bce2be7374b137c7e898e549bc966a15310cc7fbfb93" + }, + { /* i=494 cDividendBits=2825 cDivisorBits=495 */ + "a96898be4b4cba13efd59899068c9099ca2beda8f018eeb1b29d5acc497b697a5b23806db5648014279b2485e0e11aafcb13aaef80a968f48a40fea583b06ce8ab05767896bbed1a4d5eb8a1907eefa29fd7b264c8071fbc062afd0bde10f92230a955bda1edc9ba74e7412d5804535d8bdfb47c1a3964aa20f4ae4396a0867fcfbe115be59355cf4ffbdfa5401f929cfa9153719b563a13e3dd4ac7267d2475d06de72f932a96a993878ad9afff67da8d2a5effe43dbb78ba089d4d8f0531b4da6b1bdce2153821bb9ec280e3b74e99e6b08747a254e59d5003f5e58ec29c8062cfd74feac9765540778c404c0de78efb22f82a638aa4d579d8389d52d6532e6aaf9874acce46c33a1f813052a8937c30e4c0669753e2b991dbc90cd483183b711b7ac0329b5b91878b6e0047d28a7cf81f66ddcc02b7354a55becd16686ee5867d1268bb2cea8f93a8e6e3fba438e1439d5c1d791a687ac0b31e7225d47a6c73", + "39673688632bbc546061dc6adace5ee2f0148a0831c5edcdb7cd1b1e0a189562b8ef981bfb66e9c306c70c81f26ae9631d91096c98e5d7bf0cbd08a4ed4f", + "02f38237c09e0b0c48cc56a7b3492566b0161fe247c6ee819eda5d83e79e84abb51c387b61face6ed8613efee5a38becc424a99497756f96ad34478bc3e6b16731121c67b4fbfdada40fafbecc62f67f04480c8ff170b0cd3e046018246c8700b1fda5da65b22ee5de94f2bd0b3da9eea5c11b5e9ca9ea4b791209145f515c231939580261d0fffe89f883c1e9ca065fb79f2191ad92bb0f89f76ac39ba20efb26ead5a7e2a39e3d9944fa71cd3bcf1370decb13500899d50d624a52cde90ec8346e9e26999c2cf590f3f498feefe8d627715c963947b16bacb890d6c3ce8c4b7d1dc95d2636f85edf35bb1c32f94113fe6390532ec7124af91dcff8c6429b4e4c14b496bd17a67931100a70d480ee0f518d668c2523f56d627babd90013ac439c888c86", + "280e6a8489e777fd091430f6868ee5aa81a0521d1a11b1abed796d5b576e850982178593173c7e80426e57f2b73a0495ae83f782ceb6a4fd1e91e6670119" + }, + { /* i=495 cDividendBits=2994 cDivisorBits=465 */ + "033b60c2e15f20347fb16f65e5945dfb188613fe041cc7cf126fefef2dc819330eddcd824448b83c1e93013f46333ed10ede8ee27b7a000569384a0e33e6ac601e912d0f1d3343ebb059ea201626cf669683f629f080532973ef92b5ed9e378e7923c5d2376f398d46acbd0232b5968865a4d9be1b0934b6be6a95425f84789a7747a55dd64983c69650e5e546300a60d2d9f94483c229bdeaf9df80e42ce2ac90713def427b3d1915ca1a81eed55e8bc1c7f388fec78397eda09ecf028e6baa40a42cfc2c863599541230c284f869d8fca059ad5e836735633175a91f9655094c12168ceb5d7f297cb7551e6d6ed29e3f1e1690c2db0a6845a2b6fcce1c45a6b6f09a151484ad514d7790ac16943be0045b59fd4cf2c0edf700862d80f73969b2ce8bb75ff70c5071dbecd5e84f1b76b725d2156c81d3e573ae39108aa30a83a98f459d5b25f275e2552a985626f2657145617f109f121ab8f4f1dea6ad46f7eed83cbbaffee42f40d7838abee717ec442997dbd8e80b", + "01157963812cac575d213a65ed81e575822d5a9c2df44acf4488a394ce5332477ae7c48cb14b74a21cca7798e3ea1d093af5c3a02dff27301aea23", + "02fb588a0198a800804215da4658e2c9593974c3bf5383ace2bc9b8fc9c54a094fe1f79f226d7809abf940ccf079e3ada3959de5ed05b3bfcc885cca32522a1b4c875822c863afa5cb62e61b1772a49a74525296b0c3be22356a9f0267344cc92c96d20744732845153ab216ccc68cb36236fb217f3ac5a27de5ec97f3470878c59ec80f85cc4f503cc96b828257541504ef7664942832537bd182815cebb52f0755881f5b15a2cf1cb53e2e297487f2ce242989d2434cac4bd3d6e172fa6f92158161f62ef58ca0ba3770b9f67caa6f52f622919cd36387bb4f87d4f9f17e4bcebbb4a0cc1154b422a78fc43090ab90bbfd808d380e38b2efc2de6569e5475118409f2a25bfc942fa0947fbc2ab86cc3fffd4c5ad4f155dc5cac9c7e14ad531e4b88cbbf8890c9de2b00ab259b7df657e4a073f136153b3906eef6256", + "c346c8393270f200fd0d2d3a42bcca4426d86b5562323fe15679955d66b7d10a83e3c696d154337d38958693038ed19b6fc267aecb97c47fda49" + }, + { /* i=496 cDividendBits=1236 cDivisorBits=605 */ + "04ff8a4385d3d9a55a253fc9cd53864ba923a382cd9beb2cf026a9a1052b08808726952ea4186810690ceb46d78e41c9b3b0ec7b2ca758f2e0501b9c23aefcd8639ddeaa7cb44f354fef21b89c80d11b8fe2a81d6548146af6ed1867769e518e52cc5f3d56a9b52ac20dfad1496d9be1ef729734642359ad7107eed015b98844bc5b46da1474c2ddbb365304dc4be1e5c9410312c5e5d5da48fd1f", + "1e2050027d4763a8d7cebb616d65dbc2b8a5d93643a7c8b02644cbdd7c7ad209cd5cba36f01cc3de0e23f5ba0c674e6ebf7b01ef2419acd0c580d6c0795a698680042f4ae5a7d06011048bc1", + "2a78fed91c517ac2ccbc46cf574329ad383000e878f8b597e46ae8cf1e011d00eb6d11ac87fdf69d4efcc7c36f2f6754ab05d411174897c11d5467ddf3ee41569fca1330658c12128cd2d0cd47a136", + "124db4522de870a6c1ea74d81e3df2bf859224cc7f0fb1f41f919ae2dc3363b0505b8d9f71a489758d14f366b33250048aa23dedf417eb33980ccc7261f9ebeb3293fd7ad12c4be217e82169" + }, + { /* i=497 cDividendBits=2612 cDivisorBits=1222 */ + "0550de463a6f93481a46e01b53380c5e3c45a1013efa799cae5b4d8e7a16d7ac295c67724c332b1a011712a7b430d8638361b4574f09d6ea588731ff94ce7dc744837b153f60cb29b4aff31971b254bb8356671335cfbe4c5a8c37d7ba105bde2048b18d08ed281b2778fe6476a1b176c72cdda9a585157c71f03b853da0b7bf4a935cfc85c38765ba6d7d50b87a8a1f095dbaaa566689f15b8de3bae078d7efaa5a7eb447932588a4dfc52b714e340abf1d3ce7efaa0d187165088ceaa79841955320f719371f7b263f9d95f846686a1c21a9d21890d84579940539d195bb361a1495037d67a0da9df509da9a415593faa0b5ff60204b802a1e9d4baeb175954ed039dfeb60ce84fa281f5da461d4155efb0ffd1b5e6b76750ea55a71a8fa08434d02e543d64627cf505743f1ad8d3a6b2d919384e7226686c4abd5e5388876c4d9cbeb62cd16", + "1452a44b603f455b95a37d6425eaecc99530c2f31a79196c21cc63b6bc5b28cd1f1af73b2efcee55a27033e6dd2f407656fa2c18c844603a8fa8a5f7bf37a9f37a8d12c791a3d5dd8244aa346485da3c68fdeedee99c5da495a088483a09bf6b376510f55d86d6396e29a497a2392ea17d954af9ff3a6144d04bc0af9586155d5717d616a5f427049fddadaef71621caef30a3aba5fb010fd4", + "42f66b1df15669dbc38412c9513a6c104080e7d59d8992c1f9ee61b56f3d126acd084efa4b8e60c42800663dec129d53d9ffb131caebe6da900a5926cf5c94b35b3a6849d9c2c194fb141a6b7f43d60b1d1915874283692c71a1a90d642a698b3814af322f5ec733a25dfd2d0cb9f038995fb7cd413fae7f6474136a53ae729d3620e400c1d32ddb831e1d825614a3393a11d78ef4c3a8a2331eb20d53609b8b4ca63b624506ccb3d2c13412ec82", + "0cc6c52ddc10b5d5463480ead2688196620485657d3cff545286090e4a49d44f3569e0b8356972fcb7dec99fd6df68f689a85a284b872d50786a9317538ec17e3669768019ecbc2917200e354f8e7dbac13e1388bf424d83867c67027a48cf0f1b00aaa43f0d398709233def5e5d96a6bb7d009b4d0af8cf34c1b1a4c108dfade43c1abdf90b8e91541239c8ae493c927efcbdf7ff4d59536e" + }, + { /* i=498 cDividendBits=3861 cDivisorBits=2807 */ + "0dc2a9b0003bad10cf96666a7a5a373a87eeb261bac093d5dc76daf9df952f4ca38aa5194f6232270f20858c306bfc683be527a50e94905918e371735ac3ac5f3a01bced03184397775f9d990d7dc10c85f5ae34b2b2b814fb1415974ce7b9298ebb9851c985fc48db008d7a9ba8a827bd2df02bbecc61fb49144f7a1a21dbd343db509498a0758043e97ed46090ab03fe4bacb91ddc48a5b2db44a8b70a8cb21ea5783b85586034db272778b576643b211de4f0e02ecc1fae516821aee8cfd294b02a6ad0f2746cdb532e3964ddd4a60b6fba405f845858417a05ca504ed45cad0c383b23bac5a9d4b49de7ca9fc8562d0ef81db8dd34f9fb5f1713a9bd7aea7caf5ea2346976dc39c836af534fd6d902788f6e1bcdf9157d9ac62bd7e09ec1148476f377ba147fc6b141b7f3ea9fab9715f534bfc87c3ae164ef420e64ff2bb62840a91e4f62e494142ae6a92c3e5d5366768dfef61551643d8d7e67226a309ceadc0963907be7177675c859fc27977ecd9cef3c101ddbd76548d1a9743a50ccf101eb19f6c646e032a3c3e6e4856877011fc99704d877e0c0895165f6862a6102181a2d69bdbfbf2f097d29bdb110ab9fe763d91542c4137665f0f9c4888df8c81575f7b5f9fa6ef741bab0ba9ec90b4707d0d8bc0c2d355ce8afad6bbaa839de9d", + "302ec1a88dccb3d17247be0483dbbd3ed2060e9b05eeebef8f7644e73c54e002808faa75c479e40403da6463a47efce027c3a8db78f05302e4f289bf5098f0267026b638d48e79dd2aecac26086fa9eab12c69dcb6374fa42bd386e6032015573aba5ade76b7e5e148adfb4775ab577eb1cb32ad5f89ea531f6fb6062069448022c64015ebb8002491718032aa760ffcfae62289c172452de6555f01d5187235d9976883cb942c68604efc9076a269081a030d49ef9ebfa1aa6672582e86c88bd030088e22b71ff359c8a27e0e0385140856c0c8ae4e2fa901a8b9fc8f52b964f415157683d6b610fd5dc85969ed5d4a85185aa5d6d4f0034a100036a970e0e27f69527b6475e73cf4eca27e3449b1d775804625ad9e9260ec693c7c995d51e531548eaa39d2dad7a70c871b0e68562016b840d6016d2982480659993bf6e2b91ad1df95b6185f1df460b46f19d86bfb906c6134cbf6609780ffe835341c09", + "491c518f3f98e991b00a2a2ed861c2f7f1594326e070165b923cc2636c76132b247a69b07ebb18fa57189386b3cf97a2223d01f54ebf08a1a39c98011322c8f3d9932ce95406782ac4b8181900e7ea3263232eb0d0c25d5defb192839acb18820aeb09ca382ea4d3b390537fbc89cba35a3f5a24e1a3a6138df9807524ba5fc97bc64ace", + "0b3f28b128e868b5346704025c48cf1c7c9975840d0080472225d8e435e877c224dbc558dc3ab3ebd17fa302492d1a7761a674037b3820e5a5eb10aff9200dff8124630fe7fe6f5b49090a138f1a120dd3f7d5cba3a3734446fdd3c242a11ca3e881599fdcdb841b0dc5f76e6673a9020b8da129779bbeb926e9acfbd36a30d6ef4b1cef292e9aff6baa601493a1735b4ebd9cddb4ae244a8e9092d838279e09ce12ec02219f7dfac4878abb2de7bd6a87aef3209872fb125e549d92793e2d6a1f6449d1d4726bf2cb2966c6cc4e3120377ec5a51024ccc85fe4c7731a7995a7d169cfec3950f4d494f1836366e6c492b6a321758255d1b1afffaf94ef11eead3fb52b60ad1dc57022bdabf6474d77ee3fccc2b810c704bd3f00b23d835cdf200600c474e299840ffdbd559468eed94ee311ec2368d91a70f79e03c011137c1a489426bac70fc61526b5e2604f15c153d8a823c254a1ae3de1d5a7c63ab55f" + }, + { /* i=499 cDividendBits=3741 cDivisorBits=2672 */ + "1b81fc98b1c9df36e24ff42976e477e03f5b7049b36514d5a1ce0666e02e58069c6e60db2d5869f732508c8502ca43f91ce0f6ef2ddac01ff6cded1cb7b52d6f912384d937f2ac3a20bc1517a155d4dd1a50974c8577a7ffefa2677b95324606ef30d68546584213c7f4db5e6db0212664e107d407261e6ae92403d10ea5592f03970909324b86c129e4d201bd1cbb209f1db67297394076c06ec45908961c3f26d9b515ffe78af479c15f72ff7ae18d6b48fb39177c599b6f4ae9273d2b89f93df5d244279b975dc63552b8dcdda70d1d38b0b130c8622a05fe7977f37e1cadaa228a765bcf22e70c815113d86f5057fea351cc5c241d5c93394acb3f37a15dc74dccd00c229cacb6c5d4b0aacc8f9c347db6920753504abf05d960388a2aa2a6b7083276b31c59edc61fd9747b0c8c31d2e5554be8f04db97f1a0d0fdda2d28c80d018c2e47578771bc7dee37562c8e9491b50460274abeefa3eb1420f2c9ae5dad74dbdb5e72ca4d9e799a732331db36f1e27ebf233dad8ebe15495ca57cec4d7beb6c79a5ea783c1ccf3e5488e97b50fe484b4074cc9a7c0ae7a344a5f4e7892455677ea0283c96991b3eee1e4f0a8c2f7e21056a37c451df2fa3593e53043c3e25b90dfeeb8a385615340579157dc641151", + "ca1ed8fab0c75b37a83207084333c0224ffb1498dbbbd09f0a6b46fdb3da6ffdee89eeef2de834f7fce887d53a48266999085327b730e0b9405ee03935d625b7a211fdc94fabd6d113ae690e157b746e5131e34210193c78d4b3d42957d417ed28da7068b8869b420b6c2a11cb3b4fe8e6b64253726a738c0caf110f91a013a86069863cee302dd0bc1094a624d7295e41d136449fcabcd896620a232814f2e3c1f745442a7ce570c4e10f47bd26cb92cb34adac42d596fbbdfe7ef7545b9ef8bb5f9f7b7476a2e8eb34156085a5cf8f7096d8416d784271c266f866bfc569343a105b92f6fea8ad2cbf859a585d8339c001ad2953431c9be0fb9ba5b185510674c4b38c9396fbb25813edb30117ac66870b041f3e0c3dc2deb5cf0ef675a4300499b899fade7449e9e8e17abeeed4980a66cc57221bd3c1fa9fd2a54a6740eab25c7d8264e5d535b607e68ed080", + "22d72d6f23c8d4f443f303aa2990f11ca27bf3e0422bacc7c8efdec2c1b987eea11dfad00c94acbc8e513f9351a01c250cf0db40de770c05fc695a9ce4ed7fb7937a5cae2652e626080813b923cc134e7b37516134372f54c90a3bf0656ee723db291cbb9a919affdec1fc9fd57c3d8c58f283098eeb531b43b8bb5876e97c5ab3ebba7391ab", + "74aabbbd36b97ceb285efbfeaf7a736aba7f75a053f9615c00764fbbcb7d2b8fa5e59a627d2fdbbd1ec75ef5f86395d4feae84903ac96ffef604bfa887ef932f65ae6044d936bde6390a209f9c41482a4999f9169cae68f22dafed88c7bf7df4203a43b6d9c66ecc738ec205e1d66ef953f7b8fe62754fad36c88d24ab1426013b4a1ad36ee6c990da0ed161d48a2126721e40af7ee6589ee44afab85b3ed611744fe6b91a219ac4b9074d08073b274a53d124293bc62570ac194fc01d211393efb6ddc9cdb837ed3b8013d9f9fc93986b6664aaf3513e7809ea9eb457befa4e5ed9b6d7e14fadccf1ed324ccb07b0eec715c639df8eda24e2cb592ef9f3ed11b1d24e2ee3c03154ad3abfdc61c4613b223b103687a95bdc85ca2132eb49e0ec13932be6d839208f64f5617f60d9a45a284d67a3ef9febb48aa4a22e1e260661bbfeb0fd617e186945554d664bd1" + }, + { /* i=500 cDividendBits=3771 cDivisorBits=1767 */ + "dcf1b85a273e934198fed0f41bd3f3a6505feaf608fdf54fdb73f77cd46555f0dee3b9dc238589e31613a0743961a3100ddae3e08fd3d118022d5701e9c274fd4e20a0e76e41721b7f8aac78f3c61cb5141c685b27997aeff3a885b279824d0f3fc3289fecdab28834ac8cf9d8fa9df42dd69c71d84d260e0131d96bb4c4877b07bd89131dd96bbddfbf13e25b69e19c7e7abd83c4632d1be08f1e548e02657c2fe2a2e1d38e32ac8fd49848eba12323acf7b25292330db24ac8dece1818411722228d9943931014e8adb46e14854599a413c1c8733c4343a2c31ca6b8f97f190bea02db42e8d75ff06d47ec207e58cb04d0834b391e7d781aa29643015b6f6ed39926b9addb1b23017500c71be98d6f2cce3611a7009d3c29127923bdbb3f9f7be2513e5e9ec209f5d79d7b0b28bdb5decf45741b161ce1cb7aaa5e978c684b247c785bab9a438d23b38c2d80e6d0b4e0dcb41e98f218fef8d22ff00d2416ebf822cc0004ae9867619ed0d87fe835545610f7dba909f0ce9d91cf9e0a14b4a08f2a67111660c100be687f9c6663aaadff5297da2cf6265902f44c1a77e6155af9a7a148f70a909bd0dffe77e39a98cac68245b0561c2210ab8d00870fd241f07538070b7638f07ec46632551ae1808e05c1878557a950", + "4bc70c418c79f03333e319f616b6b6ae6c2a34d9ae86a5bb1efa191db152228a7fcf27d27ed9083067f4e56d3b8acc24e8ee8abd348d4abcc33b566407844a60f36d64c0ff6a910393b9c205856dd7c9c212fb3ef4b6841adbb30a54c6870f3b0c7c6508f77dccb9ba824b2a7c0ceb355959c4b85ed3c115fad5a3cd2400b64079a67593f1ba687f1af6fcb196a04ca47781790523cee67ffcaf1d9e1336456f2c3a3e19442ca7859b57c5ec09e152ba61f9acfa45df2111cc672bca8cb972fbb9dd9e753f3620eb3db949eded6084131bd1c50a00e52b4764b923f0eb", + "02ea6b083f80ca7bb8394e5ababee4460d472b7c72835ab64ec7af082cab3a7ee96b2e86e3af05e6558ad2f3772d010a07a80a83e9e1932119f722b613341e968ca2af3bb7a6fa9c9e62669bdfa8c981b49734b6d89b6e75e1128c6eeb529cb899e8e285905351e9a6676ef08af723a61195028ae516fffab8991b7da98f842ce5b553f4071d4ec191adae2866472c1f7bcce0018873a7ee423956eb6951daf18c6b2903d1f89fd84299667910d8bd66548ad8c0e93f483472de392164bf09644ef8b5393d86fab9f706b6636a638905157d9a0d2bdb9236c0126d952861c2d2c5973045681edaf07f96b528616ca0b06199f443b147a72598a2a2", + "1ebe649b56e51d0e0dac1615cdd1922a3d1994dbdaeaa5b684d45fc33e6406f9f4a3495fc0394ff851ed9f499ea412645d9a3fcf3c68d1dc5743852680f92cd530924b774a38e40b97366d0c9755be3c4d81b2017440cbb407da04bdb955a0c4877e3bcfc33b84592fd925ef1ca1c38f920dd5bcd506ab77c0f2163058e5afbc67ced516d3857d56c08981d8a1e17258c6069b9212d96a7493ea29566474198ea25d10dda870b2b59fff1475cac62e2e7a5443c50056020a68f17ed9f4ce228ba83a4694d17ae181c62c89b1845cd74de1d104a9f56126612b9b9c7e9a" + }, + { /* i=501 cDividendBits=1891 cDivisorBits=33 */ + "05c7794921a13c55784a362015fd840d00d19e41766822bab31957ba53d133e0b15050bcf7de0492a869ee273b85d441afa14e524b07372be97a139b04c8428c4bf8bd7d4c965678e1ec9d89828e789cbb1e3c22c83da2a41da9b9f68d7526b0dbe0cc110b475587a8b62ed6f8765f469a380e8f856849bdfc1d2d10daa1801a3e872ff22cdb49c5e31d0d1c19ae7cc4c5c403a5ce6cea4b3221cc445df4eb2366ea0493d58e2ae72a4c5995d2c5599ca501815af6b9406ffd364458fc09eaddff059d6616f7c4ce8f1f7194761aad97511fb7745de27e0244544176004a2203f85ee346aa636f50cb42a7e062", + "d3e1f897", + "06fb85fe478decf0dd3b0e5ab69fbd8caa4506e0986ca181586d43a002b24566683fc1489920dfddb3ec8e293f1dc7b74bd10c29b2b4452cf973d1719015ec3d323a327469a2876e851f23353d043f88d680355051bf20ddda824511e8e82b00ef90580cc2e15ecbe89e11569f4cb41abd44a2b674650458256d970bf54440dc258c542e38e9f5fbb7e84e03a74643b6a0688c4e5e955c68f0909dfcfcaa8f748a3436abe62bcaaae404ac06cd82a10073f8edbf081a7db9af6d3eebd4c62b081fea89c4839366fab7474359eebfafa92376ffb0759212fad1176da48775b520929e7dd937e616d2f1", + "6606fc3b" + }, + { /* i=502 cDividendBits=2432 cDivisorBits=642 */ + "1420518f63927d24c48bdb04ad6b3aea290475ce0fb60223ef2c6a91f41ac51b3a41b14bf0370eded1fc253a48cac61a7bca69c011c6c2636b4ada6cff9720de8ab6ea23ec6406e95b80f12ac34516774bb52761c5490b6d28f9ebe8cc99163c773b52413d56fcb624fa83e8ecc5865fc9acbc95a20d06a2b6c4d94f182bfd8365256c4ff6c91d488ed6308ffd43f3c331c858c657f2940ccee59b17198d67e02bc9ae5d94ae556ec1cfb846d7e06bdff07fa43c5a9c393038986db2088d2352c0eef9e9bf1e001fd277744c9beb797a659753b3f2f3532459000f01b2732c6c7abc066ed1e809de47d543dbeea0c2a2d024e7cdd00d2b1d05097092e5eae77966b9d29a7a476d2eff534177211ca9d1a1fd8f595300b51a0fdd3dfa750cf1c46fa50e6296590b603b116f726eb402b6", + "0a5f1ccd14324a87565463be8fe4d2c3a7a45f26bdc5774c211738990d6f0402c4a6a2322eee4c2daecf784a63d92f10b74f0da68825732690083200461572916eb69a8575820c121c010c4c09ea978a", + "01f0c66787e025282666ef19aa609613e56e850b022cfb4752a3a608a745f37148a1ce801d58cc4a3dc5d0002813322e3f62c748881acc2bdf9dddc637219dadf42710c0413e81624875df8de55dd49cc241e0976149a2010d8cf700383b1c6114e15294474de6bd2fbfb659b0365fe8d8cb1771626e38a288f5837ac0c6f87d5ac5a9bc0205549d753a6d5a94123d31b36c9b96faa9fbf547e2c27d8fb13a32f479afe1858c4ebbf7869a51573dab41effa3017cd3603536a5c936e685126685473bb58d7908275b3d303203f0a643bbc57690aeffa097c13c6f170c36af26aab", + "03da195873b5047794e7505811472eb1efd93122ae0cbfc1ca0dccce4e495a3e920729c1e5b403e38e80328c82002a94f95fb65559736c79cac00bfe81229ff504e64e96b3ac130c66626bec47cda588" + }, + { /* i=503 cDividendBits=2473 cDivisorBits=1434 */ + "ce76f3373844fe8176a45fd9bd3693e04abae4ed9f6c608166ba46628571283f0d67d36c3b8b447f722206bf7ea5085b42d0fc8b5033eab70168d1849ad356c7d6693aa70501623d7e2a978cc4c5233d1fb8982fdcaa379764cb443867c4c3665dc5aecb4fc4226e0a61ea817fb544c3426c96ff6873e04fb1ea3de841109613b1c58696c89aa24a29cf4f2dc155b8e0172851d53d0d0e616d76a55da5f164bcb6c616f50bae4e88c2c28ecfdbf6616b62fee49479b83b97dfd8c51530bbb3e6c33faed95a31ce16bc60f3c76ebce3307bc797025e731e7efd6395b59fb1fea589163ede4bc0456dc6ef4f7919140bf64c197c4309191b6f0222bb02c67d1d1b29a2daa132fa75fb1cf06eb0a6d2d303f72d49e23e0ea04879a7ea19c8929182aadb8346a83ae8cd01dbd65f2803a79e7c2b9e3470", + "018dbb1c76e8038b95ab7ca43fc7a2f8a34d5b7d7b1b47aafca327b221424a59487e74018fde7abca3557c7061fbf180501523be2c5c63c6371437a99fc294e37e4b499cb2eb277a7ad65a716228295120bdada4af8e38b19c30afe05d6aecea8a4bf45ba7f99e8a5a63125324fc8c694a443c16d507e3974d99ba27c709dbca897cb2eb73881e606f1f8a63723bb056acf8b455034c6bc1e83de4127bde58cc77a60c83d9803dee26e8010130fba3949edb532c", + "84e427d65e9bb5702f51e526f5db2c70394276822f33ad213d19d89d8b069c4dddd93afeb23f84ba6e13024d47322c6332ba5e2f4985a1e3bfaf4f72113b4fa580c5384fc10fea60f7fa76a476e93c0a748c1d6e33a1c8d4eed4d0051bf9cacbd72acf4195f9e0659f9e8b5e8e47578cb44f3a50079494e1d0732a8e10249e7701b2", + "8cd611b217749313421fdcd1fc66fa2176accc9386fcd4a86532e1e21697742fc71162ef8a73f94699ff1fec07fcc75bc60e31b62660c1966bf00135404423b118fb8bc7ad4c6ea75aedca984d66d7ac11d2e5d41d122535a734e3819a2f2ff6491c2034f5eb2c5faee4c7616631e1581e71185c1e9e0d78de5207e6e7e1bd8ce27fcef4d67635e95899e9c99565692b7101bd065d642a594b55c1bb5dbee895140c390d29ec07dcd9164ece78a50e0a5733d8" + }, + { /* i=504 cDividendBits=2294 cDivisorBits=435 */ + "1b4b1a0974133f8a0568ff12c2e91a901ebd8781bd67df1315db537d10ff1366df4aa258da9d184122f39d69a3104f75287b884efc3d97b2a0ac6cf8fee0baef3ded0996435b33a3ff4461ded844371cb620e8f6175cb09335a5e73c6a456b3eaabae50d41b483fadb3096a578cd435da733a5a40981829f28589bf8bbce40399747d6d0216dcc3ce3001c8f2141f1c43262b7dc7a1ea0259fcbffee4c3bf65a8ee8e0db68febbc6b67a39827de66b62da29a1220cf772ddcb7795485c9c2c8fd2811bb8f8f2fb30dfa4b99b833905fed4beb985396477785ac94da7d3ba5cac33d8d906ddd268372afe4af9a61e12642f8747fdf8ffce9ec41f87cf53ce79a3d7b6ee269694771a275ed4864c58f67aefe8e774044292eda71306c285fce8", + "02e70d71e1771ea0a2da92b77355912f201186b6f20b49057965c6317709547600f657200789eedf3cd021549116d5edcbf0e56c31676b", + "09673ac8bdc9a394ea2621bc4397802a21dd22b3f6af9e895d68b0e0b723199e66e9250b942981e2b88e4e31a08d9203e322bd9175c0a7e4624e58de7af709b105113093c4a1da94c9591e8c2a13b2ca716974fdd28a54d31ca0e6c523c8048f77fed339f76e0a8377b69e7a774e2272b3b870f2aa2c3ce9d500aaab4617fbd552d073b92ba9a740b87a83e1e25b86c4008f91c4f3560c337dc63ce76ea709c587fdff6d1df0ad77326b5e153403ca7e564377568f1a348da39abfc40d91b8d8dfa2160c2ca56daba9ee7be006ca28a5cb82843f9ee95bf3d752bab4275272fa32b1c3b35d81b30f71", + "022d13fff1e0123dc1a0bcc903688f9afa6519313107bf6b25cb2c26f6f56efbd91c5efc559f9a940cbc7f0bd86a315cd15de3e0d711ad" + }, + { /* i=505 cDividendBits=3920 cDivisorBits=3085 */ + "54dc86db943c74dce32f4e7c2d6fbd0e3cf63e536a573b956e57cfb32042293184520dc687df0181f81b3fcd8bf71cc604d13a838beed8ee552b5f58de70d8d4b20a4c2b846fbdb3577de8233b40e68d219c67d3080899e01bdfa1271d742626f8a04d47109d67408f1b8aa4c696e5acc0f31d0af7f8354270d0ed5c7d88de616f01314bee87f7b30571eddbf0bec1755ed51fbc9e046bd697835ae5600546edaf64e506b5b8119bccfa1b9ea328d0ae13a4e97c2e6c73e406eb6d2264c3a25c4fed07f86bbb3b9b0c008a032caf07074f99323c47eebf6aa5069695eb1ef8596d40e464ed467d36674cde01cbda18464de1c0da9689e615a1be57d717ea4160824a5d4154ec1459c2f39a8e862b192eee2b354980c963d5934c233ca8d41ad06dd3b4e196b2dc2a09133068d44403a70b8887e844345aab6e00ab38b21bfab54e307b9a598e975ed5fa2b2d6a15d6a042d6ba7f9484ec30b8baf98e28fedd89bcf4ed85c1a046798dfb32fe68159adb2f2467394a0073c98c2143087da3dbf0910d421df304dc7c0bf33908256884a11dae10d516ed80a89ad83c925abb2a57f6705a5de1abbf8b9bd98cc952201f9197061a6841d88e0eb4c0f197ae1bdaa6cd733f5d6864dedc046ff880ae2a049da239ac4dd0e6cb22bc042b84b156aa12762a6fbbce9eb0df3d72", + "16210830196765bf461c2a1fd0219e93059ebfeaf22568fd6507bc674a8f1bf9a3f483b0fae4de579aaa7ec1d6ef791fd7a9a22f9ddeb1a2173823a01521ea553e8f4af83ce178040b37c398537443aaf24d39f22c0c0a4dd5af34a2efb5a19e638ccf35a5517689003aab8b02a64875bbcb22ac638b602f167226c458834037a1e820a0a499f1a0f6937db00b1ad129498e06c25dd828e1ceb8c44a97194e6343386f90ec533fe6eb2dba4f5bf392f5b066e11c2b447e17d944153f9cfe849469f233a198c1595df5e9166d534ab2cedb52a3e01f71661505ab318266c4c2c2aca81eced75d7425238a81a238bf94fa428bf9ff57f345e3ec285f47afc073827da0f1e23ffc870ed6fecb1f7abe5eef3935b336ab4dc9bfe17cdbfcf66198c6d79a2393392109f09ce3c0a4c288df7a66f12cbce37c7f9c0ae69d65b7a1bbf21d0e3a7eb189d474168b2714cab8a1bc0e56dd8a368bec4c120b3819e9bb780ff139bc4cd8cfb0dd9a51a23a9df3d8188e85a2323f12145bdb36287edea77a36878c", + "03d5b87c3e3253c91db8fc8ed05696846f75d46d5ac9e20710cc6e1b6ae274c2728234acc828f56b9f554ec745981447bfe912b1f49fdd32f472c7dfa77b7e01f6626133aaf6620b87b602d1ed8db0f8654d3463302f80d42e0d8ce422712fb9deee61b0f42a778784", + "05b5ddff6b4f71988abbcfc17d5b913a6624cb41a5a7d26ae9e686fdb1373b6e50e4d97c5576b3eb46259522f79e079a0bfbd110056bbfba6b43059a33afa20be52c917ba49a1ae62448bf9c5acc9299341f0e93f5e4473ac54f537abddbede57b169c187e8718f966d13aaf038975578f97ce4ed74a83db6b5d7b9c73c14c66672425b8adff531b766bc05e87d67a6670e52f1a7c75b16482b28cda85df2d6cfbdcbda90b7d2aa116d321855d82f7b7496a3005497ffd7dfefbb420652b74ede966fb0e5f9d8fbdd2cb38bef2c22ceac5284ca9ff4de038487cc3217cbeec157cb7d22c60a052b2861309b0b8d95ae0605b5b75986e8772c4cc0cfa4eed089c8ce22bce2e207557ca926d84cfbf44be1ad1c9ebde0a3e1394b3d44b82ba710b849ceb6faf07872f36cb42a0fb9019fc677a90f7b92594141ac28dcbdd014efc942edea318f554865a70c6f1729c6568e448ca391290861fb2157d01391150d19a48029f02177e2b103fdd291031faac2e4a27095518fc4527a62fca7bcaf1328542" + }, + { /* i=506 cDividendBits=1879 cDivisorBits=214 */ + "7ffb769262e3f9ceb22a84e2f50bbbd02b23986fd757da6f285af6e7130c4b070a3028acd62757809e0fc895da1d8a9569216b15123d48e538925d4b07a273863f7c42abafe8838b68a77eeed5b968961c5c5886eeae3ba6187f80023cd15f6dd930e15a3ec5cd13b9d2dd0a8833c00a5e3a9c504ef48f7c4753ddd7f3d43dd8c6e562cfadb99291c77ecc957c786abd31256437359f0e226c8cb40d7e081f415b4889a6dc7bf5074380b6b7d17064a23e5ac2a5fe71c90f1b7eb3a0091a0df257ab2cf42b59140091c3407c4ee0d9e6a134a9249e86a7857d2675fd7f95e577e610926055513c1a152247", + "192f00de229e61f681172a3def9097805097134b6db03966ec56dd", + "0514fbd6495305c6ebe4bf5c409c9e61577c0fe0fc2df3664688fa4965e649afa8552a69b225eafef6070a62e6b47cd544ac8f949055d779704621db5385ab1c317a43563d4a2473982828fe86680228c26fd8ceafc1be0719ac1bf3bfbccf0bfc17473b0214d271f911a0c28f8d8db89a30791864d6bf3d8ed3c21b6a9e2d51dcb8a2ff5b9e63f625f1a47ac96a4c20f229cf0b4b91ee3ccc13f6be9c9286c3b04aaab33137203b6edfdfc9bbca829dbeb6a46630a16d2fa9f89ac21f49b7eb6f3918867d32f3ab4eb24ff1b7fae28814", + "071eabf8cc3258e12bd0879a5f229419411d790c0a3f9f005ef103" + }, + { /* i=507 cDividendBits=2800 cDivisorBits=2085 */ + "fd208f40f75ab81dcdc31b856756b6ae15b0782e73436e7873979543ad856321f0255da9cf2b805e07179ac6765dca4ae6b4b40b642752aa8eb5ae53380e88a185a92b5d95977ff18e73f0193003923ef07ebfa09bbead755471480eba3e51c33b0cdf9e3704835e8d38de405a8717c61ab1d36085ffb73ba64186fc9775ccf1d2d2dfe4a5207d0dce907d17d0d42ddab6eeda62076fa95d4e3a166de9d752b9c81d2bdbc26a6ea59de3678432b3294a9f2dfa729518e9e160e379c9405e35e786134e0922ad6d092d6556cbeac9b545cbc970f9b4ca79163f8b6ed2434aa8bcfaaef0d9bb89307f4a45806c596784ec52c04d1cc7f3f214e94389d2c37386811e92f373ed6ddcf9778d6d65f2a8069c9a1de046cc8d317c9b488805e26674bbc00ce446117bc1b42a3665e098a02c5bc3612f3fe9a06b664ab6275b3bb33078b07eb1ef3ef3647512fae77774182c438362da02001903b87530d624b2ac", + "052d3f1c8f1e8dc088a7fcceb39e684c47ef0f03beba028ce1ef3fd3811f61f9f2b41ced9893370cc856d444c4a9918c774114f4b95682446e0230a65713a786a7a88477f823eedb4d4f4c05cd334061047b6fa9641c8d8fa4404473253f14ddbca942a22629a8a806cff2c15e64fe1a770968a88f77cbcd3dfa0388421fde8733d6ce6f7ccb1d5285025c94e74e38da907c46b057a879e07ff24538b12149403218d9d96b80c8bb5ba80ef224a54257b937d9fb920d5865e3f120469dc7d13fe2407f69b48473ee2131d4465b69123d3e6ee10b94a974b95ef524eca11c1b26cbb2058172d59be56218c992d4b683c384eb603b223e71a1c1649462804a6db01ab14d27fb", + "30e5a0cdf2aa26c041cf3f88d4d890691c9efe224e4766b24df940c76a7f2c7064a3a75f0a838e61378247736e8bd3ea04eb88476a0f42cdf4cf3cb12bac8309a6814277430c24ede05496a758be6498d677a67fa4a7fbd5d0a1", + "0321a6f83fb7c873b5e5046d9d6fb3cd0321c4314ee4b534e37a7ac3fe42d36fb41ea941d151a3dbf36034060db38cad9596c1278b2259ef1b8fdb60fb494fc5e4ee40ed46ee3714e44aa9cc9ab8ec3ad1355cbd4af8292843b2d7881e3b198cf5c197652125548b7e512241a0f7eb28ff53ec32d288aea07f5d98cf1e5057f2215df0235612dc12a3a8fcc51eb3b796e38b3d38154280ad195c6043e7b22d80e79d6451078d03b267153460f1fb81a316df39e1ccee7a91c86a8277701a0446332bb86708f0920ed2a2224aca2a2dd8e032f7137fb286085c87359886d24223378560d85559abf9c7202422bc244b7baedfcafbf51afd72af1909f823b523f836474b9dd1" + }, + { /* i=508 cDividendBits=3962 cDivisorBits=2030 */ + "0309cff651144a723ba0df945d1c5745dd7af675fc97f6cc759778ee9daaf55db9026093b341066497a4fe99368bae8fd5cbda278b271b6ee9979238da9dff9a0db39b7626a67d22230463e4b1d80820428ad49bd2c26bbc1a195c9fc4e266ad80ef74300841048ccf64225e657cae6282929f31c77afe54ae1fd658571a2fe719ccec0f9cd587841746117ef24f69ff3bc8e1651174f3f8d894d9379ac684ddf49c96b8f1265455f10cd5c2cbf95f68870d04e7b009d031c16193efef0f1dadbbccd1ba7d3b0e263b98ade690bc9b40df91bbd2f3dc46c0b5a14e6bf1854ee83acabad94974314e5e9de732f19cfd2d136179aeb119bd63b1ba80adabd06777b02dd455a0f950a005184ec739e88edde51f17d294ce76f88bebbdfd4fb76ceddd788ad072172dbb4c279abd0b1d3c89fafbece005c2c63cec3f6b83f3ef052a4c5043719cbd51141815ca43e430362fab77b87ac8118902abdb7e3da9bd2a532498588896298beef9765bf6a0652ce4155a959a4cc735d629aa0a07d3a70801079aec42e9e565550d7e2133aff3c3d7b4f2bd3976a851d9c56932cdc211744d5cc313dd35cb736809d37b8f1dce275eeb736acd5a50665d851b5e19b8d75d92cc1dfe784e1ff215b3bc0cff7560104a40a98b47d7cd5aaaa46d9eddfd2dd7eb3211976008e7f7bcd12572e41ba00c45", + "ebf552ddeb50847f18e1d01a8594ab809328023d8155f37e1f1b7564b7001e9553862a3ea077e30b37511710251e480b817223e04bcb17217ba4a58710b2681cecbb22b08a01878d2185903918d08e2f323471d157fc91d2bec22f9d8ffef5a9e556b75c9c1ab4eaebf80e22f7e12736528b404ded6aec1bf066c8e6b7078d4e790c8d7fe95eca17315e83ffb82d4f7d321fd784ac53a43a732147dfcf20f40322be9a95f5bb2c95e7b4825c833061035a699f0b385a617a9841b84b046bfc8b606c23055aeb8714a904108b433df8d286fa6818da7a6853f12efa183ffe47b26243268941907ccc23650488ecff065c24b5d9942ccd3dc7e168fa73eb", + "034be0b60803f561178d832fae67e55e33ed86eadba44d0f3ded020c18744cab7564e5f37c9c439ad1c0104e01d92f9c307a3d46b2ac3f5ed2dd6949336a7d22bc3e7aef4d706e6c52ce69f738d44c93b22a158c5028ba3643b4bc610aecb51ab20374356b2ab74d3593ce62d3f852e990b9d47797564469004cbaa413536c0f1bff355e06e0343b0c5b31bae8c5c4580ca9daff08efd66653b23c42a1163f50f7cb918641b5df145a75e9317641b5959009939be7df385940b1730b9f3da5b55eb6ec18a00caa3519c46208ad9d1fa12e5e22247f11299460e097404ee9c32a54f2b053eacf3c37ee3e4e7c06671b3215b483", + "2c9e1af036a2f76038afb9ffc89d531b00e6f9dd462ff97573185aa655c0c8c91935bfb6a37a7df7eb9af7e78683ab7596496b6fbc248172dbff8c316248b8da0456323c60263c71c36db72ee3f60d029306931fb9368275e8fc69dc9c86e0d80f635dbf82e90009e7a58d324a615e40d1c75c46a9b3fa71f96e2efabb061647d5ba485ac950dded309cbc97c53a945359b0dc1b8dd283f314eee15109d3acbefde2e41fc356801b39f8d7d94b83d417a3765eb15304d54a9e70ebf9aa0aed40cbf35584ae47b4ced9e1ce1e338b794cbe2cc78da1438abe5aff198d4c798862adeb861f537180a9be57aaa45f94e2bd70d1b0f5c38b6f5ec2e1ae7f04" + }, + { /* i=509 cDividendBits=3248 cDivisorBits=27 */ + "3c7b9479169a0e44aff364edc021b189cfb0536953bc963c0ee925ed77221fb3a6ed3ac8621725c6a29896005839fad6339d9d80f06e5f53b6254ce4be334d8de901329a79a87fa5b24000805392dbd94cc35a689f407fe9fee7ad97ef417d29a1c3cc553cd08959d3b2227d61fe81370ba70b705b987ccc37ffa816cb9bb6b415937ed0434cabcf0af0fc6e3785aeb9287241d75cde27448c77aa912c7997a0918c07a1988959c01bbcf85b231acd750cdac719b33f9bfda62ca5ebeb4e9617626ffdeb7f6f388738b09841a32a896f26baf10bc38d4c934ba7c6968fb7f8c6b11989a6b76819d5780c165d054e86a08b39026d4af8a4e82719137e0e4b96c8d0bed45e3779ed6c452f6eae16df1e08d59a8939587ad5878bcf8c309de8a909b14b2218d247b794eb6fbfbeff41d121ca248509f4369eb6a58f1124a9d660f22385bbe1cf8ee6c8dd387d6d7de5676a33f7f49dbdc9392cc83c36cdb0dcf2a6385d0104c2a2792adee5421434bce01b1a20f9ccac4852d9104dc627b7d1b282b4f8c0a571f7fa333a43b0fbd618c951c9dca529c272", + "07921c26", + "07fd2fc3cd49c7b0fe46b637eb41bd1594a42d1892ac1b29f2094e547a174777ba6a586f589b775d0fadfa0244cdd1c815bde431e7935eb0ac9e02e78efc353356d9f787674fee3e0e03dd64112436127ea4296ea8af5f55020aad96c4b06cef4b37c035181aaf88f03c700ba52161e3a678148da4bab57d0c55d3fecb32ae3ba43819234b4169df3535a29093191d9ba2159682ff7f70baf448048c4872c520c17ad95be22d0a77fa979cbd9eec5a9e856cab1df75b6c7c762743e893203a37c65dca22463b809b62e3088d7951ab863e6d22968f2f323795cfcdc104c39b2b27472d720592b33f6acc9d35d292081c4404efdb5214c0eb2010bb6e0b6aff63feee0c7b50114965ef3e1a344f6c67e0be6daf48e6f76182cb8ff74fcfb71897e2cf9fcc49bcce983670707617fea270931dd0f75edccccf9553bcdf2f35a455e36eb5c3b2bf50398d79daa15a536d7dbbd5906def66128e587df0a9b2eeda3755963fa76e04b36d726ec2d6516b8bca5975fb31a04e63660cff1a32972b48094cc81ed3668a9e39c56915b0326880b6d878b6", + "0207ef6e" + }, + { /* i=510 cDividendBits=140 cDivisorBits=80 */ + "09702cc20e8f3155b0d53232601b0589794b", + "981f243cecab408fd9b0", + "0fe217cccd084e5c", + "35293793a6d340039e0b" + }, + { /* i=511 cDividendBits=3196 cDivisorBits=1550 */ + "0f50d7193a5ad7e2968959c63d2e45ce798a61cebbfd199b728606a28178d9ab798ae2efc791deee2cb707f40bfd248080dcb97ebc715317a29bb79bc1b5290e628cd2029cc5cf08f438cca50da17a412329847e087590ba417f42da38b24df8f343d5ee2aa0be50a384f0880c2a2d47b5c44cbf4b46e43facd396b5a924b1182791015c7eee7a2b4e40716e3835f762aab4ae1df20312cd0ace17cc68ae86331e66a6635b0f54ffc12ae2ebf7c269a303f47c58fcc8bd970a219a275c34be874bcfe1607cfd27cb84bdf5c08cbad1acfc28a0765d9a3f33a3d0d6f5f42457de1f95b7bcdb110fe650efcafa48234b95b41c0fc85683d46ae5819fb76fb494684cf5d71654cf3aa9c78baaf6c0f708d72e43603426c8104a1edf09cab557207982a8d97c210f1348bdea2df0b1ade28b6990f46880f92ef50b6c24a92efb8e6d2eee714ced0b23acc30001346efe0d7e00f848475a870f115f20510861767bce2572a3cbfa91c06a81ee0da1cf438d6ec7e05c1f71c2b1e477ede1a80910227b00515959f044e7d4f83cf97ea84b0c21", + "281e91104c1d19bec94f8d9377e38d3fb72a3575196eea263174db15d6a0e35818899019aca080c3fa92bc32db17a9ced3d8673375f4a3d27e68ab47871a38decfcf44aabc440963f8aa4b75ae46171d98c6f9521d062a00576daaa0865a5c704f3bdc2defcfc02ff49d79185c681a3a8036ef1d08769c88eef19b7396633f55d2c14117210b89eadb9a56ea5deba73810d002148aae9cdfa03c132bc434e7660cc6d225cebce4aed397f6209ff3cd6e1b2e903d74faebfab27995b2c7b9d712a336", + "61bab22f3ab047692dcdc403b1c6b570ec48ccede3f3d8bc59ca1de7208153f97d8ae464c3566687cc6a49ac870174ad18ad7b0a0c9a0f3f0a21598200256eade5162a88a7ff09733b2cf16ea499d69e8d69c7321bb258bb9b3c98ecb1e3bcd7f522b89afb395288d945643978dca722d8a1e22dc74223c7b721b0fed802c414d1adc5b6bc213973c45741180fc26c704f26a6d8cae95e9242916bbeb5833adafa67641e677eec0452274ceda30c25f2d3c04ad39ebb4729419b3c7702f26069ff77d0ad47c8f92793485f5a298e", + "2447d0c08aa99831d2abdd99fc22c50ac6cb61828f3ffce0fde4a8585f7d23239b97a60cbfd184c57dcadaaf17e3334ed15d332d9cdb181bb04e5eea08503c43444deda2e711cedf405213825f909776350cc3fc7cbe739221333e7c4386a40da7b7cf4440bf3fc46ad43bb5ae8cbaf92ec722fa2e1d4479601551de5d96d1c4c84202e5fcafe5769459a2571243328c882001fdc2f2b2be2ccf05388c08ab6752ffb2896c31fe3adf5b567f1bed5574dd8ee6cdda35b78a32e78abffca8f4d4de2d" + }, + { /* i=512 cDividendBits=3492 cDivisorBits=1693 */ + "ebad598a893c2a9fedb536f6642c1ceeba9ad01a36bf5b7ceaf11106853b3a8f60a34ffdc60fc096faf8f40ae6116788a4530d75e1cefdd13f784a204b1f9310b7c6be39684472b878274f67570e19316f6138b283546135eaff30efa30b495c94af277f838c4a7c5057591044f38eba6e7983d51a2b274fbd7c4e1eb020ccfc3b922377a2f906fb01d4b9f7d97e34b5ebce6db79c5c5e930123cbb9736d37eb5fcb095e056ad25febd03321d4f22f997eb06d2ee863e7fa9efa3c9bf848cdf27e24fbcbb702be03f61c80738bb7e73964f0d0681d4cd306d9dbea9c807d3cd335105f938271b9bb04283e5f3e88ce4c42e7d452f58e1e6e1cd2533f52295c80ed209026e1901cf0cb54e996940ddf57bc105be5513a869890bc2451e35180732218d435754e60646f336c7cdecf2cc552cb7a7c840e23465a9e2df27ea33639aff4a440a0bc0a34a0df0ed27503bcd72c54c3fc13e22593eba82ec0d19dee5c82b03bbdd66ba29e30c9cdde35bbeeb7fb84453600d807ed75dcf386097791decefc7da7c5f1bb23e9f5d9fd642d5259e0959b2e658af9ec6d37a49a2044475f973356663890ec8f17d1f509cdff375733f146b2", + "f72dbe0e266fe93fe5809646975f106e34fa807cac0c71f96da8bb53e544a77893924d5c5a28393ed55d0f66c093317cd38d1b4bee1b05f416235280dba20b1c8455e24ec4b0c9fa3b761af434d32d4a00c667657ffcc2576ec4bed0d3baf19cfa2a2e8c4b06c7d5c8642d4f3874433d6f41cdff10b69be194299f5fe6095d4515a9ba2ad2e56e5a35846946d19ad2763fb0faf296ad2076a5eec550d763c41f71432e1b4326e6c88edebe86d88a8048998b0da3e55da57dc6fdc92f344ea84a995837104705abd1313bf671f0afc8fdf687ba", + "f416871ea6898ad43b945123b1c9b476839ab30f37f04bc9492c0a91c48b4c907afe8d869379e2765ef78f2759db58443f650ddcb3056042b3e71e5f7178d5bdbf163c13a9df1a29fd7a0c97bac2decbb62acd68368593ee2b55c4edb2287acb5e5cffee2a2f4709b664057ad38f33bb2e2ca1b77ebaf23590e573a16bd97bf2c9bfc826501664644f0d756ad068c8e512ac5ab4512962255772c26e4978ec430987bcfba6b9e7813b881ccfd5e849788cb01504b134d264bb6d10fd6ecfa4c3953384319d4f3832ab030511762fd804738e440d736cb1106a34e30d87531e33ad", + "bc42aa793ad0857f650fcd59d2a5cc99e96cd8d5a57e61ddae53ec2193426ae90572842fdef5b333d9c3e6d3454a8b1d85593852a8e3362ba30df39eec88f9572af3115ed8cfe7c41ac394043091800d794c520d10f2850ead1484a716f98f6a30afd3520129c0cfc5d6c0cb0b8387d985a1e3c5e2a4fdb6db1149489ae505047f2c8f4654c90ccdb03b145cf4900ca3d029f0a523db992745a1c01ad1d91e203ce9258e9446d11524f7cf94e71198edb824fe6ec475c1293b96b960ddaed000f9cd784600f7531af4f385839aabf041818000" + }, + { /* i=513 cDividendBits=3788 cDivisorBits=1557 */ + "08c4a2f32ddf5a3f827878eb894a827ec611350a114d0e5cd7c4fd339bbf31edfbd542a21332f0ebcc10bc903b66d511b524d186a0d634ef86457436f08aefdc4306913880a9f06ed1a0a9c521b78e98a7bf6eb4e0b9b7686dac82041cc99f6c4c2291395f9058a288209ea5f66d8d8b3fb073b0b47b6e481292a43cf94279fc7d929fee225b85d1fea7e81e66b88f5e661e056656398d5af5afc855af97889a1033866893a8d8edd30781b31c9470e3395da3bd2d49bfa0436c33cf07575bc0587b1d7a2634a6e6624b037622cbd6580dc8d166ba408f8f3136a8939f63297165f38c7356b3af6a40e052c7fbec8bafca06532dfa92f9dfd69d9746e3faba7062ae83d2d7a9bafc7d8efbda2f0744f6de051dc698e77a3a9cbb3a04d785f22deb6537f080b4e213ca291bfa0a7ef01fe9c27382ff080e4b2b8bd0a8c022f42baf6b7cbac82dfccfce5732156dd1a3c92ffccd23e4f6fae48791959f18d9176270f1c3e0a72099d2c6253a7d4fa419b7003f9652ba9a3262222ecdc6e3d15f1771cbd997542fe7f360d93e993a020d6f776e826b242bca9546b0b87b2071c960edea8ac85dd3d6d33184fc1d6a429dd300d899b2af4e8bbf28b61bbd62b755158c6c6c226fb53c58da9172edb9af1544bed9c0c89760e991cb1f", + "133d911f43bc944d259714ff53c3c155fe92a254f937828bd9a77cc3e6450612fe6e6f761836b8e382dc5b4ea793d91d4c28ffc7bbf2ca7f553b797c2a8781e7fa14fdc25035f88cebcdeea416319449b0869dc30c00c7c25168fd8099da811842ab3099c599c0c1fe83815e82fb618725d2fbec7a8ca2301c0a29887a4e2365a02797d825b287e6f4896c9eb6934d2330a230f7a73be8593573735fe25ecf90375d2303590b63e4cdf4fe9fd7d4e7a9c96081d142ecff3839b51cc0709d0ffc4ea62d", + "74a97f08dd27cbc865814855821047c6c4904b7bdffee63f0b50915927c42fd6eaf89b3aa67900a1f3dbdb9442585ca90c28869ae1224759bba6f1dff0bb9f7cc0554d1d3b0003cb79dbc6a2c404e13f3187045a89906b851b9ee2cf761e6dd9c931b4b4924bc18b349157a196c6e4eabd16205c02e13d392f995518b14c23d540e8f16dd051c32cdc665ad50ad8fe60cc7cf34b7bb62439b6bc420039f14413fbfc9cfe7c2a2388778864e04c29ff4981d0c158c0fdde48243a9c6df2dc8a30ecdb16422f9a585019de3ab98262e44cc0c49229b071fd2e554ce32f3b750d0df5e935d9b97d1c8f44818228a39e10101da769ad7a31f98cc4d1dec8d6a7623d0ebc5f51f05cd680afcce488a1cdb3373d76864a2aae9a", + "0616b1c861c15f6699ca20f0afeafd74d375e3859d09105e08e0a7cf293931008a5396432d746746af613a5bec9b7a523a63a21d3522e197029fd6128667fe6ae34c112528af3fd1d28ab8b8ee8618d81a8996b607c40aa1f99f831f185345ebf54210f51f83861eb944f3da98824e0f1827b3b26f3a846dc68a7719e069138ba247c858ca8b0d8d1f33799f82e725674801c221b8bbe2010f8850af6d63a8779365ba3bd7350c3087e6277615e33bc7c5605a91bdbcbeb3634d4e793e63c767ed3e0d" + }, + { /* i=514 cDividendBits=2995 cDivisorBits=371 */ + "0564286d768b7df3599d7f1ddd79f0867e29079bf11d17513cc550143de33fc0fa6815d86d4a4db78bd92242205223dbf49daefbf9166f1774b0f04ffbadac0b457a505456084b02057394f87fc369d4dc16ba2fde915003a87ad975373be1e14aa36c51a622da80a80ab4c397151c88bb399e6214abc80cc9cd1c0926cdc111cc35d41e051363772abe688814ad736289d5c652850fc37a8b07ebb2d844b2576ac416e9e4325b1c0d577f28a217b063bed49e7f6d18de4db1de3e2c61fbafd2e82223b114f74f564e98ecc219a7ae198474edf27f3dada9875f7fd597c7b425e42e40237a63ce78541b605d144307cd73318f1e50727a586ad23fa9be15ffc23e8e5af219feb5dc8fd94f08e35553b53a95f81dbe46167632ee47cba2db0455e3518dbac6e65dca279e4bd934b14cbb79f87a5c42c7e2033b15b96d6a19fa9e7ae6b8a83f233495cbe2385ea0820eae96080d0a65da8b8ded4ef567244d912827806e7740e3f41f77b0b11a60b9ede2e82b7806b46920", + "03195bbcaf82df9363a76974c7fef664e78fa5102b2648c8f69fd7017b154c40424d6bf0bfccd1a452d0ecabca9083", + "01bd590c2072c43cb0e380477f3f2f30ae3138efe5df1287894cd1662330cb89990326bccfd5d44da738dee3c7bc775442c9dc90bd7baf685e437f63a8a88c27deabda09aa73217c3bd99d45d0e7f4a5bd3f0fda8e297c6a76fbc2768fb76e01a5c3a8a90b89928796200598fa21bab8decba7dbeb305e0d16bfbda8ef1401775381c1052dded45e81d3c2a517f13b575045549817b455ccb69f8e5684443541d86d87953946b0a997fd4077cf7eb9807e5d43b19608ec376373dd6e321390ffd253f8ce05266d20851a18e543465a308ade30dd51347c13889b8f5563f81b299817d37318417586de669a8fa180bedba20c1a054da40b99e30f6d1a88cfdd95e88229fdd66ba4253f8059ea2c22f045e995febf2ef0b91993f60ced682379df934e3b1daa7d3379e56ae3535793797538eec012adc1b918a9e2d74873d398c5d83bf330aafa3be6ca", + "022744628d351eff2907396cd05d278ccf6876ebaeaed4fc9b31a37e788f5f8b5217c4ea68451e95be933ed7afc2" + }, + { /* i=515 cDividendBits=3688 cDivisorBits=1502 */ + "e14d874930d3160623ee277111d9f1c8dbe072fa21b74302983a2f0d27db5bad84a06ef8caa5a5337cabe85e356d6118262ea17273c6c9495b7ef6077e2c12a0b92137fc3e607ebdc3353d5f502fa0b26636aa9028aa00bd5500c8ea123b3691d3884eda12afbf5d30c313b4e92e7139bb57aca01881520353f805c138920456ae3b9b8c4997701282cee8d463e5cc93c60eeb9aad4656ccea46f2c95a7d4300d641318e070c623a6551073f3db24b91af34dae8181dfaec2c290427dae35037aceee71e37599123cb3fbcbf23deeac5d7ea1270422bbc6cba77c6fb964ada0c9db2fd9e28f05efcad726c25e07a1653200563ee7169835d06e77bde73dee22f517171e0d722bbe483fe6b1a97c6669f82f79e290ac4ae1454cb876d2adc6a4e9b39b6cd7cb07c61540e2389c95b2ec5755948f8b4a0708586f627d76d66a1a41645850d54b0dbc690ec7f0df521313bda0a965b3108b408e9333222d40176c0de0f349e08c8352c3a19790bf3a6fa330486be01067e32a894af542c5d2e843c60ceae273c0a6d980a7e4b497b3a1c7def7e9bbcddf3d4d439b70c0857983bb6d031f844c721f5407ddd2664cea50be42f70c6a8c82078757926f9c757978cde47f6dcd73b454921b98a80265a", + "3d0851b77aed591411d1632958f02c07b999ea9da2b78ace378387bcf4efd4cbe049ba96090eff4a8a6e65b7a30f0847e042b7cea712296e1c2125b0836c8a846ab2bcf1732e4a5b89ac61bb1659e24ea13c9c1666a7723deddb5fc5ffb51b23348ec43f15a5c5a384e3c0530348b9971e9791ade19524894a2cb8c3d457db6f45b55da0cddd058ada77850183afcce9922e28ad2a726c8fc00f53353adbf2c8cd18bb203cf2a96909b2f74d31e49e0bdf5c68c3bc1b1513908b78f6", + "03b107a11af26d25a55c331570d3b29cb305fd95f02083e4bb226ea17583b846b8a925c3d62e759a9e84222b2f22d79318356dd1c2b84fa4c0a178108a8a40b4cd3a1ef6f0df8b909b77bb51f6b93107a51d4f1658e335a2d0360c4d6ec88a060380fee7da54e52ab1edbab9585d35dcdf01a58586e0ba352aea3b86eff0a81a737f1ce0608a05163c46b4550b7bb3a3add4d0be1a4efc4d1d84065df9364fa169081cfe342d5de47cfa5e97cc1a552ddc09bcce02bffb14e1f887b4dbda9bacfad7294097d812c525311d2b9bcf2bed282343cad80930bbb7224a83def5b9f24511a0a6a0ccfc1cc75c2399e7c0e7461d1f35a716af3eea020d60261417fb1b4dbc0481a4acc4cc556447d4788fde15f486", + "1043c417fe82ece871927d447a5ddf4d6d02700a1fa9c5204757880ff491c741f3d37dec79205a7135955daf1a32391cf71c6a0196ac77b60b32d57cca491b4d451211a1958f7430acba4dd6ddd182f26b5304ebea81b4b721328733213067de311ea710344bd240a102506d54f33d5ef457c9e5a00c152e40dddf9840efc829395571d22e99183122601a8d62f59498529217ffc4e249ad32a5d6abf222146ef5c2c05d1bc3c58d11f9e173ad973f4a7b7c4529c8bdc3f6b2065d96" + }, + { /* i=516 cDividendBits=2135 cDivisorBits=969 */ + "77b513fd2a0fa2e221dff5c1159b602245e509e26a4c7ec3d07ef359a69dc43e2bb94318b5059890fe7c3917006b24d908478e0f80499d2b963a2bbcdb121650ed7cdd33406d7dea345426034e0d63c18d98e597c9fb6b57d5aca8f46a962fba702e466d66ffbeca9140dfa3ea30eee6e091b16f563e01325fb7b645839c742d012996f56ed7ff63848a398e280f7f6963c5573bdee15702e1dcce2526c92a0c4aeb39953da3a8c79695f2f26469b1230c9daa2f707de3c51c0d2b5fbecf167dbc66ca0649f63390e522509b402966b16ea383fa440d00dcb520547c6863704498684fca4ce002f42d9f45e50970a7be7b3df9fac8dabc361a2cb7654bf250fb9aeec44b15fa126e4a82d9", + "c5d7bf50cb6ae95ef611ad0d6ed5340d1ce05349f32dd36c3469861a3c41f590f9ae6153655013dce62f5f4cc4ba33e04db809411dce5b170bbe3aea7872ce04a522a29d04e158de93a014fcff757eadde82f2b3fdc01dd227828b63049f8862c2d2ef20b360d1fd8b7d54c42a57f60ad3c169937bc901c634", + "9ae568b0fb8201fd4c8b4473f3cc4622ca5611ef3f1fdc2feef31f85537a6da9c7f37f5bb2650c5bbbbe9d540343392d899fe1e9db287c2254261c64f6d084842ba3427571819eb92df6552086f866be88ec204af5a0530403d0a14da0c0621e9b649c386cd73c71961ff9d055c24ef4f613f69bdc1e6a9a1754bf5a9787a0beba7c937061fccccd392532c860ddfa3cbb71", + "14ecf180218c61685006f3950578c87adca9fe725d2fb0b9876d52350dcf10313c6e28cb84ef55070d3601da9577be675ddb96e1f2cc107afc575083bead545946847ccb9d40062916dc07acdf72d7390afcd63ff6549c1d0c433b2e5c45a495030014b078c49aa8c17e17fe508a23b16427f601bd2c8a09e5" + }, + { /* i=517 cDividendBits=2471 cDivisorBits=202 */ + "318eb9535b9155abd8604e4436589026fe8f925cc388580cc91174c4ad2a778d60d5e6dc8f5cf66e295aa7ba9aaf2f527ee1b74911d3da0fd902da9ebe51ebba8c92292ce061affa43e076c09f14a0017e3593729ee43f89ce62fa317c1e5199615b930f8e7a0d77bb149c9fe513a4a0d82158f29de1ecb6701b14fb6d44d9f5f1af316b4a5c4a3f8d83c921675125231a232c668fe1707093eda785503abd340f4e9d802b82dafc6773f64f64f8fe25ba18961cc65acc3a6add984eac1ab15861a7cd83db3177c0ad4531643d208a78b390465b8ba0be8f5a95ad562d8bdeb6048ad4a5c3515c9346db90e266ab26155c4adfa138dafb24437161e79c2f9cdd30e754434d2289278260bed76eaaec5fdc2598f4a16c110e860bee1ad180b38f6708adf8c1165925e4defdafa898426862c47d0b37", + "034b56e88cf365f7560145d2da3dcf03e379205596626da7cedf", + "0f0b1ea6055b08a22df3dbffccb97a4a8d5a3709073e81bf76607128f5a21649d4b3e1ce9134042de3102f0a63a75a4554faf92863b2fb09215c3758001e48c4c6e8b1d272edc4f8c735b92af6ed8d0d96ce69e9a9d6f3fc70229f7603dab45c1ea606c1d90ae68549cb94d4c4a38e24e4bbb6f35437a842f3653911341c2f25aa0984abd3e9268e1484daa73796b1586253da13e49b541a93eba6fb8103a2b42180789eb2b1800ef15743bf1dc4b2037e9a6ee5164f7dd81afc56c09070167e836ee8b0783c0002f4968e2900fa39e5536264adfe1fe1dd69a7d78a514652f80d3e6b4f2659e12d42ba6f97161814be9dfae8859231c4870d263080c542f8bfa02ec9631a7d6835ee8a1f766a0e0fcdaab9d2e833db84cec90ce9b6", + "01ddf634566a457cbf0f9f5356105ebc996c375b8fde4a7301ad" + }, + { /* i=518 cDividendBits=1849 cDivisorBits=621 */ + "01661e97c42dafb83c44243c108ecdab1f13015f610afd03e443d5492c679f44f0ab56c8ff1b282e963f4c724312c5bc8fffdac2ad8f770cc735e5a317cc2330cef05665b0afb125dad25852fa9a04afd27d21d57adc910ce44a58282068477200f6248a5cdac3c5418db45a1653a563eb0de1ea9e188f37ad554ad5e0416b355a6575f39e383e9ef6e2cf34bcb4ac7e9c1981125b2ccbba6d448a3341329702dee139385aec25143888262116576e60e741e96b4650aeb3ee33f702227a9eaf2b3e96c9fb82dbaa1402f67b214c6aff86c1187ac805213f1610d8261e15193e919ce11a16ae07f8", + "1e7a2dae8b8da12701e35894e68696de4d1b0069e9acf88b1600cde077373d67c80c973a55d08d723e8f06119e1f4e35393d93b4420cd1e9a331f5e6a83b880fdbe296dbe3926a7edf5c541ec20f", + "0bc0192a9da38230a911ef0ee7c909e27539f15b4418ec0b784f1a27d69459e1c47f3741a89c6d6a607ab861cdf67f62713b6e753885d31a67f1a72718911d0aca3ef1c6a5fca7af6c8d986ce98b554e146124e22c755c2af9a403f850a1bb311a36607947c18c4a16f0d557f3db9af4ac22820d34b97ee68b4f10c457ffff919725e05c745ba9a696fe43baf268d909dbfb2060e2a6cf634ba7", + "0b0048bfa85c1af821c33abf2767a64a67b48796672eb9e59183985d1170807a718d9413f2973d7363fb912206c1a7223b5acf730dc5f256d6899690a31a9b1f3b7a32f2243a8bcca4b106f60b2f" + }, + { /* i=519 cDividendBits=190 cDivisorBits=10 */ + "1c414adbdac5654196323f7ef1c0e62882e6e7fceae957a6", + "02bb", + "0a591a51405fbb9b7fe386397a996aa21071dd91bb7b2e", + "010c" + }, + { /* i=520 cDividendBits=1409 cDivisorBits=328 */ + "0f06df482732b71d6d64da41a31c788a23c110d9f6a381dfab3cce3b9cf0063d61186d3d2144459692273b391695aaac4f6c85f4c3380ec2215c9af47f5b6ffec3584d11f5a45664298956dff5a6e192c6e690319d83b1f130cf1e96ad5fa04b0c4c7d9a53259309aaf40273145d258548e0b06c091a2f83395d7b8f3beacb64ad06519727bca21fc30645bf625c68482a9723c9d41490a84336fa9c01a33ed94679b6beaea0a16a903db076164c86b0", + "62f3323ff3c2fa83797fb12a61ebba0cfee1d31504d0ab3f6928f1e644c9fbbc7c9c8da373c3065d9b", + "26e07ed6b7c26e6413fb790d419e2bed164d53a538c57ff5d03e646d172acbac09e0b5e22102535b2a2b6229728f7ec1eaebb97862f3e63848e34ed6059d4fb662d620145b7d2a5576a31680a917dde13e49290f7ce46fe2b0f5a7b493f67639c0bcb19a518b31eddcf556a63685fcfec19781f412d66bf09249e508b108e4258be1ba137a8e25", + "34883b3023af6a5a0bc5269cbd0f1b6c3f31ae000134c2ebe385fd39f89c509f635d6832f441970549" + }, + { /* i=521 cDividendBits=1720 cDivisorBits=51 */ + "bc1f8eace294dcb3ef8ff2ea8c604baf3575e1e1e93974db1934cf7c1969bb01229638636755b4e35f070354784ea13efe169f017d7b74f48db4e237a27a11cab7e023b3833e87361868a007d1720a11224239ffabaa8dcde249a81adc72c5add5e143bb36d6e6864e23af6a95e2c8dde6a5624ee7b011a82f67569bfce1d35037d617664b84aaf6a68025ac436179f2810367f6dde7c60500309caa7a8b0fb6b2f74f9ab17f7e230f6497fbc5fd509f4e78f2e0c42312365c4fe0b528e28247ba80d59d59e2e98b53b0f986aa8f14b79ff634f35f07ae", + "02f093b7ccb105", + "3ffe2c2e2e3111169ec7e253cffc042032a42677135f014825985c8eb235fa30d198c821e892a0057117673853d29557cfacb77fd77a170bb2a30cae9b65aeb71d99c33f9dcfa4ed69fef80691cb7227021cd158d7c435096f8d85790e1b25f474a37d3e340c66c13196af0c57ab90fa4764f99ed94ccdfb9f055541dfa8b4c53c40d44e5759fbb3057f28447bcb5819743d05552fe4a70e1cd40628fb628079711eb08ad02fddce02a307d6c2d3b6243ff2b81d4331a121b27380e1ae536a6754529d6631e263bf9187a6ff777fb484f4", + "027293467bbaea" + }, + { /* i=522 cDividendBits=3047 cDivisorBits=2993 */ + "2c2662d7b874b5bb03e6a810e1ce9f089760e0e50665cbdb913a3701ea8d2f9aad8f5e178f671c73ebff35a92c9c58b017344adab6ac915b6dc76e620767d9af4837f5427adad4b595576e66ec697646e95c415997f83f2fd5a50abeb66480f2cc2eaab5e5147f6042784e695e03d5e3a0d3c96cca815af1f0c2bb73c82ff3880907da7a01f18be41c5e6e6b016535c8c47b3f62d0338fbc7a90cfce581765d6df196a84071e5f60314395ab2d14ec36766bd40de28ccd801338d4067c0cb0f6c02b34e5fa63ffa573104282c800e19bafd7de5bcc9166e7e274d7da35daf2fbe5b6e146c97382502a306facca49de7e641b6263fbdef44a42bbf20009c49f72bf20b80ba68e60d53a05d31e69cd90b7a865328d3de3af18606f0e27d74ecbbd1f6af398e7a78ef0391c25e1f98ccbda264d10a510a6932838dc80fed5f93a2595d8ec722e69f642afc989281fcbe1956f3925cc7edef6d15c0ea9bdc63a2c7b22769e2d6bd6c4437ce2e149be6b0ba2de3c1468bdf45c4cdcf85ceadb", + "a091c0cee31a21af2ff7d90ea3f8adcbe4aff2943ec3bc1e9018a28430af0223f7e24e7b6eec6df7716fcd8962cbf37acd309fa4bdf6a1fee7c1c26fd904a3791b7b8332036d3d8e32d22708f29edabe137815873d5148dc7641d5825680dc04c31a8b38540ef7755444d67becd3fdead92c7dff90f3ed9890f56a0b2af0624dafd8305091ddc13d1ed02994c742284ba044b84f5933cd856528b387f94c7664afaa31ae9b1f08ed798c60bce3ab0bda9be9cb407e5ad8dbb6bbcd951407b1b512fadd580533cfdb85b6294ffe4f09beb184dee6eb6f2804fdb7f79d9974a7f5892877d9ccf3eea960a804fba7cba4d7f585cea8f97e1ed1b88878f3e6defe26dbb47d60464da808fc43cf1cd5f10f15374053fdf9cac7a8e2e996ef032a8a568c39d25842ecdf2cb4c6e4b50bd0059b77f2fb40b06e0a6c86ce5a9483f33ee3a80efcfcec1f60a4cb438bfea17679036c37058ea8eb90683e9750deaf3e38fe74f6a2ac827441244f4f86c718841386a0d1bb60d2aa", + "4663b22d077137", + "08eb113278e6f14a1d6fdcafec6cb7b9986687877389f12dfa210590ab00df9cd534e371a757f36d0dacf5c23b6758c5bac8a11f3a53e65900104faa14e45045728618607ccc2563039e8aead97d65c6a5141adde14a1b4b97a7974366f82364229a4a337e34d720ab558cc01506743831173329a124e6bc803f6983b7e715c42edd085edf7a88e1d755b61591d17875ba893fd88a288d8e0bdbf5c7b96a08ef28b08aac670ac74199208dc47db95558a00bf1ce5444650c7c79850cc6804d91d2186cf189e292e03a8ebffb485e6d41cd1e8757f829b3810e9601bd45b884a4525df1761fd967cab1524d03033ea2bc72dbc425dccefd461fd3274d63916fb6bfaeba1a4dd74252c107259dc7d88b93313d9f89747f5b63427aec81c4010b7ddc8b988ed654b26bf31e8a5abbc2df1ed01d14dedacf6009814fbeaf29fae73c6c1f50773bc1e66a56ac7462dd18820d045a07900c319d2d64270d1a96cf3af20517c3f10738d6575956e54a7b07bc80cf3654ec9e55" + }, + { /* i=523 cDividendBits=247 cDivisorBits=7 */ + "40189f7c532aca2e209c22ea7c6d7378d8009b03a53042eb7edd1233e2ec00", + "3a", + "011ae84459b5b4099f75735c5197f4bfe069f1047a053ef267b45d00e50411", + "26" + }, + { /* i=524 cDividendBits=1405 cDivisorBits=595 */ + "122a5af4db254e689cb52a12fee1916d071555fde4b0d3c72432c1bf84d615265de7f807cbe19f07f2299139b4f04e6c19252942b269b688d5bf27a83965e817194278aa0b6bfe6df22e5931cb6cb8fd96933d6e31c808d1ee8a2a231296eb4ca56d12a0d5e610330b47db722bd7298e665deb509d90adc27f7282dda9d39a3bd6ae585d33845b06c782489a15630d7b22dbe4be76d2fccda52758199763afab1da96cba92b5deee8fc7ed481ef317c7", + "013c695c3cb20c574162667695d35961afc317d727a3c4d6e42a4847ab6838d9e20ca7b9a8d3d7f8a038d5c017deda11ed659a97a72f29029ed0fd8ac23354141db69784a93b1f1f7be0b4", + "0eb279e3d68dd0b2688a8a5756812da70aac51f7b4e623510723f537408fa037a79bcb8f9cb5f4a4a604b40669520eb3aa0b3ad1a9ddc0b8ff98de805d4cdbbe3276ac96bd2daa3eb3d8ee648ea06712a69ce4d93114294bdd421fa2b408a2755c410b1c84da", + "3f75e276f40c0dc8836ef1eeb55b93c4647c5f4e996feb0cf3e7538b8c6854395a60c451b6a045ee55cbfc21a8e9911cfd8a36384d660f6d5a4170615fa458d9e9cc69f506a31fe8ee7f" + }, + { /* i=525 cDividendBits=3904 cDivisorBits=1256 */ + "33280b4c30f90ff025ab8220d5b8b1fbce0f1948cb9de53c2ebf25cfe17f591c156cfc4217172daf9266201fc7ef738ec5ac9d8e83a32bea45642318f9672508eb09fc751dd801c1c1e6d362676093f7f7c1b9ecaee61b5e3f5ccb0bc03969179b88bffda1a986f0a6cc1fea8f31f2f4b73024918e707287cb74b75d4ed7912b9e1cd49f4a10d1006e23bac620c378ed8bb6087d79bd1e5bfecfe774ab04006925e050e9825abfa1dbb86b878fa57cd33bad9a2c6406ee14a9233c720f82b3f6a3e9e9fd034293d34a00f6ac7fe00b5c8569f383f5eb5ee53ffbb21338f4f2c88883e21c43fcec3798412c74404bd1f412503466413c460eb956c05a4aaca8ffb85bd8d9dec7ef2157e1c8a5168e0bb237eab5215e99a255e36b637ef92bb3f3a3ab12b0a3d73777784ac042b1d4c8add6e9d0d639cccde2e4ae188df7353357b8d4b2b825b498fd9dcc3925f1a06595292fe4053c8a8e5ea801d6e901ffc86139c11b07251e591b25a5983119e91f617de44bcfb5865746649739c31c46c0918621093d7a58a81718c4e5d65d694c72af6eac525f29a9f1e0d79cd4542fd4d735ae6022fe21d5d5299eb16351fb5fac14ed26aaadfc9229792d2f2365a7a94e0f387ecf19baf3902197acdcc72670e9e8f7e5f14411d31875531c00da5b19248e82a1dd59338592", + "8b5fb0d84f6bbca6746b130381f119645e70de71021765c01eb02a876ded0b9e28a79efe7146cc94db7d1e983735cb53725f9d825d67168907a5ad60b1864f2a26f8a37f87a256196c5e64214be0e66cc209790b5a97e4dec6f280be71383998130ddbb298ca1ffe6887ecb9985d08ee7c70a4e61a81e66f95b9fec249241a0c76be33c5781abd5f6e4f5b53553212456e901fda6f6d89c44a82104de7", + "5df6a57ebbaef275ecb112c02596420d0ad83e14f93fa4b7c8841070742e0ae370bb621c1868db3e9f7d77fdc3db7325fa49101f907f6179383a570fac063bbee8f9f8654b88a8b9b81aacb3c517af4696930082dd5d1b1d4a0f300881704bf8185e8e587af6158527102ff532ceb7ad9e692bdfc24cd37ea13465ee765cc61b8cda8bed792209e95ab22072d01363785fa25c9f82172213aad3f7dcbbdc5f3530d3c325386e7a64df1b1d6f4148cdf4926f11aaea97d5fff5bc99924885760d0450e6287e23d1fd3c7f744c039761726eac1a3a6d6de0493cd261d389cc7e8b9de39b085fd5b0198a2c7befd2aff666dbd759d63184e0e5743ff280985099839294eaa309bcbf5dbf325041ba03736ee5196c7f5369137f46220b6da707d1b15a5817c41b881072e3336bb9af5ce206f870c972102784592a0e8ff161b699d0d092ca937f68383395ca21", + "024dae2166fab93b62cba7eccc12a2701cb66e77a63bba17a9f6f91dcf2e73701d55c7140996838770c9715aa6722331498c089c546cc0c2cde45401330d498933858345f7756b7e3ad2248fbc67326429532e4842c74e8206faeeedb3c55be74ca9612b5867be7613ae8578adacba6e8c1aa035e78835f22e733cfc2fc271af2f4450b3e50eee1f94ba1845cdffb61977cdb482d345c6b4175b2e34cb" + }, + { /* i=526 cDividendBits=3617 cDivisorBits=512 */ + "015da81cf9b2be05685a80e256769bf7046dcb5e5978fd93a3cd254f3792541877817d2e24637e5c1f027554174dd1af20352436b2f8695692b664040b648bed0cea096ee76b460dd1243cc9470f93d695ac58d7df2e92e5bcc0ddd49dc039c39d1d6bd447785941f1ae7e17fc975a8fa18ec3daf759daab5aa1f65a541676446604debf19a2a9322c733b4707e1af29bb190b99f92bd6a3d08c01ef00f71df8696a68a286b099c254ec2ad6509a617a1a1559d720d5be5493202d41108dddd1868391269d6cbf9dae7bfc5d2f655e1aa4f21806a963682e412d05ce5b1b4517540996ee6872f9fa08a9aea0dfb48eb231c35d213a82c1b39c5d9f81147d02f4b4bc3c2bb3b71bdf2dd07395e6f3d69506c2a0cf448eca8d0d74ed39133de28fac01f0f71ec876e97ccc53c7712482f0c3b440199c71c2e2bc89ae6e14fbc299151f6b7da740f3733bc92f30ea89f6b1acb63cb66c354b640e3b1367c5f5f4eeabe66c60cb573485605f9de1a63dacc26b77aec433c752e9fc5d370d67c19d81ca248a5345da3f214e08a398c5386aba2b381891c96b826ff59868785b6c5e36a44037dd6a813880986a83f2b5e5f0e84b64d37abeb0d1ec23c6e9d417daec8c8d6b203d51", + "4ea194a4228c3aded82a19ce26fd9bb93cd932b5745bc566cfd71feb1f7b1c21bf81cf1ecaf78b82077126753a3e404ae292bb81686f57f748bf81ee8d762d16", + "04726123cbfc6594900789077d8ba7469ed03aa2f3b7b5103e8e2822ee46342094bb4664308ac827766bba7d53b4d6c5c5ec827d2495a83febb46040c7f483a07c44def856581246335d447fcb2ede789ef2f7e53dd96a736f14ef419fa3a20b7c206386b38e293916ee55b0f36d260921959095ae77cd6b3315f7bb397b3c2a972229a1c4d8bf52dcff85fefcd2c76ce6ca6080b42cdb507b75fc8f411fe0040c680d260433529f24d3010a57686796bdab4a6692ef6e763c59ba4258a2366b5721c3d88c4090c1b3fc6afe2e585b8f4d746f63d8e3edf53f3ad03cd0bb00f718c3a79ee1675ded72d98e96be8929bec7946e0dd6a8c135573005e697eedc33e97925cafc75238b0f90c0dcab126a260544c9114ffa1e947ccdc6c67c571ab80021b664f91d24b7c28895cb228eb1f848134f6ba67fcab32cda36b364d26dfca1acfb252c2dd808adadc45f7892525df2b1fa65304126034f0737e6e1e378ef5269aca025eaefed47f08a2c0ddda4fd704bdeca0331f7a675d07feea4801d1c00e17c83a5", + "26a39b717083c181067d50c26885ecf11d067c4ec0ef5484fa95c606ac5eab9015642fd8e9d71ead0f4e5cd92b0e595b4d9546c6ddea7f0755b2f08a983aec23" + }, + { /* i=527 cDividendBits=1486 cDivisorBits=446 */ + "962a235546b022728726e2959b9435f334f676f6be6c42c7930dbbae2511dfa1aa3d0f04e8ef21b518e67308e0674d8e56ce0fa4e6b568d63c26263448e92b0f0f1cc5e1619cdff6084c297c673975a09f15f5cf74c9edad52a6b4557f9c2b55465c9a048612da4a960e7faae7ce56a60e65fc816b69711f59f95620a1630148d025706192f28f7f6edce1ce4697ce69effd4f8f9b1cea21215dfba6da5367aad0d846f633fc66ffd740375c6c7b693a115c065384e3bd58e5", + "2f281690563dbe61a965d1e5b32dc3329d1749d5dbf638fddf96e808e2938cde1f2b883c91efa6ee8355563af86ef48336de960c8f9353b5", + "032f33a5a5364316b5e788d678dea9206149e222c954139fde610961a3943f97bb3957f7080e834cbf78aad6064bd59811b54b1fff3ea01b8486d94a291a7e0de3a074bbd65a1510e81928a8472aff50061f629d1fdf63fe1ca73bc37a7dd8bf88fdf24126b31a61b287871e7dfadde234b2494725c8b6bea7a7f6b3cf3c835f8b2c", + "1cd1dd2a04e33141eedbff00a1d762cc27dfe357bb39ea155b4011078df544a3b1ef70e9b0a6431595a5f40a4082b9c6b964127988ccaec9" + }, + { /* i=528 cDividendBits=2985 cDivisorBits=899 */ + "f58d81c48576baf62f0f77093acf022aae2d589c8c2d01fb5e52317a83f0a750cd51d7b620f956c09acf8ac38e184b69e1057e4f8695a47f0e70258ae44a67319e61cddae8963ae735fbf51ccb732445420f8a504219238f8ac2bd737cecd7e96fe2d2a921447d8f1b0babee1fd276b56cbf977c936d8309e20120fc34f497061e3edc03b0871878d4c9dacf34432036e9bb56e6f63563da9fd6366707eb6e8a1ede9baf46875e19c4b62a8f6ee66d50b34b18ba5d65b8b1535be94749d88ebdca43ee2aa789902301e2b80d348c158af56799527627f4a0ab545c5301d968a11578f0525b07a1e2ce88a4919f3a93e6ce70e790c461149e7f6e1e1d3a5a7b468bc271417135254a185a4b691aca59e22f39d758884b22cf509c4af9c4ed158da291d8394cf702d9660e2335fae7a9707ea50a7d53f6dc39ba415c1b58fa9ef265b62d6b629682a17793f1a897028a309896085f21ecbb2f0130d7f64733d5da672c5de5654082c95c1fc07c9b837fe47363f6db24", + "046deecab1d35d7059541f93610e392371ec0cfd647d01c828d0b851eee25530c8caf495736b4c9c250448d53ccb8f1c6ad5dd452e2ca1d91dd6a9645dc558a8df5852b8481cbf61ed5d8c85908741b251b55e68fa43119a711dc7295aa9c49905373040539c0d59c4a12fb564bf46f59b", + "376fcc78235494a7b65aa0db35b9077643191ced7d4829da343740138a7034b34a2c3fcd90357e80d7ab4758527858d6bff1f6fc09374ddf1423e47617d6ae67ac6f2cf100565702772648c58c231f4c21ab6e363a4e616f5cd7c363f801d9409417d80055cd0d4223d634624496620a9f1b4d4849636157e85b1e3787fc44b751a0178d1100b53fd9d038b104967119a4f2a36063f1ff99ba9212bf8c087e7ca9b34389fca29cde649a03e04901135491181db03bc55cc4952821ff2d91e51ae9c9e41e699b5169779cad9c9a9f031e8525593c62ebd2ead1a3c4e3ee9fb750b7c8be894086c0797fa06de7160464994db12ef8b80a0a3496ca87c913d688e7d0bc2d2c32", + "0354c2c8f274eafec54c2528dfd8d12147d58f157185e9ea3a121e801581667466832144a849aa9a42177d92e13d3127476fe00662d8584557ef7166419974ab2f6a2182efe1154777536f3041f4f3c9f7d5074c47fa0179e07b1b6bbcd0c3d531dc23ec0dd713a2ef7834ff1ed5a53ede" + }, + { /* i=529 cDividendBits=3054 cDivisorBits=2710 */ + "287871bb9315a29ac13add543881573004e8faea3010448f88e68aaf6a9a71b87214fe3853827f9dfd0fedc0b7b415f7ebee8a3644824147be50beeb84dadf802aa146e31ddc7fd562adbdc291290a10ed76de46c78d5fe898dab989605ee874f0fdb0fbe2e972632b1fa13624d0956eda11a3f96731dce9e80f378b68b79cea7846b12d345483ec3f0a8390d3b1bcac7e9f11a20ae519a9c512130c633c730870ba5365c00068315afd5b232432694a1fdb2d6f804043148300df93c29fc1d9cc14e6579f5a84fb5f2a560babe2c8c3fa38a2e14430d79e58e9510be841e794261fabfdad4dcf558fec7ef694b08b1bf5e32660fed60b0fe80267ab390ed96c87ad2dd5a3767c9ffa860a8c33ffc5f0219ee68c6ab3c0246195d996328eb6c41889088515dcb590e00e269d69a83828508e5a236f4331331d45853f6240ca05c467ea940000a00f78badcdf5ef5e3af94137353290444ff0a2c6a1322c60e6359cda82b33c16623f7a8bc3e178b7f8a0a519a7be0588734ee0ad5b64bb6", + "27d9953468912763d52c73424f1b10ac36074416f3e0648aef23a907f53d4bc0d82b84ffb54f8053cbbc9ed1e7a5c72ea7cffb50f53b6a3b02ed9185de56fee7d65fb86f693dde28b88ea2a49f142951620718111a1ba99acda616d62f98731063b47b7b7fc2d160295c1a6f298848946f3d3752a5f26a80bb43eaf1ab655179b963cce1452e3dbcfdd0fa08191236479a4813aca72b59c4771f8e5e287b5685c553848218ef5dce948aed27f722c794d7c846590ca9d2a1d9cc603466f0c248e99a364f8b7e7d052464d48c1faee70d62248cf9a78da667712dbf7cf719eab2a97bc7df52495363dd415adb69ec1066bbdc9f1ce61017bffdba334895f4eeb1d9fa566d28b35817dc6c1e570b87c58f040b38a0420d557fa1c7793d211dc8bcc4efe763edb31301e712af8984de9abd6fb310be7d9bc8d8d7048d39317b400117428df1d9aa5db2586902d4902790cda48cb8", + "0103fc8abcca4267f7d093a3547477735ef552110d71c260d28138a488208ecfe218f5643382396eb2589b2d", + "11d4b2fd6ed669eb44e93da8999f1b9286a4b77e070509e2bc479dbea2d2921ae69f8f0f5dc702b737e557b484e0c4c93309c24203f7870cf839e2b967386cbf8458ea31787bcb868b1fdafe199378842604b7972ac6e81e931178f4c455f5e834cae702716762a2fb8194c1504605c2627c8f7d34dcc5829704634a02efb43556968b7317a3024d467786ba29900c1df47e75f121a4a539c61c81ecdc90c7d69125a274b6bb0012ecad29bc53fdb82fd9b62e27d82323adc61b371dadeedb9d8464d63991741016a718480f6ec77861916008a8274916651648b0e05a7ef712a91f984f6e1046f9a8ba9dc205033cadf566d81e358640a6173ac69718466dc272cd2716c7dac119e833f5ec2c1f09c2b74872e470d8da93c3255b7eeca4e571036998fbd2cfce3b0d8dad4fe897bb5ed37e22976be19adc6c87febd71298d689af8c2d85abe05d923e39b7bacc39bbf56275e" + }, + { /* i=530 cDividendBits=819 cDivisorBits=71 */ + "02bf193f4e377a0de879a28aaefc5638248b204249fa1ecdd796ebe1fcafb4489f9cd5cceaf8e8f6cc2e826f8b5a4c995b22e966b96b4e48e713ef9fe86e25059cbb24bfef829cd5222285df18cdcc7fc787dfe5b32c56c7c4f8ab9505bfb8d065469086a0f35c", + "4dee5e2e78cee51aa1", + "0905a52b59bf304ab037bc0836f491028eb09651f5581bfc7d2cb25d718ee2a064f6a36c705368aecccdd816d94d816757a6de5be1848ec0440d9c14fe843db1f24e03403f890232f4d0235c3582ad7b6c57ab2ef1ba9829bbe4d2314f54", + "3d1006e2fdc56b8788" + }, + { /* i=531 cDividendBits=2873 cDivisorBits=616 */ + "01d911dbeb41e336f9b35afe84c4f0c41357519586ebf9dc751d9d8fb218d08c27ab08a1a202c52961aab9b9ad25e3f76ff4ec2ffecc928425f342dbe65bc4039a79cbf104d3bd302d806371bd6201cf60379434c18d8216bb9d7ee7be561a4718e6a91c564125865b576d4692b2117afc4f627cca8b97f4a8d5f21e26989f7524a1156e808d11cea26f61e0c3e4e4bf64baeb5836f2eed71cde05f474971e48207ae30059e10dc4d1294eb79579417fcfc9993370a579fe148689dc97f2b4ffcdd75bab167b8cf40af757db0307d579795c9ddc8a14d85db81c9aed9b731fa2536a52e28501a3ee5eba94ce031b6da8b5e6825dcdf673527f0a877efb817124604d1469d59a5ff949d86e06412b646de6ffdf836e962b18bcc6290097a066e9e757d0bcdb2efa40d15e1c293db556945540dd55f696aa8d57e1e3bda6d2bcff8d5152e1e97dc0cf2f35ec5cf41726f13fb172a076d60e48545683dc0b62133bb49bce63d19f16a8", + "2d0e424bd3c176f4077b0526d0d7b42b49684c5e22a62795e79a993c7144499d6ec6d61d5bf8625927740fec764698d96f2979bd37b85f1f100a62b3b1a98a623d13450d08552ff5d899563094", + "0a7fea113d7df5acfb78fd8a40744bc09d65b297723ff97534bd35f5d6513b6e508b7450c8221c016e88e39ca2c4d9eeec2691dae29c2c01e6c0c59cd56b28a3070db38204a9468bd62dc8afa3f0ae48602f89e853d175e3d5927553d50f40d485b0d3fdc7a249ed39467d2f8b258efd9e0544d274bff948459b80f42ab5dc7728181d51fb6cb15e7d2abd17aaaef7dbc79c58dc9db6ab23cdeb00347c641f06ba4cd941e631f6588f228e92b7cd10853f75d823971181a0963365dacc7a03e51a59c7b852ed265014520836372d4a03e24898ce15d5c7cf7ae7dc6228304344a487c7146cfb9d8c52be193f153181730674e10650265355c150a794447ca5cf5a1d6f4514b5bd5bc906e92795d0d5b1a050a7834731b226316677", + "1f7792094cad55e1f7a56a735c60549fc25819b6e03e0c405d1051892e6ce4eec4609e6a3ac766ed4421e066a988118834f79f5f677b925d595a44f7049e14979fc2014d7b77ddf9feeedf89dc" + }, + { /* i=532 cDividendBits=1979 cDivisorBits=1405 */ + "02e44907d5d663065d4ba47eca3f3d9e8eca70205719046f8cc4b38806ca6ec1a5e51e7e2d33684da54c14ebd67d3d9f1c9bf0fa3f5957cd4b9f95d42ef542c901d5e5a34bad4b38fd658f0d7103879679b8ebb629d677b0db5610470c15207faa03823c3ea6828cc9f1d76d2aef51d9e45b1862e8a1d0008c14d2478829df17f14f547ee519bf426ba77a7c56efa45d3560665fb09050b888002b9a2c73c41ecc0d8c76859b62c49bbeb670e4ceee4acfa00f7ee022089c612496ac1e629b78bc86448f411243ec0cc3af02680552d7924f995d86711d275bfbf1d3dcf9cbbb29505a9bc82b7097d59ad69ebf36ff4ee08e01995c5b6365", + "06bb94d22adb9b144368c799bd14a5e735378f59e459979c9cd192e23180f4555e064acd99d1e792ee9e9a0713a0c58d94db95c2e98b5441ad2ea6eebebda7c28f9ba873b13a6f185f98d8a00007b96d92a0707049ed44b36adbf00d7f929f0ad7b1f96ff183b0126801c67288b050e0c534bc7fea078d97a320772ea7bf7b6ec8dde5f9051d0f316c72f83ab71ba2cfd6dd8574361033848e4a1a7f1ee7c47ae8a2527e30c632ed71d97f03b440a21e", + "6df3fb5275b43121e1d99b2f2b1b87cf984afcbed3e2024bcbcfedc1bf66e7f2dc6250905c5870e8bbc43942584b2ac25c3d379321c9a606bc7fd4966a5a1b35fb91dd63b4bb5fae", + "0372334d381d29aaf1a1ba49d611ef5f1675f3f057c59290ec0006aee25d94391d85003cf01f4a23f62a5eb38534c6875d740363e24a41d05b5dc04773d1d7a8420ba8bf5afde19bd785abf510fcf690ed070e3b5dcd1238db09e71379a549f453b7d45de17ab8840d4a436fbe17e0da5a8aa861c3547693fb633cde6d72cd63cca42f7605db259e9164b54e466dc6ebbc5edca986115145cb4d93a5370b20909517e41ffa7daaada8349863585a1101" + }, + { /* i=533 cDividendBits=3082 cDivisorBits=1286 */ + "026863108584a4018d21673826125e4c308b2dda990fd80b38a05c6e6bc2b560f8bc8c6ed14bd085c7974c2046fcca0006bab4799bd36ca0b0f3a9f0ba828fd03cebf755432dc5711e8a15387582961d447d0ddaefdeb31a3823abf4f74d52ca0334bf15724d9694961e3db80ea501f28b5d2983e4a13ae068cc03cc2e53d9983b213f9a7836bce3f45beeb9b0037b4d67d9846d2a7ab8b59649358b3a4613bd38b270209654421a49b8b94ef7b7337612fc059ad80e51f7fe3327b4069fb2c3dc468ed1d561a40f790852776cef53238295c0a14f299b015633bf26a48dc6101afe5a790e54210bbeea4dd02bcd99c8ae2adb4a321352907c67579d0ff679665d7f57f52ce136205fa7c05870a54182a82c81e263fb97327167c2430d29d156de95a4f6e924d79b5150f9f3b973cdd7704e68f4576cd4f07400ecb6c33a212d9945f8d2c7980fab2502018aa1322bea231b94b50cc9306eabed59b9965021bf2d3f4d8bea81ebc7b29118e572ca5bb0003312b385d6e2b635589c99e976f1736a8e", + "3f6b848cd85d8916f7ac5c334dffdf9fb4c7ed117e10db1154f57b02a2498716349b7409fbb4890b0ab7381bd9ab42db61fc39b41799a5a9f305123eb214b5d4b686969155fc0d4e502ddbff848917f3a7a9f06595178d81a160903b474e646017a29ec7dfa20cd78d48fe9fc48d68f1f22640ac68e21fa05d3d7945ea248737f553887c4bd4931625df68c1d7db238a50908565450fda1707642e8da2d7f16650", + "09b818ba91dbb6cc617d23489379657da0d4f8975eb30f73b0c5efc126737693635ed09d73af07dc7c310114f1fa0f8b76e0b18b04bcbedcd255fe2b5a0c4473723451f35c15e24b1eed6117a3f58b3d0babef3ff3615deacc7cd2b312c3315b5930e31afe33bf72deb5448cd7e17ee5cbf153d3df3a5e83a86a9595d70f763f8dc3745e80b10100bc9e676fde7319875397bf1a0adf3a702a9fb3bf2ba6faca81520b31710b8c042231860c59b5ca3e89ec0f7d03bb8388d56015f9675c301af7847c7db0c2cb2daaa51dd27c5b6835362bc1f13ed61cfcf277c09af8b4507d26", + "0f1c835a66653c8b092d6cd3482a7c9eaa69ad3d29229bcb0f4fc6fba1da0f55aa023988e948bff649e49b729f6659c345d8acd867839b49127530fe422801e5212e946ffc00e25372d0fd3c5bb65cbe9d65166f769b3766904c5c5a80f6ea7e74c745fc8878c0fad1f4674fcc6ed1277c7f10fcd8b058d7255757d426bbd37615dce88abae7248e581e74000e2f213e31bfa23e82d7de554dea67eaf9cba92aae" + }, + { /* i=534 cDividendBits=2535 cDivisorBits=2225 */ + "2e3b63358de252238c7024c9a2f468bc834554fa1a88e812922036556ebc54f8937804bf7b86f46722cf18179cf6729bba497f3b9bca65d58cf6d48cd5476f298d4477e49a08399de131de10d2deca0b21ff45f2379adc6eda91dd764871dac3b808e05470e84aa462e861ff2df13aa7323b6829dcafca87e936c1ae9120a34ecc854da335c97bb975907775dbcecb2e775e213b29f41f6e751640adca915f644d661fc3035bd8372d2229ae688073a3ad4821729a0ee0d96a7e2c26f19cbe1172085601b8af321aeb12a1a4bfd0af4c8c7ba08fba75d5ca05f31bcd08045f91bc9e120e2f026eff2f44108f928f9bd7cb6449e27fdf9377175ea045afdd8a802b31eefcb4a94d5b4e8c252d957480002dd7f5f9b10b321785584cac416c3a70d82a9317c7273e39757bb01617843c2cccfb56771507744d55c3456dde", + "1cd7578536d4e2837ba78def3ff0e00249dfa2dc874283bba22f3db6725a1b544dbe42ba0a6f0ab423df49cba844197bea726dd3563b1d1082b1da65b0aebe41c134dd573c60c52734258fd8ef06ed0b8866cd9836e6d2c58ae83fec1d014bac6a374641ebf8ced9c977abce697e46f841512cfd6c6732912ef8e7020d7b39141842766fe8333b28f8e4ee5d43543f7f77c18a6e77af6e40b094da0c56447ad5b67b2b62b98de2067dcf371b274f867f90d0e6a2c3aa7c8f115561afef19ced0f1a807b07d1aa79f21ba72bd118980c33a090a007f749ab50320bb481e9cb01bd2e05f3cedb6f5272f742d1f5b18b452d0018258763eadeac230d3f64e8525b54f05fd5606fa0eff95e768c7f3732110b09a13c275b4", + "019a5d3c72d76538b91def81ce8b1e051b011a557b6dc8e6cfef4ba840b7021446126e289357cd7c", + "0c10f7adc628ba0aaf8a151df20b377c1d5e117c25751b8a2c267619e590afc15fc6a9eb4688f02dc28d2d97e5c0cf31e9536b2fe4b523fc49baec1bd22b4f47fd1cd4af875512e56a92bcfbce14090a231cffccba4c06fd268688f654e3cece7da80daba395fb78561cb95c4672709a83291e2528dffbebb17b45911e5e25c861557ee29b88bfd1ccde9516828e302c92a05121e76a2cd3d6ec7a3729db0cbf62a47afa7dc340bb1318c1b4b9c74cf09d528885c87f20536ffe018391a3af695f8bcc8f90e12b976459431751a975cb0e0af1269f7911e5ca13e012b08510611f20ef36dd27973d54f76e4e780763ff37d5f1ddfeab04d122d182966f595eb5aaad0fa8e28a06b0b7a62de9914604a044151ca746ae" + }, + { /* i=535 cDividendBits=2102 cDivisorBits=753 */ + "10da0cf10d9577872a8f69085fbf7ef06d29e99f57fa2e306e47335dd90a23f4fe66c2f4a8648b80211d97552994ccda64e814f874da03c2aa6330811af335c9a1f261a49fb8c1061bb07a985f65baecf26ac341a3cd592eb92ab4759f81c7ffcf7efbf7b0133bfd5cbe04ec97a9b62c7ecf8f4ff472435fe008713b40b7d33286a60ce6d66797bff9b8f92a31d96ecd8cd454a0e37c7927651d2c6d9826d1be06c0e5fdaf717e1e94a47d185baf3dd819576dc5664b3605794314b3d4f30f9fb3036941903eaa62dea828ea88d5cca703aa1613d4d2982f7a0cf8dfceb3121a3a68af302d02d08b40bbf54fbf22fff3fc6dd2fc0cbff8e44e66bb475f87552b597ca355a935e2", + "01b24ad898b61775cfaf541504587b4560e837b5d4d1f354c52f08a3741a63902dfbf7d09ab285ce3c3f699c4a8cf8f3fd325c11a3627fda9addfa2d4b2b90ce44d3e77bbe8cbcf2cbb0b1942d366eebc2901535ac8803e2a7a764c9637e30", + "09eefaf5f08934c017b93defaeb1880a873c06d588962f3de95a68c3d1c0570f0ffcbbf624828a4f9a4614f6cc084c0f0c1436346a52577e1a3e826c60efaf692e8b63854c6e333f605da5dcba2625b3cf61211f739c48f68d69ad554770726b452f424527f15678450e3d4469ee67758046c2d98dd8a5b07c0d054995eb452523193917e9323dfd99f563d9cf1fca5cbfa9df7c20ce9c8af8e85a8f45424b9876b4dd59484f56ae07", + "6d8ce20557e32c6baa101fb0196445b3e194ad2c51038b3e6223c7f0b8dda74547d16dd33c8393a0933376c233c9577ae0c17ab3216d27d001b06350f065d1e801b63e5d137a40bf01ea3bc9f488438a24c40027b217c4b1df23000c2292" + }, + { /* i=536 cDividendBits=1082 cDivisorBits=164 */ + "02c286f3465ba205523411d1c709ea44bd097cb48411556348f17309a503931446c14662dd829d22b466c55a308d39e41bf22ab0a170e68ce5b48f176c90370a2c925c7b3e9bedb657c944f022e9d56de81e8200192c8be23c63e1bca2ec2dc659defb22ca27187b78cae9c80bc4843b70bf79e6197737c1577a4dd4362b6b5293118dd9e19c367c", + "062e994f8697d26137b0f71e76879316875d9a17b9", + "72498c6e2470dc4da1c7c8c5b8d3e9ea9f3620412e3320fe1eb28b63e9d162868bf2fa2e1fd5b306242cf04629a124e3a78e3aa125f7901ab5b11240289fc5a927d80479b9167bacb61e9a457808afacfa455adf354fb6072a1e2b176002cc7448ed3aeb1a43cf46c03230646d2ffe0ff018ec", + "062e840e2db8f04f3562e2ac1238f4cfe110e4fff0" + }, + { /* i=537 cDividendBits=3939 cDivisorBits=3154 */ + "02c032e122b4f962959a96bfeb8c704b79db8de7c09479c96199942e2dff8638e74dc8c6a90e4298210c504efcd04e1c7d6b3eb0fb7fcb2076019e233b4ee2cdc251e12c15c91b91298d27803f0eb19d9c67c12e5d87c3c7f9a0f3c7ff6b255b1685eb0fa97e9c35b6bf56f07238fddab1acb5e1be0ba25e2a62ac54fb826e6b2d21805063c41e225a4bda2be7da511ab082e4a37e484a8263030860483ac2d3518de357517781662b658679364ee9a81fcfe21f4c2f90b6755e106670d0454c858884338dc833f29a9899e28f06151eb358ea9171b1a59f1cfe6363d85798e1e5daa70dcc89d7d3c9431f5c770cad9d97cb41e96c734c79bb5ab038c4d9f0c1253c41d53b6e073662be6ec170680d61284b0b2fc4dc87774ff430f1b100cb4b95602fd820c954e36b1b8544bb6191965c8e4d0ff2eb7e8e2bf82e72248dca39a086062cec66a30f37981790870b62faba5f2a7dc9cb23b7782f3927c4c1f1a3212231c3d018d86507a04c230a10ae33887e071fbd1bbac3c29fc1e2a17e4ff8a55406604c72f890a7ec89b02729667950ae383c5760fe42d63fbfb384fc16b7a9026a1ac26e7ce07c5fabc6f99bed3dffd6bbc5dc0c4654365270d0ea786f22db1ff626778b65c458939039e3c8db2be26dc5cf1685a3dec2cd3ca2fcab7481440396ee1c8ff5b8c2a885d617", + "030eaa6aae53b246ac942a782086f1c3abe4820fd9337708ddb9249d14e217373a38166307dfb32a34f702c84ddd416addce0a36d5dd3629d2bff371a5759792771dd4324162e63bdf67a39621a0eef7a2c678c829ae0b4d2e51e021ba2edd99b7fc7195c13c88ed049afe97168330117ba9e9fcc5da371603f9fddb5d102aff0b2293c19cb3240b1ad1d492b7fa0501a7c3be7111fb5ea2c4da115061df77ab0672bcf15d23250215286b40c44cfdd5b8c770ea6b0c961aad48022f4a64105e0eb451e12a6e30fbdfde25c38baa6a621631b04d57aaf1796c41085be4418879acf84d09fc43eb416f1e37e4f15fb2fde3c1a0e730a77190628643dfaa3ec4e5f4918417f2f4300ae23b49c2a13c8d1bb8577036f35ee8e3e7f05cc055bb201304fdb62dbaf45fe7a8e8a15a1807e2de7bd268e9c0bce47de6a565dba449df773907f3508cf0f2614714ebfa15d2f45f4b51a69dab4ed95c7f5ad4a7782ebe7d4d5b2b86692f4981fd243934d51ea1316bad32e0ea9f7fd36d1400fb814784d3b60cb0f453ff1bae7e0305", + "e6559f31fc30baa0e6499ce1a33619952002843b20d5ce7d966dd190fba9c702e34935092ef3a200c028f6c4bb8e23b0c17e6aca93cfcd0ee9fbb6b141109bedaabc4625a514484acfb54a88014a6e8cfcf0981291fdd543a3bd70e9af5f588ae673", + "4af9f3e9d09e207d5d42099eea5d28f46e64a7165582883447b89c88b01cc24f5ebef2e8a5048102056c05ec88a0a21e9d77b5b80408ae40f9fdbf42b26b4a3eb8ec38459d466c37730cf37e9c1f5f54cda22f002d265dcfcca785da08816b30a2506d5beddec03d20660c752cea6d26062f816668254ae8e0843127b8a1f0d502b21005d181e4178efe75b4cea9e7b4832857e63226491a877d30717ebf06b704aec3c3671350cc1531b4cd94b8d8807b1343555801fc8503535e75449514e0e2f4b73753011bacb3534ac1123c62f317ddc22a6c0c57f760c2ae7c3315a945d2c8e058b18a71e49d04e67b2d0369bcd9073507a1f6a927d2546ce50c6494534759804f36cd77391f4b3f9df6e50b9885346b178c3e0883936b9af962b7faea25817633173e04d7045744ab7454d3597a03fc2a8aaba5386a4ca24f71af19b1384f5c6fef0bf0877a41696a502c420d035e1161f5752f4214b34d9fa0a17a556cbbfab44cf3b14ac5d8ab352fa1bab00d2472b064602de99010ae183d2b48abb6e079bf55bbb681fcd8" + }, + { /* i=538 cDividendBits=3359 cDivisorBits=2220 */ + "7f0aa3d4b0ee997c2cd22cbf5461a3ef8afcbdd08cc99cb9737747f871c04ebb1e3cdb93aa98e9a729746138fdea9872954001b900d61af4bc6ec62a239ac7bbdb19039098760491be2b0a1dd5ba272f0d07eef7b44f15840c590a301445e8b02e629d8bbf40c552d8a7468895c806a09f1e0929c33c5ce85dcd2c8e7bd4439b5f7a7665d569c617ede38c77b3ad713b6639aa5e02bb995939f378a39672b052562d2bdc0f4edae8a66447e6345da6c498774f000e3a2413bd616b8094ac38d74c8c6219d4e6e48d10ed06075bfda580c9215da4b85eab877064145d3db917f600c0b74d82a0fd1db453babb802b6c633b110ae048a647856404025608351a32703e2dfdd6fc5ba4dd0c424cf2737ae26a388034a8245c67a2c370f0eb1306523e32b8d61fa483ad81b53cd64ac4beff318eecd02453a49980cf0dcdb8b60718b9a286e815e6f11a87307ddf06f7ade8275c5932e73f57285cdc6cb879f8997c28c011cf72c7d2bfadece0e40502002cf8b58d4c6d585a804b010df42625d0e5a8843caf8e14386c2609b9746a452b59aee6d0f50c547207f5c89e136a99554626ba4cf0", + "0d08cebde725214e800307cd5ab0a08eee92c10a68a98ca2c30b3d971fbd1cb8879a765f9ef386e9c5b6e573dcc12cf04e6285cb542304510095d09726087205aabdc9cebf6ccde572054ae223f8097c4b83ee82931ae622fd519d525f8337d2395fa37a97b5170d539f6d7749077ec82b2783f2d073a5fe129298b77710687b0b08ff5ce073034a1813ae39b4b8c4f87824debb91aa88bfa6d2e26f46b8ceb49d2d8cfada43cdd0b60bd1cc18d3c3d7aaf6cce8d4d04e5562fdbd6d3190ec40ca28b405acdf730afe64374f3a57b148c5be7e34a7f25dfd1e010dcc7ea6f38ad3dd96ba2aba88d5584bca77822dc5c904d3980e828f791a7322a8644aede9e0cbe8cde0a02e17a3aae068b18057c70331d130cbbb68", + "09bf235c57608fabc5dd006975cf643ccb5b1202dc6ddde2b495c7a136c7371bedf16a122d2b0ef5ecfb09786cd14f833d87120b56d64f91cc6d957169487b0a03f0f4b6066b1660d032a053b606dd7dd7780dbf1684737c1cc3e84588123353a9d0418d511820b3a9df8227419904f1b497d73565dc43ebaaf3c26fdaa381f6d53af991474de2b04be29987170a72", + "0465051dc7fef82479a9bcbbe49eaefb32c52ec81be07d0c3b562d6424698771f13aefa27b98d8345459d262f5def4e6a9288ddd094c200325917519a8febf352dac60fce00253daf5002c82e9ea590c04ecc9915ce490a0ee6c5458c7cf876ccfa4f15f4909148ec21128d9735665cb086b2af050765670d22fe8a23ce7217f7543442f572602c34b3048fde0d84d0b2a0c0e7e0d74e5cbbd0c9887be54486e81f34e5c0b1cdbfc673ff84e6a03817884a39e307061420dda2ab138c00ecda1148910399e91b3932969aedeb54e23c9c4347eff66588ae89c8859b76422cca24d42a7f656ebadab7a2fca4e88bbce27e002f99c195fe15f641de1ba882eeeea3994b15cb9edc6dd34e22c19ef36740756ecc856c8a0" + }, + { /* i=539 cDividendBits=3203 cDivisorBits=2656 */ + "0393bc18d96e028bc3d6eb1ff2e136d95b3119ac7b294a424eea6485a5abae9e4bf04e568b9e6b4238996c6b4621f2347de4d143de6529857066c1e7e1c975bcb76d1b21faeef7ebd66799dc49a42eea375ae04685aaf136c5df448d253332713e23b417a5aee982afd2778f26489b849c5dfa8431e6777cc4ecae17464528c6a01fc347dc17b947580b4555b607aedcb63a320500f7e964c2f730b435916876fda712118450fa13625df1f0f5df370111c970a5a575298d482f674a9c978ca6bc6e84625c3bb93cfe009dba144ab57a014519dc275d8c1404e39a518c5bbf1942fc7fac40ec2449c3711223682a94a40c2510e1566374217e5efa452e64440cb14df3e560ee5b6ea364f10add2fca387be787ac6ed6ca47f664ea48862f28d09e0d434d9abc56279d072f1e85c34b61d9b4489414e0bb0cc892e45ea3e228f56960dcf39a9d5d1d4275ed70729467eab82a74f52ae0d938d5af7992b7463c98e94d22085f134cc7c90887c338fc03c07639d2d0b4b748c122064d3e86db1c22454aeb18364dcdfff46b0e128259c63b06", + "5471d3779fd7d7e8de4118017aa098d313e76870dbf2e1a01a86ed13432e28ccd5b786a6b15ead404492e78d358f30c1befcbe485e3488df1027a4d677fe3119543d51e5f51fe0bec0bbbd66236f74ab647cbf1ec81a6245f6292f2c336d9d27a453885e4c63ac0cb9b763e60ddea85141033ffe04468a9351a72d72005cea2c1f02a1e188f19572e87ffd6edcd6b78a055cf0f3ea7543ba8f4c60e70d88f8ba1bdda35e5a5c2a47476cdd97ad60564d13b8b9b76d8cec7efdb8b78ca55dc12c386045d494aab47b2d1c0b5c237e9efc265ccb992a75097c2482b4db92351f3465d757ccb85421ef52f5668e614fd377e485be2919a559b94eae429aa98ecce99979711b2eb2cc195c94353b25f1ea705b14881989861b151a01e0c17aab4ccb18672473be3fc509aace2d6ebb805828ceae9055d774d298a201c8e1372874f4feb7115fa5afd459cace3b2d", + "0ad81db26d999376e87e17311b7a3b9a936f905fe9069757d153b76ebc0e12fd885bf577d9bd505664f01d6d31fff21134f7874e526b0c0ab2ac0dc9d4de2061fff687c7d3", + "24c470c6d57f37405994b5cd24341baf6bc6e9a3298d2e351dd44f8ef30f28cfa4dab443d5b75dcaebdcbe42e350eb86004b29d7f823d3593340f16720ea5c90939063d289d8ce25a061163b8383b95878db1b66df616576344468ede1a1f3296a5e2a4042afb4d274c1ebaf458eee9ceef2460f0191246b650da159e36b06a72ca389a3b9fe7ac115b357cf1f4156d50ca80f9125796e88698a98764deec66898b7cda708d31381d5f59577353199b588a3e465660683364d4682558a4afb03c0df0b229365957e8c385568c8450edf88524ae7adc20b755d0984ef27032b54d5d3d0ba4ed3965ec8d9763c07aab85681624a72c8270e82e9bfe1d0df2ad86b66fd1116af7f6c8ca3d210b4d9839c85dedfd1c4048c9260e7ab986345d4c22225f74200f0722dc4286bb36960a06296c31ccf8a7c3decbb71d30b790d2628c0cc86ebe6555b21686f1079ef" + }, + { /* i=540 cDividendBits=744 cDivisorBits=598 */ + "f8e7f545de170157649e26b0998fc63c674fc75e454fa696dd4460807b251b34020614f358e63a2859cab1e8d4ef8d195c0236d9ddc3ff4d81b01aebc1d7a9991a482b29c43e006411ab10ed63f04fd09b7e1914d8c5db1e4ab8116638", + "3db48abc6791d49e2f03d110d02dfdb4290c11d0ac7e160c1adfce30f58cb7422b2f581aa404247b732e48b887b5a329245a94788f61afef79e50ffd3a794f3d3d117ac9e7387300524efd", + "0408a690e38a0f2118f47b48d874df2d38a7b9", + "3375549c74be3ad96f7aa938caac87ade1e06407c893dfd633828a386571c50c71ae20df6550c963176f7bdabcec8cdc8cbde89668648d2016b18ac8dab143bf8bbe5b16c451b30ab74663" + }, + { /* i=541 cDividendBits=288 cDivisorBits=1 */ + "bc61e1ccab1f53cd52b3ce9cdc369bb557ee81c081e492dbea071634fb9eb5919758e080", + "01", + "bc61e1ccab1f53cd52b3ce9cdc369bb557ee81c081e492dbea071634fb9eb5919758e080", + "00" + }, + { /* i=542 cDividendBits=414 cDivisorBits=29 */ + "257bc7124c6d7524c55ab3abd2831d6b42968cbb87e12ecdb856d4baa7d180337aeec034df9d0c4036354ae453910713917b3b62", + "1c779322", + "0151154d1f8607699809b596caaa0f34dec5fc1dd7b6ba9fc94242386a1e2e1e874ca7f8239dd4c8f3b046b1c63f778fc5", + "1b790438" + }, + { /* i=543 cDividendBits=2396 cDivisorBits=2075 */ + "0ea0041aca8b2eeaee62a0aed6a8c7a718200441f60aee230a14d7e1ec40d92d6c2376e184320e4ef9c86838bfc57d3042b0964dbf3e45036b9500bdc940853e8f732bcdab2cf894cfc3cee43e6688189b77670dc00c5b6a999f337e71674adf0f3bf2db345af09c31eda2eb58a3447d7b02b66776dfaf8fdab85c4c9abded34097b3057304a45f7687413772cd2fb18876e8d709572d37f436aa8658d3cf3a045974d9f0705ac8ff8a55db30ada000f0ea16578c82bb00b21220c1db2237ff8377f054663a3474b7625ffb1998b3cba79b98f43ff5aee2b65ad6fe1bff374543e8313a9b3e907522f6e41464c0e2a455d98e4b2b20ac0aca96349c4b71d3506d14919cad131433744dda447433641b87ce2f51945fdbbe6658b597f4efacf5d6da3adf6090234fd9ce7918e", + "c181af295222fd4c8278a735922bbe69d869f4edd0da58df68664d962d9445b39e526b1a6a38783b8f68ce86ad2f2843df6366d4865a9fdf947f3bbed347f0bc1b63b087ace021841d7872d5f526ca42efe2d8848702386f69643a23f6ca63116f97370cbdd66645a39838717d3fb91f0b390c2ce4a829db033999ed2c8d1e38738aeef20f7a4d7b318af05ad34db305cbb1528b687c1d916bcfc269ef498ac08799624ccd9a6b701449823e1579b4e21f378e7fb38645646d9605e691016be950aa2f304ab6c8ae595cadafd492aa5c52ef9e5dd9168d997630f9c2892e11df12e9509a91a26fbb567932931baf083268a71c17169f8f18a4d947aab0d9c6a821f80e", + "135927b6a99a400dc164a4a2e7f5be67e38dcaa3ec9ff1a79232574f4e65695c55d820b8abe2887a5c", + "54d4d4c8f760a9d787efb9c01ae430c5441f6f6e8716bcb33789af4245abd3e6678fba357cdd10d1db476cd970a0107bb7e438ef082f543997ed6130ca24de81b8a239fb4951c99534359af1f30efe3fa367cce47df54187ef1850e3528ab2eaf352659bfdb6e553649202af08e3a14959c5e524640876e8874123f76705237acd78be2f40f0257d83fa0843b8a5befe1b74e31c659290c363840cf26d7fc3429ee3a35dcf2f6d73428441b997aac37fc348f0b4a06ee95c035153f21c3bf4c4e0e7e3b44416f0ed3a365b13a409d3c6b2ada21609cebae8ada373f1d0618ee8d02e990e48dc5badd8904869daca36fe265a4de3517cf20c924febccf93516dd0bc086" + }, + { /* i=544 cDividendBits=1024 cDivisorBits=862 */ + "bacb5ee525ec6641650aa4c496cb84c88c21d1dc12b2eb3b050748fda5190a8cf48eb42a50744e8d3d2537df021e69b82a0eff63a709dab2dde8b5309474b1fd6ec6741289ffb30a0d1e882e48d672687fd5be19144986d79342571cd6d34d10f343dd7566352d6d1402f116ef3af6ad7e11efd60edf1ed7d74c109c88fd7c51", + "37270bc279b1a523dab03f8cd96d33f011924a2e96b31824b5bf2941c548c163b18945549525eeb5e3d712d34260bb1118d6eec89b6c471df2ea523e33e9c468525c7a50f2b5584145174b80019970c9e63a7c2b62517ab305489bd2359c9aab801cb87030c34e31de06323a", + "036309e6abd6e4afd800ebb78226e633a8f2bf5fc3", + "088e3ec3ee1ab55aa6cc1213d75c30d7242baf582cc4189642139a4f5361b712a65945eca6208c23b55f37fde74370ce853db0249c50abe12a9d9504a3097bb1b8dd994e6f0120bcdc1772ecdfda485041d2cbe86f6d588f3feced25eca05ccd4df36139113df911d05bb423" + }, + { /* i=545 cDividendBits=1158 cDivisorBits=830 */ + "055868a1f81db4358bb18c49675cf05fd458dcb542370f12790c4b4f647e0b984c09f0f2b97a01c0c744e5cee57f31b40910054b76824594692c32fa8c10b4b12def9a4cfe2987d8ae545248c87950710d2d7a9ea509e4cd45e31c42ecf6f336ce32027ffb30a77102c97c64982f4d111748345b9c475951e0fd693500310d393d2404490688e29e689fe61a668ff8ebb4", + "35dcb9a88d6d289399f6341e89d43d5f3cb5f2583f75d8fa753b89949f05238646716cbf234e2f20b0b808d8334f661962a1963a49ac60c0d6e67365edc524c0fe9555e1be62dfcc10f63d9f5b3f165d274ffe27bb297ebfd9f7599df5d74c51d028b02305612ac7", + "1967ddeee42ce54ef98923ccfa3af3f79072e940fbfc33e1a5a54a645ce69c70d5bc195c3e473eafcd", + "0c74719cd785df96f608f4191c2be531ea9252074067038a6929246513f097057311cd5c4b74bc5a333f53a317dcdfeb76a2c4212a1ab87d26782a2629685058f5bbf8beea2edbe85ac332c55b3df4cbcc26b2a563e744613d93a392856919003598fd1647b9a159" + }, + { /* i=546 cDividendBits=2624 cDivisorBits=1728 */ + "599134dac479f03e101d46ce2cab65c2835d7737ff2f65ece3a1e0a8e91ee9f36ee0abe87780d29df8e882a1e18c0f47c97b92db6e9c698ee8c695ede9507582cecb71e8647ae368bb8e94996591d169e3d71d9bff09d4889bb45571043f4488c55f4964145f447b0001475feab70d06edf25a265c4b43f6c4224ce6ca1bbcd3ad2b3f5b9e395bd3518957cae3b0e001ff589c549f01e5880df3910abff16ef418c0cad5f7b2b3f1184302885ff7ac2977bbd7dac3d08c37aa04f0ca173d9f0f743f94f14c25b619644c310d1f072c3c4760841dd358f3ef4fe0f17b7ae13cfe0f15a60a09a8f5580d7c5768c6a180e824a1ff3c297954250e8fcbc2c49e5c877a3b7d33a73a18daabf0d04e0b97ffd6f5404a7cae4bbcb98539f267c5d7a894931f2922ae6dd1055e09fb1c1e719b6b7b0da2e0eaf851a6664bb370157092eb4f465cd6ed87e146", + "70215cb949a48da517536c903d4bcc98619d73785ab6ed05f7b794ee2dc057a043ef1d75cfd64b80e443ef439f77d928ff263e2ab85261a189290c4b5f8f6e63ca6d7b4f88c12441e89e6953afac6611c78f77ec2b24d2729bfceadd022c0705b80af401c17efae82915012fa1c63eae525fa28ba0bb30176bd56a87cd76677927bebfccad9b1178fb694580c4519eb33ecc049adbe5ff2f48d9db8bf98e6a2a64071d5330f40fb86e34e826d4a2ebb75b0a287968acf9de34a88cde014ec71b8c0b7babf74e536c7317918b774138e5a91f7fcca1442bb7", + "cc7cb3eadf164bb9caa5148d93c3e49fbbe86d851788b95602aafd7215b09fb71b5c6dc11963487c6028bba0dc701cbed19cd6b0a2dab5a78dfcee2c7319548e32f1a51549e1b2e7f4d689eaea4f87c9a0dbf97d98a93f87d1f8f5f3b5cb9bc321c82c957b355609e821500ee789442e", + "39fa650348e798a9ea40e287504dccc8aeefd7b9574d70aaba3b7fb2a49be472461456a3672d5e52fdb68793e0114282c4e492339aba6e12d63db575aab7a1b25dd3539da39fd57cf4e97c0ac2d750baf18d7650d7a9ca8dd1eba475f95f146fd1c897a9cfd1a74078d26bb1c14b97bcb30f9e0e5c57d8f96c07e25012f3f4fa3da4c309e490b1f04ae2c9e3d4eac76c132daf55f057cce77272ab5d196f02798d69100f0ed1b4bb4ea512973e7df157e3d3ee83a30222c1b8537cb7b3b22d6b1afa5672e558e8dcbae3542b16f0e620e9a9a64c51bc6a64" + }, + { /* i=547 cDividendBits=435 cDivisorBits=18 */ + "056ef3a2dfed6c32fef0a674226b7e9b31923b9aa1ea7e8888a0ed11be39da2581b8529a044bb24084859270502ba3e137e0b840958339", + "1e77", + "2da85896fdc8238c8db15dea7b137c264271e387663317bff260148a3312068c7b09a32c17e2ecf221dc6eb1fb321e91259ba15a48", + "1bc1" + }, + { /* i=548 cDividendBits=3942 cDivisorBits=1241 */ + "16022471ab2ac87dade5e7ea016b01bb51a4406ab79589687425e93eb957792099c3bfb00da022f3ce8a4f6669944f0e8d681c1e2114bfeba00d75e7e561cd94be006ef9d854ae7c061e16c03c40ba22663b12d4cf53184e249c65db1acdd79be21668dae8a7d7b5ace630eaa72704f9e55cbf14eab8810a2ab970c490cd4e467290cc8901eaed1382f568aa511d3e5947fb7b5f9c33b17956f1055975c821e649b3795ddc7d064b02a515201716151421cf6dccb8c13c6f6a5f01844f73498bf10dedd1433b7b1ada82938d5a6cef2128adbdbcacffe9a2aa3ef68631a3f240ff141be1ed3a6d2f9a863586bdeb04125fc185cbc162ab87164759ac8cb97a53a24bfa04126be825391ca19fe8c14cec8ac38a281b4a1d0c493cf558825ab584ccc651c5e04becb00094dcd6d92a6559d6e77ae4991c7d7a592c0368be42f6a0894f86dfb03a7580f9c1025fc084bf6446a48d52c67d0e0f81b01cd69daed91b4549707e91964bdc2f3fe4fcd6fb46d600c4bbea06b1206e6bece142c89e4d781b4377fa9db2fb408d4dd3b180e178d1f64f2a3d27ccbde2c4a0807a8abea77dfdefdab485e198e7d622091caf84575fb9f8e9ab27308b7b1fe6a6d1c0f0830f1ae0911f837ea7b05fd23c0d21e8938874cd2ebe020efed9bfb4f700095e1cba80e215cda5922e3d176d1b8f21", + "a99ce4dd50ff21d7e130f83256de33670c495a5cbbf8e7c212ec4e020ed6883fdcd63e0c28fca67d7e44f6e929f320d7a63698d8d12d0c42f22d1163057a17ff9f5abc14939dfddf267d3ee8dade150fb4399dd755916efcccd8daf423087a516bca55de417b163f79bca13a0fd6f6ebb168e6bbbe57016af84e4f166a58069ad4dce4d1a158e80f936552a295b5c27580ec666629d90591862b8d", + "2137b87d9405fd0c58e7046786657950856711e9f6e3e3eef93c4e89c3148802191374e98b87ff8c1a9e0abc7c2f9f6aead6110115f5e6dd7c990639e652050b365bc32b8a99abd4e499fdac3096c10426f7df2909f62477d01d99b3baf702fd797767a3cd0dac35c2c47fb8a8376fce515c06dd71885f19fc2e3902631255ea026f2d7ff58b59431bafd34ad225050301a2f9225501ce0b2e65b983bc2c5fbb36d0a08665b5f866a8f09c67e857453cfb7bb5fa643cc58d63567a10fbbb43b9d78acbfa6c3678b6775efdcc63077a4230b8e02d4437a318e2cf223712a38de4fff6c8966c9e86b627c324a8c09961bdf9f4fd1014165471952b7870c974a00176c0f6c117ba0af2a432cbfac93385654ccda7ef2a5531e140d52a20fdd0b3e687f6c77b53c9dab7ad2ba47fbbee050a73920b62e67c0dbbec87236c998837be257979a226c67583b5fbbc250ae9df4bb018", + "6edf84d02c282378aa450e3984053fb635430225362bd62f3f92caf9ce4860b39fabaf61162da944a56431318e5a1e4d089faacf77eda9cc28c2f8b96d7a7fe13349361ca5ec60777624ab0df27252f554aba320963c53c857e461080ab52e722bc99028ca36c0be3b46115e5ec9d4b7d18c1cc2fdf7229c94b7e2498f52d1e72b7dad1d01497a3a02393b2e187d366dbf2921427668f1f54789e9" + }, + { /* i=549 cDividendBits=1133 cDivisorBits=412 */ + "0df7d30004856073f0f2bc14ba959d1612f3de9245b19c0eb50f4126297764500646a0f0d9f2cc0d02ef79e5277d0af6cd48f34e147f59a9b9cf2ec5333ebba4ff517c6203aa58782f737d9052f5fcbc8446a355d046ab496d9edb8bbc05ea667ec7a9d9a28157f5ccb51f5b23209f776a33d3f3d60bc2632ad01f2fde0de8341fa9a5d33cbcfc4c7f39a1dfbfcc", + "0cbcb42f23bd65c3fc93210008e7044b3d982ad5e4f27f318fba54fa3a6b5b92770e0d896488924c8918ce31981e3b2ddb2e8eb9", + "0118bd84cba27d575aa373e9b1796553436abf9bef55ede48549cc285f7078583316db071b37d46d69cae6fc3c56cf7704656d15079082dc2fc5b2036b60d80939353c41cf0c7571d08e02dccf6f6471b3ba7113915d3ae06588c8", + "0c130555f9e9d3eeead77947549c19eab2e5ff2618372dafb110275b815e083098e4f78ca7e90682380b40d5782f25cb7ab0f744" + }, + { /* i=550 cDividendBits=2488 cDivisorBits=1926 */ + "9a9fec21733b3c5daa8650bb2266f73e6beeb94dd70a022245f9ee4c5ff619ed658d589848f26d3227e0549088765d7294689334abeebb5b9fee2d07c787f6a17995131b556ff7378bfc322b530b8d95ac7276306db7e7dec8b6ad89614104fd35f433311979cc845420c385063bbd4206d3ba2538ec420eedda6f0e51d16d7ac683f00d01815fdbbc5d14189a765510d851715143190cda8181f14cf64a88bd575dc1a0b0124ee3cf09f3533c81145ce4e41b482d94cbd21d575b01c9c0a24be5d0d11b117df59e6e82102351265416e28638169dcc453218dfb3ac5c5ba8d38dd8cd0502ed3353d975f5897c51f5956418f70a02088626f3ff76fd44bf8c7038098472f71626817c40c69f3bb93efe94e13c4191dcc938fa4db218ffc34546c8ed00e5c6892dc2e1f3c03706ae678ea79105ba52e82f", + "3523ab43d347e4750832c34ef137697631c5b78c655409b0a62fd106026017316151c00b23159078fe3cc77caded87ede3a625cda4bf5a447c8fb231d9564fc4d014ec2914739324d5ec989dae0719d4bc90ad6e0aaaed4070f94d2085c6736351f00c263757098114a1799732733af5c6d60e41803d07da7245463126cf8ff6d6ba76d540ac926ce38ae38e29bab6bdb9483e56c0019f759543276ef8642b02f7171d8620659bc39d4873fd6ecf4acc319a547fe41622b47e4669c25c577951f534e644278bc3e7ca3bf480c48048d9cb0edb3dc967b4ca02783732cd567986c348de9246b630b59bb248170db618f166", + "02e8e87d93ef0ec22d1711900b226152d8935e5ae2e9450037dc44251d7e84fc0d5a5edd50cd9b6337b706920291c8796628225fc62fde7870151fe2c561fcd5c9d2215c4d58fe", + "24524ca1857a01e03f5566e3d1fe6efe486566a4cb7b1dee48ce10e568820c8c9d4a21fa763f85dc9e55588788b5e84545674cc091aa388d90448b934d51e68100bff0e3bb0c8e7f5f32fdbf711fe10dcca505d5f2f0f527e7f7afad5436b39478aa4d09b12cdb4bf7f3c415775cce890f7d5d3e08cf178a89c6365025343f550d93e3fe3444ec674ffda852301604cfa9e49580805e6e1f951a591205b7790f794d18c06e3c05fa6f21f53f32ea38006316d8654c892c87de902bc3f6b03ff95849f0fc9190513e7ac01ce134d45692d88c5da8a529cd966d0ab02422e2606a2dc9bb7acbfc6037afb050746b36ea54fb" + }, + { /* i=551 cDividendBits=3171 cDivisorBits=2241 */ + "02838195f239999d7cbb46a0b01cd696ee97e23ab53b7e069c7f42408a701e183247c548a83b7bba9eecd0b4007cec7d8815fbd674c46b268eda0d9b84bc7e67e62bc4fb35e2e6eef609b13972573bb6f2b5ce6209cf8d8fbb695b32be21c6ebca8b7e07487b5f94c8dc0b5c0bc180ff80c2787d8e652fe841e4af79ccf7dee50b50ca89709ae788079af567957ca9b83b69bd46e6ce4ff5d83c0fd54cd95cb54206d062056c992cd6e147c77cef2921d8d80585c7614f2588a2e5f8651e2e52269163d4384dc160223f1aa56d328b4f245ef7279931c35c69bb267a5e2acd2025bd5e8462a832132e0ed1f250e44f23733eb7ae3ea029fd84f849710f67cc6414886c0476754545395e092bfd8c20e54c3cd06d34a3c9e813bd0fbd0a07849d7bf5fbf438a13c7c110785bb212e180fa73139341c0515fcd0f90f75a764415fccec327dcbe090c595d6239df415c620710c1b5e84d8241822882818f1baa1b7526b23ea5f8b1fdad609e838000b09bf2cfeba54d06c85114135bbf810967f153b3f97fcef39266f241f5830", + "01fa46b9e7ad3a5e8380ab10831e38aaaeb46d9f27ed13b5cd6334632bd659168160fa222f42062111205dea96254570f10a1615e8496f8393002653aefd891b2a0a0a1d1621f70441b632c65609c61034ec7c5e56301e8ea7cd7bdd2439ee2350cdfe7a2fe5c0f5c19888288d54e018d9cbc9038ddad3f167856ff87375999913a9ddd1704235385caf4822d71d6ef699dd53b848266585de1756f907cc377b2af4c1393936806b7c07108a70e324026cb0099d8f613107c214b482c53653cdfc87575ea62da55264affa49922b9dddf2764e33cf634b1eed263fd5dbeaf7827a92bd1b2d26f165901aa6917493f1b03bc257dfaa5a7efdbe085a1c0eab8514c3b54d2476630300e024df766d1c853e045fccf9d28611ae8a", + "01456404334358d551f1ea47b37df1c32f5e1fd49d4b1ecf3e94bf61dabad2eba84e7d1b5c8449b420bf94106565fbb7a526447a67702be45303c5651eeabdb43edd50329bc2191fa0e5393ff9b8e131329c9d595b42783b4967daabec6598aaa4e24c64ab62f4410217f686c065ecb8c74cd67d", + "01a8affcc71303eb233a10848da9a6e644b4588756fc315f0aa2f806d998a466023272255fe8d66c73c1339ff391d96d070fad65c66f40a2a53a4331a3ca6a22b176645c599a596bf3973a7ba3756005efaa0c313ebb7377c5a5b09ed100001cb3c56cfd7d7fca0f629836094f39cce6cf801e2aba30ffe47f939538707ac2c3dc765eb33c264a3ff7393b80f19aebc3949e30764781d8f400350828a1971612d0c64fa7f87e283b200e357d4ff3b251a3517c737b36893e8c25785fe97d38ae1698cbfa9bc28ce5cd741e5a9c011f3cdc4f5456863a9ee827236db6b8850eab1d358a6c17cfb366beddd01bea7a04e5d6040e5d8e591bf52c909d31fcc5900b11d6ea0e01343f264a1c682f7be8f61db1f886f773ce9dc2ce" + }, + { /* i=552 cDividendBits=3754 cDivisorBits=3752 */ + "23e16115173054ae0581fb1c0e7721fbd8cfad47a940215fc9ca1dc8fff6106aa32aee989c6a2c6750cff749b194b7818f4fa25c89b4926cd71d7460e669a9aca3efd0ffd54e6055c9bbd62ee6a1683978c2d55c6ccf9b0ab4271c94e93f2e9658601bf8ae73e4b625a68520f9013717057df23f2da350a9074a669a332a1b5004e7255f27fb8089fa6f84fd4ffaf02895d5c71736ef233ae306c8fa58f0305e28cd71eb0078550f7f697e9476dc5aa7eae89296bece994b6524563e785c06dc9393862370ee1c8f039bf2fd7dff94168ad0e04711d4eaaba2de6f48fd76b41ec5bb864c0d333e1995622f3c50a57f6099b0282fdbb39f8b3f0764e7d3989a973712afa782cc85aae517bae2b6baf5b234ea48b2d64a714e4084d345bbe45c303d143a0f5993c99b9567c968511c01bc9c859986f37338c27d4499b63ba6156d20de7cf3a6b42b3ab36b7d273e41da4c8da06a20feca139b87abfd4c7d7ab5bf7695b8bb75692b79041cda3c254c06fd92b5906a5461d9e95deaa2227514f855989a232955d3a57a36f831562047db3d2b263f39e55fb70d92268e58248dfe38227df56dbb28631f3bafc8c1b12d132315b10c80627c47c86aa0642f073d13263f77a6d10e963402857281f4b93cb5da17a3cfddf2", + "e1840210260f9d1e9540097dd3455777d67c2cb45efde6c7cb1b45e256b2f16b31ca2f43c6f5496e69d4156cd9e2c91c9a891ff57c0cf6abab2ae340d6dfccc45a7dca73bc76921336712070aece84c30552c234ea02477aac1c3bf21d03c28b2271ef1ea4cd4f9f8b02e822e71c47611335c3748ce367afedb98ed5e763529f3261001359173fc6a7eb39f8a7983d4a19e653d04e3f5532a335e244aaa0eefd9dbc935983af4697d9cc15e721d366b5353683134c9aa822f8a28d6d0c9c2c20762161f736cf4784f29353f5a024568df278eff1700b2f38c689170cab1c794bdafa323d4c4030963cdf6096b61208cb1285aeb6887e622356fab3314da3dbc386afe9d9f02fc254ba72d6a55e4e39565ff8c410459a5c220491d84527d7e6eb912ec1737e9b571b0756d9cc4bf982439c1eeca7891244ba3da2f2cbf8418b8230631c64f7e81b387127b7206ddbcafba6181a64d361654f5c09fccf5b8202024a90a4e8863842b267cfa100ff7f71d1e9cc24b4f36bcc4439877b8a063a228340215c279d836fa3a11ddce5a22bbc788eb06344c68d5029a9fdc77c2c43b14003fc5988ec8a2ff1ed744959128fdc2d3deda62ad1d96b1f045a0ae4a14ad977925366ff28d7beb3562486608b3585d386b5f4ff71", + "00", + "23e16115173054ae0581fb1c0e7721fbd8cfad47a940215fc9ca1dc8fff6106aa32aee989c6a2c6750cff749b194b7818f4fa25c89b4926cd71d7460e669a9aca3efd0ffd54e6055c9bbd62ee6a1683978c2d55c6ccf9b0ab4271c94e93f2e9658601bf8ae73e4b625a68520f9013717057df23f2da350a9074a669a332a1b5004e7255f27fb8089fa6f84fd4ffaf02895d5c71736ef233ae306c8fa58f0305e28cd71eb0078550f7f697e9476dc5aa7eae89296bece994b6524563e785c06dc9393862370ee1c8f039bf2fd7dff94168ad0e04711d4eaaba2de6f48fd76b41ec5bb864c0d333e1995622f3c50a57f6099b0282fdbb39f8b3f0764e7d3989a973712afa782cc85aae517bae2b6baf5b234ea48b2d64a714e4084d345bbe45c303d143a0f5993c99b9567c968511c01bc9c859986f37338c27d4499b63ba6156d20de7cf3a6b42b3ab36b7d273e41da4c8da06a20feca139b87abfd4c7d7ab5bf7695b8bb75692b79041cda3c254c06fd92b5906a5461d9e95deaa2227514f855989a232955d3a57a36f831562047db3d2b263f39e55fb70d92268e58248dfe38227df56dbb28631f3bafc8c1b12d132315b10c80627c47c86aa0642f073d13263f77a6d10e963402857281f4b93cb5da17a3cfddf2" + }, + { /* i=553 cDividendBits=1421 cDivisorBits=368 */ + "04b48f299dbfb36c7f2faad093f418311de6fbb67553b58d63ad8b5b1e03a7c7a657139c8c1769b8de5f4cb18bff327d93fe80972db991390957cd8d5a9eab31cc2d30d165e614e2a445c955095197200060866d2f36173d94fd53c9688bcd68e28b2cdeaba1af8d32ea75d93f0e5e7a69178439b04955a8566d5a9912d431d5817a204c34bb8acff16c6c444e6225495c4a948529225c80a65582cea2a943062ddec3a30c31b595ceec592e48f593f1ad65", + "416dbd098b8938434af282dd3d45903a25b5414b2269ae28398e2c4516da0e0232c5af8c93a175edb1a92e3f5dc8", + "1269074807c914f4486e023f2414a94086604d6a3e429e6d1099fb5c761ac73866245b9668ed1be575293de33703bd4b7c5cd456d4dc185d562cf7d2d477fc21a04787810e38d44ff3453f2e45d451bfb6a3244ff70bc727190874690211dbb7e54e5dd8352d03e780ecd179d303100b02e5c032ab227636dd374ca0ead3d642476f2c70", + "27be6ec6a21e4e681984684ffa7b7c116c781b5599e6004476b208d68304e04a61e542122873f1e57cf2526245e5" + }, + { /* i=554 cDividendBits=2590 cDivisorBits=1987 */ + "0ae56707836201fd02e23d4a6b1b53ce5b20647d8cd42b1ff87648b41f601505c7b9720060f0bee76302fc90f722e44079d03b8d109c6bc120dc962d91281b72f8248a7a71956ff2205e224e1417a2d4e2f1f0a92f3e1f930b245b6b10eda977a4aa376cd5ab5db9b17085c1485805e2668d0e041b534708dadeeea4d4e115b64a66fbda29ce4791ab9d6741002ac971b4a527d47cbc679578f7740a726d4b4b6af10bba986e7cc67ab976a540479cf338f238da6fd9419a48a1854b9ba29e4486d630b8dbf29ee0f4ff318392740f76d70b2ec34b771f2d1026abb335db72b74b4025a233d628d970f50a7fcb6d214983f4e836548601a288688a1778c246fd60ccfd1a59cde795296602d7740370df025757c155d7b69c71d540eb9ad5e0fa97e9ab42b94b17903b489ab7e9a458c99525c302b2d1481c4289e76a1f0830d536dfb62d", + "03a5ce2ad5bb00b50d54a704517b436233a584e37b59edb1e9acc1fd1fe8dde583eae459ef62438a5effa32471cd55c3980a9db9696fe8616653a33be5739c5e0a8085f87278e7589e8fa632b6ef3d074df7bea4c45b89effad050ab36d22f45b433ef3a3e6518d5414d580b607e6819ec970459d4b6183d7506ffb746a118b23385d2f6a8a2b6223ee8f200d251f2238fd11b16cc0d341399133d53dae90188e18441a62f3a98412fcca3730e18a795b8bbce03ecd5d2b145453cf622356261b03b9aa16f6f93b8f378810f806127ccb0c30fec7ab15decb62514268b6783be2f1a26b0567f1a13f3254f5e3985092304fcd4e54a6be3ba0e", + "02fcb4de416b3b7d607412cbb814021d898ce6db2cc3a9ce127e1b3be3678c1f70e2d68dc771ff3ad26453c7a4163534ed3d9b050a4a8157c17618bcd72147b42e69d6d28b50601d956b3faa", + "02a754b01bce9bc31648c496f131337858472e8b27bba532c36b0acd2e403cdb85e16a2508320c95349d161a7edb9dc85d562c72237a01df6819bce3e6c311d8e25ef30d085c2d6398f942c8d3a16e845f636319f8d3a9289addad89faa334e710efdff3f66e30cef1406342fba7d6851871b67dad1733dd7859e995f53162a0151d81420b1af92fd2dd6c23dbdb89a98ffb00cde499bf7ef4a1dcc5a4ec47eaf494dfc50ae224bc7e98dcc8986befa81c32ceb03842bab9e7ca45bfbe89656b4f7a7f57afae83f8476624b1207f1dc11e345fb99007d0ed7d8e29c791dbfeec4fa8956c39702d49f7d5b203a6e49842e25162a5cd9d02b6e1" + }, + { /* i=555 cDividendBits=872 cDivisorBits=51 */ + "5d28d439183bea5b45b4acfdaab3b483dc306811d4d55076340a3e842f7f1ae98e6b5d69d1174e599b6963df1b29b7c975a396bc88018f7fdbce90f1a2be1e766117d110ba6b002321397c4418b4b10fda165c1a0894b6851cbde68007887715c6d64ec8dec810188cad1b2bb6", + "021a152d9767d5", + "2c52659fe9014b6ea506182b4c89e606b275e2e030d8952d4238aa052e6037cbbc83bfa98fe6addce5342eb0b690632becf1b29693e5f03c1bb508f191538aa2b87386231e149963a9b0a81db5ec125a459cd70de18d467580fe616e13d36f9246dfd610e1510b", + "66993d8a508f" + }, + { /* i=556 cDividendBits=484 cDivisorBits=57 */ + "0aaec7305b9bc7ffd4e2781e2f0d726c3766bd1fbc5482e274084eae04eb55eddae67c4546d4a033c2f1844aedc700cc678490202bc3bcfd88996a96f9", + "4ecee71364ab74", + "22b3a1dd2ca066bbbd59e0d6dadf84c3a317c81300a13f0e31b7201bf764027923c5a46806dc0c618ac8f37da794abf507f0c3adb40a", + "2bbc7dd58a5471" + }, + { /* i=557 cDividendBits=1853 cDivisorBits=760 */ + "091efabda35eef1ab205f44f17742e9151b2adce0c0b960b6865ce1b7f3b4afaf80a7fbbb609939d057a16c80c9b23ef9216c9130c3e21b8f979cd16b2c4ba8fba640c03712c1305706cf1c8b7b251bf30ac9ced32d442aa0a11aa2c3186de2e6ddc19a1a1048c6bb3f656ed956cc395b37d1f9a04547171ea81e5ba3b395375407b7bb0081f090e35ce191ea5b703e1e5ba3cc0f4a85d5bb11ceb13df7413c836ab69565819aacdca414e1eff48bda19652730346dc99d234d080367b77f721aff3d30ed32879f03d15a0d4d1468fa05abfc7133353797cd4da60559649ae92701017aed576b774", + "4285126fae79c6d2b7f0e1abccbdebf09aedcd24d97f6191178238f2a927712402892cc44b836bb9f42c35aa0c1964f718d2a30a8513299525444de854a0c6a1170d400a0b00100dba7c175c197632f1dcae3bb718416b9c1292d0ecb12773", + "231a1da71c0146cd883126bc63e79a18e3005de661c5a571c46a0121cc21190e5a6602cf7826f356aa4f2fcf0d2e068eef2aad046b316028c7eaef35011660ad40176609b31f6e0b3323b63e86c84b433acd422e38dde58de05030e9b9e2db9f21a2977babdb191927371083f38eb5c4b9953532001737e07f7a9b9234de56eb6b83bc8f18cc2272cb", + "21f1776167aa3b5ccb86b72e4dc26168680b14ab78b1fc999c084b8c6f1cadc1b0d966dc7b0f100eabccfebc79d53a4f81046087acc6d73286ef6124a2dc9c29c7b6f4291fa54101664e83ffd7f3baa3a3b95fe4115c20747f17dd60253943" + }, + { /* i=558 cDividendBits=80 cDivisorBits=46 */ + "a7d45ac3d1d240b000c7", + "0947f7fb83ef", + "1215379186", + "030709f592ad" + }, + { /* i=559 cDividendBits=2115 cDivisorBits=1112 */ + "07a2c4d5c7431e3400f1f76511fb177576a1014c7ff2d79fda8adb1bff64fa6497ac8da50a72d7a095e4a6e35887e718a4d69d72012ce33a5edf1ef7b78f7b6eaa44d3cb17aeafc6158763e09b7b7e9b68c25caea55150515b3fb180eec65cddc0f0eac2b056746773165023d84fe08625687ed34b60945cfe05d7f5b5fc1e9569f042801951b90a3cc0c9a41578ce498f5a4425ba341abf9150feac96be3608fd3d7f0fabef94b0ab3c074343de0adff37824f9c4803af50ba1ed8483199f1ff0d95eb8ab868a3af17e8eb3b4f905d547b092e2fa64cd09becff5cb9602ea9ce1f3e38c62e3f248f4a52a11988c4d3094343aa26042bb44298ba20f06aa1d22b4705a3f15a8810e5a", + "e630d0a29ff8a134a79969c003760916690d70b597b6b0442b5ffc6754e80b06a2b8217623857144191c7c83d9a1b11f0dcfb6b45bef0f82c9d041cd2b37c52f50c78e05ed857e936fb2e84c426b242213a9f49235fd100dc072aeb168b01f81a9725206552af3afeec2a41d7d009015de6ff60320c0946b388cfddda6cfd635504551e4ab61f8078ef6b6", + "087df0c0769b7954c45c34cb199329bcfb16468661606b4983671dba72696cf815b9674a95707e008c9352bbfeb7243581b76cff86d723ed9fce38464518836c9f120c752f4454aa06df87655b2aa71d659fa98261789c26947c896ce1d422c7583705e84e5357b223333c9422c812d64ec79a2da67c59d1819a76c402ee", + "2b2b43389b01964eb2e90bc9a6b02a94d95e35b913694c187bb15c74bdb2c75007bee24fcb596d1bae3e7c597a92ad6ab2ef1dd955897701aeb3f34bfc364bf41cf40c9fbd1c0013eeca518c1fb7476679e07d760b6b77fc0d669fcf3898f91c08133d0db2bb60edcf98bb0b9f49e0002d7ca1aba9ed49d1a03a62f1a542864e0aabc0e5f76bc6bc524526" + }, + { /* i=560 cDividendBits=2479 cDivisorBits=1536 */ + "080ed62683f96273f9b72441dcfb9b4ea5b2674cc528456beaa070babfd4ce64d0b629485f308b659ec43b071f9a7bdee13a3b3022b3b4d352419b8f63ccefd0a60364cc3f42abbb9c45c26811bf32fba26e88de4405f2505093554c63f0bf8842e7b238f1d55d24c2e045a1b12af89be7fb2987a6824af19e0bdb1a453fbb2079cff04f3d51d846af8224695dc2d0ee54bf2ba9b3ca6e46e36cba7860d333b8cc4bdef1b5ec7a0a374cd64d08558463caff088ef89f401e10379757c6ed36d1e72dce6cb37e4057dc97d755bfe4cee0cbf69aa08805d4e3a18cd14ae97e9ce2c4ae9f51030e4bffc1436ae4732dc3d2e0bf42fe2e1e4e2e35d9136cce3eef9aff4687ad9fd2f514acdb1a3c2036d2e248ee6b7aa6089ceb6c3ca6b6feaf8356cf6021886727fd19732d452c3bdedfbaccc24daf01ec", + "0b2ec25c11c58b3d6b09b70b7d828037944309d62d1d2d2e07b03b801eafb428bf5ba1f53895fe3c8e92c9e2ea25b8577b94711a68ddda31c0aad5f4d2acb1332ebc71da4739acb1ae0f2ce804f1d0767792a78893b4c1a384c6583a9c58c53e30215c2cabb260c55662f540d66fa33ecb4116efa8363fe4ba363c14971f338fbcaa0822e6963dae2443e4b7861146d233609ad81ba275ad57dcf360f04118c05dc46d50313b12c389d845315662a0e493376cf99533f7ad8b65a494d5e65f9f", + "b877b0b3a235d46a55f928c103d78c8c03053650c492a0dc9d620e8af7ed06631ae9006370e306f5b40048f93f5bffc8cc81d85dd1d868f0c972f799d983930eb5defaf64d84d8597bf7e9051b0b462e6fd06bae34dd87f76da8269dc26b2363275fe4907aaf3b06156227abc108d1f11f1d4d8a6caf", + "ef9eef9d02a03432f2c3012494a474100c4e27d3b135e330ad415914a815af15d4cbca0bc96c2ab2a1b29215470a728d1997e0c620b153d82131ce6fe8f7140cf739c8f46580bec1fbe17dd39695e5a7dd7e07a737e0d9529ab06f1d475cf2d95cf87917411b227aa0cc9ee36c6b6174a12ba6de749ae8f443c5f9c6f317fafcbe6326c8c279c41e3d11671d42a692b5ef2bcc350551213df1cd4d055ce73b8dcd901184a17d1eaa47306f434cde89d9bd5849a1ff057642e2d1d18626903b" + }, + { /* i=561 cDividendBits=2232 cDivisorBits=357 */ + "5f8a377fa75b32f3a40f2f240701dc523d6279566cb7eb99e601217e8ba3e94dcd07401fa1695c62cfdfab5e39e01a0cbf25be2d44cdd25eb47afd5002e0b5eb72aad1f7dd746a7b78faaea72d086f3d46c91766de6c06be0c8b24d45ed1e18c8d336b1de4ef2f4973455f8bfe99df734748ae6fb1b69ff52bf2382a7f9e646cb6479659e1266ef4f28dc48f363eea742142549a114fede2585ba3fcd7e959816cbc0fcfd69efb59e87218609809d98f407e8d7c83c6be5d85e22ecc93c9cf952d956dd930cbaeace52dc4d867555f02c0eb3cc4eee640a008b476e768a72313ca4dbcb4e51c235f4af5c74ebee9bdcab7d35fa2b9a0995b055b817bdcab9d38eed527bb5148c80feb7530002137ad100a208c6637a20d", + "0880a9e1e4283a747d1e4e976086489b5af37fd3c4ac62618eb2891ce76d1a9e43a916b10340077648cf05d085", + "0b3c8f5d809449013e92a6fd28f7fdeb629b63d973252b8c768816093bf7396fcef97c6133e5c4b2381bf1c6af981ec358359fea5903f72221b7c8cddb4238d33d331a12e6205f90f356d712fb6d8e127f66962f93bf722a184f6a7132cd89e6b35ff0f180b5a841ad76a4ddbc68e2537e9b8681f8b33a97ce4009c33401448c6e9075289737d3e8f968a797e0d5b582d127eaa0108d5be926a24835ce3b9d4b7c7d615f8ab7469fb8ca014c7f06da19d16a22b746071af57965f71f1c1d637354f21deae17a472c702d85a108386593463bc0d0c532944d7810506d07793c2ee696cb7f8af2d7def03b82", + "0641063357d5cf665566c9974fe6178125837ba57ba6a024087001bbbae2901c389dec26ce0c824de31b851783" + }, + { /* i=562 cDividendBits=35 cDivisorBits=29 */ + "0264523d96", + "03de89fb", + "9e", + "f914ac" + }, + { /* i=563 cDividendBits=3621 cDivisorBits=599 */ + "1a549cf9d131baa3cb66c1bb3cbcafac32e21db9c755db907928fee637bb2808cd3be34876dad77075c78cbbc1a17a152f81b4edd2c73145acede44abe601a2e5807dafbeebfb4e0a70a52e6b81efdb3a485432258092226e7012a6cac7bd253bccbd86f7a927cde355befcbaad66ee4e3844ce0f0d07e9939bd16741479c9106e45298159a05986b2d815525ff66bd8ba76ae0cb9a50af580bccfc16e5c30aead84e27020100a9503583c3065dd6786ad693a3876eefc2879bbd913d4950647a481f29ec04394fa6dc8dd1a18543bd528de2bcd99e25c16fd4239f2ad52f23e8b92de71b5076ad57c8a7838e01a0caf83a676ba153decbac7137eb9c83a78cf546e479121a58a8e38c1d1c00c3970e6cb72ebf69da9e85ae1f870538aefbef505500467a728f2470f63e14e6213ff21bff7dd6cddea0b79f6ef41a057597457e6557b6d24cbe6177a60173d857c38cc9f6006bef46ba0f982b0e3acd46fb77dca62028f117463c334efc9fd9de5a6e333098650de5208f21831c4924486bbd2841d1e43dd8e69eb14b339aa85dc34254d769cd6b861dc547412024fa03fc30fcd553bfe6b379c556f8a4cc8f80993a8a345999c399fd66058d81819d45368c580c7a6e615", + "20d7a60b53acd35201481cc703384f6ce553a73a3f6c6c05db703b1bfbcf0343a3d2d54dc311a783320dafc1a44258106f613a380b7c29967b5b4108ccd5ca2a05b95165acc93b4f80f365", + "cd3dc7bf59d063c8c01298414ccd391e2ef490cf5a53192f4abff92ed5850dbb591836480c966154e41aa63f74732834a7d26e83c5ddb96d73705f9857431c8607604d2056dcaba7b364cb1f166b2fce72867944ac268808e1ad5c7cabce147b9870c45921fe2635a3a37b7b8008f7d2305ffe6fb4d5cd900ce82683d0f081b89721d48d0bb9fdd44383a5a90fb0d1e1e80cbeaa596693da3d2e8b1fee76f8432ae63d87e18452810744498a73b566bb2c204d993724173d7291acaecee8d9bfb6381e76d8402d952632b9d1335fe56af74f413286fb55311da34624800b8dfd526c928d3f2fb835402932508fdd1e5192d8fd6c2d4984653cc20f9979bba731656660f29adde73ccb36dd338f4d8914833b80c1efa6b5164d44c70da07baf1d89e2f58f15d900b957946b75fa03518d392a010b78741001505fd33c63379ae5c9cab1e7608b4a823f95f13b27851a428a4b6b9b17a1e6b6a41575be4fc02f1985ce1e0334f78a9e6feffaf851bcd7c35d49a574b974b08d27b4", + "11ff54d0be26cf7ed59a683925c613baac3ec387f5e904026976d9030bb38cf5e65f7fc3b5dc0f9adfa29e9952e294432e5b0775d42681ecd3acf76a3275484f2554284dd98690bd466011" + }, + { /* i=564 cDividendBits=3822 cDivisorBits=2187 */ + "19d621dac8edd33a3f2299686123f9414631cb1f1e7c748efc76c91923b590ceaf1eccb0b707655e2be67dd73f8a0c9f87fada4b53bd9998b1660099b043751ae6c0f07ef875d15eac2490ae00231bcca52523c5c32e18137a08b47017f3bb8ffa911e755d69db5f2c1b3f996d436b5ac9059a6060fdf2a54c3710df5ad4ca41d572114cd7ae60b5c8c41c7aeddae4592c53e2072cd324b73c7bf8ef86aba75282809ba0dee80b674fbf4340a5029b73e78c3480c95725e505fed6c7392bc6a222ca2846bc610fa91f5668b79158d39e139616ef227f26b3a4ff4303e4466b8617b15b3966e9083f2db9fc9a4587ea7916335bdc52864eb1852e59ea1848d0ef061c3d0a5a1edf74ca8d56256a42df27a295f3d230e18f99bd3a7fdbd2cc9fd44b8d9ec0d39abdd304400199ec813d4318373bbe9fbdbb195fdec9f3034aafffc13ef9c1589584eb88c514ed2e9c2b5bececac3665199eeb9588b1457b93db70b777a3802d93ca9c9957047d61830ba1d92e25f6951d704a34c603146aa3ba7b29014977527bf3ada900f51d7f812e1bffd89e7ab0b8622557b786e707b707cbc1708ecd18220de526a153764f9b05b405c3f3140a459f95e8470efa90b55bd755f865e69986fd907e5980379c13696f4920001afe25ef0fc5dc69638226", + "0192845dccefca41e5c87ef7c52b01fdbe20f8cd109cba9d0d43d3a6567ea348e7715d16ddcd1818a0ac4502bf39f5a9e1c72e628df63e80e6c81343666e864551bbd5d6dd40ad61ffd39c315f7c2f531dcc5574b41879c09f529f5d507a8727b37eb807ba35b82fb5201b437c6baa29aa8db60cab9e8e7b4914af529a74584ce2ad011622f2d52e87d64c661df131348e341a42a97224888ec9811a9302810f8983d06468568545f7c6c1bd76dc8d0994ffc3f3cd3930c21a47d2c26dfb278976fa95856bd5097a9985780d0e7d568c5357764c7a9f692388091effb8c841a1fa2c98f889434082a894cbc2310966e1e17996291b3ba2c401ecd5b379c66f1dae8c43e038833927d9bd98ab662cfc454549", + "106e92fd3e0e51610ce6a566dc8c42955e9fdb01f9fff1f20d514cce8f53c78f6711a7433158a565490ba316ef579d8e23acb7da7ba9eba9497514b66a82a1c4f67b299b5e794c2be7e309ec748e107793c20efc85c77f3f9231f165f58f36e8bba708a7959c1625eb8d5464993b85e65f415b329c05ddfa0c9a0e95bed961aa18d7bee56e63e81b462a1a1f2490322c2f9ac202328265856f9a86302c5f48d2750896eef38a01422148cc36538514665b01f71c6bf0b09f9256d8a3595d0432398d23527b9a5c45c973a235ae", + "a0c3b076b9101113cc98eeee76907cb976960b252395e91d8f83d54d6ce80a4571ea202b1ccbb0ee5018f2a7bf65f8ae287e4078babae492545e4eb9ce796b481ab869937c585b29b9e0a0f78383038282142c24e1ca6a392de783eecda7d1b7d221ccee7281d1ee6e1e0575eb6f2f5ea8b5c76aaac16061c95d20845103c1074452dae0ab6afb6020b6e0c7fe61ffabfbb0a3b35568ebce1d470dd2fce3124c28e89752630209c26beb90f577b0ac26bb80f6c3e8212d09be5e4daabb2ceca0bec0c025cdb7b388ac0f8f1aea917eb2bb27be5e9b862c02875ee74a8a53fca8ad5227d15663db4e29b69fec69327c0d83cbc686120ea505194f229c18c4ac2b0aec64c5b104e2c95942522dc7f7c44d88" + }, + { /* i=565 cDividendBits=362 cDivisorBits=19 */ + "01323ad1e974dcf3aa19add05098a770b147045d370340f3f6f8453fe56661e99a9ec7a088853e20177ee5cd9583", + "02d603", + "6bfae80314be4f7df19d42cfa02a833df7fe0bb85ff1d5bb6757d0b3d18d353a2e3a364022bac9a9a7d056", + "024081" + }, + { /* i=566 cDividendBits=112 cDivisorBits=77 */ + "947d7423c2db8dac019ed49741bc", + "1ce3d1969026f0aae946", + "0523cdb236", + "07093241e0f1db4960f8" + }, + { /* i=567 cDividendBits=1990 cDivisorBits=1662 */ + "20a6e9d303991fbb145534210ece86233bbd72a78626947c09393cb3b72a162c34436e58379010b59c3a8b4b984365b778fc18a877a98dfe80d1cea5b66fec0ddca854f5ee4ad8e79ab304cc1d01c0a3903617de67dbd01aa14d545e43a56c079e28c612353fe22aeaeb0314bc6262d69d7283b70183187b31dfa5bbafbb729d9169c87a914c50b3b71909ad25568206e58980ce74911cc13dc251cbbef0a74406f92044fa52bd7174cf00a129c5cd462796bbe5946c693c8208d72a68d0f445c6be2195d41db0a22c8164598626652dc2fb0e6c5ca0aead8751bc88b014e8afe9367fe1580d73a3deb19b63ad3d8a350b173adf8e470c808f", + "1c211cbd874e5678023523e6ee38414d1274b26100730901d6d943c5fbe32f1c51da09df7a8080a99e771342df51017d57edc1e41765204f208840a2998bdb37762ddccf19530b19600fac1e8f5f0629ad41d48e8c89f042efd7897e5b23297311fa5c9c110d1f992fdcfe1d8885685a233fac1f29d133597a05778c2e606a51e73e0d8a189a248574c8cf40857ce8a541d651fd9d21a3624f471883378c82218f5b3e297b0c7c54f03706dd51696a5a2abf4119bb144b1ddd0d2c1171925cd45e3b82cdcaf466794e7abb1314b6bc87", + "012928ef6aba418033289584429bace8edb483977e7cd206be55bc60dee0a6b2f51ecc2c905f02149795", + "06943d2461bb0e6ff957a08e3f66c7ce61e1f16bafb32fb74594f4cc88d849e016ab6c1c757a1394b10490e81acbf3c767235c2e4db8b3dc73722db8d91fa0368b4a741a7224ed9dc90b8d0ca8405f8ad2307acde489e042179afd2f7d0b41d2bf80640403237166571496708e4a3e502a566400c93a15870b5947f48d2fdf7c074253dacc9e307fa8dd5813a51466448f3af23e27759d5fcaf82ede8575c9c4b548f81d1b38522505f2bf0e706e038b375ad1ead1e81490accfae6444ba5564514d71788c7d4be7ccbcca62a6f124fc" + }, + { /* i=568 cDividendBits=85 cDivisorBits=62 */ + "05010a7cf6d60aabc44de3", + "20c693fb49cd1063", + "2715c8", + "0c675e6db222618b" + }, + { /* i=569 cDividendBits=2548 cDivisorBits=1853 */ + "04e8b12917d10729f679ef9fc80cd529963f1735fed6d87c832ac8c2da344ef87242396d057e0edf9eed3f55b4a3e747bf77e27d33f8b8b7fc0e62e5bdc3db673dcd4292c162de29f1a54eba808b55db7d7d00f570663e3877d51c16b62ae1adbf1e95b66ab59a73eea7a52139daa535a921f979d8712901657cc6aabdecce7295ecf710f1b298aff492c8437833bef30de49382d4f176b87d454ca3617b8308ca8faee70b0fb60fdd9ef355566c82783a176c9855e628154bd1e9fe148c687b7e8b74cf1eb78a5de8a6dfdb1e93e4b8db2601cb4285c16861a211f9284ab9d3c10a9512ffaad37cb715cfa28ca9d7664d605f27bb174bcd7a1cf8c00c1dff76f42faf07f9daa9c644379d16a0f008ff694ebc378850984378c408f2d82990c5b536e9ee15922b28fc251c8163aefeba6cca8a9a404248a56351a8f56abe6c", + "08f258bcd81591afda146bc0301ad628c991ebe0e7faa578565c33e27a81781660dd20c104ef6fd9db3afe1a2bfae1c97be678839dad50528412b016449fa169bb1457ba3e09378a0958e33b86d8c27fe943e92cf24946ce562dc0360afe66a522777d61cdf00f9133ce5913c34f2a4425b8f674987f0393674cf67339b7c4df60c4a255a878c337b24c34815c1bff6e4a6391498057f8ed0d864aedcb1c70bec28009a243588d5694165a37fbbb388fdc1984e807879af8077f3d1fb720a35dd3099c8cd1649ca70631da76df235a84c36fc310e61608c5912380ae79bd1feb4470ecf120ceea6e", + "8c76ff649e9750e86441fda18eadff515cf0e9b8ee400fb79201023ac0cf66bcfc841cda62613bac0fad57ef8db4023d5c542bf2f249f54ee8dbb82864cdb5ce9f825aa73cf1aeefecae93ba9d587d109b2cf3a9d438dd", + "01952e7eb58b91e2750a7c1d229d977e1ca394bed442979733634cf8ed507b76115c247de33022c44e666ea99f020597c0aade3132d5c479d5f86ab51ce26458e5de171e6014b221183303740da456eb3964a4068c1f39254f89963e7cf2004e537a7ef1cde64390eeaa49611c886e7d30a1eb92a482bf33e14a356efdfd19bea4aca969024201527a1668209557651e188c6afeb451f436acd2220eb6f91109e8b0f0128cd23a681fffbc89722f9e39219054cb44a64f493c9a822654c34240b436f7a3fb18f8071eaef0e63e46628ec9e3f51e51b4db58cc2d37eda4f2951bf06cd3cb9e6a4d76" + }, + { /* i=570 cDividendBits=1975 cDivisorBits=1543 */ + "1f5dcbb9cf3cba29f05a1ac89c56a44736a4dacf9c359e831b3f421b631ac916c00c60a4e3890c2d10384ea4b48e2ae1d7acdfbb9a250207768a9602b0f74836d6853de864643a5d82dca3764b451ee45dcd950aed0e4686912970ae7a157377e44e3b83cd2cb6c79044521afe14f0f9a76a4c3f0a25ec88f1e3621dfe9881589e4e3711d5b59282ec74ec7df1b062e398238a1c9e78ee1a746d8dc387fdac25e95c95dab898f8d92a224a342ef7db86f3db3a9b2b3648eb9cbfd84e275df38b413e0e12044909a3988d183d967ed384c8f7e53ce3576fb30d2d76ae16c4803d405f818ef828f77c6dfb7f4911c5e9819af630ce026c53", + "73db11728204ae60bd1fe17ba425f5fc0da927f4608bb1df387032681bfa15102f2c41e563ed0c0f1e9f2b5cb51302e148c806d06e6c1f82325a32d1db41698a0fe14619b2136b8d6c24a39b810dad15a75d9d48b8e061cddec16aaf796f993d956f5ddb08b8cf308a6097df48fb07df31394918467e1c1fc5efa5f4a6e368ae0df6b1e69d3318c1f2f311356497522df6c466bcde0fab4e81f02bde0cbb7767466759b957335ad65cabbda1f7840fc50ae700c64ca824517f9432dc1aac561f13", + "454efeb8013042ed686020ae6528bb2e7ddd8dfbb546c32ad1c6d08a8f0d6c7fe7b4734edb1f21945b40c14199d89fa69ed1fc6a25c0", + "246eba1cea704e84cb348fbf6266a5d90619703a033aa23be0c8f68bdb4d0218245a49cbecd5d5afde64954faefb1251c629b9f3870fc77c2fb2262cfb513fe6afcbe399ae54b2f7d9578ae8d78bc982e87df999bc8b8e37447a19b847b5c56cf14690cf8258498431946087a8d5aa7358a5d6ba40c7561f167955908300798ea2e2a791bea6fbf88818d91d57a9fb6bedf75d74bdf317d8bba73ad1213b2f5fa30246b7523cbcd1fb62c83abfd5bb5b433c7dfb95d594cfc4d026cc84890f5f13" + }, + { /* i=571 cDividendBits=2104 cDivisorBits=234 */ + "0100eb78e6de4c6c83104c929d26a822bbc98698139fc0acbcf6f4844ad201f756f82840bc2d8710287a3b31101a782963f86572e570929826a07c14f7cec203db5649da9682993bab80fa6533f1abbaa90d6c123050369b4b5a89345bf7fa6099490f69125b5720e8366b229655095b7bfff22c9b7165d73a1dc9b6598b6009dc1e322ea6cc7b406a00b0c3adc681a4749e614f868e9cb60e4032ddbe27e8d825d89514f9d607411dc5aebbd3ab5750e2659f918ea54433700518f7f627234b62c2908441fa9f57d1dae61aa8849ceef0d82fbba141d75e35b5caeb464a9114ef879db9f8681b2068187e3bc4aa6adf5cc807af2464a9ae33f0df416d8c599465f5ede9331139", + "0302cb194673a28326f71183764da22129e041e49222cabc324999bba440", + "55545f46ae52d6f63d6a60b6ef5b94025d1f0329a4af7bff7d8d337de0c1dc3833df05fa215f380d9802678c96b64a8a3d35070de5f8989bbf2d43738161e6f824763982f31d2948383e85c2a0bd9f88243cd2dc587df2f9f6f96789bb5fd538af7ac67071bb678ea678f7ec245d9e547379efc65dbdb6954bc6af9470b30b8eec1ec3ffd17f39a471b0c14c51a9604c1c43a3c4623f2fdc59fe54cbdddab81cf9858360c43a3c358a0d6004baf6d7d07d8ab8c1bf79ec4a9e482d3ca2ca4c80d07bc590e4d3e0e9a1c061031838d84de008b88fb4de5113b1ec782e8fac5c9451439609fc5223071a", + "01f077717dcd5440502838299a2810a72eb920cf8265799ec8fc35e6a2b9" + }, + { /* i=572 cDividendBits=1823 cDivisorBits=1163 */ + "7314e3ca6cac5bd0163372df31fd6977c0eec439058fd9f68c0e9f79c31d5d624ce72647ef3f05d9d9dedf3d36661775963d199a3ec6343a69e35432703385f033b32a326d87a3131fc43ffaae59f05590c19f19da10be5903231571cdd6ed38e8112e5c656ef3f09741ca49f54415784e51dff7b539b8ddbd45b4c7bc1c9eb301bf21daeac6b169777bc5f90d8a9921d3412c74e9fc7bd0d5ed076238d2512889a1f3c0240a230997efad4cd453b79eb6174c3354c0741c7900e5538b76eba734a5bd82623f4d62f4a7d5cd7ea3d734b93f52628891e1a5e111989f8b375f2242ac9419", + "06875245f8644a27f00db921a6f803adf5e9d9e713dc175779e0e56d5843ea0d27450d2a841a112b5af5c70f1026c17fc3f259f2a5e59797270e662970a5908d17857ae22126d8feb4597ac5f2714a82d059418ea2de019d4e3dd042c6c541786d81bd707a25b57871386ce4a55a5b29b8a3d4c1e2bcb776a86598cdbe5ef31bcf7b24920c468a158f64a2dbd7982a087b99", + "11a096fc45f765c08d33ef7b6df824b13430cf1e2ac6b9bcf36de63c4dcdf6b12792bf85d3240239efa39d809f4a8626249ac703f5ac2c9b424bd7dc7db085fec15b9ff91dc074fd95ec9392d36eeb915accbe", + "055d3c62381c4dacdd998ef3e6c1ce5dc1739e43d169fbfcf9f15286f4f02ac3606c58bdf99fb2cc2512c2f79838df01ae1dabf5767177d0748e804ef24a517218c093def82b6766d00d9afad336289d21a52a50b73f1b950558c1492cba0f43294ba8571369509ebb55c7414f927aa80d070dce07a77e5cafbf649cdf3478f3ca49dd2ea468427a68ac24f252443118ec8b" + }, + { /* i=573 cDividendBits=3340 cDivisorBits=1172 */ + "01f0c0694bd9fd94762a215ff1b070b56f7c08063b885eef4b969ec2785a06027a9f13f654cceaa24d176b455e87352822bddbde5e1dfaf171a607a4c3f383f31dd28de0338b687d31dc509f8e681d8a5aadff293082e98cbd7486e17f4cf83728cd891ad87f877962c10b142b1ecaa101176dc65207ce1f68a116910409c035059fa705de06f69e0250b80f1e21bde5ae74e0420aba1f5319dc7a6da65f3ed1060737e60fce8c8360408e57623815cc5c14adbd4972e9a4eec0edfd04619e1a5a0bb20e777582316d2148504487e3ad5ae6c7ce0cbb4bbd4ff71f6f250bdbb0d21df2b9139c19803a14ad7ec12a2106d08f1641eb30bf44c39b185a28d8ab75cd4a641cec91e9a66bcd265a1e01d804c35483b0a640659bce170efc352ef8e631b9c3a1477c426cc478ff4c726bd01f5f98abd80a35931d7af0934bde7ddddb591dd069251f25a7a0e02fe42dc38b9a5655c3ea7f674decfb618c5420b8ff2a5d71d60e22a57d6e8e9012878f3c14c185f6c5c537e20a55b4e7061585e5bc5fd3843e6e9a53c0ec9ec4fec661af0f72025cf771f9b716c247912b77ae298528db99", + "0e57fca1069d5aa745a794d198a07c4f258b039aeda854a1b44493ff6e928c84ef2028e85cc440802760a846cfa2586050e728e818da82ea3c88e6c0df25be39cbc11bcecab495894143546a11614f398033b88e284ed8bb88773684e7186288491713480fa73f3b5394ddb8d77eaf3b7be44ac4dc2c7410bd5534c0937f3fbad6d9c2ac8e1a2f5415bcb9169316a1b7fe7eef", + "22a1cdaad5b2c3eb34d57f8389a558ffa1b17756bd4081db701c6fef414ba5c4f2c41f1582548c1d2fef6328b598793ae34f702bd76a5db7dd239b950becebe51a75910b4beee0a6d14406fa3ed9a3a0f5a1a71f651454f78819a7a35d64dbe0a6cae73e80029a30b22b43e4719c999b3f8bff75f281b2579ca37324f36b0b506783e46e1bc4f7e9001ff23758471791aaf931a18a9e6874a56c4942978e376c4845d6102c68d7a08c3b60af89a0b5e3ae7aa02336d96d4b2186d6d4311e271e26ccb6f873ac70debf9dc88859eb12c6e0cdb887a6e701fc4b78f599e5c326c848e57485723f954910329525aa9d4826fe016628926fac9d44c54bab7e2dad41ae47c489d6d10aabef2835b62958de", + "0c1d4b9a0f136baf78dc0faecfd021bacfef48efe9185534d377a87072b510627d35c75f67c4ad32da75606c947a3466f303438f232dbea3d74bdd9ed405f1aeb29f3bdc1729562a2bdff12a50c2fc049671521fcdb4579dd11ad06d8585a29699e7367724bcb74965d2ae16c50fa4a9ca8d83f30f0e4d99dcb23a0ff7757f5b600a452b9e60a51c1d01b46dc671313c8da057" + }, + { /* i=574 cDividendBits=2546 cDivisorBits=593 */ + "036077b4f80f44e6bc178da0f43c264572d0c7054f1d909863509b54ab96eadfdcfbe9b87edd66f60739be85e84ec4818bb673598a4e746c905858ef640fac2c94bcda6b617f5dcf4cbbfb8314c74ee328596cd94b4ed4542f3528f3cd939cb3319fa77f4124bd3ae7d4a45d74309436bd236884f7e5f2103579f317efb85ebff8586534772e1301a0ca25857cdb2020ea510b8fd7ad420562f329af7f98b19830fe19854b97f6e67ca8d26996a9d42fc7504c3aaf14636ccaa47b72caa59076b4ac64092077e7847f636b071447d76ae32aa55b3e8fd30199676ded1874436b0594ea8804eb0df96d1c4a31ae228f18169af8662a354fde923bb6aa31c9d9efdc0d07cb22d860bbb48a716cfaeb656c8807d447bde10452f7b31f9da331e71f678ae3602b10f6710d0ea4784552abe07d1d374964af5add45945a0724a5b5", + "84cc77d5951bb5e92d472f895be5e359475ccdbcdd8e4586107513acd4443e795c5acb51bfcbbecff2659fc2822699286cb7d7ee3bdad0638ea5f38b13c381375681ff0e0702fac77b84", + "068275b868d24c23401b2b486ee91202a7d671e07a230ebb7294bfba8e2d46b369b027a8c8590b858c8701fe13f87c5bc18869ba6433abc059fcffcbf6170daaece78abccc2fbb84c680a4745ab893f9adcfc35cec2ffe1f7d39e146ce5d0f917c99b38ed349dbde0e00a782c5e2c159c286bd1fda2c71acfb740c4f774f69c491fa32feae76512d81a45208a9871916fdbaa80405c89763c550b7c580376a9d849b5665945e73fec68ab4e6a6633b8bd1a9e39c771c5f579a1d2a233bbd2199b13ff55bafc68197904764bfbee24fd56966fcc841a82cc0c69e83b7f3df190c6203a05de38c7cd4c5ef5f6bb93e98e8de39487c99", + "77cdbb41c7066ae502e0104995247dbffe60747c058c6f54957d342afa93035974089ff021758cc423ff1351eb7cbfb165824d273e4ed6ee49120eaa4e2a8746bc037084430664f7e3d1" + }, + { /* i=575 cDividendBits=2715 cDivisorBits=757 */ + "076375f8f571089af4b7961bf3f1bfa36599a97bf41bac0a176b5eb7c5cbe4f3cf8c14bc19e1b06d15a13508876b44f077c0fe3b3edd3e84406a33820a801dbd4714acb2bbddea0326b3f846f8b7b02fb7643a2a489dd37161989030a846f72015c4062fe2f5c7fd9dd3b5ee898e7bc71db585bc12e87692d47ecc7aa7448a74ff005b08f4229d10538fa394d4b925a13b47fda70a2f3261398f7139a9b90069ee4c9f81852b7e833d70d529182684bfcee5bdf68187fda3a5e1607ee16f5291d8fc5bd00fe73abdccbe7938d8416cbfc1d9418df07cf9fc9b0a14725f40b8d1b9cd519a521392807b9f29cc1a327bcc69fe5a73bd6848c2424824057994742e8cb73a4e24a0fc9db59e119dc441c26ec9235af7c9857b3c1a3a646a3b356fd84e52e0567eb205f04d89b31cbc56fd3236feb8739837ce3ca9363e4d5dcfee3e9577bf331734519d058bab232dea0b3a28e1f36a", + "0cce43e80ef977a7e5d2a1038f053ccb1b512dcf660bccdb85766a4588ad3f4491e9a74d70d5e5e4463604b78ff367db9a74e4ad4d99be0be8b750faae12d8d557fbf894ddb7ac88c5a98536d7dade8e9c91070aef01c0eaaae8c952094806", + "93b44ef2280292b05e76298b9cc6833a52b1ab830ed8e3d6e738dd036996d2c81a54a2143b78f61821c249aba60ad7ca8f7cfa086cc3ea26ce0c42e258ee382ae7b9ee9de0b3b601a1845b90006b133f2c588dc0af6184b7534e03c72475a30bd765d8e94613bd24c5a37f6e5b05259528ee610522794ca6f3ead66168319682d420cbba42793a0be71f0ae6992aefad80f73e1225e73db2d5f6b907ec1b190a712556af9167246987e12c96ffe41df49ad22494d7b04f99f4360e91ffd333dd3b514756efe459c976c2ca92a33062c4561408a7a47c797d370a3bbb211a51c099823b48fb70430bfc223d5492a5664c5223046fee", + "01982bbc44d17fc3c9214694dd3119999fe6903fb6ae00236f97aba91eb296e9ae32fb5214ffb5aecb562f87c6d6f3cc1e5a4b4eeab2c877c9bf03b00ab3e8ea6611edc6b209abd42dafbaef46a222257157569e30502825faee93ebee63d6" + }, + { /* i=576 cDividendBits=1087 cDivisorBits=581 */ + "072ec3de2589235c0908c615f5b7fad35c3fd3780f86ec768578d7a1f439a42875857f5abb05fe7a26ea4c1e2f8d9d14716d1a8400f282e57989212b9e067a488435967f0cd3263205cc4475eb804773396014502cbb7ced1e1363f973d7991c0c1bb862f75615795f3c28697a8d26c175a94b82aa560910c6e1cff27020fdd62214a423a9594b2b", + "07389e600676d3b43c9e8088ad8b4b0990c0c4bbcdc3efec9f77b51f0250c380bc719a839c20b12364e73397fbdb926045312c9a0a4223d9d6309ab4e62213c875a7c114d4ea66f6d7", + "fea2adbf030f445ea1539d3e3dd87c206b75d60f12d9150a54fe5e1e50150f1da9effa8a6697713ba57e644aedd842b4e82288a514c45624faef8e51709271", + "024427847e218c5db9f5ec0277224809bdc338913d393a34e0612c13c8d6028aa50c133f03eb7c41fc820184abd86d31fb6dced60f1f8d11e3577f292327b5abbd0d223f11740fb844" + }, + { /* i=577 cDividendBits=2662 cDivisorBits=1890 */ + "3a6d4aeba6ce4793209af0e033083c63263082e3fce54b73dbf4b0ba9bbfa6d79eac31fc61179298a3c0acaf655b05583470e99d3a11aa61f80b55d50ebf886b172dd7b0702956faba18eee9ce5f2a0411da937d83ae1ac8a028922512bb06048a7fd0ddcc4ef6590db145248b5c823e33c2bb5a48a25a64ea20e8149ce9e01ffa0b84993533ee19e78fc08c7c1d32af220f2239b67f609e652f40d7ce3385ac52b88bfc4a71c1183b5758562659a2b3f20a332ece28aebc88b05f5e7d2530b9114073c54bcb925c72d0577f613764db37b4eb6e71aac31b65fee9770c50bb26cd817b73b5262808f642992ab000911b05d2727dc38fbf83b24ee4d7634f2be4d610ae307ac7794e81d8a620172e81d875cba01d72568089f4744b59e326178f80fe44ed165d970d25c1af397709ee85dbcd6e653fcc6a4d519a20cc5c1430141aeda3aa6c8c88f9dcce272c28", + "024d1582b1f6e1fde2d707ba6edd481bf2681e0900346a34c20e9e4af9f249d43a9084844514aaa931ebd8c5f8fa9879540804e8652559a516e5f755c3a06646a27d63bbe4fe49accab75dd2ccf4ae8f00b497db25135e0e8c6ba6d139b927546a82899eb93e00f3edc29cb4fe779431dcf8570e954cc3dd44bf471b91d19e5f3dedbfad45b24f98cbd646e95a2972aa3700efd6d3bff0551c07a903238ee6d392b1b425a1c8028d0ac5845e17c07b35fb80a235f310772a4cd2607f349fd9c10756e2b1d7673157e6af959f842a7aa3aca75d372ebcc9fc22a89446c8de92b62942b590fa5a6c08e80875a976", + "19640904fb4a7a69600287ca19da40a672dc093cc6fe9d8627ba33dad78696a607ee6192739103080fd351a8360c3f2cc70220814fb6a30cb7e110a51a7d64dbae18ac452ce23944c84f87e8e5828589e10fcb924d90116138d307d2189c78f972", + "01fd030b1c3889b79483f5d0431b74eb15e4461a1b21ce17e1a3ace4e8c074cb32a4670596be3ff709630b493744752991c4a9599ef33c416191574e8e11c00686068ed4bbc3c3fa9e1929447f2d28bd1f2468a3075b2a67f9228a6fd20ca9b67f8ed643c385caed8ad95d89a31a4b9cb3cdb989aef8627f80da414523331a1b8fad37f6843bca609198755fa31d01a007540a20d68a633ec5d5c3f59ce972e9826cf8d19a2afa849e8a473ac8c23be77f82dfd55c56876098837abf14874821476c7be64f8583924320412134929f8da91128244e793c618ad88eb7d476948edc73c836866d92f8d3409def9c" + }, + { /* i=578 cDividendBits=1269 cDivisorBits=115 */ + "16dcd6c0e25a67a95d02ff257988dba8ee75791143bbd933eb4590e2c30c6f4fffd17e3d5b445496adf4a30310c3aeb8511904e1397d2ce26e73866010fe551c6059c434bb6ce31bf45dd317db9c2e7b42766205a021ae42a9a932e87fd0ac20f14cba38e60c934fe740a5746f09c8c47a7cffa9c5015f5d232c4ac15acaa18925e43f5a0ee6a379e269f06542e3c989690c2b4c958a7512881a69e971db8b", + "02b1069c4f59d56be2230e477c6941", + "087e8ee64805a6d56e1b6bfa57abd17936a7134ef6c9fba4f2852fbd2518c0ca53a0ae722b39685003a5d78cc8ed657d259dc3072732d6071c6ec701dbebd725dd3d8112a39a1f43e7575e2147622d371ab15dbfe891f33e39a637b8bd6757176ef667d1b8ed8002d0c8f6777d0db97c1d985a0a4e06e81a63cc5dc0c6a7e486b327a1393e4bb909f8b8457d85f5dc8799", + "027616ac1a0ca693a8b3c3ebb9acb2" + }, + { /* i=579 cDividendBits=2723 cDivisorBits=351 */ + "07f3dd1515508ac979db1654f256fbd2f3bfd904c8c271b9a70a2fcf624a6ff7d93fdf45a7252e0208f924a1ff86b45bc2f6b1aa520d35873a9f0f970e01657d9d08f07fdcb07a782b3a47d0f61c9271b67ef1bbefa129ddd9d5bf0ae5a07f3f0394d699518756980ef322ecf4f3c6e0826257003b776460020a9634cef1578246804af4825c83e5349999ff3cb389a4e998f6a5d9a7d9349970e3fb94568b2607c30e3a216e39429f5057eac1be0abc8518db8a3723efe41bfdfe4259f545afa9a750bae818e9b3d03d38b17513c6748f39667bc3beb6834b74a343de2d173b8e2deda77c8fb9c2eba2c647922ec25e4e483ef581ac4471bd05a0bfd9dfbd891e0bb37388c4030db5736caabb84a3e3870654ab6044c6b4fde6bc64fd44c52cf241d596585eee884f0ae1f46564f36f72217ac9fe0929ef8079283c50c4422cc934016fac7399751113d9ade86edbed952edcea52", + "6e8442f3b97cd7cfaa96c564f1e37f238f3cf61b775ee5ada8f7231933a5305014e1f49d63cb68cc125a3ba5", + "126bdc462ff3acaee5be4b7ecce8378e3a590011fa281ba2b7c6e03701be86c3664bb6cb5519751bae6556665036539d1d8656df5a75018b1aebf982c66e5d031b78a2855b9232e9f25ff978ecbbf0f74f997c1304ab3536a647bc599a513df6ae2eb7127c3003f4d12a3ae12f696cc04b728e78fc26eaa02fce89e6e763ae7e874ad8a063ddef335f95ae30672cc25262a1e108a2d9a36e26f62870e745fa9ce27d8069f32f407ff5051fb17711ee1d09ae34b1c27ce8dabffdca4f5232b70260b75eeff20031f2913b3f99f8c1689c306ce3c7f051d7fc3707f0a6bf1aa37de5eaf27f268016825007b8ce4be7f69b27ebc45536a0dfb6f48ba5028205fc24e299f0cdc4a9338c9ac96862e34968e0bb4ca7fda77f94315470a0aee9046edeb6f69222b92506bf6c", + "1a7dfb2f7634c35fddb07f10cbcc8e7f59dce2301cc4100272aa83c4cd47ec78b333d125cd30f8d2df6da5b6" + }, + { /* i=580 cDividendBits=2880 cDivisorBits=1393 */ + "19c4c7b7b14e1e133c5f1582cf04cfff06fab563e529275b5132b2c90c17287d36699af48304d6284d1c3d3b2ae73eef9a85b30e01f1231e3f9d003f31bb5246d885f5691fa10b5468941f7db8bcbc5b4f6acb318d553dee20b45011444dc708bd87287e38310e698f3903dc1af893ace93c6692a873c09eb241aa4f99980e1ca67ce0c5e41cd7902c3c2320586c245202daeb3ece8c21ce75c9779d319e2b9a511505783fba23ecb66c56d7ba6dbcfd4574a1c806587d305fba769ee2b86f8e6bb652b5619274b24910498d689b3a261ff3c456a1ceb410f7d60710473f4c935f899e349888881442ced2f50ee48028c481d31742021b0d6f8ff2e1878cb6d56f6d2df3b822eb4bec3f188d3d8117ded77148a5596569136165032870fc6fdb2ce84bd665c6c17b686b288e0f42a8895ecad012c359ff2fa8e13e5fddabe72bb47808c0ea5894dbfe3725941aa634941f6ca903a4502af7e3e94bb5b792216a146a03b1bc7ddc7b", + "012e32bebbf952b924502afbdc46d892372e0fda5399571cd765cf63ff78535fd98f93ce208d09d5da24a62b59f611a3cd8bef15a457af00275291a9f4838be1fcec5acf9be05bd57c13002500c279b3abd2f01889a0a3518f2ebb9d07cccb76a24e7e2c934da70939d64a2ed5a95d0eb338cb0efb67e48f8b27a54b89041e28bfaa59187fda3faffac85fe09b0831941dcfe16ce06cd9c1d3bf158abae40dab5cb614e0b4b1662045a30d6e50f33c", + "15d44df9f383d7a0dea452fcb278a2c62f16771fccfb07d2bd222db7e3c5021f29116bfff0945f0850c039376acedd8e489e8ba73d5d1d4f5b86e0efd7d2a122e9b86a9c0a4bf644afab93738bc7282acdb19e2d294b54c04d2289acb6c7cd9cab7ea5716856cc7de45565992780ddd1220f50fd7cab638a088a9e59c0af6ef50cff239dd22ddbaab9a6cfc6cbe3f01183397e47e8c8d080af92bf738fe74f649ed15c05d98e0316cf72a6cb8b5a865f9e990601ec34cfb79271", + "e0f9ed254f1d5a75300168fac9d38647db5da0430c2cfb4d6a5daba13c79891642b7f88c325238623e3aedf6c9c96df5dfae50e186be8660b06fb3fc9ddb69ca49b79bc922a02b5024941ccba7df220ddf9165428c1e2c06bc9dbb0562e0e069161e0a68dd752726dff1ff0954ef5d4134abafca50a4041170bf7d40f152488702a88c6e662497e710ae22ccf9776ea10d38ae3831fc00ac0e48d009010cb40a3393d2acf9014ff9591e7c2646ff" + }, + { /* i=581 cDividendBits=474 cDivisorBits=435 */ + "a7bef36381b4d9d3928da71948a2a939e0c8d444fa7cc3111c4a93e6c000564c3acba398a3bdb4d5caf2fe3c12d3c1de2a716b364fb491f9452594", + "01ae2d23ff670b1a1df065c5ef5cf1769a6b83274d0c6d8620cfcf8aa2940360509356facfa7215f4c2c192e2222e5815723ef1d1280f4", + "63d38e62cd", + "01a007d257a8a8f31f25a2a73648143f3a135b10a99ac8fdaa0096e9f6294b36708d336f03a473b500a77b51dd2db30606260df8be7a30" + }, + { /* i=582 cDividendBits=1822 cDivisorBits=295 */ + "1f8c503ed387453b81d0d3de4c81e598daf47263fe2c717f965e3b53188a1dc18498c6cfaf06a513f266385149b21ad3b1afcb08811fd278f9b97dc681927434fff5a5c850bd307580c5eab7bf3fa2899a220504f3bb08336ccf3c4f08f6a91634c804549a662a0d260d96ba433569a227ca3266031aa1bdae52387945c852c6cc03a7d61d0fe40a09215aea3bfc7b2d78b00d807be0c34447ca0137519a3b576122b981109e78f51196f06b6ed4a468704bad2f8d0b08239433c5126a6379378bf0a9877cb2cf4b70d80008955a3bcceaa90eea4347ddd622da378580f98378d0620e7b", + "7ac55d3b690554e781efed03acddc707d3706af5c5f22eaadb3d36386930bebe1dd9329b4c", + "41c899040ff081f470fdf53e29fe691dbeca91b3b79c0b2db222d7466ba71e6b99d02ac7c2cbdfe7580cfe00684afd592582ff5aadb7b12f180324aac2ae1baa20494736a6e7fc78e05306205476870f3a52f493f35a2f2e011c44525d6905bcd6fac54000285dc2ad4c4a34346df8959702aae94124e2456e002dc5a0ea5c2b9bc2c89375ad1d5daeb887c97cb5d0bd27311fa3eac97a79613e97f6fbcb145e0339e34ba219b1302a35321eb5777753e6cb948ce84983af2a7c01dde4a05c", + "1a8525d87ffa6fb23b8cebb69d17d3cad1e4f61333262c339626158d92e3a0fc903572bf2b" + }, + { /* i=583 cDividendBits=960 cDivisorBits=352 */ + "b77fc0092c47d1d689018a15b4469ca24fd6414d6b00f5650faf21c4db11fd3437501227906dd7573e221220890928b92e07de12554e40dc6777ed471792e9904cd663b21666d24d52ea3739c82ba93a8b461a3d4f47baa8dc397eec98914847bab5a9d00a0976b97a57236e83a05722b7bc1220a8b0f254", + "fa7b2abd4867bed63b7fe56fdfe64119a1ad8126a624ad13e61f24f1b8fcf7da3510f7ffa1f43ab30127e136", + "bb8ac5aedb7b98b15b3c84fd79d22b99444550a4e813e482ed6ac9344519d4415f4c31a5df0c7e2a189fdc2bafd4dc0d9101b490efe71d80e5d50270dd9947ac88570ec27325e642016ee306", + "26304cfa0afbfefdadbfaa85107de2bb4f418d12bdd57d4b80dcb056b0841abb4edda652809dbcf849dac910" + }, + { /* i=584 cDividendBits=440 cDivisorBits=232 */ + "2820e552bb4455ea99560fc479d4b614dd71471186f427f71d05aee6cb04fa41c54df72a3361ca4e9c42c6d6fd2543e26cfbb921965d55", + "cadad279faed377efd14a15bb2e9b93483bc152af59dc98629e01088c4", + "32a441a9c01840fe36e5cf32c322f897be252db482d8dcc7fa2f", + "23ecfe4ba8681f87f01d5f7aad0d0f1f45cd1f6805c516257618a1d959" + }, + { /* i=585 cDividendBits=3450 cDivisorBits=152 */ + "03bbc57b972517ae19965c9aa23830bc8546060ecd049130037420e38c297e40e5f7ae54bcfcbb1c927e9cf6a807b817fc1438e8d4b10342e96cb12a0011e843cc97400e081eb47984958f0e0ed81c3745ca1759e74b8abd033fb94f0d20ffd77a70850a9d157d52e23a04aad7222ae5297e74bf6face4eb60438993865c242d2b47387c1a87e5b67a9efa8aaabe571de8638f35f97f0c663a47c5b1fa506cb2a49ba4c3f098d13495bd23572eba5b5333cdf387c9a23b67d4b59a1a6e2cb8e0236f375d4feb6041e5635f15cd97eddd1d8fd0acaca2f971093c570c352ac8529ab66776d75894f71f5c06a4133ef5ae0e321410e46779443ea725b4dd7ccd45c6ed1b84d2345e588f12640a682afcb2e349c865fcc85e79ad1a68e7b3dc54f9a55c9b9c13825f478b0ea67f6eac7f0e9e4a64fff9c4627bd7267e7a380178d1875c4077ecb990a59c4c6ef4a908a0520ae7c1c5da97172e20eeecd1ecdd4ec5efe58ae3da1c4d4c71e7d176a821c143e2cac212843678a4ef3b9af397b65635eec890091e2b9abe15ef2c228066fc653287f5d0efbfd7c1a56aeff99c185da3aa9e9e692f7bd32ab28d486785c6f1ec", + "bfca65e31f193e57fee5ffad2421bb71c738f6", + "04fbc0ce04ed369843dc67cb4fa38b66d420321b9f144cab288ab99771cb8b415c35aa2ea6c599aa44405c52c9279a5b63b53d55609ea9f0f16961a4c2a2b0da3f97d3c9472d260225b8f2e4a1eceaa2fb2f611fb64d0dfc34769cab96e84074363afedf8dd9dff8310e784f2155fba7c6b1d4748935dabc5454c7d1a5c4add3b913ce0b1ce15a494790057032f7b25541a9395bfac66c2a0baa1cdff1d3440863453ecc6f7bd4c23bf4b25d4b926d7fb5db31f06905e73d203604768310e1997b4c1d399b79c3d7f6d55f6aa230e463bb6ba37c36c6d0526653149405d6e7b58be832371fbe662784e15dd0df3e21350d4950e1eb8f563b7d2489a753c42caca923f079752946bb741ae638dff969439af63aa1b82297ffaa41f2ba49c857dc5edb989b9bb735e792ffcbc31014c03cf32edabbf3b7163111ea6c7a3ca1919b121ad91dcf403b0c480ceea6287fcac94a3bb7943f6996ac2625f266df8827daa5f7c6d76500785c8469f1569609b9635d1cf5eb81c12bf33adde5a9852fd0d5cfb712d58b2dedf4f071a5cb9cc23d6ab6266417fbbf5079683e04e527", + "b3f9e68345432d385a2cb959a8073982a13672" + }, + { /* i=586 cDividendBits=2483 cDivisorBits=1613 */ + "0372dfdc699a52609e6ac12c06632a0b2d553e49a38dd52fb87fd8b5f17ef638f8c2945bb271b2c4d3acd562e93f76b92f22ce083ea24c406327463e5e71dbb7869df4a73320e52708a2c1b1c28c1b45083e773103443f6617173fd47f96dbb33344ba393e40ac18b0fcca02d2c9f40182940bba0de6bb011090b6e76a72ce60ffbd2751e2ae17b87df0e570c4da0651b6b485608cd11dd7bdcc74e5d292aebd3304ece260ac1dd8b0131639d8e67d89e0ba60d38a656aed95436c8197c5951bf204a42c411229c4a76f4679e7123e66a4b7fb9a6bbffa6419d7cd9be346f3804b4f7647c8151fcb08b1d84d47983986357a7ebdb8f4ea37ec0de25fae081a8742a205eabacc7de3eda163164fa15abcdcb4ada46f5a428ebe81bdc2a1e84a2326a6dfab4e572f9fb5a9260802893ac4fca627de124d69", + "0dc16175b5c4df35983532f8c5310e6d761bfbffeff262bd7a3b28d6a8a45781282bc0cebf4c741a500a0e0afb75bfd56404854e18a4e92351cb8151d06d70fb40c561bb0679db6801786eccf1aadabd0e94151d067a7991277e6dabe9707d7f9f680a123b4763f1002d834f0917335ca05d16f58fccf3e0ced466b35da3f19cc00f5be2dbf1da478ac9b2fb0ac742979220a59aa003c2f3b6abd38a5e2f26795d36ed2fff4dcd6ed9de2846fb53fcda3c2a09ceb214477271a045e3566908af267901d0e1c235cf3e64", + "402f1278e04250c60262e1eb4e8579b00ea4cf867fe01039be2c6089e2e70f36e52ffaf2e122c3e3ee8c9e1098517ccf0f6dc058bd46e5ee00dc7b95bccc1b0059c82839673adc22583fb227c5403fc47e3746963241ae17d27fd95898aae99cf176d10b1575e8ef4ec8930d8e", + "4fb1816260e803926ed47c7523dca6e1531872140efdcecb0f91d2bca47a494f9232e8de18c73ac842e0beb6c3773f2661359a799168b7ef72a494bacd52bd1cd5f904d2ba5da2027bd65c8978a85d72f3466955d11e3610a2800130bc3277fcd45a93c843744b39ca25b2aff9fff2075a1c33bc71fa3a93ea92de3c716230ff99496be4fe2c57dca9def86d87f5183cc5b94c7e6fb188afb6a11bd107533e2da137d525efdf8b8ad6733fada4c6b934825f8ac8ad5eb51d9d3604c66f6cabd2c1ac15627b8b869df1" + }, + { /* i=587 cDividendBits=2500 cDivisorBits=822 */ + "0ab1f14a584488cec2317d1dd4bd01355e7c5499b2843e217f163b08eda48dbcb51dda3df7b6f2347284107404dc50ab73472d66b634851c3e3f55bfeef73f7a66ef15cbc3f2538493d382d868c19429c96a18cf36b2d0c6f17fa339dc6518f04b3ecf2787a071bdac9f156de5673558ba66abf1966286a7e78fdc4a277e34364bb6ffce80a93ea1d86afaa49b1054cef2a1a719367826f9c050771ae3c3f73fd33293d446fd8185ac8cdc2c23c6e66148a885c9f9d088284f6b2ad0a228ec63cee2209d5103c9b3dcb498d0a987205bc019deec9f2f496547f52c3d2adca3d6b02c48f2a179237b729338d882194ee75767d08af236d1936513093042d21dc77c2732b88e80baf0f2e4d74dc343d1c89d70797bd8bdfb43544ec72aa62f9b7dbbf59cae1db9db250d9fc9777b48c860de9bf532795ea796ad", + "3d94d98adb55d0c9c0d4fed69d53a661d16f91bc977c3b0d886ffdaa044252f06f6ebf4401b157ac03ee497491be04950599d904e4f4b92db1bf780a37e8c414be64e883fea6aa95f50598189a29d5882b6c510bed8c0ca54c42b10adce1a81e0c23f54e040df7", + "2c75e41af6459a2f28b0e15fe80203b8a6aad790eb61cb9e4b698e86541177c07e3bae589fe84f25dff1decb1bc53dbb55ea0daa21a9aeed3d7e250e859f1d051086ce8a61f8f58c2b25de1d5e8f6ff19293f6421be6b0e87e6c5c2388698610ce778b1805cdcc860019676e01f47a22dc6cbed9489685c91acee65bd1d9201eb6b29872537c4c01379f33f197cce874a5f540ddef4cacfa4ff17cfb10d95ed4019649431b9b0784c1197756070ca58c6eb5cc1c9ff5e3c7d2ca53df838ed693b8b65e6fa8d35ece44e76352e0aafa468c09", + "1a9ad718c9644e574a529e8695a7cde14bd3f90e572001619c5937e1b6de25df9c0a2c73f152b61b1fe8da46b838c7cd6acfc9adf3edbb27d27b201a41bf42922343c94fbe126fee718648165050a72d9ebe4d5f323a9e23dde0c7dce7255a2d93176a615604fe" + }, + { /* i=588 cDividendBits=2914 cDivisorBits=2426 */ + "033e18371f3cd4a0182a2c35dcc9f08ba4944ecb2d9b30b7a0bfa572e343f34d2987161cf07a6d33aa1af48af9d306039d06e50e2564844247e69fb91a835aa8ba2b57f88c06c615287ee0482e9df679c6aae954a0f5a6e06061d932e1cad1d13e96a3ccd8069d9ccc0530846a484099e28e55e6be90b725dc4c13f9e69f4d155ca4404ce7cd9a03d0a892d79647073f2e56b1f2020c9626dcdcebbf6b871b8bf09456bebfb38dc04e682c8bfe695211531424418036633616d91b73101eebed65c3bd70c8c52a28e5e7eab4cc453a47ccdc01bcc34af6defa6a39c6574d3e8c9bee929e1da5d62ab6d56911c050f833a0e47b7d6aa6aa0a5982c33e502c017dc710220c5c8e6d8dbbd002c1c7490aa5ad795f8fe151a589372a3c3c9a7166226ec18a8e39d16278730da75771b6d1635cbb50afa1063914f5ff88717d1964eb6b74488b1d58a0dc68d031ed544a5693a4bc565f20099d8d0230b9605777a8e359b0670092bfe418385f1c5dfd", + "0c8e23fa52201cb24977d55fbf90d1fe4fb040a5a8618a2e1e518b863fdd59a79874bd38712cd7fe94df519d6ac7a6145f4bf2b7e440d9f94e398604a1289cbba34b1779e6550f616effd95d97fa6db3127bdc39c9a187f244125f06c6b8b917879be314b71a218f9d48d804759a187155beb95a3b60e1da5014c53dbaa14b051e9a4d4287a58294d4ee26c1d890351718cdc14fa02cd0870592533f9ca225c824bb504aeb2ebd142f3f779219791fce5b8f424c91892a2e2e4e4eeb1b6c0de51c6c3cfe37ce368125ee0700fe528cb11c4eb06517e3bf3424f636b6689d117ceb334f14a62ea1f693078dd45d6cdc83ce188990a6671eb555c27f550659389220a536f06b052e88bf8bb62bd95d077c624b151abbc3f8ffb457abd03a024389250ac5f0b7eedae7535c66dbb2b35d", + "421d8b6cbbbe20fe5db7bff8fca68e42e2e40b642b27d667d3dd07da4b195e9a4f7a276e6d6a590cc4dea12d776a1a6f5240f6302304c2cae577580164fb", + "0b30ae0be623eed6d873b449fa1f1f45de2937a473efffe598ea420f7a9004f63209755c8ee2c6bd6f381a18dd065f65de2d64412f1112fa9c3f7319e1dbceb25db4705a0698405a91c07ef250a0b7f5e8c15af8a2a9ea1236a86af4464123a3e3ddb33f30bf1c0a71977d498e998fb46fb6e94b04429ff03279d943433e6368501210b00ab98a8eac22d23ba4851623e0c3a9978134c2ccde9eac8ead53143bc2bd097277d8bdb5f8fc432e81038ad6f28e237522223fa2dd1fb7bbc7e016f8e7123952be3a7909e25c74545856a265d6beeadd2431f2ebb374559155d6cd379a8371765f02df585bfd5304b675ecfb93f36f79e53a04416caf6ab187c6a2ef15044c4f61a95f8d829dd6af917ff83466db132ed49d5bf5566fcb9d2a037519a13d2dd2937cc5ad3e76f77d792dce" + }, + { /* i=589 cDividendBits=4048 cDivisorBits=600 */ + "7a70f3a1bd86c2f5ce8e02046735c2d60d31d416812d9ae0b51da4a386372a55ae2b1ca2bb5f424cc4274d87cfedec361a65955b859a43ff01e6ccaeb405cf9064a380390497371be877f44aaaae9d479ae7528ece3943ae7cb95cefe0c1edeaaac45e7e855a06a4b901f6b2e92ce49525f43b5f0473e35cde684c0519641497a40a859d18280f2ec451baaecb834c3ca3fc988944d45bba1cf20ae35132ec0ee1f0dfed9369393236b2de7316b4e1db2ab29b643934c89149ab1082d4948e644ed070e66d2513f1fd937090fe1b9a20957a94c7f196d473be0503018995292cc6d035a612712e6dcdac2c7e1361ab2925c3c7efc290342d41293475deb778d4fba4bf07a61289b7c6788b21079deb8290295a554f0b06368773f8d5740d98e5d547ff429278afa76f20b8782b8bf8e15c82e0fb9958485ccf6982f23142041181f6856158a0f9432fbec379e7e035e34822173a680d027d789d822e370bc730261b72791977d800398d21ed9a3bfe5b2b07998f2fc39da4a3c20c539393fae9f5edda3f7d48a5afbd9da3eca9f9cd11d4dc5e2a056e4428cd1cefed347735875e5a68d7c82c34dc9157085ad49500c19a45e2c490ec2e017232ceffacbdb20f376c4794c09e0919904ba2777d17198144303f9f9034cbaed2b044262389e2705ef8d66a403d296eb1994ea7f14521a7f5474dc3afab4022de88", + "67ad180363a87fd7df8844cfdbe77a1d8659f1b5104fc43db1490381091963a8d8d7fca6847140f9f7689939e9b0fac422b804b2c846660b6c23dce0f9e600cfce6fcd961056694523c75f", + "012e55d177a4de6c15b2b263a9d4149257987aa94f74c5ec68f7a1af7507007c4106bc79c897df10cf7aeb445bd98ee679d7b0b7dade405150aa613f7612811af1b97b12d9d7ca2d7a3b8398841e2a0096cc8d993b7edff6ada34e8f4ff7c6195fed0bd207d6d888bcffb3a12a647a6e706022921da167b73deeb294bcc6daeba645ce73bd24231851d3352f2687b8678d07d3431bf652b172d7d84b8883ad9dbd7bc89f222301fc066fa0899c8ec60df83ccf2564f62aa9d14c43b403a31a9a24affb5043efd6ee40d3f8d7917122e66aaf2448c71cabcdd068d0708c1aaefb20703bed292c334bf61bc94d3664a0b322efee4e89659f6a00cd12394363eb2a2e86c4209223aba64e9726a5739d17167342c22d3c959bb1be1be865463c08873960ba913162a055bec5596bdb2ca51b2a5ab9ffcccdee369cbd1b79f14d68dac1b78a97b9a547d99cad371ef94d411b356d071ca9488e51fc5f53b872c29da52f6cbd3d7cdc25961e7825424e6e8ca6b9fabb8e3d0210a5e40a49096dd060540e03bd4bb005db550931839e3126460baa801ffa2bd7c3d6c2b5c816ba0f8b4bda64b42b05107d1ca47bc3dcabf82f28", + "2a2db7134d5591db173ca7ce1e827782f89cc824e22cb347011d0d23dc4245169a967c6c8a6028ee4623b8bae791f98e1b2a84cdf8a7ba8279fce945183ec66a8aad9f81ed480d47e946b0" + }, + { /* i=590 cDividendBits=556 cDivisorBits=206 */ + "0359fb836358b15a87287cd07c375323de777a196acc76d6d1367edd7867cba2e3e10c42f362b44fa7cdb5d323e04cddfc20ed41f74561c7581b10134b2156ae006a7c45132d", + "0a79b20736410414cc742f90ffb715f8384497a3ba5a5bd21639", + "51e79bbe2627367495bbaa2578c0d157a95e7e7099b1da01a339194b20664df14b936e4e5218f304685dd79d", + "03ca02aa2133865e44f74f72577ee972bac63be9aba5810e9338" + }, + { /* i=591 cDividendBits=422 cDivisorBits=208 */ + "04ed0b1371418a69c47e37ca841a5597f622bd04d1e4e137f0b4d003008313b3a21fe17ffe383f07a7c81519eb25e209333f20625e", + "a5972d109f9381f66736261293cfc357cab7d1324e29aaa3bae9", + "079d8ce2c22a0eaf818cd5fa54c4319ac57f45e06ed526ba2ab9d6", + "9579a16cd75b13aa07815635d7db102d1c2d139805ce53f5c298" + }, + { /* i=592 cDividendBits=2084 cDivisorBits=904 */ + "040c84ca962bfb0cb5a1c1722b23c4242cee3b211e38646e3af132eb9697ee58235dd87155efbfbcc6b928c465d8af5256431a7b72e0796e645fa070c48bf266e5577de837e8e7832fcf1d002091a2004eb6b0814842b42d1bacb9521bcf31ef2715f6a0b25802a5a2b35372c58cac8c5f0ba8e2493457cc2b1f44edffaab32cdbed0445592310f62c23e9324e7e25916a55010e89b09ef5e8a268b4f61f9b20be38923b41ed02df5b8a83ff769b7c0d19717bdaf2e7686534f4a9740998d4ccb2b5627cd6f06d2e99c8b00e5e3a89ba480b57ae7d479efd46ceb5dccf2c99f54123d3ca878f247880639dab2385e5e62571ae76a00d3d592b7a998ffa8a1156b8d9338b6d", + "821bf1f8829ec123382363e7544162fb1b65cb5a569e7cd0886d3d5657d964ccf8156a4a92f61c232f486b5df853e71bd4b1f9c5d4a584d9181554891d812f346253168b9af83bacd6b7678b2c7109fe458eba9d69b13675eb09087b12abf24ba2cb486b80458eaad1a56085bcb575006b", + "07f76e9a19aa466a470c234d20bfbd0e07bddc9a22b1b323e0cdac8499a411189a045049ca1c7e1a607a43d4077c5e69bc06d68737a222863309cc7c3d92517ece451ef624e2a5894b790237d8ff23c0eaa5299963a97f367ab2ef999ccf81bd6483fb77fda713f75d3445b50c2e20b7d039d83fcb54f4fe023e919e2e03641ee9008d46b7ac4de180aa85924565eb2c97b00201", + "66a3470573ad87d7c1b9c4e970d38858c10eff93496e8324f8546d9af226e63979c4325f39d5ecdf841382e13138cd03d47fecbe8425492ebac66614ed63b76bd5ae9fd0473e2c206b6eb39359d39b9e60ecb36a2388f5982901425d0bd307f9ed3bde05784a5075524a2b487dd32db502" + }, + { /* i=593 cDividendBits=277 cDivisorBits=203 */ + "112b1b96c477f8b58735643d99c611f305dcd8f72e33504b233a844142ae5eda73d8d1", + "0327dee47e6844610a26b3ec3f575a9844ea954e001f69868554", + "0570bb789437ff907430", + "31cbd5d1828cc65aac8a190d69e89771ed4270dd247190c911" + }, + { /* i=594 cDividendBits=3294 cDivisorBits=1107 */ + "10a12a642b6824ef395cacdad3cc458ed35355570a35bb7fb063fc32838f102a62d1188e0ffa2aff7b497ae182eb08ff2da6c8b1a34f4a2afb628d14b25d9bfca5960e9531b63de89f3d458dd955e7b229d1c61ef87896934c76307dc4fee62643697706de39f4e8d9b9aef22984358b8370f5af9c918b4b95b7f62e298054d5d2d64dfc15c2da3b46cc957d742e2de3ee644c0092ecbc9343e60b34d55a4cb0057d6e06926dc13d21777a52f8f4adfe06fdabca5ae46e80c168777336ecf9d768b50a32067f40a2353acb75d9718b5b1b916d27cfd49e9eec1f7ed53b9890c22f47cace44664a61f29a2fb365b0eed260f2f85f9eb578facd54ba7aaa212d0ae135d61330ad80ce6d9846889a525f7c93083f6010056e65aeff50062d1e25eb53aadbb299ebc43baa42770cce6c2030f70b4283654394792adca029ba9f330aa867d74ecf9a5086862463cb9daddd3d53cf3cc0a760ec49a96471cbdf4cb2c8e3ca878f493c235732ddb6d3ff755eb7af51ae071d69b58e0ffb50e5db2e299a2c77d4de153b02975c6bf8abe090327a8921322ccb9a1f22ff92e7ee", + "013c759119fa883cffb0ba6c30449634c39d1967c4a5cc150eb2d6939afad284e1493f87f266182af7de0e88ec99f2d9c22e3284a0e2f1bb5ee131bf018a01c5de70de3251496bd714f29c47835344a3b9b2128eb0dcf39382868c5903cf6d311307c5e4e6c2eaea8b8a6bb631b296a1fe0f11b3dc8e047665e6520593675818f87e51a3e5eb1d6bbf0fee", + "0d73d68aa54da2db5139a5c1e48cdd35f36cc057c042c09a08ccb2a33c1d3bfef9428855cc6c91d593460e3ed2506abf69d2a9634f7b1b5f050d6c6fe119e11db84a0ed6857d415a7e59c9ea0ea26052b306104a22a4578e72a7bc06d294442266136f6991698d934baf82e086a5f4e2b8f57ad81ba428826aa13f635bccba4e3373f3f4cdd9ffbd824473e00916ca27e77e103f0773642a709825396efb76300213c88d55ea568d49c2e12ffda5a978b3c1b1aa6ec3a1c893bf27bd625822a786fe245800947929127cac7c1b8c26f2a9635c8201cb3c0c646ff5f92a66967916eb7d9d0dec85e2f2ddb951be35df2ac0c7e14aa17d72925c2c0ad2590d7e3527302af81a927ac88574249c7ee227aab6fd", + "42db9d6935712d8a46255bf034e19fb793e70f670c10219a7ae390e468ab97ec4bec77e1b237a1ab32493532cbbd7347f91dd9107cb3fe609667b048c7a606daa9eae23798e1071fbe592075af2c4259b14c18ad50f33c07e94b20e58a63cb72e0b1789500a1948301df5066312184815631baf2b09673a4cee5f6f4c796a7ff03f469bafc0bd860f5b8" + }, + { /* i=595 cDividendBits=207 cDivisorBits=34 */ + "426b352c8381196cd00695026383b987cf0b6199be441b50f8bb", + "022a159dc3", + "1eafe16cf42537c06fb007288f1de0c4ddf0651ca219", + "01210b2ab0" + }, + { /* i=596 cDividendBits=1832 cDivisorBits=1362 */ + "3de30769b045c24b15f5243c45093b0169fa455f47a593d93e95d6a6911db93ace160a1cc74b2e58553f370164f83dca19b0f0cada93541da273a0e04de9e90768567a0aed3fb14d6db3202e19d3bf899bbd1f35cff5c8ce9bcbd704c8f606273c8564ff9b6f8a10ef88c17c3031719e2ac3654cef346dc0d421de1589c0f3356b81c33d87718df051c70a5c97cb31ded82d8e41e1ade737133d5356cc7c8fc6130eddf6623f6ce6b587373a951718a09b61caa775926e1607af78930f39583c88fadd3cf91630d61fca52a9427503e4607eec3d520bbe894fc4dcb4e62bf43e59a125d238", + "01aedc67b958142ca6da50da6257f3f0ac538ae93b0516e426c011c2a5e5cc0e3ad200e649fae22436f883c6eda7514ba10a8e742fb05cde63f3e421ee433791d330133a0ba36125070890e7e8be78d766ca08e84b162d1595268d0ae4c0b83be35879ecd2fb283323b867628f47a64ab31aea79a44cef7a010be47bef23b9d7b5e959ad4bcea1af4efe076f84109abfcc8530e4f4a58a9c17c56615fef2b364af22cc78b6eaef1056cad2", + "24c54805d52c53b9989d87ed8b9167d3e20feb32ec4aae4e93492305fa08dae2ab827d7d9afb510423bb97c58ca7b02c7db8578363a6acb226ccf2", + "e029f8c9c8f8482b56835f3ab1fa0c9e65628d12dca42031f30311207aec460cebf0a1ef56d8f80c2e0a0d1be7c5bfb7560b22adb0a9f6ce7f84c0cc7646ebb63f88c735a2910404c3d5aacf51c99bff5b5ab59df5f10b9a65a7e69274945d5119e36f93e2e7a9866d7446fe82bdbde44c6adacd8912fd46de5cf31a0f32f7e4210b449ecd4d0454d53a9523774e41357970dc1ed323eba268f85c3d3016ba6d4efa0bf07056e64ebfb4" + }, + { /* i=597 cDividendBits=2 cDivisorBits=1 */ + "03", + "01", + "03", + "00" + }, + { /* i=598 cDividendBits=203 cDivisorBits=82 */ + "07f7af1243c6897cdbb57026ee88040ea9ee1bd0423746effd22", + "0327559fb69c4872c7ae2d", + "0286c4ea8c4a0df4022432a6adbe891b", + "438e50c12510a1448963" + }, + { /* i=599 cDividendBits=1847 cDivisorBits=1209 */ + "6d7fa1b9cab95b01e55cae322f5117e03d932954eac1538b50f0740227da27dbc70fbf9e7979084d4f3d2e405afb0b313b75352feac8022983389276140d794f3f1b66dbfe5398e6775c99e98016813058a86c5d1fbd11695c6fd38516ee6d46d015525dab26a4889c307d12f51d98955675ae8377d1c86dc3ccc322f3127ba24e8e8418f43255febd24c3405823c8f2d309f31c7c8a3071c24cac0602703016cc3bc335858db220f913122d365e6a9253fc21af895e05fe1ff404cba924b5abd9ad51f38215269087226461328a813b3126cf22af8973e7d1a408e1f365d54f13b415a8b30b4e", + "015f3cdf081a5306099b066aab96cf034f0e74c4c1718e0d0d3890b65cf2437b2acc7c773af91162411d88482275da6113d341132a1c72aca217d173b2c9ad3732fa4727a17b1aff0e2d5b8ff2de1d1d51d0f31abab28afa3c16f32a584602d7db3ec7405cfcf204776a8003b67a755d0dbcb1136027b822c103a268b3263d9b24a979283669e15c17998ab296e82486be76bcdd660228ea", + "4fcee1e22d6bbffa94ed45cde06203311e69d11217ee6ddd7af6c1a8c50ff925af593a3c0f1305767c591b36c7a079c48ee4216a3d0a3427990b29a2bd5fb1e0b7889909507e4d3693239e93c9ff90b5", + "010e85b44cbf274f62ff63e45c290f15867b3510956273c48110172d992205a359c5070d82bbcc9cae591888c5a8d27bd919903ed859d15da78f2473a3880e5df76f626f853064922f72b41b3fefb50bafefb1549feb82d9989c7d3118a796b354dc03baaa36ed9f7ed72181544e425142d0a8c1a0e2638e83ee4997dcd811a1a199148ccc902bc242b092e664fc89a106c76986d7127ddc" + }, + { /* i=600 cDividendBits=158 cDivisorBits=43 */ + "3bd29e212f6a93279aa2490cae5eb6b8cd131b33", + "0496e23dec3f", + "0d08f6339ba1f435b23fb446d40419", + "0146df2a0d0c" + }, + { /* i=601 cDividendBits=1513 cDivisorBits=304 */ + "013e06d84c0477d0e88ad231be752b21e142a33291ad535cece4d5acce801e8b8cbd95e38b505aba0926597561fa2ae61fa09665c7c9c215a27e9f7f80d7e33d14c790b6ba3f85a9439012417d47c8a3853034ea6eccc44be745c24d7b5591f80e9fd6a1de1b87a7e02a8bf33b6444a5cbd7f05d909b475299ecb150006061341d05eef616d319696e043c340a601364fe70fb3afec604496ab9eb16e9c3eeea22e49742f13e94541dc4a7738e1a8fe324f85eada8e847ff90675d0d6e99", + "ec656ff520d700152c719de087c384181f75949d54d3f6ca42bc50e1797797393d904acfb2c1", + "01586660daba988b28f31e8e898d5b8d2c9153a5549b23ef86c870b9458da3569e41ed736211631b7f782b9db4a9eaa0e3b868f8e7eba5596de4202e61877e9817bb2b5876d758fd8658058cd508f28a407758a41090b81aee59a7e568b271a38ceb663860d5783a17baae31f461c8302e120a1a13d94fa35f71b839e59b0391eb0df572afc0fc5a258d43dcd20b63e7415e82e1c2b3deab", + "65af91eafe6bf498bd247db9eea93bc305a21e49fc45cb2e383c35212d985f9a7dd4085aa9ae" + }, + { /* i=602 cDividendBits=2754 cDivisorBits=1184 */ + "037c0e8b72a54f37f50063db50ad121ffdf980393fc995473fc0f421b7948a9fe792bee906d972e1a0a7e5e8d9178fa8e77860cf1f67c68e267103965a1e8e3f7a738f895932962262cd0071ec2e7682c094196d41706906b8173939a6d0e2eaae460705c76ade02bdda2d168ecbd7da53234add4b29dd717fd224a4ed1d4802cee8d5a3c37a6a1b89c0caa7695bf745501c3e7a58eeeb2750697a17d13d2fa24e27606fa14e079be72607de9b946a9309b908f47379bda9068e26326f59bf2ea457149eea60fa9506515ae2ec7ac11489538ea394e5e2b2e44e74ffe9dcb1c5ef602d7795dd90c674ed1177cf4d353aa667fb15de8cb71c0f1192141dee8877d21e318f8d138bba342b2500f7f2333788c69bc0c25a2031ab340bb59ecba307b344b62f6b331da8b43260386d9b452399f29312a494cf10d1f2ed262c6378a514aa4ac321aea562a19d2023f9bdfc1cf82d87cc82cf537ba3", + "22b61f865eb3a2cfccf9ade12641feddeccb6f58f390dec645ce7665aba90f8c373e6c1f09c1920efeaacb7f04f076176f3a833a14dfcd97e96be89661b0827f8522e86374b1a374f0c314a7560a6e37239e7cab320c36571ff74914abea77bc75a419b1fb476111c3148224fd9cee260cfeb938eb4797ab72c9cf91438732f5d51f26ee6b97b186aed09afafd8990e7d65c3a89", + "19b300e6b707a5c2ff19d059976b07644c7799e127998a9dc7c8bfb3a73aab1ea1e6c8b0148776e6305e40481379d54bff2ce3568a9bee6d936ff7b3e845e533bf9b94b564af1db1bf962651f9642676344539cb11bbb757675c4cbd1604462b953039e6f8a6ad5c6351d5f487785639000451242703a3ccc0912d6bc0b4054bb281d95e7536c18f287b356c820e99a288035c02e45b57a7624609986efa5e410ba5ac1d3522ebda29b675fd757c57ac4cea63f7cb80e6c19cd7760653bd3ce6c9700e38e9", + "0db3e3925d16d825290431effd49205d7289fe965316765b1b7ada641948ff242d649e51bec4bacc50e686382eabfed5f9f449912de94cc6f7e931bf51b8d091880056f4b7510039b1b43d5d8f6941272851745d566768b7d5ef1a0d6ae5d00a3ddf498dc98e46902f4d39423fac193b9c47576b8a0fdfd168d9b0cb536e65d3b46941f0660979843b5a8447f10d146465163cf2" + }, + { /* i=603 cDividendBits=3117 cDivisorBits=930 */ + "0796ba689e474b3a75d8e748398ca62aee4c8fb9e31741110fdd693eb3f6e7c3d331c8a25bcb17fea55b847e110c37af86b61e4d780f9641362fdb615c32a8f21b287c0fd67e9cd66fce5cc1d71dd44eef516deecc6a0f2817dd5c3c2b511b59efdddbbcee518f6bc366b5d3658c36cbc337768553cc01143ad1306afffbe0b26b9f182d7d602572db0193563615c58a4817695852aba29fb6c6422436be4bd12783261af2fdc3388dbc966b218ca398f0496e268574ffd86ecfd46c7dd7489e6fa491d0dd4fc7a463f49ec56722bb82953b3548db9359d03e351450532223ad24f7a8aeb0fe8972ae06fcd883bcbcfe9c58ab79c035993e208232db0c22aa8404a2b348a8fc317b9ad51aeb1de7b76bd1d4fec63d0955398f97a977ee12ad7a8062641f89c507e2416744a147af01d080647d826ea3aa9526af6f4cf47564dcbc446ae728cbcdfd17b03d944fc7748de8747b4f28837e7ee0e8c9e9a3fe9272e66461e428073d457ad01ce06c93f20d9f9ac54b0c669b1bbca237be10b9dda31558ec6234bc", + "ff316d43764bbb9f80b71faea4cd88af15046e225e551e0e4d8591e0faac3822f410ef146db34b8ddfb326ffab6e96d301e65a76c07a517dcd75db99f3f5768b42eac89ff759027d4c94c7a18eaa4b688657dbdbdce469150af03bd810b37efad5d3bc7494b1451bd441db3dc510c61376ab297c", + "079cdf0123acbb14a8c14f24e925b9ded804ac17a330d91cf6bfabf5ef7c80f0f0e8e75209cc4fc2787e5b12893dc44c242536e1ac661769b276339b1f1a65990dc8aeaa1b3d6c86e8d02511b793337b3e94469f65c25309a2f2f0d2d66fac2a3253ff4cf2556184e0fba6ccc88170243cc5ddf0677dcc90d1706f0ca91014fbbca518ffadd272674251573051f06a9195962d7c28ea53b7bf15efe6fd869483e984e89475d1aa40e9d1fb1ff454d8a31e8a7e84ba3db6bd8dd093b8db06cbf5c81cb37ad0ca73905b2815c10f25d06c29ee9b4a351541d30ae25741e824cec93a11ba755a8a6f2692dfc2b765afcf566671c836ce988e7f0a1c763009156c905ae36529105ed7c583abb2310f3ba1931310", + "bfdb4b12f07e1d40a655170d501c51ad36db89262fa971f71dfaa6a94c6dd185c4b51981b612f8ee1df6794f6f13949325600a1f0e14040959def64e842fd4c31c714e9df1a31233713ea088368efbd7f8c14895229f0427cb619e76041b589dff001f44740e33e98f426429c977a55eff6768fc" + }, + { /* i=604 cDividendBits=1343 cDivisorBits=192 */ + "3305a136120e376b75e1c4dbb151fe7b9a9585243b15da9954b043c1e8f889e441dedd7f753c8e5131570b29392ff1fff89556d10569f61e1c0831dba5a454f9d8ac64e1634c091bb2cf545d2d9925ec83d63631037c10ca7484e5d0bb40e2ed89264758edefda669a24268b2048be8e1548f17e30b15fb2cd2d66c41da1be891d47038f990602dc0f326aff08ab457ddf6f7ca40ece0d9bc96b3439ae77df9bbdb4d40080148f08", + "067a4635318df5f6ffee3960f51050200a4cbce804b23b81", + "07e06b7f2e1eceabe51e9928e078b212ced6a8ccd5cd0e02faf7e2a5f2cd8673733db019509005e30331abf0f2daefb445dbbeb04080ec20b406afcc54729f3f7840ffa25afc1c2a01056e20a136650d581f452b6a1750a294dc1dd2a0c2775d0dbf166dc2040a725e04b645f270f8cb4d7f373577cb83e872b0783f0c919c7bf9c90916267490af1d1aedcd089e41e0d2", + "0151b1d19914b1e76cf93053be1c0f90ec027e8df80ddf36" + }, + { /* i=605 cDividendBits=900 cDivisorBits=553 */ + "04ab8cdc7c75b0cdda8414f24d027dc3fbebca6d308773a424de13ff349299fd4fde2a1e02464e88c1dc012e6661e490f864f9485ad822b1ff7f4189fe57898cec231056f5bc4ee8325a041e229c202b43712bb8abdee2f49cce7608450ead22d505792fcfa355b94d2aaadd2e5df5583c", + "35f71f5098eb2178a700aaab68619d540258f077d3c83f2913b7dd5bf84c35321cdc4d75a781fb225e82ccbdf3fec9a489e2550346c8367f8e9ef62abb472f1c2ff4123421", + "16276f96161f92dfce38216dc5ed948b395411c070289b8e123db48e443493ccce0556304a2aa862a5f2237c", + "2c9b07494b656591bde2ca9be647186e0ecac1a5a4df18319c47d6c0772dae6e1486de830a859f52639c9f7f47be1e28bd52d010f1edff1de1c7d1576238c296251bd19540" + }, + { /* i=606 cDividendBits=1527 cDivisorBits=826 */ + "7960ed43bef26538393b40f2f73bc94ab50bb3981bbbd22f29f5eaaa74369e20332dbaab955341170c57e864ac609bb3bf2a628fb40cd23126e6d8448fea3292ae988e2618fbd2da5bb3bceb9f1492fcf97b78dbcecc5aed084dddf64ffd923f855e051776d055e8d0179e8b5c44f09ff196110b05f71b6904679ba6511678d89c684067b360236e0a7fcd645cee1375ee1a71defcbf845235c979cf03fcc132da67c90826fc378f0789f3d678bd2c2fed985db7f5483972e552fa1e3896f3", + "0135a75e88d9224b048699e44486120f9ba728c54752f3a605825d66eb7b355f58e351ad2fc0379c300fb2a635178c54e2ae2664f95231e0f9d2778e1a2b2da518c31cf699fc15bb170654c515cdef88f1318b4f7ddc9be05c4a6a766782d7a3cd63dd105b3c61ff", + "6458e9cd6902dbc6075d8c524c665845eec67e12341aafb982a21f0616f5cf0d33b2b9140a873d1ab5bcfd9944e3d1c8d6ab18a917fc926adb23de82ed62d2ed44b5db13f512a9262cda1d2d6698ce51fd3b981cb24fee07", + "f0562035d765c133ecf9961b74ad7a78c0fa3b7dfb66139b4a7ddfeb44ebcc280a4905cf3de05ce64de35f1d47b40981a60cb6b766cec9009c260349ef88c52bd91c61dc00d5d5036fdeaadaf3b355e6b53387355f1bc46ee95ce9b10f7cdcf899cf0bf0c5d6fa" + }, + { /* i=607 cDividendBits=3421 cDivisorBits=2428 */ + "0e879f6f833822ab068604b7d016b691a8d3c3084eeeaaf6139f3e14ebcacdee2e286d7f2b4acfab5be59fb94501670e3618eb7470e6e654c492eee1813e7e90e02ea2aed315ccd947bdc6f263e6eb634c9293c65cdce60f3081754e97dc367b949976f69ab08d773de61064a261456850ee6ead06c647d8bc1a11328ffc39ff0b0fc0b8a934cef72202bf98348f6c2dde499d43345f51f30dc81a4ee370a54abfebfe7773b339ca60e08ea03a6716e9319284fef4ea81b9493c52cfc5e89ffbbe0818d4eb43fa8bf79b46614378dbdddc22ebdc06371bc8ae4a2b1c32675ddf1594a46f1ca03188f82c4565bfccfb27b5da9c46ddffb9989365e753e4050bd42e692dd8ecdd73fd7a622594fc7165d887af088737fa755d5ce439b6655fe21265e8d67fc0ae595aa79243089b7b54533fdfe28e8358c0875c9a2ef71c16d4a76e627e1a460f074f4f1145f226310c65213be0bdd9415026477155027e56586c69d14ae8aa2837dee06d69aa34790dc64604856e6fd173bfd6f052c829e6ce8162618ecfa783260451185e72cbf6f88f8ce0fa02c3b79e486a722f8f4ddfbbcc40412c6966cae8ef8849bcfd", + "05ee9d0e0a4c2ac467fe24873b4c8f1aa4faca726d6b993d423b3d8c61ac6d7f900443b3b73f7a25dd37274b7cb77352f4cb984a0c5119f2fdfc9ae600e7651b818d638f3254e021d52e7d1e0f48f78031fd30c68b167a864f4903be65c91870ba52d22aceedc7dc654f451f8065c789a4142f805740f9f2ee44a85df65b2573531c25d832e044b29019b7ca5b369a785de3c9142e2ccb503769383bb0bad553ce5c5e8a851f392850c59a859e225852037274bba125e35331d924bdcb687ae906e78fed6ac16e1dcd40684bbfe0fd3c100475dbcfdae96e2b948276fdb92675e4ef7daaf4365f6e6c2190e46deb86aa0b50fa6bbcaad342c6378bdcd8f4d2318cf1cece4d469d1c2529d70b51c188f1bcdeac581d15733e51167708ced18620f903330381f7e10a00f6216c67ba3571", + "027308e57787fd3240e888177cd78f78d41e609624b003b27fbe3b90f86124fc0dcd73becaefeabb3826969f695307a44d58ac48969c491de6a13e1af48b7f22f8446f6f07af3de09074df696894e55a6f1e61d6d487add14e09b0025ff3ba9963327b1c34e46f3138cce514849ffd4901c82c3fae081e8447942bc859", + "02c9ae9c9726d2d522608fb59780a00e24c2ca9a117c92219c4c45da2be62ff6bef1b1e81b5ff6930cb50ea6bf398109269096decd76f059d76d68c8d02c483bc6904607377c992a46e8205de4f72a2fcf134a79f73e910eeb58789355d8157031ee71996e6cb9e30e429141bde1bd074e0849638dd243d0410c041a0e5dae2b5c56cb7d3f72340beb638815e8af8240a55d944e7d0ca129486a47c0b78fe138934ead1c774859cb12ff6655742d0e0b609210080eaa2ab380acf999102afbc1c0ecf1ba4f212536a9bc201893d5ccb1783ea2918d57ac28aa5361b5477fe98ced547e5d875f0c3d814f0693ea49c5bbbf3dcd2df51bc95a7d62dced9abeb3636e03e630c6ec8d6ffc44384dea419a66da3d1f025ede31c44958b96b29ffb884ee5d9dbd8d7364abea7e6fb2b0d1e0b4" + }, + { /* i=608 cDividendBits=2739 cDivisorBits=1016 */ + "6d7549fccebf5d4471b720678c2dc35c4a1b88f3e80ad9f68e660ad2981b8b9a41fdd90131f64f2e70a0a43ead19212ab608dde019446e481924a16fbad69beb9d48570a6d371982585b4c3a8aa915cc812d2bdb535382d5f059fb4f615c675eb3a20d017bd1e39f79dd504b636d4c98a9248c6874ee3fa84b893f63a9fcc52f165c1852aafe27ea44c313bff6a15539e258f6f225fb69dc2c109dce889234e7cf7acc5d4ce7e73137d664349b345c73312e51b0e78d64f83df13158d8f243e3c47657cf45a940c237f3b0241c99f0d096372f4e5752f62844d7e74cfad8a61769182a52f22b15efefa2bfd0fbf1abf44b3005a9dbe91a4ca0ce7c80f1d6b18985848f99861e98eb624ac2d43e9025b0722ec48d0b73415c9db23ff1b21a3911048afbe1c5a734cc51d24e2505d2cacf5fa3df24705d0414f9dd4d0980cc21f974cf32514ab5ab1d13c6c96419f76b6a6b4309c31cd8", + "cd913fa85ac66ebe597134861e7ab4992dfb4ba7b0bb658195c846487cd0708a9563301983307e14fc5385ba6a6d8ed017c5b75bb7fbce984b5d6343d66b5bc7bdcccdfe57d48e9a8a2ad4ad992c8ef3ba806e853d14e73a0f804d35f663f5577925c5c66eca305781eaca9c9691d1a0ee66b53ce17a11761beb09ba8a2767", + "884fdb9c404302857de3221acbe6c64ec76f1df365e60cb22e2a27ea2a3ebcedfe36660b93baf40dcf0d9b765aabb1880f169d1a358e33e8ce3f3a278e9f8c4ee518968b14b0069cdd50a11b9aefbe5a7413c7d2a9951f9a53549f3b3a3bd980a92b6eb4187890e6d82e80ab73c68ade885fd0c3dd7bfd21b70d62c108481d05344b9a807642029672c765b15904bbef784e72d34bbeabab18fe9153fefa03cfc6dbc98c65ac502a193c52899f17bc8f1ea262e127412fa9578d0205df0f5e104eba309b6e6304b4e43a25af32cce937c9891d955fd6c7", + "7ae08927cb2f94220d8420dfea71192e634e18c2e285137940a8e6004d4026fb11337ef8c98a60798e3a4217c973e211f7313c77b6e9d07fbe8cf4b009ccb4d0b550bbed2a700e5bf20e1f5aa39cde931cc6a7c811717f171fb676233f75f3338bcd3ebda940790112bd5d06294a72728a6c5e95ef9ee341725ce4f93561c7" + }, + { /* i=609 cDividendBits=2640 cDivisorBits=1093 */ + "c714a43f3c635c04932828d665f58a77bc18143f6f53aa191918bf1fbaa494434c327360bb525fa1ef903267e5f1460ea8b0a0ccb7918f2807645feca7c282cc677491f224878b1ff3902462ea78efbf842387af1afc9566e05753fa058e1fd1d337db78c62c3b47b07e0cff1eaacf78a4f7eef164f84371bd9b24ce8e94a6b198b78f3038aa04acaed1d4d387aa29bd48778503dab9366c8cb95e9c94d4a1e81186c7a696fa7b5e32797e048174152cbab2fa34ab5ae263011dae664c67b2eeb50b108c910b49a575c914eec7c0de9e37fa080f38d797118893fb371363503272d9d18f0cb464296d5b9853f29c2f0b848b193dee4667b591171fa205206c30efc67c409839670bf603ac0daf63a492fab4b46ed6e5da744cf4906a75c1f6a95786ba6896ccd170dc0dea44c85292f09bda546a070fd690a954d0a61463e5bd3f33cc9bf1f208bd2bb7", + "1652194cd33d7bc2929c4887deeb5f88c76ff3c3413427e02e30524b203d18b4b0969d8474f2b05e1b43c217c9da1b1d69b8f0ef7745b6620e8b19704de8a8fb69027ac8948ea1a1304767f29f89d78366f69c612f1af73f9bd8210c313535c3d4ec96d3d865bde64909ad045e875a763be195eb0b7473fed79bf53e223f231434b287e8abf397902f", + "08eb4a65f58746cd506c798a5576b2fb0f178f512625f092da9e5348aeadbbed966ec1a7ade77c0e05ab07f6d36ce941a98adde486d054a79316650615ce1a4b1263aac56cd3d771ee23a51859ac0950cba234e9ac5355b40d8b8df25858733b1b75180375af5913bc8f8b227e9f0bdcc17c772eb788c2bbef41d45c54cda32caffd0f2addd97e521222dedb56cda794089f976c913ca5a93b7823242c3af3bc18154a66bae22db673a042b721dde80f79c3be00d2546467e8afe422c19423190d41", + "753b480d9228b884c7dbf045374eb20851fa6ca8867c6dced9da6b6d471ce9a73a0e3f90bd258e42632e5dbd36250860e0471ed503bc527c86fb4cd269160fa535ac83ebd2eb219047a7b59844327d8d145c69de1316bc2b6f617dbc80c81ba419764785707c839a69d3c2b4c2d9abd9b94f84a2a08e75ba509f79f0f14bc7f23c9fd63afb582cc8" + }, + { /* i=610 cDividendBits=908 cDivisorBits=503 */ + "0893d182a5763d5b3578a37cdf4b0feb3f263b1141c66cdf14089dced57c6ccb0635bf28a452338bb898a08fc8df3ea19613feb520ae64b297c4a3eae774379ae7544a0b484801272e7da002e98b89a6f5d7e889b2d2692efc0daac9c7f21d3c84538b5946c588f98c6c6bc2a5a29f4a0add", + "35c9450cffb2e567cd31da52e6dc3a2591b07942fda1bb4087ab54fcdc62335c71ee569c95b6d2cbafa1eac3408c92cda6876c28736de0577e69a51162284b", + "28d32eca74f52f5acb640bb42944bf38c6e342dc813b363a9d5e8ae3667cff8c6fa0ec8099a224f4dd1bc095d8f92aa4832b3a", + "2dbf42708cc42d5fe2a76abc5dd67c2ca1a53ce3832970cb86f86e8e25bad550dc781c2006a8365d31090c19e678a59371d0a2db0367059531a5f887e750df" + }, + { /* i=611 cDividendBits=3204 cDivisorBits=2132 */ + "0c7cc379297130d76ee4bffd05d97e1f5556c9eb19d61dadd7790122e5870ed8c4435b267be1705e2f3a01a8607153f0b3c80a69249b241660453e967d92ccd02e79d97f2e8258c86f27ef08a9867aae041732a1e5be0b9a0c86c4e4c6ae18fc3c81a03da8054e03515fee1cfe2ec85660b96d9d9929776fafa2d8c78848c8b37bcc3b2c4d914d0147c3aac9fcf81b28478eb95cc70c6ae5dc03d9a97223432688336cffcf9d30edc6844386daa218864e72b062af769d4b97c53a60bb980e464d10d8b3daaa8434b689907255db7876fcdec41c8f8438dfeb34c0355ad137a43bfa5c54f9e217c30a838b45ba1eac9daad4c5534dcaf7d46afca72ad8b08b2b019a3785f52314309c310dac8bca10b4d3e03c68276460f4240246789f8df2937179a2c38dda33d0777e9cfe1597d5bb1736f1c9429283854c995abbd901653f0b21d6da7a22ccdcff07b4eec2c1f061d8284f229acfb976f415538087a9abb2185cfac7a961f610c020d92c77bb5c2103ad6c52f2cf7193ade2581430f0ad4b4ea1bc2c1d0e545ffb734b08d53a5f0ebb", + "04e0a95f7d9520c62fccba250c1284a58425892a61a052e5eaa920f4d50691c75037b8adcf45ab7f2c2c65410c718a97e1f01abab64810579c326caf3ccfe5203dd35db30b8cd01ff8c1f6172e7e33b1e10451f66d696e8b48b45056950ba54e4d46929ca5320f6c77e5de3005fc323e16a1d2876fde0435501a650e5ec743afa18f2955860af1966adbf41bb042a3ff0296dc7da523c538eb1016bd02e3bf34b955074f95cf22de966360fa297e43ef30f1505870ad0a70356952952ee8ca1502158c3c8cdb7198a6b20e00570d8c3859e8e46b340c115ba6915db4f67264a17f87073deecba94eaba25df8303210bb95c17f54d2592625eac805ff0d06039e5cf2b785cac68ac02fcf82", + "028f661fa55cd8b1c4263d49c428901708fd47529c8753b9daacd06148c7c0a455131d03d2fddbe2b52dcbeeed1155d0108ce0034379bdd311f7075180425f46435d6f800f81c4a65e97f0e528339202fdab71f0387f78db1904b63a3b613d07ab75b4510799a94485b64f4424a2e2d4f9d5acf5ec53db8419be65d6bbd5e21a18f5bf0934e8a4", + "0356415dc43a4db0e03dacace0a638a93ea4f39c05cdb9347d90feae1b3683ffaf67cb5b5c67abcfb2d9c7b5a1ee26d98ebf7e065231c2b0846b90be158e38d2cce1933640a635369ff69554bd8df87902cd51d15a61b3bb2bb2f96ed7a8053a656abb1390af2a44c8215a0c9571b131d8fcce8d35943b6268a0ca0dd867e6c7834dadfefc9d937c6218c42f3c3cab978f754a143422777320774b87de01a839d8b2cc08713d4f8f62e466d91b26a83970c46bbc483a6cfc4d7fed2e63ff56f5a84a344c6da4d144eb90bdbe9ebc100f652338ca261d4e90d7279999ca409079f4ed7fbda493e8ebacf0e118626e555ef199817f81999fa9fd9d2a236d50a655311d38f71225c70f484f73" + }, + { /* i=612 cDividendBits=3116 cDivisorBits=397 */ + "0c4a0e6720cbe82cad0beb96483b4ec1762fe8a1f4cc2a98e731b0d6e4983972e9f78b28337a8235b4579db7c0cb3be1ac8e41ed8541ed5500b29265ab9578e59db105e196f75e74595d9c0a29aa19241990384c47d48d9c309aaf31b68f61356100ff7119d27b3cab53cd6b633624a87a0c12639e39639d3fd42b8f2f9ddea7cba2e5655c94785b6256c3a94c24c1560c5b75335a23643b57a3ee4234bc7b8a165216d69d5223f9a42628ecf0d5cb21a1a7ec2161d6b05c985aa0c779383df79f2750afb6d6a7a1632b69bca3b450189320a870e4c16728ffb97e61f81af104c899b006f26abecf89e806ad835555f6efb9d2745b2fd460dcc804826988e67657d960095f1cbc12a2dcb4770263ce943e63569ae03d4108433c8911181b55aa253e016007223c3fd15e1964de9b13d5a71cf9d11dad119c4d4e0f154dc8fcb4b8e16c0cd761c2987eb3529f9608315b0f15c7273f25570eb7a45df1a7b8f4251e3dedea3f39eb76ed3167ba7bb2c00dcc566ff91fbbc087637b51090bb2952f9494b17fb042", + "08c04932c722e5455898193992f3a497f32bbae678b455cbd877b816a9f35b4e2396d612d843083a3f8ebdb30f03a766a6a4", + "016780dea3070ec336fa483bd010fea640606d8e7fa1b266e7ffe89146823df6de49faf75351d7221b58075a6990fc779a90e6f4f42b46dc7096454e30e26178db0878450a85ad36d662ff98ed40720bb80dd0209849a0f122a2099ee48d1abf30583bc5058c3ffe08d68183c6fd1a8ee3307bfac93edfe9b5eb4ab0486757cf5ec6052bcc74e021a14fa1c114d32c33a3b187f421886d78a6fc6fabe04221e1109b4acd76bd55afa1c90e42d38e5ebbab4872597c41d11b786bcd295b7b02634f23e8f32702f960ca9fe8e2080dd6167353e97569b9af2d582bc24b0cb382f53bb8724f3123b257a523dc42e9864e445aa1d820a8a42a4716d0718ba2360148bf42c99fd8d527f592375b17c34829a5c272732d01cbd2498ed9e2c7eb3656ade4e49744df308f05db180a2c7996cd2dfc7b6b8551f09190ec579d588aa8e74d4e49a44f1acc18603245497d1fbb50a37114a5abd8", + "07c6ab91707dd6180726c1b392230a5c3f31d18327558af9d63d4e83d634b12d8d64e5e137ce21074f19d4fa941ba9df89e2" + }, + { /* i=613 cDividendBits=374 cDivisorBits=245 */ + "1d69b740f73262ec4b36128087d42274eb29dae0a98502d642314cfcf0a5798c74542970e67a9166ad103883b529f4", + "1f492d821dfd0cb7bb5e2dbda0eb7d96eab92a216f5e156644922c4cc9a066", + "f0acbfaa4260dd28f006db0b7a2a4adc", + "0c6f030e83df0061ff18deecdf385d584ff5395d81dd136e5cce0d5155d64c" + }, + { /* i=614 cDividendBits=3249 cDivisorBits=541 */ + "0e4ee3c1e33a603c23575a0d4fb5167387c18106eee02e51787705d3f5eb13da1e1668eb6552f03563ae477bb554361fca8a4bfd8a5187bfc3eeee67c4895a3fd9f799369cd9663b649c1462b897e86f7f5007e2b52d7d9a18ea0a209461591a9c99b1321052cb06bd5cfd16f9eb1f147aab87eaf4548e0127660a89f803bd5ad6916c63a97401da7283fa444a82260086770f8e5890a9a61630aebae817c9ff59661a02383757f3f230a07a66fe6495ccdaffb7edf97c402c438bbdcfe7c657fd122d92a249ada0e5ce9cb36d6fa557ea17d754b62a8fbbd4fd4df81733cb57a46ab24ba28f01a37db7b59c99986799e9b87b3669ea5351aa7032d30ff112a7258f7422d9fa8e1f1e7eeb75eee464ef37eece0033e2bb6ba9cecf435d32e269933fb603642fbf0f924c7473bdf59438b530e8ceb682e2cc3c97926556d8d2217d54050f4c7a449696ec60ac88bf8f22401c31af57cc08179f428e4a1447ad9e1b9d56bd54456d1ba0c75dd739121c64c2730701bb44ae28bd63feba23e3ebfb042e206c614a8a2d3d528733ee5abe259a4a87864e12", + "0137a778ed7cd445c4633b50b0c66be814a5119498aae8d0f0510bfdb050841d9db19ff4329c22bd21837718ecd7f619a543d9351550975af5d1280d8a665f93213af0bb", + "0bc0c86456215925ef80102f58e4220b85b9d8f19103bac0936ed8d977e93c728020e04833701e0d7dcbb1efb67dffa108d94878f7dba5db6c650a2aa6648c2a05aab1957f476220bacd84e42809122c2a4ca3c73938850199b9c21a99e7d18f4e59b0784b71835a05b9c5c52959ce1457290fad67e17e27c28d6e5d315c5d27410bc5f236d89d8f4fea20b036399f51cd276881e1fc5d60f8b371a5ac51db5bb75e9c1a9b91c00e6d2265dc89ffe43181354e7945ac2a5862f0428d75950370c984bbb45b0db6c1252fbaf8b86649b327e6f584a266bcbeb3f735f195ac4099f34a4dd2511eb450b7eb94b845545a0938a3d0ff8cb8c5583d19cff9d6d6e532b500d9141f73db37cb3a6b641e529844bae5a6e8112c0f771b7d1083aab657fecb68ab7bde631f771dae865b7b3ba08bc6be34cb6ab50bbed739153e1371eb6d1e14787f5f6c996c1e7f6bc3b3b2eeb343253a", + "7f8c156e260762e98043f5139f5bb4aba11f36b9f9504ccf49b4bcff674257332ae911b439775a6c89d28f72f2af26a8a6547ad5865b07aceb6c080f76f28db96fbcb4" + }, + { /* i=615 cDividendBits=523 cDivisorBits=193 */ + "051f9769acc045a95432796f3b29f9b5c65e5996ba16f8bc2758060b44fc0e9c3e779f7bee82bbbdb550e95cb41ebe2f32c4adaec4356b410d8fd3306553c7ffa017", + "ab6c7a01b2ac2277afcb41a3e13af01660540e8d95eef90b", + "07a6b2cfb6848a9e3a41048302d98ecea39396a69aac4412333b256405d433ee5b9218e55fc2c2211a96", + "3acf566a79cae7bbb4a29692e499f37a903b4145384395a5" + }, + { /* i=616 cDividendBits=3096 cDivisorBits=1352 */ + "4b7e38da12f36e0afbb755f2887408d689d5a5dcf260acad2a9df3bd1561fd0229e99edecc907dbc98bd58c2926cd9cfda4257b985b9a38e0032fd71fc9cdb24e48c18cd6b94cb3bb032ddf78a05a5f0d535c527ff845b247819b91942e6cb25fc19fd1bc9cf369311811d22a14ca4db87b94e29b15191eb376d46e7f26246980be8af37ea9917b13ca5b39055f23bd35f8d8af02a649235a6f397057143c20fa37f4c32c807d418288537c1a3c8240635acb9f454d5664d87bec97e5c3179912275ee580cf09993cb368feb12140b4e007035160b75625bfd35d2f4d117947a0a81f5d2b1c87baf98f987adf1db967825013bf4e66e30fae65e1b6d45fb95b51a47b5bbcf8e5920917fc6adafba58ed3d29498c4dcd7c3b6ac99b1443d604e63e305c57a4b61d92f7f549b69c49ddc9d502b8b6d7021984630bc1d145e4663cbedc0f547dda6d615a4c43ba0005eb011baaec3e8651ff96fe1785897e862d7dc5defaf64121e60c866c57c765e2c9f7b03a923c0b09e18083f2358f486e4c25295f4b", + "1acfc7a3a27701c36c0af2d3ba22f9b494755178f44af8fff2931d453a39de57b0f08c0a869811606b572efea8263adc032319628c2f1d18b98451bc674efbf3fabcc5433d43476fc5716bcf80707fc569373e435929de4aff5e05ae12c8437f9e769c617a15208aa152ae51bdc3fdd17f98476f40cea47d36687c81c85ab6c0e2e0bb69a6ef1511e883c59e8b1dbdbeb86d82314ead9352358b0810054bee7ba82ceb04e59c267708", + "02d0d08ae1b3c63feeef443112fe9a3201b04da11b75e2a16d134d29b8ac92b73e221b23fa492450b7caee137446717f16372160c6e35fd30400239419a06a50d640a59e71dc38022c9895ad711af899db4b24d18dd37b513e2363ddde062938d9d60589366a579c40066e63c5e6598014e6073a9aecd7d703cc0dc48a98fb61345a88c5e46e7c49a5592664c917db833746a79f32c405fb5f5f238733f3ec37f87c3f019f54f5aa84b9d62cd30e34fb8acfea26e5828aa9dadd78e7aaa1a4c9e8150a508b07bbedeb0ea3b313596b08ed5837562879b3924ec45f", + "1627dcaf260f9fef95af4c4a3eeac0bf25ffc2631f62d28c153673db257f0d4bcb499e3bbf23ad1307dcb406a9e10e9c20b5bb8e75e3c914269c403cc3b047032cadf6c2687595356558b21c471b679d1a3d48b2d5498f1440fd28888093f1837ead65a4ab3e7307a2cf10c2876cb23a07aeec08504fd4587eeb41192d9a422b67e176db166e4e350eb00c82e607e2e358eb6a9a6240953187b89fb1b989eafbf0dce64b56eb511353" + }, + { /* i=617 cDividendBits=2108 cDivisorBits=697 */ + "612f57359bd5be99ea75684579d9cf2b18d0b7819fdf6cdbb1a41da905d7a9f3e9b291db647b01f283ecb32f29696ad3bd9f2ff0152ff0d6d82f7c987f0732e9ab9fd240f3ebcea8239cf2c31af3b6df09ce37056f6a17e5e2ddbe6f2e3be9654d0a8dbb24dca8a1d2545cd95c1ea27860a5822f20bebd13620c3edf12505ad530195539ea9a07b86bca3ea4a1edbff3fec90e988109103122825bb4bf320379d24228d6563cc0a7743a22e070237c2f620a6c8f65b2575614d662ecc737fb96481b513028542fa79d759c238a0a882d3efabc98e5463793cd0042b1c919791ed03ed7d0bc16e1f089197097595a570531d8da63e4ff10847083ffdd07859ef7198b036178617b", + "eb4a0d393c92ee1950070c051128294cb49f535399242b91f1ace1a3b444997f914d498750fd19619784d6dc3a21f3be784663fa88c9774a2f2a7fe11871f85dfdead75daa507c15952101f73babb5b475dc8a56399782", + "69bd47ef2eb5f4429f9a6f681d9697bf8c40a9499862d2efef50afb18342b74c8a80b90b67c1859d44cac04259649299ec6f928d55809f4d0b7c3e2175796b3f78721f84afa9fb1f997fe6ccebac732c6d5a5e76358b70f0d322b76a7b3170fa9743dd5fb5d293eadd03902fa7e4e9b54b64491e8d54d75f880b42351144132886197bae5a3c1f78a29d8f47113ece56e6a735166731a7cd0696eff4b6aec701df251c8c17cb010d2106de7fe5a6da93", + "5def6eb956ed65743a51faaace4bec140fb7805de065fdc3ae6aa376cf2b521e622fc9944e06cdf247c214ab0fb17ccf2e7e379010072477a3c891b4a01ff7a4e9e892973b05339917a77b0a9cb90531c7c6c94b15add5" + }, + { /* i=618 cDividendBits=3286 cDivisorBits=2084 */ + "3127bfdbe8f3ee1bbe9b922d67213aa48dba786dddf78a0dfa8b63c9f4c483ed1ab90de46a922ba934f8e92b5797454e7d200a5674197cbc02fda91c212070ed3a8c4e903da0e0f624ce66256ce7bd93d11c049b6db7cb8b2ef330bf6c25cf8bfe60fa534d2aa8bc3ef0be0c0aea175d569b17cc5b63d1c84db38e35ab353cad691180ba9d49bdde0041f21f32b5e63fd33d6d9268384bfc4716b8409907680b966c4fb91665798d3c6724fa76cd912a2bd4ecc68476c14553224810a186412b39fe248953bf28f8736a4aae0f3c2d07b134224978494509f48373f68ceba00e9156a3318c0e88044e12b3a93cde6abe1d81c18bf69996962986f5a7e94dc2126d14ba014b04deb5352bb1c854fa279aad1957a59ef6ad4391ee6063cd9fdfe8905c08d2524d492c9427fae2cb25bafbc752874c5afd85a621ee54019c17b50e8ec6a7adbd5bd2d82f26d4ff675b948653988053966edd08c73bb50f4d35c937cfe8093222af485854ecbe4c9de088dae14d932a8947ea05271d060636aebd6e22455e66a723ad2d069698b11078a5fc703293c67af2251515a804", + "3e7b0abf63577b918d6787f77a455377d32a4ce21978a32ecacc8e5e063324f551fd028b9702c436d439c12d664659f0ec91a75070c9e00e80eee51299cd251387ad8aa4efc2ede4c9063be06fd879e30f8881969d71d474a08875c50bf14f80bdd84618addb2600f2def812269f01782fa050a84290d77b00342415296b2c94d70799faa5c41fb1d5232bb748870c775fed507dda597351167485e7af63a14c5889157606c5ac68af95e94acf51eb36d76c498900fefac85ac32e5f2beee98d581eb6fdbea08297c4397d97ea910fd88ddcf592403e41e0a00143a166650ae2da0f6318461f0ea7037a9cbcd390ea94db6d0b6a491e86a5a0c28c558035dc697ad196df", + "c96703c00e8419360ba2e42644cefbaa479a1b2db27b5ae5c66434c1f2c8673175874ec21d44ca7a6115ffb3a396f2d5ca4c27a546f91385411b74d053fb3f48de0d20c365924a5ccf11f4da57096651064c067f07e8b8784f0cd17383c0c9229a205ec96e0ffb58f48ff4392f4f03fb6d108f671f5cbcd55e124b9a9c3244901239245359ac989281d157e7a74858ec9ca9194dc7d56b", + "38316037da7917d027b05400676e7a709d5b8e53e3187f1735d62e7ed4571c9c749a54dfdb8ce899cd9f8c5ee50bc03f42046e2d280dde9f334dd10e70d5e465de3cd8a6ca88e44c18bba76fb486399ca4051afd0504354c16a1310f4f2dfcffecda486cdb7fbbd8764a537f8711357f426bf5ec0935b836ef0e530041600c562a3581ca14e325ca2573dee97d0cb8e4f5cbfcb5cab1ae92f8dbf60aba3d449a26c9ee0b036ba153e19de06440da2852826e3724fdd13b9655af0568d34b691f5f3a159b85fc7edd9a2ba3b4b6fa8dad87751320630caafbe86610c910395ae9fb53113343a65bf71f52bd9ed92a86c2ecbe303a8a52f7c5ae1dbe2970af98ca029b0dcf" + }, + { /* i=619 cDividendBits=2499 cDivisorBits=742 */ + "03106eeda1d6110b54d2b2e1c438fba20cec8435e86d76d5f5d46fab589eeb145eef2b2528e1016339ed4d15655dc656867010c3c8e72bb64b66256bd2bec312d77dcf67c5094346d31a5b53e6ffec1c523cae878e95a04355240db918827249aefa5b43069151cc523ec52e244a1d0ce69a6e7e9099e2a787cec9616d87ef268373203fb14174b9681fdcf83b0da95d299729ecb6381ca197bc756e6212c8c4dc5045d2f6afa3d2f30d5195977f15630170e10d1c93a6575c8b66a8baf77b029f4c35acefd2c0a77713d089d867e8561da6b4cd2ddcc2d8800fc10e4616f8b4fb6463d1fd2eeaee4cb1e9d0f6b9eee80a5e11fb00fba72fc3793a83f0b97c4271dbd4466935d80bf1939afde9bc0877914fe4ba368d78a4a06ddfe94facbafd760a72e8c58631eb24f8044cae10271b4b2204ad8c0e2196d4", + "15467582e6811726c48825766c55a99d7dd1a8ba6ea281129ccb3a903663e1453020328a832ebefa0b97e8d4f86def5ce80ef5c3887cbf9c3e89767ee3fb7be07315c0afd86c0a2ffee3084e41cd84ebc2afd88910d2598a4b30d6307a", + "24dee841c6cd4d090aa196372ef553aa672fa82a2b2f78e734456454180e57ffbe82df26bb6c844eb92238baec4488c73608ce6e7a0fe8da17a5ae82d4bf7e10bfd889d0ef027e5233c6f0d91d0ececf87078d9512515ecd6e52265163c7c2521f4cc04b35f9562e02b90c8c1355f870f9261f5b9d8138b069ba87d833d5b2ac08715552bdda3280ef65f4b94fc761194f46ebb9fe52ec29fdfa6e84858e97508e6a2649b37c2dd93bcb721674edc4b38962eb4ad41a861b1d9aa17f466ebfe0a8875cca67a8c6a271bb7bebe6ae7962fd88ba414b6fac38473bf684", + "0dc430d9fe8ef16ca0e2debf15cec05916c44bed978da8050cd4ea5b2e9bc12e5573bd7e63f7a30349d2968ab189241032aec0732fb75dfc744365adfa854d5b8d533c5e5132a7522cda188d95e4a8c2138cbe4f2f8cc2e25a0afd5bec" + }, + { /* i=620 cDividendBits=2747 cDivisorBits=2589 */ + "0434d815fd1aeb64c44d044bcbfb6604145ac3bf03bb3fe789323e0dadf3bab9580a9b5e1513d740a12fd67bdbbb2192c79373556273ee6235c85559bec016607aa5a318fb89fb667b407dfd9bfcfc7f5d3307ae5ba0d51d0e664c4d1253b17e58f16945d42a724b5830bb254a58347dc645d1ea0363516bbd84f3c99d3199c790b85b0abe30ada2dd5bc1e4def604db2a3fd577f6e4c422141e0f7e3831a3076349051c06c4337e580c9b58435c48df176aff912f7e7a515db48ec9887275abe606411702e7be338f71ee32143bb66aa358d81bbce35fe40e24610e8adb474ae7dc7a03f1b4a9aa242e672b0b3f7cae0c4ebf97408c0e86aa6dde09fc3adcf8b7521fc9042c1631e8ec95862829856c7f9f7e681172a6c272fb144f1aaeb92bdbff332e5f75f390473657e754e12fb524f8cdc4dad78643d5b4d135f8b8a45a95fa5c4910c9717228e446bd081c10014cd366c8b8f32c37", + "d04d3d2433b7c9b2cd8fa15a45d5fd76b828e0c5c20da729ab4ce907bec59ae10be82aa07345d3825f01e43e4d8476f47723542c6b9470d20346d6283915ef071f32603adbb1b0ff5b27237f4e42945d777044100cfd0b3c0ef4b52820837353642422349830d057a977e8d5aefafcb94fff0882629a693534ee131ac6ac7f20189d15e54ce380d4d20ae6183086c47cec9ff521fab7a536c6aea8d32773b55e94aa78a7a2c8af90250270a05b9593e2652616793e1ed6d459e08ab3680fbc6cd338b651c7223a1b23627384b8d40a44b60083e5ba1a2588b9773f0834eebde2b2fabc1fa0090998089c2ccecf8f50e6d808aa53d94bb5ba9a897235b7e692ed8c8433182ac201e99b25d9ac50d2252efdf230ec9ef32d11ae8d47f64dae4871286e56e537efdaf8fc92edb63c5bf68ca00b69e55d79f1dfca6b46f2a25e0e9b8d011b", + "052b6d476f4bedaa706bfb842772ee9351f2036ed1", + "3629ce3a96f30800c0619467ab12570a01edf7a234eb0be7ad2966ba0102d30cc6fc45e039ffe79f8f1c1a00ace1ac290ec2c995b7b8f03b6c502b9a2bbe2fb4cfa7a363ef295016aeb2f9c3f6774d8778bfd5629a401b11a8c3fe1d7083cd2579f66a0ccc4eb084f129a2fb59894997b05e924ae7067e860e7ee1507056799b4728dae709c94b760089f37e924935efd02060f1943222934c5b850b535b42e74a96289f131f53a31f8c4d3134d2ce561e6ee89c2b52f0c5dd615104d4bf26c43b7f997021072b84ce737524850b1a5af350fc5be5ec624b3252bb6aabb606d37fcc0d721aea6c010a4fcdc689be1df1442d2713366699555c4406f66841ed8b164410c0af494a1ad054757ac6d0dbf9820367c26c45961adae7b902f21ea1447000d7cbc4a67a0b9c50288f9ec9afbb601563a92588c34cce055f4c495dc79b0aab2c" + }, + { /* i=621 cDividendBits=2973 cDivisorBits=1194 */ + "1b212245c609f5028005f96819e170dfc15147e6680808e14726b1f317c55a8d40e3179273ef8166355103385b93053bd4ad67c9187b76f07bf05c428f05777776860ddf590008f51f4b54620bc9f371d2e254cd5bf3a4bd95982701a2d1161d379884e22e532698d71fd2d8997bede5b5551f25d9ad84b26dcce027df7c1a042e7bfab93e904b37ddb1393c9d8db52b2b95fbcfc00a723432e16f18a0583b77c8e3ce83d4bbb8fe27ce1ce16c5ca2d51507806df2db7dc4c168e6960cbdec6479f3376dec1191abf3ae94c3936e03b3ddc01c0fc840cdaae14f026e5cfe2a0cc9a3115fed364814235f759ddc34732092da82759ce97961ed0c1e00c277a799bf4ef45e0c4726f124ad70c130708f224827f1bf03c06d091b976bed31e20943203827a3224414586979b809ccc641e9a79dd2527151f463ff504a171f7a98b23c08d745f88e0f8bc38426aa9d2ea7b23e5afa3321fe5c510e8e556aa4273b743968e40d0c9963fc143f3a44ad964bd296345c5d", + "01824c3f931e10f7dd1f687a46b7caa79992fe62f65b26d0f172e2b02c75c0b7f632bee7c3407197d0275335fbc6ea1155d41f157dee96489c4b17b7f32d9c66a8353fbcce80d1ed01f6b99938f366407aa4de8e83bfedbe68c81a788cfa02b266e28f578bf9eed92ac1958aad58bca861843bcdeb7bbe37da3f6bc5d5359113291f9406e61c6e4df783e3ea71264a7eb667d2ddf44e", + "11fa8c3879e359ece8652ee0a184aee40221d4f3bbd94b694b24782e2784ae941c4fc184240e023300517e712e1f9b138296e46654cb6021e6eda11bfbb5b017998433daee7c5ff09691fc9640ff5d633d017d792ea4da3469dd2f609c3931a9cebf220b1b3537ee63d26d3e4b4ba3a0abd0e606f95606cd5b7cb069ec74467601b3cabe5135426151572640d4ac7b1d3d0d72c911db3204df3590127b4ca068d982736892e3a15e498ef5b6d8abc69d904aec28da775c85d824278daeef07dab0ca22483e95e9a05df9bbdab062afcf09a5a8d2df8e46acd1669ef8467772", + "01075a68947d853552b4aaf5991689013b70ce28158c6b34c60991b1e9cd3472bd509f0463045ec1da58f71f9e547790b2d67d512ef8b2a33cb38769bf23f7218702b36322813f5db91eafde0bb754b8ef8ae6b05992ffaee0c2f5081c1ea713d900058dcf8a2b4bafea10158ea3352ecd9c05e1f80d863e9797e9639fd8bae4da680d1c39df3ec58efadd24a076b5b2451125794fa1" + }, + { /* i=622 cDividendBits=2436 cDivisorBits=298 */ + "0e35a8723884f3eb9003400a90eb996890fda88e948ccb141ba7a0236d2fa80a0b8aa85c0933982ac2d45d9cd21d8de6c615f8dcf3a9ee936409010c1e8c3542556181bbe132eddb4c180bb962bbc1b2c0fabb4b382f7741e0665bce0ae429a2d762915a114cf931b62a46b4f68c977d1e56dae9ad3d34f3f4ef9a8b6bd6e7b8b49bdd304974cc34eda2482b360bd20e4acdce400f324da09934fb769cced64283ff7ee45bd1dbe1d0f089fd1eb459fda6d21e07f037bc753693ddc4f57f9fd3dca88bcab14a91df039dc2f28398569e31b3a06d18aac63c1f7445c25635072fed41c9d034f882b484baffe3b945cd239d2cacc8d74bf653f1d6d8a1121776e3a0165e10ae6664e1db4f782c86f5cfc53aa084e49a7076688d7ea0e5fd5869af8a6404edbfaa1faf9baa946641f2b5354c", + "02a66a50bfa7f26b6fd8a3950616fdf3d950e6a1a0a941d4830d69c0773f35cf00338346295d", + "055cab9111d0507569f76bb323af3cc72b0a192cf00fb1af62af9701783659d48893cbd3110265b042a7dec9e83d240fa6d228218183af52342a43638c4093fcbd5e69734d2b2bf867ab534cab756d87647ccbd954746debe15ce8faf7e46571be7636bd5fdd121f6e861883d9ada9e03ed72363e534f4d0e4e8e9aef6b0d8c93c289079aab6565045ca032ad33739ceb20a7871a462f518eac84e76010589de0894bc13c96ed90d344ade089bb6dd00effffdfb31517e6f37c8f66ed82f4159aac34d72baad094b9f7f7c2857762a3bd6d2832bd8ef4d2a9afa6f728c1db14f19ef20b6127e1aca4a105247fb33c5c7d5edf12be02641d880ed53b50e2f554ec29fa1f7d859dc711e0ca6f5", + "eb4650e3772f648bc12a3aba5ae7c13d4982f70e7ec451338b87a633ebceb23fa5fb61514b" + }, + { /* i=623 cDividendBits=1420 cDivisorBits=1197 */ + "0619594f745e02ba353bc8fa8806ae866224b1fa44b811fa91970323afddd81e336cb13e0d6b7f7ec63572c6837f23cc2df499c0380bea2af1f62b67110a9dfe2195007eab4f0f0a7dcf6b80ae1b726e594dcc48a0d5a6d10b8246cd529cebb9b7c3db9d63b704aa8c59d4e59fd759ada43ab88dbb818eb9839a73f494baafa5a650b111f94807535bddef953a31dfef3aceb7e50b270343bcf4a4a79ba02aa589d53b3540708470c477c6c8cee9ac7e03b5", + "145184e45d6dc91e5da75f432ab702a8afc901e434ca2e762e738f048ecfa627c4a5d0710f89a20f6928c176042afba8ce3e7fd033a01df1b6ef55e0b08168f649da9ef535a2f9a9f314d5f6aad6770c8edb72edb4873aa15a2d2ceff73a1fb877e2909f59c04de7e4d92d9e5e374d3db726b55d182b92420b5fbe4ce648e8d68c287922b8aefe901212c1eceb35cabb54c43e9c604d", + "4cd80d8f86594ddc3e53436ba8e1033066adcaf9dd9772d31eeb2921", + "09e2316808060840e864c42f138849cf3f3fad9df1ee9b7dfabe76dea8baaff7bdc27350c9f2c258062d0896aea70404dc2a9a3d064822b79970d9b552a12be0c09fb935c982c1ae275e019e7f5aa5fed0c7e273db05b08e387c9f0114f352f72218b21ce32d2db0c952e8d65c7c313bf6f0a4d05370fbb9a9beaa962a9805228ee3b678dd82d14124dc61042b455062fd4a223a44c8" + }, + { /* i=624 cDividendBits=842 cDivisorBits=682 */ + "024652df1a903ab98ffe4b256a9553af324ce38fbbacd386f3a760284634e15c4e9a037bc26e884c5a98bb821913c56edc0443f5cd748afd1b3d85fcc948c1aadcf4b77b28e5880b1dfbb3be912ca75caccbd3b9db90cc2e24aa9c5957d78e6dfb039ed63b5849860e75", + "02aef4b81af70d10150842ffb22892b77f1baedb0d4b87df75e6b52e9cf2b05bd5ec725845b2aa13fecf35f4968714da12ea3309747478e895014ccbe2e0b55eb2a60abb74007cb7e92ad131a27f8d3e786da54c62aa", + "d9020662948b6c982e53359bf99619034e1f786d", + "5768824a59be6dff15ade080df453d68d3e65e5a59c21d306d9fd7580cd4464008fb97972ac9edbf55cabd46bd85297171fabbeef061794fd94214249fb26c9596ff2360d204f66bf64755a928a60182df5b2a5c13" + }, + { /* i=625 cDividendBits=141 cDivisorBits=58 */ + "0fe6f983e3b7b2d9e7c637ed0783ac0f510d", + "032d7d3a7dcde0dd", + "05011c492b24d40ccd2629", + "03149b0d89bc7fa8" + }, + { /* i=626 cDividendBits=1591 cDivisorBits=1429 */ + "1f9ec673ee4adc7d53a6a119d9770cda2f8e122ae5fbfe1b4d75663637e5d7ef62d5f9d7291e2e9c0f4cd0c5ed04506bf53256e6dff98f2bcc7e9ae72e343bb2a24a749eb50e4b04291a3b5a7d04adc8a5b7731e6aeeaefdef2e11693e75e6d7e413f796b5dc15804834c80adc2c8e5968521150b226087473cdcadeff6768dccd4cbf2394b9b9f527a82d08a023d301337f12857457cd2c3b357c3adcd6cb7a9fe586c7be5922c3419c735ff40b6601aa4af805b4a925f5987d2c6e2633afac4f9c08661b51af", + "1c17a59513554b567529a098dd336605e57c3b0b8174faa85870c1a8951480a3c614e13a5b8e2766befcbbae30580ff8c1da1d072164e1e408b63e425bd11b00afa1d50e10165f77a89744fcca277a61723624c6b33c5dd38ecbaa1d0eb6bc932e32278c35358b3a1c6ac46a594e76f37308993ddf4c0252ffb37751ea2ff9240af50ac7140a17845814ee06f35b8cd6a7cff49a64a6b9bb6f4e56e079a489bd937ebe3ac1f4bf5310070f3abaa847f6a9bb80", + "0120260609ea37a38b78fc77a490272e76b1a243fa", + "187197e01feb145f9920cf442b909f250c28aac0a678689816a4f40458902474eed87202774eb51f8ec19d820c680d7b49c9fed620f9ef74956bd748f39f122f716ad1dcf75ec51f24c3ce687a7b6bfa92e91dd94bc607a75c69582151c4b40647706786823bdca58bffc2b9a8cdb117aa80aae9ee543622167d09543594ef3fb0bf821a4e04bf0f9201506ff4a56e352c957980b0c8e867e05051dfa7071ed0631f5ac94ee4abe886ef2776799126f147b6af" + }, + { /* i=627 cDividendBits=3947 cDivisorBits=2104 */ + "04eb668c84410dc34308bd07b85567ce8972e5a84c98fb54f3b71e00cac67129cdb2777b6fcf29e25529e18f2a13972e0320608ffc84cb9742fe2c88d25eb403b3da6cb32811514997ad96d59d729c8db41885c211caace59240c21efab5f12d1a62270de69cb70ebab29c75bf2abc54dde158766bf255bdb659457f13f9cbdbcd672e57cd09edab6f57e7df48f1e3bfbcb7e8933c85ee4e23ab072093d978b725b97f89950092ab138263605a957cdc8456f907879ea204824f07bf557eb5a29d10d5fb39f8e7cb3aa4cd5510bcaad82f130a621a54fd409cba52eaba3e7c61bba93790868895ee8994e4956d8693a302370fbc922622f657aa9ab9aa4f6370cf07c7a02935ab648e0fefe3f4b0e3a6eeb5da74ac252b9d53e4c0ebc3a4d3c2711c8765fcd520ad3a25ca693969448398e70543ee806d41e9d719670b1c158acc26fddeb61098002740a434ef4a45b8b82d50de67db847538c467341a4ccd2c28152a3ccf595c3658db8e06e365e9a82aa3d71dc7c454a66a65aab2a37345ef5f97f337df2d24f1fc45b9ce2f1dd2fd5505fbbcbb09490b77a063ac64cdc3ed44b522f2083bd2c01efa42c9ea685595caea5859fd3ecae32c00c4042f972239b2edfa89852ff36921ce5f607548eeb243e191c67c1c40998a37bced3dfcfbb46d2c47c2f3752f79746fafcf1633", + "f0c859a7c67a4008fdd3fbadbe0bccc21b36d541112ae15f209157fa58b59759ece39cde95c7cbf73ecf1d7eb81bf25aed40d1890ce37665b49724ac5fd8d0d04d32839c159eab3092ad67bad1de097d13caf4794abdbb7183d56de43efc51ebf889e3807ae45f6efad99c46fd4021ca9be7449616bdf486ca94e6f03b9b2c97928233ebfb98e2c4b764532af0d24a889cdda07e6bc29e2dffcde864551f7702255859f75c35448f4dcd12f2ddf69b326b66485ef0ed21c7f7a2317c5bedf9e0f43adfa13ec140bc7bf7b3dbce2952addf83784c517198f6844f575be2f5b1be1f7788155c0d3b9c653a87719eb3ba6ac42c3633464e69a36453e24d54efc5b004f7cd3b41740c", + "053afe894dd1714d9575703674a066feb3510d3f95e739bfbc4dd9a03be1d119f5540aec821f9ed016d6a1da034bff2ad0608068283a04b9c0bc6fa7d5c7a0d76a1591b7f58942be0b53a4cfeb2e29137d3968b1dc024a945d6794c13cca816987700d5498b51e416a752acd81916e02cb127248a49465bdba6ad9be2a4261d31eb552167075685955533e64a86827933ee8807033d3d84612799d2f93f0ece453ac3969b08174a42669d28822d2850300464e804e1d0a02b84aa430f05bf41d8e19519914431849c24e1dc9b3605f1516c7d53fa5b5b3c00c6589a8a2ed9affe6d9446a0e4e51", + "594b8e3f7505d014a8be3be637df39ecae7fa1a1654d21702147a250482d537128a3a8234d0b2eea80467e2b8b20c2b9074fe7490e64de72d730b193cba6a88d894efee875eca3aa65cd4d53e314769d3d07547e7af0d5a85c7431e7e0903501b5497060029d3d96837026bd52b838bbb436169ebdc7750442d86dea481b55df8e014ba431f598a1c800aa497c21940df60e079c93f5a0e3e35d4e8b3581b3e965e38b807665b9f9848cfa03122d7220a89b62a6275eccc4b79d19821698103122059a14ca3b7a6a41ebd7a7a423e850a7470b64135077e7e03545c4c9594d1408e987cd5ad3083f9ae90578956c5ed585879a1089996898b9d3c161f4070a031b2da0ae15b667" + }, + { /* i=628 cDividendBits=3855 cDivisorBits=2477 */ + "3ed0f9573e527f96e1b49e956d4558863036916e14af57948950b137b612afd34a064118bb452bbc39522448b97a771cdb5e64f8171896b981f896f0ad11c38ec0cc7b1d06198388ed52147b1ecf3f9fc6b3ce8e41929fadb8a7d38e2ff42d8d16cd371557541d66e4eadd6eb4e6c8e81d67639f5b8e58990e2365061705f8bd1185ce5e758abe8c0cfed0f5de29caa953a86c5c0b76043ae1a8d785f7d960ddc0349343e1c435b5929a43bfe6289dda5da6cacf5e609cd9e43bc26cd6b48ac6a34af78ec3c13eac6ebe443b2883af6af91e2982e99538de9b3218ba83c6f4e32eb3baf6dfa48990302e3ba369e66b56097227f93e9a34cb6bade07dfbdebd7ed73a73ae46aa8b467375c712fbb3475ce8c41d6dd9923aa68b60133f962a66e8bc48b8a5e8f18f89bfa0f16070a42196c11d4198b9b59de158d77c8ca9ba7b8329219884805b6bb9b67cec333983187571003ce776b9a8602516d80bf1d074a0fe110be8a217768940160896918daeb0ed57c06681118c532a1f5fdc373e9beb4a9a00eb2ad412574eeadde31557c42efa22487e12e495ac45f29fab69f4935f30e1b68874a725b279de9f7c8f58a6dfbc0158fdf8e9ac05511f129eb9204a86b606e0a1cc890435e2822312fa6373781386892d19288173cf688ad396beffe4fbdb", + "136e9d6196eb6c8957065796a92a1181a36febaf3e2f47c0cae47cb44fff728bb3a2ba0d2f7582d8365e49b215e30426885eaabcd71dbbaa2b258e84b38c4ff3707b7b4a8ea0a1a66877c331998a2969a2c8f85c29304d99fc03f11eb135c2f28ffc32e5599e8abe4763210ea2bce740d7ff171a0ac80422723f86578a012e15e807817808541ab77ac0fc42aaa869bdcf41f3f46b52fc41390f34bfc8f7b6e7d77b27841a5e9cbcc83e9cb70c92ca7c0dfd556bd5901ab0dadd2fb21d6cca000469913362428bd02897acebe6c86dc537bf103db151c8e237a310bb0f123c32e0635dce2035dfb7ca988f9971511000e851b4b527c1a819ee1e32033b90f56f8c1d9fd16b3ed3212b5cc0f031546b074e568eb2f7578ec618b881b58bf5d6c04db9af581f341087ab454247357dbcf65bcbfd17bcc9", + "033b8c200e58225203d9151040d2c81381d85dc4a59fa69b66f99cd48f9b780b9255e928c498ca35d9ead1ff3005f4a8e1eb7bdd54c0c5291f7e1e61562adc33af540678db6d77c75728e74c0d933ff3dd955caee0b90a14e0719dcb5df460f43303c17d978d1ffd71101eb3e9312539d17fd1cb0aa8a12aadad1be68134451e7fe1bb69d09f1e883954b827ebd24c647083dfafb02430112820691367ed47098bd3b3a54f5fac9eeaa098cc83", + "01422811b93766566c83c39b35cc1e3bf954a4d00f7195292f82986776c470d0d5cd84b2a4ed8f7bc441c2df59c6c019216a2125a989bb987c8a7c48e16bd2d966f426e122cfb26b9a47b26aabc79d0bbc86607a78d07bba4561f2ca07a5a2eadd447af97f16d879dabc791a2f60dabe0d5e21d484059694d124770b239ec54f29de053421a1d3a66a6eb0fab85420eab111428e1a650ac1653d6f43296d34891f1c2de32ba5e10d8e2dc190dbd6c3526213fd321f1ca7cad3cc483da0f722dbf39c73d32e191241f05ae318dccdcc35057edc26d69b9653f92bcce6ed0261bbc306cd9fdf57adbdf9a7d3482efed8688b7e2f4974259b7c26cc391028b697458afd01a11b96cb537e0ab28e3bc2634a1400c56fd2974d52460d2eba2d217d21c685b66cf8cebe519ea2474399241c0c55dddaf73500" + }, + { /* i=629 cDividendBits=704 cDivisorBits=72 */ + "6047613a4842d4e45c478386bc69f4f7ce937d63d09e67e1c7120b937b417059735c1bb5dbbfd5f43f2f4152e734003f15080efcd1a7c1383fd33fb412f2732d5021b316b0b20be63a9f2695f63b445beb6aaca11b9a18da", + "28f825360e2efeb13c", + "02599b16a5bc13172653473ae4c3a9f497a3016f8f3b0e0e719a53ec4b19014a2c9db3f80ef6190285517c1f4e450c0f9ff611eee1e828290cdd5293555b0677f89a6e525f1c508dc4f01cd362202eb5", + "1cea12e404fe2e016e" + }, + { /* i=630 cDividendBits=1546 cDivisorBits=817 */ + "59c77e4d84e2b28198d63c3a82fed1840434813fabe07f5b835c8dba18fccea32e4ee6d940515d40a0a720485dbc193c3bc82919a3f664346b708f01bcc32ca620c56460d7807cb4cf372cafa3441ce9dbfb1b277be9c44edca6c58f568dd3c77f6f84b15d12e7bcb2b62df76fe756c9acf714a7ad58c2fcbb901fb4f2de2697db02d300006d48b97262c2049b3fd8e66fd50ae962cf36ef78067159dd5a51827bf2517d893e7598211f9de669d3686d67c566bb130b6745c7342500dfc97d441e", + "01443c646c6dde5442643edb04481ad54fb68315db0742545096fdf605fc2fa884e7b347a06abe99d816c5b34663a83146ce547f85b0c28144e595ca545017629ca29048a52d7d75f1844794248919c10003da660deb1e90a1a7b6840931e8211bcb5eaae903f4", + "46e295a4470b9ef6d22d7743a736235aa90395b948052686ca6f574545ba619e0b64edb95fe95f5d4263dedb3e07335ef28be1433e49d8a9437c6ce0f090b10c91c0f859bec4fc913b758bf874e2720cb9eb502a97a883338c2dcf", + "2def040551029367c0f9504673b0be5e53e0f1fbc2d1995429a36f317ae7c7f5e382a4ac3f979f10a96a8ecf5d1eee52e13f170792a1e4d33139b98230afcb5c32144c54edd93a38e90b82c6c93c10dbf5ee0643c34df5aafb55da510499bb58e234dbf12dd2" + }, + { /* i=631 cDividendBits=1534 cDivisorBits=425 */ + "34a9b07502cf8639d6d77d04d625fb96988e3d7a56354209e0c99b63ac0af61cea485020d0e5782727d46f5542c71f585561be2562149beafd85a879eb6476b0fd971f3f8e6236d8064add3986601896f8bc05dab2a73c1dbe8364a3578ec8358fa5844d1a400c7e1d1b1307d4a56710c95093a196143ec33c7ba941052b5d5da9395a4ec959df41653c7dcb0279532dbd6e0e1fb45206a0d3e340b86b8eec033faedbe6b7919ec1341c50a4f47980c405cd789707ccea2e6ac7915a4b5dbed7", + "40793aeb2d72f1fbf1e566775481c83683dbbbb6f3cfb2898cb3739bebb64d3fe1538fcffd8c8fa76b98f7c1b32b4c0194e3e4511e", + "d11aaae85e9ec377172d16e651e0bb9c38ae72a466f74fd4452a89cc393f732eccd1700261aefa0775a4364f0d88db233cdf7e43a71c727c0e450cf1599622f3adebf708fd72472dd40a0717d0c5db898654620ac0c546098f37fc64e3e3040b02bb4d3e399e94873dab2b13b36005eb4c4b99449e7f31d7989231231bfaaa1dea8896bb763f1e676023f2", + "0e08d58db07b372ba0d813d49da694678918f83d123c213a1a106eefcd8aa609ad68aeecb75c05d22a31d0612666a481ad2931f67b" + }, + { /* i=632 cDividendBits=3201 cDivisorBits=2710 */ + "01b954172c3489d5c857c57a7cb81763b6389efd02736d90e2ee4013c731b97e0eb5a7381d5dd8832ce546ce01d892eda5a1912556d6e05b5695be35401b1d19deb2af6a94f5db019c8269effc5f7ac6442890bf0a2c710a7f1a3c0716f67cd2e426c2d5246f8bb9a4d0988f106d111e9a99f710dc398b1fb55c9031db158c0b1642b1af8996fd69d7e633d3572a8f42e2e0ceb1499fff22fe3cd098d332b7aacc6b8552d744f1d18cb65e81dc5507eaf503e278e9aa9b7942c9b449f4d6b4af508a92797cbb46f4256453501ce5bbab0b42f49ba2ece0f28c6e587522adab6a6f7287c95834ef8b3c236d124224d197ad048befe5d2ce21aa06b3968346307fd4f010cda102d65bed88d666f3ac2ecedf297f6f6fdd0ae9a4c225361d9d8577546869ff23f73a284c6eddfa76e89fd144268e3c43221cd3042b021e4350f62ed09a1614547c3e068f133f29ef7a6da6d4a555a1b1e19e1c82a37e0d6e975e9520b8e4932ea3228e039c41013af2fbde02987ea19fb8bd94b7f58f93e6adfdce5666f35940a2d20c3220e7c0375adcf076", + "347b7811c8498d3a485936de8e5af643a588a400c47393d58f517059b642ebabd0e033f124ff213b92bdc89cceeca87498c3c5b5bd7b9df622ab08b58f6df252809ce953e28589284b95bc2cdeb7acc53fd346dc98919920ee1698caaf16331bcdb635698f17e4be191602258b900d37800e6ef23843951caf1e7747a4aee5c64fad5620830386912f4d310c33289884227302bd1ae151ce38388603879d5c49608172ae76b6e6c9248e8551ef5550194acc02a2bb5a86b63e1e8f81360f8289d28f8ea85e0ec6c08dedafd2dce5d26ee95698c2dcdc1f13ed56d8a788ba9e48308f8b5b28bbe8cacea0073d34d6b7129edb0e5557f0717a37f3551b64fab0fa763c330be0f815eb2662b4c86d8e1827599caa7f21a20592f2648f67f70247cfc0f07dd4f8ff3d065856cfea1ea508fe76d6df45d93171bed3771a74b5b3da301c1f31fc9a6846821328b733a21fe6761f05bd", + "0868ba3b2c0a0c02364b327ab84195a078bb8ea18ac1a6a6ccf37137698590a60578c629a1ad2350c687d1c5ec254418b5345a1e57cb48b99c3fd0d84784", + "2252383d474905584e0202e2d23ae4468f640b41c04387b40f1ccbb495412d53a67dd50d87819e626d49ec10018d6877951c771d3a28671ef8fd8737ad9634fdac14a8ed89ba46938939ff6515ed8f435ec17407932a038e876f1126a436a7bbfffe62c86eba46b3a388c49ac648327f29deaf98c81bc44095d4e833eb548142884b6347cb58d6a66faf86c5935e96599f31ca8f979a8127a88c6dc2c84d2dbd2bd7389a2ff7e0dd553510a3887ce0303c5839c67f7170be50d7794e51e228aa85dceec1c2035a278f2cf817696f083946d2a5b7b18ae3dc65a52853413ed3f83f13501a4df987545fe42b1c06d549c7dfe6bdb13988a5cdcbc058d4786cb4ca9a86c0ad9777dd80aa044d17020494978d963a7e5268020a4e4d37a1c1a6a2f7ca4fc18390ecb01cc92369cbbcad68371ce5e5df1128171792120c01c8f2582702db79f4c8faf55951cc1a1952ee4670ce9002" + }, + { /* i=633 cDividendBits=2909 cDivisorBits=2066 */ + "1d1f4ec057541882f7541646591d50e155755ed5e02e27d39f2afd5381b04adfeddb2f8263ac0a56f7b315b32f83ead8ff110cd80ab65f839b9259b2e55c5a5b871143d430f0282f8e8970c7ae39c59a94e837927715f175fcaa2f7983d0ef1db3b42615e24ef384ecceba8085b174f7b81bbb66b9b8be576069c2cbd8168e030a2a150bf2a4debed24bde9615aca197b8fc1866d12fd04af9f0f8abd51a3fe6a96399be2d0116a876ff9d372cb1424f018239c76c8f5c9e7df5132d4f09f9e6226165330b32caaa83c709fe682dfdaaf861031324f148b4f2ac136f6ded8c3668f521bbed439750eb8bfe9fe81ae79662988fceba8f845077e5e0f2096f6fabd7d039254a46dfcb60297704725b59ad04aceb54b6ce862276c9fe2f4223954ed1b812ab55c5e6fe9ab1bee272f1b0412224e18216e80648420055e4f8b543065f57eb816e8371950588d6a9522ab37edc2fcdab73688386b02d4b58c0f6838205ea54456ef1dad0be85c290", + "026a20879508a136d828b8b69cc9a7c499280516587076e077b6bf2f00bb24421cd94ffb35f5cae0354490d229f64c809c0c9036f1a01d88ad939163c917bf4fdfa965d32a211ac4ebb83fb06f225d6d4874c8d6b175bbd9493244f2d236c9d04028107f506dd8c23e8eae9067dc110a5dd4caaef96a098ecb3251a7970b4ebea1d2e079dfaf6624dff40551e298e00c275f37cd13442a3da74825def8bcda2c4ab813829e322e438925bcf0e435056df6aba046cd3de1f8eae46cdc714f25128350107099e3ee935739bdffa1aff12a8ff4031e10d242f7b7bd804fe019d0a9b632aa3ad0ff7c7f5056e53f9d31fd2be561bc8f1560fef263e041ca66f6dfc7dc0d31", + "0c0fa5dd57af8ccbd296bf58b28ed7cd7b04a175fa2dedb09823bbf14c7e5b8899f594f251cb23b22c50c6feab76890ed59908dcf0e0dd0f55980f29f4044153f9393741cce79893ba632ab1cddfe512a2d4f69b889b1f1473c5428557ba273a2e5a91e3b446e2c1212c", + "0166c0df49a5371ca3e75e946c0e81ddaa7f30643323496f11c1dfd12869e56fd1c4166a4adb864598a68d663461c708ac8dc87f6d6c3fd668cd8ccd82e1fc026ca88b824690444bdbf4e16fd036a60b09b94deeb9d71dac1b2fb54fbbec61286ba2421cc56c5c0644f2d939b3fa716ba73f3de5cffe0b6bb514d8e1200a971043bb3719a729190107df7b34748d97e192102401f5c2536dc845f265be808e3319ac452412036fe20e625002d92575417ecb40fc7fa256d45d89a2a36d588767cc098b1a0fcf7ddba10751ba1fd22ae437670f45b77c5c58f3a67b0f7912fc8c57a26f0c4b71150e3a2eff732394ee408acea46d18a6aeae5aa9c3df6193a5d30f2d24" + }, + { /* i=634 cDividendBits=831 cDivisorBits=747 */ + "3917ede9b52a43240442224d3ab0dbed3ea221bf8f2df218b86b29fbec9ee1bb77eb1a64cdaf224e2e6a707366cbcfe4cda488fdfc5c015e53fedae213daa81ef7a2f179ffab6a67d5d8bcd2299ffe0f18af8a5441bdcd4aaebfea9081ea481da2bc0a9ce8ea26e8", + "03d54a6e0a438987e8d7601e9b92db1ef8b67352e3c89d6084a895102cf6f7afd66bb9d182d9d52fec514365f7324497b06b85620c2950330ffd81c6b5754cb86be3a43ec4bb96d228e501ff0a9ae063d950fa8e27c0fae3ba6c18dfd792", + "0ee504419fd5a93ef64544", + "ca042fb1429c18345915ebb01f6bb475bfd2b00054f59cbdde0326ad3f2b33dfa6469bed07741e09c5107cf2ea2cb1cc8419275c3894655f25d0da8202e1ef199269b0d52e7d8d260249fce9e18771be30f4053426ab497c81760e8a20" + }, + { /* i=635 cDividendBits=2839 cDivisorBits=866 */ + "1f1d8476daa25b46f16ef50a4b62e8be9fd586cb943a7e818c15cd65a8cf0737f7a12b48ee7c07741d98be062566f9cfd1f686bfa3be83bd39e8e3ac43c3cfccec0bf02c2a604ce5b08476200f96fbd46d25b68558ccc3c6fe1abc3598f136cfbeebd75c6216d6e655979ce3a1802d49323d9e26574be8315373461dc22203bb489bbe4a7fc899b66453fe12fb7bc545bc81cc5776eb72514aeb6abc1cf78661b48906733f8c78f2151aa36665aab45653f7e46c793366c5751154a92f5f1214d53fefd329df2761fddf7de1bec984fee9ec8344536f301c02fcf0dfd94511717f657ae8708b8041cf9164a5b8fc20ac8d912913307cf9aaac4c821ec73b1587fb13390942da145bef6ae54854c89aa2d7bfe7ffb0150995ae425c7f7be65a173def1e02c31d905f1987c3ee93d09693efb6405d61a49c7b15da97fc4db4dbc6b0f2aa86b20b9402cd129721279da19e0e1c5347b27f81b1b5da149e26fd0605d6e376", + "020ec3d9fd59180c7fdebfbfcdbc2af5853b60006a7d1e98543b6339fd5d32c9b702e591b2e4ce4240a35db615e8e7f25fb835dd659e995cf3e3d343d0fe3357c131b59e06302eb070bcb024a9105b7a56e01d2b15128a8d0b4a641ded31be3377d7c188879d760f7c58790afc", + "0f1f1f93b05a3a2543d2f34b6fe8c8d0212487d3c24df4ca56d5c84a6f6f4f48c5e085ea210f8a5ecc6e9184de69affbc8c3bb6eb7a0eeaa21dc977c64e28415ae4be479ef5ce8193bb6bf82bb05fdac82536a9b4ab5f0a808bd60a1ecd9d82ed89edabf85c6527c9a24a3d8d783595438b61f0cb22d20ea8c3990cef60432cbec805cdb9061edf73fc9a270fc9441ba6cb2b82528611b19d6ab3ed59fed9e4c0f2b996c5273263fbe333d10acb6a5f0e47ed077d99333b6d392c95ee0fb41efec6cd95c79d1597263f80e8679019d4bf7202f84f85831eae322c054317f9e83acca949c78d9f66ee500a63fb0bf54cf0086c0368fb16a", + "2a2b7998add5903427bd319e88964670762b95b5c448f99d4cee8d5610f62c0f29bd8788efe8f2e296355e3e12919fabfd9be4edb6a136324eacb7b4032e842406cb65fccf4968706bd12f8c8957a0fb73b7f4aeaccc40faedf758a9e5808c0354db7fb46ee8816f685c1b1e" + }, + { /* i=636 cDividendBits=3113 cDivisorBits=33 */ + "019e83a62a793df39df9e9fe56c3b60790e5e7809a2395736bba8fc56bd24f0f99b27e8bbb4901d2e4bcfbce6b1a840c08079edb9250f75b7dd7711ca7905a02583b11a0ec93c89c0f5497716a6aba857c084252b4363bb45281b483215e33f49387f6bb63b0140650c5beab8a104f2d3a75dcbde17807d840ccdc4adb41dc53ee551ec7c6576bc80357565112f4ce002e04a98ccaef835e465c5efb4e85c67b40b62f21e75316bab7a2c3df38049990d829aa4c9d711e915987381e05c8a67e670af35c80bd092b9d9229e4f9b6529c1b5ffc71f9c4785a8efa61eb045d6f6ef016a6768fcedd1429bd3cfdb957924b808731cac605345ea8760ded57fe27fbfcc6afec71d1ea7c63268976542540ad0498b631d0a4f2cf94eaf84b102f7e25b7a562fa390965110fcd98d1ca46c0176aa1d340da063bac670fc47088487219c5c5945951107d2dc50c181d954ad46914aee38b6c348ab924f60d8150aa00b11c131df9b7961ba67c8dc16d584ecdaae76146859b7a0c6db428787a92b8fc26944057acb2ec", + "447f6f9e", + "060d2ef28a0266820d4a086ca3daccbff7e319e300837bd90c0f2d6172939a66bb0e86e22451a5a545c58d58c33842a9b57f71accdb7d041eae4e201339d21a4660cc9ae774959adb87281abaac213c448accb173fe60d421a46debb100293e2ae8a980f90eb9cf7df58ce433df8df668f7d78665a89235447a587dfd7177d37ff1a5c5aa99a3f1ea7c6fbfd1f4b4e7d45206a183f9df66a71c29fa78b852f16b7cf60215347822c2db6ed4ee9b0e4d09036788fbd23f8778c5f9a8111e753fdad31b11eda38c8cde6d0bcea825f7fe11b86c67510cae643b5e825f968ff1fa8b1bf328ada5e9d361b9e4ba3d4f9357a3f917e7edfc0731a683079fe1e898652599cb2d85b367da26771eca47ad6602f3193ea219eb53604bd6079f42450614bfccef3eeda870731383474e34589aad30ea7f2251dfb8b33d958a679d66013e9229305c525b778f4750cb921d0893c619091512564d3acdbc8c94395138765d234ff63febd1ad34c7ddd21a9b899d132cd501bdf5ae54cd6d1e10ff6b698bfbe3a3a", + "3a3f9d20" + }, + { /* i=637 cDividendBits=900 cDivisorBits=792 */ + "0d522aec697eb0cdfbf7e5bcb5171f86c2de74218de34afd47b96ff32876d659f6ebcaea7e56477e9c9f186e117724906eae650a53acece9b21b68b8e6972830881f4d2f7cb7e2166d1b80bfd266440c8b846bb4398980378056d616169f44604b45e8041b9fc8b188883b73e02eb82559", + "c691b1a3dea2386ae7f9690d981946c9fc5d7764b4d1548ad6b323d60da33f307c78314303e9947731b219478c405ee3da77dac4905650edd8d3d036557823f4b4bb26dc03020d1dc5afd99738f3be76cd918b0549587379c32b3739efd799d7a6d592", + "112c780232755042a2798a07d31f", + "37974d728b5ea75d76fb7f8f9fb3d964a8e1ab8985f3e16eb999b745af68765cbbd9e7934a9ed44e848da4cebbdd3b9db51882af10be825da8af74711eaab6dbcdb60c4613892d7c572d5717d7f6be338888b4ca847437fed5f3a6d16260ce047ef2ab" + }, + { /* i=638 cDividendBits=1162 cDivisorBits=1056 */ + "03d7c47a90755e89fa2fa49ecae5739f0df22470f59e0344f377fc3c4250ee2ff7638a0f701d35d847cce049868f4334a354628409594f5910ac4de91b1646a2681137f023158e5d0b37d787a4494add76e9700e00a5f7bbd02edbe738671ade57129dea06bbfa9e8fae3d41a1734ca6b8326626d41cfac7eda44045ddf99d1702ecf96920d28df0fae82aa90595180ecb69", + "b6efa78a9d9906afcca1e58d6c16f4a4219cac724cb7f71393262f52db6151297ad15148e1267d11432f79bd35b94c63570ca1ecd2d52cfdcf2f631998b8bf16f0cd6100847d34df7e313c00b3ab426e743da038d33ca323f2f9a850911be8ca6d49c166c191606c5e549198e26f2f90b12cf3d41c019ff49fbcaa59c37fc0ab39e1f653", + "0560adfecb776b60f726c6fea4e3", + "6db4661f3ab282069b0dc4875232932abcaf5872757e879ad70b796d34246a1c4784b77f6742f04fdb9708fcb16c774cd89b222f85206a9cacdff3bf95da06cb695eecadba947a8dcbb3abf9835390e03ed8ccb54703d3a1dc1981691b26c41d8de8eec953abcd1c72a12459761b74d76f361624dfc81af7ed455dc2b3f6a4a36a8a33d0" + }, + { /* i=639 cDividendBits=1472 cDivisorBits=338 */ + "39aed25575c32495075f4f2380b2fa311d06a8ad9a92133164ce5b39b760aca49e79958141c14b35e8852845e4769ce7d553c1b84d6e889af833d1d4d966330e08a20c5d37a51a1ed324bbb9f6721c3f625f80dd66921dbf395458deacf788e944890e55b662d4d651d145894fd7ee13d0fbc0ccd42528e599c0b9a9eb840528b1b54bcc1995ed94971e8869044b992664af20588857812810e31530b29987e335b22832fb203483e2d2151cd0cba09e5be6ccbf54d752ab", + "aeedf8aef3396d77fa35b638357da621ca02a902603dbb3fce3681f0f89541fdc09f5bab7c0a3fc5d232", + "546a7270d98e3219cde77246c8b71dd29522094171d56750d7f11b37eee43f56dfc8d27d3ea0510be7b145d034a3362ff8d26a84af7dbd8aad76a5ffda338d5a37079aa351cc201a4d01e419d78cc3d320c12d287ddc514fee6ae0e56888eb9a2aca9b6e360cc5f5b21ab7c76fabd7b2b773f3fa319581c3edc4b35f02547121d8b5712a243e720e0deaa2eb12e4", + "a8657525d84cfc452ac463f49553b39585a7515dfd34cd777dc582386ebcde47c832357535d307fa9a23" + }, + { /* i=640 cDividendBits=407 cDivisorBits=63 */ + "2dcda9e263bd2d5813d25d51d6368ddcb62d790cd0747319be575521728a637532391f998c918c9cc32bfd170f465aed779dad", + "4949b5f72bb485f7", + "9ffe9543dc993608d38e30605a2581891565df5049577f56ba21ca7a69620d16672219c0e3dc5b66d0718d", + "2595a012e937cda2" + }, + { /* i=641 cDividendBits=2675 cDivisorBits=13 */ + "04aeef0ae3fdfdd9308c2a8a43430fccd0e6914c101521b407413433362fc7644a716fbe3077e96d4ce33564da6d6822af5673c6cc754d14e2d0c074adb5fced7463c466ed5935df6a3d6e01988a35b0b655a12f24913bc2d6cd9ce815eba3b52cc278902330a64dd2df49afb4e99b31edff4524b6f774adf4b83d635806b774af882b17cd3d8b2e154bb637341eb98541a888c69471b74840e08244c75e220e5b16cc0700bfc6c7092b5b8ec790e90f45bf45e968e476950cf15ea9118cc17ce262a43bde9867d5742b42de17ef91e1cb373817ef1236c704fab44229410f2f9c90f4bcf6cd4f82e802ac1849c6bc1f47352180f2398087a48a1a22b4f9ceb5466f6313b4906f70ee2688124543cea6f36c59b8af2e0aaf4e20cae25041c295738d7e8a98cc561968b417cdf7d29b913b17c9d0939ae109a83a2564cdb42e050f6f462d26b939d5fec6c90a9fb21e", + "1be4", + "2afcaac532d755f31cb07e93435f5d8991cdd9b5b677abd0a5428d86512a92b9f4dd6d5ccecdff9dca7a1920edfad78257b74785ae7131f0e611836506f48f537b9e0f735b1d0996866eeefd94cd93e38b2c5bc1a23fcfe9deedacd22ce0700d14060b31050afb79dd447875c743aa04cdebd1b3aa3786e1e87cf75f162f0579752d92fee5aaa323e69ad3a7cd78ab245813d1c4c8d888d44a0587fcd27841e9bcd668f21d8934e2ed9e9a8f66dce696cb56fabe7d81bdec194a62b59f386a973f577e33dde196ed5c9f025ea7358fe974920092409e0089dbf4ade63ad6cf5e1a22e07b953378250086ac1c75d7fdadefd59a3524e980a1f0033b5413db3d243a7e07e09ca09b7f6e85aae438ee0645d2d60a59bff734528a91d0c155f8591d3db9197a5d1705a4cfd0aa4e961ba9fe63cf970a0669e114cdbcc987bbe21922d484bd3572ebd80edf1d26ac60", + "0c9e" + }, + { /* i=642 cDividendBits=2333 cDivisorBits=640 */ + "10fb26cb6c478f14f709a028b562a8dd0dc123eeebfcb99772178cb252e4987eff31491a29bb42badbff32bb919d4823780ac3341721b8a8e691d5e53036c271c8f0346e8186fd675b8d44c432fb57227986e51cf9f558d60f5590e9e8c914afb193379a425dc51aff73fdab1bfa4260b88cc0684281150e681f176361e4d8035c00ed904c049072bfbf3f0948447df84960df6bf3af53e4f07739b6c04852a9f69b13bc5286fe6b6f9b8ea6c337487afcb563cbeefb0ab3575d94d73b9b219493fddd268c0d9dfdf62a3a4aa57fa4dc9eafac603ee7af93734c88393e07e3507f87999ad480165a1fb5a9cfd996a2d03eaeb2780c8304f2cd5711d4abab155d7bf7c30b7367240c7f553d11fce106a92cdb425cc9f768c05ce2976fdfc4e9f59dc8f95e", + "9f03206703573c9475c1c6c0ed96701e46e018ee29a0dc992ad1b2be53bdf51513a6d6f8f9f6fd07fad2ae1505bcd7e664df41319753609f37db8923c1965e69673b88e16f2b5f61cd75eb3b83db7a00", + "1b56a65996157a9eeed7983adf7ad728ece93bd62c80e2c1b8180923761cc9ea084994d7fe8360c728892df51930bcc32083235c9441cce7a2587bd556e665d6570f339f56fc75e12eddd7e584fc87d4129c70dab8a6ee43c9a47a1f3e2ca940d847f5f58aa0df90f08e1ac89f1f4af11fe6030eefbcbc52ec1855247d2c3cc2970fad7bd5ed5a2ea7cc19eeb2a142c2049a189cc7d14dc273eaa14013391e3024a7f721968aaba6b0a85b7a4332343d236d1b8a5be6ef20fb56d178bdab2098358e1cbedaea5eb55c86116ac2dc70f93929fccf", + "8ffc19eb51745328f221a9b8f398658ba02119dbaa22b2fa5f6aea4be04892f3e1f46e062451cd56c9f54835f8b20ee0c62c1f293f9b4ccfef4c928351b426a3a69a5c1c01db0a339f1f78b96939535e" + }, + { /* i=643 cDividendBits=2286 cDivisorBits=1598 */ + "2ce6dc742feadd73632576243143e169d543a5a901406f708239858bc4ef84e529e61d6651f5969b0fdeb44c9530b5d274da123bce9f6945d2e2461547d1c3035fd7baa334688f30b8587e5226161cd58c5b9ee4ded8cd7a13f010c7b2919d0031dd9bc25772626d93e8125b0518ac32cb5a2901d4ea0a7db196ed332285f291b8434b0bd717dbe4667ad879adc498fe9644d3259389be988558d1a805567d69b14c46f948d6c22b8e5716f9dbd403dda208b72c58de8968d243135c88d9b63f1efbebb06234631ff9f2b0657a380f07db6faeb20cdfe03d8fc7cefca4f85726d7b66943858ec3cb5566a34ae57c0d2b595d568852ee12a18c082d5f5223428d738e4709da3a33bd25a830a62125cd29abcb44c09ef9186fadbafe9ab84a", + "18678b66ab59225c36d82e7f01c41173924a9561e11e5e5e5fb466ac93b9d94d73a7f2e6a65548594d63af684d53d8c6d0b33fdff49ba85293f9063e3697694276d2f55ffd754b1ab88611e6a3546bd5e7c29e6aaa48c130ac529e8a4b86b6103dc11299b729427e46b7b6218f05b3510b0df5cd38c7fc9d9d2b373e4547f2ff5b3988ddf066a34928b035f6037b0ec68b1a039632523f6a8ab4be6385c2d619719fc4ead6093fdecb7bc92a4207c3840becbbfb508acdf7e17e832be40229c7d2e4fc9ede5b53d0", + "01d703ba5864875786db50443f481191a14b356447b9284a6d663ca30556064dd95c8b8b81c37403cd0f0e259b2bfc74f5f7764c523fd8e3053d68c5dc7eacfab96f1f08a45dc421fb0513854071bea95c435d78161338", + "08071441e9ce9926a3bcca72c34dea8b803c22cdc0fdd6ea9999cd95bb087666b56055cd157912e1dd32c7877e1a4cc12f3c54aaa3d7d85a4450f19ce0f59a24676ad78379b03919a92fe776f8c887b6f6d07a7426b9ce99bc4facb157425179ee198764bd66a23ae941b9df90d71943a6497b69d7bc9146ddaa027696ae16fdb7de45f2a36e38cab94456f95ec9662849d130e00dac53fd9e2f4f6675cc5a4056da1569d808ae21b5697bb0aec1f5d2a98a37e1e3dd373b584bbdc7682f9f14acd9d2c6df87f2ca" + }, + { /* i=644 cDividendBits=989 cDivisorBits=988 */ + "104107a0c64b231676693be382f9fac3a24a30c35b88beea99e320be1f216b77d4a548baa983cd64a9d3db68e025f5ced682d58ae58c054b340acf0a5712be69e178f182036652cf5d2b421e13816a9773fb698521034c0ff42b94176c580c9211512737b16e1bcba6c0d068dd425a44f3b2d77f887ac049123d4a30", + "0d539383eed112ff9a34c34f041b83c15cbce03d17d619b93de8b8c5f5a00e3c3de9d713171478a8dd16b5ee2cf866a5bed81a24b2e6307154ba238ffc90da55dc2b49756911e98c9b156d433b852f044b335de5f68947279c3f15818a5ce91093c2bafa34abf214a806df94f64853bb57a020408a73aff05fc9ad3c", + "01", + "02ed741cd77a1016dc3478947ede7702458d508643b2a5315bfa67f829815d3b96bb71a7926f54bbccbd257ab32d8f2917aabb6632a5d4d9df50ab7a5a81e414054da80c9a546942c215d4dad7fc3b9328c80b9f2a7a04e857ec7e95e1fb23817d8e6c3d7cc229b6feb9f0d3e6fa06899c12b73efe071058b2739cf4" + }, + { /* i=645 cDividendBits=4055 cDivisorBits=3662 */ + "4c41b89eb65f30a26066157b2912408390d5f91d601343aa737b5cb88f0d46f31bb0dfe8eb67f8c8cf59d6f526ea1a9dbbefe22b1669212fe6d3cd655f8b0fbfd56907ba30889d7546d03a1fbab95aba4f3bf85ccebcfbc637534154041e4311b315d9112111f2f47cdf0a8730df8d5af2cec9ddf1cc1769144c6b06b5a1c7eef0bf7b9fa232f15c991ede3eeb1afa0810df9bed98bf32c6a6b390498d55f32a54081c15f7513101552c9b4c07ce6d0711edc6081674dc12e28899df3f65ea835747cda0c673db4bd436b8b67a6cf3038c16e9d129d78ed1f871830d1376a65d4ce69d28d63eae52eb0e9cacadc828ca17310ef270e4bab15ef5bb11caa83897b174be60b46cfc2162421aeec838ed1d35026cea1f385fe417e0c1c04264d77f6bc1804425c1cfb9a8536404e4682c739fe865fd0c34db10e667a27297d9fd428247fa182e5fb6f49215d7b7852805392d2b732ef8f139b85d7d6fe1e33bc1609e87da727393fd82bf2ce1d80d46796a3a75482126bd6f3598d55154124097e13c937cae04e585662e89ce37b101d71c34839c888a2b11d7da52ab03a288177f46521351ea24cd3a4a9c54c0bfe0df7086005c29628eadab4147f410d29de985cec3faf3a95d2f4301151b3f4c87b95ad8bcc924e2aa61d37cfe9eb4ee79a509fd42b3b5f50cdd7d12858aef6b461c512f4ae6a47919291be014fb", + "3f8795c5d0a6a1045d6d44340394fc84efd121e5558afc9fb6cfe58fd16450bc282b3c30d4c39b4db066bb0c07a8d70a19135880e8433f44bae73fb8e148c6094962162fecde0e0b7df515b4c7149ef3a8e1d70b65f745c26589413514be426c5f998a4a68687071b37bb8571f98eb11d342de9063b27de04471072266c5cde4bb3bdc8a0b0191acb0d3e9b1ec4eea05f1ed114925e9432372c740428983f62c3f2397b8d29bf2cbfc71a2bd9e3d1e81b32b92583138214e026689ee281f477440c5a0cb18767682772639d5cd1f1b853da3590b165f9c90ae86180dec72f51e6fef08904d8135a33f6709a00c2cd92f3969ce6c5dca5e0fcafa862e8946584747f6c113cc70fdfe2edba5782de776144863effd682c5704a3e61faae646ecace04bd64b060b14dacbca6c16ac71c2a8cc74ff2ee964fb8a0fbd6ac053975fbfc37a7a9c7d0eb338ecb6bf36ab1eb4c73fb99f253963dea9aba81ef0b86576fbc86d4a98c4bcafafa6c7ceb8f282381450813d18f7ef9c119c1bec010f54895824f6dd9bd788482d70b507db3c3839e456ecb46540827d9f1edcd3b8ac2b69f082674c59d18302e15a0efa6efe33d1b789c4d2e9ef2be1fc386be391a2a8e0c96317ca25fbeb03dfc91f", + "0133490974e9e44066bafa816374003faf9d07b4ee5e2442028e199da6710c8369b25ad2cf4efc304dca47fa3a6f17963234", + "0f6b0352f42fc833a6f530bf4250093f2bf292f7bcc544043e99de24cba90ce781a563487f575c4b04756be40e5c5e37783b54493ac6c3315f32113731ded0b249449e9fa4ebc09a761c1a0128970398f3d7bcf5d346dbd695a97166e8c6dd02982c827b350bb6060f5e6c6a106067a48cdd2f90a0146900b5b65e1d7a37fedda55c60e71bcac9236746efa601621e8044b1eb259552db31deff7b2683864264de282efaf910cc30376da37a93492c3465bc52a4d17531b5c2ef8d0c46fd3de7c0f681f6eab946e9738c1739e3a6ac72b82688801653313f93231131d95ccd97539f27f52aca67c786e33587cb0e493ea22bc40d64b0295cd20988d7fc8b057cdd06682453a9d18e7c325ac3334f7869f997ff91a5374ee46edd59a82ae94585f585b1c3cf4afa0b9c6971c9a50b86ab1e831b731e7d0dc9b9b7259e1d817bceab7dc22ed42036b192317d7b2b9ebbe9eb8c01aad93b0af1566f7d585013a4d22e299ce7641b0f55c10f1facd76ba27946f48f99cf1a6fb0921f6c817cb1daa8563a12a85f0bd5f6a32d70ae248638c8e9bbc0501551a4592971d6caf19138ecb3da7e981eb4b6e3b0bde54fe5d1000b227f99db3f0fd85b90adccfd50ef14cf50230da16c07fbf92caf" + }, + { /* i=646 cDividendBits=137 cDivisorBits=22 */ + "01a24043fa481f9d34b3a2fa4d66e3308c11", + "3eda5b", + "06a789380b79845c118c3f3835ef63", + "3025e0" + }, + { /* i=647 cDividendBits=396 cDivisorBits=92 */ + "0e96a623b5ed4945c89984f8d26bdb117777c5b9940b78bbfcc124ae2e8b0973d16701c55265b8e2b9cdfad15719c814e1", + "06af391b167d24bcaf12ef57", + "022eb4aaebc2f91ac202e6a32895f510e9a4716c1afd0ebfe4a3d5d5d67a4f550db16e9942cc", + "02f770cf43a83a8947fded8d" + }, + { /* i=648 cDividendBits=806 cDivisorBits=744 */ + "3598871cf4e777815c16178c3aac40de97fef0deb7cb3b92d262107b934abf8ca4518b99bf14cf279fe991cdede689a18ac044d04b94d730d830b035c7b1300ea0061d8b132958fab11e2fcbe05e8ea696e2de6c8bce96ef1a61006ee84ee91724463b0305", + "13caad3a5bfc937d4821af7ef83d29fd8f2bafbc36e9658a3946d665fcf02e9a6f1588d7e3d3aec263f4c7f36ddd2a5275d064d30f0758efaf5420d653982b933bd6fefb7aab54a020bd35d0078b9db4c663209e9684c83f476e1c5de2", + "02b53f10d7bb6667f1", + "0db4bf232573aa6b6ecb730cbf120cae1704c28e2c1a1dd154a106b2e10b4acf5d0454e23b744b85be02f192a97d32b8f108f0ba61ad3dbc1268fb22098b5942891c99da116c359401129bcd3e33244253d4bce6c734bc36e8b5b4b343" + }, + { /* i=649 cDividendBits=2479 cDivisorBits=703 */ + "63eb1e96a9c6bee1fbda17285de9c470adc5c5c798de5df11bd3c788a026a67c279192207cf18cd03cfdf80169918f1daf25312b0c0d5e69ca79998842320dcc71c2eef1ac82515017bb6e93ecda03c59b1147912fcdb5cd0a86e172783f8fde5ceb4631b77647814cc5e9418c96c67569faa6abe136fc9152b2a04ee7588000beb3b69d9acdf7210c42075f5d81684736d14a29edc53f3a7d01f17e422dafb071c710c37c63397cbf53185228334eda3ce77645e2c830b65b17589e7e38e507f3f24ab2df5333e41958fe4518729f048d97be973b95fa76cc5c80619a7e9bb1caa8162ea58b3295e9f7899aaf4fa282c89a9156d1e03ee0c997d9bc2f5e4350359357f99e638af22dfacc7a5cafe4932382c3eff0c7612b116eeebc63f70aaa53a1a845ca44186582240da5337913c827078c18d703", + "42e7a1259ea8eab604f53a0eabbcf1a08b852ee7f4a8e264dac8cb24547be64aeafc78e782028a9aa038d97795588ac7fb11b4a9d6ed2d42c5f0a2bb90865839714e50a15c78244136c45ba2f0654d6e65b8a64993570aa8", + "017e5235502ecb2f19272056a2c6914bea946631af5cf4a7696dfdf02c05b57f6b3942847178ac7917ea15f378465d9a23fafc855a1a2a4ec4c8dca8706a94e168f01b619f2e32cd735feebc840fd2c749cad2765ec046dfc31a0fe789989df32de014ba29d60876fdf36c28ac12aff805fb4ba63e109b1c0670d05e1487a18d8cc1ff40d910b07ca9b7435f7f8adf98f899d671e92844f0fe96bb3cdca224ee9e5b05e2b355dd5b86fa712bbef6a617a7f539ca57ae908323922a20548c0e554a7c656c4d0d3d1384e73052cfc9653853b3361f2f64666099c20d34253e35", + "058159dc3c0548209091a1e7009ec2b78fbd7522d66c29dd238807c9f3b9ca36c641981ae7a4d61fb0afce1d872726da0e792753147dab23fb53db0fde886d0f2e75b71b10127157f710d1d50eff742b81d113d64c36f23b" + }, + { /* i=650 cDividendBits=2486 cDivisorBits=1245 */ + "3032e473d1867a912ce50505c4c55a004f7ee822c818d944928fe27a8fa8aeadc34b14c1977b3cc8003c5847cd4f4dcdd23692852b6a43b3c18633130d8d828a2f11466f893b7c1dd4f1c2444ddc0b4bf8d3661eade791489fb4a638e55f87759efafdaf830181c277f6ffb135b6b4ac78ff6ebc3c27796c6ccad5f31c355e709ceffe04feb17517c3a35e1c46cc7111a44eedc4f07891514625f71b07db577d513864bf3dd0bb5b292b0c34ac30ae40a85516d726ad372a2e9b74a0a4230765793be3d97aedcee8ffa5f5555945d8430f75cb06ebb80404a9e649cb150c0e9020aa3809a7ede461a342da11e6148ceeb87e7aa780787a506e531b49e7da820336c14e6edd51682199f5aabe044cbeecdcd75fadce941d8ce476ca2a5eea3e910943e3eec823f9d9682cbec5d62b5a4b1dda57437dc18c", + "108e6b64f3f092b664434f39995b7931b68cbd280f92332e67571a831c26e0ef2a8e382c9683e5b15f5ea63fcd7f787375bd8eb22c549aaacd4a7ae8bffefd718d54ff4704303b69f6209c037e57e70290e923580b5e10d54336d51c9bd381820a16c1112d9634312edfb18ac1cb30e9bada142b1c3be0433e3dfbe958906389ee8ab3445bd22ee1a19a4c2b4eb29f1e1d57dca1eeddbbbaff572574", + "02e9447d0ee16fe6ed81524de419dde0821f129002ba89ef1c0af854c502510a481357f8f9610f62e74bb136f3723e7e060a60cb775fdce4192c722e079c01d1766649778f2c9b8a3e47a171055ed4f84371b0ef815dc1f5866a4b7532a40d60b4c6006efe19f506a2326d9e80e75aa35b50d446cc192e392c33b9632641f29fdc5425aca23176d6309aa9c83d5aa8f4d02f122a57575e6de3cddd35", + "01f42d81278ef4acdc6c29b83580d4d20056f603f5fdcdba0185469eb1e23eaff6a3dda36e7ca1444a11c0860545733591023f9da7c4ac9feef1c11dfda7154aadd9f60aa80bc7ab77976fa8ec0ebe203c04ab6703712f7722007c88ba71693fb5f97ee6a4dbe14d412a1afa5268c83f4ebfee6a36c18e9b034d8d8cb5dab0a9d1d64ff551db91335e7c52eaea8070bef6cd83d768b544cf5139dc88" + }, + { /* i=651 cDividendBits=60 cDivisorBits=36 */ + "08f1599db61b7f6f", + "071e8a3cee", + "014191d7", + "5d11858d" + }, + { /* i=652 cDividendBits=1309 cDivisorBits=211 */ + "06f909c65faad89e5999298561411d58dec690ba0c0ab26cdcf20bb829d914bd427a46e8fe30388128fb3fc98aaf64a19095ad7195906b3df26be8464bf8321d5161c614f457a4d8d2ee20849d88b0dd8689e0d880641e676212308c7f03978eb1d759c9c22eb88c0d6586bccb4ab681d797415e26d0302f0f0854a93900c1569266a1f8e55fc3517ae7b3d32d31d1baf9247c3ae6f922a888f79568c98b30d53e230323", + "047bb1c8863410521ff0f3dce764426d2eef96e1e20b360d9fa191", + "018e29cbaedc4823845dd445b77e1c9cad666eafdb4c9d1b4bb15cddc022deb98df7f3c836ef176453a3c430cec6b8cea1cabbe9efcdfd23f659b92b5acd84f5c8c09d04f061ef295791d92f219abcf34470b22ddbb858f3224ab27fff4e3886c6479140ee78fcee2cc4ad4a40ef0ba14ac4bc5b2c8ea24eb06caf214dddb44f27b0c244d7005bf94641", + "03f9e2182fdeb8ee4b23bd1772239907484884a475caaf71645752" + }, + { /* i=653 cDividendBits=1865 cDivisorBits=757 */ + "4e15bfa4c6e7f9e7c101db4b5b03e65dbecab0c2761ff329df2e1f6b965eaa66a2cbec3672427869e9e9bf1ba62120fd3408034154638dd6e55612e8475a31de92a5cb5310174635c5057189008febe167cee4d64a20f2d3a331e0bceb4156f63c8dec91191b2572c89305eebe19670b12fd2057d210573a18262ed014a0329af161b2e79e614f8c4bcf159a86883ba05ce08c9e6be1fe0ba739d5f86d4970ef6b2e7fe94b27637aa7915e4130d076f139a2a6a6de59444dd393720bb03a743cc72543fe3b876ec9b5292588175ff8b6f263ff4d2a69106f1a83ce0695b8558d473110a5d6eede3e2a", + "1704e554e3721918e11b58e957c4a726edc38f6882c0c817ab6bd9ca1867172b26ebefa13852f56b54f13d7edfade319c2f517c89b64548345a39bc6855e93a92ea704bc8ea210720aeef36e7aa3eccb0c04d35ba9c3f712db5a9acd39bd21", + "036465be8ecb9edeb814ec5ace161a51e2d957804274161bc6801c990986aa0483502877610f126af3b448e68fa9a225f91f1cf3cdac915cdfdb5eb6ca68a6622da597cfe0201d367971d1256a2a61879d99ae67b972300e4b77aa6bbf1ca34ece541c57fba13239ae8115ee0982c3e553e1935554d7885de5f1a6389d38c342a884e5661ca81cf4a0d052", + "09f40bb4c398bf10daf46002d02b03c4778aacd2620255a47893235720fed01377eb1c70b9aa0ab7107644d89d48481ce70fd64dceb4a838d1c488096c1fa8fe25582f100d15858ccd65c02f4b94366dd5e6f3e05d078f94ca358ca014d998" + }, + { /* i=654 cDividendBits=190 cDivisorBits=83 */ + "251c47573756ba9bf70fcea0d52e439c2c013e547d74992e", + "024299fd50a69b02cf06b8", + "106b5c8923bcd689b0f7dbf46a05", + "cb4afa760a89e7414796" + }, + { /* i=655 cDividendBits=2349 cDivisorBits=1710 */ + "0a87b0fbcda95404c15deb8be0b02ee9ba40e97d00184d7ddfb5966e86d93d18ae16bb7b30977f31e3060da5930e3da1e4ad8148a6df4ee06e84d0023e2e28dae8844c8f64e3892034d848f608fe1e6f970bfcf7a6c25a0f6532fafc390ae42f5540013c295f2fcf8e0538b2972b66f6d5af0b05d32f9a37239518bb745b8fa7d1458619291ac8fd2e2f39accd1d8bdb13e7234e5c1c977ab4810e11f0e8a1cfb4bf46614c4549f08f9420bb07f29aafd5136681386f826edf027c7f084a113a2020a9d79230edce129790c664476018b53fba322bc19b2cad6036f11ee437262509209b0a16af211c4d443bb525036aac462d08aae45985c332675385f47668dd807a64e29cb70b5a6e18db1c6644dc5545a2d6dcd335299bbee08408bbb031c7a3c4768d0b", + "3395d7a3696065c2b644f13a8c57f52cb1ee0167b0952c165d80ba7b3449f90097cf78fa03ef812919c1768bf87c3891e1b4e59e817a432550388677fc9912187627e060a917130fe960e6decd21deea93a7e3b04ccf50a722f492812c3d3df849f489b67b8ef9776bbd77a1e3a43ed1f282d5a68cf47fa12328d8f7dd6aad0fc623b3e618caec603c67f61dd71b09aea91f8fd51e10a08af168a63d477a19f196e200d5976f89a8f122f9bf8a8e44db845fba8ff33c05c51e0b028e3c0586c21ec90c201d257982c9a3e12e4b183f311fd34eb7bac6", + "3441c72e8c06502deab6f8f858aa943f51babd8e6eccdedd10eb7fc8da9fbb44baba3e884ac413c9a43ab58949c9d0fac562530ab11bbe539108f1908610bfe4771bf72316d9a36ffba299b7a59ea418", + "0eeb46667fffcd13c4596e390f0f30696c7378a1553ff0d4e7716228e3505adddfb0591199c6c9e53909df5f7ca6e1fcf42467c0cf1aad3cdce5dd0fb69342cd3deeaccdb23b5a37a8a65ad57cb300073cf074bfc7550b0fda9d621625c6efd2c5af348d6c06d243ef3d70ba925f121e403f7642d4ce81e96659576dadf6d19367fc98d52ed8c6977827e019daef1a5eb18c70c14f12f05f5126f521253aec82d83d61fa175337f6c3430eacaa9e664321707c0d98730f6a443bdfbd249b4876c53c81b010a070842528d4eabfce0dc99315cb62327b" + }, + { /* i=656 cDividendBits=2197 cDivisorBits=2113 */ + "10f71622ab24b3d4649327d0a828076db30a6c61340caa7ac3185ca6107867c3a4eeb931223a9a1fe808f8c6b1987e75eb5ac90de120fde58d7f757bd809b6321dce388aa4e097c34c16da90668a3f3e58ce4063db8f471eb8a4f33438231116a2b917984c8ba0eae61a18c73c366dff46be0dbb60b605ff8c23dfabe538d0bf1f9d0b8fcf9d90676ffe46237bbf30097c017f98506d8e267f6f982945f28dbcd9ee5e24efa22dcc3aa80d2537413d85e302b3424c91d46cb9b0208b775c3cc365d8a737d14bd97c6957b873203b0606a9eb25267d49cf49b22226d3fbe29b18cfd8dcc1aa50edeef5a8f338688d36e98db13de367d22de60e37330828b390f224b5e75af9161f6ed3ac7fd0310f8f0a74ebd8", + "767cabaef543d623c5d9bf22d2601ddba68eb517a19450d38936ce40458bc4eb195a979fec88a372e627918024cfb756424b65f86966390c35a282ec35ce1b6b702b8a6c965ed3574bf4082dbb83b4ab794a816e03a491a3830db0b14073ef4b2e89900784354ef511591df94aac4187b87d06c6f169c9e35b72c81b923324690ff2b5e232635c7c66bc2a30e341ea27bd6c6bd634c2778c87f2ebe5d34227596ced5116670c476d73164ad406f86e21f4de66dbcbe6371bf1efb286f9d6466cd8e1abbc5bfc2923dea2558a39b6ab8528245d59d710c6f7ec9b5c4947fbf4bc38aab82e217020d91cbd8642ecd7e38607b287fb39ce7899ed127a08bdaacc18439217b8c9749fbe", + "24a7900883e8751963b095", + "2dd4530ad847f5bf8fbab91c17b41b47169a8e9eeb61e1555dffb71b0019580d960620cdecdfaed9b78259bbc71108b5641e332c94086fd62bdad7dd89e38bd99b44e8ecfe6bc81ee1ed884e4f5e8a91a71d5f96beb4570ec5d9798cb2f50762c7ba0e6885fa5606222660e602ed2b33367703946f1f1ce162e01b3d41a7124dce7124da212955103da6c692139b76ebb8d00b39ae6262d36b4345a357edbc810c7fccd19afd4b0b46b804541349d7f26d1aa36b2f1703883848c639783f9f365e7ddea20262c5901acd3656000819741cc097cf840a34a5e4ba9f6dea1d7b1df6b2ded8b74a3b61faa284caa2beca1d10e5cbda0f50fc554f3b65124478f78a626cb8f847475242" + }, + { /* i=657 cDividendBits=3442 cDivisorBits=2162 */ + "02003f73ab8176a29851b36cabc034c9a2f509a8e4544244db0a1576b911bf1718c039c8140afcb719190a6a39418972c55a2a8e256462733e13dff2f35570797e8134586c5d097aedae09443f948c2d6a2a9d9d7619d52b59f02090e8713c6313e95579760ec3baa5f0401c9d7a3fbf8b37686626ababbb1982ae6437d123828cdb2167bb3016137097ebf817778022cb8c32a9108baa62b1ddbbf57ca066e00fda930417f4d8f6038a0e6d589013bed3ad5067c1b4c09a687c861fd98ba27204b0f5b7d90edce212ed266433f2cd89b5f60373f321af62e0f37b6e8d2e739337af0ac2734bfae7982b1def85d0f0f004dc37ee7593bb897c95c959865de90129edb3b80ffc392284ee7ee7d57be3e32566e2e2604a8f92ede49a5b1f0d785fd1f390ff15b250f97e5afe3b12c2b3defef8226814255fcfccd751ac5e9dc88f985d8b3a54aa8f8447df8c25c8493a9b669b596a2b2d51a86ae25bac0028eb0eb5b72356a1ab9b946bacb7e5fcd80d3c390919c72f5529ce8799700e40650b1f4c6ada4118ca1f315a0cd89927860b21f6542af1e7d487acb3f2f138b75b7b9f55ee7d984065005b5d8d6f4a09c29f", + "037c9df3725c5dd16d37b8081a0a2e7338de1c1c0587e56556b1ae061da4c78a61ff9cc97b14654988cbba9220675314f12dee6e55b72d53a80bd57097e1971a961c1c69beb84c921b6c9b0a57699450d065a145cdde9136b8d0415969f3ae15c9c92290312064b7c0917a688f02e48d9b697970ee0666a3e3c51f3aad822636c99faabacabc4aa3b95674855ebce63dc9d95b2fa565e701326e7c6367f85ba73494dad76a4f4d306a25b6fb12924d836ae10a7de86f46655374a0d55778b5ee282ec9596e08e097ac8badb9f4abd3d96321513ee59ca80eebc5dc61610cd47c5fc6cbe80f4937288b32ff8d1fafab1eeb01f8189b9fafeb5004b23b45265f760511e22fe7fccfa330cb3be92fbfc4", + "92e945b627cdf2ea89b94625264c050be0b2eae3b5b7e73ab255c88bdbd0fc59ce7c12d5f23ff5d24a6eee83f0ef8d914648946c691253ec95f9fc08e6aa8e4cbcf17de83262bdf5065a7bfe01baf91cb3986cbaf99f5d93ef288fddc4c76a22f857cf8f38ab1ef77ff62772ae3753f904c047339136d16532132f1abda606ca34baf67a581a6dd76fc1f519d7cf9a239a9ab7cb2077a6397ec26ff35ef4d999", + "4a1f6d8aaed8ed3b05814bcdf5aac48341cf6e66ece32a90257977c09f4bee508fa8a2a1a430460ebda70d758d27814aa229886e422be9ede22b030ea20f6982a981f7ead10ef362294b403de1f3e8c72207d7745e195b9671aba081308df0224d83a2018a86bad16d3f5fe667c4d8bb0d8fd30f507c36abfbccdcf1164beec3de850ea450b7343f88774d2b7e06011716245a07fd167587a4fc768f6c9dfb854631626495b8b3e3fc1df935b64e883b91bc4c4bdf6b1300c2f11a692eda4482f9e0cfd248556443ecd32cec005e1c1c6358462fc678272584b048c8de746dd56f4be5db3bf8347d3c32469ed30034c47862953023adadc64eb306d2a0119afa58c407c7f141eb3380feb423027b" + }, + { /* i=658 cDividendBits=333 cDivisorBits=175 */ + "02774ca3d2667cb44887152fcf38466ba496a979ed5a8861b108333ba4ee02e3577c46b80a51859ab090", + "50dba92a3ec091cf733ee8f47f697fcc31d80010ef12", + "07ceb870e7201cb806aa38ab3110174c37cd7821", + "28ca9048ac89dba6104601892dc8d66b152d43f16f3e" + }, + { /* i=659 cDividendBits=2618 cDivisorBits=1979 */ + "b8239f542636d10a4b29f06a776433d8e4a2acea6c38176ec717071c6559953bc97df583ab293ba3b40956b42475c0b757714d319358f61df512796b5c5e4a80d1d35c6c72a8ba07565620240f2ae9cd505b9177ad8fe3be714e24c5642794ae7ddcd9d45252fda37dc811fcbf7b65c23d3e547c5bc72be6e7d3939d73a8c3df946de5d9506e51b6807d9406239c1f119628321ee2504624754a9ce1e7e6bb2d09d300190febb2750a996d345c93bd360fca194e6d6f5377439e748bd9244732852bcf09cd8c3fffd9f05318c8c9f9dceb0e97d209fd6c99ee116ebafb0be3e657210ff144fbc6384b69eb57ca133432cb1a4c58aef65cafe414871681755f18a9568b23df44602e03eff3e5b2bd8a39a465ffe1c4dc0066c987ba03ab3580789fb255dfaab24d27435ab783703202a958b38a6fe0960b891a4a6c31948f138fefd7f842a2badd", + "03d1e9bbb006c33d7539fb5b488d83e26168811ef1433cf0ecb4200e64c17f4045decc8d91ac5ce608393fc5bf91b0888821321026e927ebe46d2bcdbbff9ecab08c15faa58f8ee85bab01ffc354cca99ea6f741beee67351aca156b1845cc474b41e2145ccceb2839781136759f67488b9205e411cd3c3a0be0a187622af4ad2f205b765c46bc19306b8a03afad483eb2a79c78946dfa8ade54776c8e3eec64fa80cb537ec572b34077be922f1712981cd9429a90ec7e8f790814201c72a05cdafcd76b69d3294ffe60c30c8f602ca4176a89aeea447f2975af47e82c57da2770bb02bfe4f014eb7799d65adf3ec34f2a28e3296fb5ab34", + "30344da90989e6170a7b733fb50778b829121dc6da4ed7d9f1c11916b3eb48a4b6372e4533ed1a2cc81fb0aef2e595f285756a1284e9f95230dd0829f181230a13a081c9ea49890c5f33ee647bcb28c2", + "015ee235c85f4b2c3bd52c3bf8f0ff0c568211af463847c25bb1f7d5c3a0139a5137b3553abbea69df03b5a2ba66732f88c34fd5011663b4037a3fa173c4b668305dbd957f9bdef45acdbd87a5b6399d2081c1ab9bf7b878d25e07fb994fe6b851c2e6e3e9816ff84c1952da75215d9402e0ccf97257d26552ea56a2ca1424496ca060a92d191a108c865f71bf5a99f3d0d4f51e69dd52ea0e9fb5fbe2446f5a83b79966d9c1b4c161a5eb7076169f36a640b31be6f1fdd6b26900d52491ead7dbe690ee4979e02c75d95e77f63fa911fc2cce065e5950b8ec317eebc5528410a74683a7411ff43bc261a5a860a252ba3f70227c79fadd75" + }, + { /* i=660 cDividendBits=46 cDivisorBits=18 */ + "281afab2df81", + "0291ec", + "0f9aec14", + "01e911" + }, + { /* i=661 cDividendBits=70 cDivisorBits=19 */ + "1c35f53c5eb64966e5", + "07766c", + "03c7c1670a5a53", + "0409e1" + }, + { /* i=662 cDividendBits=370 cDivisorBits=22 */ + "039cc83cb414d3cbaa0e758afb75bf68ca65040aa2dfe84cd0db5f3b1d376b3dc2d44c9474c114aef32820b8edb98d", + "358131", + "1148bdb3a0a1d225a85dc18e80810d709fbc38235d444d6dc4b3e2b4dcabf804317b783b1cc287fc189cd93c", + "04e911" + }, + { /* i=663 cDividendBits=2683 cDivisorBits=1628 */ + "0216cdbf92297e779ef28b65482a7b1a7b9b83274a1a213810727b8609964b6ab496f953c93fe11e52b21e20109f4c57758d821c85f0f22d89a0a8a1a38e89f99b2a5ab49a955f8c07d80b6a7864d14b7402d18df310e9fd7770001086228a087c1dec919b990e9d2f47b99b8ddee470ebd10b3b63246e2a063531981357ce4468ebd6b60c5f6ad3b6b3177272b2eeb8a060a8e7e25f6e07db97e3e954da22debbdbffafa9033665ecddadfe5b68669637e72ce96872d763568e192ca1f7d31626f8e45798451edeb74f7f3c5fcd2867df8c9c46f17e937e9645d3e3a9bb11572b0e986a6109e995a72ab1ec168304ccf7d9ad3b928ffae48780baa86c3482bb55424b9d98d2de94f8705449f98a419e6e6a1ea765f291cdf192a999b9a6f6ac04f1b806f8d986ca2cf96e944c13a03e9ce2566c3b8f744857dc59f803f236145ae620338aa81375a8d557405893d12b", + "3b81383e274fcf6b1f9d59e8f1882e4268beb2c2355dead645a46160d1cf358e463a88ffc1e48108945135c07679500aa16631dc5f94b86a544a09be9768c802f0dc11782f07ca748ad0797b6c22349ed5c15d0c56c7c4d66c5705aa6fbb0a3c21ad0ac1747f8b5dc30fb65151f1914660c7ccee0e37c209f29862ac637c774eeb59004f8667ceaaa1dc0dcb06d5426144d61fa2569bc29f00cc45437fb4966c50d24c33cb721791d9348c69bed4b4f01d04beaaa41f3bd1221e4fb631e1f6daa8fd36450b15aa50d6274c", + "08fcd1e752bf19087f9b23c5512772ca52b02c509f99b6813c6b88663d548789f71e84fc18a740aec96bdfe37aad041b912a1dbfd87386554eaf88200ba55ea2b3c2e7384a795054aecd34d2af3f50011e95b7e525dbf765857cbef8c2f91728650790e9d27f5b1b3a5f44392d10922483caba866522dcb7d63939d96be10b85018876a826", + "30f7519fd7089a4ea7eb54232041418d2aef1e5a2a8f613caa32e54ec93847ad569e6aaa6927ce7cc2d41ee7a7ac1108e34fd95d2cf214bb4285922dd39daf8e0236c4503c01ccf85a62c34031e1148d4c11699d562651f49b0b04bbfd4599780b81cf863e96ae22a56ac43bbbf9fab4fdf797cb2a6c352f2410a3ec43e66d07ed672ddd632951360d97bd5f427e207f4766c7dcd8e3236956b95810c4b38ccb5402d8acb0bbb3a3934ee39c86649c83116ae64e1240a57a38225e86b0d861004d0d4e9c00b00951f81be3" + }, + { /* i=664 cDividendBits=110 cDivisorBits=10 */ + "08d7c26aafccaf1e6e2f65f73ad3", + "012c", + "078bbdcbade8b0bdceaa27395e", + "ab" + }, + { /* i=665 cDividendBits=2912 cDivisorBits=973 */ + "4f599ba6b05d33486f1d50d594e7073e844f9ce5f78ec9692ee618e0939e00c6c72c5b65217af290a3c466dc516c8d23ea7f6a2b8a7e96b21e707c8a1ded0a0fc4b243d331b3cc7f6fde4e8c0454c8ea4ebfe4d4e3643a8016c1009b337b98d5629cc3c78ca3edeb2f71e103031befab1d6eb34dd5023d41ebc12e800ffe46c75a04869164e6ba6bd6cdfb681186efcea98f091baeba2f44c3728eb47c5d76aac5307a9b3c9cb342438751b537f8cdb73bd3fc82cbebdb59367813ea33bbbe90da552601cb18b892e13bc42de9093c988aa186e791b5d519640a9c474bab485f6c2086abde31a8a49529ae56ba90eb899fa10012d74336ce5d12e99499c5463f96fd25a8b4073c467aa89fbe10ae4c628c7a09ed370bd7cee470bff54f43ac3444c4ed4f82a9725ee35fbedf2e48cf7737d03184678426e0eda1f91edfa2260c909f5e67aa803cf9e41c4ff85319f6fecb495c96d2cad3b9f0a5a21af47f54bc039822ba1a9bf07ecedeff7f", + "1b5602347777291434f44f75c5ed8249dd130785ade6f4d0d5729e9c906cd9d92ea12bd7ab5066a330027e7a886ecdd53010c39c6fa35cef00516dfbab405bdcaf2dd32ef16758fc3a6b677c3eb6679621b327b8894d56d81221da2bd39d7f440b45b84eeaaf763d0367ed2f98416abcce9b682814e72d964c1d", + "02e71bebd0274818ffe975d62b56f3e8bc4e27620d1fa0b7573ebab9e50f7e04bee7b81c5c2cdea092320a5c277be86878ac6a36bbd46835f5c56da886f46c2090b0260452a7f210579767ec5091e602cd14498a6cc0a4c3bf568aed26eef9ee651311f2be7a2057888f0963f7427f9d2476cdd435a44f30634492210f33b0d89760c73451aa8bee000702a25434481398731fcaa77b18e6b6e788f6e209af92ee8f0997aa4c382af373c18098ca5247711e9adf0a7bb03cd919ec67c83557ee93e869b18c0e45337f62febbb9fbd354eba65f06b193f3964de48cd9c914fc6f7acfb40d0c9f6f9c92dae8047f556a3658cc9f", + "16734660bc145f044530d667c0ce9364537cc382f592fa5dbaf4bc0c5c6bfa57ea9982c47c5d8934f9adc6ac6051acd01cf33bf1a91b4cec4e72c8c78b8078ed1f7cdfc1271c2611d6d5eba95de7c38dab9c7bad28d4705fb97b215d35abbf086d4c25430db3f932adab4a8e446ca9ccaa20881537db71e69d7c" + }, + { /* i=666 cDividendBits=2731 cDivisorBits=203 */ + "055fe70a1c8a464bfc84e8f690be26419c7e7b4644885607e326ab08c32656ad46897233480c3da21b46b9af99af89ba8775a6380d2ff0550dd5c2ddb8fd7ac1c32f4b777639d389cc27750011bdcf9e51e369d2d583c7f11f11f7862b91606d24fef6b4a2964faa7d45dc219febd0b660ae5730a12b3096bb082e53d555b8b6a5582c05985d3cdcda30c2eefa5665b8e43cbd385e08400fd4ffc1222b396fa487a1a8ffea2d4af640d8b2206cb8a1c55e8b7e53c89a6d9242669c78db1e4656f3e5082d125b3df0ec4cd0deec29247669740ed50ec3c6485452edfbec62bcd1a8764468843dc64240b9b5b08f11d2cc83b05351d7516b3cb063f261cb33a721b9d8868e5805b8095a8aba600590e8b768eb10886360cf08253965da510aa986691100855f0538228ef9d2ef5eeabf09809344e411a870b3ef927c88224a6958dc1822f5a7352b69bd79698a202c9a060e20b8974969", + "059c98cfc6223c2137646611bf9f5f5a5d543b3e4a6cfc70f0b2", + "f52f2f9dd587e1677864d5b2166ecb4e9e6252bab2a8331416972aafe2d1feaecf374e263567e0713d193f737e59268cb760334764171d61f9fcb760b5a5c813aaebbac73db78fd3b9a11ac605fb2dd47a47cfebc4bef45388c3e0d44b9c094bf785b7a7e02be942071526f8ca15654a1a95b12585cd2a2a636287449c3e3935a14b4b55bcca7bbc830abf05622d3420df66c8cfbaaa3cd110f268eb22db45e25efcef971ad18c124eb20756aafd035015f0b265da71ee328f702d834e6fb6b5fd5b3f0cb8e126a1998e23df7e08df30c667925f224f9e365495d90f06b3ccc9f1608e0a9166858511f83abea32a0c7332da53784ddfc4de413968fb4018f64ea1700b76e9e444e01cb0715c2f77a20ceab04ac3a8fd138004f586e92ef7faeee67e9e9b0e2f91b45b16d48a1da17deb4c0230ac35ec500e4a1fdbc2", + "43ccb4c6ce6299b3499866c6f5cf17d7370f7e6a98338a9c85" + }, + { /* i=667 cDividendBits=3497 cDivisorBits=225 */ + "011db63fb9eacf1a8f59d842016539ad8174e169b333b2cb7cd1d6e9308a11ebba602d30a420e7411a8d092912b061178c1c41b2109a1b3dbf9a36fbe143ebaf5532eea0e7c9d79d6419d2e9f2a10090846928c65c5c9d4a52ad858121bb53ebf3786d66fb9bd364cacb70296a0b4f681a000a1bf9abec8c1a731244d12810106f20d7f52f5fee048edf3a33ce095ead3d6be568e831b4daf5489e33d743f8703aa3f65df73274a1bdf870cf4ade41a8680ff21e4db99a8155ea95963d72c3204a10f835e7ac7fc2b6b361db5a50f993ee9c3ce13fc6c7aa2c92949db77431b3c4643636ac371a44ccbe199862ebad274082c1ca65452b7618791663982fc99bf7586c7be89126be4d199c206ccb7224b069f84b6f309eb84781231010e25b6133d8d688235ec2749b61e2b93b4709dc565d0ce54f0c6041513b24d641f47212d5caa24a1b0e19febf92d220a5a502c6b79483308f35f6bcfce231a74210e6ce3b27fde747618ef9b690db791a670a528483f3e0b601c9c1bbc892da298894ec8d621ef8781391069f0d26f057a8a0ebf00c8979034d0001d3d00628115bb0485a1f0197f85a1a93b225851d11fb85c30ca9f16deb2c", + "0171c2901b5d56ded15f240b3f5622fb60c746a3fef0240ba0f36aae9d", + "c5cf5fe5420113f495fb73be87ee3184050770afa63060999921b4827971895a13e3fdde1a4594fc29a1f866bda383fdc000ab1cb8b2839275a62aad442901b666c608141c6df04dfacd5c189c99fa4b67e6587e415e794937e03de2b30896c6892f373085fbcb72e2d12f3b26eaafe57b43c5534ad379067be3afcc0b2447ef00822b3095e17574b5ad589968737f9e95084e8b5d0eafd33618aedf69efa5672ef56f9d11fc9e5185f22f2ab390706aca9aa85b10689184095d141e08463e883bc70460fd129ff69b2a4c20fc51d1b2e488754ff7b59c07f51bcc4b19939ffcb2b1985352267180850df5215cadc54ef37a5424dcc55fb4114b9a3e35cb373e2583af7960e98a7d50b54e2b320d08a6fe4248e4e4a87706f91a74231c428ce8c23f0f17d9529ec4d9d7ba8908fde7a257ce914e8c6bd02a2d2529baed39918d361e29f2670520afe3a1e9272914bffbb87a2a3d220038d25731e7dc095ec7704d93935e5ef4045609deabc54e672b53635890a19f6b9a855d241cf2fd616a77bc16837f319effeb93052b44b130792eac523ed11fc78a6287", + "010d4f05d0eede59dfbb426b96d72ed54b3fea0fac8dd2d65991b1bc61" + }, + { /* i=668 cDividendBits=3423 cDivisorBits=3039 */ + "50f1eb2115bbde1082f19b0a796e723d1a96a0b706e7cdd40c5f6355f8a02984da35a1823a175b78cacad81090e0c5d029a1795f660b522baef17d776065e20ebd2df02777106c5a618897e5f8d504ff507180585edcf1923cdabf0be61415c5ebd744841ef011c42bcb4b8be08fc154e14935cf83bebc753ffad4e086487ae2bf4a089f8aae3ccd4f2996c44b9b3d302adc9a3e250fa9115743122ed062af5bcc36f204d3d9c0d1b7f5e1f194010631cbf7f84bdb8f1a9afc01ade76539bc5796bbe1063f57f52e7ef153b98591d7b97c5871c6e08d7a5d59c8f99a459706c5e7fd06a91688aa02a5edce82a0da986dc1ded6d1fc38b943de5a03c74010ab82a7e7df392a4309ef1cc8d2a9448a556e4b3a79e81043efb84fde5e0ca29513a48958352aa4fc0407fccc73d4085b5487e970b4981040180b5d9956ae66aca270dd3090c8b480e6a108f358d72c3efe99bb4ed700d4f8472b8251cd997f96c3f3124c3eacb9395d3909163ca553a8467ccc55bf5c435734faf803bc3f1db0e822375ca3ed64850daf53c721d3e933badae341ef239f8c1020d463c667b295336ff099aa57495fde69d84b75d9", + "753dc3d3d07102a3a68d691dc4c380389cf014577693e6a086412edfd57faacc747a98b9aec042a573d992981c12918d7af4516e925b2a0b028a353c99f4ab7ca8d457d89744a150e55d670e765c6cb351c931afba43ddf897434d68c77890e20a2930e992ce27d3753394bb8048bce3ed5d4b382020959a6ec095ccbd3b19b8624ea533de73ad62590c92bf2eb98bb9167551ba323470e55dd0697fbb4d7f494e9d9cf97a7ac9cc7f698ee765797127b34085909f5266eb5278679fb2a4f66d2f3aca8b741e16f40dcb9562e43a1500891a7a7ce56ab566d71c7ce88b76d70936afe683e21befe2448b626af28204cec60ddd8c5e31daa2e6fd563dc7427ef432263893ee340202b88092e4805aad69238badb32ccaa2363db13710c017e624f2c57410836db470144a5529cacaa44d1a58fe2ec733161b7fcfef9346bf41d23815f23e3ad688eb6ad7dfefd8c5ee8f70b966d755b0d0951e37db90e875b37921d07dd2b71577de28f83351f2c13c0b246c7f589cce9bd313a1854a", + "b0bef5fd504a1293ee5e5c1918b24183e777b9478aae52295919499a4b49830a21b82af983d3cea6be6ed1eb059c85a5", + "70ec7aeb6c43ca3e1200a1346d7d9a8d702f200d26b72d50d455755276d583e8c85528c73d2a5fd7ef55c7c016685485038b018c782e14dcdda1e1bcd07cbd140744d4813349d86ab63b4e66a842a81872954f525d0509a428d7d0eca43f9da498e97c19aeb7036b3b0ccb941b7ddab0e21ec6af75525ccfd970329199075ab6902a5e9a6fdcaa7dbe8b06a3eb50b51f91a8a4ed37e5b465c287988f01aa9305b822e70463b507d41cfb1aa2a838b3ea5ae6329283c439718744231811b75bb097e02cf7b331db815bd5ec3d2635b2f52455d6ba60dae1a358ba2987c272ae7c770f8aa9d1e15653f2f26ea4ab632a542488b019772d25c3f67a9e190f1b5c92e148c7d38f76001af363dbc446b2bca53744f5f69e0283b8d4f569e0859e215a42557da1538159b1ee6e46c0da177c14b68376c49fe128b98250032033e840bccce99d0c438fb5a87254297d07bb390f261f533fe03c15faada93efa442ba0a7a3f3f62bf53859daf85cfb1538c7ebf619524db6b85be3359bd91b27" + }, + { /* i=669 cDividendBits=3335 cDivisorBits=705 */ + "7fa726dd6360d2e2fe75bbc4ba1e0cf32c04cecbbfeeeabad915d643aa8e746573fe6f8524dd816097673e5899ec1e1d53b00d167be8908ddd659c6d2147ad314704aa3b2e4dd2bd49a1614f734b93f47802061a365b9ad1ec1aae58585ee1f88d23ffb12a29781499efd72239ff09afc34dcf1ea97cd59137d4b65bf2e08dc6c33042dd4366f3c2e041f7d4dd56fb66c08dee80c0008dfd0da49dc540024907d8af6b1905496c9387fcef78b87df9fa7e4b6547ef75830fdf945fb95976214bfd39547f2cd746b618bf9bf89a8c6eb62d2766cee018c90696b630321c4d39850a96e7b35546c5d0b40c1e90911fe36d8af4ecee71638e655cde765bb2b90feeeaad524a5426477201ee629f0b792b53efc211ad84d5c2935d956177d273da0a8463fe16f8c6a8bcd8214e8c6864873ed1a21885e3c3a1e53d544c938ebed0ac552b3619a5b449711e846dc2f6860eb9b95f62a62c65391e9834a9aa629fddb245dbecf1d3f13653052fd58195f6c53b36bc9b8c5ea712d516fb892811a8a928dfd2b1361dccaabcf20f9878dc0bbbddff97ffc66df457e50af10901877d681a94", + "01036e8c33d2e4629fdc1bc79a5400345f8f4ff529d81ba58b4cb0a8274a58ccc1557326c70818dac0c23690183eab4846c01f12aa2b55db4c539c7160fbbc5b27cf50990c7d170f468c4e953fca7259ea1fd9a35b57a6df87", + "7df6dd363292c829844c0229b7747148be15d884eb57ed50db1656d5dbb4d20acef7fa887425ad4517c64dc2d52463d632af106f6145be01b3957d7fe80371ce49a8a2c375e6b695c5cc4b204366ea2fbd9064b5ed24733911b405912f31e6515b1e1307e87c65e1379824b095c6906938a5db851d89dd7f961049fcedf40fd7eeb93314dc17384e7a4aad9861fcb36e807757e3bca839cc72457955bc7fd96f21dc1861db31248029917531202bb0279132b34ff549e963ba94e8429370474edded53f26e3d78f4ccf08ad909c3495bd7d608c19203ad1a93d610a1ab81b77d1a0f8a7a25c2923c0ebedfcc35d4eb0948132d28d01fcbe45328ca16631698170b08ddaf18de8605ce8d1a2948fe815aff6cd1fd0f84f1bcd05ac2bcabab30c0d5c385c6fb8cb3158551d12ef95fcf38aeee67ab75b8a9cfb7e3349e3989960d343abce83df5fe2ed5", + "8a3712f0423a5124117e6bf8218c145b75fac67950d0f27d60dbd41d16f0d2e9c2eefd51b39a8a3ba1f013e0ba6dad113c433cbd65bab3073c426814131462b5911f2c1bc31a5b1bea67f583b513fc6efb9c661e9873dd41" + }, + { /* i=670 cDividendBits=3878 cDivisorBits=3312 */ + "0e00de31966bbc2267464de144b99a902cbca430a00e8dbe1df9f2b2c3ea23d08008033718215916649e29f8d79f0d02223cdde0f4f6e68ad9559a75c7368fbea558e974391fce329798015b0eda4daaae758221777a601c5992f979fdece1d47ebc1d77461ff745485aa8a9f43de5b27c0fad233a87cd3d0d6952cd51b4e973d70fe5a74c2f0a2336432a19bdac510dbb6c93e9cf0b9232fde2b8e3eb60a640d44aaa89f565f238f42c91cc9489c86b8b18a16518641303c831fd0e787a1db5de3f8ba4277d51fdb0f1eba958406665858cec96596fd59ff194b70275a1695edf5a8574d7cf540551ed2932d8de67266ffad747f5b212d6b753b2c1e4c1c75580b6692c4383dfa9ca74dabe81dd8312e5a010e53b6b3a8842655a7edda4cc22877641a6bfb2c30276412d8b7e58014e9bed0017d97c3ac4aee655161f4195d9b78cffb6cf87674bff9f59ebade2ba2c947f45f0d77947d0b93528e7b7506383a51125c0e94ddf65def6fc45c86853b9504e7ea37402918b2ee10f122846eff2e60e826d007f4681c83703dbe917eabc1d81658af7b9c6c75e84b7821cd66c9f8f9eb9eadb3909c2737e4b51ac3619741cd45cb518089c2dcb85b836c82a39757d088737bee53fe06db1cfb2b1f8c4b3f791c5b0a7ba8907bf4ba03f4f44cedca617b6a211", + "040569dc769697dbb9228bf6c86a13a7b0e41f89ca1671cb5e479ddfb68f9e6eec6909b89dd4b2286da3a8a6b73e2c9d0a26acca930e40d72146d6b9b7148d50a08c713e9c062e727febabb4e32d3a2f56d93f85ae98e81a737cd871112603aa97635af566c37b4644036c7c9c515cffb0a0c50f917ca1056391e10f59a73536b7866ff6a6e47d23f0b1181b318244f2fcf0b7de56d52f632899c5b42c914b3eaacaa5a90a5b005c9b675a80ef8800f38867b867a9945852b214b85f7d149ed63e3bdf158da3bb5e6fdd57f4602437ed433e5ec34cc18b4384fd06dd15f299635873283ef5f257241e0d3e96078003fc592caaf2b307399cd2c141e55d3d3f44b599e689acbf4573ae3c6453be56fe09dfa3488d287ad8596084e64674d8d5b04b8bcf8865b7ed38d44e80504d6feffa03de307f11016078ebb7480c6f0e03912541f9972ed1d17382b658171b470e1ea3c8ed05c7b08288f5d7501bc49bcb8ad304f96d5d1b31d9c6d8b54c2dcba6228a47b90d2fc6a7c1c4a99acb7990713d50a082585c5a977cf64fec7ba79707690cafcafb7de48068c6aa3fcf409b", + "037b810139bcdab2d449c0a8c29ea5c646669cb6576986ce4a725c5e8093acd6c12e5cb1faf073423116ac755c1a89c1586a4b2c308b93c0c56b40899ebc89e6d43fc12f7262ff28", + "03be99c2cca919bc1827d92d8669b7a4f96d00c54db13081248e5bc608acbcb90eec1783f5f2b3d4dbb1aebbbc77c06671255f9c68393c031da3820e073d3a98a9e9b828ec49cd520d1d91edf6795f40147c768698413afd8b8d5e792d1828f3364801a2820316105d98d944eb28865cfd659534920fdd036437fccdb9812285429c99d7607745821e3f93155ec125c25992303816ec4e2225c166942de0c52be7990f93b143a73776092f78a9baec4b6234d70a1a4b3e0ee05e86b09f1c36c6eb549301667f343d65188efcaba9cf812980f7aa2dd85e0f74d4095524835127321ff4d924affc62b75b68350837838d4ba22a5fc0786c9adfa498a5e2990b7fa9d64894f634570fa2f5c00cad3abe949b585684180e086be696c3d3421d084ced20d756b3c67aa2efc91c2cbde7f6edddc85bf044d9d8fe0cba57dd5bb90daa8bcb52926decc9d61ff055812d031580f5d7363c406ca66a5965ada49a6e04c70b8beb02500d01ef5c70d877cb48bdeb6b2d1ad30062341865f578c22d5eb837974e602232695cea3aa7601d8423106ecc8f53eafffec00eccebeca424d9" + }, + { /* i=671 cDividendBits=880 cDivisorBits=691 */ + "ffaa4a7f36c97020e0deaa109498f2166d85ba73a489e04d9d50a91bf70eca50b221dc4e9ac7d85b86fb54ebf68afd8153e6522a30774360e7af6c8622088a923a25e908e4e4c2f2f8d93ef6682197d1c88357214e156440d987706df3fede948eb02c24ccd7e42fc99dfa8ec2dd", + "043d4d253cbd600ac6b969117ea4b03c1c70558754d904384a26cb479bc62c94299c59acd9c37a78d84f958ac2f0b35e57e4e9531c86fe674bbdfd0e72c62caa794f45bde9d6872c71bdb89a35ccc41a49c30d6591519a", + "3c4e5c86e6b899394db84a5b6b94d25952a3fdb3f7f6dc8b", + "02976de06fd01e7459c884222b614d5e7363ae7cc1519ac293baa794222900b84dffd202e15d38f2589367b317bc47be749c21658e582476ffef10cfd7e1b4b278ccb7edbc216b498eae4968421fbff3554e00f28b1c3f" + }, + { /* i=672 cDividendBits=3321 cDivisorBits=2177 */ + "01380d874ba8ac4792e3174b3ae2bcfc369eb92b3c0be5752131a244add048294ca7504fbea91c92e8c73c7bc9c09111b55237975388b35e33c1cf88c34be0058fb7a69d97ddf68a0f82bfe21a7ee08f2e8aaf215a1d3cf0d45551bffeee8358dfd0c4446cda20c7689cb64953769e3cb86ce8bc48814c67729bb28fc3acbd244b713b7e7f3e9b4bafc89c783a0d327918e8a3958c3eb7b29a0552277d71f46f158039bd2a5b47138d31f52b276aee5a3ac73aeb3e1634f30788ae8217aaab4445c1b5496237262c28df9530fb579d38f9e1631238e98758e048c78a08691159e15f80b7e58f3981b24181c88b1ac8ab9e38577557473a21a72780e735feaebf02d6b2f8eaf6379b031cd340df2d2b7e807fbbe15a8eee087f933505ed92463b53f368fabf53bceb6fcb9e1ebdfb1715189187dc8296fc4cf8c12441e453a0edbb6767426f4fcb26bfa9ef9011f4c429b2956c7eccebaa14e7c82fd44f4ccbe9684a437f8558569d203f731ffc72ca4f5454cc5fb8a767f6cfc49538b878f2113bd7bb222e912553eb8b419204a45312ce21604a3c502a2b8d8f404e7431b1c1", + "018e6c7a242e5104830f5d19a3d2c4de0c35947dd99b2366bd49f7860f6663f38f8efbf4e9f467ec53c6f0aac511cae6cc26e46988616eddbb154de6ae3ee98935d0e9a3f0e760f09f33f55f9f9d499df3256cf182d96db233e28fa2b7c28f61d2294d994528bceeb9290991565aa7aa9de3b5b38663d233d64b13ff084be81d0568fe0d9d6207341adb4d293502919ddcc70f921ccffe8c91189d4ff2bf057ebad1623a24ad548f0f2bcb256e420f6dfc74cad16e8b1d1e942f7adeee434c6dd59f4504a8350e1cd908c35c91f10f22b039c3d021b0540b777efb9060c56a25b8392b37c53dd80e3b824c90388dcc2d827d749e84cd3091a46b7904dafed3d86ea9d30aa2af66482146e635d5c662e4b1", + "c88102100fc1a4456489bdd4d5118f15516371bc3809e72788c30ec1ec0abc95252811326d74bb113027f5aa3b645933bc57dc96389df568d742c1a79d74737f8f6d6457c2ad38ea3ca111627d0e804e5c17f5a5582d3b7741c733a0253fc357ed59e3ef4aa571b82ee8867016c2c21c47a415f4f03ff64a43445538c84e790f2d477728e5f49fb2f4732175576d90", + "dbb7a85586fe1f7efa33e1e6b2871ba8402352695b99769289114a1660d5f96551188bd759a9bb562db4ad94b0ae09ae5e851069801ea8464ee1d67bde24b1c54e4c000699d8cd3c614dd7bed007948d10af46c169004162e2333e24fc08514ea90562e8914595e2271bbee5174a3262d6408a9895c55d2020ec53f2e531a0232bd05ba045332030e8813c8711a275487d074eff81738b48b951456cd2f08677c7c0e1cf0d6ed4f715121b7310131b9ee1ff91f30ae2e5307122cde8ddf2ba177a340f8c80351db2c7d8668e7026893a99bbca8bbfa0c58b4c28842382282d0734f6bff7bde7389d8807a38670b4e61dd9d8ef28051f0e673c323c982c22a31bc7cf610c18138d8b9da456a5240ab131" + }, + { /* i=673 cDividendBits=3158 cDivisorBits=1512 */ + "1c7fb7e61ff60182adc81cc4278a9a948cc3dc844a849d1b8f19450f06486766a49734f9b25e89c4e1d27732b5da79ae7170c1f06d9c5e9cbf917d2c103112f124b7750960385fb4a7be3311e8d14ef1d896d0c8eeb427c20d9a55c3efcb516238ffd6440be9c32f45bd852f8f7d57e0bae4036ae44d04bb11e378308a083673b410aa682d144e3a8e20549e849b8f0a23d76871e4588a830664e25465a56e8f9d935d415b2aed5bf98376379fb2b8559f397e2cafe243756855bf84a9e2f2ba4a647643a7187d8701e650a372784853e59ab537d881c1634062031f59025f19a93d66cf291f4390e7c32e443872dfc3e15477997131b73ecba5495cf42add958d52a1124e31f45c5767d6c8f76873206fc1d916e6e8e47cb7b389b459bb3753ad021a549812b776db04282fae23702523252b1b1afc4062a8d51da6a9eec3541c3db463c6e76b76719ee2de77eb63e3c589a8773c6be73d053d653c0390a84e63b2a378841b3494be2bb7c03ab78e627a79f73d2c1c9bd895946e0bc08874bda4806b4deb7d4e1cb4522b", + "6459050b69880f9540bce72b58db4cf787ec59486b11756d05828d04751c8f3fb52f7a6a9aee6809f542d9cde60ef43824463b3dd387c8e2656d7deefcc78348cc2c0780a3b0fc4f78f2a4a3994c97950d63d62bb01ed15093b892e3be345295ddd9fcae4de86d3ad4814d8a6853e64c818ee27ae5268df1b95180ce4bf065de4271cdcdb10292fd2eba1b491348d8a89935168653d04adc79778534c7a2713f1ba7f598997a05dde5623fad2c2632c5998d47794892b80a59678dfe1d", + "48b45159cde7dd461197ca246abe9b84184ccef28aa97ffbb833b45c0cf104adcb2607a9d53ddff314ec4b6afa22f2a9b0bfdb33d660f1b075c4461a074d4f965e94961754e5d5d3be8f4c9850fe010dbc9731106b6b5e697c315bf7e8c4bd47615d934ed0fe8cf18dd9e7c0a8f0651a92fcb95c1b4b7f27ce3e870a272115824d1c0db955eb7f5b42ec2e806852bfad536520723b20c79a02ec4b507fdea7bfdff4fb25ca1923ab9593d1c1a3d237951d28ddc3cc1785ac150e7fbefd199d7d59e135112c850aec150fa108ee7e", + "466558c3926e5b484a86828d312f157d8f92ca91c737a96dcaf2294c64c3cb3e8e2d513725f5c48df49c5ba880797006061920990482c3618f9d3208500fbc30a4c8593918c85e228a77603d4daaa53d031bc0910ef0ca970d1e7021e6fc292d484cd6d579c36ca8427c431f14c70ec83b38800b11eed7c2ba3d2c9c9470764babbe0248b1d48967c3d72a86581ed5765119c0aea9bb429069ea03c844eafb78646a19e0eb98b20d338a5f573e379035e583b30d6954e57913f4aa49e5" + }, + { /* i=674 cDividendBits=4035 cDivisorBits=3472 */ + "070a9d182b5896f86e1280a64256b91cb3cb41ffd0f0adbd02fc8eca82a4224a76ef83638afa4a0835a7061f3135baf421c1d9db950d2b0fe58b772dd5eb7383b31061fefc6350ee44e52a50e421c03e8dbc124c57b4c1e813abd1d10e812fedb955e498007060d0d00b0a5e8dc54fb80e799a4d4a21eaecdbe129024ed69a8000fab01113d993f9bdd995ddcca3c2e1b856a9685bca209efdd01f0bede2ec67e9cf09b040c017c3aad108323df06b97f4b732ea44d83d7b33dbd11be0ac54a4b12b1efe0cac50acde1aa7b693a375858624565c5c7c41eef5cc47946c09f192572571a2aba2254932a4eef146d0367080eb0a951dae19caef234a3b2e6873eeab96f21e04e1398fa8d17a220cac2b5a55e39886a01262d950f7dbf6ff2579adecd4ae668e1616aa464b4474b4712689ab32d08f910126e41ca7664c7b6d084a078e3e314a72e8ffe57148d945d8ac7d74da1d8cdf9a365c3e43af21b0566ae6d6bf3fae3bf47cdee669e9fce49d66b1c8df93f31f442502edb74c256c5ed10acdc37bdbc64d44240219595c1883fd1ae56ca35eae7ed8c00b13336a657593510402a4889b4407515e94fe0a9e02c5ee02e5de60a8d6f955d570bcb44b1e94c3556db445202a7197b5fe66cb4860e372d469add2d4f90474dd40b3009fd263548f5bcff397b5d2d7b7e83225c67b59f0ce1b0f659d6702cd13", + "f5f4ac02456fd37c20bc6e5f6cc1d9b195b32f74f2b11e36ddfde0d486cc7647b067ada92a94ff833fc3f179c1c32b53ea13db760e5b83d31d6ad8ebc1c4aa77359d632c2fdb4a422904141290b37ed8b5cb5a5c78bf3f9e812eb50ec82c96cb7d0b0c249d03a2e444217016e8fa4640c774287dfa07f610ccd903fcab33831ceeaa3577e9ddb6990137567ee6c12a6522362ef19777a1b3207c9737c9cf7cf0de774ef5172505797c6ec524f7d892778fdb648274b5138060969d8777101b576242d14971d4e17ed2b9a2118ea68757f6a9710d6ce191e2b0ea9ab88b8200fbcc410890eb4837d478bb4b2994166a0d8d2e2f47a9d89e6c0beed5f99a3e603a1bcb983a6933ec54e44355b0f9fdf496708171139233ae0f70f6fc05b70af9dcd72a9e070e46af9d8b435ac268af49bf3ae616675b9d5581396f6c12e16e7eab5e1dd9ea9512219fce147b0980a02e600f3a0341c5d4a6ab75e6137868b3ac9b1ded77108783fe6680626bf205e558df45313e04a23591401d0f0009905fcccfa2a80455c1f2ad7d4df435582b49711a249667f6b7b8de8e2d2ec0198871bbee7fcf2948af82f270b79cd11aafa549730073", + "07543a663eb486707d6776fac4d259df4ca9803158352673760acb7e2184172c477edb1206924257f0497f45984bdf863b776cfd4e0d30fece4feb875deeaf93390eb3a68f9818", + "34b9e25885822d68183254a4514006201b7189a8088f62d352f2f5421766536cb866a8ac5a2326e265d19c0fd861cf33f32651950be7e1850e2bb5ae1209c90222ba9a87456917e0338de613e26e847286ad4467ca1ea61f2563c9446217e4d4b0531efc40d33506cf3619fc99a19f44a6908c10aeb9d1ba48cb7833f572ffd24de8c79dfe2f57692448c9f461919320575830fb7e1a246101d2549d128059ad7bc7914d2edf864283a4cf3408f9dd3bd63b03414fb7fe48af6a3b36225425e9edb5e429e540e26e454a19744ee909d21bdf86bde7bbbdbef364faf47aa7f0299ea2f5c17928baf916bdace42a280f9acf2b25e677d8421a95ab15057c5c8cdcc06e16ae449054dca0f392e88d8ef3f57dd403e8fa662c420ba8c8e6e52924c7e016936538ab1aecaaf617a15a18293915c8e37fba07045d5b072a16bc6a84476a04e2baedf955337c2132f967a8659ecb62d27b43b7f27cf3fad46de1ac2eee1bf436a27f0c9a5c5b3f1ba18cc69e5a3e2f36518fa16ef2ae0865c102cb77cb1196ef8dfbb9a5bb29ec83f85cfedd2241f82d5ee2179061b2b2e6417389cd195c2937699ec8f4860b149545969169b97a4b" + }, + { /* i=675 cDividendBits=669 cDivisorBits=352 */ + "1d42583b899f22f19ac1c3e767e4adfe5c403c6e86efdd0a43f0e7c226d629ee1478a6673da7bae2608c38e9d0e128b4fc29ea62506db1a601694f880fac22689ff0d23d5ee29966ad6c02325cc46c8fa7ad7329", + "eb69c15095c691867322ab703f3d48675e97e521ab20aeb96c0f35df82d656283fc3c9f304d121bb181f0e0c", + "1fd16038df003321bc97ecf90159989e83f19d12cc353f4258d38fe40f27f67c8bbeccd448aa6f17", + "e3d19a9014ca0fa18b7e1ba33ae8b8141b7fea84881ce7442598d4f48e8a24a8f8245a43918252c851d3fc15" + }, + { /* i=676 cDividendBits=2764 cDivisorBits=137 */ + "0fc5c104fe1cfc2e33e05e0df6725bf815afaa6f27482c351355819fb25ab09d7e05b1101a17e9ed81b3caaf89a9b474f5fa1cb550940b299e7ce15b7573fd7e1791f9f9e0f6b0ce941ea735f0fb24e1ec770db07fe53c661d420ffbd22a437680da83da05812d8c3eef4bf2557e399398c0f709ce738d64428731beace22af9de03aeeadf98e54a48fc743aad664d3114c72e07b644a58320b70d63bfd2b5a336231e40cda65397898f0ed5b223e791b140ca417e307fa8a91ed1953bbb7a066102cc9ed7a3da0e19fbf70af0097a7774e92811657f25d1a4b31606da3ec145f41a67b2bd23117c15297e841ec38eb6267455a36e52b00975a5515dec2813ce3d829f7613dca8ce12afad3c9c09676b2cc92accdb58c421cc862d1d74fa6603db9683cc1eb77b5d9ad1a1cf3a1b8501e2de2a0b572b68665ffe6f1f32c1c9eda907b2fdfbc9892337ffb3d15253e5299ef15ab215f7a1501296", + "0199e03b3915bb1cfeb33d21c4c3ad1e88e0", + "09d9e5c2fedd73df2e5368092312d43580d2b6771f701d5b08a4e2d96a09018e2ade8a867d72e679e2e248ccd605c84498251fb2059410501ce71fbb52cf904fd7e6f57d66d43c905d9f31e2f7bc7d51deba54bdcc7b317f78eb884e9a48d1ee6dda773ca03ef488c5953f64195d9b6332586ac2c20a93160f32d451cf35f1582da45b3182111417256ad50ab3124be748be9b41f157dde027677fa582a0be157983d515a30d893220243f5ffb1b84336aaea1dd3145bd4e68729217c5716d48b7777f4fa41a91d1cc4a2f5ff877ae6640379d183e1ba2977ac67a1290c21fb7166218380cf73935ba7f1d37c47a369bd24dc0ae4fa85e226a67006304581e4d8607b81313ccf216af8319ba2a48981c69e5ea5903b80164ddf9d460a7120644ae0bbf08c57467e4a825f87780de659e7bc18bac798dc7c26248ee9ec8035672a60318e41f4eee3f62", + "06b8254cf10c69b1577a14483d57b08cd6" + }, + { /* i=677 cDividendBits=171 cDivisorBits=160 */ + "07beeb1f98fa7d861864d5d8fad76a852e4000d1c3d1", + "193cab75a21881e456e16943e779f6cc2c14576e", + "4e92", + "0a47f88093f871b29b3841963dc43860aa946315" + }, + { /* i=678 cDividendBits=1402 cDivisorBits=240 */ + "0118237ecedff12d22b5069524864c1f0e5d291819bfdacbaf89d5e3945032c73ed2f6f4f7925776d2af6ce24b02719e6a613ea05bf43f301d0cf95548d04535d82dd4840e1eb304f927265904b3f599ec1d23600812a90f3141d0a2acd6d7dd586bfa0fcda0f3be038e148425187e9337e831580b1c70131d70a885c8ce654b6fe84c80a7f3f659c14b72ef512d9234dd5e4f26f80ac28ef355675d1cc61b311993704fa9d447c11915c4936204daf4", + "906e9873182aaee5d5828d340753342916f28b5dbbc1755b9ad4f0bb1a16", + "01f088dcfef6c8a298b00a6ecc35560a72cdd7140b942d2c61d2e190d01769791ef1d807f20ab9ea48cea5965ffbbd2f27e874adf045daaf501632c9f87616c26e57e7f70b8570c04e9611a68c274421372e2d2dffa3768c277c9beebb6e5f2799633f648847b9dfc01b54fdd10c686a5821be7e6381a40b35b24e5c84bf1712a22823a0dc83d76eb52bc14df5cbb1153ba1", + "31436c62acd9fe1dbdcb6d80ca809211159d01eaae97dcee77588388611e" + }, + { /* i=679 cDividendBits=1408 cDivisorBits=857 */ + "c65b5e694d15644ff6d00b88d25f82f5511ac3920d809a3c63adcf9ba25c9b38c465b793f2081286893c228fc65191e4e46f891b9c7298b9c25b2abc5ab628a27c26aaac917ada646c9bd752315d9fc3c10f035a2b6d466884c266257f0e72bd2912ef9df32c774db51ce1c3abb05146f9689589301d7a0ab3720d9295a3256138ff754cc0ca7e00536b6199bf80cfa5df37e6f8a4282f46b46e371430780ca855daca1d360ebee29e1a27d6c89f0008", + "01fc16614d064e93546b0685b89a002bebb2c33a4ce2b7c4dddf9ccbb277c5d15eb2f80dd9704dc9a90aa174993739d89ce045cefe9e9cfcfbb2203791966921a5a56697980d0435839be4a89812d4df70afa5a8ceea8bdfe34835b6f83f7ac8b0af7c945a30c313b5a9a471", + "63f1333fb704ed706aa7ec9d9598e929a29bd1b6a03fc7ca4ef363a4655c5c8f4cc0a4912f0784aa14805b388482c46d47a7067bbdfe8b9cf4828979e7d717a13d4480a919", + "016f7ea673753717a749dfbfa96365ed5f3f70bb9d8bc446709179d8c28623e3b422f2ea84bbdd7559dbed919f47ed8d59e2ef7134546fa3b32bac29b553c2961bcccd83325daaf2c127b24e44ba30115008c88d0b067faa7b25256378d4041cafa121673174f38fd0ff57ff" + }, + { /* i=680 cDividendBits=553 cDivisorBits=17 */ + "010d6ebc8d4b3b3a5304144fee746d084f51678c233e64e8f3f54a3b4abd1e38173bb89fe6fec6219434153da4c77602d72858949511c246de40d2487d6606ed2438d23c6062", + "01d4a2", + "932ed28e401de56b1fe2891159682e2889b5d3bbc398b0512aa069ffd089fc0be3a9e07e528224c56f1f22f9ca0f65400bef0eef6184af89649521fa792cfd15eaa3f7", + "011214" + }, + { /* i=681 cDividendBits=3228 cDivisorBits=3048 */ + "01a6c175245a881d66739ade08916ee98eeaa478c59627e27fe95b45738d212dc0b4a612268d8c47685038915a1c6afd3dd25140b3a3a7066bf82b80186b440a9ef4544a47d96de5f6d99b74360cadd641cb2982ef3f5116760f4da497d49c62aae6647a1b546a0bec828be7c40d5ca19511d9b2d409c5dc20f4a83690bdbbacb196d398c7bc2afc6bde73ce807d4c0b64ec625e5ec653d22d22dc084d74ddcfb9a7ec4d8fafaa85dad2230caedcb92fe6c465af9082907b669cc0d75689b2a9199f73bd561ce6ee35a43fbafd8592b3da42d12eae2a35bdd16006aa77d072ad6245d875c16a62ccdf06c1ac2a76c7082591be04e03a14661708cc36899dabfbeae096ea2cad0dbdf2459877e16c211f7dfa3f708c58ddf128dbff42c2fe335378e991759adef5ff988c88c6027cb741398b5c48c16e9da2f53755e811784bcca648e4c2ca0ce5953683656a8cd84e1fafceeb0e051df81f1e526f7a2738d4e4d7f9c79fefb069ec235ab53e0d15af31aa0cbae170f92c42ce274117472984928cc44d34f683dc94f5778465722d92534fff1948", + "61466819b199b8f4b947fc518a0b5925ccf8cd8f84186e822b2c0d663290560766589c716530b508362f2162e39a4397104e59a6635bbda45912158ddba3bf9f73444196429d212e424aee70afdbb7f4a75b932f51b789ad9c20ef97bf0ffbf8fe421adec989e1799e52eee9fb7ed34a31cd047b14e8a654e4517cdea2d06784c656e5264cc88e6ef44f411a10ce1d0d253a1f9ea9d9b9f8f2418b1d8fd2e04a9f413364d461037ea52f227ca175c386cbd171837cdd507a5c3382c2a2cfc2b2b75d2272822c513c12b859f1cfd148bbe7716b1469a94e976de467e972d7c7d9175d28091462914467304dec13545b6f3c3da57831b91aa79987150c8ad493e0a4f386e56cb427634aaa17ff0ba90bcd4018d6e3a1c482025476c2938deddd447cb23bf889cb54e77eb201de971f98e3f439ee1440b7c480fc0a06db6cf8bb2deed5bbb4aec4362678d42f2ceb59ef0730367f1f1d0f0e98a111f9fd83ff397de3d09fc16afa0aa747177ff187cfb225c432d0250d3178d255e73681f4", + "045892661dcd33cdf9b80ae4b7fd12a71eb63c011dbdbd", + "46e4fa012428251165afe195b16803f33431b8dacb11d9e87b6cf2b250c996418d9dcc7f6242184f1ebb9d8d92472ab99877dbdeec382b6e6c15ca60dda541a4fdab51dad05d4222f0db9402eca716de5e5a632d87569ef0215e1ea0ac1e13aa175d35a73c524a2bdf2543302d3823b6216f4456ddfefd912c631b4861cd428a42fc94bac3e73bc05c5dc7e7189119cafdf0993efaac3a22a114549786ed910dbe6fd0bde6184ebf082e70fb4b9a51a3d5004c9198d3e092acc35e5a4834e683bab57efa25b29e7a09f4ec2ec109b1ac38880e8394ca195d86a43c67b5da0df68d8dc50ebdff9ac64b4d20f66e7cf1be4790eb4e5a5fca3d1f17f845d3aec729424c808e7be502c582e7539275c44b3c26a6fc5514e6fb77dfe4e70885b8702ee67a04d0bca2a0808f0cfa1829869b95af24502faa5285662fcc6eb879f1c26e1bdb3dabbc7633f2c9945afff9c5de59215e56a55849423c3c7fc1316a56ade38c59f46d90550e0218cb2406da792eeb1503520bcb374c8855b22c0424" + }, + { /* i=682 cDividendBits=2167 cDivisorBits=198 */ + "37b9066646c62e672e3dd6ab7e053b0c3f19af9436c8d000b6c4dc1d77a00d9ccaa2181c2e9c0806443a3d1d5e3ab54c7b9df1a23a6cfc6beac5f949b9fd48289f2d92611ad31fe1933a19abc09c74cbd85ac21a538b65eb80eec417be96b1752acafc7bc008c37e9cf5bfdfb1efdf9c87ef66c7a69a762815d8547258e08b5695bf94e8172eb1be6241526a803ee1853b8d99f02ad4d7b66894db8765d02059b24d887061ef682e4f8da49dff3a03b4e6443cab8b4e36f5cd41df549086c4b0d0b2dc419d3a35bac82cbe6b9f444089aca0f42abe124effec1e9d71a848e14c7f8cd38c8744968fc9973c7d4a882ab8814807ee19a69ddaf3e6f5273fa5f985118ebb99edf28b209a84e197e1e3c4", + "31f37474104ad54be4ed21108aac35a75efeab7209b753fa5c", + "011d9494a91708362dcec155bb813e937040babe5da3d11f19143dda22ef02301e612334774e9176bd7e843bfc74cdc5db1663cfd579c2104147ab1e9c48b2b291da76463bf03414c779fe0d3dee1b97cf188a9eddba960a43eba5e5d3b8e9279f1b292371b223df8de05d4c51ac748fc7fa525b4f9ebaaccf9ce198763aa7cfd3ef5144bd34e5ecfae3321681b3d54b18af01b2de9163f047163220873d7b577000c620f65bebb5ccd78d16f057c5a5492eeedfc605b059ff9baf751ecf99c026aeecd9abf8fee1d52f41e42765c8f269e32bee38c56ea39c125889c75961bf35d33a7e03a66fc156ef679c86cfce623999b0b38767f4", + "190747c75e964a9194a0661d03febeff924b276a44b7984014" + }, + { /* i=683 cDividendBits=2124 cDivisorBits=1919 */ + "0313a1e154598dbd546f8035f2c6c78d6305d135c287349c72bcc052329c8e63e61b4b6b0b83a794c879658cb8e3d4918a8cdc7e0f029c7e5ef93a6b22aaef231cd6c0d2e43bc1e38c17a351f4160d4a240b35e3742087cf00a2bd8d152a788507b9b9e38d2d1f53a80c150b0bb8687072181a377f9b72a123f0ee47afb8329c934aa848cbcad7ff3a8d1d6893ae21ca71b762315048434c339ee0bdb9293600d1909cb5d7a5720bf6fefc6c958235a53c5f2d0b60230fa96cc2d8f310defd51e5df6fc28bc6f32bffd95e4ce6526ba98ce42e0495f0ad130586dfc9e2c7f9fc23e04187ddf5ca42246e9c3dea0f6dc2ab348bdead467119b526d47c0563e7b4397ac0a0b5a6540119dc", + "785841150c9d2966206753cf6f9ef2d365084bb0659c8fff4e5280dced6904b6e5b291d006f2f25ebea146b9a4997b069e999c8b8af7d1a859c025a1f12a8aee7a03a40e7bdaf026fb2459116ae390803974fee8f1d6f1a44962d91eb6768a412ccf2b4f6a8bcd19b29596e06d3ff2044c0b2316b6107ec9b8ac0de511ccc6a182504bb9bfd40f076a7f60c746509e755e96226a8534d8eb069fe39c7a977de43d59b6827f4d95538f3836c48d848d4fcac3bcf3583a42a7fb256e7bf05f9efacfa2cfbdd6717de865e2cd01d0fa7e5b089f1e49a17fc9381a314d7ad41cea73f2dff2a58516b1724c41d3d48312400c", + "068b780d09dcb13eaa08fbfb2a9b9bebfd8b9c0bc9f60714b8ed", + "3b4037071d25a163a860956f959e2f645dd13084e7c66bc8a5a66960489a9ac31c6a97531df5fabbce47faaf63075deb96b20290e8cdfadc8f56cae423b89965cdcdcfe18f8c7fd4e5589cf0da7acb32422e37df6b01d338fb74e422676a1c86ba0729301be059a7b063c10e717bacb750b6473ffc48941732360407383e605295d20d90cc639e6ed3eef596dca7efa466d446d858717b8aa633adc821db018ec707ad1c96b101ef62fe9d2f5cde26f48c3a37e8a33fca8e5f1bfd5371d03e5620d41d29695d39e32afea0217381411c234c3e6f8d4d95b63151c28574eae21c0dd2988891573d7822e826fe89232ec0" + }, + { /* i=684 cDividendBits=317 cDivisorBits=140 */ + "12d33283d39af8fe5c0dd2d0e866b706b01f3239b42a0eb1b46e8a313911f09ab878e829c37eb4e3", + "03cad768dc3c9568a6b4ecbb14c5e0235c9f", + "04f6c4ae37fd35145319d0c03bf29c22ea7ceb4b92c369", + "014b8e089e3c5770b291a4bd6f037dc29aac" + }, + { /* i=685 cDividendBits=720 cDivisorBits=25 */ + "5236a3246f9f04b1b1f0c94e8015bd545771ec76caef8d6ac1b3f02fa34fd9d13881e08343a0457ff7ba0a464ecd53bb0550ea25958e25d31b2576732d8f4407448405257eafd6d51c90692efd5b15035c9cf8c0f951ae3e79ed", + "012d3ed0", + "45dd8cf1ca0831cdcca867f6366b9922b9edddcccec639540adc4c8d45a7b75edd97803c7b23fb855f4f99901c2d6d92c5f227b1175151ce025ed5f2a7836f7e46e27292149939d297e1d2ff7ec29672aa9ce77256643d", + "0d425d" + }, + { /* i=686 cDividendBits=491 cDivisorBits=149 */ + "0424b5454bea891b051197d1c04a84f8bc1dabd4ea56565c038714cee83523328a291344955e72c2a3bd629313cfb4af92466dc772772823e4841e1fe2e6", + "12c4165298c02d649dba6a37d594dc5161c1ef", + "3885e148267cef80856d441a6a451a4ce0b837dde2aa4e46ac576e60447712f1f012b10386d9fae62774db", + "408d1a8347ab08b5b031575682a2ee35af71" + }, + { /* i=687 cDividendBits=2716 cDivisorBits=290 */ + "0520248be09b88a0e8cb1aeb3c74409e5b74181b0dceb6fc2f47ddf17d841e998d5be8590590988ff88abc56a52113a325b0ff87f23fdef3a685964510fde6c581931af44d14eb6fd5c2483972e685ce62d0a0906efabfce7a8c589149be4af5f4bd296af9e233d70cd9b23a84e37c71a062159da2748d2ff81567a2ab5deb10b1f8d9298eed29c2874c7a7113426bf947be649b42d62c41c510f780effef5b941c41850ad3485d69d58178b432803365afdb94e8f3634e64cfc7c8c91dcdc4af01cea74bb425e5f06deb71d7b0e42d0e35b32ddb9c1a0a481770964d8f39e67d4d8d8a9658ee9d724649d3f3a3bd7d96f3eb3366f4447cc62d5c580797c44d87a16351abf93591d9e60dac2f305b0b40fe6dbdd17395c4d977ea8c8835d53ee4354a3cc1f28f5bf770ae657930fba8a05d77d87d8377d51480424daec11e85a4d7ea57b1120977a9c9a1212ee9c2f21f6d2f0cb", + "028264f0372fb4730ba1e810fedfc4305252e1e3cf7ef713a8ecaeaa91341aaed10c9440c8", + "020ae6a0bfc092cfd0f3ae25d9bdde8dbdc0e015fbee5dc873e3afa832e79a0c461fd143959018f7ff74427d6638440176c00da2d64cbfefffc7666e4a1ebec0df46a3d18d5df5978c8c038e82728ba8065756330999778bcbdebc8c37961aa858dded1a5b1ad882c0f307b983d9ab055bc6a8d19f3817d5015ab100a29eb1691182a20ac827e5357e1e57c3ca54dce8aeb71a2dcea5761e1b78cfb8dfad6aa4d9594794163a65438b8a5186862cda78f8cd7ccb46049df3c4cb52f25fe97e28cd2590ce2ad8e19aa8a0c8df0618ab4dd5b2e76fa0ca750757bad34d985310c0c74f5b27d2a7735916e6f5a306974854ddeb444719e9ec01ed69a92f31aae6834961bc9a2b9a544c722c92a10359e96bdb12102f09c8bf2f98a4a851397b43e86ae39064b82323c461951c9266da95fe", + "017dfc54880360f0986970f251263fc9e7795871189a368568ea2151beab50754657b6425b" + }, + { /* i=688 cDividendBits=2831 cDivisorBits=2530 */ + "3934a70d8ab818cb4c981fc3ea3d8fec444055150bceb40bc7d8fb1bade0695949f2b1f8a143f1d5fdd0485a624e09ebfc4409d633e7b76e964993f8c66e23c4a5649895204e9865b7a392a76ca6c9bc6110ea1e4f22dbbd0ff82bbbba49886d7100a031cb51b5ca3b24b3f939669c39acdf27f974eb1580173df87a97f1966b805c40909840e1a9bc2f5cd11ed2424b54f44d32a4cd60711b371570d835dedbfceb16249a5dae184d90f36c31ae331b304d2b0135bf6d31901c04f89ced1f1e64ca349a8493cc4898dcd3dd99c33cdef3f89da6a53620b7a41c3d48fa3e3c9cf601f0205354455f0a228e8fe743bbd288e21e2d033d24b4235c4e5b44d3db2478c72e14d51f8d4d8997c656bf1e202ac5fbbb30d2c7540c49dd38dff37ff27ff43fe59f85ae59444a8933d4a9042ac9ed7ec7a482d50584d8b50e253d55236b4520b113a68736452f61faad427b8c1af00c8d06bc3d8243d8d02a240c72cd006bf6", + "02db0e34d43da1afb444191e979da5069503a273702340513fa67ff4b79def1bd14b8cd7ed7881ff8a152495ca67c0384ec1430fc2896a30b15068affd37470455ce8c9d00d6a9f3f449394ad3310741c117a06aaa6844c4cc14a32b8810ea43b86aba648d5e60fa4973e735d28719859eb74dd7e39db21bade24aa9d901ba19bf8065f2a8d11a42cb26f93c2a42c2d6710052572898b12384d7e1fca9dcbc7a4f8c18502a157a8a3a69cabae0e7821fce0df7fbb4a0ce55cac14df327392ed28e76792ce701f3ebb2136472c1a72d21d27618542ecf82887633cb21b36c830a6fa9d6f3c61454ec78d78aa0209c92350f5f0303d6eed9d98e85affd744c5ced0bafbdfcc54596f74cfc4eae1561c833ad5356b5fa2e4890ac5673811e2e3c0494cae3c3740f701ac3403981fab7a9610f84eb15a5c190fa852c2b142d", + "14083e801e98b2b5f6f4910711787c02964c005e7cd3e496f518765d970c50ed8866658d7192", + "01fd6d401d654006ed3a23d1eb0041564e95fb52e566f0861e4215908d67225ddca14e4522a5df2935ce8efbdba16ea349d250f186c193ec1cb34fba1119a31430e4dd9887a0933ad42232c5cc3e5b50bf60e43f286cc56a3ef380921a889c8ac08fc72b4d59eb1989c578c25101c79b080e83ba5de845d11d36e4147c550117335bf75e4209bb4277e26fa5bcfedab0251cd5f87a219b17274ee61b8aadb318d757372176d2db656a6c3643f6c79275d966321bdfdd6da64ab6416e252dd084819d66accc15be3d4e56bae5c1edda4f728c6c5985c4d9fa844864c789b9a03a13dd689aa6a9294dcd7c7cd7dd2fadc11289baafac2953b1d9195da50b86954063aa3eee737c680c90c7592b99060e53aba072d1224b9062fe5e1c98320ec512b471e3b1075982b08507af2f1185783ada60c31e54078f1f62babe0d4c" + }, + { /* i=689 cDividendBits=76 cDivisorBits=43 */ + "075ac7469b6927b603eb", + "03f0797ba486", + "01ddf0e1c1", + "02dffa4534e5" + }, + { /* i=690 cDividendBits=2202 cDivisorBits=890 */ + "01f80edd7055a72c8912f635ba3c88837a6f85bb1a617b634f3acbad8976c6f821c1cf85d3ac0e1afc5ce338cb57b365ca28838c1bcfa8736b3dba3bc1d6a97c5f550ba2c0f65dbba39a3d593d29c0c84bf8c82e29bb6ff560a0455746972f922b7c4d514191810f2b9775eba28cfd67c086ec768f6e8375803c6895fb0d7bc1e7753dff3f52cc53bce6d95b1efdcea2c339d34b6b33eaaf918bc0ad24a9fa152e0e933692fd17115aab5707b3f9b90854e1e25bf24efd0d976a0f6a32d41f01549251b759125aa8b286c9cb75d864adf6d5467471aa04d19b6b4a44ecd8c9850a87da83cef120f3743beba16a2900ea152b0b77238732781312bbc9b47f74141a8d61995676e593ab7637f3f53f788f10bdd939", + "03e16cd654421996e4f7c7ddc08dfd866b9f64d638c261c2939b1e5e63b0fa24fa713a840c4481fea7abdea12b78c430360e9962f746cfd2dfde246676d1413cea036876723e26ac6b0646f7d1b19854b25cc8626f918b1d35c4ae5d4442782f31893caefe498361415271109f46098d", + "81e4948fcf990fff1d1636a78b336429dd9acbd471391d699b00ab47f1ecdafbfe4b47e3543a2fcc01a6c41596f4198c46ac561b044f2b6793d659aebb38706e72259d9d8178ed842092b08fbf74788fabd3afe6de04eb50154d414a5ad7307e616266b9101087d6a692364b5adb0d2795685311b9622bc533a152ac89a68dfd36827ba4c6637f3e975e650b334be3198dea7d887970b5b40fc3f2c180fadc88a3905bb1", + "03b719ecfea3d410c96f274673a79ce1a871156383401561fff3c1821de6c4ad885a5982acee5bc9e68b248395cc661df80e7430ad01075cb5c46b124c2dffc73bd26ddd1be137034f3daef980d1c2183c60bf0c6985cb7f059676aee5f406b2f25ab833cc922cf2ad2ef510e59c1fbc" + }, + { /* i=691 cDividendBits=2803 cDivisorBits=2053 */ + "0759e8a4fd0f3223d1e1a60490ef5d41d2fa87807e1fd30fd1de629fe6218a92b84406a327782dabec00bd65b56286f57ccf903b76594116a51e6d8f76a5e2b85c341378374cc786c64ca3a6051c8f97fa867b256baed2f5633c9b3ac2f20824c30c982037de0bc681c61ec5c87f012fed344c8683a50e54b227afded4a65d5ab53af7eac8af6198634758d06c42fd969b37197683155daab2808f99e70c87088009198e3d13313a4bb515860d757355e40608d23c04484f963260890eea3f6f3b0de1be7744648bb3217ff3e5930f694025d6b916a851f8d05355b981e20bd9c2c771fd0ca34248ce196f04754980612c0b87b421e2f22b91c406cd0b3a584c8e731b148ea62d6b09955d08a027339ee56823f2b0908ce1a95315f5805d03a4bbb90b7755e28dd4cdba497efdbecfbf4304fb4068e88177890d3500d37cf7a77ea81d4a009e238cacf0ae5919a9b651527f1a13150bb70e5ab543ab0573b1", + "0893bbd91b07396facdc21bbd3334d1cf3249815857df220a5d0619dcc9186cfe32c7290b27fbd254798a9b05d80083faedc7aa5acf6badf0e06dbc2bf0f1b3b4c594e0f8a061034ee9cc51de0a40eec36318032f06e145b72beb33c5ceb978a2362f699adb1baabe5a184fd915ea3d9b99521edb5b76da1ffd3c56a667a8ca622e6bc6be7cfeb47f86705dd0f387550422d76e9eecf6bfe843cc914561316226a520225f19c99bd628848b7620a81b355779e5e575138e10947918ad8fbdbd1a7fcee95920bd258996313a6980bc7e394a8e5bc76809544a7d3f2f65f37148cb37e9d8e35e34f85344e6ef11449c05a690f279ef60c749dcc0d2446c46ed79098", + "db6946364687a6adfc29e65c5accba673e5369fb33fdbc7a3a0ccf569d1b4da0d49688588dae18dd535566cb7cceec34e726517f72fa2f3d3a89425cc37772a3e88451d2e8f375eab3bb85690aa053eb2994720171fba70f94fc308ec302", + "0120fd2acad4975a7f5b99033789907f51f753a080cd3cb397218a33e3dc42d0cb131b684044bb7159eb7d2b1b9d6a5c2f4c44c2db62c7a307b10c76972a7750ef3b51f6a357011ba81fce830e352bb3d6bfbf4e9fa2d119c6e8e9f34f45809ccd33182a9bd33525cb4e2d0d6c1b1a0f0b333f415b57720bcd77c12067c6a2fb19ea3b515ce13eeabbd4dbe0dfa632d31fc8a9282f9cd7b92521ee2d3194d34c548efd8bf76b4e60b34ac5696e14e2f044328d16b581c70bb4e5bf26099b0ab5f725130c0f1e73e58f5333a0541c64dc19f579dd6b727172f60c003199dc5f2de5a99d3aa49c479a35cd8db90c8f3f41ca6851df0a151d1649dfba6afde5e28a81" + }, + { /* i=692 cDividendBits=903 cDivisorBits=265 */ + "1b78b994c9782bcb4febdfed69ca5da458f5fbbd7731870c0fc57b497ce69f260207f86489925d0efc2944fbca4c53652e5db3220dbe1df759ea810e0d6c8fd8fb51dac0db218b92d01e7ec6def9afe85c0d8247a7482718ccb199af9b6e41925a84ca48e54a8bbd3c8a744b90c3c98ad9", + "6819e7ddada0e99ec3b12966f93174b85b0cd4887b76923a4cbf161e9e7ea05f21", + "438e7eb6f9ab289872d1ff2b677acee1a289e9977e92cb34667404833e86e4e2ab044b4db52c13ae82386ff6f2d1b5e23655349f579078e335cc2fe4b55d5725a4e616f8ac354423fe47196b156bee49", + "10a8138a647708cf51183465106198f43b0e0bfae95109cbf4f993260517d2bc70" + }, + { /* i=693 cDividendBits=3083 cDivisorBits=1811 */ + "03f7e0f241ca2c91662ec6f990b85a5dbb0d0329446629ee393bd9a6a571155e8ff5eadedc14a109265f8cd549190f999f860eaf3c71b7ca4c1a8c0e16d709ed03c28ed576e8270e47074bd39619f898a13b563ec0e19e0c69a0c3f2cf3875a70fcfffded65dc4066cc6d4ab4082ae9f810e2d284422fe2b731bca7ff9df40e73cae4af69f47582916f93c33b04a6b3202b422647b34390c9b22bdc48eb16129c874ba795c2e33dca9eebd497cc75221d4d6b5f3f909969f1102400e12552c25b0da3a6f259d28f46cf26e0c03829ab1f68aaf6fe33bd0614fed619536677b1a1cf3eccd6e91e34c731eb1acd7350a40f77ee59873db40c4afeffa83deff046acb52b89ac6d48e3b6eb2d94db6fd2d59d7a1f5ee5947d098f41780bef07de3684f584bf6312a2c9c1de8137f136cbc1408050f7a6e6dec1e6335554bea3a206119dd048aee803a8a6f8d97825ab6cc013d63fe39c90df32b0d4481a562b69b4f36eec656b89ee7d11926a4fe6e9c105cc35f12f7a69f65263e3749b4d6883e02283a", + "072cf9da9f15fe16e73d248a9de92bca41fe121c17439ae1fb98b6ddddae1ef91a078b51c18109dc3f04005edec55cbfc1228cd199eb1a426555e0615dd863504cc1fa71008efc8759826954e2267f2c3e18984a64020fb33ee26a8c3ab6dc704d080affd490d79f14bfb82a7716b06a9fa019a3bd5cc10a4fd7a0f1686f5c82d413e68899baa84acd8577cba49fb47b8d80c9aadb8ee6f8f3d026a013ddc6f4563ee828c040b229e9dcaab39ed4afc103aba499023750f64e629182f7cbc47f0ad1b0c02217de0421b2bf9f522beaf0e02e5d62b16100109b821ddb5c3b27c9279578", + "8d92835349165f7e39022cd38ec8a97de245f16bf1b0ca17b15c5a4d6941c50a0d864c9e155649d0ecea5e2b07cdcbc474fbaabaa122d0338b6a463c05cfd76c3f9666ba25a645cf059dd8dedf93a4bc7b4e423bcdcf23ed3212bfa1ef33981e9dbea7121bef0676024cc5cd34f7801e9a59fbc355e6518e9ddfd452b15a4e58139772904d4dc29ea60c322d8aee5e3c3e4967174720186ad16a8aee7160de", + "86ffd3527a9de6f2fa6a15b67f8856c60ec5a5d5ee4a8dcf841c74b06250b120de476de4e1fd306222ec02443502960b13ee62355cb20213c7b82e5629407efb4adb3f0fbdc72243eda0f9c48e24951079b4c8c66c9084dfda9a3dc1464ed1d73ca5abb4fd84d2876e6128052080c1f51d38b54a7d88f56294254d88ac893e8274ca6d3dd6a031a534515d10e4589c029b1925025e32c716727f27d272e5d7fe8d0efe716d08d34c8d01e4fd2999f26f31452d760641af9838d7032dc5a689ef33f2543fc765ffd097887fac9cf6a81c28fe8aa29a733cb9a629d5c5c47a6ba98a2a" + }, + { /* i=694 cDividendBits=2932 cDivisorBits=1863 */ + "0bb08d961bb6e16e768320af75dccd71cc6160945285b352ea1a7ec011971d7baa28e08ab5af22933c7b98573283a1d7c66fc8a9d8c6938e6b3d56ec83d0023ebb49fcd2b1d4ee4cb340fe7e633b1295d211f1d45f2533d886215b9727e29852f83a14d5a90ae814d4d263e59bfc612f71deb11f31d2c80470862f441a83e293adf9ac92751a4430033278f0ce5f5a4c0d217161aef5c546232c8299c93936ad131f669bbe4a75ce181621ff344983e2ad889acd2f2c1262c9d7f1f034dc201030e07d6f37e1ee22c1548c4e140fa56a0751aaaf2436817e6c37913e7a43ee444ea9c1ab64c36864604660d64e8c82e877a827e19c1b327d4238ae965b0306484c90ad90bbc9e0c76b59e264cda93b8ce370856862d6728c4555fd3c7aa3b12d4dd3b6b910fb5b3f13222d6be9d5536014fdfe83156bb8bd1d8c71d11ff31dcd1ca9628a77f4a228410a36abb8bc7469f668a9207f7cb305ed6c4a8a96af0da1328e8326002e3485e461a19f0d26ef", + "6dff0a9765abf4ccc7fbff85a2ea15b69a718b439632af33dc11c10bf26f68374dde4ce5ffb95270658fb405eb5e3c3754a1939a9f61ae65959e1753f9ffae46d25e1d8bdab1e59f659a4ea8c6ad6d6e8c22a4531712d5ebc363eb334c9eec318615654da4a6b8b3a1238459aaaff6dae00a8bfc6c1c6d5c832b0b373c54e5f1679c5d34d868bbe6b2e96e2905afc46a8bf6070390f982d3e1bd52055cb8ca50a060e3b041358bed8df1ca06ca91052b4bee10f39bf9006769d1e19998ae18a3517cb4c95a35067c7f0db0b6f0aa3d97a2024138cdc4ac8b6dc70cd3219f6c8a0039728eedc1b2977d", + "1b34b967fd9ccb713a3a467ce4b6fabeccff1a0f73f8b18f0c9ebe0a1b0423892404a38f7d3232f29ffc9402530adf5032a0a484f6bc1e79d2feea74000cfea77afbae487e6d97ad8fefd71afcd9265ab89a94f7b0843f7750ef3a617a58faa6c814472562a53f4d1965cf3cf738ecbb0f8a4e7a4c03d1657a16e04e5c24bb27cb1cc0da966e", + "2d3b044e259d051444a328755dffb6e860639f4268f51db4ec7e4ae1848157bd2f53342d6b42aa2358833120442df91c4c5d6a5cbfae7b80a29787fbd07f57500959d134db63528f5f56dc8e50aa4bf12bf56d245dec9688bda673468917e240a01a96506fab896adcc509ddcbfe03816b053653bdde6810db2c1496c390da9ed653e7a91f2f7bb2c6433db6edefbcbc69a3313aed58077f43695843fcc29a1d41ac6a4895a2caf64bf355d43d432f3ae190deae77f5ec962f8732a9a7635a77f98fbd09bdd41c063b9524867cb478c3e2f6461f0aefdb138f7a37d988d7018ea77e7b139aff1ad139" + }, + { /* i=695 cDividendBits=1639 cDivisorBits=478 */ + "68c39df5d11a1f5a98acdcff0c170c362b72b9187b8a7c21612a08c348f1d3a8febaacdc2e2fbac259bc92a04f9195c423d05cc50eb8f89ace115f8661d575681a894622db120d92a2d3dfbc9a3903eeeed90c8c0924c6b084b07ddb3ce0843e1dfa6788ca529434d5b2a22cce5ddc4ca22b789238d2915e53c13e485981bcb75111000e8d13d54ac3d1374d22691ec0f4b9d89b53f478acf93f1de078304efb89124333bd9686375e2322e98dc149640801566a1fe0b54e880d5cc8e7069a0286104bb33f0043c6cdd42e31de", + "0eb8ac16c771ebb779a148b2c969c24678d759b23bdf22b074baa85022dae3ff70cd81f780ae66a77aec8d2d234ab9307400f7408fd89943f67d9436", + "071dd087951cb3ff7a620909ee4b7d869782cc32800c93d3a1a358bdd934eb32829a70227493de24bfe4395088caf5361eac7cd7c715ec509fcdd842bb4df0465625815ba172a140306a9d657a23b82fca89022e9e6f4793c4e3b2a111742844394cbc017239e36ff67b7bb384cebf205678b711fade6d6facf008960391f53ed827ff0b3f0fd99c6652ef7445e7bbb6a132", + "0c1f763f357d6d1ffe6f1c11899216fe67d4f371a62d5bf98b78dd17eed5800b22fef3538a99d6fac3b0d06ff4577d3eb3c6c8e53d77d63de50d4952" + }, + { /* i=696 cDividendBits=3441 cDivisorBits=2229 */ + "01c5980ff0aa98e69358a6e423dfee81b5676f641e9388ae81867178f2f5be0940b26e2792349663aeae72e4cec06d1fd72c77f78716fb3e03ba154c16c067211f553d6352a1adeeb1abfa5ac675059db06c37e3a8006c6e70ce844fa60fab195099acd6ea3b10d76d62af9dce6e2c03d6d28de753401367bb96302d74b5255fe35590c953d97228b0318c7c470b4f54ced3fa89e8b54a0bd5c87f377db25bf0625a5cf92aa6cd56a5e9577d884c42aa2634eb34240d750a4b65fb4bcfee2b0356f520a14ab52e38534336e540e69fe4ecf2ed63b527f80ea92231d23e887045bf076f18bcc6a75a7ee55213649a7d1d12a097e7d64cf5d6603d2db691f3f2f5a6abddce4f10814771f97e9809dbd387046cf5e627690ca8c917556dd4756f7747630df4d38e2aa9d42c1f5a5aeab2529522737d94e12404bf8511409c7100a32dccedc4394bc8b7cd2b2ae7d95f79d33e713b33e563487dbfecd1d5fb246c97642d46fa2eefa83a76700501bd106326df7dff4d58748a1a230ccc189080d37c4b10085dd4617da5b38cec1b557769081ab7948d292885e73a3368d825e6d4517324b6b175a3e697908a995732dce0", + "0900b72cbaf7547d7d20832a35a760e5fa377458428b423e56fe1721fcd56cb471e047063162399bc9c1532f9090f055e5adc5cefa782dd64ebb016185dd42707df182a1fd377f88a8d175972e0c4cb6de50301ec49a7d5c8f32d5edf7944f82468c2d868a74335c9b4c779e19ad2d40b79988eda48c3dcc56c2b997d5abf40f4c50561c1a7932f4579daef8f4cf2a03fc2c916d7256c7e1415a11a64dc174e4cbeec8756c9c5da5b341c4e8abf499b657c16851346ae83a89a7e5e7aef9825a476f1f83ab53fc5e506ded47245b962528a0db8c35a972c62f43cb1e10fc8edf97580edf2e0a8c022dce47b01069337c295ad272fa04c522565f225f66f130b7e546496528ffcb4510577e7f55f352b475bd4dd2f39849", + "32623936ad2e86be743ef7f241c54a8b97d5895f2106ad92bcb44d5218bafe8ee1f6e97e6e9a306ef6050ac92318aeda367e560fdb9915c4d37ce00d22431168344efc813b017f6f7b6b1ca55b05e7541a18e7211d7b944f1f87d51e57dde8a34cd0153904164126addb26c9c6b9e939844464c5a2bae4648a4400fed282ea9187b406fa189c188cf576a52fd8e405ae9d8b0260738fcc4e", + "0561ff4f3e1159cfe12a0a6c70d3ad9aedbea9f8873dc7a6f0b7a9e3ca5a7b30677ab8e626ffeefc35dac348e392b5aa561cae4d435da4d95f24a27b3fbde7f6a38e910af7bde9c33f2272771d889e1b6a37db24397c8deda7443bae7dac07beb070d3f3dae6279408aed973ae6443bf71eba48f1efb9012576f2fd033844503894cb06f241a2d9ef59f1f723cac93b5614f576489033a6a95e8a3e79bd2e81220dc86d62f7ee3c4423622b0dbf043a3540eb917cb34bca7d5b75f5a295d0e0cd6b98d980cca4cc6781386f8d5cf6b2dff8088a59552521990d024a6fe42b8a313f78b18db957d19c42a0475b4969b822f8f4aa93bba80da98e0c334dd2bdb7658ffbab933f29448a04012dd4a70fb9d6de7ee17d94aa2" + }, + { /* i=697 cDividendBits=3155 cDivisorBits=1742 */ + "0595ee5e9577b11b4b3e85042fc9b0e1ffa52de07fe652394e2271d87bcc87cba9ba050d764b47ea10aede378ab405825f79e78c0273861ed55550cc347e6c2ee927ac344fd8419b80ed5dfb1e7572016320e8a209f87a1a196c9edde85dac8fa13c82e9cccb57616d0e99dfec2dbd347d79eec799c048720b1b66892eeec9fd33d7a618cc16ec0385fa5c4589b652ec1d5e1fdcadf50577cd8238eddead92e68894e42cf6980daa9683c3c15dfefb77a9a4e8553e1eaf47e0343d6008dd20619f4a1e88adc71c58a43697c655bbae367db86c6f91156c5771b5d2458cb8c5dfe6794ddeb340eaae34f14e02ca37b2afa7b35afe023856defe10ba996f060e222c04f95bd0b7f0958a8b85d7c04d38fb3e575c83fc8d5f196b6ac0fdf31d2dcce6daf5bd67a0a905c54896d41e478eaad83b5491bbd6f07f4255bedbe8e69c3067e971223733d9d0bc8768d7ddffcd83be5e19ec8b7c13e780130f41b61f44c8d37038d5089313497eeaab8ed10bc30322cce3311e10088d9e3916a93ba984663a8f0e86602bc2e16dcd8f", + "3ee37f7da3da67aa9c9e2871ac9888c2b5d39dacf6787096e6334eda5407bcc38bb32d66d8992ad2d2aa44a538f09ca84e30864dcc99f3a27fee44861ea56aff4beef17072606dfc5c63abd68b86d7bcb07310e457833dd62dec7296c5c694229046066d846ddaab079a44efc0fc5613ecf0525f07510db125a78b38b374987c797eba00e795d71084c4722293b6ee47e8a14267076f0a5de5158d85b14e42d74446389e37d985cd067d0384a28617268814c4fc84b52a0aab5ceeafafd2c8715e1681662f8be60686fc15fe10eccd187b56d3f7e304e03a388e", + "16bcccefa772268645c3850aca84797b5b5aab32421249b54a9075f18709aacebb19b33925f744ef954b08b0c3cd8d26005bc65d056ce077292e9ee478287548e5233c9cc4dbffe65efc11a92d0a42082dde9504159a56b6c79d54019a56924a03ef69db29b112f9d9bada089280107d0b0fb8169e2374465e66b1e8f85fb16a565961bb61ab8871f40efd99eeeeb1cd93de0c2d3476d313c2a15fbf710c66234828c6f3c2e5025c2aa51cb56e3eabca25", + "12cefeb5b18599c9c1873372e01482d8b779cf454576afae35ef7e05b412312e4ba45d07df6ef2d8489ce293461c04f3d2a5e192243ec2a943ddc602fb66d41de70132f41fafe7f926b37060994caf9ea3777121e2f2484b23969378de66ca1af05f396385623cfb6ad34e66a5ce243ad8728e7667b21b20ca11289de1b8e139d595ed8c66e1a53c0d1aa1e6166eed1950862b02db8f2783d5cda00add770b3adcc69a08d1ca2c0c253d9246545d6bb6e4612010ef39328bc6463076558422c59c8821e6bddbcec252c959f79e9687f83df13f51ef865d899509" + }, + { /* i=698 cDividendBits=2880 cDivisorBits=2548 */ + "458fdbfeb5ca85794ee25533f58159991a138db9e0049cc8087aad33c6e589ed47c90a1944063f82cbcecb60de6edac283547dde751125574ac5c4c2f288d882799bbbe8b8732efcbac6cb59799505772eee26dd45f81d0097fae3b505c7f78b7ca456ae5bb6c4f28b23d8030e499c9c214580a1b86b39d8a91ba31fdda0f7927158bb1ae1335145b7566403d3e2ab40a697566f9728c1017deea08a654145af5c26d5238d738ca8ec6bda5bf2dbd469209e542076acbc2eff0c18a9ec4e0dda5ad754ca0627194c340cbfe3a6ab765b02f1e6776f92a721041fd717811bd9cc1ba4c4b4150ab8deb5264f87bbcf8104afc8d819c19f849ad82adcd5ec861572b5b3b2cf799e06b9b2d7ab4055b44e31f9c6a9006b2190ab7f6c842e6a47e7fe082565274fd68db5fefe58bd71df8a9f1b854e7cbfc39dc1e7bfe61a7fe75ee81e22c1915f9c56d80a7bbdca449d6dc033f2e3bff1d4aaa4f63bb01e53aec97a4752008d9a79bcb6", + "07e8599483182155e1e2e5c44d060dea35bdd64f69012f0d37d45d784cda85284fdc2f25647e13425771478a57687935045696058ad225a0da39801683fc8142efa771d56c599cdade85294626948f3b04cf1595fa94d19579d1f30717974714c8bc0accb3971287f363b1005b0ce341262dbfbcdc1eb167354ee5bd08bf3240a4d8418358d7d6892fc9d9eb4a4b4b57ff9af9163cfecd7eb6796e7cb56c565bdbd0f4d45ae9ed06f5e0ef878447555544cf5c604d0305fc2305bcb8dc3df2cb15c416e1f72fbecdc6e771005d8b3c6f422f9912fb2cdb08915f2dc413ba6e1e9adb4e19d5e95390368091bbafabd911363d534d481b4c13da279ebb8a9da8ef7527d05615fa1d173232e250f62c9f41cdf9d1d6f81fb1be73e8aed35b8d947342dccf120a637ad4955e613f2c51a0a0ed87df9768ed235ec209a2c54309e6", + "08cbfcf60cbfa2fc7aaa965be24bf13a8d2c2ae58707bd5427e8952b32fc12d0ffdb656980effe5e8bd8", + "0477c0ce032c6aee9c2778dec3cdbd3896b4a1e7f7b7727d807656ca63ecd6ad34b85637b6d53d8e37ae0c88367e2116f8f8be5c569169a552643f18b5c0cfdcc5b79005f445dd23250571bd354d6662b8fe7be6d237b64769eb97aa9e975aa65f02f1ba4e95a61ea7397eccc9ff11da46459afad3ca43e62322c9c3e36c6c7ae64000c08feac8542d14f56a25108cb0b1d018a9d6de6f45c05924c535a773c4dd2e128b952a3ef42dcf13e3e663a313dde29eb849b1aa74a1afa87823e298652917c619c69f7f0b5464e55333bdf828da4c40e36808723ebb2c00a93658ba79ce27dd1799ac089ed75c0d8beadd068a0be0199aaf846aa6494772107fcf14f5dee75a8bb91e7a77e4acb20c02cf1d34fad30e1d2f195c291dd66d6d08141c867f7718400e9efe270430f9832e7f780406695809bedf9f73024df1ed1580a6" + }, + { /* i=699 cDividendBits=1108 cDivisorBits=702 */ + "0765896081368bb6091e1edb040b63899064278068b10de94b3dcd5dd742dab909b78d7532bfabd1eec25a6288dd5872c7de8f453c2e0d4ca7825ba3ce56299a5476d50c0d9425275f67b62553ab8f65043827b9a55e57fb4b67a7ac8546fa929fbb63193c944f16e6440f34805ee72324f1bd2f89596689470e7e29b2295e3f434cf34ae9eccd2836738b", + "1d09b80ede1f10b52f42b3dd7f2b14bf6211c0914e92467cea250a3ec761cee3896a6769e5b50dc7bce0f2edda1b5b927c90e52e228cea27caebd201e9bcbe140dc1e15ad6eb9012ffe986e1e0390ac744a775458fbdd40e", + "413580fd96c79da5819cc45858199fbfb7e11788529a299f2f8d0f34cabb3296e1e02d1449383867a3678973e5c83c04ca63a1", + "19cb12f8bfc5685da19948e6a2fd6269433cc5e2c4fb8979c49f7ae07aea92e6ee1e355362b153ebf7d797877c7b841ebdd0c5e532ee632ea1b25691dc3765bf53f6b70f4b99ff555f393a4c886ddef3c36e3f15cdc6acbd" + }, + { /* i=700 cDividendBits=2214 cDivisorBits=1080 */ + "397a8e05152d295c15908e8504882b911393ca1f114cae7812a32636224cb182ba232cfbfbcc73cd905c721f1b854951901159abedcdf2f4e381d8858cda7865ea8a56384e6626944664fb1461ba8c24d2ca9a728153dc288d9236dbe43a44e132cd35b3ea734c112294dd85d3c3e069579e79d566e73a3d144709dfaa0cc7363a53fd75393186665a3b572de474694e6f000d75e764332073a1ed28d3646bc6884df00e05fe8cc39a0381e7bafa54f2dc30a331834341608f1185cbae63d96ac182924ebb8f4ade0a191c666e555cb7898ad8c376dbf6fb8e1fe3f994409cdbcb16b804efc683b0f479a93029f6011a8cd9782a47370060e5c5575e8c42856bba6012b529f53572849b5737ba493ce2419fea4e9e", + "785da7389b12d327958edbc737a990ffa54f5bddce39ca4d145133aae4c66d65a9adfbed3143a34d24d034eb6f61c98fa820062b4eaf9181eec4c7d85970cee247f7ea436521a8c09cea74a60a35a5844e17878ad3e174411234bf29b726ea74cd904d2cb2f0809a2407c98d856acb3ba7a041f47f879b7f9e12d1bb9d5f80ba58e67dfdd1c463", + "7a3fa45d7de64f8a6bfdcd748478349da00d33e3773ee0f4b404e5b2e4e6c26d4253d38243be852e25fd74c753085c175461c4f101cab275295178d05ac23064e8c6f903576124b7f2bc727cb5ba3855a54782b0c2dc838d624904deab79ab01521c916b25e08ba3e92d4f5291a8e5a3fa2f43ab8f5b6a4113cde5ba6c8667a71ce702f886cc1b664fd3bf5badbe", + "47459a620204905967e2a7eccbc8f38f71f0e73eda6a4afa6a0068d754993ee2c3db27014841b37022cc5e5b888a284472a562989599572e29ba3b332518ef627eb01edfc5b5b05257781f9a6697f994026d6cbcb350214d13041e66751eb723b50db385fd7ff1bf7ffcf7dbcfb0326ca8c154fef7169332a46433c8fa595558648688d052a624" + }, + { /* i=701 cDividendBits=742 cDivisorBits=205 */ + "129d14e856616ea45cdb39fc6647e69c1c75967ccb9d578bacec59ab1b3f18fc6f61c6d474e09caa484bb123556a7a8007f8fdfc0f201e180e8d122609dc453ba40f44ada859ae648b6c753c22a35dd570a000a13143dc76b0fb37a71f", + "18193325e36b6f4d1785d87a220fe8ddfa612650077d31161cc9", + "c5bbeb31c902f5d7dc4a0e4a22444d790e38589f4c153fa79fc292b84c8d50dfd3c4470853c029b8ded7b7b407032b6866e28b15e21dac879694ea1169d074aede14a3", + "0daa9f5b32fcb2df555dcf2ceaf9923bc588ab8af6536b959f24" + }, + { /* i=702 cDividendBits=792 cDivisorBits=138 */ + "17c2a371b8387b93ae72cecee55e2ffcc6aac57b3826a2e550da0ca60882b39cb561ceec2534428eff0efe60cb11195a389a7b7c9f3e081618d165a500b70ab934640e3cdef12eaa2f28c049daa02d0c30dd27a42f7d04ad20e0e54baef38b7d2d18f6", + "0309b0eec1393b45c39e0964659008fd26f8", + "07d247aff342383cdb381496acb8b37d057c2a2493db5c77d8d81998622f5da57a36e4485ee79d969c44186abbb1e7e95119d2ab8543bf01a1b61f21b421cf46df7feace6c7b891f85628aa26332bfb88aa3", + "e5de37f247d8990685bb53c98642bb990e" + }, + { /* i=703 cDividendBits=3186 cDivisorBits=2643 */ + "ea10bdc2d2af99178bb98323becb832b33588e05ee81aa380e68d825d64921c4ecc7badcc435d23c7d3fbc43d321424a761a9c9b27c9d1a406df936c8687e96d2b5eac03aa52e2e859051d28a9a6f684d119573ab802ac12b3702fc66ae83b6260dcd7f3b928c5d496c87217c7d77f16e5dbf2bbb2f5824d4bf66c66f38c9b548872d8d39fdcd7f60f28bf4ed36ee898dc59cf18960c03495e58823da8850a8ac8228c75b71372ad6b1df34469f4d46e32797c9712e660ce569db5a4b0cfbaf689a48f0435428d640d3780a1bf8767ce5b3b0525780f736cc3fc97f4a2223cdf27b276fd93b2fca363d59cb049379bfc39637a26b443d618aa3a58d807d4dd3f84f67d4dd779a8ad99ec954009d2cb3e5e11c16171ec08248a91fb7335d3742e60c5a402f2fd0fd41ed75eaef569b7288c20e2b6f5485d41a9b8898f4b557fcd47576bff0a62adf92e655e880469ff5b289822dc811c6b715f9bb5ae88052ba2ef9ba77899ce4486827f4519894d714fb93b74fca403a8190c0d0e5c1fc0bba599bc0ce446a9e4d4b46b3d0604ff", + "05ba7d54de7a7f64e4a02acb96b177cd579d97b06150f14db90aa0644fbe11fb400186a111e6a453f30fa9f0267c744e475d64202f46c3182fd80a162a80ad00fc26c999d81f057398d34a3c54d4c97b12a36d1ce291aa10018b7763bd64228b9d58b7b6f29884c7117fdf81a86f90a08ada4b87b924c735152d98b2975a64b42db30799325c0ec4864804b64f2689c78d07825155885a1f3dd21b1278144593f842f660a8702aac23faa9cfaa359ff6ff8d5775086272e3e17c597728bb7f84a3b255d3ef3de5a6a57df45b45c729740c233dec03c489bbc73d598c9c8e36aaa6ef5c37ba67b7f8e079a4c2d99c651472ab960bb0b7af7b6fb7e6e90c4d8766108a63aae1624d79ee04f4c4b219ef1ff0e0fcbc363d334372d65a72ea5043d2463b5b9e9f46bcb303edd83a610242a54cbc4ef30d458bcab72bd88077ae56bce8d2130ad186f16e306d83", + "28dc27f08ef4fe88334241b85b62bd2a46e2a2ff6e4ea9bb865e621e318cce0e3ea988b1608b40018a2f101595c9a5c2bcbbba6e7e8c0552a1846d96bb659c4339a22eb3", + "055399c3934bb8d47b76963319e68d17e9b85ac8dc3f14e49be1d882d534953dc0ac67797aab340781e00286ee7b4171bfcb095e1c96610517a4409b749869b8326e8528461e1c6185e3560c49f4a2f4dd145f46c88649bf231ae489a13de6bea8cb30028f399a5eb5bafec38774a217b9dd64c413ec2bae03cbec11e23a71f7ce2f36c84d0117c48d3fb7bca484b009b5d46f8b1d42fb6abe1f22f16da031fd72d222cdabd4715f6b7d8233b5fd5c264f38b6a8f8e3c3d4478c7df0a549d002dd102e982bab1c75024be0fc8b5d063c967b2300ef8291e9acf5bd6a45424785019b045007a0800fa508f27a3e494936019fe070eb1b1eeabcae0c99fbff1774dfd9af958d789faa13db405fdb3483a4f55984ae737fc0329157c670f0f21c67ba076c28b1dd106d9b72a8932694d2c3e96b0f61033b15b973b7c815050d09cd883c9348abf77e0595e866" + }, + { /* i=704 cDividendBits=1386 cDivisorBits=330 */ + "5e7be2b9a231a0c625892666b8df874e0d8758b8da6db2c55e30a553a891d6293425ed847e806fabe173fc9811ebe938ea8b658191c5c613595fd20434107fea63da322695e575fc713719d0cac40906747bd8a69dac9b1636d0989a4ef99cbc5d783a949d6f5feff44ac9024c2e8f9c0ab69be1c364b9868a683e17423e1d1f77d9c33a365a4bc5d3e41668226b1b0495ab80a1b300db568a8542ca473ffdf19e3c777c66c6ddb6b1fc8344e6", + "03930e07197576a78fc0d330c2319ebd612bc6d1cb3ce1a42ecc6b095d4999bcf05d2cab31810ed51d81", + "1a6eea6facd35094c8afc234f8f2f9c3f37525770643d1e9337ffe0c89c061706614ee1fdf7499c66e1bd9507e508ba62f77e9c6657e5f18ab6c7555225ef557ed2a3efdd3ebb09b5954afd0903be18c67eebf2ccc1e2960f7b0cbae5ec085452302b13aa6b97981f956515d6d135939bef5f77a3f8499f6a62723a5b5dcc1b4930593b3", + "01beaacc6ce7154536bcdbecb563f6c7ff518c8a1eb67fb2a350f61ed415f2bb8ec181c05421970990b3" + }, + { /* i=705 cDividendBits=3186 cDivisorBits=2668 */ + "032e4865bcfb0d084ceb94b812f59b465351541d1c99361a58b9fdac0cc316c8fcf742e9de7e43259f70f2a5455233b4a5ee4d71dbf3233539948e670c4d28444340e5740acab68740b78b9d71d80286c1fc856a96a5fe0a9f63f8e97d6d16cdfe654f38594e1c5f59fc04360bb051d3bba3c131af09d16bc8074262b507e3ac9386e9758bcbbbafb344b2182c9a2419210218dbb5ca78cb6d8d3e160c58889d65ff1bc948451bbd7234dd1ae2c7236bb80a3842d656f275c3360ec430dc876e06c13254776a1dc111939d2de3f71eecba600ed4658ecc10083926f1ef9c7212c7bf9fdb701ad7d5f793a60c4caa6dc06ad987c1173c5588571dd3a34880e33ef90751043f3e232c64b6a595e28301aad48a2f3efb7b603293f0f3ce131c15bb0cc95a229c2105539db71d61ad88e52109a496cc01277f6ec347493c7a87dc7b5cc0fc617c41925c1bb509c76f819e458b5de749c066f2e619780e4893b2944733c6bf04164584043090688947b45f7a52db659767b828a9a24c98ed95e212e36a389408b4abc2f5619e1fc9787e", + "02ec80c927b8d95dbca4aa69f8c5b92f2b5ff33907f81313b040c13a240ee82a0cf350061cf383c9a64e7f50fcebab5c0fbf01ac3c5056f518a6d21b8424c3abf36d916344a6777f5128b65f8638f54ec561fdd39ae9e08797e4eca73073055bd3a49144d27cac9a2f5bbd911398556360ca4e19fc865de1a4aaaf1f827f855d4fa39a54cc00dbb54ba22d7abbcaad14ccd56fbb189db6f3a6e3a4c43ee68b2539307dd33043f2473a933e7d8910206d9622808596c502a80bf7025d95737163ff39fa452fcc8a0f2c850bcdc65654ebee77c0ea2af1b5299f2c8aaca4db9d3b0c5c6f243c6838fffb99970f4265867c3646a7fb9d17841679293e950a48b5e5683dc4bd861d3bb97f09a3d9411c3eba66cdb832a7af181f2b5844b128ffd02eee91370d693a3f5fc99c33d5c94cba37c65d4a1938ebec38fdcdbdde3699e70971f3ccf053eaaa644bfc1a93ba32", + "01167f6a8187ecddbc0e89ac4886fe0fe276f4ee71c175a8b52bbb95cb47800bccd82823f2705ac66badedc571590b861794518821c79bd430222b0a12f23bd127", + "015a3bb2f61ffc5f010942a4d64b222afd5375d18a17a8975d7f81c0bb7ef034f5243db79f645b608cace8020cb1afcc4141db6c603885f1ea01327c28622b3c3f9e4f49642234b73c19f6ab3ec936c2328f1213f4d166dd09554989b9ecec5433505f0394768c12df799f7f36d3e6e92333f476111731d43d16435834c02466388d7980070932aa7dec572a5724691337c7c46c87c3bb17fb662e7612f5194ed6d638e134cfbb9be8750126f690939b5f14be60d0a4aa442348d0ee4a4ac86ed14b69686685209bb46b871a049984d4c70b1f6f4c91c875447578414e46b0f11ace73e79510a64c892ffbb0248304a92bab6ac7ffe3f0b964f63783424523609aa5c7a0afd8008c9065898be940595798d1645644717a0e1b8dd1c1c0e42c22b430b51edaeed810a3e029ab4fc92d679b04439993d8c290c53c3ef0edddaa77140ce9b1aa2f895c2af04abf48e0" + }, + { /* i=706 cDividendBits=746 cDivisorBits=212 */ + "c31d6f249c4a5c1fedb198ac152b2c5bade3a8328e43cbbe27e57576f0d8baf548d01567cf61bbcb35b24683d27a3392ff911848f55a26742590108d0ce8a61c105f9589cf01d66725cfb48f4904fbb22c8e125d7c096cc25e5f6ad167", + "0554615329f9f18b2de0f29cbcb5b65233a0058a599fd30f1801dd", + "249c0fc993b795ff90ee1cfae83729291bc9dafbda7eeb7138bd5b06d0db865f71da6aab510a7472e1567e399fb77e49bf8d138c89df376c8383f59433fce98f2f7598", + "04474befeb208c8d3800a5aeec59bcc24b5eea2f45fa8fa5bcb52f" + }, + { /* i=707 cDividendBits=232 cDivisorBits=79 */ + "f1cef401e83345ac37de48a1ee1a7d79fdc0246be81b6bd8ceb96c2085", + "1a5f4e93cabf6fdd1de2", + "092b45b7b5003d781fd96cef56652aa1faceb65c", + "0dda5bc0103c92dab74d" + }, + { /* i=708 cDividendBits=3473 cDivisorBits=3349 */ + "31bb2703aab1fe84b25f4ebc870782a757dee17ea081897c2a54887b83683d0182b518667a2905b6bff5d2f733ec3d6ca191f6b32f85960d49963baa9fe2f2718a54a0758905ee7db3705ec5910b24ec9b5605c1fa684c995010b19833f77cd725bfa663b77fd3d3432b0ad7e8e607589936007ae37e2d9dda1b4590c423f6b5daa6a528490dc922fefcf35fbeb68f9eb0745d8daaedd5c1d0c8cccba0c7dd384063e1a1d589084f8a14a3a6fb5a732b5e01845eabf0271a97f24456cdc7e78a36661cc19504f78a7101c00f7512460d8ddf66fc16234687cde813abc4380250ebae5b1e373cfe25fcdc2d99b1cede38634f34c1cf747f80b7ebab9a9f9e4ecba157ec3f4e27155720db4abc891a31a764eb2d2203b3c7b11127fe14707d81f6eab1581f15c7fb38a1499027db300a9398c8b5610ef4f8544259e5853e1e893a196265661431cd69e0a7a62603de428063f86a74ecabca94860bd91c33cc0fc8f112e48de97b4c9ea7cf8a64b9241e3adee7f3ec32a20be45b1ee5f6badbb87b3010d5efb56f1e0b21f40549eba45d6c6fb03428c3c95da9d7fc8539d8d48dc184686463e4c899f516423b7248dee16c00c5", + "0f80132333fc5df209e0f783d627c5604b9a57b5eb054632f3cd45ab325fca0405afdd08854215bd1fe2174aad7410c2de23acabcd2193664975288c9c8cb81cf747e4e5379d9c8906d58bfae2c55645c361239a75de702ebdaf1144f12e23e9ee05146f8397d738574cd56e741f2234e34da815b015b9429a62fbce632a8c448f6753c25f1e30ef2904306003f51fb50a8e3ff8543e89470b92433921e219bdc9455cec0ac4483c6d4c755a7eea444ae0d8e7038f8235b2fd46bb3c82b36a4524021d05f6e11eadca315abb1a52a4673dae8ffd123d401bffd4aeb4a5700a4cb07f8689c3a43d220e680614dc47a5a2a0969315b4da00f68cfdf529f07801ac1abe1ab516a16ca70464cff06b7a1c24d7eb0acb912c8f0ad81a2d8cbbbc71043dbfbe232f8d975e1cf04d636271c4105e9ce7bc699f2cf05c0565392a71a3444abbabe0398dd3dcf60e5cb56309ca0365d3b12b990ef3ed0aa920f6400c400fde4fba010fd1431e07ad6aa9bcda0f147a00f3876f8f62290766edca8e58eb146ac2de79cf36e35eb68d553259526bd9aa1645895b784d8d90744c1c608369bd97573f", + "03355964f92c664c7313e4740322edaa", + "863e3d19b375902430cc7ea1b3c634560501092ef280d5cc2d29032f39621485cd2247be66802b640693fe8829fe06757223878cf8c93764682d6462745f5f421e83463b86c05c5eb9ee4a41d7a30044620b63a61b23d47c394d26d167000fe2a01f29caaa7ea15a16648c442990ded2b12e7d7816defc4c1687363e6f3d7045e9e710fc3177fc0e9f68508c2a73ede8a01199a8e0b73fad1475b00e42b6acda19aa9d8677be8a59f1180c9db8c980a95f18622917a791eb039ac4cbb7c12c047078a22f398ef16f3202f69d6816167a04259c2228bfb42c19d6c0e027a18f7f6cc5b8e66c4d97055552c8699756130a9ca2222080d2b372cce1ac28b132c85d8c03f826c5a8da5e1d509d7dc116ff9d6b2f709447d0dbb759e3f42e6f7f9f22f29d401fd14be7f4208aa7675f80250f92a558677dd5b01f8cfee26d77724436a471d2ab374ee9a2e95f0e715539176c71d1ebf32d4aecf0fda4439fecd3f15131178be0b23666934fb75415ea50d8298817f40a27ceaa4eb8a1648eaf837665de73131aa635a4d591ba5be6b6af9dff557132ccda4e989db730df7987768bc8bdef" + }, + { /* i=709 cDividendBits=2289 cDivisorBits=1784 */ + "01ad5bb159c8e6f962092e1df7451a316e983a9618e912606393fc8a944025b910843165bb1f10623c134413df3f248a3a3c41629f427d3c7725e6ab5b04a0c895f1d34c801ae82563d9bec12bc26a9c412a108f443f2df16720e91661ccfd696b5bd6db0b56a8d1079b11fe9fdd7c9b2b3fe5cbae49b41ca34d95c8c611d1fd324ea8fff978549cf8e9b87f2a7fb4699b1dbfc500c149d6d34a6f837a8da832c5941fd4b1ef42220aaa87a01eb026abe22ce75375b59cf36dfedc9d39979e0791a5c3291330203117e2a7eadd6f166e7a67f095dd434a6e7669c231793e6456cac5bc434f287b64a93bd073c8941010c730c72a5649cd57b8d8e6fdf924e49bde912d88e617566f90045e52cb9fd58fdb212bec04d8b5ab063f2ea48cee11", + "360b6c917547c505fd27a01fa07bf8f0da75e2eb344404a82599d53094e8d844f0b9fd7254b02ca92deda0c83052603a5a22ba2c486b5cd29ba36ad3c88032ea2ec387093de0d111d9e265f8828adbe0393fd1818b3f21cbd9280ad0f71709469e4fed56ab489cf07ce68f7657f507934a43d5b1844f4a1d23e2c054d9c6eaafc29eca79e7c423a28a3244d4ebea31b22458c62c5fda821f57b2aafc472e5e0cfbd1fc5e7a7544eb258a60be2b2631013626650883f56bd2d79a0970cf201297d01e17395a86006f2254c2fd7a47e51a41eab754d4a56b02ba86baa04bbd23", + "07f1cb89e0b46da893dcaae232a43e69e5cb510260a2e660c8539b9da848f9e48c28307cea4f4dae5e899d2b38a07681edaad9658406058fa348b5030ceab506", + "2b08c1d88727779b2d6e9d1707f503e8cb524ede12c03df4b90dd0b311e99a56339b33eb15fec30f09a4c54e15938438426464d862fd685ac518b99ee713c4ffd77ae940e8e3762e4b733f06f267c080887a3ef6e62a9aea7c07020d6a69d134f0d66d50f028bb5fcf3b019f7f606bf3f8e578912a81ad2d1e24405179f6ef1ecfd1c9ac6805188cf970ceb2e29d7fe6424ece8a8bf72878fe97e5af49341d7b62d870530b099e18d21a07b88f08cdc887de6fd349427f1deff8783b0e97ca575d598c5d430e6cf8e7de373ce1272e343a5ddb3c51e6a8ead61af7d00ec03f" + }, + { /* i=710 cDividendBits=2474 cDivisorBits=1160 */ + "02b285e36c416cf9543da5e89b30695de646310075b021829a4f2d6f3ff1584d5c7935618878f8b6c1dc7a5598d1ca7ec38139319d39cd4daaf6f1fec92e667e40ef35a4d7314fe033a589c11846cc586bde0e6d2ec0866c31cf9e527d9f043e9d065d1aa6badc767ee061525463e8db5eaf98ff7da2d5e61f29711702604526f44d57fb5dd67d970f9e1700f5dcd96f58808f1638b779b8ad7f2f0210db0fff3bdcd33ddf06b3031254772691972f71d3897dc77895cb3c7d0f942d0c377b265a631692c3a353a0c388ba9c25fcf0f4ab436733790e961a6571ba4fac68857cfa49da9fcaeed08ffde1ade64d19048dc504d3df6fcc7926f363e88bc82563239cc73d36e6753d40263532a93fac1bf58c9c46332860fa55de4368f4f048a864541308a2bcce6d70975fc94ef13fc34ce825d48cf2e0", + "1be466a6c7d2443463c71d027b4304ca60848e953f5b847e5707524454ad03c9bd5f7e5a8d31fa406f37d096b7480ed8e380be20bf2e114160f898726aa9ec0694c652a1836ed5d40a4896ffaf0627fae789649a12b24a00fa27952f935a3aff9df2e9d347f42addbe2a5f4b3c8d6e3aca1ebfe8330c6b04d4f0edd0c8fb50c2ac7d9ada54af8a631db5fbde95533838ca", + "18c1c166d6b2faeecf71b5463ad6f4262f7f1d75598f89419f3eca2119fd1f665ad8b8a38e45c3221326521f007d01ec930f75bd0dd92edfe0e3e9547d46cc26646b4e30e19d30f00175c4873cf8bdc9b7493a210b5812dc7a6d93adfafb06f59e80f3207668237555bf95f825b67b2e6c224a5ca9247854ad4df9b74e041d607e0e572d5c8d6fe99305365f4c3dbe9e414787a704dca0d1c95d7e9f9376c94f302eaff0db", + "017fa60e78503b6ffe3930c5444006cb1f0beca8b77d4ba1db93bf7d75296b7e878d4da2c57c618c7ea5f3688ba80c5d9eb6dfd1d537abd6aeaa4c73d66e3187b32b7a0827ef9e1d3a95277a488f798f43f8369380a45abf50be348df9015c5b4c802800c19202bbc6e12f25095bfadaee25097306139c6b7a7e65e5563b3704d023bf61874e7f7f0f507686dfd020fe12" + }, + { /* i=711 cDividendBits=1251 cDivisorBits=725 */ + "06d4a506d4ba29ba56749c5e840d1f91787ffd2fdd1b9d2ee7e94c4dcf5991b102335a704cc6d42aa91466afff7fae0f6ecf7e79fbff965a7c29ef0ee79382ad8ecc338198fcd8bcdf0df36436e3d36fd65b3e16d9ea489030cce4136bc9beff078538498818e7ab639eb97f67bd44603eac642052dc4255543aeec393f5d9476e0798b2db2007fb4a3cd02b7d06a077055fd58db16c14db3c49c989a0", + "0f4203800f9839840be1f53e6f3a4ba9825ccbd5e9540bf4e31e9715b494e76f2ff6ce453f818514cda2b3e2ce40fbccd11766965aa814f4cc4343d28514c974a3a99241d54e51f7e2d4fff907fae90d93daa27e28646b3a162291", + "729b29ecc677c95b73358e04c6098974f70acc472ad12bad1e4e0cbcf69d45ad969cd0356c4ba3415a17665deb50be802cbd90acd97df71d782257e3a8139ddd24d1", + "096879f3fe9575ef9710bb5379adcc7516601843fa1ad302de8213d2e08a9f576d4fc507e8376e13ab8621821b1eb1b9e7d374ecdb15df640fde243d6bd690fbd3ca5759e66630d2db3cf77fbdab32d6721e2087e45a74fcaded3f" + }, + { /* i=712 cDividendBits=395 cDivisorBits=217 */ + "047f8af03e4949ea5f6f5cba4ed94944d8784df53d8bf9acff8e97eda5b7df197ffadd138f998420027a58288e5097273d59", + "018af1eebb71c6e7d59365c7bb53048ce422a23d52e9676a53245f56", + "02ea6b8e3da19b635754e7f1754bd32d800c882256f9d3", + "8c8fdd986e6b21f25090e6117d1d150c5420ef76a4763e3c8e0377" + }, + { /* i=713 cDividendBits=1465 cDivisorBits=934 */ + "01503cd828b3211aa05a2c8ff42349cec4b60b35c687a4b336abe71fd816d7f5b045137f61f1c5d450b6821f7aa366fb80d9fc2dee6b9ddb1454f63a1a03082b6d85248e4030888aab71994b798b642d206b169267a97c81654defcaba3bb16ff02869256ea52524665e8a850d527dcc848d7a2005bec481a32afff11e6e91cbc4f7405002e7c88df87db1e6e2b0449ba8a8e8737d6df8be2da5bf6109486669f67a656e0e00e6c0d1178463c341579448188c808f469c89", + "39ef6dad57341784ef520560d233ad1151b8e21a752c3102fb04e5e62dd7b156a43ea55d134d23b1e623acf77d245f4c5ec7efd97e55f4001ebb42d1ac9f10735d884d4a7972e8eadcec6297fb649cc51ae0b85a941290bb135f0de9de618cf9365516eecfe3c304cfbfb090238482ab28674c04a4", + "05cdbde227161ffb8be60f739754f058cefd7d786a53a659fe8baf844f3abe13771dcbc39d6ad8502ad3359cd7b3ab42611979d6a4e8d3d830e70834e33f151189180c", + "0238ef629ed00abc2562434d1ddfe892654d3c90e54327ee8d0fa11cb645804966b029ba7fc114a4d3370ba5bcec2e113f2ff71897a6378c9dbda89fc902e18fcf5965c76d082c0b7ac135bc4cdb0a9c2b063160588a070886fa9de1369f8c3eb38436c04ff50b22a6a8b283fceea4ab7b378304d9" + }, + { /* i=714 cDividendBits=2027 cDivisorBits=113 */ + "01186dc0512cf29766e0c25bdd2ad8859e0469ea49b460428a2d7ad7d37572b2eea2a915b680b4008d94dff9858cae8ed80db0aa1f2f4da39ae9e89409d9bdf9942cfa8aafc5693b12fcf8c21637862f7dac10de754e4531951cb8a403b9925d963d900d9d1fae5ac9e0beff3ac03bc4a233b55a54edc7d0c3a59ff22168ad662ef17f26b7175da1b1137daf544ba243bd505ae2b97a3237a56f3e621f6e7c2d5f55101512355eed2de41197e32ad06390bd4812ef423ba55519f725f6826fb114361e7afccf9e656fd76768aa9a5850279f9ea6e84a00df0e36df1136dc56a1b1eae378689894dbc9a08be5ec13aa67253d5368051b1ef21d99d3327147", + "6865b2401baa8713891654f67fb7", + "02afa8ce8a1e58cece1d2485cfa005231fa995bb2112eca78114be8153d141bda17142a0f63086ab23bdb7644c7bfd0b087d157b4d351e86d6d05de1f0d84ab03428048114d45ab015733e2cda54b811489ecee5d1ccb271e4575f819c2343ea3a96318a88efedcff14c0e07ee5897882c37fd2ddaf56537f278e4eaa704506c0a555c86d506a17621273f7ef6f5d4cad33abe080da49564deac5e2078b812c41f17a984cfe9ce3c65aba0a91e18919e4c1fbe771bacf4f3ffc894e48b8560e0b2dea33274e22f68f5f66224cc816682388800d982dec12c247db24c228b3f544a12d0af31aae8e62efdda618bc37e3f", + "1dc05e91f98e838299d6f247f13e" + }, + { /* i=715 cDividendBits=506 cDivisorBits=98 */ + "bf24a8dbaf4bec0911fb778e66c0765008d3eadacb587e854ae59ba0669a8f9356c133d44d1e2e2e5b0bf562a184bceee9d19e404816213cf627f1e2dcfbf4", + "02f7158f650b8e980f6ead1718", + "40767712a6d2c04812610a4e00fdb3c4f3fefa934f541f87b9ed903abfc08a91ef08f58b86891913642fd21cadaf95e6491a10", + "ed185389d6052aaa3ddb1a74" + }, + { /* i=716 cDividendBits=1765 cDivisorBits=921 */ + "05bdb1826cee419aef0be567875777d7c4109ad00a4bfc670d7fe8db56dba8631bf76e56730f727a1c526576d1efc6580bba763cccfdfb38b84d464ae8fc6e215a13545138e707f7ac5d89be453b67f74fb263feba9a4731653aacb448c5a843cd678ebabac1f60b9c0e201e3cc908b8a8628e2d9e7896afc944c18dab12bf431f24b7b5036c497001371a8f548c45ff65ba6fb5a620636a169e336d7a04e444030019546298cffbf27cf3394a638cbfe85f11a2b8a099bb6301a9a3d121ba4735c8c0c46ffca9877c9063c53734bdd350cae415a8db9d885583915065", + "01f52385048ca92553396b7f0bb5d94d651809f6d4e308b1f1ab081bfb6a7dac60fd2f280ad1df6aec5472089d6c82a9ede6f46a4bf6af99fd4203b17eb734e3dd6e3f07ffa9cfb49ad51067bf517195ee4b0246dd3ac267335c2d90f900156e3e5d0ebc5187538f516d47ab4b396a299b903f04", + "02eec5ec34dea2585f5b7d883c3f12a7983824d1526b605490c605d04d21055dd47092de7c7a5fa1ab3754413ecca0554e9de8265d0eb79c6e11cb2417cce318113b8e9a303954abf517a24b8be7bf9566ba9c074ba6ab763c7ef1e631fe8182106f212117fc7922685a", + "01c475974358805ef78fac9c0a3ab582230059db08f44ebf8487577c8053872a6518c5ddf2e3f06dc461cb497c2f4762f73a9661233e35e9c062d19fee77bc7c9e3bb7ac440475512160b7744bc72f41dd396c5291bfb8516eac93053831555217f8dc2104161e438d10b5b0971413a0f6b988fd" + }, + { /* i=717 cDividendBits=3997 cDivisorBits=2863 */ + "19b3d39c9252b480701ec52abd6bb38ac3897523441657a0243efc6b78dc70426c471ef470f993f2e7f9a96063d85465add9a0a225a4098bdc106f5b95cb5bcfcd47c4b741d6bc7e684123e04f0ed4a3a1881d3828b091832f60a37e764767960956d00d647dd5cd065f86f7bf7d8f6acf5e056429996084602b50757e2d81d64728e800e8dff1c61907cf5e8a050ee3140d45949963e27dd48439d04ecee5ba1203f3b3905ebcd98255f1d262410d50585c776b3ad82e679e8e894366b952e84a42e15fa774603d6601b9170588ee4e480c55c5b3f0f275cb4db69fe7f3518e04ef48f7cbed5e5a691162df5a439d7b28c2b6e381a63125ef9ec9ff493535f59b3d2093243e8acfa71b3c73c1b7e1cc4afbbfc1ddd2f6c71bb86a14b8e4b7ae30534332e1857931c6b283e7f8ef72cc3159182be45eed68c2dc34c913d28c0d925e8b96d5117ca414e18ca5247dc84e99ebf2fdf5e20ae2c5c777e8f9c3fad74406ad764ddbc524cd01d1c67b4090a8d48c1d5ace4e0ac57e046a03c7f3acc6dea2417d12932cbaa2ae949c206c526fb51f85d4b8fe65d6c75b13d2bff76423e120c92c74dea58d3e92f7302cb231b73b475a78ee35b99205c3ac3daedb8125d5eb32cb086b95afd8167c4e5c9b2bfa8b4458611537ec380c5be0d964a2691dcc15341edaea90ba16518da336cc56c10c27afec", + "2f0913efa76da6a7e915091d06ddd368fe3e4b8c3b74af83a2a26f67e879bb10436349ff7ef62d31af8a57510cb79a4463be2d6d6555aef98f123f382c45c42ea9252fdf0eb0b54bf03d20fac25ff07f1ba9452bc2a452299c49d95e2222adeaeefbf4f55a5ee1bac483ce19d7af9f8d87e5c7b8172c3cf94cedd6b5f6c088908375715a1bea69c1855348d4d8762f74cfec9519a9d0ac19738a81c9165e0179defa7d8bb64159834b1ff6d617395a7d5e1029a22a3cd4c6251713626c79f1519f19bf337b7be4d52be5694eb5a40bdb728406856e08eb30d4e1828cce8756352121ff327d6f4ff11d0707700d0401078b3c27f8a58a8fe3727d3d9a16437442ca1785ee9015ad7035d1266c8b35f91c48b429c94d30ccf71ca626981e047580da5d4b81577b6bf7675399925c58bd6a094279f12eea2a27c9a69ebf8c2bcc2c30f528230f213b0f87c12ff94a19c5d4ab386bba8f6a54e9217f1c7cf7ab7bd96e8b3732d7a5", + "8be40943568494f5a02fbc003ef1f186d59b9bb597ae9bc8088b47c8480f8997f099761b0087e1928d68c364c5a58b2a383bd0f1c0069081da094aaa07e4d5921a5f92c6f65f01ba951abd8f5ed51af2634786e50cd741a0bc46700eab61e5366670e53d98486e4c72201214d6b4f7d34ad7f89b5be8c0f05162d95ba5eec34d8842e109b0950ae46659cb5373e1", + "040d2512f58cfe5a9a8edd1bf0e4435c104e22680d5d2e982cca43ee3f1c0c8d9e6d2910e779fa7f583112cbc10fbc81762fc986cdf951cfeb70182503119e9e4ec3336f73ddad475eefc42dfcba23728c7ee7714e26b4b5c55e8b103cb6e09646b83088beee911c72c97320c5d0524433e2e224758ee155cd764da36d52555d5ba86a7cef456520b4e9581e965e4cdf32f213bb896899904948b783af6d5c4cb293b7e96186d8c2eda646ee2da1da6c78ce7772ab0c726d1c1d6c42a60fc760ba79e75a741e07a3da9fe270cad3611e66381acf9a960ad24388cf71c8be63cd7ad9d59a745679e2010205504575d2096e18e9e4aef3bb50ac1839b508e323b89bc95765d6054dcd2f6a804741a00a79b6f71bead4e3b38933b23c97bb0a645cef3af7c74af887edf67888236093e8d8de8af37215170f7f4f061009bfecfec9e4082a6552329645c136f03c5453e6143be706aa53ef453789885dfd45ff8094b7c0f01a08e7" + }, + { /* i=718 cDividendBits=26 cDivisorBits=4 */ + "02032677", + "08", + "4064ce", + "07" + }, + { /* i=719 cDividendBits=3814 cDivisorBits=3103 */ + "03e9512f4d756b0f741312f792fd142f5d19ea082db6493be25324f2682e17ccafae313a1663149fb62bb32dd784d7738a4ff1e2a43e14cb1dd68c0e9a7075cfa81b537de7814271132928ee7645c64e2650b97d74ecd09e8c69d210d070a43bf26517e234b07c66c334d7a09f426ff47f425e73a5dd74cd2390601ec0170c9a225cf317ffd61b61e5a1a1aaf2a32fdabc806bb6851521c35f4fc857f28a356769e4bc1be390a34aa679acf22ea7c4377547e9af189e83bbe21d26a03da9debe81572075c1280bc1a8fb9759fa395be2724549e76e8e0cfd8d836fb8f42e31e6506452c427468544597e01595816afe7a50992cf01ee70b520ecf5173aec2c7cce0bb3a165fc8a9384e1ebccdf6ac38eec7a71a46c23bbbe206990cb8241e2c4ade33643af926b82129e1b33d62ed14d4638978853799b8defad7505bd7440d9a897f2e1805faf6b89739d8d44f9a58f3df49475598c06bdc63ea453a773ff27cebe775b8f40a6a79f3e026e2a8ddf00673bd029a75a4dba363bbc84f787d176f25abf1407440a69ba143b2b97ba8f38ce8c7b67edaeda3ff002861f2e991cbbc6826739a26e7c034d6d1cf37af848e5458d5a1281795b305536aea1a45bcde35e7b4d09ab71b2ba8de646eecdcf8d7a3097a99c4c2d48f25a78742c20", + "129c05bdf12ada0d606fed97c52ad32bb50307d1ae9884c23f5751b0b30609180d9494355837f3533e08ff9fa23c7016cbc3439651f976e0cf0d6dec8e75f62dcf553a2272a5dfdd95ec0174f47ae4e1a0e5fc773891595a08ff48511cfe0fa9c1ab67876415ce45a38e45323e4f5b8559808cf2e0d5001048af1b44a5497899b021a56c70327be9d34abfc333ca954dc6d98993dc1e01172b1afbae20feb8e8f448d5a82fc53cd150307d7b191d8112319c8738cce0f8656eca1a505bd93ec134d5b8f865da502fb3e99a2d8dfd3bcef33022c5b5cb610a339aa7269aaf795f0b568acb125147e77d2a9bea0ffe1ccde9184e73128de0cdf43ea9230a9259d63f08a5009834a16e596a498190445d00b9f024e0bdafb09ecabe2fd50dd4d4ab7f0986919442cba07baaf22e15a4043a8e555f6c3c57513c0877a7cf6d5f8c3caa457998a8cdbf6a73f167148984cb4e1a0fcef194e52419f3d373ac2359be17fa7402a105aa4d6135904677ab248cd87f600f4a145ac4d382a83a1c7049cbe6de63ed6c", + "35ce8fb5a759fda09328c79cc97923fc9e0aac47200affc79b0ecb629c4a156b61fc8e5230b21daad5b56198cdc4962f5681deb4f9b8950d4e44e49c44dc1a53c96d20c970a5993f6f6b32d1c33d58b0bf2981ab99028ab732", + "04465557cdaae64a1cceea83ca169bd06d664b4a1b8e1a39d7074893b526a1d9432ec1cf21cc94d15bd9ef88fcb2979106d7de94f675fe6b1b8cbb9c9e5608ef660fd9c9ea60dfe9134fbc65e3a6ee443f02acfa2f35ceac6403b5c95f58a61c602ecc8275432cb2e57f7d26b236637d4968764cfdfadcaaa56148dea4e1a1c417e3a8117ba5d10bd4c2e29f59b2ff8459e784ec42e6d4ec8d1dcaf97891ee24374fe758fe644cc7e1526c7f7c27573da765404aaf2fa867cf90377b2089a065343e8a02bade1d4181767c9216c75e0422639e5acd54ac172a3361329233e2cf0581a51fc01dbc529ed736a9c24cd62ff2464160ad961f0263729eefeac9c822059e2cee680f4c0b0ca573166c3286db2231ad0cd3a3e02c8fe72e037056d72f9eb25e6207634f1bbb91c15ffd9745e86cd45cfbb79f0cd1c79f797c06d804cf1510661e80fe5a9d9d08277aa758cd2997a66c1a73ff7a73bfb469635b40925e79904858b6dd1867474a4f0cbbe2e5122a3dff2fcac6d52a2be44a9d2d306304c5ff9908" + }, + { /* i=720 cDividendBits=1727 cDivisorBits=1667 */ + "73acdf795020522bddeaeb0f13402c5c5f2d430616c85ff17d0efcb4129b5530be8a674740a62c70fd2008decdbaf48c02f434b96df1a10e5e8734d4f25a03841e22d09aae4b541f7e75a9213de78857ea22b7c6894dd46431317a2ab7c712b9dff033ea7f904402dce44c0ea6bf1e8831f60f5eaf45b0818588e3683b0a79b88af559646b09995ac75d3406a3f811daa65cc9898d0dfd030f898cf307489e9e4430aaf5670ebaa37b8fa9e0e063818ad0f5611a35a8f72dec1f4a087bd5e8068e25c60e8e88a2f3b80fe8d629f79739d0f71f35e04071e9", + "0757ccc1ef9ae32f091c48e12ae2012c82d8a5045d097859f53bc0d704eefb9349d6553aa14e3630f17eabc7bb69608a2dcfc9307a3f86da932bd70843a056ca97b9b01f773321300927e0653df82ebaae707a7be616b4a8888fb1643ce6f9c777651558b3fb338c3caa7a08d8ce8691457581d0412934f82f108cb397b057fdcc1e1aa0af458420e23c29f4e300f1070f1aaf0c5f3d1671976c88e38519054d92d99b8c8ffb6b78ba62801937eb9e69fcbb5e365c33ee31a1050e95c31427dd8bf79d2e3db8a839ecda136671a680adee", + "0fc0d21217d0430c", + "02ffeb98c8291c7930444221f9f1c969cc030e51821027ea5b5c4c967e7e68dd5bb2320afbe421a2701337941aab0b060cf5a5a233394bea70b0935cd318a724750995854bdde87f2179a126858845f5f4543ebc1ecd6cdece107f6d38d097520c9db8ab3d8f79f106aa9b14edc0b475a8bbb81e4c648ff68a82099f66d4ba7976e6f0f83b24ce677e8526523800c62baf9d89c561082aed0ba3f12029dcae05bf1fc1b1b3ee06e2725824124440e7ca3a5460caf1d90802b7cfee6cc8f39e14578e1761a1657e1bce69b84464b15300c1" + }, + { /* i=721 cDividendBits=3510 cDivisorBits=2316 */ + "1f9f16d4caad23ae407e466ca00470a62c746902b7cc2d845ffe0fd0627060803dfb1aac7008beb7705cb0bc41ef487e97e1276d3779f476592ddb7ad65fd4f215905399eb815df6faefe51696103f2f5e84ec6eb94b0626790477c0570c54866f4bd353ff292e5cc60ccc0b620a7f04e6dd3bcf888c6acd0e798edd7680b2037714d57d22bce3f1027d04879de3dca6c8e1a958e8035a0e1deb60d7a1012d4beb9d20f72afe3b9d7b3f15a8fa6d4d45e517483fffdb7060385cb219a3b8864c16b22bd40f10ed79c8c113306e1627580199ab850938d34b65dc94c60bcc166d6be88c69dc84c8c6af815fc5baece5993b3ce9d1ede6f5787dfb9757028d7fc0db56579804a5a059a9f791a82e349058a57ecaf137537680a0b93546415173874c142526e7e4af507f0f7852e9f76cb738d8812bfaf39994b342d1610160d32e2a80554e4b7a27b47ba7002f854e5678f6d0d96d67a9490d88a14410bd8b789bfd01712de222c747d8ba358ac203e3a0086c9996854a8834dde5d36c7dc2efba9edd8c92e76487bfd2b4b7494a12182b2a2aaabc2d26401fc954941ed6da82316a08b6b8945f23df318bba0d54f21bfb7cd0d2818a404d", + "0508141670078e5349c0c1b7b71a4c423e6e3d901fc595eb0851fdfde254c5f16d3c319e3da5149757a5ec951963c32362ce59eba411b8b655a5b282c547546c9989d448ff5aee73c8ce91628a3b17ba95b229ed660bae00ad08da2ec76640d182a48675e9f4c52f276eec57cc9c7c0b9731888c79741d4acf991650117b24ff7642f5a31ff3455ae0e90c3ddc96eb9fe4179a9cbd7639c4766ef7258d0be0f4fc04cf1d8700d503ef29d0e14779b29981a314af3fed9a08b618ed5f43da5fe95de24fb380590d9e42e2234b92673578185eec658a878a337537232bf2fc98a6d60aa626131a2290279c4e1c804e4305addc2d7dae63b12cc4f68645d3b110c33f0dae018e142cf181a050fd707ed61d9e0110a856adc573eaac80d6719a6f3fbdb4", + "0648dd22af15e9968de1846c48854d0a112e37a799f37df6746e1bf147f49c056704f5da90c7e55b1388dc20303f1d174c4edb55e96d0bbec99891e7a75c5d91fb32902f36f5437f19852d690d9c57a0154f7c0b7808ddacae7aa44b2fb3d1453864b09a016dd411563e8790731f39c0fd34e65a9e3495e1eebf168ebb91d21c3d48abee97168be87ef562712b05c358a1df4f692e9d", + "0149d17affcae2ca843a14896436eae5977767d7f1f9bf9ef0de404d5e64a966301c055200b58e561e1c34fe1e6ec6f6cbc55370ef1390a866bf2c950c791b4652660eb710a5b2133cfd243bc8576ee78b1929f1f11bda8febad50420b90c593e270c1678dfbcc13b8775355a3301fc20f3db2ac1fd7e87e54aa0bc1b52e088406c53413ecbf319c012feeb0a062a8c86265f3f9880f5673297e717813d6351d798ad2044566c74af6960e2abde49a274e860ee07939f646eca9c513d0a22ae3c9e6efbc6f006b6e00dcd184c5eafe6d47f92152325e2ebcafe467e130e1356e720f2401561a12ea9c1ce8d65adb982abfbe12b8492d1cbd165450de4b800c7599d6eba21d5cd62eb2797a71d3ac0cca6199f7a70c7256ed30bbde2ea4a3788890e9" + }, + { /* i=722 cDividendBits=947 cDivisorBits=445 */ + "023f7e671fa5924091ed6a392da2d950c9522ffb2380a0df764f075cd39fb281487c71e09673e5f73b69f52cd3b4098e9eef3291a39ef5ed1f086e57a966b32359ad9e7946ade977e327e4c3354cf3b367c351c2e3ade73bde767cf5744b94139b52b6832270d4342995701f8d5164b9a7c0de5774750a", + "04fbb24e827da6d906d53526f33b35f570e4b171a8773bdcbd9ea8463b0b3a620f39ff41a542d454b5608e68bc4cb7c6f1eae907a3f2baf4", + "737cae153b9625a496bc040255ea5887648b0285d80c650944196dbb87b69bbd9abe7b67106c2a5c285e2d0f739018d6911b79eac285022baebf117ba329a4", + "010d056bd79bd548e85a15466173470ca6eafc82fca469cf378bed68a840d4ba111c18227246295a04134d2182f1378c09c2c5232aa79cba" + }, + { /* i=723 cDividendBits=2605 cDivisorBits=938 */ + "1bea3335b33917eb7db9cc71c0f2bc22ac926abb846ce9fdd085c05305e956cedeb152cb01f875e100b1a0fff0f334ec3b42365e7ff1a922518f90c4674de35431b0d2109453ee3377b5b1520579a0fa1a518e088452cf929da8467660fc53ef1f689f1b0151974b98bddaef44a60dba010d7eb0bb8eeb6dba9482d1a953135c475628fda3a4422756db3238f01d2c8efa1af535baa72e363016215cc3f178b060b88d11c06607db5d6fe22d446bf478a34d902546f4c7248355bd6a9ec321203bcf50381d080d80db9ac1d3d9328f4d24b7680be6c966899f40ae2976bb7861b055e5a0b60c982eee5016f37c58853998b0f59bc78130f55da7da0cb4553cc53bd94ac68abf181ed3a360a765a526b9503484763817b772238ea4b3cf3c4a8605651e8c8d8f2cfad05164120f858c5e0888cb376bb01ba4c4e298faa12f135a52ef317f138b", + "28b32f7fc15bcf1bdef4f5a0e19c2d766bf0d8cae561ef09a7d23b7f8e42cd34a6256bab57ed923df3655fc2643262d34bd5c2bb7b75545c9ebd12dac91d5dc23a2c1af3376bf059c2603a4f76c674a99af18c77d8eb8fbc96a556e4ee8015e3f2b414fc84eb060af4ac1223da3f8045b7f14ba424", + "af952244b5098cf13ab63fa9f8462505b49beeb94801e17c4c0561569c02f3b7eba3e34915ae45714c336ed6377cddf55821cc9b71200ad165fee14b245b14d93e8cbaa97bca64593f91d0b6be5c7172885c72ff5cb35c01401bba27738355fb96297fbdee3826939d8f2456ff215461536067ad2746a6c0caa58ebd83e10e2f301d6b3afcbdc2ac6991f8e4937deea8901e7e96fd5167cb6e08b837292e2cd7cace1016d92ab98a5d801e5a3ef936754dc3ff5efe15513ed1586c5e606046fe8b098b6eb9b9391e88d0a113cafb396edc", + "134a06bae964ad2115556e03a461ed85c0970b93b64ca17fb20db2f2b3d48134c17d27ed63b2bd052ec06db52801730a9d7927ea06e922cda652d62dee060c60229b4f8364a7519d5045c2d21b0b38c2ca81f569a9114bf97aacfc739a1e284713df46e3b0ba5868c76b91d750061d4afe7bf28c9b" + }, + { /* i=724 cDividendBits=875 cDivisorBits=644 */ + "468a8fed3122a51df1f1f68c5a76bfa6b1b7dc984fd8a1db2e022faedf189e2243431d54598524f1c2a051463732d7b2755593f4845e4dcef62d969b1c1b70b1239121a54ab48367b6225ac92630ecef511068b134239d4175bf88159c7d00d8990f50d687ef3372868642593f", + "0909adaf2d3f5769f57224727fa8f642319b81f32860cd1d4c8882d08a5d139e58ba9ba6162083eebf5a617c996aa56c40212294ee5bdd4943a1fb0393d61d3c6f4a3bed8899585595104cddf467a54ce2", + "07ce1d07e416181172eca9581510fbac744df4046b356646c6e89fea35", + "e36fd0086169498a6a797e9e46f1f1c2ed02dd45155638a19be654aae3a74efbeb0b26a5b2cb6b126d387676ace86ee1672421923cd57987607d9c4e59e17d5ab150608b81c466452ac2a80c6864da75" + }, + { /* i=725 cDividendBits=1341 cDivisorBits=349 */ + "08f900aefb4f222e32aabe0bb8c22d06472ca562867636858a194584fc1fd2436497c5647ba45d31995d86a82eb6b43563a96ec5ad4a20a2d80589d2b7815d5d8f92b5b94a6c955ce56fabc6d13b1599daa4ac24fbdf48e88543211b118d052bc7712087aa6cc55d321a4bd9bcba153dc8ca66c122e025d1297e067e2bdf0d63a1005a6810895a9550f3b914194e6e56e025ef4b48f23c830e80042687541db1df030d2933279e60", + "17aa973701672ecaa1d3e2fdcedefa379b32df94a9f905dcfc78b7ddde24ef3c2b6a7b17970e80c94ae5ddb4", + "610ec355c21be1fb4f62c7565cf6e47e65442c718fd4e6752745f2f3b5a2f7b4d60598d14ea987bba2baf44886d8fca3de19fd54cb16db560506a626e05b14d58364f57ede6cae5c1597152f536327fe857164e6f3ca91ffdd329866d723c170271138c1d754882c97adf783e543aee85d22a9816c3d019e7742c6c9", + "0e576d5f6765398adfcfb4ec0665c221ed44cbf0ebf17b2fcba5deebdad747a62a1be63363ad8cc5c6cb540c" + }, + { /* i=726 cDividendBits=2146 cDivisorBits=170 */ + "02e49c14acd918cecbd985eaae96613aba0d4ad45d24930233f4aa93638347e2a79c52d4057e7886ab4d008ff514648da600d68de440b4263d97615c9399158af20b05fdaa49c55a46bca359f76e9d5aea79d2b36ec0ed7f4420918cb7dcbc8786cab5eac7306a5427a6b15c5b35307c81b3d481abf15e9234a6a46e0b6dd226da90715736eb74e681b85958e6db19d661a98cd6e6f781ea310259e1083e1c4fedbad637416df5b3bc9a30abeeb572f021fcb74a556b54296323eef2f997f9a30fe03fc0d0807e6190902fe4cbc13fcf00ba2c2c5438b64694b6848bfd084e317b0b4228ee8bd866e6748e40d7b7f4652fc8f580c567dc8cea31a6b56be684fec019fe052fafb39b215565476f", + "a47418bc365f608f23cee225ad48a88020a3beefc5", + "0480e2b90cb2ef48326c5fcbfce20ee39e682239ccd66f259d35cae2d67aad75bca2a4e09162899d5f255d534efab924965ee5258f97d76ee6f2819a04f44fab5ce70f9c7c96b285ae45636b5e610a8e0a3a3da597aa7a8d7bd2009157578191f0eec0504127f9b9062ea3352a1ffd0c016d266478d8e2a9be640c6ca45710c9188d6db60c962545518db91b3a2634a52fc3b0f8623603b0b4b49d638e68017ea8c342d8089da45d03557c3c5e549ee6e8631e52c11e5c8389271d7b1ccc9222899300e5a4bdc856c955ecaf8f872e3f2d0bbf19b90b893908cf73d80f756f0e6b5fb3d76c8a084ba1bcba4a83fdd3f34f686982c8496150", + "9d1fed57cbe87cce2cef675e106eedc71489b3b4df" + }, + { /* i=727 cDividendBits=2811 cDivisorBits=2336 */ + "03912bdc28b52a297e925e683fdef74636ff4791c5a63ea5c2cf22c82203aa90f3ba8889354663cb8cde742cd3ee841d7ed80cc57865b6cea19670b007fcfc9144a4219d4665c517c85a5273c095f8bacc14ebeffc99eadcd476d0e05adead83605581e8cfef53718349ff9dc2ac790395678b1b6742fa6dd189b6898b74a7d610e6003526b4905dd8d6203ebf41c857b861610f82c2fba837ce00bbb4d4fd95cde357375380fbaef9e14d0aec230cd1f5d68f4620a8f211a5018fd8a01c79b31ca352aba7f0a2f779ae7109bc35861005b6db918e2112be0fb07101dc72f19b5c6bf6ca30caa4519301436d112f5fae1948b17aedd1c69391f47995e4d4359c59b0b08ae7c07de44888b0a06287bbe76b0853fb611f4eb124f4cda4aafbab8d17db883e4fdb9537b3f948c95930f37e4f8238953c0f47016f97cfa33ca669195c33f095ce7ad2015ff4e9ca8db1e4f2e4e8c864465c451f86efff7c80e151ce", + "fe37dea7b4d975bef91f5e49cee8768859c09b155e0b220496462556c0dbcb5dae337f6cd0ac1bb39cecdc58b29c30f75164f2ae7e03f6bacfcc002f389a90dee4e70b274f7c5bccb7038b5c270c29a0f927c560f3a52903c2840920d9cf57335b9d652a9f7e3a0719e95a64a8669c6ac139e765cfebb2726e6d0bc855f97d21a4facc0e54bf2e5749a03f72baa24c759b649af34a004b8523c45bd09e3808956acae28694ec470f2f3a2a12644c203b8a8ca9e5a1bca7277667e037d4622070b42e903184c9375f3074f4c8d19e78bf1862b104decb3e4e74dad6f7832f6bab999c2c7ea01f9fd2111013f1381eaf2c20ac6b45e52a79a21e8ff9289e8ba672afafca22da57c4eab5d2cac1fea210feb0a3722ccd7ad6346c2572971096a9490f03af19", + "039792508f38e7fc39af97b71f20b94d8b12573d7c5b4aa6d3badc42a66c4b1043f9fa247ea75a9d9a284004faf6b7aa64d3ec0fed6ab1ae99ef9424", + "1fc05a833f549e90532b8d8701968d18577c76c9bc86bf82f02a3059ad55da9d54bbd1a940c38321a5bf3b90d8ca8cfce881630afcc2c58056d3b71e4a7a1405a62e2a700aeb54dedff2374f4ab24203c80c628074bef4ffed2ed4b0de3746ed1245cbef89dc0aa8443792b0c4ee539c6e4a44d8ec11157a2bd0b94e2c49d3de7a6c0f68e48bb4b231d214397829c5d0c9162111c1765595b4df15086d8a0a803b171cd65a4478fe3eb9f682e743a0d8b627f1ebcd54d4959379717bcbf310edd82f9c2548ad0042805bf0aa2b0aeec957d5825368c29eb7f7e64efa748380127f6e7ebcf56d2420b11584d39314f2a3e19eced53a4d9df85321248a654cc99dd2b413e8a37fb52c571efe6414aadd896e293f89c50718a49e0fc853fcc87073d9cb3e4a" + }, + { /* i=728 cDividendBits=2335 cDivisorBits=869 */ + "42e88784f7b10fd63cf460d89401d85b67df370e857480bc105322230673775aaba615c634f149c6975f6d35c0f084f20122d2813549289ac390bfdf62515047cc48221f1972ce08d0a5d6729597321046360864997fd0b57cce8c94b3beddf7837a06dbc1b7e9036ccf6039c697485b5c0ee0bf9852548e3581bcfa301fedded732b4626e50b61ac223d9ee6930d6525b4f99b9227d4dc955e9e78a97435a95f199675dc8aa0b136dd853ae70f41df957d691239b4e3816eaeebf4df052c62403ace35ce19d8afa19fd9e1b072daaa65d991c60b24233a51a83280f4776aad25085a154a242421ed1fb15c656cd5660bff931769ef1340db0c1dffb4575b73bf827469dd3f4660db056fabf1c4dc99758dce210dcd48e4838893165c1b484b300d5b243", + "1b7b2aa926fcf7e4d9e348374cea7ba23610287c931e52e97cbad32fff029128d03b246123f881e3ceac0ec7589269cdbc983a1f51806905ee24a218b5cf216006154a7716df46a65af209230501d1a1801010c53bfcd434fc70673d079269d81b3852a273a035beed1f70445a", + "026f48959af52076b976ce112f3f27453e8fb57bda6e6fa441c93559452b8a538647c25300f3db73258343f5efd9de9cd1ad052c5c6af44016bec73fde1aa28bb2fae7dde66e599c4ce8a49a29222137001d27d0592f351f82548b474cb3eda5e8e53c83a4b2232ec7d2f8ff772523d461207a0decef3f92923de4f82e55ad9c26917eef622c1150d0fd45d7c2c2d0f9bba333b082c58a07597bba96e9219e851e0b272db98993d54ce256c3efb10a31ee379b258fbe5eee", + "028bbf49d72033cd6b46fa8f1fd1b51b9957ca61d59b9a24eb0033c54cb18e9bc3293647c4012f591ef1f8812f3bf71d294656c714b1bb8a6bc3481246e654f55e73e6be52fdaa5546ae2e3bb2d46ed53858d559a5b28e49a5e077a6e8d75928da81d3e3560b2288318c911a97" + }, + { /* i=729 cDividendBits=2768 cDivisorBits=2613 */ + "f94b2de64cbfd50181a008e1eb66609baa499ea262e11f691790e9a43166594b6cffb7af5c6acd083f3699bfa37541b0109274abb7aef53328d338508d1984a77a1c75898dd6caa1d109347f4faa2d1deff1919a4dde06d97109c74d531df5ca077469096c695bebe189f2763f416147293fcbbb338b467c06eaee8f7f482466bde1f21e7812f84c00286a3463c847aeb025c005813197980db07af6b5f6badee3965cd095f3bf4ffdd58b5d07f28b590c675e3c03d2444a927817fdc1d6a44c4fbf29dd0a66f553184ee64b18dedb97baf45285fccd382e11bce4327a5dde24725e09086bb3718feffef3497936080c744bd28e13b24eafefccd43f2e02e54083faa29c6fddd7da716f7cebb97a9ea435f8fc2dfa1fb32aa51f7a0f77aac115ab494d3b80461ad3e89250d16e6d58878d52ebdd2fb12770bbf1c7b6257a333de7119a5fbf4e2817e5d850e6b6de00cda2a8e05e5c99aa618098", + "e86b21a8483087a45841b8c9db05cac08ef6a821bcc1f46012cb80f740b2f97e41004d3c12943dc884b02c72f0b22656aa300d5c0574639d09635cfd2371cbe0b5b8786867c01ad22e6356d21b66b2f96a272eaea7e809ed444da63d98b95b67f95836b073ee7b3db0e34ef589e5f6bf37036594cc63d81a0f82e547775cf2fdfa81dda1815b11840aa27673b4faa033e855d77c67f893638a25d77cb8f3fa67f539104009235eab79d2d173a3fb9b10b4168e2102fe9b23b3ffa1995d26438fa6a32e8079fd7ccbc39d77baeaff81bc2ad1a0315cdb5004f8906b855fbd79ffbec9ed465a5104deece8093ed357134b69fd127cc4f632369b7e0a57a827f566f23e8c29e3c9d0a06a44f4a888b21189e5b670219b0905a32a5ef78ee9c4a018fa597ba9788686075b821078781b3159cf2053a659f69751419509f82a7b456c436463786bab", + "0112965dbcf3667d831a920329821d73cecf587b4c", + "13cd9faccef3bf682e7622d5a71a8ee4a471765b87fdc82f44e6c42d9150253ffe156da9778fc477a7e92b7766a96e5ed4f0755ee186c500c0c71a112b2b72c73411ab057c2f025f0debc0c112c6d3a31a1028c70a7248e6561909b032b4a84b8f52a4db5cbf2e25e857bfee89b02a59f6e64a04fc5315dd7d6720744c841d35b390304c86660587015966f1000b05e3e583abb79c3dfe26a164a5801c0f53f8bec2979a3326b341ce471e58ea4823621a4f9d60022c8223f339905819bd9f958b80576804d0f4ecabe2a2393e660f682427bac6ce18d8f5fe8f8136e2a115cbbde938c45b4bfe07ddac89efddfea97dcf1311e961a5dc142dba96d9bdb835390171373c9302b6dc9f1408d9b7cee85fb1dbd14cfd6faf35a3a75c994ba1acda9f051b9715462552943381b433e4d294431b0381a609732a9ef24ddc65d4bd4519f2ff1e60d4" + }, + { /* i=730 cDividendBits=2963 cDivisorBits=628 */ + "077ecdad64cc9d1331b9f596bdc18d3d8e14943b5e39a4d563efde471a8bbbf40e2274f024866f68674eae8fad11459ef3d0a9805e9dff44f32b307f216b6cea195d3f3b2ab7c2634ffd46e9e95b296f4e9acbfaea48e79dab8265c2239d896e6cb02d880846b105ac5916659f8d41cc448bd29337a96924fafdcec20deb5d8993e805b163da7e8cc9c020ce84ca627d40cc02f9d1e3500420fd89788736f4f974d5334ad66c92d234552d25dc1af73059fd1df6b8f949e5e7fb29680a2ed1ee2b8a992cb2a504f80455b4c0f42796f7c306458105536d965d5f8e84a300b89a7dd7ddfadd83f0058cf42a17880f57abd6eb3bb11af85df41ef97f85498e6e6438ce0b22b00f15e6079d4a42b701f4be5af423a5c42e1a3827e6b23caf852b552baaaa74cf0cf433d45461b631272654d05ac490215078e0d565d1531c76be93e457f57e4c60c17c3cf027b6d6c3fb6696bc1b2fe03f1af2ac01b07210671b8cf3a82803cf5c9319d1080ce278514e9eb4ebc1", + "0e08e42a298bc1f2182c48a0aeb9433eeaad77ad32aa3b7653d29e83176789a91469035b9808e4d52d5ef51d5f94a48c8a5e4869e3150cf0701bcddc802aa47c2bca78008f98dff8d4cd4ec5401b5e", + "88b7dcdf7b62b07e6eb6612ea04eff96678efaff7ba026bfa2629a3ff3929471045c307e2ae6f2a4e6b66bffbbaaf59f343fe32e21d21d615787857bb3743705be37a711e12d526ad2df480ce9308a71ae6a5bbd06362c19228fcd86aad8ea04d0d6d5c0af4950b6544be9858f387ddfc844b03a25ffb42a6faf12fd4d323a4c097c3d088b5f3341da80aa57fba8e6f1458fdcb336d71cce398a810f415d33de0f3b2dd25a24b585b32d5d24688c44ca89c75c88e96023c0486eb93306ddf91a63a5bac9c1c07cd0d285f5d5cbf1ec7353ea9c56df7cd4f30a9a57e0209bf44e365b9847df33533292e996412d8cd05aaa4d61c0e052fc22079a949f8a074d66d6e19f9a0ddad9c84c98e2c4b34046bb07873545dc88229fbe85c2f38eff7a1dbaa281e3", + "0dc10c8c3661a10420f4b7df1415d1878854aead6ba4e31f360be8b4e1c7ea3230e29ae875b23963d713f740cdb58989ed6ce952148058abec4b4dc1b57b1697139ae22cad7d0a8f3846f6cb964967" + }, + { /* i=731 cDividendBits=1596 cDivisorBits=1399 */ + "0a46c463760c12f2593e6d0edfa00879cd06fb4df3bd40ecf6351703e2d92e5aad596778dad412995196d9c6e9e6ce8fe509f25a32c93558cebfbcf9356db57e57101dbb99b4a775581b0ce8477dedb30006a402ae1659a9c0b6ebbf0b80879818b8ac475d6fdc7863a4bd1f755e5017583e5586c6f5e65561289c94afc0efaf68fd4ccffdc8f56820e5da4ea7dca9d07d4c044bd092db34dc4d153c6f5c47deef469c7aab81ae7697ce2fddcf216b1af2d19cb581459d63d29dde4ed07255a410beb96cd77fb887", + "7a6c62391114ff7e089dfbd30d1328c79b5a6c6981630cc2c2d4b36f7c09357fc7960d7369075881962269cd6c542159ed9e7da26b198ddffa5eab891b12d21bb7d6e7a53e2022433c3ab8344ebb4e8f140140385f374802b4bacfac98f5f9c6c5cd784cc84cfeb76386b6b6fab6c5b2ddbdccb17d8f2d755e05e8886022fa3d5a1929f270218b7e9721b25e3009bde83b1cc81f29f939bbaa8e6a879bc40048e76bd194fd8cde3be20617b177a6d6", + "157d352240ee802fd110d60c03aae16240ec3b7cfe64f5f763", + "20a24e574e97e6c7217d25b8fddce73455d1a1e9480bcbf1c016a6d853c9222b07cdc4a32a19c516acbd0bc76f20fa7dee213a997589e4318ab8ea0343ffdf7f2e2f4024616745acb973e7c15ce835960275e4702f87f6f52d61aa1446773616ed4f2db85ff1cd6a53504b241858c6809398e87788f07f1e4121014c027d462df2d8aa985d6388fcb34200a8f8f0fcf93c9576d2d99c52b08c2fcbce2246ff3377bc4ae1437ae1f99cbd068173b9c5" + }, + { /* i=732 cDividendBits=2119 cDivisorBits=901 */ + "416330ebb1c1e118b8e0632b26d46e0659be689c3f5e3c40327746d7db478c5fcbafc2473582b743a0f00eecf3e22354509ad572965252b78d046965f5701fc63fbe1132cece4919fffbee089ef1ef851d5f9b5d785c3f84e92bee132aeabf03f6d575a84d1e5a9a616ee473d3a5cc84db67a2464de7223d1fca13985af7032213ed71dc7f48c1840352cab4fd5158f616aec306e7de754b0403d096f73ceaf1330800d4ff00f1984d1df067aa33a69b8fe0ec118181ad422a94a624e10eca603a80da5daa65cc198cdf9d4fa62f8fc3a6c0e4d2507d5a675fd34f601ff4cff95b282b2fed8579c4eed052752c927e060032b14547fec8804c233a251ffb83bdebfe7e4a231f4ce6a2", + "70746d7e9d35ba22301b5939772aa9fd67662d3e25461542449300f2d57761d4c0018ce2e86ed64317228b519b72f508cf70977b366529f3538ebfb47c0aeee7d75d541e75295e9d8b4d83417b505cd4f19e46cd851631540eba5577ea5efe62efc81ee8115caed90c1187874697eb8b", + "94da455f52b5df107ba3a4e6da24529f364314afa1939960c998850cfe05a1501a3432d3b533cea38373fd99fe81a7bf95460fab5676258de3b7f1a0dbcb0f0e8482c8f8694f2d1cc2418abc848b89aefa47d736164702c0bac94b0bb4cbbc72ca0caf4533689a79b96d63cc2c19e468c721a46f6035baf20657f9ea17f154edeb843ac213e6be9939a48402f2f84418aa1e0bcb1f3b287858", + "51041f372d960ac2e5dccb0345ddf3949d69b93e7bb74339ccec5a5034f71da63b1c6d1df7a10fe525796bbdf28dd99b1bcb28ba9a482ab5bd5e868c1484f7aa3cd2544a6cf0156ad95e730d704718f8548a661f054e7f3785615083dfc3a855ec48748fd86f01e2d96280b0cdf2c6da" + }, + { /* i=733 cDividendBits=2343 cDivisorBits=1954 */ + "69cfb5ec483f1165cd467952eb28acb6f8075456c7d65a604a5458ef8cc411aa12085e3329fc1b71825848386682a5f971c1a2f92a40c9ea146f957c80a0fa352c8d0c90cb0d3bd86a9a76eecf37b8bd8d0067b6b2f912144d486d2238bda32c3a1f5db1598ae1b7e27ae6799a10f177a186a99aeae2ec110f8eb4ba82aa2236a5670d402ae94d3c2a99e0d5be3720400563d51cb0a39e9b9448bd682192003161aafb2355e9a4cf19bed24630c6b830d59a29751fe97ba12b7b4e75378081bbbbbcb3e93682fd6ff86bec521cf9dddf133137f079431c514a661c36b15960d87408197438f084294e795aecc34302dc3eb583fb58f9f308863bffc69a4f8f69460e296a8e2915b642141920bdea4b605996182695087cad06262a14f94aaf72760346f6e8", + "03b3152074aeb50c0c6c5119aacdba3d19e3246118f0f949a9fd09555547e5a8883c74a927a9d32673d1d7a29316d78c534f2cd17d3494e42786976d00b59eea897a24f212092bf9079cc539c8cb1ff8b6c64cf5cde9d525a3472d2e4f86a890b386a2dacf691560563781edcdf1c057c1ce2c06210d834328d11875f13df5939d48caf82df00b84ae89a47cc0106b488d820f7fdd97deb3eb1adf16f9a820658d09d37c934eb1ac7204e7a485c9a3a22afa576668c3dc188df587047a45ee05594ff5d530fd2a2e1c10b1540c3ed5879c602c3e0962bb36f63000ef0df2ea5b737fd60974c303fc74a8633fc001fb142f15df4b83", + "1c99e93423d5960f0a02f2778b1f67d6169cb1afa66a75c147331a85f878c6322b72bc055a775e1037eb8e551db57bfcb4", + "01a8dc3f6137bd0456c2bd135ff49464e9052ee5acb84360230d913dfac0332faf43224d842e4e21ec1fe2923d9dd45c12fcf0de81cf7243ad8585ce4d0c0df8d7e55b4fd60c531c91f261a29f8e2a8f1c40eb7307eea581e02bb8e7502af74a42f853d8139103145f0665d1ac77047d6215dc33b02af6b68b2dce327e355f7e60c71bb150bcc6eeae76629a70a7a690dbfd778109dc305bc5ec52874f7cbf7f6a9557740b2bc8c791363956ee26aaa0101007a149134f1c03dc7716596bdba547c50eb4c51eeeefda125b8873da8630d1b2e16c885847c5c2181c43a14b08a712d87648dd4e7e7ca561d65631ff28784eecffeacc" + }, + { /* i=734 cDividendBits=3441 cDivisorBits=776 */ + "01ce0ac3b2db44bc1be68dbfce37675e6a4fa7a21fc546079d0a2d6808a6e4d7b5a8d3515c41a967e86ad5ff38cade2799fa3b2bc1354eda91ab56536fd5cb827d1171b907500395e7d8f0224d59f0b03b1aca95d581ceac0cc9ff2445425fd3b367b85d5c62343a2aa8d30d429cba7eff38a48a5d3de1861c92036a72cca9cd1c0b6f687151c9d2a1bfbd10090723ed9da8ac1971156a0977b9a265b24d93acc59cab4c5ac0452494d73dc83778e6343e3975a2c61aaa8043d6a82f57e7bb27df0361aae67e6c429bcdd614c00c847f21b8674087d9107adee40afcf45c5c5eca392596c26d141a296b78a37b0c402d4b0ea4f52cd24e3ecbaa916a715c13305c6aefbbfc6f804fdfacfdab5abe9c49eec09bb23525ec009aa15e6d0199c878d9d44d1fedabfdede49988c492371bc07381fb97b68837e617f2d7abaf2b67903c9980b1053e6d4e68094dc0699a2624dcf6911e5c548564dfb7928f4b4001f75851fe56daaf46c28478e18c7262c685cc8cc4e5fe8d021e91dbe0b0e47037130d0cb4f537ac696fcf6be6d86b47e9684e7c8b56a190f441ec7154007da92991c9727085218c59a150e784fa8c098e", + "c73a55b97fe0a72b0a879d296ac55ebe154938b480b6cae93150bef3aa1023115aa23fc586fbd9eab69a5431995b7a6d9bb3eb233fff8fe72810589b8e54b845eb49160e16697d19f5d6cae6c903fb7c4507dc85b749bf8f48e63e975b358856bc", + "0251b4b69abb127865b2f115289d138c0f838f1f4acfe91c940a0e4d7be474809aace52571e87611d4ffbf8f92273f28fc1f976b136cef7f5e3bb70ebff2d058015af870ff239e11f696bf20b8469afa9d48428854241f6760bac5a746bb95fe42750c37d10d473d896adf0d353b2403406f514f583dffd997de647c278000b8f48bc1971cccc0a301949ff0da4d6c805c13960d75165bc1178ae743977e91776c21d5c75d85b060cb15fbde21b059a7e5ee86b9c2771a8e07ca40bf0325840bfb68fb4d6238e1ff7f6992259d53277c84527d98868a4fd4c71e4776b6e0f50190653c0a7489a29bfb44bd618004ed252f0c083d1f2550dec64bdfdac5016227bd7e731bd5d710c22df4423f78943e340f1dd3ae23f7333030507129d5d5aa935e75aea758a2cade41940b4020632ac2c8c60491109ee7110eb1554e27c25966f7fbcce660e6dd95df409ced3e19", + "0d72bf5d2f87ca15001db253e3f22c3d9a5bcf0555ed494a6f1dda156dc6c169759575b663e1c79cf0b5647bc63a389581e401b7a42c6b4786b7f5f6eae0214bde5004582c0d19667033309de6383474eb547a442ef93607b85b6cf192df2e0932" + }, + { /* i=735 cDividendBits=74 cDivisorBits=10 */ + "02bd1a9c07331a2ac279", + "85", + "05457e49326de93948", + "11" + }, + { /* i=736 cDividendBits=3831 cDivisorBits=2012 */ + "68cc4367e424e7e85e27d0a1bc4b586ebea7a5e56da82c8d97a9c1586d7d14b45e70a5cb3d349696a134e145f56b29819768179903230ef7879365277040ac75604efc50f7d3cf3516150b4dae944edb2b088b7e4f081761998c677679dbeb496b8e8de14bc281e057b31247abe25a7f597dc58b92d28fb9b86be2b50b389cea5b740ece686e7f94e7e9c0833e81efe3fde914ce5aaad6387d66cb87cbfec37426ffbe85673130e4f26e706ad30ab6fccbecae1299da4e541148afc49823dfa56b253c805709818f1ccc8ff803c0e7c0c0213a2c68e031b7f7e67236e0781ce47c9b01836bce4149d63f35e21b0057309361b982a02b2f78ff24f2146ff06bd9e0fdb767927fe5f2d897b35c41e8686f136089286303dea8b02b6609c3f19a7a56ba28b75b6b6d7a79c73b192ef95c50d3a96a522f4e4807c505ebdf2906f4b398fe4c4c54b7c3009c45c8077efb5b631d861c27c481a468e3cd7336bcd4190a351a731c41278757e43cf4ea047078a2864f57eb6e9fa3e8062143438ff84a1d7a9f9e27f23d0388cc2467607446f1eda50d357fcd9d75bebbec4486ab1ad47da623bd8826a948ffa8862f5086cc9eb5f4038eaa61756a26e14ac08d0cdddeab1aa22aa0f003ce756acb3a901f0ee64a6ecbeb45a9e9cafa2de9134adc9cba", + "028d37fa59d8ce644ecff1d8cb58ecc8796ec2181e269b9c481c85c83fae6146e240508452b9008674f5a2157bcc934488bd9755af06147a80da79391111a3a7c32e65a1be90bede257bdc9c0f08d0a5f51e9c856e22a440b2241267ad1f67207a68e09d5bc522f40c90ddff21c5080fc93d53fb7cec8a6b5fcd34a96df6dd6ae1d705fd4a0757878ba60d3b75563b7015c549cfa004b953406cc0f8bd62ab50d6e75ba6869c536eb60eeb0ede9370be56c242dcf34c0c875f6de7498d885b70a5cbe4ffe99a1a78e8289ca65b53f0c9f43538491005cac6713bef6ef1cc2a446f4bec5342cfb173ccadacfc26eadc566630d389640124b659a48414", + "291224fc65d0ab51e89ec270668d567a1b3429396f1da59a48edd58fdc35359fff69f9a777e77e532da2d900004cb40b1c34951afd480070035cfd6d607b3699abd73577f9b5984338fd4d1e57950bfc6a4dad9dc6d8d58476c9971386dc927e73c6281a2f5daa7396585729aebcda55a3e24bb66d78f82e2a1eac4cc37eede12fe43ca72bc276d88b2133d56f733118c945eeb15857aa0388380aba5625d386c29aa21689ec052879b704d93f639d5f0f9d3c316bafaa05e250a5629d6c271bcc7e013a6e47a3e07ffc0c2b129ceba941dfcb812d23cdde5ce795a60ecd9a5beb3eef39", + "010c1d03f47bc74c163f6602a85f96f68a25e5a93849f866cc82941578008489e0120001088fb581ca2c7a209a7efebbd8d31143a36c0a4f4afc3c0c74d1f91c4d7b1109504f363b6f828af8c5cbe58f07338d73d90bc9953ee495d6aa7f7da4c3f6529940ecd4dcd43b7aa337fc78eed0b805e7b20c113fc8ca30d56a3e8441bf46c231af895aee4c1cfb81185bc1140d7cf86ce139429fddaf413c956fd70e3a9f0b26c00966410298f80d3e7686f84e3fc124ca0742df201c55e98b4aaccc6b0cd4668f2a1eeb11f03aa704874a43f6a30a1b185c27041713e313359501ba32e58892991339e6cb861533db9203abba36772eab3fc89665148846" + }, + { /* i=737 cDividendBits=1542 cDivisorBits=203 */ + "348acde9191e7e592679b94337af553640c4f0dc41984f47ad9a78319f873223dd240f8f1f1f4ee5e3fdb8175538321d3054b5af0320f79eb5fc2cd244b0f3e8f9565f2c3f310f9fc920fb9888b0b0743711e093d1c518dd9cde6e35b4c138f2e390d31b8eec06113b46f15d85379de972dedaaf36489bbf37d8bf0e6c0d58f7f95829544b4f09e339a44498f0cfef5ef571359cc7133f2aae707b94690fbd14e7ad28457651ba857b0835e966dfeb62969b72858f95b09ee08300cb5d9b8b87a0", + "0789e9e085ae2e028de8baa8d34cabea3dd2b69ab562c84e8ecf", + "06f83a603b8dd719086daa68d52bc758229d520486970b6a6bdadd86c14aac48150db66e0c8754b2f2a0dc471d9900f8064b70bfedb20a4585f05dd6f4264e5f04c1363e23ee8e2575e1342ccf197cac3d00dbb93f4216bd9f69f66a769bf9e6d04e8cc7f4af41155b4469ec3e24a39321aad4a331190fb25d92699df37e955b34a33e4d19986dec09bfe4a9538c688cfad0988b7acb808d76061570cd39e9c5eef60b891446907a", + "01d67d3300a63408d9a6e4017dcad2257c3fe77e8f33bd2d08fa" + }, + { /* i=738 cDividendBits=661 cDivisorBits=399 */ + "12666f3d26da0e1a0e113e714a33c9e22d571338aaa116e1e5a357fafbf32004d408c37c1f0099739798c667f91c118267c76829a97e8b9561227fe03da8114735d288c9e7b92b0fa7c0453b45fda8bfb36972", + "6a943417e49fd6e2ccda3026ba24e3cc893e1f5d5919a8e54ae0517c6fd82e186344f4f0ff8f8c911f6d65eaaee948322b60", + "2c3259b02d5f7f07edd520eebd91dee99c5e54cbd53e33c1f715d05d1128e417e4", + "2995de85c62f346846b70a1ad76a2b6d0bfac3bdd3d3184a7847873da9f03b5dccb7714c1454196721ac02685b924f9f27f2" + }, + { /* i=739 cDividendBits=1781 cDivisorBits=1372 */ + "067dce7c3e7b56de550b7ceecb4b3130905882c4e1471820b33eae9ef454a7090ceb3dcaad971b45e63ced36b651ca217d430624981e032c907cfafca0fdde8ab61b02df76d2fb534128efdfbd304d163576dee5f89ec5b3cd0c90514239f75a8e27652e1013983b99644aab353a109b07ed4a0000c7691162a582eee3b05cf279c826cd7a5211abf859651809975f94e93ce2190c900707696281b35a64cffd7abefe75c9b519b3268cefd13b47ad65107c307b3a38cfeeab13b2ed56404d0a073a11c03ccd7c25988eeeef61c8b72f6a5ec1e45c36462d5f268941285c95", + "048ce4221e5cd670d363d8480b1fca567706da86e3941958e95fdefb70fd79518e8c5395e29a103e977e3f8be0d467fe0de2646a875dc0449af03ee600c758aef30e08ed7b49d6f06016dc71560d57e8fec5c7c44c4aa43aceadac506bf820ffdce0952a93f8608f01d6144c2ef95a25902c3091611c15e4ceba95e6b2c0b970113ee6edb789303ed405dc960a0684477261cb72ecf2f245bc7a80021d639cb198eead76db2bb671f0b70982", + "016d3421ae3d63f2d3d4749b3bcb9c4464ecefadea7508d457879557fd9625729e08569f9cf41160ef2f319469b0786d1a95b7b7", + "6e325a279110c38484a11668a8b080f76c307a594ba4c54b8ccf838110ff9dd58085a0e8899d44e9cb491f6cbdd8570807bc38dbcaa8b75b82f4e13844aaf2d6ef5a18c0aa2b1311e72373a90ca60920b17eacbeced1eb29826c830671b86f664207d60ed607a77593426aae65f0732a7d9a6acc162d530c31af9d961212517dcafd16ebc68a2e7ed7ac5b362e4aba10075c0856e3c0d5490bee0914bc698aa29a356c592c9a2999daa2a7" + }, + { /* i=740 cDividendBits=2852 cDivisorBits=1642 */ + "0bdd27634952b3dcb460acf8103c548276f1090232f984b2eb7b542b2a59523f59255a0afcce6339bd918fc178266495c90a78e5e87cb5bc3152678d5c654e152b211484526d6bae195f3ae5a0dbb3b27ba4c37c9778013efc7dc90ccbc9be4d1453e04d9b521b641b5a71f6209809a6c6de9051291a02da3d5cb8832d628a1a3c2e20271cc2ae2269eef5804df6108a8347fcb09b23d482f82a6662a04803c6fc7e16c17c48605dd65b4ff88540a9d47eb41d82c16ca6aa5f3c324116181cd0d20e9798c67c6b5d2ff4fe4d68eaeef26bab7585a9e82126afc96d963c4ae633c51af74e697e90da066e613975674f2aee1aadf7cb921d94ccc68b932ff1bbbae860a78e47038e7176b4f6121958b2588f05c118eec2adb3e1e29054224544ea0fb36305153267bab21a657a68c794c5c666a0a732ce3edae1464f8825508786cc165be750ad741e52830605a428164ce20f7184263904337f6812226ab64ac6bb6434b64a", + "03b8b875a8ec0565de9fe5079131f49b572facd68dfa787615bcfb8dcc3dde05b416e740b4a222e81c49ee7215287c6965bd682f10b679232c255a6121d6a01150d8dd83f399b55e0e4e308c53255c541e6560615049263dbaa4fe5750b7ad5c549154b3364a10027256f6a93d929e620254ca7d635e1ec1bf3a889990edb4b635836d20f0f6d7a68d55c4dd8ad187fb9c3a6247d23aaf8b5aebba9b539e8be7d3bee48ef81251efe9cf43ee655f6f64585a4e4158cdf83c3bed6fded524648edf4bc8f535ae7d4d5ed0072fb101", + "03301890d19d663205e81b122f0cccaeffc8d8554525802291ec0873766577009ec0ffc7d486e9ef823532213ea1e12ed47061abf9d894374a2abbe37257a1757ae5b3a8de4452755d531adc204aa5d04190ec681ee8d97047fcf3ed575cb3f6225bc70dce2e7b0eae850576654c6b6e8b3d06ef0bece159d3bdf1cef23c0c0c02be3fc4260441f756cfbdbf7db2d749233268066ad01696", + "021fa4f368e2832c722135ac162336666476dbed849c49adb60f76c1102389ede4369feafe99f07283a287069e94bff9e5e875372900e7b51a6c5fece720905fbdedc58b96967eca6320f34841d4cd2d438d051c3cecb1de56ffb20ded5a077c68ceab9215c44dcef3026f9f5d232680b610966413c2951c8826f87c74e61797be581f4d4ddf077a73adf7fcfed5203c1262db57418c63b102470577e0e9e7d6c0a42bfac861a00b53a69b1aecae311bfaa6c003a8755505722ddc2de6684ea6039aba3adeb138973428da3ce9b4" + }, + { /* i=741 cDividendBits=1700 cDivisorBits=187 */ + "08b513a79d05163f98537ff05749bd192a727fb6a9432f0449dc31be8836a9fb805d45d2341acaf67eb100e7f69428e09d8619dfbca6c852c0a01b409277115b0ddec1b61c82c614bdb090d477ff6e85651002398fad79badf8b710bbf66d7f91b104467701f78f5e0ef6756d5527c9ff2eb479b2281312584b69a2e2cd6e476367bd5d54592934acaef37353bd6f13868da0587b57920ad0c8024772e466ee3fb377b8b6007d9e521a733ba5f296b08ca9a315886b38686a3b326d61ef2eac05ed9d899adea604475d94540474f6834f975fb467d", + "03d67ab8f10888434e55289f77c6aa87e0e313e08fbc467f", + "0244d1ea186e96e97d4fc6e807bca4c3c15f61bcc066b883dd05e4ddb514a1cf7bc611d775ab397581e7e46b10b70e8f04a094ffc588db9a1a9ef41d5a807d0610ff098f8c3d17fe80c5215a6fc62ca7ecf4ea6eaee4ad0b285b075ee85a5d10a41b68bcad20edb03ba3910d4ec9d9f3f93c7888887c196c0250e390c41908507787108654ee51482d8609c890376c95909e302c8050e5c011c6b280eabfab1bf74e00b80ce643f94ab2409f1af2b99eaad45fe393e6449fe6f2830f30eb", + "03035ce0fb7e15d397ce4754a377c3b8ab5358b9187dbfe8" + }, + { /* i=742 cDividendBits=4048 cDivisorBits=996 */ + "91691b3c53a34d089668afcb6e6e953075c8eb8c4e662cab774b7b476bd039cf298db457f3677962cb42a986e7044ac7a4d16f34036013a2ce9c8b95a9300abc3c70969e0f5f808dc90a9fdfac552973bfc0d94449769328f3e53cc9b976d7e25128bf762bc59d5de5483671b8dc3f721b429c488076d05480af2f477fd5abe8db815837ffa941973e0e92f697e5ef2d6a70912fbd09aaf53211759cbf6146c605c693fc130e94077d230b3322c29017c53b29b3c0cdeb13088ee76006e9039903637ffc70ba406de2c57a08fbbc391976847d43fe7575fd4e56e810545a2a8f0d1c6aba7e3850a880c63d74c7ffad4c50b65f8de65d350d21b1e994756622a00a0d916ec555e6733491071304b7b86447c177b4423947e1c87de672a9ec32b6ea53523e94ff65f5f92045de695e8b4164c7c3afba9b6d7ada7ff15f66f08b6b5666294b438a2d66817d7a7294f36d7e7db0019214925872135015518f94126b33bc9e4bfbcbae8437cad2e39034b206f1314be5b37adfe6d59874a5435c3a2a41e678f7c06bf2046aa913ac37e6e7234c93a3081b377ee1ab762053c303f9640993fa96fba81b9a398aa1394c6e01e836f5d14c316f40632529e7551344b4b36f047bfaf1a081754b2517c4732a7e6eed1c68066fa73af28927e332b5d4cfded686996c4a0ddc5eaf0ae5d8b80a975f9a31e3457ea3873b5883", + "0b989b3984dfc37b296b654d402b03e48e1468a8d4b23d689ccfe9c78ef654716732a02f4e5b258b2e852845e1629a4bfe45d7dde251e56cb088d0e6dcef78a990d6f966c5fca5f607b4751adfd75b7fa1f7bdc2d33e059cc01233ef76c8e2542da1cfd288c4401fb887bccad7db221b30ef47640b8da523ae1f18e26b", + "0c8a22919b64bfe9aeeb6d0a3a2bc13460d1c50dedb2f956250bacd0903d94da7c1734254519fda6e4f3b3bd9a73feb151b23b49e2d7a03ceabebd5f4ceff671469103685013eb98450b10d2cfb0aa797dab68f622af661a4a10014efe1b02c07820c818e4712fae7c69418411433f89dacd8650ec3dd2d298bf8d047a7ffc5d4f222da3201690c842e1bc33e8b0961bf76939fc8d9216ffb73231d3205b76f7162376c638fb4db7631d57a743c1322a9835cce36674ebfdef6ddbbba88147e53e151c378f99a43732af8107a11014539488c89955ac814b7f0a91eb0786867c1358607a3e29d12d906c68172957500eb866446b8b801c1438631b0948d484b60fc24348f3b248327cce2092c906c9a3de8cc38cd7167f31707a5b9a952bfb673b94bed60804146421ac16aec240a5e1759e50d53db99e77f1c57947a805aa04046ea10209a4f8bdae6d4cafb0070e767c9ed8e9350dcf34eba4a1f9f473ae782d01b8f1d84292318feaf5322c7a688e10ac846ef1a992bbc4697da66472", + "01335ccd676cb6806f03433aa18cc4171f4874fcb774e4ac226b563d565da659a2193c9fb4b416b9306022ea9d82efbcd5a13bbdec4a541223aa32021dd82942ae138e0add5ab1a79a5dae7e921a7bac4f36afa8b73fb6d8616b372735434ce8f8555303e3b62a1b731fb1ba6a67b078ec5251000becfc7c5fe552b8dd" + }, + { /* i=743 cDividendBits=1851 cDivisorBits=463 */ + "02574fbf9f5cab4beb94766302e298eb5a3b52dbe032251c8ff21a0855ea3fd7adcf476bf1c564633de44bd771f4aae9198b31e84a200d8bf601410193860b1a3e9eedaf49e0ad3350a663dcef1254f55911a2b632c90ef6d17424d8384dfa890e60ae58c9b24d7c597cbac50cdac1d4b8e04f10dcc01cee47b80bf18b0d9109308d67a8720cd927de9dc3dc89cd7d8204e5fc3f94f6982d3e5fb00ab936f825aff26f44e71f443b02a856df08f7dde733be06461ff5dda7891e013e612ef5b57f833a724be6f95e91c87e1c81992503aaf35d923bb97a3ba29c131d22f47a75984be08ae53bc3e8", + "4aa70287dd9100227cad0662b490724d7cab5055326f0b59fec5905302ad7a7330dde7bb06717de51c9865b63a264fa1bc06d133ba751376d813", + "08072ceeaef66cccb464b18f60b4b4c3ac798dfd9700897f7288d43aaa94609245f3f32e627071959db433891ca08bc79540403a0191d89975c2f0ff95a8d49b1f97d66672639d14f51b999437e39539c37db7661f3fcbb28629f41ac3d8889f28dde153ac6869165b6f8b31263e72efc014fa7baa0da90d0abb26acb680d5af3b5591ee6031da994827bd31c51fc5a74c7c195ab87b63dbf1a60eeacd089cab05ee0bc8a00b32dc29be36a14f5a", + "0755728f9104197c60e48fc3c544c8d2594c8deb3d14b06eb90c54cc590cf4ac7b0e407d44e19a54a627b961554425fd8e7b3eb279f47ad2f03a" + }, + { /* i=744 cDividendBits=30 cDivisorBits=9 */ + "35c3818c", + "0174", + "24ffa8", + "016c" + }, + { /* i=745 cDividendBits=2498 cDivisorBits=179 */ + "02573f9f20faae5bd35722f292c7cb7b3961388e0bc8164379b9e490e54b3e48e4d6e7c1607cc74512541ae21591373ff52e472a36f37085722cf5d88c111269a7f2db576476c2b7a1fc06f13729359ee39468cca4f3d43b8bbb01700d967c05dadf5cf1d1d72d37bd529ca7eb25e8e00f559540cad374ef5a6fd66920a12f6a34eec84fee40261d17aa226e3a02b8a5549fc430c13f126b522d1fd1a62ef39972deb4614d5d63e01f12a595ae40d28737ef599c78245e94dad9288bed44fbf1260d24616a08b07acebee7bc93d2b7dd0764332bca0698d1202bd7edf751e4641f393a6e5292c650f23fc5405708bdf64efe432b9e2f7b124f218a0c3d004226f075ae16ac42b46bb0c99793f449404b8e3ca6e5c858cb5cf4ce3ffa41dd11aacd715e51f050f5a520e402fb4f4a2c1f6dc45eddb37c4e63f4", + "053945a9a47124a0689233721e0dc861cfa38de112c2c6", + "72b782537c6f663d0a764c3d4e05b8ba15b5451e63037286b007290d15fddcd3d845534778b74bc73e7ea2e460fa68a91750e2ebcf3007235392fdf103e3ba18467fe54458273d8698186614e3c3315dbe36dd20eccf11be53a7e6e29dd2673d244d0f8b4e491665472460c445a09b40bed5f958d4346ae530b47b6bf4b784b318f534e129c98fbd396f70f6a4e3027b757f22094710f66f0a14918bc46ccb778bc4d203ff55b070b6826f465c4289d85845f3e4b57b1a110a3ded35b9aa00ac75e4883cfd3384031df82d4773bc493d78a5d83de53f90a0b2dd6fe2fdaccf0883467809e929a9ef117856bc2b0958f6c4474e2c371165e10575f81da191f2e2f43134e804fe2120cf491ebe35fa0e0fe6c285def0cba9837d1a58fcff191323ba39", + "a8d86cdc77e8592617b2bd41eaa3c673f4396a8b29de" + }, + { /* i=746 cDividendBits=3831 cDivisorBits=646 */ + "703e3ebae69c1f53393ec0469578f586a31d2c35cc3ce5ed054d7e56d16da40658f694781d21fbe6cdd86196f4aa6f9cd2181a8cf20f7edcc4c6d19c4c88410e9d2c9628f857afaccbcf197be167a36331817c4724da44679a4530b94a6947a78ef123a86f21dddf72d889c609d078f9933aab51c34e7bf7b64ceca3cc15993c46e0eb33f90593c4266146e5927f6f2f5a73f2d4b5b54051ffbfd0f01515bf53d28a38f4d2047ea2c5e30a58e2bd1c2eea589d2fe05ecb17f23bc96f37a8250d57e438ef0dd9074daf7ac6ef52d85f037cd02f40e9d6350f2527678d5ac1f76b1f0740a7ce68775e9541745a4f68b547f58885e50baddfb2005fb0c8ea2dfe47ded28dd1a3813fdac6b012d4898fe25d89085a544418601aebcb2614983142ff765f344d12d3bf0ffb094f1a4f6f09e95a4b0d6f5ca0a84d6132a6d6e7597c3a365d3305f0e56b57413600e09d5fa2ee55ebdd36cba87c0ab99bd535a9d0f582a0f5a817bf192b35144c643d9a9c279016ace645b3fd5716ed2e6770e3c2e6b67acf4d124df94821cbbcdb7b1f6df4eb94b7d4a83e44f77c7e1c8fe718c3494869041075efa93e23a63605944928f641caffecd92900357b4f732a890e2cf3376043dd10c938446435b934fb22ce77d484710ddd105564d30f0c2a15abefa6", + "3009f7bbb476f85317e6b1f6e3c6f03c97fbd32bc859830575f65117b9b466d729c8abdbabcc6b2758f02d2a16f1eaebede92fc647066ba051b588bc731d86053522b807b51ec261032d11a2cf447688de", + "02562518839869c4b01315f410fbd63acf6f5fb0642eccc93dcde3537f7b1594f10ab94edc4204d501522c718f6018fee9d15438e8486feb312c0b255876beb4377fa88f79ba0a7aee0b09488b358e78ce535bfe3cee6633f0a9cbcdb093bb9636ab527a237ead6023dfad81c46f189a385af0e96652e33e878877c7871da1e5970ac0a23da12f5d7250b977d991d10a9881cf5e74f289a3ca941e8bc2e0ba72797b7a7fdc594561332076a7c142a42ee096759f6df43b63fc3e31cae315f7bbb3994a6aeb790e31ed4de0b99422509ee77c87dfe43a2fea651ffffbf54ff9f897eb425864fb845d4283ad70f0c01ada1aad4ef3e2c151b7483b7bad0465baf4bbb33feb122ac480fb672ac505dbbd15dfbb07b298abcb6b2c568ff15c6aeb7ed0e8c805eab0d14925502841c669855cc7622ac50508afb841a21a1c37dd0da6901574a7fae979502741182771415fb8d48551d56117181a98e27381d1d7361c10c79fc63f51c854cc92be7fbaec2e398c25a869bd9705d045adc33640a80e756f14c8005225c97285a23c27aef916", + "14a51733a2a7eb4297d323c93ec26b2512368d3ca8e19a1ab5f8650ef389be4deec08199d4170d58e16a71bf8b940fa23ef244770146b3a41308ee3367653a98c0596c16b566af5dc18a264d500f783e92" + }, + { /* i=747 cDividendBits=1430 cDivisorBits=180 */ + "3fcd0e9616036648de89a666f65bec2f5a292ef992318bc7cd6a62284c5deca7331ee56a7ec891dcf856a056b3ec759e114cdc38556b9bf582a7dc4a1bbfae763bceef8241665aa4c47800c39648e6d2ba0e239d5cd7a73ecdb5010d25937925a7327176b8a5756b818221b5040f2b8b5d61966fbd219c37801c64f0b2807bb8919ce2c4917980aa0dd45e118f9443797d82dddccdb1438f84b176895c31ba6a08450980daf695a3f3d1d0a4aa5e1a6286ec95", + "0d7a712136e58f942ccde97765127c5bd8fae2def397e1", + "04bbce112235a5845db926328d4b67174802fb5c16aa8323b9afa3635442a0258678ef174baae1410bd034a76065da29aa658bd815efd6c68fe69b5b1569630db1ceec6cfe6e5a049b8df35ff72792ec33907b3210af6d7db29e932ba00cd4c2aa44591c3326724bb509efbc0b78fad376393453d77b335d36483a7fc4cdbfba48fddf8905d52c0d97fbfe7b9c0517cceadbc3d4a00afc7a8d88c97a45", + "09b0f82faaffc34e9c695ba6f3a653cb0449d56cd4c2f0" + }, + { /* i=748 cDividendBits=3299 cDivisorBits=3047 */ + "072f73321527827c7e8bb5c1178d047835ec0f1cea87ff45a47e75bc9a5bfe99a6d5d08488f4500a79afe031125d9814a01b2e042bb98c4525676e80d3488571b4fece5b25842df213a3e86c37736be1832dd553b2c75cd23ebbe1b8a9a99af2cdc56f85230236983e82287ee4488b39786b64478c3828021da4f2a48866c56e57c8013b6d2bfe791c120be03b3b31a1a1fa4117091ba3cdebf5e6d37bf2ff37eea9f3f9b47c8d86c91839b80ea339345466fbabf1d443c7bce60948cbc2c82c5c9d79684c3de97cdecafb7cc22e886aecdf6c0b31a373edfc7bb8d761f7be988c5ad5f11c826537dbd29978a8acfe66e8041271c219cd3a0d9a50ea1b0f4942bd5cc8b5c67f25a0bf1ff58e41c11526ca6311b93261a2e5143f1f2365f1a9da51154feeb040a879d930b6350b0dcb3580764091122ef30a0c999b8206e30838bf6fa27e671b7ccc29df089ec8a0fffb6aaf3b18db85288b60a2bfb4243b2744d02977720dc5d7e158ee9c8d5dfa46271159fde6de231eb7a1c61b2850b797a7649dce92178eec00e3a809f3b5d722c53478ea4cacc2508cd968fca268", + "7a52d83ac950035d2d93708e94b1c2d3359e0c5c6307100774a11d78acc771d5f0dc0395969ada68d04556758b732db3520ad6b1461f9c2bb840abc1c83805ae5944be6aeb4476a0d2700c3a2b77f2048d39ebd4802083a604e8ebb5b5592d28b456edf5ff8b4e202390671b7ceb5285b6b0d30beca227c4b6a4fed4601d9aebb73b552c6780859695378bb5f369d9dbf971df5e823e60322830ccb5ccb506546200d63d64731e87ccc739c626f303212bba2ff9de1fdbeccfef94844a881bae85f8ebc7dccd928c608d76c89ba5e839d19340346d851de1f023fe57b7dc50aa4b349fdf63e818383e5a65364be023f82b583c448708e86075ac9e1ddf884b58bdba7c2b71094d36a21de22a47077b2abf7dc3fb6ab179dd0907a009b2422fd48c0b553a14cd3d3aee19f2489cfb76c728c19031ab514abbbf5df4ad102a03ff1d0839bbbcd5a1cd8cac18d72760878144f733bb273ce29af5bbc749c390d07cb1eeebdf4b0caf4ada9ebd0f27a083b85e9286f33288af7368f51aa3c5", + "0f099e3e963579ae8f5f5608260e2498f20431e4ee5e718cf0647ae32725ce07", + "56859b8be89db60804e06ab6b158cdfcf35e072ead0819fb5f2bb30e6b477d1ffc073d8a09689258d1984b05f3512ce6b217294a695a1856bda65f38a5b319276dff8678d5bfe1aaaee7a7d806fa3cfef4effb01a331c32d9c001ea34bd7a9dd13523f8db7812e7e13258eea12898b08341ceb3d13cba7e0ac7972a2442d8cfde1caa39f5397df77ba143cb4397c1c20d27fbf2988febe60d07e3ab91191fe941116349444d5c3246c916d300ba85cacdf3237a384ed186b662c65286be277fdf08db922ec296385b2bdc4c5c3c275fd364c2f44788fe4b1bada60138e39624ead8d104270abccf77f9920dfbeea3458254cacc30ae84439e29ad64d40d933be73a84078910548a147be18ed4e6e4a921bf7d854b7c77e08f411293efa75109b96cf27660f58b40180958a655fe8cdd92ff3d29edb3076472fcac1b7c30b16f31ae6827fe0cabc8021aff43761342f6e1e18a90a79aa6d430350fc4b520a972cbd81533b1e83b3bdd8606da3a875498265a5d8e8d079845a439700a205" + }, + { /* i=749 cDividendBits=647 cDivisorBits=99 */ + "1be4038174734e9f66ae9c32c30ee4ca52551b581fd62eed1e838da850f999164d4119ad21ab78e105b87b84986b00d5fe0784c733a4f5c3a2f15c31c8611a04a07774a28aef55542aae70910eb963a9e5", + "015cc5ab153366a62b49161ee7", + "1478cbac631be32ebd16cc7fdb3175d7f624dad0b98623bd6bc1902bacba4cd219b2fbdc677641f7dca0c2e555e2c9fceba98402ac962d3809f31c68201336c28992e8927d", + "6fb8155239a84cf2ac9ed51a" + }, + { /* i=750 cDividendBits=4041 cDivisorBits=1351 */ + "1097ddb3e2a7fa2aa42891e2521ccf735a8b452d2381c297cdfcba66e2435fee9cf4cda36807449baa9572f67eae98e5490c0d3f8f5a5360d9e9990951fa30e40a9214748df04da533e4cc032a398f6e33a7d4f18ac8b2a4eb5ba313fff5cdb1749088851a6fbdb8767dff82521267c0ebcaff569e1841f9377a9e49a3f1f52eff2cd50a69eef1d72ab1e274ebe3b611f3a984f6b798ca275b759339dbef6888d35b195d239022443c20d09d35610816a38e74b063c8a65a7246d3cdd2695438000ff7b29df994625cad189301fc136b8e745955a78b5d5c91afa0dba8a0a53f1bd972c2dbbc5dc77cd59268de811718fb2181df1f17e4537533f1a3420d8078d05c6eccdd49f4acd2c0ccb4263f0806adbf87d9915279443ef2494850f7a58a17797fd86c11f0c18fb195af955301ddb78d1aa0b41c5c6c72a327ad1a2f860fb76cd227e3d90a4c5be43ca34751dcba228a5e73bb0c85d860dda40757bc42f7c7e1bff5f739a51fd41c7e162e2dc4a3f5dcf6ea969a3d9ef7e347d0da4801cbb4adef05922a9f34f103b5ce52cfcc075f603b76e8907acc5ec7a2ae3357309f18d1162995a92e6f8d2dc1597ba74a86de3b388e98e82ff3aff04519c3d52507c5a7463487502cb2b92079a1840d43a0e2a8340003202e6f4f29f1818b55da8a5d0f2558e9eddd24e659abf3faabda386edccc1f9b352395ca", + "2e2618e9d9c373b2e7043e86a0510d308bceb57a310f35d7948952f9f3159767222e4c52ba4cd103cbc9c522bb9862db238a4966bb0e956959a8ba3722c4f497479a2c2d93cbc290c0bb3a96accb4007f9cc286b58b75d4359fe5ef8a545a0434c077f12056a51508cea3208209f44bba7ddbc9a4691239bdd6aa573c88b1a80f470bc0006f4a973b499a3288990a561b79a5dbd4faf9f24e9576ac819b585ffb0e59051c0f5b43dd0", + "5c0c107096f25db7324cbf6007910dc8ca830446520882eb5c8d806342d204872f9f0111c025873a880f022597c9f058a9aff88929678f0ed441de2edc7825e23d8eb5b1ac5b27feaa73f0325c874138d4fdfd9a7d4d71b685ae16876f06f3cdac216bd39e57f1f085e0cae941794c27e20efeae6c99a8e53febcf2d213e0b6264957f0e89a218a80161f637a0439679a9a3f97ef68ed094b0b3da4b6087d335a0e109c2a02635d52bddaf062d9c2d32cbf56128a3f317b14d420ed739f8db40ba3adef38652df90f04d9e079c760e78ceb4d95bf838b5310900543b809ee6a9dd287b8cd9ba5d68054002fd10b43c8157aa7d39dab9d1c06906ca9e3ba6b1c1e46f66384f0ae1c7ccd5655f0155cf581c7470b24de544f748d54d06ee84825a18f439c7fa16b713a418a720853fa8e33788dd6ab03fd4cc3f0e4a781ea82accdc99b26ee7c5e9b5410530b6ee1b2ae2", + "283aaa59b5dc3960195410c80db32b13b8842d00ea62dcc085c4ed9c9c2cbd530449747647f5550ca709646274143370f1b6e06b42a5a56237a863571368d70e5ee990aaa0e2fd33d382ed9b4421b663be06cebf18590d81a2e674f0dfa3b1f54e624391254c9d85ca8a9a7b02ec082c449c19130d6e8be2a29991532a7cc6c757d194b2760a7ea07e8a07254012b2046fcab30501ae120c3b48c4f55d21af34d90367dd98d4f0e42a" + }, + { /* i=751 cDividendBits=565 cDivisorBits=393 */ + "116642b823d4afc908a5ba657b0f93b919ac967e08513679224d76c680efe35ce0841acd0be21773a64008f0ef6f72efc1d5814f3e9f9b808072fd75977d1177c3ee29367320ef", + "63aae773e33a0a125c217a301b6611c9c15a4814ee828ebd61733fadb0d2ee035fd28edee90fb7370cc892a054e74f018b", + "2cb0f0023fa6e84dc887000e2c7e9c7e2283b97b868e", + "0756ea657dad3826d9236fc8af1b36dbdc703ed6fd1ba708ad4c2ae52fea7a41e0509c5b75e13df844c08312c95d0883d5" + }, + { /* i=752 cDividendBits=2429 cDivisorBits=747 */ + "13e11ae41613c0ca3cc8e780d160bddb464545603a664eea26d674e35265f9c257c12fdd88ba16092b0e7624de1f8802125eb0a3dfe8d82e4b61192caf7496e76fc73bbc97a5cef27dda6db54d47912d426002a57a4b17f29a08640f425bea90e8194792483e046b28282b11fea0a4955222e4506769ed23eee8712f36abcf1c3446bc049b91691cb49d32dd7391087584ab7888b2dc3a84a8528fa3c20d7493c7f01088b5274c7c2869633901aac3a891b2a3d4447c3020a6fbc57a07219721bc775dd4a0ce6babe17f54b8870386f432b9e2aab5746c7e29a6f511fec76ad49bb9b712a75043756ef74e2be94fcb4657de7d1997f536dc9a6e4d290dbba60f6825900e04faccf92cbb8c58966ef21dd223a94d040aba58d0727e820922d8fef1b5d07ce25649a8a3b322b90046707a", + "07a2aba6e1195331ec66493fcbb6e3c4cb3617d664d5ae905c54c0fcc6a5cde60e37460be9ec1bdd8f8faf5cbd4025fc73b0ad870a10c3db8d6e41142decbe5edec292a331b4add17c87407394b84c8520c698c71d73c0674b1c5bff6ce7", + "029a8302e5074fd8b67f2c6f5f314a3252957355ca8c4565ac6dd35566d9c3435c028af31e46f2d497bc1880fac4721be95c896a412bf08a02fc903c2d56789f43b529246628da22e4d104c5f30613a42b749beda4c2e9777661cb1732172e70f9df8124e991cc6701554a4bbc4d6c5cf47c3613e03b17889ce4a48afecece86142f958ba85a7d10ca20c595d4542148f0d03bbd2a1d0d0886a1f2927d0233a3054ded3983461a2e0791764f1c2ff0179293b9893218d8f3508e0b1f5f7be1d51716fc49622cb9e4c695af9f25b7b1db73c0db", + "0658bc767c3f25e40f12f0cbedf4ce7760b45a0b4690d94c46927a702a169e4c89f43c4917995a12965bd0804b5b9e10ae9be4efab30c1f41c3e363f272c241c0ccf10090fc3b2e8bb9842113013f672e4cebe5071d729b959d8325206dd" + }, + { /* i=753 cDividendBits=1863 cDivisorBits=1349 */ + "29bbfa3dddf8fa5f98f2f342881741701382408138f450e8dac11e9749cb248d116db04b082ad546102cc1453a9baa4f77216d171d61ee84d2e715a303f9ba3d3df9c8718c594d661c480c7143500d5092191073501203114e644925f6f15cbbaa9719535345738195da6d814b09f442f1d1d27b35aa192c4ca19507ea24b350da82516d852161db919fae2489ca043b42812f831f4b5005d917791726305b06d2f17382fd1aaf31e9a2ec3ad7c6d2a55b38b79efa3379806dfe155884046c0acb485bec39d4189f9c8f44a3328557dd42ba91af38f6dec03c65e9b5dc4849d3e0849e8b804d0fddcc", + "1e74967d202f6e7333f4e9c6e5db35e92150d9e32c845b7f757ba69bb9d683b3672d54a131768bbe10208650b369a8a6e29f539f73515a9053094b1196cc3333fddf2929f5b9227a6d93847af86975d34186fb55e9a32583babe8df0469b1e1832d35f25da7db3a098c05a0f3768cea929a49ed0da9063a589754ef7c622610c8f28a2466212ae3adbc0a75aa67858f5972583383545668457b5f232c592b8843903544f8c319becf3", + "015ece9d01ac9c20165095040162f29f49650a193a25d7389f648c8b1e4e58456606ce1edd2821f83c5893973b2cddf05e7906e79036e9d8e023e8fd48d0dbd44a", + "0f4e4b47145983156965947b1c43dc2bfa45245f52f9fe097fce5c181c41cafb74afb3c3f285957bd29e072b3b089e5a7466b8baf06f8ddf31e861b41a1383bca76cac79696d24ce848cccdf972b590e00786fceae1a9ff38663a2a002aeada1d4cbbe54beb37afe0359ee414a9e7a6141ea8cca84900835e4cebfed7f349f84a7fe0dbf26c735bf6588053a36b3d23b3a8b4734bbbda7272ffec56b3f3a497b18c4e387a3b1e3238e" + }, + { /* i=754 cDividendBits=2802 cDivisorBits=903 */ + "03a26b0b1dd43643e6206fea01da574579d3aa61f8b7264568aec5d6204b483c719f9d64ae72a4a27e6d118dd4947391055184bcaff1478974c34ec4f97c65bdd1ea33f0994be3a4daa0c0163839661da34dcebf548258c0b5419c4e136f97edb7d62f6fc80c2dabbe9a3dce44b9ceacffe44052806135c8c2fb9d37adb02aad4f268982cf305fc6ebf1889594a1e69727bff5b0f8ee0479002428cb668423a71f9b5a74985433406d4d524b408bccc7d46731eb8d3434bb1a0bd6540b217023872cbdbe5f914e043a55e46a5c89d48a7605438118d5960317301eda7770d15bda14b5790021cb14b183c609ddbf239b03be28c14fa6546d1a87d18f8989ac866aefbb8d4c2ecd444222f19162b4c4776e314abf8c798b2d38073f90f0721b6f2facb1db36c473d774c0f21fcd6036130ddd98fd101d595cc4c108dbd22e52269d553dc830250ff6f05ba5e6868746d24235e3f5f6bd6d26026f18953f7213", + "6a6619ed794ac6a9978d7ee3a385e9d0b82d4b281754a842a6048c278b560de4be39e4b3d8df7fa23491e1579fb73a92f1e37455b37ec604731ce312364c0f7604c85755e06d9c14dca8bbc73ac4a1e5e0f33c70499fd7b0f76ea7f5ec71496b9aa0c8607ee8851e382d908ea2a84ef2ec", + "08be9fe4aa3ade425788b318a6a6b0c7ed584e25a1f44e06c193a528eef2fccdd27b963cd0eba1893a6e99d1a9f6307183993e07b0affd945aedbda4f5551aa3c4425bf8ef2c50a5163a07d0b750f7a1848ac22183ede359cc70e4b619304abe44d1d2bb21349e5f76fe3e0cf83663155d5d3228f8ec00038ec2cafd941133e40ac3ceed25ba85ee377e85b4cc65d78616f7b28ba2ab6fb799113255d7e55c9faac1ee9ee44c90dbf1a5687bc44d9b2b57cbb5b75d1fdfa27b6de40901f9981ff8996a2fb48de22da44900956f80c5ec5994678c451f99b90e1b7afe51df42df19429dfbca2f412935e4bc7a3767", + "22cc2d1d609ea2df11c3c96b91cebe68b1b0afda60a24c6c04542f3a2b044838b7c3dd2e1ec433328e0c4470e07fce2951cba666686dce4192698f99e52f5ecb58277cf423bf17d3ad157044e96b9421ab76dcd5ff98a387f8f9acaa2f68ebe02d8ed85b82640d1c0842aeb348d2d3011f" + }, + { /* i=755 cDividendBits=1592 cDivisorBits=1049 */ + "51750a2c47360bea57787a73d48f2f98f11ba779c8e9daa0088a7f00b1804afe5e6a1f4a31a28416e800f5f8d1143b505814469c5891d8592d251da6ef8f9053ec171d3e9623dd7daf3ea8300cfa59bcffe35e2a16feecba9169b14d103c8294782b432e7d020054378034aefa0179ad57b35621bc2f502269f5902571d4b304f0ed5f69438a64f484bca0501465fabf18dd6dcdd6bf2bad3094eeb25fcab393b1f0300be5e647158e4d0ec565b875d308ecce639d1e5e198790589915e705f9967a0d17f3cf73", + "01f50cfa159f411bd39af4ada12ffb6ce22af75bc783549abf1bd37df9ca8eb030ae40adfd512dc428ddc88ec1601fbf716f1cfd4d1bda965d9b151cbe22f47b4ab1f1129a785f81da82144dfa576d7ba357d329752c5a4723bf9b431cd4370e130687549cf2e065dcab0240d862267e72e5f020934715cab4e395670988b68c8e076fd7", + "299e5e113808a839167a0f9d2612f556676ceb3b9e97f6235c9bb45a0c2f20f2d983bc0b962a2445bc066d8ed3c158d33e9b23e2b4743bf0cdf70a698175b4ec24f8be83", + "01131413b3d8a84dbfad5ca4fa699932a6f69b56b452c0d6fa32cd0bf2234d094bd6ef0401c5d0ba17bbb205f8c1045c1a412679f95f8a07902f6a235bfa93201e26fbb33ec4032936bd93f921d6b376fe19eabecaa46570a41d4ee8671382b8f8db3a297633ac6615b0e5b7e33b306cf3c23211bab38b3a1b8778bb6740d59450dc026e" + }, + { /* i=756 cDividendBits=2054 cDivisorBits=1109 */ + "2e07bb83866b5508b3b75839deb7d2a611b347ffb5b54a630c538f7e2d0aa5e64136840ec29674bc75d52f61cdb7df4be51f2493ddb9de8f2ae53dfce4b0d55b2523053cf4a550ae7df88bd0742deb401e44590d94a0568d9e49f674cefe6324622a512e0bee275ca231aa026e1c70e3f0be7be76d0245e08c4908c3cf72f8244fb9ed62ddecdcf28b905d5e6798a2137c75d9435735902bc614211e78fc9208042875cae545e29aa9b312af03eb3c1845c8a35fb15207a214a1ba473d3d649977ed8b0d2ed4039b9d7c2c165f9ff1bd276333d98ce56b39584e86c024c0b6a9c0147de36d977c8117136683b5768128f51eed4a84e2ea27cc2ce0b5fb04bb4b8a", + "19e0baab7510a36e9905e37165f2443a0eff50f10c883be6a28e917384d24531ce1bc3f9960966a8b7fd0136adfa400d4ddbbdfc5a3bd7ad26cc6e655e20fcb66b8fa87eaccdf0996e23804776bca5f15d5128d177ce7d072ddf0fc6ad03e0ac1af576fb1bd8ff220ee7f9a19593618e651e249dfc98caa939a08e99e3e651b34895472d97a9fa701e165f", + "01c75c1d6f3cd63ef84b0f32053dc8e413a42ea39452e1d49e5dd5ea7f226858a0294bbaaad0e97c83dd198722be030933c55697cfb621b3c82597a8ea9dff27cf1aa3df1312f5056c92c4006c59b89a122d324e5ff58d2531ef3de7cfd87f3216a832297116861a484bee83361a3956afdc6eb1f44b17", + "02955dc3064c8a373c49f9c658db2f0891fdacbeded76e0d5b982d48032fd95534ff367768f35f6f1646cbe5a4bcb86c42ba238e0d59de678ee84bf030c06a380a970b5385e6744a912c2b9691172bec8d12d1464e73bf85cc03c1008d545e2f0fd891ca6806a9ec45cdff1eefb04834f3d4fe1dab109c42250a11983936746a2defc53e2426ab1fed7401" + }, + { /* i=757 cDividendBits=2234 cDivisorBits=2228 */ + "027233c5c1813c6a1f3381b0281bffc5ff39428e4db5f9c3ae377668b816e240e2c59bade0e7e33e197793759b95c80fe27a995b2aeb6d0e184250e6cba74f323ce7e18135d4178d536dd1ee923023313f1e2927b97d743d4491d7aedd772ac72a59bad66350b15fc397e1f920cf5c7a70686f290e437df8fcd487a4813409a8869365e9d5a06d9f6d7cfb1821787447636e470e53b778c2cbf06ef55f7a8362f2323d5f6593fb1df02765802adc720d76f868aaafb5527adedbed02720646579647d3c85578276006f7c3b628b58aab97df7710b5a804e3fdace821990e37cde0a7c2ff58b72bcc7d615d84d2bf543640747e23bfc4cb55eb7b58dd8f37e0200648ac02cb880e4b52b6b8431fb4231cc49d7baf7c88b2d5", + "0bf6f24f321aa03f58ff2d5e6488fda970e0ddf6b69576344c30e7d3ef2304269f4f3362341ee9a4ed401a7aa8ba283a44c744a9fb9e8f975e89dde219f699bba7261c2042843b1dedac407c4c5514c41ccc890ba59fa0897a1930bd43ec3e1ea2520c6d0d13fcd98c79d82af763b0f9d15ed6c3a483492dc413743b2b01b537eb91ea01ea28b62c0bca8ab54c911b7c8ce483dbea0b58ed4bdc2bb99ef1796397f56000f82117788d7cae2e89140fef116dee9d1a9363b4d923403cb531cc7eff390f8b2878939b4121ff998324a86dacdb3f64117eecdbdaf7a5ecc21ee31d82fd8f7eecd3ee879b8659bfdac8c63f3692b0785065aecfa619150205d6a85144b63b02b4109556ea7e458a54f107804c26b221d116cb", + "34", + "040a8dab53d3dd411fac78fbb02c3f944b9578309f9dc10ebd8751ab83c5690a69853dee519bc899468e14b14ff7e40c821f68a3cf37e3590e4fd4de6137f81ef423caa8513b8b3f26d4d552aedaf969449d515bd907a157c4b9c86bab2e28f16110503ca8a203930f2210668f1c87b1e12b8950d8d31bb10094087c77b0d92ab9c2617210289e7b17d6eb4deafab216cfdc45a82d2ab29887b613ab3176bab75465df332d4259736a121eb7045ed0e76e1432c64f623a22c0c3f61d3828cdca703ca0113fa9647dbcdbcafa12187550c2ee30621a3cc755329a6d819ff1abe20c41d9909c1f58f1ca1349da4e8bf1695eb24b4f7023d3bdbe4099260845ef8453a8063ef4aff5ab15122306732d96b5259f809e101199" + }, + { /* i=758 cDividendBits=407 cDivisorBits=125 */ + "693bc7df7b7c11c1122f3c9f576460b84766e9135b2ac00732e00bdc605353363f3c141a80540ec586b5434642561211c35412", + "18a24a4b9e4c3244f1d3a7d3d060c9df", + "04459a9c492546a7d7ff0b1388f3691596ce4607d783a8248771e811a326c9dffd39a2ee", + "178a6b492f76c451594547f9c26188c0" + }, + { /* i=759 cDividendBits=2362 cDivisorBits=1805 */ + "029f0c47068d8569339a75725a84f3f0aefd5ce59785c059655663e20565e86789f6c9b9bb0347345f0059586b12a65194609702b9212e2f8067fda3b2c73b99991ca42b7fad0637a7320ad965c765b70394159da1670da0f18703800f0fe2476ba60e5a62ce0461fdfe7a37c7384bb2fb2bfb7b42472264b298be46a6b26a2fad0a4859b7af92bf9bfee2c74c95bca219245500729cea9368d40e7e85b1afe91f10ba9d50feb3515c9206a8801ee19918b028717ea916a69bdef833bbdaccb191bb15e73f5df7c198384c3cdafe4bfdfb92333e8c5ff57f4182fff50da6e57925eb897bcf2171e77de8c0d80f116daa0e0a9efeeff490e9df3ed451862a9fca28db5c91aed7dba4c9d7def6ccbcac584cb8b7c670fc06b0b8c543e423d5074cb4f3a882b640dcab", + "09e0e4f67e1abc343f384436f1658c1c0cd09620b71ea74bc274755ba2294f43b5735f4d8ec271cfb792a2a68f1a0ca20a5f33b8b2d4b586b65da18a9bb132add8104cd608b3652be4b43ad4613e602fb67aeb5c429ba1f2ff2d8b79b30ea72668004baa84983cf03c4dff4e7197b28b1f963fc4da867ffa89b71e9fe6e7454b9e4ceedd09478d937a0fb4264f11495d82694cee3dd327e0b8a4afcc866dc673f1856fb863b086d7581b6594a3f71d95565ddcb3039b98bfb23c369d07bd0285810b1a74ff634c4a46d44cac245df8889a0533cfd3c736b9d6659640ed161ba30a05", + "43ee20f72e1dd1ade0cf58448ab5c445d5050293ac341cd8e81e2b304eeeaa33556298356958af4f4fe6a7763388f621ee48bec671ca336195c061745f6a82075b494873657c", + "07542ee87986489302d5cde480f7937d2891dbdb1e868710f0062d624ddecaf7632fd7358010254d3f2aeb1dc86ad4c18e2ea4d44c14a49839b7bcd3dd1d2cac25e93598c60ccc748856dcf3cc95c41ef0dfda604de5ce5a199cf80e7180c4ce956c306739c1f47551560e104b27731e49728a87e1456de0beb2e6def36c16c4e92d3a5c3b015a0f341b36fa28ecea931f7ea9b827aa7a45fef2c9ee013b743ef0a5d03ee60b084383e4ba73d8f613f476e472ccc3d6f8a8637839fedac2740437c0710bfa083b81248e0d2df017b161ab21d306d0a46a6a5338f112316a1815093f" + }, + { /* i=760 cDividendBits=3753 cDivisorBits=2660 */ + "e9a483c91aa4683f958a75690136fff1755efe1218540b71d96e681cd5d3665f354d9497f7d11c43685d2ecc6ffd33160ee7cf79c994451db681c5fc53bc6bc5676f39a6a4d6fa27a01a9e6839f37e4750d44654098c17bab900a30e7b387f09b2247d9f979157557ec57504ebd7442443a40a84706889b334ace0106772c965fe3b6f118fb8961c8c8731de4327f18485a6d8f290bedc2618f1150e14e4208e07078a82a0ae86106111105f1c9ec79dc63ad318e5e8dd8d031fbf3ceddfc3344592e6f1f962c9f8d32c54c327fce16737fe93276fe371176c808d57e9d4f90c2a9d725c614dacb54be9681482b15e97f252bf3a84e7d66e63c5dcb765c9c179454d2aff93c3ae8a35776ef5eef265d76d5285ab9b5b57116dd2ca9344fcfd19b1bdee933ce211f92d268d55889786b58dc8d8b4100837dd16d4fb2b91c47245574027a5eb114000f417a6105393c25f50a5437539a479add7ea66e46c29bfb0901107caecd91bfb7906d4bbdc974e4b35aa94a77eafcfc5ec27fd24c84a08350d92a509c389bcd259411beb84480cdef7503051bc70ce8402baf115327690dc58a43393e89917f88e4068e3ba3c16d2ac43b44f8092846d0a9738e4f4088f7fcd12183387796c1958147d9440550ba39121f47a79", + "0c4636c4385d5f99fbd62a142f154ea17c579e83578f79422715faa89e5f65097c584001e6300e17af0f3805e830b829d4541cb49b399c199efb1664b997b703c970c77c3532edd2e2cef0f8bf75109af7f92fae33a6840477274c97cc592dc7b3274d45ab1e9f750fbc1b584906fd69f3df762de232c632ce7f26f99113bd995ebc397069e6aaf00566c6c9bcb66b8a8e9126008e591c8d5a1d7a5c0bfc8edb39af1241f0e445f527aca40be0b244a214c91b706b760796d25da9bbf9f39b82c418072d3c75c40ac1c472344c6322f14609d0234b7028993571c1e2ae04fb395db0b13f631bb0dc845e021cd9f61e4ff9d95bbae0847ec2722c04aaddace9c556d8d47044c063719d084f805c9288abc308764ecfc29471c2a405352d33297022a8e18413f8ba8803dd97aa56c19de1254def87e73df1abac9592d321f812258b965c40b67d83988c24f63402", + "1308ff9de914f1831eaf2d0e46c8793919ed905724a9335cc9827287b8919499ddaefb9af4976dff07b3f841c0c89bdb8a3ceb147b20f630acc03f77c25664f403c340d656525733fd7c762068a4112a5db1a7aa4fbf16aad568e8a8567b5a0eb15bb4930eb46319f15251422555ec7aa284e5af2820a6dbd955c746ad491417c4f3c60a17953c236d", + "0c3b676c41a25574d1a8d0b039f787967a1b9063a02578563e655d3a57eeb03ee53a3fb3382d7c9492c42ced96379eadfc7653bffe2a2e32318d4aee1589063e0120c2aa3c8175440a8b1e9642f6c329bd388c3eb96254f4d85e5d495b5f24e8918dd9e33cd2f214bfc84d86530d0e462705cd81267b4ae577115ade84004a47f6fcaa5c96e8a9348a1c1e5bd5698cbf5753ebc940ec5113609825cd56f4a217eb082afce94032e04827eabbbd625c0e0ee7f69572f0c774cc2ce4007bb331bb80f7a7cba8d0c198d89706db28b4d4b3f6ecefd54a4a160b3faa319e83f80445afffd3d41ae7401ef6246608550976b1525c5942aa3eaa7907dcb6395bda1a71f9e5157c48858afaa808a31720c7fda8f7218f432e7e798ecead6480d92cf6892ce93f90b504e4d13ffe4dcabb5a207835d183632326873da62dc04fe9bf20fd2694f399678419d0b0618c0f9f" + }, + { /* i=761 cDividendBits=1645 cDivisorBits=1575 */ + "06fe0c1db18d86adec1f5cdd2d75738258852fdc7b90d60ab94c68e8e471309c161c6958566f096b19c6fca8c253e48c2702e149f11ae28ab224bbf57465976b7bf3485a748f04e337c2790a1f3dccbc7906cc2ecf5b64bd6b83e155e9445fb538c84dd5eacde9593eda8d69427b3f7bf3578fe89f6386c916a5948523633f762ffe9b55924884f7063ccace89f7627a756bee50161e90a39e22c69a3c5fad1bb20fbf931d45e35655e9dcd276449163341bf71a00b342ba1e7ff76bf3ee3996bc1c23e6fd4adb695a9d7ac9c8", + "132b5c1a8c964d230fc32a9817731551bd2b22962aeae71237f7ee0bb6a8323a0fec93de9f94f6ea59b91e4267006baea508b70c2dffbeac157f80b0eb5a54cd906f9af59b37a7a1e6765dae1ccdbf5093920136907c9da7e4e0d690465b80188c65a19f037fad761215ab3c2463e06ab22c7fb83a338ea2c16e04b72094b8eec2a9e735a7714b3d42b03abde737adc7192d7dd3c68073d1770671154678a8e0a345ca6bc2a3d1e120e4ccddd00ebc581dbe7d784ce05ea213103fd34dd44d727edc83a9fb", + "5d616ddeddbb9b72", + "0f1821ffcc137ccaa3e9042127c5e74b0f1488ef7c279d18ea4e6ed2e7850c4f0fcf075d9cdb00ccf07d2891c8dadb2428d961d252e7cbdf9c0a9e88d6edf4897920b4ea16c6910e1886d549ae5a457b3a37933d1787d49f756d5d4764e524ded7ae1af71f086d48e6595fc1215d71bcdf4de38c698e7b38845aed778fafc8fd0d1f9c306bda4e05d2314abcc78ecdf75152917319e41ce9bd608e343e007a14a1da6ec8ca1ff648d0606a28a2ef3291194334b46e4410f28b23900dd4d45a98c3d9951f02" + }, + { /* i=762 cDividendBits=2222 cDivisorBits=1563 */ + "03f1297f498844926c92d977c65818fdce60a67bb4c00f586365e413c3229015fd8f468106780d7162cfdd27d99c4cdd0ebe34b828f3b814519e3f40e4b817ec1f7571054361325b966201433e4b4e8c965577632bbce4c5e30fdfa6a7ff7b0a4d4cdd44bc15a0e24fdf6a3f112b4e169e1ad2a35037179657488d801c4088b8b462f1bd5c3195af1d5d9046fba2f0f651ea91a30e3b81547662830eb35aac1fbe6153f12bd6d56d464e4b7d4fe0bae9181e50b1399d1f189ace8fd5fa98d219762615a145e389abea6ddb1fe3cbb54e2828dc7ad827f219b87af8df4e70000881ff918d356ceb8ed1ea5608cc1b0afab68ab7a896075a0eac0610bc86ae8b66466299aac475a4a137edd0b20a3e04b8a4b1c978dbf3", + "059348fb244a80d10f18ca88f8e8dfb402b705d467179267cc30430b38bb9f7a3f9ca64b35bfe03471187150c20d63957c02af0d02d62626b0ca802a8d0cbaffcadd3ea1721baf8a044a3eb940355867c0ca1d17bba4e40caedd3e0dc777823c3ac04234f99e86e5c7fd0f792e0c3831cbdce6fed7d4a0ab27fca231f0afce7a381989da087b12a38a1d5416a6883884008e811c34a81795be338da87bd6eba003c3abd5bd7eab795d28092671241a054afadc075384129a6890838f4aafedc89c02351b", + "b5013cb3dc89198a1f8bbe891f4511fe67c531e39efb6bb4343136660e4d385a2e0c4c42c8919633971705a190afe20c38e98f6c73d27b68e72fc0a85063a04ed20ba683f855a029f4f156a4da0b0d300d13", + "0197ce82e694f23391aac516e0508f90d2c700e0ca4ac291ac78410154531bbc23984958f3e585bb527a293ad2d318fcf1b9066deff4af9e4410f9ff75075d862d384faf641aeaf4e2c147a1c9847417dcfbf2658d9316b6807900b558d30864b81552376398145a37485deee11147cf61a1b96a61aa53a0b74ba78bcb02d26aa493220a47edcad714bf0814aa251954e2874ad1d47bb9e3dca5e4bd30f95db596e9bc7c9bb59cf1595c31fb7bf4803e75298c2c5b9b37faaca3999c18702b9cc48c8bf2" + }, + { /* i=763 cDividendBits=791 cDivisorBits=57 */ + "2c8af62d5fc8f5d7b9ee57c18913d4f298de855d8d5e4363ea97977b6d6b8087bf1942057999648b7089928a99397c38cabbeadf631c29f6884d1946f16a0bb5207e0c030db56b061848b7449fbee566bcbd6200d922d251425f4b8dc1a6dea8f28cf6", + "0a5a370ee2d06a", + "044d7acf7fc44cc3be90dc3ba099691215fd61f1836389f60e2861e87d97bc3ca3369eeb3c21129eaed9a8fd552b44ccf5a1045b13954f86337592f66465ab100cb02206ab5f3c411ff7dc95681f4ca107b6f0eb7dddef84012dfa29a3", + "0583e1b1a2df78" + }, + { /* i=764 cDividendBits=1012 cDivisorBits=759 */ + "04f7276481bfd1977bb871a2488ec3fe5edfb9d21cdc9d765c62d08c4ed3323bdbed183aad2a8875dc01a6c65dd0758a711a96072b56ad3a0cbe80f1bb1abe7123e5e49f0919957b101189141d6a60fc6acbf2a0a6441b1e73a743f39fb886215ed45371122fe4a9eaf22a40662824f6f251f2e45a20633066cf062263a88f", + "01b61c5e08db52b60567e4dc1181fd7c8763c695dcbd74914e9a44f314af37b54310cbb052f5d3d4081366861ddfdb1e61ebc208d5a3e538a4e94dda1e176e547ff4103ba3012b9125e7430ce2de63d71f35be29511f507acb633758434e7f", + "02e6c504bf3bfee9621ac5ff7fd5337b45eeefdc3c5d8c4db7c7568bffb27577e0", + "52f4879537dd5e9304f89172b2af895fca71433b7978c07b7902f9ca9a2c4e96e94b026258063b67c719eab70f347a6281d9dbaf9e45c6b2a5d751f720e6172ef20b26533c3287304202fa30d01af55b8a0341ce9d7ad152fbb96ff6f06f" + }, + { /* i=765 cDividendBits=2628 cDivisorBits=653 */ + "0c00cff88bec8432a2771a70db33d86894bdea42b8560f5f3f90e43b052d705ef277e069c0082d3092923841d55f9d4451d94de51f4b91c72c0d0a6196135cb79d928d356b465f4ddf3568ab04af139df0f4c459a2d657875ded5aeb0877efe7a5f6ad55151519cd5ad1a48bebde345b67c3dce653f25dbac0bd824a80f468635548fe64d9caa71816a115a462662e965e2ae6cbaa5d37cbdc0ae67cbe3567e550445551b847268913b7e9f600ca38abc023be26fbb0272ceef8c2fb6ce1ada00457d50283891a7054f40aa0886afe0237f8b0838b3daaa6084531cbb2f34dac9ec065aee417763b59bc9e788927cb6b55d4cb54bd2ed4aa18058519f24a4163dd2a377333ec54cb9ebca1f335872249bcd95ac4b3956958f9f2ba5068c5fbe246f7c3ae87e73bbb4860f920c62144ba14cb5127c0426f96401910663fd78b99bff5aeb67a383e2cfd", + "1b8c6a5002ea085fa016e3aba9cacb4b385af715796f99716a9a5f91e3eb37548fd16fd31b449ad8ec915b543cc8d8cbba23ae173962a736cd9d4c470bdd75c04d2e7ef49b8e8966d99008d454ecd78a9cd8", + "6f8abb8b2b06a45f22b77e2ef001200d53a6167b02678f135f4e1d6af358cdbcf901fc7b5ac5c2a6d8f26ad7882e1af5ceb7948f5bf316af38f5f461d99df54c48197c98479546bd9fd0107ed6616f2ab3c68588fa41de1641c28e2b9058264d8b3eb0e5c0f976dd371f198f8fb0da904d88abe41a203ef9a1aca5aa225c8a051941a9fb0b6bc9d944b1b13529896eadd3f6ce10146419c478c77b93453a4476b9e5fccb62075ab52f5fb5d13cb99a9ebe36ea73000df876e7d5725a7388c8af30cd9fe008c0794990f5e9c70b087100f896a79e1d3dc38e553fbabc3cc5f12351f42816215b42a3cc40cd31cde0dd2e062d0c20ac3fa5", + "09618f22528e606b2d7b7b8a62f8630c7bbf964e52f8c67195f197a6d30d216c67bc6740f1d30925620ba40aead1b02fcdd279004e5263ede15eb343ca2083cb7700b84bbaae34ce7b9364ba39ebce2dedc5" + }, + { /* i=766 cDividendBits=4004 cDivisorBits=3815 */ + "0ae491af5711b0c41976d2fcb1370a79028988a34dce9732d849c5e908e6cb6bc25f66d2ed549a14cf749e10d023297aa0816a0918a049132640bcdef390c5ffa23954367858f80176bf195206b71521c7e76f01c462078fa043d8a547587782c54237f0a5cca7d92ce1df05635f2af502565846974adbe7ac4df8f6eb352ef4f77f8c33dfeeecfce805fbda3873e161e4f616a806ec14ef830b3160224767866bbb86e082bbdce8cd310c98b03b1c07188ec1e4bbadb1817c0b1d58e1e130867a9f7973075f420fa1627061b16ef10d3ae0e743a71119df973c2253e910251b2d8b925643fb09765b659823eba39755601ae7759a55b8c2059047fa8293a5cb5840d3ed575548e9c712f5a849545eb3530921a340e603c6eef4edf610c91ba1b97d849402ac240d700f6ed05e57ec35915f7d17b64bd67d350c0a6a2e34c6626974ef89ae7040b29f4ad313ae2b32ac1e75edcc364d9eee07b820faef4d7c232846d51d988ae44bf3447272f350b9e70430571aa6f2e95d6e919207b9b4230653e34864e0a0816ae609ecb4f5eab18160aac554ca1d02844c014564374793967a04dd0dacf6a01bf0cc261ccb8ee00b9d70b485783539f27fcec3866c5cc9fd089e5316908a3fd48b76f64305185099bb5ff65ab298915352e1c6bb7c02d92f92ecfb90d2d666d0419695350f91e8e575ac5c5e59", + "5753706e3dac30a7b68c97cff3d35c7d065a8eab2fb8d4c0454076540df11055556b3b70eb3e35c032a27ab21997e2482d25535e52060fe115c1c2a4c00af8786c6f479d2737ff085b00ced6743bb86c44e2c830961548f8aee7e919c5297a96d75b3d13ce726207e899d99db84255a60b021f61765939d4f696cf5ffb46d059a95f99a8939b035ebf6e98fb1d8f79942a0e16f0426427d43895928fd9dcd8f0e6f55ebebe498e0929fdf15fc91ea08889434b6a99453c90216ee71be4f2ad0043740ff381648f077fa11b3b3c575c0911f77ce238387c41b8937536f34180a09d18c9dfc3060a5a15c60101884ae35f9b76a8162f55afe29a4fbf59f15936685fc4dc7716c9880730128ae8a07d77ad82b7cc419a770bd9a89c4d594279f51bffde02fd1fdd200de6fd8aefb444f3b82bf84ae78e72685932893a349adcc2c2ab2db909e3d6e34dced62133dbac227cad181e1d60440993e91265dfe1babfd4859ebb6edc88fe96cb20db91944338bbe38d3d8a706b74dee12e82d4da8dd1249d3f0a3e15acb1a6636aa13bab33703d8fc4ec7f75145ba478e1332cd59de5c2a51963016b9f9163c4f0722b3f21c876042267d00145f24274fcf6a40157cda95c9082104a2ae9bf4df134728fb1f859f378ae04d59b9c34a17940acc1", + "1feed19973a983d221425261ec0e7268881d0c93e6c946f2", + "1be7b6512daa4a5d23c1f141730fd329de7cb62c2fba5a98094be1da98a0570e6d65cd07bc794c2bc7ea673459fd3b5914aa5a16c7567d07b83e37aa079b30413702f5f69321f2dbafa6eca3feb67a885a65bc26eecf77ddf8c8cd0be570fbeb9531d46009fd2e7bd7c36520c51a86f5292d8dceb7df634a9aa0fd137212ab2ffadc75872ee6fbc4a4dc497bf2c692ec925b130b1ecbca560e3d57dd5fe27a64631d9b2f805af77e75d4113552414da068d5a12dbaaff773e98296f06f97efb984c459f18451819a46bd4c16cd1c884762f4f15bbf3d889522c50024c1bbd8bc755ef0589fa49526238b6fde524b76920d3c91da15bc017ddef2ea84e9a7cd46300a70bff3934d64fb6c6fcc124b01b323b70f52ae745dd128da45cde2cb4117f43df394dba168ffe9976359ad9906042bb7b94969252e3ebc877a279dd77cc3e8cbef8b08dc472c992ba888a7a415f08d4caaa3994bc0b2cf7c5985cb08f9e2b4f3daedef0927dd9ed663c1909bb1a2a393a2279ab301d48aa1d10f81cc90ffd25bcf9f3c7f51deaeabfd1d1ce6fae86ae56317a1f910291dc4c7e514f54af6c9bbeb412a58b4acef5cbff4a422d219d76881b4784f07448be8b4f24b6b475961c4aad2ae65f8b371c3b099594053e4005d9bb2bd9a096fd9547349e7" + }, + { /* i=767 cDividendBits=1328 cDivisorBits=191 */ + "7afd9bf44aaaac45c49a69940e60fd1e3015882ca3a14835a902eb5503510c94f246999fb5575527757ac0bc049446280c6acd2b015b651ed8598a28dbf6c715d00e2d55717b77b4f2c911c486e7ce73f3977fd9b01c19fce935b1e4095f97564d4f05aa3e472adc06504adbeecad4cc0356cfc202bb9c718a46328ff6b41846b7fa4a48cb0700fa53a1ece9444857683f49eef6d7336e6812521083492c201ff18696da9945", + "210613cd5a30302b8948260e82923455784fa9a7d8b6b975", + "03b96c69ffbaf70e2f8feea2773cb4de7196a371c8dd9c35328f92b6c5ec0f8bad495a5bf2aa527e1bc83bbf7120345afa968a6588b476ce60634d2fd66dd5a679b30d3e6a0613a811c3cae1e7b87c9f33c8b988d2d6b0fad58a469fd1b2f28c273816de84ffac3289182448bebb003e5e096ea39c6e3b573e8de37e0f0104c146269b08e63d047d3b409ea4f63990", + "0c08474df3c68b4e8f994af9972b8ecdda501f40d6593a75" + }, + { /* i=768 cDividendBits=433 cDivisorBits=425 */ + "0152ea1f3d3f14085c98d97255aa5c217bb1d19ed8ba3a8d42e844b42abdf4d6ea59f85e6fbee5670dd9cbbaef837c490c7d607ae5a6b6", + "2d41daf01e6bf65eb0ebdfd155412685779797b32331e38ed015d53d929f607aeafd455b6a99d61571aaac28a88586f8103bf9a602", + "077d", + "03fac52b459479860327531ef34406414773e04badf83e7c11365cab016171e84dce1231a36eef45a0afc30d8c655cebcf5e7589bc" + }, + { /* i=769 cDividendBits=2971 cDivisorBits=2706 */ + "01cad36bd8dda40f7f6dd913d589adf8adf2bb31dd8c17b9d58f9b248f1b0cb09caf50dc9f9344800a4e66ac09664b49bcfbb31efb53dff2b28c3875cd583c023046af735cd0162417101d17ef7ac056efb7ec49bf3aeece901450f2f907bf89ba320dd4152e2467ce3ce4a4981747c1692b2abeae4907b967e8c43829e5bb2ec85e9803c1555eff815579a4953d51c80b4c68f5fe0b7554d5fbaedc01eadf0a0ce22da4b39daed6e06540ad5b14e4d37400c4529960aa4ee9a406a474edcdebd019052711b3f2595d4387026733d4d9215691069b596e430236c9c7c0f16038bba9f004009af979358775ba50d59a511b2d724788f0b0bb01d2ff62dbeb112d1841dcbe1c938cc373966ba79faae059af2d5049fb8404a7784d96e768f7b6daf6153fddcf76b49fda688e38474bb0b6a0a874eff9232c4541f3c67fb80a522ff115a0144f61e7a4cfff42e450a448777ad2f3221534e9561394dad8eccb937ea48f0884a8e54ed39c2ff23119975b1527b46b4c", + "02a7e899dbb80919334c45d43773f2a132615051600359e03ccae3f1b584170c2086529ee51d8054f4c7b1ba404c45cef09769ed91e477535c8b453fe356965a33ae81e9acd5f47aaeb0ba629e3dd22109214138c94579b5489c16cf6507f011479a7f9f4c1cbcccf3c88dbc24937681019642b390086de2e1a64efcdb493e41ef070d0bdd29a3d2676c6503b4d67f2ccca9d023bee34067e09fc6d73839bd9bf400e6d345e9b33325bc5136aec040b9f1ea8cf728c03ff6b5e8c3f0923bc30e3af6ce978296d4ed7acd33ce5e1bb9f3d8264996b4a0b90605f880fa88d3fb80b975ec3c5e804075cf93354ebf3e85164c2ddd4cae30a3b75613460c2130c7c8452d386c9d3322223b8ac1155ac199b30d1cd162cfc0d80fc5c61910e70d32be79e98e90a94d6a26f61f33641e4974970e5eeefb6a1dd516e2a0c21e6bf6c95ff80485466221617fa7fa99c4ae96c83d8737a4", + "acc1f649b288d9e06e80dec645c12562ced9628b2c9f5e101b965db235ac297356", + "0268080bcbcdcc5ab77354dca0af7853409b447065f59baecb0a8e7e73756d076f49e17c480e473bfc9388ec72c34e90e9cfb175fecdae21a7ef4ae41eece10ce88311bd9681dba2251c793b75a49d02129ecf28e7feeaa59665dba0bde0206eacbff16d2019fe21c7319b0d8c439778bfa450a2d9eeb514d2a23a0ba3f936cc527925bd62e35c4f7f9714b74785a311a1543d2b3911a8aa26a568ed77ffad688606066cfd29f4fb897de70ba11039df89fafbd10d54a6b7b8fb0875388f0b2cf52fbfbbb44ecae37172e9afef48dd4d15af4833736c3134a321c52bfc4d0e17325aada268c3d9654d952fa0364a8301cf20297eda07c799c4a840be88c980388b35ad6e970fc5f3aa401ae2db04d1923efd0afa2102918b2f16f4ee29a7ca6e9a6e1fb0e67c6f8aeaddfa61fc2e643de7a8e610c675ed6641f3a3438134672a55e031049cd6ba5eabbca7d9897f2ea5050e34" + }, + { /* i=770 cDividendBits=2046 cDivisorBits=1051 */ + "0b653843d02e8ac39d1552ad3b39f52f51f723772facbc1faea6f0db7170294c484beba7c9cb83f78879e7069d539d45bee4dc8e1954731a3bc215b33934646e6f20314daf86daac47415ba9cf828df8f966ff2abfca298c481142044b46254618f3decd249b1dcdaf1980b7fd1eb42b473d54775c5e0398c909b80be64d3cb56a6cf9edb9699a1b6f19bbc9e0e629501071dde799c7d83860e098db5f31278d7cbbe2464af1c6e2c54b5615dd34b868074df6f4be3428f2b993c3d4913a765ce2d1d140dce7b6b3464ad9ee0e95b79f1ca469cae243c1cc952bb2cfb7b4f9f356b34e5587b7fcf746d3d3f6966849848b995465cdf368ba30a34c21627d0b", + "015ee3eb5fa115546ef5ecbe64e782bbef93ee7093ec0dbbe44071e5ae73a811aee51eed32d598d142332c492ccdd7de0e006cd67990b9a5359f31439a4174da68d28e17e27ce40792dd873b9b6a31276d77c2690e7e5d7c2bc15815aeb506347cf938b59f34bca6878454614631190317e464bd7117f441359ca2aa2e50cad25f297724", + "085052f0f3d20ad0c5ae178b3c3fea1cb2e3f7b3f67db0f096963992207cde725c276a9d14537716878814fd925b2239b1a77db1547370bc170cf17771540c038184372adeb8326bc7415e0b3f197929427601669b13c5d937efca759c297b788148e10ad510ae87d373bc731e7e4ce20a4664eb43af60629a796230", + "74b91c7a8657234a74407cecffdd9c964c4b6d5e03d6cafd12bb4653ad565444c097efbb34138417be829dd6ad5940d795fe2fe106a64536de57984684730e98be9cbae688a50837c9de57835a0c57c30bf767bdc2bce1bfa253e9f82e4ffd8578a2cae4400de275b7e78255fe669ce40ec0a989bb82cddab7f1c7da8f0b5f71fc5e4b" + }, + { /* i=771 cDividendBits=1468 cDivisorBits=1129 */ + "02a0888077660ab100d2943b2b4a1c3ea59dafd3093d8c22c53deac907ed1fcb5cf3736e68bddc018ac0e2deff93734a9e333105284517276a35cfb35bba0ac18788c3cc1759821742b26c9314faa324c0be436de7e94f6737ac4cc255ae5de84b393f4d01a1142e401b2074be9c304905d35c0ce180f18371b55ccdf56daace3d9e847cd1bd36f248325d554a6df5d232ac3b844979c9834654d1399227c6b312127ecab33aabc18260cfcdf3fce9b15bd5295e7064464f", + "791b0a89740219e9056051f21d3aa57403994c0ffa2f1b49f84197987acd85dffce18fd91712f6dde4dcffdcb3b6f99bf6cc3af408061dcfacb1e1ce727a3f643413ba8fca9d5ce3a0fe33af01c8f1a6b1b3a2e7d28d95f0d9f1a86aaa2ad5b0bfce9f8d27b43060117838d2822d5ebaae88c881ae0792f12f1453bc984fe4d533f8328245b51ea46cfe3a433b", + "058da39e08839015def3c2b9721e769e02140b2adb6e4ec5267be04f439afd8f76f26857f6189c3cbc763b", + "5cdc61f32223ec66bc649244c6eec79ee818c537f55a6b338493f7503bc0a412683a56edbc9de7b8a1bd803f6351c29ca0c842c3fadabeb2ee5c4214b31cf1fd188c81e4df48648f9e5683311957e0c152071a301d9887526f6995942d8456d36f0a68909fee368813ce5a2e45f495e769d7e41d7faf365df30f840f49b1e7bdb1e004f80c28da2c91caa595b6" + }, + { /* i=772 cDividendBits=2997 cDivisorBits=1716 */ + "0397d19c2155870a001331946b61fb544ef1bf87844569235c9ad661bba27271cbbd3002d287cebf71fd7ab1d4aff419fe1c6fd53008337f334a1da1143f25799b815c4869de1ac6a1c0c7da3eef0d8dd03ae1ac87d460f1dc41839984b884e1e98c9ad574e70fea85f5c8393637ac1b2e214d51b96eb078b24c9ece4459c2d644bd2a8cabf32619a6c8d679be0ecb2da1d0884ed60897ff999a7b42d9b38dfcee7ff9527dad2ae4b8c5a2c383d7adba9b5e9cd49866adf7e3d1431a264e2be45a83def4446612d3a851b85e651d110ef1bc064be84965c46025ad12e490c82dd79f8d27b3fee6427f20d56a5c6110721f48c83c6b5f8fd018581e05fcfc106dadc03bcf419a89b1dcb99ce774d34688eaa7d1c8c37ee730d2bac27b2984554275443d9958c5215f7c283c204d397725ad3423c079a0eb1ddca15deb1a5618ba5a15efbd8e4f51828b5a2d4f3d56c83725ae1480a232556cf9fb9a430d9bd0ceba6cfae69d674937142c4a5498067fdf63a389fd63d9f5", + "081f5d0afae2e7ee2bf17c7246372339d77b633181915a32efc1769f183369389f60297ea52da5b175f37a04c5caa504d578f78329a6e4ded8d2fc40bb1e60f877414b673c110aefe91abd84398bbf33cfa970038421ed445d07ac3e0ea5425941e4f8e5a101b8355e389ff2c546b9c5f8550e6b7827ebf8d3e7761beb8fced76e4cc1d07d38fb5b324568e5c6954e86f269b35ec11308d0751494f9b40473f952ab405a577fe91a7e53aee16b738f3d102d8a03146cd7bc630a423a20ca314af2fcf82bcff896ca9eefd92e5b54aa3e806f3b26311501", + "713e3d47bf18cd9e36466c62bdb8df2eab45b7cfbb89c4b9b9128182b64ff99ec471957e2c981d776ddcd5e8f9a133297ea8702f5472001811d696f6b4e554c2712805314dd51d7691573c275eb6e8220359498901be6bdc82ca21f223259c33cfd00ae523bb8cea8ce2f2786fdce7d4abe250402ef48789676ab09b30e79438ef1564d20eb352c7d16ddc4f172c5c04c4c61b63ce57e5dd4f4d7fca47558018", + "07f663460b2ade51181d55e2b43dce326b1706a82c91fa0847a5a2fd15b60f5aa77021b35b2a0d8300e5ab546321e363a95f26c95ff2a1b9380620dfc44b1d99e15924d8b280376494c0ab8c9a17f4505ffd5eaaf808f000fbf6a6e54fb7c1f482b26db1705b916c0cb7ebdfffe448435daf89ecb32fb98478a2ff12a34fbf4b31092050b9e2b4efe1ebcd6d434d768c913eac75ec78d34375ba874e7293e51193dfcb4a71df8abd1feea9053d1f7ba9424314dc171be13d2ba424d0020b305fc230281aed3196ca8c0a746e3cd211590d45fc9df461dd" + }, + { /* i=773 cDividendBits=874 cDivisorBits=719 */ + "03a912936de46bc021d469cf593905570ad48b5497e1a6f3164c3cba3ff9c5a13690b6d93e94ceb14e591ca15eda1ea4ecb9946c3f8eac0a40028ff6b4f1cde3ef3f680a2ff417dbf6189c3fa9579c4b3b3d2c19b6d8481705781e4678df2af13b5c9a61f836730685760174dc50", + "1eb32b93ceb20da8a492e98316e0ac2a16b0f36a7090fb844fe8f178662994f9c1cadf5405e20b5c887fd7d1fc3816b6b8668f599363292724a84daf31fec782b69dfd5e7d8109323c6aa6fbc66390d2c1dca1de3c2682041b66", + "1e860e0c816c016e4f48576c630d9ad906d6a52c", + "0e10e30e73a2b448b6a4b7efef8c2a601d41fa07382e6d55d17531bbc66dc6b2a145424527d6d84aa282b01837a5e5dea9ab108c070232aa2920d94c8203491754564790007e6d704a13da0d465f5f735c16b0adff81b7d368c8" + }, + { /* i=774 cDividendBits=3823 cDivisorBits=3009 */ + "32adc2975a5659d618dea1ade2e9bcef0cb7948e1f12607050b13f1b50da9b19fa4072ff91f5d1a2192d97152be005aeee9220f22ed4fc82059fcce81c80a0c7148c3ac9ddd74d9eb24d6b709ac241709e76da809e5054748bf1ef2b6a35b4a1440439112c24205d1e12e009cb75d5540584cf6c32142acb440f27d33e4ad0856ffdf922739e45ff231299d70ea04b5e4c122f4d97147c980c43b3d515a069c78386efdc739563ae08f2dd95a3f88b7f06d69b1013c4f0881d088e46c4841870c5d1fb3472d64b4135442b18cafe9bed677582db14b3882ccf5f0843ef5200e2be4eeedfee22fb02df9d826b5ee90c782a59c6ca338bf0d2546dd48bfd8724d7d2c94144a2671bd728191bc21a7592a984bc35896e4c1e69d8eba824ca6dde89cd759345c09b665b1d614cb0fb7483dc75792cbe47e1fb9f8025a6e1545d395379dd71a710ff11ec79ce2b9d7145b0835b5e59e6ebbaec88e56a3e289ba5df6c82ae8a6668000f6c228079af76e54a7d020de4cf18d4547f64eb1eedab5e3e1088c8219fe86a7238cd03af7f74c6b5a016cac03909e10db91111855012251df057dbea1171bfa359e324cbaca1c88398ae5be3027227d1d3cbbb48d13c90995cd1ba4188eb850eaff7c687ce2c5acb1969dcdbad2fa4367c95b302063269", + "5e45c2afb4f613487d2125e466412798f891e956c30f80c5274c6698b4faa74d93ac30ae99e4fc58d791c7cb3cb6adfb0d83aec5f5e0e03f650b6d1e391a3a46c20713e4172f87d9a44f3f759838918332b1c206957882880d0b87048235284e523838d4e3799119ca91b834d25c49193192d8c17f11d9a5bb996c1d95fabb8e6b585bb34ea2b77d6660358d563dbbaf21e61bdf097450ce3d0b9e34a34583517c5587a4ba0fb9e3dec1f4e5a9d0c3400d190eb0eb2c045c4c7a41c697d8452c297914fb49bd2b478cf72e8a10b4eb29734a3456913d33c4e38122bf276dec1306d68904ffd8499f8833065d2b745eea44bcf27fc52a4777f95b80e71533817aa0b3dcfece47f9d9f1b52c0fcf80c30df8dea50452c7bd2d991124c4057e81dc89d93eb41ad49955093c67c5f91e764c51ffefcd72ec9acf0763dc6ed3eaf0d0a25024e28cc828312cfa12bdfb543f8fb51b58d921d73401cef2844731534bb56b82d88c025bf096878b56d4e9769b8c529fef052c8b647a", + "899ea94f0d939d897132d1692abc19ce7998d52a009f6a0ec51d386ffbfe3158bb05f73fd451ade61b55c2fd7af5ea1266bd77a322840647cdd3b9ebb4bdd598a7e2639f7883a6ade0c32c5a178caf8b91075872e56dd25720de222bd0f33b0690e1bd3442ce", + "14d9e0049b12cc2414ce5b3cb237d132296c5354dbf4cabd1ebc02deabad6519e46360a592ab5b32f45032a6c70a5925411a6522eded2bef1d3fb2f92087a06d0697a3e0c835659d3987bcaef89b8ac865a18a8beacbc78629e091a2691053e5c708ef6469285951ae7d0b6c4afeb5a0c4ac1d325849ac0f067060656031eb95646a3d798d7cb9cab46ad43e3c7e9460ba5620d83b5accb34c805824caca8429e63a3cd2cd0bfb4f4df0c21e3eb63acbe794531fc0805bd79d5cd9be24b7924d1bf61add26bb45495127c6e6bcecde8c621532a449fabe7e13b7dc497e8cdfc25e845cccdfe0800d0e2460ee2411be04395d682b9de30844be71e52cf1db960962d8fe02e6e56b2882c86e9c6ff8dab49db3cded1d6a9a1c6d2676b6478434dc02115e5cae6c91ccf1b75973745d460042288861ebf8d3db7f8e840c599d275dba32b6ac9220edb020a25d9594674a5eb102df687502e94fac3e570c85d79733c2a5c2941e1b600e9734c21d39c853a417570554bf2be43d" + }, + { /* i=775 cDividendBits=1570 cDivisorBits=632 */ + "03819d69a28364aaf3edb0cba9936a7908830826e194c8147a96be7ca43d884a4c0a027c74b1d7116758504b37717a7c2dddeec140964344d4030440e76f6864ec4ba32fc36d86b2150f93438216724e3d617a2b0f7950bf807646b71d3ffc81fe4b9fa136d5235d4b5963b2d7a49117336af6dcaf433b220ebbbfdd34bd5834654dbb6586873d10d84dc2aa1874c7af6787bb54a0ccb7754c94fac9711835541e061f7bd9afebab46aef7e9216886ad8f7c0f74edc3b64c70c3a126f639afd80c1283b578", + "c4642b95f86652ec298f254bbaaae2e2bef344474901658ea4354d3afd1d77fd02150f0815042a0ca10c14570ecb1215cec377e047fb8337753018fcd82a3e41a1c2bea7d3f838a71407a6c5edc507", + "04920f20053fca526bcf97f187c53f3a2012e4d15ac60e5d4fed2b02a5a479b80c56ecf796b50a1ec9771e90937f321ff5deeb100d613e8a88950fbd83539499a95144e581558c75127792a48b9f8b9d3ffc3919011277a7c0af43fc88944cb91e3011a23baa4443069597a313e82f250f8b2065de8e", + "7bfb082afb37b193fccad7e88e78a64c873d5b1a9d537db12dff2d9955db9c7a08d880e1880057523810fb896fc1e2831d768eec4df204ea2617166136b6d440e9e321a03ca7c226bec6a97c015996" + }, + { /* i=776 cDividendBits=2858 cDivisorBits=209 */ + "03fa4c43c70d28a1741cff00e7cc30639788a7b00ff1bf64304cc09efa7b78c69b90e93d7a4e8d5fd08d0b9a3b1bced6d7470e8a5bfbe59cfb4486ee0defb376f4ead4dc0449e2f1eca269da368501d32be960912ac3248b74a5e30c2ae6829f41935a9a0a597b3eabf750d53dc0cc779b8a6e189a1535add2f96bd8175a76711bc7ef8ff3930677005bfcd9b4951fa0b715d1eb1f7c458e77e4b7e4c00f5a8ffc0dfb791e4f8c670fc747ab1650d52d2f864cb0453770fae84827d835b0fc62118ca0be0b9797302f50382641c3a0baa3a0e9cbdabedc3050492cee15c96933ac73158dce0dd15f0b9b607a613e986be2b736d7bf63a6142f6e5df26a3acdefc5a28fc87903eeb18a8963b3a196623dfee3d3b23cc84c3396fbd2da0b36011a491c3776fd2fa6a2248b522b4bd4e11cd056b501b0efd3bad579ba02cd507632a06769fd5f6ed472ba1cb89acd628bee3133c3a280bf7133fb2ced46b9e4bc41479881af7d73", + "010af1b8a9f85ccb93c02026938797ac36a9b76f5ab7c2b54f917f", + "03d08cb0078bc84fa7948e100ba9ff1a4ac46381dcad6eff1740a1008878b67bb68d70969c06a2345cb7ca55da7c5fb84be27513d9797a2b05b6edd7b8504385aa3e07ccf48ec0b362aea0fd41196072380fc0964a03db6915959134eabb13b1eeb12ba9d46a07d477aa7644613429462805f78f909fd6e9d8f38b780a1450438c92694a6df8a37e735ef2a326d4e611445251364728174fa9bf77539f81d04116c676e645af956aec1e73b860ea082e0e0e46e724ac8ba3160737509ebedeec8b5c0fbb1bdab46f53d13347f93597b78c8203c9fb8e54af03f7f5aa8b78929ff5013bb4e9886c78164a1ed723a9b4f0f3b7933395b2221d15ce0919674c1757a5eaf8ad26a56db3f052b9e711760325f65fb44402ed804e90ec4dbeb4536ab28cb9963b474e49fa77e95fa1f8c72fa051232293dcd2770e538976145f5f8683c9eae1cf4e3b1bc11cef7634", + "a21d7bc09f3a1304ceaca7c951b4cc51723d22ea258746e465a7" + }, + { /* i=777 cDividendBits=1932 cDivisorBits=200 */ + "042973b67d00972dab15fa71c39ca8f6806910cc854c87ea55f0a6037442205e1ea4c2241c86d8b4123c444dd998f0aa08a39b20bca33597343c1b71fad76c098aa215302a40aedfdbbc3aec5eddbcb00bee5f8310c498ad75cf66a1198421e3e908a21c8e2a8e155ea8af4f3c12ebb9103b65b83647550ff3a8a0ba78a0c6a0a8b3fca0cea11c330fddb590b2185470bfe79f579d63f16544d02f9c377893cafe4a47d29f5becb4caa94edbc42542a904df4cf6e97c6ad8d718ba8fbdf2b3a173e085c49547b14ccdc15ab59fa976a75324b5adadc9449eaa67e55b10362357038a1d959e101216ebb23673e6194dffae71", + "0c6e8358fcd5710423168efa135b1ea84aa77d67366c546962", + "55b45a8ab3d9fb49d2864cdd111d6458302ac577e0e38391d38a00df7c9539a0b575f1e8e0ad4284f420edff68675836a30c32372974dc7ba6d72883f742c139e67087ed01ee651a9a2c385603437387e327e1b8909ab86bc1e6e885d058fa55c4b2bdae1885002c42538e4aa350c764e0faf9464220f09239cc2b1c7ce5f252c790e267a8e9e56e14bb63d769e9cab47dccfe28a84b2d58921967617e51e339491bf19e2649f980ddbf64fc6a99c8292e93fe0254c3fcdc8647ce364c8bce02ae3f7fff509276683e89adeca5b55f291c97d48000c2bc1d1f", + "0913186fb252eccf64a818d7935c831e6d67aab662f7ded193" + }, + { /* i=778 cDividendBits=3919 cDivisorBits=1789 */ + "0443048555a75af3d8e91d34df0409d70982af5a2e5edc9d23c5fbe3a9ccd359b9186af45587d1aba840a9b756b4bea246212097e25ccf781319318cc5a604ce5cf0ec8fb2e2c8c39b6908a018cd62d8d5142c6425fed49b1633bc5b08c7f2c05ea4804fa38fdd2e951d8893a0f544237bfcc3820fd2c3874967dc75612be698bdd40f38d05008e1f2318b60f3dd938b3416803c9e5d1bbbab018cdd7cbd436eaa34ffc4e22dec05bdadcd65bef01e67409126a31249eb04e5a32511101d756b3aa34826e5bf36fd2c22b8ff6e14d69c0a729fab4b22b2630936ee5649fa3f150847dba9d732cf5b60201fc2ada1a5f83fde4250c2ea838b1a93f1d55358bb17c32e3b4cf0f29189599dd2eb37f309a3937de613c9ef2a4273069861db8f414bb3c8924fdf6b151ce37b034692b21dd9c3540fadd4a6d3fee2571ec89e8847c16febb0923886ffced46d25a174c925826496394bd9e5e07fb6705ab62c380a10de9d39ae37dedc313d49d4f9eee8d82351d59aef403001cc62d6b567ed02d84f59dcbec155a3997618a0c0438a1cc3d9e76f008559108e38c8578806df2e22815d1ec40d744be190853fe1c432202c099e1526bf14f094d712ed5e52ead75e8bced36f871ab5e7667f5d34d494c24730363bc360400e33ba0bab0da7ffd3789a8826d01bf27b01a2e020", + "09db60f7d7db06044f8d8d7b669a1555437cdd778f00d111c6d07461ee25773fd462ddb5b915d279c2bd07d0a90694c5950b9f676c392eeaa97df50da474a04d0b071e99fda5c6ab385aea80c1c644934513fa33a0ef728dd3c53f5e1e73f01b84033518211bbd73bfaa59f2ea40359733e1ef8ea135c1a64c4dc952a438f654907a78c829b1d9c5929c96817f902867c72a0602aaff27efac98497861006d5f4e14ccb336cfb10f49168010d6d31bc434027af794e62d14759cb858ec1d0252809e0d8fd827855c35cabb86aaa196e831e21e0d575104e27ecb38c7f9a38e6e", + "6eaf650005c5e3c2540f464867ff0788c55919decfde3c4908dce394004c972a9124559b70079f350d90c766426b43ceced2ae1a3e437e1208f84ac9d2551d3e0d72d299995a5036505b15de90d07abdb68ebcb06a2332ceb1dc38348514224c6fb05382c104837808f653de74a8f09053781472728fe7c5ffa21a4d4b7b9a18b981e4f3bf438182b77556258264fbdd708ec721497ca66229089907499c2651d83039829006d91e30693fcdbcb734c0fa89bcab8580d33366d0c4dafe2107f66c5eb80c940ab37022c4b3eb7ee70a76b2730b471258b5d8133d7469effa83ed2bd75ad5a843383ba6cde6ea4786dbaffe0862d060afccb8357c8f37078176d213b7934f1c2cd8239d0c", + "03090ebe5a8ab955d5a2a978d0cf4c19e904fd76196ae6f187d4227938cfe2543a21cebbc28e8f6ad3f9ebd72bd22c977f44eaa9324f4a284c0dfd9c53ac0ba4d7ff99144efcc9932aa5804a6890c9c1115450db759d0df92cfaed94bf4816d47e4ae960865c57cfb585ebb82b3d8da1a54a327f257ec0a335c24e20496c2ed2acecb2383a6379e2c392c45828b3c683ee066e910fb2cdc605e4e5b22e09a3bb14f6cdaa7f45aa9053e304f03c91b79c12b3a71d10aade499f197ca20cb9b99308c458b60f1ca4f13ef47ec651b40c7f746d4b9c69f10783d5270090b694bcf8" + }, + { /* i=779 cDividendBits=535 cDivisorBits=511 */ + "144a6fc59ffd308407051ac588b84b8d0e25c46f1598529a7ddb56a125727c601e5e0c3f19ad1dc3c9f21ce70c3a4611ce23f2215e599bb2b2bda4ac212455efaa937e", + "304ca5499b04749bed68c0e74cf968318f1265ae1d52f45a6933e5b1ad7f139ffc604c2a14839ba39a8784665d646b49cbc03f79e483c47b0051f42cd0fe00b8", + "6b8bee", + "2adb90ba3d65b7738cba9e3804e59251eeff44db2ae79f78a3eae9fbe073c5077ea171d92e8bd4775162856ce0592a5aca39a422951a27dcd1a073076c3a006e" + }, + { /* i=780 cDividendBits=436 cDivisorBits=204 */ + "057ee46f8d06ded6bf0bb88063acd8adff5db16ed43e8947fb0747e91ccb5884951603eb8290bb48c8bde6588429325269b47d669edc87", + "0e96ef06789dcc3e8aae127d057405fed2c1a463ca8ade452546", + "606e6859828384f6db19509eacb29489e517cdeee10454adb717270f84", + "0159d55a08c9ec2c5e3b85a52e8376c6a70c70611bf0c61e8a6f" + }, + { /* i=781 cDividendBits=3121 cDivisorBits=797 */ + "86a1f06e5a949ffbaf37c02a7105b154f8f10ed3563f0a98d50a5c2890566245a0b9a6a0ebc9fd9e061209a44ef794c2006714342dd21c571ed1ac81c96d32419d1e98e766504a0e882ba8c2b8ec7e8e1afb4903d5f40ab2a33efc79352b0e585382544b3c4e2e04f8ebbc77670bc4002ce1ca40b0151d1e4ede17a0fa3752bfcbdec4f0e2f592fb88b133a03431b8057260491f839f162e9cb6be97463157eddddf943f8d8b5d68a2c13839350d58395aafdd71398036e2c4e9c84eadaa5104c3f23ecad44760225df67f269a9797c517d30c5bf9905919296809157c7be0623643ee075645df859ee298593d754906c94cbca6ef616ce5db7943b7632ec56eab98592e191ff359b8dfda8608f60a180253d6720e5886f13bd611ab30fba5d3fba3febd4a2a6bee70c6a08aaad934ace2e190cb4faf558ff90b2f14af4e0f8adb8e5e95f6b94aba8d86f2297e25509b0996dff6391d8abb45ba55b2d21da50d22572083e3f9f3d88d368a68ad5da5a9a6a911c19a427036b902cb24189782ee36ef63e91478", + "0d8107f5aa713b5c314db140f11d311fd208e3c09d228ac4eadf2813a28519097b4c87cbc3315c058e788e49fdf25fef6fee852bbee6112c850d2628258508849b15e8550d8995b5a15f216316d97ef234a64791fad9cd6e6f842c5b27022a93251e82b7", + "09f8456494568495e620ebf622348c24c02c1bd1e1cc7b9581949ebaad7289a787501b94e1e8a61043e37335aba6cfadcf894fd1e625429ca8c168b5dcc7e66fff5133599ea2c1b682b29e2e1d8d881ec4b723656eb244583588ae5cba85e54202c3a990d59848ff27edd620f3e0399af9413cc65730aa22de99f01a1d3e227b40d028260f1f5139eff4ebeea049293820037ea38eb6343b8a709abf0e87bb72c572464d5e08c71e16c10106ae87ae6e0c54e7ee8e1d5a7ee47398d22312969b4b8f1311a4b39d5b8f43d3fc7216fd82c8491037fbd8035d6765384edc3ad963db8cfef6ace505369df6c6ebf7367cb25bc9dbd8c45ed373b46bf1900109178c1abefa45d3895fdfac4636beac6a4cc70751d319bddf4532c364ffb64a8893e210d7fe", + "079ffc78455af09d14394a1e869d50e60791ad714b4ac6114a85aabe178e61b9414f3417c1df8ca2ba4b3c3e03d4eb3a94db03b986ee0be9efe3719cbfd92158b6d97330edabd694b3623e28fedb56729c3599429660053d3afb746c0432dc61366bb1e6" + }, + { /* i=782 cDividendBits=4078 cDivisorBits=3842 */ + "113e7cb40a8a74be9dbf0aaf41b059836cdf78673964fb55c0ed1340a540c58e97e214512bfc306516f8ff53c827aa5ab31da0e1960c53f2a1e2226c9d56e4d7e584adaa9ee2cf636894a0f1f7c015b7de988f93efecf246ffe0dfd26cf211980fb4daeeb4d8f3c80cd511ac7a54c48610451ceece03168e735ac2e296d04f8e96acba590669241f6b479719649d910857ff1c71c716622173726d8726e815fc5ec0b98fd72e9dad97cf4110be02ffe60fe6a88e9e20b8ae2bed335a5fba1aed4fd2e6356030eb50ceda7c34325c85749ba49a4855a7cd24dba533da5fcce2dd3a7db15ffd6ad7b5dc836273ff49c186e88edc91ea805cf0a40dd946ef25597a8ec4e896f7763e9a24e729ddfd607862ff38da9ec8f4509a143f9af92c046704bdd6986dc686a9e6981db9042b6444c31d8b7301c7036c2fc130f8680a14023f3e9a084c26a2d408bbe22b8247ad2853ad4c28f40a879fac53aacac0cb87cbe5f59f74b747d2fa0584c41b29def2c2dcdc60a56ba540384c23055d9b479ab91e16de8fdaed13c295f17d3d84b60750dee6d666504ee50a85bf18e4367979135f32fc6558e8b4021d8c94052c782caedafb3514403ffb7de8414f601a56c942a0fc6fba8a43b586edf9e36861ccf756492e98d8fdbb1e22f48fe8db7ac08c1bb748875866733007697205311f62158b022d3c97d55310db48af6c83d8dd4c", + "4a0e521a33d4aa031947e884504f6cf3b6ad2f97aeec5056122e0e1759036531d224032b4396045f513b06bdd64a9958cdfeebae0e1984a0c1828aae94282ca3fc4092d0cb8b70be812342da6a7c82d7e7a97c9b4bb9e870ab8c17e89432c0bc858f8a85828ca148b921c4912f661b9ce4d668e737a5bf434d663b289123148d30d56678ea85068f509ae30fa0ebba136eec1ee2ae58ade6eef2534b3a9f9d96edc79b4a6c691154be666bae3add9199abbb8b16d11e3506f3ec47617acdd757d3ce73c21430d58add66102ae1dfc42296c7009a621623d0071aa21e67841686c2a02636eb575a668212392333bb1542b4556f9280b645ff4ffb848d2388a26610b5f14f1664f86b9d0d32ba5b5d8331baef96fd8d36f4eba7cda1a31fbfb1970915f290b060cd2916e8026a6e2e7b0affb56201a2b7ec30dbd869e3e3e8cf5d26e0b3bf2d661b069796762420608cf02e1d895b985683a86cbcf5aa1cd51fdc82ca8f19448e2ddf8f157f96942324d6ed202d46c6be49de29c54f7d70fe59ddc0821041560089886155778e5037a1d75eb51a62c77f920e3202eba4b14cd3a7a59553ac55fc50244dc42690e53d38c2dda7f70acb4e9ff68ca0af5b24043079bfe993f61d354052f6bbf2c1947371cd54773db01690f42fda178fc505633e72", + "3b9c340a95ffc9c45b97a1f1b52b0981591d813cacde2ebb87089e035126", + "2fc2cbeac8e4559edc59bf352b03c47c5c632190f9ed3cf5f194283b1a43ea979a4b1a6d57a0121b17e6d106294690463415291e4e4a891c5b5f9c3e5691eecb5ace8067d7394d886482a9ed513a4b089e987d24e7df910914450e656519ef6f439149a9a730279af7e1acf4336fae572c20ed4e9a60d9faa65401a2cbfc6964a4da1c330ca4b74bcd18b64e546d9e558d0c1469d6672c1f92516af77b1399c08eeca7f740328e1c02c51ed8684870487701b212e7be83a5647fb62e06568e027db1c4b616a3ad66d29fb6c4ac44613d89b245fbe505e59538a6083480742916c225e75baa4e896643ba60388cdb9e95faa697e9c09a26a7414fe71ef700a095d037c20895ce6c945a5b6ab0bf0b30e96a92c697c5898b63a7f5033a657af8e5d853c5adcd6a147a60e5579ddfa333e6bf68ea5e68e5168653dc072da09744962d80479a72f2c3e582fc500a2ab63b907ea3c29e4ad6d9745ddddffec68bc64fa3fed61ab72dbadc4086ecf2291948c8626bcccc9c8b696714240f4a4db372b7f2d7dbb772db3a6896f9e5c460ff4e86396c8572e4b808f070864d21eb67600c28141650ee21da490a77aa20de4cd1c88d14d50d95305148dc56e69fa16d507592dd8a44c63f4adf85f3c1ae375ca6b43d0a23e2e3b6ef60245b9f3539058660" + }, + { /* i=783 cDividendBits=3561 cDivisorBits=3138 */ + "d6ca1d7e78c474d1a5853193ecd0b3032d27c25f5a50d8eb006559a7f4fca47a23409921d73c7fac1c789f8478a9d61145aff1d0022a65d36c12fd667ec033c4f143cc1c181cb0ec61d22ea5cd86c0d8fad3b5c581a4a7e815f5683c25fcfd6453de9cf90955be98ea3ccd887871bca7897c2487f60d3ceb46a9b2b6181ddedf803ad2c26422e5a22ad71516188c26ac1320e708a613ffba155125d933d0e8e27157f7a9fff1aec4941ad5d1d56afb2883173ac29d6c26bf36679652a6f0ad13901b3d579c687fca8f45d936636d1846e6480c297b9d1d22b001a696497d6ae96b9c0b790441e6506c34847247d1336462153d0c3c072368b34080765b511af9fc8d8d075e616beb83de4993d9ac9b742ccc33934c8a66cf25f62b1ecf8a6455619e660d5c82b9fefe8d2ed1e19e5d9cfd894b39ff86e05fb4a624bdf8942c505f71dd78c20283d143436a3416e87cf8e1b948b9cc6a8c42ee04019358b74c999bda9a3e7f79649f9c71368e731a21bb8f8cc50d0e750a8aea7fa027ac4fc9885fda41b26ea0f2a4800ce350b3f0a3ed40733487d5957a59643b23d23a49d891cbcb762338c100e74fcd5ed303ab8d2c241f8613fdbfc189fc1feb5d31", + "015a84ce0790ba758efa3e9dfd4e5cf6f6d3c9f32d93912809fde2dddf0b206a96a03991c364f76826ab723a7b0db1f1eff10ea701476f09908b63a23522cad9cb2ddf5b401cf291e30b4d4cef044ec7602caaf5dcf5ae82e281585b97935b8d77480956db11645cb911429ce72e5254eee442284b385f2d6c82a10b22ee3e256760696fe246a9660fde7ccd712a940bad582453ae875b983c9a99359ecd29f87d23b7eb3ae64e34fd988e9c5858a53f19e94b78665663781f9a4cb72594e287607d291eac2edaacf490b0e10a5efc20930e840b2a6a4dec561fc07841defe8a52be08d08952e80b9ab54b2293accb013991f5ab6b12df0d9712a2fbfb6a9b21f0ccc173f5a06aebd807a291e865b8e5030a81cb047aaa9e962dde39a064f9bb3735a0b75a6dfc1c51ccc8a265080eae56b3e1341cbbca12eeea9c7eddf5bd87fe51c070f901c8d5c8f645d609d8e8bd14e7ca5a04a8128f886cfb4d41b828d2d2290fba1d7658d80a34ff2defdb0c08f91124a6db75ffcbeb5380cd18f80bf8a88b6362622cac1fca", + "9eae76416b93885295a09411dc0066b9361cf480a9874cdcc4028e27f75c106a29383db8b107db7bd667e87ee1d4bb0731b0fa0aa9", + "ceb6736aa545cacc3927fb55f129d62d282e94a09afb4326640438ca27747ffd8301d6bf54fb28a10be33fb759e1c12dd25337993c3e679debf9388ec80100f42f011452d40c375522cae84c731da73d4b3d84991bdb3d8275a61571e419203b682829ebc6c94f9bbb786d49162ed82ceb56fbbcc05c0d041f5028bd0bcbdd21d507b232c46ed1cd64a44e82558f8fb198a169268ae929c591ffe63169b0a76499099a20d947cb09dc6ae3aa926b9ccfec46862bbacc7d2ba82e3bc142839f70fe082ede78654e9e331030f10f33ab61ba7e2608cd78fa42f296f0d0844b5e7d8a170788e766bf172d8e36c0985755f6ec5e7d7502a8c16e43b6daac0119cb1680040960d923e21d2ac7c3a12f02dea26113deb592a88e69e0a1740bf0e6a0a4dd554fffd2383971815f05454cb8518bb524ac9178c1cda1d80231f4c11a49017228e28da3e64abe3c0caf1b3a6b22284b9435ed75da659ddc5b9f9d722bdbf9fbe91b97692112a7f90ad2723aae8b2de64261c371208faf3146db459312d7fa84592fd1fdc87cd7" + }, + { /* i=784 cDividendBits=265 cDivisorBits=178 */ + "aa6440e6573f104e011796c956411155f6d94a568a18a09a8fc9c00da55ec1e28f", + "02696001d7eceb918b73444cd56892834051f71c15b480", + "46a785d677ffbd662c7806", + "01b9aea792be6c19a3ff9e2aa12800c1d7108a83a3a78f" + }, + { /* i=785 cDividendBits=317 cDivisorBits=166 */ + "0a88b15735f844eb3b4fe08a0c99bd25023833a32ecbf71bec6857e1b46cbd48c38712759fd4030b", + "1b80bb8ff609395373e3481796cbf84842a4e4d799", + "620d2540e1165d7a1c18006029f3b981d3013a", + "19f32a56e92d238e2ae975881727722ee493089161" + }, + { /* i=786 cDividendBits=1078 cDivisorBits=172 */ + "030afb6ee8f9e8a4b6a498873a430ac3090de7e2e2ce2f394eb8c8663751cfa60fa61ebd2427def22607f4786114808308d22a68844486f7d24df7c50e1cfed6d895d3196b5f6067cdb4af420930dd6a7870964d521fea15545b4072231996e5d957e06e504291a4ba8248c9046afc7066067ff25d8d8a40f14c48909e7b41b6fb2232641781c9", + "01081827f2140be82a2d6e228631ab6fbd45128a89c7", + "02f31b53e6b1f97302bad5926b8c25cdf56cc3fab0be96bc1f23d5b7911425860807bee8a8dca82ebdbc0c99667d409aa14c6e19fcfc1e2f41ee5374546d07db98ef8709fe5faf91f7cc594b4aafaef580d69a16b4e08a856eea355737c7445399df7ba604a951a213ef817af8a293bf7e64", + "4ff410f7f053dbf6e26cc3d084ff04d9aee5b0be0d" + }, + { /* i=787 cDividendBits=1356 cDivisorBits=1180 */ + "072494a65b2081c411c52b0eb530d4a4db8a569f747d5166d6b5d8b773b6754988ebc30420b333724201f31a32f1994c94dc9605038ec80b8929db52eef1815d1719256c6daeb1ca56314592cca49d667edf0535d6732b834353dece9aa68be2b01c9b1a6f61c209667ba7b44bcdafb3e7742ad98e048ceb0bf0464ef4410194a942fa9ba0c13f089cd498d2aea046888cce22e6b6370a52eafbf6d3ce878dd0114ab6e24fdc4f29ce97", + "9eebc4c46214734bdb0ba5ee2135aac4d69f6108965a3628a151bd968406a315db7384dd0737b5f09315a2e387aef8735d9217b67683be32b87462eed86795c798c51536a229bdb3040107467538a22d48b491d2596f1398edfb3486ff579363519743bd2d5e72f8a9594b350314b4d242625e1c70b7d9c41a230785545e4a24576ede3fb77ad4fe7fd1e8238d7584a027a979", + "0b81980c876d9dbaebd700c01aa180b8ef787f9e3e3f85", + "4ad46e45186e99cb91f70698cc7e08c38962f547c03fea195cf24185fc72b3eccb35eaf40e99605d5dd994a5a73f7e925c75cdcf4fe3eb7b7d3f87feea23d83f4998be5229c93974c3ffc9319f7c68bdf7295333e9a23970379c91134dc3d622709c2088c5e77000d56de0319c5f9dba1f81416c99155099aebc067ec04326fdd5613d92e86f34ccb0a3f1e26c8f509e8bfbba" + }, + { /* i=788 cDividendBits=611 cDivisorBits=398 */ + "05e47e52a7db0cbd179be5795b2f3bc5221b33f7ef7307672e7735d9b5a32aadb41140f08ff2ced68ae28ee1363f7e95fb1839c8b215aecb28f4ccd3fe0938b715b59f6c4d3a39983898434a73", + "2877f8f8dcfa805df78bc333adfe44daccd731e01aa4a11c39a2358ef3d72db581de9363477c9f8b9712f7b674b228714399", + "25468e8b8f20c3978aed806d26985b92a3af0028b91ed667673d45", + "0c44824c07c215d178bc897eac50111e000d3b46f464332d1e7cae19650ed899645271e85bdbaed02ab8841e68e5f3119d36" + }, + { /* i=789 cDividendBits=264 cDivisorBits=189 */ + "609a456aa2301d35909616f17a8984b8a8efaea064cc6c401da8d64055e9ebebc8", + "192291538592cfce05b6266d00fecfff293a152220d9085e", + "03d7e58922e236c977a2", + "09e8f362057afff1e6b96e3d82595b5a64849250d7e2ee4c" + }, + { /* i=790 cDividendBits=978 cDivisorBits=207 */ + "7bebf694006b120222312a3d093430abfe836ffb83ee9f4cfb393b03a7e45caad4843952aae92a12aeb8f5cf48e314ecb83cc1b6656ffeb500a67845b8524735285bf53549207457416b545262ec9f3c55cc12690f4be83bc1791cbaeb26279913cc0d3e80aa58ecfcf703647e73f661d93c8a456f0b92e97fc8", + "5710dc42492462db6d62926e53a6ad29a9409f7528a444af97cc", + "016c5e0f4f0e9de538e1854e8fac2ec4a60bb91c872be418a0b9f4274905a27c7b3f699a74952b2360f0351b351c5ba2e4c3e0fb7b3596c53efcbca8016e77432b58704fca7b427186f15013af1b87c3e071807c6e86553d3933586663b4ae9439", + "473ada035cde423a835a8ba737a87c8fe089d53b48ca2766c35c" + }, + { /* i=791 cDividendBits=2386 cDivisorBits=2167 */ + "ddbc378fd8d6d4389824f3bab0249a7b794dff80d5cfddbb99951aee8519e591bc640ecfb616ed8ef7ac31d968ec69b17bd0e84cb80f9d37f72b3c7841d73b157694d3869858e7f7c25fd3cafbaf06ba3d4253ee7ebd3e8d5cd357453e7ab534d142499627623d6758691e532da825a1a2a977ed9676e88b9a9128030381d82296f0e7541a49a385e73b8e750c2b03e3df57eca299e99cd6565b31fbfa56e05d5ec0cd526a80767585968557bd5da9de227039ac5a195ab77aa2211257bbe4048f426ed98695f546c6298c458fff192502ec81954954934f7e929bc124ffb9d49334fd484bd524a5b20ceb8b6e8045d7da52e744090071d1781a134a418ba347aa5b036b48b7a53e3e7ae18041bb90085af12f732f09c18d7ff9a37652fb055e5bb5ad48061f859c859e", + "6fb4b3ab7b8c1289eaff92e31b1706a5e485efae81eabf0ae4555554c782e16fbd9ecc08e71811b54789ba89c05af44b3ea501caf00ef3355f604309aee896b8272cd6c6592430f550889693ab32ea143c19ebc20a47503ee20fabbdb8e48cc73817ba4f1581f0e5234856f09a4545db9a5f723920dff74839033b2bb5218b58ba25ed92b9e5d118e559885d5a8dce35a6ff7b784f15acacfdf188b6a2c7d35bb8e6ac3cb8d767ebaa090a3921c586e641174b2e2d162c4112fd03c94707e7cd15d9d4dce7f40a0897caea4e3a733e34a2aca9c7f7be914cf05f22195d5aaf282051e3f69306e616fbdf2f9887219220d783f23a204607b3d4f6d1da2d6f08d3f86accedf3de31028b35a8ad8604c6", + "01fc286b3dc90bec89b3c0d4c1f0dd0c7c8de21f2002b58f49318851", + "358cf8e1da553a5bd92a32782446bab2112552b5bec88f5c982dc89662257093913866b2442c15777473d11782f839a8c644fcbbd10a55a1a4ea4f8083128b0f50880bb21dc594df3c405654d8209803078faeadb6e4e8a74db6ea833600715e7a9f9e47fb86788118d29b8d0fdb23cc8ab634a4cebb3682c7b8448df9ba69f28c2372578cb3aecb32dda91226f8c4c6f5ed0d648eafd449a9a9af2ff19e9b517a3a5a84b5f2ab5b82ba11c69adb9c0d34ec768ac166954304a0fda2a71ec4e17f97aff54029b017b7b366644a4eb6249103935c1809de875cb74716cc298fb9aad6cd3dd75ef2d7eefa60668348a6d4fd7eed21be4c9125f5eb60d1b6126a79d056b275db1e60132d58f40bc5d2f8" + }, + { /* i=792 cDividendBits=93 cDivisorBits=74 */ + "08b9b5822ede8d2df5f58d27", + "9037747cc677004991", + "0f7d12", + "77181fe61a248593f5" + }, + { /* i=793 cDividendBits=3037 cDivisorBits=1840 */ + "04179a0c1fb5d3063d010bd59000471fa7422772d939b3577500ec79fab6deda243b7e18f71ba3e5b334567b91deee5de4bb0bc3e94e12cb5b36aa400ab19c789c48cc82d047b250c288e1ac0fa1207becfa2af3e63043b9f1cc10e2aacc4e15722bb9c645ed6886c5ad25bdf9d061c302bc60404c185a92c902828f9d50c4097de63a0fb9e62f1f50ddeb549d13d4d60ffd9941ffaea4af42db00b52a51e36917127ac529ffca9c7ac07a9c5eb9979a437583f4efc16e6bd6f6505dcbb909f115ff97deecfac28758a2d48e91effd8e16a37835ed2a38354516b3b76dc00d69ce945f7412d4b419b40c09280489a8a64922ecf231e98dd509bf93b404d5c0fc542a9d5d9e15b15ddc66616ba869197a2f64de44d12b740780556a3c3cbeaeda9a12f9ac43245a30ead011c84347a02e95b2fb5e175ef4f04ba88c27568b9280154d23df358389e4cfee814accb42743b25ae29bc7135708d02c9e9814d392a99e5ee8280decbde0f4dd7103b409752d6f2b8fe791794177a176314b", + "fe49ea1bdf0ddd340433f880eaffd95cdd83744e42588dd7ab1d74a144550d5b643a492e880496156a365c6d66d2ff82402e9c7e458cc4e6937278de3bd110b7cc6e22181278d9ed035595c75107901f834ed993abf7880577577a51816c4cd7b7bde9144124bf6ba2cfc4087b22961cc96b7b68bff732d3f5d2a27cfc47bc4d57b3ffb62211d86f64f9c66a6b2bea5c850cb307c08ed9296658e7c5d00aed546acf9b63c15b70f64145dfd4e1e69541b0f1a8068556fb1360dfdca5027d5ebfe371a6f5de396121383218fb4668e63978e1ec3be4fe679e49509dbdd6193c3c4137bb5b4077", + "041ea6d7c463db8b01d082af2bb4bd6a52789a976ee955d1373010d19c04f12edfbec647b8c59e4d92edbf34f03e0b18da01ea7383cb0343e09cb3024c05b697f244c351639a55559b281646bf469802be3f40469b56d27a17f678bc1676d7022195816b2992f5932b1562b8e60d1068c156d12851d4ae7fe93e78ab7c33194e175aa9a7d8166ca44ebd428ae7b59fff604a294823a4", + "121f4071333ae37d3098750981f20ff45b49f2f4571f6f53cf9d049dcdbcd117b7dc038081c2e4972ec5410f7d85d15ad5484233cd3cf731c0e21ea2921b9fcc9746b60f2a84c16e5c745f0151ac9859694d530cee90aa9c418320e914de575ad160deaeaeaa36fa2f610858b4dbc4f02e0721dbc2b313dab61243105ed6554ead1f298c54c9780a02063ad293ab945fbe14530aa862a537b4c78eeb749962a763a2af98e65b72ee05c572cafdbf8961b95f3372c1eed183487155aa025b3f10437b21b3d3a624fbbf37b21130797eb77ff94d03437b51ec26bf58f35aabf93049c2f0b8a00f" + }, + { /* i=794 cDividendBits=2379 cDivisorBits=2334 */ + "0171b00aed08cbe6ed14c2447b6f77831b46d7b66c4574987c58a2390b873e6ca3c981a50ea17a6449dbf76d4513496b01abec1b5b21317318c754b3d8244754bce5ffb25a6acb73bddb98ba566721043b6c541a1410c996796d44e299a57997f39e849f80e3f842e31760fef992dcfdef942becf1ac1881e0bf1ca2d0e433b5a0fd66c9ed6a1d3643f704b020c38f94815c0366dfad2fce78f7f6cb3ceda631cb201da3626035c143cd894e35beb7b456fb1ed8b2d52efc397b25a286f2ff209d603e5062df9e1f1e9754e0965aabb9b95aacf987c143ca10e247c002a66a9ef2bcfced72d6da881d4c17caf4d579a9aaaad9a75cc3f1d14928406126dc3e03726ad686c37185d2ff3ac530987f38b6ed9f1be65013d34519344c7b71a8bba97efcdc01d3413f4f06be", + "38d23d2d4b0c4c41deaeea3dbf4973bdac6f40bff68742e20b39a6e7ec54d51257f5023511603218774a1b6a7707e1e7dbff1eef1ae90183690885c1b3d7350ce5e7afbf94f7dd25123c7acda916bdda69c21d8dba2f7600f7cd0258479affe4cce8f86430081183135d2b8d37aebacd914be09ac37cffc6ae6d80664a8172b3cca86353844ae24c8194b1f4c742aeeeb2be6264897ad5aec261d8f705eebb76d409ac5cb79ceb27f7a5d8844d1c9e919bb3a373772341a0db6f0459aa0867cdb25532dea33ef1fbe5d5363bab752f38e47b36872baf2d5b534e1baea74490f221c3b93828ce8f70da0226c8fa881950ae8ff0bfdd37e5e1b7fdc3df5712a323bc61111182120af1cdbf7c46461b8185f3f5af389246be37a47dfeed81e1bf68333f4afb", + "0681932e7799", + "98cab75a225a05696d172d2a5616136c3996249844559b7e431a6bf195565723c61fe3f7c4a88151a2f2958d1d58923dbafcf31463259e9d4cd483423740423a3d3f7ab74e3aca37d4024453c666bcb8c6bc977fd720883fe555af980b19caa780b3e091645804e949f9a411cb421952b540d7a9fc465eaa7f9bb2c51952584d647b90c47c3ce27de28689e575fd564b5eec95b5a40f57935fe5579acb6d0e932c9eddf92e272336bfd4d8f51c0b52172e5edf381b0f321956d3cd168ce981b66be81091d36a6e0bc158cb8e3368f4e718354c57b7967c29b1133f76b529a6c27c714e34351b3e5f333f5aa3a2e56d7dd23c8e79701fc68ff42c0319a60d67bab1be1baa52758496b9307f8a3019eb7ab8049104dcf630ed5bdf7bc34fc63f988689bb" + }, + { /* i=795 cDividendBits=2213 cDivisorBits=1624 */ + "06f580b3f20987e3d7361c7b20419ae9040b76760c7617461a1f925715b5e6af49ef7762b440e3b5ceb74e4e3b410ea671638b56e340b4c7d7877145e28d2811b606a9a8226ce809bb911478d1b1f7efc8fb430b72bdd51ecb845e0f079d586492401e25c3151fe8e17105ee73aff5a4e7a31300fb1137148d8822d7ce440e549f499b7510702083fc08752653f03d42ab334ecf725f01d95ea57d04b2b06c2f50ad10289aef735c31b2a5787bd3cdb05f3b71ac3317834cf93f02580a0760ea169f6778a12458d926b7da4b955d5ac0072ecdf031b3ff79749d854f8a9d70a98639e277e4a17019486c8ac217e29750bb71384eec10e150fa557107068766fa8371e8a91b6969221837c7e8e7c02d5d64aee9506c", + "f03d1801d448b964c5aa29193105bde5c6ed89e5bd9ed7272069a7bef8eb76ccebf4235377e317f9fbeab4de44eda1139507f6bbf03a6ec232035be328b4e98ca0b56c9551590ed4287f986423b787b1cc1f4ef40784626e53915c4de8b7f49cf4e904ea682e892a3f6d9bc4e7e6323ce477ae8f1dd5f5681f5e95cba1656146d6f2cd68d0e92bbfe89691aa6211c9341de6b8d235be7e912d02974e27e64c88b450ba2fcef445e295468be30f2393a1080e6fb84bc737f54f889d8d90df4bf50b2d0e4567e48bf764b90f", + "076a61c4ee4616371ce2cbf7c955bd07699fb13ee6685fe0a42507b4982787b2120305b0eceb1dbd392e9050374de18cbfeeee5b294240a5606f2c3aba3d6c99997daa8c96cf0b7ff6b9", + "e17793b6f72964c517bf173fb8ac73c6ab2a0f0cd63585d4701d6c41addb6dd14ff260894f0daaaa9caa7c07ac6ecdd2f565db2ed67e44f117a07faf417b52c87b450c1024513ccf8557f4b9c3375a3fea8ff4452ac183de9184aef979283a51af717c1a59cf36be94260cf9ba2e403a33a7c54f110d5ae0b4b71ec325e8384c2e26e2ffbb0a0af3d9c069121525079c5574d607572c01a9549209d5449bec26eb40d5c75f496c25e66f3df99c94bb2e188748a1181bc715b15e87ca67666a93d96c1b24553877a9da2a95" + }, + { /* i=796 cDividendBits=3544 cDivisorBits=3479 */ + "cec9cd0c9084ec8cb3528a187eec331eb8027ba0aa2986602526839104488eea54dbf1819966e168140295de779e289e1d72e4a1b5f66fe6931428f53f0bf2a4b27877126c8369132b83fd7e9ae16691c594b4c8dd0cab7386f749cc6f546ee5975e3215042631985482db4ec1e8a5bf8f9a127da7afb3845b5969ef19749cbd0b65a704437c0884144f5ca726a24182695e7415d5b74101d472ac97d2d936fd233bf5a884524dbdb3056464aa1d9712c1919daf17148f07b045009bdbdd82f6df37814fe65433e2a774c1214e3f7d6ecca0cddb3dc865dfb54ab13f42cb7980658645b9fb5a2d541d2635880b13211787e6ee44018689a7461ca8b2886f75d0e824e1a7e17b1b29d2959422f0e6461856c30b5ee5ae6d246b1406511116f511fb005989ce25b4649a85e6ecf3555d24abe2f171367a132918ed510e8486ff88bebb6f2a5dce3fccdc89fa9b615e89c80abcd9d077dbd8f138640e666069578c6a5bec38f0d79a717d114f454bb94b952e31a0e99df77c0642ae4931fd0c776b62a634a7914df872a68b0a747afb5c0b3e70ba6c2431ddb164245c0e022513efcbd59f1491801f1da1fa2f1cf369b3e5a012f70c4ab200e9df5301", + "5b85100cb52a762ed7ea607fa6dc75f3275ef7911234deaf2892f02a052b8f7212eca4ef60b947e8b95a1123bc8097c3ba4a61ef8968805130181982ff995cf06dc888f5cf0508fbc0af09dbe897649ed3a8586e2575924ee72201a22f01d23e80cfd40381d1dc94c864c85e839d9e23c0c5416a9612fda6503e4e9193689e223ed2527c13796fec118530d02f87ba6444bcdba3ce5c455aa0afd54fa5850b1d7b4abe6044be3234462769228f15aa4633b5ed7703031bb8cb067960b172bc33abd1b840fcdb8c9562100fff17a534588e96c387775c059d20b96083e5c6b010b74117188f40c7e8952b31d654a2b1fbbe43b92719243bdbc2bd91008e4736b6bdfe20a244b6101a515edfc0d7f6543c880bf8278005a992bab916ecfb2bb9f7a589746d3e992c40efe25d60a7005bdeae645a128a8b24434fc3a36f17b84044e0676d68bd5235fd10bf0ef76c8e498ecf842d5375207dc7d188e5832a7dad5ba02313320501cac7828006c21650b3a50b9f525352484702cdfe35c1eb6a771e468fe4c3fb722d24d8410ca8f75f177440013d649ab552336bad165c8199c0e4322faef12f363f5025909c7d14622e34411875", + "02426e208cd27a35f9", + "2249afdab0e2344bfeab9870bad014457ad5c494ede4a9e50e74504f582c967d4f771ae32e34a4e269a10da9c549046128ebb41829f138fa94fb17ce99a577d2d90cb78b677d7dbc1130a2bc91a0469b1c5a3484acdb44b58622c1ff029fe4d22a9602f230e44e3c6884725e79c75843784ff5ebc61e673046b267238b857f236c299585d4c352cd51b479b001e4ed760510cadc44fb0f48f62079ea922e356fa47e65091fa9f62348935e43efc47928c2014abd2d967640fabd069a64a54b1195b286a5e92f1e6c31d948abc07f9ac18b45c6ba347e38a11b49859601e138a2c6b13b33ed6f43f77106d32452a35200b43ce1ba060d243cde7d5546b507544a1358e1953edf2065f7ae620f559cddee144a9db7095e0404d8ee4997494dd8ef067f13d12a6826881337a442c604eca1d88b786f5476d5408327527ce0afcd24bcd07cb1c91ee8bde6eff05c4daf81aba32655d366ce8dd8fbfeed35ac4dfb1ebd5575b2453ac9be2fb873a46f175e6382c3cd887d23f1a11c4b1d21948fbd901262619d34595de914b4e195a00f738e67bae6e3a51d8d6e7ce498396feca47af7e0cdf99d1e5a6bb6cb9e1753552cfabc5034" + }, + { /* i=797 cDividendBits=1013 cDivisorBits=394 */ + "116a5accde7f0606b27d82736252e7a084fc7dba6ce9fb0f897ffba1bde35b6e482259dc60276d7b5b88bee00b671e1572b768e7c8dd8729a701804c386d6ff9212e7266645e06d0d7ed21f31922913b45de9894ccd564b074b332da1d760bf881a9075a2396a2576f84029513e5d2ce97c7a8e844415b721c0a177d5ee9b9", + "0349d0706fce8acb041e2ebf29948d9baaf766b51ebae3c63059c870857cb471a1dfc1f61e2e8c332af789b46896fea72904", + "054bcef4816a53393528c3563c4f8b5c3bb58c95a1621751882b097140b9f7cff2bb7a86648861ecc8a5e4b83899009262b2e991e43a344a967f0b160f7fc8d0ec5ce89a206b498a2ceb7d56c92e", + "025aa90edf9bc6b4a5e9f905f17f0e3240b25add91175cf84d67ab479ddaaa7ad164ac4a5df6c0f1483a71da2f29c0c96701" + }, + { /* i=798 cDividendBits=3593 cDivisorBits=1644 */ + "01eae740b6228b8204eeefdb1785f2c44df048844f3968019dc8a817fb4356ca3c2933e464f18f7c36c393d6964595dec1c630ed47c306336fadd1b22286aa9fbd5ddb98e9731e0c116352c2ec1e4d8e5b6e0f71e1dfaf4432f1a1695ed68b4295d4992db38c5b3e57c64befb0fc7467cd21109c97551d2cf9a655a135b4120809801d0d36eb02e1021ccda8ea088e3b80a33b905ef41f0bf1b84e6e2215746fbca49ee55c32de93fd3b9d8ea552ee04c6a1824050a6a39c74a2ff4a211d94a6a01a1c21d71f8baaac0d454d3550f106ddeb4cdb797080c27362b39356c8548c0a8c2bc4484eface70ae3b4c57236a121a307d9c9058f48c4e6281edda26b08a8589e5d2f921571af19abd8db20562e842383324aab07f2c0899a90b8d016d964f93a5379ad5c7945b0da3b5e9dc0e15a01f312bb08da8370e3177cd0c5e31973a02a6b67ed1f2aa552803ba61c41b138cc09a030cc69802ad40b4cfce05f87fcebcabfcb36df35aa2bdb425e1b6b38017a2e1c4226e57be0bbd25e55811ae2a624ec40136530d0128fca43b22b70771f33f869eb623f3fe6e701ea2134f78ae94a80204380ad017584b58a85a253a47bc161ea6195184f1556e2752914340e6afe2", + "08db6a8bdf25e8055f457c7f6ae45ef29aff813717ccba3316fa9b2e4b1074a3ffabf03ea82b3095ad11c436a3f5e26f2908c8b1265c20cf13a669c56b037c02be30d7facee7d5f8f75bb9aec9c61e5d284900792887ed0b5793c14d88739773be30468fd65a45b16a213350f1f9e5ec09c2367e1a2ebb74d7bbada450b10f0707c2e6e4f1e0c29ecd079865348c5998244751791fa94ec73718fa2a7a72ef6e9de4d09ce0021eec84de93a096f47d5360065bd745a5fbb4d5999c7325704817ca80f8d99c95346a9871f44d8ea5", + "376cc46b8da7496770bcb9d1f7dda4410c51134e96d6175808a1dae3c4824f27b2df6655c1072a655f278a9e5c34f00b811f028f01f18153c51ecbd4604c1a50b7d76b1227e8039905ad16d5b20832c39312e7d42bc97bd6d6a56bde76365e6cd2769026425827190f910071120b46fd794fe983a08b3f85cd09d01085cc084b8e5e0f3eb6b5352dc1ca79b585eec5b990c05102fe10abe5babc54f76bdf5645ddc9afa5019b30dd2b755637453e63b1ec71dfb4596085b1aff26df54e3c3205d5928716bbf92562af1830b3e12792fd1d2cdced9dfd3ee23a1f5b75c659f8943d13f1e1d4526292d4d07d87153fba2dff4c6070", + "05de5f636f6869b47245a6a7433b5f32292d30f93c957b341a006d4b4d75e28a96feb0c235eb740786eeb31fb2fbaa08147da6ed444afc0de40cc7bc5ebe913a13768880a9dcb3fa7879999fbbbc14a1258935a9a9882bfb465347f846df376f983063104267b9dd15d78dc2ffbdd049850f4778c58a00c7de4850fe82f8ce2d43a08f5c8daea7c8938fc1ab02fb9927c86f08f0b21ed94f507691cc469927b04c239759068c0acfff99b9e71b3be80f9628bd8562280536786277bdb7a62cdba7532b5145ab8c7666ad957e67b2" + }, + { /* i=799 cDividendBits=1124 cDivisorBits=110 */ + "0374d21c9e97711d44cdc72c0ca311c9942f11e04368814e653a89879245dbd6d288cea051dccfde729c5e14fb0372d080c4043d5f1c10fe510338dc76097e8d1afa77f07d5aaf45933856a2da12aa0d704c941299ebec6d320ba3dbc5827bd918fcb6a2d7507104eb4d5c0e73d2ffa4e66943c20853207a0bfceba6aa453b3921227100ef6f7fb3b72a3165df", + "2cc5d535ee41a24222c387ac5992", + "13c3312445bf4f05ecf9b6b198be237ce87858d1ab838ca3ffe0d82717eac71046fc0d832aebd3518d752d1e3b1def9fd8d8467d774ec3acbff3913aacf37b7545cce6d9846316b06e496c51f7ec72661838b635739db2bb42d38c90aeffc63960bf3991538b0127eff2d6bd706ef5cba7f3cbcc25015944a1ed617a453bec", + "1f0e042cfa01fb1cc8bba6502d47" + }, + { /* i=800 cDividendBits=1858 cDivisorBits=933 */ + "01110841c4e869c0962a364fd73df4c7eabfd517871c06c1d701ec031b5477da5b917be41ab72c26613ee329924efb1363ed8d32376c2e5f7a4ce411ce9552e7db5708245832ef13fbce5693cd4f42a8d45e081e30208a30565df54283565dc5de491fd30f518d6d7cbb74b9c9b12b3146414aef24c2536eccedfe055ab1194656d69c9395fdb867ab127096291b7078d94c072fe2438f8c1b339bf90f6519a11882deb8a3e718dc9c582658e541c8ea1d9d40ac5874b010c27299b4d8a79e6592fe7241d014b3693874c64c91b10fd6cf8872a650d3c6664ad19dbecec44a67b04985ca9c22d1d76e", + "09763fb3603522d3772b47e47053adf5203b75fdb6249fe6382c3e50594d74d36987a270d1bfa0f06aa563fa4484fea4f8d54b44a060c0f7d7aa19c5d250f1bcaac9bd2b9aa14b46430595408c14aac1c485b6e6faf783eb133a24ca767f18af7666763726935d73fbfffe74f8d613389330da75f7", + "1cdb1e9ce397b4885267787d1bf07c665d81ac935f7a981e53ce17aceea76fbb78d4e5f1d2680ae335c5e8789de094ae121f587ca5c42f260c2eb545bd2b355e65ac7fb977d800d65b4ed705f706539258a69eadb83f4e8155fb66fd07af4a3220cbfec2d17845c6e60340551b1c4af866d3baf0", + "9637386660e91e913be875fa88bcc168cbba4d5bb291d09e23c99f89e8904be24d5d28c79000c0d0e5e74398a4eb247def45fd570b2334d639f94201001f9c14ef330d9a23f3a6b97ff09afcfc23ea7bc2a71c70ca7cb65de41ccc99da52ebb3d54ff56ec53c9b8c8d36306bebddd2c7f7b8c9de" + }, + { /* i=801 cDividendBits=3131 cDivisorBits=823 */ + "02a890c58e560dc62f7610a6d8ded37fe8f117b2d83329da9845eebdf1c631d11d96ac9f1a3427b9a867aa75fa6ec9bab8d67a4e994336ed7359394671a3dd123a714b1010e2496a7d8689102c2bf0aaf724970364e0b6b153f6b4770ea6b70de539d7e0d8f34efe3213d58e62f0845e9edcb40c1fd9f9eb257b8065522f26f9ea312fbfd366f42b35caf5a741dcd5008986243990491f797f9f6be053c07c40b6e25d211a4dbb92dd4f93a7f29ee630d87567c66f82f69a248e95978ed073a0ce4d8bedfe4da5162e17fa70a722ced94df629205cef8c5213422bd10b9864f788f755ca5a64943671b19c4cc9d2808b6b3be6f27fe128c84fb726ee9c487d3c6e843e8b05e363482eb09d00daa95d10c7304ecc91872d6e7f3299e728c3a380e2ead96f2e881baf777cea1b9df128ea0321abde62febcb40c039ef970a8db04acf7eec4eebc3d7b2c9cf63897f35a3615dbc76960b1e5317fefc8e8165b6ecfd1d1684781cc176b301ea0f34cbe8efae35443bc8f66834594f56fa26edb26f610aae234b11fb9a2", + "303346f412fceb7212c21fc775f0d202b4e25e810bb53943c8e9f518fc853c63f05b01bc7dbde7ecca8262ddda26b366e118a09dff77b7bcd42d303b0c67a9c7e9bdb3333c59fda3e92a3770f5338bc520047100ef679eca26e5c4adea9e8832319696b87b3f22", + "0e1e996639ac473c8303590fd4c58e79945a0d4da2825922cd5820419bd161ff9b16e4c84c96237f7dbe65c48f19d14a939d00d20c0f2fb605885361f2a354f4d7289375f38e564258b15eba93de97ae98ab9cc4d5cb71a57c669c365d795b92c2b9184d65664b1808940d545140a6414b48d1fdc4c4c6d164ef6bce91f915119641b4f17117057ef304864b56e9c8cd648cac6047d8c2b127e2ba6b6a1a6134f0de375f1ab298f4f389e421f4d864c6fdb733a23c33d13d8fc39e942a6e770beca5d6d6ba7e742376116eb9b5a34e6204c8c916407dab6db83c3629a031f53bcf48885a964815c60919852e4d4a9bcbb2c10bd74e921f3084ce5f58e16eef406276b2f204018814c77e08ad7be318ac7866cfe700a511d161dc528bc4fcdb86fd", + "13bd8c671df4c529492ab0ea080241229326b383a9d88464b0758a84e3c7c706b4fb3694a001d265889165961192d819344b715e30bead160c79059057c638da586e7f0eb29b68cd5580457f6cac4523e525623160748573392f0a51099e40b5c53b1362308908" + }, + { /* i=802 cDividendBits=3592 cDivisorBits=3234 */ + "6b1ab38dd450586d54410fbdcd5d4ea0365830bb3ffbf361b4288aef77e7a19d27c4a454ed151b9502ef0fd670e2fbca6b7febd09d2865156b27a3ce64146983b97d83bc6231d98b9ffa4b46de715a29ef4dd16e17c4840c4801fe4ca03b2c090f9defbaef38f8c5c963f7de8927d40f4a00877f74d257389b321a9d15f743c78c800375dfee1022b5aeb064a97df21fa84e598195fe0965f85177cccc2d28395c04285fb91e9d2c2f02c2aa14f0647fb2bb6d5c2684de0bcdfa77dad625efc797670527d177f8bdb1155b7af1909bd5d876694c7f25058f6eb497a44ccd23609cae51234ef0f9a33d838437274066812d00be8c8787cee22f2a522535a59f87fd10ac2e93dcb34ffdc0b165f2fc8feee7c8144c8ca483f62d610535255f9afda1e672bf709932aa49ba5f8302e88894a00e4e6e3e68eef33bd56db3e6d9c18f03ac6ba1656307e5ded5350b0d84def5a708009cec7b446ef8ed3e6142075138b0e6c59738066d61a48f95bc974bac4eef87d783fe86926ac96f3aa415ada7f3c1ff46ec0def6b745be53a140282aceebe2c76068aedc1d294a3d6f3d40c4ba68a899d9c4c7ee93e8f80c85bc608de2adf9a251b4a571599ae0a9dd9cabe1461fe", + "03f3778822e401115123bf95dd818115275f2a269ee910214ab005f0e6ae308d59232fc66a23cc3cdef48dd364090e161ae034da0b9ec621e15fced8a5c8cb3ca6c23fbccf6a53b9143dbdeaf7590436c8d6a524484d7e8dc26f62a20c8817e06a0b684ab852b0e67e704be45f92fd8ba386bd9b51d5affbf5b2a6725e04735c017bae6c832fe01277a2639f2d9c9e032bf4a627dc25361b4438d0f23041b46241dbd4da6a99531951cd501932ef22e4d8772c410a020b41615e71b01222ea148844bd13880dd08cbc52b7738c49e8e8a701dcf69aec13e700f3c812bd8a4a380bbc692400f5aa53c5484ccfe8bd197dbe01fcde227f46911c53fecfadc7b139408af6c543e3daef256ad060ed891a62e380f074a387aabf4ddd4d3bb6bf90066d0b7e01ba0f1c1d354b238c296129c1f5758e880858253dc8dce9dfd9f44dde59c6fa3bbeeb898cef81279019d3230c6bce9610087744bfc772e259f15e1b25f64b26d2da965e3e681570acc986c8e24d188dda89a0af622b8430097365672e920df8471eba0c87d618b4481fd2a72d98bb1e03f7", + "1b1b9c9040e46965c1cc1b0b76074926ba7eded734908e18fc48e5a36e75e2f2732c3b35d52de72b459434ff1f", + "02e845e63a32f2ba6ec27d6575b1cbd4aacc8033e8292319db57135661091a953817e4b639dec2908b0253b15a6082beca6cd47160a904388cc374f77942a8ddb906cde4dfcc38bc185dbff10c497eb2f0f9008bb6286053f4f4aeeef2a12b5ad3b950640727e697404af939899ed7c9524f2d449015cb4e5495e3c2fa9f66b435fea2fb48242ca31792e3cbdd0ab0fa63a87e2b92b33909268c2b48bc68c64b785265f0ef0d0500135ee4461d68b12c8bb83ff02a3de722d493eff385b0b040f12602fb69066ac6a8f89194a13c2c1123676257c9fcf556bd4fb37ba8d48158ad362136d5696d45ef2edf78911cedbeae760a65ec1a39d5daff804c091fff91d94bd3f72e04d95c67bd8c880e9caba326b7f382c4c832588ff2815b7c04da1900b8a404f2a527bb70e5f880dfe6357299cea4b4d7c6b22e9c2413a7f18c66ba4653e87b8c8a285eaef0dcb9ef7ca6f751d8bf55da59b2ca48a9e952a0a5611c4f9c658979ab45063a0b81b83e251908c903be326e6e09deaf6d828f606c25d8fc2609bc2726eac93d9b043ac9fa1e46f29552de15" + }, + { /* i=803 cDividendBits=2862 cDivisorBits=1086 */ + "1716a736fa29b3a1ba04aaaecc3eec3734e7142788ceee63d4c122a9df27d01086bbc599d5f20dc491d17d10508f3f91aa9e82aeb7b3fdaea76d344c240876fbec98dc548cede87a79ad5aa36c9cf756718141975cd6ab08a8ff971d85f7c12d1b04fb88eb797ddb4340ff7ef4e0475ab42e0ef136991453087fb259c4f2a8dd4120664adadbd05de04a9f62244f7dd18a2f42102f37e7076c32c38002ededa71dddb5eed5ed43222a216bce0d6c48ced903f9a610ba9337db0254e8c862f7fae6f27c2ea630ca8704c06594ec67e25f01e4bb80af8ea1d10f7e841c12b3ec7666de6bc928670c06be681aaf6e7cd85de1bbaff0088f6ac51f99ee29b36f4dc31d8b942d98feb0689cd799f95d9858c3ca1be67bd565e7b21f6b5a644e1b80ce8d9ddf78fe97de5635c6f871dae196d6b09e58cf61595a52774b90a74e296dca3e3471ce4fe372764e351f4b3f368fbc7ea02db8031d657486605e27958544c573d0dfdffd5d", + "03ec7bf77ff7d675909f53be647f7903c0a65d225104094cad151f00dcb83e39b14a28957164343ad8e152b3f614866569c52df6dec4f8418c6953369ff8207c44d3c7c5029415eaaaf3e46fb7ad6dbb9a31c4f5512a0d238b460b2cf591c77522cd7ee2d5544558686250460d3cb6a38081a5a3d665f7cbff31a40ce0205099f859acaa5a6a62c3", + "05e25f4d375c0ae9e226ddbbc48bbb153f3f0cacd505f43850c17ae0b987ad591c1c1ae09aec33556ffcb9b179a39107c14117d0721aab9034a889d27651444455f3178ad9bc16c3d3092598e730813ef9c0b0005ef8dd1b0f0ea1711e573421f09487785e0678a5552d518b4f11f783bae235ed7d0b5d87a9ccb5ea0bfeccd65641f00fbb1899fb36e3ecf5543ad645249111b7c15db12f5a0b2b78cd58ef9004db69cdef2d4d5ad413367aa8fe1e6840a6d8bb76b7fbb20938e49ff7bb92ea927b50b689a5bb8b0ffd559cf8701850327e30b0552613db9b08fd75baaedf", + "01c438d2773b00b8bb10b7bf7d33fb967ea473ee7eaa0314899bcb3c35bea4da13ec2dfc61c77e1ec6353013705544e1cd3f8cf31aa3d815e947a28c55ef71769afe97f4af8f180d7fbb3cf62f0fc51818b7f2817c93fb30cdce991334fb0f09e0e51c661c69870d391e74bda0b14f4bd19d70688244e1888522f3ba5d094cf960e93ed1ed656b80" + }, + { /* i=804 cDividendBits=3961 cDivisorBits=1745 */ + "013e6e573ad963eff9005504e0b61ee4eed331ee72f20dd5b15e09ba83cfe010e1445da335c15287ae88476bee802e3a781aa2f5ca9bf60ae8c8ff96d82dbb5fa82de248bf4d17aa4acf042b585d1397ed5a2020c16b89d973ee17d78325fedd70496c19b7b05f9e3e29a599b5370da70a5386d0b43833ab177eee033cc1b03840957d817b449324010f4af51c0a698a746a31a0dab3d8ec23ffdfd2b43308d56a09ee5da198aad93040d180107fcfe5e05e90e012de2bf3a220de4f283e0b865f78209e05dadd92c108dee2dcc35266d83d8b9d92f5c83ebf3954b376f3fe268f7e06578808a7c18ea30f3945659a354f362eab0f02bc3307bcfd2a7ff6ba5827ae77cdc2957b264965ccde2815e01f8f0bc95516691849cbbe3254b5470788433ed415aaa785ad219a8d4cb08c597b84ad0de4291c9c1bf3f047e2ac484d0ae01cb902027180921f793b7d997f5b2029f76600127fc79a4b1fee98f6e4de5979aba5b54ba14b172c90a9e23a5bc17cfb3db93287c1dfea828e88fd0cb58c16cb0018135af6de2e0b296ae380019d1ff8f746c76274f8fbd9706086c36281d5a44e3fe170e88e340d902c2433df816de5655e58791a845b8e6fd1194dd753263002583d5b2d23295d739271aab2dc9fe78e1dde5812bfaa2dda9376cc05a58c5fdf359ae5a932f97da7d55fa18ada14", + "01b37915f19693729276e13045a582c631fcda1176c1c48335dbed5d94d342e7e565a04884b52285e60d558fa2c2621086253b51022cb60507c832275349f9204aff038f133743d4a4ebf1590921f48c9a8e3e3eb0e02abfb1996c4e90fcfcb87ad2b639fab91935da689838b131af54e2cca1b6e26ea71849f4bd9bebc7a43888acf4793ecf7acc5de420b72ffbe4b2b0d86597a0eea3b262c2e8a1063d57c228ee318f49771d82aedc40923371c3a78e62c8637068c589684be9891d16d8966f2fa5cf228e5beaedc2987fb3f2f506dd3811286a4d1d041b6306", + "bb31e7a23393348f19d6a386af6b07e58d8ae3a0cd11d7899f51138856151a1cac553c3e4380faeb3dadb7db2f19336ad7f78e9f278b338b1c3cd5a3fa3330b29afe6bca9addcd9406a34607671d19d9942a8911553adf070fd62734cbf487d50f36607e26c82d3e62c537878b295a64af6e650ed10b56ae298ad0e2620b94e0d95503e9037828463d631278d4180f0acdc0fd48b3a0b5eafea288b871b9422588b0eb47db3c4b3ef8cd3750ab982b4620d999585d0e7fd96dfc456b90dcd3a23d2738e234811e14b8f0cada333b332cd032ac7249d7bfff89bfa6ce74d9323233f989985bb46e6bab93026f4a92990452c57f3588d9504f279fb79b3670d594068823e5140bcd6cfa47e4a025b211051adc838de1", + "01020b1258d693af577225ea29cdae7c2b4f252eaacc5aae8160108dfdec0b8955e0f81d70cd041da8fdc80bade396a2814b6640114ef34db8f5194e563cb78625f85678f38ff0960a7e537af6b50eae915914ce4bb5786911d9e89e087219a64b91e630d95b87ea5ee31ba0bc9c6fa9bb4207cbde40dacc9ad878c57db9c7463c5f16dcea1f47ceb103cbec1ebe2448b7f06906dddfa78807a38e279cb47465861930c31088bc87438731d39966c1dff7395b3e26f5947098151a0a0e1499a443bd24b6cf6a91f03a7a1654f1b3668a8fa967534343e31bdc83ce" + }, + { /* i=805 cDividendBits=1317 cDivisorBits=934 */ + "1c0b2b6ed7b8396764af708afe4bc4e4eaacbd7d03d86590f13499c299f556ad84d328c64bab5ddfa606cb2bea4be6903dda4ece4e4636c1540bf16b2c72c066b82c6390f3b2a5e9b3953aacf8c58894537b7fc092256dad1a21283eb8ebe9e6dd97bcd15980e468fd9dd64f7a642173c725bac56136329a37c2024fb6c6e3665bc89560ecca33810c701b5636f1bab29488ded0524ab5e93d6a48f667d21de59f8fb63c8a", + "2e33b360884314c3858c9beb9253f4e56ba04d2e8fd5bc0b4ab05911f6020e5c8c2d7da150bc2f09f43942a041dad8e74f7af86bdd77bab80a81e5a1dde21b9ccda7ae4a795e9c627b513305f1abc9eef9fcdbd109e83e77be1ba923b565ed6f999249ea1627fc8da08f2c044fe13b567c2cac9935", + "9b62ff11e40762daffb35cfa44520f03f402ab10a31658712f908dcc175a0a9af497d86dd009a310181f2bfb2f31f877", + "10b7163ea59823a3588c911dadc6bd109be4623d691a476ec4d7bf3ed17c141f5b61d0fa4906c6b8be61ace9d74ce3f6d59dec4e699c9af18ea2a8f279678355146831a2e804cfc5595b74a413c1f3468091932387def1463a9f21537e4330d533a01245b359f756ecade00103f9670b7e88eaace7" + }, + { /* i=806 cDividendBits=3179 cDivisorBits=2969 */ + "033cb68075c9f9b5dcadf117c95dd1cf3649330fdc05eee83a8c02cbdbcc024bb9707cb2a4509e2505785fa18bb026f2aca3c1ff14d003375168588eedbe6e3d01e692363623bbdd417de99e30d87ff21c23db14e810b2e97c4c9036220573fd96ce8fb1052cf764e706f54a9e54fcd816291d55a40d93cbcc1688ccf79ab379d9a90d4c634f6543d24cbb5fb53682c341a473f038586af7924934beb2646de003eb92be3d478a00dcca4736230bab43285f62d61690609867e4d9ea32f720c99702194f1931e8e5960bd022619d4ef36e0d720f0a5b660a8410f7f23c308891f839e049661db26182145c4cf0177b09076f19f2e6a8756f758c1d75c45be3bcf80b1ee055cdfcf5217b768d0896494cfbb7b84e62aa4f9b870bc8a74222acc58e9e03f1cc4172a3dfdc3d3c72c0ae124c87ac0f4a289587720bb927547e6c20e452d4c545ab5fc962da07b2957d5a1b7f2a56ea78c41d55298b1d0480b945f38bb8d23dff75a3cf57a7686ec9518ecd36d04ad95384ae1545170ce02cce58199051314b3a59ce6396194c97767d", + "0162a6b5ffbd715f9dac314351a4f091994a86f024ca109cb0dbe77bfca1aecc4263a619236362f9fbf4b29236eff94b37e428f53517e385148d5169ef171ff9deb7cf1dfc75b906b41f2631c930bd46d14e4b619342e131c239a0ffe0ed2b9831804080dd2a3e22d9a1dac1dead4ef0199d0ce722bd1aa3afc1aed885915ce8e78ee51daae5eeca959f212361ec3120025fd8a9cf81bec11bb6730007b887e6557b794ae546b75928448c3399d7f0d65739c5441e9be83d89e918ca0355802738bffa6c6f8a1803bce86ebbf4c7f6df6bd2465ad8049cc224753769bc9e60eb7dae9fe785399350c6a6226584e0b34ee6c79203ba355f8aab53b996b655b7da0a7c0ca4789263ea2a0fdc3d0ad004dee5cbb25dac8d10f34459f0426d4159448b6e1e041825612159c4b5f305fb435605f130e4a117b84d824f427cc7a4762abd4535f27dccaa1cb53584e24ffe6ad1711940dcb3ddb9c9dad9a8341bafc575887397411ef862a783c48d277522a3f55bc2bcbb", + "025631dc75262f9456d5d83a218bb3c7ea67ade96ee9cb7474b605", + "014711b28d783836d1b19004c754febcfe74fcbe552adfa6500b6af71d10c77c48ded1de01ee79879575f416a8ca7c02154368e61c97ed3e647ad7c6b70ae925c8edd630a7a1ac52f2164e5439ef32cbe05577874c919d2da95b819503b308afb13af9a17d7a8e345c9446320c4f72f687f26869ddf758c2ce480bc616210a32218f1c71913c9b4f06f9786f3d4652844c2ded2386f4a2cfabbb0a109381aa95eb2e07972fe9c8e5dd4bac3df8b8acba46a8a0cb2921d1ca6a13760b5f248842895e161dd4fd166d1fee82a6ecc583bb0ad1d343d36733995c0e21e22c6d88e5a5cc9ff42021f6be31eab679a197a7d0127913a91dc22e09dfaf3c6fafab412afa75346e0570a1e5f378a3f4ba235b32c78c0b281f8198437e9030167fa8fe83dd73b832d089e448a01555e2c47fd066e744e598bedd218239890069c0298cb780433b9853b05e27bdaefa2cf768ab838ad41dd8cce9cc1c11b817f43b8a63e375523aa350e0cd23a10ade6a1ed84606cee0d4d6" + }, + { /* i=807 cDividendBits=604 cDivisorBits=46 */ + "07583dd7c717ad1f8e217877ba09475c30735dc6824d46954485e5ae07a6fb90127df33c8d8ff5af801f198c8d171ba37a4cace5439c92dbfafa2ed91c3bd13cefdd4e754163e17200178862", + "31910fe8bc48", + "25ef009743535f3191f2c7304355fced35ee575814c67d1369fec5f80c5eae61b8481beeb9b53991479a58f231005aa64b1b286e308c9882f9b69a611ca0442b23d5fa663176", + "2607ca16f732" + }, + { /* i=808 cDividendBits=999 cDivisorBits=661 */ + "48ba3ba7cd0aa62c6f55c5136d7b2e97c1e2a243b641286b94c0075e80ad820f71f99f4015c903dadd26a2bc37a0d9bef45c39e444b2ad2f4ca9ecbf81015050ee11b63b2a0b27094e3ba4ac6cbf600a2c0a48fa1aaf6d4f7a7bdbb3ec0fef930484988b38a511f443216948fef1792c9c0a37d5af7e8f7fd7e19a9a32", + "193e266efb9210bdf3eb0a85dca1e58e9b44f1e34babeb2261c3f07130a6489db6dcdaa1c244cfb49e44ddf7db4be238b5ef670cd9362f73ff15ef9cbab77c8f9275bdb4c3cb3bb7b8914520e9a68767903451", + "02e1911c76ea14245b02894a2f28f807dc39f5a62334e43d44822396c01722adf5909c15d68e19d8ed24db", + "134c73e3eceaf9b35eebbea6ce05f020ade3b0c9e69479ad39adc42d971c6a4cf44e2b0f6b97d5140a4b663f6e4aa48af46bc3231630770c5b5df2a9238defe5f61aa609c7755ff06f033c95b668e43ae574e7" + }, + { /* i=809 cDividendBits=391 cDivisorBits=23 */ + "3276fbe8ff72b98b814c297988005dc0ca9eae7cd96b460fb563a71e9d20cedf244c2e81a3e10f99aa940808fb04faa6a6", + "091f5e", + "058829a6f16f49dc14e257bfad831636e33780d58551b6c4f8c560e1164f0168fd735996d4bf8719fd7b71fd45d724", + "044b6e" + }, + { /* i=810 cDividendBits=1415 cDivisorBits=389 */ + "1e478b7308705b3170d1a4eeff5581e0fbf34af4d00fc427d2b7c8d2eab64f5ae5b0afe11e7a2453ac24b510588126cfd2507c4811c112e25cf1c08092de5c94b3e9d259ceec5ea029a454ac4c38d8309b73efbdc283a4e4008a4464e846c947065fcc5cc9608fdfdfda380f89f52889fd7404c3172b136d5e9bc090ea630161c613c6a1a21c63a815cb17b95932db6603954a9b779445f83fc140425d44ae140adf3a4ef4529a53a265c19d7cf0b2df17", + "0c8f7d323930e415d7e1acd5b3c98e18e338b84ff1db2c0f26b06f8c7f5640ff6f465d33ad17174c7d492d0f1ed68094e9", + "026922ed707f5b27a1d67cf48c86a13d5a8c56fd86f277a1b74de42073b671bdc1baca123c46086f0e1019a4f860a21f547b105cf643b14f4851093fda4d31d920af1401436d5a502b6666e38f225923587172e8204b912c47b6d364d38553824dc80509ae59bfb52cd2c7692897bbdb4ca98fd0e8db3abef7cef81f6394cdaea2", + "082a2c0b5f56c1d006066561bff5db03053573b95390afc1792865473017a39b922ac9c4168521aab141c92e04db8945a5" + }, + { /* i=811 cDividendBits=2656 cDivisorBits=2606 */ + "d317f8351f2be5bc452011fec92c3eb62724107eb989d2fe70cf0a09ec977a208d3e353f46b6cf971042fe6b4e005f788a51b9f6e389c26a3261b2a6d3a732b36e112cb93a2903dcbf791a8c6b8902550052a138c21d5082fbfada95f8db71b5992c6d112e1498a4a354b5d4809257af0f79ad6a354e758fdef1460e19003a0d3cfec0ecdfbdca5ccbc871f0db316ac544015ff7777b6b4890f3208e8fea897525c66c8d760dae98a00a11c8d9f9a26176e14934d88d6b39221fdf46f5648af48eddcb2f55d75978feacfdb7f505d313dc0712fcdb313a452cc36f29b60aa844e87613d89f5ff4c0efb123a9583580eb4bf81836aa1c8e72d77c4382261a6c231ee30a213c24533c9a847ecac22263bb3921edc8245b93b42f4542014e1eb636ea76d7e6727069b5ec8ee9524d61d4edde814fdbae62cafaf5ee1d0e579e97a035cf7ac451eb17abf1da4b32", + "2304762e1a0875ef82d20a55e8f55f5035f603516778252d109293a7a81da966c65fbb18bfc114d16dc4dbfb91aed9ef31cc1401cf25bb9fb6303fc7f12f600ac7b7bf486465f08979bcbde0b6bdc9e05001e84b6fc9795ca5d345a4a29398eaa99b3735e79fe594adcc455011bdcc858267cb97ac84ad3eb3e428d35b05830d116d8128372dd6e824af9ffbd03426d7c5041ee2fa328f9b220e29c53dffdf2c3c831b83b4e35d68da54f3a2853d44f3745656e4aa795582ffaef21764812d83b0bf4309b19193ae36a10917fa08658e4e989e842485a6967a3735edd4acb3537101c2de561446a310cc508d8b2f9f77efcc00bcc8ac4bd48fd687d29fb864e2a882d4a3277f645c63c84f226b1c9d9d84d203a1ff3ed800ccd86dd2235e1748d0b94dddebbaddcc4f244fb6e2be9ca18d3f7d59f361a7c83b96530d9e8b74abbbbcf647a83b", + "06073b0da697a3", + "2eb93dbb63bbdd5c4df45ae297d38a1197ede09bcceda5ae93a023e1f702377f8418420a8b5a067afbce7dd7d4de8d71694620f897c03017a9f9a64d8076d031b4ed686d7a76ee98a5e335193ab6e6abc3795dcfc46eaca266989f2691e9ab60eb533d3b84fa071c73b6cd5db14af4097d500ffdf13f9eb3dd4e72de0bb3b94db1fe5f1fd8bfc99e95bedca8d1504f945713c1c94e5898e1a4f371e32f312731e3112e89caec7046b8b144071e3f50d9b0f1ac462ac6449f64a6f2de947acfab2cfa733f40f46eb4e33b27d6dd899fb02b75a4be3fe9ed49a05a219e51d97b43b8bcc9f0e3385ac15131ca066b7ef2bdc07c64b2d884ae502c12f740e50020c170e6eb1b5ecc037b28e19f3568d590f16d02fddcda9843788c14c7086760e0d1008aad4c2db833e7afb42d8301caffdd24c5f4cacfe78b59af6c20b14cbe4d607bc8bd60a1" + }, + { /* i=812 cDividendBits=688 cDivisorBits=287 */ + "af1bc32040a7b127fc7e1d8f2c03fd79a07ddee9779d896a3bc79a6978a2805b057a407ce8d4380d91889a32c35248866ca044c16c5315eac1c8a28a6d6682ae321481dab83b3ef6eba8939f32e6b72d73d765dbd3ed", + "7549f83b14e54ab1c02582e857fe5bbb0fd6ed219295bf59333f870c00a4f70fd330fbcf", + "017e330ae0444884a17856465fcedb0dbbd4771ba29488c90b3e65a8164c648fa804c60562b7e324e97c9ef06ffea735dabc03", + "2d1d42a60f95d2668f2b4c0ae7d607826f9f387cc29bedb26a250eba480f4daeaa16dc80" + }, + { /* i=813 cDividendBits=2112 cDivisorBits=845 */ + "a6bdd306bbba0a34a2e4c52c851edc785d08b8d92b97bd8cb422bdb0d17d2da2a5ddb26a45f78f9ce4a129eede848bef104f78e225eb3c01d557583b474c10b1a636164be3688b00490ecc32bfc7318b9c1321c06cf4fb3dffcd955ab2dc0894f0ea17eab8908d9414c66aa86f32e36d0cd8e9bc7cea85ac3573ae1d39b9150669c1c8f498568684fbf93cf0a528834a226e54646589ba0ca1c39ec3e08295690542831ade97405ea99ae6ead8cb4700ccd3d9d2543b5525fce4d084af9241100c659c25cd1cc2af856f1f0b330b3234c0ce1a45127b4bbe1553642e822b726b02d96f1716133d2c23192d0b520d0aa86230b6137c887d252cbba3e66a84788d6b1f293ed4690ef4", + "0c0539b07411abb9591a5d304fb5dbe93141ede1cdfd8dad988042df4e42c4533c235a764f0ef4b4bf577398cb09b0e883fc3403c1ad3837b07fab95db7f6a4da4fa823527b23cbaefe6cfe584a65fb3bcd26e0b0f9539d6aa0c19bffaf2b0096cd7c25d1d9351f3fe18", + "0ddf1c9a390bd54707df44012084a0fe5b8723d2e53fb21d646ec8a638bbfd307d76545e18d95bddcdcac98a529853a1a8b48b6a0212509ff8b4f4a410109fd5a5c6f8d736986e42fcb1dad3cee76d59c0c4bfb76062c37692fac95adf815fc4ab6d78a69472ca81c0e3f61660d90f5be0d5bad8267e9426178b0d91027b21a4feb33f3d6d3efe63c678fd4ccede1ef2df23350b1124e974d2797663400b78", + "01b435323b1b139b794f30abfe2b163cf98dd2ccdb168962893682b976dc6613cac1687d55213ee4052e08dba1e493bae8d9d8b6153157160e9a2820a02589ce6e2a34f03aee77c026ab1e08e7b43c3099505c4b5931b3bb51c9f9fcb2536c09e393886da858201eebb4" + }, + { /* i=814 cDividendBits=3752 cDivisorBits=1247 */ + "c02a17efada90c3ceaf54a04f6a2e2fb5fa31a77365e9939f9d4f06086741cd77dd6100d686205e45b623b2cb4a6e973449c098e037f291155b7ad519a2a016d21e95b6e7764165eee7d4b57858b5d2fd5a21ba8c613a08c9bf43f55d73deea8580c954cc6efd517b74cc444bf0b530f8a827a77f6d7ee8cb5cc720157b5553328d54df71b8efa2572e89301f24961b0c1001e9784bdf2677c91686e8edee6550d547cad836d0aee4ea520a347bda252847c9b67db3416fca89d7d6ba889e2c71fc73b2f2a6bf8b29120e0e1bd21823b2947267e9e303c89b1558cdf8f7aebddda029a053cf00c1cc80db5c355726781b20951c5838e173ac595cec2a2f35ff0bfbcbf5bd4ef0c659bcd73fe4c4de00eccf6f6eced558e38d4399a3e03500538818aee550f259ffbc9e2ab0012c323f85f1ae8b9569a7055ba2b9981c6ae0435403d37106443908317d60bc6cb961222cac41a2c041d9a4a92fae89ee45a5fd44cc8593f8fb754a9dec7cd69529d447c73972d75349615c87712d2e1aa94b4ff5c23d3b6faffafdfcca388ba44a388d32ea619457890345d1564403c6795f1dc29d04deaa748e4e5a8b5262225163c2bb788f0c15b6fa9204f516db46acd00b59c57aed4bd1a3113c0557deea49564dd45b29954c2", + "5e307e9a388c0fd4aae0e6c0acb2a3be03936805ef2234689baa981f0fe2ea0baca6273184d5c80917e40457e04a85b8f68c2de62747b71ebef15358452d0c1fb494a05cc377a047a9409c9767e5cc3516093a4c36bfb946a5e00c2d748e43e1769f4f29c08a7ba3e61cf58beee158ba1f369c85f0e577f0f5bd99f18183319554bb255bdb61f037912781b6a481a80686c919e33e502c36d4a4cf72", + "020a49f47f7136b2076063feab82a5ea818dba5dee9fc4025385db8468e19b1b4750f3c9ed6a30c0ce129f42e7d5086f7e88d50a61b76db43bfd58a726f8bc26df66bf7c60f3da81ec2dc1dfa4f22b481c98462187826fbf82e054fc5af7921ca6476fe1f827af3b15ab30a80dee9293f63bd5819c34b7d7b96a4e566971eb19e256bf19ca4e32496576dfe1c9036a1f500e2fbeb93923c794811a1763dfee840a8f0ddd5e8ea537cda2d1230aa7b16431f857d6521dfe8f506747d415a607c3de6cc03df56b00f59e0427258e6b9b81de362045e09763febf949f190f0f167cffd85f3bd21dda04e4b0e43143f29087d4b1f6b89fec5066ea9ab76f00d24fbc9affacf6acf966cb7a8545a54aac4906ebf4c49a861f6e4d0f4e03cc3b6c85ac5916d16c0804abdef2d9f9ed4edc787b7992ee46ce08178fa7da", + "305d269d83cbf3bf28205b810c895ad9bd1b30c687fb5684a919277b80b6c3710202c2b909c05c50059796f8f18c70ed7e31275d9a0a5f495120e5b98c5a96d824473e5074425f1ade8a8471f110473c59d095e463a2ec6363bd85900d28e4723b64e7731e56b510e21c54c93db6bb91ca232cee5671f89b2aeddb4e89fef68c1bd49e12b17406ae6653327558359229af3b92f59f4ba399fc3f4fae" + }, + { /* i=815 cDividendBits=3115 cDivisorBits=343 */ + "01b2f0c03da0723aad3112ea4321d912bbb422cf99f40a18706d9d72afb8d7100a8696c2bfcf28b09fe64b79eb3742c680177e9fec481ca1bed1e5ab9209bfd40daa794f84643cfa6387ea86d170bd358c67b954977984eb83145feb9db1ba424f4ec31af26db8589c224f4c57d8613fddb697bb1b30d1b98e427150c8dc1dc78f72977fd7c031493ad0420481f5510b8f6702e917f2e4c430cfdd3a4cfcb588a478345e782aecebdf795d95cc579c69524715469238b7911ac9534374fea1a686a652452cab4ee6ca7cf7b3e00ad447a8795496c10fb0ca9dfd513239f7dd118b5e630035c86881ecb3477f422c1b839d29a488cb9f750aecaca48aae3304b726396d5065789d1bb430c1c13041f1732fc54259d90336b206a4927c468562549de8036839905426449da22ef02f23c3ed5e13546e9b5ace15b7abe00e4f5229b34b202746673a8dd7615432a7d944bb43e8b0a9b15440cc2aa3b3f45354603235694e1c2b12aecba3828697e212810f733318a6b8e0e462269c07c98b37dc3fb1e687a9e705", + "37abab35ea72fd341694482284ad6edf3dd49dfc14781b4e970a51850ee13c0df810d7982beff8bc28c2b8", + "07d010806dc927759d6e8466c837f15cb5381d15cd1a8afbc1b2bd6367a401f95283b09b72f23ae69ba103f6a6550956a918812d4ab1eeb3d2e23d787df6753e387e48611e9473bc85aa9c910bf1dccedbd100370a1a71754b47c3c97d0a7ab12534d2163c9c4c9615b9a0701c05bd541d2151f507c794917af80f55d4d7b5792e6d5365f59b07c9fa6c112a368e6b1d0d18328d2c6f94aade0b2c14e4641b4d88ec01c8c214df356a1373c96f361c6e3f8146863b51bc8d2d07ae3045a6975217fed838953b8765726dc05f06bf214578c5c85896da46bc03065a2fedf4139d41a23747ad625ccb5f600513a36a52bfa7d18dd63e70bdac8b6528111f23d04cc8804de0a3cabc0df7aeb6586d61ca58d2504d313edd9ffe752595ea06de1dedd9dec03aa9fc36f3f01bfba1f0b5ecc28af755e24b858772dd86b42d0a0cd1a55eb6f5f9144b8241be852e5aa75ef0d357fcb924691d9c16c06566", + "32256e0abcd8772c70268dbb4ffd8d17212bd7f494d1af24586b64381eb97a656db6bf85fad321a099b9b5" + }, + { /* i=816 cDividendBits=3806 cDivisorBits=2129 */ + "0c42c9d1d4bb7b8952cf584417c79914db963edaa102bbb35b238d52f748a570ab19f62bba1520da07b49d1832f1b9561e548bed7de016567dd10e49ed1f2d74af61eee6c1c568c600987ff79d9333d851079ce10f2157df4007aee26f661ecf545d616c33873e424d6da1e67bdcd2bcd7e0a29756419a7060bd8a94e826099a721d19e2e8f929d10d7f3d604b18978706a89ff33c319dd35d30317a40b41b7bf2efbe3d030057b717f6e1194370aed4c0ac189894602e26a3fdc8cd096b76a0271131e42b9a48a277a014053fea7a03fbef82bf74eab7b074d60b1fe2fb0b3a71d4b804f39c18778aa8e674d57ec70ac87553056f902ccd402512295a3261523bc10a5f638c0d234cf0f70fe534260bd08063c67cd79a0a7197541aad9308ce751f515009817de5137c3bb9d0bf7f01f9072e6ed75a88a6475173772fd19819540c4b4c1c1c97e1b65d06ee96dda355b450247001e5150a583f79b36f048b43939295a3832466c83ddfbaee5e14573483af4513ad4f405e3f35f6e5648cc240e93ddc36d8e56725de3cd6b01e1a0cf446d8234642e13fefb54c8521843a8a997acb5a7d76a8e04406eb9329af857daa4b47dd76b383f575c2437e237d69bfcd4b7280af0f82b06f30507557ef9c01cc2aa1b0870dabe490b53a8352", + "01d2d1cee40d3172a06284586f1c203b9f4184e50d2b7876441745580bf604309d5708f0143b7d4bceb78ca6b02cf807f662425e7a7f4928ef2c72a20f305929a2b5c1c41a74183bb8ed63a9ab1f0c423007ff6a6c4df9d1323aa2d6a1011acd13077703667c9d2b35d310da94d68447f1cb4377311c3ce17ea997f5236d79acb7c714042e2e40ecc57fc54adbb41eca0e574f1df367fa8c5d1721312e3c56d979d67ab4138708f7c58c72229494ceb19febed287bc8d404e0b95d82ed896eef283044ac874b2819a489373259190d75e81992ae259c03b08689665431a960d13a7b107d52274d788264e5582972c609e72b452721fab0e4d406e622360cf76a92f82b98c750f32a524e4d", + "06b94920fbee1ad6d23dfad1276d2659185138fec21d3b252e51c4a4a4aa75b96ee6228864e43775826c283f6c514b39fa68eb0e834e11553cda7c95a7ad6ef2e759eb9d40621ddb7e6440c674577f88530b7560e65e360c353e18c2c96aaad812c6559882a2a491429d76a0576ab13794d35e4f40e432215ba66284fdde297326e9127ab4da78ed1c4b09a206752574123ba141b720c4c35ad5a6cad6405d8eb2c1de50c0ff8e1b275e25c52246868a158739e40d2b72c205343cb4f5294c3367ef9d7adf0acd69b73c6ef87f67332c08cf", + "8f7bfb602aaaf0bc37232a66917ef9b12db4d2e1eb53b728022e9ed2fd5916f306f235d8bcee3fc9558aaba50d6beec5fcd4bcdfeaccfd3834910d1fff2c76798c3a8c1038989c1f861e9d26344b22f63e0d3c5158a3b1b00396e21b9e2e153294d67227b5ae83ced7cbed79bb003bbdd76fd4819a8e47bffead7113c00b95bcbca0b778de5a1896ab8908f678ddd3d644f9d514db442b36aefdf52af2f9406bbe6bd7c85ee3522f0dcb24accfb329032bd86477ca1880d79c5973d28763167bccc86443c775e83df46132e9583a426df79a606c2a66c400bb31e8aa28d225d191b78fc068449065accf8d6da294c2b015cc1ec50b4fedbb60630749deca4628badc223276e51dfecb0f" + }, + { /* i=817 cDividendBits=121 cDivisorBits=70 */ + "011331c7405aaa48250d3bdedbe4eb80", + "07be837c0b1df7e209", + "23891c02faa47a", + "070f87418cf82b6f36" + }, + { /* i=818 cDividendBits=3663 cDivisorBits=1827 */ + "4f12617b8da7e0ac2c31bb65934e393d92f9c34363c69d3b42468e04e01e21cff0bf0da1434f5f7d48f25966511c70cadc7c09702777783d0168767ecda601a07164729bc3f065c724f5bf6c724a495bc00d2164c619c6f0dcaca54810cf2da380217ea5d48939a26ca8a7426d83b637af0627ca7e77905e904515f2353582981141adf3566d304dffb6e92eadda363477e49c885bdfc61fcad9342ed3c6b576ea663bf71afa131cf9124cd8ef90ba59277c0482deb5277a1815af06b7591f6688405f58ca0a3201462f74565ea1e28b32b9dc5350945254213f05e0c94d6fde764493def2097fd610bbea2d45d8a0be1eb0ffb84f8e0150347157a81b8e40e699824680e7adccb93fcf2a708a7d40188874b107894eb2a5de2080ccbbffba11b9f152d99cbfc2ec7c04862b8cfbabe7ec0e84f3d04ce7771527534430cfe5050bae37af224007c62f69c91ac0b3500bf4de307549438171c7184beb215a8a6fb75e8a2c626fc6fefb5f07d3bdb5f4f5c0d7e1fd5051ce8cb19dfe0c6ee3bce3587c64de3c7230cd53858a0ecd23b85b345d44acdf207d184195b4571d6e7e718d494420194ee83b4863796fcd8c2b1cdaa53a085d8ad324038d9426e5f7139d8f5e919bf8c753da3bca", + "07dc484934502a743c27d4891ed14ed876033285126a0f0fd1a7f89bb78f435a0307bc081b3c6b47f90c7e9b7c10191ca5a700bf965a9466fec55d51d0e9ce7ddafb8e9a987e53f81e68687e6ec20471bf67f4245c50e0b85549eb2aa3a1618817de5918633fe316b9ccaaf4a8060b6843b322eae1aedf40a5d4ced9bdf0a7f26e9072a999b36871e62d9eaba4ca97224cd081a9732ed10e17342cdfc8da624d1ce95c43ad2cdc0e6003b7bc6ed87dfb4b51d31554f63935e5cc00d83e3b4a92a5eab123f54fe055f1901b7671d9e12235693d67e252a15dedb17356f4a64ea484cf7ac089", + "0a0f35bc50f05c1ac42fff46ea1daaceb87c4e96095f4da0d476b33d4f716d6167d2f3ba1633a841b3adbcb442019e00e58fb6e35c38fdb8a3b971e39102253d8114d8dcbe9b74d3fad7c8409d5e6d9acaf33499e5a9bba15800496552f40d29281a08074b6428647818ba2e8086e3b1f170f3578797606a37e3b1e7c4beb716a533fdb6b03bf18068e93a4fcaff9dc96f5f1888f7050a02efc2e738038f0a633c0fac37041a87e7993d7e37c5cd46d9705c6ee149c9e772a33e2febf6731086bec5c2433add4f78e57922bc946a5cacc98afc280dbe2d63ef4509d7d47fe6835c7d7c5351e1", + "026db9405680dbb750cf77417ff7fb1a0bece4e08d0b61c5d029c73eade9b20f20b6a814fb8544ce29b488214b59f7f7b4f3c4261dd8b3426a985e5fa2cd62c7ca62dc25049f08342a0241b8341467d27aee5d49626adb2d090a07c4a46ed42268d5f8d8dda8352629b52ccc1d10ce6af85d89c26e3f264866687c5dcda7fe6d8801e45ee38a367142d9c00408a187da23d75897ce525a50e881c1848b9704bc96e4de002501a637c8b23da21d82ddbc3f91c1a010a89f5650607e4fec86535bfd8610886693a2cdba191d341fe4c341e914d641486281a29fd9903a5dd0a4617359a0aa61" + }, + { /* i=819 cDividendBits=3779 cDivisorBits=560 */ + "010cf58fc356de804d720f1758d693f6a76f54e2f16fc55bfea3bf17bc86deff81af50d94247d5b19f68200e9d2b80ee88d1b66115ce3f3ab84aae431fc97ecff5e15a72638111a4e8ffc9fcd8af4a49a70bd4813aaf97043441075fcf26c84829e72f3ed0a57bee9b647f2286d19207b05df5a5f2f9bc5b928b6a31f638aabae7d6ea282ef83d626ee44b585c21f6b6ed9facabd0a93c8832a35ebac852f09ab7b6d65557dfc9f918c0238a406f3858f1827af53c00dad9bdba0810863b0302e784b9e9087120ab29b9ae5e9658b06954657d572a3dfbcac7fa82e6ef796649c0cdc80adc28e9020f3dc3a7ec9bb03f2f8decae0c92c39e0e5e3b2204256cbba16ad856b58e8e403a9441718dd903078c3cfa1f4495b118a94004473ee40bc0cec9491ee14d70d44078c5550ba13863de37af2c6d692f2bc68acb5c189c9e0651235a7a88f2b6995f51930d5d650834230d8af3ed5d951ab45a790e0c204bb3ce56f1a8e6ca6f6f4692adcfa6001ebc802eac93afd7c02a11b464f32d471fec609182d9ac96165ead4ae6f2739f99a2f41e8824ca89281e67ba3e1943c65e7881783b601029c078ca09a9a314f4df358de89bd0d36b40ec1ddfd989e685736def761cdb9cc393b0d985bc90fa3075b219fb6adced2b403375", + "c38b48db1b32eeeea89203dca7947ea158d749d973b4d86ced2a9d4224fd4a88618c68b671d1dbd7061faf07c7a22343aa5e4a24601dbe7b6157335a557eba2cbf1776f66a00", + "01601cdc66a42b2004a112ace13eb73689593540f35195edf00be943512a23808b5eb4995862aa5f755089431567275d3f757ed3a97733c39a2f07326a4f2ade58cdea8d87610787c0c84a4474eca1442615216554f5c94fb900d1ccd5106804d582dc3d63bbef5c925482b002cbea64de28636e8453b46e71c8b1b7eb86cd427e94864510a4f423a882be4b5c0f9e3d01e00afe8b219c13141c87de3afa01242771d9574977a23e10f3ee1124c41c142f01905b4475d2d491210c6df9cf128b8fbb6ef294a63673611187f9383bcd5326ca242018dc3aaef443fa58da311b2be19a57bc1f39a220f3c6a2284eee6b516534dc762e9a9f8f479784dbf5246f43c414a427c755206616b2753df43a2c162924fe3fd0176e4370fe4507c6468d57b77b2a9ba791217ffe4a0ef4e079c9552b5c0c338839a95a04a92f1970ef88ac76432ceba9442b7b2726855b9b0f3c3655d88058b5be3658b820f14fad38164a512403882bfefe5a7f48593b080986dfb610f7e2c1b769c2c529d2ee190be98fb6706e413184be2bd8c8c7602729852b1053f9", + "60afbba020f14b16714ad1e777fe6cd81cc4b129db28e3b84e69e1187ce9a077bed71c9cc4b889152706094b13625fdab00a9f0ad21a53f4107a1949560d167e7e53f1351975" + }, + { /* i=820 cDividendBits=3129 cDivisorBits=149 */ + "01e432cb2bdf9b2fe0aaea91338f674776ae7e7d3f51f233d9ab7ee169453dfd56f7555e3e9b6408a5d2a626a78c0280eaf96a09cf30df464460b27b58dba4b32c5897ce9486c5a2c0984ac69e7a83984bf71ea89c96be5e67385e558c1bb65613585124659822d5e8de406778ae83e7db7531971b3ced52b11fcc6c0fc60998c4c41189ffce247e7bf4390a8830cfc278ac256da48c67681fa0fb38f4d6c5a14bc127d7698453058c814e9cbb12f32b4683c246f4ba482d2a09604c9ead39ee51c0abf7aa86f30e7ea6c7d33a28c1262a24cc45ca993dfa9c15bc8ff5b3eedc6ff9a7c8ddddbccbec47499e6c6b8fff1de4faaa65bba49da57b628b11fd60b7057127630de2efc5eb726b70ffddab925e403c2197daad8962ee2669869798383586878fc421f21cb999a0cae760e95de2698dbcbd7d10065561898ea9875fa66e3bdc2024c1b1b0c4622e15387d9d06328e8af05df3160b349c258bca244656d54a3b5ab685587677f897fb7f49bf6fa17fffea8efca5adf5378a67da54925aaf3a5001a7692c58", + "04231b341ce9c054f001cdb8c520a829ba05d6", + "750983969094c243d32e501df358f2141c0d403654eed5c166f9e487646570e85a0437478c679474b14cb9b6fc3b205c8288abca343d02a12ff1ba82ba2a54730ed46598ffa4e55ac658b5bbcb90beda560b8d3b056549254df0656127b7365c85ce6ef071e20d7fe2d74d9cb743195618008ef97512a2e887ab97d10ecffa1f18e7d602a01e06a30ca0ffb90e01d6bc435c8b09ddd0e67179e4d4b6bd52b260ee4fca746471ffb1f5c1c9d65010d3d8babf9842388d4779d2cbcf3e5ee5e5593b3391a1c965061e5a6c4259c47a46fbc0c00733b9582c4b16f3667e9cf2b238226fd32df69d77122c6ca008267138d5c19ca8039de62396427d0c39fc6db85c7ee311557d74be0f0f2bbd13296266153ff1694bca1777ebbf9d6fe7cfea9cd101546b5f187a1fc9daf011c00a2c8f1fb5110f3028505dd249b3cd429424f473c05fdcf36e561c291ea778a0ff6ba2947c679d2e160491f6d0ddeaad8b839a5cbe27950699e9d8942f84b1a976c7c89d0e44c28f22", + "03af57009d771fd849f37756587223ef45dbec" + }, + { /* i=821 cDividendBits=4036 cDivisorBits=2339 */ + "0a9a61e34040252def1f3e5463960ef015f6d9976c7ce1255aa8634456aac96ca35a79adb5e0881a78a3a5901cb12b0bd37845d0762a8e8d7b0f858d0dd65049d666c78af639b6aaeb809c1cdf24f68e7877739cbdbe1d4c1e5aaee159ad712eb08b6d6b14804cbb7ba07e8e91e3fc338f1be83fd3b54827063c809b9685e6b75698b99cd2b7f52024b337fe51a708ac229d4e0d10ad80a52aadeedb42172ac1da7cd2bd230062d33029ece6b560ca3b9a47abb2def563a4ea0e7466822f3b5878b1bcaf33f7a48457c157b1001879fb25aa7333bb07ebb451c1e7ed81fd44a03a62537b4ffe53b74c29783a73315b40d4c1b0d220aef5bd388834d411df261135903452a6a04cc17f488fc933198fcecd25418d54a4ae4a66ad417ef651318bc6e011e779460a597e3cfbdd90c16c172f609d8798e1d49538fd1d591a53673bc0dccbf6f145eba6c6f53876b712731ca16cc2fde65e7d77be65def51d04b3c5aff6caf93c6f7b7c0176e075ba56c7ad09b2652c304f3dc426d8bcaa12d1b099aabf45d3596f6908721bf8e2a5d6046334184ef0c5ac9035af58aefb0366245d72090258276f68715703854c334ebd818a5e67c62db63e1556a69122892b4837507117c9774313c03712dff4b976d86908e50185b74b8d7a4bd05e0f9ec9b70e98fde2d60524818bdba346ad04648e07b653f9cfb5f37e3232", + "06a5f72d1b72a08d65a5f7e4b426c4359c6a987790ec50ac1a3d3aa31be6721ad3a0cc2c6219b5e914e55932d38ed23a5bd40b1b6b0674678197bb5f5b98972f005d19fa8e2dde8f49fafde2286b899a793b6643c8f1190608ec5a7e1f14547661fd5f89a4c9cec1995a5e11784e876f3f8ea9722871e0e781775f42b7750115568e124456e94c1c94eaea3a7502f3432bf6fd0dfefe2fba28d5e178b62fe15a0c5fd0f413396cc723854548dcc5468d253ac5517a77dc7f271ebffc2f11fcf2c0e5272f01f0b9c54f377fa7343d01e7efc27ffd386b19ff366d7a49927cdcb9b983486761cd5706845ecd31bf3b7da22985f0a9acaa710fec9df6574c6f99b7656a4b38217014d105c33fb6fa612636222096cfcdad81ae751017b249d3d7c161c159b07c", + "0198483102ef2f558d808d51902553fb31c6757a87febbdacb8506d60304af2bc99af71d085a92e4df2dcf6681a463277f880bf6d9f2e7b73594c18f8dcfa61d4ea4aa12cc3430308b08c4bfcf22a0fbced8a1deeba7d3896d133912df3e0a37f5cfdb1e3eab4ac81beb0d571f9c6c444155f7a59465c4d24c032b761b46d2c06a70f328cd1735a326165c801394423940cc5cd0b60de7a1df2afeb533738f7727521f614ca544b8e8945eac7bca5c6d474257824f0142507641eee5f0324fc77807b7be00f28161c90048805c035d0226ababe36a", + "058b427a3a9ead706112dee375cad73bd7acea6d331216119887cd56b9dd81ae26eb82347c429e8989b7a8da3a3c3f222d7693014d27afe740b1ba679e7be788870471fda69205d4d80294b7a1202f313590d3e9d182c5377d52df49181f3ebbe567135805ebd238a40d0127e5af89f1ec9223c08da1fab9a4dfbdda23d22dc21b41aee26085a6f228414af2e0dbfe3f26cea5766c4c3aafe89ddfd0b1f5e9a4675e640427d1349cc8d4ab29d732eda8ec68b818f4c8b2a18afe126df580e8f4c0d96a75903808e914fae7077c651383cd10f3e2dedeebcb349e03307e79cf63c673c9a04db411c4d1c465f559011467563375231a7410f4c388efaacdc96b929cfbee8c4491cae510cb7b77a86e2be54c626cfb4f873b39b4d12aefc5dbf9d495a6092ada" + }, + { /* i=822 cDividendBits=585 cDivisorBits=384 */ + "01ba59db5f20e542ea2f407c384c6b74961c8e19e4a6e5c221739a5a306eefe9b8ba40d162ffc1f6f960d9bf960cdc6ddfd10449f4099c279e15420fedb3b9fbe1497b893ba00df2e252", + "3d2ec820562dad3d746decf71698a46595bed50635f87f55448764e198c3b08a35b15ae2eb4446ac894e2b00ec945375", + "073ae10cad0f816f7f41066b7c369fac030e022bc96336a860ae", + "01444b19190f320ff2b10bb57aafc905996f0a15be0acc8d868d9a4f6735fc3babfe138a52305c158c3afa172f0e48cc" + }, + { /* i=823 cDividendBits=2921 cDivisorBits=1817 */ + "0140afbb1fadff2be261a0c7f0f1f8700b545f0251cc76d4fc5358cec3b675aa3ba81e5c4c039e2fe68c12699ddd9ee63bf6a124ade7646245cae5b289097dd546150dbaf1ac12219011e7847638f3e8bcca9417daf70414ca4115a774466bd4a49e332f1b0b10284ada808b80f80399fac96087e2e4907c3077c27f85115aee091b6f6669f76749f598aeaffb5f5ece735724e855b9f0c2269ced793486d8b5e3d034f1bcad2120cad76970bf8b7b95060f94ff390a49d694c8af61a3f777e5388106f8e6a3e86095e77e242b8629250d617e82b23601d0cd8da80269bbf9b2a4d30f1f717a7ee6832f5ff5b79854adfdbd24c585ad172a7c144adb7efbd3caba9b921617f4588d43512628bb012317c2b014e26a2a16fdb248f55b330ff51120a67be8974ceb79955f2ca3c7d9763d7edee3a91cd923bbb87788d8089563e07063f05cb481c28d051077c1c06151d74941c51f124d192a31ecf3bccbd50ca77bce6c5462d441cf0d3eaccb0972", + "0774b0e5775acef4c9d8976d709afee08dc625a96bccbdf900a33822d29d6e395a7b5144d86e61535f3d9e2b3370df63c7e717a840295ab5c71164042385538ace90864e28a522d77444d01141ab4b02015b1512542051fc9c0fc8bba2b4d2342708f43754996ee11b3640094f6930d8b608226bb7d837dc6b24c7819707c444f0191952a50e6a8b68ceb859a62cbd34c205b77c06959fc45acfacbb4c4e9ccd20aab9c3c0553e35ec2a9f3250456e44f5648686341ce0fa4d39bf389a9d04c195365ceb58dcfcad07a87bd10c5f0f10ec03835f409b692db5fb50d8bc5de0ed2edcf6", + "2b02f3ff3a0c2c3b5839859c846939753b578e969357a4b56d5e051bca53028d4338c231591dd49ad964161f1f130fda50d1f531e10136d8688f8c60f092c65a4268c60bcfe77fa3f79e2880a4cb081ad85034c5c1643e7973dabb5b09c00fc413e2975743e8dace9720bcddb3490ff7f17936eeaf329751e236a136dfd57b73e0a7500451b62689fff6b3", + "010779611a88da558d66c685959b8ab729787f17f24a137d8339965dc9f4b357bbf6aa8560179b650a1a20788faa1b2c6fb5d487caa03c91863f257ab878a16a3e56b28e630bcfff1240da8c09c02e441487d507ed5cc01f69659378e2dee33285431033e7f11051219a6623505f8e8af6b10e40dfc2d13d3a36dabb2b9f56eb1f1841ac820ad4fa23a0bb80fcf9a5d496e7197abc04eab929446c2eae6d708a28aeafba26e2b7695e74b8eedc0c71060957970b09f04234cf0f1691be47f150ef785548d04c8bbbc9141b6fdb785060af5b1a372506f2247420fe8a073e9c0da82570" + }, + { /* i=824 cDividendBits=2712 cDivisorBits=124 */ + "f1fa3a9727206552b4fb2432f6da769a72acc93d2f16d48cde2607166e71998e0bb15778b41faaebf630da8e322db87b2649f1dfca5cf420787898b6a6c53308406aa7f931b267735a7495ec00693ae5424aa7340ddb1c11f851bb66f12d899266353fd51572a2d424a58fc484fb85c7cca7a65713b2f699255a6aa33503b677faf6faeac88836367bbc6ef905e1f04b398a633f6b629c73817ef0c665024981c2e3482181987c4e2c80d3a7e314e167e45d150266d4f67bf96583d3631934e0669f2b979ab7554677e6f57ba1135b022cece813cb80cee531dda18f714d4828eb1b1cbb4bab1ded332b62281676205e122d27ddf3b4a8063f95807a5ec5045ad8810e78f9c86e695696eb50b3c92e640b4a66ea6d3893f6c0a49b1351dc11b7e5bbc1f8fc98111d0fc755f39b5dc455f87ea60bfbf748b8f5e81c04b1e026383ba33e1756a304c0bb9aa6f2647d09289f99a7", + "0c3548424bd02fd4eab280f7918778ab", + "13d22d3f84b3cfd6b3c4d63950a9d32e139d27346add2a30b41160372bc5c08a03a334649c2ae6715dc9c151554b457bb971fed12c0655690ba0d1e9d22e8bdd5fd5750e56187695968bc1118b935d33ba242b5332a2513e54be2ee5298d1524e8c634a826df7ba6549fba95f819fb28a577242ae70fecfa65c9695160bdc11991b7ac8ab9b1cb57ed7bc537f58870de130dd5b1fcabff803c1a2c3e708dfd53936f18761cb3627cebf41a93655e4b115c13050e4ef2b99241f4bc19c7678b6cd74ede551b6490364350d1f0181b28358a386973c6c8c7d7798bcfd18157050ea34cf7ceb0753387abe3550d274db62b153405cd426c2a45b2100e444868aefd607bad474e690169625fad8171e378371fa48b6a01a8278769381ebc13ff7486c2ed68727a646c7daa21cead0906cac846216071617e45af32c930cfaf1d61b9e303b80a", + "0292d19c7ecbf00b61c9af9b0f98faf9" + }, + { /* i=825 cDividendBits=1106 cDivisorBits=226 */ + "0128a8c8ed1a87e6016440e8ccfb5ef37364c4fc6890f55ed5439d6f2f8bc7df08659fee42db7c4d30dd78a7747c711bd378bc03258c8b42fd15d0c5b69fa0c03f1363bbf714ed2c33619363f4c410819a510d2c572b31dcd8b4185cf784701d080efc5953bf35d6d87a25e5ad13206ba9af673962a6c36fd84a44bce3545bcbcb86447a3a6be86e9aa618", + "b5c52f512530e97040a57d5786b0ec1390b3750a373ebcc66052b991", + "01a1ce73bd1a8169158ece0d303825b121af965e8ea9a63cc556760c9b4d4aceef96fdff449aebe03a931fd830dadbf062bcc9443d380d25d88677d303d1d63b8f42793e2e6df3445214d43bd9a8b7b16676598a9a91a8ff3cba60e7f64cb927f5cb1d5428d9e2f4676c04760ba091", + "ad2329962dc61a90e238502e5a4886d8de955927de2bfd5c89eaf7" + }, + { /* i=826 cDividendBits=2659 cDivisorBits=895 */ + "02efd080daae5580117255efefd972b9a2da781915c147c6df7bf5e7a3216468c8b77ba60655187c6a64946a1b27292d4b4e8d5d7d1500f67e46c6cc5a9d1a3ab3d2f4ab21a2e84fd6066dabd0019c589b8e2be273146748e4d113982e784cf61565696fc05cb3ecf62b25fcb765dfd9bb5793079e52971c97a207b0192d699d902a15deaa586e040a0311e865082af0571d63e52eb6ed68b8fd4331721655e7f85d7d89f5edee339c196bb385d92f729459e6e1eba423ac6c6e374f1754f3719072cbafa66e4bdcb09f91887ee321632dce867a8953200ee4e3c1ad9025a9a473c260dc6598d824e67edd00d699756d495e6f51a436dcd2b9525f33bf0571337570cdf311d26f7d89b86d030f4ff5c481efe4ce097f226bf1cde691b44623179aaba347ef9d71f0855d5cf424007217e242e7e53fb399c327cabe2f5507f2b22e895c7e3723e08d3d0ab92c0a", + "30e4386751b7369ed64c75d600b06e36b0ec97bff56c1a9a9f374e306718ee08ed5b42cbbbddafa6fb309d3183eb8fd87579292c74841ae01b43bf5688c16b5cdcab79a8812211ff7c987555684f98764b33109e83cb1c5e6aef52a63b548f5fa9b39eeaa7f90b55c465d8649cea1afe", + "0f609099496e38331d562a4396eb1585c6834185ccc606b108ba1799c54ef0f8e81c9d81c38d2b121a98f347b685ef40a3c8fe255ad78ff7945a880336b1545883009ea3319a8d97a45c0d17aa70015ada9030463127f36923b02210a31e6ac4f0561821f0456400c176ef46c59b90baeebd7a361be999fa251f300c0194b68bd0758b5a5eeb8b930874b76009a24c2474f18d66859811992fd6b044695fdcc70586582c6f7b5360ebcf08f9e3738b9de9eca2bded78e89c5da1361462e42f8c8f36df4479667335985a002d08d89323c1b3ec2fc8320c7f5932005f32", + "17f5e247363419b3034057208dfca777b5ce76545785fa57ba40565402c61595e91a1896361e0af36a86d76967036d77c09f90dfb107c0779a0484795f2de601fe2cbbcb26347d1bf4c8303b6d6d04096d19b2962b8073457cd3837be4268a2214b365ebe8069dcfc559d5c7e8fba46e" + }, + { /* i=827 cDividendBits=3960 cDivisorBits=2125 */ + "07475e84d90097f02d9f1e138f2c6f44619a9ff023c63154e37d2f9041147036902f8886344feb076229d566b5a3a3b944cbc236c7551c17c0e325d6278820f1683c983307050617eda315e4b0e026808efdb07cab4516a69edd659370ce4ff866b32e9db72eb91d6465db1509149a1e5927905ab34301dbc40a44aead29c0b356df3654a5f48dfef53ac20c3c87a59add48e73271b73b1c21291d2711c94d4f531baad452e09ba4a83218ce63a4b22321eb19588850411676f3bb900fd43e258196c23c22a07e839038356c15a9e77b407bccb6c97df0fdb72a389fb570628d4bd28a1feb9ba308af6ea6b9c5b90945842cfa3bfbba3753c0f30fc192f279ba91ba3d6191b841b54e993307dbca3e558d90ebed38ba8606865a01bacd1d51c459121e1a70764539fb39b5be5da44735366f77da20e8fe8f69c184a3962ace1fd14a7f77bb0ddcd97e84430b0e7dd68e93233aa2bc787b93b255b595b933184294bd20da9c3a12015284fda1ff16e189056b94034ff55279f311decf8d217d168ecf93e5d0879b7faa8dd65e38315aefd443cc8ab31a5ba574e120d480f45faee92300187f53109da2e0ed41303786d147203d5585d68f8c368ba53949deae229d39be118c4d6dc4ff686de0822eb8b7ae1a2bf46bb07c6159d727309f7d947c6f93816e0e180a6a25a827186a1b1a", + "0d5221969410a0af1d4f3338b597aab14c0be53455370a49c270a6ea491356706948664021c799c437e38a03052a76e57b32cdfda553451d953a655ca13ef57280ec087fca31ddace3cad8939e920a6fc7ef26836d9c48923d2d247d10b188ba59e0454246f2c3f825b4a353805e52fb39af3352578c923ecbc56fa3972319465f4b61423cbbaacdac4b153bdb3273a0367bb6675d461395eb6c1c7d5052af0702729a53f47dd5f8d77630cb33432758030393ca8aa9d65111bab3b6aa4618821d81acec2cd5797cc292b947bcc08010f87bff84dbf712fcdc8bc5559d47823a03d07aeac6c0359eca2db79d88e364f6ccbd0cdd4b982a8bae45e47c75b36e39c8411a1d988812e5f22a", + "8be2488cffd998b4003a0f2a69cad713626fd2510b0d69bf32dde37637381c3c215a028ed561eb8afb19944504f6422828a29b1efa9e68322bcf68186241b5077b1b36ebf1f587006b6347cfc423f54a064e6c9e945c83ce4a74d5a212f059a8ae3160e424e43150865e98d51699dd61002ed22553ed57cb8fdf32adbf31e9ca326cc3cfe68f9feb0baa86107e6b3a189b963a7e650bcfdb97f2432baed021edb05ab61d64f5f2d220325662064d7c2b47257cd19d93470541b27ba5a59b53c5e2d97c89cf31b02b0ed811bfba3d0b89294c6ba97bbd01c97d85166e8665e57c0640fbd0e2", + "5bf87edab5c6ca98de7037291e2932c0a2bb55080143549afc14dcbc3affd3ce105b36246c976b8c517a06d9d4ad7ba7c50963be7a74ba61d2fe505b2e2b13696f2301bd7ace1dd77d6c7aeff21da8fec2768117c7e0df57c2ecafdc3919108ea6d1e65556562d3115d84ebb0a36a31865a29257fc6614e0d699f01ac7447e0498dd84b5a7281f4ab278c405f068efbebeff941c83886de9bc09b0cc2bc4ed64f7d722ff219433280794b5e7676abcc4616bc77dd3fe04a36488218f3abe80fcbaf318b5190b7f7e50f8da9d8afa55ad229d698f8dd86905e711c9096f62e03e22e8ea04fc7c74fb41897b75f269c2bc5fc25ed0c1e916ff42166e7a9226327da2b9b067b0a57a3206" + }, + { /* i=828 cDividendBits=3411 cDivisorBits=1445 */ + "04ac0914cf4c09dc44bb8afd689390af123e7c3c36c5c04930ca8bff952e40741c1f1ca0dee4d025da3b0fd5bac83b1f7b93a4e055ca098233c62341342e64f4aee2156e7c1ab7a07ed23afb195ff359802a0a439e26e80d1f074e5034d415ba18277c819b0620ff7eeb1f6f6c175f32c052b988c4aa57eea4d222d0142db2f2f348a3a468956f8085dbc93a84d1c413eafd42fe708bf09e615f39aed549babb424a84622580fa6b1149dfba9c4de639c3d2c171aac9cf64e20b3ab78b6c3df42936eb3866d0cf0d55c199d73d36b17eab4b5e83661037f1af77a4f01091c6131ee9f71b29b5dacbb236def0ec83cec92e992efe180a5546969c3b0ea52113fd50ff280a6b760a4f1b03f2995b66242903bc972aa4d96ace24df7823a90313bbfcb0f513267ed771ddd3bc2ffa9a2678ae785d0040fe5a8659634847ff7a514c12f3fdb15d052e33350a3c619c771d5f80f3bceef5c7275b1d909df918d4c627f8f6b812705df03165671d8dca6977e71d15d622c184cfb285df3106ef1df199834bbf303a02eb5e19cf6e99a15cf6b9cea117e454a931d4371aca47f50a2cdcaf88bf238de85eb997e219", + "16bf083f95fcbd9aec31f261e3e8c5ac7cdf1c2893bbeadf4521577b4a0503f477e580d414e89ae8790a11f6efa724d1bdedd218814d8f2c62f6b759037468efcf9b0a06377dbbe9945b6871d895486dbac2b464db77d24557d73ba7e6ec586a15e60e02393125b4854ff4a139362280bfea6b49953b2eb363e322986a108024d0c9fa54d3c7192443e829bc0e5c25194a5aeca9e536ba2f572050399524fbd63dd58646ecd0d6533eb27d2a9b8683e7800c2ef41c", + "3494ebf4f1159802e60ddb9048d98963234c3d7e535294cc93ede15e4123afe2bef2538d91ce9f06618445494e04df779b7af2fa9c528ba676e279aafbd11fb1171deeb0ff8d00a2a8f46cf1428af6a1177d97339662f41758c4e0c572c532e2186670610e551c76ac5a1854efe0c8485f77879bdb64ed6de63019b03988e990171b306fa1e3a5889b1d358fb0ca584d662a1db31573cd5c83e2466481e3c4c576914160e868282c3fc66a1c41d5e51d0b3f9fe6fd7def8a64e73120419a3d61c9018a228df1f4588cbde6e5695b279b75002b13a397965a7d0c0fee59692ce450c63a0e5c867d512a45f30d36c1ccc42018ff52978d", + "0e648a83315255c57a7a9b9694b4ff7781e75e989e131a8e12d05845c1f5948239141636f50f1ea4e7dc67f1c1751357a29804f8eb7d6a60a494e744ee403d30a1ba9c42b301d248bf73bdb7575a112f2889138bbe79862d43b2de0fdf7ffc3fc18a1bd101cc376dda41db352323b6a8bfaad0d7a01c50543b103fd0a6b5023550a0323691ae248788ebbc13570fc37161631440f90bc61f4aecd3e1a7aeab3b62fa0bf2585ab3b537b77275c953d9d0d63cc6eaad" + }, + { /* i=829 cDividendBits=2328 cDivisorBits=1819 */ + "dd8a7e8fa939ea92edaac5c86e47a463f54dac38dfa1dc6503aad9e86f46be85928933f6cfcc0c22026d5717cc7ce791d652e7e3e084cd5d6f12801d57c4c764e33581bbf0444bdc214a41797b2dca8e479453212fb6dfe0366f37eb94643cda75bf3bc96d39eaf9cd800290ee42af740c65d06fdf079f5e9fd87fbb0a21a2e5531e511d678c2f2f495c8e1541a08f29bd064e594b59367b7a032c505a9b281d801aec3a0e8295e7767ec37fb80e1c7cd86b6ec815eef6b7bb5548c5010af8cfded648e430dc2ca41fbf7290b5797aaf92d2264d8e0d557c6dd331d20abee30a02f03937b51df18f480d0a20ff5d086dc7a7036cbf9bb4c3a642b970ede3594dc04dd145fe6e35db4da955c29517699ca1620049b589b39e1d8bf3682fadd484177f19", + "073b8ab764dbd7e1fd8925b16eed01a6012024bc76df32919be15c659792ac3f2d7c3ff5c5cdbb8d69fe65afbebb4455a97ab2cafb20b93555d13de922dae4a11d0f42a07d6c4757fb37656e182e52f5050b585130b9a704f871a668172aa4852026b4fb450213ed78d91cb3c68c822d78a009205ff1bd738522a3ad5fa9b33d27fa51e8b9649f098ff8f04fd82bde5cd2a1fd8740410f2a09941898715df1147e0cb0f009bb3a73bdf13330e6aab467233782a6444a5932515b2e9e71bacb8162ea596716d8f882665672c5a81929e3defd89c17564c1fd01a5b4ba6db2972f1199256e", + "1ea1863ae2b292fac1860da563b03427a6b55269a2f574fb602d46bbc4cea0ae259ab15bdde6ba558503b13a1e14d97f0db90c75f08be2b908721ce212dbbc25", + "0284ac94dd099792bd18d0fadeef8dd88807b4288989861baf745c43db6130ee179023f391643bbb546a9c5ffef91469c07408eb1d529c13f6ce2d5baa29c5a035093b53bafb548f193d7f8512ae8912d2f03f76dc7d2a6fbbd1ff1b77e5cdbff3fb13b363e46a96bd541dba0de76cd40c20f8626722bcc02060e69fdedf8eab4d9429ccd7b539f082674921110eb0c7db2f59febc1c404321e36bdc1c10659a70322feb20211e8b1efd473fff046b96da01912d1e554beccdf5d6f4d3d5eeff59ae2084fb086bb0850074b2a803af42e5e84444b1cf118f7018b8b35d915d59c05e4e33" + }, + { /* i=830 cDividendBits=2919 cDivisorBits=1160 */ + "49df02cfa2a77408a0effc983cbd6631c508f57fd3842fcf9e3740a0a8197b073bc2dfe7a50ecfcfe59538bb7c6564d715d31c63c0c696a7f1d9531025c3784f581d321d21337b0575f944da227746cf0341efb430c4fac4a2fe7458535a0e4c265743565cc40fb924402dd9366168b77dfcb9d62a56eea2ca046377c8a13b16fb69636f1eb492af89ff078f84a5d8a4bef6829f70e086fa29e15d0a04fed99a177fcf32316254efe4d2daa939fd8e23922290e13a41f3acd88536e93878b466e1c692c65be2792a7dfe27462da33884860ea053bdcce8153daf5050b665fadbf7422cb76c80dc0146e13e5312d37f289291c1d33be47f6611bc0602be9cd3bb9da369b03795cd80cac92796fa8b4426050c210a9e41a521b93ee0515d2a428ad961548baa5ec291564a08ffce238db9856b79d163a0bf77d55c9113b0dca04c270efca86be49290cb90e0c49f1b2e9f6200026abff8c27a414ae7bef251f707b0293b3bd8f87645c5a8a4778a", + "57d775c2448594cfb7eca467c4f1628a76d527cd371a2f96759e89e46a9be80f78139a24e1c1921ed33503c79f53c43b97170be85cbd553fc5f7c961d9de7470e3183d7b2fc40b41bd6c9fa9dbfe3b6a99daa9be117777de16fbfd6efbe52b68d77fb67730dfa4258ada8a9793485682c3949549d8fb1d0fc4801f169b344b17f72eb99a83b90645d7858dabc7703abe2c", + "d74907347c8387094dfcc2fb03c8e86f5e037043e8e59d719212ae859e7a93dbc91b5dbefc9230b6dd97d9066217af1aa62e524cb651c531854d9df7ad946bad382249bb5a1f15b10b10951b6d23c2662af3954e9f6088a298d806a9f701ff247e285b5806f940b5c8d1a9c05e0e3182a0a2dcbf2565c9443f06903ee681662ac8bc295efa5cfbf6a18a60a6ce9ee9aa16bb3e1311b02be11b13096341bab3daf7c6328e83cc09f6e354addb4b38687c26cbb746dbe80c08c6797b486d263d1d4773f9809a5f13503f8dda82d4a9f2122e8c0cc26a81c8667297db55", + "41bf73ef1d2707a368d848437ce6912c1cbd845149b00eb142683f351d72040679195c964bf33ea30e3d2d4b43b0943608920586fa3566c29c09510b6412a3ffdac80756325193966c43c4e5b6d21558e2c081a88a60ec99c3ca5d65cbc5f2cc92279cd43fd376ebf8d49d9207bae1e4edf2737e34cf37d0ca07b61d1d915de7da2581875a72b18025a3b51ead607faeee" + }, + { /* i=831 cDividendBits=3473 cDivisorBits=2002 */ + "a8cc4823330ddb59a79495030a2472e96db36cef1c4424d54d103c1c39463da7a9606c00a29c9b5d802520f96ae3146fcaa9ff50af66427b88f0048eb5095d5a422fb4e8a794083f07df94f46918375c68ab2a77b1cde7ba8eea59534949c79836443e8d6bb5ecf9b9d89a6114a439cedc0c9847ed82b87e8034fa740f2d14801141a5df4c4298a88ab5ab6f85a3ef88d990aec3f8ee1192b50297775a718a4e3675ca2eae178f3435cb5cfb3a5890941928bf822edcdd373207aef4ab7f3c2d4db253cd63c3692673b43f1f96ae03e261a07586cc721246066740dc496a36a13a126bda3eececd34d8c252c6e955ec1bcab118ff2fdf384011f98107fe6d99228ea67ed79c6639836119c0bb8bfa15f071395b2b83fee177a410a37918a0bd99360975bef22f28ac34395e010675c8c6f6a3b441fc1c3ec34e1f42150ab3a87fcf2996169402b6db91db7f7c75c391a7d370b41fd11775611f173a44f86c07b08c848e08230dda1b6a11a51c78bb0f05d406530838ec13db76610081b8b7b2186db6bc64777faa83d0184f6b5c7d1597a1c4b7ef35b69dd1fd30f282090f0662c7ee8f51a6b1d20d415ac8b055cfc087935", + "036b03b29e1d44a98984f88d966ff8de6793379bb7c12bef64b035cecd9a6905578b688e774776c6e08fb90b55ea28e6f448894d0ab69d23a79c51c5caceb513259274fb07581f9b55ac5d2489b706680cb3bc7f94381575bb53b9a2edb32c3e10d53cb3adefad7934ace7f94a34b168b0700080f4406710303333f0766b8c21f54b3094b04ca73397fb87ce8d2b114e3d7b4a8037b30fd1543384c3fd243bf430d379fc9f8fec61c3d67a781da7c7690351351be53c4aaaa56ce150942fa214edb9c01b35f686d2f7114944b3565b7e18ee2486f20f424723a5e532d6f8e61697b4654de6ed77590e69012edb8dda72358ab7a0c730117b45f2dd", + "31627866a3c1a43db2527847c68d6c1c2bfa856ab3ce1024e0586e77182d622ae10466297b831ebbe993b94a47d8c49d7af9bdc4ea246a0b7dade224d4a470ac9e8ee792d5c56256bb11f6a6e60742e673eb3d02fd8e118244b9f1dc99918e6620400c59b52c6b2b458af4be857dcf26de75fce332e432660471bfb2b4f4a72f05db2c275517b4dee2c8471a15bf23dd6392cd9160403fd5c6afa5d192b7b63ae6a45f08e0a3701d36e36bb731ddd1e5287b988a0155ecaa", + "15ec66bc9715288de28899430170e864e10da1818e3d10731eea0203b4c806dbd9bcd75756cae8c69dc795e09337fb08c70224449727bf9c9710c79fe6b6d483e1d4ece0e7477141cfca20a24a9d541d30cde56a247e11a5dcef9a17e288203ccc375a7f6043a4a4ad7e057d755f4b493d58a40eafd854b5341b5438ef3b24fc4ce85acb2d2e4c689101420d04c176ae4d38de4c226601c46f7c966075e67c3c33b780c414b8f94fa66ea141852fdbdca1e88c7c37776178f190153948a5c2025899aa64e4b3e2366c06712a52af13452745351b948e6f34d104ce6bf2c9e0a5f58f87cab364e3c1ac1b224027f508e324bd0c94a4ce23507673" + }, + { /* i=832 cDividendBits=3256 cDivisorBits=780 */ + "c1f45f88259b49b2181999f002e687256d630337c8066ead5998529305c58f17da90ea54aa898dbe4c9a8eaf608c0b1f481be3061a7fbfa59c5838244110d97fba747bab8bf6c4d169f53243faeb78e8e0a0eab01b80e77e4b67575afd74acf00c96681769bd55c0501ed2d40a9ad87bf188f237b3fb1a981c9cdcf6e6b378d39d005d88aa820cbd4d841a442d233c941a6e084a8b6f846e0b1f3294a6f91b8959b426f547dc23f3b99ecb70d74631879219849420adf9afbde6716193a06128ba267c3b6698b852ae8e6421379165dcde6dbc16183d7604c1e6dbaa5c3b4a1266cdfba8439f284301df60fd7f02b69ad083b177a8097a3b943a30ce8fb3a585f56653adbc561c4a78d5709346ab4f72b354d341248a50091b040d6609bb8a914cd7be66659495fe7395eaf0a591fa451d1b1537c7b2da14545fe2c4071269da44a122d72cc3b17dfb2106f0ac23e9ace1a32f30ff3fad5d64e35af8c82e07af09cee8ae2b335e842f4cc74f2e20a704a651d42d8fae87b71c1d4f52d378de5dcb948b76043bc5b17fa174e7e14ba16d1b89bb7bb6e9cd", + "06be004a28d382ae0da0addd25a90303cffffa323c61db5d6af95d73624fc2f903a8d375f3d16c2827c2ba0d80c6ad088138f7c461be3262d24c1e77c26257e52b6c12ab98b8ebecd027fbb4bfcf361e5e30a206bb01e9145adf5388e18520014b8d", + "1cc46d0b6351a1ac13d92f47f1cbd7d620b54282b844e4798d4d217be9c411e3abeb54af72a63462efe696ea3ce54309e9b33100aae3e637b411533a544528f40da279bc0959427ae26a753ff94713c234936042449e53bcd9b1f77a009b0811008188b1464b1a147fb95854b3cae6ee1cb70e3a8834b7121304052901d5bbc2892b6a5eb7aa9389539401ca5db9b965b46d6db99b17f97283475e7c26009ad88f58e6488634d3458c96e37b50b355cdf5474a304197590dabb52bd48a616d6914774abe1ce27f4baac0917459275dc21441906b1c58ad765ff1581a19e44276f1d2f3843589c915d6c7c05ef716956b82d9f0530dc42e4ced3b769a9619c3e0beacd71d5742c859b61ab1b92d72a962e33dc793a1f4dfbfd4dc491c42e59de7cf5099ba44d73371292636a54b3fe143af06faacf8de", + "048ef28b2a98a844e85377c9846ee958ef590c2cd0c2463f25e52f00f67b69840ad48820ff22144b5bf0dbfa4f7544f778d8a1f6c92bf245cf343e2264bfa6f41d401e70fc7863d073ff78dbcea289cfd5c3384af85faae5a46685a8145404aacd87" + }, + { /* i=833 cDividendBits=458 cDivisorBits=93 */ + "028ad543a066a2b8fb829a489f87fa9fea755e797d6372c20e87bb6cffd194e21387e875effd62c9847c592072e0261746a3225886dff2d97395", + "0a2579de1b6502757efe47f3", + "4024f06097bd3c0d57212499dbf71287831b4908b4bf6fd70a00bd18eb12a64f2f662e131ee66f797b74f3471c57", + "05f31fd979f8e5205d2b6c00" + }, + { /* i=834 cDividendBits=2761 cDivisorBits=1666 */ + "01a7da21a0b389c31182cde4ff5a0db14e8e1a6dd96776d617f6092b76efa963aff39aa1b2ca1298865cae9c130e31c147d37bd568324557473e5f43091fe7a06ef871ff19dc7ac3bb2bcd2d0384c0b1915794109b2d093acf44d7ced9621e0063ff8e96c5aa00e88e454675e381650fc121d696e6e376c850014d0510c9042fe24cb0eca5b2edca17e1bec72085fcf6cc1cfc69efd5349c99239c2c5243e69ddb6f9c828e12e6494938120c9c7132255b830aa834e5372634a83c32eedbc96a09d09b4176958885a0305464534a731d1134a56081efdcb443f6353520fee98dc1cc6ea660cd827b191c93503570b662fcbb25c308b5ebde9b38e464305b4fa65afa9afbc440e4d12a30491a5b3753a427c44e9925a733c0f73a3fc42837ab612aa08bfb4e3a99decae498ba7e7795c21883bc1f36afccf5349579c074177e0f3beb68fce52cdce48e6b7e59a1e6a54942204314b0408c7e05c4", + "03bb1df1f0ee30dfa2cbcf88799762349565b70610e638f99588bc395631bd0cd3e148627f6200e57dd753c69d74e72d6f40da2e7e66c90c5094b4efd0f951e830054623e3288a14f44e403b2c126614b99ec698db1daa7c31849c58284113ffb383673b5a02dc09d1514ca8a01842b80cb42208347164b68b5bcb7902a02346e75c32700db3d420c5a7963156341e9f4972023fd454481bf362050da044e71e3a78387a6fbbda4cc94b4f52726e4883a96d2540e4cdb08544dbd5326cbf2ce3e88a12d23b53d23fc711b920571722d098", + "719ae5ebdf6abaf7e9791a5446b7d71c8041997f718acbedcd726e1b937898793ab09211e7366ea58d099b68b09393a3c2b94a106fca5878f0abd314f477abb5ad8fadd20ed862129f1759ccdf4e10d5f146ebfebd4333196a5d9ce98b40a3c100076e725a01734920bad75cc56c5d74e6843fe62dd8a4f329b3dfd6934445483a7293107a6cddb2f3", + "030ecaae207669b6b819da44b7bc76a4601b95557f7093a602110943a2ad9b7d4672412628d516015ecc3095ddbd71f50884eabf876495950a2b7236c4ce41d4565081aa7d9f5492e9ba465e0ee37c069c52adb2c4ec8e4e0f534aea19fd13b7a3ed7acaab75b43612575ff2195c591cbfe5035dcfbca767025030cd09c89f210e2cd852c0595698d7093efad7f6ca2995553535c2606c5a854fc79000065a2dac33701837bcd40db5061f4b10cb5616b694a1df6596315ca94e49afb0650ccba829eb2ae6d9f5401d6403de012e30557c" + }, + { /* i=835 cDividendBits=516 cDivisorBits=480 */ + "0b3439a54db7e73bd83394d7b5dbb685386f57541c2f81cdb37d7e5d51cdbdda1f6863f83d8f7e9c16f5d87bb26335423777e5e46c7dc4f9d4b18b43bf18eee392", + "a2d1ef6435c7c1d8abf9c6a6ed7e889488a46c4f955f45dfc0ea6f81c27e2e169544379a530670071ffec40589902e60a0b92ba6e5f0cbb9db46d58f", + "119dacf35d", + "6cd3a1e88260d505ad33aa811e36e243f98f7c47cf57cb66c6e40dd3408ef92b10e6c0b6ecd743fbb3eddce58ab5e07e61ebffde2ba1e3070468919f" + }, + { /* i=836 cDividendBits=1562 cDivisorBits=72 */ + "b3b78e752cb855b29ddfdf815ee99e0f096b881983ab415d519d07cb8d5bdcd106182726b45ce47fc52e9345b06f8c9e876e3bb1105df83b78261a1ccd42196e96c3543733ebffb719383cc68ca96adb5d3876b4c8e17aed62ec312aa7b3dfa0a5035cfd284fb36da05ceb3961ba14cb461fb5c46078921843cdf8783c846e5d2ca1badebe2ec29da8681c71277507f1fdf00ac4bd19f672101454e825b31353454d267990beb9caf4943ea84df07002bd1c3d4901f89053c5b97dcb71239365ca7e52", + "18b2de4faef6a64e82", + "0746c07587fd5a247013f67a07bc1788a28ac8ada6e3420152eeafa3f6e02950d282ab8bf65e0ebd8320a81aa7e3e410eec07d873c4018f54dc54ccded3541e2d307d91a5970af63a555028dc9a83d56ff4e03cadddc1248c45b454998443680452059a7978bc82af43a6ae462948a101eeaece8b841140b9f7f9a99c97c5f3347cb9e31e043feee1bcd6c00b5500b91ec236255adb4768cbe6a76312964c7e6ebcc91392d10a4029f8a0d3b5cb1bf861e4bf3fb825bda283813a2", + "02da7db9337c492a0e" + }, + { /* i=837 cDividendBits=1982 cDivisorBits=545 */ + "168196c18788b55be6f116ac3c4cef30cc40337df2352043a271dae52cf12761fa2937bd2cabe0fbb9fbfbc550a95123bc4db7543bf3517766bb97c718e4a5e0a9b43929eb90044e0a3b9f9e02cad9b9054cf7bd0761280b3171afe2440df07ba3150f039f2438185cbb929bb9edeeb351a293d159f2370acc5a0ebaac04613eb93c04ef31efbf8a653ba14ba21d5187709df1ee70db1244e6f48e0681272d23f2e11bbb58d912f53bd36f177ce3d4b816891f649d327c9b5641a60763e6e5909eb6c22c0a0c3a16742b4e2f974d8ae52a4f6e1bff0e7fa812377cf6d3aae009676bbec7bc6656b3f41e40a4d5c2f5adc84158756e0302f4", + "01dcc3a733574e7e76036f7b9e9b8c7c909af690af45a08c9b3c42af2b87fe6d0770dd7b0b493de25988b3e4012fe2042888ae23b4448025c72b83c037927a5ee444cc1301", + "0c15b3cf0cf306608d448289dacefa9c94dea388a817305619a8db89d02e2afd3b179f7bde67a1822289893b5543c8bd0954f506b32b02eb55a0e4e7bcfe8cd3887425692fe7a884416b30de53d059f7d9600732d05fa3a5226965e89762b005b444045f3c7713a5acab42dd6326fc0e3b85085f156cc3920e8fd39cc6fb348e7d4724f80af4d56b177d6b765516a0be47b17c95962813f8ced9212c6fdb9e594e07758ac91006d64f10de0dc7353433343a4449", + "62f6ebad99cab59582756683efc7932950d3bde3a6f2bfad741d8e7fa18c5fe97d5640e37799cd4904dbc46b4811eed533a98ac2bed0f7c4817e5c66c5bd9fcc188b53ab" + }, + { /* i=838 cDividendBits=1166 cDivisorBits=253 */ + "23f1e45251b52a2f0a1fc2fd0f4e6f035dea12ee7bdb588294b9c93c0758832928003599327f7dcdc9930f9704ea8793eaeaff82807eb8c4b74b646380c898496c249007e6ef8705022707adc312c7e6ced3bbbcd7136c0cd551f4203adc3c64fef43e62180aac163f7c7ffcc375865357e4d3f90ce79aa643a00d56e7b26bc796c0035e23bab6a74d8ee725439ff8892ac7", + "0f46999405f2d48259072e8bdfc67ced62a00f77d904a46e3d6433967639cee5", + "025a6267009b3b943cdf30460bdc160b6d8e97e44a5449207c1d4a895a38dbfdf2162405dab09aab889efb7238f24077fdd3bb6bf073a528553d93196ba04ba14d52e3be0081ec444302d206bb7d622501023fb0017316642da7b3f128a7a0ec1f700d21e6061c800ef33b06563a9e7ea4c989", + "0626795c5b520835daa3720803912527d910f0ebf3250d1555f4c1140f73a53a" + }, + { /* i=839 cDividendBits=3084 cDivisorBits=1158 */ + "2fdb2a27df189a67d30fd04aa62dc6db58d50a2c567a0c9ab77aa2c0a2e31cdee8a65aab016574334114abfc246f5e300f29649207e2f8087e439740fcc41bd254e14bed05dcfb5bb8b9aa0535b8e3bf1ed482a46835fff1fcb9943529823d50dcd11053e62a3d714da9b0f11e020094a0e180de2e1694f1c154a6d77bbf6b54292a3d3b31e71b2da84ea863cb5cb4b29d8543308ecdd859370602be8572725864b3c01ea5ee7a283f7922017f263f80dd49b517c84c136f81223cf949c418e92b3dcd70354b5ca35d3edaef4f2007d582d2020aea8faa1f46683374d53360a50c1e7682386d2007aed4318253c68adc213c295d0ad2c7f811cd208be1136a82a698ef13eda2bb164b2d45698c558517559bd9ea2c3137bcd3836c542cd4f25a02f7bfddf438ebe1184896ecf139f79468186139d7e75248c421de3553aaf022b4801d65214691421bfaa9e7cf8d52a766b465219389ac7edbb8a8b37ac1fb397696311df9fd966b91deb67354133126b6c397c5e956469fcad4f253178aaeee8c", + "3694444459e3b8bafc5743c5433ac68a838f7985e29b2f5a358ce441451846ca886a982e1a8abb32daa86c8445933787c1fc600659e79be619bd353492baa551525fafe4f697af78752d6c9e1960272f5a1e37bea4560f65016cc3e338944fda06cdb1c5960c88fd5cd900739ef0af64a34d3ab8022e076c21dc3f73a4c147bfef897dfd7e0ad8915ef9fe34df80aee7b7", + "e07748b531e914208d2f0124f0cd99637122d17475488a3fad902c8362c31aa3bb64e79170bcbf264db3e5ad10f30fffaff4c85dac29a1fb8e3de1200dcf3c225ac630e60135ec665a76f934ea3a332205c2c8235ec011bac642f697ed5cd224a0e5dfdcd91155334ee9a31e681f5919a7f4e1013bc21a5f4609b9bc220dbf33df400122674d5abc907b980313db288a3bf1365d918093eaf31d6517c52fa8d0f6a16164b3793d4af84edb2dbe208a81f9e57b37b7deb010ee0095940c00f5255d5ddf197d1e592b9bb63c7524659efd6a330b75dde70f86597dc7673644348db9a0adc7ea0e6c739681b20a47c4c58c", + "1c566626197792b36908c6cfa23f9952a83de4f8f4005a350ac20be784a0a0f9ce4704d1f98944435380f3ae959a98bf217c2e2379d0487a880942c5aaa1b12162b0d3deb5c204674cefa8e80561f3ecc48287522033b6d81c826cefe72d32284597669371b22baef8bd6c5d706bb597135894b9a35208fa1291af935efa5494c0a4f6669672df0add66451783699c6378" + }, + { /* i=840 cDividendBits=3710 cDivisorBits=817 */ + "0fb4ce20777bcdbb2b3fd430d5d35acc9e364262d8d264f1e2bba5de377b5f61b1cede4b860bfa402689ae1b6f139b851c2fef9372fdbd08bc5778199312d96321d561cc5eb537c820c2d1ed615eb6d2849e17dddc181f75d9ddd22b9850b6e2511dcb78dd17dc5f6e4c14d65395e471def864c7fbf7565967ac0d955e2b07de98d33ce060c7fd0d04cc0b4cd8b6404be9ef6b3c89c9e340a800749b42eb87d1fd91aa3352d6c0cc7b0deb55a63169c107952d883840cc283dd4a75bda4940f6bdbb029d539485d1783b2323ae5a39cffef5177d2ce7c11b22bb1718309912b764b286486d59e126875d3a7c350212412029c9d61ead0e1aee6642051215ee57d29f3e51df5edee76ab53b3abf4c4c8e9e1b779bcaa761797bcd6efed6fbff39e15748e282c6205b77923341020f9cc7060dc6a470cc109d6cd8c800ad77e6946c81cd4433ff840a57504b09b82c4d1d4b54d8baf1914c8e9d7891470e537098318538ece0b9d5f12c535d3ef4c4e545a21484ef0f93cf223c56df4b21db95e3a1bf20f3612b681c2fca8ac624dae73a62c1112a6dc42f9d1f20aa16a09024ae332585676ae929775a9a8232b7e27832988b6e90e710da67aeedf6438a6b7b64f3871772ad2816c57807279dccaa6af3", + "731ff291ff51094ab2cc5347656428872ab038e6c7255aa4eaed6e862e66b9538ab5e3d4805fff0e4668a789c91d36a2bb6ea1ecb0235b76eb0b627715dfccb0d9adf454e76f94ad9f2631324d535d1d424e009712517d0475b216bfcfa1ff8490a78cba9e1a", + "22ecf59fd7ae7697f70f250bc2c74269b1f497f072877652ea598f4bdb719413ec1251ce744ea1c15a8deea3f2b39db94ec58439db8c4956c726b35ad62bb9baa63a596bdd18f5ba50a5a2ab446b184c10f7ced99b0bdc41b400cf36e556bf568fd7668b41facbeb8ab36a534ce064d378e4c838256d44b36b8cdb1bef23a46d95039413065ad1531ec4ac62d6ff5d4666902c5c5083d566f8fdc5b5fa732359045fb790625ea4ea763d73252f3b4f5845695dd3d12339444999ae8e30ebab5ebd8eb629588f1ac74d37ff74da4e279121103f7f4e9ae994722e3505640b6a342eddf938558051e4a7798ed46d14d5c8bd15387de7a8044ba34e047f14ac6014d0a0184bdb1e715db51dba5b584e685b4a18d09115eef5243dbe6d17c87aefd4f1f0f0c24ce048802314372ba85c67b2b8f5f1b9bb187b657d6cc7205adec0f2a3410ac5573cc240aeedf2bf288dc01eeeb9773a7808584c67f3239b659a858d40fdde7607f16288ec36", + "05edb71f57b4b02e4b4b1c3b7be12cb451f79416fd744684f00653ea11d7e9a638ba5e583101094a00d2bcd6f05ccd0bbe914ab36a681525f4f378e64f79d74b655aa422223981b6ae6b0be3aba4c03a8202b7dd3309f8504427441c3fd85dd66e6621bd1977" + }, + { /* i=841 cDividendBits=2189 cDivisorBits=1381 */ + "0b3c404aedd1e6b1597f5c424226c25983342faf871d3734a12c3aacd4ca9c12f964363939c40bdea8a68b6f3be73050d84c62f3f9c812919ebfe9b930826b05c90ff4b95f000442dd2401171424182c7dd98ccedfee2023c8aee39a227c77aec2e5ed7d196a35e1944fbc13d5c14aeea73edf6979446c623bd16fe87d62f9baa5c62475dc212c8157a7836cf0c482a85de62a18cd42d6f2c22bed05ebebe682b33c28545108d2901d01264bff59ded5d4ba86b29cd9e86df6ab40a0071f36f1dc4a6780d52ba2f073ba078a215612e12938dea6a110a0502c6b6121c43d5bbed43f48ff1668d3b21e0ba00b3e22988873a611d97e93d4d830c0be150a6ecd17c7ef1cf776fde92c6ff72cb16b9ab0949b3e", + "07b7b67c81e8d42ec3978696d9a3358a667734a013ac7efd9ad7df8fe11b2959b864ab0ad388fa5550a7bc2a07b16bcd3cbd76223964e1c464edd699e9b42b712d9ccbb875ded0ef7d9dacc9c9b3ea800dd63bd9e8adbdb3b1e49a6019ffb3f6538e3f0d329cef467ffc4fa4aa6a06ae0e03a0bbef3a6f36bfe6c3dec035d63dcf8df218aada4ef71a985032c5ce7659a0ea46b50c5b50289a5956840c330216fd77fa824f369604ed6d02dfa9", + "0174af9656af82287df9711b63886d4b1abb75bdbf96d3b0a15b22127a0542209f5118cd7147711fa35e3344c56a3ab749ed535fa3c8002db4660b8559c01ab0bce4d1831c6b0c4e92301f79c0fd5334d583a418ec811537ed85eba72b2a665e59480f7fd99b", + "049e7b9de0fd725ec3cc82a56cdd9b8c135cfe646725bd203fe449d949bbe1ac6d640e54336d65b8b252736449ad4a30f14a414c8d1cbdf23dd455115e8309eef8a9ed745aaea00bde2e29cc30a6707572b6063807de0e517b6e9b113d9f18696cbdc421c101ff5cca7075c8af8c5016363403db38ed2a1d8b801ffdab3dcf40a8d7231eb71186bc448f9829b0a6020951b2ac11cbde302a3c919515136d97645b4fbd57737be446626469eeeb" + }, + { /* i=842 cDividendBits=461 cDivisorBits=197 */ + "05acb78c6b283ba5c729f9f2e61be7cab8c86132c6d1e5c43e936628a11377a602f28a63c8259188cc4e494bace891aa65e99410c33de9f705b5", + "0a9d2825dbc5eaaad7e9f3f6c3b437613d00f1714689a8445e", + "88de8f29178c1767663752da0b6d5f6bf3485e5f0ab4045cbd03ede39397c4071d", + "011b93db675712a6a63af4196b9e3451c2e425bf5aee10b50f" + }, + { /* i=843 cDividendBits=2190 cDivisorBits=71 */ + "094f9e9c39ade60bfa60c592d1260697812288976a9f26472a1cb5cc127d99f9ce37ded336e7fe801349d5edc1215774fe70758b351b74c9cc95c0c623d844ff0655b2abe0630d98d6bfa27409af30c667d2f68a043c7a48700b11829354abba2096dd99a52dd33de9d33cb53a50540010481429a24954459bd8e72ce22d3a5346d7607217687c8198d4e6ea60faad7e4d146e1f7c1f3411c8e137a5d351445f1533cd52a78aeb94b8bc67f80cb51c26b9936cb0f64909c62714d831cd0a22373bbc6041dd67a8156f266f6428b38fbe2f1e3b0eeb81919ae23e891ce7f615b7cc03ebf34dbcc36d9463b0bfa308ce421019c1780433397c53c99049497fda24a6174f87356e3dc465e81d8399244e333e3d", + "2f5f21269f6f9aa20e", + "32514672764e43672163a75ee270133c63710fc6afa913041786e338611fd3c8fd4f51e2da35aae9db8f1baffd75d5e86dd822b48ffb1bd6050ce2c19546aae57e29bb37008453fe66424c4a489ab7d30b72b40f839dbb7a8d84942bec85b742a705b42af3ad16bb858c91740f78bb93b204d982eb95318c3ed2af1fc762f97ffeb8d1cc1a7619619cc38e4f063894d3d37f90c1920a8800b1226af8b59c4d95c3eba31db5cb922c6485200ae180e1d4c1d7c76a1f7d9a5f69eeb0c54e42e5c270baba97cfc6511d97901d242383c96170b736a1f2049ce4c3c0472a42c33fc8f1153c6c4d292a0d3704205c74f78d51016236db0c162497d85edc41cd51e695288c5298b1ec772dbe", + "2b35811e3d0e7081d9" + }, + { /* i=844 cDividendBits=1173 cDivisorBits=1010 */ + "01424c52426927247511a3229bd66b0b492cbbb00d8dcfce455cad7c15cfb9c5dd24e1975907b314ff3a8050ce423989a6206b8625f73bd270a30f97b22808e8b42fc8eab8c71f911118ee71f3f468b42d1236ef1ec290760fd611a590d9d794bcbd0031dfaf86a047145b70082d82ad6f5641cc8021dcb293595d5e789915435029693a55fb0cb3915658da76f3913ea28561", + "0332857f9f431152212b67db601b15b5432ed327312982d91964dba9242d11f7142acb014716ad2f0cafc66f72798000162a1691009f059a990a8605834262a976ce852421e07df59f85c7c6d1bc34b8ec4a6a87590a7f4a4389733d5e8b5cc48607c284b6352ee40761e8fa806596d511674b00a4c03aa085d5140b4edc11", + "64cd39647b7ebc12bd53fb343317339c7fdaa08a", + "02ee4ebb4673c575d5061df2fb242313935a892b6548c2cc69e5439ebebe1feba99ed908a2a24720a604f8e7da777162f177b1e2979172a7b8c94ff35f1cba33261923bf6c5866c85cd0565aad8bd66da03bc93c1629964fca766e23cbe0b9e552e00c9e37225f7d9fd4c6ed59010a43cc75fc78b30ce5860b5202071b4437" + }, + { /* i=845 cDividendBits=3440 cDivisorBits=3240 */ + "e1eac1b60c273735191e5b2991d5d54c6e88fad4d0d31da8c59bfe47ea24aa572a4b71263797b61bea01ae45f563dc8a90d168e2e0f4b84fc3e1fca5d210a8c1a761b43490f84f5e4994b46b7262ac48b0c06016e5644796c5552d18a373eae2de1c4c531f90e8f12d39d3b90aaec982c33ccd01521332352ecde8a7c14caacddb0e1ee3552659faddb7c776f87d4a6dbcc8c7d49cfa9ae6ba867097ae15a4ad1b039664231cd5eef469d1593c02a8e40ca835a862a08e90a94387157a47b2b06b389eadb230148091cf2876ef697fde44a0749d481c3be8545b8570e433df6d34f6b54ece9ab35906ee1099a1f243f4cdb7f213018412e020962ac7be9a4e2455702bb37ce4156124c545e2ff3b577b55decef15de44d53e84c880c98c736603bbacabebcb17ea14cbefd38b0a63593b5411391117627c792a7700252868e056d7ef5053054c5e4a58a31b90e89741e7ba342e82a3315c68322e8fb32aa6f207d05ec329411d361ad62cc44c7a0618b4d0cbdebc9da318e6d0ac4b53d4d4fb4fa05c85fe33c65793cdd2287bd7488989a457baccfa3d271322485d59fc852a9712c4534a4ab7ae6d806f5486b08", + "1dd8eee697ff3d331c00b762439a1554c5c1ef3996f87b0623fac38d53f0ee350721febfca2c0fd3adf8f41d0f3af9f9f8d487ec6f0583c34a7989db5b49278b5c9a4b3ac4d3c250037c4236920519f2c5c59e45cf9c2255786f8f30020ddc68ce88fb0c7c31f48fd885904cb3fa3dca91a816394a8959c9a8960f7a377d77823b1cbbe4c3aac54d68bf3461c50afee5370fa1a6f6812c0eedd07b83cc8acd95d0f22b5c97a10b69a73fc1a896ba23d7a386606aee9c13546d2cdf85946b3324d6c8454277d862140f260a8f52274c462ae47d9c669045aadb5929f6d63a8e2e282b1fda549584a93291063da9c39176d02d55f7bd307d0f0fa4ca8c6861bc6c341300e7864d444b4cfa6516d3611006c2d8a25c5805faad41c752198e50332a99b31bcf39b9eaa2558c79b842da1eb8e0038693853cd4bf1d02082bb47d5bf636e6d2cd56cc03652352f094ac21882b52e471fd99420dd30d1e9899731ecc39ef68b4039b8165628eceb7e2bcb37301aefd4888f985c461943fc02591cb3a2c144f8ef7700e2dfc8a0a4404159d0814eda242de63", + "0791ae8ec19cda4edb42a1f718751696c246baa55957fd1c6a5b", + "0deac80c64de7d15508ba1337179570bdf938bc2aa635d1a6558c27eeb3d1cdd54f57fc3888fcb6746cb2ff672f4830db3955323d8af992c688fd7dc91fe7a3c74bd8334f30880f1d7caa6d45d293e3ece4b98f83d83147e5273a9c948a88e95871bc6a15d786413605b2ad68de89f44a1e162b07768bfa2fe2403d26e7f57075014dc8ff9ab93805ab068b4e9aaf57a717423ce2d6f7166e1703000bbab1a397ecc43665a24f536031dd3d550339cd9bd1e998e50d4e53e4c587294746bac91f2d6c2b8225e8dd5a4b252039e75b4836bee8f226e2affdbc9986851c60ad6f7ed409febba563fb5493146cdc3407ea4b85a9d107e11536fa923675849bef2da08ec3e1900aba28a64fb0c5657774e095b590d3a4d3b5a82b1cfa8de726edbf8d5cf0436d551092921d05d094e72f72a65c8434692ec5c033acdd050d39b3d3834b2e9ee536104b1968b8332d545dcac493bffc7bf45eb55328c8aa382f5c6741f9ff6d1fb4e98b0dc7c5e4e9dbd4b4659686824be877770d382200053bad84c3a7ff3be04b8c3a48b79e25a7b852a2ea16d9a5fd7" + }, + { /* i=846 cDividendBits=1204 cDivisorBits=85 */ + "02923832a63eb5cd560d8ae4b0098a444c7c1539e9b931c10f85fc3ac50aae12cdf41442a0e51f17be997c05dabff3a5408d5433e5b84fe9d468e22e7e62e8c48f49e85eb0bb3e1e5f939a28f93f38ee49bb3afecb9c41cf9b3f55ff0f4f09d4456f538042e7b0a6327e25013ebd2c6155fa561b6ba30b7099fd89da09db7c6f7279d5dc3e2df41cf68eea16b90e7944320cb985de769f", + "135d4294ebc9c341be008e", + "21fdcc394d5e40eebaa798f444ab60dcc74e5cad52f1865d858269f259ca9974697e5506c35e8eeeea2759591b2c2468f9155d793c724c37b04f0a11daf3f9a6dcac9436b06e95632b853d720ed18649f4a5bf0d224a6940f2fbce8ac3d87f3c5bf5b4246612c6bb595bb57256ecde4e73eda1d19e135d1928a0e0d6a108a00f7df60a7d3df867817ce9f6d7", + "0bfdbe7533b0cf71858b5d" + }, + { /* i=847 cDividendBits=656 cDivisorBits=416 */ + "bcd23bacacad8b3919094448ebbb1dc535b68286f27b66341ce7aece0440263422eb8dcb342e564999c5cba9d02f512276be6570a54827463bf57399f6ffac1daedfd1d563eba1f2f172a34509794f77b097", + "716d4d9ce786b4cd57a7c378e95f9366d49f57c07818fa404daaebca6090822b30c32b76afa7c077fc522a0d3ff286732f0ea8f5", + "01aa2967db4df5c9e3b17e962961adeb391399c6f32078cba3483d422fc29e", + "3912180129aee09e14d2e8d23eebb7e569fb8f468f7920c0319eeddd2bec953fcc528135c3bdcca859a4d6c8cf692f17f966bf61" + }, + { /* i=848 cDividendBits=473 cDivisorBits=22 */ + "01046376238579ea8d70dbdc19c831574437ad1af44e359e18b3f1d5616b678cc5a8a1bbd13a8ae2b6a0eff5b6063ff00cce786b9f127011f0d2b065", + "17d4ac", + "0aed3427ce16f9957a0f049de8c116e5021727418cc3dcda3e2aa434d73429df2968a99c415dcb9cb2c41088c4816c5241c56c667e78a8e9a5", + "061189" + }, + { /* i=849 cDividendBits=1129 cDivisorBits=495 */ + "019297a211ca1c833fa03c8fac656c73fe5a2603cb5c9aa67b4e5c7992967eac997cf126b5716dfb25a6e1a9af0c7b4aa51c6ddda2a498ccc5d4e2049a48f52b0099b4024a76c442c78785ef95cf3236488aaa00b991b51d51a75c650f2e53e72a3f80d7525359ffe089945b961fbf01a78e7fcaf75b9087c1ccbaf37252a77f9a8d1ce2707a17404a8eb1e4cc59", + "7cbbc338ecb6ac110eee8219261463a6e6178fe9f34be20af76d059e28f3b2729deae5d3888e7facd50c925009cde9144942d3d976283461eb9b42733f44", + "033a45619ec3443220da8f6b7a6173a13e78a078c2b0f7cb380c2d5ac3b6e16c2a744ff00b22d6bec669e846b9e6940484b7e43600e71d221b92f87c4b6a19979a96b4d7ee22c3f5b03a5cdfbf6026f5", + "5c63025af02b74e66bfcb9d596fad4316e602adfd3979b42b6cc256dc0e9e263559fabb6d3763e3dc39b54adaa4ff961a7fed6b906e8d93b4f7388b52845" + }, + { /* i=850 cDividendBits=2437 cDivisorBits=824 */ + "064db6bfd15ecdf41c89633f243802b8a090d4bedd30031e3e68b44ef732aa021f392e220dd26d887b5ef71cac7359c65f5db9e679e611a2fca2b6f6b7e7c8102042f0e3ada1d4985322441987c3739d2a8ab60d6e77112beb7ff4b0c763048548b46070b78738e9a988f47a1916f11a92004a19f5072378866d0ca0a76f2c1bba6a529cc44253df3a8fac16a26a4c95298ca4fa0a900c567b53b16e8cff0e2488535d1b1866b9c977ce4d29be50e5c0f121496ff98ea0eeec76a0a97f1da726c8dc5c0d98958edd76959118505b00d84a740820416e71285aeee7c96938257c9473375cb439e873d647b9f70080a318a2bc7830804e1d3b7fe4a3956d4fd6aca885ad3acf84b9d9bb9af9dee13e1e06a915ed9ab51a5fd4aa4aea2d3f6c9edd47dd4db66d46d70ad74a3f1a7f4225b211", + "5fb4433640aa6413fa90a5904971984f309df59738479ebf90f6842fa52273211efe2af40eb48641c333450ead180f1f44d1d45f15040979a6cb6d01f1a13bdf4bb284f750eddd4183eda0bc84a294f441c759b290017bb5c5922ddf35bbbd571418b60c6b2acb", + "10dc8a1ebeda7778badc219f37b82ad34c2af2091c9705f44b342f0ffd1e0c2347f62066480325ad3b9f0e8a583547171abf6113c698c350a2d89889936bc0d873090752aab2731782924f97818d1ec1b5ce8aabf2c5efa20a0933b74c5f38de7eeb21076b4dc5894dbd0e3c902671447e2143a9d8f828c7f1b7d3250c3aa37f8a69340746538845b7d0a350852d12e82bac2af15a746603909c14fdfcb4719e29df34cc78be55bb2211a116be20b7464d6ab9c316176be2ae25a8115451ebbaa0008a43d02f662c1968", + "5faccbbc8182eed9ed0ffc5ed8f461c29d02c904c4f1732c271a41042d4db3da5c532fdc8e64d4cc42b9dc2809cae72efa2ae55840edf97d0485a7e280ad0f28aa223620c678da70394537e0fd6b0039b379b71394ce19b380d0b94e17f67d2fdba896828a7c99" + }, + { /* i=851 cDividendBits=1640 cDivisorBits=806 */ + "065def0f9f8a15426d123569cfe3a70e3fb44d228b557e879e94299c57b78e1e970544adb085ecfaef945f7b88647300a6510de6aa38fef49ea6a7eb3d89ff866ec7584e23d472a7b0178d4c42e5e040d040d7d9ba6b91b2015878ca6099124d8ed0dd050ec432395fc5a563b187b0bfee6004c80e2462c86f4892aab84337fcffe0994053ec15192ef161293fad16333ac426846d4443d3a68ea6a4767ba841430292fedb33e2e3040f0b5476199c058a050a415e3a32f2830541f3c58aeec8c6124e132f8e6bd3c3a00cfc7b", + "0b818ffb1a4abb0769a273d8d67eaed5a6d23ef48952b0c86816cb5f41c8c80cf07cdce79f006adae152ce1da39459ef215d9a79a05769204e3f663578e0214dad1c12c3243d4452c9f209827e6ae91575e2cfdb9109e79e10f348b6df1dbe4facc54c3e01", + "8da87f91e8b4e662bec1c9c53e7ba2537af963f1f7d8cca8278847ad304ce38a720c7559e8fa584cfb728b7d348005c3dd319b1e969bb843df47d9039b16cba27b337bdd471828627cd522e4de76930328a02baf0d29695918143684746bdc3efc6de681b6ad0bb9", + "02f1fb650225ecbbbd28780a75f2fae59aceb71ee2a5c032e897d97634ec433fb013e4ae0f7af1a5636a4aa2efdd7b984c6044038aaba2cf4c958ed7916321a7f0fcb1254855b82d9d921c50fca52d91b0ed9ae57b0e7c276f4b8ca15be8e52653289d22c2" + }, + { /* i=852 cDividendBits=741 cDivisorBits=582 */ + "181f28fc94f71dbd7efab41109d93fc05df1603aafbc588f4b6af4cc8f215d35f827a36ddc297abdb86368889702be97a14e62e74cb29c36a638c18664c91320dfec4e2e052fc73d324493716f48acc11d4b8934393edd6147696082ee", + "0705b7a21e0646428cfa2d17d6cdfdb0251466c7499df0ff5b7b51d0c5e8d5684b729b296b75b61c85f54f8a26e4b27b8423bbbab9df34616473be706acad48ac29aa4e670eeaa6e2c", + "036f5c33663fd785ea9e0f3e61a6ba0fbe73361f7b", + "06b313c4f88c965b69e349f0e03abfb3fc66ae18d272c0f3eb3cd088adca57f83decf840d562e5c12580e350b5b087145c0082754863b4bddc2330788cff8e4df3efc7bc0518de3fca" + }, + { /* i=853 cDividendBits=2293 cDivisorBits=2173 */ + "186fc231c9e7e1103ee8073d31fc37317fcbed6bfe40c5b63d6112db89d9fa4e5c5a4eeb1dd002389261ba83203fe080a4cff88aa58ac07e3a9ed7c5d9e7aed883ed1a36f04ef890037ade841a270f8302fe49a8387f85d5ffdd91a5735a6068d57ef04f514574b0ca0bd2c8fb96cdc483c4cca5e6a049364c001d2387e9e954332dab2e09ba7fb9e500cbe8621fa3bf71c734510c2ca1023439b793fa12e0d97dc8964d7bee42eb77c07e481174717d04a455838e796f42c1a91e044296de62db73d7ea8e94b3037456c73dd890d55d25b66c29106691119769b0906997f240ff391066479e9c2b26aeaebea4df3efa56fa09ab660bbb167ae9af07a19cceaa2ac10c665bee8a4ef9cef9b9d85f944e4c014d72f5c219ccfb708743e6431e", + "062d5b0fa615a0b9a7a1bf579dd933d75df8704ec7b1b65463453e95ac5baf86177c9608c1006b609e353cc2a5d90c1bca2f41c6a4e5474d2c7d930cc0bdfc5553d1e24c4f580bd1deb698203030b1f161dce37bc3fb18ba49f1f45fdd927b5f464f3d74c049617e1d8fa261d40ecd868cc534a684f3a27c09543d1f25a256c5ac047af2f277016cec639d2203480c6007847d6996c90f1ee4c9d562a3a6f2197b7732a7a36da01991085b187e3dc3f5eda5474411e3a02e554816bc6f99beef544032341e107a990ac58f8a976f736c128418d80ea01da1063563e5301eb635a609d3309e4aac2ce56b35facd3758bb96637799234cad5ae8919681f2bfc6abec86f3fd6f6edd0e387663467d6c0569", + "03f4b8e8deb01c14cbe0382204bc0a33", + "04412e1fd2c8f265f9dc30b0376cffad3482789ed046da61b12a2b3f704f52c06c464f1d33aa46e88e09a23be1140c0793910658f7f3908ad1f8531017b4e2b2b37ec248d2ae86ae972783f9e7cd09f8cedabbe46844abbf8490c4fa6bf83899078ed90549ff86f2ea0c4c37672208160c6f83422730ac89face794bd075f9a6cbab57843c7f03f3204e108a2c4b0c0e25f54271f5c6a58a3c47cd96b039e69fccbbf1b5fd55e6cc4d46c22c130063f91954299363e2cee737377c5e35667a583844e2ecee15fea6a3f9ec1f9b63698478fb04a3002550ecaa8b611391f67fe84502ab8ab62041c9d543d60b88b87e85e6af2a53ade822ae15473a280ca24305978870b3d01eefc2a3636d3a720f1533" + }, + { /* i=854 cDividendBits=2110 cDivisorBits=414 */ + "06174bacf1feead9ba04c21273e7af1f924955fade432420999a68d8634f98ab37e7e9220f0661230343a8426d7aa4fb6f017d207766848ac6f80f5c8f4f9c5781ac0d02ef735016156b46009c95b5526611a53c5aaf5e32eeaecfc042e676949f6a063d9705dff6e53c0bc9deb429da194fc19d24b6d14d97a349f928a31c65dfe79e281a0ae0fe98299b21ba6f6acd8f70719484c56944d50bbce786f64464045083ff1f2e6644c75e144912a50d07fd425f3ac5c12dfcfe280a1d7b47abfaa20c0963979db27ce11d8763958bbc4ae07faff7ef1e8be08634f4631caffcd259a3b6bd78d299b171a9276d2c97646e82d21d3daaf5e58fc1345f86e0cd4871be55c49e157989ae", + "04d2f36c6aba438d703b140706a4ee9b90432827b82ddff770a2fbdd57394b7e0b403b4103474f9d9cf3a5de545ea88f6a6b2884", + "01433c3a7a770de1755b3cd11d12b4819eaa690b915c553020c8754912dc3c614b84a2a7ced33725ee7a5243abc618a06179b23caf917553398681d87a9ec9d6c610041d74fd76d6eca55c3f6755e1c13f5f103190d77ed7e311c4d731907c1b896eabf6a05cfdfc054b1d8968ab2974b24fb9df7c4458c90bbc227405a15bd27f9768fc7371645927a1f5f75136d109a0340c33a9b2f8ff1aa6a2f0141fdb1f9419ba63870f4ea22af81fe95469ac2aa061f7695f7c85b40fabecebe1fd6065ce8ce5b2dbf70531cde39dd132a725f3ca713d4c97", + "04bb1bbe4a7b177bd70ae7c7d99a8a36a29c2240348b563284fdcfd45368646ec8e86732cc3ccf4bccd3746bc138d7db94c973d2" + }, + { /* i=855 cDividendBits=3441 cDivisorBits=1396 */ + "01dca4d8d778daac24fd28cc223c91bc4721bf647b2ff2083a420e6293c204adbbc0feb216efe4cea91a3a0a6221db692e0b4337053234863bfd10294b9e64ffbb9e123bd14bd64b17d93fee6495086bed4b72893ee4430d27cc3b97e5dd57d4067a01f4061037a7f13f0e50cb0d1272c191390fa7b47c0a3a686716e737b56054d766b495ce3282c9f514f11f63b798fae5db68d97c4996d9009754879ab0144218a5b93dd768ec0b70559100463591c5e217427327a9eb8a543baaadd0bfacc707577dfd3dd3c4b9f14595261a86fc55932b506a70f981d5d3a20ae00efb203c2859780c512fd1966b27ffa4dbf5343adcf9942e14007717e5d1cf62ce0a01e8c34b767b1c9990695035446c28da23d5529308d4fc0cfccf3a617fcdfa58376a41c7882c7b9b89481f598281853ab20147557da3fb717f19e41c1446b3fc6058ebdc4fab49ce63e29947881b4c97d4bf00be5d815892979327b2a263252deb0a478fdedd8002d455607ce6c5c1281c9e979b4194ddd1e888edebe48964a40f4a56dfd407dd0c6c4bdd04d1508f86b97dd59a1226907ed8e14b37a9d0233fba4dea66c45ef187028d9ce18f2bbf13", + "0859dbc0f288bf44bd02d6a5787544cc4f9a53ee28b342187a82446c67d95de055986b0cc16f7ada86486c4f17dfecbfe08126d0d9158b5c6c512dfcb482a200915b7b07947b978983daf62c65415d20f21c328c7ac508a9a3dbee376ee516e7bdc69cc153eb86854112c5e8a27a6d4efa80a79b78653c11313916975fdfccffe05739d8d12d18b87a2715ec1a357f0620ebf3204b2488d287dff275d2c2e96b88fe2593a09c047559c8906e0cf6bb", + "3913823b75ec5cfcb842df40e398ea8d6819a4898e46c1d1aa65d9d64255e4f07eb8cdc2413b9e49e4283212576d5577afbbe02baa41071d6dd1355f546032db8a3c62b479c78445f5755bf54893444710133929f162d4aa0d6e8419fb73d5aeade23ef4579b4f9682aaa9b09f0c0927753845770336de1c427c8b906ae91c17a032ada9732fe1aa626b4af1902244201018de61db1abfa9339324a13f9e69da2d3b6d3ebadc27252cdb01f6022f48c9f5c1f6ea75981e61ec96932e4f91fc6d47ee98dbf26ddbc0151a48b98e61d1a4411d2c12f4bec46a7d0aefd30b50efa812f365263e36e69cedce7b3dc701eb53ecc1bb3edc7b6ada9460e9824fb53f5d", + "075085c617001193e70d8bbe54d23650efd5b8a63eb51caf07f28987c0aa4ea38c53b3e03231d61546d70626471eb1c737bde87561e123da0b01952454f03d2176d70a0710083d6c66f269fe3637686564cb5ea55f88997899f403b8b2e88a88e7ff322543fd0e4d0727f9e70797f9293aeadc5fca492b1f577a5928710c179dfd4f624725d8ce11309da76886e3e5ba94da9f3de2fed2eed400428e5e36b850f93cea934ae367973ae8103c871824" + }, + { /* i=856 cDividendBits=3581 cDivisorBits=64 */ + "0d659053c3e1366b7ed35565fc73e55b0c2e4e720e296d0194a10d5432115f44c2aee75f068a56acbe8af2dbf3e2183de21e85cb064ccf14770d35420284e8fa4725295b91ded51bccdfe014981dd0fb41b658875e69c91d3d31bc4a9d4b894881ade660473c6f6244fc63812458777202755a9432a0ca29b8acbc8a9323343b37de4500764aa6e8d79001b5da1102fff122629abb155959e4abbb8480a8c65dff9cc3e6f73fc4bf22615aa4d66fd3cc3e31290e4e017d42e58ada5845796196acbebb8d1ca2d8f18d75b88e69a2ccc2ac2f0374cb86ca818a148ab276078a5faa0f439d30b3d4ad8c99ab6aa5889443363dd746d864d1fc0373aa02846aa76bb1ae62f872da1f3737fb4511e6b04164e30fad822a7f517c17d3943d87b5a270b36a545534dd4a71db022ca99e9660b998432279b5383d52e59d36eaeca9b85fdeea9874a5fdfbd14eae281a5b9a94167d2e2de6693bac72bb8807f8ba7f515818c5883f34764a067fd8c80d22381ab675472e9d7491aa1338a2ad6ae863be63ddc9b278116781952f416feb81d16a1739c05c1af83d752fc51528d89834f880e62b4a0c5223879e8fd542312bea5cced03a70912417715388b6025e0360d002", + "676582aeaad2f96b", + "212b466460e4e4f7d32a45ab6f5d382407a847f5957a8281f57b3cf067c14db636d124485c5bc9ed762365fe1352dd7ef8795ce7904243d390cc277af0ac05e95b5922003239c0e08951173cb347fad65d30bf24c91814b6d8a3523be6b93aab189180dbfaefa7e2a9711d04a1838aa19875e925d98f9c5f823a57f98eaa6b060242cf773d74ecb574b364f4da3fc46ff0dddb74f19e050d22aed11e117000f828b234b5ecb2231a3b8bc8a39105c42608f42f00b9449b536ca967a2d8819163766938b7e49820a07faf5b6a038ee3e5ce9e7d782ba8609f114dd38ab492e4310eed03d36a412b0ec66fb262c6f1fbea2814ce3e259dd2027f7c6373166e4d764c3f31e266369ae077a0afa5e915c475abf64eac2d7a781224268b0e8beabfd43577af7934f2ba6a8b4975f90e78597b0cb420539459e8dfb0ef6abcbfd73b599532b647c0604fea43624c4b646ae478462ba0da67512daf41ff0eeac941ce58a1617418ca5587c965c5f83f9ec668c08ebb0548acd74c613a49eb7c33bee4be625f29d5c2c6d5564705ecdedd473b41eb2367ce70cc82e642789373f80943f7f34104ab92906ab00f86d567dfd125572ca03b8ec8a3c1bd", + "59313f1670740103" + }, + { /* i=857 cDividendBits=2002 cDivisorBits=437 */ + "036344fc242db80e2741ad27cd7bf1954bfc410d663a9550e0155539de0b28801d919354150d0c90156496504375496d1a4b080a203f9102fe7f4102cf316531b052dc0c751f9e23918d21ee9854d18ac8a28e32e4574469ae4ba5a3ddc7dcaf466aac48c40cf25fe66bf9fe285c9d16ca599f63fc909d303102e6ab50da39ca5e0dc5752760b58d2609643962e067fb1e64a304663f1bdfc18f07ad73492c91919d628d62872e4c8a62d66ea9472f04cdee46ff9e9c5bb3adea98083895471834340ef148cca3e60bd9d2eab08e8a7030757091d514806077155fc0950b129737f20cde57702074678cc842bf06603ccc84c18de19d827f65654a", + "0dab7a96347551971ec118c9c3418eccb6c7dfac5ce828641b47cdac7630e89a25a15a7c5ff3536709bc4bb7c1b4c7dc1fc5ed2430cf0d", + "3f71aae45a9eda224af6de76372a1bacd78d3208cf8122f889ba9ba683c52422841177568e95150ab5e6e9481e02acde87fca27d4af6e82a602f63935d78df66f5cf12bda13ce1d9d1936872932e05394b2d3b2203a407cc66464d92b3006a01dab5a4e9c2efda2883d8504d6f6e53b2c123ede42f43a4b86a235a4bcf610f9771218a5d56d572b0f6384af11dc7ecb4f03182931a75f7f4d5c89780cde473faee640101740c893ef95b57a285b54b97fe4c09c3193e93d97c29f64ad2e15e61e687a0e5", + "d13a9d5f130acad7b6ae80c51d2ef38744c636777e91be765b6c3084ea368bf15065299c85c43f0568ee8464012c143d3012c0790ea9" + }, + { /* i=858 cDividendBits=1871 cDivisorBits=1155 */ + "76e30a8abcade1c148aae56eb666dbe548cfb7245cc287436d82d3c50dcc43ae9e1cb21916f31d731f2457d50fd02bc69cecace0b881fdb3c02e04905060e3f1d509f79397a2338879b886ad8dc4bb86e2dc099de138b9d7b2cd2a8d428ce923c5bd63c202817a008c6773d2359ee3a2169daf5f144a19a861c82513252e4c6e7e21451d5c67705c6330eec33023d9c4a89155dccfc1bfeaee6f4e98c6292916e2b039b1325b46b863c856526100441b325ce03423470effe2a24bb9583d4cb60a55f82f97e5ea9418e9a8911538065ddea024ef2f483772fca0b89152ecf6f21d3d7b2693b8f7692eda", + "aec32a7cd6677120a9b0e5a9a7dcc12c5bf77c38887983a8b5c9e66be7a570c7a31711bee7352b117a1aca789a7207d5a6617a73eb95ed24ffa19a2ced72f89c6d1d9aeee14a62c2fd1ff97c7b5ed4cedada492e7e3fb4738e3030667d8d781957f981b8bb51f1c961ed8706b08ecda6f8011841cdf7524e62d385676b86a07e0d0e3dc8a1520d5f3f4a1775b88d2c7d", + "ae26a802334a2315d2ab45370796370394ef8967c0a21e17ac67077cf13030fb97528de85eff01f8fbb2dab3d9796b2dd88f73a2331a73f4100e56f4c95555c79f24fece19e8692c95ef259d0f7712be5569de7de4e1e4d29e09", + "ae5f190d111833daecb44a311bfb1b9112bdb4f038d585fecd04ffa8b9ba673b09b548d15830ce11959438625ed9b71b11633fe10dc7b903cfb52282db8a8aad007a1a7fcf8cde918558d00c5925cbabeb43b488c7879a0944f611dd038a874a2089e4ab9efe83c9cadb8635c2273b3f1e35cfff72df7aea4db72b588b2245cb74d890ea5253338b61658b6386737875" + }, + { /* i=859 cDividendBits=2245 cDivisorBits=1734 */ + "16f911edb881411f629171aa5bd0448b219f1afa510a38f99363f45bf8caf42c97d7f4e1afee884def3e39502811dc2eec826a875ada0e72464d15a809c8e6e4ce27c9117090c58988b4c1a8436de2d055c910bb5cc0544ac579dd0ca8c2e0225bc19bcdbcf5667b32b14e9ef45816e6690d31ab5dfeb6d4f7de63d372b723c631fbac267ca0331a7e3c21da20ed9de34aa1389223e75a2c170357e9479cbb88d35f0880c8016bc7ca92c27d1f287373c054592d15bf4d2b25ddc81014b4cc49437363079e686e08a0a08bde443c3baf288dbf125578f8dcd345fafd3c734a2a20bdae750d5f0cda783620759bb04173106169c11a39f2d6ef2a1a6dbcf5af1c2ab77897822a592d9a4f659c23b2e1033d7d002d2d3f123265", + "45e87f8add97d75d26b0f102a835447de5b9020d59ca8d08a209d55bb1e5020d191290d87ece15a7a5f010115407188f09a3537b1290f6a15a2be7103e557e0d2e41c9d341c539fbb840ac2368273577f3978e9c83a1c7e2b94619e97d23b599774314258459786bba56036bf2eae1c8cb766917c906632cb757a7f1ebf5cff3bfb2f25a76db0ddf03a1db2afe5f67d6248059c47211e63e9f58a9ebb3a91a5421b213e7245fc358523142b8f160370956b4b6d43bef77a3b60eb079f01990c2b828ba6c8e9dd75fe7d8826e1fe9d4d098c424fc32824f16", + "5420285776fe96d4b2a5e86a3a20576f2141fdc1a3ca0eb829efc582185c4e71916c33101b8abd83319d4ecf4c7efaf203303c34430274142c5a158f3ea8d6718b", + "45a823a157775f576ee8de136bade9e0de97ea46cac16c1f0e8b8414c6fe1890df4de30b38a3ba90a69eebebfe5cf5167e62544c3c140a4144d752ba227337095a3c4cfe7f2befe9c5ffa0efcfd8fb266574e3f11ba84e48fac6a3f61b30b188927d9d344e992fcb0e0c2549a250dcd8f03317ac674e3d3e3216162f2a75a03231ebbd765d611978415fb94231aa3562f912ad92ba5377b51669e14f0231ff380c117da5303cd16dac6c32185f2d668fdf2a975ed01745dbdd4bed243ea2ceac9a9040ff24fb8d43c2575e783c32dcbe4baa97c9c1048b73" + }, + { /* i=860 cDividendBits=3169 cDivisorBits=1864 */ + "5669c5dce67d5b9a780e4bb0c17ebf2b2b79c426b4472d5c784332ab9bf9d6b2580eefedfb0e8110a61bffae4932b2f76cfb7f349c9159e944796fb3b2cfd0ba9279890340b058874005b8c038a07cf8a62149f40836c2a8d63af1267141bcdcefd0ec8ab1860cf9403171ecb5e10177a036c95341da17a53abcae70e12130bc0c677d567529f866f468347e8f6caefe66aaf12d0545c8ad85720b098f63ef45139902f539c83f1a4e3808482636c77f09b005323af149440577b88a70956e013e1c7ad332a2fb186040abe5d764599c09bf367b30b716c82c7ed3ff4f21aadd8e05c2398c140340883636b47174ba0a1714b4696eaa3dd470bf4cd9d6f923069ddd9d7c1b4665539594bc602b0c01893f38aaae6ce412271732bf1f2de13c45e183af51180d2c045f75fc9b56a469809ff3e75972d1968c619de944d7616598fc740f51a690b4b6e15b9ab41f88499845135527c930e6bf07c4a029db3c869763239a1041b39261ac497494b34aa7c12a77d93160cd9fa99a30a9f44f81e77f865691904c25f2391d422365", + "0d06babef03a4025effc232ed200b0b8385a1930ab718506d1a16edd3fe3faec53c442c63d56e17fe224f6b687440a0f0872bfe6b1b2c93a7fbdef3692de0239222f035084eccecc93a8fc5142b09bc16b44306dd20b6fb3a05f3b4840e923ba17ec4054d9e84137e1afda889a4756f6acaa773f21c53374e804b825a0f51efb1002d3edb6597860210204ef80e99848d8c74d19ab828eb1e6b1c1c3ca3b2cef8c789032dced7f5c7d9e5cd3c51979619d119d9c06ee0192660505d33d932d78e66baff31f7c099387481b940df6134f7e77dd492db5b5131dd5c93ecf824168a201f29a0c0090f9fa", + "06a23da9312811cdf580a47394d03e098108a91d2a190e50ceeaf3e9ff6253eb1d344b978c444d14b9e17ce23a599e2a3cff907c32498e313c2d70540d8654e1dbb18881b9a5f28e8be1a9424e41edde15226f75df772a5c1d8b79af7595cfa8d78974f4bf443d59a243d758b62776aedeb0754d9394e91c55d800974e456ade6e4b7e03d7e1ab8857738e4263bddc8148823ac128ccc950c7bc12ac6f921e6b760f6300", + "0115deae2dea0a9d8ed9215f9af67c67448d911b320315f7a67ad4f7ee0b3bb4967163f2d296a0ace5666519acc3ba786a44b852d3c3ade93442555dffc11982f6cf2ec6b20d11eccc8658002f3497244c05a00a39d617d4acc91ac7f88f2e71385122136fc2c73ffb526eb9fbeef7317a917fa3a00dc6cbb2e2d8dee1a84c2caa204cecccd3a2e06a1600932ecd5b30fca79b22dfbe0111f22a2f4a5e8ab743cac6e6a128af7e9fe33d3454b00a58c861d0f0766e7d6cb1463059956d8d57176a098348882a4ac2627d64fe68723d881c52a9c9dcd51d25b7094cfdf4a25d7877bb24aacb2af07565" + }, + { /* i=861 cDividendBits=2017 cDivisorBits=1273 */ + "01c3dab77a5692b757fe9518ae6ac8a01c63607b6b235d117f6c397731c1e2acdea5a2e649c8a5635bb5b6a075b2a04eb99c0d5cb00d54f3a390697f86decdfa258ca2b94a768bbce8d011f298ec312b199e67ddc0572e8b54b6782c7049685ef4a5abaf2c5a32405829002193abfef51d6bc09b16f4cb5111b5de31cc0d342d0226bdd9e32a12880b3ca4d1eef853791fb251af29121857d79911fd896d29fa26a9da3a38c8e2ec69328c98e196cea76a00f42ed800ee0f0d28d70df7c5aee6e59d0053ba077b7af5d9b0adac89db492e5dc739513088b8a696220bdcb1cae36ce0d6b7fccc9a0b28c6b6a12bc5a88788186f23937002bf65df0f8676", + "343fa63b8715c3c8ab52b680af27e47228b1d068c9c7a8dbff1cc4f8d87f49f3b3275c1ac85a4d9bad5a39ecfc532eee741eff0fa8159c31696e7d9f95e26831fe85a1ab79f927c0dba0ac699f737cc1b7435237a0ab28770c1ce9c775373f6beccf7fc386ab5c3eb879a019afb4f72fb833d3c8ddaf6256f7e0a2456e9131338535101cf0dd24b350db14c46db8673263fb2fec1ef5bdbc2a51eed9ce26b6", + "08a5ed9f7c11d691c98d154c8e0a08ac51cec0270760c3dc9144305a3f07e8e1c92a393cba06f67db685ae548ebe2913778c62e3c6004366913017c77d77e4169f064ee8ce30686c244bebb611a6a208ca79ee77c89929de9dc77f51888b", + "308a51d7c5f6eed20936e3f42c047fcfbb1c6b8b5707c0e6b6bf629e740a0925bd62b67fd739849bba9513185714cb49bb02098533ed810cf6d5b46bfda3316979f1b5e315ef27fd1a7e7f9a33ad431d8861533297e6f301c801910f330e9b2714bbcdf32ee2b77d84a26c0e89baec5edd9f49f4eaa3dca7d71693456ad67b3e89cb4819911f80b7c57d3ad12d36e65cafe5e79b7bfd90ea0f7a178df9d1a4" + }, + { /* i=862 cDividendBits=3911 cDivisorBits=1271 */ + "5ad62c34b163e8c58326448e949563c25903f1b1c40b07056bd0f2d22ce27dccdaaefc2d5c8005cdb160b40e65df839e88d5860042b8c82cd2fd3756339b0a851414bab5a19572dba525111f5df0f0315b6dc1e092c580b490496228592845fddc51523a6652e5fcd1c782e7ce5ed3f3e54f32f08ec4927775119187b8bfd2c02127459891c2560939f8ffc6bb17dccaf0406e23aabff684cde64faba9f2932ff82b15498422b6d497293e07c5aced3eceee59223e08ca9ad5108c3039bbe81ac17b460d161c65540c4aaa87a33f6016a5449a84ad947a4a947f2dc2190d720cd6b5ad6b77e0d973b593c73f0d095c9b9015edc1d903c601af1bd4d91dd7a29abed5b86fb212b7cd319555af2ace85a7fe9b6297c2d3f884aa7208dfd290256854e32fe8c4394773234c86c79c24d2aab3437d0ad2ce4de01a703f0592fd733c87747db85f82fe2bfe45f656c4617b27a3d78ba66474fb4c86e7e46bc1eff09621939fe47caa816cf15b93d4cfd59f9a4b2c05ba0c8a4aac8bbb0487d911a76a0ef45240b72fb97a9de85f919d227351ece7c23cdddbffb720acb0519aeb16b451f94460381927184b796a533812ad6ddffa589435716ae4783104e733fe969e6cb77c9497eab5a3d520696ed745941292a7027dc17897c532d51f351f336c971c80bb42f692156ed7", + "6c6c2798dcd927063eed912d6663070b6cd594da67073d72e056bcf357cdda934ff1d1eb34b3621211f2f254dbfbe0fd56e45b0ba36391e3c839be30fdabbdcf5d9124902e433ac30b11f33c03fa7a746610ef59870c6e899afdf6427ba9a1942d11ef5642a2641c55c364de49d2a1573ffe4085f4bd26c17db6072f1a1559121a5719142af9cc31cb1fcec4630e1e7c37da0ed0807bb02af27116e32e941e", + "d67a37a273a474a835a0811da2b2ea62a4d59fd6072a31390f3a5253524d6658cef27648d8d67669fb3ee208935a395fde0db2227fd8abdd24fdc3c61f1f1af01dc9234b8048ff78bcef056eb38b66edbe4e9a723015d53dba911a9183454b0e84cbbe13fd6e9fe04b771e832e3c63b9d0ea22cc4c7621f0731035ee59880a8575734d39ff0f8ba01c63c78ed174811157219627e98dda2b8fe63629af71d6d1b4495bdc298635b085ec8d8eccaab3d182f354b341b8bae436f5c7b7997f245275312129b1e24abf2f3a65e4b7e2dd21179e44618707e1ed3f031c8c11913f3b002fc60be05c539053f3874eca41ab9f31f80237571e8a2d7f70a5936faf5ecec9d12fd6eaea30f743660896cc01ec51c9ca0702661bcfb7d979ec5983e85328d9490e07f199bf2b7203922adea4b1e9987224ddce1c3d8f8660130863e6ec3398b0291675e80b7d88e0", + "44aa6a4bd8bd3e10a2583364e26d42809cb3be3b00105f310f5ebb59ab7f8f75019aa9475ef3eaa8b7cb0a510e5d3e5975796a38ecfb21e7a36bd0e313ce6898037301d9999b029f2c2be8edaad9df297ed05fe3f07d76e405ec582c67209e03fda2778385503c588d69060b01231039f4ee40818d34a3fbea76d19626142d4afb382ddc4a985cc10a4ddbe1e95609c258deb66cbbcffd381846f36dfde497" + }, + { /* i=863 cDividendBits=2096 cDivisorBits=1174 */ + "f62e84e14a48201f37c82016545ea0e5c9dd3b18df879424a912a83e86bdac73b6f33f50878bc5a7e76605d2a844c9beb6e8ef28275840594453be2db9b434fc458e333e2371ba83a8cfe2bd4e5103d954eb3993a630a1336950fc574da19957d1f1a7c9ed71c22fa27c8546c17854f56b9cba0981cffd01b2256b243b62af85a7cb3adac0b89c291e5417367b1d9fc571cca0df64e3b11a38fe3fe1a80349ee03bc1cc72fa4ec584e8967e559db3967fa23318cd8cf702384e385184ddcbf738b2c337c6044f75e580ccda457afedc136bb447de656d516fc8f74fcdc470454b328aca3b56243116787ffe8fc42c410c454b3499338393166fee612c7c2c6ef10ac9f6111ef", + "0a57774f77934e3f75c4c8b94f29b1aa3776d484dcb971f73807b1c42e0134fdf3d2589ee35cd30b04f5bd8e24ce1da07b0cb3a17307ecb834362dbb640f310c30a778b29ac625d7ade06a97122cd50641072591b72cd5df74f3e982842fe0c7e29e3ddb5c5ae0b16edbe22c174d77f593725c453c97e808bad385ed61d1497354ea45feae42e3548ded723bc56701deabea61", + "17ce0a5216de8400282c7c3067def3405857661596ff8f656ae9d0e70e1811af003f9cd1f140dd2a75270890db28e898be48c7b390e04a027d39ec59da4d92f8af476d0a287f297de4f46bfb4174c64812a55897ffc012df73ddb70091a8599f1585c628db226771a7c56ab3bf6a262e5e0525cd", + "077dbe6e9b2c68cc61f8146cee83441dd490417b9c3b7569fd654194dbf97aec468a00b5e90ff5d8106529ee9436d63ea233c5a347751e6cd4484badd7ed85047b0f9d12c5e990f3fe3e441e2818c47d3f920a570cba34bef87c180ad841d9d88a3187123fb406e85a571c14a650b30f7947a3dfd1130e81fbd0f9bae16a8828c9a06fec67c8457c5b2db3bc53522544f15d42" + }, + { /* i=864 cDividendBits=4001 cDivisorBits=2930 */ + "cbb429b8478e7a4084c6dd9b5b910e3cd3081dcbbc9db7dcdd8d7cf158f3d0bb7d69148a56f1aab74347b1eed28a59d1b4d86231c59a5cdc65c4f32e32aedec91fb027ad35e1cddbd35065a38de507864d1a42a41374cc6535432399af78da7450ba412b31afea7795c04face9d1398eeab3316295e97ae4a6d41dc1f07ba4dea1a4dc67fc78151df29773f3522c0138a2f739bc95a7ff96a49b77ba7bece8dc3b67b238d9d64d63adca2b2125046a64392f5acd96562b53125162b3dd5ba9c509d185cabfe4087be4119ca3022c9abcadd573722e75e30e6f18c48668fe1f1e59be538efc1a240072895da9fe8c6db1343ba13acae6b936e69efcbc608c8982613bf02f226abfdf70976bc31e08f0845bbfa873a7f042f1da2a24b9c96c8f11610b610d8b33eae7f4874e8019e99c310d72db4fb0f402be82ba6b8f56e6f1b10388e3ec04499b666e0dffaa4817162a4353d188df95cec0dc4ba7d6feeef2c41febbf92ec859b8f63d05d0508f09e7d29a60037a26db47852d00db9f6a773d31835a0c98456f572ddc106c80d472aa4d469e48341115edea10d434403e140c4e13d31c6db9b527ed8518393aa0d9296d3b5f24aae12a9a756e483a4d3b67c8e3f82c5503c0c38d352b66b2a921cbee3a379ecf7261c4c072797f1856dbb7f914003f882af80923c8dee9c7b4146a04076faeab1", + "03d397b78551ec65dc3b87d3cddb0e0ba0e5f3db39c845135eeee5554a6e8337ef260bcbfacccd28b9e03061145da8ed57f5da42cd2cc0dde34df44dec212a0b61f0d9f2f4f8fb2392f01f14458174620c4a561996d689e7e13f3e9feaf17a68fafc81942e3b0a745da37f06424d7c326ab77765a13f5cc690ff3bc6fadbf2ad997df6a2227d10fc3ffa2a9076d21c150fc1e7c020ac3a4d666431247c44c3cd11bb7b4ee2c6b36629eed7d1c72467be46c5b812649be98f8f7cd24f9480f39c84fdf247616be1b76f7249f8fd2083ff320d39f557159ee3c733d1e70bbcb9bca4b2b1530f84edf1ee7eb7d7db5b6233f295c24dba91da5e89d0f6b6fddf69fe00ed9b6deb09f7b61be19c82936a5868b974a191a12f821b27ca4fd6330fa2f33b94e3093486f37ca8a5f7759958290d98d736337bdc23196a8d58d87291835c4142844e60868da87b5bef6cf56bb2d4108b6b287673f93a3b0307b6cde265442d3e7af15255b9d91e4a43c81c99bd", + "353c0ac21a2ffe06437ea884d9adb697e5b814ba60f366966b7ab827134fe3ef0ac7bf902e6e1d4971e0d1f2870f8381f41ad835ee9c96b9b7a0a3ae0e2ee2d4c7cb0a40cf3b67796a0b5c713c6b958d690565f7c232c8469ac9c0159c0c2d0ad1d19b90a04812c7b6df8932c8753aa9e66e2a07f2453e8146e34d73decf3532dffd8cc793ce", + "03bbcb1685778922bdb2ee7408283971aa9c1629a5f44fbd6b6cf8d0c977ef6bfa2662ae03e8a586c71b249c8d0f4ef70f97fc20f1da5836b4a56720ebc7a7255a5631603129e7422c40531a3499710caa63630f064c188b1de5bd9060cb103323fe1f7b38f1f26dd3cdb128940ef6e9937184d39dd3e3d648710418b87e0e25fca72b54f295798c6973103959828188b700cacde8fe4b2291db2bc1336ebbc76056e1fedbbb41bfe2ca1a3d8bb05acb6996d146a4ec8b1d22e5a178ffee32a2de101bfb24910ef7c3f349fe1be1c12d1b9815ed92056c327ac6f3364554881709e49c49b1733696a3af796dc7b188871826986306f5d80d7904ae897135478008aa96689240c95cbe2b4d258d2dfc8988abeb1b0bcd3a534826e0e453b30f19d7bc4442f5e4c1778190cc8b4e3cf10005b3e51359d1afcfa18378da69ed7c7067f60d0e18857d047b6076a8916fac27e15c07d08a3e5482774bc758868114863676bccb9aea8e84082cb525c4ad9b" + }, + { /* i=865 cDividendBits=962 cDivisorBits=375 */ + "98d5a294e0260e0f56472d30b61a9717e40a3312d19486f2367855ea0e4312fa05fb2b2397bbba3cacc424a8a7267d70ff5e25ca3a644e569415323ad2e5137b88677778bf5c1656f160310e540069244f1e87c4c2af9d9352c0a6d93d0dd85d52b5924a27a1c2ae30ef5496802d7acc40ef9acac2100173", + "1cd2e2bd62667538ac019be50dba1690a0d7e275e637d08e3fde26a015d352b079c0140064e5ffac965ee7af1a1619", + "054d689716186aaa5680a4b19df62aa5a4a1120a16c72f1b9a0321102169741ff19461475116f2ec54fe8839d771afe8b0dec54f64e130ce2764d8261be7a5c8a343d2c84393b67e29c4", + "0766df921f434e23c68cc737a325349679e1fba03c7c48048c919acc72724841276d6a994c8f0276cbe075de3f154f" + }, + { /* i=866 cDividendBits=2249 cDivisorBits=971 */ + "dd9e7fe1a2d24d533d87e25699dbfc7098d79524998935f54972d6096232f77257718065378facab4b67b531ba09a055e8dc81451d1bef59d134f58a3441e830533a4087d1ed0225d761debd92f7c54ec53b85aa8ece4912fbea54e1cbb96bf07bab0cccd7aa311f69ba3bfb6ba8fce3da3dd36245680c977d0406f3d25612fe033493cdb2afd3cde627fe6ab731c0a4fac1323764c8d33cf0e6337dc58458626fa0c1272abc61f6553d3fd61c997a20582ee060c02d7487dee217c17131f77335fd13f23200860ca69dfd1a2bd5a3eea1b14f2fe51fee76cfb7b6c80dda4c5fcea0631a0f75a8717aed8d4e9f9ac791b019a6badce6d3841226125c9290b2c47cc39a0c828d00cf163d691721c9b412061a61a4dbecc4a469", + "91802c3012a22eadbb5f3a25aafb39225e0d60c8e3cb2abb37b168a339e0cb34a42a1e7091212ba50f13feb7066a0cbcc8b30f88512158a194dcebbc69ca7c5cd566cc8404194c0b8e32987caed4d454c61dca77de9f87740a4622386705a4ab95ad67d241280a013907840bca8276a16dea3d48db51465cfa", + "0185ed0ff86133c3d81d5b05ab5b33816f5145946cb1506f31f829cbdcf5ab48e3c0bf0daa09fc3cb51bcb5e4b6d8d3e1aa90f60663bc125008fe7195cfd0954809ec300bfc223732ce462c7b189278a8b573d770bc62a36a406255dbda68c8105b99b6e38f8fb63f2f1f9ac57689cebfb4ba7c507797ca9bcfb3eb903cb3e935c14ac6b4aa927307f88bf183980ae12311ab85fb5eee682dd7e239581754be01f", + "4ede2da67a7e38f7a22fe1a907f89675324079e605778dbc4004c75d168abbdb2873056907e0d1dfafb9d77283bb13fc14fe5f04a63e307cd455eb69fe81d4ac52dd31b68860b731ac0e3aa02f4f827edd9aad218ff99105ec3971dafee5986228402b7da2d02fbd2757a64df132fd637ade0f971a04a6a223" + }, + { /* i=867 cDividendBits=103 cDivisorBits=51 */ + "3d38576b65754222c9abdcc4d9", + "040da28010a6ee", + "0f1a99ce14664d", + "01f203f5bfbb43" + }, + { /* i=868 cDividendBits=221 cDivisorBits=131 */ + "1886edd8d30eee8d9e68de7aa7fb5cfb3eb87b8c88b3a5830555b0f0", + "016afbfdb9b55bcdecf3eb28209062f356", + "114c4e6ac4ef62001cbdcd38", + "4c16c52dcf2ae7d2c7da731924569820" + }, + { /* i=869 cDividendBits=303 cDivisorBits=58 */ + "68639bb12524404aba8b8f320da6a02f5142e938dd2bef521398d86bf7e58efadf744b2e9642", + "c74c5d14ded7cf", + "8616a78241c5a473cb64bc8dd3b64dd2849ae60eee6d2325403804a9fff42f", + "ab94cc7262ab41" + }, + { /* i=870 cDividendBits=2647 cDivisorBits=1100 */ + "6377b3fc178c90bafcbf10b188a5a1ffdb5200f5964750d95c2eca9f1a909891c70247e943fb02382393c84e9ce521d781de94be3495bcd5c092385f5ea57bd59bd01924b735cda29bfdab23a8ac16fd8002f3012e3b174bfa31702fc4b1060d669c1279dfe7812510c9937c411b20eac13531b7cc7b30d299e7e3320377ccda035746f4381578cc31f3b91e81febf807702a5dba99d7eee98e1a6550f74c1e5d62dc3cb687760ab192f2072ed975de64525a3f7fe516492076b719db9f53154ff7f451d394726047ee086b41fd7e6432d699efb9792aa3544a15a8017f044b98d7b146221c89d307606fa023a2944ab118c16d8bb8ee241a4b9228bd19a47e0b434fee77cbe22cc26fc2adf77b1f5fc2ac1b29757c67d5e6d3adbe88d692eab348a03f1d5b21f0672d9808ee67a17d87832d83d14aff0132a67abdc3203e4e0295165b4f64f2040db2d5c", + "0da43e1c4d2e68ee9f43cda57f130b31ebf487da585c6c2f7f5680268942c72f0d08888be77f1508500a3b7cd69b8d3803f69f502870cdb4caafd08607501b271876330ec711ddae61891726504cb92df00992b104f462fe048a66960e633c31c09f384068b14d377d944417c35bda08e789fc2ced13a756106a6d26032e21211074347e21269754c828", + "074aa00b5c68dd1986dbaa547e66cbf7b64a77b4ae231746318c394d9a85b617ed9ad50864dbd011300dd8a784cfbe8cd05e5297ccced398703355405e0c90150ff89c9a6c130dd8f05ec7e7554a77d459e758f1d1e698886f415c9b4f5a2124f29c728e550d0a8ce090578e5d5f935c93d1ca3251cd7b297705966ca117f67e4e77dbfd287736993ab9dc2577e416cece8ce38cb5f18fe55f9dac447a29def20bfc71d1f4e99cbe530c87039233fd5b51f9417b59b7a9f94223ba5c9c697de06ee2", + "081e2dfaeea27b935c3e0b73a97dbaff70a04b0bc47787c4eb67687652b958ed14753d770160797cfc145e3a88cf6c7c5288664248eb343dd96768fbb08f9548640a4578ee91f36c51278ad266834043d0cd5b979d9475d8a68a2198192ceffa2653f3b2b472818bbaf0206b0bc07ce3efbf489090afe06d8d69639a8e6c4dbc914b97972db58f014a0c" + }, + { /* i=871 cDividendBits=1783 cDivisorBits=140 */ + "407350b8e318bc5ff77a22643aee1d0a5114143614e3613e4b671879c28eb53236bf86e71eb3bc2de9b98d964df7ec40a349e73b540912ea0ec10e8f3aedcf155440e887ae7a96cbf2fb70dc8ab83345645992605f80cd90d39b85195d1965e67857d1cd7516ac1f3193fa16d706e6bc092eb0856347190a62d740bdeada08e3537ba0bd09c7b004a5a920c1a22833159c298f3bd6007392128c29aa8ef9f6f29d278d04b5354afb099754f1b2dc6cd828b2dbe75b685c1303c4dc473fae6fbeacd046c565dd8adb433d832cea3aad3c8bde8613fbbbba19ab0f90a2c00756", + "077706f2c984bf510f26a2d00dd8d894c8be", + "08a23cea9b25d440b955a4ecc49562d33e2cc691f126a4f36220a585f2cd2174d5e8f26b32b1ac70d83338d740579ac3dd95da513fce44ddd2b349bb27d30f8152bd2cdd6fe61de9c205530e8c8bab2b9b3d351ff60af19d059fc5f73df16b6404b53e3008b5671899129036c25bf105dd7184dd18c327557abdfb85b54af174e2d37688d19d1e33557cba9c9aef44ead5de1d876fb6cf7c8a7d8441ba5fdc8863c5a4d351937c3e8d5c235dc94aac2d3a4652fe6b0377859f95c7a719fae13415f9bae2a76657b071b9821c2e5e", + "5b05db2c9fa979a6fa8854d581ef442d92" + }, + { /* i=872 cDividendBits=1108 cDivisorBits=532 */ + "010fa7abe81b3556bf4d7711bbb0e9e8d2e6af7a17c5cfe0c585df7a40c370025953215e5671504bd5aaf014eebf9719ea4d2a8d06d5079cb355e2202a9f048affd3997e293f7eb2e6b8f033313fe5d94871fc914cc26f5aa0e5ae8549f1bdc0d6d3404d15b0961c96649f53f8ed30bef047f5766b21db8f64156efef08298b4950e0b7aae4c221ab3df4f", + "028319c78fc77016a719b512c6d7158b838e2e2584b3c6b73246d60fb38752c779f7a9d152d5a3b90eb516a260c04e031b22350900d971aa87825a8d172bff01196e16", + "6c2358d8abfddfcd7a745b6d02533c1bf4451a54d3af1da5679fdcfeb43e14ef1b46b527b3a0db42387bc11688f9d90065acb7003ad70aea35630e7336d7aad37bcfe4fec026ef37", + "024885075ac1749605d6979c8fdb669811f90f2a47edad8515e0da7e31c855ca0b6987afaaeecab9c78e4da30b599691e96f2684c3fc57af12f8da6ce2b8274932ae95" + }, + { /* i=873 cDividendBits=1682 cDivisorBits=495 */ + "559ad9520b27def884f14cb9226eab369984cab279cb60a705015b8e0661c58448757b1d61d54bacf2ae9c3b292071eed7a31c880c6973727f6e6310333c1a2098685195b3a6d637acb4e83f0557588c545057fba293086ce9cbeaa07760becaf7a11ff03fc11453e76a4b758553638ee19a8ecea5a3233f459a5bdcc9d0a82bad44f0d89cd43c63d2ab019ad3745edf49c6c3ce3b552b66fff1c3d3b52b6ddcdec3e2ba5f386a7b3b4c5035b78f6f8e5aab2c9ba83186cc384c3ed86e114ce1a54746e52cbd1525940f28b5bbcdd9973d38", + "58c9c7b16b0fc1c51767f71ff1a4f7cdad15dea25b68c64e2af2e28fb076145dc134e5d71604b102e99ca844dc0a71c0975f6d7c2507eaa5e2759a60bc40", + "f6d256398c7d66c464bcfd60c826811a122b6f14b6f98935b19a2ea7aa7d31f709956c74286cb4e6b19854c4358234f230a4eb7b6875da049390478452c8572739725305bde0f2751278ff73dee0f06c1d5c3562470e2c83a339b0aca8d3ac25b97ef4bcee9e1a732cc60fe0345acfb527cee4cffff65474e5e9d2a55b95470440a2721f06650fa591417b4cc5849a28ce74446f", + "3c01462853b49b8edccaef644a41efb4bad226a86257a70da78c314f13dadb566ce180779d149e374906d3e33e870787af826812ccea79c1987d6aa49d78" + }, + { /* i=874 cDividendBits=2012 cDivisorBits=718 */ + "0746e751c8870723a201bd887f751517252c8a228dab87ae4f9556e2cbe2fec5e9e6a5d1f6e2364d1e8129064cf3434197878425d6705bd00b07fadd12edddfec00b8192d3df8892947896ad0a7f6d4861dd9e4d0d093f3d5a5d29fa1c08bff15f1b41e3371cdf1a66d2700c4a66860ec216749d6eb10c2178b56ee3499f9842a6e839b7895a019036551b25f157f2503324515e423a54eb53edbcfa8b1359d831e20f24849ea83be07f40e4ad47bc2de20981e57fe4870598ca1b2cbb5deed8b5aaa5dcba9bdf488399a9e199e07d998ddde0d1102926dd8aa78c15d80b221209db0b3492347988d044e2e356456ad4618d0419f00b12effc72818b", + "1b03d831e05232cc844a53fed37632aecf74479b027a9959a17dc40909b34ed1d7a62c8daa453147f107374fda67abcd256c4aa968fa0f064f5b46e533dc227ba0bea85d778229b2647f6391587b38cc1ce3bc448c2c08704441", + "44f5445b0d6a4cb35a225b6bbb6be89be44010878cefaa714c89c6f66f21361c8a622decd34aee13c9b45e3a41a93e058bc95a9b1d8828c6541ee7a883be71a0e594acdaa9808ed31447981e9a6d5389da5eb84908c5d2d36c6dba842025b263c4385fe60f96051a39abace95211720850ba4de347ab2e20fb6384b3aa522b9df841750a58dbd3f931026a7d7fc65cbf72a06d6543caee8be770466ab444f7e09408", + "09afe3f002b7d1748d82262972ba4e1504c9415d5a2b6bd68b6b1978b11db5af4f12f9fc4fb60df6fb60b88fe7d0ffe613400079803b644cbcd5f125341592cf176230b464b205d751bb23546682d33faeb41377b354619acb83" + }, + { /* i=875 cDividendBits=2137 cDivisorBits=1803 */ + "011939491984fb676af4e163788f7dde1d6e491c732160d074ec7eb843c7772e0a6f55278a17af90135cbe29b0f0eb52378fffa1a5fda5c5e71c63aebec848ba50a0e4a874a890519d00956cf294966de07a9021982d29c7c8d2f2b68f216328f608a9170e6dd52ecfbc7d12b2476879bed4c8d5ff097a87b21cf0f29d4dc89fc80698b64e0b233b00ce39a63a9b0cf8fa42ec1f765ce8e40b2528532c2af5b13482980ebd0eb3882d4ec301391aebc34992b255c67838bf6fd1739b437f26e9fdf7ecd891962ac5f37155ca61e889be6898ada9b91788a8fbc8ef277c3039d3bd3411e40b55be9853b3621fb9004515edcf6434ca07a5d2691a343c8aa11b6415bb0e3c6d25d599a800bd18", + "06dbd778e0a1bb51592dab2a85678067ec948d2aaedfe11dc666ce79e03bdc26f15361e7bbeec5002eea6769a1767a35ddeba6fc8e147015584a56ecbb4c773e15783b268bb0643405ff75e11edb53bb65bddc521d09fc9889c2289d957ac6a4e1b3856bfe1e5c8835a761d18cf9b82e04b622d884e8e279ef949840266ed5bd2e43f3d6a27807160fdf7f43df1466d18e851b0b6556ac45f5a4597c55f4cd02a6d9724f883c9e5d709b3797a5ec1985c4e1223a6b81617cf2a033ea244d00baa40a94ded98aeea333ccffc376448dbcc74d3ac0045cba9a8956ce8ff144d2e0e63c", + "29008cf32668f384ee1d3f8779ea9aac371bf180f80a0bb656fa18033bed38d168792aaa5fef60f4ce2b", + "eada96aa12aa5518fadb8bbbd55d107c9d335ae838f9ba418a657fa2450b43611401e3baec0946f671b1db7d0fa4132ffd22f13d4be36ee7e975b59c1cb08f9e28375224887c2c335d824cb68ec0fc7403c68b62e231eccb89e2263ee53466732da027f7302e3115d7c6b7ff0074f3816363961a454329887247a098212ecfeb7b6daa5b13a432c8009adc41f3799483729ffe180b8be7397a6f95f7d6dabd14489ec36561f983ede47a5965a4f8e177f7648352e1485d5c736ab76fe2394d9c539d633238b36454a9b3d21a280856befeb464664709065bc710e662a351c5c904" + }, + { /* i=876 cDividendBits=2932 cDivisorBits=2168 */ + "0dabf01c9f37dcedadbac66216403a96e06e0e409b7ce5f03e6f0212dbbb1d93912db06267de40e5b5c3a12318fe8c41bc22d6b125ca22fae32a0b430eb9b865e20039117ce386340a2e628ded25a6f1e8e206385c2e5cf3c7c01b8cd1ac71dd151bc6dc1e1883e61113331dbb41f01ec694f75a57ac831c4d4544ee7101a9ea14ac9d6f2df6fdcf527489f8214809f150cf88da30e5d7c1d5316aa25d3588396e69695afc62bea4aa04251bc179b6e3f36eadf001b9ea6ecd2caa4b9252ac42b2ca18fe9c5c58ca17be5bbcd5a18b90896232f150f77e7a1947931dccd65ccc779cc304e0831cf29cd2af02847a340504167841229a681f7dca306d4e3ff87ef00e39fa2091d554a9120efbd66b802eb0973ff9337a423d029ca182a49c348bfe0ec6bec9a0380e9e1d69ad223a530e3ef67b57e17fd7444febdeb9a32191cddf85362101de9d6e64574d0d47bc16f3ade9196486138d3d86969f8663268b3e698018e8ef74965d7c576d37c2a78d", + "c322a505a1887a4c92972de032d325bdd64fa7a1a93bd3aef487224774bfcb1e27f501ff059fff3cf63096f164d0e74900e14601e4f533891467add76881db713b0e138913e3b7bc9189ec0a7a97d6c46df9437e2a9364ee6bb4e9e52dc9c91b2a695b52fbbd1185ff267ca52efe5398bf6525abd501c8371f32fdad86261aebacd2d1e537e479d026e3489f2e61082efdab4841e61ef724bc2ff455d01e1464f1f8c7cbb0f1f819f82e09cff8749e639528792677e93a2c086daa6176deafc486c62b90658165bfd194bfdaec087f8a73fde333ef1b1298a7e4c79a87dfbad70b9fb333548769124cdbd05dcee56a2790dcfafa575de338fe3806359fd69d37aeaf24a6f1d672bc9cce4885286bc9", + "11ef9a8e2316bda58bb91eeab0634332df9348256d0fadcc905975afb96ff42400d12446e875a085931ee7322df52e0bf14c1ab59dfe0b171473f13c7ef329f2a09df827ce4ad9aa72910c56a3d212367cf5c4d009dce56515eeb348a64f4b58", + "91a13ccaf6f32de7e5b3d70fc92cf819f0cdaa730b482a41fb85473e9e769dc382a27527f7e792186cb5f335f10a9078dfbae20f2a430232334d3f7196f1f9a76adec5c3e11a229110164b9a179a6864b416a07c162518e97aa0a2423e1fc614950de43036f78765f811bce728178cef733514653a7ade17be8cea5bc3cf6fb262c86882641b7473a4f0a5992bccc37f90b5de4b27cb258cc66a2b5651adc26cf39368b610f59a9ea276429e019851c06739d43a9c8c49ab5288cb09926b92bf9efba5348758f3d1e9e0595c62ca190378166673122c0e90f35edf0f49ca62425cafaedb95bbbc372572019717c442773a3db5f9a938149027519dc0e013171f42e47c4a7c14837fd306970142b775" + }, + { /* i=877 cDividendBits=3920 cDivisorBits=1761 */ + "0393be8f89c07da2308df5656b94e00be14d3637c81032e1a9b63b6c367de52f8ab70cb4b513b8b075ddde0ed5556bee84d59b6c3dcdccb51d4a4cccdd338e5f00ca256cb4066316bf559b5185352308e87e906ebeef221c9e7b62286b137e83112af441063b16065e60349fab6c04fa956970d0602300c0dc9e1fa2a9e530a3cdc1977021f51fddf728d5d0df1468ad53e6cb9eb69ca5c098c34864b5a857fe72dd14f4555ec1fc3875027ac293c61e649f5178be958c29d5edbe2f047466a291e3005ba0966cc44b0e4beb3b2987cface3d22d57e56bd1ae6cf660745c40c18c64324380189e2b74744585650efecc4f2dfdeb0dc3e98f6533d4a2facbb5d66ce0b0b715e5117660841a5747e91843eaeb1be3579c0d039f9e98175d456635554eeddf707d47a30befc8c43736c3e28d5b479650855883d6a70d8c30161fbe660b0b8c8b9167ac0cb5b1786624e1888c041106c48055d5bf6d6a4ca00623c0c45c78884445f1d5891624e4ef0cba83709a3d5c78b3439c117d7bbcbc404d434829337f0f73abfe305b3af74f4ca739b27be25e5491d34870e6406e101ca759ff78a6b1703dddfe4a619642dce951eeb241a5ccc9acec3c11d880508c50154b8c433b84a44d4ac578f2a637f3097c3bd59633a91269977f60512ac79ddff6e2f32bd407e843a922a3d5", + "012949e731eb473a56609728e43e23d0eca1eda747f86b057005ac3ef8c0be5e163e09cd28c09a655dc7587575ae87d33c679635425ffcbd19d4e0869a66b7ee08f9837cfb24d17cade66b67ff3defc4127f7a32608bac8f570bc7025ddd5ef7e272ae156980eee38646bf45dd6ebf48e2a1e1b18bd1a015bacc38fd9efe9f184329eb519f11f9b640756c634ac517fda8c1e07b013c6718f13756052b8137c3bfb67ca6b5029522e6baf4fabdfbf093af4482588eaebb7e6a7ff3a196e6b8b0552260b2320482bbf3a4ef0e5cc3297df62a53a3d75907c57e325faf2c", + "03148fdf8db7aba0d16149d7d4c4706329585a6e05f04372787e403bf9738f475426c525374fe415b79d387939bbe08db3a93c9b65d9857ea73553973db640c1bef28885588334c0026a56af36f3bdaa3341e2e7685ad7d8c5496c39e91265b730dd4dffc37c7f8030185222b1b806602143e1d45ef4d130cd2af724c6f2d06905369d13586680780d78b667f015096bfa36b56692900593541b6a51b9ca84c6b99ad29ecc13520b1b5425b37019829d0e8609c459d465c51a32d545892020f3f276199d9afd48355c59cfa3d99e526c8599906038f891e6108c2c5df0a7a2c53a18c4a2caa04412adbfc4664a559d3f68d43322fecc848080d5b507ba48265ef007d627488609102cd9805a64d3", + "09f609090cf586d04fe75f91d11cdbf1fb3d3511a81980e17968b027f0f993fa9dfb712f82731b64a79e469a3a35cfab545208ffeafcd561cb855bbaf556a497072e840401eacbed5e82145ac53e9a1e06d4152cf6361385c5a6f35117612b2ef25e85fed6cd6f0bd5d3251b2ebacc0f3736462d2f287e84fd2ef717a965b4ae7c1768224e72fedcd910fa923b6c44a246699795bb37894b0603586c53a2af4dc0302c61d789697b6f3447979e0065d5d108f17aaef9cfe1d77da80dcab1fb817e04b252a273f098894f3ee85f14a369cd7aed9f3df63c0d2e601291" + }, + { /* i=878 cDividendBits=340 cDivisorBits=241 */ + "04661d7787afdded739e89e831c67a544b34e835c2ad68ddccd1cbd441d7c971de52abde4565a53249cee4", + "eb1bb99d5ccee399bbac4b9823855620885b560e0de280b64082a9efbace", + "04ca2e7bb98918e5cb2d8be1ad", + "38115d359778968483841be7eafcaf02fc3b6a20b53ec11425a2043f83ae" + }, + { /* i=879 cDividendBits=841 cDivisorBits=719 */ + "0133168c719b3180a9cb5bdc0a89807552dfe90058b87eb2348ebdb84daa86994d269362eeb3d10326c53cf3faeed63bdeeefda321b99c30eed23b6d0f5e960aa878c45a56fd0cc33a2ab0baf67b26d943c5d16960b3b7118243788b6463e2c0cec84dcaf402fbc770b6", + "4d0a6ed5972a1c1d134bfcd1157dbb903b8701672a5522e2c828e2c1241b2dd1d68e74ee3a94e605b75c855d0d82d1c99d1ccc772209b17522f54205f155916b3517ee4f30df7723030d52a1ee130fb7de30dcdc9bace12b870f", + "03fc6d96d8e94d13a6f6cca1f54ee77a", + "437b8b02efdaa7e670d410c425d23d381e8b25becb4f40900df13993a7c762c1653237d35fdded4a3d4dd7a775a3cbfe2955abaf348f208ce9dc9b3f8139da30a9c53e5ddb49fcc24e18b28746df3df09a534b9a9c7de4988a90" + }, + { /* i=880 cDividendBits=3399 cDivisorBits=406 */ + "67416295a3135a95b08ce8b928bfe43be98109cbb2c71d5c153ce2b9cedaa4bfa56153b93a9c5be0a4edb0a4e70c9f9587267b18788d1e1842b60402af8188ee528b0aa345ae7dd0659623d1ab62f848ea816f04ea29cf2f2bf63d5c68903e23dbcfba2b49b1c8110103df7cd081bbbfa08fa7b6b8578691591595218ad32fd7bc4c45cc27e44794ffd9c87151d487d9687684c19570c85cc1de37acd9278ee77e0bd09a3a3decd995ac7367e1874a698a8e90c4564f4435057860fa1cae364f27331f3edb963b547cf41ce331a98656802ecc5efc7e0fda6573ac296ef9149a51b4b767bb6be215495f099812128cf0187dabfd01105b0a2b45813892e53de73f4046533cd27f95b6e623ab05eec96cbf321e7fda57bb06e4231e821a6a442b396e523b786be894c614ee73a4c681a007dde5ed5c82c966c8ba62f965e3af1e6be8c6dec4912f4cae29fdc8f41050391ca053d65124ac054e1736cf9b86689a0c17cfd283346de804633d8757d4d12a951010439ab8b8bc919f3d606214ee02da86b1fad39fd6d6bedbe94e6f8e6fd7cf6a5018a7c4f65e3d3e22d33e003c24b82c98f5d3191a1dc5", + "1260ef9c1bb1c49010b514c9bbf73b75f88807eae59bc55acc32993d33989dc1b510111be1ee41df6e02d686174ce4c83f39fc", + "059e43f0b74fc308434a3af955a72b627ca397979d3dc9f65a25d5a32f915f48478f988a5cc878b3d7eca9d36e921bae5f22b0567543306a0eb548c60aab3207a54c6b811814cf47e70ec896582340a057bce59ece63cc426da83c45ccab262cd936645be0b2807146d36deb1acac9f663d481f4c6e724db3aff007526f1fde3b905be8b55d8c0f9088f3bf82993ce15f5f90a021e86429953004adc3eb7086e75e103c86242b9a29ce1a9b634fea2aaca1349694961a8f4b26f4d5f7a828745fb0954865e6916fa5059c71a261550b469acaf940170ae67b85d20643554ba32c7480c9f44e1c3a3fc536b1a49344bd53e134110151738489a457f0429c7048157da081a5068910dc0905ec8ccb06f05199626846fefb0f11c1936f2c7ffb48fc06d57f483e0276f5d3effbc0d7bb3aada3a6ffc49ee4681cc652ec0bb70f33a4e65be61870d49e02bb6ad5849a856047a33b2b75e5874ea3a6cb59fa448e614a245ed4d6e1ea067f65622160ad40d7b7055fc7a3fb6e9", + "026fc7e3236d1d1e52442fecb01200a69a6c0801f213d0cd829947e44fcb956fcb4b7ab8dfded0c18cabbf0e4029fa87512f69" + }, + { /* i=881 cDividendBits=671 cDivisorBits=405 */ + "5f245d4f7a52f0d35092c8aff8c984d397fdbc5bdafb6e4256a42d751085cb3969d721954477837691cea148b90c286fa9e9d519995ab0a7d79fbe9da2108f872beaff8d8ddbead1594e75d69492b70e6955b0e4", + "0d0105ac2b58851912eb8807224797cbe86f0f6875ec5ae3cf3e3a28f125e2286c7fb435a4a771b410a345e7f9ce40ab0e3a32", + "0750fdc150f83fc1a12a688b84bfa72b76c6236d518a6edb46b2b12fda3a740ed753", + "0767a776cae95bc7e35b3eb7dc5b3b990aca260d8f9a999d92682c985a93181d4c791fc4b9311e6ee5c24cdd5af7f42a1cd4ae" + }, + { /* i=882 cDividendBits=2259 cDivisorBits=1523 */ + "0507353a36ad2a012044af5cbe34143b852430847b02cb896c77e848c2b2ef634fcf5f959502762a043c3437b5989f95e961a6883a025459e5be6bf9cead0ec1b4804772bfb21a7a844412bc243bfef82e4fc9e8a2e9fe0424926e337cbd5bc03039f2ef8f7964fc400a9ed67b3a21c8135a6826792eed42afd19c345914259104c88325842327e3fbfd977ced46107b9b4ff81aca2f2e4ec61076e3941126c34681a5a7f30a0f395aa854bae5425422da4716724b04d18b6b7d1b5d22624339b2219739a1a492cd2dc75bbe52130f03ed8e5220a70a8c04c473c4feb7d1a9c6fcc71761d8edf7b6149cadd5cef2a80f5e03e733fff89d3633baf5fa1b4d393846618c6db732e1e27b70647e4bad951f72c94bbd3a7f02913bcf83", + "0253cbf0e7c33134cf38a262d876528eabef86bfa33270b2f49cf50a623d1b2e18242731498dc762b884d136532a7e82bbbf6bff65be47f8b4f3d91203e40e467b35f84db073927db0a4173ccbaf89c74f708dda79491650eb564246f2b37fb0b32ce3eee62c284536bfd3620174c46e9dd5d1d0d207d2a6778be49c395c866d43631afb8378f4b832c20f741ec242373ab4dbd9a26119a38b84532e0284a0df6180e52b00630b09ff3e78d84c74f39f157272a0484c94592ec3eac5405936", + "02291558fb6ebe6ec5a68c6048a47e804ec1efc000b50df2019f395f96deb6895eba30c106f3598242c935aeab66afade7812c60c5154b63fbf14c96276672987869d8ebf3aa299909e8d0f1e6ea44fe0dc62e7f56e49e057e06a62b39", + "da72f57eafe9406dddb7a26ce1e7cb645e149890e965ef1fc33463341ac0a31f79de4690ed925f684c30f31ba97a95ca5b53682adaf5fa75b62d59f428e2438ff42838bd9144ad3bd8256ff07a30133b1fba9664f770a53b17f5c53c09e88dac33808e031bbec9702cae64bd56ffaceed002b7744772fc89ea96260f669354dafca0111be8f6b2aa85eb931d1f127688d7be8b419d9312ff393f1bd04e5acf67f0be9fb4b67720afc3bae6d155ab055e6d535b3511a7fd4f1035b9e7e07d" + }, + { /* i=883 cDividendBits=1184 cDivisorBits=257 */ + "e44ccdff4dcdaae3e27d0e28a17e87bdbffd2254c6b203d24d0bb6827ab9c1b16e1d2fc5762b0041db3fedb2a1bd75139da5738525464d26300ba65fd6cf50cf3897f5f52f779dd9679a639324fb9cef7dec287aa5a697e9a68aa1954f9b129428e6c8ad22366e60a4855ce9c0af61124ad1ecb3de74a525de26e20f11e590bdf8465796808ca6e3b41866a8d2bc6ad23c658964", + "0127c0f84e59aad5d98e7095c1922d240a7f5556dbf42ec1fc8da7a341f0b4dede", + "c59cf00ccd56828cc801304f9e2d7ebfdf1b3e4b9879d1016c4ad2d4936c06f61c9a7dbe2b055f1737e28e5ae09830b4bfdb6969ead2993642d13063f6c3eeb7d56dfaff40159e7ecf75f3ddcb02b6fd90e4e152c7145ccce7d347556d8b942d4c78106bacc0ab7da78c589e1c0e3a16f07ca52c", + "de58096dc60088415bc136f29256ba0a84cfb53b22ebba3665eb3fb83622253c" + }, + { /* i=884 cDividendBits=1414 cDivisorBits=1193 */ + "3eccee9f9cca3aea8010658ccca684f6f1f9a9960210ceb3d6ef21bc474ab8b1d96d2bc561c32c3d886692cdc3fc5bf2375193444ea068277dc853468c438d17b483db31d50809ca4efce24ae32fc33ec4f846ca798f1f51398f5373fa07861ca2ac7ebca65a6c1e8dc8189807a88e4499e2fcb26d29cf4970978a14f005eb4d5c4bcc9124485691c6ac86476cf4e45678ae8507cfa3262a08b57abfe57d19b05fea197fcb47316435db379751310698ce", + "01f878d1f5b45bf34b0227a27363014fe721dfcc85e3538c7b9a1dd105ea6dff52b9a49f4611a614b2c5cf43d268a4cd13a2806e105a86ee3bcf91e93072bf206a70673674a9da807b2d0004ff514cd5abae4fbf8a5997875de01d1f403fc2f0668cf70c1d8c576d072153111df871f448b238314dff1cdb1f0bdbc60f2df8816a94eee47c53047a96d696e3688021dfb5ff77b32c1a", + "1fde6bcc24f6fa21fd959f28b50a172109f55a6b0a64d544b4197a15", + "b7ba14a66f7ce9daa6a30a9e14782787a7a9aa304fa65644733b6862d5ad5b9f6e172870852913dad3b38df05ee143032578e405a3297dc4488dc2b5bd8c5b06304e894bd2328e85de9663f6c465b259e903809fae4f44fbe11a1b2f4a1b933199fc30041d1b07e9883f3a391593a0c24f0b15e0373725783768823de2a5172009ec250b0dcc1f21a5e1cfebb5f393e5e765c596ac" + }, + { /* i=885 cDividendBits=453 cDivisorBits=397 */ + "1a3e69a8490dc4beb8bb21fcc230f784d87a0f9d91b2d704c447d2e4cbd907df2963675c396b2a6f199f80c5c5e1104558afdca0fee4c2487f", + "02b586828c3c0ea1e02a55ccffcecd9f2202b8c0d7be38f678cfbc30159ff16316758317f27804017801ff5985ff6077ba3e", + "09aff5250dea8118", + "4057b4350b77bc499d728fcbc39487f471eb65a013b523b8266cc9e58a86cb606b72c3de7dce84233a2ab0de96220394af" + }, + { /* i=886 cDividendBits=3652 cDivisorBits=2385 */ + "0f63c6ec30a27fc819929b97f0597f896d8350b676adf2ea6580b156811495a3ec3bd39b761a7aacc84afd49d8d6a95549b2e0a21512ed16f3a12901b110bf73f133586a5385583a1d06336fb8d4d821af393b93b6f7bce118b658f132defdb4a1102092f44cdfaf62a7ef516a7ff5afc71e87fd79a747854ed4c04e4d2d48ccbe83f689c07d2e7037184cf3a86909cdd843fb376e88a07ccf98205d376001d0feacae0cc1f5f8611eb19b9bda622051969deb2de2e1d541abe46be24dcdb6974954ead6194e0cf47f9e13dc94f5e69d43ddf2b06696ef5dbb38fcc3998a97a001b8e4519928a8525074e533478f7d78112e8c76334bc29605733eed686f52b2029d538ddc87465f60b6dba64635864e368f3587b190b3efe9ccecdfb6fe84eccb850b6eea343f85c2fca4d63f7fa440cee8dee268bcecc0d5535901d03e9bb4ef4e5b3351730642ffdd797ceec84aae520e6bfa6ad4074304bb02f354cf80ff4aba975b7729a449976ed1f23cb031389df46cd958090d5bc554423d6a457a8d08327e2956530a02fbeee44a58fc049cd123cb5871976693a6a40b1df6d838be80e0ff1d5216286a4ad3545a9825a1c500226f8ffb00637718962e4777ad0517a729d410c9395695de", + "01cbf7d36e458d24a7dc18d310361446b5d24b8566cbe4cbfd0f5d8b274e95769b1bd54bcc897c36205f8b7dfaf7b95bcf5ee906f7afb94d033df17f07f3fcce9d47011103000cd358bdf1c0ece48c9792f3a2cef0657deeff7cb2f08e534346e2a1412b38d99b5b581213886f78e74a30bfa7d5ed1e411991a2468e73727af5fba9ce30b006d6a3a48de582b0cd217dcfd51c5671e3f6996be6a425e104a14831829437b3b28d6125a89ab60ee4f081d7f8e8f3882921e32272102a5f519f48b90c4b478d8581e21dc4ed9f7d6123b1b18cad6bb79a0157ffa6141db1eb17f570c06e42dc9799034218a130b86ce6cb33323409ffb9093d2475dfc841b17b764f3dda545c9a63afaf09a2f41c61cbe69e4ea7c83ac2701effda95355a5a16058130d0c6422cef8c7e6c17", + "0890b9494f92a89c7b3addeb20b95a1001ae81c5d220956417f5845e0a82aebee09070aa3c743a34aff8c8c4f1a8295b18dac2d68f0607de57c9c11a0f79bd3006dda89db6da486fff04135904840124598f3cd8a9537f12463b3e447ebb8c115588594a3b77ec7fe76cb35fc467f19407edc835dd82dbb7056ef1fc4853c9253ef13f1ebe140a84f325d8c89fcf82e7d063f28be9273a973faa209e09170a", + "5753bead6b9291381dd8ce4ffadbebc067f6c47c3e07fd71335220f3996909a783c87786771446f97130a7fe5c8c7fc84d79d2ff717513d794ffe62e7e20ef505727e4c43f8c9e03c4a5b4852958674191d4aeba4c64ffd0ff9d831a4949ae31841ed356db6b6b6cd60a610c6fe47dd4fe62cb8d7038370c6173b4af801f167334a7da2b27b65f8818d5e59ca2951abbb25f1b268ac9eccd5b27ebb99dd6aa568f7782f8e5f8195ef1c62a9dd32b50362e2674077f6741347dd6e00c5aceee7d92fcdefbb25ce1209fb9e2e28d67eb88be0a4c498613129697b7ba9d44de65a1f5fcba8bb6850993318c45618f36e4ea932844807a1c4b4815b3629d05e35f764d5761dac1ddd88814dd7efc5a5d2e2be140e2e9649524335ddbbf5b06ba3ee8c94e5dd509c661e14bf8" + }, + { /* i=887 cDividendBits=566 cDivisorBits=305 */ + "1eb83cd52cf56dd00567b3dd76c1e97a1a34437bbd291fddf15ae55fc36946206e532ebd3d09d79c68f78dff618e8f7c4d5dd65a2bad73493998a0e6c6959f097c094674b1f31a", + "0ba133e54ad5a1c0260928b117978c8c833e4b78e687eed3ecd1e6fe33fa1dcebc49a766ae51", + "02a43863c64bc3eb1777f4ae00709abed9c0c0cff1efab1394686e12e24018648079", + "07d6e0e3e09038ae570605d8072bff3450566f28b35e8394d7159b9f4ddd90e81c0f4e5d0ed1" + }, + { /* i=888 cDividendBits=322 cDivisorBits=201 */ + "018205cb482a0415eb8829cb2973e98346fdb3e09c8173a751e03e1eb945503ad024451be042401fe2", + "8590a2b77eb9f5f6670762531fa16b2f5acfff4d0969814c93", + "02e3e0c56ec21a2bbb0c187a80d4512e", + "643195afd939307ae697a2a13423934eae1dc8fe627a0dda78" + }, + { /* i=889 cDividendBits=1429 cDivisorBits=788 */ + "03fa54e1e5583a782d7313b0d332d3f6b7fd9dec717572b4712ad4e7a426d485836289d0d316193ebc92ab2f014df0eb0d44716d90e3e37dac34c917bcf14796330bb8c2ef4324981ff096f90e1190ad76b55f07edb9e5c31d61bb76349ebce3a4678ec1e1f445edde320818b95a85e0661819cb6c126b786f985933144e551c4bc2418cb708f4322103329665fcb046d39b210da67c56a8051de3b331883233698a87f9fb6489b04d2469c1ce7e953a4ae3e7", + "02444824c019656622d0e28162c55f283ff33efe8ec80462c1122f895376199820749afdb3d4a4dec574cf9fdd69134b9fd4dae1508a4035335bf19d8847c5057b24ac56ea9d5a9dd54067746e3838e3961c8e605efb8ead9f3b4832e947cb547e4306", + "01c140907057fadb71bd1ed0fad29c0eaa62900344a582cb38178f68deee8277c24fba4390e711b833d0e830e576c59a0633e30d5e5c0987f7980afa96cf14f11a2ce7c5f384afe674c2aa8cb4167ededb", + "792d047b0a76e7e90407877aa4772082e2114684ef93851e93352752153cba33d9f1aa2ad515ecb2da00958b1ce9f6b1774c6e4787cb8b0a976c093c9b42f9ca3511784160db2e3a593369ece7f0931d59d466eb41e9ece47bfb953ae83ef33459c5" + }, + { /* i=890 cDividendBits=905 cDivisorBits=620 */ + "223f2487d48d1635069ab65fcd3d3a127bc48fafe7a5f077cc5d8ed07315daebefbff0444ac2044aee73782c0d513e00e575bd72269e36d91ed901ebd101cc0c59bc78c8804f3f4a61c2f6fd3a2878e6eaeaaf947d522ff1a01494603aeee79962cedd97681fbf0ee1276ba03ae3893605", + "05c53ebed674932ff21737ca4ed73ab1cbbd26b2fdf91ac1f3f93bdba75bef34504fb0ad1904eb0c4a692b06baad493906292b22c9dfb1937ff66ebe84881f43bd3291de8310d400c38166455fe8", + "05ef4e8ab2db4fc77bbbc861eac4c0770345f2588ebddd2f7f6411376001479b0ed98732", + "028350b00858ec14dc14aea20ebb748dc73f53c52becaf722aafbbf56c8e112a6de37562226fabbe4985f1e99d75545a1d96994413d72ac53938f7d9cc42aa232aa846df26aa02624e8158c122b5" + }, + { /* i=891 cDividendBits=2083 cDivisorBits=803 */ + "0777b540ade1c085d2bda2f124a86afec6a01d0b40ec49b0981f7b61616dc9b504becc396696ef90a5ecbe97e6875e0b5c729ee3b83636c6c0aabf29b296d05c8a8b3e0bc698c03c4ad852af27eff5a4791702c4322ace3aa673443432ef7437b545f50281909a30f77025fc6b96c4eb42f78d46ffc819b689c14de687a679779e75fcab5f70f63ff40c1d3ce9925c97a19c99a9d74cd0f992bc5d57064de1751dbaf19e9b104e5ac5c842506c72a447376d63befc83b0573d0267dec4f64fc64ab73387581bd5f483f039d734a51a4fe5a2c5f9242cb39cbc6affd074e4f86b35fc47f89ea44e0d8a11ed8d891bd7e87ef9860aa3e1efcbcbdbe1e68a248eac7e08c1bebf", + "07059f69c8b68c17bf9ef3ca83885a55ee5e2fb1b5356ffcb038e4a33921c51ba6e3c5474e6017f14cafd46cda4ab40ba2a0f3410dff1947b371abeacb0b2a75785b4ff8fcef2f8506f8ffae975f91d6a66926d0edcab635b6ed49e6bb3c70e4151b4078cf", + "01103f36688632699b274e7b00d14341867cbe6db26d4ed3eacbf56c87733abfcf3e445d48271b24253456b17971062ea055e9ef03fe1271cc8254df03b94d1b9c9292e5d9d2cf57b3b855938644ce7f23f558851210c987027af060cabdae91b1e082378315e5488535fc4095b6e1551a2f36120657a6c268a573de197dac847f6e52e79aed87eb625d0e5c7bc529e4b5dd7a6ba492a625c2b38e00d2e43f9335", + "02445f04f8993a15f6e0d720d85592926a080c0bab0114e70adcc78d83549b6f7b8151234a27fee1c019fc0f60cdbb689e22742a8bf9c6948f4135877c1946e683bca97896efe7b268d70bedac6850450fadcddfc1dd16710c8b456fbcc60b1b354818dee4" + }, + { /* i=892 cDividendBits=1541 cDivisorBits=359 */ + "0cfbef4ebe9904bbcb2e1d8e151d18fda0473ca7d5ce133b83939acce3dbef0c8e5bf548097b7d30513d506bfa194030f3457fe5b74c2b4b6e4e1dc8d8ad93d20ece22ca6d23f5ffee014840c29d30d27b428298ef1770d62c606ebd0dc4c4c828956a721f8ee52e3d2b191a2fdd5fa8c58da2d89bce14bc408de8f539c28d74c1b6a5ad6557eaec9dc76dd76e0d53edcc05a7c37a9efcae1fdbe38f526edecccce33ef10894becf8a4557991234e89a4935e7e29383a0f5bb7e895ace859aad64", + "5df481f7a73333ca086217501de35f31bc0a4e575ea2843fc9839e37b87cc61110ddf5188844d318587bfd8fe3", + "2360be50dcb33757ea3afc69bba4e16baa63ecdb615e49ed280ff17af24acb9885505520701858bdd7d8b1f877af2f54a153777cfa95a01f063e35d3e5db7bfe0df20a27d5ab44ec966fa1259b4007895e2065c7ad67a34c2e607a59664567494232889722a9fbbee22d8ba4b2e34eaf3efa6ecf9618a5adda9bf8e5087b2223a4a742680d4295282a70e029cf1c1486a9747d3e", + "582fe5d908780d0ce329189bb4781a3878b57a0651f80c05083c02fd91bc9da9b55cf405f64ec8a121a113fd6a" + }, + { /* i=893 cDividendBits=469 cDivisorBits=465 */ + "03805356d30ca12fab0faeb39999ffa6b70c1ad3c73a3acb200bd85f1b1b76aa86f71218cc797d77748d24346f21627e9b4cad25e5e95b2a4c2727", + "0318c77e0d80b193d93d8bbc67f3e7423695b76d5ad3baa432978cfe685b0498b41d2bdc81ef1f9424dd1e6b85c18af53122015c6e74ea5d3dd4", + "0121", + "015a2185ce58b7c2d133f3e83fa794f76d16c153b13517c2eec233e74cb67a23a22394ddca8ad136ef84dd0d21e49fced5499c8d375e97095ad3" + }, + { /* i=894 cDividendBits=2296 cDivisorBits=2060 */ + "12c7818229a467a2d2a344ed07f20c6626076e37e47fa8fff02032d3ae5e3ee66870aee802aa753e9f7065bc43ae32ef931fd8d2cb9393d2b47584ea21a3fcf096a08e260863ec4fccdebd7b9fb15bc03ef4d7ea3c3785fbe67609c1d567217b4cb30db1f5a7672c8225d93a34b1f1383cf0909c71a2b0b00853bc8e06717fb8949a68ac00af83055acf52dd0b9ee0e6205815c5b2ab0272fdc81c0c285998b958edff2fe23151d9b813d5145c1f4f81bfab8d0d429b0e161af07bdf6fe9a03b8ffcb37fdcf1ec2fb2e61e235df802cfe75dd95392a396e26dc286a84ab31c95dff343e9f07979d63eb1fa4e8bc5a9c2403d625e7e565c049cc0b3f021f7b4a9a7fde1e2935b98f41893d46dcfa23df9576d1d1b6a78b774b5326a14d19c66", + "04a484c7d525faec9fe09e09de23a5ba309989b1fb81a69b4743efbf7ccf696c1bbc87971e362b2df5debe32030eaf677bedd9844a44308f359ae2941d4ed087189051ab332f4c5616a53d176287ef213b33b68952648cf0346f5239a05992ec0c5b4b07379968b1efdc44c5a781b642fcf19ed1baae77ce1a39558d25e03dfa91193162a541b95180825e4f4daca984e7eb0c48834b4ffe326d1bc517f38b4b910baff2002782c75a7faf3444dffc938f34468283a81be39341d115ffccfbd6ff7bc51ea201ae6a22a9c7720806d802687b127508a626136a0064f1416b8b838df177cab9104eb184182be99bb455ceb7170b0a81b0ea7a013121417634459036b7", + "040b823ea3f847609594238584bf455bf1545f237698abe3f4c17f8f5e38", + "01a0a668e6b3751626d3192771251734c17877421e5eb06caa73e37e56e9b943141601ea6983118eb04b9084de35453386944fa555b1b6a469fb23dcfd5098438254e62926e943f98a1aa8ced3ce19d143fd7559d35a8aeb372f29e8b934960fcc48762154a42d620b05e494e45035d1c5c9faad6de3c6d1ac6915ce0ea7a5db47631c80d626a1bf4764d3f8aa83eba502c1a6ef5abcd03c34d68496023a06bc53537d8f8eca79bc542b65941f78c2ac5532006509f97c61a40638200a585c7013279c86176824a5c1ecf3bc5e050c4fd1f60c7117d76dc4cc810c1719960ce101ec921bdffb9415d614e241e0dc55f6f798b7301daa9da654c2882212c58ff5725e" + }, + { /* i=895 cDividendBits=2073 cDivisorBits=1075 */ + "da69af75ac093c8a56d080e0e49d20b3e442b36f6bcfc4389a3a7681c9dba1dc4236a75687e4f7eb445febd38bde29ab75af5c4e52222feed02219e8ff27ecd629bf3ade828e8f3ff9ddb986b17b8d5e3ba50cfb7a6fa46f2f6f899d4fb622f8040bdca11f3e5ffb117baa6de1e3ed93613dd965c79d224ac64a8652e7333bb49e920697fe020fff6e4fa330e8e0af173d07d0451a8d7217c7ab99b0b6f62aa99f6c3dc7cb614a03b6743e706200ada3d800f7b0d5f4b855357ad699961f3c20c4c4c68daa857808a8332add2c8c2cf7929bbbc84b069d6debedb33e03bd0d66a97bfd19c0bdd65b38c14159b92073eb8111a2fefbe20a74300905e9174e35597561ad", + "02ebf88188f25548308ed3f16eb8481c729700e2446f73e187bc4fd6201d5288fc704591769b6152cde227781dc25edfc9d5e05d6fca4d9427cc2534864ae16ce3ebd3861b1c63c1ad9b745589e3e83c60b51676a50cf4cbbcde4193d7a0e28da73061fc23014fc1afb0f75ff4decbdfcecb8d45328b9db5a840cf61a2ca7908e9392ba2063883", + "4ac0fbc74aa552d7732d9c126ef2b118182c8238c8767c38668bcb8823777a3f06e33ee176e78ce8efa8ebb0398b014f2841b1d3a21203af19edcbe8a99aa378f95ca93f6562590dc9e88bf5a99fd4039fcd8f9b4e318c0da8e35d540ef944a8e16292d2a95fe15d6c2372480e2683a217e9123a9aeb179f4669a9e9fc", + "026367ef432cb3967d2a85d9fdd2a6728ef38e6e8766ae82e649f42bdc3f8104016ab33c49d7e862eadb8f3dbace908235620aa664758bee6e8d4564cd092d5e44994145c1846cdab02e3ba64b281c168a36a648142117e5ebe2c9bb0f1dd709a03c56db9b53663ad2312357d911f167bb118dc308cb1d4df55fdc4f69598dbba5fcaf286b85b9" + }, + { /* i=896 cDividendBits=3207 cDivisorBits=65 */ + "128500d24a6b85463d9de8b7daa96a06a286ae257ade8e717db9b30a2392d8d369a4786241f7793542d52ffaf6796dad21e334b6bc6d6c97dbec13a7be7509e8de6169b1e700de769e511653a56e132b748807b0a7ac8a100a8a29ff2b2365e8985d32f650fd669dc926ac201b7913248ee2dc4a136f040730f0cda4e14306c24e25b541d30c575e785e4a72532f4c825a1edcf2d8e54bcdfaf3481036a487ebb8797147d11f53f55b41a6032a9620fb6d8f8b259211a8a2e4d238f2ac6c75fa239aef4b39560a2045cdb4a077273cce60122bda440034782b777408773a91f95387407c159d6dfc21bf2af26d68aed875a0d3f874cb2a1da68b355acec629e21ab4ba54e1c9acda6a307556f4db51c96a91ea408d9acad7cdfd0a0690f4a246f60fca779c1235a6d8ccef7973b7269a84a87451b8f49e50462716cfaf5954f7756d90678992b24cb775ae00f637613d8958b21cb5faa9e307725b790409c601e56c4ae0896ebecb3d15b27907dabb79f1624a29c86cad982ae0a287d59b9a524c8fd31635133c2d8a8571ba966b5b8847", + "01debbcf52cd0545ea", + "09e739406dd3d05b513109eab9ca570f2c1e28521a0631c6964152926f3436dd8c3c30e2f2bd27dd5ef436509969a7539c0df1cc8b1e21d774541c611427262a1651688bdb4ba62e4af61e510b40a26f2d46f5ec4e4b2ada27a1ae1ae370c187bf523e789231d2003e89bc0bc669f5ebcece7ea33dc00ee2333836ba0f0c08f3c7da501afb68396986afd6af7bf166a1e1a0ad4b8de6929b9d8f1d7d674b4ca482d435466775c20788595763c4a3792c2634cf535e4c30e8a4c28c38dda8d394c22adb852b6e2c6b93f8eb66866172e69785c3f8318bf1493e5a283c6d733c17f3ec2be4667598769e7e482e54954b9791e9667b08eaeb539ec0de7bf6290efd8955c3760630953495031b2f2cb0aa8ae269e07d8c4ffc37730dae20d67baf70c29d75f2f9c7b02a9192906e6752b5590dc17db6dceddc018758a6e2a2741d6d9ef95a6a78218fa65bd45b0624ea3436ccfdbf767d4cbf29abbafc4310b18944f043708100533b9239249eb6bb3622e4c8d2868c8035b10de0028695b04be3e2943dfe6b4063a79bc3", + "4bd89b67f55c9909" + }, + { /* i=897 cDividendBits=704 cDivisorBits=455 */ + "3bf987a22fa6d0f836334076064a5b4343dc8da1987b1868e1b17badad169bdf9a83ad2172a20463051790ba708c9298b31de061e0f1b877a6faf1eaad9fad29355743ed1b5c9b855c00d3e560f0ad260b52dcbbf97d41b6", + "368f55ecdbeaf59efe9edd7464a322b5cc0674b330f2cf8e64034708460de96b53de74612b4bb92c6e89c599ddd6583ad55ae13a5190bc1786", + "01196825f1fbdc1ad4793325620ce724e5332ed4535b1aef49d3167c3a99bca0", + "0d1820cb3045994fdf06d0161d5721660af1e0a57790b1de7ae3e284878c415bc866ae4ec5747ef2a21400f90d62421f74a39d7cd0f79225f6" + }, + { /* i=898 cDividendBits=3584 cDivisorBits=2583 */ + "14e1aaa7bee97a79303cfdcd0716185e6b19440f7afd5d0e1c87a1d01ec1a1bd2488e6f855a5f2b4b00aa333a62ade793bb8ee5bad6778130e712c1e0335145556011d703018f129c5ea7e76b7afff551549ed42d75d127753be8cc9993fcbd2cc5239436d77ae50f16dd6f634e8edaa51151145c46ee182e66382c595a206242ffb910538d2755d1671939489afe8293c3a663f20dd85022236e853522d57aa475082a68c0a5781a73b0be191cf210878341b0ff0c9765e51b940374717978d3e0d9ccd66421ae64e708e3e8175265956a265dc6d59f1a07c7f701e9b1351bbc2c906d3f880015ea638f1530b4e6f880d253c4d1be5702bbd0630ccf827d53e04e14ba1c08f57e0194df5f835d7068882b2e1dcbd8a0c1c3bccd26c9211509624d0d60776a8c277ebb157ff10009cd70314078577aba3829abc4cf3f8e67239b8c698b554eeed05640bffef8b4beaebe8e1c89da66177650d848703531d1a3088e12c3946dd66592d3fa2b0f37ff57e1bdaf41ae0332ea7191c72eb4e27a007267db8cd158bf136d75f85b44d4458b9baad2854a22501efd81ce6f207c931d6e077d7b283df6442daa56f81625814a084fc8614e03743f775a91638c17d166b", + "12f655ca68ab8f092a0f007c36cbfc1d90da6f1df8b2379419649bd1e96ff67df444ca8f2914f6576402b07593108ae0301cdb5ca6506ff532bdf8665bfabd3c55ecd334feef3dfaa43318b68dad6520b9bb82f8ef86b262de88a067d34000d8e3908d6cfeb1d3f4b21a047b5864a8bc12aad13ac78799a8fc5263235f8e668569e73cc45bb86f922ba0ccf119bef76a9e478ede876d69f4e2d14b41f8a5e5e602fafb6a38fa8c2137436472b1c3938d0cc0c2df4ea4828f29dbaeca82204a9cf16231c31b0cc7be0202ca9fafd1c18855bbc886f2443047cc46e2bee2b862df9f6ea241d837cb6a91a2451d29daca06a3886a5e2819b81f4de6b7f5e978310aea823de3296e4bd6c8777596bd1e8f6c49842b16ffad2905077d3589ab43c371caf3e18a0ba22ee83a67e70d606e48e942745e57454507d659146e08167091f1492125", + "0119e939d323eb7dfd5ee1804b49bf9ee9bdbe813e3fda10fb02f6c82ae2039a02826bccfa1f74a963d05200634259330a80781ca8d83f7d554f95f0ec2dd94b0f0d8875f167f2a91985ea3abe57aa271e40e74ca356c35b47367f4dfbcaf2e568a8a9bcf4bb366f08554fac6ca943e37f06ec88ed5d125d2a70a9b9bd61", + "04e2cbf12360cc41d2067751f8b195b78d74e00794465e1d6bcf321b7db4d9da2f009a2833938d58c4ab05758ab336ad6f3c61789a29f9410d55e416dbc02264baf9526ffbc978449be7cd1d649add7ae3d95c3b46a70d1162b758e09628ae75ab88407f2695b6021949fd0e607a15ab2d44bfddf1192822ac36e31fd9fc1a6b43334fe720a67c64ead8fc9b3acc2662661f6b5215574404fe5beab59ec598e76625d4e58a71bd41fecfee41f6bb9bfda24378e9e71b23f299debf6b9ab758b6f17f2d7d9e6b5c97ab1da78f19632618c3fc620e06eba02d42620d9060dc60a6dbacadffcb92c23ca9aab0916f9b92b667124364e416a520baeb8ae03192247b56c080ff73fe623f28d3db0e68c1d259fe195693e21443f8526f69cd9dd05d19537006bf5d2921bb860be7fd8342089aae0834a371a1cd0a5958ffee6c78def6923666" + }, + { /* i=899 cDividendBits=1247 cDivisorBits=14 */ + "4d9deeb6977d0602d4d5e16f8c7b0d7b4490b0ae8322590ba90d52272b1cc74722632a60fb30160479f09e2ebe8d18c67a9ef531076657ff89d379e7313e6b7819d2c0977a88d7cfb56b0c18eb4f134ec15fcd86d2dbff9cba134254c03e5e87b815482133fb1999faf948508024b5c3a3d751e7dd6f6ae0d5947f2805b74e244bae8eada57d95fd5db3e51cb8640290433a6095c0ddee2391e1847b", + "20ff", + "025a30c1313b9561b413b2184acfb15e718bb4410db3e15c840c29a55ba68ef6f902cb10d993afcf2900c6c19f09184c91ac23eb4d2c3a4f5427fd25f320881f097b09908436b2dd2b3adb5cbc5d7005c7f972a2b5fcaa8dcbdff9482ecd0151ba7aa8cfd191d6a65276a8b237d4423e3d2768865099366d4f9a4e58eb98548f4c7436640049a1ed8deab8b8e4670af530414ab93a00b9a99cf451", + "07cc" + }, + { /* i=900 cDividendBits=181 cDivisorBits=109 */ + "1b628808dea87453e3b5dfbd715d4b5f6809ed7202989c", + "1bf19be78e493cb06bc05315bf2c", + "fae13aedf91c372273", + "04696df7e6be90552f1e5965dfd8" + }, + { /* i=901 cDividendBits=1787 cDivisorBits=1255 */ + "0391c066c6dc2a021db6578756429d67c33bb50d5588f7b2166048d9c8ae1d0ae8c57896e5d984da6ee408f90d187f367f0181efffa9af2b7b69107a111796f89335a150113f99aaddc47ce6c3d2bb5b27bf76996e82eea6b20ca865ccadde2cdfe2701937f60a1eaf7b32f76b371dd97f7ca2b17b9dd9e5948be4569c7ca5a133387eb7fba0355909c7fe391302e5636705639951b7654be0a32d73941e20b5b9d3539473279927145a55cfb977aec36710005de04d00c03d10ff1a4490bd02a16017870d427e2d662778db91478b66ac1e19a58d752921cd1630f823f9038e", + "78e24502dbcc75d3fb24f7337fde8618fed580720367d450b69340c1bd3045b0feace3757a266cba6f96f0a3dbf959f2b82fd6911aaac8670c5c12a148f8cccb81e3adc33c77799d4d93514d16d1403c30df114e00093af1c07b65b6534b7063fc138ef2e0b170cb7c0fe7ebee38230000f1111f01419c9cc0760ab28bb2a3e1936267ad0e1c166d9ec303e829780f0a119dd7868afac6ed9ec839b624", + "078f156f5e340002e09b449eea9aa6215b0652af634da1f7ff1c14235bf50769c16996453d75e5cfe30109cecd35a1b02ba9aa23e93d2a313adc048ad56b2472feb916", + "5d64c5900a5a12dff749163c870f3b052ccb44071a489f2748f857321032875102ac32c0e2b9ab2df65ea098d175870f8bd71c528e7eab45462d617cb7cb1e2f6e53b7758bfa2b0b73015d59df27a9c7f7558ba26bdf048155e68c85fd520368bfd3dfe986129d52c74c535c44d6f85f90a09733c76ee22f960e6e917b9bcc7905b33b7f2af36c3d4a6e416c0a1c2bfbf343377dfdca5f01327aab5876" + }, + { /* i=902 cDividendBits=3931 cDivisorBits=2339 */ + "0589d76c6a2e991c555f8ea414490c7fdede9e3171c95b39a37af66ce406c4511a75386f89abd37f25ab3b01bce886bcadb881fc38439dcb95c42f780bb8e006919eb9e2115df54f37ebbca5f93c5b45ceef307cbd677c7ed01e685f42293a82a6f336b8fb2597d793d67bdbb83a2882514390ed93d4fe1ca645f1e39801907bdc83ff1b83d6ca3f0658c0bd0086dc77f387eb3432b27aacda0daba909c2e1d87dafd43a9cbf6256875d83132885639d9c9ca2c672b77a25b78f0db9f5a7a321c472dbafe3860165226f1af903e168f0084edc45c97c2ee2e3254a49d9ef2d066edced6256582aafe9386fdb3b97740b180ce6a55f8fd7c908af7686ad72b4954f463a6eeacdac74aeb8285ce461bfbb8555568ed693586d01c7ef00cbe3b3e7c6324d68776251bb160ac7ae32a9c0b634c3ea179a7088ad9ac432caa89c0d3231733cc46ffb19e7a692c51683799ccc3504a1dd0add5378a56f3706ac283a853bc2d2e8ce4640723b1955c847f25dbabf8459226984aca787170d7d7de9b5c9632eab73d471bc3dd1136a19a9dd391f3e707418b61e170176f4b4dc0b9e01e36b73497e8bee577ec23b999124344d5a0e8c4caf26e9be784fe8abab8c8591d30738538b29e73f4c6f01b6d12c5ee4903994e3118723ce08825a255c370a8cd4eb813ebcb6a114930347d3ce", + "0519f465965b3e2008308ba4872673b5e19a1ffbdd83b8981efeb320b11e59e5a009ccfc8a153444902ae82e96191d5356048fde00c77205a3862eeef31e8fe988168286c1441fe064c6d93a8b4db00abd32d65d9ddddc1a3a7ca9f6b3836a460e58fc5ccc270cc2597f157d3f46b664324657892214951c3dd933146bc3da1e6d6aab87bfb072ea3f229c44cdf05d526a1b4ad9d21b0fa1d7254484e6bb203159068a2a05f1a81a1a70b6032244d982f0530d9c3290af3474806bb9187b48fbabd2b821e1363e2df674fa47cf051b9a44356bf56f6ea3280f3fbacdd5eae09e34d0cf1c04ca835d88252865d6509fe717a9ed39c02c4f5494140c5300377b2502e2144250f7ef040fe18c7f5a48748aab1f2911d3794964a5cf2d579197b6b8b7909dcef3", + "0115eec123d5189888c38e5af6a37cf87097818b27b277ef2198c4fbb206913de956a4462f87c1bedc86b662f5bf27a56d27cee664cf185b6e49a309852ff13f1672b929d51f073ad0df2fc290cdc3415522661768cba779acbfaf0493513abff8a56dfaf77886d0ffcb3dcce2f5bf50038ac0b9d9ead19c0fdcd7eea1a7381edb0341d93c101dbc01d1deb59044a28c0f7b784f0a749f76caf7c8991bc95fd225a972764d92c79710eab7e4af4f4540b37ae1b463ead8ea8dc3045ac527fda3995e19b2061f4dd5", + "05114956143e820ad2c8774bf8f52ba50ba2fcf7dd545c3db5bba739761783b7fbb474e13d71cc31ca1eab6a6abb00778e7695d8f38b2166121ffa33bd4bcc3fa7674bd7bae0a1ebee3bdc518746b86f7c58e68eb37d9ae1e95e8c7c4bbc65883e5086b1d8c96b4bb0010228e13a43401faa07172b4eb42a610e2acc3777404e1691a19eaaaf47d0da39b5c3d433e1e5b7d0f381c399946b62cb3acd8e7deded28fb909ffb18d932831eb32821fb459ba76fe9364b1ff610da75001ae4b05a48107bdfda1d955f424824d3390106d70333faabe78f18040f5a9c990a9625874d7ecdcc5bd33ae67f6f00c9a0884fed9182ef2527e46a7e085b5f8b751429235a2f7a7011478104c799dde327370ead14dcfbe282742399b7f3754f3d66ab42576c774e8c9f" + }, + { /* i=903 cDividendBits=958 cDivisorBits=307 */ + "2d7a015652176111600269e250dd74283a912388aa40141073b26c6043e465b19fe5902985baae9118d8f3b2f1da18a5103af0890b808eda5ca2f38ff617c8eae3f38f8adff46a24111e51b5bc066ec00d566bd78db3734e78a96f8dc1f707f59d8b2c3573e4ebd715c1e21fd0ca975239125e21fc99dbae", + "04c756c448d0cdcebc780e58cfe579ed9d4f8113cc8fe914306f79dc366736793c3500381f7858", + "09843eb737cc6d643f009d77fb9b32601e86c1ae6ead1b04058befd33522dbeb05ea89c4e674d463fe7e8d8b97cb5cc6eb58f41f44f0ab806273efb639477156823c14edd696ed713e2f285d6db1480c928d", + "01a0b8e7b5251131c413d84da2c7228ed5e9ef036dc235801c96e714809c01e4ebe4d6bc826336" + }, + { /* i=904 cDividendBits=3075 cDivisorBits=1443 */ + "050169b8e1b0ac7eeb426931403ef7e928b69371c3a7ef7c9e6efe7268cf2cafcf4357843b06bdd3cf9dfb3e0a90fa708a9a5aede229fbfe7bc50bf24f43b6d6152bbbd75f3ade2011302924e46e7b5fe8285142e75735023d7b4bee944ee6defb1a6cf7234ecac0bd484d61316b60e3a00bd0e0175bc359a4f8313f808dc02c918aeece03df88a456b9805514551dbe4eaa4124ebde7b9831cacc22fb5cbfc0810b7bfe565268ae64699ecd9b20d427181f6e8caadc9aa88d2cf052325cbbdf400c45665a993ae05828da2241fa6bf3ff3986870d87f7b7c9eca32b4d6863d2203bebad95ea3886a2270ad9a3065a4a8227a9f35718ce5de43f9e26a7e2a8ecd9bd7ef370346ed701e66d942578ddc09c0622231ec1f1c4a4b71bddf336c93c45d23c6417cba070da644916959a8a2407213cb13363adec668694092f6a4967858bee37605aa72d4d7afe0bdfa82edd6927ba27d409f174abeb5aa111376ae2ecf01d18b7bcd17926d57b00256ea7976915ad89167c9200bb8b8faafdfde05a8b", + "01833a96dfc55c7eba71aa0b336c2add20a13d0d05526171e06858e21b01a79acb0de5de62b9093594d72ef46989d26f2b2e57fbe761125c27c3fc6d23fcb45d9bf111878188f8800c213e0b4235fa13397c965c9bc5dfa2a8fad1e626296a7795fd2c21f0bb3c27ef3c7ef5b331e667c299e64b54f870fe3cd07bd773fe8fd4b6ea24e0641c2ef635220777fe3efb48bcc2e38723f7c3f34290d240df6f0596cf24a2db5ce43acb1befe0c261b5d591b4ad3dda2c", + "034f26ec049269d9c1bf0e8e51c7db886729bcf7dc05c8047b22f8ae2a1eca7c3b85ec2f05f011e01f5180c53afce1cade35044c95be4486de227823dc1380fec7f86053b4a0fed0411b1efbc193cfa10f7516e59d915208d30d00d2609d9a911720d193e7b86df8bee00e6be31212ae77741eb0884c877f4135991d34ae6417489e1ce92cbe0f9098365641c9f821b67e3d7c157ada486ac1c2a8a037d9193ec7746a40bbc3591e4ca4c4ee037b6025be567ae0e217dff2ff904614f04c88cc0c3ae9a828f618ee828c4fe7bb", + "012c8e5b70d624978f73d751b67bd81769a4b7350592408fa3397c5a3be323f52975cf1bcd84a3ab379e33c0f2b06600b0bbbaabe2aa9223a698beca9f9bcca89fa3a82132e95778f6d39333e451d8de0d149407b8b1a09f5927b85d0f465d7ad0128480ddd391075519387f9aaf2dc71a6f723642847d2cdb99b64acbef9705e1d02ccaaca656aed99acef182329ce8564a4edfadb9e2ef40ab3f9da1507bd28c560dcff2fc18e227aa2f548f063737f23e404867" + }, + { /* i=905 cDividendBits=274 cDivisorBits=155 */ + "02adc4d33fecc190506bee0ba666ff932a444df03b7ddebd147d2f9e77d08160669ef2", + "0642e5dc880b5e5fff2aa528a9cf1f572bc32dc7", + "6d864f38cc542c568162734206bd58", + "62fb28a1da726ff6f1150fd4539875dbd8f78a" + }, + { /* i=906 cDividendBits=2726 cDivisorBits=1798 */ + "0d1eac79d5a070bc6c2ea1d437d05d5fa8a5e0c94326765b5c712eb99a75a79d2a0ce42c476a7c1f259f86ba9f836cc3d6145cdfd3fa6afb11013ee881cd4cfb013c45fea2aa3e19b0f32c6c5a5c93ae21e92f3e5ce517e43df15fd47bd23b80743d57dba062e4f081bfff8a52dc5675c8abadee8a6a9c01402d6fc3b933b19b0a1db05162d901462f18eb5561782dbdea9df736536b3255311fcc8a4ff86ef6c4ba5ec55b409dc70cec2d5f7e181cb0a434368cb480bc4262944925e4594da75e66936aa40d4819c5cd3e9991575359021f1cb02c80ac452c80221cb101ce8703aa19fc0bd078ef4b4893b34c8f9d52e2399a435bcd7a4490f2fa9d09a525d99a79fab26e061bd9fde8aa81ff89e28ed26da7af5d01456a3980a69208c62ce05a6f1a7af0dcc05dad4fae492257b0f7d14158667cb2b8cac5bc00ea64deff6c80eb90d0087a2c4fa1329fab87f7968f7a6b7a6a4c", + "3eacf2c2684a5b0205925132cbfe8594f185733786259aa8739200ea409b076419187eb503272000bb38efea1132372be935074f5d08b6e89a785472ee1f63fcfe8805c75edf051c5fe5d4859805108986d519ee9c76d7a59a4d566eaedb41e6472c4a7fdc8c5fa95806ca0a889f095ece9a581eb79d170ef7d235d225875b6715860ee3859a69b99184d80fe8bad0808afa92f3c0e1218e5577bbc65f0fda22bb8a58a35127889b7b3d4ff5a20ff5e709e456706c6c4cacb91fe4c99e06696ec404f4e545526139c4d4bb82ed2737862cdc005396218984885eb5b996478004ed", + "359696a3693b51b9075ce09c468f80d8afa4163391c56eed11e5b40614dcbe379edb9fa9e744d004345e527ecb2eaff8af16835bced7f84ee0a7aad5fbc4ea6d64e7c4f962b8407c289549eb177807b73bba3bf13b23f6f9dd98d5ae076736fd3490d01a43bc5fb48bc4ba9c8865f9e9f15561cc", + "3b9031dd8cb021ce00e3f88738387d54915d0fe3517ec30f0ec31af263a6b086a1bf0c2f9ba991956216b6f8428e0cd58a4e1195a1f338e1e658606c15ebd09de1207ff2667c36be9f9ae95192e732018f0bfb971843ee0e8fe1c641693eb7080e4c5d54bccb829b850c9c605dce511ab3c7966d528764f59dce4851c5d42185286cc8784f3ae077d9c322eb699c795dcd746c9594d6f27425a45ab61a72fe5eea8795b2d1f342777287359065cff9bc80e1ffa44d16b3e7eeb270c1ed43079588a61ab341939ee5b35794ead0daddc9d113491a79ee275d0e196f77c82fe7b070" + }, + { /* i=907 cDividendBits=3938 cDivisorBits=1057 */ + "0214b8a52ff1a92761e96582743d86cf7d8f57cf319d89efceba598c3acf5598bed83920ad078d1b36948d1550448e78f70785dc5528a513bdc833eeaf3866f8139f59e04814cead7f55e97a0d9b2e996345e9304960a9ccb237b670be7c296d4f5178b019c7b6e6259d557f36bf605f17aded78db134c766ee2744cb922d07d66fb102fc1f006a622a388459f9831eb92d5dcdb01d39e91d0c41776edd180fb4af70cae7536ab1800685ec4a4692a46ed9d0dda3f87bba4302fd91ff7e412f8623decbdab44bb69f3324b2ce12ebf59e590d307900df3c2164e0fb374d079e20aa98cb60ae01205569ab937b4a3494b5793a8ff9d500dbb510f7f71e75e40dc05d54c65f257a46b2b77e3e853a7d6a1a647874f411a49086363ddf1290de276f2b23c5e084bad0eae52069d51a1b81eb5920280eeff1dda2d4c737df9537464bbb218cb3f1055bdd249f6760fda1143b3501eb0a7b0650423b39633fb89bddcbfd5728d143ce99df5787efe9cdbe0850b480e5bc300b58ec4e0f08fb4162f011c6c49cde1844e92d571aa9985264b8fce923c4364fafac7404c520eb0224a780eb756675483d792f0ea9ecb5088bb658fc2a0174bbcd9e752ccdc6f63ab9d9d080aca6feed2e2ff7b413c6803f16fbe715af21cd0c410cbd088c0ce5d2b8d15bdb55b257cb174eafb8d72adbb", + "01749a3b79df3b93f71b98594418067f93438369e14d34b60d7f337fd83e23739c35601d20b31dc30479fd65cbfe0ec68c028c06c9e3217572bbfadd4e64d1df842e2487a3ba83ac4d6a53cbec8acedcc86f4b5b87c7083544227654f5452f96c3b870d0d0effbc2791b2fad9cfab2c57f489eb6d45b93770cde71a7f5ef8e4ee7bf79d8f7", + "016e02d863b272d9b293054bc0872000838aff418961b7366f4683869d9a62f6fb40450aded34513d638cbc6de0ca6767538294657339720fac31feaaa844e8bfb5318b6ad8fdec087df8ac54f28400099bba7e977d6c5f1f25136f3d3f94d4d667a529d9f6ced5d41d97cf7e06d4166c56ceb496f01805a8d73360ec2d5e87829daedf50c0e514941251a0cbe9f3f9d7806d904012eff5860fdf62d9015e457dab971c612b6222d5f63894daf54ad6c295eb9b3cff148e98f2bb45bd48731ab7e17d7903ee6cb392a4f14afe4baa07e7077e40bf2ced9f20ebefaacd9f112e5d35319e3bb8a020245339263120c1c54fe52ee7af0f7b6c01960d4280607ae2266829484bf9cf3da678c6ba21cbcc0c123f98f8f15b359de1c396e294097b443294eb96320c76e2bc832a710741c108a6d8aee4a2dd4344031e01a1311a0e580312618407a52502b45b9877b2fb9d53e18e63969220284df72c18a99f43991c211fd21962e82538be7", + "5edef293c68fe934948b8140630655b6c56732862426de26f73ef98405c289936f13d757bf94b83729a767e68c0bedb0c13ad9ee93985388a5ab978d2295a83d8dee0c80f6a63421f9faa943fff14032d6fceb374faea92dc2f014d989e05a4568132681db38f7739f59e1de89de3d7328008dd986542c165be475ec1ef837d5d79cc9da" + }, + { /* i=908 cDividendBits=393 cDivisorBits=193 */ + "01239ce71bb8ef0b0b50249dff3ebe7c5f9316a22eb828311dbbe08bfd4d83f7772c67a76a9faddd0e375aef59dd45632902", + "012abd9870d1b5a0b8a55cca654a382cd7975bd023b61f38a7", + "f9e45d62d78924124520971dcf8eab8b96785daece8bb9f51e", + "93ef63386710fba53dc7f0601015d0764ffd1fad6ed3b270" + }, + { /* i=909 cDividendBits=3289 cDivisorBits=243 */ + "cda4da13d4863b24e8d436c946f76cde3ba9e11a1d3acbf469c38dfe078a11ea79c199eb42285a0678e1b450e8ffde0c8a04e4219ed4fcb1436aa5b33cf725da724a92a53da5270b81a0164e46585c921f5e952cca8151cd7e57c3437006ae172a505421c1beeec619deab26b694da17da181fd41f907aae0e97f7fed02792fd57c322af3d50494d90f7372ada94d5509d0711c853596b514448107e8e302bc3a4171097719e29081a4490b80a24534175e47f1f1c0640e49b4543afd71ede102542b4a9c7615e0c3535c3e6e140125b29637b24ff4a739f35f4f5a88b87e9af9f193ae597adb79775bba95ed6045447a94ea62a885ac7c1d631bff57a72dbba653c11da6bd38814a4c1612293df7f4f9a576a6096e095bee313e1944f3cc806c1c99622dadd32c28d210657180ed8f65621eae1c64268b1660551bfd69d0f57cad75b7ec7b2639a475e44579eb8ff9fd1fc97f4c96e1613becb6333d2d8605f36dbfa6c7d824e5de4c928e75b3a8ff5de7e9d94584efd5d02fd0d35d4e2316a20dd25126338609576331a9be99842dcb9561234e9d4af437cca9d", + "04e02e0e0d0b125008ad3cf02162ac645234cc5aca3ada25f1fb84bcc77c8f", + "2a2d63339059882f77e69cc62f7bc7664a645b2ebe40374c2cfbba5de11dfd8b43307ba20e8c091e3ff68587a85fca8d7d7f6ab873fe31483d667e25f8a63a6b3f854f5a761f9f6dc90120a3520eb7130c263f71d6f530c347ff5e48055d08143d5845991e244ad724a315781189906b200cdb2fdcf54a475cddcf52a52b2c227c49fcdb1b0791a6e2d0279a067557b11a6b8c7e86cb78c27c0b7eaec75ac887aa2a4c4fe4502ef712ea1f951022666f6797b54e0731a6236c4abdad02aa872447ce4e5450c500b49bfbee2cdf504703614c945bca2411f10abaf628abb7ef1a68d5e57b46076053215b74aaa5f1f260506d376c540b3a595d24f989ed7bc1a627fc6e65e526a11b3151278643b14e906741fd7ec73a503a3047f7edae3ab7ee1538d63cd1f33486e310f86deade703f88a3d876aad9723f8dca4e27e88590be83097708d73f26ea49f6d44c2274a21959f1d4ac6184e2225474be04cf68b2164a1819ad5c102d056635e54e70f28a4e0584b795f8c3a77de16572e1b1", + "03a27e38aa6824a8dea87fb39f41912030381c9f35ac84698532548667fcbe" + }, + { /* i=910 cDividendBits=914 cDivisorBits=798 */ + "01aaf7dbe0bdeb60b9f4e0bcf06a3c112b3a59aefd11a7cc7c43afec9312e919d6f4d36061dbe8bdbaea3d44f8998a38e0259448bb4e396c60030a34e138d46a500ab01ad5a7576e3338f783cd71a46cc40d96c1667df132cb7847ed68e00fb029e4fe4a8691ca4d4de6523330d1c826ef9434", + "2bc2b6b0e89eade7c635fe87dab7b627aae51df457e67fa53274f940e3da060bb803aed1449f89b7b6a63dbb17639cf10a47d9d007df658ed6dfcfc901dce2b424b565803f3fca514b3fdf70dc9ecec5dbe5da267cc88f84a2721cb6dd6d43b15b0deae2", + "09c1c4cbddd007ccf902517e1b7ff1", + "22c0fb1f027480b14654f6b6fc23c3b2a420cb3fc9489ff36d41e37fbe1260da2e38bc17793d72a9d439df0eeb50bb6478d9f8cf541d80558ea697b759b1ec68b916a9eedc81ab9d52a918ec2e132cd21f38471e97f3993adddf82c3a32a921085795772" + }, + { /* i=911 cDividendBits=764 cDivisorBits=567 */ + "0156d2b76001d7801e3a68feff3aaa414b1fc4fd0d68bb2f0597e9f85817589a8853a048cdcd3ba39b16654153877839e26c934d8a7ac5bb09e3623279be7e07ade1ae41c0181d9f5279d8c02229f71d2c216209d4b0e36897df5f8c1a6028a6", + "35eb63fd746e12efa6873a869ca82553a99a0bbdbc7cba20fda3c3e6747a554b02814b88e46c93d8d06cc016a25228f9672e24588c0a8032fc8d1240b215942ba3bb5902802a27", + "065ba97dcd4855a17c114dac0fc165cbb776fafca72a8c2043", + "11a94c56ae2a153b2febd91a96774ea3ba2113b13fa0d7461cc5ec644bdf44a1814722e60257d55cf991b7e89cea6077ca437d58bf0cfbaa68c623737594e6b653ee7dfa3c4071" + }, + { /* i=912 cDividendBits=771 cDivisorBits=391 */ + "01182a46d02ecae0503247a2c037b18bb387217fcb9baf97823eceee52a286f14e8bc32d322ba2c44dfe78e0a1b62dbe7176a6b7a10209223335cbbce0b13d4d0d835248717b64725536c01455b086aece3df5bda6f19ab7bb1593b90d6587e544", + "77b2dff923cf1920e80825ebdd6322fc47ef5160b161d7180940be6d055ca7cf87b335d82730f6eb1a3f90337c9502e54d", + "025730a0db18234a41bba71f8bdde91d7f7d46bc0cae44439ccc300f47c61a42130b01e66675a4d781c61da74b99608c", + "14dd657eb80a22c0b4ad64d8a1ce4c5aa24fc909e600583f7495ce65eb9ba99ca3037171a77e3bc0ab4ae0a2e737f09f28" + }, + { /* i=913 cDividendBits=2154 cDivisorBits=1804 */ + "0275e654e3fc36f89e07ca17ec1089ca4899b470b7048cdf0c55e091818afea1a19b267feca88842048b3b72363ae2e52bee754cc42971139fce28c3b88096a5bb21f3ac6f7850abd8b9aff134b4683b7638e2acae1d953ad6ff209a9b86f17092c699788898f96a1480765927a01a204404ca482d8e43f6ed6d1c8277b1818057512d20ffa605b32c0df78b4685e7027844cc1de789ca47fb78ab2e97ec9f4b3153fcfa3f7959c14271872cf34b36efbcaaa9ef79d8053c4b339e2c616fc4e2474d1aca2cd92e2bce4615afdefcc4b057f11891e4df858428c81591faf07944bad388fbc74274a9274bb9d9aa784c473b21a69513aca3818cda2b5413d7d06bab4030dd8803ee2891179ca722e3", + "0caf1ace20938e84942b855247bcc8c7a3c999889a7a45cd14e5f6fed84ec961a546871fa5bfc57b482d386e9c152856b3baafef788cb026a0dd21e1d91684f50a565efdd07b5fd3ca5b0d7d4c19ea41f6c276b6475886ab1bca01078ea5d6bb30407a4f86fd3e89871728ce8cc0f23282ebb7e4683e4c7c04a661f73329b6db5358051b39fa89982d28dc77e62440df403856db953b006f96601178b8aa9173c4148c8a5d0c5c0a9602a9b364728a0b2ffb3188f6a9f889b1cd929a7cff4146e9265a3773e481cf5dc3bd79c261069b3833fe0c26049f74b29ce76f0bd0c75f9648", + "31a93490c46e13473f378a43f1730337c2bc49d5b2595fd5fb6b845571d1d9bb353222ae633c17d7cf6f0dd3", + "08ab69f22d1f81f6de799257bb1673fb8a026551d2e9337479f3a2648eec35c2ec60d9c0c684e0a5ceb46aa73c6f6d2c323a83a84863dcfb28f1e2461496b262558620d120c45d7b42bf8470f0f83408609a640d5fd13c9a4950f5cf5dc3f8ff2a35b0103ad26b22288f3a6000c55a0aef8942ec83c4a0487f07c53418e841300200c9f1d07c4f343e0250f0fd2c020208fdf6c1d708359bc5fe1e400722e861660573fc0eb336a9a9381188fa8d067901692b9255f696cb519e3518ddba91ea66f6f7d81086883e9cd339de59ad27b44524ed1e03653418208680a3ce750d049d8b" + }, + { /* i=914 cDividendBits=2126 cDivisorBits=715 */ + "28564e9e5805b8a6b8b23682c3df8fa85878bde96cc22e5d2f080ed72e2771cd94ff2f5729cc1c4614462d639537f334712c3950c184d5961f9621bbd63b7134eac6e764f840f3094c3861fd4bfefd04d1a9af34bdf769b870f6b8af1f45e34b27f056d020aed3772f4d12881acd8fe33576fe064a91c93f1d0e3df59b82309fe54dff2507d5b02db0da64b241075d6237ef424f6e3bd4f0b76fe9d6483cf72d9c52d4e4578b97e5b3be2a1f49596d6161096d8fc1207e85abdd07aba29827c4333606de1837e86506a1a31e63d043c5d713e7fa37f6ca20d1cc81c34f9b18b02877262ffd6a14dde52b26354bae7c56fe2fa8d98e5286d0dd0aac3f10814bd346a6798c7443a1746142", + "1fe0fc493e4690b7184d37f4d00d549e48c31e22da1f3061a65be203e55b867c402fcd0135ff5ec90886c11701b7cef9504f32bc7710e5dd05faf64f8a93dfa04c5a58653aa6f842a6494fa15b19d77717b01bf5123e96163b", + "0143ec678f362b90ceb2576bfaad998a8dd38c2a0fa643a6a19b61a96b4e233cd5fa75f8740f351fc580251a655d33b12e089e811eadeaac400a0825908199229ac70e5ccc818156709da4b8ae5d26db1743af4cd79ec6a3fa0c6b1ba3364e5a60bc8220e12610466a9fea92260302ed30cc9edaef8ab29c16872f93076301d21069f60d4d84fa3f792b9251a4f9411695dfdf88c0d67bd031e1fa2e5a81b4a81989d83cbdc5685eee630138d2e35027d2aa", + "04baefdd2afc235b03627ce954b543dab89e5fb081436192f6c431c3a6825d01ff4cf730c32c35f0c80994921517e3da71812cc274fbbc59bfe89f91080725680a6bf9c10f0503b7e15aeae47132f9315bd96232ae20903814" + }, + { /* i=915 cDividendBits=2412 cDivisorBits=502 */ + "0f87db558a321925552529dae1d192f99e0e97ec018be2e232f7549b6f9d0beecfc01fbe71e6c15e4466189254b498ec40ed0a89db55dba7833ecbf199af9768f2e7f94e854aa9c6f27a615300df832ac73e8a0bc2a4809706edab34c22c86809190fe6aaa55d06b76d173e6ba8a045b78c5ca8a96f098e02cb2d6b564e9ebbbf08c251a8bc2f61deb7ef6a6c564a75872d6595832b9d79dd345d950f89684d7daf37df1a066435138417ffc0c1480d5598a15919a2a505d7595cb304fff3d44bfea026348695abc8e4d32866ccd7b54fd2720ce3b7d0e3d4ef047820db7dee57b2317a285b923fd6a65d5fedfde901e88e262d77327a50465c96a4f82caa9db277007f25ca5d6be683e0ac303071d8ae139f18b822679d594bc6d245e22f6ef3dae8316d72234d39870589f279c", + "12ccd083a896d004821f06e0d50591717627c16629a7266dd4a29bf71bdf3f5c11c88c628689d9dfd2349d2369fff1271cc3a8b328d3298c96f682d84640c3", + "d37b29bf25d388e7faeb68e31bac2e05e4d9ba3e952bd72a95564e5feaf744eeb6cd8f408e10b187024917482bdd41a293dede37988b670d5eb0f3fc8f77f4e918197bd63606cb820b411efab07253569bb542c09ff62eab944b77dfccccb344cd055cb2359be23a60950f6a5b396ca62362bd7ef2c51297a1bedd679c3c9e1255c95e8f7dee28d6dd2aa111a777b480c04c5a9f016a9eca0310844d66f7672a54ff615188d01e1b6bf7f7855fd64271f233c23b919a9f687af09f25e8b4735e8bba398f59104d4b6c9dbfc644a25f74bad8ae47a32a6a4222d17c13e4600615d7cd5b10691739fefe3c52464de114", + "0e4152899ebb5e79469d681ad10e78501e45f9c54d9a6abffc536d6f0d8e0ff4aac107763ab09dad6f156dd54804ee482911a5b863678824b8a0d4e78fb560" + }, + { /* i=916 cDividendBits=1258 cDivisorBits=415 */ + "02f32d2fde8358bf2963f05682f1c0927a4e7733bdc154eac0e56540f9ab38c41cdc45762ab05b6b9e775eab59d5faa092db4828944e68e5d54352d3cfcb7565224f8f9f84cb90a5b6f56f5444ae3cfdd54807bbe66d0e99f0ee194f21f0f7267dfde5b44e41c5f754a1c188d13ec928caa7111166dd38e00ea71ef0cf6c0267fae4fa5189970da95deb5957a8bf2f7595e53c68010917e80a62d6b5fbf4", + "7da0c425d9a0420d1e4b8e89867bc3682f18e26168bb6d60e00e7d1791bf82899e555b733ddc7ba0065d02e10eac841ffcf52342", + "0602decbd918f858cda543a3f024e1e2479b0f2a3181c139eb6c17d29c520c06f00627cde3b31b57e9b4cd15ced6e2192afa6554c163a0091315bd8d57d184b5135d31ac655809a869ef7396dce1490cfb9f2599bfed838a608fc5dc84fd6f51259be60c8e6c645c16d8", + "134a17a54d7819a8279d387186c11d2109a153eaf3238430c30abae413ad990b294532b684b958e4bfd51a56449da9f1e3209044" + }, + { /* i=917 cDividendBits=2961 cDivisorBits=1744 */ + "01f4ea7f9e821f66a71edfa655d2410f97548ce6fd16b73eff99834f77df0d50b2b471c1e7cf1c879b35f08e83a787dfe685099f295c61b749d54c05e65a5f77f6e61f6b2841b3d58ed182c5cdb3bc1924e4b4e3c1430853d4f499d2a7c5492c18bd3c6da3037742481cbcac11e8c5f25b1df9b27fa6a07e9466a15ead30e1b648fe8402763677c1c123ed24869d08e837b1df74c286ee00506a7fba36957b71227e1a928fa62728f5a17601a67913f375a18dc056533fd343b7c3f23d30d0b30dbd8d0fb0c367ee58d7be49201219812a0c318c2b8eea08caa507323a21c46d014aeb4c7f3175e89a96ff713be69b1fdc44ce041e0052d702858c9933bc228e978c089ab8e1bf7497f5118f99644cb2201bb3304cdd8e3cb317ad209c49d3bcb4937e70e74de1a4ea051c6cf4efeb55daccca64b26e9c0ff4fc15114e1bcc7c95c796818c3a57b14c66b6d721f80115321da0d6a1ca7222fb8969c22c9665ef388f380e21d1bcb2d6eadfc1a5ce7ffb8aac88", + "31b2a637cc5d7a422a82d9a97cf452f430b3acfaedd7ff8218a72f1c99bfd449110ca5f9be1d1bcf05bab02729be1edaff456719630d407d35e75be8af16955c4f7889891d004b0b5839732cd6bbb84897efb5f214b1fe377902885cf6b974440836bcea81ea32742e34be0021f63433550ce12527e31dc1668798245be96bdd346cf971b521517434c5c773f9e2e14d291efb759cf228471e7715f65a5297c1ee66195cf0c3facfcc0d56bd6ad6368cc1c91c8bead2ad676d165e347f138c033799595b73e85d917f0b8a97cdd91b5f815690475908fe615083", + "0a14485dcb8f0507368f4a295ec2ee441a656f170ef7cad5d451701456776129237d2b7149ea3c4a509dc1f3f263c5d545a710372017ef68bed8cad8a29ff752ebd708fdd54f367f726815f1dfacfc6c12ad4d81aa8a8adf6a6e40471546bb0e090f9a0b0553888cd3309074fe4130dc6efca0f56ab737ffd5366010e4f593320a2e23f6556e2e93ea033f0eacea30235479911fe3dfac5309", + "1af3ed8d03665a66057fc41612833a6c05b51a4b34f91355675d35f38095662d3d3ea5347bf7df2311232160591fe2b8060cdd536583aa5b0c6cc7fb96990a976f6db242e6d64370a41f5721781b9d22b15dd5c8427dfb0c08238881b044c3342ae184a4e1fbd9452cc483386ef3211714eebb9c4421b14aff78218333fc8f72ca99dc0c8fe22662976dc0912be4e4efa329a5e9d851878e382c6a88f04a69e9f06f02d878427cc6a87eb070c965146071cf481157c6cb27271d69956828c2ffb9b2b58af28b26231f09eff4a51699d4c59f0766d30848005eed" + }, + { /* i=918 cDividendBits=160 cDivisorBits=145 */ + "96547f6fcf2616888f6ca97ac28854f5bec600c6", + "0138db8a1d9e93bc446cafc698c8f51a8f1fb6", + "7b02", + "925c7fb9ddec36ab5bafccc8ff48c56b4f5a" + }, + { /* i=919 cDividendBits=2636 cDivisorBits=2616 */ + "097652f12cafa96031b61158b106bfaf5cdb662f4cb1060f0016cf29e1642ee94156a12958fd235cb0047da1fc290a320f610036273456fd774d0aae556017b99265365cf0a54b47eda9a37cc47b42361a8cb8ea224be2895265a735ee3333d4590583f2290d2f3b623d9162cb84b0a5388aeff41987cdfb2b8d62106a2d49bfd363eb60c9b1d24f7b3442c71b6e27cfbe24096521ccc5183ee03843f77e8d6f9a29573c6c0b06a31998cd595a0c8bbf650e5ffb1e862c298f97bb4e0e62f652a97c7746937199bcc0cf25882596c37a8c463560c38c36498bad474ec0aa9a8d6b789f7b598a97c3f2b13c1bdb388bae617b93bbe84a5c89688131920b5d90b2e7d7405da46bbd696375d6109e93b34a92c2d4b65b68a1822ed775492c007811a2db16fbdc376cb294b878c3f0f3dab831cc29ae55a3005a2a029d2b38f781fc86c2d43487ae78c72918", + "1e37c2bdc506f64a432e23a2cb72e03271cb4865313ceb6d25cd0b01b3125dd46728162ea85aea1d444d3cdd9706bbf3bd475661df94c8e190a2f4eee696e90cdeb80510dc42044d06e4f9dfc9459ea3dba59e3ef48560ef4f7629002b94fd79273b1ac27991b0b1b9d182c6a5059f70db42ffc6c20ea63967a587fead25c6e7d4e3112406eb12e09af0f602cb7fa0e9eb22a4787edb40f3ffb725d0bcbb43b2ad4eb5f1479d3d64819a1c0794b59497df8fe52a9d50aac723059e810b5dd98858902d76ae2d51528e58a76dee76103fc030785dd46404d513bd6925247afb0f3adb387581089aaa79334843ebdecafcb55445c16831deeddd10ab1326f67c89df70c4e8b7f2a489996aaedc5d7f687f6777bd7b88c2a623e9ff952530aa549ce3fb5ada18973cb776cfc3e2be41572a4f7b007d236804eb52e65dc5940d416a9a634d9a5539b2", + "502980", + "0bcd5a0bc80fadc23b0a8ede80411e6d1b70e6811cba151afc10a7ea1cab2b613b2bd06f7696edc8175f0af3de6c3786271078199869892bb8f8968d6ec53599f2d994f53c2905774853ce5fd9ae58dc1d4ead909f52c558be3b0d93f7659f2f808c88f2e5b35c790e04bf2e689b3a74a9862ac4a948db5a3b484869f7a247f33640313d4dbb5fd7d65a6248560ebd97e1d09fb040f76908421b2d6fec4a89a61e870cc7763d4da21b705931e05892aa8a26f47637a55dcc5c88ea4aa14a350db21e4633fa45715dd6a6bfb642fde167e7edf706902cf7633e99bec228f61c134cfa2b7c899a2e8fb66a802fa180d9d8c628e062c96fdca5e85395b8d2a1aa4a0cff361828b73620a068a2ba7b51c623968925220906e527bedf43da03e42d95587a2d2d34e7d9c8ded43d97e35799d716a6494173d3f4af85472bdd651bbbc4db3887a04cce18" + }, + { /* i=920 cDividendBits=3714 cDivisorBits=2345 */ + "03c8d62793f9132743e6c5da9ee468a656d7106ca129b222f36cf5865cc2211cd6bad512d7a8e37dec690eb14f551522480bc98adc5d5b7abda87974b2f15e60105189254d01b2710b338d13edcc42c813ca96c683f6221c4e1b047521e4e807a79489d0ea411c43b4488122f117279f8f618f93d2bbe27e956bd43abebd9f0a414b405062b17d22aa2371ad79478f7201f2e46a14acefa5e7952233ee1f78a3d94b0c1a278b701385c981100137342fcba178d57e1b9d2c41e00bc4e1f62d8595b01b34fdd83b417e0d2e561d409ad9e716acd8c337fa915ea02d660fea774d6c95c78259399e3da69502f1b49e99fb575e582ad0ea46dbb94ed05ed19071b8fd3321b3c32474cf25404dfcd7e2d845333679aaeb661e1f29bb7858ecbbe4e17b818e4724ea53e924bdaa79e3044a7fe0623b47870ac94a6fbc5625901068e5e40f06f68859e7496b80f8878a3dcf55f8fb429c7c3cb265808bd70919ad2053a83a8a7caeba217c2b232fdfcc591bb4d5bd12ac15bc419cdd46a4d284f896f6a49b4fe73de1535d5133d694d993d1542c208013f22a5b7b8e8286f53fb8e20c15e7c8aa2e69df73840494cfbe79b509af81532f944ccaffd35b0c34c0b33cd5d2e0a80473ce2b7eb54626aa2e4512e26e", + "51113a7862f2770acff7133e9237b20e67ad56895704b31a51349859aca3bd90a23354d4dd813c66275b67c2efdce646c4b641f245ac475450605b04f7f45cc541272693ad7e1861f4b6a2a2e5d8b2aeabff8862d326417b8a8cc98357a3eb3bf0cd3bba2977bad2cf23e6d37930e8c52d4ec664569ae1854afe9ee5650124df42c741cbe7bef1b6f11fda0f59070e5ca418c94fb5bf52a73b0bb2b19cde03abf9f4cb4f9e93f9f95d75053a03e1f44967e823b638c6740eff168c20fd047451aa55c1415ed14d553a7c22be522e4978ed37ebe6fb95c33aed8c384cd68e20a5b4cc2d4cb72744ca21fb2a2972d8c979bbe4b03e77ade81eebb68e82ace87c458002c1a0d995a2b35497dcd9b3d49cf7264dddf62825ba1b5fa28a1960a2ffb6ad0ba695db", + "0bf375c0b9b2232ea4ac21444c0a1a6d5489614d414a193b448b656ac42719735e1fd862dddd8b761ad2d17e3b92be839fb6c8d76477f04d6b5d383147a95573e74a3c84a7b37916e98448c67845806553a9eb40146a2abbad237f17197f720c4c82a5892a76bcf417b53eead68ae9cf884e7aa2c6d21346bf028ce3978025f957a86f07d0ceabc55e1bb4f8004ced422f5416229ff36166d71a765950b6a46b9f9e991732138ba191ca3739", + "4743b5aa0d9ff3dc1823b749992294e7c2a156c3d467b0d18fa35f28225cdbc26bbbc2e834e736f4ad1d564475503b068823c45bdfa680a6c7c91fb7acbb51c8414daeb616ba59b304d0d04f804caea306058918f75734db2f70687c23c4f3b9fd3e20d980064198cfee5c973256e1d596c98b132782cc55eedc069b58d29b6e611c196ebbcda27942e36af6f1f1d36c859db7fc6c0bb275b3102a6a889f1eecbb413c5d47017808f507d2b1be0c132472c398a8da68c1988e052509e1d2f8b56d0df72bab6cf83b46baa2c513d6a17c4f4528de7fee68c49f369ebdd4a956022480d9426ef5618502193a6410155391e2e377ac9123303a2846084135b637a9bbd966624456cb49d5ed4f2c58f9e6f70c84dffd3f80a902065b93087736701c1798fb77ab" + }, + { /* i=921 cDividendBits=2466 cDivisorBits=2371 */ + "013f3e0123462aa7ebaa45fb3cf2ff84d5ba8c483c8e4a82528333f3ba3f8c3ee0f251b3e70e8d252f2ae019e4c6fda2cf4704699a86158ba2fa8e4b500c1db4d17615568fb31cdcee1a6f7af0c42ea12379419c6806e137b8c9b6c27abca0877ce90e5817fcb31f97badd86d359d67510132478a8aaf5b9185ae0e2506cc6e940bc911faa9730402669176c57fb9b9218656a990e5dce1e8db00ef77c9a2d2e910b412384a01921ca1ddcf4cc2332d0b8d87e369bfd14c2673718d0b8e584caef615e7c88b134d96f3fb85a77df6f06aefe771d18f797d213b9b727b9c9d3fdaed38cc120f293007f9a22d05bc37f9682ae89e8c8fd06a262483c2a493a0627dae7b2ad160af30c1e2d0e02ce259710f6817c23d24bb5bc8a7af3038bcd350e832922cd6793ff17f7c8224d5de0900fe013a9fab4", + "054f41efd2442d08f3df4ba762a6bd73ac9ee8b9b4766bb3c707d1695a3ed4be06216f365f3c2638c687201a3306a32eba5254ee29291619911e30c4c37b44ebea157a47eecff9f08444fa2f7896b83521c849e8dd832a0b165467428e58af40a5666ad47d7d370798f84008fe13175e80d7d91abb2e6df8c4fc4e84806d47936df5bf8ab273872f9a493cb66c0e1677df68d9e29a35c7b06b9ea3ae08f9e154f42ddd1786395f1a3d34531355a5b321b2139c943f24733f0156f1a990304ac48240f133cb1294e14d1dad972a096a7d207f0e1a8ba2f2cf3f4f007af41daa8dff0dea0f55c45b5046b4add1bf874b4330a1ea58e5778206409d072f37e62e413566edc0d7490413c0fcd8dc48fa6e89e62d77bf9df4bb9acc6bc54eee43a8e5da5c4d58ddbbc4b4af", + "3c201f04566a73c994a2ce68", + "0548857402eb62d19ded07efe27c3be44b1c82f2274245cc88c7c6f579befcf560684c981680ecfa2145f84576ebfc1549702f9995884600a57d8ccc8d8f3f1e8de4fae78f41cc2a4b630aa8a31ef61c23015e8f5a612d1640fee0aeda2e545f16e3f85898c8ea47fcef51fa7e3ed8c902c16ac0ab1ed13e4ead89640be4ffaced7a9bffcf76c2694984e153b6bc92a723d66d2ace72ea904aa24b12822856cf9f8cc8ec879cfc7b3e30d6dd996f48ac79136223f5d16e920153e9d0863f1150aa530903cb314d1267915945828ddf1d95534f27a8afbedd9c9092368308ab145e50c846d298da7207434937a4497283c417d11ba6b36e8311dd32a37a2eae20d17f92af3d5634187f96e3bac2c1ed1dd7e8f55f2b3d87b170eb734308d5a5dcbc51b0835cff9dc19c" + }, + { /* i=922 cDividendBits=3790 cDivisorBits=287 */ + "3988ba72e92a75e10177504659a79cfe9781a94bfcfa72be0d19fc85f7e5653755ea197efe2d3d08d3ef10414d29171927f6d21c20f6e591329960a5071c32ee64f06436b3088d6339a8f996f116c2d9f6c8d3ce567e7f77a47c4b2dc83a867a7a032c90c9c4c0b948ed9c0936f658214d8cc9f408abfc80c2db779f7c35b3cee9b8f1c84a4215b8c1a4d3df56e2109bbaa3dcc38f64c57e1549c77d3f7c765159e6b0bf02978473ebaf05184a9b6fefc1c1f5eed8155505a391c5635d47df8852fc5c6390d6c9c5afe82b480b7d23ee81aeac5b69c64420c743f2f893e511d8c510bd00ff31340334012e6a4120787e00a215a29e10326dbb60ba235659c1399ea2eb58713c1ef971a7c7a34d265bf547a4453a403a259d51a34f284ef4bac99f864f072e424a9ef13e0829f0c2a552f87600014c2108d689e92dfe745ab6cf1e2e9f83e3130ad52e84bdf3f3962c81414770858d529a926b761c415035c5760e7584cb8e33142071ef6defe900f042b8df99ab12c660ab119203fe7beaa59a5dfcc486d93c0221c888080d230d13f588c5b34ef185d4bddd0789fec31de35eb76ac609c33867305bf41b2381d13f487142952104e12c15d6e113d252b51bcc4764f6c865f8ebd6018194267d386149ae33b02b5eae0dee075e", + "2757c85e00d08101df54ac761229c80d5cb7ad638d458ab0a8136ceb73414e2f389f8897", + "01765e3dc3c8bc5b66ddb89b4fe86380e6a27fcd017a6f69e24e9ee6015af214eb683b67ee39bd98fd3c831b389609957cb07d9722177f8f9f9a0cb37c9b9441f2a0036c358c8e1c96490cd5363f7b02a37c41400252292994b705fbda003838863864a166b95331f83ffa33e32477dd943e93a42c75d8cefc4f4a29c8ff7105660d814e3d8178102828aae8a2894b91984d82811daef047892a957aa22f4eac0df073c982c5c0a4b1ad03236e1e1b157ac4162f5931afc509e72d0f67a7c85143241fb790a37b81fba981367aed9abb6410aeefe5ba483b0d96193f70993a6dd63a62f978a2e97a446a7d7a4dab2c2049d4a7545408e71822a35a687f3c11d510d66510477cbb22615c895d8a0f4cec82a5389df02f9c4504a05367044edeef5dfc8da502be219221adaf2b045afa6c6c3e49cccd1f1ddf7300c4248961f3976114fefeb25d60214569de136f7ba8a2199eb410dfa77c9a495d0339d3cb00ab4279812a9f07bfed223235574375ee25a24adf9dff65468a416244c1d325f972d28d7455dc34b5176ce1d9a55dea5be1050bed77f48a9f22621acc82fbc16b1314fffe1880afcc3ce85b010cb72a944decb33b6f7d594e", + "187c5eb66c9a47d35b9432b2e918486e58643f74f03d960e02b315ae48013faf2c1aea5c" + }, + { /* i=923 cDividendBits=3515 cDivisorBits=1740 */ + "0305e94c30d5fbe3bf2cd6f9ab9f091bd7de5e4a4cc6be05439cc5af1ae6382c06ae2ac8d2bce8b43f66d7ca1ab4859e5126cf3a7bab3b0a740183fefa5a916ba3ae139697cad83024a8eea56be62cdeeea73c07ec0ab08b558a32d9b1fb658099877f9483e40aadd9e03b5431a59cea3fe95d080b063ff5e7bd22d86dbd5b96ffbb1a08df9fdb0777b3575053ded630832e71453b8c5020db77adb8f866b51716d124bbd9e92fd3c1e7ea85343eb80f4f0bd8562ae726b45fb7bbf88f5a06f9e2f4a79fb5577c856117613c2175b6f46de0f5eaa34057481ea60071bb3dc1230e25a7efcbef7bff43e22aca0738a367ef7847d4d58c05a18d7caf1a3b24e2c4734247fd99992997d10a06b8aa3b0eb37752806550f9a91d0efde4e2ca2dc6117570c72ba195ce6347c52f05549c980efcc2fc52b60cb642a1fbb1770bc00024eefc2e7a64cac0ca103191ee08c681acad46591e97dd8151bbaaf815ba95a798598d5fb2ac648d4abc52a84440e4d597d9494ce937ab64bf2db43ed3138f7d27972fdca99ff992f5314c17c34a87a7dde626c73ce7aca16a5d2b12da2a2bb7b096cc2c162c649c938ee0df26541fc2a7537fc048f03e4be4", + "09633cfdda75706e405aa15938366dd65e964dbb400e14777ad27c305df2f603bf809989fd2ff61842a8ffdcb7036088bf5ae0a841990f9738637e7df0bdc9c970841d4e928d4a0bafd840303f70d6ea105f88359d8bd2f8509d87024b9e1f204a9b82a73442785d233a596c710260cbce4cd96b8075fca8c8d431b11381de1bd4a1d1ccc2035522a1b784eb0c065aaf1b7f12501f3cedb1a84369100828ee83c4940812382509657d6310dcd364d20a01927acce4363c425f809024a934f460dcf65b095b8318848c63a70f5457eaa6a14eee931471eb7c7eac", + "52707679671bf03d5f6e9ad589fb056dd1c07f4c51b1746d424cdafcceb4819d23176de4add2d877a2c6fae28fc09951fc41e67db66eed26338ba1c758939f1a7f32de5c840438cc747f356a4eddb450de84dbc33d6a4a36a48dd65fb022b8c004da4a96172808da1551cc2c92e4b19e1f0f62ec521b6c8a786ad98a011a6946aaa1bd7401ed65980d105379617d6b6d0e56e0091b375b353d030dd965a7fcd76a4338170dee033adf4b798c82651ad87d28a6b22815bf664368b6830fec892c220ee1fa4649ae4482b619f57a9af82de4742386455c4722c6c01a19bfe9", + "05e73dd31bdcff91f894a0ae7a8f78bf7a26817f5dc72c81a9be38488b24484084ebd051b4dfa5ee31874fc66cd04558a00a441fd3c09edf5f62cb06a7d41796ec4075d11d2ed08affbe3852e315d6f8c7d9e178bc9e364babf80c085dc2be63bd4a5eecdca411c8e1ff4591ad4b19ebd6773ba56cfc693861e1163127bb99d233cc8907e24597970843b21cb48ada3cabfb7211166affc7ea42dbfb5909869bb376a79e2815ee350d3705e4017ab0ac2f7bc97de59cf37b9390fdae6e9ff934d403ede17852dda7db02978a3ea5aab2b052742678e1e2a0ad58" + }, + { /* i=924 cDividendBits=1442 cDivisorBits=909 */ + "6ef54bf74685bbb02636ca7bd5ef40dfcfe2dd3f6e7fb0d4af1bbcdfd88f6c13dd8a41bd9d4b6108aa06c0926c3bd20b85bda0e3bf38430adc6a258b78bae92b875b6e190f36052dc33a849b47ca0e53267174267001f6b439b210b702b1ef6a0d346aab70fd9c58e8bc0d6f00cf8bbd4b3f7e77cd51f82478363626ab19e9be66333af12946d3cf883121b02b41542bd5c4d1e237f72f30bd7d47d5b2e5bcf91b91a334700b61d49bab0e6bcafd24c3c8881f9a", + "082809010d70095a635b47a6a9ba8a940340bee0e25fe43bcba8cb2b957a560a999c52f9922704193d4ac18ae93a2548472c83117a2a2a6afaaf7c5b1b61bc63063b8a41e012542feeffaa2b37dbd722b3d8d9a562eb117b2bc9799e5bf0af5ad2496a6fab51750ae79933d1f1538ab3a405", + "0d9a9544de5f02ff10bf42e14e793b6b1df71460d65d8d704febbf2a912ef233d3b66e65182044d26959ad45cd796a3e1ea77b90986478c3d6f0c3ff5bc941c79d07db", + "04d10c72a8392628d2859a39c1a3249a1b65635aabfa3d463089013d6f88a36f71129d2af861b121ea9629d713f0abd2ef6afc01dc6176dcc87d8d3e0dec23ad8501031566c54b0911fb16b089474aea51874467eada386419c4e7817f5652ca3b6aaf4ff183145807703b912290bd4dac53" + }, + { /* i=925 cDividendBits=694 cDivisorBits=609 */ + "1a41f88e6361c968c9b1060e0a5c9e7a01331fa3d839d44d749168db13aabb9e9b4ba8e344dc1dc7e6a177467486dfecadf19abc54ff35fdb44b437393603af7fdc39a6083b95f3a2fb6e5bd196189085a6b90b42a33cc", + "0f9fb20ac55fc9e4123b5dd93b72c6412fcf7ca8f5e4c3c8ebb8306b04c1bd002ac5317c33ef5e95c620c1b40100b0a221fa91349559bd3806ad31d4642e75a1fd97ec252bdf87bc31252bf3", + "01ae3d281f74d935d2c71cad", + "015401d904cdba660cc3d44b7a7989db6f3220383837eae65c9cb826d33c9381ad6aa5d2e56e3b3ca6bd3dffcaeceec58d1f748460c6316571db699e39d2cdb87ab719c205c955c1ed57ec95" + }, + { /* i=926 cDividendBits=2665 cDivisorBits=1494 */ + "0ac33458b3afe4b622083d1df8557fc136fe338ac7f26e98e3e1ed1b20e705e9f7d7c0c64cc80aefc78d83495c47c2dbbaaf03e9f28afe9950f63024c3255078e51d3c3b06b65cd8e418a730ae032768144b5e8413a083b7adbd1e235b1eda4f6edb8b96d2b4c7a242f59cce9230fa2c846f6e3afe19470db7fe9f3aa50f00cefaffe601fcce0be11ccbefa6d8bc13f3765cc5d535b71e7e9cbef5c3cefd0f3db1a0a69b225806c8d59ef74e0d266e898c31366982293ef5fdb6d7bf6259c94f73401412574b289eaf25040ce59d95f9c5d6397f5881f6abc1c342d6a0412eaaed1973cccb775200a29a26756a9cf5acdaea3b9a6930127052c877b223b5667ba5e254982360f78825101a6760545d9d3630f4c4c69840c6e998e46e18d2aa9a10862b70fe38275f4fe0ca50fc614181296a8095e561058e4062c1941aba5e3275e8163aea32c859a50b828538", + "04a90580987631aafee582d4466f489f35f9f13fe0cabcc253b05df8dfad0d74fce3e546e9864637942116e86ee03912284b21a211735cfd0900ac6fbbfb46cf287af9fcface44c9490f53c7b42aec538d7a092532e26e441be67b9518af97a1865e65a9acb6818978b5e14c93d961b8e7c02b8c1f8841cc8ef00e7acbd936e9a42b209311617f99767c2519cd9121c93396d603caab9df662bf686e99d85fc075d75c8960dc3df637ee5908b163a47b08c8a4386f187708f38f0e", + "024f371229c76bf2a1240e18485fbe5e8419e028b6cac9e9d789444424244a60ee581d7db9e0813f91ec0a0af012beba9042ec4d12ab3d53f0f0a5f742d86395bdb5315f964975b8716397e33b57f1ea5fc69b8459b87d266f1ad156b40ccf82f8ef5e308c19f2ff506dffe241a856f04090c510e74437846947522b577f46d0d05283a1139bf6e8a03296553243e0462389ea", + "0452f9b0c5627b28f5ac80799f5e4504d06bbcdb6c0ea52760164131545934013d25b69ae3d0547cdfe59705a04a130d795158b6175e437f39b9f76ada3d470cecc3f658d35c9087b35b1f6393f666df11a6e5e97077fd59604a09532399d8e72015989d53fdd77ae71340d0af0c33abe5481ec3b90743646600131297ec5e238f276ffe28ccd814820ec125b6c4f63d6a3ef3463c451642e47b9b45e6e9e3b5e654a8a0ed240df3477e4029ad931bbd911ef51a21a0622269446c" + }, + { /* i=927 cDividendBits=2728 cDivisorBits=2556 */ + "780ace995853b11fbab57d148dd40fe66a24cc702e819d81ad9e105952e57187dfb3d4194cbc0afa286a0a56e64f1beb24a08298a32e1f663d275f610d64e6c528c9e40c70490b0b29065a745e98a4c75521809997c758afeb947a0f7029c9f463e627ee74170dcbeb02f1e074c3d17d2b2c24bbd9405d521b374e175a9f30f57f8282c17da05aef3e430af9e2dc922b9204fd0dd6b5ee3f78df21ac29c4e7cdc882ede81d7a60f1b0e0ed96efc9498661a19d633405f377707aa87aecdebb37abd18f02ab4cddb58dec810482748941f5c647e79a9339bdd965c94c9356a5c863e4514fb103c84679db58e11de622801c561a5a741a609b975528719e4198266b87dd5d4b8388b51cc2ed6ff038c811559ead9a538773d01481d52362b2f106d3ae692e4d92672a1c5670432a05de790e9896e6b943da064fc450803e91f0b88acbb06097b0d77823cb93270ddec30104aabc142f", + "07708d14af93518cb55b2476dbe0379b6181c514b7ff241d8ac40b559c636f3eb1c17115a401514004bdf0ce4d75a1ef771954453fa45516cd249d154c9d744e37230135ec4041acf2672201bd835523dc67372732c9d5fc855dad476c2f0fdc472eeb7fd8ac6ac44384c24738b62742b3eafa9043db8ca780aa00845614fee38cace2e12855dc0027ff3151453643104d34608210c6ba87f7f2f5fff7390b472f34d31568fe5c1e03d605271e392ea5555f9564e1e6416f46347aebb054b1200f72b1b79032a38c25d0ddf7efec4b759e6ba87677a14ee371591bc0dd844c3fb1ad954d774b7f91ece18992188eee1672d4bfdf78eab1b9601d03622372db9efe47cfc1f39fb1318c1af3de9860445ef19d70bb6bc5ee39a7625cb6789856f8dc59a0dd1309622a36ea9cbb7f290d5af68a92333fc641de3542d0c54a502927", + "1022ad78be27c8850d50fda0b3cd2f21099851ad8ae4", + "06eb9fa9065165704d9e9f0e2a39c8a12b31a119b318137540dac71ae252dd98512dc51ec7b48648e5748c71ca5520fea126c75c9c211d95e9a2343f57108076f29a239779757a9b5a772e9b2fe4972b904924ba9e2defa1df7445363983dd5ac8d033b7c51985d0ade4a6cd10531e5eb4f1cc220333eeab91e263333df2ce7652830fcc876f95795739662a3afff876b98781090f24a0fab67caf2a1a95d47486654e39fac14c602a5767df6b2d0def7cc3f54a56b0c7d1732431ddd2a57a656988dd7cd4d9ce01574a10776e6c2ebfcaf92fa59006c7fda04305057c568e372884a9018caebbf2c6865e3fbe4a1342c9f65e89200bfaf358253e388091fdebe4384aacdf8e9f8e74f6d0f30e8d74d6a86590c0ad5605b1009c8a3c68793cbd7876373e93c09db2a7143548894f9f064eb81da4600d285b80ce53e61ecd6773" + }, + { /* i=928 cDividendBits=2562 cDivisorBits=905 */ + "018069d9787bd95278ed838a70d02ae24e68697a6477206da9fe441a904db21d6be36a8a465932dd0d7085bd42d4bdd6b8eae773c3ccb4d6ef774a850628dcbd681b987b06aa25d19a6e3f4bf15eb23df2088ec5dd4a6b188002a2b70d433e573f48b219273e28f06b941cb32f7bc91af5907730cb8d30f6505dd34141ae1ec1b2696ef7a3d97e790cf9cc47193163a1f9937cc44f826ff134d68fae70053a18c99f570e331eac88629af88c5c73df281a3a2297b4fb40280e05fcec6ad30240460ed4a4304547b6b64c87307122ef4f71a9e1454541932929e6bb41e0ae23a281b53186a2c33d5a13d11280c9b1d981cf7a1b2af4546e16b86b116d3fcc2d1dc806fb219cda43bd355e0ba35d5e0696f7c2b381a4029d963b03c116deefdd8c9067862768545fdf2715cc6b7ff84feb45b05970ff8f5eee60d6b1474bca16fced", + "6b45a60900b49e787bd740d727ce48254865101d516849bcba417bafe8a5938e2e91435433c490c79a0216b1186116e07d3e5a25f38c98edcba1fb072828c58558e6bb4e38ddc12f639fad2d03610eb42cf837369b7ce723630cad105ead8acd1ad77d0efb693e0e08c8e7f287704c84cf", + "039562b7e99aa15dca5a19ec95e4c68d4c148531931eb36c71b6c1d400df9c5677323b7959f9abbac69ed087f52b483a0404a2b6dae8b58ca6ab6a37804dcb8b5d97e642e1cac6205ddb269584271ed910ea53521b684979574a5c3808fba837935bb30cb7b1c909daebad24be89b9be14b745c0e0ac94f81368d44b73d88aaf044c9437c7a12ecf6939e1f0f3c33598b21c67d15987f3116e34d9ffd8a2fd1dbd01bba076473c2e1a4296ee556860a2f82b72a5e72b179716b43998634fba29b06b81ac644698ef7229b8dda6c30774", + "396428e351835af48466007b6e73160c4426a4124e9021e9ab760cb641c33638cd00e6f9eb5ac0ad00da653808396de812cb886e1424cc259b09be9cd9b631c8bdb5a737112f59c6e8adab0187fb2192b6c2a1d1ef3b86e961f094a6bb4d219eb23cb180b208c138ac814f16c06c1c2621" + }, + { /* i=929 cDividendBits=3084 cDivisorBits=463 */ + "0dbe900a2ec213973c1336b94bf95744b2566b74a35067aa65504527d517f6868004c7f11c5f2ea57163e777879baec5f01c2679e4bd90c26a0501957f19aaf37048b002d630aefaba30b7ee1e583adf19d2465500b90f29015c3078b3a83dc80527e268679447735cfaada6d13bd93c45a5224f18f3f408bd9ee1165dfef5197aed7738618560c06bebaecc66688908ecd898fce5874898b72074169eb70ccd889675e48b10e6f64981fb9c4b182b60d3206e95e99f56765dd900913f8ae1e14ba170d060189a0d5804d63da4b40862ea7a2b93034bc16cb70d4c4ff6cbcd9990d06c8ff552d4c9f87b62bdc0c65772f73fc233d715a372cc31656577bba31427dc9c4880871e1adb9f3d155eb307d686529a800dcbb88cf87a06af9ecdbe4a1f8c7c93cafe541979c15aae591eced3fdb13dc160d4850f4a10f960bb9413f8824832e6e341cf96ce7bebe7fc67721e24f7353eaa1c2e691c3c25828c42229d23ee50220202bc534d694013011efb1f93a149d59f22ddcf2ac201b663261ac4d682", + "0824a5ddb9660158e56986e61d7aa0a58abed7d65d966f3d394a41056399260b8706ff08ca6b3a08f6663eecd3263edbb268ddec831ee6615c4c", + "01b0169ce9c9a22a62cd0c59f6d646f5c1b782dc746e2b11f00fa77a045b7650968c8872de6e6e5c409d19379042405527999154617cfab417c054fe4415c1cabfacdbda918e97ef11e0935c86a63bb2dae59562d47f277a51aac95231f22cfc61bb2a33898f141028b4cc5235d8d61c1743e7584529d1f1f82f85d4a0498ec0ce832352a89f91e91991b0bd8c8f05deb5044d585568fe93a9c564c454419c26cb9f54ef38f8fb956b74ab28a897dc6b0d057971e7111c123b84766efe94063e8b11710346678c225ed0ee21f77cd3c92c90549d3267568c4ba5d3d6aade2ffd1207acc89efee9d9470f527bb02cd7f74b4690d37e53c92c22030f1fadecadb4ec7222ed537aa4f2ee911d1fa0e6348a9c93aac52c24b37c92bad030b8a5c1e38e6b270e2c57466d2c0536a0a550937eb52a88ec834c57e695b196a47ced60ddddf82cd2c7d93f5a60", + "03e29915b7758d4fa86e2ace9c27b56cf14cd7a023c4ad7f8c9f181bab30437f65e9d2e9e2b3a10a842b96e588d55ca5d34dbc940a4b591b8202" + }, + { /* i=930 cDividendBits=3700 cDivisorBits=1541 */ + "06de215f51491d15ed627256fb7c70906e2dfc4124b20c446aa5caa2d4b02d7dfc838dd50b452d510b2dd18288e325bf97536cf3b4aa8fb2f2447ae5574f63028ebba97ca504ff5c7fea7e6c063cf04a660b3591b9d54a2e834358c16aea2931df2583332442d6e4cb45ce05eeb750c3572c462ef89f5d30cdcf3a2587e7fac3368d213ca1567eb4593ac9b15d12cb0c146e71782fcd49a8a0d39c1a3e5b6c9d955446a1ba8a816884cb7b2e6637d4400d3602cf523decfc256d42a5d133a1a30bfcc99c6fd18c1404f6bcaa69a64c7f0fbd3595ceab7f4f3b22005654939277b74b31e6d0de42fef846b89d12d28a2bbf3fd987e721ede73e562d9fbdbf0ecbb5fe6b56e1411faeede06593d0c13aa2a3a5f8a1937e433fe314edecacd70574e3a7a959f32f0176b7af9aaff152519fcc89ebd7526819b4d8e97ffe0287f5b159c719f2b6f05cd3411db2bb12bfb809671f39c5dec99dda844431b51e8e5f507ab943b96fb1ccae186a79f5819b607fe499f53e48d2c4c5da992dcbcf70f3671fee0f2994939b41f730103f17998f8e6faa6959f769edea44f97c6a6ea6abac23ee76f188e4a96fd2ddd07cb98c9cf90182a673d25dc8591fac8bf755a0dd9ed4440b067f6c60c2e42c55a3e9b50d", + "196411c229786abffdf4c55f24c7b5775e7b3175b00f95ea0d3bccfb090fcd7cb49860b641af82a56b6aa0eeac3b122fbdfb7eee1c250702016867208cebccb524ef09a49a22f8f6b2f6cdca8cf05f2b32410271fc3715b88b14765cbc3471429f18bddb06d610738ff70f3665e184b745902c851a03dd10e48286807662d8d587395faaa8d30d5cf1f107eae59ef2c0a691c1924afc944b6a3e4466612210b98ca72aeb061dd5245010054e29ff5b46a984665ecfbdffc1c903ec8f557cf0d779", + "453e17b263e923077b00b7159699618c66446d49030986059df91e9d70f69d271e26f89665e8e06e9841e4b0c9b0489595819ede582e28c87f97661a07384ff70d9233646138f04a742c4b3dbaa6142d0d67673573cb6dd6946d356da1d7a550d440ee078c0b00982949eb722f2d5cd286c1eef70b7e25a25bd29e18bf3c659504b8a602e0bee717d0cd2f04e7d50142c80d1af283b4c8d0022a1e2cac8f40291c5913ba4b6f96ae3dc264d047221382bf42a95c7050b8006876f5d235dfb73d87f917623a89ce70ff7c0ad1d7d6bcdef3442004bf0df432974c099b1c65dba19a3da676b298caa6c1db513583288dc35942b68964c9feed198d55525e550952d5679f10996062deba28d35eab39", + "1403fc88f214a07dc3e91f2c2ebfc4b08786da9dfd0ff7c961d5eb1e0849533eec299f6c521faf25316edd66980552ab5f11ab2b5fdd792cd15827e1723f5afe87466200c9f40354b0891ad27c63925aa8a0c11a45368d8592823324c89885db1ef1b770972069ffd26644cefab9c46fdde4f31b3d8c572ef9449882f197a49fad145740907141fe01b8ffa644911dfa4c22b7dd97659ae13e5584a8105cb26fab9a4b4487a9f1999a091651c429e402b05ffcedad1f576a2618fe30e818ede81c" + }, + { /* i=931 cDividendBits=3040 cDivisorBits=2711 */ + "503e2b5f9a260b363f9f7a9aaaf359025c96d1ebc986ac98baeec4c2fbb0df3a3f210c9738bf77aa1447bf8a95bcfeba0a09a8fed9defe99cc52167953bfce4596e310507fa4530cf0986b3e18a8a91c8b0d7e7f39c087d5b34fa1b5796b61ee0219f9ac51389d521d551b0a735c89e66efeea744fb6137dbe1ddc230e4b37f01ec7606a64600145117bf3841b3da52170b93df6b57beedb269fff50722bee35a4b58ee92c17b297143fca6ae49ea3700e7d17a3e7f32435f8d93db94cc66421cd05886031f106cbe0b169a0395ddc1f83aa18215abc01512198fde5ccef70710e4cc013659e94ac8fc435e6f56f42b2ba1534ef01f3347a2b2b8292234a885bb5aaa8f5d374a5f9894dc42ee2c8f1af5d7de37cbd905736ef38bb49394178fdb5d0d673cf1fe60a427880c22138a7c75e32d3ce0d92e311b63dc0a7ce44df6cc37896e36a46eeae8307e46338b620b370bbae6fd84364002c85fb323c25d3404fa3b652af63eefd5332c7e3eb39f771e119440638edb599b5252d84", + "0181ca8f6dcf207326472a29e0b6d19a1094ecc6fc74fd79a61ce95941e87fa13f258f2c496a1537268dac21bf55b39e511cf726c3ea917fd18cd78af93fa9bef70645767151f73d7a2006e62da355c2f00cafba7d0eae058b10721d9281182692cc1e7371055a338779000a590b47dcc5688b83e54a113258b9a66151ffa3d0259784f3d4c41052e9edbfc25a3a3857cb070c493cdc661231a39c58b589f3affdbf48ae5006e070cf38872849d17fbfe388b0f61bf689e7c02587ab143d7bf624208afe089a9f81db2fb3e6c14644492aa53e8854f3149fa153546d84d188e87d96f7a64455cef38e1db7eae0517e3cf1d316abebd12f3a4948c654524e0bdd4c47277caffc332bb4f544dd6a99e15c65dc336a6726c016ae83b510970256279a6830c9f8480aee8b046c535ee005f3b6d378b0d87455c22e0f9a79fb1023edfa00bd5dc757b9a0374e706335f3d6975d7bd9", + "353f31a7c034528adff081d107c99882c891599be8862bbaa9cc359e50729d331e9a7eb3c1f8fa51bc42", + "826511de01677a811c85a609957f31fd2ba424f8bc540af332256d7a59cf2e98fcde5b05822325e58b5a61cc5d846cc0eff77931731eb38d6d6ceed0b81b29d4eb8b7406e54c95a1f48016e36b9d1972c02480540335770704619b8b92135419bf39735016a9150bb4a11aee3d25f75146934699d9a13eb880934eb5626419abeb46f5075471b7e1fdda09cdcb2b97f7efcc9d774020d1b3ad78e2822628fc99741845892c3f0f7dcc2bba3f0acda8f6ffc05a90d53c248e34ddbce3f23db69385769f6e53d46e8e9a86b4d0f7ca39c4bc5cce6850fbec7d6f881630bbd53e44a5584f2eaa8f288bc7c637c46f7321af398bbef6aec103b4bd35e02b2f29c712b8549478d8bfd14a55434db9b9647043a618d32143ca1c3b6c406923ebf7dd0e1833f848edc86c6ed513b31bd529e64b812b4cde80a13a2f8b874463d4cb3d2f6eec15376761b82aa622cb927e5fee6ee392" + }, + { /* i=932 cDividendBits=2735 cDivisorBits=623 */ + "31a747c8b173b615cb7bfa41a34d76571c2bb72b5557e7fca2b51c607afb9a9de5f0d81b09f323577df0ca9007d6aa60afad563cd39c2735e638fbac103f60d80ca124d2e052981f51e626d22a814425c7c464c2703c1bd2b691222176acd1e533e23958d6dc340d3d7da6743e680e4ea323c466b638189a2d5d3e32bcf089d996b251aeb37095f1ccd422275866313d8d5dffb15de0b50fb98531d7a157a362a2e7a3933f6872a81db9b9a6bf21723ece36023b7a435a45dc8b1c5f6b1936792738f8daa2a5acaaa9efc7c372289e4b43e01c350c3358ccc2696911faf53158f311f75b847cf0f0da94aabd88189f50d1e8c12716c64e267e546fbdf55eb849c744b366441716edfe9de11694c5081890a27c5c190987300d3f58c70b8cb38b430720a12d00406f06a43e95fd45709939cd60f0c5a207ec9e33347d0e2720d56699721e5fffc04cd2b8fcd7f72f2d6b0ae86d75e408", + "74524fa416b656c7f5b1302a56a8b0df8b6085ff4072a02672e96b94acac4bf122629426a4282d00108f1e07b57abecdcdd02ee63c4b126241d22f74b21564a31b375b83cc2bcd9962ec657cb48f", + "6d46f0b2023da680e07146735f887ccd23445a716c54935f349e3bba8671ba4b1975451fec2fa1e15bbf28d649b090bb401ac7eb87dc9dc96137d9bdb525e4f0b2eddbbcd70b8babc1eb0e0578bf6207bb1bf5a2c0ac7a771480702fd1dab48b2f072d133774bc4038bf4d1e6f46cff2f93500b8f3fa078fa3bb13102f9a4995068a548a70d871160bd3e9b4b7ef2c8d70614ca104fe34b4dc8b2bf0ed0d258462b13731f0046b94c65dd50061b6aae2765b0b0175eaff46957eb8da203f0d7c8567da7181cb33a6b0e0466d4f2d8cb3c09366b43c7e1b3dceb9ffcab5d6440268ea7d7734764e14b871dd6513404b7bdbb3e576bbb41519696bba00c61770a0f971d99ac327061f", + "1009e8dbc498be144a5d32d95c91c8813e84cb687f49b8bc2abbec3ae02a76c493b452432dfd6071ee804f41cdf7f25f65ef5865435832bb589b7fc44954df4547b83cd9a91100043d58c857acb7" + }, + { /* i=933 cDividendBits=246 cDivisorBits=158 */ + "21db0ac6dac9f899d22f0bf718d70c4bf1a2f25c8853c22b27d90f5897fe55", + "30e87e1ccd603f0619b52918c0313c7c6efd6169", + "b135e36c3926b87f5c817d", + "18cb63fc7220c437d6c9a098ace66c85600d8510" + }, + { /* i=934 cDividendBits=1139 cDivisorBits=234 */ + "03a58df365e1a4c2938b0b7e1e30b531c612dde1db8bfa88086a156e25564830afe9fe7a36ad27f6679a6d5ca4c0522af2806e3a6f76eb5ad704b23f65a50e0b8d52fc730effff9f1820737837ddf25a072fc274a2ff767852d1de1d80044032ee28de946035e26d05cbb453c60ae7d42282a5d0f12dcc2496295ff67657a163321f1fa3bd794fbc2936bf7eec6c4a", + "c99802c0e218a17b4be034aa6c68a939629394b26511d77d22b62190bd", + "04a180a5e7fed7f865e330e0e29759d0bc111a1cbb1ce39302ac02c89523ce234f3cf98854dda387504b9862ff35ea418ad28b0c8b28978e963defb136d25b41a5decd5010d12f0f47c0b655f888bc482a7dc1db53241c31e73d7fb00153bc68a17fae3962bc1fd372753a90482d21e04041", + "2c05835be6e89c23561e5d80d9d5627dc981376520ac647926d9d76c4d" + }, + { /* i=935 cDividendBits=2447 cDivisorBits=590 */ + "26f634f8f9f9ac289821a9a0374995ef6c1dc6fe792bb86eed492f1437a3348bd74c3a843da712f9372ad141d6066bbad6cb67cc5d443cb5d6dd85ed5278d049d98ec0a0c8ab1b448aeffb6769585a294b48e372e56426133bdb1eb15a03650ba53086c85da9f9274ba3cb601b55365cfedf089ffeeb4eee6d7bec79f59e287e7d42d6cc50e981fd44af555effd75b7481eb28703312e7b85bb794b0ec25ef1bc321821f9536a1e63e6148971d8728d9d7b9c240825ab902f1124037437c5650255219e3849abdb6b232708cb9ca47c4e13f8a10fe7beaef2e6a7d5ef951494347aadab3aeaa4e32863c009b90e5f29ef151b8db2961881b41c50672a95bf7d06572eea3553aecfc127829474c87c1bd45982783493e3892e17bfcf591ba9929b432c7875bcbd5b2c42db6382a6d7c793725", + "3462bc7b3867e2e170126feea7986d40a74e83fe46cd2397bb6365b46af25842561d418c278c7dc16b0ddb81efe0831255b690ea4b670176007ec39eccd2ff9bf59cb7353c46df1cc50b", + "be664329f3b964c312099fe3c664b36ac1789f280cfc1dd14a7e8e4b655ddc6d4e31d43bff22ffbe1bfa977765286c703d19fe3b988ffbe8790bdf3eb44999369a312802431dfb82c47db54ba81033db48b734c3bf182bd6e7428c53a243fe289e64c8d96eb4c6432f074a9f3239ef6f9e1774746f5bc0ab578f7b990b0989e1add5f491f18eed7d944a7fde63c44371961c5cf6758ab10e9e34c1b4594511c3438b10620f196479053968462849f62a2c5169cef57b1319be68b285a13e6bcddd1248d49d2317659f9557ebb9e90250736b665d7ab6f11d762f81e052bbe9adf20ec721d60a8308", + "221d721c43869af0e2eed6bb9ecfd55e8d588e82963a72e76b27bb6e0c213ca022edc703f1b195cb933f18362edff6821018eb1f5cc60466c0774d7e6ac4bb8bcf37d8f44cc8e6506dcd" + }, + { /* i=936 cDividendBits=1373 cDivisorBits=511 */ + "1f85404e68952ae01abedb12fbe5a18dcbdc89169c18b535751e5e661eb73d15b2ac1e2f7518771f68eb67c73aa058bf0b440129bc56ef88b10c186cbc52aadd0c0979a3971c6d7196a4c27236e3802c32680792144f38eab465ca43f3217ffed1ec26132da910cdd10951f8d19dc62abcf81e009ce63d91cf38d8357c71cffb2a87dc43626170c63ed28b2899e7a7830d2e125df12fc41bfea4e74abb01e5d5b32620e7cd628dfef986797c", + "067bebec5d11021abf777f971f2c28f8fb9acd36fd2c7c37b55191f38ee52b33156589f68822ea3f17786d5079a29a95e12bcae50c050ace9a544f812f4fd60c", + "04dc793318ecf03108cfd52674bc085597fd1c7bb43495c7f727541c44c72bd6b043b0bbc21c95f75f7e595e466e75eec02c0d0a5bccac60d69dfe82b334d90837edb37c86525930d945ac3ac6e5dbdcb8ab6f9ee8bffae59e8ad3410ffe6f2da14195d7e4eed554c155d958f1", + "dc81ec386ff2c49a384a95890dcb27beb901ddffa421e8af9f5961a872399e6de1062401867509252af4fcc2683e4e0b10ba99cf577e7722106153919dd830" + }, + { /* i=937 cDividendBits=2886 cDivisorBits=1909 */ + "2914dcadbe83aed5d53bc0c73688b3fd2ecfa30ad9cff6cb76920aaf590fed1cf152bd1ccb1b201f995e0a858e7f32bd9399af62af89f74dbe5d2d968422931527f080c5c0d7586886393636f511ce5391336904eac99580c0d5e659ed28dc61fc1c5e395d8e84f355450858035deb7ee150448cbb45a8e0944c965b1ccfa1cf50ee3787c0ad3efd7bb009f010ae36998e859dd3f36a5e6fb64991a76db6c93a9b156c31e3e005559315541fefe783e48d4dafbb1e4f3f8b95b5ab5b824c70a1e31ee5b2e90ba7d924952b5623be75d8fd18dd213af7dc16cafb4c171240486192d49c7adedab3df83d84a34b7df4eab0dbc8f0a669dbc46e5b44abb2abb971f0c9efb26bc29c55503b5c397f371a7e83f25fc9ed2d0099cead19ae3fba5359628dd4d2d80bacf417967840c03ae7b1dd01273476fd7dce3b282cfb86a586e46890bd113a44837b3417b173e2e1682e0f239bcc0fae72b8a463ef81854607ce6b079fa98ba209d766e", + "1ff19e8ef6ee5d41a31ed497b7dbb69aaea14e3cffd75fff838fc55cb268857f7897864cfd440f1a77bbf9dc6c9455c690a4923db77e6527235cb1940c7db3adae929ca78bb00bc2516a555e2c288f3d1ea193a1fe4275414d232e579fad65fccbcf570b58241e50d726411d2a5f04b674ff3c01d7f0dec9378e53c01a63f0a82329b291922b67b3291a1fefcb87cc75c9bfde4709c6b55a4a93b60f9bc71b5fceebec0f019ab655dc1cfd31230abb8199cd5b4baf8029550d907eead675bfa9fb257d49626ba63463b0980b5882849956dcfd8038c68d7e5c7c2cc19db204368faac01b832aa916c9c4f230bec193", + "01493ad9b28b3e5563013dff2525e9894f26e7c77c786c4942bb10db9fd1318baad5c22e833928b41564dbd4bbe706eadea97f235e193fbe0fe864e2730a751ed05e4c5f538622fc7e5bae644e2d045980d4ec3a430c367ddfbd276467d3057ccca0337dc23cd1b5c8509f8863e538c8f9e5209558725810c6dc55", + "17b4538b3a5eef79926e1fc3c8b5be73a5456888544c60ac894b16a44b9af44fdc0e89fde6332e950bdd6d2968fa44cfef6cf19d37d9df8b90cffac9021f357fadb9e05b782c2cf222e1f1cf8ff41513cb651012bf150ec5aa198e349206dd6cd3ed4acaa1f559b708f3788bf0b90971fc57d8bb547716006dabbffb3b2bd71445109a00de8bbf8be181c8c8d95fc1f3d1d215a6605ccc6340fc3bbc7581a3fe39f62a38f58605547470dab8050a82599300f057cf9c8d77bf38bcdef0656f85b74317d2243012c59a47bb0dd6ecfbef9033e9f66b2ba211798d01312e1edd48f90db8c1672a06401072411b3adc9f" + }, + { /* i=938 cDividendBits=1795 cDivisorBits=1705 */ + "061906477b931f4751aaf142978b8336e5de4e22e435cbb3aba5d014e1e267d2677ac8eb06036d52915dabe76802016c670964d77be8c586efa9b02662c6d0cb52eb77a9c8c56c5983f1e7cc0ab89062701a280a535e31ede565c9c1cf0a9303ac1b6bda3864ea20f358d20f2d044581255d5611ebccabaecad43c9d95fa02fc7389c4f27c837c6eb50b5e30e091395953d5b261e046819a3d97269475002a423c71253e79a8a46b6cf8b41946ffa1b8141f546c0f0792ba53ff18822cd9712a02dcee50daa55e72670fe2d14fcde496beb2c895deb4a06b55eeffaaf9c9306d3f", + "3f29899c918ad222c3972c83ae014b3ab7f8bde8e3907e7966e02a48237b475288d382f907eec517210565ac8060479486632c6a79a9641544b9516969e0b651238ce76a3bec1aec4c6fded191abd205ecd8b0e856b4e15cc40f697152a7694963f92a238900e608eff84d3676781a53c7cbdc59a08187887d6ceebc2ba8860113602e2add92e224207d39a7cb2caed5a3173b2f8a1233325d2e5dc2854a5765d71882671927489230ac22a424d2fd3e2479ea36591075d0718cf86f6bb87622aaa16a4200faef47c3fd01d16448ed42df6f4c5262", + "18b6ea758d3fd7f03c56ad8a", + "16d4f6ca61ce60051d44efaa33545582cef4fae9f439783fd4bb358e5c2850a1a8a2c0542065085f30472902600ba0d0d217c5e97cfcf882623a09fdb2bdbd5286fd5f3dc7999396dd84eb2ce6b1a685c7e885dc99798f99fb64154cf326bddd0de2c5f74fa64874cafcea6744cdc01a09a3e10d0bce5fcc50239d586ba46dc53681d5dfeda9395c0a3cad9eb378db60e3b155e771591407bf0925354ab490b33d169425a5bb37306764d73c0c393d3fc3ae51a1033fa9b77983d9fd2d021c753f34535dfe81e8cd3cb49faab9c2e7cf7e9173ca6b" + }, + { /* i=939 cDividendBits=1165 cDivisorBits=618 */ + "1e60ff8d0eb6846da7768cae110df048a4c5e45700f1929583db2bc65e772abe194f2dc72ef5ab610c56d16267f0796eb2cd71fffdddcaab86216005149cb653c1e2e7ab6f561265366e5b9186474efff46b70a5e127da2ef487f84236cab600551c6371b64b9b5b6e11a940443c171d8f3956a05632542600a78e3205f2e3eae616192bbe4fe464fd0a247d2728084688e3", + "4995b9b559db7fdb274c17a141ab341ecb5726eac00504c3133dba9dfb2c9799b8a596e32a0df0d46843e8bbbcf37b19df41ff7d64d9d438f57a6efc0efd6a819f9ac4ce02ec3c76b4888ae477", + "69affe11fce0149c386b062afd5ccf7bb16d1305dcf20dbc210f3dac19af612208f110ea68cbc61f392b9ca836a60a5708f3ed8788d5a5a85a76cd7bf5c364f6729ab7a08f", + "3e8f2ba342f517971cc2a49c35ffac2f92e15894a6a560ef9b44bb37c546a5b8d6eb941e506f5ed1aa0c305f4f79169bb56f8dd650c11f5544d6e18a47bde98db803fe8a5bc674c3420cd58a6a" + }, + { /* i=940 cDividendBits=3491 cDivisorBits=1651 */ + "0325bf7e76028d8558a225b11bf19b900a2672d3e20ea0eba6f8c5adc99d81170aa59502630d90619703f8cb3b1917cf60b4b295716121f32edc72d055955f59fe6e25c6f82b0cdbad72bc329ce17ac0dffd9410c62bd1c2ccd16f7b0078630d861a1b7b79f6597d2b3dc034ca4faa8ae9fe1ee0723ab026768cede9a9c28f4c60f938cf619063dc4868d10f7ab56788b7fcc8b10ed0706754249e12de23d3ba514daf1e6c94ab70f45e883c18d4eb5c4274ea742fdb1ecd901a9c2e5f2e9e6a9ae61fe699752c0a6d3b66a8c4d2fd1aaa45d0e5374d82d380f5d14e960ad699a14a7b2e6b4b8057de4621e29ced4fb8b7b454b8e18a8bb81891260b2c010b3382f043c9953ddb9bcf36e5a7ce613cdb372900ce7d25d95b61c2fa96e51e8c37cbf42fb150620129c1da022ad4c963ae65dfff4c54ee479c11ec77a02952c72920aa7d8e0e6b284ee7fbb1d5ec366b9f8c7242fb6aa8424f9a1b9b610fa9c8e78b6099017e0b05d8ea8a99e8fe35dc72f1b2a3f1419a51d630c0470f1898cba03626619ce3cf43afbfcf94d59b196bfa6ca45aeb9aead76e895864f6c89faae02c784d3768cf983872d59ece85407dff87ddc0ffa0", + "eea0a6bbd804cdf61530dfc9a8b7a5ec459fccbbde35ec516fdb63af0deac5de11dbd61761d8addd1e37e456d75bd92866551d58ecfb2a0f68d7022c003d1d0fccd0729ff2e20d81b762e58e09e1e269271a78d12916a9f8ca868238b6e30f0a3eda7d70bc33c5c214ce7a1893e1eb8e29a26041a5a7b4bbd1c21d27b0594be45c57e17d60800877cec38a7cf4abb3363cb762e2670120119187a7e9b647f95aa29f8998bc2797ba576101c66b28d5856313fbf08dd3a3adcbf9638a6d78f398388f4ba4f7b575e25076eaf6e1a3", + "036068610e684b15d4e8a25410d7738eea2a05c18d7589f9c5382a5ca7415a36c5f760c2d9ab75a265becc5c9dc8ea185226921dd0c81a6fc06b7a3450992e4063450d2697654b8dccac50e6ad5a636eff0e8b6457329e4476ae4d92b51e01a693f1331d2c20dc52ab1ca370bdae6dc3e627ecad7fb4731a5c1e331c4827c8b8067ab97da6b905435e0f29f77ed00714717e2f494917ddc3eef30445b294c8bfd205cf724dd186284e6372e9a12fb7b009ba2c5db4818cd0a5bd6d11b96cc3d375f2310da28de414bc20d050fcc54b1209ecea7b10efb867f19e42266530459c057c710e26697d", + "b2101fed6efed37ab7c4d7b177dd71fbe22ae5cbe5c05bf1e943d020974b2fb2d000672e644681127dced0ab3f718a77d86386522b8b06bd4577aa2f034c408c33069876b406c407bb040ffcf362118c6492f5f6beada25af6a5a2c0d19880b0eb345eed30e4208d54a5f68eb0ab612116327335f7f46aeeca8271d1a9c55d75f021276fdbc73db4522c312fd2b0a20501e5cb5bbded417960b494f0d704dc1447e2f2af75a7c24167ffdff8ed5a21a7ab89932e976f6d2b36ed1b456169f03e06be038e0604630801287876f809" + }, + { /* i=941 cDividendBits=3460 cDivisorBits=474 */ + "0c85398f7ef3aa458090e9f5be19881c60b9c964cc5e832e0c8849fd8af8fe93adff25b5c82ecb7ca2cd271e988508a55eae056b4128c8212a973b38c73a5ed3306559b93535d3dcd28982e06f34280a854cde438b1399619b0bc15c8699e751a57393929dfb0336efcdf571fe5ac8373ba68956c454b5709b0126dc01958b618d249a8f738a5928cc48a061b5bf37b21b626e573ca1735f145575a7f582804810407363b87ef051c8f47816e78243a619200d25513c589c9bf604bc9f76eddafc157e68f6c995ba2bd9a69dd7571b62bb6039f93e82f5c91ad3fb8cebed8f9ddc15a10e4d812c1aa3ff87a0715363bec2b6abd9da2398c151b419ccc93bc827757f996b1e8f4e2b5c28f0e3cd5fa879936c53e17036874e89e102c820847b455908e773fb921b4d0808970a1f14becae32ff4764b7ee19fd70b8a1b62a3b76217869ac5454e00794b0f9177987f1d375c9775e47e46633bed8f84156bd5cac28d11f34548d97b963159501d41d1252209f49b8fbd522012be5f8cd78cdbb966e74c7984ee6ff9852eefccbef7f568e02ca6d85f871d2f11096810f092f9abcad8fa7f764dd72a41458a3a221639b7ead1", + "c16e1f1a0556ec70b69baff32f12054ec5eaaaf7d90fa7d9a1f53354b5ac9e220072c26f33ecb7987f7090b24b0afff44af0c7c932b4c209154ac5", + "1092090450af31673c32a4a224798681812758f316095c728652ecb800699a38dc423c0d73e225fc87fa720178ef406d92de3d1de70626e68eeaeece08d19fa037c85d855d6c925b8e65c62159a0ef39006f44a6654d15d98043bde3d4458da34fefe8cd606d524cd76bff8cb0deb3a3101967c69d31e23ea68a89e998cb122c74a2ecd0170a1124d9dfaeab23b5d93555141040ac9938ca3fbd390aad81ccddf1f0915d18afa860f29a6bbf38064ec5c79bf001da9b3c9f0431ee5984087f9c3896748c2bfc64146170956277ec799ae7171ed184e70aae88b0784accfe77e6aa01eb34905e66938930bdd83b34c466fd19dc491baa98d028f84070dcc983e239d3eb1551c9946acf8452344d18c3d49fa7400799ba929260801a6903559b72c8cfd300d2a9bbb61a4172f016dd1335509c30c72bdb29aa2f66521c6edd28ded896fd178a3daf1f6e1e255670c48eeb612a83fee7188d8818dff85bdab4a27c7d9ae64080b7c83aba001a818629f5079f548f42d051", + "615c7c8e25c378e761d239ed3c4a740d21220c528e90ea1ef3e1e7662d2f7b7b809e91ce7a42d3c85a73a16bd2aaf68b34018ae868296abb71327c" + }, + { /* i=942 cDividendBits=3878 cDivisorBits=57 */ + "1cfe90e3d79680d49fe432431ec10d942e7cfe619e9ec4a8f3ae77f70351cc246bdb15996c5ffef1c4305b21c54183d4076ae1a9325c1418c33b6f20591b6fed80c858703cc0761c5d098251219702fad49be0da535fb015fa167f1f07ab994b9977bff6e55277182947a0316ebce7a4272af8783680ffd14d689ae00fa5eb76a9fce846afda525af8102f66cd5cee984afd077cf329449efcec237407ad8f6de59d14eb1c48f39694589f731342553e26a1e4f599a2160d10fde9459d003ce201833fd42f0df502ace233b957f3cdf5444ef9425a993109d62b9e16c6e3d396e780ae0292ed723cd55ba3cd32940a552dd9ef40284bc0f8d1848fd815c6171ed2066d4bcdf8ffae4b1b7b21ba90e997ebe59f49ff146287ec1fcea30ae2da967f9dca393d017ba066d5218c9ade09a29044675dbecb47a1f5db03cb48a667f1c1dc9b3df4bdcf1449aabe748ad5a99e91bb7625c2c4871198350b994ba19cc3b0dd4925e6dbe139d479e8087d67291b0056f9becebb46f55a638024490d89b3c53b86b6fdecf79017a571cd48e2787263ad5dd856ab11cba0235e1caf35ea7c692f2e6c048b6507305e36cdf0722d8902d16fb5f04b6f2c8e0132bbe5cafa868bcf49b3836ff24c3f8d2eaaf0785866e795fee181d4b5d923a34f43eef9998d1e290bcfdc", + "ab734b51766a08", + "2b4af4be5f4068218c0f9ba2c4b5ecc19e2cc732e929c461df583d1e66249de29e24c9f85eceeb944cb16ffcc690b0f0e069d9c9671ed7b1fae83b3be27c2048bd20edd647fefdc089ffab2545b01a58cda916e9a8e0eefb3b7d3974a9032a4bedfa357ebb47eb3a0f0e9fddcf0cc85fcd42fb394882b058d3d5708699d2f44b11a87f19e34801fbdf367947367187c13d8dca9a554ef5f9df2be16586f03128cc822a5aaf8b7c404c8e9ed4feb061d268ef271d953587a197ec943ae0b3dcf59724fb55cb7a24ac8f6dda736e3bc80bda9d7b39ad68af56d617746d3c23a0b0990ce343b6e1a1afee3a8156102db47717c850d87365d48ef1bbaa496ab336749756cac36532a3adecb53a0932add26f86fc0288bfeab1f653b35ee7c43b7e5d8a486828b1f8aa0e84bf690ca9a803ed682b011888d76df11c4c93b3e09afce6de288e688bb755d52ad67b28ded222935d7934112eccd44993f7cc64139741d4bd13d007271fe9ca24cd2b4e4ed30f81fac88ccde184e0f9521873f3c53711d7b3fa468a7acf05fd0e4fea06eb958db1d7dbb830d1216df1fbee0422d7ffac27d8d379bfd00e8a51a259762fc740c624445c279256f59c7c5c52520ed7baaf1d4099611a7c8e7201064c3ba13b3a2c657bbfffcbecaa60155c051c7a1f47", + "35bc2dd28d6fa4" + }, + { /* i=943 cDividendBits=3761 cDivisorBits=840 */ + "cbdacfc8fa2e7949abf69e2f30b39055939bf0d8ca3ba858966a2f817d61a9c116268b06a03073699983361c55b4f84631da40481327349af488621df1fa9e8c39d3af16fdecc1767fb96910a4868f1031f993ac1c7ae2f255fb40dce6d474a18e7b72302803a84a8ba6e69bc2fa70292773bcb38aa8b028037a8dc5eac80094ccef7020f969920d4303b98e2559a58dd09ce7fae0fbd30d1cfe81574dde25f3d87465a4bce878b45d71952ae23ef01f1cfaea399c0ded254302fb150e74e96ceffb283ec3cb5df20b7c7148f8e39927ee7ee3fcdf05f1ee56e53cebfc5e626ea32b88fcd5153dad7a89a8f3ce06f984764f11a5b6b33b8ccf4a1beec4fdcb0d51ad5141336e4803bad1ca2ce47643ceb36e9a3b0ab6db7ddc5778a004df26aae19acb59133f9e9366b515cb513a5ff0f051e70d05e53211e28dbf7aa5f12e754f79c36b7357185db7053f94564bd1bb48796c64f04cb57a83392754e93d91004990dd67394ade293fdfece590d2351391e92f2a7679e4c232a7e9a938fafbfb7340448fe173598a96131aac6620a1c22d8fa741cd7e81a91daf4ed2f150740c837a0aaa3c93419180b38587b12b29a6cfd9760de17c0da8f0f4033589621fa2caedfbd533cf6b892771e50bea0fdf272b9d9ab4f580", + "a7c192c26b7cfd0e8bdff565a4ef1d368b6df14d7acf837c7b6c515c361465a53460f80bfa6e3ed1af1c98dab16060545d646673a8e73e95096fe6b84811812d90787679bc23a6eaf69c617588012bd0da9252e4fe4e65f0d05346f8aed5bf38ca15f1320fee42a6ac", + "0137165b59117005eee87f3f9822ca483c62e33b954403cd79cb82bec58c048535128eae6e9488fba87ad0e1b354b85ef56ad7d28feb6003e1e62f1a9bc42ae7aa39f6616cbfdca29d8e138c3b7a24734a85972c38d26b28f53c9d121c490feed864d58562c32b28c1bd595b88d6295c3ded12fff0afb6dceec5ae4eced3ca22636590bb3234c5da23d1790d4493c8510884ba76737f88b4be07ccd28d37dd73fe871c9d74bd62f935a11073b9b493f7f4b20617bfa8581f4e3b07ebe6300a3e0fef133ea603189708232469eeab2d05d2b1d428622c33b0bf45e2aeb097d52d9e016347be0a1224aecb2918e504d87a703ee1bba50227eb58b5cdaeb37b96be2d41a2b9a35e4784ead59874dd40a14f5ebe13b3081d243982c361ab15f935d13b448a3959af2daa275d54be87c91a6a87b57df52fdb8f649aca7d869e0aadf0999221a35926ba3d00c42f353f3c47190b238c96f6c8dce9ad3fe6e54432a37e90410f02bc1743d977962e7cbc8d", + "88e6abaa0339abd639ec3d5818bbcdb1269ed9eb8a626e391c53b82fc4d73bdda5552d5281d7fc7cd7bc0f50fa6fb9cdf5a02f138a0fedd2f9ce7373863451897b9cebeee64961bff359574e95937f0238305d29c8b6cbd76b7163ecd39b00d428a9afe6daca48d8c4" + }, + { /* i=944 cDividendBits=2864 cDivisorBits=561 */ + "235e9d954415f65c88f109dfc76e5c3dcfdf7735f2c9f57500e3dbbb5ec99a28f32d9fb137eea767fe9863c77d315e8797f1a29fc672e3ffd6f63818384724396546ce99c0e8ad76ca5b83eed93946679119d42501dd23996bfee6a32a62a5730fdb1773fd66922862d8b0a579e23cd72a6eaa2fe6ba762c05c0f973232c5e1b42e316668cbf650881e53a9aa2f0ef48849ab543e39adb29eabdc360e625169c217bc531fa7256875f7f97d696b464f5644888ae4e66e283f89bca0c6a8e0fac50cf11e96fd719583240381a610b89ad697d5c37dedae1f4159249d4c3f6340604f569ddda1154af31ac5942ba2128b92f138a6404de01d3d98ef8ef7d15d179ab3a942b248adf743c4baa9b9338a1ac062ad4f9bc7a71a96bd590fbd86a8570cf8d69aa1498ed4633835a0c3215398ded05931b06d376c5928a95f3ba15295b04798e5f038ab41dace50434f074e6064718cb92a3419882a31f1fe26e5984a5948bd893ddb2", + "ea5f0f0d9c0baa72791bb74dbc007ea3ac9392f1581cd67432dffd1f55f0a5b251e5cff8beef0a650b0961ab6dcfc56d00550362a5fe3623e3108037e4fd7c6f5c27c6901b13", + "26a235bbea9337cd1a1db0179ee354b62d7db13bfd93ff0f07d4486a03d8508bff69c2f06871dfca9082c2a1c13b7dd226224fd83a49f09b7c17b16ea248552ca2f0ea46cb433982062b84ee7bd03a61a30bffdb36cd83bcfedfe5805faa091aad6b0528cfae3d51a14de7baf9ace8ee2c1f746f230cfe096eafd43d715a3e398b4c4ca3c4babe036fc5876337d734557ea09a38d1178bdf212944d37c791ebfeb527934e66f0d6c69f455a9f453d2ace410b842d75873ad6e6ae87fc7f2906393d03e08d12a2d76f63229f67844f00561653ef87998aa3c4165f45348863b4a81173ac5c3c3bcadf2155fb1759bddbfa16b41781ac2a6aa64a6723660b30098d3325d60dadd86225d8a40c8d1c6117e59a4030e82a5cc5b34ad69e1acf8e6cf", + "b403dbf42269b2a0f3ed59c62d0b3a85cd8e8c1efe2658e6ea5571ad8c1d3dfbc9b373252aa4ad0a2cdc70ca0cdb8a2718ff902494ef99df2fbe2bdaa1c012438f7ed352e755" + }, + { /* i=945 cDividendBits=2082 cDivisorBits=1841 */ + "03c093aee6858bcfda6746953e1e6cfb035be98ac5e46055e69c45b111be7a00989ae459e41b24e25836bd4e035249c82cd65ff5cbc050699bf5d2b940380d8b54616cd390c41781265e63874856189294fc1d643ad7a94927f54fac4ff6ac8f823250cf47ddd02d55104f9065daf58e8247455de385e1c84846522369267dece6f0171c8b7f86c3e8c737cc9e91693ca3850c4bd4458ecf4f41a30106f6c23582f19ebbbba69151377a517cd0e4ae734eac4fe54f3dfb61ae031ee0ae3dfaba86793ecefda2e2a7b4f259434e7c36d47b8755d5dba92d59241113552e85f9295822299d8aa2d168271ff3dda98e662edc5daa604c2dc63459e24f9c4e360515aae28a7d32", + "2db003a500f326fbbbddcbf92396234abb174a5c332577732dcd6af8f0b536f032086821ccb22e741cc3f79821e1de50027b547dd86a5ea9668fbbb71a4591e53d4a654a4fda336836fc92d7b0f4bf97214b1a1e3aa910dc6d69359e88c0871fc2464ecc27eec3c211c0b1361ae039140adba42a95d6dcbddf6dde7878ac8f67bd3d11312703cf3265c129b258c4bb08c127b680361e26fe4504ecab823a3439617c74c70b2b10592ae68684f9364b7bc0621072e4f49f7dfc45ad2a73d51bc0f3cafa32bc6dfff96d19e0e769eb7f42c07c50890a62b530340b1ce16ddac290afdc9fd2cc60", + "150660b4d771d3b9e98325ab31315c0e0ecf13ff731b4385c588f213f5f983", + "1182ac5e05018126ca12d5c81a04c854c12ff5f91d39727204a573d133c20477e21f474318d8d42761dce2b581bc0a2493190e22a7b4f01f7e72068e0482c98c7e403cff26aae197b6f8ded6d429ffb71ceb5109bc8deb708d5a4cc3f7ace4c1b7bc81e9223fbd7b0b500477ca872945436b41094cdb3fedfc7e35e0a5b96ab29a846a7ea8b9500862d872516dc3ec226d076389683882560f81e3784a128d193f2bb06707f93a7591a1b3092fd1aef71aea7f78ba4f789052b6f58a2e69ddc566cfb0043b03e40ec5d7fa8837ba81d164f02718be6802f293d13b711a9c0533b3a859028812" + }, + { /* i=946 cDividendBits=2200 cDivisorBits=1854 */ + "b60251c55d01bf9fc59ca4b205043b09898da8ad149cc532250a59a8cb3829f5b5cbcb7108b631857d93b21e9788d4eea110740c99b13e0a6f25001321b7887bcd93d300848cfbf606db9eb3fa22552897d4aaf831a7821c0f44286a25b4af3442b5184b1401c3b976eb2d3a5c1be48c3c1782fecd1e5f43de7001c8aefefd85095a0cdb3e85ba9b1847bb9ab66c3392bd1ac5258046e977ea645c9af008abea522899ecd86650dfb655504afa1dbb8ee1d6e7ebf8b26e324deb64f119d7b74366e5e682c18a1f8ed6ef95932a171253c00a516c2b361b686050be26eb81d3394db189a02224faa70af64d44ea543073f3187968561d8bd026c6f05e67845931be81c2143ce387e0ff75ab2829b3b31e94adc4", + "1ef9d183b03dd31e7023dcac41d69943d8104ff16510edab41f0c0661d0da0c5f822cb13e2a67212a95b041322fcadf6203bc22081e257680a0284d52a6e80b108620d88cd8b0f0c7dbc8adf3f693ba123fe833c71c676fd2871c83e5be5876eab3abead33350f3be71787a17264948782c01b989c9ff75605aacfb3263cbeebc914cc2e8931cd19a894d08db027dbfd2b588110fa823512ae41ebdd66de6de42c8eb240f16b4d74ea69bf6dd10f8fdb96dea26108f8b64ca07410d4c5e146ffd15f5d75ee314bbc749d997be5a56ad9930bf0d0cfa6eeeb203f675b92b4bddbfae6f2a689617e81", + "05e036d8588dcb82855d71be06811f32abf2c172658a0c71e1e85518aa003f5c76bd3eb9d3907bcf4685eaf7", + "1cc197d573eb881a532a027a68bc1930246da1a5b79945d0c296d4fbd821705365b87fd19f5494e9d2ed49cb0a22f0df0f65d4ec2d37b03cb791b47d3f706897bdf1e0394f26a123a103493964923eed3fcbc1faacbcbf4aaed38448d351f10ec957dc9f835ebaded8e88ceea930ff5d8dfe8850f2682da3b426e532f900ff06fa92802249ea704d34e059737a65eed07e1baeee2b50159cdd0d973b439d0f026af2e821a56a5ff47a4e68d62f9967bca135c005fd1b4e6bfee4f1e89951effb9ac0d6905799b4e81d54c0e1e331247ed61fe03e75521fb083e2dda9fd9b2ebff6460de474dcb54d" + }, + { /* i=947 cDividendBits=348 cDivisorBits=168 */ + "0b335c20b1fbc9d1e3ae32ecfae293fd7ca4b6c9de3bad92c91ecd9cef84f93775486882c8f4cdcb3133c93f", + "42439f833c3837078e8985fb522bd6efb3355e977e", + "2b458b7f42fc3d8cb67b579a28da1dc99681cec679926b", + "48b7d59dd65cc8aa6b255a6fac26a12ee1b69b95" + }, + { /* i=948 cDividendBits=315 cDivisorBits=151 */ + "01b909ae3c27381dd2c4305b3ba7fa1b5780e1c966fb4480108dd227a5fe6eb5a139fb7c93a5b097", + "1c2743f302d878fbaccf51709f633cf1031e9f", + "0faa609befaa32930b28eb4773965c347e3c35a635", + "02033f68a4ac7536f3831fb4e0ec820d3a3fac" + }, + { /* i=949 cDividendBits=1714 cDivisorBits=1192 */ + "038aa81fbb60076b72659136e359178d1a4f9b29d0896ddafc44f74167dcbb45ac238e1f07b567dc1a19f42b6c189fc22100cb88d5239f64fb5067a7b726475c34d4959a5f681d7bc80c92c7858d097f5d9447427cb748af492878f0f309c5e1ac528c01fe835c33ec5c98c66468287a21f8f454b4383a29c30fa813fcd9802a782f5f69831c19f7baa83792fcb0095ddda9057d9ef32cc8bb586d066c73934fc7365792672cb637601cef0d5f1eee62946ab64d0e7fef1a83e434b4d332ebbec97d2089a967a7cdfa90609a563022e3620448c7020ea3", + "7839f961063e52c55da3e4ee7195fdfa3e10b3f1876065535866c9ad1509ce23a5ccf9ba5ea8f68b57dbfa104efde2c9695a327c818656d2f9cc0299633e9d0239201b799373b84664c74ee89188444b09d55e68abdad569221bc1debbd0e10c3c8a5e4e61aed531d1dab23706edd5504c5d3ab648eba32d5db98a7cd71b3ae54df54763915971f2149c421fd4d1756fd05cbd9d38", + "078a8ec7121e42bfabe5b451910b21b38ff57d555acec522460f26014d0b9fbfdfc71d967354ca63e812c1b5689d75337d33215f8c278af3b9b4c44676167132d28d", + "0950effce8796a03240dd5241107b872976b6d774e6ed480f8a06dac9d637c486f7fe66e3ec1eae17f0aaf29bdcdf3aa66c7465607d5ad512a35999d64465ff038c6d700ededbe67916e363e9a96f700daf9962afbbaa751922115ab1427744a16134ee788846fafbcf69c011e0e482b34f41c030883afa8f4ae6110fd8a8c13ce0ab719de27ed95884014228f24456033baaa86cb" + }, + { /* i=950 cDividendBits=3307 cDivisorBits=2118 */ + "62e8eb993391d92090452302d7e903bbf2783cda35dd9ea0ec85b8504466af13f033400e4df6b3ad23be9aef9a700695f08758dba56ce5b40e513de9d38b8f38f73735a0c71f991e760120c591d0eacc6d280835b02bee96b29ba40d1468f49906cdf9326f51ac2d7ef6f2ecb51f9ac35157a9980dde46fb535f6239751d62efb681beeb1023f5a03b987b5635da9032bc63b692e0ac92a0c016e68bb00d084596049d2af8e40b48d836c72789ea177dedfe0eef05950b3991bf91b19aaf7237920f37149197c90aa77476c7d57d0c981c6da43aaf273b1f361e09c0ef64faa6037098303ac159bf59ffe68800fd78b456831601706eab1a1acfb7a2937203ba3a734ec1e35cf20213f0040a236102847526e41af4b0c7438168a45fe42237b3bc2d6fa9388ccd5a8b140c0ffc4aeeba71392b1fe5c280b5c527da17132abeac5168f30e76d418fdfab97e25a6167d038574d7267edcf7966e438eabd88c33bcf79694760f186975df23482a31167df37ad3d3bb207091056e7908071eab8ecf54b17c2d5ae895307219b5d56d8d3e23f360179ad8ea7325f945d45d2b", + "13706ccff984fb64e2d2706cb45187561e6351169fa667b3154a8227bdd0744adf318d6c6db6db5631045ab3bb74624175e4332967b43972f259644f3c78b52c515f5f560cc7e811da42ad16945888859c3a143c06cbe9a9696b331159bbd5088f4b74f3f1fe83aeb303d2b840f834dc631dc52f16616b0906b41bdf4d60a9bdb391a5d19d7b741166b6ad67898ae7923c6a74daec40324378c1f7491cd2f79602d31326a9d93f71e23e77ea9f0a0da8cdc21501cf195cdf630b4eee8b9bf5d7d18c4ab44f985526e7f0272c07aae7f9306863ed9e359b6f2978be52979185c4e82f22947e4ad5d3e2ba9f3141b1756ef4fa729a30ea26671eb94560d1072c7f7f013cfee1d062f990", + "0516929eed3076ec5f1cba49ba53f254edd89d5210cb9f0712475f9e674642a4a96125981007d11cf7c252f9f916ceabda8d1d8e184f76f71b361f1305faca321c036ac493db14e3ec1e399ee4fb8327094080145a4c34c7c7cbcee4ed43c24d1f46627359704dcbae63ab7d41abcf21ae43224382c4190ef63c9ce6d8b7dce0cd3829cb445bd0c500147a48eb2ca407b7be9bf258", + "ad7a9e68d33d19b9588cce560757bd554c17e1a0dd43fed3349a2f6400705c0a9ceff11545dd592f7102e65fc5639bc9acf3db99ecb5ca9fbf75a62df492bc54de25d31dec5dca6a0ea06943cbd884394bc5db5193f86e4049bcabf6e36c7b912ccbb885fd4cc535b2cc46ab2d4acf8f8e3245c9c2636a98fbc90c2cb2d785580d4b86062b3670eecd607b3e66092d626f50d8d66aa2456c6dac41d19bc95520749979f4212d175fcbf70a003db5f87656c17f8f71b2c496100669bd710b6d8b0eadd58ccc807211461248006a13e7d4cfb93c7362c152ca8049e2dadaec4fc97f5f07efb5aeaed7a3483d9de5257e9337f4e3396545a62c267faa7a6dbc394f9d541a4619b473ab" + }, + { /* i=951 cDividendBits=253 cDivisorBits=86 */ + "0f3efe0998cd969d2d0daa1efcec9d8d7e6cc8557e0f932cca66588e52f9e327", + "3856753c4be25e3334c321", + "45474acbbfaafd9c1e6ac08a3ef325fc44f92e96f8", + "3018318ca70541a499852f" + }, + { /* i=952 cDividendBits=2185 cDivisorBits=1656 */ + "01bc64e541ea334a405e9d7b8c19f18d299800d34b1030471b3eb26551492326d28a7be3cf8a237117a02249cd05af7b0d6906e67058080ddbdb48501e291e259307e02558652b5db9b83490f1b0c12cd6323dd2d7a22fcc300759aa867bf9df6de5b1a910f418291107bd920933b01230f5e37926634179021becae04dd545d60397e2e23b57a81ccc38285ac13d5861ad1c4367f132182c253edae405a95def12e5d81624b7fa8d641b47b02a16fc96dc2c3cbf9576bccdb834f199aebcfbfed8ea3177f565b7d9b44f34f62082b5770e1080b336a3618b954aa06a4d4e3d8908d6cd0132a8c7e04b29da24cc6e44bfd231b27c4f4c6e61614b1f0dfbcebab28da15b847a263157a38db5785f946885322", + "71738d140f57b7b042588575427c733e602595fd856fcabfed4b0aaf695774d036f96a87fb353615800c5276e69cca9a82537491161c25e3cce13c72e3a9612b03dd82f8882063e40cde6a0d0f7a1470afc22d7b3f3fa0ad7813de0a076c8b1144cd32298ce80c4c6150aafcd2f45b4b6057d0af1bf9259a63b7fd9f76feadd95f9f4af0db4a91c2fd0c032ab22f3589d9b48d00b77dad13860e7a1cd7104a4d4b5112d1e95625bf48c09a0c2d02d08405eb8b03ad6691ab28d95b7647b4e1ff536cd45f0f6c1340e081161733c34a", + "03eac375735d9b225db4419cf25d91e39cc63c97976438eadb99f4fdee5c35124a0ccd8ed72ecc7a2b2118fbf9878ea2077f4e0ef139432fcccdaaedca1632fb3e5083", + "28685ec0611dd13eff604fc8d2d9e65f05ca45114270d358682285e861afb9a7ea8de05d5834a125e3e2caf277f4ca79f3240e9bb92d26269d69180504838d7925f1c1313099d792c8bb0f7d8309a1af7224b26bd328900ed4d30097e9f5c3e8fce0062a7a0fe50be7218cf13dac8a4e83a0b8e68e4b4d3fb2c3beac996300f948303b2b11ffe09f2b5721f07260b7ba833ecd17c1edba247ed3a2f892046d408716505a05b9564f4a1ecf77afb7d7846d3fe897dfd4ae4f54cb2253dedb6482d14ad888910b11febcb0f460184444" + }, + { /* i=953 cDividendBits=3849 cDivisorBits=3501 */ + "04a746b97c1f635301dfdd1cd9adca0344dc9a195e9f5671ea35eef95230890e5e61275717228a7ec330079a77e76e85ac175071dd31513fe65a7285d6d6bf8250b083db3ed7d5ae45f44930d414084c3ea59a0e9976c1632a8d435c061e6a8a7b239fe4b93b8cab7ace9e40ea6265ed8d5f3127a3ae9ec506fa45aedc144d26f81d27b5f0a89ee950d9d48453b79ff4ee6bb9ffaa4eb64660d2b4919c304a21e03771d43a89a3b5be953795be25559d8523a336639cc9774b9bcaac4eef65c2143f415804dd33842a8f3377d432f8ed78a18fb278c203a34ed53c7167e28edb011800a55026ed22e7a8034830735e13c7a0de7db521482185db31e621f820ba7fb3e5293ac5ba32877225a5eba2b7478b0b68fbf2e9b7baeb95514944d37aa8f8458e353bf2e34d8ed9143cd40c4bdb267dae254b8583e15b78d1b8c409d8cf7954776f5f6e221907b707f10610da2f04b5577b0a2e04240851c81c836f369c4146d7714f6e8aa6fc785792b33367499dab61f1c4a7beb2823b9cb333a2cebff2c4612d5aecfb02b211063540bfd2bae3cdc8f762db0a6b9c5878fdb3c14e1c788b7b7406592293ac977d2be16b126cbc5e4edb8ece7ef11653f1a1e97d38fdcbac7df447ef7e176f79dfac837dd7b1fffd4108e5202f2602560f7a1e9482bac3", + "1b4f8c7424ae9dd455385c24dc6be143f6793a921a37ec36cc396920bb256a98d1cc9a6c3cce0b88481914a1433408f9c78eb68913a8d324c6e560b864f7ca4ae0efb953ad61b67e2f5fef6145e96dc7ea576523dd60ffa1c7401b712a17aa2f2a6d1c541c5c94363942e037d6fabd6be4f6e1a830fac9008a334dd332f68ce8b65c73113f36e68435bbe1ec23c6a9e8a25da75090e98dd9c49ab270b3f406983fc1ebc0b91fac867e0e09d512ea28b19c15e8025cfb04919e54e6cc3d4370434a24932fff6c373b652b310b2b76a402cf57b8ae22527484e9601238debcf7d29879c8e22051204ae26f5ecf05e8d40c60fc2bccc7ed62c2f728c288c54b9f88f0ec80bc4d306c9bc670a37bbef1ffc8372870b4acdc9e52e53ac6a5663730c3a5335a15d430319b3b5b5c18f544ef470d906e727f895fa33af7a282c934a3add5c67736245fbab4fcee49bbf6a7f98bb2bbbab04270ab12e5ab99bb3a47a48b29197c13b6f19a9ff666c5597483b00ee87c246d55b0d5c1cd5c054e5cd0a98a6f1e3a082d71af8df2b74cf9774254415e7cddc19911cf278a4b5a8bc118f5890b0c81ba7bc447ec9eb0026cea999572fa155d81663e", + "2b9e8cf1b78adaf7b7f5c0d49ba7a9a38ce68a2be629c6592aa77e28bbce1dc0dc926181db62038b90d782", + "19f03d2ba3e5e1470e32c2bf6de3aed0fd7014c4ca37a95169e8c14320121d0d071451ef7d58c1a3ba15b2e3522a258a587b9e63d9caf0b043089e1f9ae33b2c00256d2de21732df38abb4867749a30a5adaf99c61cd9d87c99b2d83863f9982e26fc2adcdb0fd1432adf2dc802c5abac49bc6243db99fa66a2654bf744205af61cc0f8447bf0c82bd79be999ea63f99d3d5ddf8c4a9ed709e93264ec516e223f2844109f7f625d06317c2cd7248252da3f1f4fceb39ab83afbf52e2ff513925647121edee268d60a691b7bcf86bb981f423f5cac19925a03ca439c64d43fabe72f3ab5c26d28456caf2b9a471c3dc7dc6b3cee5f5aaf303b52d36dbdc70446212c895f89ed481d8c87148f2ac1af669c0d3c0628cc4937f9ffb6a8a4c1ba418d282ea02a688b61ff74f04bc8a67403c06dd0c2378cbe15c5384c975222afa9f31cd7346f5005ec6c24f769e2535077e12cd5b84bfc47a76153abeed41b4e26f2969631274c21f052bb12e9ae3da7a347e86e507da6f74a76421d9414e01ee64b18dedc1b95a223ed14de62a82d4c754e6d846e6ed09d85445dfcf929da7cc030b4edf3fe8cddfd1fa1d013621494528bfb63f0ebd47" + }, + { /* i=954 cDividendBits=2959 cDivisorBits=795 */ + "0ceedf8e3f3f0c5355c780870a4bf3fb58c010b5e0e446d5d3f3e4590f1f60d82e7c0495a112db20e9cd45948dbdf099ab3130c609a9b4e7fa0fff536d5f7aa9c00221bb5444a75d5bc745d7f2b618bba169cef5c0d78c2a96f29fe537584f79b425106dd157648bafbd792b992981c4b096f9e31a451edba5594683adcde1f909724ea44b519904a52401e3c670b58271d61ffbee56e18e668f04fff413911a9215d073c271b2b1f2bfeb6739aaee957b754acb3142c926ae3e1179e47958635eb9d54cc32a94fde558dbf7c0980e68cb78aba125aa6a6f0626b804d9497aa340bac78e97c213cc4f7fa9043082b58e53951af1fd66f7cf11a1273c00735e4d6e15a2ed9e88e392e6e7a8b154321a3dc00a065adec065ad988c7631c9af87e2882b1954ba6f8f61f123c2b60ab3b78246a7ddf20cfcee35c3cd66ef087637eab0936766dddae9b6973715c01ac44000368d4c04b2f89a73e2b27d8dfeef2964d7566f07ce84c5fce1e0f08d9bd3ad439a47", + "0125fb6888079945ef65561c9d297e5ec97f931aadf8be2c289d1e00cb1b2c2de387811a846c72c3b66eae4f8b239420f1dc72e6c452fa2005d06b9fe0fcdd65755a16ecc0e9536d251718e40825f612222a33cfa29acc93a4ba1b4786afe45528e48860", + "0b431cf7c88f1867fcd92036fd8bd2e00c0f9d12cf8aca2388ec5e5c53b1f9c464b260a7621da5bbfa181d6487a80ecc511c80358c532be20c53ba03d5b0c677efda248a65506ac037efa2e57dd937af46629e83d68596f55de633400b628def991b23c151507def437bbedf7f6b485beea0a162cfcc90f55310123f545964efb07d5762e4356052348da364b91702eba40f194ba445e3026be64c4d7dc72aa58075b113a848e120994fe023c315670401a064c5bafa9e51d9df635b9b4200d9d61ef1758a61d0c376d5dc5ef24c6ca24d438f317de0f1cfb8d10d8c79e82773894bacb4ec6c7c738d12eb87938ff3b56a62a19634fdb44891a5f42926dddd74654d65310124d73b888e390f338cab", + "922b5ea24370ca4501542ca81b355c2f7fe22dc2b8d9c6b18284b17a2761dc1501df7ed4c2e3700a8ecc89a71b0f96e0ce7b8bbbca3f6e0272768d0ccba735ce02ff8cc28e345b3ffa637b1d178c19c1f8375ba707884b77a5e6eadc4d5daf96e80227" + }, + { /* i=955 cDividendBits=3217 cDivisorBits=3091 */ + "01c48f283420ab53f3bcb49f989b14633f61bfe3d9a4b0f1dd1ad2a3b80d0c14234cc4034df03a09ed38ba2ee4f86d6722efdd285770e2c01181071179b582cbc877d313e32ad43bb521e963d534c7f1890b673799e7ba70b06d7bce047ada5597edfd1c894a4eea069fb17a3c688ebbc3c3bfb8c47ab74ebaf2e94fc2d45eabf697e333e71bdb042eba772f161d2c9b58964e9a16178add69092a633d97d3984c3878323e6e18abbf2eae46608cf0710808702535434ae3ac68e31e3a23d52e7c6b6595c79dc4f273b1c27a11966c3e6b05750bee552afb093a45e86bcc40ce698c5d24f30f55678bf1be6e15ba89528edcaf2908eb5607bc4feac3afb899a8e9082d07f22c2cb62ad4f42798af3af6fea2d013ac728f19768967cbbba44b5b6e6d307ced4d336c86c62a951b1e0d364c289a84a19f42f1db75c7970ece18012ceb8a666c7c482f4e1539f96c4db3fe3e843f71b3282b8867084191c19d224f05f9fe0ae4c6b74e2669d531289336106b2f091d162681c2e335f1c117c775b9fc72a54385e794bd47715a13925474884bf094", + "025696b0e7db47d3e888ecc8b55be5c91ce4e85e227b0dffaf0438aee3efc454db5a317c55d76abbfbab4386880d6f6d6963da5858de14e6dd8ad4d88b7fb59b7af1f2dd299776d46985ecf1e3c257c4dbf80d1eea7b9142686a687ee6033ff19b148cd00bcc46e54cb4d931afc647abcf72eaf1cf5e898e2936bd4d3d854ad9bc7d17089009c6dade0bc0bcca76afae5daf9dc4132455e925b504c7dc6939175aa1cedf6b143ed974e041608a0ea974d7d53fddef3bc98c6e8241447513d29d2e7332d0bd24cba33d4b4fa9c3198180cb4f7af86d6459553dc0ff4a31fbe17d9fcb95c11fa02d2889a8a27a796f421ae8d4dbbe62ce55f3d000e84e6d17bcdd2d0ab34624325cca1eb42fb478626a27de35c82b43f62d493d6a45dd1914ffba481ff6e00355382e31d61dce1f720efb47abad2c97d327b8c38e25b9b51318a794c82fc9f1eb2421efc3ca9aefbb9d545c6da3532f47d7e89b33fc2ea57d09d36f43798ffaac4352ae68e108c22a7475c1146c9e513d59a0d88caf684c24fedfb1b85e", + "c18c1590a60e8c15c1f840a22a68eb51", + "01d2c248fbd89d3a4c6aaf95b7babff7b8318a221009c052e7a1b8af6a469cbfd9fd907648bc5693aa94d6f8d8ffad4fe3feffb498390904c80a8e4b1d1bc5c8f880489923a2b06743b8c879463b996f4dba4832d926794cfa0f290fdc6613364183661263c4f620fc37bb4811ffd3bc0ae01fd55bb67b7a236f355f413d061c1f49ac00f47a56eea7aae9d7bbc3928799fc9d118ad72f06e6b6d4dc661f2d387396b7f4dfa54b99dc0eccf470016bb833e2e4af53efaebecee04508db35966c7154f5160d59ce140f7f3ed076717a66ce69bd77a64e923327d53530be8ea18e893e66e6fc1b93affe36c6dfe94c8826b06ff8e384081d55273a9fa2b32c094c3a08d70a8aae0f0da0d8056db60e12aa3b424185d269ce1f0399d43090de96cc4635346e2c6baf2b59e40fc53b735a311731b666753a98149b8bab4264e59ae63a10ebf7b5e686791e803ee0a36bb2ac6955b816b0010c17fe8485af4e19559134c0735d9f1c0751dfec769fdcff524263be9eecf8b66686b6b305dfa874894aa250d6" + }, + { /* i=956 cDividendBits=1340 cDivisorBits=803 */ + "b746ddc6d9ea7d17e524ce03d0486468b5afb78969160392ad953626ce3c1fcb3d67245894e8b495826811d4aa210511499dd370418129e6c8c9e5394d3be41d969f2c6d4d8b0ee99d9917b513c214f994c30debb2d1dc84b82a44ebb65559e6d5af73bf17102a3b8d044d1b995b1044701045208f4c13a8f392732cd274fd6b817ed4c44b88c2f640a6a2500bf7c22a9a32bfd1a9252e667de6c78e28f9c28ec36205b32b9393", + "063f17ae06f5831fff25eb82e4215b52b497c1e75e4216fe7985423c2f068c4f6f7f21ff32ca3a011e30ba1a26153298584931baa8a476d68bc9fb24a29b17f33ca4df77f019093ac56e61079c4c108111547d9e3fa8244c0a8bf41a0250818591517a87d8", + "1d57476727b1a4c122e47619c60a01f183a2da251807fde15665a1b6f8b86dd1efc0e96b509e654a67f2a7caeb4be181957c0b83b3babef62a18335bd06897af73ca59", + "02c59d92bdb6f8d8294299144d5193cd2c946902824cae932018d6753529faeb08e3a9d9c63d91c111b8c197a7ad9eba8fddfb4b5f4bac137cc8efa05428299fd2c9a80d32ceaa06096ed8a0f7e179ea5ca2e5044d834891eb2b6c834009670ae60259e97b" + }, + { /* i=957 cDividendBits=2810 cDivisorBits=1817 */ + "02c9e8763f36c04abafb5daf623d1eac8e5db159282c14312b9a37f7e2bb843b7699c6d7ff4e1ff7b4e2dec53f74a5dbf3c999c647a676d7c32ccb96f58f723a0d3bc065cf6c4621414c467843f3a7f536f74f50ad754fb9f826c19505708965555529b6e67a5260ca4f180c2bb20b6b9403555addf63f921dbc890662555895d5e6fb369c631054657562f4ab72974b0d1f50def8ba9f1117345e333621e535aac09732410b64bd258807f85d1cc538aa643c8468023f2869c77edcacc9bbac25393fbb9cfe6efc952dd210c442f83f536699fe747dc702d59913f904d2557b6c39148ddcdd64517f242eface02590bdf40714960f4ab8336329219f33cffc7e44ae916bc5c241453b97b1393d91b4ed2b5a4e85f8356f91057da1e36ac310a28a885d9d5fc726816bdea2c91181b50c126e35177ca9ade6f7f869b26324ac15dadcd222495615c2cdce98f6e79c6242686ec39fc01383bc9f537aae0b41061", + "a97ee559398c681d89746b4e786927733db0fd9c4588b19e504cb26c7323d0ebf461acceda58a81026b0342830f04ea4c294e9d2b546e2997a1c85df4f22660d89059edc0e4a6742b44c77fd32381790e344ba7c2f554e795865e82d7c039510dc1e61925c0b1ddcbaa71762335122a808ac663a368129e696496157f291aceb6977fc94f2a23c7b4fd71bbc03c12f23440c5c617690a675c068dbf88e2ead47bce205b7126c5f164abe07d7ffd5699933e78f97e36937289eb5fb93b40b413419ff1ddf6e5c38ea25928cf781689a3f0dfe11975b1b45792fc892eb2bcee8eca0f3e1", + "0436429fbc1ddf8565e9a767cadf6d0e6ce1e1206bc4e898265039db88838f3a147ed24cda0f5b08c70820eb85cdf09d5f04816ca2ce1bf9f4791e5d97f3d429ae75f22e444689824b7c1e37b444f5365f7d121567c06d189b9a32995606b6ba1a6c527978be06bba8b4b312d99298a604035506435f8a4924a774899f", + "76d691687e7b6858b9336fb836f2f769281af1d1442edfe2a27ac6b026741cccec1f93e11ee3c6b11ee9e9beba471b561ca63a8d0f44233b5ea76bba39cc87a9ee1e218de8582dcb6d77471c6c5561c0ff38b1562fccc9e858157bc8064bcdfd88dd2d4d2b474881aa6615be7701b6be3e615384fba40440f49c2ea509919bce7bd4c9bc0c5b5c452ff76cab727323906b593b71226214c452ad4d7d8f817ea23687c5dc034d2a6a40f60f90aae09cd0210b079969c4091a1f0f14b0ee89f2a49478797646945f89c260b104502e45e159323d34c0d14990ebf9eb71a561b37d452ea2" + }, + { /* i=958 cDividendBits=3763 cDivisorBits=3591 */ + "07d02420c6d1cb6440e1b2f42b7b3202b46ac6cbb7e405003a093952cca084fa7bd4c71e41f43c85b056b6ec4532e40ba7ea5fd6679e4d197235766aad775c7599dbee2142fd7ef9583a47d29c68e8ebf7bcc924e580bd3561aa6eae75542f543e281fa3cd1928f39c6fc3b78ef7bc9bb6d49128bf521f8ed23566fe5d3a95903304fde41b9687696d3681ede51080d299e6a329eb460bbcb331d796f5211af287f856f4457dd73a50ccbccce92cefe3a8caa9eaedfe0f57ba9ae15842adc14850c80d008c5f97a2c5215648490c6acfb316185f2630d2b4d5a97bcbeba223281dadba8ed0aa024133fd07c98a735873c8b64add9bbb24c3c7898e2ecd5f87adfd1a72fa0538b1402431aed3c17d1b5e7edb339d85c12e485261ac1554e471e7ca4c4e0ddc627ba52f97a2a4cbd6580fc9c138efa72754118ec0d015d206588a508e0511e1f7a737d0c5ea4d1a50ee5ec049a66d4dd0447e6a796b366545e1912b58787d83302ba175e5fa46bfb199348e37a5e72edb9f5624076da23733b2c4f398dbc4cf14832aab98f3b3a205f44f785bfc252e75b03b3cf3a89db1b13b7b34340af75e7d63e1705297cc49facfcb02178973afaf10d9f3370ed4c2b6e580870eb223ed683443c47099049c936a2cf1675270ebcb5b", + "b23e12a54a2c8c7b6419016d98d2285d0c650bff408449a64a41091dc29c05b6995c04c635286fc078c2946e3b0cc11acb835d596cd3dfc8410464e62a4cf4230069bed1c11ec96b93423fc0e04ca2e9f5949852e594b70d48432ed8cd53c9b26c19cf7cafb9270779d845674f6f7e58a9ba8d4ef64cf85513514c783f6008aeddbf31c488037c22f0392fca5b3810748069bf4fe6571cd0268cdee3f5bc438f1efcd1dc3709104cca3646c8b383b1997f0bcb10c954f837ed81361e3804cf941b759f8b49959fe67bff5d7cec616808c56c0fbd48404ea9149c7c8c6b896528bb8c19acaf7826856c71714f2bdb3687c8a0eddc8b318bf216cc2fc9998bd538e3c65879fe4fcb9ec8b76a3bd33c267e89f932b610c10f6d4540462ad36d776bd91e024b5a8db5680dc924e99702b75716aec8ecebdd44b2713b4d99203842cc771277dfc850e80f5c814905159c0b79945846325b870aa6f7a45bbcd5a9b660af83b60bb8b5fa740b0bd343b3809eac20c4ea4836bebe6cb2999b7507ff7456bb755a912e7b5b3eee8611e84b476bbf933738326bb870fd9b6ce2a93f41756f06fea48fdc3d0b7ba8999a70468983c99a0ee80e4911685ec252c8d23fac068a", + "0b38b1bbaf91851d5a4cdf70d444c4c227b9d921eec195", + "26f0188ac147b8a1e1d4ec7972124bae1290adb8ce76fcdebf08e323e8e3c39f66111091a63c765c25190c34146af62d97aa8320cdba525333bfe1481325facea672bf9c04550732118af95ae04316299e01999b8ebd7d76d038126a0ad2bc35c1c71226d95da4939b88a3610819dbd59cdf6e47ba1f03cd24f3ffc3dfd766051dc8734f9ce6aee22b49fe018895f018c2a9ab121570bc371ed254b6d49857c52a1b098bbe90ea78d04fb6148aa97f893bbdd40f64f666ae86e49e906e9083ccce17920a4a616f49d8044427c818b4a2b621e45ebd0a605691c05b345f65ef18ab2c1bcc6a61f711f31d3af5a487c1e390f6ecd7dbf26f11173e45a5dd73862f5fe97b86fe08dcc5f7c890cf453e78cd5bc12271c4304f7de1302ea7ded58cf68647edbda201f86b6cfa88a7706e887d5d74f69d6c8adc3537461a6c8dae0a70c6ff0f882eaf5b34fe6dc401264d80e22b4a638f5f844a3efa5d7b79e3b1d3e1bb86f6ea0eff3dfa0896c3974d8ff3900383ae48282cc77c7d3aaf98f601db08dd18c49d16e6bce3da37f1187bef258230e300d89fe5f8b8d33e7ce83227c4904eed79514d9ae0a647576965d98e35bf0790e3986b582adbff1e5f32d291f309" + }, + { /* i=959 cDividendBits=2713 cDivisorBits=454 */ + "124a11dcde7cbd5d65721ec475c3a48439bc8df49264a3f24e09d971d27f8e9fcb955b0195184e905d0416e20e1634bf9a89709d53a24d62188b9224565afc408c287ecaf4c7b41a637c5d71d701635e20c2e33b3a3ff2dcc4d1fa97b52c6b98575c67bb17f9828e2871c26ef7e049182822177524fd3912c03fd870c85b828dee745189e8bcced63982c27c84298188fd8617d6f6f3f926ac6fbbbb7cfe6aa513873025807c738df22d60677d4e88b96fec48db1def0050d65192774a70c3d23eb3d5875df104cf68dda44406c23df455006c2391a90018d22b9b0c90aaef4e3e53ceb7c33e59056c14eb9d04f7d760d4ac77054f240c501912b4b1c94319378fcf2fea3b34c34bf4d23c8c7cf751215e3e69d2c44d3cb50910ba29942255ab6aa2f3fb046c03f0f66fb0e23d5f91e746440d13d1d47ae286827786e0127f36919027e404a68096f46aae20fdf72a27e12503", + "22dfe86c95944f9d0a21e86b9a464dd5d955332b4b77f346e733bceec094a909e95fa22bc949b1ff33ff0bcb144c88b1e7ec16f6541cce7d13", + "8641189a591823f1d3b31b2538479ffa6581edfde6408ed6d804748088233df7f4d497a3ec49b6dadd7f8aafbda608d8fc0c5db4f38b9daee86a9b2dfa1f420b9f8ebbbd60fd439077ffec65d0787d5db1fa00ac3e8091cc23f2a342f6c37e5fb10d0992f52b47c4b461747af8c587c76e4625da880b2cee90315d0879a4b0411e6d892d39c6966bf52a9ed2640e1f41e163ec399df93deaa107e515b07b4b8b7755fba2481f7e920f5f753b6383f8a987d2381a9bc94cccbc78dca6b1273b2b5c3ccaab1a31d8fd34d0589ac426c6e828c10720990eee035683925377206e406def759aac074ff05b834b65c615c2553cbeba91870a35516ce7c034befc2794358d660dbf9d734960d1b09c5af042382c861c96484bb75ffa74", + "1c4d5e2ea39d59f88b34199857783f9e52b08455c7b9b1dd2dcac456e2dd20e276ee6bb43d1d6d44237bffa0b6a04445114f6bec51751eea67" + }, + { /* i=960 cDividendBits=637 cDivisorBits=175 */ + "0d388e04f4d442a9b647ae3d58b193f446cec635856219cc3414735e79010f9121a7e3eea7303c2ee2fa369cea55b61c425d529f04d6c9f2dc438681f123601f9a6a28832f4eb67a1ca3cfbbbcdfacef", + "37d94ce1c87c5384d691f0b85f4e17fbdcbb0b73b282", + "3c9a215f3dbc685d623085f6b122c1be6407df63a667aba3f09d852601da5bfeb7f9bf6661890ca3e66944540978414122e57bdf5fc2ae92af79", + "1953594675876449720b35c038ab0415eeab12056f7d" + }, + { /* i=961 cDividendBits=1051 cDivisorBits=721 */ + "0733a0867c3708feebb62d5b2fa5484e2fda3be0d760fe39fc6fc978920a077d20e36ace1fd3820de5e7e33819e01135d91a654161ec3d87f9c4d5097518e30a7f7c7fa07026dbc447f8d3834cf0d547a78c4418b6771206e9061b2395a163ddc63feb1de1f0e32176ec8ee644f6481fe3ea935fc188a0cadd6acc0d4d84a476c12d8647", + "f1969d5b9cb7bc0f7e224d60defe7fc024cdbcc527c73273ec43dfa9fe921fad811dd10defcb45c6a71e21d7c7b8f2cf9896bbcdfda70c3948e43c42847d70744b220c0a18c4ff0760a86036fb9cb63c791197ffb661f41b1b8f", + "07a19b3d4618b16cd2f8802db4d6eda54bed3bcd34efa46526c032675dd22ed81d658724bd594c411cd4", + "e08c1a39b522b0789819ded9d890d76e37c4c4c9dc8475b3a9eca6fb8d4039dba595471ca5885727e8dbcc8f57a5fd32cf03920d456b6ca050a8c3c52c8a2e5e871095ff9c938d3a1e1fd1b626e31cfaafbfe896b5de30680fdb" + }, + { /* i=962 cDividendBits=1361 cDivisorBits=1337 */ + "dd06fd0107ef9bf7b9fe2e83f43b4b06a38bcbb5fdd8585fd48ae7088d4ca6700681998da835da72de353f0db56e15d2310fc2b4524f71d4a1d0cc6ed020f57db8a59f953410e92190051cce34cf341b505659fcdca982613286d1c611403509779b565b6e5a1b39dcaacffe51a8fa10ba6b62d335129cb4dda940f30f45f35c10117bf2c308f1ae3804702eda4278ca2758bd96155bcadaff465ef4a43071ef05cace70b06f15d54f52", + "01abfde95dbc61f32259d66123e7ec6db9e6f2c77ed860db0e07fe590e5c6edc3e474f2978036ee23af2aaa9c163636d97390213e1cc7087c731e31553e38d5ebfc49876cd1850805cbc3f28ebf828a8294f75053ec568940d5a187fecab3177596e3e60d7a9e7a1a370d697fa22f7ee8c99171adc1d56c07d891c65b4bc5dcf5e65c04031cfcde19029b3ad1294dcdac37cf855c5bd962bf61b60a0a717e94e29421e5de9313914", + "8434ac", + "018ab2f7dc22d1565085ac162699a4facc5cf2793a5f0664b4142ae31040b11c742e2a3358f8051c59d0d8d8b257275181ba75ac2f9abc67bdcaa76d7b089caa3b44e20caa4195e00065c96d4a6889fe1e20ce995029f9e2ea4d96f4ea6de068b1aea5df42ad20af6e3a4ab5f93532a5e96cbb30081ec0226a9e2119e2d23d1a436edea31befbdae766d6571df1c8837f6f3d9cefe4e45a1a218edfb062d1ecdff6cf896fadae5e2" + }, + { /* i=963 cDividendBits=246 cDivisorBits=228 */ + "2ad3ab60ae7bbff0dd6e92cc03fbff7892ae29fdcf65821c024ad18b07b0cf", + "0216eb0237036c752ead13d409923a6abce7d5b5f4805255f516e3bcd2", + "147ef8", + "0155a0fe4c16796a9ecdb27030b8b0305c001ec30e8eca9a548711695f" + }, + { /* i=964 cDividendBits=2228 cDivisorBits=2188 */ + "09d0cbf6c2a7df2a6c2ce8f8f9123360a5132afb517558ef1a37edc3d5c961613ba9566bbd016982dda2035ed0774c30c39fdc87c559b7d87d66939980e95ffd5ccf1eb6395011302b9a63439d9d8bec23e132d0a53f8fbbb3bbc3bc38625abed16fac1be8ee79db5458c4cbbbfe78d3371c6b11e6ada6ca0030dcf7f643dc25dc81084eb4af821b45b846b0eb68f91541dc5850bdf388cf5456f9c1216646af3423b75b5ac415646e119f159df52e755db0e7f39f2276484c4b765ffa8b2043e73eeaee6c48b20cab999f98d0cc1bf24631ddbd7255e8fd85fde3bf18d4f09474d938e868b9d1a75cf3f2f34532542d97096e91d16a540dab12ae84361eadcf1f5c8a178d4fbee10aeecb0565fd13656c02d61d19b7d6", + "a4d1ddeee91cbcda43482bbc0f2d50801c4118f7f29b0a694126f72b12ac0728cd39fc7d7e3017e09dab54265936a4f644b0ab63a9eca48ef18181080a751d1561f429cfc2a138e8ff4982e563c0f7dcf1168c0f63fc18a755aa7b7915d0d4b750b2a1cc86779813ec7a84ec864d5ae5e211fa2f3074bb04012e50dec584b088af73d57af0865074aff10832e42971e575ac407428e25cc80e6925b4b5b28a4243e792694cc5c5f6a6a28bef7f84ff7691e27a8695b551febc53cc47ddecac6b7715642818e39f5ee1652243988f59afb99b44ade49eb5885aac22334a149344696c4d2a4755d6c9474cbee69b98f4cfb84e254f0d277aa0e6e2388b82ccc4e95911e476920754be37272e4250c982e781", + "0f3ee7a2873c", + "686271da23c64cddac01b9ff841db28b0588625aae9f1d8baeb76b7dcb7bd8e75672510f0fabc4cf54fdac7d8a1401dd0bb4786cc30e261c2d004a232e6c86afd66fbb825c316259a93c451b21da4f17a9213c140eef281675538655666cf5f5d9078be9851d54fdd6170ef56386bb2fb5d3f4eafd6ed6e55af6f17c6fbccb53274dade72253baa8d578b0254ba8bb6d59caa54b237f2af00f819e33adbb72c53380259e9d531aab11c3bf5ea15cfb2afa9d79587d3cf3c20fbf1303ec07133793ebc00ac6474778ecc3afd3258960887cf8e319a705a781d849461c35413683b614925ea815aba19bcc4b21bbc116817b6c2979d1568405ec8764b11c808ee712aa46bac846e1fe007b6299a8f3b46e9a" + }, + { /* i=965 cDividendBits=3291 cDivisorBits=787 */ + "068225eeceea6e68279ba6e99bb7428859ad56e453c84cd67c89ba23c17c152cd63b571315cd7ad3afda513fb5cdcfcf1571b5887025ee5acf8eb1f10b0e5a9960c10aa15839d8b9481629a3a983834295e0746783020e88f4259944d22627cfd208a747cfcdd3bbc7cd6b74967cae764af834c8a1388f9b580445d6971cd0c62585c72d52252f1545fcd4318a7c6f428a110a1d595d2f064409572e523befca947eea84e6b7764bd2c7a676f92db8da2553b76d705719040e944420680fd3bda3250cf0de1cefd06f050feb0c939d2534161f95dcdc3240747edf5db81f595885a0ea7025095c01472cb7708c0fec0860afd7b1034f03fff1157b45b8982dfa0914dcf294fc607603ed210419e81498be5ce4301d638867a1db72b246b9d9aa5d44632e86dc3a183e8fba52f2bb08308b8daf58929f86639ffee2c924dffddfb0be726c7c20251de901f6f73e4b482988717f4cbad48e8239f4511bf59e50cf6554a541e7dacbcc460b15bada62e1a441d7e5642c6a9c5bf5b2c7718461922933cae7927fdb521ebbcad4d8af3092795f5c1cb348f8fa6541bb4ba6", + "063a01be824dea7387c792663a7fc8217bdd2f3a697b587698a7210d17d54562db86f0e3a64bc7680cbcffea6aa00b9b134174668a2ecd87f4a644b95ba05d2185e99ff5ac7ab7eec49c3317700fb5eff2073d2d85f432c0fca03347092336435c9504", + "010b960527676675025d3fc1994ebfe58ff1aed6a7507dec3f3ce8a16a93722cb0dbefb9a6bcd7407aa64a7bb6f8eb719c9d2dac2b0a1d06c4438eb91b04d8aa4262a6f1af9e7794a63c1bc06876567ff92b6c6a4ac9066be32477c0e7aed0d0fc3dd6dc1d1cfc4ab0659a5e5b1aec9b93429d246c176fb3bd6fedfced5c6c73f076fd9cb9227cb02ab8592c567dd7d12c00e34c25efad76771686b2fa542354b0d545320ad475dc71f093da43b6858e788af70c57fc8c546ea4ea76e47404b8469c6324766159aae0eccedd8a2f9bbeb0d8fc9f1950491798c8731ae3eb29cbb8280fbc9d06896048aca61c973a3f83048a8545eaa4f5d98a34174055196fb1da4aac16e81879bdb317f3c2bb92f5a32ac9d39ddd12e0251cc48a3df262031bded14d6b29a65271f05387f1e94faef55aba6edc15a97f291c6c", + "023a566e22a160950c3e76b2cd1f67f874477c33f222b0e823ba8fa47601008728897dd69e8b95af63cd1209ffd6c4ccaac74ffb572c08e724e61e1ac7b9dbab0316d1080d2a7a8dfbcc4897b067a2ec53662fdbe626212fd3f784ea60c4bddcbbfdf6" + }, + { /* i=966 cDividendBits=331 cDivisorBits=124 */ + "01e705c3953a8c89874f04981d887994fb21e9f3c6428dd52d28d8f39a30dd8f41faf332cf5e6c3abc4e", + "0b8e7c48169d460f1c9432033ed035fd", + "2a247639a3412f6ff115b97f998abb38835890c0adab4b6ad9cb", + "0230b4e6dabbcaa58b3b5b86a59a77af" + }, + { /* i=967 cDividendBits=2069 cDivisorBits=405 */ + "0e0d37d8bf6411e0238f4ce038d8a3c71d59b8647328662f42dc378e4d722383b7554ba6197ae0fdf1ad5d32d0310571ee63ed92a99547ada16c81d81cea27d98718ff374dfe9f36ea307dcb8499b156e186023b927940d790f7d8bb08f84e3818013526eb21de7eb0e60332600994424123d74d548eb3e7ff470468648478536756f150a1178e97c9bf2d3eabfdef26c3d173c8be0ddf1ac1d15537c42a50d079c8f329bb5efdea974054ac3e78ec4cbd1bb3ed43603b63f007f56fde79e36e55fbd37c794191d6be1c497dd24f23ece4b0f8f3c5fa896a170e3b3e3298b83668cdaeac8f91a0aa896c696fe8e3db2f30e3dbd88be404286b4a8b12c19acdcf6306e8", + "1fe59038808ba29af7ee1dad0bae4b49d49f5c07f772c9d666340bcf475c4b9cfdd010e76589651fabb636213a77926a33f620", + "70c6ea557397b2da3b61acbd6cae5bb01f381108f48ed7863f5f0afa22dfbc20a77b1d38bfeabb684e9af2230b2db0fe5014fdc7493df622354cbe9593a92e93b6463f50bdd545157fbdccf07a936330d4193e04dd4af8eb1f400374f93906580743afaae940c156a96d2b5968699bd43714e6d2e92dd7cb77f870bfb0910e5757808c1cc2b4cc7e66adfa59f6bd04a55f1775a112da097928b0eae956b2a7f3bc514893deae51e7d3a529b18222bb623f297f698a5488b4bf889d93b50013b0f1b653ffa487506ab6a553c9b57e52c0", + "18f8a66ea26a0b4d319721d32d94860350f2811074f1d5191ae05ae00ce099cc5babe991aec3f4bd48f1df6f3b6541bfd42ee8" + }, + { /* i=968 cDividendBits=2661 cDivisorBits=2549 */ + "1389dfc9167ce0a74c3b0b326906145d9384d5ce25b9b0996ba221980df8764c5c57ee7d9e2412b6fa17e7d78ff4bec8c4f73b6d8ff6a8754b526142284b4287df5c681f73ed3cc04cffbeba081b1741ecc73cde1781622b5db18227d86a562ac910c33953208c88408f5bb5c93487f4106e0388d19997d5df810df5007cd23065f70df3079236897f15c2bef8f484dda188c42be4e31ec43c7d3ca8f92b2885dde2e58cceb912d53a4d89636d85e6afd5ee17bd5665b6d12b038b0ebd9670dbda4f1e46e2a39d94133d2633ad5e0ad5394d981505d5e477f21c1b713a1c58bdaf39d36a74ccf7dfac14b1ba943fb54a69792f591211addabd0b22fd1f1b32eca22d6e7a1afca973b9333ab5e5934455291bc16ae950afa596a18e391fa08e4ac1cbf5105b478ddfb5971a489b309f3677e03ac37ff02f7f6914569c6f20a16d0b5b544c14ab8a4ac3c0638c39", + "18d3f12d1c5ebfcf93e4b39f01703f3ce4ee11a76208bf2e19479b795f49c174b90ff281c7a6b12af482c0fc4f355b50c795f3c19cf73bc9247974115cc65ea1b36ded511a21c9590e95ae01d9f82cab16bb8c0d4bd589b80dd7b31eeda55d690a61436bcefee4023bf581806fc7ed9bb37b39e737b2504129c25478b93d2ea42f410595ee0077e4ec873af894f9497886da7cae2bd832df784a4ca04847076931d72c4746513852960dc5a071afafc3d1a72c4c7da3b8c3ed6f799704bf52c2179a274f2016c6ce7571baab22ffc6c09d898c7482e3dabc4b1d63ebb49e01243c4af6ac08f529d69e110be7b821b5ef9f54e87a958536458ef9797b2406086174c4f0a3b741c71959aa457fd576e86f4617b2e94e30c0c07794b6ec0ce4dc6ec19737c2b171c84f354b8c4133884415f371498e4b34d5ae866e03e7d27c93", + "c9763b1b61c6acf7f815548a2581", + "0c68cf46b83498288ff78f0668fb561a6c0d9c1d4f9ff1af6f2fb4884ebeafaba6c98cbd07359f532df7662632d32279e339557ddd52d239964642298f87106d2b1f9fe3994cad4c8c8992b9ba1c8845754180a1aeb2c112eb8ff2aab0087192f7f4279697ee2a86a56b6262639d9e7fe0f3945a3b66a27dc1c20c67b4c5568e8d518e9bca6558b31c6601cd76cba12bb40ea6569482d2a5e5a0d0e613f000abb6001e4d45dbfc4a006683c7c30e8c3eeb4aae89778cae5f0d6ab947040e797778f6758a5ecd69fbcc67474d74511133b4d623952644e5f30340193a3ec4b5ac8e507865e6501db120c9bc532215e20e0a15de94752f2147243cea28a58af93038f07339c706e2879ae85da6650deb92b68895f00f83f92bf88940bfc1e5e51698914187d21b4353d24388413106dc0f21e8c9ccb5a63cd2f2a1e420138726" + }, + { /* i=969 cDividendBits=758 cDivisorBits=459 */ + "356868a1c4bbbc5ee02ff450a5bc0e1567f5c8da42e2999241dcbd92b565179dcab48d40cbdf843e71ccaf63f1e567c8edcc1e7f036af090d97ff26fc4bb31dc147a82e4ed26707b28261a7d5ce83285dfe0cd7f34742f6a618d6339c12e8c", + "0614bad4df4245ab396d8b0067f4c1a25f9b4a8d9f393fdaf43a4a48e07bdcf44617aa64987faf7a3490000933b3f8490add86f5fb5379c4c17b", + "08c863fca128d9414d11dc59c56cf23b82ffa4c101d93992f1366908bb08798091f7fbe82570", + "0158ce0c0b3c0ad8c4e7b9b4aa7f8f62f8e969c3c3a2150ca0b878397f10bfd9c78fef15b6ce264af3282a09fa5c954aa63d6678eb94933dc1bc" + }, + { /* i=970 cDividendBits=659 cDivisorBits=416 */ + "05f213403409115f4763057cd6200ba8687b9b3fcd698106e98955d90a8d66c2c9f6c777f2e20aee58955521f8b198a3ac649546e09c3799e1db389f32d37d0d1510f0f3afbe28e495f44150a577b22efe799e", + "75a8b944b810371838ad3a4532c22323222c884b8f31aebc6dfa43f8c11c2c6b1bd0214d501c591e1c1e20d562252a790e3f3917", + "0cefb2841259d89a50103564ad269be6bff9fdb0a3ff96293467c9a6b36579", + "06d1a3d81233dee892ec40ed0db5cc41a9a55fc6ce386466035b81a0911564f6e1acd75064c939bde0da16e82a289892ac816abf" + }, + { /* i=971 cDividendBits=2922 cDivisorBits=2375 */ + "01154f2ca76f1632414b493922869a73e41f4dacc16a90992d181aeaaf7c137db0d89fa0a90dd392cc84906ae6786c8b8f343eddaa65016355cc31901a1667471b8e4bee51c459c3064303166c7655e4f904ce8b4e4b9a1ba1c0b4b68203ea9c47a48b3eb232589138c90f6c079285b14cfe568291f97ff30d9306d82ac9e7ac5cd9dfee9be83a1187d4f4505e220dfd67e3174814578cbacec4be795b5cc6cba67f936a576feb111c82c99ca02ff99be894c5a3712383f2e2520cc285d047e22228ac1c041ee3e49a35e339aad4f5466ce4a3328e4650443be9c48e79227623408cb05400d8c8215ea35c61f7431cda39ad06b6dd6a6a2ea65ae2752b2b9adbde6dd009091d680bcf251f5819865cff5ff28f057ef1fe952b3f122645b588e1d67ffd8b6a9347578c6c5e2e14e24de9d77bcc84b56b74d5107050e8fe3dca672e0ee1dcdd23e97d526c2e64f21cfc42b8f8629c45e0272d17c6c8605dcb9ec1d79dcbd7267a8522d8671caeedf5", + "54bc85307d79984b0c009e414b0b276f89a54032980ca552418f186a80c924d9dede2353078dfd1ea3d1bd69a6a12610b0b7457c5e320f07d166be645f3daaf3f7d205462d7da0aae7a041d154231d955db3372aae6da10310906f4766b6fd998190cf64d7c729491289df0b0ac39fc57fdb3f0d64777e2215151e6b9e1d560fe268b575ab9588982ee00a6f3554c23de2a5d89d55e8b9152164418412a97b41d4942b5a926db9b1faa57537c65b780936ff2eb0c1d9b246d063302eedd9b265a79f6e66bf18d229024e9cdc05649e4e1eed2e5c317fa2fe89dd21cdbb7492945070384cf4e3fa246d67ecb0e6f6d98dee2181077896c8f42e806953b35fe319e7bd3654e965d5cac87a2ec9d295a3fcc7d5e642433d212246d943de8d3ffd2ab22972b548dde42723", + "0345c9d0f82d16d4728b526dd2211bbada639d1c0653639d2ba12922fb73421e19c8e702fcb0dba7c7a6517240e3e238daae6d67a383368c0320f38b97c116ad12822e4cdf", + "2ca48c46a5cd8cf0c538246317ccbb56a4ee55d3752924c03716e5119c1bf5501300fd8124373e6bb4aaedab6aba0e61e2b020061cbe7f718aef42286c276f00cd705f246dd5ecee5b72ad9c9f4a9ebe31272031033a3d380e45151d8627a0320b9be654855036af1a29dd3a10fb856c5c846edcfc3275b236d0039b46011faa8ad066f512b1b428e071eedcf8806c76f30776632f662a8ba6f133a770bd3a3d646045f97d7be6c652b8d9b6cbd14cfb20a41748ce448561a9711c9c02b7cddf3a8bb42d6c678535029bd96d08b5c8572cd1548a6b773516e4ee85c6208aec060d4417e5321ad2162508675cc55af8719e6bcbbdffc288d6ee02d553e3a9745e3693d703fbf48376010eee4f670662640460ce78a1869a5f7978064f028567377a402029b949087278" + }, + { /* i=972 cDividendBits=2768 cDivisorBits=2067 */ + "9c2d81bbd0ddfdda8452a5c036a8a6a182e6782f5dcfaacc2a1e18ddaf55bd02cbe67e487ca53eeb7d4cb41de5cf6e0b29e514807824252d45aedb585389c83f99a4b62bed1e7cc7dc71e51f7afc6a076ae41cc0cd213a5d98218b8dd65184f595d41d01669b01fbc4639d88e9c4d8974518a7c6a73e949ffaa4b44f633470cc01185a1ca4a4048eb60a04c3132ea84a0c3f00e5a10fa2684cc08e4d775ed1313f456f39d50824f4f2d1f6c5d381bf0305bfbb88b05af8f2f6c9ad15ac3941df1460d0533853278e17c9075edd219d7c65c7f16f633f5899eaf1be9209ee1e4bb3ebd5957d89177673b404e387315e492876506aa4613facbcb145c4ee3652f575e4c4da001e146063fa3b448de963908141aebabd2c3ca00da5de3877b96e538bd5eff62f75dcabf0efa543c07eb9f0d193544d6ccd3e05312b674467d2b6c2d5f84e0a92b21eae8a3a067020aeb3e077828e0e7945bb4a6416", + "05a1698367018ccce42d9cccbe451a23f2868186f2298c5c52f214eaf6c11ec0ed6edc63616416083ec2f0b06914ae5868e4abed58975526fd91fb073dbbbc0d14b8f029f301cf9dae1d46a8237a992a6b26b94254b4d0ad2d1baec12adedc09cc858657a0f9db0f605e8467ba77b0c4d282f1f0409babb2eb9a2f5539c8e8d5c7c67e86543347c78196da092e11da72d999c801555074b9fad6b7ec0bd2c9e72bead0199c1823565408fcb0cf3c0294f7f5a915354623d0a3876c8caeac52eacf1ead5213505a8af38b3ced6e86c8eae77f4dfbbdd265dde0850e281b46a620122edb8b6465a249402ea0ec9dac51a2e608dabb0f9869d8216bda32aa7414aedb0c1a", + "1bbcdc1eaf9bed95ec5e585b18f04a6d1c24ec02dd3409564cd723e6cddcd3dcb8096cecce04926ada9af54b0645be39f0670ac559082d924ec41e29814a957560ec06eddac8c25cf17f930424ade17a28a5e471be05a180", + "01c886ea218897d93cdeb2157a207ab1196e7287d8ea994e67b28090d87e42f5011f9a584e662da8291a280703fda1d79c0c5da76124185387727937dc5d4ce94a6f97925c17a4bb687986fe7ec590d1f11ce247044dc0d50b7a24d366f4cc780f02afc9b430735f9e6463a5f7bba98b1f54afeb134fe76c372e9adfc9723fc78a3b7602c857510dbdf7cf0752cb3c00fe93788ede6d04d1f29e9093f8466113ae0be3acb178feeef961624c999122362e7cd3ea059b98ae8ccb032a223a3788841d0f3c53ac00d6c813399cf37046e9221abf966852002f8a8dfe288db65704427e74a6ae012a41ff410a65ac1a6827ae2c0712db8405a8999cbd456bf03a02a5fd16" + }, + { /* i=973 cDividendBits=2000 cDivisorBits=1001 */ + "fec1f7db7ae15fd192c9535475948359db3ba04cf478c39b3d82b6d7cfb64c864b5f2e8177ce29a842b9a35b640eec89d0efb517f9cd3e9376244876a7b66bfea26dd4c6cc5bc5d7c1139a9de6388a85e5487efa8c3c396de89e7313a28640700d0df189d2b3de40a084878e3e2bb76113447a41e11eb32c95a4e527db1fcbf935a00bca760d5ef1d08abc0e088421e492d49b0361554377cf979d51d6dd273ff741c7ccfe4add4ba82d41d2f24cb0cd50718cbf40e5b804ebde264f2355ed6b9859555a5459c5db2d334f72db2b97ff5924591fae38453f5c5601fdfcd8667d162e55e4da951e54ceb7093bc284dfaa214dccdaf2cb6028c787", + "410c6d294d97e664944a0dc79fa34d40643faf1e1f5997ef225d3744d549110554e4ff6ce26fdeefc55e9d8a782baabf3c02490ba78288f0aabf61bfde83e92e0597f208a603cc1a688242f6c3dcf07328e2a124c0135588380da4d80249b603c4071de03b379eb2ddaa5667f38558e2d25f749bee65cf24ec3476ad", + "03ea9ac92cd66c827943f8953c4b689a2874c234f2d1a1e52d5e5f1a4d46fdc3ff8cc8c9258ede6aa9f5e71675ee05f6db5d740ab9a7d60205017bdba2c005c8d990eb7190b5e5127978590687f9f75a51f8737755a258e2ecc8225012c5bd54436dfc2ba61923293d5039956dc78c3aac76d19043a08f682e0b29fbce9a8d", + "3023bc2ae86cd4da380e5901f1e201cbaed67ddb635b0099d05e09b109e9ec1e1ca09ee340ffd98537e09cdba6cf8b12f0d8c77dd03f737077370d4e22bdcf4a6784dddaea1ee521a3f7eff2ee217814fcfa5c51c7d32f62390b396925f34c5131fb2640c9d62bbb95171097f2bc2940fb2b82a5ac47b21599a9583e" + }, + { /* i=974 cDividendBits=3019 cDivisorBits=1402 */ + "0467031f4b527de6b10420ff564af7f1d327e99894ab9c864557eb35852627d7fbd17c141cb80ee3ed17bdda9c8599dfd9a260a0b0b77b3a3d8202b961cf0828ad8de88cb44c60014e0a5302cc334fcfc39b8a717a2bbf36ef7ac9f4d58483f7451476026ee3d092c9a2bf21f76daa6ead662046d18c9cb8dc7c39c85db672da691c535977dc6ec5831085f84323b7700f488344cca6d316b8733bd49eee5cf47fc5b1d8ece628a84c81f515fca2b5f0c5d4aa8cd63077fdb668eb06e3db7f78ef7920790621c1df113e002715c40c144c39980469b14532901a7dd584c569e50e481bef8f37a72db951aaddbf5959795752f5e327b0f087b0f7c346e552f4fbe4f0ad66d58a8ef5129f3a6d3abb24090d9ca82fe99cc63990277835c5397e08ba4936bec4dc6892275951be6e6fc52caea9dc5f08bdecdc701b4d5e99eddac9ed1d65c8a06b04a2c49629ebc3454b2786dfdbef376b6ca1851ed6fb82c7a72747e3986d5805843304efe2c179a25c1031ec04d7ce69f080febc", + "03a89c4b49cb4f920107ebac4d0c9deb790a607fc6d26042b15fd32752001b28ac28753a0f5d357119e5f917bd09f8e8e40da2163c2bfbc7881c6d80f88c5ecdeba6d0a80989433abfd76c82625b18d65b7e77004262b85bdf89906d34b9e6985544d2e628f6c9694be32c820d365040ed7365801699448f54514e044a60f1820f0315105a519f358193080bb14146d8b8cf51d0959f8ce72f53114bb30974c7375c4d66baf80ec28cb9b54720478eee", + "01340aae8c510065026731f9305b2e048847743f2d1353f614387a71f10d3eecac8e0a57be52dd82149915a48e4ba708631ec176bf9376bee5cb66cfa371f46fa94b56d18a9ce682ed043fec9c8d50fb21c46f36f857381f6627cc422a0c6407bf08ddf85fceb0b1aacc3c93cbe5f7c6f38fcc66b6f30215df679fb65c61b73b8543cbbb3d21ea732cf1eb30c7b8f74b2c9b45db7ff13d9c332f1bab3318418415d316b84f3f9543a7052e00629d3a1de4e393ade96bc2ea5a2395e45e99a2d068fa758cb550f67798414d", + "02d0aedf5b5ae628e971386b8db37ae6f03257f265fff9a2bc2d5345cf2731c1a7c432830f7ae43892a01db960e7023c3cb26edf24c5d541f1af7980f2262efccb6217cfa6554ec4f4ca8cdf36fb3ab673aeac024c10c01b900cf20bf0f143791a2f8596702deb339ddd87f61fca61c6c48260970d6ae5b23b41cbe8ccfe8aaca572d84987f7c793454077bd58e7d5ceb874a7672701bb055a38776f4b2be01a52d17fe989c25a2d4005123190609326" + }, + { /* i=975 cDividendBits=3948 cDivisorBits=2457 */ + "0a953bc3e16938601abfe75309469f32a9e0ab511349170da4075e0ab3d721f3dffd6dcfc42ce532035ad20bd4d47814aa73e915ca652d38766625727c9020828f1953d161b2e25ad877513b7b86ab46e73d07ab5474b9f4d3241328a128b5e5aaebaf28481ea1fcce939e18bd066ebc20908d3b1941bcfb83d1b10d7d97b1f2d3cd9988bb556f968a15023d0ec8fc4198f649072baf6a9e659b85a22fa245c4e181ee4f2e3d2d9fdda59a1cf515f17c1201db1ff96102232fc3714b55d284511be051345a6132f7a25dce67cb0eb287b516284148343f8fb4d880d3129f7d0647c65b86cd9bf2382e049f5a50f82627735cd4d6c2bc4eafac6ebdf03e76dfdf14c353f522129cda2735f2dba98324f37006ce4062c9e4a41fecca1b705f5cb8a8e32a58ed1aaf190285a7ee27014586b3785db0a38a580d2d6e752e8bdbb0ae961dcb2edd2406d48e2687f7efbacd4bbeb200951911828150e790e103e37b471caf40246be3c85c6ace5218e9381751aec2faf9c17f4a0a6cccc9c07f5a2d714c4d7e3f7908c68e825900be42203cc84c25012d00947c267a46b6ffadcfe505789c7960dd993594b011358db42c63813a417856c672a1181006cb990ef1250caf360ec541be52a9726047e7a07c63883be9a1a5fd94504f5f64c3f52306471fb3afd206f80902db8218bb8384eb", + "01c6655f0f30b4dba5745ac45438c5aca1e2d703dd572d69cffabc4437707e203cb2fefa8375f71ac0861f64cfba27249f42af2a62fe859749922b9c9b0c79c2fa8874fc4ca269804e247f1f7b4eb6e6cf4e7b02c5ab2b2504c81f7cc0eac31ef3a35790964c446190ff430176705cbefd04d053ea89e692a09121a271705376623919fad96c25e727e3c4a686e3377b04b352bd3d9937d26c2f26af5e0a01d1ed62ccc36ecf3041986d10c88d79efc0899b1bd7259c1b52428bd6e7be60a2799f1382a3a220a074302e82d75b3cfddddc8dbc0f62d0ba33398279972736dff5419457ab5c2f48778a26003e01a36ac6b37be2c5f894e1804d2c468abff6dd2f4aacbf8de852cd013a23f89036e83cc3b336c277f57d15fe59dcff4b318ec6ba016b5ababa22f5eb13b1b5cd386120481dd2a6ea", + "05f6579acfa684f61d82f937ca44a6367152504fa79e01f8a08715c49a53276953d71c05bcf9af2c625bd6ce0df2057d27330eedcb6069af02cf12a2d340efee43050b1fa8c4eea32182cdb59b5b0bd433c3f75761f859e732b9995a9946724c6bef131f66ee6a38880b7f3ce2cf193a80b178db15e730dac3cf99df2588a886ea874dc3be936a002a6f4ebd1afae35ce9ac2e979b2300c7a5e44d876c2f383144ee5123bb6f115d432d29051847eb85dd60bc92350b4961f63727", + "1a182c11906be7453eda4241f51ca73b5560aada8165e60f1b63093f0dfbeaf27618c139b38e1f545ac0cb009985fa704ff526feacbc6e769eb9895bc44633cec7426b6e397a6d1e029131533283038962f7eb00a5f68a0e93e28bc9270dfa8894443518b21b62059c38c68c9f438361eb5d587c8284d17fdd2490a1bef22ab8e3bac20ab0881d4cae15b37315c2aaeb70f8e9fb32ff20169c30694181e8dc7b7e240d37458a88b048f64682125b2c83b912cc222a5363e95bac1d04160db6c8339281bff292e6ac39b26fb3843ddf4e13e47828f5f15f081fa83b4f0283d35f3fdd2a17273d1bb470c5aba99c49354b7b905bc069a43c7b9d2c894eb06235e779422bedcbf98c7481cd210a7e428c5aee0a21ed209e80163eb130b812efbcb1cd6c07eab1b1028f024299a4d6f84edfb3d145" + }, + { /* i=976 cDividendBits=1458 cDivisorBits=253 */ + "01d4a23d34be831104e8eaa6900721774df0df276d3d08bd551a3785f93be278243d32406a671f5d3ddcbabd91092f9b4c7b8d3301be15a9b5d8751402551a4a1e44c843b5ed7f32c9ffcc6a9297c05d124877fc3beb65bc34cdb35b95b4b7f1c17276fabde0693ef2280eaf2b6de66deb9d8a9b3f9884cd79583904b8a1231f8eaaafc27e87d687590b36b2e697d6b62e2a744b8268aeb7831083dd0d69b21f11abafe4c68020238b872b7fa829bfb8782b05d52237cd", + "18c09f12d36870e7e56d5839c9914c9ba778fd9110aa5a1ecd2420cce42339bd", + "12eece9b1210bd2bbcdcaccb41bd92e4c716ad1b7d717643eb842ef1d883d9bb3d7e0a8f2ab84ea7effd9a94af07a051f9f650d1f2696df0447b1f5af10a103dab7dabfd3e9d5bd3361a453370c7831e4dfc2cab5bd2309adaef380e25a2e8ef70a25d076b907ecfd29cf7edec627cf6baede9151344af03abc3970d8ad233340bb786d5f8ef5d3b0b38c98d51e39c3ee6e261f3ebe868", + "0ae3ce0096c9b55c0c9e911acc3b6861b828b98c0b56732fdb4e9247d3007b05" + }, + { /* i=977 cDividendBits=244 cDivisorBits=30 */ + "19eb32ecf1eb52b31f2d29acc3ba51ca935448484b478fc2860667a5e0e6", + "3fa33aad", + "6843eed36ad3599e6a616ba39fca39eb440e40359a4c5135da76", + "2fa08328" + }, + { /* i=978 cDividendBits=1985 cDivisorBits=16 */ + "0185ec2f801cee9104fcfbafb2adc2294d49cd7d04d399ac4647e3c775246b7d16cf5a508eba42e9690012b69bcc17ded2ff08d3d8d82540357b3ed7c2b40a502e5ee569eff18d7fb32ec475460a35860c35e5c294db0f55e97f16e5b2e248afeece2793d29fd159eda707871085c152762d5fcbf9a3374847ae6244e86d0dc9603ff968c2ff61c58c781d707d6b293d61e432b18954c4cc41ee893e9642f572efc6330ffa9af1303f8144970b45ec4633fa6db3df61f0b43ab726701e68ec2aa2645a7dcbc57195299f96be4d84d17e2c4b3ab04bf48739098f8ca9c71127bada4d4e95a60a1ecd3fecc2b8915fc6264d09251f2bb47ef274", + "6192", + "03ff0f1a185c78f2e971159f51556ffe7f10b89da36d404e1ef36eb44ffcd68b2b634135c0d92522eb1cfdd55cac2ea43851973663d3b2310be6d1095ab448909e11ce899f8d596e0babd6f9d9daf48586c0c8165a048b3386e364d8e617e862b4d0956dcb3c766a9b52fde10da630eefd0ab7e87c2b48d518268f3fe5917e2df58bb5651b46cc4221a8b16fa058f964af6c9b101ac73fc5a431dd2e0a90fa1b2d96f55c7e4c4e4e17aaf06ea41604883ad0320e0e29dd3cd87358d1b839aee550c950f714bd02150c312eb2982f921c9e4727df2964157e197435ce19247697031bcd2409347133f635b1169f986cc942a69e9af64f3c", + "063c" + }, + { /* i=979 cDividendBits=1548 cDivisorBits=330 */ + "0f334da30c2aad468cb1cb1a7a562dde2ebef0572ab1adcb71e844c0d3106dd990fdb8b802461d3363ce5197685d59597be15556560a6b4c8a1e4eec8cbed8b0e69700760add9b05c535a86387e597725ddcc546b6625fb05a46f6e51b185da61dd214ffc200c7290f30b215d6f6cd7bf583e7c412b04b31f71916072d5503d682e774fcda7e2a19b2dbc0025a938f55777242a41daf135b955ffe3e16b67c74ea0c8dd50894c8ca995760afa950ccb009a243f3a8245928593e50b490ffb9111646", + "034045a9513b5458f67ae35c66d9ba093fef4343e88cf29620f31e079a0bc067be623ed9f2b8c49d300d", + "04aceebfb541a3a77919f206ab2c27b89b9173bf7faac2c25ac9f62f6eded62d57ae5929bfde9c8bb9270ef3f45bcf22998d571ff1315872a2b61b0146a3386e3ba10d4d075945da76dd4638c59927f60524ad2a4ceacfe930b33dadf435f74826556e08fa03680cb19ff1b5566b358745dd8339204ad1746bd9b7bb9ca7a16a7c60660f4b70a9a204c2def2693c347a4a3ef1311a16be0f3a", + "01e20643559ee408b55358d1747d54661c977d0880ab4de3b808dbce443f090cd0e9d7acf2812ffd7054" + }, + { /* i=980 cDividendBits=1458 cDivisorBits=914 */ + "0106143b16efc6fd4fda84616187f10214b5feeb6ca6f6020d3a1d874a07226941965445b2cb6fc5eabe1dcc30f9cfe062d4a6c02e2ce76bfb40ba2eb309adfc352d73cc67cebf4d23e20611fc18bcec75a209cbeb3e8753edd305e71eb85afcaaed7c0f1e1d3ee99036c705b6a818769ddf8c4f538c4f8497a6c1678add99c87756f7820411dd28e1507702eca10aafd49d95ebaff34f072cde22270c3a393148bb7669945204f0e15bbd6fa238c5b952e588bae3eec0", + "02d74e3f08965efbbbbdc25d600e1be43403eac0f40b5cbf6b743075cc59bcb72a6f264f3daec40435f7a2c514c0a51b1201df7154297ec93c33394a1bd27ac8f3618138e50ad0e39eac2bb75547335a2e396bbdf041a4d80e58dd880290a42fb96b1f3573dec5bab9f838f23c17f72b7eb6b0", + "5c3f656f644150eea098755de7445f113d7dec0b089d4cb859a7d124f5a8a0762613f43cc3c3b3851e45f0172c2686360733be312f155ac6a65c71ce51c5ef411fc0d388", + "44686e6a4f6d4cc66202a23a002910a1afe6c779ca44f60f65e60a61d39aef659133d373ba666437d9814ca6d92d0fab2a87c07cede4176db35a61c0ac38e8798c22068925efa7728c07b5bf2f7a0c442c7f36be3548525b5aba829d38937e711e5b21be819aedc05d96fcd5c787daffd140" + }, + { /* i=981 cDividendBits=2700 cDivisorBits=1674 */ + "042078d030e96c2bfcffa632d4a21ba1abca6ea234db93b1d7723c3134472f7476150a4eaa720127184ad26cd4d99933a96af179d420df7caa546445eddd8a45f89ecb493c3dedce4071e80605c6524ac14cb63652210acf6e9c1082785df56f9dd89dea18d822f482b973687f3046289633344eeff644df1cd8856f17f5d9213873443513cb3c2124e9b7211c9ee9bfe25b8c0cc7af3a274d5237e4ec3dd83cb3718f4e87e508b10f8006fca3e14c08143587bd0dc6ac1955721c30342a724de85fb18928bbc1b004246a29317495fdb1702a94eefd1da48fd80f3c75d6b2c8430418c4685cffaa91f5d619f346c25b76f9fab560777bce8169c61265c6b696fcb520ff4859a9fbf441cfacd0aeed22b4f20da39e94ac7e8dbd45bba223dd00ac3c9a3c9714f9eca8f29627037e741e70ba892ec2a5ef2d4a821eaa55278b039bd10747eababde90d33b336ae4fc6dcfc86", + "0303b3698e9c85eae7afc6b0ba187750425fecfd84b803d00b5b6e7c4a444b07fe4d9f5a1145e89f5f0ea92b3c11e607a45b546b5813902873c65f0f00df741f161eb5a2c0c59b1cc92965186a1366063c1466f4bb5684ee42949d945ba72f1e0a6f504f21e3e9e0f01a2f7536dcfa99c9c0a4b3717eb3a3d8eca828c8e2175d5620ddf576b2696a0ddf4357fd07bda386ea648a0b9b228a643ee18287d2e06653808835a3a8da9bcc312c5018d5a95bb3401348813e8c9c76b5593e7ed4b89e1688447afc7195604bf1ad46319d452a1b1a", + "015e77ee030249ada1a36b2826ad12f8c4d99ee3c8814dae93c230b8333d6d26ceb17e83132f9dbeffafcb47c1ed47f7cfec495d481b9554058f4ab036e40d022f8758aaf50de12aeb5ac4c3480988da3292c081682c1d09a0015d43dc4acddd4bf3d82e276faf0c168385a48d9e450276c12537c16ad28706a9cb79875b3bfe5c", + "7784bf84b1318ef354499d3c38c84baca8d4ed47c7f084dc16042519e2897625c6f19bc7a20f9f96d8a233050762ad7bb043a475b6df9efed25ab09d4fd58a7ab1f810256a8d826242c04c167ae5c6aad081717f4e5e5ef70e1800ae98cea9232486ad9e0d1189b5908cb8bcbfbb960a1ab82db5993afdb8bc2f3d6313506d5452bbdd26999cabdcedf47a79a86a412e0c5b95d68369be947a333de20eaa1ef1edfe5f9e53bd278dd3db538bf5490942fab00e71d55b344ecfed0b7e67a4dbeabb2dd8893a903799196a4c521ea7d9732e" + }, + { /* i=982 cDividendBits=3091 cDivisorBits=811 */ + "06cb3919262355e68a13b35da2ee9d516276fedcce37254a3abb031ef78fd064b1c86f0a664ba54f04f6b745121c07e5a46a242b6810cc7fee7731681932e6bfb5c3d9f93b188e097074d29ae89e59df0cb6c12cb5f946dac29da396ad86685ac91e0075649a1bd103ce8ef5eabf88c00b06a7baa705f09ea2991671e41259b8aac897c358c69686f22227f1769948fb9aae45dba8a24cb9e66e37180bd2ca29c88599894c92587aa5e4398d973708f682b9fb68f1501ca4ed4a85acded013e578b21cf15dfa22e98653356cb54fab9950c9a5c39c16fb11551ee173c9621cf97c3b41610e8aa738539de1f0593757e15048881f33d65ee741ff2f5855d060418f7b37370a08d5ee73d42d6debff9fbacb1c0b92c88c865431c246857a487a905d07a1f45abd028aa41766012696775df604d2bf018c37255b1616e8e5c77b5b9e650e15b2ef87f37e82c17d1e22176197fb9afbd3b523868a72541ac27994cb4178980aafee150b4623d9fbe255a423e69054ee94d517c2fbe7468d4f4fd167be35aa", + "041d7c1955a1f7ba25b2616ecc2fddbe02de8adf897fd65ace4f0763e8c5d438593dc445b313c379e6e717317600c04f36ef66149011dea4ccbaeb79071b0f7e95670c8cb58617c1b99a084774535565963122afde3fbe3788e5b781eb81e25f2da288875120", + "01a6a2f0c7e522c376b4c89cece0f32ea298cdaa6ecd1883bf74212c84c641b5742033b2ba74b91eae958c62190444b22a300f31d4b115e8736fd50913cf31bf0007b6fdc551ad1e3e5d5689fb1e5a0a4e74f0773de9f94510316d6eb8e1bd456fbdfbcb992b46e10ea3a682db2c58bf24acd75670376ff182d7d28fc199a476eeed23e444d43337c8336b12c47f5b3a7e082eeabe9e3f94698798a42a626917a230361f9c45439ea92d2578df5a44095f8e1552ddd7b8a07c83d02fc91b20c1f79bccd21c2f454d557203235e5c7c8e3f81d0fd7564a5af46464fe04c8a92dde8e734e80abd4f329c3d1ecd1190efb4e1e341689288587e91b5753bd2a9bae68c3c58c36fb0cefa780ac0b562680ed48751d3ba4299fa11572e0eacd49c", + "b144128b2b905085fde96195c0dff2df10ab2171bbaaf03ef98f37e5c2facf59803b2b5d58f50fd903a8b55d7dad1a98711d0002754da82206fcfe115251820417b38350f22da8450a71f3249666ada83a9f46cc3c718ee42c6f5e264814d7529be49a462a" + }, + { /* i=983 cDividendBits=4022 cDivisorBits=1178 */ + "0a2f238e747462736bb42b24ddabe189b80e23d6a35bd1fc0a341942d5b42a4904269fce839c045e803a04f6042d7a548b778e8a371221dfc90420247e6981b0926c062fa30b71a71b68fb7756d6db1eccac462077572a7863937226ca24f54f61cbbc78393c7d95962fe69b36b6e00dd715c678a6a148e220de1f34fe4d41027db2a92d73a163e682c69ba49167793b6b0936defb77aa504143eedc71470f76a5124f43cd9ba33c0b9600ce534b12b635550dfb85f704693254f92b3ea570ff995f72768d3e9d5793419926fdc3cd18448f6cc7ad7c6d3b6a4537f9fbbe8ca7444d07f7c0cde5ef360b64f8d8b197bacd9cfd06c3456425842bc5d54f47ebbd9c3d471fb6590abc97b3131944a85533c2a0995a577072da46d4ba25ecdefe4a96d397aa25041a7f5c2fba6930cedf8c8799f3fbea181e11be5801042985e33918d20a74bae17a14cbff31a79092221c6c81daa5b7c51ba9a56e6b86bf792a57a4e0da561385427f3d804b28f851a94173b078554b02dd4be2a5a236faeb563f61a2836a163545e8115d9025e4b4d43919719ac3d2b0bbe44abbf08e989dc8dc97bcd0256cba61daebfa2a265f5ca1dd20aa77ab06d9bcb41318ae4e5cbf7c994f5142db9e4866dda6b6fc63b8e4b7842c153a252fa8f38648cb9edc7a0a9c88dc128427a774107287222a0c1a34c9753bba8a276f3e9d", + "03e3923cd0b3bc2a89b5453f35af7471184343934b886a77e723c9e16fb1eb2765a237911f656db12f6c8653cb5a3cd9402a326b04df8b88c9d355de9fde6cf1b25cb302f7e6002f7304c01000adfc5937b9ea43969a11f73a8aa143a438a7705693ac073631da603d86504f5fcb1e376dd0c77b39ec9d83bff746274cca415329407875ad117e651d409ed02b2f8eb3f3ce9db2", + "029e6586611f378ff9a76891cc22ac8bf21a87e62b67ab64b71bf8c824aa36aa1f455105bce3098fe3df922e3b0ebf16f4b3e0fc9cc8cd6d3b268dd7fdaaeded6cb4af6d74593db1004599a31ee458f43043b1c3e2c6314696944f23599cfb80069b2a3f128613afea949ae53aa670a0ae42fdd790a53b54c48697b6ca5e56c5238683bca189f35b5e194ccbe569eb9ab658c353289fbd22142454b91359a4c61d6c6e08211d5b7345afecb5d206e748db9066a4311e138e36d766b7956d7cd6cc9bc43ec6e28c06fea4e3d469cb408076195a5b86dc5f79b2c76ee5c2339e667e573713e2931e70296245c469a1da9c315e4427455eb4beeab31c2ab862d1cef78245a4adaa15c98334544688d13ec4d06edd528f9105a125c263c6bc0b002b7df2f6dead08b416f2ed7244a3fec67cd0181ec351547b98e57ca5aedfa8a6a2098d8bdc03c6b18ceaceb45a6d7c66ce48ac1bbec28100a3490f0920145e30c88c09cd3d", + "fbaed9e3372a60b456e3b91ad12e4f01d5ebfdbad1f40ec410ebc8252c1a3c28b003c906a1996d95f1b6de08649b4666dda4242c2bd2f7a4296c5f32abb12adb89d37972a2e89919184a112386c651dfeb21a81ef0b8d66335a04b9e3b677dfa62139eb0c54d9f56f022834d98db853fef26096a494a4f649cd0159f6312c52ecd00c1933d39b50dc24726a19f7bdbb7aa2133" + }, + { /* i=984 cDividendBits=2584 cDivisorBits=1915 */ + "02bbc4d592ebe11462a757f72016ffea388509f280cf47ecf79c543e42da9fd2ca3b55f674d973f646e91cb01dff97e47fc63e1a4e3fb12d9760d8d3b90a31e31d0cd611390aa57f8ad142ac67deecefe69b1b210e87fc6821fae084713350c033df0fe8c7f538b5f70d1386642a387240cb8fc1a21e11afd894b741dceb8766ee793b090f6ce0b5751e271ef6b58fe10da687fd38dafa7c3975b58c0a033d0a7e0e1e1231e50ff02b11b7e231c719023bf8503845af8cb1d1db361b63dbdd280aab00c2b0d7b3adca66191e35be2e7951555f74da5a087385338c00c48c15f06c8dc51c25fbbff44f9a173eca78a59431e8dbdd372635a83e521b56651332236bbcc4a0b4f4d7b3af789768e33114ff603d820a21fd878591bc8143db38c93454d162fed654c7c747f88e77ba3b241e4a278349424a4c431b7544d1c8f4deff74731f", + "07eef18642b0a0906ef9fdbfa389d3c3363f7ff8316e3ea36dee989b533874e0a566a73f58e354e4b03a6b4c8a435a8e0d40d5152bc50173314bf9c049391cc5079f4772ecd8f767b13544e4ac7118bbec98e8c3d991f4d4fa7260d603dafef5a13fee57e131bcf31f03d768bb9bb4c1639386f082394ce4f44b3421a2ed8b3f688e474887d79f817755bdf1a65c9d9d9cb36e79976f4cd1c29d5411c78af123a002c785bb147fae38002fc5083a0ae4b4600dbaf8d22adcc2a236e77d78e42cfe7e48f112007809b5e76a62fd5bb4c144098848759472eb6b4e0c2e777be9a9bcd8f222453cff19d919b84fd62aa151", + "5834aa367eff30eb8434a1ad1e8a2b9fc2071209fa1d602ca4d98de5b888f7578f2907d222ab878bd3607542576551ea681a59ac077979eeadda6cb90aad02b38ad2cf0ed4c5c3b8f7cbc8f0eec303574f8860", + "01bca4cff068cc8b2a2c1f9b5eef64e61fcd6cc0d0df9b6f2f7a4c9fba141d4665a6c8d2c1d43245cd88f3aa00589a0193a71f19fc2cf5d1bd4e2e27526ddfefc6e04767b57acdd20802a54b215f512c1199f9f28090b9ed1340e402fad6f9ba904e2e49704c9ddb84c16d0c6c09f5d28b75954aa3d08844169af4c3908df4468c0e44f1f30418ab33ec049f37024fa067490adbeb6aae520a0e477056da2df3105f770506764900c779bffdde1be579b22d8b32257871581ccbe4b22b17b341007e3439985ec4181f014381a4949527ad30cabcf6a2872bc118d765eabdb469ffacc5cb10e10572d71f423abac5ecbf" + }, + { /* i=985 cDividendBits=1116 cDivisorBits=690 */ + "093ba9cac23436bc26a6a4433f81285fd571f279a6e705aa44aaa5a48d18972dada6a7423faaee2cd1777457200bb0b9aa7b137f012db30659e68eccfc9375f3de13717fd0d8257e43dc068924be1dc59da245dfb1f4cca5aae8640ba3679525cd6cd16976217998b10f5503f9ff4b269d44a60bf90afeef4edfd5a3719c9c6733edc90099b4e15813107234", + "014d09eb3d87b91d6b28abdc93c08f4581ebd62f0362230a2ca0de1fc202d4f6487d8a81d93f8d6cd8e797392df62e3d976b65f50f32dd9ea4a35ad4cafbac4c2f607d3c05f1d50d44df0e57d8b0b5c6e9410ad5e44720", + "0718e62a5cd1126019b0f082a7cd057ee331b86c47a8435ee49a28c519d755c8e0bdbab863736c2f9f8a042311c6d9e639a3703df768", + "013064d38e8f0a7b60ccb19324dc4bd90f86b27200b3d42492c4450f7778895458276f73da7a3991053570de09b6e4898a6c01ad6043135d7538858f74d8f07824e24c54fca36f1cabf3fdc95d888b7518c0aefb13ad34" + }, + { /* i=986 cDividendBits=2947 cDivisorBits=1925 */ + "04f8b793c6078572734fe62521cd8ce8fb752702c9292c93d49c80464b77c5cd51088938f8f4366e24d7a06c06c25c0d6dd91906d1730d3f8ed238091b48fd26946ce6c9dca632ccbedaeb1c1891c51ee793f3d577ad752262dd590d8ea7f1597a2fecdd66f0b12b29ee2c4552bf7025621f26e337c845fc477c575a4158c8704787a3832c3a1cc8d78b7d0dbcf743410e470be300d753f1f56bfaa728c5afeda5457c005be747f856f70614b82bf68d4b7fde00c8b3093a0951aa336e5a6430d06e7ac7af422a429288e89cd0b69e4684e6c00ca8bdc8ac3a36d9f230eeaa05166b0c14b2408b241c930a59689b110abd59c7b6daad5534f740b7946f72f662f0f975102123b7b0f656f11680486987a9ee8a5fd854e1ef27ea784ff70e70f59349ef030d1511b3bb35b8dfdad39b759f2ae275a2c47629fb16a4bb2647256e8dfc8f733122b5f0316643b426fa249d23e9fce7811772ad0d06408522d8a9b9b7ce83a53db97e416d3d540448e800d47a", + "066c885a9c28f4213ddbbea01e0e7b064b8745dc0599eb444ded04be231a6dc98d88f88f90306372a10aa18178ae20727635d69e7484cbe8df16eac01ef0083b6e673028186dede54bdfb950727322f488837fafa5b927989d752e024ca3dfb65fdb412e03627b2b47408e67e4711ca7c4d9a6bf6d84e0fac511c6afdfca255d40e62f01450dd17068498b12aed91c3faba7b2159f57e60cb1c6252e0ff4f2dd225152287255b05e929108e8ae1f27eece4a277c6d958bac8747123f2d6460aa3131686fd56f4f52115e4d5700d75b88295bf00392853ae1c34b2fc9e633a0677ff1cfd52b5ec5f98754afadec164dd7e8", + "c61ed7166f1abd29f18249f4b219f5f141ec763db1e0bdc2e2469f7366f4e3a4c86ef32c13592bbb2f09f6d05998586b7e378222496d47c07fb138d346e732d0b7492e9a63e6f7d3fdd871a2f3452dba919504e86f759cf04cc8d157dd39bd8cce469f73a04f4a2ee1f50cabee0a63a00fa35a369b21bb455648d7e5a87c5043", + "4a62e1c4a03c768b35fc00560915c5171f537510a45c832443a775c000dd8eb65de8b129e714ce1a12bef9c5e43beb68ef68947b5e62aec430ea3d3c71d00e4f685dbabe69c1346e80d78539188a260dee421e8f02c476d89b28371e9dbaad10da326d852e6e4b28c015b73ca408107cdf681ff87dac2a0038398ad1a244468bd75288265d75606aabc9d18b61cef76d7ffc3f8e8b7bf06037e2ece8a2d6cf2612f42a8c72d15707a513cab1277a18e49ed8cd1c702f7f193f587797dc6a4bf1b2fe7530d40c0219af2012e6ab4ae3442ae12fee512c20ef33279ebc1b4e5c1083c153fcaddd687002cbda99e9c8d2c2" + }, + { /* i=987 cDividendBits=42 cDivisorBits=39 */ + "c23bd56599", + "40cfc86278", + "02", + "409c44a0a9" + }, + { /* i=988 cDividendBits=1492 cDivisorBits=764 */ + "ab598ccf5835fd223cec1ab840a242886b121873863fb852a0924d7b7a0d953f4edc04ecf3b5cfe031c02b5edbc74d915607efc2fc9566fda541fc54ed5eddb05fdc04833f124b2833da1444d2c7785499d6f87ceacab52542db5f938165ac2a09d37edd24c887ce654c1dda54e9dbdef171236c6458d68e63502aa907794b307dba518ca00bf63cf7fbe27b32f5fc221128508237b64ea061242476203a95f6f1fa70c9d917a21f21539fd9075bd84cc16a33cf914b61b19b65", + "063c22297c038b51172f6f44a22187b791c6b13819e802c51e9af8d6613cbafd5a0915e24eef9ae3af0b6ebd327d6bf31ed384cbcabd20064d2a21aed75dfb58043c0e5d833e10bba78bc3a7b0d44b8a626db605ebd4c9964681175b508ae60a", + "1b7b7d6d2b0e606fda2575770f5039aa8e61374d4c203760164e3e3000e25e3a5d869c0cd65391106bb74a9abb202b2ef1ffa10a3533d3837558394b3bdb8236d94766e80163713b7b2c4b549891926ac13512c2fef895a5a1f935", + "05ab861bcf10d011affea81e4b228c0cf8d2677923b8e51442ac9f742bf84d89785ce08ca97a79cbdcde22f9317af71b5c04afc18689eccb95cbfcc12618f5e7b6f0bf5bc3ec7cbc9a7d7ba4e0b9e9166024caaef5e3d6783e69289b7ce64153" + }, + { /* i=989 cDividendBits=2119 cDivisorBits=404 */ + "7145fff54a414eb9c14bd4b45595171fcfd26f98b10d9120a862fb363809febe23183845fbcf9d615c3b6620b501db8d7fbe3e10595a335bb7ac0e5ba95f4e6868a0c3a8acfb93e9018b3dd499597bacc5d53a529455a69fa11c3acb65eb8a64bf00f3c3e18afe4e80537149b52a2917566a09f6fe57907de0c559ae6321f75430f9d36195e79e15b7bca0989228ff3733a352782f7a61075bc3938120a5a61ef36fa36b937b65911d30f6ca1a850a47d27bbc244bcec2309e0d0b09366721f616119e9c663f50cbad06e2e702d0ef4347aa4d75332c893da3372cc0d94c9f752905178be6037ecc3b741330819f786ee393be1b2fe6450f817b51f036a99f5945e08a931e83be691e", + "042b440416c5bbc1159585d2e2ebb6c7b21b7cc7ce26190b6930b58c0dde0c15ad0387b8385479363117370092df6bab7e6ea9", + "1b2b9d22e5cc9746f957e8b36442de373bcc1938c1db81dd01244b50454346df82f0cb447d7d82e4c503fae68101490141fb9feaef1f22304f6df358099964878309f665bbc34b496c11178751ed8241719a958e8d925c0bb7d4203dfdb206b45055acd9ea5e83e0e725d5f0d7f448745eca7d27a294afa44e70d17a45b6f4a8eb238bff988645a1cefdc53332f9b1036cca4f0e4242311d17c0dfa3a13c9da270fa6e07a16f82ff4baaf4dcb2b24db125838163897f163dbb2cff0bc81b7d9e80bd5c0cf79203a0d50f984560a7f020cb274e9d2c4798", + "30cf8f3249577997f43a109e73ba010da534ee82c9f19423a2c6bc59284b0eac00c643fdc9e7ac88e0bbfb4c9489f5efd5c6" + }, + { /* i=990 cDividendBits=3920 cDivisorBits=1138 */ + "4d535a06ddbf91ba5ec9f97fbb048e4e2d4b946ab6f724f635cc5901712e1d41e6bba1a0f96bb35b4ff30a30cdc7ea3faa8b25cc95f7e40a412034fcddceb2ef84d770ef5b4eb1f22eaad5728eaf87aabb21197db71f2de65a2fd8adcb33cbac1d446b3b7c95fc9b54ae79421f00351dc77761638e402f9388e40279e2d4b1f94e1a700718a508d1f665353fc0aedca28367d0a8a318ccf6fad0ac086eca148171f5618d3383b8c54e520dfab361a8535dc4d828d466786d164acc4c07b5a1bf21d28d55419af3c43bd94a763fbb476a490fc459a3a37420ad4ed5503c957181232aa07a98151c446ee432f1d3a01d24a446054f3e2653c8bdddb4cef465281d77029efb3818fb88ec82848919db682629b7524d78a185b4d399cfc0394517bcd76c503619e307a6ae09a31f612e4ecfeb3488f096925d81e79c9dc78732513e8e8797084d7f7cf92bd82f034becf607843da896c37b1f4b66d765218c01d1a0e8ab1c901ae737c8779f71d675a2b9342b86f1ef48673340157cb6ee1fb03b3f5657bfcc4369f9aac1772aa517a9198494924ba76f595503f1a61b8ba6f7098ee38d6e0093a132f75c6b3ed4da563f24c63eac3b42d56e93b68c45a3320461e900b506b508fc0bf5a16bf160ed97951d51bb9e77304b9fc9c00268ebf1adf05e37f02f18b1a3e912f6dc", + "8e7dbae498463f24a562a4afe26f61cd20c77c52f72c4074a55ae235862ffa3d136263113807dafa505909f53e484529505f066b7bfdf09d164adc6834159ff32ee35d6d9eb95b75b60889767b16857de9cfb2159abdcde7d45282468ba9d3c2f69948d434bd8ba649c5fd4c33725abd5879e6acf93cac3490e63453706cbfd1fc11bc79360fdb6b83862fec0ef6", + "8aec637b78cef3512f05ad4b8ded7b10a2948cb7bb511ec9cab61658562e22dfa7e7ad64f56885ccc4f2de7963184e032c7216667e01f4da28bda682c21a44f5eef0e47e27fb5aaffe35e2a555a4dff19b0e218fc9ac453000021c48e37b7c5823c571516ca7bb2c233881332d9d52a06e4d6b8330a4cdd9965997853fdbd6abe5265918691f420be80b0f3a3dae6e41eba214b275b8eb0b76c8708f6102edda089066378db68fed00224a7a8e85c2f5b2599e2ba723933445c664a263be37d2788d34e4ec50ab9fa0c5f028b6fdb15d00f3b63367675497e93f20e6c0796b4bdd25c3038e77565b4fa225190e40d4317647e06ffe0ffe2f05f6d92340748bf1df99ba88243e93088d47aef3b0fd2260be09fee2297972b2c25d5918d48940153d0eef98ef59ebd558404824c01c54e10b35c60bfc085a6e4840b741304d68fac3d41b78eedf74fa51c8b69a9571dc8484d387accffd5deba3543c85", + "7f05e0b6c8a814404919ffdc096830ea8899c46fbe60690ca6f7b040823128d9169d82b2b122a9da9d4bddaedd5927d999a303a00b3a847dc4c4ca101990fe172feea7e427f57460cee424c183afccbc7951403b39afa573ab7d2073eb321262d188fc0724570350e57fe97f85cff8f310ad2b1cf48b3a135e98c6708ed72adc2bacf4b976fdf29fc8e42535890e" + }, + { /* i=991 cDividendBits=1510 cDivisorBits=206 */ + "1eac6ba9f4c0dd0f6fc01215e9502d142050adbce7cb8743770950391236189eb1dc4f31d260df9e95cae3b0ed1b66260825aec62551113cb9ad0188157eb881c051d2985416b35a6928cf76d9ee0b8bcc21b59975cb8d7db71ec1353786b2de7b368d576a520780f973838db9979490cc46d77188da63a4d97633c1421c6aa65a58d169d1050d53e182cce35380fb3b604e79254d9dbe62a397510b01ae4874b42b9c610792bf8cfa6acf0dca0c9e979601e5fa74ebed7dcb0782becb", + "13621290e08391b14210959a827ebf96cf638c2b4d7faacd5b9c", + "01951df023ca9863029750b5468a059e842b2c2262768ef217857e0f8ab61e28467d18dd30e71c1198547494924105bb4457a8cff273c9379fde4a09fd8a7a470be087ff3a1ec5144ad1351f7fa68c1d3986561af416f683d7cf55b8e320a55529a10a877bbbb70ffdab328daa8232752cd01ea66bb9757322fd666002983c15d539987316c3d1fa2dacb5865843e4767c896bd60cb75e531587a182943220c660c08111", + "0b7cb4034bf144a9e2a56dda0255a822114af0728c37ffb60d6f" + }, + { /* i=992 cDividendBits=634 cDivisorBits=474 */ + "02b35d2d3b691d62a527777e2136289876acccf059ccb706f8e614569492010315da9c53458a2561c359a33ba3111b5e84f69974c8f0886aa10a55701f32db356c352518aaf38632b3c668c413800f39", + "03a222d694367b972562ff884bb67b1e924943b8c3172bf9c0cce10c45ac4cf746c03bfec7e80895a86b2ae8a996b4359aa2614f336b436af3c88e68", + "be48792624fda1a7c5dafd61bbbd6de4a97dde93", + "018ca98a5ea681ff316a719d7364d91793ff35f7b870404233098b3d356f46f443c8e6eb7e76037dc104eba4b0ef4c2805243eb304866761fb101981" + }, + { /* i=993 cDividendBits=175 cDivisorBits=137 */ + "083478ed2cfc9658a9969d431153d43be6e66fdfd5ec", + "01d42635c8ab80cd75c7a1fc6a874b6f0935", + "047c9c29f1", + "017ea2776f2273eb93eb47d40d805b92ae07" + }, + { /* i=994 cDividendBits=1744 cDivisorBits=647 */ + "82addadbb38e5a4a523a7410a8fb7491ed7df5b893330c83727c95a1d3030d166a95642804ecbfd5808649ffe938b35539502ca5cd77b9a9f1cd48f97edb5608b831e934599d03a378518d534d8f05673c83cadd5d9eab0dc1e496cb72fec82f60befe2186752151f0cb5bf4743cabf5d222c72ecd2caf4a7a1d53a86d2052464b198e611a4005965766cda562f50c96aca63eea4a6884688ee71432f8b8cd5051d6d7d12c396d8811f020b5e60eb457bfadb7366b517bcfb08aa921affc98b394cbebf3b02572ac2f9fb8a96a626282d52b4d71cea231038e02", + "1cdf39bdee73f7f9cc36e3c8e2b166ea19aef561d0fed726efff09a0adcc085919b3a5f518d701437765f9fd7a34b726560457d86616c6beb6994b5490a963b94884f0610a4cb2bd840be5ced87a6872fb", + "0486b24af73c4752b448bbb9fdf69fcc8cd79c40a64b1e53dc38484d1f2422af3c8725a45b61a1e0ec9ba7272d8ac28fa8373a8ea80b15f6f72b2fe71e45c25f40393f7e8d39f5afecaceb536838675d843bad7068d47493fe2599466a531d86040b55db113fa391ef742f671beeda7de6c74dc9b256bd2e0094a2b9276b6637e5bda3154ffa41b057d1", + "1b9fd89b69fef15a41ec283f9ba53c6e996566442acc6c5f8426f33a02322ac3f49581658c4abafcaf37f86afe25edf80741f3482520ef3eee6b46b04cebc22ee26fe7e33f5988f18b4c8cf32dfb1a6217" + }, + { /* i=995 cDividendBits=1455 cDivisorBits=209 */ + "72ee2eb3b5a31c318ec8ef9d8a3dbef4e2292c075d53cbf43bcfffa4a35c1597c2c134e21dacdba84d0d8ad35abafe40436605d100d7e4143b9a4c980ed1d11bff0c1aa31f3bf3071e2264a08c18465b5eed22711882a7f3060f3739d08c8437db7b8b56ad31fc17a3ec13e085c184ab942d4ed40ea8d7cce95725231928f776456ba8879a521a7a635e79ccaba07847829ff855b4d1f2d5fadf3367e20825bcbf237de443c231424bc2f89d18ff43b3ae75b7874568", + "b52537902edc977aa4688feffb89d5f267da39242f083368bb39", + "a26c4c16950a9bb4c21f5bbfd8aab51aca4ce17af0ba139ba212d4f26a8ea96114f91fbede9f637a87737deb6b65cb59dcd7f8748ba936a86319e1b0c0a6cd2f1fd15bb5d4ac9be9f886c418a6faafe2ef8f9043899c34e2b2bab5516af62eaca18670d62d6f037ab984bd2554b38d28ab76622a8e2733016b5183f98e545291e0a1849ffdca6ded24586f347acb32e4dcab0a6b2910502417201677", + "6b9c7d564db25fcf8defeda4a347e1e708533066234d4ba157e9" + }, + { /* i=996 cDividendBits=2580 cDivisorBits=1053 */ + "04d7f2d98f7fd629b1c8503eb4a531c5d26dc39ca9c950a8e24acba997206ce5de83914554d246c0919a16b6a3d10176ce5c6e4c87a8ce8f3f047bd2761df93731b6075ecc74f429bf1cdd31c34ad03151158e83cb1ac73aa2f080e1957a8f3e1620d85f0a275c34f6d1c95cc3535db11d2f125bb48937dcc3b9753e000d03a259a9f37dbc7486ba6ddf2b23ed318064c256ed9605b88f362d458fed4799651ff4d688e4ab8bd5f5bab2dfeff593de2468dbd22057a07aa7307962d2979372a9516bbcb44274831185c2c1f6ca858f327129089741403fde8becd3e07b188523320d694b92209a74e00db0f9222f52fabf5c72e50e74a9fa58b84848902685c26697318a02beed87aa7ae1e2dc9f89a251863c0681f3dc1e6aacd0c471d06e274a8f886ce38c5a436655b0a5337d9308798921a98c22e081910890c11bb557c8e4a797", + "029808d62489f7b7a33f5f8795e96ec411e77ab8d49514597298d3d16fc6659a27eaf16d0c26b1c81e85a96a5241173073126e7cb36a24c257bc03059ed6074a126e529ec73a8cb3246396aeab6923ea4fa8e277f64147a4261d6e9791265dc0f2b2fd6e37933311aa7421ee0d40db0501f075cb8998e11c0365a193cd5c965c8f071120", + "01de071312cc99d73ca862eac9b7150644c1b1e2742338d46e7d302675dc3f30f2738363f2fd30cfc1f7141518e323ab2ed309b944d9c18bfaee0c616d8282f2f2d3d4f5bfc47e138c0f6042e5a72b7d3507b5808061281a827c3f8d4f2ec22df0d17d74193f10ca50152c2e34b5d9789526216ca6316ae58fee1b768274e4499ac509ac4b44c16d5a4075ede28ddafe3021f85e38594ad45ce0c96ac420c1fdfb52a0e71db8ebc0bd14aaeeb90a78ee15469097856cb75f9edb124204fa4c7c", + "973d8c234243b2960c966ebe9bbccb42789aea4c5705235ffa734f0017e42f1389034bca2778e618efe0fd411d46d5c3328008c21788176d2341868e7956525e8a1314d3f856de54172b5b7f4fe4c31ddd8c9adee48b35f91b5921fd03ec28128b136916e728acc8169add27387d8d8b77efca53c1eda1668facd4bd98f2a12f22dc17" + }, + { /* i=997 cDividendBits=2689 cDivisorBits=2639 */ + "0152e22dc6df4ad397a55ed742d013c810bd8e086da8559ba27e0bd9df9c28fec86d03b2d098c34da2a4ac17628d44e0d13810ffa40903f5b1378cd69f6784d5e96f65e899046e46053d95a3ca9ff195282bb5b98bc0be975622539f4de8f3f3e8caea9bc49bebefccf813ad6bde9778f8e338dbeb0610ddbf21f32b53acf8ed6dacbf2c8532a420f63181d4daa550719b923b112eb2d67d40259b87b1d302987c04aaa00f2276deaaaf6865b487c957af6d06ac51037c37e5b0d490b2722158c737aa1e83a209979af99d75607d6152b8b0223a9a11842ea3e32e0ec205ecf4e96d5eb440cea56f047305acbeed6d267135275334771e5df4830fde3bb8066c940b0c2deae6415694f2028b54f94b00aba805fdc9fae66628a8f61a773fe4b866f7ee2ac77b13fbdf795741eaa756b9cb1ed9be820f7ad8f0c9f56274d27b27773ee3b8f9d49a74e9c5a6caff864f1648", + "2c8638d141ce21472d32dcba45e97882e0d55411dc3dcca1ae5203a798b182a756ac598373fd29e8b7be5aeab88df81a700d23ace184a7db5e5c8cd8047d926a634b2f6edf09d0741084d10c9601a3d3bdc97690b96b405c3123232846617773c24492d50b4a57b594bdc3501e3419dc9fd429f3e1043811715ba0d89f559c8d35e5958bfb9ca1205432a42c01910c2420841c3d3063dbafe8bf002a9bd6dc241a46bf57bf3579aeb42ab70c994a222bfabd305ba87c363dc8aa0d9b5515540a99692fa272ae65c6072805a97e1b8a8661ec8b064fe3b2d39aa4cc980bb96c263db3f9b129e309a612c3519b2762a5d3255aa91d18e5dd8ad63b4330eab13272c3df34071408b0696a51cec7836c23e652c4da1b5b592748c8b7eb1d19f1a63f292b4b15482883b6717fbd524c6b91e21f78ae7a9cd098a2772a4fe8cfe79250310df69a597e0e3c31a3", + "079c77c9775d9c", + "1d2d7dfb76beb4c2d6dcd5d20720ae875e06762203eabf81f6f9e3004815b132b855557e582342621ddfc943ce27bdaa535866cfd7fdaa5f05e7d8c8b1963f9dfe8d991dcdb087090043d19115bc38d4b30b77a12745f5b5e77b1da4ca763bb32acdfd7e54a4e245b469fb268cdef865b59344ead4be6826324e626249d77d31a53a5ec2d5f3a4356c9c61ab04c498c428f32202f17896b374db3fa35edb7707855763e8ef7fab00b0754cf5c07f2d02c1aabacac570d83728c87ae96c3e6662d725847a8ec56aab859575dd024bf01937baa8f47bd1d2a9f823380db816d922327000c2d13214b90d0c94da636123f9818c63c8aa1ab4b140cc5d30bed21ed2b83962d77afb3b43c153de5cb2a2d7e7b8283fa4d5e06d9597a7704820fc4195b99521725175d02378d567cdcd5d85e7457a092c2c14798878324a6adfeea312dde332a02f49edd39ff4" + }, + { /* i=998 cDividendBits=3824 cDivisorBits=515 */ + "b3a69ec01f2609240495b4313d42993d67caa41b3eb74df51d88bbabab3e791b18440d3121bd9b8366ba8ab1de8ee71b6cd659909bc41c69e7ace28974e79d396f99b6e623bc99c8ad107c78819c1e6d14591c7633c4b73b2e31afeb3a01421e6bad0aec4c4889d59d091676deebeb34cbe25a256dede72e5e2a58a2062ce3d15e5152fe6d46b99aa4ee208b5984083c79ffb83b13745c2cf2a694082d1f4d94265307ab55b0806b7dccc934cf1bf6282a835b24c5e2d9cf10f789c2d662ef1d375eeb267d844830bb4dafd9b3fb5a73c75bfe6efe8dff7c05486628b2c17794b0175dbd1a9f98a71bbe48b8d8c12b7b5ee4ade0f894c65df7ea973d610866b607d99276c29c8a2ec9829be254c2aa08c8fceabaa5a3f68d18aad469a353af7d9cea1a788277c614c9399faf08501d16dfebd9643b07a4b8c0d3e23da20706d42a6137c27c64a2466d3e89e011b8bfac039a0186b26e676087c4efb4efe31c573315aa1e7c0295305a0f9c708867368ba93c68f9dda3391f15c305c888fc1eec8777122881923e6161b72fb638c8babdbc6768d2863f8f00ea2330eb2d12fa7f9fc9890d5611f223e2e47d9985ef77cd4868b5c725bf78f399f1c17fd9b8dfe35ad850ff2fdfc1347c24520e31ac0bc1dfec561d46abb6448266fdcddd1e", + "041dca499303c84f1b5c9a2156e0086694aedaebfbbb0c28be04668fea5621c5287c71a106f2c464de6ded423c7f8b6a84c6fd5707d42f7d7f6aae32079f874823", + "2ba49f129f3890c349aebc3e5d006e191b042de2d47e1421978ec30f97c01daab4b41bc874947cf92bfa451d97d74bd4af74717f7ddb0dbfeb50eb64aab3ee8fab3c4c74c10f84646d27abdab29f287c5f441b94ba750345c40c87d3019b48c71352c90ea623f80cc5a4819dfd2d974a6163a2ac6042e80dc33138a6ec004cd4bfc499443b70600677435d9b205790febaf5dbc6f2303a84a9f36f3bde3649fc42b68a1b0ca21b3bdd073bf21ba0e2d834f859aa6fbd60183c4a906581e9857228ae7cf0672fde7fc9c7d1626a75ac65907c644c88d8d899de50e78b8b15a4cc824527b349e2183981c87b2566a229c90b0c3d032705661ce179eb9f744bd85591bb746fc1d7fdf409afec1841eaa63e923451e59a3e3569086ee6797da5f6ccff479d51e604ed0e2f9c153d2b35425773fbf6fa1260a32896ce9da96d62a1949b1052f9f962e865fad022303d9b3d93f6e6583c62cc4c9a0e32471f16e607b07fa57c412af2b2df37d0087aa077e68f4ba9391f4baafffcb2ecbf054d944ef0a4e4c2e46ffe36245933aafdfc2c40d551860254dd2d092a7fa762aa0eea", + "03249f20d5a2e50395ba05887def9b818bf24d3590ccb53c0df6c6e1bcb6aa8bf4426f3be7a8e270fd536426a06cd8e12ec7cb7edf6a89d38b4965376d78f60320" + }, + { /* i=999 cDividendBits=2878 cDivisorBits=355 */ + "1c9aafba64f92edfa0197d08b89b165329e2fcd8e12c26440b4d496f3b1ea5072249a5c20f9698d551092957646db101f1a68c5c7e5d901f23a5ba95528ecfa820ea3fb415680449d6f9f106c821c3f85a44c43284b434cc1569d260d8d889ce021ef42d6a3c25bd88daf44b446d5e612c05de9f45f3464168ddf0eef00ff3472d40a9366eac37e03ce310e84d93102b05c342b5ea407c4d81751d374ec9ecd0c122827f507c049ffae17157cddb232c2893e527b4ef0b22751d74d592873e9c58f2ddd14283689b7822ea31e4f886ad8fc972e0912130cf777a081c161139432d65c66b10354afa19c4b095442a22199d9ccffe8a0dd749fcfea0de06af65c04b0814688bf4655a733efcec345aac25d1cfd403490f293961011eca0c5bd1aa1c74b42c576af5740afc7f38931239a94c25df7ce6071b4f2f8f30e72a132242e626257b759bca69f465117921ef0014fcfb0d9f5bd872ceab8aebc62f681ae5f7a0afdf79568aaa", + "0344c308183d3631910c7a691586f99a2b041b50f4c26337bc4a49ae925e12c590c893c8f40e0a808cfcce8b35", + "08c04fe98cb1c663abc03a7727e7d545da8f9bf7fe6739e59bde8a152e4d6e749e5c4cb7d8fd3e940f7827333a76efe411ba3eaac29fbb961459a6c28ba660dd44d1ae1368fdb5911a288131c746b890f002e3d3ff6853c44c9f733edae647b35f4b7831915c047e25181ed2b90cb7fd2fecdfbce0ea6c86017240927e7d2b4a06d79d266acd82138cb4a42268290651c30a9236060ec1be9d53a063324d6a53eaf7d9462df682ad23c1609589682bbcbeb19c5e25567170f7e3d4bd0348cee9622d1b0bf4046cb65292fd3bdbbd4ad1086a5835986c1bc6080b020ac7ca96e07f9cb554eb4a2c6618d37d5ac6cb0da7b9a70bfb872729c4db9f50c1a5c27fbf7194d649830ec88e066e7f188d9abb2266c69b7b77af55431a3952fee01d74e14441e7317f77960237861bae49d4ba386d229c1caf3a805b45c2656d", + "9c4418c4c20cb89b4ebed22528434005e8dd54e621f11ac28796e1a01cdb9309193d9a90856d1838914f5c19" + }, + { /* i=1000 cDividendBits=867 cDivisorBits=800 */ + "03c2d3ad8913f4570476efd2417dbdf0ef85b872d85caccd3fd4784289e3f347ea41bb90360d1dab2f2c3d43c286bcb20549efecf292c7d10138078cfe8e1c4ed89c0a0884aa61658834c57ee7a138b24b987a7c428b46d7afb4353fc0bddad600cdcfa3617778c82aa239cb7c", + "99f5e11a5e7be0b166ca812999935c55f1229e2847bea5537b84839723a624420bb27e478f8b2602c5205b488b4d33d4daee4bafac29292098dfe6129e56f8cae3542fe239d865102513cd9250ae3be50e9ade06bef01bb7a5d81fc4501aae6a7feb5d60", + "0640f4504aa115ca67", + "833fc5f0a0020d0a07dea417a799100887fe3da25ef9c970955a18b853796495bddabc9e9de65a44319f75cda5b20f9bda7652ac1f4adf54b83bed48c102792388ec84fada17cab7b4e064b83bff74f5ba6fadccf9d99c3c1e15f39f5f36109969f979dc" + }, + { /* i=1001 cDividendBits=48 cDivisorBits=26 */ + "fabcbd7390dc", + "0d8942", + "128604cb", + "06b186" + }, + { /* i=1002 cDividendBits=3772 cDivisorBits=3334 */ + "0bc720a8ab3589de3203958f1476e05e9350de9218bab9d1a8d7109ca0569d8f72867382c2a05a7f175dc20c040a463bd93e41ab06667b84b720a9a8b85088fdbbffa8690e045003c0d30801da055021c386a4977787e1963e9902274563de9a7ab8a5f553b4c55b748093727e3f204c75ff74f19245a6914d1f97f357b2e1483d057441d88fdaba2e7f3866d3079fa398e2618e3d737f625201978137ce434746b08f4fed950654098834fd24ca17e47aa5eb015171839cf154a2eac2b881780bcfda9b56543ef01305bea1468ece2f0dfbb2c177fd80e9c5d97e916729bf74deb1a43a4fd59dc2470b6a0320b9674888e8c5417abd5754c1369f687796fbbba19c0ec64a41061513d4b4a97cf2f99b95a5f101c40fca6283315f913b8558f0c2f99ea78235b970540761c7badcaeffe163f3852740724b72cdc7e5d27924ac7c167f8534f487b5e25e57b36550e294df56c02a7169a67033550d8c3d27ab7ee2b544a9c7ba9dd67524bd7c57210addd71b16bdf7211dd4cc4c1b66b0e4053dd409db6ee41874d287ece5028e2297a087df057ff21ef64eb86ddd84b0b3904b86369540ad196bc229e08766113671621d312ce42f9e521e60d2c790c43fe7e2d828f8179b43569c72f0459bd192522125cf21ac3367a354", + "03eecc49891afb7739536ad88ddf03a0831ebc6af8d574037072e62f840fefc535ffadff7cdd507a05a546c071bc01c7a156a9327c9e5eb00561e8b311e50b91f85d65f43814f49063f80fe6f192e8b9d758101c4b23e6300808a7957871b56d5ec10826808f4aa526f54e63e43f7c82dbb942d279b46e515ffc318a5bc9cce3696a58c9798df9e011e11ae75b1c94a7e921b2a36b507ad60744755fb5a6fc10eb7d5959f8ae83498af8e5747133f6c9910fbf5c3e2d18edbf8974c3ec006388a700355ef149baad6bebd6cb37241071b14c406e857e2cbb0395a8f972d8af8129c518484d7e06240d28a9fbd518d7152c88907a6396ea8a9c5a9e86a51b5023f8e805ff4aa9a09c81dc60eb5af9689a35481757f3b4fb07b8a1a693c92aaaf05aacec39a581b2ab0734b69b33e24b326126898feb1bbc11df7d9f5b1607bf0d4e7e81db6f83c74fca57efcd085bf3597d2f9b121c25dda90244bf88fc20b852e74a3244a40146ca31f66c5978fff37fed26382d0c6f576e9f40ae7059f77954655b11329a2a711922654925cf1ee9cfe34a1a0bb559a209a1d00e562f4d6e3056", + "02fea930c34f4e47b5795d8722ec100b829feda65905804fabfc90d847bce94a1a3b5d0424ec9fba61a5e8886f38a2fb949f0ab56ec142c8", + "013cc040cbbc7280f02b28ecd387ccfa271ae56e56aa1b0ea883e8f3ce0ba04bef2e7c24e614d36d00a1097babd42574be1b6ffe62c5b58e21829815fabaf0a5fb7d1823e8003c8340ba807ada473485866a454d2d2f71e4ae60e195ffbb1a3a97a06afd96cd7969b28893aac4e5c34674cec6ae0bd6d71524cbf4caf6e98960c7372d2d99a5bad3f3c66d246a39513de8bfd7bf05b3f26a7dcf2405eeaa19110a9238c07bf36c6effa14fea7301f3b1de5a4c26a214bce6946d140176392fae59ccb301c032448b9e5de8243ab581f346d6378a64ab374d45c9aecfa5b7642312c34026b5730359f02df0d96985b1054cf82dd660998df6b08303b5d47acd517b5b166c1e7588cf3adc7c03c28ed0f7f8bdedeca0ec8af40255d3039830c705d81396703a5f2d8676c9afc5fd2943936f7dc18f3656aadca86edb52d24953c7e8daba9b340b629a637795529c822ca071bcb9b431f7f3272471af6a701ac9410e7e690e175d3d712c047ab66ff327f3891d124e51398f5357f7178ea6fd2cd1b7366bd121f4dd631f3e6e0c6d39fe2566b252c3212e05ac0fd13f591be805b424" + }, + { /* i=1003 cDividendBits=558 cDivisorBits=173 */ + "3c25d28e3ab76a10653828da5315ed15405c907e47d5503e5646d02a3826946103b59d4de7c7f76531afd170d71795f97237fe1f14fffac356eacc044d04ca9231cee13ff0b1", + "1a9d8d67349357aabe503440c462f13ff1562635e3", + "0242879be93f3a44f3722c002261a018d30d8f07e9a513e26630eef3ae969767eb806c59c4d85115ab57bf02cca145a111fc", + "0203ad4c0482d2bfb5a2a99a18b319f734774bd23d" + }, + { /* i=1004 cDividendBits=845 cDivisorBits=474 */ + "0457c717484c96ba6e1e606b21add577ffa81907ab1b007c83ebf9f046d2ce21c6ba699319254a37aac3dba046f7f741b5536e7ded8bb01390d6f75167b10c5957b6448323ec33530f16518d90b56f608111ecaf54647c9a07852fab5a69b900843c3e9ad6c4545f549a", + "02f83ca3ce9f8911810de8aa2b6d5d21c48642c7ee9092086b090854dd9ae9214d36bd8a49bb3f26461a5d3691aed040c1ced72fb77b0b7190be7c65", + "01766079a3c553db7a1f16d3021a3291d9a1bb0466aa23126442ae5f30aa024cade57a90566cd16e4ac84fe1864ae9", + "0194b1f34606aa8c969bdf0547977af0261fb7955ee7273077f095b98c20a3317ab06d5ab756d4c9c0e8a6602d649a9ff9729335097c1e5ba52ceaad" + }, + { /* i=1005 cDividendBits=819 cDivisorBits=739 */ + "04d841ca6e4b83b5bf6624a8b476473f037fc1ece231327b10345a81d9c3df3ac4bc63f1f1b75b6f22a858997e44316272a4975771b90b6720f6afb9c7ce8ef336effcfd7088bab19e85492f9a3299af409203884b69b4d9f43372e15548df9b9ccadd167a6ef5", + "03c0a6b98f93e635fb56f5f1ec194fbefa37d70321537854ee216f3704376319b229991df0d4dd275fcb81ef6dd14a555231f5f63d0b559399b405972ac68bb990d953fd636b164815cfaa2d036c85ff5944bbdc4a81769b7deb8514ca", + "014a82cf7a18a34600d7dc", + "01e8a90562cd1f8767a1211fbfaeb6db7b09208c201bacaea54a9e72fadec3b09b13398e89c433f3c88440f39dfe4229960aa9ebeb98aaaa2f2ffb726f9dd500fb9ca31207bd9dfaef9cd3b124676d4a660b8e5c88a0bed98cafa6eb5d" + }, + { /* i=1006 cDividendBits=3792 cDivisorBits=2430 */ + "be84453a03ce844d3aed4728b72affe37be4cf4b3a06eaf13e8fbe10c0fe5f7b52fa1fc4ceb48aeafe912583ab1c0131fb3374f8ea8b0607913f467ac5fce524c022800a80c036f22ae76468c51b4681e1140faeb765c26ad6ab68275c50752b59b2f5437821c3703a9da0895a80236aacfcee02889df843ce3be8c6fc38689c6bfc266293cc3d61af6cd08d58d65d1ffa2a1d18acbe42398aacc3b2c1ce87e5c67c5e01f12a3059042dcaa1f57b490ce327b811af1fb6ccad28071fc27a3715c286b1ac18e697ec70f9b6375325115fab4083505f939ea4c71787b3ad36c637035dcffbca4ed2b56ee770e26fc8aeab95203791426c1a89956bbd89aaadea1759969908890348c308c914d4a61eca842c0914750c12ef7c00c10f6d01dfcde7ebbb5ef246fd6cf00bfbbd80b2c6ba6b7bf3c8ea312b844f609c80ec6806b2d81a6b472a9e371b99855c3f17939d14bd0e5bda83e8412f0f4310459f692afbf7bc48f35f62bf0f760d358fcb3bebe40d24ec16d050cc47972fd7c1b9ddd4080e3e783643ede57f77de8c7b5fa6cd0fb6481c830aebe6a70fd2e5a3e15dad435a5a2876cea3410dd53458335b5e2fd05cb61e6ceb0c0efa30e1ebb275f3098fa55aa43a768f30bd0654e49152b65300a5d902b3f5b279b9c0b919", + "12146af7d149c576a0d8676b54c98719e99889425a90fb9b1e0ce41e656d6666ef299f354a1298e524fcd5bd5de5c7c1b07606d2fcbd699a1e5e6d44b480dd26938dd98d5a1a168da7b77e0323f456de8b39f77e32a98a5bd06458cf232351c18ce27eb14d46211032a8aa17e95085b0fff0177fced7f32f29f65bee9cf9cd963a904f9fd1911d5d183c8e2c4a9690affbd6b9b5ce8aa8d64d1fab439b41f36b480cbbb30440db7b10caa603eef5d67ce3cacd50f68652ff6e7c5a816352795d01f4f3a6b94f133b30e688e73b0f0508a05c3f29cd797ca03c6a266b90d3f7a0354727b7c1a0f04d1874f7db6d1a2b735a439ad1993df40c9341889e9609afa52ad55b700e02674a4148c2e2889ae9efc1472fa015f41b4ac5aba5a3fdd2ff3e5d27b71296d671336ca8f39d55cc2316", + "0a899e181231b0e139315d9d527459a2230cf15271180a36d6cf573f40b2a582cf835bc36f05c921dbb5d17162177f960eba2f40bb437b7ee2798584f881e000b31ad88d82a6ee75c38fadf793e01ffbfc77826331c16931a646ac405d5dc63abef27844074f739c109b174bf776a1d63792d1e5776133fa07ccdccff64ba77352a493363844a240e9b97ea364315f4d838297f20a5b171031dfdbf193afec71583cf73ad2cffd5bd77c22", + "0fd51a2591edbdff4c174c789df92fe1a41a3693019edc1062e5638df0fef88c6c2f00955738024723abf2fb284cba1da217d334b82c4dfd43af3b9a27d175a3b6c5dc8a10aa6509bbaa19052daf36da957e22f454e2debb16c67599b9f433c7fbe9010c5daef70fc4196a03afc91b84de8d14646ae0d691bdf244a3546d2d4f0ed6d56651deca3cdce8edf9ca2cfda24c854271b04e49ac28325df5bdc5658126f1690d2fa5b80e642805e3533a7abedd0ce0d0a274934f33ffe021f909f6991ecc17b140fc97e334d9151027f5030dbf619b38d04d35db26d1fa8a8d79909c440c950e765be1214b1c0fd5223dc116490d1bc8341ba3aaccd54e6ab677ee96085b7c6e232b76c64e8468af00d35473a67d5506d4bec1530b51c9ed574aa2b47e01b521dd50f88f49b90c5d2a2b682d" + }, + { /* i=1007 cDividendBits=3923 cDivisorBits=1306 */ + "03caa3c282fa1c9540d89124193f1a9ccd4ae0cbdd7f7721e812c80ad198b5c7863e8378cee6b2f8108532a06fc6e9479f8199ffb397e85e9a5fb415af5cdf7ed870c93edee1db4dd776796dfaeb21cfc8de01a2a2ac02908233eeb0342b8d956001ea8314a05c634cee718a1eeab0ffe4d6577ba7237732a7271b0b6f8cf018907166369af73c35bb161a7f8f07bdf60974e0d2e31b78302dfe28ca60d23b00014557ef32d230e008585c16a56681e64a443c42139ce7b444176962b56a4a31ba143644961e0b86c072e8995218a82874e54e268b0d265bd316cb340ae1aaffe37406e83f5cd4e7f7330c10f9d4c7f0dd83867a4dc92c80e9c22218dfc81b62475782e1ae5ef5855ff2fc3eb4eb2121d4108ec3b24a9371210826ffcf6a27ea3cdd7b407bb8d9c9c87943a0de13d659b7fd98ddb111a1f63197def1cc579114e8141910679ceb625361a71df0c6a26a4205ffceb5daff55dffb74bb2db09b02bfa6712bcb4d85f1ed9adee770ef50e90542324f7a7dedd9895ca921a0b5f1f06884df6973bbd0efe8ce8ddbe5e737151f8e7148d31591cbe35c6814381e579d9f8c7521a9fa52db21132b02257f4897df5060dd79c94a658751e4c36215aa3be17578bc5f4ade06c912aac65cf489553849a59f6d1e2f7de3fb3707bc1b4b18da3c8cfdfa6a563e1c1ee3", + "fd395ff3176024db359508d218541e4c6bee4ce237e42450891eef33001fb9895b41bcee01e495b409784f599e8bfb10bbf9402b3dc05614e10255d239325b549a640cd1dd39419dcbca4b701b9527015f5c52c9410d2ec0cd6bf4faaad78e0eb34b0e08531dfde85ce065770e677c8910df154e8d9ebcfad013a506efc6b9bf6ffd83a854eef8cc2714ebb2fa87748ccc8155267a1d23d15c53a37aace9587f60f666", + "03d547acca7ab54242cf861e77bf4966a33b9155fa65b00b70ba26e9776fbd5699d3d591d9e02997464e4a13c2c0a1db3c16980192f19be1013d7d32950a09d673c53f169de3d532968fa75ed569f22ffed0216eeed1a3d602287409d78985c4f21e945125045bb9dcecaa0b8090cda82415d3086f1325c2873127d0ff9d05825b5dd0e067270e1d5769f4c847e675c81aa222d8bec8e162466820b76a98efe550e9520100cd501b48d5c33c3903aca2272ac89a0da37618001eb8de4495072fa4e7552cb5f123b6d56da59dcd2f2eaf86118be8b5427265cb055e7df212041b5b2a5af5d0a001d58de96eabf9c50e02dbcb0078593d65d0302031b6cbf0832d4f3e46f98387b40f8f9de931c096d3f6722d398046baf9836e5da7b6866df138a3141542a8c3fb3163f382d7f14b4f4f5958bf0acc7e70d6f58c9670e26a2983fef585820dcee4cc", + "06c4fa0252964007eb28e3feec39b8f8f2c3f88e0131637bc4238b6897bddcecc968b08108cac13cc588ffd3e4f399ea44ba4a8651f3212ecf6e43476f4bcbe1c8ad13381eab7509fa460d1f61291f3da1b8d65aeec031366d014dc3d725925a99f18df3a02484c375733ab73a57c3a4d432044ad383c63d309c4a3ba89662ceb03ed74e94b6d6876d0e53141987ccbabf1eb0b0fbf80264947c72e5d11c08ed50ed9b" + }, + { /* i=1008 cDividendBits=991 cDivisorBits=734 */ + "13125e742f4f2e39205078e733422dfcbf10b4a583e60936efe82e8666b3da95323cd6404359feeef0d0c007af0b8203c846982b529bfe3765aded5cece467044cdb109aa4dbf14d0031fdfc311456351fc8f802eba052cbd88f62d1b8ad4d53642c11815ecf85fdfd6dbed22de8418762459f23bfb99bf6b9f569a3", + "27355367c2763469fd28817ed80875569e053f9008133a57a7ec653b6e0764278573e5666c03cd932ace2c4e0b056e6b0637d98d978828e0f71ad016c9b14d2d6c6e91d7b3e814b99fe8bff75980e05e03d86e822dedc3d6e25f3717", + "7c861b0abcdc84afc1789c9e426f61f1b04b2806823c4f978feb291da1d3930c", + "042f0700daeec87417229adb02c8ff3a6953e3a0d1eecb3f946018c3ec040f6decf4651ead431532829f741094c54189a603a3ba3da0efd7c653a35fdfee5906201f9866db50c227674e9bde0c2d01d561ee1f3032eca72c91e79f8f" + }, + { /* i=1009 cDividendBits=1009 cDivisorBits=788 */ + "9251cdb9acc30b5d3ce6869286bdf72c78d14e5f442807ac508d8eec68983382d28b6832b308afddc404d79c7ce3c3fb1716fb7cc89cf07425c7b432637c39ab45c962c7afef61757072dbb623cb3285b742c5e104b91d13950279ee37929d10f977e644b25bd62e7049df3f842d311c28e1a6027fbfda5d3d554c479e2c", + "075b4b74221278b201b77217322db87abaaa549afb50c525758a50c51b85f8da50a3775b8d906d5a2424b07163bac7653e940f5659fd802ec4adde5d4a2bc30d74543987d60ad690dbd08a9a91aba3eaa90b1a72c0aa62abb57520373867f583c7b1e7", + "13e3b6b8426308e36ea5a25274cd0ad3089416ff2f7968be6170e915", + "03dd576f84d743cf8777000acbd182f626faa9f9acdf9d517060c3c252fb255605edf578d9be32ecf2651a0232c35baae5ca2769d4cf7f428bd3eebf5289a73e24d0be722381a35493db0da73cc4e5bb62bbbce2ad4b5d5a6b21e10c1b0e085feac739" + }, + { /* i=1010 cDividendBits=3405 cDivisorBits=3345 */ + "082dcd1aff963bcb03ffacfc89bfdff1c28c2ea575b0b30dee23cdf26743e37703cdcb9ad16d19909125615ecf835f7ee8167aba1fa8aac70e3360a9d026bf311bbbd80af4430688e8a5e479ec87e3fa194b7215047bb6ab74a83cd85210dc16aa860116c8814ebe6d3a7ea3ef884857ff6cd42ae41a4c6b9ed9d492e1a39dfc23e835d7686eaf907919f8f5a56b63212731408144bda02ed4dc1b803aa9d008b32a44d215816457455e877269a40b52d9607893a04dc2771e7c69b22569a4318aba2c6654ff76e7622bb2a08e7aecd27b851b3730177ab54088e04839bc8dbc1fef54affa1e68d0f6da502fb32f992142e123551841dcac8196e9afb1ba8c46c63b2048977dde63f5b45e330dac744b6123926c66d12b475dbbf1e735a11f34f9e9ebf1a23964cf91cf714a7fe6a4f62e88806e434808cca89db4e3d97d960a17e238cd4002f9609fbe49779f7d2b3ff0666870df86af73e1e3d5bd588da4b263abf8c54375b2f3fc29874ea752300f0ef5abb78fa565ef59cbdd15daaa5c74498d65dedaf4249c99b04c21f99356fa63997ae951994973463139ec381abdfc9f439784ca3c2b3ea45c", + "019dd1f0a6a9d7493e8238671bb0bdd483b42ef4182bd8ed507cd761fe1a302587772eb2905a5463cd6a8bbdee8a9dfdd51fea776070646e56879bf3573ed23a34fc99e46b595247b1d7a7dfb1cd2b89c315206faba42005afbf034d89f9289c3ffb5575c6ae157c9b3c14cefa160ce6ee1efd80062344e85976bfbfabbe048fc9f3cc69b303bc3064347cbec71906d237979ea3eef544a02da029d6ed0478f3bc233f0f2c8dd559d56f7249591112bf1947a7948334d2f5e018bfd7e4ee9d463a72526145bcca0bd38a14d5c832ed9fb52406c5e5678ec3b6aeec7291520f82722141a31ee0b3c005e682d2469e8216aeb6bff4c4cce45725a63e656d3088c97dfefd15deb96441b919a0f6ee441c07fed7482a876e9e0e404f007f53876844fe287b5587422bb89d79bf0f0903e602b0c70ce7b708d745d81b291ca9b5dac05542669e53edfa6ac3af2875560da0dafee4ec0a8742b450cf8a5eb06476b3dd00c62e32a2d39651b5a55f75c87f2b4e8986ce6d99ba12203790060d71aa679e8784ab98feb502b003b4b3ea7c8c0264c45772047aed97f27851dbb9648e4192c11d3d", + "050f47d335a66f8d", + "4dd3b9d4a7c39604a49751a06d9d49fa43ec18544fc005ccef234c5fabe2971a4958318edcf667f3fba912a85791871acb663506ea71af716a4b402c205a7445996940d3db5423a89b2291b51cedf2eee31891aa60476a05279193a1bdb90affa9ae77207eee93f0f6404779a38ca587cea37f76c05e51df8040370565c9daa2e5679082f10f5d3f4e568aae776279e34ce314343c99c863b84fd09ce1595216f25bb682c19d922cf30182f824dc601ab217cacd0619cb7bcad74fb7f0b4bbadb869b8d97b1f7c7e8c86382a651d9ef7abbbdbc240cb533d128265ae10963c26992c31df49fefe5623b960f1750394f21ce0679221711c97930c39dcd1f5e6a569d0a099a52de8a9aa5aff0432b88c20c94a2079da13f9fddc7a0cb94319ab96c68c067b643491650d8f00e13fcab07efa868592d38dabc1182e9304c40b295ed6fc360b14ec0b965de51ce070999d6fd7e7ae3c72ce19e441dc2a49203e56ddd5f17004c07f716d95cea1d48e792230566de9f4b9294494f68062d5567a1cc4dc6c74e2339b4dc836f42f57d11babadca6aa11a1a2025526c91a3b2d8ef04a616c3" + }, + { /* i=1011 cDividendBits=3261 cDivisorBits=2542 */ + "18d048cc5a0fb4eadf1bd7c0bc23cba281b2c8922908db41a13ec25e71851e0a662f9c5d714d1f38beb9ca0c432e186dd0de4a9b6dddf7e2689315e1acebae617a9b6724680e5fe28936aed7c1f2825b83b9a6fa03d9f9cc677f7c983917b6c39b9191661305be80e835b9dc91308b84dcb1407f6cfa1128c03d4c5d793569a3396e9fd607842bac83bf1c290aa188ba32133875a9b79c2ba9226f2f55f2e0b90c4b5caa5126655f7aee448acdf295a0c2b7f9eb60be5847718f883c52eccd0d3f8cd366aa54646d16fb62953842b22bce8a950a7085e0909861e1612b46c7bedacfe0ad1c6c8d53e7607cb14ebea6888ce39f2a3b3585c6214493309f8e459259ddef078a0cdc8c9adb168310fe2340f538c84cfec036efe966592fd3664da1acd9fcb8288df7213ff4835461c97deb8fa1db0ee54b95390426939af0fbea8cf85104a09b95196d5687608f07f211272486dd1e6149562ba3a57a5768ccd7c8f7b9e3459e98e843850c2ad537143cc83f1620c139dc08bad303ffa30cc5e0422943bc88c3a2d89486dba6dfe521a53b77791581b3492aa2", + "2948fdb350114be74926c9b1c3c9c839cf03817082e514bdd9c29ac5f350c14211cd190e164ecb02f4d7c28652e7d56939f4f20328dba78dc255b38599f4b25ae90ff4a8cce062bef8cce3c4a3111b02cf4ae651a08d68496a150a4d95e25caa201da4a60414ab8ce4703709c5a34bef502d88f466b93b875e6a986e5f71867488472b54907c28f5b021afb3a4d66bae27a64af836db020be863d37b03721cbde3e9b90f31806b7ae5be82415631ddaf206f59fe21ce9b930b5c78c05feda1d4ecf526777240eab15ded162f19b82a4c39a231e3967536d200af3e1654522c925ab4b5152aea73c12db0d8e9ef66db8d6e2bfcb4c7f9d5bfe0241c31daf7fef182e739b62b64168a946f7e527e91c4708cbb1d521853137188ce338e18f29e34345d2205f608420a0e01f3c66351d12baf794f1441784215359eae08d0d9", + "99dd2000488a50124e6611f7c75f8197b736c24505b1f7d159f68bd966479173f1cc3f30b198df3bb51c00c62f1689dba5a3472abca2a4677443a8c1b23f6b1f2c2b6fb2c25715de8d5e1ebb60e079ed1eb151e22574e613441e", + "1028bdae59fbf87a4f28114a641ca34a1770a00836715fda72a74bf3f5ffc51b31b731b77ab363ecd2cbe8a23dbc28ccb888418053cf78d0e7e804b52fc8f2e99bb881692c79ff5d72d13fe02ac61ab35c7323adb0ea3f3ae13ac805dbb266b71e6145f30568461976c0e124316ba6d81d5d6413dc47ab71854cee81905a005b954d952b00b805f080a97409bf8e07341b7a2af2f1eba19ec15f9e1b3c21be2c69bab7fac6956f97e7a0dc7954c71c05513b5900e5eae890c818969c03ad4c5f76abd195dd2751b563c56129f13d87275e7025c2cde695b0f7bb91c2b6a6755df4eeb6793a262a9d6f457f4e961e465f5c7c66020673b948c994dc42d00b0d42bc48457ba3226f2c627259d832d2421257e9d60de06099ec10d03dd3c2d3f278e445098695b66de151f0861315f866b5a1bd841894e260dbd11080ac0d34" + }, + { /* i=1012 cDividendBits=173 cDivisorBits=47 */ + "16da858259aa586bae447dde7a75e8b9da1ae896fad4", + "447d7b2ee8b2", + "556bdd21802126997a07e4cbb9b9512d", + "23dd9f15c18a" + }, + { /* i=1013 cDividendBits=4032 cDivisorBits=832 */ + "36ac5c150cb615f911e00bf72cb6b6fcc0ddb25ba0b38e880965524302e6235dfc84ff5769c32903a0cda58932f64ddab1094ebc79920ef696f55e1646e8a7a8a7f62ef10266d911e142172d814bcfba39756f52a47cfac985719a11cd2bcfd5059e9a4a7135fc7128a3968c9f77b12ac6cb073e687a7a4fd68054045606ff6e86421f873c59c61ab511640618d17d740b3abdade7f7f6db279ce303b9fd02f43a70d92e08431ab5823fd1cf22e3f5b3d73b7c5c7eb8c81bd9562ef3d59eef5575ea739cefc447c88564764725a76c8ee4c17b94c6d5ce7e44c1e0b366345266f578478152877ca71e35b1639b8414707a4332226ffbd71bc3cd9933605ddeb7219579050a16ae457a18ef469a1ce28cf4d182125b59d6b0927ed71bbc5832b59a533b9131640d607ede7178cad8ed2c8dd82de1a2c6d3c7bb904d86a66d73786915b0be5f80b480f12291d16cb762f164beb9ce0308abc7cc55431842a7dc47d215786947a1b9b4736d36f03f12d839ecac4080aaa8855c2e0d40b3f1ad0890b407b13744170e71ed8310d569b1142ea231448f151933dd5d9ae8737291610301d27bb2f5e442799885778d9655e4c74ffc1868dbf047a1b131990aeefc8f7038e1d22808f25ed4de4bc7b2037315d61492f17695270dd1814e428b9dbc5d6caf2345a9aac166fb1326b127665365e41f0a471a49f6e590", + "538657c5af3f24445f21473f66ce2fb1ad0403f51b9c9f21fa423310c302cb93a69c0185bc51a493b751be5a074392a88a148666f22ea5405fd20ec7f05c9bce8e8805a0c19c06e4ee9bc6f247ff470076b23a6bc181ae93113cc7bfbc400008d7567c67b77e4efe", + "a792441064f397ff420f409ea717c4b5aaea9e3cbdd6b218fdb98926e2c30e2d05a0dbd99ae98c25e4fece8eac1e2503d2a6bc9c5aeebf8932dd24642063ae5a1a875799177908e2823ce6f80f53678cd545761669fb6a7b901aba956d174a3623dba90b0edec5645c7ea811e77d2621e36d5d56c518bbeddf0352fe659a95c8de84c2e40584102006b6c953fc82806b77e96a46a461325e1a27e1e235e79055b09148dd9645e6d09139031dc9d1624813d9f7a69811ba78cdfbaff8b0b27f3f9d2e9f59a046a5f3babd154889db089d7e174beb26f9304c4f3e2e304cab59bec637c572873cdcbe807f8ebc3119cbaece52a972d8f8f9808d631d3d5e00043b6db687c3de25236ffa84bc664cd218d2437e6a6455ddd27ac44e5077ea625d5fea2548ee7e84f48d320a7b1b8a40dd8fa84c073779507b20c83963a0a8d9f10efa6d6434047c7b8122361f88c626f350e4f7b7e4f5a20a802ec43b1f74319905b8312f9ee553c5ad619471dc75636c57f1e30083ddc54a73484fada0cb0bc7364ceb463db18480f8050fd728dad833bd", + "4aefc381bdc5db435c9cdf67cb32bdcc769ca5c2e950987c8962c6e09d996be63e3cca34e099ac7dff53b8714cff0a6a9f5f0f6a59353fb801735b97b09fc0f96b6d3ede0841d6092345264a788d6cbe7baf97061992101233745ad940c0fc3c48adb972b5a9fa0a" + }, + { /* i=1014 cDividendBits=1600 cDivisorBits=763 */ + "55aff64fd5d00202b99f9699fb979e2d77b6c9333a09a6c60bad349b005c846d9e75f85156df661fdf83133a719ca435ccd5b5f6f7d6baeda7ef301fa1232063eb17127f04709a3fe1a8ba2f3f16395c8daae271a627e3448af701b251d68b63c5f14c1091af8990f39bc656a786f868526c81ab6650db59f26bb87806e64dbfac56536d53f1e76183add76025b7fc3ed470a9f1e5a4fb7b4c279fc0e3a5717b4b934fceeb724a71f2d3ba91121d119067a3f21610d14109d9cd40545ba4452063876267c0f13688", + "0328d0715f9a65d34c6aaa1ef3548fd8c470866c4a653fe57f731cdf23d816f2a67aa3615af4e6c88684abd4933f1f33fb31616dc6476a67dac9c4a8645ddf725c171575ba82f1836882b8b55d7acfb45d3f8093c7cd9f52e1a3a4060b446a4a", + "1b1f02e26e7a8b7fc60b5c2c9bc91451dc6373814b38bfd1e4aedc8ce1b3aa659621bbfdce20ed02c93f3fef8f814294be07fa949a080366fda75fed53fde0938162264dc1d5839d054d2628048e6818623e3fb36407336492d96bb7255037482a038820d70c43833c", + "1b87375cb7094925bfd18e20fa109a3ffb4e1d954dd95c6ef325b290eac0bdf415bbf79a7aba0e5faed3205ec0f19f4606d8ef7e95b7d13cee1769ed514adaeff4b93d405132456a2af015d8cb90e9f233efba825b3e8135132d2fd1266f30" + }, + { /* i=1015 cDividendBits=3576 cDivisorBits=2886 */ + "d49ec2549e8944803c5df640cd161d65fe202830f6f17e35561f720e6fb037f5caba196916b77df77977306ef31fc46c3e407530cf55e5e66d1d9523d5a73472d14cb58a62c85367179904d7b0b7204bc92bbd6bbcc62dcc028402306e5bf69f7fcab96bb3a8f2260f2ef14adfb56c3cb0543e22d73a3b0d21e51a61925dfaf750de5ffc1c369c1d6e055ebeee360b7b052c2614ef0bb42a26882e25dffdc6487cea5b37be72676e147221babec44b3c5a2941afced73e374c252c21210aebfc45eb7af4a3a71eba91a3ed680675f88a4e40772d0b304b7c4ae0b33dc3bf4c453b7afa0c9c65b29dd14d789b6e98d7894635503d98a00cb4e0c84139f20f9ce2e44edeac23c296afb5c924867902962ff438550edb4776a91cdd0c9b873e99595386572068ecca22f78e603adf34b53bc29cfbb317b585ddd27355e813613a25ceefbb748c602edd1fb3d8140b4bcc4ee3f6bfc880296be8d197627cc4b7451a25715be6a43e7a6341f437e60e704f83beb403fab2933897d153ee26e8bfcf1d0a868e389f277e9e6966657f8e17d14b9483560417288cf27f797d254b7cb93a376fa24645cf041cf441ca9e3521b25f4748e595d86a2856fc4d4ad9905021", + "1a04bdd4a1fca3ffd2d1a911e0e5824c4b758428997e2ad65197c3a91b74cc301b1a6427520c0ecbcf5547b2363245fa5b742f2309b8c8ff5aa74d9fceb03f6d3517780235a485eca348588415b2be75b8183918287f1becfdeeb0523b783840320dac0507a823f2b9ff06adeead0906e0020445c58ddba0b80cc0d6ef5246f4a3f57bb627149f308e39d91e78c6c24e1bdecc9a5a1d918fe537265b99e6991a7c843447170327c96c18e6d27e3730983d2ff20a87edb779b60393c031552b78552592f5e44c76af06337979c78c7423867681665946722823c525ed0f81eb107cbbb69e8fb9b68f3b7c8aeff2fbcca08da77e6b159133f414e27ca43d120cccb62f03fc11c6301c3f55ce81e6c909bd30f06ade2ba4d251057758fbd780a6f053fbaec5ee4c3e5c4166793feb56a4e07511a0c0f670b671e260e57556485649aa94851b153674f9c3a6522a0dfc7276331662e170ad90853ec73afa51921ab2a79b1c09ba29628ef3", + "082c001e18286ed58b35ee7e307d89287ec3ed53deb200a03d2c79bfce277b9372f62cf699a5da249119a685dbdec422212cf2d32d82fd0e2d78fe17a771722b67b026f7c7fedb72784cc2cdbe6dd40a2f9c9947c473d9", + "0e37a63e2355e21f1f109a2468cb372dd3319721c7e6fd7eedeecaa5ee748b86490da7e2c22def4897d8c80b1c36d3d896ed9867ee18317e263e71dabfffd33adaa06b67d0d51731c9ef521e580bc131075323161ec8b8065a405c2316b1065411db6d1848f401ec924350a08373b15f6c4a7d81565aa214ac906b7ce6151492acb941090c4392203e5c8694e2c2959f7d27efd9c9eb191081b6f3371a72a364199d12549f60bbc96416a7965dedee97090af0360db39c101238fbe3f93853fcbd82a37eef1f73bbe4fab7cf5713a735c4c790e0e2312fbce9af93c7787ce63e5a3c093a3cd41c7c15a6a4900d957b04d193571ccbeb7e1d011a3980babfbe1396a36cdd7a6a034f217fd7ec7af7feead1ded5670bfea6ff85e1a99f10b294f9410a06dcb4535085ac16432635628a54c35f8e50b8f22f7425ae0f3a9d8e658997617b29424fc2ca4d62a1e31aa0c86ddaffc20d13b968b6344482485bb64d9ad9a836e590a7c1fb26" + }, + { /* i=1016 cDividendBits=4037 cDivisorBits=1631 */ + "175ccc1dfa8cf5a940b23b2169e314256c5ebd24c9c4a2d2aba3822a8df4588fb845802b824d04a8583f914e2516ede0c472f80976dd63b4f347f1b0f5665dd73614b87e4c56858d055f396cbbca375a417e9408f4170feaa26518ee8d5b405fe0e56c57fda8519ea06a49e0d80950bdd7faabbe40b371b77517a1ffe612f583e7092ddb42a923e3f9e5c6f7555dd9ef23211f6b5540327f743d2db6266a05c8c7482cb2afc827246ff20d654a8a8e4f560b547e25139398e62f48dbce0470acb127cfd6c7893190692a5d87e120af2642e625d5b8c3f34bfae255f1f014da898d2d06d40fcd4f74b954695651fc4a7bc02763145610963e59c7d73a9e8b13df493ab0eff215e6d1bb3dade06327473e9aed336b326940d40cdb3de6ee66b3be182c721d02ab142ad6984726d86761e4f67bfd63d9a247a21377396bf521b97de647d87488a2dcff9badb8c5ac379a3a404ed98a4b4c93c4eaca5b5a2e79f4710d3a7ca5f52e922cd0c3030c316194f9ff0609817cc5605ff620a2c2003b690adaafad573ef5aaece21c80e978f6fbb0cf71c5ecbae5f01664b8a1c6b589a26e1af32529ed36624204213f2673d0b062a2384e9bd26bb1236105a4c66caac241848665696d43a67781fb03320c6f119661a68d31c25b21ed70a99eab6a00d4e9a8988f5dc4352d57a15afbce7ff8734f0751eed7181f637aae", + "6b26644e7d1b639237788e46f40a02b1319a71417dfcbb4a3ff4e879647589e3528f0702cefcd35cf89923513fc07f48e5cd21c7b43e79ba6eb3cca67b682572a48d5e31f65825823d5a34256f696ca3b25c570b40a2f5ca51126772995577f44606869c84f729626d356780cb6b6c425a8f12060489ed483c064534d5c6dc57bcea5dee6b09682a9caae7c65d698e31024752d72e437c2a3d5f185be3808b7cb675780ea482206566398c040f3231c1b50b7ddceb24f70eea42758c2d80785818f12031736194d37a2e5192", + "37d12b8a09acd07c9f5505b395d95af84a32fd435befe6bac800a5e8d9f84f2ddbe5c41c74fed687fc111b5378e41d6b818aa9c07b8361a90e221d796a849186546309661abee97c81b3ac8ad6903039ca0f76dc9da55d3a732792f9501ec0ca9b97c7a620dbc03431321938810750e3d6f338e86dc02ae98914477f05bdc7d1611404bf17f5afe56042f03b4da3e8af0772bc6a6b0d1337758e2860f1776e1f87fd14bb0d3272fac0895c71c2ff225c3075cd3c06399c52b0c893f0d06e901b87121ab1c1ba144fdc92f53a621131f06f2eff7c02c3e90b32c6bbe9073f78962c8ff7b835c43e5118070ed882ac362695eef8e96c211d19108ef30186e6c255eaf63fbc7f692bc6f0f602bac6a75704a8c501a9b097fed34473c8829751427cf4922c66e39e30fc693a6da90a", + "047a59794793429e58ff0f565402fba610143f5704b91fb70678ba48a6f4ca2178a2b65f85e99f68445c7cb6fb68736a09a0f2ccae8f1c3f960d818bbbfb8fedebaf7227ed3b37db925e3322678bf87a6d9ceae1125d2afac9398080ed9e4701fb581e7a9255f4b3ee60a52e886562485ab549af039eb55fd322860f65b2db722f9bb09ecc6a75ea9e9ae0280c950759ea908ca2f189f5ffa42ba1128331b0cb0e3abf6d959720a5afea0834eedcf06f3e4882a3d6b8bb6ff6e5ba4cee21d8c80454f529007aba16f690e8fa" + }, + { /* i=1017 cDividendBits=1357 cDivisorBits=935 */ + "0d402a46d0481416fa837e47c11f9f912a4f76358533f248b560c3c96f530c4a5b0bd282de2182a3b43604ac5f47149059a1091a89f806bb86a271c4fb31e72da0861edd818aaadb94d8c5d501a4c6c739f4547a99e354ed09da36799509637f0ee5782a77649f1396fd5ea17834630766a03afeade3882025217cb2b8be1f81dfee56a89e01163aea62191bae99221a5177c8be3ebf30e6fcc8ca100756b4b22e10657ffe866d1886c1", + "5ce4c849bf4489c71d9045192430bbad2a704b3b14cbf48304313fcf873bf441f9c025aeae3c7d0b66a17a3255023b2fff2557e01c89af315ed2806f04b4fa7172833fced72ab8d24246788608c6318e6e7c5fa056e19aa6bf031d7358e31c242ea57192e4e312bf3e473757d4c7cd0bbede551fd2", + "2484428a4e3fbe1a763f091988979f450282ecef71ed0448fe26e638d2d435bb61d13cbe326225f64fbc783ced7caee2a9237e61b6", + "27929bf9049a05cfbd670b2d9e168eb87d557198152cfe6f9f1cd421f2064d6b5e5ba0242efa7d5ddb91040812a81255fcffdaac71bd1124fbed9b61a6f0a5d87ecdd3b4dd28db7542b909e8433b7ff011c530bafe7bd0317b8c808c2346dacd9a0ac0cee5dee1f208842b759782e9dbb4bc295575" + }, + { /* i=1018 cDividendBits=2318 cDivisorBits=2317 */ + "29a77b4e662b7558469a1f05f15a1ff0b2743d82e938c0fca750ad4572d4551429d36b1ce2a2b1b6301d0cfb1b7d0df7d33fa1acec758c22041267b2b442ada5b108a9bb3c84b7032d8136d3be9e11fdb81a4a5f947b2fe40c1138a918c043246c50fcf2c1cec8c6ff9154f85518db09bd10e248cfdf6bd2f3b67b402cf22ca1f6f29217caca24680b0c8df2995908d5fcb4623feb34dcf4277a49ee70b7ab986ad55e7cb5649c44c50d90b9faed38598f3479bb8ca2310cdd7b2785c2826eae78b9d9dcf6fe2e66805ee1e896d5b2ee45861e8f2d4b813f9cbfed7df749947d96652db576c5302977ad87fec31ab432b9e336aed9e3babd935c4a7158b6449d4e9ae65df1cdc015877b8d9207b6db8ff9c754d91e85b6e35dd61f77cb285c7888fc", + "14b61d151a02a9d367024f8a59949c1fbafe45c0d75183e88cb555294c9c647294c64d6704c96fccb07a2f4f6a379fac609dca8c4213b7d71921f7f0e3cf0ce5062e452690c9658959066e3958c3605c721834d8f05c7fa0302003f53d3e47637e5a3094e39a767c4915a079c57139016df26eade73e26f238730145ef49cd00cdaea4b909b26c537d1c124ba5b72982accf07cf1bdca50bddc6f1b6de616769b65f00d2c64866c961b67f612201eca4331f004f4d13cea8f0183c3ad1500ca7962a4a2f166952162ed8b601829f5ee213fe65f30b74be45dbead561e540061f7ad76bb0b4f0f829e78be1b5ca07bd196d83791d0ebd232651532cc570313eb8434661a9c6f6a1893db4cf781c5eb98376e093cb7b84fe73ad05c35aeeaa9a201ff6", + "02", + "3b4124322621b178957ff13e30e7b13c77b2013a95b92b8de602f2d99b8c2f0046d04ed90fd21ccf28ae5c470dce9f12040c94684e1c73d1ce77d0eca493dba4ac1f6e1af1ebf07b745a610d175144d3e9e0adb3c230a3abd130be9e43b45d6f9c9bc8fa99dbce6d661404ca366906e12c04ed01631dee82d078b44e5e92a05b9548a5b7654bc110d4695b4deab5d0a31652a1b37b92dc6bec6680b3f4dcc4fe175cd728d3ceb201a091f7b6e95f1128f6791cf27a93bafd4aaf101fe2555f4c65457eca2b8a3a22ad75e59196f52a1d8952a9166204b3e4ea42ba2cc9883ea0b656540ce33fd5a895c4932f0b39ffdedc4474bc697470f0b5f0e67853c72cc80e230a63e07d030c11eea1cef968890c062d42277bb9fc03ca98c1edd328384910" + }, + { /* i=1019 cDividendBits=2931 cDivisorBits=1153 */ + "03e3628f073f01ea35fad97a6ef859583ae75cf3361ee29ade600ed2dfcd0aac5d2c676904f983c422ad43ba0c704128959a468d3c92ee0bbfb971550b1782361b36b0e530c3d979418b676731931ae7ba56da42328f432ac3d82add8bf3a7662217dfa2218cda492d0881a2b6b1aac6f20ad9dfd8c08d573d95a2486868d187219ca7a9274c7a755e81ac79c4d07d0a4b697dc4d5bc8b1b9a346ceccf67cd4d026c41576a15735e80664133beaf75dd0331708af23946285ad4f578dca24106025182017fbade7ba3f9086d7584404dcc9665f9730bc62e1bb0ef06dfc264a01be922a874324e93e634e50380186a809e330803b01d6a44521eddf3bf2da46575a305ad4cb0dcc03de96ab6d8483eed78da83d23177057765ea797a6d841242596556f24e8c8dc9e2c873f4d8367212628b5d004438da45d2c4eba7e71aac2137835782072dd292413a2b40aaff6e983824b7a42b1d635f1640b6b59bcb00ecb37555200642a1f2b2c9e7ffb1d0a6", + "0175cdd8f6850e8ec37fbe2c7827c9f36607ae71e0ea8626a105d103e06a4f3870c54f74ab14b5b2f545b205eb8febb9f2bc2925876a3de1ed66b1b125db20d37b0e534a74dfbfe8fdfeb2394be0ba48fff0217cb5095b73a9aeeaf605e702c40ae2307a7f5e2e35098d423f124d0dfc1e2bfe4a941dcb7ecf20a745143c9085e01347ad1295261341cb4087bdf335f793", + "02a9b0ac239c98b5699d2135b41c2f6f37e7972372ea726c0942188893d4229224b532b5d5fc112bd7c2dd647ce133f691f0e169a9188dfb9966e5558fac34d075cc39cdddb66e3afaaaf9b2e321db36a197d8e5633093eb0564489b85cc37925fbec16dcdc19a00858289ab28d2ad986a5a3da3122115fd729377b343e081a512c61c27b18999722d69616c112745a1348b761f9da3ed0a77e2407357c2a264fd3929add8e889924ed584accc75af195b1c9495b876daba3e7add54ef16ce9f25b8f251f1e651e721a01b04bb9357fa69241b2142614dc50709b63d08aa52", + "01746ac9f9eae3e36d0dce8e884dc696a9c1b377b12a33e9aec5b78d0ff1bf643e1fab6c61abed628abaa97c0741381b8a5807fb20155d0062dd3f1a89f940f2c3b1db2bcfe591bb2503337b7d0ca6f0e838fc877e86af6d35fb924c471bef296b2eadcd3f7bf776fdab0a57b682febbdffe5841e822ad7c1938ffcd844c62e19860c57bcbc19d256ccae8885e7e68e590" + }, + { /* i=1020 cDividendBits=3942 cDivisorBits=1398 */ + "13920d3a6e759967080934728e276c0356fcdc089371998f4fb90423a0cffbe240f8c716e4e1320680594f7c1ba4ae57eefa1230d4ef9f5318078ce1d5cf033e956afdf2b3a601dac7744c82955ef23e36edbba50221a19c2caf24b18454dbbdb0a0ec84f3b684f3a396658d90705aa23366224c1a335484a25130178aa62d3378d705d313c4c00edbca782fff9dc92634220ca690391b2903a4a5a1431b1caadf500fd391c1e7c482c2e16808680a5b3ee96989019c03b14a6b6859ea9a7719047f1dba69f6acf7938f3b4a1f4c311ecd9ceb5365f7ad817ff98857a68f40658f9947d15138e8a5b4cda0ab670d63b9844e348c676e72e331dadf8f3b7fdd7eddc6944589a9a783b0f0e5da481de1b1a7a3e8c44372d97b302107b691371d2c5e5a722a859d52b4511d8f4b084c6a00449b3286cab4d569dcd5c6f041e2685662a08d83bb5673e3475f5095551305bbe8875fe83a2a4ff3bdeecf16a8b5589fc8770be580fdcd70c1d835b0feb24e53a74151e6f88d8986733dc1bb474ff96a176c28dc530b1014bcb216f4c386913724850be456f4174bf897ed5c83f386feccdcda58ed1a9d0d0d97e4e078b62cb8c1788fe5c1cb58506cc14829afc1c88e269ac44fe40058cf6cb2558b3cceb6a498acd1f1d8d119a91020bbc9947e1480ac933a5e90b66fa3a0a273232c", + "104ec709bbc651128ba91618821744c3d807551de29443e530226797f3194085e944ae9e9a6300504cf44a7ea6b209ad847be6c0cc86ef135c57c4f2b2074059c9f8d325c16b73e2415daf709c0c4dfdfe20bf93a7872f9b2be61d8a2d0dcab56d95acde34a5fb994d4fc51073d3b59d113a6b58d6874e32e25ea4a5c31756ced14b3fab88d547df845c8b4f245e165b597079560dc162ca553794955a045e1c33cae575871d1584caa41aa7283098", + "01333833e4053e0bd46c609313c9be9ebeecf25b441da8519d7c47037b99329a2144379a748590599e54e0e50ffed613ddd4171ee62f65618d20dd7e315d1eea1491d804357d6de9bada69d1809844f8338c230a261841ed87186ebaf1fe6dd848adb35f2640504006e80039543e63aea1e9fcc46bb1d6b08a52234cd87a6805e2c6afd5bddb851a65ffba7b34d120cfaaf14730735e1dc1323deaf43fdf208e792921960d8b637eec63025494f3730115449e871b57e9666ee41a07d9afdf8323c4121bb432e7876be70612a616b7091c2e7ff1e13375b2cd901d0ac0b3df9d6037062fd5e61f08e10bf6e658ef522294786c1fda1d964f539863db548d03c8c92295193fc5acf4164978ba8f441cf85403996c2acb5ab633734a0754a42b968309f6e13b88a3046ed1da46ed6e874cfb436f071a5e357f0d9b4de1133278", + "019fd2a92694cf158cc3a2289ad8393633d4ed59fcaa4a53031703c0f4adf73ac286b4a0ddf00204d93881d8d9a60e82589edd870bf6910db774c58e582cbe58c688fc52a38f2913305bcd36ac0831a2a88077ef491873a6f0e8d0a709c8a8315716346048a01ac689a2da1e2193bb803c33476d5de1d2a200d08a883ecda3669d794e9bd0a6ebb6d3738db9d236ecb5f68803c980792098174494a4b2f2bf0df75dc860b6c76dcc4622133ad6abec" + }, + { /* i=1021 cDividendBits=2914 cDivisorBits=1473 */ + "0373b6b1808af30cb63d2230faa9f64bcf9e6a602ee8037e2d98731d8fcbddfe50443594d3bce3d0d34f87cde93c186aec06861385fa6eb26bfdafe4b2c26aa4c71b350d954d5297dfc370688903149611209061fe331053045f06268e226879dfe00b3eb73320cafa03d8b7a113aa5109fb1f6292b0535485039c93a1150835b3d7e2e5252902391082dbd4e558f904ef97eadc50a8b49942030212ea1a5a70238e7931300e990b809e863154672aa1bd9c928b644778510724b5082b0f38f5b055b42df1d5c354b257bdf17c4489475d308d43a48da6ddca9c514b296c9c2ec5a5b66b91865fe933f1322376b1acf440c0e349f15f8413264fa30d721205c380a4e4e34fa78435e5e9fd5d30f80435ae1d929f1403f0ade354195cfec545a1c33e499ae874e906142acf41799d58ae228e71a0a9b72f94376293aa17c63f260fb9908fae46a53d9678089e0b001145ee41b31deb42493ca5b9267fe60ed5baf5f3d7517b69f1c5e71534ad8f", + "0141e71c0965bad01dac3e350a2fc5641ed82166c1e8d1c9e50519db8b3d9628938a1e0ff0f8ae4338200108abf51be6f511a5f798a3ad5c59e473e245ee34225620cf45db4be7a51fea0c5eb577d3a9e8e35377ad3989eeeb5ef63ea6c4449f046614fcb79ca2d2f37867ef620df2fd6faee186b2a78583dc088ebe843003af94be7fc9bdf166dc472563bf14eabf9ad03418ef7c222dee3ccfc49724c4e7f1c74ea7aae3008ecddb51b364c4addb04ab1fe7e3adade01b1e", + "02becac0a9a565c917b5448fdee5928097ca474fe2c37619f18116c155fa3df1923c66b1b992c0f7c91f31d2bfd5d833fa32f3b7bb902b5164f0e7edf920d6698b51755366bb113c0391913940ec928b165f9f757ec8551b3f9ef4662f37afb7f287dae8ed4052a9cb7f4dc1a5634ba189a3439f9b0ca0abce2cc0439f5071b095f51822f00f467cac92097af2300105bca3df46f6660fcb4afdb24c8dd434e00158781b74bf1e715a79f6777f28cf401e8e9781d2", + "5aed00cfdb489bc3fd4c56d06a04ee976792b00197f8858b890c19750d5cb02e72458357371fb197d52005aac96ddf0ec810cb963c5886819d8993557fa53b6fd9b76d81f06ad3509a480f6dc22716c11e052b9d7bef010f193a37a5b43748eb9e09a70736dc66b2175034ae82744c41a37c041ea750ebc33b7d7f20e4ef605617e67239e30a25f0548163abe299d526cd6b8010c7c0b75127f7a705848893b4d93bc5efe242c6b45c0a196dade1b3cebdcdf111e30250f3" + }, + { /* i=1022 cDividendBits=406 cDivisorBits=1 */ + "17e09bb42da244827670aaf614f121faa50ceb39e53e9dc51dfebc9ba7e1771944706e017eed40554c59d08f8dee30dc25abb2", + "01", + "17e09bb42da244827670aaf614f121faa50ceb39e53e9dc51dfebc9ba7e1771944706e017eed40554c59d08f8dee30dc25abb2", + "00" + }, + { /* i=1023 cDividendBits=321 cDivisorBits=261 */ + "f49c1ea4f26c8665a3e0abb4ca514f609e12d3d6c4955463e522574d83e3c5fdb5db03c2717b38b3", + "01119e679e5607e51460b1f040b5812815879fca558d597f43553879901010ef5c", + "e4dbe7e3ae639ef6", + "b9be072f582989a90882bd12c5e23a5d9edacf8fa50ff851ce394d9774e66e4b" + }, + { /* i=1024 cDividendBits=466 cDivisorBits=396 */ + "016cd63d16465927c5764686edf37d0faf74a9dc58a620b445a2a13bd6c772a9a5abe0a7ac20f12367c972569ac34fee1fe3f2b30d74865eeaae6f", + "0fd0c01c2d8dfcbd4d2532b98df8a16a3eb1d365845b9ae68927e92b4f71f1caf7f3bebe383b0a4aed5f6ef7aa731769d29b", + "17118360bdc2121306", + "06af0b9d2e6dc7be5dcb9b8d39cffff834f36c60ba13b431695d36333e4b7c691976953bfa8c5939d4147b57779db2e83dcd" + }, + { /* i=1025 cDividendBits=868 cDivisorBits=77 */ + "079cded4b84cef784f04172e3c678a9507987678c6cf4f734d1205eda8645e87b0d91c47e7b2c64b6de98e60be3ff7500eaf790ff421265948916e8571349461ed057d79af986c1e91205d9dce17dbecfa7b8a4a70332ac6f3fff9e5c9644de8082288cd8ea593f86e109bfa7d", + "111f580ee24ae372fbe9", + "71d1d6e11f702284c5b326e504f2cb47c7390e4ad92a71a8128fad5ec03b028661f4fe8f5898d3ba243fe10c4ace10b7d0b1fcec8c4b438dd86872a199a6605031cd1463e07e21263b1da13fbc6face52562ad3cc17ca634cb7d75bf10e81d98669a09", + "03f56a2860312f30f54c" + }, + { /* i=1026 cDividendBits=4034 cDivisorBits=1078 */ + "019c860abc5d38d97ebeb3e0029569c63cad31cca7dda65e404bfe41fd1cdd668c00b3419db67cc107500c22c32ca0f2065cd740fa74fa1df3655782141803de68d98370f827f006e28dce2facf819da7a1840cc742872cd904bea4b018610660b0834206c6348b683b4b70299c64edcd727922c5be5f128511296db452a9c7c0f63871a368de90dd84a4a31dd356a9db5032db4de70e1c20406d02a246861cef73c0c016fdd06872b9e3cf859932c7bb66e82b794023b4ad760a0256bb1a93341fdff4c4f1369c77110c70b1b490e0ea0cfb809b0a64c5bae9453253b98201957bcf1d66528a31ffdd362867fe53aaddfc66089da552442cb8e4b04b6314c3dacb050f0798896c65d2026fb3a4548c59b3e5b49eadcc271a0fa321eff63a613b1f5133a61868d5e7b3c251b8e8fb548f84b8620cb220e7be420fac9d525602e458f19058a388a44f1811a99b30ee98774dda2b451fcf96454360b635662b93991e5d24dfce1dc464c7c850aa72d5b7c3c1ebed1d46cc5ef47848674c0bc52e9aff2756711afa028d23e4bbcbcc3b4976b62e1a9d82920c7f16c9221c2e89eb0b6fc5ddc56f3f99729b685ccbe9a5fb928c882a3250aa0fd16fca0bef7d94b706ee9f40fb3b45f58e8fc30562775ee8034c2db94495d74eb16486d2f0ac7a660d46c444074afe6f724f1b90621f79745b2900da7682c4d16c9", + "3813e2268cc4f14a335aad7a5fb40c96817121467939d299cce468a2e20b0ad48dd05d73a2c898bc405779a8ba3408d12127ce0d393600e00ee3697f68584f034d0c85fdccba7288c16c14b4b9ae47913141941ca858f79c08b391260e6ebc8f6bae2ba73850ec5fa04d83eaaebb099f4a6fad0e7d2ecaddb300687bfd85c320b216a91c4dd578", + "075b35d2cbf8f5fe938f85effa3d711e1b160496f11defa05c648f8623e72f67875bb01e10c86f2855afae028a489ea0da7b548c644599b8e33a57075f551f2c360af7a36c4999401caade0d3967d9c29c95b7f3a6c16fcecebc42ad7b09aed8002cbc6d3e0bae9d6dde9183918e9885c9a178e8e64c08ed5537605e59518b21d31e3b55dc08a6023f4a9d09108bc75332d5d6edd8b490b2208de9db112e491cee387ebd615de67043c92886864097e7e6879e30b9b572ff5ab4200fd7101a8a0dd5702bc4bc57a3ad75829450802e2a23f83fbb218985020f01f6563fda86e77227de12fa9d676721c8c938cb0cd64fd65d59cfef505d757bdcdf26385343a66cee2c3012fa47d5ccd60cf2cd0b20e0fde487a3ba0be4f8dbbbf2341f1b086cb98bfdd2a227b4e0bd03613f92cc95755220263c46761b94101d2aa9ed8fd2957433f35e8969dc51ef27a72fe4a90e10af0c2e18f8714ca714443479d2b3c8b36a329baa538810b349e62612f7beebdc9f08", + "30742aacb527e9b0f4b7a18ff96fa6f20258f04a275760bdae791d8d398cd993dd5ef2388a5f096bc060f4671bbb59fb7adb8d3b6de67591cc9a655c8fc9a4ffcc62eba79048383f4f9161c878f54c28f18a36838bb890ef9b38d66cdc37b821a4a65f3ce3c18356a2ed07a8b51bdc5d61fa7286ca381550bf026c620cc9a74aeeeca25728e309" + }, + { /* i=1027 cDividendBits=3227 cDivisorBits=403 */ + "0178a76bbc25654798f10459b72d3bc2ff67d075d863255e7aea92dcb6a119c002ae4e15762cfe0aed223d8c8d0a5f287dd8b391acb1b027d308d21f5e3e4add6f6b5b34171b7a4696e8cb251edbb788342727720dffcc1bc94ca1497ccbdebc203fc90b2e82229dffece9d9ea532d2a1ababac1e2393af993eb702f1cba43529708f3fefdc7826e18466411fa213fbc8bd46214cd35e622c3761495f04d26da7566ab7200b140b31ace1c8618651b2f393bdca316fc5a37137c0490988568e770c24123668f75c90ea4d8a4e2024338748398b7f5d42812e91a316748b79467a42f2b50994d75c7448329986b846b4bcc1feba393d068b75fba0e44dbccad941fb03957c5dd3ca47751b831e4358a6e800be32477d74632f5aa5b1425118408fe97d6efdeef28ebbc8b24669b4ede73382879d48355280ae7a6f1324736b1bf13318838f4d6059ac71b83e8f3ec064cde5c4687e1cb9105556bdd9aaf3de7c100e691d7c50ca20326d8ba8fde9e70653f1ca9b756f4cc5dfb171202bee9ca812c76cdbd3946d5e116d68aef52ec56e390c048f3", + "02bf526b2a6ff947a06f6aab622d196eb5f85bba5171d51627cf1bf41a7afc7bedfb87bdaef4441d4432958a3179abe00798de", + "8918dd8b2134c0c794c019e0deeadc5a2ced62d8da54475cbf7ffbb69fdf83fd99a286b291a4f2d96eec7011192a35420238c2f9ca18e7560dd6d0a73291a6f10c288e9025a98a03667c36a5fd043c8e1d903ce89faf45c3635697b4c27252a01899c63ebcfa4d5fefb93b7107a8e81847aa116124d859c942c3d8d61eb4fe041494078f5a6a59ce04500fbb711dfe3bdc70dff6ef41706d5c2701a7058c2ece44f92ea9ae9464b2f7c42f0d597d4857d361be2d745baa67fc207d90d76fa178cb276fd5213d6a53decd81c589b80b68d5621cff597aecfb409f77a9595d3935265163bc85e007aae7bd1400b3ba585ef7cd226199c44eb3125c77a97bac4b56edfa68bf7c10c6cb8739777551ad4be50ed8198d842de753c291b1a873186ce38e87074d6fd39bf219cb011196374117056a31c3c6d96a0aa9201d2fae3fe9caf7b1d8a9a7b54bea330559c92032f2e9863f726ffa8a6d0f01e062a185fc5f525b", + "014bbd3405a7a4c0e33998f23e730fa40902f821485289a88222079ab948c00de72aab14851af3e84f5ba912fb62663cb3d609" + }, + { /* i=1028 cDividendBits=1659 cDivisorBits=125 */ + "06486abab7dc1b24f0d2f032d55e2e91a9826ab0ca2c5e9b734252a9fe6edadac3972b36e583bfd35ebd2c80bfbd19829724429fcd8e8029f1d921d16a3f34f905d4c262fdea7c3908678d750cdd0cc1fb821bb9e832a7a8c1cc4f3cecc3869e44a092ce54b3aa5ce0665face428378bc6d08bb1accc887957a172bf1c1792bf37b234d96fa91d1ad734044dbcba959cf2d939a1197dd5d7bc894fead21db21c385107cc088a03fd7ba178af11cc95b4f82ddda4a7802f9790d3fda4fdbfdbd766a41986d047b395f1a1f202a82cd2", + "1e577d92b4de4827e70e457ffc4eb857", + "35028fd71652361752b99fca9c36c7c81062b015b6e6014b178205497547c29327c55d31fa6bf16e92f5d9399caf6e151d2359c2507e13e8657c740087bf4aa023fc5616f2fcab3eb582cdfd787df3b0215bc18001ff636a82fb397a27a51aff1ebb1d4aea0566a09e74c06bd62caa1f1787eaed037f6892eb78bbbec41f2499a83b291b5e5421692111008e47e53033254652d1d6d17abfea62c293399ff4d89ad82a565f75980eb7da00ee3c422763f4241797c2978e3933f1513001e519", + "0cbfaf1afb232006f3cb6259ebbb5953" + }, + { /* i=1029 cDividendBits=428 cDivisorBits=422 */ + "015bfbf84bc69715e2f472de6942ae5fee3d96589ce4a99ef1d21a35cc2c1722c785fe52a73569c22c4cc3876794b4c7777c11142635", + "2e8f47044cfd276f2486d5d1146d9c6c665fde305ee28efe052ba1cbea77dc228e8711772e5d3bd64a2cd055b07bf1cf472ca454c9", + "07", + "1611072dabab01d8f4c305b1b3af18f770f7454a4c77b5ffade8c938c2d01dd5a04cd864f0dd1f504589d50fc1512acc89d895d4b6" + }, + { /* i=1030 cDividendBits=3973 cDivisorBits=2786 */ + "1dc533af6ab8e90f4f25fa1610049f5e604b3f500fa2ab188b84bf0c662003f269a68f8b4e855f73250a10db356a4bf69f6b9d295a738c235f46b7dbfd26dcaf4e310179842dbbedde33f554c23a1f2089c1283129134a337cf8455dbaf98d5662359e9a928b421bd56b384fa01d9e34533b4c1f251fb7d0f8cb844106a4d955a837d5a27241299f523129c189138c682ab4a3e25f594b30771aa064b6c05449b4dee01e7be0c30d2d9c42455721dabe9b3587f568734e95932fa15b94a7386ac73045142772808126f6f22945d01906777068bac38057d42ca517ca0dac5deb0e3619355b64f295be24b1a579a6567dab5c31341b3b5add9d1e948aafe092b2c1f110d9311e386e33edb296b8f06457a364c945d17c6e4973bcc30537bcd8a08b5038532e18fb98cda7f4102ff17f377aca79c173b993b206ac5f7ed196fb231d1076eab3d1594e25b9d73acf400a37d9ad72c7b9b92b10d4db569a4a5e6282efe77c2941d54897a3dba1e34c921612a0216ad73fd858534b3818a26071c0718b39f58c5e81558b8740b529cef1e387f0c2a27fc9a5607482f1baaa9869b617c59ea34cdbd85b5e21637670646f755ce71f53de6ce7b325a829ffe8b707a3dd5e88480ef3485b8b575b3ab8d05616e6b83473a83397e0b6f5984e26bd40a43398de192692b6ec7ff1e79037fa8c58e27e", + "8155981f99f7251ee29f2d6dee3d4d0e26bed023bb09316df5189b665f41ac97adf19114222d5bef8b28c6dba055ec776ed32856300c8faf6b2d0b79934d4e90d3870bb90ceff7aa4b3b5eb6bf25378e3ae0577ac1208567f467c501e54a2be7a693d6f268eda33e6519efc043db66d370ccd0078ca1f04b0aa39e7b20bb18655815a6d9b256de2992f45d89eb7659bea6a8c116e0b6f636f85415d6e050b7a395b929578d6f487513ac559cffbdf4b3007aa337e1331489b03eea237b0a87f81e24d062f5dc40146a6737960efb16e5772ded440b281c34f78290cad976b297cd4ce583b8c765c563d50b242e402dcd297ef1d823be062d8d653d02a60f08d40cbc83c8aa6e73bffc12569b7d0944d3f52ed9f6cf768a164be84473e72c989c381458ce57a31bbbdc3b3bf95a516ab71eabd077c180e8f58af17b9e06316616df00335f0089fd841087822af40ab80742ccd41b0e94776163148eb7", + "3aed2590994d5d56dc467ae973ee19001bfcd0dd4e1dac0b4d61db1a938432736c688a476c537d1c111d48ebf5c8f33fbd976f43d72b1fb8a3e9667c5365e2f9b421888fc1b5113ce3d328be72378039eb02055a396867e79facd8df959ce2d3f22e39c52fa9e0f76801a55d70afceffb651ff99e7d0659e83a9671e270ae7624ab9c4cb8af09dddeaefd575a8acb9f84eab5285f6", + "4c7b49c110ccb5cb85f0fd05389480ff7da3a77c9298530ece88efe8dc9984743db9ccc4a0cbf948798008b91ac3688c17a12c36c51c42204b370a8581a57590351c7cf9fc39b9a9d9f3f9fa1febb47a922a7069ca80b431e49077b2dd33a38a16c54c71e68cb7864d49b2c4c77d08f9c77b56450ff74e6942cc61871b64c18936cb7850a0221115fb4ca6e73169e6046f8358239f42bbb2ce0e139e576f33b2928f690951761ea4e7628fe63ec0a50c99fb5cde218c2008482b85f9093dc9c45332f94ae00667393f8ea64c3b64d58f76c748d9750498617faa1a220faa9ca536846022be132a27b3f6c6e0fb0538d4707339fbec986f2e88de5d3841b58a08ccaa5f846211ac5283295c47110fbb7f193da91808b5c067f2de60351cdf8d1c915ecf66c431e9f9ad5fa405baa2ddcb034260ef78a6173d0c9f978ffdc9cb57a59475d2a68d6d228d22e6b7af4348ed1daf5b9447bbac3fb4d4aba4" + }, + { /* i=1031 cDividendBits=2127 cDivisorBits=81 */ + "5374844a3849c4e8f729339636e1950047a8e965df04ca195f2c5d2f8d7a627c1a57843fe303a192e696da50662257709f6862e14849d07c65327b827b350a9a17f2728a1be167674b963132e2523b86924fcbe7d5cd5cf173e20ca4a9f77fa02cea0a5a02c223191b8d4029cd76253a7ad80ff10bd237cfd27fc44bd42cb874c9453e8082426377c4955d99f150bd490413291d7e4b198c7d5fe669bc3188918bf70d4305a28020eb30c0b3b773816f32f9703010e28b15484f4da0d10bae04fc783a1390cdd02eaaeaa4e44a924676184121daa95973ad219ac92fa00c4d756c17a997dc30aa2d6daa60d2732ec86a450b7e774c6467a029f1ecf51ea77e185f5aa1e263e7d025fb0a", + "01e0e8d86bfd99976fc153", + "2c6cdbc6a4f8d5249a22b7fe555ac74ab4b89a728427e5d5142af4f5b46839867c2c0b04e6ec05cb0a2e20b872439762414a1383d053a2b92b9ad72a221c5d9bdc453407b82cec4612263cc593bb553e7050e378de8b01b55fcdbf234adfd83fdb2c6ec562f8a89bed2fa7c2cc41a371f2a60598e0a94814f587b345657a50d6238950cab12a772d74809b14e4862554bafa39687a9f24ee8c50e4fd5e82bc5949cdf93478211074ec07453a978a706f57514787f90429f4fae54dafdeaede78a0b713553323aa2a65104fc85c11f35f4689545ed48385434127abdd0f6fa164adf1ab44e2cdea728d5e712a6a83ea5abcbfe17cac1b6e49ffea4fc70b128293", + "0fbe7f636e1ff1f7d261" + }, + { /* i=1032 cDividendBits=3924 cDivisorBits=2808 */ + "090a0c7355e05596893d71c6a717e25325e2b4f6868d3d14e8e186aeb9ab2677d57641b78ea4bd28644d107ced1d04b4d7844ef9ab5dbe7dee2bdeb07557bda4f584b1f5e7cec13e4ae3211e56fdc12b479d798b2a9a0ed1065ab915685d51d93fa2a534eac691e91b882254c480384a8c3d6bd8a74a61f8f3fd58f60944050e5c5fa7f363d3c1f911bd8ea63c9928fea5e5af12cf77c4e0db2b80440317be991e4667601ffaae00694ed385ef525feafaf31466434c8a84da8ea9396d1c825b08bf144e85e3da5f743989c9f1bcd6d95183cdd25b0519fbd54afde74636d70a73cb493ed54b47bf7a5fe964555ce7370a84971556f82185dc78bdc0cdfca9ac3832d9c0647c868f943581a6ce38a3eaf5c286aaedf63f45bb65d2be2c98aca4f15fad9e59c97fa6496fc1a1ec71dd150e0d871eed3f79fb58d83e02e0a365c0e57a4e00e549d4d4938466aef3831ac24d093e0f9541cc6299c5730b7de130d4a2d4ebbed2e74c903978efeaffe2586863ad4842a1451d796c033eecdda6bb864205f269a0c591a86b112f2225f91d83393132fe4c5fa4319b32688ccf75c580d97b53d6afd57bca270aeac860e59dd7283a478d50131f38461b4afbb3f80171215682a4b1d18bd40288ca0831ba8d0cacbf7105b465c28f474c7faf50121e44421c604e7d04c5ed96ae48", + "b04833817f25de2bcc4cea962a6e34f881c76173540393ec7c5bc387b423a908268b5caff98cdc7d7c254f2ca21cb82a1de630a7cbcc5b10163c36b36e67421f9f63c28724ea21a2f9c26436ab5b4fa31cab2b258a0ce0971e586bab8508506092a7e3518ebf3f63dc68378f5b922d3a7dbd32bbbaec675e249951f7b52d7dab0c301de53669c3a77eb1299879701c852cad6477eebadc122276b2979eb5ac48dfa8bcb313e6685f4b7c280cb9a13dbb3851759d24d449f00df170c446b2773bca8c72f8074c9a34f7a15f7c559979cddbc7c044e63a53520a1479ac23e1cc228d62462e98ad9747eb36ba4e6d0df3786fa2ea0f8e55a187c0031d0aec262b4449cf13f3d599634c748feedf1a34efffc20a849c33c5c8a31e604e553bb4a8f53f9ab78c196134c6e46ec019beb7174a4b3047cd4a3d53fc99f9b8d17c5f741c43f678bc429a2758b6479b78312ff80d6c8ded0f1b664d8a60923193b0efb4", + "0d2080f8a6544f1630c506ac89387e266d0e2f7d759944d34d8e42211ab162eeb7bac5961a10375c3dc87a79783ecfb5603c5298cf11289e605c1a5745460dfd6217d7adf40ccfdad2b2d782dd92b789247e1253ee5bdb8e38162dc94918158660a3885744e164bccf57f804936606d4a9b6592a1f4458fc1c0b2cedf97c9ca1b6759156c189ff3f4d43b482", + "0371f84e59ec00c7966743cf906c99e66ebc01c5e50efdc4677e0d8809de5f68af97585dbaff79cd323bdbdabb4e9365a037dfac49420227230976926049632ce2e397fd7b4b317026edf2806835a2fea80215a2b08bf95a7f8bee781983f8846e5a996ffe4c9da670f767384ce301eb173f0bfc95674fde2565221282757bbf160cf731014df2e8577f5475195d068b9ee56090d60245b1bc589a90630578d09b192a3cfafd5218142ebdca453fb8e8f1a43dd5f60b303b223cc2163f60e25a1e89e01eeff40db9033ca662ea5ac7ae89e785baceb3232bc3bb97ad80f4570f157dbd8e23f2013edc566d0c9b89bb0465d210cf816ac716f709f5050b8581772c5fce1707665b27ee906abdeb12369d05b02b8c5295cae15294c749a894a4b9d1af7c98d7964dd6592f0ac115d96cbf2dee4b19e40922d631377546d8f9efa51c938a477c3404675647b12815bca6bde7ed9104c21b45639ec30ca51664e0" + }, + { /* i=1033 cDividendBits=2878 cDivisorBits=790 */ + "3d2b01ccf4fd995a81e341e8f53e0352215ce183cb7eccbe814584919932c7f1c570fda81a5ecc82d4e889efc6dcc5c39d4559b16bd03528a92815a60406b58e1f6d7980405434ca5210955068fd9741d9fc3a93925d784e650de209e1ce3a063c4395ad44ab6264c5c8035eb93c74dacd7e329e89221a9c4cc53be1faa9d9631d9e0614718af9a0ccdd793c80551c7c13a3c0be15f8f9038fe40a2d8f1089d744e61976c08de0baae82e9cb852f087a7b9463de6ebfdcca2ec5032d544f16166cf4181e4ba88cd49addc1089f05925ede3e6aa030a0c81936ac2bd7469341af6d4999de12f8211144e0aebaab3308f8d4e30ea906552aeff5ac66467b4dcf6348bf9fcc5a37faf49fabe564cb75319c741a9606a74b2744a71cd72dc2aadf0076c4870147a7d8cd610ddf905efaad03e68251242016db1ed28ac6941e4b4fa198fd2fe834566444a53003981638878452f40dd990aa8bab649f505671126b242acb3807a15d3c6d", + "2bb9e2b0a3af2423c2709d817b6f67e25bad75c3090907078818e924fb8295fc519d2e4589a467563e4c00230c349ea5e07eff37120d923ef2ca7dbd01f7c742c350549db02f9fc7287ca86aa646226ed5bdc85fe2d5a4421b80026ab9311465b507a0", + "01661d9c80b57950a23e4c35b53ecdb0d5a95b41670e54feac54bf4d05abd385a2115344aa0bc55bdd5f203344195e72cf06f9a0c2103076aa397a0f7d8d20d0d3e4112c9cf4e25130a92c5ba3b0730bdc8f15373aab619a8e336f42b152d4b7381f466faf60d7eb7a33afdbd1da9b10c32bb8f16f1a1de0e349015d3918e037b41e7a19e0a514bf981dfd51fb8e6d20355a658968f1f11364a74b665f718c2c531972fd3fa3ee1e09b174d11cc93f23626e8c5ff1a54b5559c8ebe59fd2f9d971f3d6c00be5d286603be2af92b9a89e5006dafbffd6d1ced505be79b99c3dc3c6a58c32bf95d01ee5b42f2aae0e6fa90d70b5bfe2e2e965dd9043df8b87aa9f736c4b531859", + "2407b1179ed694323291fa67bc8412ee9c59d2419b7c972a31bed6c8a2bc19d3798bfc55d1338e0b1b2d1836d7c4620f27ef8483647a1ef4db16cb1c6b1e82b833d788b0bebe0bf29c687ad42791c674cca8880066735efb18aeb4993a23f9f3d695cd" + }, + { /* i=1034 cDividendBits=2259 cDivisorBits=712 */ + "0521af60b2d1b930653e3a9ac9ec7bd1948f039403781032f242c923f3be838bb993b27620bf02c1c16fb3fc70aa8b7fc4e53d7882d6735bcc8cdf958720435d94a56e1e6dfbce3736edf4ee617b291817bb09c9aa609ee7a1eb1d6246757d07a795dd1472f54b01076fa33d3e6c17ae5446461af83e139adcc9a5e99150da04de8f5ce17ef1dc337076c272bb4b698095bc121d54b7e46e3573a86e7a7603acabf8ff95114a71548f8f4c2015df688d4ac29b79f416f03f90db5f6099f0b31033ff9df5301aa9877afba6ccc3038a96d291380f3cefb3b43669815bf4f02d7e08eea7feabf905428bbc749d236e40b6094edd65ebde9de17dd429935ad647b8597533521958effabf52522a18bda871ea1a8359dea34ce70eae5a", + "62e1994065bfb05934f91e5ed83af065c3d8344473bad088fce98a8ce7f5956aa68a07d2bba0aaa57a71e9bc9005f2e87039cae52cc1da05900018cb713ad3f406ab41f69313db4e88363d7d64940b42d7687de26f6958e067", + "0d4915658b0eda2caacef9235d622bd3ec82e3ff8453384ff6982de2193018be24d96ecb6d75cbd1b7c91345d0b86b3c02977c346fa592ee1fe6fa5834175c584057c0197f88f5513ed7b50af5f96246ab898adf6664685e74e83ea7ed473892ad4a1844507febe71d0af4c6e2d1a60e7a8728bfbb7fe739b2e5fe418cb734927e59abb3ae3960f74a70ac89777a956ae7276b13b65a4d5f79ce2c68666a90308f353154f64f629074999521db97c29e427258803a0c9512ac4fcb86d0689b5fc45e", + "40f2aaeff1a8828318064788edb071701b40c9cb6213781436e7f031ccebdd79e6ce85ea31ea3d16ee5849d30b6f6c309d1f15361f5368b9b2385b98f0cbd738a66dd33a9624553923606b8606aefd0f7ef8ce700a89646c88" + }, + { /* i=1035 cDividendBits=1216 cDivisorBits=441 */ + "6292e77cba60537aa047cbbf65dd4609dae7ccbc6fd0f9f930e94a045f9427743c0b33d1d7ede6c95bbbe0ad6efa33eddf8f4c52692225fae22880098503ae264dead9665b6440d933d1f66d1e4300d85a8364f68e510675e9c070113108ce7bcc8f3c9b8e853354ca3d7542f49e70aff02b42bed9260ca52ce8aa303f00853c5c46c710cebd5aed00f6042d0eff994a172a9a98f64e877f", + "43f53b9587387f421674bb832afbbcf07ab6ffb47ac4169ad3a9ac738c74436f24e6b0907000b2127b280eb6ec360351e5efea59431017", + "017354ca2d1b379509310a0ac4d18b8c6743839941293b516ba85153e41699885d16a2ebd42ddc42fc6faccbf828302ba52ae97d2bd690ad14d8980bf33a68e2183839c41791feb243d80947d093ba111f6200ef65c87f91dc4b1f658e9d9addd0e9", + "2d6821ecb5c089396df93dd422db399cca5f5548d5f4fc0408298c241ca9f22162f175cf5430decec15136ea20c6858fd2cf1981573290" + }, + { /* i=1036 cDividendBits=2266 cDivisorBits=635 */ + "015cbb78b0fb7a9d862654b69501d3e15df0b0d0bb7f8ee62d4f7ad0829dcd05a2a287f5aeff68bd6fdd468190dfd0e7b7fbbf96c51f55d9f97311d86c017c58bab9abf5f0664f15274ae3a0279c54436740b1f7b2e6ddfaae78937ae7d11d93463fc99cb1ed4d4a33b1a224bc71c5238309aa18930733cd6b0dc6e6c1beb0cac000e91ceae1b58ce969c1dc1fe26c1defe74fdbee5401867adde3f3ff7ffab09793d53da5da97901621270a73a6692a961a73a598b57cfbf2cc30829f3487a0cb395903cb83b5ef91f2c6b75376dd7f55cfa326542309decc721a4bb43416738161de9d49baefa094c33d4bfbe1592dffab82443cb2cbf539919f800cfb5aa682ca199622d91177789c90f80c5af0c7f8e4a9b0c6cd4afc0b467e18", + "4f2bcacd06a887ea3f4523ec22fe475750a95ae017a89951e3cff74c4a22d23c04bc31112a55ad2e63ffdafd033324331beb7beeda30bc801fd5f8383e0866e1aca499362e7d07da420b16bc9468af", + "0467a0a698c0757023f1cf46c29ba8247defa3460f0a41eef5510a0196996b9c69f27c010dceefea931421cc36892d22a86d3715ffe452a42083d73e0b786219b492683bce06a0eec2ce13cb087162a33b0a3d0844744d6a3670f944b52edb996dd62409b9600c29ea9cf576c1372e1daf31a482a158e9f78d8f7a6d7d79ff404b7423eba9e33c423be383d5bc78326d5bdeb64371eecf2fa2e5ee97109216848aaea09a08e13e82e9de4c90705e5ec547be0c84b80b922c4e891c46b1175f0bebe856be664434e6ce5c3e64d5", + "35f8d7be3ec68f2939b6af27e45e4d739b88e7980b295e3a03e28b378125c439fb29b65f6d662cae4bfe3832c15c78c8cc1321e90ceb5c7beeb375f8c4b6d3b3c503c9539a4d84b138b704ec85087d" + }, + { /* i=1037 cDividendBits=3856 cDivisorBits=3593 */ + "5a52e18ffc95d2f7d8216902f51dad5e8e6660a23de7d88c5864eeedca6fee2d54700efb1b385a7bde1f8824705ce1e2bae9e5d5c920fe0addf0842ef94535a7f6b20b4619627ab34b7d6f218a21cdf29fcb6f909c9e9512f5a77cd10849a70c54c32bbce41301f7a0defc61be7cda5d53b18457bb8cd1568d0d5d61e8e3617b428e67a7dcd65fd0ede107c444a8fb4111f49664989e50d2461fd69c9fbc9d7db142399483d60f470ece92d710c80c579cfd01cf2406308da371f12123816d70657c2b8e4cc2ca9feff70db7f44e27c04c4278daa8e8d0d4692d1714a69c9c682e03a568605081cafab4d35f468efb8de7d111c85048f7c662194c6a2b453ee830e0b160d43ed350275031e8c142dd6366c3864afd2194be9f4929fcc89532caacdb8163f4b02db76d2b2f38cfd5eb1139e13614f38f2f9304c63f1e99f2b0de3e5a3ad854c218658979bbc7ac3d43d477a8a9bdea621604fae84d097eda34362db4d39d37c8d2795500ae950b35c45a15f2a1ab9b7ad2425c0c0a8d5f93ba93f0a6f74ba8ecd10f5238024ff0706a32bb62eb56d9c01fad39aeb31b77d45ab34045c84683bed118afa1c050e7833ecd06b81befa0b7eb41288cdb1167a16dfe00fcb24297033a6e2ca566834830bf8033792a718a9dac7193cd087a755463b6773e", + "65aee6d558acb6729e6470dd0859a33d87b6b4260f66141a54b2eee7c78a3dd94a732b4a64d5b10a6ffd6234bc4de2d971b03a3d0948a60453622f83134cf7b4d3735d4a9080e0a4fc0c0b3e787c16957f59a38d7f14fa78370ac278529ec8a4655cfa934d94161c52ac69b3bbdaa5892274545ee857788f4d2f3c8ed726331dab05093cd8d37bb46fae4fbc96567005fbe806239783594494f3fe12982a6d32574ff89187933425de69c38cc0ce7182228f14cc633ed52b96de1f752b4128afc984a24d251a9166c0b0c388b56d3d52cce0da4f7ba454a826fe7ffd2dd20549b75ef30d81da8b8546cbd4eb5c8615776ef6adc749a6d24c460ae4002b9db70d791d319452b02a02c61369f6fab456486beb5cee8c2ba50ed1353a5a956da2332b37b0001916e3cccb5599d5c8caf310587bf9fe35277a9ea4a744970a8ce9058266e0d3b57c04e1f681b5011b255e23b0cff71a58ea23e77121ef949bc3c8ec40d5e0716aaa456368cd8670eeca6949cd7bf01e3192a661f7cbb92b2b72b85a54e01248afa2df374945723f70245005cd001742e9840fe827367a8da9311e0594ef86d962c12d659143d100300c9b6e328c06f5b5510d3d87bf655fa42b2b48e2", + "e366b33b44934f30249ff5d970ed936bb18614af074ec26007ba1d6c98c694ce22", + "3893da9b9980f76906a00dc5f089c22cab4bcd9857c3a685b3d956b11ded5f3e4df90cb23bdb99cbfe2a1c451294f24bd7b66702682bc8261cd4a7d638dba1636550f9bca9c112fd7e633a2476937f3d1b666f5dca728709ba8174030a1d63814050fc8fd83d9f385c3fa70ca57e96d3697011f3c27afcd36f26d1a26f65950b8bdfad3259f2eebf265d897738904571e86ee08293093740a808450bf6f848c1e505c35539dfb2d9a59f28b99243d17233586c26c5bb783b84f16b5a1d4b0bb4c2120c86974adc937ac824135eb8680d9f6f3cfff7d54ec92f46c667a0f05a55fccd1bde1ae076cba63b289158a475652d72698c8a143b92216d758613075acd7d1749a84a0822bb6652c399edf09e12062b614c43e9ce67cc1ae3bd2ed4e0b3bbb1b64c2b3368e253536f9cf7f35293c766bdc50df23da38c5a5c9bbeeafac9c8b6d7f1455eefda717d12990227de23cf0dbf27ff99e28cfc9eb5ee3fa5d126547e2f54ee2690bad38555dcf4923bbfb89491e6c71a201b78458fcf7052d3054a55eca4168ca4df51510a363f843b4e4b03ec2a1488ff2e350a95095526a7b166072acf092d5135275be2b0c26d1421b9dd2b33e2aa60fc746bb49934e4a8ed3a" + }, + { /* i=1038 cDividendBits=349 cDivisorBits=80 */ + "15ab0a54e968ec1be8ef63ca578b5e1036596ddfe04aceb3217ba1ca0ebb60d2ac61c17e71ca64c038144ff0", + "3646089710a41e2df410", + "6634874baebe6c021fe34a1d781f47f38727d793aa75c698ce0f1e006061d843faf1", + "268e75f94ec28e49ece0" + }, + { /* i=1039 cDividendBits=2797 cDivisorBits=2176 */ + "0f31b32ec367f61cf04f390247da06ad09399b96f940d6cd49c648525c46a835c264c7985cf676c03b5d28e62fab491dd84c5ed2be293c3a3db5d2c300b468eab5e65ee828f1070bb1254507f186208b0e516673fcbc1fa09806f32bfedd3772328f8ea109c1e9bf73103020d334fffeab83a283c7f29fbb9e6b1e0d4f8902dfcc8e4419e9730748d7869ffe7c2e218410e83386479112c180f62b7ddbc71165e8ff77eae1cd89e03f83437c089610b517d858b7f7f4de4a28b678801930c8ca16c5165d74111181a220b162d0eb25f58437c299bbaddfc03aa27dac235996703e812e84b9eb610aa27d744d20aaaa284ae1907eee53f39f26c7ed47c42e21d176569bd2eebb42798deed767960d1d2b9539a6facda7f72b341259bfc6c821cd1b34abae49cf8e16a082df9910f423f649a9fb1aea34c9a3ba1bbad161b1999c3289927f1a65a41254fc03165f79d41aad5779aa6b433e18b4ebd5e66da0", + "4bccb0afc436599d641b7fb8894392df0462edd79edca897d5d401703b3365338c0e47e808a625162246d90bd6d380f8083d6a81c65a6445e3854f75b48b82cb4fa7d25d425e37963ad1dfb3a42acd2979540578e9d599cf198434480b55c5575aef890fc8603cd91e9853122130718fa674ff3cec59978ab48b800f9ed43cc6bcb39724da0d16a36d1cc7d48e73b99b51e5983a7f730a32198d9ad0d07fb49a460380fe1c4f351eea0f7c007ec8344d5002dd32da36abb69dca097e5c55245a0c6dc0319f066a6bcc772be978d98dbf48f233aa599bf200f67ff40bb3c31447402939a6264c8859247816747aa97d4a4f810c21e41f6b7c442ceec45556dc5314376be866d2d86f20365b3cc1d5ec67", + "3350cab310613ca0baa3df8b4508ae62780e4e141292f555a93c1f00fa0430d105f912e97795ca86721fb2c55a55400d09793fd1c5b52bea2ecb0ee4d67b0c431812263d806d2998ff7975892c7f", + "1c2b04f2a159ab4a386aee410e5ab8697d3ec02d586cae3b5f067afa4a2a99d0f62aa11e2427aaa08ce12036277736365c9f50e2006cfeecfd837d1ce3ab4714aff8f0e8893567f3086ccbe0a85c74ed1470ca4abaf92107ff241353c56dc0c34ef5af0906798ab79d397d9623979ffc1c2e3efb90d6c83f6039d8f18f84d48a5ab6fd3377bc568e0bdfeafd50addbd707b45108e6e3278605f32b977e758bfdbf8be25692640c57f25eb32ccc3e8543e92f03c38e3f446010e82d5dc8e17f235bfa3f376bb488aa26e102555ea6a89fa0a4e42996caaf6d5183a33d7404c63e9964e19f123fea141c9b95274868f69f34f68443b80c8262335382b8528a4fc559238b083a27b747c2992a4152057287" + }, + { /* i=1040 cDividendBits=3597 cDivisorBits=3149 */ + "06b825ecfbbfd241f0194e5801eb8c92597768ed5220abcb77bf8ac8e648fc031dad1780717db03ae37507dad693891d741bd44ff9fc538d7f1b1f4807e03c3a255b0000f1e011b5bdffeb362f2746d2a58a8857bd101b47d0af01232b8b5146762c1364e8f23ec0a9c27a645f3cb39a25d39d6c0cf3e17c9b230b6426a66e05cd311b39be491597a58349319b4bf31cfe7986b6354c2c37e3f2722ff98445b126e7c59c43270b7c2704e48f8b42cbf88b646faca99d696992c7ecbe5c50e67c4b0a1f826a4e7a42a771984c052daf03dbb5caa0d2db466b69d7ba5e4d21126308aa16edea746c7e319e547e81bed42abb67035bf18a91b4351b49cc03685d7a3a06ea87b8bbc61d661c7d199dc68d695a8878a590e26d672f1c38f82eff884ccd0b5fc75f637a21a292a3ff8e4d7cdd535a3e5581db21b0c323b52df28bd70da151e949dfdb74365b7b6038fabf0a77543e17d6d2a9540e308911e62951bb0a550b846d4ad18669093485d511fad08a413655680085de88ed1f04b9cf2af3b4bdc368e217ca50256cb9ebe98fd3d7f005b467d083d728c934d1cba88daf1475da9607e491cf575cfe865259c3fd834ffe1185d279ad16aabcc271e42f9a955b9624", + "12b0255feb32d059c669932e5c3a1ff95e0d8ca4c3b2afe75ab9f20408970eb0c050d95582e3ecd7d0235890e8804ca1304f4d94e29ee306e7f7f62dab735f29c7c9806fa88be26dff2a7051b4cf0c80c638aac87085ab875bda9559436c59714f213dcb4221765cc94bb180eceee6ac382af50be188c873918ee577bc5865cc666f297f3a4e71b95e4fadaa7a5e52ded061c86177b4f9c16c31338879a68df2a5b5445755523159b2e7e8e1fa77b766f9148032e2fdfbda92cbad3171b2d1f450e0ddd07fd89afb90dc17a71a71a745798202b1ca3f4d18ebbfa637ee3221ea29b69cb214e5764214229e6913853282d1f432b72b70cb962a9bdc16157ddda3d7a3717c684729c016a73faa1e6c38512fa73845a49c990271f89aabfce7a84f4843a1393b42c6bffba760d5d17a6d1ddd8fe92c4d2ca27a93fde5588d052e9d906081d629be79f9629ce516bf058d70d4ed13c81acd6ba1be89dd96595b178a35acfa9db177c4bf18c19281561b2d82f3619f66fae6c6cea3a9b91f29ad751404fe45f60c2247862441", + "5c0b95a9a54a442f74f89dea9d6fd99319dce940ae68e027a50da5e164f1d83216c4b87851509a3cb945c6c7a91446c1774c27d02ff0b187", + "0b33578eeef7abb7f71c37a30a3b8fcc2c6f2b9369fb00b593f7b5ec4e437ff736568d3dacd56f04d46cf275f3917e4f8fd19672ce678cfae195d94e754bd1249824a659dd8e012fe79f670f719d73bfc3063d2d69c1dc9a73510c8d9bdbe16abe380f8f825295a7522db6bdc276eafc3f6ec239cdc610c979dc5863a215bf0b5466008c395a2f0dd68fc0f93b628e4bec8da75604efea96a54d85521300449e7a64f5befa5eefab1e34aa52bf07b1a77322a87ff481c4d95c04e172be5e75d625ce00647314f182daaeb98c5a480c351181a2b70d86c34a0e50d5fff12d47f15f497bc6850c9cc49ded1b4342386e354f9dcb2261ba86be61e7af70096c320bebbdc03f5645bbde560d0ec79b6c1005ee101330db5290c7f3d75314d630caa56b7e9c068cec90abe7224edc30ddd0636f3ad58fcbe97691901bb8611cfb302a02dee77bd602eea037a7d909c59094e13e61ae6262f5f38fe42251843dcff1b6502c4575790e7f6ed97b8a271c28e4e0ebb13430e6eaf8d9c40de2e21349ef1fc2f93cac0bd9329d86dd" + }, + { /* i=1041 cDividendBits=3325 cDivisorBits=120 */ + "175c1cf8c4129dad41bb96085359cfa20810824376edfaff60a7e169a3d2092b468c7d1ae267223e3eb0269e226717b6faaedb9f7ec6394a9f0d6a07c03ca9cef4f5f17876b84127a29be3e84eaf0b695a0b9a53d0ecf71a90f0463445b5e7bf8aa8174581992231bff4b83e3f8ccfcab9691fb4f6155cddd53f07158b3ce12bf8f0940744d39da9c85bdfc92f8d81540ac4e1a171fbf89ae49dc35477dee8256a4d54d8abd38353625c88a7c6c4e3c10393e933f48650a797fbbfa3f09c0399d74b2d053a933a543ce9bdd6d27925f861bbb81893ef2211380e7d6c483df75d72b1abf22240bf1340335ff42ca5f71125853e9d7cf2b6efa5d0f09f7d3ab22e0f664c7e71c7cdc5d38c66d62b602fe6e8aca5d8ca7b5d9667e2184b123070bb2359ec373fa1b11781ce2d0648009d23653d31f3b5725762d17c8abf519c22c267a987ae1f5b5e0f248d28969b56b8b115fe17ea132c181e5310de13c9c4d0ed291b7b77ac83a2783b74b3eb9726c09bdb276b8a2ca44abc8b8577226db6cf13e9a9587ffded0c103de16f88ad4dcd844678a01b9a3c39d5aeeb2eff5ed99b34", + "07211299167483b72e5d5c80479eb8", + "0346d2228f6d47783da19714447edfe3fe707208e39f50334b0016a192f884d605f4277e57b138d229f01138355850d7cd7f23a23f6f9ed0100b7439ef4f8a2908cbe85446d26fcdfe4c1a7ddcfdf3ed9b3aa2a3455a13950752da588cfc2fcf4d1567e1823e42308641db991be6b6f3f3b09795bdd6115b9d706a3efbf82d6e7d4a2a52cbe2223070cef4ee2b416d03cc28b905928dafb38b8f2100130fc3bc8735ba0e7e452b2f1ebb13f6fec02d397b4f08791218401469b7187d2c8114687d97b649a811f801abb1dde03480a035d5fa31ca0c18ed0b005ebd66cf4fa0293d72a817efbf630d9b41404cf1a21e0dfe09e5bf815ab4e55480e82a9344e88e2d4269035d38c1887396f0c07f3e97064e17d037b63e74a5277fa46ecb2eba86f94d8a3ee4576e8fa56f870b356504fd60a1671fdcd5b9576383ba423351ea3ff5afd10e4ef031577d60ae7cd05748fdde3e94ea0381cd5a71bc8b73a591db5acef80433902eef4c441a2442bbbca03768966c512d67c2b3d74cf5dbb27b62002946c5c8cb9459609fb323a26a45ca14283b", + "03d0fdd02333d71cbcb635072b46cc" + }, + { /* i=1042 cDividendBits=1579 cDivisorBits=901 */ + "03d295e532cc08604e5be014a380e940bd89e1db0f2ffaf60b8feec9d4b6880d41feee73c872c1031c33618a1301ee54d925c3b4329dcfd36a38de81f64eb15b5efcbe5c2c99aa007ca195f5af940a44d65ea4537b42c54b72372c5379b7cdbf9cb2bf1066c0fdc0808fa134b072995da9fd22cec660ce6418cffdb2b99f80b75112cda6458838c8522f93849bf68da6f3f2e602f5f4dc6d94873fc5dfb19be120c1e6eab709f231a2e141f8a568662b66eb279ebd316acb617bbd8d2542acc8eab049eed22b", + "197a659ce42fbaf5303d732fa26ba828dce063a08ed2fb9d6f85fd44a307c397cdd757ec4638f4c9d04042e19802657e474317f8aace111875a8a547afec2ee6531a1f94d67e76747ebf12a538484cfe330e00ba424ef84d3cc5ae40b8c0beab5491c7f3b508f6d26986f90c4d3c151e9d", + "2668abb39406697af87c3cf7abf07c612389ba0a523c1fae0bd46e52a4be954fcd3c25ca5314c40e2eff3d5a8f666b749ea23da8f9830929ec6f3412fff48d0d604ec5ac8152ace1912e10394f0a97e5eb87464f82", + "11c9c79bc38ddfab8a7df4d051a3bf2f0e9d380056a041af40eb6cef30294ac56d35d0587bd54031900b42c42eb7236fb1a939265f23469950091b5d936a2b17acd1669e437351e07bb94f430f69fb8f122d64ac250e6bf7a15c78852072553d011ff06263839370aff356b9e318d4d371" + }, + { /* i=1043 cDividendBits=1211 cDivisorBits=184 */ + "070d23e1912a108439e6d2f62de340ad211704b2460e1bd603749bc646a9f094396a64a2847e4e5615d9c843ef7206e632725af328abfb4c0cc733091ec88e315ccfcb025d137a2ae70742de6a37ffe0fc5860b65e8ec1df036d5be07cb111fa323808ba53b11a95695387d13c7841ac525fde7943eac2492f522bd0691e96780bf6c1498448f46a01de9588789c10c97008ee7f74243a25", + "45b56811445ef58ca46ae550a827607fbe8edaed4af741", + "19e540104bf87d9446c0fa9eea849e8b89aad2adcdc0d224a3983c5867931bb28f2cd00d370e664147676b666528b9f8134f8247cb4fae8276a6a33ca39238fd66d265f5a3529fff938f97bef70c2a99a9132801a94a8efc52cb56fd8fa60ddd8643ed5d629075cae733d29ab36c2187fa6576551a9bfcabdba7c15ad28456d972", + "101aa2789a89039742d870ea67ac6d54c2b1dea9560633" + }, + { /* i=1044 cDividendBits=1489 cDivisorBits=7 */ + "0149d3d662f80e41aabcf37faa203c0c1cc523b9949657bf73d6ae3ceb305fc9902402e544be8cbe5db94c133f9fdbc157ea527585070b2fa3f4a921cfa0660363aed4276645d0ff928f5b8f2498e2b58f0d6586b9e6f8fc46c7e96cce5c31f72680783d93bfb11f5be7e0c2a3341bac10ffccd8e6cc8764a7513385694045bed5b993141a97c7c49eca087e607e3d7f9de79b04ae51c8ca5603c89e1767a61fd8002f424ccbfaa5f3dd9c5050faf787903c4ab7af2ab758ee3f7b", + "01", + "0149d3d662f80e41aabcf37faa203c0c1cc523b9949657bf73d6ae3ceb305fc9902402e544be8cbe5db94c133f9fdbc157ea527585070b2fa3f4a921cfa0660363aed4276645d0ff928f5b8f2498e2b58f0d6586b9e6f8fc46c7e96cce5c31f72680783d93bfb11f5be7e0c2a3341bac10ffccd8e6cc8764a7513385694045bed5b993141a97c7c49eca087e607e3d7f9de79b04ae51c8ca5603c89e1767a61fd8002f424ccbfaa5f3dd9c5050faf787903c4ab7af2ab758ee3f7b", + "00" + }, + { /* i=1045 cDividendBits=3510 cDivisorBits=1391 */ + "3708a07c364ab3de1410e82641c0713601e6ed7db75fc800b804849b647ec6d6e776513f2a212edfa40408d9f7f880e2c25ec7c07bd620ffd6459736dec9bf346b1d2b1cf12239a86d5a458ca275d1c6084791b14f28e4746b4fd493cc650b27ccc21cfb563803a4021eabb9e1be88d5d1a5b1b6af6138636eeaff2a61616d12cb6688a3c2b0e95b13f4c45692fdba85348155b3467dadde05abc398dc1bb974378c0cdac7d93d5788f566451d229f4e87023813955bc8910c9dc9dfd62d3d443a5538c6fae289b1d329f91f7be8ce837fe978ff8c6651cde510cf35151c4a6c203916c912e0d9d9f65aed29a324e0f1f7c52bcfaea2ba1ec970452e5550e77d641267f426b1b1661da87ea924d7e60aa80e9821f79231469b9001a7efd595a6769a59c98b517546b674a4142346cce30b977470d1ddf21ab0744783b6adc88eb8ade060a3a6e545ed3a4ba9d0a2f6b288673c74e584b4ea7adb46702f85e0cfe982db92b7c48266e7f6ff9b83bbab9bb91771c5a4a1ed19866586befe4c53a95b60842c3dad8bba8517a49787b3ef39eca7a584f5aeeabafd5d31b92db6fbe9d75196e48eac86985468dbbc473c53532d656b15f5cfca", + "4bb21c9851d8bada8708f9193614a115bf5ae9e1557b9a3bcd034416653dcfebb4dafe51a9e58f91a44e21275d60ad9e9e2f5c7a16336147bbbde5432f364790d684cc9417f21951579377e37c17769a70f024aeca7366308a6c405407c6e439fcfffc86b38b4a7b0901e07b6e0730bf39f6c059c02c88bbba91e01c78061a9727ea636923b1263e8b4901333254c7bc6ea9c0742b5c62610ad6b52ba6ea1b156530072b9e30a32f93a2d6419fda", + "ba1f2c712ed36e50968a2410b34c4c51b01aaa32a8f10a6116c4cc1f96fcb887a03757d665c47888a27ab03719a9ce9717857ae83ab33164b1ebb0844609a91d1b9d5daffc5aa185098d524e60a8613bcfdb0b0d5689302e2a3a9405fdcb7233bdadf3c7cd65c134711021287a0c72d75523c8cb32f9e5b1fc966841dd1eaadf8a00b699b6d5878b5d20739b917c08c50bb8e09fead76b8af6f37a74575654477bc961e3b76fde92159435564cdfbc3e84b05bbd7457b0ea336b88d63e91fde2716187e83ef61c7a0ce1b18a4dc749b521b13867496976366093d61b7c0f084daabdcd9a6fb421623627263312ea359f804b0a7f6a1542a1aff3e927fb59516f9316ffa643d41bfde1", + "41ab00898ec4660e6a9e1b9543b9a439c97a747a4b3d7910f6d7634729f979a29c0ed0e72256eee6cd74618598518aefe3b34fea3204fc3c760c0353099daae08e158e86178ec78583b8b1370566e39065fe818b0a441800491deb37b01a490c08a5b96b32a2d707b99354c8bbcba65643c0169bc17a84d57bdb2f5fa6217f5100deda40574706c5898a4a9f1e4f290a70eb1bc6f054da2f3155285e2fd7249aa0d9e691ec30dedf9233874fdf30" + }, + { /* i=1046 cDividendBits=3059 cDivisorBits=1531 */ + "013feda6287467f29fcc93778ce73ce1b276fdefc4c5578144c97b8b3c30c0a75004bac8ab7621c2ef5c70b651d2ef6431aec99913af796c310a5a2d1b92ee920aa82faf78a62e046456edb1f99aacd9273a14d0f2da2bc2198163401d868552633e266cfa72df085a215988c860c7b78be36835ce6d09d385ebc3990ae26698b1d6472f86d5bf3aade81620ccbc1894ac0871ae36e3b9e78fdda659a840663c5f27883012f98610c8a282e49dbba863bb6183a1fba117057f1760f326f657328eb61f12e36e7a38adb46371a6fbf1cb186adf94c6261506e53441e6d80096cc7d963b61b59abd8f66ee17225e484efc8aa71ec524f3abee53d87691b1ac175ccb296a645d6a64723162ac10f73a39b256980472fad03d1cbc6a995bd37300adc70df9ecf50c16652dfde25b2c0c2d13d0cea54bcbdeec1a4074ee4a9d08eff3b3c204dde6a9048dfa2f807b4e93edc65360095097732af5198b3d4891167963a63bc0d17b372ebc43f94b950c19b9ac0c3cd5a40efa29209ccab87efa5ea3", + "075079996c9c28ef2d49ecacb04efbf0bf95db2e46bad1c3e4e5baf0f3b80c9cc4eb2a920d371be24201c4093f522080164674d71b31b042ca559fbe11d2aea654c03ad34ebb48d1a764c533aa70ca4b0168a2c80d64b6158ad16faddb2586aba77f73299caf0eb9d541103a2e57c84700136175f7c2b008e0fc2469f8c2a318ab5b415c06715d0f6479cc590bfb29c6e5f7df896a765646d68e6c54ed56494ac01aadb4c0e8dcc2eb1cc6f2e60514fbd3f4c99c517cca484e8c74fbab1ab5ca", + "2bbd62623777acdd0bcff9ce2010062e146c18a6a10c649825801ea1e8e7261406fbcf8e083195285a9d6874a0d82cee86a68cb0739cd438193c578ccb0b16914351507f38c2959e64b235e83f1372dc6cf429b59bc068b04bd8438bceb3885220e70f2bd438a84cc5c63a4f53b1339ff385a5c3a26434fed07384ea4c267be32d0bb1ee295e0d6826bbd6fe3366a9a9e416acacccdc32126e410d8df69faba9a20bacf229613a6e39f62a123cfac5f5a1abaa9deeb787d9247fe3bd338907", + "f5a8ad185ef98f8c93372cb32e3441cfd01838c9e882e1cfa808d044a4c27c62cea4df9b599535b4e3caa8927aa0146d9ddf5a3cbfabdabe2d2c731de4a0aa915b238d747249be3b9f83b343969645994c2a7005cd3d17c219bd18fe9a76c1611ebd5e72e5e74ad30987ec51d2a852522f627c14193ab19dd162b9558fb894086f7345986d832c287d3b58fa8bce8f3970ddeaf3a79c1478f96b9cc05237e02ecfbf4ccf90178c5d459fceae399b815c98aa43a027db61f16eb29f2cb84c1d" + }, + { /* i=1047 cDividendBits=3839 cDivisorBits=2904 */ + "4b732608b854030b819e8adefd25a8c436bf8c03ee87cf811c18b56874607784e0e0ed09d6fda381a0bf9e6abf77dc689d7caab5f56252899b29b342b078c0c6457ff0ad781fa56be3d505d93e893a86869072495336dca399bce5d51d226bc8cacb7df1fdd561b302a308dcc689567486184324ff2690dc2d07d9c1185275316add9f0127601464e7c04ac046a624e8158e35bb56edb6ad066562c66970e91031236b9a5d79fd12cb9726babb12466a9f1257d707436530e2db933954fb563eaa46a440a41819474dea9bdd323d5a9290f77297076757434f8e2d2e696cdebfee416c54250bffae1fd99f207723be0ba7e33cc449357b4a60a1ab246be9ea0cd5391205f20c5c540275f51bd89ab4c730b155ab30a7d03498aa1ea4dc280ab769ccb919097c0b5417d07d4a472ee25aa814c3e6b0d308b7ab03de796192a2f7be8da614ba010f979f6ec22d63439a6dd3d633255b9130e257c6932e035775cc46742a04deca26ca473e220caed743a8f945b9ed767621605bc56ea9cd0af334967280d35f26e405c23fac31dbeba68e8b17f658f54b51d5696efe7d3801b22edec85eba300fc44db57cf05d71c3246ca0debc28e5efa0bda91f7ac44516a4dd8433bad2f8192d31d1ee99ec72b41d8a438d950926cff3e7b799afff974f4317", + "d3ab011884ef8698d6f332653a3430b1f0189c925dfd4225b3118599c311579cee8d775c73a4598979d4d1bc664b04fd53561833bd35394689e381c2f00bc8d113d46d998cf3260cd246f5fb403103e7b8d20ca5d7745cf9d712a5d8f771c2cd10c2371112f887fe088582477a9419c765d12d6a7d096d279ab68be1acfa79691029bb7f8d00825292e5b9b4737c802f834dffb7d4597e8d96138e0dca3156f8eb01fe26b32b518bd7ff41b400d50d126fab01c756591e77adf4aeee9e4b5ed7eb1f3e921a7510a9939a4e8ca62bb08707452d90a6370309ba63e3e82388f311b088d5c3932b3ed1a64f3aa08f3c5fb8239931b0f6a8acc0cd6e67c9fce77d34895f2888bfd1d66fbb09b5b6c3922ff8289b5e539b156810bcfb4445663939c1c1b26c145b87eab4798c147b3c4c161f5ae736d813e9dffe9416a9483fdc83e47c59c46020522da1997594af092bf846266d0ccee322b0d4a984538c92628920c7ae84d6ac31772516347d", + "5b4089bf5a6ec188d8e04d77c6bfda11c0d67214db4e6c8c9e76eeef4665bc6493548622fc73cafd67201397f6ba7c795b6856a66e39c32a213d3a6e261d0c2fab3951bef0959e4a1896437b970193ad0e9a371fe649574e2f6af44fe450fe2d732fccfd3ebf87d72c8fd0d86370fe0282523b2625", + "4961ad53c957331c7217b5191533bd63adc1ba83a5fb6bbe388ee69b3b6d81cc046fb7b1d9c7bb953bd8bc5903438f2d06df1b36be04051db520c76cd03bb4aa2a22b149ae662442a6a4d31f7ca2a6dd5630643b809f27f7024fda6a1aa8e5d6780550a830be005bfb910fe5cd773354ab364479ee14f8dc5742e1ff550cd2f1d3278d28521eeedde79481155c582219b00c360d24f79336ae0a2d7abace5d6b768d6a571b4d716eb65c4515cd0368d3382c0e280765e5d42f92432fb43b547891855d7b053aed84b64ecb52435e4e6f7dddf85ba80096c06b0085c43bc14da81d3840a3de7f6d153e1afa3e3bf487c7538abcd7f8c5aeb23cb6dca6162410e1e340617426f7cae75237f30cbe7480f51b8f19c2e81eba9c4d0c21dbde2e6555f6a2e82645fdd7531e6b9a26632ce51ae1e5078a85b9c8185c65356350cff4c334c636fe5fa960bc74d31b0ccfc39905ab71b23b6b883aa6f5312017844897e3f70d2ecb528fddcc801f06" + }, + { /* i=1048 cDividendBits=711 cDivisorBits=354 */ + "397b328cbf1ebf8397775142bc6ff8776de0279389068e9fc6a2e1b12ac0a27c99d9c15e0ba97d5b45df988f22fb4d4b631e48c8f5df60331a9e566101f0eafcdad70b03f1aba704e29613631cae6abab7f1781b7a46227288", + "031861b251405c8e721a777a9975a5281457aa4cd5f4b471d47ec9ed24c8c0f889640c0bc683b3a96a28c6059a", + "129222fcc344bfb708ba5209034f301d461cd3c13662d15852d0701b8cce03794ee51c808477a4e548a44360c1", + "ad3e62a22340c244696fb9dc7be5d8e82cf61e4e5110a798e06269bfd5cf4a1c71ce2ceb2739b66d2770796e" + }, + { /* i=1049 cDividendBits=2940 cDivisorBits=2049 */ + "058cbd6533f61d4792bc2f52bed4f8d619a93eb278430da3cdd3869a111b4e7890ba846fc9f2b2cc5cec1d7dd2e27ecb7c524e6477cddb1b16d03e7212ca7a67831696e04ae9b02e475495ff51cdf2edfe7035ef75fa485e5067b447fade928d0b3732cdee26e22520d82ceeec5b0ef5d7007343bed5b12881e0f576e36238e71b9e1026b84a1c9f3f86cd3ac1e7063226b2907513cf7997ba662b241a5292a30a417d775bc6aebb7fbb85ca09807d7636705884f147fd58361064bc025bea3409123b7e23b4a87033fded648d89c650fcf9c98d0d11c9cd7bc992039ebc588f88a9667639a270d3e48b63c73243473cf30b5b02aa4340463146eff0abbca56b1e0a971b3947e726abb97b1ed2bc90ba30d9ccfb5ea58816a3184f8096232af25b71d7c53b4ef6c5e9cf87cee11bc6fb999fbd542f7368e2c59e763a06d56f0763f42f8caea8adc035313ec371c4a61531ad8710aa2d057872af6b182da49a9cfb33ff258ce74829be297b05fa2ee35b", + "01d1d873341d0094e79917ca5799bab859be95d549c32b0c4528ad0579069cdc90df5f311be87942fefbc2c2978593506dba47de591b4c8ddc49f8c4abfe8088c070cec2d19478a2b50d166c2637a48baae58a8f0b0752b79d8433b5d9a5d64f47ed5e9ebf15cb3857b01d932d6e5a373906721f60642ebe1f0e9e612d7ac779ff56d41bf07079184a67cb909deb5a62810162e48693ef04a00c526f9a2bf14c841bce16ced21ee379e0bd627b920af9f54801d0a715572b06820162e8f6d096ce9e7a3deee000c2b504dd214b746770be11b7a85056f0b899f074cbdb14a2d8cc17824083fcf4bc29de2a6fb65cd88d4f713196e590e6ee61e395babafe0c236b", + "030cc048758bc4b10f4bc8a4708004c677ac6c53004895a03ebd61dc99840446097f19f4f183c9aae6e8e55a3edd9755b41510e6850929a905b6054d81af6c8b5a358aa52055b704821988fcc47e319f55de7c6b543c52d024af6c03e4a80b5b211df68f5ba86539cae2544eb8abac80", + "ae561b3c350101ac259fee26d0d9deffa7df35ffbf934de1c96cfc004527d937f3dcd96059f317cec6be83b14d10e11c722f84e808daa7cd8a493d926643c20e73764e1f276c218e5fbd50267d9bbded197d2dbed05e1ac307060fb3a028b55ee0d7ac94966ae23560081df9e89d208b9e4dd180f2607ee117675352d975a1ab3febeb753f558404d63006f11349eeaa30cb05027af7bb5d301df8d6d990fe35ab088ea671a770fba936d7d126d73c601540e7372353463ba97e3a600c2b6aa6b28bf0b689a82e6c00916bec880797e23feab7f8aded5d0e50bfa7289df4dbc2e56d0e61a68a424dbc6309ff69b6140685fdbc32d9fc7a43228e28ac3bd849db" + }, + { /* i=1050 cDividendBits=3812 cDivisorBits=3782 */ + "03f6314d0448137ea4d10a33f2067460f54df521b30d2a73d50978129b1d3305883c40d4d89d0bdb5357f719b2126c5db29d0732687266e17a1b91e412906f325461ec835a42ad9e5cb8156e83e0258a918b616137a1a9f082738c0fd52d9a5e60191a49f694544ee3248adcb0e40a7640a8dec4e54a734579368336fdabc092f298f1c93bc8a37fceb67dbff80ac6bef043c1a0fc58f942920e83bd8df59eedac17addc2ae430ab37a085d5b1661f499e2f6c793d1bae6f5401a54b2431f81982523304af5868986649c94e2e9f896f3c9e6784877e43b5734877ba95dc89eba8083452ad41da4be4382e9f839d7a642552d35f055b6ca312d206bf07bc94d061e2c2ed84c5fba2fc5cddf4f8b9467d392d9874dc48d7d48b0b524586cb7d67e20749c89c6b13638ed0507fa4b753d88aa43da0de01411b2a87700c846230b2a19366c50230452156aa2862c012d95467fc78a80fb314266a13f5eda00d98683f6eb9ad74a7cb69ddfbbb61608e3a2483e6d05c51bbbfb8db3957802ca0b90e0fe45dccefe982e9894911b5fcba6d316aef48663537cdbcba5b330911aeea1553c31f0cf44e65b3a9b7a0269fab1f5d304d652db9807f1e6441c3506053571b223c171281ea73c8ea795a2ab0eb4d833dfb41e61b6b8728e9b2c34cb7", + "3f927aa4cb51b69d6ca1750c92011e9cf7ed6f0ca08775625aaebdc35bbbd999d14bb9627f05e05d81031ec02e4185ce50abd67cd536214da95a58adab4183a8ca500b70763c5c7aed55147c9553dfa034fa5d235d9fd1ec71ef3ebd24bc4faf65a8438e69baf42161d95204ef5075247a4a594ee296132597408eecc901ed6764d3ac3342b1fbd54b659fdc1cfe5b853ffd29f929edabd01b9f1d6963fc8f59a20d548e67a8ff8dee9bff6c0e79a9d71af58f8ddc0aeafe4ac921e913bfa77204b37159b8712bb7c70c945c8827b914d8b08e8a9339ffd7b85958d0762b95a264c0a4e918a7179a34b58a145e3e450316080b2ea8eff2f93593c0f0f65e5419d6faedcfd47ab195fd8956688af189a81b0a139cad18a2d73083df5f4303fd9b3b52aca25efe3b477f01540b9f61b8dd8b01fffb1d3768e4b2fcd83f2d9493b9ea70fe94d38287755dd957e43e1aa8ab40664853e92caf1a6e537d8a162c927b118ac9aab10f035be3459297ff3a732184e2a64d21ec0f76d711d31dc382ea12dcc7e2d88430ba7555e504bf3026fa00dd7aac3de614aeb3ee9d64fd40e2dbfa47508f47ac94de3bdbac0938618940541ce9ba57b9a29d276217ca992bb43cd6a79b0325104c4f4427e4b7d6fdf84a4138dbadc68de607b364", + "0ff41220", + "385d9504345a2523b713b6ae40dfe0446e1f749998cb35bbab5a4d5b719550d9e4ca88ddb5273290c7a323ccafa4d6627e696cbdba0e3cf7da791249f0341439f1551c4bfd99b0160a4e956c7988ff8b2597ef4ea1ad11c9e36e69fd50d30ee1b0dd2493e20eaedeb73ba177e46ebf83a340fb51256a87f972168a185a357eee9d7383016e0b328f229ac76564481fb794cf5191aa4bc167b4b16f9a8884389a0979e7877c4608aa1e19abd9c56efc3a7737650e2d5d538eac5c4a1849a441c32f9f80fbf33df1a796726296cc12ed0b0cb1fac37aa2607064d5983eaf60c3a9b2f78fc8879b83855c474fd30774831d4f31aafce61368b1ed992c8947f4d37b2925ef5ebfb96c6b23b28a5ed17f34c9e62bf30d5b91de2eb4e1c31f6944494b539ea4a01e47bf70e3395e36911ff241a7b381b43dc2d5368daf9153caadca6e63ebbd4ebc75c9cf978b0f23f8cbf8fef730466aae862aef37e07285843be8f64a0ff21f17f9280372b986bdcdc4210ebf345fcb50c2052a12bb39183627a31c62dd152efe3739716bb8361c52aeafb41a4b69df75020ed514b958bfef3655929cbc3bb24c8f2eb5fa0fffdf1ac22ff0edb192e6a89875f25d8e07886f038f867d0972a0f8103a12cd9b97c7713a532f4a2e1eaa268fdfd837" + }, + { /* i=1051 cDividendBits=3799 cDivisorBits=191 */ + "4d922510348ae536c3cd9c16dc64e14e1ffcbe776a3bbcccc7231ec0a2b92d1dedad7d3f2f48f38356a5d32e0353b16259570f462a99c9a0a648feca52557cb3fd15331216446135b1ba01a1d552c45ad8480a58620bba176ee5738dcf56eb708529ec40dcbfdde450f95e46da146eea9d87c81d7d88033f2119dfe3c6e07a0c170005a48a2cd97cf258a5d7ebec2172b6515582edf40fa104c9ebd21be0eec8ee970fc790842e57c875100a1762b4f52bbcad454413d15f0afd91661f19ea20be63699074660a64c960d02859586420067bf45333e23702e5c7907482c1454b53d0045d82b80f8d6589d46b7a41a9a5fb3fd1170e1c8f7784187c344519b10d8542b5a0cf3a5470181c3a8619a4c9906873199acc188c74d3fd149b9447d9975345832f30acfc3aeece4645ffa5fe2284b9a46fed183af3ec3186a3305cde41a3248fd6e632a70b64cea22928fedd3c817330ef9b9f07fec171649c1b86b17761b50f0802b51217dd7d39e90de36cdf1ba9f06b94d604460ff720215e93c3b95576a677be8e1993c78983423d67c60624a6a6b301ec90dbbc14b44d4116f460259dc30413e8634aecab45a9db32b739e66afef2d3f6477f61dec02b5e28dd659973d2b48d045f58249a3a55aee4ce36bff9e1a23b91208c42e51e", + "1d64ddbe55098e0d6ab279dff02b2d32a0733ef83d67dff1", + "02a395b41d58deda3207b8c8c7f39a8e1c2463a906902a47c14d511781450ae4ee8a6380e355060527707ba1ac6791983c86603aada4149cc87670d24c1593ac8ba61dc4cd3db707b83eae1ed2596fcae524d7e4201b78d120839d567ccec9b7506a758314340757c88a300dc8f86f3b31d0c864fcfd27ce7a9c0dd461d9d2d0e346f136dc4202b52c68d38a7cda16bf812aa897ffae6bfa96104eb8276cdd0a4d00d5f00e4e5c8190d0d794155c805a14b2135755be63495fcea9c5eba3012c075958c406474c7a86f1ed4d01029eda3bb1e67003e51bd512412a167913693231eaa6dc5f77d06041a968241cab46501ba5567aa91e7fbe956df16a394b5cf37d914913cde43a6372e8da067e761ca12a9b1b7bee3df05a78c6b89b70c583eb0e2f3d1b1b4903ce45232ac2606246ad5784729476eb6bce8a363d2112277ef8f635563a99f26f223f0c23666126521316f66456309a3f4e78a1a77813ebb6992b48bc81e9ccc707569ae1a5b4facf0fe335ad863781e787cb6e37d23333c4439dd761d8f750fe967561e3cf4acf6d0d9c87dd051af4a0d1f5359f08a5371b80357b4bc509409929113f07d8f690276ac81e57f78354c68d9f3fc8605d9443f98c655432", + "0d481fc948938d3f1c9f7c51d6277f22f391e3a25269140c" + }, + { /* i=1052 cDividendBits=361 cDivisorBits=139 */ + "e3008669fe366e6742b5d778188433dfe8145689e05e51739e1c5ccef6ffdca230c4e6cdaac2f6af408dabb08b", + "071202a79dd1dcf8d07e4ade5286485982f9", + "201b2ed747d8ef73e1acc027e864964d8341947423d6fdd74dd6ff85", + "06ae6c5ba6d7b4f231f8487b92146c8e9e2e" + }, + { /* i=1053 cDividendBits=2866 cDivisorBits=133 */ + "035ae690e8fb1cb75e325f19d83a80a673f7401ec9172481ea0e58f3fcf5269ef05b5b10da9e5655b1d8e785827aa731007138d33adc2d843b1d7e013b9d3565d9a94d1427cac6456af89059d45bd2337374ee826a46e864ab2501d00c453ec8578f55eea9d90942509936111e29d1d503dc4bee9cf8051810ce18c49f7e7c95672f1f5302eccc323f929120ab0c5eb10aa1a135c77051f9e1f2a1a566c3ffcfe81ee3ef8cd5666772b240645b47b6998dba7e4929f1b3b371f5f1c85f9596447f389c75a8ca8e43db9593940ab99bb3947f4ef0f7befdea5188b91e84617449ebdf71678a7a8d16627f490416cdbc2fe25f249641398ca1d8164abf4830ccb4f9e26b85ac10c477863d4e68631b01414292e178d5af91f3e29339b5d690139703e09a2f2dcfa402f185a3a822043cb01febc2ad8aa08b09a99abf78ff1f330ef762875ab37ea1241ceb60d0d9436b2b2d2979d156f60c742c94459e0086bbac94caf39c54de6d", + "0dbd3fd1e3dd4b7125509c1b875f74d2cf", + "3e83acacae645928f7398bd987cf654602e5918c4bc364660a35472f77477f63d91b5f90fb6904dd39c4b8bb046d485848d684b23490681a5fb79bf7e23a9f079fbecf8501abd1a6b47b29d0e37e625b28eb877682402e4ee4297562cd5228ec287d1e2cc87e79224b464411adb9527165509e39daddfb5b60ba0b2ad7c3d174b43e3b52ed1b0288afb442017312c8827ea652b63be356298b6c460ec62fc18eff715a611aa35d33b83b637b36f090144fc2ec942919fc526e0d573668a263deea20e1d4c71bdd043cfa8ece54af84c1011b4ee6d3c471509b3e84debbaeb819408e26d328f93aa44fe8e7436e19102a172d9e28845d601c60640f839313da8960128ef885291f48eab988fd22d3b4f83fabb3b2f2d198d86464970b5aadca1eb3d8c909ff9fc0ef95a627b6541bb58e137841be21b605595442fe798f626d353346b87465c31a47ec75c2127b07bc8344e939d091e8", + "013a89b5535579b978e405bef18fde93d5" + }, + { /* i=1054 cDividendBits=1436 cDivisorBits=486 */ + "0b0f31e56aed5055045b59ab271b516b6bbcdba76f987637c4f14fda5e2ba0311773c375ebaf133d46b5f2c4fa4278aea3e75656a1d57c8d72542fd30e3af3429f7696d4b55f5f4ee8f662304c0e0362fd0c31a449ca6c20dd5f24075a8556d793fdc2aaed181bc525b119d652e00ac0ea8551a11bc9835df9771afe92434d1dd8a8af16b7d93f0408bbc6fdaf44af5cdd0537af9b1f9adeb6a195423d7afffe85d82cc9e3cae5ffb419b73ae7d6f253b83b7366", + "12085c7f9dbc78f9ef7b907434e19401194bcf5293995a2b20214c875cd2611bb8154f2bca340e6f4ff296ef38294e3a985d8eb099cd3e67205f9146d4", + "9d00f3bba027ba17f14a3d00a04b7cd4c5a77ab5653679f5862a85b48813a5758f17afae1030190201b6fb79f6f77692a00456267d8175b69651d5130546bd6fefb791fce461e484416c98e6346f005cdc360ce8387055ebb6834d01a1e7ce44a8a4e35b59afa6cab139f39072d70500ed3dfd98ca6ae6", + "0925ba01e216e73c05eeba6aabdb53d4f3fed48334a0a142e2354b59dc120e73a55eb032e5f65d46309da95ac0ddbc84950c9cd4317011b577f11a08ee" + }, + { /* i=1055 cDividendBits=3841 cDivisorBits=2408 */ + "ab282ce4859a20dee09adb8d210d725fd27170c7938c5243da03ac7b7ccb44f6ed9e34ada5efdae957082596a81baa3ccf4bcb1a97907817aeeee4f2a9e8ea5543d4380635d83137ff8f11f76c032e9f7cd8d18e424a7f9eb06211abe14e3384d8742be60df7c9ca05b55938cb793dfaabac5cbdab13b526c98ff5d0f5c7b6815764bb0ad849194639e2d4062bf8e5d4ea61d44430e050be85cea8584bd88b488011f0fd83e110d257216ed10e7a229407ee78647125ed4a9298b507ecfcc592bb79d3add9144dbd8d9933c8f7ddf4513ed41c55adc642f6b925d91ba56fe32f76bed750c8f990124e5da74097fdd5e900c26206ed8ee19427c7cf50100e75c1fa3d7ebb0ea41ae99d388698cb8b25280f29dd7eed3623d44b533f1efd38c4b84fbcab3ce75e6f2900717ede5e033fb2ff1ff01921d83617ee4db4b379250a88f6ae7505f6114c84fe8bf483334b2e13dba05391cd1840aef5cec01075a259f3a3d253496cdb79f2e70744c0ae610af59660a11dd49e87d9fc4be68235209a58a3dfa1693db7745e63138afb6e746b3c45fd8cabfb99cfe532e7aa238b167004d0aa5a8e63572c09c7325effa51b0572f5bd594b4cce7f0fed6f29eb16a3c2c814ae8637e9367fc80d6772e7e3ad05da72bab3e04ee92a8b71f24c8d3e3a3aac", + "f23947b6b378056940b5a46712cafb7eb7a3bedc537b11e11034c58e2e697ba21ff2206434077e1e1327eddfef83c13007a97cf5bddac63d4346c07ff96d37045461123129b24bd423f117c2c92174e7a5832a446816c79aee204f82e071cb351ae373321192cc185ca665cc6316fb4f345df0bb351bb0d9a0eab50e0e2201058f39175774b35ca0c6ceb06c6ea55eff3e849bf5aaabe02a33cc1b0ad4db2880c70e04f356c802aa7674809d8febd81f09405b7897dd28237d3518da7ebda3a6ad7493f8a1015d8f434376f290e0329fe4d867681215c0f07bbadc7fa826e02aae725e3d98f03c5df7413aa2393ac0fad56fd2a4994151775330bcd73ffe1c151bc65cfda92479c3a19732a4d48df6cbcf573b2d1cace46ff4f2908c59a69d28f108018c389f4c0fc15c64c71b", + "b4e42decde3e5b08d0d8644fc232666a036d032346b8a59778d31f286c681499e4fdbcf48433d0df1ab632673231ec964d6e7b3348cf39137b900a44a90d825aa0768836170b1d7bfc850c7a7940a72531a3d51050bdca216724be9d2170bb1b11d1b48472b343e6be88951a2b0ab5ca13fa27d0a2a8004464b2e15851afa0c8232be0c353d6c97a2dd4353cc54e9a10d6333a1cc0d27d2eb89ebaf454ce87c5754966eb6ddc03b4f762c4c03bdda8ee683d11", + "6c7fc5641f9064e66a3af2661ad67c7cfbafa4bb9c152a52f995a75a2b44099eda3cbbc91630adb1500ed0bb15faf5e4186caf12be495aa43b732f0226115a51d62c3e08bb8b7432061adb866df7f57a8933c800e4dc75107c326e9ac53fddc805fca117dca182d3eb8bb8bd62913a0a367f6a3ca2e50c0c13df0b9a6e430b478ccb640462d3192c97a32d7418d0725aa983172b76d671273faefd1331cf8ec89a38cd2c3c695039c078879d132b2d14735065069d75a3496f9bef03908b1a7e9334ad25e1020daae0ea6dfd02b2876fcfecef30da222f3db4b2df6dfad1b73dda4aa30e81b9921b94cd3a3be835b2d861caf48123acc3f346d8dd7fdc8d05951bc52c34215a31f847384dc35f353eb3dc6549617f875ba80a28ef25c65c0292fd8a7e0465ce72faee1b1f92e1" + }, + { /* i=1056 cDividendBits=3111 cDivisorBits=333 */ + "1c9975c00509e508f8e9ca09820f54d05e3f79c27bf5edb5ca0892cdd7a2964157402a01e608dc9d9953d61328d8e29124055808e45fb03d6177e82d05ad47d7a52469124dd9af35c21c19e5c7c921d7cc570fd17a7f3b2752b1730906f1df92898224aa6c2209934d79f24aa7cf1d498577eae006417b6a37406e6bd5343f586c34fb17baac6d61fc48d1ce524eb5431c95c9358a49d196e81ce4a6192d11005c30b1c8d5c76e6d3b8a1fd6aecd05425e9dc40369b09db875d6359a54362c1546ca1b2264874a82b78bee029454f1042cd558bb96851dfee348d6c8a89360b1a6f2b8c44cb155f32736fff24a980c2e8aea46f74fe1f659b6f158b3e5932f759026e771d4a094a23ae454647015575e36d8b48239c6c74cadabd9e045d4c84e701339a99f58029450dde7ebb578580076f24fe2c924a987202d9595f088c8b487782349891611803762679e3c043111e0de59f16e761dbe08be86ce23faa6c22d5fa8101d00bf78c2272d44e0b2d2fc099c2bc696edc08529227c06b34a4eeda3c97d6c7a", + "1f1a757c489c765bab1b9e4e2c0b49afa6b8089b3b5e2a4b318d35d4c6e100cc55b040c9b21c5778e583", + "eb642dd0f45571416332b0265cd3412f379435ca4599c6145e1b62bcbcbfecef869e27fc5e147dcfc1ea3a35c9084962cf9afb3d41a7b0e33d94858282f47b51bd83e1141368a2d211ba45588767948aed461b70f575589fcde7c1f0d00ef93e69b2839ba53e3fba122c60d79f9b8b9c6a9c69ed5d6fa316388d82614df0ed8a8c4b8861bea7060155b07cc6fe0277b815df39192b40c928584e985f0aa194c18d205e63d5e10eca7a6cd79529ea51686102aecb021f6834bcc11ece095059d4fb7c1052c6101be23931e55fbd6b30228ba3d1d966dd7816dc14d173f4926a587857ccc8832a5d0c498f48c019969caa3a942f426d62d3eefc7af5e42ddd428406961f5accd7a94e8ac980db4eb2667cde152490bcd6475db973be8bdf77380a342f5db11c43a26468380b9cb9fd6d2482055c2d6aaff326682bfdd70d77af92d2c9e73556fbc5e649700873ea955d2d122d362e0ab4bae7561006", + "13fa6d18a8d93f4153457c4547e6aca2815f5eee6bef9b4e3d97da529c96b602525ab1aaa49ddf4ddb68" + }, + { /* i=1057 cDividendBits=1127 cDivisorBits=1026 */ + "3b5830390ec0b2e35754905dbecebd70e7144f70741e4d88effa22d0202104aa076beffc78c19fa242160695aa16f7a1d63616418d314c71af555790a228afa1d2476e35908a4aad6b8727fa381968286cea65714fa722709cd2c3789401243ef53c3a61d307510f722bd12536bce834c0e836af965dac5bb7da802a1e1243d98f73f4ab93213ccc007fa05454", + "037486f400f4e9edca1fa32f6b6973f50c0ed2137820bfd208705daf0bee270fc83a81f34051d18e44f8ce1f2e1d46fc7f51bbce7345d57b51543a8e947ff65800160000f98797e244792f72e0ce7dd2799d8e2dc14b9fb96761bc6cefdf64173b258c3c329fdd7cdb8313f4dedf45570393fb4d3c841109ab8de41688acbb650c", + "112cecfbfb86795a3f3de1707f", + "025f3dcdad3dad3cb1a1c13729617d7603af0a85c36cc2842136b88bf6541af37047b47aa6821d1849feb19ea765e21968f95c96d770a408805659faf625ffe7a4b86341c6523a5432be9352e4e0ce1034cb70fa20ab8ac661fa57d40f1cfd0c1db48d7b066d9dbe3b1a0314197606ad591057857e7fbe97f625a144e526e7f360" + }, + { /* i=1058 cDividendBits=1 cDivisorBits=1 */ + "01", + "01", + "01", + "00" + }, + { /* i=1059 cDividendBits=2294 cDivisorBits=1667 */ + "3c4cfe1f1354b0c2fdcde72a2e2034c4aefdbce824449c9c72803ae05d420ece1cf75097dc3e6e1fce1c5030665e52d7745dc827ee174623ba358f82ab94ffa2834b9cf0586b1c9649e6ff0e070483230af617ab35670ab9d2def28ecd6a3e331ec43de16470baadb1bf33f4262207597fd60499a8b96e6cd0004acaff9ed727d0e14764dc70c24e015ff91a444b16ad7f098e7af9a8cd754eb2c18d50c2a7115be4d111d88cfa304432bb88f5efd70ff5e99cb607f59f27fc70ba18821a73b529964df221e731d78e0e185fffa75db2ef1c3687d10d57e3291aa202efc7f582e96d42023c2dd67ad0d7e4591c0667230894118126a3cc832248c8cbaeb0e15db20f644e0b0a2d122f36f5c4a0b9d551484ce1289fde68ff991395ae67f6bf", + "027649c110866fbf23163b17c6c759671e82323118a01b46ca0ed2b1d3c0849e5284760da983ee1e7c68a32a20fc06d93731d5c682822b4534926d72fe8c7a8a51461aa3c23537fbd6596b9e05dc84ed408087e0cd03af83f32c0d22762e9f7b1013b3c08b0f23c0ae1f9d62ad29dd84a937cbea95ea1106e3b305a675ae8bee726aaad61f168bb4dd03d06e78800c5b9d47ae0f7d9d583b27bb3532063afe6e4cefb43c625fabc5fd65952c4d8cffea190ada451bfb94348b2a274b55a582e6404fd80371fe98e60c34a676d40b31311d", + "187df143c1fc2dfe781715d176aed5e969ae63ee8668f73388c03f609f9915dbc9e1b0096ab56be59269926f81c71b038bb291ec55a20d4da574ec267c1071594215be9aa65056567d9a30dafc112f", + "b06c0b438ca6b824f6e65f1b7503edd1ae54e9cf352deda3b29214fe8f53b42fa0785f30eb516080e57ac3cb0e9d0f4c580774bd0fc81bc56fb34bd1bb5ec13f125302470d4a16abbaa25bd2ebf165ff1fa0a8784d6fbca4d1d78e03ed529795d7ed23b70ade01746b69154cfa3d1f5f9062f414f80ce5037e4f508755edf9404b17a2b3118bf9048d6969f244d506822be2bfe5c135e2487e73b98a131398477d6d15c02ef0881a270318ea66ce12e369ebc872b30ae311f85902735bb74bda4d5f4ec6b9c1d9de52f49e3a5191056c" + }, + { /* i=1060 cDividendBits=3644 cDivisorBits=2732 */ + "0efbb0d0787267d1625f4a2d54799b9f38a5983a2dcc19dc8976364f64c33dfaa015b5c9529c67a2d4ab5d561a9a086be43e0f31adca968d843b80dd649f603fd33731395490d001cc83d7f33438e9bb283f14d4808c721cdf0b2d08a42f50d5d6275417258b23c5aa2671e7b055614adec5caab6e4b7db264cbd8f0922705866a3012eb9310b8b35d3fc591e2ffb6d0cc38d5846cd028b8330e62326b3df72d423f293a2c49d8c699330dc1335fef73d0d979d00b390d876ea2c653bdbc0c0834bef3d8c0dd0427d8c2b3e65e177602dbf0b93e848eb473f722bee1d956b44e4379781b955d94f9fefc17e1be13dd1d8f116c63a9000ad0075e04f2955715eef18525e0dda185af30af5d78e4b193bb5b2767d83a67057eb043839e248823f75944d1397fdc6b80a776d72076de92ef15cc25483743bd70ab3f3de474aab5d3e1d9604bc8f8a926e3ead9891f35e805d47e7670f76b01316612e7d12b92121e42416a078871740b8d62d7031752ced17a48a5a2b6f805fce4d0f97dc699871550f8736378e74bfad36e8ce8303d8bb36ea9c49d158a489103b2e7a45eaea4ec414940ed8351de2f9f20018987af2156fc0f965f51e610bbb841585a375fc712727c574a3ae7a1e9", + "056a7a79ae1fa020751aab23ae1c37ac4ee4e1b68adddf6096ebb87c3ae83857f1409ac23788436266258e76145c79f498731a22eab06b7012a918939c5edaab4a7eb9824a3b86d030953bcee9178bff568901c2aa0ffff3e5bc4f45ad068ebc1db8914f74e1bbe509858626f0f2bc343e5fccdf1ebad75de7056d8fa357704252bbba3af857deb2ed85ce14cd09fc9d943f30a79355d0a056e8775a0378734b550690cb4c2ddc6c92c591ce0c27a90ef6b14b7a3bdc7963959d3963ca4e3d2dc29b626a1271a2461d40f8c8e1ff478afa25f8a63c76e1b9c8ac5e106f5a27b949829dc129bcab567cb9670b3493a65c23da1f81399afc6e83dd04d144a94dcb1fbf67b0fbbb175377d2f34de8b0fc646f80b4fb5d451b0fc000af0793a2a988f0c86795f70488511a2b3cad680f2e1665283147deef70aa82ae670f50ec330c434d85465e4f5be60953c748a93ddc725ed7896f8971", + "02c439417cf20e0848f94351498aeda272fe89ad645d63c7535d6710ca27c9d7f0c471c3bca48bfe3844e00563982e96fea3be17e9650c2c01dfa29f875e6efc9bd90f147a15393e2f5ea7a40693aeb3649f0f2ab6c58612e0e73bc06064a71fb5ebd9a1be96b69028ae9f32d0690d20798869", + "03da586f07848bed9ca679f1be265235cd081fe080a08565504c5a69ff96c6cf5f0754b547ba4e9b9c1e40df007db634f1a0f0e0c20ace564de2e04b21b823eb3f36bf6dbf4901e1f5c17e6b357d6db3b759a163c6049ee42b28d64542bc06bc10eed63cbacfbc54d52e70b47cfcd5dd334e8409076c63219f277725437db12eb06e130e8b8772aacf9ce9c71461d8b8bd32a26af50644e02260ddbc087ab49426fd8d9d2490514472533d530053d17ec7c69ac4a73a44c9562b88a1d0700c41314f1b938f8724aa23b72535f9b4e794b91d425370e6db35f5da82f29c18d7b7c61b3d2be443ff77f220a1a2afeef1a94e4413d92bf211a34182e99d0a4e61de4e2eb7b04252e12461be0ce2e281b258693e5e9a2036151e1b4841495bc4d6836b3890d354c0ed7ebab758a961f466e80654aa9d7adc978813d130301be9f8a67e7afdb80c2493d6c741aed82ab50849b53c84bb3a90" + }, + { /* i=1061 cDividendBits=3222 cDivisorBits=1210 */ + "1f3c9281c25fe5f399c0d432a7a4f3c4ee1780b31d66fe2164b60289b644d10184f40ebbf8840f539e863cf388c8ee342f9b4c24d9536b60aa18b68441ddf0ada0fcb1db31b51f2e421924c59eced497ab665cbccbe0508698c2478377a7b573513ce42ea170cc91cff7cd63acdf2e5eed9d280e2e50fb697c3ed64d3e8ab81daaede0009e7e883aca10666e7cb1004b35adab741bd04b050c2777be8b68dbb4bc2ce359b34cea140167af8dc940695a54e86a71b80b1c41c8be4a53720fb8688d641e1c91c7a4fb2da2e7840f8b05f68e0922fb52065a57520f1b66d358121033da9e2d2b793857c85398f7ea1cb52e8e51d48a2c5223309fa9ced2d8a3c126be5aee7ddda710c27cbc7dcd506173d50d16c7feb88bccb972ef7921befbe879102cee343d2c3d60e3bdac5c10ae0dd1ed3dc19a4416a6bad97dc5a931338efdc6acef48308d32c0277f941971bcc2a835d200465c446fe899c8295eb79be50c451485370725b5a56fffa53f68fcba0dc5518460c0a863f247c1fd7d8a8a92a306e72919d3e86b000a6c6ff19bf4d6565b9783", + "011eface8eddcdb64eb47f3b15246c287f2a01b562b6a4ca0353b289c5fb02513a668dc7cb44466d0e0882424b7ae24029b622d62d19b3178bc695726c96c1b7cb9a6ba03646ca4775998ea4f6081190404cf535ffddbaa4e9c9561456c17aadb2d9343d3024d63a5327e05610a2a72b1ccbc2a2bca369edbdae3e7f810ca11fbc17768477c1565d9e3f4df10a12f3b59f5cab862ea7c271", + "1bdd55d1b8085f0cc6090e2eb04d616449823ab8996768f7e8d5b29b937f67b46cdb0686b5dcc7fe803750104e99472b5e6b1671ecfe98897cbfc2ace181a8cf72504465446a4c652696bb48edbce4df3907dc0c88ba9946bcad6df45302369339c1bf29c5a39280f0d0811778d8860fa9b20875d3045eaae5a0bd62790515749a67bc0e199c7c05a7bf4f6b5d572f66addce5ddefb121163b9f1641ec3a29344d6e20825b3f25695fe2e6946851838051244269a17df7298cac434cf1252365add8cda36c087cc724871ca8088d0e28305db69484b581e6bcb7ee24673fc9935ab477f712025b145eebb770a7413a2bd02737f3b17ff994d2b8b414", + "0115e19a6d2050a8464b86b79c40847eb716a74bcb37b4ffea6ffde40e2989986e4aa4d7eb485e3fe51ad0e67a133bcdd968b327d9068a504252eb33ddab12310821912a5ad728444f1b6eda6baf43ced56a53ae187de7563cd43cc56486e73022f2a6d3d3bbc37e0ebd73618fbe0c6d8af9705e9c80f69467cefa74d7948c944882c1b29797c8fc7b318d7ad67877023ee1bd244950f2af" + }, + { /* i=1062 cDividendBits=1514 cDivisorBits=712 */ + "0212d42c072eb72f2369c9fc50bfe216f8f166c120937fe960f57d5e169bd2ad03426bba3e3b41ea2a2dbfd26788df710b280c1045fa01420b502289a75535737c959f78f95caf46f8cc56ea9a793a789a047285e61767088334a81ff4c1a0b9828a35390f27b0161ce84da4a66d5151593defbf778c51b67133b6eaa26276b843fc96d0ddc7cd88aeef4105abf80b03ea68a84b9f3d6a4d1763334ddb74451f35e2adfb0788ccdcca4922ad873263827e446cd5e3ab30cdb9ac73bf64c9", + "7135fbd346af368a5e7e36b8fa2d1c1b2a6f5ccf31a4e84a17c951489dab63b750184d758a2ed7ee7863dc433abe901b3715cea62236d2d1a2ea4e0e5118e1ae3e08d53e56d427dcbe6ea176f617bc93d2cfc5aaaafaff3ef6", + "04b05877f0124973d345bb872aef32ba56f777b4b25be1e56f1777a8ec969d321b342ec5fd3abee5a2b83092c25406e80aaa2973b5b4a87120af9d6eb039813cd3f1fb7e78bd132c92dd31c7a5c989a615757761d0ea3d094f1a2b61de1be6851374ba8f1e", + "1097a31c5add3cfcc88deb78fb2f1431fc48c2d11d59658f6354676634ae2d9540f3768b9f0d3bd5db1f2b63f9217782648ad9bda47eb186cdbfb211c0919219080c2bce35c200a3581c946e6ef5e68c9233acb7313eee99f5" + }, + { /* i=1063 cDividendBits=1820 cDivisorBits=1681 */ + "0d81eeed71b592a0891797ab58d7a92a0a266ab13db126e7fb078f19d6df9b2fc3ce9114a032c935d0ae211271262dfb9a856e38570c68cc3f3fcd98f44cc1d2a0a8b2bc4d74594fc8cd368015e8736738869c69866372f713f63d93af472d3060e95eea0881c763d3fd5a40cce43f5607af860ccffd911be344c389ddacad5ca8c11504a91d1e8357d4b2a40db1af9b41e6987245f1324632d71ad8ada06e79adf244dffbf606adb47456c01a178bb27cb56ca92040edc0bd8d7aae53f4b2e8197a95735bc71e666bdad83a1d870b985a767ec19ba6e60c38b0471530890ca05102c915", + "832d8201fb454e5d9705024f19c1606853b7b93535d2e386b84e4c738a5410c0588c59d8e77d2664cde1c5b3f4f35300efd08902fdbc576f240b62bcd8768fb0d061dcdb8cc6e6ea76d477c4e2dad331942c82d51e282acae126b13be0ec83feb92444c0841473e6345b3d4665e0c9ec1874b53a27369f1e0f45d813f6a836a9b24a39af89d7d8bebeff443edfe82fccf793254d8f211a46304fd1bc92d54d0c69e744dc1ecc695d9fa64cf6ab83b842597b469a90a0679824dc54f709ee440c8cc206acc2fbd3f431d6eccc44dcb33a9a0a", + "1a5c54a320deb433091ebc8f76f0d1ca841b", + "13dcaaa650942dac057d7a6d011687a195dd26700f357ea9126c774c53124dc13a67c91a2e0c36783ea0d41440db242c3b32c5e1fd85e0c4575ec09f1dcc98b78c6ca0612b796133503a345fb8ea897a45859bf5f43b08edb4343487e07db621a705d6dda6a9d549854923131a19780f99d3b02a2630ff4b3f6f33960edbc7d0dbbe1360770220e75c25420712fd4f265a5748b6abeac8bd25481f09564cea87f5eae2b734b5d751145bc27bd67ca31bbd1b87f3620703abc088869e8814836178af7e7f3bb0aee6be5df17cb38f7c836207" + }, + { /* i=1064 cDividendBits=3985 cDivisorBits=3446 */ + "116e203c508e411281509c04bc2fd697565217bc8c7e631becec7c8aee795beb8e35dcc7fdd0e26f45c725e1d9490594d11532783ac7cf27b4bf1cbb824b993b03c1db485c8455b8df0e05622e554ec5dd4f7a8db240511b4d93703f42344280a9b496a90a1f5912c88029c377fe32b03ddb2c25a911840b8b933af27c34dc57b3f08a73f37ffaec5419267b74d2997d8de320a5ddc20b0b9df01816ded20263506e2a789b9e4c1d5de0d70db2390c3cd6e7b0e5008700ac6fbeb5946a7ba35de114d8ee94f9af46b3727c8bdc34f3a4d862a166c4b45aecd9c2db260fb450184d2af3331c1ea24030e373e7b8b7ae2df3e65aa2d95faddaf6fe36f07ab7e698ea07c4029219abf4f6ebe1616069e14fd80a9550718369e3ec74b0da8f2423da45bcbf4daf79c01d4a0b26a441419155b10665b5e2cd9c17f51edd5b47ac1f08595806425acaf658e6f4407b2d5828831d109cb2820abae0a70eebbdac42c7abcde88a13f9fcc6e6b88d63a90c21839baf796106ba528460709a530629d1e9d02348adeb0a4afe1b28d76764f3306e1191245cc5097a1984579451977fd4dcbd23c351d75f6880fcd2ad6343006045849b864ee538c9031250c5a8d13b4c45b76a773e161f2c430b7104488aa4ce062a214283b1721fd85d7154041c98507f851e60a0ee4970173bf485e8810ed190986e84", + "267d057fdacd8266cb16fd75cd3321946d671c3763b5bc20971de7a02bbda3fef1af84084409b546996b0bcca9ab70eb0486ff6cf780ac6d2831a1689d299b5af6394fe8c8c8058ba058239663d1f68c8b7d4a6cad81a1d26c289862ef2e86963433f67f81e3f5c435af914f0b93d2ccae611f029ca5a3e607f965fb9393e285289909ac6da2e79ed1aee22418b8ee0545708551453a421229cad56465c8587a1b9ad18342fe804c2a3f0062c5fdce1728ca947bab643d7f13857a4d3f6b2a3c1f335bbbec5acbbfd120b9bffbc8f49ec927064173a01391bb06b89c68c7bbfa8314c3e5a323c616ca1bc9a824e1621f7d68be3d9062d1f788045c410659cff5b0e6664139d3775aca60e4b83238ca78b97a10d0c9a69b1c9ff4e82d092e752f83061e1ce9937b6a0f2eb6b7b12c48bf6c9496760ee2c66e3412356effc25cba290c5ea96192ddb9f1e9ff2c65698241a4600c4127c39842033a3706dadb5a1db1f65c880dedb5b2a325e794528936f2e0af7344895917461773127c7f1ebfec2513ddc556e2e6ce8d0b92ae090b97244487bf101b73c6f3d09d8c5d1a55af22236b73da062f32af4da307c5d50d38", + "73ef35841c96df289f825314bb6fee9f68b0a977d66a3b42cc0f606903ec883d9e6f1eb60ca0ff63e98aabb72eb432c86e746ee4d9e868d42f1d6ed67a1bf27579053a", + "16864f521e8ed14eded771c89753cbdb2117c470a431bfaacf4ccd797995d75fce23c284418e9dc774e1cb8cddf635248a2c028798d900312b01fb5ecd8bf12da38437fc03e1cf47447d70089c3ace12e091751acd106466405df19ede6c74c2c980b578cf756c9aa4b8f3535c9010dd9204d0a2a3264d2502200ba42c1d8925d0da9b9a71d4731376e9b56d2f3dff89575f78ffbcb5d6e7acb375d7f037503036a450c27d8d7b6c3013c622cd4d5a72dc118f18ff090e2c60902d863d62132f14a7cf12ffa2c12dc62c71d13cb99809ad51af807773305bd9b0540d107342d0e64ad5d762f614aa4514c9fb0e450ffdccef6c7bcd9ab7514445fdae6e0ddf0c2d0ef7f6b1e25cd876565a633c2dec5b95291f361f746586806286ebf41b0399065c363d97e21bea5a064b5398d8259294be1bfd06551c00331c58eee35dd3db4e7366f816fbb127f073f4bbdde74b08de4071b81234e556b0b0f4e042efd504958b784d2283dc2729857079e3eb28fb0e55b77be123412a96564846eb918828848f2cae4590b29c2b79610f47cbb9fb3a8adf677c01f7e9417e449a11d27ed5cc97310fd8988d7828b083bd9957d4" + }, + { /* i=1065 cDividendBits=2732 cDivisorBits=2370 */ + "0bf0ace8bcd49f995ea88b84718531f7cf03a431bc052a9e3a44f2d8f9ac15cf557772b4def716f29b5fd83727900e4f82642a8bcbc396f66cff06591aafb30ce6e31c6fd463c869b73f97df262714759a7f4e4f4fc49afca5b652e740f7f8523d20b110e366e7ab9cd86232e1e931001926be5135319433ce087b195af793cbb37ac139894dc2e1f1205b838e5cdd98940a020c5ee559626d06dd13576c166a66d818ffd256cceb9dc7c354f13dded84cf0ee03bb139d50f7510cef2a34cfcc7093e01ec016295ae71a9b19f987cd9a5c3d3d340aa02be8f80a956ef69c6ae3435dfd6fade637ee5f26ce2461561adffdca21c2d51527cb45bbad9dce1c2eadb76c9ca00455548f61d88559eb2f3100f10d12353a839792326997bf5dd137d39369c66777cf37c9b8829caefa0ede06e0af539bb492fbb64273f5a6f8a9453cb6e510a1d96f5ab8b632ff6ecfed7f63f53d860745cd", + "0103093c397ef35124201ed770352a682c87da915adfbe564d1afcd7af29011892925e9ea5d79104e8ce842ce7508ab1af3fc2402816342a4d11740d926215e60a18e304ba1ba0fc5aa6e17c4600fe6c086b9ac7dc2a4099f7154b5aca2783bf2feb218f33959ad718a53db8a24e3d9c1833860b790dc895000ac99b72bbad690b40566501756b22e175f5cc9102f7af66d739e594179c77c78dc17134b32af6987b8fc654b183970967d2c791f13afaf3b9507b78b66fd6b55ed2f38435e75e09b2e8491701353fa7d65d4fdc80499b0bb33838bfeeb209502f591b2b3d7f5c6a5c9c656768fe9ba9ada52c38abbfd79d1616cbefabd80f4d35cff9616e59bb6694a8a9851cb74995bc6548d4dea2f28bcb11074a11b95b6f10f570d899e6e7f3b26a14212a270e24", + "0bccd962481e41cc508494e4d1c8db21349938a537c93296c0aca0b6080c8cc38fa42a4a84d930703e580cf78cb7", + "b65e32bbbebae58611dbd74a88fcc592034d9e9b8c162afa9ff7ab761c4248a035b30d3ce9b21a4afae4d598f7cabbe49b6389c0896b03d4e75b27bfc2608b6b2046872131ff65ab3780deb3645c6cf49069b84c5b92efae14ac09e38093c95cb693f1c97780ed4cd98aec55974e1e886c8d41fff2fece0df8811f091c2ce78cd6d1be9b3b0ca76f21c9fcac9f743bb6d6517ca27079163159302929834b6ee780d934fa7e950eb80b00e81a3310d056e9da2b0815f3d18e3419b1e5a4ddbec6f07a28070f80c30c081f5d944917cf7a38992f3b386fb027c672aabfd4bb5ace5f427c7dfe799bcfc60a7c1b88505d7a29b82eb11afa8ae2ed25c1035d21eb2eb554b0ec77ea963ee572567dab6e894c37e63c4a076d14ed8198a6da937959ff15fa59c2b3a47a11" + }, + { /* i=1066 cDividendBits=3055 cDivisorBits=265 */ + "08b56e12d0ad4d76379acb7933ac343ad50014e615cd3ddbdebbe620a1392cf07056ebabadf3c1a015a7c7a4aa33735a984b551090ea47b0c5730bff99a51036005d5e3f74d0bfca4cca3d8c85a10d961bc06920e018223f1a185fe8e4cba212f7d032bae29ef3798f90627637e22ee0ad02da9b9fd77a895cf14569873157a4d6536e9355831dba9503de496ed1213a038b8dc1a14661fc95e18739c13e17de4d9a54f2004a5a166e323aa81117e6e2056551ff59d75e46f482b7dfa518109d702e577152ef21850b06a96309b6b62be88be9eb9f2322f604c43204853a0fed033bc64526a34d3c7882ca328c90683e3f0a2ade9ebfad0a5203fc25dcffa262cf12584f74fb3b9b8639c2388058565bdaaf6cd82663ecc97502d90ed9c5bae4637390e493fd08acb833ff1189890be84c2086cd4e696d4acc17bcfecda626c1123320aa5bbac383729b30497ed8267e6a7b904ed8ca71b9ba13df020070bb9d2f6f9bdec8c6ebf71870111a7fd8e41a13264b7eb14e382b83d235340033", + "018f530892eb14271ba8e83476d15f1ccf320aecde9c925df6e5264694821bda39a2", + "05953fd674b627fe975809dbc880dcb4764568ae04f6db1ce98ff566b638678b9b7c0824820e6a9017cdfab1a5e52e61f74c097e9b7e9e4a9f5b60fefe24fd709e793ccdf89477288bf81a891f2c8d7f8f5307dca1ed4df4c7c83c38f61ac822ccc59d4df3ae86a6121e7383a5028f3af61b159d21f389705bfe443a94210542c235396d4692bfc0bfc8b6f083e71bdaa3cdfeaba2d757890e7aa5146aa34663c89053b99ee8d1bf9844a39156cd639be6ae194ce788b8c19d2a99f1d7251c0d4f679ef0dbe80a97eb9e8f31d768892e757802d7d3a1d8431d522abdfaba799a49ca616ce8422b638a5bef684cf487f11d8fcec581f758893fe9642189642f002bb3388ca0281a53ab6d83cd6935af9d970865d5d2eb3f09b1f2578f986cbe0a29f226f23c75ba4a97fe4e2d4d09bd9eccc97fbf0be20d4bf6bfe605bd899d038891fd4a5ccd68f9c9e340a75387e492d7c641d3fb24c0e7760da89f50", + "dc1a100480425e201fde5c10fe972729ce05afbc916bd40c5998fc310deae65f93" + }, + { /* i=1067 cDividendBits=4072 cDivisorBits=574 */ + "ae76c84e1997f0b8beaf3ccc03c08abd40a3efaf6f6bd0c08d8ad9351295a595a155ab599d0486fbc31afe422193b4e4b38bb862d4d1ae4143c4272ba5543cf79834b0bb4b8846be63595842c910d4ae21c672bd7951ca946f8298c54a454b4af77c26c23a24a22e454b863ab7264569eff26770273dfaff28ded77c304bcdf174080c009a75ae018d32836ae7138c80d3b82f321d9363a385a657fb4e5ef8546f17a97f4a4e0e89c4f95876ed4239870f2759d9b4f11d7d190e977d8ff18e8fff48c40fcb588e51d39ceb0bd6c219ce4d31d8d63515d1fb673cb8627b6fd5948a2273db95ddfe750b7ac3c6eb61b0a3519e6493f7445bafb59106a7abb4d4c4df5713957f9f7e0d0e24a83163a5711ab61fd0949dbd504135d9d7cca0fa2a6e10229e0f5615d1df3e843c01a85a497cb513a743cd40635706765fc1102276ecb1de4562f2b32182749c2c13e399c36c5622c3eb9be6efdc6fe298e76cda6e8c235a972307e1f0bc86d1524dd83e3e72adbda38f13e1a90c255529ca30bc82a1c0ed83fa2cc1b0aa3bb859b6f4c209117eff83896f56be71e13f828b50b2fe7a53a9a82eef78eb931704795f4250800cbc51608182a0a029abfa0174e544211b2e03bd581ee8c1ba96c2c4091431be164cf1b9e4b56176d6e568b0ce554256e76ad408fb5dac7a1bed4943192c34681154314c821686413565d4059c81", + "3c575be46c262dd00c4775b3ed35e7c8205c599e4e6856cd05bd5c5b9cb674ffa2c5c9d6d16cf3f0473ecd059e00c88ea7337299c5b8af5cf46d180a6b19733c36c5a80e2b4542cd", + "02e42b87c8ba3e56da5dc0d5401481017bad0189266ce89adcd72d44dbdc0388add1335a80815a5bd9daf636e58bf4b41dc794ec5812e1cd70cf6a8cce9866b3ad1c5602f2758a38b1294488472fbd0f680f27db2ab1bedef31b03e5f25049517f42753a146a9e87e9e8b5c728d84ac6c7d8980119d75359698592c7faccd19317f1094d579fc472e46dd0ecbd6de18a6b0feefc45aea1dbf0f0c36c0efb1b2bae45c6020ddebb9201f6780d06f74d826f41a76f8cc76861299ef0fb3747e0530681f8dc0aff9edddd6516360ed927a2c0774f4b03b1b26bb8a4734979a73f4ae8217f04a22e044aa2fa7d7abdd2844ab77c6dd9b90599fd3a8523d34dab84b7baf6015aa0cb33ddf0156fbbf3424654fd798fbdb595549dbee3c2bdbccbc98f645ec109f48ee714c5354dd0bf3ca467f8a3108068ae15cd8098734cafd553a21966c8a29009f75ee936ac966d71ec497a2878edeb0c9a22c8a411e53b012c3b1a483c5cce5a4377ce2aada54a87a6e38f4605c3d3d6c0811b108a59d45cfa2a398edc6ef1ea321edf207363ccc595fc47e42c17c3428c54b27efb25d8b2151f34db8b66baac63a23f93ed8e359ceddf0668975a45c5", + "0e38a84ffc627e6676ed911ce6cb052486ba0983e604ec851f302fba97e570a1f6a447344f3cc2b2d6ff7f36d08ebaea2595fd83ff22ea32cdd8e673f2cb31817c130ecc75a5f3c0" + }, + { /* i=1068 cDividendBits=2879 cDivisorBits=178 */ + "6d3e6b6ee85108c247a8e40d750d6dcc5c4a4941c38bdbbd0cf7ef270bced15071129980940fed0a957f1e491918ebc5e19f7e05989ab2b3a9f8f9cc7f617ad4c7323d485d992a3c9021a0d192774aa80e7d9e268cb73c8e628cbab13aec3d53d88e3e69baec1ced1077edc3a7c99a718fa6fa5583618b1d7d82b25fb63c67c4fb4fd0103ca982cc2ca0b282635a78cf52a6b25ccc9442b3e89be3cb423f9a05bf095e53807f06e086a05f30d32dd85c092d372dd4596621d7a8768c45797d47b823d7256eddf27096660ee292a8351fd6f802a0fb32a33c28b3881e22c0df942d2d6b9714050d1c774f483fed86ac48e17dc36b32531785456f4c0451ffa48dbead8e69eb9ae1d5a46dd96abd79d10ce5f53d4a29b795cdf597c8a2facee4f89391c77f045af7f7dca07530a513fd239e6f06361c058d6d4fc447b7f6f0b941312c3de645b7fcd716a4155086b67039631e64454e5b4259e3a4e8df9a249116296d0f38dde0f354", + "be6f6ceb6c23372daeef04fa05a904e3decc3628569f", + "92daf28c8edb0b8d7fe5a2150ddc2c9a7bfa4dc1656b564e522ce0041cc3a07972ee2bbb3209a63c35de90f0cc611d209f5dc5a9f806ffaa92c0c149b7d3bc46044266b8c9cd2f249e738f71be192757e72b5b2e24e257b665d1e013ec58ca4c4a0c706eca3e5871cc03386bbdc386af7879f036440b166235fc51adc949247c115b4a88550021505f33f5694518b215fd822fed21858e98067eba6ac41aeb492c59006a7c741953694151b174bcee504bbc742a869b2a23f0c9ab95e68bd4e143cb82c100e4df79c79aa015b7d45605a37833de184e508bf9d46008959377e664740337b5794ff9e441f1af7a3e44697e2789970605f177ceb2c5e7ba2acc1cc0b62a01c5eb94d38e0df100bf98cd530d77cf7e37f6989f7c231dd638969186761f2d215c6f0655683964fc773d84dc0fd2f1fa7bd34f902bb592b98f9f57b6e7df0aa116b9c32a3575d2240faef5ff7267", + "170c43009c4c0fd98301ea747654926ebccaa9b24b5b" + }, + { /* i=1069 cDividendBits=3447 cDivisorBits=1197 */ + "1d6693da0d3fb4398d1d99937a2cc7e17f55a8769d495e3b09f621483e2f7f8898662ff683233d77294c3b7291164337e3139e528592033dd7867b722ef284cb22492cc7297bf92eca3abb1b50cc80adf80dd4b517a3c8b8508c2c8144b78b4807aa511c62d32fb8fd2e188375513097a080db20dffd762b6356ad26c0f80f5f84cec9cb106e0382739bfa1164af61c49825d84e57fce001f60a1f8d392527f87fdec9d159bad822980bac95cfda395b4ef365a5e9e9e932ceb34d94d0adad5f533d9bb0041a1f6bda8550ad7f63d30ed771e2ac1ad11a11294b6ec1a4d599764f8ced91d9d0fe4ec99018cc4687aa4eb104de778e933b04f78c22932efeccd6be5a3216d61c926c3203496b77e9c0840dc607f8fa7d14970263109498bcdc6e43d637f1ff57f763df163b2e0a8e597e720999ab10ff4dc5a8a63b4f2bac1781590b3cc7b5f48a6c4b08c74119b3549574a535bd67159c3ce554f9d3ca56682acb4fa559f46ced4e8d51fb374dc64ab01e2459648c1eb5e14a81719ed846f2b0e25bc1b33aed22c7b53e8154ebdb7d24da4478317612703eecfd36c68b5d0a29fbb5ee8162a286cfe0cc8f1d90ada1", + "16bc15b224e89cdc9398ea35944bfc9b85fd740c79496a1968b7ba89a51e615995084f637cddab3559b73ed27b737bf9047de635bef9f776d3bca54a10bd89555c0d43830db570761e24a9ae7ea54bd5b123887bf6074c992a540f19f3d4ebe307bdef7e67dfdb246bceb458b9742d2216a86a2433deeeedf575ecc235a6ce513271676c206ba8cfe755661947ef16b76343b32e79d4", + "014b0fa66acc48155511c1be72de3bf5963c409935fe2252c36db559c78fe3fff011a6b3583232057eb685ac375c5e12df00a5cac220323c172c3cde7b05c25df796ac6f4a9ef21e10edd468783e1b830ace403bfe20595cefc5a3a9f1e27d5a33009a021e7c5ffa47f1fe0b08c2de6d6309604bd4a458f72870a9409a0e950638558805d9e159193e76301cc19f856f3f7f1054890a0e4333744a6960f76a14e2eefe2fe90e162b81ffa2af2f82520e1f69e6da04dc34c9e7eb590f5b3ea8f1ac645e79af5a2f00297bd2e7ce88a346549cbcf59551e3cb502270e7099215128ff131fb0e8d710a577c40eff29b43905e9c58ea45460a2f93d91cb215904d97c88719e16ec178c784aac5657955c2cc95a3053e03751768db7a", + "0d25a094eb811383fb76c48e16c7ebcb3d293d959aed4479de0723bf76aa8863416e78d237082182e58378a9f674d3d3ad929be68312aa6e2df62b40f24e8448f5c8d8442c555ae1443ef43ed48c1d91df605717ecfe319e2d58288e3e3e1ad9017e197bc2844e38554b9bad18474481ca662e055df197867f64396e6033259ada131f62f177e276a21fbf51b1129cf3724b6d124299" + }, + { /* i=1070 cDividendBits=2116 cDivisorBits=622 */ + "0a6ab509184a5a389a9a3a84f26e0da0cb372d3ed984b3df4127e9fec7c60fcb707e3f10e67b13033d5371fbc17a5089b55b07aca75bb25f3db57e57aa6c3ca278f4cd56682bb147c3fb2b9f0109484a695711da334c1170d49a2b4926a72614c5862033b93c60a9648e76b1eefd988c7e22460e99e01a91d4b2df887e8e62865e0a7d78c36c00ca9f372a354e30b8212f1042c0146c56a6799f0224119fb8036ff4fac44e7f9b769cafbfb73919c092f8d6526fa082a51b15ee5864d9875c3ff051c4f79039ca67ecfa8a027cf2f8fdd6d8ee98dac38d93fff2bbf21488fc7917af5dd4479af45cc99cedb319e74005153d60fcadb0c7fa591227520204cc92913997ab5b47a530e0", + "0d03ac5236bd9d29315a1792eaa8f4d436b9b4b5c98bf04995fe4cbcd945670d433918484a87d8da218930c4757f28bb6b723a263624184e8a75c3ff25878acd8d9d3615df8ed59c563946c59fd7", + "cce7b8f4dae02bc69efb66c215877a97c0b7334ce435f55475931bbb185befbdc28e24010af4b82712df92402c941928569320d0646f8bf5990853ba34f6f85a0f54734d77f4da359d53fc8ac060bb94742eaee43f6cd984f7e4a16ed468864bc77cb0d1b6a7fc8a279ede2184750ce4917309359ae121613010dbe36c6d740206ca4574636612157d4ae234e50989dea251be4fd034640e023176f6f9b499ee1b4775e1e860f4fa112bd8bc29ca66b4ac2af44278194af8ed8649", + "02298e8f0e29219f977fbca9ab0196179447977581d01dd3da745f9e36af8b813051076ab65254e7101b2a172d62930c795435ac472d11bfc5907d8477fd0798f65a2ba196870ec6ef0765951291" + }, + { /* i=1071 cDividendBits=2957 cDivisorBits=2124 */ + "1e39df00f5e74c5a3bc438c98149c3d647d8ab46e8ae1b203294c9334153b6ff6877df68e31eb63a8e2469ffffc82061d8066a70d12f5d1048e56345638baf7fd5a96b54e87cec513b1aef497c8784b22589a67c504609757b255aa2b990206a16114f53147e3e77e5c5f79914b5ee7ef05f4894efe10ddd6495965e0a2f02c343496b6c06dbfb0f9a2e715e5571888b2a6a1f794f739b1feb454296a4b30fa64dae4f77cbe6675777c1beec849d4ea60e28eb660ff8d5a0bc799cd4cfc3ce91739ff4dbbfe57a4dabe2f9f1347e638fc317c49bb17193662eb839955296eef1306016e5e9cb4d40282a4385694b264a93688c5aaf8c3cab4937c57a76b2fd6a1483f8907bce6427f3adb60a35eacaa246e537589ca50cbfe6fa0e444ccd86f33c355af9d24ee2f82a191d922ffb900141a2364175ee1da9644c84e54592659603c470a0bd1d9a2591cd6431055e127a2c6fa234c187a867d779461a9faeda36871c0411170c49b4f194e75d2f43e458ed23", + "0ebcce451d04d8f0e4c9745354458a3d799674a124443162bed6c1812a2460aa6f44f5df820bae2c777dcfe41daee81f1d8a7f35e3f34b7062982fc95f510a46eaf8cfbf82e5bcd6ed6567fe6af8293f79c46cc98164dd7ed1a57e4985dcc4a419b6287523cd793ff357e3ed9cd97389132a2d6af531d24604195f1973ff0a5413d27231e33b619305502707db0b762f28d029d203338b8c781e11c6a20bfe19095c402ff2ad65fc24374e6d1d7f6e9f8a91a35c197b89cc3194ab074697b45c60ad9bee093ae3463e72b684fd409b66ca9b7587ec0eca385bb58fb05b7117310450d7f6cfa64d013ddbc1d0a23b2fa4390a54d88e05984760f5aa56f5518471c26178b2fdee14fd4d45", + "020d0bab8f372584e948a423882ae07f61b0cd0a188b2ec4813702ad661fa11518c1de25eb1ebc0b4911f7026d23391dfe472e740b1348e3ee673b797f44dc2cce026358ea83de6106e8b16ea096d2a4fbb400e07ae400c22426da62f5119739fcec3039a89271f2e8", + "0710eb0eb38b858b0949546ed41b70b9680f323a22f926444c854fa7f8f3a4012fd118a89412edc61be5a8309c4d0aea3d6146caa11f1d58f88b52d67e6f52688364dc4ad037c97284bc9fbeed23e095a9d234f32bbb8edc26ac9f7642f8b2c6ad76048198631ad70fea5c60970559bda5273501c94ae59d37beda3412179319d6fb0dac812441ab8b584243ecee34f67b70780b21b95fee70cda04210742cef8a81ae370751188fe376d6a970b44e74f0e6c0c551f6347c5e3d0e9c97dcb934ef7683328445a69970664647a5ff48974ceff4ae13de0f38ed4b23ac6e5c1b87f0d02c7668018a5d3df1017bf94606c2900e0bd556d25fe6e29fc40bedcbf4c2c2c22dad3380f64aac9b" + }, + { /* i=1072 cDividendBits=2862 cDivisorBits=1986 */ + "2518061ea788c7cfae81c552e6d106bed202011fb105c027ce8bc28076a234173a11de7bc92407bb0d099e97a058c81e1141a7766b8509afc1c46c71a592836d5fb2e7addbc5e3320c92eee09237a3d02c4d761b30309f266485bb6192b3157be160417a7d51d164ad13e2b22945c3e5c129b6d3dc63643838c52ebdc048123242ab30f1690f6ac726a19808603d8c9938edd4f1023787c25936c41fc886489847cde43a02b86cda5ff226bb689d8196d5ce36b0ce04442c0406a6683db32603a35fecaa5180d713f5efe8fb5a381d062bd0fcd5bc8b789ab9fd8c7e7009ce7a04374fcc87155e9b436f0efe4a8a40d896bf215b8d6ab408242ecca3d9608b7d7d923060b73bc7a34df21d751b404d500ad488f6fe822ba26159cbf9caadbf2f5763b982383f10909071b08d8db61a9adecc165506d550c4898350e2626f799b6aceb1366041837d2c17c0280b1a5aacabb6b69af23056d1e3d60309395fd06e66d1bb44f6e1", + "026b0ae0721213a4fcb90bc840a5d1ad94f23dbe0253d8faf20d7368b42e2d916e5f0f1ca9283b7b75eb32ecec64c3c70d9a6b158427b465de31347501a1a07f3f79006780f7a6df330a9bb56b3c3e33338f661593c70ae5bcd0b857b902091a03cd3e664b1360091386e1829da575f6d513ccf8aadc6d33b7c306b740084ed9077c8fb6b0c32c9e99068eb168e66ccda268646a2a39f1140d7b9291506484d6b2abf53983a1e20b5039740288281342baebc5985f8dbc05926edf19c875b6eb8513d24293b17eec23bf811293639ff55c4af8ce11c6088d8a0d706759e8257e5c4e42b3d52641473b19f7a94345cfa3866833c58845f7d6f5", + "0f5700f08e0e7d11c810592ceedd2b54f87f5370ac74215e38842b97f79ff668e4326e9b6c397485f4db30bafe2d70416b85b5d576c6ed875a61f3c6a649b542055df26f8d7f64ee9d2b2b089ca818b5223bce8a351633b9f7ce1b11ce423a881ad56dd99f2c9f16ead2dcc5bc8a", + "0200171ef31ee3fbf66fef11c580b4ca5c6cf856e1a55636c1e52a90b1ea43186f3af482c7c938f987e6e6bf4022953ef42a53a8bf427468e98247989cd4048527b5856c7cdcb55b509e33acbe5ebc45bd0937de590a7a026af6e43ce3a819d382a3ddcb59e22886ddb10c3122528bbe090e3ccbf4650d34981040d734857960c6da52095771e0e82cd5c9b28d9697d15ff0c032a6c8e2e838021b260b61c699515e01c24ab421eb36a5222ab22444a3eab486336ba662d215a353e9b8a218af1b0019818041a3b6122bb8fdc8ab221147f65dde65eed349f8aeee15fbc1b1f1b43f732bb46137fcfb3017d104a7100824ed9ebc8d0b462acf" + }, + { /* i=1073 cDividendBits=1340 cDivisorBits=5 */ + "04bb1f652c453b58e7e19ffd45f71818f09dcba4095bdb68161b17e93eee14891024e1c4121dea2a093a9b0570957aa267819d7906408cdf539c665d13e98d53cc75b8c68de5e9052852cebc22be99919244b7b7e36946f52a207a9511007c7e56f80e15efa07e7425b22e2797403afc8b21704382d80aab4af93ffec32ef42489c487af5c709a550942487269f326fe2045a07ed423663a15206b7c9ffa75c7c7132c9489492e42", + "11", + "473e15029aa92358ef27875e77f25bd1eb2a18b541a37e97e379e08b3b2e626a5c85c03d4d0dc63cc7364b9d35f827abbc548ea603cc0d23093332a6d180c8b1ac92660858d178c622fd1a20295453db6d7437fe517ca5027a61904c4b529e051da679c2cd349d6ba111c617f4b82cf92015a99e48f1919aff9a5a47b777c5e9fc8073ba24bdc8c44f3170245998e1c5a9be259402151279b69ce936964329de88a844f9044e03", + "0f" + }, + { /* i=1074 cDividendBits=690 cDivisorBits=223 */ + "010dbf1a50d75d8a67ed1584ff5a91d072dfe4baffad9053100105ba557d7d563993e7871053014d90068590299e2ff23f8f570c032fd4abe09b24202b26b06a5f93e16602007e2c497416b3cfdcaad16aeab9d0fac461", + "0cae7f12ba1767db8e602bd15d239994ca8a9218a67df28915cf4323", + "1545499cdd3a000783c59e20653399a9b71e2f58c88beb91dfbe23ab994cefd712fad766a662dc55bf69b94a24babef0a754b9b8ebb9474062d08e", + "4706f37cb6cfc324a89466bddb74fbefd44048676fed21de1116f7" + }, + { /* i=1075 cDividendBits=1525 cDivisorBits=336 */ + "031e55e359004d11c818765d8386906f55b1c8137eeff79907221b50d1aab9fe14f0cee5f69360b51caae3db2765a5a82f52a4f914a0f8b70ee37712c591817b2d5146b314bff6f3c62ffe85c387ec9bc821cbbae05da3d09f2bb3e0b486283519a854ea000645244049e10f8be908d48e55ca8684b746efebbf11d9dead8a6185b63f2e9ac4fb40c25fb8087a2ce93a3eef03f8dac75a2805f16bb3740b318c3f12898f0ab4b6cee23ef6716be56bc561b9437f46b9f738a7e58259087fa6", + "23e526f3bb0ad8fcf632018b58a48597d7e7cf6bca8065be4eb78c6d087d99966ab139b92363ccd20277", + "163da3974da1faaedb724b71134804c0524a6b93776e1840ff47741f3382f110b8a1e63da61b360fd77f6155e78eb93150e5dfea76680fb455e79355561931fdbfc47487a68cb86bb3af56a8716774be3122e34001aaac9746cb61c8e68a425f2dab1296bc511789323347b136a61b3c0b71d14a667b4b36d3bfa7acf9ae8a1774814fa08afbfce1bb49836e19883b3ba2be3d9994", + "17bbc99c1080fde7c080ee13372b699ff9a7316fed6d7f57fab88798120f0ae46befe5c9223983caf3da" + }, + { /* i=1076 cDividendBits=3725 cDivisorBits=808 */ + "15839178c6fc6af8ca2098bb5ea6267ebf2543f63ec8639e035df7701411d02c972675433f280c5a47085b0f663cb62aa1b418392de1c0fd42afbecdfa2b81417b351cd0074e2d8a52d9b14c8fb4dd08539b7cb520d7bf60eadbf1b48c8e7c9d6f181c4f71134b31f310d0471bb88b7719216670c5a6933e822659ab63876de65f336a674235ec5c111173082d6906d85a9141b16fa1f7257cb2764799483b5a5ec98e5a6d699cd05e4a2f8a89951019ad58e50c7278b09a63f8a02387c6860b215e09585eb69418d421092f9566f36e93efd2ac9d87722dbe6872b48b92e3a1cb38dc74770ced30c5db19e17bae346ecaefea130e4cd8a0d81db052c6b47fe88aa021341867d18bfe3f65116e79390862ed944cf955e9cd41d8cf917fad08f6ed3453faa406fe092709f8bb0f82e46df689159063ba1110b911c4f1adb29f7bf22c48a66b9397a4c6a7f91b3f1817c7ab995bbe648a46d59274b118c198d295d0c4a075bebc98659f05e50a2062342dcac143e6c8182d80a73577cf4cd1576b00baa6f4843ecc5048f9e4eb65b1f75b44397cca9f6811d4a04c7b0dff7b5b11536dce50923f32e4f32e3a49ac98aa5691cc46a6975ddf502ae7aa403f2ed1db85538aff60f4292bb9bae0eaf76c0d4ce731", + "2d9b2b17b69460f7a54e830cca443ca023918dfb563a2c75313c3c2a126f855c98900b672cbfc3802f3649cb4eee0d8257f95de3a096b4837e51d917071e02d54ddf77b97068d0ed8a9a53f761c76f6d2c48087538b238ab1afb109f2091a37c000fa54231", + "78c3872759acc0e75183d9ef2320f1016656f25f9fe91a561985d451e52f3e2782c623cdb57c3cf3752bb64e1e54b53716d82d0466d17126d240e8aad2c5f326af3ed93e0bdb99e2538deffc0f05820ed752d622cffd13d8f3adee1abe7d0f668faee2fbffb446ac9a3a93652370580bac7930321a39b1023c5bb77bb2f6c959ad18a24ea28660edabd3dfef194da5a4fab2b57de2549ec96430293b1e0c1fdfc4fc73a843ae5d7ba01f3f0fbee9595a2c936238b9424f2f170d7cfb03a78e4ae570d4f4d8219702a47b7f800b3106f3e70b2b4a93fbfdb908da6afa3e93f7495dd0162312244c31395c3b99c307f8b6c941f60d5f7f46c9462116dd775fbfe2300db3feb675291aa999a06496ab1cd5022f8b23a47e0526f3e36fbd7065775f72ea19b2f8737c0649bfabc06d6577d91c3b2fc0069dd46dc8d01dfa45de16b925dc86e49e6498014905aa2e53af94c14b27cd58d6fdea951b6b5cd80af64abcecbae728b3bfa33de727985b4a", + "174cef7c46c828b6597bf3bbc61f72104f9f8435a45db777e20b47da8149bf7a1dcf54093b70dbd2d1a1c296e0887524844bb9b2f319db4910f244725add0bd8613fbb2a3ec6cbc104b6c715cd7c5a78006c18c86abbfbc439c663aaeed5123b6c04e85a07" + }, + { /* i=1077 cDividendBits=1648 cDivisorBits=332 */ + "468db135b3653cbfac049d66c3365af54b69b76221b1b5e59a2ca48e497400356751943f3ffdc96fa0d60de1af58ca25f23ec7b7284f7e37040b6e5e30cc44e4dbfa4f66b7fc04f8b4cdc271bec2ed987eca30d8a8af387ac5bad76571f7d36e51113830b78d9d4e40f7758fdeb1f4056efddf0f8b15a797fc19928b384af0898da598731c9259769097b37590b1ef088624b638086d91d7e88f99ae75b42f5d1aca6deac038385ed77e223c27e5b0bf4bc4d13941c31c90728a02c61d89b38994242680b7540bc74b5f4dbac5ce", + "09cb91d4d2c9313bdc8c1f098e8f6871d310116bd47a78404f499bfdd75b4e34438a8ceee8f977c4b55c", + "0733ef21a0bbb02f33c80aec18a9e4d6a48b9de47590d8259481fa5e8db75a992323812da745ec44d2c08739a0f7e5c4f015748427f83951b64829881f3abfabbb64a12b9f1da4c4f5931c431db31d9ab451a1e36db1b300527269422182b917f6da5d98c135a7a83dd712c3edfe8f2b7cfef09b7acbdd2614e2c6bf184e9fe62aa38c7665b6419c86fb3e533f2608a3e9d661734128d1019bd166ffa72917407def4dc537", + "011917ed8c2be53aa6a75516bcfd988b2ecea23ecac192cdf5ab315e3cb998edd04241aa0b34c23c030a" + }, + { /* i=1078 cDividendBits=1452 cDivisorBits=1353 */ + "0cc3d3d43902010816ae181ae91d7b3151442738a8c209a58f299ea62151df76e58c24d42cee0d90bbd1b81c85866b57cf6651660f79ac26c44c5a59759149f4ff52d3a7b8cb7b98c52d30ed157cb601e88b7106c077316516d48d53a955ad77d1a5a7901882c71ae93ec66c32af04ee153f62591721e0f455cd33ffa638d5b619a7c99d4cf27db9104960a540729b854417043c6a7658648d5108b8891bd126ff69da91be564c666f5593ff1ad2dd222b7e4fa94ff6", + "01f6559e58067114fdac455b25dad4bae928fa46cb6326016d0b3df46e14171d49d1d0ef90a5b0541282c97ac12966cd4e13333b5ae98e2d638e77dd5ab71637cb03b907e945998ea1a14c1c5e3199d6f6e5c95dcf0ceb09d5a0e7c909ffa94bb22a1ea9814e7522127b33ec97d43f8a376d7701c82f36714e3d2f5d27e44391cf5b523273ffee6ccb32c233434c2dbae1f71ffb7038ff242ca39d605c689fb1510aaa1daff4de555c89", + "06815a308d0d6918f3b8d8837f", + "01e21f2f8441bd52e7541f8e4f47f227b985ca4bc632c7eb778fd3e129a1a191b1eb6287c77dac8c3ea4025b760fdb4dd8f073008ef95976f50ac2b6b484daeaf4bc73c5e9b98fb35bb75e545b9e527cc15b4e72afc22873b8154d75e98ebcb85f8494625ae2d39b6f8b80987dab31f1d27c5c883c80c39580d80a3fb4ef094c7fd20ec3998d92264c2b29d6435971fa9ab0bd15d2b3d170462d08dd7c43ae5c6984dc0ff2aac95e4cff" + }, + { /* i=1079 cDividendBits=2925 cDivisorBits=2878 */ + "125a504202dbff615f475c72fa17d3b8aed5ef5957626bf77ad4e5ace016f53cc3618299f7ee8ece86dc532ed6da3fd75d15316142251d64e9af171ec8819b8c383eb9487719c659ada8aa1b1b5b0303d4bc4db2a5275c985fc4e32893ff68d1cdf324a8414e96f2b70cd53a053ac1bca99933b18eba7876a67ecce620c13be5aedfec114bf7ec943ef44315cd7b7a5be6c7c2a9081a6fd957e247eb43cf16ab2a091c731d4daf7709481ef189b27eb345bed1875b032e8001e2248b415941aca5754dda77146163f22c011e56a3da71d1d606043f760e1d20d2a4fe88e2b1468f29ee06c570a6f8af06f98ecfe355afc6347c0aef4ebc4d355a4b18f8ec81ad6e4761552a2150a496487905256f64b588b83fb740653358074697c2c3445595cb0a9d7192828b0aff1df77427c3dd6e9fc51c3001226f32da1f7cf8293fac9e056233ab4f53063e90d280f7819abf18833e9c288a95dfd2c896381ed07b777b5f7190d3086fac032a1178ca8902", + "3ff1049d6b21b683d255b000e690d23413015ff7fd24d848e7e3c8179ec714002022c92a265492e29cc72d6e8ea3ad660cf307342314d7ad81cf8a8a60373d1d38527b3ce4b1b25f5a0282767a0bef5af6e19cb9bccc443fe69a630f8160c0fa4f1d0b0b3da28e64d73005d6ae207924fbb181b09d53ac5e9242caa5e0a4e8de481417fa87943592eebf3c9d1f83929e89453079d2b04d82912c4f3d0763e07012ef3af33e923e43749d058bd2bbcef189c48c5ea183b5741bae8a314a561bc1e576e48fc2a8e6f2d0d46c77ad1fac6637ec42850e22b90d1477b31e826123e03135383d976510897785fa2f62a805d705b4d77de78711868fda7b208ca25ca0f9e6879626d8c9f444140659884e016be5d68b73698686fbc7ec9f6aa8681b0167333f421c8c5636448fe70a2aa6c17fe49554d6294691ce6444e71bcc47e009c4347f2cfd8167c5a2baf22ba8dd0ab2be742e2d6cdb20bf816f571dc904f3e308e6a800166de06b", + "497a746ef2c4", + "3931267ea421499693eb5c7a23c0f01ad1b23ef5d1ff6afcfa053d5fdeb81457265740c1b84a5d9da9cfe05f098f0b3b14c85537307e559e31e082eefab161f87a5cc7902148a1ce6a9d175186216ed1578a5f2f0a7a3e93128c86e94cc34375ff70e063dac6735c94487062cfcc186a60c1c5b7955dc573cb221ca72d16f0180b8936ea723af4cb2156b9064534bc21391d7af30611df7959ab74e693435753f841e6724ce1541b0e27b39ede3472a32df76ab56f27acfb5f97c508f28f880a05f99399f25c2d7fca25982a1df8e63c6373b1bfab7665353e9883afa6b5bf66a01d793df721650145cdceb8e34534e9eac2caf6fce294a0dc8258b3a687cd856ef3041e2ef8bc0bd78fad32f021d30c8d3fbc30ca28e4bed0451c1e3b62018c5333a6bc1aaa2ddf94828d3434b592b1f8bc65cb92400d9e05bee6fcb07804756f5e4a8514fcbc70165f0adee32bf129719c34bc738da1abfa17ee3d4b114286910b91e7848b9116" + }, + { /* i=1080 cDividendBits=3841 cDivisorBits=212 */ + "012820ac283ee6bf2bfa4190ed9b83f92f5b19b4a29b7deb5ab57a03bd3235ce60ca17fcafee6a1ad56aa5606027ba0dd31fc67092bf088fb09dbef11c9d1c314877dd39b3626b5ffdfbfe4493d5482d05eda3a3adbe62982e8c5887b87a8c58e7cc95adc58de4527fab0b6bc08c8090db26cc9314acd17f04368da2d76b93159d572865c174706ff1bd64406c9d761fab142227be30072e51782c5d9df144fe5b9c0f59762c91281ccac9c32315f3c51a486b66436aea73138db7d5dc061434114b27c35a67c728c48ca1772fd6272bf3cd5e9ed6c53dc730b180545f7d6ab56a9b187ece4d245b0b84b24aafba5d2b94391e4b7e02c7e0d0603ea235a7d1346741a872404551424108f71261b776ce08585ce4de4e995c83055de7a92321edb05442f3220ff491b68935c8beab41e177a0cdb66c0b86fc1a079fa613d2e974eb23b79f690c8bdf8ff78d637c780e78b8538826bcd66281e7a823b60bdc6da975958ae2b99dffb7e0e7fc4b3ec9f83d9b80868d5edba57d4b10c7ee80f8cb8ca3e8acf41e22c5a3f9460454cd07a47e146974df807df3e4f08b788b58c0002cc478299e97a5eae9c8ef554c17267edc7c548f2d9b759f42b931d7a51da98ba1bcb071609a15f1133a3bcb81836f675183c97224b0b876d1d34fc6bd2a74486f86", + "0a23c659c6fc554f9ee1a218188703b27782c8179e49a1f56bd908", + "1d34636183771269b16c2c82386a23f988feac7f32b4acb7a6ad05e920fe893990a884535a3d8a5b6a557a375012d8fd96291671b28afbf4aadd6e8b3bd490834ea2e1dfa7d4445bd65fdd080a60e657be29549f5bdf7919eeed4d59d6bd9540884ec823d6bfc1b44d4a0818ad0694b60336c4b73a91b7300d6f923445c974a5ad118de5215854d5b6c7c15bc36f0e2bd10bfbd04876da894f8ac5e992a9cdfe393f202c233909f7c5aec580d9d1f0882d8a25c4714d8e130eb41ef8a7f7a447d57b15954f2cd87893b49b176875bbff4523ca731e025c2cb3658f8f561d75fe9449ae674ca014cd4e466b26747c315b0078730406ec438d2d082a67016c863cf1f2cf528eb60f8743de9efb384f619f63d96bcdf024d92cd51a7b4722017f0b0e0af86732b6e2ce11e9a31e12fc0893102d639a52ff2aeec60d8c0b1b0cf6e58a879f54251b5dfd1802e29d011a3f0bc0ee439b0360e258dc45d6a19f40cb59685d09d3fcca623acad59cb0d5ba1e3636db0fb8706720c71ba54435e6bdbbefa7358dcdfe553477cfc305045f2680f22f6238d62e456af013907e77eecb28468514561ad1ccd328c708947f4ee19f95be19bb9922ea3c00fe033784742931d404f8d2a95a3f", + "081b8ff558325e2ad92f11af82b6002e47b984b033d20c4e29368e" + }, + { /* i=1081 cDividendBits=636 cDivisorBits=590 */ + "0d7c87c9ed4a930133b591f8997eae0843186d325a58e7439be6821e24879076ada64b27a0dfa083054a0b2853126be774b1b04746c0da99318cf0ad68c1a23b5c7f47547c977dc21fd0a1975877cc02", + "2d2b1f179b734f61020c4a61eb4f5aeca0cb3ba8a0a490382a11183b0a1f7af61126c0b047dd80429a3714f81d645ec4ab1e17679e1ce2d308fcdcedcd14f6b8cfe0de8258a79c5cff09", + "4c6fd0eaa5a7", + "1463b48cedd71ce848fa63ce5a0e7e4cf86840eadfb07cdc40599f252280c58c2f65a8a2d3b542890420f71346ececc71dd7252d6a355daa7d8da2b7693e86e07461555b0758f932a023" + }, + { /* i=1082 cDividendBits=3877 cDivisorBits=1643 */ + "011c6e35ae4992a47831a1bc7bab0befe3f77fb8c10cfc7308d863db01c00cd5dc5646047ef8d349caaa9d3c01cc31ba9d5566f0182079d983ee596caccc6a7b13be260ab1680c1cea7dcb120a8ac9bdf17ece47ad6d5c9966ddd59dc77e536686784ab4650942fd1f3bd0c6150099cc3dc3796912bdb7430b52329cfc005df714f109c9424036dc9683d8791338a35c80e0dab74a3eed0bf6567db0005927cfb627a825ebc7ad7524fd1df3de6636785a65cd05b1212b7fa5f2324094130d86bad46315d5afdcbac6f7289280e64a26d56f9d72b7aa71287bac9ba86b96882b29d4edb966f5e24b050dda0c3023dbcb11d25d51255dc544dc5a6280f52fede1da2244564ddbcfcc2dd597cb5fb71d0674c7ad39b8863f9414c4ae1134e53c2351ddf1d0a439ac324a54112be221d99033ab467b4220e84c50648701839a3f3015eb81c504c25ba23d04e44fb6e05e90cc114ec04c9e7f1976d46198a73f2816b62ad8e36ed34dcddefcf81984424fdc36a9611558d1ca8f2442219c5f891eb9d912edbab1aaa7e57ab9958e19e540ad4a9cdeceaa93d8dc0fd4ccf998c29f7a5f22d88b9a374c79954fe80156645f28543b9d46be3f2047e75471e1f720e27a1e6395908b39d8d4ed066207c67b7570ca075ba29f1e54063d1403c969b90ea105c4157773", + "1d64809ae2eb41a0beabdf6ec6ab9255001dc16282d4fe5fef98189630dcd883a1b8310290581f27125793035815ffdf1af6adb496cbefbdf87e901dd43ca3064f02edbed2e78da0f53038a86257cd1605b015e4aa8854d3a050b49fc6c1ab784354bb67fafe5d10946cf72c63aa202eba23773b1d453aab1e8e5e2e5c15a1b5c27e1856e3b43491c63efb5bdc3cce5260e130a2fa162c52f3c5f077ca14039628f33a7d6808d0e0fd058c56d2492a0663f34d18e70ead35262711aa22c3f40f18c84354dfba68123610b9707f", + "09ad4c64132df63fa65a61ae147da8cb7e0e2344c2ce479f1d408d2fa425689f3220359df2bdfdf2bdd5489fe671fa6a92515ca9f383501c00835aef6502051be3589addfed5b02868d95a8ae316988c26b72b678fa7d49c7f4556f22a155014f40e3655fbc8b64a186b30af5581c618189e90199a332c79fb3cd6430f7f21c2f178a31154607e4c2bf9a36b72e6c1707ef1b7f979a2b1fe0d930d4539dd8ec225be75356823888814b0fefc8150b9b02bd3ae4de35764d0d4eff20c4aa56388ef6502fbe851e2c535a51e034e52b58a11cbb10b25d9486e2069b0b13d0aa908f6cbd799771eaa92fa92a78b20f015ddfee83cd319883f9e8bd35ca767365bcd7d42613a050bcb97f89267d2120eb584af6afe59e2f91433", + "091a6d7bf283d3b48d2b435cc216df1e49336ee49d5373a9174921964704d00cbb4a6b66cf21826105ccbc7d9e2f1a8cd4694b3ea0221f2ee25720ff6e8909409ed54a7e5b98ab61bd7ae4fde5f510f883817ae678e2e40363deadd028947d9a030687151b085db788e50d915bf981a7592f29723b55e20f46a553e6bbf1d9d54f16b479d46ed38ec4fa1da80bee07802753fb36a76c332faf48243b6ec1ffef605da260e42fd14ac9f027a16ebe64d536ea4d0e864589563d35e8ca9aed7717087aa0c06acfe0af1c68d32226" + }, + { /* i=1083 cDividendBits=3524 cDivisorBits=2534 */ + "091506f7392836c996855207d082b2cbcfc317ac2f31810a1d1bce5f3f2bf3ddc105c2bd8ca11625eb4acbb74aaa2908d7b547d671516b8a42b162c1bf1b2830b7da49d4f54eeeeba239cba9dc50b8fd78e9bf565ff01dc4f03ef457150edf392a9ea7109bf809c8a3c31c0660cf3b4b69cdc947d07801b4892b2826b4be59b71838c0da0b32c3c122e9576f9fd483faa98a61b69987559e1b22a52e6e0c602c9b9ee367795691d6fe9e6d6f845669fe5d41864872b60f698b2faaa99e6d30108abcd3458b3fd8e0f8a73088f3d08f10a390349df6d489c6347b6e17decc6ce1798808126f2cd580ac950fccf33bc3afcba464877694c4dd870c2fdb3012f81f555fa3ef9735659142ea687e762d0bbbcb046834872c7316b5d3511a3638011fc0643d5ee59513d65f0c67d974c6565d091d5dcea47a33242988da83e37ead0e0015bc476680b1393443e98849f0e3317f248520c3fd09aa0d4c759dadd27d7a1546d223556d76c5e795b7b7b44278158747d58b08426b4d5f5664233b5aa1042ad60701c67536ba3af831960404459f1fb8183ccbaf69207fd9b076a5cf7daa8a567ab496ccb001b4cc6580613f8a3723d9e5e9cf8f7f2310", + "0b93007ef27dbf44d020858d331be1a2a7422859ae136b7d9850a7eec54e9bb29eeaa001c2137216b813c081d02c196043327eb9ddd9cb3fd21a8cb587b93ce94a305b3d1d5c52c778a1d06bb1461827830f20f67fee4ac416300db753799a25771b391d5e4490beb3a8e84224ce0d2d9e0fbf11a006adf6b70ce532d726dde62d13fd214cad09e85ae9165eea0738213dc2e580b02c4b44bfd69ec287ad5611c3b7ee1e5a258da3e130fe33fe39aafd30679a03a3220a6e6602a91bd841a08f2cce240fd0017840c54cb89e9b134dc74da1e4d2237ed5377eb31528642fb93738bb33f95dacce68a460e94bbd870df40d5b9410bda1536b119810b9cfe77a3bcf59c53951f6d785316dd1258861245ab3d0ed4cde249418c7aaf69aa3134f8a9bbe7982dc155c391b3c02c60511c955930e211dcb2d9675ae3dd6c917", + "c8e134954ce01462168e5514e6eb7ed135aff4f65b3b30940e662035188e17ebb8b41afad528600654c7ec34d0667a58594ded8e69f273bf3d1e7b30bc92dc1cdf16983b675497fa9a71512adb2b06c5ca006981a86d3ae83fe3452b1b33595f8874e7298497afcb6d62f8f6742837955343a08102d397fd5607aac0", + "062ea7d0cdb385e18ac56497d543f285590282bda884a42e598bc8561c620dae83e9814af6f454ccc365165d3e03a2f817ec797509e6d88b3922a6154cda3b348f43dab2a9744b80e65234edcab9193e541f2977d1ea4c1f837e914bd236b21487cb45cc8e8b8192b3b71e3b477151bfc53bb60948673daf8baca11f6167f3b15d2a62d0a0fe8dbdc679730ec244767c4db7e7bc27d0046d4aa1046db66b1a2340ed67546d4ab16eefcc83d596a0feaef285a666b30e339acc3edc7783a4d15c60087938b0fc566bdf28170a81c38b74d707ba941c001b125d9334e8fdb9b94ad28fdc361b8b1b3276cb1950e6eaa8434a9ed3fb594f5920149cff57f1bf8b703b1641d914a6cea8d3e82b6d35ee88703f6bc8f2b81028deabf55ab2364133d3e205c1bd6c1a935a08dbdba4c218da1cecf1e8b9f84487cce8533e0bd0" + }, + { /* i=1084 cDividendBits=3753 cDivisorBits=3600 */ + "1453662330b07d65d5c49bf4c75b97d56eb40c2cf83f694603dbdd8e213e54322e45cefc551a599eee1ea69ef615c51db3c92e62665ee647808069cd82889ec9e5e48da66a56c7ff4a853d5e5f378d80938c22d6190654fed55ade3e56e43205a02e61b8b6195c6794584c397fc34809fcd247ecbbed67a3326ab40b577bf3d6fb74f1ac16d940f5ee2a21170d919c19a4d8bd597aa833ecd228ed49d849232edaac2206cdd4619b4215819f04c5f38b4803c436052c60ceaa2472e135773fa7d99727ab0c4214303f0cb2f9ce50673d86aa5f20527ff64f9c2dee528c91178f934eb86003708e6270ceee70d7a186a2af03055b1f831bd7eff3718da1b4a7dfd43202aae73adbd75561e357692e62edccfef2f9ea70f785d6670edd320b05b9a85ce7bd5fa8df0ed479eb56d87d890b1e83bd719183f0e6ac170523790d396b1a771b15cdee9f2b2814d1ac321be8da2493c986e8c4f4bf6d8d853d3d058310e9a6e6b4ad7d3ecdd196fc00968dec67523577f895872c5dedc356fc5ac85bd91b645e6da255b7b70a9e9c229c055d4e264e91973191c48324d11bbaaa26bdf959a5d6559a0efa74dd02fd4666ed131d0af0c8351416a08dd372faa8cf0bb23f38775744009be99fc1249008b2cd09d1e5ec535501", + "2361f572cd4ec99dd4aada313449c65249568fe58907f61bb59f30284bc7ff22c2b8be8deb5201b445e843be7d66135ffc163f4f2fdb6356b9b6fd941ae592a61c86671add4e41a930b05d77c38bcd0810add6a22a5331d75e14f5c90807848a853c6e8af2c95562371a147f8b7a9dbcaf12e3d7a33b1a2bdfdec80ba7119d40b743a7943339fc5dfc7bd6bf8ff90307be3f7813a4c6958c3e2dfcf0a69e6bea1655b335a773744fdac525340ff74349e061081297a5cbe32e2109bf07d58508225b5afd8fd2cbde9393df6359a7787dfd80c018366adaf8c30caf7f5da38649e13fb653eb844ccf8b08f343e99168824077b207bcee5976543d6eb93f05a08f824a5ebe8fd57b263c1dc75ef72e7b3e035e9a522125c8d90ea9a6e6c1362b3c04a335baae73c69f46adbca266aedd16836cca9d542cb26bc5f120e05e323fda799bd963f274456fa2e84490f10f3212684341340004987e4e107a99fdff7d0d904ca028b8aac0a72938fdf05cbb3b667e718543953c7343004b4f9ba291c46b4090f1bfb96d7f23052455e0a3aa1125208c18aea05df4e2f7ca8c11cf64f8fc233a6756a51294bb75d6f0c14c8ecf0d0581efe215452f2b3b7e0ae59a6f18472ed6", + "930f8cc5a27f19182076aa99ebb5790ef1b105", + "0f85352b94a10eb542c31221f0221ee77922661bf41457af78dad41f7f512f19d9a6539bc23d296e106a30dec6731c7c93dd65cb61dac0905c8492045f81b9fe0065b3d89c1154f6c7f82944b5cce9e5695e981d7aae01b323eb895fba3bfc9e69c686f3845e8bf3e0c6d6abbb12a9a87dd95ffc47fcc4551b678017a6cff7505a25f36c513347480659fb99dbc6126cd434e440164c9659997e828b91234d803daf3253b0895ac3fec2822ea8657b9c3ac58a0d7c862888563f35473ce1f8c6a844607fbbde762c4d2887eaa527405c534060dad341e24e93226bec530226d6399b3f88d1361e685ccb97c0335f2a3680281213fd6d685002c5aa44541a546f328622c24435b7e49571a1beca1400635861e3a5b65e7b236d1e4d1197d68063763f44c98dea6d539bc0128ca416110e826ef4bd51012f1a3741729df87deb91481755aea0b449390beddccb57b53b6385efc679487dc51eadd78a3bbf51e996c2aaca4d64c0bdf7f1fd075ce2f1e6891996c8a50ad43e385510d0893bfe001e6f98292b2b80f5c37eaa2aba8a0804d7531c5d0895702a4588f0880fc205b0661b5189b4b2ba02de1909973bcadffdc10a6734f0ef56ee84cbfcaea8cd38701774d3" + }, + { /* i=1085 cDividendBits=1454 cDivisorBits=1104 */ + "19bb88103704fba007f52303abd35bd36d028934b356632b8766ccbb44a7af5eae84b8bd5e3b9f4f4397e32f94a99af192f4e4d24e5789cd8ac5ad6c0491b638e4e372f6bff3e0d847186e60589edea1c72969e212df63165b7f98e54cba0874eaf789ce9131e8b3ca9998373bcf244bb230b34e9effdb7c4253c53f1fcb2af1d28399c44f86cf06f0ef2663a2d6982009e44d11935d81e84a1cb21b354f7e54ab7fc0f3ec3511ce65d0f46aa7868bc0942c175574c4", + "87a6eb9a59bd7f233ade25cfbf2e746d74c7e8cf3739ec10da0ee43e175e0b2274e51a1b859e90197daf9bbcaf44ecf06fbf68dec85bce1ae47edd2a9f7a6f7001263b22abf60ef3d10ae899659b1e2a1ef0b50a4f1ed5e10be149b7d9d9db6e108f681b49fbea5ff0b9e0b43b25b36bc87592dd27f5bbc7246b377ae4ff26296dcb058359421d65c67e", + "308fde0581163120be4e4aa627da024ec2752c0fb5ed9c6cdd4756fc0ea8742449b10c1f12f82c5994521565", + "4c36145918499b6771030672967ff42ef40217caa23fe571fc5de4cdbe5053c90250ce616eb8dbbcc1e3bbbb0ef1d33708ec9c331c1ad03dc40ec00667c8303ab677c55d4738cc7b76d108d7ac3f27843c2a99eef7c80896d66fcd218f565a799659e4a5e6812bb37124bac170afeb04f798b4b642e0b0356d146c480b27d9fb0273ebe00584b889cf0e" + }, + { /* i=1086 cDividendBits=1492 cDivisorBits=1298 */ + "0d00fcfc3765501cf9184c908c46023fe8419424edec43417d6fdab7b7b43a24f2c574b3a27c0d4e8f0155844b0b9b097c0c7cab9ba71d449d80c610d25ed04c1416ec1b28b451e08b8b1f61410aa8d0fc291be3debd34b32f649403eb01ad4cf30e5ef29fc0f44617b9f4993bed4825356669854a416b90c3506ea7034846ebb234f2eee98a9446ae0090018601f95a6ebb6c7dc43fc31fd245235b2ad2c032ea80a1688d1561032a0b2259a79976c1c97d0d500dddcf8c593a05", + "ab07ec88497c6f90e647ba34433da21aedbe2058a34550a11471c27533d7e44e48ec14750ecd57ec6607aed41a901d90b6bc9427ff277e2706daa2fea2efa9144f93776a833479b2c0356207486df3a949c2faba3929cad0ca10810b529ba46f04d9ce581f1fbb958a1a558060e61d0f9cdfcea72f70cab754099fb072d32b7cb00b4e9713b5c65a094a21af7f0a9844597087f7c3114415fad823a326acf178c27e", + "1376d8b432db0ff8062663192a8f90b97d428a0d9b1abcf1c4", + "54393da77843692f7cb02001d85d51fc95d7dc98ff24ed110cb54efd9de9a824d59cd5dcc4d929c5113f43f69ae89fa22cbee4f302b407343d32ff102af9cc69318fc1ac0061060ecdfecf374f26520a0215ed855b4aed8e634bd7a7c6906c34c62bb6fca1685257b42d20bff1b352a62b6cc2bb99d8c41480683b932421b35e05be8ee844dfdb0acee39363ffd144053da3b9ac46bf83d8b28ace49b15a5c43b38d" + }, + { /* i=1087 cDividendBits=3474 cDivisorBits=2073 */ + "013a9d7796d394c82b842830324e5f43a4d99816b334e3858b1d5becc09847799f41887c753db587833554fd9eeb1b9d56b609aaa22493d15972b0cdd0c4e5b40f2c29d62858249816df6af99757b4f35ad85b05a1eb56c4eabed8ec36399a067659f24c5fcf27b70ea5008600e7c6e918d2f4651c8a92c0fa2ae36d15a080cd9ebc07f16f1196dbfb0517cfcbbf8711b11f9ef0420371df0968a5ef40ad6e7b486885196f9c61d3d3e4bc68fdc218dbd9ae1913b50a6faa84b152bb1300c21d18f91b9a33364c779b48066f5a2ef70421095695c47627b3078920637c9c1e5cb92cc727bfb489390f010fddaa778291e0789a590bb3b16b03ace66715a9af44bf4260ad552169a706ad4d21fcdf9132977fd060e1defcb0bcddcbe291a4bcad0edde1e471aa51a36345d708119d2cf29f4d0a5dc5af82eb1a72a6943e8f83fccb06ea5636770486e4074d6c6d93c39680069de8d6f257e1c1ce5ac19e0691dc5dcd37dee483da6ddf4aa9a23be66456822124087a9ef9419c0ec4114a85e0af930caa74beafcf3c52a8dc8ec8ab6eb6a01c9a2ad8af2e87bc0bbf603777bf16ecf29af68215dcefb552ce6a811863689ecafe", + "01b360b69f3c34204350baf78ca6149c4190bafac36d83969261864005c45b1d165b5dc3cf6b89778cd96b4dced1999bd5423768d26f71e5d7aa35caf7d2aec16218fe6d31583d5b5440259ed9eac1b8270c89ac6cf636b252ba74462f48daa9c11c3052b751372fcca67afa5969989de572e2ad76a41dbe2aa8a7d15a22cc1ec441ae9542aa751fd5b8570742b86de5f8643059c755c3ae45b58cabcaf9981cf560e7e50f8fb5e2b09947d1d6bb7d0ab2aba0264d2430308a2b1ba977e48d9e932c2c48e1fa48ecc88cb99ddb52577ae06a472d87f88001106cb5e8bcea9acd0b28bcb438b19f3641cb19b873f06eef4069f1629914c628ed3601dd4b44220fc0809c26", + "b8fdfcb0ce32f9d4a9c7ddeef953ee20fce15f7c79354b5e96bcb358703b421b8253d43efca294f28d32253b09e1d4602d4da65d216b083149529b838648f840e7e3b1cb3418e4eff02a6c64a57042f28370f13ba827aaf1907b32a3468c6dda99b7ac00a9a818a7a7e8a062f5e74d5e4bf0d9908cf9be3f3f52d4d94cbffccc7e9ec2f16d90d1a3ce708153f184c8522649d4ed61781c2b99158341a107935d06d439c1cfbacb3e16583e1f6acdb5", + "af657ad9917207230f9f6b3801d4767999cd31aa7044484ea2f3500c136ab6e28507cf9a0f2195b4a63063f95ad1bbae7fb01bc5c940c52b04203b8470e4186b650fb57c956d48a94f309ab04e5093bd7b2bbcd40806c4e513585c0318567bb039d327ad5bb1655257d678edf504c468d2d74bd03f84860cefd3750916b34b91866c544b1a40ebfb7e153d8074c6f5ec1b13586e0ca5943637c5e17ab7d4590f0af1ab35aebf3906f59a496e062501381c935bfb75bfa2e393963a411e56102fd8ad592b964d9c5b0e5db5f2855c8e6a405e97a8c0c2417d1364fdb2fdd097cd770c6fc8691e80f8cd060782b216e55fafd8bee205a64802f098bf2d223cbc0ee9f620" + }, + { /* i=1088 cDividendBits=2574 cDivisorBits=921 */ + "0f2e32d5004a98147b0c0e07a097fdc21a4aa5953c0c0e190e04cf7f7b46dc2cda5fd5840aa5e5ff113ea0809f234c065ddfe8aeb564788aac55dd5fed04773734738d791341286d906a446f46b5a603a04d55b47606c363137c7a36c07a9d6f6c6ce844246b0cf4232c7b3a2871fa440b9cdafc73f45cc292c0df55b091f1ed8c0b4e4d780fdd3d4adf5646b75b7e1dfd8d4b5bf9628fadf31b8bc3f44c924be4a3482a36c469f896354cdb6230670019010ed8225b539939515b35661159b3e2c75ddf529db678b22b6e15a16b754f6ca8bce6d263b6b083997bdc370d9307136ccf6de5c408dc2f8709341d4e479817a7904c19b349def0d63c4940658116be98068858fb5892121e48e40d83123ab7bcd55ff4aef2dad966a0bf1eec4056c69d8478a6a452375b0dddf7630fa1eabcbd478ab62b313d24945bb15b470fc72c95", + "01fab9ae4fa72dcc597681e3f0244da6d09cdf44758fa98ad8c9acfb8156afa71f42e9009915870edbd133cacb2541e2626bba710827164af7be27aab60cf7e86b69acef8670b095732dc3a4d3abb0dd2714c8544b01a886a90c33fc55f6295cbd64449c60686727829f6ad6e0ac2ca54026a191", + "07ab536096bcc93d65129354b49d92662bcd7d2451fd22cb603c9f45e821ccd07292a81c6fd6488954c950f7f023c7cd0b5dca41bea40f5e60f7fcf014b0bd8ccf654883f54dd5bfdafdf1bb21f3df855b7346c764351e6f931c1c214676f8582cc00ef0b37e2f86ae864c807b99bf02a8c216a15c30491d728319f098efff5b4803b295d5c5d96ed2eb88bf948450a1b4a30e3851adbdf8020a2e4b581498c28fd6a14dcb409b0499f5055235e966c4836843c68fe7e2b9185fae4ff428315de5fc2ed525cd06b8cf1380a366ff8e", + "cc9b986201aca345258bb8efe3b409308ecb5f78728d1971385196066b1c0068cf0328a14a9a7abd8a6f83f9350346241f99fd7aeaa43d9528f087ec204335435a33335d42b891e05b1d84ccbf6c0f383f991c338b6805093e38b87195fc12367052b7bb5c3edd2259926b6c7a48f34ca41f27" + }, + { /* i=1089 cDividendBits=4021 cDivisorBits=756 */ + "0f5db5c14638bd9d1c29ed8fc60602b61e1889db9900baf3415278712919fcaed1c335d202924c19bc923e8525d297e1de4b652502ab2129e5b159405bcf6a22241fb67119cf318a41ee0758044c5e30c55b78d5cdb1ade508440507750985884f2bec1d1350587298ab0c48de161ba6ac0c755e70b8db899f74e0a86524e1c7eebf549130ae2bf935120cc96d96d3aed2d4468cdbce0d7339b65175d32744828b500986a6f925e0af73eeb9467c82e5f40fd12465cced4b130ca67d7c3c50514b494515b4f3307e9bd68d564199cce124e33cf93b9a989f4b6d07b1a6f252244299fef76ffb794afff0aebf6dec9d2501ec3edffb04cc5173194dcd369c52d141e2899d06cced4263e36034bb1b298de13fa409efe4b145f17e8e322aa25734759bc8752b2dc0c2147eb94cf7f7c4b74a2e7e2bdfce7e6037704a58340def6575654d71692ea34b9d4ea423188d1ead6026d3b8563200e455cfc7bef581f6ac0f79bf30fcf683af18a2c3c5a8d1d8cacc5027019b6644f64bbbfd9b5c37e0c4d64f277e5ab46a8a323994d0ea8922ec9ba4b0d716cdc2f3c2f9d30a40380742059544e3edab8647a144711967ef71a15d90633ba67cf86fffa4ce35345cd90039e2ef4f6621e9b247853fe78d378537e7a1fc0966bcf8526464a70624c04fa9c50214f30f276201f2ed91360403ba6eef8441b8a463c1", + "0f8a83d18f3177d117375b926ce2addcc65c41277eadf6f1c3440e5d37be9230ad0d61f8cbe782198a47f35efb8d2ce983ff2d077f8adfc49051be9e5e0764a39e89a9d352ee31b7a428eb813d35f06cd7a717c722d495c1d01c67df95d25c", + "fd1df3a0b9a87c381c8420ab8ff46e6b499c66fcc8038a7383b14d2f676e0b740d8d9894b108aa2ab9d60c6cc7ff50ca303eb1c5bcded9dac7877750d3351bd96474d3662a7dbb09efe2a9946f2c1c78d2528bb7f4eab9d94444a8baaa55864b18b728732d5ade2925c73c9310c38771cc36adc83dbbf916f219672347b734e4528be63e7d32b61efec9f9f9d18959025a7d0f8471f0d60eb760455574e3c8dbac89513a96fdfee21b9c7ee6adf37e429af63c5ad76dc56d9cf4968abf43c291e333807334342ee397b1da69135bf7a700ecf2ae9828db60f28422ac902ad9d74454466c6a95cf4f0f93b5126a259e76e65f8b766d05a2519786484b05b1a72c24225fec782d500c21625c81fc6467030aa880f9e58fb46c17260f5bbf59cc637d06c061869276cd7435de13680e257f6bc9f568b398b1898e2e15f0a385b935df3f59593d2481cd7a45da71299d5ebb56a660b1d6bd24922f12f73d7ba7e489fb0a3f267aca1cfe80084a977ea61fec41e430cc99981272f5a650fc3a3069b18a019308c9644c2f25bf742227cb923915766f5802dc84ab", + "04a5bb7a4a09dabad6e89f916ac27e2c6247d84d0110a0fa7c7f2aea1b12f3d5aaeeac19b4e49c1caa21c5878692ec654ad9c070180f08c331c1f2468d14032388f93fa8e6545c83a3df312a86299b7ad9ebedd991273e1d257790a009704d" + }, + { /* i=1090 cDividendBits=3100 cDivisorBits=657 */ + "07d6ed0b8ab74b318338ac402c430f2efbf316e8178408b8e4471973ca0c4a0f03cb62db9b0e5665a1502e183944c403ae9378c5b07989bac8c64a3c4de330bdbbaa37c6ffa8d17446fe3f7613319b8d13c8f8325a5c42c1bd7e232bc8aa9abf696bf150fefac3d11d6940e70ce8cfe10b8364568f275f1bc3c2e07641adc9d65fda555edebfcbe578c654545c7549a9eca26fa76a6a19eefc88edff2764645ae32800d37b0808a091acd34cd02a590b0ed29db8acf9395b50eb1f266004f129b9193232bde3c624a9459e86ea3be2e86b5d9a7be27b65d79c49fed8141d8100056e4f4dc7dfaf90931bf191d3e5bf745894b08cc2f68a919523b556590c5639f610aa57ab6570dae6ed41569f8e81a0212d4ecdb38637055ef10fb948a8758776c9fcc197cc33ecddf4dc3997d43be11d3fa7850610d71fabebd8764b1c87a4b49757711d69c0be72f7ba8b33ed697eea6bd6e688bc6277e80cce51d9acb0358d2135bc5a0436b07624c7acde64ce345c35556d1c5fa9e7af3b5cb4f8c6e415d0d3353c", + "bcb6b29c4b44e898b20416ec827a9dfd0f431c54d638eb240eca84a8b861be91df0147e024a5d953ec23868bd3c3e40af32843e33d2066e4ddaf4ac85e4831128591d65af740f20e4a468db29b1d2c89f312", + "0aa28021ff0d50c11c7ae3cf97e6c76bf00e4017441431f84047b5b28f5f25a070c61228de3ffb86ee7ffdb4c7b0f7175f232550fd4bf6223dacdf31087e5eda84a5ade62c8a1e0bf08c1953a36dfe9f0d8bdfda633eab0d38147c13e983a8f417261a569bb0cc457298c1268d4bb2296b8f0e72921dd4e469024c84677718cd348af69d49034b27855f51ca2546153c5361fee2863cb8b23714889b9f70cf8ae7a478e6678293bce258b257e85b3a73b9787f3e9abaf9317050d5bf2965623396d6b22f14ec057f308768fc131e06c4c528e7155c45f8a89e95457e17a0fee91503c0169f34c78e7461c12a40e5a8ce192836dd502ed5de94ae93ffe580e7a98370baf42a838f344beab657e71093fba9f7432166c81e2bbf0bfd3334d57766f542c993b2d42309f55324328f59455f6add", + "236eccde20ca8b3da629e78e3118c0284cac87621cdd9d71605e87ee8aebbc140a5b9c6bfcf7843217e8db2dc40027b752164aeaf0acb56393cd376121f80e23878bbfe72cd75414f30eb847a27e3168eab2" + }, + { /* i=1091 cDividendBits=1177 cDivisorBits=685 */ + "0177b83d6d2d7f1894a6e82ff0bd411e1c7fc7492335d9d4003f237136c1107e373dc34eab644969b20f9fdf5ebce0fffb16d4cf9f4b745517d50da6177d559dedb9af2ce587b136d7a6c500052b9cf9b69c556a4513ed7546dad871a1ccc4b9b19f828bd09181ff3d7fc8ff0db3c67d9d22c9f03b7faeb29fca689b781e22a2111d6e2a9b84594204bdcb972e10ee109382442d", + "6fbe018c56fde1ac6ed6e05d68f503d5e8293afe795166cea9cce721bce1fcb4760c97ccf2facca4ab12771753885732e6ca40f7cbf1992dd20362bea1c1f9cf4da742af01cf82d0f67b48d5468da816b4e90f41b3", + "035cc4e23d6530fd6581de1c060c82be5fe95fc6dcd6bbc7bce5eb04d75438b2f2ef806c0e13dccd2e1a2db6f97f554189d53cd4fe2917535338b6a964a8dd", + "6ddefd5204c98791da274697dfa12da61e351d29cd18085a03776f8d47616224803fc9a4a6565fac135c79b1f7bd4485b4fa845b79d4fcd2a8db5eb860a2bebcd184596a36c147423d9ba64824eb47a15a894d14a6" + }, + { /* i=1092 cDividendBits=3516 cDivisorBits=805 */ + "08509893d3184f43a0574133593fcefd401b041ec3757663543825e8dec67e0a0f8a66f452c8a7184547554364769fc5b633ef4d21cd9a88cf30637e685a46e2ab484c754df4303d7a3e38fc8c95eeeb785d9574f7982d43146f5000ec1b180b3b48d9425263f8b89658fe721c7d41ba846c6a3bcd61b02a596af624d753f7e2583c91ea3024dc12a67e9e901bd23881b8738750fdd4d62585210205b2f384143aac477bfbd6794fe9a3718d0184174d54c251614f0abed38652ba3094b1ce6de4d9ab8edb5326ccb8b19dd46598007fc8aa01136aa290fbba91595ff2c42b42922e70e065e4d6ccd76d0a9c81e5c39dfbd8814ca11144366abf58c90ce0e82543d8b93064d9c7aef7f272fbf470401e6365a8351b356837ac36fb20d8a9d8ff19fb720a637dfc4250d04def9ec77fcfee19d1a9d243f1532c5bad868518d5a1e22838c42c33b79a51f58fd640885e3ca63c45c15ec45c8b00f64fb39da67bd9b7cce3ade1a3d56746a36499e11305ae93bc710d6b1d139a691ae58ddb5384131165474048eea828124a543e6a38281a7ecdd5a316a34fb87187b8e083fd8b2337d4994e71eee67cfc6b2fd2017ac4bf05e613389c9c9629", + "1e6783bad2ce9aec80491dd3aa47ab724f33c7b35ff0a6a4ba40e89d00fdc083175c3aa48976198d30921f0ee02c9ffff06bf5b9aca237fb9b71fa3e1d885179fa9586e6103fe34a55703dc0bc0959044f8b40643c7feee68bdb5096aedff6ef265c2a7580", + "460273c36d31140cbfd84ea1e4490d0adb0dfbc951d3282ff64203e8cd864af4a7212873d3a4b1b67e5b8f14c8f05d82cfdfe4f8f91f450a532644102a33c8402df14c252159c617524ea377ac4b0bd15d2767b532f608db17778fd58c28442786e2bda6ca50f2cbf7384eee1a6f21573a3a3e80b8f6a7481c08f6ed4a929dde4942272893af574ade5bc27208f47c12ba3d7fd6936f4f50cc0c6098f30830e23f9956166c2dff0c99c2bdb90a77642d10c1f37c0d0e04982813f4c72020eb37a9a694d35240cbfa686537f467d4ee39d6c66c627edd10f7bab1a7afbec73f12acbebd0a618e9f1b551f8ac04549c449df1206133de4a3f110d5aeb49ee787d1c3cab7b75150bd91f4c28025e3486e5188487b54c1aa4c5cce0c3e6c6775580c12220304b0d7943dfe1f7e83f8c62cb8a1e58d85cf546297f753d3f22b5efe33042550a155d642f0a7f633858d265d499bdfa8", + "0ee824610732424acab35571969e6328b751e4cdd873e167a55268dca00ba3cd961a2e5043bf118c04f1ef0a6b8a1d10030a28392b08b60fce713534e604b2bff016a6c3a9fd2ef97b3a66ed5925a26f621bd7bfa6542d39254d80baa334a71f0c7fe4fa29" + }, + { /* i=1093 cDividendBits=1361 cDivisorBits=947 */ + "01e18daf5d89b990c1ee7691784b445b14641b2df57276ddd092a357b3dbc9f4379f6f08812ec2b1ac5d701d703f195202ea99a19a3ef11c0b03528d96bcfb1ee96f5cc06da81edd276e1968e448a70b04e09fceabb4144102de5bed8ffd2bea1679bbc992bae70778ac4cece94d4313d15dd473be75fa3c06035b933119088a74534bfbbf79005f4ee013b2f2589c01744e141964c15ac069ef6f178c98c62a02536f1f9992f121dfd934", + "0477c7ad3054da1d9fcfb8d205571b501304b7d8b47c4d2d81af5cd6a34d224c8f3a3b60165b852adae78a7fcf644f95afd671131a90e3e7a5028c6d810f6db72b29beb82e2a04c0291203d093cce7172a4cf42acd5549c35048da6eac519862aa80694699e1d8af2002fe980e8fd57451a7023a443837", + "6bc7ebda17a6aaf077d0283b4b0b69595ffd3f4e605c8de725ed3bbf99870e5c90b651ef4eea617d2a8e1d30cfd7a698fe7a8392", + "0303823f055b30459b255ffe7ae69792c2c94ea0a20d11399e50055d5de6ab389bb460db105bab6aec6e9b50b274f3cb75c357479f157f8563187f2c45c849de5d4e6c8e4a4301849ca4bc0ca3f1025773ded8dfa5627db0a29c5b5333076d9320ae6416514cd42d6acd65ba8a2564af8cb0e9a1fda4d6" + }, + { /* i=1094 cDividendBits=3151 cDivisorBits=424 */ + "6c062fb69d4ab2e3afb77cd5dd000ab956622d046fff281d1ce8f0f130f68e85c01ac0ecaaff51c3abd72984242aa2a530fd603ee8e11fa581261fd17f6ce57a471cfee7faba36e5cb3aca241b2f4a8d2acb74a04ed44851d409ea7535d883685d5c0dfca4a94ecfe25336651e0539ea759c7c3f947045c243cd939cfb3107c7d6f2ac15a05b2479555ff343a9c6ecf3de0c49117220d9a537311a1b195c954a8375f6ce7f9d4d04049476f6a853c10ccfd9524b6895d3a1030874b1a218490638102183ecaef2a3e7cce783d384ab0acf496bf01a644fe752b7c9e2ade002b448140ba3a887f4d67f4d310f1d6948f683af485ebcfbae895ee28c1fc9ce1c73691dc061474a9b6da5e6135354b84ee79c814308ee2835b296df76a0fd70c0c18425b3cebc3ff3db4f4cf5bf72415eae0e24326dba2315ee5a941811efb7ae10e86c9ceaa590d7d6e17da3588d07cc090fb31dee3479342754eb173c5ea36070bc135370d2fc98e19586f3610faa2ba350793a1b8d93739b64e8c4e1a24fd0429125a317736c5ecc32db", + "7e1c7b64b2418012c734131c4b02a0b90d56d4a22d56ce96bc9df99350cd3eec577f7443c0e0fd2afddb80b2b7823242c8216f41aa", + "db48b6fcc45496b132b6a3f4d9013509eb3e17c0c15a17d64f503591b7013872f82cfd756c2b8786a07ae9c96c874968f7696d7e45e8340ec972fe40052b116bb3bb7439a41dde1141f796f59e7e725a41cb18043aa79d3253502cc77048ddbffe2c5d64c708f05dfa47f9caf25bd97a1e137f22ba0239223225b3de386a7b0fe9cddfdbb79f211960c766f6441e9017fdd666e04e39d4269541a6e8065eabe8defad577d86be0e387b6b6ee9df67456101a1acb96aa76cda457eadf4ff0e51e1f2b34d0f98835b65713604094e1a4d8d3db1ca16c2184b25f2a1bb9ac9e5d2324200b8e52a604e5d31e9bfc198978a4deb70d547f739a6c66b46ba08f300043302513834e8377fac007cda841f73d877c0723e004b3cdfcf9f9123d0f9092c3cb79b6d3d8ea1685fce81fdfaec15141a2e3e752c163fc5906d48301d486abb4df5e6604efe6b2c5d5cc653287a6d29640f78b245b", + "29ee040db94db6a01c1e7aec43c4ab0df636aa090d973eead6b11f4ea2415ecace07ee82abe7eb17764e02afc4492b0b5129b5f36d" + }, + { /* i=1095 cDividendBits=1883 cDivisorBits=76 */ + "05c6493e866a4fd424e91f6e2f9ce9c75edae240df9322349bd6125122e1ef60d61a1486441cb332ef3c2c122949ae162079b1f0e5ea3e6e82028a9497399d6effa9a22216922df9ff105a735aa1172a4422d712bcab2141a7578015df1283754b6dd6cf85f25cbc1e44dc873639028f1e36ee68e0c34f3bbe36d52dd0a89309f7e1bfa1dc1dfbd580fe03117a878173ce2fe782aefbef0234ea2f5610959a47b2a13b19e6af5217395a2baa3f8d3cad197167cab2c5d646076234fc600fdbfa19dce56ca5217a5ba13a8293a3d0749a6fb7813e81abc920f13d595e69dc5dab400088c84c9a58e55d87af7e", + "07c4779d8eb7ce36dcde", + "be516ce1f733f35e4c319d2cb7d32b2b49a51a39db9237c5f73c624b941bf374bfe84585c56bd183691eea5e058e8948f48127f8779bb742643012b456d86996231e1aac76254c2320c46ada02d59f83ee3a2e57726ec7abc52de2c444a3accb8ffe2ea1a3f649b551af8088d4ac71852762d6ef02686805bb9e6f29ed44e4a31d77e78f9c18f14c9ac8b3e707666b9c878804c5b6d0ceb053e2d2aba8de04c80c6357ba223aca5825cf81bd07f6f7956869fbc5c913026b31ccaad0d1f48a78958319d143c6238053c6b3d09f756ec3f5548956eaf6c19cc265215738154e849cdc", + "03704e5df77b315298b6" + }, + { /* i=1096 cDividendBits=3021 cDivisorBits=798 */ + "1e5b826b36a566495732f01b4dc89e31cdcffc5be9b4df6e28ff69ff2814579e6ba7f2398d0f9ded5ffb4efd32dd6386d5a7a3954b36bedf8c86ab3bc58d667199fb62989d68a092c38cf7a22bbec93afc4df08bd28a9ca4ffb683ec6091fee696647b5d28ec0de1ff296889aea5b1d5ff8dda557dd347afc6f1fea4adb442ffe6d904a6368e5dddc8c1fe0def7e79a142ff213f1c3856c8ab5e05570aedfb48da7736aa73c3bb538f1ffa3622c6eb692a08d22e7b54678eeff2bf9d6a9752682d7ef76513bc544c6afdc0c02f5145eb00461e16c96e2297c7b353ada169cdcc41fba19eb44eab77f84727c8b0c124a2639c5714aca3edcdcb1a577b27020f5df29f45d7ddc150dc03b140f1dcad3d0abeb7457b5aa61f59f4f94c9056958b040c9bb349d4b3b8a742c0e804883af08d7a9a5a8124e9eee1108dd5e3d5090ebd7a9c20e9f41213330ca59792062a03855c9a2508adb88b6cfa9aa6b157d4cea5b839c6135de3e573e159fac34461e0a0e685eb9a72a3823919aa", + "3d743083922df6399808f29ba9f621b23307462a689d0a64387882f073d19abd434bfba1e650bb5d118337a1f3ffd0b4bc984e30e04aee5107bef95ca8b7df38380d725fbc662e918f8212076afa58b25605bf56d15af7a978435d0878ba3cc2bd9df097", + "7e75fbc54d6f2bf0b3d4c06bcbfa40a2967488cf40b847833719d35f544f6ecca441ae90b7df96f1d5b0690a9bb49ce1dd6a33f024d0e272af883a95fc08afa291cb0be9082abf11877bed67be6e323acb4dc70a37a8210fa441bb0d1478b5d1559ff2722991b5af98cda210e162d81b9c0855dfd7847d663ee08e7fb3a45a49ac23ef5c7b3d8f48abd2b3135f89807b1ef0941102f22b52ceb9cb00181cf81b60dd90397fd135ea420b17a3e81e198fd5bb5b80b139ee77cc47d9dacfb5bb105a6d1289137f6ea9e49174fae218ca0d5440c80de3e9a89476e8294acea090773315445c6aab323c62e0efda3f1ae717f30e1e889eab2b74441a21cfec9332e6c140314ec8fa8ee8a92efa8a09d148e4be2451a2e25e", + "1e6b563ba1197d21edd25658550a5ada33eef342bccec2db9887e70976b1c7b32c4fdafd8f2c1e353bd23b0c22ab7c8d5ee9493ac29dbd70c217fdb5c90c41dc27311f849f00935650776ce33851775605b5015e2306354b1958d5077b17596e6d477438" + }, + { /* i=1097 cDividendBits=356 cDivisorBits=197 */ + "02719e49d82a5abac3658eb6d69f70bd1033f3730e436232741a4d758c2d343609c4b6bdcd75b0b438b49daa", + "185a223a42f33e4e92e2b6186a303c625ee36fc4ab55edd969", + "19b0c7840528b8cbb9fadd862c272c3ea6c727", + "03d9174c62576a8fb40db79ade8c5e0584ea97dadfd561dfab" + }, + { /* i=1098 cDividendBits=1925 cDivisorBits=1893 */ + "1b299673e3bc3561f08d02a61816c11182db51cdae0164ff3f71e139211882f733cf020fa46939b9a3b829144ca0279aeb7e44b60757132a30d7c52e687f8e0b9d684ea8735ee64bd9c8eea81e586ab25aede8b97f94e920a7e0033c48d7ac36870f2448167f22144d780ffb1e098abf911b2883369b800a97761a1609e9f7daa0787fcad93346b6f619d59539dbd17ce92b54200ebfd9e051f1924d3053773c38ae379c2ab560c4e2186d82c2eaf17aadce4e172830c63498c19c2113d20658e52ced22540e911a9185a13ea47fa1740fb8a2cb08c1930606dc1a6c25192eaa8b61e822cbdddca8547ef7c9c1b0b2c3a3", + "0975f48020a290fd98a0d2e1426af36205da65af33587f42e3ea86f1b191707b2ec4e91c50cef06cb7b6494927432ffb0a79d971a008761ea318cde95be0ff50c2475ba6ac83a9eebfd1304fa4177f6fd25682864fe14d2efb8b720f0c7fd8a2054287f368fada47d56d0712775bf2534087a7539abaa68777b4a36ed2000ea47a08eac7099aad5e6cc285a546e42568950631689b0c763ba8d8c1a1cc2f7f701e1e90b00b16ef7063ab510dfe90c143d087f524d09c2790da845f93ab37dadcced4146d07c509dfbdb38d366b309034db7bfc2faf36f508ed30a2843d95e905d44668996483d6452c2a0b5098", + "02defe0a90", + "01232f064436ffd6dd74c9d371269832a222abc0dad91d16e4f9fb44d949f1332ac17bf9d751bfc362127ab0d2b5b6bdd8b947eecd7130944f8857ea45b62e0f8fa629f08639eacbc549f2ca14b51f893387019da2495d99072df74904d8fb21bd41c050eaa21cc8d7e2c9adb44ca0cfe32d6e4ea0567163bfdb2f4662c730823bfe6bd4c4ccfc07f7f9b621265495ab0afe679e4101b9e7b8dd73bb9b62a231b9665a09f08f4405759d2fe9a3a63a07c37cbcf8931f58bcc43277a8271be7dcd38229a932664ef2c8a87b013d063267cb7a70449b7323ea6b9bad04218a1ccd0dc94d49b6b55efef7d25f7e23" + }, + { /* i=1099 cDividendBits=2523 cDivisorBits=1380 */ + "068216f28d962abbc4e196d7cccd3c9ae952be0c74fb7a60b5cc72742f80f9bb2c1208ed5857b877da702805e59a2a758b93f0a5a0dfb81c069ab3425231826bed8198e959bd11e633197df8994b3eaafe3c819d688b88e266e2670ea53f55576213ef0c6a616175d257dd20eb1e7567e0188b0e1cef7e3d792d9cdcd2d62ee2190fc005d2fddf76a77de9b0170bdb746bfd8c531dbd036cb6ae1b75f54d6aa27f57aaa41dfc8f768f250c933ab1352b59afc04a81837d8873d9684f2bef6e93aef312ba60056a9d76e3884763412d7bc24a319f6ad7884d34365e7a684fb2313b4046973c9b29b36619c3ca3c589252a81fd2fd717990c72a9d9ed2b3500ad542a31300b590dc8f2c82a46315d8e61c6bc9a09868ccea600cd9aa0e6f89138c1cb3eb177eed8f12bd5cee4c41e19a603bcc4793785f053c56477fbf", + "02b929fe79ecd48c495ea9629b883db552b573713aa64fcdcb50c7dd94e21e40268122f8e8ea057a8963e221fe82db92bee7a5306515b5e95e1eda375dcc09be3dbc65438b4f867eb33e20c0f0b8b28ce58fe03ff5a52a87f06d3f7683df8a15368aeaf9506738cb6b39c328f0db75bea8c7cefd01a8d6757f9ca68571f9f7062e0e0f9e401e464957a98d74d9e85a2e3720864ab8216f4a371f5f94a2b11ce2c3b2d037e3b805ee44c71f58c1", + "0263ca97ac976edc20c427d475b5c92eda809d86b64378351c5aec28a98a5262b27f86e9735afd8ae9094d1ce5fbf19a5a1a550c61b0b6da77a4043f2fb140c3f8e388d671da083b52865896d33887b3f12367e6cc897b738a16f52578c20ccd8d30cc897c07b23a58a4afd7244b4925ec7c7454fa99d1aff786ad767d3f3cbb71ed4593e5ddc9b758ebe70567525307", + "44174bc3a0df3a47bab941018a602a40c88219bbc04b13d95c55ec112f65c5783e9a963362bca57e8c681e1629d6c991c96b72e9286d1686ec0064c5223e69552bbb3d6b0395d7a303a35d2c6800f127b13b9c449142466af86f9f1a81a0e8f6018916a18b625bd781b95a7424129b11cc96c482d79cc8f8ee9d6267e751f330f2ea002b0404fba5419b39630b37fe71e2ed4fd37c4849888493828b25bc1d3bc89854a687f1ed46a5d37f78" + }, + { /* i=1100 cDividendBits=791 cDivisorBits=574 */ + "4aa88574df155800ffc1ce379520842bfa666b799b771825ccf25b1e7b8ded4d972f7b8cccb8f8b37be8bf8f9f2ea9f094296c91f53395ae3aaf8b5daee5e1f1babe6e2b410d84f6053409603602d8adddc7de75605549f33c76e5fc72dab1e7deffb2", + "1d7b4a3e50f20b7a90898c61d6bb50a3a2d7272e2a63d7403d830ca9e340683cfa1f4a22d6f6269e592445c7fe1eb6af9aa9ed61d5dcc54e08749e79db07e61fd855586af120d846", + "028849515f1b9657e0ca9c4b26ccc2273180afa09ab68b9a47340e34", + "0ffeb1f4accbb15f1370df2189e5507984e9583b573726b168296895b52e50c87c019bdbacc3f21b7ae11abca725d85fd85954ea1732c171faf4b87e16c6e74800b9d905c9273d7a" + }, + { /* i=1101 cDividendBits=2125 cDivisorBits=493 */ + "1a6409636d01a6d6540dcb47795d84a89e04102729b165ab65fbddea15a7fd32797b861573a7849a2e95ec7d7633fd94b578b484475a8b76caf27d48a8d52d2aa390b195bd6a3dacaf487f3db1c5fb0227d5ee7ca6c5a8bbee79325d1f478f5f38b3fb90a7939467202fa6b0254020bd669abd85957be6fd401be23a3ad5238be98b8cadcc92fa61e2ef27cc7083c3e11664fd281b0c7e5cf7fb80dfc678abca215225c03789ed2d0e9e30a52e1dd69866096d43800e1502151a0adc8cf5b896bcc163094fa8267717d0e6f51a6882cae8a116ff58d6fb1f63210271bd4ed20c7974bcab419133cb90a50ae0a3019e1673d5b49db53151dbacbffb935a4565b5467aaebb3a868cdeaf2e", + "079d1e8009dcac500f27dcbefa9ccbcbe3383042e3b6d61d13ea4764e8437802e80ef3a81424dd935ce617aedcce2a588bd852a87354f06a32e858170c76", + "037758e14a7901b0083ab4c2b5dc12d39d9de34fbdd426a48dadc1cb4065b7cc607b159ea427ad1bab53fa1adbfab110c084bc244d7a46b11291133fa5728c40bbd53ae6fe8102e6a7ede5ac00a52fc9f2706b43983b8897501b94fa95b6a5c47a03dc71523013851e3e951f455a56aea875bdeda02142dc8157c5aa8452f12c8a852f75bcb1116c9defd8e1d999d70e2a0a0dac2d39b561189e3187325e364bbed68e1665c967e93a317a737fbbaacab0a8db6bb09bf44acd7027e64fb2c973f4f80dddd24383f1eb825d3dd9", + "036f65be3cc0cce0d4f82405f6ca71310b78ec4eef91dded53dd917076a0b63a9a4c25e03e106e5f87b41b58a8cfeba10520877a58b2492b7b90f07f0128" + }, + { /* i=1102 cDividendBits=1424 cDivisorBits=790 */ + "6612dd28ebe801d5d1e486de3ee98a39ff9dc87064a162c9c54aa3bc7e7e5f3c1de4e9f50af65675b505952c2ebc5eb8bc7e3d80aecca409384c74e5142cf672f9ca5ac3301badbf33f2a6f4b2acf00c373debf2d967bdcaca909e7eba40504a3906d075bb29ec1e082aacf99f69fa472de608726ed88a8df99d8d1da31456f30df7fa2ad06cc2fa5c91b6be72ff508542b345f9e1fee7b5e526f5322655907995c49ae0d4f2b8615fa8fb38c72d4b94e3c5", + "32ac6e8eb9caddda14460f299c6ea5b184211020787a1ee3e28b77d86e36d312f3032f901dc708635a9b71aeee9c64e80e34055bd5356e576a18aa092d5b00edfcfeb195f89907b00038b4f27386c4e91b241aec36ff442d2e929898c89ffdcc41ca70", + "0203aba9982597974254fd7dce9942973705d56da48ef9fa0f81a1daee619d4c75e8839d5057a876a4bf34fc12eb6ce019fd25fb083f542d069396e766922d8cacefb0e74c794ab0b07c61ac26c22a92", + "384b75e85046c7e14e097dfb5b81558a7af4541da17a19d294a4ee09c6d29b73249e5771d8d4bd9ea2b0ac6f38cacdd7da29a25290ff627eafb5418c8b4e5e69cd286f599bebbec6b088319981329b53594c9897903989fccad2cbbee3c3f9f90fe5" + }, + { /* i=1103 cDividendBits=1908 cDivisorBits=271 */ + "040bd7b15c83cd653f0169ab32553851a52a36fe48b80fba16923dc16b7fa26765d93924779e8230fbb6eeb32f0ff153326a3460e91cf94b83033a8e1a7422c340207f2201e787573089d416e942e2440e79e4084ffa33c3843c1106520c448a6cd754bec653ac9a8ba4d147e880d1a92dd56fa135118877424fbfb116fbe05444a454507e8e5565d5005fd76342f56f1a7333e9e9f4480e52f66097ee9d43ddd3db1a14dd10eb99573b533bbb0b3483fd0ef96f4cc1e71e8c05a5940c024ae045f2776ef9f94a33588264e6441aad28dd189f220b71c7a0c2f83a4d88554a3d579622b68f113640bd57122d793a81", + "5fbea1565fb79c3da08341cc697c8a29c5e240ab36eac12d52e641f0661bb1d1eedd", + "0ad19d1bb3b3b1bf60a0a35f9ef21866a1041b6488d6d9a1a960ca9d07f6ba0b58e177948cb3ff14a365a195de209fbe906a9344a9ca57a6524cfc0ed9d1b8c10415d1ec1693c0ae89325e22f1d82e90fc96a5896dcd4e9186ba979320eec98391f1ab9dfed0263515edb4575d5c3309f30d2cc51b8fa605933517e8ee5f8fe1d30e4bd73278e544eba3e369cc9727d1f898f1796a86f63b9238f27e8d849f2b0853b13529f1a3f90ed38bdd0819550c01f3758501498dbacee73dcf76382f0c4c07c2b4b2207be788cc344c64", + "4b72947d7b5dec5d938e5f25aa2cdbb8be5af1e34e35b125f9f006f28211c3aa502d" + }, + { /* i=1104 cDividendBits=1603 cDivisorBits=559 */ + "0519577e391daf7da5a332e2a69b72fe0b53f2e3c430ad1254c602f1fd868e41fccf7e941e1470f2a5a8d651b23e364094bdcc6792d3634bb323d05d50b6f61cd43f20b678e12aafeaca2b4f2455cb01672213a99b6f238599c05d08b34e5720e02bd608f242990202f608f3260d506cf76b518105636f04633a994632d2eb5132c61428330813606dd914e7e7229837a6352cb77b67de1c307bb805a6e8615c058c16f52822e704e15c69c636a8765c39151d62b5e16cf4bb44466c91c48185fd5f9ca6673c9ddf3e", + "79780097e49ff5efdff530ec962f3ea2788d8b87eaff2d35a3236cfec9251b82ca471c422c36b9f0a5b81fde00ca3b10dfec9d9e60b31a83b19045bc4b236413ccddb1bdce8e", + "0abf0e9eaa35bdc8f2f8bba7a0d4c7c16498c010ad007f14f9c0ef45ee5ed3538e77faf5fcfc1055cf14e7ef0273348f3df042260375dbb5b2979b9782caad83705457b981897046675a573342046dbf2201af8629d9449703ac237eb9d0ebb3dc2213b57244aa4748e4c2b55c13256ab0f209d02d4cf8b48c911fb6277652c4de2676", + "4b9876b5854bf71158b5839f6aebca4c3580bffbae1dbcc8e24c31ce6fef95822caba49e6c485437960e5d47db4567ed3aeb67d81411da6b87a894b46be7121a3d9b4b5395ca" + }, + { /* i=1105 cDividendBits=2143 cDivisorBits=810 */ + "390142cf9baf0027b7ef91ce1054f057302d03734bb2251454e33a47f9ecfbf185821991ff5371349a80e5fcfdcfcbcb92cbddecbc1b07efc8d95ee929956d5af2c55d978abefb638bb3ef3e1aa2c076b1b9193a5b9e30c13baa40252d3ff55e58de9cfd642e7921dd65e26a22a74da8b5dd8788950ae43fefcb9bec3569fd7b2501416e6d050d4e4fc430e5bcbe96a9e9da5e5a3b26e82e6a8de068a6f0e3bb559e9985def3d01422ffabbe3ee3733e16c717e186f07a948ebcdf9a72359425e47f6e4a1360e812201237b63304c61337aacf3721918f6abd3d5427ebd83d223e8d58de8c6f7409797788b1eebde9a1e67cc5459cc1586dfca9bbac1fdac228d09447a8dfb000548fa3a703", + "0296b2b853808b05b2bb771e8ecacec591edc6e8691f195c133d28134d21c82434a85646ee8e389f291e1fe16b73a9ab75f1ecf28c74571910ccd896a14a44d7c9c046948e20a8b0be261926467353150110564c6ef34045cb5f388b5243016f0bc13037555b", + "16055ed428af801b8ee7efb20459e6abe4f5cb3ee12479f66354c6f5b3ab7c02bbce89dfddb3b790383114222edaf33e92b97e663ec566cb63bf9ef61edd236db59ccfe579fe5ff0030a64203a3731d806b8fd2b99568aaa8bf2f2bc429e5b8a1664e543cd230539cb2f69b29630c08cd3afce2217f9d5eb925eaf8e175b59a2588d238be9b4e9234d15aeb00209d22daa1ab4e2e904af9e383486dc6504c2247daeb022f60438", + "0193968d021ef1fe483949a29d983c0a4a5835bc63c8fdde2bddaf0c22e38acd5c4415d6c63b8d28785f63a69d2696cb72b955c66dbf9c7d941deb3eaad0fad855b5f7f7e560cd514b9a74895ffafb4ec298a637a543f295ddc1aba04b23a3ad323f0ac18f1b" + }, + { /* i=1106 cDividendBits=624 cDivisorBits=434 */ + "392184cea447a00891eaff1ac53649ad2f6d0c6977b2ec88846035b5e515b06653eb7983e418a427c0cbffe0de21922b07ad3934423f8b6cc6fea12d54b591aedcca17e467ea66e07140dfbf0ded", + "2fb79f4b9e5a9b0db33163c21f2a2050c5718a22342148128d5f31b7de356aa10879ee8a03454a3a46111a47a812f604dc0cb835f7e2", + "013280ef369a2d88cf47a449802a724b6fdd44473e177943df", + "125ff4cefabd3d00878dca5ff65b5cf722b8242e57c288c22a4ffd9f77c3e2823db10c5190029ad692c7cb25487425a3cc72d109fa0f" + }, + { /* i=1107 cDividendBits=305 cDivisorBits=41 */ + "01bd43a90441ad17326511671ddea24ae7aaff6cf9aa6c11b26b6bb1197c87f0f7a930df401000", + "010372af06cb", + "01b758ccb1a92e8bb36b2b568f3bfa57676a852c99779a70e0737e3c7534d938c172", + "ea49c7fe9a" + }, + { /* i=1108 cDividendBits=1005 cDivisorBits=640 */ + "036285d1416030228fc67d01efa9fa14231c43f4e4c75330897b8b4c6461e3d9761da57b6a51aa306c7bd680707d9acc70c7c58a7b2132fe5d3ebd11a2fd6a5d42a399058e07ee1143720a4a87593b9b84747c068b01849b660f63af04eab7422c5b07347ab40dbfd1c0defcd4f01990fb3d2e96caedb28a4658f7b62c67", + "c0b6ec5c282e9f57204dd5cf4e089e981237f165d002e7667e8f4a5850c5604f1840590f77687dc5c27476a98503ff898fc8485040d0e4baa1dc91158f46442169e98ada5a872028ce5b256b5c259367", + "047f146d48a2622d034fd0f99ab7e7ad57321cb23b70d129a1525568f56392f37f134b2932ca8127ebf6a8ebb28a", + "08d231376e2a2a2044cbf31ef306faa5cefde6770bf327d32ebbddfa990dabc2a1b41ddde954df6c281a4bb0999e269d366d7a3427d9984109d51e3714ab05c0279a808087d8ee31e1410333436a18e1" + }, + { /* i=1109 cDividendBits=2309 cDivisorBits=238 */ + "13761f7163b59cbeb72dcd5d77c1b71328a45784bb4622b8d2c5616d5e6c97ba06435eb4f9338f1b955aed8a435656bc18bd6098ca6373e06afe6dd2ea38a0658aba7791f0e5afeeee02ecbe93d7c60144a0b3efb4166a9e50b0664a7164c0777f3769fed2ff36534e0023655b69b826b41263b8763ae00baa0beba7f07c9276d50a30fa234fdabee5dfddcae677ee0983b78c4f1a5b71b034ffcbf1ce5f8e718b4dc7c1a2ca7aee3fa652d3647ef972c9f3c6c628863d2118c6889e25e37207aaf9bd1d8675eabb863b82f2e0b4b89735d7490a9f394b94e6641c860fc3470e83fc8b58601bb221d54572ea47f3c4b9339289f682e4207c2a1638abfe53535010b278d04790990c1b678f56b436f7e2426ff7092b958a034c6a6706a832db75ce", + "06c8f7487a5104e6ab8b2f4d2149e25bcab449a53062ebf500e4ee6d9fae", + "02de4848390c4d57dd7047c92c964befcd2718385797cd598ac25c57fa78ac83e4fcdb0126a398a4073b13f84a3ae8581ec0ddcf3018558f96e428b54f2a706bd606d057914f0371456887ad4c280305c240d190fb3c181c8922855b77ba77147fd083e3ef0e48114f3983a0ccc0fc2e82340454ca41bcdae76fe75ee6c0f86b795beab4600124961a6ce040b09e70a001057deaba29c2bf4ad56a24babba6c51fbc9098878ec20cf9a7cd2b616d44b19a21e7505ece949b58a3d50699b93b2535e87a0f126f08a50d66f263ff497484522765765b4318ed0be6aa19f244f044a9c095523da044f75fcba90b23a9090ed2a2cc47a5e056fb7d946f8359dc5efb4842ae61", + "050c9f46ff9e9dd620c42542837bbc896ca39f179941203c55153dedb0e0" + }, + { /* i=1110 cDividendBits=1243 cDivisorBits=237 */ + "06d72f89e68695848abbd283c3754678f87debe16ce0807ed1c4b1ff975e6633ecc6a81702c64eba16f9e0fa4cc82e11aaafdc0670158c8c163d847901feb65c8c02bf9fca031dd637d38df51f12333d51b7e7b24d8ce9b307f6875850705f160411b01693e818d7115fc8257fda4c5e1d9c197cc245741ef213f8171c5a7f16ae06657ec887b4a78427bb043d8175d646ab5ad9276249fcb22ce90d", + "0bc876d105b9d8e44f307b4ff7f7cf2486faa5d6a6fd7b0a5f7530ada043", + "949e6f52b83d943d8456c2281a8990b847d27f0b6c3b678c46bf6a87f72d6849cbd530490f4e2ffcbbd0b88b89208ae2bf4729a1830f23983394ac568e3bd5a5117048e61426f60214b5ac5be684930918d7e025e53409e0142a019fd6d2fa30635d281455485d46d06fd5f66146262e3f3868af50e8c03a99ff352b8864", + "04cc78a39a81a773de3fd0d9ba7934314e5c826219e277f2f144a6f5b6e1" + }, + { /* i=1111 cDividendBits=2049 cDivisorBits=676 */ + "92461131ca8ac7a68e84850e45e8a4c3b8aa4886bc8bfe77d6c3bc77b238cd8779e0022dba1fee53ccbeafab0501590acdac64799c52365fb4d4074f455534404fddbbea600a45ab5662e7641ff1858873e78c934f2bb8d29d3e1c35cf46ead6dfe11a76c55ebc3be07e8b89c68edaeee3292764e917e8e873fa4130cd4bf629d431a69d894d82d83b6a0a7db444a09c3b94ea179d1992786201f738199d794ace0017f2f0e0ae7e96a5ecc495bc78d8edf592a3e5550338cb3cc7193659bdfb21b91b62b1634e6f97eec64e63f88f7295a2913aa07ac571adb1dd9338fb69ec63be9f5a118163f06f7c020143f3cf96dea6d49b24095fb981905f5d09f21f59", + "0dfe9dbe2e8c970167e3f8945706f7323742cf40bad3bc13855addd147320278877f0690d6d8c10026c244a4b99d38b7fa0c5783d3881681a16380719fe42548054b6d52bcc78a0bcd0e340cdc04493aa2660866f4", + "0a73c0914977d70a34a51d4bc1b3f0f397509501d8b59f4159f65cc87f317e4fd33a3b8ff86ca2cdd7f2cb3035c64ed047fce3ecd5e39cba3c86dd2c330130f43481fd8404b294294052f90350eb83d678285b0ce9b2d303152b304fd6fbaef6427f63c9a313b0dbd0e8c504c7e1aff1f8328a048b89b547d9f2bbdb86b60fb6b2a9568373ffe8d6c766dec2296645ff4b1808b48122178d5466ff3cb7d226b14a49068467d9e5dfa893c9f8", + "071ed6f5631b284e89688a2b0b50a8f2ad5004a8868cfab4c7854b19e1d7fabeb287dcb904e92fbe5752722270413bf6d7d49bcaadd54bd1d5dc8cf9366c38754bf50cdeec38560256c417a198c72202fe5adccef9" + }, + { /* i=1112 cDividendBits=2521 cDivisorBits=1867 */ + "bc5ab44ebb7d0ad8fe842e54b6468da27b53a9639118b2ab92ffcc2c45418723fb6780684548a9dd2df5cc852e4017e58aa1478e1cdb5e63d406470e1f41d2ad7362b8afd635a44110e2631a6a08548cbb89616f98478ae8f199107c858d9a2fece17df475865dbc15bc054fc7e5fbf7f879e469ef257446ea285113cc2ebe18c72563510602f7a79d15ba33403728db17a99e3ce9c5877e0a792785a2124d3c131bdbfd32d0105da8b92d8763a4f19fbafccbab79cfd7a136243d35a789f0ccde506b29047272d180d3a5bde1d8c4a838717056a6f8b075d196e146d36af334a92edbd6e661877ed16e6714344aaa8e2d2531b8470103091de3857c919aaf0edd918d70ba527f626d625e3750a17c83e4aa245023faab9cab9aa6e8be5cde546b141245aa69fc7f70ae0925d2868133c40db875924086d686eb6c", + "48af7a027492ffd1e930841007205c3b5c3f515e2a69dc9b0b0507081b100ca992c05fbf23660a898f1251f2e5c2de5c1b9b2727b17b64db453bd4373c4a01f6294012eeeb50453e15e3de6088bbc8ae563f45f08a5f2d446f229d1410b307001c94e0ecb470e689273469f6dd31877f75d8261e1c39b967931a6e6f0e460760b3c6f2f79ae6cfcc8c4b5aacb3ed25c0bca92e9e8a31b20224a985f1bcf1954aea45fdf212be8ffa4f04ae68337b154ce5658e17185e7c3f6d8c29fbd126ccbfe01cd81454ad1d0795386efc9932c456b17230991576ceafc9d5d637cf4dfef45ea530cb7818439b98", + "0297637ce59cf2ff9c194df1d5c66dafa35077aee9c9995137bde4020f59898c57c146deb8bbc95cc9a746f7581f69214e46a23aecdb0f2b7cb21d61c9c7158be501780541b641d402131733cfa1c4bc0b9832", + "2b972dda0ceff40cbae0c9d89ecb92901cb7bd075b221edd39d620b4c3d0b10fefa42e10786572053a4311c09e93f446fee209e0b11388a485777c673641d0c7ed55de8aaf1dfd922ad9cf01b14b60209d70cf793cd07b02da46cd2b0dfdffe2ced33b5e63c14d1604b349a5e0397ab064f4886ff7a822a69ebb2feaafb02c4655d6daa3b92571350c4313c2a37027efa7fcb247dcf746589d5cc358f371da062897a6f0a60b44a3b0b4f2cf649eb7bb58b041b9f9cb83e56eecd2fdef75f087b54afb137d1a31d559f058e1797927dc3627133880b7db4f02d6711a62af6c8a1b18bacb1ea56847bc" + }, + { /* i=1113 cDividendBits=16 cDivisorBits=14 */ + "1c08", + "3501", + "00", + "1c08" + }, + { /* i=1114 cDividendBits=4068 cDivisorBits=2093 */ + "a9a9a4a0e23948fe08320edc310c1429c12100e28c462f3176404f4769f8cc4464237ad2503b6f4105e0e5315a6a005ffbdc9c6f963954a3a17733b096ed7b7358c03eb67c442767eaf04b7d16c088d3c9949eea537e2fea47df3ab519ab65bdc94bf5131350bb4437be2d231a7a84841fe117c797376fb672f8b855be6f94351c3be367dd2aa19a0b8b0cee732ba05dd9fc6ad9bf000c9c6f048c37c82386d74a3d1192570116fea30a43562523a948d27b5c1901b5f5141c98cc9fe04b0a9b63da3ad527c75d7b0c2b4b6cdb348352727924a4f70efcbadf5956634625b91e60ef18d4d95c155a6a407bb32f8aa59d816ffa8cf0300a05be857f00f8553d1c16f9e91a0c1d970500a59480f52d0f9fe94bd9f5b599e2d32f9bd5f833aa5c40ec44aa13209e2fde25db67c9f4d5948bbcc6857f3fe035169c438a3adcfd606afadd4b6b4d3bae68a9b8faa50cd55502f22662986f95271f42ab3f1e7bcdcebf2b8d44f799953b7382bb29d54e3c9b75eb1ff30e70fa62df260fea19bfca54f6064071c9eb064a77b236b27ccce0058ad218c6bc9fbe5a2fbaf15b17d2180ad4e948117d0c28c105e56464a5d84257ea6de341e410e36d24a88273e094e48412ad5cad33f436edd391b1134be6eb16b7db62f2f40be87f9da04a1fa9673591b2fad0dc4208e37bae3646282a4e66a05e3a4f5967ccde4aba906f9a72", + "1d519c4bdf357246dac0930564d494d7f19dde4a3f63313024814679065542cf0b2da50dea5d4993624e80b9f2b82922e05e6950500149ee33ba6126d96a11a551402ddb591d90da1344c29b290d6cdf96f454bf56d09e48eb0217034cf93a71e1bdbd80c4df0e15403ea20a75ebcfc55daa54716688c1b7cff3514d62b056ca2df57205f6293f7e0cd19582ddd215f7b04627e6c08496c3a9827c1033e8a391b6753b5699e9e27cd79a551c418ee259f421535c66a126def0d9ad100f16b198c6240b9751ad91d1b96596b78311bdbd32c87adab85d9991e64f7517ac5feb9f27817b4b7e62746c786db1f2eb854b74f373d62d98a8318db13aa74b606ec357ee1faeed559e", + "05c96d4311dce03ca227e619a49be923fc6bc349bdb9d49bd64665dd95d130641da6e8d4703d527aaae08d52c461f963752807c1c01e005a55e59b9c357b509c7cc37c115b98cdf98e084f962c0a2970bd5016f8c95baa8a947c75f8cac5f7168025a8601bd13296f8bd0e9f1554b06038606e948aa7e130d7445e42101ebb50d094f260a8dc727d7343af318ae8f89174c63fd4e367f938e882811e27186927205d098c0470f087f6500ecbdd8a6c4e02e8c765f0abd34e65d465cb554c5019be1e939006531ae02a49319f463cdb7570dbf5bead7fe230324f6f618d91fd4f8988fbf7dcb6476e852ad12d7ba3967a699b3e12ead38d", + "02b5dce2608f23c1a189f26f2436e96e35211d35c16d408d2d4f2a6674b315f03060ac5590d091f56e01edaced06ee0ff5fba5931be5c51f7ebd64d10c0de4840af2f2dd32aee208d705e1e1f7b95c386646b7af38264778b9fe9c962e507f70761551bb92eae04281c2b3f554b730f235972b3088a771f6a0d035d57642ce3e4803bee58ddeac9dbc05379f9ec800f137a2da5629b13f890b65f358474b355a53c037abbd6b6a01d4b785d3f51a93bc5772ae7f1a9a4d2da6b029120bc4772b0be5c04200654755654aeac9a4057287f9dfe526834b7bfd75d5e21fcc096601d3e22705240d2b13a2db070c11b1bc1586768ba2567a10bcb8d53002baf75eca0ae03bba386c" + }, + { /* i=1115 cDividendBits=2885 cDivisorBits=270 */ + "1589690c30915e7b68d0230b4ad371f49feab8e0a8e804386d00860a9843586c89c5f874b54747cdff6828c945024c3cba77e23f0122d72e4205d24a3d37e29ddd046ce9b8f77a90ed9df3f3876d9b9ed07a7c15b921531b6ddf1e3a68957bfdfae8d01f7ef3a66df588e1af59b2aff6b05973778519ee33b0aff15ba596bc044d5c3eec36bf56ad7799a974366dd78d2fb1c1fd466f5d600c28c2975277b3a09065e61fd34178cc59d91f4acc80af23b83d13d78e7fec428feb45e4b2497a9b4dce9301ef72a9b52d55556745eefb7639ea4298d198cdddc038e331e06c9c09e597e8bcb3fe410262d4c171a246acff87a13b56ec5f53aa16a04b6f59a7810f8c14c48adf63017f7c4867d3e3a364fa979932b55e665aed2a34cce9cfc7f80dcb1d3ac84dabded92f109d65fc9da8a22ad9605cdf4ea49e2cfabf4b1ad90e413fbe0ea401ea343058009b8bf773bdc4f8e099ed51ed7c949653c355a5ccc3686e307e38b9582e45a7", + "37d6aadbea29890d818a765a4c3ae60a6ed7fbae167812a0f34f308943ce5e329c92", + "62bd09e217280e233584663bcf645740621868a4e2bc56a4c1cf9d7f766ee0e5e056f59f232093d90c6916f8037c20cbe1a6fc86c31044fea88bfccd84b45378c5aa5327a8adde811b2e4718396f5164a8ca2a2107e448595e272cb019bbb836577f46c04b41da89ea26a66ba81d685acce75d8d2d1c1e49e373e6c9a7c4af1d1f185be55d2adbc57330ca8e0c58f1179e638dd1a374560008a172dea6e8be50d00514bce2b3c79db5e085372ce4260773f02980017e1acdfe76a979e92cd45e085c1fda69708ebf870e8f7add4d9d0d631ee99d79ec67f3a1aba85694957b4e647730d77378f0e11d2b8f3f7240078a8ca9c42a88ee2af814024f2821866df6d2ed6026e3b63515c29c29518bde3e002e4ec765e36bb2766cdf4e44791ea7affd7beb866b91b1ae3c59be1f194c63c4cd230196a6d1be05dd0259c84510e95bc52df4720067b4", + "34b622487a55678022fd61343118115089b90169783397d85549dfa314d7bb9970ff" + }, + { /* i=1116 cDividendBits=608 cDivisorBits=303 */ + "8a1ecae1695112ab1fa29ee53413bd2fea51a367a3cbbd6875986dbb1054ff5a9d1e889a274d5564adf14335005191c6a0aa027fa35202576a4fdc369890d9bc2f0c67654563bec448aefa7d", + "367656acbd1267174a493652989e89d099fac37400860a7990756ae80b08ba6d5535f8b0dd75", + "02893c196f0820b34745ee57afffda273108f7d31a4e9b4e0a62058533bd948836d057bcb1a544", + "316ddfdced48be6b4553c96bc3d95cb8ad593e9310ef25e592f4196905bfa4c22b763112be69" + }, + { /* i=1117 cDividendBits=656 cDivisorBits=117 */ + "1bffb8008615ad81acd75dab34f76fa21338b900d03ddda82423018288f775448610558ad03722186f75f9990b3002c58bcb23f669578e0b6fef63fb9623b0851cbf3def75445d80b0ec2de8435d401f7378", + "1efa10e75c800ccb4c48752760834e", + "e763c6b43bde4e4aa5dee0b0e1ed4fb3e9cabb9e47aaf384086aea21e8d0ed6c8b3c1d3f9a14a10946eb82b38ff0b69a16bf19ab7f3bb1c2c15191b0b73494d18fc205", + "1dea5977e26aac6cb186085129c6f2" + }, + { /* i=1118 cDividendBits=2724 cDivisorBits=734 */ + "0d0bf40319c09c911cd241d2a9a28b0d165a0a0b5db45d2c777aa75a16c390a84360e6065a6cae8cca1bd8428cad701026e8c83a8e138ae2b9cec76b121d07dc609390149b816172d74716ba94dcf8c22f03ca6c4ff2ed23307e6a0d200045b2d41061a390171e0e4a201d0d819e5206f0093b2d350541b815ce1ddc3b5ada693d72c688b01744a78cd228bbfb69ac9881c99d7dbac736cd1c8962e3e81616ec6215bcb4f857d66ce6f62a16c8152733e48fae66183d5c35aebf4909aec24f1fee4caac4540d689b02c80b168aaf1508291d5423dcacd0068efb89393a5ef9fd00a7c8dbc4a118edc38758751cef67e0de38b065a4aab8022ab12435858a9c7b02b29b0559b42396cfbb4927c1f9c94a6d1c816b935892119125de4b5291d755dfb4bb705981a5429b04fc5aaa47946d04b1031e68e13776f640b1ba10f25e0d108a02f0cd39221348293b0eeab3f8fcf68e5f4eb2", + "3fcd43a3e30255799d908f04a1c9428e2d4ef6e921ac5ccf3bc2309679017d3a984811c0253cf8fa172e99ec05bde1e97b3fbfc98f0aa9922bb0251622b45acda187af02695ce01fba2731b245d3edd6902c4584fd3aabc54b471c15", + "34594fe484527f677df3f214ea21cf8ede35e635a9e84bac1e89f55651887f3be3e8ca0208bd7946d2401ae09a645dac0930e4b3ce58597942785a25d64c963a88e5a82763f6f34d3c746f2849e9877d540e0375227904d3f809967bf656a2cba974d8f50ee85e13057501a4740e060a98f5ccbc633fa0247feebd683b06aa78cbe092a9869c8f89ad395aa2c61b5cc2b2b0e18e7d5893104f7b0f3e675c3d100e69404cd3c5e62034be4fc697430b965a07e1021a0c681852086fe01f57dd65b27e4991760621479dd3cd2027f8d5ea1cba89cf2965696688c406033e0d8d37633ee5d93d90ec6d513464feac10c9d3fe2c7c745ae15be731", + "09fd99eb4d75f72bc8e0f4cff0c770979a70d9860856362da2f45a07c6626544cc0f9d132acbcfd8f70d1495fc56ad5c97689b7372ffe3c3b0dade23e36a22fdcc126b399477e07ec772474e0cb90b58a309868eee8e6fee8af4fbad" + }, + { /* i=1119 cDividendBits=2203 cDivisorBits=1 */ + "02eea08dc7d3738dedd6d0ba998211278ad9ec8c0eaef66182be34d14c544d87480b36febece1d33b106ad1740b3f993cbf4959f50bf53595a186d777792097cba06ea5ea85915aa912356da29bc7fd0200117a25fc7f62e299fd1708a0c7cb60a28fef5318c91f1a963e4037e26de1110301547696cbf8f39b529dbf9d736870ab4a082cbcf80b608be60e3e3adc2675395b6aa159854b4b45ba29e722f4e6065c9cfc2646611f21c5c43a10fde3f61e3a0d49a4ebf347ccf51ed4550d334eda96565e2d53342a01fae0c122c38f9ddda1a9a40743947993c51550436328eecb5c2c62db71a53ca6bce36492da8ab0c63ee9e1a653bca404cfdc8926d9f363aba3dc4033869bcd45b4b0bd119d10b1ceeecee86", + "01", + "02eea08dc7d3738dedd6d0ba998211278ad9ec8c0eaef66182be34d14c544d87480b36febece1d33b106ad1740b3f993cbf4959f50bf53595a186d777792097cba06ea5ea85915aa912356da29bc7fd0200117a25fc7f62e299fd1708a0c7cb60a28fef5318c91f1a963e4037e26de1110301547696cbf8f39b529dbf9d736870ab4a082cbcf80b608be60e3e3adc2675395b6aa159854b4b45ba29e722f4e6065c9cfc2646611f21c5c43a10fde3f61e3a0d49a4ebf347ccf51ed4550d334eda96565e2d53342a01fae0c122c38f9ddda1a9a40743947993c51550436328eecb5c2c62db71a53ca6bce36492da8ab0c63ee9e1a653bca404cfdc8926d9f363aba3dc4033869bcd45b4b0bd119d10b1ceeecee86", + "00" + }, + { /* i=1120 cDividendBits=2197 cDivisorBits=1933 */ + "1569c9b372896e9ca97b37ed4783b9d3bdb4a5a62f3b9b13ad44384d018e24950b370442c47bd33a9cbf3143a48a8a90d9d59ac96574a8f58447e900c3e8d9de3b4a8c4ebeaf4fc02b86a8708a705634d010fa1b62fe0fe19b758fb90bd21cb69d0c1769e4e08e89d8272ef5f0e0514aaf5ec02fba5677e52cbc3f76b38eca791105f909e4a6d0a7fc66bb3f6409b542b33b10e179c92a342366468208d6f4ea43c03ff6d7370c0c5df2bd83c6b01c892c0a5c2f77b212c073025ced69ded5718fbe44aad1c3f2e18dd49e01e797778196d23d064f5a4bdafbb64236edd4f49e491a1dc634d299817973e6df5bbe060426a1cb8fd028db18ab1fc6c6086a9a4047072739b06c4e7955caf478bd90dbfe6aa0b2", + "11f713fe83526185c73d3f451eeea9cfc4351caa78053cf9c45951581873f274b47c313ff6f22bc0f9ff209020d02bdb8708602fbf72419f72d958d72548bc6bbca4d2eb75575b54144a17ef22272f90e15f748bc32018a8bc999f1d99ac9bc34b0b611efb274ef0e60996d8f679142f6986310663c74f6ec8d1486bb71f87cfb13a042647f17d1a56172533d5f6e41acd566184e54381e973fa14d7fdff646f3d3999286c95f2a5f9de1f50f7349e16d27f43450070b42bd380ac9342aa4e0c83ca81bcf6b3abf99245b348b09474aeeef48d411aa424436e35acdcce077b17c7dd223ec0d94aa034901d19a258be21802b", + "01312272eba4c5948bde250c238e94990fa31eda86c4f96f7c4b4e5e56c39fac2f17", + "07d9d6f5e305d19ff07c1aef62fd24cff87b72c176829ffb4a0e85c25d093f823468eafe07c33e383e38b022954be3e5f02200c98de5ef1e44a93ef126066ab701fd64a5daf89c8d8715d4bc1e1a11ba1b26f7d5fbe26453f4ffa4dfd357b5751c2646369e238ef75154d2fd2abc1321b25894fc3416dc951e1b20e04e5cffd3f016ce5603eafbc6185c084fd1ff96b5a3c082244d112550244b2359e09195efd093e3bd1c8fe966f544de5c87598488a78f425d4cfc4d3a88414269b707ea898d763581c1ecc2b7d891785d6d12572766e8605df6ea3df55fcf7330e709c24feae749eb682ac7454430b68e101cf0fc37d5" + }, + { /* i=1121 cDividendBits=3524 cDivisorBits=2081 */ + "cfb9850beba68ed322f5fcf2b54f9ded33e8f66a7ab1d055ce9cd82e86bcc9165d017929dc2171d7be30742105857d84010b7468b62da395faf0d0a939df092b6355ded11d31e78d5f1443562db10c697da9c453f7289e1267b43be20660a702b98e98ef69e39de034774cb35d18a43b7585f6856d3f9b3caef8af2600ee0b9519d7916cb42afca9ef47a4dc1b3c9412209de9375c9c0e764b2a3b64b87af51b55ab8f82dd3490a7e2224d10e40016a024c5233d2bdb93dece91b8e61ef34ab73e96ac3f58935797561bcaf75d7c492999e4091412d50eb5d2e3e5d1809a3a39609427a3fad480dcf3032726f18db8037ea63b03fa1282d6cee16a31dcd60e3f5aba561ab596d95910707d5858fced58f62b3bea55c64ac698666585b88473c56ac7d789ef797ee2c5b6f9789207d7f36481261f52db46e4a707100387faf40f64ed09ec78c4dd5ad82f2efa81464c625fb09a142b7a1c1ca8e45dad12ff17ce0368c8f027f6d07958ec728424e1d4a0ac8e7ad8a5bc60bf2a6556fa368afcf4603d66575f538f21352260d80541bf265955c9b813ed4ccc3ca1a6c6f350b9e6fd753bee05321abd8b77cdd181b638b128c9eda580849b", + "0189b5e0df16dfcdb6b155e20a1e780e4569b21e2c799830a1f3fa4837f26e0e98dd45ac770caa8c3f333fb4f8eaa951cfa5bef68aa8e716db1aa113e06b11aaa09fd3a83c9a4805fae3d75cefa30090c6609563f8ed99677f852caf440a76ff434bbe8640db8c13bedbc08c4ca1e833f11fff5a03b2121c5434da7c5c25cfeab1aaef06a5cfe90984af7739731388eee57e7de8883f09b07945879af4c39614150fdf0cbe87729906af57bf133fd14c4c0c7d3e0a262a78ee701e142111df7a2b62246b674f9bad8e3fd704d057824f60084c3b2cc205fb87918ce7712c7ca79e0398d9f07d3f27dfd4c4f04badf0f08a152e4edccff5aadc4d330706207add081f5d6e34", + "87114cf9e9806fe63e9b2d4732ee3cdd9eca9719a9ac72ba9413a62b35a842dc3313909d5533f99f04b1c4fd1d3387db4b74e81903b4d5730bc2ca2f7e5afe892e4d2ae7d4a30fbdf653f7629015431af19db2590bf13f4596174ab42e9c5c2c2035eb88cb175b9ed895aeb0311b0deb216627e74391fa2fceb46dcff4974514f479096ff84c090fe62663ed1f5efa578e14fa95e48b93c3b7a1af318c918890e88e9fac70c19be9a23d91e424fa7dc1139747", + "01197437d7b63f79089198986e4fafce32b8b27bbc6cb3b1e2c2914ce8e67105b4a212edb4a9b5ded85e0c8ec95191adb1f65bf2858a85c5eb164cca5ee232f6540aa5753be14bc3287f04d6b2279ba8b3a2452d48f4ad527fdc6e20a8480ba9a5360c1300fbd56e4cdb46f410e0d0976b0ec1e751283a9120376aab38759ce5751e0ec9f3c347daefcc17f3bc33c269c7eca4020cfc6103e4a8568a7a12d83db3363693e613f1fe3cdf66b973c7b5628a8415a0f2b0988f0ec0251a52e170703959489bbfa16b41a0243cc7b40e179054d31175c03c0b143718204d54db2a2da3f5ee49c654f44468f4817a84e88aaae2f1fe02d9e72a9741ea43d24551e856c474ba482f" + }, + { /* i=1122 cDividendBits=2987 cDivisorBits=1638 */ + "053169f5b9d91f62d3361bc8422a6f3f4d283d43789e3736816cc465dfbaf5bb886f0595ab799d17a133fabf060324f74468599861879873a65e57e813fa5c53a7fa0ad8871cc172085f2a1c7435cae61bc16a31b1388961aea48bdade21f8ee0073f73582efeb9f6d6a9b38c0c9e9619531b96e326dcf7c02849f5cba2b15ca9d6314f0026f2d541320b67f32e4fa58528ba22b80dc9b8bb4976e6bd14f8589bbae8ce4432c73ff7f502d132037b0f782698983dfa8cd7f98f672050abdf449c2809fee173cb2d63c5cbbe65cda79c093b629c55a01fffb664d85937ed1f7cafc025cb6118ae3a9b66a5f7f5fe0d1fef68641f6215a2b739bb401251ab5a77f04c4e5ff8b4e8ea346109a66e3317d084c0c26c459c515fbc8a1673871a666094d952c3ea780e5c3731a241be1708473b4df4712c7623c51e9e21eeb318f6c4b1f722107401c0bff6e8a10b9d619e9aad8c351a0a802981328437837bac702634e68d5986161ac1971c4ec48be341baf8ab5468ca885", + "2919437b4d2db3437ba0640bbee69ef31318ac8670b91b02581f0e15870a856db2ea48ef583e4e8e1ad2d6ec0043420f4f0db3617343f6456c7ebc028455e9866a3c0f91e99827b38ec39d886fbcc5fedde526fd7ec8064f66e8374c353708b00e287da10d36a4766be59bf025f6ce174da4bab177b9cee6326060c815245278fd4c302faadd3e3e88d3a57c2f45092005553ed7966a94a854ec19108878434cd2ba787225dc96e7b1f6c7443468f32d93ba2716bec773ac1da2f3d0cc66392f583a93976b53b394a8f5f0358f", + "2058cc8f2b29a521de7feb85d89b339013fa051d20f0477c7a9562bd9a2fb4962818902e1f0237f188877b35d32f9e943ec35865b2e1a867c176a247e11434cacd2475fab37353b46c3399a6ab1893f0aea631ff54ae381e7e5f68cb103a91db499125a05d2029255875ddcfed0aee25216ae79f363a95590c0fd9164521d7970bb28ac4270794cd0ced252ed186607d3298e5f7d9050e9022e3fb3f56b83ad427fd6a95623e86e06b", + "2067a5c0b940721e789fac1d1eb824f79d82b5a6aaf06e123ef1f93cd0de670fd7fccdcebd3fd06d54495c9c7b250d55bf99fe475036033025b59eac88ed933fa7f14ea12eb31f8cc27b5bd7d9b63949655aedfe346a30b4780959361bfc516482c5a3b92e7ffef6eecedf0da58332e14e502c6f2658588ce17965cae03d1b9a548418df0e851d92e69c78c760e5eb76c0b7f6bb46ac27efef236b39f1d4634090f0b9d12edde7ebd7d5fbb6ea933da99f241989ce19e8d71763841efe08035c44a4052e19cc34ec71a16f25c0" + }, + { /* i=1123 cDividendBits=873 cDivisorBits=615 */ + "91dae803acbf2cb1f7334a87fc9884132b78673c4e5e616e10997880b7541f147ba3413fdb0eeff23dba4cf03daabbc12d3213525003f1bf42448d6f405babb5f4437f745eda4aaa2aa8fa2c1301ce1352426adf2e68b434687af73b02ffaa84814adb2c729249d821825ebe07", + "12f6f0eb234b7d0168ca0210c5a95dc865ae576d19256a120d224f5b82b8e77ff0d07969d771c1e576a0fb788a77814471b48cd813fd7c4db0e89da3b591ec7a1b072deb4fc2e753ec339083c0", + "07b0df5c6480e5e663b05401f3ae02fe6d4fbc8913397a7d3e726c7461cc69026b", + "0982c7395174d6d0111b43e4e048eb3eda4d9ece499476234f3f16dba562ab1710fc70eb93e6f98d958de6fa4c57bb3438ed0e95f82af28a7c7ae114f54f51417702ad52d48d84b0fdca302cc7" + }, + { /* i=1124 cDividendBits=2559 cDivisorBits=1214 */ + "13abffa15a6f570b602739e130a374afef341dcd47453f6f56691d318996dfcf99aa4e3e06954be0c65306fea453f4ddeafa1d24e37d10b824ed3cc2c92b12f2e065840fae343922b59ee952823493d9541a477c4bc83f7504121a6228a6792ba0ae63bb5d346099e8cfc9e1fd942a0f9140a5c56aca5d1ab7a86cf886b80099d9a8d6b32325e751a914d05d69c7e6c81c202dd06539e532dd0dd5715e8f85c75d2d101a426f641c7e975eb147d16c25e7319b63d0baeefdd08594debf467b99cdaff1a9a14380392afdbbf721a41ea387c4f8382732b6a4ec2d87f06ee7c7c40f45c3f4a18a2af9b88c4ca57fac848ad3e2362ee2207638f15857c8e054c591715bcc578c9cb5ffd65c88c6dec678e72022d1fcb255c1df147abf75a7f9d32729e4595b566d97d0b624128ec0558711b48360d1547d6748dcf1b9fed558941d", + "37a4f129fb5cee70013711e28aab8af458b1fcc6b13b0a8d4129c13369c4354486bb101df8ca1563da2e6181850089d418cb18fba4f33de1f991f8ff86cb0a6a364c8368a8a2197c8584e2348bf1fca346c01114dd68fed25db0f66e4d48bd55a65d14f06c7c21f6e47d238ec164a2303255f0555109cf0211e4c95c5accec6cfbf6fd8f9c7f282a5414da66cc3209700e760956a1bee864", + "5a80de8e82e1aa7765686c3c0f5e5dd30e6ffc5e266ebcc3ce97c9c0a3c53e3fb94396aebc9b17ec1cbdf7ea9fe091a5f803e2cb59ce82198eec8751fbb178b1bf894cc12a18298a45c75da7f627ff22476c754e428530692c0421d113832f920aca265046594953173017537ec6c765093ddaaef7f59b6020cc539c24ca85007d654d76e7488ea8c43d48819662664aa49116a290e0a2b8715b6826c609822d5d445d61647d2a12", + "25220b4d790093e01cf360e0c8c95f6faca3aba9e44864927b3d8e210439c07f41b0a98ddf6788083268c479cb9c0f412dea4ead67248a7a752d73c2b686600520b4376398b9ddb663582e20f198cfa3826f384f9a7c34151f7c491f33c08ebdeb706526244592cf56c9f498a1b9b58b74ef082c45bc58f64b30bf2e39c40bb693cf5a77549205a7aeebcdda2e163a74624eec7b9af7d515" + }, + { /* i=1125 cDividendBits=2284 cDivisorBits=1879 */ + "01a1fe6be24e0559e3d02f61871bb07b6dbc7d0ff518580359717f39d3f3358b0a928d1b586bdf87906e6fb62aa9fad4ab3f98c9d76d90fdd33b75fe6c798a2b0d5fa7d3d45b61e8bb65af348c7b34b946251b3db23f6a519289d0474c28b35a55ecd1966c0b80d49186f994da8c6d595fc07ad234395e2948636c25b61b707b86a649b8d5021bc2720272c48cd301111578e41203a4d23b760b584f8ac9d71f0e3579f1735c03fa81bd5aaeb4068f7367fb4210ecf64fd040461987058a4cf486d8da28a5af52acc5cf272faed779bd314a2fe3b9ec27e12f246505d77895cdd3a5a41482714f5db6f64b5eeb792517bee824661fdc1a36cc022227e947f0412ff1418983f377350e883e8ad75afebdc1caadfebd4e21b51487c1a5290a", + "25b6d4df0618e741e44a2b7ca082f3215d100af9afe897ccb21dcd7d6714bfe4899abdcfc3581baa555230eb45e1e6282b9d55bd065cd7a68ca6c742f290a9bf25d0db4064264c7f689ab08e1d433ca9fd4ac59accfb6953d598716425a4ddeacf289415b4c806bc815ad3314e4b0eed1de25636e3a905adf0bcf3fa26f03d6de001900180218e913dffe70cb809dc16349aeb9b1bd6baf84cc4bd9ab289cbdab1e4ddbb80d8e7ce3199973ff98f5414a16858a858fa4898b2bf482661028cfa618db42ecefbdaf4cdffb876df364b9aa12da038b347831cc30dd8abc88dc2a4e919f4888677cde6e0ab56", + "0b154c8b90722409b29f2bb66daedb58cabfb2ed45166f11eccf4da43975beb61fd840c7eea70842f2ae8b058b5323a4af3d16", + "12bf88d017cdb8e597a014957bb5a1308824605f4c53cd760bfd3064e9f6ec5580d1409057244c81b45e33c530dc687f55659e3849a300096a72fcb35ecb554a3a2f3e00938fde55d0e21961ba726397e151a7cae8d5359123beb01539386732cdaedce10d8f7a045c8d6e3f39011b0a9526d51904e6afc13bfb51374bcb970455115cf9a40db31d389bd1dbdb0010836708ecf754457a1da079d9a9cdbc257fb42079c01a70ae3be1f93c62bb20e143145e2c24ddff6c8685cfcdea5cbd4de632f992ab4a3ec6a631b1f500ef6185fda3eb041b20d86f9710c19012f2eac807e1670d6ffba8b829b8f1a6" + }, + { /* i=1126 cDividendBits=1745 cDivisorBits=1697 */ + "01cd12d049ab6d686fc554773bbbf0d821d6e08e74fd7dfef925b09e1c775fa447c5217e9743e533e04b448e29ea8359d93ea49ff4d4254099562c5f1ed4bb5cfe1a8b5bcfd27d22e99bb884692475c70bee75ff2284477a918b5d2d689291c6fbb002799743c8a3b74ed579f085ac23f740623d3306aa985c09b5a0a44647b1a0cd7320d556bcd168cc1a2cc5e802a5fa2cbab1bab5c8d37ef43f19d393151f9e831748629206c820b7c84cc131b111e4320f87b0f8bd61efa4e68902391ddf411bff611bc36fa7ec4a24f170a2004aa3106ba02a541df0aef21f", + "01a114145270626a7c71001d84d6ede50e718fd1ef107ae78254589ee0a4a4b04a1138d251646d52966358c062a764070be5d8086163971f60085a036acd60468eb74a3bda55d4794c7ab4251711eb2a25c1c510376736657bef7695b3ee1e662a9f8576a6d5359a67e2f1b117c908c8acf75a9d7bc5fccbbc57edcce125e5a5add8670168443448d5277982090773049ce96a1fb146c2a464c4e70c3e5474d0613ab56e46ac378dad8a578c04ad072c9931cca3ac6ae5d71dcf9c06f9a5c42e223c762236d269e7720e28b091032559266fd602ed", + "011b00fe006061", + "0140fbf1606142c187328dd62396abceebf879eefc01679bb780e20c520c7e56adc2895d002e861c58f733f46a1119b109761a89902d078dc90bd5776ec5d98d695616b1cf4aab42dbdf8228f9b60a9e1f0e39a5419ca8140b71b635d30551b8645c6ac29654c8f64234ac4e6efc1a643fa04dec380eb99cc4f1f0b5514b6be7ebf1aaa71de9bbd63004aeefe7bccada218675f2c2e687598ce5541d2670d3035ff78977eb3f8766db403beb1a0ee6fb739f26f88ac78dbfcc210c5aa170a9a13cfab49b2d5b487ccf80553c35b562ccb6297ef652" + }, + { /* i=1127 cDividendBits=2186 cDivisorBits=1316 */ + "02d4af708225d8cb18d2eda2118a7292dd594467cb5e3f78395f64f8417181db4755711cce74963be99a013d1e9ffec6d1ab2c89d8e37468002a31fc2294405e0cc6323cf2306cfa2f4904a70a8169d28caa9138217c8fe8a4a22df9f17fb796f7391adec475bdefbd15b7c8b94be06c0d66db56940566ca60a0828aac967ef38c0ddc76bcc4aa526bbde9be4f65e316ec5d41260e4abd713cbd7787b20ce4b246145dd6b8b098741eb7bdfc2c7496ef43e0ae21c75511821f48a319a623be363124d072c64193026c517c5041a36fa6be79da87b703eab94a4b33db72e9cefbc369ae4256c3bdb421341dc5b0c734ecdef07e0d43c01f4977a298331d47c279c2b1d95a11d3bce15f88d1ac2f7570b8d53b", + "09cd1e11770fa08dc0178b447c53c96016916ec9f2263780f444d0da3e2e82e063e26b5b6542c3d55754310eafbca325745747a2c76b50a82a110daffbe3cd62e4291e4dca9258840ccb6d5064adf18ce49c5fd4dd0179f2fb2ba8888a3771cb986ac4ecabd6ea50a9ac816296e11944d1d0e69a7d164a6ab709de93d260b1b76692798e9c4b63a067669cbffb95fcfbe3d6a4e637d503a3934741f8b0d874c5c65742487c", + "49f028f2a297f1216601319a656f1ecfe5d1059ee09bc9d098d488e2a9345d38ce739a2930b87d795b543a2bd12e6d432d639843b7f51370ac261163e3d059d1a8b67d6087c55a1ace6de96df861abfeccfb4719c67108cb000b3e182ecd9839762f2e62d58dd6a20e594ae5b3", + "078d6faa44b68240f4f6e83c228967df2cdde1b66d25dca1479e3a1e36ad5891e575fc4f613fc088635136ae0882f30b53f009f9943ea01e870e3653d3d6661f5a9563cce1bf36af077948299b6ecb36f4093431bb294cede6d8a9c026187d12ddc7cce5c5d17699f91d02f1f25033669acfb855e08ec023af9bbf7676478b7168808b64ce27584c2eab8254266ad4f089e61f251729424b947656912c4849c69412b13a87" + }, + { /* i=1128 cDividendBits=809 cDivisorBits=517 */ + "01abe167f86f512a9c26bef6c760d730ca9868d6f839a560b4dd97ac83df78b2bdb7f337d58f3d03ec4b29c6c9fcddecac8dc1df3e9ec96c75ad69ea89042c6ea70efdc6ed5a2377c2c46dccb25909ecc01c0798982a6aa96f758f5ccbad0187595ae8aeec52", + "19b60e743924cb94e8a17c8300ddd6fffd636258d648b69c6606fca4bdb78889f4f238c598545b484e70c28354505f3ef8f5cbd1ac3d425087cbf0c475bc8453dd", + "10a44e63559ee8822ed7a5d97931ec804bc3507f5919c637bbac9295a3faa6ad7042995bf9", + "164848672c3f54d64adeb074c47e8afe7bc882ef3897defcc0e818df360bdfeb8b15f08f1d968b3c0e1a5c4154183f130702706a9d99d93a3a2fab966e6914cb5d" + }, + { /* i=1129 cDividendBits=2003 cDivisorBits=1629 */ + "071ebfa9358709b50cddcdbb165665056f5035277e206f6aa652d4dc8764721bb231ed640197aec22a77cff1853ec087f50b19dd39a6554e80c76c78ae44428bedbffcf60a53ea8663c9dafd19aaec97ade4ee14542e16fdf2eb413bca38a60a884504ec0995a8ee3be8c9929a7084499927dcb2d46d1d4a97e7888835eccf1061988926cb1df37db112b90c1bb80fda497e6226d82d5321de9370f4eb1b11b26a53094bed4a5930488acb88badc39ab950b53ddee8de7671e10ae25242476868d7ac5c2a7e9fdc8d892e5f93a564c56789a7b762ce6f18ee5e925ea7b91817a4e8a54a85e4d7b8e495436bbba9d964ae377c87e180268c66e3b55", + "0b9203d07c9985c5f0e4a6d3d28ac0e8f7d58361cabaeb7eae0c025c01762e5486abaee81ae90c8a676593b3ef14811035e6a784c262e1657387e545341b7ce3fea02698a4d277bc71adafa1f9c7dedf347a9a5dd2d0db233d70cb0eda78d6f9dfb732d777e3daafbd19264b75ac46105ede24c2e72efb83c8585dd298513e045d37986544db723e57304b33f57081c4d73f4323c559d42c74d74dbb8eab0ba926f37b6e3abcc7638dcae4df14a3f87c13d52a8c88dcc0936efef184f2f3455583277da569f6e70bb93f5f25", + "9d893040ce3af0924afe5ebd7db33a2853c387e5dd55835b275ea15899327061476fcebfeda9bc0546be6776b74d02", + "0aa6c0a12c153dd65ecc0f4c86931fb00d08ad6282b99c1e1d10457d19df8bb0f57eb5a20b9cc65d8e8a4fb5a9c075b9dcc9b38eec656a79b221bc2a97f1f3c16dcc7d56377d05376a78f0d977d3ab0e51521f7ff518df8e0cc05573ad660818daca763d548a38686b0a7144b64c032209ff2c68440fc8be38b42bc32dafc76a7dd00dfa5ca544ebe059216451f424ce66e3664c66cbe598de6cc0f232a8c76d7665eec5a48f305a14a923e7020cb12a93038a50c1413fc72c7aa0489c877ac57974540f87ac4d8e32de5c0b" + }, + { /* i=1130 cDividendBits=426 cDivisorBits=85 */ + "02db37d98beb6222c8301bd671409a6c9e41890281e6ad4631c1b5ef7935893ac0c626fbfaad6f75968fc70688fd035593851ecc5ce3", + "0342d9d4ee4a53f8ae93fd", + "e038cdef4daf7b89d64527644cbbeada1e7d6b1705805c87f822a3bd440d00f115c09854ded691f1fc0ec9", + "015a28706a2a857796553e" + }, + { /* i=1131 cDividendBits=3545 cDivisorBits=3364 */ + "01bce9e83e41ee16b4d8ad8feedd0b6207ed7b01ad05fed98c865a89b56944de47308a5b5d7d600793645e299a0ca8f78b5b470450e16844cbd580b7aff2c74b3206bdc6da5bc4b2179eeacb62b391c853ce8fe80265f24d174113daee54f3fe932a71f76dcfebf88adccaf6b3f9cf46763ae08854ffa6d7d71027e0665546973fb0198905b279d4adfc8fe4be122b392a2bd6132e92756160bd7a7830e0fb3c66377f163d6b927f6dc50cc33c22e99d82c50fb5d49e622d4c1863ce2062bfcc32b01d39c74ece5bd8b7e76a71babea6227e5f75fbf7f9f9010e815f60e2d53376db8fdfe3fdd0165e2d723b2817ee8107233c4d513e57d30302a600655d678d2fd09028127971d75920cc82a40ebc66db4bbc9593ac925cf826618f50c5930b350c0288282ec39c8c0c4be41529ea3e2ccc9ce85552d7eba6024f3a825e9818fab465087a855385688400cd1e45407f3f7316ad6aa9c4d13729e2c8a47483f94920c0a5df682bd9c9c8d5280a8fecfbf52b8e34fde9437df43f1a30673bef6e17e31e0e444f77dcbd7c345d239d89d841793dddd3bf3097c9a18fd32f934447ed8f960c2880c9569fe5a71f4ff69e77f65d9b843046d83e60880ff6", + "08d49841b2e6f6eeae18a4fdf88a443e7cab383752ab86af0c7bf80044b0f77981322cdf8156f0586dbf0a8be4b454d69d00b045e5075b6bc7b929073c9a69d7a7b6fe67538e4bfd11785e460951cc6a16103aa2cb6e1c159f2bf7e4cc9eb87e0117da4d8e7a885ddf9eacc723056e1a6e05998d12c6fdf9e62db4dc7291ba005c179bf47bac91258f5628d7d7102ccdec10096a9696d816b5c56e7fcd74c9cee1ebecef72f6c730a5621360de42a82efec2dc34322b8883dec707128a73cf9accc7339353eadd0fc67855dcfbae6dfa6118581a2340150ce988a276e41525c10026679205bf5dba7712b95751b52cf4d06076d7903cd99c57256e981ffee46ff83b17dc64b695fd08ea8fd150be5906de59a684598a40574468616dab791a8285bbf4bda32f316a5f68abadca6809771ff501c8f4b612b4b17e5aba69ba6494addca273a04c036e5ee1e7922e213a430536f281588fcab7de1d97311282c84309815214b1af5f64c60531e8b79d0c9afa910d9d898b5c892de8465042ecb8c861d10a976750b1be27082cba582a246877569ac85dd148a15b06c32e64bfafd963710a3dc5", + "326250c1f0df76257d5709155b6c2c9c47526d14556378", + "03fa80872d26b48b8d7e2f0254d437e62cb8cd34ad467c6ee2127146a74f3dbfde5e48b5576dfc60a8b55f2b1c439426531116501ea8c8dd2fc375d9ae1ec68a66f3bc9a9be1c5d26dacb3f747afbd4c9d1de9ef96605ec79cbca6f266219bc149fdc0b6c7fbe323c2beafbec644443c63f95c829bb124bf403f81f8cf201d943e37a6f04ff20cb2d25a3eeef1953437bc3f37fc0ff24ad5596508c0936392eacb775d86778c7e906f89fe5eb03e7527f653a616c7c05eba8de49210dce7cc8ef787a15389813341d00a5f76a507ed69bc73f8b8bd1e1697917279df1195fbf8ac1e7889f1284375486ffdb92c58384ae9d9df0e2d7f3ccd810b057af794fd5a234f49e084101c47fa09b39660daf7d2be5355726a5cc90f09c18a2d42de727d0a7057a442cb5e4b609e2f27a8fcc2d301c46cbec7b0131ce66b43e23a295e33cd65702f4b5c9807415f92d2a3b32b9c9fd0bce2643ee02e2bd2e1f35c3ab55f3bb1d772680611b4a6614a76f409593a6de9dcaa33ef55585e513172b7844a79aca595431221e950e462ba441a48d37bb7fc8e61fe1ff37bcd56b0c8e6cb25c0cf876eec9e" + }, + { /* i=1132 cDividendBits=291 cDivisorBits=171 */ + "41f8ae9650ce1074db34dd36f0c6c46f1413a22f714f6c16fc7b2bdbc637c3d870e8c06f", + "0525e23e0ae4a90818a5f86a31d123cffee6bd2e3354", + "0cd0a3eb7fa1daefce0cb0a4b1c760", + "04d7d904af5b5287f39d39dbf25ba69530af489b34ef" + }, + { /* i=1133 cDividendBits=150 cDivisorBits=8 */ + "3be0fdf74a7cf377256228ff1dc7154c1e7063", + "ee", + "406853dcd13280802835f42a131f486315fc", + "1b" + }, + { /* i=1134 cDividendBits=1964 cDivisorBits=186 */ + "07401f1686d894709c7286423a99f49fdca46a8b1a8dab1c95b26533f09997a1b7dadb4e54cfe16f2f71095e7065293b2e2c3ab2f3cff85eaf44866933c3a9cd917abe3115b227f30637be58275e1142eef4b77ae9047748d7fce509100f73af1cdcc318bb5eb5d257433466c598b23f82eb94d82351924cb1cdcd218cad6d74181a694f8b745bc58073894dadaaa814a1a88ed95002732152a31f0c18ceba6d68c20e249ad58238897d01ed6fdafab9e24ad07a9b3aafe4af6b3bd4776af01e09b822e7f17924a07bcaa06289f2167843f54c915853bbd9a193f968a2e5975f4f58c81a3f292eba324526f20505fce8b78c5d5447df", + "0328c6d880591bdd6395e20c4a10714165821b0e4b0462ce", + "024b83674be3a6abaac24491e18cf38ca3a96aa946db133bdb5ac173fa94e6f0b35503947b477fe050ac3a95aeb7821e48122bfc2970bf34f8504f1d14aa78acd1800e61ba1e8565650de91137564b282d53bb1329e5e95b53ea1395262fc0e102be10d0e4d9440250e526ad7ad14c358633687c4e0906344cdd4b3669beaa315950292b858e686898e76ca08e4788ac219664886fb9d2845045bc760c6594765c23eca6228d0c9fabae15d3a324aeee6726c9d72e3dcdda252db1a64a7a9db5d2bb546e77bf3aa54b7e22007875302bf756db9cad287dd2e0025e74b85774", + "02faa81ad4995c608b5ab973aa2fd8cfd5dcce0385b38087" + }, + { /* i=1135 cDividendBits=174 cDivisorBits=56 */ + "32f93482f5dc877f76cca646ae3aa581bd22db86f187", + "ace5c4f66828c0", + "4b793ff8f114256c682f86f054bbf5", + "8fe2c39513b1c7" + }, + { /* i=1136 cDividendBits=2966 cDivisorBits=1391 */ + "1f9e1d538dea02e23248348e72cfad4b4fa58970d93cc3a1305d6f7004eeddb980fcfac4aba380db98a21f412a39bc7e32a04b0f0bdde2ca744f650c9695a7f56221a4f5d55d0ca33c68acba9d20f33f221cd5f8bd978a11085605d7765eb6369bc79248e3500b4877363adaad77dd0a24ef2e3da7a86c3fcea6695fbd887652f340f63b114f9a417224cb397fc2d5092d63b747e028511d161d67778c9908a1ad072608c9939b0e19c63b60b64779f31dc01bb32da466ab8d70eb04e98f38b4e7c4541356fee20cfda3393730d34e9438c1967b69a916958cf333628863bc2e03352a59191d115e6f764d6669929f165e494e17ea267b79ab3304af9008c1ac1c09c2cc23a4a813141497184baa3ac6a560f9733dac663754d5a48d7b324a0158729182393d8586917ab9f56074b42f8b5a697587c24f69dd9245cef31d6a3964d48b60da8d3b9aabe450bdcba284eb6b3e3b693bf0f28965e47a72a7e3b0b9a1ad4b9f9abe656d2a9cfe250c7e93d115c8af", + "1ea26a7dc5c705a5fdeae0d6a5af61d5f5a5d749a6c75329c7474ec2187aef5c8cc271983d6b343511e4da89ef291959486fbf2e98f7702fbd8a7b6a89f75d3580ead79be5337e1d4e6feea431c8f2dcb66e92ccbd32146b7e0d8724f107801679a93266fada6582f470adf77984786d2fedc1de14dfd656a50edde8ad0845838faeec1a8fcbcae148c80584920a8c87c5707ca15ee79b74b8ce73586436b40ddf59bd9bdc8333907c322f5c89e5", + "01083758b0acb56826c70ee6f454fa206c116888930e99a087aa6d5ad7baa41081c574ce3e460bc2d1163b078c4bd38c1baf15a88d8351717e54a4c48736e07e7980bb226807de49277453da534c81b993a284ae41cd34fc8de6bb4b425179b35b71d7ee55bcb1dcdd1c78f656556590621cc12115cee5ae37e99134d0866a77250a39e50f2dd9522cac926a07607cb8f3c6c5474712d1544e6d85eb18bfc13191788262c3f6882d39eb2ecfd47c78f6198368cf0c012769dffab38215c5a9417a6f0681c360", + "15ab31c082b8557f45a1ce2a02e4887a3c0edcafe31740d6e02ac298c548b8af45e1f1ad180662afb255ad731b4f9008e4289d307375f26cda585231ffab81996d7fbc39225114d11f6f87051210f6ac493267054258bddcf9a5f36c01bda2bee79ad5bf0e1bd8bb480c78d1a4e899b64a2146f4b14280a6a87d43112c2bd42900f5e1cc30d07aae207a14c22689a541b771cb9eef917159c968752a4375cb323aec58c5d4b72ae1bc86b6f3a3cf" + }, + { /* i=1137 cDividendBits=2990 cDivisorBits=2426 */ + "01f7f820877d98b6be32090e0732912559f285b6c414955b8d557c6aab8ff0928509b0aa56fe4364d2e45c161ff9c72362c1d61abb725ff0f196e00c5706919837f92a46737f0b75be39e49e6774f8e8bfc5be1a6ec737800b7063b443d0b351da7505e64da31b09d0b6832112d5f10c039a7579537314f2501d0386cd1394e6e4351e2769e576321c66337723d65aaebe6100b78fe692caedca63e55d5abf4d2ab1fa364e236294227e52dfcc3feb7619e169fec4b99a6779e6d1f902681311e2d5b81537ce8d5b2ef6e9153e9f9c204ee8e294df9e1eb1e1b830d5f2bfcd16699f80ad7612213a346de6ea56206b449783b4d58e1b3be33681420ab776dc9b04dc640dd9c51f97ca60ce8e3c8ddf60b6fe5f742d92a32ebbed517e37bc8ce5adf0de47cf885b834b0302dcf9cde874d34d59ab8ac8da88c578ca9cf2046038e80c04b6e0d1fd9e0d30d7cf0333ccf8601aaab124b9e9dbfddb9be52e07a9ed9304bb6021a1f89b5ded035e47a311c71651b22e96ae", + "0239d5df0ebd12a283fafcc6cc6c6e4ec1c5edde0b579df79e59c84dfbeddda571bd2a7d25e60767fc9a34a5eca7b05e4631f5f1a0f4b4b5f7e3d1453185353c4a0871324bccd060092361b9bce5d0a52746013f16b5950e1e5914ce4ddf6e2866c1e38ffcf6570a7924a32cb920a2ebde35bdd43ec2bd9900d97bfbacadebd7eabf082fef0b6f3b000febbacd2c77df641255d1e3df00aa697718f14785f90f41853b0b872963455e994a3eb292aa15e750a7d3c76261c8956f16bf7482b0ce5e01c3faa1ecaaba2820c1eef468af6921e702ca0b9d5e0df8899ade24ac5b03b2bd0ed80556b498c7311527a01b4af83637895f0b24449361b429717489d3d4d01520112f71605bd203c2c5134c17f82d0b5eda36f8f929f0a63eb54de3faa0ae29f80da0e98290ac66cda74d5b10a4", + "e268d1ad86cd303b68891662d0f2f46f5b0b35c67a4d340a2a305949d9d68a11b7f29e17ecc4ce4e752aa89eb506e00a113eeb6d228d7346f8d28d0f8e491659687ddd17ea05", + "dbb2cba083fa88619ec790b3d80f916e80ed6f2551ebd4811d6aa1a2465f2b5f183dc0e34b11b30a8dc7304846a79b10d63346c933887771ecc8b26d9ba498124eb0ef5afd4541215399801d99129796ed49f9d7406c99cfab5d89a8b208ebf78c6d1e0aca4ad2b48e7ed50ebb23e3a8a35620ff3f2cb789dd9a9af33b61e6f00cb351c9a336d21bd221d48df7d968952de245f30c4760e84fe45e96ec6b31ea5b4aa3d4f6a7c2de471216460ac39989f2c5f87e20febc412c17fb73d321c6e5217abb0fdcb2dc44d739eb95426b6e7c68a7c1c431ed9564c1d75b94c04a568d62711abc22a2ae305b2af77db18bf5cb7e684ec91cd823231d7b5614fb0ec3134756e3b3cfc5bffc20582da757e05d1a7955767a928860b21827349d85d5e69e4711241c456f7b2ebcd4b7df755b7a" + }, + { /* i=1138 cDividendBits=382 cDivisorBits=318 */ + "3c1fe823acaf0ed9da83d77a78a31cfac886581e4455bc80951a0592ae694def98de5f711758813df58e45daf315f46c", + "2806562d84873cb3bc4adca7c3f50d847be990c31df7bb33fa8279d92735d3c371a125bfba2816d8", + "01808f487c941fc216", + "1f1e48d92c6c81ad0be679143e8fcf1ddfeded94d28d52764f1abcdb41e0f21d74c3339eee2c4ddc" + }, + { /* i=1139 cDividendBits=4027 cDivisorBits=3409 */ + "01d6231ddad1c5ec538fb5bf28503b48a5346bd4d63482631262c29e6d750f5fdae3b863b25dd7d379aafcf6fbf1b670988ce06eae934fd8a8a49c019a2ff3e198a5c6b6b318fdd9eb31dca339613407eb1c15df9ebbbc6f5c59abc9ab4a551510ac3533c0c2f250d0745a752978dbe26a038799e11418411bfd74e42d8068e6bb6da74647561bf9cc26794ee02d2537c128c7d33c079f4c4783389c05b9cbebea7228c7ff4f973b2126e0d0e8d1456c553c3e3273fd0b0efd8a399fee10f7e1d10fb1876b377b0a10871f2b0fd0982b151b69cac40cd4001cfbcf9bf71d7711df93c4b3031b2a1ece2721c8ebd9c43c12a5e410ad72475fff81308a35e8e2ee78c1a9f59a3ef68d39b80572c522e078e2875778f6c86760561a4c6d48b1d92ff64c5399bf1bdd4b8b734972425b84031a4311456109e305a5215cdce918388625de59f98e1985571956b38d31ec8c020b76e543e931e34bd607a9a718ade649c128eecbf99b5e3be8a8819a82c7e7c9fefc2291d17bdbcba98f4cd01a48dc3304628ffca018ca2c9f0e0f7373b7c58df8f9d7eb04d8ce2801c144942876d6d02d3b1d7ca3a6f7cec23501e8bb572d0b47434e1d989251bf098b15d40b018aca1dc6e1912876fa0def474122e6b46269e6de686d32c4569a9b7074f428713e865561163cf3051d15d00f061623f58ffee5fd37fa2b52e8e2", + "c7f8593ffce0b9e96e9ab4e4b03f52f64a4c43eeabf04466d9fb77c59c842fad93a936f34d57f5be50a08269667ff80129d91e12d2bce0a44dbbe682935321281629519650782a9fe6f86d7417a400e54ff86ca7dd7d824700b7290c6e0186962cef2c4cb322a49a4cc6f1e70151d8eb2dc96e00c2cb206fdf6c17d79bca19efc62bcc81c27ca43fb87c4765a301ec01b404cc0f47a087e1453e12690a153c27a1fa08be3e538fc77c8d051dd1ea8781c4ea206268c9e9885f1506b82d135bc066ee9371fec08533165fb1bb151e02a1e700e9c75d886c2d513f0e1931332e4d454160c42c77f1484c95c0282aafab71db475a8c7a756d7a231cef9a7c37dc012bfddb2431c298d8a824cc6f754829841a66303f623c39cc235b77f3ceb241adb8de020c5fbc9d2eccf85072400641e4111d3e226742fb21f981c44fc08f74929fe39c8908d7d9754a86033eb7e6240b6eccfa9bd35280a18087bfd99488d9ae0fd70f21396b99a10c879e7bb6b0c0bdb3059629900fd2c9ee7de0116cbec8863f31bd591a58ed32c588d0f7afe4baa92d5b1d911569f6918d52f672bf940804b00d9fc89e520fb64d0d", + "0259dd93227e441dc91a1336d5bbe8443a8c1afcb5b847510313f4d16f2e0ae6784dbf76bffeb585456ab6428fa457f4c560c9438fc3f7252f11193e392be9208fd6700daeeb25a5efdd8ce9ba5a", + "2fe9cc44cd763fd3aa3e23bc0a34cf845bd21cd97df3813ef3ba8b5fd45849d1de3b151617b8573f57dd423fca499057f60cd80d72ac4b4e188e4bb1db3cb4cd3190e75908c79b6e53c5fdf0cbdce554d51f30b22e690d438f83293b6abc58423dcebc1ac2b727d43d949c383aebb8b0be9d6ea44f698a11b896f78058345905e8edcfe0bf039cdcdabb0bc72e3ae1650847a14d739fde1fb5a265b843e644081a37a4399a07b6fc1bb12ddaf9c5f1a83eb00436cb0c80f977eb0455344e3251616692f0845d3b3436ea3e2418e96d34e9e814c7cfd85ceff1f5e6d8fb6a71442a8688f259a39edbde4958e5b4429cb71e291f1cd1a2793f9348d2f89091fc60d931250eb8464c3a84f22c7a8b9194ff9ae11af7e71763ccbc2920caecbbbb0d342d17384f5068969989d248cddf240b339c79a41f7589125a6230878fda98ff964c7f09c27e12234f6a2727da16c22ac8ba1e713d241e15ddc0c07e40401ca0784141ea86fc422a761229c8bf34413ad115e0eb4c461c3f73f9e3a7425175c9b6a35b5163852bd4f666442f3420d8b1f125c364697d0a35fede55413cb529144cdbb075496df46b6050" + }, + { /* i=1140 cDividendBits=339 cDivisorBits=8 */ + "0627b388b3e25bd893a1f02d188cc2a407810cf8de9842defec892d691a169c387c8ff155182d9c07f1758", + "2a", + "2584464d6d022fd2c0cedc8095a31c49524f8c054cc4a3c91d28114c9c39601584c91efbd872e61b682c", + "20" + }, + { /* i=1141 cDividendBits=3796 cDivisorBits=3181 */ + "024feb06a3abdfffd1d55fb9c31911174c6557ccd91268ee4f287f4620ce09e1572584a05c632db7dc51bc8201111cc428316984a20940d2b6991402cb43f6fb09ea232df96e7a016e3deb5ecac83dace2188efeda17ac15cb816a6ef55ffc7eb2f4c3b60287c1fcea254a4d11f338c767ecaa82e9a1f048af60d0d1d77147d0436334e7056f7272498d33de4f5836b6c7341d9fb10bc225f62426eceb88dd9f8349f1a43fc095d3072d5b8e97ddb437aa7f495c3c914fb742ed172abc01305d898327ad960175188119d7efc85cf3fc27a1415c0ef27fc5203bc70eb30ab652afee53b81354a56c5b899e2875a8e5b119d1feb3ded9a8852782caced8b42f03fdb5297327942eb04eb68833dbf332f331928e55bbe507cc8d80be2019e051b07646fae7a149cb1dd6ced59d92ccea8568441faa3373c969e24966601793a4b5b386dfe9be58a7f02df04774e96f8fed6a6e53e49da2cf2be86845d4a7398ab6c2d19fa863dd69ac03f935b03dfeed52f09010a2975704b692fee9f8a102b8ccc15580d0f88d07805b07bf4507cf368d7fb103fe4748cf073d1267f7745490795404c6eff78212d7c6751bb453e4537aba85ebe93ad1791245a773491e87c48c3c5622581baf6a4fb79e2ecd0e65673d075918ba41e3961b15fa00", + "05cbc82344462ae98e1eea6112638a91aa6338433d258767b064d413b95d6c85699dcbb96cb6bb3ef904bfce2c9851110e0c16a0c9b5e24b308d7715e3489602d31a721aea9294ae0ee2654dd1429584308f3538227099cc238c9aa1e3893d84af2fba5a561894dfbedbf254e5b4ad79abb999fc7ece1b4de7664d8fb9fcecd857acdbcf8e4bbffc2fb6f89c7e0caebdc1e9c74e04e0c75b2117ee5a2d4f511f0d548ef7759d36032916d782ea941c9a9b5116dc1eed888efa0e6a8fa25c9b23fec0a5e516ef3ded8845f254995762231b90c34240a61a7746e510f338f0c3c5eff305581393bc62300999733d1e06d39f42e7dd593b68aa193eb0bbd7fbb76a7a4fdc9f71a78a770b9f9e2defad47ad2921432a1f20bb7de95daf4bca752e425a915873233a7e6c9fa03a2d95dd91ddc6357e284897d3af7d3d7fca78447d68801dab9cc54921469a253463c6e9658bcdbe889075bc9a6270721061ad5724a6b3288d3bf69c080bc376f3dc3eeb7ee63f999bb613df36b6f3ad913889c78e2d38501cddb66fb0e6195b69c9dd32", + "661ff7a4f510fa260e91b5f765f33e853e223c5bfdbbe610daf2c7474b432e3d21c95158ac7d4dc6c19c68d6bb3d1c0b954a26a718ea8704a362981497c8929fd0382bcdbe3f82c4ebaaa6251c", + "c66f1c12f192929292a4c0ebcc1e585e80919fdaf3e265621d39e983356e3471efe0682cd02bce4971c0295fa745b269f8dd1ba80674ba50c7269af8fdb052aa7d79487108405a00a82f683d97c2268f374c53b2b38158653b2b23587d671296b68ba0a89e22617cc18051e0a2458c3798060540c0bed9fe561222d21a9de39182cf2f6241eb1305d34539f0a7d8fbf7c54251fbc6f46f4cddd4c2bf24ff788123531dd53c94d0beb67676b31763128d41c21bb03e72114e802da4e2d178c4cd4194b05c5331cae51f9397f6bc42ea7292aafd34e69869f20a5860949786d60a3fa5ca103c6c0781505da2b649a387568e5fc0ca5518c5cbbfda03136d0a83dc2b03c1a3f72e248314ab92a38b8a8cbca9cb8852bb3a1de51afdf6dfe7573b99b5ad59774c972cb857c5459c2f5aa25a755cbeae20c05b6b7d518ed0bc7002109181d523beadd9bdf01e49424d38b99a938ac8437aae574deedb98d9e8a791df136e84544c49dad6e16d0e26d90c4cad95b299fe2691924a7dbdc58ccf45e88b056212df4eaed9ec9db99d8e88" + }, + { /* i=1142 cDividendBits=2009 cDivisorBits=660 */ + "01dc8f7264dd9c3541291338ff5286c4d38647557595f7695b549b4ce5ca90e0e096e2ce43bfb2c0c19c318172d68c81f340835a77530c1fe319987a08e5324c24fce4b0547af13e8aed08ce618da22f45d769f196104cffeb967b8c73b59d628b81bb0694c8b2918e84b474e25f30f8484ddd6633c7ea6d894e62181028fa18063d7f6db97908e44d7d890370787743459a6200084274c685840abb434e606ac2f7721a7be52c224a6df2d5ac035faecb4bb751578f6f015855ef0b0ad43d63556faa0154583decfc010d7afb99bba6ec85ebebe334ad4f20537dce405ff4ba7a3d8e938657fb89ac85c26f7c8527a921c457bd264dd8743a490456", + "0815f37053769378d673306be1abbeed0637238963f55a406a874d747a870a46ca7a583bbad69e39b00a6ab1e08391c6ab14f6e29ac8fa2c783f5085b982159291587bbd4b5242b7c9e7611113339fde2db450", + "3af0364233f2d7e27dbbe54fc7fb219ed1d3e6bc8a6ae3fdaae4c2ec0868d9e2902505a59e6fc8410d60948121945c89564ca4b852ed548a6bc6c7bd9d6a534faedcbf4bf603c0ee3b8fce8cda89729cb48a62e6dd73553aa66392f17d942002c6b7eb0f085abb79e3d1588bfbbe96c98ea1edd6bc1656bb0af8d29d735efb1ae499394dce9e6699426f3dbb936db225edf668f0dc788a4d0ed74ee11c982a50f62ca3168af0c516ec", + "3b9d9274e91b957d63693edfee3af919a53668f55b008c676d5a80b0eba17a609ccd8d58e4899110759804db6a56483b8b24d29a5c7e1cf786aa5ca06ad2fa7a7005d45370d13ae4665fe6c79ea4b917ea96" + }, + { /* i=1143 cDividendBits=1484 cDivisorBits=1198 */ + "0a2f9078421f640fb2408d1c513ff8f2ae45b79027d61f1f5c14a72338f1b02e33e6249d680a6b65f188224572e0294a21c4c4ae2a203a571e8b1b3a46f61cc9efa3c0d622a94f939d3d98f876e752769944129cadbb149fd541c81541fc1b808b28373f9e08afddc52cd44eb9013d2bd8fe4f7048efdfedcf3a5d515c62efce5d0331239d40c33732a5775ce0d914fe091b5b9f546ce1725739fa579a3e20ab542f5da0feaa78f677858d3b7b08f6abfb133ced498453ddac2c", + "39e4d2ae9412069ca78b25ec8d138a0133ec70a5dc0994353810a38c7aaa282d69c17923f0e64aa39857e4ec86326973db14636e3efcdb95b36461c8c005e2693e5a157d709d9ef343474877cb484f83bd18933eac1c01c74ace1aaa41b9d28d9c95265f783dbeb560d63c3b721cc02779b8a7872f63e7dea96bcb4a601217e94fec5502c25eb415152e51b08c40c689aad2227c7936", + "2d0a5aa325a2ed95dc1ad44fc81e29e27802e37523f4da44833cb853724e41051265bcef", + "1e6be1c4c66f43f2c5416e11d67229c3be281f4b78c4ad5c94d4ac984fe04cf3b4893e266cd603807a3bac2eb10ca9d7d22a91a4ccfe114d9f147060cd4402daffb7b166f895722b9d4e58b5161708e468cc9d40611be7d3647277f1597aa1d378da0cfccf3e5e735f9557a3d1f8ff475f4e2760c65dcd415ed815e42d7499b1339c7bb1bfb460b5b02303c1b9345bf70e531a56dac2" + }, + { /* i=1144 cDividendBits=1414 cDivisorBits=612 */ + "393ae85462658b6c0f3b0a86e18e5b9b316848d5f1d9eab2b0b61e8016a818a887a5275fd939d8ef567055055a8bcaee6e4d1cd0eb0a57c4b129ec8226742dfa4e2ed5728d50939cfa3e59e6cee7848bc0e4b9ac88b435c790880abbc799e7c410ad25d113199da9f3641aa7c9284608447400757220b2e0c49070088d2942f9aab5c3dbc938b7adf0235ac2ff882ad00f8dd468e4f7bade7bc62c648b7d4705aee4ccf409ad5b7e57f0bce61d6b2a4ec6", + "0a8827850a2bb80de9ff4c47232bea298da5bdec9a20f4de7bb0cddc6870d1cb4e2f6bd018bc2eac31f8307597053ba94999a7c23791330df6943f9d2ab56ff9cf022e3ccf1fbf8ef15e6092d4", + "056f1abcce92bdca489eaefea00c6cb2a8838ef77e4838a1a7bc5bbc54c1ec9adb488475e49209bd711e00dc016327d772e89b79740c118b11ca5cda2df8b6e1f88bfe8b50d3308d712b627122bbf8f6d00c72c3023f63265b5057883ba1be7f5dc3245e46", + "09375178634a1212190198797b563f1ac0017fde9d718d31159fbf537f767197794f76728ee3fb31ad1b5b98eb2d5df449269acf4ce3754e316d312d314e5024eb1fc584d977c5d706050850ce" + }, + { /* i=1145 cDividendBits=1311 cDivisorBits=684 */ + "39f157e0ef3e9bede078d29a2573209d2e7c9aa4708cd5f955050da433b2ce3979560e7c5704fc1ee9359b40e237c36a22b4309d8c604bffbbe7c2288b0cb80479a543b15b657bbd56b15aad098877d8bc29c11b7932e8f4754ba8b0ade734913ec7bb577f5b6f48da233949eea6876d0786f9a046da4e6d735232141042705ebee9cb02b333a3dc3dd2aedd73d8e7be4989af62b5e76a9b39d468e9901512398242f988", + "083c6f3ae6a9ae4f73aba313a3b22467bc225a6410a649839f336cc38e7bc02e92c7877bae91210375c9efeb5ade89b6c12e4859555e17bda52aa05f8861361f1f1b3c576463fd13b9b3b5d8705b96fddac385fdca54", + "07090581d76e0991f3c2d5d890df03e50d051789cbf3ff3b908de3a57394ff78c1e15d544a1ab7ffb7dfeb1933355acb84539f70bde7cd4ea4f45320bc71027a145adc2628ff2461e3e2fefad45536", + "03f15fe212247656bbaaedd20ab9c55cd4d7bef69f22a1b7694fdc17eef599a4bcc6aff441160cc63a4bf7414723cb1e6cf57822903b62327c302121670fd3523bb6bdcd30c92678ab5bce1296cc17384c6464fc67d0" + }, + { /* i=1146 cDividendBits=792 cDivisorBits=423 */ + "5ca692e82e51ebd2e3bb11b812b54f841937152e0590a2f6ace3241b45914ea22e1e4092ee73ad32ab44cc13bb9c4c888d005edec20dc3ad22f0afa5a4d5ee3853f2d93434cf5aa29e494d55a6c71088cce9a1aa05eea37a2639fb6b26b2b18e608cd2", + "2c571f82d8b44f3cb6b88e0273105da02610ade861bd7e04d00cb2a551104ae31a53b3e93a22805e549ce79a2d9100b78a681b3a14", + "0216ebcb3b11f2ea423a6bcabe53fc13c72991aade989cea30b8aabb8f734fba2ca513d9d01c29bc5e045b58882c13", + "14f9b84b8661632acea4e0cf405777df3cd7d173e8e300629eea45c043a20b1d125fe2183ad5a8bb73120c8e87014ea9fd6bbfcd56" + }, + { /* i=1147 cDividendBits=2699 cDivisorBits=1724 */ + "05ac02c8a405ef26295c1b07abfb704a996b217986584fca0eb35d5af419b5005660d5a13cb50e422fa2b8cb5329d6051e848ad833663bcc990447ce0e757d13d8456b7a42a0c43b583b1b634d333d3a4c250ded21dcfeda54eae6c5bf5790a47a7f7718012beae3f138d4490bbfb055b1773b35b1c7003ea24ef4a593c929037ec6c0ee5231676a7cee8e4d7eeb621df507fbac159eaf18d281d0632e5a9f81a07e60d9937862edaac154b1e653e5da1f7415179438eb4c2f52b0685173456fff18c39c8e56ab55dd1c6d678cfeab0297f5470acb085de2b0f00d246a3ff201a0d8c2b60ba58f2de637682c5f73a394b47db1eae174d15827d75ee0435df602d0463738073d7bb7dc429b78126e31d6e8f4dd965de688fed3312bf9c8ec87e3033f2126c17580b38fada6099204843c73cf82c230b857eb57f81d97fc5f9c0b56791629fb21434d44eb48a5216887643bd0", + "05446cbacc010ee9ab986ef83c37da8c00928a67cbd1966b2ffcf3b609758803d31060f4ca3753d8dd20af5c97c7073c457530813c4f8e11392abec679d2c7bee78ff2549f4ea4976f02cf8d21711bfa3f15ce4f1d97f70591707187e991b8b4c20ef8b2d77d636e5fab943677c532b79dfc843fe6f3833c46ec9145ca1c424ca39adb711c2547f6b9f3d217b54aed4bdc13e8d91d4b79f80c73ca66cd252831fae3f8370df466b35a070415c8d3339481051b7366ffa3864bb43dd51c5d5f9fb91e1896b2ec7b94a10900b2a7e03450415fdee5576273e2", + "0113aa7bbd9578681f078fe7e3a01f6c3bcf638713c1716dd85655c34a41b553673ccd4cc35e3c145c9fa6a75ac348840b9e2c19ddb584d20f9a2885af010a84d9306a6285e9a9576be13428dca1eaee0ca3f3ec1b0604c1819a7548f29508597424a5da09eb9984834b8cace394fa147e69531d506abcc8384d40", + "029cf0820377c04762e9ed024c4776bcc473a0df526ac239be113c7459331730bf1d7d474c6741d4594f9928f2978ce6b86092a5d1394c1850ecccbec557d73661fc5fb62520c8e036c0d5567939f758c7562ebdb663443b3f51c7656aeca9c961092a3bf75d3a3ac36e23d3fcd2b5822664dbab43b4f0de4b64c81e3d85736ceda1ddcb679d50bcfdfac6fbe8db8fbc77f2c1bb2c981367f54de9b06debef5609f59e80f2bb43b911e392ddb52131b804e4906a394b0620c2af14d6a3d9a4968b8e2e8148ee1bfdd6ec646df7ef794f6b49b6c0287c4950" + }, + { /* i=1148 cDividendBits=1555 cDivisorBits=469 */ + "62c5772eeb082028d5bd83f5f189c0da51a0c63387932c33b78b29872745aa79be11cacfcc55950f5ee6f904498af5d992de6b6872fc662b69d097c7a2c8885a3ee6c114ca79e39f2240b3c89c2560c6893814f2ee40068d4aefa74cf0e987e08a28e8fb47bded47427d2e34614468fbd25c5061279ddbcd6c3b72d7ee75e07c33db73c6a6063d9f268321070a4ef72d3c6404dd6442a13c60fcd0779ea5fdce9c3728050206fef46a5c062b05a84ae2ce9a8a1f4f34278c60c757729dd4978bf00e", + "1bc875ac1a08878a7d7fca8abd8ef7fa357d183f76248aaf93665a1daa1d089a8ccb1fa8bec2d4b0dabe7c30d7c935e606b3d3567f30e1d73d7682", + "038e1aaacb76fa506ac109ee897c027ff0186342e230ca57cae52ecc032a435a43c54e542e9a2fbc0729ae528dd5830f37b9df6190bb25df563174d290ae9466b8baf869e01824c15b1b967b4ea9121b2f5a9b2823259cc4fe19f79e2bbb96727c0a0e8e28300b6398dd43af9fc3e991a7988e33d08983403ead148f84c7d71d8da46b83566d653d", + "11f59c4006966e4740cb6bfa79cca60fbe0b37f864feb76cc5e870d68cb3788dca595399a5338a84b877d7350884c9daabd6d0841f9897eccb6914" + }, + { /* i=1149 cDividendBits=2348 cDivisorBits=687 */ + "09a9d72b24eee2b167bfe11de601956d69ca48a6362d62acebb2ffff0bc02ce72503efccc802865c75a58b6cac0059cec11e2830ea1bbaf0405bd912b89199988ef1ede76de20850fe31c0427af489c941291539e37f3c25cb1ff406c46e8a5dde5faa8196aed54f93caafaf111a2ff53a841750262ec223e313ce80da2c981a62fc5bd4a3cd6efae8ee3038a6da0f12cf01c9960098f18b061db7e3b7a96897a6ffdbb3f85269454bcd9d20adafab834a65c96777d0ed06b024159e30dfa68b08901dafb284663c7c67477ac9cf25c0c06041a6cd3907cebd63a779087199cd6e13b69b21e06c5c38c7a72bb67c6cfdfafed3190889fb6671bcabe1ade0bd2b09e2ef14c0cd7750af759a7ac99a8fab1fc7ffb09ab2cd184ef9ace1bda0ec160f3bd405fba5", + "59651cd369fba2ce659f473c0eb666b9cfe7f4c36f03e44a1cd418e456d716f7e82ce3581f6a10b11d0508268333f479517c6bc5b9e0bc9065fc51eefe99cecaf6116547a170c22bfd0046087ee7b5dcad05edae3ed2", + "1bac5399c568b00f7dfd5ffe9bbdb02ba30bfdcf0cc865c9bf348ff680d59aed274bff5e89b5c33f1a11886a6543dc7ec62c7f139b01124bfe3ae80f195818978e981798dfba06a170e9005d9d4df0efe57c5444459f7f21e6d5c332d0c85950ca1c280ba78ddf9e914f62166a89d88394155537eeb8818b6577fc1a9e9463176f91e3561e255cc56e7aa7687d924f925418315b03f44205c2c193811a3ae9d477ecb23f86138583c2810e8a67cbc1a1210f1bbd81907bdab7f652d2e614cf773a42aaeb26c1947aa31b0e035d585d4f", + "3e235a8cf1c8598cd6afdd2116c9b1a556a14ec7feeb6184a5549c2a419a5586f02d33d6970fca22294557f640a4aba7a675bf7d39503076bd9c84a9f2bc347d4ffdf9847e22640c11a06ac102d25a1f49e14c3e4ed7" + }, + { /* i=1150 cDividendBits=877 cDivisorBits=259 */ + "1bb82f2bb21e77b7e46c37e44daead539ad4c73aaf53d81798d36a58abc448bb0782981e5fea47aa24a952b726b7743785b82678e3308b0d0b438b58eb1eeff541430df0bcef0a019f552aadaca5e92d7ea692f17baea0515c3571efc7843b69ecca90a390cf18c17729765c3e84", + "06d23fdaf0975f9e43fdfa1b8ce693840a1048176208df995da5e5e271be46be61", + "04104cc87207b63dfa57dc030d7ad42663e4796862a18d6a155c32dca3b813a62bfc3bef3d49b33fa8a7b5be6346343240b81a0c5cb69dd60df0d4fe2c162148c3392b0689803b6861ae232c005b", + "bd030a8dccd5875549ad7eef63a4fc1bb18eb4856cbd6486d2d9719cd78a9209" + }, + { /* i=1151 cDividendBits=2277 cDivisorBits=1515 */ + "0454f223ca68c11a9e988c87cdf4091c4984ae5b56d02d15df45c75f0b726dcb1676d2ae2044d64efdadf124848aa4629bd3ed8bb3bbfa505f445b0d6c6608c6024b02fa301914281afa7b14a05d773b10308fe91383f4fbaea6bab865f916390e7dd4f588d4d66a005a97193a05041e236752f52b0ce8e41bd3b4c7057ebe210c29bfa2210300164b44fe5d6c9cbd055f948b4c651b657c7fb3ccd3bdca96f5c1e5a18d60d61375d46b1421cf19a5df1c35b5913fdb6a6f31063d0d6eab39afbd2ffbff0709fbab59cd9d4e5580f83e7c114efd63382bca0aebb9cfc487c0c1d7f2a1f3b414bb2b952baff3a6a9a70cf840220718425995a03fb0946c64fc6d204a013d9d56d29a29f543f9ab6005f32f4395d75822d454167751010f", + "de368545e3a4883a28ba259d291e9c48607564ae14d34773f73d8cddc2455c3cd7e47b727401d7260dd34b49897c0a20ef93a0ed2dc3970373ce16422c221600f062ba38cad103c1c5d681ff75842c0176728e31d0294d8eba5eed0f70bf79fd65ec02fd4f46b7a6fcb3230a1517f694258ddba35aacd11fe97ca8c65b06c3bafea91fe53c9d6ac4c8424771977fe3460665270c44677e8ee45f7d545b6f3d144aac893cf295a94823d3ad19d8595dfce20581a213ae58a34f8731b935", + "04fd8f0e70285a825c8c9e6a27da3319cc7bf600dcf2dfa6345424b72ce62a299e8572845bd224872933fda53cea6711f1af648f8689cad42e2939b7a7a81c07d46706d5c0ca28aa9991799c6fd71c41d011fa072eef57203ac05ba07a93578b", + "38ae0e587c92ec5ef47e1c13da403eadd2ab74544c9e31f46ce51dccf8c24a33b2cf9dffca82709c0373ae6447f0969d420c98838de4d61e5fbb8ff74459b1dafbe8ec8e6fd8e1c39bfc256cb0cc48633a1ce3f777f14916a5a6c81d546d6eaa4d178dcc84f85fe3c709e289498e0f6573252b1cb6f86b8ae1a9e3b5b9229bdf2d87dc74200a7eefe75ed1518e38ca8238992359f40769937a8253a64b9d2eb0e4a3d20ef370f18e4d71dc70ee28e1571f915da20a9671b5058df16e48" + }, + { /* i=1152 cDividendBits=730 cDivisorBits=373 */ + "01605d10ca552f4df65198c1ed736714210694385d1905aa99269963af27c72704452f8a5033ecc7c439edf68018eaa1a108378139e408744540818747ea92b18f64ac8c3c37d437cde11974c373b51226821bbf52c388fe77cfa0d2", + "117697edfea1da2c9784253a240d2813124980c5d11acd8e088217fa855b75e436c843065f7e15d7a21acf7a6a1e55", + "142d6bbd6ea3e8cd6be0db3de42c0677d8bc20f86b2ab11a67d8b05359ef26d24dc3d614c897db5b26c1a7b68d", + "01b0b28fad3263becf97c5ae82b25bab8e0e2767f58d2e4a341180be11db0001aadfdb0ed6df106c88affabb597e01" + }, + { /* i=1153 cDividendBits=3000 cDivisorBits=2884 */ + "7e41a8fc09f76bc662cc9df7f81ff1a05e1f46368221e2b42d50a408671d2d696608b48e0cf018a76322e519c01034039814ae0092419751e13aa5a4519d81618ad1d0dfdb656920d1bf47dc556d6ff022305a8b81ee660cef2dfb320096c35924fff7e0d071f762e405abf5667980f8a2a5af975865a34aab3f8e38924208ade9446e81e413ee0b99aa68f54f921909468738615ce73bfbc33d64fe81930952f8900b04fb47edb43c367c4493e9d39752da67abae8820d7f116972697e01a44e736c356b0c6f1938545e7eba7498ff9ebe083b0c51d0327317d0e2a62db6aae00cacda3af13daed03b6e305ea50083f61cbb76909f31263c83c7f88f3173efdcd039753e011c91f541b4138fb7e8c85fd7130c32daddd3b16ab185ab15073b4385077911c813c5ccb05084b882fefb70e9a0c42970aea3f98511501722825a35ea81af53681d42837956594124c051633f47a5f5891e3ae1c63017ed4ba693a5694eb9fedec73f267832ce497f649472cd4100b9c6d09", + "04a59cecf92103c6e5df971e86144c2063a1dc72e3018e6ecc779a0e577891e31ec3eb11ecd862ccc017da47c75d46dc9a52bf33ca4a56a3a1531b4dd1e6fb0c1c5756da8ad73912ac8a3ca190b74da1603b64df16edd9a8d725741e767186fc0a07c6ebf782cb712fa44dc3dd8baae3750b8d7e083433971b13cc3269da96bbb3fcf84053ce0cced5f73f9ff7dc518b54c94e097a8c31da638017822e502b1306a3f9459014545d9c3094536adc5db47cec70cc2f8d92f07d749ee1ad87fa09b24de3447fb1e170e9fef432327ca55318f4781ee4465eb0e7f1e1b04fadaf96c1d301162839678f68d338733057ec14372621511301d8765595d7a80764c1f21b2ba22720acac5bbd02c55ce10e7fc87b4cddbf86a07e187770523283dffd1b0bfbda52087b34378953298eb5084fa5f04375742332e9f030fc88bfb0ac3ba42512d86250203e20830796e0bb8e5c33dc91b11e85df81a266e8a0d9e3e047bdaabaf3f50aa98968d1", + "1b2b7e3db39ade9c45053d139ac200", + "01bf0fbed7e250e45f53f683f8cfe8f842b7413ff2db26314a46fe4c773529900203519a20142bf3323a27c185f6f4181a723d2e326b91573b33f15083cd8922dab1378e73449e58c9c47e0e5a407589b279f154ba6b1ae21eadbfe4fe3fda925ec974649bbc3f89f65587ce31f24feff42cc8105a58a91777c6f5ebcbad138a4e14b2e21b21800ce71439989faab5e6c7885cfb95f58f2bc0da1b2fe68678c42fde258d7777c4311d7ee74312a327553ac0b0697b35b15eb813290db1b838d60c3fb70b656357674d2ae62dcf812c2722d10de9e3e957d2b6dfc8e1532df71f7aa1489bff7dc3b6710a4caee68f42f61138429c3a657b23b750e41e7da68bd220d1f570f6f4f568412a2598627106fc9a2a62e8d4887e85f29a8af443011a503d4190f0721a2e84225dbaeaa5e47709155f923fd38bbccbc8fba445a2c69adcce5146c572f928eca11470fb7db2a5c40dd903ef431a6c35eeb9b81c6a21d45caa835c815859740b09" + }, + { /* i=1154 cDividendBits=2013 cDivisorBits=117 */ + "19bbfad77f6e3c00a8e2491ef608c2853ee2297848505e2677fbcbc1b56769e4ed6a40398594e4bc8328652db1304a1c4c8d4b7c2ff4889293651c245ddccded10dbad09a3ca5b7b3d4a9e21471d3f0555e0425a0a6fe370121947a4d0b16108f6d25327e7a5c41821441b411b0951b601fb264e8e1dece0b84ed529fcd834e5798aae7d31cbf265b19c4e6fb35a352ff29db22cf0da5070c019bd16fc35dd3d0ed084cfc6ef07aadf799c43fac978073580f69fc1dc10d10fd853c6720b8ae5c703ad1f1d5f89fdc834ab1f1108ed4e3eb7e52a40ba16d74a0c2df13aba96e6fc057904d9a0cdcd6abd1ddea517687180779802504a1ff715ea7bc9", + "082118042375042bdae8a184d72a5c", + "032a66f173e0265ef60090bbc46e9298bc1da1ae42bea3de52d0eab114d39a3164d90c9e978514914a21c49ccf9ead1e57259ceb3ed9f9e5a389405a51537cffdceb881a310a267c84b8c71f2bcba2a8e1bb19d9c1dae78f91b29589109fab0a0c47496299cbca3e4344ebfb1aa018e8f8e465e767c962e93599e32911cb4ee033a96b2cccfd38876d57b1e258e4a00513e935a80c258f2126668750957b2fd686d79cb6ba75e603c273a34fc4360b991e2cd2d1d2bc5b7b9c9b0cd5eab99b974f203cca98ad5ca13be8024d25727aa5e343cfa5ebeddc0cf2df81dc3579cfb4e5d66c6af17b4b144db2816662e2", + "05feaffb8a33685f26727a3517de91" + }, + { /* i=1155 cDividendBits=501 cDivisorBits=426 */ + "0c199a8bf5cd7e8505f69532ec4f763060c735fe9be3b6678611d659a1c7afb33472bed3df08230568faa71a0b31478be4e4b382cc5666a69e1dce346071c5", + "dfdc4bb547ef630a4cd4694fa9a4f7c7045e6fd1d874c37947d0b95b4c00312fc0eea97d0c61f65acf23cfc0a91584d499e07a1f01", + "0dd652f6e69f7cfbefed", + "65e86529d1dfc8df106a3a7d357a5c56af5a984ada82b70d1a1c19c1bd9d1548fb0a3b633791455d5d767498317be53c677e64ced8" + }, + { /* i=1156 cDividendBits=2902 cDivisorBits=2442 */ + "347031bfe4d306d1770279adc3e40628d06df534d2d72ec9366ff63abce79c7179f0817724274924c123b80b99954c0256d0dbf44963fe360bfd9b03b034f664db079bd7341e4bf744c71a653725356390a008ef09c01b10c9b237ba78228ed8562dd95060dde0086727255c2bbe7c29802824ac7aff0203f4c12121b35284e8ad67126f6229dd5b7f15ba95ec8ac94949c17c46e0f197f38aa7b2000674be15b9522b5ed4ab50f4ff3e131482cb59a232d9dc71eb401918da69046aaeb77796f733d1967ad66a9729a3a20a194838ca10c4c92a4c3b73371df4d89a4a8971b93ffa2b54b50f50efbd95624718cb5453cb4ec23c0f76df8a6b23ca9d9de56bce81de1ceb429fba20a8fed994019ad7c7e0181fb6cd2d7e72ec9729ac437654efc9657fcd860a1f2524c0dac63cc883f73c0493ea9b8e72b724a646e009386c701d5b6da5cae6e677799feac4ec15a7fbf131055884659e75c8ac12a62ad4aeb9b4406198df242077f8b317", + "03b2cbff018645dcc745784977c85be508ea16166fbeec20835d66fcc795851c00d27a3f1ac22583f7a3883053f0d44e2dfcf4e5d56540c4af8374b355c53e736e04ec57748e7bd9262466ec8e0ffab6faa0cd03199128913ca6eb768e9e52a74a90c395fc5325bdcf0a11a40e6b90435f030d93922e8a47424cdb68f96338ff142c5121e90d5ddf2b995097fac0dc6ea0392cdfc79a62edc7a72396cf6b3c738c2dadeea861fb024ce1ddccfac59294212cebf1f68b32c4550ac31aba00f8256c217beb36eb796d91eb077e1a6cb0271a33f504d900f97f07e8aebe8c664b037078612259c675a133403db0d0e37ee9c4c39c772b0e74b4364ba36796c664e5e8f41c76cdf63da50813179cf30455e4cd67eecb21a88dfa4abfe4fde9bc50202b479c9e886148ebc8f51c5e2922d6aaa72d", + "0e2db49a44bb175b9f2e234766393344528dfcc6c0d36c95e7578973d42f18005cc5bacc69c97ea57a1db8e43a308975e8002ccc3a91befa1006", + "f743a47a23b0ebaa91262b29a931bc16e20464fc409dda718837bc254b4dad4bd579d1184d03493b94584e51764cc9c0e1a30768789fef3ffa8299759c5cf393d08a64fc0597186baea95cf7062454c0e93f83a5ce0e5b71366f7a9bf53585861f46a8655363c1743fe660bc203ec7e09aae1d89d54ee8d8a991519e2bea7d15d0d6b366abd76e72a96cb1315a7c6453f51889c95f0d0ef5fa7b02fafa652ffec8201f17c6321c140d1bf2645320f6df025923ac9e1dca2f9d4b14c2a1361cb4bc6f5367c0662632e7376e7f4be95608b090c6210a3777b20ad07e036531d69b6f74c1b19516e9f2e833bae0d042475bf64a6f6a64b574a89aa75d74af4be3387e7c0eee14ec22ff4ad498aa376b9dfbe3aec2d0b14ba3ed9c1c4512c98fc75458c47da6a2cdd14449d05ad2ad1d93f809" + }, + { /* i=1157 cDividendBits=3538 cDivisorBits=3201 */ + "d82b58febca5aa8a6184068501cefefc7b05042d1f79c2e3a90882086b416dc34bc6eaa9e8e594a19530fe33efd9b72e32fc283300a461226aaa0bbd246ec7b27995b01c387ae3d0ff20df60c1a8061b952f79a95b325eac89a0225ed9c656d62fff65e58b48b9a86317c439ca8e65927b66c05c2b18be3be7ad68577f4d3addc87d4266619e7b9c20822bec041bbd03436111bbf0baff2bb91a87e18f88ae354caabc26ac3040f733e240533628d8ba9bff8e2fe6aba83dbe437a7171e455f91fe54b2bd7d9c47a3421ef1d258624f8379188458e360add4c050335382663920c5c8528e2674f3165c1cefa0e4ad23e5275cf25630f31b0e3f9e2f4eff8bc22f43e08eeca8c7676e361634c8f77a98d6ad48cb83159e723e66281909537b6b9c054a320cc31a96d30c88cfffbc7a1c8664b7a2a9ed7dc933ecc705b79984fc037f9877f6ee0397f2da620c1fc76c21ee6225b929cf4d629e40281ba02ac171de5e3edc8fedbe5a8514f29a0100cb25956f371afaad8270fab77b1c62ad0f293205ad0e4fd5cb040fdacc00c438049307124c4ce1d30a948aa51e0f21095ba247a5c80d2644f76d1262f25c903728e26fbda44964d071da5f9d0", + "01b25f76dae8000ba7000514ea1e6bf9c8166378f5dae9dffbddecda7fc3f17b7967ae3f44c66078d5cf76fe8e457759ff45d9d14b5ea652bcb833798dadce4a7db1ba7c8978bf0c1378ffee339ed207bc2e80cdfebb2b0caf270e6564eede62ab3921d240b3c0e967ec64811bb4f6546845770a744cf96c47cbf9b412d613063f55c941d408bba06878e5a1e6fb9fe1b5d26605122499a04b3f626b275745251708e81f0ad09dbdf28738dd82c341dae7639212a4a2b8cec2e01d61352a7b940364f72d8a45acefc3cd9ef20b62db1893c7a387ec77fcbf45e08d82345b725e2a3064c168559c8d68d420c0edcd6f20116acb9c60c04262881e1e9e03df19857f78776b9a2271d2d31ab9ee9b848a48c8ad7e3482cee975ce41241cf65e2021b226efa96ff5b394a9710ab9546c9fffed79d9c9a1f2685c8c9cbf4cf6af8674788b9a31d317bfeb0f76aa7fa984bc3e84fbcb64dcdad89ac5eed3c758bea6d350a1a6a52bd03417e247a710e637d5778e1977a12afabf6428683f99dffc6afb4cec014ccd3370e2e9b864acf2f23ac8e6", + "7f668a7ee699c87034e893c62b176c767a6c98bd28f216bc4b7728c2d68a4c5433924f41fc2c88447831", + "0166bf3846112cc525a25d651c4526ba24b8708377aea3add5226c6d23f36b00cec7cddfbc2e4664e6b6ce9b47d3049490ccbdf4d9c19799474d7a30f9ac1c5a78e09ea1fcd1ddb98d1b73189879b086b3c18f66e609fbe9ec788801304861d01ce27bdbdcfde74d183b6ee2a18be7af6e2c70e7fcc4652f8a234adad6e853caf97de63cc901a25668397a2a7d07bbf816ffc6f8de1ec43d79ab58b825bf33ad2b27b6c4218287ecb5eb3f1ad2f31a7a6d6dbc637c23305b6cc9ab628d102e3bef49ecbda9458b2bde9a0016140042cd8b49cd3c27c66c5f6626401caef7f8c9c30d72c2a0ad84e9ebd4acc7d9e49b150d1b9cf390259cff20bdd8b4dfd72ab8495b1116aed812f73e32a8af23ef5d146b28447c5c017a0437887998740c966c9bb328b84043c0da4fdcf180dfd66d84298ba5a9783ddf5f3348ed95eb3048eb4112552267572b4b843453eda0219ffbb3977788d0e074bbc321acb5263c6bd81d2f9e54e50215793ad8e10c1638b969741047d00893144104f03b3bbe590651624243012e9e229dc44ac4cf1ba521b5ca" + }, + { /* i=1158 cDividendBits=1404 cDivisorBits=513 */ + "0b6f50ebf195c4af844e12f930e8e166696740bf1e3c6c028ef33446ec89d08a2d59b9a63a3c85438f0fb340373da7ce2169ae19abcf7a48b1a3a80e499432c26c3440307ed2d61b86c79a3c7b682e896208e177f6fafcdfbb5475c770bcc598ac05c28e63788031ecb5a05d97777fa3af6d1d440573cbdb145214659a6891f2b2ad249ca48d4cc5e00541fb28491a04a70341ae10a6026cf506d480b5d01449e862b92fea1aa9886bd6a82cb71b4fcf", + "01ba9845b854f75426b8345259fd1d81294d1332c56929e27af164ecdbc766c6cd80d47f3e36f10fabbc6095dd25987833c79f9345da588713f33dc5aa89995c82", + "069d2e373d7ca2696a5b13455142024d6da30ddc925375df785af96fa3f8b46668abf2eea1482e0c996bbc5964db4bf8c5c07e5ce490e75a865f1430653c1d4945592e464779c5d83b5089728a6608708f6a2ec60559fdf3ffdbeabb418436e323887f04e87c9152d3a83d836db61405", + "0d4e4a7d23871c9e78a04fe37075f0fa5da7dda291354c0c1a61732fbf03b7e0e7e024a840c1332cda66a990bc24fbc8d6ab91f92d8b7b79e4870926ed765945" + }, + { /* i=1159 cDividendBits=194 cDivisorBits=166 */ + "8ff3a6c11dc598331c709cf6c81bfcf09655be6c8a49998e", + "39b349d57977ecf6dde2329c281948209dade7e141", + "027eac48", + "0f10db10e6eef46073fd061eebbb2b395875bc9346" + }, + { /* i=1160 cDividendBits=1458 cDivisorBits=571 */ + "03e327947f1d658fb3a8d28b28d02e74b71de10ec63198fd9dc7d965e8e3d3018c94e6b996ce49ef7cf682ac295370c3a17a6f3be55b2898bb088c12b6b0ef7a979be4f938f8a58dc6b7ee0481f2428fabcb40f96599e9a61d567682a7546b35e163a5c3869f465c13d22ed01eb5d1b84c2c643ad4364e01403d4fd68b5b1df576b5efccde69a3c6e65227522b302562c27003283bcfb3c429a2f209e96413f27142758018e3cf9d2fe184288fb799f54ccbcd55f26f4e", + "06c128fc49cbb66cf453776a916169846b9ed6cfe960566064e4a2f879c519025aba4a851071e5ed3aa453ef6ae2b0583d6aa1a300c8f9c009912d6cdbcaca6c507d346b09566f39", + "9354d6b2807a7d8ba8ad6bc4440bda54e04266e205658e4a75a9a0e7550ea480ccc5a29c09fb7cd03efeb23293c4369fc4849f599d6bad4bd2567e921b24bc715adcbd57e3471279b625f5e57e991ab8277cb7fd614ca1a6abfba1be2de1fa5763b3f86065c44269822d9fe3857925", + "01bcd745c649599fdfc3bbfbe686abba0f182bf4d93158d89c6feff0d18854cc3cf4b7c3878cc0672026fb3a23ca2c9767b3bd52aa4c0addd00bb3c5f8d78c0c265c08fcce456b11" + }, + { /* i=1161 cDividendBits=51 cDivisorBits=45 */ + "05d702f8c4638e", + "1b28d0288512", + "37", + "013e400fccb0" + }, + { /* i=1162 cDividendBits=644 cDivisorBits=1 */ + "4b8928e42cca799597efd6a69dbe72cb29ac0e1eeaccb93792f3bee89480f32a849387e2afa8ea11a5c2e2f67ac9de158ab0765d8008918db87923f8b256f0b3f97d55e1977462f6d06789441da79dbb", + "01", + "4b8928e42cca799597efd6a69dbe72cb29ac0e1eeaccb93792f3bee89480f32a849387e2afa8ea11a5c2e2f67ac9de158ab0765d8008918db87923f8b256f0b3f97d55e1977462f6d06789441da79dbb", + "00" + }, + { /* i=1163 cDividendBits=488 cDivisorBits=336 */ + "8f8003f4fb8a39c683d638db872b0228940f688e5c4e26ecd360876ef0aa213fc965f0873f58c5e06b7a2724229c90f86f2b4fd2e6a3d50e7f868976b5", + "4ea3e35e4251d2b4482d891ad1b93a58c6e2e9b41091c22c14a0cace03139f3c5b662e846061448175c4", + "01d323f6b14a7458f9d3afe2a357b85d50dcd5d1", + "2b7b923f29093bc62a51df894c09d7c6620c11b79e760465f84f22286e430f43424f8b4974d46d6c3db1" + }, + { /* i=1164 cDividendBits=2155 cDivisorBits=341 */ + "019ac370034c1ad0464d8d71c85345e71be566fff509b3564188ebade2d73fc1bf19fa5c94d1b1e941e82f2a60aee8035ccf4e28e4b16d60b732c2185789a882cfe30de49ef293edbff28e0e32631a8df890addf9a063899725ae9675649a4ce776222587530527bc33d14b88b01794eec97a18c2d312230ecd9ab4fbd6c27529920a8e89a744157ff39418905f9879922cace7b45561720073f9352f9f24aa634d853b4c4420676720626f51131c40037712f5c6b7ae6cd264602664df068b630a43e52e663ad505afe7e930a00b784302cda9b8e4db027f1c022345980eef98a979d5a97f1ea2bceb432442254c997e78c04e90c7dcb2ffda15b96c0d620250ea2b5ff0d9c8e31f41b256ad409", + "15da5564d5c4557d5cff8c4cc8334b7e98285bfa9b67a329df3ee37a8c2c8c0ff7f40481372bdcd4191b7c", + "12cbf98ac1eb2f4603192fd6ea9e9342cde401f73b64cdb9e490a573d44cb059f1c1c31ddc448249e673b0fa478700cbd9641127b79dcdf2131fe2e167814a073376e271c697b58a62d8a16183b6be89141c7253167cef831fecc663d48e19fcff83f79e075d1c50a699cb4886a0574ef244db3402ba6a999158ffd1b1be3eef62d0949d4dd2bf3dacd56801ec242be80d243459cc311e5bb2445d75382f8a5b4e8fb59a8024c0a0135d2e47629fd5f3ec8ffe4b438b926bab137598ddb30d9bd88f9539a3a6155b4273464a0d750f1f2f226a33162a42a1d94b8b599c60dc4b7a3a3c", + "1423af2cfe2b3ddadffe591481a9b32ab79289aa5b6bb74bf89c42297dccc325a25da4a08116b752364af9" + }, + { /* i=1165 cDividendBits=3698 cDivisorBits=1004 */ + "029071509e1d931c538fb807b0a1c6ba7e7a48fccf03d434eeca12917c146d55643a67d7047c08de910f0dfc0d6ada805a6f81187459c24fa3f003ef54a3786c96a784c2eb53b9163974348ce67ea9892552bd3be9c16ed2f5635adf9a99e1dc14cd5aefab1d7a0b69d4c791ac1ca2d99be3e3633c290c8ea66647b3b954e965fed05e159e63096ba20cea7f0c2eb864f4fd027c1724c46779088f431ae46038e166841cddfd2cd9f8148a7f16c4e9f40da373ce8f5784405d1eaca7cfe9e86c81f85cb2e3e5ca93760cedca9cbfe65d11e63ee8d5762f99533b006f30089f80ba5abe72fd59e0b66d06591e6b947fd806de72ad8a6a7eff1666f474f489ed1ed6d01216c6e8d2e4ad4c162f60db0eb8ca0a8b7dc1c4ad545d1a577287c0ff353ff1e9650ae251a2238f342486d9e377ca7189f2c99ebb7e747afee7b479ad85109497c3c1b98cf1a06a9e378ee76b1452afc4d7cf3d43ad37dac19830c00a6c1ee2d2da2822b32bcfce4f124d564ac149d9d9a8ed194982bb70d9abeb336801c3ea9234445c96725b399ac437c74aaabc404ec0fd81ae800a85f73b319a5da05234c2d40fd4a1bc38a7863822065df5c06a78d9de094863dcf5d7286a00b4612821982a310e147720ac15b1ccdf51", + "0ec6bdb99e1ee4dd10154e1f609df14bad3008be7b71d6044444898818754165822d4aba6946397ee1308aedba54ce353f631f54635a7201376988b2d611ca742e631fad841b700483a4e1b56275015323cff799b398bdd6442263da73229efc63e922872d7d6a95c4a1ce0c20a1773c0f7abf076b414855a66fd0d9306b", + "2c6cded5978217637829f7cc644287ed88e3c5933e652496496fb966681af20b9f954e2da12af72355a47fa84449e07411c0c4e8dfcc3054d05200e544251939858949a6bc625ddd374fc782491eb12736b83133b292293fdfcab9836d0615fea7f0b4d4f6fcc9cc86d10a89767d358f423387547c5a665cd4d319b701a33204de8a7103df7b8f06719f06a1e4a4a1aa062714713bdcdace55deda01c7f86ea46c862be1695f49e7b0a84ea1c0255f78dd81ca440ebb17d3dd1e04adc597e80e8f5cf121883338411456dd6791e846bd75aa613b2df6373761e6ff570335f7231624d61ae40ee4746fd23282edca8563027223f42468902bfac717e527bb9ab8a656555bdc09907a2ba443825ac4bdd086a4ff1faa6af6355b11758ca4e130fc5c70d628ff2cd6518d7bf3132440c8e18afc746c906bc8caa455fd67193c3f735d4247ff928296e76c9d35cdf00f06012e", + "0d060368f0307e6b43b8281113cc9eab8abbb907d64961419dd760ce812c7ec0d83272df0f0c9e51daf18ffd3279a839ab354759ff9e6518898aab95385d0e25c28387fa0b5f67375db6e8c06fe19bc3c6e1d09b1cdd9f02754c1135f81c72f2a26ee0cae7d1036cf2613bb362a452daa7e83ed9d37051b0a1efea13c117" + }, + { /* i=1166 cDividendBits=3964 cDivisorBits=1517 */ + "0363b93e364a2e8c72426ca89c171b2edf75368972e9fc23a840ca12b72ee0c4d0e762b89c2fe6b3e5707b1029f15426b853029370bfafa9e19e37ae658410522b23754a5cde556f3c0599bea66f4ba84ea12c08805a71268080ef928961e4618e5cb776d97cfb519bd398b35eb4926a8d2fdfd664e40e2e57c6ba1799d44efaf98138cd0c4304db9a08ef2e92518e1f1c7b4d2bfa14c8e52670be91cd57d2386cbe021b46b3e5d71a286cac8246f0f7ec76470df51df33ea574d512a0a9455f5aa738a578ca3e6054d761ff01b9e0a75bf524be4a35209856ce62a68f1bca788ae6d49deccbf299c8a47dd81dd8bb1f61cae95e607fed9a1f8ded135ab3f6557fe2519ea550b28d08730ad817624fe31fe97c0dac46028ce4f527fb2409f095fd4a95c93d765faf1738c2364c7a6352215aa0d10ff4154c4b580518f918e9f42ff6b741992071e35faa001975dd4fd7ce93768cc0a3e65ad618bc4165e945eb8f9e7596e77afcd7a745daa06194a403aa27f3f72496d60e0973fefaa3ce571dd28c0f2b72951ab55f1837b88208928efd167968acdf062a6fb11fe4ff394e47495c9e184a5eb63431904b8a25779ebc6a842f011f450824e6ceb231492f81300c01ce47adacbaa7234a821befb41413097f0585dddf4565eef3862ddf4c30b74214c3c3853e586965e3b216ead33d81", + "071543fb8fe6017494d3a0fcb9cb22c7bb030436de44fa17272ef51ff0e5e4228766d8fe0e0821b81321c623e4f20886a525ff75598546a38d2e157979f846cc602008e883588648839ff8eb171077b1b824e56f73bd4ee80234d3555c42dda887b7fca6031587575a74e745c7360f2709e63ea58987ae7ef515058c702471331261bf2b99f05e4bde506b9900d08dcfb19392d5530ce9636008532ae8e8ef73a993eb631edc60cc83b0aab5a1147bfa0b5742b91dbefd772c4bd910d828", + "7a81b961ac2c0b6529c5c2640daf3fb13d8bf7cd5a3e5c170787ac9c3983cd0fc1ceb034d839e6cafeaebd2e8c9e44988a5bcbd5a1e9b5f9766ccd3afc22d7e643dd3110be48a13fee082fa7d5d5d2c4964051155dbf166af06a7468e05cb24bbfa45b779ee81004bcf4c5ac488fc310859c1daa7452be8c7037faf947e64a0c6820fc69b2c3f4064c58008bbef24167f4c2ecf2424b9c2367e20943f917ab9b7d7a267fd37a4d1444c8326624635ef4d8e0fcd7e8490b46e0f07879751f5727480ffa2c18e36da890dd13596b4dba6b9df51435b5f31c876c9ecb41aaa4a34fc7899a6ac43390188731dd518ec4019a2526b7962df95a1a23650b54e18382be4d7bd05f7eec14e9d11e22b5219699509031038c270a9e822162615305838f81c57adca4a537add7727b40d2c2b1f647f714", + "45159dc9c61939d61ba16f79a8b4edd36a80fd218344d1a864c5a3ee1f3a46abaf654f6427ba543d88c9fe19f26ab3774aa8c842384e886285ab56e2cc4e1092bc2249b88c31dede2f17204362270a02578aa26433899d4896992790d3370c5690fd5ba44c70334ed6071f669b2e53d990c60da57cf0acad15a73f06e24fbf39cc6cb10f973a5c66e8d89dd88087042dcd4742f84a3cab84d39800ffcd07e5b6488cea1c87c09569899173b8981ac750c2b326e24e47f3e6b051dbc261" + }, + { /* i=1167 cDividendBits=2841 cDivisorBits=2783 */ + "91e9b2cfbc975a94dbb84556fcaebd2c401c6d2f489a275713326939b86d49c8e9e50368e544d7b1dcc6879b6ae3566499de2d701c68e3794a2ca2fefd0a0fb9e1d23e338c599a8ce1ee3e120a63b4e475f77c2cc36d9952f24ff8bd14e2ed71fe5ae7e6025d70021fb1d2ee2cf8ce868dd901cde0e32a454e4681aada165cb8e079f42b35a537c48b09e5ff9033f789c7f33a921f1c8c918e6b0d45c9a609d4ef4cb969f2c983c678a226f39b8c05bac94cd3f8b5306a0c723fe3c08049e358f0514c18b7e1bc825138865fc4393b6be7ad9037e46f99a91cb236aaa170e1a89c18c3f1ad935203e8a60fb0b84cd0b1a3abe04b14cba6362f2b8ebe890af0760d5613071ea2ee22441fca50436f3cbe739921883022528e3f7c3726816ab3db9a94d8bacf5516caa93dc99de16f620caf6d5eb55989d3402fe3c1f9002188ec72c8366bce48c1870b7e50583679ff927b6e4a8d598023ee2a5c9b49759cb3ebdb9593", + "387a63c1fe9631368565eb953d43a707b3c0dbb343e48dcdee07e63d4b17b0e3561dbf948f234bed21eb068ef2971a69566e094639ed7b651622ac7fcd0064f38a414bc2afe07a3d2d74ce65bae1710772b4fad3583799a9454b5caf71f0018618b01cf3d178c1302976da1ac8ceb3565432fdab75944fdda09e6797b2a5098335a67f68c88271d52c57ed9c5e5efbd46f4ea9630307aa99e538c68bdb1cc9f37ae6f920023569c9e024dcd72ed4a810748ec09389975115bd2f86223cf79bf628341340928964d190f13ff7d71dbb9629d66c7d4d7690b5f04be3550b7b24782846a97f12b050bb7f896658a3e237005dc028b010b17fd208933efdd65912ed56b23cd84fd8ab8bc711786cc2307772157cfbb8b11166de44411952511bdf8ac8ddf52c16611443abfcedeb3b0ff5329fcec5917ebdf3d4675a10e1f0c3df1a4662bcadab922f96515fc9ee04448f439c707ae2b860a65eb5f27553", + "0295624a40aeb4d0", + "2dbe2444f1f5cc33cea8da5952faa68e4803ef2e2e27bf0a829f4098bab3e59785ad3ed5e427a91839733e80bfe17ec2c141ff5cbcfce23c18b7fad648963efbbe9eb3942d4fd200f1e6a8950e58f4c102e0eafa0337ef3e8ca8b9cab31476b9e45ed463d81e74e419eb59e0fe8cf139bee2f7319d444f6c206e752b7d60e8027fa0f107b46f7dd738058a2f2f6e1f4ba19a1cc8582b25f5f40f9929d09041fcf32540801bc5f4eae74bbc8a797fbee5227773bcccfb5acc61a2cc51a65d17bdba879d755f6a5351ab8c0fc330440e4c68a338a60742b9bfa8a0782cddd385d5484762dc0f9b2a5ec06e23f6e331d30f720d19fa7f730901c23289d5a51c553bf9780f0560dc40cc93cf7e81f58a5b897f9957a487d8a1ba87b3a3fd859692f6e7d2b7b5a132ef44a90db3deb58b595b6f02c7d8a921dfa006c54cf58d24fd4cd39f8261a6e85b99f597bda106e4ba5daa017b686bc8dfb31df3e623" + }, + { /* i=1168 cDividendBits=130 cDivisorBits=47 */ + "9812db042f59687028b86e9832ef2940", + "3603e21b3639", + "02d0bd436b9c347785f2ae", + "2e4b20916c82" + }, + { /* i=1169 cDividendBits=292 cDivisorBits=229 */ + "03a302f5d35c3750ebaade354db001615a701d4e5448cc00c3726bd8dbc0d83c243bce748f", + "04125099261a61046d0eb0ec5f50905d98cf18ae55e69c2026ee872fc2", + "e4a9c2156d8412ad", + "02b25cd8651c546f37b663aeed1474077929b09aab7517491b4f0f8a75" + }, + { /* i=1170 cDividendBits=804 cDivisorBits=180 */ + "0aacdcd65b0b0cb7ef94d4f5a114bcffa1ca56306bb92349a3a0279c68544debe8596f20470bffed5086f241acbb26ceeba362eb41b6ce6d61840acf276b6a1925ddf765ef05daa857f336223e6e41d558e02dd2ff2f82dc598b36094095e696ba814d4d", + "04ae3db08daf2dec38dec6efefe2868d829b85c252d16e", + "0247ddd6ef27a7c396b8042c3371328dcdaf5ad026f3c161cf20e568e85e441dc460a9935dc2d1c5343b3d7b9abce5125b9b67b484f7fce9f618eac59f73a5781f599d31d4824e268c046107506a", + "15745c4986ece956dc78926de846fa769523fac235c1" + }, + { /* i=1171 cDividendBits=313 cDivisorBits=272 */ + "01bb85983e3ba855930ec14a82b5208f39f0ae03f3914927fa2fc2ed47592c63a2b9d8ef879a0f92", + "d17cad63abaaeef03806c4d850742ce99ead7d465dac5c91e5235d2d7d3d7c9e9cd4", + "021dff8c15a3", + "28fde861145f4c3fc22783a252e8dc6f7660e5e9cbd2ec5f70a97b897e973bced096" + }, + { /* i=1172 cDividendBits=1718 cDivisorBits=40 */ + "11e39fb20982b57f25278fd6a6bc39c0ca2cc1a9548ba7b097a908b2fc6cd299b016fa030605c583bc1909a71c386290045bb2edc1cce4071e345cd431b5fb6abc79e933f3f58cd1aa866e395c3dedd3f6979e88b4aa5bfa834444ef6d7a8381e217f2029609a939a03408feb2807af459ad5053dc85f2c18aaa0e260f27ab50a80598e03dc5d8472ddb56a2118bf8604fa26b55d735402f98f92919ab0cf08f70a2cce0bc12d04056737e88b2c299cea4092820141238d1f4ff1b5c9294d85919f924640c917546167833ba41394a222fd7eb546fcda9", + "b69455ca69", + "191539b25bb72f754154c957d92cce8b677c2f8822a325e9f7605afee9fb3459ca0175d612782c8808d0a97a829d5fb169defca7deecf1d86fa74aa40a423667fa2856741a4d6875077a7b6b84c4b63d16a2d71b3c17fc66bd2cb7d00a43b0697ba9727f003e9a69e5932cb769f44b3826019d00c23daf45236285a017e242bd199ce3fc9625e0a57d5b99c91473fe4aca9dd94db61d794ab63b5da3b511d0f5bae3d51b9c06cf36a2bc7292635e085e6d4f62747df99f79f1ce35c53534e315a5487984d506739043d78e8edbf8aa653318", + "45bfa4e8d1" + }, + { /* i=1173 cDividendBits=3175 cDivisorBits=1676 */ + "705cb396590295d22e0ec8b24e53708f184b50687acca2e5650687d76a9d386984b006d5071488f85afd0f3b9bb069963395f71d6678f6b2fb5b1178ed584966c55b937762a37640ddcd797c0ebd2b8828b829a590c2e91e0b029c5fca43f0471425cf7463865372a396dd7d63249b13453b435359ba3356b446b3592a4e9f1f2e369c936b7aa9cfbc72ff35dea0aac1b56be4afae1b4d0313ee0261af73a04462a1efb77619400ea160e0e2c61ba7a8cccd424915677670a5ad14861ea76ff33837b5ced9c8636fc77650b1e3f8c9c1a4006f9e44bbb977fa3fdad17e854d32d1e6f9cef1c219c2618c7cf091a90f02d273c89cc45ad6209897d618dd817dee56ed56d034f6545c400acc87ac2f27934d5a8bea8762420d9c0d4be0ad61afcb7e669e7b5e00f5ac9f6f53416d4d610dcb21fc175541ba689f9d3f45ebe6c3978604c8b167d75364331b450d6d0a5ac5612a7ee8c0e0f19d98a3bab6e6f17585e4a87f6b83bf65b24a32e9f3323351fbe97307bfd57171159a1de0eae7960f0b42f1d3090a96ef02917e51bfed", + "05405eb5e90d095db7f47199608ddf4bd5ce296e2ccce7f109e7c5c0573b2a770c974bf2e236a6427390d35a93dde6e846758881ea5d57e43f119ad69afcb51ddfcb531300f1d57515b44fdc954562770bd371c45dc81e20a3a43d7202abb54f6b44f6c9715ffea1ed546d2d5c33bbdb94399fcc3b882b97d6f5350b06dbbfa9883d7982a01fb4b38cea17af119ecc2eab50110bb03c502109170d9c825187cbfcf487234fa74748a8fdd14b2d622765a81c752276dce912287339a540f1e5ac308c524abf1ac7713f09a4cdf6fecf59039d", + "15657ba453c55db0f6878af3dd2a88b8ae69459f94752732824a65220e04a3361a3fc2a0ea8f6a9e21964414225645b4314da2da63dedc9a016c9c1f9ef81cf9f95a6efed8b2e5a41ee66dea1e314c060d6b312da4f080f06a1d0ccf3c91e0ed473b67acb18cb61c9f1bc1ae4f60226230474bcb9af8a1bd6d598bb037638deeafb6bd76fb164bb1473a569f09ef18053c72a63397178a9b23d1be9f4ecb2420d00fe6623019e566cbb690f896da6ff7bae2ac9c698331126d88e3ec", + "01aa0ae712c5c8b5448dd0b810733999463484689189555bf8fad18dfb62c376a25728468f1042d8dcbec2db6ae53db5bdcba935055e5bc5d33f873537709733d5906f28e5b1fd27efbfe6e3e0e2c3aa1cbab03411384f8168936f8d2d70679b4b580b800827f5c450b4ee6f520d622cd2486701b6e7345f52b7a312f72cb0ca3ef645b9b6ee61375621e76dbf854edc0e730b79daddefe514206ae07485c9ae2f4697d82e2c07c0d7e6b18f722ca920137f30898ac2cec590ed2c510a65105ec1f9e2c8dd85bcc4af1f751a01f0a5a63431" + }, + { /* i=1174 cDividendBits=375 cDivisorBits=143 */ + "22965f8c0b7eda718797346412d65c8573cb9236ae07c654b6d9cf5b8b5ab13220e609f3b6d05d906db204b1d5bbd8", + "474516d175bd19c8a14b58f985940bb87f3d", + "7c3cbbdde284c94a057ddbbdb9eeb7efd3a5a86b6e86a46641a5ed68d0", + "439c4028f1fe9107cda2e431a4ab1bc49248" + }, + { /* i=1175 cDividendBits=3696 cDivisorBits=1362 */ + "93ba1ceae96f1885e5e49f110911d0064490533bb036a7dbdf4f30fd2b0807285e59e0cb33db74ff95c6404f66094dea218495c0c5cf49ec655489e51efa394b88d6d979e392e99b57f39ca9bb75a435a526a368c4a870262e8b024df2e6cb28254a840dbf7d442148baf60f13daa732e295c5049a5c128b98a2f5ee623c51401ed9e5b0774bff3af34d6a71d95add7cc5f8d133cb633acd95f722af81726afbac81ebc43fa3e4fcca9bcc8e9cb83208f91566bc1621a71078efeb68579ee81b725e9be93eccf54cc1af3bd41b440fe64ca71e7e361302936efc5e12a3b8e5f7e83136f01c680612cdd0c3a0979e5f05eb39101de56251bd6be2235975646aa20b9828ace4ed4b4cdef493a1cc07059a831dd130027ec54d8cfb1dc094177d6e307c02336c4ef9b6f1632ca2e3bf231efa33900e9c6707a2074360a436fe7100759406159f7f2b7e206edf5099911fdc4c5a512175db0dcf1515aebe059ce9ff4ebf7f3ab083b5e8df476036225a306e3e4c041015645dd6f867461e546bd3df8010e8a3e4e6359d85ff84106f1702e972335fbdfddc5508d2d30e4c5555dce9d165c6899f1291c9e47fa4b174452d1ea6f6a290d6272292ba79df508b88c7ce2800a6b4ac649058c4e97bed8a1c", + "a88b4d93aca6e3375420c955d93a7775af59e02cf4bdb7b22b9e6700d2d9d755bfa69792015e6ce3ad4725cd46f88d5d415ed217e2dd18d3f7cc4969792491a0db0c6ce5532ff9d144d163ea01b1ca70e38aee4ded9f1b16a9779493139f10e75874a979b5a20278f9d88ac263b3e2e83bdc501f0fa7065c1629d873c97056e25403b9b4e024d53428ab1126931d8fa5a07e2f5a295686260221c5411c725ca1adcee8f270ce71ed5cb2", + "e0618c20149ceae471868ca8c5e93d76d8831459c8c4f3a388057ac12b8b3a372b690e36bcf031d5b812d7a7f6d193e37e260d20fc19a3b278b7eab051474c0cfccef4a4bb7d4529e020ce9fc7adba4bfdb65952fea51a4ded6f33d38792006b343feba9911c74eead97e1d80692bcac1d708c4b1a660442cc8de24bf45a88d9071cccef06fd69897aeae76d181cdd519b2b5aa8af443cb359c23f7dc2ea0248632a1169cbf221e497698818976be6e234adce976d028dbe5c0666cca014f0a3a6c682ceec7054c3427cb463e01add0c91dddb7b76247c6db3d639f11536c9e8019a36faab9cd6cc2e8b213f60b90a55a120ba34b59b7ddc8a8a9618fb80450fe9a9e7b83ad2d2010c62c78efa06597a7b5d38f851b90437bec79875f09fb374ee04ee82", + "8f8bbbb9d247f27fb6b9003f4faba071867d57eb55e112d73a5959bc31a779889a00927a1715734083ffbd286f5d486ce04da296090da33bb9314119162ef13abede2488da9391e6e1bed03cb93e6d8ec55eebf3a69d5268bd435bafb9cc9e879b7a7c1746e61c80cc3414eff3bd45cc16475fdffb51c87701096e038cbca7ba36e91600795b397cc8429e7166251ddf10fbd8e74478060f8e178bceac2d60913635254aa39e066efbb8" + }, + { /* i=1176 cDividendBits=1318 cDivisorBits=919 */ + "08958a93284f72aa5eceb6ad58bf046dba6bccf037bf2abca1e2386eb8731cb09569ff5997fcc0eee674613dda74ea43b24c09a78b533b93f4e0307cb5f3fc2143b85663427fd67f44ac2ef0763733c89af585af0306892484e713ea98da050354fc2c98012b6b46df907f66ffc41c7e3091a119b035348710e294644661dc2456a6e79dcda2b92684d5175aefc8497d254f13fee75458d3485a58683ba2aa4e8c2a3877", + "45bfa1b3598681050c65c07220e69a747212c9b612fdd9abe929d2e1bea525719cd8b5e5252182b89e8fb9cf9ce6f874043233fdce14fdd592c18315d0b1db677fc1326ee6962e0d1a949e8d10fefe3ad3083304d41583d50f7012cb9785554d8d09633a2aec43b48d750b7af6cf98b22df3b1", + "1f81b1c08d8ff4fcb1bf8b1620982fa9034fe0d467ea0f2c8bae4cef8d917a9c8c818d7ac875f4f3f1fc3125c4ee6f298b", + "15304886835918f549683fde52a5f821bc25f5cb90c8d2c35d5ccbfbc92d84a6e8f2abf4975b7e7b9a0fd0e947580ff3ac791694bc6edd9c90c6b1521ca4c2f91f90f5a1ce303c78241c6dc129117528007268ff5e497a34b02c89a9a525a5aa64058e789cb881c9a2687f073c5add39708e5c" + }, + { /* i=1177 cDividendBits=1048 cDivisorBits=365 */ + "226ce8e5dbe7699eb0bd7fe26d11e29d5a6d73b95e258a60a57f3e8f18cf83d407f864687e3d0dd04c1669188baf09429dbb1427b5a29a163842093cf2e7a2417c92be9da62ed10a4afe7eb10f846cbcc93d4f23ae5fcaaddba8605f6f3875b7daae66b594c63f641c4df16a60271c68c070b0812937266858818f7dc361f6a0ee166a", + "376944d530417ee527abe22901fc3be18f569ec8fce1e61fc7ffa0b7c25415ae36764c1a4c0c4641e5b7d15bb5", + "9f0badd1876e56dd40939ddf12504f194ba85244d72b66a3a62dfe039a28585c8babc9c70ed923abcbc96eaba6c9244f0769f27af03c1873d707bc0e5c21db7b26ca722aeca82243d99ebedd98ed931731e6ea562fbb", + "1f01bb749dd96aafbc60c7a5482779a4c46a4cc0a826fe0be32e9d9baa806587e662b5b7501e3deaa3aa5bde33" + }, + { /* i=1178 cDividendBits=2716 cDivisorBits=988 */ + "71d040521e45c1bfef65880d202aef45cadb8ba58cb024dd7afc7a9d59af6d97a7d0d5214d7ea63cfb477254610a225f3c3eac4b690b68578ef2282169c4f8c184f51a7dfa90fd68d14aaa7dcd08ce80520f4a0b7068c90838cedbc244d9ebb15f50ac3d58467d0ab3eaa65b77ce9b4d4ad7a9654e9937d1d686885e79116fa19a07447d6df5c79dda28d6b48c76bf270797d509c27e829e3a00af788fa44ea40d39fe40c435cc45824a6188f51ec14bad3506201100927806900bd361de65a950bbb33e0f962d1280cea9b63fefe91c70614d4d1bc338198280671522af22fefefabcf98d285f112e551d9408dbac42ef09cc946e33d0c759be5b9746fc388a24af01e959eb12ed580eb4f89397a1bb4eafaaea7cdb1e95c5dafa32f252fd43c6b49448c239c5f3ff3d9467991de1fa6843c0006d2aebcfdb753007df45b01ab0c98c4b2502ec252f254237e9e093367f1cee", + "054d5d300d3eb92e8c4186ce25d3feafb167532cbe56991e80e68ca0ce2d7b8362745280a81a6ace50def73aedae613e4f1dce956e6beb455fb3998e9a8c591a8be6fe1043d2dbdf22294c8ebfb0a467e3759fdf3231001e106aeb92c0e3b620c7a7b9c0095fc089beac3aa2de5c97a8cb5ee1b621318aebb81c6cce", + "15771f2175b691da138cf8fdbe083628c4bc8bcfc5429be3f1dcf76f68336dfd353d005b7a55d24411993a70771ad4e8634369c40474b0c0de50dcf456f9dbc413b698cbfacc3c369783f38b537d8b7b766fd83ae7b2fa36a1cd97671b80628cf3ec5221e9f9295d2e8996eca45fcc3238a50248330215401d50b8c0719e9a740f8a357966ba37d76f052a6e80ca0aeb87d958998f3197167787a59e247e06142fe566be4ae9ba81cb06fd16124f8a9b432f1a07f7ebd9565e17e8c426873c9379ad7ccf489a021a3514c560177a2bc812dd2431936ef15d", + "0139b4719c744d329ae6704b374fef0e0b5e57a3fc1d8e8cdfe0a4caac5d8003678dc1be731b57f37328f7922e19dc8ae6e51e6550926b8071e4e3e6abe509f6c60aadf0f79cdbab0eb243db26146a2f4eb474475263220dfcb51622dacc42195e4d204b6136d7c851b2d3caa090720d94ccb2a6d28d467f8739a818" + }, + { /* i=1179 cDividendBits=1544 cDivisorBits=633 */ + "b7ece6eacd367481b44683192d261cbdd317714d2e5010492c6b61a54746b7389868c42491b63f5bd855e47902b1403a2bdd717b0d950e8f229da583398fc67f7093f5f57f89246131e40219ab932d0b0f0987f80eb981516de35fa447fad48bdd48875b6924fd74cd954f699566fbcd452cf46ec5f59b5cdd14a5c3f6a25f1c7225375448fa3053b9b5e76f0c47e83ebe575648fb9acbae6158bc8e8312add3b186a91dad5fe15faee53f8d6b6a2ffa7c5c4852d1fda390cb7b890614154b58bf", + "017174b94c1215b7ee4bfa1955b1a545fe9a7d3f96627dd65f16ce057a5d26acbd06578800d423f0a835852f1119b60c6878f8082cb60203ba746bfead6e53f4a462c9a49f51d6fcffe2db49e790f923", + "7f71a2777696cb114a5be6f8284966dde1f237ad49d10a185e075fcc553dc552cdbcf5d06f90769fb150ddebd46b074a030d8f131e3309f086e004c8191ccba16ad82409b315e87b332f0c1d131765b904e2ae6b27117f77810aebc5b6a11585aa647a9e2515f8056edcdcc9c6e4333828c6", + "fa74c5fc1c891d5adde5528032d149bcf09d7e0afde272041418f01380c3a4158e4de9e046413a576b66693c93ff5375147f978e449ff8c0b03324954b5f4dd072ccfe6f6d93e460396037db952fad" + }, + { /* i=1180 cDividendBits=3747 cDivisorBits=3451 */ + "022be3d2f618902e6c23c7e03914b3d17067c00c9856fd4382fb774dfa43b8377514d01e86a8d5ab89b04685df342dc8259412bba24f91dda65f851d2d92aa649baf2ecf042d3083450cb7fb8b241d554917e634bb3a3b0efb38a0bf60cbb3247166d99e3224f1b31bb0118f71be9b0751851d56a6484ebbad9f94547a2a770abc9e10cea7eda259dec764d025ae86d9371be8d4c09982923db1e5667a44ecae93f62328a64131869e8e450c59307915e06dd5be4d3bb0eb4aa146ee5ddbe93f079c056802c092fb12e6cbd2974a7bae0345841de0a76938cf0dba4ae09e0d24acd5ee744b36255fcc29146a6e589f7ba5b625bbd7013c51139b81c09aacc0064b0f7dda61e7c2d216d531932744ae71547a02a4efe55fab5e2faea6e5528a5ea0350c8145e24e8e73fded718538ddba82b6621eb397ebb56adc3401453145b5c2614875f886076c17ee6518cf7a1acdea614edd75cab2d36cc82ecdaae58f71885ca5fd2454eb83a8f6b748c63b9f141f2091de206f225b9e280cfff63113ca5e6871c25e59b94a0716925d9abcd4be4a798ae5cb74306ae136e469562a7d269b356d1294df8fdeb71a355be0354caa37227272852db6862ff517a820ba1a7ef9383433dee3628092dc899e05ae46fb5eb2de444a", + "0567014e9d1fd6438459e3ffd3dd178ff3a3f84308dadb5c8df8b40d5ce957cee9bfa1316d2ef6282465f904ae94cf79eef7205e19b5b1363ea77a7a8f94c3ac1165f92a46c7ea3f4576f6899bd5ee71c986cb51a9c804cc295bda29fcba27e052cfabaa3c526e2e149a898fbcc28d441b1d6642ed805703438a87b19b11620a015ab1a560885e68f14536c6348b82852cc458bde476e57bdb55212f36e439126196e91bcf7c6f98ea9e6368482ff2a5a83a4ee858725ce6c9623ff23767ae3f970bd902e0fbce6495935ac24747cf3e3e7caec8026175df9bf51c7a99bd6ad211fb0b10b66c20e328f64179e1e4236aadda5ba51a1cab0bfba88c9d89783c48870d7e0b9c85875d4b0b5ae252c8303d75c8bfda6e4fae49eae9cdd4c2f99e4c4f8c6ee0606d6101b768038faec7c232dd17f83b6a4fca4525b93994e41138a48493d7f6d88d186a1ad67d38086b74ab1b1204016636b6f152f8f6092bcee588f8e29b3fcfb60ba88fb05741558cd75c1349168fcf5e178d541d3dd093cf8dba483d2e2de07f56bd438448ac399da289d5d5b0c8de9a1d2c1f0069ba9fecfded338dbf20326ee40a0d45c9517f4246d6", + "66e5c5390ad5f48fdf19ed802338b72d1f57eb79c880d1c39265d309579330e12b198bd00c", + "a78e930621f5772a15c4f31d9c3ade6f21bfbd5b24a3b9f3af4d0c9091305b9aeae2d962f1077290f248af72fcc1d1d77db1acce6a157a10a20fca9686e73bd9be9405ba37fad365c859e1c345288c928410afc0638f18ce1c7c6a6b444ae0b98f4d142e7b30ea1d8d55907143fd3f8580786140f2f4eec01a37d341c7cc7b0402c1a5114ed14b04c7ef596bb65a4791248793fcc313e5a86290b234b5b212ce19b5950c4e7c7b2827be6e72057edab599bd4aa2acf895313b0aa68e33eb90a577cceeb6ced9a95cbdbb0cafc4d0ab4561bf7f5e110f9b5e7dc467fdc440fb547d4ea89f5a5012957db0f50ba35b424c6b3882e8bada5c6412d8887f673a8d4c10bc0db8adfbfb1971d2108ed4c0900f9bf7f796222ea39c20c3c6f9f0e186c0b641f25e70dcf7627d4079d097a085e269a2861f58eb13a3d9b57cddaa76be7981b555ab1710e5923262d5d7b9505475b7506984f28d7fbd2d33c88d68b49ef682817fc83d3ca619c0ffe4fe0b51f5b2752d8f3deef1dfaae8d04e5e926b5754b67a26a034138d922b978b718d8aaa5b26aa51586fda34cddd8f2045ec77cefad8bec718e3c7d94c3dc64d86031242" + }, + { /* i=1181 cDividendBits=1261 cDivisorBits=933 */ + "1125bda2962f943e65f981d09e0e63236078983186bf6c5b62584917ce23821ebd54c8d92395e51ceaee41251c698a3bd9daaea9acf653336f37a46fb2bae4198be6bc6f38264652b0b17a1fffc11511ba91e9442bf159b53a7899eaeb0a56f63c8cf18898fc0ea83a05d27af28d7677b727227d18a332e310ca656eeffe5ecdfaddcbe492d9b93a99bb851f718979171333aa1d0ed56535aac1ac016774", + "0d6617814a8d3f1f87b6cc5f09249b86d8d52be1f03aa161ac19352883a22dd80d0f27472f709968c80e93ebb7f0e0c0465281263ca360fc6f37e027f0d06545c4428f9110c005a18a099686f3f8cbf4873b2b9386db514556218058a9b8c1fd894e0501a2845771c748763ae357febab1f2cda27b", + "01479f3d2ffe54c9da3ea750371e153f694de3abf7937d783fe0e7d2df310bfa294748bc5e1d388034f6", + "0c6e80b5081208d5fb31ab78f2effff434170c464adc7e2841b4ea66a7f47857387f00d5514f17573e066c8e2e5af82cc8af3e9958a978778f8318617876809f6596beae08381be7981964587ccfd1ca0b36d43c970c53069611de6c79300752986a517fe4352f48c4f5122d27e5232a256fe64942" + }, + { /* i=1182 cDividendBits=111 cDivisorBits=87 */ + "21a446ed1478bead7823e31236cd", + "7c7d3355658d1e2d8fce53", + "452e55", + "4244b61b77e92c4ee0cb3e" + }, + { /* i=1183 cDividendBits=822 cDivisorBits=183 */ + "3049829bd767eb2b67d5394e15aa3c540fa4e95a9aa1044e4b47e171fc8b990684cb83f08812f214ab84a5bce6043000f47f3c29b57ea9f062967ab1f7883561c723b8a8a2b5664a8054c6246a1cd1357f638048e1588d39ae0b8185dd798735957d51bd21bbef", + "7d3201807f54345517c6da6a88194f122c9f786470aa06", + "62bcdf84e36475168539da070154b23be66abe91330474f4caeb2472755d0b11ebb4653adc96bd6e845d8c5e54b926ce4f010154bd7686a1cf643831738646e3e30131f83866027e05af9d6d875721b6", + "5ecb1d53e5df78370006871a28418fa613fa46dd1415ab" + }, + { /* i=1184 cDividendBits=2403 cDivisorBits=2398 */ + "02201b3452b915750291111a702658a6d1ef1aad8fa3e52f4b870ed05ebf1e4f2d85588c80476ccd5ce76e2ea2159aaec8310531fc0d63511275bdfa528a9520e0c39f903c5064ec70555fed73754d18403f98fb0352c16593364870f13ae74d47e0fe962d9c0371a05b6688d47422a1f89943b2f8273a0bc7b9139de646415a0226b9df76e08e6fd0015e68a8224445ac710d5da77d59cfd6862dc6d427ae15823384dcd55358381737bbebc5cca66f24c768b89105c01176eca9e2f411eba2f3262f5219764b033fa707b89c7db12ed6d21c239ce4fbde1eb4ea25dac661d52cd0262cb37174ad3de529d66daa6ddbda602c9344d6ec64b9fec0357d37ac70bfbddce8f7176cfe95ff9e64c1c345ac15faa10ad4727acf8b10b0684970f03badc542c022b43df18d87894ab6", + "228f7a06200d80d2d9857231c5f51a8a0b09b056f1d6de5f142f14eabdb63c6232f6fd5620f57b00e192bfe1fd9ae6afee9f3f0a7dd6d9700d4f1121babe58997db1552db98bb5f93ccfb450a672e32618834e7ddf41aaa635a7580109f93d32d9959ba21605b83b73547315bb86b2e910ac5ceec709b476cebd4de77499ac43609ac6c0f0c441d8dd5ce82075d520f6e44395fdd84e77b27fad2dcad5c7d6c3edfa2bb59bd0af0980c7e605f7f2e6167987c2080550f5d59c125ab8fbd7fe6f77cc8fae3ded79b70e7ef8eae2f55907af34188197008a04b1b0ae59c99c9d991bc44adfd150b84d60dbab02afcd2d586272c0958945f808011d85b2f899f3e3c589281c1c275e5cd2fb4799634f7197c6ad0f8543592467471cea662471b694938f7dd4a91d1f8a436f9e01", + "0f", + "19b30df6d84ae8a7d23f69858cfc18bb49895877784e27b9584c969da170c56c88dfb474590a984fafd4f06439872a7935b0805eadcc9381ae1bf958996defe2663b928e713542d5c5345cb9b491c904cfe761a33de865d6117a48e1a54cb74d213a77ae51ada6249973ca8e773e26509f2a40fa7da878d19bfc0d567140420f7da83a28c50e941b08eccec13ac75735111793c7d0c0cc610b0817f1a0f8800741dc4d31321df688ac05716c456af3d3a8745a18b601a9f2c796921d5043ba6b2132e6e3d560e185cd9722d93150f7638e0eb4050bf3c7d84b8fee97f63499342fa5c9962db9e0b5384ad1455d6833ac9b734a81cbd2dc41ee056000a6a726672ad38f51711e7725a2e532c4f19e0431567d22058041ad7de5feac4d4e4688f91fda60accb89187393ff08a7" + }, + { /* i=1185 cDividendBits=1261 cDivisorBits=469 */ + "1cebf401abef729e2e30a6b539ac4349d3fdb27451865955867563ac5e57a2d821e14930f73ec28c2f217b9aeebf1452d49b8da891ee4bcc9d76722caee39c79e456f7ddde7c4dd311ac55d06797dc11936c6fc8a7003da2d7796700691faebb88bc1fed010a0d564b8f406fe10ccae0eb820c3cdae56c69e81a6520ecf79ed8635bc50470599dc2954a2b25688e9cbb00e241de9b3913be75690f3e2ba5", + "11310d5af1c772e88a9475b6cf82f314baf7f22bb1a1c7f15ea9fd523c4b0eec98d398a560ac9e38a60bbdb63fa8cac1d318a9ecf80fa49656c4ae", + "01aeac26f8121f555d186e1694a750ab1f8978667c639d4084a409c50508ba12755887f08f6d1e8b07376ca68f47782c8735a14532f8924307e778487b04902c48b6294f6d70377339beb03a627e1a9362c80da8a09688a3e048e756523adda9b7f9c94b", + "e40fcbb26839d519e8a6ed61e828dd6c718b705c6664890349fb0031f1f1d461492370bf21b076e24e6b3ec32b260eb7cd5f91bd584b3427eeab" + }, + { /* i=1186 cDividendBits=1414 cDivisorBits=1336 */ + "1663f23cb1eac3272ea9ea973ce440ef1f704795b85da0bbcd07cdec7181b87f5b0f56e7e57fbdc6e5ac5883d2826eccb1e2b07c59b3073283c83181e5e4115fe9e41e6a00038a3a6c7a98b0ee6d6ff2ceae38cc37e4b5792ab6432ab42204bc52fdff66c4b5bd3f28e8ee8dff632d04e372d29cd2f83061da3d6026e2fe8bc1f63f8add3a2ddd1b7d4a6f306f03b1ff0011b8ef4de8d1f48c605d0dcaa5f70892f3b44a0059bd939ba9c3335b894102fb", + "22a800db9537263ddd0d32b084e682cd0f3f4e7f2424015d232e674cd7383712bb0383443d6ff63677ddb5098987381b770aa66c0d2303822be943e7d9a1af050345021982b4d91f262ed73ce6f13a4414892e060c209e60dd7ad749a910bf92dab265384be2e8a145a10156c068883f8fad9490d567b844c137ae862e6c45eff49e8a87b86cb392ac81c1dc8ce160b5c58b861b5f5b301bec7e70c95185138926a9d3b275ca4b", + "a564ecce7d7bf096235a", + "1f4c958231d512821cfb9436920cdd260b816f4326ab479b4e52ad154b6cc701fc1dc854012005ff48a36bb9f1eb75b357bb832cf8c0db9aeabe484094aa58533975ceb51657eb985964a7355a4e8ac676dc94034eee167fc7d33b2ca91f28ef798a1cff51d2edda7eb33cbac38f9bbf1863fff6d58fd8488c4c76c02a4e01f6ee7cff416ad72f8bc1ae528a30b6c235ed5b1ca946c6efdb96c38eeb18feb300e1bdd4d93da39d" + }, + { /* i=1187 cDividendBits=2505 cDivisorBits=70 */ + "01bfc65d328fd5c4bffbd468ad694ae9cd552ce7d4c2690de48c1fa3541e027f7ffd20a0078bdf0bd53e06195c060003368d595fdba0c51db37303196fbd83bd3b0bf988f393026ea4a272ff523f8b15625fcede8998260a299bcc7fe2d0f0e20917ef40571e039a89c2799c056e43b42155091d6dfa4122f7f078ba9d11412459567f84c018c39f35a9d5fb5acc3c174b285fc16e0914d18a83ccc0e79eaa6b4fe5d00d32651e717d6b867351d585b389ba3f6c152394576092b7c2e74ece78efd07d2a1d1e6d3dd3c1be78dc8916bf1152968b8eba8c33ed4e1b656b42ab1f31a158f15514ec114375a473ec0b34359a0d9b92963c10f3ebd327a4568edba7c485ac3ff710dc33ae35d0e013e2e558404cd698ebb3f90adc75e854404c132f0f9a744b73aa5afee483b26aa63def525e4fce1123cb20e6fe3a", + "052442332782d10a68", + "571688f20ea1872a5b96b3e1d66d02066112487e52a047895b90400c3e2a92357f09bd99460332256d4bad93d92f00f413c15ea269da9ceafdb764177e0b805234b0f68624567adb22c8e313633fd61441d93f8f90f1b6033179f1de5cf2d8fb67221d6de6e14e2731e5852ec6f61fb6ae3124d88535a9951c0faa0d828c50978a709d90aaf1300cecd03608e16b2987288fd0799c701699c51cf111bdfa3c8142905d40ac7440948ef9c25a89e0783183602974f4d04b249471bde38389ffb7a4f663ba6c9693ac0b6b27a7be22fae02938e0ae7ac8d2445a84afec7738d2a2db1c99c289943eff78489d5a6cc5295e0bbedb938789f4b23a2cc6fd9da352281aa76404167a1892ae447158b61eadda5f246f9fef188c94b69947624495a29c06cb41dd76b39cd25745c1d1e56fb442a6", + "03918df2ebff8b6eca" + }, + { /* i=1188 cDividendBits=2948 cDivisorBits=1428 */ + "66611290a52d6b5fbb523b005b110abea24afe38b269d6376095514e00a3920f3043b834d2994ecc35df3d52c1c83113a43da66f4c70dfbaaf4ca7d41450450a91af003155ea5c25c3dfd1d8cfa529ae0dc8e5a719c0de30e98cc52ef9ab8c69ae2b38fa1a7a6b799eaac9d45cc14cccfc5e7faa70d13c679145837c283545d56882e0c5846b1fe7dcf669bc2a0df80003660b85c2aebe74a072bb36213c28be9d4b4eeaaa1fbcaf5c1f7710b11666fc1b4b803ce4d423931ece52c42ab37157b53a83a0214fde48100f744d6138ae5998cc0fbcb553d4948ce7e6ca67db6c9de7ae46ab8d48494c3be064241b2ee9dddc8048008a82808640da2e36ae41df1e75d25bb524190684e8a980fbb8d223d4b41bdebe6ef20d3194694cfcb11120b70c035078b13fb61c5f24cdbe9b90fde1096c7e7002c5403ffb8dbdb08b371bcc5a5a3ec619b31116f3b85b76e48bd2bc953e18fa5dd79a37561ae2f6f5d4f7fb1185f376510cab904eba940865d9b4f0", + "0958f7860fee74a0912bffa147d4ba66054bff7ca995478662eb595d6e39f519f1cd09eeb2aeee71725db27dcaad70959e41efa4c2a046ae313ef7e1cec938fb07ce19fd137c6ce195264ca3c06e9ca775c92a25cdd153f903bb3f5175ed72068f1424ad1664579a9e9f6b57560af972edf87daec8a369512a04907a3f2972d556ffbbcbc4b28262425588f9b5d8ba2bb3cc25c939a1cfc0d58421aa26dc1b37f07f59a88814f8292b7169330a485c3a532db4", + "0af3d9da0546b73167c99ca71bb29ec03e75d53db03514a60b313e424a45149919a9217a8979ed6f8878a170a79b501390c0cfb4ce18d386b4c7b1198702ecf82e422204736d5571f608adcd327306e62a50485b18d3370cf8d05f028ff050c9d91fbeab07b165ae07a800f7d86f13adaf8bcbb8ec32fcee08d0ee889fdf5992d5e66884cb1aade4e48789277267f13264efe0f0ff0e8eddc59129d29236d16ada3e23673e6597a3e416ab205d699e7471dc1a6bfa0ade7285a90704e584", + "298464d514e4745b9d767f9644fdb0b3a454d17961a3c27daa60ff8be56a180595bc3a426681eb0cbef871299a8a7cddc2d42d636ad8d44c076b86f860d183aacce5d8081b7f599912745aa375de9ea8c8f50219d7e5b490a54e45460906884fabd3ef8d0be501823f2ee992d1d766c0809c4ee2eedaee4a66551361917ca06bb0c1e781110c4e12634054337122f5b332028d056ef1974dbd23518074e1ba91a20e8f21b3f27303a7a1f9d9e4ed48442020" + }, + { /* i=1189 cDividendBits=2013 cDivisorBits=1211 */ + "0731f6fcac695967192d9a4d605d41905351be0163e963c4b9a360b6f7acac4bcd17ce6c3ab6a684d2d6237d10d94ffc232f597254c2b8fae748bb66fdceb6541f6bde4c8faa21f0e5840a62b3a0c433a74c8bdbb725fcfdb5d6975971e6754e0df4f4e2d9e5f0aeeafcb131b739180611ef840738eec9a01857e2b966339564ee05ccffb00067ce9a886009abd9b9a24e91a3991a15c518da27f2f41cf5047aaf4ecd0c34a417dc17d4bcb517e91ae30df35ee9a6918d3cee047330c53553ee0b0a1c0d90200b351c03d2cf35dfaeedce490d732c5bc0f029ad681412b0d5a87e5e857f46166ebd8f1c0cccb217b6fb24e2bba25016713aa8d75bf6", + "fed45f79a2889bf8ae32507d67dc1201d8dea0b48b6558cd47e6f3adc1bcfc7e48482f88a1f697363eee0af59ddb10255c63daa4d5dcba747cc9c5883f967d1137b581a237f2e72c552eb1818956a735682df9d9b0a5b5aa959f23aa88e9212222d8e0e0a1f814c5456802e9ac6e78c4bdb4b5b18c5803e6a47e8acd8b3ca5b00cf3a3d674e09daa1adbb15ceb0ead27b0c0f5096f9605", + "073a6cc20233b334ef720347b133b9d6274458e6f02398d61ba7baa09c9a4b513cdc1e2875c3954236e9ee9e5b4830fee5d8d1e075684a0cf14becf2261eacae751e4c39ae2c2def13a20132ac86ec8f7cb3d21d6aa83a1e78e108e59fe32806860fdddd32", + "8ef0489681ec439a4bd59beb52b36a351a82155028ccbcc529ab65a3d8948c35496d4d2a84a8ebfbf533c33efebdb3868cf3de183f4f34d31eb536a8553295cad5fadbe120946a4136998b3fb30a9f5e161bc69b469618105f0620fed660b8e4c1ed9fb699748d857700f8cc3cd479aeb06c258b0182f7fb944d6ab075c9ba809c1fa1cb18bc6854a4b7bf2724f39b9c31e47caf38bdfc" + }, + { /* i=1190 cDividendBits=2548 cDivisorBits=1530 */ + "08afaffc71cd622811afefc76e745483a2fe00cdc03e5973b4d481834d2270ff3f3e9f97e71c53d79d32ef3c3dce7bd35054195648b180e642698e43b1dc86d09e3f6cebf157cc678fc6b04f4469ee7bdd7d25c2d80926fe2a9b271bbc6041eaaf2c789a83fc7445943d99466f533e4fd89a269e2888ef695c4d17260ff00b3289d0e97679674dc5d886198b9d69cd5cf456e3eaaefb67f24c3d580d2c6909f3ce0063772f140893c5d513b74cf6584ebd7c1574fccb124687ae9f50a40b2127ba6be77a492d4cc57e750553701f6f43ed9b5c63294ef2f5ea332ac3a5ef54d0956cf853b803ed8cbcbf0aa248c5f33e713db4fcb108c8b196a017d0809832bb806cd59419d19d8f062d596188f6bd6dae8eae771a3565325edd03fc83a0b4d3cae55fb32086cfb90a063a5c0872a3be7e31642e7f8c8f3666746184d6cf72", + "03c39b0cb3a40df467165442492b7688888b5c7e272c673115aa5c1fbe77d4338671ce847ff9226dcc6fe0d298d00b177212820d5889ebf4522762cf942f5b143bb376e30d0903dbfb325c05b0fc36720a2385eaa38cf35823c7a100eb304b7236a70db45d5a0b4341c53c83c7fed229f7d97f14089bd16cc8b8f6feb9584c0324d9d11f292f00cd4eccd416dfa7bb734a0ad9e06c03f5b0917b8c260cd89457ed5f0e860ca986fc40e8185e81c11e14df86c438d6be98fd8ad97a9812be9510", + "024ec3b42427c689cd5514b3eea7b9d2e15e13fc5783d52e688f15a074e97f7ed0cb8377e80ca073bcd34903497cdd16a201c801b488ac4dd7c9aca103b025cb43184c2730659ac201eed94c536ccb88c439a0123b52230d41392f97586b35135750146e92c4dce4c552e4f1f5befeb5d4451b82dab48a774c17d28b190af23b", + "031e2bf80d0ac6d8ac9b6f462ef9cc9dcdf95dc7134767588321e0fc755340aca7202eabf00cc904e2d7cb36c09f7e40de9757e9e47d4fdd847390c37be9eedc0d4ae341198760aec1084a1b8a40823c4ad2dbbb8c9f053cc5467dae6107780123b4b9cafbacd6f7a585684b7f66bd811cbf45686225b4cff7c326745a84b7464fdeab0bcd755d92e8f3cab29f2a5ee236969040ecaecacfb53ae709e7d380f22ce6bc4e272f8c9537600af38077ca3220e1538bf16975a4546c09eca76154c2" + }, + { /* i=1191 cDividendBits=2626 cDivisorBits=1889 */ + "02b7faaa5ffe8f06a864703ecac777f739ba15dd9833208880a7bb42d1bfbdc3353af3522e82d86ca5e29c080059195718b9e5c2be757672b1886f8285169fb4918a298055ca214cc79ca2bbc317474e9d8a8387cabe8b0e0b013217e8d591efac7575015748d9b6f7f781ecb1b4e93471cc65167f1d8baa5c3449b83f9c6d131a2c41f7c01431ddc65a4cab5414c1a8530c9aab32c35232f72b30d2e81c28ca6a523bafc42d4a8b87cfc27b16d70a91d9a378c618e98bafab1b6f4a0f01de1295d0bb1f646659e1de262cf31ba2edccd8383be7a0b418bcddc5f14e17a78950af40d63afe9d27c57ef6acd9945cd385d1f325001dda1659ddfcd06df77a8073def3c6389b4e2b7e142bf48580b03cdc4fa95071f5fd3679e1df025eb056bb05d5982a5193ee712c822d8715280c30a7959c652ada53655394f21d2d1e6d03085dbabc85372ab242aa", + "01575337f8fd12e656d120c4a4ada422b2bfa789c1ebcd7c084be0883401958cd0ee77a333bab5b763656d37e14e123bbc252ab0399a18d2ded4bbe3ac7bb60c6145a51f6cf2d8134a42674ffca94a807def812939aabe5d701f3f080e86eaef8825e12e327dbfe04c4d561e9cb55613bf6cb60a5eb451f77d1cb364920d92446a6e696b58df1dac1d7da7d17396a72caebee0393cfe628aed08aa66e6115a04ebbae9ced1212230efc762d201c7d2f2453d8832b86e8d2f302a507f8168bf805f7701f87cd020a78a12f6a112cdb7d73bb7ed8950a177b50e470c3d732c71a6aad67c85df6d9351ba4aac76fe", + "0206f4c7af5592fd36eb5f4a44a5c6d0add151234dbfaf0165963cb013a466250a9ebc2a58907a8f519f179b563541ffe35f062bdc97c2dbcff4741ca2c0831862b23ed0479013116c902b6562720a7611af4e666cb8dafc62200e7cd7", + "2b790db5a525bb5b5ccc2665256aaedf7ca9af7f73033a9d68cf1f7d0bdb08f3fe76c1e6388e2288014af9c537d2d9af25446c73af40ab9a112db4e33864a05dca671e432399150d9f224c395e75c4814a572d4db03e3525f02b5295fcfbf8eaa09c25d06ad1a76ebbbbb3d39643aac879859feabf9297ca09459b884ea9b19defdd507b0c1f0d01bc821ff64465f9d09fbad20ff69242d1b1bd967ff36bd0b136a7bffca50c164457cca455ac1d9f5a6d482f220f866c95be1c3691b9d27def89e9c2672f62c5d52beb1ab8581c9541148cadbac454535eead0ce0f7091718428f45a0157736c0ca8534b58" + }, + { /* i=1192 cDividendBits=1126 cDivisorBits=229 */ + "061932f5d45366c58ff87263568801c9f5aab3c82005822738e277e39ad415f287ef51355480364155cda3bfa1ead6a28e1370412d908986969e91791b94ac40d9d219463f1f51ec9a7c83d7a6f4e8afe732ae946ff5e6cc344e99e05b6adfa0fd0c69a22092079480c71f88e38ee5b436faa4d42173323028d9d91731b5b840bdbf964b69d862dded19874e05", + "18da9736330dbc3e5eff8f046605aa8f1e5fdf781d2d1f5996864eac5c", + "3ed0ac5c794324af1d88086047aaca40c572b1f8a93845fabb1e716311232576eff65ab5b3630a34c2ba1fc08ff55b438b81277a4d608a98ce4c698110ebc2c8ce7323173126e271bbeec2e301b02e74189ad77a3d7417e3a91fb87850d63a5edc39e07e8b61009cb6a807916e1d1936", + "10658718acc858cec98f50d31b0ef5f39e3bc090a5b29d1bfa07adf69d" + }, + { /* i=1193 cDividendBits=2437 cDivisorBits=1816 */ + "c48756b0e30333f6222ff306b1589498bfed67c1478738f7218e91979133da25a01957fb5af8af299ed77962487f3ed6f0915c9394dee0f167e476fd023bcab398ffd23da50b3d7cfde21a4148248d18ea1fd1074a4d0d2c5bc93f9b8b117fcf4c7189938dab4c8ea81f2303cbc00fd1072d6f4dab643b9938074829f4f962fd328ed96ef8f11df8c6913b59addfb862ce886e54baa8b2d5f038cf9b37e273ad07cfb6f2d18a066ce990cdbb4b263e49c9525e94da7092854f618a5fd45a18de45554d11925ccdec1c70a63fda9d81c13583baa0f14c6ac6cbf1b90cff50b31b2f874cb2371c3773d3eb04e99b37807dd9d2fe621ed1e4eaa42a67116fd743e6be2d88f581927681fa9234a60674b504d54a3b703e03692485998600560a25320580fd0a8f1936b48573c66e84370e6e", + "75f4c89dcab707ce3fc216baad0dbe6c3976a401ec99192dc750986ca631de839180b458ee166d08946eb40dc813449f6651fa83a37e7c5952f2847f86c5cc7edfc2efb5313cf4881ee024a423e1f2b98b5cd40edef277a8312e4592a25bd7a694a2498fd018a46450f6185c0390f0694a4189f7fb51501db191ed139a470623aa999b63bcab7f67414fcb1a96b9f54ab7a0e74ffe6c034cf5a976a1a31741f2054708dce3a7d9969c41dc713c3f3943a3759e9a74fe61ee2c0d62b309515b38500db6e2cc58edc6457dcf179c163f5230e5969566b82084a8edfebb8f3abf4759970b", + "01aa8690cf80b8ced6a6edfb4bc0455a8efd67558c84dd0ed934c02de2e69c657bb4046f9016a1cef9daff854d4d843b2c68a1fadadece3b48471f25078b1f1aab5c0f4f49ebc2f1563c543a3227", + "2a48af96256eeafb6d37420f3997a5c3e7a7a82554c71b656ef2ce346174244315c616525b31213fd10f9fae1968b3d8578fb1bc48809fca5bb4b83354aee5bd92d13f9d4d3e5b165ef2d5def979c7db3aa72fec4d7d2be18f4dd2ae4898354f9668b52086f595266d60155173f654a05cb510de5e3d0d25393f934d90ac742244c99f1c27004aff4d5de7d9628e6562a6fd7109b28c281b86d0c2195be708eabd4291d7f21926e1622ca8e49e887a59f5d0597ecea08f7c9e53bda115269de33cb18bbd5fcfa9dcd30f26ee32bbd474da8d165edd445c3778d5d68d50ceeb5192e5c1" + }, + { /* i=1194 cDividendBits=3100 cDivisorBits=422 */ + "05f8acbd1bd0bc83f52abdfc450dc639b536100201b268f53ae1795a171e8ab8a8efa7be1ea72197714e07763dd7209cff2e470730244f73e55c0f6c145a1a1fa49444bb5046c9ff17fa9fed7428fbffbc45c902905f0e692528cc25e7a11debe4494dcf0a2854c8785067a76a948edf84541372f94ecf09b98ff857e97af3de9e88f34edbdcfa692c96ec7c9db3d8e5f0b7206a574af2fe438b31b09d2db3b2887e02fc429a784a7b8a27e732078a0361e4c29ba07aa8992da4ed2292d7c55a7a90f8f843743b5e0c009be9abd191dcd49345cc2c68690d08ff9ff792ff577c1b7bcd4fcf726fd9f29f1bc58fa1a62f158330a32223b4584929bb645290c863e7d3ac28bd2453dd42c0dfa3d7ac86eaeeda603b1bffe3973a6e9cc70813304e35dd68a4831d829a3a01a1744fec5d178c418565cc7cf6a3598254493b7760f55cc7b766e85d58750526d3a3e6c46d0c876d30ca724cc400f7dff8c1cfa8b374ee64f1719a812114559b21a7130121d55db30a6962e1409a057ddd0fb8d77f214dc7ce48", + "1aebf82f21f1ac6830c7e2b8fa920ea0e7606a96f2291f9c1b5bd969aa6939801543050b94c9e4ef67ac1573db57345c6e690bc2ea", + "38c839fab36d4fe4dc21a1cd117cbc6b5ce41336df57e33c02d5f1fde212a0c0af596b4f7ab169a2e92e38695b0af89a77e72150815c690444cf726fa5610bda42d8346393ebdfa8fba03565cb9d8e8098aa03ec3c731ae62a6ca6188b4911988009eb5e6ec736e9dd53ffb400756b30fd4a0423792d1886927773b9daa260d138f1d2febef4b6e12065be396dfa3dd82235ebafcd35f89c16ccb1719fc74e02ef1b2cc31c87c78de6eb27d78de4f743ce9359ef6439b02b34ad69816dffcb93919a0725463b3ae6096ad3a5ed8f5d6ded80bd8b898fd8c90ae085e11f29337a0f006eb77890cf63e978c8b393a8d3788bc566c1ad1f2aa595eeedb33e2708f2d2550bc3ea442201b4294bfe52405e8cff4779c0169e3cfe188bc952b586c0a57e37ae4104cd47af765ccc0bf7448c54322d9508337f792a7d39ee1e8ebabf4d776b98018fa3401a0aaea45aa31d24", + "0ab626674fdd3f86558a30068b931c68f2ded182bb3f2af0725835a1794deb9dcf503a699713e40929b0ed839e309f0ec8d40de360" + }, + { /* i=1195 cDividendBits=1290 cDivisorBits=530 */ + "57d99f70b8650178e9c1cf5a4119c8327da331f121a63d1e001a73944fef0e8b0a2c09680ec48b034748839151f22644f395b80e7538c0833bc8a192e3eca25d3384e19f19d7d9527e6e10ab882814fd191a5bcf2e8bb6f582f43f20821e8b33f2fd4df2e3d0bca4c694a9e57b9d64306c5bea6f194df1f03c1716ec46b6c2b0e40dfc620a32721e2070f50726ae781cae1cefba6ce7deb4877f37b77aed3cd93d", + "020f72a34f7a17ffa7ec2d8f163ee8e30428af0a608702c20ea3b08f01bf0bfd22b60c2571cfa8c3f45285b7c60bf6abb6b0de8de639ccfc2ebb336ae2d50cb268d63f", + "2aa379a82ec22382c18e9323299502bbb69892fc78fcfe12297d34c2661d307f68d5d8e3bc01cb93641f685dea9a9944b4a6d271087a6eba57925f2ea822c5b5b03e6163659598df757549c1fdce05dce474782c9aad2ceb56539050e42ef2", + "e2463b0f5e3128691ff04944fca0d63f455d6927031ee25a045448dc966f600a282cf3f60709ebc1fd1341eab90c69c9506de2936eb23573e569d4d970a8ef86ffaf" + }, + { /* i=1196 cDividendBits=2290 cDivisorBits=726 */ + "03016490f21bdd741d48e57013f549daaeecc5d4e623fb5253baed1274f373681ad71fed2cf8d62f59e37bb6eef1714fa83065852e3a05c972c849893ea27d58f4e800b8f19bb8a113fd8ac816272b81cdd760cc58b2dedd0e88df50c7d3803daaedad8adabb44c5a39e3d4e38dedcd3da7dcf5886641dc5c44dbc88995ff28ec62bac8dce63d8d5e3c522f3ad25c4db602c9eda14d7a46c613ed4d975e712a347c543b4972b980763a79121de83ef89edcdeaf967b5025d84233a2e450425342525825778c002025371d44ddc8701edb25d1d3b38f8718d84b304b4a5beaf916663a303429f68e9f9098dd9cee1144360f15f33ec4678ea4402929f8b5672505595da474013155f393aa5adf7fcb163724dcf07cbbb02cdedd4cdb6cd860c", + "307ff1619c87ea4259d034ec98ee8ae75f46063b403164de111736f04ca5a1f67f22a545fc30121dfe54f56def3fcf595b883f0c1e6ed22acab42f8f9179c8d2700cc4c52b455d3ad75048755f0a6748e7c69db792b00166e04d1c", + "0fdd24cd168d3a163a66ef3d5119746373b731f7fa30ca90e89e176a10c9a1b191d65a9b0a9c18a95f10561f44e01322275c5997ed47cb844583022a156ea75cac85821c7b9cd8ba7c7fcdd0d2176e00d8c36a89a98afe7a0cd743faf6c00569ead10d3280c0f115fecc8d71a43dd2b7fc3fbd60b4c5dcc9b56b1148a515a2a7e2fc2ba7b3f563588bc8e2462444a7ba5598a3425c52f218610b50c320cb9abac4feda7b61b5573eddde5df0c98bb8e29e621d9d4d452e36351638467a42474835c50440", + "2d01db0bb1c1114e69ccefde307eba68410d0d036d2c3d9109bf764e5603f65489822c82c3a2661f1e3b21c6e47d3517d138c35f5148c63b28d7bbc061f02b523bfddebdd9b511f38df9d91bc9285eb64f763c8570c0665af9cf0c" + }, + { /* i=1197 cDividendBits=3570 cDivisorBits=1015 */ + "03c2811e7f9cc06c78d5e2ec68927de5b281364c2b7cf138d9851cd6342fd3739476a4dca678cfd6856cc081f21e91935f0dcca9c8f8e986ffb029936354a14a368387b4ba1849106a401107dc882b756cf9b3ac539abf2ab50a4412cfce2fe93352e1d6270bb90e8b9e1c6e377b05b53d2833c9b94e1445ef3ecf7681c8487c926e7c3431263832c933b86d51994ed192affcdf7632ce2786362a31340eefd5e9c0819d1645fd45afc934f0813273af58452f962b75cf5fe0e9a63b13478e868d1204ed6e9b1d8e6f872e07900d51bb7e529ac252ddcc2526c1fbcbd736c6168152c813b84dc7131c8ce94647ac4be51cdb7ffb17e4225a062899f52ba2d7408b18b5acb83f17b5c2ce9f54243566ed907ad3bc9bcedd0f6dd22cc931a8b45d10710b6fdb88603a28c2631e14e2a1b1e89969e645a6a9730583479440c0b352ce4c6a0a56507d2aebb6c5690af8415a0de9cfba11250cf1980237a3d7490002a45aaf3746d09036eed3044b2a61989b3864c275652c4f34b435a7a9428aa5bfe9db5dcbea9b297ca420feb9bda60b65c20b8913ef7f3a1c80315a496c88aa11dd392bb3058c5c5ffaa3237248f4fe6353f705842f56903f0590ea19952072", + "1e242eedf5bcfa1f498097dd0c1f581e5f23af52363ccfe3c75eef807771033b5729151b741564ad4a9c07227bceb2744fbc2584966f09ca86075abeada8474522f54b8b9422483f6daa31f733765f06f35d9d62eb9057751cb642e018985af964d5094eeda646f8dab21e03d861ff55e90e1704220a991c42f2f2088fb1c1", + "1feedb1a5346dc613aa048bf33ba069269af858c765449b4747f26e4dfb133ea0e1e26bd311f01c7ae4fdac64086a2a70d58db0f87c7506f3eefabcfcd61e1bec8e0ca7e35e41f82058d922d037fa6e9b07131af187e62eb32d11f3992ee92ea6f5b3c9920a3f1ad1cfb852b17b36dfb89e560f5ab0fd0523106eddc723deb1a3224ccb1e8f9fadd6192d33c19cbe60a4d27cb2829ae97f4e36296300f8765479148f830b50a45148473e1e8a6b20596f6fc406e96e1e8da0e6503c011b706eebdf94244ef52e267046f8466e354e20d15069469f1eda78ffe5ecbe8be68bf66e13573f324e874147e8a83ac941197261d3c0550ee6ac48c8c9a3e2244e95aa3628fdc3d59c88d8f7a36b50684e45f7420bf416a2c897324b425a0c16db433a70e1200963b23bf6d06119f5935cccbbeb0bc1d70afc8dc394117a95613266dfa", + "0b32fe71e19e6f6028454e0317accf952af338862b96c7a7c8ae9141cc940a3f44c1c6a47f13472bcd8b6720caf2c345b90e56b0e9e821cb0706768d32a4c0f0c8d466961da38f5bf3719d59b1ac06311f472659811b42d58a494dd0d8159fb4ea09cfc258e3379cc4411174cc029f714873b1e1478c1067ae338cd8ec5cf8" + }, + { /* i=1198 cDividendBits=1291 cDivisorBits=1194 */ + "057a8cd5c8a451b1bc5dee264ea4683b8dde23952981f4bc621c924f1e4f7f38755897d2835a4058c7d7708bf9db39aa5a0a740cb2105621cd5ea061d71ecaf3be3b667276a79e61ead2ca1cf995e4cffe2df8e03ef105f0a5fbc92536bc01d65c77df26b3b15df7c117322b014dc53e52d97ce3a538134a4aeb3bdc955e708c81362bbf474d59e602b3b8045dab7120633134e2335921aa980646e3013bc4b74a6a", + "012da045f3b79d62d0d3b8bbb964c57aba1b2cb570314d39b463623635cedc3ffe927d200c4984f11e2567d005d7dd1328ffb507c8bc89bc610b23789acbef52f9ef192d49ea815a3061903aaf3d03ee3ed53a9ef2c40cb802a80cb62bce450a2fd9b744fbb01dfd75d2a6b7494b2dcee616ed7f51fe09ca8f5abb86f90171fba1f6c73f0d4614301b9e1ee4d3ceeb245c36dec21e90", + "04a663fe4f7f0a55dfdc9de1ab", + "481e4b5528a897545e5d98dd18746296a4bb1edfa92054ae2e9926ce99ad846f1c0afe50478e19ca100cd5a25bda6b5d9f99d3c50c4fc6c4d4f5a5e6066c6b2d365ec7c8eb78df8e936e426d2fb61aa79eb1b6bf390ba529813c3d8d636e528c79850981902eea5e92e63b268663d1d574197e0aa97cd320e5fb051d3c93ec5fca289b4d8471265ba464d2f0a76a99500bdde0503a" + }, + { /* i=1199 cDividendBits=2018 cDivisorBits=149 */ + "03c2412d63037ceac84358d81812931e57c21d7d1b30b7a0c7f314ea2068f38a8dbb7d5bbc2c62bbcaa77194201e8bed8572f594c45384cfd087b1eaa9afdd610df516dcfe1c446618538ec0e7b068bcec37e9bb18af92a6bccfecdc68a3cdffafe3fad4722a7f4da000cd59ecf376bb719ddf068238a76414698ece46d2dae9701074f54c1f735ad1895d413bf676157345a60c28a633bbb0ab220d95673889cd0fd77af6c6ba25a5899736f392f5dd1fbe505dc57b1c45f726ba6c439bde76db8c9e376f2b9b8999a5f92287c0c5416275c958be6b89211abc73061def33cb45d768f49c4d8d7c2a50df80b3c35c7df0c921c5c3256f1e8de2c99920", + "08ae22f33176c4876ebac7f46ccae131ba8030", + "6edb2322e65288837aefbe3a00d9558d199723d38f12f0bfb4671ae25429ca0a3f89aa821f5ba4769d7f2d6f25479bb55f0bb57e65ae1846f8b404feb335a5056d2425d91ebe8b4c72b776bab2c9355687c3130f15b002dc737a85b0513857bfba9d406542a28a2c642161d53cf357f5e456d9ead2c14c78e33c0f151d8347eada37b5360921dba0fb8948f5f7a1f845a82079dbcf7bc4c894e4f4d675bb1912ac5a2d4392f808470ff4cd7715a401c54adc651d862ea3ef269b08ad7c275140b82ace3da35e83f44f17a03ee92d90c7288d9040df38027c644858f709ee2769aee04d329c7592c33486", + "066933912c2a98903a9cab49a81a78f490c000" + }, + { /* i=1200 cDividendBits=1605 cDivisorBits=315 */ + "0f07b1677aab1088426915f2494489612de0f94cecc05e7f60e754f25b51edeac264bd2d67be0b37e2680935b8c3288ebd52f7a1efa74d12ad796ce616a78def2b3bcbdaefac21d70257715d1779d3bbcffe01ff3e30b5c040aca99fb2a3ff0064d704278e45859b8108388d25bac165aa1b35d900daa49245539537bd5f15a9b9dfc518d2a47c5eb936874c3d46809debe7470ffbcaeee5adca573eba3aa553757716c8d5aa3eafb689cc6021ecf05ad34cbd52bbec155c2943343b96a7d56f4c81ca45b25e811a5a", + "06f4406064fd836031ade426743411ba2dcf553768000a28985134f6fa73cd307cbcedb4a0f866ee", + "02294c43518a9a4662c7190b629e3bd92ee098e8747ef531bb4fb558e456ee273c46ee644290de768824625916cef70b41b44458b28b2d8b871a869917f40e08cb1d03647c87cbb2548651991ba617956c4179e53f5b36333a956a2c15b56d96b1f5f3290579b86cb378b7780ed08379d9b53ac667c9b25f7ca0707ffc3e331a561de6ee5d9d907f5bf114f82b08f833c6ab68c5fd4d002c891435cb08e38a5431a4", + "04accaa989d4e815f4c9855aa1fd413013f4fce4490c064bab05dd5dfa500727ad02fd23a1939be2" + }, + { /* i=1201 cDividendBits=1684 cDivisorBits=760 */ + "063be5f858821d5a4b93fa88156f39521a0b5155a96b8cdf3537f11c0e2045476d89bd44fd2bd9be8f8014a6e6577978d6d326b7a40d2fa4174b2edd141833d999df119ea67d2ffd35d4a614c70c9f9360e8c93d8672bbd9a50ec3c7d79f76bd360e66de9e321ea030c9bbc8016c749746c80328681bf17eca14c7a8ecd20e0170970f6b5d97cb42ebaeebbd3dce80e9280350caf99ca0cf55934d327c3491984cbbb7d3533581b0591cd8414f4610359399f068b20304c49d5f3fac2bd3aeb194d28598d88440fe8e1c2286d7cb8bbe850476", + "8ad3baa8d3e27fa44dd2d02d50a10da96eda7c8d0c5e065bbeceb4fa08e4636883ce05d143ad1d4a7101d41cdd0b570c88e7ff0695229051d57be858a4a1e66393217f8c1b5abb0ac464b76c5ed943de68087f8cb6da0c804747b338fd2490", + "0b7edea53ea62755483800efa9b4f0ecc830fdd64b7dc7fbd844102447b1c0767aa344ee160f3772c02662a4518a7a7d2f70c7ac2bf5ceaf448e7d979c21f216af02968c08aa880037a51f24093992ac263daac1e927ad5c9ea3650db28d6f48bfb0f8209940af2330a3fdcbffac59fbd515b693", + "26815b2146a68b857fa9f5b02a2db8537e55acd27152d74132bdc6c1af971fc4d2333cd6476ca402f5ba0945dac036b609b91b41cb3781b402d8b9af26ae8f9a111ef600a539e6501c0e850c086caf2679c939033ad4084e28ffbe3d5aa5c6" + }, + { /* i=1202 cDividendBits=722 cDivisorBits=194 */ + "3e869eabdfb3c68e9c52a41c0a9bedce7a41d0862d4efd1362056c4c6f3f6611944abab32d6e5fe916c22a01a74c636ad0e314b99fed69bf6a540b454a8a11fad994dcae62892beb4c166820a147827462cfb25a15ff2bc8abe3", + "037ed5d90b89c4adab5acf1e93a3869840eeb9600a7b1a96c0", + "11e345b361115a1cdfd245d41a6b9d6efcffe2d551f65492b4a986f8c19110ed84e4334307fe5a0ba20e5e62631f7855fd1a0e7f9ae951a1e71ace17a24f4e175a64", + "103e79b08e91f1254366a346c251de4597dfb40db12648e3" + }, + { /* i=1203 cDividendBits=2196 cDivisorBits=975 */ + "085d5535fbc714ad4d07ead027231f8a228bd79ba883cd16043554e51f84ce7d0d8e970aa402843a099c14fc74748a885f216f1e152ba7f49b233c48c5befa928d69ed09972d2072ca07cb2ffb7f08e6b97422918a0cdfb0b74b2cee3840cb395ef833cbddb3e4a867dc632a1d8bb0304bedc0a26aff6151920865392e7462a114ef7f9c9cfb6ff49016f696627933bf577559d70554f6611263af642876e348096707cb818a8ec9b0f93856f69e885145c0a9a1bef05da9920f745f65c7645e3a6fd517b460f598fa2342871358c46cd0db2f18fcd380117a2151a9c5d855ea02145fcd7f6e3c7cd215f8cecb7f9bbbd545c046f0b9f53ae6e015552eecefa9559533ab5f427d38462172a80eba2f799bfccc", + "7161838aca6c40bd7b6adce3e9438565abadc77516c3e3588ca8509b874706ebe2aca03a27dd606315337cc866200c1e9c4750a2f1ed03ee33188f0d2eac2f99379270e5e0288fd6f85a034d848ceb54f9ac19b8b90633bcd48314cda6e418e2ca24b649772adf7e9a519b3dfeddcbf44217caed549d1ec7d97d", + "12e2dcfd8d59d46e382ccea5b0bf7c7097e2a7a9faeef2d9ca3045281956feacb0e76f31c07ca30dc0c63dc3f61918cff197753ce99bf4b9a7006716429842906c5c1d468d6cb60c6dd5e390d469f4b969837f5a1ce577a521ef4d6cd79d49ac7b42322df78ae9fc50062041ca0b9ec7455258eef805ebc5ea32286af8dfd39a8b12552b88d56533490408ca2f14644ec9daf29c1c1b9adbe5", + "49c15ffcb5da4771a5e90b60da0cc981273cc0d315be08e9f75a7075f45f1265cf3b980372af7ac1706b4f73f7f393256e2089702d3aaadf8d93dbb2dbe38ca02f9300c268f8124910cdf209ad2b579d12b20d9c44a2db7bba01584f97627a367a56c9c7e88d2cbd7f3f198cea492b416ba9710e1278f59680fb" + }, + { /* i=1204 cDividendBits=3930 cDivisorBits=2892 */ + "012166d50782bb2e5913114fc92de201aa8efaa2565d4319c636b8255904e785f230a16e38b3a570039af9429cfdd2fcf78f04b7a603aac11229ed78a8f8ab4fb1603108d6f6c18814be3b5c22826b4c8eb5c8b14b7e309a83672349f028e0fe52b1c23524245a52d9454b571f59c91b8c2fc020b5d7ee942ee68dcf14309bc906549785a1275fa7b1da4bf0e92b1093b7ce4fe3cb7cb3d7d9554b9864ab7f94f160b4adb7d9bc17ba042d273c6f6652dcb141c1edb2ae60061387145aca7c892f443d13becdf3e290c5922a2e63b50fe7b913ca5f9eeb6bab30232f06219fd7088ce536468a688586873cdc9073ce82004f7c02eb9980307b0309b48f1ebe30182c0b63a20405ba21c62f8f429d190ddb2a14cbd6a86129aab9c28034322cea9508acb58f68caf3ecfcdb1c7f53edbc01b849d9a3d31c4beaae751cda6439c233db2cb06845d8be295edef320ac3684ba05fe5d0ae52ed3b0f5e6aec25f9e6049f8fbe81693015008a36c7579eca18c73ce245e8f044c46fded800c1d7b07c98567cee83dc7c278a0f3deed13e2a4bb2e167ff856b7a4704dac7004e2a98030e06c2ab2c03cc2d3dcb60109574e744d51b28f36035bb15394c8f4d2d1b3d68eedfa56956c45a5d36de468fae127c1d3da7d07d7d4c9bf751ff10714cf5d1132be9458db5f667d20a0d7cccf", + "0ad41a2c1ce019b105150b1ff688ce118eb66c131e3453a099c788eb54ee691d63d1cdbd838bba5f2aa1e4a3d16cbf8d6b12a55adb4d7cb3d81792982742305e6135833a45bf42bfb9df8d4925248970be79cdf537b4c936c6b13c9d58bca9d25367588674ad582cc96a1da476e1520a804ca2789912dd9dfe9557d95ff8f06c88e7a54e81a1d750c73c3447371ec1c093cdd4cdc5ec000a471b6bbe5818536d8e733271665c5a984893a82b9f4eed916e75ce101eec1df4c386597736176b6d5bd3d5b5b56fb0b3888083f68a5897033f5cbc28206719c4276899f94c9151406388fb1fd30c1beb43b13513860257ffc329d0a0237fdceb0b5edf59c40760ebf222e86cd8edc548229de865a5b4d4b3c2f60b88292d10d5925b73aec2ea60f4fb8915621178edf7431218c01d1a5104ffa9c47b461f5de56204f3e32973def6790694361da554b12c2b2d5ee47427df81f45f69f2212f4bf227d506f6031338d4f2fb98316f7c238d5a", + "1ab9d2562ebd720d7868ce99d81f5ea6fd04cab4fc1a131d3fa9fb31e246842c41a334fd39b1734520a7d4b063475e9fc6dd23418ed0d7b80d4b65552f5517b79e79755e792553cc9cca86051cc8722c4ce0e61d74361af43a4b53e74f21308709a49e47482fc12c5cfa8355a7011992ca4a53fc69e902be1ef2d3c240f3e2009fa1", + "2af3f7fe28c85b21fb1d3fd5badc802df59b8f84232545eb7ddffed5975a86210645a15f07046feee164362dc61133d1350a2509ac495b3683ee007a7215fdf969c18523694f4bab53ab35fa88b79d240dc984bd663bb9b9ad9b9f9563d602e919c6346cd1e54e54997b705800b32d989c47ba22420690bf38f20e885620edd2ad3fe41f2a2cdc4848c30b5b22d087c21b62155a2206e110fb264063be82a05b535e1dfbc181f8aa003d84db2ecfbae24c090c81e1df335f4cba53b1874d3facebd3b3e21798c807cbdc916a66809c134251adeb15f3c84251929db572ceb3d886ed65915b08bb9f56c9f2950f1b0da6de8e0b8d5dcda48a6ddc142993a935045dc48a9b4344d1fced0c3f549752c8c065564eaf9c10a66e5b55171cfaa63fb0f890c59b1b8f363abdeb8abd7387422465b99437b601685eb475dc55d0804b767e68d7bfd9cc8f9b66d5f3d35950e0d177ef04eb85ca85227b933a825e80decec12d1a18b205b10135" + }, + { /* i=1205 cDividendBits=780 cDivisorBits=300 */ + "026556b6866c68ba0af8d2e4799ab4560a26971749a51a59826676a49ba556213e503f1e3072064ad23dfa451794f387ce8024d6d812674bf2464e7ca8d9d809d8ce2b91bba5fd06307ef8565d089d0150aba67862e3ec5401e649425eb00371a9af", + "08c8aa98d9755f857ab017c4abb2f8480acafd1f78d14bfc63a858e62e531d06fdc30dbf5a70", + "45d3614e3bba792e1f26403bed9dca895ef156866f344d1f1f0e3d54dce1e5ff82f4cc8d93779bff194d2ca6ea83eff5f1de0584c9d95ffe12925b58", + "05fe9bc4f698f0b10544238553b80d16620ff158cf29bfaeab5ff17f9d9723163722d0a4c32f" + }, + { /* i=1206 cDividendBits=1357 cDivisorBits=711 */ + "101784eab6ca8ec585a829a18853b43398d67d52bd30e18cd6aff0653f522abc0f82020ba65f11675502a89ba2691601445df5fe3fdf24bdd100fa1cc04ff5335070908b1e88d7345b3d2961aa3f065d1fd3999feb8b1a59ae3940a69df142e7efd57ab7aa5245b9a62c420d1332cdef4c74fd82d2dc46ee23d24ccd52fba47e95b64a44fa12db16cabb524fb02cb03e203605214d55cadd3b79561e2acae4d6a2c2c321b01ea6b4dde7", + "57b56701674b6dc9987ea3970cea639fba0aac3e5393a828ffae796cdb17aab459857625c0651074a96e2c41e621eb6cc28ff931a41ecd2ad44129fc8316f8a7d2d230c5f38e5c802674daa1a3d8d5387b69a0809b77b2da41", + "2ef7def194355b407f229f957bcca8d9e9b4ba0d03a88214ed9bba2a5f54383093de1771a9bdda4551b01c4e152b9a0da2d5f033d498858365a79054dbacb126ca1cef9f13082ce050724562a800c4df1c", + "51e61555ebfb948f83aafd487d87eba0bbdd45c27bfe9c60086d34ae8acbc3ada4a56fd074ca82a917821425750e0cfd1fffd2ba127a47cfc26f66015a7d09341436867a9f8e8af85200718a1519062ecf24137041a9425fcb" + }, + { /* i=1207 cDividendBits=2410 cDivisorBits=1477 */ + "0150836afa106e04cfb9a6364cf7909411e8a2c9a0c1c11793e0cc067e2229b03a791e3c7b3563af664bb6a929d4680da8edb8918c0bf85d2ecd36f08618f50e30e92d281ac89f2e6506ae01accdd47925e611f635956ebea7563ad90e4d14e122a05c84def07ef8d761e1469e51c49012e06d7cf72ab0eab9fad9ee612261cf0b5295efa5639c2b6de2e415c8a2261ac1dddc7dc072c19ef4fd5f2e9696bcd854aa696251b77dea36d6d7822d5e5c92507f492da6c2cebe03a1573ad919fec38056a84840046ff5e67c220fecd9c12ccf4b2b5306cd5c7683fea3b9c1f03b9d6f42ce8c4971f81f5a4d312a9a8a23277816ac0e2b6908a69d315a12f4a844a00682bc5bbd08775c89e41ceb5666a125f992cc18918420ef35be42e0edcd88ac64998299d06be137b900d2c0f793", + "1bc36ad8037600c2c47806dad8e8b53ab2583c62b922d59c84e52aced86c94154be86ea461baf991ebe1eb8f9e5ffc6c6c8f5ced5ec38e601d274de31875947dc1ee866f0ef56ffe9ee238336c3ebcc0bf1da9650e1eb91051b7472b77f43940c369f7229426e3f4f40e1d73e5c62d934ce446e9c7963d71d29ee2bce669661bc39848a6d29c1ed1bfa18da8c7ea2c064925872f5f9cab9dbc41a4ffadb76ed3204258c621e86d5a9141db8345812db5c73de205669b778f67", + "0c1eeb36cd82b4e59a07336919bbc6ea9135b07c16ef3711b30284b4c225070d87757313ac83b25e61adff3b60929fbab28b2b79222d73dcd82a005902cbe3bc2c04f9a54d9748aa54c2a80a6bd18994d73e4277ab7a4ce3458fe0725d084b2f2679f6915c9c8f335d2864d89366ebd7a3fda3816e", + "0c237e4c1ef6dec5e8033b39163b9ff18f34c0461f72c58a1c97de8ce1c7d58422443d35bbdbde6660f817298b7dd046aaa1fb9d5315d852708f07cd90844e4cfa9967ef827382418803f9e8f2fcfc0332338860ae8158a47e93e31ab5b2a8feecbc45cfde08cddc2e5ea6eca40b17e8e838ddac010d7fb4bcdb8f2c733f4604b86c576058990bfbd272baf94995e05a95a5d17917a16260ac743150561faa8e0103cc890091dd3c60e8b4e6ccfee051717949bd24ac897251" + }, + { /* i=1208 cDividendBits=3792 cDivisorBits=978 */ + "a641de33b9a1fc8a0a5b1e216e701b9a405b6fffb3bfe5f42e34c40a267a1f01ded72ceaec20cb7df6f9ebfa8fc7973dd6e504705237a8d9e70bdcfe6e1ebb598e0aa2197e14db9458a5ee2ce328d5587b1c12f5e34a40faf288f26468550abdb567430b3cc4295c022c5508786cc262a1c550858f08dad8f8d8bb615236f93b0db680fb9cd376832d58ef449bc3b0312a4b41a3a8db8da21c7de6769855442bafb19d1fe05c07d1398ad1ca7235d876f2b3cf5da3a7a0c9791a95b9ccd6733dc18b1dc17e7ca74b86f4edeee2f992f8b1969889f8cf9a6d84f6bd1d36265d733eeb81626c74a5d2e58d30b551ba5076c80c5c102ebed1831b36796aaa432e7de8140e91f7b7cf2a23ee31697b02e9a764c7b88aa31c205a91adce74f285556581ca31dca8a1f488b1ff81f0071c8e2c6b5f9117c7e0eedf752eab8d5ab38fc641fac4a9248e8e70820e20d8532d5d608c713cf211ed9944c97c3ec1caca2735689eb0b5226a5f63ea87ae78979d2b6c91aa804e860594d332ef20cd15daf2fdd48cf67bc37558adec58b5227b28ecba6c10fc066888b69d29f652a899d3956f1228123dceba71b202cfc8f21db38dbb37141efd07f24fc0130d1ab1384c6909a3df0ec058a708cdd0caaa63bef48fcf25a8417bc1337c452da4", + "0295588e672c0cf4ad768f2e98a048cccc2a6f0cf48711226e8e29c016949315cef79ec94f27a864a671dca8c73dcb8cdff40c6eeb6ecd025e0cf214515a8c966701e66cd94f0ea956bc4a4bbfdeba148222e2a8a241f90842fe3bde7448ea1da2306692855f0561a6cbebcefd85e318b80da4837abe3bc3004c15", + "405b3f87aea7c503240e174db064dd47a3700b2742816cb6e57b6bab04a7aab48cc9b139f9dde1d7263b0c8e7d66b28af4300e290ff2e4ccec43707b81792f5689fafbea940a83788ac224e66f158b512ee48e4dc38c1e663637839ce6d0fdb594cb4419a9addfda001c7bbfeb6992c9826413bb7006bd1b84ecc3ee9ccb6e1557c4d0ea7d105208d90fc7d50d6ca0fb93d81adca77da12075a5c2e78d9467465a7c51e43e71e547b9d48804927d9b5908797d36b5722d93bbb012c6c7ed1e0197c366ae11ac2c3bea336fd7be057a194e104dce9d52b65da66bda73c0fd27ffaa50c3f261a4bd2757be14797407dd44e3bcccdd1d0f33ce4c9fc094d03c28e5fc43743fe4412cf06c6dd58cd3dff824053369a6502ca20de2a83e1ce4b975a0ae64ab074e37d2324fe11ca55ea2d8ba74bd20b269805d6e0fe1c298eb7418d0b43e8e4b8d71018b6a2e4a8f37d622ca7f59f26387834ff39b67347176a29fcd", + "65be56d3c1591ca9120734a08809213ffa0a36df621db167aee9dd79e5f605bcff4389d98389d550aead85667fbf3438cd2c179a88f40c4cff81fea5b2751a7f9a6654a6b6801744b10a9f9860cd79cc05cb5746a4a33584084689ae614c6bb75f4b4ba9960a985e0df38d561dcd19ccd1ca584deab4527d35d3" + }, + { /* i=1209 cDividendBits=920 cDivisorBits=648 */ + "81d49212ce281e378ef30462e560cbd095577cb837623575d05144d1e25f5d09866d0e13689ecd6173fd4371f8670611d2db7bfb5132e9f8931ed51aafa826e9d5e960c0ddc1d6799afa151030c71e3f3ff34d21f837d15130b055f4675b9a3884a0f761fdac5e0a7204111feb244dd5166c9e", + "d32ce1bdd2b8020499758913ac9eb5617ff4e1a469a238bfe9445b9b9e0902d65548a43afcbade3550df6eb7e03c196642c5f7cf07d97f6a3fcff6c7ec0e3431baf3ffd6edd6f03e3f4ab92ae7c3bc8493", + "9d6375ebe1a8ef4e3f1076df7edcf97f893f3dd625c69ac0e03610d4841cb02c37b9", + "39b5599207235519eed0c7a28a83a3d35f1ff46a47af8446800d998dd14f6221a9aac4c0fbfe352b7962d6cafcc5a7ad64020c77502555823c8cec9106716814b3dfcd69c21ea6a0440ac5cc24081b0963" + }, + { /* i=1210 cDividendBits=2114 cDivisorBits=1645 */ + "015d7074364db09f6f2f9597ae27c82a934600ba4525bd57e6ccbe85d21530f3244aa7739187741fa991ef392e963bbf1d5f8bf811b26a9bc30ba95f8d41a4628c4d0bdb8df76276cbd727a07cca90f2ea783aee18ecbe486d4555caaa164a5026a10a28ac96b3a92375cc614f6a901071b99bee4ed242236d69e87de6acd42b863d3e3c683e1cc1ec0892e06fcd6c46f6a1f655d68d72dbc94512c99709192d86bee5888c1a5ca94814ef0bda442d49c31dcbd6f8658406a8e93282c0821aff7d34084520d23729cdeae6fdd196128f58e0d5a2df88558ddea48c45897a63da883bfbf73b2e9b5f566eaee2e6c237c4fdc9256619d37d72824db9f9e7a1fa980883e5f305547e9c8a", + "12d2847841c4a57bd272d92467b746c33ead9b50efef7442b2ddc714228e08d4c9c3f53bc5bfa7c59f172429ab64731f63e502c5adc87d71f9e49cec89a547ac02d21d564c179b72bbc2f9339d1aac4abe240b0bd870f4d9ab799832040b26c44e90af3d4275df037daf5841d82b3d754acc0c76495616f6233abe16996ad14c105d659d04c97390f2691ab56c60af5bf0f4c8dfd322666d150e05b6e530a79ce1f46612c6ac0a79675ca19cf7230e8c255cdcd020c10d87764130e1d014175dea8d30a2951b03d071f2616c8be3", + "1290ad0d4f352daf14e1eb3eb4de92908d60b0476e781e4c37fe3628abb62637cb5be68074a2f966c2f4fa261df6fcda7706548f39a52ad54fdf3d", + "1043ce40b19de025e9b55843fd5aac084e38fed8a639f2169fb3d81163aea3e982547b10e3fd87d8babb1906ef528ce502f0a4d875953c66539a7380a1a126fa969b6bc379e834ce5526a4becacff18e1b72ef66b80f4e485b178cb15fb9d4440949ec9ab364f3732ee7bb75c013c6d179251c330b9b30a70dc0180254ac258e60382051ffac383dafd2e3b8f53cb603658dd09a83683bd6d29fa2f9d2eeb0dfc31f810e86870dee2b596eaac11bbd0ba3c46e3661a3ea7331be01fdda65c16307dd596675ca4e9a064585b98a73" + }, + { /* i=1211 cDividendBits=3869 cDivisorBits=3788 */ + "14214281aff1d3f2fdafa81c9a213c3184ab4c4bcb6bdc3d0273a4aac7a5fb109650f59b9d89b7cf651a398f2a886b7914fb607f9f96b04940231e7709c7774d2dbeac9308e20cbbc64cf199e5924475037f9e293866df67021f7e8081abba396d8509448706401615fbc6b8365c0b4d7b517c6cb6f07f193902b3819e76fe66ad12d06e74af2b140480197c9a97379778d31f4560ab846988dc1e3a89a04fb8284bfcf33a6e0470a3065a897ae50f60b97dc1e57afa0a50cdbfb7c5d1aaa9df4e305a24a09f05338fa5ff3a7c2eb49b3abe42ffc634dae5318dc533eda8b707ae4dd27448e4fe87764ef9ac3fb53a7eb78ef6e5f0d2b5108c0a09725aa790e439cfe5cf150f25d0341c05e6da7b1b1ad97b0fcebdc55766257f01f2f65f1f678f707342b4676d4e36a8608f6b80a99164d8e25a1cda67d9cc5d4edd8b495d583888d37b5e104db3db2fa7bab7701c2652f9ad24f07966565e5980548a2e8647ec8dcc98ef2e3577c64f4b2b2a23ec9825335ebfabe405b31a54839e8eacfa208a01615c60c48ff24a2f766603b0688c34626bb95b839a8ac89f929f2d90f98f55c000e59bb479e33e2bbfd87a937a37e219c4b7a2726eb00af10d55f6989dc16a6c6a58a2da02905978a77d2a4bd5282bae0847859ec8d64d5c7049a49745c6e63e555a", + "060361ac85af47201d1405e50cf1606161ce4d56438937cde73bf656773e0dd7be00819654cbf420c94ceeb5b82d3839bc93df710f4d35bed2f4f853ca65c210e2466419d1fbb2f017fa985f246859490d69eb1441e3a4c5246f7178fb42d9ae673efea945bbc0cb5d866b010d0ad0df16fed55d9e468d67e1d41242c737a935d2ffdb9b5cf15645ac0be577b842f92971a786390fc4b6e9ce335ca8c4d61dc0e2f687bb515dbd2755cafc896b4b09f7739e909f4336138b48c2b0afc82ed8dc1ff8a2e51bd392c9dcfe7c0aa18e6526677ce12285205c43df6d75c51ca6da362ebfd443d4b89bc62f10b88f2b38200dc27a3d0ea15562e9c8b721a1851c17cebaae86532ad5a7feb2a64c5dfec763136ee981f7ab843c348ff9b6679f330fb56f28630f2293244acd4d874407cad3c286c1ee9f95d9f65560ae095d91c9c445df7b97e182512d9f2daac912b32949b11529d2e38d04f79ef129cf67eb6bbba7576a15077ad7a8cc27e3c92ed7ff07217ab378ef07b5df4baec900f5b8b18b012efe497e8ca79b0beeb9f4b0f700f3365a945cb91917d647504aefea51ff4068ad5b3113f1f294e107f8cdca0e667637c26ed787dbacb0c62ac6562b088d62ada6164976b9980afb16bf639d2ef60b449a8ad72f673131cb3436", + "0358fd6d4ea28b20b82f9e", + "04899c24bc8495f6b8c328829826569ed5bc5cf48d0f5b26d06d5b2210198ca14ca93760c3bc7d1a93448d509b51563674a99dec2eeba09ff070f589d0f7f8fe868f2c46670af731debc8bfb14001d2fa72970c4f51ff08a6b5ccfda56c5843d65560144987e6839aa54c215800081cb77bd3568eb52bbbc1c95163548d0349eb0d10febf34b74e9624b0aeef85068e6c2066fc2bc0e18006557fe0f853a831ba384e1bc52bcbc3a3f1bafbcb650710084220c6aecf790aa9f6cd943a79b346ee4152bbcccb79cb6d2067f7d37ef29a8409ab2c730a5b93a3694aea038aa099f44153f8e9a16b5cbc1aafe7b3c0dc8fed506417c9fef54b0a574b597fef44e0d1cb4c961d6ecd925414a67ca23cc68c1839993532e9a0009ffdb61a71ce3bb1257447f7b41670daea57608d0635058ece4358d531473086641acc0b165cb0821ae2d62c0df63a5344179daa810f92b8ac447db79fe945f67affcca54a3484695352e1e2d68aa11c70263251f021d79a3a77d3456ab1fdbbbfda422afc6056208a80f2cb66923e01e61be6a82be8c8d625d1f7e88c3c508b878a59e931a666ac56017b26221dcf594cce82e04081b74af8ce39a48fb486919829b95651cd9ab7bbbca52783b4ede24c9dac5ddf53b6c52f66348fad75f956e3206" + }, + { /* i=1212 cDividendBits=1518 cDivisorBits=399 */ + "81102a3df2e43fd9085d170cb138a1c80c59925b241c1ce8a21dd54f427a9cfcb22d58d302a57f4b0097257eb147b1ab79d2f7f918be1c9d17b1ad68147c4bc0e8a6f692fa2b88599e560c9682dbeced9c3c23ccaa12aa964a14c968971846212b9d36256d88e41f043118708c5293adb9289146ccda2366ee3584330d460802a2b0619fd153769aff5f13866e61f318f744f7c490bf953c9ecceb55b57cf652e7762eee7e66efa850fd96ac4d8ceb91bdd7d795a26148a50130128fc5", + "3bee4144182f9ccfca679d0bf5eb29b587bcbf3f9168482c7469c6f0fc2f27aae52f580c880df94e04c5441c7a5d5532e8f1", + "02274e6b8856700a2cfcb0457ef30af3ff002df9b44e861b700f8373b9348636ddab7e54268a43f95737136a97c72aed9232e3f578f21883c079a2d7a0e22ab1e3ebb0bd54be7e3e366eaf379a1cb6c8c51621d4c430cd556e9d038bbbf28a318dd69b6071d472394eb01ad2fe6700faea227bc58f8a5a3fe4a167be7b9736213327b08547096007f9725efd", + "304dac2a46168b9c0f4065063e640ce8085f4c49e586b20db014939f646c50d7da7bb027f3d753013cdde38f3da626e7db98" + }, + { /* i=1213 cDividendBits=1854 cDivisorBits=1388 */ + "0e9a4c47a546362f88375fa9bdd50f16e91bc4d8645d376ead51e60e70b89a2d3d6966d014269708fb7cd42ee30fd101bd1ec6356f784606d88d7de9f9682bb71fb7ff232a4e763f37797269fbba1a2f82141bdeee7b65a0aa34c2f9f4035bb702e83667326304100e930827824753c0bdc93d2880493ff7c814357a7ffd38b9225e14dc2451adf20ad26e529197fddcb6f6a6a58de413eaf7c66aae10726e96ef3a51296f0a291ca4b83a1852597322ce3e91ae9726f6ba8611ef7c8b129a1dc6f0a1e03d724249e317c2f327d0cda0e917869e2628d54c5375eaf85c8e64387f6fdfca12bfdfc7", + "045b2d9750b6feb2479438c7367ab47a96b3729228cec17aaa41c105fe2d04dc4a5787aefa9b63aebbeb04851624a7d0ce016e7015967248ee111bfc1cb2731d1ca8365253d86e2ccad4be5347d55926a3ddc9817d7081b53555fac0f04fbff62bc123f8b0a24c3382a15b4d0e2998a84fbcff252d3e6b6e83315b5561ac10444aca56c90278e24a7645b1a5972fa5d4967459f9727f4ab809e3d2701510bac5799c7e16e49acf0f1399c9e3ce15", + "035a29a9008e58137864aecd4404b4dbc8853f10707e85d173d75d6a2ec3a3ed233034b781f4ed3af888dc6635bf29a8b5bfaf57439a61cfec8014", + "03185d9ea16f23f4fdc7aeca50680b35141c86f1b9fc85adc4decbb6fbc87dc65df6e3589d78a110c0802625a5b877ac9a9a73cc04778f39efc70fbfb495b7f0f5a5d3353e68d730b0cf991f5d021ae461f2274ae7b484608c2ecef25df88906bd678f3bd53c504cd24f20e571d030a5b4765b4c45a0c7487c88b8a76b0982f83969cb1880e7a77defab93d1219a692d07537e84c2d2b6b495d4fc2d32fb742f4e7ec2a1501dc0a7693a6f8d4623" + }, + { /* i=1214 cDividendBits=2758 cDivisorBits=1942 */ + "147f75ee568cb046b2b66a5b33a68760610b823b864add8720c73c8e144194d7aba294f11cc09bd829a35c3096bc1ac6e75a5a235539c2e2f00bb6e13bf9bfd873368a1a5c93009ecad64746ad39ef13e4b0836c4a3f3f58b69d785bab0203d3fa03d009fab9992805cc32d54307a8253c73d5fd25b2a85db87b474c06f78f6ad39ff7603d585fa68d6cbdcafc955f771741ad6c03495a450248f764d0acba09b8cac4e6620acf3c799636986239b74b5a77896821f99c8459660ebbda423083ede553531900bb87f5f061fb840e3b522b4b360ead3ac3bba7f37d197bbd901c11a42f7c9e8a524c8fd1445734982ebe6f3a18f6d1c1f4fb8fd31de9cf0bf446c7836fb861dc6a719bd311c92ed467724f16844c53b39a0e91ebf395b8434d70f79d10938b8a2e9454240fe6380cc97364df6453701f9e25d3a515cd5d01d563a8e17e4f51801a2193bfad8b84f2ac55a759432e81c14ae458", + "069f97c526b20c0a09bdf35edcbeb6f4741a4536097f1156344c4b807b972e0903f2fd8d4308676b314e743acd78f498810aa097db2d7cf4eec8730baafff6fec76379edea3141cffbfa203e26535295cdc2ee22be4d8acea3ecef183cea887404e1fdb55d6d2224165f01210636565d760f88c5285876d0017365c5f22ea19413cbb975c3335daf00eb9eb20e42515074ef2eb385b1062d3d89f5986b63dbbf399c6aa8e28f92c2f8247f81d5d565e9ba29e28a79ee2be002d7a357254cdbdfbe8c26749364e8f6df8cdde1e2c28693b4b16dcad4c3dbcd3067258b79246075370957042e7b6969b587fd1c9be93cdeb850ef", + "0318427d815fe484868cf603a58753214388fef745b46423e5262dba84981770310fa89dd6b0bc7998b17f1475a80ba1fcd68865a1f97ff0d81d0de354d51d377a97238d26244ce64abc1554ea6d7854ee60a99ad45f0953c35abc9bfa1e332c3716632c09e79b", + "018f267436d4b89d0cc2a09f67238e193936d3045fca45e98ef6aef3767b6c9e01988b2e71f79a2995588257f21819e0210026561ecaa8079642aab2ded91dfdcc96514ef888f13599d9285f0fe7ae54999f42cee8792f3ed963dee0a45ebbcd3cf5c3a67337bfaca78e511093633ab67c988963a7c241b22a30436be49451e2e913d41ed9e7e289db9da990e01e433c4a5a92fde51ac3ab12c5cd921b837d5bd94e2128b97b496f648b137ae9c90735841ed91cea277c0690eab020d0631104b07876247eeb4c4b15c180fd23d528f80080f157684a65ab9dc14b13c64130b61167c1869158e31bf0b6373e66b0ddaa433aa3" + }, + { /* i=1215 cDividendBits=1144 cDivisorBits=281 */ + "47c52c20ea7f41cb7c3d5f50341f60eeb8bab19473d78816c59944e35cccc92fd343ca99a48ef2307459c0439cbf8f8b9652ea3938b1d2c776488084b81c3ba06727f31fafb5dac0cdcde0c7cb367711775bf118cda867ea35b56eff9ce8f7c821fdb1725eb672c75859ca4f22c7b48d32b2cd86c14a9d3335008c22d6745ae43d86db691fae8ec0a8a6833d88ed24", + "010fc088243cc2829f22dbe4f6a338482b174925dbd7f5370c1b54a888e8a3319ed1f12a", + "439c2c7075a46c8ab086ea7fd5dc4e1e0cee33e6daad5937f08f57182f68a9deede17ab2e217cf0ad44c18ddc4ab33c9d0595edbb908ba09a45d70e46129143f43e32af57b1a9b1efee03cf8294399637e41ca7232bca2c3d6a7ea283b6af92747b4a5d2e29caed08f8ad53f", + "7a43a757e5abfc38dfeb688f50ff5b0b3f73f2b16b1b6c7d0f870d0912d3260392a1ce" + }, + { /* i=1216 cDividendBits=3218 cDivisorBits=847 */ + "01de837b3021945ae9468a33900173536ecdd47fafc1dfee133aec31e28ab6dba4079cacbcb80b9c12a636c3b93e6861d7ee8763d5b7f23145ef07dd8e8bc90b6dc1c6259cb4a527f330f348eb0ff48ac930b4b3c2e61954c20d790221372e5d0997ba670826d9f9f8082a6e03259f79c1da5d2d6d4d94dbc511ebba41014c416337a4ca312370e19db4233c0edafdb91cd8842626d5b7342889d0670930862413cd450848eade61c9aab59d3e5e31e8f384ab590527454c948a14de715fb718dd38d1d8b60db6eb5a9f9c300b4d9259cfa5a356134c9c6e3649e11a209cb4d9e073dd74d79ce3baf45e0f3f27f890f0872ace516ef4f930d211401902b46765e36f91e22a6f94f3ad217d6da5a3f036a5dce87292162e1b40e8b84a50a102be65d7301f41c0978df033b92a99ee3026729f8819c0ffb983d725fa00d4f9a63773ce4918216c0ef17449f3ce0d61e5b7f692700cd4543cd272ab46cd4bd232105182b7dfac8e20dff03424bf7f09c7cfdc9cd27bf8de307b649b450f15b30da9f83f1a16428f580f39a3ce7bfe178f68449b72", + "48d6d57d48a5d194002275e0a8ec59f4a0a34f084684ea38ea80f24d87e42dbc92caa5eb1419897bd508c17e7175812b540e60dbf0a9adbe2e32dbef8fbcf9ed4a28920e9fc6beb7e826a42187f085fe038e6e33176c2d9d5f9ada4e1acf97450dc1fcc229b88cb75183", + "0691c79bcd61eae55f7bae6d47ffab12f832db409c134510c84742a33523f6284a7779b493419e4e833c4e8ac42013b880fd1b746c26b3e54ab8c5d7a001d099534814f7d68dfc28af5f17a5655f18a6421aecc964540414cb0ee28c975c8dd28ba9b029e3cf8c734460774dcd8f537a898b1bb142daae987b841d93f44f15ab4d1f6a5018609c458cc75324e97723450ae4a0b6d40ad16cbbb786f0abc5a1a4f22e281a312f2c20f4394f379f526170ed55f0ff6a9fa9c3800269def1f87a58af6a4baae558694092e09ac37cc4880ad9560352f7358d77d66a46c95dd55b5b2ecef10509119a76d17167aafce40a2b6e98d8a651b29b665f01e6332d9d9184ce79d1410e53ae32a8374da96d7df95dc061bb0e65999a7129571638418c47f4f072fda07ef4209b77", + "1ca0c2af0301cd1cb61a2bc61d44430821104abfe50b3061ccd669cf69b167014cf13c8a97245f0dfb8356b2a9263403097ea8d8b0b5fc07dcad0c6cfe0690185e3eadf5988618255c587253324d55f553de9f66395728a6d105a42bc3c74110477f97a6a67df453668d" + }, + { /* i=1217 cDividendBits=1468 cDivisorBits=174 */ + "0eff13c5981658a5f1fbb99601a6663826f8a3dfa9708ce09ecf54c2305e1e8cc8c16c78a5171113facc5995737913f2d973a8643c4b875ae315f9a2cfb0fd447968863565f394c63a979baed810f0453f3ae6c02a23075fb60da7339e852dc7bfa3241a68572d57b5685ed05940a04499a2fac5d40f5c027a80da9bf1d2e87d1922b3ddf54c0f2e721997ee9b30c1b741af4c7dd00c0c43db70172d671620c4413b149c91548ee5e7bb21f200cec843027559515182af55", + "33247d8f9a3ef1270cc6adf06f664dd2024c782659b2", + "4b10f3cd6bb4fce0f7e2fed98e3e329fe000866b29ac7f398e09755dfd21fb04b0a1383ace7f46a785733d67414d3991bfbfdddd47d5bebccea0cb955b4a4c477e94b246a04ba585168836bba0939ec5df6c2e7d942bca84d85cc252f011d05b9e7ace5c6d598bb46362853349b9ab1129ddd7cb52e008911edb47a7a74658029ea292cd178476f0cd97a57c95a6938321f3397c33ddf5721f60c9e7c88d652b822b", + "197ad78bf18f498c67a693a7779ce7f45a975e9f3a6f" + }, + { /* i=1218 cDividendBits=2035 cDivisorBits=366 */ + "046b52e352fa048873577da55b94a9fbac810425a832d861078c6f8380dbe2c0f01dc232887c09dcf9f58c4c5c8a6caaaf0782f752003814fe34c8ed9e565278ea987c8fafff3d8468aaad34e5e97366bf0bfd3ffee62003680c7b192a156b6040ec3766bad7ce8e1fe22cfa5f079838972f518440f2ceaa89446aeb7eb1315b72ef48fbced276ac58019e2c8015aa1f694b9a8d1bd0bda0a6d709ee227ee5db921ce7b51351e1a0afe5ae69132f7b54d940ad69f95d9795b3824e5fc40ef0d5af792ecc2facdf0f7402aeae7dadf45751ad09dee84afc47cbaaace504878557290302d85a0a6b49f11c25f5047507a5aa43d1ad20e819f9dcb4a8f4bf02a4", + "0cc4e5fd36a04311be86e626f710c4943876b63a79e4b4f36eb17c7e0ab2a45bbf1d2950c5dac7fff89547472f39", + "58992b232e62b8749c400e1ab952217e9aac328af4bfe6b68584886a272a1464ccd70febf29cb45a6c7a9706911e351edfecab99f54ded1903ab33ae02a59f8a11d05e19b11b2c8f7916b41633a670fa2347edf9bff9aece64868b9ba72c39efbae7d72c0cdfdfd1f9096af97affbb99e2374df238570dd09e10a15523adf139d501d46f36d9995c8cea319a1e20a244a7179eba4b833af7075d78db3ddf66dfec478ecc945afe72764c09e6fd22f70596cf3963060d2a94e03b765e62292507aa260b0ed2d89d7d1e631920e100e654ef", + "038e9241eb2adba16101edd0d5a6bd3a6453508ca5a3982891d08b9f0767602dbd7ee4b0b83ebb2bfadaa095386d" + }, + { /* i=1219 cDividendBits=1981 cDivisorBits=836 */ + "1e09573cc9c48000add0f346a41c83a06f137e9530a867fbd606902fe3397010b8b3d754f028d33d57740ae45e1c027e4bf1c07652a97ab5619db5a3f05c88af75cd3845e901a857dfe554677849b92dd42f85849604d42bfbda281223307ec994faa0d084381ff792fd2f465eb275b0a8beeb8de1f9c98c553dd9421c9cf38b2a0adb9b5178e47f588b895ea662cbc1b5853648d889e3aca5ed103887eda4ddc0147a538c1ac3a382a7d4e5eccdbdda1742796133cf217fba5bd329d514243b279b03428d3bf36c5822f24c8d59b9f66e22142e0ba76d3843199e672f73aeed33e7f9e400dbca45818cd4c5572a06caf47c4a11d06cea9f", + "0e5086243bfaf4255003bea371120b3d8c9f70a6942d98a022ede942e77c3d488edc2aab64100c67537e72db8a82df4eb2cbc1b331944eff98e95988ce3c85e4dd367d2c9cbd7abbc925566c46ccb7f771c45919ed24158d640d84b7477ad162eacbac8fb571b887a9", + "02192b713063547fdde3cda4c7c3ba692cc5e34e0805a7bfcada59f926c3d901959932c575e5b95cc45da3862601eb6ef7bc699bfabf0fca63772df4ff52afed41e65cc2345f93dd3261e4866c077fe470ae2b820dd869ef65b22ce8e296186691b468d0cb5365ac94633899ff91b585b3c1922d3b3dc849decb9f146c26df945e77cace16dd4be3ef5ec8239389a651", + "055b434c38262425383d8ff50d09f5fb69592186538fe5928cde962791cf98f06f01c74674c23e190a9ab5fbd0a6d2779917b8b890a993ced57245b033f727d25defa8b757b38b5fd17232f91e990cfe0f1cdb239db4ac05681a0c8cc0963e27a63807c42988a16826" + }, + { /* i=1220 cDividendBits=2063 cDivisorBits=2060 */ + "331f1133baae113fc2f4357c3b760feeb273e48cbf0fc9745b337c0e883c56100192157c9cda7441049c298ad53754b989266e1c958e33a99c10c16467579f70a4365519dab2c8a0257b9783913ee22edb878c13a6d3fb2b6bec3451f6b2831f83916b50b8071a42d0184e64a0dc4736b94a7a067657b4b7844ca7902136908f5ca3a2d0f75e7be62c0b2372ad9374a3f6eb18c546cac122b6d8d6ec8eaa6c3fce00ab898e6e5c074bb180b641e0d9d25b81295b0edb571028afa083650d027e65d61ae8e9f31fb56da1b4b7b4614ba06c8abafab56e4faa60e09a4402fe4a2779b283051b953a562d7886c3e7b3439d2658e760be4dbe1794a3c6bfd07c5b9f7736", + "043d899cc7e55826c51a879ab381ca13d018d3f5da5c477a531bdc16614c066e8221f8539f660436e2c6a503730b6b6cce55bdcb5b5e7669c571e3aae752471df4fd098ff8cef94b816f732a21667b9c120bca71e71dcdd42cfdf59265cabcd2ad97c4727f8f5f001da0bf82b173298b64a4d99ff6213de754c05dccf502edb95387eb3b5e7471a00a26ca8b8f446d8606a2eaa434683bf36adbc8452fbc881d40be82debe2b5006261dc3125c7e7e03d4e00f7e2d9d3bd78c201d5850d1a9595eb4b7a7c8160c8eb4923c11a544e95e52a8d74c5d7b6f5923d73e058b55e2b7ea0e26b5a73af2267ee5314d31b5ffc986ab5d4c0ea918715f2ec854ce4a4e7dbe20", + "0c", + "3c9dda5bedef6e85b5da3bd1609700f149f50682bc6fb875e52b01f8ac08e1e7fa7191241241ae634c6d6170ae4b9fdd2188944d20a6b45aba15618f7c4a092859e25a30ff19161442318a007116de02fa0ebcd16e55395004b1753131a93f607435f2bd4ea6416c8f54444f7654ae01904686ecc8cddf8b4841f4a5136bdf72449c0889e92865b239a4e7f65e525ba7481912d1e7f1b9b48b73ae51d40ae0c5128918a4669bbd824c5bd9ebf2f1a461006f70eb7c88f5972e405f9b39124df55d7f0b88ea8904f6c6e3e3f5265b348ca0a36653a5177cb2c9b2017af7a9888108b28144d1e0883aba3725932b462ad65087d00e6098c71e7262c62500adba8db6" + }, + { /* i=1221 cDividendBits=1670 cDivisorBits=201 */ + "0ff568494c04b1e06eda59ef85d86ae8f9bbe2aad8f9448ec5405f10e005d4016edc8b47b4ef3c16ef6ed0d1af9052d1d03149ba0f742f98e4131b5d7b24da2c62ed733e7c285688c8060bfafefd470aad03c0a2b5bbb25fbdb99b8da22fd1e838d45d42b3d8dc009b46570ba2c998afc200fba984fd9da1b33855bf010c94eae0aefc8a4ceafc99520f9e5a523c856adb9bf075cc7eb6a76be817b9a4e8b3b0ded572b603efc7dde5a54033608a8bc01d48440933c06af4d704bb03bfbb6c4acadc62cd2a4f49e78a552cd2c532a22369", + "b7bfdc5f8ab1f6e200e0adc95b733902033739802ec0b8e7d3", + "163bcb96af6bd38cf2e4152854fa6039c4a51576be94e15a4975905813202341688db9f91513531cd56b982794ff7bcf351eab9e7a7708c37ee418f3e5dac9faa867f2cf4532b2d7e27d2d858ba859fe87068e0a0c028f5aab74151269a989c1e231d877f17dacceb86403a893af3f57f42b0ed85a5b3d9f6af99ac8d69410812ab42797116865918ec60619b57978df65a6131f1e0ca04394f35c22edad0708e88eee3d80c172f2bd9d95f5649953121b78bb6356f4a1bf", + "a7b3440e94d49d8c976640c0a1a47e27b9919a32f847c579fc" + }, + { /* i=1222 cDividendBits=2344 cDivisorBits=1930 */ + "ef67021ed1dcf1f7ca05a96aca90f0f548145f7b61d98859773273c5d370bd5f25116696b31552adde4bb413f590e78d93c859cf0ba520e04e4b2938584e25e9e95334375643fc84b9fe8d3366ae38058b14d00b7596619f9f2d07734e946fb1904b109f91e9becaa054d58d570c61d5a1355b99e9f9b70640bb05c70e2708e1cfeb1ebca6bc2d4751c8b42307cc9d8603b7b786683426a66c7f9596a8520fec4ec5b03d074cf63023a90263bd86c482b7f3666ec80dc89c2b5e04612d9d4019c0f79700c38e69b15644802dc4247bacadfd71a55cd28c090c13757051cdd4c6c814d3e4a83d9ced7d86f5f20b9f9d2f62e4562d0a87e3e5e3f8fbcf17e026432fdffe5e57bc7e45bf71d8aef534ef6d69da25a6dd7dfcbf085a013c438f52bfc325018fdf", + "9d2b2d797010a19a33cbf5ff2ab341b44285509b34b4a2301e6ff1b99a63a6ed1af02c02ee5099819a92665cba669b0092aa14aa389a2b535faec0baead8c8867d0877f9fff42f1841d9633410fb283646d683abc647b5ee1ed0b69b14d15da925d0fca8c4272775b7eb68604b1c73701376b8c1938fa6c09c9447a59fffb64027edc661cdd55391e6accb24e85d6e9a7d01426cfc3a4dc6ac13912ef7e7e8af4cf01fddc8252168079f9d1c94a05dd5a18aa276769c89e52d51fe37b7fe308bcdd0adeb01c5c5ffc5ab388cebc5835fd0e33b1bf3e4d8e384ea25e3e9dca88d9528b9e07ec25c463e053bf4edd96a3a9a", + "0185f1b70925d63bc9f78012577d7bb5913f734e815e6787ac966ff151e5909b990605dbed07b708e062a705a571207e88c6a8fec6", + "35dbf464c62d8d8263cda9d3dedac376ca727ccf26abb274815018616be7e896b3dfea43bfb5d431b58beea17fdce9ab8ee33fc51656a5b653abff0df7adfecf4605d75c76b0eaeeb6c69dbac249d5eab80cfbfa8348b39268581cac6e42d1c7db72a04aa10048628fa7877c54ca7f567d046367ef903f24407d781f9d659e906f614ab6a6892fe2af4e19417acbfa8615719fbe5afd01bc1ff9590a84942870f8e423a3ab444385fce3b4c1dae24b61b2e889d9faf1eb620c6519d58c0ce599c2df13cdeb9c2573e146cd3a8e55bbd0b4758ceda1ea6721ca2970e29ff22a11f657a15f1b2004888c3d298d3c05a370c3" + }, + { /* i=1223 cDividendBits=2676 cDivisorBits=1252 */ + "0e495dab18f675467296efb8a5c0f8bb33f59aeef25776fd7d81c600f8e921510c9771eb9cbadb09f4845a0414e5b295f3a42dc241a56f33d3c5c37de3fcee4fe68a8a3c364ed50d1e0b706393b2f858b1c5b6606d0fbf7611ee13505d326d81061dfa75450f8487c2c38ac598e6783d449aed36da9c3833e3da6fa9e7f075c8d9f8120147f2f1e1117b167a63fed81f27f247484f9977c53b0157e625d55ae1945f3964809e7c03bb83f88d6100673f24d681b8f2178190653d0bd9f8491cc506ca9ffbf125162e4c639d6597c007efb8aaa856d49427acca76c4a8c73e1604916c25291ef1b9a1a5107c02ba51210b14a44ae78c60a1523c4d309acb5e339fa94b8293b9a3f06f27f46a8da21c612c80e27545ae347612aabede13d187fbe5eefc03f2fc07a7e55213ded2ee8869c407b9675ef39f8608fe69bfc04fd564f38c06339bb8b14523d17757ebdc1c98", + "0247eb1614a57a0b6ccded43430e0da21299770a8981e4115c6b68a149dfcd7b08c7b31013567296f73d55141a3bdf183e7a670db1e8adb3d2f8bf44d1698db47ba9cb530886a57d487327335a8754e36ce1f4ef9109043dcd1bdd68a971c0bde52cb2b6f3c462b832397d8c880e9b759a001d36a39dcc6b65f8a0d58e904e5f8b54ed360471336162ad32c67f474f110c95b96dd1852a6e6f4240850e", + "06437404150b88481d53c49855d798db29a967cb9a010564af7174d464e248db5013a3b7d142e54033df3a80ad563f53fda04697cf9077612cf8b0afb7905da184252b379859ddef2059efafe22b461454819cdc410ceb9c37558e5adb724f3a7f782f194218cb25f601e3d820585064716e7f6b9ac609e2fc0208c1d80f276f0ee3f9f432a16a1f4bbea1b917a5a44278cedd376012804e50e038094c350199b4e0bab3c4e76717225e41254764d51af88f4c", + "517ee9ba409db7e1578c8397af7d019cf648c8b8863ccc075157be607df5f051526e5421a76652312ab2c7758f982259b9417576b0344666c711b584bd55cbcf14e77d28b24f5392612183a235554e17fc0219186bc7f950063665279c209814af896f23a205a4859e3e55a6babdb8e0b358b030b1a220af99294234eea2d5cac5bb31b0aad7d8a1bfab5e637bd31e3c63dbc53b5e7b9fa3e4d1ca70" + }, + { /* i=1224 cDividendBits=1274 cDivisorBits=544 */ + "f232e680260b5c188d12764a67be2dc87e0410645ac9bd99fdb66208c82c125a8277d51d2f4e939ffc4cac426c8721fa0f01d97e0b7e5035e0f8e88d9f94a45f736640ea25f88f015f3266fdfbe3a7bff4682342a38f00fb9a011f40d2a7f6ab423129678144551943afac06fdb6c3d67128256e7c4c94cca07bfd714899ecaaa80e979476dad4906f7db120228d9921f8d44bc4af956102ef629ffcb12a9e", + "1781e5769eb450ce2ba0ac96068f3030bcab78d0bfd9cff05acc867114a16c8e80b4c7d7007d56fc2cc1aef6293b4fa5b53e940ca6b79969df086f4fdf9b596693ea19df", + "0a4d970281aec99cf8cdd51bf17ee407f978c9d9c90dbccec11da097c6314b9e7d2a3abd265be8b10f0eecf85201d5aa16c36faf3fcddc0baf1ca3268a247a9165fa9ab411328304acd6822ad6b84d1cad27bdc899047ff4be63b068", + "0c6dd423d57db7ee93abf45031cfe42b12c10f9078eea62ec332916b9762567df1598dbeb2dc9bc6d34ffc9cf84e4598f9fc99041caaef471b7f8248dd774efb70905806" + }, + { /* i=1225 cDividendBits=2750 cDivisorBits=1024 */ + "10db9a5a63195008b79953f1a671ac2cf38061588b3ecd979902e8543667de3ed641aad58ffe8350381f234e6d655bd580751f4c700a7a3933229669afeadcc7d7750a04adefa6104339149d63929d88a6fdad552875dc32cf4ab1fb2c4e2c29450a8cf37a101be1eb687a45de91673faa15f93d5d0daef262fe5e5f24ac59ef3286cd13aaf9c934b35addf67c453e32d56252155a7ea79f625891238540dd8b93adcef40fd3af1d00ff83f698f80c4625cd219504e46ae69cb1ac5a4804bb301a8a9432f90f08334dd4b736d348a5eb99ffb5fb8c1c08c35945905fbf5e46c7bcece6334d4cd54aaf7f22665bb0c34620f01ea9f00be463a1b02c7db9bafd16e42b897dacd869abc3150b1541913c02aa909207013385bef5e9dcd2b6253a54861f14e980f60b38a2e29841a44e3da84d84908d52a9ffd1b624f2b6249494f6fec16ef09b7bfacac5b153b9468e4d4b59e9b383d2d5907c", + "e0431d9cb7601b7b95e4cf98d4a10f904d7fb8a46aa89ce0bdc25add8a669dbb0b15f4ce973aa52baa53d42b1e7fec7c26d625e8d8a581fec9b7ef047b9d1085ed9fb3e9fcbc9fa6f8bdf9f98a2252ea0372acabc30566924ef80e7bdc8e99ecef970cbd8cb3b5ad1f389b2be4e1509c26b6a44149bca5b704192c38578656", + "133e5a111c285ee176d34b847b8c3e630554e93b5caeee7ca7a7a39b7b160fd14772d708c2f215220521bbdbf3a54d7c065cb60b8e6c7ae0347ad053052c62fd2bd2e980e31c4dbe36b38c4e6fcfe8064a5c08348552ba350809e0be467c6f1e6fd55a0e098d57d2d008ce97c0747e92f6ba5135b546cc0c5040f7b7c8ffc7af5f9d5a2eb23970a6e3b9aec7a87ad6eda85cf4113555585942302adfe4b5abd174af11e0751a71216a5dcf7d9a6b276b1799d807a3b8d3d477b236d370fe627aaa59226108d2208f100096778319c1106326b09f7a01fb153c", + "989631d644a816bc28ee004815139f7935ffd38fbf69834d33c5cd19cb323c43f9c42e7b45c2247577fbdd786aeb6f164c2bc1794dace6b699f84bf14deef60fdc3f5da0f0533f8fc6c846c2f89284eda0732b74685231df98217417cc7eed02789590d43c34dc3ba0f19a9620d858854f3ee7bf2c85e2ef0a283463fb0654" + }, + { /* i=1226 cDividendBits=1348 cDivisorBits=347 */ + "02bcd420009c75d7507424d7533085945a2a8a1f2c1ea849e4bff81e74a9c4bbf7e49aa1ea460f0df11e7353a8a1e952bb71462209429d5e53faca54932b501688953d32caf55bac9761ecff0617f90b158cb3b0b435b4768f704c66a7256e5c07e0efbd5bf18d08534aef575d46c01c01f4a66539e856a0850001300d3d1b781cdcbf0906bfb209be644e23e8fb4830387b2f6e88fe610b9f2baf6b74f1ed29b7428bdfd7610d79b8", + "0496f8a98ee3553406936a20095271a15d89c88ba93a21623df994bf2eecfe35bea1eabffe7b8b1fd9ec396e", + "98b1e4a413e8a2a962c55c23d06d321ee1496d6d48c8a4391bbae7308985dd57182dc14c22b9b0aeac31d129e5e5793bd7b68e24ab5128d6a648460aa68364921d5ad0c810b70bdcaa978f0cd178e38946bb359a9feefd792ccbca175ada6a3351bc3164c6646e4c907ed47852fbadbf8e0628d1085786b76d8c34c1e4", + "bda9b48fa2f82a5b83aa83334c370ff5d95cc4c5234c64020a515c8e51f8cfe15422bdb2c56af4610665c0" + }, + { /* i=1227 cDividendBits=2802 cDivisorBits=1295 */ + "03b50115fb2baebbf611b3d405c9bc18413f562705613692384f155a7a268ff4830f72de1177a422e48f017111a0731e0ddb8f909845a3242a8e2f54e037b5937c2dcc33153c3595a5dc2e1af26f59c225dc1675f6455be9db62a6b37acc7b8c9effe038e1588727575959b882c94af36089e9cfa7547459d05138d6629145af15517835248c2f65fa3b25b684680c7a5aae306f6850d5084bb6eab7ca977bc26ac71dfb5bc9b2f69e988c2bff5529197a9cf1b2e66246564db747736664e8576e09086ce00c23a85eecc571e0844f027deb9e9a0b74cac4838c9366451c181744d5610a4cb7fcb43d0b655bf87c1655e1d2e8bf88ef4577871d836d5e266c0c3a1e3a511b9aa61ab78e441089f6020ca49adb90f2aaa7abf5fe18d56b8c765a112eecfe9600cf7ebdf1823ae1f136b9167287ca3c42e94ea121ddf54eebbb44830442f939e0f558ab5bb6173df8618ec772bbb0625c9299402c9ac655a53c", + "72246a2d972d62e104fa9f673703dbf6e2aa8d72ac11879e6faab9595c1677298bd83815d38db3cace3b84c17b4c2c6666738d18281d446801373f9c3ce3168db33e00ec1dbc976e09aff5ac606cb2bb02ff96118167d29f0a5f5424dc796b83d1af11260e109d5d634f8d23ceb4463df0d839ed8cebe756c32064c12d22671f198b2c6a0a165677a95adc0bfaf36b590ebcb68bc17263ba12fd4223dc4ad3d3b014", + "08507102eb99f28b3d83d30109ae54f270f2af137a28200fa3f640d3f30dd1184401a024f6500cbdfccd489a47e14a962d23a0fed7699d7785e22a31200088db8f800373753370da73712f3b9bd0809456e5437c3e5603d91fd5bb3acfb6eb8bf355dc3823082449d70bf3c3a3530346cdb233d2a1b022d419f7fc41cbbfc39dcdba548d40ac954e1e7db3daa890e5021aa153aee3077fc0b4ff997d007fa88bf241cd9cabf718632aeeed6cb0f0d9330f95a6ff3d4c3f8d1c9c2d05f2", + "29e7109832e539682a0cecca2f477c7376401b9b967c65c14ba92fb4643c43367577e7c820551ec5f8d77f9925c18abc9474ec8236b7ab7401afac0901ab5574ceacd5cc1400227a0bc33c2dd1fba8a92619917c0bffae9b9e9a275d9a949b9ecee9e123ee531d327c4ac0b7b7167625fb413051b8f790e7d23bbe4778b0d10df0e02786df4567a9e64784ac77dc8275488fd6040b448cefd35705c1f6094244ce54" + }, + { /* i=1228 cDividendBits=3728 cDivisorBits=3067 */ + "fec204aa3823ecaa05f219e11ed7af7f2c173828fb1fdf91913cd8c58c1c2754bf4cf6c849383f90162e05bc4716e069b1456a58bfe1a51f186c4fae50b3c42af2aa358276f57cc1bc21308ff8cea017d503723902c639adb31a6cf642f0b7cabf933742b88aa0ddbf05fe72642bf5bdcfe9b82a3f3dc40e7e8fa88b8ac6517602229a283eb8b6818fd352e4257c20c4287b71e9fee41fcfd53d16666afb1d150cfbf8d8d3d3ad87c8f859a4ac6a18860be0a98fb62568759d99aefa650324ba91aa6732228e2dd342bf681a2d859cffd6069d2dff76f6ed364b622c782eb3120d02cde186a152541cd1bb8cd54da3d368e78ba4b4e9f236956801a7b41ab98ac4da34adf10fe4e234baf60c8d4bea4b8561a96eec1fad3af1b6855dcfa155fdce1823813239bc7513045debfe65aab5b1f7570d64841ff2cc0e59fadc4ead4af013cfec1d06ef7482ac8af67079f1ef9d6795fa71fdee83d868a49bff5fc8e0d9eafcc7dbe6fefd9277193845373ce84c759ebbb79b3ec1caa3d16308cbce45258441b330b6a537b57b8b7165f38da7e17885bbd728aa93a1c57d62a784891f24ea51e1351403358ffb97d8910277e120cec76a6d494e7cb0f615251226249b1b957115ebbebcf54e5bcb73569bda75145e", + "062ebfddc8e767f3e6628f007f3d14a1e0989e9dffede72c636e4d73e7477195cf4901a44c875d82eb98e5c868b730801c30ad2716571a284663955a19c5cf32ffcf391d342275253340aa38107388b0a14115c4626bd2739cf24699904bb0fed47e3bc3eb5f2106f210fc78a15a0192a031472716f1ca02f8a565e3e37e284a686fa4a314cd265b44b0c7139d53674c4e1068ec27fb0505c38e65e84663e18e85540deb6f9d65176671cd56d6d03dca6a28a0f80dd094780fcadb74c8a84812a0ff3639254b589a9ace55f8130ffacf460ca43e8cda579d061fdc021d2df3bdb2471e82d6e677eaed8a372f37fe9fd0ed28a09576fcaf9f13fe9e3542e191e836c82471080b50a2a05ad5310de23de87ed5c877636a52c25adeb3bf92a6aee1175b5f04b974047880388490552eba929982f38524b9ccb5f0d29da067fb7bf57ed582ab0c7bb5f0ce121264bf613d00a600a233407e0137a91e40b40f6f7784fb2194649ae5728695ebd22dcc46365dda94f22d7f1cf20e2606c8e70ca6782c", + "29349d14c17d0aac2d367d38a21ba7dc47cd13d6f024d5d8755a26828926dca7f744019bfc9118f5544d9027c2135f962a1ca1ce0e9faacc7335faa740ba1e287794285829b96c7d60f37e25ab8127077d9be0", + "034757224f563785ca09b1d10a8b57770b5d61813553d44c0f1848d9c07fc96390c54f3e79d9fb71192d4b5e0ebaa56eed4f5bc400072d0409c909cea758637d6814af36d27e35dcf9cdbf34ccf0442dcb5fbb4f53f7013cd39a8c6b4d6fef79af746b3f2a71667048f09e067f86c5fcf0395a7a606ea968adc71ab2a2040e7f36712efe6354f1462c25ea85b6c808bdf2c6671b22eb17ddd5073a5e977ffeaefbed0e70bdd932d74f5720b508cbfd44fbcd18bbeb62bee7afad97b618aadb908ce1f93bef19df37d3f17734e7523a5baa8e1b77e4a814e23502080a69ed0616d3d0c8e941847fde10339af4cd2e1562a56b5c66b5302b1b397d346ae02a81db14407b59519d2a2a127355fa78fc59c5f9cce87d31d773c364f51459615e2c24a0e43ea0dc728a0b5380a368d21954f145e0968dc154483f916068b2b143d742e5f40ca733981cb2ac19e91d2afc7eae5fe81ef31bd18df5a2ed5b3d315ff9bb5572ab745cb960332806ce43ddbdab4d812080f0d130bb5a8e6772821c8d49de" + }, + { /* i=1229 cDividendBits=3698 cDivisorBits=1488 */ + "abd9ba2f2a986b495a9ff0c3c9371ba49199146d725f36c0c83f8877e43658c743788faac73586643005ff8de012965de56322d5a1c978d1049fb2a81bf2350af15397c6e5dc49d7fb30b9ef3f59741fccf126a25d8d7e13e7a12e49f0672701b61543e7152c7d5628b8d4a753c90518015213c40a1c875cb32db861dd9b34eb6a316d139b467e3d23a35cfa182a51c29a325467e009022c194c98e3b20dc81c2b9eca01df43ef2962bdd4654283e1d9113cdacdaa229d43b5247d3c66aba6fb9a11900000ef19a7266651ca9718d9112eebdba12cda3a6c93cde02c9ef902f389d84c855f10c1319417a738acb8d1bc33b668d44cefae0f8df6ffbfa652ae1650fe0cb0b8baf9133589382be6d14f112ea4648834810ccecd5886460623e0d9f4934d378289cf50115b3a106c5df160fa41c54511e64478743d6729788e95293e7b46eebce9c4f4b8225968b8359a87b799489ece7734f3903284fd92d3baab9e9f06c24e92f598d87c7f2f156a2d82cc5a46eec549b0a6bf975073a09e096e98f9ae24f99d813a4eed9c3373820d1f0b2729c0223bec76f8976e1ba358a10b1896b72852bc4768ed515cc8de8db24d54c8ac1c1eafb405296f89ba0db52b5ab3b55660ece9bbc349ed3cc1242f", + "cb512f08f7e6dc1bc4ee94f94b3e7fd38d539f6c830edb5b87e8a49cbb73d1fb864deb093ab8bea5ca645c8d64464c62f28cc840f75928f7abd545079f019f2b5e42090de5ecb4f9e5f3dc873e5f35be873500325fae97ea376c4051517bbc35f6b49d8ec28d7e9c7498b5a1b1b5c31a9916f0750fb7fcc33cefc3742cb11b9e03cc242d3c9f2fdfc28248c817a5e11e73003d06bddc6c2ba29df515e990cf0a573d756e02fa5a371fcf028c9394736c6e66340ab100df0dffa2", + "d8613d5db83f1cefee5ad36236f4fb34c8cdbe30104710ffb45b78b21ee84bfad3fe4f6036e04efefed02575e0c2e2c876bf68df5da7cdbe83cda8589fd7da6567930182734f2e3252a0e0249e2551efed3af4493c947c3faf912d581c7f4c93ce3f1270a808de53577fb7cd02af4648ebed67cc9a3d9ab28bf33c7ccf15351581325209dc8a328bbc70a9abbba60e1c50ba96d3a85c810b4dbda75c655498088fea1a46432c74ad0a5d2ec14fe7f685db64254e45321b0d5fb40c1e07203001521e1335f7ee4debead297002a96746c6e873f9cb9797082682b0911d3f48a2f7d8a08419aef338be98d5fcc5c5c3c413a8000919713eab22e164ccb96ec0f99fe0525cf36bc8b84aeef5daa0785ff628ea49a39", + "6735a4e8175fc1c2408859c48c07bc14c020b98e9d2547584e10e2977b735a7f99e0d7e1cf4d835799f343b91a48902935e0b0b46a4642026ba2243686f01b6e388301174e65b76242b5c549d0d0d76c8ad403ce574e25ca57ebb0c937b8003708b94cd5d833a71a1f3bd21a9657261dc7071be25818f61dc6293767bf1a6db9268f6702b7609d7eb887b1f8fcc5b126d583421a9ee4c7a0341d4bdd4ee2b0a0db36d8c3ee03db8ca0310157ab33771f1776447677c58713c51d" + }, + { /* i=1230 cDividendBits=2027 cDivisorBits=1069 */ + "07c30f00b3ecaabfef53e09549c82d013908972587cf6055a473bf7b14cb6ce0e9acaa1ec5ec41477469315e52e38e9d5e0b0e7f76fa16ef56e982fe6249ea32a30286deeaef16ca74f43c0040a787b82f8318dc1c0555fefcc599b133e6c2ac953098fece5bfa01654e2e22c37c9377f9bc231a5ecaa7fc4582bdbf5d32060f48a87bc0ae554b6ddcd6bea35205b0488339347840eeb44428c2eee95afe1b0640821fd0c130910ffc89d350521a1ad84f25d5f7c536c8a2b0e1ef48400e18285ed625748745912b10d43607b3fe5c8ff906febcf13e4f8cca9bd762371e9eb711b8668c53e0645b486b383e9025ae3a628c7235a40d6f076d266561b5d5", + "1af7de69ca2b6c62059d7f7c4e726f98974be11997a36fc8d3799ba02ad7a28b6cb5c34c919504c59c014a7dacc0d106ad996484e83bc496b3f66ea2d5a5fbacd49f9a9a3ab43a1c017c8347e7fcf069bdac6d84c08528db3524a887dcc918521f4a946e9b2c760a196375f70d384922a3d278e625705491a9088ba15bb3f71902d992257744", + "49ae72ed2e1600ea651b733513a6d154f74bf074dcc38a7fd44706ace426a74a97265df0f90df8a4c2ead99c24aaca17ae2deafc8178b64599b9aea5dab3a025bb61d381a36b4f7c3ddca72b2033415baebd774cede0fa231507f44436ce7fc7f665035ad5e26ab5ad142c555c0f45886269d64f5d93d99f", + "058365536d7b0ad77f76fca95beacb64a85055e1a4093ff0ef8f9dcd3a933a0f37aea67c533e2d6657fc33a1cc8f715bfc3cc897a85d40f036a2a84dc7f2322835c2cd6619b38dfeb3c3c5cc7dc2f7b674b35784aab3e192d2beeb465c385b480908818333c79a4631b4605baa28297f506740e405576f6939dc20d56ef7b7e70d4fadf7fe99" + }, + { /* i=1231 cDividendBits=2968 cDivisorBits=1070 */ + "1e54f5754c806be540a319ac6bd77fe7bc8535c3897f0ed4770ffdeebb2a15d209696c338d0787c5d35e01ec270229895c26b7ac92dba99252339ebe90805bffb2d527d01d64e42094c431aae17ef66114c4689db5a3f9555bb7b8b450b777a71c67ff437d6905393acb71efcdbe4d3c8658813ca9b2ebd4ab4107890bb99bbcd6e78f6dca86ffdaba968a22e4be9183e103735491c86382161d9991dba9282c952e21ae073ec91b75fcf66892dc4ec0d250c3a0b97fd5c628691b5747452df0d4afa950ca25c1a0936e6d4390459859ab747210e991c8f79e34d0a0ce2c9d9f1461fc53e82c95978659d7f02f6d1d537114cfba7ad3490b5c8c1e8295793976b2e1622e416d9b184f7239f0a831f5574fd3fe26ddbf0e17fd895d1253d6935972051975096c6deb6aa08c35ccc662c02efc63fd7146196a706e0e3c6baf5a688596a161ff3ec27a0f376d72dc79a5d339b480643cde1a53c0f1e20908bd8e49601c5f961b66f5a4e00149eae535568abc40ae", + "3257474a40eb559c5d4eea1cb35049a72028f84b232b1843c55ca50e4dbc33a912a0c8d64908baf3990b6654ab49511b261ce15b10ea8ae2797e40f318d4a09bb85e22bf7e61e1bd040dbaecdfafbe143044cd02a956e9905de20fbfbcaa28ef51f4bf62811333455abe00acb029b63ce5e864b81ccc51ac45ce875ff8e6ca1cb878fafdf09c", + "9a3f56edd2a988730a662f6c948c69ab11bcf58c6248c72e0531fa2b85a77505ad1854db178599d02c5086814620a65615d76315c79f436251204666d17deebdd331780af0b522fda76c53fb98bc675765985389193b131c81eb381e71bfcc59ce128027ace07f3a6f12742d4a47a8f9429cee4e272d4411552d53d1855579a131c84754520f892fbccc4b992b04989d03e80935b5c7d555ac9ee452e4e4a80fcb202bf04f28a561f1a6d3d989afeb607ea8bb1a76c552a28c8e5e97843cae2844a59fd7fa358d90b52ca79e9a5d9048479ce84767ef1b3a2a30c2d6c1d6e890285a5c0a60c900cef5fbef4a25", + "0b480c213fab0b5bc8fc68ced64f7500579b31bdaa76033a38a086f6197fbe017da28453df8e48d98e2146752632d29d1f5139406623ad310485d02dd8b6c5ff72159cfc00c714c7bb874adbf771860683aeb72b750d73103df796252c7370f05ae3c6e19a89393b8b3b94fbe2ec5c1430c71d10e05d1191ef97ccbddda887bd780446d76222" + }, + { /* i=1232 cDividendBits=518 cDivisorBits=261 */ + "13e1734f450383fdfa94d27fd2e2cde53f8fb6b84c23998bd748fce72d7d71970b7bdbea4d3961872e21b4789a5d2f126aef7dfe2dd100ec1fd3e37c0684a89f0c", + "09a012167fcc6c575d3e657cfe95459ef9ca16cb16ea2b1aca6ffe129f5694d5f8", + "0210c247ce792a56cee30b1b79feb6412d58541ce046785d6897866318bf1b1e6b", + "03845c9ed43355a6be7aefae138a94dd58a34233e7300022697198e2b14a382064" + }, + { /* i=1233 cDividendBits=1729 cDivisorBits=788 */ + "a664d30a8ede4711eb17481a4464cd4d2ac10296095e18e5da4f031518bfd9b99fc68755b383c6d0ff0de39f43ab705de3728ced8facaa42ca14015aabfe916eb3ee342206e26617a179e4977e9c29e23325b77dcb09d917e21f48a274366ed971431b7c0fbead7420097ec2e0a3cc372ed9c5b893e7e065853c78efb7773abf8f96019ef922a8352f50054ad1e45e09425fa3dce30428e352193278b825fe0e0a48ebfe127fdd1bc774ec0bc0bfe202847e40b178e212b7f6f2717660361a65c19ef620b1f73c4e3f7892f21b76442d38fcc973bdbf0316", + "0ed48e77f2b51bfe54f1f8c7cf573a630d94c4b232e6bb9a9c7118fd3c0c5b7669808086c4c79daff42391b57b12e4a111427145cfde4b3927474227eba52ba3b1238a799dd57c89859e677c00f027bdc4dea3b6fd90d1a900eba8391889a020ea874f", + "0b38489a5589bd9cc3806fd194d43c09fe96d938cf488539ade45e39875c9b99400eb2c01b69ce562b92bfb9a2ebf14e9d8391ef46080e86a4d6862cd27a73c6d25bf354711154faf054276655ce4b1d018e176196496f1aa44e98f6350d420e71a4b6ca8f78dc1a114f259c74db5fb0d1b19d6f59fc", + "0196419077785d99f0c9d8f07c7670bea5e736a9b03a290dda122fa7b15580a423b21dca01e782ae5354f938ee3dc04e87aa13251f9491fbbbfa29d4a24d4c050cc6492c45a8f35161339e1f0438237eb4c4653606674439f5e8120a6f7d16af965a52" + }, + { /* i=1234 cDividendBits=3033 cDivisorBits=2462 */ + "d24e4c0acd21572b60c37cb94238ea35895ef30663c0d7078df0a8ebcd6c993743da8bc0ca3c05009ace5f82c9cb0888a8292265e4a944e3a657cc61a2f4cd4a185c586297193d127a68a959c7ca4c0f35ca71b02b02a30fdf77376b89be675f941acbda3519ac45de69730a46b2e022f1d67392b666b5618304d8b037e7328055ae73783019f053b72e5bc2551c019fa7dce67d49da2a0298d84321832d75f8fce404464186a88680b0095e6f93c0aca83d80a4070b0e3b16fd86585397af17a3506cb9f386700a3b96e5342ab139eb194138df0df628ff8e3dbbb7e531d000d0d241dc7245269e63fe7ab3ca6dc83ea3b119ae638a43fbb368329614cb05deef297f3ed6f9187554cb76b7b8e6a84ee9f083bea8e26b7add6cb93ec61c64cb64f6a44ab6bf21f3fe2bef63d3ef2569a8865d1ac5b139ccdf5d9c5ec7194f329d3645f3a58d22adae81cf30744ad8d7c662f21313ead7a471524832a776ff8c6f5f90a55fc7bfa13c196a57b3167afa0def5d78c45f2d2bba1c86", + "02d5f0ba9d75a91f58cb230dfc8e84e474874a276e2ac3934d55f62d837901315e4fbcd8057d3ce46cd45a66a8f6b1235acefce9e3574b9256a89f0fa729a3e9483b2c8a7f5454c1e8105d3d59aa8f41a2f05fd81e4213b43cdb4fd79cba0403b074c4c846032b623e4f04c55b7ecf555edb6a08b0d691871d8d7c58a9bdc9e46202666ba35e74cc5fa2469424d83835fd0065d05478bbc28608165a91dc828b77791c9e7c63738ce4a4cbd304bb520de2f3b5103a8fdbf4b3bd0baa04b820dcbbdfecfc71554340820735de7adf3c28f499e033b7e66180eb4bc902cc8623d55dd21a2ca02729badac91ca3403ee4e489222ad75fcc03aafa20d7f2d5c46fb58d709d025e8848bc08a023a916b3d50cd045c50499a3151bbe95b403477012b111f13900501f151a1882b1223e75680b847558e9", + "4a29dcf2cdeec7e2e582547c5df96853a29e358039a91716c32cb278665bad4a956b222a5da88b6118bc8841c1636cb0c5d157c7edca3d92515b80fa18281af8167a2047629118f2", + "115492e7e69ce37b64e98a8fb6edd8550487acb0929d201336beff52ff0d588af0563dde93a4e80f567cb1e7d1e68f5e1d814f8576ccf18053b1e6540d51b81e030bae70952de3b0dd6c56eaa948fd5c7c938cf4323f816a09178318e7e106ab368298b1d914d4e3891b7a8da69f02aa2bf914623911cc075a7d9641caefa5a298029441e4a14224f3d176808d0bb7a99e1d68c9227dba4999703304825e5e6c26a719f36c139e800d2a959851469c223b542a22a9560b77587935ff7e2310adaa408ee37836e03735acfafd678bce4ae8e1677e3e17551505f5e8b64acd1bed5220a8f28f29ae12accaa76ba5408997face208b27e4fe99940a251bd6247b187706170da89680a8e26d0056b66a95a29bf69902da4ce45dafb6a739922338a4c33b4c21b387a9920aa7c6481934bf667d3844" + }, + { /* i=1235 cDividendBits=24 cDivisorBits=18 */ + "a45164", + "037dae", + "2f", + "3e72" + }, + { /* i=1236 cDividendBits=4066 cDivisorBits=3097 */ + "0186572fdc76b264139ee40570e3f529fa2a30902f5c3269c56885273d349795b247c0af899e1b5830b12b9a1e52a9d1d645a905f0a492cd311b92939ec121bba7a98a989e5446d9d658216be10dfd45f3fad28bf0f0d576e9327f8dae0a606aaf3156ec0081ebaf27eb4ddc7edb73319309d3a3f32f05df1b25a55735005f87411ba143ebefeae09c5254107fde782b394d6b5793354303f3b1961cd77e5769fb4aa725237f4ac18ed7ea9b59bd571210f5c38042e5d798e3bf35f1bb29e03e40771141c16575f6947e988a9cb4ee78d0608114c5a4a671290e92bef4d77c7ac29383829e47b30d70ca63dfa4ef3b5b8ea5b93befac40924832aac598a7d5d3e9fa186e7366c6bcc1299d5f6d2f269574ffd97d50637b3ff14547636fab0ed73166b2de4ff68f716547d5a148235014911add3429a6c645bab1dee33e6ee1e2561b9757d980b8a6e903ab330d0847ebbc9bd6d20a3b3d12147bfb06bb4847c514233ff9f41501d816df4c6d876c5b6051c8710567f5a3d88e3b3388cd778bade887e6d91cf8ad59361a11ba4c2c56936320dd5b9de3a699658d7303e2afb43578dcc2bb3d1c655b4f6cd4ad96dca8cd696b69c8949982944a5e210b86b87c64aca139565503286699a09f4e8d128616fe1a6f8d5ea55ab123980249c266c5e7b6926f27c163b3605d5f76a6841d25c887fe9b35b7d649d12349077e25", + "0144d6605966e78ed79bb1b3584c7ef7c2bf5b15bcbdf4c56669e267992f945033f15a901cd19fce92035fd3e8ad380657505da6471f3094d54b6f2402329b6a71be7d3a87700ef227e8607304959c67cc468d93f4e42a92ea606306226d596582cee32b2497d4762246a7b9952b954b95c790fa885ebddb93adf190ed2e8b445ce306df2eeb5c8f4a58bcf1d5591affe05d0343a3318fbcf777ce2947e402ebd4bf56f7def0ac937379c682d0732a89b1f8304e570e27bb71f0ed3d844d95b9acc584580189ea87cfa0364361605f72615030602fbec97350874130dbcfea3584fee47f544b93120b22fd94070ba92f778883f781c09d8dcdbdeee7344f312ef8c4318538a8d9956c4e876fa8eac708b4820f48f8e3cc283e83eb132d1e1cab0c62ac63938a41d157ac1fd04306ca680184c8172de0d27c09f8a5d9a91d0d638ed2411ddd1885c65b2408a35e0f3934e0c1435d64fd25688d9ffc0c85d32b22b877cdb26b601f087bd0766a79875e1b1fbb7a353ca0ee5f16593dddbc92bb713d67b307", + "01339f4645f989cdea240eb4850f0d486d9e2e5555cc55eb94898cc67024909adf509b760ee356421f70959cfa48d0d7b147c86d75a9826b5af7edd062d08cc6acfa34404e8b9acb19e4caa7b1f9ba853ff380129ce61bdeb6c82811ec24051c87310e3dca9acbaf11933b649ff3738fadab19654bb645af36d3", + "0106f6f70fef2780991f220203635b670d7b5f35450b9058d21efbefc880a252399c6557f3be10c1afd63eae8da1e25c1f5cc89cc334b35beedc40d4924b607a4f449bdff32b79157a3be98665cf67cbe573f6cca69bf71e3899e4d65b8093cbfe5ed278872310af440026be6c67fe35411eed116dc6d2fc9d0e8a2e6dd7e5e127b202d502aa027a20fdf1400a22e1299e5f809beac39dd2898f3d541806018d22865b0fc821eac8e7542db5bd69aee001bad0a63358b5bb2af2da632bf0b7854aebbeecca6e3b2353eca9b830bb08bd8b693b7363c70ad74463c441990d62e93299569e278bcf9cb53b70a626734bf73229865303e4c8b3e4d1ce88b358b4d0c82b59af08a110d2daa6830e0f8c65976fbcfd73b1e9f31d0fe7d3d0f5616424b4c449c6ff78ff7c9095ef16544bc1acf31b2183af8ebd3e4d4a3903d8ad7b6730c0ba429d2955bde15988389efe7bd9910d9171cf48e87f1026cfb9b38af6b21357fd4ef3cadaaf5a989503561a324c4530300f96d95a8d6387e2c973ea2ebb88027560" + }, + { /* i=1237 cDividendBits=3703 cDivisorBits=116 */ + "64f32edc57b7cec15b7489f2f9221215f2b73d1bf867dee1720b43d40582d906fcf86b37cc91870915ddd51652746114272c1f01d3dae1b37de09098c3fd4046ad344a66c22066bc37cc55737397a21d09bfeeaf484320515bb06cf3232471e3f5c9ff10f98e691bc6ebb28f5d95b94d977db4b04c876e38cb7f37889cf8fbf8d18ce3e00ba741f97a15762b28859200384edad9d2cd556e1057795761ebb4fc6d1ade2edab245a9c8822e8b64925ea16e26597de9c3cc01a965405e35001af636b96480d8f484f43044aaa722192f508d68613b75eb42297c552829656f703d3653b01e3ded60c822ec6784d026f747d2943a8aeb45e0a4354a1673974d2565baec9748007328a9f54f368013b745d1142b42a9c3084fb8f4250194c718f224a0b9c13b83053dcf91754f9c91abdf7651a285eb1c055e453411cae2565ae1607d59c3ad19a7119fd7b46d924d2e3d7a155dae262205f3086083b17a366dd137da4177e21355d45a07909d0771ac11dec5b117d978f5cb3bed30dd19b0e8082a5e8a29f67f69cd6c3d7c2f881e5f9a1f3c28b7019d577c5260bb7546ea73e38e0248fbb704c9161cff3f84008bd1de0846041e6ee236cf51b0a2ce63e7d580238b62a480757b09ab01eed8c3466a50", + "09d64889fc411017165f7349eaf86c", + "0a4320fc71ce08d5f5c85c6bd3d2b56e96e3a77f59e80cbda31cc210f92f440caea8cdf27070795e1b7c2c95538afdbb5d7d3298d1eb0567d6532566753122446973b6a1140cf5ccd47e7c47027048bce96afe0623e0add2687a32f53a8c7778941cb8fbb18f02b0e3c3e619883445be3ad9ec67e27cfa5472e54c08f8c232161f95e75c64c4b847a8e9b6c0dc644ff20586d5fda35d9f5bbad92ac3f8d051128fede626956f4d0ad3cb70af3d5f2764196826ae3115c1c4e4f886cf9d8a6ad4daa02cc45bf75a3d927c3f6ca06922676dc674453c8c3437ad0eaaf1653230f1e476aab27907d59bf33cba2fe01b32776e5a9b9158a4cdf672e2edb4d9283ae4e548ab1d2c96859fcc067c4bbcb80d77b59599b7a3dd1a0cc130c4340e6f05162c62d549740d42a08f34f17e40539fe51d2eb71b9f621f5e4281c9d8ca0842a6e7ad4440a93eaef7143f706ac89f48626d4c84ab8bcc4c7ad2f114c619abba0593801b4a59ec368c6dc5cf971535e1ed37e52e7decdd42e5e075f22d182a947c3ce398c2450e9be220211c4d622723317c99efd7442e1af7a632a1e65f005f46d8dabd2c5b4c442a85fe82772b19c87d68006210853297d86aae806b84569612c1", + "050440619b32b7170e62e9ac6188e4" + }, + { /* i=1238 cDividendBits=3860 cDivisorBits=3730 */ + "02d43c8683d71a4ee4d14ce2335adac6517480322286b8242663fc93946a0ebd4298f619bb67709541df89a488259750d7a4e8f06647075c72614e7f84e33026e85398da9486e75a70bd16391fe3227171bcee00beeac9f87ce1252fb5c1f54373fb12a38f12b0d08e5362a8fc408f7ebe59a1e0b5f21464a9647c821cfeef51070fe8ffb27e10406f0199022d296bc9c3dfc9e108896848bb83911740038fb1949438ec5849d996189ddff893db56208d548e434767ca305a95942b89744e36c49d091ee0455a72c155e95cbb63eb51d427cd23a2e2508814e44ee913f4000e5c4aead0749733acc20f623381370cc7f0022b4a5368367c9660214d887484718367cb861a0eda358dcfc2f778f283950e05d6e2ae60197b9789a7d8ab6ce5e636b092962c8ec963108c896195fba89cfadcd62d5543f0a4047d50dd3e03ffde08acc73ab424ffe3bf70ec4f41694b21230529dd88a70b7cdf824496acc55210fe6e74465c90837513b8c8929641a3e8a220a7d1b31ee0d2280ac043ab48824a729234e0b0e5c79ff986813157f30ee265aa6779ee67fbc0831873484905d0e3e1145ad28ca5bd9aa5a7570d3f69df1b5145981c3bf72240975c4b886591811312327c614feb6cb609e5963948b6804d1291034174f7b899dea89b6864da594f159658", + "033ddc40364dee8e8986e27b32b47453ed063846e88467e7ccdc7c12dfead3b1d4e6828eb874353af9df16021974e2b67354b5d74c4d310a4186923ffbab04a8ccc1378c7b9ff9031064c30978e6770d11de0ebfdaf29dede68feaf763fe024b4616d3b1dbe96164d143818ac22bce7fa8e342228d3b78fcd97a18d326f8a316ab2c635b18670a9178445146ccb48f8f472a1beaa34a0b36272bc21b2950af861e0a2edf7f8349514c8dda2937f6a39c8884a9cb91bf34c292efb3fda4c9c9c2022155791ad153f48817b27c1ea35897a3a9674ddff82748bcacf5c278631dfd828077a76ae2ca14ee67700a5ce4e1445aa6344639ab4dc6e23f91a285c93425d346f2b23b826b83e35ed2e9ea11ee9b6f86beb09c03c3801af068592d28cd25334a75e2589c2607b938a0bd3b12c175db2ecee475c88d8afe1ec18153ff45a6f52937e95589e936c34e40dec4a9c1d946526deb715286ce0c1431ad03a0710e0ccad4c761ffec49af5e3e7f8d9587f6ad152c454d192d14922bcbca556e7489ba4827a8906e5b00d4a00c5ab8dd7b4ce0db6f890eae6870dc0b43d5c3eeb1821541f14c07d71481d652de5577b6702fb2f8340ef9a8141e909103f95269bd7bbca7413ab105dec74e364900b1f63150361f66", + "df6aa212af68833e8336e23cb040a36a", + "011cc945586215d35323b9e03946a9d0c2edc14e234673a090e45e9562b5b8bc51cdf9bb99a18247dff2fb7620e91a7e586b4bdcfcdab12dfd203252a98ec8c19cac4a7e090ed3d3062fd0ab9c39450a2e387e519698c0c069b73b832aa3356e7df36286a7a87fed95832c9e2fc4ddc8a9df2f972f3981f1d039ffcb1aa8718c65481013f492e818ca12a718d4f0a6d8861413c6f7292e7db6cb2fb7e9d382f35b4e1935f6d5ee1c524c88eaa08863b722f44812209d13951b5d970ccd24a8ef6e79ed0f30124afa15b3804da5be0bd0e0a60fc26913279a43081664df09574e08514837664d2dd665c8be4ce734fe7b054ef8cb09b68a9be386a38d4d4a9c21c24c62e04b154b3be9c6064381eaf9883a4cbfbfbecffa22ddfdaa9f40c100b45f3053cf7d24754d547327a06d51f8370602767d75ef21363d7c609f1176a1eb34994f4b53a7305d77e56b5332caacea35b00c0c4fcf492ad4462dfc04e9204c6eb4973fbf6b15961188e6d3a355e51c3526c12d281b56e32548859f7978e223044d5f076300220c32719317acd204ab5ea5691481e4d7b5a56f4bdf42dd2ced867d1662d8ac5f22f0bcc474d19b8b569ea048c1ade0f0e192d8a58d6bb81e34b3fa4957d682d87a1486a1f58ed8d5a92ea41c" + }, + { /* i=1239 cDividendBits=945 cDivisorBits=464 */ + "01300fc4c713ea436bd97055fc9ac57288c89e8a01868289434a62dede1a5287842ff77758d37991f49bf5f4455fc324f7c67aeac0c55c9f7b806241cd6db0e22ff67c3b00761a7cae3dfa8dc98eb59369a884ab94b04da243f6908de9dea995b35da29ddf089e058b521dea71e3646cd3493f4a36a2db", + "9315388bb8958ea42c235ded87f43547f32bf832497d96f1503114920d1d53662076ea4ffc507539533d2cfc91939e89621bee9c68af9e42b54e", + "0211394b336eabf71f47ec61594cf6040e7bc9e761fe64d7fed48aba94e29f7f4a8ba9cadbf4577018d52cc86d98168ed6ac7e6ee0f99dc4237841a930", + "64947f2fa2352401c101073c7aed707a714bc5ba4aba6755f9b5a6fdd48e57c96aa83f87361ebd11ce5dcb880e2351244829c2d8c340fb36263b" + }, + { /* i=1240 cDividendBits=3790 cDivisorBits=887 */ + "1333e3ec2c4441878e47479364705b1c7b6cd4419c515715f9bc5c703d0c266bacee30b5a83b95606191e05d1c19b8295b9e2f6a6227587a4b4cb4246e2073b4fec5807bcf23c85eb41d9e93dda0bdb182e692c17864d76a2b14760724ec67fb86d2deb9ea5c4011ff3027aa03a0112a6f55f9ee1ca39af089a08327b8c694f9942d08398c80d0bb04e9abf6b9dc95d3bb34463be9494caef918d0e2f3a59f0b89bf8ea11343d3b060201f37e45e63c0d20cd3b93ca7d1839f827309a9395c91f03a2e19e938432527e9a814c9c684d549286820d64b2bf6c2335a2ef086066d46d7b03d07308b8b03aaf729f54c74425115dfc52e387768b792198a42197a5fdc6add51e77036d8b7d49167e3afde3db8b10e37ddd4674c6f97c119aef788f55a521e8047be43b376e7dbc54ebea69bddda5dfaab787d05cd64a20a82e36dc8e2eac5f6d7834cd26a8cb49385bf35554e1a399bb9b8ac220bc7e94d30481979e756455370112005e5a3cb337febf25d1f1b9fb419cc6853d69ec60d4c0c311e9e20a9f008f7e90275488187016fc403b104636b26316d323cbab5688d5bdd17d759858ef682cb78ab0f28f8255d7913fd02134896035825c4b298c1aadff23c83047f08f054a3371a323c5fd69dc105d4bbcae48056acfb2c5a", + "160fa86d1f81469db9fce99b7846ba211e850dd3f387a9d028517409206e1159ed45112e11b7457fa69d73514b10a7084b034b68ea74dca40df2f670fa57d14334b13151357a2043a3b7d7de90eeecb82ec1f331ba0da6fc6ee7d0b8bdea9bbf85311e453df7870dc077cbc51002cf", + "ded47e783260ceac15fdf1e613220cffe7ec62bf8096eb2b4070cc7685bcd84d127cefc001f741abb003267cd1904714975f733d9101c7600af8146d8afb309a2c4e300eec798740d209a059577e74ba30a3bb2d2a79705e35b63b22ca493e0ae46219a5104b86b2c065efb5b53bb01d2b7a414f0f551186264346b23d3d55d4c637a8414bc11dd70ca07ff89372c174e784768ee2c4953a99804b223db6cef7f8827d185f8a107a4e722c1c0ff1f2af268809adcd6fff803bcb5225cb35c95c0445ee7539f90a706502ff21890bfc940138b05cc275ee47a73df45e7e3c33f9246ada0aa72f521c1ff6fc80f5c40215a57d182c6e716f97c9d34668b3cefcdb9d74299081e8b24be56c8ae64b61f934494abb18139178f57750d5039d05a7d09a5c7094de613aece113d86e0224dcbf8e4c22c3edd1361eb591c59020fcd51cddfcf8b3514507413dc9cd90c510be764117b9ab8a02d24ffbf324633c48ac5ba90c2977ec4737161f44af", + "6c194ab1cbe4f5d810c1fc452cab39021121ba67e0e7948d7c3b523853c2ae945dc914c353202fb77452d0340026684f93710b172959df74827d53d2ab0b50e99a7bea31ce6f48f486779b1343659057b582589ac95d9a70f41b78009a69ffbb1a4a24000781a8d83b0b953944d9" + }, + { /* i=1241 cDividendBits=503 cDivisorBits=430 */ + "7f6f3e6cb7bae9d87b82a9bd9d72a1965fc6e70e99efcf88b36d7afb375c3aba188f33252ff11f0267e57decf1f343eafc831396b6af81635aff6d6bbe9b61", + "24de30626aa4a340c94026a2d4fd7d0ddac520942c9fe17f565c0df6fd0c007dbf88de1dd592eda0be67cbe3ffc6ca20f8bab50dd470", + "0374de2e4c4fafb586cc", + "18d6e750cc0c41524a92b4162917d18a3224a82027e82fa3a9c30831af5a103012c28826cd34e94faee5111713204aa6ca502456b221" + }, + { /* i=1242 cDividendBits=1695 cDivisorBits=758 */ + "6fd559d38901afcb6144c49ae255099a37b3cd7bedf0ffa541ab4eabd4d05c3172d251eb0ae700bef91793a949eb11a2bfc9740dd2610f59f7fdb09f85ff03a3e7d33165a21313f446aa789a04380d806511a4541e5ebd341c4eb6dafdbe7ba2caeee0cbd10638f1d5b21918832f3a7064ff4d3a2b49f1dddb8eebdf31d76cff08c608418f7140e6c45f6139f8a5ad6b56c5ea2be45c200364a85c0e560e35812347cc10c65948f3ec50885c1953b8c9d47d388edc1bebe104e4c8d2dd566976aad552e2788956b1c702196ac2e60e6f1d935bc8", + "3f064510852497b7b3e2d7f648f4401bc43833362f9a31ec8bbbbddf1f917fb7ff46590e876a8d8670b3c1e1912f3bf9136ce1c50a89d1747bf6f5186b5131663af335c1e44138aedb4f327f9978b7f609532ff90a5e4e7b8108888f8e534f", + "01c641eea605c1d6c35251b7418e2eb219938748c8a549385e51bc93a746e3c0e1140ce6239ece7110f9e8aabd960a5d17408820a883c4896246eaf7608662044a57997a71eac9e16b175bba3f47614661c0d8f1dd141d04472949f1a3ab5bb4def76ac29471e1b946b4df14c11bb9120efd6bcb27fd", + "1679a8dbd12c6572d776b8c2b6aca3c7e7026a5fbc2f3c89a98d78b7fee8d4134f64e73c1e4a8e24d0e3a7fcdfb1b9da9006af4ef0b1eb496de4b86918040494cbc2e9bca0d8e3c27d899cc44560676ca35a485337e1cc9904d7d97a94fdb5" + }, + { /* i=1243 cDividendBits=3860 cDivisorBits=3510 */ + "0807e0834461fa213fd1093ded04232ff91d966dd3e7dfa9a08bd210c9c1ce4b9a7a2ae9751efb579481d792460ac6a82bc8605800bff68360ed305ee672c7928ff9a3dff6629fadd4a8ef28c6a1dd15227eaef13867ee4805f48b347f0790e224928a3a1556ec0f64ad449d532a526684fb4aa5a0f5266b3bb89ae4f1f1d82f2a750ccdd69a769d8c26d5a49243f9274fdbd8c9a66dd290e1168d1301fcb2cb077c28283dc95d836dd7511dfafec759a1de7874ebec2d666cdfb7bed36dc82f66082a32ac8e89524151bec99242b7fe252c417e38b7725d9c59b46fe24aa0472af1b778985db2726bb4bd8f2136c80b4ae34d63e5942ab49c458dced7ee5e3bdb5dde3805e3807851f9679d00feb61c3dd208a8c8132c8a0a7d210876e306641a380d0e525035a54db103ca0ad29b7a6dcd4368fd46c771efc194a4f8083d00238d5d24fe2ca244eaba96f75f9b00b985fbc4234b26ecb9969668b4289ca699c70fea4ec82c1602741d3dbfc8acfacfb8019044ff3f2ae699d8d704a5c84891e642d7bdbecf5247554f1355fc5b3d8aaf199fdc51de6928651ef192cc6e4441571e6c9db6f4c749b204375f32a9b25852413bf796039e7f4b229c53dd22e6343052b3c005481196e229e5d3191be8872302e910c702746c0df1174263971997abb12b", + "0640514807c6d04d04f26c9fdd83cbeda0f2136c4ba910d4089bb0fe85249fcddcdd84c5337383ea582ce008793df08c3be2c294e7d070ae83d43ac4152bc7647119b8a330853054952d13a7eb388068d59b0eaeab6ce934fad5d7268840ba1bd5904c97f3ad7bb603d6baa2861b3f5f626ceb071c97c11dd4dba11f50b4fcf9c2a64b4f76f0e0e1e3e6e579e1f7e6692d1c4ae7b99bce3294a6b8e00ebd84f39aa23d8aa7b2ff5d3e5ce2979c7c749f9e80463c80b157340868937385f27db435ceba658da2f5ff9697be467bd979db734a00651f81abc6d5cc7b517bb56f3414282ef362a2b43936ba7ebd3aca5373144f75117ca30e39f41084bc9982a92bd05f663838acc40e0cbdc1eb3712210a6c8c0b143add1437ddd629c9c6794a199bfa4daf6c2bf514a790f61eed88a0abe97ce0a4b59339b45e29fe03ec063c0319f32f7919f2b22e962ea4f464cda179f870a91fc0ee0d31bd0c481a6fc1c6a5388c4b9c7d90b112a2e396b267a9650aa363dd51348f54ee40f7ebfb2204dd0701c876a4d34ac0ce9bd44b0750d8fa5389a34147f764a71c929029c807d2ed9b9ea130d855d27e4f03f14d87e8a5189d5af83d13f5ef9c", + "0148e003d0fd28af9bbef8739c570e7ff7189adfb35aa1309848854661e17b5f94756de3e7c0db08414601c640", + "039847257b2b83074cb886a35ae6e25369dd36f926ace475fae39490a51442ec4cec631bcbdd7a09dc737e7775c717209c3630a428f2974e3795f55e205b37a91c9c2bc4eacad4bfb16dd87e6f62db4ba434c25f8b7096bc855a4288550b2b3f7a73b10f35dd2037304cbe643958f8b60b9c7bf5b33256a89dda52bf6d9da31c39c05e5ef2935bb7b767bee215f5b5177d007fcc4aa5799ca5c30c7426ded2e5042b670527cea37421d55f80dc57243f2994a77f104baeb0e52d7658bd048cb77e7fcf9019505c96dece7341d89913c554b5a450149e32edc6d32245a8d30f669390578f96563e0ebc65c7955e3b02b5492f92403cea4d7760702fff3b5a38361f9c1d98b2f2e2859c63b0f1543c231ee1cca0d6834e743576a9f007766c4e3f8fe54c8392d1b76f8af178bd6d39ac20d997a3533f815f576961e4698691146c6b79cf7ddb880fa8ea4a46707f06edeca22396ea2dc9baf1bd6d2b1e2622dfb573d06d2d0ce94176fa2fd338dd559f23392308b473c42f8e8e926dbbebf5f08caf5e1f10390b17f8ac99ad3d4a099c884cb9511b43306ac6d728fd0397716bda7223b69ee91fef58019382c33223012891404dcb41222b" + }, + { /* i=1244 cDividendBits=305 cDivisorBits=244 */ + "29bb1b95c522f21642febd923c3296bc092fb7d4192007ce50547b29c07738a6911e09a3b6ba", + "0bd6df96fa918a896a7d268904abdee8c7a7ec529bca491094ddf8f41dc4ca", + "038656cf809e60b5", + "06a07c16b268c50d4c27d298964148e7258ccbbfa86a866e88bc73d21fd3e8" + }, + { /* i=1245 cDividendBits=1277 cDivisorBits=308 */ + "1603dda0b8d2069e52183a10a7a02de87d371074db71fa4df9e1dee4bfb7294f22a1633438a2f0ff26b8b5247536a0a0002c434f7874ace188dfa2e7adb2b767c780892e96bee1e55c86cd98b405e7d1ae5f2f60b22217338dd17c1f1193574d0973ab4389040f0c9d3551b02d7401d131e945d215ceb939849bd12645fb9f8728c86459c2e45e79fc450418c77c267690cf246f792400ed841ea41e099df045", + "0f6b0f5b3f9d1d84ab31006a4c5225efc15a5b56062e3947a071b83a75bbbb15ced2be4afbe305", + "016d888275d67a56540d0ccacc31b42308ae4755cd0108095c01895f7f40d5113eae10d6a6a6c108265ddf110af25f9dd6921d68d77af758a0cf5081b715a7d2dedfd6f706c40bc8105c2dc9bb6590ee778b9782af34bf19d5f03401de08acad4cc3c83a90d779fab7b22d625c67ad2690250befb9bec976d1dc", + "0e8408c92492ca5b11062e52114d6f7abfbcb3e19f8bd1576cdc7784d21d7d8911bd4e6381c2f9" + }, + { /* i=1246 cDividendBits=3300 cDivisorBits=869 */ + "03cb1588ea003609c3a26992049de37e7fdee490be6e8fb8ad2a6d460444b11ca3599108c33954e2ef3ffe63031763c4928b54e28ac7b3c0a2444e3617d91bdde31369bca4f9cff9866b2b49181343584107203d3e330645ca8be8185b8960aa55a8832ffed60fc7dcc28a073bfa5da3e6cd18d81934edefccf2b2ec68cf88a18730461fd111d13ad404e6beae0651054a6fb344e45395984a738167c05d3298be13bd8f194585d617abbe0e1c0aa7519a06ba1ad2348cd48ce3181d27ffb2e7768cccee3aa675f8772de10e2328702c6c7911ceee6a98ffab9e0e8b5007f1a849bdbbfa5a58ca1912594f30d2d55003bb332428a2cf3063c2e41727a516b52145fcc1cd6ae0f25be3b6dccb933f3ed252d00276ee587ee91507be060e83c8d0642fd84b465423c049ba8ac6fbe9b1ceb83f5e0228efa8c93da8e334003fe44be10051e4bca66f8bf95df925c9b1ce0c9cdc0c38e2829210c4ff605761311121bc04e4d72641802158349c6da746f4f4ab35c1c9348605e77d80846303ea11b9e191c32bcbc9f0f1273790c53f212b9a9e5dd8d414a713e687bed0b4b9", + "04c2b7179d5c7d8d717a9fc297920963aedc36bdbe10d7a52837ce87714b0f5bd3b33bb36efdc420cc9c2330d803f620d139a4581c20c3ba841f362f61698b70c27e94d2b06920d22690a2441e9f479f2b9bba450eedf6930951c94579122f5184b6de03665338e6c6bcedefd2", + "cbfbb8c8129aadfccc229532674545ad44f4d11f9aee734b16a28a169f5986e6c444f0dae7e90fabc1711de4f80f28fc9de472f0ae61269bbff2cedbd8900f54c49cd5a17f29902d311a6cc5041737971085221fb24863227b63fe1e31a45cdb95e715452ea3ccf9f90fa89c8b64c0be8b07700f0b0182b54b0d3862af2e573cdbfb51688fa1e9b51cf8acf3ba15ded7ca70fed5508db4f480591f4f71d16115fee4c99b8b4157f659f0a31db72e083c0111ff1a4a06b11888fe3e0f19a5c784e8874ffac70458e5044981395edd41ca7e0f3512f5d59c45e1c4e0af4d7abd54e49120233c047c35847a6daf14f97a740c79d697a34c5e5fcf9cd7b8ba2f6c16709b5fb4ada11fb1dcfd3b6da121d57c3b709f8b75c7b11e3fa840bd92ec725d2eea05d01c9cd14139c3bef778b6fd0c", + "0371a3505ee38a71918a3e99ce21786a02a44a869433c05a0728c56bac973b879655a2256157177f4b36e8a1e1bf5ee7cb6c6132d66d89d1943937ddb885954847fa637b90de45700045d3efb13661364ed3f709e856de7e573f22103bb6874e781a855079f9f6934ece5aece1" + }, + { /* i=1247 cDividendBits=3369 cDivisorBits=2946 */ + "01187676ef7f5e5c699ddbc013f107b301c82cb0881a6e6459ee60b725a7b192665110956260680c0f444a3c5421f1e43aeb06ae667d948700faafd7bb85fb76a04ae9b1fd89e9f2c00fbb3991954718ab7351ea8f427bb3f5fa34ea2e457b9aca741e33041746256593ff9dea204059969c771c6f3869ec850677d9223b0ae193f2bc2138ac2caba4ebda6c841aee4ff052ce1a10ba4cdad5fb87268549005e644c7febb4d99c0bff6f0b25434c64f1d569682a9a5b6079c49683bcdee1ba2dee4e838458364815f611e87bf5aa1cc9dd29e88daab8ccbb3261fea90b8be7f05dfb16aa4395b84230364ba22d55d6dcbb382133709cd654ba5ae642306e8b52581a50bbbed44191e2bbffe61878ac3b2dbc5f55b4a4789188b4fdc8a323225e22e600648440c28d18334fde8c45d5b6981131c519f6050002b18398091ffaecc45b399097fbba9e5dda8797d303ba4bf7f144bf5db7b13df92363c91438fe7717d0a2b391d83560af7184c5ecbd5dc2fc411194c0b3432fb32c0c10fe083e88275d5e3392c2acbf4613950733d214c8846e9dfd17f39379e1e9354f785ccd9628697143dd10", + "010a7c61c5e271a387ffac2fc61aacf5e217357d4e739f207d7612f8e8e252d2f7af6ae1f7813e01ffc746f8a0edf9dbf378cc445f4569e1360cd98ae99e3c8e31cbd5f692560c4a57c48f85b325491242ab1caca505d7845b5038a944f963406ca635a5900f2c80bddf6f2057cbcc274f4d9d627b252780007a23eda57881d69e25b8006805e8474a6ca818c18571bf2f52cd3af7fd33aca98658e263ced5aa21112f524f73b02a52ec1f2c1b3b0feaf3ef7516eb2b71b403a254ada4c1c4f03e6a0dc99ec209edcd49a0fa999cb5543e9a8e9d11b2c8e1535cf92951881f13fd401bff0fdebbf0f6516dd211f3e9e24401579f5954c673521047cf70b2d283d03fc246ba2c95a60b3ad05b6060c033cfa728b3f8b681dc6aee3c5092d14dfe3e0c42a998e63bdf41e233233ce2e605599c8e8ab2e8e8f4eb4f45fde6845287910a6b60624b8cfab1414e7a31cd233d66cc63909b029b5d39752be2f0ab0788ed384e111f664c5cb2d48214539339d5b4", + "010d6d4a32e5399d7ae8733d569d26291d2c9391b327941757adc733c3b9c42ce10a218e110e0847541fb5137a24effa925d7e34a6d8", + "6133425e43f00197d3cdf331a524349f623d2185b9fa7879c9821a78f30c9f61200407b92c7bf0f461d9cf9b005167b6d693c287ec1722e57df44b432a32aef76b7aff5384df05385fc4ccd6d33b46623da736b02406bda494a6f173c94aaaaf7a517855c701379554c84333cd0cee3ca7b92f7b002919bdff790d8bd03289526dcc4775e0ccec84195a52ab174381f896c1cba3a1fdd46c1908471aa595748c6fb81201312751e9fb0101691a159612cc634ff4d4b8dcfeee2a3efa74b318aaefe04078195f57543c1ca8711e7a2a7fa57f6ae635a8526770b345286d90d4fbcffa71388b4fdf44cfa2fdcae6d8e6950a7214c25f247bfbcbb0d582053d1f00fd1e830555bf8b4043fb8e658cad2577f2d33bc50e88539d02b533a095c73100ef648f56fe1036aad0f6ebed05515889b6890f52cdf609c319315aaa591924ca8bf0967e4adb5a83d0077b8b6a10fe52f139de4ca3fc5a16d3f56f8d72d064b325cfa1ade09a749ead8b271bb754d530" + }, + { /* i=1248 cDividendBits=1539 cDivisorBits=103 */ + "04159d0f4c8b5d20d7442340a8371cdac8e7a529e983fe1ec96a4e7ee0e862894eb68f3a9fe127b28631c5d976acf4350bac436be31f0a8e79058dfbf93a1f3bbf0cad847718da8b264bf67a3451e60cf770bacfeb0b10187d7e2fcc31c69f3501d1ac2e889269e4041050bbd02c0bd1e3d60d20165f6364275f6cdfb594b2b963169be27874a67d02798351f22d55809facc79ba4aad6272f2719ee7c417c26c7262a3e41c225083ccde94d32451ee8118e4b1c40545a6137479442fd6448afa2", + "1b672e1484997ff9d0213ccf1c", + "2628264848d553012057a15b92175be58081ffd677eb4b5dec4f8bc0d5cd56fe7e282eb46a843e3fc62213f35be2a0a897f0e3eb3497d5c300d8c547a5505a716533ce899272213aabd5b83bbfce394865fb55ed61657346cf010db08e6c4ca6f2e9a33a6780c0ff30d6bd2e5c04baad27461520a0e3df3039b1081c43ba9db19bc83149da0a3de01bb253c402ed66e321d37c8d450e02010f03d2e685b569abc84c735f20a2b9b3906f24c9a242a55128ada456", + "1932ee05d190c27776ef412c3a" + }, + { /* i=1249 cDividendBits=2954 cDivisorBits=1585 */ + "035ad92d57e9e0a0681b04c2322bd5293c184bdc81b0746f1d6a82c8de9f9c0db517b865227580e2774b44cb31cc5f6a1a11860acaa7d7d680feb6c7f01f6c7150bbc6f313dbcd4d3f472a22c03c20b8751ff6e5ae65e2c71c6e757077b63c0ef2520a4a793bc68b12a084ac821bbf5bf3c413d4db9815f3fbfdd681926e44de5ae841293d7f1392f68a41ee081c2fe27ee8dea5235d3437eceb23a8ac64f364e216855ba8ebf03a6fe9a8777f14aedfbf559297e537c3a8bd65b186fe1616418a8da86617f4ae6d619127cff923710d9e54600d38e19dcf4616ba17753371afe561271ec5fc1adca102bff8f179f40a48c919b627880799e2b06e80696b89325dd88c824df65acf92aec97e076ec9c323b6958dba9b8e8cc8947ef279d3b436d1ebc139b49910f63f81683dba4470a22d4bdc36ee0ad432b11fa0be96a16116e6bf844a769fae0bec2cecbc4e01cdabeb374f7a4a78823912379d66914a3ede857de43dcb8161b64b85513f1524ad31f565", + "014fbd159799d78db9d36c79900202f0af878f94c5d91519ffc19e2661b97a3952071023eb402c09c443e9f6451da580d671753f699d6c3d089f91b929ca5f4eb043f6f34b32ba05d5ae071d9e6b51c01e4339776c34620c80cad6ea563fc12e718d018a4edcb4555ae7a330778a09883eb1f6db88125090f0ec42370a0bab7e99491460f5602c037924b523d05b241ffc188aa11d5b6a925f158136cd7903892a71f2594fd699514475a486974f586936712ae048bf314339622a3c6ec910731af818a7d5e21d", + "028edebec8f6c75d132d7326c73d50236455240dd126ec1b93f1c6ee50fdcde4388c5aaddb487d3c49737bb9ff944202ee6face682e5888a4734cc7b96f27f8221e0de837cc3f5bd676d498c7480c2883c83f9f0b23987ce23c3874a48fde89172d799e473e0ed67c8a2cfeec7e2a069a1f103a497a3c455d195b099494de6acacfc73d98ebd3546426857b1842a9c5aaaf290ac7be1c405d53d7ab563c4a52deefd6248c2598e28c0f5c39c", + "7c28477bc2ef751bb4c7e33c94e431d827cf5d64f446378f2dedf95fc2e2958c3d97e3ad4cfd1b11c391904db608a548f33baac1e2567aa696312c76119cab7df4947d4c0f6137b5dbb3ddbbbf9e2f886c3935e58e083094ef95398778c37836ad91509b63a7575070c749a4f21e7313de85b8c2369825e73236334506f31151f3305dab2357c74a6c8765d8a04321dc061270d35b57c1c96f41e70ff96564ac6951d99bad2668a2ffda8d142eff52ddf3cca8ba4e83d578843c0503491f416faa7755df14b9" + }, + { /* i=1250 cDividendBits=1828 cDivisorBits=628 */ + "0e955fe109796a5e589466e14761d129fbf1c6ec8880afea09541788bb8a9671dd9d167966f75e7d7937fc5d261e51aedf711ec267a77518b5fb9ca68493b8e9d2fa7c571b9f7335f7f7a2c475d04112956a5fc2fd2e43ca11d1e43af69c842fd21d5fcbad861bc26b0319119a9d297ffb3844c4982708d0fad9fbee8bcdbb1cefe0d205670d81bfe8f5e5ba6f40dbfbd6e41e8036e403195399bc3599f1a02e87093a8a63933e16037090f5a67c683f37d3c34403bb4aa3eb8b8d966be7bd0f4743067779a63595e3d4c0d059e621c78325510ad9c539763405398591fffbd3897218c148", + "0de9b698140dacf9c1db0a0a0b87af54f0dd3fa904a0f5a564b48b1121076021c35adb89515c006e3d6185532ea13e17f41912fc388069ded2504f8f7790e159041d2b44580ca2d5b5c22908317432", + "010c56971e17f41025baf56eea9136f03047c399352f81ce84068aed3f6db0216bee819eac5cdb34cbb95a4bcb6c7ad9a93ad0a1d36aa07e434154487606dfe7f6df6d673e1bec25f274b078ac6accb9e8bef90be6fe5cb8ab96f43c5ae0c53b6bff4021a6f3b171a2718d640626bb49ed915e07f154373a02c03ea54da32d2c2d3264658a659192c57dfdf8a00793c3090441ff0a0529", + "0475e9c6972559bc2737e18c1c9948ad418e9b0c38193a33a5ff60057b609dde8d3335c8958c03ce118c8e53db001c8a08f85130e41edcb106c9a47a96fbcc06d0f7455cf2ef4fbe30106fd2f42b46" + }, + { /* i=1251 cDividendBits=2046 cDivisorBits=349 */ + "31508b949a93b1c5b5307eef98d0a929ae72d510652cde33e519c4f4aac463815af7d589e20aafc65f0e5dcb8ed920e470c141f242d18b2d9333ed2cd3621b909c536fd63ae4d7fa63f32bd09a2264b441be37cafad5677ef685602c1b6ce1a5174cec766860175b9d77589a9ac4f73e7879699f2fc061979a46e864a2304b928bb32b4300059ad0a72c3bb74f1f084b9770c73ae44fe6289f7ec266eb7048021b9791fb2171939471440cd9df897f7d86ebd458b08edae1c0ee05f8198494ac9d703b10ec143eaaef6b3efa0083f2b01e489d2913f64160b2dbfb2c453f5437494c4fcf1392db176ae888065d6dd1175be664ee4d8f40de8512bd4fc1add4e4", + "086cf2ddbd00bcbb720b256f7d36ab7c377accffce76099d5f583fbe2110920e5cc1a7e0f197f7f9cd3862b5", + "05da5bea2394fce0e8cf76a08f188226a649e4f3732e381788c296cd37ebe9c375182609e5763b407675803f21dedb18b9435f56d83ac633b1e1caf6285dc5ea39c52ce6944e4dc41a06b7308763f4a8d1390c180a8a481eba1ad752d9c4863e979c2a9261d78ab8b0a3dbc9e07dfd9dcf43da0fc5b48f8ce4e6fc050a4b3ad0a3ab29a30235d95973a562644707425d685a86eea1e15bc5e5f104c6e0df3afd4d022979e0e720a44a120bc700ac5424a76565ef53851a74d5d0fff722ac3e5eab7016eeb99ac3968de8436b97a2b57fec1d339f03", + "039217bb2525201acbfc612d4e6250141d64bdc7b05ef4a60895d4f1e37b19f1045b0ca11d579fa629a741c5" + }, + { /* i=1252 cDividendBits=3309 cDivisorBits=460 */ + "1cbd437d1d98714a84f12371dbee457196d34c3430e3a4ef8655290ad8b278231d0ceda2a6f07c7adf5a1002f05f953ab8a9c73cd2df081f27371b48f4a0af52f20bbfc0db6b4c644e68d4ee9aa02be3bb194b891a5e8f315add69c1fff05ee318db979e405ab74527f75ceef0daea84f96e917ca166c892f13ba443f025c7d3b3cfff5a21b80d5b0520cdac2ef7c2cfc78578415556c0c0c310fa53c7068cc55a904befdecfbf73e812e3b7388ce386514da11c1b5b4ed3c57fcfdce2cad3655e09103f3023458b118e7065d683144479c40e3be1814473d1bb663783a2963df0d6fff0437d15441736e9e747b07a77b6cfd284ce6dedf0004e4b23f45839544b2541773bf6f5a04ac1d74dfdd87003bf30776ce3687c000dcc070fe19b0c997abe4caf36835261df1ef46ea03bd574e4e93e1ab452837bebe2f77d9c63c8c5650b6ff4858f1d21f9c27809680dc848cd1dab15afd47e12fa6617ae6e05abe74d2318f52e417e9d5066a1cddaec098e7982b1ee0d7db7dc8da1bda4aa3d4f9eaabdc9d3d987923fbbdb7725e417307b349785decea212dc3e932eb28b9c", + "0fe1fc69100c37317a1cecd4f0dbc091182bb95591600a2e2eb1bf5ace499e44bf3491a4a10d18c20066b9c5708d635565c3ea14def21a0b0a4f", + "01cf392aeeec79a0271082d838f31182e504275092dc04685719cfa61e7d71b6bee1ba66f1e56c8217ea8370fc71d74697b60ea910d879a4afb5df9cc402f0155e3aab1ac1c8a924d78640871c26b374747340d879c3528ccbe7509469f9568c306ab37fbbca00c5c253b37d0a6a4eebbc6f96ee75d1d612f35373bead1c87911f08d834213dc076d4c6ae229cf61f1d57b5d70b9c86a7625e9c7e467c2a99c97e10872686036297d9bf69ee4b33af0902abf9bb6ad7f39b68bd97a93f57b7e511589af7fea4cbf2bb890dc8785485a08d2ee89a7d04fc7b24fc40038fb6b2ab9e0689ad206ecc9f6f454cadc9217ad061de4abe91755e4ae2e23e4d59faf56dd352347543b236ba597a6aad03e7abdf3f4cb69979c1f8bba1b3730a3ca983783a71e71b8a72cbcf8d86a23f1ba80da1e09e93de4ee0265ecc69d2381b51339c8225909473f5bab69bcc82ea504eb1e8bb6641789692bb0c5af93f10c3ab777afc3203e1bc", + "0a25117a1447de007ed6e3dd3cf924d9f166ce9fc9842f502010f3a2c0ea6a0c47218cf4ffafa69e64796fb3b7fd6f79f44f782879fbcd9a8a98" + }, + { /* i=1253 cDividendBits=674 cDivisorBits=597 */ + "dca9b2016b6baa2dab32f615017eb7d3755c81ac7e9bb3c8da5c53e6ab4ea819c39c4711f39526e89e572e1fe7b63552b4b6a8894b714d1cacbbd12dac539e1245eefe3fddfc5aee6463f5b7f837c17b3a543ee5", + "0637d4b083f17d596bd4f1307bcf2e95c3e360de77ae2a60397785b299c8c3a902cb02b6a7bd5ad871f3eed84d3d1253f296f03f5ccbdf03d69564ef4f57754ea965fcfce9d2dc7010061d", + "237cbc4c2dca21972af8", + "056aa67e921ae3628db9c6a2713a932800b22718400d18e37fa55c8a804c1e60129338115a0586fca02e1f3156d083bea2e35b144444801197f36fecec21e001d33d1c744f3b6cb1b290cd" + }, + { /* i=1254 cDividendBits=3820 cDivisorBits=3048 */ + "044d7eb6cbb495b2ace9368e53e2b965bb427e335097afdfae732a3094998cb5debe790948c32d0412d77c3c066a95ff379a2d9976ce64a5c59f33264f7b5f71c534e848bb8e7afdbd5500356ff0fd557acf78d63ff4b667f995a955a5af04b8b409bb2d99e20e4012712448ded48c0f5b0853e269062043e683636d3e5f8e9c9781b53044b650562ee7199c3b93ca8f01c340bb21bf9365b6a32cce2e026bd551eedf89ac41f3bac834525b7e07fd9075fd74d9db09dd6447a6d971bd7c2a8847d57844df62ec2f780739561583f8fbe076c9e7dd5ba71bac020c90f298bc30ce3ed4bfa6cb0f81f3465ebdb43546114bda9ac0397bb803e3681f792b85e71c38edddb02e34c1c45770e1fa6d20a270497c8f724e8b6f784b9d0678f303509a57afd2f947be062becdbd44979498aaa12380fff88c61d98a15ce2b1687d9e6484435ef8f0d284acbc8452189e665a529b6b200b9cc489a474f1bddec38623a6598f39098a373470e03e3afe1dd6e358afb640a7bdf3d11e40519aac96a396680ddfd7f05904b091dd33d627692dcb22c5c0a6976109517377111ce975fa8e939e87a9eb959a5356f8acff147a40cc2d3dc282cf5f28ab69ad825f714a07f5c02ce80f987fef4ad34d8a5706857f313ebeca64f6b4d48c68e87cd9f6e907", + "aad0ab77caa975d1deb9d96c53d004a77171f68568647f7ed12dc4e783eb21e981fb25a8fb608ee1b5135137c89f8a099b229576a1f7419c33469813a9b8a74d7df66e39df098c276e09f3af69b482b44318fcc1b02e898c2ccac73989baadbaa61e345c942d08af225e28c70ff0e4bde4e7ea491091bd2d9e96d7209fda2b6d6d7143eaef624d392b7a2622e628d58829cdd8fc75e70239510698528a066c81bf3a29974f686bfe7ef0bb252c7f71b3834530ef6c0c684cfe6805cc0abeaeb71c06aaf70da20ddc33ec5bb584f4ef5efd9ebcf3eeac73bfa0d3462c5835891c3302910696de1cf674666d4c2d3240b974587c24940346d6656ea244108e5fbf48dd815a39d7464805f8a9be49ee1b3ba29740c1f2f580b54f95eef43dc5baa397e5531e0e44f9a4cfc691f7318cada6095ccf5a7339b89842414a87babba2b1a34350bd97612ad0f2c63eeaf19d34b1347c4731aba0ce53b327dccef3916163857b9397bad5227ef57b73c2fc04584a42ddce729a8fb718a04e831a4b", + "0672ce7a782d9f3c9f2c0daf4ca99f5debf8343a0b261d43781895d59457f58c245148bf5fad53c8838792ab9fd687ba872e202c59326df43790681be503bb747683f70e8a01c955641e13248d1693e19efc561d2a5088ae8a7ec63cbb5d874414", + "7d26541968f3a9232392a85bf8f794f7cd76429efa0e5d714face202a8c1110e66ad74d506a81cdb3b6c36caea2cfa8f7204d60206991905af03974744e93badbee59f63b636245a4a4f17ee6f21010cde3f30e57da98db386aa7dc9a1f40a510067586833f33782c5bd28ffddddbd437ca3fdad6fb96325e8cc1b8e6204adf122359f0dae543da20f650c284906716d210e1f8d5bc796ae86a455153ce2c0f0683e8b6a63621c838f98bd381f472189090c4c9e999dc73091d1f9bfd898589d8e7605859f59ebc00e801af73d5cd197d2a1f6d5b4cd00cf04f8934fe69f7afb4a87749e54573480941c40877144e438153fdf15256d76da81e9a9253d48a8d6aebb87e27fba4fcb8d34abcc05ccdfb26c1cf53f432d5d7afd63a05f988303b04dc32da0f904f620b38131d9d36974ba7478bfd60e21dc903fd8795e89d007a9e0d23af097ea13f4867c92741eb29c271fddbc7711fd0e6693c048d084850bc94061df42131bb79544a9a9b9d5560547e0f7246ecf229196a2c82fef2b" + }, + { /* i=1255 cDividendBits=2516 cDivisorBits=832 */ + "82efad8ce8174764662449e8e74acc8482e364ca9b9e8b40fceebad38d7913c574f8d1804343ff57507bac94254a6209d8a3002941ea45107e5fd01105159d6da98668dccdd41464af376c72535c29513ca44a58bcd442836eeb5e89c233ebfb663890a108f8cb2aaebb667e98ea4f4a03a4485cf5b829f21e5d852b13b1587ebfcb2b49a5c55314a1e05431f99d97938e045980e3bf1b050b031e8c4c2d22338127d6177ae7165dee826408bdf8ac440fc0efd16ff3e08d1c6531b99c3c3486776ecbea53fa09e046c2cccef9d852bcc49e6ebda306b299f729d8751b108c873544e3138ae8c67523e5d425e336db2d5dde9ac87b6460736985d1e0331895ee15c39ab895a68cf3a0759674af33ed7a7a085088d1548edb25a82bdea38e92083c6bb671b4ce362bd7220c3095940b5e3d02618f84a8e5804e1a", + "e1fdbcf83f6b57def2ab5b5fa74249b764d5e96808e83c256b1aff4c38da8443292490059eae0073037e22ebfbf25c088371c682f08f7f0a581d4be3b33b8a7b1c9503a0377701308134b7811df261ad621d4fd692681bdf770c109bd94e78d8e53437446c69eb85", + "9452ad58cbe289413204ac8054975e5dec0a6d6d984fd494e855f0d4b9ce03b80e9cddec24c0b20eb46d3ae5f29cce9a4ffdde0bfd327dc0f6a3958b2f37176957da3bc50ef836d85f7288539f4805fe9925c56012aa4a6a433d1afb2bba8510b7cd7dfe46206e69b5d51b6c7427983755e2640797be2d82449c29568269c4d605fd036c36d0a350e547b09d3afe1acf7521eda74bfac68add35c65ab91e4bf53432e8a46ceccf13ba3392347161f3296e7491f3cace6bb15840c6bc5013cceff024f392a32cbcc44341ebcbb8c952c4ea17", + "644496a13025b73ca56f14a9ae1f9dfe1d68319e019af3d4492d33063be6fb67c086cf1386196e1f835211e05199a63a44ba49ba7760553eb374c7cc4eea5162356f40517cff9774c296ce9ea3b2460948d33dce8fc021e2ab63c5516d8488baba5490746ae09327" + }, + { /* i=1256 cDividendBits=3747 cDivisorBits=3123 */ + "05346e77796998c37ec1a4246d038dbc2f538e745be1100ac31cafd161176c9ed6fbd6370a7d4870897440e165bed7b8397e802492d47cbbe0144b69b52105376944a47bdf3e408ef1ee1f9d76df69471914e36fe23df9cab9f3af665635dac7497bbe3e823a8042a49d61ff5bf1a1d98a60b9041430eb31cf2e98f353d9795a80c6e9719192a6248519d6d4d2388275e1a77afe3852e55bae23add164aa116447acf8c2ee36f8e16c6653a5c4fca95960edda60adbce853f70f9f478983450a6fc0bda5e08aab01c0f3e8482f452ac05ae2e5dd0574a76f9abd37dd1dc487fc3a2cfdb0198b68e4b5a1f7096b8084bbac517475f6adabd1ed5d580db8116cfdc34c145c540b6f94b157f2d1194664284f6dfbed9fd08ce69d348f1341ca930721763dd95bc1fad5ea03e83beb64a01562027e28ed5d9c9e9bae4c99880543cb0aa1903e28156a1ba872d5ac855b08da091a9ae7f234f68ffd849fc3d53399ce5c28e83284cb111541cf84e00045d402f82675672805343e3a01cde021954bfe2bd2c16b7fb9c77353ccf9c81226b7c74fb9f5cb1c26cebd1062d65e3744d27552983490198d5eff69601f836a669468e70e20be0f7eb0e9c54aaf178d43d83bb55b22e98543fd48df7fe2fa479152c2b567437d7b", + "041dd4d854c9f423bdd5c5784aee4e70df9f8ff8a360b8f293029ba592eab1fa05c5866f8b79e8bad111050696272ad81ded8961c9dee826aa8a77d5feeb129d505dab6d4a2f24d38727f23a26fed50b0d4fc1a9544fbceadb1ae4042477fd466bb02d3e1bdd1f35795cb1ff6a9da99340513d535f1a9ff1ae9a5ffa939349ebf4be776d5cc01173e49babad1e9afd765779a3154c37bf4f735b17f7af6d4920c0a7c6b6d8ca33c79bd00fb22d769b2c8838e135feb16a2876833536736d3177e88449c88fcffb77d716d0882f335794d25d4a607372a9c3842413e11c9b6c5d89536b32d1dbd6925ab99d87884d215c79bf02b823dddb7a35379214654393d2bdedba8f7da0c859939b04ab33ef42ab04ede911c2c8f6f91b97220f40aecea616ffd646b8e70434eaadcd5269984364aa0d1929605cf8059fc323609a89b155c1de89f9775ab8e11dcfdd86f9031f58b48d7b30268f16e6fe32a6a801efac50261ea9a83dd47e8bb1eeb0f9491e600e82699f191d86af5920f78a240b32ace9ff4765e13d0ff3", + "0143adab6d930e66e407e1eb162ee746c98a7936d0152895836af962b2b0d647a1f88967a6189a3b6eea36cf6a44e653ed7641df2b1199ca29a384f920919410f9c5d7f88a467ca59ca0e43ee87222", + "0279eabe31d45784cff2fbf240c70488ab7591639b695b6be343c169e3b4a3f510775d72eb62320cadef71a822273781562e9380451de67bfe0a07980fbddeb7a35357dac2c5708214301eecf2d3d5af80a22f0a91489eac533eb38d3757304cf8be1884aef571c923dbf30c514801c0e9d835cf36571887213d1ea40c51c14ea62c1fbf8d100cbd4718ae68e9a69f9404b4047e2569a5d46e629fa66eaec0cc3d554c11d16d4d3cfd6bc9fa88abc3b9f71b2baa5b900b9d31d8cb47069c8cbd7941141448b4ceb571ee7cf1293cee2cc195d26b600a4ee269b21f0dda3f0970db6d55e467457397d50f939f6a5a7b20394ec94fc3e4cc848ec99e8f89e0483c3f7c57480bf40ad22b792fa96235f08e316f414bac219b228bea5b5d686040a9615a5a5bd1052b14fd2baea05ae7769271f3fb3058f22ac32db4121e3ecf88a507bd815d4c6f8ae5e3f04c77b1fd1fc21df055956bb35dce2d6b1bd02939430c8ca3f7e40f60dca8e5c8b968e6314775cdbba433dcd063586bc7d6ff4a50c55350eb40fdd52935" + }, + { /* i=1257 cDividendBits=1399 cDivisorBits=303 */ + "13d2539d57b8c974a080841365d7741a625a6c68c2142806a4fc9eda78d6eca90fc68cdd251206421f9898d62402d65317ceba06dd2eb38472cda0d7dd481d9a165c32cd50991366bfd239ec115d6058140b7ec3ff0f26200dca99132acfbbe69b80e2288715e618670323ca67c27c44322be319b2038f52166243cdc5a93ba339199c33c03cc53e6d15e42132964a645b0cf5ad422f3e71a7e5e64e01ba4d13d7a74181e71114f1158a8588892dfd", + "788d6a7a9b56f962a8845059c284d7de822521c2f252f2ab4fa9efaf457dc7ca5cf212cfc6a2", + "2a17a0338d36da2b23fee254957bb10fa3a1320769e35a2d7ba60031fe70a6697723e10f4dbad3b2bfb6f6ad87bbbead8ca8ccfed9101b507c89818bb2443ee1dcc5b4e7702e82d0c646829f27a787c7a159c7e63172d046e45bc91bb881109e1bf7608971729729af89807e0a0a835b88d4bf3007108790c4006839d95d6f7352665e4c0840cdb394", + "0e6e98a850ade462e12ba6ca041f7344cadda29643af85abec8d0dfd80e83d9b3c50d0cd1255" + }, + { /* i=1258 cDividendBits=253 cDivisorBits=23 */ + "04bb3a2a8bb257b98feec0c25c9a670bdccaa617a95b70fd684b1e524f5b0d26", + "3f946f", + "130ced7070b892ddf793d3194af84116b89ebc08a5e6b9929ebe0eb065", + "272d5b" + }, + { /* i=1259 cDividendBits=3621 cDivisorBits=2565 */ + "1fe5bc25be08d4b53ce25395b6c1237e28302734f1a43607351603878c5aef60337763cf2c7c54fe95e70667af38e6c793ea511f4ac68cb2b2bc37f239aa6bb0720531f8cb9500ca1ae7659a6f780a4d7ddefff61d17a55ab44f6fdf91435df1d356dc5b27298aa249cc44116d48cc1cdd6cda14458412e076ef6ad02e4c782c2074dceb9846310ba4764fdaf0d83add48502ee31bd29c7d5862d847e53c9180c6c709c3b4bb46b1d67caf67c2274fb4b5f00aebca7321c62acc902e8dfb4f8d11a6a913397fa5f7322e8672505b15b6b4e4d1e3cfc1a2feba22bbb0cfe22be334d0e09b24d77820a4389d6b05ee98e19fe0360112d0aed3c1fa7fe0e81bc66fc94d02abb5ce3908c54059030e6b7c51abf6b28cedc73f282734b5857f95198dc5e9769b8363060cd116d4532ee3d674269330ad732243869c2830da88b5ab7657d262fcc1e253dfb69874f537a2206e90be4a82df808b784d9e5336e6d642c344aee1d3c97100612929fca4f1db9d7c5234131ea946af47bf3d1ed718035ce37a200dec4bd027f6c41ac63c2f3b1fe3a24dc38209850596abaa7c8a2fec85b8182943159b15ff6b9ae8ef90c35220a51dbb06da93881220bb12673decbc4c29c46ec59893", + "0501bc8ff86a71d0fa1dedd688484e4c3edefd9fefe10e1637f68ee9b1dcd02cca5fde15235eedd09a120502960e5cf0825eeb2dda13aebe773092dc886712742aea1bb9cf4ef990809732adbe86a9096d6ce8a8e08794b280a9f793dceaad46462202c39a0558bd8318456b11700281cc1fd27d3c72357f9cd2628993825faa03723525957237eda0660e0015ff1f1edfe9ef4f5e49d0970272f5a995e58b5c3a59d9b0d3ce99974e7e7ba06def49f900e201bfa78631d1316436a7962b855a114dd928deaf4cb83dbf711bbbf9be7c43bc2c58ccb2abe65c48375ca906d8c557d93ce0339e141036e8509010a78ef2a7ba9cb824a2ec369d6c84aa6b2aeffb9a8e917dbb12409ebf7650f93aac0876da9c876861fcdcbefab9ed9bdbd5c04be5401c9652a1582106ccb565d07305df6255e2b2628012265d9c551df9de168d51", + "065eef2ebd597e75d6de7e5e14162e0482ed97b28c5ffa0b8144da1476bd4e5b628d2436e396127d7db8358f10b64536233176278574c6e0d9fddbd8f470878a9b21c5b1073ae5bd048715984e19a54c42502f3fb5dd331a434a258f81381a8c9bdc64bc5c0f9a53e22d8c97ea6be94eaf01094bb7458e127fdd0e13a022539b6f3337f5e9", + "34b61a45da23841c07dce2fcb74aa39ec2db16f66bfbf8d99c5b231453ac3fdfb919f017da675ae291fa6cc7a18bd79a61fbaf50f7bdd746439e5c874e77199d81e2eed44965c16f80dc417cb4e8bd1f880f761bebfbc9d3e9ffee4c3dc119622aea7bc9c0bcf3fae8450669864b73a9db137e8a8f0e324b79f5ce7e66c36f3395299922560dd8b64482ec2b4959803adda9cc59510e892cac68b60f818d52ad8a6f9ef5da2df940b2b1ec7535c5b5c35a2f6737ce4b8ae6450f815ed36c9a7f7dc4017d9433ac9364a7e7267cc834330e51b1422fa1eb39d54cedd6e15fc5b1ba76ac4a5fa7936ee634b1fb6510dcd3d0e0d161d5a3973c97e826be9ab950bc78827afefb364ae4339a3bab29356d56a25ca357d749e9af699140fe980383a1bd23af3293d6f95e95b0b26af4fb7bb0b7445f15e35592563e9c39af379974da" + }, + { /* i=1260 cDividendBits=1833 cDivisorBits=436 */ + "01abbba72584f9fdabfb4650237a12b6e87dafd06e806fe80617963478057f42151cffbaa44e1b366b7edb2a364600df876087b6eb5dadc8e8cfef5af7029edba0eefe51554e27c353e9383665e32325f405d107209ec58032bb9ec4d6f9c89d57e709ec97c742232a5db524855b3f67baddb53e5a52828aab186fb40f52739b7f979e44df296c73f024a828ae0828980ef0924544e5f94140dc82a263dfd90dd80fe965317ec1252cc1883bfb15fd924d75cb6b21fbfdd57183a9c25c2cbf527f1c2af3a604a0c7b74fd86cf2a6fa93673c88d4688a1e66fd204e35bac0eee88b365bb2d2b2", + "04aecb4665b86da0d0cc877e8c88a099f589ba470cf745da543b0eb18204b0e65cb1ee68f57a6da3b761e8df55583fdd298c9e8d62b739", + "5b576ceb0c4a29377f84726af56c70df6bdbd390295e3e3e2488cba9948d6859bf0cc812964f669751febb127136409b9b36622dfef79f1c761e284a920e3770823e2f6d3c628c80a0acab84c5f2997cdb272330d4eeadd00414a9bf37686732d2e50e27d2769cb8d371b0a01e9aab670fb5cd28d732698d36ee750f429b66f4f48505f775ed1ac473fabae73cdd6a8be148ab8d1b905708cff60ecbcd5d85705d64976832a592008f6c36c34f9ec9", + "03937426bed08bfdfc32953a07a7db29d18ed283582c37b796129c717b9c2515cdf57bcea9dda224dceb0478625d6fa8e9c2697684c8f1" + }, + { /* i=1261 cDividendBits=2092 cDivisorBits=769 */ + "046fb3adab78e4b2c64b9371f2501124c21b3fe993253ea4c0d4869151ae80922d00c028743c22832630478827fea9cbc752a0b6e273d6acdc9c1428cf88c088fc7b662e9d0a2fb903cf80dfc7865bbbc7e38161a7cde6628e5e6d8b324a6cd73bffc4498ff8c235af9c007bb463fae79e41a13cf6711bb44823f5329ce65d89079f08bb5045633eecd5a42b526d6b3fd79db896bbd0a0753bc65cb4ab54873632927c4795597b6e63b78e7bc9eba8903638950f839421a9cc14a6cc078951a3fd5f7981d94d3b9f20d7d6c37b04d829fa52a095f168c6661a3d63b81fee282d6c1ddcf8118e2b9123185661aec3f44fdcc6a1911ac3aeed73a04935b834d2f7bc4c3214d581", + "58240459bfda93c0368090a175563efaebefd9b72731bb24ab49916bdf5f26e460a7dde0ed498dddfbe9f86ea96cf45ac8cafbebcb1d5281e418015364c3350e08ca9d83a12b65beeebb7c68bf0fe29b0ad9ed60b33cf2f7083e0fb0d0e90ba1", + "0ce29618bdb8fc58605b0861eae75347980b792ef01e3065652573c29acf3d8e112b30cedefca3c7241de0fb9503a34fc5d9435196939cec024f1ea43ca0a3e6b744d942e6ef04af0e92102bf5488ac1961017096eb7e5ec0f7edda210822e3a29895af0d3ed9a2fecc3d298129e87b6027c56c641af70491a74819ea3835518fda598a7a5ea951dd7ea7b8253bc82024b6c9b269b817202e9912ee6fb2ca4d18ae6f9974601", + "0eaec05402d8e071fd056dc4918ff4f9789fe67cd79def97bda8f31aefcbfb27eca17436ec2315dc0e540077714b83d267c4205b337be6b11d599713b82c29337570d65bf387b0a67df40c6644ac97511ed062fb9c4ce143a1db31103306c3e0" + }, + { /* i=1262 cDividendBits=1561 cDivisorBits=494 */ + "bf1b484b81fe24b23b40312cf63c10eef14e4d61ff4357fe6e424ce89770dead246f9748314d9c1ea62aac25433e35f6a4bb8b5c0d61ee3640eb56864a96483b775c1985440d4d152c6e03100dbd0aaf864b62708060947e6524b68e74ee40a0aec8dd6e3380e571ae0f0ff11af02d2e753e8b6f64094c8067da368b06a7265fb6b543e37cfa303619de92b12c452fbbb51ae59b764be54e96b406a2bc3b02b7473a1215a4c80d36a5e886d5dda6c24d5b07a2ef5f9e1a29a472d754c030944fe36e36", + "1ed0adb82370878c7a4348a37fd519d76c22ed73055323326dd9ea11f25082e32ac44b72015159410d094164701ee3777e6298a47e1a06a2effccd0c51b1", + "0633a325658a02d589c01fdb5447ed7d5502cccecf5f390134d9d022e3670eee7b353bb308d027f89d0c275a6be1d5488d90b09633735c7568523dc18fd59c8bd3f140f42d149c33f196ae587c0b341c3aa61c530b4ca2222dd3677b1454d56e30f5c09a60c14196b05398966d85187d77f6c820d39180f2fd82e28975be9b50011691f93dfc", + "1e019781d8ba5c903b5ac6a2ac05f1f3f36f8c86a61614f9d280652a47e71b3b41e2dfd73e62971256bbdd8a1737d343bcd6424eb305fe749567d222d6fa" + }, + { /* i=1263 cDividendBits=405 cDivisorBits=223 */ + "1443fdeff0f1edeed45786d1b647c363efd079f19135392f300fa1ec01bc3d182294e903d416888f2068011f10d83c0a0386eb", + "60b89b5df9d05a337fcee13219f60f39480134ba80aa467d293e377f", + "35a37fa6b04b4c4df452c1255697e7ec39108c395aa771", + "305e045427ed82e9ebbd2c6c630f823fee076c8db8f7716675b32edc" + }, + { /* i=1264 cDividendBits=3063 cDivisorBits=1653 */ + "0f4f704d1f49d04d2c3de38bb4fa5909baa1a43ef05ab6d72832a43ad471fd166c6eec7e722330a6a9c0479f4575acbf7e67744db9ad898f4a44ba23d8607fea290e983cc10e99d2424ea9ec4cfb8cb17763cb83d0bddd7ee001d2e78627a3c89c790981c64d870bd600cb07a7ada5601ed02baafa828a306d107304000807b42fd5cd8926cb55b44f53a486f4fd4f04e539a1562a89ee332d38052de9ba1f326abecd125845b1bba3a4a5f2165d291d7136d9e50a552932ea1a8909266c33cb04e42075aab76490c391f332e8c4f96e459dd6d68b659c3455785a09b860ab01b4bbac53ad0999d57e7d569c676a257e8479fea6905a4b22a0c6b03bd4640cd8fa1ae90c83d487c0bf0eba860caf273bb29a117043ad3da2571c3d7410b99750a04d1b451beef7a6ed6ef0f7e7cde67bf661641e1c9ffbc865a0ce81698657fcfbb8c8d2e77eb5ce955450538a4cb19b4c40f5a49d5e3797b769a4d92cbf9c7a7dcf54ffd23c27ace24a7f45304b5f201f9701f627bd2736cd8e95c06a4db1", + "0783b8e8a3737ba591f241a1c8126a90bfaeec278015106b660c0ef4bf56007790959ea7735b0781d661124ba0cfdfacf50bf2be7771829486dc4522f6a5990169ab5759354ab314b8c27005eb39d2535aadc9d9047abfec0ae74153d37390388815290f788745cdb6511aee6c2de8f3bba00a1fb55f1ee1ea3831e2541e0a9c922aa6f92db86fa20a74e48f07a3c78f67708844ddfc1a54248cba86b39524dce1be192a98cb58f3b802dcb7a43c2f87b23098404c46a0a351b8cec99ac3366fc592cc6180473cd5186ca02c05e49e", + "020994a49544e2732fef89eea1a01eda7b0adb8504f33cdc3dc6f4c8a1baea66ffe340c312c5bfb6aee4cd54a155c90fd466f75e4019f364657c9885ceeacb67bb9d505bf35829e15fd7df7fa2bac6eb2c11aae06b07a20a70967ba7b361c468ba8e2669ea7fd970f1d50a74019f1044561591ecd567d02c23c706ee76e895c1e689e8d9cb7dd34683d91a870e131c4802e11a08d7ef9b86a50660f5a01764806625cdb951e06566965ff1cd5d2324af23", + "052482577438fd4ed118ad6d9111c8df55244b7b8cfccb7d5c9b6011af35545e1d5e385bf5480944d7fe3784215a70d5203c7fbfb07c7577b0f4bc96849c5e1d40402d39a959eec6b4199f995139a8357478723253d7d028b8b38552753ec42dee8c2fb5f064d86289f0f387677960b623be4c0653926d28fe3ff6a72b535fc2b78341881e1a06344b0939f44bf195a1bc7e86503c250fb0b824b3af23d35cca03d28228644c643ab441ef5b891c0c739ffb674ad9c063326315bc637f8ab4b8cac8d7585ed879a4b5a41bf41c0a17" + }, + { /* i=1265 cDividendBits=2514 cDivisorBits=551 */ + "022e0c65dd09a07c415f29c9fc03e71063872965c67f410c4c82e0a4b7d25eed78a91c3b46697f654de3634cbd30e905d34dc7de537ae2db3707a5006b188cdcb5d2839689cfb3ce0778b93f8bd1b53bfff1dc0839515a64b637e5422344e9c819fe29b00e4fa667440e3341c4f1e04c01826e0b371a103e0af8ef15a3ffde9179efab6e9a1d708799bc451d7f190289846a42544aa6e88a08a73f49de029028157d3e62384bb0e771c94538dc8c649ffaf12240fd3a5ab231fb8c42b3f49361e0982e7327f5e261dc6f65106bbdbc576d0c93db08be519afe4c3113cb3d91e8f9f00c6d34fe39e1a2655b7d61c3111fd3c303fd29074061d91a0ea27405b4b2dc551bca3cfc7ca74853bc245ad3a1e3897bf01a7c3f440927a4318d2e4d350ff21d8047ebc61f13fb37503836023aee9fc12d7164d309a3c2f740", + "2aa71b5a1fd24fbcadddcabb26818d1582a10bd38afeab82f97411dae596ca581d1e0a6c535a849f64c018848e8e00e9b5314cf1e9cea5d93f9d313895f036cfb4671871cc", + "0d1561d66be0f0e78cc72c04208d5e8d235a1887785f2030a2aab8b9a9aa0359f2419bf669c1a7a93d00f5c5840cec8084c74d5eeed542348a84a5d29a57ea785cb9eb766726ee24ba78654a5b300ca4567abf73247b153c914bc4d424210351c48851f0a896474160f9e0fc95f6a7fa3dfc959badf081c23973ff2667c67cfda2802b4a4d3898e2e5cd66c015e7a803efa94d4b12dd666193a957b52d37a58d94d3912f234b5bf10ec12711e807069791489e6a2099e652d7a9e2765d440bf986a7c763c8d4a409d29e389dd37945e397849b0433f1bf5e14b134b42f8ec3624afd4c882fdb1f3af99c6f8497025ee78b1db46d52dc", + "1958837e8f2fa4a6ce528ae0cbe34a9f032b818f7bb02b66b3446278f81b2c3d60b057ea38ac31e3c206d9d6b67e70d24c117618da053922d992549426a0d2cd735271d3f0" + }, + { /* i=1266 cDividendBits=2348 cDivisorBits=2082 */ + "06c7c1ca7d3d7840f8b2811d706438e3195d78637ed469bfeb46470c7f0985d0e94f81a8ac577fe8690183cacc59537791f640e410587a887c28165ebaa7c81320e86e052281b28d55830469585e5877efab9cfe82f36f812e6cbcba4c5b3cc7ba4a962c5e02e4206fe9233b5c7b370a0fc1446c98501dce39f19d6b443759a291c535cdedbcda75f2965a7ce5838b360e7cf3dc126725f3ab39a722e0fc526202c728b23abfb7eeae1537b591b28b2ef391a95adcbd117310754f42f8857a94fb024df88fab68b8338dc26ab3e3ec2f32ddcb1250db1082061b847d739bca8b6b10c9e895920d5fb81e89dbba4efff83bc0e5fc299f8c3dcc54dc6b07bf9548781cb1b2647b53f7508c4c56a008b90d154e5855f65d739ac70cee58c6c2a4ba20666173d872", + "566a404b186f38416d227de9425073a22019f91708582c6a9c00b986fb3356f329da3ec39e0ed30870e39975907178b8cf8fdcbe0eaef346e0118bfe6d14edc3b8a2c39f542314fe9d89a0ceafbf59d6e949932d871e1b4d949d86e7a165d371f2ef60a7a5f9afc4250ada01b2f273982ba77680ed9eec78dbc78ca78f89757fbf1ac31479a5c8992c88a87d7a3c3a25ff0c0fe93d4022b12f9df028080ce2e7ee0c2e89bd462cd19f1d2611fe0b4ee1b3aa2d67cf29e310e4be49390834630a0cb376e34b6237fb7a156c5a509bdc6e9aa6c9f2f820f2d9e6ac17b0ef410a06d2478ca609dd929f43f490a5121bfaa46f0665b0e1cba7bea476cf7acc21272f8b2483a6", + "1416169fdf4067a904a4971fa36adf596f84573dae72ca72eb30be2c2edae79a4846", + "483cd592df450ccba3b37c3cdf32bf20740a37cf0a0416bc8588e29056c19ae2b269a7b51c3a2bd3a2530954decd2e2302f9471e7ba9827c5c6cba04bb98177e222c27399c4632721cfe32c672c2095a64f9973be386458f8433eae6963ab84e92c82c29fc87413ce10c16952e1387ee08d37c7ba14e9452bbc8d1240971b5978cb89c519cc934e340a882b380d4b3c51d3db698022a32e867128dc508ec2b71db5079ef9f45c745c8e48dd48a55489a3e060e293794f64211f11fc126d8f5974aa5f62315fb65fef8bb49dca83683df9a5d0f4714a4bf4a477815251f1f5dbf4e1b0b994ef4192de1d6471555d6fcdf2450637110247e3de71bccdf263474261495290e" + }, + { /* i=1267 cDividendBits=1403 cDivisorBits=815 */ + "37f82464f84b633e1ee10fbde62d96368871096503a59faff5188380150a3e48f4e7f2cc7e8aa9c4a695b7058d5b2f1e17e5b16cd5f84bca385163d6570b8c27c1e2e1f596aea2a598222ffa692334707b1694c1503b2888427feca144f2839a52e66b12b2c3e3ba325919acace4aa5ac3ba568f81f8e1c1357fc3a12a0a731422be6a2e062cbccdc46cd92ea2966a99cf2f1c663eb4e1532dbbbe6d7aa402a5e342d3c2b183ff1c959f8e36b5a4ab", + "2debfd9d2c1260b731fd5e55e9167c357bacb9a9452e7aa64eb90be0c3f295322a6402244877b7584268a11e9642d71c788922bd3482c75a73e3eac4192648b34dfebb2c3a65aadb5e0c6da033e65e51f09ecd25c9722200418dec72ba6e4449965274c5bbfa", + "013802f244d8fe1fade3fb6b240869895acd8aa0b8bd2693a938048b3c7b44a034b9a179b0eb3c94d5af9fd3e034f2386b738d60a760d4e1be842bd12fa8d079a120c355652d057b65bf", + "191f6d54d8defde33309fc3699ece60d7c665e52ac3bfa0e3cb388ed4d7e6188f5a6213102bc9099be23251ded5a1aaaeba4d3cad9d08d170439ca38d78aaed3b6c84fe4f7407506aae0f1a6fd88423788f9f6f60897efb6c0a0ac8f99d6e98c4b57e0e6c325" + }, + { /* i=1268 cDividendBits=527 cDivisorBits=435 */ + "2dc7615d9007d97917557c5e29c25865bb46a7b9368d595aa60d9ced4d5d961f27e4ec337f6d0a5b5a608fd67ece5d03be5791f21942379174dd24e89a3bbdc11ea1", + "0129cfee6bc31ebdc495f481fa164fbb63665b5e0ed9b9896e39ed3d1f627f2bc814642a9263b85ece16a657e4ef1ae77fb4d4ad690843", + "275a00cf71b718b4a774983b", + "2f01dfbf8de157545a04579bed38ba7eab20e2719a12800391c8d3d6a60ace064dcd591a4ece5b094222ead314ae08187729f6486f30" + }, + { /* i=1269 cDividendBits=3301 cDivisorBits=2616 */ + "1e6de0f72d29c36000670aa70324b48cafc7e2bc6e7c3e855c4d71086225116d32e0cfa4b6c841fc6a5344791ea5f0e04c12a6e0032dc19a4df9c3644e1a17e5499ca0816660a9715b720e608f9a4d707dbedba651288015dc988f0578bccd7d7b8a60d97d4d61232725324167e6bd11c2fb25b6048fa3df2c31a1e21235f50c3f0b01bbd3382f49d462384708eb5f3825a29868791df2161d50f396ac7bdf46cd6c026016bf9202a500458910b990bb2f74b5f0853a0dc4960e2822e8c6fc92dc1fb328be45c5d2000632f74bc316371cc014bdb48d8e37e2a1d3aadd8bac3c1f3ee1b929074331afaf04d36d312479bf9d8c530523c06b06d52b6884ab065cd364a4ae61d3d4234703087bb99b239e492e679a969959968e170bfea784c645218bf63ff20072fc69cb0a8e109fba29a8ed7a2928745ab1eb46b231681e00785915180267a8b0f01b13a03e57f48a0106f6ece3cf53a0c43b66ffce543f21dbb210fa357cacb4d6860f1a4e8c55ed41f101d7e891c9f3f92f8cc725aa7f8bd7d15fea6204e1825f75af5a6db79d30fded02abc8460d2c4dcfc3727e33", + "308b111ceb787ddd1f5d1e29fc17374f6a540556abba9dc625164ee33236a17faf563e50e81fd4bfec242b477081c2f35d21b9f1f5dd46aaade6f9a8b9f61c2ea487715f18790c24d6772aba7ddd364094e5c39fd16f4ba2de11df6f2477e12f79045dddbf1912ebc6074a2ffee02df01eb861324f4fbec9d730511b4e9179b402e138d08ebb6390da5c6a4beb30f587d3d45653b9986e347ec6f571d3cdee351e18ee55d2d3db26ffa575291da3e620373b790b6d721378f33109130f81eea03336c79bdaa0f5e48c28eeebc6e07af9d34eb7dbb6625c17f849ee0ab68438059cfb714ea7359611d897c47c1dbcfcb1ac68b9988c6880b8e37c87f339ec52d30d7e6c6e097a0716ffcdcd88d266ad98fcdd72e905e4d0f7936cf65c9306423bac2217a4f70cd6b993c03309fa9aaf93f64fc9ae2b7573548d869bb7eabe7de0db39dd84620b68", + "a07917f00cb892434f4bcf25e275473f72d7f114b2b19c61c50e1562384960955cf1032dd42206f0c8770adb7396fd72c20370856d16e7b8016bb2ee545eb6d4e7eb5d510c4481804177e240e88f58b9aa81aa8ee95d", + "17ba231d3848cb403ccd4707c0136f9bdf1cedb6b5aa3f7faf8f8d3d08e587dab716688045aedf912553dcbbed564f60d7351d8d3ddb671121048250f590f647ba9d49880f7de0e78dc1f25ec000d7945849371e9cc5dde560798ee74b310479ca8adfa71ed3c21f88bc4ceecba68b2fd5d671a6d8064545fb7cdc443f886343640fb63e515b9adcd034610c31f39eda290a0302077e48883e6ab7f2d498616408e970bba57e515008d37f5538481eda0d4a1863133bd28be851c05309b93e20d806bf43564730e8a390de052bfda5bd1c6a7efd5d5b6e29cc6b2a50cee7ae3af9a592694ae629f7862ae7a620917ce7a62ddd449ec02a884b00c1fdee06953c1fe2be9a2aea0efda7d06b88ea86a74c9b1866024e6e708743906876666de98b00600be24cf39f982c5caa19c84f8711f654309dce314aae16988df9497475d3f2517c0bc2b16b" + }, + { /* i=1270 cDividendBits=809 cDivisorBits=318 */ + "01cd7f2aa3a65a6499c867fcdd7bc715b1fcec86a056fce01c2f6173d9b187c3123d75d438a0051d62951ba8101fa97e765d0e9606390378278c1ed1edaacab5ef31a310616c60a45dc55f124b5f0732075d8d4cd498d7a2ebff319a20df932f1e2d25132815", + "3b508a0a7f0de2178ffabb646c37ec949f39b3e8157a46ad977a1b1e40acac7afae27775d51ea7c1", + "07c7ce3d736ee0b210e80c61a92cbee9fd4d1c9fa69de6775771a27f96fede9b7ffc960044f7a85a01a76c3fe85beef71e182b4fed294b8dcca90b6dacda", + "31ce17c090125f13aa831af4676870849612fbfb3e89709f4954ac1a46b96777c9869ef95815a1bb" + }, + { /* i=1271 cDividendBits=1660 cDivisorBits=1280 */ + "0345c8a1527008319bd0e4ce95c30ac40ee059ede325fd3f1f33cc236bf42070d1a94b2610ff142a4cf0c8d0aea61624b46eec96c4696ce46d51444b6d0a36adf8c8410fccedfaff00e66ed23e8f47e87fcad970cc48f767c161b9065e826c577bdf28539d978b7a972e694b35c1a225c16b620e3d61eed80a2e855d726c6d79890b1c868373efc9bc07385c3b3802f947ed32772e38f8558e8e67e381deec3aaca00fbb8d44d7b1a5ec6868989d363ee391d1db02335fbad9cc372e32087fc920a20a4fac49c41a9188678d8ca0bef6", + "257f4c6b5cd51d8a5730eee2c8401c2abc9509a577f6cdee762129b7836465f933b51f62d71fe395cd460b838d187f08b9edb49900f99d3754ed63322f29b3c095565bda9f513383db1f212a6f109b840a14a41285518a7c12d209f22b5dc8c361a185a8a2c17e11e9ad016d6703b2a2a1bb34775925722da23671a9776459dd155f71f4b6eb86cbbad84c8b0110489a46c9f71c8ceb207dcd5f64aed915ef8a", + "1657b02647f3c900d1a4a2dd62cd2791fdb6a1628ba1be1fb35707854d96b2656cdd3fee9dab1a5cd4ef64d42eb6d643", + "202e38c5a16b7b86c0e72f2249decaa0785c34c6387efbe0109dfa04d7dc6ac0c488755a3991db9da54f0a8fec726d60d8b61b628238a2649ac654a9e594cb9605e36179255cda635caca1ba272475e9a45899949190f6eebc5f7d4ec6fdeef071058febc14067ea8ce8408db1c0a90e78113af02c8b1ab7b3c606c2587dee6f5782dabc18d475cc38738547e0b4f52fb1bf3a768685568dd28457674d89b1d8" + }, + { /* i=1272 cDividendBits=2450 cDivisorBits=406 */ + "0311f9e5279c20934546820c9e9158765768864bb8b6f365713c2c78ef351c42819890772738adefaa3b574c7270c56e62519ec5d85e1d42fc740ffda8b685c5590c4065843385cf42ea4516a6b0302b1410bddf93812c6fe70af43f0e22350dc453ace743dcb7562bd463c9e48ad8a01f3ba8977b300c8012f3482322dbdd5792be7eb85ae3d5e946202559ff6bc7970740e3403e58058f69cec8d34c540d892e8ca7933ff6c80b63d954946733a38a9956bbe8969ff45ded979ecbef2b38fc2c7ea406abff5638a6dc73e417b8dea9cf666994b1705567e06ec489006e8560d33ecc093289a44baeb45a9309280ae947ea4561d172c3a9ff3713bfdafd59795e2972fd03685103200481b471cedec5bfb4c7f5903700c055e9f30c9282d921e5d011a2c7d63f821e0cc97666a6f90fac24e2", + "3dd5b1b110eb41bf609dad914c366c97b2712c41d8144f0bb45f498369c0627b9671ed4c241d2efbae02b63cf1c788130f423e", + "0cb5fe854bc4c9ad7a4204544f0d56e9d07e761ff9492b25d7412330cf5ac447a2129badf72ed69a1c900067c9d772b8a09a58dedda6a727016bec1d60aa49dc40d174d47c9a2abfa9b647b36b2e5831235dd1761ba2193e4a74f2e3f7eb49dc47451deaf10e07aa8e76bef9b91c3ccb92e9142cbe8cfef7144699625d4196f71118c328cd42d962aaa4948dcfd74a0fd6525db7ee17348ba680eccd45329310b9b585587d32f5722a3a10ba26697fe4fcfee4b34841ba84fc6f2fd1c6f788c943f41bbd5dc85e4de28864427ed57b3ceb0ca16dfd8ce9d6046ff910d0869afbe3e170a17c3bfb2e9aacba0e240e7157df33031f0d008af6407cc2c97501346a", + "306a05ba2c4ffacb75b064ba732ecd74d776f656d02c51286e57469ab5439783acdcab56a9e39538dc4400084e59be79a81f36" + }, + { /* i=1273 cDividendBits=1361 cDivisorBits=258 */ + "2cb32a11de8530dcd77772510117f3211a8fc4be6c0683e9bf373869f10c745418f5dbf8fb5c0c910b186fc54aca4edd66ef086736f37404e5f487979c77be7f6a3a2550eb58ad745b2040a2d40f456c289df23b45f14fd0d358401b7e03d8d0b5781f5547388b704de0ece1aa729f5edc6375a54da35fccac2382e5afd54cbf18323bf8faaa30aea6a633f8b4b31807c9cef41a7ca01d11650c7a736a8669da4233998b5c513beb224f", + "039d0a335853c436d232593710e0783d2c35eda57507e88c060eca1daf987680d7", + "0c5ed62d7b8d454c8f4f801af030c1f57fe69eb1760dd921d470af80f5062e06c4538937f8702298f0d01432204f8e43ec82da2a1796509f8b2248ffb64c28c8022d9786521a516d08e4242a4363de89b59742dc9bbd45a92c8e4ef0fee1aca601042a48a529507750a06da026545bf6186a1e349fc819631837af0c3fe8231e533c4685dad0da8f57f4", + "02b7aaa6c285861bcedc43e2c397dd86948ca2fd95417c328830328b8a97164463" + }, + { /* i=1274 cDividendBits=4005 cDivisorBits=1961 */ + "014dd6c36c0511c3bc8823414aa17f4bb028ee639dc9ab0441702726c1d9df60cb427ae609852913c561914b487b71b0a8a5868a448fa20ae5c7cd68bef150e18d3313cef4dffafa3c06e67c8a84988e52664c0875deb835b5429c105a385ee917e39d912122c676369e4aaf2b61f6b580a629776f5839b53c9265b7655f3aeddeaef197676b07306c85fa18dc93c14e27cf2ecb946ad2147ba6a79d22fe420ac07bca8c38959b97c674651c02f09ace579bd417915648316ff5dd425bece4238dc31a1f8ee7ba60c4bcba6f09c4a1e8f82469e5e0d706fca6421afd29e2fab2aae1edb6c320db7ed8e596318daf26cca804d37e831b5f5c9a306b21e19fd6642c26d4c896c8c6f15b10e5e1159c43c1bba48cd17630823de0809b47cbfe1a1e6c904909616cc741ebdb930746db8cd9b3a8a85d2272d8c34fffedb0fa076ded0a35a50f78647684930a977dc13c5da003bbd736eb03bc869db3c48da9400d57c93b4c16b9fc7fa55e2fb38cb09391fa93f13fcaf376e28fe6feacbb504da9de1c281fef7ff29106f22058486888fb46ab61ff75109902ae366b9b1b1ef9250a0cec06b70d29074ac230ba163eda4f2479d8899d41acef1b29717b87fbf016f74449e563f61e61062f04462328f0d951e59b9d5543c396f67185b983132faab80f8d6236b3ed3966e391a55607d6e17c678b35ff78", + "b1627fb87e229b5a0586a60808013f44e7c2c543789ebc8b75a42a3ebbdac46fbb0c4b780b04bd9e5d187f8429d2217f3ff3c193a3ce5494fe6d68d10d3b72a10c490b84a44392bd261b9dd00a0f0ed702d8bc6fe7073ad7e0bf614f7585a1c0581b19f59dad808ce11f191f5d44798ecc2a2702a68a58e4d3957b39cb838b0a816492c549587126135952e6e28327453b06ffe809d1f3bfcd74d2a8a61cfa82a700e4ea0ed4c3d6a9a0dbb5e7e7fd923724a1af0811045cbd9f5b4777f3368a32a4972ae6e3a84a927c1759e207d23db485417e6958973c5165c9f53e32948e1c79dedea72d3687765b1a7dff38b32af1df18958b", + "01e1cb0c0959f2f1b810b7b55e8c446d7e42ca0e39f5726ff78c7c2783ccd9912d2b9e10916e138775645e28464b18db6905b50ea1d2d68a5018dea845ccc51c16cdfb4bd1782247276db47de4e5d43106605a6c0f693694cb6e081ca76345e8137bcb506e2c6b3db7520128c61c3319544195109a18064c9ff4498b94626b41436383acc876f11a9b0bf8e420a738a38d92e420c5e93340791c2094371a309e3baad9abe72fb88dda63a819f2169c53939466da86fe8200e98881c5f7367b9b76463510338a3438e6cfb174226b1490c0dacddec479c13d1c343ed8189dc7d8617aef99fff353392bce970c72c340d53ee375fb40d8caf30eb13a6948cc81a5", + "343cd69f00e8903d3d9c3fe7e27a98192d93bb484bb4542bf2fa7514f27ab9ac65e3e2bae1325953762cb9b40428f8196304578cc94d3591f1cb4854cb3d32f683fee4c788ea57baf3723be59be6bcb214acf9b43cd35c3dc9cf0ef3b67dbe7913e504c8155d04a3820cc41e09a47df06e7cd3e0e4c0b33e0d67a75211cd93d3cdae5c01631f47a4020ad848566a2592d964db022f23c643abfce12921e5bd0f132f7273148ca198cff2f5fb1728e9c0fc455c572594ff2435babac1c9cb98b2aeff855f1ecdfa22e412342765703d0b365d51d82f955c6ccc27ca5ec214ee23cb032211897e64c05b747d4f3db134676e1a3e91e1" + }, + { /* i=1275 cDividendBits=659 cDivisorBits=407 */ + "03a090a7e0ae26cc43d33af86aff1ed760c29f3b1be2f60b1bf37bbd7d4c8b641d1694a8887c772ef69443c9f39cfe97281bf22b0cb8506f2f65ce95312b87171fec759719bdba89553c162fe3e627461c507c", + "194859e64f0b71f023132f99f02042f367c5625b47d38866eeb7a7e0849d03afd224fb9dfe6560b1ad064655e6fb841b6a4e85", + "24ba3724bdc63032b4cce2bd362660952f03e0dd69363f096feaff987274cf83", + "16214ad5e50894d0bb589922664938a7fdc797ff6bf7577c329bb016bd4ad9970b33a8d753c3080a28cb540d5882477af4976d" + }, + { /* i=1276 cDividendBits=896 cDivisorBits=592 */ + "f9733064720ed8317ad9bf0e1f5913c9a9c7d5ee61b7de291f6d50bd5571830edd7a4b3b7e37e7b25cf1cc670359b22093fad325ff8d294a08d542d8a9b5484d88c9b0bfe7c1cf4b59c5f87b1cd2a66f33643c2b9f1c2d804d7ae84424a26486dbb3b45cc3a23263637e92b97bd97ae5", + "e17198d42f99dc971c2cecb411949ce22276f9e6d280799818fb0f314c48295b5cb34dad1c2de7756c8535edea4a361f468f2edd717957802d19229cff8f5941434919b8f833461f4e57", + "011b428e1f310f5f00d3c65b03bc17fa4e14e9877f43b66064034d46fdc7ceb725920631018519", + "961b140a6e7c80c6b7df4cc364349c86134565e2cdbf30dca9cd3ab365f82c762ae2a7f0cc88816527f29d8f482864a54ca971e5610a5920a193b42733054b99e6edfbdffa2169c0a166" + }, + { /* i=1277 cDividendBits=515 cDivisorBits=275 */ + "0747ee10f4ecea8c44f4f2528956dc44d83bebccb64b75f790fdc72f7a404e35503f721c622772e5d447aef8e9b3dec9d5133af3313a6e19b557692a3e060f311a", + "05e414e8f77cb7c14c1a41c1eb46765565321a3db44cbe5bc24c9bfc37f28785f64d52", + "013c67ee7f5bbd59c213e389929280a16792a1ab2d82e9aae7c82f6dcd071a", + "03d1f53339f4058e8ca31f22b85aa1823e7b587e2d0d079c74672309ea6c9ada4418c6" + }, + { /* i=1278 cDividendBits=1272 cDivisorBits=836 */ + "01f5f14614c4946bb34fb32907633532ca0207f7297b61ffe6427905a7522e32b4ccd804d2e00b03c5d99dee4c48116e086835e231d2c6c219f75472efdf7d0b82340d0776f2e6260abd4897aba582f6ed37a3db06f377c135d9d9e5018f0d32edd7ef2ca8d269e1ca0d0b86698b400d4a727f016369007070165e19f4dcba9e1bac8ca3fb17cdd20c45c56f0f9c2fedbd520cd073cd8752db5278ae074848", + "023083eb9d96586f258c45c82766b3f8a2c5ea4da0dcf2c35e718824e927ee00fd47e3fc05a66afd337eeba5bfdda23c09ec251fe67e9c9badd9050e3ac96b7ea38b273886930a661e07c7f5b8b5c5e792e7aca726bdda224081ff7aa4d12e3ac24fe3751dc47a49d2", + "e53f9b37b1ce78606e13715c2eb7dd8f2d6144c9719eab6785512f9622f742c2d9e4a3348ee117fe727e6ae78c8044ef1e59f0f6ecde", + "022fe84096b09d2d1270da9f27963c0e499656f9fa7ae82ee32ca2cc06d19de0af1c782b797c52d9f68e9d425948d140fd406049e744759376ca14f01d94dca4f4ba6c9402cecb44612ae7f5dcf653046f59b98064d7cb611515a4dccacfc9d5db929e98cdc021ac2c" + }, + { /* i=1279 cDividendBits=1953 cDivisorBits=1845 */ + "a36446bf5f8833c98b241a5c8ef83f16e496f56809b07ddcd3757547f9f0a85095e710b043294902a627b00e48b0456a5fb25d55f5563121bdb8356bd15620d69ce49600b686142c377e8b4de42de13f66d1b550bdbed8b882e41abecef59d987b3738232762e26ff2265f45814d00b00bef430295d6a0bf75db6593a90aa45e32ba863bc6591d93f1fb50225d7559dc7853a517a42c2ae2a11b145d53c314954c948393388d572aac5d5a78c36779579f6bfcda77b99332f74075683885814ee85b5b5f16ef412a3995b7ddb30220898e19bcd7a5cefbbca1a017448fbc08fe7a9a61b0d8d047fa281affd698603b8f7361bdb9", + "0a2bb1ad761017733b6bfe11738fec88743b8b0e6e4bc3745716ed7ec95c5e8498d190687ab780465711442c09bcb9aeec28d3f22bda5a26c1d64d317c0a3a051ff534df65a6b5ab5eb830d51d3811c590e2e79d518ad7c1701b98e3cdec1fbc4d3da2df3ac9a2f7f3f3c79504634c8fa6bfcd1d637d6d7c0c2d92dec860d66425c9000cefe980c5f4b54339eaf2dc819fa64fdc8cc0e2082bf913473ed7a961e5167ddb958d0967c670a0cde6b5a04a54e7a36914fc6ba2edd0de6ccb1424aa53725a21e2a81f4603eacfc83cf5885e39aabafad47ed0a1e20545edb68da3bd65fbf6af7b13f8", + "1010a21cfa201afb3675c56bc6a2", + "0112ade6f014f9265897aaa4019b60f06bfbfeafa4c9b10a07ac1760e5a25dabf60494b7c9e4d665362028b0d09b87dc488ee6c7d8a07c2622a00d26c8635631e5f01e1f7877f6a0e8a4caf9e7490af8b1a605147437a628883f6fd6e755f10e5a9ff1efe9f762b8f9e27e48f73d667d4ec12fb35ec2b0be64ce6c1b946023c95ffbae87d34621a5f57d758ec314ec8134acbaa520ec287f7c5ad3d6f4864d1c25b09f7952e42c8aa3324bfa1ab63a5fba36b8a7630e30f1d1f8e693dd5599d5ca61751d1732e343880ce6955878910b69d1129a22610b54b07766e963a7c0ca327e9405654ac9" + }, + { /* i=1280 cDividendBits=471 cDivisorBits=100 */ + "111880a89e2df2871773e823e4f2a7a4f0715e71c8442588b10d6ef29a723d778c9a3fd42ddaff4ca3b47dfadd117910c4dd5a386633bcfd5f3194", + "0c9be89f1a241a990c173f5899", + "015b17d1ef13f41e34449accce32537a73fb75239cb8f93bd71a0934bde9a1eb17d0817375161ece5abaf5d118ce7f", + "0a78d6ddef2626b256444f1fad" + }, + { /* i=1281 cDividendBits=4049 cDivisorBits=75 */ + "0afe3fb8c5c7548029707b1341cc131281568ac343599b596e8bb434138ba749a857736910604a90eec621c8a75f88f333c598b9f198988ed79114cd506a4f220603179372a2a652038df69a5b769baac5599c9c3a8afbaaf4551e71487dc0bb7d2f2ac1c257e558884a88afe0fc09f94e2e3ff17e16dbb19e7cab52f84921b6ec234faa9699c14f4c53749baf75f982d0ff1fff4b7a0c54fe59f077f3d884e8baa51c4adeb017870d716a0b09cf15458cbd926c5417bd8f28c533aab28a021c15cdd4963643ce03f84d4a460711133bfba3bbea34f1656c6e5d7d9e6d3083f26c6389ce776dcc18bbc2ca63a5dab9a867456693c657ccce9201a4f00fa5ed135f8730f09b875738fe4ae7f9d8fc0be795c1fb38d5eb09db4fc92f11ac1f5af94e371ce3a67d53424a26f7883a5d4b35c7e020261f35b4dc692298a5965020d39dbc2f8b9515e8d729d791f2702347d90cdcc516b0924becaf3377de009bc5eb26e6abef625978f4b2d8040f9b26e2558bd1e8c5816c45b98f953fe991469352240e7b441f87856997457587568e395493ede885bb90d573d0a7958e2646b3414a3edf8f6d92b2f8ce90762516c9fdeb816010b59839bdcdd449a8eb930a3d13357716d2aa96b2ac76887c5d27c68b1d9dc63d9b39aaf6e68461be4428e6c71227c5da90a2119ffc5b6a7947e6469787cd18f535219d85bf62a0", + "0622b7098627e56f0d07", + "01caaccdcecabc32717364559bffd602c1917934da3236e29c77baa3290f87fb5c5516fc43faeea75ff82478e7c3116ea1aa8b7c7f06f2f2e048a9cee24fb573c9666da5ba75dab44ed1801cb085c6b2db14fe5817b972cfe1293021749f310d26cb701f5f988b5a5142516c5ba33457ce001edad3aa1aeb6a055971f68c9b5cd64c8cc1c64c56821be1bc55be712a208e16f75411e224c0f1e7097ac41210799a57067e87221f6ed329fb49423ebc78febe7684126f6859862a7cf027d5f0184dcbf4d48aa673df6ef58cd692170e71144b6dede347e7c3280c01aa537eb08a47fdcea6353ff65dbb3fe2ffea1598657ae5248aa335cd4584463d8d2a1cf4a288f8b0ea6750f6e9b886417bd72fef9ee87ded4317241a3c5344fa22d1571615b1415d421ec0b27aaf444d5fcc23d64d94f4cdf572222efdc8f48309ccf03c74e1711f8e3cd923d26c2c62fe3fb6b2f7733eba7e79d7e7e438be38ae9303d500a2d47222d28e262084b630c07f20d3f9703b3da3b76db85be6da53c9aea165a525dcc4bd389f198926e8465f583809a889bb26542193e465e5c4029e30e62bc4643349d1288c2a40b5f193974281ad4be45bb8d09dbc8fba6e527aed2f5236182f585bbdbb4e66a4308ad5d2e9d08a82d34c288c3d7393768729f1f02cf22d448ed616f4c575b2918485f1164f80e3683c", + "210966e3e995387cfc" + }, + { /* i=1282 cDividendBits=3846 cDivisorBits=70 */ + "3ed3d5f1992e6ad180e648b14ee5e7bec542aaa9a49c555f1e88872dc469fcdd82b035b8007166301ab161b041da1a33095b2acbc3a853411b055be89efaaa73e455f2bae04d978530bc380cad0bc26ab56c8f42dbc39a814862fb878a4391aa9c98d39a940f46a929872f73a4e0f37895f3ef34c2a9de3a8c19d904e1188c31a96634c0eabe759ab2c9815584a61a7077833e8f12e7ee3f7c94e891de03d3d2f71f30d8a89e7343790210956b97cd69213e3d172665839b8e54c1c206635142c0187245623f10e1d89c0a76567a0f8e8f09b05fa302644520eee5f924d3d571608c66a99ba35defeef2aa54bf6587069cc7e39b4377eb5120cffb91040210e350e0e1c87a0fdf8c97df50089ccf3fbdc3c15260908e33358444970d0abcb770d2489364006b86ad6f05ad3fc3e0508d28fa6f4d37529d92a57b0cf82eb529f0f376bf8bcc81bc2056f0991f65269923135041b04373e27cb1ebddfaee41b841eda5d1bf71b55e8a73a0a10dec9ab1684eaeb41a17ce9e91cee85dbecf87f100e99773eb05105f09dec6412ca4eb03d709452bfc3f4b53262ed436b3a37fa2c69ad5be57e452d56fd41d5a1e5113192a5adf3a5fad16d1f00251bdb52cd28788d3335c6cf2a31250b9cf12d90740ce2eb7a0b8b5ab7047e157a77a107712009975", + "13ca046373caa0b3b6", + "032cc2db0cf9de4566c0efa5dba38f00818130664d57107d2c8aaa1c3982d7c4f3a982a16b0773b54a5cf62bae165698e52511d49868232c1ec641103a84a294c24a019da4b918e94ee28c831832296e8489bf1e33f57d36ca0cf288fd5c3721cd29ea350cdf035445d475ded4a0fe8a1018a1672c93cc2972c3b6119bc0be93c2e0d51bfd659e4ae4a26ca87afde3f27b89ffeb00385d04df9043e8405ddc26e67106c55d26301e489b7627de1d2d8da159e2d58b24df63117cd362b22c909e31aaa2a57861c846d8ab55d0d23af80248a2bb697eb8c8c44f9128702e56bac45541a0065394247bdb82a8cd7d356f87862f27ec8cd09bf450eeb4e4c710f5381da0a77330a1a1109d42e21ebc066689a7dcdbddb6137b27d3b2555c7c0592134fa1f50b133d3e45ce366ee5b70e8c3a9ca783fa6166cb7c3b0524ce1cdf74e00a4723d6b097e11d67cbef381e31664481074f408b2e4b7e04b585b5e5dfb27f8b8c43b17e2254a6a27b3917aa63bd5b38ec6684289c842198d75810eeee3946b11832ca8d242faf033790e762b4f26a26ec5c1ac7b33e8f63b531838f6f2f5fddb31b57409390fe37604e3bea5bf44442c76dd0107ca0edd0fe21979e66f5d7fbaf1cfa6477e2190bcdf353c802ec28cdb32d73a187f249ca", + "08738d802c7fe7e5d9" + }, + { /* i=1283 cDividendBits=939 cDivisorBits=625 */ + "0390844c337cd9bf9177e457e01111b639096ac4b18fa5a50cc0e44d2b06ed65529741589b5cf954ee4a3c4f46d19cbebc4c3a69db0206c41317964f6c708d3beda09728203395a5f3b80c9e923b009e313a644e60de0c5159e4490a3da4d00d5f7dcfd0e8a04df60b3cdcb1175ff8926b3fe617a4ea", + "01706a316983d724074afe1b60df0c6a9d008767a46fd663741e2887dc307b0030e1f061ebd85af205b92b951fcd3d1a3b532c4fea18bbf74311e49eb6810197c6342b37c347f4801abc072af44cc3", + "027a145cc99db5383afbd30a28087f0d30919112efc9082dc1fbb1fe92486fb2bf218837bcf9cae9", + "013917ee59fa45639e83d94816d9fdbb74a730fd0e2a3e47dfcf3e7047a3649655294237dcd6e8730a3d17db849ae9a44341222a0d324b8c2b185eda3d48c36ed9c33a92b080f6bbf45af22b80e96f" + }, + { /* i=1284 cDividendBits=833 cDivisorBits=663 */ + "7faf0d56efd634991598ee46b042d1f33737bcd08396e8ff83cd3fbd68201903e2341582c7656644403145fd19d4eb83bf50f18b56edb0d0c0405960783d7e11cf39c0fcac99958e8ce8e0d2c1bd0036896428e7b08c9102d6d40b746b7c621dc697b0ffa0820137", + "4dc67fa3649f44ccbd9ac846588a9316187830ab93df98e821f3353c3155ee215900dc094779848409f557d16cc90aa0b55e58251a419fc07ff5dd71cc8ad8564837786a339f596e10fdb0b323c9e52db4ce86", + "01a446683274b2331c9497d81a6a89b5b701a62d5a5a", + "0caf26fbd1424586ad0678bf59bc03218f38db665fca41a76fb6211111a3041518653f61f71e31adf7c9e60e274cc1f47a3450684a426f594912972aa1b0b519ea83a8fee2f75b523d9065f6074522ccc84a1b" + }, + { /* i=1285 cDividendBits=865 cDivisorBits=185 */ + "e6fcc60c17528616a103c336176b65d10fdf7e4cb3e6aefd2ffd451e459c23585ebac198a711ba927467a8d315380a249ff685a58656d752074d76957108f98bbae575e0ec862c5fda4cc735009fd14d3e863c8427443cd3696c7557d0b01bc30f4dbbe0cdda77595a4b29e2", + "b1fe2d4960f083f8ecbb484a35bb422fa65e1664401aee", + "014c384a61270d62cc16db68494797324d23a5665ac7dd0d9e0bed4eb93acec6d05bcd5e2a5c8e94a8156667ecdbfa8a381ef0df8df3f32d5ecfacb2723471ac3f38bc9f4e0daef22092ee881804a3ad0e9a4c1e6226", + "72440a4ac20363034b0e672196813ed1e1eef81e940e8e" + }, + { /* i=1286 cDividendBits=3498 cDivisorBits=618 */ + "02ac59c24c5892f7f19dd3e814dac15dc732a3f7d2474c65473d9bd1f19b5c5cc779cc20f4c28ce8db505b84c13bceea6606a1cb06dbcadb7f0447ce8165c5ca4d4269cb7d551ed31e715de7301ef1cd6381aaa04edea3d7f6a00817bc6c8d844a79c75bad426ed84d95bf0f076e5311a454549c626628e6e0dd8f7eb6055a136e08242912397d0d01ba6766594a609abf32d10cfbb9ead280065ec3dc870b6212486cd5cdbae2e290c4e02ecf05ae4dc808f1464e82bc8ba24bb8062fdcfa7fe6133a7b49a9b2cdb6441cd929bb6d3014dac08ccc1793942cc0f2d0d382c2dd1a3aa4ecd2753f02ae2479ca963d134a7a572b8facfd2e66e7ec70b023f1933208a8bdcb943a1efa8bf0dab778f60344b4a5331fa223ad422b4e8609ab4b297a75b1337f5b7ec48419567d727303bc9f99894f5b7c18f99558af97ea0ab450ceaf19c1933d540b1d4ce924661f31f965140d5d8b3fd94c66aabae8a9ebb09000d071ec34f54dfb017a988f82a5e366093c84c37fda5f9654042ac68c32055604d8028bd2971ee1edcb5f96ad6ad5c43180004ac916ae2f0c056faf5c9078bcad51e9b7df6493ab6df56a24331f729940895a71c5b262", + "0133cf2c7b58b93e4bd83a76eeec490e29250ca702027a54af4fce33188529d7598a2711ff656704eaeeef7993fee8811c7b31568ff4d25b925688fe17f2f3df42ff44f2723cfe21ad176e988800", + "023929d1cadebfc288f3f1bc93a9fdfd5e6c036effde11168bb817f31e68e32c947812d03c6884bd917b28b021391c908c059262eabcfd9739c709779e09b5ba31af20e63e9dcca7bd9b72a7be17e0528710b18d73edfaa4d7d67af24cb410e20292ca606f67a50a53a185ab3542203f635bf5b8d11db3de19102a9d33c68366fde11a3b0540a49dc7109a1e5cffb2a9020f7c01af7533629798d7bb096afe83c7454e07f6fc5a9a248cefae0446c71bfebf163b09515c6175199f291af9f4bf340fe3dd75b0304754c4c667aa64e0dc918d6175fd44bf6554b0fe2a3495460b619d6b178d67e09f8df88696d42e01f5f5d547c65e7c15f1408fc89f6a32ca7887e41c16e970f25ff778153ac7a1a991a7ccfb99486045ae07284266564c9451c84241b6fec06a336f6526c9387740df2e1243c8278d3e77f51da6c7713525e50b48c442ee9abb3408e68334f014db68bb652bf582e7786a85ec1cacce85e135d0c1c098ea18130431", + "6dedca6a91f3cd8c80010c1baa1a14b7d6f959ddda864e6772dcaf27d99c532d104dae974893fff7f3cb27329d4ea7f45209ee7159a63ed8e578effd44da194dba380fb70fbad23811cc73aa62" + }, + { /* i=1287 cDividendBits=1808 cDivisorBits=167 */ + "f39834ca9be7d66dbf3ec154c95c30943a627b77372dd846adcde1821438b7b7b3f43551da2bd971e3ce04f386782f6b332132f2ea78f93432a66173deb066b604c69222c5f281cb2122fe58ccc923443aafda7f00aa86e3ec62e024e92c08cd49ee8324fc4e7d09678d71e2af19cf9b2938b5da7bb699de5333afbcf1df6db9eeee5a43958a36786c205bfd14d8dcdd8c9dc3529892dbdfa3f1f2a6f3293799533a917d0eb64f092bd9dd571a70381a57f1b776755bed0ad329193a9c0285d76a704743ab3b66083d67ea4b4c46b531bcb2b9037440ade6dd00a1b61b1dee513daf", + "6cb0d33fcc9e7b15fb36176ebe798a2adc242c6480", + "023dbd6af414bb2c185a12e183f9097a775907be7de7feb24f6be047de49d686b42aedd93922a3e00623b9d80bc02d3d60578c4af44e4ebbb54ad130445daee07a6381ce09e48e7a410dea20396f862515eb7297d782d10ee5b3fb564cd85e77bb35d67d3e54eb0add946b075f779dfe2e6081c8e5125cb0cc93fb14daf09b4e56ec8af5dc516ab3013aedb3e00e041b41429c61b87c8ad75e52fb544044d652f7d5af2b1f50a9baec1b22fac7d9bbc62b3869a95286cbed4cf3f98cd8e614dbd5fd0d57b303765afae8013376a1", + "5f97a226c0e29d62075244fc3ca4b038c23293092f" + }, + { /* i=1288 cDividendBits=394 cDivisorBits=320 */ + "01be68b5617d24f1b63766b8c71947229e545a0613750f95883ae1d9c185f9a67ad95aef378aafc5d62e77285325361a8059", + "a96aae72689506eee8262c8284e787f358bf9abb032745355dd56c6263947456603a3319712adcbb", + "02a28dcafde0b3c0bd6c", + "48dc83431b7c3f9683effb2687b571ca8ddd57e2842892138d33b0196d82387c3d7730c085cf5275" + }, + { /* i=1289 cDividendBits=2656 cDivisorBits=2293 */ + "85b1fd02bfcaa1a115d3d647b66aea2d2ad849fdd9aa45f9be56e4c178e484d40fbdae5a71ee39ce514285167f4eceeccc405b4ccf03b093e5e1ab4db806a6471b1e00a7b33c23af92f01d9b2e6254cbb9ac1989082cffaa957593dca786b823922721322a311bd2a1772f070ddc9c449ebcc2632dbd44f02d459ee76b879b6ff62c91730910736aa3f61bf7ea8ba4420e2d1dd2382c439b6852ac6557b77279ce4ac3a565e18f004b79767c46868086160ad06678d9a04df66ca585c6db14fe35f86d2d05ca36f6f0780c25dc3e421a8b50316ac1f8f6fa72e8270903c97e7398a87741a39ee73518a1d000a1061da2550844382bda2fa0439b3ea5430c6775e9f5029db3473cc5c97d8f390c84fc4b850c21c627cce4ffa7f13c5dd3d34c1a1255a4702a278e798ac6daf71072b152380bb74b101b8cebd639fedb4197f9bff71180aef23e1a6c337c8a73", + "146ad3ee6b9efd68e7b651f7a5e5fa82f70a12bcf71898221e2ce2a79096ccc81b03f891f36a7ac0a676bd8599978cdc2cbc90a5ea2cf61ae80914b58d25cf1814d3e54c04ac8a48a2031a2c191f5fd9d9351b3ae1f253155192eaea566325f03c4cc0bf58acb1836b40634ca457e6d4d002b1c314fe5e47b508fc71303eb7cec5f98fe38c50afe8f3be58531ba7f9a759d5ab9cb743b1e77b042f69e11c93e9038c46778f0ba6b4e733e6106f5465e59615a1c237abbb4e956088d8d509da0796fe63f86cbac2e7fe96040ac97b0d949a46ad972588191e3a2f0472dc557e7f1ab3c8ae0f50f7503236a24a77921fc1f7c1c2f4b48d9ca1b0e11f426724a58be976a5bd1ed6e609d7cf79edeb8891aa0bfa1b330cd5eb4dc77254884bc32f", + "068c52bfe4dc6232228cc96252277053b290706a08a04ed532b06f78639169b73efa31fdbcb82cf0253f32fd47a1", + "c81e17f987b0a28bba6e38c39de6fd315cb9f086355f258c87aae66c57fc77e5d51df775bd922c78c1b54023a55334d80301cf8664e1d86741963a872af9548caf75bb022076b5dee8d32ca115d5c650f402e875023aa4756528e91a53c77a9374a40e7dc3f4ffd0dfb2a8bc01ad78589a2a0b2077af320fcdbcdaf5b1d1e7693ece3cd589c064c9cc4b08b1ffef640ee43d69fb150d588f56527f4be5023c60f9cf8e662c7953b7bc536a5de847f4ab8f640722592442a8f08f5902b0a9b686e3b67630b6ed87db1f2b193911ee10ee9f8bb5a2f814ed7c98861d03ae625a05cd942ee0816071e4f380529b7c3ddef101096115838345a11abaedee0e275e99655d2f81733f0ec87a5c23b5cfe54c00e241c167edd4a9056ee56541c0e4" + }, + { /* i=1290 cDividendBits=3374 cDivisorBits=3100 */ + "3a3c476497793e1134a3ab33611a75186153a9e2eb36be4f7b410460492aac9a866b75b25fc506e81aaeb5143f34298317bc694c3dc48b8a1a0e0d84dee8e73fae6ef841d7b3a3de2dbd14fe5c23468d9b5dc2005ad71bfda0f2a05fedce6bb0cca61256946d1156e8cda2692bded77fede22236e46f662f0bb7fc3e93474bc87c57748ba6c61f9f3d52543a1d25ebd7b085c90f2ceddfbfeaae2fab142769e754014be877e13fb5ba9710a7cb09f9be3b6bab9506729ba1dd867919934935176e32f519f0dab3e81b67bed97e0303f170533c8d106d56a50786c69f518b4ad13ef9a809be47ac33d1dd804a112597c890486abced559b2fb99d8ca05ae1986083d5e81245cb94a11f0d5501d89df34e2cb8f2dc7e748b8c8e692ba951bac8a2e2cb19fffd266ad8a3cf85e781884116a7b85c4ff49d1707aabe4d910604feb85ebeeb2c1bee6283480219a961f3d8e0caa03e62d3670f1232644744ac4f51cec9c12d8ee743fec90bb537ef52152fc25870d174999df1e10a8dcec428d4c43bb5fcb2c2851ca091a35cf5126a248d5076a852d2ee4f6df32f2304804b487ee90197982272a2", + "032a8b489c0d65cf5a0047911916b7297dfd2216877b0660af5be5b8edf95491356dcd769912e9dc3255752572e417126eba1039857f93320b8922a97bfe9cccad1d5aaa31f4d54286f2731904b874d70457a981284d4fe687b97f02865e7fa2ebf71fb418fe5a64c617b72a1c6006061b8a6f57e1bfca29c0f8a4f9a7ea6e571b7e294b71b9072f97afb57e9fc153bb4c5f1bcf1999d642d64714c9ac37fca37e605d240d638a8e7739f2395f64f12dc4a826da08202ca72bf72add852134c845eb78d093556a75a4ad80043a3bb76ea3aa771bac034699e7fcf0c5ffd112b16834333a0a473491165235ae6737232275bdaeee4947cbd057040a201f2d3311369b578ac398d0a017b99d296b45b2cdf4d559488226f978971662952bde409682d00f6ff481208d169368063a9897e8131533f01e4d078fe36e8c5534946a1e8183048d4f622fbb481a5bdc9e4def432194c00d008e38eaac2febe5c6bd0eb2434314df613ca44ac44116e0215b40921f1b1467f536bab427469fcea94aeab16eba549a", + "126496eea9249fe5f09dc088a65d1fe62b2bf4783948a97d009a42240547b072200928", + "698fb7479e8bbdd460d31cc691527f3108dde1094a46efd079d8ad16a496c7510d77331ef3c5c0b67ffccbe0a36deb2b91967861787a7082f5ce5710dd9df971cebf16ff657a2131a753b3d6548e7135e18499dde95936c34ee4bb97adae6e33f4ae0ecfc4276acccc0300f4a0995246de15501dc64a2f3deaa017e20f87fd9502f8b75b0ef82f86e514b385038930d5bff95ee34b3c8a37a1f4f8107103232cb3e36f359a4b29eae365d8f713d539586515912d95339864ad7475cd3ad8cb6854f5c77b218ae429a50c36f7671d22b7c59bf98b4a0ea683961e9df895ac37ba0cd930627353b0545b0ef92057f7b4f994ab3f0df1daa72bad3d16f456358f189b26ce2bd760a67a4568ae7dea26788f69cf16f2cca58e12d43c1c124afa7991892afe829ad807065ecdc483b4120cdc139fd899751b0c9863565e88df72896ca74b5c83744fd81b996e5286f69cfc0b93fed2689c4ba0d39d4980374be09b98b189e5a6b9ee15900431632e11d3f2bdae9af1fa73e7c9dc10283af2e4682296cbd092" + }, + { /* i=1291 cDividendBits=2373 cDivisorBits=892 */ + "06bcda01a99beeccc4f419c0f805ef4a67c1188930884b69ebaf65168b6e21448b0e5900a4c4c31b5241df047e7993417a078769456cd57725ebdfcdc8fafeca49030da9fdda4e8b22eca2d87b475be37aeaeea5e833b6f14f55c007f198a3291a88c9834d7eef02ad64c5aba217c1c0c7398153b79e9f6685a7eb7d2d7490a22a4b6efc5e57517a1fa44d61354c93bb00da5e7caea2a0d081ae886baa5a7c55fc1a5407bd6544facb114573cf8d4420fdb81ae436ce7db34388d10bfc4419c27e3e8bf1e05a113823e26bb01a93275cd94597396d7ec5fe49130b1655c6bcf99be663b7bab78657d2600fa6723e5e3b03507dd42acbf77b160670882645217611aaff5725c97fec402f710bb80098948655ac07868b3b095b785c4ae23f70f990c2d179841a6e94c0", + "039b1ceb1d85c8e4284694ceb120dc449de78e209e935fea6a59b4c5ea198f65b3b2254d506fd1fddd77a12e6b4ec8ea7c79f3008ed6aa0830b2959f0c45ad06a51f53dd3d18ee8cd84b91b4b42cae946c2130c052cc709ca599ea0120f16d38abfa6967e14cc94e1bce22743ceba978", + "01de5715078bc6c05f435aa55f771fe90db31e3f9d724c2c27c3c7939eb7e038916f1968227c66ed0c78b1129cddb1df2adfeffcd79f6a769c9f50421e37e1635ebeafb70a1890f19a4eeaefd2e9787027d4858748cb7d4b15097a32b5faf6a89fd1657e319a9a427b18a834504adb842a00331c01002b1ccff2d731ec1e7c4e41804c09707a098e728784dd94218d7cb68acff6eac6e43cc8e8954425e29d7c19888bd728145333a3bf5fd733ca29f6faa7e9aadb64e27c683a", + "010bc046b570382fb91b67fc44afc640e71afcb663c6ec209336a7aeb36703418c1e6504691fa5108876df6376a1b75b396527663bf36da20d7de54fe813383953fa94d117a489d2c63e362759afacc9e62ce7b5b8b9cb4c0b15b25df74938e08124dbc3b8b59bc5425109cc8a116f90" + }, + { /* i=1292 cDividendBits=2486 cDivisorBits=981 */ + "39431302de9d2056887c1216c35ecefa2382bfade2b5b3dd823094e70ac8eb94635d465aba4372ecdcbc886e3cd6e197f926df41fff3c461e26b584ea403675787fe9620e3be645755c677cdc6c68775fc7b2dc41f9b4a881a75de24ae5f672362071ebbf0c8759d5bf425ef18e43f864de790e28927ad3edc7dbca11ba02deba67a20fae2249509a6b53ac862a777e088509ce8f9a6c43db9979d7516c591c78487da907f6f96a0d70d5ee5b535ab99cff9a52d0e955095574e58aeced81b241ca3a9d8f5dd27093125dbed393a90c25d38028637ab9b3a7a31b1bbf0ea8f019205c071560711d3a8ce810541e36777b9f93e42c97c8094262e21699fb4f81add3ae3e454718708f156710b41a0f4815f91b284d236a23cefb66a2dcc2aff4dbf920b775aa1ddfdc94e7d6e2c8d9fcea1c7080d2a95aa", + "052ac6671fca340cf5b317097587b6e5780aad781c0566ccb7c1a89b281a689bdb1106f10468a822032bbdb857f51cd07a4ad9c3b5e1848d21bb753e9d6ade56776242774fa80197d9d2252728256a9e12eb6c91a0744f04f068770fef4ebeaecb7b183297040163c677e7974c8c56b327b47d894575a81b5c1c00", + "0b1501fe8c2129d7e93ac9c8174cbd2aef5d1b3e62b1bdca81b40b1056fee72b62be052c5e27640ddac5b24c9e27f55902b5b682fc41c82db743f925a87e203b68ed627dbf9b26c30ae969bb52524154773395690cc560c390948b57b158f89936c82be7a92d2a020b21572dfaacfb05410adc06143b497a25cc0247732e398ad5a4af96d24eea0ca329ae69b6db36c69038fab963a564773e0fb144bbf8b1ee5ed16fc4d8ef826ce241187fc3fe5d2ba7b3f0b07a7ba915ce40c8816b", + "0cf112bfc175e331631c07e881a7c398a2d6fffa2b9db9510c12a6d82b748c3e378ea7db523aedd0ef71ea98747e6b7db8532c33bd917c35199e95338f4f901bc8cef60d67aacd29384352767f15c1556df7b38e668b4911b44aae621e0b2c59cd1209cffa3946c6dc7577749350ef6c1e866db8f505538ee1aa" + }, + { /* i=1293 cDividendBits=1823 cDivisorBits=152 */ + "1095ad24f425231bfff3c41511526ec2200b42ca48c8aa2b517cbbfa37f65aa839420164bb60e4f8106db2f3aa9d95694a8fa6d32bf758e4c05a4892e7a68862a4877be17a9d966597d1d81f46d79ce46dcad7d7eabfc1866e06abbc6fced72320c783e6abe1922483231acffdb78b24e7c22045b10ea245fb3f605bbe4cc424f9dd69a3e7d39cf1cf6d4f6035f722dc394bf8d66eb675de0c1ae70078a585a6183a13f890dc893f25e9c2241ee9bececa060fc45eca36c35ed88a3f16a521b487df19ee6ae4d9b266d7dee02ff9bfe7352264f7137dd356dba0752f1e31f8c64adc6e9c", + "8fdb919ac34e3496f5da062a64a26f1953f2cb", + "1d8355f04131495056b5deab1e5eb729bc1f32f640d8c7b745eb1a021668de01913905c7ed1daf4ee78947dbd7030cdd7e5ac426ba4efe342543dab79bc2457f777e4f05a3d6627466315b5eb8f72ff421e63135dcbe3f6a44d01d12b729f0a744376dbb85ee9b96c4d72d99a32321cc91cfd82e597a1b3eea2aa7e07b3ed9fd1bdd2bb02311a14631c4f8954557590bafc026cef85ea3a2ffab9ff22617f16b16785208a14819659375e6f11d0cc2940af6b6de1037c097382e3e106e2342d71013c2568cd5228946680eaa16b1bab6b4", + "02b852feeeb262c53e252f432da9580abb65e0" + }, + { /* i=1294 cDividendBits=3511 cDivisorBits=328 */ + "30b42028521c6f43406a5703f4180ae1242bf1c158d8b576a191b7fd4c16e606689ab3195375187acba919338424247096c12bc2d57c1c4c664869b2940194e46f56d8056c9c583fa8916816338b8d0e7deb15e23d488d4802de77d0ea56c91c055d328fa9782c50a636cb1a56e818b90d88d130937f2b20fa6889aad0e2d01c25c1138c0f39332b140c2e1eafdae6c9e544f2a2776adfcf85a67d8b5afeff88687c38ce643fc3511920e9f931904d870019031312ff269ecce1d049875982f01e4d0e9c53567ae1343057245d9260bf4b5b03785a4e86097daee5aa22d0cd6cc55e1e1a67c12ada2b3dd6f0ad5bb1f49003c575f459e191e4a29b7e9ab3def1c31b56d34d8f8bb4b919b246dad668dee132fda981a1fcb8a9b4419553c08d93e5d0e942f7abfadecbb70d977e655bfb9f5740ff16ad35be89fb0d6a07a7ae904660bad3d4f9d800b0e543b02679b163f3aa7e4e8ca77bdbe413b0e6fac8c1d5a688ab32cdf99a23db505e0fd7e439d3123735d07bdcb217281701c888d695547110db2e5574674beb28edf6cfc9aae60f062d9450d1489138b26b6950a704aa30833dd2a41a1788b06adaca35572666ecd21cc052197b", + "6076160147fc633e22fd87627056dcd5ba8ad60a05178c65cd2dd6dc662bea8cf5dc72a77c82ee998a", + "814157cee4441c6d2fe5e992c660ad97cc7b783d8caa5b7b4f89e9144fa3c5d993c7a7540f98db69942c0be2f0b74d0444169ca3942ba4f1d8afce03842b2c1139241780a2511b21e1bc040df35713e76d8c73678c1379e6268e6050db2407296858cf13ee4c181599c0383617b97773e81f9c0785cc6012d244c9ade563bd1848466c23ddbc5349f8af3cabf60d5eeb111c4f5153627e59b1532ce880485187e28547efe97516a5812271514b7d85e5e962e4022f54d5e4c388ac978a41815c8d20fac33f50f1438529ea1fcaa44330b9a63a94f2753f951f7371306e10128c81f962acdf105123972bc4584c8f48ca5fcfebbbc3d235728ada1f5059b6b068e6a974d15328db05cb7842d1d5d1e96574f66c3e1aa7013aecf3cb5a42cc7a311250d7bdd9f74c1110a766b1b639ca80985dfe07ec67304779f6010bf6ed235cd26fe8824b152bf2c92a5a26300d64c6a2a142e7efbc52408289dee7583255bffd62932a88af1912bcb79b9d9eb61c994c57757fbce258079e850e2c16c95ba9e88738d9ea1c12daccca791ea381", + "3e7ea89f14e4062fee3de9ad7cfc59d0840da0f879b4bc19ebd033054e25ab27a3efe4e794a227dcf1" + }, + { /* i=1295 cDividendBits=2548 cDivisorBits=32 */ + "07ed560744a68fa255d8f7dc02dd52937b7f964ad32e5cf6384a41f5d301fff8051e369ac7cd90edf9d2bc9ce1ca7eb481299d62b73673796cdbefe98b4924837f921cd40b921d6d1af24dbd9038bdcd7a58c70cb54be7706667467a8abf35f4bd5f90a74857a33e01f2242575abf65827d98a7263561b6cfad306587c3333fc3320d07cc6e67e6103780cfd9db78d94fcec493257895a253ac25889ce5c43798a317c4067ed27c8f5446abe854cf2c8fd1f197ab6e17bb32d3ac4d276216e679a88de99c7a279840d1eb2822279fbe2321becd791b6c219b1a8c9199bf3d8b2cdd9da519042dbbad6e363ccae581274fbb502868cad56bb6529098cd06b8c6c2c44a4eda3ccd5e9ca47f92c1f378315eff85da2c0ead522ab3df6c217f9e8cb88a76e7a354703e7df2705e60e464930c95e4ecd57cb337307d056f66ad5b4", + "c8923325", + "0a1e276fc0e5dea9d2731d1af5d3e6379b4229b7916ddaa215045452fc7c85f62b91deea9ccf9642e4c7f4e6cc20e64ba82ab021dcfb295d42ba03e87718c2a58f18d0f23efa8b7e2004ce94b0181b7f69e1533ec5903fab42d0729ae096aa1dc0f1ef475710e13a61b7555b0d1c2c2ad3e8aaaf717807b0ffff8e1a47a34b3f3b7cb121afd82f98d01d7cf643fbb97384c0f8520975684005c56af0329b005b105d6349ff4ad676d5b308d1d707faf748e28e18546b75dc9b6553723569295263fcbf8613d1a35dc395955abc9d1f77eb2fd1224727d614f76af57a4b51fb377111f0104d7fa2bdf2cd82444b3054895016bbd9ff8a446df070cacb703f9b5e4bf5dd5f44e71f7e7f4ede243fdbdbd29c86ded742e5df7bd6df4b24bbe205510c6c12c1848d0025cf9723b01d49652d182cb09db8932f490ad578", + "c0e3135c" + }, + { /* i=1296 cDividendBits=3207 cDivisorBits=528 */ + "0bcc645cb88d8a3b4728f8457929e306b0de88dad2484e4494748d8a8c8459445848134e1c26c94a3dbbe0a4f139526bbbc84931d73e3e5e98858083129a0c428df62b06b60c2e2445ae516a720118e917117928791f0cfea7efc7e21acdab6d0a9b910c20d8b8e0deb00afa06001eb4494e12df9d2f1274b150a05b971fcef4a89734aa17a6aae48ad16a7357308fdda4bb332852f9fbf636b729c66bdec45c3e61484e8d849a46529bb54202706fbda210cdedceb91ce27721ea5c23a24d10e6b3319fde62c070d7ced641db980bc812e203be9a12b8805403956d700782ee711f93431bdad3a0e4926ad57c775c0beacba0bcc9d41396b74c542ec2088db8ca7d16508587061528fe17093f9e2777a1cb5e92b45a6e47641856a7d0a881b922e28498e15b5bf0b381976acb9b2ab319b1c4ebdd77da6fcd9c454ee767bbd7a39d9def29a1f8da56184993259f8444b46d3325639030d007fb57307a25106d91452484254bf16316b7c48203925bd83972d640259077cf64a2ed47e176561e3b84fd80b939c4b6247e778d1416c22f44", + "30e5cc535777d68c670012a054c71b07ae83ed637801f39cb8da168ebffa05f1060c036e28b61c33ccae6afb46f9d4fb4f86652d515cef6043c769b4cb96477e453e", + "3dc5099fef1685beb79c7836c54e2c53dfc6b119e7c28789d9da1f3a733414cdf6e049b84205956f101cf6511458fdd6bbf65510e30ed57568e1b534998d1aea0c061726025838f2a07bb0e92424918166782e9c7a6d932e5ce05765521a535c615266a83dfcf55f3add357465a6864ae3205790594c5507ef6b6aedfa2626326f0d81fde80dbf38dd31bb1ee8276033477de5c64a35e7047544f16ed0afa9eed6509dd40543e50dd338fcb6bd04e7053878c53553492ef9f690d147e782e6206c1b3b06942c8d83d4e91411c1e003ac306ba569d035f0e0f1740ea96c6d7ae0a834d892d9c8e4994a9439ef7ee996141adc8251e9ecba35ede4f8507767a01bd6439ace5b41710f2c52edebfa623c9b6be3a82fbcecd0fbfdda8c650e8de106f0d8dcdb70b231dc85d449efbd9f4b0e2fad9990cf2ee0aead06b9891859b513eb0fecff93aa80fd7b83988049b195", + "12aa3520bec7eb92315cd0c8ef9cc42848563a5b16b3f1e01939757a68be456582671cddb637faf83ffd6c8f23e84c71496a9e92dcf9940e21bb2aaecabd6db6042e" + }, + { /* i=1297 cDividendBits=1602 cDivisorBits=359 */ + "0332bb52b0246203ccd58cd69d97e27b87c8ca2cf57f6cb5d69d2e8f6c5e23a50c129bb9178777e7606ea32c557e5482804bd5185574e779b35923f8817487cf93a5d39b4ecb849849997e4a525ffa7cd792e4627f5ed05fc91858bd32264bfcb846a45bd92517ff79e2c1284c60a7ef7a0f8ccec02acc70f4d7f8917c3ccb7161f993291577397a75f282bc3a4edd8c0be4fff0895515b5fdd82d25ec0c33dd29ac42ed23521a33b670feaa43584d1fffd7ec335649f5c84a6b41279e4bc977663fb9833f56307cd8", + "4044257ca17fe6afc43fd9068239fe0dcbde62131a3425eca206eb5fa59382e066a3852c097f90d770077391bf", + "0cbd5ca20bce01ac7af6a832477ae400085bb6be8b31097794beda91904ed135d9a8903e2af2804149931c541c23d1810bc1adac3e01cae5e506218c13f3b23b7c42b18e91b5efe929569dd329c600471e1f81ad1d86100602d0eb15c43f10b0e0715abe39dd94ee4ff94aeeb2129792ad9c6443da0c827df8e5e0878c805e64a52e99363b3bfbdc5cf56acc1f22b7fe85ccb0ec155eb3d7f10ede8a", + "38e7e6a83aa3debb716511633409056241929dde6b56b307f498ac162b8ff6c5fee93a012761941175520e49e2" + }, + { /* i=1298 cDividendBits=2709 cDivisorBits=1696 */ + "0fbaf204f468571e9accd98d16e09ff2a63d83638b2a3002b6c1983a02bcf416a707a90900bdea2b2567e34614adfb14ff04c5936a512f87f1fcfead7a4ad41edb995d28db9adc7c92940a866521dfe1f646cf4b2f9613d01ff7a11824cc6acbe9ec7f3ac36a644bc0e58da8b5c97e98fbd8fb7cf69774e0879d5880f0382d49e3c80e1cc685d3ddbf87fe755c4cc06751b89f013c65200c2e6ef5e44890bc972f3a90323b98e90454be86c4c7d50373292fd5f673b925aa0cde26e23905e8739497b7f06cedd5988d27bfdeda4783cace3a65855fec765906e91f5f53e0f18afac6ebe5be41f7e2308cad4b6037c18424a7199358565fa3a6a7bba8254573c32cc2ea685d21dd003f8f85a138a594880bbb942787d594b846ab0c25f190a2c5361a76144206d930a37704430f0dbd9523293ab02e153b9d6464a289da71c3aea89ae9eee80b5af4123ba27694b31b42f83c46", + "af89ab76e675be4976b719ac8fa4e2030cda0a26ff89a353f1aad505252ec913261030de42a04ba433a52c35fe0f7fb04d6ac95d010552c9d76164fa1347a71444b6a7d16faec688d8957eac5655af97e640621a9f31ad25182c6cd52c6cfe463f5d71690c5dfb77d0e6c8cc10b68d7f85b2193a652d137d35b2e46ce6059e58e71765d4be4ba8fc77a7bf05d14254de9d79afdd8469f3a22f4a84e34ba9fd151e1d78806b8a2560752c781dc9935e19a86a2876d170fb77fb8c2197fcef4f86a7d79aae746ca1be0e6b9e7a9583e0faa40b90ed", + "16f0cc7dd553580e24360fcfc44a781b67b2afac0e22acdd53f1dd9b2099ac29a25e57044d17c16dd1237a3f1b38861f0637d22706a417ccadd66f2df8ef92508a0701468054ec685f58a9fdd164f69d4b58b61979e78555f574c0c88476edb27d1a62e8c1119e7cc72198283509e0802058f1b4cdc52624bc4be1d194f18f", + "1e30c3a8cde41c05e90717da96a2160d0ab296b33e5a744fe00c9a1467353c814ed529087b0148a7efa4bf3c80e02c4ded400f053eff5b42eafc3c69589507aad18ce5792b7a04d42f416ceb228c99c95735d14246027d96cfa2858708af7d703d7ea5e97ec1f30612ee9e881c9cd64390e0d70d6c1f69edf1392b1676fee739f6823edff849c99aaf110545bdb81b63f99a41287a082599a42801a833a9194d7c82f81136ed7f30a96e969daaf012f4c23154d1de7b4751e30f408ffdbbe31fe0e4b6c00b285c446dd90c15c69dfb5c770f2ae3" + }, + { /* i=1299 cDividendBits=2507 cDivisorBits=555 */ + "0199172b16ab785e44299cace7e4897c58ee6f3b059809d953d14b8fc89c9d74ad4f7da6be17bde1deb60b4cc620b8f6b3b269c8911f71fced955373234620f50ed4249285a76bff0cc3f0af0783397ec4a5e9555c0d918d8cee648efc002ae4002dc33a97fce5ad353e5615d49d201b6d4882fc6b7c2967ed9ad2cae9ba3bab9364c600d9b0f965dd566fa684b858c0b4813a99f9981fe6eac1fb49e9946c25998284839ce160e1db1f6b11c9b1ede05c9bbe63e0f3615bb521cf19442bd1ccfc7e9c71227b9a6329817b7c64ee1d3b2e59ac7271cec5f6c6241cc0d194b7c4ca49b7092e510a69732e783734e71779a48f2a36ae1e982a60587f442dc73f20a5121e842a11c1ed89a285c2a13d3b68c678736446ff0640c37f61cfd9871cc1a7822f4a6d39abbb77bfb372b649afc1eca415aeceb85024a6bf", + "0372077af386ec00fcf93957cf933437efdc98c5b44eb0bd683ed0dc8812bd2d7756b29e3306ed9d52b25b2d84e33dfe68bfbc405b8b0ca860b845b71f8a8b2f172ba6792057", + "76bbfe86b99a9801a4aec0cb03c7c3f823a6316a5f3e115133420c6f9e381b3fcc3622e487364245047771569238af8ef5e5bb5243e8573c6b9146e4ffaf299cc0e061814aed514ceb20121528dde2e51e84000fc0a2cea3b8e9dbb9ff04618339cb5733826d521cea16e23f1b476d6a8c5fffc0e4266697c372d4d008e39547ff727326024256eac8b72bb00db70054fa41ce87fe39a554f8407ad4f603eb886bafe80f3c6f62e42bd78e16c11f528bbad05930cf8b749dff6cc50dfead1c3995718573be011f59d385da8160c32ada75c27dbbc20e7617979f91ecc998cdff73375f71f71e5c3d71c895661b6a1b96da0b21c4", + "030bfd4af6e0fc71837b9b40293045d2c74e6d600a457a00cb52e14744c1dbdb2f6ef60e6d319565c5a7da0cc567ecd1b190b4f45e543b9925c5284a6d826699041ec47fad23" + }, + { /* i=1300 cDividendBits=206 cDivisorBits=17 */ + "0c815243f4a124babeb83ba85db6614dc95f917a1e29b62d6253", + "3f57", + "328abf7159d5cb784475b5749eccda2735064a854085387e", + "2d81" + }, + { /* i=1301 cDividendBits=3453 cDivisorBits=2762 */ + "1c504fb40230fcc90e1337e3eed5263479493a617fe1b433522598cc96df000927e50a94085474fc5403d88d464c61d8a8f5f841fe3fa7418ec32751b2ed419ee571cecea6c917048b450cf391832e1a61f4e4e5ca301f1871fa722c07a4e034bd01f06a1a4c6c4db1fb670f5bcf4dff38fb96d6cef3a1e7892d010c6cefd64afa7e97d64fe5c834130c6176350e42e6d2d4ed1b9066a3e989bdef873c56c29b7a709e336619e33d44698cd44122a7040beba42598ea48b3676b54bba141d55d3c7e33b2ec727313c6ffdd513a7e6c4b52f467fbce2ffbae1d15e66952aca32614a4bd298e9cafa80a45c271b33ca32d5796e5881fef0730fa9377ddf1924c7dddc1efaf5cad596c237cb956b6118433bac8a329e6a2830b38b421325ec2864776f17134d88e817e066e236a244fdbaeb942f14ca7256ffdd3d2a2e9370ab99072550e7947e0238c2b6a117238c44fb5e091dc621703d421029c8222b352b418c18348807effcaaba3e6141a4e878da18a500ce94ef6ba6c9ad5be1946c49ea4fcdca9431d39b3f1e05ff0c2503b0bb2245564fb2411d02d286b4dc24b0ebde20163a38df9d379a950a9e08688b05b09", + "544d9262651a9de7685839caf2e618758ba284ba0aee26d67965ea029bb15f22086cf4fb9619a6099ce9cd8522e16626b3d4bfdcb9ddf00bbd1595cc348cab60bcf1744c600662745580d329f1556c7413162a671dd790b052f68bd63988b7188afde1fae3851688f636df6edb86b6617f0d1a279bf3f13f99258c722a8e32284038b9029222f79da1f96e689e8f1ec64f2a2cd2cea417ae519e1886d7f9984692d97f344fb060a0a5c33ec7cb4a0ae4423f5c9b21a821d7322867fd63458fff3e8c98803a3dbb393f121508422c83fbdec680d8681931569e6bf64b639fab3dcb4ee6f5fef2f3bdc746aea63f9b75d5366b9383c159f5657cf89cda4a0b96f6621d2c494d73fc5c730152029bf2fb2413e76581bddacf4978e33bbedd58a6f0a41406f9c0ac633ff4b9adc380bd7e48ebd1c298d2735aea2d65e07243952cfac1cd07049c5411284d174c7ef7ce09c4d787c52ee52e666bc4", + "55fab12ccb6c729da4bed5fbfcaeda0614341994d976921ead6b808e70521903e5ce6096bc36f63dbe7947a63e1007500031480249d2ca2777ed0d7fed95d8280d6fcccd1988656f91762b6a02a4fc30c773aea8e07460", + "3cf55d3c95b11128a55092a36b8e32aa195a2c576a8f63a2550893090b6b37ef1e9dc999593e4719ae11a15cc5265a449b5eae1f1873ef762aef4c401caaaab412f197c50e4f6aef8699f6b519bb28e95cf5972ac6dffd04e4af4bff82664b79799cd3459246d2b246387449a2cea39faba78b6595117c945faf91f95f0c3417436e7085d23183e55286ef44eb1a9d34a66b73dc14090dae9f2465ed8b8aedfed00ea8c1ae2e4817539cca71be64b9541fe577b93c277d82444af4a5554ad0f518c20373bdf28fd71bf464f85f7b808574d0dd91647b2aca894511b1bf6f51e6035104640dca6876a7b9ce02b23160a1f02d757560197b4b11347d0580c0895c43b2e7fc1c4a61fb4f2e73422449c1dcdd142fb7ab3067b2226fdbb4a87ac974ad81484230fa8d70a0832fd86270115d7e644ca9c21470d4f559e138f85e2934ed56ee9595193e1a9fc606b95108f30da18d1a55ffcdf32189" + }, + { /* i=1302 cDividendBits=1977 cDivisorBits=1573 */ + "435168658359262eb13ec5a535b3d0dc6d094e8c836c318097a5eaba3534cfac3de03c6dba845e989f87dff9b498a966683a3ffcd8549171a1ca8faf11997c5ded12afb978f9e9963dae577f9a0567447ac59a641f40b772461dbd7615ee6887293c4ef8fee35dc8324b7bccd8ae95211221f39ca573ebfd03c007e89d84dd187152217390edbb084f535ebcad438c3dd612f7fc3670a839fa687e350353f50028cc70f5f10fafcd5248988ce6116889d169fcad6f27d94ff3e5bd8438465a89e4bd68a53f6fff963985d13645fa9792a911e93ffd74e233d0d103231bc95e80ade25132ace8d0fe368d6ec4dec3b46b3a50c8a202affb", + "047ecb36af6d4240abf90fb6e808acce3c7ae17f4483330bdd604daa27c7413ea763f713b118065b82abfe25d674692f91b31e5a5697d1a2426b846285a2d2ddd329433fb407a0d569e830a856228ab465e9f1e25a9d6913022e26981f4bbd1d2bed59150376465951b340b723e9b990f756dfc5a1ec527bd9c9b72a92e8b6d317f8bbc1d779d49091e25544f48e3f65230a99a48d17be7bc529aeca5b37f4d68ea4b2e7db980abd82dca9a097f2070f3dc36720619f40d7e71fdfa9f6e5c4db196ef622a1", + "0ef9a90293470954b31c0c0fa1418079ca8e879bd27fe6eb0f913af58ee0bca8c9ff2b0770a516911d0cbd0a7c1c7205fb9c75", + "047809d38b5a04a29cc1bb01bd5f7ef4ae1b5a7402b2407b0327adafc3dab61c3b6a84ee3a85365e6e01233570c6a6f7e7891f47057be32366c02b44303c880e6bfa906e55df7b379bbf8e4c4a1f6f6c40cba80e50d93b140c3ad4434f6193ea9622f36a1a93ff6fcd2a605648aabfc9d586a701c52f569bfe7514639cbedc6de0ea367b4282bca6bba7689eda777fc2be6e4c72eeec30e4585de065cae96a774bdb564131cda9d79dfc1fef721c10a65cd48d58260cc71076e5a7aea8bc430cd7d58fc066" + }, + { /* i=1303 cDividendBits=2863 cDivisorBits=257 */ + "1c6b98b734aec700203cd0c420c0fc122bee7286ea32998a959334ae428db95f43537ebd9ed2f0cd0162b17de10b5a6456b9f977612e3e457b2be9b5b4ffecce1e894090ff03e7688042591e2211f77e5b649b0b23d5a4b1734399a1adf77a477b29b26c0432f5a73aafd6c4c064ed5a29bd5855396d75a100b8b591bbe06c34e7e6d30b4f2165e5a582602ec1e0e056b9b5694e05ec9d8bf5f84da7cba66346598870ac730923669063e0ee2a49b02ccb5143c5c7a93e9181adf4d46931abdf86221f01399afb1de7aff6e1623b6747d6aacee0bd285259d15b7b72f29e845c2e2a9213fad98029d802e1a818208ff3286e18b58d87f6aaf0af307464fcb9a3e36868cd50b5f3b30fa8c69612056e40c33a2483cfc79520bff0664dc2cabb610f404ffa5ebd461208c7b7bb2fa8cd85d6cfb0c213cfa7b22afc0452c67904c7d2c2f90dbc3ab694c6b5351473a514975ed4f396a52fb687a63e2c39a85dfa7f1573fed30d09", + "a55a44375b559a460caeea800fbf2934a54438c33bbd40723b55ecc638717c8e", + "2c00207f95ad0922f6b56707d1fa7c201177a5b94646f3621df52910e5a0409444dd3d0f4c8f0c9c80e1f85f0eded445e1a9de53844bb58d96133ae8b2b9f97d77d23cb1bc3dc1f4fb204d0fb62f54e3091a7f9a43039690d065e853c33eb9d50a57038556fa109d3c6e9fbb977100048b379453da39c039ff05d530f26009d240e1c87c08de95645ad0ac4d0717abaeca0cadc3ec01828a610e1e8d2aec476966fc0085c859249502a84d38dceefb8ae29bfb08b00716949eb55f0b92b02f39c2bdde2ffeae1048d8e89c63607df5c1eb6dcdc962e7f8936ca8ec42ef421ff6329d51989e53996a82b2c7384b31769f561e8309a55170e2f64167c457a2d3d819cb605a5392434d2e023381fd255a23339751519681aa809f22b9b55c8258804afed3fd9724bbed3b45c98ee212158c517bf4a232c49d060c8bc96a1325dbf67bcdcfcfb0d6", + "62d54fb021de7e5796816c32d687f306e117ef001a98162badca81c241814e55" + }, + { /* i=1304 cDividendBits=3772 cDivisorBits=2550 */ + "02e380ada9870b5d38a2ab0ec2fc6a4400ced556c1b4d2c0467aea2db354ef8d9c040fb161224c21588659781156ff6185da0c4d546217a76a7c2fd58cb3908783b7220c9da1c5be7f65ee0da68f5aae237c1ffea9989c8703710b1eea5d7fede881400d7451a73a825ea01275073ca83bd2c4256ee4359e141aacd2b307f3728cb480c80c1dbba6419833e53b92eee4bcfdc7f5a016d90c82af95923f6af34d63d86c79e1bb652342fa9778b65569060542eee2ba4c09e29e7be1642a8b80d7f680ca8d130cc6b2ac1be3637259be3dad15a22c0d9b9ec9ae193185ba5892032938006b62961e1c87885760e611612c5136dd6a8e51e0db47cce8923e49a8a6986ffec0c627a8f746bf83a6a8b6f0b617d1282b8aec574e556eab045b6ce61da0d55f3161fb87a94fe7fa9e3668522a63eda05a389a226097458472e989f54b8919e58c8edc76555cd0c85a825fc3e5e6e29ff6907384dcba09eed7cbb02d17de10b0c8ccaa6faf8e15923bc91b45733eb1bb6bde25f1b4776c930e1a1c642944736c08d6425fe157e634a52f137ad08719910b48f3ea291c43bad03812ee2dafe87885cefd940fa70d82f966c01dcb1357b2a5e33d8789c7e662d89f2bdc23b5a45ea30c36b66a803930b827582dcdd0a0b67cb30affdc", + "3cac37f044a969315fef9ad1761259f9e655780cd1ef472668db20c783af5afb278454ef4a1ef3542d47da06c3e98276f84b26c9bf6ebcd87c8883ad6f79098266bb69bc3163cae07f75f2696442f611760a9e7e5d48f9ed24b33e39237bf293cc7f1f0f6ade4430c7cd963107b8acc39d0ed0ac6ac83ee446dd80efdc1dee9a93af5d48cc8323756cece4c40fc4c60b3e2c9e1f927a675910f62bf844642aae0c8d95613a28dde06ce63dd4109cec412f82dcaf40426ea1f58009726c68d3cdce2a5c53f830c45dea8a9ecda6c28dd5178690db287bff93236b5be7114d3a8dd121bd6521071216638d1f4cb4c517296318d51d576d62126495a80ce07bc44b7243e0eba4d6ed5086ba7d345d9154ac8ff70f2e1dc4fc039f54f96d953fd7207d3612323c85baa384fa5530afc1034a139174927b6aeeaaaa38a6ae4516b9", + "0c303a14a51b19d697036575f202d16f4171f34ae498ee35830e0c1a62d2758a605bb65fb0d793cfeb4bbc8d423b8cff8923c358d44cc07b6d7846640d8d9bf71de1da87684ee57a692629451734929fcacb1db5a223ec4aa2ef7c71b15e1841aecb31ca36464a2a9397bdb8a2beaf33f71be072a25a0092a2511f74964a659954389a722600bdb95243c6e3062d0d017313acf92dc5179a47", + "3a742dfe02d10942117e99a30752aa1dbc6ef3809edfd9303cd0442812b1faeff4431be0ffd5f01a9a2ee45c27b8c8ac595859031bb924fbead72c7af66e60f509b70876f9ac0fc40f83a1372fc47ac419bc9fa543d0fbd1d150f6abc022a497793b0ce70236b47d1c8bbf0cd11155cfb8c56c92c75041475589084d6fcbc06267a6e600f804057e7c663771c82ca90b5ba9a12cf40b5e9f8092f7567e0346ec6ff7f2e78fece0679abd6e89ede447cd9e28aaf2c68d4d706343aba0dad39e2ddaeb823111b736538ca3d485eb98c8dfb019c122f12b4ed2918a241df568d909018d1fe1da7fac61bce2f71b40f4cd0a7c5de8be118296ebf129ffa427540d55d69a97908c22c8549993ac5c4d22af592b23bec6bee3792cad8a70ec89cda9eefe76935ca93c425788179ff1166fde36bcaef9c98c660ae5b6f9366697688d" + }, + { /* i=1305 cDividendBits=3148 cDivisorBits=337 */ + "09faa2b7d2c10d5539badea31f9007a690c7826335f229725e8f32bdc993f378043e57e17a70a29a7e3dab010941bb7501add6eb6c98518ef9750259253824963764cf8979ec22b7a5e09ce694f945a9a6df24c0e1ddda95779f9111dcaefb3bc96b0198b51f809af299a521d730ff29263d63b9ffab28cc4a73e864d9173b7f2ccfda1cbfa68adcb6f003d3bf42b6151ef39978992373630e71dd76308c746b035616bd565848c15410d6a0b060cc837b5328f6a1700a2848a6bea5a067843fb3467cb57b8c97e2f1f71bfbcd450a5c412f62f15899a89fc86bc37eaddeacaead4371c571633b442dd9d7291a1d8b70654a850b7c131af2e9f6a1b9d4bfb57e44818f202fb959c5304fecfafd765a5381187be9c5cce6ee43a1d6439636923ee8e77e70859fd0fda6e1be6f05e557798dfeb2afca8c16f548ea19bc44f15ed9b38587c0cbaec06012cbc65fc3087bb249c533958572fd1f4dbe2116936e1c8e52b8cd501c4bc2c53bd0465690e61c6d13ed80fa1dd38b05c0a8a40999606f26e67ef59c41d2374aa5c2", + "0159b69ae29224294935760f419dfc256cf334725ccf27699c1269f62f433d1a4128d83c851759a3094d13", + "0763b3d785a54314aa48e9d62df6c8058de14b1505af93d3a54aaec290be9e230b90e4b566596f4b6a2188296507d7ef110473e276ae00cb4485d8535fee92090136e3b87f5597d9ec67f52c5848d04049a882a168fabc2e1d25b3ec2a00dc8ece308e3fcd568c6e8be4bfd3deb5e821980b5c9373312b1bec3f831c15b573de39c9b3fb682d3d3aaba051c03aea171c48ff74a021f1b2363a4aadeab1974f763c7161fb8e09f8f096810337eae2b5260a61240cdd4f8f8ec73308d56e9621e26129b71b63935043434754c59b13286550f594e4a40805fced1f1f6387bc6a4063db05c4cf46ca03735eb8f54d0129d8de2d3219c8503f50f5484cd1473206daf1e55128170f747f3dfdd3f45b621e1cd449a9fb033913256b7e287b5a922b718364b2944044f5e47428c0b1d86ee825489e56275c9b01e7e7042ab8c73345be65cd8ef69c1fec15dfc94a05952ece6c94a0b20d05ef2dc37533333b8e91942e", + "0d4027066ae8636744d4caad69bdf0a78edaa9d61905a5cc08e82951be7cbcb76da0bab5300f594cd058" + }, + { /* i=1306 cDividendBits=2615 cDivisorBits=634 */ + "2d180530bde885dd9a1105b868878edcb2255b92ca61bbcca9d2464822ca188b0284ddcbe886d1887696a5bc1e0cd3e49d1b8d938f3420aa93518a213689d5e614ddcf3622d9ea2171cf5a12aeedb74d1bf29ec2d7452e36ccd7d1aaec4046ef67b79239a24a9bc0c7785379606a1903f832a8a056ee022b8dd0da31fe17fe41b50c0c91bb3e54dda694ad274974ead0d27c84b5083fe99d8c6b9f109067e14bc004a829dad4bf036ad3e7afbc6ec059300a04098de9525bb756c2d53ff171ca2251b9f162917e03d8643036ebf891f0b6619e61ae3960ea93c572e5cf470736c5dc5574e3aeea16efe6aac79aa4f8e80ae958de95c3fc201f6e9f2bf1c7af7af02b6f48a9db571aa8107ae3b7e0a93b0f156150254b691d8a9c94dd9b72fd78af535c730947c91f59059e95315fd80e464b10eb7a14a6f7d1d524d3e4a6d6249a3fbdcb6f60cc", + "02d113ef5c58bbc5cc647e4064a36e36a6a6c067308149898586bb45479d1d7374630a6f57409c643f5706af81307767f1d634f557c34dbaa8a44aff8166c91a24abfdfd9735aee52f088ad2cd639903", + "100267b18a4ceec454c1e3dca556a7ce406ff20ff2a8ac203e80358131840589cadb1ac87ca4aeca1ac92d1927e44daafea61df1229be772f0dd3e9ef77e0ec475557b34acf1766bc639cf2449e029a37d77ecb0a32416a4e027657cca9e83f1ee71d6bcbd517e5de08ce49903535f8244f8a2fbe651ad81ecf945554b79b6e62e977839128eb63a666008c9824d8a0ec6d14b5a477174d51f822844c53a03ea6a9099bcccd1083728f625714bd3de727e70796c3223eb59ffbfac7963631f55f1b107acf7a39a304a403b94354e37c1a6eac5ae89a638c89468863ef91d8651de85d739b59339b648dc2be9a972c491832db2f21486c853", + "02ab0693602a5b28742da6178358564b8f364107e9765e92da1da4fc60339fd3ccfbede69c12daf7ecfbfc44ffd806152f2cfde329f44f4758acfde9c05081787ed9b164078ec5e13eeb880311086cd3" + }, + { /* i=1307 cDividendBits=1358 cDivisorBits=141 */ + "0db0bd547516201a31c8ad8943bcf656ff0c9a0f39e61f88421c170bd8be635bcd8604487fbcecea4356169f8f294a25674d01cb55e8fb52fbbf4aa9572c79bcae1439a2bc7042311705f7d4e5eaec99900a97a12fe88772246d2ce2375424fa55f6605777067359d113d0a0e94d0c6388f941087be7876064a91c3c85b882e50d400421218bbae8b64bb456f72d450d5162c8b060a004973c5bef266a382490596ec3c4653fb533a7d0", + "02894003aa10241947e655624cb3382ee896", + "0565ec2ffa33b039ddd2750eaf9e1bc86e7802bfec8f7f9d17e80f228eb3dd7d3223314e1679b9eb2735b6dea5a66a869fb94aec2c2fe734c01261882288da81d68c6f2b4f0a744c9a99a52223f3bcc1bc9631f6feb96943c0477579a7b3113a3fefbcc531bad6ccb35243350d148b677ef3a862d103d56bcc76c3e0e551931e2c45a10405607d25b49dc4a4c76d12b3266acfd907c69e3074", + "52f86e073046689509370d928fe3c223d8" + }, + { /* i=1308 cDividendBits=3664 cDivisorBits=894 */ + "ad2064f646104c9b4113590466505f59eba36af7f456b9625924d49cc07cfe20c84319adc7f32bd75f27309d5921f88b633803472b27f31eb7205c4a1ec859a538fd2e9565d4098a1c8ced40718f5ab0688cb510e72bf7288aeada51ab6c3b4f6d19fdb0ff6afdb50e5dceb6ff09a7c6f66b124816eb2d58d925a2eab79acbe62b6c67185fd89e3a4e51fa8f49e1c583b5f0211ddd19431d01421f5a7a7db7ac54f69e741893157726a96a4f26d0cc6c04c0e78b68aa1469e4a9bf6edd876811776919d1fd2eb076363c8fb943004eaca87213135dde3544f8f1105b41d86d10f64c09afada73be932d613b66a14e272d4d04698b9bbf0eb4b6c4e495fba95630d1d2fa3b47a6e4a6e98976ae7b592e8affeff22136cc9f9a57f823380b9bd96b7a73819dca44ee9c1437eae65adb29c083def734809721c57d8a1849b744a3628bf43e79c4a13b743cf7ca09adf4bd0c0fbccf3906c32da7d1023ab8a3796c885ff82d813c69e565912f60d4edad2613c0f06c6a7f862bcc586312e7542c709f624a4705cd36e579dd0488f20b19fe508ab23510641b08b93bfd56027f14b43ef9c62f697d526816957c8bb7e56d12864aaad49854ccae4ab9eb1835969f75a549c688c413ad5a93236", + "223130009fc22f4d7c0f58b18755aac8e2ae35325f1e9ba6b914f3ea7f01d864d914955202db96f34261bc26371c8731211fad265273a0267f90eacb6e02d207e419502150f1394657e1edf2c378fea0436e602c4314366e72f09a8ee97b1e13e79cdd8c1029672a47aed075c11860e4", + "051037463e879e95125cb3400ebbf1cc9d1d4cd51bf53098aa91b665ec316615e856a9a0c219e5fc1927d9b77eedb3cc53d2f76096a97566509e2dbaebdf846e4ca158eb5384ccb15f0ad670f05b0d078dae339b8dafdfd3c49f0069b0b1a694cb24ec0fdeeeb722ea0280112506074ec31ce886cf2a0aa24726ee58acb19758a05c27c1628b5adf6f07afc3f8fdd25abb4b0fdc30aed7bd2928dc873503db6333202970aaa5b25d78b0cdfa28433c09c430f2995bb78a7418a2dc7bf58167805fab35154538a1193dac0da895a8cc580d780fcd36606b4470864b7973207cc02e9ca65268a437a13becf99c7571378b4d7aad7c0efc19ef22523cdb91f6caf05a9e8e8d7f56808e42c63d5959c5b8dae292da1cee94d7d614f8c6a5b6a023d029a7900f73d89f8e0164358c12f7ee8c83860858bd1ab79729306552faa4f0a518027bc220711cb5544701b542c5a263a7cdc255f828998aff9b81", + "06d3c47af9d31c8eadc5aecd226eec96798bcaae3ffcce3514a1118ecee2b57fc7d330130e1f2c2a436a6e22a9beea0dc99e7a75470b17df6ecac057b01d8b74177936fbd88f7290d87d1a9c47740f0cd382923ab088411cf71cd0a4648bee30bdcf4fa4c53bf6488a45e6335a9a5352" + }, + { /* i=1309 cDividendBits=2738 cDivisorBits=433 */ + "03e9319665f01e345c4a4e268bd2b353392197929997d985b8d5b6dcd6ae95db7a9b579c87c47eaa0160be37eff15b20917d3ae19750b26c8a671f648049e4b6ba4d3f2ab7a07ba62687d25340a5a4807ee907aa33ed37ab7ba375ea5953eea769df6d8a77563dcc2beb528d84015192d5d947b8be931a80332ae5e59b83a66b886aa53f38f6be3a5b3c82ab0516dfdd96937226704c6a3d796d6a8e12b4d414f66b65ee300d00f4e592089c05546326c4186a1887660120e2dd59b9112b75bc46a120e23d50bf1edd971f44b100b676365e8d634f6e690552810005c4bd3e39ff7ab90c53a8fd18ee82649bfbd109238f33c28a1f5386c0427e52b55d9301c8be5da2b02d5c9a3968ac5cf43c47b2da7847257542d32b39fb574fe27858a886573cc9e5bbbbdd1879c294b76d0e068f41beef3a5fba6ea31593eea31f012213c25b877578bd7fa3019e5253fd8610fc8e9568dca31e8f", + "0181eeb7eedac831ebf391630754bcfab2156879bda846c26cd311e0468f25cbffa907ec997959d8b18f0843374d7f203df40c96352953", + "02981ec938000456018b9a1db21b2b30482beaba9997d23688789a4c1d9711fbc4aaed0c0b4f27184b2ae6327e6477d10861728d8c3f8a06d6150477c730253d89d29e56af3b8d68c9ef847a7b1604898eeb52d0efc98695e2bef77002603f67f4dc1da03290bb12338314baacaf60feb9b2e9a385ad732a3b3af43384742e5977ba1081136363958b28512a200670ee00bdb47e50c2af70337d441402dca28923949fff87f39cb0c09ef91c0ee5b7366cf1e2acb3938295cb8778dafe3efa625bbdbd64a31ed6aacfd66a3da5218a98b7532156e545437def0a67bbd20cf8903573c65ed32fdde91e0dc66031650930271185785567ef567ba9079e7bce2871250ee4c0277021ce130e5c15554f5d516ae080188d553804cc0595d718606f83c3", + "d16501c03adda044267d98a1f159b423eeff044e25e5c062b0268f5920415883576eb599481c096bd35415cd1621c8b299a133022b56" + }, + { /* i=1310 cDividendBits=3639 cDivisorBits=2078 */ + "302c8d8acc99426dd0af879a5ca19173b09ae7254695ed3a3248259d10babe4b93aec7317e0aa0650dbce42e04e8284c64ebb105e132be976cfe7797285509d3a3fd6ae1c1e79daa2a72c052ba0d911c6061cdc7726310bd74d57f699813fc8b5302accd8d22a9de0f8012a67f07a4a2b8fb4add53a6307f4cd0ce0f07e11f3ae96330ee1e65581d4d5263ba2a180f2d1c6b417ce835d36becee07fc56357c34e46d48e80706e4192ef64f9c78f9718180fffc7ef5f3f408874f21bead2dd523b1e6110439884f17f4ca9f5b21397f56f6c86d5fb4a8220230d12bd577a53ba2fde7ad1d07870730c01f7435624dbb277d2b3af2f6cf71972ef92973ee89b41df255589751e2e30fc7e5d557d59941bf3d3e0163a56b29230f1a2d0cd112d6709120d86261ede94575d4d3431ece965c40ce7db252937c584b2959bfe1dcb59f602a68a40f6a902e8ff9043440806175abc153bb730d5f6a212f9b1ccf29561bcb2d62222e25f6fada02218394e0cf176d9a48404eee687b1c73516e693382e90f7d30e82aa31132af8e789c6884b8540b28d41e70e104f7af90044b4d0b836c6a947423f49b86ddfe59a01e31da549f11c8bd940d379768919f63bc5dc7ee441e37084ab68941", + "20501f417c8f912712c84db0f33743f1952e3c135cbba37a4d5722cea2b09c2bc8ca4e19831fac2bb5156217217caf622df27a9511dcf8f14d7b6875a7fe34d24c565479d205cd2385ea3d7fe3c47042f4afc9de19249d753f52fc383734d18a9f95685cfbf7fa64ceabc7d30a4157ab2135660f684a5259521ad1e833f22aa70badd3e0a63d4ff0d1175e69efbba9d5a271f400036b0412c0a882d18068a070ddd9acdbf932958165c6469253ec14f5d00ec3025801f9ba8a982e041cbbe4bde16f7d0ab9dfa8909fafbaf5db25c46577a96c7d10f9c42f5db66fbf3712a4362c59668a4165bc82c5d330bcd7d4206188be5490ebd87ef3bce3185b551abd9d482389e1", + "017da8d1820837870f4b99b180feb218574e7ddce7f9e6acad382d5f9a89ee674b6ef13cd30b14634eb98431009443e107d10b25d6b5d53469cbc20f8ecdc3ddf28c5ae504edb6ce30e5373b64408d37431afa8b6fa9a776322a8da54ff100e4def600d105a3af53eba7832c3d4c0e0473c51e61cbcd145a209c813368b03179782aa9ec0a67f7835ca96153200d3057ffd602a3e2b68a1f2772cc7b1d4dd2d6693dc8109a8c3d022678a5bf5c7f10f509461fc0293fabc0bad217b0cd556b74a4d0aa2f", + "047a7f2f9a4b64f641b8430ad04176c5650ecac59e6857a11c27e698265ffd9b239c5556686aa7815485dea2f754275f0764f372bf5b0da77124f9031f1d0cc53b470498500178bec5622313b0546a4a22ea91a6c93a15080a86d997689ed376d0bdd2313446ae9e6cf914783bfea7e5ed1a5cf4413e68e91237b60cc5ac2749424ffb81fffbaf9afdb2bc16fe7b5b01349004493c1fdef2c93c97c2b03964ab571cac1d17882babea5a54f73ae7492a7f05b23635667ceec8ace1dbf20239d79f323e9eff769818cd8d957771ee9b667c4328f9e8dceb2d54e0780728b2ecab49cf5ba37735120c9c3de7b0ed459901add99af8c6f06eb8f0054e2190d90f1847d0cef2" + }, + { /* i=1311 cDividendBits=2701 cDivisorBits=1117 */ + "0c64db00f6ad8f3ffb8b5a6b1f73852291daf139d35dc241b85d28793eb84dbe0425f0271b479be780bdcc09ebee502aa674152078d7b4a9f44da946551a9313ca0e018356051cae8d5f85ce23540c712ea69c002262d0dea252f36126ade2b0bc28f0c8a74c11e956b98165b8a044499db2c57026acfa2035d3791ecb8b335ec8b9e5e18ff8d0a70b5708c4ceaebf1ffac53b7405e432bb32032dfea5ff759588923f71c810ac883a6e77b269ded6a14c7f88e5f0e4abb08d06aa40b5cf458f00267e0f51bc5f98e53249f17a8155e27a888df9a0477fe177acd54d5fce70d1b4ea0cfc701cad6e1870fc42415e4b36dbd72e356a7fc0d7ba8e7b1d5d566bd7ea459112bf618624f0ca640ea47ec4db95bd5518b1765319469ab2a010851bd93afec6720c2dc047c30f3a80d37fb6e8c7824141b546ec73d86fecca2d2a2731e76dc166b12eecd1ceae4c88209046a0804d", + "04d65f4cb7ccd530e42ca5ad8c1008ad3ba783996e91be24b71359919a46784aca340b83d653fd7d91a3136293f1cc60602259a67b7a1662f49d9c3004e37f3328c4e9f1a9e9f06b4ae7f422075f88ee9ab93aa183d6471e0af65dc7d6d06c48374f7826180c6b5793cbb0e5faf6b0d20402252cdc5bd6232d1584dbae62845d02129e3a883c679286327e63", + "028fe6f1e073ea95e63b96e5d8149f33064fbbe2c86341892151b362c5dd4781e1a6ddac1dc15b2ad6087ed43ffd94f4970729145333e077e81cf030658c000d359e301be961562a2740c9dd06b334b8bbefcfdf1fb68e6e6b75659ccb4692aab15e2bc876e7e0ccf2334dba89942dc6d1029c765afca0d9a81ca847aeabbfd63e12fa1b7014c09485f36e603dc16375e56d1106c7dbcc192312b23dc2135ca8d0feb62ced951dc804d7a993e1ce757266d7f8a61f72e268f25af1f342b381216a3ac07eaef678", + "02b10fa9f5c7a876337a9318c455765663fbe1cd2cf850815367ced8655f79d3f5fc5ca4655e71e7afe8f601a06f0992b977f9a8c64b32854a25ad5e2c98abda2002d36ed336168b4298d487c0fd6ab3cedd1eb1167c9fc9c738f521490286810b69642fdbd1476c011401a5616166a3c04c4641e88062a3370fbd35509c9d14962133e9b28d7e2638381fe5" + }, + { /* i=1312 cDividendBits=2833 cDivisorBits=2077 */ + "013629b899eea65ff1771e28fd9f9623ed5f0f2112471aea612dca1b39bc3288f4c5983a26e9a30d66170989dff7d94a91591e2976b746c24033178fd4a1d11207a16f5c1d508323f9b50a4f5e796203279a528fcaa8c3e1edabe95e990b78cc83fc9abc13cd622032f8869258b42426624a5cb73b3467cb503e51757219eb51c8434eb9cd22eeef84a91b131739c21a4ecbf3b5e4f6e47aa19e1e826c05da4b773e924c0f5dd9650a2814c5ced52f2df2a54ad3c1008f648b81865d9d9bd8f1c4395ecacd17e4159cd98b28eb64e41fa7e3a2972bae236122443a381bf531dc3dacc48a4ecf302dfadcd6ee54c19205af115fc5d5210153d48748c7321da4c5f4d738b3b8471fe3eeb043275a576f0052519c2fac690b706e0a45609277aba5d3d477a6e7eaf4cfab59301d3397fc72e67601d0638759a557d2a2eca8d441cc6453dde90ec2074b22efd041c14077421977f371e99eb74e6899f95fdc6e1ee06bd057", + "183a1b864d09b152233de73977277d975218eef6ac812f4d87f75bcc07fdfa3af7f222980a5838a9bd57ea8f74fcc6000747514615f22911e94679b6689464012c058720cf79713626992dce747dae647ec2f50a15a1a4c0556ba7aa0f5a081fad1b1d2248108320eae342372fbe4b083c44e9b3237df617e182a715626396d911045606325a725adb592f97e56b351a3614d009fd0d15eeb7b8e868e89b87ada61246d2a1c343cea034881260248a4aa96d61ec8b9fcaeda43694f7b36096f5b963fca2f29f83f34235c63ca3863821a000925c9efc1c6970ff25a58bfc366f8a9fed22b81c201e51fcd24181bd572058764c66d47dfacba123eaeccc9b4955666683e2", + "0ccd689ae4a5377407fb079511b0509cf58d561977fb20184c7cd1e6fa798609da2bec533ca6be753d757d2d44664c085b8bd876308aeb8cede6441d80e219ce2bb20b1a75b7ff73088b377223090066794c066a380773fb6039a767f8a3ad", + "17569e16746f10bc6d28d8efb1dec9a447c99b858be503c59b174db1f2c12da7b2f92c1c6fa8f76242bfc68e802d73a85cab681e5b6b6ce720d5d249306ca6222b5d4dd9eefd2e8549ab7f84365e74edfd2e3691f039b24bf85debef3d107118a2131300091738907c93dd838e6b3eebb049702a999b0d5bbe62967983c6e6234fddd3fe0acdcacf8a73ad9e9e5155387c639e34e2e9b8afad6ae39787e522671e5d68ceb114c1d3dca7cb456e035a3941738529457d36d07ddfb658c2ffc442ad148b7e927a711e83f402b9cdc4c1a1ec1a871632b6a268d5b5e0857bdebfef103ac90f4e43c22a1a20be335c041b96bad4e8fc949fa8882baf2ff3294eb267b63bca9d" + }, + { /* i=1313 cDividendBits=1471 cDivisorBits=696 */ + "1773a6c3cfe4fdbeb258f9d386f41e1584d1e8c2aa5b3a4615f3428368b06e6d02cc27f447b209241937a5b0650360ef8d187a6e93c826173a2457bea8c37638bd974f276108a3413a8b39ad23ba744e0dd28dedb3ed608a2a4734c38c59586f864e5307ac87f373afb9cca2172913999a36bc8f03aa0e7bb6f4b30ae950ca693790a2509032801228ed87819c4fc8ab933319f1feaeb6d4c85f4904b432b527398334b3596b8309be82bd66ddc09f8cac32fbccbe9fe613", + "ccae1656246e8dadead61bd0e0e0a941bf0041369abad2d0fce2ff646beaa86bd159ff2dc30e047dd2bc5936b9251ac74401bab3cadc2450eab3c2ae74d6dba0e75966d9066478928c8f6febc341740ff6c89fa3588675", + "1d54f688e09303ed3c12ecb7261e6317e839b4bb53fa212ed275710feda75d28dc8688c6eeb0700c204d8aabf7a898da323c41701a5e84df597a40c3f1ccdfcab8d38400e5af5e5dd481604562af6572273fcc2037528ac3ed302dad53e68f599f", + "4189f9eaa01a4152a4d5df9a5658dd1370fb5610d463abd6a4e62fc948d4d649ac5a477f13fd204fdea88b8214e3f143e7cffcee9aeda62ed6d8484c5687d17f4c75bcf5ca9a896259a27ef5d425951d1d70ad4a8ab668" + }, + { /* i=1314 cDividendBits=562 cDivisorBits=428 */ + "010c1c83e568b9da1726400ab864ac0439c261a1ea2a39d25eec2470ee7e8363ecd2a8680398f2bd1ea2440a5931b053b6a331af0cd4bfdc290f56de98a2140a30d1d05517f439", + "173d900fa1a43ba9d09a630d596cbfdefaaa7b67ef5c4cdbf752718aabcf0b4b221e51d757067d27f12000c5eee500f67c7464041d", + "0b89514941aad4ff744088ea0ee4205df94c", + "0f93ab6e7134b0e940d4a87160ce6464eb6fad7e8b69e7fa324bdaa154e5e83652d417a0abdc01e458e3c02c30b8968efb60dd869d" + }, + { /* i=1315 cDividendBits=3199 cDivisorBits=1639 */ + "22da5ba52157c5ad4262553d4bf5b9540db1c442afeab5e0c86d3183926f49e8ef061d728b5f0129c7318aae160c4a55bb4fae5fbefe84ed2089ec0e0911e79f03ede07c4af967bd9d6fd0630b1e9f04a79dfd6894621d5c2441dab0d48a37b69a36baaa1a8cfe798abace0c99d18378685c18024c77757d7b73b42dadb2b7701aa83a7ce88fbe959a1e6cc90a16e01c3f50502154f1aaefb53b59e339517de7db59624fa1efc9cf46a69782ff90961f6635346a77560f102579f92a4530e0ba809b5b823c14b948107f45ae8aa9f72223d953ef5a0a2e6c493f4175a1879f25ed2c2fde8bfca22b8893745e4c70be958bccfa7a7e3a94c06e9405aab74c34750e3a72eb6159c258eaa3e45ac00ee1fd6d5cd840eff0c6b4284efd6d5add2d44a675e6bc233f538c2e34e8cd5c85e79e2feb67728adb68a4ed73c00e5a4be1515432a8b028da42cd11bcd8a513b6d79807eedab252d607045aa12e3e032caf8df0e05467ecfdbf42eadc1cbe04795f2950361fdbc5c1a6d8c673f40dc95e3df2ab1308ae5e58f7f45caf5f85f8fe9eba", + "2d4c2597a71a92e4b3496d281dd8b1650170c89591b8d78a16569ece8a216c35b4ad11bccf8d30f1ff7457e6cbac33fc2997a9d147bee5907ceed4e4d98ab9825403c246bac691fa8138cb3acb01b07bdd74ffac413ac8c4f8838d5115be7b49f8f6a187a77f6586ddd9b36adf03e9a89c84105e1286e5f0e480a06b3b5d4304705b1fe991adee5b966ce88811e72f5e6289253a7fe89b630d553402f8226846f4d81d93709b61221564bbbbe64e9e5b1553e82c5f4a64768a93f10475fa1e8473c671c4b72d8e867d73f35622", + "c4f8fedcb3740321779e07ca5c3555857af03f187fc933a051e027aec92b457b6312475441fab02360fba537bf727ab08eff20519570265b3acc41be980bcd141c168a2688541c04e9e70b14ce732a90cec7a1b81dc78e29cfc844cb0f9b37736c17524ab7f523c84ae512eb6576e7edb1a102b96420b4cd2cf56f0c7992c1460b0c427455bf365666b4768cf73ddf0aaecc597a59063703e259f49802930a0f7e23bee2ebf24bcb6bb91af35d80cb168e5af784d7cd7e4d04097206f95358a3340cfe", + "19191fcf78687348031717fb985f37f60556961827daac5659d2dc2e434916f170b3afd03ba3fc458f5cb47e16d8da4c4d8b450d73688b5b254604aad9ec861555ee5f672e7cf5befc2c6afb919fc6f7ed623a3596d154a0f2aa871206eeba86aa51f130f699497ec07c7ce4f12bb308377de1564e8d60b9f0dd654eb96edc50818fd29932297b9fb5b06663ce4d589a178bb7bba806fff89317f8833b723452c5669c492038a2db7e82345bd440033539a2a6e6d76fa48715690d1d32ca43db3e2ac642edf503eea8609d90fe" + }, + { /* i=1316 cDividendBits=3521 cDivisorBits=3394 */ + "01bc5628bc77a5f80b7374b470ba67b8696ac682f73fdd651b96d59dde87db4dd17c53260bbc174c019009b05dc2d1858e12ad57c334ba8f367f6c0f569258d104224af1261a301b1fbea1aac5c10def1ffaa73aaaa2c909c6c427993b305e9c1868bfc2e97988e96328509f8ed9d9917e25c608cf358e6c54c5488b9f4c2aaa2fd8dd49b30e9e4d2d01068ba3e3d36cc9032dab3ef09db26dd61c378ada9cba58e677af316f496e3190f65d36865117b7d2036a19f052a3ab691b9aa1cce5e6ab114e44d0fe25223e257a1e69fda5a17c690de72ce3ed6ba771e21569678a1035ff4a0d0e235df79897997cc74e00184d148813354d14bdd686ae233ceaeaeddd0c14e2e753a811bdd1322b76ee6f1daed87ca664b96e8b88f3a28c7d10561f7907d147d52a2b9de69f11b6832bbf4e6fc7db5d7551271f86aeed39551ac0f81ca0e839555e2368828843003398df7201cf09d046b309795e4809d42ec5f5bf78836481e38cf834f4a9882fe5b54b13ff54bf4addf723267ea4282586f22f33acb94fa3c5b0a08deee0625f762298159f180402f5ef217ccab480e8457b6d235c8bc26fd75e90084b4a8b0635f2fdff09dbe6c011c2f07d23", + "01caa0f19decf6f8bd7da5184e4baa28ec22ddf923feab8708de2137dfbc67e8e24eb0d6a5514c2d1af438060c233789989922d418062b39d12412256f5d0a0162b1253e720bd6c27cf4829404ff42c67afc34061155376f1d02b59e3fd38f05809b56de98c043e3295d1e62b999fef38ad96790b9b4981be4d4bb0e9b51c648bfce39375488627596a99b341220c34d20d652da6ea2ad4b44d57fc98b963ffbd2759586ad919f3c8a199e2278428238baeede92103a4c79ffbd6f6108dd2790cf50ec470a6d259af7cff2678e7ba107654cbeb8dc8d60ab05b269910131ea9d5cfabc4bdb0cd0abc8b2c35240465975303e4a45c910aaae72cea6d0336df8499f2af9da8bf3f86dde5c99e5c6f4e97e14fa716c97340898a9f55d14301d64f3abcc151fb55094815838aa721e9fcd130ab67bf9233853f08315b1e776d07f0b146e1dccf85faca3b13d2dc0dcb05b170aab2808ca487ca735405c101727008acf1f2be15324021e1016f03672d7be589a330c42aa1a50b38f0e3d12303b8801a760c0a66c00be17ab962b61eeceb762f2524b9139452b67be3d3f088afda37c30c9d594973108189b", + "f805b7efdb623517a150f36eefba23e6", + "01a2a39c89c132e54e31c906bf4a5b25cc970f12fb87f69ee1aa8d185cc1cec0bb4847de86045000d7c5deaa81d7579c5fbcd23dbed58eec3c32ad2b4ab8c2c807956c02a4c2c1c8b08caeec5d6205aa1a7204e4ec2d1c8507b370ab20447e3535cd21755fbbb765068aac5a208b1efa8b9a7a737b299c86772407d8989a612b0ce75d431c3933f54bafa9ef156c074053cd459bf53443a495dedf9bfd23210d7cda95ef35a74da4ee69f752eb3d7444c8ecdab7d3f4d576ac8ca0004def297976f8a387872121708d72a19092cdda5a1556aa069c2e34806fbe61f52d1c02fe9458109c845eb8ae0273cfa390e18efcc3085e913755c3b23d20fd25d0d311c2a31db228554b8720114d70f9bab464339b57fff0789c7ab8d5e20b3c1f3c63fa46ef5b604df9be831e1c2f8aa4dda3c736d8f5fc7d6f545d2e7f1a3699eb1819db421ed471c3c43af6096ed8f72422b842d9601ace327532d276d65c763b40443685b500ba377d08e9db094f96271c1236d272c105a544302415484bdd7bb5ab38fef9cbdf8265558cfcc179ed5d8c5b0e3c3a40d1b007f3503eb33e99dc31a14549ccb21304af30e1" + }, + { /* i=1317 cDividendBits=142 cDivisorBits=86 */ + "07eafbb07fefe23417ee66be172299c6e089", + "0ebfb50ef8e50a901e2a63", + "896ee8f2340c1c", + "0b14b655decd4f3a6199b5" + }, + { /* i=1318 cDividendBits=2751 cDivisorBits=1310 */ + "10d2cc887ae57380128a36874e7b7257ff8678aab644182dfbe847d0cd2248884a89d1fed58fecaa15f6f0d6c78df12dd5d7b62ba302d4328078e67a9aa88d78eea0a0fff75f0a7378adf0482f065fe7619fc5e27fc820efcf3f7b64375729edb7edd9ea8c1104929ab09f9174b8010652c37d5ea23554c18472ba4ca7b3f652cf1f458691969f99044a8097832a9c4b8e233d4c09119b8e04e82bb95e3d8c433cb0a76d68d2af119254191f133a35a06c1c9ac3002fd7af648712925ba908f44da5e1b1a0f8f7b2d827654aa0600c3e5487f6df6e9cb718a85821b64668d1460b3d928aa6f61e370f2bab86127a55f841a48a45dbc6206a5fce69b8428a69e93d87e6a58aaa1d264811089daa17425fce3522a22d058d5cd13c709935d5e0ac1b5753b0347d66ddd2ab877a2d1cbf2807347bd12ec7b8ca9145c4446dada2347acd7900292fcfdf19dfe2163e33b46e12521504c9a16a1d", + "1c356da9aaeb691f847d1621e2e8ee6b6f99878ef6298ac024970103e630f33e615cd376fd1e91f9ac9b3a73721502c227e15fbe9054ac9024249ccc083298a13e7564fb63124bf8d565e17c932d99e413f1752f7afce02b06467d5f8f593d60fe2124f8d3a06c7dfa7820d6ec6d45e0ce3a58ee2ae3dfedcc0d60bb8ab183029c88544a296d0978f2a623c9523148145d84a7848e0c39f384e33ccb5a62f48e198ab655", + "98ad1e1583c73a1708987d973bd786c82be5571c52b1cfb0960ab948c0ebaf230ef56fb7e64d378adf35b0a5111ee2510e713f7f724b3a08837c174ccfa832abeeb69d9682f5b5e387d3c47d112cef3b872a48273efa22ae3cd385e810dda16a8f51903bc355861600b581b1be06b322aedd43444cf401ebdd0f992797214ec54124f076ec00d8be202467b7a49b5cf9967201a1d04223cf7440fab7f569330afa5d698cb53d640807c4b8285368bf15fbb062d0", + "0ef9582cc25e0218f9fffe5e3e0c41193dc456cd3866ef6e37259b646bc4951909afac63be6002f536b808157b71ff140a8413cfe5d5a3a3b195136e4d397bb5ad902d3b83bd4b66338b94fe4a94b13116584fb69a7d004d5eb1905af371b4c58ff9c7f272e92312f556e2216795a538a164a8d4142a4b1a87a7cf449bca36461323edd0fab79bc756f330b80d42bf497730c25c6f964f82d37b4955139e0bad3db0bb0d" + }, + { /* i=1319 cDividendBits=812 cDivisorBits=227 */ + "0c8e5de5988efd2ac05a9881d359a51e89d3593708b015bc7bf820e057a2303327202a6ee57bc0d87edb098ec85717e61a732d1b202f24e6efb54484bd43a34b2198d1ec32397d90ba728fcac7454bd93cc13ad799e921ca03cd3aa2cbefc137561e97fe59ed", + "050ddba8b90fb303667691148aa2fbb32da5b5af1c975e265acd7e5b9c", + "027bfcdec27be11f1656f68726073fb9bfc7618acff46326e6a89d34cf4220549f1c3c6e5c1a20c3211770b11602e1cc11c3a6278bdc53f6e53d98918a411690b1b7391619ddd3bf0ecb", + "024fb39071970a5dac61462e1520461e0418e6b8e6c5e82c6cce652d39" + }, + { /* i=1320 cDividendBits=3485 cDivisorBits=2277 */ + "0c4cf2964540c1426f729c4cd208851dd9e67ee10a714cb65b6dcc68a507f7dd4cdced6e46a964f02d0e25584164bc71665198460b6a8e33f5fd7d1e410a0a6dfc4bba19901493644b3f4b6042c28c9dd096092aa6881c153515da1d865f40f90e1075b838afbe0ed26f094c80f2b5667887f619d0123e081763882e5346f1c1f268c7cb683d34a2b2b74466bbb86ca70b397f9eab6c706631dfd713c81224682f908c14f8ef3f9e67af197ae5a49bdac99ba8db40f9e58a10ae3ffffa5b0c90930ec1f4c7a3381c7c51d0c6fe1fda8d3ef7197fdfd78233d6fbb383427b00946e569dd661bf1af250854aeef2b05b231e99fdcab285eae83aaebb6c5ade017294c4eb0ac0bb8921da5ec8d3f9a87fb5f381ba09dc9645b6b6b2e40e980f4a751f52bb80859d5af0d86be949cc8ef054fec0045b876b01aebac2170c8e965694a34c84cbc16e014b54f1130827eee3564dd019c544a31c14f44f210678bd28bb64b74296cea856aceca3b6e1618e8d582d8d0cef98d64e22e899905bd13413be79006c254cdcddfa32405c9c6440f67bb246a77872836c405aeb747e32946024d941716db8db1dc653b546b7de87bd2455ae80a4", + "0e2eed6716e980df5fc713e3bb550eff4f619c34ee9ca3a66c611401a9622a86f742d5886a0aea42a39472e3137b6dd89c544eba2cce6c0a460ac1b035a1851c407e762742a5ac45876fe91f27386dec3b7d8d67cbfd2fb5a9abff88e51226cf067c8e022cd4e3c4ac6d0173df1684f28d5df284935dff3557fc3e3bcf2053125b56ff63b2a0df8502d82d0826f3aa602383566b4323d6c1236a747ec47bc72f5c2e29844fa6606cd76ff5126ce26c90dfd9abb634a2ac94579aace968c6960bd7ac815e756e44a970788060284f539f43957bc5c17b0d1f2218c680f8c103f2e0405e47dc31d4f09bddefedd350afbe8cba83620c14bd1028fb548267fe0b49862b84f910a275a9c467623224946e5c00e1159dd55b4890943d4c5718", + "de04900dd5e757b945ec28db50f72c4a7923592a9e7b8319ed766e1eb05fe6b4b87d757ee332b98d0f74a1df0094e2450eefb2bdfd4f7cf0dd16d75c32bc6096cd1d3ba18395403ec110e2091b481d1b214d997928cbcd121f51a48f5fc4c124d11d1baee92c3a7d82a7566216cd99b552c39a955230291cb3e999d1248a8ffed6f45de9fc4227038d9e40190423997fd80354a1c29207", + "0a415b280555bc7cc08d460534b6766eb298641094c710885cb6e186befcba7caf71dbe631855f20d2ae7ccd3e576185008bbbf1d025cdedeb69385161c72bca542f99611844b07742e3ab3b9676c73d58c2a060b1f87f0d0edb3c43f5dc1283abb0af51cda4a9ae745e15f4639165e92783fbfe6ede0bd3eee4dc1b891b97407c4544fd52298cc5e41cb61a8c0c3000feda2e8edc3491272ad2101d5f99fd8445471024d54f64cf56f2e3ff07402815b06dadebd43caa1d5bf2b33cd4a00bd1c35e308baeb69498d455c5a27fd64e98b6ac16a38f39ff8a9b84939430bf0b776ff25aacd282d755befe8ca42717925c94d6f6bb93f965cd404a592202ae753f2e5ecbeb5614992b739a03b8f46b66f308f21c5d95cbe1eba106bc6efc" + }, + { /* i=1321 cDividendBits=1098 cDivisorBits=297 */ + "02d0998b7f0ad05ba72c548b0f29ae58b23f6e8b6be33b77d0da17692cea0b8181341d2b80e2a0305476b66c98905cd3c60e47ce7e6db15bf55717057b3f623e50ee3cba18322dda5964e96306ffee0954b9ab3af03a135c64f7e2b86abcf580d6d79125f7f2e503656183849f0ee17af23e92248dc67d67f24ab978f74a57e32615977ffd23b1ecd23e", + "015980471fd40e265f5626e3933906a559c26dad1ba6ec098a4dfbaab0efcb96cfb7668dd1b0", + "0215ee310484b45a232b5801cc69322602ded96cc04fe4585e17a7c498c4a19649279b801d3f18e562e93dbfe98f86b96fa31f991a7e3f2c061b44e842f7e900fdfb983099e6408519ad7ddb541af6503a35a690c0edf8f7ef9f1225ad62915304cf5efda5", + "202a87b8a69dd18e9a5538b109183e3f81d15c72197df90597c8fa325708dc303421a9bbce" + }, + { /* i=1322 cDividendBits=3076 cDivisorBits=62 */ + "0412062f253044d03d35a9d148377f37de9afcc6d70dc0a2676988dd24d148298632b0c08057d85b6bae802d4198baab12ea998025b766abc456e59dd12b07806a0657f715fc2ba09de3c02cc11d79176573d21fd554b8ba40c04b093bad660728ad931ac22933ac6c1c82cf662b8855356a29f338f89a1fbbfcab9b43f95a6f3a186a3353aeeec04e34560379b64415763befcf73eaacc4fe83a25edbd89da2f5cebabb0648a889068a228feaaa4f7abdacd8a8eb518bbd16d3d420980ae11c311892ac9f8cd27eaeae0341a0938a26e7ea82661255a13c42637d7a770d4c4c7bf148ca2df2d13905b9874033c64b89c6102840b10e477f18e768813ee0f05fac94910f7e8e653a69d3a6775f37dfab59bd4600d7d7a28c02a8a6316c01618482c6d96c974ea96e52301e4ca6af8649184260e04de83a997376bacb7908876daea20b8f9655ccc50594a8a6c5954e01a452f7c44171877f148237564bbc8e068ca417c788c888730ee24d5c9e8e3155700bcc20610ba1e51a451df71a607ad9e8", + "2727e5fc9c211f7f", + "1a9cba6ae9e94ce09678e20a0bd0cb6892b62b1901ccbd3b38e097ebe6859ad6fe287d37dadf1e735e960409ebc02f982ec3822fe119bb81c112192c0eebc14a54da39cdfc40206c60a3c71e93d2dd51d26d733ae811d8ce3ec329fd170406c166c0c7f355fa2e2b36ca96355939249e30621416fb6025df6a4c254b36bed947ae95f7462b0c0aa4f9f3d76785c610a2123e2916297608068b43cadad92123e12e5fcb705aaefcce39ed22b18f6343723551f0f94b7479f0db935c1dfd76251d1102f2bc8081b42c5958c213b98b555f3962d2497d08cfa651e000cc822ae0aca127e58309a90b093274a17ec5535815e501daf69318abc9cdc4a2ff3c4186d08890b82fb2232be49f977697b41e971671287f943438590584efbe1e0602a16eb40796703d4b91ed3018edcaa77dac17607aaa962bf2244db8b9bbaf794121467a5b6ba20faa76d60d6a9da426a2fc1d776192b623f446b44036410eeaabd4bb41568b470e923d65123471aad964c4b278fd46339a6db5563b", + "08a75c34ec78eda3" + }, + { /* i=1323 cDividendBits=1506 cDivisorBits=1168 */ + "27a9bde8b1c31f9a2f6e643a6854517645b84f0fec6a3dadcb2a8bbe7252122d1b6902321931c5d1088db8caa6b84b9e2d4cf843fbc3707fae46a7627608edd34df87d9e193cb804e33c4890a911812f004ee85aeb7f04eec5d268afc0a94076cf9cfc47857983614015b59ab7ca145ac256e3e93005c6f7750d0f57d844fe3ec2984d6fbd70b81cad9b91d508c7aa8515317a0e433aad9551057678e1837b5ab39e33037f531c3ad2b01637831499a9b48c523006fc81c0a1b44889", + "650bbe00f23b477e05541a8a2a6dd13b75b01f8085babfeb64220e5f36e3776af851ce3ab8f9b5c09b14814b7ac2de1f70826fdecd20bca87a3b947d43f32bd49fbf820f8ea9ce1617538b463a6ec7c6824c95555de5d247407514f2c6cb9d2da7686834755def042028c6d70265b9c8e9c31dbfc4412a2e2f016898b4e8b82a1c99538fc5e42fd30d6e29f448c5b02c86d0", + "647c88cfe21c33e91e2ac1c5e20a30bf525bc1a02f2263ebed63d5b7d679b5baaa42d6adee4642cff18d", + "014fb26b391cf0291738e60e109129ed876dec9ef9454a300f85356f8bbe5c73dd1fc1258cee64fe568227b764edd8f2ca910162cf239b1a78f817001e248f21bea59f25e002ba390eafd4b6d14d6620119228025c344c560126b335ce8ef78297f0ce5407bbca9ca719fc58861b711ec4384ee126b96643945524da3422e26235c63c1df0dc67527779979726620c1437f9" + }, + { /* i=1324 cDividendBits=1677 cDivisorBits=662 */ + "0fb2a287d393ae1b181916343564ba4eac7fc34925cd456ae3beec5413205949a1ac5f7d50a9dd8ff82e9faf171a9a319e2696c6dca580d303141630974a26c59306d469758daac79151b625845c84e6bcbe7c8792ca3b47725558bd8b0b453a5462bd501485f747a72df0ee04960d44bf128ac2572dc5166821c92c0ada6d3dd45c81e67cced7f21775eb9e79448b1104bcc7bcffc07b8ed708c2a7be7f23a30540e979d5db64e6bc016e41d9aa783fabcee26b93455dcb295065d04001471b04335528f66130a6b561790266a92c7a548f", + "07a4b18bbed89833f6a439195b4a86f3391985a72bd435cb04478761ea6e80de1a01616a53927fe8fe4981a0771320a02e6fab23f744c3def1c08c0dba520e2c270f26027a84cb9c990297fac72cb793ae0e6d", + "020dc516f9cfe264ed87561be65280f03778813da1489e9752f8c39e8aad6dc2b1fb86b999d2929636bdda584f8d0d123b455d76f87494be7a3180ac480aee829537c4d786efc01bfffef2f644f727651121781b772137baeacebf9061c80b7e2bb34592e2404d47929c6c2c812e4bbb9e3c291af309e4ad412ea790f6ffc367", + "02672ffc72ddf434b37c9c72272842c7e723d6e28e4047b1d1cb97a279ccd3af2a1c591916e6969cce31c38a370de1e5e6c593a57baf3925274ec382d8c40c4719d169e714229393c03da50722fec20fe27fb4" + }, + { /* i=1325 cDividendBits=335 cDivisorBits=237 */ + "358c3bf6b4e325bc0ad881f85591d38b6dc5c1b231ff84833bde60426f3920b6904affca63f53f28f231", + "061601763682838b40fe9fb56b3d32e6767d24eb57dcb0fb1bfb1385fbfd", + "08cc6f95e17af4eea60706e4bf", + "032fbc74c9eb60192d08d7cc5094c543efe65648b03fd1cf2b2886d69c6e" + }, + { /* i=1326 cDividendBits=3498 cDivisorBits=1224 */ + "029f3a3d6e9703cb44c9d429cce29d7d30a8359f375750aaa737c971272c73c99b8aadab48d2e10f19d7374bcb1b6dae7575e403c2917c8c04d59e10e49732a69412b4f622b9fb7a7e5e50723cd8180e7ac95d87c72ad309edf2d2131812ccfac0ef2733e6e4029cfab0197aab357dde4050458d15a69f26a4599c13b6247a83993c594ffd1dbb9b44ffd8dfc22168902bdfaed41f3813a75c1e0c90a95e09becf8f5e1b7501d1f544bb9013f66ce6d539606662e1b11162333b3e0a70a03ffe2ba2d982b8beff2fefa9fdcdb7b1562c42bd3f1b09a52c11fa2694a304eca3b591c30ce519df567416dc16b7045f1aa57854db435bca6b7745258ef1fd79cff3c794aadba64b1c16ab487ba8073ab407f0c3472005ba4e887591238b5435648acf9db1ceb2b923e9a80859719e7213d3ced82595e5b2ac0d22d4e72cad782307d3b8a15e7bf5483b64bd8e5af06549bfb2e975d31620f43eb89fb00570417da377441073406d99d78a34838f77d17ae9fdc65c5aa14109c740a15a802b64a3ca05b6413ffad9f74a292f7014631bee75e51ab05dbf4e5f1f953f5b029678bd1149472bd96b7ecb0131d50a9e9d2c29eb288d2f4dee06", + "61483e0c43d5e087337f60f51ca213f6ad836eb810aed06fba8777daa78ee8e506079da37ed57cee28089fecbc7b129cbb8b3d2207cad6f670494c51fd0245d1182ae4e56a36e8fe24b7b4dbc9953cfdd92bfdfedfc41922106960a2667de2f81a17330f7b63a37945b52041454b8de319343c2c34153e6632acee494d12b29c9985cd4a3c8056569c091e771bf53a565d62108446c80f6f5d", + "06e659283794e1bbf137cff1f1de5684b1ccca53fd6ba517ef8f73874ecc2961ff88fe18e76d696529e6fded1a5673f493a21855f7a0b8b4d1fd5a6fd3198b2e18a331918861ba4cd5d4a791e568db32bee265b8050b35c94b3f47e01bb2d1b067c0e479d7bf64fac178db007dbb4f2ff1e931e949a8490fb5cf5e855d7cd2e64fb80db2abd5cf097e8e728c4ca5a766d8f172f4df46ad38afd11f81a371631a9bd5c6957c29c38dfbb0c1d83ec980519b4f63c71467d888b836beb040802aed51ef34ec11cfc220ec81b53c9dad88cdcfc16bfee864ac7df5b7dd6889a8ea1ecaba9f7713602a2b5f0879cbba1d45c9eb6a7956ab49416cee518cdbbd62e7c13217472636d7f5acaf06a053bf0db008e779280d1dc3e57878229d98f8", + "45208214f26e9df7e96e175bb9723cba51845ef29f3fd42ced0d4e6d7e2bd8efa8cef4203cef615b4f7d142173415b4722fbd2972599baf184f88583dac7a5dd480d2c3f2dd6149c35817730a0884b56e18f9f391d2b8a8299ba60343628780bd8e5c0e2fefd1590ba0233d2fc2298da7ce02f6cf4684d09f83c52c9d9adb91ea1698f9c28616bb3f51070fa7ab724eda85cc573589031d3ee" + }, + { /* i=1327 cDividendBits=1809 cDivisorBits=1331 */ + "01abeba90436a2f47e9a5721f532dcf5eb676036322be16b1967dcf755ff63ff4c2ee7966d737dde732184e272479a49c8314c65f5083b7bed59d01a3813cb8c5b58ae8bd439a064087f25954fafa38d28dda9571561402a99f776b53385de264fa31de872393bf9564650b58a25fd7e783a590ba75c02b72a72535a98763ce0158d7fbbc1efb94c908c6315cfc4c4f2c8605d2a2e2ce5247e8754f5321f7b21cc445135fed226620b2fe4007bbf20c31623f66f74c79ac10982d54bd85d7a3382aa0b6e2265cc8be0bf6582f33568d1cbaf0335fdd5dcf83916261c582c6433a044a9", + "bc570a7d4f132517e2f0135e54ee7b034268c99e0ea1c2fb6a732252543e44cd27189b1e3a2d7a23daddd52c8e03f3e0049a92585f3b1820cd094445459abf4c26fb719bc5eb6a30643ccff96dfc95b92d6a9334cfb8f6b2aa9f67c2c1683aab381e49e5082bd88ed0de0f62eb53974a72dd5268cb4182ee245d8541c5c9f04ab9904d9957aa02ffb7ba00cda53fb25c647e9d2d47d047b67001f4148c267b48db8b4f338ed4", + "0245a5fcf7e5d9c2756fc685afa392f1969f2fd4fbcf430eece1ba962d966c842e6448a88100e62028dcb53d3f7763a2d102105302be1f89e715888fed", + "0a29f663d54c2f285fe2517433d2c2fad5b8e9ee735dd09d31b32bfbe1b3d272e0c1cf6846b0a1687c1e5f8e72eb1c2daa2fb40ddf625f7734731e092cb78379452737dc6257256de4fafd4e24d8a93d9bbf48289c9d4253061e97040024601669b5b8ca0b60a4c716573d9690edc4f5b74ff7d9e69ff4ce0514d1d3fb66ea604abe06400ba3b2c79536ad65be2ccbc84c3d6e985f3d033aa3a6c88301f2851f77c6cf7c9e65" + }, + { /* i=1328 cDividendBits=2963 cDivisorBits=2429 */ + "071e5cf7c822ac133dc92ab5536a4ff050a5b7d6d93bb590fd46c86cc47326fa7d51b8c0725c024127b7ba254e774870c13c1d66914fe967a4e368267d598b6b6667ef9ce25ffb1740761203aa30a612f77ef66146efe69016888ad476ae842ccc85741227f0f0ad2e3917cc50dc222aa7b35aa52e233a1918aa3bb43b7e64846a3eb5a4d447114b190ee52fb79eee2afc14f675860221e63d02118d79020d9a9a25d64aa9347761d5f8d3ca59d9bd900653473d8ccd1b04a60e1e404dc7ca776f0aa4dccaaea17efc098fdb37d222f8af5dcaadbc6a9883a3c2a5dd39d4b3d53cdb99db83ce8d22ddd0715aed0d670b222f2021a476ed2883edec35383b0f22cac955609ea7a4e6b1851344c1e4ba8cd2e451de4cead42f77b0a12fc405edc30cc390773c941e8703d079312b0b115aa3f256eab098b3f385992fa642bac916e81bf0ebb5fa9ef96f2f5e11f83d692945b08e5e6a9ce4d95ec6c27498bdf54739e80f45f82c6eef02fa8b2acef0e1fa66c88b", + "13245e0ae89d186c3671291cba1fc607023de1b3d4cbd47b50415b0db1523b16d3004ad95232193c5ed4ab85bb9ba93ab0b1a3339cbb4ba72ee763888261b246cb42fb8e310e47e3b5b710cc00b2a6ab031d105b404f16305cec82252eb8aceab7ff81a343137f7f21d0e855c7a482704b1c675e8043a65cda0b9be25d334166ad7899bdcc34aa513f70632bb54c5ab9e2b4a84e7bc98508a20ac0de9b8b1ed016db73a50e45109245a2eb19000c3157d4b97d0e1781d7a4abf49a6ce13fcaccbc4a9466a300bd7d5782d13ca6e74ad1ee0e8ceae532736ec4015dbdc291cc830b34220e980124f92882a134c5837955514642416a97eda67067d5470fac8cdbc8c9bfad0c4c1ab042a52ba7dce5715822a1b1e8dd4a9c49b3d0802d475f66c3b2ab679768928047fc68275876d992ab", + "5f33b8e1797d09c2037ab5178bd1a26274c331d6229c72ace0dd27abcd483a6fb97a9fc93fade0b6cf8bedc19ebd6864f99eee80d6b07ed0a667e176ef034548262277", + "087da640cc1a6af50790aa18717e0e4e0be2260984a6abcb8d0491066d65bb56e2542d645b96a8a3c98d24c76ed70c92d7267b87de2b78982ff3fb9c6bd0b9ff6598bd08344c99ae0b1747d256999ea36a3096fa339710acd09724edcbee2ca6d933c49567823aa54b1434faf9f086aca84320fd2aa5b50ba473064aa32f265df850f2cdf37b61f45dfd0f5dc1982a273a478b9243cd6b60cf5e6b2847210231b4bab58e1bd5b1cd6a202245d5f1bac8172572886a81955a0fa8bd2ef059c71e820300e121b8568178343d74f1fb336b2116ff97d64f24529ccb62c52144f79fc0264b91188f80e08863e19a3e28d6d6c28f26b78711dae6544797f1290f45a3dfff94f948d9943bf4eb486a3b0aa230fdbef1b697f834b130efcfb3c105581453f1579ec72c6ec5f39a8856f866e50e" + }, + { /* i=1329 cDividendBits=3825 cDivisorBits=2757 */ + "0cf74b243da5efe76fd957f0a3c18ff22d806da27884e92ef0b964918187900e8c47b86566e655bac98a419839407358968bfe7d7ef72b3c3abecd0ca9cf29a999eddd6e5521d86d687aa5645312a14d14e196db890ec7c6ccb84e8b189e6409eb60020814f46a12b8b63f816cae61387edc460dafb7041c36231f8ecedf9ac663c3a020be9cf96aeccb8565928585757e514b1c842373fdf851d6f8ff1cb1cfb98a96192566a7b6bb390e5b2d600851e6e20fe737c81b524e682919bbc6e8fcf946fef602098980bd7fe56a77253d8b469148de056bcf2c22076ca980f17f98ad70018a048022855d804159491dcb06cb3be37f4c5b86d4f21169fc1e79ec451d072fe477aceac153dd4642207cd700804f3320b58902fe526c6184c072698618b79dec201bb64662ecfa0e88c623c68f8928c2af26470882ba98de56038dbcc0aa4e03cddbc92f0646da50ba812b2b4b8f03de276abb49c3362d9d351aafe7cb8231957c331bf8f0576e82ee8fed98f5236e3beb0e6b8653060d2a0228b49ebf20962b07be11fe94a0264c025452d7b235807faab448e9ee5ea46cfb7bfb11abe4a86bfb10ab6a4b3368075c8728d4ed41a0d29879f13721cdc8ce5db280ee2ca865cf53a193a0aa44dd796a478805c8a36d2300653ba9d98241f15059", + "036cc99eed92257b08be8b95d894d314958436330a3108e25268dc0da7cc9d9ef9611f6ab911ba0f0633691b93acefe0cad18678835de5123d61dde71aa8e0eac121a81e5eab60cb60655e79e70fb462604e075456505a6acecebe46ae2c88fd03e8dc36403eb2b374f1e2062910c1fa6f0ecedf15ce5b8c0f33c27d520bb362e0fdec858d30d3090ce78e9f5d8ae2f9e90494929296214e3ca3c47ed0d29c3ec5c7381f37b8df8387f5cc772a25b8f9396aff58496ca4ded7c206c21d225dca2bb4884b25bd09bc9a3c964947c31ea21545c2f2532db5381a1c64dd1f9d5d47325eaafe8886707311fe859857fd02f29607c86d237a685618bdcf1d8076bb0c8a9a33f94533061ec9c03bcd178a88d03868ba05ad2dcf3ca4af0892deb6c1fbfdc3e0822a65376bd7441c011990e8c0cee608e44ff8372a3c50d41df804053d6d74e51d1eef16779925cb561d7e9ae9b4a70bf2910c28f240", + "03c9268891e69e3dd2df131ee198fea8ebdaa54992fb68a17043abfe75d03a90cd50a2496877eb56f01035fcdae2160b163d923308f9c10cbdfdf7f16357bd939b70aeb155e4868db0e329e737a3531878cd1a83acedc4506bb2ecb63d9d072d2162e63b14cd4222b58121b5f1041a15d9a167690cabee9fbecaf7b1cfa7e6c7b943dd8dc9e7", + "023f2cbd19af5abf84e8b06a2dea29df4675b9ce732c545dd87424c2e14903ccb98d4c67ab26a7abdd9141039e5c1236d2b78f891fda482b7c070bc2cfbd6474cb008084f8580824dfe1438a29fdab2bc007bf9bc5fa21f1fcffe5e7a648cc7d8ce86b606d7bb382aed4e1b95f2cc064170106ffef6bfc5c28c4279f3cb23dbefa5b0e3573d5b27cd5685857f79939f47f247261586a04a535850ceeb286cfe57f4af750f3df7ac5f89c3e979e701bfd9e3cf7cc6c627bc3b0a86c9e9f3fb5558e4921e793602ac1ae532f17ca2ae7d79150cf24047581f27eafc15d9ac6f8a840d118c74ace543c42d076b1206163f2a23a205ecbc024160635fd96b851bb0a2ae168f67e947863b4217085b9a9917d4480cfeef77d7ec50b592d60547b3fc7e295ec66b982502b4120c23ea3643af5b8b4ca683c12fb9b8ac3f2828e0ec0829b532cb78d0e48686196a411545e35a244b78363a5758a7899" + }, + { /* i=1330 cDividendBits=993 cDivisorBits=669 */ + "78dc5bf05ae8b88c5eb388f9cce4e9315774f8bd3976f3de3ecdf86de1a74745d84791166a4418a85700d45053c704ff4120ef820061108b3fd52b91c40641315bc264b30971f7d5e7fee0919cf27e4decdca69ac6429f5ec39c170c5b0d71276a82616797724a50430f8aa683b22afd4e15b5646736b4e8462bc68c", + "03174826e1053eda256c3df41527db200442c12e589d9ff9be1c58e7d9376dd85a7c615c1e91d0bf46c4763306d812a8f9c63b813b5b43aa1135ceff33e53f4d97eb09b3691d4cf9ca6d70a6922eb58503ca1d0a", + "271a0038fb358000d8991eb10ed2e4be94103cbe8826375bd110a30acea1d944903a4fe13798e1e6d6", + "023cec0be1ed74a19966645da3128b62b1d229da8d2196c86e800f4b90559aa96cbce089ff52bcf12d1a8e2c5b4998530e21802c885a8a0aa4cdee5afba261802d2da5c5f580b0f884d5d0800ae519480f568430" + }, + { /* i=1331 cDividendBits=426 cDivisorBits=8 */ + "023fa1697db99b9e8b65822ad0c024ed6d15623538b29b1e48b3f433702d0507b06da6ad1558cd21f252327dfbfa39047bace26d770c", + "69", + "057b712834f7bace20a977dfdad207232c16e0cfc72fcd16a2a0cd4a36111d5493547b8d9ce24226e1166c79ddcfc7f76cec36ae3d", + "07" + }, + { /* i=1332 cDividendBits=771 cDivisorBits=719 */ + "031dc7f17b1687e07c7317c9a10e1aecf51d859c09fa4ff84a9e94f358e574428ef818f95ea6f2431c2a865cda5961f5fdef7108b9925871b505b0b42fdce86ad41696a0773e7588954523fc10a1ade97190e9cbfa120bb6974301df2653c21252", + "5db8743484cd5d53c8d059a5e8ec859bc7e47eb0014e005bf15eb6a67c1f9b4cd1a97f048e30c9e0007d5b19b77d8c23758304fe21c143d48f987a1e64573a5caea5aab8b9fa567ee8ca1955cb666edbe64e9ab4222f80908b6d", + "088328c373d3e5", + "0c7e64f32fc96a41508b8a5682115174b92c93e968a69c12ff2566c926428087fd84916592d04e0f65037949e481851739f7dc988e449213254e4707c2a5fc497eb056002e48ec82b4b2bf6513afe83d89147416b886869382d1" + }, + { /* i=1333 cDividendBits=3590 cDivisorBits=3217 */ + "27779aa3b0ace404cfc28d81e0e2a271a93bb35d0cf1b1d8b8d3bcc2b487ea6c35d2b4e446df0cda739213b12f3fea6fe9405073985d7f5a50156c60761b5d48b1fee6424fee5086d3f8453283ba4a2cd2b65c032a65d38270af816aa63d6c75e60792588bab2bb0acdc5f41e3359e32ad966e96d34e1530684ae8fbc92732f5bab2090ae1a4cc85e8d82f0c54af37a48e909138d16fb3ae6a9c81cb516e1d2040e874b4b8c82389fea6ec4ba5fd9788e761dbf7ab730a68c5bbcc8e61b369ab2c68d7c1f1b337edbf08bbf25892980e7fc77b38c3c745c6c585b912fe37a2835cb71a4139147cb5503a8a0a02a16b3aab136278c791aecda975cf17060364309d0b0dd0067eee1067aa4db7d87a8899154c02eca845d37f1c99e90276cdbeede78d7b4e7aaff279eafea58b0499f87279d52b06f981960edc82f5b5758e19c34df0e64516d10593f38e3e5113e494d36a7eb4149ba2ffda05d8c70a5b229036ee83834af68f7c781b25401f6066afaddea08038728d95c2267f5af8968bce9a0db3ab84da15628c8d801c3c30f89ae8c9aa22fca862ba32f6779fc423a7c36b50a0abe32c92cd0a1ad865920015e669647aa511fb8d8f6d15df7a14772c0b8156", + "010b7757eab0ceb8ac6c8de6fcaf5c01ee4e8ec32432156e400a3d7e7bab5f53d14aae9a6f32a8c0ca9ef9e6db76e77c0664831e5eee35cad77b1a76b0920c3d5e99896e75f956a7ca78a5278aeb84a97a127aa931dad5c7665fdc2fb20ea8d1fe1f01ca6bb1e1773654230c709a1f0698a723d7631c3cdb65b398176ae07ccec17000cc4b231c537e6ebc65eefe85201c66e5719a6589a17d692d01d712945a785bd69c7d468557abfdffef09980c475b8c9439dcc29fb64135f24979b6e189eb1c66fb2d543c446aa20c15baadb7d45ff523ebf38178262a3e17ff31f2ad264b65efd2393dd97b6efcbcffccaa2ae58c370f626da25d19b1dc1aa2d89b98529b452130b9c03f38bd68dad2658256072c473f19fe3ed5cc5b9e6de141e02c73210a2c63848e80f35eb85931fb58b8ce6409b9035cbad66f3a6b20eb556dec95d36a75f9934672fbb2d1a079d0293988813970cbc7bdeecf077f4159dffdfb8e291fb9eb777c3903225cc9c3ab07e0d77c08cd7013a91521b4f21072e2b1bee097f50b9734abb3fbab8370be92ade765ba3ae5", + "25c67749066a87c5d8b12b577012145cb4e3c93a3ea27d9940cff1d37337a6566e78708c51dedaa6a1747034f1ecfe", + "210524d54ed0494d8942a0638ddc21218d43c7aa9ee983acbfc322062f32490e9f8ba115bad48d7adcf97d63413c2d6eb163728ea4a244e441db72e164c899fe411355b09ed4daebb113ea982d7342d35c0affd7743a6ba1cf80fc8df42409378ff7067b5a25b6f46397cea671b9cea75540a2f55e5123cb8dc8b323a22ddf11be825daf9e34415b2863d42adab1ffc062b1ad92cf896454581173e6371e7c58762be105d2b6f2137359068bf50636d9518966eae2a982e580593cd4e363c7bb2e14596a45aae729d2270a621011aa1efbdd8e75005e645d9beac477adef3ce636310a560a9234eac779bc4b98062194c7f0fc99e462d6753b863c35e5f14434a6238306156b8fafb7cef786cdf8e2027e7b7e0ae55e66ab36f6b02991c0b9c7f2a2979315d0e2fc53deac74cb9118185637e9fafa6e374a9553d764b40a5b0a09107c4a3f3ae82b272dd3d0796e3397fa54948a3b41818b5d6a76daef107ecf59e21fa2d13f608a217e00235627624c160ca6f715461c09aa8c1c8ab83d58ddf528036b91f4d8c9777a6df116a09964f620" + }, + { /* i=1334 cDividendBits=927 cDivisorBits=81 */ + "42c6ae046a9d8d6736874146f527e63dba570901e5a9d6efb904c9169e8ff9b4ebb244c01b77dfaf1c1a440efe3c37a78a49b42400106be66ae7ea6cfb42d7453e6d31f4d723aa5195b66c61756c4310cd0c887e0e19baab5a54981d10cfc2b0e38393b3bf8adeb509d46c454e39830eb778c97f", + "0116e1b6303e069e5e39ba", + "3d4c186a2ecae84f5ec4d7da4ee0448e559b8a1ab298ea0c2387308257f509139ebf1813db70c64070789fb04cbd43423794ba7330f950ae0a398a8ffc3e25d740519491eedb2c7b1819f5f23bcc512fd645f95577d812933dd07b724b0c80ba88a00211738cc2ffaeb2", + "0106b8d11a9b7e1a723a2b" + }, + { /* i=1335 cDividendBits=2237 cDivisorBits=1145 */ + "170bfa543aad97c117b967fc114cd4fde74eb1a9e498168dc3b51476f4d3e1ea175b15e6fdb681ffaa25af2a54d727576b442de309bfb8f1520b4bdc74c726a835be44b2237553e302e83d5763185a549352e5782723f858b23d2dd2f7715454b0de72879617b4585dd89ccf2bd99d2f7f8a26168a192d865a237196d41461b4b72a092f5e1f820f467881ddc173a6ff56fa88c10da9bb173b7a227c660264fa827b59fdd2f4047cf067b98b01df1e92be10afa5deb6c09acd268d3fff3eadb1dff733dc44752797d29ba420ff477582abee628ba6118e2fa2b5290e3223061042c30ebd4e1d623429c846bf0dcaf33309cc1c442a95f3d22996d326675e628bd3d92300dec4a5df36bcb115fbb1ba505a17a5dce6e20f9d", + "01aa83e63ef4c4eccd3472ad9b5bf160d8535edfad8b931c39d73763a7f0baaa9999a5d9f367b23e76ae8d9a0051baab0224b72eb4e32eb6e2104ee3d389e9db3754436ddcdff3999a91593eb6e1ef1bd085d079df53f5d0c630c21abe50499932185c021dd1328fdf3c62a56ed09a26ac96473c7a6d547335979417fef860533a307339afb9dabd0934bedb58841fad", + "0dd53e5b8ac7b768e1a0f6b4523e28afda44a1e5020939d4ec9cfabc876cf9e9d00d31c4fbe88e4f3e1063994e8b8eea6583823a3c22609cd3a1ede1d94620b26f8ff9cb99a7123e5129aba5c40a6c5d00e8a8de31513fcfb94ccf4f2b241bad91ab8492e85d37da040c0dc4c46fdb3df04a2fe91884db8f68a7ac185c07307650d74d29e2815ce0bf", + "0169f4e04eebd2f71e09f7e2109d80b728a3c00d22dc19a84b2967c99c51edc81304f7a619075e681ba8b2a4ea78f84aa197b88dd8da68f37e7bec01a85a6b259036d23024a9ea552439486d555990bff63603e5c0c77339ba054a38da06317574660975f7d9fb5f7c711772125d8b0e6fb5953703b7cff0a6fb69561dd9bf712b196f99f54962de168f4396b16b0d8a" + }, + { /* i=1336 cDividendBits=3155 cDivisorBits=1360 */ + "0354e4701aed882daaac45a4594ca433184226ba082d36c4a3fd4d3e053743ed3b576e55c1620a13b020e86141da847695750d4e76fa5ecb7a26b763e91b979257ced8d2747e1b71c2657b798724f11f08c8f1b5a11f1040d494097d1ee803a0d85397ed149bdfa4146e09b1cdfb062d99028260ba8472dca06647cfaa94148876e4f1bf863af05ee86d2882558a49564301202743d8821cdca0cae3101008dffdfd77fe0b2dd9a1510282c029a52e7b18ca97cf8735defcfda141d90f4c1d6e5016636f248999db1c7fd6543fc775e61a7e74da2aaa1a96401e3edf53779a40139ad9d55fcbc9195b8af60506d0f4c9c787bda8892073a0708a2df22307d6ef0dea116f2787382cae6dd9fa122c3f5aea52a856a80d0d9ece6e00d62ce1eeb18be4cbb4eae98be00e6cca5541c117ea08d08a1b359f5e0b579131329a4276acaabbc07f8179f33d63ee317e7ce858b9fb8da4d977ea7d3c1af4032f744ee228000fa32b9e6a9dda7e7a37e86bd024c7baf22d12d6df14c122723be9b5a4d7beab7dc9ca55b26f54efa24c", + "ccd93f05375da218de05ac65004f4aef566d8f22839258c4552ea97f230597ba52fce14b27cde9b74190c0a5a8aced23eccd7c990590a479b8d5a805d464ff22ad912952890995753bda9b0a4699fb7b46c8c9173c29cac011daadf368b813b50f6771b89125497cbaf3efd58f8b64621b691278dec6ad642c99345aad39cf619137173872c03fa8e9da59da5dfbd073bde26e248b6e27c3acda8118337e86ad605875ffff8923c4c6f6", + "0429dcc5bf11aab8d5f805abd81150573f2c28e62057455b0c471c2142af19f564fb80c97ee25707b342b3a332b19479d3c4a8fd713d8ddfa97625e82edb936a395e1e2daf83be1e83554442d4e38b296d0cffd03285dc79b809ac08949bd8f5a86f3ded3e7554875d2a90cde63f5499710582fe1b6cf1eefbb835a2c98372755c70ec937576d3c961ac880c7b62ba43ce1bfe3371b68f382e316324f02564450ebeddf0e865bc71dedd975fcc1408376789d6449528412c821dcafb23bc477112f1dc7c8aed016c4e62ce1977c849a19a64809cdd9fdd06f7f05430cd4bae8c74", + "4bdd9c882ddf906915ccada6576f8a8305d8db383a67821cdfc8cbed4fb35d267a2570d1598030cc1e4c4854002244e0d5038c2d38cfd236320e39a07755a4118d4dfcf626500e3b72e6ded6a7c155ff166d4c7df0efd892945e9bd21a60d854bfae953936be56395a5dd2faedd20e7ffecef9d03efd744493a6fd75034574ec1151aa6da2023730892f3cd9739f427bc89f20ee93a746b0e33338ddcd4aec63f757034c7fb435c2f2d4" + }, + { /* i=1337 cDividendBits=3188 cDivisorBits=1050 */ + "04a2143f02dd6339e806454b66c56aafdaa7f370b0d5cbe1c0ac2498c6ad8f696f7b2519a184e18db54e5b438264fdae16947590c0fdfb39e1567427e4be59a1dd94db6ae8979da07c05ebb96ddbf9c2aa90d6840b8c680f77b7add2f1a1e468772148a8bd2acb6d7a1e2c55d432fb1e083c612c54f6af3b5658d53da165af71abb1bfeef478ebc483da19bb1db87db6fbb9cf3973f3f58392827b0df6b061518ac98403fa464a3a454a6a83b5e94141c0d05d4e02fe93c2e8d6ccff9de1c13e87a989c54402d393f890b3e990756943d11e26594935c7a870b0a5712485c3b4edf8628af5d165aa5f4f414147a8a3d081caf9a2762f534c3589b31b50815c9070a6087466d692d89256401707cb5179f6fdff5e01c88794278fdbc014db19eade084083f9eb986a4fa4f083304c2631c0fa037618fb68eb04b90595e35b33b69e5cc42c40e95ffbde1a0d71556aca34ba1de3db2315e72b0d6e58df861c7e6a026e3c7e50020fa1db4b7d36e3f534f057991209c6b1798cad7ee6ef9ff3b8aa8f1bfdb905571f8a1c044da915ac76", + "03a0d0fce4f120bbcae52ebdda6ce6d27782bcad304dfddb5e031f2bc6bf19c40f4ccf276f6af54933e6598fa8968cbabe5ac8d710932fe972dec471a2f216b98e47857b68d7a7672794ad6c25268bad5837718270c54b5fa373b7393aadfe31db6e535ee297263e6f58409446149bb3c5f8540c4c511a16bff9dd5023d8bd4b7d6258d0", + "0146e81a5758c9bfc59f168f3bd5fb75b3f582d2887284b0455472dad013e9581b596845b601052008da1d32b9b0c66577aa23b0da600bef1ac6acccb0e52ba97f517f2555977a681ccf5b44090ba12c8376e73b20640b568119079e5b0dd0717cc95f25148fb346bdc51a2737e7a9bb75502d72368e73503acf0af5df4b87b0c45e4aecdec8b4df569ba18eca35dea0b8b53b7cd907df2a738eef2476ae45073f679d24627d3470b78342c866487f96353bad590fd1a5df276a27c4a6ac3e6f7a08c309e1fb346f855a5454e8c6eb7431f950212ae72a5cfff07c010d89fd50db3d4cf648e59a5076ecf973d4423edced6271814fcefc0d14fc44341e8b2743e6d35de1698f0d0e14d856d7", + "038a881d948161cad0a17ed2c03c34bc389f90b0f273e20fb02b5f4ff43a36fc73a3b0a999574163748c7fd330bb882cb39e528a9fd0750fd08c4cb74f2eaf3a7c6ddcc9d40de0a8756e2d6ad852bc61ca051f8a078f0b47c449cbf10dacfbe8bb3a7857c6149b9518cab699a7e00200f8755ddd5fc7882de33530713becc87d222735c6" + }, + { /* i=1338 cDividendBits=1745 cDivisorBits=1461 */ + "0133a1c277828747302b4613c09b84797b3223447903cd31658f0a7d1dd6565325c286fd750137c7008a547444affdd74b55eb5082c28e58f3c53090dac3393ac91a8a929d330e39a9211a039195e880cab9205079f3bcde25470fc26e8e602b5bbdc41df2f9a4dd23ec1ea55be8ea98162f93f793f06b3b14d5000e420afbb42b3e5e80dbd311bed6ace57db8a87d5784b30afb65fb12881267bc1b541469505b1f90f026d92982f8092eec0d154424f1e933983e000430163d84746187ba05705a5e1c7a69b5fa783c4e87e739f7438c75182d19cf9d1100e2ab", + "1f69f4a591c293d6c3516a12a9fdf8b9156cc6c9ce4feeb4146228ffa314293898a5a3d980a6ed6efdd75aad72ee568808b14c8eaadee5fb09f9e93ea89c2ab35fa68932a719b90b18081b195dd7b023fedd0fc2959c10848071d1931587994f13eeec6370f2c22eaca73e57af68dfa3d24236cfc59df817fb1bac57cc23beffa5a42f03dd733af2322b498b319d0f5d152ac66c168464db735c6af2bf3f8e9ff81d525c67b6924ec8ef228484ddef9f3f3e07f110d02e", + "09caf8fc4cec51eaa255b15ae272d67c7a6d08bb9607db3c29b953d02b81d3a77285adb0", + "17be3b63b10dd04c729303a432f891b85fdfb006b98ede3eeb8fcfe55ce2e7700119c9e9aebfbbbab1a5e0836efb2e7643b32b78235b653b671df53dda16a98a7fa2bb156236a898de2dac72d5773b6a9570e4825119a693ae33b27abde7633bc3a0bd22c5d447ced24f1e816d487ab3b3efe2aec68e91ad3abf5ca307f06e73cb12cae86f5595afe33199c7dea2c74653936eb75f31d3d0c580a4cfb05211e32dcfa2968e638967fc5014a18aad92727e59cc54dcad0b" + }, + { /* i=1339 cDividendBits=2607 cDivisorBits=717 */ + "2316778f60a523807e8a0c77215587b7074a2d9522837fcf30966ed44e6272eeb70fc11425d7ab9cce24ae2e8f9c1934546662cc65b654dadb8d29306201ac48e980e49ff9334cbdcbd04ac927f47b49dc0323aa5a32a61093c9f342bc3ab78e68756f515d6fcf832478ea84900ce8bbf4aa4c15db3580a841c870cfb67a4b83ecd74647589488517a5931a72d6c3c819b22e0bd36fe8f48cd9611e02fce0d306398d6cca872537f1577840152e2c641bce6a02e796aff8c6fa1a3732751a574f5144ea5c91e78c5849865a3420dd53a699763c4eef235f8e7cd13e7e8aaa80a63808a909594486a8001701d9d8c199ab6f660ef69ecc190e2bc230a4aa5f3c888aef2bbf01c25eab545129f422cdadfc933e4444d01bc7b7e97838bcd3aa39a319f5074a16c162e86ac9342414ea9210c96c36d88259d994de7a859062ee92da6c28fd44800", + "1b62122cfefb0ab52e67ef26a79cd35459be095a18fd924334cd6de523bc62ad948a8d6ba79009d63e36a874744bf15cc42f3e923c7c89b125a4e9475f684b4b277e86ce6f14cf32ea995433ae4cd6ed86767aa532ba1d549d59", + "0148079b1aa5fe790749bdd15e362011fe25932defba7b767f2aeabca6ffa798fb1c18fe69375fc57ec5867666bfcb40c08edacd8badab83456a06282dd3ef0a5add89f0e005c1230aacdae5e9e53becd4084cd94d62b8671962820bae4552e9e33d9857cb156c78ff2cb2303e66625e97d3867d5df507451cbd92130c3d4211efcf8ad13c7721c134b156c70d3a0bb692d39558df40d6e54b870c99cee17e8e42041cd83376a20bcc4fc0c7c90bc1f2b9d627fa05a60c8a44844c1726d8793b40ba2c33fb7e5212da1f03c6ed75dda50a71f17dac46d9664441dcf694de10181c6b19193a99290dcabe63a956", + "14555449078e008cb6d213c6acf922c6a336219596266f2283b0ebb6511c3463db5305e0c5c3c39f8a784db0fb0c467fbba58f5ffb740e72eacde85f3dfd0ca46e7f80fcb0a40600024cf607ad44b97383c81270ed24f21cab1a" + }, + { /* i=1340 cDividendBits=1216 cDivisorBits=146 */ + "9f0e5316508013f27b8e93ecb25fe4525ca3cce871e002ed4578a586fc2e1173cfcde2d7a47ab8e051b427cc23b912bc3012add3e39ae5a3abeee63cc7e17a6f9ea8897c732dc161f0c7e5724b95a9828b9a3391731cf5098bd4a60a2d8e227c12236b846fc53baf1941a9a0a82adc496b9e33ef6292cafa1f9ef2db9d8947c75ffef425d668b3edc97f5370418892ec46b31d120503fcb9", + "0293efaaece70f311cbde5a096aa8d7e65d204", + "3db34d1c08367c41856b86a0c2590637e5361b956d9f733de803b2c019dd49ab03df6b597ddb2d94286859e0e8e383fcf9a0747f05164b455c71b6a7516fd38f099d00265be71f373c5748c41aafe890fb7fb3e7655c73958e0c3408c911d462098b96048063adaf5dddb748e882476d566b909b542438cf9adca1916ac4cfa255c57bfe3fdf", + "0213eb5e96443a5046edc6e5bf73b38fab0f3d" + }, + { /* i=1341 cDividendBits=3058 cDivisorBits=395 */ + "0206bf929b532f6e73bac099b0a7ef6f8e16c6b9d048762ce8e1808b3b48b4838ea965b41acab9451f22f7a782799e7efcd4d234320e2ded1e86b2894c3639012b1f2db6f141cd8e88542da9a1bb7e207a989d3ebc0a138d51dec2cbdf70cb008ce15b61484ba062e65641fa93c788c036d3a48fd78644272b3fd56190363aedc84d184842e82a773c9ca02be6cea1719eb6c47a20f52d610509b3aecfc95f70b8a5461c0d232ec8e24b3fa9e091eb9ab29f1eed8908de6651bcbcf3f4aafb39108fc76cf52359ad3a5f940d5f6842ac9a95a232d1c0197fd4193de9900edf48f21bdb94f7819a72bc7f935b2d78bc1b27c1cedf1c3fe5996aacaf3e2b73b25072e9282af12d32ca624d96fa7deef375b60fd76f1d3c6b038ed3d23e86b2686a1d96d7459829a98d4e135e10be34da56f8d377883893851a3eccf6a8c8b163c1e5f882bffad918c97dbfdc5e15ef98ee4d47d2d57f7bb66eb01691d1e971638fc7e6c4ccf43a2c8e542b438b2960c293c1f810ab50d679193173148d9a135d", + "0309f9ff6d3026e4c9f576cd39fc0b8eee8642e9520c5ac95f5d17f8fb4581aa13362072e88cf6c3d2b05803ce70383d4f5a", + "aab2dcd9f5c3a1c9633b2567bbcc0c226d88458189e6e2b30819d4efbc281435e708216ae640a3d75cb6daf322f09be0e77d790193440eb220c9e3750dd8882e9f2984b9406695365395410c585e2d898d7ff453f195fde50ff791695c3d1c9692a61b43012e1a3500c0958e747faa78a034d102dd037dcd1403c7a065480c2733571ae6ed3815fa7cc2747d68607840b1b4b2976f105f894fdf7813209192819afaca4cb922caf7c62ab4667cb533277022d24200c714791da96b3d2e0e8a5eff1c23dbdc618f4dc706baa16200d4a441bfd9d88c4a6f01c007ba3aeed431b15ee0040cd7fa96f2bd7c307b420869526f055ef81c82c0e13d041ebb8120fb920f6440b5f1a778c4a4209927f5682ff85887d7bbdc5b1c519133a04924450b43ac0062cb0ca9b5a4a4933f7dcab6e193fdc391a60ac594cb460f412e0805d8b6aea89e5b3d521fa63b9bb960eb", + "011f41a133c65d2a8df158a9960abe0bc8c6b8f2910c96688c925d1ab6d5835eb5e28b0403eec21db33a97a773e219867bbf" + }, + { /* i=1342 cDividendBits=2448 cDivisorBits=954 */ + "93741c7d10b61d27e8a001698cb71a7678e40f353c0c7f980339d5909675c25663de1244c9767493c56185cec9547fe3c36a4398203f34e3000c551bd26f2428a7d0ea091ecf563df60020af54db89cd0fb20127fe9edd9e3ee66c58da0ca09fda40d9554a549d2030aea74a7077281ce56f3fb3586f433e4329ce6df4058e236099c603fb9346d33cfc805d01d0bbcc2d0b6ace80174679605828df66a46b00542df027812e3e4b5fdfe97c6f3fc18679159d1cd020c9435a3eebc78b3e7470e91d58a668be17bb3eb996fa301b2b7fb3f86deed7ede882805a384d6f806eba04c558c9e23d70cd8660c7684e5321854d8011e53602378faa64721e65f0ba20822b51bfd8c41f577a4947aa36e926c3a0c16d8dedbcdee849150b1fb32cb9148b08ae55e6bc09f25d7803f0421dc3ae526b", + "fc93098207aa1857207c9670ff396626efb4e7616ac2228dd4ed197e97c27f7aae40c7ad36038b8b2cad2ada052832180157eeb6dbc8e3780022e43b53a4cb1fa8a78126e2cb3426edcfef0a85a7996f7e7e839fb666aeb787b68929a208a279b86a1f53a9bf0af62f9c9e565775f6753c7d1395cc52f6", + "9574159e213efe9a99f47a9d18119970e9d5eb20da7133dd062e948fe67fe85052b96d6a22d283f7553304f5f7bf5cac4d5143da310f153a65a87ce0e4eb0c00687aa75268755c3ba836aa25a1cf1c0653dab591ec0b9998e7af79f5b2992108b801cfa8d3c84e62b0481f4bd0080730c1f300eab09cba9a5daf04ffe28cc118d1a308d2a73c3f359cf5eb6302a604e5c342e8a2cf343fece2f96b1a1cb6e5f9051da756f0e45ee3bea706674b2aafb3a5b2340e51532c0efd0684", + "d5453dd8b2a3fb56f03eaa3a4d2703c54e6fedd7381468c1ce02f45eec01c520347f6d4fa1c44cc91bbb7590bf3a072fe96e6628e983dd99a4d278713cbe8cb6851c45a59201e143bcd50fb20dcc1e9a4a2cc10bfcfcc723d2fbd9fccaf5143e8b4e006f061aabcc4439d5070646eec56b12c24b43c793" + }, + { /* i=1343 cDividendBits=2546 cDivisorBits=513 */ + "ebf3390078fb2e064bbff4e7d8110b3db663568f0976c1e1014f4d6ee029dbbe01879c19e7a7324f761b3fa8900cd0593e9ac3d28daed7df2ad5bba53f0f3fbab116959135627768de52d6c3b9f0be58e68bb3443ea364d235f8c2f5779faeea1d2aec8c2f40d65f102fbded83364b385f245e93229ba83c03d2b5a4285b6da512a10f03dd6123032038a07832e7083a0b2b299e307a45e79521da240ae1bf69478c366faa91accacafcdd13b79ec310c078abdacfd6a18d724064b2bfd7a552f094fd6be72ee57c94f7820dc538e04b8a20085f2aa5a13137b2ce3adec6fb06d26e1c3383df244fd324bc42a59d6e5d548bba2abe94621928dac782e72cc19c8889cc5b677380c0af7febae1f68515cf01dba405d0fa1e4e67b6dcfacee26a31c377c1ce05be22d5656b456541bc59900902f9ba57d581e5ff395a5ddaa", + "7086c97d827c7b0356204c7ae1a1b2e11af97fc2f7014b69d2bace4e636446d45d4e4df8aebe48384bdad7b6b8dbc6c39a3c3939377e2b7ba86aff804c63420f", + "0218ca812ab87e0d0d638424f25cd814655ef1a05dd2013c5eb092bc568f863bf6895a3f38c89403aeba4d3bcbc24e2e1ab05ba73977dc33a352b23b9299c45bf9af3e9ec6c23fb271483958977e604310eba3c3600e8dbc408b6b5ce2d9fbd7e9dc2da824a91c8612eb150d2ecc7a6368fd63f891c09ec2a466d1ff795fef99b299cc5b5abdf4bb7aac7974ad7bdf8d787e79d7fac1191570c9da70b680d45292c4a80fc65a4a49cd5b21a3132307494ecc049b7587df7e4c7aad847675fc117f332106db09a332e4d04bccbc3708363f0edca6a05442ea595542dd78bfc204da3aff5cb783be9fd7369424e8ccebb3f521e5cfbaba6cc9145372be461423", + "1bee3537044af115f6ee6f43204068a2f277eee6ee18be508835bb42dc065056ce734bcad1d21abd22cc705499594d78c1767a6b38e588b0bcf6959830d0a99d" + }, + { /* i=1344 cDividendBits=3865 cDivisorBits=1117 */ + "fce4148c4334d557b38c4e44736dd1448a6a0bde6cab72a1a7f01efde5103e162641cb85a366f35c254a425dc29aee73ffe25651c3e10c9919d34920b4b526dde8e1eccc0083a9d5c9ed9e5d6295033bf4b590ac6015055f8499988c0114a0edad6a923921fa991c7066d8d890fc9d1d55a6b886befa950dc6293de2a93162ccd442e579aa73ca1472d566e7c6dc3190ce80429b0d9c58358851f1a4ea5000c4ab40b44117ad888011210e02c13ca4ab3cc192c6859b2b222cd816dd84f8a3c677f36ca80e1b309d523af9ae07f26d430f65567081010ab7806c9582ffe9c95d7247b1dfac1134fb2857f43a37814b1b2a5eba2a78dc3cfff0fbc811e661bfa43c4536f6c6145b4df03991a28402dd5b237d10cb7e481436e282e3d92cded2a2578bb664fa2c285f92df3e783221f667f909c3692af41257ca1ed20daf82555e72357441e5ab2507a661ceff03bea6c848a3ca936b101860f2c8651f74a503f0a69b65e9d52195f48d9445d5ed3fb1d931c77dbc3bdb643b6b734154881c5903f9c4eeadf093a435cc6c4ea16caa8d60a1e4878333a5a9d0f3b8e63941556d86fec316b6d161cec4f107ad91600909462d22ee60fa20fdc0f769c0eb6108c920b7901a7c1fc85e75cc733fb70a419f7e475c0f635e06e8c07295c252c48024d81bbbbc", + "1b2babc2701bd1862eb0a39bd54754f760a37fcde0c001ae39e71f59aeba7d211042eb6b59e0ac0b2a3946f2479fd7d659680c0161d158745944c8354c31f6b79e7a7f462756e3d647a6325fdca5f37b8772d89415c7295289c9e562411e63358775a6bddf6bf3abbf41ea8c351830b3a4d15e583bcdb6ba9cbc3f60cdacf808076d3791a012b09c7b904433", + "094eb9f346af0f01344c26f51b617b6a03aa67100c53e12950b51904386e84efae5d24b24b59e5a114f4a89823e1d21cf118f4218ce051dd89d93aac7b7c6490f01af46c76b59c062e09426e69d689171b77a70420fef3e2b6fbdf1922d99ffe402ae0e7cd3373ca030c07710d4400b61dba76c11769a219d2089eda02934024ceb4b6c2d46ca8e3bf0637a1b6dd291803d939fd46e634fd3e20eb8d6e8f131af4b19d4f47fe66b8e6053a069baea905cbca6ff6685431532027d28c69b6483266390564cf8a3f9a429734483573175adc2a8d9ec273b455951eb30cf5cbbb7a9352843ec88a80fc6f0aba943c8c1315fc60f3f1418e63d75d6845756034129b238781aa39dcb1f834dba33b8721cc9263199517d2749b799f9530c4ca2c17ca7f9e9f08d18dd72c0ad26b85037e40e5c0e35d460bb7a99a9a1c2ee2d1495a87c48d4814778f60ceb2aa4121067b71949325fecce15098da", + "136cbaf68c472bee2f7837e38675479da7720696be6ae9a0cb7c78399dca860d49d7b867bea848dccfec3690b70c729983b10cd1004390cadf37f38811b90521453443086f31b9ed5a9e88abc0bbadaa2dd1f3d9056db37f7164f9bb33f8d1dd66df7d119fea51ebadbf4f7830cc7b0ed03ff1d998f1c4a1fa5897396b036e36a98bb6d9717cd5dbd3d3604e" + }, + { /* i=1345 cDividendBits=979 cDivisorBits=208 */ + "04b0e0a499c820283800e3d15f2b6f75a2100399a350573b6bc7dcf347dabf2a8106b5b8ccb1dff99d8d6b94c7efc41b4bcebc5f546004010943f1f47db446b2f74fbc2b5facc26a12f56145e9bc0d3c2ac19c843fec5213e7b078cc99124425af504f0bc9cf9722f02216c03dd8de9b5b1981463a9e667b86e6fd", + "072c92b4919031611796fc57c972d81010162f4980b64a9bac06", + "a763ef3422e6fc8c76b79e7798f7f961a7d941aae6760ee0091e73e1e3597187f32903c155f0838c84083b58a157ea771417027f42829400c94d31b0895b06627c6a0b90e89a803a7e08032932a7f001bdf9bc0d77c30e1ca6bcbb8f39ed6548ab", + "04a5257b6946fcdab41b3c120ce40545e707d6ce2aa470cb4efb" + }, + { /* i=1346 cDividendBits=265 cDivisorBits=98 */ + "6c5ffc263ff3318d01199c3c14f8064bcfe2d803a8c92ad2bbf73829857d53e907", + "015adea71e22fd171f98f8dca2", + "4ffbdf163f64a6de2c6c38330fd5730047e80b21b3", + "864cd3b2eb7da02327eac1c1" + }, + { /* i=1347 cDividendBits=1481 cDivisorBits=1465 */ + "0aa7d345f3d2c01e4d21f8327bd3303e070063a19fc61064d95167c4273902a417557b8ee3f425f355bf521efe8a82630680c466c15dcb8e878434b175f9dd08bb21b52a0b87764d88194e009e4f372b6216d9108670d5ef5c13948ce0fad3b47b012354c34471b05c3b4b31749c5abb6fe2a34106cb9c5e68d62bcf55742399f88aefe6a9bf8f3a5b6b3aae7b270c30e27ba5d4fb78d798cfa719d5d40281e2fc376b925fde95b75377ffa6c77bb91e149deb8a103300ec12", + "8302c917c08a87de6e6cfd493b15eabf410d22eace388334783cad86bdc166d1835d658cb8fe9c59723581cdcd8079beca60307d3a001a8bf09e06dfa252d51f9a6fd22a02f169a4c5e2f731cad91d3dafe6a88a41456b100a534e85f3f3ee3045fe123083877d2ba7967b73404b5e1d2abaae9f6e72527d48717eeda35934358cad233f720fd530d52a07b01410dc30a4f784d5fd89b6ea530a94a44cd94ead9b9253d804c9ee6c7928ef85162ab0ce842eb780a401cd", + "14d2", + "2347234bfbdd780adf00fd2301ec85080020a30c7bc91ee2086f47de3df561346d02981080e0177374166fa9e57c402f3db5321c3565d1ec7a8659d83c6f6f2449045cd63003ff793e81f39ddac893be88af77eddea0481c9a140009a6ff51efdf7e0d31f6c44554101b2f0bb98df49f007953621424f467e0caa5c12c58f5a0031ecacac195a8b5159a6b25452875b0fc694c201a5674f2278b0f3a7d7ae1a65efcb84ae1714505695be6943448e8e1d6e17bdc536de8" + }, + { /* i=1348 cDividendBits=1613 cDivisorBits=829 */ + "084fa809ced0933dac2fd421f64ef6cf3cd60a1fbe79d2425adea4e80ae83897e64c1daf588f3f10b7fda70cec46ba30e19c1e533af3a0628f7bde089eb284af253cb854df59c6cf63f515cc98ed798fe0aa276690c19d619d2944c66f4e12cfc07ac4c0c7065da7c6e18e8a67a723e8def5737273fab2bbb3b3bce7f52a84acecdbff941a60a0555bc1c8eacfdd247b6738cdf0da4a563b45becdbab593c8072fe6dd7de56677bc17eb394a60abfa417ffc4f45d78c3f6ac4bd2ba2b37279d4525392988919288a2de5", + "058d376d7fc52df4ae946aaf7635336214352efdd31e60819254d7fbbd4734694bd29ea5a06e71a6928f4ed4eaee4e33e316be193f0e4962b344407b9c1912229ff19fe687d0b95c3f3034707ddd105d86a5ef501bd8c025d9040a6c61b3f244a4514a12bfbeefbc", + "017f3fc915a65e27ec83058fe60747e6a64241441b866fea8734645b5d416dcee75ad782d19748c020e661a15563a9339fb057f8297232919a6ee5276fb7d44c62f30b6851f5b25044a7328ffe8e9ceb18271dc605d0c04b1a8b899350ff521210935c", + "0173ace9b7959444ae3f6f24dd461c980ba2d87ff67b4142a954c1726667f8b63beb9b0b111ec5f1de8af9a7935e33fbef1638c65aef0acee4d6cd1d0f91ba51569aa7e2dd285d0caf698bf8e818d0fd362cfc22465c8af0cd542cbdd5f985136a7caf3f68831255" + }, + { /* i=1349 cDividendBits=2557 cDivisorBits=140 */ + "1ca36bb6e1e71419acc7e0ca7d36e7ea6e0c275feae2ff6b281eb4ec20fa9877d5bb5158c6e1195b95b47714d9084ff78b671f5ec555d53d994951d09d1d639bfdc79af9228824779b9ead6f9d139de8e684cd8120d64dae4dc8a6f4b56535486063378c7876ca0b3f6e6cde669217b696d3a260c288c01003146bff3d910c6069c6605dffed32c05b36c1f7a7176cc7c71c63d3def573f97219b44c3d2e86815b90d63eeeddd05f5470d7815bf9ad80f437758d70824ae26558d08d707087cf419f2711b95565d1bc9888bf08478734656137d05bfd43543f644796558bdafdcbc982f360b7e0b805cd0fd313ac6484b338a6f00d223943b33fb27f36023659476eb9c21b8556b6d7afddeff67c134e3a7afeb814f88333930ebbc7ec23b1939608951c29ecf26241f649fadf4aa1d3563fbebd003c3ecb022fdfab927fc6e7", + "07a3b04cc193fced87fd822e1933d4e3c94e", + "03bfaf2e50f94c35a7408ffd4c60bfa1a9c4f986b2f45f3e9163aa062b303ad519b3f675d03071ad120fe9cd48613809b8db88afc104794f3988226f89bf0f2987c773640546a1e3f3a621383ae673bcaf659945a53bdbfe92dbfd3a69f6956ed309b16549c4822b00f7ebf3744256fd649226300e2959ed6ff505482972f7e6fd0cf634c513e38985072c5d8d87385dfd1ba88c64bdf949a45ce53fd61885bd9a2717c426d96b02ab2711a11558e4f42daa3c36fa2aa228750de3336dc581fc1c1a9decc56de2ceea12c11a2796e813887df0eb3bbffd0db61bc3ab73cad503fdc1ed7e3182dab5e3ccf3cebaa6e54f5417f9709ac307daa8112c4adfdd32d7274a1f9f6d7459ce50640f57e8992fcf8408a4edb2920d736893c8c661faeba7902d29e3fc11c4f102ae95b04ab195", + "0139d4593c6a6cda30b5b6930bab5b30ae81" + }, + { /* i=1350 cDividendBits=3630 cDivisorBits=2418 */ + "26a4476d54a53a92e0f751686cb8ae69b1205c10305d0e6154f0b048d57558f6519b9e8e0d5687d01f04dfe0e007c372115020c4025e6d367706c89f24677dff40dc7cc31a655237e4734ebfbc6fba5f7e7213779645471a8bf5bd7c36377b6361e77cde51069639905038537d9718e115ee960449cbb24c87b19920b4662e79e01b605438c4c7f35b7f7c7b4dc71c28f4f5c205661eb9aa04793643b9c15b9b850c98ccef149bdea677a603c2196842ff0251bab7ffaab92610da0eaed5c6147831f47f910c1840be6387b564d596e7181d172f61fe1c7eca4cf4734239ed87ab695f9608cfa7a90475586ec217a24f849abd97e89813ae269040a0fd0b8af1593b460d6caa4c7d6095b75dd18531fcdbfec00bf1a627af0398724ebe9af1ad31fd3d8337e3c38f4fd4127ad3641d3bd09061eab98463caed0c5fa7ca9521de21636bfc28c02b96a19048ff64b53d7988f671621c874d448b2329ca1fba0a67e5103bff4223fd3073b1ea183046dfaa2a89ee1d45b1b1e290f1f3a7a58243797c878c7c768631c2ac6d07ec0bc9c0cfa441dff7a0cd7cf30802b8868af7268d6b54591443f433eab58b963d297c17850059234dea6090417d203fcfad7b81120a784168570a", + "a7b1c59124fc8fc30c96e6d6c05f02d1e77c6d561e2a2bbf5f362609c5530c2bdfbce904950532dfb0cd22deb2496748f26051018b2a0316a15fd4038f36350ed5f8876abf1e47f9570f145711eb91c99cc707848b951cb4412df1084cec53bad8d0dfbe77623bd7eb68d2af13bc612e603af0248ce7e1eb3664305bd470965739d9f581a11cf4324105c601ae68ae1eeea2ce1b525876cc602e8f1c40e1085678c746b842b446c15cd74a2403ac8eebc78ff6822a3946f535b795a9f7006ff464917fbdb1e55e96e2673219ab4e3c6114af706bd099d22b654614f432428c27624b193817a7b1a03af6f34ceabc7331b154e83011db6e2944d75ac9ba8d45e89223463aa25cb25fa91a51bf0ef46fca1e23030f766bac8106e3024ad052800f3e87bceb702ca31e1713f2ae8f1b", + "3afd6ad39040e962ca92b97630b078d5a54a1bc8b6ecd6d93bbf543d2296eb4e1e97456d654c2746a9743a91e039b6cb9e02eaec791f43e226334945ad483f5ab19b46ca5c0475a6053d3bc73ef2e445df6a4167983ac8955255c0ffa1dc41c1d66ee3b03399f1da8966a321b9fe67eb928a663cf1897e87943d80d76f1b8290293e34fc94591917d90c9403a59ecc37990a77df944e0b12", + "39ffda2897a4ddeca9f8c3d45d2a90c6221daa9563761eebf095d362084fb757105faa1bec4f376a283d54efb656d2d04a396196e21d4f5507616d0afa866a313d040ffc0a32ed2c538b20137229f1980a2a8ab87e264635b3e8abe38132db4e39cf27897155f04a8e7f2e1f9d4f6831dabb4d2f8cea88fbf2b28efa5505cc718bbe40c0d8006fdaff6022ed1989ee5f893271bd8b1b3b059c46cff4a41d505e5077e1ace642c3d200db6622c5da74b3dc756dc9ed803959ea134bfd0edc120f1ce50d95a8a17542e40fcc1019f5c3c5b0644ef75536d067b264928f61dcc10e4f2ee8d86bae088c60d585808484153afde3bf4b5d8302c6fb0b86f48072fc68779143e7e7a4197a62dc9bf8a1c8bfb385e1d7af7c7f38a60017ac52db83d4d4563dff92557de8f37e337ac21e24" + }, + { /* i=1351 cDividendBits=2881 cDivisorBits=1942 */ + "5d18aad1c2fcac79cbd788067a3a8e8b6744320efc9633ff310141181b1872663e28e5c3677f133e0b7a961b5668aa0928283547b93767de0196c5276981e74a25855b38abbea729ff2480edba14c0d56da6cef014b6d6b12068ea703a0467519480fd46101d28455fc3240276e2001a69c5e57e86aaf116d20452733e047db6492ab4658d07eaf0cc316dd5f4b7a9b084686f683959c245db707dc8aa72a8aee446e3db0e764543d2d05d4308cfa275be36fad68e13b07abeac8cba7c39060ba3f0ae166f398473466d3254df45479793886ffd9c779b45289ac95a09697b7b98e2cf40ef902d47e64808d53987176aa575962f3152a665e4a150472ec3bb29e60174bbd2ddde1dee69557ef35257f7847331aa6da2a07a92154f64ad713fa459bd32e19711078792b847871db9877237e577e465e6f3f86dff8f98793259f97e329c7cce98a56cd6c79379f79e4ce1890f51da35201b48a7dd0df892abecf5a54955caa404094b", + "1c3a583b5e79067cab2929249a16bc65721170902694f06b00191edaa79b5bf036b9ec07ff7836ecb26ca69f270716cace8d9d9d6040fc57fceef7017ecca5cd4767c45ba23ae70ea506d2c1f1816bf9870d4725397182827d482fb41f6220772437c04a06f3927c4466f3a271f47278dd18b919a29e016af989cf410458784ac5d52eecd906c080df0671320ffe5492cac1d3d853cc3a8a453385eb5f1f708d0d1e412ee5f2df3f69de2f80413304b8355a4c49e2235bc1b65751cb3df745faa1eb5c50ad9996d5ca3b6ce3ef20a7611bd0853662d5475f583a9c963a7b3370eea2d56b31dfa7a31784b294c6bbb5269e412d", + "034c4b624725d3db1c6884f78b8a49bf160cf07f68d3ac504e564495d9ce96d2fa7ce9edb1899e5582461b389f75da50866bd6e8afca0aa1ec044e335801afe3af6f7a66e1c2d258da21ab4b434756d2c56fc6483bee7b3aa88c5daf978c233acb300b99234e896a5cbac37bd266bc7eb0ace6a57c00", + "0399a8283751805341f4d06ae3f77afa497002724d6269b7a9d6a32cf2e53aa9ac53e72f46c9d3b53e09afde3395611bab9d7cb7b1e18e664e1468fa8a67af029f11e489b1036a4053077b925dc1f5a3de5b7b6af4cb124500c7932f3db060e25dd05870028164a3f084a29da14fc76ca821d9358793b918746170d72efe9577e9acd7f2f16837ad9d9153a918216c0b1b04192f5e9f0e0380ea7b21a883926b7aca6689eda0fad5917d9cd4d548d34a39b6f557ca7de12d86f31daece97ee2a973287662435a1d08269783f773f6299a8121c08eb7aac8052177c6a9481f4e4f05f380e1e7d6e67653837c6a0ca4b8c713d4b" + }, + { /* i=1352 cDividendBits=141 cDivisorBits=88 */ + "04902aa34cb586597f6445953e64df8aa3ff", + "bee33a0e5f2b2173ecdc0e", + "061ea1cd87e2a7", + "6976ee86dfbc4de460badd" + }, + { /* i=1353 cDividendBits=957 cDivisorBits=518 */ + "156bf77a6bf729521dc292438f1b343f26fa69071cd6257083b7e929f30289fd29fdc7ebc978c4fee4c97ca82eb1c32425bbfb3ef9171a12f147329a517efeab411af3da12be7f161b4922e549296f27ea69aa6c784bf992c1cc25b6c11160faaf077cb48bdc338235bb9eb96fc792177764eb571b5d46f7", + "3c6b9d5913145049cf7bf1dc8218bbfa5050919b53aea81196ab95a0e008417fba1dc459fdd31b78bd877b35e095c90ee64fdc733d2a8dc892cd41692dcb633e7d", + "5ac3776f2038cb0a313a362b28a64ceb211e16982167ddd6fae4972acf9794bbd870d2aaa1d86a775fff9193352d7f34e1dcfc6034a9cf", + "2307a1acc498f5a844cdd8037738b720034cfe0aa59f9436d671d567e16deb4277a1f97635dfa6c6622410c526b0a4836b2c50bbb4927f795cf83d2d6790793ae4" + }, + { /* i=1354 cDividendBits=2450 cDivisorBits=506 */ + "9e155ae0de42959982c118f926a077cdae48b580d30c00faa20a5f8180fe8a64d529d970b4a45a55f452ef05359e3b5da2ba5158f08ea87a6e249a080bd2de4e3b3bfb7b4f7629de615ef8c4ad6e598eeee998f26db6d9500dcc02c8359772b327cd60dcb4fc6d3963f64dbc2bc051e054d0e5aeb6c7b61231d2b7a2a65cf5ef2106ccb81a5c11252dc82ef703e9dc20ab43a12da0a0642e8ca886b0d152bf6640d30f052e05853b086090a6e22aefaa4df2cb851e231fa9ebc819287d0f423cf19de34c482a8cd7c020953439fde070f58ef633b9515862c18ecc65365c9cc29b7e19064fb1f3efbeb881bb5a708e363c0cd458f8ea8f336dd7a264b409abf1248e37621a7fc565fd475216ba173a05b7aeac161b6df75787d43d2aa73972e5965ee16da2b5a6faf170042e07bb0944a31c", + "9a7d8ec997b4181276c02ce99b5528c89383ff7a99a2423e4fa4a8dbb8fe77c629fbfd3148746352f1bcc42fe6d6e82242c3626ae203f48edcca4cfd06beff", + "0105f428d02b4a32c15aa2d93aa7dc09fdc1bff30e3bc765a171573bc6fc7cc2c91ce9a8f33718b3e3be4912d07d0a5fc193d779db7d289d8c67ee7394f1e3b0b5448b3b19e7ce40b4150c57f9c8d7b48534e2dbf9fc69ca5c0ee886babdb88fe7f54ae34a9f08349f9986c9bd8157e273ae1fe37957b92ba002b42f6f40104723f97de36327394b44de1950ebc1227acd936731c13ebb648545d9138ff4bb7fcfec6580236d671397f9c8d3ce6300d97b7b391f4e6e9e874da90ac8f13fa8a434190c26d506ae8af350702c64578e46da6136f2b03d6c6297774c412b235baf6e0cec73e8719e2b9ce9457e4a25568019aec242", + "28858d492945b16566e6427ff6dc1da5fd614681a4e242c2ea50a27c450d51f423d4b7cfb82da2774540cc4a05515b7ad02b389206a91cc085bb65f878275e" + }, + { /* i=1355 cDividendBits=914 cDivisorBits=61 */ + "01a7a9305a802a78f8469a6b913464da146c4cb3ccf4b5c331dddb7f422fe916f23c0cda47e0311e2bd03e63552b0d63a048432c85c25e4a736faee8e6bc89ff6aa3198cff2180d5ec792dcb210d9aa859b697a7e9a2e1aad9c8a2d661ee16b2b383ded2dd2942e16d123fca84507b5c7070d6", + "1aef2554e1ce7a26", + "0fbac0711360263f5e649dfa0e4ccd1ce8353a9da10e7f43e37d71c88034a90b03adf14d055f5e776179595a9cda861904a35796aa42b748d0cb42ec230b76b319e5da14889045fff0fa07f7eb23816c505f5b81978388effbcf5d2c69cc4c0c4f9eb00d691aebe1cc0001", + "0cf2c45fbe59f6b0" + }, + { /* i=1356 cDividendBits=1852 cDivisorBits=1359 */ + "05b91356c2cdab51548437fa15000ed22b837bc6506c8e14001f930c9e0deb42211711e58d1a633d2459caf23431b5fc20ce01bc0412ac75b7ac9b67ff7e29461ee95e7092e79f4e49916c068f951ce153a58cedb745942710dccc30db37e9f61cc8d80f1f18182ba01796095af1887c897f6f97c5e64c60ea8f1e89a34b02da3ee1c1bc781c7db507c28d96380a21f6856e62ea56210a2c5b8096c69d73136d466547a35f19dd8eda79a96feae4392ded13a51610d40961a842cdea87d6bcf5753bc062b0d6b7c3623af389a13dd97b0a917858242115f021c3cd77f09c3331d08ccd3fcce9dfde", + "2019a885f110802a604039416bfab50ca3831bf2110e59ba3701e8ef16bf26d12e4552793d5b4ffd1f5564543d112df23d89f1e595488fc49d3630a13106563612e857d9d254e5c9a3c03110fe1af46d2e4d5e3a918f4d5fc2486a6d6f4935104cf0d6f7f2efbb77a5c1bdb87d6a845cf282055f398db15bfc28def7b36903f87394234112040c978eb2d8c217f867d5808d2170101e3445a7e7291471c3b81a5e59121a6d31e0eda9a6", + "2da402384553d1b140b7874db1bbbc21c32405811362eb83f034107f12fa28b0d50f202beb469160b77fe515ce213d4fce55815dfa1497d7b3a454a3afd4", + "0a02941b983e6debdd2987d3d517794f7fa1cab9b786005075f5f011f39f9ca16ae7fc6e5ae0bc16766796971c80c4becf6feba6d6fbbc5acc2ea397cd10ffd39c00c90c28dad285e13994ae44adf97f76efa7c42fb097453cbe8833fb9d641a1da0178692d548f5e77f53d5ea822a25b838aa532a614f0228f140e0d593ef1376bc9fa5e978d054fa968b887af9a11674f5e9ee6c861552203077e0caf9023cb38a332b53d9946ee866" + }, + { /* i=1357 cDividendBits=1458 cDivisorBits=1386 */ + "5a54a3620255007e2b72e51f45cd50db4b804b5adfad95d599f6759525e21a85ae0f63d6b9d951ff10cd39426fbf46d63cabcb28041e3bfba55540f2a9a862f547015a6a25101a8cd09ade5920cb5548ea477b1e07a5ebf3e95a6c4604fd7fccbfc93a34edb8e5a966f1dd296c37f89d53063b53a3ff32da95143fa94963032beb8d518ced38671aff27eb124dd51a3365faacd6b1b0f4b3eaf8d93fc1149e08cd6d1183d7985bdb70c7fc28bd0fdca2bd1b98279ef4", + "030d2370d461ad29246d527a5509c273b8a9c0a245c41af1fdb2a70b5dfdd9c09f12d5c597743a07d322fad73091952392e1a8a4603b324d2ec4cda07b2ca18d807b95601756ec4b06acf522d6da1fd33aa3719d71bf23ae83685548deaf1547a48b420c593f8d6c124612ff70011f2da4e82fd31c09dee2215af3c21a42250174b7008c5e25329dfd31a0e151fc41b6123bcb3f564b0ec363fd833f90e7647ec571b61eb86de8a483e74a339808", + "1d9a904ac491a575c0", + "021a786753a4005bb8b60c956e3207c9e199197570102ad7eeb0205f430e4e5fa1b33a1814613c6b24159c907312913dbddb47d9717e83971177fdc0870b219677d479adcfa32117f89214636688a3dc8d4092f4b51ad5be75347400adc3ac3e738c103dcb9573c7e9a87f45bac18e87e295225a53e8ffcf25dad85ba7940a74eff1aec10f6c049f43481fd3fd378e7c1b06ef503a4c41875d16706bfb32dadadc83d28d36a51dea583cd7d1f0f4" + }, + { /* i=1358 cDividendBits=617 cDivisorBits=229 */ + "576d411c5cff09580778fe9cd56f4dd1c4e91cda5ef555fe5b2923efded3df623330c12222d4e30d2b67afb21adb95d0dc25a7a796eeadfcb87dd14a7e10c8feb61e55aba5141084882dc51c4d", + "024bc675760a682102e80ead0cc17670b1d6a45510865b04fd630b0e98", + "2613f22311a5ef1f8fafb5649c8761bc5ab409c529051c59c662f6bb79a0385b12b511e0e43b8a2d7711da0bd1e91e7249", + "9d1221dda713a46ae30cfeaa648088bd2adaedbb2bf5247ff54e42f5" + }, + { /* i=1359 cDividendBits=2206 cDivisorBits=1791 */ + "2a4b45b2b2550210a5b48ce084ad0f6e0f1e044180551c8ee6e36aeb70a01a1beed05f682ae7737cef6676e7e2728268f716d406b56db4e5d919f80f7d4ec94918a4ae1df5489bb8ca25c43624b343aac2997679a8ea5b92eea9f0ab36d9b45ae9ab68d65ee315a716b9d458f61d40668b27fab52f4b0c6e277fa2486cc7a98b1e33b0cc58ca8bd09782940bdd7e055356797fc4fbc891d6f0ae33bf6523d8527193acc4fcb079c446fdd3e7e6ce9fb221748524c7d2db951f9defac777d2fb16dcac6f61c3930485798595e7b382379d1c98e862751cd163fbfac77554c26e88abac95df16587b9daa261d157143705a146430856b6f84d15b9a25ed3f8f35de827e56d14f52b5817b1df684d7a9763672fd338", + "6f146ee5f2e630f5d3e471966be3accf7bb2b4fe75e903e7969b26f4d7ec22d3ee425cf24b1a3045910a743c4ac5854d635170bec6a797836008a37327d65eafe13bba7c677dd11d204f519f98a7356fbabd5fe0cc8da78c2d9d7756bd571b6209df6e76b82aa6be104dcb6e8934a77871d3cacc3dc38ec58592506107e8ede5533003ed399fd8eb3611c9e68e0cbdc4fb567c8ceebe478895148550ab03e1b0df142dfbeb23bfd5711b778d34f467ed671375d19db5c0b9c07ce3b291b8146de62a5f8d17e285ac92705ef9dd9cce00104a0703e80ef6e7dd4bf6c084fff032", + "6179102dcd5016dc9d4785e70295734a57e5bd3531cb580cb255064bb4231840f098231fed98fbe3e15741b149e8d628e34e8db3", + "6272be2ddb0cb197063cc130fed11954603666d0fefa4e2dd51f560ada1f868d97dd93abca5597e78c7bf190d26eefd8fcbc9585952afed527c07c473c2021ae0f86b075787ae095edaa2a353ec250ba04e48c6d72db72e183078ac9382c414d777e6ea672bc0a5b94e627258080c2753338b8b128b940cea77cb084d2152e6a87e1c723927113b3d103a989ebc967cfb213df40c5bff12e843771a8dcec7654f83f194aaa7c990c43981515735d236b899fefa9a7317d5480e97d0d59769b7754ba8ac9ac153b99a3a18b77e2dd566189c5e193a6e4f82f2bc639bdebb35642" + }, + { /* i=1360 cDividendBits=1591 cDivisorBits=1146 */ + "34f1a7f642725f90de83c95d0438a5d6d6a817708fa82689c173feb95ccbd3c7819a652e966c36f72338b0b01d69c11e851f8d6a28771e591c06e28f530c6f4097b620801c1bab65154a16a37522bc4b9aa8841da0c4752cf548280b9830c2503049cb4cbf62a1c199ede81cd83206c0fbfd27150d13d3c1848ab7ab826672f567119bdf42d90775e7431cd67d0a2b902d27dd9ed8189dabcdc95ed8aa7702a7c93a787bedf3d479db9ae88cc97cdd6d231487e787edb813af9c71102593762031cf518d437013", + "03f2ac396f40a523ea7d3b706ca1edd2c165b75d252539d8eab3ed7988cafcb977cc3afdc031adec96209be6d6681b04f2627b21a9661dfc00de573ae8638cc18e682747000bf1f00aa0514f6008a1939584a0fcdfdca7342974d12b73fb1b409376b7f56cb95ebcf7626a16aa47bbb4276f467b01119efdbf0953c9c532b0dcc171caf1838e13f01f403dc84a185390", + "0d69186b5fc9a7e9cae5e5ecb2975e1b6f8e9649cfa82cbea83bece22b54e0932eafc8a20f1a316e4bc455e62cab3a7d9d7a407955c884db", + "0330e86bf2854723e6dc6e3c94f02e49f0481267f114f51b078bff5db8c40efa006d77854d5d0bba16a8fdc4cfb11e60624b31b4e7f165807a7ca75b1eb52bdc541a439ef36a614dc317ae7310f6cdfd9a29f9cdd9de266f15a9784209f3fdd697d988970efd1a47c9e9583d1ceb30c4ae834586c6721fd445dc015410f75f7964dba9ff97a707e2424a38f586ddb3e3" + }, + { /* i=1361 cDividendBits=1831 cDivisorBits=1522 */ + "3c2534815706fd49b57d8452a13c1ab25b1b1991f59908cb6fabb749ed80ff8c07a10f6c857cbec11c3e225ac9a85aeaefa30bfd700b48a54f5a21878df57d6ecb6cf400f479a1b5ee758387485e5a50ec31519655b20caa767e060d91f127ac6a06d4192917ce59155f20a4f4d6f35c0a913de6094a38aef6e994a0fc939a2b5671550295a920d8ac7c7ed1741c59b14fefc2a5adee9e3ccc3e08222c830b050d5e7244dcad826216f078d951327f89f76ecffe6af4e9adb9f4df4dca4820c0c49ae1686b820e0766475cabc596704216fdfc3245100b49a70bdc89f0a4295f9d15acb757", + "01ffe9c86fccf01f6a1dc8c78524a5f129bd79f0c12242a94b0e88bb06921b9551229ba2b15a04ede102d8fe393322d6778192a5839531963191ba9ebb20748a884697c620961c56eff2b152dc0368052de4fa05b51b90b0c7ed8b5f24f0d82ad5a2b1cd6aef79a651eab4427e55710b66e963d4414ef2473d030d7b6ed9bde565fcc5d942c99debb15e5a3558194fd17885ad277cefaafdcc9a6213e91c5230e06d0a5e0bdce95530546c19403ae6aa7d44c65f90afc0ba9f86d7acfe295a", + "1e13e85f43aae7f906355ba0b3a88f95355fade38da1ca9b9ae637d7efb7500df5d529b8f549a5", + "01665d1b8e5950ac5aa9a62d9bfcdd93b4315e78a7719ac08ec1a8ca47f81cd4e4b0c89649bc4624b568b5946f909cadeaac2d7913a463facc7b2120a8fe3224b5f717e31cb48d9cec40244af6c3f89cfc74713def150b17c18f1c1617c28a1b6e93dc7e6f4f0912dc21146933a06477eb318b2142006c5672f8ae765156fea3597af4ed9e728d87c665401d0c980d5466ca3136a3b577f96b3ff4df2d420671038c42634da1feff9cfa1c87f68e771e0bb6ade8f644f87ae637e5d8ef6655" + }, + { /* i=1362 cDividendBits=3444 cDivisorBits=684 */ + "02f9bf8047e28d17ef435bc4fed58b08be95ffd3d853951d5b1bc0a17bbfdc90f71a8e1724ba3068179ef915513ee222a038ce602ed93e29e80810e4c917b20f3df07b74df2d5e50dc6aab16ba14b5e07d472b7b60e5a42bc1bf86c1bd687d8d00a6769f4f142a28fb3353b3c9e661587f30d374eccba2c07cccc10bb5827e718e9332562ae0e2075161a607c4f537ad082c2367b6502a744a1412285e3a59db34ff146eb394f48ded95826c6fa3b7ddc93c7334ad1b7434cc5cd4399a19123a80867c7d864d869debbb878cda2f528580ed6af8dd34ed162d86718b55b117a981beb17e3aef2c32b5c13d13f2e2707e21c48dc6ff49fbbbd264a62ed78a564d21cbde57b44da3f4e1bd89966fe9eeab692261807704950a8cfd718eb198442217ad4167a9da0f06297cc9162465a8a807c17d7f767c39d0571c6aef7f723fbfbf3a11120aa67bc74f26aecff0d684371d5b062b29bea5dc83f18e1eeb3db4bc7f9dde4af1d26bf9ed1f0802e8c0e1ff19de80956bcf269f7713f234796d4d17533fb2e6c7753212abe46a59bdfd362f688c6d6a928cd9b9ac88e846b22c4f5eb12dcb216fee775dfa7271a463671e", + "0dc49b1ec423ce78210c89f16e9aa33dbf4818dd10e126b871d21f9060ba2fc39950adf7feabba897903de2012f65c8d31b07601c938d7a76966f41f136d719251a21769454ab7bb16210d345dc392d921fa7c590e99", + "3753d48ca37df3ad3105fc0c20d78a845df2c9d78814a9ff6d570a9c338d303bc6027e86873574e47b016e488b69d046a5b1f4abb145fb570dd385a99c9d3601b55a5587b2f16cf34da52c00d3c5f237ecaa0869f88c1cb910327f5ffad1de88efb9da44da13148b0d5d11f1f7e239fd0310f5caf546bb66d0863b3e9fd217813827fac2e26d0234e5a39bd1da2c1b9c6a93f69ce55cb18284e60c67319b77aa80cc0ae86861cdd5b62efbb3a53b2361ded8b4bf9b720aa848a3364bcb4c8a2b4e48658c4ab9f9bfb94c04926d371fee1df8b1b1c0122eca3c68f2a6e78b556b2f38574a743948939f4e5a339fda941002c7e7b664ae2845c029291a81277f56ba1744627d91d8140e99aa78e57b7f4ebd5e52b2a0d2ce01b92d87614f5f57546d4a2a7b1bf55b03ab95ec1ad0c1ef914b91ec2d1673d7df82f72769c7a4bf01504418edfab7d66f149c783bed819d5b53476058b434616b77", + "05ce51d42dfbd4517d23aee3c0d003d18106dfe34a47f9622054931584d95d0feb1f8c83573efa2749c28aa169eac3bd3016e47abd28522c255692fb197fdf0d2ee1967d19f067de0626b94e6915a4a9e4bf01eaaaff" + }, + { /* i=1363 cDividendBits=1389 cDivisorBits=1055 */ + "098e6d2f3eb0ddad3954f79e11d04f5686eeabd4b27d4384d50b19b3c58d3ffa7ac07f45a2d0f40e06443e24c5f793b2e75d5b62d5b7e0d559e8ab02143db6114768ace6b2a7b9593a18215121e241ed9cfb1a5224243ec35b708ad21e0804b836997d2f2109f028b9131d2a80ea014614954f88742021824f4b99f5d9499ca807b21d064092bbf731636efc82ccc08397ff1c13d2de98d47d0694035b753f598f955acc5efe5116b430e810eea6", + "59beb27e455266a9362c5cc7cbd91d7a2565390c48e312e1ff9a9d98673d38d304d441a02c2c83cac0e9f6130a3a5e4c200f978cada8af26777d2ba57e261702e696343efc430fa17ecd8b3995451e36615b391cd700cb258634da6a3168b435fab8c85a876a59f9bf4610adedd8de6c7247a1fa603602a0c4c6df8f8fe596f1e80e59e0", + "1b4280eb81dc47e7860fa1a1fbd19a3a83273cea91bdcde647de3a34c1e47dd6ed8678a04341beddad2d", + "0fde59587a5ac4111f5ea4f9f740591edf107750085c2382f6261429358a898604b02b802cb17393a179aa3d7dbc47cdd29296d21f7dbca04bb3a65b6a940c591a30b5253e45f835e9c960aa4213b16dbc410033609495372a5791ee8e8e8f8071f8b5ce245411eb200830174ad095a6b55702878b94368a354b9dc82c7f44e1946ec246" + }, + { /* i=1364 cDividendBits=2611 cDivisorBits=1232 */ + "05404ff6335b4962eee00c1e29a63fefab64efef71e322f5e3239a1c4ed5be18d3ff001b57915bf597a3e0f5ada7cfddfd5b23e839014dd4dc2e287660afca6f023b2d2c8edadabace45457c815b953fb39312595f9532855c063d8df79fa7834980908794e6e85218b6c7b786fc8ff382f8384ba6afd0a0ea4117194310ddc033a96585c49cee304f8241f10c32ef3ec1bfe774c7a2738ec1781a7dfab636704e15df536a15e5f45cd8c3ac85d16147e13aa3f61f6e2f84cc47d4ba7d01598c5fafdd7e60b6d611768d1948d833ee40859cc5e55a407539700dede559d6ffb4d4eb45961117f4886716542dd844d37ff9dc4cbb510c0f5d52d97946c01c3f027ec85dd86c1b526890657e4320c638599c77826c39b0fe2680ae977ce3800232409a257279afe66480004dd059298034bcb48bc06e19bbfcf39f9d7b3f4b138bafca5ab7908243", + "864ade64047b54fb2f15598d2a5c5fb1ca4862569a80ee23cde9925a3006be684ce1c88a07650428b9bf4408f0c292f8aa228d108c87e4c195645b155470d13d2164dd2fe964cabfd85d9d2496708c3226c358899e05b5679ce6a7cc3c81d1fcd9efbca88238b6c12643aca7a9abff3cf39a6aa902ed048b4a7fc15c054208288e34240b08645515449134346d27cbe019242219e822d86ebbb5", + "0a02a541633a3cb952aaaa1efffb54f283cfe227c9dc6a300573f8ba84629fe18a2030448e2d6f1638a2aaa76a173f82ae40acdbd611454be7a1c8a4b3373f5bee5131aaedef076d62b75de7835696c73ab99f95f625d343c5060c72edbb60a16c793083bab9fb185db8235ed95e51c9f35d95496f4dc787d9be3afb0210492e67e209df703c102c161e09a73c8967c31ad43ecebb84592e7d1bd8feeb112ebf9ca92ed5d0682daadd1c1b57f7", + "7bd85dc10457bc4189915fb0d01fb74391a62be1d3814e6fe8f7f23daeec7a76303961db5e72acaf130cee493c5bacaf35d8b24a00060bff2e1ad9a4fc55cc35dbc2ca491a26bd8c9a9f198d0557f423998598de2dbe8c23b1c5f89c4e14812ae3675345af1beed046552b8ca625fcd139687c5365765e762180c4f664e98a9a603638707ace74ca8137ca08875934b3a5e9a464cbb7aad7e3a0" + }, + { /* i=1365 cDividendBits=2026 cDivisorBits=898 */ + "01dfdd262dd79ca738a1325137d054a5acb9f3d794aa08eef4d22c91d52bfe074b37339092abee5211a95baca8d21b582f7cbdfdee9e9e87f62b2cc39cfb4f2430493708424c5e9e777118b570e04fa6ae25bb92f59f6428c208275f93341e6ff7c078f9a35004b8496e8987187c193670221c17c5de037b484ca8220b0b9e450c4a5dd95bcf1885115548b25bf303249d279387607464ca3bbf1f9d86fdb2f65ac5187f14f5ee2369bd1369d1c00113b21d72559058990e79dc7991595931b57e4dbdfad4a9e9b14836682c559635612ccc76c06a48be934ff4e4d3a0ff97d548684799665d3f4e922c3a60c567fe97f2a6825488890111ea9de0cc9dc3", + "0242a0cbc663a2bcd41ff81a804a03ca61874c08d982647ee3c58938e9c900c46a81c6732263217eb191ea945664877fbb8734b94c89385af308d223add94a6cce00ebb3e6cc088770fc87c974fae792a73a58a0a112f314e80efe4ed2a6d8ad7c6d7a83d57844d255128013c57153a301", + "d44ddccc6f2070b2c635cd808290ced230b7430e3088eda5bb0cb42e6f94dbc91f12e3766075294d4320d5ce0d30c80f7b72d726ce3d37aff7f63dde31095ad390350709e47e3597f5dc5eb11b30d8ceee55a76b3eb86ec5a763b08fb5cca839af0ad4c7d62933a5bc31df249d9e6aebefdf49c59ed65468c4637e983316a96e0383de92652c06343cb3632a6a", + "a1f1f72aae27217c356b2442e4bee8d9eec4c1cefa8f74709931f8a24b4bc63801aed2e95719bde2bcf2df028c4a194adfbb30f87377284b093bcb90f7b372349f9ef9e944c7ee83f297a0585e1694251ed7e43287cc2622523bc7a36cff64691ddcdd449186204116769fb77f09f559" + }, + { /* i=1366 cDividendBits=355 cDivisorBits=240 */ + "d217981d9272109bd1354f88c62bfdea1616489409f432f8d8084604f68342d309fe0046a5a5d6683d167d68", + "cac6198833a4fe6fd0f0b1aea9b6c0695ce6789993a68edfb318689330d8", + "01093d44c894f40e2796ebea63dce8", + "882ba8b1340c70c54aa9fbfa9aedf7ea055345ea36afdc572c91a63099a8" + }, + { /* i=1367 cDividendBits=1119 cDivisorBits=56 */ + "7e7b0910c126aae8cba81a2bf09d1008fcb0e6235fca5e39c5bc5a4f48c51fed79b75be5573d86418bfb40e41bb3dbd058d5f36d79c2e9df6c24f5c50de4ffa65d536cb3ad3896aff291c5044caecb46affc437313b30df9c21b17038357491d31efc9a47a8ccce55a78bbd212cfb9d3f31aa85ab4f5b4604ac866dcf38bbda91e000b035f37e6f854ff3f21", + "a6c3d175c3e56a", + "c228e5dc7732665da13a3da689098abbcbc72a1343fcb7425449f232991c3bc718f3c4dfd46e59a13dafa83d2cef1d9f28e6cab0295f162c9fb9997a7c75b3695012203fa7899a52bbc65c37e7a871e64867e5276eb5456f67acb789b3595a29a996f10bf1f4aab1041c42451bc15abeb5f261d8e1ac37bdb0d0ff7a376152cbbfe4e0e5b1", + "8f68fc8795ced7" + }, + { /* i=1368 cDividendBits=2628 cDivisorBits=1572 */ + "08895388a525e72badee5c73c3c225ec9aa6136cb859f3a843d4fadb2bb9a1d0d2a8e2b3e536bae69cf438b4c0b56729b575bc22645c0715f0a22bb524900fbed45e0d92f0bd57abaf2c08b048a2c428337e305906f6f4d95173e652e83b1e6dda568480e236119e11ad561e296ac32a835ab96093021c3d7d7018576d50398630273a8c7c9fc2876c917dead31ec056131eff858fcd08797ebb5865fa577c54bf2e00e97606a377d35ad9d6a9746930c8a28ecef5bb8cde2ec9874cb0ee91ad8e9d0f2192bf2684cc45a0ea4eb2d7277c2a12f8a115c5f9bbe52e699d3466928996abe3a9be3305a38a0f08b4a42d229bc9e05ff460793237ce8a629a851318c89a5a1e5e9afbe1cbf728830f4df10eef956e07b300bef9b9717c6a19496987aa574d13a148880e41c8f1321e3b659867e9f20c2219e9b497781a46ca8d61b64ebe4bbd1ab1d1324a", + "04468adddc713ac6b73e47bed4156d1b0e6df591660f8d725091df2816cf60f2c6bde3427a0eb8b8977a6c9f55c663af59b81ce48b3944479aef9655e9b5f7fe5b09da8b4adea2f337ff11c9c67cc03c8f8c014a4ef317ae92c86b2d6cab089d9f24381bf60b1d18cd6b68e0fa0f154bfe950adda3f44bdd029b499b2f57096391fee7e8f54d3f222dcb1b8a187feded69ea28c83a2bd3a4ee16b734de76b6d7e3a77aec4e83831e6bc09a48fb16eb6bf8c0bf53cfaa47425c61759a61f44eebe6a62f3d14", + "01ff1ef410c91f797cb4f9b980e38ba0ff55c6804db62da63698c2cf3a564e63c9ec0cf48ab7d07c26f6f6faaed465426b5f03bdece81d73dca62a3abc0d9904a97ced026e36ae767df73509d04ee7b0579bdc4896736f51f9fc0c4aed6b91c62ba86a7c4a761ba6511e6f74a41ab3a7fc351a93f38aa54a5486981775ea5c004e7eea7ba4", + "02322701a84ec85935bf5fc137762c591afca1270c5545e076637cb28704c18da120286acc013472f33bd78ec0a8db0982d12e18e141832c0d8af0e579e95ca6e838bfd861ba136d80b2324da26ab40b1ff3fca95c936d3e87761049ff6c3cf91074857f5039110fe36c03bc46fde509b7ef5cdc3cc24c06f2e95764c124d4dee797d73cebb89ad6338ed0414472eddc93e09e67eb64bea4d9966cda2a5beea0c6866466be64a2c9bc703277aafd76ea971684f0496e90ad8a504b19b44c310829dced757a" + }, + { /* i=1369 cDividendBits=2032 cDivisorBits=1499 */ + "e1a0ca193b0269e41742d66d4f9ffe023491f30ad12aa0230f678cccd3bf8e75b55865a186d4a1dc9e7b1de99598366fc6eeaa5e19ab76e4d27fca4e95da3135d1977879f95a2a52b5347512feea6a275f1ead715e149011f7f4234a94b422c10b0b8ee9e479f3fe3fe00bf1e4e871eea38061b5335e74f6621c680e848ef3766d733c242d346d4bb286353aff1c2b2d44ec65e4fc4b9319b6431b74f78b8bc0dd9bae7e53b09ac4494674537be0cddcd027c01aecb5ecc8e00788350f7a4a2403f8492a7553d777762fa14f47a83b94a0adb3e0e4dfe7a885a1f87e838cbf73e6f3e257f897dcf192192466629db25c72fa0efc46d464ffc0110a98cf7a", + "01cff4dadde0f3220e0926530d80da2b93ca2d7fdd52911006b9fc1b73016c05e01fb16352ab3bc49894341fe3ca8754fb3ff323805a558ff33e5f220122a1c7680b29c746501b9e1e1272bcd31416754950c62a8575c5ae86de1d05da6729ed3feede4f1868af0a576a3dd581c6030d4a8b68e798650c967bde7ac4855c3119143c57f94625dcc4d0f431f6765a287f5711a7a8a852a3f5d75744e1a645577d57c3c39425662a9812bed2b8f408df09834277c72b17c72445f39ae2", + "7c7f03190046ab56ba47c91f5474d12e3fd8937cc21079d1c0680d8f29e5227481032cf3265c11bb8f28b74de609722fdd8882aa3577224a4737dd7305a9c9376d7653", + "010d6fee304fa027541a6b43737d600ede04fc994b9250887e6d069b06f2bdaa1670ab5433f8f5f5264511c5fc5894e0b81fd4811a001f129e6a1fea8d1c3de25954b396e95bbfb099e3b66e5974e4dfdc322dc327420791ae6f23fce2824c61e69477b1657e4d8b75ab013adf11b8cf7c3a5e5f8790c11bfa007c79dfe5f098c9965863dea10fcab931966b7578b52204abc436430e24ec4bc36547577295c69103ec2970b98ddef147e381083061ea59a4d16397188a9e92ff6c34" + }, + { /* i=1370 cDividendBits=420 cDivisorBits=199 */ + "0c51853802ec77fd0e283f49e76826c9da6893da9db88ccedd19ab0e1b7da66d11dafbc1fe21310a5e57d2c39ce25446fe6db6327c", + "5edee8499ba033bca37ac4d79a1eb3cac28622a397b30a5705", + "213d7c8f8fcf4538483a1501057ae2a4a4440f7dfa597b68fef4e0f9", + "3a2fc0be08bedecd6b33526c86674ea70ad483c28e55bf2e9f" + }, + { /* i=1371 cDividendBits=3804 cDivisorBits=3798 */ + "043b571ccb4e0f2640a37e936926b090d8c3d4ddd0f5925d111397dcc8c93f88d533bdb2f0cac2b9da9801d2c81205de02e9aedfa45a755f8a37705c27ad828552b560614bad5060607bea4af40fd576606689f2db20e9f8588a9c0fdab5d05c4843c371a0c32725e0a62e6a9d6ea380e9a46087470d29dc4d28c54cf2b96f61e1689475587dce952953b8d909c4a99158276022f7fd53e57c651d36b5cca414875a6406fbb544e9bda899b3114b4a787b2e0f735a05227efd856b155d0d224b1793166d273fa7c7308e757af790cb8064062d4961ef2b001080f57f2e9eee2f94f0344e563e1a27be3c1b7bd56468a959197465f93df98e99f441ec65ed0593a29221b330e41cf2026ff3e6d5e2bf2940140d9c430e271a0f1ce0f03c110a9d688b47bba903e665766c14d0a3b797779d11f9834458f6ab7b17da604b17e13e03be1d00855a7aace2e4f2b0b5cb1a08f5dea8b1e766410c0e490ae025f4a3f90b4ad5562ac55ae3684d00b08c56b422b978f05267640e23ccb46f3c229955b6b29035f0c3558c209c22f7dfa9cab7cd90df1c0dcb0b818cbc165831c041da95f1d632b8efd9365f7adf3357f338927f7871fcb4e55d8c38ec6ef8c133ffafafa7af9c228035cfd4414de8a889c7d4632514c8af717e2e7bb9c5582f", + "2d9f8fafe36b26c43915ee80cad79d507d7fabe68f9cef6931ac95106fbaee1de35782c75dae0ccd3e20144d67d20fd8d9f26097b6fdbe25870cec907b4734fc0ddd0e8377324dceedecb318bd1104c91c1686f9cf0a748f9b0931d2afe414a812dd2e9eddbbf67a1dfaf45c2f61bc62316efb1667eb6a9bbd20ba486d6a1014bf2e5fa2f1d6c941dca0fdad81493161a5d5664502bd0f2a40fa9f70cec9e31bfcd13b5ec60bd97905cc3479086060a048a84d289c5769872587549372b0c0cc080a98f8f347c29dd2b7d45e88676c168067584453ff423af1f46fd46fff53d0146b9a16f11b7896c742a127114b16e9aab69f1a7c79af1090c1d49992a052350d821f639303c24d7fbb9f9863dc3c4f4f89066bfe11a2850b021b6bd10daf7e8b9147f08bc08c18e4560adc2f3828618f4842ebd3f3617c2421c574b7ab95261d983ce56800a3b440030e23135aeff067c6f6a71447b4a8baf2014d090de041885ddf973ca2b75eec588b66719047545eae9b4257eace2fe30e50219b43184a8ae13055d7844758b7a0bc7548799236d4db474e8a1b0bd3c6d484898eaa99b77eabbb95f6e961d6a7deb0e54ee01b14dc97dda133dd09dabd8522b6396f5c964342f21079c113afb52ea1228a945d89d47643d4c818d7cfa94ba7", + "17", + "220133fddf6eaa9f828625d6ed516e9d7d5c6c1a0e78da9d9d16784ebf742425c6e0f307601f936a031fffd3be26718754e83202e9a94a2b15471b2c9a1cc2ad7684137bf7cb62c91ba633bb134e084ee083d26986f97f719cc895ece852812e91e4415ad74400e7f4a276552cdb94173367f843b703484f2ad49070e4e7f0043b69ddb4c382803e81420e73271621924133f2c4be5788b08e98e3933880ad03a397b177ea345fde2340fc318aa1ca14a6f084b3f94803d926427c1dbf40f8c2da22aec964354b029ff166794f80ca5e7ce45b3e633c0cc4c3ff73188efda7e31a89764694a25232551f0152d6a99a5ac30c1a980f0ad41cf2d7d299c09e30de5b70e13eaec67d0bf6189024e9f5be1feebe088f3a91801b1fb0798c48cfd90a013a450c7599cf39e859d6db798bd6d9327b80144e18e953d8d1a2ce9776d797156f87e9026bf7b124ac6b8f0dee7a5c8bc888e493cfd0e57d4cc23a2464d3280a663f9452bc69e1110c2a5822bdba24f7405f717df59d7f4e26091da64e880015fa990cf8a9b7a3a386f12047cbaaa3bf68a5bca3137cb5394049647086c67574c4de76aa3e9531ca31735922701098a057cb69b4b056456802a2d4d6ae5e27a498630545770f7806b82e6f547ffbc2fe28975383f318118f8c2e" + }, + { /* i=1372 cDividendBits=2341 cDivisorBits=1403 */ + "1a27a0e9fcf343b3118e2bcaa724fc20f4c8932f663afbba95f6c9295e71da6158d97fb1160dd44b6dfe3898c40e2e4e364fd581345047050f6f3c27fd877ac66baf1aa59dedcbc520702a7dab15750193c09b9dac6ef9fe201e720e8a6ed177f6b0fbfa0cce9e7c3302788217b10aaa86519b0f23a0d82fabeaeae097b6bdf3ccf5bac007b85b50f7178a2c169f1cb5f71c80dce4c5136432be1f83ba90c579e86ec666e24d7ebeb89eede6bbe1d1d3ece7332e6b51b2d5c1e8f91ddafb7cf97e5fbce9cce2dfb72dd12745026dfdf2387571c6becccf63d2d3dd234c5ff3cc0f52aee5c3dbf498fa8354cf6cbd235904c8142ebcfc3bbc5d4f5a22247f6097794fcda35246b8ada5bba6ab19b34f063fcbd6d70dfe8c1d6ee0bd214d3543fb3c70a7a25f", + "038d5ba276e43c0aacf5354defd60a36ed95c34a7ae9d6b231a53908442179cb3e9d919b4a2b9b6dea3fbd29c9d3ecb6280353cd4b2a212fa51ba9397e9f9f2fd8ddd6d6307beaf3a0160d06388099c8c13d2ecd523b075c2d55eb3e8c6477bcb0384ee55c4abf19055f795ae145f8d60f9f5e443e33692487026c0e697d398e9fa9bb6356d8a7f52a5e08bc6f685e9d0c5306024950ea6329f917d44b95f90f0c7778695c162c3cc5d32fd213b492d5", + "075cef711d3cf39f637b47f56ca54c09e92aefa0eea9a5f8ede2bcb642330c3084f77dde247954938ebc97041a3f66e4a01d70d54f7e6a96a85b1484d03f1b2340d2c55466386956e170914ec1e0401934807c44730cfba75562116e779d54e8fb110dd0f08ffbddb3a02a99639c6377b7fb75e02cf8", + "02a1b334c1e250668e4f96e3271480952184e376d027c2c39247d8edaf58bfb387d19fd7214a77426056c89cf404e960245fa00715c8d95eeca476c23da9b37eb9978f46abd0b5a68df7df91f73bf5826b76ceef004c374f3121ce26ddfdbf33656a19782fa73beab6d5df7b109426a0b34a0593435e7caad892dbecb5645fcb5c8573fc54d68923e6f9857eaa203718bd45dcdd0f7078b63b919dce92fed4b73a58b77c706d5134629d8d637d1cc807" + }, + { /* i=1373 cDividendBits=461 cDivisorBits=223 */ + "09ea6ca642aa5c483198dcc7025707f3c833f9d25db357c191f5bd5aa4b5f6276a5c0964934ec7462e12bd6cc96a622fd069797ce222f35ed80c", + "590ee9cf7792cfb8115eddea4524f9274b1d922500826bb89dace21d", + "1c80c25fe6597c7aa64e19dafc68bbfe48c361d7b5cd0181b51e2b394021", + "574f15ec639bea57df6d4e86b61cfd52e4c1da0b0b69b20c3019724f" + }, + { /* i=1374 cDividendBits=1603 cDivisorBits=1336 */ + "01892e7630e69fa52eaddd0e12e4e12105d1d03ef54112995c43d9af0b3e2e277b5c838e8dc7af1bd6c1ddd629b85e626f97c6f120ff0bef424025595c5b5d0463a8122645d13cb6b9d419e19c6284708e84b5672fa9a80f3d0fefc34e7434a56aa1cc8f7581ca4d3c245ef99192a4aa92c75b477987eb3aee277adf94fc2862256a48d54517eec716b6fecccc42eaec9435783fca14b2d76877c254577adbb019e0764a71f247762cb75a656fd89e71eada2718ebfeeb7242586fca60401f74c1e9370a55dbfa9acc", + "a844dcdcd454dbb7e6e08c57b131c866241efc24dba6c5c768e29a77203f6ca7e370b9a9ebf0c22cc1eca2fbd5d74c67ab92dc6885c008a5d50809c97031404a088e2864c1032715888a102d91e789e1a1a4322aeb47f8a2c7cb17b85974641393d797fe5293146baafa50dc4109791ed3a8432aee4e257c129b268a2bdcc4322f8e1a8f5e339d2122ba0c64bc268e46d3a57410f3da2095cbfa2c95ad32bef9e578b7b51dfaa9", + "02562d0961153b5507d7c169a77aa5b4372fdcae8647fe68b33f50972b4971940e8f", + "1b18dbadd2f92b84d011fbae19a15b1e898c4bee5324f6bec1f27426299f98b914f4a14f43276c76834bb45a52ff9ac6fc37c30b590547e656e3b3baf689586fbd028daabbfe960a87aaf88794f7d22af7daf9a5aeec7ed2964b7153916ed7029cb5a066ee81636b546cf55668cf76037978b9a69189f00b35566d290834825f11d5c0e5f64021f902a266edf3878a7f19a150fb65e35806b880a512ea920d8bf1c1a589d25865" + }, + { /* i=1375 cDividendBits=1555 cDivisorBits=1369 */ + "041e50d13cd552bde8e8be82eb84a5a52587db87e0661edd744e0a4f9358a267101f922a6ecd6be39108103828180c73b216154d2d5cad0b0812d680e5c41c064534b45f3725d9028b7829206ed8b7af8fa2fbf9458daf3bf69563fa2f5b19b28ee39cf7b6baaaf590d8ffa354b644ef83edd05d364e587fb3186c01d3cd79bca8903855257050ba8f992f02e1f82812be16a851e22767a0b5c5f025069e81be75f694a6db247c07fe49b25d3d8e12c63dbda31ca17486da996680d3eba76c78977ece", + "0135cde4b8a4cb921b6ea31ddd7e847eb755d3e57a9e3a382b4ee2f9b57c5bdee8b55c8c79de2d56a7b63b40ff91f057aff30337f9823028372d6b71039484a18d97b112b7f454f6cabf533865e5a6d7dfbbbb6668eb62a5f7a329c2f14460f3212e962e0695c79bfcf5ba3bb97c429d4b3dea5335fc05299dd48264106533323d7b9ffaf443d542f64b98af5ec7830c7f5dee0da091f1085a007485b6fae0467d5381a60a708a2ae7a36073", + "036735f4f14d5344c2d3f8e3c4d51e7f270c8fa8301d2e7f", + "12f0894bce62d0fe898cee71b51fb26e670db06055c8bcaa38195b0b839b1ccfc6795853439d4afa782bf2e05fb09d457a39974caf90bfc584e73ac106ebc7950526759f3ad079ad9c566a9504430668a3bc762812c38253246a5811d8d510ec8f9815b42b49a380ca0a115df45238f74d5d249a02d9692fe66c249d39f6ee24bc1c323402963f453da5db60c1783c60987b7d08cefbb7e6bea643e1a2e3f7c5bd40a66a7cfe74b62efbc1" + }, + { /* i=1376 cDividendBits=3855 cDivisorBits=3554 */ + "282972e69b54e283ef252b538a9a392bf361aa49b170627133f63a621917d00a3f66a00218fce0eef8a2354565f15f60ef9cf44e197219329161022f39b239f6f19a5ef8bc1067252067836312b3f6dcbe2c4f4546d8baf768f1714dfdb327aa2bfad7b18e8e3af3df853c638d70940936eaf79b2ca5e7cf55526bcccef39712ec73eeec4485d4a93073e5711f0697f04b7348a9bd18f9f651013acce792e32a9720c293bf14560ad64cf19ecc2f6fa564cf49a05f7b6b6533eff334a6149c07308bbde0185d8ce00d8bf00d2c636d0ecf28b4d8a2158485d46ad3b5f4e66100fa60e2b59cf4dd6d4beabec7000923244dbbf95da03b47e4dadf87ebc0d48d3e2df4941d8fa23b190d7eee94959cd428c8f11636d27bd6718657fd10695d42c15a7fa45ecccc6d83a2a3ad9052b503ae89e30b0cfcd70b614ff0641c0bff0d3e008953346007abe88e68c7f26c9858e9a0aaae6750e86bfe26d713d867c65eb03a8f37dcd896c234e1e15c8513400ef820e95edb1e9f41b71845422a3a1bd8e4f4ec6c33ff1e8340a0cfd272485216a315b2e0ac7844986cd0d6c3aad80739d52a403b586cce1f60e6cce81f8436c82337d9dfa0ceb118c4b1be4923af73e02ded5823a0d85cf7b58b825aaa55ba7b3e0d31f0b832fee07cf3420a9713cef8ad5a0e", + "f55e8902e5ad5d8d390bed9955eba39f720a16bb005bb187600ecbdc1cf93099fb57e6c2054a6dec89a4dd2f4cc0384c3b146c5269f2e377bdd1d75bb2daaa6ec7367a417f6282477aa54913b4f2b39df157ece7ae94c4b2851278710698a2792f97d3e90ac86dcc6dd16a79e5159553f3b9e863daf25e9f842e2cab1539f0212aaeee1bd42a28eff233feea00d1b9d1b74b5a9b2f5f63d12ecb321b8d86c8f9cc1832e23842f66d1373f88ce5cfb460bdf566839a8211b8ed597649945212bf5ca02a82bba9d21a4c06b65d982146eb5bbc81389c78b12ae1fc456bd7d60835b0d5ee2e7dbce990e71c0298d51a3e54c507cc575a53424b4a16a57a43bad6142c17298fc7a456385ba6e01c951ad76f21e21c199ed968206d1058cc1f8e019dd70674000df9f3f6a489414c9ce8ec6347f5aba206c1f85607db7d61c850ce92d1a308d1398272796692419814bec8d593e4ce55597f32acf9a52b66126c8231a1013505ebd9d2d007bda6b39135c5c40ffaade7292de4cdf59d553bd8a25f10a66a964f6701addeeb0159849c54b8710edc133fb444de14ec7c1dd5da46369dfbead8b3852c9110b781feb6e03b2d15024112a46eecfa84a4d88250", + "29e6e58e65256fa18f568e70f4f4d44a93d7518ba936e1a727c81b63d3b16e8c799443e7fd2d", + "17d93e8796fb4c94460f0d0e07adc88c84826d48b9f87de62a87351ab88eaebb3d0e0a779a1de7043e7e4351b159c5f6ac4f62b6e10e4f16c1b389ea307041a3d146b2067ccc159f60492580f3578850a8c14ae86059c0830bb36efd9d27d1f80e9b88e8e30958f200dc17502ebc606f944369bc10754c18d5778a3d276cf2fdc3e242869a4edf4eda1bad8e7ebbbb1cf4e7180eb3b61a2726e51157b13950f272ef89a01dca1f2f02dc2d6159ccc8ff70f265875a87aa0683fb297e00e88ffc7dcf52a4a966654aa2d6517e6d7d6acdaf73c6aa0cba8fc0b19a9e633bb2ffb3becfc6c271b81133d98b49bc6270d0860a0f7b85e1d8d7a5bfc5ccaa74c032e33dfc5bef7d9b42d676f2624853f14b06c716fe3470c240ffc60c91ba1bc078688294492b41fab63a55f5614195d67e9e095175f83bbf5bc249dd1179fdcf044bbc6018b89f12125abdf42a1c0169352279fb0fed2f5f0dbc777645243b6a423f3162c65664648b33b16181c3bbc7ab551344d49d0025a8aaa9bd5e1e3d0c6f451362b444f56ee8045e70e12ce6ad2e1eb581dbb6d2e7f7b73d0b2c2eaf39dd07aa69af12e13dad987b7c2cdef9ff5830eb654f044c0163db7fa561fe" + }, + { /* i=1377 cDividendBits=3287 cDivisorBits=1342 */ + "2a4420bd9f9098dd17cba1ee95392b6b9495ee17e7494e928c32cc779e410736a2ad9cdbdb757d4a7b12e8fc17172f77560b1f1756ea7d9b46bc8a7f062c1504ff9a02935d73f0ec6038dd154d22eaade8f06c44dc026287a6cde3595260df2a8562a9f8cf468f01b034515b60c83019ccbc4b264cf2e75d80ca825dad9fc7c3a381393e845d26e25d1d10d38ba4e42fe71aaf767463e6f131930d48af65a832a44117a73b23050b09b5057346acd6b1c1d8ec207e2e954dff26fe363c8a56b878c96e0cbd19c5dd7ab1325797fa6f62ab5aa38e5a62807de7bebbf6c7c4ea900551ad9af878181eff4425c7dbbac13ac83e5daefa54a1b19af071a84ea9b5a9926b2fbce2e76da8fa64ed8535337663a3a1fdc622c21abc3dd27227064395036ba11e70056cc8e7c97bb0683940c9388736ea110b55026d9b380c6ab367dbe9fbdc758c168f36bf6c5e8f0442a3d275bac417dbe47d1591cf28836bc09a974378e8208a90ceb95a259862dc5478d6bc8d85eae51928614ac49d551f5b33a445ecffb9d237aa75041c1ed9d820b15e70b18d31290f67cf5c5854ba", + "1c1826263b144d8c7629f0d1fb41c68706ac5c6f45f955f7f79f1534c3a5ddc24eac06f9e901dcbf8ae5f10d10c1437d7d9d78de44fe8f399c50654dab3ccf56b5c509e2a079ef4d0c7b3f4e6e90945bed3eaaa20600252f114ab3559709cdad09486b4ba373a987ae5bc22639bb985e8f972599dca0de46fc696fbf4ffceac0ce851dac23184b5c9ee1d5d2aa74c74c59c1f1639e6e0af9336ef530792cf7a19a76140e830710ee", + "018122b7b467c286a92e31b3cf861374b36269f61e60c8cbdc805b508737a05d282237a771b864bde8842a3d95ad9f1413d03c422d7847f2659e810c9a874b97bb4b2e0a831931ad07a32fa25839c467e3b3c01a10126c9601f131d0788d325cb3401bb3e5ce54829bfab284ce297f7f396b1af2aae61b2acc69cd7b9966f39d309ab136c58c207f9cb1973149873e5380863c4e92e4c59eea326b755c84d3113e88486e3c8c50870ebd7a56ef9dae032d4c23e9e9e567ae3211131272de4092575e3790d7337e3ea051eb3f19dd01d7afdfa730809527aa3d351e48e7c47ff4ab2b7762b39b2bd5d27988ae383f2d38e967c00d", + "13cd37ce30e715bd9b234d95cd059d208650d4ecccf69d8f2dba5e881fa56b88b9c6ca3dc4c11df3cd63f2f786407ed496b655d84e23e833a5c91fd55660583b63faa6abd003202d06f90133dd905840dd52b3305113d0c6074e7a351d6878d9021c4baf1d86cb26ac316d3c910dd2368b15cde8041da8737ec24939b0268ea4117da1cad9b7390f6c55a63bed2c13fbbfca7862bfa19f3592cea7e124347bf658d5d07cfa87f8a4" + }, + { /* i=1378 cDividendBits=1113 cDivisorBits=397 */ + "01522082da8afdf5c09b29a74536100ba22d7eb1e82a76ceaa02f42679964cb0c60f208a348f970001e8408856cc7f24e9b6253f0c70d1a9a496e6c1ce5d728f54a9d1325d767cc7a012c09d19864d3ef65215a3ea35043d69be92593398f596323e72e6f30feedb6e326581fe423c1c27d34a06ba0404539e3845eb7c97be10aa1d38d5288dceb02ecf9d56", + "1c48cbacb22d90dce26ac88deb29e327bfa26b36c0537bc27d4cd21dec14d999fd270475107de787322f3add10ff5127cf69", + "0bf45dea0fe2958c1072ec2c203db9b728e6d3948d132e8a2d882e8087203bf84cbbd8d8b1bf397e9fa2faad25e8f8eb5360c134f755fbaccd336a7687ed2af6d50f526f29d44769b5fbb64c3e1e7452c6f25c0db9d7caa03c6a", + "93416ca5b3cb73524aea2565b1cf21dfdbcd1b2ce3fc8507e46a7a54ae2db62819bec3ffdf25a5a902b1c5b939c4171fdc" + }, + { /* i=1379 cDividendBits=2042 cDivisorBits=1749 */ + "016135aa800e6883ebfb448ac495d069b5314f861d1d9034a037547b8208b6fd843a27f5b53b96e0f42c2473034a5c7af2d6697e4946d2156d3108707939e3113746829c38c4b7f6e66a4a84ee8797a2f3f8d3204195e5d000a5cb29fcfe6e0b3287a97e00a1b27e4faf50eeaf45037969a022cbe75b5c450869fdd7bb025f043b72ae7666246500a3e7113cc451879a1e61ae42c9800b32812f75a38e2ed097e77f4a6b1e7997246d1dd9d8493ffcb6d2284cd1e4e3b3c2cd824ed0453590c4b61b06073d535a30476bd2011e95cd2a2d217dc564c877d9b9c62e107645ed90f06b981f77c16630757410852c3f7276aad44915d61d2e621539852a61a8f8a4", + "0439f968f88450f338551899117f4f66edcd6b7e14cea48dd2c7bc4b89c5626f7273da60b2ceed4f2eda8b30def10eda519044a9c09238fcfced7b97833db80fac451357a2c82d5307f2de2c53fcf496531f21ad6bbbbf27f4897b171430049cc249aa8893d9a3b2e529bb230b56d4bc8553ce0cf503a10170672c988ef2c6b951bb60b9f5b14b1a5dcd4e97be15b5b1b12db1d6e182e7e3b7564093e88a7b72fbe09c54eeb298b901e305bbee93b05a52f2067de441cebdfb79b4a22c682cf490c6b021af29b3892decee65b3f853320921a4a334e15a43efaf7d", + "53922cc5816072de8d9eee08835acc4f2218c0ec7cfd6e966ad6d8a2f042de3f8815e81a2a", + "036ef7c361c3019388f582131aaa8ef7d14a7577909c2ee65a523fd3232a27911fa7c6c846a3807e8031fdcf75ea039f903089572fffb20adeadf6b0084c9e6b576e149778d6a0af4210af79ffc63c18929353d67e45946cd2c0d65e97fbc0c1ba0b33d03c90db8134ec1f92eaccad69d235a14c2b065a143765e200331e006db00c8e8084008eb4911cfd949b157379cfaf0e4a7502c9e17731f95ed54abe62a00cc600490fc84ed020644bc0e1997fe44ce80ddaad5c0d04834a9ace659726c038d4ed6b026c1ccf26acceb0786e5e0a6f6ed25e29709a3b7c22" + }, + { /* i=1380 cDividendBits=298 cDivisorBits=183 */ + "02b6a8b8fa28631905f93fdf26abb452bbb90aff739e29ec24acfad1938466afd1287fc31881", + "69c962eca96736551a9b8a350a30410793109e8147f6d3", + "06910ceaa329cd5b69b9bded353663", + "22498ed2dad8fe5eb48d97052a9d4593c3dc68e22f22e8" + }, + { /* i=1381 cDividendBits=325 cDivisorBits=122 */ + "0be37896b7cc43bd8df1b56ec273b53a929ade33c2777192ea616d0d2bfde9a65644df5b29ed2ea2ee", + "030879ae79b7fdd2884e25bdc3b6b25a", + "03eb6ac512cd208ba23ff146494e41e30348cae94cfa96d25b2f", + "027429e01664e9449b7d7c7e0369e668" + }, + { /* i=1382 cDividendBits=2750 cDivisorBits=590 */ + "2b23c1d6b883ec9496760aa9b00c7786f065144f06f76ca2231d892350971d71bea6424b7811bc874291dbc5aefe8337e0f5b286d823eeea388f21443676c2bfd59a038c7d90c27cf19338648695004fb7a47148c4ba3ef8de4c76339c4205c4631cba21856434aa38ede4d7914decc9d18a8a88a9229e074ef0ab5eb82c254ce378ad7e7ae44b443ebc83e5c17db4f20da12c35e4a36bb201940ef875cd608e45533effafa0fa64ce4175370cf9a692560409ba84dce6d43abea01521be231c5626e541691af0f50111cba732e5b357a2774ab88503ec78ecc6c6aa6790da92d8383d69ac3eb0a2587b05da839960f53269520d897e9042510f19d69992dc2195cf96e5ffb947b113cb76e7ce8fdf953b5bceebc7cee780606d60420c8e88a208521e2e5ed606a985675c42288cebced0653e3472ad0971e9e75116b3630328446c9b0863f448fc056b9071a12889b91f699b6b8145ae7f", + "2eea22ad840ea435f9a7fe6d909b9d487a070abb3cdc035f30d471f7ea8ff6188e41063a2a62831478e2432d01f59b1e0f21cc9e3b84020ec5fd09e573325be85b91cd4f194e9ac72504", + "eb66bd714d832470b00833dc684ea188d2343a2d786e3e754c97638d03a7453de332d43c0d9b56e5edc05a4e1f78ee829de771bfc1c62a20b7f8a2695cc2ff3dfd3efb292115c5ae2ffb8844534866fc48e4683b60872ae2206d58222f4b5864158a7ffea3e449346bc73442224c114dd87855c30b94bb2d234082516769834313551a0c4ac398ad8e84b41bfeb4d854fbe8feec51430e3d877445fc4b1b5e494c313baa7dfded97569d578ded37839dab9b8685a9c147a0f770e084a4b6e95b82dbb4396fa0884c0f328f1ff0da66c2ad926d3515c5b699dcb922b429ede638ff496ed2bac09fd73ff7924e3f86f8b67a87cea444868b907048f04806c80d621e137140063d6bdbc576a7c14f93", + "0ec4178f030d79a2baaa995c76d0bbed8cfd09202f63c2deb2a15901b11cf3781f882868056aefdc0da95ac4c9ac9e572b1885c27ca20f4bd4cd640638086d6ede6089411464a87b3133" + }, + { /* i=1383 cDividendBits=1195 cDivisorBits=1105 */ + "01031f7acbf57a0fb9a773afedd8c3d2abbc8fd3b83ad296c8a0800dec1430ae11f003feca11d08ff98b5a27ebee1d2109df18d096f18fc5315d969216ab8fb128be709147150b1d1496c17592adb5eb6e78afb02d7cd14c9ee48a19be83c3e710090413a5e8181399f8e5dbb76179c082f9acab71caa90bd6760b841d744d488ac1b1a4b3aa4cceeb2c408b5115fddde4902f36d5e3", + "9863d0727ff976a6a5ccd5beb2e94c95d07fe6dd37bf29b8f61105b06a5ca70fd516e21d436a168a0eba2a79229418fcc7ae8b4b26ed1150e6cd899de03806605acfff87c0223ecb3c98d6a35a5a2fc50047fc246e074656ec398b008176429e056f6a4c44af38b3d74ef8d0da96b58f4c9bd6dbddfdf74a9f956eb62f046e9c7f617a7ac0942d18aacb", + "01b34d10169dde67e4927d36", + "1be375427a30e5960e2584f4bef9ab6bf357b96da38ba6b1d50536c9bb95b3b4e28e87b33756c35b6a1ba88073f87e8b76f4ba1f7f4f4e61b64d2f31ad68fe51c4ba90e1d362a0b1f804d5b0f036eaf2d6a53db7ad1fe93a720b540eec41c6e2cd2d2eebcd0fea8a7f54d76be0112416d63f4ccba460d0203b2ab443b18605aa2efab1bd796e6cd7b011" + }, + { /* i=1384 cDividendBits=3167 cDivisorBits=1593 */ + "5e21f2ff783ecb3971ea8ff5ed540154f122dd39d31104555233da42651516c445788fe3e44461368e2a4ce449774158dd57906c47990f73844df0bafb6fa20bba06ae48bf31cb57640fcb23c678a7fb075850412138538923351bf2fcd6ba973f1a1a15e342f32623cbccd405bafca4af442da9c9b9eb90537fa09a38b4005c1e1f282b6e9de6d7a0378920c0f576aae818e01311de56067286ef33328e2e153fb85774bdd6c42f913f102d5622c868eca17837c31a9da0bd0fca77050453b0f67c5ab32364814eea3fcf2b15e21f2105dc984a874f83583ab6d65a408f0d39d69eeb31c5d7ab4df92753515632213fd8efdc2a6356bd4d2d2e57e2e1855ab215ebf93e54864c6b00b0518ec9a5f6aeda20f88c9fa1c615070d627c2b93a19b0a02510bee83ec572c9116d9f4d9cf2bca8368bf1258462d3b8b7bf03d89eddcaf8fa590134f8c9935dc588528f607349430a67a6ce99448da3284b0f48ba482e7f425573dd980db694487774ba1f020b0260cf0704b8273f05a4e7b63dd73f3e820ea199f4c2aaa09983361", + "18598a27414ba5d013963109c0b7fb860990beb0bb430bad4bda33a8cd80d28d46ebe797ae681dc9cf44490708d8cc5f1ed3b3029367e276f5dc46a5b326744258bd7e83cb7cb073db9d5222fcdbde1fd1ff4f5d6d876225384c1039c99f21f06c81ecbc98469de53e76c7c2e131b24341336be93f578ece2abb27de743e650b0f9538e8b29e7366c58141d5359c1e215af0673d075696795431d6ee6cf09333326d2aecda735efebd6725d0e2b7437d2bed083d3b0732a63a51f8878712ce4732105f1ca2ea31", + "03dda88e0fa16406809c7b07521f5e0b1881bca82f7b4e8845f1cf425fd5e86721b8ecec7a5a66629c363f65a2e65b3710cb10ff0faa53bdf4015364971ca7795ebc443662b957068bd20c724b03d5391e1d820abe2e90635259cf9f28de848808d952a7f0c339b3f63fa0a5b735b0a7099df3cbde9130b3ffc361599b0151a52be3f8cc9366aeadc6987facb5dc7eaa5891ae97a77e305d1423dc201b2fc6915ad7d2366a12ded8c7a9bf97bc967db0d73184c896491e97404ddcb03275e8abc7e3cf6a95bc", + "0322fb91c92aa02020ca2359a193c64f83a1570a2e841b836e08274e64139dd122d37ed7399cfe2f74ce54fda0e8b89cf3c0d208ed5c5119a0f1ea6726ce9d8ee6d48d67aff47503d38b884f276cc0e8c8f90a48f930822b591080058069b10afff1173456f45d4acc6ad39e6847ba36e4083454315ba300c5201cf79d93aa308484133bb2e4dafa703e65c8d6a1031a6ff620e2f986168e06e1bf513d6c42ea6abe50250fe77ef2ac2d02929d99bd73e7d272dc31b52a449adfd3fa854228a43a71e0985bb265" + }, + { /* i=1385 cDividendBits=2814 cDivisorBits=377 */ + "25bb8f2999089cb92e5540d0e7856ed14c3ac87d82ef5519b95b9e5d7c62c54dc2ba885247026cd21fe95c8d62a7a1237d19206d01ea3f8c78f1a898ca160b9be8a9a118bb97445e48ae3ce1d779ffe7b058921a78143b183cc3794a4433191247967a1f0b97fb164b530698374a27cc53854198b49a9cf61bc604c87e709a8b600765d64b01e2cff7725b78b17eb711cd288294302a469ff0623fa2583007918b180b15e5e3862651850edba6dd42fdda5c06ea1460c3fb18431d8da1d350b63b3b43e4a0f0272e34f2d557bf6b11bbdee9ad8a2b4e3fcf71de13f86fcf5f7eed5ada6de1588b1e66838126f1e285265857489737587d8205fd491872ee07cbe8ffe2bce48667217b35138305545522cc52a8aaba3036dd48e2bc513a751b66b2e45d632ddff00ae1cbb6593e4649a6855b45112b9402251e710c188e13422f8d65b95a6ba41c383427d61e07941af34406961a3eafda620c1ee8cf37976bb8", + "12f120d499a223202ad8d05a1742547f79932e05552cd66bc4cfa9349c303bec572ebd6168c25753cfdc699c21f297", + "01fdf5019bca6f42acf58efdbce232cb26fb67235dd801fddb51192b7f7a3e4d9cbcbcdfbc9f824aa12540d75296f67f2bb4eec80971ec0cc432d49b2907c28e6ae372c62eb384398d327da780f65512f5ee170ad0d288f7f5714a9678dd70d81b3165ccf4d4af3608d18b05a863131e65f47cc6d9b2b818dbb3c6c3f681d61a621f5c557deb5650c1c52c1d81742ec3babc0762317f56e3b7da474531b0eaf5ddd8284c054134f622999912476abd1ad8a4e03f34de8beebcc6401871c74781d2a28f751d0a058d7ed1024c655c39d4507b47384dd0b8a4be728582b914628dac196cb638f9f98d579892cef3fdf6a22b7533a0db7b460248e1e4a07a1cfa00e66633f8b03ef0c42afde29b50b8e413de695db5cd8b36947b9b24238e877c9d8e565c394599d3e66f6dde438f7962ac6360", + "0857f51a9210697e9065b36943a0b940b1e21c835d8a58b5da3abedd06d0223e2ddda499c81582852281c7be980e18" + }, + { /* i=1386 cDividendBits=3913 cDivisorBits=42 */ + "01d434534479bd76d5ffd2ee390e757e7db2893c36fdbddf69026a30593ee0c877aebec78fed29027983577ecfb4feaf04850d090705c12de88ff2a06506bd529a0e1224c71b8b64e3d2afcf5c48ba859094af854a879d53d304c65b0df51d36f8b108f307f6fe7fceceb3222ba1012260137b24fb7a71039c603a15495712e24cd2ddd0ffb5c45d1dba3c04ce0169d0e1312ea66b92970ece77d19362c41dcc8b548ef56d3ee2d9fa69fd62f5e8af32ab54f33f7804e442e6f9a90f37ddf006bc693e1e8698e2843592f9ae0e670cac84c7275d7bdd923b69250b58a33e53a1ed77c704e30f66f3cf4c0b05bdf1355acadcc640d9c6c023ba52a72d4bc143e6ae92308cc18832c073cf6dbaeebab313cb6590a3d964cf9e03d1b59c75c908c2d846307983a040d97291fd2a62356ad028bc462361034e435325ab762317342c76a6858d86b6465e588d2189b2240c44d7b78baf3b5f91acc6246090f41c51d41a3221edd5e166bfd6d9795128666c9ac878d43dd5bf710541ff5db00fa7e72ff89b9f162352c6a1ee72d275a8a3fe12ff2afdda90da62042ba2c6b5cb12183b18092e199be77fbde055bf9e6494f690760c7b22169478e4377312d3f3750792fbc0d5e3e8e09dc09ecfaeea27ea9ed9712c8330ced71cf5406f3f2568c9525914ae599dd8007c24d7cf", + "021048d00f9f", + "e2e2cf11821de2f220db3343fd4d0665efeb03fe537be77128ef9eb3065c5212ebd1e829f1ec144c01a41a4f5afd2a21a07dff0e5d4b2f5f666feafe6c27b627dad73649e46c3fe792a0b2cc20457b891240c971f43f082bd6fceaf51e062fc762005c9463f37a2524afa3d792fe85511abc0a9441b5a7b245846170c40095b34272976b0c6f70a7e4f58642f070b32884fc0a1a2d68abf566aa4a9d91aa053c46438c640940de232e170c1f2371688b547152db3a18ffb0933fd703fd0d44aa304f8290d7f36c76a1041a8cd792ab550044e49a90135dfe51b5e99a2df0db8238cd783bae5b0964133858864b48abcc733be4375de6df474c48e16fb368d44c823bbcfe6530b01f691ca5ef9232ced885bbd7db0727eab3d71a6647e32f10232b4f4b1f5d80afe59d84658ea8558450c325b482ea60f5bd313bc5252ec7d23eb48223659302b5ea6aa1d06667dc308780c630dd0a3bc12410b3f1cb67a134974843a0c329b840e3fe0585999fcaf357721fe545fcf4bc506f2ba6aef3b7162625b8788a7d67db13ebc1461150b2fce010ec25ebb6c111f2b84b7dcb8a8bf105d2a5dc0292a68bad5a80d1cd8b9a2dbb2ff84c1392d177164e578fb58d4aeb41c8434c43f47785d49eb1ac71cb68983c03a04151d48cc42b729b7c34c30a8ebdf18c5486", + "b5e0287e95" + }, + { /* i=1387 cDividendBits=1375 cDivisorBits=836 */ + "2a7042b554684da310765b9a2dcd3eacb9ee563054e08046764b2657abf257e1fd919e515769524228762f4cc7dbd6768256c827b71ae2fb66f0eb9c435b3d0200dc00976f35bf7fe50ed434d6f536b9ec213a38a178ace149e5796a21dfeb54310df00f855c5d44be19775da84fd9c841ec36044915720e9fdd0c6d32f9ab06b3424faca4fb9b2d75a4aa68f71a1044f187a00364306817984862cb851925fa283d12d1c888bfc9aaf082f7", + "0ea8350dd71c5ad8e893b87d0431b98f892f33806e2e6f35a726f7cfbfe403df25403e8de01264fe109f0231cf46a5c7a194925cea2dafd35ae7f37b3ec1a0c259dcb89cee0635ebb89bdf7e0035eb3c0527c43fab0f904b26bdd292c09f79bdb3b0a6485b8fa690ad", + "02e53b068d74be2d55ed995db72b3360134c5f917aeaf62356046e28a849bf81d94dd8a4746d263d43fa998ead914867eb615dca8b60597fc22c6423abb296b7a7bed31e", + "01cb1e08f06a28b99bca481b0fc7c2647c38d8971206f36667697f8e63c4faae27ab806303dc230efda23f75162ba56cba7768d78c1a8c712d66dd85196de78cbc85b9cd29a90b63e196670a5ebbae994f0638924518dbe16897f4203a431d48d2289dbdfd50c6f7b1" + }, + { /* i=1388 cDividendBits=2431 cDivisorBits=214 */ + "75771df803f5b98056858a5f4a784a9b3de78a86c9389e458074ea7b6359b7d95c472b373f6b0ae550a43e97f1dd33d0f021333e9431fb94d44c7b37f06324f1f9e077ed8756a47261416f2d4e50364763cdf9301e03940e701417522585400e1171868a9224aa469d54567ede65fc5a4f58d843ecb208063ba827a15193e71ebfbb768cb1bd432c75f83ad25dfe98e4ad9a45ef46aa1b1c37c18e4280a276f8ac41af0be2ffd02be0ea551cdbf7609266dbe73faff7de7ae4f6e4e690632f03454467cb6b3c063d59359b9717383e4e40b2abcc028504d4f6bc58ddc1f03427f3ee55e9850887cd32ce3a2e64b269ec4c20cd3d6b2b5b7c3a403b18302694f6bce688c41692d66f72bacca777900c4eee2c831c751eef13e22c9222573fc87cda5e187913b587a3695789f97c156f0d", + "391dfcb2d1edd713e9611233051f13211a3a481f33440d3de31aa8", + "020e7b44c62e8eb42d88a614cf24076b99d26c63cf8aa4722561ac39458c52c7bf954f7f346d69d2e47b66eb90a21c5fd8c720678390d27e8338074d001b87567e5732e9f5ee0c1ffa5765bb3491f609423d83bc37a960c31e11c07b52e28d79950dbeeadc223341434ea161087a97d78a6152f3d548520a6ab9d1a6465ab0b194147c86e324df80259537f7815f3593a23477a754bb6e4053cb7ed91ee20f2ff94ed69f02f57401d1a1df6f0a46ad84980a5fac793a0fcd91bbca21a17d124fc1e50da6b1ae6f0d6f1e301b51c262af230a97d3b066d24d0f966a0e120215be2743342f7f58e405079f23cb6df1efef6f5d06170e18a667424a10d6b65caba8a397cf13b937a6e590f85aad42e2d333653fbf110687", + "1987a1f3eaf5f953af44b00ea5bfc8b070747ebfc8f33a698a7075" + }, + { /* i=1389 cDividendBits=2383 cDivisorBits=400 */ + "2d21b3d12afc2ad5ca1a0c4c040e1706f25ff859fe5aaf981094c9b2aa0709b62f2cd1f15ca202dec63c0d6d4c2ed43f75d5eedc3e80bce3e8056eba7ad481fcb77b4593e4000b967f692b36459e8ca01702b3844289c11b3f04ed80003c9dde548987831d8a9087c7ca9714d91ab75650958e355c3c08d2e7d257a04f3388ec5d5dd44ab4c776084e0df311d20d68183532d87c8c08bfd77c29a55bc5c1df94ccda9ea575e0c9f7e96176e8c767cdbd2e48ddeae0da29d1628b35cf9bfefac03e9d0f8cbadb73d261e2f33b3c90adad51f44bc376b39f738893c1fbc94e0174b17f0f82431158d033260015b92436f58428dd2832175cbe5d4fcec006792db62316cd8c03bd884508bfd863473a7d05d9fac32c055cc8ba284696da6962583531a79f9182908749914f", + "d990abe178237b126039b27bc35af1a65d044e01a8f93cdccd51dfaf4f4c641d3695efcb23a9f322043c58dd3e614f31a4ef", + "351ac522f340abd5ae81a597eb4e9e939f796029f5269b6537f7cc38b5b64a9c6bee8042fe869eff2aa905ee1c94e91a8be049a1b599a92ab8da7e536d604911ad26b48afa2c4407c55c6e82e5c49dff482cf60692988512ec5d049e20984a4569cec62677ffc18c83b93e93a367880831d268696519b45e41f15153c67b11827e0a89b6eb00ccd60042a9ecd51ab9ccc13698402f1fb1037db4fe73387d875b49306f402e9e1a12c7bf6699bfe4b50a9d833f722f85c66e930c25c969e25b34114891a52d4416c6ae101ec6ca730388a49e99b956bda5308eaae0324d581054ca20eb293fd923aa4ac94ebdb5920981731ae0fc251a4e8b", + "8740b065554c1a88b4fbb9ee327f0b46e7f3d937b75ab9b2e41e238efb1ca16989788f52901d018718ad0da54a741bce318a" + }, + { /* i=1390 cDividendBits=2785 cDivisorBits=551 */ + "017318ddd9efc022780a9d3fe2acdbffc796a21a089452a0def5cac95dd7fc8126d253f51eb35197e5d77049e3479387bba7b0f0e9a0b416ee8ec78baa21cead39337f5455e67d96dad0d89196e593bfb3572355139481cce7277c6933abc3f90c38493a20f903e449ad6fdab97f9b54c8e29fe3f41d24c404978bc041539cedb4680217ee1cc48d17e4fc96bb595963e43d042322d938943ef0678aa4d15654f80b6f87efd3704ed6ab58fab152565eb7aa17a1735d6a4b6790d2c77bcd386c61b5b6181f0fd4efd453556bc8ceaca44f9b2f1fdb352ef9ee8f74c42b4b5fdaf392b3309d085c838721cbb82966fcd40c274f3598227b4d1233308382f40d0a7f981d4f073aa7c83045728bc544a1b6f3820e223bc6be8f1924035849a6d9f64d20cb94f0a7117fdc5bc3474bc60326c77f74569f28b227db3aef1f02177f2b7b1842c3f38686c3dabb1b011d5f9b0d92ca4e75d3869bc0878d475df0", + "5efb0088774a1c27a4ed160ab05c80de222af07ed430a62afced4320f06ffb90d774c6b24729f4836f870f08d2845c7e9621497afefb4f4a222971107aa6739c5fca2ef0d7", + "03e836f4cb8aa8f268a49c459e5a063e7a5dfa239a39907b85ff2bff478c9b071682dad17f5ddb07ae22649e204bff647ed019aedc6573bebaee6544a5c2441d8d5310f36b5602e8301513c6a9717d18e2da5c8b4cce51788bd3da37467db1e4c12dc7df0b4d5b3bbbd9c1767b7992ad1341ccdf26c2e7ee644f1bc8f2484732d81364cb8d8b7ee243b236b5d1426e2fde911dba46f404217daf0354fecef0a0c0152f62e4cead5c36f90c2b370356e82986b1aa04d7a1234954a85ca5758448559f49c165896821ebeea25b945bc3038a8ac077dcbed5d30c0a1a0c96a85c370b4bbd6d6eaf9e13dd3a029df0d2834c8999a1fe8a61403a071acd3f2aab135ca5e6ae564b318f97807c62c8753db4271c6de11154a1d709", + "2bea111509451ce82cfc9d0f8412bf258d29baf67e9afcbcd6db71f57c0785fee041381f5d43622b63baa8bd4d7449e19edbbfdd51ca40eb4e9700998f0f4b4a8902255561" + }, + { /* i=1391 cDividendBits=303 cDivisorBits=173 */ + "5bf8235c4d9968c63d80f3e8ca282a94258c08411b7d000c8b9f450cef48e780cd54d377f22f", + "0da5a13bbd09845e840474135d9d9483123a239fd43b", + "06bd39bc74f4e884218df32598fa4eedc7", + "0bd622642540aae38e2bae842daf95a9552be2c55952" + }, + { /* i=1392 cDividendBits=211 cDivisorBits=37 */ + "063b1356cd4c7208cfce9345786c8720479ef8314b62498b2a3d28", + "0496e5ef6a", + "015b8d8ea3e67f836be2e7d483e9221cac652622f810ff", + "da7a2292" + }, + { /* i=1393 cDividendBits=19 cDivisorBits=9 */ + "050112", + "8e", + "0905", + "4c" + }, + { /* i=1394 cDividendBits=3698 cDivisorBits=3148 */ + "0cdd2cf1c6287d309e7c981c3551d56e76b338813761b00147d34e6ead501b0f774c331c14265bb7a9cad9a378e19e1ae058d5f9b360ebaa4175576707faf27383245276b18fdfd805c8fd57c33817a6980d0bc993fd482ca72ad0f62eda54ab81047c20bf87c0ee5037713779fdba52bd8f7aecb1fc8c799374e5eeee5c47d0f11bbb03f464d5d3f7bbc57ffa8ec8f787ae0e5e69eb534147d7c0e7050ebef97913cf2bb6ee8b881c04edd99dddc40834ad2d2471d091059d1d44b2db1bc5934fb2014e5e8ce1021186187d1707d9e26704a7f3ba5ce0d52b5bbffdd38092c491bd395ad6161b8dfc1b5334150ad170ff8f6331452f7738b6fff0ea1f9d47b0251c411fd6a4328bf1bb66557790c783e55cb31ad2e8a314bc92aabb3090ead11c49ca06f19064f53acbdb733b35f147560e13ee1bfcff1345b81ac8a193c07a426810cb0e683ce02664dc7cdb806fcb550bdfb974be8cbaa564dcfea63491ddddc81fa45de64afcf70d329a5e75d79657ebbb9c57320ef01a8d56e771c3be4a51fe64f4e66b5d2e98e4454b8b73b3966b25fbda1f2c5a98c53d5097c485c471c335f1e8453e26799877c712436a271e3c1aeed108543a1863d7f08235dc5d18fbeca19f29027a7e50f3247a5b29", + "02064c721f3ea77f8fc952cae458b279599ea5622172bcfaa2982fcf16e0ca3cd6adf6617bdaf3fe284855316c878ab03cc0bb1a35c6acec6fb3cb7772d1b5d23ecdd9560fa5e365ae2803092aa2a505412356d43dd00c22f08417059c698cbe71fc3efb434b01f725dcd96bbd7ad776a98370e71c6c2145bc568a7bcb2a0ae1d93d7345058c5361b72e7e0e54212e309823db167aec88a0ce8f0a52145167602786577b82c8b013d6049f15db24b69ed5cf7c91aa370b76a0e0f0d71b877a50c487666724a41cbf5e06e83daf74990d6456d079704f95d42a49f67404213aefac0dfdaa83909c38043de226209430e8fd09baf8fe2f9c7590e4cf0e03180537f14cf62716e734adea5dd5217170070981e4d02a652dd8a19feba795ee077adead1ff02eb2be1d9eb034c24d6cb276673e2d878a8c6f60c19b5add121537034b21e818edf078b3dd2591b3eaafc85483691bc43d53c66cc7ebd8e89217951d62514e4839fb5627b0b6daf1c8d1e779116666c4052a17c5282b9f0176807df7f331ae59eb1b8b4d6e4890", + "065a93e0bf49f10f99096b463a29f0270ceb075618ff658b54e956013bbcab0ab774ca37498aa2bb24d54bae3d0c4d263324046f34668ba4cef72967c9fd46a6f66610fb4c", + "9f267087e2036a8555358526920462be7b933b858adac1ce1a13496456da9393ea98d0857fafda9325ca8cafaa0b14f0c99050a8405ab371ce1635dc5aead38cff371fdfc98bbd84d66406f64934bc368a492a82829b39762ea212ec3962f457f201e79acf7f4c2c1c5ed3e399b8fe79495b076b7ea8b0d1b0f285ff742f3f825946a6aa6c03fbb4246ea787073d23f6a78464a7d186a6b142e93b67cec9b3702f0526b7caadedb2f8a4035591e3a0b3847ad6ae7c89f7bb521dedffa234cd03e262af745ad208b60f2e0f24c7789073c0edd84864fae498876628264aa23484a362453ee5cc10850f5f9d55acf61b579c31e895598e05ef842e2650fdf77bba35550d6bb53dcab77f8de437c29097ff99e0bd3570fcea86093d252ab506d4c78ec1a79f2d45b119326c0b60354c8e6077dea5b9f90d1dc2564cc01d003fe9fd0bea89aa8ceb2bca7902e056f5ffd84021018367083cac57d0874585bc5108cf1ff84214de3ef106d9a91e16433ebdbb3cfd7515e4008fca26ecb513fe37be4c6af8baac7f1d97a069" + }, + { /* i=1395 cDividendBits=360 cDivisorBits=355 */ + "b8013f304aa7a71155ba3aedb966b5289de02f0fd1410d2ac1ba7fcd99b173e4d5ea9879bf216f22826631e7", + "044c7bb665bf61e00991301acc63abeb34ed45db287dcf17d40888f204c3e23d8c886d6c4be3716e5c82135914", + "00", + "b8013f304aa7a71155ba3aedb966b5289de02f0fd1410d2ac1ba7fcd99b173e4d5ea9879bf216f22826631e7" + }, + { /* i=1396 cDividendBits=1828 cDivisorBits=414 */ + "0be8603f102184b21830bdc6b619714b9a42ffdd1a46d2e3191e0a2b9f4b4929dea1f5513d990c96a4d7ec8b9d021d7d49b2e1cd8968b1f6895636e9969a95d7ff97f2a4bc0a37c2063cbf775a82cb66603e44800bdbfcb901d2c2f56ffea867cb0167535be440916fc611271c5ad9c4165c4c3013dc9a1501cb8b2dff0f90404dfe7af4a0669d0bc9582be2e35d7f6c8aca9025cf9ac8e47b443b06e471ddfc53ef0105c0ed6a74cf4d8ce2f26e4d2f47cedf3e2bc9588b405fd21529cdcd7938e8b4ab045c44d67b672096f91f10488a4a6a4862e8489716df989d9157cd6a71769aa0e7", + "1c90188bc623e3050f2840a949e84c5dd6625f7667c519d7aacbee9820e084908d8370d525c871d2e346345b67b845aeda80d764", + "6ab9a0e38f199a29c88c753a32e3456bbab32c65a4e81295b1e2afb88463e6b3ece061e3e90d06ce172a1bdcce1cd08283a42ff4bd1c18d1e1906e4c6482b5a8f9175e9a19531bf4d64c2276bf3152b30e29774c7351d20ea4124f868ef1c97fc8da80eea9d07da8b9e4a7c7002bd8c510d2fdd88a7de88f3d5f01ad17e6f0b22ba07306ff289081526128fa2e61ee6a4872b0306227988480b0d11af0edaac8785128dc39b4e719be63da168b6523813a", + "187c06247c836eaee81cb38d5f776b03df0d9f574c307b9601d46ffed563f6b8d891bb91be0d7309408e6df5ac3444d52234703f" + }, + { /* i=1397 cDividendBits=1972 cDivisorBits=256 */ + "01bd752f16d050ac8af1f9dd7e29218de5fbd85e541f9b61dbc9b541c21de60764e83d0c6de0853f58cc6aecf8e12e76959875cba671cca9da3ede3725ffa341b2e7a87008aa06890a609bb299e565a5d0579b64bf793d553ed8b9f2a3ceba1df5844477ce1daf1e3b255206b10d8e37cd2d5c4651b3ab88e4c7314ba48297cd1e655de171cc2ae481a3bf69be1c872ddda4404584c4a0c2d868ab58fca30977e9e6280d0faac86ecfffab569abd43d93aa04c8ca716761168bec241b360c70ce72464b118baf13c329ff1d4e1695156a484691aa10129ae22bf5578caad67d0be24a3070b1f3aba8708432c9c6351537e670bf6222acd", + "a4f9221e2819068ee518c9461fff404df363fe43967656de482a402fcb515171", + "02b33f2f9eb68af3dddbaa3648c684ade5bfc42537bf9ceab3d08bef56985866162d94d1012e66c18e6f4b21d11ea4220519c3f735812f8cee2c1e2a4ff9da95738377f15afb6e87d390b8cae3ef14be56f9373887157b6461616f90d9da531d4783e689319be8cc2e9eb5b66b1dc7f90a2251d7dc7f54ee06cf2f501f06e82416b23539d669ae6e83afef220084d9620d860d3d02c2b896222f12f545f62ddb8b6e0fa5f1bfdd1b333a90afb7f130aff13cfd0a0f4fd3c95caefa6fb56297b431c3d0c95419fd6ee8cff919a480f03f4c93e194544741", + "52f8c6fbdfebecad131293a7863cb1c1914948c128407f0436f4a870bbd2261c" + }, + { /* i=1398 cDividendBits=3192 cDivisorBits=1193 */ + "d4ced0dd19d646410dd0a92386d68baf5fac8597d63f2fe6a6fb7eb4fb5c44ddd511aec3fb8d1f0a5aa1588d880c6feaa416044f83bdf529c331382e6013ffa479c83aa8669e65745db85f888f59a8a407e6923c21ac8ee7e310a50ec73790446c0bde9d1b52134c22c13d99d53ea02bdb8d3d7541d8dcaadfd8f2a2d9569a5494bd00c24dc26c2933dee418a2539fc5e729967398bde665070590e09381373ba4332ba829d50eb46273395b4b38f379dc60583f26c230801ae1a19ea33074ec8054eade3a9a7b062d93c829f06fec2a14ca150de39b3e86034c63a5602bfabd4c737c77144b61a80b2190bbf3569bdf88025c9ba3d29365e7b39f1d6e315ff4dbec1f963c4259e6c8c107ca7cc8c010e1f4784d8e6aac1ef301a51d59b55eedefaf1d7c67436a6e067598611d68036324850a1d5f086ce27ac1ad1ce78c92713002af7ebe6fd9a470e68b1323d059c543513bf7b17a00f2b37e6d5882615f4b374f693b95c8a1cf86106f7711aafb3b170f583f405ac25deed80eb72f23a51620ee3ca2da38d97b3af927a4740bb5", + "01f7009001c0191c3ebc910eb13d858eb91804b4f59e044fe023246dedae0d19996bb35765d1fbef2a1ac438b0467b60d43e9986de0b8e91cdb42afab26b8db66a3ddac255ae9a7ea4db9820c28f810b891c612ce4152d7044912b289b79130e93fb37e7d11f4b74f0ded5736f676eb53f4dfa4abf44bda5e7b766a602bf2458beffa6aba34a44a59d31f33291334834f8f064ac0729", + "6c4eabfe04d75470b562edc4aa80f3ac19f13b92ce96e176b032d543d24e7560ad8a4dcc00ca16752eab1b939ffed6272336921d9ba6d9f8a9d104c52794b6baf832b4646eb563306cca8ea9ab064cb47226ebce05c4c8dc07dd1b0d43eec10dae75080e7a65e8bd11fabc1e0956c3f41aef16655f1552e0e12d15a4d7d23fbbc217453db5a14e9d3690875ad821117b037d830f535d0f722cb493b8b9eeecce5c856176e90c608660ef88e38d34f020909807c3b0908495429220a643c8baf1233f7e11eeb86e70060c5672ac4f15235f0d81576524a8c05f415769f5ea5bdaf8d04351e84e347d28a20cac0407c86217d340fd634e075cb1aa", + "01d87d8b5d4e903dcd28cddc181a6a28a4a873850974fc7c8b4bdb6a22b3385b7cd8c0db1584c7bbfb9afcd082fb43261c63b10910852b94ee8a0ecc560ab6ab1c460f541c6bc515947fb8f99da4048349b1f17ed3cb9015bf19a6164d8e6d67446a6fdbcfe639adfc2f0a28a531bc9c7ba7043d3884a7bbc24359e364fd2825fc5a78fc70fa9c81ffe3c8320c41581688672787f17b" + }, + { /* i=1399 cDividendBits=398 cDivisorBits=59 */ + "2c3fb06f7f98542f95fb004fe1f409b10198f7c21a5c56cb85201a349cf806fb53c2943517f552489fad2479562777c9a6a2", + "7bf65e7759ebd3", + "5b614b63559d377c7c7e6e71c5bf9a09804202e49b66699b622985aa7ed8024400d19a8c70e6818459fc8a", + "40468fd4d1d2e4" + }, + { /* i=1400 cDividendBits=2183 cDivisorBits=524 */ + "3016f22b86abec20dfb8623f4974ee2579ca99f6742442e3fe0a2dba5e126aaf1e10504d3c07888d0729ca6c71ece783c286e142c1ff989cea26ae013555d3bcbcfb18d2f0c425740ca6a2de187d3df4b8cd10439a489b06c8bc3b76e8af50e8cca8f563af8d8fb5de6337ee08a82543f6c67cb2cb5ba44e42a27321e0d18a278173e65c4c0118fdcc7ef8474d819e5e8d49345f5200df5da2c07a6e23912c6703f7f40a423586b804f22c6e13f24c715b5e6d27d46ded541c3e3db755f2202f7e155f180c553f5fb103f6e090023c6e07a2ceabef62ad61f67944f84da3f6a1d2f46c58e018dd423fe883cc6af90002a22f0d13a505978d2d8ff7c281d418329348f606eaae430d54492ce7740a4d81e4", + "03b4a41870266ee22ba1de5e3e3647f52750baf8c8478e99b2ade945a1e5dec690bb03e2eb5bc161f3f3be1a1ee3e9edbfa69ac5675ffe4a16c6a7825dba1b64bde8", + "0cfa3a7fb4602549f360bd4d052576c865c2678d8cc2006cb42e0cd5f6e7def6a74a6d2ddae1bf11af4a7f73272db222a28ef7d1d3e3009e537e6d3237d373008f698a206e49cc93dffa12b42370355efc3fa7f152e7b3c97d37abc841ef1fd34345444f320486eef1ded405a9e36ab44cd71326ddb20e9446fb94c5f033119439aa833e9780168641362ed1f0fbbdc3a3cbfa91a4f5895f0e75ad4af81168d16f6c48d101d75537f062e55a9f80d16a710de75c574887c6fc6648afda179a1c2f6ffc265433838898e2865b2773cc4b", + "5848772d59add38daeb06cd69ef94e74d5d65cdfac71f3de924865745633df7f08f50874fb588f5c68a3d494c6d04b7e5bbc0742a98ec4a15dff7d8b72153cfeec" + }, + { /* i=1401 cDividendBits=3928 cDivisorBits=3183 */ + "475bbc39d6ba28a702434acd57d750aa32bf74c00168724f91333a22172e586e0ae5a069cdbcdb1c483659f65209fa1f389ed17aae77c661a26de92e34353be56e7ce67857be534934dae713499c026700f7d46da23cb0a71aae978a068d2ce2eabba2e82032285e41370e8d601a6448d1a2b86af86eb0a15f5170de0e56e6f184ad474f626018e61a06b923aa471dfb5f803ef9c492386233ba2a698eee27feb43f26be7e1b36507db925fb6811db13d9810a5d5a5a297fffbda9c126cc5d738a48d7b6cba965a4e176e6bfdc6efbf7f3b7860678ad5e231f8ca2bf212480ba57e25428316270a062e0643b580d0a11dc52f131b80a9ae2ebbee522daa22146d6774be9e6d598d8dbd96bc3c2711d2c91e773dfa3d67c83cc71e0f57c5dcd0764a0ef3c1e5bbdae38d89e94d83ca48c4fd9aec12e8b8fdfdb725739413d2eac3d554973e2547a5bbe1aab64a6cb0adde0eeb2056258e56e3dd4d3fabdb2abe7b5c43e9c5594d31fa550aa34eecfa3aef62a7da8f53b916a6ffff70cd3cd6ce8e561bcb549ba99b6b75dfa96c00bef9f44eb37026d1736803db0173567b3d285fc7bd741e0ce82a53286b9ba35a56c3f6b214791aa6f123147332b5c599c8e7c07424377cb8dbd7ab2029011b2f582c0d6cb68aee9fb55f001abe0e4bfd213fdc2b6db3b7b2db11f4a3b8d", + "27e04cb40d538fb9f71200e0c48dddd46dc6932e82237e5d5049ea219b542654296b0cc1182dccbf2705c856fd405cf38287fed03710a2d8f68a5208ad3d11145b5a6315d508ec3076d1e542440faad572a7708f0c2fc9dc18e79863c0770eb219ad857c3bd2ce3c44465ad6fcde68ed64aba6cf3ceb6a70375e1ee99945ad4385e13a2192a7bd892003e6c9a3b2640acc6c8e7f7a2efa4d875dc2fb9b8e5734cd1671e9fa59ae749420cd5a9fa560acc4276e1dee742181b38944c9b1fd9de0068528993309610821ce54bea4133065a0cea024a5ceaf76684bc473778818b1975f472c562fc0bf77fa97134fb7110073d3b0d67f4128d2d9b7d8a48da09c4c18346c46a9e804257edada2dc947bf7a689e035a061d4ca88d4cd95a2ca88d45b61e9ae2eec6b1afff4ced157832ba99c43f02e3453a0790e5251d7e2027f486513ba5ec04f2b8df944700f454cc847b1298103f49e86b967cdd2c80146701dec2657f205202b5ca112475bf565c1be20f1476ee89df1ff4ecef329a007caab52ee0f32f7de78903325d71b28574", + "01ca1c903ac87bfce8b679ecc294df6a72930b474444ea2025e11ab52f8ebaf8bfcb903c80edfb7faf994746da5936cfebe7bda938285d390c24215fa6cdc401ea6aded5ff7c0e3ae14b0c1f7b19927c956af123e37c36075f333e0645c2", + "193594184a92c06634a7d2b7b7c6b9f460263a0b8328113ed6aaa5a74d25fbfb5a6f7bc558fd210ba8467636d8adfa22bc75ad3a740a4a100a4c2a26dd72cfa4d3cc5c4c4d4d1bd4da2d2fee183ecafe148a31b71f4fea473bd38b32e0f221b4632dd468a73b853b4c0217ccbf01577d3dedc6cce69d2eded4338c6510ee237dfbb5a77c1e0a494724f458babb31f4f1b6cf5a0ef8abcbb11f0b70dbfa702508c177eb1347b0dd6b6bbdfe0a8f9962b5d1a76280f574d5832b2c6933b448183a4f06cb2a9810484c83ce849f62611ef09bbd1e024101e1166d2e6af77cea091be5c9de3395ebf1858c7c18ffbdf13602c10caffcddf2ee3d4b3afe7e169c2bb175a194956bd334e8de7b97196a5dabb25f760b4907d25a68ef63f6ff9d1470483e017e1fbfb6cafd6ba09af8213b4918bcdb7f719ca3876f473f888381132b96256816e2daab91ce54258ec8e0b01f53f301aab5ec48a07dc55fa72d16c4ab5639f50c092fa1b52351fad8b2d1334bdb0041932c7e435905038f0f56689bed6d679f7cb1ef2ab67f4a9e9f50d5a5" + }, + { /* i=1402 cDividendBits=1582 cDivisorBits=1502 */ + "20dd5595b2ced8f8c6c73f1d03f0da98c1a913dc204aa288700e69d734485e5bd270a26dedd4ae1745e33d4f5bc1d1c881535b7a56869368c9c77edb0b611e0ee63e943c6da87bcd434cf39fef4c613d7130631a59a7375f564947507f4312ecb6249e78bf32113c96ebc147c66b0e7b252faf71faf757bd0b0f6855363439df8fcab48893cc41163c0c17743684dbdb7c99b0de0d8de8cba863a7a5a8f3515ed62e2b808ff6498cd97d54098c2f34375c56d3610a47fa0fbb1426fdd1e3eca01d7f2d6b085c", + "2a2725ea82bfd2ae4adbb9532a5e575e16ff1a95eca25175052ff3b8e215da9d530a979d32ad5318814b1625061332898a52e8a915abd3d711f76b9f107a769da7af423107f7febe3dffbeb17f268b71bafc64e62bf62c0295917560202a3c5fe7283e59b5f75f3e49e928612e8b4eed6d46c08b43617a6da14d9bc7d101459e1f9e7b435a7ef56c19a44d7a67c5b30273e9e664288de033a0f6427a3762fb8022bcb6e8d7a12cc12d2f99b510430112a67277810e2ec19cc3402b88", + "c7973cd9cd1f5832f926", + "0fc9d157e16e1189cf82969eae7ada5fb274bc44eee2d755cacb4ce3904a0e9b3809c0d051c29188dbe9a4308336a3b2a23786cebd0c1c1edb8470c4d5dc042b5d037991531ede0a906b4422005845b38b4e3488342fefeaf7bf07d3bb9c27c5fc539db9042be804713bc30ca5187f53babdc2ccfc17421ceaf9c7e5f691540a2f16b56aea973ae17af2cc5117d28c697a327c3e774e3b6c61be5a09342d81e6cf436ba24a0069327ea61c66b1dab7bd56a5cb19d5b8875986fd4a2c" + }, + { /* i=1403 cDividendBits=477 cDivisorBits=156 */ + "020a09455a0e7cdba292854aa28a32bc67a7900b3e8944db99d82e96f7516951114a7f105441d794fb817a9a61b4187bc482307506329ed63804f83b", + "07ec13a698ecba0f64a703dbd68cf435ac53c40f", + "41e543f86c8ca31b46b50f594f80d5cc42089896820c2ed2ff2ec762de09f6bac5470d8fa97f1dc0", + "02a29b48bddbe71eadb0a565208550b2518b39fb" + }, + { /* i=1404 cDividendBits=3870 cDivisorBits=1440 */ + "04cf8c5d5aeb8c80c369d149ed00682c4dd777888093651ba30dff1daed10bac694bf9b0d7db9da020fd4d5ce52f12970f2a148e17ad5d84a8bd7523a4e074bbc43a29379da349ff1787d657fbf28c16fe6f9eafd187b518db2534719ff58a07310508422a5d501e3d03c8ce2ec745519b875f221c23f9d06f6d5840c0f843a66ff9a3cfe3eb5114d908d9a78fe8729dd37c0bc2022e8cc610e5f18539e9a12cc72dc0de68da88367269e6100b0b44f8f39f3935d8cc1a156d9f0410d707536f0772985d8acff09582ac871c6acfcc8c998b1559e2144deaa284451eb22ec7f2936b97bf64335d0758bcd9a6e5233e5a57947e7209c567164fd3553227c1d4576b70d29e2087100b669afa95c19d3830f5a5b435af11f8ca817a8450287c4015bbb7b70774618f077893ff74bbece4eb9f3b4a97bb53054274717ff0c345293038fca69412d4392d1182a1000606740f0d26311bef71d9e3dd5f7f6f1d048fa4bd42d795420764ad6eedbb2ef026b59218304847c915d616b0b08d2023564f6c76e2c7d60c65580e0e3f74bc117906aaa386512575b94160208e77e87c3ce13e2cb500660bb3ccec691231f86baada513d91a39c586aefa690cbf5ff8282e2774e4c45c035a9bc95d7041b651097b583528d30f4d24be83facc120d81e5ce2be8cc2303a", + "7cd630d0b80105b2bcb1c28d4a33d9cc3d22b8c3ff124c3b46f2cd1f925d484f779753c1be6c7ee36874a0f646d85a890095d15fdeafd5d3c8cae92c24aee2bdcdcbf88ea4eb79612f5e97b93ff17c66a05c5506a9e76fe38d79674f4548ed4befcefc3fa26cdcca85be8bb6856a414da33e0177206393756941cc0ea8c22695e79e96ed8d03b07eb6a8332f058d50b95e378d3b8b2ed03dee6591a40832c987320055a5862dfcd943f8c01cd3058568e9c89c40", + "09dd82b6bb07336e3d7c0896c8ecfdcd301e023d389f6f3b90fe3b57865c218f4423d85da1b06926b532143db0b81b0fb82828a75c2bb5626f775996a13c3cad0366691f187d8f46f633e905935dcf2d96012148a940ad94000b880660c5f8666aa0de4e9a7ceaf485dacd37207fcccf2862252b42f4be5ae001ec700f975e5c8881f1326ca35930ca6d0e18bfb2143412fc7c2880e72e519a1ff64b7e747c9fa8cc9eb9e5e2eeee36952f7dffd167fb1771f6ccf771d45e1645594016a130a8872bb551186e666622cbb117fcd74e797dc762fcf9975bd762a4a48e6a2506b6b5c2931201d79e145245f6f688c4573af3faf1d506ce1656e893dabf6d9ee6db984933d4b5e1b2ffd0f01cc21781b85a37e10c05fc5b8e625740fd1edda0ffcfa11be51398eafa5edd36830f17f59732", + "103c940c19c41d8f3022e9a9f96c872691e61b429b06cdb8517e0aaf1ca2e07c521ff80f973da5c55897a8ed47127decce9df0d92d0cf55e3af463abc55f981e72d3eb98b21d1cde330b0d0e05586d10b209f39828f7e6525684eb5c74b6ed5b5b7a5ec4127e3d5d4bef01fe181fc7f44f2862a728db20a1e03d7a8962ba3aaa6675bfde23c43756123d183137ba01627336065cf12a2ab8b3b4f01da1d425cd36a0b0eaa89397abc10447fdfaf947944629ebba" + }, + { /* i=1405 cDividendBits=3750 cDivisorBits=1654 */ + "268cb96f58e88b2747d370d147ca844c03cf6f57e8a5e02ae11cf30aa19a863a333b68e4c79b5ea850b317f99f748b8c5987478ddd01e226d7c9870b1aa6df2ca66060b002342bd2805fb662cf7e1b410b985b67eb0764d4566e416e79af556b67cb8a77fbf60f8ef6f7c2ed6b382065485e6b6ad15590b9a69f23979ff30805bf76c36cd41104125624a647dfb17cb7134ccece647016a2ec610b2bdef95bc3ef80c534415aa3a9b088f982a10b824ee15ccf03872ba34f8b00cd05753e1d637db5890f65495cb0b10b3a657fd54eb12d05cb8777b834d9735b0a97d300654d78e800c0d7d1a9a57d5c9d43493b9db0c8c8f0114341e02aee3d2f87c7d6550e1bdf2d504659707b0ea11323c371a6682d4ffb4f17fa17de36c42c22d8781ed2fe248e915446a8de6505269c2404c5049637771ce64330d44d76109e990b3d4a83e6cf2c48189ef78432a594a1eff6043c08eb93aa14005821a8e3698572519dd4cb70bca7ad273dc2597f8e730793ad7229853e4ad0c882a1f02ea18e4e62c299484f039680cff7ca192c4ccd46b8e8cbc6d019e95ec60566944246f90d8aa89799aea76ce0bf04e0608d05f1b32a11716100becca77236254532d315d139288ca6379a970a1af6763bda8214d05c2f013aa1d00d", + "31903e476c3be6f781c87e7b91bfee6a3d526af3c7f35dbb3f72cdf1461c8d5431afc22d5bd498900ea06c26e5e3b219768fc5249159e055c90ceefbe5308bb85431cdab56991df8975f08e1bbc42bd6e57ef0bccdc0a4ac1f6411f06783df1511518d58cd31ef8007c1b83a74a56ea22a0310e85ef76e2b44d5d6f8c96fb072d308f3040121c9d09b96533bb0af94e73a7f7e2a71c5062a9e185dee2b241f2082d89bfac52563c90d4628177ebb25a12402f31cbb12195a24c697c9e4de5ba500a43bb43e962b783bd5b8ac423e32", + "c71ce9b3644ebbab618a8a5b3b464d427f3ee90f6c5f3d7547f03c124c77c4d3ecadbcd762abbaf90b9a4c72fde631ad82fa4a64c587ab499ef11e0d79b98369406c0c3ff49fc6c5ccc7801099cf12ba91a5fadc2e816dd69a82e371591f17bb929ddb5cfd652d1a9593508abf66b008d86ff13c6beb6d1dfd0d90c975a94bb624ce32b5106266d074f36e6eb161c3e4476a72a2de9338e397685e04c67264918b9523dc4a1cb9befb409ff48a155d2f05e2e1589f1f51d25497801aee8b05adf4784d6ba92a0d546540747a0471bbee350bd9718dfdf263ad6fb4b848ae4d0f61cbd051b7dbd6264198445e03b401178b68631619ed4477fbf923ce9d2cd93f36e51056afda", + "2194c50abbf1a65f35d41dbe71f666d10a8f3bded33ee04caeb8faf14d43b39c6bb8c9832e749dc86e9cb68fe7675d75f346a1f51be865f8c9fafcbeb815f57338ac6e6df35c4f2dd4a0a57f4e95983445f85de5a4690efe779a89404dc4c2b201c9461887e16fcaddc80e4face077d6a059cf1b28352c38d302c8d64c70b573041839d7adc6934ded5f31220d8aadf9b1967a1fb67a8f7e0e21ceaec5a058d45b90f7287ad0c0e6543522e02c3a6da8152c3a85af488fa8ca210c4d35be74ab86d8095ef3c0446ed2c11f3ce8ab79" + }, + { /* i=1406 cDividendBits=1478 cDivisorBits=142 */ + "99105258ab3419d4b5c6643cb1c05a4f5e420345e47a6ac1029ed6f5dcdb1d966e356a674718eb4f759f79167c72fd91b561746fb9bdd82cd7bb9cc630b5ace61f6c113d13288bd16bf803265ded296c68eca779e958f6a05c2650682d70e8228c99d3378b716013c92ae78ac7efadb2809e54ce0325b83ab635dad2c2739173a1ce36a8381c617a1f478a3665d7ffff8e2751ed3be4d635729c36337aca14754e4d154d34c7c76a63eb1d8d483cd18e51b89a5b745bb081", + "35be71dff49046f3196ee0c562d127d2c952", + "02d917d165075bf2ea2decfb9d1e9286429b3c3ff615e89e2e190398e0d26409e59e1224282c68339f02a41d4152ea2fdc7a1f6bd7792f045e1884f74cbed537e316e60f5705f2863ddcc5243d0b3e8d12c9e0de2e58afcdb316362d0541c2373c0a1eb0d569b32b5587984a1fd1784b63be3436e5367d53d3891cdcc2cded11ed5283f95268d03ed2f231b62bf72390c074d6a9445605cf36e2eb3b397190f3a2fb1caab415d6", + "1e5d6d1ee0422b63be7d99c57261ddfbabf5" + }, + { /* i=1407 cDividendBits=330 cDivisorBits=30 */ + "6f53772966452f6def6206e553bef5c74cea75196bd057c263934a6a87520c18404e56a329bc18e10d", + "3a5c54c2", + "01e8555bd54a2789f398c5178f1719d5f90734fb7c749a94728faea65ab869ab853e131c5f94", + "100be2e5" + }, + { /* i=1408 cDividendBits=276 cDivisorBits=219 */ + "e5000414bd79eefc519ec16024c8ebd0c49568b7c9336fcb0859512e7c92e8785225", + "03ca2dc3e177a4fcb2912b634f7bdbbb6b6bd4066c33b7cad7536413", + "3c6d0de6ee1b88", + "866a6de3ee49d8e99aef5964bbae0c848a7dca5ffd2cb39cf3270d" + }, + { /* i=1409 cDividendBits=1834 cDivisorBits=1810 */ + "0141c0dc22d75a5a51e4079608222edd90398bbc802c6d0d9a6922664bb5ffa8014d473bf982024a2190fffba1e1aa38c381e31f1a088dc1341af4b0878c5b0a7d744f5c1f07c5ab1aa4f94c5fe7500ac63ab3dce275844e75794a4a42e4c3db13c5324436ce58a568549a9d7abf94ca06e2b8c661fe7b3b7944691c2ab1698c57ab5f59c1570a2c074506fd13bea40206f9005549744d7463a8b4ee9c0ebb78157a814497360941372ac5309c3f2daa15b32d223c6e8d4442b7ec5de7ebce1a6614ed23e9a59772f86b7ef803218a2fd8ec0e71962ab94fe3b2a4e8977fa2d926168ba64525", + "035f4985e41d959eea1f1e0cb9e92ff8e23139eb842a423771cefe02ddb3f32cc03fdeece4e3f28d07f648c5ed5e66559d9aadbf5bea4e01db355bb984ef95fa66b8f1c6f2ae8331ca4432e2a8e62c5b3c5f9fbb182b90e867c0fe9929407039de74e23f58318ba8ca4b9309439b5c90aa73b8393ac94cce6e04acb81e68b30a40cf1ee1ce7b1f2fcc3e92c14150e84ec26d370e6b128fe8bb9d838b3e21532f1d66e22b104bdc16c73ad617b52d08dba7f253b70f9bc5f93901c3dca14f84383e58acf5bec374986c9b8608b942b9b5bcc8ccb8714f2980fd1660e439b6030b9c97e2", + "5f69bd", + "f1fdf648235e21d302bd002a5ec9c20f00c4a892ab8cb5373abb2bedce12af6079d2a4cd05b2381581e32648535aa2d8a129a0d88967dfedab67f4f92be7adf195df983cfa4df21d0ab1487acaa818cb57d34ed19daa890d83ccdb52ffa0db219e100562e8ebf8b3f04e5bcdacf5101b26b26ac3c01125df8c6027b6ce3b5c17614cf3a899d8bf12f8e52664c9029490b928da634b557affb1c6150fe0d47b6ee386686f7c676785903aa725b0be32af0fc03162922ee3df64f73f549742ec8e4f5e632d4884b441fad95a20f937efbced53b3c98e3b4deca2f0ed7536f761e0714b" + }, + { /* i=1410 cDividendBits=1546 cDivisorBits=108 */ + "0fd158681bc469660fb20be018ea26e8d138b1b61abac3cba808d0a0b4b99879b9a07663b33f0443324f49b52d8b819a297a93febd3ae76b7314296d8c8529f6c2a9fb43822730ad0569535373c66b41d8c56cba32e942d3c21db968e7cdae9f4c554e5f99abfb6e807e718059c11ea1324f70c9e8bd57ea55e663ef4a8b2c4b66b1862b597410dc36c237b9a42db019a8db0291d49d179ef86e5cacdceb9b4eda28fd530427890ec0bc27fa58961c5fcd3efd39d1d973ec33a8c5745c816cafd3", + "0df23952059c3352835906f6f7ef", + "01225ae216153c596a6078470e142f6f43fbe1bca28da0e4e10e9faac85dc24a9b25b8266cfff72bc0301d8bb9715479a9bdff229f385fa1d4f8429eaeda630742be31b6d74b012b2377d13db2d730d88106255b858f1aedd717ff2ab3fbb0b056386026c4383c287a5d3083313304df7e8f1181ffdda9840d595ff23bbab7242a7090ebd5be37ec4c10cf09ada22b5495e88d1040ffaf83fe62be751e98b1bcf508f926cbbfaa177c6473827751daaffa9dcc52", + "03c0c2fbb9d95bb1fa55052bd145" + }, + { /* i=1411 cDividendBits=2318 cDivisorBits=1024 */ + "3a4f33140ad2f22ed4eee565dd61e7c88475aa5b5b7a68d719266f96619a04cc3237b5ed507ef22b294105d0191c8cfdb0347900d760c6a73cfd07abbcf3fb40c05e9d3bf19304d55f6e584927a90706788a7812112e0e1ce3dd93ef14c19cf8cf2e2ab261faafe18e80a362b8f1da2ce47ec9475204573a1b4463d42610dace785f87995c402fa966373717a64452a8bedaf6be26a7044bc9709a2dced2f348c9a2efb720b5e5e50a6d2d95e89af1d09467415d722e59b5a1cf66e37c9198019f738f42b952568a3c06a2b277874dc1b5fa2eaa153ef64af1382619e3769eeee64e83fee979d60c0f98419a2a323e2c64d6b0e1234376d47283657c0c069f7d326acc4a6633ecac10f377eacde30e3940d1a1757ee12ee3800abf2192d270954da5", + "9709df0cbebe08599366ddb847a02ea6448f7374b554fb4a2ca276aa1c5b5595ca118321ebbbb32d788cc1a84c594b9dd9272ca3b38333693bbc16fb14941a24cf1512fcf93e9f4e25e47c536b14e3bfca1aae3e020c58ed4156806ebdc9cae3d70931b0bbc1363c81f8756a9eab209f01ac08f95b033795757e3a18f2a2663d", + "62d4945601ab06186e97486bddcd1a226dbd98dd8beef780c532a3326e2604d5e423af9a5917a4df245755afaae14ce14e6d56e3d5be973277877a6431f48975d2dfacb395daca59c56e9eb6fd3046a7d9f1a9f8dce34d691ed11e54d66eabfdb41fb044e3083ab71fb37a2d3959bef589d3a777e32f90fb0fc82f0d7cc45c0aac5cc175f01b2be1ba8dc8fcfd9a74fe1cfadc09df8656474abcb14acbdc69f8cd9b", + "0ae6f117817f84cdf508efcbec760af4318e86f1c5e44b1b7fa363bb92eebe19fead0c93504314e40a3eba11fbf468237e26382b7dcf5826fe658d9d6c9436234aedca37ba8fe2f8584d3da706429bfdc29ece1fbd3dfb6dee24ca0cab5842f7fd54d7730e02ebbf9df36b372814413df7ceff114533b914fe3a86bd6c4a8db6" + }, + { /* i=1412 cDividendBits=702 cDivisorBits=212 */ + "3cf1f6c45f5ceb4c563aab14c98dff7155ba5574845e57263e310ed564f572e6021d81af46f662cc9e1713db207988b1b22b5b54d4bc5291448517d92bcde8bbe87cdaf571a51e30de3a0ec2ea1973d53dfe0c29c050d28d", + "055645e6f30c4dd3b5c9751cc3ed5540a7f2c7b7bf952fcfddf770", + "0b6b5b2e025bff61b89f1126f36ad43238b9040724e670f2f856a1d19995e942e92e791757e29a278696a754002d1cf3ba948c5d7b6b8e9429a68fd918ef", + "049016965f3477d7921e0c1f4a4e202e325fbd0e31b60b92f450fd" + }, + { /* i=1413 cDividendBits=584 cDivisorBits=410 */ + "bcb5dff6dd907f3646e27e500feca600d07fdfbcfa11dd293d2535813ec487c46d97d76049d367ea682c04af3a0ac6c611f8157474509bc36b639060f6974be7750dcaa38ae0776aca", + "0201e4b0571dcaefdc1626abb81ed7cacedd6037fdd7fdbb45dfc8439de196e03c9a29f50f77818ee7a0ed1ebc0b59964ef3f8aa", + "5e01f1c4396199c628409e2f8162159751fec690d931", + "01928297fdfb52fedb8c6053e6402aa76dd31d3e92da1d74a731b7f2c360640dc3d5aafce4f103399e1e0701a50c769d9a5cb840" + }, + { /* i=1414 cDividendBits=1818 cDivisorBits=963 */ + "02d79cd5e6ec89a165607917618446ad227451dd353e8fb6114582977878fa3c07c6cccb585f9c666222c9d0de61a492de2e66138962cdd21e14a551517bb689d57d670e3ac598a2c935a330bcba8a704b8f97373db3db844594d7c50a9139cf17058ab00a50b24f0edb85297820d7b3815fa4a7a62e862d62360fadca35b9ec97872b8018a90c375fdbf709a22448abb1c3f5e8a866bb2d01effd9cbc0f49cf40de1abb37f37a25351d2eb73c429289f3225df7001c690fe4096dc50678329255d076c0db57b7bb71cf88678d066ce8754a101f491330034e5bf43b622872fb142a8cbd", + "068fdf1737953939ebb6830228607739548b0222247eafa13d8b03320b5b9087d6c26a0a1c67d6d76a6fb14c23a47cf25d81c7ae9e77937b3afa9a9fbb5512dfaefa71c3f8d841240b77b519708860f643c218e98bb95015f735cb683100509618b4cdec2a5576387c45c8d8f4281c233e3b204376853b0cf6", + "6ee1fea00e57053b423fc795c0739ab72997cd28312655567c8f33100830b53f5b2f7a907ea9a2f9061980316cb14dbf75ebe3d62f1e279e1b0e70bd37fa8f750c9a0f83df36de8b8e9e18dbc3e3751c1f92e5e24508e73418cd7f12593c9f7812edcdac36ba164ed2abe7", + "02cd7b54053f261abe8acce87d34645d060c662e882c01acecad418cd833404f6d713bc3109311fb14a314d38bfe6b3708338842741f0fc7741abf13e6c1768b1bf3c4a24bb2d2d498903b52b6a2d69b35c7bf72795cff1c5047e61d244452de209e03c9abfced8cfdc039f6617b7a716ba8c84682d46d88c3" + }, + { /* i=1415 cDividendBits=481 cDivisorBits=220 */ + "0126781c85421075628bffb385a8225befaac7db65cf7716c5ad4bfe8fca235f3574a00c4b0e7d67410613c18c82f5e2f5cd1a11d49b2a8e82fcd49bd1", + "06ce22d47b548738167201513eecab71a2c00117f5240a9135b0c808", + "2b45659acfe7c7f4821850902fa2fd693027d3083bb38902dc6088b54503894665", + "0453c6119db49599df47188294e9f07270212e08f3644e6f531b80a9" + }, + { /* i=1416 cDividendBits=2335 cDivisorBits=920 */ + "4e530b1201689bc681e53a3126de56e414e405405cdfed05cb334a13006dfa3a56bfe3f0547111117a6c4b48fe92fc344a0a78de003a0760a0e1e92748bbfc0e7206f8535e324161a26c02573320ce0231c7a30c12decbb127c5a8e16baf6ec81cb3dd4ea3ed7466dd0d8495178f9a5de67d6f516ab5df346fd17eaad690b176fc3dfe5b8ed2508745881d753451dfbf1221d0e49efc94ca25e4285366db1d1b648c2fb809dccdba023e581eacee1406da5ffc78011c2d6097ceea940bdab5a6aa3a0f675c604ba6aa0faca04de0cf01e3fa2994b1eeb96f3809660946957015ca3d9d9ff723cdc9ec8f5f2bd73e3814fa1aabfdd3f273120f17174592b5ffecff0a844eb03856302bf2e5fe24149f72a4e4991dd2bfc1e499d4c20b56a1cdd60f54a497", + "dbac2ee23985c8e42e6841755871fcfbad5227992fc0820db58628c1d3a85b8f2e38cdcc65cb655c7974da9058596ad887e648d4afa9ea44fa3ee92ca1d040e501d886be034327a72f4d688f58776471d08419a838e8d28e549dcb7172e216302fb891d98e017f81fae3f263f293e0ecd0f90d", + "5b46e5f46ec54853094ae25122a3fb20832bdf0a552c26d56f4e3d0ed5eeb7f5581a813923f8ad02283b7c91809824a4f8bbd7bcf9c17811224c18244d85b5e69dadd63d3ab334bc51296a1dc4b85fc5dba6f41662f37549b3f4bbbf3588ef2cae24c7ce3cb059569d9519f469d70a11828e6043de7df6df94e18b2eb268fef35eefc74ab22e2408d0b3e64ef3a4e2635ff4c4a7bfecb906d6a226f265d16d8303ff84a791e74443a541445014947a9b45", + "4e3979754cd1f185140b2407b3ca8b15a01116fba895e19f53ddbe333ef72290bd50873e1a92856285161ab4f10ab1148fb45ced96e9216c35b08332cfed61d69175a1f065262688daea1397c48587276ebd12c79ea08dc7830423858f63b61d777551280a45c6ae88f566c201923d8004a516" + }, + { /* i=1417 cDividendBits=464 cDivisorBits=12 */ + "705d4f2e28e28489c1ad9dbe579b5ce0dd4f8da1ca14d6c1dd29bd3748e6f00528f956e41c29a447646cfb6cc1d3bee9f7ec8ac0ca655bd3abf0", + "0e6e", + "07c97b295096f985dfaee3fc0114e289d4d8be8dc6c3361b929588e2b486181e4bbeac1178bc0f4403142a5f69538f61051f801f1a15b75c25", + "0e0a" + }, + { /* i=1418 cDividendBits=280 cDivisorBits=56 */ + "859d9c655ca1467fcfcedaeb82286d64d627a3849b369a540cf2915439e34b8e695768", + "410670a2544e5e", + "020e095d782e502dcccd2eec42f81279a849cd09078e78dbf58a4a5050", + "0ae4cb28677a08" + }, + { /* i=1419 cDividendBits=3889 cDivisorBits=1973 */ + "01b7a2dad8ea532be40dc471397b8f21d028aac2078507fa500961e9767fd26ba033f2a15d3ba60d5890ffa1f185572bd6fb2f1cd709ebc89563aef4de9bac25466182eb81094856a14a5865e5576651acebeee5b9d26a7c1bbd9257b1755ed1e64e435ff06d28ca0d579e59637af041bf22cdb2a2af2d9a565c6fd00b57d7bc55bf7b2ee0fdaa86ba46480e34124a9a1a906620ee5e59424c149c4bbbc2308570683b3cf8581c6ba011ebbbf5eb4310b7b20572fb228bbc24e30cd7e795362c91f962938030ed79d86dd25a5a1f155197640caa34f291ad58df6fb128e2fbe269e7e95d45418bfdf12c59f09bcad3f3040e6860942e87f43264e106737f074b0bf581b74f96ca7aab818a969e5604d976dff587c07d813a5a2585b41b6c993fbabaf1074e377682f34a8260e86acca17f652945a9ec221d4f655fa79135ed5ee29f56fdff19b821b00fc0dfb617d224a1ee6a4f8089dc05c8da00bf3758722545c9d616e3adab17e80440b92609d927d92afc6619a4b5ccc67f3b864ed0d6ba61ec47e4ca1028be285295ba389e0a72941f8d36af650390834ae821b0a803236067a4993e79eb4887be2cd898086ed1b701291c036c09a5f9b74aa34ddb8b1798b338ed7507ff1b2236729bfd99276dcb4f4ebee5ea2c89613137795d375b6ee93b70783d315e", + "0fe7e7920983fcbe115a9b9f0335ba9f58eff01309c17e342c855c1b76f57576c0fe267fefc7893145e0040000fcde9901d1714268c136b3e17df2cddc4de0c27fb32da955c823575df5a048457c1101412460466818446fa2090495c4b97db91824a7056b3055345d39c75c22e1c4cfe83fb0ced5b671976551606d5c7870dea2cf9ab68bb58570420a204d8a178f09ab64591ebfad29d1306f2be8f4f7c1ed066e29b3f370ca9837032f084ba72a02201b1db27c7813bbc0062b9c4ceef879921ffb7899a21b3d4d1cf33928ccaa37e78aa3b2c42e426f211b7fed6073f871c865667f4c36ea0aca9300fb1b9d28fcfdfb0e857f65ee", + "1ba3cd9599208854affc7c12d2df2ab2685e49e5a34474948acee1cbfa8b59f7ac619b86a7ab6916a13b936fee447b69d7d1df1da40724391fda98c589edb2a2ca9421f709ffa3acfe20fcaeccf7cea863ba25883fc2a90a28d91375183d6766b55ace47198deb48bea5c7b9f22cac26183a843b6338a0d6817323d07eed7398d4c79b99219cf45ec7c7fca54d49995cbbcfbf4f4dc24ac91ce718cea2a7e624204052f96e8cf7293c1b5bca54e26364a988cfb22a61630ce31037ea4f3327d2076e1fefe2dcd1b567df1f6ef4b367b90ce9b0119a6d62149c24710ec12d279fb69963bcbf8a0a12919001f47dba4a29", + "08d41213da14fb55cf17e0f4bbc247c2f1f8b2efedf907478cda6cd351fe778ef0648267cc97404f6d96b65e84d8e917d31b71515fb910048ae000f4e694fd5d73a4db5ff6af3382c4788db74729be838f60b17664f82e464095ba9dd3e5754afe19fed6643ba3b3b81c2d6be4e5e4b60dcc75e0766caa05f87683049ef36e6d4146a442401fa7a1e239d86a515b1ce4f221b60ef368f205499bf1d6ad6a82af3a3b55f54629625e0cfaef8a001ecb33cacf0081647d8df1117bf88ebd437d779181a46ba5466b083629a77adae229a270c8e2724b8d98704ed6f348ea711ddf3f04bbbe744670988530cfa0204f0d1f3a8b58fe731240" + }, + { /* i=1420 cDividendBits=2843 cDivisorBits=597 */ + "03f62c39b9193fdd10cd7bce672cb5afbcc814b2edfb1be3fc48bef4e1b8beb2068af83b73fabc47d27da0496b330ab0f801827aab015e891425bde90712751d7f7e8417fd2eda0da8b03ab16d39fe41caf2c234401b8efc11336167aa2d65727e92e383844e2f77117ece432001198254965cbf40f3c9c9d1d5056b24101c2f1e953b5fcbecc6f3af3a03f549334032210341edb9deea235fb76d6061b879a1d3d9a91293ed8894666b5e4331c6f5bb1c3155850d8eaf2d43fca7901b73178f910f87913916585e13492efcc14c965baddfd5cf264edb8614f5401addd286c12157e5be3a865d731a3565b11102bdf1ba20c0e0bee0790ee567ace8ad3606a9c4c7bdd8b07057a7972cf3aeba656d7cfa45fa8c8f4ca08d75321cf1ab12bc438860a3b9b723bad135cb722b347246682a5425422eac6230ad8ce3574560bd105aab4eb2b4fdfb3cd9f4cc99546476f5d062a80ef83a3f15d929d53079f3b25833653537", + "1d835932f815682821795a1151a60760187f4aae8fd4ef88c14f053766ac249c97c90cae92dd983cfd82511e3b85e149c52a156be1b8dc0e11f212eb0215b8419a816ff2268be7a3165d97", + "225d0e6b44257f8ea2bf4aa528b86d04699f423d43028422f7da3c3043596c267c6b16789e2574ad37c2aa02a9f9a01f2ad487514e0379c5dc85facd3510e63f88149bb3e96fb8d223ad130bd4d30d233ef396491862e2959aa1a849baabba4caf92349f14666b38ea2fc79b4517bd523c318c9a4a56a49a988275cec039c92b29fa470a7bf1b25ac71bb48fe7b13197d20a4202e10a04321ad0357323c1bbf3a86cd0d73b357ad53e4f4d851c077eb5d26f613d5df8d2f135c7ddfca41f4f5753bab01aa7d9dcde9a12ff2b54e6920f9daa1710fa9880acb3b8d062eb1467f2e10ca88f1878cfc0a2effe51105feb299101b090b1c742eaaeed5a971bafcf2995f28f4bbf8670b91061a8fdd6b283a8aca7e8c35f869ae34f", + "1d5d8b53079e4a70a3cf4f93448b8f88a2afaafc667222ca4d5b76f3b523d2c0234867ce248ccbf51e754b910239b05ff13a47cc0cbb1a5ee991e402df70c2e2b80e8b48db8fc5b3ab6e9e" + }, + { /* i=1421 cDividendBits=3516 cDivisorBits=2241 */ + "0142377a4f48cb35ae7404649a0aede632b3aa729a56056a9cfcd9dce7f2fa08587a3e2dd04392e5599391ba2611705db5e79f1a68ddaf6b7245a0a010885b817fb846007f840bf9b0f8b560770e3d2c0c7787ef03444aa292c878daa76d3de81da3ef2c3c7a961529166daa658ca8c263094b38041e83c110168cb7f675980a63b202fc69cc2d2c5f8ba751b23a2a4b431391d270207ff33642c24b31f529b9eb24db6db97ef093f2208dcc83f32981d7fafc0c2fe0aa09b7c70f8dc37d387dc43c8f8a9256dd9c9eacc260d6fc9d2c3e44be071de9f144e4ab00b0e7d0ee1c7d55a7e882d4b649d36cdd744b36d09dd09ebf97b2424a6cd3db2c5194b973d111cf551dd459186e69ed7464e56af033ef2c947e61efe71ecac61ef21827c2971c05b97760c70b52453b4a1f7b200b25e0ac9caa829844f7c556d52e6a1d3152f11b4fac2c8abfd664814473d6062657ea27459b212a2b40a3dcf7b85b3cedcc179f2475644dc5d060afaba46a023f2d039403abfde8e045c386eba6ab4d82f7810f35b188850548fad4bf516197def7e7f87f67320626f3a0f5ecbc80346b7afd2fb9a325a0a65659b2df93e5cb955b426910a37663e25b", + "01ca1197ccc68613681580bd41679f7aa5f3aca8b745ab5810580eb291ef341bbc69eb546d3f6900296e6944e4b36c7007eff9fbacfe92285f74170ac72598556cfadaf4ce73049cd61f1ec4481db37e310aa6fc105834d4936df7457498fa182b8f2cae56764459ef3edded7a1ec2dc5f066a9337cbec795684a9909987b7f21d2b903fa4916f0e1c7f3764287856478a03919b94182f622f14bd2ae83c916a30738ef07c6f2b199f78a4565f8bd583dc19b65ae3d163c18a754a86cda86247f8cf86962fc31d97cbbcc27ba6cba52ca8096721811521037dfb5f10a53f89bdaada734f590b8e18efb2f7ff6541c640ad05b4681f3d5ab6d4b2c9a93e495df1aa38fab7c122852eaf86cc8010cd96a4b267c67d41d6249a71", + "b4139ede87480a0c9abe8ef1a8beee9e43b2e4fe3007101a03a764952d30e57d31c0abd0beb3d35cb39365cb3d688d693cfe55b87182147bd738bfa7b5c8edfa2548e56e8e9846f4675a5c016b138fac37734b94f20f9702d92ecaf7b86eb42f976d9fb9766a84e3f3101fb8f473794acbf9a63d63e799da3703b82a7a47cbd411e366c5cfb132889824453241f204a98d10f08285de2c617a4bb517a096f0", + "01b0ba38a5e388111edcd6d968f0b0b49008f311746a878b8146c203ea7d01bd3264dcee0ed58705ee231bb7ceef13d28355c135a1c875d360256d1bc16d153b5e2bd7b72d8983120318caff58229a2fc2dd1f7296f3795e26d18ac7bc6339653e4b8377ed1f17137f65b4b5f497bd5057e4ff8587ec5115e214f10baf24a1b9eadf2f3a8b686deb4da294adb2d7fa2771b5b3ddd58ae46b1f80a511aef0624702baaa617fc0a10162416cc7e7d7ff9d2c9dd2150573d618e7bca53afc3367e1ece65f71032561710737a7e18c943573edf7dc8927845d564cb6ae8eb8aa5fa5b61ce4a87bdbd16e10f7f8d1ff5f60f863c187dac1d701d805f099df18c53468608dbcb922abaf45ccd7f93f6b98c2a550eb91a1cb93f4e26b" + }, + { /* i=1422 cDividendBits=139 cDivisorBits=130 */ + "051b01375f6a98e1b50e88fa378b30a7723f", + "03253e9db536424465394f88815c0be9a2", + "019f", + "01a0b5b6a7a374d4f6a10bedd6f957b4a1" + }, + { /* i=1423 cDividendBits=1312 cDivisorBits=1054 */ + "202ab12b6cb6d8fb250a811d7b266960fa6fb2bee4511f3be90a802ea1caa214846b84acf8fab505c2cefdef6c103af65b231dd7ab0923a2c9269f818a505859e50e53c48e4cf660f6286a14b69935b284dcdffffefbdce0d2393cc826b6cba58c4cb31ddbdc48dc5784108e9048d4ad001c3aadf16f517e357d23f1169429cc7c98883a048192ef0a7ae1ef24ba9070752b463ddd3a240433e96a1cc08a16cb8b8f0ec0", + "3dd83ca3c291aae04b72e4e1902e253d96c7b4bd346584aae71022a6de3ddd54e0606d8ad8d71487958c9f8fa5d4e608d41155bdfb629aa4dec877c7ed57c7bf5b5b58fc4505fd6d0c88f218b4bc91a0ebbc8e548ee9d96ecefd5b3a419b18133f47b7352d3bf711f4de366c1c5f057a72d7cbf0018b7d2bc3520510e3af29a68ca87482", + "8526b4582efe57184a89044dff27afdd3bc5317547fecd1041270f0b3a404e34", + "321bc062f338a0a366df5ae0ba3b0710f7a5d60e13f5252b719136db1efc99bcf77896ee5757bdf99639d449a4b4b36f66311da9ad805da441531adccab800f3c83e228627548c21fe0701b819f45dc7524890b7bb8f12fe0f3ed1e8f5a9dac8fef403ec694212b8c13255f570406a9e27b075346c7837b96d09805050e4ee031157c858" + }, + { /* i=1424 cDividendBits=1461 cDivisorBits=419 */ + "08002570460370022973f9b52c018c8e10ee79f8cd63951d02abc969130feb1a64e781495c37bf3006da798762e3214016b01247e38b8270559c578783a5c87f003543c06a8aef9921bdc76e4520e82cd5bb2f09d971ff3b76342a9d7f0aa693d76103b43dfd42bb362e9b8d91911a363ca4a7ab86f85000941a93579e3f4a4bde2ccb2a49390ed8637619821864d5f6eeb427363e55b7f8df04d96e0a05fe36c0275dc6ccce7bb05cf4618b78bcea45574b9b3fdaa427", + "039ffee18ea4cd904bdec3f43d754676b4416d346504ace54db214c3eb7566dc3b4834456bb2d77ce4a37e5d857b16ff2330b4710e", + "0235022e798df55b0161fb769e87eea9084cd1e7fb5193254f7529c3d32d13e04c3cd2ba38e26c04a3405a1731c9c1c26610bb8799d57aabdad79999ac30c4de42d641e90f8ce617a8128b8278a01317b1685d9e414d436bd2ab1a87157a872c5a988e38e18359235fa0cb06738f9ff59b0f55c4b91202196a010fea5cd05b02a455fb", + "0154b7be5dffbba674e8043136f0b6551320fb55eeab61b74d550efc6c0a0a8a377582ea6eb8552a304c99495be120487a0c6e256d" + }, + { /* i=1425 cDividendBits=2513 cDivisorBits=1937 */ + "18bbd1320cbb1f4b17b3dae7106d5af44546594eb361effb7ef9c2a5cbe8f99902b1a22a5f905d6b5d4fe01e0a2f2c36edbd2ff8d76d421d2e2a6419fc860c51793522e6ee6facf69a9a7cc6aa03485a691d562cb741f76d54344c912813dfaf29450c1bb94e13584b1f4e7eb66c234ee357aa7ac1bd628f14ba53cf6b1e7dd0c69582f5e3aee688e75a8dcc7526e33e5390b0f9d82ba4b244dd13aa94d93030a6de867f4e06240e3235b9290d7543754f0225dde92fa12c0b38b008e477070ac13f1334778f4c13f0a08f70801441ad6a4db554a1540b1cc6ef1d83d4f95d3e667e03bfa404e3f07e75fb54f5df2007b5d5c1f14c68ed066e00c9d6abfe44fc740a6c97899252d93145f0e3c9f87492122a7def60978a6913fffecc6a29e63669bb5464ced86fb58527a88116d79f845001487d413d2c08fbfd", + "019ed03c789234d0bd02d98417cb94d02563381d7819761ebeaa8ee26e35ab4db4e78885a3fa22d3870d00831efd5685211dd4ad04bacecaf2247fb5ec8d0c865297efb43039b2f531b27e11e41eb17d8db6949fa80b60fa93cba6a9b6c5b0f788588433acd889dd1cf5802af12da10605ac0f5d80433bedc505dd03d1d9ead8520b4ccd0bf007c626ec5c2fa769cb5725dace57cda0829fc1eea327c854ae267080742edcc7dffbd0d25baa25e27fa406e03eaad81589692f7aada32908a8cfbcef8800d6f5cc7ef3a14d33189ae7998fcf5c0f4d96369f8858c885130d3b7dfcf916ddbac132b46d80792ce1e00f46fd8cd8", + "0f43a61b3c2192144ebbffbc069936b90859ebddbe44e7ac376e88e7f235d35252152e38595705d276b3627b9a0651655c082cda470507ff043fb3c1f9170f719f1c07541e996ea0", + "014bb52a14bab17ab1aef9bf3ce67711e8f8c4941b57609d3c70eaed6fc252d506a1742b6aaa63653c3f62c87ce471d25c82c35af10792bdc079ba48edd50497c38ef7f2895d66e2f997e9023e190087be1ea31ccb61c37b2fe27f61d44f7ab1a197766bdf425c9280cdbd2e5302b21c6d9ca42ee2e6a99aca7bb9ceb37e3efe9ebd49fd0e0da866a0434645aa3a5788c0fa2d4833c15b1e747704c52678ccc1502e0ad318b2abe080e9d81494bfb7ab67765f8471c954d0704cff9624dd1d70f7e390a4bd75a1e14140d48ee0dc94e1fbfebd7d31754f7bf891603dc1ee790ae44fbd08b436bffb9ca639afeb64455df424fd" + }, + { /* i=1426 cDividendBits=2656 cDivisorBits=459 */ + "bf0f76415e992cf024ab714877f25c4827978fe5291fd87579bd068e2108d4eea4215b22a7807040d333ab466e43054932a5f865e714926dfdf3352904a728c9812c5ed48686cfc788f67d7906e7bb5ea5ca3219b6f7622f0fcf5cb70e8dfd35affc4b9c7d60e264c04925ba2c26e555d697c0f2bcc3db63de5ead512273410eb6dace37d8b2ab5fb8540e0617f322919840c939b243b19b684bcf9ad8a2e152ca85cdc4687cec3099d5e19bec806da9ec0d2e2e184f1699883f902818d7e8ea5c5c94daa84eb32c6ac4beaa02b0636dc5d2b929ada9961a4728030e6f2ac9db425123ebba285172886816cf0fdfdbb2c76e19d5006411a72424cc7f82831659292c752541a479938b419c3ba8204b72eec0d2f44f258e89bfaceab1b04e4781d5db33977637c77d06f8f299adba5f9f6ed8d3e0e0b1bdcbff267fcffed2602b07bb02222bfadfcdf2ebf571", + "04483f41f54c64f4620785620fef05a1e217d327be3371368ba364efd4e3736862fea8ed3bfc8729e4d7176dffd9d054c03a2475eb96158e8e5f", + "2c9dfff8a4e12a9aad2fa502072d1d1088c42a0e7b3efe6605df24f4da1427fc20ac461daf7ac67fadcd4a31666d9d6d8bc67b6fd27222101b87f19e3e176f05421a5e5b7f7bbab05ec7b7d36770bec220492a484e0c6217cd5516676b429777b1bd2108d02ad4e0608cb7ea8d547be72cb6ebfd8d1438a9e67f7f2a6d7cd8309b61db7291bc6d6fb3cae2d82e701028a7b6ce559048f2759d5db297a837eed08d17ea97b4d46de1cf99ff6708d531b170635168d706b4ba78c2fd30e47be85de6490fb87d71f4a77b785bb05270bfc104529dc3cb9821ae2c2eeaf1a3e69f15bcbcabc01318345109e7d88aeb17757d5b8f6f6c76fedb3786567e251964f649247590acd52b9ffbc3a7418e0c9564899fcb20", + "032ed24d820b69711c62a2af0182e232981752a94a2a9ff41b13a3c5816aa72d9aebe0b8a9c158ee8c45fee694be0c7989b0b4abd41bf233d491" + }, + { /* i=1427 cDividendBits=1934 cDivisorBits=1568 */ + "17d35bcba8f78b7774238171d33819b5a4d56d0bba8a2e17321cee3fe5f9705ee4518a19475536868e311b4b9f5cc2ecbefd7dfb5dde7e864e114f5c016b1028416975cf46fc6bb04e5cb291d90881aa2e8e65bf0d382b320e7ceca9ac1df2f05fb2ebe9f3102d8532c566d02de2ef43636a5b69da4f41dc81548180b490f58829be3ae3dedd7ea9bfc018f29023ee7f433b9f567a496d177384b70c68ac6925666c3ad1219494a8db0689d1acf351145a73131ef63434f927a33633d5979085b458338a1c7a48227051dc659ef445573bb804ecdfc60bfc4f0abc0cdf593cb3b6103e4e9531ff57458266d80c57efce060c", + "402ef84ebac3e5506d647dba219d613c143059d0831305257bb5a53f5c05d501628f274b15470c354d4d2748d4b477912bbf00713dbb35083f3d7cfe8bf989af8bb465c4a94a0138e7868a1f13184040b55c38df06ea7d04a1b28333cfb599b589a398ea5744f272e3adc6d1392803437f0b4523ab55ea648ef2b40a3b1752380a5abb4a5ff4ec49b01998ba3e6fb4c3e9ee126a099e9fbf3d71cebfcef9d25f6db7b4ac4c87adbf9bfa89752fb0cf94f5bda48fd10c4174ecacde17f9e2295a87aa4442", + "5f07b0f4bf8f34268c94f3a824246a04c314ae4ae6e0312a378c41ce9a3ba6ff074a306b202532c318b290136c49", + "3be17f221d137178af36998aad967c75c273030216931fa107087ee9ccf97f2f6dc7312e64510b4088e126b541483d72c29a729b6ac0b2ef2501ccd38715b8ab90b33c73fa3b0641c895daadbffe4c75f0d601424e21cc699724eceee8e3cf6d9e03e7da53393b6d1cf6542293bbdf3bf9f70fcf89085b7f60bd062e35023c452adcb456f5fe44d61058968463548421f9e389edcd74c5d7fd50dc70189cf7772b16f5392432446e15a7b5e1d00baab2054dd5a7e75824b7aeb31cf990d0925f3a8eb73a" + }, + { /* i=1428 cDividendBits=2093 cDivisorBits=1644 */ + "0c0b0f167fe1367d5c18fce90564160b8a07c173a86b6e82e931d1ae5a61b23676c7ee8b229e4a27e9bd547fe6faa3c0d141bb372dbb0b1d25c60da4dbf966f0d2d07def64b42b271e428278c723b08c41b3f49fbe91a593450a313b6de86650ec915807a4ded10fdf4a24a5e87234cf5ad0248c76d032e155319b1e76ef3eecde1eb756cd7c12ac84a4816da70d03ed2ababb88a586e169892e8ac42554edd39930613c2e5ca48a5bdc9d00b3bd0b2e7a0d0a7a4bf6c9ebf345770e3193c97b661cf0908d6cc991c6b1c5cd98e6ce9a3956023daa30400e9a25c0b73a7f5faac00f5251deee65b15f8d9fd426f1f3e06bf58fc4b8876bbe1c05a521412f95e19f81e0c2bc92", + "0bbbfddbf18a15333fe653dee0ae5e2d7cb15fc2919b7d19942964459338abf08b16bc40f83f416810829837a383c997400521acca3b709121eb76d13e5e82f0eb62b3f4bf70e0a9d054769f06e84df5485772ecc569fbd8bbeca1267306fc1de12ffdfafb545df42d6fbc890f91d286ff51c4ae035a35bd75c9c30ad2d27ebc528aee1415f0dc0305e6848562c6bff05fbfaf353e17a8584e15b7425784f18b270289693b1fabf114bea0a00b8a9f557617ebbbe30ce2a9a82cfbb8fda8a11d2eefb3d3c5fd51be5b29af56acf2", + "0106bcf4d5a9d07f6e021108950eac0f49a9b8c7321de636e246a75cdb322037c33254cfdf6868e7b539ef52a0e663537485a65abc79f06ad9", + "01ee780ff2b14b917375635460b763baa24f150c69d908da79582ea04b60a187aef151c50c1bf9386fb263a5736e96933900db2aa8141f11f59721c62a38b5d49e394f500fb093ffa5b05ed41f04426fb47b13a8c672a769351e88d164f55dd233891a4009b137bc049322e181ddb1429bfcc13b6b960ec5690ceec027251b6be9df31a430b0aeb2648bfcffb2900419b433ef7db376b6e64853b8905ecc92646d0032c39b83769d3c58f5982927e02e573fd629502bd942654f068f3a58cf08ebce999dc6193372a7d9d7cdef70" + }, + { /* i=1429 cDividendBits=496 cDivisorBits=163 */ + "9390c5ac3eb16c9da7b5b32524f083520ce63616b2886c7c2a668e57b7924fb874cf158136c0d4c3351f3c2d162f98160e1d18f1311d2a45d5974044b317", + "041bea98a1bdab54d83311ab5117739ae347aa0915", + "23e98eae83860fd3daa4cf007ccfc5c8604df8df1d202214ddcbe2748e8c21c91d14b8b1fe34ecbfeb3b", + "030b1ea7545b086f42ebdf61daeabd99ec83135440" + }, + { /* i=1430 cDividendBits=2352 cDivisorBits=2050 */ + "b451b9ea6464a8e04f9e00cbc5d14c50cf599afaa5f2b7fa42008971dc9b024dbf06712baa4738073f54ffa84373cd86224cc5faf87eac7ee7fc59500d8afcf7b74f09e9b5c73743c6a582b796921f77b22db40a769dcf6e9a88b0b62c65e2328fd6374e94579cc2b7c91c163bcb3b64116ac6f3a28c6c4a813d79420044a3d2a35d604646807844ee9dc0a5fec7a6e4300a22f864130882fe36a6432b1ff591ba2c74ab4f7716eb108e058e7fd4a7ee1738dca7985b4495d040d45ab0b768e7a50bb5665a53c7c987aadf24f9d76a866aca1f0480f4e65723e36963902108bc8d2d351db5a1c60099d0ab2abbd3e373f07a196f6c815538d66896c8d170743cdbebf9c3d12a2a135568e22eb89ea4a4cf8262073a2c3e8a32777653a4ed6ac7b4c39f39435f", + "01aab57be39597a8b8ad973a5355e63301939302abdbc8ccdd42fa31c0c3276f1d2ade3699522f1a503d9f1fde57aabd9b93ef9835ada17d8e7020791c844ee480695252f65c922a62bf273e2b68f652ac2a4feb1952ce6a60272b4fd309b50a1b97336ecf0ff90f35a060c6487a6b27ea4d8725dadb94b8fd29e8113a31d577bd6550f3e1e8e76c2ce9084bcc01f408f1d28c1770f7435d772b5a435bc00116e9f8380799377f4bbdef54f2f28de94e0148b6db1f6f4d31f0b35f836a52543087cb48e07317ad2cbdba49304a424b57dd3707311460f5ed4ea616db12b26c85d3b556b38654507a7c5358afc99a7a58a5dbfc726a2febd754e69ea4da1234a2dc", + "6c2e4b042b59d0468781c3f8c0df901fd2916277498a6640429bcacbea4bf3898fc1f4c6bef8", + "01a499938d0d82339b26900a0ca49edc73b9a26b821290e2946cdce58e77893d4a48ad9dd4738bb7a7c98b8cea42a05299a1e9243c16da55a185d8dad662834a095d2a1bcb6bdc59cbd54d5d06e7844f2954cbe0858c4f8c72a9be2f0d3216d04d8b5ba0057537daa5df47f5bad58fb564e306d682267a805224d9a466f686b10bfa64fa2eab0f4dbae80831d0d0abad5098c152ca144969c5ad50e46d176ebaf600df1ca1a7ac61090ba34b6fc55b01054c1c94f47f4afdf10d2f80eea2a7d8b9f0b96a02bcbad2874fd3db905bdcf9ba39e48427ee97f1421b638fde24dca3e2293724573907e14875dec898a79594910a860132a627d7e7cc563c334534363f" + }, + { /* i=1431 cDividendBits=1196 cDivisorBits=1133 */ + "02e2c75b95a4e1f92bcc8010bcfe3dc6135d2f4ac27673a89349902c2ffef384aa1c196d6f3aebe2e2c24c98860e283358367f6ec6638eab5bd3c40879f24edaa61df0fd7ee99523654ce761aa89a8285140b494d94d1edb9c2229a4c1ce9d3563ce15920c6a037cd1b2fb069dc606e6023f91a6ac52252cc93243bcd0599d04ee45e5d409ea72b294147fc080e3cabe84f7d8cb49e1", + "0166435c65813a24157d18615bab561d0b98d53810df1e6bce744126de197310fc49d32b00237a12403f20fe46601d272517d8b070adad0e0bdfd33e2bf6f44cde620517d24275b87253e545f2e6b62afc0833c70d7edbe16c6ca7b88814eacd35b0eb1749ac69ff6962a1a2cb9912e427eb00583b69da40b7f1a115869316bd7b303b46b69d778a82a170a9c847", + "020fe69486dc12c169", + "6ee6b3b0660edc5f9d310c90e396d6572cdb4572e545010b3ee5967c65304c1f56a51f3c893356626569d6a81fcbf8856c8e9cb268291e3d8b36af5c6f669c82fa484234f78f0d43cd0fd495e0c58857e362614436afd0e848a5ad10248b7a9d00c8bdef2910837051400aaa2926c0c8e41fd6aac94158859751e6534705a097cf5c4701b730d585998a2c9dc2" + }, + { /* i=1432 cDividendBits=1249 cDivisorBits=754 */ + "01bb97396889d2d1c12093cbef6bab1b2ea03a7b007251651e730c8caf2efa63bad21de27a22a2f99132f16efcd8acbf6c2217678fe4e86d5b8a27e96d6e978bcf818aba6f9c429c64356510e7f6a0142ffb667bfc6d387765d01e54e5fcdb3fd64f9f5079b5e038efa1653274692fa337cf6dc658c03b08b0212538b762e9bcbdd7e2ad758c55a9482eb21cc27e874b3d9bb2f7a650f96036435f4e9f", + "021c5bdf2329ff0afb0bb7c211967abe561e6e1ad38ed929fa41e59722c6d387b1e844e66d2ae20b560dd68278cb1cd73c73ee1d511d936cb66cfaf139f2a3fa91fef7a545e7dc8afd991182e51a56b6431b971d80d05245cf003e2a7d966f", + "d227bad61d6af009c29f2c6b51f3ac7037a4a1ff785a2ea71b7ae9e34bcdd8f34d1695cdec6cca58313369b5569b20c0867dc5ce758240d4b5677c39934c", + "8b4a40dd5bd16b651469a8f3deef170b1a261a0367c42c52f5ce71e3cc31b0d6f63a8f18ecbeaf0619757170c94c952f3ce3782d3d602b4fc4d68eca7737d5492b3669ed32479d8cac398033616634dbe4e6044b4fe658254ede45fde8ab" + }, + { /* i=1433 cDividendBits=2882 cDivisorBits=803 */ + "026c099d67d7b5930b0fa2f66e9fad29c42ddca796e7d8537264d5976fd840d1f8717d02e5699e6b8588959a4872c62bae977871abbe339596b70830bc62aaf89aed27ea84f5b5bea73b02215aa7767e1c59fb34be91ce66e3b019b15ffc5b1794396925cc698aa3ebd0622a36badd93ac5d4051e6b8d85657cc0eb2000fa2ed5a0e9e0d77315833aff3c549cfcdbd49391a0d2d91016cf06c2882c7505dc9cf15112aa04cd3736a2983bc74bd16bd3906b5e477f649aff0e904032fa91e0798418c68846541adcd2babff738b236c963d832de303e363bd9b06b10a181ace0150c3f9cb06dd9881c1b83ab0d95daa347dd9f2c351b3c5273c8f9463f0d8dcdfc94e0047ea92b2573ffd40e1a03555cda2af575ddb5b139c9861baa73c8b98492b2999d22dbc2d6ed6a10ba74786d9ba70a4332b14c51073244ceeff7ef388cf16aa6dccc75e7d3213fc5d62c25b204f9139b173d742f3e0f374d7719ab53552c12fb89adbf5783fdd", + "02e27f6332c64e8c9af36374ea64008a26ec4cdd7bfe9f75fc0178e8114a8a6aee82db1770c4a947a017cfcf3882458cea0cf3c2e1d9494346775245667498f7fcffaef118f2a532e7612e8220537c9a4abf5223af494bf72c9ee215095d85369fdca1b23b", + "d6ef94362058f0cad7953c7882bc054ae244dcc840a8372bdb81bc9a5f5fe8ae514b6338664aac75b5e8bd280b8352281301af56f6513adfdd2c5190fb9f450c5b8a75aeee6cd68f9e6c157ed4a31aeae4e95347001bb14670afb50879da897c432c9e209dd377f7b38e20bfcdb21868a8742f032126c71bfd344d92fd9f4618d3849fc6553599d4fa0c92e228cb1140c0a9efa103dd71891b28e3b2f33d12da38521a59b80c31b19d7b128f1f994985e198916e38e0c86128654c6574354eb54907fb8a3b323157da2e8bc5aa8a5dceab3824f1d7b8450bacdc46630e0326bae1e821b835b2e69d6fa150e50ebc42d6383ddaad8c39bb350e2fa727e1a103d6a724f224", + "019593d6a6732a669efcbb5a8b96391cb9412201f4817b8e990de593477d8f10a94a58b922c4dc41c47e4d0d83877c1fc0c2886bc454d679446e075c7e25c31bae7e68c54c1d98d5067d9da69c97d1809907436ec4e21c21f9f105691ddd949d7c86f36991" + }, + { /* i=1434 cDividendBits=1340 cDivisorBits=1004 */ + "0a57d8edabefad3a01b60a3a9a606f79c50053a36e5ed9b0d373c4863b01cf3d0d89b1649c35dc5d2f4307b1d4c755eedb5d303bda43721dc6f9a03d2fbefc78d4e9208a61323ac6d87e01217b523414acaa1f98dd0e3d3f0b66856fae48b7cee54135fae6fd22404d5ac80ff0f9d2f3241b302028d5809041261890afd7ffe93b1817906706f2cf0ea1d9109d309b451a63074294237fe09c17cc4e2a5e4bd1dcc03efbeb45637b", + "04613933964af8727d509748fab798da024eb09370d962539711a6e9977f73dfe8690a657a59948f4decccfe9db5462c91aa327117af5d8398ba1fe5337f15d1130f9d5206498200f7a3b147825f0d7fb447ab7f0d429ff0cb6cac69753cfbe49d0712fd5fdb76bc36080ec161de32d06c9f67f1158c35f2e07d7b651cbc", + "025c8fd5f0682e77c673c45067d7919ccb9e4e849afba4d94b7827063cf4af66d3d14c8f6dde1fc442101e", + "039ce62473c52b97b2e6ee5d904a8e02c100df5b4c4494982e00859d98cf0a263bcb5b6887ea49992e0e7b6a31a63247b71c53f881f9ff8ef823a6e3f743f9c42e3cd0e799ea0ff7805408337a984abdb274c795276d0bb0d93dd7831b612d54ade3e021d781fad84bea045432f03cf2fa9b69721c6889395bbbcb284573" + }, + { /* i=1435 cDividendBits=2133 cDivisorBits=1733 */ + "172a74edc7461f8c03269b94a7b62073909cc9353d6d4827dea95f2e8b1707c2a552247e05c0539072d06aa9d61b0dda138668209e98278e486c41065c0a3cacc13dd97df14bb15df87b9cf9ed93e0eabeeebf2dabc3d831d2f11692ccedd14597a2608a714dda05fbc78591b1929816391f2e0e02f8ac6a130b9fca43bbe4d51a89d1f0c186d9b0493608c3e099f9af1e9a64db3bde2455409f7aa2a3cb1fad4835c4085ccf45ef9a0dffa32e85a668f23b3975def450dcc21275b38cdf0363d809efc1152dfc6c61a8c38564132979d711f612769dce4b7da09359685ca4bbfa25775089d152fbee8130d34f09aceebf1cf791e45a51d7aa40ae8ad2b85fb5292f2f4d0f020eeba79631", + "03baed77f7945cae12e8665462b37cb60238facfc7570a246dfbe931cfd2ddce72334939b1b8f92deeb1d5032a66b7f37982401b61175638ba1afd29cad6aae10789600e3b7490e9c48065c521089700ab933dbdb2664b8b3e415e2e18947a67f904455f2d9f453d940197972c1b2baff1b8c7e0cd8673209d1452288144d171b2d7031e3e92b89e644d6d666a396b2ee7de77667da4fb57d4c93a0e068a5a52b31d8fc533fecc61d7348b9a50f2f53b1449173e2fe6e0f6a353609124c0981a080ad9d18f6d821c43d4f2c7035159c1e61c12f99dd5f38154", + "0635db02f25cc3141e8f61fea67b5ae73dc46aff101355c0c9400975e4bda83d9392204b8dcb91212fcd034b240bfb76889dec", + "53f353e54c4e2905230f64aee2815cf1cc6dc72aae9de416429723499b5a67f1c6b7b2a09b898455eeead636a545e7355c967576b23e76a94828eac470d26b6d8664c900da7014de9907fa3be16cd13fd035b5ad1580bc85f88bdabe435fd9b3f803c67177b5c33659d1f5d0792263f5c59e3deb399382c78b81718f04020c96b11442b513ccd5f01918e4a3f09fdb692bdefade1c4944ef9ff58139879f8f91a1812ce215715b94344d6d4344ef4edc52b9ea4643f61447889ef5e89adb88e25ee28f55f9639f43f85f469cd544eba263e4c801ec3bd8c1" + }, + { /* i=1436 cDividendBits=685 cDivisorBits=627 */ + "1f5ecc8f8462e0f4f9ef078b795ed0e85ee2c99d1db42645c0114ef1a9d9fac60589cb4f48f1737486ee9f316c41115026a9ee503efaf6d296a8f9c7b5051def1809401241c39cb1162aa3b78b5a975f38eee68ce0b3", + "06baa0c88f6e43e12e6b31ac3ab9c0cbf18daf7a7a1456a98ce263d4f201624cba4ddd6a4156f11d6eff86a0f75eb04815da2687c7b7a483fbd591833b85b8aeac01308aa17543e28698654d070ab6", + "04a9754bb36753db", + "05806f66425bba557843ac71b347193488507b19852168ed2a32af62a2eba61bf0dba0d2d2e6537a8bf124f301876ba3d924cf1f6970d812bf370d6c35dd1b1e72a215fbb60f6d5218c6a827d3b501" + }, + { /* i=1437 cDividendBits=898 cDivisorBits=133 */ + "017e73ba1dd03f7dbf1e2e89582e518ef22c5b0d7bb7ebe6fab4723ad95a7e4a45893b97176700fa851662af05d367caf4e424b9bc801d14f5e6902f409c256d15a45fde65b19228e4fdc736b7347abb519e985b8b2c3b869beba414ae6f327bc735cb03e85ad2c68aa032f07e2c31587d", + "08e77e2aa6b9da2f21ecce683e29ee178c", + "2af3981a2ca02da54d7e4b541af14d73210af4d6ad5a66fff53baa38b75af2000e1decc0492f3cad3c00d24fb33c483724d8d50219286ee89f31cda87f25f4b2040a1a3fa9d210094e2e8943783b82d2e84bb726e09016e86cf87462dcfb5f13", + "048ee80da9a1aa9dee03c5f60c4e84a519" + }, + { /* i=1438 cDividendBits=1771 cDivisorBits=905 */ + "0176de451c811dfe44dbeddb7886b8badaa9178664fd7d7ae03e3a66cdd9877a48d73f1ae342a2659b1ca8ab5ac69b986d21cac1843058b10b3abd42ebe56bb2176f2aba5ad55d6d2960c6f809699e9d2ba5c4c43b4402b341f53db6c77a3dba5f38a33376c86583fad18a03f936854fbbd8e3d2c0a91aee2b8ccf031f52b55ea5fd24b42543870dcab8728ca5b76fff7219635202730f2301d8013cd1b84fcdd0ff7ae7a500873054a07a60a2ed495314072efdbde8d276b1e35a345be9718486d971654095ea6b44ae69049d96e7d9b2d428f53642102a32ef2ea044f2", + "afbef2b7f57899f02a9a345b8e98be8fd8452f5c64733acddcd89b706995cfcadc0c32c0bc2c20fe2e00ada11a149dc0ec5248cac7bf6ff5c7cde9b7b900a86d79f40da656fd12077d67e1ce7dd2232b0c8a644427a57348979b1dcb20223d47e3ef9275988adcf942039c7de60c52bdc9", + "02220d21205be0e0128bbacbe19da1ee6145281ca01e4f64c152f4e987e9e7fdefba8e292a86c27a226cb3f89827fe5cf04d7a29a0f8971816287d83757f5dcfa0c0b22c045dba053d88bac932344fbc5cac81cbaa0f663558c5bb4b9aff5852b32c297ab28a8314d96fd3902e", + "a411fe8a7141591b28afcfd5e824e450898b5895263246be99a91a8c9f761636f84cbcc2e8a613cef666ac5643ee285d440630b744aff16b754cdd69c930099362ab37cb4f4d62a7199964aec1d3eb020131bb378bd14e6790f1f2b8229ca5120cef6d65ac2e0d1c6c7e7490ccd9561ad4" + }, + { /* i=1439 cDividendBits=2076 cDivisorBits=1048 */ + "026c8d1ee155d99939057e96893b564e78e6fe7df5a7141187d54e321e27f1018626aa7a820eca73e60869c7b8eecef0cf8081c9c27305d374986b6e1e4f631934041b7c7593b79c85685300c3edc92d51d89185d7047898291ebb5750ac35dd452390f431d751f603c685908bb5005be68ab43310550a5d6b564e50df5d5117a06f7d057229c101f01ea405591ff2ed4d117d504a6c47cb07baa27bdf7c982ad3ab8e207ecc2f2db60811d1d1c4468a9f0486a5c237494a7de316cbd104137649af0190cc4338cec2645b66b80a2ff638db7e9efb373bbcb050ec298295f49ec18adecf6543f8c02b5328a9733d493cf8ca329048809cbd260d5c6684c35c28fdaa4e1c", + "7dd0cf19b2ed76c342e8c9b9e146de50fbb35d6eca39698427e318ddf7eb0979809dcb3aa45556f0f36f0afef58c5c225549499d2130ea63f0461c64597a554f09a45514d10c3ef4dac6215de5a685685946693737f1e876ffd6fd22d716b6565beb53189e3689da5b53b883c74f1ac49d08f8ae12064d1b096b870be6a02bb5695129", + "04eea65aa0a2666f03ab3d5728babffd4da0e2e1af4c63dbf81ea7561e1ed4e4c0602a296222a23f53468af2d379837d8d9b15c038258ed71cbcf7f1c2f279fdbe9fcc4426a1875cb98bb934dd536341c963e7f882cfb6f8db5bcaac48a7ee8b11b60e201bef34701e671ae3d19b3e054097b319028f36fbaa1e76c1df4f526ad0", + "58e62d8dac5095ef144f7950e810f1ed7155d5d63d31a49ebf0a9b51834dc98d92427120cdcda38dceddf914deec6b336e620e7423e595d50569beddc43ac96aafb2c00d2454ed1788d93d29c5b4ae0eae18eff3decc3fdf651702a84f2b7c59435bbded55093d45627d08b6dc80cdd647b4f0ac210e3f39ba9052ec3fe809565b62cc" + }, + { /* i=1440 cDividendBits=433 cDivisorBits=157 */ + "01f06045c57487f77bcc39e70c643fca7d3f6682450b3fae424bf6372e5b78d82c1719494ee08b6cd18d22d1340ae9bcb118e6ee3ea562", + "0fafb6a3895d9c6e7bfeeb553eee1cbc49085cc0", + "1fa4cd766f1e70792f6a78bc65a0d1d3ea85731644633d4ab57d03fb3451a5041c712f", + "079bdd4e91dcf1d318aaa3a42fd20ffbafc4de22" + }, + { /* i=1441 cDividendBits=687 cDivisorBits=641 */ + "41649ebabac623e69c3c1f9b76e64304cce4d2a20fdd3168e44b7dcca57cc5d7e20d2a26b1eecac89c1b2bbf5617110e02bfbac9f86f444e9fcbbc44aba36f874d981bee817b6345df9da3b2d85390f92bddc947a58e", + "01537ffe165a4082f66071074ec185ac2d86e34775e18e6923adc13c7c684fc93428eee32d9000b20c435db75f0146f47fb078f6d00a858156bd29f51ee981af7b30950400bf1978b7cbfc1dcd93eb43dc", + "314f4450b751", + "afd65335afb06a6570cf5c430262e67a89976d0f6211c52e40bef2d009b3ac8c6804ae8f7c81847f3e98f079ab36114ec4d68c661b59ec83e5bc7f70724dc756324d27fc373800e633c604a52994e8f2" + }, + { /* i=1442 cDividendBits=2188 cDivisorBits=527 */ + "0a4297a82d4c82fed00cc6f576aa212c50f9a8c3ee3099879ae507696ef056886ca53d8885df9931c42c780acfd280f79a11c8be470e95d91478522f735616f1aa0fc7eacf3024de24d53593712241b793c3dcc146b593c03477258503ca90b72c7ce39037aa4d8defa5b3d16986f01ad6c8f4d7b172b473b594935b5e9f17a1f16a9c03f0d0b73a8385b75d252977f91f598247d7f7fe0e5a540e50fa9115e49611e97c14881224b8ed98f1b9130c7bda3d9c4f9b8c6ca9fef66cb87fcf12eb1c9ef0707e16afdf108b2a85b871d78f51f024df378c1f19adb196aa80cd0fbf4005045687ffb2efce613b23f8d81c23eaac1e693de40540d9935fa58e813a5f22dde1e3d0717061219b6df543cb253c64ef", + "21d6e2754865d696a32662f90af44aa226c9a0db53d349ac2fdb6e96d2b2b5a8d4deeae3b3d7a3c0017095ed9259176679e36a68550552e14262295a40a632a7f363", + "4d9e8f1f04ad459c0349dbaaac4164e12a6e1ee0c3804abc4cffe3083ce656be30e5f5ceb62a9e60be238912dabd79437aebab7024240e6e97b13cd92cfcf496ce6ed01e49c222a1233c1f42806f1bc31320f5b7ee1521c96a0a88a7e1b1670d12e99e3a8b5afa5e3164d342ae2f2306b734d5a6e76faf117e3b2d91e19e294628f91bba00a2c4639fa88c8eda99e62b0c014c86efe77424f6ae49474cded8ace2cd8e8edaea3b220d41bcfa47aefaa76591121991fd572c334e57b1071643901b0438c54d632cdc6c6278ef16eeaa7c", + "0a614b382e725b7a3f5179bd5a232df11ee3b9df0aeb2fc145dce32f6343bd98e5cd5ea071cbf585647c876b9012a05c12ebc32b9cfa7b5de82e1fa96d2b4c38c2fb" + }, + { /* i=1443 cDividendBits=2907 cDivisorBits=2832 */ + "0398f396f39cbf4245abfa18af7d5344462ade43e1cd4f18bfe484616fe1d3a30427d293a83788689e2b45fb780160ec1097e152fca8f586d8b74046a8303891a737355f678cb6876fa34d6ab02c0145cc49403e3f1c83c774c8c20da4195b561cfd3e00ed97f907aede8b9b53bd7e36974671fc244a7e1855aa4d503729a2fbbdcbc5ebf9c74d983bfdd5bbd22492175daa5e6229739449a71e376f887bc5095316b743a846cdb573c8098b17fdbc038b5dae855d42239e4975b73ba8897fc9ba86e047fffd568154c804cfd0045ed38dd0b8b66dbeee657d614006a7e8ceefa84ee795fbf7a6cef1afa7607c821c1ffe51916bc2ee1f1a6e30af9cedacc7c0ab95c3d6f99e4b8f429dd4850ec2d699cc50c2aae615976e756073c87ca4040cced9ea8fa3427cc85840792249a87fe0fa2a33d309bfa7129c17fba79c08d6e12512993cde5743448133e03a951fce97f803756039eecc7970ee4acd13fe00023a1d9390fe0bc87187e4b15f", + "1122608246a536e2b18497e27c32cd03cf578ab8cbb73b59b71f4f325db605ec546b2758619ded8c1aa11b10828bc44af1173d247e5a2972515993d8a3c0f8a383fa0865a5b6c4fec3366a4a552e9d24ba37605251aba3782f67b5ba84ee3ad3d0f649540002639360620a2f0244f74ef6ec70563c418d1da51e5b3996bdb276566d7d61d4642c8e49f35ea4c0e83726d1d4a84f390e69aa8ac2c7764582ccb94c1059b35d43e5c0d794e9c5954baee2cb83f098ede6191ccd7fcdb59c490bfd06db609cf9749196d4ec8564a878687ccd3608481903ae7d26d9c90ddbd0d5edd84f80d0d8036f0352dabe3eb5ace897bb95d21ab6d7defb9f5cba31c10ab677d9135339ce84bc7c2a2042b3d54a104869ca37d089ea4b230d13af0bd848cc809104ac840c326d64cd459d7033ac2dc64162efbda7c517cf7951a166d59b7256454b39d6ee818d912ed98b6870ec590f0797a5f76e87730a6c80d628db76b72ecb52", + "35bfc1a539dc8c08506d", + "011417c406e1f39a5e3c585abb1642049e41ec9df3709db4d4df2aca66174bb046201c1b700cc9a14f7c54935c45ef50abdec497d5bb12af07562697e20b714f119fa9f6394da9aa3395b4c9b645fa44ed094d65088c074c2fb5a6c4becae4df5810cbeb6693f8ef544d256d459beb97730289a3431b97b0776aeba11ff10a9e06159bcdad1ceb6ae4fac6a57d481e9f0f8d15ae1f41eb2f35c176ade97c65283d1ce2700dc8ac60fc676d79a79b1dee523948557a315f5d1a0fcc049d9b7a42f87876f1903939b89e20605a8ddfe007186ae1dbf6011925feeb7766184cc2c6e8bf5e25a0ab9df3c9a41cf140a59fbe1c1edc86889fde5bb4aa3892df5edbf5ead56ae43659f8d2a4b18f4cfcbcc3350dd96b08bf54241e45556b9eff8cfbd3e27bacead5b8d2f4c988d1bc4b6651cfc6c0221f10a219f7f705d50598ecebc6030da9cb79d14e5c984f4b1f8c6e97236431126c3b08b006070e8cd7f087b6de7f75" + }, + { /* i=1444 cDividendBits=34 cDivisorBits=33 */ + "037f521384", + "fac0be42", + "03", + "8f0fd8be" + }, + { /* i=1445 cDividendBits=2480 cDivisorBits=545 */ + "01145d1eefb40dc18de9c892198db8af4cf0280c1f58ba60b1cb8ed53f50685d54622352ea5e5cf4538b89562d945baa2fe77303ac7c53e9114dfe42d54ebb7eacd41bd5019a03c1badbf674b3301e596dc19e70d463f210c4dbab0d44a5cbbfb1dc1617c166a37ec710ec678a28c3e9c14909af0b5dbfec1230a32055762b786be7cc3be579d69b1a0a94cf3c6dedc5bede32dad6dcaa553d4d2fbcd9da01c1658ed94bffd9e2d11fec490592d65c3b8a7301e8709a368f2a49f8c18b57c1c79052d9b59112a7ca9f02022e3db458f9d9e215d52507c5bf0eed63a261a41a89c9cb37f9b1af782634049c5082dd0a0dbee259f20cfc79cd925401d76ab4d5e97b0411c525b53990e6fe8e82b6c189eacdf86997ac09bcd439fad25745180c38feeb8012068a53c4d3323b0a3760a8e7403911fc3599", + "01de1b79912e5ec7b8679578890591abbcb273bee57b004162eb0ce6e96cd2361b26af99fe6275a2fc64338e8339a123076e74d871897ff6e2aefc062b7f4737290cb1ee35", + "93fa3caa5e30d5c61f7f7caeb2423c03c9eda73dcb03c925ab15e1a6050d50397734c5e074a39013fbc111d483c0ba15702966ef956341299de512d2e99c55e114ed627c414ca5ba451d035e21478ab4ea073bb1ee367d2bc2a458bbba28954a85904c1105b123c714c81bd4b3cd221e5cf4d09fff522be0694e2663a62c4920ea36fc011615d62069d8884fcf45c31c59051d96df588cf215ac2c7e78d6ab0fcbe9fc88995d0ad52fcbc633c7dd12e008cb237d3d7356512255ff5c5fc39d984b10fc0a57f2c1c1e5d4f5617859fbe5a556d5e91d2114248614199f10111d487bd9810f7f6a3f7e03bd669d138738df5c", + "c96842c50a13a5ce0a1f6a1c512259f7b20845c38caff78e1db677ff48e49c55ca1d41d49d6e2a7133a85b1ad6d819b437e202fefacb1b17d33f24ff112ce0f074f26f8d" + }, + { /* i=1446 cDividendBits=3854 cDivisorBits=3752 */ + "386b2a0c51f1a96d2df4299a91cf1abcd4e44c6965892a260bb8861d40026ab56872aa75a6f272a23d7564209b0fbe3d5fa50101df65e393c2181547487cdb8729d3d67a7da7641c10b5ddab6948dac98010ae2d29aea0852ce22466d12bd23b991e73ed837002241ca7fab3209bffe0e968549df622e785ecebbb623db7863f2d478b07e5e53814a388693f77e9a78cd729f801fbfc0d79ac69cfde299c69c99302f21ba5697126d245ea3abb8ba07511c61ee199c8f9ac11d19eaa595f781f025b897f66770c038adbec86b9ffb84c903af8066aeb908b23c6ccbea1de3de22325dbcfde584712da810a6924f741e6afcdc721175de838264e45952e3d0863cdc9a142512a8f8a024d434ba64e194aaef43da5ad6cca5ae986e9a034676c6f5022da5f9fbff3a36e5b645aeff14c964702dd24062fd4b2270b622f3fbaf0c9d5dc58cf882f627e7116b564223ac94ab8377f83556cdbfb2cd6984660c7732b8943dd65f468d273bbf2eab288e6e12affbf8cab27fba67eca0895f5fb4ec49693e6f626e356d5ee2126ffe19f926cacc006a710556c1cf6c5cadfee98fba99ba2fc3c0c4ae4e2be142082776b1ec40e584d4a72a34b17eae593896b855b71a79e356db2b34beb27492ac7febf2a69baa4c1ea63ff5f0b3596b63c2088e00d8c34f3", + "39f76f43b3425baaaebfb8cd4f0dc2493cfa45f55889e1858667e1416755dae2c731b6b7e1ff0f20e2ff5e4c3e8f6cfca8f955395b99d379e4d05e8b1921ade7fcb926a54a8ff2ca061587ae480be6241cdb05cd55d78dee78d98c99e8aea344e174531c3b2fc674ecfddb296d6e66e1bd27addf726405ebbf0e06d240678a862a5c0e0f8a4f320bfebe52147ae2425c898168fc468121a8f19389ba3b3ec48a44b66b4c6a58c53e6646fd59bd5d6216fb6468b080d40867cc7a12b5f004a0a25d6880de4da3ac549f92eaddb821380976ea8db9b132daa5299d1cf2e27e84bcac072d94d0e01073fe3c31ead7d2169867aa76ec8285686c7afeef0bada39f4aa3866d5bbc12b9e5cc50f653ea20a5d8126f171fcadb477e17284f61f639ea56dbb290ec28751302c9b6c4de1ca3d29abc2aa1c861abed941778aa8076e4625673c28cb430325b534f52b8658b2c4c8e995f07ac559fcf5205479270a0aa3198b47c70c14d706d544f1bdc2884bc1ec0e39a3bf35560f5fc2a34af8a45e82a49a4a3897bc45e50d1ff982e7dc82891fe79df98cc5ac0417f7b8383b5ca482d39f15cd1bbca16dc3b50dfe231f60c24f8505a1b69ec1ee222b2dde0cf3fbe575209c7a47274cebbccb882e5eedfb9fb98c15c939c42", + "f929ef5b3031b97748ce91df8a", + "20c823e2efd85e574603c0fcdcea982623db0f74ba41b0445be7ff95e8ffb02321aeafbe0938b03345bf54c407e4e493663e66e06a5fe9c93da600fbd8e22235692bc8fcd1ff614578f519a3e2011de787ab57b427a87700343f4591a7911d50f2a4c32679b4908f2df3b663a7fb7a2755e121711b955605cc4740bed9f78ec464fc046d4798e06fb8cd4bd777e083bf0042399aeb5661aee2a1dca2ac1024a72e55d8f7af37496a028796d8a447496c887b5b55d9fa3538fdfe1d3de429240b1112ae65ee25f591dc78f5cd6f235a87c67b701e87d918984d1bbb6b04c59a1637f957c3611d3ba8e3048ad88667342d9fed489341ea3dd98a3494b1cfe7df1e25e273c8021c42928c313ddc01abcf4044b1f735500a140e139615b63aac6e15c28d8aceb5bf1ee06ab5608e50ca94182b49c8607de6c9a94d637fe5ee68c1fab343ef62d22330588417ed0996ecdc63f487e1d66605b3e0a624c52805e49aa2bdb895fa81ae8c955b8b69e0ce81c2c8b8924b087228426d95ff372a9d76e96ff99ba7436816572c2e36948c479d2d05292c4b54360015f7f43f4588a483c47409a7f5ef3f61cf72f1450edc22a0c09a7b87cf19a844108502fcd8684198fb6b3c0117347c609a93cdeabd604d7d92e916f37a7b5f" + }, + { /* i=1447 cDividendBits=353 cDivisorBits=339 */ + "01a2426a917fb7ffdd2790c58f2607801d5eb6036c51b5099576c0c29667d66e2170268a9fe60c4aed28bf926d", + "03710cfa5d5ad5c1120aaa0a85e8cd6d0790c9a7cc13c1f6bcbeb2511fe726afbd8e442a1e05a167c376b0", + "7987", + "02aa63588e10e2d002c6ea4e60a3404c4958c55fbff0ad2315ea358bc23faa2af24cc57f8e08c40d92cb9d" + }, + { /* i=1448 cDividendBits=329 cDivisorBits=111 */ + "9233039fc0ad9f619a2cd1c0ae2008c2ae8de1ea4c6c261c55fe989fb8dac1f243fdd905fac93dc51c", + "66a72e92346867525281ed57f4af", + "016c98e0cc533de0e630de9fb5beb1ee71c3b88aedab0d3769994a7e", + "3bb8f6e67c64d44379e687a1c0fa" + }, + { /* i=1449 cDividendBits=2648 cDivisorBits=1874 */ + "e3a6dcd769f5d385fe7756308c83bdaa3a04fcb32d22bcb277a75edfa91a2cfb9564c2324693d18c4ed5c882b3eb79044bc832e2c82c7654f22908404741cdb1cacb587770075bfe17c2cd850c2911c2685028e9eb4b802f3bb441f5f8107c9292d31d0d85f7affea7713503980c116f8a0847ba6f5cea5de20ac7d29c11d2de016d65e3dfe31733ecfe32187b298cfce93a3bdea2c92fbd2efcb65319c524f788623a643c8467cd9ac809d27a955d643ca761bf6f7a4c18d77af3353fe1b86c0e2106ee14428cf8fff218fda029b86f2e49e8cd5ced760d26961e9b3d1106494f48b6ba901897512004c8a3bfb36baa3c459a3abce1153f5a629f8d2adb96689d8b1a6ccf735db8b93f219166a5923175b2954f85b4a7aaa46dbc408e0cf12ca15c0bd810fd8fc3011ec1f24c4ab1277404d1a58afaf7a6939d313f894b9d8cfd19628c04a5a67f4afc8f", + "75c5f289158b7e9d92d68987234eeba605098769df47d06cc75330fcbd7e2a5c559a0b7efda2c613ea21258100df6505aeb15f6fe22eaa0faf6decd934c1aa8bc63d58ebb563f6e0f8cbf052ae72c67d329d154cb5041ca39b72f7c51d44bf350ce31fdd2df98b0c581b165ef47cab5047382ef2fb44649b97405c3c9c27fda574b96aefac26b073c4945387ddc80b858c1713ab62cdb81516ddadf40d0786a4d7df2ed9d74fd39ab55c33f2fd226448c056539d7419dec90d847c7574555b892ed687f960902928cb84c3604b18c1a7ffac34f57b8d0d83d24ce01ae01b19224a3c73a13ce13cff4c82", + "01eed6f20ae81ed4bcaa83e111c262cca093a03f36b7698020b58a4a85ef37155d791bd9bbad097aeff17ca35b867eacb11515ed0e040e6b876afbe3edba43878ac50dd09f31c85d336111ebbf963f57a7cdd6f01e3456ba2ad816593fec50964141", + "3fa33f0ce881c1ee301a6176dd567903f18e5ae62b5c3a72f4ff1ddff18b96183e594e118cde5d1fe044e9fb1d9ef5245ec4e691ecf303bf0c08684522b6e13333f7cc99c3330b0a26b6625f8070da53b4f636a72c69986af1e449429b5d7cb92f261f7c525734a6d822feeb44e6e0371881d1390adcca11de1f29116fa778a08f12c99a366c639411a3ddb495ba303ec602af396a73379817cb18490a8baa185da26cf4433d6db214cc658396bb3fcb7e56d9f01960314f424e75a5e4fe4f4f48a9159d97bb95824ab88ed3186d7fb7c00c1ebdf17fd9aedfa5825f85f0aa4b2e815c34f4a1bbdf8d8d" + }, + { /* i=1450 cDividendBits=2617 cDivisorBits=2440 */ + "af03b53f842c984dc4e1e3ff0010ef88ea659afda7d462d0487871645181fdaa8bc86350243a5fb2dc2d776d8ab830069854902bca68f0b42b15ccf5c968bf9b1b7406b4161d08963eda8e4a0d316d838de26b2ef835f7c7567e2a2c5b304bb0a56bb3d945b3b2006e51058d757d5f2e1202c3952d1317dbef992bf944595b11c6b6b874f67d1073c5e51b439b354fe6e35e88835ca32b2ba968cc138707c0523a2ec02df8841d86d0b466465a3697ddbcaa6e39c1f16c2d99509413238952d296e1a6f23c57461b1304cacd5462a455acd1034a3a8d54d15e160869f496215e4bfe875f7431486b85ade68ec8270d785a2197b9bcab1cbf2c95501e085483178f81c8a2580c44734e65ac692302e1be0da506d69afa9f5b94e7d15bb20792ccc7d03b1cc95731e08a20ea8ace4bd14f40bbeb3daa48ec3e31597e3a1fd40e5be83dfa984b590b", + "6838bb106d99a2d441c3eea884db1c9fb9954a0908de236a3515a1f04614b7c1f8e87ec03a433e9d7744c5ead93f4c8fbc002ca2a472b95dfbc5f4bcc1fef0f1f1bf287ea1ade6f116105aadd4ed6b4daec9d185b5433ba316f77ef3fa4e95a9475c9f75f63a9b2847968bca13d7084c99bf78a894cedd31cddff13d96113560657982dee5d3eaa3d588cde7445f60bd94a6d4a9d0cbc88cf20e7a892938cf2fbaed833c1d992d3f3e52388f7e2120bb61fe70cd52ec612299fb6641ec07d5f881634e5537c6bf0453ced233d133a8ba7c4e0c39f911669e18fbb5c5935c997806adc72ca565e400d036b118f8cb2f2b3fb4fd53650ca24343525747c781ad6192f3eafa09799d50b7edc73552bdf82c041cb3f9067ee56c388a7de974ccf82909a1bb3abdc71015acb8bd233a1377274a", + "01ade38d26f949940df4ca6786f251db8b30019a38487d", + "155e261ee0f528dbd67d2833a0cbfe7a032fb2d8ad883da280379ca824a854877a42671741ff0db42b8d76bf8fa86ee1f42a891618b908f886f7ba908e916be37696b7535860c09d546cd71212750e5dc3bc3feb4c3afd4f0287afddabed7f517f7bbe1f2813aaed15396978129e9c28e0ece74d4372cab03fd888e094b2fd610fa2ac24ed2c77415c91258d33a0695734aa85e43a6063f4955cd71824b35e102ff4e4e617cba8f3195b12f64be8c1047540b9dc2e9b4fbef0aa133ae3c7f1cb35c7f1ddbc81fdc21377c3ffa287c34c2eeaf347608c2ad28171180182f5576e168a2ae44a293e62b95f91afbe847c5b606a7f6051ad5bf7c6d94aac093faf35ab1152d1b21494579cd32d9530596f39695388295b73f7109baadad0db23f5bc648670c8cbbb2790994338be2877e059e9" + }, + { /* i=1451 cDividendBits=3070 cDivisorBits=718 */ + "1d4529d0e84d65436a44b723fe0c48b809ca0d01730f91563dbe062e11914a6ffa8073aa9d8a0333b907e151ea6563e2ccb3451a03955713dfaaaa6e4fc70149a87fc4dec2c3b8120509bc89077de091695afda4217ffdb1f3f8e99e4181e38ba5fa44c3d543694a53eeb560155cc5da3f01fd8401320bcc69d2d964669d67aba00592edfb857bb0f67e7398251169a9378b74d0cca709fb0cfa3b4ee8f6c7baed9961ee96ac13fdee55efd13af250124c56c918b5d161482c512e0a25187246a41e39d19be445c92d23bf6f641f30dbe36dfc921c35991e4194f473728b2b5792af760822fd46c6bda6b0061d9984ef17c96b8a3247265ee4fd52cb05bfe8f8c7ecff5d213d01c668a4210476c6f65fb434f955f66f21deaa57c29690904edaccb4f1e78bf4933231e63c54df1d9cc59199cb1343d841ffe4261122a110dc2ae3581dc2c7d1260f64b07011a99b9c9fc46c57de9bacd64e39adba776d36e514c94f02d5c6bd583161363db987d10d05af86a3db9be13ae571812f4a3fe9266d", + "2368fe35bde97eb07bf06db1a7751add106e39d2c338218aa953a6372f5f3e48b83abc452d243303e5487b4438daf70f0db83d3f05167b752322ea55d104774e5955d8b0d064e32ff99982ff7315e4432ca15206def260509fdb", + "d39c59017561ffa1b63d183c55dc5d2707b2f80566b1aee91e2825be4b6abc8c41270da8111b6f4d1553150a62ae0e9b54ca7caf7ab4bf76ca7619bc1afb4cde57e3020ad28cd0fff493c27fcd57112d36f5d08784d99fadb2ad3e13005a4ed21a0ba7b47f4be7f465e51be89e569cd256484f5da59e9aa25b6b81554259ed4828308fafc5a3d47dc2c7cfd1374640fdbafe7cfe4a16c1ca96e10e5888e03fa6d9c4779aa47bdf0ebdc1c1d805ecf2ee8474d979edd058700b4873c86a192f48f25f80855f979c825001d7909914526dfad9b903815f3fba64547f9bc803cf61d2f8f72c4cc212fd3599e146b66bc449653f965ee9f225a5f76ced2c8e0730cacee5bd5284acc9f6c1ecdabb035d65bc241e3e1509b9879de1ded7527f41ae7a1f3f388622f3", + "0adc8237fa64d72f34a31589258be116915442320d5ffe4b50e2d336b9f2c2c44996cc4f7b76ac7fac370c07903548b326b636fddb449bfcccd119980b4d2fc2795a74dbed5f03c94db50b358514c738da8473de755d8984538c" + }, + { /* i=1452 cDividendBits=292 cDivisorBits=4 */ + "0d12d6dc55fea862e13d306a03672707be1744cc181664c44842d2cb7846b7c452b106fe50", + "0f", + "df1f6405bba4d3645969a0aae4be55d979049623bd39eaf3c0302fb2af61959f1cde5538", + "08" + }, + { /* i=1453 cDividendBits=2597 cDivisorBits=2501 */ + "0862c87eebce89b4ab77ec5f13bb5eb7c1da347fce713114a08c8718eb6890c37d1ef1eff3b3ec6629741a91a5f094936dc57679b3d29deb678ff789a4b0b6bc36f021542e1374e8a14e3bcf9e89aa952e0a1bea4c7bbb9867cf05466463a74fa6b1087961558c4530994c9fa0f1a82c80d5c2352ef012302074b3ee4cb8c6c3672a6bfc1b805d2c85ecec6e1586146d89f100093d6625eebcbf38c110545526d4426857f7f2d886828dcb91639ae761aee0b53431a52305cf82245e44be9f24a0ea3d4eefc230204863f2edf2eadf7a544e58e0b65a19053ab85ddedf550980884aef792f4d16d4f41d3fade16e83d9d7d1d0f4be8a863b03b58009b1b8da730344fda70db7796b6b6528624cd686e587411752f601ba65bf521a7f5b393cf533b508c29360743621c810703dca0989bfded0f4c728bf751ec1d945487514d03e666b4f0e", + "65f22d885294171b2e5a72eb06f30127ef58db657953a2253dca3ba29b348e495e9a409cacd86f6250453b148d0f4a9ce4c17ca55e019c4019202ebf42291583223f3ed1e65a727f7a89ebaee6f257bb383d4cef0981f85908443aae79b02c941eec85f7634e75b37c7995d706339037814466c05dedc950e34da246e27d3a9a4c5afcd7b229744a2e15c132de8adbf3bee0cb5daf5f3c43fce8a34e02352b937be79a63d0a7bc733779958223db2dfb67602f48449e6c7e74d37ad05994eb84718d72254f9c11e8ccf1cd2650dd024125bee8ef4a64e9dd69a1320ee11bbdeb82d0e5bab4e141ac744ca0687d77460dcf589b9e20eb8715dbd6cf8e8f2dc2f694d208a26b9f7b0a4257d629e1e2164e8796454a8b0aba8e9a0801ac1235fe10dc3123606c45c32c1842674e07a0f30bfebd6bde26c8708d", + "150edbc40d145408571596e7d6", + "63a606cc91132b4da264518c7844ee4fb389a96df78f8cb48dbcc190c13ba14fe87d1f362d33546ca6f1619d69591656346fd42a110d545e9aa73bcd052e913739ed807a3107372a39bc1d9d5f97bc974199e4e8fbc8f52929fc83659e8d62f32c9530c27658ac224d092a9ec3387272f7933b41d0ad8b181f127a03e3447b30a51b35f9e7cfee6e66f2f32dc2f30cf75041e3cd9be512ac08196875367d26898a703a0f27f112bf993fb581ce607cd7809baca72b29d3fb3734cb617d179bcda8913e1beb9f5f87bd2cf6003c3ccf620b9dbd2a93c26d7ec18a2e888d7f8de1525845e5a169a0cf57b743839551ca87fa09e423d403d46a03f8c08e760777012569d6d98ae21d036327fca556d6e1a1576632a79b1f519e84336b1ece5d3fcdf1a6b0310994134726bbb9fb166dd21fc5275cf299affe30" + }, + { /* i=1454 cDividendBits=3747 cDivisorBits=1277 */ + "03b48c30ea7d10d0b66dba8692532d56692fbe81b3fa8d9239d465f092bc29fb49391e731964bdf83438ed3540072a819409c934fbaca6019e90dc8a0e742988d2aede8b7244222afea16d09e13cb1810dc46cdf2969f5282f4a693606d913105299eade5cef76d0d5613d91e74b96da53354ce658cf3aead1d1af831d9a140739a5fd05ce482516cbe03e868381083e83e85ff363509bb6406f5642503674fc5c0dcb6541e63b58ca430cebd418f5c6266ab65d0e182caeacc9a5ca16ea3f3c6f855be7d3eb90253ea8f72dc2452de8f2b16808acccb46636a79a5d402431a1dec98d560459719f891cbc217917f51ec30145576f8a7b48631c765709c3a54de4706d6723071ee7f71bcfab750236a8d315bb70339e6c311bc0c140afc3ed76722dce3bf1cc13e9cd95c95a7a452bd7ab7d863ad3b620612bd0d0860cdeab22c539b043bc1b8122de0eb4a4f9450ae8285efc7e93bdbdddda29b669d4eef752272519ad119a598d108240325ece05c00ecedcb5a519dfe64f9fc216def571e4b120971445e7cc8845d317cc2f97796c05ba147c1d6410ac8391e4dac47aeb9d23f566638cfc76f91ffc44e0bc922ae59220470484f765ab4a6b9cfdd6e28fd9f0772831cc5d7424b2e14b71046a88946858a2261f", + "161386fd380d07737632994b4c7653dc2835bb315a2a3d78fda92e7a87717e1dbc353dd9d4a315b81be3d95a1dd151bb6c6da87c8963d7944127bf325bf3db24d9a76d20eeaa60c053215d7aabbd7e8133522e7e39c17ebe3adcbe1657db382ad59394a9bbb7fcb182525902612dce35088dcbf407985211c23273bec75c86857574bdd8b81d0321472b7a0e0e86f8a6dc8d5073c43a9838588a8596a1ce9cf3", + "2af781eb45e8bc6fc208ebb42046fea12622d6e4b913e0a74afe5512d72f1497ae59a690568f741c26eb188b18072e86369f26e7774b19fcf9284165d7273f0110782b03492f0a050739922b64bf4adcd4f502ecdf152cd5249108a46fe07326a4b2be303d2c5d6967195cb176e73ab3e9f01b5f11f9b0642271710118219a701d1ee64719dca083109f1cfc44b911e556d2020661535c3fb181f4aafa2bfbdfa6d7f13958fad321839dc15a69f57bef42fb83f93fbe0f9fba36e30c05c4be285a4c672eca1241f467d46fd0dc11287f2a5d96529135126796be2d02d258e137c521450dd6cce4e32ba66ff2788e126deb4a9b6423f52688f48ae217af861f28e0136c9d72071408133a8b5bcab5dd828dcc9fa4fd406f76718f81fbbb417a0762b5d2fb6bae888d1d9c65822f569648fc09fe058e", + "0f4afe37ea93171b8071a9f36fc3fcbf2ca17bc60d9ea950b7e4b1f70b7764ef2c5082178be91acdb30a2671ccd7f333fda11259d6c5c6def25984be8c2e4d039635dabbeb5604dc0a3daf7fe22a0f5e23a7a2e4a2cc553bcfeec5de77092cc02b7f87a639471651dc80f6de4d6f5250749d59d3104a7905bdec31555d5d79f4377ea85954dae079c04519afb38b8cb9d83e043f41bfe3b5c608e3f94adc5855" + }, + { /* i=1455 cDividendBits=3838 cDivisorBits=3771 */ + "171f5b10dc796d423a5e95b8255cc7dc3a3f91d4ede72db220a07a4256bc2ef136ebd8078d50491785ea4f3e86680d00564ced8dc2c279ec00248f076f85e448dfecfdf0d0c9ee25669c2aef2c68f6ccec4b21b0c0620a80317692ea7da3213178f9b0b619c5e9776a4ee6cfac4abbd7695938250ea93f9b9b57e1c63b14e26d7012b99d3dbbb3b900ad4a8fa93d604356fb80a5716f2c479e3e5abba9aedf24479cac1008626ed34726d3aaf2b53285a890920394c4e7b9955d6f3bb6c2733886433cf5cca1cb35d5e1fbad1c83eb4caadc297326f6ec9721065e5316d4359dd53124af610219ebb788f3de72864780a1d9fc8eaafd108a5cf08b9df80231949a9c632da62c47bfcf3a049db1d440e041a7b4799e121a730449758a30e2c82ad464bf903c66f8888ac4b85d5ee9863566deed7118e335f798e65ddd436f46ac4d1762782ca8e52a971167aaa406da427e7ae6306da66fee8a5c180040527148acd10176b5d5e112d4d512be2ef81fb5c293d1c1093de9234c4f8997177106f9f07c9936ec018ea3898c3083ab92e8891fd25e47f84168eeae4c442105d94091d3ce9273df3229e150b8b4b983867601628aa5d282187ecd531343a823bd82d2d2eac122e5fc454e42e583de641d2042b454d21a74bf702a27135b0120b2aa05", + "0546e013355023005afe2a0e9fc7be8a0edb39dda0be826cdefe6570b69b211429bb64f16a19209ce0bd8e1ef137ea8bc7ad8952fa340d26ba601791a25a8c61dc31cf72c1c2053f2cb72f60b2baad76c453d96f3416aa32ad67b931fb0898cd41bfbfe2eade3b1800cfbe45a00cd6aea88201dbd4b292e06815d43703e67e3c62fdb4652295d29ebe80f40676b3f54f838a226a322b81f1a1c8c2945522228e8263456a06fbe5efb9a5d8b0660d8fae432548c28e912b65b7d9839fe7c53aba52dd344686f574d5bdadb910ac8c18ab687369077e512438a437352cd1ac1db0aadfdc73e73d5b236a94af39f912d07995c76ef2c745d900695401bf1fe58c9f8f841ef1bcdf3bd02aae02abfe07eeba56ae4396026a7a93d0f1ffb7044522de51da8433ec92478b75afd601e28ed511d864911bb74a8e42294e73533668e3a5e31d57fec130e7c98d323e66251923d9ec76108c3ea4d084a1163c0a936a010e6f1458cfeef0e1f44d3464d563349ab2af84c30c13de8ade90d2ab1673b5c84fb91fbc4f09cfa9a3447a37f1892bf9083c7ed097bb42186d929d8d831eebf72da1d3795a8ca55bb478ee1f4f1da15885dbe737339357621030502f17433b539167b6c67d0c1fd9ae5a43447d1381159f1023db1cd2c42f0c", + "0461c2076147f3f7a2", + "02433bf46e1b5849801094bafb0278fe1f633e93ecf42f2c4eb94047c43607f7faf0d2a4245dcdcafd0dbfd8f101aeaf101f9b42d518313e8f977e01ce1fad29ecedb04d9293f514be1f80b5889eeb0192a37a124e63be930fb29d33c2818f54c3ba9b89d11c49580ada0b7cbc9802fb5e1aed83eba46404f12e4674cc26d70e5a75fceb5479b8a7f5b99311117691ca3951de9fcbf47be2f296a551e4903c3b2c7184813816871b8da64378a7ae286ece040ff3756278f06a2a2f3d85a702d973541a3ad1e0b9933ea6c36ab26cbd4558c3cd007cc081057b1aa6cffe18f6ccbebbc2967cdae99909c066bee6cecc68d909a7e2ee71f6729a50fc8e42d17c778f0e54502fb2d28ec6f069cf38a9d56347129c5997e644db2d90ef5b8697c4807ba0c2211b50effc40756fada546c03c31f4989b628bf22584e7fbfd5ba432f49c4ea0cdd75d1cb9ed23f0fabdef01635b24101c6bac842d995a68ccac36fd85cef76760d37d0a15bfea80f5459b66bd322eece7a6ff6068b149155a3da711cf38200a8a72fad489d092c7fe2fd4c274e1108554e8724c410a2926bcc83f5470fc6224165dc578b791664eca9c22d5eff50f2549f75c863e97e7a5742d7daba04a43b5055dd86a9127d4b44092646ac2f07242977ac4506d" + }, + { /* i=1456 cDividendBits=70 cDivisorBits=9 */ + "163456a06b1c743b8e", + "e9", + "1865740da4edd21c", + "12" + }, + { /* i=1457 cDividendBits=651 cDivisorBits=268 */ + "0301d92abd88bdf6fbbd7a3ee7fb1d714298adbdd951f7c05070630f76488088ec3cbf8986fc0e4003a4f29564c9740a2caccfcd42ce99aff6a4338d90e484a0efac827c0f8378bba48ade955929ba43834a", + "0e569ecdc155fba6d5f6512e10d1f4b6ca840377f3c695eee8edd1eaee1c5a8ba5d9", + "35b1072348871d9320fc15308a30e2f304f11342bd6bac41c85d80259fc7254236fa6ca6bf2534c00e2bd4627d996c33", + "02dec3a4ad1668e6a171414e0d5aa41c3ea3176b8686df9dcbd1c0eb74cdb2c8ed0f" + }, + { /* i=1458 cDividendBits=188 cDivisorBits=74 */ + "08863a050c0ed295bb42d762241331f5cb8dc45e8e0ee4a0", + "039465d55cc324139fad", + "02619d7db77bae223fbbf23b247caf", + "015d1b3fec660ff8f15d" + }, + { /* i=1459 cDividendBits=3454 cDivisorBits=881 */ + "2727c1c73f4e2c53c4d5c861174c47a7d1bf38cb2850c9feca76b1ce2f4a2f79705336c011539d078b3897ef9363da68decb541376c27e1e3c0f988143a4c61f5057eb91e6dc274eabadcc934c441a6696b606fce3f4d5373a46a9c09e6ceac4c2c927ca398a0700acb470fce7fffb70d5733f1d69a8e711df2d36e215193a6614d4e24347d20c0c0b27ea8535de8afe096866cfc1657ce1fdbf2da6ad99b9a3b4210ab6451c2fda9c856273e4217631448fb39a23ca9c5f3aa4db83022f9925da02e862be86c564c8e13670147d30f31629d52c4867a8ad0519a7aaeb195c3ab0248d0de7cb080e9dfb6487a69f57bec8f1c266f7df02551001f8e4870b5872e6bd5196e89ecbe775f53b1211fe10755aef1325a0364c903e91308943f8edfe83c7b3e82a9cda9676458b653b1fe462de6fc2f40241029f96c7b97ddd4d90dec63f505a77a0ccc0d8140ae09abcb004a55c76ac6dd0d6e41477a7512106b1a00e73f2c2f28387960f0b193e8c50cf44b87fc0144220c14108f183f952a88ac031d366931da975a0349fa148ce5f01a2922e4fbc27b91d13a042a9ce3de30e6e0dee3140c3b324de0b2917df539e50f9", + "0153728089813c2f083455a90a583af39dfa867471f34f4a7864a16d19c89012749f082bd3ba9ca4dacbf73c10c171837fd394214d7a4be3d9e94059a57f15f83d6a5e12023bb6b38403a3a3396d98e1bc60c99695c5b0bc17e2055ae298916f6f784ecd8f6c130fa7d20bd3d594c3", + "1d8796b599c2d173a364c359a59bf364870165df9e388556fb996284ef229d263d5e63dbaed971618124e780a60c1bdaeba168c8764a707bf355a72d797acf6bea034893f0f0be8944764f03d3d84df5ba29bc31f70722ceb02288afe49a24ec43421986c66d4db50db9f170a670683df42411c56817556dba45e9f145415a40e1b3e42c5b0ab870ba0a56cd617bfd9df661079d9e65fba6035c6e0f23d3833c684ae627e8978fca3d8c7513eabb1dbcc6f55377db4ce76259b1ee672f1d0d12ce498b35b8e96d51b37b83a38512da08798acd44aa5e5a0f1a4697cb447064afe997888f4b2403f873fa60e276e2aa39fe439b3cc64924a933c9f2c668798057a3065246cfd9680e953da654d88c86f821618da8a77cc757cc0c52d1a2d42541483e49dd40ed3769f18431e6619070088d83981a8f7cc81ea6d3f764caad1586021f", + "40d5d1a75ce98a05d3a537ba63687b57b84bcd4d634c36ce0946f9a28b19012adf519de485a36f0a2405074e553029295aa5a5c4e4e0b29e9ef59c890c79909a47455e24da62b87947a06a86576895e33c2f4b1ceddac465e618b8f03a7d2ddf12e749b7ca88fbbdc4022485c75c" + }, + { /* i=1460 cDividendBits=2783 cDivisorBits=2159 */ + "358064a4d2c225e3b8f533c8422225b2994fce8d01f5a77ba6874d854f92421fcb4df90db904cab735f9ef260618b62862f6f6ca32ba053224eec16738412d471b9befd4792d2fc339cd454c70657b65962b4487286cd98842e67badaf4f9cb2516db44fde6527063240bb0063c3cef9baf2a816152162f7725fdf436ffd46c4fcb32e4304c458f237fb56709f0e004d44a30baf294cf456d75a8f5d5b601bf98ce8b9dfeaa8684b1ec953271890852a68c66642270b9749b94bb8c3aa3ed8b2e0ad0438c35226bd69e40ea6e6477b1a99cb990db94ead59e36864ebcaeb758613785e9cfe6610a1cfaee03d48267350ddadf8b7656fffa287dc6f8098e7b1c05da24fddc31c082e41551ab7118977a7752a09ae25cc3986df6266c6acd6f44ffa150c0c917fca72ba12a8ced35e7acfaeb11329a9214621310794d2d991a2c3845498ad560edb00bcb20dd814f99ff4af473c0208c5d2dfc86cfcf6", + "3c993fc68697ff05f549c80f7acf16c4a0f57efe00309abbb49f40aa8b49779ff0cd2b0a9ba1a075f8d4198415d99c0b21449481ff31e67514ccb2d0f2c904505384dabdf72a59e06f5aaf4a10a79f1008b4e986fada07b77dda6791e52680c0349b536bc955a2ab162878cdf1fdd8d194c2db45cf3ccc3d45d4711bdba0cf62c7471a4303575e211f9bcc02e525e6709205862dbff650c8aee6eb230bd38967326d6b6a94f44415245b48750c13f03dce19c8895dab7efcf102cc83bfac93296e97c7a007bd43ba2e6bb0160c17762bf86bd6033f80a5050fed978c0faf40cc573affb62668c80541d2f7ab520c96760c968b190cd1690e94d2a5b3f7aa9e5695c1bf0b2e573c240a108cc6a192", + "e204a8c24fa05951ab1b5aaa3b7071029e750713f37818bccdab2e9d5eae270d43e632b12eade80a1441bfe437ac0bb397bc69c1108f614dffca5ed410f3d2d2d695aa2487c2d425ea13d3092f12", + "3285614f7fa3861c87a1fc6dba7c6f1a5d21ebaf5d19f5e7ecf67f22ec8406b767cee6086acf38088d0930f15955d68ad06a2988cec721d33a58cb75b27961742409c977a205197bc745d3db3f9a0abb68f18c74792dec7714b41914918a223d54ff564b6b90e583e1d5bd302d5c031cf6998370b8eaf177345e54771ccec8cb95aa8fb5dd11cc1d19b0af0b5000fa8d2ef4e0fbb1fd36ea1ae7f70cb429a3e2f4b7fa5ca7a5a30990389b4b4d8b90886c7594791fad625082e3e3d003cf7b7325b4a009e10d9ffbb3e6d72dbc1bef029ff0380350852ae747f985f477f5d44d1120067af8e7f677c9ee7dfaa0cfb3f8c7263e62a44d718bdf13316f305a7da6bcb3003dff36ed3ff7e066a9d2b2" + }, + { /* i=1461 cDividendBits=1297 cDivisorBits=592 */ + "860a90f8a84a1c0d0850a9e933f2ee2e3b31903ca4696688617f087c4a2b797f669e76f9ba2e7cd559578c8a04ee1ab21ad5f214eeaf8d4992a1b5094bcb2c6feb84040734dfab33840ed11a257212673ff7ebe4fb45cb9f3891617fdfa0d367debce505c8c1b8215242c06b3d6eb1f2987676bf8e408a563b1f0b3770dca8a1e475229728bb4cd9c113bfb8ea79c7b0b7348aeac2c60a7ac4ea5501f84ffa5f40e2", + "bc7145012a5f0c68f8c52ebfc9c28cf29934edf370ceb5939910189298ba29a1c2be1b9ab277190ed410f342a0260b33a939810371403285a457e9dd9b92d18ecab2ea31b54663fc4170", + "b6188175370b025d92d37b22469204a632989bdf4b0fbc2b5be765e7342fc8a1ff7f403af23f8db6d1cc1690ced90d33f72532fc9f0a217a211014717f17568f5e76861230620011b42d6343b95c2f3d29534294dc62b0c7", + "5976a1d9da6f17307e6357139b9606a0670e573a626ac95c2d7b9b8c1d61247e90faa4e47a62fc81ecbffa3a40cec5106229208cd855059ac3846962f85ec6b1e8973ad9e64d876b62d2" + }, + { /* i=1462 cDividendBits=1926 cDivisorBits=1926 */ + "0556ab9ef9050fc81d2c31556fd437fe7bb9d0bc3a2155247d1050edeae2151eb1e4dca0f1f1a4cdadf5dd642f98616c11e2cd00f52b56ddde8719695d833d3a6fa096bce541e475c17b8bda1f0ccb2d4d099e80680135627f88afe9b35d11ca98e3d0c8e881cb2d5e06157eff782bb5f78a66be22b4676d66eac27e66034ab4f75212f81d01214395407d981648324ed4306a291a7cd086c55323490e2c86cf081ab3f716b6c2cb7271ad953896b85beeecab1a86ca0de6527b8f44ac9fb7e3ae39dcb2ae16ba95467f5c7dc5bf8bbd7c1b3ce7bead24ae6d88fcc7f26c479a6d40b66296f2a1b1887d39195021beab1c", + "11908403742078adb4ad14e1cc3cf9b328a0b18bb342051e6cf86019834ea18cc6dac9ac77ad7a49eb1b543cb855a33c284155708cde9560497b3e689a1fc736dfafdb2f0a06908c5d1db2999fb78d68c724fa5e2bb5251d9deb0335bbfca865ef278716cff772b5108a2c38b384503f9c47dd3abe02b29ecea979e6689d0e1ebeef6735e15464da29f366ae04c75a885af75d4b56ac68eba18b471be0f014707bb4e646a76e8c92126d2b9bb1da8024581d8a513b59ae6250e7edc2a40c231ed61d5a4ad46589da6d5db7e0f9d9969f8284349b6b6d53ca047f9f609c04095ca27e4b621b392093416b687319e64a21c2", + "00", + "0556ab9ef9050fc81d2c31556fd437fe7bb9d0bc3a2155247d1050edeae2151eb1e4dca0f1f1a4cdadf5dd642f98616c11e2cd00f52b56ddde8719695d833d3a6fa096bce541e475c17b8bda1f0ccb2d4d099e80680135627f88afe9b35d11ca98e3d0c8e881cb2d5e06157eff782bb5f78a66be22b4676d66eac27e66034ab4f75212f81d01214395407d981648324ed4306a291a7cd086c55323490e2c86cf081ab3f716b6c2cb7271ad953896b85beeecab1a86ca0de6527b8f44ac9fb7e3ae39dcb2ae16ba95467f5c7dc5bf8bbd7c1b3ce7bead24ae6d88fcc7f26c479a6d40b66296f2a1b1887d39195021beab1c" + }, + { /* i=1463 cDividendBits=3524 cDivisorBits=1809 */ + "089657e16c217a6016f5c90900bf7478c2da577f6359203b7ad31ba2b3fbb453ae09223ad60f28131b992f05fd88600634d121304765e6799322c0507aacc67d20127e2b45f110eac3aa9ffb4fe3845b649eb6d0de611406c41b5aead4efa501a82a990ee0f69e4476248b1501a2776230d8c40a434f38be8eb4b6d1835d9b00bcd22a1f63f8510fd540c46f0fc428a3c3aac2fc2d3e769936dffcdb10d64bd0862097887b944ebf596f25a4c59c5b935e314913c741c3f51242d3873d5c407229ad5e407c250c2a1f4c0e3175cee557fef826558f65f2cccbf4c0cd5483817e340fb4d0bc614f45061fe7c572a3b0793eb3a813fc6365ad410d13a57fe6e0b8ec2bcc7d89cd7f9ae254b5d3ae397c9e533d291d1faab6a09febb0e9caf627e47adc19cf32d4b1c99daab4020e3f4178b6c04d36335ef6bc4a3b6e43f144ba3a40e55a5438bff7121907c50e7a1f188470357f7de83ff95babbd74a566d9db4409549295f95bdd8e4ea50ea8e94365cd477fd046a7525cd6fad6db7a6769451aa2948218e7ab49c5b8964bee1371d51d63e20957936d76fadc6f368cf0a0aabd03b78548089d1dcf1603a8ce1a951135d56ea773e19f3f7bec", + "e8d1f8bc9eac6c99fb3d4fec49acd9403a40cfed8465146f4043a5b7867cff3753b8bd7c653a6dc8d6b43f11bfb49a6fbb3a519067c34ad4d9ba951101afa4ebe412934d3f79b5a95ec664c1d1e3dd70b99a0822e27fd3d618b0fd452447c759d6dac2556e247f04d466e87682ce246b401ed7455055d1583558464f9892133c6f054325dd6803f83ca6537c440bbf79313408252b0e10717ec0b37b9b810ea8d3ccf088f8d1bde72eb85445b6944bdf3fa9cd7534dd6048f05c090b1c788e9308eeab4402bb0716afb08854cbd57b2fc8a17c1df66e7bd1c6fda9cf3a6b51ccfe51", + "09713660704045321a59cea5b2a4da62cc955745fd1d90da19df47cbac91a97c5f44170628794c5b79e5e6f1012d3d20f187e3515643851e5d8ac66a9b6e739ae2e05f5508dc9dc5f2a2f7f3328e8a0cb1a1234a049511b662e697dadd856322810231e75fc1bf649ee2daf5e8020e6b10e8c6972d3c6650361ca50396854f7fd1a99248140ac6161f27776ba265822390c7179e060856e7959b70de2894696f75c985e607e8983792b23344d390c2696ef5fcbe1b832da909646d39e91f2a02ffef6701f0b42d527aa196dfaabe14e7fe9812e5772b6f", + "805829a0b804bf7ca2da243d1761e27186e0ebc3344e07f2ea7e9d5e524a007195adda2b0ddb122c223b9bd9d00c338541ea253c63c80fc267310ff42d61b40715007faea253ecd4dbd3076d56690908925fa5ab426af7b5795e2ac3923ac2173dab17888ecf8ec8c1e69e9e733c239609128fe41d48ea13f4065105c163173e9202468c58aef880a2839c9fafe2600829deae586030f2628f1a9678e3cfc7d59b816b63e9653186a16a25eaa2a223eb75686836fde34511195d7a162507e73f34a994d19b6f97a27918748d0fbcf91701ccd99f0cae7dc4106bf425b9210bfe9bcd" + }, + { /* i=1464 cDividendBits=3516 cDivisorBits=1384 */ + "0632175081fd6d1c91d12e37469c75882ada422d74b3763c776937cf1a3a403bf7406bc7c38755215c8f0f7afc793c9809c5178fd3392d2c5001d82217920bff9df7bd17eddcf104da899f11cbfc9801bfd91e211eca1cdbe93251d129908259175226ce789e8c08fc1cd749d9e86afb265c057e9998d51ee43a9202e29fb7a0790209bde7f7abda77dbd8d4950670da7d777d2748e648a2cf8068655e0ef7882ab737834528fa7651bc8a864eb19b51e1bf9ba17575948a7432b3b0e863e97f9037c3ae7510b6440da638c0494462bebd16d8ab8eefc5e39536bc1abb217e802af304813bf081e297535de0168f2324d0fb3041395d6b0c7a572fa03a1c283e48d182926a4c65378213557f8531ac12ea364d2f88d1d847c72d71475ba8c853e691dd56fb421adf4bcf3e0fd5d2d0a7d10225f2da1f12ea960bc34f4308569f15c1b0d34e07de51d2bfa5867e12c3e324c22f0ccd417764f74be23d76370c3e0d953f53bbdad1222e2e00225e63801653a9f9cbebbe977c408c71e32590332cd488ca157935f5c07a51730bb72c77e134d4a7d0a21a52abd9ce38a3c6e4672887d96684f08a8d13422d9ccdfca4a9f137d8ade7c2a37414", + "4b79e34a44d37da28583d11583ba28a323860d30a83b0ca0d80ed7e9484d3fdc0023bef20251fabfe07ddc90cbf7fd5eefbe54bbe448873543787ee430409565c08d74a742b1fce5a84a0e51e37da4475834f9b6f5ceef211ee8ad5e91320e42023f6402f4c40d176a814a89cc9fbcaa6dc43dc391d122494bad8b1771e45648b5ecf91604ef685aaf5fb43b71f458153475f1f0269bc849ba29e782e4f2834d058aa7e8d85a373d8aeb4da0c7", + "1503b49568304fc35dcfc2bed3e83b5553995d5c5a16aad66120529ac9f743a4d5a4bf0fbc6743e7347aa76e5e28e20a2951949beb0b7925a2662281dc99019fe0d77810250824080682e1a450aff0822b859ccdddda5f10955a5ddc6f427c17339e97a2c53315d01676da5d44c4e4325be01693f0c439e73371f03367154757f3f1b7133c94fcf45db74d153c00b2767b6900182ad10a871936042817e18d50cc1dfdd7dba9874debad290a3f70846a7c24f31b1a165cb7b57a8a34d028b3eb867348676840f21ac1b21b74a2f091ac58a0e08235965b001fd2f2d5046b84720bb2732f9d22b0f0ec86826640107a4081f7765b6153844de2d24b97623c3d58883dc17740ecf6e0dcc058", + "22d598f25dc91f1aaed520368866b9674215ed098bbe1d204583411363dee0758b338e5ee303bdb234999e534c56d3a351e0f0b8189d382fb528e3d2286b7f38c0c9e88d6d77b9ac7a0232e5a5dd910a1073c78a3be5f166afa0f62df2907cdf79d0739192d779d8ba49e0f3123a2649b593e764e67b023d86eb0d98d5a72a8e203c88c9a00f7cd715c364a007002ab72dc179a43b92bec89634ef43afc0ce54a8b0f1c000f5dd3f0e5c5aefac" + }, + { /* i=1465 cDividendBits=1847 cDivisorBits=81 */ + "4eba3e818a929f0c3058f84c5a5df69b5913332fba43a7879f8c168f1fa81d4577dac88d9188a1a100d01761e732053b2b91f8b84f287c47cb29221005b1050fc5f5776f76c4c62263cc6bf9a70766fab185c0b79138250110d8492e2dd4ef15b72eadec3279aedaf9ff464418070deeb524b4dba43710f46997d6a39d6e8b6db04af31b573ff741b9fabe255c02816ee7be54fe11b18b585704c8c35ce472ed98a0e5548bfaa8ccc50cb57888b409ea11219c63ee2acd57f9e5fc6cd5e91bf53674e0dac3b4b8de629070c50b816adaf1814fe3ef913fe1d7169e174164a88ef5d3b215aa6b68", + "01ee1a3442b50deae2ce3d", + "28ca2417ef568c0e00383de08d6ce6d59882d217cc5841d9835d4405b1caab182ed26fc434a4b7dcc0c96518628ab01bc730c3b4667a876a7f5f9542eff88b4f128d330b1323dcf83f5e55c0c094dcdc52792271cb8687cfb6293ce54ce82056a8d658c687e566106b7b5e3ee8e23b13d43521dcdfe5de1ee4a4d5194fda746ed65f396c76490ffeee95f8b65c837551fca91db2ae14d171c70cfda86b3ad4ea6b7dc138555b537ddd924f6f83d8bcba4aa6dedda284d5bca928d6981f0f4b46c91abf315c91a060fd2f80adb809814eb492fcb3d73c1f7523da17fcde", + "010b0869f6cd11a87c8682" + }, + { /* i=1466 cDividendBits=963 cDivisorBits=377 */ + "05637e20962f4e2f8956939d86b1fd89fdd99bb9cebcea11c135428927d0ce356ac7e1572dd50d1209a830c84348e561a5dfe7458028d21cc8ed75b4be2033bc58199f7f109fe75bee54dc2802508af604a0bd3d273afc5cdab74330e2bcad570d0d301f2f0565f91b07fba2a3b00c6c34f39a7e39644e678d", + "f9caabb8110d9fe210fc317e35584966d7bf26d71a621291da1df204f92e98caef7009304a4dc97fb07ea777d5efc9", + "0585c7502d81f5db9d5d0c62b1937e99c0c40eb85fbfc236ff4ec56b9e3c7027f076afb6ae45291f3b4311a71312e89d68a0e10bcf60001c29ac73127a6516f213a9f3f855dafa5c0544", + "06902b033d689f6a44e01a132b38da2e649e8d1bd352291b73e63c6f5f4d35e5e44dcebf4fbe205c85a92feb8fc929" + }, + { /* i=1467 cDividendBits=576 cDivisorBits=335 */ + "7f288b61e394111001da66e443d0ce50264dda4e06485d76008e540b204a77a331ef50b09feabc00ceb26ae10e3d79a62dccf2f69b46500c5bc14dee36c7420a78fbdcaa726db0bf", + "2d899250a85da7464faef4ef9a4f74c11782c6fcf5c50da026c367fe85a4e509638a6183b438af4482fc", + "02cada66088aef96fe15c47ccfba42cbc7cb019414b3ea2ab76db77b998360", + "0d6f1a43cbcfd7aa750dc2e5c9625cf0eaf42b0333e0b1e5bd57b32202df98b521fd2065acb34d199e3f" + }, + { /* i=1468 cDividendBits=959 cDivisorBits=907 */ + "01a46150e73be26e007687e8c62030cef332ea6494a58d99018e47ceda045dc3d1e20a47bf8a5812a08b6b96924987f3acb3cc2f59b35242c81026fef6d11793c3737f1a74f2cb0a5d3e369b216ff6bdee458acd25fc28a8929ad771651f0742322566653d9c75689ea33db025a956888906378445691a86", + "07e3234acac10e5d5810d4dd52e5ce08913fbc5701a9f91ae50315feb7cf925652cd3263183e2581ca7a02a8fa66fb3b131b1030472706cfa3d4c225566da7c7d35990f562d68a459980f1a94928f4039d770768d69cdded1218af0bcf960e0436da0c8119bbaebce731703d96807f9c9c1a", + "354c74211964", + "0574b51bb3170d923b796e0d55abbb62344e2f391b60bc1bcf5e4998ece907038005fa02dd6615dff43360a27fc3eadf0ca5e093e5ba2255033e452f90c1bcb5da295cfc067550bb5a1fd27a7b4956f06029bac92d2a9fc3f07ce0f583b10a2e21d0c860de492a9e8a8ebe11bd3839a3965e" + }, + { /* i=1469 cDividendBits=191 cDivisorBits=35 */ + "024edafabf85fdf54e5c830de31fad86daae806c66e35300", + "01d6463910", + "0141a3d035ee60d1e96658c5d940a37762ea0681", + "017f8a31f0" + }, + { /* i=1470 cDividendBits=3864 cDivisorBits=3833 */ + "f9345e6e9f86f6a2e7012789212c24fc813947861114f593a2c09c1c439aa06d26eb402f2099b924abb70924edb8fef0cc56b771fefc2c6f976f9b4f863769aa8b2a14a2ab26051d8f0150e077a7987ef9d17686eeb25e0f1e323b00a6d6a30056f3280480b3dfee0e4ceea4abac148842ed54cc794ae118d24da2089bb9c57ab11e9251f02acb0f13e7921c7f64b19d0566fa2ddfc4e1749769f330a331bf23417566deedeb3e906ab18f9e1a86bf3a7eb812ec5b2ecc164e16aafe761e090c566de624f08bc6ff37ceb5a1e1ee2e101bf6e8104b1ed2a32e1c3cb927bd3b39f7fe48b71fd97bed4e00df98313ae563378ddbdbe535e2a822f11ad4920be01319e39c5abf65b11aa54cfde870768993e1b2c3a422f6d16d4ccb2feaba63c015821d660c14a773f01ec6a4749960e16c8170e4442d7adac0ed69a2f7b090c679e45ecf36784e70b41c32f6c47d45c8742a9caa17f2c8bb93a40c5991dc2efbe66676a13f8ac41bdb9a0af7568a8cc6c7ebed57d984c39f451e684edd67cf259accc6c073f3f6d8e744fb9a5f1a920a3e05bbdcbfc4cb61ba69aee4ecfd3ab61c42e2e13762543e6c4a21b7caa8efc73c57b3f187e6f2bcb8c9e80e2610b9937c1b42d0a56880f5c65501287227f8a4014183dfad2b7ee63ec47fc77db6ecf0038a32a8", + "eb75c371399140ee910185a996a4f9b72370bfc4b3d40d4897f461ab36e7cf2c6cbd42ba73c6206ce3ad329dd0c1d694e98aa338246acb98d26e666449c872d99e9806167c2dce59990ff5369e089bee43a974aea0a71ced904a42b0f3f2e49bad26bba7e9da16bd2b56f8fdbd118b29168d5c235585939a97a4c1a28c61c3f098cc09573c2564f3c965c187ff69ccaf686db1cdffa7568dd0219cdc5c33d885f63fad50830ba61946df1639dd42ef92c5d295e6bcbae06e8b76396578cd54b7dc121f71709125016b48e33e77de988349d48c7eeea85d12eb0171df59bec02d34d5ffa673e7af24ed130776918cd2e061188334af0b9e5b56a5f2dd8f3abd2acf1bc50aa9d0b10352a7290cf4c88b53bfc51c95f6b3f208907060e4f2d752a4befc8a47eaaf7b1b4433d433ee1afc093f1fc0f8a001170b7f217778eaea534d50f6bcc160ebf6acba0d079d1625f2148c0861c0e1991df49ae6d978dffb5cdd0a208c2d7fa6335b506f5e3923225373cc3572cd3df2111cf2ee026e8ed1431c598b30f315c2c934e7f299527558909d5fd2832196a535332b8400d076d29decea6d988cd577f318cbff3420fc8bde2d285265bdd985e174044ea63b192906b7f45696b21ee14f6f9d407b5ee1ef15b24d3fd6689dfd25c40dee69ba7790ad", + "010ef18ba4", + "6ea8e39e6a2be890b7169ede2f29968f26e35d493a16e306b3eceb33396b6e223c7dc91e8e8c2254ef8aeab1c02651953d49356d6daaa93a9baa7e85cc41b4931450b28760d68cb94c31ff22f8f8c78f8df34f20ac9b8d387b2e0069c60b51e3ca485217e8721f70aa7b4e0945a98cfa443e4699811d9c5546f5326e76725f4a77d361d716389cac99b6d65442379b4fc363f5dae7331d3ff8cc20bbe9d9f99b8703d8af1d806c7c9eb5325511f19223cf9db72a0f5ae39edf47e2cccab281a4df58fc88f63e5c2ec39e118d69173d987377a7134d0c948b0e1157274f2a2ef9db00dc876dae5e6de7db306b5733acf04d0d2ee8472477e5a53a338f37cfeb843f7ab3e96631ad3d6ab840a0af799c272ecc0bbbaab2fc047e21a7b077c6db389490ce66d7ea1a5b39f120a64c067ea69c8c7545034ba71012a94b0233d9035cfb7b68e4814442cc618cbdc0ced3c1e83bd282c7cc0c0c1311311145e13e42a96e5724c5ede34df294331cc5153c646422a404385b92e7c9a74e67739b2644028d6c93c75982c1727b842acda342896c353b13c726e4d763cea701353cedca168c9093fb66cc50e98abb34fad36d3ad551c67f2c23f6a01fc7e90a415f7448ae22f50102b69b9ebd31103b96393e1c46d611044bc68f91602423cffa8694d4" + }, + { /* i=1471 cDividendBits=946 cDivisorBits=786 */ + "2f52039e36efef3372652eae748adb1209f894bded1d06e4f2c88c05ecbd3b453428514a852be7e536069ea5df0810399436399cb187959c0375ecdc41ea553d8aa08ac5350ba574df268505e9082e4bdea9df292acf5829ab1fdeca5b576dd31cdd721c54b9172f824c2f62642cdbc7bec3cd1ca26f", + "01986614ce7233158ef313ab682778ed214120e5791323469a2567b1714deaef5746e01307c38281037cc5ba70724627939ea0f6c25829781307d5fe1e8325c792cf4264f064496d7e858cc012c0379598ec4652d0fc98ff415ac63ac0f0e00eabc115", + "1da98751068bbb28e612ffcbf5a2f2031f8f8b38", + "014befb97a9d60ff8b876ba867af247605c130954e0620616045dd90d78e3f18823ee6e71fede43c528896b9fc837390c14dbde9c158dbed73a180aaa39f4886b13bd4c5b9e64813321851a5b0db6d309fdae1d98d5c230e2a6858bf074a37eff8fed7" + }, + { /* i=1472 cDividendBits=1237 cDivisorBits=847 */ + "050399a485f1041446f90424f7b5b2c069c9ebc063cd94e7fdf76cd59dea96347bc96267a186937a47877cb7db959c8deb6d2e3df3289847c388597d5b27c244769a050169ac62c6fdb87245d00a8fb2d3bddedaa3a424c957d7a870ec86f1218739c10cd7820fc626f9b60c74f1dd21f0362ccd893d2a2e517539aff99003900ffec49d72b06080fb72687e8628484cd7b2dc2f090ac9d6740751", + "19ce1206c9761028b25cb7f7cc2bcd8c87e918321235250d59304bf8bbed75776dddcbebe39b8e9a40fa4724f8548c6d07ec9d9bc294f1cda05d17ae984402c3019f818c683e886484352078d63895427f9facbb1eedc0181f71638320dcd01ae639beb1bdea242c55d5", + "31be0c650be050e454a3551352b0b4d6c85a11e95513c1ea1bd9b322e6e0f4f8f396bc29d611c81890065aa2df6403e0cc", + "11eef663acd035ad4b9b0d771bf5b0ee66cafb4bbfc4d84214d1e373e8f67ef544e17cfdd15fc8e96667a76fe40d9edfe08c2eabd84cc0f560cc968fa09455eceb211ecb6840952c99ed8ed017cb853fad68dffeebfefba35253332aab95203a7075478787f702864195" + }, + { /* i=1473 cDividendBits=4091 cDivisorBits=311 */ + "0626a6a19453ed2fce9955affcdb03c6dcf451eee9b32180f489a7252c618365b070c8650f4b6c4bdff3afa11d701f7fecfb754320275a2555d96604019d6a80b005a2afe0c65fdbad54561cd313ce50da4befc00a7814fafc3740fdc0e58aef6879b102e6847ae3c8d0e0d2a83cef1bca1939de4126d8c20a7831de8ace7a8d81f3c1cb99856008de40905e62c5a67d6158afbfc1eed2774c9b40b36b8ed888b81cc3478d0977933ea355ad26d1afefe0ce85cab4ae25ba23221736060a781244a9d70460959ba3654ec98df389f40e70e2877350d5fe835f2b868f3f7ace99dbb5e76cf7b6c6e5aea4cdc541858aff51d6fbec5de068beecd2934b425c5a4457e3f00001019fb72ddfaf579c8f5acc159c87478649bf96c9cf00f8bb26b8d32040048bba3c9e60cbfd994b7e400e1c37e96cbe093c7d37bf265d2ed1d990ebe124ce2a40759e100946ea659adbe2c0181564da09f88cebac69a5d38524af4c18cc2233e2faab68b202f8ab69e0c485aaf30cbc2e64301ec674731f8dcf5ca47b87cdd50db8fedf1850498517d58bdd18322527bb736b4b590c70f49cfc33beba51913bc789655dc57cc2df78d521b2c34d4397976d1b59651aeb7f3cf4a7d5ffa5b9dc91e386f7f07befbf69bc7062717a5af3f5ae08af9fd91935b49ad8356e7356ef90355cd613c35810195611ecde0c1dd64e81ed2c2190486c5b45a188", + "58a8239c8c69cab2a46db8267bc5f59a52c3cd71dd8b5513f07f2ee0ca15f53dfec9b6fb13420e", + "11c2dde72261d7872c397f684b05ea66ad48556c1cdd0a45525293cbf851bd735b25c3254425946950efc55e252b04411abc59245a83e35ebc34f82973051a25a266bc2c00c1d8ab03467fb3d5cc7c6922186dcd666ea7f330d5267cb60bfe2f57491b5971cf5f35301123a7e2630ec2c5ce51bd08d8c35851fb6b85ce342d56fd52ff0a997302aee05fa4a7627a51acbb28bd4dfe9f1178200d0a51458c95418969e10f3e278051ff0bb04721ea8a01e518067cf9f49f700f191baa9f21aa33cfdd4edeb39f7ccfcd721388bb652505dc7d9a1c54d6c4e12ae9a99687cf5b7c4921dc96d3d3334d1767b214568c1fbc244a50de18b527006372beba25c76e59440ca53f356d88112eca037e3dc17960eddfe7d1c69f5f318af223679d34bdca94ffc2dd70675efabce9a45cb327624d446104fa03347069acdd598a84145aa94c9eccda22b767116eadbfc20b5f8f56ca120f0ace9560f399b237f46ce8511a40c50a8f7ec87ae4342ac584ce068852bee3ea776efcb35331e2e4d5a2bd222d8f8680201c76fde9b343b48434bfe498d57df4152e65e3c9b2db0cb1933aecf509b783c387fb25262aebc8e1cfbaa3cb04a33820ed939ecb124cfcba51cb30e19a86a21ad597b07c7baa5e0398a996a51bd70438dfa702a2f3", + "4c784f8c281ed848e0d241bd460b6e4198445e2ad656924056fe477dd45f016567e46a3215123e" + }, + { /* i=1474 cDividendBits=3649 cDivisorBits=232 */ + "01a301eb08f4e768d916b1cf8debec84d004aa0aa7c9f51fb00ac3a84096357570e3d57ee164784cf363fd08ba6a56924114ec99ad805908a2c2213d3700b14e197e7d65b339f05043da81fdcad0c3f3454229e4cb49bd4cbe39eefc9d4dd20cd6c765c5a3addaf2f496c4674d676657c58596389acd40e819ace423170ddabcc71c7bbca36c83b65828f3b6bd6b6a829581b123f00d7bdd9d0fc51dd35dea584ffa5295b6c72cdccfbaea24d343689305bb095dcdd7587c786978e63342cbe1ed9b17349ac503787dc7e1431ef3d45f1e82a022c69b64785a5297dbc9bf768107c55b9afa70a7ecc52fbe0b4b936bab10f737ee010c51937f911612648096c3a544cb1ef61d9cf36ffc2717cdaf422f08a9b17836b4f4e7d2ef78e313feb6b96e6c487fac218cdb459d1ddbe7052c2654dd4b2db0fc873caea1e930f475b3e5f8c1d0a13c40dfcda7819d00914a2a179174a55cdce40142c41f0ea2af2818c258944baf32a9e3c5a44e9bbdaa980eeff78ea2c349e092fc0d986213c03d188379412023e76076b39c814ae8891bf09a7b2b308d05ff87d9922ffb382e87952fe7999caba6351c7cd2894a912a293d88e5fbc31268a3456d651ad0c9740c2dcc4d47a2693c24667f08", + "188def5f67557a2daa8837e1ef158404f830b1602d646d6715ef10b2c9", + "11107eaffd3d970ee080a40ac77d44764319a6e53fc7ea1c53948064820ce6e0157e6e9e00a7b8fc03d24484a1fb3b3738a635b9f0ddfdcf31134b6d920095813bc7299199dedfe4ca206b1cc74ade65148af297919a0eb04f488be9daf5536b30e80df70af16ba6bc82575d8a0bc00fd96cbdc9830a47986f9eaf289f6a976c2168f39a757256c7c27501c5f8f581fe8a5bf5ea0b318ebc6840abe48679cf1206843720ed7f4021fb3d2f84b6459890798cb7546a65c5d2e2b978a24f632a116b15a8756cb02faab153cac0f724ddde48936c2bdefe8c5b0a6402c5523d5382a83a7f0c25af127daf213d7a7a665bb2eee4f20c40986179e4d8e4c8389b837551bb5e16f770c269b7ec7074c3aba128275192d465536676176e31f9613735e19173b9c1a7ae0392cc605882dec9047db3405a2c23cd1b52104249693ef62c428df4997fe9afb1cdbd729921faad7498053a875f44be508313cf5f4464f9d726595c11300a78f661e8a1840a5d2a07fc269cbdd872b18d340597481ea9cbff3911bbadf6d932794f7820613dd30c97a5095fede217ce2e7995b7179467938f5ebd866067a1a4cd1a39c47b3e", + "10947ed9253ec8762af010660a064036c538dc73aafcf50a0d95909f5a" + }, + { /* i=1475 cDividendBits=2116 cDivisorBits=1556 */ + "0e56ebd858911fb91f4ce97d9e8a1b524e45789f4a530ab4d9d38066b710243977f8d91d64da88d69751c832150b3536de8f6b45ca8d06127e361e4cb7493929bc7b23101526f1eef1f1e4c3e98415f32b4083bccb0c62b3a270525b0700ae1fd522b9dfc691b0edd69f36d35ef0b3f20b4305bcfb43325598f48025882621a7482dc8d45d717c4f3b8a851f0b2b24556c5b091d029eb8f696dceca12d8ac16890fe7a0f842e65eb1c03c85dffa90b09808069f6c22e5f9cec3f8c952ffbc069c1acbd7c07d2dfb8d35e36dc317066a910b176f226bc314af659ae62bc0df0e25552563e74d39322f2fd232766ed21089ddc2c32bddd21890eda58ada39cacdb784cd3f49c3bb2da4b", + "098b6cc527b9ded1a19a4320f2fadbb0a82ba04a0738e9094a32dcb77267ca984b2eb6c915b2b749960752f8ffc7a7aa5a4b171f03dc7f5d86fd295fc91af4b481dc47bd88c85063bebd9bc4be7847f9e1fae3a7f2693c9ed448d55127dbc95ed3a9113c51d6455c78ec571c3591d13d05a1cfb134e5cd599d276bb13ed0c0ea159333894fd0ea2dc8e9919ad71cd4f0152ddc2548ca769044de801cd1c3bad6e4406b16409b75ff9d1e9c9bdbccc90ca9e9988079dbb2431b155c937f947273cba840", + "01809b22213aad90e035c17431a7381eb3db09167f3e5a265ae5262420475dfafd8afe35d23cf0969df8bcb8ec15753b00e7ed806bb0c015fb25aceef259d4041e7d0aaba0868c", + "011ad0a0a66069210a3b3c6d7a7058ad68dfe2ecae57b13d98f7e68a5d5a6781bd8456712c9fde4659e54d050c2cc92f5eab1915019e243dffab42f5d32b9cd2b2d9637d65f6accacbca18ed7dac59523b0c6502858437ee6b1753aa121ba0d58b882f71121ff79ae7df0359686e573de3266567e361c1168889a46bc8e9466de552949bf47612412ad548480f603f553822fcd0d19c04b91a35350c7d2827156c0e12b12c5fb388594a9808e6e8632d48bb96f1d20ef20ff64b3bf1dda23c6641574b" + }, + { /* i=1476 cDividendBits=901 cDivisorBits=599 */ + "019303750ef1064cf8bcebf6a40afa8f704c8ba7ade0136d70c52ad9efa0f9e8f50dd3cc3214bb766aeb8fec0c84debd83a27dee66bf200559fc500f61c0d78954ede41c76a76bbfbd010dfb0ed8c26f01426419d6600ab216086e539868bf4a65ebce84a5e7e84cd3e10d58d24802b632", + "19cda475a1e7486859336f956512d19cfe304ca22776431dee9a8d356c39ec79b7376e12af5e9a270d1a3715eaf114bd4ddf977f149df5242af794480cd00612ecc738c380420b3b125c66", + "0f9e623af12458b67a066a638b56a0582e0865d05fc4d19509668cc7bf668c64c534e9560fbb", + "16d614918726f57cdf1f4d1d701fc8d001aa058334c28ecd18cb3f77b025a5a8794032a5848b0185cf97e74871160d9b68a4cf1f86199ecaa18febe928a20d6d28f2a12547a12c2deb3db0" + }, + { /* i=1477 cDividendBits=1263 cDivisorBits=1072 */ + "5da6a628674a512bbe134bceb06a71eb753eb8888b38294e1645cd9569624c4c0629650e489fab3dc3f617c0cf1d13e893e3fcb8dbb740a77a6bc5b15aea2b322d539a777fe3d871f29047da7dbd5c177a6187f7cd235e44a61a34c9125181255c7ca879560788ba8b737f006024f982e2ada0c666897ab0b1393fb43ec6d8087887653129c3becf9d9ab753d3cc662fa20ea2456350d7403a26f1d8b185", + "90fe4a0fe4627474b8b523781ba8cc87d5500c0c34995e8f5fb0089ea5fe76248005cdbdc313caf2b6bc647eb88413be7aa359e719dea866855e9d9845e9e739b5bd5ed653e8975e263a12ce0d2d5454430718025f33fcbccc265c78d7b61fdc879c39bc3515f38dbe2196050de015c8a5205d1164bc69f39c43f1bc5caa557092dff67f6cd0", + "a5599b67322944e3c94e7a5088eccabe101181f891eb07be", + "09641e6ac55e30690fa54bcbd5cf0c7b52db465196ddfd7b2de441bc279dfc9c6be7745d2d2ef32494d7fee622445fdee349a3407e70d107c63fb9ca116bb7ec2d19a6e232d28eb28ce2809277b5e19d7cb7ace23162ceb6fbaaf79fb934290ff8cc5a73c9f7ab60c535b06da89558ba3a2093d6f4316e1518e6f9a7673770636b15d05c3f25" + }, + { /* i=1478 cDividendBits=1639 cDivisorBits=1555 */ + "563173418f8745c0bf89fdba2217c68835d14fc98b56abb66bb0a3a781d4d1d9deeb769c553901b878d031cd87a5aef1d4f9dffde4ea970772ccb2764533cae023ac8a3c0f5d9de9adb806e42baaef1f7914963e78b335c1d54665ef11e5da88ca6f67bacd8bd4e9affa2bb5e6983872d3a323e9686878ba1359022aec1cbf9617ed2e3685dbe3c20e8a9735bf6fe2426ae3f213daac1e105ae1625d6ec8fa5cad8dfce300afda621bd7d476ea32a826d9bb906bd2c714fe791cca17eadc1383b427a547752caacc92a0e8a4b7", + "01796bf60ccc29ff849d73af4b61ee62aa46d25a13259032c5c910b7ecce2915f65afd9a32955eb705f164486c034372021affe1c3115b1323ff4f9d19562d897c5e0cf998ee4c19343b9640acc681f0fbdd879147f60f235fe0d8ec47a7be189592d1b48801cf00319575c30b627ddd22b003f375ea57d646886e619a808b8bca7239feb8638b0c87d968ccaf5447303e67b56860b9983dc5e744417f9a543cd78c393a647baac317e6c892081a1e0ae86c589556cdb0a7c57ae04a6d68bb715cdbec", + "3a76b18a19cffa5e69f688", + "2dcf49db36689f713f151da44fd5b108aafe0a30f0df8d401a044cda9b16df0fe2a74eef081b8cfe4489fe77297f846f543fc97ca51c67795a9d6f0c9de020eff572701c01a1b0676ffa1ca40e8ebce84f7eb90db3e6e4a4fb3d4f3a865913de82f2778db5b96ffe3ded24af88d0fc0990ad28edb99df4ed549549cf3aa7882f8512ce682af528575aa6746064e179405c07916fedf4d584327315c2da0245593fb4120f01d6b0a87b04e1c3f815cd42885ad5a010461358f6f23ad6d9c050730757" + }, + { /* i=1479 cDividendBits=1919 cDivisorBits=1594 */ + "0f6f61e4039e1c282f107f2f580a43b26ee58a0cd661d755d6fa19e2910c10dcbf415ba7855e0da2130046e6d9d5807bfdd7bd1cf9cdc8cd5e541dba85c505d661ac0810ad3112c1fd59cad0e80e3bf91e865c58b0357f9be5b2f1abfb8f8d7c1dbace4e61cc450489feb1be8cce5108ecac7354b45fc129a6d5fd1327292a26c43da40d59db5aff3dc61e29350750b2aca773b69764d8c94eb6cc9153e46604862a48ae89cb21a4e080c02f11e3c4dbe0ec88873e70efd7e119097cc4f9083b899469459d4c9ba3414338061a865c7c354d5c14f7a1f6eb4e7736361145bc61711fe69622b4e6831e9f8439558d8b46", + "0324ce22bdcfdf5b039fc428eb609c9faf8c2127b53aefac432bc06a39a179430aef226345290ae97d44c949184000cded300659b00c84be97bd67f1d61405a30e07ef84e1b6cf524547076c1016f68430b1c5d33af1025938959cef1ba44761a1dd481f71e0570d46b70afc30445dce7307c5436b8cfae4032f7428f1d98b3dd6c2c14bc90f2a468903f7e42fc25f7bd2c9ab0b918ce57c3c33dd771921c473103fdcfbdc838693e7704afb22a5fb89dcc493a82079e4e52da3a4c3a0474eac80df819b768ce2f0", + "04e8e48f21cd3bacfab4a72d217ed907902b44bfee9f1d9e79d6a63ef018496ea4eed2883fb067cddc", + "be543a63cc223bb24a7a670f2e04a95a3b92714aa79a83effce5ebb8fc403c8033a1ad6e1d28bad78acf86eecca5158c53e8d465467fbe65c861ce94322854fb1935967d4b29781d78a1d9edc52635f70c4513c1f24f5820a31fc425dff17e8cb8f61b5705171706f775e8a491fd63dfa4c51c76e3a29d795754d4406b9bd3481478b77f42d8088f35572fc09b08b4522243527ac3d26449016bfafa6cfd8f6e83f8536ef9d6a6fb07a7b16abb0974f370097510eafa1cfc00e89b0b9d6b7f0e99bcec54305506" + }, + { /* i=1480 cDividendBits=3759 cDivisorBits=805 */ + "362983c4c972dfcfc27fbe9a071bcf1d5849c72e9e0b3b3acd2cd80a4403fdb67ecf48a7296f9f6013133be9d77149e63370cfd05f94b3f5d230c6292cf4a32ee8879bb1f52568e65e5884bfdce4506de2cb31d920c917dd8b4feb8872bc817de9dc979be8bd4e05caa2f9220656c20af05a07873040dfd85b92fca36ebd5ab7dcba405b1fb0bd8fc63b94b082821f9a2a2b1e0acda057844faf900f5b7a3f06cb15493dc62ff17d92ad3436059bb3d9fabf084e65d7f5ef0404e37a66ff050961c94012c527adb046d94ca8913635d04568f3f9b169518a5c9c497457afc85ff3e763ec2be74a2550d04e016aec2b0c3eb4e9a53647156c8094f644c1bf819971e6c454940ed05d19b7aef6df09719ec968bfa055c03c5e7935e3f83c323157d9a1a2d6a28c74c425dc9bc5419e40a59ff5ad357117a654b4df0728a7f0cb7f5ea1bfb76ea484a1513a672449d336b89b07310b281093140d336e0b25b8258d8287434184176fb53a69208391c67d797ddfd865ad0b7b0b42b88d96968108689c3cea5f6720e626ea30a0a331d23ee414d1767ef6d6f165a71a7f06d0ff649c2696777fd35308b0cf186effad28e6f06ae9ebf00fdfe7f815a916227da079ed765b5cb5accb8ca60ed50cc5bf4bc9c89eee28160d77", + "183d9d1e2fe99bf6221381a700b0f6f9e1d4b5a0190140e04c82538c5f6c8af0b50b14d712badf034eab320ce5ec7a147929865f94c7f82158a395fa00877b8ea198f17259129c4bbed100d365afba85ae1293a28fec12e66db666ef132dc1162ba9aed921", + "023bfe610cdffb62628b177e5eddd17e5313a2963265e704039754aa7d5ff6ec7d2f453a65413cdbc1fd819632ed8c4713cbddc1ef6b2b5b63c4c3f39bfb939e900a18ebc8417b3069f641a602a7fc8d09c8d7e64793f190c5b04eb3524078fc95bdcb08ae0521e2acf5d81f6b025deb135d9149fc7d63d866e7b888f681ce8767149f5845df0db8d0f1741838dc2c89b488705bae31555749e3b9cb321fc32eeb5a1e38f2b7aa48d59688235246113aa98c01603d0cb9fb3837d027e7b975f7bae261af3d6b878f90089582e5924ae1e7db3c16f1d22730bb6e2b59df2c665e1ea871041155b721bc6b03d3b1aadcb2bf09422ecfd8ca54b18b7d2dd5f02fcd66f6fcba6ee0299c9a9fc0a7b403541a6866471ff4065e1b1c0cd245ee0c233603319cd8db2bcc0ed6e4360b8b756bc9ccf146a76b41c561596c08798e59110b76e7685c82903fd9bebd562afabb470f27cd0d52217c4c6a3240fb222fd1d8d5856daf13967b70bb9680fc3f315aaaff7ba3", + "15d78ca2dc8ed00b1f4983a07d010fdc952d624f6e3028c66c92a57bd3841dba655e16b575ad449eb8686fc9fd16895c62c361c496b52ac636dbd82ad6bf5540f22fabe7bef4ba72339b1a21c19a8357ed09e378bb446fc260c33895f3c3ddbea5e98ff274" + }, + { /* i=1481 cDividendBits=2728 cDivisorBits=19 */ + "4dce84b2f023b2506bda1a8dc994a5cad57adfe75b554df650bdfc54872e564d660cfdf9fa26b389cea54f575bfd8f4b06aa96daf378a12aad2bc742f3494efbc41ba00eadc12b88462118c616a8da24b047bb4df4899c6a08dcb1fd1b3f2f2763df784ff54d9b6b68c4f579726fe65ef03c860214b35773487a72a8555ccb190d7632c12174144f6681e902a34b7e1d299c8528f4dea8ce00324e5c76d9d4bd59cc87494a92a0d97f69abb4fb68255e3bd8f7d5894946e1118006af9503dd84083ee65ec7b0bd4fcc78097592dadbe87abe5063b8eab74203ec0b9ef1ebb11f7526606a11084248d64606aedee97daa3cc5e5321c04c5a2d47c72808a55e495ea903101e1094537aa27083cbcc48bf1945118bf082194f66d201e9f7a2e2202604a2d8fe858da3962cf2dc0de8a3a1cb2c0b2977d50c9b5bdc759318edf2cbe97936ca3bed46c53df6ba77b5403944f3012d73482", + "01ab08", + "2ea4e858898422e238d33b534b871121273c578add3930aabe4b9077ea13cc4028cbabd532a7571e0704d9be625905b3c4acee48d88c353ac30c6671c2afcc2267bd151298fc0962e93da2fb33720ebc63c204576c660dec932a9fde7e13ee55194ef21e362c505baacf35f510a77f2ebdeac50c8b46bcff06e65c00dfd383970bd5ee0e342a3c8bfee1641a15dee94e76340e1be338b0e1b524f555031d37a7095712eca29469a4fd280644d163e22bdd83532c53e004b9352f94cd993bffc8ddced1c7c7500b470325bbd2421e73aefb5e66c88cae0e47af78d7bcf96a0e4626f1b4f9a6ceddb8005058d57d7240ce5db8a2ba7805689937934fad4b7e38bd89ad32b7a20d5037d9dfc2651e574a78a83243da2d27126e395d1f9a5f89fb05b6ec7e012e59928a603742905c5855f19e65c4e49f93f70f002f9182b454db7bf16ed756579c4a022262abb46fbce7a9a2efa9", + "d43a" + }, + { /* i=1482 cDividendBits=3663 cDivisorBits=1819 */ + "3fd2e12a0ae39c9141f66eb77443757ad570b50d69dded283f982fa0e2edf0e12edb51cea0596a8b5a47839f52dfd6fa769d8f21a0d7063306c23914e02068b97d78a20d60cde69126ecc3a0aab3bb14e8c68c5ebaaab7bee190f814b0bfdb2c4388b40e5ad2bfd386fa7320fbbf8782d3894cccd57716b3f27765368102f086ef7ec66dbc5fbab59f28ac490813c8913b0d44ed3de1b1fa3315bc4de8391d26d9145594478cdb24519dd1249683da673dec5ad8758a8bd87e6d7e00b4a5f76535842818271b121e0fcb9691968400bda82d3c4cd9eb1bdb19827269f0b42db810e4fc3a2eefbe3532e2348a4dada40cd58800af8e3d69cef80bd4b001d0d022f644b08a613bce95838443af7a5b70cb6aaa3dc14ab6ad89c2d88b05a672bec033fa4a3dddcdd41e3fd4f7a03c57e2eec726584016e926283535e6464714df05ec424bced47860ca79282e5b4dd1ce15abed499698ebf028912953a76db6de77109fa2d3d606aa91bf86414ff8a29ffc7a9942ab8eb782d6a1d332e03d51fa34af3aa5e419730fda3e50270e1bebfda293ace294430e54f17f4e1ed273f5f99b1651ff281581838fd820c382af05f851f3805a550f0f33d2a9a41113b4d446c4a98f74a4e0e703adcaef", + "05345bc8903f0e7c8a0df4772e48ec82764ad775ad7093e7e34bd23f18d96e576a698e96ad4db977053bfbfa163e3b43905e04dad56a53e351b5066456ae50e2df7b90913778812a98d5e1df03dcbc8af281bc9643c72d911605f7150fc0ac512c79ea37b28a4f824a917594028e5a090cb3adc39540956c9bc64254e7ae566ff7f0c523ecace5e56a70b501c2bbf6486bf9518059fc303380416f6854a88f3bc891c5ce19ed43ff06e8b27d71fb46b0940ee01d13f5eb6eed60e3d75d6d4bde927ab079b556b3aa6d8d6f7658e689f210aee5226b13bebc3d601d5cc7230adab2f7e121", + "0c435c2d7ff5b5af54282bfa1ac7b170d01ace536000e7d11ddc04caf39573048b3eaed5254fb9ee7444e510a35db7f03e535d5d351f6c9c5c313774daa1bc409a1becfd236fab4d11ed569b3c8b30876e287247b27a2daafc8c94a10e12b35be8a4ccca828a46e25d8dc35aa7cd49ef0d535a9b7ab1240f891960030423180a732a6bb41861e413d2e5fb8e84324de1cba4712eaaab222319f2b8588d6383b1dc66ff3b7eaec2b5a85c5502482b6a5fd8d63af57fd31f9ac00f79dfb583b421f1b6d509d6c852706683d8588bfb5e601bef489420a73321cd025eb6df091cbde8d73a63f1c672", + "c457ab9955acca7673fbd6240b6f4345d358ece7ab3db59a21fbfc7492947ecfa88d7d5331aeffbcd9812b2cbab247330090ee59c39ff2194ee29967d38c58a87aa9d805d118e9ca2cb0e15a0fdf79c34ca943fe4f4fa3c648634b970b2a41158af90feec0209e431fffc5156ba57ca69d44900ab5777ddef09122ea5583c3a0cfbcc7827c71789c3cc0f93c4929fe0e64c0bf1512a1e71f7feb593f533f575e7eab9e4e73a1f2b75ca9db8707d3fcad4c02ed9ce0dcb801b7bacc2999b22a3b1cc4141de0c3d0a604ea24eb233c8054e27cfce41f655a61c0b2b9c468d532e61b043d" + }, + { /* i=1483 cDividendBits=732 cDivisorBits=667 */ + "2b3a8257497c8cebcd65ab078b536833bc4dac9862089d34097ec11afc4d98db202f1fddb9bf88c229b8afd8e64f2fa577623b2ae86b1a8edfc258394b9f0eb7e899ee526e7143c604ae93b26247919fb28bcba0c3c74b044871e4", + "07e2df007617e0935f5236196c4ff4a8a61c6965411389f3b8a163ff8b846b86b1bb1206c2342e3cc4eca578f8b25bdc74f901c0a340f41245c99ce39cee569c9415aabb8558913083cba7bec918a31994dc2672", + "057b45c3fe881790", + "01594cc9ac88e3d755898879600c9a68e17485ca778aecfa92233713214941114cc9318a68e2cdbebaa3e4d0e542c5d9d6edfbfc7098aadbb7c44e51ef4018ce9f161c67dc0bdf431943d15cd8233697f86e93c4" + }, + { /* i=1484 cDividendBits=3955 cDivisorBits=1044 */ + "033ff0876bc825a06267c25f28b1f3765bc2d2b8d4208ae1102dd562cf728afa7a720346c830588368de45ad618dbd0174aad9e4d93311546708e49ad2cd3534cbe3c25e41523b3f11428b3a7efcd1c148c58c9382b648dccd5533c5ff555885fc58be0fdea30301438765e0001bc731b93d563de9774fd824690993a285a0b9c72d2f475d6af24973865646ebea638ae3ed0e6f96ffe8aac1eda2c2891df6764c17fc400073ed10b72b138b20299dca5b4411a3ffab09cde782574f229e9a4b30b7913c901e1826ec560e77e9fcfa36e4e38760c27e77d64162e6a54b6021fa7b4db0df2e9dfe1d47e1d625a9819bd51ad657567d6a33d22683750517f85b5d016e3acf7125c400ef530fdd0945f565c834d16321c446a644651340bbf5b5e0f4b19ad311345d0c3ea90152871cec2089ba7fc236cb24afdece993d238a66315f1c3c857c08bc796bc6a7180c567afbcc695197693c84daa62ce8dbef72d9b07cc267a506ff15f4024e4682c64d7de3f358ddeb4c393753af9d810e7704b39a1b4cd62752443d4fd3baa955bc81afc161d8f16fced345168c8a25dfcbc05f49f959676fc36507560480f7163faece1d11e9343bc96a5b7da351a28e7900b44bd187dfeda72888ac96d73cf2443c458e3348a303f76141982152e64c04129185cd7f2193b15ea318f2b7aa481eb751", + "0639e88bf991b0da6b7bc7b0f60132187b27502dcf03ce1671aba04dc2e11afb01ab8029cb698fb73161f61e968c835aa02a18c483960373e6754d42c6ca0daa2d521c2ec2b8b6ac4bd86d2849d2334b3dec0b3c101ee52f737f76c38f12ca72280c42645ff6ac82f3eedd6d51f79024762ff40b668c056bca73c1330b1cdc540eec7a", + "859e7a40df57e83d688787ad47cd005fd77119fe8d61c2cbf69ad40fec1d4141e35321cd2f5cf68058a68435aefbbbdfee6b5fca53133e5fe6e3dcc607fc1553d8927f2ee74a26aeb4e95dce96f072a8c683637c2766cdc0c22bae64d4f4e704a982564782436c5e3ee0e6aa4a3992f130790c1a4e85cecd53830590f841320cca4a71a6e1b63c4b77fbe75454070a77e3aa75cbcc59267e4b2cbc7e88a5ff3fe0833217d0c951cf6b61a3922916a2e2bb8e18cfc42741aaf0d6a543f5454bda55f1109438150a107a5805342eda0808f62bfa0be69b10a3d705331a965017fe8740c1f450cf87957a0310f6dc595da40b7ad7ffa191ffd7febcb47ca8206048abd50b98206e47980c7bb9cd58c81e303bfc3fa7d07d0d19e24722f4fff508f2bc9c5131b246a2cb370763fa3babd19a98b862238c2ac1639efc610a106f60a1a98878600b055e05d2d7701a6fae5caed203b15b0a373883373f2ce3499a3df72c5854f14d42ed59839e39a3", + "2b7f0c92ecf2e10d1cbd09316deb0ba29e2558264a35bd2980060a6427458fba2481ac48b938c25bc92db06bc12d88032ee339573a11edcda0cf63ae80f38c88ccbe187853aa30a18ad637235928d23401750b9a37b43172544fb4962834e74684d081a729a7ff1d916a7421246629c3a96730dd3f0a8767a362dce19c070eaafba3" + }, + { /* i=1485 cDividendBits=1661 cDivisorBits=956 */ + "0eaa9dd4ebe35b34e8f45c1dab2c7129513c73eed25f2d975efca1b039ba457869ac63be217953f4c3a33f3d46c53ba1d9ff443966daa9e32550343a48f3bc69311ce30b8ae668d8878a42caa1dc6765301a6a92c83601cdd217b800cc8b207dce032a20c28f61cda382e3c2bf425ef28a6610b948de88b2c85b4838df3f2845a006e040f89ee6d6f703ae33befa6bd42473098d6b81df5c9faef31d4f99baed2b72d851ce9e3b0232f1e27cf3bcfdea55916fdaa88b184eba01dc38a4f7abb232227b13aafc94852ce5d3d6543d4b3a", + "03c78570274c67822b56cc02c50a68dcf268af3dd69285d18f15f24274462f1b3c99ea0960e642e298c5ee6b893ae864e930a2bc14d2b077be169888b245e7670cea22da835e6312984c5fd8ade97f5170ae8c2ed5cecfcfbb6fc5e38c2486160536a8fc6b59428e139d039748eaf9846efe2a2dc8ec1a9c", + "03e172a1ca4e3b38561eff184a380605fbc8454dd3a62c922aaa6a8c9035c3eb3c67eea76b7fdc3052f05e2e02479396956bf5d4c27bceb98626a168eb81aa0da3383f5634d5280156c3838836e298d692acac0d06fa1e9b32", + "0330df4a8dcca838902fc26fc32f60c1848aa27721aea03dab9fd126b71068bc4346f865cafc555719457ddffeb16be50390ecd25d008227c331b4789df06ca08903b3218046709ba1b86cca8a759ef2b6bed50b4ff87086c5c2323a67863ccf6b26323c406faa0c6315b4ac80baecb8907134eeabbba4c2" + }, + { /* i=1486 cDividendBits=2459 cDivisorBits=1688 */ + "03926e971a21ebba17eb82c6b02c497c423c479e853183130ec9e0ac31021ef8e6e26e01bee2bc4db7e4ff5f6d13c29a42103bbe4a67961b47c13ed895b082618b8105d1f375dcc62da0c54abb2d2f197092bbc73cc6d2d876f59fcca6e67ac65934363e5635827407c77811e8d524013f5ab845e0f60eedff16b7467fc48d6738537099fbc0763718c2c84765bde2fb5123d5ff72e7fbd1003e5bb7eaff9c45435dad4e7e7655c1dc60f0b8cc8b0afdb23c2be511ebbaa825ff58b996aeb0561e17e97e1cb57592247115670f4dfc836e3417426af3c7ef48cede494d311818b756a3ac0b49827258b41362fa3149f819deb2b86e709c9657963254038c508a80ae1489c87ccebbbb5b4e0d6ba8deabda271d3244118e207646bb5be3b104f3fb2d27af06c92186a3650ac24faa9e64d55f563a", + "730e24caaa4f6b2bd6273d8c0ea9904d3ad5f02b621427c49850cb7fdce271278e634700b5d5c6226b36ed1e30484028994def455fa288dc1a2ac524683942909afedc6df736cc237be76e17a7ec1fd94b5e48b43802513af9a0e02dcde268161b07f5142ea6a7a9d6c5766c5d5a42d915e73bf3cddb96220071ff4f9c04868bc48c7d00c411ca98b5196cae789b373ada920e0b31f7729d69f68ef1da04a451371f516cef6864735824ce56695dff751fafbb4224f2fdce361cd1df530997b6fe5017eb469091b53e1abf61d6e7a62d7376bf", + "07f2a0ad6b8f18913a1eb59bfc6de09688f28b54fdc39735e21dd075e6ec5edc90e21e3ae734d487a969694001784f7e4976209a375b653a6da5ac80caff934b19029a87bbb62331cbb28d1cc58d1e1f2fc5cf5a91578e0dafbf0d2428276218c8", + "6ffb1d909cb8f941bf0fcd4f508a4ff5a5773222b80ca7d7710f3a0ef5b15c9cf5fbf133f39b4cd06a3366d1fef95fc90b94d7222b03f3a2fc75cb490d513b9cd86aae5a34134cda9958575858f0b50c0c4f1f31aad5a8ec11c042f27d8e24456b38a94311189b704a9a79259029754abf289ae95c455842119be0023ab62e568fc6fd4fa5b70a93e3bc7a7cbe83886dbb2f840b80c6cdd25c1bdeb4fdb01415ef5e68fb26ebc48d7b927328402045fe5b0b7c07b531a7eff43c41968a67579b516ee6c3a6a1f3dbca1e20dc13a92bf1eaa902" + }, + { /* i=1487 cDividendBits=3475 cDivisorBits=1776 */ + "031a5096e5fc97b5a83d8f6b97b4f4cad9ea939728fae6996f5a122788c424d68eae6f8781cdd79b1c9227e0af519ff73a84537c5e305c3e3b1d0e4659c46b3c0f3664a4a5047e0ccdffd7eba4f1d4be14b5e224a553ab5f8355823817bb28502eb6b721d108e8e9820df6e9e8480cc3640ab5a8b42b9eac70f127a7b0f870605753c3ddb8bc9be11d384b9f8fd9721a833394785ef852c512bd3a22933e1a191463417227b101382f10f03abe42527e8b00ca65d0594166e1798e5620a9ce41180b4b9bba9146d0cd985ca12dcd12c953218913de1f2b08cfc288f2721ad95d1f4fbad1e6e2ac80358051addc785d24a382af9f62f53d5afbc5ead5a83bdd2ed4fb91cb19fee9e8037dda8a7e53e0a4258c7b0260d3d1e4b5fddee609d5412787b0bcb3dddb87d686abb6b909f32ebc6927441a5531804d6f3913480f3bd6f49ce4cbbebe628e75579d30b12d5c731b1da98bd70272ab3ed2ddb7a37a513caa121097550885b174688227b387716704fac914605b01c0383063e4c7678f0a8d6b6d2dea7df88458572ee1873ef184f16fd734751681d179df939e431c48b435e53eec578095525a4bda22db54cc1bbe322438", + "17a66252d4b840306a55f85a3804044ee86f623b06244d2b48a04747fa405a72793562f1070317234a4e7343617e41f23e9271d77b9a0de498d828d56f1cc5149a6eecc2d08ed9b401fce8aa81305d35c67380a92334dc60939d53a15fe0a2b4452bf74eac682fb6a27a44200ff05f6efac5983c68b9d52f6355fc6db55e80c9f3c2d4e12481f6378978b76ad4f41fd584712ccb8d3d95d23667f40f25bdbae0e976482e784347169666c5e814fab080191352086feb4d2ae51a60fe6a3c6edf8d2d3a9ba89cafb0206079ef17b607303518b7289a2cb27ee408170ea9da", + "21961a3dd1fe9ff7bb2743e8350eaa4db997edbf91b1462fe03ea0f2dbd3031d38c8bd399f3951c0ae9903c10dcab1ef7eb0b7f5898bc4d6465343e5756bff141618971c62049e910ee680f0c114f9ad3adcae95d87e214ffc6821267b96892852ebe8dcb569c928e1fbc8981d91f04e39baa13f61aa64209ec4e3ef5a468be5af0306fd31906bf3c2dcc5f137582ec1d8a9b65b0681c8f95d2565ccd54b764cb2a70de75e69cf4a2107eee54b12dca3cfbb1179c7e9471bce0230a1fbbc1a73176a80c0b4bbdd8ccf8150e5e92f2198bf2fa30f25", + "03caab23854adac0768d51da651588f982dd7e60882802e7e3b24b84544969921cd15de77cf258df89712af4539335f093742cf81a58f5a325bec9a6836cc8f258ae3fec9a6236a65dbef9ee0f3702f953d23278cd1746df671b6c5cd4bca8b0a51b97283460ee2fd9f68136ada75c58f3ae5d733b5cde755aa099de6c0243eed9cca9b9a33368b82cede36ee72715a9df087372eb45a5690c72ce5c862ee0fb46a0c558e8ee77ca2f3e1724ece25aaad5f8deece888b87aa8cdcac0ec95188ff87bd07304140197a82d13cefdf2742293dfb369cd581e5ad46b6151d1b6" + }, + { /* i=1488 cDividendBits=176 cDivisorBits=151 */ + "a1f9aaf145eab5f1bfa8d74e02a13b80bb74effa7d59", + "09f92b992c8078330491b4674dc3cd166a7e88", + "103da8a5", + "08c8a9a81f9f82f74c3bcb249df246f3e5afb1" + }, + { /* i=1489 cDividendBits=3328 cDivisorBits=1778 */ + "8af69be7edd8388b3850bedeb96b40ccbfa70dd89d4a4166a61494b01d8ca1e8853224e0ce8a21c95d4a0089856d03098283662ea01640f2da0c8b59db67b4f782e9336e1341c1bddd80402544c60c888bba60bf24156331b3e9c092eff126e7dfa0495ccc083c00f4bf7e098e303dd881f0010e8421c97aa55e2a91d357c6a6b9c255123e08b4219355eb2af03f8ea457e842635d04d04918e803377cedf7e8ad9422489892532a5666e51ac6482e9caae1dfed37eb6c2fa030efa663d535b0fb4b7b038052c359d62c4b9e8d0a034c73adabb6449ffda274e04247af1d46428b935e27d075a16c86b182bdc30391fb9a47dcb9a056a53a45296a1d9f7573051e58438a37d44116a12438bcd64121b28bad39430c5638d3ef7243e6701993b0827afd24ec3fc4519ad565301cc905172534a0958cb5721318a6b96a613200d237e81a90f45efaa20a6c891e50da0ac23a233503061264f017393a44f2cb9db68dd140a2134a7665189df7ea789156fc2f27bca75c51e596f0d18d6b386cec81156693363f5add22e35da431c8e88fa4b627ad7b50ad7b2cdb746ae6f0d0a755", + "01da6e175ef224a1ef57ec2503ee5705529b3e9ddf4978b53072609d80d7012297f724f5b42055c6a02f671d3763ce92e02a2675bef1e05318522ead2204472655866011cdd634b984b6f6671c43fdd92534b55cded747d03bb2a1bcda66920d057277b4a4d5ce1c096a67bb9a5b5e58c7634a8e35078965415e18ee69803df45b645ff5e299cc3673206ad474735672660976f5f0437c65706c4d20f21b367f75576fd04a493673b6d09961af7018fbf2cd3e88145ff8de1629e47f9a6deabfad4ba8e1ec0d98ae03da7f8ecd1846db96da56f534bbd24cc1bbe7c75cfcf7", + "4afbe00b75f1a4541d0a60f73bc24d3c6cc70355136f82c01540636da81ab4011515f936223556e7e339125454ef26d4a2add457eb045ff709c0a77142910ee64f00ccd9fe964e835d1a401309f612d2b46b99f1d339e73fa11b3fdb42404ced4f6c562b5920f7ae7c4b63872577bfe0039a66c066d0b0fd446c38baa5cb6d10602bc37ac5d1e6bfcacb9298b3d48e330853af1525d7a186f7e01582b7c356c173f3e1aa7402ee82e83f212a1f9e39f94b968b81a06990058486484f6f6ac1036821", + "41065d5a6226ce724b8e840f3a567dcbd72771289741dbad87ffb54176b5ec9c9b9c2e82e05e9b2557ab5edc01572e2eac64d664bbc37e27f879ab340dd74919eb0cc2f90abaaedfb92bf7c57d620fb1f4dad31adf3444c0be16161ac7d417f37ede95e278e7f9fafff89d8e7c6bc91e8788383f41b58e3181bc6ee491b50e0657ebdb70f9151afc317299e4fa06d7d03918130513d5167870d9818e52a6e055d05cf0c6d7fd49dd0734b3a7a8adac966bbb106f387b4bd2338c9339b587cefe675beb50d6c1ab18d0947ac70ac2e9b23fe966062167eab7c0f5492ab37e" + }, + { /* i=1490 cDividendBits=805 cDivisorBits=631 */ + "07ae8fbc401d9554be2aced443be6e575024c038d76d6382c463f976560cfda20650343bb88757366c4b2a5b05ffd6e47f2dbdd45d4b597bdb99d67f23f1fbcaeddc58825b9aa5f88291d029e8b7c8c9fc0e043f881ee55ff3aba86120dc4f413f0031dd2d", + "5bdc18aa953968e7ad2c8e531c243048c4e4dea8d67e5f46cb39c129abf8248ca4b9fd79267eabf808ae8766a742101d70d062ef21223241a88bb4ea5d1fd43735d671562312be728b07a54697386b", + "156886995c4e5feb2ee26a0a698cb85b3ef5de2ba2e6", + "29b5f730e32ef093f6bcb52c7dd0567b6cac9608531b759ce408330bba07b3a6e649efe0ec7400dc45f7bb124f35a2467f81949a9efa5d3152906f81f77afc483f067bd88d59773829e55b9ea8770b" + }, + { /* i=1491 cDividendBits=814 cDivisorBits=694 */ + "3095aea96ef5b9cb11b79f96b3c2a397b8eef85f96c1801d207036514f8b04e5362bd6374dc1879a49cd1c79c467b2b1b62c5e6fbb15b6354ce14b8d81f02d4866f3902869759c64e7e601e0797d09342a08d5999d210752c6f0fdd46785e654a5d148b210c6", + "3e0393b19e24cfd8626da696b59de73d550efe54644b85caf9a72bc670e08114ecb4552b55fdadeaf31494c6a70ebea5507c652132ede8fd2de9068575da258d839f26d592ec3f38689b77476904314e7948f00c816eff", + "c8900537d1e6b863a4bffb9ece9bef", + "0af709632b0bdd89aff7bc0c30fa1eb270e2c32d5278fd2f69ab8652b0ce4c5a8aa19a60c012eca37a82357ed7dc0557a647eb16f79a993a675c130bae433c8ec03ed6dad36239eee659304440138ccdfa2e758a750bb5" + }, + { /* i=1492 cDividendBits=4080 cDivisorBits=467 */ + "86448a872d1402d96877974da95dc335232af675ae906042b8c6d4ae9800fe575c094529a28dd309d71aafc45c3991236d94504da72937ae19d166fbb56979497eb84759267aa51ca21a92b9c580cad931f1bf8a6e11bcd93ff2255cff09e87e4c84d33ac6bade8ab5536f7041009aa66eee3ab8a5052989218cda18c75908c6e2f1cb5d0c7939933e32e5fe9a6fb8f472f4684721948256ff82d09a85c73d98905a8b94b590164fde7f1537bfea4da2e91516de8644cc311f3ba2f31e6161d27199557aae4cbe15750b792ac1f8393e92d11e801a7be79faeda3c63978968fb847f33994d2c5ff2608f5ade660264212f643484bbce750a353d222996b392c7ab9ac186a75a1a5fe4f74d570a5d0839ae3ee324e28eee5bbb8137602fbdfa8449c947c284bf52d51a5eb6850935449cf1183d7cec0ce195852a95441be3d07c92ddaa761de201c1cfb7dba1ba95a9b2bd2d2a42efe32bff80d9e9eaa6c7222ae609e768d7956a045a6bde93b2c337ce0e70be4cf860825b438a74bc097cf3270cc4143f06312ac39879d45d25cf6285f1858a2d828a8db2b05bdd4754cd18554c828be3f455a8ddf4faf1cdffd56df8a9739a35d7e349049040fd1354ef6672b8e09ccadaa2e4f2492f04046f7564968553b03133febc22191d0f052d5ba150519aaa73028f8ce86d3848259e35c4e52808aa2e0a21f37e159dcb614165", + "0594bc8f7cd8e0fc817beae28575ad29dd657b9c3e41b74d36787295044a3c5c845aef450946289b46834fafea9b291eba13e48073103a418bb8d0", + "180ed8f1a0c8d26b9fb44dd577f4c47759ef66c56c3b588ca3c276500edfbbe9651bd88503a7a39795619ae0aeb15bb50f3a721e7f3bd358f8f0fb34d4e31e5b71cf06497295e8e7177ff55a9c89ac15c3b04920329775a30a25979fa15d84faa8525699a0a3fcf7334745bf2cd0ce6c1d503703c0695853b4445928e206c6231fd11c77e4c4c68dddf5e3fe5c8b7bae2b465ff5ceb0e5b7c6c10b7fb2ec49e38b12c13ac4bc49766457d0a8a2b0ecfc66a510218216f40df0162e90550069ae019705ad15bf288628266bf1b7a3ee4a36a1ee7f5f71d0a10b85e19189bd06c41866a7e992d9bf8a29fea13a94591d63faa38c3bbe1ab8bcb2c9fa35eca1a2309e20aa0d9cafc0a0501b7015b2df5a10590f14d1aeeff2a259e966093ff483f3749dcd830ce11a8b42234724722e7064d1cd5d8ce362a0828ea0e842d5b9fc769d1ebd7821a1319d0ea5a9736436ce44fb037f05358ffec94d116bfc71262c10d4322ce9bd6717b82db89589b6c92558a04e0ea249a1b31703687a8b6ed66c193779ec569fde4a9e4db8e1b7136e87ba68282167c1e2cf3dea96fc01592f536c2418f3c55dbfc0e691e45b756456e1a46789abc21520d3859b373913870d1c886aedd962", + "d3877577671d0354dd3e28eadb4f754813cee2cd8dd8a899ca224351409c194e913a1065429185c67a5b6a21570127b9246cec9d06610bac31c5" + }, + { /* i=1493 cDividendBits=3757 cDivisorBits=3344 */ + "197b3acbfc0082745170a9e9f4e9c14c9fcce79523e4694a455482e8c4cddb4814a940f2a3fb0934cab26dc8bc53847fd8adbcad08c7eed02528596aa63092d56f1b7151b88f35d7b0c5c6600af2c7eb7c2f84f63336b48514ae21359f53fc15065e79cbfdadb0fb580231f82a7a4d728a1472086245ba48f4e486182197969ea9bd962d29c996def765b6eb063e833bb1c52c4c60521a704a2dad018dfec1e2c2ee508cfdeb0077d86ca6a93eb90117e101f10d658ad161e71d2f0b187f071ef661067e7bf249a0b2bf54b3e260067ac757a543dc8b56088c03c9bd5fc63a897591f65e092806aee489281405adbc3ea916ebc1381d5101a875adb1c5f8667405bdae067bfa104407ba33268a603c66039dfba646c2000564bbfe0df2d4354a4de50a78ab2dbe8212bcd211c3133b67421980defe8c6c2edf75c894d6e404323edbe6df11cf2cc4deb793ca2c360f5333e20092a9d86d72655127c84d4affe955c9fac3e903c93e0349155031d6e8d1e771277a96d2a3e1795862b6f1694dee5da7cdcc7085fcb75e99cb65500bdab139d626ad0d23a1f77c11fff4746e3d9c744cdd51c9c1b1c6758dbc0f94db0c19ed73d89b5a181a1ba283c75d47068cc519cc1044d304363dbf074785b096ddd4c96c006e7e18", + "2587406f9ad7d6679e6f0184c2527fe1476a889c5db1092b1ebbdf8eb1439b73e079bb981cb8e619a42efe0795fa6d58e419a44da6da80477711b334a5eb16d95aeb1fc27193607834f4ec2d32ad09d65fbc9437078e44326a816a7fa7ca8cc25b0ad47057e7643057f58a2b004a35611d6e9be83919246972ff26ef02f245106f1b491a9e3d4c5fd59e50e83eff6d9e87f1a020e4341c330644bf11f98424a7d98031f48fa6f54609aca2147e3064b6bc2942686edeff4acf21b8bc8a7be6559bcc5132e35400c9e5af1186e3c7cb3840297fd69f5d6c47cf67ea21424c25812c0a48e3df943094d698800a5460049b7c87bafef96ca59066424db21f9309d679e6d277a3926d95c0f9ad5c1c3535c29a4f582f012c69f4013dedc038aeffe4a24b833e1b83c30c1b8ceb4fa8ee94af9c412569613dc4e56f35636011e376dccbf1b7d81139e5108e5fa1b0a2ba471b9d0a7050e450fcd149a5a366897761db9998201906ff1cba240ed5b407a74e021a8cc5841c24b35072b9a670a3ca65c736b789703c08cd33b29743661215db35684a21ac895ad9f113a3adeede399f0617fb", + "add24d1b75178c46f6492a298d184b9eccbf7f62a0ece0ff161d413a4da60351061ed30f10395cd6c5bf25a4021c22761651ea7d", + "0d581098bd593f6f5b5239e4c2944232b587ed7287082ed0e60ebd8cd758596056708a910501155702a28127555cc961ea50b74f749a3265c434445340a97c863c3220503372bd1f3f8829c50812f395e359c86da8e16440cfeab0bedce22e6c1c6314ab4cb961bf3158be8cb5b9b0cc24703abbe26fa0f45528eee4231cbcfe34981e10f05fd20e222fd6e1f9977ab14bcae6be0b3c55ea5695e874c82f01c26442fbb1104c023fe3f993a980e802cc79e73a74659ef0d24b76fbb301b52562f8e6dc77ba1e4535da1daee8c0056269ef72531c91dfdc11a75bb0f1de1a1a4f9098ac0d2ac0a2e9d15a2bc59524e23c69b4e644f84eae07c4aa535ef830486c27e098dbd6bd53f3951177d337d792374c3021c492351403545a5a833196e7b7b3fdd8cc7cd91c9ffaf0529eba5ebed3f7eb4fb56270bc3b8bb6f17b4d417181f403795e446cdd8f49fd920771ee90131ff02cef1ed812c3d02fddea48c6b3424decac8fd92d12f06d3938ceaed28ed007fba496608d3f0fef1a8e7d58f85e6824f0e571ebade4de74a1656c6f143f033032a5df005cc551c2aca3b9613ea01e5a89" + }, + { /* i=1494 cDividendBits=750 cDivisorBits=384 */ + "3147f041b4830ed2cfe5dd1acbf08bfca3f5c2c08a4eb28055df4cdd74c742d7c8d07afc4910b3401181f2ba8d5c8226bfb6d5578a4d1f7ce7faef90d81a28cd10e048f02c9c0e17aee244d11aa31dbb4e71e397c799c9b15e8fb5bcb26a", + "3e98caa9e546dbb9457965fb3b746b05363dc2dc9c2bb5f49d142cf4dd42cea6b670e82f402d3f7b805b0d6b560814ba", + "c98af0593c7ff07740a79bf95fc9fadef9c49731d95b75e498571fbd5e54dd03dc8f4c71b4a64b5cb9d5c96cbbde", + "1a07277b0e1f165acb81af92a6101239ed3e130707d127e023cef04df0bd57e56e7b00c7bbf3a2baab8e07326b1edb1e" + }, + { /* i=1495 cDividendBits=2009 cDivisorBits=1072 */ + "efda60fb62521c275efcc0d8ec717fcd3423f5d3a2c77f234fa8d1e6e1d7a6e98dc596ac29896e2765e90a5c26e8906ffa35dab4a23db36e2dc120caa376f8cbdccd1f7b96301bfb9b62046b77204ba754b03957b991447c5fd4a1dd44b0ccef08e07643c5724d05b06e1d9af755add72af3188423faf5b824a9ad7803de53af42b46b7cb4e7afffcad8951f5db0d8fed1e24de4a9cbe8dbc7e1391da4e40480a27ee0b41896059dd0bc7feb91661fa58723cc41ce4de42df3f96181a18afa896d8b365f1233113649a154f8442e241a794c1f4889b80ccbe55cb1618fa480078e13c86b33fb5944c131110774953063d89881626b2071ecddffa4", + "93ece0051f8807fa83ab9acce2c6cf90667d7a674a44126d98703a4589a555f4b44a7bcf5faf3c1cdde4a6b15c2e60e27c2e7a864d5e47a534fdacb7c74ac27794d03ed65785e0e04cb4ee43749bde8752a3b6c8019a903adb6c4dc0c8dbafd039e13ab92f9bdca7c4a83ef6739b2ccc10580e8f7b1ddb26166fce0e2117346d14b48c31d947", + "019f1728be43621f14f3f942bad517b039c047ecd083a40b56a02498e2345cac179acdde0e7b3f61afe8a25ef571b1c33ebec1c1d3142823866d2658fa84b8782d2a1d4d9d4ab64d9e9686582575a0967bd2cb245c877e2dc61a721df203981bbe94e8f05c6ff373dfcb2bfcc644e849cebf09d3b9dd", + "40478fd738571a2edd10448fb2cb920fdd24f3e7606d859037e0bbfc762393029d0082777604dce840ea93d9e43857e2f4eb0ead0bf7ed1ef3aa89494abcef99642eea3f4381aa4ca6211005d6f7b650d92a8bc92a6347939fb89fa009a20a18b524e4f02a9fca450a68f505b902ec55ca768bb737bab642543000b373df453b924b4c1e59" + }, + { /* i=1496 cDividendBits=1770 cDivisorBits=1399 */ + "0103e3b4782345e865e74a172ebed0d5b9989fa7af1adc8bc729b981aca64c6a02ddda825c93c0379f23e0a3c4210b7fdb75da36862d81dd795709cd12d738130f9e0ff7aa9fe98be62dafc5061ede085e310c7809afa2679258f9ce24d69106f34483232ba873276bab5c1e26cfb4e4eddac65cd30c57a93d623be7468c0374bca8580710bba4c680d010366f651179d2f64ac1b321ae389de2b26603aeb70a868564f5cefdd8623a44f2e81611ebd19e472e6ad0bd4490489fe72b105677bc101307f6de2a9f1ccce8da4071e731b8977f12f1474c2ddf72d8df45f7b2", + "3c83ac613297edb3756083502d7896225d1efd1e32b1bb84e76dfb4f5e55a32791986f3bc4ad4d66a2a4ccf3dd8c4fd8c11b9c1249894055ad8676c36f33dfa7e3e3cbbd5c338a12a94b6b899fd2f24a66a96c63fc23a17cb966b2ed2b3c0c92fca5081b5bd1033ea58e7f8b2165fc15ea7e176d94a06e5a005672efefbe74fecf63c78cd2cd3d1652b1a8a5abe97c4d889e02a42e29c7552dde2f8df8605e4e6845d03bcdacfddb96e92b3ced207a", + "044b6fd506a6c483a2a70cbf81eadadbb1e307b561663ba258796aad011d87e1590f269c74843f3e04115d4ef38b5e", + "303cf2fcf2f220d4de98381475e4ef94de781742fe0bb9b1f6b584f0f60cf640fa05109fd9934292a176967f70bfa8ed942b686638f3f89acbf1cae6c8cd6c5e89dd7668969befb7504f36ac48a6ffabc88c88b1ca246054ee027b636786812323afd6d1db9792801247e59e40787a69dd0d097144ad05aed10f67cbd84ca697295e6f0fa3aabfdcf8d05d75d928c374c7396c3765c86328f43d7fce901b4031b10696a77fa5372c0b5f96bfc3cce6" + }, + { /* i=1497 cDividendBits=1734 cDivisorBits=678 */ + "03e6732e54b5378c264fa63b3dd7c3cc58bf8f971301cf2f98ae4fb3149a75847ad1749f54d82969a0b5a174d25b35fc98babc31ff12ed74f073298a51b170c97fe3d5e7e0744304683d8eb21be8f98b0e636ccd96be77579f5b528d6c8e5da5aa2816944dd75ecec39862c9a26c7e5da60bd485a17abbb3fcfd82ecad55ec4e4b37fd4930d189cc2b049784c21adcb3c47cf4ab1f504911b8ef2e60cc50e00c5922f98a32207edc415259fafd51b960ea233b1dc7ef0cd337925fe154ee0253af70c1f20bf9f4f0b4a91af413e28035fd31f86e3ce54c12bd", + "0f091a2332b18d32adc4e72084a1e2738e61c5d6b1f595b2f39c45bfc832e85e271af0eb741fed4a343b99d44734997901975d29fc3993398d1bf3ccc95003b0c5a65f004c4e636f58369413f16f87d8bec479280e", + "4267eaa06465d60aad8fcfd6fad716bd7f475df5effe4af0ab11b5835f62c54595ca253d777ee814ab5346aa2589ef89142ea174b447170f0f3c7244300a5481cbf253bcb165a57d1bd022cb43e2de0c4107dd0a42b6b944beb6ca9c227ba3275eafbf4fa38df70bd438c81ec53ed70b91e198a80cfe142117427a03e39045cc7c05209f", + "06cf080e08d6ebe3cfd74329a92db485724ae05fd7f28a7cd45b14e28e5bf43c620d19878614cd1dcf48e0bdbb69ec4d22232ec8f6ef778fdf443c6cb05d61a47aa728b3f6add59258f2fc70a62464c04528c4720b" + }, + { /* i=1498 cDividendBits=3860 cDivisorBits=424 */ + "093c18758dde5e9530e19a86e40d463167684a05c1367e38b9678e902d8f8d675aa7f6b3cbe23dad36f662dd681c68c0e8682a9b070f7c531970dab98e92760b67dbad17d834b67f9d69b076e558359f149fa21f1ecb5686db620e08a1a1fc24001831502e331e348d735826ed9de1693b39529d7222349e76b6a9094a315827621055a2dab30a41690b9dd62a297056727ff7f9d7e4b3b32d406761d8ce1b6419a81b96138675d1eb53b990c8a10b49b0f457d6fd86dc92105a5bfe2351db8c56fe8faced25d120928eda2d91e0576dade2f628e83ca80a91192c6fbc1c79fa7b6efc84d608fd86b119371972228a7982ee0436187a2d61e9e2f7d6de43b2c6d18c197863063be4ca40e9b3712da1b9b133848bc650a2d8523488602a19d0d600284deb25da57e39d484bb2b52d5703b110a5467d85c4d75d297082a4ba96bc8d6435183ce51ccd104a6821e9d9f5e7cd7d0a8c91e15456141f5036d5094eeb1309c4e8b00bba2edfe231449f4390aef82a20c419c5403b0535189d3795d301fe17699b62ea7a29026c6b250b11ef06677880b2b457d3f6bf949639af1ba1b0aee1d9e1e480b9dff9c68ac16cc2f7fe7745b633137c14c2c6711b43fdab8973866d396c710ce245f163e7e64c3efbb97d14f010e247fa0a7fa742f409bffdf736a012", + "875edeac0f65064d69c8038f0077035534c57138ad77d60c1404986dc5514d30c3d4fe0f75939ccf6f7586540ad4e1505292a7523e", + "1176c0c918abb31c878e09fa394307265f8be33941a5a5c1ea8e6e501b2d42e1be4d6ca8e37dc844c9db049f16dad3d3be8542806c6d94cfd282cc139344e9f838fb44387aaca27d29b8d592ede2c076e06c84f8d941322e91a3c47ee60a6f6a783843dec5e6f57bc475456b87997f6ec10233398dca6d09990afcaeed42cee13e0641e17c853ff4e2af2fc27b8c410b31310ef62868e2d613f28dbffe1905c1c8a8886c4064a010eaa851dff670a01d3c763efda67e4e10c6d07038f98fa0bf4830efe9135413f431b21a7090794abc812380d9c909c8e96fcfed598eda91d64875c748129954f5ad7484337b4a2992ee2ec09d40f298de036b7ce7a6d20dcaae3bd14e7d7d334510997c3f8c36e5837ec68a44f5c4443dce11df51759839a0bfe7584ab2e626851dea60b256bdca23c4ca1bd2f7f9754df93dd3426665c62c35df7b08189a5f6201ec4b3c8a9fa6a6f6491ea37341272efa046c9668d377ba654f34b8c4506bd62add0adac4a072bdea64f0d7895c92c5996cdb0ce6abdee5665386e14eb59b099650b71574c82c77caa2cd0c3c95c9a73f24b98fe073f1bb936b0f1ec449686916f37bfd7325", + "81c5c4cb0be223f6590c144e72271649c4fc9992ab3885f07689ffcf88caa98d2e73be51737b4be626552d9d196900537389cfe31c" + }, + { /* i=1499 cDividendBits=1615 cDivisorBits=432 */ + "325e47e0d3dacea64108492214b8bd9d5af71087fbd14d63db0f0256364ebcfdf0b3bff49b31071e32a6a22eaabadb487b2c5213a82dcfdb45b68e7de5509ea8d01e05d03b395ac7adf486d4dfbfd3c3d6e02e83d6a5607585d028d7afaf018e7804e6e2daf0ef2636fe28706323e61b534a322730268b24920e69bd80afcd11c8a117e76c9269f62263fbc52e19422ef312f1ee67b2efc5b8cfb18b881bc9b6a5e00278514accf2c9c478429dbe862b19605c8ec2a780789706f5ee63f67c916388ca7ea7ade6a58292", + "1964f5fd73925cad088ed8f835c2fdb17f10c4675858291b137b71320d28595bf74383aaa691df1e60cb6f7509170981fe07fbd5b391", + "01fbc2dfbaa3f7aebacbb63ee8a8a188f227800dacfe3dfaea5312103c0ed95abdf1e5149de44d28cc5db196c632e2117f99b135dac75b5fb6289bd0e4f0867a27f1fd45db8bf4af965d65b4f88ef948c1a69cb38527e5399c7ea6c3f43d123df19375852c648d8b5595955c29fd5941796acd74371466aa1904154183859dcfcbf21217c59dab0a0decdbb84973ef6f09c5fe6980", + "07df7a3826625078c889d8326e4769652852f649d8caa8e2a0f09458ff6d6c9e5e5fa2e7a9a30739ec01ddce00a83cd8dd1596474112" + }, + { /* i=1500 cDividendBits=2843 cDivisorBits=365 */ + "013eea1d7afdf798c5ed15c330a3d673ef854c543545f3c5549b2dd2996492a7d17574870193fabcf2c3f928b7abe89258b8b93e1872dda9cef36f848bedc4e69628cb0d19338dff42342bdd9d121fcbe584d9e51b58d0b34de88c882dd117396f9bf65a5eb6210019e8c214001eb65243b8ca29045747e445c317c2c1425ed5c0febebce93fa1f5a02159b1f1a62de1c245f835d5bcb989c5792ad321ef527bb91764a0c06d5530dd87dd003b5f4baec45bde11d9cd90a5e20bae3c11784dafad5eb4e97e0a7c0aa5e1f81061428cfa97547b5255530a95a421b18996fc09b7aab16cb65a35ef12b5c6a86ba2b70832db990c40fa71412ec3545aa55a0f9e0a5a6e8d7140409b0eb37b776da780da72b8b0503958a10569bc5769bc2bc0ec0988df4e5a449833a01c6112b763b3a7135b25d31e97fe5eca9b74f61a6346025b3e94cf1425790fe106a620d48bbef4d7e8c4cec0b122953dc64851e273feef5e45f4e7a4", + "064910ea99119f93ec9e2caca1828201bcceb3620f226fab2e0d52e5487445dd737bb3cbf541210b90e2e61918ae", + "32bd2358deadc38f1a7f80c0b42ff64262139788ae25830a8435d9f1102aff5cf911069b88d51946e8cfa81d85988cfe1e547d51cc5f7b416e9fa01c6905223a7bacb85bb5c5beffd7b3400f6a3fa432cc4926f973c30e5ef00f45e41e4b1df8f8a8f121c5fba03bc282a01a009ec388b5addba29aed259ed3b4d6c0edda69656aaeac65faa2aa4a32b0acb580899d1b14c783e7529c7e5fef9033f81b82607dd44a76c674066b0af0377c15baa23bc8787f6255ec50ce9f33883a1c460e04ca59a4d57d8f8484ab9b148f309d1ca23a4fca11538237e35b61f3692f92ee246af3387727d8cac01d5e55f22a75ae131dbf3bb621be1d7df60a9b02814f7d9040159fff932c52a1832a06e0f69b3f3e34d61e7f196ca1edf2fee47d76380f05509666f7888307adfbe125fa429ad591afbe15b7c9c4bb", + "0606b499437d1938a9fa6538690756902b641ee519d504d3735720464b5cdb6795007a43170f93a99cd6381ca88a" + }, + { /* i=1501 cDividendBits=3775 cDivisorBits=1382 */ + "37de0ea1a60191d33e4e47c95aaf03a9fa737d4d42d8fa46dd791238d50b17eeea8fcd8c87f23136fda4070aaca72a0053aed919e9989e9135ca21cd5a7c898a642578827c6b0a9d3f2aec774f621ec7ed43addf31349bc4f5b52bc3a755b7b1e4a4f2ab96c253e9009a6cc8cb88bb7ea42842bff912606eeadb6726345f29fa1707bf04524487e10ca807b1258955dd1e0a0b002850eb25ab753be29ca849025a072c72fc9da20064130e4f69342a71c3b09fa0926bf8344dd8bc922d893bf479d35a8c3c3f9924180faa7d440b541cc0b0c4a980566dac1ca5ca629587fc5f1271194f84e18d4c334b1a04b736f2df96b89a15166bdd3702891cf1515d251987934952eb896e0a8dc663007539fee187f344820a131d235cf8a24792d5fecb7106b423b44cba14604f2deb2c5934e4fbc4d60d412151f65f79da1c3b0fbdfb07e629b9f890314890269d98515668b39db02b08025e18ca0964c20f6b0b21a065628edb96bd91b271549b29bb80badd94d1cfb3c8b273dce6b815e4480b44e565076f769299f2895e4e4964b3dff7b3a91048505d668093acff6e753d0fef24a14ebfc512e8f00bc62a33a7fe5a79658cf146af1ce7d55d98442863a6d606b5405971852d5bc9b6689f0ab3b1bf865a907658e7ab221803", + "1b032c96dde107ef017205226f6cea8802a68ad1b4711fb00ff809ca094164665815a6aa7f4cf17af88182ec7ac62b39598fcba6d510c2bf112d1a568c21b3213c5d88f94dcf6a9526486ce77eb1f6b7d8ec2fcd29a0a8345cd7b76dafd117de413f2ecb0e18de7257cebbadf6102c5e0c997a182d2da032cecfcbcf0ef019d788ac73f2e43bce7a4af6691802e34d3f93dd537409f049147a475baa0b5d53176892025127e5af8b01337f47d5", + "02117671ff5686bc1c83b97a43d0eeb0b47b51c3e1b01aceeeb508ccc7ac54e805a8c40b2a5e0c6e6087a4e403884a26a873a24f6826217d5e514eb6e16fd78e35f2350dc13b135b7637488f64472ab10f7020ca96eca7e6356a43ca75278056594df43f210da04b0eb6b1dd87bcf13ca0713740efeb96d07ad8afa286c7d11e11814e3dfe6f4ea5ec22ddee9f4bbacbeb858ea135316ba4da4fa0e1d6aaff02ce477c43ce901bfb6b958556c8811be7d33892f1fd8496eebfa11b81430a9d6b0321c29bf0496a85081e0cbd4db02a1d95677a0b50665315f4cdcb4f87c373c3cfe69dafe949bb9c2134a69591c02b9d54ce4d1ac75de6d0cf4a69d2844fca3d53fe20947b6f9665de870598b0aae1fec66d2cf180523e702688dfa0e8289e7ae2f86bdc6d4643c2341dd52b", + "02b9e87738675566ca6b8b4ae2f832629d599113eca327ee9d1de1f2a21652b2f6c37f4b0f499c398d5ffd66ba2ad57dd280ee2fed050b8d391ac4ac48fcec7d4b550eb30bd0ade042d2402537036fd2822137360b378a0fbe504ab2552e3560030ff8367ded1761e2f1b2605562830e762b5fab6e9d66fad598a813e498c2902634f379218be5f511d44783bc700d52844aefdbf865840ced397695d07120b297573f559a443a216eb6dbce3c" + }, + { /* i=1502 cDividendBits=3949 cDivisorBits=622 */ + "0f4f053a7c417e18feddeab5409a919c9ac59d50e334ddb742ab00d428765d31319df8444f6d6731f37d127cdfedc74a1bc13ad0c6f5093b7d0c2d3f146ff549c75bf5078144d2851ed548ae32c4a6615b642b37ee2afed3b7e4ebd48b07c1d54c91aed77ab233e64a70a5ffc6e89ae825ce744b5c0fc556487afac6aafba0319dd8a9ad7547e01d8554da4bccdd743ebd34b4d62ff5fd830c4383c1f8fe79c2dbbbd17b87f778deaf2826da89efe48cd66f4589cd2606c5c573cda10b750e09e709702b7a0bfb475f077e9eac2b5b7be85dfd579c29b0f0f13c5d94d301f46e9e0f1a34b79255c130b5a599954d5d54456652b1ad8526a8b2c3db7d17ad2c2ac1e096d4b6b4aec2d4d1fd78c25d5638174c52438c73118888d2e28a21e4e1a3681794ad08786150474618b8a6a7cbc589edf7eb0b35a4923ddabd5c12161479c699575b41112d0ff0172da755e82a2448696f094c4c13a426a4234edc37e24611664bc6bee92488ed53700e178c67cfff69fe6189d138bde27e7be0eb0ac7df34e532696d8f96645b6afb6589468a23d1772de1787532d41fee95fbc86da1ec6e67a4f262008ab27a77386f9177f63dc01518758c391386fdae19be1b274c1774cfaffcc7d8f216e6405609b2bc347d08430d7b72279433597b2463d826e7b71b58c8a2a7fa5b1495a9a1992085", + "083a835a834ab91c99b0fc2c0939adc347bcfadb877557153cab370ce1df81b952d4f4c485126e1cf1ad068e99a9e1952175c6055fb6fd9c2d4a93815e285a0c2b45e5a61d0aee60c4b2097aa122", + "01dc4526031147c2e9a87edc5209c216649a8cb388d6d598897513b4966f447c054efddcc7761f179be3c84b14455d9e8f4882c86949a657deb45fe95e1c51544627190bbfc79ffddf31feff8fcd72f01466ba20b14fe9faa95b7827cf3c8243683de56a3364ee5db8b634f9a5510cd2d37b8249dd84a8563c6de84561b43eef5003f0b26b6b6df99cb15d26a0dd02dff9ebaa6eac242271e6eafe7ae5487747379977d7796ea8bed65e2cd3eb8654de563ac6ced33612b7372cf5585bcd627f9277810d90b6c2c92039884cd93ecf9bad3036c9f30eef38a7761cc8ff861abab15330b6865362ba7d6d4362ef675ac2191db0903dbc3ac63a7bddd44799ed234143743d53fd3dc5c9689bda37c355129469db9be68732a6ff3b5a0a828663b573368cce2280290be2409e3e5a9c383b91225d73465e6edac1050226a9920f915608a415ef15a939cafbf6ba64220bf28802a187522a22b596b686fbf1d64dee231e6c1ec1638ee4e3b935169ef9fedc5d75e7f03d6946f8ef7125a45248652237104a6f7e60fe297fd9c4dd6c7ffd9f8c621709058a9a9f6ac058ff1a0daccd43", + "011751130826a0f62e77bf66990d379d5fbd86468e7e7f4da810263dd8faeb776ea86ef43d5c4d8f265c8471daf8a17e9687614216b58c42263e18c6b671e85a8cd48014d79e477fb572f6a0ba9f" + }, + { /* i=1503 cDividendBits=359 cDivisorBits=221 */ + "3f8628328bb5756db3070ffa35631944b7769e0636f9f174284d2ad93a79e115bf62db739d199b4d45634d4ea4", + "0cc67f0e05db12c8624d438064d454e55c7eca29dc4857057f79c87d", + "04f8ee071a7712c4fbdb005d2f3760cc5494", + "013f31bf5b1cb3b8e63e26f28e7a761a8c49171806a9ea2e17806260" + }, + { /* i=1504 cDividendBits=1791 cDivisorBits=975 */ + "156cc715d20de0599c7c19c38b4cb0b1a31d8ec0c3463556df09eea1954b656c76b88c7f3a770802f453f8a262768d05bdfd669348328755999a673a89afc3e5542a9b9af00ae991470461b294f2df751872b4a8e8eb20078bba09ce8fe978e76030f45fd48eed343606e36056e20a005ac6a76a1ad1da254613c34407914f88ac6b0a9318385b273197823fbcec27686ae6cb31f9dfd2d12464825e26918d4cae6ab39c73740802844c7f321c9601eadd4850665613aea67aa9c87223dbd7781ab4a76413086015439ef6483ba6dfe09bbb7dc15fdf14bb2cec3c957c15ef32", + "6572fff6c87afa160ceb2be9eeec40c2023299a134fcfe8aa675d87375d242df15108929b76aac6006666b902e98dc330690584d2e675efe5a3f0f061fbb6ba5d2318dc12116a480e1301810b47aef255c5671be82889b6d7576b90ce713c83f1fea8886006c45a80dc5f853c2733de440c363b4621130cdfe2b", + "361073d6c2df245bb456aa143d36696e8d27d3be00e84b02c322fa11042ce09d654b7fd5424fd9f6c5b1b4190151c202f0a688e5e8eadce0211d298cb805a8ce22cae25c6c4d4b054f996d4108fb282766425b3ee71d3964124e40efaefd23decd78e81c0fe5", + "1a68b0a017ad708ca048a1147721488709425752a9800cc40b39e33672f103404eeee07202441a7eff8dc52012f37d7b3fcec33bc7e9b71bb3fe233b70609a12d8ac1c89e4c3bf733dad9097ea3cdbe07475e8fd75d6bfb75f4f8377596bb5b2ec06755549373df8fa17fc3019009f06af7bfd53e951fd390dbb" + }, + { /* i=1505 cDividendBits=391 cDivisorBits=321 */ + "2e9b11e72b1f859a3ca9f5f85186298e57cfc2f2c8ddddbed6e300650e80a7793b74f95729e245874527fdc445290595d6", + "018d35b3568ae32f33cbe1a96e7812ead8344802f6e74d8f9a94b7d95d3953bc2af7489a323c315c41", + "1e09860dedf38d2332", + "4802212a5280415f2ed105e8dc1441e6ba3376b81bb2e66cc1d1a3bdaa8f6e748385114c24f7ae24" + }, + { /* i=1506 cDividendBits=990 cDivisorBits=332 */ + "33682febeb5b043bef01c3064395a0781f1089ddc9181e16d78e8052a9d79c996ee09bbf252e77dcf8361351591775dc7ffd86ccb122d04d5970566e37638c9907d18e14e45957a8d599af29efbc8bae261772c25ddab1700151f69563adde3acaf916d043fa30d171265807ccdb9ddf3ea9de41fcc51864b186df73", + "029fc26a650b22e9a3ebf08945c4f6c9795757294fc9efcfb997187e34af34664a11836a023973ed368f", + "139733330a4a49c72c4808ea17f06f8c50aa7aeff0d754c5be0cc0216c60f5ca7104712e11a933ce6947c63ba459e01bef4c889ec766fa857cd13b33881613bdcaa3123102b67e9c1a950dbc4180bcfa1a347a", + "01db6fa4b0a04cde8c6e2362c862e98c808d578afc732963b801a41ff1c7f7c02490e2f65f1412dfd34d" + }, + { /* i=1507 cDividendBits=1063 cDivisorBits=34 */ + "6e809a9ad33851f233b912d4875056d2e983a9bcc0ebf9b2dd92aefea300bdfd8c78566eda115cbdefb89e2aa6f9c966c7d9f95a317346c3a7b0d96a8fc0f8250884f238699b95689d869bd7ed4c651946009c4f76792b661d022f8bd3971bd62f8c5227707aebe03ff154357eae138dd668b85bab3a8a8fd27c49297b0c4a2854ef5eff79", + "02430b0da1", + "30daa2fa3ff916608b9f36e7cdc9b3eb0183fc1b1686e394971f9ef49307172ba6ab47b24ba07bbe85ab46636c10b98d7bb999ea7c9c2be295ab3f35110d2bebfe9d22fb7da8323e4af37475cbebd78e469323c7e0d7b383559883567c5e84ac33464584ec90b4db754f5229309201ba7f1bb9009b5b4bc4da50242e3ab9fe47a3", + "014fcfaaf6" + }, + { /* i=1508 cDividendBits=2341 cDivisorBits=392 */ + "0258cb5e5886d3b039f1dbc67206b0e0a339ca04ba960b86fc169389d87fbc85b57f9022ec0bf43ac48c197b6c0ba08045f626a4b34c95c056d27d828503307ff9afc3d4ecdf737e5f188daf0822581850f272d309e2202bc9b1b4dcdb54546653d6544b2200cc2f1fb8509aab9b14b0c5b8fd32ed94e5a84ebf63e02e5f62503a21000804dffd323f292e8177ebf776d31288bd50825c3f782fd98451a2fe6e3ea334046f9847d529b4a7e0eb59780df9c3d3ae162386124428f40c7c92e0aedba8efd7e77fd8b01a104edf4f2957d3f5f75da74cc625d91a3618444afdace7ee7151a31809f606c410d8ecc40a93f966c603a3134b9b17d7c059ae98668a061e81ce67d72b5e63344178b0984b073327d9d95e39143c80ac46ed140f73f89ba83d889246", + "a132c4987d17b8b20c5b83a898619eb16eaece254a9c06e404b328cd99411f6c988a88cb7430a0a611bfdcfd11227fd2d6", + "03ba200bb5db91950d8e1156a02481c4f7bc7fa8b3fba8ba47b8baa1ab29ffe2072ba172bd760a1120e2d55076722942a69262808e2905111e1b5fe7e3868ab6f8eab956f73392b9804fca35d547e44c651ea872fc17a8b38991dec9459cef84e167d5623b3c0429f6ff8a2bfd72db563bc5f072e933b3875ff23093aeffa7c9acb3378a9e35b665d1d9b5b4b4005ec4fd2f09da7cee3a036c12f6aadb66250c6659f69eacd40d41b50bf183b7b0e15273619db74bf6231808049b6eb71cb980ce233572677d054b1c1c248d2f6478b5228ea26f3e76462fc29b96b3c0213b9fbd8dd9d3a4ae658f85ff00e7848c80c27a1b8a85", + "20f606c41b375ec3f337e2834c70f352ac7a354c081028977e8409165d9b93ceee2f378e6cfef8508d172d910730e6ad18" + }, + { /* i=1509 cDividendBits=1595 cDivisorBits=1524 */ + "0502a1d43dc4b6860101ef59976bd8f2270b5eba8a9251c945455456ab5499960542993bb49870d30f4d9637c5fb552563210bf19be2eb381279febbc4241a917b3214b8b3926d41a8bbfbcb0e0891f670b188aa5b6a0e4e82f84db8667ce43dc6001bb98d09548ead11c6640203c9f2365d1f85ee50e963220db870be5c856b83721edf9b46912cc62d7f8d6e468754d6f15b6c39c25b8abd13b26895defd40959009c02498283449934696acdf7c1b1af0dc1822d4ba4b8de892f7800418169a3b930c9aafc20e", + "0b6f3d0eecea776cc39e84d76a1922d49fcf145a3ea6ae0cbfa6b553519783da7092a5879b2d5a5cc90d29cbce52916eb436787e6902e3d3f956b894b9ce42d72c16c1e0353846eaca9ee72e0603d52e223687f085c59303a7c134e1282a8df89df812868d7790f5da8d698d6d723c38c6ceca3c7025ef356d58f66ab5a2861a8ca10888dcd0c53304894b7657cf63524508ad218ef14f9418670234ffaf7cd47dd9f2399242c6990ae25fe358c3dadd1ca06e85d0d07cbd12106cc063152f", + "702bffee784fcb3812", + "53dfa2376d097e5f3581181baf357c0fa7609e61d946806eb4bae8185fdcedbe6d7cbd3ff0ed174c69de8e84874cb8cb07e5af6b2ef10790d0493d1944b0bebd055c74f172da49b7e4dc2acd942e62c81680acd5ce1367d95ef5e4fac82d9bb4a46e29669e839eb636de0a40bf8c54e5bae4ab32b8245629ea9d35b12e31f97acc06c2bbfb30bd4f5d977204790e6583b684c70fcc0a2f1ceb173b1db1087346ee2f7a2d50cc2f18c4d1b6776086383e516c60bd4be97acedf2e19d0fcc0" + }, + { /* i=1510 cDividendBits=2820 cDivisorBits=1559 */ + "011e9b0b13690ee19e23f9cde275c997753f1715f7ec4284e63a488fa3f7fb4443bca1792b50a7c3323450f48fb866ac1e052ed87042d871378d329eab771a67d33be3b9baee4a4e7765ed127b2385c7a55bc4e1b8ccc6af9ec502e147f5427b1a0c41669a5552be5a0889599ab3deeb3692553697452b8dfa9453616cc81b628567fad9ad376189c1fec09b3c097a0aa13741c0667489aca29370942032c2acbe646ec879e976fa0bb69871dcbfbdc0941d7062f0ad60145e54df38f85a51f5785c15e24ce6e06be620bcdfef76081126a2d6623630c39f17136f433874db30e71183a88ee4d398f08a3fa229a6ad80079d95062be0d12269b13f3d10849a1f1eb1f648f5c20d27c4aca3deacac467b4dca728a86a00f7ffca580a9e81b89deec23cbe70058112dc4cc472a08705fb4f6c173bce6dca477827c47d77a70481bf683ab3477ef5cd82cddbc1b5ce801861ac43e02b729edcc045c12b3b8c24947d6", + "67faaa13bf2d88bac903630ccde59d38e5f268e6565f82622ed69d4aab9651447ef9620b6ecfc1cf2b59618f67bf97c681c45b7625914fb38114f55b0bfab74b2b3f94f096913b6dd04262367661436d935929d5445280ecd93b40aa773c873f6ed20c7a804c37141cd2b3aed0509cb93d0142bd8ea064be9c782076c0259879d80e40c19a52bfc5e15ae6b059ad48e404b8a1572c759e28c38ba88d25ef561b3d9155d350face4f793ca8e0bab94f89c0ea868a3c4bcf1761eac5c2fcbe16f551d075", + "02c1a1d8cb4991dd94ac64e491a5da034b30d8a884e7bf77d8e0657f299fb663361aba2ec2daec238151f22641ad1a3a4b4ef0364d98b4486d0d01bbdaf16512be082edb4e1cc6a7512eaede6730fa67d1a5b6390ad65017698c57e151a95856365504f4ea275164dbb6360ba81f097469b8b94074e538f912737b62f7a624ec9daeee0347f40f55e71271028864a08507faf017d59897395f005c8b5940", + "434b4cf8781e3ef9975c4d68dfdce13bf17f69046708a1e4839c0bf6be15347b00925a2c7d399f3d9be4601b2e1d78caf4b4da1db0a63243f5ac5710a27dbf8ef37802c601b91b7566be10040c13351ef17fcbee8e14f4eba10eab345b18751a58cabe49926f688409a959f9f0244aa0b9ae9ce9895e9c3760ad7e3e20f49ed538b6c021025b0b353fb228c1e5646f1f2a75bd11f29c07e0022d1ff673f59977f6ece6bbb0189f9e365dfae97adc0f748cbe468123d0bced7e21907ec42d5bc0d57d96" + }, + { /* i=1511 cDividendBits=677 cDivisorBits=645 */ + "1b0a9ee3bed5a706692355acc31592eb7f97c76af839bfb3577828aa7a07127793ad682a8d4fa0cecc8cca2d20401251da4fe5f642645ebced20062f7437cf5a0a398f783d975d51d30a802c924a794770470d57f1", + "103e46474c9dc16445179ae37b87c3368ea2f2c14dd25619b60f2eb77e5ffc7b3d6d8f1471034797f906b8cb64f21f94a96c526f0321b9b78a8c25401f11099c4cc6f81ad61b1f90e0dd1f98ae7819168a", + "01aa2f2789", + "0437996b03de996935876e9714d3a79d930d16810f1c79a4cfcd303fe3ffeca5b411bce9c8976b2a722dc016c3b3fd883945a59d978907236b130d2ef62f69bca21a0ed53aee4a35acc86c31a967db4217" + }, + { /* i=1512 cDividendBits=1518 cDivisorBits=1003 */ + "1decb54aa723f889edeb3ec2ed06c3939fcc49ebef2dd949218c8f6f88f1323e907e20a6ab35775197931c968a563076e9dde51b2d31f8b0b48ac241eb8336a4068bee633098d6d8a53991aead3c07718f0e19b95edbf58aa639a5b08ef7ae3f9adac850100f775ca83670ad9eeb20c5c3fed6df623b594a2bc7005a8289dbf77f293244a19f5c554195d76f4f4cf9a602bb2376d6771a9f25eba607819aed065fe666a84fc07e942f2ab369822b4e1f3ccbde11c9c732497267f5a70cc6", + "01a342de5cc165c425ddbbf1067fc992a8d26a98919680a652b24d8b97fdd8dcbf81fdacac5917125ccef374da181fe0b30edb94e1c1105722e9310109eb1a307869af3f7989229c2d1446d41f5eac1416fbea4638ef8aa1a63f8ad616d073e11df5cbbbfeb6b98c52b306bae711a008c0fd4a6ef7056a08951a63733249", + "12459cb32df7dc6dcfd660c7d4adcfe9f93d4245df66ada295b36e2fbae24b7cad7315731f1067881810169911c2ff89531eafd346f69d496a4ef4a9477fcc5dbf", + "012118e1f4dff4442b71be39dc15f9fc15627d831f883addaad9638e0c3af8e5e72af3c312181466a6ca9b1625b4c8718909a59589244d9400a5c7ccecbf5e6cebd7632fd3d8a7dfc02210833c3caebb5d24dd7e3b89f8f8b0a035fe825fe1a8591312d63a3fdc1cbcae1426df3d11bb3d7b3f8d781842a11499a044034f" + }, + { /* i=1513 cDividendBits=3326 cDivisorBits=3221 */ + "03280fa0181f7afcc3499a5291be5df99b3074351a26278ce421af0688b2b2a26d00b4c7a9b97dc2fff23ab8016fc68a9bd057bd9d36c2689648d8cab2f18d4795b26bbd2850d80350297b94e04e2916f583b82883587a0bd4ac42b32f55a9eb5c91382e803fc2690d4ddad745ba5f469163a61a4cfe5d91e26cf4856672d23228f7cd237a2900bf34022dc3bf6359fa25b489096d077d51eabb32e3a7c3797ba2dfd0f99eff7fdeda4fb53387d36f4a328dace53602803dd25e64211889049295b4209f52f2620c859c88172b6448920d98f72f187dc1f11a755d91f18385eadfe385c66d982415fdc405d6f9b839d96b5700cdaedd3c566868b38314dc7d43c6c8fdb7017c652733a9572957296c818eb7b5f84f53332ffb7519969fcbf8671bd1071015f04543568cf84b94ab45ee0662f9fcdc25ab8bc18c6632e16eb6da0c753458947ddf122342d0a079aa5505ed3ea748b0cc61ea4d8210f5a23b2f3e8a6202fac79ed5dba350dfb1c13dac7726ceb670517a00c53c6ca634237337de685273ecdd5ee52dcaefcf0622749e84c46abcb4f6a25ab3d2ee3582cd5a5cd6", + "0eea9fb823aca90f20d6bc72f08692a5a96bfaeb90c8da54fbd70c8877202ed9e06b92bb0f98bacd00cbfc665f3224a7c23da5c30febea69a8c78b30e1512cb9212c5b30cd1925de47b480128836ddb6731b527074d318eea8b59716ebd7c5b86425d0ae2b80a38b029994aabcaec1e3253063eeb63a41082943e4fca9f5c5be01225fe4fe751292f72cd6255a1f85aa5d458a5157f3b74a9a5bfa4962b7bda64efee9d02e70779c8423421a89de5b5883c9d54861f1227fdb14afc45d76a0be5d48e2ff2bcba09883544e6ef98e5b2b6053a327b80741b7c74eb6bd95ef60441bf8545e1fd45adede8e4a613080c5aef7eff583bad783d8a4cbb0bb1640791769fffa79c17f211ca80905c80d9d65be318f4829ab00f8c79cd864f2872be032f36599d2e92bc7a592352fa727fbdaeb48e5257d9e6ddaf64a388c1064f98091b44217eac421ad54c28d0f43bdc00f59b1737b2b07a906697e29f7b71b9aff3b4114cf15937e71d713dde95ef4703c37e1c1c902f16b5d165e0eef57706b1bac9ab2d7b6d99a7658e3bbc7b265904b2f11127e", + "362c1b9b67c3b2cad800a562ab", + "02dbf9eaa356378a3a87b68dc216bc29d73fb242b2aa9d1d50c857db418a1e25f124a2c117447a60e8d37aebc58898d45d945da773ddf999ba3b418b1e63d2c749ca4c24570e7839ecc89b83115bd7ad232030f84ca93df82abd551e8c19e5d32fa4acafd0eda4c8725b0fc9180ae6ec6125e6c60586291e0b4aac1023571a7e1d68b52843cb54175c16212bf1f6c88c45eb39d9bacf58a82dac0b4daf279aa3551ca2b4262c0a5e1a3e15c628e9683bcfe66c6aff07a6c37735b0defa0f71e48996e3577ea5499d5e852c6b8a5caf0afa728abe0f754bb6f1a14708cf5af999c0fc914eb5446db48a420e9425739f82a02921fb31a3441d0c9111b30f2709b18ffe35d4814551b7109b813fb8b07c6248242e51299dcb25cb710c8f2354483a9cbcd208ecdebea479406fe6eb55036ba8d0e86d033239eac0af38f18b204b9170227ea0db96129c0b6997ae3d28d223dd6a4c645cb88deafaf49c0c376c7785471d0b642b426455ce134b5b54518ad8dca18f547f6eaba2df0c133f387da769ac92120ebf2bc03ce2f654c2c9aef4e8a8c6ac" + }, + { /* i=1514 cDividendBits=2569 cDivisorBits=1302 */ + "017f0eba8110021d20a684d8ce97376f31d282f6a1f512c4f94a27e26654348a8cb6a4a5ec8e6f5da8a5278b614ed4a609ab0fd37853a3d07e2772dc56e0c4c7e32227bfa1d95a88722a0fb0f53203ee03498a8d0270ac1505317eb51d91f426d6bc3396b6df5f9788c8039bb2a52ffabcb0ca0f5e3a89bcbbcba6dc162086e819f0bde4947b6a51d9575a2059d984ae97fc54ad632a29ee6ad1dc04d68d16c8531e55ede93d057b439e0644e6a9d8a2cc6646e177395cf852999ff5737f8c0f5ecfd144dcfbc808c543d5dfc7964d0fd490353d782f2b2aba77045c4d5a8281e7beae3be3597f020041238fa8287f1cfafe8c63713861e5b97a0fe290fd68ec7f136225638cafbe63d9e5a25017fdb400c137ec0beca1b75523e7c80ee7caf8ff03c7e6cd622488edb954648bd678fcfbc3042e87e1418bedd3c2604b353c0b0040", + "0334fcf92a6f4ae4dc8038126b270c72577b24139dc9df62dd961ab6cba18fad21edd1e96de36b400eb8bdfa07da79d14b5dca1df64c80efe9bf674a4b7c5fb8371a6d3c80830f4786e010ad14928fb788e97be6f21e0aba0e93b77c89f7775dbb1c0f4dfab7c1c9fb4fa87f106c2d68360263a79bd70bc895b3f78d9aa1445f5de91ca7fcbb1b993f53776eedfb00a4ab65cd2c59391b432e711b8b81887b9d454e11", + "7771db36dcc6ea18601029140829dfbd3ffefca74a65caa68539d4d415f3c37e32775ba61d803bfbbb63c69dd32a22e1070c9f99e9770ac4bb5aacb0717018c6d76404587f9acdafc08de5fd4ba55098af652467337e12931f794cd50140e701857944a961a4dda105df30340a466aaa8e996959a5eec29d7f5e64320f675dbb6779422fccf34af9627e84a415e5782781cb2fd874b9c356c100bed4c5871a", + "01827adf721fe644343c683b7fcd46eed3b911b378dc219961dd395081d4111065b05e898aa90014140c8c75183441ac65b8024d5568fd05fecbdd63cfbb882e318323a9a3e022339d77c3c74b00cabf715a99d8f910cc48bdffd09cc9be00bf2fbd3e33f2097bc12cccf8c51eddb5cfee3ddebeb8f8f4243e4cea41e96c263f1206df27dd70af34382c1039392760d0aa8a80c716b71f8862659698a0e31e8fc11b86" + }, + { /* i=1515 cDividendBits=2128 cDivisorBits=415 */ + "107191ffe22550d5102a7fccfa1c9a2097b571282b8bb981ab8aa39af85190ae040d81c55a7af7d6ef0d74f20bb7ded1e500f392d2ac430f3792e1fb15b8b0e54fff0c423e971ba8f1c15ce1af495db218596abbc5ae6bcce1e0bf0fa71ac9b8174424741d37c94e58cd3221d8fb51604957461f56cbea5b8fb8eb022bfda55c8c6032ef0946bab6ccd3ea2b9ed462b180d6e21c8288327f384c87b383e5da6381537225fbd1baf69569b6cebf5eee000af521c0805901e0f4ba1089985457c0e9db5eaae19d700924c7cf0764e5e1ca70d8d77a33107a5e9e308292ca053864c168d013b36588880f7b514f550ce3c1629f4ff21baf53f94525529dd564c5791292087f28f575b2861d", + "026f0c96caf6c3e6beeefb502bd8f9c66b783426558e6f8454005a9a1ac67a58fdce3c6c02b7761b9d1ead8bd5a8739915668e9b", + "06c1a3854d29390744bae7950c39f83ba42e4f215ec12d7acd427544b2c6c36f122e635173f2818dae898b446b99990cd9a8bab19670d27fb1aa0b8d80f17316de9a3f89ad114cc7d645e15c3e271935de9d05fa2176760452746c9d1f1605b606f16a439202927a6d305a958c41629097a46471f375ede1fa31db492afed0b91f6a58ca9a817b7000df77f980e0a073a166ae65adfcda9ef57bc9ae0d147f62e6b5bce460994c06c46302349e9a5f4b3a5bd574563c894d13faaf134ef8b7f573529b4d5fd9a807b13db944f6683e0940d283a8737d48", + "b09d258d31afdf04fbbdf85b400b0a7078fbda2761c28aff0c8c01b5bcd0d33d80fd3c447e9607064f444d1ea6dc7b9597bb85" + }, + { /* i=1516 cDividendBits=525 cDivisorBits=469 */ + "131659b4e9c1108580c1b8af058c1d795232d4dd8826782169ac6159bfda3af2db28169d0e9bc0641207468622c1a0461c03b916b72be53f1b055104f4b8020e6674", + "0ff101c6459acc5243edf91244f1056cab70a39c6de249b81c646e93abb91da7a57b83c7e9637ab356e20829ef999a399a5137f897d63238cde3e6", + "013284d5d8684c90", + "08a664523749beffe4b2d524597c045793db6cc37cbc0b74ddf33e5dabb8045f47ee6366f32fac33b22a8de54756db4d08b0252df38d4e4925ed14" + }, + { /* i=1517 cDividendBits=405 cDivisorBits=291 */ + "01aa1deae56afb21dce26513fea55d5fcccff9bb845b2ea0b86fb543d891c403abda4ff4fd4f05dffea4a1cc92f79446e862d3", + "0625b8457779173b57dfb1d8b05a0cc378b97f6ba827f0947440e3af49dc3670642081e5c2", + "455136cc89ca6d2f25378536266a", + "02819643bc2fbf38477f1456bc8400b990744dfe6ea4c11ada3d805b86449bd2d94818747f" + }, + { /* i=1518 cDividendBits=3094 cDivisorBits=2381 */ + "34345f1b47122780fd5e7f6c7661ad88a3b35258df1eb1cfe9c8f634d8140fc19c03d12b87c3225bc4325158e01184eeb566c0d5a321627b3cac183d06e22b62747f2f6d3cc4457ff0993dd180bade6376bb54bc9add5b6ba8eb214a6259e280f0c2d3332e883d24a7b00ea0e2e81b9df0bc3fe22eea0b5fa13761ce695687046bd206aa21ba0f8539c557a19a1ef8be56fa08c4c04c0332774fac3a0aa56990cf498671de949530d708debb70aed67e8b963f15dc8cb95a282b7e8c4a513d1a6c18e42d43091d8aa9e284b2509dff25fa33b9880cd0c4b2acb094af20d0e6eca8a60b62082a2b1595525154b2acfbafd09c79451ecc71259e8bc91b6adf311c15c2feab83de438696c0aeb3155778d26d906fddc269649ccf3fa2e85e7ba54667a9aaaaeb22096aa6711daeec8c91f1404dcf38add357a4dea98fc4abdad00d80bfe2bf20946c49f7c8357fec5a7c3d0b3c6e11f9d689c099f4ebc1d67dae1adcf3430ab261ed0f7ab65548b3db5ecc7b3a4f8683db22e2aaccd4d3cb577ccf151950", + "04b67237c74bd009be3b8d837467c03e5ef21895068869f5aae52312044f03b2bfda1dd00181138671a2509d8afb172ca5418603e0d02873b0c49459f2729413658a830aecb88f3e8085b3bb331fdf0649f9daf1a438262cc4c649b42bdf8367dd335cb8b07e03899c94c387a63bbc400b0a9cd2e3287d73babc216ba6330afff34498e15ccb421c62215d6905486b9ad4298edbc08b3776dd2429614aec5878a8e1b60b38a00aa267a88c73d5deaf571f3471005fbebc7dc1c3bf88b1960d4880ba99076f92eec7bc51297b07ae8faf90b05bf1d7818099896f97df22b4709186b4e333bc34eeb6b812a697f308147b7264e159e42b6569f54001fa1eb9df8aedc30dea2f3389f0457d95441512ce8e625be14d5a9e856b0ae002fc0a812b39b4c548708de616b294d0", + "0b13d51774c7e2f64a664ba1b2bc736ba1435759ca1a4738e4f7cba535ca93b9e4aa404acb32101d54de1c5116bc25f841a622bc262267613ca8bab4ac82cb2bd5f18caae412a576efe8301fda7a7b1d34de48da23362b0d9da0", + "036971f0919676388ef0285922e6ce43cd9b7f037d48275cc82e3a0e862a23ca03428bc80ef78b568a778a94fe635aeb5a7c92bdc3aa051aae82ad04f6abb8996f3c43fca596e4fe3c7c757d1f7d1e3ce06399cdcc24a9a0904e3ee280b41df3df718290670e1a8c8cb15798296f0bb0df86530d8a17aed6118116afe5eef5994b9ae836f9fb853796bba339d3a6d6745ffa5a4657a3443eed37475fd36957b20a34622ec580ad5a0dc25fc7bba02d3f86cd077ef0bd372a011b84946f83f81806cb7ac4fced7c0a75b5901053f8449b6bef050ed82e1feeabfe2a166923ee75f6436a49bfffa70e46ba6a0c57571d8fd36aa034bb483633d2debe34687be54074051480d94664201c01af16641eb4bacb0c744339471c20b00a360d88553170009d3ec991d29ba48750" + }, + { /* i=1519 cDividendBits=715 cDivisorBits=501 */ + "06f8780dfbb67fd4dd973bea42dca6b686c6537a25ac844aea59e8fb1463cc894b81fdee33ff90d60a7366d7f55083b5b8cee2a9b2a1621d24addafffd3531fd29115ca3666523cea279e7c8d8f499976b9e9d36fcec47226659", + "188d78db46432335fc0cfeb60303db7248523f82f988de23c52aebeda21d666a81c077daaecd78f7a9a50814a2cac6dde5d7cd898658446f7726b89f750550", + "48adea2d195a21e5b2d7f54116262c36ec42e230a76a07f03d3587", + "11b8ad3d388992b66f71a107b299eca61084b00ed6dc05b85706377de85eb3768d759036d102111d412b753470104c1572b779199ca8ba934b5f7fb2430929" + }, + { /* i=1520 cDividendBits=2752 cDivisorBits=2691 */ + "d282be2a63922cdbaaca299feb1d2b491d3af846063901c27a9a05b105ea93440736ccef3a7efba83a026d90ae10ea32bd5fb647ef748c3a764e50843c2f7b6f54d97837687e65eeacb5ce19eff2ed7c157021c33d2d9d9375b60711dff9b8f649595f7e149fc1f4379afd36fb41696f1d63f0fcb887dfafe7ca41c5c49206209fb699fea9c8013c97812bb9962053836059b7b6d2d4cd6f25d0888b6806bace55ae9a1dbaab32c36555d57b175cef134c3183dd848382fd999b7490c85b44c210c3e5ad0b6ab01483743ad333ff87f3f59783be46306161ce8124291205732f9e9723e07fa8c512ae801bfda0c8e8eb5b64fcc652d939f20dd5642366e718b868adf493b0b610250ff329e9845fff71f73ae787c3b9140982fe3fd9fe88f1e618952656e5345c624f97c214d1a4f62e406cfd903fa966e4c24a52cf0444df8d9529bb39ea33348033e97e009e7623740f4ecac34e7cccfa", + "06c7ce2a1e00f4d48bcbfdcddf032f451e08abcfc92652af3c517f3a76114fc8035a1b1e7fef2682ac55e7ee5836afefb8b255f74dd388f44277a3614cb96b02be45043495354b6f7a22aec5247417dea901b6704f43403e8c4faf8aa80e71ca9130e647afc4832e00129c09538c430968c2d41245c49012e36bf7ce5fce68e8523c2399322788a85cc09514eb4344db94a22970ad501d442458c146dc569c5146d428118add9452cf5f2097965dba27fe6ac91a49c81a84f02cc9840b3388fe2224f69f81d5022899d87d124b4daf112b75e4ef7c54706d5f4e9a5b5eb62d471b0d35950f6f69e13fa09d3028e56f394bf6c290155d01c99ffd09c8a50b4b02b3607ec38a4c882ddcc55436dea711d52b6851fd7d5f519b7609173a7430986111753d4ccf4013959bdedac85b3a86cc4d086eaf5bf0ec2aa4d8a3260e84ebd5b34044672e80c0598c88bc6446ff5adc05", + "1f0be9ca185b87a8", + "01642ef5aab4ee602e2bfca5d31e4aed8d22fc22576964e06e543f82b2cc68f059b81a968e0537fd0b1d7483d8ba54bbd4c841ca2b8f6ec24c0532664adeac9d4431c0d17dc90809054cfb58e7a6223a4b8efadb5084cd224a209efb806fa16a8d4a250b7743f465a0b0abcb2b2c4d81aa99088dfd8e9e796874cf617f1516afb92772ba31ffb4a1b8b357077ce06927e764a8e76c18b0118da2fae5d47bc69fde46d14e0c233a533ac979ea1269cc952f621edbceed5d5f1c03bc1e213cbf343be9e3a8b2dc3490edbbe7e1160e9073d3bafdbe61a63a64a7fd28722bca7dd8eca90f0960d27028442dbd51b30baa434c3e6b9345940370f160af4fe7480b90f660bb2305cea8281934a24c91dd0e6b9d7df2f23d2ec7dab1e42003c7cee0ab4c9fe075cf0499e407e1a2df4fd93954f90e6e3a9beecc241f1254ed5e84859d006422333d6b5746c56e7518a4230ec6b2" + }, + { /* i=1521 cDividendBits=1711 cDivisorBits=57 */ + "3b76c9f15d7befb069918adfdaf842b1bede1afc97cbb32c74cb297bfc97cb31a97b26801f933495ff41ec0cd38d63685764464852c0a33851a87568d4dbefe578c4ac23f00089df940cefb31ff31e76dcf0631099708bc3ed3320920170308261ab6439f324c36da61fe99996dbb06e45636dda42d575c0115c05e5bd7bb9adb87cc6c3494a10008aa43c799a901ceaf7a788c8bf668ff63d63545a3dde8377bcdf5a4dcccc1515439d9e1d9c31697fa4a660835e5c23a5335c5ab6f1abe6264ba0bba65886af53e2b0f8a43426e28f3c142f5c78f2", + "01278c252ae0247c", + "3381d0ae4ce4b0435a22eeb1e400b97932c9c81953d3b56c584d5c6fdd4709f5d70eadb532ad3ef84b7c0ae66bbc46bf60098870cab183fd2965a121fde0381f523e232ace54bae0926d372f22c2a81422a5abb6b1015f91f0e7b94d1ac90af5bc08de32a62a6c9b563c4755e40a3273c5cf192521f181f169b9a29d32782f176ad8cdfb2eda0d469049ad5def075272d94aae346ad0ab7fc45d26fbe1ede7c11fe1a9287885b7b82301e0a85cb44c6fbbb5f6cd3204410d6022bc3612d2756fe92a56bfeab14ff8864e6c7517c0e7", + "3f6f42709a8d0e" + }, + { /* i=1522 cDividendBits=1570 cDivisorBits=852 */ + "014898e6a133b1f81a4adaddedf2bd5e9a92e4b89aaaf7a4e86da4bb4c64d4321b9e6bcb7776154129060c9738e7489ac797c2fa1ae3411685b9cf6e5fbae7e485381459b28bb20ef2857820aae497b1daa12667b9f9314f8ec5d22596525c26e812b725bd5092a34c9f5dbbc2a7b8178e77672ea7d8570f50bd3065d844547f7cc44a9d7d8cbe820141c02e74478303b7da356b3cbf6d079b5ebb01499960c613fb527e439348d4afcf514443266b376c1556d4f993ffe2ae962524b31895ba9098cb02f5", + "089ea18c1b680ad5a36953240fb91063458d9318842814ec45b2b6f2ef2ffd2649dcbf76fdff44f052b1e1d02274cd6489ad939d0e832fbc6dd37b838d7eace9fc146fb711464ffcf101fb61db6b4b50419abdbc752d466a14d8b1b5439f4129269768c90e8d9fafb5b178", + "261f32d86ffbe22b163f24d73b7de843dd35f76c00041084c377888b52ea12440641ed44a97207d9563ac5ab3dc67b389c4270075efd3b1d65013be1e8756459a32618ef4e503f2667ebd458c99b79590c4dabea2a83f4e222a7", + "05d0afdb944f39e7093e97a2817b7bf687fff2489accd8feaec132d6fcc5602468495d5897ed129458127075fd7daa3eb5340cbf3fdbe7acc14c037b377e1ecfa011574ade17310dd1e50c3c0dfa1f1691f7de401e3a11c7f367d0942357d8e705708cae0e5619cbc24dad" + }, + { /* i=1523 cDividendBits=1579 cDivisorBits=997 */ + "03ed18de4ff880f2f3fa4c587723390541499018a3646d2422d4b8707825f23d9e3e19fffbe0900da1d69edfd70a7248f1c9c95f0b0f0986dfec737f6a07852939576f0b6c2087ad40759b369156e00d828df3347daf2ca9b49f039b05dd6eb8f95edf3ad232dc9317dc63b7fc0ec5ebc143beaee6b980e526f3d372f3b48e0aa6939a7b9e829d70399a040f40463b36522850912baca26bdc138723b8e9a80b0e123b641868704f7e7af6fad20ba96db4379d334ed7cfadef636b3257b170bc43c56f3fbfab", + "06bfeb36e6f7b328c017f3fb83a98b40001645c52d1fd0d52ebb7387dca3b2f1284a6d1f5de1318f7b301b908f9d5d498ed9f0cae0b9db70015653cd3876d48dc4622a61f2c6c12496b5e597f5b75983f01ff265c2dcc537c6dbdfb5c0fbc42b00e100c30e84f833765fc3208cf2228bfd00fd7e47510ddf269225f6d2", + "94e907ecc20baacfb6aedcd42c9f4bacb9ec2df06f267d7a7113431ed8fe917d0ac3988ea92672f188d1597ef04049d472e7b637f3c64fa5a0d5167072a89087d1b36a0b27db409705", + "01eefe628b9fe98f14b2c276a31b4a49e56d5fe7b6c66b5f0770fbd4a90b372bd714d211b1cc9780d29dba60173277f0813116b52061919278feb299f93a00d496f15f6c7776fb74ad944eb41972a25cede1c0bf522bdc36d7e1f6d0601a2cbb01ab92589f2d6ed2db8ae52fd41f8adeef0073b838f5d4842ed56c0f91" + }, + { /* i=1524 cDividendBits=659 cDivisorBits=242 */ + "06915c28b4a71fb86abf7543b18723dae1d91b80c5a7aaec0b1affdb41aacc2aef0ea7cb8822daf9425ecdfca0a104c0f42d66231651b7e84624e992569d1141d8d8944ccd82aa8f28e99fd3cc39a2189588b9", + "03f7d5701938fbc605dce7c5ef1b9b0cb50cdbd7e19d0557228b7739e9243f", + "01a7b816f37515d49d229f5a06da080dc700714b8e18e99d300d3bd93986a7e4fee43bd473ae09c1de882e6efb81975431cc555afb", + "03d968b10a209bf31f7e1772eb1d745146605ae42d8ec6397bf2061d55d8f4" + }, + { /* i=1525 cDividendBits=377 cDivisorBits=148 */ + "017c8e19186c112132d970fdcc8c3d50e4916e9b328001fafd5b8c833b778fc51736ea07689a34e48731147387b0a441", + "011f30bbf84b74d9703e333916db406372358d", + "0153398d22b3ef9ae7c445aeb9b7f552d7a039d3f3c43c7a075d4339989c", + "6b846990f01ffc25c944ae91e6804ae74a55" + }, + { /* i=1526 cDividendBits=3766 cDivisorBits=117 */ + "1327dc11cbab40a5dbb4cb3403b1e4757d657e817048ed20d5b5ee12d368463bfdb5e0fe392c16062e67190b7fa4266a8da71a358a450e064efad62c4ad1cce0391dcc92834408908fa8c726162f7c0275262698a6063a448bb63eff0a9fe86323ec01d2481e841d09e2680d6d21f627de594b8cd2318cae4bfbe2bdd140c48dd8b227c5f2d198a889181ef853c6c16ceaa177328839ddcce2c7e0dad9ac37702540475eae5bc591dfc78db9d018d5bb147fe1c389ff5a568f66faecd7d2e227990533d4a30ce98d0ec5b6211defcc3eaaa21be5c590b7509f324cf892040ea8d1ee673a9342ecb63be5f7a936c3eb4003d3bb1cf3c4f7400ea486ea5d1bd08a1fc68e186255bd4401ff17b5fc6610da17e05974579387affdcaf692147e37a8773f91ccba0feeac802f33956854161550ab17f85f9523422bf77a538ed7c22fd4ec18556044a28152dbd8c4a9a58356535e46fb1321d9284740d9185a463bf1087336e0e3c7fbd81c5a07818dbae2578e386d0393cde5eea8114e32420de112717b32b0ef632cc6b12e4ef8f7297030bb9a66a9ff14b923bac40e926e088baa5d35a6e98a3f31c15e933b508f81b1b3d98119448b6dae6781eadc0dbad35b9dd3c58cdd9e560baefd30b02b77c8d8963fe41e8cb740c2", + "1c7b5fe54593ef8226d647cbd4c7c3", + "ac2ca5b18a77b2cd4832f473d4b62b391e2d8cb2b2617193ca7d18e798ce92e76e879292eb113181fe61a7102f2a6e548284f1fa8aec588310eb4e36dbfe5e7cede13deae0eb72e33b571711f8a3653c5b4ee55e1893b83f23b92a8e863502ed88f9e791ec5a2b6ee5d728b58e8f774488c885ddb4703c0db0d8849e76ba4e9330a218afdcf642dcf366fe0a22d6a6af07aad44c23151f9153247dbaed1feb5ef972412d944974abd01486854325314a21c70df4f4f79756b24f183b34dd9b963406a51e6e0b9f39b21fd59a02d3f34d811f54d2f9c3355b49dc359831b4cc8b43d2738d5e629bb1329cb2150b53662e643ffbb0e9acdb01962e07cf7419d4f06386d34287c106afcb9deb11110079c83eb6f4901721a9e44491f9b878b03309306bbf9c0394e231b45a67a949cf924955aa0215773cf3f2f2f6835bd58c59b30749103fd3ed7af9e8e2740b7740dbfbb0baf2ffa0de6b186256dc5b19bf41fe56edbf397a5b508cbafccc5126febad505bcf98aa070bf5f093c550f6b220f93d622696643963df2c1639d19ce36795f9751b54cde8c7cbfdb99ce1927240d4c19cc6f85f944f3ec5c3c1a66d7158ee3075108ee07313e5bc6fb103724b9cc6768ad6906226f2f11", + "0f8d0ce9b6fa0f1a6e2d916f5c2fcf" + }, + { /* i=1527 cDividendBits=3469 cDivisorBits=512 */ + "1f12539b46ef90e20e4eaec5fd3471a62602bede8c64107c72d68666700b2c3cff6b0e6e91b1057460f9bf94ed926ccbf49066cd3d8322ec99763135346fc6b6d5caa2fc736f81ba1b49b2d429a21e8ff5be854ee557f446f3e74e70d143699d7b0077b5de8bca09432393833e10ce7195210b27c49c7d869ca655b720496f284618d8075380ccf64a1096ee7230a486d637d4605ed81a7706c3ba26b0be86f085149c376ecdc0e1d924a9ec4e79f372c22ca99d6a34ab742d22b0f556fd560792c4a885492bbfd7f9be9ff47068e4047433993a94cdc9c95234aebbf20570743dbdc9aa4f1975cdadf9793cd62016594e326c4b6a4d679633f5489792f8741dcc307de6c37f75735bdd0196b09005179aa4507b96bbfb20bb91808b076976988b06a828dcced8a8ad3a45f0ecebefcfa4ccdd27d7db1d897b34cf214de10b014197156dbb8b8e419034c3190f947190160e25db4af50199d554f82c435e1823525291ce97077b1e267c0265b07cd36bc0c8a57acab66f66832112cab7c1b1dc50987622f78f57d2038880ce78919c9a56db552bd3a6d02dc9281f55782644a00aad4757eea83d11773f025eff63c2bcd102", + "14e5435c50a92dd532e9b6015533061ed5fc1760116491d38fea2bf891dd0b1b4ff1605dc8054ac9e27d5fbdfe1f4cb914c217ccefb4c1f2944b5cbed8328686", + "017cabb15ecda44df94ff93230458c515b3bcb568164e7e011f39812cf9b78f812f0c94fd1bef9a927eb7c1694f0d1749a588f298d4239a003b0c9af6e73520862fecb50d9ffd9fb7335ed1e884fc7f3ab64823ff2fe9b9b3e6993f73032af8cfa3bd232e5dbbe5898b7453bc4d9fefe32f7c2479aa0e90ee160391a86d23fff037d715791a708e4da13d08398b2ac84c128e0e8494086912bdc3c3be23b48857e938b1e8bcd3551c6d1838616b0a9bf918e759da89b4ce7b157d0b018025216a75f8e12804e81e2c01964c7246ed6f99bcc586a3203b358ef19c96f6ce802e5e0e87383f7aa3029d186058a70d37cb0db2e00344a0b6165fd45cb8a988532e9d4a314ac066ccc8ffd3564491391d39b0667aa30034032d9ed60f2d7b61f5d5ae0fb951f62132564aa12660e16fd5cd85f934734386f560fdd71f8df2f172a02dc284dbe83c87c7179a4e1d7e721c3f40ba04998794e5cd4cb8ca6901f0d991b7917698a7d36bd66a0c40b98925b10d26be823", + "10eecf782f96c87a5a79a37a87ab4c78ab8be5df09cb83fb4b5936c8dc752733717c45256ad7d97f6b0a947baf9a0bfc5689e0ffe4bfffe25d80838643e8fcb0" + }, + { /* i=1528 cDividendBits=1700 cDivisorBits=381 */ + "0f1063bcbfcbf11543b82d467e64bb55d7f1cf855725dd62a477492ba092ef2bb1ddf718c59147fa55c0df3bca1e3f1efd430214c70dedfe8a9092ee980319d49933a63ae13f66180915b8d0cf2a070eae397d58ad4a58dd0262f31647d1881af059c131cdc67d9d74beeb8c27632c11c6844cef45afb89322cd3cc04b83aaf642527de6132c48e63e5f8ba76491b31bde0f012304918334a9cb24fb6e3efe033a6e82634d21a5dce3096f0fa437749c3e2c75caeb996cbe462be39cf12c78c02bea6557fcd5e428007262b93b4285b369c1f88161", + "06afdab4a9f68d88198770427b82faeb1ec923d249aa44553f4956c084ea65fb7200b0226cd3e17d4011ac1163227cfb", + "0240b49934bc524ef2a6c24c6685bcf0036114b58a89b7ec2a67726288310719cf50e8b4fd414dea92a60aab001ed5715ec600fa2cb3c492466eb0e0068044c7d83bc51ee904e47bf011a22bdfda499315acba076af094de3eb0e34b774e9760a1b8632b2b0c880502740c8c97e319d6015fbdf267f230b94713ed66fd8049b965713e9a57bfe37b1f6e591d0b9c175f5ade88049cebfc7a13429ae018e16c3eeaf3c9261033", + "06918fef29772987760f98e729413372c3de725f4de4a93997f801f8c7274e00bd4bb3e005716dbf6a107a403a07eb60" + }, + { /* i=1529 cDividendBits=3453 cDivisorBits=3144 */ + "105756164b8878e4fda3f9717ec474149efb6243fcdf2eed02652a7a6cf7b2c792526b99782a08ad03de6566422a6e614398cab49cc195ef82d389a12c0d97ec6004af5a62d4be1794acfbf62b571b402c3066209b03b981425ad586e62dd847dfc508ce25544c193489ad1f86e6d7c292eb96a3256160181dcd96f410e0ef71dfdedc54e0deb8c57857fc79c023b47cadfad7413130e3914d04bdc7040a5aaf43dc1d6110a9fa52ffe81c3f57a927d7706ac51398377a93a168eeb98fd04beae4b44ab2eca9748cf0c0537307871b7a65f6beb607c31268831d3ede1282fe894dbc46689e01f3a5b5018b5edb77b6e95a022d4c5d942d21597f48c0919dc2777cef06fd24686bf344cb5c4a5faeccfa92842fb69124c69888c6e9081c3c07cda6d12cc6303c5e7b50a3dabf7bb1048b16bbf069a68aae28dacf7cf085808863e9d25d74d9312a66c0b381f813c855f17bd9120f2ad42e02a938f74fcd882d1087d24c038e27ec1c06b5fc6dd960494ad06ef466cf4ab59017a4cc354216732d8a4688f57506d435e7397e0406118a4f2b9333fba8d6255fc30d5ea592636c42f1e1900f7d167b176550e0e40e522640", + "7243c10b75cb1c83f0ead0226dee07b3f2fb6ab9b1b62c4c100a08859868c6c2bb9ee8c6293003b052abc5901cd68298405627e8370c990a6c9d3439f56f45dc08fdc1962e2e94dbe97b3b32734b6467cad64eae0a4a05e5a0161ed378a1742483574a618c05715a4737592b0eb0785064306e890c8d700941872aae0010448066b03bd8b01d34c83d7a631d7d04e7e6c2bcbea64dff594bfd2d24d2cdae6d9845c879509677e60df82ae3373f6008c7e3393defaded16bbbea75fb101ae3de18976b23da74fc12d7d4c5fc7516aae37faf77fd54276168a79c693537cac09ec00c6ea4075e1d2e0175f62fcee845b61dadbde1119fd715c6ce3acd0e097bb8b7f0316659a7746f489127aac8eb0478bcfab897eb9f06f284c6f89e91bc69c36551ebec151a780ab1bc1267b9bb9c7686067ece058ce741ca638c8fc17cbfa90e2c2e15e70ff8ae3ed790a79ccb710705950d4d6713bf36f406eaf8409e1f1f0e601c440271e0f5e0e62aabf38a38cbf44db20b7628a87036ad78ab0f8b61b6e71d82aca0ac9d04f0b", + "249c6647cebd521671ba2954d931ac32d27ca6637c1adc5c01f5e4d7a047124b8aed5a42250768", + "71d16b9c2af7583d826a599fc53893fb1f2e13f3b5b0e80294528195f6ef5ffce23178ff1324f4862547a79a275f08ee6d45a1dd02f8af3583dcddeef487936bc4c7492287bf5c834d08143e29565c722d87ce074a71f4bdb213368f8a463dc4e4418ee409ae573910292e8236923b8a725e4f282a01fd858e2ee8799682f261dabc415fbe4c5368484c85897547430fadf56cf4da69eaa0c1afa2de2144e3b33643f21d04d22fd89f8a79395558c64ed4a0970b398e06df70509d1363a59dd2a65cc04b5c5c7e54e96b39e161d23e79c2d0bbc6d793153fff844222568f9be081dae11a36858f8a51216580e8831c106b5af0d0ec876a7d613838e32696f3bf418912ec9f05e5dea3045ed7e80fa2cd8030973a506bffafb52f56341f043268c7a465782e3f9b3cb7779a53ef60b3545557d72f0ccba5252f535df678e08b7a4533ad5769fe853e2e22abfdb19798f0ba1abf4c4cff157d0fdcbfaa12ed37b25493a9d17d3c003d7415e4b0c479a3d66f4dfdf967cdbf304fd1b7fc182843c7cecb7aa8a31cf1bcc8" + }, + { /* i=1530 cDividendBits=1523 cDivisorBits=1233 */ + "075982bf8e20f54ad4bf9b5209ea438ac6a85b5f26e960fd59588b57ec2135ba835e1affae11c852ef18e31534ff0591a03df14a105e5dcb127201522e93077f9d6186d5a74fbb750455d2ff1963a90e6014d5fbf32291689e0d7c3e019c6c7ca5e18d8b28a390a07112df418017793ab23406c01a8dd5c0a3bc2e6537fddcd61c84845b921657a384b3cb7a44178ed2deb72a1d162706f8a23072e85e5dc9f7e3535ce6429465e2a7eb06adfef6fc3f57887f52236d10325eb104b1d13419", + "c7f11b068f4eb630198c1fe10526cbf2fbecd296588df84bde1d4818a663caab2d22d692b9cbd331b909b2366814a94df0954ed425bbad94db7f5823b494cc854b44e2d2e1c178f122cb3cb2f032749836da77177007802ae27819eccb09beff430d33fd04a38160f3d75281957785ad97c2d3c066d04392acaf21c3391fa69f3c21b95b981167a02e1e0dafee393cc045736a822e16e4c53429", + "096908d8016ffc28eabcd03f25cacfdf058ac65ce63a11796fc9202d5bbc52473f4fabb18d", + "102e1c0a9dd2d406c427b70c07142e93a49b91a475904325a25b0e237973a740a1d54b0ca10c738500916eb758cbfee0d912402eb72570aadc7b5fd9375b7f67c65a65caf6739909726dd496821776f571ed0c6754a12e36b2dce833a4804125de6a7b8d527d47be15dcc5db447928cba506b3b489311f1db5f6d580e79c361e0a6e045410c9c5746b665d3f2ee253b5848bddc89a52d9c02084" + }, + { /* i=1531 cDividendBits=765 cDivisorBits=696 */ + "183affb0e92666fe983036ee0a1066d5f2a6056c380a0d8cfd0ebc153fb78c31f13d60b4c12e6ade91c877a644f2ca34e342717f186912e3ce6e35d3dcbaa55e884376a5b04179f65567ff6c70fd461978ad03f5bc8723f2aee256aff203dfe9", + "865f55ac88173214c98f618510cbf6795e9ab30c78a3d01a4aaf94e2b3862e87eb78ef7bdbcfdfe2b9e43fd00733acfe586a19873f28feac455050ce1210f970fb5026402f1c9f87c1e61baa3c51d4d22e7930241c71", + "2e29a99cb3de47df5391", + "31c59f14c0cbb901117258a6bdef0538ba526b41c07250358d250023fba46e650ff018ef8762a14bf09aba59d327ea9a1962a1e9781a263dd8d7a32cc5a4ac9070b9a34a0b55b89f160b97f4b0fcf9ca1919dae820e8" + }, + { /* i=1532 cDividendBits=2960 cDivisorBits=1864 */ + "05f9d95333ac30406c49d4dff2ddfc17839e2de919b897f688bb6b668b184c09373e043ee0b99266dd2f74f1560979250bc8c13eb9701cf58f71a1928bbeff32119b527f7ae4f3e400fe2647456f4660de765e4c173ed0c08473348bed3f4488e2e81b830d965173c1ed9fa899347b5fc36d3c1565f1e62bc0a7d89874bff0b171df25bffa2a8d5f3402a678689d168a562d5645f12630886dba289c1cc94f3ae757db38094ffac4c4a5361d546a48a8b621533acd5a532795f84f8b5694da409a13f43b58c2e8a2ddb534e619bf147f8afd7f83c2fe12fd06dd583b2a06ffaf393d3b79ada3c89fc5ad0237365cd6198d0f719aaf8fbe82eff7969a0b765ca162926eb17430504cad1653f8eb3f4a227abd43990359d51adfc9805c39b25568fb8abe666e7b35a980069d2950d9aafa895ef582f3c9d87bc05539fdcc9636cac615b5aa012556b936a63653a8398c07621a6f0ed44a8780f58fd6b4ed84944a90a1cc496a804201824d6f16a72e7de89b34", + "7d8b85a96fce250dc1519267ea18756b6380e7298ea6837a6df6db7ca6607a60cec382d5d855e362f4e63c7c01c597717639fcec353760da08b4f773bf11cfa5b5d7b682d4f7f35b50ddc0bed85d3470cf296404897173360a93f615efa8f3f0bfddaa9470a2ba29191d4b8111114f4ffe874830be6fb2f1c8a9ee4f2d095be00dd074f23b7b02b3aa8a6237a57f693feefef4ba6df29c4c5b69aff33e4a103aa6cc214768b01c3d37206f4d1b79c1d37bb668ab789b9a987049f6d89333a997f56c596614035506bfb11e5c86406d16f6d68c69f12e1ea8daec38d995f2ced45eda70e23eaff5f3df", + "0c2f877cadd96815ac11ba161729bd4ca5c84c5c4fcdb8c61ea3a6b54a0e01e8446c1a14db7eee78c7d0d5b8591c1b3d83fbee58c5eb4e961941a8dbda084c3cf03f8bbb48f31774ea1b8c80be6cdf921b49fc0610f887f92e3a9b4b1e9532dc20d2b817ac76228588d5a795f41e8dc9100825cec15c473480b3031d91dd0dd7091bc6103efe6e50f1", + "3524777b3ef835e72bbd59ff33d01c2c52d8a0da35b3897ef6c98ab891d07d3b029aaee924cbe5b31f17286ff973f094f6a6b8e1876a70e9a3e641767110a4d37edafd63f7c22e3d45e162765ca71d875cbf6d95c07ee73e3a8de9d3a7ee7b7dd804594540daf63b0fd827491a816d8d91ae364dcf0f0294dabcfa4624f40ab9783f1cb8ed0c77f61728fd3234656b234a49fdb448f86f32784c59b6bb8711db21796eb650db58979f8a820ce563ce39ed4941275e086372e4dcff509e419ef5aa2c81b42f4704e0eb8cd947ba2e986f56dbdef990528b6a5dfd0cb3c57a2178cafa4f6f85ef565645" + }, + { /* i=1533 cDividendBits=1524 cDivisorBits=980 */ + "09b111e0f7f3136953e10c2edb20dbdf515c09226e34c6bd1a1d85f7fb2f58ba4b4671c3e59eddb2709c02ea0610059fa4f6d677772c952d4c933b83e9f0a720de9827d88518af7bf124be0ea584bc854f1505bbe603444fa65c4490faa5d564b92b9d9c4c940095ff23518e1932326b7276e517519ed14a6829d3afae12fb670095aa094e9b0202eeb93202b5020e6adf62f0b9623a5e9848eb3060fa16bab8f213d23ebc4b35a0ed417a10b16c4e724149565db3ddac40588ee70118fb20", + "061457dd8eb604cab1efb167838aef42e93c5e776dea459376b430af52b7c7251ecb2c3ec362d6e2a00eb415ae6573efa352f48d422762012a435660bb15afd61590539940b28cb57e618f1238887ff2ea0545857ee55b21283045ae01b64346c3ac5f0f9441f3d1a010bb438e031647c13fce36925d4b8e026cb4", + "01981b477c509636d933a6f7b2ea9af2964ba543ae8b704a3fee0748db7a96332afbff2825d8ca651dd88bd309618184d797d4ff7dc85544e4f48d58337b6359430d21c864", + "e100c90977e6f0552ed2f588633d982d0dc9d829da521c670d5add1cbcbb53fc29ffdcc89ec9d1e07fcb70a8c3cfd5b9a7d2718cdc738146c5681a7cdbeebd57e3cefe8b6fd78db398f9564e8a01082f4400bc8c2e3451503975c7ebd559c6ba5d8261210371aa79c6bd712214ee8ed512b6314ca1807c05e4d0" + }, + { /* i=1534 cDividendBits=1362 cDivisorBits=29 */ + "57b73f6a1522230a5e048ab4d6f9a3cffea82e3da5ae75bcd7b83e5b16764585f252396b3f0b62cef7829c45375536a6454039731c0cc0d41e6c300f2157d345c57af283c998dc948bab6d9e8d286c1245b12447fcabe3ab561e7ab0f7bbe694309f0029eeac34fc3bf6948a5166c55d6af02a66d7e79e8f2320357b036a1c3aa8e056ddc877032a15e18770343ef5a1dbec407525033a042aba222e2365a3b6e989ae4fb910a02fa50e", + "114058e7", + "0515a6b05cb38b3a3b5365b5e427a83110fca43c5c551dbfa42c83d22e1a3084627ea9556066639292293949a45ddec9551a298bb9130489e0cec0e0985a7b0e04d905a789806e1b95440364eda57ccc00b17062dacc7dcb38bd408c0ef9fe1830771a2c5fee36c179db99bea078d8a396adf4f6eff0d47aa77de91aea04c69340690123a1a2560f0400f667ce0ab1913a30976f42ac756ca5fed7b2ba0c417c4072ce6abc108f", + "080b8c05" + }, + { /* i=1535 cDividendBits=3827 cDivisorBits=3220 */ + "0685b883c9384ef41b387bf6f6d88e22faa7689aa17fa594e5fdfe04efaac39d01532df780fc30808096f40e64d2a3934b3f89e66f887a48b1c551677d4d778ac1b432b8ff8d329f0042b90698b6f0281a6c6a4a9cd77f42d02c93ea3bc404998dfc68192e8252ecb39c60ab92101fd8cb15949f3f264d7015e90d83394d701173cc51716e146039dad4afcb065dd88aabafb45837509b6ba73d07503b8ce673c96198d37f88975e77e145517283d4d7617c0b1c1f0922d1d2b2c976347de941de889b54385b27bee57b9aa25f362019af1a63ce585c3e4e659b41acf7185f74d58586b2482c694a46400f3b4c9e5c703de5675720558a7b69d7c9fb5b57de4217a458940eddeaad495a789b024fa5a826fd9ba3323f0e8b30c117c5ce51ee9b0ff89dda59628656027be73ff765dc316278d93d4c51f761732c2a983f5a462172fba0cde31ac8d113f3f78435cbcc980c5b9993d2ee88d061ceaae63be68811e8f09f35e897e6a4fb6ce11da3ecc5b4d62bb561f5e1fb58b0d421e5a69365ab34f8d00492e9648a07ff2900c5a25f7d6b559877dd351a1c295d24e5a2611b37794e3c57c9ffc5c5eb05ef8fe8eff7daeb1e32832481653ef01b164eba8a756cfa9e9813a47da2280a0c318f97c8eab80c9e5041835f9c32c99234f2be475e", + "0e22099285c3d3ee6065fbaf19a787cf1eea1b8d7b4e8cdb93cced9903ec7a4dc4f76b5c3a45fb7c1e2302951fe2c208bf404936f47b1994d87a43d9000c330687f3c054e05956b20c44ba3596fe9e8568f38343727ce219cda8decabaeed2f3bc07823b525b1296f408579df848263d81ddc7349d3f2c845e2b5521daa9337fab32c756b6107c6639d2221442bd1f72e024f92e7b3c1bc1e6be6b5b4ab1d0b86f358fd19468b21ba4688ca32b761081536460e0a6ea8c2413fb8c959b8fc183ca743a48fb4c864cfa1c850f8c3153b457ff1d4cb57e439cb04f873e48465f4a8ba4ebe2a36a6e6cabe4bd28e9d237dcf1e7af94bfe9b6ad00c7ec59b119412c9873bc7b0ea66fb24d69f4d8a16018d77b3c2aa5558279d5aaa7dc3963bdb5d32cc3409101ce44180621de6d597f63ecaf4ea1487697a06cec6d8ed9ad5c4451a20586ecd13d32026afd6bbceff509e2951b0110829a18fd9eb101b5decfde58771333275642e206662b5368524d705fb80440acd5c18a8adbd89ae5af4d40f2691fea30c07bb4cc075e16c9aa48a576a870ec", + "7624ccf994f441f9e05760c6af2ca89ac0215089366d072564ec03d5b5e1f3181766bb0fa8c153b5d3312b4ccaaec54c43a11d83048ca16466424b7e744640446b83353af2359e5077f593b2", + "0b4c4419d5b01885a6dbc9675a7422a4b0a8f72ff9a173748500a8eb692998c802865f8f93cc8eb446be2ca50a6a3760b7bf105486bd784e60155123a9541835983c488733e73f8067dc49627f207911880264b0bb6587f85622bb3fff3536056dd359fbca167a11aff6e836804e3c49f922ac3b45a62235f869c70c096d3810282ee7daf3fcf9566bc152645493651f5fd114d8bf42583a2eeb680b260eca26f8984e8b73d5e06dc25ced6092a81a945474085b3ee16f3c716bc4682cb2272eda083fd14ebc6bdc6bcaa35f2d8e7377aa4ef44fad4cd95cccd7389312ce4e7001981ba52ec88258067bd3d014d5fd179ec6d3688eb407a0e142028e05b0df4014304ce7e9e2b3a9836cc5d8ff54b135289d29a90527b188ab5fa9e08fb12e74bef2f57cbe66fedd23507b875b60c759f933b92cc2c33dad0dd68c27446b70cc0551904c530aad5c4722ea8e0323134498f5fefbb254c1833950db057e827c45738c5033167043541a0a678d017adcf054722340dd290a39603d6fa8d13646643efb10d0311402c507a6333ef83e93f2ec3f46" + }, + { /* i=1536 cDividendBits=998 cDivisorBits=836 */ + "098aa4feb968bd1ccbaf652d8d907c0deffc3d5d25b9d544c6cb1cc33b6f3b8b3046ef807afc2f3c51c3d89f72edbd1a946c5b05ca618384aa5cd1b826c1203d3e531fccb3b3633cf1bfbc1cfad464a537acf732b0270d25912ad758c9cfab2b3164c546b06bfbde1d30c3b31d08197a2ee2f3bdf68284b6f18cb02c6d", + "048aa942d0be4da60f77681ae848ff5cdeaba283d04079a21cb49d7d061e33d76bbc7bc89c6d66b1174ec8ad457363b3a22bdd5d71634c5f12a1008aa65918ebc739a3601b0009ced042d050b28ba2455e3c32980b579264570058df325ca1953e208d11e87bb5936a", + "0219d5204f38358a0da15e2222e53df207a2724cf7", + "0416480d6d677b758cec011ba722d782f19dc3f0d1607f28c36404ca20145366a1d8f678e0d9282c5de8cd029f6a00819bec843d50672f8e2d50b4e46cbcabc1271bda806b356ecacf223c3c520f751f0ae620906e78414a9febb66a84f404b7b127b430dd8f877927" + }, + { /* i=1537 cDividendBits=2329 cDivisorBits=124 */ + "0156600e8aed7c551f9c08109a250d2666d0319dce1c3d8649190ea6350007a4ff4902e97fe252e460e265c5898183f7b2c41c7f078ff7508ba27070a043987a329abed1385edf5a38ee12c31afa295c56a8918eb8b67aa8b63b03c0b7b212aaeef6aba7d714162bd6dc022889fe52a6157f337d0ad3653a11d74ca3ff60cabb339145065716040dce9ec6ddfa55113825a665ab3023c66ec08ef9d6da64f1da88184037adf96aa2c1b241be228634f50e4e0aefd0550d2c58c1304964ec8efea23133b49a2f43133b5e642422cf188aa6806c7483b7b7ab116afd64c6f615eef6c6ea6b507d283f87465b866e58304e86d539da08d68d89d4ee6565c89cea6d960b5f1d2ec627a0b74d7318bc987ba4e75723dcb7eafbfbc2f776c1cbe5bc10f0077132", + "0bfd8b29b061b2d86eb2fa296c3c72c4", + "1c8dd98900920b8a54fa33ea26a11ebb677d4d2664e33e0b9e8dcabe017927978abcd319acb9106b3f334f8883419e1e073a3beca6b4942d64fff0d3844048aebb2c32a01f164ecc4e59081f970855419462f8f359ba9df6c252420e330517ae10e36c9b638b9559db1adb4d6134a54241e0eaffe19e6a6d4383189a657df6341616613d308891a3bdd7a63fe3b3b6ff1e3c167e9e5aff14dff7f6286e2e5e0471010c87f608230427b8c00392e002aa5015bc3c63262a99bf8471e0df6c8e4f5d30d3e20a3dd970920545bf99e866c6030863fe5396cccccb33f964b1c4ab61566e96ac3e6fb6a039d32b50a2cc1542231a3ce883c9946e41fef1b143df82d5c36ca768b32acffe085f659ab789556a6f0dee9f", + "09a1238408f11b79921a8bb9b3d5f176" + }, + { /* i=1538 cDividendBits=1639 cDivisorBits=1334 */ + "12cd9b0273c33e3ecc1db800f6fdf5c9f533b905f1414d9805fd25410116bdaf0d506f35e8cdbd31652ff2236f3a8338314a60de86a9a229d8e34f8d155cb5aede4342a7c4e57d4fdda85d7ca13cb38f6444051bf0a41685ecf6615766f04abec9b0bbcdc79c1499ed7f3ebd7ecdbe0cdb7482b2d4a97551e827c9103bcb62a850d77d73b3b142bf11dbafd26dc4e8cb341cb296c61a8726f9148caf3d89e175ee3025f998785b4e434c229c15ee2238b41c3b7553b70b2d8caa49f1f1046a9938aa8b2098397e7adf606d9cc7", + "13b643b6151f732e9adacd0d8768133f2fe6c59d4732d42417f9b132884950a980533946dc773b63bf730a21981ad97023636baf938de0a369c0ab75d55912a6a6fb8a965ec98e6533fe31844e4d9ed3da92157a709306971e46111f9dd67f7e08a0fc540497a663c74404454ea884cee532b60c0b617752b77893ce20de469607fdd4e12599e3610c672fbe18f3eaaf3d71865b8241eb0299de45954aaae67f9f0c08cb3d049c", + "f432733e6180672ce28c7998dcf0074950508f02ecc5aee46d643f29ef88d4df342e7757e5d9", + "088c7f351435eecac76a182f938c89741018f845231e368047e43772ab1be6b1dfe93ed42b94bacb8a903f3000be3f55861757fd8ec9ba3b3fd420dc50030f310480c9b5f8abbfeb9968da9204e4be314c7c8c0d6456d1fce15680db01b7835d789e14385977b8623b518263d41be9c57c8c7fab0b12735ab16e1cc6689f577bdad12e886669ae3b43ceaaa22226257f5e9e89c29aa1dea99fb2c4080629b27aa876b46f91288b" + }, + { /* i=1539 cDividendBits=1187 cDivisorBits=217 */ + "067aa052b25163551c0c70b05667586ad11b6d85f7634015722948338c9adc2e25b742646a08cf1e9a99a90fde21981c78c74997ca237e487560eb5253dd1f3b6fa906a188335064bcf2474dbcfc1643c8463bbfc211bd74434cd28abfb3d2dd5b13e92454901d916500192c1dbbd6d504287ed9e34811c19d9e2d7a2ee40fd9063a15f4ae6c167b21c203f0c51f68f38e444e2ce3", + "01d904da361399fd3ab0cacfad7af9ec00959838d645f3c0e05fa098", + "0381a7f26d4552121928393eaf73d76dd8ec5d7351161527f59b1bd4ebba91bbbf7f8ff2c29dd18421b3b88036492a6018830f1e739a054959999941e6bf381f694f3ddd3481ade97c37858978a79639092c43e94c89770f6b0dd0683c05309401ce6d99bf5959eba65ce9ba30071dc66f51c922405c2ff5a262", + "0e1538c4f88867536a5241a1b42002905f5f6cece5951b429a82b3" + }, + { /* i=1540 cDividendBits=3700 cDivisorBits=2323 */ + "02ba8c01aa5961b4d045e3d30ea5ddbf67dd1872edf1f8e9b1391fe325d5a5cdf474347de08e29305dbb6e6782d6015d9d2577ce559487cb7ab494941de42fbc0bf3dad1405452d3664a5f8ce0ec5f9bd59ba7f0361d7b19acf34e4b70c7ac062f4616bb039bf6c70fa66c893520c2bde02be2a91db07d92d4d2732fd072b58e85345dd0d02c5a0b27dfec00c49ac8be90ac742c6c4dfb3d189611a0e70bc28bd8409964df6b3042770da2259caa1a87c85c42d61a0caa77895753cd7cef633043e9abb9e6e9fc0cf66c1b1552d6b948e6a782d0c2f7afdd1c08ccaa300ad5c450ccc79c5fca47160e55ffd701ac694e3ccf3a566c232df8dde3a252fe04b0f2a6fab2d1fb888195fdf1ec12b7c48be0517c4a41770e719fa50ea86d8f9b9d365d30c1ac3860f3cf824bcb2ae85b2f49d82b931191a18a462e78b837d4aacfff2d2685e5df2260e69c00519d900a8f977f649e17dd928c6875d07e2c5aa7cd0903b7e1259bb5cd3cb6bc27e1c2a2a149ba7470c14cae2693c1211071e7ff0585dd3e410fdf9831f4ebc366ebdd40d552e5b25ae9886df607e76b5ebec831f9b5b9946a727b11b95983cf7b674c6cda3084f1eb1ae8ee374feb9838dc9c78cee8f8636be647c302905a55ea7463f505", + "01271d2ff48cd6fe9292aa2839150d911ef24c1f380ea6cd10049905e8b40c8ead6f8ac2db8e4b9f9fe2028db3fb01db6ac8aca594a4dd0b051c4c9f80e091a4b8f6f9482fc364102bf104d686ba5e6ee9e89277b96aa0b0f5a3ad1b237907707302743c417d13f862612d9f650d5ef35694cca343957cdcea39c61bddf369a21ba180241d82b9a52d3a97e4cf01fc0395cc634217ab127d6235ec89e8de63bf66e267376a171c2918cb28c9b134351315e1f8c5c7bdb327d32acce95749e1f963e7dec619cbb9b12cab813aa604a79c55c009476bd300b4c31592b60649b011930e8810426d83e861e036e79b376459879f069be35f32e81ead493b2b274abfb73b7c489c18168025a8d9b66b0f0d57636b62292641375652e811499562a01d93b4bf", + "025df662458798f837c22a400b3d5a487a64a2094839aa79ba768d8cefd046e63671d49f99e6860df7c66bb863173aab06632e52506a59647423b14e9987ae034a9dfd65b76e30bd71def28b48a3433088a9ec764b4c1c788e77d4addf4c18e9ff3c82865f334830bd1f8d0c2ab1a7f2cbdf985865799ef93f16a7617ced011002bd6f347f24157dd64c40081480dc79da0099b18f11336290652e58f3b47e206f384fafffeda3c073cae679a7", + "9f00c05f304cac18baa24b7f96b5fbd5506f4b99b1c97972ad53983f354e1c4c86aaaeef01b6f94abd6777f2e8816a5b3c92d5e1747cd239f2de2566373c6396f76c7b046998538a6fd7a6b2a4d1b289523363f77528f8bed001ac19fb2ee4e994ec86d59972a72e12059a988afc2972c312e6e054b4b247731244141efc11b63f98133413d1e9ec493cce6b56d38129cc1398222a35ca3f1009ab843470051d846f0b2a68878ccf082e2f9c795640bffe9f610afea98f3976c043b66d1ced5ece0583fc6d0ed9000259dc3223e1a7d85b46972168c891820dac99cf282230943f4fe22c33ed50abd900b44f8bb73c713331b20a5b7afbf105905ee1dfa53b90294287c2fda04dee12f416e965fb8f1392db952ff8e625e1a52d0791c05c3f00c56c" + }, + { /* i=1541 cDividendBits=1663 cDivisorBits=1348 */ + "40388a489f0c5c131e285effde51a2788f83bd3286905784362c3a54507383baa8a4ebefa976910263bc118efcd560161fc687908b8fd46185e8edbd01a58df08536cdb2d9b733d522f2ed4f98a72404209b013549810f1ab6713453f070c8cdce7c134cfc90f2db057c7b082dddbb606f1c8af017b7727c494e1130f2aafae615d1f851d8ebb60f70fe476114e69d299cfbf54684209561696f81e5b49971c7ebe9519c263499d580bb4062933be83cdd94428db784cef7d022260649b3c95377f3622d6543019baf6b0c7735eb8277", + "049543df726acdbb38cfd9ee76076fcd0dbdae29bbba8d117c11e6c686734a8553e75891836e6537e76de24d6925a1d53ff00d2cf05c81753b0a27112f9432a5777a091b6dfd0e904ef9b217aaf6ca985b825c21e70c2bede5f98925e037bac655bacf623676e594f35cca6e902960d95948fae541d823d124faed5e18d18b34e6a645e420eb674e3ab37057b646ffbbcd7f99ca2f3dcca9d7cf569177193760d39b25b256de296903", + "0e033c47c02866df421fdea0f15525fafbe943efbf2cbe49f42d2f315e636a510dac21af108ce25b", + "016bd9b460f463ef9635fff6109bb5511a45734e4ec40fba7f1ab4006692e39376dc7a938c80a956904bc3aa74740fae78e98294fe27c52287c901e0444f3a0517adc25c3a51f004f00f061a274f182057deac1298dd634fd9189f0a52dfcc90192bd79a5972d6881c7cb8de5e42f950cbb597b6428ac419ba4cbbdc89383d89ba3548cb63d0321d06d0b21a7f58538fd0e1e51eb86826ad7429fd7e961087a1896253b63310da8866" + }, + { /* i=1542 cDividendBits=4064 cDivisorBits=764 */ + "36a8fefb9f6687f5d76b2a3136de6d0bdaea811b123ef8a306fe26effebe67f720a94b27a9a9b571c26166026a70b9582691b81a09c07067d1f93024748d31d48347be044eda3ee0db2c1096ad1edc96570cd4896e089be6084d5c2c370a0579dc49093df6b1a433e47435487068ea709dcaafb5e3a408b3005824a26ae655e9124a5953b0d570b5ae29020fe12bfa89da7ba42167502e3607701d899ff02401c3f9a91ba51edbc29743b6f5a697df5bb5a7f1f650e702429ad704188ad1b6a381947d3cd5ef86509e6293e09023b4d13f8da3357c0819b9fbf282278382fa8991ed4ed9651d43e0d394677b5f6b0acddd6f31fc76ab850658bdb7f6119c90fa55c63911481c4c9467450919116fe8b8ef2cf1ee82c6d16f75d2c19f0d5650add1dd8070873a12398c8e9f247ea2841c4348f4d7eef93333ceeb619a71f76456a81606c0cb69ba38be7c3069f2a194e228dd3612b9d93ac3acf9e3eedac92e2a179a469aacfbc96ecd023e72087907802e9ff3cfba3c7c950901927222eb71df985018b3f01ab657a423a2fa7acf480f3b3dc8093c0a62d682ffc46686a99f6a1b580a0a566a78ac73f7152af337a6b068ebe0df066dcf64bb3d857bee5e828cdebd48bbf30e07b28c247be4aca0fb4413edb70fd571db5e251af16f2f27f48111bb8837324760c712f5c33fb2dfd31c8f52dce8d085010b5ae280c6", + "01cc821f10111343db0e5da312cd1cdd38fda22c07f58e7bbe8d22213aa60baf9772f1b9be0c8e21a983adb3bd558a1302a6ce20e491dc9356d296f579f12848b48c6689c1b2f31ba6400be439cd5cbbe49f4c8815859534c24935c0a9329b42", + "1e62cfa603332fe02f8fef3dd2968bc6b8802b12c073a50b97626c52bb66820178246af100d2ed450b8828507d548814a7175c1e6a7b23f442c757c583798fa037754cc3e23a6bf1ba8c3cb93a9a71fe59ce7e18c64bb67246378226a182c57b7c957987f8770c1a24b2ec998852a5e5dafb0285f9059f1b76b1a585f132879c2644a8ad3e7bd161e09e94a5f202c28932abd8d255bd260ba2964255e73e2459855b2eb2f3d2c47447ec78da67a9bc33c969391c81280981fdf47c1ffa25eb84eedaf7f03bcc0a0d6ffd2708facd6ef85b27cbd03c9fbf3af32ccc204929c00d7ae62a4fd11dbe2c6ea3c7ffb0b04f69972f266f109ebefe2ee1976f6e7fb70f93b4ab6d6342bc47f6be0c36f0738e2c609196ce680e3efe4e52332f2cff29a7a8f4a0065961e997cf74f0003441805571de57b65e1d147c5ebadc24263a1fca117120f09930414cfceab87e7a775f63c28133acbbcb1c4d6248453b955ebcec06d9f5f3b9007cd509faf0b8133c23a7810267be0bd2baa2a0830169c7ae5547334b60123844780402b51c49b2156b10012295679263581815b8f096dc", + "4ca330b515dea70daaba48a738fd21801ca2f8fec82f93190248afc12e9229483634522cd1db25b9aae5eb6df69b7e13e83997d834e80563af044f893bf5060e020ef49ebdce3c5ffd9f2c43de088e1565be4c388ca8b7917c00e34e8c680e" + }, + { /* i=1543 cDividendBits=2142 cDivisorBits=1043 */ + "08ac509d91ffa51149134b5bedb977fdbf2cf6457dbaf2578cc3efcfc4fc1693ef506fcb46e923c05c8d66e558c7f950a63990b906f6d5ce46ad004d19d8da30f727014cac09b47e99878a2476eb37aae4e662303a8d362256c25a7c7e2c8d7e4c5cdba49a6407337898b7cd0d5ced2095a4a3d1df9bc3cc6a1e69923734d2127feb193f099dabd8b3d91bc35e7269b6b24dfcc2407e80e05f62e7387b8bda2a0cadfacc95e43285ad02d560abd217b6c06989f8b318d477bc84221613b54fb42d6423a69acf80f6493a44e9578af0cfe5e6dfee481ef6af3114f2dc2dd6f0ff7c14656fbc63466282e89126fc8f9390febb3df06797aeb3b2aa6be89e36390be96f76fc87d231b2c9bf7d43", + "6fc8c4e7a01c29cecf40013015dbb9369a7f55739975586308b5d4a38c3f1439f8f7855e86166dc220c56df346a5b01dd1250c5c857e99bea329d355fd7ecf30b2736d19d0e5cd2c669390a8dfc365e357d32bf909488d502957cee541613e96d00f2162781db429938dd60d55bb62e20c034e50a17c437418f66914a9f9814877a5", + "13dccce3205ae413b4d68cedb13a3e56b75a2758775d10fce29cefdb9816b2668102de5cd03300c2f8a140a19195f1b892fa6529016730bfa9d7e51789c611e14b4c1f8e8d36132dc0799fdd1a1d1fed513535fe732698227736c795fac349fea9237478460ea5a3030f3e8c2197b3bf3528d4d07cd9ebe3692609de842b13be52ab0ea50be9f2648e5e", + "46cb8bbdcc03269a2ea391493902537909e0bb6ddea70e6b7a498eda98538c554fc4d1f2a55f2f447b1d4e6be6f96d0889fb1b5595abda49c209393a4fa092a8e0ebe0c03ebf3fa768a906cb405d5f29574508929e1c97850b34487be3f4126015f65394cb4bcc8e43810f16791b8f2dcc988672c633b82f8d5c4ed464c9685208ad" + }, + { /* i=1544 cDividendBits=583 cDivisorBits=409 */ + "2d602dad99a1ddab1c7128f0724bd5a73ac2bc3c3e051403fc95b3795e71a480b8b487538d82bcdd038df58a0c7143c3cf2d4ceec896d6da259c1f97709bcdaf930b864a757eb39bca", + "e850ba599a2d5d5a44830ce94d038bf5ac60ab81e89aa01597e0368bb2d760aaf42f3d81761a621022a21120cee43b6b38f427", + "32007403e0f1f874e50ea0b95f20c14815c752b87092", + "abd4bff0916737ee458e5921774abc32ee2ce37a4cc459883f63eb05e47fee162fecefaf1b7649785389b2a75bd534735f4d8c" + }, + { /* i=1545 cDividendBits=2262 cDivisorBits=443 */ + "162da4bb97228f12b307aedcafaf391ee959c6d9c3ac277caaad15772360c1d8887d47ff3a77c5a0cb122572bf9f7689c83c8e5fbccf8766066dd218febaca13bbea536338ceefaab0ca35159758714242afe0ad41b2051c56553b40cf30835c97fc0e8c8082f6b61a73aaba61c1a7a13fd01d8249e0d17ff38c01a6a58fb53e0bfa13102c35ed4464fc4214fd4ab4d43c0690a01352a7516077c0d888c76957bcd082f27f6e89f561c653c0a102ab64832870b1964f982616e39e17930f6fb7f2577a419fdc46aceec6bb502ab9adfec66538e0fe9fad06324f63e719e709995a223ca3ddd7f893cf3e276aab63e12906a2a466702203c1abb9493e8a46bfb3901cdf93ba09399f1b3b8ad50db52dabb749a2e49d51c712fbf86e", + "03c2cf5e3c091322552e02f0281ce9a323cbfe7458e1a2d6db679e35dbd19170b14d87875d840ea20c88ce620819d425109a90a01a240aea", + "05e59e93129e060268d2cf1c63e8a76e0c00c572af680807e25e6d6849c089951363e1da3617ec922032f5a50133abee129a06c68bc09ccde494f5a795a2206a2619dee6003a4ae0bc194ca40be4c515499b36b4f494378f3d11809eda73986f0151c518d730223322c02717945ebcebf206f281a2e354b1c3084dec87d7c463bcfdc4bfd555080468dab833c16caa4bc4959d51ec5dda1f020e82515af46b268d19e1453cad9eb6eeea731c64c61fde8fb9880afdb77dff4cf61fc06abd275157ddecb8ac9223bc64ad6053722ee951b275a9f937858b1bb4eb0506259a78e6b671bd69", + "03670c5ff4a0af914ca94e8a6ba39d1043c82164f2c8a53d00d9d2db18aef9d429a171aac69f9a1e861a6218e8b8f34a8aed24e890dabc74" + }, + { /* i=1546 cDividendBits=3525 cDivisorBits=534 */ + "1de89ec5fe64d9883abf353bf38d7d8e3e19718e253e1734249861936b94352696bc2feb9962f4cae1782bab40aa68eb1ec40489f9efef1c47cdd31adc8171f4405b7900ecdd787891c572631ce38387441f278ff1ef57cdb399614f784ea77c14cf61759d61a1f5fd356597511275db21ae626fc357a262c65d2f126c60862370ed1a8668dc0627463dcec9086ecaf8da294dacc69574beb4186facd4332e166856bdfd1b714ec141b9753279d30e2dd9988ed367025dc584671538d671daa00784bf2f9bc648a212536c69f5ab8003be17c65edffce86038ba52ccba7e1ef5fe196633ae4ca78a0281e549794cd7c181295c89df485698b4c245ffefe6ea58ba7254280ec62b1216bda322e8b5e99d6dc11821898737ab1f02027785fe067d27999b58c8641bb53579816b8ec8e023db733b2a169af32990702ad7c5ccc286f21f6b63bbc7ef98e25a9a08ec599589cdec5d20224da446cd94e3de1673ab8f795625ccba7f993a2da77265687e423d8794e9e92e420be839cd0ec73384b7f1b7910a4593bd3bea8495c5c2b117fb044ed5a253c4c925ced2114c5bf4437e9dbfaf423b0da68a169a8c9a24bfc1950501ce43fe6240b2f3c3", + "1d7894d4d4b7ea3618d002fc09d51588057b3a206aa2b4d4ebc7cfe2180671b1a3bff0a158cf3a16f3cff7d0a9f304f80dd516765c8b2691698051d4fec0005e4edcff", + "0103cd39aa985c44a3c753b86f6fdbba79c20e4abe9b902a6c7119db22e593901191f8745c0b99dba1bf655f91452736589ca6eb95dec1b51008ec95e9f3d0ccc37cd3947e35ed86fce0feaa13a1ed0a20e3495de20cfddf28eb633cc25670187e4b63878a8d929144f8da2cc09a7ff7a549c1384659610f97deffbad20b3d73a8e4b18d2c09b0358c5b3c1a2e818262840c8c1a380ed498b4fbd6b7facc7267783b3d8e992420836cf3426383fa3a6c1b8a4178b9a5852402a872db32b45b15f6ae439bc65746b418cc800a393352d76ca87f967f9949bea9ed1237bb907e0bfad50ed9cb5110aabceeb1dc965fb8724e43491a040a333222d4676edf5affd67f5fd28bc5121df6cc1d2cec08a3c8e2457e1878e591d16cf4be251fdc3994997ee0b19e65313a8cab3d7f8a0c81b719d2060adf4de2c429b87401ecd9cf48655f38aed04cc65b186db4b7b9e1fc2cb5e1eea6f75382acc5f453e05988f50288d74e6aaec51eb268fb59a41a3c44c3bb5d638781e44eee", + "0ec094161ec3d706ae3263f36226fb86048376e40dad654b388ec2f31e458d37efbed24e2cbae98ee93c9dba164c7a016a73f004e2e3069109636932637e3c39efccb1" + }, + { /* i=1547 cDividendBits=1833 cDivisorBits=1178 */ + "01fa4489c849485be8c35a1c4bf935217f067f2156750d37d4d5393d0e43faba61355f1747a8b0e6fd177d0f1c8f08eca8f646129ca7dcf778235a2d1943d08e4648050499e2f107a7ce287b8b91c7ed8b19522f89f5609bc95593da3e0f1a72ad1f063c2ec561498f0dd83240af535ff01c7d0ff7c767d837e926909cb01eaceea2732801405acdcad61feaa9c4013c7fd08913ecc27d36daeb7890bf1d2560d6a643a393139148a4bd7089ee88cf84fce220c1f6190b5e30b4c773dc428585f939e30084fc43b43dc950c3e171fbd8ed7b758163b78569dd207c4a50df33a8a0277726dc66", + "8a333b74283787f572110554082a738d8e04d0339a31f3d412c0b18e56072e9ff2cd13dd892412bc1809af3566e4555ae53975741e98a46a5fc85342c67384a103e291b69fa38b98f073a20297c72f773b33064e7b132b1c566f9f68781739b53e6aea02992bdd05f53f5c4e97fbd853525f4db40ea9bf6dd281390d980383db85ba4c3f847072a9b19c623f9e700b8bf24609", + "03a9cda6fc7c4321af0af379a03ec809342141cb4bce40459bfc6f0f48099b848404bc77b35ea6f254be75f2c865b884928a3338404ff5379d51c31366f7ec6b24ee37a535d966e95e97eaa76b77d70feff2dc", + "0eec213b320c4415323d51d57fbd96e42ada6461a688564efca0373facad0b8f5f5e4d8ee561bb2eaa755d8b2eeb157bafb47fe9bb26b45d2f300a4cc3bc758f207c124e70db29f67954ffef486a4159a062f9e2c34fbf930cb074ff4f5d578c9b2b745049c1c00103790b0f0462fd0e3e5fb5db345c0e8191db61e0465fd85ec13189d3996567d40a09e42dd0921743572aaa" + }, + { /* i=1548 cDividendBits=458 cDivisorBits=296 */ + "02d0a92ac09e8010099d2a93e441936b889c646207fed1b40f9b2da90103dae54878982a2966149ec449c78d412b43b9469d9ec2452043e13710", + "1548981a735563d74d334afdf2d9020f98d3a774fa61217c9d14aa17a64c7c0d9e493ab349", + "21dc262e58fe97db998956f6e87e661e60c7edf6ee", + "058316d3fb6294068a27d01ec3c84e4ebe0d99538de85728dbd239e55af3c54b840d716332" + }, + { /* i=1549 cDividendBits=235 cDivisorBits=147 */ + "02f7748150ba204cc77d25fc386ee88c82b54738ca84054ddb3108ae0d87", + "01960bcb239ad4d095b33ebfa8b642b8215f6a", + "01ded05c529093ee8442f9b6", + "a7ea22236ff16afe7cd34d80225069d21e2b" + }, + { /* i=1550 cDividendBits=104 cDivisorBits=102 */ + "8365d8da468c50e3f3f62028c8", + "263a9d39b45c072fd0a326ac8f", + "03", + "10b6012d29783b54820cac231b" + }, + { /* i=1551 cDividendBits=2155 cDivisorBits=816 */ + "06e7b1b574e8d721925a8a8788b3c4001adc1a4af840dfa03fa697ffe4141d3d58147239e4d4e13a391d6a14ece12273dd89de304dd51ece97a40ec5bcbd3b69cc5430f9907426a2949c7722b79c4ca1b4616a107add306bfcbce86d6ebad825425258829ce18e8fae3fdeafab68dea2a3a13dc03564309026c8513b3e5ecc249c326e3b8eba0a1f633602e91e1f9f5a6ab9a262a99520e1f3497ee4a6e5f5700c7d308a00419ccbf0a592c3bfb7b09a617c09ff6016c1ab496fd07a2033b8a813f0b8c589623c2c003352994a63fed862f320d0aa481a7ae994562d0d557087dbad47a70222afafa8319b451da7fcdb0ccfad4a6b896da5080fa1b0c4b42b767ee5ec227cbf178c43af0b0a288e", + "f878e51d7363e5594af22707554041e61627e528376b370e881b085e9ff2b93de6e111ba31521c6b174ab59fee4a22d4d7f029335b31c20a5d176533dfcddd20e7e47d69e8d8314c1fd38b811958c010af2a6de87bd152d1d3b1a964cea2eb4a23efd680057e", + "071d3f9e9c01c3a2300cdeb7f396aaffd9e2182567a5f8969ea3bfba75366ce31c815ff6009237ab90e31101164adf8996d664f9858ccac33ce7a0f14767b22f78d6bed96395dc390c6a9c3e5fda3c74c34b6bda89642aa5af74e2a28ea8bc63a421d4517603c6ef257810f9f438cbadcb2ce1cf390957d9a8479385fe3fcc9bd2b0fd7c5cc1afc0b60f303ef84f50f1b3231fcf7d0b13db53bca9017cd4e4bcde9a96e82452dee8", + "6d5e5d803bd0c1f7e0a622ffbfa47551f7fda50a6815273a165a71df765882902f8b0304d9e73ef8577a6336c43b3ba6f1cc1151929088339d38813f86d22c0a92a874aeb1b2491acf19bb33dbbaea82ff42ebfc92fb34e5bf087e86beea5b2c325a27e5ea5e" + }, + { /* i=1552 cDividendBits=3494 cDivisorBits=2691 */ + "0272b68ce2bdbb4c2dc15145a9f52a417649b24bdc47a148126cc4100a443bf3361fcdf27f58cc80e7ea9a67569dcd52c3d5903450a4572de8ab0e436b0686b4251f704890c684d74bd1bd3201b0265160119996c756d105738c06aa320b2c56065194be60d4c2d203199a29eb649d66eaf0940c844a9117cf2425d622d35d0861bf7e504ce937cf7f086753732416792df647f5b97326e84092454d07cfe896cf7bbe7b10cd7262ef8941f049ab44ff64f5832d8b784b193e482d02a1afecd7eff4355fd37bfbb2c35fdc105c51b7e7dc2bc97d51558ad59c5a8d703fdc3f8acf2167e976d0d383cad6189742b3c8718d040b14c1ea35509c12b3f1b40f8cd3ad036354e48d783c44e46918fd5ffb768650854768aa1571f56eaff950716cc8fcbb2ed328335f7051b059bf361b5a78bba3220834dea1695964096ab27dd86697f0ccf7de0f3a44378b670998996f38980b4b74f3d50cf6a355ab454736897f625812c1cf849c4fa913dab83ae97712ef35650d02a71b518ae9b219a8787ec041272a0cac9e5aa5bc2bac703a00bd28094ff4c4d152c286b3d2f4841e31dbf2125a630f876c84dc9f8094f50ac215d1120c99dfa7", + "05b950d3973831337e22bbdfc6401befced29ef79221d189fac81291200f898243904d53f214e8655778fe3c829877a6dcb6179c1f261914cfc76eff189a809bc9aa985594ac49e0ba158ee9645b4ed446a3f2ed4458844c94b131204ebcf7bea2195c95d954bc6c131c92c61e3a30fdf0087180e20655384e8857a874ae5e18cf92651f1833399ad0a2e41b0fb914fb24e25996d9ef624f596f3f876cce5bdfd550e5736a89ee8c0231e6c7357adedae60d5479a330d175133c231770c580e9ea9c2a144c1f8d4a5043b762201756df9fd63f114acb18742e007dd91d6686a68eb45daa97f137865056621db4b3f882a53bf367fe347c0201e73c18bf8f218a84815f82f0a64c4e7511678fd5b5487875fd77bf7fe66a6b44045c727710e29377f700d4973c03b0822fbbfa18fff1aac117c8b39843f58da458ea7ed9e7caceb277164f7926df8c8176dff4bb7f467208", + "6d7da33bace4703d88e41525567143c3e266b6ab161ead5cea875c1b2b1684b6d84521483eba20f2b8a769457265063be1681f7f2f834b54112087e344e88d25e3e9f525906262ae5426222e3a6435744d2801d3a96b32b2613fca609bbedf391e430256", + "0511d316394a5abc1dcaa77e21363152d63bbefdb2115ce8c4291f433fe5b93cde50cc2db043589baf2f8ef4ac6810d02f3949484359b4aec9f5d4fc89fc8ee5e3e2b5df24f603da13c39e8b469efa287a80f42e3fc0f88942a51402bb3d3561c2d93799152aad2ec57ccbb3b2dc726696da4e1fbad628cacaa8d7e53260fc9d499eb71ef8033d621863d33f498af2cb726b5cec4ea7fdbbdbec5e2549f28b480dd1b7eec7f24131a50d827a8e4a8ddb17d8eafa75aff777b6c665594c092b258cfc84aa16524d35588a950f65b884439d4ba56a0222b6eaaf3bc2a3057840897b55ce4e1029c5c8b19f948fe03ac5eafdad17221c1fb87cd52ce4c72fd6971616b4283e13ce7274a91d0c631487a538c0fb1866150c1e31f9930f907d9f412d0e77381e31e3cfaa356d2296bd5ea2e0705106e7f9e89dfb7b4f44cae1220f8cee6dda6007a0f06162deff3681f5f380f7" + }, + { /* i=1553 cDividendBits=1890 cDivisorBits=1420 */ + "df3044bbac45ee44a723225634467c944425166652a0058e9345e2b2d7baccc6c3367cb45b2a6de96aa1c537c4b2939bc3e8a199b6dca1f9c0b8fe520766689c75bc0fcf5b807e59db64163a0bf81db8ec3421e02bc7f8ad8e79e471566b2b3ea8d396c6b8b55f66ee51c49b4f599ad557723ec5d9428b02fd1c87d950c8282e7ffdfc14f2aad59b4e743daf6515841682108912dedbb006a1dad57ff047f7066b3c2138e8194e17e8abb97e6d6578ad191e7d7ec9bc428892497b1a06fc3ffd027f5dc496e785f6d7e2f1f8d99c777c465126cdffec90c348a626c4d4eee829dcb61425b230d58579cbbebe", + "071942e34910ffe8e3f492ee0443bd681dc4bc515cc1947270fc6d3031d968fa3fc0e03fdc02be37a650eee9a63add94497474a8fd940f265ed7be62b35b95eaebaf8f1083460ac1f7ee6194b3dc4df178035c967ba59552429ffec8613abd6564be04cda575d4c625769dc7857d8a8fa14a335904877c3e013e60cbcefeb8f4c1e18b8c7eaa33e35a36f4bb26054f23edc17ac34026fbcf729b08adc37d206ec6d4c8c9792ab91978ae0c11f283ea58b4b6", + "1f70dc98d506eb08f66677e133b00b0091b7e0d8bd053214e91bc2f796a6f5fb8167e178fe512316b946a702f6dd25918433446957998b361b313c", + "dd612dc3329030eed10e786a11412b0b85153125023658c7118663e08b98efe2a9e95aa8164e678fc9d68ff0dc34f893737dae139ab0e41e75ce4c49bd6c67518e53b85b7491f795f282b387f06f930b89620addcfa29541ecfd8664f29f2da71cc05d9decec71643fa955a459e2954e82ffea581978a38b6f2f84151797959829259a262daf30127d2747969eb6ac4e6f2e9d65c52a22b8c8b9fd77d2c4d8e2ad395d6a2b2cb29eb3b5336c741f388e16" + }, + { /* i=1554 cDividendBits=750 cDivisorBits=30 */ + "2bcc6ecbd73e3742d5346bcba2361895ae53994a7e4d20cb95531df4aa49242b001a682734de7170e0b9a19577b68a4d0c72475327992d9e3dd8caddc847da82872fd2a1af3a5c24784e9def93844231d73f42aee8fe76d1a5db483594bb", + "0e1cabae", + "031a88380c8f6e7ceb7e5065c81eeb281605a5092c27b7de08dcb971989e8bcd86dc40bc1ed8733c2857decafaf2515b00f272ba3d76c0e321aadfbdacaff3ec5e286afec6e5ccca2b6165f220d99154e6659c392902a34f02583d", + "0700dc45" + }, + { /* i=1555 cDividendBits=1037 cDivisorBits=117 */ + "0fc1458f969a74d8603eb8eae1e790d3f5e909855b042e752bfbe073f9844c5d8e50fecd8bf6e4ab71aaeb3c49043adaba62508ebf3282c79b51b4b28c27bb1b516ab9f8d47d06abdd7509f7a2ed45f38e3b6cfcb0b75b279c8b4604e0da20c6e0c912613a9aa0eaee8caf653cce873a2b2d1f4f9f3c8f668d08462d79374dab8b7b", + "1eee778e01f2f25491e16e1d9170e1", + "8264c422bdd469d5eeb58632b2de7e6d146dcb4e1460bc4585a6c1e357140a3ec27f84e375195f02a0e9fccc034357276a682479c47c98cf3104c79e67c149f1c767ddb93b0e84c4303d1d9cd17f429253262031bc25ed639858f537ccbb9b88503ac29b37bd8f79ddc7902df296bcd96785a5", + "08311f556f660abf060e728bc1e576" + }, + { /* i=1556 cDividendBits=1142 cDivisorBits=34 */ + "3d182970baf6ed7a8ea3f631ed3e5a24d85115181e48070c37d97b3525f39f694dbe52a9bb8a0c99e9821509cdcf6295424b31c0337a0a32861833f757189c128dac0c3ed32c7e772c2ceb017e216b61c2ceb3e540afa535a08dacbef7f73ac86a73380457a99dd7e2a865c73dd7f5446012e0d30428f93bc24dbd51bb3adc1dc03a448c136160086c02463c414401", + "cb71e4f8", + "4ce06bf9576e8d922acbf8fe9bbdf5d435d2d34186e61b8f0ba9488acc66c92fd8bd56a3ce60022f4f08c22581b668ee1f8deaf7d447de5cf668f4cdad87ca318222da2a23f31212c521a472b8ac09e0d2bd027ef147764a706153f79e62eac8d27186d9f7a35d59e4fbff6531ed8fa53b5b4116157dd04913bfe34adf083f70aa40b71ddbf5065ef5f9a2", + "85212711" + }, + { /* i=1557 cDividendBits=3294 cDivisorBits=2184 */ + "03abd2c56944b03ce7e264e8aad1a51f4b79741f235e06c10682c65dcd4fb3d35bbd7f424d185d284d32f2b7e823bf36530e2801f69c0bd5dae8e2db2f4dd57f8fe798eded167ddc386424a197229e35b6dfded1718295d764016e4df40cf467d71272b80fdd43abc5c817c68caf5710e025c16934e8c8dc6039b0e5327b7d24d4d5b61a4c168c859ff97228b14afc91a495c838a86292b373692a829457076fb49a8d98894a0f7620ba9d1c0f6f434d1bb32c85ce5678ed0e3b99aa0be1dfc97aba14f9c94c37acb95b695b8307c3e4637f38748a43aa71fb93947cacdedec7370961b19ba44bedc8648dda8cd95b32e00fc2a9259139a7962cbe8161d17af887bc45e75cd59d2bbf30a0a1da6be5386bbe767738eaf613a54602f679ae3a99a01d48966cc3304d6b98f243fe137e9b47f7bda80060cb2377e292812a3fd0b081c4aa78a42517278cd4ab83b2cefd70e53ae7cbe5c8bc9e1e195208adedb316c7b5af0ad415a0a8dd3251408097b93406d4547a02608d9adbe1430858b22cb6b0f6a26175afb7accc60711472ae22382518676f5bda2bb76225b4ac", + "ab0f98fa8ccd2e545a8b98ac8733e5cea7c6c3a8a5874fea21805b2bea8f0e942a8033cba0fab603957b32f0b1049d829bcb06f3556f95e99d0b7b5c70f22c481271fb138bd8c733141a321223777fb21693b3895adf65d521a34bcc57ce64556fa042cecc5a825bb3f531787058875628910b98b05d076cf5449833f8e23b297864b0e7525e8f4ae65d552b9e526a3df19078d0814cc70ba3d238034a231f9346dd6c28ec56c5a20cdeefea2e431e0c8e7ac9019ce737698517933e7759ad0ece6cb955079f389c1e0ee43c4af682cebc497752325a088d208434b7ae8ebae222e148d833e626e85e1846f23c154a7c54491d26afd49199caeddcaedc3f5b4f3454f9ea81fbce3b5eb21511ebceedb1c8", + "057e7c5f484d9dcfae883d84287a8eafbba026d9071facab3428572d918df9061c2c9dad836b97851444e331c7f3bf8589dc9f1e61f415bfef11e028a31441ae19e240d2652e7a987e7ea0348bf3832d15f62b1a7bb0199a156e391ce7823d17cd3bb9bc171c9cfd3f7befb9724cd590e1e4faf1fde2ae0776ceea493d006b5d09bb988b5fba655ee0c2bf", + "315845acf73fac8d9d58283b2f2009740970285000ab801acc80db4321d72db72edbaddbba939835f9d9b535e784c173f04ddf3434c8012ce5b6d81e17ad468d592f21eb5931e0446c73f85c1cb8627f35817edb8a9faf686512bf65ccda60cb5de107cf4d3e82baaaf95f0da900c67656909750a484685b999ef9e112f28079e15f2f6e45033a15540d7a66fded3edca05cefca9187064bc6b952ffc5d98b150a593cd60f1f6e50686deef331240958ec5b6c6dad6598b734fb00f554936350bf5cc6e3771706c9d0c2b986306c0282ec81d98491be99ceb4ada377e2920f60a44e42fe3cadaa677d6172234ddf6d723a8d22d83a7e967e79f4f140d6afefd495cbe8092a9dc3e2f25a124eccdf148074" + }, + { /* i=1558 cDividendBits=245 cDivisorBits=160 */ + "02311733baf0b11ec8f09e36b1513e06bf04aa808d942f66bdfb3edbd0ed4c", + "f475161ce652c909090d80812e0e2c485eb8dac0", + "024b9577415274f631b3b4", + "1a1f5ce6a0440920ad08ab622a5bdb8aa222de4c" + }, + { /* i=1559 cDividendBits=3750 cDivisorBits=579 */ + "213b7528c071573b6fa032df8f0a746ec4af8a776e8aeb3764818eaad4f8d6aad9d72fc718591eb28b8310622a19435b8c9a8f32ccefb9802c328f933ed9995c388ffd314f5a133a8cdfa9fe649a39b3792852b810b162c4f7f2b875a5823005b5f233640b3e6346ee5cad1d1a623c02c537cd068b033e1b1304c13dfb4a1db7c67b9fb30160157d17663ce02bc02a75f023bf128d8bec6425c117a2e33d71f06903c66222a43ce3b14f69f012aa8c853b03defe6ef96f40cd31c649430a15e58708fbe8e52cf9b6ff5d17905cceff06500833844493f190fa2acd119950da7e0b02d0af96817e755c87f9b9a659cf08550b1dc56c2c9a45e995aec1aa698981597d9967625934d7fcd1451b99b756ad1b2b80a2efbdf3570556c7cfe6d20cd1be95c010143624b3d103399f54df087edb9a108e743db59a0ee088d36791005196b86a5243cc03df24b585f61c07d00eccbbb29b8b56dbf1f83edce281ed34306028c734de0a4dc19125be0ee98baefaeeb25b4edd7c3e5bb306e4c93c02cf17dba926e1a649e27d3846bb0a338eab1d2f69b593dd4874148f81eae02bc327cf5b329b65643fa4e2dc6208ff9b04d427c26fd5fa38f439fedc1869a13a716cb22ffa15200412e15d29810098b5dabae8ded6bb4e15", + "07544726eb6317f8992c1d11b76f960607948c5c5bc3bc1b7b06e0db8c6189dda75ceec81b87038429803e38e7adf785fc689ddcdf41acdfa5a0c0de35f1652c868ea2cd3f5081e993", + "0488c2aa9d9a3d9b9484e648f3e43b383e96c517e288e388a6134ab1abf13ffeb3ec39b64d1cc06a30d0af6e18ac94a24106590704de5b8dec0738c3105cd5515af8813060683cdbd5ec351d5225837fdfe7316c016f2e47c3b73780227d8a10515321535b8e95d65436b6005c4c9663b0340e7a49398393a5b16bb5539f4b4ddcf7ec73c0c059b770ab77ae365eb248549f6a3a4aa7421acd038d66d21c17139c48e88d13fff24b47d94a3f4b5d05ff069c6a7324719c11893ffd6c3c2d1e9e950df0209217f38f098d0f3206606f85c8a33227b1535fe91c99fda2addb973972886d10b27ade3ba14b12e721a3a295815838d98e0610c8d9a5d7f600e43776299f26beb33dd132d900bfb2340881f4028c1dd8a72e9bdbf8a3856e07765e8ea47ccba9445e716cd2c21963767c4c3108c886df3a1f134a5985fb6b39f2a20e69366ccc6bc0db8aab937fa45e3a76427b557f4ee25d6e5c34e9441f8e450cdd5582f48ad8cb98ca7e20034431da200651e3560b4f7e9b47301118f3d3bb5aef968b43f5e6f499fd0ae6a0cb64", + "014c7b27f76a6ae2025cea69c61da678e94932816135ff1dd1b905338d7f41a6a2005b1656666f608fa75c872a14d9553d172d8759d2fbd9ebb6932d662c6c0683a2b6178251e47fa9" + }, + { /* i=1560 cDividendBits=181 cDivisorBits=142 */ + "0bd9fe9e0bd5242a041352125d027743419e257f0d19dc", + "37b7a8a0b2f02e2b6b95d3d2da68dffb7ba6", + "3674086514", + "307f6d4786a166624282eecc24aeb26ef2e4" + }, + { /* i=1561 cDividendBits=688 cDivisorBits=596 */ + "6441d0863d60cb1ef8210474a9289ef612c5ad61404d3e11c299d500def09957e4d1e64a72374710cb3813a7d051762d375716d7bd9f90b8af7389341dba88b82eb11f0f71449652b22c185dc992a3928731cc92e622", + "03e9b468605160d7a10b961cad9607a743083617bd493cf97befabd2fcb82b7b828468042138d8e20b2c0ebdcf33961a22649960fd4ec7ca21e6f24e4854f128bfd0045ec6063a65780390", + "199f444ebc5450c8fc4f217d", + "033d9231b6c204a355b547097b3bbba86ab257790a67522342c33c5c6b8de28402c00c2fd918eb69f0611f690eedde1e4f53cbf03c47a78a2061fb257630fe0df898c7bc0cb98eef1398d2" + }, + { /* i=1562 cDividendBits=188 cDivisorBits=14 */ + "0d47a9cf8e2248f4556e20073a7637a5daf7ba31dcda3ba5", + "2330", + "609d9b7f43d0f7076dfc5cf734036679b7ebd3f244f3", + "1515" + }, + { /* i=1563 cDividendBits=1142 cDivisorBits=797 */ + "043867e737b13a05f68810f5cb9cc5c86952fc1d3c828f4988367b47cc9c7e5c60125c82eb38a57b8142bc5e5c6056666a5f824be95446891dda97c935c10b44541330a644b86eaa20be8609859672b7271cafdf8b691255ecbead6d9bce5800787f79048e28373c41a747e33abcde84a697f0510e92a80c68ab4a013552eccb575f8126567bf0f4d226af4fd2b9da", + "023cceaeacd69c6a64c54bf6d546ebdcf554b39cd821ba4fb4699abcd269d1ba12e3b33658f350343bd4c5eae7cce0352aee39ef969cdada25a2c235a6f335bef8a349e30c0e6e41ff2de6f69ad4f5160f4797182af08da49a751a90ed7025c82755627a", + "01e2db54b41eaf45c769ad0125fa9a97edbaa6584632a25b3cc0f4b8699be16f06b6435a7adcd1c2d0e09e83", + "31ab4390ddb3a637f51efd17a99b84f33a207a8c8e1b754b6edd88e44d60cfafe9afab0ebcf22f39b2c06598557a94b60214d007f417996f85e4337a6e854de3b434246216028ad3b7c5b22e9f98a33baee782fc318044722d7b6b451343cf319a096c" + }, + { /* i=1564 cDividendBits=1214 cDivisorBits=399 */ + "34e2c93bdeff87fd11ddb736637b9761ac7007acefd8bde0fac4d08a7de8cc614ebb81422021aec345b2dff0124a9e0b877d7aef2e763d9bb24ceb2b3c6d930861eb3f83e436ae37ae593c99ab22af8806acf8c3a73907408da16d3a7f3fae2ea41ae4b8f70cbc2534e8f2048e5ad166691e91591d2906e131db718fb539bd28cb8aa77baa99e370ecc6c8c73aca909a9ac077170a7c49ce", + "51859623c9efb50a196d1c535a8f75635ae20fc1c7c6659821017460fb48dd5e26db9985c85dfc0ae1d53197fd39b08d44b7", + "a6135af38cb923282e5299f0deb39d5785f7093c54d27b6f4b6edd8614afc6bafccbf29ef90e05ec51dec852d267ee7a9677b7507a0941754b416a5034cf82cc1324563c0dabeeca01f274bdb790953a86fe5a0d5f16367690bcee5329d9b34cb3e902d0a08c", + "2dbc3a5bf8c352d37d1ac442b17b84bda9af467c3b2485a7e7c03874e09ef6c2bada314b2018d208c67c7829e051ef9855ba" + }, + { /* i=1565 cDividendBits=3687 cDivisorBits=1234 */ + "4c9401458d401379e6934508ab3c9d21b34f2813e28f9fcb4f77e18941bb237022dfaa4e74d52322eb262485adfa8082b95d2b91704db3273f00abac5a326edbcd7c033aa81e2fd79877169644d7ef0560cd784b8f27a3b97a2a19ef4e604d25a4a0c6b36781f3779f6cfd995cb1b09d28582e3d25eee03d0e42bcf73e218f4aa6c8ed77cdc69858b8eed2fdcf40176af3d3f096c1682b0111f3756107b240ce4ceafa0879d797bff54bd585e90327fd4301459db55fcdd8f45ed793559ec05d7b30f318ef1dddc005feda9e67b91c2d43bdb58476867993000366fb20b52f1987e0d26e9f72cc6d1f6543b3b22dbe93ce402a9dd32b61209ce7ca9b07964cdef70f270b316638255b2bf1042adef0738cb042266c550169e0335a2d6101cbfdee3596dd17a08ef31dae202805dc25523acb8ec5388f84fc05988e8183ac8d712469cd6e084e2f219052bb1c2365f8a091c8796d1263f2aaadd957f49d809ad5fc839b664f1d338871967e42f396a3ac5548644052345fc8e08abec7a021b458f1490e9377c7c924f63eb1636f8f09b86e7d80b735d4a9fbef0f5f4dce1bbf7484914efa8fa99b91b26eb344d1d71f64003d3c54b0c1e469a2cf67da1a0a0638bcb453fda55fb2dba10e74bc2b", + "0293b079871ab9cccd28fdd0d77aefabe0b4d3bb6b43da8a5ff81bd1bc05c59c633b847ab05533acf24069b7fb42929d7a577f62deeb3e2f76a112eb980047be93e110a9cf39ceedc47b625629b711551da7ef4983f1e9ed27898bf15667296d3b77ca0c61ade20914ce6d596cb3ddaa32a1f9074392d82413e10f956dffe6308aaf7037e368cdbe010c553e40035b319a24ba08c4994fef7bd949", + "1db78ef1900272c0acc3969ba2bc20d5fa219986c1466f42bf3ae6372ee03ee675d33042c259d74de69cd91d8f8af12e6f00f9a6af52a1228c4eeeef33d5122e7390341e49462e7913768e22d552da976dd89279fec99a522abbdd63b137221c5137929e6681e962609e46d7aacfdc5453bbe32564e3df542d3d19e27c331cf0aaef93b4339fa4c68b0164405e73c97d0662d7b8d0371e3dd3a842ff391d0cd6f5cad1dcf38fa322d6ce21d7888f16d2c988e040f4d8f456341661d9dce7b88eadee02218a0154abe1952f9dfe3b24212bbbeb2f8a45d30b462ba12e305db0bd521d899c513973a4e5725f1fc5be0e976cf6f7b9acad315f03c5e538e132d0763b338947887bfdc172c90b90d08e4a736bdbf49ca79974199da6de640bd7f6a5c6081a1c9303ee7d4654f8a32a6ccf16b679a5", + "017a9ce070366d474b7a2b13db0a6e8fbbae271807fd20b4712b46dbfea53d991baab3b6c9da7bbc55e942526807a045e7b982c68e67d7a389d38267b19054b92d7d88ec2c0f33b9129ac9d2fa0b82cf4534ca6b0edf9cef8c3feaf80fbde891597b02b6a0321ba47e28f21f0c040a6c5f74917f0440bd39b8abcf264ae68fe456e73271277395c2347d7804b013ee011ff998e952de2a6a082f1e" + }, + { /* i=1566 cDividendBits=2472 cDivisorBits=678 */ + "a947501afa763425a68448d502748fa1d45204e306d55457e3aa3e37f9ded2f823a985c48a1e1198558bb29efe473a30778b131e16c33f4442d59fcba6b39f04ba3bff4f187ba6b2cf4a4e6293f1244a2d1a7c935947cd97936b3d4f8c90bf0174af0439296bd0a11d6fa2ccda01df78acc4522b35afaedcf95f3a79753cda958fb8fe8306bc4077740d49e9a1872401e186d358b1cec97db47603e5066c85bea96cc1b738afcae13e21c05b2165949714eb2e44c77cde4744f34d8b5c557df75039d8602484ea6f43c077ac736120ed9ec5bf31dd46b6f3f497f99abbc9a848066e571e964a9967fee3a21184920fd432c6c4b2cb0fec12b36064c46e506c61f6294f100d5c085b5e04e667a31651a969e1baa69070a1e314027a775b7026827bca20d63486530fce5378944ee6e9caf32680fc4d", + "333eca78016077cfe4ca3b1c12aded745f062a5da1376bafe812e93a77ab20fe10d5e6645996dc46a679f62c50ec2f3ee2636698cac1dde5540dbe032349598ce28981c45873fb98ea88d7d386fcd708991c591ba0", + "034da51f9eb05618d8324b2e469ad7703af0c491662706a269ec68c750f096e9646ec9c28dc3462913874ed3936ec0fc791c8eae0db75a766544fcf8b589fb4d5d2c66efa52f86fd9a9bf8dd8cd816602e1ee45fae3bc5a27c6cdb31c8da547864fcbbe7d3c5af0735c4f0a4ee85258f2f627f33c5a65e7289436a0410c4796764e39db6e2a0b62db46065d98701f12a2b23670c74618822b8e915a34912bba42aa214821a30d834f9bcae6fdbfee816ab953e6b326ac9ea22f2bf25f99d22709b01f6ce2026890b8b55f883916b0f4d7a68d78837da45096a00a4845d548f0aab", + "3217b2821e451483e5d93f67042ef98df4b261b896f74eaf8a8b24121008fa157a916e1e03ae8de452dcc972619f78c35a265c434b0087b239dc0f5627b381403e584ca885c27cad5b3c0becc0a0ff759acd87486d" + }, + { /* i=1567 cDividendBits=2068 cDivisorBits=851 */ + "08221ebf6c174b2c0a234ef89778b3b879a042a9141278dabf3a38aa6d8c896223af708cc3b88c19b7f0e9537fd5c54f58a2108eaa1e8bbe13f48128c1bd50598f962fff8019a61a457d89f1ac489f1480e60a18f373ddd437545a238f0e6c09430d460789797c906a1d3e7a715db92acd6af354aeab15ff3fd75b88a809bb621623aaa6d1c8af0aa0342cf072448c745178df9a48de00e7e08aca14bb354f6614a548199da0f9eda588e076b1ff92ba683503eacc45559497c4bb83eb17552eafbe5a8017de2d188d5bb214ea2fbc4b7a46c8104d394e963f492aa497c30688c8286a2d585c3fd6645ded9bce5b59557b22a25adb9cedb3210739bd4997ff0c878419", + "045e22b4909886a59bdc89b9e4e8c651ab98a8bb96b4add4d52ec9cd4d4ad16de13d9b8e8e88af05d2430d97ba5b3d1cfbca9ca9bab3759f62df996d545bc090f50a788c0b0cbe3fa6df810f248bf530874afdcb97b435ce5586281a5251595d1ad096ae7bc1ffb695559c", + "01dcb4ec1d5eb3be75ff397041f60947e7fa961432b542c27a2e4167b9547dc45a752c17c5846901516d6aac25d7d56e9e8d92bc88defd412ad422d4bd9a42452378554ea1a4e20fee8ff9db184bec1d6b4abe75ef5e52b7f4827826251632213c9d62cf526ce2950fb4b61aa3b2c549c5326e69ee8c9756cb381aad4f424b8bf112e78568dce4f1178c933ab6c42c01ff470e899a5533041f", + "010ba24b09a3b60228c7f7dd67a968d3e2a629f608cdd810b0c917566e8d72a0332b2d51a4bf9b143cac7776f9803fd2a39484003fb7e55139d349c12e5e764787506e66bfc1643e64341bd390b82d46871499631e9b7229f460bbed98c4ea17e1ba586c862a28c107b635" + }, + { /* i=1568 cDividendBits=3053 cDivisorBits=1333 */ + "1d006580944923e8ea23ce841e053b31895edaeeb4c3d5bda1dc358c6f2e0fa623f3c947990322b7b1c4df3c22efe79534c22ade178d895ea8c063f12483c3fb62044a6138896cb7f8e9d94b52e1373c6159339d30033b6efed97ed22fcccddbdd2c26570b4a108b0ce1b645564de576ac51fd7be95c1d5f945692b3cad9ba0223b3fff24d039bc31a5a87b94853f76efe7b5fb46e75b8d876230957f2c23f1808ccea2e8c7ab3a2f3f91950fe09df89bd78f2688f7a1d20d57f37d9a60342074140d86b7c071a275bdfdb012e0641a2de55d5212fcee31b01777fb5e8677da2a25da3c51d3b236c296d99ad9e9651040e3f6034d34de6b485f49850095a8234eff74bcf069cc47beb9f4c27ccdec09c745f10e5df5682368b58f4f90fd2b8d172a3cb1a6755c72eda86f9a24f5ac86e7b666bd797d48b57b4abd426fd61dea0d458f5514c95fa6981a54d41d8ec2ed3b22a35ba8f79d38b85f03e9459063bada06924f6fa66b469600c64d52a00d6a72680b1afed08f45097edfb880732", + "18787278776f2f0e9444a955177032212cbfe183f9ce7940b3e3226a061c5e568d240a451c706478656bddb637269b7ec74fc1dad0385ef350fa4f3a7a2ac35553f74900170f3d6159a4f1d1fcff0fb6ec8813080b90f5202ada1d091ecd56ce93c51776b2b8be998655b979e77078a27e202eda83787921c2529159b2857c18fb57f47243bf5ce06d42bfd40c2a1ffb626d680dab51042e490a681b2bccb4b886bf1c85f8b68c", + "012f66e66a6acb861dfaeb4229d79ae9cdad605300f991841a4c0786d5c1fc4042e62f3d0b03108c5a9d06b51c053f2d5fc987813ee192a2b74ea009fd57e058de8948f02be3e66c7ca799358c9ff1ec2f289a83e561677cd9a64fc4d023fa32650c5fe6eb3a54c75d8e371e43d6f4f0e6ac02776b3b4e1a92deb7a4ad506da62e62194a007545adf44bc4e00798edda5830f3d262535074af2516096cae68051de177f58861159a8032f95a26f4e37f3d79cfb64745a27f1f66c64e0d6494c520c385553cd34525b1e6470e462381cfbaefa4e7f1fd1552", + "0b998473035bd90002417464de969d15ecff7ae6553c992a3631055a325bec1dfd1c75b77a90daab588da6a223398244876cbd6841ab3c60d9068e0f3f47a9f42c1b7633d348990d5db6d1664aab24225198627870254e10d4b8cbc865c82faee7bb5ed576e381a0ecabb041b446fb27c295103e1b218d048d5d692626c96440f3cb0a806b216a653a99cb9cc54d613625be420c329f8197af7cd81753a955b51816d37688125a" + }, + { /* i=1569 cDividendBits=606 cDivisorBits=77 */ + "18d96d882813c40cca478700329a08e90301f00e23a2a3636435cdc55fcb79e2138400c1474dc9cd751afb0c4b1ef1a87f279afb890236b4145c8c95294ab810ed5f59b44a9495f9dbeb3ed6", + "05bdfdf8c415c0bc1446", + "0453d8b22e9db828d2980157c866fe566fa3aedee9b19c90698fe6dff237dcfcb819c891130f146cccce4a1e4f0ddd79599ffb72f81695453176f5061375e452e9025c", + "0154e2253ca2407569ae" + }, + { /* i=1570 cDividendBits=800 cDivisorBits=509 */ + "564eb125dbbeaf5a3b55b36e47d0674525c1103e5620e9095306f2200385dfd96dbfb9cdc7cb08ae649b89b0c26100bd53d9cee2ea20afb2273be2c4d93f51eaa61f2e89813ea67a2b0b244fbe1621137dfa6f0de3d614b7b30fc3a84d95007f68a1036a", + "15d15ba6f2da923e102c6753952897a3f4bc370ef3f9e8e62da2efae01c8f145a7b866526415f3d4fab19260added58f85e0d5839b071f67cf9079e8dca2dd5e", + "03f4b0ddc92850cd41be1a865113fbf6d31758f0b5cf07ca569877fa6ae9f3b0818668b06f", + "082879f7c1f7f08a1ec1953d184962b2ab47b7bc883866db8aaf7d007e6c6a9a1d64a3d4a05878b870def955926eabfaac3beb06c9c92f6abb8cfe70a3a267a8" + }, + { /* i=1571 cDividendBits=2514 cDivisorBits=374 */ + "023cd4568a8461ac9a902b420826baf6e7becc125bef8c714366bb8803f37f57ac3a9f766606b6f9780c62bede14d4d2ed23836b02de6f93242184cb40062691a332b94ecadf18b54790af138ca0708b8710fd4059089497f37b44ab2bd2091701cc078bceff8ded987d81902ced882fe5964214e10361e883726597e7a3f2525b689c1fba3162b8a43461ffa5bb23b0dcff38d303a65b66e8ef746ebddb1f1972e51559fd7909ad65ea6a47c6c289c570d52fd6196619e2ea78479bf150b1ca0dbb86e44f77ba17ce020f9409addb21f50dda7fa7d658208e0c15b458a5318fec1a5117e90b95b813bef3d59fdc0b1bfce8ce634eb160598f9bcd58987bde224d290773327e33e82bfd100ce6ed5181ca96128f3d6e1c264aad445731b7a108012e17c6494d1862f0eca9f920784963f5dd6a1803b8d8011c79d2", + "0d3d1838f061530d76dd56dcaf06d1d5f5b2a07a8f572657bace29310060a50d7bba382d1daf27a25bb6fafa897454", + "2b44fc2e77c8c1e4d26c0463dfe16675db5607221c93b55ad397f10c9b211f9e03fbf928f95c26695c3f299ec9f47a11255c08734f46a023affc5d0dfde57fa96d7fd2480ab42ae35855758bc9bae8bd956b3e52a9308c756b7b433b2bf07e09f31ccc919c72a7c04169034d82ead82938c79d6ef0a4d8738829b5f8b7a8b2a5a2b749ba8cee18f52663339a7cc1c584c074a6cf8b014a13093ee4a15dd032d9b73f3ab580385a70329f4a5864537ca611367cfb0ebed68756f74630152683f4a7c35a0f0c2fb2cac721c5394ddce75442b0889d3651b1b4b51556122302047f1acc3a794da4322171e7a436aa9236c532478ec774961e66a75f8ba3bfb0f581bc5055c16e6e757b0611b9ca", + "016f14bf728fa7c3b778ca071b12f6359cae72e0055ab8f33ef8e182a221a1e95e45e3d3d527f76592d38a4a01fb8a" + }, + { /* i=1572 cDividendBits=2378 cDivisorBits=345 */ + "0340d56257b89fdf531167e3ab5e38a087396eeacd0943160c3b48af149f1c45835818d0973b1a4e8e3f94949a5b512a277986ffb0aab9aa2941387b2495b0a49314cb92ad535816c1b77e838b8742b126552a9d28679390862e54f7573e19204aa4afcd9926a722dbc85432097b052d33b064d4e3ad7ea110ef4f54a004c7cf9dace8af03fa34788082c193294bc7606f1f7f7caa0dbdbde8f139a6ddd15f069bf926579ae2882b6244ad4254ac0be8ad9b327e08aaba66ff1e33ecc3abbc72f9e19017e9f13eaf94073c7a8e5359b575ecacaa5ef6a2655a2ab523e51faa37bc999371f33eae76181c27ab38e432022ed0bee31762673d0865bb3b0346c84ffa5d56660950f3de92c06037772689e2828e885fe1e9701d9b1da51652933c0b7944990b1c5e9406dab3", + "cc711124e3380080027bcf05c457bdc8fcad40f21a05ea11a2a701e106331ad15a77a09c070f7da2bff6f9", + "0412ddd891b9da2b672de862ecf7883d5308046ecf4a225dfbbfeb1c08de3fb237e626a6eb47284874739dad85e04affda2d1d5c8c4a4b1cf889d7f7b97ae4648ef2bcd7bf40dc978fd44f2cd5273317a240dd54ca693f57a7e9ab031aa8cdc64862122e585648ab53a13504c0e9d50ded3278bd58b6ab7f6c657526e2c35bfe691baf5faafea91b62947f1d84a4a2803f621721b01a05ba836e84806838b7d05535d9c43b75b2964b26921fd5949b15daabbe67a93fbfa9d29dc7376a9333189469c5d4f9ba738ff1ac67c5ff2fec4c29e4410490dba432b6e52518ef6d163f3e34c8255b117a642800178b4f9830d036479d75e9f19dd3b6252c4e7e9698", + "9c058689485f1c6928d1f8f2d2be2ccd92f5eabedabcfe23b40ad24875fb8097dfc56e62a344e20ac850db" + }, + { /* i=1573 cDividendBits=3076 cDivisorBits=967 */ + "02ebca02588b90a03548783e695313efe9e64de40efc3ee39781755bfefc3e0688760aea1ac723dcd2690f2a330f5c1e39f7e335c9a3760592f5fded80b1096bf3b90d24b60e31aefe6b5d6863887099a8ceb06ff833724c82a0401b63dba7ce9824d7a080ce567adbf2739130d05ceff902dc00b67e25c5a80c6695f24d87c43c586724c0287b99e9702cbf30c5abeb52c0703f56847ea3341f7bd917bbb8b3ff6f724bed5b5023d310e4b8617c8603a92b5e2854d7f4323721ca9651e28e73531d7733a28dc2b6a1fbf68ae6151769a84b88e0178df31faf45b66ce331ca68e35b2477edc1386a48af0053d9a0da15060842a060602116efc7becef9c352e0aabd37c22257768a0755de5a05241301244418aec547a19146dd98470aca4559b45def0a72b8eb71045a4348ef8c18cc9a96b6dfc27e0bdf6aabb0fdc86e4dee5a40b0786e10268006ef42e9428fe5b3526e62f114df79a7c913bd6f196c9349feff081a66dab6c29d7d53b0fe46f18a489af07bb026acd27fc99030b2f1f95dc4", + "1de3e6478b58cfb8939d6a5fadcef72e7a0d1e164be9fce94280a35d67ea5e3b7e27bd9f6f7fb90fcb777b1a246b543fcf614e0a812c78ccac6406e417574dd62af2afc0bccbb6b73c58be8c7204d2e6b24ce39058aa371dba3a8555a8e90d7e345f9f356d6bef616c585e406a9e89cae9bf826b22364c3db1", + "19049141c0e582eeb7c43e9c1764235f49ae983009309ebefc63e772f0375c4651daf9b99997c780ef69de4af29e83df0ded8578c29fcd8d7976e81922c7427ad4c055ecba0d5b642c6d17c55a97de82bcc51a7a6ef2f587b54ddeb43ee0537ac24d9c053ee365c96a3a048298d6a47fb514a83def56e8244dce426b21ece6a4baceefdd0ac9d2ae38b5ec0a8b2b8c766e6fc427a8b520455f50a7225b8b797791710746386ccaadb15b65eac139cbc90ea6675dd3e1ea754097f3e9335d7611ae9e815bcc9fb7b739749c0557c9b2c84b696fdd3a4efc1934bd0aaa2d81d1db98b38ec39266d4c45eb71408fa50d90554c026438928d9b67eacffd1d632f86eaaab86387da30c10", + "0d46712d618f24cb8a0907ba004f13b1aa7c95854dc68fd687f55309f129090533867d301b8359bad42b314542e511bdc0806edc12fa48f0841e9eea95d02d8604e3ac39cc42ff702b9c1d56f8213eaed8dc2a0ab6eb26c4dac810aeeb47bb8f6bfe1ca1ef92df4860068dc6e0cf9958b540e4f2a1459e36b4" + }, + { /* i=1574 cDividendBits=2809 cDivisorBits=904 */ + "0140dcf1d59d2c58850a89f02010b82ce2b6bf08bfc97099503715e011324427ec1ff26d4762668595f55069dab6ca36c93ff3103c9ce5b462a9203b9debbe9a2ee0e4dc86aa5f34e8b6af07648ca661cb55402478dbb04b10e06ee9a5ebb7c33f3f1a60fbc6de6f461d6b65a8f94363676d07ee9e75c5611045a4c6add41e3996973090f8c2552ae5c497f07094660ba1a2a37871a573a85568758beeeda561d64b646878d97232feb635106a6fdeaf2cdef90a60e40991fcfea1004ea9d3049c7e2af81954448dcc20085aaf0f8e7f83f70d2bda2d6cb2a926eb078e0dc4bf14e8975c32390e74f582252aea683e278b05e0c1bd43cccc244971c0218a967856f03feecf6d0cfa25659f372f222a47ac065f3aedc54cd52d92e46cd5658af0d4a69235420caefc92ba67f8b9901077567a4c43c8fc018fd8ab1444156093d5a5eff371b9e740b32f21608434c3fedd81ad9d16d80caafad5035efd8a120a86", + "47cc8953dbc3127d446a47afe80e9447e186e5303e64653b9abe71ade31908aef801fa49bc8fa0e669c65c112267e4465b9d015c2c7d0a78cfb606f8abc50553d5c0be0ed8b1a0f6cddbfdaefd87e58c10152374249efb24e7ae1f7dbbeae128c40284e5e093425fe5284d6a1f12221bc2", + "04780a6b8b1de1825ee0061241c22f8de6600ae2284abbb3ac07cd93880a13a5617771eec18712298048be663d69270ab515d0889fe1945f9ddc36210b42109d147c82cc9858f380d8ddb433efc721aabd2e245773657a785153e489920675ed16252956eec90162e16853e3da9e2802b0918545607c1e524bb7acc7cee0bd422848278c96a1ca814291ebb0fe4ffcb5b8dd09bc2afdf2f0356254f3cd98c65365c1e3eedf30cf6ffbb09731f5fd21b2444f05bf4504d66608296067cbd4c127e0dbff295cd5f9037a03dc4e3cb0ebad324258d310486ef758597f7f589dfaf67b0a628f71a3e431582f4cb4cb06cd", + "36b6b2cad37f29a9add6a57a73b8c506ec9c962f36ff4935e3fbb88ad7de3a9cf2e50b1634c80249317fbc64b815abb926658ce1f3c11a8f09bd7e5a28577766b7cda8df67bad10f87d16461afc84e64d1fc5a1ad6b6a8194040e50cad1645c1a109bc0e581b4be6276d3c7186cd45442c" + }, + { /* i=1575 cDividendBits=2164 cDivisorBits=549 */ + "0d0f77753f3ff28995f11da3ed1b89591fe00379a823228a0791f7782096a05ba0374863687e80709d40567ad2e091c6bee3c647da3913600e70a7b0041199d2bdb1eb44700fa6d387a204aeeebc1cad09115091c1d4196eb9869d0063465f9ce73fcf91bb7bcb85deded9e86295fe5cc34ab5344755db58b35b66e8e2492fe84a608e1a0cfc8ddd301780743b276d71ce6e933b24f57c82657e1e4886c4161cc4f3afaa0f68d5315ab0a2e60bc11d828c243119d989a5d9157a328704f85abbc19222d350a10011312740f15372068281e000c2330de703997039902d7f70f8302c174491b35cfc4c19f4d5d2a53004aeb1cf3d00af4d8336ff8d06d53abc1dbb0d2733aebcc1a8701288def47501", + "03a38556115a123add98aeaf9c3464e98aafee459eefa4404308c2f9abca611e43a51da6bee92602908faa204c90d5edfc5056eb163c61a1310f9e99940760c3b94cff22c1", + "0396d978887790d2f3426c100ddba43b451a1c1d9c44862d039c19b7dde512abd6ca2ce6d61372b0eef9b5f4fc9914a9b71ea369db63f46ad83835d967f061b4fa9a41a2b3a0ceac68527875b4c158fa1d2530f9aee08ba416a05a17bbd64abeb7a725c7b3a2a7cb4f3b03a7bd36009695c905271e2078efe5014b3a1f10aa99190eb5276bc5ae7982bf04ba734e6b6f5b09aa8a629935e45a63cf68e8d950587d41cd35060730c67c902e9e837dd487998cadf9a95ca31636fac37c03d4bae567d4791054182f2a37bbea", + "bf342cb4c956a7ccba97aef99ea66dbf42d64a455c35f1037ed4c100d53016bd795245f983bd7956eb6c521fe068ad318db716734d6db57641c2fecf4225eff6fde4b597" + }, + { /* i=1576 cDividendBits=2359 cDivisorBits=31 */ + "2bae26849734e178272ce346bc34099212efc50568b96b471cc16c99b004b3d188191284cee811dcc0af7e47509b51531fcadd4da7392fbaf6f39054cc9a4bb9fd0e9ee2190da6764b97d850d72dba2231e8076e8d14173df03d41f1617fec8abaccbff7c61d26f888b2c0e183c3bb29198a0b3b6189482fd1c7e0b29196ff4899069080922ac8eea4690169524d758380e40fd01fdd96745e9efa3d3fe8659cc5302adbf166da33caed448b7b8d7dcb204854d14f096487d9d93e1d8ed3a9815f37c4a996cff9cc8f6a9cb9e4c466d934625f3bca7ef04a41f68bcb0222cd772832c066bfcaf284ea45bbee018c05d3e93fca73b5a1ae181ce8948e925b6eb6557b11e25509ee178671648f7e5eb460dcaad18f1df3c93fe0578968dddfc5b8e868f8cc95a3b2", + "44bb2ae1", + "a2b1b2b0a0b66bb5d06db5408ea1b5dba3e29501537204474e25347327e4095eec6b8a57c9a88d2c3153549c2eae0c45efe3493c57f733893872e7a61b5fd004bd33fb21434506a95718cb987abcaa0be00ee6f678a79f8abdb74ef804c154e8b0d976ec64debc0eedd7a672da710e48049b85ed2099cf54a4b665d0f47ae4b68f91c78def8453ae47ccdd6534b01f203de2ac378326d5c2330edb94dab1d2dbb404e4570f3b4e8c6ab5a1b024996916af92ce715b9bfbf74e2d95361d322025aad12876e77b87d528dbe5d2ec1f55fb35983de77de062e7c49a480c51c2c39859031cb4d78613de0b336e8eec6fca655970b9d25471946167db91050734473db020acced6247a7087e21b1afe0ada882c70bd1bf28aa07ef651c295eb96d351d812be", + "41cffeb4" + }, + { /* i=1577 cDividendBits=534 cDivisorBits=322 */ + "3a3345a3e6c0177ad0179441f004ce33d8a46bc310a670b9731e72bd7782b40ff90625ee900a2f3d8f497ddb442b3a292739ae9943d5256c31859382b333d173c2963e", + "ef23683cba9953f5b0527f468e445b16dad5a26595492579af0144893beaa5935723928ba369fd73", + "3e4dd29e3798179d5bce12f6809a6c836bef4301d287d9571d4bd5", + "1e6a7379bbea7b3a3e405661c9413aafc118cb9ac9925a0fa2030a571d1a9d0cc2fb5923a44b048f" + }, + { /* i=1578 cDividendBits=2956 cDivisorBits=1549 */ + "0721de1b42e44983fdbb612e5ebf4baaf0d0340350f437aea485990fe1f1f5dfbc739977f76f614c4d9e7736559de0ce77d4f283a43740bf8f64b286adc5500a1f2f8876d0b7478b67ca9d31ffa93de177d81032f14dd3d323b1206e0998669617073e9556fbc8b762869d3f2f3b5cee19455fdf4f01c93760914351d6cb72f8ac0de9ee9b501f5e021cfcb54dd2addaabb18ac3f6e1569ddfa3209036ebedbc91aa72f9b2a268a24b91d3e4033d772a6d7cd07f9520e1b1c084b64cc874cb135f45c7e50ce0b862a3dc801e4466ec85ee5d71983c1abf5dd80ff32cdcc58fd21620f3608eb7f7132c1db3837a29dfd7f849bc08c45a446e57d99499839fd77f788b46c928d81163763cb44ebf8d91cc9d2b8d2dc891878fe6511198ead7444137547d6bcd7344f8e7c6960f4d33f6a90a80e1139d2bee9a9c89fd6a12601477fc268594050bb5f4da74628b470b7d417e4b8d519e918acca5efd7c59ff2336a177572ad20041126f1c57b3bdbc3b35a2000", + "1a2f2e44c86b35727b3490efb9e41ebae8ecc6a5713ac438d965fd882ba2e86ce0e302e3fb7dd7580921e91ee3a2576d8fa92d9890586d9dacc2546795c8e23c1c9d7711804069dcc079fdbb0bde42055cb8239d81a9f757f4c821d9e2537c5fd337cc06222620d6cae2dc4f596afb546e1b0f561b3418cd1e9b8afd05ea761ebdd6e29124f7358cedce3d05f116c30050f8a35bb21f30737e70e37daf20ec96cf53e9e5b1dec1ee00266fec7b9ed901ffabe706be4c7fe59a30c4b61a5a8da58d0e", + "45bb3c56af58b87d2b29f4b6c5e6e0b323b9769c600ea5d30cc2d2e44f90d5531d954a611cf1a2fc858f40954792cac68dd6696f08882fc0a4b9ee34a6ee45544fa57be7c573fe1e56c58417129f6e5f606be07be9d6ded3e68867a90817536cbe457eaa095a5b1f82ffe437c49a297f443177749e017be2a7afebcfd9c4d56a74ef823fe3dda43422eed1b1bb4b09c2c42ca9d86fd1c574a1edfdada0d0ba5058e5be14ae50f042484ae53f04448f46", + "c60519ec4f107532d83206d752e91f72b949abd5761be0c26a37eae00c7da28a14d5c910532a73a241c967fda2f5c09dc40aa7ec1a6d93bb6b85c27a52723eb56b1a762bdad03cdec1db5e1c1d54073fbd35fbdd9c2da34c5897b93ed34b684313b2cd04736abebc4f00182dc5c009383cdcbc579427df93dbf2613ceea78a0ad4f1d98cc05bc45f71f16e09beb12f6c01f31282a87f98104867fcf5a1647bdcb39857bad2b07992b96c9bb20c0d0b06b478fc43666983f5a4e57c9f41ce92bc2c" + }, + { /* i=1579 cDividendBits=2752 cDivisorBits=1580 */ + "bea65c06df8e59e7b35d4a083ac846b4037e6da8bbec05d99d02aeebe5aa0da1b71470468d000ed041f0f27b5cb88a4dfb7ee4f1b349855b01a87c19fdbd2cb659c92b8c9b3f94e4369d0bd19bc6cb912d444ebf8fc058f6997030386ad339c400e1f5af76bc567684e697cac9f2758abb981153c3ac401699024b1c26b3cc970f587db69d9551fe253c9c7e04ff49e478fceb98b73c61fde5aad7a89f28ea6a971af46d6a29d0a824b2104b99964405a32537ec9442c8f9ae8a67dda2527a31a4e639a249787cfc86564e6758e4aab1849ce9459a9353873c5566b1dfa675df20be30dc69c9f48db2af1eaa683b8dbec5723a40de928aaa414fcda0f3c67a4df87732fdc907a345dbd32c19b4b64e095ac4bad64cafcfccb2454d306efcd25933434b39973f026655c1646e3412ff1b5eb3b34f8e21de2b7a538486ce6794da6b4ba4589c45be328c041ad77aaf67a7b14bcf392722f8d1", + "c8567c916fec154fc808cf2ee8c81f2349677a015147179c141188fad8ca52c34105f86fafedebb17fcf2a1042b102552de45cc038fee3c8ce3c4c86ffd973cf304b7d02efe2d492ac6d1130cd79fd220bbb2053e84750f431d2a79eccf301b71ec8036c3417424b0bd67df4d69b3606f976ef45ece6bec73afcac58cc81cf77426ce78105d4149d24a96c335caeb36b65ec3d34b716a4d0564073864513e02d564b7c42184d189bed5c4ad152c2a8fcff3141315258f14aa4b1df9923e8a4d08631af8996", + "f39eca6af35e3c9d56a384a488ab2c1b812eda27701c03c2e33d5a1ebfd874a2a4b6bbf7257cb1b3c03791cd68e3efaa267ebbf8ba7dabd595265a98277ab0ee1c3563f9519edb3cfe3bb91db7622a5f2e372a010d70f66490bcb33e1d94c67487131051c1caced6f929c6b95e32cc20fa1000c920ea9db2b9d0aab253f95f9fe92c002c2cc125c17a7f105b24c16f1589eb14", + "5dd134e138d61909f5d2c37d2ecc9b94d83292a78bd2bd97484340284d85cfe7745f0eaef4bdadec8318ff90366e32fb20727372799e86d3d5f59b92528b557d248aeabb89813d31cc09d75a9863fdd0fed51594176484ea455cff015a591f3d8bf95ef10116371d6db5a86075cd6f5cefeb4c7e9ff93c21cb3feaed5554633336b1717901eba9ee443b1d5040dd506dfc682ebdb25b09b14d63005c2d7cc426a11bc08164b49f819916964103ba88ab50cfff9264d9ba301c6e6c795f122d99dd32d98719" + }, + { /* i=1580 cDividendBits=3816 cDivisorBits=1718 */ + "c1723ddd8dd20a92f41278bc9a6f153114029c9aad1751430cf07c02fc6d6318ac07d204edc95ab41ab982150fc36ec4e9265b1e56b8117c933886eaefcbcaab10a562ab2b54a50e04f7fc8cac6ebe92db21b3840847f2db9fa39633879c0adeba1cd4d09dbd06c127fd97da0446d1a020ab54b604547ebc611e2cbaeccae30731ef71d00d4b18aedcef1941374d01edeee15e846d535c99ab7f5f15a830b849e6be4028cd97059720222217be712b45469b85872ffeba3e752b502bae436676e94a89412b708c2ae22562a8d6307b8371ea9f4d1c7eb0e4ec8a4f076c870bc0de10c0bc3ffedc3761a928dfc7b25d2a1219355f2c86f8b899c7ac152f0fdeff1f8113a41bea6a96c91bf997ed67aded4bbac06483ce54a589a4dd50c10618ba1859d2efd09ee12d0a553e724fdde88c7edc3f67ee81e296bc3d4a4a618b040da4f1728345d094000ed01e7d33fef52a6358efa1ec31f99a203a23d015acb6632c338059b921de4e8d1f757388ebafc6c71e030c93287cb6da9b006760eada86c23081bf8ff8f52998da0b9a0f2c3c30c3e1c79e9e91c5199b96eb5f6d337b7d3140e48e37a7ce9b37c0687fa2e41248ed5eb5534cfaa1c4f4de762de0d5f2ac401f2b1a724a3ae656d72295322bae5e724f6a318ec63e2c19cf29d0b6", + "3b5f30c2cd4d9c70100d71be33394a08a80b4a0a13491809ff0ea4eef4352c196cd59086e8a06e19479a198dda5a7cf962573326e25ad139a94e57de85ff3528e4517e17c65a2416ee7cf448d3cd7096f11ab19dde2bd7e086f0bb3a3c389c7f2cbae528e75cfa111da2bad62fa35e560ae245442bd6908110c11b84ef79a87fb0dbcd6fa1c1b42bea1a6715e0190769be4d6ceaa994ff9b5b02bccc68601d189bc38f2bc90e7ec74b5fdce0a1e1bf8cd5d8f4517bbf9fc453be74f9e0bf860609cdeb3746309ea6c02e918d0d86f71aa38f7a18343b4a", + "03421a6d46e6475b39e29e709c2acfbaa4366102a684a189860fe391b40094a8735ee996507e1b3a5908559a90eeacceaca7cbbbd47a2a28660cf77abed1eda35ab9417a34ae1c3cc2f3cc2466fbc4660f434ee70036bbde02f7b3ee1035cd8933d4847334fd1cd9d7dfab2a4611e86f9e30e9e81821d6b88bfe0a33a28707ad93d428807998e6c38197dd6953b683712a18193caca74ce0b253add10de8644eebb2489276a788f4e586d172e8a93b54a7bba730c7bf9e5ebc0ef68357b8498cc6a00be5a82643f721e41c7c913dc3347ea41be11b6cc4c1232644257e4336c26c4d8397e5daae2ec2af7632dfe011bb0cf1e341e79b7de8891dc0b645e76a1d23b0037febadce", + "370bb19943449368f56662874deda469c4caf5eaa918293f4e460a2042a2a9b8ccb3a47a87135c8bbf581c2839e83e9baf1ff9edb3622d9478eec29dc68a83327e38d3e7470d16d36c5f174f8421ad644ff79115af710b30be7fa47085f80e2056f7d6729bbc38598a73aedc7ec654ab6af9ed8d55b060d5d20fed13f1d36ca21ff13bdc59ae07e92aa240d340518d25869fda3e82c8a46e30438c61e4135683e65f7f5501e698a04ee33223f7d5de7cca7322d7df061b1d02dac6f80222389e7132fd52fd9aefcf6e9eae3c35d5d2d9178244e623192a" + }, + { /* i=1581 cDividendBits=3839 cDivisorBits=1888 */ + "2457b8431c0a3a51955df54213ab1ca9d7cfe78272580c21d869a9fbdad8b7b6caf5de38f74b3ab591a0143e964e9b8160a4354d81bc24d62dab1a3e52eb5673e84527c0c4db5bff6cf633a3256cf4754edaf4263ec55e16d38584a513d283ea97150067995a5ffde46d4eb3d3c1452c96ecb3ef964e156028d44f8cbde071809d1274a951ff3dfa7bf0bfd8dffc935c34217f7b5c2997b583c340cb84e01c7e38fe729b75c549ff8d35570c07c175c8d8cd7192d27be1425eac92cee13a929376baaaa72a7fc040d2cb364ac2548ae9e0b72d2000bd6bdbd05b44f38e051134d12c2ec83f03d9760452749be7c0e35cfacc404e1007b3d88451e9f29fbd7dd75759021c837f9f48839d7588b43cb937211548693d26396b1101b50a86864b2e34c6202619e92e0584494885760979a40bcc78986cf38946330257bc94775e66cbcaf573d2cba5d805171f38ba5b4d4cf53cf3bcd13ccdb578674e99f496dbc2799a6fd66b1605d6dc3b38859144e794a5569e7f44226a273941670fd0d3ac0eb1ff80ec08a9fb4b746e4ab17be2e01c2586c6a205553fcd3e5664f8940e8e5ed89101a197e3eb68723913446cd252f67ac02b15142469011c3ccde0972234958fe801d2fd992146be542ef3d801040be4bac0f0bec642361da58a517caa3a66", + "dad74c04a73b757460c024d1674704625aa689d4c15820d4bfdb262796dcdde4a83a30bf41d59b2fbb7e03b079462f97043abd38ea541d2a6964d971b442f8770ea8c3b17c7e1fdf49293c16ef94f8ef980d51afeec259f3a1834ef44acea5af9037f4ef2212ddae7711b4e4adf478f8e873293c00913e6195fc0cc1449c96edb5e385510658f722abf133b55e933906925e80c0923ff0c9c65bcd075c82a789c3b87aae44f00ea434170ad35c723407e7553578145a3d54e91bab2cc9ad7db89344e6c5dd2b41cf97a5bf4a0caf4de09726cff52274510c8e0c11b58f38c219adc1d44f0e05d6cce12b1567", + "2a837b8d8c8313d8bf683cfbbc7d974675efab80b1aef0b0b61da74961c8a5c4eae2635230d71f0d6fba814fbbffb1ae4a69459a6e4aed16f11affae880f1d8090d90f75c852cb2ba222dcb5f743f363a8820b0efce46db9259e56c4f48b39f7de470767a3a4e9ae12aa6470e16451c20649eb4f6937a98f58b2c7361b4b6d95754cc5bfc5f309fb58e9bd82b55c9df0f780b2fafd79673a8447986071adc3e61a9890e479252d372eb8235ca70d49a64782ea92cf325030f6f208aa7c3d88f39003da970e0a6b2231e10cf8396c1b8bda2ee245950f1355a8fddb0138f86158506a86aa0ba1e0e7fee26e48a24fa28694bae6b0", + "80c74f645da5d19a3146cde0960c40f13478e552d4521cfe7afdc807b11cbc2dcb3148fa4829c1cf19158208c54e2661fd2fbd9e319992e903f9790b746edfc15c6cd3e2d493e8e20dd925956f146bfb18ac1b7cd33cf7edadc95d138353f12be9fb988c28b4c8f9143368dc8e3f439ba66bc79cd5db4cb378164e886975cf5cda6d6fd44a97e5c987bb263be6cef7c0e35dba6787689734d934cf6380d3d359581b35422cadbb481f823849d99c201370184cc1b1457e4afdea714dcfb757039cda34f772c46585049e3c30494df9edeeb29d8eec7a9aadad032fb0498858094848984ccebbe792e0faf996" + }, + { /* i=1582 cDividendBits=2665 cDivisorBits=2017 */ + "563b537d0736c3fc2cbf5e282ebc9d434b87641f45263cf0ce616464ac97ad76f7e067509f087b3e1611ef9af4ce3d2bfb5db0dca770fd85affe0a2decf50d1a806aa2b40d35cfd4188fe2396de6cca4a2fdef9a3c99735dfb692434680302e7765b846bcc0bd736927de0ad40e15c914dcd1ba138b7ba2f643ff47db32f0f70eef676ae43ecfc48aa42dd2b41ce63bae1d79cac99c78fbd8c6338da1e0242018ab8fa9d75e27e79d616dad88d0264c5841816e68acf9c0ac283112b288560bf8ae8d69e2777172e16661b5a549bb040561acc0d3f21e87dad6853d6a6a41cc7556ead31d8520222a48955fa957110dd830784e90fdad6aebea586874b335c622de0d9b0e39793764cf7fa5eb1e04a7dc1a6c016214183fd6aa692976d81b7f748c73aaee45697702449655232a91d4d5549c26ab3de2b147ba0d198cf9eb7f0131827d5918ddf7c232d1d5f4a", + "c84d0e0285f405d643eb839a63d6d3007ec260ec938742f94944c1f5614d3146de695c55901f6838e9377dc3703943492f94740e7f444311f186854746ac24a7aaf3c20a4d0ff68819d3fe489433f522c82df6db51ccc75e9952a3120b5e39ee3cdf9ccf1104fc62939d6c57c80ca504485e02a26ce9dc3d366320c2bd049233c1ef2c7ba2bc71592cedac594788e4b66471f7247569c7db7285a29378983cbc7c1494836dc010f67298d81c61b17f299e26176325d106640794f9aaa86989c56b3ac967f96712d5fcc95969ddf271f66ef854bf55fc646013b2a572f56e6460cca5e8467249069d3abdef63ac9838dbb3c70cebbdd6c8b98a79bedf", + "6e35f4c5976e9be24f90b6ae7c0131c987a80e424c62663e8e3b354c0b157fcb46b816d13b8374da4328c3701a1b4e863dddf584ae51a178852c63e7f5769c1e9fd013a8a4d40b980bf4b65eab24546edd", + "6b178c411b5fdab4565e07572f67f85839a0f46003a3c05d3d36d2bd9dae58adee5add887c07b6692d7d0a066e22784838f84f800bc270a5ded7ba040de7d236595f9b459cea28affc06a01105ebe9891e010c98e9a2ffc5b00b431f5f563346c33f2ef5b65331376db5b172a23eee3c77eb4c499d6aa499c0503df18e056aa8e3bcbe6d77537f94bcb6c382405219452d78353e16e50fcf80c79afc2389b03d8b7ebb150454b9c01f1d965b1ebe17de1c8688832ef3166e8e3bf61ae439cffb51d3a37b53545d326849b039cfaa68bf19bcf47aef64e71d3fb9eddfa87aa0c10a5944607523b00872de1b67b0676a7ea58296f0fae78ab754d3c6c7" + }, + { /* i=1583 cDividendBits=3659 cDivisorBits=2766 */ + "07d6cb68fef0b9b0f42eb095511a276d161f667d93ec192bee2f443625aaa9d589ab88bf50b94f517e5db9d47d401a8f5bb2d80535dd8d85c1bf2ad71b23b8d409fdb425057e423fca91b74d0be5a0a5e6ee07b8b19203cc5b820c76e7bbda9caac2868effab26d62b5a3e161549f1793f5b3cba7f4d1bdb5a006c9fbc77302c12f068cf502f8f58e0750f3c266eb96cd50c4c9cf23d0078b3562729809ba232cfaab65ad9e98972535d9ad706c9be7cdd9b4b06724cef651a0ec2c80b96320a06163f46479720b4bf8a67d603ade4e7c8ef62e43c3fa700699ff0044b70056109771f7e8254bada5232f0e14f56f37a9ec587fd380dae3ccf5cb3195aaf4add3d50bd2f34d872622e72cc7f48371501db5653c80ed37d2067dae7fd22cdcb43953ba63e07e80816e2575c8d7ef6afb9f6956e96f53aa6d6e9898c0006f19f252c53c7247ce611c4e008cd8f9e4dda2e4e173cc588c9df3b443da741f60d4ef019563280e49fca5bfa31f3ebad71117d6c56edec58ca6c639fbc559c14ddc24d6b667748792847ce2e28a89fbb23239ff0bb85ed5d1c6855d1f6efa7111caa42ffd1b1d1a3d2bc7d22b507a8bab231e613211a7545523c5352f345954873989b0d6368a9f4f412127ab7", + "2cd8361246fe61dfc1436c69693b03326a31776ffba49b83104f5874d50a20f98da1446c601e61507419bf3648145d194326bd99b731d0f96f8be7565d2388819468020d26f8c1afac8dd91f832f8dab15c8878ede5eaf46892c47ddabb5e90d2572ba84f4d9bfa5789a8ca113c06599f9ee41e3537096ab1165324e3670752558f4a08a94e55711b3ec4a8b294fac2cf74341fd9463df8cd2ccbe3ddd2c0f95644b6f773ff464bf1a6b55cd3e9a9a3992b5c5a9a2cc9a68d49937c9d4e7a0d95df4a35b5833bce5a3ade29233d619b695cd47a6d84e18fbdfa5d023e8220d77c59037eab56f3d9e1208f495c5456f1c8aea671e6211e25628d428d58d8fd1d321784ef8ad487615f7f5c36f67b8657c98018b353bdc00020f719ababd2b2ff1e2fbbd492fcdd8913d81b42fe448aa2f5ffb4d33cc8712050e86a1292d7995da8a11b45d993f654aa1a880ed8ac9a2a938bb93e0451c94870914", + "2cbfffc2ec4d42637f11c3aea92ed3a61405434f06a02b9de9c3331cb822f1a0a74d96943c5148eb1bf9f5301acf25714a926d4d4bdac869b5317d6a5f5539fe5440ad3c425ee8377eca9f4b32fd89d742c8e68eb22eb024264b815362559804b629f0ef3f8a27010039421bed9b678d", + "2a9aad8cb933dda85effcdcf4b473833f57f1a1836b44198c45413c571a7ad1b868393e976417736d2a2b3a8a153ac095d720a1b8eb80733c1a20667255b1a81e288385c2e3a500a9cd28fac4a93bf4e0d17dd22b6b8c9e7c6203071c6eae9191d32cb1d4a0369aa7f011de378343b24cfbaec3861749024dbbac6543f894c268189812dd652725df001c57b8ecee6bf4928ea49e73c7fc371e2452f72808e5ae5b509ff121a501eb1bbc2e08a9c3206703902fbe9a2b2b48f6ca68074c31ea27424369136faa2096d2dc5ddf65669fbb5edcb9a65218b14db49f75131502ba8f6999fb607613f91ad21a1c9b21473a2362c29b5b7176d1bd299d17fbce6a7d8d024b324f266d5a8245090016eae78e12789e79ef03e0a9b5ad63228fde44c13197db131db3aa9345611f5a9b2e5d6864b56d19230f76de024f94b389ec4157c28ae71c81fe9c6c5d9979ada26b024935d5aec7d562debef6eb3" + }, + { /* i=1584 cDividendBits=1146 cDivisorBits=1072 */ + "017e06a4797cd4263d21828f849459258f6403a1b0a2a2d125803ce74b3385ffa85342d10c40090d7baebf92951811d3db1524b27a457aee1f947ff549dace920cfdbf15a046267c6db50b15a4e43960db56504a8cbb295e998ea83455d232bbf3fca4b465dffde9e91093d32b98c653748e2ec46b042969808796d5d8bd84f15a1a5985183e6537aea788cb46d63959", + "28995340be66a59b4cb9032869829bcc07777c6b11b34bc427f80655135bfb1a99021590c49b1f68a8416cfabc0b381c27a16782d28fa07b335cd9b6e804976ecf0f43edccc5c1a6df3f58c0e3be0194be35cd824164f0c06a2f709fd6b947f655695d4447f15f1d0091e3a4b74ade5f976302d58dced0650e7dc2346555e174fe1f770ef7c9", + "0968e5b1f5fa0d77b8aa", + "172160a77d4ee5b2120c1aeaf9c33b73707f99fbbda8f7b69d06d877d798a4aad2952985bfc20519de09bd62ad922221098646d84fbcbd71f54dcbba1cea42f499ccb6dcdcd3c0e2ec10db011b020fc8aea93c9dd852f5fa0a6fe1c4bf304613fbdaa6c8d1c16d65dfa04fd4f17d51d6876b9334dcbfd1975f1b1fbdea866fe9b87f115e35df" + }, + { /* i=1585 cDividendBits=1136 cDivisorBits=874 */ + "aec728422de35b2c2aaf53079816d8107522edc46b4ef8be969962f9d6162c83437641befa0dc44cb8c5f2d050e9c609747493185f982ab13237127e5d925225e212caa6b901068c6d39f92383ddb61e2e2f8adcab88d4e2f7a51ffbb3ef9c6b3d1e4765bf90f55398d68e5759a67b0049fd0ceac1a745e39a2cd397deebcf6191f45bc70db3d5d5202cac12cdf0", + "33fe10b73b29505c7357d17f7bb11bcbeff32679bc4c0b239408e91513bffbc33397dab1dfffc5b634af93a2c79e22da0adafa1eea4ffcdd382e7a551c4c747fa47037416787953bc3dbeb1e72843dc63ed4629e4a2d79423f31f8e078503c3fdcc64234a2f51c5b0809ab647b", + "035c9205f1f6df6586d8821efdf80fb9693b89b834891293fb6db8d758a9746482eb", + "21d9491a22e80b24c395959062ec8b7661059cf076e3fa477f6e63164386cc4f9b8fd968498ee0e40fd17f7fa87b3badfc7da0d9ea0cd2f2edd9540f34a879a5852a815c67eab050c538d792b8a9f0826e9cd7bf868608326e5b5360f69193639d0bb7d72723116d34c6ab1b07" + }, + { /* i=1586 cDividendBits=645 cDivisorBits=39 */ + "1ab9b5f08b7d798717086db8aa82e6d0571eb75d174b671215e5d9d885cb5db0f15f011e63fd6ac187bbbe55854cd2151ed0b20c2c8144d680e1345f3b1c52feeba4e3ebf0a1eb8ac32c91b5f1465ac76b", + "7b10c9f79e", + "379811d8fdab06d9ec243747aca0919ef44f2c7110fb77acbd7608b4d81e6cbb92cdc5876eea47afde9c105efae1b7ac3267afd82b3ed1eb044f4c6c32503c2f89436e262998e60797b6c574", + "4c02f5fdd3" + }, + { /* i=1587 cDividendBits=3233 cDivisorBits=365 */ + "0cd84a9195e6cccbd9ccd5ca6148455acd7cda3222dc1d3cfb50dd583e02930b175f96e6ee1c80b1dd022bce2347126dd29a85e2bb5f62b2743b93a6904fd9026ec34299257f11e39b98f6ab71361b6e172800cc972765ef277e8340299890f0f03a1b13e779bc77fd4a03cc6793f31ae7d9f8d2f0f9f59a90f2d64f59feeea71628d70bf5f5b5b996570a625807ed8113aa5cef8af41d185235dbfb22568aa84596a873880a58c4a656ad9d3f76b4ec5bd8661641c8cdbd39d9b77706b00227ec8459106f770474ce2e5190dc4bda9e798cf58b229557d1dfb1b78bf20a17c89fee1f3790d531678594a86002827a339e429d0636f333977492e08d3ef5309f1a10b8ac2801e6ddff364ee81ab1efeb77ad1a682612c9b4aa98832f90fdedb9082b3fa50b8d8e10f75296172926c07035422310b7b8dc8b6e93776c93829af108ca6ef38881e400219a04c797ca6d05ab8efa7f5488504523e6d247c40e01fcd98cad73101adbf46079c8ef943c11d42fda216356e6019fd256862bf9219c1bc7d5c6f7d4a77eb14cd76758b35cb26c97bc8497", + "1c1c3e951e0c163116ab8ea09e42997a639d4c5368336724f5648b42321392d59a0ffd88ef7183d2b40a52b68972", + "74fa60cb2bb35372df254b61b398522f6648725b52e3a72d0413de033beef0e928ea5a0116a36569c52cbec51fa78c9b6fad691be863280f4141852277a807cd8d8532295bb766c6128a2fb915dd9ec1dbd9bb1cf3adaebbc4100e5f1b4b5a5edff618ec4e14fa68937cb4bd47ebbc95403884f1960cef9638d68d7f7b0a98008343074df97ac5a0389d0e1ac879b461bd5516e03cc2fd4dcaeb68daff0669a79fcb0bfc9d43650e1bce656530eb251e0132b39d1acc0041ee02df545f2745775707e9e9bb433d629d280e93adde8ac595a4d8ac3da7e550f3cd35cae539c40a4394abe9559c4f5b61d05f9981a617c0da7120fcac7c31a1cc87c8232b6f4a43e09fb776835443d783298f5547c245c7a871a0eb2c4e242bc3c5ed9a2abbef6c8bf0d2fef3240395bc49b9bc63bbaffd6ff43a78d41142cfe7cbe7ed27cb2efecf6c2a3e5174547d0615eefb84cc944f28217f73ecde176c38427baa666444a69be6de53e7e9", + "04215cc4c9a556b25f5387730b564a2d8f4a376462f414fe7da34a81094612b22670544858e107eae5992d9d8dd5" + }, + { /* i=1588 cDividendBits=1991 cDivisorBits=280 */ + "28b178d4f2504fb19d7945ed828e1b2bae2f1fafda788b4ab879be8b84c8dce4465faba705c16bd56177faff9a08a3c7c47a634a0955bad8dba43702841b0a39404c461b2ed2d80d05f62a9d9f3bb78ea20ed05b397fe0fc24b447b829f9e2abfd7be778c86de51e8856d97165af4ae549bde15f215fc1fe00790222620e981103354594042be2c46a7b5a0582d1b31e3bc4e4a828040a319b42383e0ddb43bd6665cb0e8b08192a24e09fc6c212b84324e07c8d775f28efa6868b6ae4501dc67ede450c189e29ce7af5b7ca6bd8068538d658660d2cfaf1d6a2b47eb660e26678b6aed99701509c08f8503116630399e7b80bb3c3934038d8", + "cb296fbf6281d99f796c48ded6a3c273498e7503554c4bbab9d5aff9d89a375c8edead", + "3346d683d5e2a3cd882a2be95e751352a3562cbf7cfe69410644f32130b4ed718cf655fa18a50ffb2e0ed563ccb788d61d79477ad656ffbd5e310e80dcf32b9e5041d1828acec984e419c44744bfdd7155245efe9a4d18a6c895e48b6964f007a5ab39554353e2bbe65abeb043127672db60c0cff03871e0633b6f79dcdb947d2d9cb15bff5c62f4f45f527f926bcac2f3eab8ffed53485608e0d0a8a7891475660b16a2fd4a655ecca7697d245d29ecdb6e91a5fcc0ac4f749547eb91315ed34dc7b13496835f4d2ece5085faf31e1fde8d2d2e42c5", + "7e3dcb0a8b2bb95a563f2bb3a817e7afddbf24766b58ddb7d79cad0ea5573317d043b7" + }, + { /* i=1589 cDividendBits=3396 cDivisorBits=2611 */ + "0264e483b3c26be42771da6021fdbad836bb67f7d0eb66222468d9618e8faf4cc5fe3d71f03eed42e7690ff4e2686a128650f37544f267d5fc7a4a3a8e1a3bf4cb689ba209282b5b799dccd14aa34bc26cd096966eb613cf241d342603d6a4fa2ab4889f7f5f4c493577d262a36f393ce5ad4dc1c40b0d38891618215c0972107dfaf33916e2ccdf9c664959e592b192bda3655941c888a018d8f3f2b493c52e64789a76c4767cc098ea234aa78aec20105e3bb1ab7dc30c4b9f727111f757ecd1c807290cdbbc1b740b3e9e666b8dabbffd46c7be073d4916676049b04b39ca8083b588b7c57a3eef26fd2521b81263987926c9491b737e62907d7b195669efabc23cfc59bec13c0f73d7e26e17770ec76f4629fc74a4945fb80eaf78f7cac9d94f9317f899d80cd8bbb9291c8caa29eccaee86f8f86edae354704d44be18d77b6836159af23ff130e12d72ec992b7780b16b947f5d59adbc08ef56bcdb9c0f5e86de0d4699eaf18d7e547b2f886db34b4991674b6db6b57c8f3449d9cdbd67d723d925b2bdcd2e5f206951326947100b9f3cea57337e05bdaf1efa9f5f57f77475270afc3b688332", + "04fa4f549dcfc22b26c6a4fdc148edf1a30ad9101a3cb9ae3b75bae197a9fce7be4b233db2085767f97d62c16d8972632078f2efb87791283852521bdfb49fdab17e7c5ae5282b82782c089b30e5e14d088f10ff33166e33ca4e315e5d1e291941793afea542a257aa52d0f71d7dce2bec294dc2d25dd8cb4657a1125ae7288132a643a6b3e07c9a52c5ed90072bfd590acf430c8d7e7f967cd1f7b8a0a6c05564c0f07b57cfe6edd5ded9a1450809e54e9b118de719a97ef5b08cbdfcef3e3119c2edd1d68bfa380cf27a0f81a5241b4036970557906f7184fec49057c69f143dce6353f4414a840da1ec0328b7eec92f1c6bfbe7caca6b2f40cb53991230b75fee8c4f1bf6400aac4ca518907650bb494809e2207652e9bfc1760f429e0b0fcf615149a3e9cfc4a041e41b1df6f772458f095ad8cec4ba411f152f2bebeebb6f833aa3d505ae", + "7b2039146e0e6c411985ba38f17bb1966ad5ec322f7d738a4ab632dfd9412cba37eb65b6ef8367abc36cc1267d9634663a03b12f3544a6aa51ca1012ea5d9f238ec72a8e0d1f3d4e51d30dfa6657322c490dead553280856571bafc9c970a4ba947f", + "02931cdc10d12808959b6714f889e823b151b8f35bb26f0069adaacba9407e76d5c0e9dd22f7a4ea74f0bd5ed8e2d89d206be584499773b1d0c0537d01d55525bc7227a5b6129177b5d62cf363babb7307f16fb9d937b0df81d017b44883dce2bea7e8fd6d1e66a75b727e8a0b952a4390e7613fabdf6f744e85c75d578b4f9e3c578ee0ee1ea3f3747c3ca72c827e17807698fc8e2979965705dd15b2b9e8681eb2ebcab91fcca85c286211b4811b6e432baca1de7ae6db046a4efaa32d426cc892b79e36dde8bbf057b8f44cf65c364d7bd0800303c85b1dc88e81cb1128ad54fd97c0bc19c0e30f508c19f6d0ca1d7085df8d40f32f84b9e3ac2e1f9170ae6918bc93ce2970588454b69286cecb7766733b3c9d5c1891d582e97a4b928ec1bacefd7bf0112372f8e218121c7e0dbafab7c227a4752de620141f85ead7cac1216fa4350619e0" + }, + { /* i=1590 cDividendBits=1085 cDivisorBits=695 */ + "13671ed57470bc50300a97d7d586e4e850aea564158e40472c104d2b2d39d90cdf32676b5ce8996e8984cc41d5fb36157394b1b399d3c19e23297f061e033606110f71a3fc85b2b16eb7134254f3418d690e9de08c443b197460a1b5893715b0d56ddf381a688df825637d542f7ace18c5c5b534dafa7a2a35517cede42be2f6f2914d91ebe1b5c4", + "7d8ded04671df922239ce9d5bee022ce8d60e1262c97b294cbbe7d55513ab970d80e67da67a9481dc539c516338e610a2f9ef6d206b134a8e60b8c51a636060edc9ecccc5e86fbb1d9a7bd67c0b571c94b982ddc47be60", + "278fbe88b76df67b0c9afbb8898f7746c10642fc5c78fc01b5b576cf0faf19ad91a24c4890bd989d1a93c564f99fdab463", + "31cd57bca464995fe6e6c8ba7ce7d0c3768e61f5120c995f80c82e4fa23a99b932d53979030171a5eddf430f9d8d85d727cadf96dd7ff0cf3f8ddb84d0ffd21a3fd8aa9e247ddf61bebc2c0b5b7e9af871653d8c8796a4" + }, + { /* i=1591 cDividendBits=3888 cDivisorBits=2110 */ + "80140274bd778facebecc5634400b569db8b0f6ab3b86ad16aade41c39745eeeb8878e6d414bde5b52e1c9e75ced1b8a9f269300108f920a74f2a46de8da89552f33274881178e86dfc97fdd3a98f878ec4165ef38cc37638453f07325089760f576a7e379100823e4b624858982b57bb7bff98f3c2591ee0f77bd77a0ec8d9dbd86c29ef6e437f3706ba4db6805f3dd07f917068b15aee16cd13e3e0e2d5accded7f409717737b4e16909dface1037d04e90439e8bb83e00f83d5056c548bc6f54aa7f535d86f4636b7ce0e341a996c6eeb4467ee654dfab95c5752e47f2c4755968789970141d9f073dcb5127a7068d1697b23cf77880d800acf59ae451aa50a9daab64219a8bfaa23d5719dc4e171da707628b35b4d0d18e1c996c4f370c9d780dd4f141a9a4df42abb22aaf654f68dfde4439433ebb27501473f85e0b8c98faf92aaf17b6cf5d5d2f711711ffe4ffa169952fbb9572b07859b177fc8437a017d7746c799c6504898654a11e659d82168c72e68eadb372731deb4b2f2193620888758aae428b68935eb19e7bdca961b594a8a489ab1fdc5285ffc4c1ff41070acde4c79ea38bb70537f268b06156639f7ee3d5899184395c8d8b190cb54ed5b717156317fbaa4f59dd4b7954fe5562cd4ea58b711dc359916a886756649052392803d989a", + "1344351c460e7b94b1e1806037ed02c2c477330dcf8f1ce42de568c35c1958991d4859eea34e8e2dce1c8bd7e3c8340f782d1193798d94f2c9408c682e98e5bfc3c75e88dd541f2d89973d9bf2314123e99c6efa65a9b545ddf24b2b3df15ac30919611a9fe93f980a0d9d4f69907cc9d544dfc25aa9be97943ddad14c12f8525a7b75e0693ab86bd188adaefa5c0057eaa23d0b292b56a3a50a1872f424751050af2b51313e05e07afec48d6ccaf50c99d95ec2cffb9f02a95e058f47a2b30908e935137c74bf32382d9086626c397c161cf30f7884a38547014a74e28041ab87ae7fa6eaf438c613ea4ecfc9b96bca937b1c93be0b98a0153a14e634408991bf3d492e36419294", + "06a5d1fad35a748a6f1eef934cdaa804d8d8b092130657c8802b6ebea51197a645fea60e4a64ee29a7c91565acf08870ad52065cc9b3ca44cd027af72b76d4587db8cda0c17f6c4adc5db4fb027af989738ff4b3ba9ac5ca365cc0d5d3027b59c90c277f4fa2bed1cab7b8a5207ce826e549277097eb49005ec280af8ab31ccdb6665e9a3dadbe306b80a5d9487b9de2a9d93fd76ae2ba77b753ff56a1fe167e27b6eaa94d31ff8cc273551eb5066ea77391de6c0745feec5e3d34905c50e6efa11a958739c9153476ba0a45b080c73fe1c2e569839a765125ba8319afb418", + "f5ea90c68ce8c3d72fa6d5f8ccd2eaccb20a63f02e75bd60aa1461d0546747706db3f32d1270a08fea061764f0a9aa09d2eef72e638e23aa83110875cd3bc45b5a432cc93c62e253f75e7a5acf255c56606f9ca2f4e1938fb0b8f5d1514e9dcd2b7dad577a0a456848f715eb08fec70797855788ac6f59c8c131977b8c97edd35cc6a123e26053c0e9f2d990373777c645146a99a39f0b83bd2fb5bab5296872fd6c102071738eff3694652cf6b19dbaa8b09498553983cbda90d2746d4ac6fa1c63c5afaa6e1f5c2b4617f6e363bbbfb8a94608a9dfbd389051be95ca765b10a54cdf2babab71c4f82f3a70a602ef6fd87d9724f268f7be0ff7ab5aed29164e7cc137a7dbcaba" + }, + { /* i=1592 cDividendBits=447 cDivisorBits=270 */ + "6f7efaecc46526c71e7bc41b167d8f652accc98867e2e84ca3db359c9979a6d0409aa5c789761eadf4c48dfc078bbde22d539b7eee84f00d", + "21a81bcfd4e69626ff07a564e9f2b66a94754d8d578c7eda143c84c00c3e8443c5cb", + "03501020a416d355d30a863445bb529de141e309478faf", + "135776e3d70f18a9f3c8ea3dc611cc50c6ade70225e0c35859c1bb7b521faa675548" + }, + { /* i=1593 cDividendBits=1576 cDivisorBits=1292 */ + "3aef54e4904551949815ca1b3536d7b39ffc7f2bc874e57f3d65e2418127771dcaa6b0bb90bc5688259976bc161562a9b9d8b6e86c8651d48450eede5d05d84a2fc7160eec2b8cd350fc24f846a89b96ab73eca3bbfecfd684cfd6676face3cc3c7644347c751dbcf01ada2574e2bc3cbbe3c761b180f1f17f751adbdfe06d7ba8fc944f09388a250aa472001a794d2f69ad75963d2c9c69f7000f411de65902b4d697eb3832a4766ce7621b6381ea0a11ed7a2d2b84dc1746638bdf49cc6e2d5f2028f8f4", + "091da4054c6863020c42105ab5d671115d5ca062f943a40c81dee0b524665cb4646f11dc9a32ae8dd444d85007640b6b2dcb661cac5f921eb5c39b819586a452dddd22d91ae9202d7916febb2414a9b5d048fa28dc35954144cab19a7672dfe96c02be05304af5acd3502dd9c3ee8400db40d639d1f62ac31f2e66c2ae701ddc23ee6f40260f66ae0d626829c4c3dc7146230bdcd6dd6c42d6e3731cb9a8b6605f7d", + "067713e9c90a012b2122c0195e103b52ce104791ff8ad3ef54f67ba988e8da49375d9d6b", + "020233f2f987bd7c07b27da609e5fdd66b8d14731e2a66ab33c7d458da6a2addc9ad65e72a22a5830eec716e8cd30af7e5150de3bc4f1f34b86b3a78c2b9fec21757977810ba68573c9f79c65a8ac969788f69b5d47ab914aca8febb04f37e13df0b05ff582b33178a4334a82631962cf0475bb09e3bcd0b2dda88f4a90d2b3ad55793e6fade0746248ca4521acdf2ac891de39094b192c5644d5c0379d63fe866b5" + }, + { /* i=1594 cDividendBits=1043 cDivisorBits=451 */ + "02e9cd661566d88269bd5121da31ecae19606e445619384670636bebae13cda7b5b5145fb5f34e9ba53a465449baac6898413473f14639120cc62b306f34b3abb9e9410bdca2a8cf8e5074af7af19eacf720ee41cad06092736a770ec2728054c81853ff69bc08bdbb97d6279d6d05167bf1d7ef7f5b476916ad0e5bd6edc68532aac9", + "f39fa5045fa5d68ded99e3b1c298378474a6b8f7cd1dd83581eeb1bf22c771c4c76cb5fd869fcb0713be3babd9fd0403ca4ee1d366d0f46e", + "030fb0a6aa49d805c2e7cd545b18d0f08ebce8ec17c0f38f4fefff9bb18bd786ebf0626602a21d2443c68f69073f506625ade2aaed526a67098063d7849fffddd41cf2bd0a18a3e5f836c9", + "d82a3d6344cf300edf821189503f7a30758e6f2fdd7a2a80470a3c26b0398515691b51dc21d436c44e51c5c613063122303e8ffd87038c6b" + }, + { /* i=1595 cDividendBits=3753 cDivisorBits=2451 */ + "9c0006bbf82449fdf1d3f8eea3c529a4af655da36d4dcde43771e34cff8574b84f01810f578c90158d7cfacfd73ff3037c71c99331fbcf334de480e8584ca4790cc55afd1c2ba8aa2f9477e8112055cb4d8f649098f09453170af55c9d323c19b58187cc86af0cb7a6dc7cab7aadec79d2d7bc1be3e3241b6db65672cef92b97074290d1a4bc3407cac1c52113def9281c97d89994994b4a0f2522c3b509e41beafda9efd2b3b9e218fbc2bf2af5211b040ca8ef6c0cfa9fb2446429ecd1ada0c4fd3ead58fb3d1fe87f2ca36e5c9c04b9f0f3d8a753d907e9dd0eca5dd4318d17ee9640175938a250c3d827717aace550ad7106b6d2973d81e3b6eff101d09dcb1dcd79da4a5ab82221cf9298f62fc7450b636914e2bd777303dfe08fbb2303790522bfc21a9d32c7547c84a6e40638db1eb253037559fb9823ce5bbf4b55f849efa6d5011e1614213bf6706a4e8071500b534f92115314e0034890422c195aa4d0a223cadbee5685e87c61ad49cfa70284c0543bf3531871dc898b657dbd1bf9609d33c5330b14fa54a310c8ff3c609ade7295fa4ad4aa7dcefc8038d2a34080914c8a722949a9f9f213bdd275439968087ce3b3300f1cfdfe3f384b5b39d90cadc285983bb23e94763b9bb3af645fe5042b0d9a", + "03701fdd697078a98fe00841a67aaa1ff0c71a2704767920f43f1507bcb5be03ccfba85080a2f08610fc351f7b285f07b0c05b72cb3dcfd5aa55b3b2c7646e0159d7353167eb144a4f79664595bf1601289a89198fa54939e8b1442081c31d7958a43adcfa0895ed6b74b5100d2028b0bf83d42754923616ef97282315aa4225ffc856828be140e777046fa21174558866ac42ecc70e597457cce63bd545873d5c167cea83c49cfaa181c6f0dbf9a5fb78e3c6e8511a97c4a303d5c782338b16ffcf0c04e33108d3df350c369c539e1cae7b5bbb052cbc3dea20a6fa4ddca38587348fc31a7539255ac97f5343363cd5c20e95f552c7e580ce2484c5b2aee7e5d50a1bc22e163458e35819d351f5745f231dca29ad0b9fc766eb4846629d10a01a718a1b450842202119418af9c1f948ca3d4c", + "2d601c2cc53fa3d7b6f2b007b13d40c4dadf8fa722b8ca7cd03a2248e6b3b7bccfff861a735a029c4d34f3754dbaa77545c692c4ba75a9a97f7766aefe749890f22078581826f7ee5d06c4d533a1c89031572d7e52a3bd51f90d245da2b75549460638543a392b7f03cc1947a92f1525671fd87a71af182337390c7836037065fdb4dccced8b17a67036818e01adbf463ae49aedff4ec1360dfcb6c2ace185c2615eba", + "1d018278f601703de7295519ee9d2daa5e40da43490450a94482b0ce5d5c65e766ef384b44945eea64eb6c015051616b7293e193d6f02bb38b77e2ec465e5de4209dfeb66d00efd7c8fdb0487fefa9f69bcd206924602a1c05c231e9a66a21175bbaa9b0727919e72f2d4105117ea0e70fb0eee51beaf59f7fded8763cf8f7b5c56bca1290a37d91e2f6efc25cfe0d6340c570b0895859c9494dd629199149229878b553aaae50694056a42604b1e1f32766d383995a27e08f72d744fa30f456c20bb6a60706134d28926b8180f538775971e2b10277f587020bb8719aff7460aecf7563c8d638853b136f4fefab77b6b8c81f53cf9bb13fa3f84752bd44f9ab853caa84433a5fdad72719df923e40b3fbb227f9b0eedbf3f705275c15ed7c5ce3d267fd51aecce3d59240146c7b0cec9c62" + }, + { /* i=1596 cDividendBits=691 cDivisorBits=480 */ + "045eee4baf294b63702fe7485be2c22e4b3e7e28b1c19de6d3999b8402ca3008bb7bc3e4ace14315e5c4342304d008311dca39805e57b5e53bb050959ae6fbd7277265d4213077fb7517b5de718c758faecb6d8145b74c", + "84824d4b8cfaf415ee835c81e466c91bf643c2858bf0242cbb834361ba418bb7f9a0a2fd895ca76f97c11e5ecfab2264d8f0e649dd17bef9817b573b", + "0871b64e601f1911d43603c7ae25e2d1f223b0a0528d6b739908c6", + "e0d3f1221365da64cc20be7d0b2890a6913c3eb2fc4da64e06a794e1bfcf41626deab4d872c68c6f8ff4811b52d4c2a0027a3fba918ad7dde367aa" + }, + { /* i=1597 cDividendBits=237 cDivisorBits=161 */ + "063f6cd3111d9a402edaff29a44d3deeeb7d4e83a1a4bab81b5bb3b50445", + "0112f15ce01bdb0646e937a89cb845922233136e65", + "05d13a9f634ef17c5cb1", + "8e5ab13adc7091b535820115d11c0d3ed9ad6470" + }, + { /* i=1598 cDividendBits=1120 cDivisorBits=178 */ + "87799d53dad0d5243bedc08fa8924c975d22917d74a24f9aed31e87aa58bcbc11b23b8495a1bac94b5a575a7bc528fe8917f544868d0701eeb80a9bb0407b11f27292a606f4e7c49e1ee326bd2bb66f66bf15d8611dfce5c0a09a8184e27715b09b67bee3e527c5649f5da7e71f4824f9d01e6e47ef994015d1e651b5d99f8ea904b89ae6af9de14ab6ea19b", + "01d58da1c58be3eb185bb3d1f3b4e042def56a624d67bc", + "49dc62661b267e6ce17ccd66a96f373327179c33479cf894d562e40a908864863fdcf3cf942277a3c4bf0c547434ec3f848535024d528babc84c8d76b2ce63ee112e2494ec185aa8da1e89ddc22558eefe7b2702dd3b1126f864e87555a005b21682734aa6dff3ca18cd9a07bfc8e92fd1365d5181e9", + "c61e7ea817eea08e6fea79b052f9d27a4de313397b7f" + }, + { /* i=1599 cDividendBits=2106 cDivisorBits=968 */ + "e944c34c1e894d5a36c8a20213e0ac8c4af842a3a39d17e0d86c038bb08d78dde964b22e1e9117745c81b5915e1585169559939d9b3ad5147b8eeb3aa5846829b8c08467755000aaa9f749100872bfeee826e01561ad8a0317cf975c53a2b2bc008d223580f168572739a47d4a83abbf02078e451d274bb374e92f8d13459e46ca817675b10ba01bd39c578de963050b76f6a30a72b7739c6bee4350c4df4dbca4656adac4d84e15ef98a3f73d33cf5364b4023c84eec1cd8d3b80208b0a2ca115275a50ee09f4626462191c72b4078a46082a6ec44c2fef8cdd57c4fc08799f199ad949009c7effcbaf49e0db972f28514241bed86b71630f14979e0fd5db389337c51a41301e", + "549bdca993e20080ac560e19aafe6fcac13b08d54c30bbded483d2b931b7ade514325aed422119ba013299137832ca3840059ec51453033afb51eb9a11c50ee30d7284c6e8c1a3750e4bb82c41514f0a8b912d7ba4e1cea1954314395401ae89a55840ee49d3976fe7caec5ce3efbd22bd08f52f1db80981bc", + "02c1cc55f6accaba4eb98fb6d48e626840b12a598ed5a4873543bf6706eaf497d63743475a9dffb7f24dcecb91b12b4cb3327fb1c8b545bf13bd70322b904463b2daa66564e31c8a3dad116a88385a6f81027b458250aed890e1b24117915ad273924deeafdf42f5e70848732e182101ad61f18319dc79bd37211113dcd9bdbefe9fca151bb65487d3130417488ef9", + "283334338c3a13dd755f2edd66426249746aea45be7df203e87c49927eabe3a9ff030a0d97e013f6d7164b0f16d92856675064d3e68290691c519eb32dda6e83e80e4d491a62a9e0ee261eaa6d12d7bbe6fac949f564de8c8f9a8cd865ab664b3eda42dfbd5662b5a72b22b676accdc6c4ef564f83722bb842" + }, + { /* i=1600 cDividendBits=2926 cDivisorBits=1251 */ + "015d41b3cbebc9cded3be9ab7756aca52f729c6ab0d691f0d59d2a6d701d35a06b2c03e93673e8b46d508ef95d22a69ab2f9fcfdb3be2ae3c221828e0857581fbcb200fc691f9cf6f8e3b43730537dbbba7529a4df73fe0a64a269535aa149949e03032dd31353c22630b558e743e0f9c284c8901cbe042dff4019ea598d46e371525dd43f77d35ab20d6c955de3ae489ebaba8d625ddea0ef62145995acda1256155f636eb145d58f7c64bfe8ff951b36a22637c35fbea8f6f2e4f3c604968ec85c872c46e67c8af06fe5a0beb2f47ab1d2a605e0786c708a417d67524b48d5a8c2b11ac8376784636daab4c262027c828c0693ce0bda8e0f078c54e0c6ed3822bcffbbeb7711fca6a28280c1a10afc78e8d42fe6367bb1f80862026ef32584ce506262384dfb3b0db01fa020c7e735a54c87d227fd66e7dbec13f1617700a0fa39fc842bd5b03e7e069762797ef66fd6e6a39893f64ffc9791e7faf75cdca02bea0e9f6afdc52e0391fe3b16d3", + "285fd72325867de446fc810a4789a155277194d3821b19fc811b9ce916ef67eb67fd924ab35c9e0d95894e1645166c05846238f973011e7ec7aaa243c11ef9fbde8a78e15226e51c014b4a38732208396448486cb61d6797ac3aa055b6617f834fc396d9a44a9f1cfacd43268777e6748422e98da7faba84562af8143228b3b450f1a9ac89fa2b7fba3071e42d80ce69de687d336328bb77dd3fe9a8", + "08a68417f39715a08c1c0b4fe1d368d41d8a4bc3904a364626c974e61bffa1a48929dc987bc79d10103602bd464e49ba81755e38a5b7f46420c67463030a9a600b34d3a7be984b61319e595f7c63cd605cc352d1c2dc6a67d9579bb7af159ffbdecfd0f429d1fc02b22a979483a65e5666307a1867fbe20ef0cb2fe609a9d634e540e6149f241c9bd891d534a175a189a62347dcc29a4783c6507bb8955379453a9c37217ae6e1e8a2bf5c802374cf060b13219f59ee6c751d35ebf70275089f7a404f77dead369550dce3d665b3dfa4b9b8", + "05c138efe359c575f6377fd16d6844ba5c3b2b934deb7487ea806be79ee3684c1e9f44dec8c0ce8126cf665941fbe52992de107d7febe9f53ccc4ab3786fe16176527bd875f16bab86d9c099ec14c077ba7a8d11b467457ac7ba59c8cd16e3152c11f39aefa1a16bb5eb2300c210de7237f0816a030803ffa4b32ec08a96403d5ff8a4aeef6a565f2f518defeb0c9298c731fee958999494c0d0be13" + }, + { /* i=1601 cDividendBits=3700 cDivisorBits=1600 */ + "04951163c244a79d255528e5f72445b4bb8f4cb7afc18755daa36b6a9f8da0bad48c4567dc017deda0a02aea0530c2ef64da575cd236242e1624bae5b3b13eb2b0ec3d710434a72c3b05e1f4f5269b0537e3ab5ecb3628e253a523d5901dfc6abf3079cec55fe1d3290a65e1dc804956a853166922507554c951623d3bf51d69c1cadeca7e6d1062015a310389482eb25243b77448b74fcca10ed52cc72b0b65d0fcca5d8470ff3581194ecce9103743f12f2a11327acf2aeb12a82a8cf05d2cbf4dc64158aab1f48f3d3bb02228d4742c3122e37c29979e814eb76bfd3f08d7591e47300727de5e66f60051a511e1f3e13891346aeb82d1521cb553d1025bf3c6bc6a5e6c3517288a4aad43bb0bdd77e9fe41d7336ff6dec43cc72461f0ae09e5e32097730f9933db1a580abef31421fd05a193ee1767135f150deac29551d12cc15e74121c90f4de48aeb93d8f2cda313b197d20ffa057acc5fca515288314712c25894b543e5a8e4f507642b6da66652e0f929d4ab79b1b0fb8ba27eb7637dc1a3273647429451abae738b53234f02b086991dc6a99a69d486b975b2c6e4e1ff1888e10d2a66c85e0a290f94df247b2e06d3f7cd0af30a90fe65eba219a3366284056e5d99a77af5a95c3a56c24", + "3c3781cb3de8f89a01bbaa071ac8dcb56ff20790b48359c9aacf5e61174a77e61a5c9d8dbd2a31c7c577ed3191462516f7a8d198be8c78a51c575d64a2d2722f1e262a9a863e33abadfe65a68bf0328b6a26ea09b2c80c0c2c02ce27a4c933f6276dfe5b6764d167615c6bc77adb517a77005886f5562879f34f48603b4f6cac7d062429a599be474b6a94dcdad77e3a9de87451fa8363f32efa1bfe5f11c4c525e052f9cd6bad0252016106b42de6d90bf6bcce5bc4dcc07879e9016db090cd9bf2c94b456a1e02", + "137b1160314346464aee4009352eeab6cb6766cdbf5386bf2164e8318bb12d3a9c93ef3c427c5b66505747378c2be06e56050d456fb788e1d120314b27296363f8ccfde8e9ed50e2bc1e1a7d4ddd31ddebd4728f080b0560c07130ff2a70b2126733f22041bfaef29c68cadf6624f7b979fdadd16a942e018ebabc40d7d4b30d9d237171e6bafe25e2033ce1451003750c1c616f70e9eec410b60d8901ea1406ceaafe1bdb8204f337712dd764222f0ac60b8faf100cc106b2bbbc18bdfc59551cd28d627c584fa46dd85a1d9cea32167122faf797d148a1d8a48af0611862faa7e44bf7728896e29433878d7eb043af8d132d540f417701cb45ae8204ada6557f3582f947558a", + "1b7fce0ccacffe9345fd6fbe88fd33b41213f0486e5f7544cd42687376a8d5aa0e539b7ab98ff9b48c469d9eed7d76041dcecba5a7f7f746d4aca6d3f801f2f735f2848be2c50518eaa0ed4a7160a6a5d99ee5d06a0d5318d549d76224243dec1e0bcdc5923e79bee783b994ce38806a6ab5dc15c32949afcf7aad71fe7e27d3d48a8dc1f87bfbe3e1478de3792f195fc2ab4d708ef0a580b7297a677ede7a5c9fbadd340fa980da3a389d67a2d0ca02b640c4e2866bfc81421e8a4beb74d75cfa7cbb53d7ec9510" + }, + { /* i=1602 cDividendBits=3183 cDivisorBits=1722 */ + "09ce7f92360c32678b64c73693c34491bef30f5acbfe025f6e51960eeafcec59228d778b2030a64df45468b219e72862508260959bb1ac2924b315708e5be455845884c1eb67d4302484817d178f6f6a1c845d1c3a721131c6a1e0ac6bdebecc1cdb480a0b954e5b800b5b15667fa6e61e949689242cb47f01cd938a8ecdd95ca631a108b56291e86e699548ed16e938834ff7f1b5b5a3b29cb195756cf97b34e0abf0dd2867119b00aa847e41f5bd150037a68f8046d1741884f1a08027bd3f69e1f50bfcdebb340933d998b88ceabeb345b4f5edfde83ced4e7412afe2b550229ba588a57069e44be6162e0ea683b004572c6c7cab68b58b8fffad0569939875245830fc68ec1ef31fd6fcda96a975e14afa898160cbcb454ee321186baa25c90e1f4b8a326fb06d4afe87b58daddf913a5a1a120834b5870cdff701a0a8a083054b10f85100dc23610a6baf4f6531652de34a1f90cb3c5b256689b200964d57ec8968cdfcba8bc01d8b38506402259ac3e2cd5dda77646f4d619b1f6020a70bf9a819a3f7446ceca337a3e12a", + "02840c67b883384beac079bf6dc524b267bfb5f43b854374b451a61bf7e3bc0808a17ed7781c1ed687b1e6065ee6774617a5b998d99e4737cb6f4cf4c0dda88e949887fb27d50d0e9e388438959b0ef3ef438b2c12fc7e6e35adff7b8e05e305ed5706eb58955111dfd6caeea695bdc130d849b8be471d10d6e050e132bcf42158e07ff18c93629b25c2ac6cfa57dbad7a1244d1175de48ac597ef38601d87b4e2224ed5e74762d2568459823c1f6183ef463deb176093b0b4dcf17a28d6904331ed17a49aa95d121346477adae83390a0f311e270645754", + "03e5e31132be7d3dae10d567020875518fa469e7faa113329d783ee34acb94f9a3298cb166cac5da51155a7ec6a30d30ab5bf0a7c8492e076f549e15b15419e51985c0eedbd9c9aa8a393696a1086c9ff64bf92b266174674d8b4d06a1557928192a5f2881ff47ecea6ac65e5dd3340ef9f849f9607146f033c1ba7044f258b3de516f7f6e87f0f6b7c156992b7256bb4f912f3cf177d7c1e3bbc3d2fa0316981d52a9b6110a90a3c633848e4d09c8daf0af3a6ff2332f", + "01229b7ead9f64bf6820194d9b672047f1cc78e39bc35e6218d5278c1233d93889fa72c3d46a74feabfed11686827b221abf6c26f5d25fb94fa5cc8835a961343551135295b8820cbf068ecf0191495eaec0524162b0f8d8597adaec82ad46834a0c1220f7d2396eb39b929ca323cd5274886f39f1860bf0ef4e8754bd0279f2463f2c715f48bf689a00c5b60f57523f75e6e4680fb24eab6ba8444e8989da290bd510071e8f1c357f8830e5be9917cade2f85d01053094b9212521f1a187ec04ce795ad6320716badde3e4256abfb9fbf4491ec9e6a1cbe" + }, + { /* i=1603 cDividendBits=3516 cDivisorBits=1670 */ + "0c7a22f3e2ff0ab2d9f8a25405eb925e601f79334dd8ff4692ad68b3213355c52dc5f87fc3d7a5e8cf13bcdde989eacc84d5592372c9848d6969ba1eeec3a4bcfd1684698f8065a60ace5f970fc5205227eca119cd1c2c39f01ac9705e344b2884b5417d1a7fc747062c44757e3c85bcb66aceff0aecf70a48600a3b42b07baff53065a89593bc3e072708b1fad445f7ed98c3b76a61e85f021b28edae1114b597dd1816557af082c99340f70f13edb540c0fe3b608b1d245b5deb5e410788b60f8d463ec9d19d96b36f588816095b3b9e8a6340b338998e98b7bf61b5d82c21efbc1af70d3164d818de75348ef1907d013125cb17c6b008f5aff96ade79ab49b0605516c590b45406b0fac1e8bffd5b50472ac609665d854f1f2c37f043628aa8842b4d53586214ea367de3d89252641930ef1e8ae710f82b07af1cac001f24bf9050911ddbf24d6415cd149eafabe23310389a79d9e015ba4a3bdd4bb387b359fe6ce0242fad82c6b398507ca7991c1c84131e8366992fabd91cd5f8ed2f67b766040605ceaa4e33161674642211f2515cc72158526fd8d7ed1b2b8c966159269c3734dded10dc28582da59debf3eb62f16f54dd45594c", + "3bc8cf82ade2547964811d3f957221975e9e1897275c0864b2555a7d1b3fdba551a4890e76b896845c4b92483525076efef9ac5e8cf2fbafd897f62eb27be0a0c5c1522a3b14a26b25ac0e37a6431b41560ebbc28609ea7a018a2adccacc246157d7ea153ad9821563455bb3353732e65fb690259ba601644e0ee565af05ea2260fb44546083fd54569d5b623fb251d6202035c6aaa6ec411236e71176b67933017781c265738ec20818c34b37d15cb7e0fb93008440c3d684ea1049a4f5543387816a66e033b2844d2bfe7395e8a205a7", + "356d75b6d95443236f0465814542de64eb41f9741b4260d989806065d679b718849a66f29b1f076565950ad66cbb1e3119ed675948b9dbf03851323ad121ff9781c75775fdaa00f176f1f9fceb4a3dfa263bda28185d533f6448a0767ebae603af099497ae808c8dd872e3c520783c6bc52281f1ec0146bb06fc1fc581428808c0de7e3517812e83318f13123ae750add3cfe414e08b11841d887f9aa5a959acab844bf869933184a361af289ae3cf45575a278888a724f1c8cb1051646eb403dc7ca94e19d3d89bbc2b545f773967c69ef9880ee42c59dd6d9bb45e74f3ca108d2fda1c8607ca", + "28e88abd65682a2fafe3e3704d423da2bbcbac74bc938f50e2bab913438d6ea205c6fb9154c3ae7a91aa1443be0f8265a0456736f87a822280e3e30ee575c10d941fdb78d08c552a254d7346aa71c188aac239d4e13032cff7309b9dea3fd03775df46f132b40affb034120a44fdbf479823bd6da79c6d1885d73a651e24e83a4d362a28e8c6d49d1d7683e501cda59f198dcee9d5df4383b34e5c26c138fd41afec5ef59fb62ee3b65f26c71fcc73c91563fa47df92e8aca7c1d4bc89bba148df5cb5d439cd5867426b1a2b0ba5db5286" + }, + { /* i=1604 cDividendBits=145 cDivisorBits=8 */ + "01110b198197d9951cc83d046728c4fffe7728", + "12", + "0f2b4887331a4f6527919cb065d20e38cdbb", + "02" + }, + { /* i=1605 cDividendBits=522 cDivisorBits=281 */ + "a9f5edbda73b2d3a5391d45f5a82ccef004f235aeefa6b2525b2d563dcd7861289c6fba871f8d193ad2b3c83b07a7fdf8efc53baef6905cc7c2b8749e9f595fa5b", + "5a1ec6ef9402ba45788e6e767d62ae083f0981746ce97f5be3aebbb01a67efc0ba0bb7", + "01e2cc792c06993c12db7f1c5e43066d5ae156e049e2f36d00d0c237a04be3", + "05f774f2423acefb0e983bcd2798c334575523cf8e082c0e28aea8ade7e561ebcefa16" + }, + { /* i=1606 cDividendBits=1278 cDivisorBits=552 */ + "2086c9b50ad6b809c52fbd43e770f09c286dab819936a9dbd7f726bd54f1325628306db0596579a8262309a8d1bf887e2785b19e0073838d195adb102a0df16cdb34cb2c0fcdf2cc11c7e6767649ff511a6d57c81943733ed7b1d59b0bf7ab0485d587b629d0991c0e698bcdd3bb2fa3dda332e5485114ed6f5434f4fb3ff30bbdfc09ee5bebf554b5b22a1b6ec9bbc1694df896e0af56bb74eea77638b4e9d1", + "e959abda47f16af0d85feab8b6406b251705d14783d8a400edd895f4e630f81c853b59b0f263af80e1e89ad19003cf6505ee5fda910d99607c527b1d6262392d11d71319d7", + "23af03321a9d3643564d08e46658d16949f6a184b5caf3fd11d2a407928eda7edfa7b85055b37588f92928b5fb6f5c1e6bb502c878a915cc6fc601cd4373542f2d2f09c4bbf3d242280ab7cf6cc991932f62516c35ef717e9e1026", + "12c2df0c4ebf09006bf3a56e0190819bd59d66ba00e928198c6ac3846c0a82f39cccd04f5c2e1999cf14c7b06f2cfad6721c3c42bc14ab1c74395b72f7e2b193f6558fa3e7" + }, + { /* i=1607 cDividendBits=818 cDivisorBits=307 */ + "023b1aa6ad99c91a314b667de49ed1df09692a41f5ae757052a136e6a4ee9c0eb4ddd113b0df5333f07f6cc92cf19de09f1b291b47a9488b2766c5f2f789f0d19d8b871e55147a964c10805f11370985638ab8aa4ff2c0ba5d8f4d38e970e32401f2d5515e9f6c", + "99cd34b20919f0d90a6d2ab50124e4feb1b6efd057058087b5a00b68e827432c6996cbd006a4", + "03b697b593ba44a437a4612a848bf814f3b49c647b90239a2de6593af07a86b76bbc3333bfce7228873109635a9d276bdb9bf3618303cbbe11bf65278c6dde3713", + "5c9cd2ff131601a71dab8791bbea474acd0379ee6dc3a45c07e803e11ea2b5ffc7f0e948e540" + }, + { /* i=1608 cDividendBits=1389 cDivisorBits=1194 */ + "0653f0c1b0d2199d9b95afa7d95fd5849316873469741f2e4994c5b841c9f3239b4f63ac62847f60ae0b7dd8d87b8211670d6641b5dd88c23cf53666ca700d24adbe778eefc35b0856bdd2aceb62c86adb0c83eb3eaaf711187546c7e8d4361f262afac1e31bceb541c71ef0661ead76292e13f4f75f8ea29f3a31189337a43af10b95e3f45154d232dec2cbfed68ccaa3d3524dab01f1f9b9383076da62397c4d03c773de12e6ef612ab4842d38", + "02e472d2c3aeae130616fbee838a63dea098c6821ddcfaf16afb82f17d6c5d1527123673d8449ae68689f0d3f8ac2b3a593f4b2a0294a0605ebdf5bb2a15551c6f27f1561b645e30393d246e93edb094165ef2e5df50fac6eab7e79a98d2a4713d36024ecd68e7d54ecb1c7aed3b90812b678a9c9c988377168ecb398ec83e3115c9a05015a2e5a76c6c768e372683caa7065820c9c9", + "0230128657c34d1bea06245c552791f1b8802cd7adb36be4b7", + "02e288a9d0c390ce838c2ef10d8e7b1da090fc02920db210e65e12b85a2740eae8ca05a6e25d95aefad1686ca1e8018836d2c1273a95e4695204767b8609480331f91e0a67686e0a2d397fe402bac24f2dddbfd2177aabb8cc4a46572c9f8db1ade0381c1781ad4a3e55e3d79698985645611e2e8f2d65cad5a89b75566e47c40fb66a2771e74a7c714220ab5c60aede66839f59ea89" + }, + { /* i=1609 cDividendBits=1841 cDivisorBits=70 */ + "5f768f124d8ee32847c200fbfcc97742a19a155ba51acb3f7f82b9f6df1c66bf2df123b3798c8fb1142fddf19efdb9f7baaf24401f3044c9daefba2da168391300f2cb35e567a61866b5062ff670b0fa8242413d7a75fb56aa66e007a2b42f48d651b3e3b8a3946b93f7660d3293f40ea534f683adb514937b591c4e29a0219e9806107ad391d40060cceaaab02954eff75443c6237e1e65209135de08c34d0c0d9346aa14ca1c4d351c0eaf4036b0ea69166405765ab7eaa0da6812525e95bd55ea1b6691a75b8ade4760611e05751122b71af9794e1c8b35a8d3bdefdb9d86d244861eb73b", + "3e1ec1edfcaf027d61", + "0189686eb524a44bebd26d37b7951ac4e99dd205ecd3c70700b63b37b9010642ee731061b1a7f2cab7a0c56b624f3ae2d0f0e01d658d083ffbc7c0b37128441c5903c9f08be8d8a782498abc4254b8ae6777259c8a2862154af70b735d47e05cb7a3629fba00ff76f262d6ad0b254fc6178d89636637e465a0df29f7dbd29ccc4becded3ded44130dd88fab3b0883aad0c239ff428a795505601c2813c7629a30584e1617fa8202981a8f9c03af586efe82bd8bc9f25ec6ed0f74f1fd6255ae44bce890f27266e40ada1e3ddacee57b79ec34fcbec385880680d4d09f167", + "045f5f841f2eacf434" + }, + { /* i=1610 cDividendBits=2829 cDivisorBits=1753 */ + "18306f1e2557b951be067b789c9f211fa018ff08ab712910996d112d7bd4d6b7dbd72280e66e9a0f0c3574d3e3f182d161a353d165c69819fa0f4eb67823ddb8aab9284ced9be57c680aa022df5c1c73bca81c0dbfca2641e3449a84c236e758d1d2dfad327292340d656ac9e9943afa8bb895a2115f56882898b7df2c825337e25875530188866b026f5740b5b5662c2d0ba3738e85cf2210b4bf72c9e589443f9eb7d0ef3073a71d534fac1e989d0fca1ce3e7e62215666deea3a7b7426a5271696fe979efbb9506594b168582a4c2f58eb7033d06659f89defa3983a4e041c94af6ecd02ad172ca3668925467e8e57479f7e9b17dbbd1b04fbbe38ae658f99d659940c0f745c6002693165d114bf0f6ae83dc7763edd0674febe821cf7e12b892aa69074c3d13ce8446438552c06797fee45c5e33a255018516862f6b933dd0ba1a88895932fd962383b087f90d95c62dacd83395e6c92cec424ada5dd47a263a", + "01ba016efbc02dcd45feba414633776b062963008eeed4d3f354bae70d3fcbc42aa42e09be7af65eef9b7ca94b79da66415e71cd34edc365fbf8586be3c588da9a368650fda4c89eeb5fdfb2b164dfe290216a1b5a6bad119bac5e061c7fa38d84069a0f758c9553801cf181eddf896ae216d17ac0f47d295294b5cd8baaf2e80b1403e02b1d5c3e37b584a077b64261fbd3528082e18e96dc797189ba18a0d609cd0e01ed0a236c033747d26e684a80a4bf3916c7e6ddc18153b9c15e53d5fa63d44a07f8c2639c947678d8cfa958d3a4b113ce23fce21c0dd08a1d", + "0e0285cfca29271c142e02010b148eb66c2017a81011bc5039f5bfb4fb2ca4a82ec6fab6dde3420b8ee6b2634e3cd027f2360217aeb3d5f91a8a97c86b88325559056a22b78398b5920bde52c3c4936375d728678a72142d891835ba7974e142290d88375ec64017308d3ead9fe2673cf9ef90201bfd8a40bb6991ebb33d5b1487d1842a17143a", + "0beb4010ff76f3b70613f01fb6c1c02127320ef2bae81a8e81c8a33ae67ac4f89ba0745b018be8b7a1977c8d2797ce32c626ed2de26a2822d985c240717e1f6fb1b01949bef897232ee533602779bc9f2a1cede12f0e3b150cd888cb1da9f8a8eb6e307a3d300f06e24225b92dfa696c37375d95d0ce0d45dee5ac6b94e67cff12c905738c4bed734270dca1cb7cf061b0ae447dfaedd7dd2384f494a21fa37588221b8114baa0068b5b8e69881e1f3b577a0a81e35c5f78efaf47a4b2e189649e92d3a5b1024430b65e40427e2da0eb83c9c6f4f816953dd597a8" + }, + { /* i=1611 cDividendBits=3622 cDivisorBits=2982 */ + "2a836be295d600e5e034bdec4876560fbe7c14876ce63717b419fdbdbd04cf2ea62108ef6e74bf568d431e280bef912492f822cb3b84cc7f1fbe805851d94deecb223d11cdf60abee2a8b7d36a77824298ac071dba7606c66d6c6f89657ae778320baafee17cf3d7f221c58a1d65cab52503759aa06034a7dbd1527faf26696c3a85f8c92cb827df570ed41309839ef314f1f84de2652bd88415e33af56ddaddae3ef4041b86cbba06165412b25cdf46fafea8eec5dcc1b1e2388481c4a43c321c3fcaa3a3ced0e14679cfe415848d963201ec5a96c8bd31ee08b7bb84d327658896c7bd677aacd0b3d780150103201c36a076ea068e7d8ab398c137d7aa38d85fed0e268036a36db6c23c6be05717d27346994a0a3bf64a993cebf6ed0a92159d1e29e96adb5519945cdf79b953364c91c25cbd25082f1dfd508f0eb650c92016bfe5f5935defa0d19060b8ae66a17ac4317e80072aeec4988df57503fe78bb8cb5dc1d5d56e139b4dafb5adccb593dd5f5029700362652ecb24e115aa913ff5dd6be8fc906c310340fd601ba62978aa02309e67c8dc7d736e7cb9179903c3798b52bbf16588ebe587e652657238d7b9045105106b09a8a59fe94d4a35aceda50a6067bb0", + "04d7d7942293812de4b9e005cf47369893209fce11e02dc9b866f959928c2038ef7f415194537b3ea06250a5de6906bd27359a383bd2a9b9340a09fd6c39f9b045e31da03a40479f75528303293f938fa88be8a871a6a13f33f84c3457947fde2ce492be5e4c6abc53544fd6e14fec365975dc5b90af774e3c3a9dc0e9713cb4249ad234558da7e4f68fc56014cb2addadeaadd658e643b2403fb884037d0499d90a214fe4056ee29fbc771256b1a05fd9899129140d457d43aa3e41d993e75dcb8a0964d69262f56b97c20f8652852aa7f66d46e77766c991c71397e7e3a6611cb06be7fa78ea1be8ef3589bacc6287484cd9143832e6f025d2845f43bf141483584a65e9c774dd0386c41fd8ad0adca5a5c5635c9aaca720d268ff6905224a572bbbb530baebea9b76f354444e7fb4485c89f01a18d2c2b143f7e82cc916bca13d81c56c01a7daccc7eea478d08bfdd543cb7c31e8474eb4094182debcfe146b24a6efc5648b7655fa0ec494e0487053ac23f7f0", + "08c72fa1366c0dd6e8cda50312bdddbfcb0c8806f19cf56ad67c71e12f6c9f331ef416e63f42c199d36da4a016c2037fe916ba7ae9732dcfc487a4874a61717b73f0456bc10188486b721aed4639c43135", + "0469ef24636004668ca20baacf62cc671f9675fbdf160f0fc87804e93676a19692d4ce3124da8a40d7daf8fede41837210594b7ccd27c6df866d39a8e34d8daebe07e30da3df12a2ecd76183b2c57c61ca3e39d24d7544160c35a410543e7a8a4aa699b598396b8893a97942fd84173bbc223ff94677cfde9407e578add11bd9d206ada69c36019ba3adc1887a9e530159070e39033e364df1984416bf58e7c08e44c36dabceabb86ace59368bffbb5e7a08453a8cf532561f7ea4063a71a652dee02d93e4cfd7b9abdf341e839770dee6dc184cf1fe6d310dae1048ecbdff39b740f0a2a308eea147950c86d5959dee2f82e31011beac49d5a36eaf9a472f5f67bfff5c22c327f97653b9b01bf4534dc95f4929b1fd3a0720047c339d6fa1223535911feebc5fcc69cd475de5dddaf444d55e41bc624e67b0f50d7addcb8ea6bb979b6c06c2c9958c6c93e6f37a94fe25df210270180e500a8d5f376566ed0e11892d00895f1fec7cf6c1fbcc002ccbacdc5f3700" + }, + { /* i=1612 cDividendBits=1892 cDivisorBits=194 */ + "0ee64be5d977ebcc308da5be081c321594d39719018a9681cfe15b124e909b72d7b4c48dac508449d95547d7002f5971cf866fbb19ab035fdeb364a3839f570d9a28c21e7d1443da69008ac3ea47b5e8935864c55780e97da58b6d5c52f68aa3f5b440d8e94a042b4d3cd831bccfa80425c7267e299fac5f2e51b374c471cb70eea4c1fcaaaeea3e4124ad53cab313cd7f1196cd60965cb8e8137c5cfc8010c6d6ab90b1e10c36240de89f2c4f86f7af9a12ea69d02e52362ce4b0c3f37c0cf74f2cacf51404b1c5836c2f88b4aac5c2e857f60ee389f907d084f3fcf8afa699af1332d62d9d47d20c74de9bc1", + "02a7639e537fe87611b8197b1c19a24218294b1addd02a73f4", + "059d42f69910dadfcf3f32d7fee127231b599f257d8c175015e53006acab8474311a48e194dc15be5ddf2f19125309df97d84eb562e4878609b69d63a22a75de03b08906c9bfae83cb59ff0159772cee6073d08a23c21b943181e3fc4c73c8a55ba3688fed0f06722c4c34512b523286ba53702f64886d742180f56a12d1a23d4d58b59dc8ca4a64e59901c7e253785e98f90f3d42b225fb6b8b90593c896b13c2106fc53a2672bda979fe266501361302b976acc301427d8df2162eb802d63b6cfae12b80d5a74162e511777d9efefde3ecca762c", + "027faa5d57a8cb257c461980b8b62cb3b908ba9c38ad9835d1" + }, + { /* i=1613 cDividendBits=3684 cDivisorBits=123 */ + "01b647814ecb1c6cf2a2ee0657e0875006cdcb80d6ad802c4eaf4cfac0679d56b7b972d4f8a5b7358790f74cfea5280e8bf68758d9a4e2b83ee2a43b38ae8dba6b4179dbdc09f809d089341b270e7fed5be010b1c6e3a9e44b3ac971be7820651101d1aff26876ad3b8f5132becf41010eca9ca7bf1597acc2f11fcb4e016fd032a1388707d5948b525e34eac556305b9f7d26da4276f9da712ce709a2072c0aca25789933b2e08c62494a9eb0a967a2270be5b8dc0e39abc8c07b1c0c817f2680cf648681a00492d721d5f705da887739ec4db3ace74688180caf874f8cac5fa9078216bbb5ae71543daf8956256228554d9a2b50aebabdba5856ca91d000b5084b112cb3293961add9a5574f4e2ae0982aae26189145705791d5947aa0f2fb2b498749f1042644f50fd739ada31334ee2d74669f6fea7707444f06c994481e5c45e618963a4e9b68734250cc00f402bee42aa531042b1b88cf4094908ca719122f769a737ca0443cefec94c4c3c3800b5d5450f6d4d3792d2417a7b126a1d4cd35ddd84093d9d603771ef56bc059655d9b38c046009e373b69229f1df04ee5bdc5d90c8d0994ade77a4e22b3f97c6f30dfb0d9f69a5cf783f84d2883f9c9a13a58ca37359ea7d737d878eb06", + "02452ac2d70af624d6fe8ca18d219aac", + "c10f18301f42399c23f31f7f1b8b9fc5d55019ad541b698474aa5773dc73a082fd29b52ccb5b8e8489541f40d25d9d1f17b8493bba859c3845f38e4beab07f4809b73996850298fbb81f46ce2537946ac1998e5287795b05786272ab3ee2d9f53f8a1d5595fe61684f2fd1b2646e945de2bc924a549556133cad7c4d2ada632b5591d84a5dc66d41aed887666beddbdbc287d3cd6dccf05f64e59096fc7a86574c9ef022f11510db49919b6f23b005c44a18baba43000963f574c5f73e1abe2af570fca6cd274826b072747cc213e6e412761c8f9f321f8ad339c8f045488a790d7a3d162b8edfbbddd5251369028bd38bdc5604c2a268e8394343edcf6702bede68e78b2890214c2ca8fa57a222b49e670b6fb7f01a12f51aafbde8fd4d39bca628d8e7a2c738fa26863f8345cf8f3fa2cba91c2d0f9926ee2a21ee27118a58b7164e36a7fc706209d74ed9eb65cae82733aa5ce55ae5cf1f0c1dbf4edf3413b1caee0656b00eedc1e5d570d09e879083e8d60464fe6dc970a16e0f2a904e8410dfd0e621b108eb7c93bd697e557a62779b4416fef63d81d65340b97cec113c4a342544165fadbe96cdd5d172e5f6f7ab09d487fd4e733a51300c7d93", + "0202efe0a414c87ad5d8618ae5971e42" + }, + { /* i=1614 cDividendBits=3422 cDivisorBits=1638 */ + "3b226b42c8012e9a7a27890e334dd0a1a9ae75b72cd1f34b648630cf6a00c0910416409e4a14cea66f589b37d09de1f9c313309fec4af31b6ee5a3b794005f18db3201f523b77bd241382881e6e85ec9ec2d6937d42662590aa1beab08d9dfb6f67fed5a5759642153c6cdb190d72dcb04b451446f0efc5c4218b147e49e2ee945fd5cd97ed73d148773db8022b6c147c1c8fc2278acde91d89dd346052f274ffa0b44f71d45009d09ce13528199484bb54ed58747c4bece54dd2f074668c4e0237b88b62695395d0189b3b191ad8e404eb051c2b27895d1bd41a7689be2a3f91f2c64132c42c75f09fbb8d1f7f4453d5d7bbf48c7d1b48542539571bc0021048d522f46ff872edc07edf2dcbdc3e2f6f026cc9eaee9a9072acc7095eaafbe9d2d3653b3390f76915c44c68263d1384ea91906dea56880027f15f285b898bff819457e927db4d41444866c61223ed7130417b7537d69e125bc62d2753f42401b89d09b7afce56387b38fc43e35546c1e2b24027a1482ceee58c005b82018bceb1a24f0257af9e0a5b8546e9ac7663e3f9d11ce2a5a548f8c17d5b52cebfe43eb9c88bc33ec424d94e302adc8", + "36b546d5cc357a4091c51317428cc37883da3e773d9ab6d13b7811094f5332d89c0e235aea8c2712675cb1b4b7aecffca543e8889e553500748a56676ac9e533843d1e37ed96f5f393690ab9366bbe28cbfbdcb8b6badafef1a30f9af63f0320e3d8b1ce0dc964a67a9cb271052bf9cf19b21c076dbc6405c8c1058c8bf9500856d35d06b2c2d0d59bab293fbca3f490c46371ea20df2d8a1a08d78de1cb8f2e554dd976d9d30908c1fa32fad60528fab345354f6024d4a6439fa8e0a12bcad2e3208996c729fb2204445371f3", + "0114b667049cd16c2d2badcb29611f60b3d07f6d8acb0ca5b42342c4f7e4c9bd425719f4af0b3c1a074b73c34cf208e52e1c7380bf5e2599527b2716063932ab0da603a8f25dae8b55336be57e088269a092bea2466bcec375e85850696fffbcfcb4a78af5fc4c3c3829c4746dafc69b385c4ac8c1745325a86c63cc777e96b05c9d9ca146452b4fabde895489b0b300676f7b5b09b84c83a7f0f5c7dc2d140655c0e55fb1aae4e5cbfa62a71682b1652c037d0d5c41bfffd062cfcffdf6be103b92cb4dee8b0e20d305db938425e7e3c3e33e18e3c8bc39ee5833eca5f75943", + "2f7c319af1275ae38f990ac3fa214c688550cc5ae0776b1dc25387a13ed76ba340f74f2f7cc3dce6c30480be65d82c31a3b563c2feadb76eaf967d678867b849e04b0aba3fffe95a0f028333b76348794ec94d5c60ec1fde8488704d45b148b9c495453ec8bbd72d85695a265fd22cddfb3f4d48e5cbe5226d08d4cd06bc90f555505f40239c6e0fca1bc59ad66a99218a5f9138a182644eb814608706200d040813efff4405b1f601f184c3408ff96b315dcdb6282f7b8ca90dc42711cd66d72c098090fb5c64c0bd6e19602f" + }, + { /* i=1615 cDividendBits=1851 cDivisorBits=1201 */ + "06df2a9c6f65b45c0eeb841d017e0fa1f3fd52f4071c813f12791de592ba8a4725fd465b79a0fc880fd231ab405cc219aab20b47a68d40ee261c1d4ac2b0a3d37d7251d12c78d559edbc833b11e41b1cc7b6bf08dc7333667f46a45e50c6921a56a05f9a7f05a6c3a42f8096512e057e8fcf886ce513245b2996d187a7e13252c6ffb9a6f6312f021acf50ee236b6dc1d4cd6442fb0b1a40959f200fe0eb932209b7554fb7da6556092364d0f85cc40223a02e90cd43a22dfa29fc6feef3a34435a5a821eefe56d067d60779361f3281039c7da66645d988e6332448e90c56d16cc149fc03fee3d5", + "53cfcf456d11c6143d3cc5223ee8cf09627423e0383bfe4a4475b598635f1d48dca7f9489416c29d881a7e9b4b0a9e16f49292e0566c262f167d8016991e4507de23335bd6c5babba483754e284bc31721a4081b4766bbc90c36317af7b33f58576af936f1703e6a3a374efeb78f64a6842d083d8aa6aacd1ec906ff4e52ed78c951bde89099bc995358608ad6a835fb16ec2ddd2674", + "14fd4f8ca0d56899b1033bba8df7eb741854da4073a7be45e1ae27e287b4aafe4b6a36dc5662e814fed35507d06e7017edd3b40af4c31078936fdea56c4c8d63c113f5f1f88ec6ec5fd9f932c679fe21285c", + "282a729e2f3fcf802dd9f0e6f30d018cce39b6ca4df5b027c437c178045fb579734709fca0192afdba480cac0d1e49d8480fcb33a27151302ae1a962fdf13ecdbd84f8774331bb8e9d9820a00f4d5b6654f1d7f5f6843c986330c12e6be862daa676fbcf652a86f160a757d56825bf183c5dc794394b2993634d131a4d57b9624cb0a2eaca278d38bfcaed8e9ecb710feb73ed8ef225" + }, + { /* i=1616 cDividendBits=3578 cDivisorBits=1078 */ + "020f652cf6fcd1c23f849d07b0fe0dec89d7efe3d4621964cff47ab8e7c45cef53331d194d9a5b0c0f0678f10639af4cf58658b8ee88b8a50da66b58dcf304eacee14c07c25d501591cad3981a671611afc87eac09832f76de66c9c8300496163bcb3ef85bb48b43b43b688e88370b14db4374c66512ffced1827c627bf5d79586644b74f049a32309d0804f6a23a8cd25869e0adac6a6472f91c3e55d5fe5ea0eac7debcf60903df2e06b8bb9aa01dfee05dfb67072cb34f2ce7181b55a6009609421450056b6ae85e917b645faa7c16d49ba79bd7fe65855fae7290700464e7e29a11994231f63be18c5aea5e887713d73581d905febe14be9be4267da4d40a3c0b86dac3b9557d29b025f145230759c45da62c83df09fb940e1d3b8ef1a35e5d36bbf7b8f807ff757a31310499a2a48da70ae440370514eb96b48db7e3cc9521b0d2eb4d3996ec5a9fec686d1fadc20fce9135ab9546680fb16d8cc23b3145019b166eea63c6106edf5c371611b93de24150fe438824e97a999b3c984fdca7f04a5a1c5f05dfbe3fe1beae1015185bae3907e64bb1086caadc6db55f8492897c415932a46d989163183bc50cba3609e22b58f7de4f530d1f777de3861b558", + "08031279ae664cbe67c49570bc462ed1def4a230ffd55929408e51d1529818e277280b3097adabbf2233a53f276b885712685cc129dfdcbdca5a9c95c01bdb5331df7e4dbf729ffa98a01c8731f10f81cde2175f0ad5903ceb9b3a6da733d4357aeb084c55f7cd9129ec535ace3fb02f316393c83808468c8851f58c232246ee7f689f0f889a92", + "41d35e56b2e22f606e993c8f3e74ce1dd904065efd6ad5919753ebe39cca2a26647a1bd0cee94c7219e75b57055b3c395bc0a0431d303be9847c5b7e6223cbc588ade8274906a846a87be626302378ec503e98f20e86dda59873d6f22989409df144d246597570a20bd028e7207aa285e113f69ddb727346dbd2935f2a199e8c10941fe80b89ba1ac7586406fccaf013a901eb465f800c11816c1a6e2c157f748061fa7e1f79bc96516facb4c9162cf8973093c1b0f4b34b8a62c6a9469105974a8035d02b904063094b92853492bfbe7f64e63bd12e9ed3f5c6c27910c5ab9d4a570f16cf4061a44c45d7e296e5a9fec468ddb6f2225b303c86c41b7489277502743d2ef8f29063fa906daa3d5467bb429f6b35bc2d84a2fae0fa083cec4a7a79ab570540e6c309a542536ae1958ac8f34e2fe0255a481369", + "03795b43f4b3a8fe4e0781c25245e1fe7d2a20325f4efbbec2e7c3b211fa1dec12e924df4bb488ae6cd025d5e1874d7e31d6d42143df91a0d6d1b64d34b00fc75d56470e06466ad4004ed12a32ebb7fa1ad2fb9251789157f4979c0bed9bec64d82f2ddc813957ff64c8bc3387109a9cde0f1d3202ed26b631b744701f35708ff3449ce8d17976" + }, + { /* i=1617 cDividendBits=2266 cDivisorBits=968 */ + "02a5a6b07008b3c9e82791f1cde34953c40b656d0c6bd3a01aa48f1a72f94276beb58748ef78a44c6668aa0ed58a4482696dfd600e34d44cd5777ec9a1312f54143e3db2e4166a3f95a1ca2fe2a05eab47a70229c54fb1a1d8105d10a40fb6867b5dfabcddec79cc96e33c43402919b8adb9ed761b2e585faa30554fe417c6af65b110a2d5a36ac1355818742aa8358c4b2a23662bc4c29fc0defc253a86768cbc0a3235ccbadd0c1095d180cde2e7670d45f0f8a6ef10cce8e3e2d8fea70b0da71c678e3441b2f9b566d5966582afa6736ce73e2206e8ff29a5be7b1f85fee0d11235f0120d479789a881da13e9b3feadc758bb01efb6a096aa7c1a59ccb9f2a184fec1bfced460cf8a7bbf60d2dea158e9ab47f8b7b14eb48e0a12", + "074148612efe49e442114c70851cea7bb349f632ab86e7d014fd25eda1b61067bad5aa86668b85662c89a4f52451cdb6e943fe002e62570110bb9883b95a7e2331d38765ce87d7d8ee83d30883ea3ddf014470ead93bf1dda72a76c67c6472a6badc074ed7cfa9b5eb4a551a49630f85a5a4a116257d55e174", + "5d6791b1a6d3900be7475647849fc997993d4e2afbd5c86d48ca4e5d5696a4d80ea14d2a688da49379edce54d12308ea5675afecd890c4b1ffad76b80c121bc04a0ef2d04644d898ffe4f11cfee165b0daab1d7c27481b0462f64e2e85bd2b86d0e781a40ca47fd144ead8f553dc405dc0849d9b4682749a5102e14ae266eb81da936a02a75a26e4da316c9309d442a4423343c6601596b1b05fa9b4d57a3fc15c9a7c", + "01dbfc34b9c55dc08cc46989e484c6b4127d3bd3637d25fb46806b755db2e042bc9736d52f8289b3dc5d795b84c29e219a065f88ec5843ba77e930de7f66e383d9dea49dee00a2fa51131002cb29900def67f495bef7d6f2a1da1b36e1eaaa8bfa12643a86281353d19c56ec2f3cbad0ea2f4fdc5edba50de2" + }, + { /* i=1618 cDividendBits=1983 cDivisorBits=1605 */ + "44a769a7ce0366b2c7ffc7ff9354a624808867f7cce11664bdef4aab966b4fadaa66dfa023e603a7dd0a81615e289faaa148b04ab3beb695da7c7f608f920b42b6fd6562a323817dc4b7ee3ab5a289bf85a739379143f4824821e552427bcc5fac8236f4c2903844474af122ba5fa604885f377fb8c5840d668980f559f9ce1637e6d7778eb0c1a3b705e924a4c363db5cc67c343fadda0ecbc8c6f550b4ce2375516336f29522de93325a7f7817d32613616f82e2e812aa607d64443c037349a186d4efffb0651d2072456107ec3b2ae7e28f2f3d5fe53af292c90029ec1d661eae1e37373b90a77f2e4ee161686bdc340f7bcf1d637a29", + "0100de4aebcb715256c16a303691a410b77a7b6627b8e1b9f9c165fb714ce0a2404cec8c19c4ffa03b98c090574ccee543057a15691bf4b532457506eb17ca8e19bf20da720c26737818ec722034e4ea9062c0e4e7566d0bb318f000a8a5caf7d37325610e2ceb42a1d8228dff6e12151b21b3a4cefb18199d205957c34e220ab6b97560df59ac27580bd1fd24f48abe51d783c8fe44c38dac21834000f11bafb28d9fe1bcbf7a80d016639de0175dc0ee8bb6f9cb4b6f15f90c300c8a640c37b364e529b6e75cc29b", + "446bfff99611369eff649396f743693f6368e6aa2dd3c8153540b12c659a156a836c26197333bac6e0167852444d1e60", + "5dfa71c9ffed9be583e0c241c5f6758b9bce6ca1d55a45917de3985f0c6be6d4b27582ac8dccdb621b58b6c4a2751df49c0e58a80845cb778690f79f3a237974f98b8130b926439b3f0366bd1e3879a383173fa364a4ae0d314a4224e53fa070f5b66d50e7062c1c4d757e31d6bce3a7eb54a57b169301dd27fb10bffd84f6e39d40999aa999b8b8afc456cdbfd87c933b400307173c77ab6b61fb4ccfcd9aa86bdc13826479d48dcedd5b05866864c2c13c51aaeb6d7a7c7183003cec68039571832fddc72d5609" + }, + { /* i=1619 cDividendBits=3040 cDivisorBits=2021 */ + "a9290ee613029f2937a1efd5e52468a1fa30bd0c82ed777d30cf0336160ecdd99a4082759926bd958f52d6c60d475d55145a253e63271bf9780dffe541b85cddfa3865e395732a797d433e5c345f138c32f3794e0849a64f331ed0357e3f028f7834d033c0a69c96d7aaa83e6a2fd6c8184889133c90e9317d4acd5c90e10b70b786659035b2a57d40a4d7ee0e98d11aaa532428ab493e6bfed9ea49cb3c08625259645a238526552bcae475f6545a1f1e36856a14ca92ac7170eb74c1cd8d45b6d020f73d9fa0d1d33db85d000494e203900b27ca94cf180cd6d9a68c97d2cfe39b39c054fd76fbb95cc66dd993d251130a255d5da84b5b3b5c47db5463ee62758e5a6b34414458063d57118e8afbda8dc19e336db9cad9b5f9651a1e2cb386f5775a927027c1c70f577991488d7a9e865d7e5d4e30aed9de7b210a101040bd3f2d0a562a1842a8f3719d3810b91360133fa3266b717ed2bbe4b24e47f51b2e2cb5114977258778430a30bce8a9a1d634d0b5005e674eee657e0315", + "09cecf064de2381d34f5ab746209c7ed2cad6c8f0280613218d2947b067b97589025d23ae3dede0d2ab73af28b9c6c7d082c6d20f85399df367216ef8f33f8d71e8972dbfa294bd6d08995eb19520e4c10284cd32d3e97e920df9e12766c9a0752a0eec930d5c066f8d1a35155d28e01767b1b09ffdbbbc4b3e105976032147dcc8fcf79dcff12d826457a469802444ab575870b492f5b48c708e6d10fbda5e76fb530d5c8e25347a60ed40a26236e9359ff565bfdee551eda2455322cea9590fdc4be82978e65f1594671814b3e1cd2e1022dabbd32d4c51841d8feb3a78bc3bfc79dd30748b91a99578472ee4e8f12bcde700b14881861ecc7ace27d", + "113f592aa84ce72e66d257bd3114f0dba2ee2537ccc3b4b410b81211c91ca95a989573dd49faa63d1c22a0ce052ebfa2fee58a6851af56da1cd9d7a61bc5b8d5a6e6263db503f3f404df47dbe8e4f2e67b6b706f5a42cf719fd089a6f1cca81f9fac091980140d10775fe1d92c6bc405767996c3c45f7a755673c121c816ecb5", + "050b5871412d72ee464889a8903eaa7be5e62f801cfdc3199e70fd6f9332cbc8f0a694885245b3781bbfda53e5614c98245df93333dd01ef8ad0102815c502425f18e307994c727057001650af1b31b05213e25023d90e1797e638cc95243235436457eadb1bda8b43bf59e9b49901729c32866fe1418bfd150ca6e043602f73c2608bfd6b21fc1f685b70eadb02b85b355e4f5705b614f5eef47613df8b1a36b8e350dd4d059e2162accee2b339f5f965b6721ce4283eb1f1e6795285dad740a422168918e6f13676326811874c098811caf1699fab2f686467ceacdcfb465c529627d86bc252619cb136cd9ec77290b4cb8b357c745b2187b8b8a4b4" + }, + { /* i=1620 cDividendBits=957 cDivisorBits=461 */ + "11a64fd3103db32e6c1cfc98d29376ceaf23d0e4165bb16322c433b67ef61942524f9a3fb54a9fc41d7a54331459071184dce95ecdb7f315f772a4bf9caf9a1b1e81912172ceb4d9a1a428a86073d502641c2a638ae1cdc19e8227bcd58a834612c51cf039a67a46392815373b4342588fe9d606cdb086e6", + "093bbbf3df837cf37ba49d42d6c9a0768ebf7506858001832b302e288b452012cf45cd1235281449ef5bf8ed44ccda88c4e8ca7b1ad3e965e1f3", + "01e95901120ffe0da2572ffb85ce6fc6af701207b3c2989bc28dd42e48c9353e6658ee63d5e9a32090bd15e363f71855b9a21260ba84a90f1bde04dafdbd9d", + "05d8c94448c494a290ce34489d2efb53ef51f32b4d114cc8f1778fc745c257fd500945b045e0584183ba91a5448853fd7678764440db373d8ddf" + }, + { /* i=1621 cDividendBits=658 cDivisorBits=203 */ + "03425d5ec2afdecf5184ec6333e686bcdc190c74890ebea9a0e6b3dc853aeb15fec7646841c516fa7a281ca3489fe5c132049a6a68b308e8dfd1a950823ad72689aacca8c6d511a51b7cb18eea691b966cb829", + "046768fae53a5c596201dcda1c3ceb06e5db887eb73f5331a4ad", + "bd755d392437a516ed2e8a41ebc126c447f658f265ca902fbeb4372138b65a395a81d08d088c4438a61198782ccd3b869dc82b16a0db96f40a", + "01d17c5f0b6aac9b03c411b9c03075439c31d3cbe44089296567" + }, + { /* i=1622 cDividendBits=1051 cDivisorBits=829 */ + "076dcec41ad58247192c49baef8b102de487d757a9ba4e91589281f83071e772d8f54b246d5a9757310e64f98c45ad5b5c0e96b70711be561191041a343bb4bc69bb33f84cab4ca38e86b32a63e6835170d4dce8360065f8cd9763602b632ef6388c35ba5d90fc45faac42bcdeb6d4a2ca583c17251fd3ca0a36872249bcabf3fc34c558", + "0d6f715a200b93fbb73411ff35f77a2a3294b06ea9611cc42808c333ba6257d3da2be59b0b0424f0a0977abafb6e6b51b2bc6e4d2a73e8b74c608f73f61da5456904540be7b9415546f93026185763bc91bc21ebffb9a37f1b69db46d9862928ce8706d991773937", + "8d8d847d331bdbad2fa7d616acf0b222d4d4a72f0c35a49e107c0881", + "043871b2c1ce0ba1b5e0c3047cac296a26f8dcf8598d635d4c8df8a84032948c49a6d49490a783e98db5d6b138601213fca41f9ce71c795afb55c0aae3191cc90a7219e5b9b13250adbc02679211eefdf69f1054b41459bb17a483b5c14d575a8061f680ceb338a1" + }, + { /* i=1623 cDividendBits=3982 cDivisorBits=1027 */ + "29691c4bfedf0ef0521d500d4ddd1ab0a4e7922b8e1ce22966d450e4527d8fe6170614ae2f103cc19016b6bd852f7c2c8dd15c852f3834d1eb35898e42acba729b1c6f2f4ede677382aec36843f157813246a1b71547ad8865de4ffae4613bc41de2a28bab02c1613eadc5fc40a4934243559bc7ab1174ca6adb2d6ae06ad7fe341ac40eea03e2a9f0fd84f36ae96dccd972382499cc81476bc5b69ae986c1c66311892e5ca609558d71696e8fd5607a46b0f0d3e7aa6b7d7c209b3110df1432de2ceaa42b69c128f19edfdb50b8d8f48dfa509b2c30792e3529f3e22a35d1b6b0657044ac71545d933500ec78b73df1301eab9e86d61280794be3c60746208f609eb6f82b087bc2abe519fa04adaa990796d0a3f110e816b5d9ccb061deedaf58963ba59173e929b6a3c923d766b8f117a04d7116ab6478317c5cc278cf2aa94266fce74cc5b5d264886b78856858fbf13618cf4f27bd6578af2fe1c9c16fc035153a2a36fdf3a03fc30e5d64b2f7aeb0caf7ccbde40bf42e16020f414ee601e8efff5d893ad86c6e87e0bec1f66db7af595cb1d15298bfbab66e32c208a7ef86d607de00d58285ac45e46438df2f27c69271468436a4500f2fd61e93e5dbaee800e20edfe5509f08afbdc8d4c890dafb5d7de42beafe205d652d7cb29b0e49d84ad2170645bb8582289ce706c93544b7e6", + "039f0a92750a040ff4be2a9e4c53e4434379b2f29a7fdc89d774318c01a0c10bad13741b8624eccc74aee49f71ce237e8b73b6c4c0ff5f32ffc1c78607d69adc6eb59f5b9cda820d185cfe7c5ac71dbcddfd11fd80a544f8d9eda81b5cc7f533f08281217fe69339f6ac26f11f77cee9771cefb0681ba75b6347536f7eb4eb556e", + "0b6f77f6c052f96648dbad3b0fc5f5d3ef3fea66ef09949afffdba3593497494c1092cfd960e05799f108fe8b00dfdaab4e344961bf3990e5f66f948f2bfa7aea32440e4ea311a4ae562f513d6523fec2d013af1745fa66fc225e8466b839ecdda6496b81a5aed2d98137bfb0f282bb00d9cc6603ad94160e7429d3fd3e0406122e9f3b07958e056814f0dc700612aae4384e43063bc1cd1decf316b986369edd8511a34f017708c0b4be9cbc01f2b004984a25f0ad3b65f306311af3a945915e06a6e67006405315cd2fc3abc6693defb77445bc2c3b469c5c84313d56c4078cb546ee2d97df616947004e6300b9d54868affcf0d8c37f1375b368bd48cb761790250681c40f4059d75c241ac2a047b344c9ef8cbe2058463ca07545cf8e45ff54a1d95a739e155b682114dd4c9fe5c345c04cc0a95e60c4fcbf400b30ff4833ae95d3ebf3f46006f89518ccebb6148a9f9c42afb72f12b0b25cdcd99d8e66baf77568a11606727efeaf70b21c9a1982665", + "026f7784b04e2d115f1686831d54ab2ebf8e5d84efddb350d743617416f0fe0bfaac854ef454ad3561c287950e45f82ad6faea6407976b3fc264e32fe6fd01db45fa8522b709d74bb96eef12519d7eec4b6912b198a90b035995bf40f04ecf80814fa87d2d16d50b88506bd0d30c552bf2133263c0219d66da02e88d1dfe6daf80" + }, + { /* i=1624 cDividendBits=161 cDivisorBits=26 */ + "e9a9d5dccb33ea0b63313b3d821c64a2819261de", + "b336f7", + "014dc709c65a00c9b5be8d21c7190fbe6730", + "88b28e" + }, + { /* i=1625 cDividendBits=3819 cDivisorBits=1116 */ + "01335d7b73817abac19a70f545e68a2eaa8b51749a6ec9b47e8efc66c4822774b7a1f3ca1da6c20f1fcc4c44907d1deca83b0a1bb464694802a1b44131702f71153be1bc5f6f8dab594a1f4bd7a80743bddaf680380940d9b62f8d5417321233123af9a38cbdf797bd6fe8dcfccd6120c426c96932a513eba6a265e088f4140ac5f6ee4a505e30fa1085e226327bd0ededf25c1a9c8fa1e3aabba39a740ce82ab6902aaf7dfd284ceda4b96f7aa6d83aa6bf16af39f403b9674fc51afac5a70cdcb8ceaf622dffa96988936f6b5bb3868bc96296d7f7f6e27dad283593a94feaa2024593fdfce63e00e6fb33788ad18365569122194175644a21b9486c376fb7cc21f93d2455669ff5eb70ea51f10cd00e5bf6706942f0a3f0f0a3c421f875de776fa72e10c450a30e5580b5c74927ceeca0e9dc88ca088e1b4860535b98b3c0f7277eec89b6247b8bba37703a19d06dbc6398e1a0ed6bb2d37e01880688647260e69a1e65d777b18d4385d97beb24bdff14cdcaeef9d8e9986c4b53da8d77e3a99633631f9ed8ec835128b61e8f6cb0bc0f9a22462c312ec0435c512bfbedbc22f55c5f68443ba33995f182589e42b60a3b3fde2bcfcddd8494d4f42367635ef60cfd7e02211eda74eb9da8e58f81c5a1b04ae24c13b5b6e8ccc11f9be1", + "029ebca43e5fb549b3a29b53310c15f5325901c3139ec543618141f95a75ba6f1601c486064375436296f28368cb76c7d2463f5d15b73f6efb7ce63202d8be86e7f1f4a93089008a5934f7b2e420ffaa4495465b5848fb4aa652787e8566f64812f78000a612e45376a9953fe446977e6b543b36b5f7c8442948fdfc1a05d50329681907779544415f447fcb", + "754fdef6129ed5d17caf3110dc14ca997576abde29961423f210d546f9e9a06740bcc8c158081c9591bd64f199e09d5a3f59cecc70bfce1fb3206a9b147ea04eb8b14692d31928d4635b0d84a330ee68c8a4d0a450a56f64882f338f284fbbf632d80bc9101d956d0578153d32818c1b5f48038b124160f39c02f7905442fb35d8a22dae3b237c605410dc1752a225fb8ffbd0a93f1296b262505a69e80dd6bc68f71975a8ecbd4f5974d9fe8dcdb60ff7e05c93af9432d57ddaddfbeeb71661cbbba3d8398f8411eb5386f23a6b154e1512a7f33470efd67cf0729282bb5def6be32c4db75f127a8080b5462a3a589744f2c5dff6cf2da77d7ca840d670e564c631fb72b007a6d070f39baa904c6b91b5bf7140e9d5864d7499275ff485a90c505392ebb43fea79fda01841d8b8edad4943f2dd8c05dd03d7969d150ce65ad2d20abc7363a8d0eaa9a741b9caaa5d52177d", + "df459a81c3bc484f3f806a942fd8d305b87c98605b07df615ba1868ad431718a823cf73cbb2659fda589223dbdbf89ce82cdc862d96d85c07efea67a615602f56cfaa938b68f9e6ddbcf705270f20f661f1145a347df90989228840049195a6f128eccc73dced3e8c8a104e03498e6f382c9a2671ef59faf1df184baf0a445c2f55a1f17204426672bf8c2" + }, + { /* i=1626 cDividendBits=3649 cDivisorBits=512 */ + "e32e14bfc12be3dd3ee676d8f937818e22330645b3dcd4bb316951820e3e621f68d9c670d0e0ac779dc9e899693dc4eb7de9f705014f97cb48b5695a4d289afbfcaa2fb548e2316fcf9ca0fbcb200902bcd698913456b662cc78110781126998c05f8fab6e52b1b0f4ed1f0144254553b00606c8ef9fe468f7bb5e2cb2331bcf44dfd1d2065081cffc62443e7f7f713da7a96f7ebd7fa661bbe56758a59cf0621e3baf1f3bfaa89d286a3bae2c1abde2ee71120c70d8a6cc65d3df72a721d84b6a5eeaba8ce9807886282986bb731c5bfabce346ac5da47c4f0f3c0e9145f4a2994d158a4b1b055d6b08d140580908f5eb052440b1b2232d9c8f98649da2917bc9b8745755f98546588eb76a32f3e0beb44c7bd723e98672e1d0762ace5db9bcc8470f59a961b0d0d28afbae50956c942ef94f65ccdfeda5ea8638c57d8a56c8fb580f1791e88423b81809a607a7b09f6246ad57038c8e986adde0334a517e652447c1bc5921526204a226690247956492bdb3d8b6995e7504f7554767a59350ff0be43c13c7d0eaa597b4d15821821e2b25577075b7e4aca61557b45e564ce0291c16bd6176bf3dbb520a8a0bf76ca42363bcadce03d4040d15c80d4299fab2f3eccd02116cea79", + "720f58d76004f4f073d422f34b5f83591445c0dadb60e952666f418f148d4869a50f41a30247174930e48cdb6b8c4dfc05031925dd84c65d65ced3e46d5bced5", + "01fde3f5c368841e50c0dc7d3ef71895e577ddd7945e816424a81470abdfd34b9052e31d8d3d0eda1cd2ddd96588aa5f1e10ec60309c8d49093e822fcd8cfa114da8a16663782b5429372b44a49c4f845cc0a7ace682b3ffeb5fbd6e35e7e91ac286b6aff302e2ae2ff979134f023dfacc724871bb248b69a8d54bbcdbad862f4516ad925e39c5969002539c3803897e8a7de467dd37d3177aee5c6b5eb79cf2626958ad317192e63934d1f0b31937ab4afe749b0faa9d5e0903a97ff00894f04b982b29156894da3ad2e9a66b54e4835ce03fc2c7efb9247d3c787223e462d5f4bca1678aeb12bff14f0749f94b538b734d3cfb4a26df6cce654ea9da375c11624c4dbc2c1547eefdd7ba38cd6c5654090a142f4396858f302aa18dd9af15f6a6d7bb83f11a0d0b2e24fa915dd11cc1b16e46830f3a8501a3a5bf0fc6cfd80ce3ba1b60ebea6292dded8e60beb5ccc21b1b50e07f02946bbb9759a027edb32e787d2dbad1ccc36f4a699d98d1fc3055e2e190d063222d611811321fd6d3614f5a001cb10688b2118b", + "6d1fbda6bc8ae202a9df99d8604a44c4232f4ae5dde1740f93978f12e8bc8be9dc3a2cfadf7dfdf142f43786971dabaa940fe8825a2a18f5982ca7029fbd77d2" + }, + { /* i=1627 cDividendBits=256 cDivisorBits=149 */ + "e2810ad09f48b18f17cbcbe43844c98f6e8eaa413ceace216d32e2458eafdfc1", + "1f3d4ff215b27230a48bece1195e93e5bbdc72", + "0740251b6e84dfed3df0e3d20405", + "189ddb250a8b7a84a156306101dc57370ec987" + }, + { /* i=1628 cDividendBits=3728 cDivisorBits=1363 */ + "94f1319db5e0a9261afc9e66d17eebb65773921464a4c70da8e5e4b5eb6bc51bd445e0eec1bc12ecda3a0e65d6fdc2761bdab51a8a441f5489238a9d1d23b5f7c71f4977929b71ebf2aa0b0950f979f3acda56e61f35401036a89bb74a860511a7cdc3822a8d0f373a205735d01d28ecad64b62cbf223abbde6d9e2cc3dd76b7eed218abd39ea2be6602092d283bfc4868b73a1198fb4ec08311f7505486de9caa92e82bd4e7368b3ae747d9c92aaf986d481b012c0e7d3421eabbb8e94446119798e8abfcdba47b55993fad0fab8eb6bd005d181e673743e031d6036386c72288d469d2a3fef405d8b21d01e7b6c8516d19e16ace8d491a591b28bef1f3035a6097c5a08b4de73176bbc00d45a1dafba41080b26199c8fdf0caa3a3b8ddf5e91efa1b420b0df2d2bd93086de7fa67fa5a7be11c25eb9d8115d1495e3046692c2951c11e7a50b00ed233f75fc5aa299a34583a141a6e85af30d58e13a08781673e66cd553aeb46b5b7dc9de3dcae9e792f386555158c0132823b453cdc39814c704769f114d0cd154fd3f0f689b6ac8c4ff2b881e6be2b3364b657949eea87dd795cfd80655e230815d526bdecb512755e2e96156eb6323d8bf37475d583c1cc6793b62a0f786298354a9228334e6f636769", + "051b13e1824c5aaa65ae3c08cf9b8c46a58496133cc519933a2fe62fdf5877ee066038496a04feed9a74f6d436602ccaba44f12e66eacc2eda097d2e2a7c01e0938328d8da40e8c735c6d5ea1d9d8bed26a78cd8344b6fc8ea4fdc2a4000ebeb1d950768aa1195cd2085510538ffedaaaba32aa36a626f9e7ad28c9e0874d8e7b78022f815c639e79934604004c1c6c405fbb5d16dd947416e149895ca66f04ca527f1ab5cd7d5858f0bf9", + "1d2bdc493f6eee83f961429f8d2cd44d4ef3335b57ff4309cb39c503bfc41021eccd8fbc898fb3f55a14602d1213bc66984ddc94745ff25bc4d24017fc8423bb0219851a5b90ae43f53ef5740dff87a8765887c517c9cd279635c990c3a031968745ff31a9546fcef445013b5f9e6946531125032cce740304f8b6cc106444b1a941397ab9ea460dcd00041c33e9b2af9b4ef85c582967ccddf1656a8333e30a1dc3fa9d0f6b162ed5502b8497d57be9577adb3ce2aa561a4d247307bee2ef0abb9e353053c7e49f72a1480ae130d3fb3914af5fe836bb90f0bacde11f49ab4969517377703264b29a56dc1c95115f261fefd888aa57eddcd96f19f16358d58b140f35ecd326317e09dfe4f82f9b1867058459e656c2a550a3682b5ee2eda04301a1c265438bc2ed", + "c30e6267be8167e3e12098e8ccdf6fac41c6ac3d8ad07adeb7dea17eef154566ef8a879dd83c19cd19282b145f414b325f1949ee484e05c33da2718dda299990e82118edad321eca8568816a1214f665d21f6c56a143e427bbe99754fdd249fb1e29c9d482f1832c7c2c31c546e5d4c98ff8265eaceb04ab93f14f209deee3d316f5f3c96c3ea9bafc60f09b10bdf47c23ad57c20ed5117f0cd2beafb29187eb782ae5a53360b7af9fe4" + }, + { /* i=1629 cDividendBits=3775 cDivisorBits=970 */ + "693e4b4f2b3fd7330f21a220ec6358682bb414db8efdf030ccf345507ca1be7a7ebd55fe7ca724034975c53cd5eea9b5de7130840337bed5f1d5d271dccec36b405219cf44b4ca9fdf8d4d4bd2787096cea3eb959a7fd9ba0dd30dce58af26d8c69655b12653742661eb84b11c8a9713478eacb58dd7f287be21c4200de76794e5ba2c2ae6efa56992b9e351b03c06617eabe33064fe267ae7b89f898d5b0b5c4037d08af4c9d14bf90744d691b7999e1be56d4c660928a4b15f5ef76e103d117bddccb53c6ba3c8ad59a2a0cfe7504fe5df6f7d34bfab9a6b94ab39515ee90143bca832b1019e33207c2bfc7d1744ff6b8dd214a90f01f568de4286661538986446ec2812cf38d5c47036391e0dc7a864daf3c8581031cadf3ef080cf4de234a160a894c612c14e1aa806ce6b7e1b87522f414e886e616a77103a970bf437798d453e3281803aa66cc61246244e375dcdf036b411e10f52ceb3917c237e1be76052d55ee7be4904c776a4f2ac81ea4d01fb9ec0d1a36373b451839876c2e7e7238c09b4ca1c332a867a93e17b28f243af6ea5f9e7f57a085e3bd9f2370eae495cdf5774b6480db67b8aa527409ce098badc65e24a4460439e9be42d5d99ef31a70d291b0004e053dea9aa101a28f3ce0207c85820914515", + "016c957a7c33172ea2d4311607ae4861b1ca50dc5c3f6511cfc39ad25240233eb3759428d9e1546a4807a5d5ab9c4f467b1f51b6cde9075e818277ff5b07f7b72fae009ae76a8f53bf24b9aaefc775148965ff080bd6f82b54d3304c645e9f11c609e93a73051f36481bb130467945462e0d547231d89bc7c551", + "49e6146c27a5d6a3fc6fc6310905ee2274908f9c66400b851a530d5622334ebb1cbe88cba4d08e057ea90ce26b454bcd301c29914a4e560ca1f83c22544e9c38e7b58620b29cc3ed241d6093dec43c82f1957364bb740b981dc11cf1700a79aa54fa83bc9301def5eddbd301b22bd04a64d687d0cd24f4556e95568a56ae3f2e13860782fa0497eeb17d71e0b1de967a84428ae8f0aae53202f325e494f252619ce30435dc496d9471d546acda1a6a18003266e3968e5532a7a99cac22e97b899cf60f1bffec67f9e5c87e2bffbf5e41611ec797cd6154421df6de26b0bf398313611a22458dbbd0f0ebb8014ae3f2e06270c7ec1e741cebef0efc82e7dcb107e32b115f51e58a607339bf8d029ec87a85c895c889a573e5c0e951eb39b72a1aad2143d7aaf9b55bd0aa529290ac71cb554f96ec06509a045346be9703146e17c7859d7aa197407cfd1c8148d8ca91b5477dadb80a73a7a20273c621430600", + "2a88d1179ca247333c39763218b3021183777aa5f30f983bcc71027f97e93c4b491de9a2688a69261ff803b7b6d2ddd61355a17eb6d8d371bfb6e9292bc6cd5211a15836c3fc8b88deef421c4a2133cfc03d177fe1265b1d752caf80fa12dee590ef64472e3bdbb6b1edb4bacf529938bc564f2f535cbe5f15" + }, + { /* i=1630 cDividendBits=1367 cDivisorBits=215 */ + "6d34e965604d20cbaf3cdf8dd29c70ac7f23f625c8f8437b60c22fbabcc4a3933349c143c189dd772f463415d338dd1ebd9826203ed1f06287c072676ac927b94709ebed0abacc9fb007496e286157d0854cf98e6684e07640cc0875814adf3a92ce178db8fa1bcb6d154f3b4fe5bd19c687e737dc8a860591d609e5566024889b4a4f724bbe727b3c2d3d7c3528aa8b60abdb074a989605277d820f3e5c0d16a08d2d89eb4b3210057293", + "7ee5aa610a95ba23c3784e15c2bafc90396a1ed636c98880a223f8", + "dc4fc5e958ff300f2c61f8a43def23adbe859e1ce85dffb2f89191e1b742a796570197e76f907bf7ef3adb2ea5e4d34aa4b6c460f0b9ff796aac897c7145ab46067cd1d99b363b427bc610e72250677f8a5183bd23e1d8332e559ff6baada63b3be3de09cfb56e2de28aed7c10d84e6095dc2a46a2b50c5f436afd74aa2da65d3057ec6e6c6ed92d459e9b57d725dc06", + "6a56769c280feb50278adbbb554403da9bd18ebcbd1e873a777ac3" + }, + { /* i=1631 cDividendBits=2618 cDivisorBits=103 */ + "03f8f028cc5269ca0bc3c32dbe57e9ee8973111c6242f8cee0af5ed5c46a57591d42dabffdc8be73e32aaf11a40bbebdca83e336917902e43a77829ef59d8bbf0544c91eac8eb10c72f504b87652c6f8028130cc73cf75e2c4d54599505bf2f0364a41e3ca4e5a466b314156423dd66949c163b763f9248120f9df1abaa178372d75299561d7810694cdfb26d2c8485d4eeb8d52aaaa7779b5a9fcb45a439f22502d215ce154ba645d9823f08212463dbfc70a43379f2063a2e71e7b862cd07aa0c210e200e2539626a7453b43ecbb17a028f567dc9380f424a3f32a42d1cbc0beabee328c17f52c2c793404cb75ef05de796cb66b3c6dd5480b1ae57e95c521b65b72339208b1e2c693add70fa7f21ba4a75dcbcf0b2d64326a653bee59a2d8746cd06afa63707817e79e629bc388019f3ebf865a6b9a69130467335d3a4b746071fbc46d716aa1", + "7c3e388a77afcb267be3b1415f", + "082f60c75deff95a9d5d33dc4864e8d3b08700f6449b9e3c098577528b744799a2c376006cb933c7278551f5bed860a4fcfb37344f3ea678ad57b9106175f8ea64156473f688ec7c4b46371c11904e9c2d9440b84abe5ca8ceb147b37547ab291c69ffae78da9a870ffcb25d3b3067ccae8fde81abe322beffe48ab505ab11a6f142a85ac8e2eef1afc76c2ea1c695820e95694c4475eb96fc49ff9afed98bdcb482b9637200f4fa57cd9bfd2574635c2599730da4ba717df6280d8e5522e1733e78597be052fd9da2fe176ab7535666070b2a2b6743f2c94faf35fae8ecdf8778a5f1f9a5e93159c9ba92ea4c00495487993693272e539b992ae374d99ce72f9b5318e46512e6a9ae2f2eee959a1fb962f917318d40c591d9e0eccee77416e8a2b8addf5b676d6c68edf32c613330f23a46b1deeaea5546c44cc4", + "4703d992ea5fed6730739729e5" + }, + { /* i=1632 cDividendBits=3785 cDivisorBits=1224 */ + "01542584bf5fe5fe159202df55f8c50444667259fd4798a6ef3af51afa813cbb27ebddf95c88a2272f35001cd3003b6da24cce7469b89d179576aa738c979b727d8d4271f2cc8c470961216f0e26517ca55a11a8ae066b1b797768dc472b874414f94a15f22e21fdbe52d756c33acca640753108145a3edc72a53cbe72b2351f311a9a9a1031b294371380ce5bc63619fe172d8875ba33730479a999c0a07177895e0cb4f892996db5f5a0a46752d378bbc7f252e5613a20b171dd20c5cf4463f9a74e63b420ef1b01230bbd0bc8264cd958199da5ada7adae95d4e25ea3d1dba2be80b4bf3feb64f43da69e5e87ab78ca9671231c63a86c897b92811e2161bd305673a11cda4b7537271f2f8be8288d840e9f99d2a52c3173e002f39ffcf614b31b4f35ab2c1e5c9fd1814d7b0e6286febd06e971867a47d2645cb0f4b0b704b87a1e89c244b311434c0fd06c1e82127641cc535a005a28f5e39935a130fd8c67e971e32fe57bf6c7a91d67d3d9e2f611ee4c66dd29b15cd2964954f7bc9e5674fc9a45f930098099ba6c9c952fa129b79509f034402376839a111fd4a81d8049978059bbcabe3a7fe7ccd85b51c129ec98519597df5553fc2b0fc85b4c3ee9472ac7a0c617d659908bcca4e59b43f0b826f9608232f089a65b", + "45d5b7fb1ed980ef3e43df8b24da6665f7f36a30510c4368913e12f0a4a9711a4c5925831bc3d56cee3e872551e3e45510884650d5b03449d4247cec7709b270536cb72f20f041cd7152f6fc27bec20f4cc4d84f1efa15e9eab1a49f4117c5817b3ef42865467f06acf541525a97a6cfcd71905153ef5537f434c06d02ad71a210398fc631e2a12ba76de7064eb4bc5048292b8b429988bd18", + "04dee81482d942b53b76bb7ab11091bb3b311fc4e1388533c50d9f9e694fd7c1acb6137a9b6bf7fb82a327e81ad6a58dab0f9dcd84d7042a0e76ece1f6e8d7742b8614de363ac5e6b7a0f6654c1299eb801b876fefcede0a6a8dc6d0e56df7c413043d93b0b30d2c3d8c0334644207adcf380018c5f974f7414d8fe1706a54f50d3215c12030d9cbc7e1b982691085bc23889e18d77281c9ad87548f640fd87e65172c3b117697577fc8e22ec0df899038c492a442b1804d072d51002d6abd6cb16f077e70843fe6dfd7f09a73a663b8ecc013f205c27a8b20e16b1b942c13e2a3b9086ec8dee67e6c5387a1d3992c156290e7be1c61fd328aa883a7babf8764b4308450a9d112e98f1bba41d6ee967ed326d9b4ac29eaf3e4e941c7e121251d43e3f8b943529cd8eebf765bf14696de5d9946e630d8aee1014841cb0b0e3d777b", + "34fcbcbb737aa1d9364497bdfb8aa16314b862ab04795c32d42dc1e9183de2355c1e6ba1a53eca717f0b687f7905f4c55c0803d5d6a249d1d40c579e41544f50f69539d55e1baedeaa50730abbad1c4142ca12ead2f4e04bc6f5ac28e8a9437fa33cb0348f35cdc01bfbcb7b1ecfa49ca1c9c345bb76c86aa919e1733b768f260d8e5eade8b5ebc96a0ef3b85adf4357bf568a6be03d38a3d3" + }, + { /* i=1633 cDividendBits=1185 cDivisorBits=446 */ + "db781d1db72398e28f8fbfc88c0f0c7fe851a3842c9c8f9f50e9affde246e3b9ea6a3de9225a0935a70e4379c1a845fe9d3fb0078176dc51b1dd6f333820674e3efa53f4de90bfa254b662eecb35ee92ab4d8eef8fbad4c1702bcc75fe9756f16da0123668bcb8ef6609c10d394509d740bae6b630017d141c9a15c03609935d00249d693152554d84c47f9047c514c96be33128", + "16240c13b29b947bad8b5f81d36acde7bf5318384f0fcd2bc9f3b564fb2462bdf186896bdf32ac1438ca99a5d5a0bfe43a77f4843b2340bc", + "09e994ee174850b8a3811aa46ef34d1a46601a14cc9a3e9fc8e1c433e4637212eff9f604b90a17b2eae50177eebd400ee8a757e89a9ed7c4bb0f26586a3fd6612026b2dffe06656b38fdd63dc4b3dfa224ae266ef43f7262c1b2e79c7f", + "068e4210a02e5bc8fccf613d917907ae914d707a064cf8150e24e2857036999fdf45cad8fc6f09ee7d6d3d3a68b19b4f6cbe8d98784f83e4" + }, + { /* i=1634 cDividendBits=1969 cDivisorBits=1183 */ + "427f3194c2fd506a523feb1b079dec127086b8c986ee94501a36833631f944fd3eb54a4ba0140ee8445931aa84962f3d5faf4f35f7503b200cf4f9b3bf4853ac574378aba5864a352749a0fd324cc8e4ea43963f915a33960a1700bb9530c774cb821bb85285ba33db72d30b5989759ed4d38416fbc3879f42a7ec780075eb47254adc295950ac9821ed846e31fb63db763bfad981746182017c13ba0dc35815e4fd3d6471dcda2703ffda41b686a9c8080d13c9fbed4024e034a82945355c3a5bcbcdad06c3573ad131081e09bada3b4b2e704ee360252b085e877b7d8e25b6f4db5e04c0d4a4bd72ec6ed85c120e889e9cfed19440", + "593519bd3e8579af5286864fd24fdcda458c4a3dec3d7af45078da32ff8be2e179345d0bf328a743f2f615522dee18a8c9d2fd95cf8a9dad30f93cb14c132bb652608cfece9cb64efde8a87d1d8433237a8fa79ddaa758dec024a1dd2c9bd31ca2362385ee376e19f340bc46f98bf024efe6a0f7f4aac596adb4a01fd64f31acdbb45d7bc1c3a558595115e6ea719e689de199c4", + "bed3bc92a1ea5d5458c70fbc25a462e31a184877ee961be11617677123c525b1057b00642fad5e9a888ecc8a46bf3cd78a7e44317a6a5eb2fd17321b834557040bd4265ba65f9c37036ea29623ce5e7dad4498cffd172f9f5944fc992bf84e01614d", + "0bbce8a946edfe95e764e34110940fd1b09937885b406efe438c21d1db7e6508bec2fd1ba45c109ad60e0e4d6806942314b44128415675a402db7a6b4c21efc328564af5fe3ba20ecfd779f3d11e6c5d6039d9a4d2abd7cffff1a49402228e80b8dc1de635919d4528b010a0f1bf8f9f8901800c24d69058d2cb285fc7108636998c0ebae7bbc6f6b0174af3514e18b7b4ef104c" + }, + { /* i=1635 cDividendBits=3076 cDivisorBits=1973 */ + "07fc808b6ab6b0cdabc5f3a86c68c8ac93ac18655831dda3b91f5ec71d391d34ad0ada7ef57523d0044f58377e5d91f771573d21d41a0e1ab4eeada797fd36787e9ac6377176fe50684e6c226c5a5f96011e76bb337e59459e787dd20854ae7d1b2704c2667c6d6290b088cb37910c15765f343c14ba93287f60b95c1f5ab3a00c8ed72f28d6f2322dda95ec40022086446dcf609e9e21da940f48b0f562f0aa262503696d89d357409ad2689e26e33c9385814349fc9c0f178933cbc9a657ea4736907539cc211f3630d498abfff50e25399e19b9c14d69a12a0065e4460451e08bb355323f4b2c1c41aed2fbfae1f6acb61ff14ac12a131721cedf93a4477f085a5271c2897c379072761d73ee1db66ba333cb8fa6909c19100021939a27809d92e16ea269a8943fe94fa22e4a3c3fdcc2df7c8b1c0e3db16749f5d251a5558658b5fa0f16b40e3b5da029fbeeab0d25b548548857d0c1373c5254ccb3d878151e470634769377ae5f101ee25abb354e2b16209be8318159108443c37a6e77d6", + "045bda6f04c1718b14884d35316653c08067ff79bb19ad9f6abaf5b8210c7e9e46c24ee711e8a8ac68d4ae7e26dc40c950610e67b8e2a490f155e271a2c701a5cf7cf184f42d495630cc19d34067eb29c6a5cfe9bf73bd3e3086e27d2ca552206a4f2f13e1d706e1df001d3a103b43b709e853a88ca5eae8c613a925000acb00776d9d17f21659f1176d957c85e621bf43795a95cf5bea7c803c5d2acd479bd12a5acff3dbf1a4273f35ff20687408977fa6381b5a33733745c189ab420fc5566f08d5d120e618cdcfad6661031ea542138cfc8d29d53fb2d462799cc9ed25b59630c65b57e7829e110fbfb7cfc5bc398ac0c58271e5a7", + "01d50d2947e559b524031aa137c7994e81bbee9065c2c6cb63a5d2145410b91a3f29272ccbe786efd0642e98bed53bd2c54ba73e2943a0f21ebe4024ba942a563b2e7dfe38059f58c9ad29acd74f7a0b635ffc0c4f750fef728ee87a3fab672bfea7e155a5634f190ab5134da84ac213ad63522d9896820cb2874a8d6594c2131eddf74941de9ad9626f11", + "c18f4ecf50243868b87e4bc0a06eafec438af41b31758ed019776807e6b67432b5a5660ac99cda6ed44b16d43b87867d0abee8a1b2ecb28184283588eff867d959699f4516c83c0a89ff00f2d6a5d17a8d1182a55c77eb1fc752af5a15b0bd4af915e33bd3f29a93669e1a97c064c9f632f492f23f3dc995ae7ce7d57436aa5abc990dd7dcdb0d673bfd6c007242555489a5153691d1f1c6c1b30a446882f2215a7e47d93d724151762b3c3144ab4f1b49fd45484b9b84cd5cb52dc314e6f18542b138d7a8c03bfc7c1bad57648c77a7c27fe58942ba6c9c8a33e5a21e29fa0b04977b8058b5442d4b93ab2087e8b1775f5bf55ccebf" + }, + { /* i=1636 cDividendBits=1661 cDivisorBits=226 */ + "0d833068644eaf59ec31ba8ef645b55c0b0125455241fc92ce8f2f20323025fbc156f5dfc559efb76a8db28441480225934ac53d8dba86e1dd42d86fdb85ad52a949a87620e538103e075574bb627c00465630ed650bed56b770ecac352dc5284c453478cd1c7aae517fbee5a974131729ec07d28a5695c50832b6260a36ff236f43c5d2b36de9a043541dcd6206c7a04ad2f1214c3be4e4f7ec9b044b86e6177fbfa48d6a42a3e36f32a7c1993206716bc8df56cade5ef604e7f9ad89d40cb419a74d8ac6c7f39e04841ccf439d7865", + "02097a71054248a712a22d90d75a740d34607139b178b0bff81fd188f1", + "06a22863f52b5c75354436c18277cdaf133d3268cdc3a10584207f2570a82863d0f3f217f50a7f1a836b604ff10a3e2af1f4798dc43033ebf7842dd401fa647b08464bcc28c9fa4771657cb9dbb78bf669a58caf6c3e275e7e13e1ffeaf1395e1f8ae652d4385c360ac951f52d340a14c78133bd042b2ec4834ce6bbde0b24ba3f070ef5d29b4ee53af45e1595c75b9afe7a2e46f0c9971b3106f533194ed715f79cc94e1ce4b4f8a7b0ff4742de5a6c608b6895", + "e9781b251db6d8c2db3920a25e937a545e2f979eb6773aabe42bdc20" + }, + { /* i=1637 cDividendBits=1543 cDivisorBits=632 */ + "156980aa7ec3ef448c36809256f14a36dda239b9f2fdae78d166d8cbc8a81fa8e1cf129c93345dd6d619c25ae5b0cab5dc423620a2d52dee944469712980cc742ce190072adcf07ba175059e006b5c66717059a933378cbac32192b1d26a170a1f11186cff295faa195ccfbb48ca5c123ac1e9f41504da0812be6c88cb656ec1f214cb55cfb94e7b62fc9b90076f196c50bfd6c613b2e5f3d1e3d92174289d2691c947c0dad2808ed4f8b7ec59485d4d7290693a11d214edaa58cb77525e0f0b48", + "a3ec5805bab88b19b0a7549a5e5418d6bd0aeb790115466067ec84413d918ff83f45f9fcbeda293821cdd532a3c022c3428a711c1281825c1d9e9cb2a42a2d3841a0556f957d5448ef54d67899db6e", + "21707feef02f2cdde49416c551621da2d2f72771649fcebe80493de8f2aee818b704415ffd3339c31c653511d8a3b06f28eb309f35766d7e8d5d17ecef677be0491d7a0fb467526cdbb167896c6b2e2a61740d40da230e99680fb044951cd3905f44577a22557e0d9f63fde29b44ce11dad4", + "1ca460ca6b0ee8eeb13e87a28f2314eef415987c47e3fabf4fd74bb2fa4361b54d0c03b074c388748b93ac0768ecf65daa3d07acdbf4ebc0fe0ed15016ec7c73d76ca95a6fd8624f3adf01637ba830" + }, + { /* i=1638 cDividendBits=2053 cDivisorBits=523 */ + "051e0ac43d0929c729c0a3a68ab6acdbe810eb1b472417dee44ae4a1031b4891dfc22cc4a0f9732a594725c302b626a0c6c66d89f54061d12571bb3076efb5b9ad53ba17575c5ddf4122216d88410bf4887d509705f5c3090c5c564dfa3071e7ab99f9bb333d3b64340193e09f154f084fad390f656cedb711dccbab97350c8fc0fad2a408ed9c4a1e6d8d811bf5b8bbcd20889041313a4fe81f2f91b5be7402b89ef5100e048938717959e8fb4599397a508d8bcdf267898e4639e7431278d067a0d750806c38a92d4112cdeabbbc0ca4829647dc8df6b2cea9931288d4c3e55ede5c7063396aa483ce84e8822fe952cfd9e7a46ac41f23c999953d0f8711e50e", + "03112127f6fbd4011e5aed50f9a4d1eeed8e1450ec699cb7ce8692416aaf7534a11752098e7413b9a68a7dd0b0870857be3fbf5e3c853e474e1bee3e7e56c64d3023", + "01ab274740d15ef60c65aa578434559fc08a5599fd0d7f113e5be96b7137dfc778e5930989ed55f2c0f2fd009cd9733d2bb4d8e1d852f21fa92cab32642375798bb9c26d247573f1634986dc8532fa98d3632054d5ffdc6059ed6f3a243d334ceae129e9d3ab8cb082578c8cf3ddfac28bf192a5a97802cadd6c2fc6d13d281bdedffce4260a981f3c0ab5632373a63b7cb131d6576cf91f113b67821935c2a0dbf840c2f312bc2c261e30d145fd6c20c1f9f995120e271e5db0078df35a16c6", + "c17d294c29ce4b72dba2b901d3085af338787aa7711107b2cc0ebb05f7776290987030e0421f37e42bb006e4f34c9ba6ffbca62aaf186df1f209c29ccc5feda7fc" + }, + { /* i=1639 cDividendBits=1788 cDivisorBits=1291 */ + "027bce609b08dbbb67c8c1b0aab0b819cedb6cf5056ffece91a50471811bdc5f660f3f5f3e9b9585d52e88aa36834fbd06bd4e468a7ef4c88a1295997b5824c86461fcd4955e46ba9abdca988bec2eaf0c8543b867fd2bca0ce59ad5009b148463417ee98c011dd8ac2f150a9d0f5053d4f81738ee48c8987e7581397d850de3e8c4fa8da8a95576f44eda223f3e32d80f556839fcfb1d15b619cead9cb8eccca067f6bd40b0f0f66d9ef964865effb23865099283bff9e454cff9233b9fc0bccf91aa1b0daa4a8a096f98ed344c6974c1b3563c1900abf353be2980d2415021", + "0362a1aa437a67beb758434aa073a2edc79ef68bdd79ebc832a52993849542f3960e2889563c6983f2686bed706a2f579b8ac926a671c20818c458fc313b2af9543af5ce6a67f2ec0e3c41d69f1c2f9f41b1892f997244b956062ff18f27dc23e15462be15f26853ab770b0d6e5466a46363ee7be102bf7c478cbe6e7f326abb60a2dbf691c09718bc2a8f4d7ac273a98c233f1a075d39fef08b24335362c4644daa", + "bbd0a26ecdb77e43731c5261e31b730efe041198605e0d4e33581e7141b837b1913d2a241149adfc101bc7f69973954375975526619a8544e03406231abc", + "013ff3f00de2a1774c1bf673d43e9c314298d63d3db4c72255c191f773689ee4f64b214329230171e3fc518b30938c4064308f5c20c5f0476eebe4c78518c88bfde8f847a00a3eac232dfa343916d02722d3572be754579e1a59e87b6c470915ba2f5501e5f8497da4a865831f94f9dbe9c083cdc34d094282ceefe7fff79e7065214f2c1b09a2cde66783fc7e059e14538032371eb79ed2f7f534fd2af5ce770349" + }, + { /* i=1640 cDividendBits=1121 cDivisorBits=868 */ + "d4f34f5e244892bf57854d41db5712e73a8c053d81b1875b26160424ace0d7eb9ac252420029a838e4207f67269fd5cb13ae1a7f6825d133d5e30aa514445489eb456388f918b31532f22d92078d1c8a13ef51519521f0f96a69240c7c8edf7cb35fdb4b17027010fbdd3f1a85136684f61f952a03c51ff0417862ad2a9c96f3bac4f3f63fe18c057ec9a5be", + "024c4085a8e1e355c6f62181cf4afd64800c19d482ee25c9b1aa06b3738ce144571cdb79361b29966050774b79bb732312e09445612da85cca6a8f62ce1f2e61cb1050effa1b33f8f71d22164ddd0b9847682e91fbbb6a25aa353b5798d8d45e72041f328b4ef2eb3cb83c578e", + "5cac633722da4057345179beacfe6a883a79f55d124d46a3464b89dc8828296e", + "0225b1f9ed99bde81aea0b53e0bb7c8384e48854f2ef91e081ed1391ce2036bc16c75fa8d63255cf3a1bf17d4ae5f9c03e87807c5fe54de7428453727042a2be18baebf954b8364749d0c819bdd5ba22c8e886408d54a9d677c322eab391ed3e2f90acd5b94f26aa738ca648ba" + }, + { /* i=1641 cDividendBits=2410 cDivisorBits=402 */ + "022b30d983fda8c7f4e260a931bbdadd9c2c2ff57fa62d5d01149b01bc2faec100374c2fc82cf57ce6dafd5c9ffbaa87c9c4b5a7340c71377fa8780ed5e944004356a5560cc281a90af2fb3875f6efe836b1a6a91bee18016b37eeaad13e73fa6f604580c1cc56f7538d62d7e0dcf1a54d5e0c6f282f432a332f1580130059090a0fefb0ac52d80d12ceed20bdf0a8ff326c6db4f85c6bdfad288bc22bd232ac07a58d7fb7ed5a7bb33f67ad2613f74e460f8411be047e33c85ee5107f68698e1084b6bc6c14ab07e029976a50511a1b61b21675ff9f96bb088a153147b0bfe376acf1a05e6f09a31b8bbf7759263b1c0c87871a67c36e166b812a6294dfebda9695d893698912c1bec86a25a2a40e508d60464f5bad5332ba2bc86fb354cc86ada7992aa3d290721bc88d75e61c", + "0313b72e6bea076e8038726004a6e2f789c060933d5c341e3df4429926e0b963021f26909596bc136ae11f3ce3208ffc60b373", + "b46e83598311843aeded3323620ca23ddf62c6cd7c647ca5c91762f7a265a4aceb24d2af802beacb9306fc3503160bd678b1f1b0a7686e3a72d29ad27983ca1912eb638ff69ddb9423c4bb5636345f33b3ebdc36f916d8f8c850c13c2e721988af0277f0f2f1bdd7b74191a1ef1d58a69fcb084146eb65e1c1beaa9017a0fcb71c93698cd623e0e24516d19ff06399298c8c24d36916b5619a7c8c7dfd2384b1939a0500b5e74fcf576c27e21a789c186e512473a9f2f1864d4c888092bcda82678e1045479f48c722c2ed92185b2d86d0af0e61b7c01d6a30a495eed38bcc8a6b26b10a8bfbcf21b84442c71e950ed204aea74b277717d7d45eee", + "02e43cf40d011b7c066ecc456a2bd56422707c0e33a4cf8765dd5e9462b2d5e7f57a7e926af45ff0ded76903832c21396ed732" + }, + { /* i=1642 cDividendBits=1258 cDivisorBits=292 */ + "03f756df9abde546000fc8483ead32cbada8d4a39a9905d29ab2923531be488b525a2b58c204f24961b4a520135ab290be7ffa7fe34edb6a609c23cd4f4fe716a80b0ff205f11a04df68d920588b836c7cb534f6af2f945c2a014437ba56b3cf38ae5d96b4b9487fd35111216727c68ee9b0d0125e3e0edef0ab527b805426e1b47ef5ad579a70c1d9299fff842792126d05f4d38c502d43bc3a40fdab55", + "0da29f3dca2a43e737d00b89ee3775584c009e66a21698c46357b48a11f8eac246fa3396dc", + "4a76df1f9e0050a1ae16ae3491b9dafa2e5217108fe2ed4ca5fd0202c39c781c1381ec4b6182eb7d20048cdb3013255d681e0e1263dce91cdd696353c7fd3fd8794438b1d0d51bf544795da31a328dd3c9be09d3bbf92231307463d25616f688124c55cb05b6cdc4a6fe99aa00fe8ee63778d20976aaea834f", + "08367b78b7cc51618459f55d59da26337ca1ed4a0833a0d9c2ac89c8fb7fd33b8ca7c78971" + }, + { /* i=1643 cDividendBits=502 cDivisorBits=151 */ + "2bbc14b08ae45e6831127d61907658a3ef54b0d3bc650cf9313a01b0f32496b31ca7e9548095d8dbf06aea55028759991d87b6e676100e10f90ad4923e1b62", + "21c922e4d99ba122dc05f8744acf35b251b876", + "014b62a37ae9c84b913122cd9b136686b075361d4422991470935f4e52f3b9dc73eb12e0e6ff59de28fb54dd96", + "0174be57f1c2b9660d422e4f0c7d515166283e" + }, + { /* i=1644 cDividendBits=1021 cDivisorBits=174 */ + "055391bbb724b414cdc9f95ce50de3b6c582d2e2c0c8efd91a260b9fe0bc15275aa2c7cc23dd84f5c8aabab6662519162c1b8ac165da0a84c9eb7caec0d92db09a5f39f2799d5fb4c4ff470ceadddd8a4e434713d37e588d62872cbb489f456ba6ae10d27f196acf0808a27fb160ea07ef3594f02e54162a53b9a683318fb07d", + "264d975bf68dc64abc97b0403463808b7356cfa38784", + "239976137ea16e1848f737fc692160719556421f0b94bf8ad1e5c281a7b25ebf8e22990a7ace1fb250b2491972a00536dc1f2c0563f2c166c564ba5439887b114e420fd3fd3097a5361b13c10aa2e7016c69a1858b3a9813b3cab746a4e0d4706d2d4aedac59ce85fabb", + "123ee3e6430834776f2a7793b43bcbef5b6e3330cb11" + }, + { /* i=1645 cDividendBits=2293 cDivisorBits=1267 */ + "1c75083057e58c19b25b2ccfb19cac812b4804a575ff13bb6edaad9fa271d8805be3dd7dacd8a981efb19ec58d5866ede4941bb21a1263bde2c950a475867e05590fce015657b82849682f09eee2cd206ac25e77812dd2b54da50b40e91a228ae1e48ca0b78fe1566fe26ecc0cf89d289c1f6dc731ecd65b199ae74cd2ea288456f7902cc73b4617edc7584c4a2e5cd5dc7bd92fd862c12bfa41621bc17169326cfdac9fcfd5638bacfa08a30c9c113e469975d9a4a3ed00f8727311f6b4b1d1732c03439a5025519335ea40a4ee22fba899429f88f7b34e7ae59e8deda44e204809821e30c00548deabab59614f77a4fbdc9ba4d199c839a2983860da1de120dfb85e98ca1bef0c6950c97eaf86891e07953eb95758af935de3f90f7191a7", + "02f384581c02d145014fcb04d761df25fbeaaf88597ded5fd79f4eb77fb4835c077fd4cdd118ad85c7ad6125efcbe8d6ef88d1abb62bec4d7904e8eb61e380f406f97c64a2a1a6007c195a62afdad21ef0903e2a39670de94ffb60d37b6ff7dfdbdf4db8ef87593e93f18b4b5efd219dc57f2b0b9d6da83ecd32fdd26be6958bf47116134cd78c386712c02bad9ee57f1343cbe63d0e4b9e70ebfe9d60cc69", + "09a477605d458ba472da92c1e5aafe1cc90213796a8461e96013b2789620d53f717b97029c95609293a6219e90ff8d19cfd44f57b451e8911dc662f6128bb87457688099ddac2c1770fab03f004a07df0fecaf49d4acf07e2bedd15e63e5f3c708cf0f17bc85c5b4eec421014aea6792f51cbecbb5a7452f3ba0ca888d7e5d75bf", + "394ce60bda31eacb6671ea5456f4bbf9506f4b9b7eadf8aa85e62529b06d969feab53d91db167cf5f7888acef539c16a80a9398584e3f8d37205f064be1e0614bd6a426a6dcc75e9bca69bfe708b5a25e7a3bb667e99dbd066532f4eb10a3f9b7dd80e36c9777ed2f6f7bb660004b2b80fb8fc2475b6ce3c577e46a926a26c879c5df2839690d5d01b57a822bdba8d41fe0163d3ab7fae8b447976a81250" + }, + { /* i=1646 cDividendBits=1062 cDivisorBits=641 */ + "34f3e1fc1205d1db855e60efe1ef6c7bd47af3949110d866a3e9588b2a9c853050975bba0f0088d0c4f6e9ae7d6eccccb64b88ed456bd73723c46082bf16c0b60867b17bcdd8833d756cdb193bae506f5b33750ed904ea290ac31977286d5456903f7938bb3be8ff1c4a0542a3591635fd2b98910ac8d9522eab9b57a0a738423d0419ccc0", + "01f0c5dfbde73ce5ee083bb4399a4c34d33300af7b4d46cb64dd94ff088be367f795824230a30dab0123b48ced8fc7e650bd9bf88225a2dcfa8dec94e404288ca0c9dbcc5d634e899108f8c8d48d9dc3e1", + "1b49b2cc683700e34510ee0ceb2f8bea1cf87960a6f76d26ddc66d073f532e2183f97fed43db8f11b1193ad2a1909327b267f05579", + "01a4a61c457b872f5e3fa6a8435b372a5817b7c76b9f5bbdca88aee7d6ac6d352696bb529de61b7b0549026796944def7c61b0d3bb0daf655eaa66ebca65e115b25ebda6c57b0fd06a77f70b97888e8267" + }, + { /* i=1647 cDividendBits=4083 cDivisorBits=3374 */ + "041fe9f74d3316a1e151ceaf65a9bf76f3434ca908f278118c9c94f0c583e9eb0a5259024aa5d88c7c1f92cb01b1fca89b83e5431fee83d037865f1ba5be163c3c74426193ab2f76bbb6780a88706688b00650a94df3a92c7fcab97d79ab8293e1af6f6a9837d6940ea6948945515f5be478b6d8d54ea4ceb9c5e8e2d8ae373f4218cd0d4055d30df8c146f63f771d00d8b8d2c9174168e047153df1d03ff535f3f6c03546df83e95374a0579a77547fd78efde268b22e93b98cfba54da4e12a63515d1526fe295d58db6a10ecc283effe9eac27a4b830aca5fd73ba277bb575d35d1e6763fc383016982c21b128c2a51ae82ef391b75ad9e4996e59ab06de5d4531a073f58e58dde42a3e8982f5804d026389156da46001db3f4f164cdd5d1700bcc62b0df85b2591a290a5e307aec9c75f1c0a9b0c6618ba3dffe09aa7122f33019ebca9080db004b2b1ef3a8d529d7916d6fa398ea0ec3f2b62338d65b9815c129fa0a190c8e6cfe799d4221786645ef8675b37da2c7fb4cf0cae54a402c4e9ed77a213a6606f41246ae5f55bb595e31867bfa2b41acc0b24beb9ea4ee69ffcb5d985f917e08a721c9373c1cc3efa94b794b781fbd64c53f8a022385febb1ef854b69ee71d0406a32706e8614a9cb38f836c4ca163af2e360c3050f81ec4e3f8d7e20b140b28002f9f58e5a09329179f51bb5c9d4244f71209abb9a2b27", + "20f24852c3f6a999abe2d7d72502f20075e7bcfad53b56fec7ad198579e93f3f7379830701298b0c060897480dbb97e27bef23e9809b53afac458bfdaacf6d10abc27523f02595c9826cd1db395bc39e983b29f5d6ed21fc39c91fac2fa6210481dd9aaa92559babdd3bffca57857e508a52141ef0d9738749e02cc94e09e1530e1f0f7a819d8d887f5158e2785654fbd2d4f447fe504a2b298b9b47dfab17966eb36baa2fe3482e98800657a808aa91af9ef63be8f338015ac0dfaaec6d0cf3e0be5ff569052deb7b9d0f8f479884c9fee0e8bf163b3176c2c7ebefeaa634f214cbc5dbd06448ac61ebbd88407af131b401cbc5848a5587450556eacdd4097ee7deb15a76524c70b3deaae14250a15d51c072fcdab3312791f4637d3c4c532040d1606c09bac959d19b2e52cc29638e244200200c8e3a255777a5dfd1bbc8bfb599fe5746833adf4d126492374b0535e89eeaa4db9041d33121eeee41d3285bf3f0726c3a46f7b061e535295e38cbe79cca6fb23aee573433e6268114baabe5eb4e3ed5f1f90285f0e155dc54fec63641980d1109b30fbe854b4305b036c56602b5b464fae7", + "200ca797a11f6fd49d3d47492cf2b9270c9f6426cfa238769d9e65a0486382ff257bbf440d4a21601fa065ae252d774cd7a931b9abc46223d017d614f54e0319fcadd461c28c2626d68bdf06481069bfe299acea5b684174be", + "1b2f5cc57ccc3c2f238fdafd99fa005a90b4a0663e67cb4adde595a1660efae94eb61ded2ad8f6350ed97f43fd202e33544b75c8099f89e038a40818546979b15edde9c7e24a7b6ef5d2aa47422cda974fcb4f550938f05e9e8ea5bc9019989fd5aed15b40eef05b4e7de5fdb553ec20d4f70ac69a48aeea2ef0e7369b2bac2c22266962f4519a205c607579681fc7b7cae2e3b8530d7d278f4d9bd38a947786ec87a75ca568e6cd89ade1627e1a301b5f4fad48938aa0bf8492ed0fd7228318812144260f578f0f936b17c7f6544395af9790ecbb29feb45a52aaa001869d1ebdbdcaa19e086c4d5ae05f771ef62fc831fe08a1a7fb913267acf438db69c4b16ae97fb7ee4106de1aad72eba477060e32b2ea49ea6b62d89acff5adecf26133d52c89fedde0619567a2e156d92d5819b7f700233214a54706fc8066ec04a693529185d174dd92cc0f06544708315b5a2aaa2be7b6af3de74c5c6ce5462432952b7033049ea63264c45877a32ef58e46ef524eff1bfefb3cbf8e8e04bf0fb618847a16083716288cfcf62d8b402134f3d5204009e9380d160eb79fe535d503a49e528a5047b5" + }, + { /* i=1648 cDividendBits=2009 cDivisorBits=99 */ + "014d11ee6c7c68f1fcc3de6f5d1b2520dd5b232921768c75bfced2587e8d1b8fca7b1a3bdd1a52afbc194f9566d4af133173556fb5ae626dd632ceab3585776a73abb3a1ad39ab1f6de3eb890b958bdf998a54b7eb0d76b951ca38836c915a2a8fa76b84d0b63a8007315c8d37ed23611da60607e71576b57412bbd27310595fb95f5cca261534e2135fe2d9f643e960cd29e6d88aa82f459757bbefef338eb84354ff8c41b307c7efbd4da2f9fac4074162feb60f607587f081aaf200db648c39cab1e9361af2b2ca57fda2f291a716339b70beaafb5aec1ef17809fffc298c53e3418d6455a5ec5d23b8413fca908052653e57b2b26689ecba70bf", + "f91a2a86a57ab0eadbd01293", + "01564afeeaacf7d5da7f5005ee50eac0d78ee56c6007ef8e0834e713b491c53b69dd2bf6da87b4c747d76ca2ff77d331bc3b50655a8f4e9234a2a7f978a4206e54181ac41de8449dded5bc4b4c4255b2c81f4c0ad5d0f7c9c746688009d6048e701618ccace9a91e33698e51dbfef1f735217efe0758a20cc9e0f66c53af2fea368711f913bb35c896250509e8e1abc489d720dbd461afc462fc89c77ce746a342153af6aea3fbc864fe046f2128cfe1c1a25366f37b35eca2bf6d79b2d9a15c56da6685acc41fbc74b7b913366c05878f13e7954e83c06336b6440d7e0f59ca40af041918132186e419b809e3c00547", + "f23170d17323136a9e686afa" + }, + { /* i=1649 cDividendBits=2502 cDivisorBits=2050 */ + "12b5e3ffa080a0ed6fffb0394f0c758a8ec4a6c4cf9728edc56623d37517d55e897909b3fc80c3a3ab6de872130e4ae361a556ab14666dda75d594c839c5a122ca6512507319907999b3867cdbdb30631623f6c70d6830a194f5b3d570c121d0ad5eb88b6bf21e9b8ea942c12c14aa58dc158aaef7623e780186cc2d8bc93e2c0771e166cb7eb61798f1aba42b12ea234d01a3784ce4e953a728065770847d8b1995a197fd444eec1c3cb1644b58ebadd0bfd942e8ac9ca198cd5ddc372657f5eb13b7170066b569d0affbc4d6e9168fbbee05a736f48188dbd02b53416c2480185da597efd9be1a8d985a20416399706eb3b49f8b78d1432cd709b57c20c0fe358d202c93104542913b7d5ef0933b701aa1bf4b6262890fd79adaf60f71e7314b792896a9143f6884c0b126e45927ac194b2035242f30e17f", + "027139262f5546b786249ed7b4b09a1ba3d23bcf36bb26821e5d848a561639cbc52223bfbcf8f381a825c1a77dc6d52f034fca9cab1ebf1154e9d4cecb0d168337e1003c24cce9a068f87ae2bb71da88954d442bc3f4b69fe32485bf3494177d7c492ab323e58ed54884a658464ead86132277d73e5996aec054e2dc636d19df2f40c461e4c2e6a1ca829ebe2ead2cf8d0700e8612762539abb007190cb3751efa67af860461552e18f1b982a6a2d86dc3ae6fc3c64a5bc17f5eb53b770aa695b0af6540737d5fde8a43fb38e66b8defe72675812efd679def62ad80b59b71ff6372afd06b2298e8cf8d996073752cf7a39247301c9bc9e09959973cb041351519", + "07a93d1a00d3c972f54c5476d813b3e14e0369ea375362b0a4c7133034c32ba79f358bbd8e376c6c78e769bae02132f789cecffe7a91c07aa6", + "01e6e6a5f6571aebac841262776050bc4769f40474e0bcf5582f39232f2cf466545b9fff1dc45017bae2b0c1d0dbcbe1b32eadd76d1b14cb3c557a3bc52d6a41f31d46486b01fe9af7427a2e6f3c86e4f8cdc37ab6baa94ee34502221d4235016ce1474fd02c11a20f57817241fd1e79bab7c7dc32f199d22d29f1a23690deaa4e77a1090d68e7fb5c34067cd264848aa980e31ea07bed64be02db770af8c15bd944ee9f28069e442625515a14f5a97261533df4a102978707f946cafac8e008e7eb86e143decb77a45816dd0f2202f351b9e342fbb4141b2f531a333c721162d3fc97717034fce509b575f69acc42b9eddc6a112db4887230db9107199ef74949" + }, + { /* i=1650 cDividendBits=3687 cDivisorBits=918 */ + "154ee036f17f8f22accb8f4280c91c5add11c4cebe94873e815e4afdfbcbd987863df47be109ce40389b9ad7233c18583fd82c448855b989681a1bbad980dbacb72b90e2caf9463c7772769cec83286dcfc93369acb3ad4b615a1ff55172e121fcb1db58a11b81d0f84087e4be0dca3ad068974e9823c5597c91e7072111f85e737394312a12d4477532fe4413a6f113b52c52325453cc4ad00396a4df694aaf98e5222cf8a9a1083abf6baf09b7302235eba689bf06a5f76d800b9516c0530a89cb4fc9c70f8b0460f533b2c8fb9074884b76b65dcb0fd64505dcdfb95e89b8ee36e4a06debfd715aa7f7e7ce606e74b605f69907d6c1f1c415f360e6607aa6e4138c805941d447bcb81df66abb00519af263278f755c66acf5d03d1a750a996a236fa15a56b4fb1b79df36ec47aace102d7055a54d2c8fab0e305bd2840a2ed05cf07f3b7b66d4dac1ba7bf6fbf44d11567e71071cba87955bb5f6d895e65b3f30400a3b69cdd1238cf3c825e7e4ebf3d97a4e4384b4b8f3dc8cc07bd86b74f29216c3b2e196facc09d3e26eeb6ff91cd02aa4acf6c2cd5f9c9a1c830279c501898cf1e3ba79b735c086092db704ac2f245652803b89ef1a564511ede78af7c66ef9362c92c1ef7080df004d", + "2c2848378d2e7263980d9cd1331618266ba19ca7f204a3a45fbc6b99f13b7399bd941f4a062a2f1f63701ec9ce8647400cf630b0623a3ac1c23a550ad765cfeb564c23b2522ff2e1b77c8ecc62c3219433bc82e8ec728f4ca3f82f15ec9b223a397488ffe618108a23e47df98185f43a886bb1", + "7b885d6f9f2700c7c901f9da8a942e7c0c3ff9144abeb121b498c82932990920ed3788ba6a90c57e869f037de431027648fd95260d318e6e403915ee86dd1c7b27e2e0ba96b2946d6770c7e5a3abcb046d114a758144831ddea6ab70b5f6f5e3de50a400bf02b553e603e77589079b65f7e80b1360b3f0882f7792c7e290577fc9d529ef7f5266578a249ba65b5d3a9e3439452de0926e514fae69b1ec10bec571442b4e207efb010eb0834843e852587474e482c2f2d4fb180c8eb0e63c25d2865f9451cd8965578895ad28c344985243c2b28ef6c68d3879b8f71973a3aff313d4e4d2388f1c292a608698c7ffc5d66af4090de0f78ea4120ffbceca446699b6f060e9e7b4ff0e1f4b31916f0f8794b79a8dcaac4c452cc476e13e28ccb487442205dd9d415d868422721866e132d9658044664e23af83753154c7deb8ad826d05fbbfe30a68d328719d56aabc350653d46f018769172668ba", + "03ae81f41e5d9d4d23ba672440817dcbe01d6d59130ca5527eb6a2660e86ed1898d674d7f623639e4bd279c1f5688de78251a015e4f2f1edc3184bd7bad4e55b86638f7412dc1647c14920a6e41e7aaf9619e4a830838c0ed169ee18f5ec903578970eb823653e51d1aa2dbb48efb0aabad9b3" + }, + { /* i=1651 cDividendBits=3119 cDivisorBits=1422 */ + "570db706ca9680a3f5ab593f55bf3940d748be55ff4ce73b1986419eac558c80eb8bf2cb81b94664612bd6639d550babaa8fb1d89ad27f9e3ce88debfb9f2306e8e0ceb50a52104bdb94144ee0bf52c59c31321e28c6f17bf7239bac7e2eed4284faa1785b8167fd5754ed91fa2e7408e70153e4b3f22a860b28ba305c20d2c4cdb6049a4727d0a73b9818c710b952a0fa672b2d6fa1ba346c3294a33046624ea9e3fcb9b9626d07143d9a1c7d9dcce228ad36b8afbfe5829688b51dbd1689f3e70733967284955adaecfff1e59ff0f969e84fcdede233be58934dc7593fe130701b94cebfa3d6774786fd74e975a76dc9f1b300d41f4c0bce463b79e021fce89e0e73e3fdb570eb13f9b1583b341b496a48ca8a426043c2aff7a1c75417dd8441f40ee2a3ac1f863b9abb7cfb614b28f34cc192705f00adbb048173d7ef6ad8b4b7352c394c8b59bded723ce01fbcf7d70f8ca90b6e43de3a1b63b79c2d65aa50b6b20d30086168ef668e9f8802f13841604954fda61aee04a23dd9708f7ee1386389d4a4f3", + "0f7b0735ee86f20b354ea47866b3c3d741c2d3651727367de0b92d14efe154132deb727f6c0bc18d50c3f78c62141308f3aa51707fd620516a52415c26d81cee98a1e125377e1ebfccba3cfaa56b53726b0ec41df40b2e31898563efc5d0b1d039b9553cfa662329656e249044fd7c61d57259951730a9be364fb3d7978b61146cd46571efff85565e771638a2d9a1835b9c1612c26433b55b0ad7348bdc96b10eabb44ceaed974373560fba48ba1dd3c4d1", + "059f97831798f79ed3937786f34afbf5d84d77c40055536f9d0102529f96df6f2bbb65f171f77042065093e9ccc32076c1e27fe844c4f6da74e33214978fd0826b7dd5d0627de59f6357257811a8295733a9260eee61b2736fb7063ae6a77426bfdc882920bad632a6388a39c759fcb437c5c254bbbc0c8a83c53340380b2eafd6f39efcfce54e5a1db943b9b920a3cfdb1bede67f5eb0de468f5464bd86b53bdfd193ef2b51121476a9d57788adeec2812a52ad5585891a7dff23c398b779a5fe4c7f5ed8a867b71c7e9c01c7bbda97cbf95a6bf1", + "06f52fe7395ef54010bfc389c1c09cb116c40fcbd90171323a402d28e8813f7af2dcd000a595fcfd939ef20603f94edf88305c5954bddeaa57c21e055e4376837878862618d9e2e9b3e76d5c0afe7d1df42c0f4b801fc4b0566e635fd1cb46af58b442d86350962e037e293b2106dbcfaa2fe080f7a34706f430c16a776999c01c2218691fbbff6b0073f3b71d849032f20c0446ff2fdb7fb54417a99245eae1a820db3f7aff57f3d1fe66ad271877bb0132" + }, + { /* i=1652 cDividendBits=2682 cDivisorBits=1482 */ + "fd86020b6ff4e8571bd77fe8b848fc1ee53eee1d5a68cf943b67b351a65a1cd9fe22a055b964e20e02c2c03445b7a0c66c398c46d36be5fa64d1096c8cc294ad68cb039bc62be3263207fb081f33245fd442035e8c627b04a4b2280b27dfd7676ea4bf082fd3d567ea27f330bb2108f1d83b7356fd9713bed1a3b1ed9d48d5d0e550bfbe1b6bf1493b6eecc924e2c819e5f15708d25894fef80ef00c8ce798b318cb5ecc5366bc289ffa5bd189d2d6914ab7aa1510959cd472e4a91ef2fde76c97cd7c2082d6971f4a0536ec4032726d7262533e90234bf99809e58ecef2f9c4705c6fe357276fd00372fa4c844f11f56b7b346363e360b478a167d12b3b22e3319d3a0ba124ab83231addc849befa2bd308552a11fd062c9870cbbedc8fe570d26d4ee29d4726ca05dfda3c818670ebfbfb4034d1c2879a7025b940e53cb742c75d8f49ce10120771a86fb83ca823", + "0355c210f515f105f9ed23037edd59c34df90564cc3a2ccb5c18299a3818247915748e27432d13e1dba2e04b18277b905f2a18e3359a7768ac9814eaa73e31ed2a83e730451710033338512147e4a4ce7d56a98ae040c10248cfa73407f645f0286a07ba02a0bf7a20762538ffa4e202cc0070725c7071231be397bbab13ffd92618bb214ccd0f1dcbfc487d83c120ba5f99c22914abc3378f35841c951f90c3c04f5b6cc407f687a8e52aae76ce3bced795c1fb3552fce33fb6", + "4c04ea7a0be1f52c583d411e953e0709f4bb708d9ee61d95a5a6361454861ba13381dbf8c5cd97bfbae0f3a4a1d35e43b09f46907e0bc1cf9d0df17e8872c892fd598088d734a50bdcd30daff376e8ca2f3bf36caad2233da636eb34f08a29de9f2f495bdfec68a442f778a5a39a9ca42f5809a8f19a7c1422269e9c4d1bd7aab59b86a36fa46ec016b08ae1a58e86831aac015dcbbf", + "033571700b0422ac0185b3bb41d4b0e8779e6e8cd59f8c57cf575c100bad7986b14a921eaa7840ad3327d9b7ce5269884a919e232eed002745c13d009dd071bb86b8f720217026ac2ebfe3520226fab38a4d7c2a7635e0ef8be86f97af0107c27d64b4bbf9929506a57bfc2661b825dd16efc343d107a3c280ea3fd3e8450b36a92ddd360ad7095bc618d69bc8d8ff5c8d723c97b6cb3adb0b900cc63bcea0b7b111ed11cda0ae0dd3e5b80791465341c1048c5004e6fc0ccd59" + }, + { /* i=1653 cDividendBits=1941 cDivisorBits=1527 */ + "032b3711a91b57a96c194b5bd81575bf70b5da69bcd25d7ddfdbba1914179224de4fb813835338f916e678cd9305ef7270d158fdc91c6e72f09f38c55631ddf587d576e66c26352e165dedb32498a110d1a7df3403844d20a77cb0ebe565d138c55b0577e7fad4e391a8d2bf62aad5d0f1c5014ac70e3f5fb720f188e98bc9c12ab4bcfacac39133a7105e9731a6689755ce58a7d79fbfdbf8444f0ffb88232d78768b43553749a58ae28f2753c5e4921df1e8734029c5104738c326b54bcb31e99a17675835045e4369acf4dc197dd2ed003226a8ee820ad881ec69e6d9c16848495f9eb95f0e3283748dbfe07956ff997d5c", + "141f933b6606b4776ca2820acb6296046353f94a6b7eb9f2a11cbcd555e09acdb0e6fe97d0f30a7d0c38b9ae85463ca28cbe99de6e5792b2ef681168ca45c15c6d1849158065f75e95678596949468d8f182485e8b684e1b72b897f177428885c23f50f755632e0d0bd08c9fc7d4d3214d789d4d77cba9e9d549975276a3fcbf100256e0b75a26c39ebb4735f751bb145c9dfcad394dcaee44778c47e2ce460cb492e44232f63b64d268cb62b7ff1b3ccd0db8bcbfff05d0f1d11a3aaa1d4c", + "284fe90f58cef22952eff1938d52f712aae750dc4a30dc534786baa4a88c05c9eb1b5d78650964b494da238c8717eacfaf3f6e69", + "0c2568a7dad364c9ea8571e7377063e69fb6fc516140bfeaebcd01b43eff4ced41649abab181dc711600bf7321afcde3c11df3a6a69c7cb6bb969c66e9fd6b7f435518453bfd3c464de1db79fd942a51cbd9b2ec7d182b4b58e963842b04c51378d81c5251959064a5b073fd25f3413ab8faf3260c1f28df7b4ad757367358a8882450153aa8e318c88530449699a9e76ff1078e09b202a2cda12a4b50d310ae55bff18819fb8e97396d66faa9de838b5c514fb7352fcf1d208e07ad88d130" + }, + { /* i=1654 cDividendBits=1953 cDivisorBits=1929 */ + "01c62bb28f037173477a6ccac3a25a4f0a167ddd6d65b64244a4e89154509a0b8bfa4d04ab7d9c5ed47b32f6737f5bf9e17548a2419cd66156c89ce03bfc5759c4a7eea47dc1480bdb8e6fc77a2ab53fb147fda9015183e7c6029ce726ceb31a88fda6e45585783a2d009910778ed183065e6652f357160b908d1d6d23d86d468585d1d6b39d821c2e606547769bc9d62df9f153dda4ff0bf1de7ca9c9c932d724eda15566ddfce6e241eb92d638010f4dee27ab8c34d5e4a09f9fc7e0ba3c2c420b113e4188439e3e0edeecb633e721836fe4eabb35f0b31fcc7128e6af3bbfcf1900443f9338412735e58a10cc1fff4fd3c3ffa5", + "012ed57fb5bc6f1561e90267bcc9f847b715350b9499bea1a759ed2ae214be87f00b74c525d0c6cf3910732aa1a1962d4db3b01613ce8ec6c23b0577e75f2ff44d541d9a26d8aa8b6735eed9aee5face7ce87a9461552612b030153efcdb5242424b007207d1b94108728d8e8128aa39c8a17ebd726d668ca557ae6825a03fd186857f9c9efaa4da80a2070c79428bf7dc3c3bdb24c3f562c6ecca7b622ab91ae5b4c67fa7d8d05a97b96f052f1c459ffd6760fb1047ec6ea1697718af4e7a15c8829d8bb5e7b7e8cc26a07ed5a263dc537a78fad1ca029447ed682c1193b3faba03a6eedb9f3b70b47da2426eb8571c2896", + "017feea0", + "bbf3c07d3eb06e5fb23dd618b154bb5c88284e3f19d6c08b79fa9468126308a3ffa5e3337d3305b45211b30d7e3ae6933766985c242d836ddff0e38131de81d2c5d2ab2f53f3aaca09d7fbe5dbaf0011c123e5f3333f324c1cac2119dacc661071882a34931eb781115dd64ee718262cc1cea0656e5550a461b99b4c909613bb4e66d5175dc1d5b3fb30b2c6a3922a21b67eadc48f0f8d42f4a8e6d51c91cebae402c8b622d1d140f887ab2a8b8ee91728d32e205a83a1ab4f116aff1e81a0ca2208285b2741c94d9a5c113c8d4c59e2768ce9eaa0b8b6a3be4f5f2e0f37e5dd6a9a8706c13fb22d4df9e117fc7c052de5" + }, + { /* i=1655 cDividendBits=3229 cDivisorBits=1657 */ + "04390790757cfa0a5bb24875e81848b5de6fec22bd3f8633183648aac25c7c065da3c87b51ff939287acfdeb0305e5f407b8f745f2ce9a4a8c2c23b9e3be133fc8c0d478be98979442db25c8d2bf14221ad323c03d9910aa9ebd6f3aa37be729ef02c66ddc7604d51bf6934dc8ee30761006cf240852ceb7123985e6dd8ac3d895e9e9c8e21fb7b7f2adced89f434e42d2a969a29a80e0c3d6fbb8def254a8bd79861e7cd2e07be1025e1d84d1b95bcb9bb1189dd75da6dc0c639f95fb84d3e6957aaa64ffa86eda8b1e31745a7705f7f884f2d2f09d2172b28b8520ffdda0894369383335013992f2eaea206eb33b54efdbb25db55facffc512e460170694a65a36e8582787488add828846488c5a747e198cb66d7e3ad946c8ee2e872caeb14227e986d16cf7f7cd4d3058478cc2bbbabb0b1eb28104d366a70876234ace2199982802b0f0f5ee4fd5e5f3502c91b7f8c74be6a2fa91ff483f7dba5282d82f86cba6a9cdce44d16f7a621f29bde08bd7ee07fd552031903844ebeff64534f7b5f78883cdb8cf4f122709362ea20d0b4cd0807b", + "0162d7f4361b1688d90fb1426a6b6738ed5830024019f6f89953905f710cd869bc6a1eacd6c3c1d0ec12c4b838c99ca5229d74e68e349585476bc57764bd5901f7ae9141eff64644c8c82372a7fc967a2fcf156ad55fdf679d5a201beb882031473bd7d5ba62f6e3a2cde480b343bcf97eacf39f5461a20456421454de45e2b3dec20514d6dc0cfa22bbac9df87706d883e701ca1e3900760ba5bbd3adb8dd21f41791e11a2111363ddc6ae0b9a1c215df3a41d5186ff1cffa71d5ab69407984557c181b1e955979a02a078f8e1dd9a0", + "030be72ae6e69a2fc77aeb46c78ea88a600b8a7d05a92a80ad9bfc289f6a5a96e15dc3d81893921c174f33032ad496feb663680d451c6699e197ffc41bd6af9d2f4f34f1a154937dd662055af8d66e174b19c60cd1ab1e21a5127f7870d5e7490177ccb078b322772acb2aedc2080efe60069b09653fc971d0e960e31edab091e49cad2aa3745749d82ea14c424fe7f9f35fae4331bc0764dc8dc2e464fd75f8831688595c3206cd0cfc1fc00cf2bd69f947db9be8a8d238b7de313bcefaa25f9b3e8e32ee", + "014d77ed364ac00b6e2e1aa4f47acd104368640d8cfa77b671934bc2dedb3e7501c51c61b0720d078bb7b925b2a0d6748c179fdfec49ea56f4d7dcf685e12be63c2a1f8792307f087fa4bb3b6048ff0ef0cd5ecf0a3520e8a854db64d503eadfab082f6cbe6b764a3e3044cba1414d8c931ed39e86dccd0671c74100ac38105e3562cda11ac3f7dcdcc55b459859881def089e2e90d0a4745c5c8b9b42d1149213246d5a9fa90079ddb353c79ff4ff7bb2cae8239f89f5e18a22a5d020b02c10abb66f7930e425e404f3c8afe1ceedbb" + }, + { /* i=1656 cDividendBits=3809 cDivisorBits=1338 */ + "b35aceaa1a38371174d736e7353236b8d6a90bb037831da6a8b3dacd2c7a0d18e41c2605a3ed2d95d0954f112d0c9461aca6351f8fa525d714dbb9418348f2186e1deef02704d0f29133e0473340825a4b7df9bd280b2b9adcb23e9da3318301f7c2f2f6b7c3f7bd795b773d9137a3fc638b18d5e86d3deb7c08486737bd764e809093064a31ef5e714e776cb4a428a33571fa1413de06ec4ae040956b0c35b94f38c3f26af06a49e7675ca44d5e210b854f5ff5ad47414d17938b3993c36082772c3f2872961bc47f338b57f23139c9e1af794a774c49d3a28f4e15e965bbaed1276a6af4e84e0742affeeadf15736ddef25940ea2b69a2aa0a985e2a634879ede1f07b98a9814f9feeca5dca74360593e44f3447dcf6225ee1c9a6de9ac485d9e06ba918368c2b05983701bd22255799bd6fdcbd61a898cce7feda4c1cdd8b8acdc1c154e8930a05afa51614139aaa26fd833a43a99fd396394205159d2904201df54f28d668555590296bb85d84fe00b5dd4d42b74f851413d6ae984bb10824832a1d8e335167f78f4cd9c02f3c078da6d0c83e6552d141e678107f38f2f6046c10e57dad43a7ad9aeef525e20d6ea26ca85e1bb5706a3f397c2c3c1df57ecfb5f940285330a9fd87740600ab775adfecb6339ba8b79ecdfacc40", + "19662240ef04bbf65c2e0d1857eada4c8f95e1e7624a5c1b4a8dd705bc4802ccecb2dd14c1a1a8b263912495db7d8538174afad72d9a03226caa558e4e4d536291202febd224205d5fadd1ae4b7c8ec9326ee64bf238def9f2b99429e573375551fe394211d99d88aa2c7a233a1298141188c898bfce14e6d8e903e701ef78d585144eb73c016f26b30d2dd49abf86d5e73db6d160ff3697bec7b7ad5c52585d8f487ad7da2e01", + "070fbe5b835f4572a338948e3330c3008418f10d449f2efe9d51b3f33274b8d31b1e5d4a9e7cd33d4d365895e73896ea5152c4f18c1e72dc1b4911f814b778fd176a488d5baa7cb67e6a292ff1f8ac879b2f78ff19e9c4fec7194dbcf6a1fba20220108be9547ad22036a585811878c472add9003c8038ec4f8c1e69e32e1c475553b1ff18a7474f2f7aed91855ca889ad19bd477d7e3bddafbede664ccc969f326c11eb4b243e66bd0916e5fbe0c10915ea39f9e75e539ff48d8b8b3d03d98882df9ef2090b9b606922198d43b49436eabf0523ddff2ba2c3938048c31620a62add9ea516eba9b5aa51b4f933dfd47a04bcb85f53c787deecfb45b3c42636590b2e0cacba824f11c3f07a2489ec3e4a05615d39544a733a2e5358a7fd6ace79e4e83748b05c4c25da3b52316c72b09ab290456dc6b5", + "0d64f2bf0d99887b92c156d09218f1f9685de45ff3f9ff6ceb82f1edaa2b0776920a19691facbd390718d4a1ca1c90f52b843c7dabeb8a3ac6658e508e2b5372ab2afe60a260739361a3ee9c8ee503de22c419c14c287175c6f339fe5d637d362eb0f863edacde441e1aa07628579210a1d7d0072a29cdbe9df5fc5e92e0e6476f9631556b804298136159e4dc7f840661c525a9ecafdacd1331a06b12c0502f7f2cf595b67f8b" + }, + { /* i=1657 cDividendBits=3098 cDivisorBits=358 */ + "0109cb6b660a551ceeec0e2de6a96e911c3ba5d609f3ef40dff1505b0e6d56ae6275969bfd61d8ce83f3c65157ad585304f4671d44fd54cb9589bccc08513a0286a5e9df8e60519cd4210922cd3341e5b54f3c01ca563adad4e247c7b08a0e13e7fb695eaaf49bdecd388d29cda1bf892afcaa4de37f6b51554910bb9b61341734c1db579f35f55b2383860b13276c03ba22e439bd8aac9162953b56f41c80a93214e25e5c5f7a3ae96bf0ceeded5cb7e155146679f790b6380977bcde663498c4a8a79a964f0aea43eeda27990771837e15cb264c2bbf4e37e5b57ca5b84cd33f5a5831d7029f540b46cd98a2d73376dd7f5e952a55baa3a12706b33b36eba2744a50bf9f4ec9578ef500b7d389c9a3863e705ea72501f96e25238b902b06411f42c9a902a09177f65e3b39dae4b6fc0cc6170c363abe5ac741480b08f620c421612676118c3a030e17ee3bfdff54d31576a8f3a5095cc1676ae1f49ba923848386fe86dec937a810e645e5daf5d85d5971e9ad4c728ae1de299ff9a76df85276fd19b7", + "1b5c1779f2070ef4ae4991c18fa74ea42907b52e0f2811f764a6ba7f2c0ebc218a73dc17bae0968a70949256a8", + "09b6fdc8514b0fe7de647048dde043bd46a114b5651366f3e614f316f79f442e364070c2df7c145a1a80d1abf4187321a6ccb5541d6a4c527aab9ed874f82c3c96b7124c392b12f9800f672db00b83499ca8304f26e6e15389d250a7fdd3f79c1e8d6948999420d5dfaa913dd17572d9348f78393a75d7168fdda7829d70e3521729717b924c24e6b50989fffddf5250783b183679edabbfe0beb666e91d5eb2ddb14ef1651727bde839e454c1bdc6a9f561a7867ed3240406400a35dddad401e15366cbff77704aaab2a7aa43997c574c229a397d87adbc8e68cbcb01de7e6c879fb1149588b078498bfa347f7bd9e7fe841b8ce6e352ef12e8a3fb441095072b2010d20963c34bc1562da7f65912dcb6c282d56a4baec142cd7dbb964df49d6e96f2a44a5e485cd6e19e9d9677c0e38193b05ef338e65856cf5dab6ac30bb7f07a5e2137ddfb690215ecb52dcd50e9825b2d9d4acdda", + "1a45851f69fa1d00a9e4ae701d0eefeea3e9823bd60b20a7160f836b8e88cf4fe01b42ec49bee04880ae6ac6a7" + }, + { /* i=1658 cDividendBits=3161 cDivisorBits=542 */ + "017996e8bd8f6b56ec2e99938fe079a6d6313ebdd88b3c42870b8d615e3779b389645c317b4d40faa08371c2d4e4d5968e5b407c14d83e9b6a539a5c2ecb6b6f802e882cf3cec4fbbcdfb4478d6a59756da2bb19443f8322a1f2c2a45d9f8628aa912aa8f19cc04e5d694d30cfc916221bb60ce486c8fe65919bb276d1ea67de6c2761e02a74205b721541eb5306503a507246cd07139a743fa686a23d5f4a7dcbbcf2bacb865435de023c376aee93c11a07ff53f3458a50c63b6eccd9d12370cbad0d5ba143115f39f6198b090576dd13174ce16a8b3dd331255a4f1ff5ffb5544deb93b8e0cf294a5aa40867c2b1c8d367c754cee4d94eec85e708f3d2687c28af98d1f55baa4b5a03084d76084a0d598ee0b5b8770a1981ae0336d870476fc9601df1c06e927da9c9111b0d0be93d033c8416c825f3f13176c91093366d945529d5f0413d3ff6f6c8bc0974250096c5be0c40389d484126e60ac56acde21c876345eb1a8c52914009f604ca6597f83cce9cc756465f929ec95a92b103868162dfa5ef0f9c34fcb042d72e", + "113a38bc37c4a49f4facbef6311d83667b857299a95ef28a7dd20f84e4747ba4711babce4c8f4896d98691ac1547517dc0a6e878232797c337cb2b6e20073027ff21ffe8", + "15eafd2b1f1991b7b87a63c516be339246c4a14094a75138b0269fe3b6676c4f47f86f1304cc8c1d213f648b0bfdbfa0c73d5fc2aace73111e21e1962743d9bd4ef53d77fc68fcc1ce1134ce285ef61d37017735d871247d6e4834e5b6aeb771d84e116629cb65df4511a2793ef605881573f9c9236ad97a1471a5bb95fd3648c44e4894a9671942a79bccd263e611b0bbe7f4bc3c3d0346401a30e22347e4850115ae66518977508b44fdfbe6b42da7643e2b7ced3afd16d0eeab1a574ff5dbc28fedb04a0abfd0e715c937bf42a30bab0dfbf335f4d1d1c1f2bf243404500864800d7df6393d46727c2579bbba9f573966e61661969c268cb66298a258767b00b806da0035dcf24557ccc8581cae643e1e0f2a65c713d549e8d249a26f1af1ec1624c9003a6709c6d1ba352f5a9d40d93ee1ea025bcb25c1ec8eca54a6f1df644794ad8f8991ae", + "113162713d56450a4568db02bf101f9f0565c5a8d3c0cda2edec703c3ba47b9ecfc7f41edbc19d31093c652de98c14a00b9d831fdf25f06288f0912e70433b5e7a0c7f7e" + }, + { /* i=1659 cDividendBits=2480 cDivisorBits=1482 */ + "8dfc89e8abb80cd2d093eb1823ed47be6318898aa23d688808552c6669f9b6ccfa4fc23c9a07458b73fbd0896508622de59c6438cbe6d1e3912bfd20e68ab3a956e457da38707e7cd8032a667a2590fd83b48ad27f3f634036763636fed80b634ccdcfbdfab7c24be124835cb1b94989245f3083568f1ca0c18c4c91020f667612861b67fc6fdb4bebe1969c9fce304c5140196562bc4d957c93eaf539c4130cd4c10c004236abcc57897edbe1cfaea0e6e7b33db18bc3ee4f777165fc25e5e9d40d83aac2d80bd985ea6d8947af5ae390a3f634106e85e7742decbb5bf9de4b9734eef335e93374d5ce607aa1e9dc4de22e8253d4f732304c6af3cae860a713ed8908cba6d9109e7e353aa21a7e21666bedb20c8af3e0082b34594c10eb65435ff475bf2af5853b3197f15a34a8a0060fbc53a74cb5", + "f50a7adcca19205f7852f9a01d182c3b4fb5c63d2736552e5b801a5bc196f9b49071612541d5a4701ce27eadbd6edfd678c5fee9b357b91d55f4444eee5b46c40dcdd34ea51b68232e3b89d2f7e306404aadc7ed9bff5de01817e417b2edb1260e8d085d3a6306eea77e0995d3ed437ec8e1f7920923b92b4782f1d2b2b0038d45539d4ead7ecea5d1f0b9757e8ab9cba7bd70bb19bc9544107ac33744a70660e92f85875b50d0cf907fce20531063f6f0496d95bc5e8b251e", + "94562b3545e517871d017b76e88e90c1c93f1ae231f8f871de6be3936c338b905de379529e7d3b28015c2c4358fa1cf21672b0ceabef051758003fa5fa1791d87134e6ffffad900d973e94e77f226d2d70c8a7b3083d2f0621e60bbca2d8c126e236e350e012e9b4cead3183f02cc40b784e5e6691b0909690921b4b89", + "96f6db203077866bb0ca601a79e0f6678a63e863621196c25507f59a82625b5a9037f47188d9c1be5274dc1ec10b5aff4605733ebee80ba552c0b2884e0da451bdeaeb804e5fb2e03bab89563f97136f79ea975823ba4bd1b16c1ae34cac200ca58de8f787bf2e3a166e55e2d835b97253b5d325aeef3b7b0328056fbcb9910a9434c52a92f72f1e3195182c64d33b71d4b0ac2ba0e266e4e4143d6e63b5d98a90de58ade46b1d3b119049d15dcc56ff77c9d4f582f126a5a7" + }, + { /* i=1660 cDividendBits=118 cDivisorBits=45 */ + "0fee75ecbf361095e3ee1082ed7457", + "1b20d99d9799", + "9656ef80a87aa4267f", + "18db213a8970" + }, + { /* i=1661 cDividendBits=2168 cDivisorBits=268 */ + "afcfd19bf8590fdff1828189445c6985028c9d79699bb31b384063146f586dab7f7b582965ee6f40b9a013602d5b2a9d055abbf390eac65a7ecd455f4ebbe11da033187178fcb3af95817ddd0423fcfe52245835139840083e265c86cdbd511900e094f31956ee50837384f3656071cac7532d02d29f42520b084597b2378daeff5f0a22ecacfd419376801f87df8472ff25bcc22562fa80dc039e78dd638a202418ca81c0ba8fc0f78ba5066f8978d7d974a439076caec82194be55e5f7fa46c602d864cb80d7eadc10ec80c4c1d42891b8e476b2ac97c9f2c72115b22ccf1e5cc5c6cdb4104b5c661069bad3c3ba397876eae0d26607fe43576f5a3171957355070fe79e747974da719c7f43b0f1", + "0ab9b35b6d75280112ce5e28e14bf86a2bfe56b440f38f0a6522d2edd37db2f27c52", + "106461231976a0339524b7b74aa5f071def48ac2338cf3a7a51ce7f6e21fc3a6c0690ad56df3b16eae6555b2a0afc3fcf4470a3fe019ab85fed1e7c7b5d9ba1c22631cbf46da7a9cd18c4de82fa01fd0d9ba56800c3804f4aff94e37ef8aabdb26d82835754faed91a8e63c14bb5e29efd65444b772c727d0e24b2bf858262a128c13c51694a03d417cff983c055f33217ae8a52141b2a822c08b18dc62e42c8571288fe9c90e05e07593aadf177434da9d80db1de2d6eb5b1fc36e3518606478b7e3dbd0aed1415345b3551ea31b3b1b8c668c76e6fa8552fa0e08c8ebbfb8c56a970f6b48e59e8e60452342a0d", + "046463bdcb1ae1ad6fc59278407500b9f9f081ed5387cf4b41daad6e72831be5ecc7" + }, + { /* i=1662 cDividendBits=2805 cDivisorBits=744 */ + "19792d2a608736dc8013c773230facce512be962a07f073a62a36e1c6d973d004c17410d898212e29261023588c5024177efd62ca57aff79f8907dc893d2d1d3b6f5c1a0520bfee001b54d733165f81c645fe2bf15306fc11126958ecc5987619322c40404595acbd713d1bc62f2289d1dc5b21194f369d35f4a80710beb4e18e951e8326341b709cc65daeb35caa0c56c7e2edfb6819c9455d24e3230441c2ef12523bd92ba11167def1d545634f90065dff9989e525c378c4f215cd958ecac57059b22f5273c0a250fdcccc1064ec8c930c729f1fcccb103b89306448f51e2108c4b3ce5480f6d0c9d55cba927f279afaef3beec822fe7b2e7fa97447f395c21d7ffeff15b00af0875c745eec3948d2a18157a1fd0c2544f263d8588921944d05f9e6446f42430cac5f7ed470f8b982b8c240e5f3c0cff876acd0d415d1b5fc711be801e70fcc304ce2ccc5c4d5ea69635f72f04c71fc7ef1b325e9407d7", + "f05a892164307010235cd3c65a7bc5458292ff1065e3cceb477b17253b472ccc1616cd126cd1ec7f79e047f5d27fd2b84637749f2ff262a4445691233b18f58a59b7a42922b38446971d2c31bf7511231a0365aee9bfe7d69e63607571", + "1b21afc66a64fcc98e4b61b6759a201f7474a41582e9554f23d78cd592c4c40997c2668880e6af5ce27b795a90b662b2e3c04d8c372f10953ef97326e7912b1dfc0dd3b39bcfdd0d6c4c25fdabd178c92f5afa233224da756548816792ed6763f2e7382ed9e61b699a614715dcee68c61e2d95557d7301a49e68b1f0c135ef48767d958b5a4f4364784fd929f16b7e992d971f7294dd457e9249beaa9b1a981fc887c5aa8b28301b9fc4d43a8ed3ef1bea0dcf42ea26751689d314e3be5575c1878f5d4f2548464e02510b17eba772f8b04e586bdfecbc3da3174d7aaba26e7a5ccd0b4f4f4b4c88c06d182612b44c803991a9a2ee8e051f03b06c5d4d1d0dac51f0", + "8a0e412dbcf941dbb7412a683f296dd9c20db3d2039e904a71020522ff120f91242f019c33980f824ee16454422d63e16c0b0f75f8405b1224db1eb915fc5760f2ef92808ae111a79e82f853cdff8975a04be5507daae9d3b10a112ce7" + }, + { /* i=1663 cDividendBits=1766 cDivisorBits=664 */ + "1eaa553e7ae8dd7c4ac0881f16d84b431dcdf2f87239d0fd08111846f7a24ee0e73425ce434fbf4c8ef35e6b1dda8534d18cfb5be2f9870e415d4291ce771b204fd73e14d8ef192dca20a2913ba9e33b11c482d9d1a294049725ec7b9984f3fdb3323e0d510f667c9b2faf7f9e4dc1fcc7ed1daf8dcbec6a136895404d0216c4584582bdea2f11c8bf516b3bf690c4580e0373e455a4aa7d6428dd18300ec71bb9942fc46575a128cc31afc32124ab6f8ada5d0755f1130ae95049a0c392a277b6cde43d7a5a5bd15f8c4c7ffdf69d9a3eb1dc1881e08ba4af1e13bc2f", + "fec553284b13a68280b45c560c8863f9b9e2488739197d79cbd83b6818447e64efaf42088561d343df6bbc0db5af8b50be9642e465eecd9d2bc57aff8c4393543dbc9e5b2c4d0b52818ad13b5193e1c4b17cbd", + "1ed0356dde34f347e1ee05350d1162256b3d3770a959c58001d3a5e5c68bbae3581ab90d3a41095f8a4985e1d445ecd2203f844fa8c4d50155ddb1f4296e86ae245aaa33954fb2b150d26a7032db1d5e48117c6779d9aa81c0237198e5dc65788decb0809ebecb846175afefc3260a913ea4ecb8661b0e0c9a71549cb4290a5b7be9d2d5a890dc1aea0f", + "b56832f42a9256f9d171118985fc60b64a4a1b96fe91ef96567c4c876ed02ff9881fbf0fd405c8c17bb86c5e23198722dd5174ae185182770cb9566d7bab7b818f42d11e4993af605da58fdaade9214476ab1c" + }, + { /* i=1664 cDividendBits=2278 cDivisorBits=1583 */ + "1e8fa51a08322a8385d715ab1474e763049acba24cf1567dae62138497432ebfeaf2ef22ce08438b6c49b61c4cf82e4946b720ba915876fd7cb2a9160bb635324ff5b9fce39dda211283f952d3ce546aa02e4ed690ac1edb1d25d5bbc7acd20505c82360f03be8b3232828c559471b795b09f7c92f10bb7e7c63bdb8f02be290630c75ecbbd3fa6e4754282714b006bff8fdeddeb1fbf048e5a7f1b7b3b4706cc60bf367e9fcb898d4eb04b833bb34be681e85e3731176e965d4238ccf8c392b7dcbb52d711b40a14319db6cb2db5ffb005ef004f85cb60fdf6622123fc35bcffb54e8e8994a5308151b6301ac9161d989a578d5a9cd98d245736c67c07ae460a04f61838d3f629e113d12a4b83d6b3922d40d5e496419c6211d127d6c", + "41d52007e47985f2e16e06f23f6c2056d49abba790fcb1dd12ff7d075758845e09111b71a3484202b8a878269471ad053c52fce062650fe6c1f04f323c07ceed7c5be508f7399f41589f75ae33be3558122c6e6fdfa41000486498b72900ae707206e43206f6f9039fd3c6dbae4818e40934e68eb06fada1b37bd83151374df2ec2e077a0dff8b741c9d6986a3294821e6c54df46ab5e500785df60dadb878736f74c86704afc1c3142bbc2ac06588bdef36a316cd97dfccb637d8a7f38953adb92f9113a0f7", + "76d77600feabc36ecb4298d843885f4a405393e4724c79b68ac50d4f18447db34ad6484a312aaf09cff41a04097db84681258f17ee903e5b76cae1dfa74264cfe7894d7611df36b5b5c341cc20083e2c2f73515587bd3d", + "0cd23932177ca069b8b4fba04d53befc83fbadf2d635d04373221cd7b32124d66f8a07156905d92b02c46967fb50fa88f29751eb64390beb9612e0734e392d1db028742dc20ea94ddbdbd0452f3f9c237324fff116abf5e4e15fe0ff071646f0665cca68494b7375cec52d6a825d741c35c0b5b7c8e0722c409c4b529ee3ca715ba4e2d71d2098c4dcc57d1908abe1680b4cc1e478883bd0d9bd8d176fba64fed5fcecec4124ad923f1bc2baf0fa0a6a26efe6122aa0d9f17630cb8c786004dd9ebd284dc791" + }, + { /* i=1665 cDividendBits=1782 cDivisorBits=639 */ + "0fb75669c8e93ba590e0388b5295771c72b36228f99d52066192b14ee0f88cf4bbf92bbf40aab4d68be1cdf8fa4bb89534a09077b279dd92331bb539f50e2199bc549f086328862a72eabc0a3c535fac4de4fd21284cfba14b9506231ad0c56453683bbaaa384b4093003d9898349a87cdd7dda2cfcc0cf517ea45f272bb02836cacd655595115ad605b2467f74d25fc7810b03fab333b686b5219bded2825012510519fa6f8bbfb22f1c12180239a54d5459f267d05f7a986946788bfef66ad57d08b5947cc6a36f388a90c822c1c395ca5c33284381f59e7b01ad9518813", + "5e3ac30ec50154ec6b7236ee5e57687926de9121b3065633942a9b3dab8ccb8d69b4d217cbf1a6fdaaf648269625dd748d8bf9d74c0e85b678be5cd4d72a18fc21eee268fb1cbcb3ec86520acdece142", + "2ab27bc2416510ed7ea1346c3d8f47d88b2d669ff5d7e271ab319237c9e7efc0416570e7bed948ff12bbb7c079680a02a0748854452c2d38a30afd62e6262dc46513bd1f8fa5142f4e7134428859ed0f530747581367b35b94c42fe19beb71a1459e84b45d89dd662aa9d8592155215d6654a226ef642793a3b38006dbdad6e531dfbd671d49191d64f870db6a3239", + "10f745a0ef83c90f2ebea432cb953d1ce8a5f287e7ced5d8000afccdd78d903fda9e83050282a4b9f7da4e1231869db85af883bc2b11fedd20abe2fab2287c5616e22e6f03c9c45a33b3e9d200407c61" + }, + { /* i=1666 cDividendBits=2828 cDivisorBits=1559 */ + "029b84e3df777b12cfa06c7566a593199557b3c65e90f33ccfff0b101919b413f202b138b0660f88eaf42184fa81ffc8a6f76ae6964f4adc118ad511c68e62a36f443339f2c3b37b863233000a38dae4f88df8bee319176874aa1a54934580f09c15059ed333aa8917ca06b45f2e5d620239510792a808ca701d6b524f37d5ab567d3c1faba9b1c80078f397040c0f6032708db0935d7657e66eb78d830482ddc5108737ab9f63663e0b903cd433c8f131ea1f9454ae62becb139ee361d6c55aa84c1b2be2924cacdc32209809a93d61a0cccd168d2216c64ab48d1e671784b3ff9179d70d12580ad35569becd6bccbe024cf025f332f15864988ee99aa3afe14252050dc668165990ff01d535c0bb917982444234627817b097b30fd57a4591505b4c07ea0e37a2af2e03ffbcdc4df2f6862128bfa9e3ce887eba79ce7dc5e8e307f24b5cd94ba79004e6c6b77654a0951a01a7caaa9989189407050a12983a489f", + "77538641be4b13bda10b8d6467bff2afbcce2be130e5592ca61396502fb8decbacd9893961818920c04a7c164f4de0e0eeb28dbfe699f21fbbc036611ffe3fc6eecb8ca8a85d84ee96d887a1925f60f2a6a7c3023c346b5336265a155b152aaba1c0c79a520e3b24c71247e899f5c77d6e4881d7f0c0c16124fac061d599c6151819a9406e565c38375bd10226d9a951c0b956562181e2647ded280453214fed91cadb51c63384c6c4c524c1467703f04aed1c08a2e91c883146ec789efebc4bc54a1a", + "059814c1d4f15e1d14664fc347ddb2f2a04cd64336276abe1bedb6abd7bde4493a23328e9cb3b33faa2fc455d9a5ad0387c7502fb88c5342787ce1b246ae985cc7a3ac6a0087894b0dfc8f3518ce19c3f78dac599e9eb95de4058b43a8733fe5bf6fd82f87bd4512c8e11247cb789163c159ad4a5ed8d4847623ec1b19cf1d9fc5182bbf06d4c7e60d53e929ed648481050ea33b07df8910b9de1db2ba6878", + "5337dc4644c4d686e42bbf939e1a5e88867010b04f85066e8e9792fcf7dfde7c2d22869bd6d339a39ed888104600efa1e20d212e829cef22ce245bc9bde217cdb5d9cf7756b845d7b0b562dfadb658677e5039b4fb7092e93bc80e48a2abbda551da3d44cd305015b07fff8432433b10a6716199e011b38628d71868031c6a28d4c6057473de3b8290d089f366b62018c48027218d2a8f0bea793180c58e7372250cecda59b60a217ecab864a147a27ce2364f60e004d6f7610eef0b1cf73702c0fc6f" + }, + { /* i=1667 cDividendBits=1025 cDivisorBits=410 */ + "0179b5654f6f7fa3e808fc26258fd12c2a8bdcb0baa96aace1b862931cb57728a4d79b7c5b0e8e47347928ac5e6a07669e32e7dc0e74259be1502a43ab9fb2163a9577f25017292dda38feb3775990ffaa2a74e85b7c1c30a7c849893ed66515fe4e568b9a1d3e562d00dd8ae8931010bd420d0ca501633b3aace3271b02ca6cd8", + "4e9457090539ed6b898b60210486af0f50be80bc3c187aa6b48e1f03a7c9bacb26ecce3b975c98227dea1657c15192de033fd8", + "04ce847de69c4333726dff5471f63f160a3b70b8d197a37ea00ff814aa0a30e61108fc60ec0f8612c7b90accd9cd54dd594d09b057de088bf2c0ebabfbcf5fec57f8548a8ba32f97a49fc0a0cffc", + "113f827d3f41f263243049a582874f7283e2b7549215d950b32105d70fd7d806e1debdc66740a0557daaa88e00dff1eff7ec38" + }, + { /* i=1668 cDividendBits=950 cDivisorBits=825 */ + "26efc692dfb590adc6a46ab263548ae4c925ec8098861fab153c73aa4b2f1f4e1bccb543a864fed9a7474d2cb5adf2e8d33e77d52884868b318b635c7b2db418c50da575e006ad512e4f862b0657dd603d9e1b3b3ad2a41ce3576850adeb271fe553df1f3aa0ddb69cd8b8462cfd07e2aa14adabbcddd4", + "59b848cbd144dc231fbfa1f3cf443d3f85779719e7c59e0a327ce8b7cf9e8e5a74a5132182a692cd0a7f8c6d2b043002e86323f9d67766d98ceca8909a92142c2f20d20e087481ba09926a886a8d04492941c10d2ada2ff1928418e9449db462ef9151a75b3b17", + "6f194fee50ae5c8b5f248e69f80de953", + "27d6f14ec7e26e145a7518f8058e9eb08ac0b17d4c5dae85c7a7d117de875bb64771c521e7022786137bf3bceea24debb55b1bc4c52d88f81a1d9f0670cc506ee22c653c6016b6d653c393aef419f6ce4c348cc54c046ec189ee413a87effd3106c6931835c65f" + }, + { /* i=1669 cDividendBits=2613 cDivisorBits=1495 */ + "1612b114492f41f398967455e8e10871714e033dd0712270bcd4820e5b58ea9ce9df074b8edf88eaa4f210a8f197b44a550b284db56d1deb5c158c9281c61f6cfd85f9fb38d371f5a4393cc3b8acc656510d8198b62ec47700ec38ee6446fe5a03e5f7f068fa9bb5896b6c7eaffabebddd68ec867270f86cc3e501afff405df91906c1719cb343cbb98d64937c3d939413d8a98494e8c35b7b9baea1bc0009209f4df9e7856915efe76d0aa1483357838aad5adad612f4a44231ea271072faa730202e6cf82f05adc0154b29e92c4548205cb3510a6ad8b27ee5e166bf58695bb6fc4f3feaa0d6b0fa5d2dbb85eda29cc7da97339505cd12e9ed4d551d333fd2482e3a70b8cd6e358d4670f22cd10a885f47a5d435b82751d1789e974f1cf5072dec13c3b54865d05210155a957cbea20459175d9c3eb529ad0ef55a0791959fcd35ce42e79165", + "644f4c4f979eb414a69531434e7ec206e594d34c0ce28ebaba3675db3f052e1ae5ef111dc0107ac871c2bc7b65896362a515e6381e683ccb7f50eab0870735817aa547f8281c6bbfb61bb31170f60a9b3978494c1445f6ef2f2cfb3b3ee65f5cc6e4cb8b36f55fdd55b802055a3bdd8e0089c7b275a4dbabeab97ed6aa75736848c091ecc5c89f770f1d32fe9bd9a76c1c931f6b71d3b53eef83118a3ab6d7ea195a413a30c58027e47e0b73ed3cc9021770ad20926da5da2ee217", + "385519aa769ebd13d69533cbadb4ec90732e427f40fbb4b449d50feee773f819bc21ae8ce74350c97a85738cc25e3efe7c5e6584aa762ac5661fb93e1f1dcd8222f97eacf15afd4ad585fc5108462421ff7531a353a6a1150a3fbe0a7eef2426e9584440489c69906fb3fe4b0f8ee3f0349e182addfe185355806efd13cb1978b8eac6da63a5d919a5a6912f", + "07e657ccb889e838aad1d7b0d1ee44e1da12d80cad996883ed75e1170da78fd8a2d8e1bab4ad3666877de64ed2d2c0002d71fa228b286c0a90093ccb0094ecd14cc2a9d24c43e924d5ef79b11b4db0a0d5c573c5f2ad2721fd384c39031c8308cedef09ab481e6ca8339b6428d10ca6a770412dbc7e93bed808f10d9b7ba1023df069a2fdc44807449c4711fee43f9aedc90d79136bbdb61afabb9e65b05122e8daacd62a2ba5a904285d59fcf33a0ae51f45a0b97de683853082c" + }, + { /* i=1670 cDividendBits=3998 cDivisorBits=2649 */ + "21c16ff1812e42bd87eba6cc55089c651001388b5d89b41033bed81c42290c39b78e7dc856e5f0ae6e8b26a423a4b9510c9dda247ca03f2ccab850e54b95dde90f4e3716997523a3a332af0ee6638eee8e6771d3913d804f3e8837582f0411a6b5d6ef94bb04a75c293e0811305de145b5a1759b3a25b663e6bd95bed87027266cb533cf983ac84f40c85c8a744c4b10bb7d69cf776b612c78cf9192d9b72e8b6eb41875a271c7a4c232d070f49a0c16230d7f85376f5fd57294d3161c402087f43a3d2b4b7a530af45111ae2b45e2b70c3ab453538c2cf6b5997f4854995b2c7f1cbefd5795b3c7fb390080371d90f018337890b2e0338aedad20021fd0d8d0c06112faf40ba35bffebe57a38dd0fe59d5d561c9049b092a68119c4c27df53719707bdf554984ca6662b800d58dbf0e2d27c3a6c30229d13587d53b674ecd20d1f9228ad708ed762066f8bb13e4b3aa31b9fa0ddd9a29dfcb91849f482127a903ec18a7a54b572435d33ebeaca366e400de0add2b083cc153265ce15b0bf49e20f2d18cb1c1f31654ddcf2ed59991fbb904bb9f9f97ff4c75e0cc1ba46c1dcd6d162a774ac735b892f44fed03d1abeb53975cdd3c706000be40866f267d229f94d52406df938b26c27647d3c2c6374359ea6bcc9f958f754773b493895566a953de80b80d47bc909b70fc2d0036a1084ebc1c48", + "556a9e10a1168dedf6eb88709e890a45c88d858e73f178580bd7463b5c504f36d7b6e14a194dd0c425217e4b7b9fe5066f01b41bdebe31d400a19e80d68bd3b5cf12c03b0ad30116356f3a3c5261e7fcd381c61bec61b5066dd439dfd3fbdac802679934a490771aa6b030b5c1ee72280176549e89bbe667fd07152cc72368ee272a895656bdb4cc9c410e27cabebec8fe7d0ad0b4b928eb5e749a631952427399b562b6c0c4956711223ef0a56f16a6049e7d5635116291a8b4412694c919adfb05d01cf6252b974acf71f6004b147b77a3992fe5fb1dc16ab3a3c2f7ecafb8162050b81f7d0d826445c4883f206ce1ac421341e52b74214d13b295ea56dba87cd2f8f530a94888f1bf05a17d37a8e557fb0f133900b0120b461aa1e2e3f0795698cdde1860c622573c5a3fc3c7b1374e5a4cd50f653bddb78138d9c28f3d7e9c85dc797e9ff7342ef2af", + "652b14003167b17c86d6c78ba47190eb907f8d3fee3f5cba3e357befee553ac16654e32aff93a45d81e5947858a0c0a24429de0c7f800a0429633f5deb6d1b7930989a97b75448b02990b341b03afc7670fc14198385439c986745581430324dd5778ad0b4e373d5794f907705bd1f94cf9d5833c9f0097e254e3b32f2a04a9247a80875ebad3e3a87377cd0fca105895c85209a329c0241d29e51de9386491c2b72a619437cff2308", + "2bf26c948d6e8bb816a288447f065077dea8d9a3f402768864ff5a682b4900419ef1ad9d44bd353df214e7af98b41ca07939ad254a69f1eae77de9f42315150bf17cf2e88ad1d75843043d6dcf4bb9fe296021d8f64435e6cb4c435ae05cdefad340ddafeaa06d1ff2388f0ab1201e850272202652d5cbdb6ad24e6e9472bab9c244159e9ce2e68815871bced00958720d35c1e29fb96b3f62b07d46f4cf8abfed4e724b920a010ad3d2d554bfecba8cbbf6e2afdc654b71d3c4be3fd714a08a8b4a0a2562e369d40f97d24d48a49b632089c68aa784d5dacbbd57d93a67c2b87a92cdc4efba4f0d556aa18a63da53fe7d1c65c05763bdc771d93c26bebb0a9c1f595eb43c620fa251c95c729e4be92379d6a656ebae69bff1bf315a70587b597ee1fb38561eb37594766aa7ecf3d4257d220ebb63f3e8d0727fdf0993b6897128a65c4668820ec1c599d0" + }, + { /* i=1671 cDividendBits=2788 cDivisorBits=547 */ + "06822d4a4be815f52ce5cfb495563330568ade4f88b58966a8abfcd3d716748d9dda6936ae482ea5dbb6b778a72258c8f1cf8e27dcc4e945b43ff1b851855d4d2ee3a858145da6118f533d04b7aebe834160b31e1b5a0f3abffda4d7531d1b22ad5a2bdd55a200ecedac96ca05c3a31d01287800daf14c8ef6b739aeab8613d4f401405a52d5f78fc08b264e0fc5472021784899c7eec117f373ebefa41f0db0abb1225f791197557ba237db27a0a7c3806a2b25080e98518c2c3ff1114bed0b8b01a8c7f1b02f605e08a404f5445c7141923301299f42c70287e8fa16af3280fdcfb4a2a77940427ac401cce438194807b877767610c5d3e77f3f1b6d4f9863c0b29e47fc3f545a3a4e178b9d228e9ca60733d5def5eb78da3eb3d017e65bf14de39df5dad98e7494d1bc907cec94461f860e2e588a1e23a5e9c2c1a83b088184dc30b7640ad775102c4f31f167da69b9c3bae131abc57f34d1ba781d", + "01c0a2e35f299f05099399d76cf8d3391240c8763f77024c3bd16d1aef17ada6ff5345142a8ee63626a96cef79dcd8d6ab735dbd9c8d91ffaf66256bab869b6cfde3508182", + "03b6c0326ca8688d426f9fe144ea254a08849e86ae526545f5a26de1d6f8e2dbd6bc029a32b7866fd57a3a93f43a70735ca596dda3f1223dc4c3a4e79ca04d1c45708d4ac844c42e8a65303da24961e8ecaf85a73423d481bcdc7992badd870d946ef4e23211ff126d2a1e70559a9fc88905d764a3f1c449842302fb7facf6ef977d9342744eac96816160ce78cab1c15405949774077c254509830154d989b9a6707f33ce3cabf58638797438db9a38bba61e5f4dba700ad9a388aed0744afc0769c0da88316f55104a56e34bcaad702faf2d10399d4bedddb0427e290a0087192e666ebfe4af2ea16032cf48c3373697a39a682d5ed948b3c5bcb3056d6190aa60b2f871c9bbc80024d6538fd37c36ae2d1c0d2e61023ab4", + "4f2d6a187537af89fc11a5696f448b1e1d3ec062575ec322f6fc744773f09584dfd6eba0475b31839e8383b8fb4b22c28e8b9bec32fc3b7ba37c6e7ccf6b30217ac3f4b5" + }, + { /* i=1672 cDividendBits=1736 cDivisorBits=723 */ + "fc237055197dc20d9394f6835eda8b9da6c11e8452596bd59d079fb50c4544c18496323b7ff5d678b504669b9b84a1868c49b9265519df2ada326e4236936f5877ef8b2151d29e3627da6bd50e324238199f74dce993f66bceeda0be3e84cdcc30ec577209f697b68e71ff8d28771d3df0f55deddbe26312e69b1ca167b53b27237d2ccc5431353ce98b41bd86bcf91330e9db18ba480e0500bbecfcf841b21f1bd32714cf0bf4e553fbc74600954fbe2c9b847316cc93bd4d8967c2c6ae542253f663f5dfe39bb5d604afcf33c52192276eb9804a775c8689", + "06521421ea109191c58a1414544e8bd745e990010da8ccb6361ef630af6de8094df6e7065e90a8ba05e028e80ebf0cf26dd8efc2f765d4aaf689d4ece5d291600735182ff0e3c119d0a2eb81bc66265f2ecbd9d6daaa24f2829e8a", + "27e43374cbe052cc006fcaab3942c7a25663f974a10c867694b3a5c6085a2b8323a45122fc077e0471b91ef6647362dcdc6ac976dc8081eee7a5a642f70efdde559b61d140d2a6bab168be099a5b6be782c31af5257441ddaa21225d3693e6ddb0435eb4ff2e969d8e00b31d1a1c2dd4f108ca53a0dd3246a4d529884be939", + "016820579644bdba2a293d3fcecf8a8e88a7ee78015357841935a9449dcc17a4e138df0a194b8e7e587a31ccf248125ee0a527c3c7e49104a9f347c4d35bd6f9f88f7ecf97745321770ab1fd4e9c432205a3f9484956bfd38d9fcf" + }, + { /* i=1673 cDividendBits=3030 cDivisorBits=2610 */ + "0a5ac4ffd3757ef387fb65df02407e10070508693f62d8332c81790956dc0f29a355946dbd3de7885ce856e61f1a03eed8a91f1bf33313ab308aaf69b486f55c5113e8d3c9018d90bbafaa7f91e349b44b3007f495a3cb13b43ccb631814f898cd1f5f104bbfc67ca6b73fe967d13c3b9af6b08d3cc66a10891720ee28884c94c9e8ef45393ac3692ed3ca166cffbb6c291dcfdb53751b7d1d902be1e8d82ef048b673a6c71bd406069700afbd00a36fd72122eb47caadf7801f3a3f09715def3b28be5ed994bf3b4a4157fa92c5f9a2655834257d946983fa4fc1841ca8804f5365da033488d9eb3e841b499e31f0308ab7b1166d1bf179cab9ad8662531334ab34e0263db2f1c08dacede44742bbbf9671b86e955aee67413d9dbe1b10161d63fdf5a695b293482d8a7bc287dd8355ea52f74d203946447275534504883b86e0b408da71af6daeda5a65ba33aa732d250058da74f503a4641773df6e2147c1919aa07a0bc72bf5276e535986ee59814b3ba630bebfe287796fab", + "015cf3936e5bfd334138735575531490d841751c964665fbc29c3aa9b80825356e36c858554dff4d52a43f5210c67179c11cb5faf124cf0d27641263c8b809de58bd0031cd6fbe8937dfc6ba1743099fcc5f194726d9cf74778e241dda71b3278d573dd21e597dc089261110d27ad89cf8c995b14dcb6f9141dc8917e0a09399e80bde024cf32614023280cad936ab28d45e3b948ae48f0fd6264aff5627d7f8ca4483fd6bd95b42c041fa2cf18685fb51ffd96680bec29eea6e396609120727e375829b1ac3448386ec06db302e038fc627b55e4b6f85a9b87e5df2fcf526d8a1b45f9aa9a516ab0c895557f3826ec0a3ef935cebdb7b11e467a78ea52f3b52b1179158004cec3626187148d9bb6807375951093d2256744b087cddd0e4e26d5489181a8a9a8c3053b3bbb5be3d7fb58393d5f97e6c1bff36e066c7dac888372fa26789a0121f", + "0798aca7b87ba90a7110fcea9cd0cc23e1bb109f36f15f9ce88d1c24cb0a445041afc4d4f6726fde61efafce5d603680d8e8610488", + "6261be06b628a20e49de5f29a78e1138359845a71528a9e7a490d17921dc4eec5b2d740c29a753daacc88dff39926e5d49ae0a623c2fd864eaaa05e68084136eb16246f4c3dbb8ee16cdfed2eeba628568674a1f0a08c7a79293711911931606ee86fff805132802618e3dd09395a7f3f374fa89d9a780fcdef65b07639d575758dabfee23d4e1876466a29cec7efc671d1cfb861deaecb42fc1f4cad4db9d4fb0d380d6d2e227a2d03e2581874c718b44fa0ef656737558cee32ed5d36d4052fb71f7dcb5a2a411be63d32b920eb14eba3646bc4e9cca1c521c4265e706afe2b34741508c955165add4af6d897b81cbaf84a34c1494fdc5ceedcee31ef0c5af966d0a1a5906721ee3950c79db27f7dd3511a1a4c409d8337418f01189b612fa909311c21b124fe010f967d4f9752960ee1ced2c2d64a873b812e38a1c332849da7ff4685333" + }, + { /* i=1674 cDividendBits=2333 cDivisorBits=244 */ + "19511da67adf30df11b859aed4ffb1beb3dd5fef5a32fdcc335baceef61c2dd05c6e66479f7cdd356a5df9c1d52a1041f56d762f0246f5ce494e532a4e745b5e36728af8936e093d66c7fe97d9dd9f164bf36863fcd8244d893b43735b73062a47b550d1d7e72eca4db463ef0ee3fbd0b61c46f8108b141f7f7985140cdb2986f9568c95a6a2f8ce274ee85c1a0d2cc16338c0d35d1dfcd494444c709a542981b0a5a503fe3be1e08f165c8e28a48c51bf3e6fc961561eaab586ffca048956c0b0bba5de2b699ec84de8c8f2b8245c40dc235727a945641011265b80b581a9ca7764cfdf27048de44a84fa05c6dde7628a229da4e9ad6e96c3e257ab4782a06397c91c6235bf4e4627e77f5b8012d9c7e3ba2de68af144c539c3d21642f7c10468d6f262", + "02b65b2b3a716cdf4883782a5be6ed2cc759826d9eee103f5ffed4c0cc03d1", + "0955809eb716b8d7a72dbc66883fdc465e52dcf37ca4f9d0bcc88208b0fc755926e57f37e332186b1f7baa34569a3f72d2a8f3bcbe78255412e8b71f1cd3ac4009a8162152395b8b4f64dc414f4c068d3ef1886c09914eefac74a8c23abdc3d8f876327a6ef7fe58de4f9322fb15ab252dfbf629897760d7ce13bccb4469665f65d4bb541cc14d7fe17145115bb2705bec970f7762550499bdb1d259bb2d4765d55a814b336768056dcbbf693654bb22acffcc82a6361cb31f02c67321e41c7306ed00e09fdf628099b5a2deef02e72d0ec0adb61f57af116f994c97cffba2be56bb45e51dcb2c4e9f3f76a28ee666d56da6ad3e3c73a65de5e23c3086b387ab806c973b5281", + "7e5e1291c509ac5919dda1c945bf72b607812fc41b963fa2509cc0a51411" + }, + { /* i=1675 cDividendBits=265 cDivisorBits=151 */ + "01c0b43dd32f3e642ff04cad8b7464970c8eb05223cf03f37ca7450f208673fd360d", + "20bee895c9985ed51ebab891e2264778557489", + "0db3e246c8c7e2b44a2396032869ef", + "32c27bd11c493a0e92ce4b0b42743f013926" + }, + { /* i=1676 cDividendBits=2863 cDivisorBits=842 */ + "1c5a5ec02b7e7314b3f0e2e9da0d3b91979de8387a5e81d556d512c15fb19c463cacd111a734b462be1e2c10cd0eb81f4bb498afa5060f763137ace0337acdcdafbbf554b54bad19b9e1ed242757c4be36ced33b42c67654543371e9f7a991e8f072d6167953a9f52a77a1c254a4289a274266dc3d7054113d66e583b1e479d5643583a3b91d69f3c80217137dbc33f9c790af360008d79fd22347be58f0109c7e5f3a82fe3a90178369f417fdc92c7101749977c634d25dc2874db771957778c9a2d0ce57e06da34c5a895ee675a6e6ed3d0b167014de010a1392deee119133530d77e3af4be8371c82e8ca940dc98cb7b8343b059110d8330ba951461e6f94493441fe78c32cfd7e1cad30cfaf05aadb507f2bb8f8337982e6251a023b1f08e9674b5aa91439f9347670e93ca3a0b74f8137131d3b649d7063b89fec927f2835735eb35f46246f5767869521e854b42492d90111f0e5858ad26ad8234fa4fd9b11a1eb76f2", + "037c3c33d71ed681198cfb958ae112f6022103bc9a60b07920c15ee4fdce7df69af70f3c1da5501763785ef0010c956f3a3c6bafbd0a5243524a5dfdffd58f0ba3ad915f4a19a5aa5567640d3fdb1efb5519eec3403ba84fdd463da405c281ef3da20d821356b328c8e7", + "08229214b942f83cca2fcf090527427c7455e16c4716f557ced576505f3769e3fe41f9c7896c6c1b1aa3f8f99ef935e1609eeb4c7b569092da88f0a652e3bcdcddac621b74061fda439539ba291485f6f96ea750ccd747f1ea316e125691b9a227c2d39b7bf8027a06b5cefc25f8251721c96bf12c220df25e18e1435a02f4fe717028afbecf6e7eecce2b066a6aa92aadb1a55bd3c1731732e02ac4ad18f4202994458065b2f43160184cc0e6633e774a92d0aef08e8088806df3ee56023755d18af27727febbf0d7170b9d93ace5c6a3776a069fa84759068e56007eb31babb7b14a29c090c6c94513f1fb0d69d516329064c5181dd143cbcfbc4b31", + "e1bb7ad8bafb5932ad1a48a1f4df45e0b1c47f0d439d95c13f68dbf3a3666bbb356695bd579671f12325ecd3083d3c71b60c2f4f2045e63523f38cdce5199ea879170426f0f05f996f5289614293bcf30533e222ef0d6af31c20b5fd85331f41d2b7613069119d55bb" + }, + { /* i=1677 cDividendBits=440 cDivisorBits=54 */ + "d2e153302caba052daf53134cf75156feb17ffa5d425cb5bacb21b68b118fc350874fd1efa88776856ab0d7a8daf78e631463f28f4ce53", + "2c1e58e4e6cd8c", + "04c7a47a411ef71d0ef622535850bf7dbd92f7f8c4b50d16f85bfb3a50cffe46313dcc3e05934c6d44193e45690c2714ab", + "1b53c45a6691cf" + }, + { /* i=1678 cDividendBits=3391 cDivisorBits=357 */ + "322507031ad55354be13994e4fc3e41db3ec9f71f25d78aeb0904a4841ebbafa5b18f965dc6fc0ad2e6170a51e3935e38052a1cdc74a09158bd2eb38717691484d0929647a47dfaf085dec65a9d2d8d4804e225d442c4c35eb512f8161a750f7129cd60768f82da85bb8daf7b60c39130c66865f0082ab0b9d73114bf0ce11c95eb777b1cc849b1c1ff3c5dd1f2696fa54236188bbee3bcc5dfddb2af4c4bc982be7eb396c7e4364f5fe83839de09a0cb46530277960d7ab33f9aeeb7c523b89f992dd1898cb78390060ba5b8320e0e02f3bd4d6d784a81f6d25e74ec0a019a8f37ae9ec2f138f601e21946a3567ba63c96748af5e080a0e528ca18e5b302c1bfcf7b8c3000535fffa1ad06e73554b6c63c8bceaa82ca01707d8c9a6c95401a5320fc2ebbc022a4c21e6e2f79b2b747a826308f2e9db32163539e5310d63fd5289acd6326c0aadb5fcd1661060989d335f67d1b5fafb196781f4e4fdb4f32ed9f0f6e2c19769fe660fb0060a8ec92b8a68beddded520645811ccea5e6ba3c11ac5047a3069b7ceaad9b7771c4551dbd5671a9ee5b4f703fa239d6c955e2691ac657ae86716e1926d", + "0a6dfd0e3f3938e3805cb1464a498c64e75a0b57eae692c3a028d97d47e9c77c6642d21066de7484cd44e62db8", + "04ced248034794830f9b7e9bf1d2e243cf67e9c9c2762d4fb065330680d2e4feb551a267ba988c3dfbb3dbc7f719bf9aa2e0296d38847c500a2f08cd81ad0409bab999d47e40893068ad05848334f0fd48b40ab7a43db43f8bfedf321cdf5071f612181b33a581b5aae664c7f1b1ce1ed8bd420836746444a63d669182b6872b9f61ac0e873d45054d075160a181224a78f0a1452ad20aa0cfd49ef0dd4a8f0ad1a2fb3aec500f37e6cbd5892687989d572839c683efb7af25bce2667d25346c67f0e3e9f1e033a4bbed7d589fcd46755fbf313b38da5dc414f631f3a622cdb37543da83830f8c735611a5dce08013ab868231b291073990029b32d03a205843f6faead3e53a06029fff5fabcdb37199c72f803e6e11cecb7b35cf8adefd235c813293f37cbd5433ba9a6250b57bea733148ae928c9d9471dd18b648f9a638c9fe11ac23182be63af22911dbbdf6b3cafd26471178b0b00bb710677a300d3922d6a96f532d9a12f1037ad25911da2ba5caaa40d3e42fbe4beae625f9", + "06f5417696c9ea2fdeca6759ec418be385215b2d94d263b8d5bfe1ed1fb5494de5849dca7bf367d04a8b138275" + }, + { /* i=1679 cDividendBits=3016 cDivisorBits=1539 */ + "5d1e0c10b726bdd33a281ad6d7abcf1db98ea222a849e381fc768943eb2fd8998997530108cff4bf83d6f1407269de10bdfa269339526717cd13fd4d66aedd88551229f6151e09eb5fc809a696079ced8ce7bcf1e47a55ed2d6e55806f70b12bb9b11b866337ef3afa175ca47cd2d9fa3ba80da2a0c46b3de66e14809e5bedcc0bdff8be6a6b17f45221392dac249879dc2dad72fb19fdd0664deecde4d37f71ef078b5d073154f8c110d189d301b2c3815a9c71c38b26c74d6725afd6d37a6b961198438505c64cd9a703218cfce7a922c887ac6ff960456ae235e8b8a3c0cf039fc6529867fb30c944c2f506649c43d86cf1ec69a988af864d5af810ca23c7ed0b36233a7ed3530af27aa05925c8fc3c8f11fe66be69ecc15f422c9c99eb28a85811c371650d2c49b5b2586d627a2acf238dff7e623d0d86c66bbfcfbbda3370f1f4e1b5f565a6a6c45cc724a96f0c0c43e3b0a2e8e6c923760c607d750b21d4a5153717da2cbe1cc2d750e09535fb3bb7de506ba1001216", + "01a541903596b8e0e644771ed1e511cfdb028098c01ec2b772b0ae3fbfbe708a1733a3c6219ede33619029dad935df3a36ce6453c564c56d66a1581b3bf47a7ba45b0be81b16e0df7151465f26325c4a9a0c7f0f758e49d5abcc369a861fadd279e593fb34b24675c7e28c3b3f9380e1ae798f431fe3070f75b834adbf5dde0b901e93fe0ff2c5ec3581a4b7a4d819e1aea2682ec7ab5dd21860bff98d9dbe9624b1ae0d4d18b72b5d61418d1c7ae361565f8883d488ef9206def26dc6c4a61e6d", + "3896883069aa8390d249a631355db2a8311933c617e01e4840e9eeaebbbf8ddaed3808584330b226ecdec1652cafb9fa60ec443b6a2d31fde2dc02b87e2c158df323635f4dc7acfbf0a42e5ce7ae8b1538a2c1b26d1e223d8c3adc94e28b7f04f38007c9c796ea45c0aafcde979d7cc93865ecde5aa5ac0f1943f3b960b6fa087e775e3ca0fae8828456f2b3ea3d4160352e91444d05967c76ebe1d3305c1f171aa4ffdb6cd0ed74eee67f1d39a9ce45c39e2f591c561a2d46", + "9fd7da47a6a7fcbb6cbfc295075313c1bbe9bfe2256ce07d0725fbe3193e2006fdc431c6f345b1528b46890a926045cac7ecaae2fc5194bdf4bb1286956decb5343efb288945124451b9ca286ebb37df2fe2f646dd71a6e7f8be9f9c019c67f7e86e92e209f08a417f0dfac78cff9e76b96590d18ce0d66df6cf954c3349b4fe5de73ce33581e4f017ff17af3897cf98e569dd20944ea849c59fdeb7fb9fdb6939c7bfa0f9b7ed064e824ec534571b19316562586273774119465b7cf3289748" + }, + { /* i=1680 cDividendBits=2043 cDivisorBits=989 */ + "01648dfa53ffaf4867aac8bf261c4cd14b12d6a4cce25bb59979d65959b6dd21a01ed0bd1b262224e63cf18fe2a27d5bf0b58a9b92371835ede6c6830f12fe2f5ae96ade91fee333b08ea2824518132fa4c5367c1a6291093aa31b0f2a7017cc66b3bbf8adb197b9043f07c96f2d1ea5a703023f2d2ec72fb48503cf9a2f89dfd79310db6b9a53db389e8e66342d7b5d47d8fb3bd28ddf717e4efe80a498d925e92a4f9b246d69c92c4f9e2fadaf6db5c607d36d55324df3e5a34bda8206d2ad242a184f4ae8b79a3be7b3eef9de5ac02e9fb4d48bdb0ce2584947734e59b9830bfc385a16c1ee051f09806076c88cefb3f0ec6ef5b2d5ae442fd7636fb31b24", + "0fdcc292e6def0b9927d32dbe760419a9085d2702725eaf22bad1ed2fd8733d2ba44cac1a200515c1ddccc12b704aee6fefb94c4a64cdc94c1075bf21ba3c092c02f9390ccc51ae14b57820cede3fc81cea3dfa029ec83beef41b000143982f97d16948abff43d3adf3512045842ffb53ee4dc956b1be934f0811677", + "167a61a6b5fb8ac05301fa51843bb37c99126caed2e5bb72b43fadf9a3893eb900b3a9e379356bb05f8f9d30aa3bd33f83346a221409dbce2515c571fe83f1ad5509d42e975f9f1354e80e57af2c3a3592b86d9773470b767541be1938c9ab57d2849b1e9af9d0e347bda5249c7d41b7b3ca1c98c0025d0dbc27154ccb801afa53f830ef", + "05d255293b185d246ee9d690f49ec33d7d162289cc7fa044ff0a19606923056b4747d4c42c5e82211d8a8e32c09ead90d5dcb41d7bc1af0a2950a3858442712e0ce0296d5818c30c07927fa21c8dbfb0df0b2e0711db32290b5a7aa1b8d05403058cdd5e274b5104f4bff58ecb2e6be060c7e8a4614c54525ab0d20b" + }, + { /* i=1681 cDividendBits=1131 cDivisorBits=378 */ + "063d25e8b7453fb4c8fcc7ac7ac7dc9a860d68bc83b88d977145e769cb3454488a1f3154b9d460ab241dfc5ed3696943391fccdd5617b9f374d4b47289ccd4353e810e8c95b33ee3678267eb8f13bd45c70eaa6b0030f11efdc7256052c4fe38709eef137388b8b6164653220c587947567b46ea2571599dd12852a6785f3c1ef7a5cec0a7e91888fe1b813b7575", + "5682f1d5e9d4921c3fff0c0dbf28a0466dd1a6672e21063ec8cfc46d517ee3cb9bba6808c02cec9795ad854f3f08f8", + "127630f789ba6f6d8d7523181226f53e799aeee730761f7ad1d12b2ae99760f03c4ce6d6fcff150dc392fc63aa746b04568bb72eb5ef87368bd45b3a70fcb659c84fa675967ea0e9f51dacf2c1994bfccc93fd5d7a2c0675cfe9ce39620637", + "16019248ced074eb145b8528f839adb212bf4e3fcecfc2c826c15fd6e53f00b9aef6b40b7f6b502d3747eb598ab82d" + }, + { /* i=1682 cDividendBits=125 cDivisorBits=84 */ + "112300548e2e7af412bde1653bcaa81f", + "0853b35a8074790bb91838", + "020ed7e72c7b", + "0393c8aa9f52cce72a6537" + }, + { /* i=1683 cDividendBits=1772 cDivisorBits=211 */ + "0f14cf5ba97a94e3134a656bf02bbfd5772a86f9813281d5961911ecfea39d50a80954664984eb7e6f73f181782c40b28b59259085cef0cd68252ec6510a7302f74dd9215b504b4733b2feb4028f0c2c04e421c72f5152f188f8fde7a426eca0e036f8b4f0e2d241f9676e8a0cdff14f5500ddc06277fed80af26d89d77ce7856a3e05ae2cd588ce3cf57a1efd0c59daf43b38cdee30fb64937d1d579f6ee40c84812c11e2cd74517bd634dc6d5fec4837eca9b5ed64c097916954aab036e7f15785bcff4a166820c154d4b8cdea4c06a2ffc86272d76a8eb165e27ff023", + "553954abdf9534d3b1728d973f61aab194480755ba19464cad91", + "2d4d4bc9d1407a98ea034a7019e0010aa1fccb63716356aea86a50e7b5ee2ede53b282bad2dc26279c46d82fb66065d54ba5d308a57b2424a2f54f2168f00a849ba54e6110a2e14b5d6d56e3d9be198955133e6af46eb23c39e174f5d5085994129d4d9bc2f231ac809c620583519d9f9caabd696cf7542a7c812f9bc23c7557648b834b38cbf220e1db0416e369ad0bc9c1ae11e554fa827a414debb74d0c8cd5b4823fc28030fde12234b5c730206d3aa67d151effe5c279e7ed416c1a90d9e052048e", + "078c11330025a469d1d0c4443685d082f3aec322c5f038cf65b5" + }, + { /* i=1684 cDividendBits=3427 cDivisorBits=953 */ + "04e154b8b527ce2d8bcae514ff5e26899ba8ee17e6623690495c86ac23eaa11413868c6c7cd60dde709e2446cb05ff4a998d54be783ede40ce5128e36743000bd66018b7b3fd67802edbbfd7d17863150f1acd9b000f7e190d1887f5c4f05d5ce90062017626e8b4217dc71b240b84aedd78acbc0ca92f4ab6071620520958c38d0c170faaa683f14afaefe07be804091ac937399338df48d9be54f235087fdefac7dfe83ece61151f0d33615c214a066168fae6753aec452f0ed0cb93e23f3ee7b5e2998cf17bf3130084e6e80822c71ca230e5f961a7f731168426ded1ffc2bd907be608dcb6c989d2eefdeb2a9286d1d72d27db6c4367e2e106fbad09ab808e57d2d94c7558eebedd1b337bc8d9a8c4e7b3f066a6b1d1552ef7a6bccee7f496ee1c82413e4bd222fc156e6448d828e59fcc233092e680eac4509b8610fd041f3238b930c5e2b6d9b23848def831acd13f5021fc84594c2c6615a19b3fe8a5b0eacaa34e6161359b61fedfebd211f8e4a8ea764a3336c2e4be7e2296ccacd7cf3abd8dc7555752c499c4f192e7b3b7126f146ea9d706e82fa3d608b719eb717f2335d7a29f3607bf50203295", + "47c6cb962742e274a6b7db8b5e8deabe59b5e74ab9f73eb3ea7a63c8964928567873180ff61983aa8d04f70c6cef1c5610d30a53170bcae89befd746fa60b54ba8a052e8b8a01c29dd4d00d712c1c13f6e787e610fad07e32bd6438f11314c612f78b0448108f4b20b90f64f7dc09c5d24a1ca98051e70", + "1167e50aafaca24ecd0041e29c2c1ccdaba11b0d155cba68443672fda15ee1de040bb834cbb7ae7ef5af02e07c6d998324c4527e794f1c3f48b856a8fafe6fa9cdd2deaf4e2772f73d7c057a488fb888fb78b664898673beb21cf5a26baec9f7b4f24bbba1867a5ea3ca5043f7ba88c6a6096dd5be293266c86685bcd36dc2a957b06b8b6bb8c6f967882aaba4c23bdfb50f660b42662dd702abde8ee39f6cb4327b3a498cd3bf3433e1f9b78ea9d9d81e640ee50ebfd265f5fbdc0bccba266c4362372be541d74231ffd4a55dc0b9ac46aae20f60581819b0af0c5e7a5a9ab4712b937ba2686fcce98d1660c69171d30d37b4a375c3b149c91598d777837d68d25e4f9718ddb95253e2484d9e5edffc4387636dc81ce1c2cedbe7c838e806de58ec303a0a98023cf04813c4710233a1190a843b6555", + "3d370bd493c989fadef0c463260eab8f544fb05ef22209d323a12b308a50569b9c1fb87168b039bc64f05452d208a7d1a827aa79d65cb8790be5e342dae9e7c39c9f9383e854c2f52bbd460d847f165683660c320ca6615555e3f951868398cdc59418d405a724f8324837b93f702f998794410d9ae765" + }, + { /* i=1685 cDividendBits=100 cDivisorBits=87 */ + "07ef39e9be810a85b35e3b7572", + "6666aaf97057982ae0ab05", + "13d6", + "01664ea6a10150d9bb2044" + }, + { /* i=1686 cDividendBits=3624 cDivisorBits=3025 */ + "bbd0f30543947d084bde45658772006babbfcbc45af0a435e42d0d04ad7216db8f68abf29a43e2d6e835face9d07976d30d5cc7bbce05ed8fd65ed0c25f4583e87f574dedd3c3566f6296419c2ef055875198a9318a1e0b2c9b6aad9a4893a8c35ff3cb4fbfa35d556c082e4c5fc64d692d9824b9387e96d42e89371837c1917f732bb071131b29fe9d6661171d9a90404029fa421a731c6b2d79e2f170d90f28b207d4846dcf9b3a14f44bd03c443075b718beb804fb8ebd7eb7e3115f165f2941e897eb5dd78756115145665cf42d034e3f9ccf2919b41dcc38522c03e47389214e3304af4a460a1316da75b4cf0d559f18e6d8b6d929df96302b8d70744b0a3d8bfb572dfea1cc8c954a134d34b354dcc8d37e8c3b114a561f7aff353256be181f56a34514a1c49140079c86e38d3d7f8bb14e7b4f8df50d09ace4ed64e63b5a3c6589e239531e59e9af5d545db88c390e8ac9259e3975ef111d6f304b679e934a313709a374664bf33365cb264d11f435ab5c8c2a907b46c84fc4b57d80141f43fd2f46a27016a4d6087f5165213d44333107ed53a5a95788fc1703a5d1c1275ce24642759cfd0d25570cffcf9946ad34ecf7011a226278101abc7dedc9ce65f9fa6a0", + "0156ad71bfadd7da6345856a3bc35bd55bf220ef9b046966c562e1d0e171eb27a6f6449aca8e5d1502ce9b16a1d49b7a11d22b0abe49498a24b6abc2a42928098475157cad0d3cec2ac2835062f02dc7b519991071e807ad52fc3c5dc0fd44695f8da06537ee5d63323f1f6b7601209b1cd28bd3fe2615628be7d6aa25906546199f968f8af39d06c6e26b25ceb3ea689a5a74877ba2ce710d4c087ff56bdea6d97a76af0dc4e4cb3dbf1d3d20470307ec0e020d2a8e82a2d35d82fb89e6d102a9ef23f00dad46e2c40e7594c4becf524f5d6d8630403dc711d01f468ac8f4c3302bb29d48c95a4fa61e6568cfb8ad0741c0a592cb0468830800fff6dd805df311ab3bd6edda6f311aa3dec406ed3c86c9ef3e38111ef5cf7de913a86fbc5de95d51db7b6dcc696093be0a5200d6a400bb25d1645a719eef5e2a609af33d28db2ab2befebce3c05087a26cffc0bcc485f76c7f4064623da510a3c79c876ac2346b840f77e021f0f4b2adfc9d633cd57ddc1e494e54ad741b2c2548", + "8c4f42b4814cf27c523f1c5f1c3ea02c70272b36b9c7206a0afaeb6b93d9365c81595b125fea3c922c8cee7077f468929371321c03c4bff30f936e848b95b3a13a3efc98d357b37756183f", + "1e671a2cfec0ebd865706bbe5c9721b71bc04611ae206a46c3240b59d01bbf907f9bf3f407bcbb9adeba1ef175fdc24c37087544fdc9455869a4d18450d1c8cfdc13ac3ae393f235e7a4c6429fd0a4cfc1f04d60beaf093ec237915655ce1695b5dea9fe28dca077fff98a2160458f1f3fb90f94841b096acfb97d20d1a2679b776a0345d837abc481d3288bc3608c3ec2a1d43673c51a701e826475f24be81dc47da6bbf0fb4042e8edcad4c93fb56def64e491fcd55363d516a29f7cf423d0c5bf240d076fe8a5402e30f5334a93a129d4bde265f7dd327a804609658f664d56eae81772ee1185ae1e53fb518968a1f6dc69ee00846db1415d85fa356eeb7ca0db3be6cf8a5b24a4386b35b412d546d2f7b2fd7900e55d0a6bc129bf48ddc82d0e17741eb3f759d3308e25b28d0f610b78d1dbd794a3862b91509c0164a8eaf2b6ab88e8ea8b5f308107d656fdc9fa26999195104780e8c9882cf9c080cb39e61d70a4043d7b8c7ae910bbe078072d2f81ef3edb468e13b9e8" + }, + { /* i=1687 cDividendBits=2387 cDivisorBits=2297 */ + "02e35127103829e8c2ea40060ee7154bea499e44ed61995f38ee2056261d73e69e0f6f6e663f316940fc8c3dac229d2fce3c86d5d5ddf2cc5e83b5c5e9b40ca8463cd6f97e30a6dd0942e2aa32c86c74473f6a8b06a391d42eee481c04d6713991907e81b4f5979f2d72ac140b2565d4a8adaf5d99b78798751e3a242e31160342d0c88f08bdade45fddd67f072b62a9a529021769fb52314ee9b7fa886f7a64e677e31b481f2618069e9f329e993bae9daa59318c5c13016d9e4765205c375e88200bbbbeddb50320bba313693ff89544575928d7af24369cbe8e3b55f8ef4c942701c9daeefdc8f20cc7688107c3fb4107d42f4a4ea522e3165f024e4bd99c5c6d7ea170a2e4b2f064571c38bc1c5341d8ac3303b514d31c4c9a8bdd7306a631da301ad1e296eda26318", + "a3660ab08a2d22934ed9198dffd9c2a5c958be2dc36a5b90e5025def297bc7bf5221eae467a1d05815e146a54783f7434aac2b0ede8074a5f22712913d168f7754d39d7f22a1bd872ffda167ee698771a22b9483c802f4681d34f8d9371602b587dc01b609425150112b70bc3de1d273d6a4a4b2406900895d817893a0e34c2168003594e8f919c0d2c0899ac39a7eca860aaa5bf4ebe3d3448fde9db23faba13a4c788a162d0fa6e863277baa6966f47cde7f921eacf8afcc1699752b78c014c5af44341b8edb548cd18b96eb3a4a62798be3735b04fbeddf94f6ca4eabf61ab8122763f6ca44f711d495a97eba9039f79bfb3a67b8c54b26d920eb8de60bf349038d024087fa6988cc563436a4d2f6249a6cbe9bb0a0153861052ef272ce", + "04864daaccbb68cd5fb30800", + "0c115ea107d89e47346faf2b248cebae4b9897a161de9fc1de9f1ca8e93377a828b9015ecd8ba3cd3a2f604c765a378e722620b82c7e490349965f8407c20f678178399c951b55ccf8a53badc1833711430d99b6a2ea0d9f39df38d71eaec271cf6c3a4821a1d72d6fa97b5c5ac3292e519024db64d6abfcfb571458c97d79c2e054de937bab7a849e7d0f21ae136a6eb042645318814630269b684783ecf27563528efcc6c648bc013b65180fcc3ab00e929bdf1afbca05f8e5871878e79e402c1a94bb634a712eb5074e7a26ea6d01e3d5d3bfe38d24c49a6d5eaf7b204878c2610653308d7b861ab74718e4491ff38c6e743210fef62452288aed9f359781482c957bcfb18b5c1b8dca19734eafedc01791bf997e797a4e08a201f318" + }, + { /* i=1688 cDividendBits=665 cDivisorBits=139 */ + "a08ab516eac24a88eac5e2c29276cd548611ee9fdc7e79dc0b9db7bbf5d6386cd74c5a8e803bfa292e6abfa8541d6313ef4ee76d993e3c0d13f173dcaa08d891661b298f3a90c1ce5547ccba7e6e057d6af23d", + "f5ded25cf6da721964cc3603973600ac9b", + "a727ee589338bd536ca5c4b46278b56bc5d05e16aa0e9c2cbe8d30ffbd28b4c8fecd5eed600f9ccaa29bfb839c7cf767a7d882b2457b71e4016ed39d0edc723e48cc", + "5204760357f90c622e8bb1da1b70cbceb9" + }, + { /* i=1689 cDividendBits=3310 cDivisorBits=1594 */ + "03b642bb44d3340fd1163232dc0b48e8aa852b3611591274f77d0f67e04b51f8bd3fc9b0892273a83826208f9810c823865fc7355764b173e6d704a51955c3745652c86e7fb1a2c5aaaa59cad3042802558185a85bf28bd40f512020cfde3b53b23e9ab12220657c063872af5005a0752b52399e9474d019b288573e499bae3e973341b5650d6b0a02de573025c1250b2a6c154cb1447e39303ccfdb1185aa602a1d46c435c19bc8a694e2a464d94c1d86e18899b6e88f296e73ba65dae8ca1727874344de8f53fab5685e71c8655f59ca85a22a927b52d008f198f6b26e6e80975201f9c00726d52a38bbdd9febfd71b22738de93208211055784fb4d993283573177a285d268b80e24cd7ca1330bf8a7f55a96ee9d18b9060963f264c77eae619ccd947202fd25fda141325cf1bb8aea558083e26646d723141b1a05e1c66be97be63c25279c4375c4982ef7f0f8167dd84f121975f872866fb3b9b7fa8af7517eae3ac80a28ccbf6826b1e7f524a1d9e330f19a01fe5ca3d24d1dee24f33c601eb3ae923d8dc5368946bb3330e366d4b72242d4de99cb9bb8e2d82d8d", + "02af1fd9ed1bc3077d90e5543af79002c2aec37cd079cb42cd82c967bf6d0b3f71e3f1c2c867baacdb574fd384e0cd0068e5efe3441bdfc856ea2cb4a768151f4c465986b9e197602f6ced65397e450939c0e3488f9fe1bdabed24c39eda30895824ef9c6e1aa252d9bebb38aaa99dca66b95af678a634ba1ac80db18624322ffbe44ac866f53f4e263d29bd3fc7da44962fe6e68943170a5c9584a35180d1a9697d33f35076c13e96d0ca4a1cb20408e6a21242ed0a5735cf6418e8fef043f635995c145fa3c463", + "016209329808328e74f9de2467c136d934e6b525adaff363f137b92de575f39e18c99491285ddda3c49d58e665239fb684b005d0b9716897ffd0a0d14cd37af8d92c69134f17ecb79238c22f59998f4fa8893e5e1a09f239c4ec527c0e6f2cc611f2c166add769434ce03dbc86a01dd35ac80377ed96a60e5dc9e687af9840e30448568f6d5f4342087530887bd0f2be967ce5ee704ed878cd1fbff1e553e6bf149879410baeb96111f56800e9593242dd8855ea5be54309429fe66245fc2bea9c45dec1e964b294aadb5e999ce4e5016e447ab04c72ce", + "013d68f169a3c2d595db82427a1be58e5594ee6350bdeb34bcf777dae0cf57125492694ec9c19b3a48d9e9da7ab22991eed312001d9006a2fea9701d0715aa5edce5f6c80b14596fd0a5e1930f4e8584ee89d4f7a987234adf38b982d51c56ccf96c560e6faf2d7956eef616eefd9e7396e36ced7186e72f65cf97b3dbf502b8cb3ca23d5bfa48665c0a8f66ae1122b27521b5d121b0e483bb6d4b1d59d535c5df6f35f836c3e65feb9fe3802191b356a9ead0eec179638cb01e45e56050483cfbd591eca2380fe3" + }, + { /* i=1690 cDividendBits=588 cDivisorBits=41 */ + "0a064e603cb0bbedba2d53ab3709f624b8a97fa4d903fa31db56f18b7d66aa05f6a2a9cf7098495654486bea0c779e1a6503e3030e045b5379eba2662791fdd495b09732502247b1c1d8", + "131b906f19", + "864ec098c9ce3e0a1c08a9050caa7ddf1d31bbdfce5e5b40f3c8f48197b0e4ae01d9bcf5b9e8975d54c53854e58657c6d7a33f741e20715c8bebc51b78054b783d2bfb3363", + "05b831d02d" + }, + { /* i=1691 cDividendBits=3331 cDivisorBits=1773 */ + "078468e2d3901e3beb1a9cad96affdafa361a51e2b3517e9b09c4e84be913e7ca5b88112d8180389ab2c92939c214d4c084150450d44c69307c0546259fb98efe7348ff410154e2992dc158223e9d2e5a7468c0f47c1f6d896be2380c4f05676f661e6325423ff442c9cf6c2d7482169870993e8e6ee4659200c422809dd8517c99d5d32ea5431abc4f5573dc48cb35dfaca83fde2d0dfc8cc35f067833eb102a4245dd86a1dc894a61e21f8ff7ee43fe7aa1894d14b3cf2519f6b94ab37ccdb09b3570fcaa3d163caef35ae81781dbba43dc5cf21ebb313052c7bb54ffbbcfe76e00feeff64130533ce5afb1acee1944a577cc0fbe0b2e12bb4675a4eb21a9a05e6760b6dd3eb648fea05d73e6d1448edd8ab0f9ac8b1b3ac7dc852f3e8e30ece3e3457ad3f2fbc31eed34be090ae20d0ed1c1d83c8ca865897721dbfeba11a516134c9864ad1427b6594dc936fa0ef177e78a794156e041ed4543d1a1dd911866893df0c0b180e8de454a71c288a0489bdc6ad319940b4067ca6a6eadcd852c457a82a059ac51b66d402a63f2fa847a01a23036644c5d212d48c8a740646a34e", + "1b0121864895cf7bf03d198ea9fc1b74b85cc20c534ea9e1f447ae523a8a60c87f83d1f842a1a6a0c53741f4707a1b5f26d86a6e285e1177d43c3bc156d27ac4c86d88ec3286c78f0a2cc4e0fad0380762439e875372556085f6b8a1d264522dc4af003b75992514e4dbeb9f80ca5c47e96b60be2aa757062925a5a0e5eae83261e048239badaea2f7771b76cba3cee6a29f5827876c5c390b0c64560d22df80f406c002fbf4b725e9be419686960780d34e557e0ca6134fff86573cde600763017fc65c629e8871ad61f72d897b874f963028dd300022cd23eedcf18c1d", + "4743452139e1ac0d1ccb40f6ee21240ab782d5acd86443a85ded8de33ec83d4807dc167328f3cc2d4798b2ac679b04450bc1f73455a6bcb046ab99233a3e2ad7c7cca749a8ae127b7616936c96551bb94c057778f94861cecf20f4ef4ba8dc1ad02242830fb6006ada17c5c4a448d77d37844c9d1f5d178af7c6458a8903d3ff85ef81aeaa824ba57b6fc5bbcd2b99ed8c68b9fc5cf30ed78a03eb9b0e48d19e0be8b516657d6dd5515fb0a04432c7e737b44e5b972fdd3d5e6bbc68cc5e2a49914151", + "19e589d5838a2f1dbbcdae865e32d9389ebec34b44812e5ebae8ccf54ace4e1a6fa82255697aeef3085cdec3773a96d9b9c131fd3f0e1b0ab8746c4b60e9382d7cb0103092f47e7fc2b91df8981f40c3e9e19010c1bc9edf8162c7511739990fff7fb32f097845dd9fcea53462575dd111b2dcc9e0829f3b6e94b6051f42e7ce4961a88828986b16e3f0d742429c9d450b4e7ae97c2cf72fb0f8281228289f412c742aea0daaeb70952825dbbcb3ff20d3377eea8cc02fe70cc885500c84fde610714573f665c48be7ba4c4d3a319b5adc11ac0c93bce408dd4027d8f121" + }, + { /* i=1692 cDividendBits=3217 cDivisorBits=862 */ + "01cc4f9cf4f15efbf92a085586331e004121f21cdce7aafbe4f2bda65039a5eae970e3f98e35701d368e6bd1d6e57b65e560428a0443ae4f07bca4b947644e2e92cadacda0393efbbc036ebb493f9ea50e606173aed8db5d59ba5acd22acb2e90734eec25754ba4d49196d801b07b3cdb203970a808f555e2555028568f1ae371966d680ac3c3b2424279cd5e2129727fdb32c1ce7bb855b874ea34508d49e2852a0c1f3454da05189b5ab5c475bdad58dfffbd0aa49ce543a8befcc800b3664ec284496588d5bac7a447f2e89fc33a7d04020e05c8fe9059e97976171419d385828d67a3410b2bbcac7a900f81232386d2df5e16ff712b399734c61c167b4f0ad0e0d3ea6367689b64f3d92755ae141164c85740fdbbabbf1585dacf5622e35cb4332ac76e0769f18312c21bb46f464595c86ac5d821edbec8cf853aa860c438d425e98052dd9af7da11cf7c93616093a6b305c5ea511fc59c3658c2b0ae9045b736c7d25fd73445ce6e03227a3659d67c41ba92d3dbe961e239749304b928f69c7267f6dec35d2824a9acea5cd49ba05664e", + "3c426577230d335d58024ab1643755e349344c80baac99bfae12d42c8a581a3f9803f4d39b6658d77427415d71446ec9f428de425650e8ff5626ab3c9a8e9a68b2036c1fbdd2a677c738a92253ef5abe5a483e44209def1db141c90875c5131a8f8461d14e2dcde296390408", + "07a38a5640430eed493d9c362ddd03ad1f35eca223d0cfcc9c9c43532bde29a8d796fd49a4d46449b58410c39862ce189d2624f21c6c5d4542661665c3aacd21375af91459cd7a3d874069aabd59433e02011bb914307919122d4e9b6328bc81b6770d061e33b694ef2e07e370a27542e021d9b13da3f7f4b7138dd0f2d692b82716748211a425d18e4acd94f8240f05da3a032788ae8b4c96c42ac4d7a4f6da9691d25851d692ca15d63b015076e62d7223f07684b260a80b62dad9f2b5f34ec47a15c977c8adf4ea87f7e0fd28d815c89489202069166eb99745113937eefacf264b4fa82cc39c6eb0e2544ddb1c859ff92e31e8e8f4d82a5625ed462e8ab216e3a0d28b84f61d02aa2e042aee8b04612539a219c3fa705e0a434083e46a0a44d8d7396fd305", + "390839db1bd6712025afe17cc29c78a50a8334f9cc7ccc20b0c7988c934901064d9da3382a29e624dea4ded4f525f5a732910506a3c46ba2d7288b1fb687b8574857377256332f17d221c32d3d93a8abb9945ef9174a9bb23f2ef1f17d251960009bc0b726f40eb5451dba26" + }, + { /* i=1693 cDividendBits=316 cDivisorBits=183 */ + "0ff36ea8c347667c73221bd4e27d12e987bcb9920cbf439d7628aa52b39384d6525d6a9833d6d64a", + "4cf4ef1427cc2f3d92e0afc939b91dc7f325dbe5903033", + "350fb654a80e3db0779ab92a8f4e489ad3", + "2fad7fc752e5bfaa10c351a5fd61b13416248728a86e41" + }, + { /* i=1694 cDividendBits=2127 cDivisorBits=856 */ + "73cbdc0b6325c5759cf202513e73562f3126befed99e9d03410f192e186fedac1f8749f7fd44dc3df11c377df0cea2f0cc2aa1e2519384fd008569992c6b084a90013c29e0c6399d958c5eaf29fe47563955ca3932d72af17458f14884c13264af946e9ebe19dcece164136724c8f04368af8292800ee4b0bc53dcd6183d8eb6de3fa9695c39b5fba9562aa93df08b96336717507a4c1099f8e1bd96c1d87ae8214a2a314777d56fa6b09fec2c4b4d55c9d08c98754b4514a19c848e15eed01f9a7a417d629cd3c22150aa1638d9142360084053a6b5ce45d53cc4e8831e296eb5a38ffa7038c500fa4b1e68329569b3878b2b2bb2ccc7acd1280545be4fba6c84c5e98b655dd999030c", + "7552159ad8d4be951205762442bc7c0e00c8d34f63acc814f80f5b836f9e80fbb5fda8c56beef6321ad7598da98d3abfa06919bc917f32b3ea1e625b875db931f6c21235e2f286ac3128d36bd0801af69bc2e9877a9d984a3e795c685cc866580a3d5b4242ba83c73feeeb", + "fcac821bd81b44ee405cfca431b479145ccc2ad7b0eace1fa5929bef0d19a1d2487c25f1413686352715fe61009bd4dac8d2935c66e3a317a3622c339ea8052b8cfd1ea7880aadee91aea9c3e67269b94fdffdbf4fb80e3879e7f379ec5069089cc927a5e9ade6a951af9d68bc7a324b2ab0ff97fb98a3b3a9618bce6ea469bc5d394e26e7668a8f4ac8092e7fb77d093653bb87ecbc8ef740037a89ca18d5", + "41de4f64d621e0e6643cc449f153a7cef1eb34af21604966068f1092ed6130d441e5560f0a798e902af706b72ddb66a50f056facee77f055ad665c2808ac12c15833e24b158820e5a49b1473f6f30b2d701a196b348a64780a5dd1ffcbdc127af2e32ca8e8cebeca933185" + }, + { /* i=1695 cDividendBits=3890 cDivisorBits=2929 */ + "034e7253223cd0c29e4257e3dec0fdb969276c203ddff557632a996c23145f2b429741543a410298536d9d4ac2ecc6fa740c8882f11559893892c26d735ce675d24557fb8ff197f547d0f6cfe305734094096ff185e3a6c9ea4d8b36e3f039804dd4ef0b434e1def52ed505b30da8514c421e528ef7e7697aa09d69d06165e2267cc7d55d773f4fd2cd4d13117a1a32234ca67aa3f9550c2fd9f74027043a2be85d90c243d9b99de5919bae7739bebacd6681d0aec8e85b8be998e31c4a9c4108361c2f8f8766781014fa8a4e7d7f9456435ebfc97adddae9e11b81d74ecaa123890c09d16140880cabf2f393058da804739cfb0fa4a9993718c7aea79703a7e9fb0608f7f8f7ac63ac7dcb7663d7ac81bccb7ef16cb52d15411b11e25a49a65a5fd79770a01acd4a96b036b0ffa64bb3ebfa5ec98c3b3b79bea1a62ad22db23e6e962c2d75395ee75e43ee3cb97358773705cbb86898262017e1f99762724c9daaa5917f2968b20605900563191012875f8a2fdf4c3ff180e9baf775e38afcd1f7a93ff735efe5453169af56d18e04f8d489d056fe09c8f572267a04d4e7707390d4e30ab22b50c6e16f577cd6577fcd6583792c8f55e0fadda44d0fe23cddde2a7fb74517b9d05d4ea1c5b8c63461e964672da5f73ed53a00a6bc9c2304466238cca776a1754", + "3be9e2e7cf31572c49f9d7b58cb178fa764a5201125b7e31257f2254809aa2192ec1ffaf56cfe8b1f1e8fade15845762d438aa80b9f000f5fb037cac609a4f49d2a505087c377858478d05cc079839cf3b61096631782ac23004e9e1f4a997ae279cae5bf530d7067483992e4bac5807a6cae2d2cad31701c9313f3346c74315c0eea009d29f26822a827f71129d5403af910214dcde7f1c22a348bf22aeb2458789b23fcfa3057af38fab43613fdaefcbfd8dd776e33535355c5317231519942c6de0eaae5080d4f8507352124089baaea3c7baf2344c5cfa5b8ccccc8a3deefc3fc39ae9be234e24d7dd4bfb7432b44c906a34827189fb7d49099d7fc19bb8a1c936749e92428b1c679a81b295307f8456e4df8a0c2da3e05a53dfc387e445d2dd58f61960386c1ba6ccb5bcb8251709b334e6ddc3ff1d83e652a7acaf33d149adbb7729b5cbe353b94367acaffc464bee953d32e4ae6056b21e39ee1da7877bdd9e1b9b5b7ebd4383a21db707", + "0e20b65d360b52e41e744e1d1d95d4ad93b2d3d1f0a74e71d9f04da942e5f823a4ca90cbca89be2c63f763573477e6cfc38d0496daa77d4a2e9317439314c7a4d567269e643980832afeab87355f145735171bd555427bd90587d55a605546fff0e03ee27489974874affbafb82d91ccad6399f881f5187bcf", + "398787871cd860398a4942afb4e34c4320c2ea5fca636a835c379454f1ccc006fd0d2068ca6d36ba32710047f3d9c86cca5adeb491ecccbec6fdc20690a37d1424a4bf7a5ab42263a905f28099d4ec2fe87c3b2e4c2ebde05654d96af164dfd85b8e6985691b31c44adfde2584baaa9d96722629c13ac03c1e8625fd8c15a320ff3f546d6276d6d64477d57ec1436119fb44d06a7b1378b2fefff325e14ac3e13d71f837b4e63e91cc4f19da960e2333ea25d14140cba25ab0265496f7b68d6f8c34b1aa794fd2da89d157b50d377fe2bfd3637f04bbc2aecd1c29d68d3eef6f26aff5bc26109298ec43b2003b23529001462f7ce1d952c47e48c7b23fe96e9869590576bd8d20c18ca04546683729e5332c51c4c6c90bb8a21191dad0aa7fd9e6ed41dcad069e2db48dfbb2692bf62268b9dbcb610015f65aac20f438361d25e8b64b4db7506e5513dafabac2ec4791e3541cdfa59a5e2c43c36074640a7e4465b3f2e268621ab510fc3ecabbab" + }, + { /* i=1696 cDividendBits=1348 cDivisorBits=225 */ + "0bdba2aef547c2d934ec2214d821c7d09c8cc6b3ef164d48758e76a2383f6438fde46b0b1f2144a6cb031e9f8f88f310b44b6aa30c7ca564246322cb0a5b17cdb94d95ed61fd902ee6b6ad8074bd95065e95fe6fc7c9d35239e99a9c08f663690e61fe2525320bdfedfa311c21706329be3d8ad20c2ac9acbdca84dda849ac833dd70b2201ef9f9f53baf0993fe26df14f045a9b6b87a0b73d73718fa4dc7e9b5ceb3584d4f33d0dfd", + "39b3ff91c0fc43386a87a54248eea35f91a29022deb034b9c094769f", + "349b9a55c4a5981abfaf4450af5369d16c6d13a8e8f1c0a7c852dea35ccb438193a40200739231d3cecdf9041f747a5b3e67f4808e4e07ce697a28d0225bcb8bb41fa7d3059b375020d8550992e9846171103498fee58a13ddbfefba4948b9e6dc12a5ca2c45c304c9d0ee3ed9812d692b125b8774dc8b844159095cfc1088fa7c69e9b840de75653abde84713", + "2dbefc9757ec536c69160e32475358c36abc68de4ce3597d983a2730" + }, + { /* i=1697 cDividendBits=2645 cDivisorBits=1124 */ + "088b7c7b20dd2c094a1d63c84d3cf6d3937ee87d56caf06979e316d5b005200ad3328a3f783bf3a222afb103c0e52dfcac1af0256f07e94c831ed37c95fd2b74cbde8df6aa50a9c2a2508a766138cfd22f3b9b65d53b40bd7f00ddf68e86519ee4663606c2653b0f79c110b70966b27c6d58338b2eb5dc9f01976dde45f2e92f47a0455fc67c65940786c5391d03134d54f9ee4833ecd2412c0210f20b7695fdc5fe67edfe0a551ace8d234b4cdcfb42ed14f7e70451a784927af076b9bf9d991119dd62be4084a648a3b43f863bf44e7fa6b065d394360e51d972d89f8a631b7db35862b69f7d6d8f01fe1e511ae1553f88d7c2876195bde5a2d2981617dedfb8f9ea178a5ae25fbe829cfc238a4efc31037b545a7da310b9215047910a12ca4d2ee2318008b7718581ddb41357938d1841fce53de444ada5161e30b0ac8beda3c941a65091e70a65e8cc", + "053a06c20ec942a8e919093bde98e14b07c626b412e77f56507e5299d0765585fc0adf6cc993de6c9cf4ccd669088dc3efef6bd7b85ee57e2b008b4f1d16c8484bf3c6c6e17c383ed9dbb44ceb226b29b2ab79a1433825d9d86cb9eb077d1e329184e9076a75077606ff02d8f0ee6aea6d630d8e1811f1120a08be9e53367dd0e4c721382c04da8ff32d665e01", + "01a286349037682053b409b04ee3e6b1d3140f8f5bdda793f888ec3a1deb12bca6171e3acab557710938cf9f3cf30806b6685694d622c50c330fc68508a55e4cbad48390be15ebaf4462567c332e81416eb1494c79e0e1a8c7f0afc37dbec4d2c4513b4c8c6f7d49cceec45b76de66d9bc1483f2311948cb830b64d089387c0db095b1ca34406aff21481300494c328eb0a38a71c67a7edb344f4674e0364425cba3d78704a18d2893f9bdff388a9117bbfd7047d3fa7870a00df95bcd7e80", + "0341c92529360d93c1a1d479cda24511396125fd02badb468cce3567f1bde150a71822ffbf7088db61dea18f03b5ecdfddde42d0e6fa3269292b216033ee65af0ed759e90c523a9e8cc927c1f06cc9d1c754ce2f92864baf5f6697d5ad3b492e95c2a72e3bbed1729dbff950b5bc8b14d377e4958b3d98050336ca6f3a16b6f3bb330de4426358ad9b53256a4c" + }, + { /* i=1698 cDividendBits=1284 cDivisorBits=70 */ + "36e3b800aa1b2b3f86db7a4ec0bf933dcaeb09d90da1fb3af4d52dd78e0d916b674a88cba9ff0c00067db449f909dc4ef1382045e5a583b8d6009fe685a2d6623add7d75d40a669993e89d2efc9ca4c219376fa643550e004351a59d827dac5422bb49934a15b6d28677df236b71944d0bfb2189e81387dd635522630d8fe242fa64126e18bda0963a1266d58714ff66f8cb4391090a9d425c7584c463e02e78", + "2fcf29084233378652", + "0125e98dda49f4e33dabad80b9bac543142c067bf0df10d264a6b4e1b6538705b4f1efe15f7de37a927f1e602550c903205076bdb1932e73e246edad55d62b3f274bee117b0b6d39859e727d4f8d80fecfe6980eaf67294f27cf0b75ce3402ae9c2d1ebfc968b981b543d30c058f585faff9414427e3c4efba1b2942514875b18a97660efd8b16e8b9cb68f86e70d293e2ccac7aba22df02", + "1ba9e38997348bb3d4" + }, + { /* i=1699 cDividendBits=1506 cDivisorBits=1257 */ + "03a7449ec159ab4f540dbc1dea0db3167fa2ddf546a11e9907232dba6f5b893d53b878810ba9aa099c4230d4319e95ff93e581243217e7a0b7eecefa65f0b1052847887292f36c3d9b0164d5cb46cb78491178dae72678e84ff30e89ace1df1f3595f71caee84c6aa0e48d07f862cfee4c950ec154e02f3a61e730be5a201da0ad97ee2f029c5d59fbbcf450dff3932828a36228ff2c5691be7c12cfc0052fdc0c2869ec2a9fa727a20a1e31fe7bd2e50953b3b09015143cd285af0af7", + "013f9c60c9e60f71ced1f7f09d5ec5076fd68ed07f1eb0255841598a5a632ca96138e1705100d6fe40711f010795240d030d5b9f09ed185017438a2ba2bb722661ed60e1dc63c921b79423e143bea38244114386f0ab56aa881f8159917479650d0da1a2120e46b9db88aa77aac553c60b21f03394565fadb327dad58870dba8ffdf2b268e029bc15be6825378da276c466cc178d0aee0e40241fbd56120", + "02ed201cdb03f99fa310ef450b9964d5c709d617fc6057978e10cfe201250409", + "8800b899acabe24f3fbba1275fcd6358175ff25ef3f2de43cac871efff8760047440dfe20989d9c70e4d72bebdbd8bfc00c44401db001ce90dcf34393136d7f290a04a670236385541043664b538e83cadcf354d9201f1343d1421618d573ea537af5a3bb2811603d6a2a3c989d9b3e531f85b74c35b3ef291170163e47200d36f29c88091c45919f4b0c580a70afc682d2b3e9df8599947192c0a20d7" + }, + { /* i=1700 cDividendBits=2415 cDivisorBits=353 */ + "18ac73db57b445f583518140b6cb037628a1bc4468c216c90732ef3d4c0e08928afa855e80477cb5030e84ea058f24fdbf5b8211551add47e51caae820ff4a5ae689155dca7269573e119f263c41ebf6815ddae116578142398e3644b5f6aa00f95f2fc0995990af337f7113d1c787ffe99a51de30116e4cdb081d8ae5b2c9e7725b514a72b3c2af5db28696d5fa097096b70b0bd0b6542d67003c1a2a18a0ff57e902e184ca7db9ba130b380776476ed906022958acbcc7066a8f0c555fad8e0af80f958047253f8020baaa60927f4c6d6f96ca658cd8dc13fe850eb6e35ec08b8cec4837ce35ce9434eedc584c874cdcda0e3d56a1b93f16e1711cfe189b6532f0df7968f1a1786987da3e545f394656bf97f988ea0c17a29ea55b0d751ff07a07622e2e14f58303ead2db8009", + "5bc61d894dd2d0aab50b91c7b57cb656669417b558b0cc9301c764eab570f5dc77ab65d1e0c5ab9587843415", + "44d3851d91439cca8dfb18fa1a72d5511ff312310bb2bfb603384ab47e806cd94184f89672e581befef96e351234503b32127722949bf7167becf28400f7f8c3d789b3fe1da74ecd0a62edf99b42762ce92f18f37b3929fa07282d55530f1de6c9855f6caf262218b8d51b708742288b30221e70aea0c548149920b0eabaa6c42174c5d0ff81f2cd0058730c930e3793de7f9cd07f1a6bed156b875de78f1ba697c673f6281af443844fdfd43964ae1ec76cfc619bc6b691fc996b8965d0f2ee16997ecd9aa78acb47dcc668ce2959082789526a274619a3131c81b758c6e06babb844699d2ddbab4887a3ef70d3ba77ea60de0f5c4e0740797b67f86c86d7f882e4", + "39e6456504e1a682c626a53b63d27a6e4cce2ee56453615855fbb43c5395875e3d1bd6dcfa24d51ee7527355" + }, + { /* i=1701 cDividendBits=3884 cDivisorBits=1970 */ + "04c55504a6463fdc88f7bd62188b5b54f658c9b0a5b4fa23cc03b8b98d667172faa535754917540bb699ede313b2dac2038ce804c855994d0fa22b2933207e695f7c7ad8f85cbc5cc53b31f587df0431e10a74b3a7c09a80e17e92d46ade6d61e3f4cf2538644879f5adf54b1b4ce09c470ce7be65c5170d64615e917e98fbcead935a118db3a91a4213bbd5f237d0efdce5ee488a9542fe219de4044b674f7206c4fd74aa2b81e45014745610e72581830218e923f8b54d00a25557c0be5d4863f3d1588dd398b5ad33e9dd40af79f0724ebc1db80c1a1c1de9e7658654ef3f9ae6450141e4ad8e2ebbe3d4f6f6305a6e9bf3bbef07d00335d7d1a3d519314b8dd6bdf3e235311e78d32eec0839eba4b419e4d584c23f3f9755841db357ce7960cf074d68b178726e7e131ba42f16e1e1c6b67079fb3c1b98452ea4744d8a0139ea4b6330bcf1cf104901aeb525118bcf65d120108a534b520b6bd3b27cd6435cc2d5f5975263d1ce6d4fba3aa40704bac24f3ba7f6981b4562dff87582c590f5ada224a1c549d28e8b111aa7799a905cf190a7ec5237e9d94de522f5690695a7891ed06a9f45065316905a944376e441d6bb71a61d862dcb5510141a3d6bd4074d70b971fe0a3560ca3da169c6b11413745a8c8309785444095cf5bfcade2f737b07017f9d", + "a57572627834c4d58b37024e7ba434b1fbeffa41dc1c593942576e02f438bbfd3457d1815f11ac1db07a2c882f6d16d8582dd4bfd0c72f1d4b08058312927a9b39f292dc1cf612c5e34da298db1d747cb12face01ccc3a3b3118f884295538e95994ac05e25d680552d31721a12411a06acac65475c167695c6cf5b2d0f552d1c6a735292dd086b6a8d08577d634a0cc61c861214c052160d53fc01b10204ff49dade17150603c195394e343936920e362fc68f93de92943a5231b0a8dcf9adcfc4c2365cc005152539799c0f4bb0746b12cbbaf1b9ccc6373dbe598e15fb4edd323b9a99e578a32169c91c5998f1d76b3d64816abd4", + "0761a93f904be093083ee9c8e5c1c10696d1c64e47380c9ff4f000b5844856c6c110f8591c88ee13e94ead9b60c73d7dec26dba193d80bcc98a8e80e9e057b4f2ea2391075d3badd3ab60c9966d4ac803ff913848ca359412ce1001e5cf470b028c7487d3b62f1cf5bffdd4727bc0fa6dbe86d5242758b5a0e5580630134cf00fb0926197d6d061b8d5dc6cefbec6c541cce8ffb49265d9493a5fe9914bf2296d1eb65b918bbaf668081142fbc9e398a24e6c521b8739ca8c3535fe2a4cef57b0301533ab4f9271f4b0662af7d2a64b13ad5aceb696bd57e40a1bf2efb30448cfb82851b9595681bb55935c3c7852222", + "3b37fbf8af835a2336815e8a20f1ac69a427e59d4b4e49f214e207743aeb477be3a66af8c20db3ba35e644a093ba9c35b9afe2856176b76d3b7d7ce670731e665befe60e763848ef50d54e5ed70d104ea776f9ee86aa3f69784685bb3cc114eee1b95426aa61064de42796a91c8d86c5510ecb07b60365b29a4e96b72fbcf980dbc280359b3fb270a017881c62ff77ddfa7458f56f6619306a888ab5e41a0b5508fa108d0b588d5db28f22ec9fc995ec60276707655c30a2953a9f745c728f567316c1c976547c2d9b5dd45273f60d3c9ce5cfdcb4b557cf162a15cecd6b31abfce09dd91cf3458ceddf795d1487f4a0419d60088575" + }, + { /* i=1702 cDividendBits=2253 cDivisorBits=1315 */ + "1e3d082d3b0c084237e37966aafe646c28d936e1f9723351865d5cd5616846c219a2abdb24db126058f73afdf908e9a1bf6cd43f6bef8bdca10e074a14a15200bd427335f664d024260da1d0f059e8193912a40b5e6f2753d225783413f0aac95dbb4d4ffb6ce7008c45961a225240a59c7301050bb2693abacd4c36fa2aaf12df8a90a0e70e90ed1a5d9d6e4601efe3f84acac19de9d5f9c38d3b6c2bb9f04fbc38492d22c7895d753cde8160790787162a624c4304ace1c43d2e9efbdec9cd56a06ccca09e247ffffe2c0ee474865876cd6e4bd1f955d0a08275ed32adad80eae018532b74ea57761d48f7c0317fde0bd4663b9dc8bbb05c53179ee255d60809c44fcb81ae69306b3b549a92cb6d3c0f3de2203fb165f4531a", + "072c793778c4e062d957f11e90cc0a2d1e362aed905168c33262a64f94475884ee07bacab91987afe5cce46c153a1c9c145fec1b7f8ffa236c7904384fe972769659cfde70569a13dd40d8f546eaead8fb80de2f65a46db533796a7773d53863fd8dcd41d136c2374d3e282a184560063bc57a82d06db60dfd247700b57c0ff69501c257138ae42d6ab72864f0cc13b2a7e9f0f48747a307cac5b7b9674df317ad764d876f", + "043714ceb8719d0a74882f4b3963534a3f0ccfda12deadb5f7e669c855a254ea7a580b87cbe06300703110028315e7ee6962ce76bd8fb48ca4e70d41fa8333227b6b98cd26ef89dc65117c3b39a2880b0715871842bca9c92e74bb34888739adb4e3e2088bae32a3e2b6ca41e29b85535b03f5f3216d", + "e8a78530bd80a116059622575d48f63a399feedcdd422ae0032bea756b38c2260dfdcdce0bcab6dda8f2205c9965a88c6e8d114d4893adbccc193f51f45a97926dd5ada6c7f78574b08c84416c84f68f196016a7a699a9c70cd9bf1d3edc9aea991526caeae19cde1814d2b889f1c69a2a56fe5b18546e714354a9a2c8d407a1ca3b79d7d3fe36db3e584c42e0f8acdc4c544bd9cd9a302c89cb990259a845143f1f59d7" + }, + { /* i=1703 cDividendBits=3859 cDivisorBits=3286 */ + "04f7c9b44f1597d071050bd368b874c0934d638d63a8b62aa7998fce75ea5c855c4d295d7d5a2f0386253fdc3bb6f47589a74fb5aa97599f4a8ab27cadedc3b30567673c61d0b66d5b3551944f38c90472eed89225c4c0dd507d3b1533480060dac97b8b2e861c7bdd9b9e80e075ae46089463ae0e74fc0de5d229221b824e9c8560aa6a164b0fc5e698cfa1f37a506860001dd82cc18a3f19ae7ef4a1a53288dcc2a0cdde1c5d4100d6574a534ece89e800dc753b2dd6dae7b7a8a80b076e8847f449b79ff42055538628bd2456b7ea60482b430c075734df3ec2e867cf522ae24e18a45814fc76700de08e2227b93e3cd403b726da291646af9c248b2ce2c5067fe836a2982ae4c68ccf2135d2a342cc5a495bbcbca5978be45c1b61d994f356a10a54342fdf2c5761e214b87116a2154ee35ebd273d7c3a62a87128381b2b839989dd60384a5d4a650738685ed3a33e3b926e6f301962a353f3a7ff7fdbce19c93b781b8a61cfe15c1937b6ce1ad4264e80640ea8a7ad2acd7388d70c455e3b4ae8347bbf1900c27dff135ad91264730fd664b45e758b83e7c5b568fdbc850bf536b00446f91be9e5525f0db54397e6e89a90dd23a6a17311a83a23c3e33f0e3799c48c869775d49b0ef9c7c8d33bd65d8df8b23768f5a45a2160e0b58f25c3188c", + "39f58287360b2a8df992f9185851069522b100b96a918a82fad0b305b95bdf937bba93332a50b3a959086f3835227b5c57426b479e630e2e6350a838e8e81a83fe23e3cd90f3600b89f7fe0818c95dec505555154a217b2139e6b4d948c2e52a0313071d0de36c93b7dfe8de733e2fd28ea93d2de4e3c56b8050abd2deab05dfd50d6b36aed85ddd319caddd44f1997976432ea359e394fdbf74ff9ba21457045a756ce4e152a8dee49844ae35ba2ecfe3702ee9f10b0f9dd3bc4dc12136fc863405c599d6bc6c758fa69a0ab0818b18ec5c7844b7a7bb9696ea01aa641b285f4fa7fe13a1fc6bd065a4729e5cb68e0c3b1846c55f4a7ea1f4d7714f93391774121f365243dc70f57ebf1e65c636506231648098b8d6e08e212e3cd47065993cff8e4d036018e9cffe92f241d0b911a4ea839dd7bb4f8989e747b7ae3547ab04c3812f41559f8e52eebbc883ac1e301120f61bb7ddd7084ffeb0a9f2c29e9424239e856388165d5e88bdce32b5516752c150afa8c13ce10d488830003a8857ed8e6050127e280882194a435f4e3b6fb507d72cc0bc67753aae84be", + "15f1609bca24d921e23fcd1f9cdcbbc2c2d0800599c484ea920a516f9234f1dfe2424854ac4d78d631bb5843ab24ce96802139f5d8ec04c4e26a383d9badc0c014602b465a6f329b", + "0211b60a36493f57c36a64dd737c00c64e3489d5d2805d07ca38f1800a69888a80595f6d058b64505a312a8ea858426bb929d0dabcf6dea10891f2b47ec70d11783036e7c9f5eb6f3549261f9c666c82503286f98824e3414e9e440c61ca648f0fee671f12d57882f1a4600ed7009c2f0566385fc368e9926714c6549b8c3c9d71acca9a00c68228a7682216cd96c9c7b99666515b6a1a9a8861869ee2253446a927f431dee1af14a42a93574424d6633cc37a2ad8338f98873ebdfae34eb332292a82504d5e75377265057c5f31cd7a07b6946c5634368f2790ff8bb7ea43fa35de1c2817a99fd528999995af72b585d29a8ab821ccaac228c0de15332a6634ae63194ec18e8f46faa0d65b78dcffca4df0337fa08b847ebed730b2eb667de9915ae00772cdfa2a740b92b914937e4641e0212bf7d2bdbb32b39e32d49c9647e64754b3266dd1b46a27c2a72d092490fd709173ff0438140f2a98fa2e8eebe7e3d6e245ef1b3f00178498d64135a36225fd5a955377b1f6da2ebf0d450b68d093f8bb8591be1573fa5fdd5592c882d76bd919d4df29d42dc99d82" + }, + { /* i=1704 cDividendBits=2632 cDivisorBits=1742 */ + "bd01233ea90a5e1c26a8313c093e26f41b2c773c1f67ea5cb56bc2162e44708021909534191e4480747803fe5cbad06d1dc88b97e7a263e780aa74b450037309dbb7bbc2c24e9e16f1a065d64960f170dd27cc8ce65a290319888d919d1648d8ed7cd6972e369462567ac80dd3356c6a4750b32522a2ca9192507b2f0d4db86f32728f124c772e1fb1f83b9340e11a9158a0a9c30035b6efafd634f6c998ce8f4669543587a85132c534ff9b2d5d349ba934dfe26eaa67149ff31d97de2987209bb244f092289e9c2d0302b805b612a17b1642efc69110d71f89eb5e347e24618bc214d953a4031d671d0af31826e6693faf764d484c780d3dc18dd8d1deaedb28ed7e0772675a1d9c308d1ca0a3b969bee452f1105808cb22152723387589f18df7d1842fdfbd3296de646876b2b5ce490c7cf638bc1aab51bdcc915702d5d100e5bf0dea98671d30", + "1d8ffe38d4f3881e88a2fbe1975a9e27984ea5dcfccf9866c917218bec27c993ca19b82a180d3f0174f3b04a61625693e455eeedafd532f1ea7c09251cb1a2544e5e763792d0e92bf1d6aee15ba9fe14687e42739a44cf2788bcb4bbcf7a747de9808c585b47bf77a7ce7e7b08adeb0a3c156be6b864aa588652cb706e59a54239f0fb4ec589809067721a659aa708613241c3792f1caae585dce72838087ab5e4968e8d24d833008ca044f8500921d6da458fa497cb104c66995763369d36161bc8ef26ed7c23fb32234bfcdcfc7ccd68761eaa3fea1a1d9778", + "0664b5438ae82bf3486d5a43fc23c6878655433f5eb3d54d7189bfcf4bf4fd23bd7d45fb53a032d696debf9ccbbd3f757f0fa0c76b96a4aa4e71c100eed60bf3f14d5f4f875fe5861b18ead79e9dd03f70141c8700eea2185790ee8aaa5485fcf4fa941bfbdda857f9946db8594a1b34", + "08d8f6490d459e0e06653ff3effe25fe877e30cf09c255a79d0669fa211a48d6be9d834f53d5ab6fdddc3d14ec3291b19d64776284f89a142ef50b4932006ec4532710633c633876edd4ade3be29ee151d73c4ca29f18365ff33410f84318758376440d6cdabe519480c44aa785bb9b518abf990f373c0475889c012ff1a4221575c175d1e9d9b414d70227a576df2e5d1d51ce4335029d55457e7a8d0ef5bf4663fce63bda5a32f34fa25204122e410815aca202b1cbddaa1c261159deac379acc62ec88780aaf7f52887259b3dd7ea5dbf31899525aabab0d0" + }, + { /* i=1705 cDividendBits=3799 cDivisorBits=1951 */ + "659f1b4abc6e26724d3003fe491501f472e60b8043f583d5aec1379d8c2c000f44e67a48fd04745c81e914caf63f722777baa244b13e1f531b4a058f681e76acc6f672e7d9d0f3e00be96ea9fbec2f869a07390fa8946037c8b2ae1483693d43e6732925bce4016441cdf6e246d42a16daf2a63d4de9aae729f5e3dc969f5476b4708bed4da3384a539fa345e39d7ea34e1a32594d567ce1847ec45220f449e53bf3a1dbb36ce2e9ec932de1bd745204c86c306d57f96e1e08dbb543e289fb0229f0e8a4521c535c75a0ac9f12ec9bbf73496dcd7f76ad8fa25809379643f98f038d51413867e5cb2a09c2e5f2d13a0422c67d79c3fd1c042e53edbb0a45459d1e08af5f088cd1d078871b921cfee3ff69efcdbba13bd890c3f3935107864f89412729cd451d41f30162959208f9946e6460b0569412ce73828a043493e15b651c02680ddeda3b59fdb9caf5aa2f0d633637ac6f30b7dbd410d9605ce2948434b35faa36f0e6e02b64b9b8b6972db8b8c0b595c1a6f05bd65ead581a5ceaf93bf8f61814dbe63ae909e732f2e54afd5e3e65e39a11fc5aa5caf0feaf768ed8812dca608caca811d4223576b1aa8a3ebdc7bc69de2ccbbe62c2d949aa90344fc98749803b59c3e09e50cd672d754e9ba7c9a719f42b41792f6adf3d", + "6f96e69c59fd75be6b8aa01957b7bc415ed9d29f372f95498a68a40175e0a68b9d415b62ff2cd9e4312c1e38692c35b6278976b31c235c34890d2e80c223ec9b4491e43787e925890eaa87785faa715294860b4618cfd7f32f49e55d7c6c7b2a17fbe0527663b2ee759fddd19c78ed917f2a2c34d47edd244592ac74a7c1ede92091c00ca031c63fb48e2f6f3f57afc3025e960cbe17f94a5b16491074e5d62b45c57e0f73c41462a89f71b839656e0ce9ec669df61ce3670af0d054c2e46c7a45a33d3ec8d5c98f8cdfabf94c2e2000f10b5c95158819710411ed4f32cd95605ecdc337c1f925fd409e2690bb0857a29c4dc453", + "e921de692cb941f85f36be3c36bbeb37b2fe75cfc5d5cf658737fdf1d61b20f82822ab186e689d94bd80e58d14cf43c11b3bb8f605ae3c86621a8a728884f5db61b9d2beb018d6d06ddf770ab39064bce8370be1479e75d15e4cdf67fd657b8bb230b26f28f1b060e0549d51bc461a6750d7a92e989ac2c535803f1418f75c6aa729d740d0d03e15960d63b9226172c34ed53e0623799c098b2afa29518162463bd4e84c55a8a6501b5dfc6278fd90a5bc336b76bca08af9be93af5fb425631aa05f90507883f7046da691ba018b119a82d5ee1ab08430963f18cc1d58b2e91ea1dc6a4831d8be", + "1f967f96b2a52f799efe0e6efeb83d8fbfc5ff07cf48f795dcc040feecaa6ef7b07e0386ef173246811d4b7fa69c8858de0beb3485c28c5f688d8ce8a9a8aa5821f666a8f8791d80372676be38f925d8f96f43fcfb625249c7dad1f5f407e6fd062ce998cd7f093542e9e69e904085a680cd0492fbab990a9fd5cd82c582d31bf160db8e938048865a83e25fb24440c81c607fef58feb9acb57f5954aff06b7b0dcb70f0e4444f2123b20a4b8c23f8f6623b06f3f7478be5ef2f6f579a8ebbffcae9ccaff5115c6ec1628bec89e60efb2bf02e424f90b2b5da7f22570f3e6910b0f870123f580a0a2a65ed84d8d59a6fa42a21a3" + }, + { /* i=1706 cDividendBits=604 cDivisorBits=144 */ + "08a127c2b28520697cb428d076bdbf1f72f7a2bd45e2c4155b66c98e3f167f114d77383a2b374cb059ac9daf8d629e68f1837bbf4a11fd2574c8157c855bf13cb7a21472a3c970615ea24242", + "8b7f40086746749532c7428c4544999f6366", + "0fd6298a2ef7a21aa3c84def24a2c06de0a1b3ff84727ff9a1eb6676b5904d604c3399e0b4c3a196f47bf679cef2eea103a4d8acd9615ea3f061", + "72fdc694852f0331304c776e6abbfe1bf89c" + }, + { /* i=1707 cDividendBits=119 cDivisorBits=109 */ + "2a5970038999a8540d92172217e9df", + "1fa7210085f492c45bf7df7ca1ab", + "0156", + "1029ecd6a4ec41bab4f29197ef6d" + }, + { /* i=1708 cDividendBits=3323 cDivisorBits=2797 */ + "01eff0c7bdaf7eb781e4fe158ccaf4eb26aff52ea22d602974dc645365eb77d6c510058421ba21488314b04f9cf117aa665f046fb85d55a21fa339a9043f87e38b3badbcdbaf129b6c7d3b839ac20cae254fe04e39d8df51f1b4397f5c82817c1bf1cca0ff3e85c38f4b327c7247360a05a38b6a21578fa9863a94a9a1fb70601873ebe1a296c3f6d382775e539342dba62a4deb779ce3e1c8146773d521b7aaa81bfff4e47a93488d5848627e761e0613e59523342b6d013ba17dc6490fe0bbf73027436b4deac3c479e98900f6cee749be5ebc55b02ec88cade7aa9473b7748df826ec149d9314717bd0276d29dce470267e74cfeddf5af51a456ae5034d5bc7d83744c1295e8e313e96f602d23ff76ddf3af1d0a2fd8413a745fa68cdf705a0ffd518bf54efa306de3f56cd9765588dbc9db31a9b15fafe27fab5d5dd696be3fef54512c0a306d37ba9e3278465f3b0eb18edf3771b47d4e7de8b897e3bfe8ead221e6c8ef496b7900d8a3409f826cea2b6c20372ee600cedb2d04a19919ce88025284ac4f0609d4022f22c7dbc179902b7d9f3416734013e98764aea6e43", + "0c92f375c83ab8ef3c1998e6872184d6be459d9373c88b4218e7827f99f1e41f578e1a49bf78ebdfb5f21f8a3e0d77289843343c2deba9e62d6db2ff871a78d854105b55466434cf1ef512bb4a45b965e890616b49e4cd35831d4164ab434fb4b8f10cece0b51c967f3590509deda78bc6e7cb1e428d2698a1aeda5e1acc7788589fb6afcd3df357edfc2b0749e8c1af690b619b5777e4818db0ce5b6d074ec65edfd4cac83f2f9b8886347df47a4d9ea7974f4095d1f5e71c19fa41cdd90d5e729e67de4fa97c91ecc8b2728b7431115a87804d09d288bcec9b041a7a1716c1cf1d96d2496d749f11a4a0f816991c13054f4011dead94a51237c4de3ddf7dc6993673205909f0e9863d9905dc5d17a170ebb7af348e443227297bf659a0c0c9dae0052ba0b9c41ca67830b9e066c702d8c439b4a8b9be5a45d7a8bc01263761da3a13a69b34a9f3456d81db9af3488cf9c6b92d78db5ee390b7208eadb8", + "277110ce9d4cd3a306c796e716501a053657d46d27cee2839145c1c08e24816fe4c3ead86039da3ff0a5e7f106e347b1aadcba855725f0cc9a15b4915508e5e1509c", + "08d2dc3e49d7ee88b614b23da594b4907841f63ea391bc016a68c371b35f5f1e1c480ef5bdebebf1e1dc27232a94e5e8751607d29e0d9d79fc3f4a6c3dc40826d7f08576d8f9a23816702cab3319386f4db8bdb6143ccb2a8a33cb6dbae6a2ca15475e8a50b0d617858139454f41585c0cb7978dd5f4219b88e1912c27164ea49380a9544fb5ccb70e14cc9ae84397357a45f15e19a131f000b90c761729c7b23b1b34179653a6df7703256955e0ea123745cb7908d4b322af4a632f8f5de6f099fc3f58d1ef596be4292a02e5a13be4ac1876dab1d20c94ab521a15633a6c862e1c2c84c9aafbf69b9387f38ac0e65317468c9f39a5989d0360b0107f46af816d7dda53e77d5924cfe953c7cbf11f4c4653d49e032cb895cc33bde7017f77a3ab04bdcd36a67bc5806381208a3b602211776bd41bd172fcf4f290b80286ae648cf197e7c65e7753e74ea829b950a3cb3c0ac17b36d2e6ea6a2596f71223" + }, + { /* i=1709 cDividendBits=778 cDivisorBits=363 */ + "024b8007e522fbf1f7831d1ffc848f5f42e1f36776b58b56250f0eedb0979179c73622ac120ae1006724a758fc66e7a97cf38bbf0d90eeed89a3dcdf243bc077974496eedc310412ad4e0110216662d9db07b0b8167e6a0c18f1a9df0564a6cfae71", + "038d13a34a661170ab8aade378957c1971ba1d01b8281a1a31aef0d591c1852364af56f9381a1796b7acbb988724", + "a5714f6834f04fcac949aff88b01b7c3f0f0b2fbe19cab3e8e9ee9e7ca6e6ded8e161b3ab33a200f783974ad12084ff64204ab81", + "02487c04c2fe8198449b9572a6428617e13fb2541b653b3b082ba824474129bc3e8e991324db9bc5dc39d81e894d" + }, + { /* i=1710 cDividendBits=2729 cDivisorBits=308 */ + "01951c11b05e1ebc6b939c60d3a0b6e974fb42adf87cce3df449546d97de851c8c02c6f6fb1ed3d13571c0f275842639da35e1577d38ee574b0516699181ea19a2b4281e5200226fad5cdf3aef983030ff4ec424ec5bbb688994526259158db7e219bd6a2b8500c2e37457b8f270323f174366e25c85a19af2dfaa60bb5e2f95255d74ee21d24abb42c0b4f571cf82d4152bbb4d13af9c8d174e00053c782ed1527554d18a3b1f70fc4d2c7d1ce2f29c6963f23b6959bbc00b89a995d5512c26c1ea3d0653087839fcc0d9f81dd6a7ae888c78d51151288aab2117f214c853e8889512acf2f418b7e7e9a619767c378f210481999cdf028163dbcf80e7847b1cabc6ac25a4d6fa049644a30f079bedb92d956cc37a4e8336168af95e6830a6f12f79883a547ebb5f53e4c70e074d319e2a9cb50231afc138123024909757acd992ab29cd799d4e4606e6308c8fd9bb5b2a3ce5b33ff8", + "0d84e934762d6904136cd2d96eb833542d0daee2c9a08aabed58e8fae60d99eddcf4de43e46087", + "1df72db18d89fde13b558b06135b9b341a35a02c177a5c4b9fdcfab04305b4852af7994fbf018d41c17eeb3e63afd9e0818000d2dd9422869cac1d65beeda5ec5bd6dc8dc261b9e3760fbc6d0a378bb8bfc101bb5166c31623fd7cac2eb2f66ed2992fe24b5dda090c65c876c9a3cf1ed19c339558f4fabb59746b634cd7c07dac4afc6286bc9faef11c67bff5f9081f8ce177489b4bb814252f2d8e7049bfaebf751f409813023193468cb9a13d004e36bcaf370db6993b03b9209987b1084a17cb5305083599290094a4df01476a67e87228ff98cb0cdea63f239a81cb776ace27400b0568bfa3f0edf219d491156666707589f05ff5e7d036f4de53066af7507288aafdc4bad5f86e008baefc6670b5e1ff80c70739a558746c490d399bc8737eabc3f05af3db3b948c540a1856", + "04814de7965809debbac686a1d8b7d0a33a37f97634b526f87a7e9d6f241b4b866a4c89ca82a9e" + }, + { /* i=1711 cDividendBits=3917 cDivisorBits=972 */ + "165283ba25c6d1f0e433ea3a5a88153b7e7510aeba065811b5a850b70b3c5900ba9b9bf499fbb470bde3c2c5a5561b4ea70fe06c64c2ccb6587f391a61625ac93f1cdc134593ba4a727ab8bba50dbc7381231fe30bfb45d384408f1caac04de6a43754f4870a47e2d473cb6a651d651adf7a4acef0316bd26af870eb0cba015876c5a49e066145482ce9a5f60e20cc4fbec9bd8a3e94410c3e600123910cdefab1ab6e2596cc5e8d71735d7a6445529fcc46950bb86ce836e58316742fd012899f203f80af0e8b3f86f055cb82149edf7326928a22d887aacee89806f33d97432231a527db2ee9a60ac400d2060ba0872432c1204690e481e4a22a71251cf6c6d61c09da56c8963bb096e9759a38f691b7832c693aca65487a9c745dc4752fabb20c1e9b8a11e5d9bd2171d2a203b14dd80c97ccf1aaa364408e4e7b1a51134dedd4971672cd60ca84df8fdb5e7294e7ce3abf366c297540d65306616885d51e86988b12e19c99abb8fa0fdfedb6cd447af1977ed0fccc00ededd8d30b5abafbd161892365ffa4059b464e81b5b44d2cdb38352e54b0f30cab0296bb048d482e4b01ef20b955558abedcd8ff3d53986d3145550474d3afa74c458f8cc09e29ea89c05c3b932bbdb476aca130f8daf0fa6728a16d5a3a65429008a73cae83d5a7e845d42ee2bcfce9869d", + "0677119cd4dcf57a3069c2e7dcf52fd92cf4e19ae8bd0a23183e096b821d504bf491a25b3ae9fb340b07c356b102176f9649ecaef3388fad4a4e3f4124f7a5d1be4514ef20c0e34120a7d1f7bbec1d9355bf299b667cadf958e0bc8918f1698a4ee3539141bba1da3663c5e9a1a064443dfabb3b6470e0a61ce5", + "0373e676d98f1c1fb857d5ce0380c7192249c98a64f53e6c6feedbe3829049aa0959422098d7f987cfcb1880bfd22a7da270b4bddfbc4d9187e07251747a830db47cff50771e923618ae6aa3c5640efb06ed055ef70e4e0935522aa3cb6a831aa5525dc81f5d34948687c253e5904f2c1197cddd16390f1cbafebaef2b4039f6f789ac7620bc2c11105b4961b975c4c12323bff95cd08f06587f071293a43fee24d4cdf965b0aabd067754d3dadf54bedd260bb89ecb779918d7b30122fb27b9cdc8681f537434fdd2ff3eee19aeb4a2acceb029bc54b6aa2e2385791fb42d42b8a7dc3d49739b5451fd970b4a7e9c0a61ed5881e97426e5cbcc83b9d8cfed7961855f464e54e70d839c24f0d9778699ac612cc66505f752d7df98484f9cb6c898c2941a4c7fb9841dda55292086532b607f18dd1209be50347a78b9371f2a514714a1a1dc4d73a3bfd7d8c0da02e5d189b2a675bfe6a736d3bf08005b3e9bcf183b30a1c33597b768ea74803525c0fa2c", + "317c07e7f69c6697dbcf4a6523014c3c1f15609a0578e56c89fe0855ef3cdf70b1298894ac0417cd3d2e16cec2ec7f6f0e7b9ce6664d51c41c53b505bbacbca9c640329b7d331651b82ad2f71b5d806a44a7c6ff7349687aadfd8baa07863bd6468afd07097f132f0c03ed75cda01216de062869c86364ed41" + }, + { /* i=1712 cDividendBits=3752 cDivisorBits=199 */ + "0763b84aa02ef93628b5afddc48c3bc2967dd1f92146dc6c1e2e0300731065a97d8c7a49568d1b76c6dbd7ea97e4ac094491d662ce519c8eec2ea20bb1e7e26c0e15e3ac43332dc2b45af052fa4124e8c616bba404ef29c9cd0442c2b917ea195efc205597799ff12309f3d154b5594b7c60d5dd19c0c9330bfcc475bcd92cc38285df55f9d6b703834c30ccba5c68323a466b42802712b309add007411f2188ca42d89be0243d16fdaaae7cd0c81228fe15d819fd200b111a3aab3d447f0809fc118e9d14a78c41c3d6bce0a9036496b5cfa86ddd020093411b4b4feaaeb95dca72ffbb3f928e7e1ec69c561cb5cc44adaf1b3b372a9663777c844c9ac410f872745059e4170675a7144d7a64e1da25555380cd90e133a93a476dda56ed3d3a2a5183a6e375b08bed8c065ea65652c0cf9828c77f0cf58819809365adddf6a831096e45ec713c43e70886bfb59592de2ec2810c56c0f0c45329801ae94c804452b04620822f72000668d45ffb5938eff293448be9c6549580e4cfa23ac9016c51ac357b4967cef13f993e22b522b9624248e086bb998f87ab376f0c8ba9ae961168bcddef19251fa59771ae443eeedc2a5a90fe49a5b053215114db333734d291251904be17beb732861c79203905dd893294e1f3", + "5cf01f9085bdfe4fcb741c11b15bac58c0ae63e60cfc590e63", + "145aca33b0cb03129b77ca59b63d54065af67441ff3b28de9114b33fdabfc095072432ca7b903f5a5d6022e5581717df51d4eb11d88b7b7376d34bf4f598d5b71a864c408c9846b02e7e861dd7c44bf21f64e552c29ec706ec3346a00dbd038876f79461b989687a3b4b4ce7de3de9bf691e41b4f8c33e23c80314c731634c4ae461edbb597bb972e6d159309dcc97caf7d3c84dea294858ad649efa326fdd3f8768318ad8461056da99d53caec44bc4ff5570d0a583c5a58d032cdfbc33adaa8cbc72af95b5d0d9c4ab115b4ba0f7f99e016e576a6afda8250a4759c798193441e1625c40266649231ad1c81f76da788a3df71b37728d8b7a4f5b8bbdf36bf77897b25a7f7092975fceb9aa2b5113a51933c75e2203883ee634f176a6351b0da317b4fca0b14f717d27bfd5eeecaf51f6d7d0e127590350e5c84275b5085a55c02c0072391a22f14d3781f1af863e087e25c49058d0f4ebc120884f5215ba0b516046d7abe9ac88dc133b90fe10706ba31e5fb6f42e67055c6a0d7bc01d8a0e793f096791d7a03652fabe4a0347ccf3923f54f7dec7f240fbe41c63ff7d82d621d479a335c7fcffd46ae1ac53c5465ab0a4abf4e3319b85534f0ee9", + "4e1efc1b874e1f85e99cde0e4fe20b761b45c49c561d305fd8" + }, + { /* i=1713 cDividendBits=1426 cDivisorBits=973 */ + "725530b348c069245b5f3a83b3ed8deb297fc6d1badddf565523e1f667c4c29b84c85d7158823e4085ffb90d2492ebaba26b5dea1c99bb5c3e202cbbb2b4d30ea1c588a5095007d70468173bf5aeae49e6128fed63b9791055521e6ae981186de96211e2f44b34c9275eab0300a43cd56922346a270966db485c5f8375da608ccd35ad15a3e1eeb70402c561ee61dc7b191b4983773168490bbcf97f36f100b00f788b4e296a30497256fddb1913fe81cd18", + "01e687be4a8be509c52d7111e6c582cef07a238006b8301f467835929cac3f9ebe0d2eed80ad64004112e4b81a2a1a91f2e5e05ab965929207010b96402b1d6fd54e37c8224d81527ce669d1abbbc5a43e9129e705435d6759e3bfa97f565f88fab0dc7c5d85f6e36bf8b7d15ffcdc4bc82a0585fdae6c81c014", + "3c28b6867a0f90251c16febab88a50722fdefbe73f829a72ec1ccaf620978551413eec9886147dd35d37123fad2529b9584098c89ada2ac9d3", + "18ccce56bb331980d602c11386aba13058cb16e6bc36ca4342390e065aefb350b3778f5efdc8145994f7ffc4ec282496bc2fb86fa496c175d9aa812b8e0fed2d531d0a1877a0f450d06dfea6e595ff8be53cfeb80c2c3d6a5ef2472be207684725f873d463b9fabf02dda1b6268af93fba653b983c2478c89c" + }, + { /* i=1714 cDividendBits=2408 cDivisorBits=1730 */ + "3731b260647d25f1a4e77300e60ee3024d6de708a8874685f013d576dd1258d1c6fb49ddd249a6fad0f2040bbc86f1a41b935025b1fbc691cfd8d63037c86e3b41a332016f6d808b17adee4a438e0572ab1e4fc09d0d1c52386b256817b8907af4828b06e53a0212384be2f1588753bb7667dd62b42bc495bf29ec98a6b65c41c5052e6a5d92d915d9d24ca23bc3a031365d400696d49802b9df777f1210a7534d209aafce01efcf0826b713c4a7e3ba87b0db8b0beb4b067281d62f60fac103a991f4c5e7b9d0c1b03caae5496f7f63b2c48d0aa8af2d36d17c197d98143a3cee787d0c590aa07ea6eececa838b3c3db21eb7fec1ac20e51fdce1b3b80cad2cbc7d14b842038221527d3d8c0ba46d13c68a2703ec6947ee905cb180ae91f9ad538eb5add935a8c3ce800c908d", + "01e2428fd61d0a734c1b1b92364f59ffe5040656b69c75b0ff57133faa6880cb12109a8c078316aa00300104c8ab07863373089ca2d413679a75776e44beda4ca1238c3bae84fd6c98e3a1f8fb50e7070217dcd7d0e802552c73be2b455914d14a857e7d05abf23a52c184ad8d2e4e15785c0a62ae7056d897dc0994d6eef009a1fafa5ac0c5c80e47f42190bcbc0cc852174b41bb16876efe3fa38393f36cc4021a62cd01f42ef91f560be4ae9142965f3a7ffdd26899d7d994b87de2f51716f1e75aaedbd64061a4ff309980880cfa0226d1b6d21d9e2fd5", + "1d4c85f0ebf553fd6526fabb1bce26c2cbbf14622849b4822937606c5d7746ecf78893faafe883cc19bd5950dcab63e7a0b17fd624d5275290c15a0a8e0cefbdcf5775484900818699071532703610766c6c42994d", + "01542be4f2a278ad3f9cd0c158e3da7b1bc6eed240700e0e866d72f1cb16ca4e4960223d2694a2b399a7b6197595e5b01859140904093930ea050173f1b2a104d1f8daa969355d7b9af043fd683ec7638aaa79b53df349959aa20da6d56090e329cbc4c6fd6174f7bc4ce912c09c4fefba81adc1418c39585ed17c927ec8349342b12087e5a5e6737e3f4b7b4f1d7321d528d27655b9e80422e97d84d9d35d087050642d2890689d3244ae3626ccf901f11e9fc009011d9fa017c709be060a007f1d85c4eefd388c8338a227c5204ffd59178e7815dbf7e07c" + }, + { /* i=1715 cDividendBits=2633 cDivisorBits=2327 */ + "142fcc3ea1a0344237b76c42d9d52f4661be0eea1d06b66ab0d35454bd2403c870ade08e9cf9dee2032045f621855ceb6fd748a6bd66f75ab9197542a0eb3d8d1fdf44cbba0e79c3f472d123617eeb39e2dae3cbe80a71a1311648dc68712984829f5a1ea3a541bef220c68a26bc95e04ad39eea9a00aa65952a11dbe434ef0fb3828f67c8ed688462780ab20cf2bcdec5c75401b902e49cdf8ce818068f0af7b1bb86cf390a757b9f3739210a462b8a3adef0485617177bc8680f78bc058c3c75bf41d8c35802b42fa0d303f5ab012f5f6c90b6d588064997f91b12d312babf79f693d6d059e37b42fdc1d024adcf8b558c0ea2401ccdf6160592070300ce245775700c815ce3123a3055224595da822c5f3d1d0088505bc5bd5edaee41768f1000f8c8fe334173cde8d41025b500324a3c393a42c946592b6db3ef8b07f096edc44a09bd19e0a9f2", + "670aee53f6e4c53a7fc7b8f3f76256afba58d5522337df7ccd457342696ce4bce729400062c506776cd2fdeddb7462ce9ff79be94521cb70db4439506e7ef6bb275c67fdb364d7b2483e3970e33f2e320bb04a896a7e610668c06c2a37358b2f8beacb9c0f266d97b6a9b67c2f44e08d0c6abd28e5fd2e77f95c4b4a698c0f16d31f34b3c9ca1d6d328ee9273bd39213b86d7a2a94cf888375f385826f7811450b2e81ccfec14bf38c1d76ee47d8c1bde19b40cc2ba68b3ed84dc0850edbad3881c68890fb06efdcaa2a8082f00b161049b8f65985fd587edf52e5af3e97d6063a7fb9f1209aab1bc449d4a3572cb7d6ee6dbc93535298de412ac6118bf33a9054295dba6c2cded6b4f9f2633dfc5928b2205de708bdc2850294bb0e752814dd45809c", + "3226e9b79d0ae3376ef344e6e60adc2b2c3ba580d7c32a78e40e560eb2a2d86ce2fa1d65d0e2", + "1e947a1bafa838c2505ea754fcb9cbe8ccd5a4fe40024fe5f82730ad738d97a591ff2c9d05d1a854807a601d974d67e5c51723efb90e2fc1e51bd0a5237daaafe78f5930d4aea2cc7bdc547585e1ff8af3b86d862508cb13c5b7eea5724b851602772940580bf2e563996935913221bd69fa092c70e80b6c02475161ed658c09c79661d7eb3940c18d6962376236ae1a85a06c30e704f9344843c0efc728d97d89e9b7c5292e3d3744be3498e3ca7f371239fba4c225bde8ac895571729ffd1aca3bca594596e7299f9a70e544c9d5d06ecf80384cae1228c08ff8f5efe2c6b4f4ee1a8c8e2cf4dfc40b7d648785b74ddb715ddc374b79bc8d49a6f55865895521719e58a6c45ce6de0d023ce0487a27e1cda2071bf99bcb25ec034fc63733e07a603a" + }, + { /* i=1716 cDividendBits=1850 cDivisorBits=220 */ + "017aa9c44830cee78faf86400807aa06f7933390b1dafbe777f9ed8c2c33b58661da8ab86752524e82e19456a3ab5d8a4a318af5e8f8dfbce8d6603318609403fe6daaa15bfd498966319e49959fe82c25d7ae17bc09084aa2d11796f013271edda4721fc372fa6062343cd848c4380d4f6a1c4e1dc8859e5bd9a08ea5797ab821c80e0da87a1ceee2b2895f490c60a3012a138ca0a797e2bfc2658496ffbc9faf25666993f5b002a678e9c19f8c8862be52efe7c443546a195a81c727b7fc8c2a890436853af26dff735efa29f185d8dcebd77f88494ac078342cae227ff4038a0922be8c8b0060", + "01a0ae1a056595968299ce699ea980a2ed3f01a2dfd672059e85944c", + "e8a4a55edec4c189d3aaefdc0d29d0ccb972ff0aac94b7420841c40e2d23198dc46641d0928f6098c7b29e42cfe040f4c94f8de73cc2ee45a2099673d922e15088fb6a07162190a1578722270066fd42ecb6bd36dc01bf09d12a6483f11c4fee7f0b963afae97925f2dc157a1723bfac81bda0a9ae5adbd464d00554466314164c1f4c9ed2ed9f0b687449c7889e99270fe27c9d0f31ad525fe30a72beb0f0d2f7d6a0d4d4ced8d1025188614394f33e4af1809b6af38dffdb9b1f920f83363b7684edaae9d154b39099dc00", + "01656cacd3b420c5088c976888a6facce26f2ce90769cc1f5fadb060" + }, + { /* i=1717 cDividendBits=3787 cDivisorBits=2336 */ + "034edba756710af0c9c877c235a6caccdd1648bf976d465e50c69fa90eb6bec863e9f3ae2cdffae050f93cb0150c4274ad0d4340aacb913d414965f19146b3230460407c883491731dee3e1c8d30477a0ab0e98cfb51437cc0b554ad45ae4c51b88a211ef4234f9696298cc43aca0f2ad50617d5c5d1c2cf6f60003e9a4f6ce6574bfdb093fab1d2188b9e98708c99c170e0cbafb2cf41b448da57c10469db8a0896d4633654cee2f43c4248509c1b0fd7d2f63636713c9ba1b8cd709220492e51f14315fd904ca070b0d2f917a2c63e6af5c3417bb5c88566705b47727609af89abea819d2bfd2dfc4bf086a7a53ba3146823f1479cdf1045fdb7a05fcb749f89c0c4fcf117e717a1b3262d83db947d7aabc020d50e9f75f2ca192b30264a78381b4688b70f3d05e8b61b978fa4ce1312e399281fd3fc8b1299b1bfc9da3b2d81a6f1d31e3bd926bf20ccbf52f421d72a687f6584a4676ed73c097d0fd4711f2f1f80d9db55557d8b51f8352d8ee0aff7bdb7724797bb074c969952697204b567b66eb895b0a88767a8b144382e77678b62f850a1be0b1ca389f11889eb69eb8ee2184bd5e3e88b094675595450804c32f79032952273b9aa88ae6a380d86fff031787474a148c11adfdf1e5fc6dfbb6e52677effac6b1492d0", + "46ce39ec9d4abe4e4c69ae0467617809940f9f12ad1b97bb77663219a221b0effa6b50fbc067990f107dcd6c0c8f6ed012e4925219dc90038ba12ed476283a13ba2d5a18f7705d928cf147e1ad5d403ec875e961f0d1d352e89b7b45583a87dad1c355b6407de1cdaa27f0d4137323df07059ee83e5cc9ad0153e0cd6b063c13518ec5935d6f923e054ad5e5462b956a01fcc7b811e9820b485e68a910b4e4f2b997f3c3be6318548a3102f35bbcdb4349fc4840088c6d4a21fa8d2f0472b9edf3173de1dafb63815ce4036fc1093d1f3125d73c0a473e72c7b457f7bc405bcc8ad4e06fd218bf899d16d60590f4a2b59827e655103afca97bc3b1963d4f813ee3e48fe7e2c074d4b35eb1232650419bea5641ce92aea542d8db56a442b5162233ce153a", + "0bf5d835437d6b49405dff0c2d66f5b9654bc663c9dd8217390866d1d532aa3b3f0585d9905a80d1e7d2abcd26273343a9f8bd35c14400ad12e9a7c4914efff57133a118de5d9b22339c1ba0357b74865ab86c28982a914190cbcdaf51900d7a74a99c15779860e46b9bb449e84e4ea0b54016d4115e2f218628c7a2b69b55a9078b60d5ee4e2dd2b1d0bedf99a9408782218b69e19e904fda569fe129d7f523d6d3c84fee44dc3f557cbad630b36440eb97785d589c", + "4090c4bdf66225ea48e445b66b17380033199f1dbd25ae350915e6b0c100d07f2955c894c39c18a0916e306abbd4772b7057fef1faf68775f928a65654c082e9c6165fa1e945850412a1c9849b5e28f9738f1f24fb0e2a4845e01049f55891547746dc1022a26be05892c7ce73f6b9c50596a036aba56678bd876fbb98bf4030b44e76244956d8ba860ebbabf1aa42783045a648c07301f9b1667127240ad62266181db38e4baf6ec47bd41d06e59a2f62ccdb5c529f5d086dcac17c92ab805884152c26bdb5cb1e40eba9dffa5c5dc08e3072902fe9030da3a2c2614d48905f5c8ff93370b4c9d2e9287b730629475a9a98607a1742c6608db85b953487780a3246effc2637c6771853ddffafbe0fefcedde78876c652bea2de6e09bc4991ff1c21b378" + }, + { /* i=1718 cDividendBits=3540 cDivisorBits=19 */ + "02c92071c6a10d8fc67e7586e5b610c552ff8f76f0e4e3d6e1d7860a888730de3ee8652b65b37294f122e0f97000e9bf514f7e63a19805c8be4bab71e904f998b5abb649166935a08f7cf2cdea42a45d916c36ca6adac7728a09c6447f691aeea9d2b3f2fcdcae46caf16d54fb650485943d50281cfd5b414971f40c73e4c87fb0288cb4da98a66e8aab1716050e81a8d4a1c8f51640fd66a81f3cbf2eaf2435c9a4eeb422fa307d96992084028215f8998c5566679199e0d94c9367e6a52edf708683836f54b26928a9c7a20fe194ac200ddf1d612db2201fa54aa7c54dde8b6c7c4dacaa73fb5ac3549cd95c3ac2326491cc4c1263943bfbe801a8f15c8d5d536b5d7d527a95591e8d101d00d49916c12a0f7adda79aa1eede462885f15b4d18a7bd0673850379327dae05857060e45c9c1b55bcb8f7f2de6760a8e57b62838a2f7d4f7ce4c2829c2c0347d461f39c0b19d4edb0697ca86ab5256aa7b0cc271861060094169b87e66c8e27e377c1775d921b61e1aa458aa16c3df4176e7cd6c9f679fec574c8df54166f20d1776be85c572ce26839c69d3d2a95950c311fa0eadf7ed28d92f17e904fefb3a51df18811d1ba03dd5a2696228a67", + "0558ce", + "855f46322dc97dafc92bb935a5983cc8ff978a4ac7fe4c65de9b1e4306f8c003d117008a579a372d0cd7b2e032fea2e27a3ee180c6102b5d747c3404559c93987f10799b0d2e99a625a943507c3bf504e9f77d3e2472ec2ce919f4533d0773c61caf51f2b2c90f288f7e1a7b2688e43244475696b3aa6b71968f236b4d2e7b8fdb186726d8f63d744049fbf95191984422fc686ab5bafa6c4721979b7348e0c681b89303de8462a18a51717df9c56c7d0d6b2754f1a313643f3bfb10f50f48d253532ca1f2f8ae9afa3652c7594b61959e977c29085c54ed2821c07d152fcfe5a6751868f27054a786539a96cc9d7b72620342e408ff6ffcf779bc1138a50318804f04117121be1f5b4a3a3ffdf608014211468b0530bd8370006159c036630e66342b80d833edecbb5b2ecfad2617e60f2782fbc191a020da003b4473b4a93347e6d24acaf61e0bf9b535e59dc9d9c0b9c70169c84d603741ffaef43175962bb3ff1832a446fcc6ed60669bdd4163b207a4e8a463ed7f8921aa1470d6c59de5f8681108ef74ce78e0c7884832666da6320c1754db3a0cd2df3b7fd8331da8fdeba248f9cbf6e627818643ab2a54dc07a0dbcda8c4ee0eb4", + "d58f" + }, + { /* i=1719 cDividendBits=2076 cDivisorBits=1872 */ + "06308cc335639faa421536d3277f38c4ccc5445e792674d9337dfbf6e3022fe69bc6fd492ad6bec69dfad882934743478fc3ac717d19488882ae678d1bde6857fd630b189fc0448a0246a16641e6303c5d533915e555817d78ba207ee91ce101167cad01a0e07e00e0fc88b780942c973f9e0b4c9f09863c35623715860269d9b4a84f7530eb6f7906c9abf37f7278b45b17d41a31e8770c4404997312298ce0c46f55f9ada9940b77f618b6f25a09ece4d4201f95c27e164ea35fb425416f786f24905afb993493906b114744992b968442a459dfd9d0a6a280ca0dc92e053d74e126f5e253d208d4bc82addf2b2f7c9edc978bc835e2d9f13591ea75ea15643607132c", + "d614be7db50b2d26f5cd803ad27b0cac639e99b761796925322dbc4a471f618032ac9de351e6b0cbee187c62047497716cb26d7c5027f70bc70e2fff045f94f2bfbd39490c7e09c974a2b801d2072db9b2481bc5411d6a75672c2510276921e0cb9f3c5d7a807f3103a2baf2bb9c178c7b3a9bb3e4701807538e28cccd7ef2709cfacd6f9e9b53ed0ba8551350731cbb7380e521de3234c9797a48bc58dfc39919d67096b18f9d27ac3fe65c180759f585c6c7e415848f6b41582be2e177dfcc54e0318763196f81b0989ac24338d2a02b60ae7d73f9d1615b7c8087826404c32d94b571090d090e36aa", + "0766d19c9350caeec5b37ae9bd25ad27331e851819be63b25b30", + "50a1a1331f84492b0702060d067fd99d35d182ad3273e43fcd344f1c8d27ca3764e9fce8d7d331bc3f33632d4afccd6d7d2455d1b1ab6fb8ab77a39760f924e8ab167f6ede85663c8fbcc41cb3fbc6dfb3523f8e111644fcc22d50b7647d39ecd5f5d2c6c2e0e0df2a2a6f8ee5d326085f94d2461572ef56849efb6b95ab0fd7bb47f023aab447aa866392d12d93c6bba0c209c69c9ac4e23b974de2551778a7fee318c92d67fe74ef79e09971653c5bfa832292ef8318c4d0cfdae5b51d6e4a4deb8254000d10a7f250bea3af297759b981d96dfc56f22f08db8141f4ac0aafcb3a5f1cc988b5ba654c" + }, + { /* i=1720 cDividendBits=3369 cDivisorBits=650 */ + "01d829c620323e0b9961474d5cc6491c970027f3cfae2f0c44a61b6f8deb19080c85100c46741bde61eda48619be0c0f56acea6b89604da70bddf7666f13a6a9b39c121f1051f4420825c5f78506c40d26743fd7261bcd12eb342293382f5a98e79ae091547391cb535f748fd7248bc72bed29b03ae17dbb4053340e7a2d21e1a611a5c8ebd506e747504bb98c0dad7176dcf915ba67d6bc06dd7b8ae57f401a14a87767c9fbfe510628075a657c606b0f8e467d73d98dcfd468521922153122c342699450414714bf37c4c4500890b48e9a0dc55005ea9d4926d7d4b6a859ee37342d25bc40c02eb5d2a0308a88d50b0e975e6d261c8074330b3f09a007c24cb4e6aa33c611a17c54c89d44c77a6d0be4617db4b177412f21c43e87fbd10b91433e980bc1ca7cf783ed9bc420beaa291368649f55621cbddbad5ce8bc151a017c600221451bfe88f3721241f03a1af08404e565c373e6de391c773ab38a406c240f8dfb9930c27aa81ebf112ea150618f3d5f3bc62a5df7431a302da9a166cbe740770e6e4d5a5196d600f7d8303d0e947bba30c4813a7c7eec0d09ca67936bc656f35bc8cc", + "01c72835e1bf1beb3b1e7ca737fd0425f005d2178268d6d4b67f45e4b6ad14a30cdead917941c85765cda4008de844c6e49ad1b63bf533df13ba6959afa36a7b9350de705479f30210a4e8f3f214ea3611f8", + "010990a1d51e6c0fcdb787a9b742040cf4a5637a0390b6731902a5045fa0f43ff71e6d2290c096549a3579f2c5c18a67d320110a0c544fc03445ebc6dae3f8ef2148ba0ed83f42050ab7aa161b87bf748d73957db4a792d699be5396463a13aa8d1bd00fb6a64c9f0fc899c9f5937f4570e5e64efe982a2d370dce8e36f90e1c40b5d9989d02abb3ac43d9f3dc2291e83efa20f4a732ef4e73550b4b1e35da41161fd7485eed013c7219cee1a43628eac88339db33ae16ac920805e9838c5b5ba6d0ec78fac609c1d18f738a81975ae51b5fd048642477c57122a20e7de54d3f53cfa2493337102f12fd424c7d24ceb8fd654dd48a640f815ab358bd46cc0b8df2f547256a86b253b398b357c7d04624fd23805b23e290ece157c6353634272df6abb8066e503fd1cbc52af6b801c8dd7ea6fb9b74ce068f8bc129c7b522e2226083b03df5abf7c1a3182d2780b8b78e808785d82b", + "9d1d930231315e1b9f247995ab2871618dd5cff120cb729db78401099cf27a9042dbe63ee53193d6e6c7bbbb20629e7e2825225d93a6b26f7e18bf0ea88d945b32c6828a4441377cd0a087b9a4df458424" + }, + { /* i=1721 cDividendBits=2699 cDivisorBits=253 */ + "0756e2d279080bcfb09185981e5242880e8563c14cb9325d148a5d6e19f3d67569c848d2cefa9a8054b91825be4a6b16eeecd45df981852eb4dc498bb91b10586c921d0a8a75bbd1c565e731d6db4890442feb6fc3ef292aeceeb14f0f18b0ba80f970802c5c911c027641480cc6c705599b34e88ffdac4721969ea0131febadd05052f1f3af6a4d74f23f39dacc7a03e0c9726a2dcb500a74dcd13cbbc5151152431a28ca2c3caec02947090542eea40d72ac60c57977d279f8a3892675de4d77b20f32bbe0445490679699d27ea103cd7e7520bab591b2119d72dfcb70be72eae926e6d8741d159f74132365f41ec33fa62646d93405385023f773dfc5982364c95a6b1cc829b3cd43c8964672edd86f8ee29fcc5ae84b9b1c3eb6e592d3f1c1a218eedf411638ae7f4c275ede7090a75e06543f18e9783cebaadffc21ba411a33761fd1dfa978c510ab572ff07e26f9f4", + "18d5bcd76ca2cfa37191835a78012cc5e9edcc03874cf83e41fb7f3d37fa2901", + "4ba7afedb68a81e1068604dce41e905d64c37a1ad6c9de6c0f61c6f2b5889210a1d3758cfae9ec2c64bfb2060607fcb8aa42edf84116858edecdc608691fc7b26b0bb5bbca96919677edc3d4bbcb20653c508169e46319a055535f1e72ede7d5231ba612a7738f0ad722a4a4a5b60cf6d27463e981a46badfae4b9a6e0b9f39f31fac247e2dfcc41f562ae1dfdb63f04ae6d9a03987ea8a0bb8e587dce85c7b1f480a93f496af350156ddc8b4ad31dbdd36ca12b06c8f2beedb486f8dfa3302ab01fb15833ed3285c27bede1333e99edf683a50d2ecacc1352df20f3e7d0b7d56a1cded21fd1f11142c728c53ced6a4b1bca74d29f04009bc185a1927a2f53cf10d66c6be48f472b08aaba75bdb15c6e2d228cd28f9e3ec060e8c12fad4b2ea059f4cbb0c1fa059d84de84612bb65c36dec8", + "12fa8cfb8c14b5b792014bb657baa8ab88caa1f1d84c86b5515faa5ad0f2132c" + }, + { /* i=1722 cDividendBits=1913 cDivisorBits=101 */ + "75d14dd39411a852a8c8e0df087014f2fb2ccb0cd41265b9a69c84e1affe6e276bd87a974ac65b6edb549bd592ea77af8d6109273a25a8e81b1935fa88d8928453f228aa7f9cb1664b829917656d6b7d3fdf38cb6abd6ce40b7f681dee100a17cf272741ff5f150da3ffc67fafedaf78e9d25dc79f605ec4675356278a6b5e1efa3c82918b0829d3a26a71f4fcb31ea9763c34838c0122a8b51b526bc0548594d9cddee8c870f234fe2bfde16b21dd8985c3618a03e099f295d65ee076e61801acefcb64d245947a55be7ef9dcb5a91d406e304fb21d92cb855431cd07226ef30417e22f286c07104e88ed2a3ca3bf", + "0b021f7dac56bdf3b21d998aca", + "0ab3df0123a991b03e47c85043e9f384cac76d866a1c99e2c33b5f24cce5d2f06b10e015c8457d0801d00514e4a35d47caa013e2cb93fed5225f657577851c983eca30e027de1da6128eab2ab625447e0e8bea7dc1b1219afbbff92ef4fc6a75613c7b4e05c67d9d9f0e18ac6ba6a6cc2a5fca91afeea51d5c642fb3a553fbf048b301906ff24c1302184d5249c737e6edf7b0a93973d051556b411f418806bb59ef6c734940061e553bc9f11e5cd70949b134f900443ca96bf4cca28f30c97ccac54ba3c377c4bf1ce008768a9317cd2e87ef54895740f2a9d7142c6db22e2af6d6c2", + "0255fd7bce4087f097dfc09aab" + }, + { /* i=1723 cDividendBits=2243 cDivisorBits=1558 */ + "fe49442a849b91e489274ed3d01c5ea70f0fc9043172a647d13c5b33852a5f7ae07b3f7aae87f547d6189d3396ad3b3b600b2d26cc866a8bfed908e3642fd7923821820af52ec27ae07ec5c78b41840aae5ba4ba564a536b98159279dde96fe016774c2027ade68e61d18a96680497cc770ab7ad9a7d5cdb7bb30f9ac92a6b14cad55e9903dc6a58ad7b4317bfc69863b98c147d9cfd43aafa7949f40730b90b5c25e48f7cecbe623bc32e31e6f304b742b3054a50e958f8be38547fe593c25203f1706fedc435ed44db77a4a7fcb66815baa7ba6daba8ab3aed235738cf3a685d745c912bbdee0f08cc87348a2ad266debab74555cdaf1663ee7407b745ff4246785686bfd0214fbde2a5df194cd30e98d418548ec28886", + "2696af309f57407298de9dcf248391bce3fc497c5b25f16e1a5127080afd9afcd4216b74653f127af2053ee6ab6d0d29a22ea92c7a6293f366e23550c3c42ff6f8265ff534263bc3f622ac2199965f8f666d21ffaeecd489939b40a3994b63bcc8876ff40f41be9b524300de61e8ebccb97b979011aef07b3314da30e3168e638ec9fa99878a9be9e98f9c007988055f5a2dfeb33fc9e05f03c549c6c77852353b0f7c624649ef3dfdbb8f70d7e7e182aa358ebf23c8929b9933fe054b829c10bd0ce9", + "0696f496f59f309417e15ec65b99d7fb773d9f0ce7c0471b89240bb1957403a141e0fe8d43ea168f1e5da97143fd9acc3dfbf1ea06679deda530de901632951e64393851af89bbbe9d3648430f115fd132785af71ecb", + "18c5537bc9dd5a4f377213c4033fbb08ed273f721520e3b0d06edeaaff3706c48d591cfd295a6284c85421792e8081400dfad5448bea5770bb9cd35276df5039e0746560d74c89a16f0ac1b71ee276e10cc4e108a1f4a57f0f665193eb6e0f31965e300a760bf80fc9a2478c8bb9e11165190ff8ccb29092f95a7b27f5837cc161a35d917b7f3fe9c5363e41c0711417cc202885eb4db4c029d0c3b22fef77a12902aeb4a384c0ac533a6a3cd1211d9f4377e73d961d766af32333e3d21073c286fdc3" + }, + { /* i=1724 cDividendBits=1137 cDivisorBits=700 */ + "0edb10a0026a19dd363c4eb5aab0d592d1085ff46eb0728f372b18e6a8bb45d2903cc4390f2451ab8c90ab4f464ce1667579204ead43e1eab8ba9f01a5aff0db08d895b506f102334eb48effa2a0770b31e7192a03a9d8a4d5a5710f1539a9c954f82f4a82967ab1cc8adf9e3e2257c03d0c76064f86fea7978062caf67aaa9ef7e900f18e78d89ba295ee4f88a7", + "09348e52623e1591d8dde5a9e7cab3286ff02be7d5c4c232ac5a0d141c6ba53c17b1dbe38118c77637cda3762b51cc756af7a57253729059300ac6d17ffa0de8bbd47663e793e4d043b1305300e329b9eb68f1e4e5b28209", + "019d238672f38e756304bcdbdbc6004b5f480e4d35f00411af5dac14956fc80838167cecf0d2aef5fe0477ca856ebc96f271ec50bf7913", + "0582dd69e0b0d18928b77a184657268ec374b124b5d82c582421f0e81b11ccf33472464ba7bec5ce4297e7d503985d48392bf51f63a41bec4ff65a590589ea0408b6e680076f5ee0f9ca2b3c29f4069005757be9ade2a0fc" + }, + { /* i=1725 cDividendBits=2067 cDivisorBits=1204 */ + "02338ed3cc5e0f645c53b1d5d89ae763f30114d734e7540ee868fc0d2672d140b4592ff2e75f421de6631f93860268d6caff7c89253c92889bb8cddd8ab0885c13a22019b4b630b3180c2fbc1e6ec8ee45454b1d99de03b857d055187a9d9c36cabab6dbc6e8aefefd58d65050e90d4f1e86e6f0e5f9d8b653441297b996e76639412c0c7db32ff8c63debaf8351a38677bc18f0f02265805e0bfe0af3b248877b2418fb210a1934a6b13766fbbe475f1c897bffa7a8f69b236e3ec3ba91ac81d30425b2bdf01e5f799a364c56d30a3aa7a6f5b03d8f8a5ef38a8a317f5d70d3318b363b18705dde3dea6bdb593b87d9fadfcb00f47f127f8c5f223201f95a1f16231c", + "0bad264c46157c6c2f47042e4ac7d2446cb23850f7994d950f6b0bdb11947477f0be4fa0a5ebfbf39d2db8ccdcab321b9c4156b08bdd6a870a5f6b8955cb9c8624f198123050d1c7325ce624d631f85e4d408486a71c2b139f4f858d93724c92f0b04eb78f480239bc42b98f01296eca82fad76318f53945f19c929ab1a52bc6d40c12084354b0f766fe818caa42a42306f7a08262b4a0", + "3043cc8e6715e9f334e4ec5c78d2bfebd917052eec663028ff0a7ab3c0e32f69df0945df02b89bb2ce12f817c82c1a67447309f38f81a8247d281dad2222a4be1ae894271049c5a10f0f90e0ed84c878e11e5aaab9ceb9e5c0be44144368854bfd5e563bacfa2a9a5ca95518", + "0706839fe49887548d19c42645bb05c33b34b974bb042d63e6da50dd85dc7521eb8c65d2c25b980b84377addd3368f650e508eb2394760393085a98fe92321fe05f86cb92af5fb46d9d9db150523d617976988d3705967cb2ff1adea56ec5ab080b12b8988c84bc17ea2fa88561ea26491011c10d05380e993e70807f0c2354029c126a81a20086e3235ca432bacf3ec0e02b0623c141c" + }, + { /* i=1726 cDividendBits=4059 cDivisorBits=707 */ + "050781a8d90d64fe9aebb51161d7fd68ae89dfb326a353cfbf2b347cacf79531df8046520b8246ce3ea4848f692bec9d30e7a8e2d8d3f60ba29bf79d72e411e1b083bc4260c18e0a91c89ca3fe1a5f89853730984f04c916d245b6ea7100a9363537088e7ac0ac47b650dad3ad5beca6db0551a28e7af7558a832eedf1a7d24742e6a78b305ea01cf8fa11a70ecbcc537ba6ba026984f67aefab3d8f7ab1f6bfc9672dcae1738bba63969b9cedd39e3df4f610e5e75572853a4d381127404c1bd62d4b61bb0d95ff6618bc726932e2527db401d8cd83f5697fe21cd1fe805d9533e02d49d0dd0087f4f2597a7a438beee400f10234a7af7dd9a520754dc37c8adcff819df08c25eb63367ddb761f96dfa6bcc7d0354d3fe59032ce1b94062bfae8660c4742ce60d6eb0e21ed0f8cf6acec3cb4884e4eea7c579ccdb0a92896ebb1e9c05147b7c6ad3d0763e8d1d3ca3586f6c08d9bc268268724ce7afa2664ddc40f4e49f380a2646609c0d3737bfed6a5c8873a0056b53adf9934fe2af793132b01eb1b4c99277bcbcaff5a1eef31252fedfc4cd6cf5ca8b379b799aa083f0d459596bdd91af42db97bc6b106ebf4234fe2a9229e6ad5eac4bcd68780cf5b6738c80073859c97069cb801c802762439877c8cb6601f307c3eb873a4e1dd42994b40dc964927575fdc6c22779f183fa5c4675c2407a180c6291fb06a", + "07e6c07509a3cbddbcdf70d58d5479d66805812b1707bf5e6b87d191a3876a3090325cb07691fa9b09998f048c4d5625501908bdede540d42d4931e7b05e88ea5f79b88afbb83c51a625c1db6d0fdde470b6854d410adbe101", + "a2f279197b96915147721f545443e084dcfa4a3de5568327a368a6910f1157f7ece030a0348fe03374a85b212d39424523a6f7230d34f850c7b865af0e3614d3bba5e33e2a6057d8441b07e6c37d4b62e4db200e6b59121b0f71d9fe40166837c30fc5bd84225e0b96d236366518ee2b938de2cb8c71b1fa02247f75607650176b5c9789f468e0553b901a1d703617dbe9d762dc224ec6e48d3c602d36a864a901964163ec33de5222c4387990f267d4da46e5a659d5b89d1c710df637883d7fc3e1c1e5f1760f931ee8f78f4e28d3f73944410cec146d9eb1bd75d49bc596604be493f6c9d80c8068c1419a5ebea31ec33d4ec0dc4029c0b985de6fb9ec9873958f03b59b7cf5444d3036d86f023e7b41aa247971cafd0f158856e7ab2bf1ef58839759f688b92afcaddcdc9ef101a4a1232118c2a18f287ef0468d72191d817b3b1c2e33a955c5df404681b2c46bf570fc851f81452293d26412f4bda18f2acc66ff7d33c5d80d563f63f6284baac35b0ec0b6865d15b8a73668e3132eb065a6fc3efacd4d90dd186bacdf0d172adf032aae940674320d0666e47b4724e551f6272f", + "03272a544075f0f71e72d10269c9e1e472f45a685fd7ebade3784da30a718a104ab664e6226d99795f1035df227758167b430ab17d1afb5bdff1233e8fbe0f56ced4f6efad7a6523b77f2e7d1792effa69e0d7fdcd23843a3b" + }, + { /* i=1727 cDividendBits=736 cDivisorBits=429 */ + "dd817e0721450917aa011efe6483080c03a4ea87ff5c435ce56dcf202e5fc4cc2049259251585b95dec26f2e2bd696b99cc3ff4308f53472997303649b63a4549c57922cd430bfa1a10b475761cdbb4f724382996beabf6b75adc893", + "06d4b9106680a076ec281a6cbe1bc565478d767cdd0063c7d1e17b53ffd421786a4824fe09b81dd04679d5684a9720be8bb720ac9e10", + "206d42ed8a31750da080488cd9a89921fc39c1a90d298af92f15b118cea73066db6d97a5ce90a9", + "065344ae83243e6fdc66211abcf0c90670bfced79b97176f7e04b62d66fb0db763cf98b56edca1edb8a61dd4e974cd4fe8ee49f07003" + }, + { /* i=1728 cDividendBits=916 cDivisorBits=217 */ + "08bcee7c801db9458216f0bab2534eabe051b4947a7751f452f1885717623a512d766493839dacb011c57e02cc0af10aea502befb60f604b8e60d6bb6de0b7f2f738e8033228836a113f09877a35ff504c6bb8cca2911ad16e1013a51137117e5fbe47631bf10e978712e0f69fb0d649002c74", + "9ecbfb0e0d1c08da4ad33ade168cfbcf751006a730ae19039deb41", + "0e163590f908ebaf837605937a5928717efb740c099c8ccd2473cee9be1779cde6d2a8c4a09b5d8632ac9f580126aa3985f4267d988c13cf03356e8fda3e431b37f85ee8c6fab78e1d23eadc2c4bff329d7a59bf58208228", + "5ef48ee99bec31e91704496c135c1d5d96b3db2ea6edfcc6bc684c" + }, + { /* i=1729 cDividendBits=3745 cDivisorBits=494 */ + "711d589b7b3f7a03bc88657ec4bccd062e3da594e96d8f707598673d833aa2cfc7ce7fe05e72bdb4b7f422152cf3ce39e7d1e833af6c8bc5f50e6a65670588bc47ac60aa58948c0681cd049276c10abbb46b655a41b83c62a005eee49045e288a09b49df771de3d985e5f79511139881b9daf5d3062291675e50e080658f54004b2430250f3b460d577a3af9f425252318b4987918a7cea7d2c7178704b91972e748ff7f91fc32f1dd36172d3b0c3676924e565ceea3541d6cdc48b899efdc512868df49546c76297b4ab98fac6c94e1a9201fb720a3b0b1d89734a94fab7629ac2ea782e13f6694db940d5f2efda5ee7528cba2bc8512acf2282be6f3b164ef478b36810c313702353f3c585c828fa975bdf8a50904a6679ed68f48c1c7b6a44d0c0b834202acc52dede3ec800c30c05f8742dff4ae9fd25b03ec89631c4a3c6277b0d5d75c843ba7dfaf8f6655017a40812d1d7391e88b405696b9902bfd0721084b355335bc52a574e67eab9338830d2054c7f2348169ad7201d811a3de30b457104d03a76cd0d9f561517e0ef89288be160506446abc2097b2b53688448e05949c8a35565c4232c2308a552ad56f33d6838a81b890c4da352ede409d83718d796066b86c9bf47cad29bab5e08a0d7911ac88", + "0d720fbbdb59cc3036eb1219ba488e9f06b5b6e5613f62f9e784b3562b72c46b26808e8995661b47fb49faa43740792e355bf23b2bf2e3b0eff457cf5eea", + "0869acb7b4488dfd07c4d16300969ff4fa6231beb2a2d1814011cae32a87dafbe798a11fad23a65993a240b6e8db344e2517719e7364c179d0f9b1050977e81530bd73454696b2c79b692ad39c7d83ae6dd055a36546395455e16389e866b74d8f09c1d383f1a7b34f15c63bf882209761cfc934b3758dd74b06ac16409bc7bb6ec70e035cf748623cba03249e413810c5b0b8d71d8798fd4dd64625175dbce7cb84611d4f7d0030fb6a87c2a039d1a34451e76573948453f0c464744bf268442ff223ad6430290bef70e58d7b309175bfb23a4b908d65194a14f30246f0cd68f9af5e1bfb1123e366a0582fadc755055086933aaa9db257d8556982a638cfb0dcfdc75f30020df181eab57536500d4a0a33924b902666130a04d7d43fdf18b2dca340a1a842f10f52339ae5bd174b595352e52ae7361c8455473e24b23c2e769daa407053cef6a427e6ebdbec243cc67f78db87a8096da794823c6fd7612178feb536508b12966de72ea6ed49b9e5212d277f8a6325665367867377fc54dee54c41d1974c44e9d41b26d2424e8c165cd2c25a197abec8", + "0d45c0e5ab113ba9c98b19482af57455d255774bff23ddd0edb7fc1b6c665f1c6bf1fef5bd0d224558f0b5f5738cf6ac86e8aec7907451bfeea0e119d9b8" + }, + { /* i=1730 cDividendBits=3193 cDivisorBits=1641 */ + "01327322729fa461548bde2a850268dc2ef88d204b79d2748886137c425440cab3fc5ca85c54bcc28309af3281ee702622cb225712c3f9ab6e114505e13f4a8eff824ea8318e2255fa735108fd1bcbcb477afef813e768e8dd679bde66331e55efc35650c0fcf4113a8bfd25adab9080ea0ad317877677296c058cd9fa008c1a3accd3839ad0b83ef637513448ebdc2e811105b2be0263eac92472e42266fced347b03e849d696efc2b7e0c8df201f5579973dc49528e13f0410e6c3d96a9d732f85233e297aa00ccce38ebe69d1419de137b7142ce120d8a39ec8bf4d20b7eea8968d6ca3e3d2cb3bccd12ab17a39baca4fee9a41854707021baa181622454a16a1014d711cf170317e802bfb5acdd9206de75e1e405ddf48c30bd2cc7ec8dd409ea41ce2edfb4e16d9694d8213460ed6040d79ec3d1536dceaa04d78be3f21145a16aef569cf0b070801b80378e0520100e8e6da75b257a633de365a6d9c22a7692ed68b4f5ad22ff1a902c7cd595d01436203b97367342b3e5a8c6a6c7db731eb2fd5672769e65052daf4743c462d", + "01c2fb9560e73118d75e8cd20fe420666ac56c794ab882f5ff807432f89504b26afa5b2e1c9c3ea0c563356c294b3154e5d70da8b649da52b8f6153d907c3e1920d4a367c3c41dba17626075decdebc9f8e10c36bd91faf3c8c851adf615e531ac424e6642a4df93d7131b6eb16a94bc8e96ce8f8402648c3026c847f5619093018bb650f30224939e8c2e1621a7d34b54dc7a21821b3d6356f09c693601af1e1d26966bd4b0bcd6a3ae4c67596e1d82786b1eaf706faee49590720754e050c6bd029e7f5eaf7639d7b49ca00f09", + "adf4b974e8caba1e6e690c2fcc3af792c9b503afc037b2fa073ba3aadbe603cc9babce034ecbcd3126b7325bdde98438839f98ec99b509dd22b6d015fae2b0752fa3aff0fd7547b4966fbd6fdf84f1df9740a0966ebfa62e71275f3fae0db84484053b630985a6edc18e25d684a426a2fa71282bf762e4d5f9fe322b12fb4683800a9c107ed5f92efed11828bd3d70f2ee6c6379dea818b06d650ef3374675b2bcf42813cf67f24d21e7a8fed833363fe51646080031861be84c33b334a549cfee92", + "01504baf9bd34f7cb45cc5a83d6c7022d36da0620c44b8a9118b821a7b7d99895577f1f1b0b1605f056286c8808dbb8082c0bcdd4c9e0ca48eb892986dfc9c18be02bfed846ffda57e2050f0565b39c120850dff9f0a430a28374ceda26925581b1a264d61eafadd42560698b9c99936f23b520ccdb9879685bc93281de8df962332eb7079693fe8a50c57fe0dd94312dac3f3ea19d8fb0ab85181084dcdfc17fea8a4378b97ad548027f26015bdc614b8f8226b0291f0faa0a88e0dd796e05eb970653775d46c951dd399b2550b" + }, + { /* i=1731 cDividendBits=600 cDivisorBits=301 */ + "7668abb14a5b22fd66c0c54c34a489db14d2d3a12aec142d59f29eaeaa87c90b804420f2cea7a88ad1cd139bd8521e7ff2f3ae1848a1a33db1d723311cdfc0caca307891ca6ef9ea7290f5", + "19fc8a6eacb894993d39c55ccdd17cdba2e4ba50129751e32157871a0e4c484a2ba730d7fe1e", + "048e7a6aa4259eb07b16b3a2c974d6617839d93cf1eb1020dd29afaf08830b542d6910cb627d", + "123df9889e61061b62f9278f6c508e02832ba86eeeb3058af248958e78b42421622dffea004f" + }, + { /* i=1732 cDividendBits=1345 cDivisorBits=1269 */ + "d821ffba3a3e18831fe2c7830e835cbae64ba5b59174d1e87fd4fdd09e8cfec3e08fafec1a47718617caf108d12f22534c323cb304d0d8357eef064ed5e1fa2868e1a336c26d70315df19d2f21f2f5b5c571f4ac71ca08f9cd078c6ad24fc2f7def0f4247fa2aa23461e7e6e8994306861b388180fc23f5e303999cf9fca14b95729f9512e26dea75797008f360782ce6ea48675e9ef3030832c5a509885e48b1b90891deaa3010c", + "0e50cdbed280001ae4660ae286772c5ff4eb87f8145a84f92a7f639695d24fac888db3c6db5a4917177f9e0e298718e8235dd862a36722a2d2afa5e22a50d3d9daed5e610ff3750bd315e05345f55847d5bbc2d5114d2b11686d8ef3549466e10fb4c01f170bdc3024a7350c5bd364140cefc0c040c2a6bf84bf4803892433e6a72db86b33230d7427d3b49114ed4c41bdf2bb57c78bbeb276c25f9eb49ce3", + "0f1900f09817a5d1847c", + "07b6abd3b4e815250005a8582feafec00030ccd316d15f9543ce58295c9ecc2c08ff9316cb7a009c9932b95b53c3f7eaeccc0051bad3e5445f1c1259f918556248b7448f0b9e7930830f5ca178e9345aee23fef05b4b69e80aaf8d2c4e5a495282453f8fd95e18ef8efeb2d2b48ac7252b7199fcf410d18aaf55ae6eea3259b211fff7add43525f03a07c27450abba0bd13a42558bfc9a88453a0085eef718" + }, + { /* i=1733 cDividendBits=1080 cDivisorBits=671 */ + "9bb42934dc74ecb829c357eb5e113e98de7a4f969a2caa82d8876a094182edad2636c861b1491c5797dcf6a7405ac7c8c96d05effc118c852a797afac57bf97c76ed120b818294643a0bc443cd818c579a76a62523e7ffc17ac2bb3bae6f20d49f6fc6ebcb5c7804a74a4298f002e2fe86a0f2809ef364de179a1e491bf598d5393de70a83801d", + "61853f18b6ee6408806b617015725de0c9b402a69708e53cec451b31e77bd0e60af8ec0748226839ab1407d4ab0e3568bd639274c6a4d89f8f31e1d6b77b02ce4bd02e5d79255dc142040c7f0303380deb4c0707", + "0198bc7ad64cedc068d7eef167d6f76de601805f0423677c866ad7edcd8c5a307dd2f374d36a765ba549eb93ed78bc8f5516422f", + "0bdaeacf6e74805833ec0962f4ea6e8818373df46ef34209aec27f72bd46c5c69f2c4e3f83b5031c83cccce74c2dfa18f15202ed66eb2d7e56dd7ebb82074621a942922a78ad1cdf3fcdeae0f7f2d4e8502467d4" + }, + { /* i=1734 cDividendBits=2863 cDivisorBits=1741 */ + "1ef5edc960514f95346218ee99ee00c97d364c84da175e6bfeeec0f2cac8ae1de1d2c109de05efecb025b1b43700130b68b4411a4251f7bacf3cf7c4602a42fe97d307bc624fbce748dc9b51276fe2341f23aa96534ce557996773d71f659492a589bc2df64dbbd4a9de8e60871cf7d38d5a7eb65a633860605e3ae02ded4d6e23139abba50134148cedb5b88e8a49ed583d432d120489d053d3f825cc4ed0feb603202de435f854ba23e7cbd84d19d9f57e05112ef0f6bbce044003dde6529e93188ef2f1209098ea4e0fcdee065f3bcde123d069e40c6ffdf2bc30137e63067ac30b23519a808b9056e8c90d373ee14815a459e8a7109a97acb136e0da76bab261779f22fd8fa2e690cc5342924f6db0a60890f53aa7d9ed0cedf010de82f795fef33515a62f03eb354ab79e1ef773f8cb5a267d382bc33da1ea6bc4eaa6c888e3752b9e6652370a915ab69a423230eb7abca9a4050071c20009e6e18779b210517e49815d", + "0c8e0ed74924b73ac0e0b372609933aa3a4330b4c51097102124b2c7867264eb306880268d5421d3938bba9bc3141e72db7fd5c6ac1cc080f9a2baf7d02c38ff94632b819c7659208866556abfb8fca621a868ba6be195fa284e12cd3e503d1a0151983847878ef49fcd7df5a1ca35321c32292d7c57aee72a795bbaf1d14095bf1afd7e8a23f578a219729984dc78fa57b1a4f96b49ac6e5ea09ff58cdfdc50d4292d0530ea2bf22721d60525d68fd770ef399d8f9627603d5f8ca21c83168462c93fd526602bbd92cc208c6eaa3f56219b3e90ec85e556c320", + "02774d09bd11dd4cee9a400e834e491750934bdc6702c30a3d95fc603a3d372a6e0cdae9988246d9f4028e032d21800418ed95ec03c4d149cf905481ce596ae7699c8e4ec4494bf5ae714b929819d0afd53f5058bdba0cd14aa4a7c377bd54fa7ff23ef40dc043872772548c7ef48c2dc86e986f2ea6750cc3092c43e3e57cd22eb14be8be5861ab26a6adf7c4", + "09f994d3d5f125eb2fe395cebbc28a68a93b99eebd4da279ae1c72cc82acd408d00570fedd766eaeef7742d71946f6c034c0a8d77477d0471d7d1bd17e959ace795ad287d4e70e5452ed2d43d2a4ae4574899db50b313f61b98c2369d8af210650c7285d5fce960c5a827cd32dc2595689480d1eb010f932a23a654dc99e13d724f48d597a92dabe691537bd512bb82713a5bfbc95e10a8f1903cb039062913985ef4a8624b8722d568d2b301aba45aca68c75f93548d2362e3f9fcc44df951832f7442648f03e17e4db359c87333261053b26fe349e94f83cdd" + }, + { /* i=1735 cDividendBits=3452 cDivisorBits=732 */ + "046be3561d11d3164d2928b555d6f11d151763ab6a1482a5db0c73ed0520e4c79bcf004fd2a8e3521b0c06d9d35ae1dc9c68932c5cf74f9e63c78f4e8c27fc67a7668ce25fe0fc28f083370144e7d008357d69b4b40c29df9759dd5fa6bde5107663daab753ad56f80b7c7b7fd6191ceebee660c40b8a3e5c99dcceb7dde402e9e74d0ec7c7d86cd7db424c163726c316a51f2eb885c36b95cb3b8284255032e6604ef6b8eebbd8a3d56af0770edc290dd46ce1c96809adbc816b9df9571f8f79b81e679102244862e4b67b1c43647b16ffe0852054c695ea5867492558e229cca2ebaf6078e1f50a5189c55b2688f407fb32a29952ae26570052324a01bfbe4721861a21cf36f62dbb964573590869ad0948cad5bd8ebea0e33c1ae13c5a1188a07362fdf318a5e47a73861fc5972af94053b8d8e5caaa0e494834c255127b4e0cf0ba54431c0c7e3fbfe5139725d2da7c29fabfe4dd61108752612341582b764a4c58e0b6ae88948b5c783d79df49acccca723daf3a8b15930e7364019a62895fb1a09e489aa3d01e264b4fe7d0f21d99e5543b952c4234aeb204396f8cba713c641119034c4b04be2f9c24e8a9e9c", + "01b5700e1e21fd917b92824af594305fb5e8af551d7eaa235e4bdbe68515dbad8c533340aa602a8c1c775e276637ac58170c5ce9de02b8629a46fd5acf974ffc45bfb077075edf143870fed9854db325fc9398608371650f930ecbdc", + "029669169dda132cae980f444bf64ad27cfb9a698036382db93606ccec6e69b5a10677a51aabd8fccc86a98b54945bb32d5f7ec3b085f04484a1a738bd0d5f27dc1d689b144892153301c7c27e7fd57dde131f5892248dcd9d592e4d6b48fca8885ff6a3d578d5c76fb7e0dc446ba857dcf242e80beb91b14e18d1fa38330b65acbc28613a894b3772226f70d8893a0b1f8ce22ed85247040c74a3793b1ddddaf55c173442b064dfa4e86911d98d1b2acd413e56e5df853f544d7ec598edaac3d3445707a97668628ea04420a6d12f66031976adb3ccdab0fd251a0db0ba916ef1339a19838b27f7de36471c4af56b120a3f9f4095fb00d6463cfe9024d3a59f3c6efd2df7606daa8a17ce550b02fbbc39441ac906bd64da00bde51a9b65015041092b94d1c9fcc8ff35297e8127c2dd35cdd93d6c72bbdf8c503ca545805deeee0ab0961235110e472a15c38a913aa6cda1f3245d", + "950708b931246b7359184523afb008f5d890e6ec551634ca644bbc99ac6ba8ede21507f40de6ab00aca064a4715cb3b3bb884f6aa9c176fd8eaf9aecf133e1fc82d100e53c1c6efd695177dfc33e47d96a8fb4b95445feefab9fb0" + }, + { /* i=1736 cDividendBits=1995 cDivisorBits=1537 */ + "040d1295634b9ceb0d8ea4a0227f2e968b6253ac7b961d1c44cabd0c1f1c1f82399f804096040d830287434a167afe29dcae55b863908f9f415e66d092cc5ca62bf233996350ff8af9858803bde80bfd5a452af1ed91bcfe6c393143c5afe2436b333d71fc2643b02f142758ae1b62e3e6f1a683d298bede98b02f0b3395c1e5af19cc682b6c77ddeb23c3aeb6ab1783fcacf0308b16a59d2d744048ffec869af09015ddb6a5a6bf5fe7c4cab232ae71c440228b32216b766f66a9862fc51067a0f3fe4b886892b5d31fbfcdb1b30e6611261534df763579222eb10c193ad535efd16f574465efeac127cc945cbdb8d8d42c8703ac969a39ba3b", + "019f8ad62a9958c2235eef5783b81ff24610cce792cadba2c801fedc822342d62235ca2562c77dc7c71da832252afd185a4617eb1ae21926554d05dd85752d9e54f2d00be61cb6b3f58807a129b4516bf00d03346095cf26198a44f5c111306ac0e344ef06a9ad03068e038e4e245fa22a7634330546fdd127254c49c3e0269177d186435de707e90a865cb5e3979e9ea9d3c7b43336880f99ba9131eb3d7227076fc70ef4e1fff4c14c592724f901febd14f607ff3444e87806f7760592f4dc41", + "027ee6c33c59a2a90848725e5346508659073a06e6ac6b3174db9f5dc3387421c2024b9d24dbaff4b13f42b7fb3c187ee6a69b88549abb219c08", + "0186d30da6c0da3a1f8fd009a7cac656071c28e4d9550c79cab5f89440c48ba0312503692a2369790419e66b2c530804ecabcf94414b2518256d9185ea05c07dbceb1b8c5c97d3920db328cba52e66ce89069d0e4803681a489ee2f312ff3064b63ac8d52899dffb0f87ed805bd34dda2d209e8f269c24b929d66708d9d2650250c05ffe50d2b2363cc839c7ee78acfa3398276f9b598929c7b88dd4f654e52a14bc92a7cb38131ada97a20f0783bb74b95c6696c3354a63e81d31f54eecfa3c33" + }, + { /* i=1737 cDividendBits=3405 cDivisorBits=2390 */ + "1c398e75b1e83fd2a03b70ddc2ba190072803998cd064a2210beb1138eaa7c977ae7b9f011e8f9e35d6416b3448699497d9577bfe28a43f78d4f3e353829a4507d5e804e77bb4089d87cf078d55a8cbf26af2f46a2ab39c9a7c60d357dc5fb5d4e81e03992640faa56b0c0031cbee5e35f279dfff968214110659c5a3aaed1f864e4d41afd029911d95db04b58c1056cf14e0bbc3706639d7046a4629cf5020a75d2e7b0f65cc804649903e31ef64fe56e79f2852fbf26d256469b83b55923b5f26ab3aa32d158ceb3619ad7a8675aa79ce8f7f8554f82a64ed9c1d3682cacc8c66579d515fe05a4c46dc137d41abab016c1fe306b8ff9ca91f2117dabad41eec3e3e5c86fb81d5fc13c81dab26def717c482caf8bdd1c22f9e253a33769ee864b4fb1fb88ae0ab9a692253809ba3ee72a11339dffa1e67a3fba491875d0098b0dbb98b17e19bb9347e2a28f14a354c98c84d20ac22aa71cf888a307c24dc529444b733ab5c435afd11922ecd72ef164a0de5105b9c4b6af02a378987cce182d7303f5d3aa66de1a7379648d5e2b1a9f98df4f7646c5885c5341e68560dd343baa9854e16e0ebc5fa675", + "1417f68022851bd20764e9aa6469aa5bd0638f15db849ba4ee5ef4fdc963904d4c9b8f2e20a7450982a391e4033192ac0d193409f8d53bfc03c201a831730f8c3c413ac077c26f8773bd99eb00fab1fa3868ab52daf8317a5ab3ce8c610b8ef2cc5d1a422c0e5279f630fef8a5b7eb29341c1d3f468fb0abd47e40358aca107dc690c333c232810b40bf56e6e0217b34395a3460401ebffc3489714c040c7cb1d431a136731a0d62964b7d4360dfb60213a320737724ca847bd8d2f827964c5540bfbd01b3986f14765b5a67fa567ded019b0b8badb2aef4512c93d976230c3ce57643db3a352a73b6661b63d519932beb8b46dada7a9172d4d783447758163c9485a510c935ded05440d2f004c0848ad39261f7ab17fb7f3daf5757ec20e6b09810926a5cc52e266b759c", + "01679846c04cff9b4244f00cc0af89c3ced46c2625db1e1ffdc48044a364f213f8964b3418ca610a0867c60e5d47f2d2f16e947c495fcf259a09f746688c94a1d060f1f5a639dca27c81df1499c4031949859c35fceaff82fe2cfc895e44122bded232733c20189507553348d7aa48060d20378282bb733693ef4129d5ee465f", + "08157839a07fd531710f016335cc1491d19bbb0fb8f8dd8ad5013e5ad906feca9df8e60ab3c61a8f95fa5b7da660d4f9b3d8b932a4e6b08a66a300494d62b391d29b0c8b7c823e7f2b2e8d3ac623d6ccae21f00eb98a0870819ed2dcddfdfd2504914fe8a1aa18fa359bab3267686a19cfcb7bc191d7b17f40dcbf45aa76ef0f2f5dd44cefaa68445f9fa3ce4ec3791f5338df22582a6a472fb054a0d6b38e35a3be7504aff2d5fa8752cc3db8ca2ef2110ba8604fa18aef44d4a9c4d762460c276f88fabd1fc2784be06a033917df6b911e1c26d900afe12f57e156650f89222b58863dd3045768499e23852f940b31a400155da3a17ceebc2cb42e7a4b26acb75da408e077b435264d5fbcc502a452fa02fdb60bdf915a5b2152f076cb162e21a6f5f6f410aef54e5991" + }, + { /* i=1738 cDividendBits=3556 cDivisorBits=979 */ + "011a248b705c97fe669c37e532bd9719983ba8bcc94a970531f91f139abfc2984966badad2325ade75c4a2bd1d64dd6ef3d88cabca4966f724576de45ad8e79e7ca395351c3b8c76ea0b83299bc236f04d46a3370893174f68b2696e98ede7397c5517097aadab30da67ce2df2dac5395a6d2196a3ac6b2a062181f4c66ab39176dac1f2be44388ca95c657f04b255716d1d9ca3f1d71a15d94a850582c7f4f9ed54276c6f9090e28162df513c6d7ec438477fb7560de1008d4c3a6b1deec0d53b63bbde8c21235257513fd1455165323d401a6465f674cba573301edc9825675dd6d19af6146848d024bb3f36e603247afe4feb30880d9d1613b95cb1db37ccb7b317d2a195d8ef2a752044b373621b8753c81effbccaea6a11abd748dc71d2a9c938b93ee1b01808ddf17a6e2d8fcb39db53f3b0d2e9242cd61770ec4a9802ea6c45a000693fa4a9d6593947c0f76dae3a74f1fa3ad84e71d1c94ea8ade9c02440a4c84bca1910717129f58834a327c40717d37f909797a180e6f360e54d499611ed2bb1e683e71b9331d1745caf56eefcdef4679fc5c1e2dead6f81fd6c14e721f8b7fe5cf6a45aef38ff00ac36c6a97f716a4a0eb3c2f1d4d05c6b", + "07d4703180733f7f068a419fff9f0aefb1989c2f7fa3c8ea970348485c34c785be0f1a0b82e9d9738a6c2ea8a35692f1252664810046128493fc5abd975de3e95e7359c7540ce3863c4eb47944eab4c40af7c8a58e2768508a2043f394809193679ae56de90f7340d7decb404689094614d0e85992a4929c99e42c", + "2408c8623a144629ae202c661f22780f72f9396af25b76b2482f8ee1bbd28426000a96b862d8a7dc365a422e8e5a9e1de0f07faf8a2a0b39a83e91da1abd4acf472da07bc9c0c41c8ba655b415e47eb02a967291d4188f3a6decede77f71ab7eaeeb4ab1ca9e18406772dcaeb269ac9e0d7c5f5d2ba8a4a969d5bc38d42e6bcf5aeff4039b9c7350ca7bf1f0dc1bcd4a4c77380bcd5be556492184bc9ef8c846e4c15a906f737fb2bd4b56a5b4f0f6a532e05f57f62474ac6a1516fe36194196ef3f741479f529a138577c30fd732f05cacdc71ce6d1668587c9ceca49b248ba0106de0accd7a05b37b5ad74c2618d176b403d349ed9e0e508c5c260f7c200eee0caa2ee789a43c9bf8feb33ce90884f1a51655366e6090baf11aa147c7713084a3038a99b29c6706a0d553c090229910c0a6c7e7808532c62e1fd7ff8e6d34712f1", + "03f7bc6a05ea812e44e07a769a92726d0e1299e3e4e279b15b050be62e634e91c97c235a32bd34339633a00986dd7bf81954a34c0761518f34a212fa0b417ff81adbb1a450dc638590310e01964e07aaaf8771213ec04af1ea99264427b51ec9f5638bd056443c5d2d38d894b10c84820ba6ff7b36a0a309b176ff" + }, + { /* i=1739 cDividendBits=1792 cDivisorBits=1623 */ + "89b6af365db97af1c6dceec2125676ac5c251a0c31ed25215ec05645b4c944a1e7db12f4ca971951568fbd4947cc8bf962f73e5e06270fa0f907bf7996945dee9f915d4bdb118da1ea6ca77cbab7b1601461844834541c1e3fc9e7e61680ea32cd502bdceda8ffdceb228c1effa386540b0f269c88f5ace1d6e598cb2a8796aaaf950143c146c46e1a26c1220ca32071ee9c4e37ebb8569cecf218003c4086863700f9192881fc135908d1a24a0365fb31cf5b83a5b552f91d108ebe9985ddd5459d93d51ed99d278d2fcb504319b4844b2e562a51dc996ecfdae6ea84a96e18", + "325c62c449b1209abad8ff569841c0deb5f4d14a8f0dd57c12c295818df6c1cbad0b74f513cd2f47ede3264a58ac42c7b0909dd4bb13237d39f4d718607cd125ae0448abd4f6d079d5d85338a6ada36412593874866606b377381b8f43c2cad94a067f9f641f8b4c8931c8efcbc457e24d7caaf0c6d61767f167c7568df048fcdb1902e6f7ec2de3344938da6019e7d248b28260e37268e1b0ebce0e09e7bfb5249b51891474b442e12606be4e7a4c85099a2e30506155c976c714bce2fedba302f7715531d18518d01e4f", + "02bc0a81d19541d845c0aeab5f267fc0538b0325860a", + "2f114a39e80606bb830759cf28812ec2897c20894ac4f2f61878f34e058608dc4bcea172009899bbf215437db4158f5e762e45a9ac2a6729b07d0aa83d2e835f1c0ddc12b0bf74280352963e11194a81f49141027049502a3c078f3738ae8c65ccd7a42af991cdca0906a9b75ff7d45f4d68b2e6755d4932015e58882952ca38c8428c171dd8fb5730fa660b6f3599a5f6c944379a2aa6e27aad7447083667264e228d9e996ef0c165be949d4699df244022ccb9ed7793b8924f0b865390a2dfd32097b1a1f4664e3fe502" + }, + { /* i=1740 cDividendBits=708 cDivisorBits=705 */ + "ecc0cc3c5747c4abfa7c3bcdf7a29acabc2e1d17e106fe06bcd4a756fb55c4da03313f7664b249444885d0d328d7f9e8c7c361bf6d560c818b513a4e78e44c87f8dcc49be069a373e6c1f5d6286f8e24ccb533e84c53ddd0", + "01f0c3cdf317a7f2c6ebd5a830cce84bc2fca26649a591cad96f5b351697256e2876cfc518267286ccc115f21ea770ec3fda8cb093fbe1591c78723f904e94ec0ff92afe8963d4596bf11a17bea17674fd43b2d6fe184af80e", + "00", + "ecc0cc3c5747c4abfa7c3bcdf7a29acabc2e1d17e106fe06bcd4a756fb55c4da03313f7664b249444885d0d328d7f9e8c7c361bf6d560c818b513a4e78e44c87f8dcc49be069a373e6c1f5d6286f8e24ccb533e84c53ddd0" + }, + { /* i=1741 cDividendBits=1982 cDivisorBits=925 */ + "172c00bdf6cbd96c17f4f7bcfbedd9bfa53c96795c1da90186f0d06b524f206dbe8002a0a1fb7807c3836f2471478745e25e0e01ca62898bba40464bc187ac0b9d94b13a284749bf0d297e996498f3c8714cfdb7731736e48eca47b7a58e83df92d5e75c16094666e01aec685dc4933e839f0c9a51993cee63e70da37d3914bee038d114a95ffc31371f078ac34cb11684624b30bf46884312ebb6e5deff65789822607dc62b229a08806e5bb4c924a32214b8ecae9758a187815f712911ce98839c22599ca3958e5a59aa6d5fa8b2056f3c1cc38e9172a05dcd2e02a39551dd706b25f3d79c06f2757402845fc1603eb4f30432726a7b21", + "071a109b87acf9035f3a7114522284a835f375a0e7878e22a2501b8d19f617daf6d49ed1a941210f8c30b82364c4af97504645106a39daf0cc9f6bf4b83f5c4da913844d5d59d917f8001c83ba811769466cd3f14bb05e10f981cdbf139f9b8d00941f456e62772a29a7db538b7f2a594d9e73e6", + "0343479c96aa97fd52aa3efe74e8ed510d36effbc57d207a56774f95da6548a364adcbc9272d553d17fb1a9fdeecf4438a904351f19ffb40dff8efa6d56638f1b0828866fe77830200e7eb53b205ba641a559e6fc6ddd2380e8aae56645f47f85dbbedf7179a5c3b8ddee7b66ac1e38a9e1e7356017c576ae933b3fbbf6f91fa374a158e0f", + "02f5e90d6b6c50c6fce2fb5bcf75c5f9c6bc9d9b56851e292c1f2aa7910d4b37bf1a7e6b98d509789884ad99f18f67a0c51c53de23c382d17914895379dbefc3f4eb70ed4c86126d7024ed84df7203e18c12317ee17d36beda3db88a5cb711fee2ee3873e05b2141b17f06b5ebbf51ff03fa1ca7" + }, + { /* i=1742 cDividendBits=2786 cDivisorBits=1398 */ + "014d34f953c4032cad3521d0b65f4cd8a3c57c69d67d6a7f2576c58acfe12a3354ecbc51bcb7d07ffa7e3d3fa83ba8ec18786ca261ab503405944c2b18d2e2248d43524e0d913b899c77d18bd6c79e587d373956c85dfd19bd273d3f44c959424979492aca24024cab5045aaedb55ac50a97ce4208a9cdf131c424ea1151543f20668ca83c3083b73cbc6d384f7f03092b652276ce20602ff42ea5b9fbdc49073ce1b8444e22c642ef425c7813e3c3775174e2b00a0a889434ba3967eda9a1f3e702dcd48c19fac0afd84a89a925ef46ddf02f2b986c1e672376d8ff06166a03bd3433e7abc955097db78da157090698c634cf255fee1b58a6e0930afce2d937edcfa3245e0c0c8d570dd9e1cd4ad3481b0dd0aa6fa94950b599047b8a503d75743b732061b93c8a142bb9a446f4216b315a691efde052ffa72e65e6f8cf5edad1bea556a4fcd0fb29ddf38bd9952ee72a611727ce64bb6e034e7a6780", + "179320dd0717f14fe706eb3f40946ee8e75f153a0130f60c14d5a5d97649600d30cac2b9b8dc48e34e291f6b3615ea674e2ad251c3e834f7a5a14cfafb4e8b85488e4d9f2a164bd057e466875b3ebc3b4e1f68ceb50d3d1a9cd6983219537e7277c714eb8593576531ba597a606393ac1f1374ee26d21c0da415450d849876a8555128b4316f6d06799ca7fc652b420670e4b93d89df3879d72e320b430222bbc36d3a1c746410dc4462819b33edca", + "0e2252ec29f0062fb2c3a983308fbfd35f27b6a748f0a2aa4fb99c60abb6c78523ce014f6a5b0d8620f4574475d896b70e6496ca937f336f7e31893ac8388e32c4d2425a2d058f8f94c29468fef9fd296df1afdef46c7f9e1c2e755b488b40535ae87add5f4eb7c36f334827e82ca0512564d108188a12a42440bffebcb081e2f8d0e20ee46766848ae3e40c0c8a39bbbbf46d177c28d15015ff2fdae539ff4b239b9c0aff58928149a057a0a715", + "156cdfda4979a0e728ac82a4d35aba49af3cd3314c8551c591f885d41a9b95321dcadf5c00c867536d6bcc1872c4fe4208f6592eb500ee45ff763249f8da5e4e1448182eb4415b38ccbca7116cc09c840ac2633a58553eeac03896fd537bdbc092cf756a83cf59258aeb526b5dbc4b6fbe823ba0f02f118df5dba4d3b000369543829444c2245d9946bd658fb5177f328871226c13a1fe99336afbab72b9750f1d17b6aa9dbe09440fee9e6ed91fee" + }, + { /* i=1743 cDividendBits=1020 cDivisorBits=774 */ + "01d7f7be3f54d032bd51721fbcf10fe877322a6c8db4636c55ba34a3be2cc361ec31458df389bbe01fc91eb84907c6d26aabf0b7979f452992df07353f3502e793a004dbf5b71250044f33b78af81e2fa28d25bce63bbb81fa469d5b56e1ab74518e63d095c9b8c569a66b2c9af40738ea8758358c28865a292d41eb76330279", + "38fb23cbf8135c1b165bb8f7163b5b919f3d9ae5c3db99c735aac45ecea31b3c866d2c4b60ee87c99d5398e0f7e13c3cbec7c9d9f93423c6515c12fb9bd395b9405a0fed30bb186cd9e6799dfd5190704dae589be2f5027d227a02eb3dc8ce9a8a", + "08486bc9709e2a2214eaad2c871724f4d7aef620733d4093aee905b8dc62c6", + "0d12e8f6efa90490d8bccc8a64f35ab456debe0bdb8f940a1fe4cb0415833b4ec7adbe57794c068b9e8de201b9b7df3a2c6468c97df8714adf6c4777259a1907c48ecab783a572cc7888f918227cbfedbfdaa241fb44131fc0dcf3f9f110a6a7bd" + }, + { /* i=1744 cDividendBits=3816 cDivisorBits=831 */ + "db5c62a57ae1bccd33c7f4ea338b247384c46eb210e80f2ba990ef9b8f73b11c9992357e5e95c461a3fbf2fec66deb10185071bfe46eb9bfd5e3723ce370f5c4b066294a7ba2f9fdaa54810b63feabb47b6aea9c913191aa82d03b1ff80c466b24a4927083886935051d6047eb668e6c034f95bdc1c27a3adbb8c0e2e3d961dafe3c9d07552927d063eeab764314dee829aaad58d8dd73deab0a83732d42387b8ebbfe0994c29893aa89dd2509d93b7dee8631446345005e7abbcedbc35cf3e9757cc74c3d2be3cd5198c25dbbb1572f02bbcfe685b898ae09dcc92a3531aced83d3c0f335d94f8ce69d6d03d45d488aa67903dc9d43ffeeca60784574d460915f1c63498cbb545b963f855354ca5e286886969cf217d2f48fe920c9e1320fd87875624569dd25461939ffea05936b5416360bceac05c6ccb5be64333b472817e63e1102ca87ace1deb520c6ad1cb8a30bc4d62ff0365f52b345f07d86883f66d0b465d59358a6651b0f8a3b73d3ec7c4af781ecd18b5fd8ff29e183c9aacab8203a23f8404b3168ae4b25780e8e27622541b457118c53814a8d7432e056e1544526dc4293893cb3e06889ae2558e6d86a77b91266e45143a94ac37907e85b90954c709877ea52340265f1cfc04ca173c3bea64bd5968af5866edc071f", + "12d1807332ac48faec6a718d70f04027794bdc7f74ea25b641e783f1538f9d32e855dd60387369b314f868972fc2816f39918e305973d76dd4fda5a70d8596a16686e2f5e16489ebb1751b873b70b56bc324a486c0527f0e864008c0f94cecf5a7d396464102b593", + "0ba82062214cd0d982d4b7e6531010e1182b9a0779eaf04900ec32494faccdd95d128ca1e1f865cfb68662214fae273cd7feec7b27dc5962550caef2b397b8a79a4e1be8f91b3c2b887fbe30d6d6c64551bc2d52afe69dd9e50a217f9f89c9ddae1f5dc241b7f00e462bd018e29e2173752f78f9f31b5d32aa13309ede00265c1fc2387fe8b257e22f7b975a6ed346beb3783f4506d86ef4792a00643e85bfa22a47b8418d40fbf10e37ecfff414d9ea2db2be2fe72414351a0fb28b2dd5baf2039ee611ab3194294cd5bd53fbff1c65e972dfce2a5c53d5ad464f8ad852fa6668f040dadf8ad0e322c14359fb271d9f6dabbaf1457eef6c06309fe3ecfffc7079ff4ace666cb31096eefbb2df8d638adddc72b3bca73918707c2e6137f4311e6da16ac8cd12e9c8f2840703a555df5b89f39cf2db12fd6e7c9f8c7bf60b2a4581b352a5a3527305d38bfc206eedb761b919a216ed6e795af236e660d6645053de07f54a0a2a0ffadcc432e253ae33c4d2b35b30f710", + "0a235bdb3a477443c1ed6634785e738b46a86fa6cd4d319f8fa4a9098618a54c6db32975b875d01cf2ef37bca7b3dcc4afe75cd6c08b6bc9eedf4cc28e2170ed3484c50942460c57b3fcf799fc2190d3aee78cc78f0b831304c698e9270db1d9d1a8159274efd8ef" + }, + { /* i=1745 cDividendBits=2523 cDivisorBits=241 */ + "017f6da2c64b1884335b2d69b2a3747a0e4ee6e968ed2f8e4e9344270925381a6abf204cdd0ca3d6d99830f5582dd7bf8a27e8760b120db35a0fe680f05128de36990203538f692212355857bea79ba606f890564d54542ccbae4e893c8f712df23becf2937932485a5138a07b847d715b078e5b86626ea76819cee5f37d2c2f3f98b748dc2527aff87368c6542bf72bc77a710c6e06974cf6376549af99ac88a23044f66cc8133e814708c2c3be128e9af9c450cbd67b0b5632472789c41e6c8ada793086819eb75446d85978a1c71a0fc5d850316e263acaca4fc97e4531f677573c6e06ef8692c347183ae2f5d3e94a23d39005d536719458d062d822aa2c2aefb74301bf3f1c9cdc405d64be7e7bde885e532ac7c1f957fe1c8a499f6c56aa75a99f24fc1efc07bd7d313744c428fc5d22415a538c74537d185e", + "01c33174628a56bc34e36b771a99043cd1adf50e2bca9dd2cb56c12a6228c2", + "d98d1e010f29ee0ceb2a3a3545dbb79d7ee876f8a1a65fb5aa6ef6a923a1a6ff8b8e27b5c5d25fcebf3e97b3a0e7db2fffb744e57cd3f5628a39e8a38b53cc2f29ba9d2ec2741b92e896a7d9e1e28a651665021ac2b9f0cb62e147439693fb21b2036f8d50a70feb3e4e3cedb01576c2774a9bc9fa2358affdc7dd612a0f9744c738c31ea47048c157d604f13f1dddf06ec3106d112f6f16d96c1ef8a4c0ac6525adea9a67c8f27a89b9f1ffe997f3d4b15db3bf0d5d31a89811a0b40df356ca829a1fe4d1acecbcb9da8bdbe6c0d2e1715684462b798ae19cbd9c6df92792ee943b136a94291f292f57851a20711be1750765c4fcd304f2434d9ff30ca7cd75dbb5e4d6bb8f2f2a820b1805c69012c620b9fcec1dabad749bc1079f52", + "1400c470ad0045a6199131164396b2ac4631b1526c1e45130a62696d8c3a" + }, + { /* i=1746 cDividendBits=3147 cDivisorBits=2806 */ + "0579c8bc9e51239179e5b74ef6afce4619a73b3c07f6d84b90b594479dd52694960a8084c1158cc8a1cd92dcd0dac638486ac580aca2a0cd1c67b9c63f9a116dede88b807fd6373506d3b3710c50fb23e7c6fb196b07c7fa7118d36c7d9d63b74e7da1c39bca794d09c6a463fd19721ae878a7f407b0e168e9a2eae098a99dcb2299ba433c9199dcf910e84dc21b734409c16e8c8648c76abeab4a563aec92bf2b36cd2ac719c9168cc187ec6abc340cb4f691d1495e4ce76c9988edee5488f740f4c1acdda7f6f4e82edf1e58681ba88376cd7591f998a97b97579ac3cbb8c61390f6526aaf69552fe948c4cf0ccecaca41ad1da14bd8c18f33e95cdcc4eb622d3268c70a714ee6bb29a487d70b026c58a1dc9e29355b83b00e949be2dc66328bdf7b466f52ad9ab9c804c150ad86c246d96295d6b927aa10a74a0c6b0b31be3ae64b0e6f4ed57fc33420df87cf2ec196620a0266d0c67965e8e42c93f9775ba621bd56644ef9bcbc8115b960490193c1907bbbc10b1fa7093f948f6579cf2db5dd2a6c783ea4a0536e", + "0e0ffe2fed932644f438ab5637c200923e8d626789d66f08a290319303dc6fe0c5754a61768b93d02d86819bca0089e273d55ed901390a7f365c0dbd8b16d993f8deebb105039d1d3d1445918288fb206944f77b74b60a24db04cce8872d054b1977dcb3670b18d32b21b1487ae78ec63c7209f5c5e6d8950f3cfb34495b190393affd8d7199d5f73956ce3a5d728133885152ae112e791088209477f1f612dcf25a8ede318352fa80273983de4111e3c6e6b218d9d9ab1fc70e462f635e375e835db744d9817f42b8d564283f3127ce7b0e7d492c6119882bcf3c83e283b0800fdfe9d7da9a1c3eb0523d09abe7ed7dcc80a70ff153b20c8ae3bcd83f51951aae2c3697b49ad962ff71c4f5ddafe3b9819e2b429ceefc764a8b0909770c4467b3c8509ccf14cf5ba6b3e6742e75ae4b7836f36a6868dd7e1448c7769c236630f6a4ede34ba259fe9aca153265930ea45b9f5e88e44da7639d6bfb8f05afc8", + "63aec060de9cf466c52626ede1802ac61592e43b52d2940d6292f9099cbf9d35b05a45a6d09790cd2f412a", + "0173b834d5adcdce3e40bd196f5193cccf0c2e648db55834721fe369a8831daab0a67efdfe8b20339a6ff32dbc8a15caa1573acb61a9df75bb51dbafb7b2d8e4691610d8e428806170d58f8b4702baa3d01913b36469d8d646fd2e83853b20d8f96106a902b3e44219e6ae33c9a5b84d5e43b76ef5e9b06ff3d7094147120b5685b908ca32274db746d2169eccdd64519e5b97d8525ccfcbd0e1b1b142503d82b71b5c7a5628426ef9489a07f43ab107ae7e10edc1994a70b160465e77e4a8b25831074ab14111234a00af4aa3faebb6a48a3e77e08a93b0b0205cb97e553bc253d48fa8bba6311c06673495705a599377d4b416f8f8cba87ef55e265619e024cd9a7d483444686c04dfe5e126190e80b6cb82cc57431c3243e9ca5f56a9fc4a60d4a5cb811bdd99ac18a5d49e2accd1a443e958739f26dbfa6530cb5342030ea0f74a905a7a1d6c1bc712ddead20579cdcb3a894c6a5d4515395a4e57b49e" + }, + { /* i=1747 cDividendBits=3946 cDivisorBits=1110 */ + "0251fa921ecf39f8f5e3171c09eb35ff55e8c2c9f42835c7e451b9473c73026b6f26e3345fba5b0a69f2667799b64482c7bac8a7c589929ed9f65a5b30ea02d59e749368a4c753ed21e6d3ea07dec467ddda6c6b99d288cce6d2f7ebf080688ead26a660edb9dc9d74d7719635251e138ad0d94a50c9776b49cbd34a2a5d943d1c2c7ad77d6efe5c37e73e26d5cc273916548975dd8d81c20c9805838f89820f98b7b06ee7865525585155bcc941333fae1618ee05032fe3870a1e1b07a8df3a7f4cdefe990bac68241b6e8ea656a7d2123c9a64cfa43704420ce492e1446b67a378e966b3287f5994a5d1abae1b32ac6337af42123cedea989228310577f1e720beb0962d1389c66275ffdb63b99cbfd9164a17b7f034da320ca77278de40dd6f97494e75511be1b055ab7e6ea6a07d6fcde9deed5f1cbabc423e3f78ba4265e1009a1c70c38756498b42e2c839cfc37a7e006810e976e76ec1a5ac6f0ed4402f30b59a47fd1d9b71fca5872c9422f9d2898ad6501ea0c9558979bcbce7f0dd18bc80911765a38700900c2fffb1579d9fd3e701e20c42131903d36c3ee993e0fb3fd7fbf5d7c385cf34ae904f7c1624f8572099d73ab23745540c42d0d5816c3faf2e856bf707e7cd0db64551fcbfce0093277b71e451b8583f36f5983cc4c1e64fc0bf16c3d0ff3f22b941d348", + "1602d760aca682a1fd16c19b638156d3915e34b0d09d4863ff54fa5fcbe06808e47d6f1251dfb048479efff3303f3b49d01b395601262ce983120714bd5e6dc9e578b05da18a40e9b45a4c8c1e6a7f3cc360f26938ed6517ef28f02ae5832bde3bd25ff28f0b31455fe8c6ed77492f43365ccebaeadae7aa539a5fb4cf71ffe993dee267c704695792b2a6", + "1afc449d6a84d161b622a804f957ffa0aa0bafaf94ce709448d23cb4e076d4b908e2aefbf19e5415137466fb4ddf79bc823aca81b9e33fba987fb36c54aac229ed440e28c9bed15ee938e4c75f97c2eed350c03303b2bcfff209c79289d721a0d20841e304806ee2d570ae9f071af496dadc505e3de85c02dc3cc840c02f6fb5cbb2207b6c7c04a260aa2a7093740e06010a4a453f67dcc1d7f1e1d64dd2fc6c98b0e2b235c56e8fb01f54ced01bb50cb1c7329e2ffc13fcdd07c62d89a7e75b81ebc1446e1e4c03db479a9ca094fb8c4fdd73991730e93f84bdbe13b9dbf596af0e64b6b2afab9948ef75e3005a23954acbb1abc88f043de9eaca40a789b15b5782e7f031e3f32905857fc5d7693f0f998225f415cfa8710d59652b3bae7ad7f084412d38f52762defed9163ad62099c139d6fe99ffa1a60e60f41f94d7cd4c2a134e80d3cd813cfa6a598acac67f946334681114d35d4925d9fcb00b1776daa23bdc", + "1443d0aaa26cc4ba1fed6b5178905b259419f8197885ff0491f475c8ab3be1b1cd33d35cf6c480d1aef442715e31a29ace2de05b264b3436426b8a9c44479e97766d4c6bfb61c5da70866b195bbed4417d09d429c0e4afa48df49e3e716b07e5d6261c1df663545c41d6a08ea0652736960f2d4c7ddb7c03b1315e17c003890ff689a0ebe993f23ef80aa0" + }, + { /* i=1748 cDividendBits=3241 cDivisorBits=2370 */ + "8ed2e22769cad4cbb53dc541299d964ebf1caf3ec2dc57897926316734f746677b1b10e33bea6cb0e70ce8157e06e926a1112efd05005aaf598702ec01936772266c05e18eb85a1ce93628044ef3720ae9a4d0cde98f3d191ec8b410015e2ef70bc26d0fd60d97db9ec9a87d8014214fe9b7cec30db864e16ba28ef54c3bcc0ec971ce4c0c0c33e3dde1fa914d3e47d3b1dd9e8b83d4b47fa20478873518dc5bbe98437f686a38c342fdbb8f0780c46fdf92c40e135781cc56158a7c06293ffa246cc245afa4efc329341d258c35bbaec16175dcb3807d3bff36d2de9ae2eff7f4b9c27474696c56ce36990081c7b57effbd0ed0543aea85002538f518ad1b612768293349a8fc0eda47fb44736ac423537e97141ddf5544852a79f9f38a027f8998b54b6f281914f9c34bed128eb96d0c1bd48aa3f5b8befcc9f26783a0ae4414040bd207ca51926798092a411df45308bff8681773b87ac5a6ea65e902c12ca9f16581859c2ba467a053272c795df12cdee02c744ceae09503c2a610d7f41d54d294ff849e8ea8a8eb645761929e1c3df53118e8", + "af335654185d7f29d991d49cf332c847c12eb04b1baba8403ce6c96c21f16550589699ae524cda1fd349e5d13263e78b674dfda1edb7ce53d6e344abacb6c2e8a9cefee976b74e6823ecb45b6f4264ab5e6bfba08e1b1302069e6902f8384cbf78910a399dad1e65092b188f3c953aa329f198c3ed71d3cbdc11dcb9272e830c647f749331199e3531a1263e693ae1594c9b9dbbf837a0f8ab9199c8f65785792c0e41cc558ce56c3e6d50da38b3c35a308626c4c3faf7a992bf133ba7acb81b4296c96997a2d5136dd0142de288ae36bec7f7ffc12ba61f5394dfe0b53d434ab11cdea4426071cfe69636f093a00ada6eb78ce6723831e3366a7bec9c936aa037b401f681068b9932efcfbb9758967e0f2f1fb308711db2b707fe30b702c14c93b705053ec06b3a", + "d0b10de805c3155253b396c416931355e890c29d0e3a943e68931565820212ab55fdb2892537b2ac5b4fba1d5430ecbb1ea9be0702fe1f74d3b14c5cd95371618d3b29ed361fe09c8dcf91c7db3de3c4266db51b400472cecb653351b96e0464d32948c70276c7c6012dd29f87", + "92bd47b60a2e4ce6b3eb51c3699b23f1ecc09392e984f16bf309bbf00d21169581c38999216c238244bc890a90356b74d83d71be8767f6a6ceb18f258bc3148f4844f0bf28ecd0de02946428acc6a2c0614c2abe791f25777fd9270e3827d3b4332d182a83d22580d49b18145d6dffd3920a7a10614c9118f1c1e4142005a8af02dc2d65ab5d8442348bb578ea552e8cffb308e157c2e98d8d0e7c9be9fa48dce87d577ce8f8c1d72cf5ac662eca99fc9c126a30bdf4d4be1270a32ece5d56a0e635251a86e5bedc72c1297a89fa91fbf14b20baf9716579805494f2b8d4846ec1ca0ad875c2d71ca08b59fd1fb5203972d276ee7968c14d0d51567085d833b79311c03efcc4894f5b2d600cfc50d5ac5ae8bc8a24fd01d87ef5f604b555073acee1a095338b8752" + }, + { /* i=1749 cDividendBits=544 cDivisorBits=510 */ + "e27e4f217583da537d278e51fd4ca57821109b267de4960aee6608982bbfc450677efcc49bc58335f7b645b78fd46a23021fd9958c944fe187efaa5243e564d1cd1bac8e", + "3412a701f8aaceac6c838fa69d8f99f7da44683e0e52b00110da03cbdb9313ab0b1c51e168d9eb77c3d704ce4efc6138b350665485c314c7ecf409402b13facf", + "04597bf62f", + "298a3565c291cda23d082213a7b5e2d3cd136ff3a54fbef3737e3cb6ac1b8d1802bb0ea27a720855b8351269c286cf56ba52e3bf51e6e672d515789d38f8b68d" + }, + { /* i=1750 cDividendBits=837 cDivisorBits=82 */ + "070168ac6b727e72ec237662daa61c49a8645d0a87d38e356544cf8441d86aa81d785fd9f8292275ff1bc9ee339922e623277e4e39278cee6d3b603b0c422062a7343031eba08c3f11128d827caa0bbb20ee47da19337015c10e543d39563c0a9a41c3d5747feefa21", + "0302d798254dc3971405a1", + "0253994b5eddc0c6636dfc024dc1dec219ef00599e78adda56b8f6bb3264793fb56e71ed07bf99d8c60ca30aec707e2ed0148adaf355cd0aeb0875ed2823d85f24a7a1ce5c258c4cad333d12d73d85dce383cd30a78c461d10284887029eaa", + "80b43d39ffebdee7df37" + }, + { /* i=1751 cDividendBits=790 cDivisorBits=451 */ + "3006abb0b53f732fce1129da1a60ff83c4e31837e5e3eb225d7af58282ce03419bd6c9aefe3379b4ced16fc1b3ed11f0c7b886ea9eb14603b3a04c8977ceb6255c134444fca148ba7eb50f752642e77e87df9992518e60aba45a6e1125fefe5f0acadb", + "03f0b868c9a0fe3886df5137caed794a28170790ff431850112b9a0a65539b580fd675756656a4a80940adf8cd21f9ae4b21a35e32d0911f70", + "0c3039ea218023067a5c06c4180f172ffddb05f93f51ff7508f53bcb9d4e02b02f0bfeb41f565a3142747b", + "9e19141a25dd5e934e9ff9552d52d137fa17015b8c39012c91f8fe6a2ab80d5aeeb55bb64c56a09ff043fa731b1c23353bce7c43dc31f00b" + }, + { /* i=1752 cDividendBits=1776 cDivisorBits=1440 */ + "792d862cb667d37d81783e6fa5d76d13ff59040d4e1f1d9ead7fd5140e9a00f72ae1866b2cf9cc7669c0fc6fbd3debd1f12a51c910801b2c2989bc17feb0caadb17e5b8fd055f774152aff257c3eac650f967f7125db797721500162c66232ad1dc116cb51475257e709af452fc43545245e2c0502e36c92cb8b10d2e40a94fffcb45916487b65acfa9a2a12083dd82fd005d20d847fa683d0905e2560e3efa9ddb27d6661491c16d391398499a6e017dd9dd557b2114de0ea6274d729f49b45a35edc71478da1d265666dc51bb36dfd13fbc479671f6cd609262e3157ad", + "e8066cdcd6afb10a5749021c943ba9929f8aa09fd82a87de9fc55a1ddc475e42b37f936718c2396004dd8f8827196c6a7d056714086b13ff42fb5232284e6b0e259a74bc0901b6b5dd9cdd03b91ff6204be0f74fb3ab1ff8f1d739c2ea7b9f550f04d87255d6346b3e9611c9ee4117501ec26d0aaab5ae75e80d8a9c6b259e084bbbf30519ee37718c448c15bc1690579a08e70407e8a50ad74ca09c882b2970b37788c59293ccf31e68979fd5013ed573f2b1f1", + "85b2f1cb4653130fb641aaf138b0ffbc29a4ccb4f16d12f717e73afd20a418d18bf4ab98ece9ecd23a8e", + "65620807127cbe7bec7310aa97fba36ad9d455dea4b1c5b44d56f79feebdb092a21521af657b9c8fc070c177f80683378df80fbb8963f5092d224b8972ee287ec19f1b7cf9367a654d6594b5d38ed6b308bf8be882734c9d21a99234d09a27efbb69f2ad1046f7144078de40ff1151447a58e5b9f0ad532e86c54caa16d91ff56d2707971ecb644ec21ae61592abd9f1866494e19a7e7dfedf52a10412a8bed80b4d5d426c9dfa806bb1d46ec5e5d901bd9009ff" + }, + { /* i=1753 cDividendBits=2151 cDivisorBits=464 */ + "1e41dc5799eed211d7ed6b7ff36765d182126631cd937a774dc39ed39c1dc8e858bf062ffd78fcf46bea8ea0b0a0ac966708b4b7622227886e416639fd06ce9395362d1b0f07f33c259f04f1c51d9758b61254902884e763c3191889c73fa13305e705d1e3204e8314a641041b92ff0dd6b8dfb410a75dc3153223a8aa880ce4c0a086fcc85e4879c90847ee806ed867d63b14a5374e6e201980b28a1f4c9ce38e18431a5e775a57ab6ccfb1c4a83e114a53185e4d3296bd17620e05e61a4d368e3beedbe6e28a84326accda1f10372f8e4fe98ec1ac17f39979cc16ab781d959bce3f309a9bbdb7a0ad4a07ff2f15d14d625477d2ad2a9b786177c2ebc90653c60801090ba1ecb13eb9cdd57f", + "9f5d70a3e7ec9639574e9086affae050662ecb71548fa88dd166ada1dbe63e0a4f3d5acc52fe67142bd2c39d0c801d86f6bcb2e56449dd4979ba", + "309ac264134189b0cff3f8a35750cccb81e31686112f217b690ee7810ea3765efd1e66d72471f4500a627de4bb33393815a4d92e55b624b5196bfdc958d1a4f46b9162acbdbd527a8e44424ee9c474b4fe9d94935cf3b0aafa21d81d9797df67645e2dc85b91e71734d14b6567ed4667fd485b10dbb70cdefff736ecc49f3e4e6d6207b63e23d00070e994a8782024762c15d80c558cc1d4f0ba63024199d256b5b3b050903d14064d7b35079e717e0855b7d7398a1700de9a1b0b24fd0f0324dcc1eaee419dd68f820c0b9d64982ecb5639fd", + "5d7ae07cc24558a91b2dae1b582169aa38b375898a0b040870a069a3150ad1e262e15ba9cc913a6c1a82a86d8e03cac9d9217c783858499a1ead" + }, + { /* i=1754 cDividendBits=614 cDivisorBits=609 */ + "117e0aa5b7d2de7981ebadba4d7440059f996154ae4f941d87d20654725769dae036b51c8457de94fac9a1de1e063c9b225bb065c1c1e8f4579b13d4d16b4a62d99db50c75c2c5833999dce057", + "01ce078655e0aa706ae0de50480c06172e1f3b8737e6884725d71a2cf74e554e826e957bb40f330775a4682b58fa8dca4954251ab18c3e3152c31f47d9e4a2c441ddaeb6c341f884f703f0535c", + "09", + "013fc6ecb2ece085c003dce7c508093500804993b734c99d33421abfc0966a184a5373c32fcf1351d801f857fd37407e8e66627583d3b9386ebefa4e2861917c88d2909f987108d68a7669f21b" + }, + { /* i=1755 cDividendBits=2860 cDivisorBits=637 */ + "0bffcb7045f0da268a7e2486f1188a4e5d537e93dacc8e13499162bfabe5f1d7682a02759decf0c93ed69f09970bfc9306f0f2f19aa71b1a25e8940a38892bae3ad38f8f3c4495ca5b80a4735bcbd77058ff6eb681d5d3aab2c1d48264919247fa52c50ccf5fd063be1c9aa8cadf72218b30f49de45a2604fb2be856bcadaf97140e50396d48048fbf3bab6093c5b1a85cb389067b345fa21cce02f65bfbd6cd4afe1a62b188c543e4b1634e56ea4915f0f1e69860def59768324d12fb0da3a45740fb732b1830cd4ae2790433ae7468954a5ccc9e94a189864ef2b801da5c563fa426c9ba4900cec0c902d99db0b4de5634645f3736870825ae1f7c141a4e4759eabbc4dc33f7750de4b8611077f0c1c7df3360e349d85d8b3dd6c197f901fa81ba120e1c63a2a782c4824f71b70e3daa0e31c11393853c25acf37aa2789986c7f844bf377d80ca24942cf0f4e0790ecabcfe462030f3f21e6fa9fb6bc81963b3082eb24683", + "1111ff8232d9d0711037e6422da7b77cda7a7c0c0b25018d64e07125c683e6b6d59b4402d78d257613a5520dc0289409db2a1eaae18fedc9a58b38bfb0d24bdf923b5e964e10fbeb72033399009a7bfd", + "b3f31977252feee4d7f2c8926e15c3e4de207ab99997a7bc160da3c47dcfd2e44b0200f90fd919e78ace2c6ac47b41d4249ddb9aa35a984adeacd140fd464fe2776fa56aecaf3fb188d37c1429e2b7e367c0174b1441f302791cf2d039bf5f677ecf13c03e7255aca2e2d394b47eae9380031f455a9575071fa962acc58e989c43f58c96f7268afbd1a7a5549238004490d5fd62cfbed6694b86a231c6d527a52ea38cb291b93b9e10344843fcf2167a2b05afe0eb51b24756fcd1beea2985614282c6523f3727771bbcc7b4d7558a7de1b62a8e45ec524c23251cad956ae3d223557f1b7516d1eccea6bebd1356fbd7533f8af36d34cbe6d9d5ed712aa0b073dfb242ce0c3dbcaad11073cd2f4abc1d0e0d5648ad69", + "080c6756ef22436bb5bc4d059bb6f839eac0ccb117d55e7e114d12c4007e7b81c3d7f52febf1ed05565e02a1b65635e63820da1fec090b379773de6935b355a7890ef79f927a0c70f0aff0ebac6372be" + }, + { /* i=1756 cDividendBits=1701 cDivisorBits=1392 */ + "0629ff862c4b229773dc386130182104e7eba619855bd867671ec726b5a39e93c9e4050e27df950757ec1d607f38750866c36a17d1a4c6ea1c0213afd17c374553c8f0db0b067533ce6d6454f2095dd2fbe821b8399f795dd7ac1833edbdc00c601a4e76fef6d5edf13b73f9696f9f5ce9c265900b5321adcd6aabbd8ec3085724e58d4eb75b9f6b220a83928dd5d887c63294b6715c6a68c6f8801260020e3e8c3a44e2c466a4e8b54f892ee351c9dba28e0623d355f343eb240ae4d7371c3e077cdb114dc0cb8b847bf24cc902ab6b71818e7c0d", + "9807c83542846cffa9afd386fcce1ee0ca3f4b934cff24e3cce9b2ceb3732f2f23d42f91314b7fa80aaa7fff9ce7fba42a032e3850bf1deff55bb20914b0609c8cdee8fb87541806de8d1b2b0bbbe67100e38d4b13e1c255666b8f43137ee4281843690428a217423815af932a825f11cea042de1f32947eb90624b5002ac82d7f42e0e246fb7dbc090f80ded55940e9e96294a8bb0a49014028d6f9c35e23068d0df59a8f45b5479cd9a4e2a06d", + "0a612650f4c67a94db6608d1abc8fed9db40790213420a2e688ba4f729dabb7d91a6a5f0eef9dd", + "6a71b91a8d7b747b4c04e580d189f27b858c545fedaa8af83955725972168a7d46594935d0feff2f9d53ec42cc6ac253e3387960d710c9724ac373150c0848a1f89d83837300b0da9b81b04a36c2a34586178e12ae5e796dfbd29c4a6b796286d21169e8201cf5b6e1040d9cc4dda8689443a4c31e36c3db9eb01c07a4df54acf4ab70aa17f96b0835f2e560589885c8dccfb217ea649414440bdaf9b8ae41cbd6a3e524dd25ae887cd56689f8f4" + }, + { /* i=1757 cDividendBits=367 cDivisorBits=361 */ + "24f40c8a654abf02593164a0f56eca73a0e76f6a623dbdff60b1e3f1afa087e6a02453d07548146eb0237ed1688c", + "d82c43eb0b42dcf9b623709e447d1ebb1b9242b5942f6cde2a33e96f76268a13d5c743aba74782e8a19be8c28c", + "2b", + "a49d21ea6683e4679970b65fedc64a3345de35e259c6b60f9b2bbbf6c80eb54b3bdb72a02f11719cfe4eb8bb08" + }, + { /* i=1758 cDividendBits=2052 cDivisorBits=1726 */ + "01f05d5aad2d0b54cba1072c2ebe6ce42c7a34d6b616264df333cecd0681b1e96cf7b06b8e97ee7c6c3392041d65d69b910cd9f4ea79e4357b8fc26ca88503a8a0ddfb437088fdc12c37cd1058bb0ec95fc1fa2b77ec220c3cd675d5680e1386fc3505eb5c8a2955c597873a1536785d45a369793d4e2a665bf32762ae663a492a6a18060159c6a15d05f505559798d42974d3d9ff8dcc049c6ab677d7d54f8d8625c1f3b13e018abdcfa1869f0b81099ecefeebf79b20270d775b14dd1f7d19d8edf1c221c29c17483b45bebe5aac0411a3ae7ffa5f57349ae5a0b067a54a6b35f72950f8baff36a5f424a2994ee946ab00c9fc60a938d9d6920951f1a40017", + "229a366955617f2a4b10fefea60ce05c88b97b6729fa7638487f078e6b3d1bd59110fed69fcdcca0fb359f5e85eebf6ccb458230e1652c68dd7d478f27e1bb184cc6ae6a5acca1efed58b3aaeb90495008829ab2f7b9ab5bcead88c4ce1e9cecbb92aa75aca4ceb68098849b1666646e8809525dbaa8ebddc837e42909336f79f9511c9d358095bf75e2aa8efdd68b39d884cdf3b9d126edf7cb6327a91e4e0e75a3fc85275cf0d6dbbce95f9660e82f6957fccf6a87f0ba0e3f8b9f1c8eb1324a860ca558601e04bb61937a168610b6fce775f3e66299c3", + "0e58454ec522efba976e9a542ec9b0a10a68854b66b803dbd198831a70b24daeeef8ee0c03f970cf", + "1d95c47eacdc084c7b66f59ad87fe8c24103b3ed06c884a93058ccb56eb5615ebb178aa18fc7d276125af5fd4c50d5108b0a1b3b560165b010d4c942d0137d0ef3f0bbbae906c265b9b496e24771620d27170f799adeb8a2e09ff16cbe3544281009081460bd879df5bffd190f0ded99a0e39c93295ce078a7556a7f32f9c7653bad7e2db66e51726ff8389ff029c828f3e30d1d01e40fcad7cf9db1e163d44f569f4c4446de1c3ed70197192ac502ad927063d1d89ad76bf736ef3b4e995ea6d2c6b6bee9a7e136feb24b86942ba719c7663776acf95b6a" + }, + { /* i=1759 cDividendBits=3641 cDivisorBits=2711 */ + "79968946bdcfc3260f4784c1c7ee8a4f5d3c1d0179d1171774e31aeeb060a660f03eeb5a7f6d96aa740ad8223e94bfbc608d9d0bbed6ab1b8c5df18c36c4b006dae131da0cde99ab1eef56ef3320fe538c5079f9c1bf0407e8b9cd77e38f9f4218ad3879de0082cb48fdb53c69b41a1f00675606c108e0b634a3871ab98a8ae50c412c532db397fbbc000fc732dbc783f8a6e8c20ce1fa52c6e6df3e401dfe7139472ff6c7ad1ea386a57e6b3e5c5f980c57ad043ba2f249fbcb66b82e28bff4a22cc4fced380685d5bbdda122a51db48ba3a10c7121b43024f4089da67fc0981613b070b304e947ab7281bffeea52f1fb00ab0ad98957be40a32db3da301085a1ae9b058c5b553811f133d70ff54da2c021a158a6428cc628223f67f0616702692c280c7d6af8470a3d9fd2d745907941bd4d2739760030a047d9948983c7f9163a0915f2b6bf574d5fb929474b3b2bd04d0b3643e36eb6fb2ad659c06bdc3477750e3f8b9acb8cf00e990e6487b918ddbb0906c0a246aaeef0f740f4301e3bd41e1a48c2d072f3fec0cfadab71f5fd3e3affc223fb70b711f10265db6c71f9ec69123d63de7657a9b64e499d9fd442b5940d16ef84986c98ca0b60992ef1be268b64cb498a1b", + "7bcc8c404c26b060510e063d21780564cd25bbb0b9a60c6908f0caacf5c304c0df1d7b097d4ee7752033afa6249f913500daa287e2c9dbcc62daec62d263d2ba5a38ca3eea1da155be351a85cb0a6225627c00f316083e296cf3a654bc119460564628e6da1ad451e7c88c10ce85fb8b9d3da13fc3a5f8bdd8c257e71af91b310cc86e3d62cfd7cbae4ae0720b3cbbfda0fd629514af12f66f46410457f29829654fde7a99888591418e0ea682d42a7d34351c314c1605c6895152a7df23fb3a7c87ddca15216b1112c4fbe569971679f9c60f4c65b7fcceea43e4ae64054d8a6400d91446acd63323749edcfed7dce1c85ac4a91bbbc09cc78e90f4ae7188761012ffe1a4c14553fee4babff34300f821163a8902e9672d8a4493871de5ce132ba53ebed8d901848e1bba716dde2288096744c5df00b096aca0d12c8967e8ff38ed9f7cba92093593789ca2479c66979ab1a2", + "fb6d901274d459d717ead59bc2a9f4f8601db74f77947660e5bdf836959d59b74ba1a1d11641085408816251d2494b745bef637c6a23a621aeaf1e7ccf4db24adb183d6daa9bff6c4304871543a96a3ee8b5e0b7cd76e1a3f635da67d10a2b23beeddb5ed9e3e9535b9e8582c2740c44cf7f7993", + "285b4b4b91d55f730e96367af705af24353d76cd5f9992197ac5297333b2e9f81604c14b6cb225e682b659ebe5c65af2123a5de1e2fad59de520edd598114f570a31a39d90eaf7ec3835e5a707950962bd6c1017648c5f8b12a329b38b1a395896f4cdbe4d72dbd4bcd0ec75a695ae364a97de1128bd6025820fa8c0ffb45fc2ddcfcc151d2b0b614eee325adf287e3c662d7d30c78d6830b01336c4c971ea4069d17dca324d9bdd7acc9ac907f26ce59854f4010239ec72161b87a7686f7d241da3adac44600154c0bda01d1ec69c24e64c7a5b75a015fade66839951f67bc710b0a9ce1e050fd0154a935a70ff0feab521ca8aad4928f39e628fe18fca761290bfb1518b6795f7a6119f84ff55081030d206baba1a39d75c7f063fb8318a45091736559977aad93336506084aa8e1722d93fd1cb32b9418ee9b51e68174eb117021fd777428fc56ed5fa63cd2c6b8221f815" + }, + { /* i=1760 cDividendBits=4000 cDivisorBits=3176 */ + "6f09558c7b3d725656fb73a7dafb5767764a8d4a83b98fbc4d8fdf46bf7831a25bda51c84a67b9a512c10226dabae319f37322303a19cf0b09f65a1d8695d03b897de804faa9ca762ea2089d71dac81d4ac0e7d4e93dee91dde396485a01d8cff8c3178a0ab8d99948824a1895a04ed47283dfd4b6442baa7fad915ac7fc2c1b911fd914c189b6d100b6241d439d65f18e8941ff5061e1e6200a891f1a4aeac5731851e246f1fce5d04f9dee38cdafc3b706816f431a643a7f00a905ffd7abcbbe230dea41df16e81beeff57135ab3e495aa51eefaf6d9803f9300788d2be6da787b4e80b8df877eae3de6960878b3d9b2c1d7038fa999a7bdf6405291b8ae11933d443b7f98c177f00c8cf046d2f5f7a11a85233ba4c7060483e2b1e5fd8f2ee426bd98d337890853629e31706300ec3a847aa881c890ee4eaebeb25e6144ed26b3887c3576cc9e4cf2c731e2aceadb2cdfe9634af0d646396271f602135d1af1181841d32f76ad4e20957d5e2891b93dfc64169b4123e3096e10fef51387f951e0160a7df507b55502e6ed57a082866d135c9201eeb681f4d38931470eeb6b88d275259512215d700acb4e0c4e703017b64184853c5cecac7c2cde0babca5c20128dc6fc6b059b05a2ec0c1ea1e13827dbfc40f3ae924211a99e14cf962114d649298e7cfa99503adecb9d76776e8ad4f8fdbc", + "8cb27d064c93582290063668e1f55de0ae0c3986ad3682538bc949bff19a98bef992ed7ae71b3c3c455ae36676bebb10927d7c6da8ffccf2cfd4e07d3aad0805d8d088ebfeac7766f84ab40d1ca59a97cd309398f4a1eaebf48e347de293339874745f4b4c3a8ecacc607f6649cd4af4fe764343c8d249a8517c6c10e3c4880411b5a3f5fbcbe965fa19f3ec35e96903acf20c1af2de4d2102e1f1ed19e93225cef334edf8e09d87f4200e7ad7abaceacd092a50ce8e7d6dbd5452baffa0fd2bf87cd5754f7ff694d52781376cf512f1dfb36810fc7ce8be889e9523e96b72afd0b4a2bee97bf43fef87d1f48b305009fa851f2f45d5e9e4dd72f605347fbc5f9bb2c04a0feabeafb2d8ca8a298ed861ce6c865803ebd5530b4397f84d933a93246c856c77d1c160fff911a0edd26c3649f5704a376014432cabff551563116bedd52014b358a3e33e52eae7454318b5130fc737fd1bc2f4c74ce6c7f5d454b2194e01e35bf0e61edc7561e66dd264e3cc69b179de2c3d5b00e400a89ce0a7849737cb9d8b5d4e777c94d74bde", + "ca082e1157e2e35919b947080b1a97b2e3a5a007b4d4d8b0ce52c1bd76ad8210313955c4df954c481eb658cfcf4a6ddd2e03a636fdfbdaed0e997873d478e44ff29fc61397128602fae8a13931055642df9e7e428adc9c9fe0b5ed0c965a92c0466352e09fcf62", + "7a5cb3b9bb4263a1459ca4fdbb9dd99dea909e9278bcbd1acb0d632746cb24e1b7f6112d9b34e49d15d45703c0ebd44e664bf3599d2af07482a9139fa3efd979ed18df8274cb182083a945137bc355296f9609dc81cb1343348fbc9d7ffb394621ab8b8b17ad70d8db2021a88a54ee841b313b93ff6fcd22d2499dddf91d43dcff500b05f9009491e5b8788a5b87c7f31340060dcdcb821aa063f7b8773da658236c366d3d27ab8d2086301f0dfdbb4863aa8b451cb0a9861e9a103940f12205ab5fbc24f30363f0be73b84934f980033c109cc5c4804411e5b4907061e1715ba6ebc187440d562896f01a6633673955f4e296964bdc47e4a9a42cbb63f45c6764e4bd36dae7ff548b2f9d6be308b4a2600bd9b0ec9551fc0e3900fe09251ac91f74a3c0a37872ef0e812bbff7325a5478d076b2f91e943562e769bce9448b4e170ce6d22e549f3e5e012fc7b552e1172560444f05aae0ffb02397b565f7585b875e7e8f8309bec0e6e8c9df79b73b51213c461712d04ae2efbb5edfb837b99597a8c23fafe531f949655370c0" + }, + { /* i=1761 cDividendBits=3675 cDivisorBits=635 */ + "055f896184ce8d49c461be29d9522b87e04ba483e1ffc465d32617715bbdb0ca9e6973fd276d84ebf8694ec431c5a7069558b638810a8f7e149268637f44fb40484a5b7e5671b131970a4fdaafb8f254856dad5875838c163662ba67577121165e2d375f54ee298b9c241d3eeee9bb9a8c8c0d03c91227720a1b6b52116a852c5af058afae83ff3a036426d7e47f6af36e0b90194c0e957264ee62f900dfab885728ce26991de60b77c031be89b63917d29566f5cf258dca5e30009fe447889fdc6b1b3ce93ab7a6f7b02f929680133a79111cef7cdb54a0bc865889a8c636b394ea3eb4098b7289c09a7b74caf55d61633ec3f5abead46482b48779a4febb29c5bb7db36f93fee1b1275d5c04524c3b2a8247198f2ecc8a08563e5289eac7da8a1acf7818b51562764feb8613d9acb415ea8f1212c999f9089daafda33c81269811572d5907b6a5d6179cf1e47e932e028bb610ae544fbdb5990f45b79d2b313e8a5fd9096a74326132531595721c9271c331d4d8922ced3ece70a743be1118d90281d98b81f4d69fb4110b4841fbcf4420d149bcfe7582cfa9cecf23f5fff4dc5689e8b71fd89ac4841662c31fd316e40466ccd46a04e32c3d7f38eed483e809a77c0e5c0e9e1654fef927", + "029fc25d9429c11e76927cfd1c178754287e77cffffae2043fcd965b6ecd59d38e1791270e6a4f417e35f8d503c2bf551aac2c6088fcad748ec403dee334c855b084a6db1d3e9b3623f9e6deb61fa2b0", + "020c33a70377c16edf039ff4684397c2851c5b3332ed9d214319f2f8779ddd541d883b871d02f19facb63eed72d81d07a52b9bf51733ad646baabd14dce3415f901a2231d3f2bf91c49341d19940f06b3b2cb750604f87649a78565ad5816b7e1a7ff4c4a18ad42bf051df02ca1974e0410518c6aeec33cc2d4ddf77a137396d2ae6850c3e5c4a1ab6a9ee5af67771a3d94070cdc887a46aff2851aabeda62ede7b3fd69a3d421ab4eaaa9128e3b221088fce6bc226fa5d1839e9651e3c5ab6b83f96b99d7847ebe698d946374aa2938bd9c7eb29ea2a9c006bef089b881531949a6dbc58089fe787c39245b64eaf14b9636f8d2786d9bfd241d4c90690a94827751d846b628917012c6213bc402194ff3cc1baf363672fcb3cc3c9c37ebc5a5896efb45013da27831fe5c6d09a05b7a6785d48f088398f6ab54f101a28305f06cc6b69a04fcbb8acf613879c92a5d05644eb06d2b35d741f513eeeb0f06a73cab9bca43e491b04a548c3364ae2119f919d58a08eb352570689797dfa9", + "02955be8751f26380195ffd2e5cb33927636d44850490489d202604d1e2788f723938995861cea4b57c5a6d226bcbe9518ae25e2551c8acb5e4922d91bde8e078e162ceafa8b4b6c99b8074bc59542f7" + }, + { /* i=1762 cDividendBits=415 cDivisorBits=243 */ + "6b5e576a8880b39718cf30f1c0cd2ae119f688d21c5778223e07c11c2dd1b63fd1f7ba25eaeffe75c56eddd0958d1d7d71dd2783", + "01a484f3596174e5ad7ef6267ae26447a1ac4250bd6a10089c4c612ecdca32", + "415ce396ab0957d0fe87d5770d3fc6942f1077648f67", + "2c67707108268091422ddbcc3c1a92c4abd07b6214aa876456be6f96df65" + }, + { /* i=1763 cDividendBits=1484 cDivisorBits=266 */ + "0fd7ee83300e5724a2ea069a6c5f0d0a8378138ae0c72488db99d3d392322c013b5fd73d90a14977fc6978e1a3519cf15f3e23fee5ccbf422f50746812611534ac3f3a4ca4036d0204f669d793ae85fdbf56540f3b6a807874cb87b9dd87e12c4a77c8af6ae53c249a2f72b3892d817887369c5e3dcc591fab6d92a1b10e5e6d251e96bd702b65dc89067f22996e76ba5f5b6a57eb48ac7e65b4f8e5e5c7278e71f1172f730c223fccf0cc983b067c0d8b2efde8339c26bce60b", + "01a13acb76052d64a6903a75e886f18f2e4142ca98c1a8065d9abcda42d1f01e45f5", + "09b89a1171f83a72e71cd2bd14198aef6d5dc499faf31f38a330e0d2ca31124f5e7a64e0e919419f5147dcbd09fc4a6ff5d8a03b24d321958a3fb22d9bcef3858098038113bcdf81699077b05c4587829dd41769e9870fbb1829ed3544c6dd47a366cfe502eccc05f4fab9b783e67ba078178de2a5127430300c8dc04186a950afbadac41889a7b46af6f31c5226c782b4f2688011dcbd93da", + "17942db4dee2ea1d1195c7bead07bb1005f53bda036ee8cfb6fdcf503718e8a469" + }, + { /* i=1764 cDividendBits=202 cDivisorBits=164 */ + "01ed663855c0ad62d27a6189da8e721503f3967fd707b82c7a5b", + "0ae4648ea7c56205bac6141826e01bd4a7e8d808e6", + "2d4c6f66da", + "08c357cdee7d7675de5b1124d6ac2a308738ef427f" + }, + { /* i=1765 cDividendBits=1099 cDivisorBits=650 */ + "05ff3daaf181930d19346a148105c4403ab6c5e9ddfa1af1695c941034e1f0e4c9a9e66847869bde950d4691330b1d6c34ec136fee4cb4b47a3705d6a35425979be08f073c4e4094b0cebd9081c83f7e5eb8d058888c8813e6852d5750b7ff0181429679c70a9c81de1a589722c367b24a9abfd1c14c55ab60e2bea6e87d39936c6ee138a6c9bd1f9a99", + "9c06346c66ac719e6adaa40f12730c1ad18976bc12ec7d6b24a158cdb4739201883bd21bffae6d00c9c4785d76fa10d0ed56e0f32517d58c836d97ac9a8fca57981a14b1bf2f3fee981064f831bf9047b4", + "09d6fa719fb920657783794f798a9a5711f4f9d1fa86458abfb685980812f7f81cd659082abdd9fbcd088215ebe8d89f274d649abc15508586", + "17a4979533330706a320ff1db58ea65529a2a6da9356539de4d2096f29d7e962d674cfc841df6d719866146940def7d901e773b69c23df4c1b8525eb4e12c1b19c9632622e2164fc4993c3411156198e61" + }, + { /* i=1766 cDividendBits=278 cDivisorBits=89 */ + "3b3926c86d728a38789f35e05e6be6bcccb1a540a9a5e8a9b3763d607f69516b7814f3", + "3e3642376e71d1066287ff", + "f3b39c5423cb1748d483f995be656a301fa09bb75aa8fab5", + "1e4da60db15f89c9a6e7a8" + }, + { /* i=1767 cDividendBits=441 cDivisorBits=333 */ + "d610d0719b8e341bf7de9366373c4881f115ffd26434f193401e926cd6d11f328501cf04ac3a888aa06291c13b4bc2bc907c56ce96e675", + "0c2b36d02a2abb03a5913f64d111ba4131f01f900219b074f96d27cd219ae439d99d874186c7f1335336", + "1197628dec6beb73951b078cfb47", + "0a0bdb7b6cf8bfeadfcc1658d05b72441429739803011cadcb0b44416fdb4c7b1d738a338d5b9b3ce07b" + }, + { /* i=1768 cDividendBits=3013 cDivisorBits=2553 */ + "140d65e74120d81e7306809bccc92a2118cded1483c0f913f9b19c3efeecfcdba096b150a274c8a7c4ab2c059677a277210d69b7dfb362ba026d2b8a0f8afeb3687cfd9eb0aab41a5b0e576320dc967b8301f20c994fdba972af42ba5f71e6249dca7364021bd98e489ac76e3dcfa4a78050be2bd67d3240674c39985927fe75ac443b720188bec6ccbfeb926e6ed9c7b0190e183467c058fcaee8ae6cfa088d50c3cc2133ead0639a9de17e385148e61af7cbcba36872a928b5d81f31c9345f2b6bb5310307719ff82de7c326673b3df318cb4bb9d181231322b66b868b82515bd7be99848de57959b6ba3058e3731088d59df71eb9e778187747f1987b5ae52ba45066514553cee1b41bb64adbe993c3d06fd94dada5b4b84b97041671b81bd22183191e754ad77c0f08118d0120a00d1d092001b3238a778ecde32ac5bad96c14a50ab35b358bf14315b45181e198cb9406aec1aeb85e9e645841fe99f40d0dca0357512cd08b92522fd057fa24372fa36047a52d9d89aa", + "016bd934dd0b5eb988c262fe869b678df6c841d3441a0481141e003f268985767088825397c49fa210379bb8cff4c2b81b7ce65872ddd8f12dd1b44fc82f21f9a1f2caff61eaa5e4fb0a172ecd3d1b2bfd87bd9d6e03d8a401c08ac45c78ef40998097631a4a8aa79aa5bd8a9b9d2a683ee246f2dfa99a82634f01db2f507c972da66a2ef3d3657c82d63c09dad16d23e8b2fa21211c1f1f7d7352ca1dfac3dd498a56c62702d86fd19721255e4c89baed5a771bc225ea5a1b849363eb2e2476a9dfd0de4ff188e000464ec5f89b8340876bf53d68d2aa34dbd1cd74fd087cb9dc8397dea7e5fba549fd20e08d03b2271a8d8cc365f127be6a70cc35492d77d553484bad42c0fb298f02c921d0c0e8b1cef8a2b2336989743426b898fa99fdb0918d9583ccde180e19e7a5866be1bc5e723a8242feb7a17ca4667bd178a2e952", + "0e1bce398f08ca23f9b6f77c8b08c09900fde0946ecf6903f75e86a867f07faee9c1faeaca46b3af561e3132a01c72e7469e06cb0943bfcb0dcd", + "a9da4505c0f7c76378d0ecd6d6e2d7af5b302dfa92279c6c3e2b83d48bfd2badf262a176767d98a453e4093635ecac82210168f9980434a6cfc83c50ae9faa0a01232315e72860a2de07dee0eb01c067de2a7d4d6cdd43651333cf10378c95b6459dc7e5e19f3368b7ba6ca7125c01ac29b6f2b944af1b5c6d894e757eb2976e6231758f31cc2b1a051b770d11faef4b0275d552d11d4809c5eaee49e91ab6c35051973846658da6d7822cf136ee2103dc6602e26d49dc1d8612565f64d437ba438869db22f0404e8476ec4d54e1f4c70e358de980b12c669b0fe3f09f5b61dbfda2919a4ce0dcc87c00eaa748c235e3b03f456f370d25e7a0e1876ac08692ec1898cbdae4b915bdb7077c03bacb3a5f65fd4a3524bcbc63f950aeb0a659b7d5ba4b5d8c65b5b965910cc305151cc7ba9ed4f3daf4120e140c560e1b498900" + }, + { /* i=1769 cDividendBits=1507 cDivisorBits=495 */ + "043f447e771b0c4fee13fe464a5988b28d43c635df714fd3d0961fece8d30a7e9755d07b8b8eb2fdfcd93f43ad81a77e69f1d195f04e49f81d59aa9bd243a5b66ef627919598b4c06b7618c0a4e993a8db2b6abb3c2823003b5fd70904e50b82aad7decd319ad5d9f33d0cb5ff9ff5bc85f08ba340d03968b7b0caacd0db5b615fc82cc1b55d6c0d2fa0747d0e308199bc9374e4cfaac3e952c5c8ed6ff850fa87aeb6e2554fb7fd0acb04d149b1566b162c84c97fc187570be6541c3b", + "5dc76ea4de48cbdef80aea08262fbd79db53390e2b0eee2595483d67a5e0d529cba79e259a77dc5169a4b756f4e4a0a6b47af7f1283a4e62dcab7fdb98dc", + "0b980bcfc90d1c9232f67949bc9aa1e70cf217647fabdda0e9755a4a32cdd42285608cbb757c27bb4bd77428677b88030bd6d129ad415af08f7e4a35ced83957008450665150be777d133dedc500321654191539c7997b5d2bca13f09ad3eaa2e039ec2b441e46c1c3922d32add9460405f6881d7cd7ce871e454558bac35d", + "12cd468b6dfabb0355192694c12f66ea32530f5f80c77332bef7996b4e9e1ebc4394efe8f0511e33f0200ea4e8cfdf6f3dc4c9aa90dd1ccca8f57e46004f" + }, + { /* i=1770 cDividendBits=1015 cDivisorBits=937 */ + "7864ba114952d1b8d4ddac9a315124b061015b755e026a986143a468b070580e11b7fca061f177ca14421f8f3f0f796cba7656d3cc169c185219ec95ed0d6c8de3e6ca9386c69cb2e43a666a5b401bfd27ea95f8805ca724d58402e0b57a4b804333fe3a19efba5734d16b5a10e8bc7e8a02977c09bc4d8a8b567e2138b2dc", + "c21797179bb3835ca63b72eb0bf7a111d716974f90587c4fe66d95a7f53b20d22e96dfa81ba5f02fc86bfbaf5f145296a865cab1a13c9a43a93a5bc62d6d2ef38a36c9b05c02e0ca6a9a00aec54dea3c7243e22e10d779a89c0615efeafead485ec7aeb580ff4d7ac6e5c283a224630c9861ee7cfd", + "9ecb5731f8d015895024", + "aa41d0fa65b7dd2f9d5ef2b1f82296cc8756f41240743aa02adf2f31684442b4f07d89581c7ef0b906efcfc879dcd88af1947524597bcf708a337dfe590e3b3f7f2385e97e9f738e185635a05a81e7186b063a65ba459e92ead1ed7ffd88ab141721451e18f5b4fc6c14690ca9b8d15404303b0f48" + }, + { /* i=1771 cDividendBits=3067 cDivisorBits=1583 */ + "05106a2ade483fb60ea23748e48929b99347235bb7a50e49463075e882da2f1b2b964f0944342c024113e53454ddf97fe6bd4d10851b819d58207756e88de21f9f19cb111e79e4b9ba2e5d02d922dff252b022b6968b6d7338971c8b0fc4b8edde6ec6596bd2c3661f8b35592d762a747597bf1eafb25b19f39b8ec66c3e6e155892566fff3c2f00dc8333be9bde621255e7d8ae5b203a2e1064e89105c6330d580769e401c160858e239c88c2b1e723f941ca5be200c8c84b874b38646a56587e594b20fdc2006a8f5aeff8fb894a14e1a4464245479f53af59314290e291cb269b25f9a1e0b176ec3561b2066950a1ef79ebb45690e40134ba3e5cf9788db310f73ec293a47e64140c0f6217760e4e6a393c385edd4b3ecc15136479a1920c531d4742349e3996f1f86bcf4fcda556c82a90a33e830e8381f898e3d1476e692e639b20b929f87b53e60e8705b9b80cd504c90c266a6fe5c8e298dcb03e2ff1988c3c591bbb6972e94526a3e2489b5cf45c627fc3edd12e53c4c119a28057a8", + "42e06cc03c79f32c77ba7906e19e63a0f6a4d59195313faeb4bca0ac3e9da6d40d30736bdc5b54edb6e95f0af5e8dc771ebe11cf6859e48c5c4f92b5cc3c50b11c17f4f27821988a74a19c2ce0beacdfb1a963a698e3751cab47f58dc453eb91f26caaaa934d5ae67694199153e90f410b232526aa607fb1247c34fa8c7cb70292c0a82b7b94ccebcbbdb32e55ef328140a95b4fb34f35de31a1a6686f262c2e4616ab6d45d59c9096c8c4d0191d8616c78ef15bfbb63ae77f8dab6ba10d4019a3b37e734959", + "136299d1ed473579caa29c8e36bec1cf82e4dbb3d0b1cb05a419f0e1b15bdd660ad4c053b673459613d862ad8e0c4e4e53121fc2e230d3177ec6b9b9ebf4d2106b982deaa394ecd4acb490fbb60c62f2b6a32ad9397f8ebe7d3b116fa3cfe4823a712940a66601a80d4e352d69f0d56c9f087f1fd3b3ef3cbb21a30ac104278d8d76b42d5cc7abbb08459de13ce5ff64165891eac642926f601ef5e07f78eac0600160af89297cb5916286e5deb5ca6903d3ecc3c81931e9dafa", + "11eb661681e98be2335a0d926fd9473f631c00ff254eb6d19bb01cf152a15d2d187c6ef6a48cbc8b3de80b0d170b28f8f4db8522d6329bff7c58d50a9e22cf1813e3f268345f2ca8f86b2b1c3a5802824524d0e0bf0d14cec0d8131cf201018fb23710f2860f279fc06bb1ed9d98db2dbdcabc95f1d7b7bc72cf62143d1e7ff73f0159b47538ad3eb0ff7222d5c5b42af0f154fda43c9d5cdb9a19fd0fd43e454f62be6c7b1a3f9162a2a7f6e21b4ef6eeabd2b8ff67e2381e104045b1e1366730792e73ecbe" + }, + { /* i=1772 cDividendBits=1885 cDivisorBits=526 */ + "9a6f2f13c3af5a6d0704d054317c5941e39de66c3b9c4bd741c5673c9e94cc76bc0384ad3c08e428abb5ee6e744982db40d9fb5529e2497d9c7fbb76b8c8f460bf214a26fded485ea891c75b7d2d6e11c10a942279538faef657ab1c8b1a6571289a03c38343aff25e563d6fd6862d0be859d87595a1d67f3bc0c58b91f0a4d3b150e22104207fe3ae692887b41faad2ec486ef8baa539faff7792cd103b90dd5637440aca0ad96c6284a39e3cb4c7dfc07e4e273290dc9c8db2a7a42a062877740d75d415ecf4ff9dac61a2aed0ea752376578b105d6cfad3849e1a99b9ed80b2d79686436de5a9901b58", + "380d57be5fb7308487a6a34a33b4810f74828ab01e91d9215c235c2d9205cd2f072fdb60929b25359c41fe3870a89824f5873d57d4b324e66c3491cae34beaec5906", + "02c1543716152430e4c836d14f6bfbc74832754e21bbc98514662565826aae66c7f57ccb8de28f1b8cfd38ea4584c8bf7c54d31c8e5b01ba014ae2f95a7c78d2be7b2b8a67875ffb9703f1375254625f04643db512cc01569b6f5f051167d45490d900696478de5e7bd59199adf5f5dd80777d8b3da6a2119364795c81ab91df88fa447d4f88248235b4c91ccb909d1c52874dc1646efd711045be9ce2c2725b15c7c4172e178c86e101", + "06160c7cb0ec38d71f393155120537b00b854c86510eed9f2601a8757d0f47e2547cfb4b02e9911a1e91bb2d4e3ba38ab6ceb78f1559078921a6f9b7853023417c52" + }, + { /* i=1773 cDividendBits=93 cDivisorBits=73 */ + "1dc7e5c048d440f50b06845a", + "011d47b75e3f48b81584", + "1ab968", + "6810ccd900494962ba" + }, + { /* i=1774 cDividendBits=3045 cDivisorBits=517 */ + "07d47ad2b3b2fa859317400f18dee88e2b9751582f75a2bfc1d90a717f5c45954e508d232e86a8393c98acc59e13b6794d2b71c9d6b676681ad4a4cc1d2a837e4f565f0d40428768ecf56f8b931e2e68a55d78ee310f547250c107cad1dfc3f449b7580c07de158d54734b3b9637020a43e2815baf8b68bdd6539254754c45ed80dd5bee2471833ab49484ef8883d4b5e6cdd3ad744fdf358f6f67589c4a9343b0da3b1de6714c7a3f8dea2bccef287677b84ec1b549bef7d9804ec043ff508ece6980d102b0d354bb4bb4822d6c18a7fd142f9575135b3664e9157df425770bc416214a519aa6c766c7e4dd3ce9e3b134d25f2f279249a0941ca7cfa6cebbe95fa783a65fbb4c93e9c2f33a0d6cffc8accd6845b04c089771444668db1e949276c6a8ebaaaf117823b4001ba177ff609c10cd56e29e53eae143ac30a772bcbd25a5b3701d3c540b104a6b36367f2343846b72f7f52863ed2691f487419a0b0a03ecf88bf5b29192e25e87e0fa0adbeecf21d8ee6d121492e7aa3ff018", + "16b27b27121d36c565200ab8d446dd597cf0728e3298e5bd307f168c0c6f4a37328b4a3db89003f07a2b068c3c2705fbbc26e942a198c7552c23a16146d4d597d4", + "58506248e0aef34f22b4684e5b212ec905375e31e6b8e6f8f68087e011cf7e599a7d70605691095a4389cc25b62b5938df9c4412de9f411ff5778e2cba16c4578408c518a3e9a87e176ef80021f6081826c38a644e02787b095dc3f315265dbeec48339952f993ac35171335c8275f4f6dd6d6dab516f54a89b4efeb9db96f76030d6f748e1b49ee4e8dbed9d313cac00de7994a296e30e81ca580c0cf40c218a4233fbe8848396cc08b5edfdb3a4fd501c91effe4a07be9e00ff3ac971b6620f0393b19318974df16d8d6a8365e979655ec8677a06a6d72a0d9c565611dbbd953648332b32556fd3eef798eb0f05d764bd9d5f5c6a229ccc5767940eea67718932e58c65aee90314635b2637774952287bd850062c182445b518dc90cfa73070a50f243f9312c4bc49ef970c8d79469a040c71ebce0a885d1cf89e0", + "1109856882c4db34a27265511477acec9dd6e871820fdc31464fa96467e6ba2dbe2cd92f60325da10ecab7b682072222781ac5f8fce30f861ec3ad123948aea298" + }, + { /* i=1775 cDividendBits=1801 cDivisorBits=579 */ + "2047cd71b02f2a929210c7fa5e098f968591910f80616c82b6a88320caa6ea507bddb39091aca295457f0e973948505a53d95f4f1a024d976fa0eca77ace6f78e01f41fcc435e7454352e33bc56cabdadd7d975fe15fe5e797151e3d53201adad597d031ee59bab4b8922802afc5d30db0007e30644d62dba343d58b0bd43d479a29868572af23ab07965b605393ff15045eef2e1937807a0f4132f4d695dd60915bd73d744483f44711ed274e7c018e9f9b5e931aa426ff9586af83c50aee3e752de4276c914fc9447fd8d41cf11362bc22c76dc7e00d92e487c6760664963244", + "05b9fb5bd09a3226346aee675c4b6d24f585b1697662d6af8d04ad4cb5c64d99e4934516391e04473953637b438e406e2cc01cf4070c603589c3bb02728e5468ea5777569afbc8e411", + "05a3153c56f2b8637033a6176ee2751890279dcb967a15ceaef9998977b23e8d5cb5c9a698f004ab95d79361652f7256cb7c0273ef7764ab809378530f802aa59178329353dea98d6e5d23a8c62c066c0744c83e6b927e2fb3d157e821bc00eb2a2da9dd9fd8f314246ddde0c0454d0c24c6c70bcbb9db121753768c532e529550673fb6a1a33b459815523e24b8dd10f5287eec8ffef7bae7", + "01989b85f2899094d36a41d653a8d472ac7a6bfef15841fe35470e2aed6cf3ce069318dd41332cc044777cc8fc815fcc55911da3a182ab3147375010dc0975f258d0fb62a152350ced" + }, + { /* i=1776 cDividendBits=1799 cDivisorBits=638 */ + "56d8e79c413164434ccd935f0ef89273f69c667d73a1634be956a2c2e685ffc50fc097e7c64335327fbe79985a27718ace2c93aa381989fb5ac021bed1176262374d6498e5779fd9bde527cb30e49989e1ea8ac8319d72d2f994cb377004c3bb1902cccadb4acea6652a85dbd2292d662191e2b977117baa182c8064a074c53cf3f85451f30dad5ded5ab56aed9bf7631fd2af8251654624dfdaccc8cbdc99eaf38c806ed9bee365e8164f08327759f6429e753e1566f799d46db4644d04cea6c1cc567b4fa6fdc004d4db67f69e9ed4e7aa4ec9603d40e8f31d8967622063c05c", + "08cda5759c6c6357dcced64e40fe12b484f2c6a8f9d6ce465afdc4620558ac0c95c1c11b25188db0d11f1751e8000ef6f204d74d0f2023e191dabdfef8d7f049a44e575ef352cbbcd5f74bfeda37aa2d", + "09dd8485cd9339d3af06f71fb73d10047bc5d7b72149022af9730024d985b4f3bfecde3fc8f4431d9407e50815a92bd8b48ff8691e485b6eb1390d6d96ce903eb6135f833278a10ce62b8bed1ec4cde33aea02338c9a237a7d55afca15dcbadb45e3f854612cbe163c008146bd0941f1ce21d5414ea43df8b86ba85818dff56053e1e7cdfc4271f22a1a236a1a5b4433351b", + "0313c67ca95700f3267198567666ceefcf3a9cf3ee55c03413083b54160d721fae0929cbd5d75afa0d5943484d26520c14c483e2b59cdeb9d77c1d1b552a3ce8d71de2b52cca7ba4ad484e09bb527c9d" + }, + { /* i=1777 cDividendBits=671 cDivisorBits=549 */ + "0cd3f1d491e19cd2b187543fda1331f8d862804ee52129760bac94d7a0831ddc5d6b678f65b33e6dd52aa0beb040f43de2636e5c96f0e990042038f402945c9e67e26b273986e5babe5f6df57a0d2b3122c60e52", + "081068f61ebf97b09696fc2559fbe9773c531caeacafc8777e42e6f1f2005e74501896edda1ae107f434f4f2e98f760a8fcad8d909b2f7edd674bee56dd3a30ea6399dcb2a", + "01973ae5d86f0684f1a18b36e21f707b", + "ce784b6fae049fd2f085245bb901e2b8b063d9e40d913fd3bf2095daa6dcb5b5a18b97519354942c1579db07755570c806e90545d81baf1195adb36bcb4b77cbbcfd1124" + }, + { /* i=1778 cDividendBits=3441 cDivisorBits=1571 */ + "625004a9ebf3728848d12efd4976581a83d3ff878d6c7fa22a48e4fe01dae0464765d9f5680494527977a8c5a18f5f5d716a11cbbcce31033b9ea4aff4ca81a55c6e5a543724bdc00fa1573e70e75676cc7e7aca3236aae0b4f5693aaa18e1a51b4bd8df5069ad644cadf3e9a92b695d41dfe282e3a63e07d572cb37821e345541f8d83d35b13774cbd4aa2cfb68a03d5df82936eb9925b166cde83e569f051588b2e5033c36624bc8a04d7a56f3820801337cb4a87336132e348e2bdd45b2b8b14dd250a0d27c92324f086a60a10bcd3def36c926e5629ec95e0003fe593b113fdfb29d4250d071e3345d421301f368b89f59a359d576956b8153cca44c139b31e770354e8af90a765f24f36bf920ca9d9988679d0d3c660c20ba71c081daaf989acc5765a12da921ae9d5e96e8ba57344c62a908279633c7449b8b874b5fe6a2c4d6376732fc3d41893e02c0caed86e42c78f533f842a5dda16bd6f086b94f4d346a5a283ce9606b614ae193576914ad35b16d5e63a454302c19b95f3c40435c79b1a85bb03521493c6ae92a0f644af1354a00e74d7dfc504616807fa5becb882bc1e3b5bc06d1fe4c0dfb2086", + "04dfffb5048cff6bb50305645f464ca989a21ce3d7b2652d820ec14bd7f93504299a2a6f4d26b4ff6ee662303c44a683f6a1798d236cd4aacd7f225dc7c505a641fa835a39d312cf69573321b3eac72d2732b0c88b24aad447e637ee21bfe63cf6fc09045ca195ac1486ee346898c59c1870601ba3d212c189a6ec8fc0e7d3f93b2b066270e2a9bc43aa95703749afe3e91be2dccb19d7a007d01c143745bd3d28d413b288d1c3ae59089a31b7c411445f43e25e0138dfb1015983342c68399214ccdf886f", + "142aacd5c1cec04ca6a37f4d75b58edc9a1036b8b6ec5aeefca0bd8248b1f2b0a30ecbcff2738ebb966b7c027125e5e55c9ab0c3cc391845b72cb38deed0435152af619c0cde8a9a053da126f0ee2b6443cdcda69f3669762c56b3e693b9023c42e7eee083f645c114bd4c8b8e3e77553839ce21a0f66224126dd65b737e265cc6fbf3c1f0468c2f6f671ccdfd82d41ca8d7651c890aef1ed255018bf5e103911c88421461de8a8395abdd9ea55fd7d7abb9db4722cbb6436ecff53911ff3c4c06115639c4b3f5332f1d3605f5c06afb6dc4bd0c437d8e5ce35a913b0c5ef2dce9612bab20b80d47e9ec", + "01c51431b0c9e21dd40fd7c620279c22eaadc404259231c92e63b73d4ec0037555f863e90e5d7d7829dd0ac5e66972041a5f1aafec42e60292822eebeceb4367913596b0635445ba0a40cc37e35e5cefaef5dd3101dfe979f03d434bf0bae60067aa677d5a6ac16e3bd1bcbe1ebda82747c7827fa029def85882a6e278d2928231f625389d33344b7d14725080441c86c6d5478c8a2134ad4fb8f4b36d39fe71268d55ad73ff2887af684cd73ecdacc487a4075cda6731584da9a1a6b400c148f342f35332" + }, + { /* i=1779 cDividendBits=2926 cDivisorBits=2731 */ + "2546098b1366f64ab15bcd7422a206910e2758c4fe0fdb7fccc5476f73da6278242ace09b6984856d978a39c74be89440c5edba3ca7b5a9efc5736e634d8f24c0db51ad669e15a0b9d321f8294f88894c3f5b557fc463f26490de71c7776f384d6ebaac8fd8779b20c6ba5691b0424d54d6ba37deb7355cc230f5248235d548c6f6faa7942525e42fa2d22e3fa693b9075798e8e5095c62b55647d8f12e06aeb8d619ae28f1ec3586372d8988b53ee1f2a700f6408baca2bfcd1da11cb495f766f7976947722a4e2009f1b625932926f3b172802dc13b297aa3fe603f78f95d2c607b99a7fc55294f4f904f4c9346e3cb832ed780bcf74b8ccc3eb99475a147bd29130fc6dd9a0fb5e968f9f2d0a7c2f286397b2fa8ea2e5eaa9fbdc619afed9d3681c3e0d9cacfc2be0516e3bbbf3b79dec4f082f2c3b444373f865857eb9f29cb1404328a5ac2be590800d9b5d6c9eb57a9726ddda05258e45815a450bfb396bd7415f66d6b2ec0f8cca66def8", + "02e931ceece702d842276117917cfc086addf0905a79392d22af64b63b16910e615c3a66e5f3f63060dbf3e5d1b0931ee61aa1313370e1f44575213d77d83c2f8c12220f3e49fb4fa8c9f59828a773e4d502dec23e3e3dc0787265828b2a02ea77b976f4805830ec8abaad677b60d31c55358af57a417d018e05a86246bf223a5e413265cb9116b78dd567bd4035039ea035496a989f0f6b2ab520150d104672e7f24a65d04e72842bd02740bc9d4f6966b7718f50ef83be9b13043815ea4891d68d168aea92d25fa7f8cd20984ede675c4972a67628728df1be381537bf224d54b42f346a7e57eb5b713239f1b22a06625ebd829cb1b907e249aff58a99f9a9ee703818972ec7b06c0a23620bdaa4bd42bba2c144f7df2f69cacc281eb4b8e91654eadd222b790ce6edb5e020299dea765ae5477d220f6825a49414011c28d752c607d1e80b1e46e06547c894e1abb9a2c37ce9789d", + "0cce04ba6e1bfe8c0a51a4cc2079bd7ad46c1cc5e30c4a0884", + "02485c63dc20fd65cd1707f1d618030fa4c10994c5ff36f6301b444486085f9f6920d500ba5942f77cb3812fb457fb7dea38c80494d977fbbb2ba6fa58e32fc2652800c3305bff5af8d948fcff43102a0076a49ae0ea9fb2d8256e7fa37127c8084f1f3629280ae9224ee9438599280e4572f29da5ec6404fe9a16833221636830f60de058604ec4ee8224da25a0f3d808c380b1b4f2f48e130b5d0153c0847756746fd6a2a2815202c4c2ac90a7cbf3869c0a451b1d613ac3533135da438dca146d4325957a6dcfed958efce7a80db201acc4a24b82e8a87a951ee84b507273cda2dadce202af1ed3c57cec9fc1bc58457a624f03d6f72b5bc2b0e1f235da7e75346ffc5b657661348c6da56403452f7251954bb9ac622fb44bb3c1b33c5d7573da2f1634cec16d131e2485f836cdfc1e5ee0f601fc8c7fb34aef262813a57c40ffbbfedd0633edeac600579eeb49be357ddcddc604" + }, + { /* i=1780 cDividendBits=1109 cDivisorBits=756 */ + "072f2f154333a7cd16b2757262291dfeb7d9c3d721b8abf0d76e89af56a8c50f7c6810555f5551fd24d2a723bbce355a53a995e510f5efb3af471e07bb98259461d7fb315517f21f5d336ca7e604fa6f4a03bbfae0dd10cd9f6d1d4b2f27340997e002eafd09926824e4ee4eb431f34024b07a0738a302be63f59c0bb346400941a5e5edd71f66643d7f6c", + "019d31c88af0a61d2feb25717b14dd1fb1962de036db7da9e7e0dbe42ff6e5383c912b248d3af5bc373b09ec7136a491d6362bb7a8495315fa4a894ff04dede4061f9df5fe5b6ac2aaf764959a035c7939903a468428bd82184f61cf055213", + "04737d83c745436a7ec782319d639213b1842a50d72b5956d2309c8297fb35a8c76e1fd7b3db117559c20ebd32", + "5f12b75f347426ba280e130aed1819e01981f86e9e89d672cccfa2952137ca653da0179c03f3b925fd4c6e0e2cf01bbc2ad181beb134e36c085dddf0240b4130f0ec5bea5f6cc6c92b1f35b26400058396e83f234ce200a1d65d249170b6" + }, + { /* i=1781 cDividendBits=636 cDivisorBits=67 */ + "0776380e114199a32e9417ef7a56d8354096ec92543c9de39807e41d5301afdbe4042286811e0218d0df259eb55e5c35ceed93a9c2425cc434f048e30fa3033b6f4bf4c95cc5e0444216a25ac87f984b", + "03c411ad0f1adf4a11", + "01fb3de245b45da1d196c7b3dbb3d19b68b9d4b4fde3109d2a6f10748464c1cae90e4cad14ab9a28be20c50947263400faf71fd41f248cae7720a73e68bc13591b4ab49103420a14", + "030846130faac724f7" + }, + { /* i=1782 cDividendBits=3128 cDivisorBits=872 */ + "d87ef04a1a2c0f262329c619d0db58e615437cf2b3d01ed2c040cffcf85f6eac68c88669ab1098de3418704025f1b0188b6d299889277b8a7074c52d36b4e1130340c6e0b2b846ecb6cb5c33e5d7675f0aec1964f121b7f036d850e7904410ab3fdcac18e126171d4c1251d3230d9e9161c2e2d61271d05adb3942f7c1b796047d2ebc090e7aa25cbadcbfb727df8988fcb38d21adc7d44b58d7103acdfd6f15b0cbb25ac1f4efce0d643d8b1efb17d97a2cf86f135232331cdec004af5a3cb4bed1091d9ba7e0d0abb4096f50899d87f569fe7bc5bf79b6d6fe4c8b0e27d24f1c90e897d7c6549a22f919e055cc58e8b68dc98ca3b15bd6818b5be7b56d2987583e6b6e68c55d9176d5456cd4090a858d6256b04b627e424d100cd92f12db7cf164d149dc9217ccf72dd9b2c85c390c6ad3d42a6cc9def0cd6d47f493dddd33e66b45fe5338db9c9b4ff44686e7a4610d295746cf0f44047284bf8eedf24c737d3432e6967d3504bb9798f742581e46e5e5935af257b9de1183bf40d251d5bffde615f187b986", + "356ce7002dbb476271ae3648dacd01ec3a2ad119219801cfa3685d84e08cbdd18cab53d74c2ef55262efb0dff2993eaf916a7b8d7f8bf51c12d1a2434f0db9783527e3aa775eda780c90b42ad516193bb83383d56cbd34b3210fe22485b994a076c78f1d8a40ef06543909548c", + "040d63a9d3929ebc2a1527c09d8ccf34e9260c64fa47b2acb995af6d91d8e2ede1ec931f114ea4e914a913a89084e148b30067e3ed7c39d6a876e686a40688b2e98d7029d9d733efde83bf770d9004926e50153283afe1fc9b998e7868f9ec7afdb5219c00ba784c8ec11f7b5cd3c060db60005d571f43061baded45a8d6da859579eb365a443ea76d21c350dad538c5fe99018ab8255196b6a1816e5ada76341423fae572a03d58c7f6a22388d750c6f104e41271d1d529447c2aefe252dbd499b1a01e8194de50352d831748e29984af4356d15b1f83c4639b1498087a948961ec98471c5895e6b4d497fa94ce396379f58b7d32c3bd80a3246a73d67d8837c9c4c86502aa33f1bcf69014765bbebe34430c9104456a748ce954", + "09bbcd33affc4ab98c77a6c0c5d8f82e34f023e5409d41870472c2548bcab19d344f282f4d35b97853dd69c858b0861da51127af265fa23a1986158b5a90f2340b260550ae0484bf3fc08ffddb2f455d4ddfb7a57217b69cc70da745d932e682ff67a4dff1850f01280ff48f96" + }, + { /* i=1783 cDividendBits=3962 cDivisorBits=3394 */ + "bf5957c2426e393e2e57d7213df08baacfedbfb230182a3f31918909616d5c7444a18cf002477f3ef05f95cc059211fc2dc7f5b84955d5414c031a2b0427448dc4525a3a51a84b0795d7ae061dc2d0ad5fcfe29254bbb0c983c2b039a3dff5dc405b29fdca282b1a7883d3e2d0fd8bdd1c200b94eb693dce0716435582427f4ad630b647b00d825807f0018c12afe95aa980c8f0421d52a75b126e04c65ab2e9f1b8abf51f84acb232df5892d8fdfeb04620c73f77f2f201bab6d79e686174d4165beac78b95b52cfce9b37c12149f469c9635e30af61fa50f1a0eb3289a33e3b9305bf3edeb5c8c7eb65d0d6ed6faeefbc0382a6bccfaa819df83cb8cebb5e9a071aee4b21da5c1fd6e63228a7781b16efd6fd60809f64979902d6880683a5e6bee11a273800ae64de35ed695ccf073e59bfb3df49d1c56186a150c28cb9772b322a1afcc7099159ad5965169d4a665a2e71117f47c9cfb7af90a348eed868ef60b30a11612b8ea72ef3c33bb0cefd818dc2032af8a48852e233db7aba905f6872cb702279f6a61ab8e062190425beb78147e2e7a140500a18513f5371a5ec03e75589568694e4bfe88bd7380d22ff64cfdf6d2421e496ad7299a86e086730cd4865fc8fe3f26521a20f88b399c69f5f74af00d7b4be0aefcf90ac764227ebd0310cf46f0234e0835b825eebc415b", + "02d4b6043735d7f1ed667d3205b6f37bfcbb2a623129f99134451f7b3c2d248054e61e72ea2b887f7df91f0323528a099360816680907b330000da45686b1afe1eec961e2e164680640947c610f052781216d6ed16eeb9382f4f1312d1df29b1f7e35b593a0d1d231cf013ec3abb310dda4f98946048451cf3bd023ddc12a41b0c680f7e3ae8e03b38dc2b016556b83ab7ce54607fdd338af8f1d552516ff3ba0142f165d156f537690fbd947e0547eeae92f307b31cedcf668f14f26972c2acba6f95f8eed16a2436199c68870649abad6a26e67012e602ecdddaa6cce9aa23b89af81e46774982b8409b84660e4cd7415a945e16aacef79195bc00c121531167f7bc1798dd27c131ea4005202d84adb684300227de453c336ae00359f752b62de5e113c5c238be8d118b58f6ccb8e7d0d5d205154d08a7bd02a735a317ae7e822cbd8b7849952e5511e60e59da8400d3fd5c7dd4ff4851cf94628681435f4b3b6b9f56a330efc18e8eb9a24e19939e1494274a1de0e907f16ac726ea73aa5ec581f2a07c4309ea6437c2b5b99039e5dcc39b5eee9ec6923653d0f066ff73ad4487e154e405ac2c40", + "4397ca834d1d7d05cf02e839f56c56420be588310b814fccecf6797f4d658e7ce36ce980893c8a72f56e57655c5d14e7315f70abe60d06b3b42ccf4478d441f8020ee1c376d94e", + "022d05c08ab571e4bdafeef0bec73d61345e87bf66d551d03efa58255f282158841f65c3143b3f4cfe9fcc1fbee20b7f06520ce42e339e3d7e080ad07f305d566808976cabb417a3ffdba650ae84366e9e7ddc7310b0d6803b559b17306a6e5a5a91bf0704eb9f1128f09823b01ecc3c3cf409a1c156fae388d1361b0eadec8f926b4752fc3527b62fb45c568e7baff0044e15b5d2049f845e3a7406d297ad90d86506c21669f87b56941880e296b8d3db7b5c0cfe36902148427447f2cfa642f1e724a27bab350318b74e1884ff17d29905bd1276d5100a52471275bc5562b497e95a37ef8e04b31faadec26883329dbd45c07ab04e766100b4484faaab1b7506ca0ffe977cb7f86b3a0f39fcfd9dd4f1684a19877c68a70c8c6d15d05aed33dc71496c3075e204bcd62ac9d4fa0cf9c45e07710c9041a5522991dfc310226180b77260081d7fc3d5f80fd3214714b6a45f5b299a3d595bf819c5bfdd8c8a3a245841fd91d1a78f9705c4c3543ad59279f41aa212353e763b4ddde89df0b8364d6e30d2ca4b3211e0f3a03efb9e0ffd3157153b9c5e0ffa43bb78b5204067d4890fed6a8c1d4485db" + }, + { /* i=1784 cDividendBits=2331 cDivisorBits=1090 */ + "03e72a829c8b1c210b1626b7a8f7b1c3179911141eaedef1d171e11931beafbf7cadcbb87ffd84b5ac0f99149ca2aa09f4cc443126759f962aec16b52264362ab5ea901c90c82c5bbddadfbda98d893e582333910cfb169630536278fd7f6eb42a0fa065bc190b60426932c4a649c2fd3240d78ffc95475d7653e079d0c6361b0202236bc4f36318f2f4ba106858e41d63def2d305356e4c6ac8c0d98e2ee580f437a066a34381197cf036aea584185eba656941150e2d28dc124d896f7a97d5fe9c3d7fadf65d299d3ea5699c2f8452f810c6ce3f6f2002135abb439a88687d0467a1b58758236689149e3ce38ad47ac3393a6cf07e8813601f70eb043490b214c2b82b62d1333c9dcd8258c42bb86f67ca31174e9b4ee20f92512cf0c442f96026c672", + "023b095c33444f1ca901cb76b3fcb6f1c2aeebda381bf7c664fc8c7888bcba6a96cc6b18c29bad83853ab6f67b4805c2f6df63a629c5f125822f3a6818d25d026df5f1baf0c1a48ac880bc0c624c1b55e374e3b29e2ead385ce1ed6b90f1c1f15bc7e41ee78f14eb1118604a3039fd1a4db6ae57139fcc3a9dac49401bae8b5f434688897fa7482978", + "01bfef05c67ed752734c3e7c7262781a6d652282a0fb8c23327d39bab7f4db60d0d13d90ca08cc5b9d1530bcc52ad19db40a2e23f0f5ccd1c7f404780e6900e6a5fdcc79a188d3a461a60e9e1d96eff9f003cde0ff0707a4a9eeb75029765190f74391ca5784e9fddfcfa9a4ada28ebaefb6fb12e3e8e25b6f0c004034f4086a605affe9b167f5330d65c74083d1b1298758a11b1561d8d881c2f955", + "9dfd882687450adf1b03fe356373bc98fbd5b03818225312b0ab39fc20c1c4698a87486ef4d21fd92f86e0f74e8216999580d80d68ffbd57546f58a24088ab449d257e659b6b41c9271e69554e70ac010bbea794f9e7e3739b1ca34d98fa4f4c6dc221187e874b1f385b786febaf3db87083aa212aa7d8f6019493729add21399b51130cbfeb499a" + }, + { /* i=1785 cDividendBits=2078 cDivisorBits=1795 */ + "1c0e2e62537c415ae0b9722f190cce649af33340543fb0d9213facd55eb205fab9d5cfc339ff36db734df926d6c376f0939cf8c6d8abf15fc30fbd678927675a208691d852eae3ef42abea10037699f8d16a8dd114dc1f988cb3e6eac8a5f902c3016003dd89dfb3bd9bf78fd1040872c34ce63366c7e64dab7d1f9d66a0f12a6dd3e39af67327275005a2d3e960ca3fdf76cb6f2571beae02f065b71c678cb439f2354aad5f4487b972aad0b61dc6d1e86b75111b42af9bc7958e5a350c24aa9f49e2861b28583bccfa900ab8416234875b17c79a2efee69e8ab4111fccb45a4ecb31677c697388b9968e331cf7465608ef3acfab6da12c1cd427b6837a5ad9455a1994", + "0615102c57618fd11a1997f5935bd6ef45e02433b4d77d704e9bd51e7b79579dc02363312c290a13689f00ccdbbae116d0431fab2974bbc0bfb0b133f87ac40407a2654dfccdd9845ea194f0ae6ef4aaada170e27b7c48729a0809ee38bc7195ac8f6479c8641d7bc7dff889b718954c03e0eae991b0bbf3d94beac4b3f78afa797b96a8fd60a8fc88ead7d61df5e71bf9d91a299e98f45f3eafe72ba3323bec099d49686ae7a6d1a515c9247901365273256a3aa21eada9dbf0ad35ec7de8cd3b1c74d54910c17c7847d53490a68e01248d738caecb3945f7f464ab3e5f227601", + "049cd65dc8b5a31bdce09c64f22b0a6730f91315c94dff5c5b22b111729440e766fa57c5", + "01fb91310706c429670adbc3ff3bfd68da27f39027a4d64b4137c9a7b1c8eb92967f818346c7f21099f4f6e1e8fd29f4759ffbf5b299389aae613c53b2910a8e9e73d1abfc84f999bfdf51f0a35f8189e46ddcd8433eb81e430ab815691eeba783cd471ec48c1647bc45ae1eb78ef3706ec5abcb2d52628af4e0be69b60a01c679e682afa7f267aded7eb75bb99b7ca3e50fe59b6314c1c743c1aa66d00aafe0b622c4985d6374559d3e8b2bfa9f3225953984a13be9d937cb2f02d39ed49ab93729a32d48121a61459a9c9e64cb79b1f56a43a8b17f6048b506d303f2b6c0f3cf" + }, + { /* i=1786 cDividendBits=3685 cDivisorBits=2615 */ + "033a93c71bb537aa976214514885231a3dc32d3424818de98de1bb669cf05dadaece98ab94ef87c149c865a71172575a49aaed6e3ab55f4a73cfb8d6450b93b1cacc855618ad7f14b27015989365052e5a30a068a36b9ceead08c470e91e89b3df2200fb72ce860ab355d17ecd4fd3f56cbdf72a46a18bafbdb66202214709297b54ad0b210c21769a3e439189a6b98027fceba6c503e0280660f31d2138db4168d58cc151e1477069d551b2e794ebf2c9762519f943dae9b17258c38d77aa407b52afeeaba4f0ae40e314bb2b832bd858e126de5294a87709ae6e6e7face91455db8c1e8924881a04af9953e052f56a5b5493cd925e59c48a9f1e27a0937444ff302a685cc15a241953be1a6af5af4a7a6738a49b11e53c2f59291640dc5ddd4dbbc245c120281e341f8199d178c32b5f6477a40c62aaa97895488c6a6c69154bc81b42a09741f94c948e2a44cda205f7de5a15aa1d81b64704a6311bc3a6ee78045339bf006e61f23666a8359a418bcad381d1e0e3b85e692198591b1d22a25aece71e81055138130f69c27886689dd5eb1f9a21aa81113519329ada4285d4100aa7d209732bcb81315ab03b37d90dce1bc60da723d7746c085f5660152839df7302f3ad6878315394dbfbdf", + "7b38cc717046ba3d0eeca810ae10faae3942d9df8d23751f5caa4d3762d6187f08d3ddc661ff6811f90113aa69008e2bc55e615ffda26d4e3fbae3766ed6454c20be001d46197798e49e4fa9e4c4a80fd3c530a0bf311b5099b0428accc298d9c867c28b258fdb47348a5a0d218d8795ab0f314cf2d748bacbd4e033d8537c39494b0bf5f12c6c6a939fdcd4f4ac67328d3339bdeaa4c25fd44e83623b6a1409b98fcb0d0050c5688ca8b8ff7aaff5a48874d8a523395343c1bade0603e00c5ede2705b493e8b9b9666c0ca255a41d3a628736f4cb2a6f1e14b55173505fcb35f6b3148fb8c42b43a3b7b057a121d49a8eabace17cd474f1c0a385e95bd085ae746ab42e6dfa4a683f1c872e9b2450ef91144216fb2d924c5c6536524eb527ebdc7bff7e8f948384e45f13ab057f482c95ad20b91dad8a2eb68b6de1ad050e458a628bcf6db19e", + "06b5421fb3436fc3b51eb23a18c4927bf6eb7fe1498c420732ea2a5f1475433ef1363e1f5e0b9883de9ebe08614525c6afe4fe1eff68c7f13dccc4d7a2280452dbb820935fc6dead8fa2aed8cb060613b056ead5bd6a675e0793c6b8cbe7f18d0c5f498ba207cbf4b61fb6a360e255b3e65da7b59d54792dc6414ba8015c260e1f9f3ef4f9f5", + "5b8b6c092eff73023a689f131c4577eef058c84f5cb2b60fc949ca33baa4d24797672dd02bb814ad54022a546281d1a73a2ecb3fdc72bd24bb633241e3c6a2a0d318142c379070f7b1b6e3c3193ee30495c711871fcac6d3aed8a4c545ec02260ba4fc622bbea012f01b0861a0de0a9b590414fee8f6a8ddd5a544599966e1f42e0e1855eac9834a5be9698271190fffd89fe747d34c158b458aefe7001c316bc32b7d1d0bcb54de9d81859646d9de013e30df06838e314a2bba0b2c601291988db12e73a6aa2c00b2b7f9c3019350d8533c411445dd5f4a7260fe7157f6ef2946791a022f609975f61805ab4e9dc5297f83753ec29160f1485720fd9113628ef1ed4ce4834b9bba73ebb7fce9a73695039fc4eb3a38d46ad988eb7b3a0218b0d753052b7c5734066912c3023a9eff4dbd16f4b8d77e0e3ba32c65fdf139842f682c10d08651a9" + }, + { /* i=1787 cDividendBits=3134 cDivisorBits=2819 */ + "2f006f2ef4a580facf1e52ec102c4303d61131e796086940a97699e570a415033c25daa3e6a8cd37e633b7e7e0fc89ce899623b8091cf43a7b93f1b0411ce3a1a76447502bdb9f6ba386eef8ea7dda842efcf1b543e5c8e37e015e31b183f121477fe17ac8b2e02bc58931e53bc545c5989cb68070162c4f3f8826348490d6ce8cf0f29d33e6eea8ee7de8b5cc990babdd395bd69824b358f1195002a66af7acce8ac1f4a98344a7f7745771f4ad99d3f375a6361fcc2780b753dcfafcf6b65f15dce75ce2456df28c8ece17c20dc88f12506f44b052cb4732a53c343ee2e2b557f84b55d8015d4f1866d92793a403039c5d259b490f527151b4501074d271a249a0d6809c7eea3deda87bc307ba176e2c5239b423fcfbae891a36338e6ae6fff907188949e7be08d967d025f6278d5b69cb96e9fc09fe64457e5f19941bea680d9922bba485ff8fa31f23aa3e6a34b268f9c6197fa43c6e38a2682c6c4ce15f6186de0146349e42b908898354707841bbc73471c24c6f1ce667d79a76716bb114fbfb152bce8c0c", + "022b52e1f788976901175c5b086bca85a2c400c70e07e1ec32361f6dfb803c22e889ee062b7db728f70abe86d3ffaa772a726548b714796117bd532997156e9e6af88eccda0910c65797eb8b7807b93a861f6619b407990658a68899455bc87ae8fb3826f608374bedcf37ae3361a73b0ff07c3d4d3f323432bb3e053b095781ca13a0b731af5a6e04f3bb135fe5cf76f0609b65e18b6dbc911607dcad12d1ae2c252b1a2dc953785a7fd10e476e56a64cf965d7b52253b7b9e05e980ea671fffe18b9f51f74462191d9f9d89ff17cb1b7df74bcbccc9894500bf1e527d04cb6efe979b1a44331f5c1f9fc3443833c8ec51af660a259bdd9c40b904031821c3f8d2a662aea85806940fc0f8f6c2672a8f9e544e8c7741c11e6c03dda11c202438a52dcdf0281931e3d26373a3bc576a11406832a5d4a427e70cbbbcbfa512d77db5a096bd0a9cfaab5d10ef36cb26b4292a6dd95ef38ca560c45f172b053ba38f2", + "15aadc2c6c9f6f2359ae7c441bf7e5418d90c3980a1d3de7dde8559da5238e511a9d3bab053568cd", + "66a65fe05c3bce00485c4648c853746adbc4faa2eccb1f4aefc52a1974932c0713576dc34c4b04e1e63faa7cf4e530782911adebe402ae17d45389b55e286d220e00d7a6dbb35a3211ac84d39a2b406a7e89d88af3cf9d97bc103f945aaad5f75968536050ac1010be76b9c41f03133ac6fbff913bd50ce1147ba9ef0a90ad369e9237ace09e7657d2acdc519c1773e8f09fc13f82d7b5134971dceb1c97e3c2e977635d82d74d085b640eb19561ab848279a8610d12236b538be65dc0819dde52343d74342301e0c3b846980883b87d4c619ec9a67996b456383664e8fb5c4f6265beb957fbe70b5895b968f235f5fbcb006d47afe8e4c9b307a448c2ce5e8c584041b9ffb7b8f0efe27fb8f9bb348672a6cdc4557174b9c53f0da2963ba59f0a131444a20f9af0c8f10d29285528bf5b8f6d096a9e10547617f92e0efd649d396faa35bb4bdee6b8c995ebf5ef3888df4a518b929a929572f9b98df472a242" + }, + { /* i=1788 cDividendBits=1745 cDivisorBits=911 */ + "011b10c4983ff7e8cf66493eb391ecf003de7ebe41e1fee3a63fce8ba1a5685594ef631de90d261bd5aaf0dbd342996290a27fb1d6c9ecb2783bd7c40e48cd682d4f38f900817c54bf3bf280baa567985bbb211973ed2dc87dab86dabb74c30b7160c7c732abfbb986db9162ecfe4f229ddc19dcf1b7182250895783ebdb39ceef584ac022e085a43558c503178d645abe228ec51e9aa07f3492792ba11f315c0dcdbe195490533872454f7e62253a031a1f66a9c67b964b1d543194ebb8bb93ab9df79fc7b9a2e8c88a6aff0ea447d64ee22732e69e84d268b4d2", + "50c28dbae8b6227427fa792a04680725640a9f4bad5ec93181fa42fd0c9b5c8791c98edfab88a6d938aee7093a3ba184bdc282e1c9fe6cc775d003fe7276975e29912d40258c9fee11a4cbc5d272ad70787078483ba72dbcc485ae92d96780da5d3a7f7a165ea6486dfb3f07b589ab5aa9c3", + "038149214ec07c2e8010e9f70024f2f17f1d283bbc9b487abe69421fd94ef3e0c88ff51d2c1a9d81a87a718cddea2eb1702be2d49f0d0ad7bcd6cbce7405b27c63cb1366bc94ad43a5e85b330c87959fe4ef4a92306ac18705a258abe7993973db7fc8f95ac0e2ead3", + "187da946ba11dce1927502b12f911c2cb84f894fcf4ae42a0636602cd26b3ae89ebd8c0f4358b07d68a8b3216339d58dda185a32d30c950256fc72c781eab8a7f8004b1372a5e1ebdb48814b8a74d025f186f451eaf9cd82ec169dcb14b111f5936b1b468ac79cebc190e5388881995c8b19" + }, + { /* i=1789 cDividendBits=1399 cDivisorBits=488 */ + "77ec073d12400a191a679be83ed1a08a215cbebd86970511f38c7fffcad9b53b1f1de65ddb54aa7b93eafa2eafc6ee759785ef2c57584f13a8bf600d83c31efae585473a88279298501af268cad6cc73bbae7e96697d2ab9c32042ce8a5ffabaaa656cd18c62715baad2dfffe925ffe0bef42f4a3fa397c69960985c3ff67442fea6c3ea6a61e021f7097dfbe0df4dd915a9b1cf2e1bb65d64c4a944beab4a3084ad08fe7a7b18563132bcc42a1f92", + "5f0cad15cb45a3eb9cfcb57ed48e8fbce63ec3c596ef8ec2020135c4b9f52ec975354d7390c4b0ae2e6eb66d1d40de7e9d8ee8de0555708f31965cd81a", + "0142fd665a5d39ae5cd32898fbb6d584e9b94dda1ea282e96937818a58127cfba004aa1b009a8ad8598fe144127df015d9eab968df9486672fe863320ddccd40a1958265f72dced1ce684c5d832c73d1b1055453323859a610e03fd025b62f44bb684ed5c51b492342ab1406f4e31507077555", + "590a22016d01b0e7964cdadb0ada513e79a3041931b2bd715127b47b5872d595e184e9ae88c6823e14b498b254167133ec67e8744c02e38ef8c9dc7cf0" + }, + { /* i=1790 cDividendBits=3517 cDivisorBits=1835 */ + "0472cbab058a5e8cbecdab3ace34387a4e4e0769be86017fec23a0f1fa80612c0b9a97edf933793bc4cff153f2de1d8b55b23e58390138e18c0d739ce54ad42a981d13096b412f34cbeab6ae331b89afec54b3b8dc3c090b470684371568eca7b53c09ccecb6398d407d817477eac972d16fceaa5213d34ef10cac7b885162ef18eabe0a92a401b5230d53b246dae2632a2999dfdb89c98b1d96812138002396522f8f63fed9c95528d4a3759f33e5ec64ef7130bd5c7fa49881ae928a949a969dd035beb44052a8f3f7c68fb03504a5aae17137eb94f8a91e39769433daa7b308674adc587652aba30e9896f0ea6bd83fd3c44071e2dbdf9102020a7227e87499a1dc976ac5d04ac9def1c10022f04d63551bdda92981d20a9b9390b8d54c884eda720a17cfbffc6c09313bb4ecddf0a05b352493fb1fec56e7db917ea5e593de4df280fb7be81a8fb8f1f4955875f191a8d84cff66660f1d9cf3f8e0b86bc728f74e3f892ab2fea1522536d333e40af5f7e6a6419532cf4c1f63298c1f999aecd2e37753597b40ec3298f382114b681a1b6b7981acfe69d2ab6d23ec0f6422b15b062772807241e9f294037476f77a055a09c0748dcf84", + "02aaea54e85706445950440578c283c0628413cd646bb32ed487bdd2f1ef9ea9acf59c7b380133c9681c1327817d337bd4d68d188d4d618c5b8881f9ffcf3137b97797993481dc15ba41c6b75e3b22db3e40348fb14e8f7daa62f13962a751d46f327ab01df8ef59d83b3433390723644b472aac7b06f541e185a1cfe6a07437ca67165377360dd7306558171fe86a300f0a6a3ab4991774299a7e457262eef6f0c2d76556c7d611c346c93ce9bddc6353f458863427eba22c1b41a99eed6c83221509444ec633c779217826da711523644615a139695047e583216b3e00b62f820d4f8a69e9", + "01aae49055461f5c1e4fe484dfdb828317112f500b18e14d73756db77275a2ab7fb69730d5b095ce3158922eca8049f4fcd610cd06292d1a989bdf2f92c52199c71c20f733baba4ede6389c808b8a89ea4796a323129e9af1a0743dab8209e879bb1103357c704dfea93ee0f6a4e151954efa752fa22c3088b917e33731ce743e661b20f43bd1fb711c4702f80f16010c6805ea4e299c502bbcd9ac879a4500ed8455ac7f6e7abb10ed8f0f3a60dc2062e8114f00796ef4336b489530cf928b03048f2e547a4e0a6f69534f86e4976ac906bbd", + "01bd97100aae17cc5724636db7e1c4f03bcec2e9f42c61ef71e3c797596406fbfcd9bf3a7bfcef6bb342ef88f3550731c4122bd493ed5de79d64a2ae479d5ceb45f89643649554c83c7c590d2019b3acf90a6d4f911a85986f9ab39d6b1ce308b59f639d5617d33a349886e734ded6262b9f46e40c8c2730563636bd65b4723dfc05c390d3f7fdfcbb7ca5bece9923798639c573e251e118e0a43d0b6794e0602399b64bddb9683980b34b6886dcb0318d763b88e206dffbbc5f8bd6d1112f5cdd43d11465ec36c5b9fe3270bc96f9d44f1fa5416a08be851903ba275c7b33df7643c2093b7f" + }, + { /* i=1791 cDividendBits=405 cDivisorBits=180 */ + "13f0d5e7e04f13d005d1b1431a306f8d1d088de933d3060857debd5059481221a17716f3e354385ae6315c39fbecd90de10539", + "05cb03569ca3a4a22fce13051b9820f3ba4aa54b9030a1", + "037134605873bcd89db42ae5dd22643610c293592b0e90d1599057bdb1", + "04899932f7e0e2c41ecf4b9cd1a25faf002572449188e8" + }, + { /* i=1792 cDividendBits=1095 cDivisorBits=644 */ + "2c8af50cb73abe79ed2854cc52b660208dc65b76eab71cc60fd14ba965a08edfae836e59753a1419838a8f5550c9cc3c5f4976fa5de792755576ea2999839d3c424864926f87c4276b9de212219d3d4a069e40638df946e04f0500e3fd9a0c4bda85c24b4470a2e1feb5fdc0bbe75c9acf8c6b22ee2534612f8e12270cc631c9045570ca4afe93e426", + "0735676e42f79b44fa11a6df3f3f5df43181ed51788a72e104399bdefa7de34edab3dd29ddf7850ceed16ef684528fea9f8a9748f120940f6cad2ed4e5c28ddca6db0e29c2031fe0afaf51e2537497e324", + "062dda402f6e01d7d1271bc9ecc34a1ca68d79d18763fa161a8efa0fa34506e334b5566982311a532840d75f2a0ade6423ae0a8b4529720f58", + "05bdcea98245c48651120cf5e02c144697fd35a3682903aa80b4099b735f38f38753ecd0d22176485c2468cff187a10c7dd02aa65d356787fbc5f736c3a3e9d0c3ae4544f8b594d899e185160e1a06b3c6" + }, + { /* i=1793 cDividendBits=951 cDivisorBits=456 */ + "361a4bfab829664111c204b446661bce5a3fc78d9846f4061af7899eb4bea29ab2c4a1742979c4e7e040f064289e897f2783f2f50b748047e3ddd330bb475474979919df1ea0c10ffe60e3bc20a6822c4e0d01150d7f5a7c002c6c32a2a35f21e90bc16b6893d4693b63e58fbf3804f5a7bb9e17ba5f0e", + "70c9940404a2949a60a2fc850ab4c00be8f0a156263c91ab5b36fef00f35a4325f40ea5d9b4b9a0e5eb9bacf240a4264b1baefa9022786522a", + "7accce1cb4aa635c5354ce95fb21339dc7ac6311205ed0fbf9aa7085f8ef60269821268887e345ef3307a35ab2172e051d3bcfb2c90830ce304a2591a67b", + "047caf2034d3a95606c1d88f40ad7a61846816c108a52d308c3547bb9078fb0ff1ea9f87198b7490b9fe648930b1d8476618f3b4db651fa8e0" + }, + { /* i=1794 cDividendBits=2939 cDivisorBits=2879 */ + "04a0ec407206d41ba9f48f51ca5c06a7b83c4cd689820249537c5b99f3af61e806de4df3aec03b077861c992ea5b73296074ddbdfca163be603ba6477eb2c723a5025e8c7525b3281795b2ba67ef423949ec883a08b6777d9fe8555b6f29ab7ddecaca0e135e1fdd1eb3ad9369b8b9dd1b94456a13046816c5673101ad73689cca00b7566c4f8f3976587f7fe965159ec1955a851233e0bef79bd6a1ce077a0be8f37cbcbf2a94b1ab0f7f4768b7b9d689684e416f7bc6a4c7816b07157419f52d9af02f4313873d81fc1527237d65342056bd240d5a826b622f73e7eb708465b3e7d579a16c504229d93e5524dbd31939289bba845daa5a5cad57890c784945de7440a3ab78c6751cb5f24fa05b28623f84240388da0da46c1bfb54a845d7dea519210234acac09ef07e652f3e5a9dc6fe99361cc77273dff87370640b6b6d95dd9a0e7e376641ebb0910957ba10b8b4b7814743eedd7a4f8529b6314dd1cc6bf834c53f40fd1486f28ec73654b6a32", + "33dfeee4c78c9dd66351c7cdb5e77cee3d7be2f0297eb841b3abf48ef42b178f255ab8fd2fcc10d8a0fa4720778e45107d2fbb99906169fb96b0f64ca408c6603aed194c9c528e998c23dd2e71403d5e2fa898f422c06a935fe4aaa3165f5ae0f42e3524674dd3a407d1f783c7ebddab7d58d0e99b5b00bcbb97ce16a8a5b88db7a7ada557d4168e00d5291ef22e2f211c30dab58a2aaed37eeb8024d8638c33e467fbae415c32fe471b86f424725f1ba60ed67a31da7499d42a70ecc925cf6dbdacbc8ecde731b94b39a9d39ef52e072cd57c708c7054b4742dc5eb5315d2276b6a7a914204b35eda54fd0f40b13baaadebe68b5bd32adc2316b52586e33153d94fc2fefd521794d8f313835552920a7c99f37f2d4a1d1b2f0d5da75b07f2ad43b9597a07a2219416064141858cefe4743570066a816318884633c6c7b71091a3b600bf78f2ec266841787257ad98f09c31cc3e73c2fce7ed802f92a7282f6343c858f0d02ad8c7", + "16d78d66b648d6ff", + "056fd9e29169f0ba9c294d9c5c279b983bbc827c2ef73261cac77ee11489432630d49ec4753284a64f3d449de6d2b63f0798fcd9a08cd763ca08af7c9f70dd28e725a1a612d49bb05a230715049c3580a25c80febeccfab62ca53ffb176b5af0928fa5555abef2280676f82f1c6da6d8f8da959a1638bfa24fc3009babad279d03f69d1ae75e57bbd069b035032ec1aae9010c09e6b3c66d21f4350a09d04fa70f21bfb04cb61fd967275e722745460070f048cd8e05ed70a78dd49a96ff71fd8f2a9c208323070f217d5e3f15921b77c710693f115df409bdd4483ea1f56d83ba727070edb93e9b82e87875f9650c9232dc816ca782e833cc2bc9b0b5c0c81f1b187a15388a8c4e10a160cb1fd5da4411cf763beebcc3c4ef8bc2c1bfbe143858815fec70156c25649f71c0b323d07778aed885299daf92394c9e922ac87e4290351c7ba256524de12c867028b6470f0ff0c8cdf856d20650ac09bc365d8df284ed0a1bc76f21f9" + }, + { /* i=1795 cDividendBits=2724 cDivisorBits=1287 */ + "03973739da20de98e45558494532a771f4589624269cc2f84ed14450deee81e8b00d4ea332f88e3cb432221f6d8b09b76ca476f9771c4f54f213d214f4f18fab480617962dd93b553854d09e574f7430b5630b8647c9c5fc9560fde49bcc2a821b71a4f9819f9a0f8cbe4d13eec606598b9e7730ce9a91675e5b104ce9998f59e6e77a092c9249bfef36638cd06acb0958201797bbba42e76738a99f6b3cc31d38c7f21365988408cf6a5c381752ae59c1be02d08ade8fd1402ccdbf8af88184f2ab48cf55c64e5b8d95161df4759cfe220915ef2e252ae2c757278c03773c7d128c86b6721715cc397ad6299208b73eef07ccc5120753eff8e749bfbae23a68d860c391eb97d30158b47bab6e2ca374923f2bfda929ea01b2115b13a13547181b2b970774526e86453d71419b330aaa2416dc8a076da0245108550faa751a18216abe9fbf90d30acab35e9823fac9646531b5272f", + "251c5ac3c430fdadaefc3c1e8c02cca119da00a796922310e3a87bbac8f3a41a469d560c9062d7e55034ab3586dedd8cf34445e98aa7408203b56c0f6458d70cef12cbeb5741b64b4f80399723c72e2f0dc6d3bd8d767d6d4755d423ba91e56aa6fc83fcb93e5f68201f10376dec121ca98794f39952e2cf2b731c5353d65f75d6ea556d5a3ffd10603e9d28f9d0036f36226cfdffcbf9fbbd8f9b41d980e8cbc4", + "18c4ff4a3fc7064f2ead60cd5cd7b1f4951dffaa5d0a3121cc586afe7e272ab9126a711fc246441e0359885cd600649f7dfa59e6093c6471f2d4c7dfbbedbaab198a19a2d20dd42112851590218761a6375cedf7e4660c1ab530381c9f467983b589254ff147f6db80bbd484984b1ed9b63a59e6ddf1c68a654b4609f54838005d709045cae30b0da0c8db3a1527a27d3f0c87a970e6412d60bd54e4acb0e5fc02546bf8ab00379e45ed0c0aaca296e4a0734ba0", + "e8db0146db17be88b2bfcd70fd6d7da89400e4b01d224a5d01f6d037d406a8ce51b65786cede6dddc6789f64df8f3b1a304b621675e11df47772c48ca64c7cd1c5cbcdbbf47682f056bf26579670339d989435eb3065ab26ee03c8a827292c92e0fe763005c189bf0a7892e45fd6d52d79725bf67a9b2cf20c6ec0fb8b9833290e6505e272dafcb2b84c43d2ce85d4e95d984a1d5242f3915f6cc932637760af" + }, + { /* i=1796 cDividendBits=3793 cDivisorBits=1466 */ + "011bbe457a8dca9e03672013bcfb6a4ea1f1bfe8918bfbc6f9e7ca50fac8b2bdde285f3b066e1be70a8c6ef3cf3572f6d5aa9aae45885c11586a07ae57ffa494e6c8c06eaf93bfbdd1cb2654431faced7d1928a155156cfa2e924a2efcd8081d97a10559583ef5e6de29a072b78906f44d6bff7ebcce0879006fe7f1b8e9fcbc000732a4a783c7963a70edd4d5929927a1b91d249c949e1d7cae036b386c5ea8c8f9d5686bc8079139369eeb2ca5f53a7d1042629bef1b7996a3b78dbd4b31eee2d44d4e68db4b24530a1460c4e0aa55b07f8a3bae3ddd208699d60ea06f23d9958b3899979d886bc501b75accd47507a796b656a35ab2bab1d9add1905f0ee86c3e9895f7deecbeab2687063a304c3a9213668511d3aac3f0da89e739ba542744dedd920bc8ade440512eaa3cb3e9efb95f865715a5e83aa4b686978610aecf23e80b0652e971436c778f23afe2d31b9a985773cd46d9b35fa7a6602dfb2d65193499f7a8472d0effe9a2ef88353188aa2274714fb73a7caf232c0ff4ea52d5e182acad07f3752bcc1be6d970d1b84fef3cbfb24b51d3ab6dc944ef57ba9251d1fa76cfa4a763d1bcaa4550cca3c23c19b61402c149eb2ee3ebd5720a930af19c95dbb12e6b397c2bfb5fc92de822b7e9fa331b57ccd59d316b80", + "30ded955282e51d073a40800a3df6edbfad451aeb506d3973c73f808d0b7f7d9f19fe490dd9d0d38883423d17a5251a89fd041633684a970f5ff94aa60939529f6a59da1e6d8d597bc31819263bd3aea664d8da00d55902d29ad300ce0218f8bd417e5d8536245249c7d6fd7a8b8cd882de233ea7340ce5f25e16e558fce9d890225c0a18ebd1cfdbb8a2553398cefc4974febc5a36fa69833885ec70672c0e633165f15ec8832822a004020bcdfb2e2dcbb29c358ace1", + "05ce577ec041861462e100d9764f5ccc1aa43014ca5db790618105657cc3e27020e1fee5989cc552ec470d2083cb96bef1fea530d7718bfdd20c276b41366450f289ca847039ad3935104761ad08993a6667471c9ef6cedd3256988774c3e25f6051ea096162c90521d883026d389be6cbf08f7143ab7bfba1bc98d69a616aa9df76075c05fc756784dd8b31e876fc622f36d40318f83a2923700dba16c9e5cea4a51207c06065ceebd1c9a8089c2b9914278cfa8db163bcec4a4850d7b83389d0250cff42ce2d9ccfb7c6f4b048ecbe1e233b013f5b0bf15014b99110875cfd493c896f2ffa78559903e2621789ac00e117696eee5b1ad359caec45237f94524c0bae041c3aa8515b3ff4ef79bab4352af5022dfde8000cd6ad6003202895617e382ee9", + "1aaa42a434d3b3ba7c4a08f780e3c887558817bed65523f5c427f31d10bcc43fb41e73cc9df2a78ae9fa20d8bd3b74823d3180465cdc89c0e303414a4ac7999f410a8929227c17393715fe36c8d0720955c37856b8fd69a8560141fb7f455278c756a176a6b9a37b5b6cac48a5711f87133bbfcfde13eebe8bc3ad3ca828237fc80481d138a5ada5f4fbe81ef49fc9bc2d27f36c787dbca456af8b5b265c5a4de228bdb6fa895c7c560507a696bb97b3271bfb5333a4b7" + }, + { /* i=1797 cDividendBits=2777 cDivisorBits=358 */ + "017f6455afc31d842fe3a80167963d638f99fb9ed0ae0210cbf5066abe82c42d2d15813648bc1e74b38ce9a3b90aeba0c00ba09998ba8f4346b2505d670bab4c732fdf44b6f4f7aa67cfad1d1ea15c62d46119030408ee76dcd3e14289e8d32edd63a6dcb816551252d62e16572728a06f0ffe98f918fd998b45c8601012f2d920b2576484419291e4b1cc1b00fe3a2eaf7102ddee97a2b18fc7c5e4a998934585ebaf5159ce1d9672a9721ac7fea32ea117c60c48c758c11b618990bc45ffd763029599639f6927715f28af586b8347243cd711e264c551c2486050c8fc87f27e07b1b885a463565e69ea6d229a1e159f2c8bcf2122671c288b7c4598ec8703e9b12de0f1e5dde34d50dfdc61dc39644efa23bb017251f202c8b5bff8f5af70f7ad54e7a6749806f4cd4d432c12f048a18299670df56148ca2ae5e25b6b4f07b7adde03a8e38bcb39621d208272662361b98ee4dde61c0fd38c3ca0", + "33723bb2cd3287664672a1b334a68ff239226a53220a8e2f6dd64c387ced686b98cfbb7c3f46923a02755b6cbb", + "0773c8f77c45577f544e109bf00a3d7abd818df8e870a502fc7752a09a5ac51009dd6b971c10f89e1fcc925835619102d5e41127981468149257a74f16bc07840c2cd5f1572c4881b51b54224fbceceb413f84c418be92d6a0f67fb5e78dbb1e6e40a36e81c2076216b2a792aac634775dbfd3ae8ed7f1bfe9836e23463b9f5e5181715aac84edaa28b6294f4e32efcba0e9e35b8835fcfeb9161410208fec06c3fa94a40bf5414294d13c970297f155c47dcdabf3dece8ff7cd017d6390d677163490352298812a0d117debdbcbc20625af491259c32ed4aee2f3f2fa63509dd94db9af2435a6991c6d67b97f762c1b1db15ff6cba07678123dbc7e5eefb053e512dead499ebb6a82f43f48747fb465bee91f0299425da5f56070a149ba5d6ce2fbe44a05923cf286df6557b81a4d", + "15a66c37b6dc58f79cc32a92172025eb9802fffc87279f482619334f844934480351b65436a1b532f68a998a61" + }, + { /* i=1798 cDividendBits=2561 cDivisorBits=22 */ + "0194304c6785fa7eb989fdf315949d2f7a6a8cca64348740a1d3449a91e15224da372991ed7167a75868381c2561941b76f1e9d794bddc7aca908be044dc37b6fda053ace1147e91a56d4f7b396c8860a3b49babf6b5997dc2895e7f068895c49b9c2ddf40cde9afd22d101ff7bb8e9cf4ec4a7cd1929cf07d843fbea1f306828c58ae6d9a80782ed31f015fc92d2ab03fe18929640a835d87a0cafc97a306afee89dc1b02cf80210d912247e68ff6620142e44175fc718595a6a3fedaefe1631d620784c746d740d849c9ef502de4edae01d1f6df51f2636e1ba5fc6005782ea9ce4f1e5ffdf9ac52229c3b7ed19e01665e000e26482b2a41012acebdd7d154f1b1fa3e49f540cfbd8aac343ca44de1ef7f62651520ef409329d42c285b327d612b4c3260726c527ac507413a32e07c0c08953870bd98d65b433ea395a2c8a54a", + "3d1b51", + "069d4e1f066f24aac4f0015c55a965a02752cc070801ed2e31f9347eabb0d28d6bc574051a00340fe7e5ae36f989ed8db7f6395ac124d3dd8f5daeb97df46d75f5b905ee006db812f4308286c0ae79bf5824cd39638e712d216f7a5fe15e5613a4f197ee523e3f5e2ef8e6dddb6e06a1575410bec1b3bb92357f59c08322c2866fb5fb5618bf71fcc2b68873ff0694280baa88542a16d8b65337ee31692b3a221749eef52739e5308602b6f2589f34ac6243155c410a0c19b91d48c0b2c149335b82a2c668479e3cd536c8296aed2a507a40e476888679bd06efaa06c331484937728c8ff900ab4bb8722512c1833ead2b1bf55e1c341c4ed0b98f81a6df3ee573ce534416cab992fd27b84c832f4097cdd8ba5bb684e4a996c65e9d039bd9da9c0b350d93d84639411960716bf1c05942231ba99bb267e69b8e27908194", + "210976" + }, + { /* i=1799 cDividendBits=2234 cDivisorBits=836 */ + "b86a956d9b3643d6c0e054b3ee5923a82dbe9ba359dc18fd5239ee6c860f40fbba852e1f185f8c4ba01c03634af65013d2fe67cb7ee95015c7650e8391feb5c7195cedb12007837eff05a51b103633f0cf2536c151379ff96349c657cce0cc5bcb71c205dd5a807b9978c98672fb3e5bac1e5d0978f631e1b53e8c7b26deecd4f430cdedc79a77f8b1f9247251dd97cd2a5209b15f33248efb59a0b9f5eaba0842c57d64eef527ea761cfb9cb204df1a5371394ecb6f30877317903c371a6a31c44a419893e7d6116d497a1290f33e203924584f9be26e7288340d90362f922f61ccaedf52ff69e55eaef936d6d7df4ab2640e054f88fbbe7729540c3754d49795872ccac347bc60c9e66f080fe174889165447cf676e3", + "019b01a3c650bc8435604d9b05b159fa4aa43c27316e55dae7022e43fc6a3dab9f17c734c7b86e15810ff053d8b4cb22a4fc8d4028bae1bef6df3a24a0c2cbd9c5a196e8887e0661b4be69db1a0eff5d5228179d31ec3c98b50cd65c0504b27d31308c9c4ac8cc89f4", + "72dda5bb63d876b8342e33c43b4f287820b57bf18abccb7987cc2d98eb0e00bd32dc8cb5643d3bcb7d89762fbbf864f8112fed691ca0d10432ae04d02b640d8d77b32418f168eb76964446f373508cacd6e661db7bec32c0655283448a148c0caca40a2d56c95d5c9916da56da05bde8a6f7432db2f9100e6bb8c1f7abc90ad8e8dfdebe5a23276cda1402b20fd5da71f01dd3e55b93c176eadc0aff47d30704793cab19acf67416e35ada0fb5f2a8", + "52be9295b07001ddbe1481c5226c59c9b9a8ea1f4d150fbeee52a635df394eca0aee88de2d8b79fe1457212f814bc223357d2d616aab50eedea78c6c33e741379f9190fa412604c1d501fd3dc8cd6a822c764856362864af76770c5ffb85aaa4abdeebe486cf46c3" + }, + { /* i=1800 cDividendBits=2034 cDivisorBits=452 */ + "01a87e374a8cc69cbb022f86b6432b9bb5d116d9888c5eeef81a3a477fda8dae8fbd26e84c43085a343b7ab9ecc065f2738cee30d200ab310c553c710ac1569fee49e8aed4d7fb5ed8be888d987e4f7eb1c772ca9693ea31dfe69b15527dabd4d08b4ac3ba953dd1641821edb67b44a57791ad02257353abe90003ca4902d91b4df32c28ac66450fb481e733e151d8d5287695ac879551a162160e576e1b122e8e473204ef117e201bdc27cc03ab39977baf704bf8e93cd0802deac79af8d891cdbbaa01aacca6f4b644ca24dd41c6bb9087f7590632f7c599c865606d60a5e9c0a6c1b6c9219b51c888226eeed61e86f0e4f6a131f883500f47778dde4d43", + "075f5278f9c55feb031767fbc4668b158ac2662a79e446774a89e2207aa4e15911f73a733ec16b18d930a3f2737d58d16740559360c306e2d9", + "39943c96847d16bf08fc550a69d0431db0025153a4084da3135f00df58fad54696965893a1ded35ea8ccec5f6e727baa15ff038564613e854d4d3a5e1072e7fe0074f512a4f300fb26afbbb04faa039a9a69c1510bee1f33635ac1366837eeea55dcc29c68ed7bb927cb1c1c4d0b6b85de2b967162478d1eaf9b4d1422af5f557864805ad645bc33638094bad1a0c48a875d270191c5ccbecacd35febac82b9207b27acb230ce075fd0dcb679954bffbd20c3d770fe69678cd96ceef5e23ec389d412b8abe47", + "0100f72db0cc622436d65104ca3fa07473774e742f24a6d80e1e41d5460e1f252368d9b568ea1105cf07da02a2dec8bdc4d8af9ef89e9e5514" + }, + { /* i=1801 cDividendBits=2353 cDivisorBits=1158 */ + "01099e39f71628c78b17dfdddf6c5bd236e45f1b3613e83b446b87261903d8941877b0b9dd3a29c56a292844a3b72b047de3db5862531e008fd934665efde896b78f8aca0cc79232cac8068f1387f74ee03aec36c4f0ca4be8294de4efc2a7aa0b7e1172a5d03e5459349ae6c1005b3b6d9c5cd8e76a3fcc6ea4b2761846260d40f2591592e336f91f4275c197f93158a63a0df6b8e0fa6a02f4d6d5e70b92e9315c2f8696e7e6409e382cf2b154dbfbd9441b2645260830e6cac8974e8356fbae8f4d4a7cebd27f6f042cc10794e745b8f73e74a96f7bb8f6d98b49ad3858ea73e91c7e2f91bd25ca7b5fac247190777cf6f42e68f29b24148c452dce4a9b2c713474fae30cf066306da0446a90bb959ca773126eb62e3db7023f20c20edd87586e863e48aad2", + "311271a32a4bfa698d67997ea114b47be0cd8f5ec3782cda9afb801b4fddac720cf8b08f98e9632594cc9c4c2563c14c776e846f12d650bc705676e516ccf504dd9e3a50d80f672a4c6d697142a4165cae9b75f6ab461eabc99a3b9baa5fe37a3ca3506eebba7ec85a9dcc73ddebe43843da59f51c96c0e36b7ed5753b15f5bab7c48fd00e5fd5edfca8ef3287faa8adbc", + "0569ae7612c4ee2f049d1c87df9ed839ce4932d6bf33f371d06ea96903770838b520301dc7d0baea42d037f7560e2d4e0cc0dc7f8982f268ce224a83af5ea0cff816a317096d0b6dd3576767d745ee132631e5640cdd34d24b53977e1bf3f2b2eff738b1b380143527c0692a20da3d782d2d3019c85fade11d840acedd9d66088b671023b4f057d7c8fae8d8816b06f40529159c7520", + "0c90db974d9e4232bb263ad300c9a58245c92d0115aa8c1aac99b747513f8b42f8ec93ab83a23152f012f97ae6a4ed1f7dbb28dd44f67fda4050caf4cbbd8d4c34013229bf3637b27ec7ddde36c9d2f019cfee30e11b5ac3433f01dbeada0fcfee5a118ea568648ffac5e0815683adf181a35b0f0790094ed6e64b90350229441853aa4652d1fa4f12b554e3d1873c0752" + }, + { /* i=1802 cDividendBits=2954 cDivisorBits=2952 */ + "01949a828389c1f3b63770007674337a4005545104e5e88631547b98782b720a713a6bebf8c6ac0754d024c62b4cedb90092d050005c00942e46cc9abdd5887a6f0c6da294c4544a3ddb73c174a3ffe78af4fc72dbb6899a599612fab8d124fa42bffa53efade1bd5d84e355dc0553ceaef96e805fcba1e92b0f21e1e0eb2c512feae4bcc009d8fad5eeb9b38a021708141528cea732afed1233dd9583495633af8780438dc71884cb43793be912d58bebef1abd98d26143d7bf867cc5287fe4fdf71af52211c66ad1446f04681aa0c952394fc3b134c8fa9596252d044d0366d887c6f2ab6f3f074d6d971b6c5fd9dd239f56b875e0b52fe466e6dd1564fbbc36025d32f701d812618f498c110cb136d917d2c9b79303cd771cc43d7975d43ecf378ee04003e6463da18a8d64f35a73e02d6a771ac2585d3e3b9615378c260b6768767e01e6ba8c803566185eec84f4b8a4ef9020b25d609aaad3931d53b39935645336ceec7a5dc9ca13484029f43be5b8", + "a933c5fa1d7f89c1110706537d3b69b0eb1b934aa4b343bdf3a927c38706a087222f8e23650299b38526a6d55c63ec349148ff9474e0d5d46efa3a39371335e1dfba3212874c2628c902f8943385574d4d38e385a254b60e5ad6ba3d1480f3de876cde878115b810bd7e225c0a4656a80293faabc9a2f7dd1bca830b998f7f4dd37aa311d0e7519f934837879a04715939f99d0c263ca3233006cea1a1a7ef68f20300fbba5486e6e4b146770df3454da1976ddae15812d59daa6b6a5e5620380b93bd566d04a9bceff684a9c5933130ca5f8299b6ee2361b49e70eb4fb16f224d7dae2d78f8e299ce2f99dd957c0c34461e2e3d15147444a663ec859637f5f86f77e856561c7264a3d287b611b0a127d991b4ab676b082f082a56a0841d7656f1a37764d054d8b45335df1e71f2505e698a75ca1f6dd949b5d284887eea2e7ebb0ca74766483aad197aab1b574dcf0a6ce93e27e7d0a5455069382c597e8a61bab94867dc67458fe5f7932fd8da363922", + "02", + "4232f68f4ec2e0341561f3cf79bca6de2f1d2a6f9c81feb56d2948f11d64c962f60ccfb1fca6d3edc5d778809425e097703e50d7723ee88568d8264b67620eab4cf93e6fb5bbfdec496dd04c3cf538f05a8aabd071e02e3ce065863ea8231285b12096e0abb64d3c09e71123f0c7215ef4468b08385bf970d78cdbc9b80d529443ef769c680a5796c829447ace0e2561a135948ee636a6cbd3cff840060654dda37a4196526f76fd7a16aefaf6ef0150abebe1e30fb11e2c8431a5f06bd3a48ddff37a7537bd17576481fb148f7a66f0a490be7dc6ecb3d22ce84b2dada08893eccb96507d4d4219d137e7b134e1c4bb131a5bfbb68c475b1a1f040a388bd045236d624a559f2d9847a47ca4e94ff48964af6060c42dbd190c6f90386d9952215447f176633c94d4fb1ecf280f75d3235a558b86837caaaacff10c268e51ae69f25d2f731a2a17260270c2283de956a3cb1d13d0e2bc16100a0122c4a0b68471eee0a5ff33abd2a9fe2421e0783fcf7374" + }, + { /* i=1803 cDividendBits=2697 cDivisorBits=1673 */ + "0159dc105bbd21acfdb3d6341fbcf8332c61da7af1a6c78a21fe8de11324e5f76f80bbae088c53082f9bddf7509d826ded294d4aae04d6880b133d15b8baba2c923acc4e187bf7ec08889fa7800e10b4c59b577340b57aac4451b4911f475ec00b23fc97b4f2253520519f74a691dbd772246dd80cd536354d53d31b3077917816fe52a99f16b6288535758c8afcc769d56ad1518efbba2d1bd4ecb57d8e440c6cf48e8a01c360b18b8a488aab65676d553aefc22183877493381cfc645e8b668daf2439b1ce2904943e3720b631415b97a111367fc869589eae890d72c8b3525b776561f7b665fcc223a3c2879013026c0890c7c5a020d98f347c8629087de22848b19703c5c8a7cb84083a8009db5758812fa9f66fd6baad5085e405e67a38829f5a806aa2b37af1831df190eb3dd7322501e06b2d402eca1921d1fb5292a3140659ec0af66c4c254f57da0e10a1e8eb22", + "0162e4c2e18712ba63d39821e7c4e8be46fc7ae0cb5c5a822af1230fb9b2c3c9df665cd77a9aac306c8ccb0f0d27828e5b9192237be05ad2e202d7a2f82847c2a9d62250107f59329510223afcdd42ca569290a3fac6144723fba694d8cc691f4d592a901231a3e52eb6788a9431fcbba7549cbb68e6047037b9eff5cab9418ea88d413ba52b520c7db105b49261b1a57d9c1f3a3be72566858374414a26197fd5dba6f6d100489e1bc0b1bdbef99fbbf380f632e32dea454e82ab5b662d49668f392b3a38bd46cfb87e58fae54504ba387d", + "f97bc08592b59083d22dc31da6b9ca99d4340445fd531c30d7a0fe4a9abe78a4f4986ca07beb1bf4d124e89083bd1e86b5df59fa4eaed718d215469554c1a1c9e3ae3a76522a47c6a479d7c86b1e4f1331e5484688862b945f6daa3217bf169f3a8f566e20579dd61e73caf570ef6e4dd4b5d78254275b1cfded03d91b7e0e8d", + "974196ef5f60fc137aa7bec97ef23710a0ae203d7eff7a36d7e7501ad26676d47dcc5a793355601c8ba32ce923f7712cc91eb77f25f4fe1ff0740af5801e33931d41b90c721d287e1dcaa444f03b52ac92fb3a3252fad0f585d7cea472d69a01af337a15882f7016955e0007b3223ea5aa814b978767761091ac59ca4cc7642acd82e3e8c5faa2e1523d6c49fdf8e3345a5dc85fbb21f803450aea8efcc6065e8ca89e13cebbab38c070eda71476842b18a9e756cf4c791b96371e89a6effddfaa99966188c4cf2fba786bb038dbbaf849" + }, + { /* i=1804 cDividendBits=1786 cDivisorBits=500 */ + "af0b732b6e6a0e1c6522d5964f54890c05c3bea734e2e6102d6e65bc6e03841d6106b71d3847cd1cc94b30ccd6a809a19afe141d442435bac2693fa75140d0522a911f050d0a4473c6fede0aceb8806512e193a313f80b8fe0500780450cb45cbad52c538a49317041c6d92abe215f2129d2da884206c15d0501cb59aefe84acf7c72f134dc3b862dc453edca5eabc1f602b19cccb12a0d3c848681c57bb5bb7635c785820c39062282ea22785de08eb513a339073ba476d40ca4d1e5de686e451b33d394d25f89794109be32cacfdb582934a246aff8ad628c0f32d97c43b", + "0be01f19ca6d3d037602ecd2e33625144319c0b74dedb57245ed5f405102d0f1b776f06659747a9e9d0e658d1eb50e7b07a35820b5a324b9ca1764598080e6", + "0ebd71ea506eda32ac92f44bb307334fba79fe0e27317f3d06788c8eeb5afe8bc334d9c68512999f02b22629a58995fc75719bebbd3c0e29067b428561ff7d6cade4957add40b96821696260b3fb9d647747c7e8c37c210466659aaff4d9715fc8e23f5851e365914a1b6bebd319f5e62a0df47a08edac0c2993b3046068758e9cbd9ccb3b65d86d1526c97e171e3e62d983c348085260f3eb4262cb8ea4d603f9", + "078e40d31cd9ef19b6d018bf13908a3531c1acf10a825a0aed11cba43688cad66d9932b2c51ab5f6ab160da9589a90bdfbf40203698687bb8ecdb885d3b285" + }, + { /* i=1805 cDividendBits=1493 cDivisorBits=287 */ + "0307fba5201312716311c468a952974d8856663c8313aaab240abd27377e63daf996f7217495c0ec56645f3c6839d36cec5334b71a1ee6efbeee72057249cc6a995e15055d484388de0dcf1b60047e3b2a9ef41126659c09fc3588b60ea54ae9f51bd88037607490119fcd81f1a94655a4c233678ba9c917c38bb646d2097907436140d41ebe611b369d7a100578362e88020a61c8909537e3a5304a5d96d8b7d1b3735f2b62867177d3fe32c3680fc02444e8953917d8f3305cc6", + "3824417eed3bb225a8ceb4e37ff5aba87676fb7121bdf3b8caa394dac36335dd759b95c7", + "0dd266f3fc9b0dacf13562bece1f1f431f4cf559cfa22f27f0c361389043515f9a1bfe04789770b231219e11dd17cc02be65b107685c10ef299c91e30e58d02ada8e9eebd25e85de8c961d6bbbb6f670d226c00a4ec0fc179f664df5df0482c8d1a30c684f395433d999e103740cce255533ad9c48903f015ca40dc44954da491a523506595d79c663c9fe72c0279bc00fd27933c19e51", + "25645ac8ac490c54cea5a79ff2fa81d264d66c0fda1a84d20621607c8f22abff267e26cf" + }, + { /* i=1806 cDividendBits=881 cDivisorBits=355 */ + "25633cd6b5784690e8730517233cb92954e3dd565dbb342e1cacfa892a10c09a70a47357a857d8f88f5dd21481d903718360ae123115c87e668a5f1b6de311783cc9518a4fc2168580f323b01d7e8083a96d10046b1231a5ced69ed1bd7e2a9775d8be67ce30d59d6f7d8e3ed7aa", + "01c2d129e53587ad1400fcc5b12d0a0adc58a3da1ff8583f67f0c8c4e8b98766db4d80ca10dd08e26591c3b9a3", + "153b1a3ba1275e9e63db9df088c4bbe64d5a1ddf64d70b688a5eb81f4497350851d6e497d79fb815ae0f1d5ddbe4355a05919d71e2465854d6953425ca3e0f908f1e", + "bb1aa41f7fce557c95785fd04a19a7a0aac00adfb152ab04e76d7e1f3b31533bc756bffffcff21b72bed0990" + }, + { /* i=1807 cDividendBits=3571 cDivisorBits=738 */ + "0324ca19035488414634e12c37a7b5b5fcd0e02b39f43ef60d01ed850ddedd5d6effa29200ae642274ee0a86e684eefbb5b182fdabe857e0b063e6e29bff57738c9060a55b6210f6bad60ede2e3d2911c394f9d6de521404018ad0cdffb3e9b67ef80809dcd98b41502f9fe90d4e16571c6d4c7951a357f302be3c0fbad4f1e2a31b2e705d5a6ac6fa3274076fa56f72cc2de074a73250e155a22d7c3231b94b0492aeb67921597d7aa17affff8803e3d36e9b59ac8d325750296e31f3cffd4abb1d8dcdd091bc1a249788ee909c3bfd013c923ba82a1f0387d7ce3cbcaa253549dc6e3e6667a1ed362de01896e66731dbc20dc135a6674f3afa04147c18f7808d3512e02d341c2364c512a9b89e8a456f088ac223b1a55af678d3949077fac7232e89310c8e36e0f23d3db12f8da7886703f953a40aeff4028c97ecc699f938bfacc6f6fbfed8f3710f734bbbdeeeb15e6adf2f783201fafd5f726c14fb3436dd33a522e8533b4cfaeff8f47a7ed9e5299e1de17dc84662efd1da7cdb910911e80de1e33cc70218ccfa91ff031bb056f32bed8ac941270c9858ac05975edabf93cefedbe7b7a8ee990f909b09c9bb5b8aee3fdb7cd439c22668310eddcd6f", + "0281eb1cf435050d7f3b4cf49365bc4278c788b42a9d0707c66417408def708bd773d6fb3f3f62296f5f172520667f374d8ffa48ccb2df59a451259d889ef146a0f012ad599066ecf9398594c96352b6863be2ad89295d236bc196dfda", + "0140f42693636126c421985d5030f1255cd5448134a094670e16d0a2f3e972c8ab2c5510bebebb8f997b2a40ed49b12355db18df4835c687e23fffb88719b0964e461e6395d4df1e6c8f95367674d11b96335d7a09ba574e637e30491f1d73969ef9028f8e07be065ce2c3ab24e5ac862855eda03baffc3a807ac3d8207fc14ed8f367c490d82eed0e6660be207c0ace1c0ff3af325078e7b0990630f218c2aa0adb3d4a39bd4188763bc50a3b0a1d0cc365a18f0d46f7b128add01e19e4339977a61adf9c150c9ef8d6715c5c1378735e232c854eb36743c47b2351d5a1fdc2e2234d20e89b87bd82fed91b3cd5d110186f0a516f0ef4f2e92bef250d445639e8e4c8315ff2c7f4639edbb67411d67d48c4392320e311a87ce86ce76e1ba414a7cf2aa897cc87bde6c6ea231f12f98312eb0828b10bc897fc0c9520033d6bd2ad34c3af7e13a9540625cfdaeb599e751c235ddea92f2bd882e5a52d6e902312d63bc1", + "024d2324fd4d238c819779b04b98f9eb9d42be1e161e20285a4a00e370b422296400be1a16aa498fc2ab24925baf454a34a504de927ec18ebcdd786e03b8664c018d0f0fc84f6d2dd69e37b0f21ac0e98f33dad0a014dd33abe24bcc15" + }, + { /* i=1808 cDividendBits=1282 cDivisorBits=490 */ + "caf7bcbd7f4eca9bf385f6fe310ee572348b16b538d799698691ef96a50e1a929e7d0701152dad7aacd06bbbbb4cdf7499b93c69ee14414c34b142eeb0bc1674053241119b2cacc38a8de5ed0b1a03d922d4fa93c27f36c5572a248dacd3f6831dae3601783741a05278e735bbb0cb6a82bb5f55380ff04217f95394d62600c00661baf0a97fefbe62c7d3974792ff6d5aaa3f868800d455eeffeffcd2e79b59", + "025685b84a268e36c0691256031976c073e65e21545aa909eb873974f0532a361c555baff6a997598e41fa2a9a5771bdeecefe68f842953373e479354e0a", + "56d038898e1a60fbf782c422423c0e9f7c2d123136ac9ba8dd78f9d9ebaa227ab3f8ca85936d7d882fd2779cd85abc536273f8d3ee52a9b04bedb0625cb9863fe6c53a498c23181e9f63f075bf297e3a5e3fa856ef0ac997ad1aab1f9ee7cb5958b01a", + "013e52238a19d587ca95807d5799808dd334c63b30c687d8ff07cabe3fb6b4b254fa01e9c9ea53225cfdc3bdc50efde8d928178d32728c8ffd119066ce55" + }, + { /* i=1809 cDividendBits=878 cDivisorBits=213 */ + "1b4652721b18383ff6029f025742f18869b40aed57170b17250b9487e9fc4aaeca80b4a0a2386cfdc3b2626f0729b09f3851a84ec7e8e5b4d0d4a0afa79e1fbd88158e6d7f6d775807c932771c98acb244dc11a625acd03a7ba1d59c32210a080dc810f0dfd060e45721d25a8e4b", + "7a2dd8f29ee5b5eaea94473aa1d52924013807d0d423dd6544ac", + "3925f42196c71d774e040cc717a7a69f73ac0247042039d7d01b10013a941a1bbf92f7040d07ba04222d37eecfc31fff3b28ce9a14552f8c1b175e053db301c2679fdd199065e3720dd40ec64c9e4037ad7b7457", + "4de22b1b42c076c6722009b4a8ed7aab6c8f9ade6e9b772e47d7" + }, + { /* i=1810 cDividendBits=226 cDivisorBits=32 */ + "032fc3dfd1f1bb96491d40689bf99b371077afbd49fc3f9412618567cf", + "0b7afb30", + "470ea6df8cbe88b87e0f2e30587d1248da14ef4259b0a361db", + "069355bf" + }, + { /* i=1811 cDividendBits=2092 cDivisorBits=324 */ + "095c5923fad5360f019e08652d3dee23d8afbe6d204bb6c503e3f82407064cb7ecd60ddf127134c274129857c8985b57c78124c9cb9d8aa67669532f16ac443e39667930d4c183f8188cbcfeea259d8c9a7f4469dc91f3e228e90695c89d7c5eb346748d2974961ec74e08afe2c70c6558cc7a4a663a193ebad41c31f45bfcd86e02cc1317d224819a35795a0fae45e0ca2263b5026f79ab7b5e94225e75818e0780c4002e356fba7721fe367b0afe0f5e27a362006348ec24e8a81e8309bdb6adb7466e48e5a93d310bb248aa453004661f45dec42441d5b262ebea37c407a96ab3a79f6ef88d0de53a66c84a6b4efbe48776725f524f869b9a12e8613f8d5fc5ee7249557b", + "03fc208fbd3b6338b147d2a70b119a38b79ad0d7b33242e9dfe25960abecd26d6d04d8c71bbbb09048", + "02595c8636ed915d89cf5bcc05319c5e6f4c1e350f318ad205bbd0b2bc2af9221b61013625b568fc59eadd4985f36c2823f429f80befca00b3aced1e774a3bf4123d8ac221edbfdbcd6a83166c14d1b37d8f781ebd2d3a1e3b4536f332e735a7f1691c1a45388669cad6ff32cdad4cffb8ecc3b34bdf30ad32191cffa22bfe035f5987ab68d83ea5b86cd4aee4deac0d5d541c87e0be14d1e48c1ed7285874785705d12a3f35ef621e0676dd1dfb55a70710c58f5660778a548d257feaf63cf55c7ab051999d122f24afc5cab2c5d4e02ab9169bfbbb2cb5ca0d3481ad71", + "0365e63389bbf9f16008f4083f5689af19feaa204f2c8b17b5b24ee1f17323e66fb7508feaf390fdb3" + }, + { /* i=1812 cDividendBits=1269 cDivisorBits=441 */ + "1daad30f0b9b7f8ce94c49ef242322509b922b55eec1175784bf8b4e5eff9fa73143c69ac596bb25d9ea7795c2b2e424d47b74d7dc911199bde077b77fbce8cccee039803395b96bca1156921619796ade6c4ce4f381a44372401a311e50220262d288fd40fcb6f49a424f9a2c39c5a02a46df8b9815e3db52c134c5c39d1c3edac1c660beeba9029d4991ae59210b7552b5919e15761cb60df9dcbd4dc9ff", + "69239d89c72f568c75180d6962c949b3b616a7af5917264de86ea5f587a9d704ff52b3af8466a47e2c0ecd5110c24ec213fb9fa664a214", + "483c673f690dda44b5cd76e19b6818a7617868dfdaf6c5a5bb170e47597f06dc4bbad9de96f37906ad8d1e2db89e5325883639e6fbcf0763441f9dac14cea4be0f420d5ee12c07468172e3c9e86fb658cd222301879982e951c96d7ed4d64ad6a61fd291a94721c7", + "1031af06f06a06e0fa8babb2768078a58a496558f1b4df29864973dc7d1f92196a9eff41339b29e580db750365174bb296021344a33873" + }, + { /* i=1813 cDividendBits=821 cDivisorBits=658 */ + "1b9b84eb111afecd5e528e9ded049e795b7e20c3b8d8921c772e4bb29ebdb7c8e9263abc827d7cdd2e4465ecbb3af5f29d03d11b5f3f4cade5f786255832012ab921428474956d1e31deb2e3124900f9db510fc7ed52eecdc85690e55db40092e4c41b3d91a681", + "02de86a54bc26b6e4bbd86b4a8ee58a89b1801bfe0afe0ea82e0a6e4bbbffa3b544100d64f686de2435d637947c7d92c4929969166d6371eb2ed129ea897a675b0c8bddfb9242942d77291e75a2af92d1c6ae9", + "099f33666fc0152145fc48a749d7ba8955cfe34d3c", + "01a923e38a7ab642adeac422f90153f14d1b55cc3f37d4d18b67a6c0d77e25991505516ebc761bbbdcfb484d4132fdbf2cd64db0589d9ffc0adf8fe40163207781e6cc7aefb7bc77b92bc418789420eb2582e5" + }, + { /* i=1814 cDividendBits=3104 cDivisorBits=550 */ + "090d6dca4f5a0064a1af93f45786bd3080afc246d142b98901169e834f216ca73b8a2a1b8779b5000d48b252be75b9b07b247eecb4da81377abec17975792c0e961df9310f97631548f72549b8293c250d239e2a9d0807cb256b08f761f9f211e8786b3460e8b65154803475aefc5642daef80d08432f9bc68b90cd4253400fe00ddeffde9fa8c70108116db1030922c67d5abd0052cfa74718e3fc7de77e9cc9107e4c98a6c19ff84fdfc5e2d89b68db7c5833072643e525e4a62e97bf832a3f0b8f0cbb3d83e34c6e84c72069d886f79e5069a63be170bb4c3f6fd496b54aad56820a9cfeeb1847f71dbb82754c98ac3bb60b7c6b083345370e41f75fd4edcd6c2521a63239c4c0cf7b12a28ccfd010880e57ce73ca243279f386e5c87b14185a664c425bc70e9b1391ebd8c8d67671fe3b0aed3ff8691782bd84bd63504cfae8584225578d0b37910ec8dc629bff3ab17f4df0ed75ed7488f4fb7746e8ceae2f549e81c2edbd493716d61e7d9c5d7091cfa759096628d92ccf9fa0d391bfc2c717c7d", + "3e8e76154e5242617e8e2ac7b70c9cb7aafd5409d66a194552801a79777caa4900cc98505ac42bfac77be4622e38ced19fa4adb81e8eab1e967474db29627c1f10724172dc", + "250b9df8c327fd7c3a1a16c111e1a9c27935838a2582562a699062567e03392eddec4ef8a277d1169df70b527813fb7cd20b809e6b3f8cb3b959ec669fa302b3ce4f8087e95e4d6ae9d609c436ac7459887b13c9f0630e2ddcadf38fdb16cf80eb5f3ffbcfed050e50b33053f3c4c7979c9cf5f98b48d6378246d78b98b8c5d59e36cd076759870d7b49bae3491c7c476f1605fcac3b539a558cb7ffea84e04ecd116f5759fa8efc25b67a88e0aecd04b255d2fdb0818b687d1bf343a47a769a1a9577e1f5cd24212393ee5688dc423f7f3e97f7fabe4fabd6160ca099e27cc1b36927675d1c7769ea26ac1a2ae2243bbdefc620a2b5d9fb325165ed52688cfc52a14dd2af2ca1db6c62f0748d3e5314e10929830a063eb5f66e0476e7d7eaf5ac9c2cb8f3d9defdad9cd4527bc5e29f562c35c3508db2f6136623608bb7ff", + "27de5fbd4db8fddbcd4cb7aa542446d45a1d3ad6c351c347e76adfc6e77c95d195a4a0e5bf03536c2d058ef5bfb3c0980d3f668c5a611e77fc8773dc568f90783db6b0cf59" + }, + { /* i=1815 cDividendBits=2214 cDivisorBits=603 */ + "3688606479ddcffe4afc3e4624981b6e01a21b779718d4bfa46708489973385d2d938e77a09bc66e3e9616a32f1152297e742454222beece51cc18f37e55d518375299dd6c7719a27c3e29a21ef8a524974d6cbf3142755a165d6f2a588e3bd0484efef95cb1f0ea7716f3d5fbc7251817c071ff8e420bb355e4a9e8d8b1c61c5f3d7ca1905a1d205389f37795835a67f6b0e5cb6a45f3d25fbaed5a0e97ba2f83c119cf367c010c03ef7821dbe34f14f9581924bd43a0e340fd61a9a39ceb45d2eee4ab5ea6649e910bd467544b7252de0885389a054c908e99e358838fbd1d8c6783ae0d8ad84679e0ea5a44e3af92a3085c46f34f0be8facb65649e283ff61e9e2bd2f3bd2e15508000f15eab94f2bf5b7e758f", + "01877389604a112f573614d6bcb11c23c620e9dde9b5c2646519f6ec2610a58c2c6c0a27b65af7016778aa0f6ac9982dce2a364ca9302926850a9c7a55a0c0ee551496575c95f0f1364c0660", + "23a9c273cc267722a8027fd1a52a9f90c270ba07325f57bf8b29ecacaa06d42f9ebe09ebabe7eecde664cfab90095a4c4c53564d678a9a530edc6ef03806b3986850be77870526474a44da70e44746cdc23c64f619930aaa1d2f597277a033e441db9042867f5305accfecbc768c73083d38c1d147e0686c9cf7150e7d374061111356038089ff605b4e3202c002df788343532f42aa36683338abf07ddf35f599adcd83d6ad39cff0f0e26d16baa3a273b2719e4fbee7bfb28356e921c09c65654cfdd36f587fd119c2", + "8f72b580068c5e3c3dc174446f20a4ca4d0099ca60a78958541526332015b11b990e0107a9f86473f9b263c36e92d065f193455d524d76937dbdc0b6ec4636fe057142bc89f16bf4e240cf" + }, + { /* i=1816 cDividendBits=1285 cDivisorBits=770 */ + "015ac1af5ba61265f0e74a7de1d52726690d68c736d4a5c27c59a10094938591df1cfedbbd55ac047213964fbc12e2b8b93289fb8b1af34b3949b1d317133b7155f6382641f56b94c909d5638a9fe0b37bd16ebfcf3e106468c69c66a97cb498de3dde32ac46feb65e8d7db1c037f8dd467c40cde93d19f635de2c9544271d1fc0b36f6ec2e01ce0fd9bc77745ab2f377137321b18fc71e3e574fbf3c14b0ee745", + "024a98a9d2e57ebe144e909aa3179cbdaf53f5972c0af1ab5947b50e58e2d25480ad4f2a4ed25fb2692b47c5bcd756ae12bd22837c1f721921e027fcd6992e59ccee55741cc61e9fcf8748e86eb1ba5ba68761c765fe6a0adf6c35d0ab401005c8", + "975481a848556601fce72399da467d434d7ebb42564a92a316e0d3ebf16206daef69ffcef54a234ed5614207d3bef5d8cbc41e74c32989a0f874e382f4b3a83c", + "0133b1817bedc728e279e29158172591eb393066ee8c52420625ffc1b2f4a1158fc0c837f802654fa7b2a59b12da8ad1b3cacf76ec97d27c13491c318a809c291ee944e333ace5ec149afd644532328b5ade7816df35f0c15f8abe514d18aa4c65" + }, + { /* i=1817 cDividendBits=3108 cDivisorBits=2331 */ + "081087f8ea98f8478b1225455f959d3100148519bc34b8edbf5b2aeb6ffe8a1c1dc66645b34af3c37ae25b9c0ca085fe5e0fb6b0380f2b7e0c5bd4de1398b56c15344031af53873c34d262ac3768fdcd32a18ae698ad8b77383d1e97868b748610bb870f446c0a97171653e0eab31d64fec03a4fd8e67eac454ddadb3c691758099aa595cb851cbcbe9189fa33feeb03b4a967692a06573a42021068c640f5f3238a01d420148291eb7fef84d33605164862321b2d2aa63399cb2b5788a2c9d917af926a18b227fc575c023ebb28c9fb0c908e6e3416fc276f58f954e6bbb2169730f9388cf9430f84cd3747ad2f279d9494970c303ec21bcc66626c1072b315e24c4157959280176f6df3cfbc5738406c9891d40f9f6d4885bbc5b1de3eef8523c4e287e4b9c00acdbe1e977fe321e66f9c839501c8f86f03b398ad9e3e0dfa934f71634021554432eefadc689545a4327dca189752e59c0a7211a0fb1607de27d275dc068b5384beab4bab6e2926753847a64195f4756a6578f3f596fed525c482baf23b", + "030fb477ee719893213740e89c960650acb6817878426718d7e455b67c0b774121798128afaa98bca7b564d5d96cd39576c89eab8386206efe138b2d0f964fb1cce3a0e054f809ee44a264f3b00149d96c9f99c8527c7986aba8c19f8aced69c5cb6c5c85e772791ebb308960230ca977f1dcc1b9e2ec45e9084422ceb927d588af83efc611afa0355aaea2eebe5c751766cf548ef2464ce47121a7afb22bbd58d0bcd0de51cdb404d114a93f5d35ad3d0b19c577c3d63fa27cb2cf5059fe935a4b196af0b83fd2e4b93cd340963995674c5b57a539b0325ffcb1d42dea79e38e76e0056d16d6f37b0198f6a9201bd212007247066ed2a9fbd2a1dfb0947de76e3c50093721daddc83b1df930f0b3ff8e440ff5421ef2d5e7b59efb3a634f703d90288b8", + "02a262ebde34456dfd32e6b205aa29e19433077cf1c9e9a0126da172797d1abca1d04f65d8094cd499218fd075089189500d3d917f295f779385b0500de9b8a73cf61bbdf0bbfb43d322f1fa26b57fc8a8406dfdb01e430799c279934e991f28663b", + "ec7a96134da755b215f2a7a71895118ee1fba5527713d2082ff734697719e49b852037cd1612c7a6baf3d6e5579b219326689718f0aa1033841e81148171843dc64423526888f6fe0bbe120f2f547bced059a7eeecf30acfd21ab8a0b7dd0e61f37d57ed99a1a4964f5f0240ba6cb5758be00806f86251b2d6c9cb38f615ec045766e4d9ab21b12d357c80e746402fde9ebc5f611968e5c12b4664f81e1063272a0750c2f77fa2c32f7e73afd379ea0b726b1023497bfb3c6afb54aa3d944847dff3f8e9332a097ea809c4c457c606e35b8c6a897a521aff415c6c3f65bb1e32670fd9aa506830e82db7298d422136935f6725569a36842ecc08ca73177ab9b7f56c1a3bd931b50b4fec016ee305ce5f31e3e2a0411231022990d7947fb27ed7ec1fd3" + }, + { /* i=1818 cDividendBits=1865 cDivisorBits=612 */ + "013aa48600688b7b2854627e74bec68355ff89762055a00cba2c3d0745eacaf207f6c8b9b160cb1d84bd5af7a6abb9832955ab98ae5832c7f5590d1e28dd4434e9ea6d64ba70faecc858dfb9a6c24b72ffd16560cb759794e2086067dff320b6628651f4538ed126a62e13e483fced714fb1c40cf921f4bfebc037236e164918f43fec265a2adb41addf850a17558761252c38c24560ec3e1203de8430bf70990f54b617b4949eeef35621f45c66fc0d563875b40d0d8c4bdb4d781c0e0ea92bf69f4c8062a70eb718600e3f8e3c3c56a96d0fe1919bcee4a6367572c5cd9cac8e7e57236e170c76b16f", + "ad284cef31628b9bacf62da4b265a5e633a48c34db263f7d2cc1f036e15b06610ff49bca95c7107c34fd0f79f3d5e89574f98327875790091e41a06603645de581edec4e043017b97b37afc7", + "01d12cd3e75e8d610f3cbc476d05efd2189861680fd4468de25f806d461339a06f8a6a5811778c99d1f5622c2a5e28addf50a3e0c4d14eaf10d5677e8b9fd311b302adebffe17af93193add982943fe744fd387eed0392a675d2dda4cce49f7c1772a21568c417116fc769ae3a2d2300ce282396e55a24d5aee388727ff2f0418d10146b4eab2be43d335563dc0497f3639e59317e6b085c540ee34efeff", + "7f5b11aeff4b823a3eba6dd99089d692bc13d910163b7b18f4b9ad1c07bbe14ae80e19739ecc95e513c89c68a388cc87ca1b916954258b457dd36e6b9618d7d2e0ef40ae5aaeef5d0bf52836" + }, + { /* i=1819 cDividendBits=950 cDivisorBits=443 */ + "283db87a817dc61e319e980cbdacd252f6bac408221a94f1635386ddcfd036490df94df0787b0d57f1bc47058b0270389cabe2b273fd834d87b72c4b98ea21ccc5e4660e425c0d7264842d4a13f6d575e56c5986eefdaa73201f2201a925aad210efe5ab83aa5499d1de70f54bebb34dfbcba9cf23a2fb", + "03d95dae9790206feaa6a1929087ee4b874909b1b05d39f2b1d6cac02249db926b57155cab749d137430e7c7267f8c20983f023dd57782df", + "0a74683c1f410b717141265e920d21fa0d2dc63bdc9558264a765e836418776fe1de8857ef5f57b8b8cdfea257a675b14834c9744cdf23cd6bcf1833578610b2", + "02ea6ce63f6c39728bd5577933cf826a7cae7740332aaa5bb532b6d79185977497db858dc78292d47e4348d26a3841898fba0adea022b3ed" + }, + { /* i=1820 cDividendBits=112 cDivisorBits=37 */ + "3ea4295625390b87fd8caf86df15", + "1bffd6b306", + "023cbba228542c9e8dcc", + "140a21e84d" + }, + { /* i=1821 cDividendBits=3381 cDivisorBits=179 */ + "0d81e6315cc959d34998c4cc4857cafa4baaff72548d3c5d8d825a50e007644e64d0f99e9d3c41dbd8741fa62188f1a0b7111ed179636a1a944de08441e9325cfacc6b4c1316812b7f7e5e285b6d88a6cf8fafdef3de78dd1c9f201b3f440036eb48fb2fa9e2957b32149dba6f5eff92218e3f864c5ee7314eb09c9cb0df2f9397d08dafbbfcafca9627425ed606907a27cdebc0210cc58db7c928d50b2b5a9a7da9a412bdc119d82d20ef4b2a358fa1de168713d2b98bcb8e1a490b0f43e561d91e69f11ec042f0cad4666f8bc90c9d9958539f59c224dc27ff4feaa081170ed5a69920198b908d1abdd5c93585b323e954788766191e01d091034db8b38078c87608249e2b04c4f13751860064b01adda33893dcac76cb33fca66dea13fb7a716b1bc1a0e1e525c3d76bdc0a47a8c54bb0025be9176d6c1c069d5824219589ebccffebcd15e01c8f36547e915be2aaeaae97dad18bddd8531b7f8dabe073ab2da0aac1693d282c252e925c8738ecb904657f086984079c28d1e87d33c25e9befc81c3b8560ff2243f35d0158f9de0dce11c04410c73682f79c660d246eac7e176202ee5719a9", + "0135276fee9452e7400a15e53fbb8c03b005873f57122c", + "0b2f5e848e92de6d20c03fa85581fc2caa9aa84807ce5191a0c8af79f655500d2ddff02c8b512c8beafe896f1a8532335cafbe603d52851d6dfc258452728a6f2811a487086d74ef8087d33b9393fa18f33a9047e34816f7557f9793d7820bb1694d684a5ded899cb44eeb9da66b9b58cf407d179993bb7e8448a3fce5c1bc1c9eeb0a3c318a264ee81cb76faae3023f2169860aa7d22c5d9ec24e22aa673007b19717e6f2d9e7513ab357094d8d7aea4f43077c2b0248ce7597e92a33bc97f16109e57ed56956885bd5e258c06e8f83ceaa2becd2c2076540cf429e3a4541665ad1dd148bf8f811b1ecdfebc2bc3f2b75eb939f5148bbec4dbf03d7cdecd4a76b5fe57fe5884e766620664585715ecdfaa159b16f45afe31ba2a0d46e778e9b6848374c7dc69296fdf652226845165a625739f5aa9590e7a4ac027ab3a589425ba1fd9c6c69f26e0f4db4a20cf90c6e950c1a52bf28ee6678cfea47050e26fff86cb9adad80772e8dfd8b01ee6ee4252de4c37c642a6aca808a2d89f7f8039c2a25f52620bdaff3e165c260f1587d1127", + "59812d07312af34bd90def3a3e59a3f81804806268f5" + }, + { /* i=1822 cDividendBits=2116 cDivisorBits=474 */ + "02891de570f6b30a8bf99a8bcca03335e84ccb17ee7f4150ca8ec2b4d2ff2b5ffbb6f7aa83b3493b90848ed939c72a5ce86d65497c09ddc9ad386516744698997a0d95a3cf79c32433229e5d4809e393e7b3f6f704b2453cdf340a54ca8f22422100c430986f17ab1f23d3c7d9f2035c7066095f02ca69646ead3e381a427ddb1ea1cde959f5efe745dbaf4c352bd9a036e3eb4045f61755b3be74764380d632e5beb34027b5272fbc2196e9a86a35173ffa8667663d83411ddaaa8512374755799ef9420b70ca6d413a0beefa8999a08dd7e9d6afc235a75984c92f5a28b86ef98fe4792afdce01b84eed4c8b2f3083bd4c3c044dcb8d57fb83d913fd27aa74de1b96c555d29c444d", + "ea20ff6503c80454e812fc43d997d859518df91f3958b933803a461ac3a88084a9d809719c5f5240d57905fbb6a159d193405ef1e59652415e142b", + "02c5c0ff2b808147985e190fd8d36f0779c2482c02a9012c657c8102e1a50d6eec3b19b8780088c0dc64319295c2eef3a5c4c523461f782f2ed498900c6fce607b1ea495249d6a5a9ef3db99eeb7aaeaddf89b18c01a133c622af26af57fee65ebb104d43ba4d6a3c40200267eb0806671ec5d69566bfc17104afef30b6e8385f7b72c9b358c283efef418ad484d2c9f29400942cdc87684bab4a4e8669aa6f6ed3f310f3a9aea478f15e1d617b33f77fb24fdfef59377aaa1a7447b481c97fda23d58e3fb3423f66d00016d6eba", + "6d1e79e6ac562ad04dabbbbc93b7249d9439d2edfea06eb7a6d06a8a234aa8bac2b1eb797e36e8ef96584d5bf1ae2a33a70ae01000b3592648230f" + }, + { /* i=1823 cDividendBits=3231 cDivisorBits=536 */ + "4083111216ff5d77679f30663c92e8fdcf4e3bf7c659475de7fabefb596dd11939fa2697b1016c51d32f106d258582455d8ac45f3b54ed37b7e6ac9641ab9247106142a3bcb20ce3a9ec87d44422c1a697912f2d77ff6336031b80a5625bdad2983dbf5936d3f02a4176ad8b3e5d61859ae846f207b0ec823af651f27409c04b2742daeca166d3d078a9c04b70118b05bb3c1dd4c5ed59cadd65e3dab009db4224ac8a167c6ea0d1e6bafb401cb86717ed60780f0e53b0fa57a5e292eab2b95e8e6a348f1f724a65ef7864efe3cd83bdfa114250abbed090d0803e19078e5d3872ab6c11879c6ad468cd067fca567c280871b1012edc774ba332fa0932437b06c99718b8aff7695adcd239bbf497ebba203468d4fa3e1c93fd196dec784621b7a70ab7777a9ffb7c95b06c17ab15063f9cdf0fa4b6e23d9b3a79cf728dffcfd16df285c8baa40c770f412b23ff082fb8078955353c1ea8f8df1639ab7f45f09c1b09909b00c6d98eca5bd33a1b524bfb50e2d94b6ded0ec8d49921e0ca037b6dae40709c6aa699cc1f48489f215af95d1bbb15ab", + "097ecdfcf84750aebb753f84f433c98ff9becd8b35db4831c855981cef367af3f47f3ec9e0ad546b50ed27ab2fca34ac2b60274d09ae249453e2555567290fa86b801b", + "06cb486f8045a8276c61f99cafde743d3db3cdf50e7b1d7dac62dd7f8289fb80b4518870f701e844d93865245d40af022102a7b764db3e5141fdead69ab386b3f5ad45c95d40c0e9e36849fc4773aa68ac0a45c854321f5ff117ded8c812a93c248a05eeeda109b1b7b0cb499f90b0a6bbe9fbac804928bcfe56e78727d09650ad57b71e2b592ef82cb1112f1c7a8a1314625ba9aa924988533c8611b703886dd1a20ede2a4248e3f928d50eaf090e316be61f0b0735513f575ae0478e93ca42c269832a0123f1e7ae74880f45f659e3c02e0d68fbe60f968984ba3cc278729f4b5869532ed8e3c944a8589ae85ffb4daf7bee83594a08793eeca825e6e1f9325f30b23fe7f43e8cb476d032db4d443b13d947113f03fb080b567e2b2d6c2fa253efadaefa489535723e24649f0f242b41eced54d053bb5f98ee09521b11d485b29bab726790891a097408373a2857e1b08c", + "050b64de56c5c2245567a76baed70243e95752c63c0686cb84e1deb2de14ed4af6bf7d4232ddcb10c97a3c5ad47bdd50b1df91b9be5c5dd3c637ae0e170fc6542376e7" + }, + { /* i=1824 cDividendBits=3381 cDivisorBits=355 */ + "06fe0108cac9140ff60f2b6f57e949201ef2523f3cfe077f863da86dc56c4536515f364f3797720b4793251c60dbf332eab14ab52c539700446c30d9fa8698c48b14be47cde6ebbf5899fc79c4df82671a16a760e2e764423b850b433104dea1645fc4fbd038d21c1a3ccbe9503d9a2f7f7f0bc25ac34f6e2ec839b4353a8173eead91b0ff883d4d870f96379d2a71e34aa2549d4a44cdfc0d4ee9e86c5cf06b71aa7dfcb83e61995140b29e8aeb29a7b96df10f0379822f9b2c77735ae25597cd4836e5afa3ce06452c5ee1c554b18493a8852c3db5e8916e36b55c9d2cca95023a1d91a1dc81e5f2b76b59d2cf9b9e61cbb701cbfd61ae603256222d5cd0084e48d20b4c2ab1c1ee2022969f86c844815bfc0181af1cb132616092d90dff9a26a64a0dc2211a2eae18eb04dbee174885eea89826419518d141d96e516363a930a318781b574d734ba0e1def5d17ac697d4575a8bdc8dbbc262e9ebb40a6d6d36aca311ae46cd4c2e2a50310b1a9c309961e32113e3b2baeb97d89f83bceed0457150b37db0c4dcd592b5e71fc436b3ce62ba9d7f70e0855ec2b383f5352cf3762f9fbc0fe90b", + "17dde57bad99b58858f0134a6ffc9742b92a2e31791c25199fde84c5c402080e540ae16ba87327f59549be63", + "4afff3290b2b532d353b77cd4d7e472e78939d1cd371d94b04b034350e56d88f8e7fba4dd746621fa6b59c0367bab4d531430f4f89531a0e2396bf052ff5e053b2985d007403d204be9b4496ce756164754f0c715bdfa876aca13deffb86e3ffe512517f935e0107031feea5ecc79f7ae548f4e4083a37187e7a1ea42b935c278064bbd1d89f1eaa3688d39d6dd3445642cbe9be8dd28bb31167b779b032570541c25634f08281a14369bdcf0055f166cbd61b2185e59d7036e1903cc18648ac0fb02a9580172a5f6252aa1e07ddb2bdc32c4ed8e19b2ca74a09a3c4b400d0ed144aa78256528c469a8f3a665d457a3f3d5258b3d896ea760e76d22da79bd5e5433c5d4b21af814f132add269406c31e39226b70f7d554d824c22088ff41cf7a6a01149ec3cb270d5545cd9701e7aca183d1418fd6aacdeb46f9ff83de0f23896fbb7932acc50e9432b08b6562a471a9c484ab2a9bfbbfbf607bc3ce12ae1a6bf64277a7388cd979c3b9cbcdea318ac85792ee4c7154c05ceeacfd", + "13f73182d80653b277c90b7e674f24c733a3025fcb6d072e8d8d921120250f9d53244de61b5d2063123a3d34" + }, + { /* i=1825 cDividendBits=907 cDivisorBits=182 */ + "04c42a31d188141c69a9dbe7a1b9601c7f537b5099d0192655864a4f88c38d904415406192d6f06f81114d65d5ca3c84e2e994fc00d6f10fccb24144ee4e03257760f94f3ab18bc7c268988e443570ac5d412db907f8ca93cadcf7a705657a297cf1dbb1cdaa01df369a21449a5937cf22d5", + "3bfa747d2ffe9bf18f9c3ad968bfb2e40f5d270b111bfa", + "1457eaa8ac6dcee285b9ba0a7fb17315b0c38242690da97cbc8d02dc803c7950e57378da3cc43041c45d316f266092b8e116bcd41400bda876efc9d9a305105f61bf16bb815981a2e5fcd576def2e5f4fe81e786e9645e34af4dd5", + "148aa71bb53eeb53a5f72a9e812e4713c7625bf542a9d3" + }, + { /* i=1826 cDividendBits=660 cDivisorBits=334 */ + "050afc28050c411490575c32f849813c7af8bcc13b6a0fc7fc894f9776b35fec973644126280f6f24582691ef7a85451ca758bd6bc206e68e0e4d31f1a9d1190057bd2a7de82037d9f4f02e763f622bae94313", + "0435a3c483baf35ac7cb5e5aa90c1a421526a8e8c536da14e0ee35b9603d8e32dca8226e71f5adc6a8b2", + "0132ae76422ade15ea774b169ecb5c5a415cba19a7e15af110fec03e5ab524725712c68f8040199c64dd", + "022b0a97538adf98e5c4727fde2a214ae753e6c19483e169c27f9d0b325497e7f8b6ec682521ee0c1969" + }, + { /* i=1827 cDividendBits=1490 cDivisorBits=451 */ + "02c568802e15e7bef1c75402d05e8167d029063fe4b99ffa971dc9aefee3718dc1dbafaf9d9a354f8ee123713c2ec927bfb6dabe22cf4ab11f5031d4c87647e235103a2884b278c71a107bfe10e5df3a45ecb80413189e8252ea0ab0dea02d0c8e3f4300011f656e840785b6c921a9af564a9c54bbfe7dc21f642e8dc34ed7241e65d36b6de87a693222ee11ceccc55709b1cf8a31659b4acfde1f2a44270b356091e062810ab29b7cf71d251cddbcc5414ad2d4f039b307287cb1", + "02722e8da43cf12897753faaa6c2f001786458fc9afb4566638a8e725114793ae8b27831903a1563ef7d776b09d41f12cea67cafacff35a1cc", + "01220671e9eab80a384038096dceee9744f6c51e5d36d35b6cefe688316c529fcfca54f9c4b2b35804456cf81cbd1686628057502be01ccec94fff343f8481d26378b2c999486bf2a921d06841cbc258aaf8bbc79e805db44b5dae1f55f7688cae274c2192d548243a32a2ce710d28a47d1ea4c4484ccc8784314043b0a332c7716031", + "668efa15c3fea2872dc054bb2fbd57421fa628f6711f722cc1d01233b673eab066873b4ad2b7164ef27829458b1e55bc90b3e498122c04a5" + }, + { /* i=1828 cDividendBits=2598 cDivisorBits=2087 */ + "178771d6075c8ada9651f2f80ce412ea4b466e782eb29f9475139ada324d7e1f86bdfc340c9a7008cb2fc52628d5e85f4fd160dbfe449fdda3f92b9c8e98611a8888b6f5a06b8ad17b479133a7a87dda60dd478614cdb54901c71f936ecd7b0c7f6dc2ef78b6c04b036f788e8f71933ca01cbac2bd8fd8a65b2ad4f4d0a33dfbeba6324d283f3c02c94fc31fcfb87d31721e82d727b3a81d445bc8b4ba11e5b225f0b7bb4501062319e0f75abc76d34de578cdef839a6451b93cea34445522ec6b760856f4c91e77d8230d4f94edd5d9f0635449e01b0fa62ea09bae3b1ebc78bc53c5be7411048970549c09b1d7e10f7b0c884127dae490adab87c28c9c418af8e96c959d8a24a1b97d0732b731a81f5cdd46af09c31a079f602e2be301f47eecd23bcbbe2fd41f3d9a11bc8374fe536b4a180dc877e97048aba4302704fac605032bfb18", + "0c70b1ecdeef903e9a113ce2e9ec99bb93e77bc2de8982f1fb7ddfaabaf2a97f609538522d702a8751d506f1d8fbb656794cf24d1aaead32e0eab8bad3e4bed1a1c532a75e1c02ba98cda97c705c8ef07901b6b7ae70b2b08ea787d16af5b81d5c2b8b2755355bb170424a242122adb28fa0cab98f4379b76fb11cc12fe831794318c68d9b34de3788a2f4c3e9b9af3d9531a74edd197c568ac2f24d4877ad0bff30206bc12e9f82e1f6ebe0bc8e46cf8274e6efa5b69daa04def0a6cae5d1465db7757af38c9e0dfec3c4d9a230721534dd8623eb91d4e30e5078685fa765dabe917cf3ff7f2de96cd4732540f2e94a62e535978d4025391ff533b582131a5f102a651c89", + "01e430fd7058d0afcb11860ea27e3fd17be35dc01202cc919e59759947d1c4b81f8d98f6f3096b4a78c63d144301ed92110052418ee9bd1e4fa8781fc9d2ba8217", + "0b99e81a79a3620b661c23582d2cfdf63e97fa0697af1dfdd2278451fe9dcb78a078af2fc58d37026af881398ce6c8ead30164424cfff7acb6c71d1226f7b30084f1e9516d6bdf786f27f0357d47c0470fcfc69b084395b92af753b4b588416be7545d6b68a7dc738aa870b286aac61996e98d0a188411524efe3aaf0926ebbf35044a4ea1e00914026220a937b03059bcbb68dd1488efcf93590146f7ad0785df7623827939474ec1b28217dd7182713839a0e41fe5d2aa39d56fd9da99fc91c7fa7c7d42fdd1107a21342aaecdd75871724f3847fa44390bcd16fcfbcdc24816644ab9f1f859e54ec9ba3473f8d4b20695a02be3a518cfacc056a165c4c04899be0ed8c9" + }, + { /* i=1829 cDividendBits=644 cDivisorBits=417 */ + "0aee2c6941a0034ce0518eb204103304ee6cab7ebb6ef835aefe3223d899d9e391be573621d50cf2edcf6409ea719e7f42054860386592b43f58c8e4364057bb3e97e7bd6bb54d340d333c860d369bb333", + "d752cf620907f935b397c74f819ebd595dab09216dd43485aedf838515f2c4d679ca20c53f22bb12671692e414ee07bf5c466fd7", + "0cfec5fc412fa3599df8092c79b7c206d3002582e4bdb0f32b0a8955f0", + "67e86f465d15cd5845aae5f146cf8110e825424b5c0f9b2bb66211a9fea5a2d103b14e8f22ae45e6dede1760f1b1b8d6116176a3" + }, + { /* i=1830 cDividendBits=1297 cDivisorBits=1214 */ + "017d9a1aab391cb72655dbad575c8e6422289072d172fb417d173d69ac931a1feae4a7c010cbc85659c552e579335d7102c7def00192302d305b7828a1aed99cb3e366cf0a06397d1d112800d8570abdc1abd50d0e3edf5701c3f04233cc5edfcddb510210640561fe00aa92ade46bd520534e29f96fb771132f7fefc79a5a67337ced35493a170d052c1fbb2150ece05b5553a054d6f14a95e751df7dc14285a6c7c0", + "24178cbbc655c08e36c83ba445c242c6e53eef736c9727a253de12260fd229757b7a95f81fe23bfe76e7a4c235071ae335919dfb191086220de2506e11ddbaac68c49e93f095119ba450f4af679cfa12947f6f27342b3a79fd34a4000845e6ceffd6b83a2d8e378d15df19107b2f3dfd287e4544da586545d88bb17b282a925d914171cb4b7a22fa71f514a7bffdb76026ca191d61084116", + "0a92b292ce69826c3abd3d", + "07c0d04dac2afdc6d6c4c8d42e18e98f183824e2bb40d99d6c4f94e7bee35ffdb631993a2c1e8ad1cd9fe4a700289a1e6f9449d4251f206a06ae06beb24a5f6350578ca9cb73cfc5983647899258c663bc3e6fe305ceefae71aa6eced1a18274c1092c46addb3c1b8b6495dbd133d485b18c4be076b7bfaf8afe06dfcc2488a109fdff601a748cbaeb247f9bd8f8c79cc29c8a1f47a60782" + }, + { /* i=1831 cDividendBits=2506 cDivisorBits=102 */ + "012a3169dc0ff8769fb79156f8786b7e93d179ee171ff1dd90cf685d39a9f3c2641a4933d0df6ee947c87255baea10032bf03437f4a914e5f1d0f463048eb155593c41f90e47f6f82b8c4db0ba8439756f2937027be0c89040ed9ae8691f2b359df1a27d42828da36ab1cc086918d0c685ffba85d1b46457053cd90fd7aa7c873a99e4f1ea8f83ce175665c3192c70f23b61de010ca21088ed8ec73862d8a1ee103b72be8291a4c4b7d1e2bf20f8f686f5fb71f1d653d8e4d513e79abb892effa36f133f2db82d4174ea0987c20c831011007ae261e6834158d3c8c71e05e0c8eabd482786342bc8f4ff42f7d4f378bacdf320b82e9b6b779343cfd3227297495a595bb3c3ae4e78ec5cd1bad441bd282ff3dbd07a6bb1a3408c70de3cb8a1472f90d34f6e6f7b9c6b5e4c56fe6558a3644873f64caf95145099", + "0ce617f0d649abd93f96bd55cb", + "171e2d9e2efdba348f3a339716f6d92bf13734bf6ad38966edcd1a2219039322af0fa9b6c2353bfb5fc142194002730dc926875c54b6045c9b25ae5b7d9151c38577873f5adbda9154608f06e587e38a5ee8822575312e3d0cc312271f8cd01d38cf818a0370e900e8d61fba88074df024bfc7334bd727430b73f7c5ea1c930ca2efe90f60e8f80f5a015f42090da641aa3bc1803198c8a7814077957fcd12407111992561a993f61e4d0fd5a593bc36a221392d9142cd05328abc77785edd318f12feefa836c351577268143189e4e449629017bc0825bdb9f9b6b68770ff1d7bbe45b6e31ea4f46aa64878b0ba621c8f4df6596c849b47c45e03125bb8a050b7525bbf7c1cd4adbd75f5be54d79bd52169655f7e42b8dbfdb27e522ae949ef7f6b26c6df70429a7327dc41dc", + "0b48e43d38948269cb50220b25" + }, + { /* i=1832 cDividendBits=2177 cDivisorBits=1333 */ + "0148941ed9daeae6360a543774dc99e840f55af0a0d78f2298362a59dfea4ff10d3d7f1756f2ab7e1aa22333c8fef858cada77d5cbb4bda3a65f520cea46c21b1cc42bd3dd8010fbfb4b37013e8d112e2cb6f984febc32cb54067b0f6a6c71b56bf09330b9b10d87771ec3eefdc930c7759b9140f479699b18545973073dd8c3303ab78b4e2d5a16da2ecd58d9387c3e9e7908fbc7d92643c05571479067221da5ae433f55a7762bc64915532627c20033afaf871198c87f92b6b0443b476c456db4bb325e77350d09630b32b7f2ebb00ef8e10d40b37a904120e2704f73f3357902d139ea8b4e5308e9f4b25e1fb5ae3ff78d89cb99abab03e14dab01ed62065f59d9b690a4466eb9b1b5c7b773559bc7", + "0dc4859892c021631a0e447a71ed3247a347e02e7fed3fd7e87dbc2eecd10e27832734125693955e0bd9a42c76b6c84577996d6fcd4af6739d89872275644c114df341f024e6e8115895ab6191fc5a762b322388053ed688c8a6be2a213ab13f3967731d142d5ea3b5eecc976c1a252cefbc6b1f5ba712442dbb7bdeb5907e2293b81a89de3dacf76cd474d73832e94f9b5b246e1cd93137669d7e877355ebf8771949c25c725f", + "17ddaffa7cdf6c43dd88260dad15598c9e3dc1fb243861b9c6a7860be1fc0487f9002855280fb298a1a8ca499fd244a80824617934ee2acfae50cd90a69f9e3547a33c97f4002e656434960ab822fabe4398d929cbfeeb197c6253660a0b4aac86e7d0b209c97eb2601d", + "0802214e8be12880719fd09c6992207fa3cab3700d5894b3f7b1832f876704f69d048d801e8c35b55e8e7d52b56b212547e3f6328fa5b4235d97a4b132b7642e7d119ba62a68a49e61dcaad995799ccb1402ff89de5cfbb23a84649319cd79d6a570b692348c94105a3c9b71ea310ee36f9ec277d741d6fe2d3626e389698075515741c6a15f05bdc23f54af1f6c70b04c7e2c910e59afc041d40a4de832e36f2079507beb0704" + }, + { /* i=1833 cDividendBits=1025 cDivisorBits=96 */ + "018baeaa1d1e3f7530d54c62d43ab4813b4ca0c36fb82eb681d896a0a7b47519147ddd5a4e1e54bbf35ccaae038288bbbf2758ebea48f36c9c9c204b40f21df2a5ab8040b143a607b84aeb6473da6323bd44b00d1ea2b5594958f31d4c5cd4211d5b9e05f2e1089c174055badb309a3c4be77ed29dfd254997a533ffbb61976000", + "429803f4faa3e9924f257141", + "05f1150fe437433b91881d13393744a967f2cc231e69f267814e4a14f5a3458a4942be9717d7165c723374ca1cc5d51b37ef88936a49c67bd6c610209b804c33d51c6e1eae2f90ea98e64df32bea3587459e22c24a4db09802e935318b26a59ec956586fc93685c5ebcde08406271ad0724379bde9", + "0ca4a7efbf69f0da292d4ed7" + }, + { /* i=1834 cDividendBits=2421 cDivisorBits=470 */ + "0fa37a1c2074eb794fc2fae26828c54b338d5e5596119ebeecb418a8bb91fba9d265978b112e6f9096432065251db4e82a4dd7fb62eb9afd61857fa9b43ae0be63a839858341cf9e8a95b480661462876d601eb8d34db3df0b57e033d6d5cc9a498c8aa2f745b29a018449d7fe386a8b9fad896b31f05a9c832de3a570fc7d8f604d108fc2e532f4dfce201db1d7b0bf8ade6bec17f8c06d1af7bb770646732c1836ea686c94bed0ca971f367a3252c89f37f267cdacdc001015cf45bff69b973c3738db785f2ce27768235243889ff7baa6a97bc8c01278361610a1b938176c981e2200706f38b512c448adb1335355002d8520a719429e14c405c7bb3c1671ffd627639a67373bfb0b9f21e9e882485cc944fb6c628e48b83232baa099ca9d8bdbd463f781a67cb19a05ad342fba", + "16e597973a2581effb0eb6ca020c452bfa6d4df9994b2d22cfaa5b5612a56afc3703dd6e0b24a4a7280b4ad98bb7bdfac2252605717d5877791496", + "aed931de76de92aba29d12cc8d5a56f1771d5c854f45252e938fcb2eff5e54e8a81d46b66b9ade0eae52b202497a264f3a90b15bba7ac2b4541647edab75a5faf8c2b68d1017794b02628824fa39709ca14903c47967d8a5f6a3cf7ff54baae41935b0a55f6ba2c1fd1158f988adedc2455904672c571c91b2b41283967e43729f537f7c23faa661d6b0a93726fc887f0f93fdefa9f5f70f2d1d3a40b1d1dce4241d2fe631dd82333bce07a7f920283cd3c15a15800a9475d5eaedbde9be114812fa4746b85ed1c5b2a460c3985185560f74b518881fdebfa466936549666c3da88bb5aa998d4127500d896d49628a910877ba96", + "1634cd83c465f670ea0f898fb5c3c6b39f1fb8126c503fe3011e7ff9275d3d0eed4f5053968765811fea0a8a6ab637e3670d25372b0a7e719323d6" + }, + { /* i=1835 cDividendBits=106 cDivisorBits=33 */ + "019015ebb27ed104495d3aaafc87", + "82a69005", + "030feffa37093f5c67a1", + "0f2c6662" + }, + { /* i=1836 cDividendBits=3807 cDivisorBits=1904 */ + "4d236ed1d19e4832a886da0c2ef5c5e6f7521fb96010dff4d344fcca37b951ceeeec0e231ada3bcfe6662d2b7bfa440baa5b99839ce4da31411d9e3f914766db261273c9239210d81530487db020d7448f96f2a41e5331111cf7b23718b213a71a5b3f497b19e5365885169c97fd892b8af8609c267d1ca59d3e9d4ad79c6459c4ca8b6237e701723a279ae10507e1df3719e74883675b1369a0c8b6640a36634fdb873853163da643ad9d249d6a37e0d39a2e27d41493111a351f383e218ba64b5a72de383543483ab3c0ab1f64771196d92692f54bbb008d65958ffbaa137c853d252bb5fefa3f53f45b01f24b0a41dd76bb7ffc88a32c0dc543b171cd565d203cd8d69ca3d95c6fb0b3ca8fe6af1f44cdf581ffd2d6e93a32ddded6479bfc784f128e72d1f50e0484eeee7eee84907b744d9a560348694dc562bf402088e3e3b4943133fc43b14996b1cb40736b62f08acc921cba18d29dd3b3f6e89140033ae5f97637a641b30c9c6803f55665b18018eab0ef2a38e9b36a1b758a8580fbc530eff43d54a6a5e143f1bf13d77f4ac08dc4c1827ad883e81ed8d36eaa291db123ee9de215798c2ea4463baeb45a6608c4cf44caa20152220c83146dbd37fad80b57708baa61b4499ad45070c3347c9ac6b5f977c9afa4b2ab4aa8", + "4d07ddcea04fa9e82261b841d2e7efd871c86f9430a77e204e39382ccde7e595f1050ec59ba97dcd6357166d545e0ac0f6828eff82ac85d301bb92fb039fc6a4652dbbaf59a0b4447484c04f6e08c8bbd23c34f101f02327746ad5fb9eefa1abf9c61020af495dc8ef7d9bd251bcb87b77bec69ca3b5cc4bf540f606c91751247e178836660d38dbd635d967fd66031b408b02acc72cba897301701f7ced13d0bc56fe7e568f6fc22c0d251de34f2b467aea22be118fa931999942c4152c537d3adce6b52da6f4920836c7f33186ccb7150fb9ac642145e8c9353fa8b9c40d2b8a9fa641917e6e94e7ad3bc5accf", + "01005b9cea79509c96782aa5257aa20c6ed9a235257217cd38ec445cda3e55085b5a0a8a85d28a4934a2121b85af828945d94cb4a71d6148e4f5044edd1d7bd9d95b1a9081328954c4dc2401784dc17732cc48c5c9b278acb8e22731a95e1542c8964be0073f386dc14e791a523614af019067a2dbed4e1a086ab1e57e2272e14662ba93c5a00d70458ce46fe8637a83e9ff900c5c622160d060cfef2e5e08730cbef3886450ec36b03a0e52adc7ac0f12ce931dad0cef3213920d0e4d7f3e5812f1edb1b84791017d16aedbf15c07b9682b220f55c56fa8e8a6dcdee6ac42963275c22a1aafae1ed043ff41013815", + "0e7729e5213ec8eb651c749d1ac55c82ccc019281ff4ab0e3340ab10b234c5b10463c2d8100fe007423f668a40b5b730eb05c721cf3cfc05f64162cb2ad738da05ca3a823de02e98a1007ee31637cda672a65b6cd76081ec5088cff934ecfdf6995bae7e0084a50a3ea94ed63aa863fb21977d9b319d217dc8e6c67bd47693ad6ee8132a9581759fa4f22365f43abc2b20dc9e55638ff62c5b628323d3f76e10d214c89a10ccac787a2e4aed3ce0def7cbc50d7f2bca2142813370800a4739f0183b5ccd44d61fd254337159d25a75502988993077e5bc191f2fdb881da260c358e906c6143ffeb90d8451d7d5ad" + }, + { /* i=1837 cDividendBits=1385 cDivisorBits=730 */ + "f9a83a7b5a1d7c2137f7deb2fbdf939cbcbc21f0bfa9fcd9f8eced8d0f39f8f871c6d1c25c819a6279f58b93f4882880b7415fcdd827742596a8fdc6e17b51bcf474c0fff118bba7250e413622c6dbee50bc83982f77381ee0f493abc4a22621b1dbac75ac47da6451957204814af8a8c18d220c36111e277d7b29193b4f409aeef88e0c1777ec254dfadb9a92fe9d68324907ddd742c97af752add865f011496c260a0b564205afd65d500c4a", + "fbf00bcec445ddcc4f3fc04108bc3d9f1383506aafb5db58b50f21015ab4a362063e78090555d072e508aab5501c5d06ad5a706b43174dc6984772906856d604b2ccab2e84df86d9c7849b814b897c816fb6d7b6dead1fa8638a19", + "fdaec4c75c6f0b4bf37fc7bccd218dc57304551f906e0dc1dae99e960efbbb6afcc76b3a3e2631ee1a579cbec5c0608cfd0a15fcb7eb7e415bbf1e91ee77742c5cd8f3e6cd0f5b47dfa080e855674c67edce", + "20ea55bb6879122d6771ee7ac03b8db5698601c8e257ef2677a3fe4b377424d74ed6171b0650e5200c569cc3682f34e47b3abf21726a7f7127065e5b8f5af687ee9115979cf0f3c30515e70b66eaac9763e5f07346e75dba4ec72c" + }, + { /* i=1838 cDividendBits=2766 cDivisorBits=1247 */ + "137f09fccdc33d80101e4412e690a04575f7d0cebc864ba8e6a4e3840514d0f695d891a64e0a2dfa9a270e46cf845a6736f8fbeab6069052f61710719bfa0a9e73c6106763dec051f1b17ed404e15bdc810ddbdee6b7cd97e838503a172ee1f48efc89f5605a48ecbcf64f3f7ade24add992c2b585316c97a277c4635bc9c3f30d5953a7e029cbfa030221e78af405c47e56e1e44e3854ce55e5f71a3e73521198a4d79fd840396c7c7afd81e0024eae468a64ff01a0cf42c66db64ff0c1e4c15b0011e6fc77a1da78b0a377febee03fad36a74df071c8d8697066dae138aaa574d6ab4604a587a53459bf36bebca2a63d1c67bdcc5f18ebc08148c8a2ce098cbc394b064de932d23a1f1cc22e8a013ad0b7b13bdf23bd838a4ad0b76b55bec07ff5aacf134798d5784bbf2b5ff7d2443488fe8bf7747b14f4037c238cf29a8099de2745bd2d268a040e47b3e9af77e77aaaea0e1815ad17debc", + "10beabba1bcc1e3edca4105b108ad3b25f2c0de52006c84c865da16b54739a7ebcc1b7a6e1ce73674a6f1f282d84c6e5c8978d0d83bf0e3fd4bc88de91136f30e217ee03f2ab8324a68c102e21be5a2e260dd1e6ce402f22ef1e98beee37999fbb6fb8e18aa204b8d7aa5bcebcbc647fa6852eb657a823c089c258822a585f04ade006e00874c7c48688365681ef0d6dfd63fcc8d33fbc69801fe152", + "012a109b7a0e3c5ab2efa08aa6d14bdf1adddb07f612f2976f9dfb689332e97a7d5fd797a9cca651b9e66e5c04c40ef083776b16e733ca9d1eeff07b10969e4f5023e1e88d67dc873df118da9449453f87b59e11f224a4e81e78809a16846df61993fe42ec103b6635a4d40a85ef960b3a772a4bf01bbd5c2121a5736f0fc297c13b4cd641b1efd814616b11bc14dab00684bc1bda8c0e58414c3a17e6cf9d6bd0a41fefe6ad765fc3e7f3fa2ea158d990e1063d7df859121f7085f538feb3", + "09628a7e2ca618fdd68e3dfad6b66c6d3d44a66a576f547bf50ab875ac3cc1b0f00566eeb577d622e84636e1527c4b04f4c6c01d3c17fdc96705fe4ba50e4999385b6002c11f2e83f9ebc7ea1ef7ac00aa047f435e2dd81f87102a07b984af646aacb98416e748d5c8491d17371f64503d66273d7a69ccbcee4f191fa47cae41b790c15ca73f75a6886c25f15351cddfbd59b15038c833fab14df666" + }, + { /* i=1839 cDividendBits=1453 cDivisorBits=355 */ + "0bb86bbca8e2f48969bda97f599bb1a1ce3dbec4be8d0997c90882761708f22eb306abea0bd303055ef988c118e219a4cd9e120a50c0d1f921a37bfc09f7efb646d67dc559f476c31cb32a64fd925a784872a1448b6a707869fdbe8193a4ad3ed2748748cbf4c2c93d95025126f3b5f4d2c769b2772339c9f957e1a8d689530355ddf69bf1b56341986269766cdc61d7710a57ab4b6b38179d3ee03731856d0f7bcb289190dffef7a9536968d13e4f75e00084d98ee9", + "032970fe7fb7b2174d6c81f68d5f761532b227406f892204f414e8205fae8b01ed8a43637dea96b0bc41fd4e9c", + "03b4ef82d942e02e1f0f9301f34be882f413ef34efd3e73187618b4454ddc99dc784bfb50cc2876fc4e47445f2180f531b4ad19e70dbd6fef5928d0c1e1343400cddefbb962da6affbfbb2464dfcdc2434b18b4c920631bcdd34a80feaf8f2c61b975d20de9a6b5b0a86542d3c0650802f59d20ebd3fa733e1ece0805459668ac5e879f70a066a562ac9", + "5853b9027e741a5a018d2a2330b6277f8deb2e8b3fc2882f8fccaff80f6cf4c41654a92b0e0f3c1025a93e6d" + }, + { /* i=1840 cDividendBits=2879 cDivisorBits=729 */ + "7b7e45404589b8fb24494d958346db667b71db82dc1864f8047f84229ec9710ac624410eef674655af7c6aff1ad8394b1b0036a7e44120ce67ed61c8b0643a2d6d50dfe66816d980ddd2430a3242ab4f755ee41b66463577b85fe3ef3f22c10b8e29db518c21c60b131c5e507122170b8a75ab0ce37f098bb19f5488bb92429fc9720e9df09a0c6845cca89fc7a86564fd8aee5bb70a12162a3626e6b3317cda46d29c2a522920f453174a5a385d8d78ed78b9b6b68bc7544e741b98c7eb76d3ace656cf18563e7b33d406934c5a0480e451067905274c17e9b8b4a78c9f34eade934e7f6c4781a4a2318d5c89237a9fae15fe55a21b1de3d470ae023552be21fbc88b15fb490cde0f54d50ef7a2a533abc9cd1655c7e7f26196b125541106d1978387e51bb7a208830aee4fd361221c847eb13411abf13855b0b063b6d3fa3ae922c0aec108a3aa40070baecf4b1ea79f7a95b40c2dd2c125db8011dd1a8b92723b941e29d2fa49", + "0171c857bc024dc09e2cffa232a9315394cbe884058e0ac38307d581abad6c73c9758c0bd48bbc72d6bf78e4c10812f5517b28966b2693cf5fec39f081e896427107ea1f425df47017fd6a4af1b6ace4eb4bb14ebe7bad1ff31fa743", + "557e8495c9bb3e3f1c8a5970e29d2be11f624360cccaa7c25ada35439dcffb3d4b546d9998196e6feb29bab05d4a747385b12c3344959b54963cd19993c1b8d70e47efd590a4945344c316ca606765ec4a80725e9d61291049bf5438bbc0ad29f66bcc5e7be24ce3d0806731c7b2e47a1b33e54231cb236babb8953f9ee0c2dcdd5afdcb4a4680bb5b35c98df5538598bacf12da28270b3e040af796c34ddf3e909b4a4f740c889bb8189ec4070d6fc704b19666d7aed4b217db4dd2274f63310d93aa7021d80ab173215803cc20389ee2607fe5ba75f440c2cc869efc4bd8efb013abf4ea38eb06e5a4e0c83dce43dc150da2b49a2f09d1dc4b91dd298f751ec3c30846d09ac7b256a72789cc", + "a59fd1ee3509cf6d031d7ef81579a48105b25aa1282b87ea642c18ac836ee55dcc1af835aae4db669b3e728d0058cae64fcabd874107fc72db157c0ad1627adda1ed523bc3008a525389cc1f88d77b3d14c9aa3e8c0f1b4be1d5e5" + }, + { /* i=1841 cDividendBits=3699 cDivisorBits=1804 */ + "057e33df0901a3990d5d918458c4dc2792bb3a4c9bfadde5e60e330ba8fc063fad0a0b01aa03e061bc34dbfeb0e0ec30d954dbb4183ae3a1ca7403115796c50878aa242b477aed676438e8b577e23c4daa1f2ed74379d3969e60a274cfea2287bd5c747366ed21fa6c786ba039226a0bd42bcfde716e72e402a56281eb43acbd046378074e05c21fc73aa95defaa3b8d51b5f26ff4181062da6ea4d432e7e237bd4fc042ca6350c7b4fd8b88b76ac04a28647a9e142faefae348076f9003545bb6c4a0800f9ea1412950d9b7018737fe185108170f57f15f37b7f155f60772dcbf0952f8e4bdc8b67aa97d01642c54b5899b16fb46c6f8548d94fd29641b4377561ada30ed9bf51a92fb2aa209bd503af5f3f9c56cda0a38db653197b99af9741221dc0d66acd36d8fcc6fdeda24d1fda4d1aa22575433e35c7581d0ca5af01eee2afd0b9e8b5bacd033712bc7085bdc682947fc7abc70496c5dac53a7b4fed1bf775bb895b7003263c7d8f0cd53e4ca4773b00d91abfdf78ab51ba193c4b8ed8e3e5f65303696ab752ca67e989b4049f0f63fe441f40f686a18e75ba854d85238c04c861d8cfa54c8b9d055ddca41fca0f0e9a4dd051254f3a4c159ce56254aeafa5594058e0e19cd149d4afb6ce3", + "0dcc75b34274c1926e1ee7940e481c8be56e598d7692942f5045bfbfbc47e293b2429f3817f2cce2e8573d64fd79fa63d2ba794cc4bca4730e814ed4dc4c52aaf2763743ab12fca04dbe32769b9c4bb053f859e679dec83cc9ba2dbf807c331e80df71f58f45d4c68fb07e743d1a03937a60158469fd2140d2642a75d8d17ba50d44a2298e7401a53a9850803a53d25ec14a72caafb4f05cf535ec5e2f2d1f7689af828222d16b21431a10bc3df89740b0ddb8544371ede8fb132e2c701fabb0f78956698a250f2f8f8ec50aa8c07d184d746ba56f3a29c4ad9cf474ebca2f940f3d", + "65e897136a60d57a04f3c77271a45c3b1e325d322e365bc0f584ff51966893e097942d69f715e00241a2dad571b8b37114cf75ee8b6cb94282c797c6481e9176a2de79b58ede8a275e073211ff0ebb5aa8a70ff8749c1e0d0e704f8ef96c588c12a5e8ad8b16a591e92a2e4b081a33990063d8c5d7acfbc3369c5523ea3d26343d42564274b2a1a80929fb5ad1aa3c085c46f54651bc76b04c2c1dfff6ea198c5138ac912e65267bb32ecf096b1bff07dce7dde2d6edcd2e58697611823c7c5a43b00c876be0c53975cf8bca7ffd407f2e9bfa31a75cee7cab119d813c04ae3a6dc3caccedf8afba0e71d0ec40", + "04bd3686b781d40b63d1d4f2b9725468e15f3a469f9226fa84006401837f913f5788973757d3449485cb7051ef984db600579fa7babd90768695ba439294156180505292c019aad22469cdc3ede8ec3af462ac282f1e208cd8797533ed2f5ca58e2ffcbdab34050f1a070891b7e7ec3a4df13fe28558611e0f93ed307482cc2b2b75e21d91ea8cffbf3b479080df53164871033bed9776508bc365fcb0f3ad8d86ddd3f60f18f3206063949a4a73ea0eeb40ed59a0efc713f156f3b49d86721339a076e467686a442eb9c1308719ca7dd11f4072dace9702c24eb00e93d8995b61a3" + }, + { /* i=1842 cDividendBits=259 cDivisorBits=147 */ + "0454db170adce9dacead779d11d9dd83c0908f654ab8cc20c1b4af368f4972fc96", + "073df55bc9d52e522a43f9426022e933399b97", + "991d32979a836f9207841a8c51c4", + "0264159b0c67e2f10021907f397aa46a8915fa" + }, + { /* i=1843 cDividendBits=205 cDivisorBits=49 */ + "1265312d0994a83527fba8d5374e556c19d78d1743a60613540f", + "7f096fcb766c", + "2511ca4e1bf0f9ce5fbd32d3945fb2ccff22af2c", + "8f6acf257f" + }, + { /* i=1844 cDividendBits=1208 cDivisorBits=720 */ + "573df7041e94e27e067d6cd65936eaf950083db04214606b716f5b14923de137d35f26a4eafae15eb8f9f2c18b978d40db874c654d3a32b32b36f80b825590dc0e38dcd4b40318fef0d33da4345e086d43ddd4b483996bf8da50bd15abca0c08b6f5eebc0d3a5853dad875ee88d2cf640b6524a300c9b9dea9b750e68fe86041c903f868f0c3edd6245f91ad4bd9818584c9f2fc9f8faf", + "b92f0e96e3bf91d217d2e656927f7f7bae4342a59fdf0e0994b7cbc2c77a67527a7b7ea0d5595e378431dbdaf74f7d4e3aec7f402aea6c3a60b71b98261295965c7b94bb7bc316f1cc371aee0c796f593c7c232d227381326c44", + "789ab388754ddb58dbe8e0d447074bd7c385e164f3e5615001734a8ca0a6eb72b3259f3aff9846a3a5156b332583576097557b7080224eb60ec4143cd5", + "73a81c4aa2634ca942f9bffcc2ab11ee46efcd8903da9fd905b736ae2957a2bf1e973dbdac81be8f66895b6ef8d15a1e176c244616049d8cb8c6fe21d1b22c7f86d9619c41b1d5b4ce114c8e4d783eae2e299e81170426fb8b1b" + }, + { /* i=1845 cDividendBits=1978 cDivisorBits=1716 */ + "02f9e3f1d7bb9c90d4babdbcd231493715e8806e39dc4f583a9c21a6a682a006ec8c64bdc2dc0b9bb757487f57c5948a85a46a53a2e3f91716a97b17ad4fff93cd0ef1a452197cac1cd7feb652d42799f8a7d601bff5a1548a9fb5c016f2080131ca82ac84b2602b107d1bba7e86812fc8fabdce7b4267ff6848b558baf62218b81407738f5c605750ee9240f1c704a74181c9f5c424ae17330cc9f104d5c6b02c12a382a33096432dc5dd70a43e714fceb18929ac70a6ec1c9d350a88ad6353584a7ca50fbb1b616eea74cd463451f40762582a74277fde8d5efb3d01c30999a78dddb825dc6a8833132baf809767d9dcd78c357b5d3747", + "098eea7b7b26749cafee48ca5cc40a8296b1ef9f00a6107f33d3dcf838f9aa9f048b77511eb184f9bcfa91439c1dcb1d1e871317438ede8e6baab00dfbe86b403f76e16683f64f4bcdf2cee3673c472a6c1b3566ce16c07bc9ec282601b5d535c506f1963aa9cce5bf180ab9bbb65a17c6b6c1cca940db8faf0fa8db8399e5f8ea96b395ecc16cfbc3025a4df8a9f8a74845885e682f09fcc68fc3eb1cd486e21e060eb9d2f64feda2d855802c8aa49bcc857b0764fddd4b6874dfaeb481332d270c193bb4f4ba563a161b24f128486ddef3da72f4c574", + "4fb5c9ea12597cb7461f9435b9d56361393462a6d1dca8946d60d3b802ae984f0a", + "0371674dd61d2a16686b267fe9c1c20409a55957a37e624e2e04f71ddcffb2c394f006c73ba3281b248188c008efbeb943f4520d45589fdbebeed3778981f7a6102cea35a01936ff7b564c73648723d1b00ba6678271e9e0b2cb5c95708ea4629587561b48067546d6a9ce2362b1ddf3d720f8f3b525ba9c9a9515f7452706708a6658b959e227892a3f5eabfad97a073333f9bfde6b8e5f24b529d02edcc2485901c36405908092ceae6d7584f9bcee3371de7f9cff05bf5b2954838b79a2a563c9e9283e01bd31b1376cc2641e7b6e9a11c15ffeb4bf" + }, + { /* i=1846 cDividendBits=2157 cDivisorBits=864 */ + "067cb7465d8cadd240de95d651a0ba7362ee28b1999904eeaad988f49d89480bcfeb70d577d2047356cacbfd94909f6c472d9aea9405db348b098fef2606eb84ffb8aeb5ebad905e5874f11f93fc363dc7d8857faaf4b452c5d23ec6fb647aba6ee5a1c4a2e474bcbf5a2219694ffcc3b2b98eb46d46e212cec8e306596a1765f4fa608fff759fe35b0527cd463f5a6f6f83742d1916584d2d5af6f28f5e779e843c558a47846af331067d513ce98819432cdf2f9dabed4f0d2dd9027f9f63af8b4e2d45f054a699269328a61b38af487659a0e0de1c69539443b21ac39fac36a4e90963eaf61c07a36f2c4a0a836631a35b8e3db5b25b0b4b4945042fea2c672f2684db4b0a724251af123f75a8", + "698273e47ac4a4a0840966ffdd0ba3f87f20232a36ebf0a7e849d9d5bfd808d166c763ef3a2ffc88a601fb1014acd887b9b86c4e53b7d9820f08113035582b1bd99d40626564cdd8684fa3b897826d16dee8f30299dc3d4369a2e272e801310f9fae868f59f8d14d1144ae71", + "0fbd6d9af98e4469b0a4c06ec897a02b0d4346a5af942304c2231bbe659286617d7dcc4973b9b97b0e47c33dc15244cd906aa214c72ed7875670bc7574a0b6978d5206e72c01ccb8c669cbd9d692c2c25b6d3eada68a0e4f779e6e3642c6a02c059ae64d1ebf032c51dce5de293b8ed1f276dbc814e798b6ed8aaa69ca892af6bc770c92482c6ae5c15a2905a5f3171cfb0cba54a29518705d2064702428adfec154", + "60ac64c811a295de1ceea5bf60c48827f5cee59070516432437d4056703e6a1b615d1be084c927039f684ddd4de8d3eb23e94220f287bff35ffb644cd73315ad2e3be704c340c44c9927e725f95cfa3ac110a2ea84c29cf231a5b544a4ffcc6bf1df12c6fcd8b12f150794" + }, + { /* i=1847 cDividendBits=3974 cDivisorBits=3086 */ + "37a82a593e31dcbc0dec08991677428107faba31fceb92cc2b2d149649462fd1772f3e0c42e41121a685f46c86f0dcfde282cf1cc12e919945b7d81e5677448474bc23e80dcea7edaf7f89d3aa883ffd0048396ecf751feae959af14db83c7221da05172249c4ed494b9d3363d90734f679b9b1391539a46d18beb45883f602cea2435cd467896839915b6a80ccb3a49bd701eb1c7037b6cf7efc565159000a9c40010eacfa6407af9d61c249a0451e73c566d1916b48e931fc18c0f1f2d932d27e43fb841bf59b1f961fd9780e14fc8a09f51292b5e4ad24bfaeb0469120a0223afb3c3a0970331bf0d757eb6791a0a67c704b0d6b3e894a146a15105b4a24d10c084c2fa00db4dfe0a8b3024e5e6e2d352d5b6dc2c9004ea65b450c4cdef4c66fdc1f9cb696d923f4ff3137785e14a78ca86c72741488e8a6b9e3dc0883ed16105d274916b7c2227ad0133db9c5bb7cb792c3a48d324127e34738dc58508aefd76431caf7fcd52968f68bca46d496f0496a6a15531a1cf4ba3163d318b1c9eaef321074c5563ad02eff8b8e47b609543d4349902ec60a7cf14a7721714fc5c09bdf89935780df8877d95c78bd4d45d5927f20104ac589f20c09c80b76c2896c26e71d73463e624766052f946cab830ebb95bece9565e826ee64f6779881751c8f1e63f667e94784ab59580ed3d67ea99", + "14d5cf0aec32f1ffe441879504a264b93698d930bd3e012de210a035702ba80cda59a3d479faf9ab9b6b7384c993e03f6b2221979c341a3ea3190f6cd77e19f130f2fbacf7759b77cbfcd4ff5bf9d5ee8f463316a8e556f470683653c055ee1a6e457e90ffce96c8efe7ca0b136b388bd4bdf50360e11f7f3a5b745a97436988779aa80f7c889e52ef4b5a858aab67732c6152460b5b5ea86aad0d8a4a96d745d407faac969143a1f65ebc28657275bb788d7e6172bcd7a4fa8b0bc5e98b24a2085219e01a7ef42f4c446aafca247936063ff1d07d4c5babc74fa682028c721e5efe9efe267e771770c5b39a85b0814aba7741f362fce3755f890c587be1a0cea5df47be8e8e851d31e3e8d9b6d29a193601a67777fc675baee3211f04a1902d08e00cd96729a7d109394dd7b6048647a699e8164aabef81d27a82f740bf83b8339ea1d96cccd0371f717013b29648628f0deae99df34f44a87f4ebe251afa7780a1ba54b0889ea20ad62972bd85514694b578d89607d6bc74584ae57d60f063fa54", + "02abd9d9d55a87942f908c0cc8afcfe9e508dbbb452b1558e5236ff94f91186ec96fffcff0a889903b59fd7b022b3bd71eb9ca026c72a639125cbf05a26860ca6042e652f8d3a939e1265bbc4770ae3ade0fa6cbbef93bff0bba583a967882202a13ad8ae5350a60f03e94d48bc52534", + "0c5199ec62ea7e3aa1d483fb18d3d71c80907bc51e92421f866f52bfd0e6fc6c5ef4dbfcad0fdc1ff07e83d780cbb57395b253378a60e71fe66cccc282e0e21616a8dbab1803ec9e570ad56dfe753e71ec83fca5c8837643dd82e5f6bbed133508129628a22e43d266559b8e07f1985bfa085564650a2269831eadfbd4ba587f74ed969a4e5e850d77f5778c8b2f4a299d81adc8fb7bec040c0fc0f3f43a55c6eda360f4b50dc6e52910dbe27a93792457beb3e4047eb1aa443bbe350303b53dc535ee3badc0ec126bd6613ca49e7de470cd90a535388ea8117802c3bcd5e453f5d7e8a52941326bfaa8c0178df50c988ff6103087d86f388201137767f6788143cfa8f6d4bbdd1d5cf5cb17afeb5c865e7495b748d07917d0b55e3b5c0688b538d541fb558dd32fa79e1a27069f51ea7874d9fffd51c6bb1339949386cf487973969584c17ceffbe42b949907a90a83c676cae0bb11fa62f146f2d9c1dc34b9e80632174ddefedc4ad589ff7157e021ac936c4fad6434d6dc34f5dde312b746ed89" + }, + { /* i=1848 cDividendBits=3570 cDivisorBits=622 */ + "eb0647e3d98228a23b040a9b127ee184a2ef3f95ee91fa0c29e3f3085360b05249c2c1f7986d0f44604ded808e035e362e08526ff9a658d465e7237514413dc5dfe51122e571dfe4391c0937601a56f681b82c62ad88d2275395e3f8d75dfbda85c593fafc2332862d10b50205cb2ce6f01d84cf62e5ef010f9b04e4c32e65ddf4b36baa7d8cc37ffca7ffc13f86bb26e9b40763c733745feac33acc140a03ce40338ee514919c2794a9fa47076ae40e366d2bdff703bda91b8f0a8a3e976aebaf283e805587019ceed321d21e27d0558576275dca3213b02b68c136bee5b8d738ec8feba6a83abda2e29e6c458ef5edb163a6a3ef16b2fa75271dc9742ddf0ec25d77e99b28d8f2b5c81569ec5425f7e56ede3ecfb1d14b3c77877d55f2108f66fc23ed5b18c22fc619d3f02426c21757a13904e4f9ca8735f21173086170c2dbe162621c8dd5f1065f1b638019e7ffe0daa3d43fd19f8a5e41e78d9c0c9e235c700a79a3a8a7711385f9b298608a98e53b36a58140674a192c5fe955cb832df6a5b1f6da0d8c6041b0fe6bf8259186727942d72a1b89d22f2609ce0de9194edf1142c116fa5e517f03267f18d9aae822f64749d1ba66c3a483ebd674c4", + "1c6a14383a65dd35e45b17f8e88afd8a1da58afd77a2e360d3fd7490ca4b34c7848ee089afa37e3525b1c8d47acb756764ab968b5dbd26d03ed599e8d80e9ca5ef822e9a20f463b39ebd7480b2f7", + "084575a3fd0a9ab7f09d5238ebcdb62888b48b15985bf0f8eeacffc048bc2981b936a10af022142f4dd565f61fa5a0e4820818bf6d429ea3b5ea3d924baa696881c952b56330b5a5934998c5b725ab28d71264b3004bc4cdc18b7216b3344c23920a10c545f7383940927cd9c6c56a60d0904e42500e4c37bab731342df29b13dbe9e42bef11573a608d6a76ade1f34c588e586a83b102c5a8d767a7c995526b240c7b7e487d3cb2052b6d02429a540ef3020540b5131237fefed45b0c2c052de8fe7802693e65731880f437be406c3c113ac3b7d306d875908b69e2b025a6b7f3bb92e04fb520d9a98e0417cbbaaa95323f05333959ec0aee507aaeef97955df8148075eca5a10f5b855deed3b43a7e33db7a8e384151a89746ce3693cc0948ead461f417786b370ea58963d2bb2b98b899cad438d00101aea142d04f2500ab9787581b62adfe11b15d30c2cfe1a47689eb4314c2fc423777a454314948ba9b227264fa4d679df3d7351e9932904ca143", + "1a0ef5cda2720d6c954798833c76990a25aa79d47faf96ad8cab8fb170334c69889d3d2cbd76ab90e57aa89a1b036d91a2fa76cbd489e07aa418a33497eade5942211ade923dde1a648b6c46471f" + }, + { /* i=1849 cDividendBits=2607 cDivisorBits=1104 */ + "7a076dce07fa613a55211d6289a8d9179a76b2deacc133ffbba071a4e091970aadd21e115655b9c09ff9a4fbcf89742b706124033098b2a154b13100b498599787d360ba91936d84bbe8d3038d1f6a08c8c5d636451ba2029af6436d77ed8f24da977563847f133a8d428c0d8d04fa17c43ac85418dbb091e6eee34efbb72c7acc4b805c5d3913cdee2babaac94a4d98e7bb37d65a82b72bbaecaea578dccba1ef1aaf887a046d058d745e61aed2747579d71358b590848fb88619329146cfa4f691e08e0fa6be14755594fb00c88aa3d663765663579e40b1e678c74927137d8c03f2b8ad67245cb9a1424a7db48599a560bb4682dc57d32fbe43e5d13a103d28b22580b1f6a9786fc050c167d1e52fdbbaba34efe1397b8a80eb95bf02ea981d0e70a697063e5ad99350a4af18170f11942c55298f372aa5b2fb8a55116fbd311fb598b6fe", + "7f4edcc9f729735eadb2978ec215e82f6df3997d2020140fce9436cf9bd1e5b44ad1d4e52323cb265b46d013b65fabe196d761b7274128f039de69eebb53daab5c49564d543023f1e1e194387eb9baa0a2a258f3efec837c9a11688ed9b18c3abfbb8826dc1f64ed957907373b8447054ca71d3886182ad17f4a426839dbcb0152d8fb9ac054d2f78a75", + "f562713d27f5f89296e6d06e7c3c4bbebeba424f41791a671613ef567a4166ecbc81016b711b250e7abc7fcd448caf2e1514b130b8260947898e4a81a2e603b0e7b5dc9d9736c1fc7e54d74b98425503a5e8a217bcf102e5a7bf76a0de095d110225e6e67f5f03b24b9d3528ab6a4cdbfe6b194aee51956118e4698757aa39cb090bc988b0f27c79f0dde987dfe69d736472ece9cf1bf0d899ef829a35aa7ef206384ea3127da249d34470864b9921cc2ff0b1badf3c61f8ee0b0b59", + "0b4dcb8f6fe46c1de6879ec70ba305c150c1b64c4048ad696fc3b43805770b6c881c75f3908417710da727843ce6629c605526cd87d6242e46abd120fa55ad03ecf3f4a77a4211f3425f0eff0d29e48757d8988a87763e16c8ea1173b0762bd9c93ee9dd2334dc012cd1e51a012643d0aa5eeb495d73d529edc17edddaec00917e9ea73504de018f8d51" + }, + { /* i=1850 cDividendBits=543 cDivisorBits=303 */ + "09d441bc0f2c5f0f5df99f4e53c2b2e13359450fba4da5162c98fc6eacc62e389f021c90cea68fbac37b223f01b63c596de11fbac020d617f445234d86603eb737b3e8cb", + "5542dd4da1cb2894372b539b3d1224d33ec3371ff0c27b9859126aa693e2e42ef1f40adc8828", + "1d832861ccca111a89c91a126efdbae2903afbd2d6deeb498a3d615979bd", + "1bee7c0411a149247749c8727859360e7a4fb55380173e7d2967b9005760460bec9e78a07b43" + }, + { /* i=1851 cDividendBits=1114 cDivisorBits=806 */ + "2fe6b3fb3ddb2b5b2e22cefe57df7f1982bd3858672ba9fb3742c247c132f5d361718959a71c405df928356065361cde31ccfb4802fb4f00c0de41b2619f0c2b6382e9651f4a2cc954e01e2854996912cd6bf32c9f491549519149bcd0247fe48b080ba217fc3c3aff0fc10b4206775270751b858df71373e89c233e6349a6773e859f3ce43ae8b3e96fc6", + "0d1e87e1d29af1a81e2c0323d385e376353a456c9e4f8e754c150da665a8138f5175b01844e90a8d4da8b9ffc5f6c1809a5acda2caccff70b0e2693bb71826c0a72e439f16aca3e4e442834195852ff60bee54c39b7da3b38af14390b86e8fd68d007f49a3", + "03a6b5bc108ada022d49c54d42bbeebcaa4a40b98c55c290570254b063453b1c546805cfeee91c", + "013737bdf81b20381a2c70f7a4424cb71a71fa588cb382883647e96af17e2520e507d90f551734d03170677dddfc09eddb3234878252ff5d2eba68d5ceda5210bc4f21779c51893a6d33dc4db9aebac83cad4e1cc76481e7e287c346450a8262f8896e06f2" + }, + { /* i=1852 cDividendBits=234 cDivisorBits=124 */ + "01a6877ff50ffbe807c30c7d1a55c4e8072615bb0566dc9509e05258eaec", + "0daa528cb36f6f1d4284ae46ed829c68", + "1eeb794e6fb5c85a5d5901cd62a1", + "03fbfcd81ba4950624e86bfd4c0cbd84" + }, + { /* i=1853 cDividendBits=3206 cDivisorBits=1165 */ + "2e6347491085ff8e7d3d448c7802aaf139203b82133d80f02f08a3b47db361758e4d4665328fec00de8e60bd47f727ef4e31460403e3d0bb19178e7e4c6a255aaaeeceb3c971be1f50ad4a6ecda4c6cf8416c8b52554241f16bbaf4b2f884de945c8a8e2d27f48702e59f402d071153c83a29e145a7b10aefa070f1d9da850e4eee9561ae69dfdeb12e3523e52bee5b15856061936027752f29f0e57e1fd4f73f970355350fdc2301ef17579a4fc246f8b28a9ece1aa46676ea548b604a37d8ed97ee281b9f754601e5f98773a8c15ebb4ff54f2508821f9ed19ab0f191faf75e2ad16a6e555d80c69b14157d57448852f873ce8310d9684b82357e27b2b7fd558e769b5db372e878830bd2ec720ee2bd0d75471953ed02bac29dcfa17ded7a66220c101b7a79d429371a0602e239df76068ef1ce0cb62c6a8619d5720d681a21db20e6854f3abc2105185380428f6650d9378ee2ff510386b98f232d7c9e66dd91f9014ef68b8e13ad45abcd0873b33338060e275a06059a8d95b76f028912ab59c1279e8a562ba02201e48f4b9da853b", + "0a0a647b797bcb64d0b3db5186843135ac5299c5cae4076edbefde2e94f72f498e89915dafcefc3ff092e282c29804b18292beea4203ff1e5dc4aa0ddf52cc4308e5366a71e86f562dabf9f3a2abbab434d9f3eee302d82873ec9706659d79f7b3ee38b06adacd739985b06b4692b986ff5bb7782fb998039649bd66d22269259f41b3a90e7c6ea210eb455f090ce5b189cf", + "049eb9fa9dfbeb5af68aeeb3c8856c787cbcb4f2980d1b38ba01c2035d40fbe08e158a98d9f146c0f15a00490cf4f9393ae1ef05703b1610bb3bf9e192455949c64b9a61df2afdbef68337f524460e38821893fe77b7cd27f063ceb8461c4c49863ddc3dc662f21c59b43117f73f8276ccfd6b2791163dd8884d9f0b093be7eea8da071ef19ebfcf4575ecdc46412c8bac83d8c9964e309b13287245450269b9246b8ab88ad6fbc7e1a274ccfad8e8b366d3dbc4fe2ab0e816994dbd4ea438745971276089d465cc92145d0b8b8ed904831740798f740b3a43c8063a4d3e52a52cd14b3233d19871b3ca1b63661e5c633958902c33ba43a0b19f20d804901aad", + "05a4ebcab382300242bd5cc8d1ef1e8d4cd087946d76dc106b18b956ddd6bf31ad11903fe70decd8d29bb912abcafbd96534d2f53889e7e1e534b9cd7f7519b6ff30f4e792e480af356572f0550e2641aeaa6104f360c233ec72898940f7a0db8d181684a382f39c94f9a2323f7867f32a7ae49f00488d2ea03b7ab3b728940e2954f99a657de427ecda978abb3cb8715e58" + }, + { /* i=1854 cDividendBits=160 cDivisorBits=78 */ + "3c1eaedc3dee0e01ca2871186754d87788eb5398", + "38eea5551d80d66f4c", + "010e555f8b77b4401609823c", + "29000eb2060078a5c8" + }, + { /* i=1855 cDividendBits=2501 cDivisorBits=1275 */ + "177f19f7831764f3b67f2b3fbedcd5323cbee6bad5af5949e88f6ca8424e755dfd7c8b560d1994748e337fb67ed3de022a0a198d5ce69c0681bb6c445e1bbee78a6a0353036f7ddb638033f8d9d038df5882291b64d6909e49eed3c84639db0608770212b29147977c4e552c7f1445189c9c916662c56c5a14e688a6ccd81df45805383345c56498a2e2fda03302632c2299436d74fe89f3e97aac59a1166685c116aa398ca574cb987312baf93663c4d3952dc1d36552ed1a561c4b5042ed59ec2469604d2eb8b449ce7b2cfc7bf7ba99227ef4759135fb34e41ea6adce5d6221e94742f75481342459fd8c54febad8f222ec15309ff04de86c517f62d173eb129af4cf78e869fbd2390420f24ca4579db64760f79ff1f89947cdf50ccf4b6aa2b9b45ac24575cf72c1b39bda28d057db82743be2cca654d4", + "013e7cdc92bef37512755685c7f66a8f014591dc4f115896b5012a77a89548f743884e45ad6f692082bd1779b88c2a802d5da4f718fd4357363871c3d8804a6b010f156828f84f5e932053d6d6595c4e2f8001b6c10ec2841edc10a5cf3eafd3ff646fa8677578a41363b3b1447ae3363d5be2fbbce97e39dc8e3da4e169fbea310e59350af8dec990baea6cd7cebcb4859dda8294c6eb58ccf3340b42740065", + "12e2ee1ba3e1790eaf0f91e99e8557c19b951119820026ab82e703fcc2d9690b16627237b5907b31c024c3836d24d8cb76e589f0a8e89814deefe918035a0c78b894b5f6a486c76e99c76ec86a341d6b0dcdfd9423c6c615b889ec1c31b26b09d2a3ec51990ff7edd4bdcc0f0a141db7bbe3cb893fed357bc9aaccc82ae0bbdb6e75aa20cedfe0b1d305eb816fa82296b4efe5e2a796949e45de", + "c3a739107a81e1d0a9ec2f2215474c389fa17242a78e9dbde0ce1a1ee21ea9dd3e2dc78eb14912e2d4482b2c805a90670d75bd0614934c1ab33e89022d579af3839c49f8b0c973af3393611ae76c9e7b005cd956a2fa28f4bc3f9949dc08662474f668a403ff1f42a20e282a625d72e68584222d70037d9b20494d79fba387f71e7be8d067230b180a4570128c7b05b13de327edfe916b4ac3df35459cc43e" + }, + { /* i=1856 cDividendBits=1779 cDivisorBits=1368 */ + "07d67245b467b5effb1b26abfe76e9adf7dc01a02bb73bfc781a6f447aa4611c477584de44d3aba1ca7ae2c7dc8dcaafb374dfbd956be2e1ea3c9ab8d02f744912daef659a78b8e752bd98daa46cd0a71146d06201a362d343bea07cfe4361b35934392b9667b10ae2cf9078ea2ca42e0d92d85e3c46e1d2a9d092fbd888133256786de682b03830ef93060d88687ff54ee4ed83ea267281688161b34af20dba5a48f92677e6d64a93a7b99be21ec5576c4a53e8100f5f687c4a7dece097320701644c26d7f0a4498642df83aa796ada84fe5c29fd57c095c61aa189bfa1c2", + "30b4c7281848b2ad0b3947c1305b4d8f4a761717a548969bdda949c2fce85b8030708aa86fad2438e2b7f39ece9afd8b8bcf6d4f4307dc0b7c46f06c3d9b44ba05a03678b3da77892ecae89a8e83600b89670db6fb05565b2a1092e247975137ec9c3d7bdb2774eeff6b4f1ce27391446ed748314469df816d2c6ebd6bfc1f14f423a95fd19e71b6b430a8e58860783ed9eb7017fb04612b1816350f429d0829229fa8cabf98ace4041748", + "2931e613b00c40390de98ab9caf82a64cc25c962a9bc63ce5d764ac44d60f736fd9b6717de5bf13cbb36c2bcf124b51cd6611ee1", + "1f6328ef9220440eb3696b9890b8b018f0366409efee0635bde4e8a07f569c8052df412815a6fbd291f1415dbc1690f87e1cdb5953a53fb888df4664840cc11eed0328ca49f54c399a4903fc125603b0e42e82450cdd632259b642f89cff45a8b019ece07d7b60c0afe3fbfbf58ba2fb6a40cf138288e67f3e4667b41d0c225bdeea1289b78aa449dee027b4e937a91b6fc0b2ea76fcf69e91db8163ea57cb6eb3bcecac566311a524bb7a" + }, + { /* i=1857 cDividendBits=3046 cDivisorBits=1980 */ + "3775ef0af418b075b521ea928ada8e51b953cffbede5792e3626419b95f3fcb589747fd54aaab2d045db3d2fc5a371ff876d6f4e88e57adb92a625ece45d2fa77a1acb666d6f6e4b68fc83cce0200f1bd291eb1f30bb14b1c645b47461d6d37192192444c5ed9dc281c44c027c3f4e5f7961564d335f72ae9b48285e1700186ed47b0c907bae852ccd74ea7e0eee0dc7c6c5bbf6f183a69879936e5df03b98587e416b6a4624c7502680d6a65bec4f10c3b8cb35f7f46c785c60848d438e92a6149994184b7d96821e3f2c2d8bd411927b915ab0a3324ce958343c02c8d39bc303e3e7307ee0928e66d40ddd19f4eaa63eb1f3e37a3a843c0627c8d3440d193436ffc58eac33305bf60611cb67b25d26f9f803c9216ef4b0263d5ea389749ce098bd816e90d9047739083f294dcfc5395ba3515d6b166cf85c847ab6bdd77d62ae2c5d3404fcef4669028461dbc6e608df10c125f1d2b62a47f025a7e5e899d6186a6c9802948df53759b63210dd4363ef4cf4a2bd84dfb583412e5bb9", + "0b28ddf0f8995407be2ef0c5ed5aba64e2e1accb6e49588adc705a4f07270d688a08cfbc801f506529c64d94103eabf9f5a1324b00adfe062405c0cb86c0205c54ef9e7a4f7f97dc0e19ffe5c806a93c46efbfb1b5525de5afbcdacadc98d8cdb7148ecacb01436e627ae7f25479657e52990639de03fed3996e3c8484042936767f8e33c9213b3eb26b7a3bca9af5edbceadf769fbc81a956cc3af4483b14e144ba829ab4d358174c58a24922f4a36010845e3ccf5e16987a80bbda0c44bc5d25c60f733419780be7e1ea9993e992fdc8893457426514658c7e0021d70b2a7638a95b3a63525c42ef46a367531985bf14dd18023f1d05ee", + "04f841f9f17a87e61a1758ecdd17953bcb1fc043f6ffd4e8afdac47de79f1748f5c22df51a0266ff5c43524964944e4993e3b2bd4fdd73f2b36af447b2946bed7378729aad2d49c6d2d6dce66fb045d745ab86a81b62b7369aaeafe428ec0b7bc36512f15a6b7633ca25b77adf29ed92dd729db0cf2fe90d3393e99748983325e16c8d628372", + "0102940bb17cddff1d057865f58a472456215294eb79c1b9dc9dad78273b2148a339f3a66c6d694af26b93e97292bb0468e2367d342f3036773e0ff50c444da5612b837af51df8228d7d3e081c8e7528102f509ca84f02e4b62576eda6d755fa65358a10ef371defba9be7183f8e95dec4770e99a466573546c84783f53cf6070b9f0c9822f115aba12a8044cb0fb274a496d09f00d5455d623aac6af04d24786cf6c7e7be9caa44073d02ac83a0e0e3fb524c4449fd31caf1709448dc16dc0ce1e4694cc284d5864cd15b05e37cfbe674c9b684dca33482d2b5a477682cfe6b68b7aa42dafe6ecd190c1b02fff4120141a80a6ef11cedbd" + }, + { /* i=1858 cDividendBits=3002 cDivisorBits=1483 */ + "01f27dca534e7bc9e0a358c18a352d818f3ad43df5483d20860ecaa403cf307a11c18380db20331265f452c03607e9ad4e514bb63e0a315b2fde261633ba957a5ea939de406b85ea954b73a72af6fe749636d3f795e26e2880d4654bbf17968b0eb91b707b631da7e2ac12165a699f7fe7c6aa54f6253e192217af99feb2643c464e390d567ff73a6721e3c7f7db31bc4a7d3a17ac44a81411f9fc03e830ab364e4e49e14c7b9e1cc4574a86e52a13d2fe5f2d7909414f64e80372bd649ae8bac4db62bba48da6a66a062bf44a9c7631dbd9bb31885a2fcada03d53b63a39d29f06d17c7a7791cfc70bdeeb0c5d537b7e194445c9367d4f02c51bde535752e96e39e5f438f881d5dece16856f1b474c2f6985ac31316d1dbceee09952ede6e75ab71d1c0062cf6bac808d80e2da2b664c4df675cf68f2b8fd0a40b1e470ca0e4bc181518187a34506ccbec52336a61ee2b809e4ced55ba34294f7906b2705281841d129e82d8c7f4d81c996044f40e42b796d91b64dc0185", + "0704f4c414afdca580224a9e20f1cad9ad951cddb28ec285e74c445cd95d9ec2bb3447e02056cd43945c16c0395e357c0b0624b65742050ff0728f340f01d676aa40e4af1d5ae16fc8e9dacef7f59335ecc5a2eac96ed688fc4f472acd3969f2476ceefbe2a9e6cc15d247fe91264263be1e0db9e683245f8622421a92644ec2525e6a3c410b52767a3634c533b9d1d4fc2fdf18f976d9447143e5d1fb2e9571ac960cc414f6bed01b0d23145b121b0346dd65d443817cac8a49", + "470442b091ad3ec1361dd5c29f226ff79c152d53309243b079911587dfda9c1cfaad3c19324ab1e586ea5fed683fc1708e136b6dcc57f5252e10d2bd050060b69d7a386791c005ffe603681b551071b289a00afbd2f26dda856b0bfae7523fe8813f48aca00299adcfa261e42842a548bba5d21e7b1299733b972e29d520c3c6c4b6fb4b504fe5c16acd36e09abd092d777f77611605c909a35065b0ac3552eb0da37797fa6c79c4d0c196b7175f67f9551b6b2dceedd06dd0bec38ce263", + "3043de316f8e15d342effaec381e5fd8584e830ac6c27434b4c4ee8ec71e88d6ed3f5ce46911796a928db469cea8f2cf670f9bc32d33879d708201531b69dcdffc07f71a691be838126e3a5fcce3aaf303f8aeca9b74a4498227ec2bf7dc83b08aa7c500daaef4c9b952c942b9319bcac5de83026b35bac1740117ec751dfd828c672d39bb43c505492706f66bdd970bb76b6bc3110ef94ca2eff571dc9410d0de3e66234a21bd83029088477275d27a707ca1e018a122154a" + }, + { /* i=1859 cDividendBits=2830 cDivisorBits=1496 */ + "e2673da7814b47b8eea3ed100ad1c564e008b53a72d620adbb9edef2a7f920b0f789b361b479107fc5ea8978e3d890ddc18e4f514b1b39c8c26f36051d89b413de1f2018702c89908b0e9691a2fe68719b4dcb73b59306d0e931e85cb4e079cc4bf488253191a1d61a4ca5bc829be3d6ae591da7b3a4f7ca0ba08136729d16cf35a09644e006d9b1452e75527f21abf66d79e4d7790e5c771012e45846c489afff7948609c9a7cc3888cae43593a08c6dbd691b4a3d2b784144fbcf210dbfb2652d2b8d0e8d76c93596efd3bd012dc3f7e00d1f032cb1b75133fdf3071f1380766de7fd17bf8c69c220d23354771295007bbb1d0dfe9374652566bc338e89713b3ecd5ad12987c65af0acb6326c8d815e106555b9870b944e922bdec62e2c3e1b6d830413b3919ed84b052d47745150e42f296364655b231bba1677e802ca12ab160627578944ac0d2f6400e76a7717006518bc266b9662cc343a3348146d3fe73", + "0a5d6972724be467ad09ffeaf2c9c6d9c7a3f54c02c5f4e008470f309f2c9912a370d8711e02913b446b7b8e6279b81acee29ee18ccfa844222c2ede300ac79c4ffb9135b66b8164b55ceade90bc0ed32a49193ac5fbb42235a2fe455d774e4a139583507c831e412e20c4adb1c356f288d7b77c5b5c6ca7826bdaea7dc93939e3d7155820ba6a6473b0a44e4e04effcd29eb61dc9e4c9793dead37c4f146a3d028dc9692b55b70a2804edc77a3d9b41275fe2cce797620c8c1e27", + "15d7e1bbe0bee220f134e069107615c971e5b6d360867e4e2b7382288961c6e823a6a494642440d69aead38083f85c0199989532d7e48fac80240c2ec4075845e672506cd86d91a2dbc0a7aa6ffbac73de952dd1cd902dd5191b7e8586b3c575087bd18249c4803389f0a627248da7950d077797a78e780d21b55838b0b2daaae2554348d0117edbaf33dd170317bedcd8f08bd01e905558c8ad02f38b84b16842be98e4502556", + "02e5d971fab001422da493f53121e33024f905b5028f3253621e0a360e8597713b460f6e31fccdfc7553359fc92a058c5cb78f03f9aea860cd99e26398eac88c7f9c15556248760122ea9af35992ac7056014c59e72e7ee4be2c6501fd63d3c868cadd5fffdafdaac99d649c1922d73ed8bc3c78952f671e23affef28f96b9c3dc45c04576daeb5e03debc51188a108bd589462af387d87977c806fd481254d75125af5c27b9950c21ebab3e8164e9771b1ee443839df4a7363a59" + }, + { /* i=1860 cDividendBits=2409 cDivisorBits=1642 */ + "f6138c48bdd8a6aa648e3b0cec8d6e8dfc882acc6cdba2e92ba1feb6345acfb61f7f9322f2561e70f72bc360a84d0d93437cd7e6fb6ba0f7c115eed1798a6e676d62413646c0542922c1d7433399aa848482552b35d4d42c17ae299e9bfe0f2173f0b29bd9ca00ce88b40d0fb100d38b3261cf19d8aff45479299a25b5b3daf129990452a0b487ec75cc0b0caa3cdcfac7a46d3f745051333bf51ac1cdc0dcf75ad9263d1da53688bc9a54a5f43def0c0fd1c6c19e34ff1f6d24003ffab97c514f8eed8b16647b8e4af0b34a6d4c59aaa24635f6aa9c79178c639f13678cfb81dc68e4544009e0682aa8bf619dbf7296a2713084ac7c82477166da087c4fc63929094c94fe643ef93ee457142d594189c8512e2aa63615df4a62b56e9698911980a84e4e511635d04ca6cd7731", + "01b3cddc30419778330984015373be1be299657b32b15ed45bfa3be4e9a312427892896f44e33b0e86fe4d81f23717669d8dc7faea21f522502e4a754d88e255daefeb800ca2347cdf948e131a99ef43040ec4fc6b370d06802c87aeee7da4308854900d58f97b889a3e7224beb21fb178fed2de3874fe54a757b6c57fcd80a6d6e99c8c2510189494a06671999e3a719d693eec12e9852ed8b89be11e0ba546c84d7670576edf4a43bb2ccdc5d784f432c70edf2a44947e72927fbb28ce48c5b7496a03f8aae1019b6b6a6ff22d", + "908cd5bb53fdac710bacc4d938df3f05ba6ff11ddcfa666163a150e0869364bf63619c40460702c4c77af03138bd0f3465660d95a834b7cd42c19668356bd396261868b2a49b857ed2270642ff5d75be40c6dee82978042d1f270ed82357be33", + "0f9054867dc9113429fa60482d2eb6194bc92a3c1b558591c50e6540e94a25e190cf1f5be4db9384d80da57300c7041cef22bd6cf004a86b1e9e265408e3c5e7bcaa79f6a28bdbaf92441562006443e804e92de5438d0734e373fa2c247655e9dbf9501ffb04192e693159591cc188331d19bbdc271c3cb26eff000c0ac4500568ae27b379e3efce68f045e75e94da8213f634bb050f2526124b43e6869e586bacab09a73bf43977f28fd9423948e00403a10227d96ce5ce93fa756b670f1894b5e97533bd4aeddac7e877d23a" + }, + { /* i=1861 cDividendBits=2442 cDivisorBits=821 */ + "019cf46c56626f0a789adefda9a7330b762b0f384928d9a5f6d15c7d5ab734506d2a2d1c9d631b1d5e466b3e9f60c6dfe1fbc379afb91f3ce5d101dc95981f88d3067ef71329a99b56b903a0c6f49a22d256fc4c3e5281e2b590bef701a0b1b05aa697959ce09e74c82a6e1179d5bc0990f360082907027f706cbff6c9575dd3418a0839d5a74b38496511900d1cc3ce646fc42b30511cec9c482274b1674cc524644535b2f5dda8272d8668c54214ab1fbf9240a7d8a6e2ab04a389607d14126330a152148b5f4123234980eaabb230492f1e66c411ceaa958934898599eef3f2469d02b8df48bb9fe7514a985c451f9e134161953f017cafc9fa2f610f977f2db7b17859db5773179ae66374fc33fec794cbd6b3dacb6d00e1f969b3be098d54b92960f48cc8cac8445eb8171ee1ac359a", + "134cf9cbdcb4317d1d71ff40c2a15f61ae2c7dcdc2a1725e13d02e7052776ba2c6ed8074385ef617bce486c70cf7e764bef8513a658a4cae124dd67b63d68507ce4921ce255a9178231c03c311a144ef5e2022bfca8261155c765da0dd9df82b557b4fbb2e69a5", + "1565570bf760bcef996642671bbd4b91a95ad12eb9a0ecada950e39298dee80ef1e98de21d8d9358a7b500de3f1d7a08944b55e34b480cb8ebe07676d24b11836f599c784d2a2f938e9d0a8fcfc4ef16d651875489f4c2dafd92679d1d593b462baa39a721a2d5ae2d82b32b841659ae44d68ae974fc07b4869e9f657f648190235d6ab27091843f77973e997135dba3a493732c8a0382d873c514cb7baed9dadbadc86b82a51d4b07bb83fab0d5796286374c1c27fb7b87454ee2fbe31d8fbafbac8051c70e39cd386593", + "0a028ebb402287442c38e14de47b544d174a658035a5c62bd38f0a6f751cfea0ea28f07b33de449bba4168acea479fc4e42b5dddbc304b7ff6d5030e9e128c8c4dbc8bdd8255a87354ab334f2f655e47222e317e6a8ce416b6bd310c478b3a65472affd93f72db" + }, + { /* i=1862 cDividendBits=910 cDivisorBits=33 */ + "1e320cf9946834e50062fde70b2808c5579148a52ec5eb43be2c024c674cc8405a876631a9367569f00f3d8016d8d19a9e464f6908a34e1e2b87f085e1bcc0e894143b3ff93e438b18d0fbcc67df6b83c0ce0713e59232a71c902252f7abefe362a6aee2c55884a866ea34d21fd470f088fb", + "01d53b1043", + "10795038e01662b66c3fc227d60ddcf101f50da123d56fb67699667f43e944325f4ed6ff95b0b2bb82b0a5b01eeeb4fb077148ac14a05b10ca821ed4af129506aff5394e4478f47c0dcdd11382b2afcafab09c6dd24abdb3f45ba89285f00ea7003a99bdbe51a2d195996408e9d3", + "01415d26c2" + }, + { /* i=1863 cDividendBits=2392 cDivisorBits=1252 */ + "4aa131ea45cf3fd799e2d66566c0e16a2cc45d8214a89c4988046a60aad0bf9dad1f851be72896baaf117bbaf7da0f59f2d7200ab216a01af55e9a13f7e19ef22a1e3f16d32a9ad07c887358d091c970d35243902096b79a8fb8724c46186b613a167c0de3fb752b55e7d14febf9fec0708c59bdb4c7756828178fddc1b3076e361f9b5e04d8e9ef14756617021808e431d8012433eba408fdaa372d448c94df976d4cf0e789efe052aee9ef48f5af55f004af25d2e2e7a23d0e2f4a2e3034a378fc05f560acb90f33bc37d1aa716fed374f3dd13017f7f9d356ed3af2d325b549bf313968c55274c3d6662384582940142171a9acedb800695485c4a1d9c260d3e79883fd1eb71686a4380743eb1852469b5e103fee8d6ef008c6f96696784dbf512758d3a056eab80faf", + "0fdf4d5655b5364a371ce43b27df3257d167029203c23ecc99b0d37445cc6f8b029b1e1d1f9dd586660d4d5727ff22399d21f71587a1b82ea3f4b7705f938f2acc8b359f7636b85aa129bf6329fa049587b928e55c64653a0c5d887d0a0443ff56f7cb8db0bd27210dfdb4c4ca324b8b9d35df51cbca882d54009305e6ab85b6b4cfea4cb43136ccc3383fbf06529f500922bab18949976703b5b747ba", + "04b3aefd760027d246dbb46f0ed4047582a85b8b999d74f209ce5fd465f35cd5667f74af7c9f33ced5c635e457741f66e6149dd3a1e2afb7a966d5fb9a6568cd92f1e94189e68ccc82242c4fb6de3389c995fd57d4d496840d1610d42008db1c41f6b356437bcbb5ebbd4f1d0187d625e861a52db9fd983ea5d2fd3910ac9bbb8b0c7c4c189fb8b0fd7d25042c62d0", + "0bbac2725eb4d7bd9454faf9487817e402d881843f7bd6a93e7130cc6ae703636ac315d604ae54ede8c0fac96f3a63882be5bacf6f635cbdefc6b1a4ee76581f209f8334e87ed74f87db2cc710c3ae34117f79cf9d802b4dca07129536e082eb4d42a5fa8c021c3308c8b5f1eb432a8b254375b3383156a62f67f2b716dbc235e8ec872731e881ee6785c14789d4096890a6da216850913941e060948f" + }, + { /* i=1864 cDividendBits=3713 cDivisorBits=1777 */ + "01c745d0553562d7e2836219163a6cb3e09a1051ffef87226e5706a801379e46dd8dea6e4b567f65c1b43ca32c6796c3adf84af0b5e9f7802f5b8fe201f0ade8d949a23ae01fd6bbd6eb4c28c36bfe379af5b3f4eb1473d087b10b32e3d7f6efa7c36bfd0d4d2ccbbc6446f78f116fe4c989ad1033e037264b22a57016003e17b8ad78474caa58fd82429860f66742e423679efd6f994e3a2733394066c358348783e5dd504c944543f8d12b0c1a758f45edf321382c12c6f592c743cc50e4c3e756c4d2081be50672cbb3914a0bdafc8497a5c1e804dec55ecc4e7b0904cdb51c94702dcd443499ea0a0d93fad01904e969b33f3b5939467ed17ff4f35d4bb4f94889b22ec5bc4714ff0209304b7292ea605d08197ac8e7c51c5fc719d47e64df29dd8350f2de6dfdd5a2c3c3ccf65f293850dca69ed15fa2fa30ede50f3b387b2c625c67a14822fa52c89d58c081ed9a2c60dc4bb7ed557ca3f8798c88855f2403299c31594a9678ca0712d5e0d532ad346d79654c178180746636d959f03ec765788eea0a3a3f2b381d16d669ce57f35b4570845851ff1d38acca125b100ff784dc6a872355919ab3ef6f0a7befa2edb86a80f95a7f21a28df9abb0a2200e3598dfa1e75e640341e4e9e837758ab276", + "01bf2cee97e4b9bf7fe34c00a46edc6e1bee597591f64c6a70fa500c7c85e81a11d788fb702e37a05ebe4c50fbdb7f95035ab6bcc3754c22cc0a54310145e02ea8d0faf30f3ca3c4531a734d5a385f07b377881dadcd01d2c018ce7942cc9077818f9112b1710dea0bf8bc3ebf0478c0ced9f3303930547f9ad823c819700e509419548ef1a38c5bb482f0e80c4a27f90e80f6c1d11e51cfc7683a84bee9150a0ab5bdbd8510b5e1f8d7038e3c49ddf581d0a4feb6b177ff100f5df68ee18e7ede4c99a3d709bed31ee2b29e6cc16c5cf74bcbcb56576eda9149edda9b669c", + "0104a2b015383ec21c013dd90a7392df850788c74396686924430408c049fb4cba7a31eaf7a2bd13402bf2cf822979fea914b0b8a343eb3426152bbaf8b679957b893098afc103f6b7e4829c60a8bb2796f5c8ff9d12d520aac1074252029e4787f4c5d02c518a8049a433e5c58977ecb623efbdc33389c61c194518676b1523dfbd1b36e46642b06d1635a550cb8bc7ba100d6c6abf7f92b1c5f24fd1589233e27c0063fdda96530bc80513ce353ea7c9eccfe8d4b33c32bbebda33242a7843863d0cccbf7d8400bb3a65044c379cbf3ebc6be67ae16e57c5c8935e75962193bb184e2d76ce0bcf91975b3605b57b61d95277", + "b93b52148d4cae4535975c2628ff1cbd3ce98cf14eb7649d7c43ce836c595a9a9ba86adeb6af20c491b7970914d1f8f0ee4a5353b8aeeefc5d364b51bd4c2bd49b2b65a8e8286e5c24b6ec1d9ba601570d5820636198d6f4f701f91dc046e91466d550ca5224b096bf3ac93fdfa84de480e7fc64ce823d6440d3d7331342d2a17ba12aea4638b4240e0b7efc068ea9426f87c6cbd5643a7eb5b0dc9f07a4fad43bc1f8c2a79fd3e6ba0b44f39a2f0b42ad0c96c466b623c1db526459ed3ae6035ad21097595630dd4ab9e4c0f32e1d62c04f17824f9325fc9211fa3407f2" + }, + { /* i=1865 cDividendBits=235 cDivisorBits=61 */ + "04d2a766283a08ea581e0c8d4b3f8b056fac4e33ceca6da500570f00e2a7", + "13ad3ff2bdece707", + "3ebf2f8023d9adfbc601b856dbf951a0e91791e58176", + "12eb00588320de6d" + }, + { /* i=1866 cDividendBits=1897 cDivisorBits=891 */ + "01b9b8f991afb3a535700516060c280b03dbfb45fb57a72f12444be178aa3d26f64aef6aa5338ffae6c9d63ddf16a1db586815de7521bfa59d669c075757df80f00813b4c0fe8bc64edf37a1a3e493b62991a3d739e4b53207f0b5f2f5b3a0b04a836cb8754268790efcbe6dbb4c3f41b8a0ec39259e4b1ee118296b440fd6ce2c9f4f58df3603594dabedb7955d8558dbe03ba70348985799a49058f3cd43f581f3aa88c7ec4801ee5711a02c7ffc4e44b181f51142e9094d0751c43db83453dbb471e85b921bd1deab411f44de2cdec73dbd08a5ca97b2788c5c5fd6243779ca686d527e49561a365c7f1cb7ad", + "12898d94c54b58b776d15e19fee69862e280f16f93e0cdee6c4c941307d941e4df2d4d837f2c170c031d8618cfe59201443ed25e34201d452cd71f9d2fcf2b395de97328cc8354b90fc2017823d5ab5dc636abf60fba2ac96f45e47f7c02149f6404dabe7cd017a6a75bbc48026b36", + "17d42e2cbce364fc7459e995ce101f6bd7485908a7db8ba3c2a9bc044fe23e01aeb0014784a6b6bbf25889a6ba36af7b1b93ea77c4041ee12d1e8acdff298936d932af9e4db37bca8116a9e73fac38362a9350f5128909a69549adc38f2658e8bc3b7d484d4639dd265de99107cfb67d794af92c34b0ee4096907d36272590", + "0e20750b4562e645070340ff837818e56feb077ba45a338dc1c1c4dfa66d57c80266cadabc1132825d3fe5e8b40b90afe8ede90994df5f6e51ba8439bd717ea0e560986444e22604995a5695681cf537aaa33aa794e58e47cac52dc54efbf9645809a58bb7092fdfb431b1eb079b4d" + }, + { /* i=1867 cDividendBits=2846 cDivisorBits=1024 */ + "2327dc3da9cafbbb96bfe3e39d17d454f4d66aa7aa5bff399399fa5945dd3023bad25e3eeb77d595507296afd0eb2ab90f857dffe87607f1bf77312e5724722bbe7c1478e2f8f936e286d829fccf72025a2d468ad472cf959ad37bd1b1ebfb2d7ab10cbc158ad58f97c36d8e3d59167e215fa549700d01fdea8dbbd645c6c58d74c2b5286435682bf310583f37742934fbc62b369a8c6062acc82a063264ff5a4664097de781dc539b53382ebccd6e24b5eee42650f2e21e49310332288faa3bef66339226c7570b4cda9b90c26124b20da89ed3b059d9b55d645ebf381189072fc544ed52d44f9be34826d65babd3bbfb5c98f42e04879f523313fd7c8ab7301e5c89b01297a1f0ca644a1c54ceb8516640b7b48e8b355a425860126e1c59b7b887ce43278b937512d8c4e85d07e9a91f84a6fd2aad874cf81584e44204d17313f61d1383d5c100764f50cd09110ee1db9f20944939e735d2cd3731661876e0f90de902", + "48baa470bb1af44af0aa6cc830caec81670f1bbfa9115b7ee453637c51e2dd5af2941cfd16c044148d06c098455c82db23e1ca880eb5159aecae2ba3dbf66fbfafc3a84da9fff3b762b3b1eda041293e5e8e7cedcada7e55e3eb4b34cd779fce3937e77a5dc548a781a11a681a2d7022e936b0b613275e29014f2261bb96335e", + "7bbeb987c88659da8e64dfc21f83bd0fcb8a59bfca21f38b60c530792662324ccd9cf10e2140e6c43b4ba6a387c243342f37d840b34f1334564cefe9f1c9a040945fec0cf3b31b41cf705b182d62ddc6fddeff5ade317c92ae544db0aa25ecd1a0bab55f227563c3d92656c7e1905f120549d0c63411d6a732a6deb4b9d0f3fa1841937a517cd5822dd64ef4230a5191db28c2cee9ce840f3f2dcd9fc11f0fcdd9c04bd4c4914cf8bb6e138be12c0d1b28a851283df09d984ee76e826cc0640eb1bad6b70f689c982e58dfe1fd17a821403fa6addca3d766f966f812b41e9c128df19738", + "3c5dc7571977e6ac9d0f3dfa25723c57655d7736671e5236abdcaf313411d4d3865584cb940bb5ffa2613f8dd34948536dff93742616c31d20e5bef6a72c8144a549ceebefbdf85d4f672f884f2ab17119463ebcb010567dc3c53439b4941ef08c1184c115f0272c1cc91b4c07823b5d4818642c87af5f81684d148d36683a72" + }, + { /* i=1868 cDividendBits=73 cDivisorBits=46 */ + "01e3f8925e68c04a3a84", + "2c1ddf8d40a8", + "0af86210", + "179981f5e004" + }, + { /* i=1869 cDividendBits=2302 cDivisorBits=1098 */ + "1fcb016184b3cffa15663fc6ac508e6bae94720c76dea95fa1b98db3dcbe5a7873b379828702dc783c940f15cc5a07ee907e3612e5c22faae525ec756420ee38afc6819c50423278d192a685ca2c20081f6633dc794607a4cdb493bf28ababa7522063c44b4fc1e59fd2c9f3fd73b9254372f2ff2e2b2b95a36c88d8b8ef855c1787cd3df294560801898e658c4f4447f59daa32fd0f5ba89ca8a2bda135fba91068bf2a86104190adebbac227953fe0107d6dc3627941cd0b13718a4e68f5e78eb74c206a0369503214e815967021fe742d58379c75fe9891e76850c656596f2689bb24eb9b710badd50e0231c29a7edcf16c5c427e4fc25596501c7228c9288d4664849366112fc592d8c47f284b446e39d6c7e120bf8fd679b3e33a81270e", + "03a13ec0ff1f16729e73afbb83eaae76be030c29737dbe881ef8d008fc493fe6bd0800488094a58f3b358c912d08e6494defbcf1fac724ea130125a1a40fb768be0b974080c2772fb178970bd5522bf3aba4d9c1246f2db60d70a9e91ecefa24728cf2f47f0daf301c7db0984c0dae235b4cca1050dbc289b08fdc23e41db1ee6f12c86e5969b2e76b23", + "08c23c002917e32844995102b72aa2a5a80a717abd6a866e221ac95c21e40912286bb3603a9d3f8c52f922b94feac664957b5ab7509abc8982b99383e6836848071f0d308a290d94214b5583f0c691d7aedd3a79ad4f004abe4a384a669c589bebbbe19fb6d09c64a029c53f76012fe7b10e8ce124762adc634f975ac78d05d5b2272e43a0cfe85382c1f3606ef30c201ca44222574a4f", + "0199705c6d9e6bb726c12e4d9f43697002d832e59aab3f4f651ff9b43bcaf070425d28eb8efa2433a3704b70b8773d625ae3f5bd01a611fb961b2712ca9dd8ef40460b180e163986ed8c66a07092348e918ab150c90083f31e49d3b53a45e4a050936ce6b2618d026ff287dd64ee8bf2ccda42125d2635b82be14cfd144d3c33c43f31c4faa81139f941" + }, + { /* i=1870 cDividendBits=760 cDivisorBits=170 */ + "7d0e81d54f79a767c74601eccab424be13df49f195826e9f9fdd2c1660b112bad601508069b4bb90bc3aa2724dea3dd823b76b7075331bf3a9c50e89fdfdac055be2f7d7cf97bb60ef1c77bdb60e231f5c8ef9213483b8c9929264f648d235", + "bf9f7c50fac444ba844181e73bdefef1ebd47fe921", + "a711fe06aa3d2f2065da4d3be3a6f4ef753120a43307d8e2d4460212c06305ccc5b8dd0ca2c6bc9f3b8062c2c4b760a4f18c57e1b730e6e0bae60f170506a7784527321c30c166d670b7", + "82f6608edb1fd987f338a0cbaa83ecea271144bb9e" + }, + { /* i=1871 cDividendBits=197 cDivisorBits=139 */ + "0a8fdc456ed9ce03e51509f558d8ade85c617f7338102f3e90", + "07517abe4994e8ed2df3af9e67392fdce2c3", + "017177797d58b1a9", + "5ee6e869e3e188028c5ca4a28d948cb8d5" + }, + { /* i=1872 cDividendBits=1614 cDivisorBits=636 */ + "2b34641e1b6c80aadd303554bd5e5e8041610e00aaaf7464bcffec46d815883a6c4c1d447d1c592ed9f9cfdfc7d78eac580da407d8df319ee3208890a12b9fb4630fa6f05f2f9fe871765c7585eea43e1692f2a7322b45bc8485f780e80cf096e69302d090a48376bc0622a1b5b380d35be8e57f9b1b7a5ae7c867f6fb8ddf15ed6b200b43c2a6bb568509f13577c933bf5e848e321b9c8fd9f6d8df7b9e9c0f271d5f4789af3a3b11ec4491b6305af04a5aaf6a051cee8db1bc778c75964e293b2c93fa924e059fbc73", + "0cdf2a4333ed43f5faf4187b19da729f442e4749254daa91803d2fb8b8e5858938a53c3b5df2ab081f181ba3a29e2a17b134827b4a5b83fea90e4158d1dbd41ccccb10ca521809e6f1c552e7bca800c7", + "035b46f456826f30db2883cae51a96cb9722ff2ab31407a53abab8a82ec8c4b43c9d09ad48f893c32a04869b194e2cf7248c100c770fe52111c41baa11120bca52f90e8861e1ac98ef965d5bf9b9812f38320d8947da4ad43d71efb85809a0521e51a6ee8a3ef1a03b3e933ff347da35b1bcbe9a6f0fdc1daf8804", + "0387325996527b11d6e2bbeb4c836cacd29e46457f6ab38449629fc1bcb4415895cc2c9289b06d3d7748ccb0d2d63ba99fef5361ee0f814882c713319427d892353e82e081035aa2075bd782bf8d0157" + }, + { /* i=1873 cDividendBits=1351 cDivisorBits=1017 */ + "40756a4ff223e8f52b56a863d17abba37499409f94fa38f0339304ab0319fa0fac00886a4dbec73d5f798cba088e37fec7dd8bcdca843b4a69a4bca87611c314307bc80909d9f3fb8780f869ba541868fedb556fca31842d7c4e42d1f4617bde1973b4517f735c5e576047d98131c8b4ac47e3665c61549e6b76e34ccd6cc123df464a9f45dcff478c4317d3ba78633fba88b841a6f3e44d7b2a5e21c6ba930048191963d890941e0d", + "8479ed7e2904c2ef97cd8875a096d9bd4a3fe5f9b0cd817549060b169d8deebfea680a9d96ac27d07cd8eb239fb903fa8655b1c98d1fb9bda1cdb98fddf319dfbda1017f0dbbe941150239a7b5c8b0f16a5f35534f8c58bf6d64b78efbf7bae4fc47f8da9b1724b2e93fe4a3dd07982c4340d9544ff6fbfd6998c8967a687b", + "7c8fb02d1f180c313f7caea4db2ae7b5006e4503ad586562666c9831bc6724770c993d54ac3de55b8221", + "622922bcbca6afe0d872663d5a94d542f84d65eae30e63e5b2e1e18803914fe19b2c4d2a245179541c53ec859d317bdde09e621403c77c633f0215bc9be554025d48fc2a48368eabba84ceb384cffa088088393795205ed5c8bd28e1aadddc52a3a807929e1962330905fcf4ef8c53d8d532353fddbb6f60444f4ad7053032" + }, + { /* i=1874 cDividendBits=2474 cDivisorBits=33 */ + "03664f7931def735b496c824594222c17bd41e885c262ea4191ee8befae59b3ac089dc865b096d2b1e824fc4b934c08fb1a8764cfb6a26042e7246e434939189853f100edf83c38268cce438d679490d97d4a6593a004062569d86c04869d7a2c76c029f200c6969c7e3c094431a48239256812fb205390664a934dcf64b926be5445b4381f3e63ed624c1723839feff9ff0bd4df3477adc8dc46c3d80b1c33110a8fb81cd35d970ef43d9b44d9da51f8927a5b251981d740ffdd2322d15da9fce7042bd3c60f9d5add74234d767b21ee7afac228b6350e246d411f52e10ca5b8ac42fa26c4dc8200ccec317a7f56326cdb7186d4c82ca1a95f00207c0330442777f0bc4b59227519d46f011916bd0a569ff65ac054a5548b381d7fb451d67d426aa0c0081422b70aef70f76dce03770e1694ce9c9ed", + "019a053787", + "021f62e74647061884964c0ba5bc200d2343dff862e50315084aadd6e521e5c925b1292499030bd2c256ca69ebf20acaf6781a34e1aa2f07ed8b5264265e311a481fea3234b0fb2a447c448d8a4552a3b226f9bfb47a47427fb3edb9d7ee19f809a37d39bd110820019594412ee403e5039cd5472307fb85cd4caea4190ed14dae2f629f8f65a82764ed0c165fa60dfda6586cb1650be921308c1db3f5f3e8139fb71c43dc90e4ccd05bdc7efdb3e7bbac39eb248082f9278422910ac31cdfd2a1b9547aaee44f5cf0c025e96f5fc4326dec2967ab09e871e56cfb4d5818ee9d6373e2a85e69abb35419a110a489278d9c2ccedfb3ddbc0ae106f045dea10fe21fad3fe57c40c445855e378450afc9bde9acbbe847fcd5c894cf5d265a8989a811082030cb9dcdf95eac5792db5aa9459207", + "0106b7473c" + }, + { /* i=1875 cDividendBits=3860 cDivisorBits=2377 */ + "0dcebbeb48ab9b0e22269eedbae7a1345b71a864c82563aabfbbf76348dc1630862376fcb8ccc0594494a379c01f9f56bf9debc6966d555d638e515cc80f9cb27444cd0bb6f4591708c2dcadb1f893794cf7ec7942c89335c4c03a0b1179a85bd99a29b18684f730ee2c4082e6310d53d4f8b2a0e7aae0bbea82af84d0421e673eeae3f5722dcdd4995e29bbe7bb2b1d0d5f578127ba22df78e0526480b85d8ce45a23a823249f00d3a02eec585c0acc4a8656b1ce9f87e7324911a6f4b592e7e6832ea08230c822c7d32a237ad9cc0214c830cc6664983065c65fd6d652d1a1eadabd9632a7d501b654588bf954e6b44a72208a79f3dfdf5123f12123d0e11db6c173e82b77f6649bfcd936799b4058139fa17a479470e8b9d32d4333b08dfed11c9358ee9c28c6cac7af4cbf526b9d344a279de8a563d60740ba312279e1cde600a98cf85aa16c77c30932e4f908d73d05d3642427fe9c5f90cd9fee0bb589e1fe3b91a0745827bef9bb79a6f7f7dc4062396c82cefdf5990377f7e323d4ec02d0e3c8ac8cac2d4b476f8a5e33e48aa34ef17a999f91ed855107fd615744f0a816fd6fe4cf469e7c8ea805428cfc82fac1ec6d7f18de62ca2c9f38017058c1d26083e7728bb45fc2597a8f7c3c3e266c4afee1c0fb196d5d06ce816c26c7575fc871", + "01756656438ec3c6fa215b8f67385284dd3d294701e6175774b7db48562b3c5165be63814f7a73baae32199f16d14d1185f4ccc39992714627dfa5b127ad3241a1310be740a22df8d0e1cfc3ce745ec2d7d50b4aca64abfdcc2b53b5f4234cf1413d82780750844f6131f4afb63af4b74a02f2842b6bef6c2102f949ac88e8627cb78394d99d3d1e569eab61918cb4113fc11e4e487d4e5b515bef48d9084c14f852a6a2fc184096913b8e7e7efb1010188d3b829b4d921cf776198acd540ef05a0b73f6c3103e0795869222eb2603e5608b2b62ab81aa7f79f159ffe7ade56f034936e514b8cbf41471a4bf5be71484e78090003389ef61c5cd5c0ecceaa30ec5fe321b9bde652d709129672f104e6ef7b78086c7c2209e7773bbea13ee89ba87155a105b4c220dedf7", + "097762f113cd779a259efa2d6c7eb90360eedb93522eb8d20cd34d7ef921cc854717857e3c2ff2dc0543a2c1809634aa01a8caccdd72939ba55e88a80ac989d13b85bd43f4f75e89df6bd583f2bc77c7880c5fe557a4f7c9cafb3f948468164cdc2a06442b50c77841b90efb62117ba6e01cf796ab943c49fcb791ed282ce8f57c70dfdbcd166133a56b97a8e16a3dd90e96f089af2bc70c3b808c2f85f1ff8edcf8a05fd6ab23284f02912e30fce232e32edc384fef9811bb62", + "f1de93f5885ec1d2b02ea3ca27fd876b5c568e5ac129cc151f0378ee20984308ee1d65bae2628d2dfb279317661f99e335d832a9969fedd984a29eb45653d6d9569896ea68b87580f1f3e4d9cc6602cd79fed0ecead2f98492515c6936b107925ee74c297cad0864bc6ae3a00b7283f9fc7af797ec5ece6587e5432c656873f76c057b224dbe11a90ca286ea871d8f6a3111c479d5a1cf1f2aece091293d6097ccc7c434939d2f437147b4c6400650e6958f09a4a0dfc471477a2b05b05928ee7ce282f2438a39ae2f401c1aa0fa0deb700bb6e8b83b0d9b6bcb110a85b4d54c6a8e935fb2079bd9ba585c8102e0a8218773c9130bc9afa5292e5b027bfd9cb3630ab2a37c891c9d67023e41e6635c4d4536a8404016b771eb6f8854014546190866b9abf1abd042e3" + }, + { /* i=1876 cDividendBits=1887 cDivisorBits=1048 */ + "47fb1d6a8b128310c901d5d5eeb25a69b3cd0749daa73db35b25b2bfb36b1da7928bf4523846aea565196369b5bf14aff0bd74668450f4ae68fd0a1e588eab11fa48facf922fa7bcdbc9b611799ddf4100edfd5f7a7d13b583d56b1e2b926d711f31cffcf32d109db8aff47b015f231e8c165417505358646921a3420dadb1a6b1238d9fd7266bcd15d416b5e269ac33cf2670bbdbbb88076c042a63d43ac8be74ad43cf8d9ca8b7ed737b59a0cf7600fe7ac2d017b98e35f3e5f99a6e18645cd79ec36344ed4d13bcc94a7ea8d2111ba6a36370002b0558a372d24526619b91862e47d4997604a0ea2dba82", + "0bcb2d68de10505fb54edc1755487053733ac6161feb13b33d29a73097e7d1ad2cf53a5b1fa6f2991077e32efa528a73255f269483f4e91c2da6ae851adbb59c0d0d13faaafd407473e0145bc5940176b5620c7b8136f3583ad9f0cfba972aa3087bf22518bfed098aeeb05c5ce75e7015af1349a65080735da89517344d68d397b802", + "061a758cd5327b006ea0f35cbac3c3ead7011ed432080a171718e506ece7cee7800222b3db2c4acd94487463db600728dfbd3cdea532ade3c48fcd3bc76551f654ac7da4368395a12f82f728c16052ef915466b02ebe31494602a8141b5b3eef102233c60600dc8eb9a4", + "08a04d05046ac84be2dc5c7ffe4b25084bfd3d650758b836710831c09423a6336ca436ef524a68641bcef37dd00c299eb4158b79e36f3c0975826d6bf76462c2599d0a4b25ee8179c9b720d9af7ca4481d1807862ce8b398425145cee9fd80cadb5e3295e9a8b20d5f2b04df1cbb74752b5b7f8afe21997626d2c9a42be046efe6673a" + }, + { /* i=1877 cDividendBits=726 cDivisorBits=579 */ + "117c9f4cc96e79d60f6946a33953248317bfe18c5c1f411a494cef0c59349f8a49f5d65b82c5fe2c8770b6514a030bd60d086c6ac72ddec77343a02e7fce6b4ca31c8312872c9cfd394eb658d7ef064f18c4eecba2ba18aed33a74", + "060362b6d61df40fa2894ea5d490d322c2214af1965884bab11ad6d255b0d4b98762f80fee88c61f02e27376c71101e475abc0450662d002c94d8564cd37c2cb327216c87e4f07db80", + "02e8767962a70d539a003c2c036ca4d63bbb16", + "03981e0e11b150bd386e75a6dc392d7283262a2ebb0cf5314306a5beb9b65c03e562a4cc801ea3d8a2d1c280d5ecca2de540bbe18735f4ff528b973ebb66d8ab5509e9d536904fdd74" + }, + { /* i=1878 cDividendBits=2531 cDivisorBits=2224 */ + "04c1a940a16a7334b94c38182d6847819a9e41dd40a901a6078e9662b5a56310c860da8bd909742e95f9c2fb5af8996ab665a5d8f6f3388e8917c3041bd2707294cf1176658015b19e9c5d726ac804075e3d462169eacd3f217d1857669d739a242512b67ba4466a34dc220b69e3317b48cefbfed4ed6b928e7816a9112ac282e016bf5c89a9da184e59dfbf8191d22c1268c4bcf8901222801870d2d0fdb6f8dcab834a36b37f6e127e44ce50da6e09fd60067939ee9c95986e051a2ab43ee88af93bae7de65eea2d556d9d61dfdf0fc25c2da6a740e7f01d8abdaa75a92f855cae06f140559fdf41b578d7bd587d44bd91e5dec2dfe5d764571d848e9f41ee4790e3ff6b9918933c08288c436c8a80cb188da5a397bc96955d2b3387a1925e7803fd31bb9424dc0b02ff10497c839d0e97cd69396039e05b00027dfe", + "1742873b2e142252184f6fbedb7becfa15e5121fc9ccb43396521825e6290db3cb976103be9892ba4fcb281534c57fe8d40ff322abb35f8347a6dff5772eb6da3664ce7c86c235aeb358990c313bdf2cd32fb64616a83f53a1122c39e148c4d7a8e6aaa814b73f8f71b72aad0d39006b006426478e0a319633c961e37c61120401097bb529d47a995bf42cd9ca631ab844d519853a01b411457886255d095d3d710fc052b3641eadbe076e42b8f7b656019c8e61fe8660db40234c38c09be38f790b1d6d0ff67459508e6b30585cc19d1e2b80587a81c01dfdeb319a3fbdf114e44275e0fe4ee903887ef970406247ae0ae797ed424c8f21031ff8542039057c28d6c279af7d7a54f076efaa1b1087c13693ea2f1c73", + "3459ac4be896727f9c4f287f0da306e3b156f9836d884a5a2627f3dd9dabce8cf82938fea30d27", + "161a87bd5ca3f84b00b19a089767eda9e4abb0328dd1fb8014d4dc4a2934d8b81e5e338ecad70d6e5e857657c86afb346e4fcad5a6a39b1697deca7225d0ee4c2809276a4bca7869c2b4c355965617c8d6d750a9cc78b9fdf070e9868aadb9c4016fc99bb640f006a4fc9654576354a5ff7803ae69b303a898c19881e2516f05d35b730d8ff8dcf491a76f078d2e150ea1f604be3612c38622eb5fee0f9e3ef109894883ccfc71ce4f5d8051692f17850ddbf0bc6f34c1244b543c13691b356b83e6db6135c0a7b0b51fa116ea0c041158c187b84e5c23d04b31fb9597fead4b660c3f623969b0b89373a804459973ab6264d2f5b7ffec0f700efb82ab8c12242fa92ee81563e81b4928c47c570a26378e8cb72a5179" + }, + { /* i=1879 cDividendBits=3078 cDivisorBits=1898 */ + "210e1e4bcaeb7834e588ce3256bbb67704d1c62cfce11f123e653e3df26e532941dbacdf086b38f3c851fd9e4ddad8fe34dbe8ed1fac5df2e22442686c38e9efcd333338245e9227edaa31b9f73ba2c2c1a530bbfeabaf6ba13beff49ceadfa2575e59cbcc27b3fc9ec11db81074ff4633458d45d2166720e54ef686c216c6c8fe6ee8ebcef4bf1b35555013468896a549f11db862853052efd0f9a004d6e128bf52353c01fb0a307eb6871102e12546b82709e7f4c21319af4a78021e6afa74436441d4a9848461dce80065d1e3b7563b8fcc8904a6d6941504ead06fa371152ba7335e3c1652554265b7e770719671404c216c25c1afb3b2818f246386ef5a4b3532f86c7b2787e717512698340395ffe38f675de863e3167c7f51cb92d815425fbde33a9b0b647d88aaff84c46c9b047f9131023fd0062d676dbb71de52c9a68626c97619405d7664fd3dcac284044b1d87c0d96ce11e1e015995a16342a4033f91f6757803896f3d3ae5f7944e1fc5fe9cf3c4af5a7023f1062a7b9e1f91b6", + "032a8326e8c4b2c77ae688a665c1ffa242e0f86defa7e7f2a1720a8c4299cea5c1d7b84a90e238c902d02a33ca73a61bd165a537e71951f88fa4d9b72ac0faa15a629fc517f0469e628d8bd18de56dd9ccfbb655835494678155828e7f8836a9943453eca390531fda079d3cba9106f396a0d8043795ad7a040fd01206c0af26b04b52cda3aad0fde699fd49707a242abf81caf4c1019aafba7821eed9dcd52bfec4dbfee2a4f087a2998a6286c67ba6b2ba68a96e24dee35b90958ef471bb907b2181e3760776ea655ef484eba4646f69da1181a38781a72102238371a77a1efc4ea339f8c173ae3563021ae44a", + "0a70c1bdc34545825859fcb237962ac219a64f72bfbd59deb1524b437103314773356aacdcc5e54591a3b39348212deb4450222fae7e2cb78ac049d90d0565e1ea419246183ac07ed73858681c09b1e98060f5ffdd1c9ee43b721b62a620d52ad1b60625fce266b3374f27bc1e668852acb6802fa6837c49028c7251e776d6c7c6ef10088c016fc53ff1614d3daeea877b93a102", + "0286dbb593b4a9cd0b7767a6b71adb9848271cfbba120354350d9d1612b3b628a026d03e4a5aefca7b0a3fa9c22fc06f52d4fc3e7407280bd4096094cef9aebaac86fb07ed932feee86f311cad248dc6ad315474528f635b1c4e1f28cbe7e436b2547224136afc240d01c689b1edad014bc4d4c0d4f010e2a0f7e79435c99e78f3c23ba53acc8e5ee85435abbbe02f15a785cce8f995a350a1e9b12947e3684c9065f52a3c4311e10e5bf083cf07e927ed21c4779734d8742e6214d4805a7e07e892dd9c0a451fa2dbacdb11b5db1f22adf9770a59cd3570c2ca166ed3c695caddca1913821fc313533c0bd93f22" + }, + { /* i=1880 cDividendBits=762 cDivisorBits=511 */ + "3f1b7eda0f2902b0af67846fc370d8231fa80123e77060d3b8f6b4ba1ccb5c5771201aecc6c695eccf2e314eefe7692fca5db3bfbb481a53250ef4e7746efc2cdf675cffece94fc2cebd9464afa1a2ad69342401adb70352c4d6c73a85f7e3", + "4bcafbae8597750a385f34be51a94176f44da98352b94c80c6eaf640b14447b11b1b88318c59661b2dfd631eba605d3d165cae6b11c703761a62dae72014c64b", + "d527346d0651fc333d493e5648db4d4ab33c5847ea5d447f2a0f05b07d21db", + "4100b6656410f7aa262cf307630f8542e0bb22ab96bfca2d8f057d593edf2d43db97fc22db35d544b23b2457f914036d51956538417960b7a3be90fcb891aaba" + }, + { /* i=1881 cDividendBits=2006 cDivisorBits=1693 */ + "01e65978c422295135d895e45a7e37c514d50856a9f3769c60c043dd4cb7797bcbd8534b6ff04854501e566e5db06dd9e32c9c81fec6cb9a1df0711ebc1b418160f6c2026b693c4de9457bdf14cea2cae5953b219512dfefdc297e46e4fed3163fecd195dd3f8ac9fa72982e9dca9834a134f210bca4a04f952fdd2c012cefac5d3a17c5eb01e12d889e9feb79dd4c633a8d9f1bfba9a7c88f9e2471def11340299bfac10899e199d2766b50c1e641569e9a796b5232f6af32ea977366a8a19ec779429fb9305c460f226410135975584dbd4d8965721a760a7d4f2eb7e75a5f5e3a0820d1cc11ca96e551ab06a669c91a25093e4768a71d3bdf20", + "13e059ca6eb72f6e3045cac9a27009ad0a481a5fb479e0349c08c84f24bb1e0603c84dfdf16f0ea2946e1f8e9776e3d5bca7b3705358c30fcd3c888bb99eb98b2189999f07ac51e91a9ac389d5b2995cd5322671a7574db05491c67bc57aa07e842709f7b9410f90f4c596277549f6deb01d5c7af72e835f1ebd5117502014e0001a247534285d3b394b704e27ded45ea49e1353fd84439c8a8c5cc3d4810c2dee86ecab9b78fefd5380db27276ab30b99203488c8ee5d2cfb65c14aedca0316e25e6dc325819a49629600486689801698433d93", + "1877fe937d6e523649b7b796ef5fb1d0eaebf8157afd4f148666d27c5e6d19f3dacf6cdf4b140c", + "0a298559cdf7835a217d664e0cd3eccb02e5e236f57bc791b08535a5e133189e9c889a04169545f4ab2c5d801500e0f7440788baec396eb2268fd70b590defe05c862413fd325647ab3be65699890499f227ca24893811f4ce979da2cb8d9de412c0d4931909a9c7fb87e7bb13c5fdcb58df9b8bd71b36e7a374543be191310f1cb16834bef89205c171af0babd9724961551e6cdb84f395ca9571eebe0b27c59007b42317b958cd0b10729ac35d2d95963768336b7ab3881b6e70e7f06c0a06c603715cde5ff3d00568430ee93c9e58a234803c" + }, + { /* i=1882 cDividendBits=228 cDivisorBits=201 */ + "0c7295eb4145d06831c14ce627bbf621fdbd5dee2ed1c8ac5741f9109f", + "0111a8eedbabe964110b3b12fd92f29ea0169c4688a00c183d39", + "0ba4f2b0", + "f638c80e8a4da8e78768a2a51d75c759da4d16a8b75beb176f" + }, + { /* i=1883 cDividendBits=2065 cDivisorBits=1573 */ + "eadff924e0279aaabbcadd204c4413e25aaa2a633d2a1be74067b4be3145f937114ca21b83dcaa079bca9f816b9e4ddeacdf193c85833394d374b0712687d2e8addd966756c997a83ec7c869b2b8132765c206c40cb44092e0211c644b0757bf4e8921841a3afacd26398e9d3d49ef998fd3ced49d605772e0b9e8807d75fa94c5e15750098ac3b5fa057b3990995cffc1dfe42087f99c3c14e3d93cee9a3088c10a3ab5fddba7bf7c61339adc02e7f9da064af2baca6aab398d96b79b39a1f1054bb929a6bce4868ebba420575bc0b8c8443f9551a64e1510c2f0b0be9dedb869e3d5fad7b6492a216709f8d3cf67db90cf998b84b60d3033ff571eaf7bd0ce78d9", + "0f1c31ab50681a821952d3a07941af9eefebd81262874df76f6f30591bbacd6c4b007f08b32a3094d38a21f77cae1312a9ed33c02eb15e564055a0fa18764be84592aed43f71b7674203d9f28921a38f3812c08b724837684b47c685c080a7d56b3e2db5550578621723278f8e5101de3a66b2023372352bd500b4714eb880c0f7941944de1052d2563c972d908a2b60ea0a4e5a599e04dbd9e6399cdf0b4a44b40218d33511351e1d9e7c99c36bf66a4a0575754f71f80f39e82647b8154ed74dc8185c70", + "0f8b508d1290606a4f1fc5baaa090f43799c531475db8bc5f07fc788aff91ead45859ce838ef7b0965d63d4d750d9d8a7e0f030baf750d0a16949c488ed7", + "0ca9c985c772e3ab0fc0cdd1620d9e61cd7fec69a2debe50d02b6663a9d23fbd7de9132b6bcf3240efe2a24a84b53af635ab299cef316f139f2c357bc5dbacefd884434df662f3f0fb8752685e94f94919e65e3c82ddc8c09680397653d6bd0b56e2ac0d8f9cb2bb417b6e190ecd827a9b63a24ebff6fddf709558e2287129ea4c5ed3b4d920b749b52e4a2614c98bbf20a39d59fd588fae706588a57ba701664f53e127ec61d90efb3f1e2b4879f62711697dee1a0a3fe08ba914ce34b044883d0192b6c9" + }, + { /* i=1884 cDividendBits=488 cDivisorBits=460 */ + "04b68e2b937ca179adf27f95b968be4f896c9bb72b0a705b0b201f6e72f3fe6d953795d7f384f45478dffb6adac6af904200c1b70e564a95132a3dfdaa", + "05cc9e8aeb8c0a744c80e0c9b5093ec28a7b60280875b3831c23cdf90c9380c7e6fec3ba01be76a8121386061f371b64cf574ca372cef45f3dd2", + "d00d56", + "03e9ca37bd9c5ed4b3208f47082df1facd4fd4edaedc4c8ece9be4d814121eb4474be7a0a9e7cabd758414450572376e5c090266f3c2017b8f1e" + }, + { /* i=1885 cDividendBits=2623 cDivisorBits=1317 */ + "3393da251a4db4060d4a60cb92f1208b8e3e6c203ced62a7df84a3d87415af1ebce07b6572d4e0c4a7e7e765762cf4ce18afd3e078edaf21934e198980c97c9d4f866b3f4b345479d1742068f4f197d405ff10761970dfd1367c5f2c5d36ef151f2c12ab5130d20a5a0306fb7cc6d2e8605761cff7cd9e9dd08fc15b3e180b4623472db6cd90e2d91ba5a261913abebad65843fe65f25387c24e40ac1975397ea339dc28ecbb4fbf9dc86acfea00f263e5f9e4a203145c95403c75f2a1433cd53ad971d306dc1f5d7e39bec26a212c94f30e1aa19dda37f5262618c771dcdb0c4677ab30aa95bf00926896e2d8f4bcc001ffb715b2cff5ca938609aca797dc3130c09c13d3217448c5b6036f8d523beb1ef5a2d6b86ce85dbc850e0d82c42653f8f6101ec6abe594e00da02412f1e64b709ca165a89323357757cad0386d6d8a418352f3e14b8d4f", + "14f29bcd377de431a6905ddd981d244b9b15f6d17ac8d262767ad96206556aebc5b9f65532b206e076935aa3d0cfa142e07b341ed48a517481c8e54e467863774415d5ffbc82cf1b0b0af280a5a82af3f8ceb553404696ac79298ba77c49636eafdf2e032e1be53acdcd4f593136bee512c9f0e6a998b61ac4150dc501bb6e3467a409962b09dc87b7a6d226e27c09c0abc679b6bac659beb55a8603ddb7b33e172a42a460", + "02765331b8dc1a3ce66f5b7e988cac0456f64c1be04049d92c2b43a08d6ddde2a15e96e3a48506b7a2e3f1b5aee6807e0e0d922411f9de45e4e898137b455d5a370c7555b6876ab02b990cf336f3e633e4174c9062d883e491d617c448dba677ad319e5e0a0032111c1cfd8ff4f0d3d5b1fa9bdbcae4b740519bdba95e84dbd65ffa938a4b79da1b8d0d45e4f630000bc38dc0ad4eba05e8549a717509a680417d32466f", + "0f4ab0a91790de58959cc1459fcc28e064bf2b23579ddbbc865825ec78751db0e4de8bd470e442259fe6e827336e69e13ab5a39ae3ffb8b6d1d1d1e0489bf7ac5f5b78ef637c6efa26a3ba15acd3a9ab569e291c840526a2de2ee611cb6fade4f6fa26b61c8575eef0e538a395897c94733a3a690b40f8154655cdd02355adfc598b47ddc5456c656d76641f465cca605e346cff2e85fd678adb6f21f8244c89b35ab407af" + }, + { /* i=1886 cDividendBits=254 cDivisorBits=16 */ + "21c45beefff78b4b8d587ade45b0555c87542e3db7258fd38eae2d7daf4bed00", + "8741", + "3fe97e626fd4ab3aedc3870f21d7af97994a726b736aadf74049ae0c4ff7", + "5e49" + }, + { /* i=1887 cDividendBits=4056 cDivisorBits=1899 */ + "dd3af6b551822b39af6081a3aadfd6c7feb4bd0a74697b1369bfc05990c2689a454a035b61bb4450be1f7cd2a466fbd92fb254c1a95eb8dbb5ba8d9887db2d2d85657f6f72aa96524de6711487e449b19a7737566d0abc0cd72391af7a9a89d7674e586065ad55e6f0130618ef37085d5e02347f62e5c8a8fc8685af1cb4d32dadfc31528f913301aa59a9fb211c6c2f9f17afaffcb64c1270b5fb72f2e195bb020e42d70b6444afe6d90c735b06a8cc8bcf7e93d2a0352a71af7dc98b1cb518ab922b60bf131e1724b4a0af42b61af74e2ab95f7781d134053f2e806e5e00f9ad595d8267af2f73c7331231ca3c079aba215e6ef0a9a6f248345bd1b897326e13b0cb4f73231229984dfd89741f03da0628c9ab6354e819fba725419c6048e837af0bef1ddcc1faeb41b4420001f06c7270a2b2a9682dcda80524360943eaedce72dee8be53caddfa9e85540848bc53f5b4e0bb842d748149672d0b612eab18d752625a600786c1181fb0ae1ef2a7cb6987cef8b2723a73bd8c0cdfc229feef86dd0f0c3c678fc5764e0efe6296ac5134fccde5118a8a719127a4e230cd13f9ace90beaa72b036d3f04c8bc9537f248827267804ddc313016d7af7681f8ebc6b85ab523b940f1dda140b768c45bd0849b1433be219c0b2d363c6d2d471250cc8b1be4d66dee9b995f5228939eb44d5552df37125280ff92f145bf", + "0477d240337412ea58ea637369581d628d0985667f2faf28d25b2331103026b09df9d2a70a4879a3b26dc20f37fa7afe3af7aa657020399a8b4f6c146d14da4eec062b2eec9a708d18adcc3c1cc11839fd88bd133c6691bbf0e0f466769e55a8f297ffe39d50754e17dabfc24477d70067e1bde484fff86c7efc7d3cf879a3b75323b426ba644445179e795935ed8a594158585f9d1a464070a5ce1dc27be5a9f74c2a707407b7ad88a153f2d199932c489b9793b760858b3c77720e9eef3fa305b1a55d9f081ff3efabfcf80ebb69fc5e7532ad3ff41f5a74a9e55467ce043559f54410f002113a8c60a325dfd6", + "318389d46b50b324e92f85aea540a47489d693220b5ced24fc577bb9567f1e38f2278557a1afd88db1957f8f133327a15f8dbfcba5ca4337120793a7ac7ba917f3684969b59bc1cd7f0d468bce745e07675d38004bc8dc04e2a2680fa0852d5384fb10138f850bf5ad99b57b37b13d3456e3f16a5252ee4e5cf96d86a071b1154111288b791246987ff0bfbda12eaf57e42993d6a5bba2dd6a53151d3dd398532a6683430953a0d83f0cae12a08d590a1affcd2476abe34bca7586efd1f67af2068b3fb0a1ae8159b75228682bbad6100927411fd5d1fd4d418a08e9a10aebd1750821fc741842d5a22b5117c259558720ed573c5f4eeda4b81e08487478a95a4267f621d7ed6989073360612ee3", + "01de09e5523bbd2e0c4828708c182c26012655a39925ba7de073ba74c9893335a5a1087d21c91e60fcc488f8603b1ab4d0eeeec3dc1f5f6142aa5b816dc15a82ceece580661a7b451b5a99f3c10305e2d59060ee79998674e35a9e344b862922dfc7255c809c31b74caf9da81d2519651fa10f10569506e6f0868a9220528da7c0a208e45047daecf28bbdd334767a4df2e033bc01e03a9c03ace3418688c085e57fe7d1e75a79d10ee49c3e903777359c211562e24ed5a02b5d3e29873279da9c53cc4cd25df837c7ebed00c6ae95dc4e0efcf5cfca61c022b6d71c98626f11d7d11529cb8dbf3233120a0d56fd" + }, + { /* i=1888 cDividendBits=1328 cDivisorBits=1170 */ + "0c046de1550c6a16b9f05d064a0b7476712f64cebfb2f0ddbc9ad4472eb9b0f816d5cf644c84cd27cfbbd6f8f5b049b27c995e80efaf614d0e36eb6cfc60b00721217380868af7cf9c9ec823a8ad2e160f951f38c68e968ad55c2b9113984099dc6b70ed9a752861c0fbab63cc6e587584b86c17ce05a0efc661d89e1a848fffef407e484727d36698fe1bc010fdc95da22fad44cad931caf2dd66de8bb97bf2a566d2174ae1", + "7c13208cb47d22370b6433d76e3c14ed7375ff59e807cd8a188d637d3cd694c32ba0f15a1a44da1e90b10e9cc0b6a5c95931c90cbacab0d7e7ce17b454e43c3d47bc7cd47c361e27156610d9815d09e67dd3c2b51fbe2354961edaf8834b250b85aa33045ae7816ade03c0c181e5ee0aea6627e0bd80b0871d1e872dbd7828a6516342b8f3ef984c0c5a07d241af1eae5d20", + "18cb8359d717112bec79fbeb25db52cbc8b7f959", + "56196e1e0984622acd08cf5f1cf6f09794caee86bb69903a10bd4e9171fec67ff96eff3f68f62a150e47dc9d4f9f0543ff849a46e7e1a8b104073fb4e4bea6d1f0c6d37f30a5f40f0195bc3872efb29a8be360993ca45be88ea5e99d6bdbf8ca71bdaf97c057b54c219359a276143c8a1c8e3c34811e45ea8d3e93b65bf865ea8f570cc019b0a172578305573ae7fd04cac1" + }, + { /* i=1889 cDividendBits=915 cDivisorBits=800 */ + "07a466018d935a2f8809c662b50286bd6853a773b3962c9b99ee28e2c9afd6ac706714a9f2f58ce3b7ec874706ade4ffd170c2e9f82c765c734e4bb0a8779fbf26221f26783cf3ba4d0d541688067a9b1e80b41cc948ced3397db8bd982e0b53b604bf68d67b70e0290c8a913c0b30d70f28a5", + "4875d79076c7dc7f46a5c628436b21e216626b58049bbe3c19198621a01b9534473ef870bc0fc4b781e5d4d44c10170a466cb5d53dc04e8790f177f69da6f3998c81c7e877209faae165695fcb4c9972cd7b87ced31d8b95829aa783137ff41663d37fe7", + "1affe4b15fea3d38ed959a32645781", + "11fa04ccb010eda51ebba53bba043bc2952e90c1973f63ecd0dcf0e7375d82ef289ab1c7c2ceb7bde8506b8a1913042078f8166155d5ab40a6e306deb683f578ab5389958054370ef3bc640d8e89690758d4110ab14c184d1ba84fd07208be6c94c8343e" + }, + { /* i=1890 cDividendBits=4049 cDivisorBits=3418 */ + "45912dd711dfc358a19fd338ef6c98ece43773c200a4664ebda29ceccbd02bcc6bfeee843f1a77414e61c097baadc41400020cbb24414ace2718679282b65c3c65239117427bc4884317aec2cd0f11138fa3ff63bf0e2215f303f5b4f124f6b8c83c98d1811d2ba2e79e92d5d4b5ec774729985d003a13184ff420888aadec7ad3c776056ebcef459f4d073bda7edc4494ae579f50c90120b431a6f981b3ca5f034ebaf3607abcfd904a6ddf718320832d9b90d651a7922c6790d73bf0f4fc9a01642fde589f523cf629a52b4c5ef29b8cb2bcfc53322a8b9a2ee769cf1f17285527e0b45a706ecf8ea06db053bf32a368fe5e9f2da2389d6c372e307b9ba2ab1c47720988e6fd3faf59815bc6ecb18c435ea06a8372c498822ab0d85299fdd24425a53fee272ecc22c4d67d74c57dcadd5d7679ff548d2e0783ca23903e8bbd64013a857f85da7f05f5c75e8df6603ccd49beb13ad42c02ad27cff5f1fb60774c2ba595d451ee9f4db1421119493a21ff74f3aaa144dc32981e87fe99715eb532bfe4e05239a73d8ea9e340b170e7d9101b4e08fcd70742f6d56dc7fc85edb93f919801eec07f4f083ffa97936336a4a7d00b899e18c4b067df3f8338b6a815f0d43def7e4f58271fac467a69e1dc4c44b350a51b6ab4c8d9587703648de58d34a5e9ba46689960889b1a29a3f8b3c82ac2fa428afec65fa9da", + "02765f41fe851b5dd764f7faf31056ecdc31b3293dc558b94095ebbbef845aab8279916961260d73e81fe31f463a4ceaf5ca73533197991e5bb9ea9ebe8ddd3bdfd73f7c4d1089c2605086814bf6dde222222a29c1787e4beb2911985bed9bab31498dbb0e9143ffec007803a62f46cdeb1fdb80281375ac56966b631e3150f2705d95dcc7d6cba915023a958e9f708aec067218cb8ad304b31fac24e7fc26c459a14f50a68eaa7f51bbfbed3ec174bc218f2d513a318c71a1ea3b06ede6c63b8bc4a62efc8fd2e602859c5f21b5f4e08da772c144111aa06700b6f5f168e278c6dc0ebe57c905b6840860e4c2d1417955cd8adc4d34bf6777e350ec52501094fa4fc788b7b347864b24c55523c387e237d7170c53381bf1d240f66325ea4c02fa6d0e7f8beefa749d52fe8fb56604a1ad3946ae8a2feea98b9166f70bdc69168eed94641b8767a8da5b235cd84ae8e2a89c131739dd75a3c265aae606a11ebaf8fc04ce9d09abb1a1d2f08f52a930a2850bc3ad14aea3a87a17b7831ca1c37dc0549e2c6b46f40be3732bffde5bad11120c5a64f6bae9563bea0b6f319202c7a9c45f91151003dfb8d0ab7d", + "1c40795939d1f981395c48cf76f935fd9ee9cb9d6cb2ab6756666eb8ba427cceee3b4948d29906ea99d66a440fe6a2fce448553cf18f9017b8e070fc46520fb2373b89528b9cdf4daf9719c517c5dd", + "db3ec2f01fcfe7864f80f99071d678cb8782cefaca15ed5b3ea13fb88e53d00a6a8a5fbd0368f5bd3bfce421f83245c99b2e104cccf9eb5596187268c2fa1d0c4aad392125f64a3f0d45c49866793ddb0e6e5156a509b8af28c6c776122c1175e35ae4fc02f69018285a28c7f774346c4cc2aaf550f966c0b08d46fabd6b3496223d2469640b460876eb84cec462c24716a3676aeab7c1863ba1f299c229d912d3988a8ea21ab24296893a32a4a0c6306408ccaef607ac159f552f7256889b43893889f1a4e6755d5339a7a53a23f367de8a8e7cd1931a66e81b529fdb8bb74298259913e5f1bd19405f380458581d37620631ecdfeaa4d0b85bf16889e198f243ea21acb940acc534bb34c92b7b3211bc4bbb48fec12e101085bf578bbdbbce4cfb217ba2a7bbb5f7b0bf7586d6c3b084ad61b7ff6de0a533ebdf23e4aeef6004327667c40aef7f0b531309c70eb4c85348f61b0c01d81bf8a25323f624da06b55cc72684eafdb6f4204ae099c1aaaffdb36599ba6a77a60b0f7555806c3d9474603807ac92c74e8a6234a471eb7acc8da17de05cd72e63c261ba0d4da0720df4ceea012760b80d096df1" + }, + { /* i=1891 cDividendBits=1693 cDivisorBits=237 */ + "1602be731a07631f559ae61f7ae759514beb907b6d445a2b4ee6694ad98bb19502c3ad0c4bccd122dad2652922660c21e3c9abb444a08c92863bdd132c588c1b26f0675a5afb70c2462c5f78fa898d94527844066ae4ba2ed545039fb88a0e8e92852b07d9f923bc7358072ea4cf0c6e9ba11a4c2341040c3983a2f530d224b6e2ad3c2aa1cbf5000ec7e98e42bc310cb140ee828c24d4218177327444a5f99835a7bb0deab594aca5ebc9e511b59a98d2bf3bb3481c8ffb2e7d9d2d8718918fc34f31d291b5feac2e29acf85f75c8eed9deaddf", + "12837071ce4b7a89e2aa88758b950972759a1dd2da7e61dcd0bc9ea32471", + "01305c174f59c1932dab617c65f0814aa85a29bb935a6d72a2c3750919dd548345f9ba5a6d07e1f6aed5d18513d2e556f70aa8e6fb903b5bb6e2a2c0698c26c29448b05e9cc953b15eff133a41624016d5ee7b56566abe70794768367ba98c4e0504b193d60a03620768e1744d03982b709466a1186c315fbb81f39ee2d464a107306cf83d356ef214e0dabb9651d4eb57790e3afd63cf2311c635c9d8924265633d7468ae3dca4fb07069ecb2aae7b0e03bd37658ebe0", + "0e9321eebcc034c7270236c0d2403210d4e34d59a6a36bef2f40abd30fff" + }, + { /* i=1892 cDividendBits=2586 cDivisorBits=1081 */ + "039fbdc4c7d192babcf11f7070d7c6e2780973f866698e14fe9252951db1f94d89566721d3b7ecdc172b528172094234c8456163d92fb0fc6ac8b9f9ca7619b132728aa0935c57de4bb9ed58252f9d249869abf49ffcd719f2e094f79fb4a2f7e9888dc08d7457edada5a3b8390808098675bf18d61fe1348f6f383329f907b3917e43bf05903a1d489217edb30757ec41414fe79b13a1d7f3d278097de3ce347062a7aedd919e891ffb1d68cfc2bd5b796d6a98d751c9a383bb719fd6839cc9893753a6d8d8802e701f254b1bd3bc0ea222b0d3411faa9b0d7f2175ca36173704b1acae0d4a6a39afa3a19b4a685b8dfd5cc24bef06a753370722e24976a700f1bc9bbe4d4fe0da7dc417e6c21f288c902a8eace46b6c1415200a47c8a1b73c98163139e7f3b03265b3b2d37b572291285959be6e7cc49ded902e8fe4a4b9749325e330", + "01b2f51956151decf3acd0100de4aa95298dba57fc94c77aa2dfbc4ccf4e1dd57f6a1461e2f29f1f05de84e64a4cf5e7968f9c039cdfa192e1c2a5e82ae66bed13a9bd44a8a7fe15fcbcaf49fed2797322e41399d75633bcf81b1f8dc63a6f422dbdf4557a2a8133a684d441b09c1ee16309d6ad9f9531b5dbc5b0c7972ecba2e830cf61d09b6dbc", + "022208d6dff90e9b3acc09438c8320e316f4ba5f853ece018702770642f14a42fb50bfc6870c2cfdd5176a8fd1081f58c9c9720f040d5d0d29e58e3971d09eac4d3babf67e082e04311b06d614fd7aded572c28df34a7f6a7b52ddc5450ec58c4a36f1e481df0cf558612d06eed1ba97d79d7c8f0befcf232f2a2ce5f7faffecd5b9fd4b67d0ff384c1da32421a20b17f3baa6722d5edbb729c9d2bdb3c86edb24097785af871e07c1a67f6bfde408ca54ba39447aae53e21a2a86a62d", + "0163d7bfed3d2334ca488ecb5e4c5507f929fc7010f7ee36cd9114d2c3ab89ff2236475f85d602a86246ff0f264d754f60394569366c47d3925f8395a513687620825bd90bc7f741158f62af9852c92d582c44bab537f0bad7454ef306e9bdbc24736f4d018b9eff111209007bafaf0ce3ab982ebc6d8e871883f73d924f4820118d0989d643b124" + }, + { /* i=1893 cDividendBits=2658 cDivisorBits=662 */ + "013dfde6b1ace20213c8d76d08444d6f093539aba3da1156dce9473b0561dd882a5ea16f83471d0da0d3304f058f9d1cd5a66fd4cfdad9c31eeca89821a4bd19777c11bbd9fcecec75fa644b6698ae64706a00c8427878916977960ea186127eb3c8d4e225b16abbb48c2c273e289780612f54dcc10a8a583a31071e6e98307c5d29b6d15afbf65c31a206a89c8c5261f73f1ad58cc4e1ca0d201f165221be821a3f5ed6bb1895e92e8682588d59d2d4391d440d2ff09dcc3c790df2087245a568892323759cd56b18a40aaa36fc3dcac8d449a0ad44a1cce55c1d37c8a421e46bf6040b706cd8143f85033b974ad8974345ad0e37fd9b4ff02f266e9f4ece08662b561803ae7f4982f700c4ffc3c991949498c488c2dec7ec125328666427e9a9b4d5c1bb59e26c282166169a5bf9ffcf10598ef13a1404488692e22e3d2b10fd862bab42a0898e1a7c77f80c", + "3f91988fcbfe38174efbc41f66a935b8d62bf54b9fff49c5c317c6b8636a88030a0b836e582768a06d20886043f4309aadd090ed5f9fa4fd8a14c5ff7e1bf83c3deea696a79f78f28875a7c9207f53204b2b05", + "050098b6fc172d841a8889d6dfcf4797e7d340c49c581bcfb1e2ecc33a692d066b565a79bec7e16f31c9ed81a3cd5d4a0b139ef9c8630d34807cc0a38a3c0b4947e4960228ecac00d98cca53b3b02034630c63a15cfa0c2b020bee5306840d8bb0dfa10895a14ade8b16837e9cab22854a6ec42233d48bf60dfa35cea90b7555fa903fcda645acc84a38f7dcf5ac6d890f264072221bd0d9f58a621dd8485dac800af3171f7f516b36f4ed1f907ff8eebac59fe8db3619030481c33709f92a6ac52de3b42fcbafa980f697fa5919e562af8dfa6ddc484900ba150bc7a0779a21807bfc34d1dd10d9bec716d3655ec573ae109a2455f28fe9eaa0", + "28ac937c2d718a7fd53768c187085d1d8537805861ca5cc81d93d1eacfff7e801ed9359d07630740175d84a63dead4d8d9a44eb038beb025814c76081037266ff0114fdff8886149fbbfc95b1a4975a59d82ec" + }, + { /* i=1894 cDividendBits=1530 cDivisorBits=1205 */ + "03574a489f79c0c442c9ed9e18c8a41611dc16d40313cc5ad603009e6e1fe66d03626169e9b991fd6131d7460ff65f54847dca62ecfea86d21146eacd7e8f76638b00b8537a02b2c98435f571398c386eea4447584ccf3ed8077ba3862992e2368651baf12049d7aa32d1023928e8656193098dd1a7610b973da177060f3897b0dc8f11bfb24a86b0bb95311817bbe5a3003b3df3a91241bdfd019418fbe17cb2566cda2e8a73ec78c7fff238565b79f291959b59729d8c205cacc4c17811880", + "0706f160001c93a26d9f69b1ff8a00b9b7fcdcb8649eee682c6d4935d0c26cb0dcccc512d05ec0b7dda306fb2e72700899fc8378e2184eb4dce6617fe1995d220408585c54cda4026f8aeb4b8a16ea66967ec0423c7bdb243875b3828d363a383b0e378814521d140b7011343ae8dc068b7bb19951f881758a9e7e1a37e14df74eb23bf9a1464d033814363f8854fa5e8a88d62fbfa0a3", + "79b676c65cac6bcf786210047110e572da3368d26d443bc6196bc6b3b5797e5be16c579cc1ab4c8edb", + "061d6cdf5af6db7795e54fb97b5b673cb6064b21b94df1e18395dacf8145e6b2f04db895a2d88a5b65d4b797f8ae53134ea6204596312e5cdeffea39595c64eded6870d8d30e3d36fedabaa581015b1d0ebe868b9e91ca0bcaab4779e1a1a4c3e366fcae5a2a6d71557dbb536ac1db899ebcca03e1e27a5e0498f2f24e701777a4c6d81ee10d658a91cef06768cae07b2552816214430f" + }, + { /* i=1895 cDividendBits=221 cDivisorBits=166 */ + "1355320904c3eb78f9588d8a0e915108496659489109bc7c78ed7efc", + "2b256e785f4ffde86aaaef06e74960d1978c520876", + "72b51fe61307bd", + "150bfb571d337255a992407af0460c48c8fd6005de" + }, + { /* i=1896 cDividendBits=2506 cDivisorBits=390 */ + "02ad8217114df2e4dbfb7a8ee084c6a62a8375089f026ea86bef3cf917bfbd876010940c78b88d3d222c9735735547100764db5d58a618ad36846ad1e6d892629b122949ab1b51b85bd11f1a262b4dfa97023cbcd73ddcdeaf354238990fdd5ee4a2f326061340eb46fea24c5821bbcaf26992eef3b6d6368940878c200f2d3793003fb107b46ed5cecb7cb75f8e5151c68468b9c2db0135896a2b8a276f66a69af10496e7478bab6040de9ef0891a76d486ef209ef488d81e428d0a48a3a4008191fecbc8458da5ead54ced0498bcd2f70de5b1a2e7404474e880c71c0e18c1d750b546f6f5df9d24eb5b87388a0a1216e61321f0380742006c932782cd14430c51407dad15bb9adeb4a614e24d18866103c29685b1d2d31fe99a4df1c1304cf572b8bbac58aa066cb00114e6880e7af942f2249116a7f95779", + "09d802f883366083790c400310fe88e479f577a8555c7048196aa70efe7945c3f5c925d032349b5ae24cf3e6b1766a3096", + "45a37b8c9fde85b46aceda36dea7c9ff1d8e85c2b3393e0654c80099d14339bb81040c4b870ece6ddbf7403d7663d56cc1cec3ee0f8da61d6610d7c07847c1d5cc9404d45215b644c4e6fa02148793b65cb65a15bededf22d41820b3899cacf9b8f35d70ee69d5c7334e93ecc650df7b94f05c0d9cb3ef06b40aeb159d3439a58c85182bf248372261472b0431d3c4f31e03bbaafb4bf3b0c91c846902084fe34739616207a731da671aaa64bf85357b5fc16f7c2a2a9836554212f42aa0d3baaf2e70aa798240106258eff4b4391b6ec2a3f491dc3284bbf7e495e8c65e4e245da52b1c94ffc3fa59f5d469fbb512144054e7429373df8715a843b6c883c5702ea5785e9ffeb60221", + "060cb770c2d75b1b69224d72462bccf9b197e0105e0a543472d64151d99ae7aa33be7b28bd2a0a09740b23a46c3143e823" + }, + { /* i=1897 cDividendBits=3880 cDivisorBits=2893 */ + "0fb28970b2ee95b9db00adc9d8a0f30f18ebf6532c1a6f8786d706198434ea11a4e86be7978011d2bc79e26eba2df1b0e01e303ac12b311b41745ce94fbb7a420a47915b7591214ac0b3b7b17484346625e77f24edd16a255929d404a8c58dc02a9e18a0f3c11da043615cba8b1581fe707c43c0269bf10c06de1519fcc7d3793bb53ea0d8e94aceda8d364e24be8c237c2dc1e9928ea5e39f804c729ad30e8c8671c390cc88f19bec5efc3e19dbe18ca13681be01b7b6efcb48024ea02773fddda7acc70d569a4a166579e22f5f1ff7e0c59515fa801409c49c59ac2aee63915b82c04683efb442eb5f92994eb981d1b68d183e73f1cdb4100bd3d9158446e743476b1354532bd2448244d8cd74bd3bdb1e0212b941819f8f87e072b66595379be7555ad8d0b49d3264e2f8078e27f4afbc3539d49f5f57774056c9ec0b39154c57351d7f0412b51df0c70adeb276e689910d0b842bfde8f64f6b0485a6132c5ddf8c545ed9acb2ed38e5194389cae73a5a25bd282a8d6b1296f7e0ceea1a0c679606ae3971721058d2fb18cd54016ad86230960116c0a342c73619a7ec889d73f457ea4429f0783cc2fd6f0331a3509f7e2b37bb3fa682762d7db470418d192363a64e78c9afe03a1d97109defc4cad840828627a51066ee66e3a0e50af9e42e8b7d19aa", + "c8e398b9d3457f9149bded884d47a67e6c52dac540838050c61e7d7f10cd5d360f79f1bc2f721318dad0c07da9edcad47d29415e5151f727d11f73d5e420b39905f1c8a27b3ad7f09d8b17fefd5735d342af2828a5ff6c91264e884eea6dd52d0c6d2dc84a578edcfec8b1c1d2fccba9f9e9cb633cfcded7b12e1c35f18e6597739e51c64c0b136582e1f89093e4e400d409c416f4902ae30a94b1f80ef49e0855c4fa4cff0395640bf77c4be1614723095bfe7a5fb4e9aae0c63bf1d9c75987bf53a8932568d3fcdce6d578dfd7b1ef31df0e9086964258507a50c4d2abc724bdae5e487247e38a35f32c96643a8a161a9bce9346f492c9453360c676e811462c2aaebbc2d5c94ff75d802fb45441f1e3660d9f7e69891fbf2ea6c094b27906df5a624cfabee42b3e951c5d3e8fa958b4a16d1c78f2d0758257e72082b5b3657615ad994d44a91f1406e7d7c3d789e319efa789abbe44844d6c12ca1567be61f6f875d07e11e8c7b9", + "1400f6984064aefe30e2ec6e1ca106bc88a39650feb8e448cfdf380eed793a1e2f831a4c6a876cd1f04e77b6734ebf87e93ce35f1edf9be05ad7bc5cd4c7df7ac93b5d88f775f587d0c710b63bf25334cb23a8292ce41953e961cf8df4eaabfc41f1021192115d4e042d97a43fb177ae8a0f9ec1b10fb209d4d23347", + "289e602e71adb8e11b532ec7b6175e0de616b0d173965caf7bb88d5768e1e1bc7fc04e4e44e75c2997d569b3249746ab6c0d33ba74573587823908eaf9f07a9a3d0a9ea18d5567def7678a837c21ef9d4446cf5c682a01c1b799a5dcbbbed155e9134ea844c6deb5455fcdcb61ea8e219111b8ae15d89e9a4389398e3c9937cc2ca5b8c2060e5dfabd46a53cd0e355b8e4b4f70bd2e44c629a6fa874ed18995d07b4979472f0d8bc8cd8d8ef26f48e4b193055d852e9f682b57aafb5d8aae402f4d88763f37ca043d2cb697e07ed1f70c279d3e6f51dd1678bb46a709904e03728fd15fe01f71f8c144b983a7d9534e1a9044b0ceef89a811f161cde92e007f9fac9db7d8574e1782506233085b1afe820a82ee07a14b6f1d0bdf2473a18c497a0bc97aa3b41fb00047fb45de33204c423c8943171b42cf44a881051f85f59535e65e144f55c2bdc69608877cde28c007e46338edc80921827b58be0632ebe2483229fd5cc2a61da5b" + }, + { /* i=1898 cDividendBits=3987 cDivisorBits=2710 */ + "02058f07253c8a04a18dee15b1eaa6d70dfb66992f1fd67169a1bb1a92002203bc56cb90c4af00d515894a96bf7512a31c9923d39e5122163bd7b8c833727ba6b5fe3316f8dff0673cb1451648cc877f6fe9e87b3c243fde8dbb8324519207d207c4479e3c12dd12a0933b2071baea8a682e0a085bd87828fc8a0cb3a3cf3871fdf88503da1e5225d6a7a99fd613f195bf524f1861002ca91ea009e768f9a4c2d51c89e8af0c8b876869846e76f1e8c7f10378ff0f2d83a025e5a7d417d01c672c3e3f6e6cefdff36124bff8faa4a86f53497e4151db53a0d8c25045fda7547d58286cc693e8c2eb34784b76c606972cebf340e384a4c7afc9d24b6f92061a3e7616bbdb8c766604110ee86e62dc9c7f926708613c672c6747b84f6953d30435ef1224fee2811a38594d54460b90b52e91a273c1e1f45d63c98ce7de5fc3f0c25672946120b92721871750c4b9f5a3faf908c4e992c4a3459d3651e5f1145346d92c8ab1f4522ebcf39e9c319a5b01923e763aff65b926c77773aa91112e8c610c1b0a160fd453d0a81a8b90a610abe1b7149c8bc5fb839c1e0ff8a7a148fee9bd28356e01909158278b251b546816a3207795f63814955235a5fd0582e57f333b09a4f07202a03e9fb024787208fb3b0ed5225ae26431dc320f24531528ebc905af395950fc9116c547507f1cd031c41159a0", + "2063b817384936ad35057efe1fd7ad1b47be6c6ba103d435a5fd8f1eee5e0f9bfd5ca309e9477095d55ff9e12692c68090d489267f40fd626a3473d7836f6a387106c56d64a499396c58d524bef4aa5fc1f42156937617516623133089dae0f2506ac6697f9392be7299dacbdc1edf5f997c71190d80cdb6d78ab7583643b82329ec534f7af953f36497322f24b6378767cf167c94416c68d663b56d00d109c4ff8f3cf1760f06952ce3d58f3c0336f30168c71af0b5bbfdf99d124fd2b58b8d2a5b1aefaf02c4ed2b4a1895a6190b08a5b761f6615a9ef88fc164fa9cc53549e4d303aa440185ef90c37f576902efeae5e6b89bd8ed336358dde5368cec73544cc7d8e410eb8afb2f2f98e61adedb31c57e16880c3e5a07e1cc900665b38b2b32f22347b133263a73f695c8a2c834a585f57318734ee553c879aaf408ca2408b374c2ae75ce039784f8e4d94ec6b6aef30d9d", + "0ffaacc5ac9e3a7ca6814da219ef2334c6d269f6175c47453cff564d25849434f53d6ef06fc782ee99e1579d9606f78979bcd31c75e9416f626f5ceb77f12d8ad95f0ebcd08e0671a7ae44247369ac1d35215273aeafff7fc60d5bcda3b5a135dd534f40abe5a678cabc75b424135ec5715f1f2612947d7bc563c48f6d4a56300a9a9dec55073cc7fefe93d0ed1255eef90f6edd33e044f4631158e9f27ab94d", + "01522d323acefb33c33f3dbae8aa761b811f6787cfb06e1832be143bca165d30c5fad79b0b13174bbe90717f7c00bd9a6260caeee0df60ab266ae72a03a66463bd727e1a948790c6d6c632b883240e0c039728852811cb3c82598e8f45b6885273f590d4e9029e36b46eae251ab45c17b83039665100d9ec5384080e5c4ed3a60595d7b4a1dce7fe5ea3c1b7d0697c33af853b464d599d6b5e300e74f35386ea39495319f5855b1e842197dfff4e602362db41ccc98a533a51f60b06c73c844ff0c24f762c5fdda802ad9e76416fb681e0c6e6dd59a7117b9cd5c8beb4442075627611acc7e86b0d96592030382ae05c1d336fd08ca20a25d105da66edc666d06f86946270ce89ccf1bbed5ca43fa660587fe99a3a45ca2454b704df1c346bf7a9a8596e0724a732e50ae4808bb9c850890a3264540b40f2b3301f9627559fe8edcf953ccdc8c344fb0f996a0d8839994dcc67" + }, + { /* i=1899 cDividendBits=1479 cDivisorBits=1147 */ + "1e1102152f08aa644178d5aeb459287c15dcba0750560b29afbbf995a3f2301d25d0801cfcba2e70fc40960d2a8991a23588197450f6c3561d0cc2bfd197779efa97e4cbee300c267177b914886a3945d9dd9dcbb3e4ff21b634b46395cd4cf2d67f2f09932931d0451a337a536ee6c9f612ef11aa12d207524fe31ff86b5d6430e7c9a851270ced2fe25a5f0970ee6912a8cbbdb018a57908acdb21fd72500727a5d1eb989bbf712a2ff67076434f67bf20d7af2cab160332", + "02dfebd9363e0155cc5b39c6fa0cf8ca7cb4bce9884902fdde377725a44d40813d559ddbdea879c6a1c1ccbc9186cd4f28f319b19af1e85e14b4e5cd962a0fef483028b240b8f66c8b35f676edc986af8d263ecb683a54c2c8f6b943d1e7362cfe626256761839d64f062f453951a3a01370d31b38d251a611be7512ea5ac58456d5ec3dd0ce574457b9f7aec7785218", + "0a7581afa7061f9d38f1f5c591821856a7b5b0c50b65f61fd22992acad686b0f16864b05f4c979a8e706", + "1097113a4b2c6840f82bec1d967cbb966cc02fc8b10fc98350c54904345004830425b3cff605bea028d5cdd2b2bcabc3d6be6613d80bd94009f4b6280d79113bd77970c2c5cde818f269a408cd3ddbd5046a0d8c8c85b2084a6d015bee1f6410114ef1027f85ba2008daebe0fda3e83b343f2b21effc78f8c980087a2cbc78df927fbad808fc902ed3107b34706ea2" + }, + { /* i=1900 cDividendBits=1776 cDivisorBits=764 */ + "3b8c412eadcc7a70790872898e86b0ae9264dde84ff956d76dfbde2c7cfc73dfc79a22a0a989e117ef91758b6190db700c8427bb3821c46029b3bcccef9326f0f784f643c0a009dd26ec4cba8bc92a4694496b1562611a8fa1630bfca437f8d1951d70bf1ea7a2be968a4a76817db706e1b5767caf9cc9ad2bffbf824516ffc64256ee67b7984f87f9b4beaa11aa2813d9a86d197480f0fae7482372023c73787c621019b03366adbc196eca0d2d2a7cb06a0c537d9c8773a2001a99e69a86933de90726b8e9c7cbd24d98d882b02944bc5bd854b67ecc76e4f8e5946f22", + "0e768adb8e6f0623ec6cc67a35af9ec1bcd05465a5f48f5460e3936229af9644a85eb8841508580e82a001a913d479c6c005d2c575f22f766f150be46d660288a46678c121c46dabfff649ee30f4970ce0b7394abff7fb14d1b0ec95eb5b97b2", + "041e036bcc6f79d6ab185985c891251bf4c6528a9f51961e516ae4d4c81bb9ecd1446b24dd60401791b6b555d5d55a028e9729530178275a380d573e9158cbfc750c57ce4c753bd9aed5976e03f3227e2de651dd5b012b3d87789b80018a944294d84b17ea0bac30c7cdcdfcdb69773a78e1a0df396a407938cb58890a3636", + "01c27b623e97c2489c01f21d7fb3317ce8b9a546a11307cd094549629507b4b0c2a2d06053703b23176a5dbcd77f2e3c18cf4daef98e227ba89324af5b8b7658aca98ae4e59b7da33122ab2c63b180cc7d45b25d8239dff2ecb7dcc1bf4ee396" + }, + { /* i=1901 cDividendBits=768 cDivisorBits=215 */ + "baf2bb15e33f3de230671bb7efeeace225b8a878c5214bbac725a9c2310c3a1994fc52869e42d5a5664711109daefbe15894e750afd14920e875c06eecd7d74073a12b30009c05aa0ff00061ada5b13503945360faa439d11011b1d9fef549b2", + "347609b7e0b1527e223266ec72aab486cf62ce2859016c733962fd", + "03904564c3a867d44d5e2b82a8fb32e701212d70b00ee7beecd27587003cc82105a2e01aa9d25fe64e2f314d3cc89c079f3a2b0398a4a26a56b65e6bcbb729282577084373e9", + "20582ed368cb8be01fa3f5c3833341760b6ef9c0ec26aa880b8a6d" + }, + { /* i=1902 cDividendBits=1404 cDivisorBits=1312 */ + "0b69e60e209abc9776040df08c45be74a93b3afffee84fbd909c0749060ed9f5334b0bfcaa626897441c74410634f9091fee4600ea87de2ab720dc03d7f52a424c25665fe8a622127be8b4a1559139a3412c1423ae3216fef32726be23bad03cef0a576014ac27713a03850056a2a3d3a14bc1dcbd6a7778937424aa0c24909ab9cc298625d9be07bbf6f134dcabd5d658eedd2c8a1972fcf517e2a9dd783f8141c534ad5c536e9ac0939d6c8978e173", + "f8cb9f398ac83f084586fb2f266861c59da303c2478c73805f5ce1366e1a757cab413f59e20c9b2e9bd1390cbf25dcbf194f900e5ddbc88e1452a3b412a727842a8bbf85984b1739a92cfb336bed63c8f7fdd48439f68b6b2877f406eebe0a37c2d4d1fde8399dd9992aa695254a86a1c2ef15ae0c6548a9ebc6dcc70d54eba2ce5812f2ae5e4a51af8bb375c1724ac82c3e927969864afa1a4d8e55365004a39aeebafa", + "0bbe82c49c962572d2845197", + "1f3b4a7b4e6bddaf928c53e0abc42cd96cacabad63c7faa5753cf7e4df326ebab8c3fca71c2c721f3bc5a3010c5962ab42b40bc29dd13697107e5767946adc283f3fe8ab278d659f793d550bff2051bdc27d66d41b60af8efdc907eb6b5a8eb2b864cca0667aa9ad9912e07a9ac1a9ae45d45310e7712d855874c1524b97fc0b3e310b8bcfb4b4ce9f9fa927fd6297f6499aa8fdc376806c7c33cb9e66a3ff1920977dfd" + }, + { /* i=1903 cDividendBits=2708 cDivisorBits=1271 */ + "08179aa81e683675af28bd8da6e779623567b43a0848c00f19fc2e4698dfb2076fc8c812d8946f8ca3c53cde3437bae9225d6744d9cdc44742426715f2359ba15c71d590b468c7ae92734dd190cb54b53e780d05e6949615d5f6aef060ada97fbde230bf3f1cd3ad234a78951d82142ab3d620c30b7e107f30d684a946d50352564d35fd45378385ba4e7e7bc7edfc28af87c2c70ce8362569802f04456879d16b702c0cd3e6923564eabf49ceb3babea41476847762699ff66a07d816053c7f2d46874288a5a381bdbd0b6023404e40a6e5d2d5ecdc81aea24ba24dd1187887a690bbd9c648e3a1cd3a351dcbbbb16e55361339163c5f073703fabf253444b74e1341b75f26e90196f4a08f29523e213ea2599967ab62e17e75bfee17b0b44e247bbd314e92ba70fafbba79e9701ac3a34d709fa91fd407dc075836cac99cd55e1cef2e5ffc389db4d132db144b514d41fdfc", + "78819b3a99206f1be62b34da88fed5b198482f37b4efdace2d201889aca88539c1bc00f4738faee89ecbe2553910d3d1dc018bdb0a8d1f383678242762be04f2b7e3ddf4160d33ce66efd0d570acb272d33ec3ac60760b955d505779baf0f8f23add895ee09067b2bdfc53fe7a99866ed152297a1c72b6fde430e1c387b44ba8d0828c1c1f166fa7d9416ea692c26d37d0965d614e936a09fdc30e3b68f392", + "1130dae928948604d337e6a9b8a4d94f12dc8f75cc4e5e480117c2c04b7f078ed774b068b04465df61a95fd481399bb767a31932ba479267badfbeaae27bcc9e233f9a359f207826ae8d5af2c7cdaf5f4a97e5a97fe680e4c52ebabc75be5e07dd4984f4b251ee533d14493da45a98dba4f616fa944e9509a228897f6c3013da8af032d1036d9550b44831bb2ba354fbcc01cbc0fbde03b25cc1b13605b9ed44fe3614357e2da82347fc7bd44c756273ab84440f", + "6d6b0dab02d6e0507ee3382ff157ceea62d4c0201e761a144a101e30144797aa506822b05db1b1ac77a2d23267f577801bfa443bde9fa1e1419e958a39d406985f0f2533a09ea90576265efeb89800984005f59840f66f117d2ee4c3eaa22d08e063ffacb88ceccb403cf273657abde0102ed3f05a69495d3642c5232a9c81f6453b15012b0ef66dfcacc8bca653d820b2ec6b51211ee041430a4dd420f06e" + }, + { /* i=1904 cDividendBits=3438 cDivisorBits=2653 */ + "2408cb921af1845c7ebe6cfe12df280f6a5b84a029c6bb65ff987d242e9b1a7f8e28f906fc6f4a690ab77e55da8fa2f110cdfaf59fd492eea43f5f9a64b26c1ecfd896b676b1196b22606a2ca1f30a8b41e1feaaeb48b2ff504eeb9b5c7ccb6dad23ad8fb0b01b8731aab2da3d3907f30b66149b3d45ad5c9e5b4a191cf1037f9c0bbbb803024e520d7482d87840048f844d879a5f89b76fd84020acd05d5504fd12f45505eb1d58425690522795b2522157f603ed52ae5715279824df85e9f0bb02deb8d54e3d254cb860291375a26343334312e742b05b3afc13b2673dd963862fe182c500b48c4266cfe597ad3a5e383519c0db3b880b54d75c5d666e40a87f177a0fc58b06262e6fea5027934ab7f515bba1921dc0eddbd51fd6d67dd42f02bde04d8839fcb23a1ef2c9645b9f94cb74838d6f4c6af16871567726c3f5d097fedc893a2c08ee1fc3c811fb43dc10b822623cec3c1148c3671c1ba7ef3673bad0f5f4124994625a8033151ef7230a6a901aaa075dccc696a16298b96699da25ff6f8aaf609d42943b79d49af1a79b35dabcb32f9eee68ca2946a7c6d597495c967b2ad90063b6350b958cf50a", + "014d24ef11f7c8c7b67bba04ae7efa6648c45290fd32aaa69afd427b09a2d6aaa234cc1f83758c2afbd6aa8d40659dd52c79a7022b61aee674776559336fb08f2c6ea0ca130f8d699fbae249f9f57f7ad0fcd63d100aa724990984d825a1f091e9fb7ade74a3fa57de6e363e3e89c406c11991e4076e670654a1a35d115de540df1cf5c918b1548e2f3ef0b8efa25803dd9f2a9ed94f386d2ee0e04b0dceb0c73665a13956ab9c8aa5b9f8afd1e13b26845ac91903d69cef2878c907a0a4d18f0ee075b860e71f63e6204a7f6e4784bef7ba2dcb61b68b592714433e3b25a84c7cf655d8f32ebff86a75f60e439af66d14a5a78623c0dce9e015c19ac3505489e42952ade3aec941e7282cad773b2da4c7bfb6ecb697e565c430c721a3f09ae4fc643fe251c6e56805eafc3c6e3f4f52a08713776fe597e7f152fa53ffea9c8257a47a4ab2fca059f29db1bc", + "1bb0a9cbfe9e39f871e8bbf1fc6db93d15341da2cca4894d6b02ea7b40129e36524b74a22e100df64c2325a70895f947a8ce9a2eeec65bc73a8623260aeb76b2edd4dfed860a6da3dcb9c3baa7cba595879a615af33488e5d762f614622195d37a0697", + "ae2c9cd6842df3aae21052c64301013c10b55c556f3aef5c30d3c61abe919cfd0342a8de73357e41cfca65e2c6219b04a4d5b87809426b80ee97248384b1bb1417f1c997772211f9dbb12e1bff17facc24b14a87c4736162eaefad53a49551bb7fe9da51204fb61f0d90f7c341e690776449608d7b2fc449917d0794e4e72dbd329ecffaed62bbc87dfc481039519a8801f6886c91d39b0ac842caa6bad6785f8dbd25a2b1d2a57fb834fe882de4fad6a7d546cbe9ca85513331106a978c3ca7cabaae80713e08eaf24673d65f3a57b32e452aa7f7aa09b6320ebd964032e54b01479092a63bafe48dc7bf67da57107bce122a42bcae4c224afebab1b24d5e012fba6b86d9985f24679cb673dead07b153c69cd2ae877d240e90e198c8ad371d7aeabc065b9ba68cac2481f3eaf20d2a0e9083b1f36c8e486f7b6db3c3a512fb9a90a713723d3d20c6b726" + }, + { /* i=1905 cDividendBits=2225 cDivisorBits=1016 */ + "d8428484efcc9caa73f7447d72fc0e0061e61945f20a282747a60e26e8378c61f3faaabef46c842cff93f804a5798b49d4a3ee0722a64e0d5342308fbe65c24cbb2407fa97ec5f56d955586d61e1886a7d03aa305777b220840d1f22f8a3474669f8eb6d1a5a4c7b1abadd34efc96a28d40d0c46db1608183ce358b95b7345124fce5d47c3d4bfb1e80fafa6402d7fa27b0d19600f46d1e1016036c0e64fd8fd4a99e8525b1c53d0fdced80fab8a726dae4fe976e42b0150b2ffe607ef968baec2a36ac7e2db4c9eec1b723e5d5f076291d8cb6be4e381154c9d32216faae777e5833240a24de4736d900301983522ca6c67c834e1cf4b7a746dac71ee2060da49591bf1972d215de9913f19195a52ac8ebe23262cb7", + "b8ceb31e7af971029891a2e90c66ec0fb650918f64102fd48e1c5bdff0628af5bb2ea36eb919a31545e203fe9c302d7ca31ae6604f7acd0237b39bf521f210886e48882f08897dfa4beddff46af03157360e0a94988dd94c3c89f7961e2262c68d50e380d52845489c5b6824c3fe6e115f950f52da683bd65d65b19333de06", + "012b9195ef0ecaba42d1c7738034a3c928acc2ab154d129e129365c043f2289e6d2e3e014d98e5cc0a2376d109664c9c237be1262e8e5ee8ade1c3ae3b08741d564f0c28ba2ce241e05124008e85b41e17aa26dcbaeee27f2efbd0f7b4d4d2e7fbce16ee060663600b682fb3d13ad426072a36187c024756f784941d25d9b3770118f0f6328132be8ea04a195396367e97883a637540c966", + "9f9a67966fd69d3cfea1d7578fe944bdba6707a24430131a79ec513ad9219eb7b09b272789ad066d626917c63a11fbb046aa83b98dd9ca647f0aea60af245320c05b3f30647a27c9fd24b54f4eb71ed6c182fbc839386bd6047da19fba27997fc63c60a9c2598ac1bbbc5150cd032bdf0e2073171b69e2d565e3a783a90053" + }, + { /* i=1906 cDividendBits=1837 cDivisorBits=914 */ + "15c9e2e2c34fde29b3b6351b4d6fd898edcad0e02925b5b69a8517a6cab3c06f21c4df0820e5531044d8be64716a8c765881b4233d60ae4416673f6d862e4cedb645c2a4724acbc2c7eb877e4dbd925a6d4d674734b96acbe0b8e3448d65687050ebd7aa28ef2e684f2f07ea4c630ce89cd022207dc5d616ed7fa476789ef26bf0423dda4e69bdac84b2d063c2eacfa632868644a3f7529d25ecd39f8bed313783ecb74d011fe04ae94b36aed5f6cc9445cd767f0f7a97572bfe8b3352964e4e6e8438a47e3dbe494d4ab18637a71781bd8006194a3df618cc78487feeed122124ef989d5740", + "e0c25f99ed935b8062445bd88c34575db1c00d9dc7533f071b146dfff57e14a95412ad966722b57639b539ceaee4b009ce082c012a4b4cd99dd49e5da80624a13a24e6a8b87c24d69e4bdedf9f20fc1a95d2f008e6734b1d25e98a7cae580637986c01e733de52410fafe7b7cbcd7c1cb4fe", + "18d1313ebbee9d2aef8cfb161089c6791897876b55a13ee69d6c72f4ff15561eec88519771185bf31d59ac35d84e6be8d630804e6ef04db79af7e8cff50cdd46734d497d3d53e54dd9ed360b69b6fec7d99d16e63adcd911f8e3d8aa5d0f538ebba61a0882b5b233ff81508f3e08a9f3eaad0687", + "0b466dc8b07a4931a0e496706353e9cde160684d0a75ab12671c6a123a916c3d40858c53e9561381d8b35f355b2d71aa723c60e1bdc2f7533b2cc45ac4ee23d6be690370ab1176d7c98f2a4b9c1a50456478ac90514415f4ef5e3335f1d4509898c0431f8d08101288a4157342b9fd95f14e" + }, + { /* i=1907 cDividendBits=309 cDivisorBits=281 */ + "098fe05448bf7787f01f2a0f00c9988e53a9135e07a5fe4d4105f708f835e78fa48bedbfac9110", + "81b12273aaede706323520e9103d95c5d6ad5a4a83cc28cbcdd72e6fe1ec878b1dcaff", + "12dfe238", + "64cf31d9d833afc90ff32b0f0789773723d74bf05257af06a8cc8b118ede3d41d20b48" + }, + { /* i=1908 cDividendBits=1704 cDivisorBits=703 */ + "67616b05c4a0dc30d88efd76a6eb8e317d3b27637668b17625676a6c028a991535f70bde35f919bb56b79ce5e06c4e59e5da3169e5bb84bfbb8dd632b98721262d62a09b99b1a182c47a1b5182fbdb3dbc46e3653811c34281583ebbe4ba60131d875f10ebb58323ba14d0af626d82fbae3f84ef1eeac5d8a0509438d3f51997cd80b2793dfffbb79fd60f377300a171e1fdb5c40bfc0e7eb57b83d44a0d80409ee6cafd2a2cf1e3362b10c1b99f773fe123545bac0363c0897291f3c106bd3d8956fe2f2cce2a922b05d9eeb21223ab18d47eb531", + "3e1d988f45632205bd1249418e4c9c9f178fb6bf3195d8bbf8f8bf0825cad44473f6e61c88dd4fd3ed5738fbaaff194eb99da74db0665cae6fb89f50c043120d2ddd7fb73bf9fa70aa703c618d9339aab9e85e78a1dfa4f2", + "01aa112e1c77844cf9b2d1c026115c51f05ea01f5321710afc9f323f8aec4a4c3036369cdf0f15c3a7e27824bcbf53cbed48ff6d6f3a203f5b6b7fbb5a8d0e4b6cf1e3836daf0a4e43312e46ee84b792fb13bfba42deda78f3067c3cd5fa96e504b01e3d499547db09a95328089001716978db3fb12847545965955326df", + "28801d9f13ab76fa21a4e1a214636146236aa8e23d9778157c8a1622280fbaf91e9925355400aed87f4cc269c1e6d8f5e1af596c05d3ba0ac2be22360ef7baf013fb03ed078aad8c7e987317a7f2643ef0639bff4bbc1a63" + }, + { /* i=1909 cDividendBits=1426 cDivisorBits=645 */ + "0195b51be0dedf5857857cf99bfd723bb38eb12804bf31fd0487d61ab51b37fcb1f6346f2f8e0578811101246de91a0609461789c3f84dc63ba1eb30a3e5de2831c6a37a887762da6b50c468c9cb24aca950ef3e549b82d590ff768d6ce942794763eb2de4f0316cd6ada14472cf1ddbcf53931bd51e51ccb4dde324e7a0c0c079af03156c624bf9376b48c8bcdeefafc83847268f6d4dc0dcf0222e8e322ce4d9132325a113fed63ec2a50bcfd79eea405f51", + "06730cae3071e141b4920fa8bd7d52085f0b61cadc4f8f36ea98477ad43d92f63fffb43cb82bc950c35ac2b0997cf8860af25af3aca936f09c8a77ab3a3dbfcb2904d40368dcb90a928236a1b3eb567730", + "3ee7f709b9c385a9eb56c18046725fa2133b08fd8e105672edcaef553055883fb7ba69e6873044753668eb4e62953259549a7e8b300586f8bbbad54c50932b20c356252756ca56cd3b7106898c2d5976301d145cdb6b6e91f1a6ae4ec7156bfbe9be", + "03010aa9476e9a18c6bc15c35d70b56f128480851abc7a07df5b6a23a64ffea3968dce9bda2d5919fabca6264cea8d233550ec79cc2e0e5f102f16357b8efd73e5ff873b2c28ccfe1079f41a5ca18939b1" + }, + { /* i=1910 cDividendBits=673 cDivisorBits=138 */ + "016ab98197877f4dde6dec9aaf48ba9db27e8a202bf4bec51ec365dfd51a6646a40d8521ad19efa55eb5fc345ad267ae7a94840cba944fafafb14891e917972c9b18d862bc9044ab4ba29901617fffff4d87f5447c", + "03c37db9708c70851c1be703b9ba06e0ad58", + "60604772c28c63bebf46c8fb165ff9c3003f5e527606e3bf8856a27a468a015fb7d15af8cda43a9a47738aec434571e88161b62ecd77ce672f78449541ff6a38b5d8f5", + "d14574f1897d5b664e61a7d94191751f44" + }, + { /* i=1911 cDividendBits=1857 cDivisorBits=271 */ + "f835e8be46195ed295d5ea861d60a24f451c631b1a46799618b5e733ba14d9d7c7fc2ff855f87c65e7c71526a8d30bb22d91078353d002eff290274086c7228a40c82383fc760e6b491953cc35d94889592e9d9c8c5dbc1acbd14fc8ce842ac40c8f0c1259de66c3f12c725ddf2574a5c2aa81969256687a32c9c8e6ffdaf87c0a42281a9a459cf103471606b4df2c7797e6e83846f8d07fdc36dc40a50981f13c5e9dd4a6fb9153fdb94ff4d95df3325f6230f9fb72f0b9083de7c0084544f9083eada119beedc3aa52142d9f2b80b77dee8804ebc93c0fd7b35d4e7a763ceb8c03dad7f1e0c238", + "794373f1f482ef6546dce8fecfed8501a601769a4fc08d67f87fa211aa25e6289083", + "020bffaa53c5cd15abe49658c3327eb267de0b204a276848d1a11f4e507bdc6ca8f69f73954d8f17449384f92ca9ca39e8f3f8ae22259a0937c84e71a8f68bef8f29391e8c1db24e0a603530cd8246b1daa81b3be87bb1721c7a3cfca2787cdd949027715694a6c5187deb6d3995fe0a50a4dd0f5bdb04888ffc5c8ce4c48be686e612dc64e702d3c1c75ff5cb116770ceeb5454705f761345a7cd66dedcc396b3ea8c6c3edd606dc037db582bb07bb3c30e370b83334668edfa36d74be252107e5c7db04ad4de", + "75a8e9cb452ce20b6e33410cfa5a8bb9cbb9b8b77239af6f99c3dc62dc55ed28f49e" + }, + { /* i=1912 cDividendBits=3571 cDivisorBits=1838 */ + "031bdd4e68b8ae285918033e3649942d1e45d0d2f686fcd575291860e4b212d56e2e938018c194bfda4994e3c1521b08f448325d1dae6f9fb2e552e203296805fd338ab4ce883dcddac14e9331925e76bf70d8d1604d34dc1858fd3c9d8c81119a79d0c35a6d4d3e90a3bf1aeafb3bb15e293a6a06d7c0df8fd2e08d2d770ed44c25a2957538b29684307848197532faafe44761fb71fd8d8d78deddcd8c2f10de53dd5a90ec3eb031cadfecb682ff0e455a4442273f085fb1669722356c9906ca65709dfc394f625dd75cdb3056c0bf5e1066eecd620a2d78c820b9d58b51009455df30b53fb38bafb89658afda5b7031cd6915903dd03883e5a20dd284326ad98741ee60e538fdc8803e4282c7ad22b255c73f30e4a48d8ddb9ec689aa97b623df652da8fa6acff8b508350afdb7d234bca1d8455a315e84ab37c6408d9c4c4676dbbb07764a91dac7e22008b01e0d7de80302781153f2c462ef4eb6ced81300859eb95c38783cd5fef847c36977c59aa1b916d3e7a7d0944c7dac96bae35267bf89b0ccae5b1f0da6cb53212418cd146fbc51ddb3c6e4074d0c6c97a5695acea98b68f77f6daf37e8e9d8720c4b93fcf40b3cd7215e1de186223c9a5933", + "2b1c4198340d8e2f8c178bb0fa328f0635e7f268d88725fc86dc5a7ed8d30a82fc48eea3b92d81b59f56875c01796325625d8018d777636956757afb6f6275e402a8c3770ec2d0605f5e2935532e3e8ca74305f76ee5cc3967d85ce2ad4e3250bb998dd7c454a1ae7404cfa0828f271a32db325018619642dc2f95b438efdcf5af9d958f63c15ce778346cbaa1776edfe08be58391a9bfebfceba1297ad4a7ec2560bcdb7dea21cd958ab6a4f021310e17ae6346822602f4c35e9f5cb1d18823bce90b26912c9415610a39874b21a9693641f59624e8a5d34bd856ac418be12ee866ba4e1e87", + "127609ea6f77cc2bfcf91e7894bcceef77b4a0b5043c219e6924d5ddbd0992979bc29b67017910460c34eea61498ddd616bc1dc316f31256816231a3fd9cd0549b4a6872ba784c8a4d9b628087ea4736dcbae1d7a1e99af37f98c313ed55fa2664f012e21b7f2fb5dba78c01ddbd7d8c86cd75a07af949185558c70165198fa3021e417e156cc727f4e27c3e267792a44f442f0ceddc4deccbc54cdc2e844fdfc0e2c7eec6278f6422fdf52123e0ee77b9ea5d885e97f1c2bf6f7292d62f04c2a701ce8d5d12ccc9782fd5836e3d1a756e324b6856a0e83197", + "0963d4dd7c3d0d781645298a27786657681f04c99ce603f2ac86b8b4307646bb19888de985661e062865fe07d0c8986f0af06d1f26f26c1cf00878e1b14a7229d1237b05cba2460f359b691749b3b8b0cc9a896f91c25ff12617bcb41319b7ac3a72bd5fec4061498d640b5f67fdbac6bcae924fba7ce5bd58ad56b93de3b06d3e47ae091e98a65e544d12887cbaeae3d0d12dff6b39d123f2e097271c5cb7ebd040bcf63df02929817c6e484a34b7d19fdde9cdb42f8cefd62bc4180b646dafe0c8715838158847c67f7f8800bd30eb1809f27ac6c3447213aa704cd7f1dcff04a75a568092" + }, + { /* i=1913 cDividendBits=1664 cDivisorBits=130 */ + "d1dd26e431d24375e2690fa68967bcf6991dbf8378e549c1c47681375f80824369d141dbda01bdb201af97bf36b292ebf49295039afa330c0b482cf53e94750e0a44368025f993cec50b8326275d6785c58c4825b0bd9802c8b709b5ad2934634ae8a75d005be83e22570b86eb2c752d36fdc445b73b65d87edb5b35ebd8ff426b040fc9072dee83263c6b09779c4f8dc35a5c8f2f91944a5df7da09b3950e11136c12c7d430a0c0c1aa62ed61052182a88d2026e1156c317f8ce48b308bc0b6e228862ef67938d99c62d320e99e34b9", + "029645f499acf58aad1349b0f27a628ac2", + "511f512f7979007a0230cecd0620d8e453fdfc4a9cd16e7dd3a32b7201b6ef400b312e5069b3dcfa19e3194a3d0dc6f687eda7e65bee0f22900a53884a239a039318e2cffbf3ebc797649e5c244adba631eb1df2cb7b91b093d140cc10bad5bde8c517a113b8c9df39630fee88fa0e99f44c6dde394bea30de7df540516b456ed0a47e3dd1a76c7165fa2be3f8507a626c6851d31fe6bd732a9be51b5c6ee5806e3e5c73180ff1840ee0496c043d2bf67c0cfcdc227bba625ae5edc854c6d2db", + "0133571ffcd46799fa12828bfe67725cc3" + }, + { /* i=1914 cDividendBits=2654 cDivisorBits=850 */ + "298f77b60e56e400eda0f716819724b0379337c09ee783ae0926648dbb42d80b40f7e3d7164f8af2b7aacc0fa6050b654e0ad375170869809760f9396b9154d0cbd5bf4330dc66c4a25926ba70d6fa4740a420ea090939458316074628a81b8d9e6c9d3dbf737b304cc4a44e6f053ea0eff3557b6b03577fae33ff129f80a9c9b4acc1e2b09984336c555ca7ba560f1a19bcae421bfad0b39354b63720be523f5de971f85f43846cb9e1aa394547acc9977ab1abce72c83ff08b0200abe7466160c5101922219d72cb43ec0f11a35f8cf945f96a4165c8233f50a2534a2028831241d1ca273e6131695c36d1e0c9a9136aa6f54769513f68ea1375c157ac2b3ca6564ebfef9f7ed41af123f0c4b0d93f337d20a8a5a7958e45999d997e1ee3bf545b949c6fc49d92465af56a3a1240c1b443a6fe17179a1fff78c49cdc997f6aa238bc8783f525f39c655836", + "48be847c29f92ef49d5d47a8a228c847c9a143e940a84303cb964475446b99853171f6eb72699c41ea1464cb1e3fada1a6f81033e4b9449f3740725a96f76c19ec1172843869464c65cc37b46a24d6d9247af2ddee662a1fc8108350e1d9e22bbb8d350435c01aca789e", + "924234e9a228cb8d4bc611e26f1f3ac01aa6a4f3aa0ca7e495592e7370a38b2dfa5f84154d66bd0d1290fbbc405f8ae634130272c1e5b6f52b7672213b4848dbe0095b853e7fe40975c417162e35752f2c6d918a981dd7c186c417d6efdb8550bfefcc3e34fc147fe93f5e0e14428357203e43677045c3c8e97cf85d58974bd97b8b029a6ae0e959b834d218ce84ba4e1ddf44b3b26f61df230281059f7f9fb6915a259abc6502f0b105119a2dafc5075d19492e1472d1d09fd00f015f51375f2517d2d5f4f66903ab6819b5d3659f2e9a7086afcfd18424ad82de8608f7a329a4b3", + "3478a3e151a094165b9a68bd94dea19caf06ee83c95f73b027fc91ee09948c261b6905b5a475533f942fb2fdc00e2f25ab0332a9254328ba5eda400a73af8b30f3a971cfd0195f82220b4a68f81ee0756d7ebfa290b355a11e59fd62a4b9a80b78ee7eedf9cb403fc9bc" + }, + { /* i=1915 cDividendBits=921 cDivisorBits=94 */ + "c79a7e78d705a48bc4f54afa85783579dc2c4abd6324adfe9cacda45a473109cfe4b1e437f123fadecb9c61cc84aeab792233450fe95d6db3b5f8fff8f7259db63bc56fe4269a4a44dc02b7457e34485bfd14765e6c55e821e9404820123e9864112d2c8cda8f40c4fc16c03d7ae52e1f2baa4", + "22a91f0746dec7c04399c122", + "05c24072bf173f9d82e0b724defb0d88ac034658d63fd4fa165c30cd7c46a7ed7affff197acf8075f67fd788217a6837ba76348d5d0627ba93b6e8c29725e72ca3d67e6243687bf679251daab709ca72d1911c7fa8979857a1cbaeda0608886e7bee64d7d7e8ebd9", + "45d0513770fe32db83ced2" + }, + { /* i=1916 cDividendBits=24 cDivisorBits=12 */ + "0a1d93", + "0cba", + "cb", + "0615" + }, + { /* i=1917 cDividendBits=896 cDivisorBits=788 */ + "1bf442244dae86cc3aeb7d6aa014ffc286bf0023c8e64a4611762decf8b417f7326975d6a912f4e44782cfbef754d87636186a2aaf1cc81223807436b0d5d88f0f24064e84f991655d7b51970698a9f097a3687bea2552ea09afc15caa3b9238d273062bf7b07e9e316149625b5ba355", + "034d773d5a8f906ed869b68c0d97be29a1e70f14655b75169699e0af29d08dd3db6dff71d8d4dcbf8e755305f6d8114dbb90250298d73e0c82026603b77b0dd5e03ca02cd5ddb4240d8bf2d40a34e7b2afad7a66540e9267b26f5ae7183efd97c1f757", + "0876daff737e9461f8dc574433b2", + "01e5b0bc0a5fdfbc06a87ba993e604c806995e3583fbea78e5c2135dcb7d42713c8153be410c14045764ac051508606b1e85fac3a76748ea20031bd15f7fd22bd0fc5660b5efb2a7827cfdd96e451f6a2093363d8236f4ffd613456dc5e67aee1b53d7" + }, + { /* i=1918 cDividendBits=1903 cDivisorBits=933 */ + "1a2a9bbfe7eae6328bd4a1479200e2438de40c4f899e5958c5ccab7d9e879a88f51ec81861dc144113b39d420ac407e60adce761ab1fe9b0c06ac120d69c392f784023ebf8b078c25cbe2292023e135191dfedbfede2d22526381fe3e05c4dd1085fff2ee12104ecf7cdd52f1b63fd445018c2e783175a0e8496d54c436906708656d72eca25b0f91eeede35e2bede4378018fa468219b64f3d1806da8aabc27595522490b066ace7fac3fecff566915dd0e28eee96043058da43de9ef0da2ec4986981cb611a6cd647fb0a44615d14f8bad81f455432722f7a4b7ed4724282d76ada83145a48315f0efa40d3689", + "10097e263ff5468c5b4edce6419ac4ea085fe6d5003fceb3898ca19014aa7208d2693ecedce9e0ec7ca382b9085636a25e74378df582a4fd18e3cbbf83f7cbda09188f6629b359fcf8ab0b0d247527a2d07dfcde2a7d4a4072f53a9d6b6b99a655eb494b2debaf3e572e9a0ee3eda5a5f424f054ea", + "01a1b1eaaada5514144eb07c7f304b4b6b5a0bfc28d4a6540fc2566c3597e21cae42327928baa545fe6f7c7069211fc6a32f2fa5241ee4a7caf76c632084824f47d61d98786798e6eedae9fe934d1c3c491fb6cc9db985836d808ba2890a8861d2e2862728746b39d73a074234ce9ef2bdf2ab0ad1197b531611", + "086de8c32c39a283b532fee6b761f9c377f3871ba01d3f21bc081c923a6bca55d2dcdb0c41de008beb58c21871312b2f567bf378c386e0098d2f26ad6e7e31239f0d2c56f631dbaf83837b303c7406f9b413fddfc13ccdb97ba419bdc8b9571381cc57825ada030039eea58654f2fc28fa92ed76ff" + }, + { /* i=1919 cDividendBits=1012 cDivisorBits=194 */ + "0c42364041737bde635fc5faa27a9d334a7cb2896ffed50676e18c660b81c971134d1ec3b746699af4bf60dafdf060a589caac59c5dcba8feaaff30eb362d1d0ba68aaabf6733f4336a36483b303da1aa42fc683b5e9bc235552dbc5b87594c1bc801710df0329a6e52130e708b2885e36b535977465710cfd848ce860a28d", + "c1006dcfb0c9449f5849a4c085584c327bfecd1f666d2283", + "104290f25dc10b8a255aa208fe02a7f239a7df1971332d4b84b76414661001786e4b0dc19ad1992aec044acfab48ef90f40240973b74b031a46c9e411ca841474927a8e2c16c8901361b307af22e78c649dd4cbbf366095a237eb4f4b41d2f03250588007f4af2", + "63cc76b6c3482a2e6df7cb4a0ec06a8f5aaad4866a3f24b7" + }, + { /* i=1920 cDividendBits=3646 cDivisorBits=1752 */ + "2eed7518b7ea860090843be6165f3d8bbc5ce3e81c9cbe7eb9554334b98f1d34a0c8fceddf5c013fda6f166e5e6b25bdad820b9b8f49df2fb131bae9f62c53717d0608c28cc5a9925575ac569f5c30758bf0da7fb0e0a97e49e84fe4be3f2d52b1843bd3b533a8276d25aa9020807669b7e9d09285dc0dcdfbd3d6b3fe4c1229e867fae364f38c638ca0afcc220b8766524b5e2f83989112547181a945c4f4e3fc50f4b676e58eabb5deb70ac511e131015aa2c5e4763124f6ea26121af35f7e90e944f303ebc5ee88fc8931a0da96a700301505911cba657722dfc2c34db57373063a3b82913a00591f3b4ee8a3a8b0118a09be436e0249676a6e9ab64d0a441d04440081525d4fd25e82a5c4796bc4d332a7a30b3f9190434357fb12b6aa290514fb1e48c85f24bcc03387833bf6a6afac38f9417978f283085a83ac99e8f093fa0003ebde013737683b2d0f642507846099c2a9bb18981ed2bf07070d05a192706fb6c5d5fca00173f529beaf5f91465325682fac6341d866506bd53b66b2a8b9f5cc9baaf1e63fb38555c4c64d9c9a8739115d4500c1ce54bd49bee204bb7d779d6693173e51ee9e9dbd8be656307fc28bf01fd209f5ea598c5fe742ba742909fb271933dbc4", + "d66ed22a0df988f09f9552967710e95cb9ec749f61ba9e5443ee9b9b4c9a5f7a4492a1ee40636030af967a2145020a5213d3baa1e5c779675970f4b99364a16168770e34f26b6ba01822c6239052e47b2ce32bb89ca08941cc1c8396634fd5cf73e9611a64f8be656aabe4889d0dbeefd888802b0e43f659d4419d915c4b2525c76c28a382fbfc7876bdc26c526c0b3d265713e8b0467d7d9eeaddbb292c9b3b4b213d6daeaf494e9046439e341fc8fbaa1b1f2a7bfeec897262c73384bfe4c74f03ffc460412197d91ffd7b88faa63d75a94003437dc50529b7d6", + "380639eeabf950f5f68b8f774a37b47354e80985adec6b8ae77fb5b19a7b27a24b94875ae3cc431b296f364393855443867d55b47589dd05b0151da96350ffa40b6b99073cc77e8e9e46de9ce70dc657e9a4322d4723969637bd0a1284bd3b5cfcb918fda1e9e91f5077cd02d0d40f635d49d926a90ef47d31884e6d203de4bd46e5371fea2b9690bd857228e661e12eddc52c3b822d08efe4d920d037da807b5aced53f2cfd17bd7b31ecfd89bc80dfcf51ea1c9e66b50a9820d16515765e9ab4f12b949c1217a9080a5dfda2b1d629ccfe3f4d01ee9375253f210a44799f7c356254d2961dedeb88b3c91ba4", + "6a94bf48b667bd75abcb1e35ec47514ff0583eff819e2582f650c462645a530eb12ffa9422f64ac7f1925308c75d0a50250f5bbfec156d0f8b987a8ca6ae34d7818eed9674824868746e59bbab8b64c79f8da79666d6d3e2b7ed278027e317743cb84a274d598f127b469f88153f78c3025a94e77aecf9c0f752d8fe76dc73f63fa6f892a2d2e1620e7a87526b52f8b5adb00ca6180cb999e5aa75e19d6c984ff37563fa3d186b656418d62c16316fcbdae21fffc1e4dfedcdc56ebe4331c4a44d4d4c5945d7c8cda4e07d1f38e1e48abc5aecf8334c686b1084ac" + }, + { /* i=1921 cDividendBits=2073 cDivisorBits=1940 */ + "015fc25a6ad441db4d5d3b26a5fa2564fba8ae4fceb96fd8bb49dfce8bbf16a99f485f4f5a74ce4b9ce8b7418031a7d37aa0b60362e33bdab37071ff7526e7539590ebb6f3bb70e507bb809cfdfdef16df6fd1a78c04cf497ee50a38797667cef4535524998f13d2e97db1d8c19ca2c3bdf2f2b4de534e20e2c5143bd09d0226d6372ce4db298dc47881b50514b886a9e30230ce094a393c414f748ae2431c77d465cece231669b46ee26ccdabbcd32fb67f9e696c2ca93124dc56d481d56c0511b9cd4fb066971c13ba2f2fd8556ef542d7500795dc2eda0626f42bbd3fabd7a72a8ea0960873f8cbdfff56e21a35d5bfcebbca946079395fac882c20ef5178570154c6", + "02bb35413c48f61356d29dead626dc23612fa24e3df96548c627aa98d88f2fb22a3be3abf5228e808e5dda4e79723dc8ba063dabe907401087bfc4ea7a5a61b07c0b22833e33a27f50c0ed7a4d4dda6890bc9fef84580e24a7c4fcd550b45b735195a222ec4364f409f3fc565ad1e9700fbf9112576e743bb729d89841167c5cd1e7b190d741682ee72109812fe521504341ba81eced2a8a8180a87e885000c2f2b76c1a0fc523d7eed061f28b493a7018ac7b8939fab147764a8bdc4b6257e445cedf5d02d988c648609ff2336803f607fda11d5eddef920870ed75e544f957b61c3381681ba4e5b1b5b0f5d24fa8d9839b9c", + "80ca00a6aa7f42803d290255e77267d01c", + "0143759332525a2b04c7f19c3d7c26146a5d4d4d167121519df9a0ef146cd1419cb2c703358821f1b09669284cb382627f65570b9f8d6f173b06a745c9781f334325dbd0b2bc695a97c047f4432ed124c87ef66881ad1a0df6e243927b41791b3d270500673034169f68806850928a25551dde4cd7ff766d10f98b9e20aec04b1b11205fdb8bf540d50e7fd5ca8cf654b558f69a919fcc92cfea87cb5859b47ed500ca306c71d7daf6fe73ea777f747d0740c846001ccd19885dffcf3d9eb8638bf6cbc554f30c5afa3caf284be165dc577e02f1c47897a04076bdb5bedc801feae67f58c858bd812f854af3c515428a698fb6" + }, + { /* i=1922 cDividendBits=833 cDivisorBits=748 */ + "22ec6ea543fc8057a4a5ed276bd8100ae938dbd181e86118fd6bdbc663ba01095b40751a7f63c46237030dc715018c1d442ae3de962109fc614f71af7887f5146272a7837ad2581492c5659fa5c2c093471530af0f0d4f5140c5eb89819051f5df306d57ee7e1722", + "03017af672efdabd63e6623756cbd2317b37f51a3db4dc322569ba7f681ddc69506bc32978e8ce6d471657af1c3d495c7b5cb9e39db42de6ca3d233f2021d274715cc77ab487e093a2d5b7f29d41d4b6ae1c202b15d6b6253c54d0a24edc", + "0b9e692f811cd99be6b5b6", + "02a654d29cebbe0bb9a5d793787d2eb0bb49a3b6d0ebe6e19ae2b514c8a1c10d7cdf513dc4176c2059ccf904b208e3f745a18554e8939eb21156d95928dcf201ef6edd04456b45eec72bb1192a69b95a9792f9675255c378f17acbb07aba" + }, + { /* i=1923 cDividendBits=3703 cDivisorBits=837 */ + "3b54c1daf3368c21d3391401b05c08c2a8c72e82a7658b2b642aca73bc62228247ad20f3cd36c16d0402d799bb8a6ffadadd6bc283380d073b82af5d46a5053dcc754dfef938f6df39c4eafb4f12912e318b56865426435256e5dbd2a504dd675151232770ae00a1f22a5b1672bdac9fe66669da8953ced45e5da890f9394727f9029d148ffc7cfd8acb5ca06d7bad18e4758c13c317979a43eafdeff80d288d0f0ec22aca72e151578e947854fc6d716f4b6c1e4629f14b19603806717b5edcd0d8df8ffe0a1c7ba28b18b4f09d79ff246a219883af1556a3a997aa5d765e8d16043fc6089bde5897f59557ee25913e20f61b5e737fbccdbfefd11204f8035f88948a8eaf0e4c11ed346f7f789a4e524e068372436e3df3a5709b61265b4881b7f9157c9ffb97d64505ccb6bf978c51d326e42ce1e12f49a455f15a1252256d1c97bc41e2ffdc840d07ab011f982bd33f9711c9b59730c5ebf69b8e508552e3aaecc4af8cac23946c1a8e3cbc751fb9a2d9d5e0eaa0d66f9fd70e500b4e302ebddec767526763b108525f641b44be35a4967b9236ec8e5ec80fa6d430bca0644166ed49c5176912f94a75435ad5bc287f0e38e57716f4a7f1b42c3fcb01ad3a1bc4c9f169ca5b4a22ed7666624884", + "03f0df56586c999bb033e73dfaba4938e9003b6ae101d5e7d75123cb76fedbbdb19f8eb61f33c99715f57135c58baabb5d87ab63cb004ac6dcc3a17827906eeee78f30415dd3d74d389b1bfbf1dff8cb7497b78b74bf2a7ef16fb101e2858e9a2b1d0937ce51d8b45d", + "0f0e205fb237e1a22f8a6478b6fe9981d6725b472db0df6d444ce8317bd4ff998d2f4a5c4a772e20536c8089885a4ea71034b35c0284ac0ef8f9dc9f10bd810f3691aa149f1019ceec839249070034f42d5adec9342f1cb84354dfc98c50e7cc73bedd92bd2d16caea04486ff964cb56c1d0fe21f79f1868fa1568cba0c3ba26e1e2c439d18fdc66445e2664ea1a00e9adf824b7fe11e126a8c02ce020d61505d8dee2417f7c65eb8dcead08102b56643c761a9543462cd172f895d64120fb3b0af1fe47fd66f9fd350c8b573b42517022a96c0571b87302e277e8d0764a118e2f57ffba305e546d7302b36b1da192cb88f47c350c4dee701f67fc17b1cfa8198bfb5599703d3813540e143bbc104bbb0264c5a6e1927d4610382dbaf03d44b054e76740d5526bdec5dfc3ff9483f463989e9248040e0d124f7eb3294140fd59203b40af856ae290260abb46a93d2915603695a0c769ac2d53345d08468dcb10f4b56fc14158e8", + "02ccc071230295bc3c9577fbfebd25b91d968eeda1ace595425cefd574fa603e70cd68dd17ae9ad6c7ebf55a7909abc2201c13cc96b10ba0a9800bd06a67b7304371e0759177dd5a5b47b61722e8eef7c6b13e8ad3ad489e722691bd4c90850fffaa625106d361dc3c" + }, + { /* i=1924 cDividendBits=101 cDivisorBits=20 */ + "1d24eaedb9c509d227817eaf0b", + "029019", + "0b5f24ee7c48efe1d85ef8", + "01e8d3" + }, + { /* i=1925 cDividendBits=2757 cDivisorBits=697 */ + "1fa91450075859052b426b5295cc66794d260b55573f019e6a32fe25d6f5c7254924d70f301a9ffa4e5804540210e2691a975b7b0428add18da4810a8d214c688d931630db7be4690c53816bba0338d933d0dbae439a9546d943736fd7bbd13dc5084e6d4a0d777186ebd54f303ddd50479987de4cce16bcd2334a2cf69e9e229eb073d2af70c02e51b02e46066fc28898898441bb0fc6a21f53550111006206cfee52197692d9e5fe53c4ffebfcc8a88eecce33558fba8db9a0459d283d9f484f56ac31b73a7f8fdb6c9396842e424fe3e12bc2a90244177317640fe157f9c09abbb3f12ea74963e2fcc567b4c4d1430ea1815e29f594492c44179970ced889c91ecf3a1eb5018f4c7782928bfd78b963ac2741fa016ff1bcfa0d94bd84a5c0679c1fec5a0aa7f0ce888723d78c1e0bfa9a348f6a93a67ba9cae5ddcb2c0a96b66a3950cacb85c8d274720f9a57a42d74d0cd84759b7b5169", + "0147c3c98f03ba97dae9de6594acda18f6a0d4fd477a73c224256e5c7008b11ffa574c5e8021c962bde2d635c4dd4cb9a26340a173d7b2bb5a12e113be60a9c8b7660528bf214f1b76a4e1140350f44fccd94c6247129f98", + "18ba74813b6f6b1731c8b15c77b3aec52f67911925a93394768bd2fe1094caf30e9be133e5aa33bd53854cf997ab0aac82e37c088523871ff12627d181a8f261822af6e306232de35b8309f742ee4be8bf135d8247c01e1fd94e083d3011947248e8a201ba51b99b1614ab8164e5dd2c26b68520f3e92618e65e0172458ad83bb1031ceb4dfd161ce916def9c7936d67802527857317da540e06b06c078c764b56b897429c97b53b1768c8986bec10a2aaf8499879d43c589277835534170698a723ce5025cc77542f74138608b8b378d4fd55d65d5051b3d6c80e5fce00ccf3eda6af32722ab97aef3df7f967fe3458d389fa639d84a3b76384f7df5c7b03d369b3", + "940260220062a0a5ef2f31bc2ca42a5f81f6a9577627803d12cf600a4578c89a8ddf6216545a10e33e4f79b4af332253ef33f21be61cfc11bd8ffe796221c0352a1daa57438260901a1040eda4434cd3fdb256f3b86221" + }, + { /* i=1926 cDividendBits=2020 cDivisorBits=1639 */ + "052e440a76d838ff9151589d06caa469a3ec840b6a7295e117f2a5a8b3520b53905cb03e944df147852835a60e34ce414f8e24a9d3dc0bed376e64899c97a9ee056022c05efc84bd0c5c6fbba8849d2dba5a7994eb6bca42abb7a4d2156c68b1efa0acaebe1dbc62b272e48642d3995aca63f4c9db9d6195372a9f5d849970c74189ee6ca84f8afca10c37252f09b634e5481167d094fea8bb1fae8c0be77254c4e40e4e11a769f0fa6bef7790f3f5920b7a4212c5bb37a1423585c21a39e860b3b8879c59a9f1de66394be854ab3b2924675eb914e60a6ba32064ffd5cb7ebb6b6df581524c89254c1d8c8e191a4737fd9be1a47d8480c755313e6bad", + "69f2291be730624d7abfaca5ff40c7eb393f14ffcd7d40a3f9d585bccd13f7e5adb1c6dfcb354254d18fc0908efd881b0f8cd7cbb4ebc03cb6bb4d2bf2c0a2d9a6575140dbb1fc2b6f131e6b97826fd483a928c9cce8c37b67803acf21682554badf63dfdff381cc13b69bf50a5cace53dd001137f470f0ba76eb0465b1dfc1c1aeb6466fb5070f5b8219baf6e2002e020f6be0c5160a1010e1ceaa8a4d2c607022d34f4984a64ed2fc86f9553ae90ba3ebaebb73f0070d61ce7ba9621e1f7e3a5d6e2cdac0fd19071c4887e63", + "0c84b0fedc19c82a179f04a8f3d49b95148eb425817dede6582dd58a05eb0edd325304d6d4e07f5a9aa4e0774f8f4ea8", + "589b4e28aeff7a445a5b04091dcc75f98195542e1c4f0523a63d6d1fd86fc57fb3b0a474f7ba2a8ab69d50e2dcebb6765afc27f9f37f00de69fd341bdd07e28671a8b8ef2ff7b7cf5465c70bfbb24b069ebbfd97ad38212c834712185e16e849fbdb9654470f12915e8f80d367f0fcdc469a305525be39ff5f9e05f0e870a62569c526d2f11ce143b04221c49ef952d8f5fb22de0003eb90cc17207ea1184d1c5cf6e231c23121db93df5530e5fdf152953b0a3fbb76cd29ef30037b4179597e356d287cfe2e4f0b867adc50b5" + }, + { /* i=1927 cDividendBits=575 cDivisorBits=497 */ + "35453b5a8f14f843981751fe841179fd8cfe8df50cca1be2b7744371676924bc47d6c32201e57763669e3a1084f21a674e28c6fb894aa290330630160f32110197745492652ae43c", + "016e99073ecdd127ee6ac1982cf20144268f4646259067f6c99b0abb73aa0b377cc35ca6749b376d19acbdec713466658d857c894f9145a13632c8d7e4e840", + "25330e8a09086454e722", + "010a4411f7264873520b746a18ca6a103a77c42c3254b23ba70b6e0d436aacb550a1cd5448af7ae09457c70519c0056831f2bcc2ffcef4aa609740f6324bbc" + }, + { /* i=1928 cDividendBits=1393 cDivisorBits=861 */ + "b7617563621a2e72db8d7f719e6214f59016115d4dc024d9030af29a2c2a3ae5e30534f6383b227ac471d865c0c102c71952945700c596f486df5e62025b3e1b36654ab43fe94442271f37ef383c2273d2c113d45c2e9aef7d2c1b29467e9742f319bd1df2b853ba633118164448d8bc8c0b53643b9f294f0ff8a1f5b7c60322ee5c71a0cd02bae6bc45a44b3cc084417d49240f5b5751a2aba28290e361f9d49856f1c923228dd940eaed72bc0d", + "1e1873a4ff676581f56b4f6dd5b68b4472b095cddd7e86904fa02fe3a5474a65cdb5140c1ba854fe53f0d44e0b9b0c71b67b199cfba0a268f516968dec7df9a8a4d8a0b05c0ffadea0cc211bb816c0b9022dfcf2490e5702b47c3bebceca6ac63b3f183dbc423e356e215b6d", + "0617e1da1a74fcaff5e78c8a0bdf73b9f7e535c28ccbaf55a1125c4892036683d5782a9f82553a81ade9b90990cfe353fbd5b87848c60317de498ee9de2a4b5559aa84", + "15990aac65ab91b4660331491ce3bbe20a0c930697a613c8cba27fde793424323e6dd704c626c92d318906bd972cffd2a7f603a9d164821c721110a867994cf9212c5cd45a06e2d7162e758548668c09ea37f1e56d5536acb79c5dba1d26f54d4be78c47e5f1aa5903a435d9" + }, + { /* i=1929 cDividendBits=2532 cDivisorBits=1836 */ + "0d17761e7360cdaf6a765bdcda36539d6d6f99dc3ca0ec061a77ab6826e8b763935db42869a1a50c61544fecc924233f2226d63475470f22b98c2d18099e4c4389b0796a94ce1799880c517ec3796c8f61518210c651ddf76f01e8908c90ef3aa21b6fc91267d96960a2bbb3c167f086bf2dedc0d0e065c5f7ac5f8d790860fcc0420caf97146b8795f5501e3adefae35febc6f50897f387ca60c293bebbaaede369388c6c67b67b12472c1fcb143541245de28f3ce9bcf0e2866c4a349d3a713871ab8c2ba9874b29765299fa09915799717b7d9a7de2cc4b5122e9f5268f6a49440d164bbf4be42997b09262d69be8ae90bddde43379a895003ae14e35cb9ae70c57414236811277dba32e0842fdff686aeb8527685bc098c684303eb17b2b8fc709493b1d76bda0271dd82f03a042ef6062727eb3f4793841bf09dc", + "0200a8e2f10279bf7c75c0fc4dec258fb421c97cb83dceb3e3a71a7ec0e42b220c0110c7c45ef295bc3fcd2d57201c69fcb4b389c626797e0f86f5a2ccb32bdddf78a21040a271b1ae9de2746785a75cf95b980f212e005491451a4ffa6190fb04a8c2bd9ec6b27acb7963f3d159de4e4a1252d6e82cff0470859cfdc9e598f61e1a300736c5a5a13f8464014bf49c11b8b77ed170cb8116da5d8b126da7b1aa4d68ca7d2f056139598a9a36f9f46d73b491b9c9779ab4f627a45063dba2f3e58d887a7f5e6fe4534bc8fa37c8fd3e66f8faf097115329a91ff1ebfd89b362ea6eefb81f4354", + "068993052e4e204c2723d486a38aa49e41b95e7ec25f8c1330051fdb09acd2aff709d497465e048b7cfdbc2334a1a3d3650d4b6aad9e0655f50bfeb5af7013b9a27244d53ce6970f2ec34dd9dc0f33f8798e7ba8b65d7d1c", + "4fb105736c05a233da2a7e5abe89f1c1ce884054f28d01d7dc55eca08569405a84faaa639353fbaefcf3f6b49ab891319c86afb99ecfba175ddf06867826d5cf71260ed9f969d40ac18b8116302edd5d5b1076f1389ddc98ad58ac6aa3b65b96f3966543b1c6d846effab3d452ca4e5a6066c3c00fb85bd8c8c29dfc4ff03e2bbb27845f00da746688a59c3fddb5122b7f6b06ab87190000b5f1a384516cf76aed1a2b71a34039af9ef33891fe16e4ab80f1f479d053523b3b290d6af099e3aedb9b150f30d114ed5c46a4532bf535d2b64be323c188d936b817295938c9b3a1bfacefa8ac" + }, + { /* i=1930 cDividendBits=2158 cDivisorBits=770 */ + "20ce5fd2132f32afc48b550fb9e7d8990bb4554b2098695a12f8a1023d314fe9a3f531df35d5a269f3299b18eaa3a3881d2ae557c68122cda694ee93808a83f7f4ae78bb5c46c9c1719245818309e9a018432fd0e701c943b2fefe5939852f47a88242e357b61973dea394e69f340674dc995c208ae030ab535d9cb67d6ac39f46893f355c56a3f55c4f81ac501d6145acb7d7b7d68dd7ccbede635ab080acbdd6d50f8dba88e1a7692aa1894aceb38f7a67ed14041f84e754dd3c33ddad95fd7322e36d41d2eb36747ac764e6ea94bb911e6363abb7047da496bf2f4be5c2dedb29da7b71c3e7dfc50d48a6454016739d30bff5efe1cf0866c805b8438bb7f0685ff77dc28adb35d4cfae46ca0f", + "6b119fbcb2d2ea6207d8b09b8e4388543a0fb21c550e72933c9f99b7005db63b5e0cf67ce356b2f9c04917ac14e15db3b4c5ca2d48e796d5f1819bac6220dc3507a9820728ca36967565864421ed38422d66ba6a633d4744bb34d17c505b922e", + "4e7063153b97f907d24d3373b567e03ac6e06338b02e34ca4698797849d86dddd46ee5b2dce06ff35cb6488d640ac5e6443932a6c92d24ae12801672a8560c9bd8b35593a77318e6edd9880a9b7c1b3b934b5d128cbd11eb97a14b5a13d990449909ab937ef2bfa125fc96700255772fce916f52a7b47e5df6237375fd0aec53fb9c2468ec9a603601dbe6e11addd76fab5aac9f30c20a6fec8d4af418a8e80f0870008f5c574fa07d8c459c070b", + "44d0e2f3852ae623d0623b4f1740f973ba8c0b0f38f3e5cb499480aa6e3b93d6b79e228b1f112138c252584bd754fa741774b428401b38b62a390f5b2fc73e5a078adff8666f43504d8eb538a3dee39ed9cf837bbd8d8c9ffd9860ea3f504015" + }, + { /* i=1931 cDividendBits=3122 cDivisorBits=1433 */ + "03b691c13f32685c833124decf597021f36edf3508538974a1ed2742607ddfb9ecf8c9337d186891aa84b6fd8088ff3331cffd44ef440e6a62eefe31eb9ddfc90862969edfa60ff10ecb429928f3f8c683b8d86e2c3d579d55a087541b6382b35cd9da73f7bcfc02e02cc1fb39acf0b7d9d7528bec2bc79ffb938ea9a55ff89b31bbc3a4e6e89ca3206af03610f30e15d006971d52efd09d32ebc0f5dc45b0fe0afdf89f974e40b90d8ad9a97ec683dd3c73cb92899934d79d9b84dd8e5f4a9fefb2c0165744cc47fc3f480ae6803cf6bd0c141a7da253b7b56248bde258aecbd2e480fc18567a6452e93bb4ed49da3cb67d8f6548a5b757d0481a76b4abdfd8c6c14ac17dde4816eb56f1daf9cd881ae94b7617101c41a66aef937f1908ee7fdbe6c83dc27b385a0c49176ec7a628e1c5d93fe207f36c655539eb9278c8a50e2e0399883f9cd05f3c3e6f82860da2dbedb8a54fa49dd0d1a0a3030b94f1a34b89d407e60cec25108d6af5ee8ed3e72be3898283d11400625b22733b1571d50a9f8edb28de8f25", + "017cb0a8d8bfbc6eb488cd1d8e594b7d9ab88ede3754280a0ea03c1e051a51e23ca4253a5095af03d784b54625789765df8af8949be00c7bd0f429e5dd07a1a5d7c899ccc843772bc918dedfcca1610f0c8ccab38a2202f064d5bbee881f21e31f1a86d4d7dc7a64288a1f60ea58ef9846800b3173d7f5922292a3ceecc30210557cc05885e12dcc3508f26ffd0e27c26fe0c20582831ea83d6c7e1a3fddb5e9399b1a4d2ed6a73f00bd5696e3edebf261c7d38d", + "027f3905af98fb5a02902e08ba0cc7fe91c084635c593c0f188329af2064c1133f7ff2019a21018792301f980d0a0c3c46162ed44eb241ca0f2cb826f8ccec845f1905615ecfe7fe28839cd4a7ea1a8ca0e06732fc9f07ac9074fde6e2464a8d526feddcdd79bf2436371b1db48f8c3645401ec8719df9bce38c8d739e655f8176e324c61af0c0d9d418f818ad599e4f1400eb4e9e464e0b3d1bf3173d3e5043ce90a35339774de50bb13e94db641f1881bca11cedf7c49c38f0e6e95133c928cf06fbdbefb246822739c5954637200f7e81a0bc", + "c541e4a742bc9888f981166b5ad1514e76666880a9aab4fd0077b25b5e0591540cebddee071abd7dc1e831ea2051f0036adf9bd4a5f9d3942732cf79f15b5f5a6197839f42c3780307a478b5ec543da41d8548e5b2990c351c72217159dbbe2bfdf35918c1b2b54f071ede198f3593949913225ee3f77a3a32f13485df7315110773e2b1734f6a77f00c201063f7253c874cc6f06bbdb90742cb81826412aa35544c65bc265e161ef630470cb926aa75da1399" + }, + { /* i=1932 cDividendBits=1670 cDivisorBits=1313 */ + "94b37bd83e452436928bd33033950dd1d47f30a7704a0ae324147f3681ae5133249ccc022f83b478f9e7bbf78b42db8022d253152a8fc1b00752fe7f7522b22a1ae38d130ecad8e2300dd823673bc64863917141f581d06ae18f7e99c2b817cd876492644cde0d031c6451befc866a40f4889d31e3a8bb3824300ebb9c8a1910949172996a07ae71f3c608c2c612dcc9b3bd65f76b8139f8f3ab8b99e22717516dee0541a7c135b50c6bed41830479407b5440c8d0adf2c942ca97588c7a73caa8a7244ca510ee69782046605e4c9c9e", + "01e4b08e0763af48a27156029a04287fe8174f2c6c851d7b3d4dffaf5bd8393523d9bbddeed9e07d2b0897709000b3a339ab682c88556d445e2601171ca3cbbae71fea9e6819c5e7bba685f355fa81d2e9ae17c095c18f351dfd9d552bc74553b1f1903b27921d6505a7d9a5264ad48ca7c9a29a177654b4e5c9cb7cdc93fe3cfcc6815ae4013af47431453a099f5b756f030fb2704c6555c206b3f9547cf5bde95099d7de", + "4e8a37aadcdbea12ed43c1e540993566bf3c6c968050b197f225a6907fdbadda91293da5da6d3911cfd03a44", + "707d17867054c0bfbf3d0324e3a271e1b159925a59523a83fe1a0f8e5b80ff1e67d0757188a9946267209aa46f2be6719163b1055fc22f47db10ad790a9d572741f423868320ad3f6d278dc8df126c61f5d23ae81fb69ddf4031ed37a30707d2b3ec7f224370c7ec5c1ad0a4996b1479fcf9eb3db3661d2b87add24006ba041c47123c4ee0585cb638f830582946a2352f3883c526edb314b65a6894134751da3426f9a6" + }, + { /* i=1933 cDividendBits=1869 cDivisorBits=485 */ + "1cc058a6cd3178f82f044efb6057952044c1a7bcb36f155d53174aef0247acad0e2d2ae61971d94fb90d56ec1993c0deb15cb7056904348bc6207e3f620e818c7eec74dbbb0713467c5853f41a97fc0350e0db1d5cbe3f34988310e0f42c7ee97bd0ea3074260ddac6993ed0a55f132250aa8aaa5ae5c53205e492de7af321c691433336ce398827d889d850bb70760865050451ef1620ada058191c1be58586cbb548be4de7834f3a223e9e01acccea165988887543b3f6620c929f4faf2e611a5ab87c32d5a644a578e771c0ee0be961913106ffbbc5f2bd01389abb0285a09daae58ffba4a269872b", + "10d874b62e264ebd8d2263ea3644374ce94c6f8f256e328d9cf46afb4091c6e869986532e12f1535438d6ad9b279236578625a5b436faee60f36443e2f", + "01b4ee834fdf726fd17469a8354658164e3de636447174131a390c75d86c5409368623f8d04a40ea1b87d9ed8b8e09e798321612be1d1edc83880013b74b8fb2fc3f325098e3c804ba5db7a2081510a44f071de86460393c54226739c4527c948d9393da84cc618b76ec033c73464f9be64441de01d5ab5ffbd324588f6dff297a63e0374267c8bfac1d347dc599c35fe814d2f7e9c8427f9931485cc09c0007ae8f11da099e6c0dbdcb19e135c9", + "1012c2971e3ba4d50b87d593ef3b6f77c97d5c751415c21b81a41ed6384be924c7479823b676583894474a96f6a9904f240b148593e987d524a7a5f944" + }, + { /* i=1934 cDividendBits=1676 cDivisorBits=1154 */ + "0ad7c432dafd83bb4e794266caa0d5b0fa3d761347529fe4545e9a7a6a8e8a660bbc84fbe54c23d795eba654f0f386574558e845d1e2fb9315e2d091faa06b926fd549acb782b97712c1d22a26694439ec71e45319de18e866c16dddfe574f9a00b86fb7555b060c4087da81d5579ec688772cdb9ac7e26e9c212948e248bc68a9b47034bb203bde9cfd223600d0a8407dc0c035e3c14debe0dacec45eaf5cc0bbd50c3de58eda2baa032e740b75d7463f0c4e6a5173d4793462b21b5be3f20d73f3493a84c8bcf4da8daa6ae38936805c5c", + "01175a4545e63bf9635696bd1daff3b3e8553dfd8fbb041612fb66ebca4b317682471d2826004507a697e9d96be61b3ccb494a33234e4c182d408523391136d928dc15414f2ea026f2c08c4f310afaf070010b59fd28c066b00c678b9aac9d47c0a7b3efbb97bc23526cb1bc613cdaf88fc0a0bc0cbeee7933aadcbdaa963e88694030c2877bd6e2cf40983fdd335e0422", + "09efb98f689c51ec4f73f3a895d6b3069c2a400a9d9f84b99e7e78006cd788919ce1aeb7217e262b83bf16b51a75fcdd3b8db7d81c17fe8960870a2797a3f4b30141", + "3ced5584a207bc15f9193f34a3e214380f17135dbf9297acbc484ea9f1acdb57b80b95ce5795b61c15f25a67280bdc327ee26baff2d6f665b01042c87421be77904d17e761b5ff2b64f4a523b1b21d31c7f7dc908fe6918d40a98401d499634f623080cc61ffc5861f3a1000edd3fa4e7dee17e3cf9143b3924c9e2eef1e77b4e6744156bc639ccc106798d881d72dba" + }, + { /* i=1935 cDividendBits=3691 cDivisorBits=1800 */ + "0536aed63a4f2e1c1c93ad639b6a49e23fc90bea55b9535f86cb8774a0e012f7eeedf87272634a9db4e818f65312164afc6cb445a7162ccd2738f01b17b5cf6459648c0e7df43901d3afe84b546a84ade65f10a3555f80a6997f680bf91377691518290e323a9f0e33af9224aea1376f66650d81e94e2d58c9264e16a28c80920c505fd40a20df75b3d0d8f9c74455780fed10a46ff52ac1d62b1ab3f50ae4e18e69792248b772b4fe16e565b09221589f9a291e2a8a9532f7ffdbc5433c4954e8262e300bcae397c35bb94a645310ad459bd4fb60b9c023f643071df4341d339c8322e9661102ed221c64579f98cfbe57068f6b1544cadaa918d7f513f4743dc0e46c07c0a57d489bd4fea148947818ed493d4edbe452ad269b13f39202f9358f2b8bf5ea824f8960c2917aaa8abc479053dea08bbc19256bcbddd07df350f945fe85d9cf7a46aeb383fbc3c8e24d3d2ba1ae8d05f09ad8ee6ea07259bf7801d1869642ac04fbf26abbe99ff64d9f15dffe651972d251178f5e3e7b15604b4cbed9e485315697e42452bd510d6073a569a9c223a704ac0ccaecf2388f11d5927abd3cddbfe4d8208c857a6eb8fd3f9e5f5626804c82008be78d23da0e335a3d9670d0ad71e72f88a6c61aabf461", + "1e335feea324882990f92c6f195c772cf49b2a99ac75e09d2082c058853cd3ffa3bc597f58ea7e39d37f274380c5f3c4714d717182dcea3ce390da48841e41dda1ff7d217cae6b100b4751e43c37325dd6e679c32d32d4c836d209113df2e36376f2213eab675b5918e2bf313148034729dfd070ea149358110ff2472b696cd7f623b6bf30addc12652db81fe759dedb70d596611dca1c529f746fbb001f748503eeda04d34597f97f9cd7fc9ad563b13ab8d9c94393d2b8bb74e79ff5787b8d2f203b216a715c4183bc5110aef0561fb68258a8a9f5031fde0319729f54cc1197", + "2c319cf1f3dde6d8b9e9fc8690b3b22301d352c53bea38589cc1402819db0c1e9596a10a4787bc78e9f061daec16e65be10fe9c49ab1fefee627ec526f67de06f0f285189c65c95a70ff5159252b12d8af66d22a93eb30e8596c6e64f8be6706acecc77e8fb3926fdca4e659a44542c20e964eea5f8505a9c6adb135f42f7cffb0aec74e3b9e44b0fd3bc2cc61f057f74f269cb764fd24043c9f6dc771bbdc85e06a41b9a9e46e4500e74eff100844824397af72d4a23f695fd7e6b206a33d3fe61c63e4172141b9c0cc34f6d689130520d9cab9ba09a15804c1b2a3ab736f2ff646538556cc2bbbc2f95d64d2", + "185abfb792039c5602e80cbd6084bf3865507ca93177973f3ad6cbc3ddf1a9a2b3c7b64d1bb07dd4f5f98878cf173b8e58653c12c84e898283994b68a2bb5736e122b83e7da82b5042a28a10b4dbe9ef0f21c562577f8b9efbf614b80c832b4ebfbd10547b81b779dab2a7807c454022abbbb306a440c309ad3807be08229a3fe07082cdb1a7dc317ad4922c7f139ea23e9fa28cb854843823a24f7554800ec4577a4e13abbc77d1024c990eca3bf0ab40e299110e6376de0222e05a4f885e730420575c4ec0598fc954587fbc75efcfe9966c78686f003c227aaa7646918b8a83" + }, + { /* i=1936 cDividendBits=3897 cDivisorBits=2123 */ + "0112fbc5d9985469b600c9ce887ab983e6d30e757a3a08cf5ed2d8b7a41a3877773023bbd07824c66b2569dd28c9ed3ca46b79d84a7ed6d3db0c18cca0bbd31087a6aee6b13a2a3876a23d3ad173da78800c5099b8415e0ee547be9df38b0b5568b0f68ef5e4cfca33fe317b85f40d90ac016bd1771307c58c139b0c4703ad70c74ffd065998cb0a1ed1b2d38a0d854a35245331578b7a7af1a829c927f38d1bea23cee3afe7e3d0e5a7b2b21a39c6c5930f52582612ee815eb7a2addf0ad2fb9d45f31132ec83823ba81588a6cc73674b42c9e3ed5dce742a4b018b9c778ef1a06525744df68b135182c52fd16953bcb919bbdd77fe64df1b7f6e332d7b0c4dcf57c29eb278d93bfee748775d5a521e40de3a307860365bdfae5c958a414ea8d549887479872f4f48a1609ccb685c86b3d985fd06ba276e0df55974a49e77df5ce4eb2b2ebbab98ce242da4f1385dc938c1af823353ef8a9d33c6b31c1486b1250f95cb18f65fb7c14ea32154536f981311af2962f4b01a53f4671f9cff93c1ea8c768f589918209982648fcaeb38d5d035980e999444ca1c774dc38348321a4b53099c44feaf1a506081a222955a412503d89206ee480c69b0e19556fed538c58fb220694901c96120c68ca0f59ca0312bb11b335bcbf54ec204217a6db140a2b0e787a312aee1", + "b13d88e2f38fc90cc57d0276e81b1ca4c827c780a6365a0c812e66762761f0e3e83ca34e5b86d2205815781c2912cd29de524333ae4a10089a33e889918292da082d356fee507d9f55dbf2377f84bdb150b0e60c30fefea9c768325bfc30575980f3e503fb3754bc18165b9a55b5f0d4161e5b4a87c94292bfe41c90cf27e0e21b89186fb51c385ce127965639086268409c6f27736796a1cedde50b210ccf9d8959bec4830f62ac1ad4c602c1be422a8d4432cc927a6e34686026bd65da9f5b3507f60f0a8d8fe44ad07555d43aa8015a640a6bcbc37d05e21390d0caee55d7293ff43999c897a6862a648bef5c4115f92eb50dfa709b7db985881bcce6977c62fef8dda288d61b10", + "018d2d466a87812c9ca60536a9ff65c5dd477374e8fb182f33d88a1da0ca9935ce345b00ecc9b4ead74c1f55c24276d182a6a975277ccc5fc1a431653c3fbdaaaf03c2314b15530f4fa3c3300a5804034773b2ec192d3d784b227a5c4643491d5b0e617c0c7c50c2adb0c875886f6ae8d495485a4ef7b5d5c5b762921ed9b46d813a525841b951d0c37a6e3129f436fec2bdf4aee5faa8f72eddbb515a89ebd8d61e8d997c674a205c0cc54d4a489e906cbdc38797bd70bf1ca7f41be3c7aebdae322571f76b6e883c3732088e6121822dff75fa605e7813fb70714fff0ac0", + "79f3a60a190abfe81a0ec6115901ad1a9bf8ad1f5df7c12794e6f828cafa1fb7a407fdfce1ee6413c86b60c97773cca436d2cad564eabf2080a1decc970a1320a70a57f81cc97169c7de8b2d3b793254f3ad6b0fc15408104d4fd034882ee5b797e6dc1e9d93791c52cb4d763ea4c4ac0a49f14ec8829fa31d4c36bca26987cb114ea0ba62640432fad698c73492b144a314fb1869accd3fc1ccd800dfdd431e66a42305cd1d63f33430f8ecdd9818f264a14dcc178995d330df2055f481354014b56f91e55155345417c6a4f40e3d88f9d53240b606adaedcc27cb9586e3f2e6cc76a269a0e2ef3ba6bd2fb680463e96cd940c95400792b8a20d1c400d70834b6f7390299c07fc2e1" + }, + { /* i=1937 cDividendBits=2443 cDivisorBits=2188 */ + "01767d1294db680edcfb361b0d1ff711b176bfb8747c9d7e8c387c3908497a5867f54860a576dce76c118363611c80f814951aafb0f6ce006a98f54c0322bb7478499987b8d090a0e8c826b90dd524e7bdc4833c4d8fc61e47c4a7d03d5e358e828d51e045ba4749f79e69a0fe2e70b4a52e2ac38f79974aa6726c18594d81ac5dbf86c05014d12f87fe4897d0c95eee6740f8bd619b16e4e29154180d358a8489201cc140c7c61a2f238246cccee3deb41b96d7a253018dc05b64f93626bcc48c8bdb4d92504451aec38cdae518b5f887a699150fe09820c8a906df49683f75877d97b16e6e6d03012f7fcbb8b892d0112bd0fec6d7eca37cb050616c42da9283d0c6738e90905a39e2ae2a3c1125ba0a34563780eb2cac2a5ec73cccc69a8b9e70f241213000723d1b8504af59ef52037f", + "09f841e759afa4c0d0450900a14fba9fdcad9de380c965541fd9a619bd5106a91264332c4dd88d55b959115140aa2f79e61f6131dc3de2d793ad4bec2b0728664a51ca7c7195d945bf199612d88c6f4105e29108e30173c946509ab53e2e677a98b3adf7e54a3e4712421c5bf0c2e13c4f3f2dc1eede80369f564978ba61a9de57c339bed80e4c1652d4537a48a5f6bcb0dc2366ebf8e4e36108d5de9dafe4dc4cc132d13c8b5b6db9b71907559c47b8e1332ea713e6e123334b00f930deac034d824ee7527d0c84e11b4304fb22fa210e0ef23dd65922284e5e60e91f7ae154387be1c8fd993a0eedf9d1751295974f26bbcf9cd50cd18704aca438f91a003773cc603fa224776f1b27f6465d9e0442d8c4", + "258ffd7ff0afd36f1a512d22befe643373d5b437013b89635702ff7af1cc370b", + "053e162e303cc19ce8061eb5bb1b7ea524860311991d2f2d3aeee3f8217aca4adf037e6262ceebb61c182f829a8f0ba2ba4146ab625ae5b3d3b5c48a162e5d7aa99f1db119cdf39a69a570f774357054cea42c5b3df4a4b8b407e0996263218a62072b897d224793f1e628b9cb4f8f353845f9d553ae5ae65f5b2d0ee20e0a4fae5ad09f4edd39465e84c85c0fe8ac52b5af1ec7eb3e2dbd5ad775f6078601ff995fba6ba7204ea5afe07322f830d99072dfeccd3c1d12ddfc988a5a193f71ba397a1b129f42f4e46e3c3a1105323d2d2d8ae1a4212e1381546c3748d698bdbad134ed73868c9e563b073f3dd0f7f92da1e39a8c0ec6be8917ba2aa4e81443a4625ecf959462b4a782bd8aa4d9e823b09713" + }, + { /* i=1938 cDividendBits=1216 cDivisorBits=1093 */ + "e4c70227b183b7b2cb40c4b1c658eb53de20e71ec4cde308fcb0929d9e12f75daef21f6c5ad529173a436b6b3cceccd30630242c0c0889b86dd2c5e0efb34cb18a090255696754714be7b8181970122c39fc33e7538a7f93f4a156ddd2f46c145fc893fc12643778140cfa85464540e48692109d50ca165d208ae1d13472c8046eec78227b4bdc18f1ad5d799cf4c39407922913a372e81e", + "0f13c94e3f204b76cdd7760be7b82bd5b86a05135272b30b215417af6bb9a9f0d868d38eccbaf30e9b4d23ca7ae6da0a06b61a0cd0f071fc775c6449be46a3c743e29caf896d9bfeeef0fbee6c445328867d0096bac250da563b12344da28da82ac9e53fb78be93b09618493165890325efad7b92027dfff48dd80ca2779467a551279367055ea61ce", + "0f2c73ab3139361306e244c496629eff", + "0359cf86f5a03115e999814d2452200150e86fe4197a2289b287775bc15d9d023308a38fb8995bf0cf3f6fe01b8daeca4ddbb12010e6f9531d308e69ec496318db61a233aed6909e3afaf9e8140d615251fd4683f152a4ace25c4c96fda6c2cb36321230d91b515e821017bd5ca6e7cdf7c3594e56c9aab4449e9fe95a9484bccff299c76741c257ec" + }, + { /* i=1939 cDividendBits=1806 cDivisorBits=745 */ + "316da1459b745b01e713acc37c6986eed08908506314f61717729748aae67a089636b914ee85a8d9afc601d3fcd0c42fe008d3ee38257dcad245bfb8fdd5e8f9feb0421ccf7ce07df7cc255a65612984eddc5b28bc3b22f392a03e1663af27035596edb483f6fa177f035991b51dade52c4ac5e55e39dc6a2a6a9c9fc14a6de5ce25fc797599df8bdee5a19679f14a772f04f0ba14fd093c633840bef36e9c81ab3cf87cb1112556ac6c599b29073e1a9ed2230dbab2efb050024dbc9e7c6e669bbcf87facf04e8b55a4ed58f886a5aeb2dcd361e95982f15668951804b900b30970", + "da4221d789649e1ad59aed0de2ad8e115b81f50dd46877b1bc1c8d40425711b41c4b5a6ca80696b1f9d5c30a5c85f1d87bc0fd0525d9576f532c8870f7b29364da060dc388f1bd12f1a80afc98effbdd9ee7f9f984c1f81115f93a07fb", + "39f9b8a20f4d8a4f15c9822b0af8a3a925afe26142993270d7ed4514b8938ca2a222db9e72342f65a754f177fac3e65e9565f33d6e98b0fb753b80ba6b90ebc931a41e64757c48ca9e0521df02be8d365f0d8c22daa425587cf3232e6062f2b54d06193c6bd15d9593922072c9fc6d2d362eefce3ad73126e7d21c2957be526c0420bf6618", + "cfe4541c26e92db64274ed56d5d4c763d995cbbf3b75b3d0978cfb4641d5cb0b8fb7c697c9f2d50138f178ee997ddfa3f73ab3cd9c1432530332621ff39a6275a0e9f95980077de9aba70e8ad9d9c6b3852d3ef929d7cf72252fcf47e8" + }, + { /* i=1940 cDividendBits=2268 cDivisorBits=314 */ + "03acd90bd8f4789b53bc75719fcd2152d2a0ec1ec5e646bb53d3f7b3e39b770e839e93017724f63d636c8e888e794b16f2beca478e22fb4220e0622dd6918d8922f834b487b36957f109cfa9552f52cf596556b9440b848aa0aa02a3b3c652a8709d49d90b01203de5b654e3a18ffc20b2e2b2840a3db50b835ac2a9f5744a6d7201e91b53d629464555ed923b6022f085d7e8f4c1573b32fe86e61cc9ddf8961d3fd26f19fe65d8514ea04f8cb4472968d4f27a094626ffae673cc0b8b360d7795538ca8a4b2541a0afa5a2c1faf1906f71fc61cee0530a9fb69e0ce797c5901e4d5dec406e0866387d502e33aa9771d2afb1567a616a92183fc200b16a91f1b10d9223d846e6a9a67c6ea103fa6d0c01759d24399c48b82c1904a3", + "9f7b7b754b5555b196b2703b9c57565bde329fb49503ffcf5bfdb8721e08b0c063ae591f34661a", + "05e63e1c764bea8835f6486f3b04c1734fbe9a8f7f45588214f032e59a74c6ead1b53480ae002d8051095434f6f6209d67c3c9f9d22e5513ab3c7b088e42593d7f42555e837522f8ae341e11c6e0603832d08d6742eb16118b4d19872f6ad744c01afae377a0e6d16dcbe86af0cc37e559081b822d0c3f2cba2265159b2458bc22bac980f3309fad473dcd91cdf9b49397971e7cea34ff97e2e1808e68438b2f03c4f07be492e1ba26238abae4384529cc93d4f5bba8684ad2ce7d38314574ca656910584ca2939daea6b6d1ca381d5b4f91a22906518b3b8369bdf2c24dd8322a38dec695523f01037abc374e634e7a045ba13c46", + "855b5369f5c12a50edcd6866d7fc6998527c68553c38e1f55e62583bccb86b4df37c61e77d0187" + }, + { /* i=1941 cDividendBits=572 cDivisorBits=106 */ + "0f82bebcd45a339702874fd65be3dc1c7465a011799f3c8c2266dcb5d7ca53c27455db14d0ec0f12a8463ff427016f4ce7423f203c0e6159e1b4ec7f54f44bbbee34a747e91b44cb", + "01b75c4404f5dbc922db6efeddc4", + "09099d611e3778cf08805f7dc636380f5a373afb38d1adc71c4afb1a55ae5ac3ff428128904f67d54c62a871cbb1b5b6940ecb5d7708ae8278bc82", + "6e413fc16c24f97f08e4f2b743" + }, + { /* i=1942 cDividendBits=697 cDivisorBits=525 */ + "01947dda24a3c9e7580b3a2308a7b0f042efb9068dd906c25d5af10e368984530c80e7d4aef88a305926d0ad4dd71de33ebf36225af8808d2f7751ec9e040592397db16a2b0c6eb48596f7a23043c6e57291bb80f3839feb", + "1f9b7c62cf2dc49168f34474b5adaf7981a3c95ac3246c88cbf0476701e8bf2ebe8beb52e58ec59ec07331e695cadf4142756fd524394713e8a625b5b1ab80778fba", + "0ccc215be9f39ea50a89f209ee89232de561f27ff30d", + "10c53d82f5939e5031d9c3b2e23aa54eb9306b516cdd62f7a390443a7563a0f3f211cbb0269fa3e8639de209939168de4c94bc652fb6ebb749777a9b5231cebdc579" + }, + { /* i=1943 cDividendBits=1788 cDivisorBits=405 */ + "0cbfbfd6145eeb9ddb37b4129d78665fac0311255f3a3c115cce24c046292d540dc9ffc9b7938276c428c6becc57d04d2b34bf5aa4ad352cbda1d928d43d836904da68c0b7d004f5d90a39804ecbf4de957990a51640bb4d3a459cfd548c767a97d0ac650c91a1fedbd4e92e4879140ca38274d89d3ff1b4a05e0428258dd5a4942ef15ff0267e94ce7dbdeb04d16aed68fd3a3d3aede7609508115fb785782f40010b77c7d35d7cf31bc34e66d890ebcbe1a536ca54de90c87043ad4775a9f0fcf02288cb0eb880d963e182be51899019c2d0d41c39be4663374d857b3af3e3", + "1533224dd3efbdff8ba877e69ec1154f8297df6e7dd91911e14ceeda064de809af64b3af68d31082091934cc9bf6100f595a06", + "99f3cad532ebbfa22434f068cd9c8f6e2f2f835aeab914d2a0ffe3eca6b97fca953e7b39a98bf9b88bed4805e06e9759e38b18493edf372d9410fff517e5122f96ef60873c270d7f48b0c5003c7d4ffc7c6f31c6ee930dde9f2abc84e7fffb17824fc691b7956e97b9a51040907f0586965604e3965d1fb8e214fe13f1285c3229a74efda3bd9399975781584781712f5f47cb7e328de1c9bf641c9d975cf7445f194e3dda8196921b716f9f11", + "075d17165f35c62f6d0a25325f224bed81c88a2742257b068ca89bdbfdce64988592bae11521af6a767f2cce02f9cf48c83f7d" + }, + { /* i=1944 cDividendBits=1130 cDivisorBits=71 */ + "01f85c2d79f16ff9b121263fda5361db5f37e71a8c0b05146ded060a444557d9ea50d57195b3ac86c6dcf9be329421b834d3677311bbaae2f1c4b7acafc1ec07636667b438d0c3a4444ece773745ca76f1ff493075dd877fd27d9f3b5fe4361725b2b984e983ffb709b36c651a7d8d90c0940e96e8591b4f52dcb969f51a9db3f9a7950d36b54d8f19cfc25657ba", + "7e57a5eafcc8508517", + "03fdf463b5c6e74fa9f7947f870c6dfe4a82588136cb1d3eb52185e88f0dfefd67a5683c127f56a17d8b13fb0d72f8688c15036b6900e8b11635303514b80bb0803208432e24b2c71c2dc524322e3335ac8da4b89aca61854d946f3d9f90f9be76b1f4c16bbc8a148b6a212beff391cbbd4e0ca4be5aba41f38e705d2ae009b2065c6e694c", + "3eee1489a3cff665e6" + }, + { /* i=1945 cDividendBits=3005 cDivisorBits=1145 */ + "02a8fc88d35415a44f7349586522fcf793b953cecd7b21973773e6738d929f72358d549b7e5f4f3d3704a7bca98bc1ca2547c5daea7a6ec779777b59bd62870f27450b44a1b79d938096b880d8b064972bcf4a4e5e2bbea261c70a5c60eca9d1fcf731a33d6d08e35c23917fd5aaa3e8439ab9ada36046e170fe4b6812768606d29ec864262222b178f5954295302770752ecb76fc60cbc97d9798464f5d7b1673fcde02d95be25b2187ceb735ce49e3138993a22c7f5c8235b291620c4c64e2669a6ba0f00a8d90d126b9262d66ef7bb500c8ed9c29741beaf20f5482d9d954db0285785c821311b1c394196a69161d7b4762a0a38894c1dc729aca9e6bcf65ce3f5fc88d98489c8207632d7f62e6612d287d6e32cbf952d19632506b514477c670cc32b5465bb1dde34dbcf9c603330dae3ebbd34047d7ed7f1a367e4a42d568be61d79906be07b71168fcc49a1d506f8797d00efbdcf58e41c177154dcaf535fecc14fa9f4f1b936a9a472880d5ee99b59c5a166c9487", + "3c79b51c8dd75fec4011da507cf99574c15f8f10c18363d3079e16d2d4146efb29c3b070c0138c9b9a26533aacc39f7dce30770c5a6806ac5e2c3076eb002e8c1f6b57b5ac45734c9314a42dde8b25267eb2416f232d7e4a857b5126ed90406249b1db7aacea9fb0cd06d67f694bc9c69cd41db3a9fdbc6f41ef37a24cf25d373eee284d1b3140e370913389c6bd22", + "0b42b36089facc9652a5f5e89694b2c897f3fcbd117aadc95ea6eb97f7d6a1dc7e02e8bf33bfa392b7c6a110c15e178911fdc577943b3b8c9a05859fb96b0104256aee0ce2f016b8d14eb9a7f5cea07310813912d94487e5a2d27f2c4e6c15e7bbcd4992581f1a953a7362a38f12265ed2fe6caef331d45a71afe5db62fe92cb1d7267fac39f6ce14c24b64d18af83c96b34306c596eafff0bca271838e9f7926a115d0989aff0cbfc136a51d3b04949bebfacc4837dc56319ee36ea88f3510e6b327bed33ed6a81663cb72b4478f61a47d232b7f0e3a5defba5a056ee88a4203b2c133c1d092a0901", + "0867535af69caae7512194268fba868f5e103a1e04b9e22cff0005375373ca4287a836658e2adcd8ca56438acc67a22feeeab1139f154ed492675d473ad7b3ccfe78ffb4119f1e76f877a3ee0ad2ab812593f944ae38923d0b3a78bfd7f7ad23654ed2293f355271b5c57af6f2b35520ebac89c58e69addbb39808155396b2e116a0beef8256e30d803f33566ba565" + }, + { /* i=1946 cDividendBits=1924 cDivisorBits=1732 */ + "0fa58961ef22306cdb217380ee4a8cff1c847e44585c4385196f11d90c8c4796707ce047e631603624579b0fbdec988886160eb794bac8891d5e4da28ea1828d9d5291d50ff9bf5763696120b73f1bbbacdae720798e3019a8e67a2ee5a8b39a78411477c17a8b1adc6836c8cc0404f2e6400b8a41731effc1deebb73c43c3b2f98231fa3821b059ba653cc57597328b60b0c8d87c11ba637be590689dbccf149c96c0f0c0a0f45080848377f93753538eec22871119a8bc7045715ddd5d1c688ab308c57af3d37dab42436348b76e8eb99a199634bf24c7ad027c72ee10f5f8ed593bef48be1c767068b6b606d8dca778", + "042889a2564649bcc96e364b5e641bc4c06fd83bf9f1f329fdca3baa9212f3988c9b4fe2e257c2890518a619dfa4cd1b440cd576e82cab4d729b71581ee0985d8264404b10797719c64f916d06c6b23877e64485d0c62ed76e6f394aa9b8c4a08c9e60cf2a26722afbfdcde371de71b1b6e2d33c1e81b9b4550285de5d83f76f9e5db6ef087f28ce8c58991559ec50b28c7225f01035c8f7afb416b6252c670075b2428cf3eedeaeaf8f81ea63dcfd50f59f7b53936c8386dbeb1cf77dbc39840add4eed7474ba8589187e0b197d4a66a60d05aca71911d131", + "03c3405cca9d949bc81dbdf12ec44c63223914d2aa5096a6a7", + "03b021dbc654a017e596f8bb386748aefe0712e8efe8753e16f095fbf4383ef61c3aee2f31ebcc9f86f3bd06fbd071b651ef10386e624522204f1ba5ff48253101c23a2e67d493b4727c0bc443e634dfccdc6b2761e784ce78f47da8f5d8527f5814e1e9d644de9537768a3b09bdcd8c6f869c03897bd90ae1004a8f01d2d34e2e67913e26a217ccddfb9e3b2615d5bc3796c0ac2a69c2f38b94ec5f8e5a6c2945fcf29a8dea57479ee59b3f837135d878492e5383a898c74e9342fed12a59a28bcab69175398193328f9b7dc2e4ce0a63560d5c6a0de16a81" + }, + { /* i=1947 cDividendBits=1111 cDivisorBits=370 */ + "6b808fa5931650134d271471885563706aef1e6b5029fb886347d568f428e34c2653e4f3a81eb9ad4f73f3b4286383efa42cffb018418fd9256965f1139461cf9fad147717276d8288f2cbe1bac169e328c60df61a528d48bf47f5ddd14528e805765aa25723d4a476ec3440f0fbb6ec038d5ab000c17a32032b007a0dc5a04b0f640a8124cc7be65007c3", + "02cbfb2608213adf788cfb5833dbb69ce52ba8ed9ab405f58568f516108b4e5599b75cdda9c9088d0ed4fc94d58b68", + "2670039ead1b70d3554da682e7a9bba6bb07ce465f4ba05e8c21990ee327c695a4131d1f86cb15408b7509d4e1b9f1dd2e57e1f79361513a3ad38ed9f976dbdace526af01653467890412d8df883c1466c4d8eb720c9f7e524a03e3c89", + "803c3a5f4bae3d155edc789cef35f91266691649301377a91c0d2ea3bda89d7c33110fa5708bfb0478f5702c0d1b" + }, + { /* i=1948 cDividendBits=3977 cDivisorBits=454 */ + "012dd9b4f8059a18ace65d3781e0b66a80c87595d1ffc6a74585ea4658f2cbfb2b36cec9aad93215cd5e994c41f73626da9949d17d2e5fdd8b6c7611dfa77909581a0125308a1f38b7f17db25feb4d1e09275f580df46b65a5484cbc0c609279249d918cdee6036ceccc73610978df2ee36bd1be0ed7b0c9e41f2e9c0c0ef0ac6b9cd69bb99f1c6a3d596f5364ff204876fa0d264b85c5f7e823b4ca7afe637cfb4302f2233f9bbe475d9b43a2256d0c170c38f4c3a7eaab9b3d7de4cbd5e42b49554ae58101672ad915552322357e24b6aabe17cb539dfa10b472280cb195e6706fbae471a22427a2ca7d679fa577ed3a3dee32066d5a8d28800477b6a6766b9f9bdf51be144de2173d1e8d67739ffab11d915e066b167e2e079a39ed22c549982677aa180fb91382677b5747a82ae5eb4bca31312ea1bafc5bc54f27c18afd52f1815c021d8f82fb6b546cc9a6f086d7557cb9add17c5fe111f449bd1f6c6558eb0d4ba5ffb22ea85e165700c875423ff77c339b2c43b053bb7216a8ab81072020dbfcb2e64e17162e4c87f02d159f03c2ab40867f87f942833d837ead282bf8171bf2c91d33ac9b7ccabfcb2f9de1f315c33614b8b9a329c0a7f77fcaf08cbd5b268f72d17c5baf642e5104f75931b4b1468094a77be9558dca72885878bae9de1344d8272a47a7c5843271bed769f218", + "06b83fc9e6d1001f419ff0ab8d8164b746f105b15c340c8a0571bbd4bc42da2653168413b1ded5bd05321b9f194cd1b9f1208beb12d01abe72", + "2ceb897670422e9aebe90eb1d227374caba689a5608794e9a4c9f036ad9f2836cb03eb26f34e07ab8d97ed742cb5c62c592d1444a91f34057b8c32a64206623db0eff248c88bd51a796c8530846494a1be7f127337abe569fa1ba4c27f6fb321bc8cccc4f62d08c739f355e3e9b85e2b039963ecf489d6c186c3a863660c0e639660d04dc4d363944873b7528e3fbacac083b5d9ab51ba09a0c26df34b92ca37f1f712d8a22d5177e20153ae9460a01c2b1679e29d8fe12f514b59321dc11283a132dc3637c0ef2a80c98d860523a951043588545141fdaa4ef48c27e79e1e78387d586293522f6eb5f664cc85add599af4b527176cf9878bbfe10fd8a332398263467b99be166453f70f12e32b5136eb1d9b1c0ff5abc8c15bb9e80874aeb106269f795dde5894c82b2655cb2bb2dfac60c7e2972641fc03fff5d30047c48ce150fc2a4a567e86d9be444ad39938e90081f4857887978a9c1111e1e64af61d8aeb679579c8ecda3667ece76d248f33870f745cb53445d4d8f47a6bb69d3c53048bda70b13fa53cf24256d718449801cb67172e7c9325074b8d47113497253ab093010b2d03419db4e527b81ebc96ca5ca6523b099d4d2753e", + "057402b8199591377094a3bfd45426b90cb0cd2bdc9949f9b946dc0958be2cb3dd0de7568fd6c1f5c4ddf8d318fde5abfd7f9adc4b9661b87c" + }, + { /* i=1949 cDividendBits=590 cDivisorBits=260 */ + "26097fb3520ba78b0dc2c689f7abf9dc889cb548e1915a0cce056d92c6758243051eec0f3d0433020255f0d2891db84a6205be1da3a3b71283b46a454dbd72bb869fd007bb1352e383b6", + "0748cf354d3beba1e44ad5d8c43fff579f8ba57a47a4f82197b1733e2affeb04ae", + "0538c228a6f5f7951e35abfa063e9d133e5daadd83b24e7e8239d07059b820ebf543c628a6e8a436e352", + "01829fe638ecbf04a59d2dba96e65f548d0aa69a75dcab44c17ec4141d7fc1b9fa" + }, + { /* i=1950 cDividendBits=2718 cDivisorBits=1810 */ + "3d53c20cf329b9ed2ad215037921a4a029b183ccd8689e4246cc269e9b5ff961c59153df9c1602d72e4df37f4a1497953e0260fa902ed3eb49fd1efe920204386d7f726812e1aacb51cb09253ef0db4532e2ebb014ea67c409b352afa3231b72ab0a7bccebb3ea5e4ebb97a68a0cde5b22885857a3c12c1881ccb49db3be8d68f402216dcfcd39b9e9f052b57b191ff969e1574ca9622ce8d42b9e269242c128b15f2112a5c4d4ed6d02a1d87ee5efeee38aa2600dd42f77b304146b4dfbefe3ed7dce93b7be584cd7671b601c8629a637aab912d31435074e1dcdb96760a62aae3029a5a37065ec0cec598defbd5a2eedef588fe8d7c1fced033d90b54d48d8711c7bbfdac74eca6ee03e61535853590bd1cbd8361f6edd34f1af5887b319f7ec2abaefcdf7d1667838560af11447dde36e3c62e52c338e6d251b7527c0e58fff8d3b4c8e5fbde94a94939f574a37d5881c4e04", + "03b5d1da2f938b3ccc3bb37a58f809f9da125da1c9bad70746dece28fae4999f205c8ec436422f3b19943ef87bde8d0cefe8c7198f616dbf8b4cd6fda4109e2bacc262014b9582fb3922a09f5b7005978281627ceabe32251f8b2d301d49463d9dc1902f5cb8a4e73d1a91584c72287e1e4436dc32c81cc57c8e233c19b54857fb52fd26263aa0be7240787bff16db2c19f1cf48dec84d99d5a79bd19d47c2c8da77d4627d41d7c4a6dce349244527a1b52caee39175d8c3c998be6d013e3709e5867053e7a3f0858153af884dd3535768ccddcd93414dcb7dc6852336b2454432f64e", + "1087797cfc90dcc486c5b6ded6f2c387dc038774ecfe44be1bc3b7bb8e8bb411f2e9ec862c7471ad75b643443f436332ac0c308ea627d37ed5886ef927ee1a66c09deab8f0cfefc51d1fd5d1c481a301054b4bfd281258798148773ab8d979bcb65b8a7d2df38108cccb35f8cca26ca4b422", + "0179a2aaf97d70f5bba0a99cff2f6157c9d1fdfc5ca9d6009080dce7396cb30859e8a31722fe5cb0339a05fa36b24ab5f60a2eb7ac2dae5f76c63afdd133c1e04754173c58807d0e394ae6c5877ebfd74f322aabe3958c51fea35903f2db6578e66142381d9082361c9b6f5c4d65a204225d6171d4e36763a9b7ea4e5ea6a298bc8db828d94ccff15cb1959a77e755f45a03bd59543090e38a71528541003c3fdfc26daaa3791022db55b30de49ca64f6bfde8ed5d632f49c2064bd3259e78fd659db1ed1869aeb368b336735153dd8dde68c83070e8f2e220de8a4172a0c3f230bfa8" + }, + { /* i=1951 cDividendBits=745 cDivisorBits=156 */ + "25d8c27e8e1ed0a7f3dc5443231773a838156a838d89e8d1f9f5e3093bfdd2e79b8ba0f029c7491b04a168fc9c2a6aaac952b27dd67a374d8d29012005439f8f1113918210b242dde88536fd71f1c5fb819d40408d9af651b146582503", + "0d600188d768355657c6f623dcaa075349a12c4f", + "02d464590afc5c36bb31d09707d10c31a95734ed9535d38ad3e06e65afaf3363047dca5616f7873a1ad69f25cc58d88eab3c6cd945c04736e4879fb8d1022a541698992966ddf1ae98d2", + "07f938bc28a34f922850463728c45b31b120e435" + }, + { /* i=1952 cDividendBits=429 cDivisorBits=395 */ + "4deb668837bcdc19996bc8fb666d14dca6d81c766d0ffac971364ed5ec45e0f23c5f6622afb06b5298575cf77c952beea6b2ae1ad9", + "012985c7a0146e803100653a0e80eff8e35ac21ae9c00e64fe28815092eb1c7334bad8d925246f5e62c19012272fd8c7ee87", + "430b84f8", + "89fb22307f10d2c3880f03e0cf84120815d65c431babd617179b85040d3dd28fd0853210f8e1fb8ca67296a88105346c11" + }, + { /* i=1953 cDividendBits=2303 cDivisorBits=1829 */ + "116446c5dee869eaa207b051c7366ea25380626df9a9d89147782d870272a1bccf418187a251112d27a1ac9f80326ac2e13a486a6caebe28cd88dead9793d0bc75fdb7ed06b53fa389477d4dec8e45934ae21956d28b74a92b68dc97663a292472b62a400438ea3c96d708ab03753a375ca503f98b29182c0502fb98b9b74cc3d2c2f9db844be48b95551f22ef3ddd2407b80262a68efc30e9fb76b9cd94e10fc424d95a51083067b3c53b60ced4bd791b082a9a944c809b8e22ae3be9b9407fc338d7d8aac7594e707146d1fe526e0598aba4b3122a48177c45430eef0dc3b878f3a04cd69f7368b0b09eef1f2de279f9eacd9cc1b59a83388965fe74bb2eb308dc39db501c4770f7fa087b28ec3ac3e7db06fad3d6e042e630c1074f982e3f", + "08bd89b84fba08d98060467934fda58744d82d2b90bf32433197cbb0d18a72cb768117acd791b61efdc56f8d3e4f73ce0a6ad97aa85e60d5f2b78a079d78ee7934a2519b2df58f68ab0bfcb86a2aa5915355f671df641522dc4ef3edf3db106d16e945227897ab524cb056823f50174968ad521bff0c7902784e302f7a55c3083a9603f1ed9b4ebc521906c1ea519c6082302fb8c294b742899d011c796b58b1b553eefcd8051bdaebfc056f8f396646c67279d46495369dc464b0bc94685ff8835d3423917e9acdea11439d66926945bc4874ffcf2bf90cb7ab95ace4497ef57040a821b3", + "01fd6437e716b64ce44876c7710c33c06bdf606da2cd4b44e416147e525fb42c48e6ed187a15f45c5787ff8630ba55e783aee317c60267b08259608a", + "0458ed4a47579beae5f01de89ae5b26df7fb29fdb7515454475aea6db0de6b3f36299a1a4bd483001829f970ed328d77e45134e712dade01bc7e0170f816cd663fbfc5c5034c96a99a37df5ad4dba9cf778ff622bcc1347761bdf54379edd04e9b73cb2bdfb6b32050262fbbf05e7c85e43c148fe970712472d282ba5b8542ae9993d7730ffcdb369a2c5dea19b1d0a3fcb27beda8aa0675ad0d46016e82579305c44b109633f4426cc71cbfc827ae42640d2b36b7957fcdb48b7d3474d5b75db17f0a335e44dd4b396d2b58f2281a913642db12db5b5fbdfe6d0fd937884e4ea4cb17e3c1" + }, + { /* i=1954 cDividendBits=1591 cDivisorBits=843 */ + "4332d2e5ac2cfc5e6aa7186365e6225fdf1df98b44835df7787a71085c6a9d87ce961ab84a67777ce26bfa8076588ac52a3a8789f44e4270460b91f322d59f0b8a4413f2b3229a0124f0285b7fa0f5895fbda1f529ad6456cc6887185922264d4a684f2605961fc10631ca82fe96db7d1067953ae43b2266ca485ef3babb4b0ea2daeac5984bc6214edae77a9f6102286afa109c5c817d8c5c1b51de18b7360c73f61b8ec1671d195b727158e78383014decf9472e48c23c4feb03d41ef49e4da16b00a3b49196", + "0784161c7e343f4823e81b132a528f10bec30a44f58cf2ad124fd4ed76f84225dfdd547ef19be0855d3eb053346d51d5745e1986f248073bf0bf5e063a393114fd0c29b7c0b3e4cac2c33f7d5087f989aeee138ae13b6b14a0c49fdb6de3a7199dfe4ea20cfa5376f1eb", + "08f0d6a595d5d9c666fa44c10b8caa37d7d493a5d161ebbad7a82f2a9813c6632accbcb94b1307f8f33a89b84ce15f427a62d81fd5ef8710b5e63f9160aed98c2a0a824298a5819f45f4c0bd3511f2f5fa8122f52b15f6cbd378b415d076", + "028b88232211ef8add758375bf04aa1d4d00df2f4b170c003067c562990a92db4cd5878e3d2e7d404b1bd5e1f801dd631b73f6434176351accee5c16ac15c43838220909845ec3dbecaea70db6f339f3edf6b39816a7164044bedc0da8326622e7e480ac79ca720b1f44" + }, + { /* i=1955 cDividendBits=3263 cDivisorBits=1365 */ + "10639a11c72c875bd643750f7c07961647839bd890ff412bb73f1b015c87372468b580fc40152f61fd9c6a30796de60889cf834312ea80d387156b569a59675adff363aafab47ca931831bafe0fb812c5fd0a7efc2b4775858b5e9228f18dfb9a02201c72a0a1cfd3c382e08e5e2d675902ddee1a8ded6b637d0f09926dbab5e8ccce7d7eb3b21551167b5e92fb731de7063d45b3840b9e13dae784442b3f9d3c82555942552566e9f60a0d0e213cecd63215431e525f23418bef88d4e1fff22b5c1738870eb4029f50e27239b744eb51154a3b0e17ed034fb6afc4a7cfc1486867e7a356d7c7875306d6cc8bc086812a056dbee1caea3d8895dae4d85671db93087a703c9e575ab3a8cd1fb37f345a12e11738c7f0146533841df2267c5e9d15a024635e6ac9c7836c812892e2c4e6b610d5a01912847bfcd9059b7c522e0f6c8ab76b047284df305cc23145f7b3d08e7deb50825fd90f3ac6d522d3e48f5f6a982d34acc7e9700ad64b6f3251c2e33c1e3b3147a0230c8ca3adf2eb6bb70c529a44f490f54fe8cdbe77584b3508d6e9d78935bcb569549", + "0a8b652e2a8729e775cf04cea3f1261a3c7de5be2ae009d67d969b8e35befd918dbc3440e8d081488719869e3767c3205e2bb740282cbe5a481435b42ddf4374aba92dcaa1a0ee640743bb30eb26d2d9ffc43b378708f7f41eb530f7902c038f597f9c236354699ff6804ef5814af7416be2c09af1b0baddf1c45e5435937f8480a556447af5351b65d1c0f1bad4f16f3d5bf67346f393d33cd1d1e3df2fc4b114616dc3efdd156f291318", + "018de4f3124f32c08b0a74ebf9663075d456584f8866f8ae28bc0b54720ad71a95732983149d2119074b65110f3fd939e84a5d058bef5bf53f3d574fa2c29e64d17b8fd4aee5829e7e07fc22e0372946fa154ce6bc1ea6c9320dd5cf9cc760226e10c91029d245f0361fb3b93c8cc592a57b00f14e31fd4d80480ad1ba0911ff5217302e62a4971bccb940c4982e1b42f5dbba7d9673e1c8df9623bc5b2a5bd85a91cc84feb8bde4a05c079f50c096b0f8381b01e016cd895e7f8823898fb6175d88123b223c3e1ccbbd468892f376d00c9bf2f9a7df32c96497814eb0ffd5fe014aad47d44b3c314c389424d345", + "078cbb49bb1131b5cdfab8beab71b21ad114cf345f0f9477b71dad580fae647653429fbf707d5cf861dfd6af59c92ac98ea0e607ea77b1ec97f9d6cb76c7a5e5c2be925f4a664c112d4a0f3341e31cfde57bc18d84d0da878e43915f2783d3b3c5aa1463f293ac5a258f61bd1d96c01c5bcec5406fceaab8b1e160a93e4c6a50984a5a475df75c2c0c9db26a7b65b1cd1073f9bb4e51be33c7004dd8d870e2820b7fbfd512a3e56b27a7d1" + }, + { /* i=1956 cDividendBits=3829 cDivisorBits=1742 */ + "1f94741cb0e4f4e1ca6e41d9092ecb589b84fc5a56e6e3f2ea944d63a7d26115aaaab85682cf3d3bcdadda9a53bc883737b1f6f481ef078d56343722208d6c49e995e8d746cc0fe5252f3a0bb8b22587bb036352ac481763f8794238018f688de69f9e5aecd8bdc59d338287caa347109b3266d794645841960310328ce251c1241ec4d0e83d90898fcf52c2d2234fef418bb8c24627ff02f09354f9b46f78f468bc75a7e5f2b7fcc19fe4665161505c2dba67b98f12fd787c38b4623db95c3cf2132d7b8562f73421fd6d5cafe7b25a9b54e8453d2e4fd1d62b424abf9adeacfe95735af7883678cc9b389436e9fd370913de93abfc9b8c19ddac67a27b865db881daf43a967760dab7a8ba11cbbe15b2ae02b2b169788acf9e8bf69c63049701e8afebc58d7d4a704606edaddc3ac59ea866eede048a58d99b2d88881383575c310be0d27a39b16f51abf989e11d1c164e522e7bf052d22b2f1990b999f970e7480094a5b7959db893a504b940a5816673afa30deba62f8abea00979694f9b37abbe3961d81ce62489afb7059c65e98a0da6975b9c467ffb73aa47b5fb57b416302e3c83a18ded0ffcf304a2df69117e3f18aea69aac9fb1b2d75c651dd8b8ed87dbcd5db8c5f8c2fc9e070c0b1e2b7f95995b9fd29d97a1583f31efbc23", + "04c04031f166b634736047d95fb28487d9f7967f61a03c3dd3191549763b6baf16905f1f9756e652c2cbc44cc1d6b14fd8019b0711a901909d7ac911ebf338002b6d0f09368ad29a0417b2aa5bd37c29efb463c5f74024458446d7db0659e87f0405e4af8965c7eb8bf98afe0fa5dd2228253c322f6f3a57210518fc0f0fab3b158c48b39afe28d4152764d417f4557faaaa0e9fa7e1a007d2d0a7b9286ffa72115d0c28540e5df0fd5e7f11ee5b0d0ee54a65bf9444e63baf396e7522e5e031c1371388305f74c90b051a96621c1e002fb02f1db0d72fbedd9e", + "06a5a3aa104e37524a8b27ca80e4d6e96f1e61b9f0479fb6912d4c6e442ff17a813e891f8df2423d828ec16f0a4ee67df092bde0ea3cae6514061e9cd044b42e990c45573ea0bd551a28184b4e17478c381fff6ee41091515d4b6a095f4db2f5c8c26f6768449ab2db0847f2a0da7e2fc9362c7b6d48333e11aa01bbdcd7ffadea9f9a2a84374f37cbd92b0659a06301a6fb5e8288f0514385da15a37e0a58266a4fbe529ff9218669a3bbd70414b34377bd4ff6cf916571e88ee2b031d221130e9b509da8fb0f10a4ee5f0b3c5628a24328be803240bdbe6f2f52358702772c9ec6c523150cb06237049769d030a8b6db13976220b55343570b912c04187f8371bfc1ba4ebc", + "6e058c66b64cfdc3bfb0e2eb3d117076273eb84790878c05600074e75cdfc9bcf189bc4ad77db0708f9301a38d2601e727ff40f38b3d6996dc7ed6596f76eee2886318a4ca7ae111dfa1cb7710e83834b2209e3b62f6b2fc1f90d846a259ca611fde41b7ffcf3d1053a65eebc187ecce8e5c4bee30ef394c830d39977eb3991631b5610e06469c8d8de1d321c7c4253cf43139b48521cde1122e93a69eafcf8f090d687a80549815e356d672012cec958a2b87cae80005dbc153bf418a02d649eaad2c17ed2a7af68ec4f55e833fe736ee91863d08d772d81b" + }, + { /* i=1957 cDividendBits=3708 cDivisorBits=594 */ + "0efb8e24053bd2b3a9c627e79fd718ca8ff676a6bb23650f023110792459fcc3e14e7d0a574c91676fbf0b62d15c288a114dd6dd3c3bdcb1e9236805b2ff6c789f5f0c2642658086ce8ec26dba098b7fa061c6ee3a4425124618a45ae0e489659d4cad1df231270a2b9cd78d5ad4e333dbdc6c4a708b18686c5042035093e4a03b272ea458297df01bde02280a5ee919d0f18ff8fc0fc3bdcb1ce29c8882705757cf0f0ed61a9891a46ef8cee48e98685d4022328aea78cfbfc29e16f5915dc43276a1c01145b4b8ab4b204c86bf4fd365004cbdc0610d8fdc15d0687799358d507953de0fe26549e395c7b3e2a62385a9ad5193afdf359d1a2f7f8931cbce7a00bee2a2b44655276dd5595a3cdfd79d14ec099c1af8a04386572c8d46f16dd9f6a4804f6585f5e4cc2f825849fc99998720407d409e51ecf1482fd7babfe55a9e4e5a336e9772b461a3c700113a508360910ac955b90e6714b8a4a2faec88198d78c154467a99e51703774b024c62531a43f42565f3793eb8406fd2ac8d9224cce9faee3e9304595460560cd1cf39822da944099c025677f377990ac43b18deb9d23a3fa318e8f869f6aac62ff19990a462cef10d1cf6f3e65034a2e8773be3ca861a93d0168d20c14a794174064d74", + "03946de6e69777c8031482e9f36d28e8e84dd6354b0449fe5993c8290d58954939ca9321dd6758dc2fe191b04c911b037f7baa9bbd41d580a28cea7186f1349c390d5ca8d9d037f23ab7b9", + "042f71836f900421c80d7bddfc90925220748c4011f17463e7c42fa16b699f7bf74c99d1ecbf2bbf46b6535ce02f48b02e249fb9ee2ccb4f0ac16098442c91f73c0ced829058bbe1a15c310eaaabfc6f20db2e01fb31fcd4dc35e0fe4455a95b47598efc76a4e0684476092661b0dbb484f1a660b3af5336a16108aed922da9b6b6fcebccb4e746db18f5aba117f532ce2ff1f0e2e0bad6fe94f0ff890dd52fed2bf0e79fc654fd15b3b5dc5e5b96f932700e5cdcad824e10b761dde9e5fc1376987633fd223672b22307e8c08bb675328d022291d160d38e7c8b3f41e830f690b9b351cd6cead88941698e94bc8fdc588b2655a57a8615425c17665ab171f651753ba6d233bedbb7640134f327ca1d31153b202fe5caf589dcec2906ef7bc1917d15577bdacd4624f8ad8cfc0b5dd463dda5287aefb2c88e3d60b58cc5429d3c5cfcb0db75770ef05d75a268170a83d9bbcfd8f8c279be60844238c011192d9b5a1ae189951b5a345b00d6a72ac1475792b8f738fe62362851afba8a2bed29b4d1e0f02a822", + "025ea63f3087c4e318c2463f20552a295934f3a6a63c9c53018a29a8bcb3f3f1cad68875db990837dab1a8f9848b29c0461bdd8dc970119612195b3d8f633eef25672170ef98f579367ee2" + }, + { /* i=1958 cDividendBits=3607 cDivisorBits=307 */ + "0cd0c3e2999a9391b5513f48a1d606f4de245181d7410c091e616b4f05b97c6f4dd44f1d0ad2b20ad7ac08408665aa7aa925072e8576884ea263bd280ff7273adf405b92affd7b5114e843096416d905c328f75b77f627242583e28d1064bfaf96fe88dcb162f9280c4a6f59de1ecb4851802e9823b74b6976d720104c5caac42ead60b506775df0a8c2823039da76ffc175e48e6c0598ddf404400934284b856cabdc7eebdf962dc6b711a4d3bc0c5d5398767d2f79b51084c3669d98a12ee9c24da563d517831597db81f75f10592222b8ae60b21fa10d1c9fb26d99411c3c61719cccef491fc95f9e17f21b8c4220bbcd00d5a68e81e433d9e1c190927a3ced993c9ad43871833979a2a9d7b8489866aacf66e56b248469f7bd629e7fbcecddee844beb16c7494260503bc216cdb3cbe2293ad76ed4ffa91c8ad49d64841b2aec83006c51bb05a46fcebf14d675e8efc222c466db37ce2be61e3dc33f481acb7ff0fb37e7dfd494810c0d750c87a153afca123d2ef522f916f7f1095241ad0d94b348eff81cf679ac0647cfa3c49f971f01fb13f3159c66fab37d181c153c488bff7abe3818ab352ca8e50e732af4eab5e14a9cc85f655e7eb4aabe4c255e1c350f", + "025ce730f70954204df5e5d9ddb6e82224c6d0a70c1e04c3c8d217fe4a7303ff09fb439e5d5074", + "056c726ef35e9624e2219b6eae659983ee1609bd3f356c6ccdf785587a70d01eb7549d5ad43bd49cbefdee1725b6fd2d31eec4a7341afd100c81c143708904e4488d282eedb4f117491e5fe88dbf8347aed82dd365103a291a7c971b761a3275d5e2e1100c24aef396381331a0ebc6bc8ce0dcdff52a8c221ee893428310b43839259b6dbb88755f15e6136c3732a0583668edc14c8166d407588acc253b3115a653deeb9bbe505dedd4b93ed2db543d5070799db3b6f1464832dbaee69efc4af83d435379fff466552286a3154847f1871d7ad0f488712a925afe5a740fdbf35c5b62d3732ed20dc1400a8365cc7951baf7708ee5906ee69c7d486abc75d194d4165541d2a27c6c2b09f382cd34e77ebb5b770ebf9dddf76dc6d5518a53767913fe921e233058b6f41e7e36423dfb7b9d170406f12d48e3612e1ead8a9991a4cddaffb0c033efcad02baec843c82a6049f834ad5b76e4d78604c8f72b4aa4013db69c1d2b4c67631877aec4aeddc173dc356407866b41db61ad2bcef86ed25263a0dcdf48ae01f7545b28a19b29b6a53f3a2fe1ed6b26014354a3243a", + "023efa881aef8532c5b47c1649528cd5ed054994dc0d483d117ecbbee13df3122ce66213cbaac7" + }, + { /* i=1959 cDividendBits=3830 cDivisorBits=3592 */ + "326f34c050b5ff1ead806fe66a902c0192fa1cac25b7eaf6c1a4eb310fb530e5d6652a10ea961b535efd7638fab7dc5b1763994d3167b6da6f662f7be32d170d58668f46b28b0a96a6b19388239683a9ad21f32a0bfb169a47a588dade2bdef1714c8d1aa82edea73ccbab48456c6517a9e6c47b3dccd685c690d43c7356afc5a33c87ebfbf7374f96b8422d9db418d5a5b06537d8ef16af4f52f06c7501504e4d2e09ebf5bc222106878ae16204ec58ae0847e21d6d362c5b87b49c5c821b447f5a7e570a8c3bcba32a01e31b1da1fe059430c60847040d97e6d6763e93fe1ae10f7d7075bb90887e814b8286338aefd2835a76bdc45ce49c4e6b437570bc57b13241dcc0f4bceeb5f3b0c8a538e081477b82c7304aa20789f354ccd7a3d7551164ed88362717f0be123cb4acd38166bd2c4a21575617243678ba5b209b7d9eb69dd67ff861ac8f1737f722e1d943c37052dd18054bd0bc25873721d428eee37d956169494bfced738045e21eedd2e32c18e1eac1f948e359eacd43f2942cbc2c209d41015a23b5323afe9459346dd8780adcdd9d3ca9e6a964cb3723136cd7b6f1edc7343b9a3ebdc1da6c5621179d9be791fd53a887a9a91bedececc9a9ae34a0bcef7566d9a00723d5564f5f18542dc2e5dfa32b00961be8c76dc89a47", + "a9b2c56d565a139a54e448f016186814d8a1b129eebc4ec77b18adb723e41368b3042fefb5f9d45c678d278e12d2025056d82e7faca0e784c1b774bb178cd176cc70c8a1e6f27e133ef1828f1546ea5806f6acc38e14f07a3e02908296f3ef49a0110ffeccc268724f15544a7850fd55cbe3f57a09db6633b396b49f0621d0c54c5fafc03150883c0ffd60faf334e48841ff9adf9e245eb7a70cfceb1ad6af9ba05472a700435a8ad9d68427f994c6d14f92ad4818bec1ff8a90154ba3b778ab497142cf33feb9240107020c9b8bbc57e999e02a77333958c75ebedfc5d2b0ec524edfb45e7b9c45f4560b5701b9deb697f57b6dcaff1835adefd565825f94dd6385a28b78a7c071f5dd9c747b193d5ca08eece4d971920da4116e01cee83a59baf030b7513290086f46a80698ab6e28779f45e3c9821a902575dc514f5fe545c05ea7976d2867e176dfa171c188652f49cf3c03b7da4e4e3950c86f478fe71b978f5194f38a107eb7ba1e8433f076dfa7392bb4b3ed3368df0f72134d3b00e19393ad399802c86de9f5726e1b01e24c05162fcc6d0c29d199792b9d9cc0ec284779d0122c3cb2eb39bc80d25499bc90aa1dfbb22e14389802fb9b2f0e3c2de677", + "4c15522ddb68dd06434cc1129b5f4746a453a425eb7cd1f866022213d711", + "7216970fdc9db2d7438d8a6658d7e896b3d60b9251b47b2d69ff2d46386b0faf4946cde403871386d3eedea39e67c094f2a8b745dfc3e1026752fc06b420049b9c434c83b06b09b4187908aa030f396a0d44031bc599d6b500184cd6b1539f5cf6c859bcec3fdab1dc035fb449f669be92fe0971b67e9a95e55152b9503cffae0d7523e2bd46161ef13fcb29f029cae2dd86361265d854597fd7055736d2a0f36ebe1f40ad2c7208fbd72fada6f37b849e66a1b189c230ae9d6c05703e361f3745cf32df8bef41afee0bf17b45d9c21b1c819d971cc2a9849601d40a6d75b40ec15728271348a47bc524b12b65171e24951cd8fb7298787af845954a1bafa0c3ade6d2531689643abf6825eedaa5b105e495ea5c187f7f9d72df6b7b5b28fbbc0e4b5da27fb4ae21e82475d747e43dca54dd516d06be98abed212c1a21fac72da5a55507d179bd6096a4f34e45f7d65fe610197044d650cbf0228c0c61df722610adda2b35ff89a38975fe2675f7d45b9e1d46c3985912aaf9741ad7b8085c19b0b185657f24bbf251292e782c277efbe52d325e47d5611f67174bc4eb15ce2c37341b3cc33835945a4822ed3735066925055e7b727db39a60fdc50d58f9595b60" + }, + { /* i=1960 cDividendBits=1125 cDivisorBits=64 */ + "07f59ba12d5b74172e80479ea83b58a0e7b389ac7e5148c27971065097ec7ee2c8c2a1c027d1ec149d975ddead4c67089f2142f204fdc46fd62c0eab2d380ffa0c0cd0885937856d92b0dd63d5e2cdd06480681c2c9eca87b26e05df8e3d7bf497bc6e408faea362a284027fc99d8a4fa329ea7914389f9d9915d00f456dd9c0c1a38cb68b5ef024dc5ba26a2c", + "76bdb4ac96431ec9", + "1128fc39a8dbb3b9791a03dd85450705dd884b1ad644d27a71bcce74ddcba10a52afaa7bb3678c65fcfabe8fa748c5c78f3b88698c552936cdf69ca65cf0e4e645feda9db33447c1129b1f7e6d1b0ff35d2268a3e4fad46ecef18ac016c0f02212a4b1d82f86d02512bc726a1efe0011e5d79ec3bfcc15f540f7ecb77d90fea289154001b4", + "518ab10d4211fbd8" + }, + { /* i=1961 cDividendBits=1937 cDivisorBits=187 */ + "0187be6d8ca87f1faabfe9d7461b3d8ce3754e6df74cdb4f27c19b8da5b4a67dda5ca04edc8353e68b39fdbe5960ad79e774720fcd76a4a515778842e13c2c778309f2901fa12feb3d7f52af5f296f25f7428ff6e515b000b633c73c1018b54e39a719640922a63aa5c4f81a6304c641243e793143c5987260ad52321202e780d557205d1a67558df826970346fea6f12461850ff217c5433b22b826a8de09d31e06431dccb505f24ea30c4989fe26fad369de73867a8cb3cb43b2827b7243a876d1cc96c18be12fbb6f25ff7e31b5729098a7f2c6864717f3fd18abda6ac16f15509708b662ccd15d984e3865c5d96ba916a8", + "05e01e9baef90d27a02939fb13d580861768245dfaac94ee", + "42acac62c7e2457c3cc9f48917a72cfb7b2c3712ca504b883984fb72539bdcad6a263305469b57e701c150d760123ed9f49ac158834389292c0749048aace5a679db0e80c51d344ce150ff9eb7ae76bfa579455d56d82db78394d84c161bf5170b19cafeeffe39fb4d76c6d570ef3621fabd47a7c5447c5c1797254c8629850c33d58e5a3c3c4dc6b1203c91162c796c320218801d607e90b83af2f180759fcf111e55da78108b506fca2ee781444735fdec92bdb8ed79f357604ed07e943ffd7e491288585aa73db06de224eecdc1857787e22d3ef31f0a189e72", + "02fe8293dd5cba52d724de75b9ffb28d5d1162780493e0ac" + }, + { /* i=1962 cDividendBits=2785 cDivisorBits=815 */ + "05ac4aecaab82a67592ec7fb59535054dac6def5ef204ec3b801f3e0306152c1b63b17cbdb74416d16cc5b74e43412a60dc638d627e62ff4ec930e90a8d2f32cdb62467e0687b2b20186cc931eefa858c1fac6667cbd8416d8e20ab086eb827b9dc57053475e780dbab9bc7c760eb5228339824fe54610aad26822ca72255b3fcf52366630104e8aa6b488092fde29f934e9f5bdbc625ff3633dd97292c99329cc19841580538b316b7f4077d39d4b34149d808a73b4babc353b6bd3cca02e7e38dcf72ab745359593b78e6bfbda47f6069d75e5034959f17839735b6ef67ccf6ddcf9305f1c69ed90cee7c25772acc144ad3896622a248a3cd20978392672db20a875a72f853c33400549670ef5342de17c803fef44719825b8c5cd866d2259eaa8a2cdf72e99197d437c7ca08469af6cb7dc5b1a87a4cb9b049b7286cb72a917a895b7c3c9c20816dc3dc389449ce8cad50eedca0ad85619298223", + "5d4cb77eb0c749d159f531c39008f326b19750d8584610c1161119fed18e766c632c5a17ad512a0f1f2ecb6857218eeef72ef542e9fcb26669459ed65c872411be39be0ca00439c2249ceac41685bf4a8824ccfe6fc72605b6dd8f0238cf6c286a76dca301b5", + "0f90de4e3308373808547db45bd59b990586f1facc68c6f383c84165f541330ded43922ec115673f55681e6b02a8ba2c5aff1e1643e8b56a04c07aea3212a3defcca4249d41e1e4f2d4013ef9905cb82a30d10ef615816222fc3cbda4b0c183bf612f97545f4c4869640a1ebc950c406219b9a17f528b9ea3dbe717a68189e6c832eb2f4783db668dbdcd2beb314963745d146f6d4555150979a70e3c6c4f6dfb58b19d28ffae91458fb491b2af4bf2743198627577906bbdf9bc09929de39e682a276664ee29cd73abc2f6fdb85be3a20eabea6feb3eba688f86bbd17f66b47e311b37317bf2ca404fe1be1463e906de68e0023c021", + "506e3bbf46d9c0291f77656f05e3f7e1498308666da53630dd49fdeebae5c9a60fc2fb8060e571f72aba1e7f5f80235842ceb8a4793626eb0a6db6398d518047dca54778588e7db7f9d22f093b60439dcd80a11074cf254fbf50d4c3ff2f9ab73eda2b1f89ce" + }, + { /* i=1963 cDividendBits=187 cDivisorBits=90 */ + "042fef5fbcd725f4b22e2ba5645482cbe02b58a207033458", + "01e3443dc34e21e008b97863", + "0237d59a3cd42113e99c2f6b63", + "92e3eebdd810d4b3cb450f" + }, + { /* i=1964 cDividendBits=769 cDivisorBits=60 */ + "01eee94792cf02acdf59f0ecee388e4dad42267ef8da3fabe3786298b60fbc12221e42d0eda7f110af580a922dab88fc20a511c9b4380a86bc8d43691cc87211a90af44f64d99b8c823926d35bcf2179903ed3baa31c48ed621b1d8418ed62fa97", + "019a0569fd6afe33", + "01350077071f7fada6e9cde366aa54132a6812a5eaa31701b3684f6d4c9d94deed40f3edab83f479b31ca1b0171a61fbf41e182d79cf742db1b5554d60c9af0788b49c59693af7b22c9b5487430d921fe112a319e73ecbcb7479", + "988d67a730b87c" + }, + { /* i=1965 cDividendBits=592 cDivisorBits=487 */ + "9d09a0c9eabf75c3cecdc0a72c5d7b466c30eb3de794a7106f4ab44d7466d8346fa66f867de3acb8dd4a8cdfe086889c8601e5304b80fc35fe803bc041d8a110e9e9d45241ca202a2791", + "55ffdec1867020ee1100ba8604bde3fb4591ad4fb804498aae58d2a0a0e480544d25f61a2bc6bd1c05725e103260e52ae601adcc6012e81f0ac2ac20bf", + "01d376ab24996088aae8889a1109", + "31c0014ef1d7885387b6fa7f745fe8280fb9cdf142966d03baf361fb83eb161e2fdcad42871f179770711d750d5039daa4c6cafc409d006372af0a51da" + }, + { /* i=1966 cDividendBits=1332 cDivisorBits=1273 */ + "0b24cd2d4e7a5ae543fdf1cc76d4d76c7f4780463c7c746cf810f58963efeb256feab2f504a10c8ac15809d716ea376cf6fbb1072b825b7b9009e89c016a85238c034dbf7434edd9736136d55dba45179e7399c5bcf3cc2586f56a9731760185b06ce4de579508bb9ca122fc737e492ca82cdf3a0dbaf3a7237413dc2e6fb994ef2658086f53308b4d61ad73f209ecb868c07d462c2b380a35cad996e20728f3a39ab5cd803abb", + "01373f44145c9a95aaced51a80251f2f451e620b456ac114ce57a5f4fd7810f793cbe4aa5b57c0db741fe9a929d620fe0e9c4829a0008314097d572c8b676d25e589d776f6eb001ffa9ced9a94dc9f9fcbeec1081afb45ffcf5d7a5e95127b77f4dbed8a8e35f45ef3aa3dca1650c6d484e87851c7c96eba5fb72b1bafa54844a796f3d32aac955d50967f1b51e83934aac94d8c5a64a825d3e8f2f056e1e1b1", + "092a6c14575d3439", + "73b24bf01c82f181bd7e341bf2f3108c23a70f3ec0d8c3e8b82118c31cc619bdacff8c37e55a9bc3e1fa56846cac1432a68f35f6fc01dffef5be6a8d9d2e8b76648ad50222dfcd0db45b12e877f7c1c59f70f423f03ebad92d5fc68c3acab3db467c6f3830d65c4d78a46252f23eae07f098f919643aac4616897e9041e7184c4f7f165226591c2466710c4306a3cacf78eb69f06230152fb00ff66f100652" + }, + { /* i=1967 cDividendBits=3037 cDivisorBits=409 */ + "4672f0592fb687b7422863d4f8a1b98e269ea67f3b9a12e72da1cad2c4b46f6d228c8028c2aaeb0707e66aadc7b8808ee05c09b848c3781c1355fba36ca260ec2bcf83bc7a0f8e663c447459d6f2a0676e1e6025fbfa7cfaa3ce750f2d7f0d094255aca88c65d84d95122f952c429d804e4ec8607d4b1b4a791f7ef3be3899759e310330ab9835911b13b870be5b0f0399cbd13c0c69646727054081adc55f5f55790eeb09f40b37c6735d955689b0e8d72a0865447f86d406411514f53be619651eea465b91f9fb885e7ed743425f7608f338d584f1449d1e878b7c20b6b540adc9cd0228b837b856dfdb95656e28b7f73b64ee62fc9b078434abdd58690263c046f37de34a475a89594c11f159c98aefbfa2713db1003e8943c479bb41d38a853446ab3d42038c62830e1f470e72f2c5a74f6d73813bcf5723cfd8a7c73ce90f815e0203250f7fa57d30a872b4bb508aa4a50a6981c28a9ca5246d12632c1d8d6dc1a8768eaf427d7509482ca8477cd6fe39e7f84cd0a715dd18", + "660747f1f571f40a018f87fb8662a97143d63978e55f5cfccab46e3f3e3f6b0675ff6a7c108c4c82d4d087a7d3828fac12f613", + "b0c38ada933d186f1f0e23f73b8f8a2ca6c11716da2da2292cd45ff56aa8226297a121d5c01a96fc53008fa8a9e09c83a66d53d2b39ebd85c487d852e7cd01e2c82f8607f972754187641548a591753149c58a972cd05ac85c84e4d7a4c7d89445eb5fc8bfb128d77ff5e714aab092aaf1300087d7f963916ce566ce6bca6fb9bc5f2881fc833b236b05e7ab4203e880040e9957131705d2791e12f542aaa657ae0fe924ae2ef5df27b6229ea2cf224f226df0460249057c54bd7451233f4fc8fdac40dd947a65bcf0c76125833952c87117200bc1ab712536833fcf8a79b656e0b06e83ed09f58738b4111343c464b3b04c64b9ffc9de6328b9a270841ec441667cce8cfc6cda448609e7ca02698947469587ec1d072f13e0aab54c627f019be2c27916f4cbecbfec07be8b662f251a92dfee17d07c65724c738b04c8bed9d693b7fb78f74e2fdf", + "65c6957e9bdc714dc05c3ab7be7813af956d2ac55159b63d28e9ce7c75947fc884fabbc3ea69b0c1b576086a377df6f89a058b" + }, + { /* i=1968 cDividendBits=2831 cDivisorBits=604 */ + "2d7a612754becd48712f969ec73d237f7b8f64ecba28c77f97f0a436a205ffa3a1e94fd2afd3067fdac62dfcd03ac62a6b8048eea5721462bb8e8eb2d78dc523d1f184d18ee82e76f108b71d9bf6e2a857605787ec624fec5b5529489d08edbe78f2f7a19c5cfbe62d42e388bc1f70b8599c3eecd4fd3f1214f857cd931512a954550d454f465e5f9086ee9080c6c4ee604a437a98ad724d742932700b3c883349065d84eec112456c3908939a2c1a82abf64442c3748015f5613150ce06e1deaea2f5b729f9445880304cbede002c39ea2f3f9ad53d515297a851816a4e459f60043b4e0fe8bb242695795d433cc0188f34cca6e0e2e927804ad886882a56161eef6a6471e965eda959c824f02368b7e56f3ed105c528c8dc1ed7a2a886cd4866fdd95ab4b316ca530ed004b1420e46e86d2c56eb6bb91e9c8b19fcd82c7e89625dd4af8ad573d47b7c1ceca5f65a39d2ae2e75b896202b3ec067b380ca6f131808", + "0816262e66c432322df128de401ae691ffb3d66bcc65863ff094b2bfbf9cb03e36c12e2d60e2983487a72acec2adfef767d6d7f64ad882db9b16ebff9a5981e28ab5aa6f520086a61c488e", + "059fba0df1d05f0dc47298d1799332407a755f912311395745675abfe45f41a0e9ffeeee05152426901ef33136efd62d71de55ff02cd32ce7d3bff93d49698afea54aefdc18323620ccf0f08e1f7b5eea22de8bff58ca67c8c5cb174c24c2301435e07cd6b8e1cf38db82cbd91200669580ce0aef95e45c1e13cc6ff33982fc1fe5f0ed1e5b09f35a51b4b6bf22882a33f75cfa5293671d0cbca068f80edb7241b65812ace457a1c9b28e2946e7ec9156e6686f11da2fb5b19524cf25526fa85849f7889b3f452ad9e9fd838d9ce7ffcc303e08eba11800975744386004e73ed4cdae41979b21b320e849a7af4109b62ea80dec47824e873db352cf9f5a73678d2cbbad664a9d3c9a2fb04a2ddca11ba8106ec1e2adbb27f", + "0703330a57a0623d0424f1834f8702dcec6db8084b9fe60d2773643053dd72b067c0f68f4d0ad66f5684f9567080b05c05d8b775c62e899d81cbf914092ab6039b7340d3af77c0ff1e5d96" + }, + { /* i=1969 cDividendBits=1733 cDivisorBits=422 */ + "f3e78084f7946765c7c554519a3b33cd1bd1c0bdab1bfd0493623a7cb0df7ce0d6226536eb8c5630d874d32ffdc2d9d7b81ae9894ffbc282dfabc4b2968234859d09e644b0b96bc3e42c1b8cce284b0e643bca391c81e100c95ff0f593acf70f34b458d9e346666fb094530e304c495db08ebad108e2b74fee35d7c5e3b7aaf73aca30f975434c2178cf9357e220523ea7d286ee84ab2a020cc47d4d67195308fd3bbefe981e7dc64d750c3db922138091982c832c8f45d85f7c3e5a177aafd6131c9c666996e8e59a5cc248a1d4641b0ad29abac79b7e2e", + "1a53611c7472d0df332147d848566e8e2a3334a10992892069a1ef161ea1781d88860c676e5751f36d79f1185db92d36337b8028f1", + "0943cecc4c3aa473167b507c3fed7d219fdf9129047b8060a8028e07ca09187bbd08a22ca37549a260b375a9f86b2aa8ca1e62ddf0b878cbc1c3bbe237b2da01c5c7a6f898150b226adbc40bea6c870d754c10dbf90ce6547e388d87a17a6c435ab7009c4143fff580de17415ad9a8b01ae04b8eba29c99a4db07e7b58e1628a5fd23e9c6b315ce5299bd42919004157e3aa8fa2e160c964fb93ec806a07e9946ccfb38f", + "0385f6791b1d03fe6026e107d5b91a82794e221a535fb9ca0bc8f6f8203763577c7864f1fb31ce65c4fdfd29b97dfe626367851c8f" + }, + { /* i=1970 cDividendBits=2089 cDivisorBits=392 */ + "2ca53f1927131483043c59416f7104f41a3e7428c5163009c4832ff77ae2b0642aea948b15e13a1341eccd9690914d94dbc80337b076ac5d9e602a57c150ba83091c1625a177aa1a3f72edc2b9ce3742c3c0d55cb945926c84a58b0bc4836cd08641be6dfbe23467d05462db9136eb05cca2fb65ab3cc82b212ec3af0b7996f9d443bba740ff799957ee16402183ed11700529134f9d6fad2b2350f5edac5039ffb80273c41965370f6199e41a0ec98a9fedd0edf48702e7dfe5b9213f971fa6d357baf998b2c52441230c8deead37fa381420e0fc95428c2c142af5a227a9c35ca77f1461654367d2a791ddec09c26e12e36f3afe66329e322b1b5b263f40ac73f7174fc6", + "62db12bef286c6010150d2bc09d8abdb06a15aecdb185eb517b67561f14a4f37243b6939e3116240c0490177f1c5dbcb59", + "739d8a16bfde35dd940e16ab1ad4f1db1f93a84dfdf6646fa965610495ef3afafcb51d53102548d181225b913ca62dc5216d8e1064a0915fc3e6bb2f63ce83b9b4049adb8ea2d29894d0d4f78299d51c265363c4b959cca9ec3479328806c76e4c361fcb02f536647f77dae0b34b14a04684c69bc52ceccfcf25e12f635a7f6744cbc433d017fcf9a070d1bb68862f428cdd8c246bb8c80fdb47d6c539d0bb097ebae31d52231349980ee024f1f99f677e33b4039615e9a0ed42951b28e02c9e9a125d1960fbb11cb49f86b481251bb335d72350", + "0e8a375d87202214896b7f2451a14573e87ad75a998640928e1017f627417b796718fe9958b35cee47ad62e3ece0db98f6" + }, + { /* i=1971 cDividendBits=370 cDivisorBits=272 */ + "03c5318d880bb1f06d204d0cf16603f1da6a91f7dc12e4fdc82f3aadf57060774c80dc1ce9688f192645c843a35c2c", + "14bd9c2adb76afd9d3a63d622e7238973d49b30dc9c61e1fc7907603c79dd679d619", + "2e894a4f945f5064be4701a323", + "036b9760b24ac4fc5a811ca43b63b09e4d44a0403bd309c719630b90303b98902bc1" + }, + { /* i=1972 cDividendBits=312 cDivisorBits=217 */ + "4a5cc5fe7870ee79ddf6dd0d1b7fb57f13b01e6eef1856cc50887962637d58256bcfaa419f04fb", + "f792dbfda9a12b33f6565149c181e645a8327c476e74fc90caeadd", + "4ce4b3ce5707f8caf62d6270", + "74d847670ca44220eab9b4ef9b0604a40db508fe1915ff9416aa4b" + }, + { /* i=1973 cDividendBits=2933 cDivisorBits=1375 */ + "0439d734c6310c75b6863cfae0fa14a6dd44bae2ecb27529ba54d1d578e3c9179bad74cfae62439ccfa2b1766aadc7e19b95d91fc373c648cbc9bf34d77eabd29fcec9da416f0737caa7a591033793f9796352db9f784b6dd17d1374ca3e195230e34307c5f98319ada7f13721c47e98ecf3fbd1ed29f0e7bb955cbfd65af07ead4100a62e20125b0da5477688c03ab2a14ad611af9ac495e1cb4f54bec3feb04ca1d769be7c7f1eb3cf22a274761229525f5e89977765b3a5eecf70c56bf3e0677525084252c6f9af0f67cdb5f2ec304ebf9ac317755cdc16d62bb4fc666be486279c4ae6ecaadc4f72fc031dd507e67768ac27d4a6ee613cafdeaaac85b20b8360817eaafbd8240daade3fa54e80ee8fdce4d6684f7229d5ec594092b461323daad7eb9c21114256ffbc3de606f85187bb7ddda3f51bc65d890580c47eba02a7e7b51c1cd37f70a6b6b5fd26147d46b0d9168f8a90b618949c466cceb89a72c9c59e4494fe8f49a8d84c132f53d2", + "6189e3c0e49f26bf259fa70edd7a6c19a11b8e665c127ca7e9c5b0cfb54bd583ce0638a9d5bc35debe4469ce48be5e5750026d23ea0a1794fba0681fbce35a0a7a50500919402c1d33777544efe69491ed06977d9231bd6ae4c4f27fe5d459318f9762616e730392b2cdb7a4f053258f339e224700a0a23716b3b483621572acbb6c2d8d68dd022fadd5416edaa7944fdc5d7c1f0670d1b6efda9701c3f3b83d4b6b0da38ac1bbdf53f76e91", + "0b176671137e1b87c88670b589c50e62a672aa8d8283eeaa35226e8f7187b55b383f2d295886af0b0aaba32a6b09e2821fa5f92b480df03a533d308e7e8a0b57b5ddb8dfa94898883ef2175330a5fd7ffd31e196242901d3e2c1376567ec4995245e4748a12c6b8d5be08fe6050a7217ad719a01abed010304ac393026a024500a8d2637af7e4bf8e8443cd90cd5180d74bba09b869a9338db3be2d4ec6bbbcc51ed2fe1399a79444c206808d29c9260e49397b5355b2f8383d470d4a48adbef03b8b2", + "55f178d1d3addb7f196ea0fc554057c31de44cc9de94231867dae9c086a802febfd977454c0235cbb23a8c36447dac9e144915e8341a1fc88cffd62e0096d0d346a3cb7a227ff5ed2f84aec29d0b52c520d713a5fd82426a89f050a51fd2afaca70a0189910ec774405d6a250616c27a4a615f4811b25cbab7332df07b258fb04a89d8d77b8016e68ce27f2f88e50da03c9b5b9b71edce806a6fc732e7d4115a3042379fbdbff67f2ef93b00" + }, + { /* i=1974 cDividendBits=2936 cDivisorBits=1039 */ + "6ee0380c57eb27cfd9a9b726acce0d0303770a27b260b58777faa01f349b6068c0c83a213438fe0ae1e46f636707553862910f8f66befc68203b109d33ba272ad6d47edeaadc8db5be54a19eb518c302144f43a9e6e7291d1010150f6b800988f479616661a28b4743fdca141aa6cbe7fb572fdf73b6fe460651fc224af2556473dac673e8e6e7db910221a9f1c047a5af7b563ac33969872858bd4dd9837fb82c559ed529166945f95559468e9f400666c4e59a758b6f7450b9b94650e2c0f31a083ce08d39e1a864eca08b303146170f6e2c4783edbb6bdd8117f7b4edecf15d3280e6ca453209d8d23e126f2e71e30c15d22f7309ee9169d18000c2a076eed1671bf32b9fd06594ef894194050dec1013fa561c72fb5ffea3398b9c7b3ef4f40842bc817f3162176ccaa28de9806cbb77dcef3d6965158b7bce574876e17a178422af07244821ab6536d07ce89c324f50b0acacec0d8aa174ba8dc2f2e0963570de222f84d93d7f6132c10d8e37", + "28e6d7c2b449e68a831e8d166587bedd0d66b9feb50440f2cba4073f10c7dff12ea89f8be6010523184f486d4a3f9133081f44415e906dcf2b1152c91c693b3401f4e8ba2267070542d632a57a1469d0689138cbfc39d9e51c4d44b3228ac1e930eff0f0f5d6d26b1f3648d3cc998c9bb80b655366ba66b0fe874bb3b4ec02eed00b", + "02b5f619fcd7b928330fe2fc37b6b16599aa9c2aa711a30be1007b562413737f83c91f597ee16558a7fe1db77b321eab870d83bec545507fe500de3cfb1e41a49e3585796ad9bd4d29589349e8a6e2be0b03b3c134a2c796214169a0f39bed244410ed7d18b7af80d6d11b906a2f38c91e4763ccb2de32780e25f2781e382d028ae7fa34cfc1944c2bb53417d97d38436939606b74d9616dbc2aad24f98219d17b26946d2a232fda5b198c5a43f7f1d3db61d1d3c9245777b73778eff6234a278b472fed9e4445905130cb072c5df5bd55b0f49874b13d3cdfb20b0fedafd5cf2e97be1ded2a024e5c27396bed80", + "16f2bb09f74beeb2208113e7da8e71b6eb10f891c934ae63104623ae29e243c3811abc10397d984b79aeab6ac533044093fee6af427a0aa07f384ee27b80a7a2cde8a935dee4aa7b9578575f8c7133cdf91d375399e05516ded2400b40445fd19e20a412938a1d195542e9ea77dd2580960cf259de940949e4851b5a60a9cb7259b7" + }, + { /* i=1975 cDividendBits=669 cDivisorBits=113 */ + "17048c21538cd225c562ebc34c5c6680eba71bd490481de9add08784e310d501788da5db962f57a91f2c2f9d93521dddb88bfa705fd7b6e84e9cca40b6c06fa9bd7f6b2488fa86ee18acab69219236ff26d2019b", + "013e704f15b5964c39c4019a269408", + "12812691bbb5710d7f611d31791e94448e673453cbf706a6519018faefd1daa44753b7a5367cb23e90a2333e591c35b82e8f039380601518a6a53e9988bfb5bfcd82d81c875d", + "35a3fd97913ee9e22cf0ddde02b3" + }, + { /* i=1976 cDividendBits=3890 cDivisorBits=3310 */ + "018c93f246ada8193c7159e5bb0541a00a8d48438be8ee6d7012343ddfbd7962c21ae1eb561a9f98cb619615b64016207a8c418b8e051b5d327af22566e2a6c03cc5b8cb98fe2c0f2071b05e09ccaf9547f182662e6e33a1231ab67efbd00a1719977bd8a72342fbe6dcafa7a2d6e470905fd027fe08ffcf40a24d17aa42cfdd7a8139649d9322616e4c43a6acb96e9ae2154ec930379595d75a67fd0f90b8db24ace90e47a18cca0fd9c4efab7286ca40cfbe9e21f77c2b6dd51440c79d0e639f410533e75a261b36ff1fc5ab41d98a20b42d040339f97f42bb4105b86e42f5934c2b1c7a41cc20fdb3abb9ad72813dfae5a1be9c566720da276113506a33aa80beefadcf6c52defdff2c7d4e4fd6aa72acca4ecf6f62cff8332dc579f89ff89aba3109a24ae1b38473042a260a522e56f3494335b88bd53b3ea205c2c6e8f382d942489963b8f74c3bdcfc7d3ea79415cb79f8f1ca76190d95ead2ed6e3bd4c171900d0c74924f64db8887dfae47a472bb86d02d392ab69a670592e7a9bd0c2bc66b8052dd39bb334d1aaded9921462f3348c437551bc25c0a15a102345bcc7cb5d0b53fb3b2e049a039e45580030b2538169b6e65cd348222ebfab6abf27dfc10abccdc2eb53adbf2f3c8e4500bfc4c7aa8a94982b2971147af1790ac482aba827ae802da38", + "3e06f4f865a1e9dd6624ed2013517433cdc646a3d0b98e743bcb522b7f5c00fb600b4a0765fa40a8fea8615f48775ae6e7615a10853618efb9b2960357995304e7e67675346abd4378ab023c52811eed70959472367133a3da98364569afd52640c442db80613c10a1359bfd7af849545935fd6d4aef5424d5a58166976fefe271b5427b467f6d1d8f074a32bc47d06b513322f03cc116ee894fd68e3a547f3a00218c59dc8c32d2df198dde00cdc72d3aad6351fef78aa6295b04aabdecf4ae4e5eeab9fe978bf4084fd4c4e0a328bd2c3c1404083578b357659f35dae93cc7a183d38cf0b68d435fdf03e4da04dd309fa842e49fa0b5d9c295c199d4f677893c74bf18e050454b6c97192f80bfdc3a4f1d5523d35672db9307c9bfcd0540f23b32a91c10bb562f221ddef65ce07a84e11b9881151c2d9149a7261e8f3fe553b650a4675dc9476ea3f0f95ccaa5e0dbd4424e63100231863308a2bdd102145acdc736067583654a637c572fd05e394823ca3f08cab4dcc587b36768077ec582bde975188408fe174d156b575a2a7ec8059c871e0d75d8fd2a2489d6535a", + "0664c3fdac7c8e6d6b287c61c970410c17efc8d55d5367785370471efc1b374672d8b53c39721b6de146214eced006f32d149d5c52d50dc77d82583ab7951deec097c9a7fda9a5adf7", + "3256afc3b5a220af1e64a2e8ff2c96ce084c2d9ebe028e8c0f63714f6b5f2bc257e20d215edb17a832223b43f668d5f368c336a884fdcee223d07c0bbccf71f9e49027d1c569c5a4adb7d87aba8fe4eb57753700f69b07b6a30673dcd20e45b5d74ec57b20c01178ba979dd40214bafcb523bb2455693d335c2c6f10eb2dd3e7975ffe1fc15e0fcfc7e0b5507d4065d5cc4edef91d3914c697205d6ffe721d24fa1f6386c8ceaf1e9d6b13a2adfb18f3106f662823a85c86f41c0f2a6c37e08f61fc62d25643d036c9720c8f71edf2681c2dde6ecdb12a4158a0b0355dd0398fdc5ea5ce94d47600304ba64782d11e0c74f701f183b541db2dccf6a5cbbbb102ef5634fd0387c7dc272d285de5d1a8f173172d25809038492e50617cab3250f9600d3c0e14aeb05fa66deb47a4e04d0ca8ae30f407fcc6e28c9ee73792473994f492e6d7b47c81887ac1171db2acb428ab110c99dd44402cb8de3d6eca3df74475c706e276b95751cd132f6a79181511132e0fc744b876eb66729e5c27096b7ff95cb26dcf4f1135136f7443b26755c05fc43f28bff9df96bdf7f0e29c62" + }, + { /* i=1977 cDividendBits=3867 cDivisorBits=1865 */ + "0163eeefc38e820606d5bec23b837ae1a65ad2991129ab10751b486dc934b15d657f9c8d0e602da84fbd1741d9143fe2629c37b544dc4a201f3fb69f77a398a10884cc76834408b899089dcf6ae276e882ff807c4dff35cc4f0adc746f629a91dabacbd90d3af3226339b4e6d625c186a8916537e79dbc2b16835cca1621d1578e7811c1465f0586c9185e3f8a01daadf7b8149f3f8c13dbdbfabe09c62b382184c5828b48c9a195d8fcb52a3232f15ab6cb8c1b3d6a3fcfdbf44e609ff52a7dc4bfc15d3502bd7cf9b6ff720b47ea63d848951ccba5e9056932c9ae92ff7f3fbc924ecbc4fc2e74f4f1fc1570d130d0506987676e42337ad6f478a7b504a2422bf40c30e0a43d25197d90388ea3333484d86f2d62e6736f98e5a211d10a2ae10dc06756e1d6093b32ef9a734d90a2666d18cce83cd0e60ff441fcb495df2636e9b23eb22d5bab10c20763001746f5c27ef634ff4154a0ef4a14c337721de4f49333b6c309eb48f23259dde4bce0ca2722725184652b5c87a2b42d89a09d129e20e198bca39b2110464466f7f284435607cde1af6c179ffdceb74844f798b59802d1310623857d75a0c90c1f71ff3249c07a0be9629171d60bf7f26a5419bc6ff05242e29319fb11993335950b1c0ef750c7fc4379461764fc36d824150dce52363b270e", + "01243e1e293bd5af3f1061f998f2bc2f1e4d7bdd5593e75bb2a6271f913812a4f9852ffeed8b1983a15138dd77db98ad1147415f0ae76e10930afad8fcd741931a0a354bf23ca8fe6e4e6c9b8397b2b90f691eb3771bd254e003c42000e309e68522b269a9c3d41d5c8cf1b9af0d32142fe8560c647c26244cd2205e2fea1393010607c00a527bd6b40d04d78941263cf723091404499503106a2cc41523a5dd756270d1f04ed15b9b32c7072d7653b229777074ebe0e8ea3db3e7c9b1b8e8956481e8535b70b5822eef36cea38de9e035e285fd5c4297d08420291f02bb38791d666c2a446e0a7aa057", + "0137cac450af00aa1ed68c052c2c73d4975f76f3a335724b1741cda62a09c3ea1e759eb04dfc91161138cc6d1949c1f91a3e6cff3e7cd5eee40dc05d365d92e446373af3f174aa96034d496946fc08d4adeea0273cc7e41feda38bf559b07b0361c8fe363ebffc3df614d4bbfaad6d99939243cfee44869b698327a63d0a51cd66d1d30e57303e5ebbd93a3606c7c73d5fea09361bccd38466ebbfa2ccdf14f0f27168ee620d55d86916b8dd1a2e1b53b823823bb00d2b14bfe3adbafa80c24383857a20558022c633b1cc6fb1220641d4f79ee28f195199051967a73991065f415507f14e40e639d3c353d2d9142efda5f25cd4fb190d489b0ccc", + "f093c9e9372b347d9bb2367d5b3539e5528df7dd9e038f5333b911cf9fa34af9ea5169412f00e47ccd9ded442dcb69536f5b4018dd675a55432c8ecad2fb5cbd78f9fffaf8d6c41b155e54938248db3a9a61635e59445e2d6e89f4dd2789fe3f99ae440f7ecd907c9218470dd7b3e1e5bf5487ca33666a7f1ec33a385dcf3929a00cae71a4983f8195776909ad609b075f8c362c453a37b9a0c9c9a3055109a29af07db229c093d974e5a27fa9464009e59a3cd2d4f796b980f34aac1b8d3f8ba3cad2e2136a87967d8d5e53291ef22b94215a8cdc6292fbd82cb62a7fd8c653b9c367a56190524dba" + }, + { /* i=1978 cDividendBits=652 cDivisorBits=606 */ + "02fd30aa4253f94297e89c686a03b80d3b9910ac6defd7786e89d1707495f85c4cbf0a1850e72a60722554e2b83a587a5d7b549a5ff9898ae08d930810a9274d85f1b0cea8168ee16a489e19110fe4baa0c2", + "1ad378048dc7e083d5a22b39750523953fe772f19426476db3bd3cd87f56687ea18f6db65a469b7a1474b5ed00a851a4a53e7fd97b13542c3c7941d69eee6b1831772de61e95483f4fceb13b", + "1c862e423c9e", + "04c90b9f206fd22093690be0e17ad5dd60ee68ee80c8c9c7fdf31a463f8558ddcef14c2992bac12e1f8d60bb82bedb3e537ee59a846e6e5e9aa21172d60786ca93b3b3c05ecab343e6696a58" + }, + { /* i=1979 cDividendBits=2350 cDivisorBits=696 */ + "02b4e91f2f9e36d935afbb5a9aac8668584554ec0bfd8cbd68c818dbc1b0fffc474a89968b38d8041db5395d4e98e71497df86fae1acdcafb74a2f70c36bd905385247908e79ddbd4b90841316d99f9f7771b2078050483f20f8f1433299a47b78184f0808483c22ac33e43d9f39aaf1690f16a70d65ba5e51a658861430477eb06f5be69593af6b0bbb119b2960a2e77d78fe965a215244b412c9558b8b1f67ac2757bc2473b27840f11cd2261dd282aa9ab5a8eb975af38d9f142e4fd945fad15b04c5b1165512130223b3a163f8b996989873e26cc57d079ad3244cd631f5457cd9174b571ba46bd8e43e06d294bff8c8fbade49584c309c1c0b1796c90ed6b4ce64a5ab22793d65bc8141fdc177c595c7073b5dc0c1fac64b79e12cc3467db0644be1995", + "e3299d3f5ac51de47be3ef25e83da7b5d4c8ea1d6cbb2f1a727acabbab40b8ca81d6fd169a3444f33e709d0af4521f470b672ea1f001481478f51bfc6b48650c2e88ed3ed70a8b89ffeb506d0669b7a6448cba0f0a98e9", + "030cdf816624c973afb7b90f18e006dd5f0c3d0cfc582bb2f28b4222ab4de8043be4d2bfb6319434ca898bba0c10c0fd7be0002f8f213dd42dbe373ac68e8ef71fa6df50e50327fce194a4415e354a233b09231b2212c4ae12edb2fd80955798ef42573e67db033f3c16cff5316402ea2d1ccd9b9105da4f625aa4cfeabdd48f635a26cb5c821d31e54d7c7db5e77a7c014583772b1f81955b87c0421921e44ec7eb4aad91dfcbd5a70007405a8851d036e08ad4608aede0c33182d7d9c43b70c2d79d8a22d2df5917ca789c69ccd0", + "90151f752dac5b75af19dff712891410c9ffdac993a10c8cb3360256bf7ec074654b5c5238f314c5c193a5bcf38c9570313059d531eadda6e6cd8b843df74bf443128f34149965f50f259bb0c9b80e3b88181ee6b73045" + }, + { /* i=1980 cDividendBits=981 cDivisorBits=193 */ + "0c6554fd3883d6b052e478b18c552821389e8b5468a9b12807317ed356c2612238927b4cd57881d16351241123447749fd761f8e631424306ba6716bd9c2c6974b841969b881a8463b5598a09d234b1f06ad7e4d9432d3356cc563d8c28fa6836d43af8a8059165710c015075fb5bc57f2c651ae1f629c13975631", + "0123d2ca1e1bfbda211aacf1c29eb05f8f59fa986b98a8728b", + "0adfc86deb92fa513885731b3233d618b167fda48fe7a35549fd2b4a80e8240daf57b5eafce28bbe639fc53000a1d0459ae74af7004b292e7a66e418af0c44a4d3a59e00d18cd3fcff065a489fff4364a02627034922b685ea809e80342a8c83287432", + "2df9c12d474495b0090e160db53b6d3bcb095d78e811fb0b" + }, + { /* i=1981 cDividendBits=3207 cDivisorBits=2512 */ + "15dfa83e1c58ca92e7995fd4da0def236a915740a46e207619a1bab035ab93ca2362805586607b16b41e1f4878e561fddee669a30a37d0830f57d604a031879fbfd4582f46b2eab2f1a77e9be3b4a0a032cecd8f0d1c8f7b2aa85054344a9c336f8d91f1f58e25ccec130c45df8e44289905fccbbf43c576dafadcb70d523df90fea2e45a5336813ef78893f6d99eb8f7d8b6ab8c18cc07e1146f1097bb3fb373a1bebccb118145bc4e2e6f652d5bbeb870b3c4d1e978304fa3ff230bb867f27551caf1af0fd021805b88b35ffbfa8b78c3e0375bb19448b22e156fdfd6ad9713c5019729aa9c72f9986be77be507460b11025a213b55f6128303dd208cebfa669839304ea1f3c8212f7652579e7d4554e6db41b9ee33bbaae264b121a7e4c6746dd43c10f63aa136d95e7705630ba032942f6eac82894011583191fa076481416df3a5a73090de4de4bcbae6958ef8758d1b7f4bd2262fa7e23c366d236342a43eb57d2a1e7f21a3aa8890f7b489a52162c8250bc4f29f76b2251826889b8986057874aeb76f1150b967937bc37506852", + "9d544089405d63f5a9a4b070a98e57006bafd369f7405eb2a349fce564689587d13f37d98c250171029bf969bb0f35bb8fe0e422e666424783548c50b53f467d58fcfef0a5f844bface248ad0371d64b09ad507ff30c6796bf1aea63d77b730c933ed4d3b4a555a4ad38450f9a268c60da70f135342c75fedd9cae4d17afa22c1b91953d6df6b20d2005a9422ca88e2fc37c4f0ff10aebc045c26724895217f5b66124da335fcfe28deca89e7a283874d64749834b82cd1b8a42612acaffac9a6d50b4bc1c5500794e57a61b7a210172da2fb4f6521fcc883304dc7e325174a73bdf81542d14fccfa8b16f5ee161aec10e44e62b1f9b1e0d3983550025cbe8fc769fc63a9dcca3c2f3a443902eb972f73377f78e74b7a51c19725b14f50f2349b46864217981b5bb0389c131967cfafa06d2be78d87760c822cc", + "23978d1d15f7b841f994c0a9dbd7ca66c15dd7768edc60fee8ccf3791c9cc23bbef58503d93146ad34d252fb4b493d899706b17f30c9d9a124cfe349ccaeb48dfc82378e08e36cb99c6683e5d66088af8cbb5a59bc336a", + "81644b32c1340a0824e75958e0ad596546ac075bc8527d3911569e1d33c62746e8a50510fe103ebc7c4da5203b67ea5286550d313c88c21ea0ce709c2e0c61d765452b4ebc9154fc3994e47c696d8e077eaf80ae150e6d69677b96fb9f61caca8d7cc6224a22fb0ff8abab2580c3166a49603a55da34d88794112363df115e192c26682db5e0efa089c7f70ecaf4b0c50c85d01e15f9209f2f53be8fada6596bcf8e7973b6e755f63e4c5cd7e1db6dbfc05d42c5a6e5b0016737e622c6cbefbbe79a866ac0abf84547fbd6adba1374f268926bc98599fa5e0c1ccd84a5e21148bc7992f6aae6cca0e316e89a4774d50bccc187e21bc4e914accdeb4ef4a0bce410d1ba01925ac67ecb3f88dd10c53903e0c84ef76ace9955e7ef9c4097522a9e4d6137c60c65059ab697b34ef35e321e5a8f79a7e73bcbb35bda" + }, + { /* i=1982 cDividendBits=1658 cDivisorBits=1219 */ + "0270cac0558211543b63bf5c36e55c7f7073ddd02189bce0a1d881adeabb80a3a2a48e16fcd63c67b32e33ae59e9e8d2257f7fdb92b32f9e3bd22e165557b180c6855aaf0725265eb37450c4eed02c32aa4f26c409a585e043a22267407f24aff867eab3d46d427d5ca2dfcf9d3743606440d54b6a18f762a2d3fb924cfbb2c102573072b9443bdba6e3fb4708a68222afa65fdd53f5d98e0ab2a7959a93829c4bec91d338fbfe594336b8285ab80c3a9270bb1f96c4f91fafee674c93dae6620bd85a008ca1419dc00d5eb5fb6cef44", + "030e711bc3944a8c98dab8a2805935d6f0d2ef5fde827d256f545de6c0cfea30081ee2f2c8ef6497ea3b3e50bdf4556558bd82ebf336b0d06aec9fe4bc336c9a4a6b462142581275079140487ae10cafadbe68f14147dc6027ca656f410cf6304082b088762236c9b1b5044294e1d7fd74057cdf376e85e49545ed1b41d5274b215a3455e2afaa9961a85e1c277c98bd2070efb7da2a1ed1fe", + "cc6b847c9148d321497378b8132aa2b158298b7632f60727729813e3fb068dee982a214d8178056f8e18659f4c7d5f2d21085b327bac3b", + "2e8ba0b84e8d3e0c1e80ebfb890fe8133fdef5dd058dde8e69f734d808914b3c6ae6473fcb63ebbf5217288a465dd52e69464fca28d4b9390bda03fa23a0ed4ac4872d9c3f200bf1001e9416204e03293b25d98093fb4e770a0471eeef31bbd3a7d1ce1160599a4232e3d32307b3bf10cda9c22c23a05bb7671236b82a1892e691e1d83c236f3081774ca3458ad9d22a0ff894051031e1ba" + }, + { /* i=1983 cDividendBits=3323 cDivisorBits=1157 */ + "07e80b4f2db329cf6b1c919e43ac135c4d5d693a82f0abf43bfba4d1c7910192325c5d1e128be27ed474d009c08c7877141663dad3cab21c48a00f04d064c47b7adbf841a0d875c41409d619f1beb18329e828cbf1756d41ff6238d5aab285095f3d6ca9f0c36ab1a2f605867d4d937c6a3f0920197aa61a0945ce70065822e6a4cf1dc3d43feb1ec7cc73343cc4658831878afdc9971c3e11f47570906c6275211c2d609ab22357d3eaa0ed2b3d5d4c0f9a85b83294185fbdfdeae0affbf9bc4f3d03a0fea20bd54b21fc721c55228a762c91a041b8672c4d76870926881ff1374aa20436eb9d2d663a760b6c9ebb5af50785ef0a53b79e2788f85a8ee7e8c784618aed975ec499af6cfd57e4400868c591a86161ca37b043f328edb85b4d1d0f7a434ecb8ffe74ac7fc12953e65a592a3e377647c370d971c503d0a27635ff7103da2afa2ed97f8dffb894461f2e6aae828cc7be5aebbedee3c6186331f63684a220e449c51b8cb4539c48629e726cd746acda47132645d70f8785a98bf6be9efe5f34388f9017547ee34a05f43db17ba252bd34642cf7827e217a7d7fd256", + "1571bb845155715c7f79ff552fae19a23b1f3b99057a06f1725d02bb8449afb997b5a90dc255344df79c5156c9ccc8531d89cc11d6f4185bbfa73a187c6d6d598c430a4759c42812d86bf7a58445e6afe3e4fad84a16cf997256bdfb32f796ffecb797f17f9d9ac93e254ac2ecfd95ec5d7e09de73a7c68598cbaeac26125f57ca1728a9cc988c2184f37fec3f3185fc09", + "5e62e1d514d05d9e8336df83dd373d620d1b660e9a23bc4aa33a69f4eae80c803162876467bf012e5c2b775539ededee4360a362b1ecd595e57c510a5d9d92bf14730f3ede331e7d42b78c5e09d5a69371b47477db10085b4a4a57e1126c6b757582d4b35d010cce7b16b0d31c60bd47ae74a19a5f0c721a2d642a247e6a3ebb1c0e3658735caca3085602cc2617c0fac0a734fe45fd9faaba7ade4524fea8659da223f56b99fa7f94eefbdc925bb80d49737558af95a86eeabfe674a52d1c13c5909bb8b9f2dbc305093d028820bc986c93f09cc260b267f8d6a6ba6a2e9c25dd3ae7be1810855f3317f3ed8153fda5e780134be7236357acee8491a7cd50f02f5bf4038e56a3acca45ae110d17d7", + "0482bfa27d494530965184449b0560d0158caf4dbb10fa4a1599e3790afcefbba338899bb1abdbd72caffe27ab3e7792f71e950181b9ceef83d511a447e7ddad8c8b043884490800b417ff3d14d0cae5eb4e58674064a77ebe75ce6b3dbf3d0b98d667042ea7f710ea1539ccb452d646d9ada4e7b30a388029246fff23314586919a867879aa0a0428a13be64c76df57c7" + }, + { /* i=1984 cDividendBits=2111 cDivisorBits=813 */ + "3ade126f51e80558c6fbf23cd5d7ac9e3e30930f6f6994aa59e9988ddb766e3e704c7d3926082797b7bb4c8d8e4e4dc7a4ddd07b3aa0c28c6231185c973a574becb86d3fdb70f6b1ee0962d6b9306aa24e9bf6c09ca11262fa88e3e6b3c2cd2ebc4e80cc0277e82587219f9b9674a9e5c96b3c9e3c617d665855df1dde6e7b6119ce9a681b480da4e1a42033469621b38737d23945eeedea35e5525044af21cf946ee3d54a13a5bcc34d03e1df7be438a36800e29650c552de44b4347ffad858e01d0fb953ef3047e233e65017984117283d85930a7e0e91eb459e060fc8ac6768a440ca7508186d5ae0d97bc683fcfcf91502097ff3c4b2b6d84c05c238725ed03c8ed5f8ad2f0e", + "1e3aa7400ba9fecbb599382880480a1d1717187b76ac513dcd814bba6415a8fb125e2a78c3a746511af2d19614831f0d1dd6abccba1c3a6f11be1e85fd7daf969f4224040a10fee4b9196b9f85249247c3dcc66b56d1b9f360dd23ab5f0732ac4cc815c11741", + "01f287450621c6721c05f016cf5e24afa1f9db013019e09cacd9e7827d0880503fcf2cd13b5f454746f4693597eab2563942e5d9a79a6e3c762905a2ec96f83ad038f955f5ba49b0d377281069abab27eb815eea1611387a7b15555078b6a767ee09489e9e227086662ba99f1018c2b02c5dd665e27b622f0a73b78c2ba873516c6d11f5e5ed98ec698335211f7d997e5e6731f60c12ac03a9175b9ec27a01f5b70236", + "025f08f7cefb7b64029c1855fd686e422ab281de3cbccf558781c6219b4397338be03efdf6f810ee877861956d54aa1fea63d7b232ceb4f03a326327e7de95593a4bdd71ac80ce15bc14aa15cdad080ef9e21f9cae642cf20004e5bbcedf8f5962ec0b4cc558" + }, + { /* i=1985 cDividendBits=2134 cDivisorBits=1587 */ + "052f2f1dcd845f5f00b1ca902cfc86f603723f6bb59d9e589859a099e87641abbe22d38f9bf1dacecb3b4d3efb759e01833c2254ba5f856eb21873731d23d1587f3ed38a0ac01dc26afae835ffeea58afa6e7c1c522b80718232d8b1c6652891fdeb158192b6c61a48e4a642f6692f753d4c40c2bcbce6dd9e77ced05947c3931e6b52ae5df3b681a0bfa5e1187ef40642d97a0f3bd6081777285e773c9504fe7621c7edd78efa32d9718351451a74fec6c6b9007c32531aac64a0661db6876c08d40b88d48430af1f1baa16f5ed9394960f461ead78d59948d27bd97e69d72e74601c71fb4681b5c682442f306a37a20a753fbdceba227216c814394df6d1795863a45dd604945a88b41d", + "04c7579ac65831fadc81e5c04506919228e461c2c8e29294783faff9be9d079597af87eeb5594768b048b01492eb6f3b7048cd9586af2b28b2d925594c79fbc0c81ed7a03724f3fcce52ac276c4f9dd4105e6a39be942ced0cf470d8e511d0d2157c77415c57cf6fb9e724c7936459982ea01da93b55a4e80b7e0727b8eeda870a1a2890a5baf0b5bcd69f9fd8ae9471bf972a22f44950bb45e0af5be0e7fdea015191fa35d08f5a94694014fbcd97dae22da54a5516be48f418b8bca1dbb44da213b3dcc6f3e1", + "0115baf095e622a0985f18095145f7d1ca2beb8344435a972fcdfbe9dc99ee7556529d8b8b101978ecdf2124d5f5bd6c934628ed174c18513ea176e696e660aa697c07d81b", + "73720e8b8386804ca5a7ed9e0aaf6a213ecda11f1423d0a9ffc5d9c0e66ea583390dc69f2f9c818c328fc514116132195a03d4a51a8b61c17bcb3f79d4d96f2dc8dcdaaf81dd31649a99565fca6f11dc243a9a71ef11671c1726b9a6825d88b0b5724ee6d8cc1628c0210900833921c4001f9535d36a6e9fa5a22d28ade2c883eff2865841d0511f560a4377299216875a81f99d446750c215611fe06c015e91174b0439b45e9a81d3abcf38712400ceda1b2b3c8881ccc51207309b5a367e5555798ca02362" + }, + { /* i=1986 cDividendBits=2818 cDivisorBits=2269 */ + "03aea33fc4521482600396d8a10a13384a67ba9d5a3906eeb957bc501e9c0cf7e1cb7a7c40edcdcdaeea0b1b64915aed7dceaeb81b61fd982fa0896a5d4009a86a9d90d8eec4970b03a36a7d3e21dfd9a8a09dbcea81dc42189c7ec31351ceb6b35d65fe57711c972168c0da5f56011be86dc91c4c71f2583e2f078bcd2489d55de91f88785419b44b96629ff7ec91c05d345155fc7fe51698683dce33e3c26fc4ae8d6e0d33fd5c243855c7895e57779d5f4091497aa5fd751bbbfe3f824407fc65809daf294e14370c4990032ac61f5d56e4d969a160dd55ccfac48dd81dbe9683fdaa64eb4470a8072e5ef17c2745541d28becd97abaf7ef90f22cd857764797e4bf833aaa2916a2ffed3005846c560814303b4b86406461985557206d3a822dbcfd080c872919afa28f5bf10fd02d2fa585395197a6708085b03dd29360207a8ed07987555cd044d54c5ff3198630b1810114e15135e66312ff0eb9dade6ac", + "076f5e0e912d544083525e03e417474c41ea37c529ad064f6f6eed799200b5d6f11c18e7ed87f2c4ce125864b01b68792c7250ef516219cfffeb1a66214d137f577febba53f0dd74f6b8cb6d48f94aa243cb0018344f325ddec35c818877eadfeaf5326b7c52115078f0bc8ef8a05456b9c152f0ca6fb2c8dd59ebc2e500c86d07bd248f9c7b62731d98c8d8e3cbd7c81bb763e0f84f282451f92a1f27d9c31d0069970c8c85708c4579d6a5898b2ecc314ae4a334f6b857c8cf8b5b3b6f5345145e4b36f921829d0d6efe9ea99de247c6aa677928d25e243d0be02114ca71d9101cfc2c867ef51eb5f516ef9a15bd840c1caea09035cfe4f31e903b713ba7acc408b6f7d0aefff771bf04265d8ea3c5a495c56d97bc204d19d5658d", + "7ec887fe5239a190cfa7e619b4bfa18e68b3352c44ae0f9a91e015a9964db59d0284c8bc75db22e00f46df50049b80c204e57ddcf2e1d8fb1236119aa2da6de17fed72f9d2", + "05bb1590c90ad86870323830cfbbf53a873b0966f0639ec1af91525f4d40384051de5fd27ac90b59a3d7d6fbe3319519efa47ad7c6c726abf85bc392d0b54b2a0d684d2bbf118c925ee4ffbc92bae43fce425ab82d389a6bf38696bdc537db3c169aa7ddb757f00851cd92dddc31b05c700b292735a84d1f519cffacdd7d35d18ab65ad088a0d3f111e0dd7a6468c376edd495640527f2e60787f3a458f6261d148dc7f362ef9a442212525d47631b6d4c9d3b9c76e61fa12ef135d11b6397d261356f39dfd6f52742f8bdb67b790a42d8377d24de761504b81ec20cb5cd587d0e5a3579b514fa93032b9bc4080c74ccf39e59f6b6116f5f6ec27a6f9d990b470dff799c13330e6cc5d45e8ec8178772c8df7eb74c0b158e1b107402" + }, + { /* i=1987 cDividendBits=873 cDivisorBits=705 */ + "83a92dd8910f2db71f003d7635ede9fbb9abfe8aa9d779a978c6f3e3283605d7c84655fbc948cba9aee58e4723f9720f49c402d69f52b8c24e43fd7ff42a446d993fc2bb500fccb5a766f0ea10bfeda2dbc7d5e4864eff4981bc035ca46beaba9b13d6cb6ee73ddcb28561370e", + "e0d5882615b106d2ecbe08a7dea0977a2a142681b212d83e42c0283ca0964e6a411f04bf747261b8a16bc673683c757a898c2ea8681670319ca62952cb695118462436a99fec0c61bd645bc865fba32ca0c6f42ffb130f55", + "95e94c941fc5946d8eabf9ac2bcccdde9f93080935", + "d2db3393ce85175e7b6bd8c960c41e1515f0b68c62e9c084274a49c2450c8a36f2b7c46374134a610ea9eafa6003415b34ffb99e70be602d928e1285452bb8c807a65cb5ebd979b30f56c63e8f49f9d1f59898be953d0d75" + }, + { /* i=1988 cDividendBits=2354 cDivisorBits=1423 */ + "f6b4113e04c0c118f7fe3d95653b177491534ec7b35423c598a2e3a5d6c029b1d91432f1af0ffe532b467ea398b2bab2564c64d65aac027fa5124f654a38905258dbd3300fee840547fa48243204791c1615b21951941d68effbbf64c29f665fb8cf2e44e766205ad45d4d2a4840acf46cdb3f58035031a0f710b5a943a69c4eca9fd3cc12a025f3de0cf46b7152c8f3abf2b28fbb8eb8f703459a91dcfaf61667208abd528444e037f9171e4eaaaa7cd67738e63be0aaa127931eaee5dcc373445e3c876057c33db8bb8bb7a38a2e6339b16f8bf046e1812124ac538f931ce6a16acf60b1a13b78bb35f33f32e5bf0d36377cf3fd5608c63ea1f4bc1f855aedf137a500d7abb1b1eb8f2dbf9d495c22f0df8200852296973987668618a7853d9dd97094b121", + "078366c01fbabde27a6c438922ea887f2d3abce41b4d1e1eca330fe1b96a731f212630723dd93c27ca532fdc0f0412ff51605a6bfad752b6b1e209d497416eb31fbf025d629df1d1fa570c36956e2a52e5b810598dc650eecac284108273afd41584fd595b7f35f5bf5e9846640dd873198bf66e220ac50aec926ce6dd3e8b7fc87da2afabc7fd473aef7e98700251c5c46c81f59b4a2f7de62e4a763f659f60b79a8f4fd999e518b94ca235fc8818ea549b", + "20d5eae1c5432d0d036b92d127307ac8a198e1b5a529ed99b8ef50402a2af0be0642402d625888f340359a41ff568ab57c2153c216bffcbcd6a497dc5a0733ea989b3186dd3ff8e71f371fb11067bdfa8f49ca21cdfb789f66980cee65ea6701d1c57ea3cc80f80e17720c73b5e29fc9aa625803ed", + "ceada8f9fba7e4e22d6a59ef8a474cd7f88806fc0df1b61d128fd9da284b3d5671f8ea081ca138e5ffe2f97b65ee071dd3fae9c6f34c5f875c3e6d23f55cccfbef02ec1f3cb56b3a1b1d7e0689ad5c9f22baeac68b860a3973889506e372d0ba8b9da62569f4a3fadd2b4735c405ce85e8d4ca0ee4c294155e259af5b8f6f2e348ef8642d4d27b185b9f687d887c7f456a850166d82621d460c2f79a849535d32713e2d837036be0d0e4ac14b1355e8ca2" + }, + { /* i=1989 cDividendBits=1831 cDivisorBits=1679 */ + "2c85941ade349345e96ec5e73dd8fe3d25f0cf23a97992a0893ab135a31c548fc719db7877d23e0d20cdd56c9a6465f6ea37789674b47d3cf030a2beeaddf23ea46286c4406392406f13d159af496b15369c2add520d326c62c1722b46775303091570fd40233871e28274077db54dae03576a27f1ad09c73f8e6ad35dcaf58b5d4822d5fed2a24efafaa07f3e67b59e0ed96f38502395f1a53d03d1b45daa13c65b68910c9737b21214efb0dac5a68ee23a88a6039f3ae7432133893ff06287bb8e3b9d191a60f1b5158c46b6d144a05288922b5bc19bd1f87bee6d5d9cadb46e8a69d01e", + "6f0aecc3a900791b90344f6f00b4aa4e66716cf4548ba8f49aecfcb9246db46d72ea31a2ab51744c20bc491c9ec284fb838e0dbe641f94d5cc7799ee0ea9859900675c6b6e9559ac633c9dd70265c1501ef74049049545cad704d86eba94cde1709c7749a8590c244771e28fcc830bfbf5a1c15afe0254fd9bf4ff5c97517730eed1b9c71db2656b51b68eb7b6ea2a3bad8e4f3d3fd51e461b62a5ab19c28dc08b09dbdb4208a9fbc9f89aaa39df0b01f5e27ee6ee4bdbce56ccf2645e475b2589a8da615340f81cdf43c0d8ad507efd324b", + "66a4347ed4392ad79ef387e0afea840a853c8b", + "5bd66e0dd5a0921221ab5b547ff8c2a9609c761eb5dd25147d6f093cb9bb0535a2b55b67e2721d041343923e0da3eb60a7cb0c319306d571565df485ec00fcbacd6be637522a861584a0051d9c45d064934c2f852d64c21cab14f4aba3a2ec42a489ab8eb823e0448562142c35490b27a031e5359a61d04c9c8e8f0c149616e63f41432268ee10e3ad4882408a899668c75c5f803b96b7969221c96728177cb1d25fa15a094b223fa550c8a2996a8b1063f431175c97ec5d7beadaefbdcccc1cf513a2d41c0a9f5ba7d102d561c8302eed65" + }, + { /* i=1990 cDividendBits=3602 cDivisorBits=1958 */ + "028cd39daf8f6cd86180b189746a4130757ebb6ed2320913c00fd2d099e5616eafc26394217febc85e4244bc2ea45fbf38dbeef511c7dda493c679f3a693c1b24e56ab41257c23194b6743c79b2b25984f69d3a64750069a4604dc272ab009ddfedf5e979a27b44a5142b8553ed32422c000eb0d5a955af310b3c8c416e4cb29793775a599f10e6fb9eff2232297aca1254f325987e266fefd233875eb3a8beef42def960d0459ba10f38c22b74251f57ea7d08ddcc7709ac742826442d81bedc5b1c86a770fece9e201b93c7fee8b45d0039225bd094eddafbd5309aa39417b5479c1cbc9d8611de4dc2f2e292e9fe4858e546cc73ed3125728e5bc0adcf2dd08d5e5a07220fe6c7060152a7ae5c4f80646731fd0fe867ce7b44c941283b7820473191c563c1b48a57fc96cceec78e7338e9ac3e011d06c8b2523832cf6931f5c302efc08b92f8ceab576023555b009637cabd5c68b39277d573ae10021ed5806163346e1642d0c8a615f18a70258aaea75380cf0e9df9848dd563290cc5a15c5d608e78e493bf2bbef25551c786068d87e2aee0e3ae987435a8ee55fa1c24e726794c2d271a8d49f381fbf59247ff8fb87f984e49000d7ff71fe75ac8cfe55a8f0c1", + "1730a76c9ecf9d38f09471228ed41c9099bd0eeb9b025df46c7d8d66364a546490c8eb0f09aebf25ab60876f469322ca7221e3f81fd9d953518ebce2b3411be828ad0981db08a3aa6514a250fef8685c8d9fb9b39d7b1c56036fca7f5b2084f9c3a509da7d3c36c58b2d68cf6df0c5584ecc57bb92814f0c4004dee6cc45b528cca1263d619941a92a6064f799ba82e4ac33b45c8cc4934c0c1d1d6cf9a511344c1d1c4e60afba9b3919716aaf758cf72f31e20df32867cc2f4b860bf8588bb307557c28006a10d62c425d22648892185870b1ced07a9d38cf436c146b467a1af3a55cf9429dd352fc963d2af39737123ec64ab294", + "1c26b187ef03a42bf94a80a932c4ccd9529a2906ee878a2686698708d9fb27a40c052f03c25dded70e2e811de117ae86595c0b1ce3a5d41220a0497f1aa988c53bf3a0f9d8b8f753bfc5a88e38e19e6234ea234ba67c511cb84219cb2c47bbdc2bce0070fcbc615bad74b9878a36e3b37474005eebcf96f6d6fe0f1b53c35282e74edb4933a256596903d9321210171a609b820674c79a409312eb775a4900b481cabb2094ad71ee6f4ad12ba4039f0dbebfb55b2eb2bed018b556db45c7a86d31c0aa0c033187b8079a8e70feec", + "0a4e096409d2a4bf5c1b43a06d217cbeee7895c12d173a40c225630faff7c4394209ca1cb7be687ad8a5fcf2ff24df5e06a020a6e71b453ebfb46868163b190798378546ad94cba3bd765c2dc8cfe195db3ce6a30a92ca09a9c05ef7de98c2097ec622b2a34bce47cbd53d2b7faef20f8aeb9bbfde400f4e2d60948c155df0be96d119bde0f4d538a030c60aa4ca4cd6b271530b5b6c26eaa29c85bd722871ba013d55f3d024f80629c436839ce0d64ff3e3e397feedbb6355adf9041807b5abfb8d4328da1833a237c0e70fe6bf7f4a51a7727b3c16d1afc81441b71150f12881c998b8a440822c3292e6efcfe327c99d32dd7851" + }, + { /* i=1991 cDividendBits=998 cDivisorBits=368 */ + "0f81f62ebc9d61c83aea11e846878c235611395716e8b7c81a00cc4c8848ff54cf886e352cdf16e7c41c4b30d03ea7786282471c6b754fb66d05deb9f67fe31451598de947e73bd130c126850e8b936023f55358ff56bbbf7147f3e54d92d6cf677c0c557ce17d0fce3783c8958e85e688aad58ee90dea84ae9930978f", + "27739b6627c16323292f11e6a2e952a95c78f1c79f8bd9640d27c40305e79e94c896b06092029a4e4bc66a38b967", + "64a0f18df1d8b9fb731d54c9c33a2a9aa4c9b7aa9234a70e7930072c05c1f81616a285a466716b6e43f830c4ebe2ce67232230d27d1b8027a17b7fc43909e94d017d4a238d36d152ffc1cba6594256", + "195fb56a73f605d319cb3e34f1a2677b77f937e3b8ea454059c897371d8f135b56c5c3c2ae805cdd87060b86c0f5" + }, + { /* i=1992 cDividendBits=1312 cDivisorBits=897 */ + "135ba7fb2e4ed640d746fef43f05ccea829cabfdc512e334e96e3610ec746a83d7d5144d02e009d5ee172f809770762531c3ac031e0acad31da0f9d9fb18f1c705601db5d0c14f7256263bed5374f2cd5fc9482e03c0bf6a0ba1e70caea7c1bb1cf50e1f93fa6dff621851c06236605f981b34748d8a9ba77ef3b57aba25e30518e1b2406c47605d002765b4be6d8b3cd45f81962449b3c85f0b2d88b021d250880033a8", + "01308e52e89936a272fb6b269be10e65cdd21174ca547a2e1364d1344a41357a3bcd3ec949b0b484084f1f5b2f1c97b4cce8fabe5412cc8dda6d1d25cf543d582223e2cff4e1f58053594b3c64b6b7082247b5e6af9230bfa23e9b11712415c174fe975e505cbe549dabd1d66b07066860", + "104590f24903a3ea0035d2f10126708505b057dc2aeae02d9d351c76aedc4844cd8ca04eda61787661d9bf3bae263ce4100c3351", + "62952475f052e32ed5872993d5875e8976d8cd71ae181cc6c170fa6ac45e3ccc9baef9cedc045bc4fa5aef4a5f5645c32ca7ded11d3fbfb227a9aea0fbd3a2d676430fbdcb6a511fbbd2f968ce5cf06b7d8001d22463d6f64c93fdaef67769f40c8866f3424eb231472577ba23ae0d48" + }, + { /* i=1993 cDividendBits=1611 cDivisorBits=293 */ + "06732af42e16a28926a955fb40bcb209959c4e01d022300ed090563d560adfdee6a257fdb133db51671d6debb128b5ad4c357f1b9bdebb5e09b908ce4c6304e893bbbc1d2f6efab830a380fb179e81a2ed5cb231f9f8ebc82fa1b81d630b853f839219177d02fac883f1648f3881d0c2b691b762206644e138c64593395c33397d4941934cc218a9e37be566012b7cb58aa426826153b6f54776deaa644d039bac016aa2f9f77ccfc9f848891c78c310eb9594d058f4adf03c72d9727356ebfd159a0a49470ad57a47fd", + "0fa39b9fd6d90847fd9f9dc6dbc27ccf58ef4960d36d01db610009b783155abe310b53d6a4", + "69945aa5db510385a4278af92bddd6581f7c303e77d8666583311ea11b5f049211330b03488df5422cc406dbfbf5bdae8cf3b5322d51fd1c45325d1a5704818321057b251fd96952c869d7b01d3aaa759bccef357c103586602340f5e8666a0ebdc3f078bb84ce8e0e27bba37983f91d0ac9b253aa1df4043b76ac068dd90a8ad740269b1fa09523a20526b2302c550558a9ba42400cec0e2381bc5c9390f4187674a75fa8", + "0646e7e567b1b63bca6495f35b4c1fd30fdd14ad55095211e610d58dcb25f3931bf4d2905d" + }, + { /* i=1994 cDividendBits=373 cDivisorBits=156 */ + "197ddb3c29272c9e8075de9964747886522093562d9d73c3bfe5891e39f24acd029582266a21d03f70080ee58e4a64", + "0b2f73f77c5c094699e05c2645f21ec0e43e11d4", + "02476d9eb480dc11cd5ad80e42a4d355eacbf37c941728c487be0bdb", + "079e9958a51ceea23eac1e3bda1c8774f258ee08" + }, + { /* i=1995 cDividendBits=4017 cDivisorBits=2098 */ + "b634763ca058de99d85b0bf65242c7401abe547a6a0474531c2d974fd88b05232cf29a59d90777411e781ee6f891fc37d0c99168b3282ffa870ceb9014c086c6711e10eb8f51ca0c57d770a1bb502ef548be72baea66f312f6b07f1f06bacec3c3e717332e9a9adb0c517c6653b705bd7f8c57449ff43369e49d85e43975cf71c75894ccf1b38b8c548b3950b66c809fa475aafb7fd659dd4ae0639b666311de5bd3817c46d8eba279d08d4f5ea737b0d40b1d49626e2cb0fef5a026b48b9a21529c5e8e954b566e5b9bf50edc7e20807e4298d4e9a1a7aefd0b10e6bbcec35fef32f780f4e9873b6c06005c98818440c345a831bc78a2b43d4a3358a06c4a9a0c40c8c3a5f5d9ef162d81032eff07cc2463d91f40a01d430213d1ddd64e5ae544aed937adfa1f2c68778a222f993716007ab47e865714cd926afa6421834bd21cc37e8fd0d7ce47df171b19b84d1b51a77bb4ec6357a4bcc938ba82da8ed9733fafb0f96b8e481a752a81cbda2f642731f82c12f0b70a516cc65d821ceb7d4b43702dafc31068d45732665cc8f959bbab633bd985687bd5e301f9100c6375592a6e6cd522a24ac6bf71aa860ca6cb85871e2dd80e37ca88e1633c51cb13781ecdfb3a6c0a42828128a2c9b85c1f5dfb63a67ace8f11e9e96312ed38b0a24821661d90d3b1d7f858b601e659078689abdbbccc4d94a5", + "038191cec48637ed8d6b8d84eb37369d4c3183a5204ff99013c2f61af8c1f4d6fd782163177aa594cf98089524f21a77fbd4790ba4565bc98dc80fb69c9642e7ebf5be80cc86d5572ca7c13b4a324e6dc6d9d074cdfb91f3bbf9f35cc33b75b0573b0b44f03b4223bfb1e1fbb62080df89e6a0bccea66a97879b9324b9b683cb141581db1ff437eee4d984d1ea83163b48761977818cc6b59ac496d3555b24c971799e39a9882414c315b31685fe88eb685aef653087a50d3c17e0bb4a358c073052ab2c9387716cbfe97e425e6a4512e6e9fb1c7b0e7435d5f6a7cafbd139ebf6c3fffc3a63ac98f705114c99c94065ddf0d85caa98ef3bf448916c0a08391f905a11b5bd389d", + "33f7af39b32ac09ba17c6235970a6a3a051ee8b1f53f9cb648b4fbb02d8e8aafc72d600b7ddd9f8e24615f26255d5eca520fd2777607624355a5243c9e4238c8ccd900c6ffe0807a45254e9c1c8b854c1b8be54109831d75241d1c2ced54d675b66d0ad63c2469d4f69a082db43433e08482142097753cc2720e9c9a8f795a21b24d2b2089d0631ad8cbbdfd8f79e29cbb206ed10ec19deeca81a5a981ae43346bc0e8dea3d4f6e19b438d241182bc927bebe3a8e497eee3b02da1457e60f092b86e42fdda2f8b1566e5263681b0ebfa5392da7f8fdd22d9b4475b090c9950fd18b373d1446759eb0206aea929c842f4", + "02e9164e68951695353ad3e14978d820540537e6fa68f0c1ffc73873a11c7f6a8b9ae3cf608dda0873b31c8e0780f861da912e469fe92cb9f2390a84cd7cf5e9aa4c71745c7c76895f45a18e5c3c62234b1cf48a2e720af5187f4d28c3c1428e907c5bf36473679005691e4411fb55ad0d78c8aa1bf2aa61329ff40cfc49e6d265b327ea7b1cdb9c26721b15a81247677778c793c2ebf649437884fdeb7363c5da069e7a25fb59c17a6414bc7b7a4ea07111cbaafcf3042487ed4a8aeab8daf23d375729dccff15c884cb8fc42c474a89aebb9f74661fedfb695c58acccbbd994c247d4fb428a70c9eb336abfc988e4449593badc229e04d2df35b7815e686e4d912766bb32501" + }, + { /* i=1996 cDividendBits=814 cDivisorBits=674 */ + "2fd5ad0346205ed3d6124623b9b38689e58ad423163d158051f33fdac0d8e6bf8f7cb617aa6d4107590ec642ae4ca8ccdfc4f5fd8b23688079ffc8ea76ea23c691a7b383d49443a0aee50357499fdd3e067f8d17d43f9871f2594901dd9ad07af97d84594c36", + "02abf117fedc8477ad055df640ac3a494ada2aacfd8291909a640adafc88b4b8653cb74b306c7c64f4d1a53e2bea686930dbd247fd85752bf3175dfcb138bd61fef9604357a18e055e17cbcac7c43efb03aa02211a", + "11e7912e176e24a4e9e238fba374413d56f4", + "027625e625cbdc452f90114cd8cb2e7635095dfae2df48e88e5f9bec98f5750d8cedb62880eaeab5b7f72192ecc9a80a78dc07092ab5b50dd3221999bca5c349518ddb723bddafd55547689d58558de4314601036e" + }, + { /* i=1997 cDividendBits=3494 cDivisorBits=582 */ + "386ad32794e432314804b9576893ae2e0817c77ddab49a7dfa26050dddc00e4a5ac5b07e4d225094022ba9a3f1009b9bd9e1323f7ccfd1427a787058f91beb98c2757774c4518a22be24358f38135b8cfa95619ded134e51dd2f0dbe2380a0eb3e54298f7df113ef8bd3c8176f512b9bc3134e6be4de1eab1c971a37f1ef21e941fa4fd40da5bd8616a4ab21fd0c9f46a97d261b85ce3d42c4ae62d39e28af44c05760b30985889024768d38d3e1a6741d898853e0ceb3530440889fea4993c0b2f7d1b0622dd7ef64f5e0cb12745ddc04712688090bae89956263b079be6c166c3d7ebe266e8a717d39fedc7560d63384f7473378763f5e1af54a020d0de337739fd73b2f7931b146c99d6e0eff8142670c66e20f0c89421c69745e4bf88539f1a7f71e7ae3c6e15d016146bfb482c6350b13db2043c197cb32b6ad0b9411c4e19b8538697c3838cf53c24af839160f9182ec170811324862cdec4f93bfd27392c3eead34f45359bd75df845b715a95fc114b6e7b352e7cd534fd5597f7d8c701f550c19e3e06832ba59223980cd810fdefe16f5442561c9f851b8dabfe42b0c8c69d538b2a1b70579687b773357796265f5c766a", + "2862bf4793205d85d0f89a91363301d5e6251d6e546945ecfbe9dbaa0dba96eb609421e699f96a4604c32f422ccf7c26807332c9052591a0162896e3bd5f3230c812b09fedf3a8848d", + "01659f398b52c622429cdace702f65dba5fb6385a37fe39963e6b60e76694fee65a30eee16e2d2e1cca83124e91765319378c919279f5db200447e32b3eba96e20e764cd7122823a56b6da98aa37cb9a4d027fd98ebfcaf4ce30c8e826ba2055deae516fb401eadc6e82b6e315d56ec9863836d92b0c493ac6cefb8e255b608f14adeed71892e8c92c50076933ea21fceae547f3bb8757b819dcb5f32725bc8a7dd5ae68b7852d50c208882ad56e867504a194be26656b5f74713a71efeaa6549a72de3889b7b1cf91f9390f91c000d37274fb79f0a91384c169756533df156702e6ce49f235effff2abf5aefde38e2a0d0d59d64f2e6664c6a492834632af887e3c3c7e210ad9c4d6ab5fe04a99a8a32acce04cabec688181d3bba84dcbb025ec9cdd2aa850d506bf613f413078ce7d165addedfe4d0dec9df9a7bf7823fecba8053f7054eaa38c248e2232a3ac143733877b98ad141cad12c52f5693211b1d27957f12571762a605b2b48a1e", + "1e7738a9ee0435df576702add062e07b8307ef9ac8bf3fc49a584ff89b2ad118ff5aa2909c576f8d6936859d4750197350f6ea52b8c87307e83dbdea62fd01668e769c0f82bd04ebe4" + }, + { /* i=1998 cDividendBits=1719 cDivisorBits=620 */ + "1664b3dc976f1013a4731aafab0bbab828a9daf4110de4498dd517d57eda4e3accf0994e177da1e6f13bd5625b6c95c8db41ed2532430a755d6f6358877f9f4e1da25c7547429c836a288a191b741165a2f886bf75afdcfec7aba234eb0d1e1ab24490787da14b45a615f8a52fb59fee6cb33c21b43f8c793ec15bbece9966d945cfa4a6d90f01cfbbbd44f762fa6f3ead0bce6a8deecd195e1bc6f2a47cfaa6c92332ba2cd4e5f0f5c6fda2e5c1d3095d0a44d860d44b027f0282c873fca1b7bb2eda32649e074f94fc7aea983ba0d0559469e3c379cb", + "07236cca35bfdee7376cf6c410f3912154ce6c2d150539da4f736a6037abc2fa793c2bbc9051c6a7356638cd2bb082086d2c6731f2784ae6cabbe801c629eb1ce0475bbef78ecd8f000378df0a72", + "032314f5b038462260e98ba834bd25ce6e1dc1625c1e98bf02d6438429670b039c6ad388d84549143cc57568dbd4f4a07d250f612365bb12b98bd79527e065a83b6f6e5a33d6d81e466372ac5e410aa1ec9633ba1d46673e5dd8a4f64c2369d9e99194bcc91421e30872877927c66ec263c095c9e71f1d3e847827ce48c2bca0627809decb2d2b8b8c22", + "6ac1e3b8adf5c8d1b71ce3af8eafddc1df42e1ad5a186cf3c9c502c9718db45d544cac04a548da965a98295066ec0e6e8e3bd332656eb1ca4033e379c884559715f193aceb8acc59f40a87bea7" + }, + { /* i=1999 cDividendBits=3730 cDivisorBits=1973 */ + "03c282a77041703bd622799c2f95aa9e2f2f910e5fbad4e962931102ed17b5ec3053673ba146aa85fd2701ff30c415c2a29bc5d3ae7802e48e52885cc30b60b61b4544ff980a32e89782be3e00f32bd7b9d21185ecbee8bc743808e89c70bcdcb6af6267fe4eb0ed0bca1a362bf1cf3a593fe2ead63ca2613ca889730bc00e13af72bf6639407f3e894e642c3b4053676e120bf10d232054c2c00a27e0817879fc85484878746597e868a764a86c9145f6a91345d8ec2acc17fa6156e5b3acd9cc095872e0cff6f8f8c7863a7c69ba18fa2e5bac0ceef525dff96f256a680cf486f7d755b26018487b25516df2d0ce555949a2186bf68167eb9c00de2d901ebcb52c093395950ec364797ccb14582f736aa532d3b35e751baf6acc330a9171a5cd7487aafb2e4a48184bb28179e7b4ce5511c3abdf98e90b46f024f7e5ce27f5de1838d20be210ac02f4b89fe37387d7b4f4862d78b55aaf858ece06ebef1f16f96fa37f261a7c1341adb7357034c85b7dab1712b2cff2ce2c93dd47c04f212c4244a46114ce1eaa6099308f2dd3b9c23249e11daefcf6de78eab7793d0ad545aa6414cee0902b93fdf08cd1374abdbec4b0ce1c257bb491dba2a8b7f840696afd9c00078a287b32c15d173b7e482d44bf316e", + "047c1aa48ff41529925e94d78e1887414b4a4b05fc1d03b8a83cfd6d7342ea37d016f02125981752af1fa2c52de40930b8d304d92117dd4a573ad062cc552d524f62a7f389abb41f5d437872ec5739bc7a9afdda8c4ce7acda3fb5f462f9c6eca8d49b3cf80cecc1f724ebb2f136e55026d8b2c7f8a1e6d725369152af83506734f641c58c4c78bd7993ec6b5090ec2241b838dd82e5a0ade6740d0579ad878a7dcce0e1801cef6af60370e401ee8088fdc3c9ed75577ff36b06b79c32890f9fcd5fe46cd277841e4f0d10feff1a9e9f86b6823d45466731a3a6ee2ef43eef4fa72a9941a5d2868151b66ce9fee26c1e0920c4819baccc", + "d69df3d51995c52047cbc0ea55d1de50b338d9ea1d2dfe8d3d811ebd1642f31e4ea56e0228eda2f1e1445f9e0e8c66762535e0b428d304e079be2dc9a8a0956db9a96301b860fb4c755e3d14b2cc80dfd99bc3e1bcd6ccb18fdb9d73ad72bef0169fea1d2f1ace509de671f29824ebef383c8d780c3e66486dd31986c458456d22fb541c62eda312b73537fca2f3dd2820a42a85bb9ab3dfc05ec52682d897069a3cb1078231134bf93342412fc5d6c5223d5f383bdd11a359445f72c791a23e99803eb1df08bb374488c60787e6506646e5702ecce124bcc16a4ac3", + "01532c5f1e5e1c14ccb6cf5986e059253c9cf505b0621b4b7c65502fac6c920eb8726dfe12a7406ee71e60be2f6ac157115c67393bdd5554e7f5aa0fd76c096546bdcf0dbdfad1fc5b384e9053430557df1f707b04c9458c9b3464f2cb7acb1ba795efc7c61797ee5680e166e903f48fb3f56857c80bb6cc414e7c3d4082359673aaea5a465ac282f4dd279710e2fa0b3a3e816a4563cca8a58b25902b91e6b962f2cbdfc3c96baabf5c280318121c24e1aabe6ab92214f1da0dcb8b273906c6a7ca89e34fd173ea0d497b0244190f9ff60d3756a833127ff91040d26377055f128b51d5f24d66dd928d1589625bdb7e11e77c32bf9a0a" + }, + { /* i=2000 cDividendBits=448 cDivisorBits=68 */ + "2e2b369f9ceac3386a0e927415e65fbb6ebdf58db2af11becf0b8940c5858c28d4febea4e6ce81614e01043f50057251703352142e7680a3", + "0e0fb289b84119b9e6", + "03488c4cab890f5bde7c6248dbb0cb898875ed420d5fc4b7f91568be033d72beb590038ff66db578a6e9946b8eb132b6", + "904e7955c3d76b1f" + }, + { /* i=2001 cDividendBits=761 cDivisorBits=459 */ + "48553328469fb53ca3190c4c450f5a40ba8ec68dbd60f2cc679d9d1d775c21e1040b9a042b770ddc99f17838011ffeba4a061e211e66363e5497d48775616c85ff61c7e3e8b990121fa72af266cb62b2dd5e3f75f7e0fb580644a620360bb6", + "04b1139002f308e6514e0de7a9c445592676eaa530095ba4ba8df07fb6865916c1bbcd3eac0e46a082699b736fc24d7d6435bdbb0de4107be0c9", + "0f6acbaec4a8e268465ad3c884e95a99f39ce7caf8ae36a018a37d5e636b1156b9d01c11f932", + "0252a541ba7073db27199ec2602ca1ba6e624585918b0c26eebbbccc4f8df387f042b07e665fa6b23f817a5dc32e35726e3bb46a30f28107a374" + }, + { /* i=2002 cDividendBits=2570 cDivisorBits=1991 */ + "4e6d83ad57561d8b06523bcf4e24c3fed11ec2cdc62dd91dd37c6b5c9d5e31e3e0b58e941819dd07b5fbfb1d0b9315713c03e33af4ffc342b6e54c7701cbf34ce5304164589acc3da200a0ee669eaae25c99a1615e26bbb02fdb004b763a3f8baf5f21440919e56451784c0a89eac54575acba6e1fa606ace0a69100c82a683b64df268c45f7022ec71ef78a8a5972821122bd6ae22a221a37c7995480a35e4c30a9440ca6cf9af68c4221d1a2686855c22e8b0eb5c8bfbcdb96680aff8e846ed87067e21f2040e1c5cb733335afa8399cca10933645ae2fe0adaca829df19673a73b57cc2e79b2b9ae8f4e3752ac9a31f32a722985d1bc7e11b53f95607a8842873718882e6417c5bbc6f1110cb6839c4b09f5cadcfb1fecdfb6afe8a77afe5629c7c0362575faa9ef834127ca01c5d88d37c92cc7320cf44b0bbd89d9b05d258", + "54cced652742f38656a4cb96053fd181127c176a3ae63a9c429ac5490711a629640427fd8cdacfa9b187474ed7efb00599bdf0e4d6dfec91f25d42259975fe8f3065e2d38465d202ef3333dc8beb034e3bc57b61fe4b35e1b6fe221fddbab92ec82289eb7b0e04850eb625715458daf0faf59142bcad060276a7ea6472f3eb424cc85cb3f70dfcf2c6437c82cfcf862dd1778cfc0f9e50c17b7dee814c430be55a0923eb67175ddf58ccacbb445683a92b818e3ff5f6928a352aabf2fb43ba74ee2106089b49ec1325f92dbb467268a0ac5ea4d2fbdb1b5c9d6483be657c70a81c7e07ced3cdd8bc78428d8ce9d4f2dbf535a4f356f90aa555", + "ecc3023550f007859de06bd2a8e4c4f79f295663ada8a8e32e12d3f0915c9a04c93c34a732b0259d5a48b9fa7caa7dbeca35c1add4ec4cb612ea95253133ec146787373ea6a3dcb0", + "478023f0671e5597809f38a59ac901a85f03dd191ce52b6485946caf7022749cf54f8b4aa5d0428cc78f2b482b5e8061b12679c3452ebd36b91a70c5903d9c31a0f2b2724714723d01a2131f1cba3f863f76a7cf7288a8450f4eac3198c8a4d4dfd6346f71d0f9c3bd46e70c84d7b6442e973c914ec01c29420b2e70b284a8f5bf9dc3d043f1b0d6768d4ac791c83f77c6324621f0484681b5d1a7085f9ccb8d8fa7cc7a06fe11bc4b2702afa00d7fad7bf70f841e9792720ae03baf7fd853fdc7cbec668d6873f18f3e1f803fd52774f33567ccfe2ab4262b1d83f586543c67c55be01172588274db0176dc8a0fbf3c6cbb6c083ada801be8" + }, + { /* i=2003 cDividendBits=800 cDivisorBits=129 */ + "dfc909d1640339df6eb64c5f6de7eba90b104467e87eadbf6eff9d377cd3cab121c2769fb1c5d5764d06d2c53032454db8086ba211159a3c6a90925d5a2bb1dcb03678f1ce00d91cab0c44158b418c8d6e13f31648bd49270f0989e241525868c930c9f3", + "01fae7eb70aa1d14a0e62fc6a4de19776e", + "7104609885eaf00c20a4051013f7cbb27e8627421d6e7ea8fc3545f93e078fc9c2438a55e57da070568f9007a5b6d0ccd2f633d5cac131798d508b3a69f1f691e8dc378a769eb147036b0397d2f8e1c6efefd90a", + "01e43da8c11374842e4c93a85a5443e1a7" + }, + { /* i=2004 cDividendBits=478 cDivisorBits=111 */ + "18115cecdb480eb53eddf5e73fe984d32c73f31099397b5e70be0b131d5c3e480b6492ec0d7561f8f4ec8559be49f6945847bb60eca1bd2f4a8bd34d", + "6fe9639cc3feba71fd89648a8fd2", + "370e3aed900838de01c2c6cda05b1e36eb95216779ed73fb71bb47cdcafb1878f8e49aacaba2c5f5200f2596ef9b", + "29ea571b5ddbbfce58da6f55b127" + }, + { /* i=2005 cDividendBits=1523 cDivisorBits=311 */ + "024995dd1b0d7ad5d0805fc3183f1e4066d5026affecbada76a03ded5ad5f319b06118f1750f38405c43956853783e54534fe58360e84b5a1fe8df89926b102ecbbea5d98602d03a11958694fdf8a22607aa93d7fdede48dabdc0c95a9e22009cda0bc59fc864037681550c90ee37d93055153c9ea1179872722c87d2f870d6cdc4d9b38a85566284391f2d7c1468c4b2112c65849f94fe5b9ec8ef73f36e96d2cae18427270b38fa68dcd0ab8b20ef563a7a01114b914452e51b86c9538ae", + "6a27b82b628e8b8e439577e195683e624f286d2b8b68f1cb5311a47339ea558f29cd85bb4ebea0", + "05842d4ded6314325eaa418e094fce69d1deec5d3b2057fc41dcdfce233e55232d70c555b010eb501843c0cb0878e3fa546d86061c93c082e506558b2381d19b818f392d0d685a3403ce8668792e4319093a4b9422160249dd4b923408ef0674bbf00001d8236f4b398fa89eab8e7866d9a268bd1a95db9e20f11f3e059acdbcbd6ad1173da458aa0c2893a41fabcf6639da67a4f6f7aa63", + "220e24d65b52bea5890d46ae4d090e28bdc5904799d1d895475dc2668126cfb61f25f7062b40ce" + }, + { /* i=2006 cDividendBits=3688 cDivisorBits=3671 */ + "1cc57718cfb28414104507f2fd71e830637cbf55e6a5b9057ef9a6a0a7d0dff2a9a889f258fae8ed7c8dd2898466074185d9e01d5f62b42e744b6b7f1b0e3c42850453f8aeb6f6bac5a1cf675023a38a1d9b70b53452875d5fb79863120d64f1d2f9f8ec2f48a7214d4d9a00854e6277e78b1f302bc3112279e14f99feb588b029f3d68e6601707620094071aafc836a750dc473b4994b780d375975c2bb603e1225d2caf31a8a32e607110184661e53ae73b25541443a412c748a1fab4c961f82088299d4a972b82371dc98b9e2b5f71fe4c50b47e52cb02765ef8a3a50530461d83784b485b2d4ccf3af2b62ab8bb06c83ee9dffaec8b27a34bc473b024016d2ce65248cd0a6ec0c2e61d462ba0271a661b0b4d184663390616a53796eb3525825774e379be427ac51a6c8f333a41dcb903cfc04f7332b6ccebb74cfc67f06c41fa82798284e569a5fbc9097d0f30b727018668bb1abfce3bee5b92c99767bdba5488b95ab6f7fa22026a01babf8cd47b71aa46aeb7c1b53f17dfcbc94b1d6f9fa75a5ac8f7e31950a81c3f720cb6af87aff10fcc0880fcb2ca7383bfe5ececa09fe3395c9aa16844f99dcd82b7b74c0df05e873e6a1e6d7d2d919b880d9c50e9b7739374a8fffc6c08f2ddf", + "0c362fe4db8917e5cd437e59a95e92e1dd8ac7eec444dc434c5fba861a69bea71f2e264a3d54d7480203b1552c2984a430501e3dba1b13173a4af0e5be88456738b13e7319bb58d101e74df4e33aa3c5395e77138f187fd3829b0b003be891803b7c0f2fa0218acf043756c94044c735bbe9e42dad95639e8a8cbd2156f5157bd04e6d37bbc38261663b84243b599e3fe6e9593cd1469773eff583a0fe8c6a11a1447f25a06f1bda26c88b71d8d43b12015242fdd7cee55d73142fc5736aaa455e7b07b83382fb1c760189f03022628525c7327053c796c735509b2b215747566144f2a10f88714aa11430f7b2baaee772f754aabaf6c7a45b489af7242f141828ba028138d03e6ea93de202a07bcc852451a3774501f0b0309dca4a55e9cc69c0d2932388d2397f3bac80659763c69ebd4fedc519f0a0c38d5778e7e2da9e27dc8413912f2273f924ddd52a95b7bfe971b2247bdd794fb5c7dbd8ceaba375d043150b2cd8211bf53ee04c16c6921741d44d1536b96c31898a74c6fd41d1b6bbdc7cb8d0ce0a50c6fad39c26fb9acd45e9e150f77b105d99683d007b75f313623531c516f50b016096bce1c6842e1e12fca2b1bf68d208d0ecf95509f947ed2d130039160536dd3350e661", + "025b26", + "043da29e027039aa95510a31002c911ff7ccd0e663fa4816d41117b1e02cb66834e7cb7ef73eeb1ed34992bbada917adfcfd7cdb4e31e88a3ef23128f88e15286b904c04dab7471fb271ea8ec91440336a34755c94a331af0275e2e7b1b32dd3ecbcc007e03113a4a05d990cd706c3f14e00b51c6b4f3fff3d3863ef56b455ea2fa7e8760d5559c5e35ab5cf9c5c72a9d89e34a0f43f7bca6df80140d98eccab8b22729f0319ea4aeec7a7c407af80aabc536441db480284e89a7d213538d630b127cdfc47cad342b8757eda92cce024f5ab35e19ce88b3f28149a60cb0753e85fc7510701b9327536d4abe949ff4a5c497947f3bfd0b4cb2a7c1817fcc4ef4a35a1cccfb4f41f1c7f48a6529553ae12008c9e4495fad3b6876a5a083e20e742d777ad0e678471df78be988726766814de0f759b8ec6f1dab6aeaa01e00b65c9d275b695280d898dbe87a4d6e8ba16fa9c055ea20d39e10063682fa1f5b6d0b8c2194bed5dbad09e7e1b2a906255c4e0063b5e0a1d5d0065dff0a8f3f34959bdf3ce683e9c64e6b0d58af6b1d0ecd2348de80924b7298ddf7e075ad74e119629dd9341305e35ccea5204bb5b3bc590fa4d14359657f56aa060c89ad96d6eae291eb9dfbd8ed31193e68079" + }, + { /* i=2007 cDividendBits=1157 cDivisorBits=807 */ + "0f8be009ded1b2bc7d686ec87c2ee4230b1ffca8099b372f77b0acc6b071c4b4c1bcea288b41a4d1ec080076c8bf13961a6fe4935ecd29008c1137096dba01e4a3ec9b9172c5dd03b79cac03579b6466abe946d50857fa9edaccc2f4ef88d0373e5079f8102999c65ed61eef4d08070f85eb7da0b90c9b72f45aa308a864dd8eb8542e50ed22295cd4ca835244538b112c", + "3141f835d3d8b4afc29ead7db3f3965c0914095db3225ad01efab27a60d19e7f8d5bbfbaba4d0de909ea96314e17ef5ae9ccb6b9cdcaa56da37dd29a4039d1753bd6507197b3cc4775ee2634c1347840518570e3da52e580a522bc0ed8ef5ba238d57662f8", + "50cc09e4599d5579d9dbc26d950c481bdc117e0fa201bf30bd4ddbba83689183cb36073be05747fcaa8df094", + "07019adbba8509c8893faa0c24562719ba9d7781c0d6edf0830aafb81ba2ff9aeb555a24ad312d32d4a62d0dd397b2b41d764a8c1230dc5531b4720aa8ac59260901189d93d0eb64b1bdfde7b411293c2090e73a702946da25a77f8bafd221dd3cbbb959cc" + }, + { /* i=2008 cDividendBits=3246 cDivisorBits=3199 */ + "3502a157e53e11e7e653cef4af5d018b5b02410e352d4d86f3bb4a89689c8212caa95619d44c4468bf24ce901087ce1647fc9f91d66c5bf1215d48492f563d00ef993da75aa753e97b545de78c7f60471356ae82b300bdade319f699c6b163b74f0c988cb3fb94f4b43cdcbab8a2982317af36ee21df65fa3116b6083006ea2cdee37b6842f2b5af51d9e0175eaad181b8749d4332878a592d1c7b949c3648f252b7556040570b3d2a29360c26f10614300365d40d9f170194af7e4a26c8891a73e7af82a3a6c7c44f0010b708a7ce049fc5418b4c50cde50e6f8ee9b8b0fb5d34c6c551b91d3fcd4b78c8055d930af93f6acd31f5993be6ba44f706d7eee134cead4c501ad9ee746077a6eb87a1431d9441c35b5e3d3b91eb3fd1eeb2c706e546ce421d5ec762cb6ea01b06a89d77f702a9b19252ba21610a327774c812a1e7f28eb6ba3cf8305057730964333e6aa4ab3386c8653fa433a6a2bebf086bd472ad9ec032ef8ad35cafd546164858b981a0c355cb322426b28a4cd8c97fac17ccea96e682ff42d2e15057c5b4d3c059b39bbe80c5a994", + "072df1ecee66974340c642c51b6dc6122e9940ff7a3401ba3293150aeee60ed1799c1e1f8ba3f3530ae925a6a085cbf258988bba224161eb3f1b80e8719a2d19bb1052812a996da04e24526c9e2cfbcc28640c333a5db34c2d1fa64072235724b98674cb4ba5dea0d3bd02a27c60629143c929b607a7ab8f906cde9969fa7752bf6b49b5fe7b4f733efa63c4491ffe1f2fd8ee26fb64d1d993af566d404e678f9c6c0d1057604ce2078e7ae93dacc5d8fe27d2da8da0a1623cb5295a73bd7be27959e0a304fe7f605233f9f15e8c45bc4ffeecd19e3355fb6353890d83c157b0cb83a2f55511d83dd0633f9120692fbce27cd86ddfdb930ad4214bf04c81c4001d86cf97abf1280c2d6a3f983012da2fcd6cd4c99b468d4b073bb5751e85f382dd0f7e6c24e0f731d16bbfe3d6fef08b6a599141448e35ece7089e9e7d6e5b7fb8e8e59139d09b11a95ddc3f00a0c1f1251183096ee1f3f874a0ab0dee71933cabe1a3a00ce55a151b60aa4a516a3e979312e44d572dd8d1ee2a65d6b678d47057ef146c66fb8a5d4fc275917ab7def8", + "076232dfe44fd8", + "0203e85c52b8a9e43574385971b9a33e6f4421e3a4277fb20c4e152cc3089aa47c36ccafee2bcaffd2af8c9ea05ab3c58ccf6d5bb1568a7bc5f52fbc307ad014683780d7612957fb35e98367b83a87a32002c4364878f73d239e8e31e1fdc80e157db911b106e7fad74247add0877ed30a3c890eaf469013b9cfed5af1aa14f5d3ff8b441290f0e1188e1813a5ca442fbb242b398002ad830521a2c4468cec02d0f3a4bc05ebb50b710f6a3329df63aa9e7a618dc7e4eca3417b4c0cb0fc6fadb2f853972dd98bd47975f4e35c173680396831b98c7fd2c86a9d43183c962efab5e32f66a0f7edb7a72582b0fef478745771e69aadcf96c2afa344fefc91a7b46a057c19996bfcac5fe93035d15fc77afd57e6419b59c3c5f7a97589bb740bd4345680769d66c30ffbf1fa17e88b5f183b3cdd6495d7d20d76318a0887360c8af2abf15a5ae527af8b9697f71264d62236ada521c8b16b9749c7120e1c16c4593dd98ad3fe063d121b6dae5cdf85956f04c93d1aa29fa67b9e6d0f4e54df34240af3de778238d96227d490b39af30054" + }, + { /* i=2009 cDividendBits=653 cDivisorBits=188 */ + "1088968cc8616dbf5e8554ff480c9cb858282f9e4fac75095fb8a5f09266f1924278365e27baeb243461b2601ce1e27544bc1114ca47238d43439cf254381bcb2ce282908aa29f1fab68732b538c555d619b", + "0a782dffe5dd26bf1e80e91b75033043d333a6f9833e09df", + "019447a2034cb7e1f1e90b80f92a2f1880cb43efc515a6d8df847ab1d52fb1c1b568bc9f0696f3e65969f5dc091ca1903937792b21b67cbd3b4f74", + "0398fdf319aac7d796d26043f731e119b6064c62ced0178f" + }, + { /* i=2010 cDividendBits=514 cDivisorBits=263 */ + "02908e24d5c8ee09c222dae9e897a7d8aeafb52a5a749ae2505e176ccc39c6c466506de848e4abf37a23d5ab5634b3e4c0e7629fdef151159e07f55b19216e99de", + "1cfe57fcb050eec3503fdadb6e8b7df5ac0c6f21adf732f87d0a1a96c284700589", + "16a517660d6fc2fe9705397444b69ecdf0a2a45951b8dc14fb692b4dd86b4463", + "12fd1d93824799f39abf3d90130f551f24fe60d70871e1c76eadc4d5ff406111e3" + }, + { /* i=2011 cDividendBits=702 cDivisorBits=2 */ + "15d4e3a589ad4f9abb566d36b23a9627a3ee68fbbca2f2ad7d06e33e532368ec98d07d9f80a9312fe866c1967ae9b002bdca9685a54452d0fadeceaee8699678fe671d59cf2bbbdfaeab36be92da91d0cca4c6937c8d3d17", + "03", + "0746f68c8339c53393c779bce61387628bfa22fe943650e47f024bbf710bcda432f029dfd58dbb0ff82240877e4de5563f438781e1c170f0539f9a3a4d78877daa225f1defb93e9fe4e3bcea30f385f04436ecdbd42f145d", + "00" + }, + { /* i=2012 cDividendBits=3869 cDivisorBits=2293 */ + "156a3a35f7a9c55038d99cd668ab70326d5d585f7857efa0eb340e5eb06143f1eaa8fe98239c6b246de6b276c97df5036fef17255bff0baa761498c700a61ca5cabe424182900464c4644b3b2a6d8e79d45644a06cf9a90084218eebd10b382dcc9c5ce2b0f3ac0b86c5e15ce025bab0a069d741f0ee5bc2f2df6da8238e335def62437e4954f3ab7e7f888aa32477b4087eac3298fcb8c6539b22caf45d16c7f6bcd92dbaf4dac6b6d0a941d569006bfedfa90b4661892dcfee6ef4273f951671c1ad464c89437e7a6955ca2cdf02514bc90528c244cbc37b3e2ad5339ec9757e859c2901ed2ff5ae85f0c5f18ec03976986e11e2df87e443ff23911d73c311be8509d018f703d8952da178684c8aa8557cfef0cd264a51224bb023dce352a64e1ecaad44faf5b37900bf03b95678c3d9d4f3d04c8b40b6881d987997d7ccb96d68e35020069f730d186242bfc8696a34267e9d2bd65b934faa95dd8091a8ddd36e9b4e54f9b936f04379ed8fa4be0afb7688431821960c4a42ee08b0275b675cfb55416b6bafc9e950b7f85e107a4ecf25bf52802a1bf59de6d780a8411aaad945c891a2dc5ff2d1856db2db732328467919d847eb6684f2d8feaa8bdd48c02c8e6b2d15381e6052902c0e825ce6d307ed64525550f0dc723806d65ab518eed06a10ff", + "1d3ab223730969088f6543a43d6813fbfae478a703b1698e65d522d248a28950a4f2d0c26db339216584b23dfefde2d6d00f5370dd41cd8a2a14cb747e315ae4cc16757da9254738e7edf752e11faca4f64fad4d1ffa5e38a81c8b6153e93757c2366bb1c7da063c56ba720fb3c2b98aa79765d67d8423a9c8d4d87df6cf138d05e351ca606e6f1bfecfdedf5bc9e81bfde8a9d0a625ee12a7b8003aff426582b1140c0dce0a9ee26456ba0f977d050d2eedcdadaaacd3f9730299f98a9bcd12332cf7aa9e09d59dd7f4684608e0317e445c9b73002fc962e2905626569f0da731658ab052eb2a0cd5f31224c1864bddf456da02cb973763923b7e3b9ddbb3e3a08e6a40cfc6670f2008eaee0c8fdf5b65a6978f58b311f7be3f3cd6b2f37e", + "bb8f372b66781bcaa317c58922a105345045202473d99f432b395a545510c665b5a0225d69375c647a3e30710ee77285fc06c599dde3e1a39e22052d4fb8ae169c9fc188ac9900c738723720722193fb0e0811f9c9d4c3703601a94b9a5587f0f4be4ac0f7f168fdafedd06ed1b32edcd342cde9c79badd2dada04cabf0b2ae193286dd7f16ccdfaaaea7ebcdceeeb5ee83a17b75558ed07a0e5f7c63ee1ccfc2f0bb353d30f36834cf36bda0fbdbcae35e768f35de00f1e3319a1271415a94bf971d27cfd", + "18cc65b1e4c473cef6e87fd834007db65e91369a8d6a0dbfabcadbb05c342625be7ac4d44691d52b41b3d11ab4f0454a9d051a0144a8c96cae6d794cad7becc3c19385e0e3bc7c75fb91de3b0c0118432fd01051f3650e30084c5a23330c88f24c7e40b4d672f6864e1121b8c392f02d47f0e6082bbaf0b4d86cfa5d56ac1137c9cc924a9a54feeb64d68fd834e393c62c2bbd3d236314aa2801c59056c418fe247c7204824ad3ab7e0de3107d9d1cbffdb3c1fc07789e2c25cf769d2326556d4fd97f080d6bd6ed266b216ffe3a84743edf954faf3b067a525ee8d36fd28d2f682a20ad007292f1d41a06441cbf2f6de0ddf20bed0f826240e774a69a7312495678ee4d0918bf0d7d464bd700c42bcd59921e13102f134ccf45fb98426579" + }, + { /* i=2013 cDividendBits=2045 cDivisorBits=272 */ + "14c0ea96f7b36e3e8ff0984f04153cd3d3e81da5aabe76160ea8f0d0d6c5ee2aae6dffcd43fdec32a261435574f2580fff3bd04903fa53bc6cac09374161ae0d7460ccb30ec167ffc25fab785bd95c41df3537ae116514398e6839fd854ea32de5630dfcf80a758b7e5c9177aac0ba15c24dd97b5fde13f23af28dd8fb0d6d95d71bdce16fe0137a74a1c74748822c88b51c1d808314881eed8b3c0af17f7ee2dd87669426e9479cae5aab51dccb7baaa513e5bf8532256072fcf5e5b53ae2d14f705016b576e36abd008364c501d157a721d2863ea498462815c31e82f93f7b808e6005f65affdf4b8ce961432500aa869313f576d7882cdcf2a9386e7779fc", + "d7ea76b8ca1e4068c2e5c2a391dc975eee72839ff1317b0e8a7a64082abd3a9c1323", + "189b3e3ecfe16c080bec38379f600f83dfb696bce12af0fcae3594da0eaf4517288963c0a92eb2e53215f3180184038dc217908f53cc796de7d43cfb14aaa2ccc3650fd35f44a20ed7eae1f837c97b7b41a93fe137d7dd8716a0be92118d0e620dc191adafb2019a9a9fa80cb407a60b30bd0c9de06af23c6ebbd998d0584e341c18da733e7cdd330e3dba42532d36b8847426d91139f7cbd5e0d71ba8c3901180f6c76d11ad6a5cbdce28d093d9bb77befa9e9e9fde3dd32a7413d598e0e34051234af2e19ef4c6127b54302e54fa7fc803870f94b7f3d60ca82ff3f120", + "48cdef691129be06085ab7a993b43750808d48faa07f654193865cbbb0c295b8229c" + }, + { /* i=2014 cDividendBits=1290 cDivisorBits=797 */ + "028045182c80e1766afadac3d3f35e0613ba2d4aa7c8e873908bca9f07e4d6e3884fdab9f7d493a97f5d34873907a82f61159c0d6613fae9aee19c52c98b2008948b244e627d2f2d30197b13a5c053a50fc60a0809e42b735f2a704d37e105dcde2c85cc82341be814316e12954eec66a98c31955b69f9adb185e1c85cd6d46ad61975e5ed01d097b675c371a9d232e36ec8eaffe95da6abb862c36c70e4248dcfc1", + "1e95366625816b7bad1632a99006de4f47955f7b8801a5f94aef6af09e97453d7403ad8e30f3090f684d1a0995a39d5128b925d04a4bd17b005d01f77179a46882b6e8d964aab51dfc40cf70864edfb06cf64f9d3cbc6b819c8fdba31501e878776c1ff1", + "14ef82160ec0eed4470fc344af9b33828a37ea37c1834581cd1bab54fabb037d6339a536a2b1c7e0153dac07663124d7392dbd0b94f8c989effc5f403abb", + "109c93ec592b70dd88f0bb76bf8a621e0377f233593371fa9728d3a2281dc47ec6b640aee7827491f831447eba8935b84dfe401b397cfda9a647a189bed7722c804082fd19af0a696d7ababd674168e1d90449f1b7f735b8508bfe4458b2eab7fe15e0b6" + }, + { /* i=2015 cDividendBits=1981 cDivisorBits=82 */ + "106ebfb4040e402037b647b831f9d7e5ed5231023359392855898823b8321b5b21eb1776380540e1eb9f79dba315e6522e43257bea2d468051e7aaf47d8698c3f60caa2674836150bf2fd04e80666ccb15eb94e6a605aaca0a0ec3d95a25da189c0f3912ddc9e8a8daac3c973faf38950a8c3be8a402911ba5413529624fc78deb40e8ecd3d16e013b442e21fc7a6699d9bf0e19f76eeca7c520c068ffaefb12ac0e2f31bf8fbe3e03157682272dc0401c6fb4e808a2477dc1dc3a090234a675c3726a16cf3eb8ed1e81bd64ba5899132cf974f6dd9a55abca91e2141bc834ae15bc1507ffddc85eead74c4ee79c839dba5fac4d7f8444ee", + "0263c6fd3e4a37fcf672e3", + "06e0538b88b1401bead2760b5e8a6d310823a806ef8a8d2301a4e7b5704e9ab68ee148da5103861cd1e01692e6020790abb16176e3274bfad5aa1f39876961fe5699023b69d3f7ae7a1d125b281074c7f2d96999b320fca5bc28c5094f9004f907dd7926a5d31673e8261fdde4e13cbc81f62cce8a6d77ccdb0e1e2c3f1a9da2aff700b6d3fffc7b3fc388bb41077415c2118bf9ffb31a905ea092f50853576024ddf81a3318beca96858dad3b96e1f6b0c1c1ac6d0e17df9cb7e2910699226658216b8ec07ea5c924eba05044ff6dd7f4d0f16116ec5d7a4f96cbefefd44ca2c35baba8b7f84f49fcc6a2086976", + "014e29a3f553c493b4354c" + }, + { /* i=2016 cDividendBits=866 cDivisorBits=431 */ + "01a58c44d8b963b68d5ca761ec15f26bd16f43241cd375f07b427ee7eedfa5aefaf3d92fda1a41e40218d42b9d04d5ac36739447e731a087e71eb80770f598ec090374e226b6b4e6b8d9817acad03f9a222388abb88906a97ee810b18440583a05c9880f1a55864726a82af83e", + "708f9e1986a2d1f45322f5be2e0082393d8a81cbe8dcdb80c7fe17443595544e0f63d78658fe1266945486165b9f91d909a721664cbd", + "03bebc5eed5a849bfeb2b2b4d8663ec7bbbe260a9b9d33b17052a6ddaaa3b4d2d2907b20e916cecd1443222970bf235d27ff2eb81bc849", + "4d7e6ba2f41f7502308c080429c5789487a704be016c50b5cc25bfe3e37f5ea6a10c25c31037c3908a8369c7ec39c9d8da7e461c6e59" + }, + { /* i=2017 cDividendBits=3108 cDivisorBits=679 */ + "067ca3f9c7120ea1e1f99e185714e9df83c89de10548080789a715ccd869311e3ec3bf00fd6de41d65c16a81dd36c444ed7740062497fde8c90988389c8b6357f30af5428457f2de2bcf48edb6e18cb482e128d8e2bb29f438106e64b7ed319aa85c080ea7da9ee216e05fd4a43bf9d1936e4289092ca2b9ee7d80b032946fad8c53fad40fea8bd977d10a28ff64f9d1603c806c26d82eef4682c6ee3ee7a6c9b3ef18cdad594223bc07ec27a73c7c15279295042e15da2d8a87e7351f27358fd902a760cb26c8cfe9c9f7ac641d7c695134af656973ae0688dfa4f8b7d6270cb5e71deac38a656747b4f261e30bd6e34e77f2c442f8ad821036d40e58ac74cde8a3f4e7706751fbfc069d9068d997a8f51169e23416abc8675912e5d3dc80d221fd52844e7b63e31df8e069330aa5d4f9abf929a6e7b620dc6cf0a3375d825a3b9da7f5fff452ab82b959660f8d27acea42a6270cad6b503e8e69db871b7ee9e7025dbc02ffab0115cb97c7e932a4e481de70ba03f33ab41c6fc035d29af996b08da4794d", + "62e3cc20ea0a97e97fc970c60bfc515ae0e9ac06a29b5284ede810029b0cf3ff82e0f5baea5ffacc447ec29cd37c33ea7abb58736d314331618383a12efb8a2a18edb2193b2452146b2f87e11db72dc5421bd210f2", + "10caf72678e8afe9cf983bbcdca59609a2a04dd6de086d1779b86f74ff03406a79c794b3d6c26c5d6218f521e361acf0fec3d44023e912ddba24eb633098783744bac6323b4196f0a95b1faffa94447f7874b544006db034872760619e294eae0255031c6e6fb00b28263ac03499ba4b4126253d284d6b5dba4e9c54304fab0bc3e7a582b71757357758932a685cc275c6a6df8bc3234d6b22acd1b71861ae8e430e9bc9d269ab80916e6292634838e669f9be81563b4338df787e086df7bc1de8ff99d98ae8e54a328a3f710f254e24248bc69936f6ddd3bc659d26cdbce1c6895d3a55645ae86fbf9b4fa998832893c9579a4682e368808a249593cd2fa7d8f45d11a8fb779cf1fe4acb50b3d64cb7b419d9c7c021658a9da287522ed9c9dc2fdebd8bdd260db49484082bfab966a6", + "51093c5de6c25ad72277ba676e100b65bb0070c6451de7e5b4fe2e5646523ae79e42a9afaf679497f92b1bcfb721bb3f23ed8398f0dbbc9149e857b5503f435240191ee247fd74aa2cfd14219d9929aebc3dcb1061" + }, + { /* i=2018 cDividendBits=873 cDivisorBits=520 */ + "907889ac7c77c04ef5e6fa0955e880985e8ad176eeea017d935729c35e4aa7a5c3704e47d591c5d929867cea04e7530709da13de46a9c590ea6adb34278a873df1055e52ea19202604234931dd112fd782e9a3c43021ae80b32905709992ee351f99d75445b9c848db3c626dfc", + "cc91a7343e63d33858a2f1bd2d467e5195df780925bc18ebe987381ac5e4200617609840152721eaf774d8d8ec3246aac9857d64c8f671d1327e89caa362c1a4b6", + "b4cae2bac0a48b40de53c6b2ae216e7eb21d0a9717b4b650757d19fa88977860871b3c9b588ff1beb9bbf852", + "035debddd8108b9aef808d271a1dfd04bf31e5d33de3d8790ce6998ebb93cae77deacf6854ce2cc1cad43bbf87cecbc70422b686dc951b1335742e704b2bd95bb0" + }, + { /* i=2019 cDividendBits=1763 cDivisorBits=129 */ + "024fb6f597b583f4ed42aa0421c669cbac963e582212b2c914c2539425b6319ea04689e947579ed024f30e4b23894690dc494b1123b339d70b5fa2b76a34f5b073cc0d4c515807a78ec80f3c1087f409faf956ccc973a9944d701d3f06aa6397a24b24440f3b5ecac6ebf3955fc28af2a97005e66639b35d1e88125c347e31a5c094ba6f388dce10cbdea2bf83b5d6188cff22bdaf7ae5a0d546dd65b820d2799b4230d04bffddcb1b326dea4c1f15fd27b617f7c1193740f6fd58391b853351c482ef388317bfb7f2a3d79e6d5a76fff12c7c401057c4424a130b5699", + "01db27349bfaf9db45221162db1bbf66f6", + "013eccdf97545256342270a10b8253930e67588de097d46128203075d077fe9693f93bae938deb694737e09d936ca6a9dd1b3e84bdd3a5d1cc9161186541becb8f22507e6f11983430d8b37728dd174c7bc10fef851ea9777aeca47b1844db1c10aa634eb88d9c9ac6d46669b82aba9596f03756b0c4c65fd61ef5ac80a0658be5c5e85604a036c3eea6cd3311afd32684258fb2cc9d91fc9db04fa8d8e80a8dda933107f36e5a59a14cfee7f28bdb8396fe3ed6927acbcbbb4af9a0ab814d8b6d98afafa2e8237db83240c762", + "8f57ef37a5ea0c47dc97a711e13cb26d" + }, + { /* i=2020 cDividendBits=1936 cDivisorBits=1400 */ + "fb85e19dd9c10e2bf4fd5bceb24576e82360385975d3b2e98af0cab8414e1b9565f352316117c7bb2bfe3ab5b6675dd18fd64820b76e1bb8f7270aef3501b8ea90e2d5e6846a09c9026ee3e78d599cc14d707980925464769d7520a0efc4e798b7cbf418968e08161e76b011acba0fe8a7d375b25fa4cf05175339d0f2c5fc0f900aabf1bdd80f3c56073bba598cdb59769433f1a9dfe012b6cf278a6b673ca00f52d33965abe65828c10374974a96f169ae23a257f684ee4036cd4c4022066aa696d6eff7593d3c63335e02b9e6f27228a16a39f4774adf6823c1b1356a43ce5b4ce866728b27e3a391852e04628b3328ec", + "2bb813e5a0a4dcdd20aefe223df5cee8db30d7c8f7d48f3e5f60857c8d498391b873b2ddfb2a746cbc88c92dc2803634e0d2af0fae6f5317cb33f3ef94c1b434541e13aa4692622c5b1b5b0a239b1615aeefd3ff5f3eb1cd4b590030c517c679bd95bba0b6e9c5bc67cc3f40d1ff2db392876fe0ff38e4b4a868bcb31790ee798ca8bb6dc83637102dd618f4ab9dc4bbe7de9e8feebcba919d1c7c20b7299f317adbb626dda1436db2a76e81602e65", + "05c0cf7d1a7ac32b8fd2ffe3873ab2f4f883b77edb31eef31c901fc8d4c909fa8a233e401da143588de815a4608e470ed5e36641fc27b60ca821939a1dd246a187ac738b", + "295edbb9d542a6ee1554d4eea41f3016d2e55a948938a7b3e09e59d2e6d29dd6748bcb4ca87386dfa3e4d5db900f34396d743604068d3118859a6c85ee9a5989309e663438977b271c3387630aaa972e40498bd646f0220e2fbc387d88850f093bf33c01b57ff9d1e5fe4b9707828695984107d56023fb049902f75d8694ab2dace941b6fa413a99c6156bf0d2f6fb87d6573e0898491060f8128042c54e6298414df78ffe6d90c57706a8a8469915" + }, + { /* i=2021 cDividendBits=1702 cDivisorBits=35 */ + "04cd1ee0ba10548d7778600bd3791354d2991326527e1026ed9919d89633870bbafaddd0d5ed99680c8bda7d6dc1f09d89a5f390d780b568ff610f8ba6f7be3621284522a1df5bb7f7c33fa02205a905e9090721442dbacf6830b72a1a6ab1e14b10442fcfb5909c85f2276376c4373852d37039f033e99e79e2cac57f79822cb716739156e0cefbe9d784eaf17d9651f8f6eb33eeb8de906035cc324bcddbb48bf1f1e0bd9432666d25c734953073ab87e55c0dd1c6cf0cc5340c5d72ad64f31b966100458242281d2ca59e4097b0f93654e5ce81", + "01a95e2666", + "02e3b96ba2345a92dc0106ed026a29e5edb84c3ecc021488024703c269fdbe268f0e5deea90971b2a06ab27e93238ab789a3c74cce486024997fac73c89317ab7b86576dda12284e0e62fa9b38411f457ad72142f7875122e0eee765d452c669bed3b1b12851b7bd0e45a846ddac6ce2bd907077119c96a0c5a23d529d73a680b553fb8077d0bcc1e2c352b1d5e41ce2a7cb15efa9975c5a9bf68862792d6bb416bab39e6dd7829d0a60bf49ff718444deb782d04c5a3127b3bce19690f4844fcbbabc2cbecabe149a926e0c5c62d676a7", + "4d83bdf7" + }, + { /* i=2022 cDividendBits=2720 cDivisorBits=1478 */ + "5b98df371e9bfe0e30eb86ba2678792931e3e5f9991f54cd8b212afe820025929c25f71d7db851c7359078ceb3a5565bd8d42139c2b42b056cff09a1ca674f81355e9051d4c34c5d4e285ad3d035ffa8a1c9ea4d22d8488c50ecc85c38c4d7a607c7e4af5b5367d7eb944e8f821cd026bb4e573c9c8ce587caffe8c8c2d7e945aaebb0fa74ca7251e676442ae736269ece9d81e6938544be1a551ab9e7ff44bd00a9ae1d0956ec76eb1e588a88c65ecaa6ab0fd9b79fd69335532681f513a51cc2ead802ab44965a6e3848a825027b117d9f1c8dce03413865d38908f99c3a6e4ac44540c91ed56243a2d55e99f9061dcde1207420a5792f0ee75f57658848ea08f8a4dd6cd5e1052e57eb0777f9e29c6693b7bae8c3a671db466b3bd48e76b703dfc80d7d169cd904cb904b807dd1c269565846d63f024c64c40e2a51ec8b62c07946b1f63555866cc399cc18b7880279f6a9ea", + "1f9481ce4439df1f78239cf822f17aeecb833f3d7f287f9a0b51297fdc3138c726c4392af8aca9c8174ceabfc9a737334da38c15be4089c2af02b517719ea74f4137ee86ad70a676709680bf4b8957b1ba19753fcb8c627d9bae09666cd423b7d516ba72082f6e9594e5178a671f76a12660128b535d14dbce4d2c72942635e6151a2424f95f082032e7a95e8fa75a6523c25d16c37c65b13da3a9a1bde0997b9890fb65002fa01e5d4c56be91b5b1f6b33fd6dbf81cad25e1", + "02e68537588ffaa39f294eea34070a5a0b72d15c2f97cba10d714b831c9187896b0bab48a012055ed55a2be5a20215dfc9770cf84d1a6dfbe125229e7d7e48cba56e746a7e72edd215a4ff5f3e4ecdf0d33af997c8a912dc4078f9f5dd84d5e8c180f9406b4beb1fe738ce8ac52ea599eaf422002bc679b354579103113061e1acfe99291c03001d039225966e6b2b8396e9adb973ad4745ee6ffa86", + "150b381055b8791c357b073d5a75a9dde1b418595f3a032d51f1e0b24490cb5efcb96059c22e659e5ca7cc84cb46cdb7aae0697f10fe653be390419c7a59d00861c2166d9cca46a70593dc403d14c728d5e5b727d17e3c052a8bfbb7769498cdc48bf1b02bcc9361b126e02fe8e28bc588e35d84aa0057d90dfee2010ecfc565d180e4ef894253fda1b8e6d6f19d3f8505fa8ece0f27fc2be7c5c62b32cc5894f08d3dc2fe2c38456471d9d3aaf6a44d8363f91332c5c81c24" + }, + { /* i=2023 cDividendBits=3987 cDivisorBits=1576 */ + "51b8ddcbfe850fd323827547f8806a7a8174f0ebb67f0f4fcc80bfe25000ef01746ccab63ce9335d1096d498773983bbc00160ce56689b9789ef94bba9e1bde24410a0d05aa6d895932f5fb3c5317db9d76e3ff4209c7be138b152ec1d6c24d1c4781b278c816beb3971a87d0903abea3e0790cbf14e3f2dd1e112ccc505f5d934ce4867a758570c0b33ad599c65e08f235b1fb831c383bd2a5cc7798e66ad30480609b1402a588de7bee42068c448b98666e88904177331af02159c9354927759e35da37018ba49c58921dd4856bb924f1edb7919606672ffe0d5c7bfbbd1aa128ed940cd43668a8affc998e0ceb101821857c85031e99c66f95c9bfc46cf0f6bbd7381e6f7e59ef5590daa3c0ca89723545084711ab13dc7bca60cbf5804ff45240650971a6907ef8d06525ca73c01a2efb799a3ec8e929b01d7cc0cad538fd13c30a9057b9845d8850f4a98e4cbe8850b9a7374b6fd7fb13586e39692ec6885be953380319cb5963d987f982bab59db2b689ab30e7dd53f4aabbf1274b3f5883a6f9a854968f5372764d2b5b14744372163810b5773f7ca3e30f04a6f474c6abb6953a546196830251c14c3536b79715bd4ecc3441b0df25ae539a37ac1fe4dc08103b814196aa803c20595c0e334a68a33271422a822cead5b38f7d61b62b6fda027e81fb4e4bceb84fdfa77c78b3d3d", + "be42a1d73e1c293cbd078d623888b28cf9817ec487a3ba4d21151d29eadda610b59c6f30c430aa7bbb9d95b59c2abb01b045d76bd4e1d3db818f6aef4787f0d244e2af1287db01803a32fec7c75bff5804743bf79a492d34c2c922fb8edbe123c0f2ae639f8c917dde9eb4051551a568fa2dd235dbd6254e963b0845b69526af1c424011e3dc0ac3d97ccc992842a97e1d9076ffc1df6a415617adc138ac2f2a92de803ac254e52a012b81ad728ee2f28d9b2941c76d8d1ac7a6f5d9e77d38cf655173f574", + "6df58d70b4049adf974661232733224086c6a4424e081bc3b0189f4d8567545c453d262c0438bafdce62d38c42f4793f057edc1e807d337943177b45e2b5139f988c897a9aca0a53c5398890a488a7b814e6990ef650f1253452b70b0f82754ced297626a829d39566ca72d12e53b6094859d2345c5c9882fa86cba018c93ee3d57b5be73e5050ca3437304d2ef4f5ecf37b525cfb76a8c8934efaf98ffa48ade9783061ccda60327c472e67b1e7c6aca85a3275fbd9643010d5500b30fe1542363e8181b24b94f109ef86cc22ff1642756f60686cc5953aaa68320b6437b721fbc5ba39d009d680e9c3b9ec49b21b7192666306bfaaad3fd23f54e713db0dfbd651abfae0e296bd8c1c5879e4bcaa90ab3f773572449f916be1283642de6a12bbc35ea0924d65661c1645c880", + "260242afa43d68de97223a034fa3dd6baec89ee761af371eab23a45b95552d61bc6dbf262728313c34687d0fc7f2bff6c0fcd9bc789b5ab3f32e2eb8e5a21e5366f6f9baa452c0e038c5029186b980cc909323f7b5f31ad8c3cb0bdc28a5b951db55e9c1870a3c95f83da4c805874ef5068d20256037eceec21559e1639147ddf5cd9cd07bb421fdea3a590bd8651a6d6e766a2add021bd90efaad4dcb4bb4131bbd88d5741690d447942ce90336ff67796bdc35d34a8d8ee47c1ebff1140124235589e33d" + }, + { /* i=2024 cDividendBits=2311 cDivisorBits=1348 */ + "4aa898d0a05a3241bac3647ff4d90acf1281b70280779573496aff90ec8314acfd3cce41a29c8221b5be0b99c23368b54f38fd57e83e58a41e68aed8ab43b2e3c9ba180c6cbbcdd14e7e40656c8a81b2a08d8a89ca408f60d3090fe690f92b325fe74a4f6649c9c12bb64447fc96a4ddfbd58993e50ced40a0a9095ccda58d65ec6fc1aee99b3f20b5426fd6a4760d5d67de07ccf80d671914c472e48272882186ac480fc0e1b4c8a9b14138e590c3f678c7b7a36da1b3fbe8c0a7e3b535e13799cba84cd633da65fe9456113153fbf228c0a5c4c211e8478913bc044179eb61486e2bc9f1efed0ce871ad261977dfbf694fde3cc742d16e343cc47209e4cb8cc8c4b0d1c47571e13d92b70dd398b15576a575ccf6cac5e180d2cfbf52e347c422", + "0ab3067aaddec065545a38e61843e7b081071cbbdfd3788047fca8a63da3d7ba50b8cd915342b6b97237ac01b398aa7b1703e5349de67c6f466284375310ea163b4cd39a73429a0ec6fa630a2efdd95575d571f48b87849169ab561605b41fc657ac64125d4736c272801240bc54749b06f1b37c0ce20737b932242f4799fbc2b945fc589aa9b372f0e56894535490d913a2d0326ffd4e6e252c7a8e1c81700a6906ab948f1de6fc7f", + "06fa5682e71ee63d7ede0d8a00d89d7329c09756d0064d6b40f61126f0c8fc716c5ac77ebc36c138cd8c6cfff355699ae68a1fb65366b098be1eb8a317aece47c657bdaf0a79182e17991586a79698d12169a7117fb2135c304273279aeeba50a1babda8096d8077cd4c244598d7da92f055470102fd584f62", + "adc9b716ecb5d0e6ce848536b525b5290129d59d7a1267bdeb7a36d8ec5601f00024c1101d99bdab42d3201823361b93ea6cfb14235cd27a13f006932ea45b3a5ac5f14f4e5e0e690ea15b1963192c45212c5a1c813e4925f153ffa3c65bfdaec3d1446a86ecdf4de9487dfa3ceb1354ba1d3a6e2500aa361d31b4cc28801e0edc795d41b68f47e6f0220b7d543b0086ec29624693c5bd5a8914912867bbc53e7b85af60da47ea84" + }, + { /* i=2025 cDividendBits=164 cDivisorBits=108 */ + "05ff2e2841d2d88269be8279764800964b460e1949", + "08d97f923b41933f27220182527c", + "ad7977e87b0c9d", + "06540344cbf25b5e365c3bafb33d" + }, + { /* i=2026 cDividendBits=367 cDivisorBits=87 */ + "68a076f33cc5d88d9a54637846112ca1dba667e944b0bd462464e98ef49c22c807b8a97e5249841fc51b8de98763", + "2831f4cbde46bab6eadf3f", + "029a5c5a152d1c2cbad48fa73617407a9e181fd8b24125017d8ef46b1a4bbf311252f858", + "0b6d71458dbcbc34b9c1bb" + }, + { /* i=2027 cDividendBits=2146 cDivisorBits=145 */ + "03f5aea96d7a3e4be57507011c1e0cce7bb51a79a2f21d3ece1018723bbc7028e9c3c052493822a8d9c4fce2f16c8f6ceeb85915e6f1d3b9ecd308ac92443944f1d2d2a450ea66629a3375db8e14e66f99f1d5198f3509eb7743e5966f6dfcefe26d761aa03eb16907b68ed5890bd3ecb0b2184a84976a7ada3ebbf6e128911d2b5115ea546f0bb2b622aeb498a904cae9c6d64cab40ff05e70b023f600873568446be4c50f957714bf718d3cf0d3bcee52e919d37a564fda281dafe3d3aa8629e3ebf4dda2f863a1a2679b872c3f0ad52544c98d8951b043acce4924cfacaf2cdef642e8fd6188fee1245d94577f11bffaba50fbed276685e11103937b93b31fc96b793422048655370e4a664", + "884441d386fdd385d5a1783538705684f140", + "07705fcf9efa9a22aa8a5ad3aa1aa437b42a11a78afa4ecc0c3feed2ff3233464ded390b441de25930225bca8200c0bed6c8b9b14a1d560a734c10a54f73344ae9740bf1774a0828e4fdcd500478249511098b409222a176107c62e943082058f6bb9297b007f6a060c24b3a9a2a9154164abbdb1c052bbd40b27acaae31315d097dac1f0479296bf66ee3ac37c15f461e5c853308997f5d5927667ea7361ef28a8ccc672aaa9f126e531a15394ab4c787854a6fe24594e772a7b0bf65df75f79535457c6a7497959e57a13d34e4e2b68f3d50cbb3e3e9e9817bf88c293026e688c4401ca7fdad9ea6f78e900942e1bc23a694a2bee54d3f77ef2c", + "66779efcb4254bf75b2266a411d390106f64" + }, + { /* i=2028 cDividendBits=2631 cDivisorBits=2131 */ + "41f0afad6a7acca1a5951ad26115f344dac23892b2746d56a080bc0763a2d6f7ef0018add6e620cf05f10b0219cc9663e6231971a8994e4167e6fd24f3182129cafbd2dd8dbd802b13124f318adfb77f56e6c46c47dc0ade47723c0695fba07cf9f9057c2cf063c6760ff4cc3024a91913b236a1622c90051727284b329bcb0df0ed9cb5a6e78df796b603591235f07a51a87adff3a83421aa75815ed6a2cc420c6db12eeeb04d0e4d96e122a5be0d20bb9ea77267cdb24f2715f86134bc19402fb0c549a0ad1a72e12a7b4f6ca7b66d94a1e38a5d988e6059faee12550a37620957fcfb64611800612c165ca94495814d1412a6af539c09dc9c1b7fe17cf74a0626671da576416feb0de29a99f8d993aa6b950bf3b2079bbe8671419de9b69903ee0db4230b44317f884d9b46d4ecce7e7c6e278fcedb70be500c2fad985c598eaa402f5eb327d1d9", + "016a0f0d0c27c7c6f16298c1ca545f2ff9d9acb336fa75e85f89938cd5cbf2419240239aa8ad4e44365c121c45693ca5ec5a2b8f22d945ebad871150245261f526f1b1bc3877025c1b332823a806db5a067fe74c23e5a4c2805de855439a6cef89310529124965dda93f2eea2abdb70b980fdd090dcfca8e13f01a3853519337ca73da758366a5a6b6f9cfcd4633c52dee3d0c8455869754cc17a3f808d449a14059756010d4fd9c9e34620cfcb77d13cfe6850cde11d1512be902ae13db02d30465281ea3210a7db346bad731fdbe3cfd60745e70019e323b37432a80588570b7b4b67be3ef165acd95438d2d56e9b1bde3ef35b1304d5e16b66c0179fe48ff16f1d01a6f10f9b3d1f999", + "2e9fc8cbe58d55a4c52a0fafaa5235f5cb1ed356a383486d429fb3f357741db9cc67bd5d00f27fb63a4a7268a24d1edf0090ad5c45099990b8cbb6b81c5f5a", + "6a61001fe2c42a71d63a034da2fabe63167c2aff60c78daaef998aa8d20f0f7af51f9d64ab0fecc6ef76ad0779c33256cecc1f30a98cb7f1ce32c465dd5545107fed3ee203b7e58eb41f64f0cc983bda74e3bd243927d5fac311ac403d4abec64268104e51233115583fcb4bb38b00cceed60312e4f462e02692baa105fcc4914703f2b0a7c77968e6ddb78d19cac33d080f65198359102a7e2777ad3193fa7cc5361c9a5db4988081508962154309a223d33c029add1e368aec576bebb980e192a13b6c6e288fdc5696e3ad65a5552d22fbfaf5a8451e8fc282ab75b050921eafc7e6fe6c59de15c0fbc5e922c5fef6a3e1e69b8072b16d7bd7e9c35081be3f685d052d31b74afa4b0f" + }, + { /* i=2029 cDividendBits=3029 cDivisorBits=219 */ + "0573bdfc151413ab7ae8d8dd057cf5335f728c776ea15aefae1d0133d8dbec17a8587cef1af9749e15d9388e420605f73c3b217f7f1772b32d94fa0d4891a3f347b253ca3d0ecb06baf7e1b5fb2e92da3c86c322e4888c05f1fbf610a57dd56d061a41aaf78068b40b457ca8794ee7caa5ba6a3845025db559b4b2ac699e719254ff8757cabc0352a929637168db0e52fb14a2d5dba18875b6c0a6d6c311613044423e4fb0499c0c99accdbd01ec7d52228cf183ed9c71fb649faf07e2c2ba019690806909a286dc10b1510791b9bfac3e74c69e472cdb34e875ee6d34655c655fb896b164edf37638bfda67002e6656bda7210ba52e745696e666904491c0f8d9925fed2c3ad63d0adb8e255a72da95d2667aad46012b3cf10aa670a9352e769eaef72c59d4fc5274e4e7793103becca1952d0fb45920f52d09b746629daed3c452a51f772582cbdfe034c79ff45f57839861a50c257783cbb86accdebe48ac4834885a16809eecfd9c00592449c8c6a23859d4e44dbcca6e93a6", + "91646f0838f0032434bef264f56c3ddb3b71a4907fb7b0350a8723", + "09998eb8650ba8275a1ed4fdba050473e84b0728a6b18f00c5658b54d1948cac302b63e1e39f66c65b29ea493bae306bb81c1999b70552ff10c9571daaad3b5f8e010b90f913b2f08fa7a0c895f7c5d4d9f116fd3e82b8bebe21dd2102145256cf92ec2c4c9c1f3eaf333662b61a0eef5f0eedc804de7367bba5979e0a45f8ca0acbc6ac2c8875e5c74bffe2c0cc4cfe7d44fc2c722ddebcd770bc5a68630b39ff35596383871dc91f1a59ad482c14896c23a9f799f95f6485a9c4d75d133a668dc875115205fb10533e64070e8966dbe9084e549dddb8d37d65005b53f8efaed79b3028fcd1123381aa6a3e4b16b316f21eda1881db3a40e0c9b0c7becb3f5175e45af7634c5226819d480968d03bfa85d659b81cc7cf8bf271de57bef182e4bfd5d55587459f3ade3f47261d82ba955be82fd15111f64cef38d32e5ede99b27a5538daecdadd4846096b0ae3ece1d5da508ff9d93aa53edcab63183ac68843", + "29a8326b73b775ff88288023668116a8d03a71c7f40166ddd09d7d" + }, + { /* i=2030 cDividendBits=628 cDivisorBits=534 */ + "03d4c5ace50b0a2797c0a2166fc94f49475ac0ccd672b304b8eb31603970282507c58febf3d0e7c008603e676c7b9f2ba8f856a4eeb149e6f0989b2bcad61022c8d7966705f1829bff48256379684d", + "21f07670b96bce028fadf651fa20c068d979d7d175a7b02f5bb7dded5b14770bf554e3027da3f3b4b451c8a41cabd427301b317938c430edfc042d31f831c7fa63f829", + "1ce5d7dfc40ad4acca3c8c3a", + "1b92399d0d05fa20072d361364d04d339b677f93664bc9c30817b41c0f12eed7ff9aebad1d46652eb9f7f2233a9ef05a1d64a74c4a8f6150f2c028fdd2631d7980c303" + }, + { /* i=2031 cDividendBits=310 cDivisorBits=131 */ + "0747abbd8b45c2ed662eb460aebe7a2bf49579818c6a90b437e75931c3e8f99aa6409640d860f5", + "017d00688656859073f88af4bf4c2377b2", + "04e4399cbb4c678d33212cf9f78d11ec88a79aeb943510", + "01708125ff6b38788394d3a7688df10bd5" + }, + { /* i=2032 cDividendBits=2460 cDivisorBits=1907 */ + "0af4fa0edb84d8bbc19a03ce8a1e87682d75ba57aa380a3e4321ee4e7fac20b48adfda9c1016fcbf10391d1da1b622a162c8d43e3335d203fd2b098804cb00a3070cb10e8a92143bfdfc022a9cc77d0a65c3e1ea26cb7d6b9b6a0020f1b6cef855cad81b008629df183fcd42bcf3389c49a0e5ec1ef6b9900eb4944ecceceaaeb13d6ad4ecdf7aaea0a0a3ed03f767c78a05b57cbe2cf9756966255ce44427fc94e2a87ae0247d4beaa873036eba691d1cabcfc0bc5baf533f733438f23091ecea63dca51605045851113c3c556dacd3deff9ed06ab3c7a16adba7e9cdcf616cd35aa8a92eed108812a53b0ebe10e9dce6ae552c8800f599d3d0f58525e5c41a7ccbe470ad3fe9e43d08572fc29125d1bd398f9764855d40a2cc77971d508c401e30991153c5133543c1c38e6bdde9c4ffb34121", + "0761e85da79803c8a9bdaa29ec0ec65c19bfa544c98bf27ad2a7c810a97c79dca7ed09bfa1766b525eb1917275cfa595ad4100ec68773867cdd358afb015eb5ff1f8671be816343c04dac9fc456c87db8a62b66a99d799fd9ce59aedaa1a279495736e3ccd35c61876efbf059ca807417b16ab42e4c5c1ccb0ab12397c4868ef9737e7448f67212fffd9431de2b2aa94144b9fe297ae31bd0df9868bc26d633500c1ca358f30fee58238cfa04d7c36903c1dd1d174408256ca609249571002a112d6ed87361a9c610761f865b0529b289c684b05c2813c4775d932eed5773014537aabebae7899a648b2f0ed122a12", + "017bf3b1436fa2a45f4ff16cdff0af91561787ee8deeb233d437d8f3fb3e42312dcbce4519180c24310e4f0320222090ee89c073b452fd3440b4c2d266dee13872101c06bdb8", + "04f8d6d0fb7c1e20e9d954301b8609bceb1d6e56d0e1a0ed9cbc40a0610d71fd55e498f6bf5e2bb52e5b004a9a69d2dbbaf6ae23f34af2a99d0358cb9812a07863100c51cd673f411b172b61af59fca5646f336843805a388746805fac93182d4fd06fa9f1e6e6bfc15e514a9a4d2564b861e642df877b11a5b81b34f8f0ead57ea54baf5d232bd77496b18a10c7dcd44114ef2cb3b2fd57a1fd9034560e6cea88e84fda8254769090141b786c0b784be4a6d194ea1d7c8cfd58c52e2b782cd8dbe610a3728509c4fb0b17e0468362b17ec5c7f6d8512329c6dd3682da1dd57673a7b5caf4d8e4c21f3d6d3d29ba31" + }, + { /* i=2033 cDividendBits=2760 cDivisorBits=1957 */ + "8bcd645fc3a8650bb7cc992ef2791dc8e64906c9d6228c54ac1cae1a723a6427df0c36f7cfa85ff616dbc65c6a213bf7d1827d1cdaf161d897d9dfc0333fd1ae07d53891abe7731aed7aed8e0ca2b0dcab128f22d7991a6834e6561c0f1be497997933ed0b30d89d841b3248820eeba0a1fbb7048fd27806c617e5f92332a9e94ffcd2fa23a0f5ce65e848608d670e277031cd55d575393fb69d3eca1a27fa0deef649c8efad1b8a5f78763d5774cbb9e2e8baccd8f1a47d3a8ca01a80704265f1760e8eb77015cc670af1e5c60f29e3d814f3f65cb271c50b80bc2e8ed6097355a3fa5f76e8b09edfca9d0c28445abad39f0c9cf469fd61e19cf4adb901f42e946c1a0f46203850fa62164a3ade76079710b8ffa39378e0aa9bf1ad73271bb4ea4842fb7a47d6b51ad57ba99f1654048eabccb8fada74ede13293cdacc093186268abb94447ae596af1a6543b6aa34d1ac33f9ae49c5c1f07", + "04cac9b0f362920c14ee5047d962705545f4df742bee1f9301def2e8d7c9a644b0e07b8ecb2c751f9191d20f5a027802f13dda617e4fbdba7cb1824bee89c9063aa4a3ae8ec6279526d7aa1bd7cda674249e79856057dc2d9d5d4c1831dbc81ed8025cfc9a9503cc5bacb02a96d9664341b61bb1462d8916100bef9ef99f6883954e2834d020124db83db6b1c4dde037e5629389f967aeeb126e855bdb30350274b61afc5c5fa6e0f654bc08221960a807f5897024bad65cf651498bbf28eebb4df4d135b72ee4ab74ffebc298c545659ee6a15645a29dca64851978a789e93f7aa5ccde07a9c8005b0ae25e813221efba8d5bba28", + "1d2c5a4937e969fe1d32caf64d88be2975de83c4a3bcd3450c735bcce5287b04221c882d10a4f46ae4d7f47f2c1105874d852b0a6d2904143a790d904a6e86c4fcddfbedc00c439cbcac01db70410844ef2d1782d2f8fee21d4274f601d508aeba66fd95e1", + "4f0b4ecfca5f7e010698e35a10f6e678b3309b48dbdfd33dc9f9d0497b2c6b6ed8b034be455a607d44959ee70d56a593921bc085b0788d39005a4b0dc3c23684ad53f108883608a5360b72688d01e5c13f3e1b1b59083b9165780a347887d904ac49cbd6669ec2eaee3d54b0cb44104f5846955a4be5d1afbc929735281216b9b1156c989970085821cc3c978e853f7d0d7b818d18da4815cfced757b5749a65d2f514a99eeed7863adbc2450cb4396050c99abf8e78798b99db603b2c863f6f61e4fd9ccf4b0f8d49c446748251db8707d06eee4b40e04211119f2c54a908d991aa79dd80007e63a99c19c98cc7a2c511dc39df" + }, + { /* i=2034 cDividendBits=1726 cDivisorBits=528 */ + "078c4adc543611f2d744300a57b6c89e0a3b756599db39fe6022c8d6efb553c36c45f23ae0d57395a429aa0dcf0cd5e43289ad4590a31bc99b3b7bfbe3d659a996883b88f7e82429d52b44a0bca54607eb96353478cf39fdc44c641a5fcd102a57e29d92ba05be97d6aa7eec66d60d7d611db2b3eda5ef04bee7c455f15f2999a263b5b18c96ee85c6ca058097a17d7e40de434903d1da4a9f0d6717fcf6336fac41adcd18f3061bbff188dce6fbaec29c2a33f647e5ce1610d9f6645d25dc3014864969d316d00200e08c38ce3a2fbfb65fc61ac4445611", + "1b65449fbc83cf271e655a741f747c8bca8b5c4318771ded1bdf251e07c8ef0c1d16397ebbbb9a1f4bfbc6c56ff9d9d412bf21584ffe81d9902809b7deaf466cfe94", + "468872ea892d1a27bbaa56c33a8fa193f64820a30af6cecec29a423bda12d301a7ea299ea8887f6ba4e3769fc36aa2307b1bad5a4ce27ea0ef3f76743f2e17bb78c8461601087bdd89ecafc595cd8481634c65f28ff881ece14b5a7651f39ba407170862d36bdd8b43c28dd595f6306bc40a11e3e6ef139e3153e3c52a77d21eb5e9dd03ad3ab4b26722ed4865d9c6204ad3d891bd60", + "18c7e2548b34f4552ccf45102e3f5ef4f0b10fe1be0b209fc688cd884968b651a3d63f72b9689a39604e5c4bbb909bbfeda16474bcad2e956db9756566dcd19d9a91" + }, + { /* i=2035 cDividendBits=1386 cDivisorBits=1292 */ + "01def15058f711c11084b9c5f075e20922ddcbb21515453dcd7dd9909ec0e617335a5c8ef2eb8b0fde602a5dfe0c1110dcddc3832652691182e21fc4d46f955d64f081de6f727a3b935a63641e1680fa1c8d05a57e00447ede367c59094665859c89c7e5e52c58f7b70389cee276951a5d06dcda07f70c1ad18c7ddf4ea52f391b2894f4efb994437813180c16fd784a4278bf7d6cdf7b8954690c6f4b844dde3cdad210536fa10def77f47e708d", + "038d458f1bba4faa31bf794167f0a584bf269dac9ecff289d15ddba63784cd57bfe0d0bfd0681351d8451728912556555d398e6b019142c9a721ed902461a2c502ba8e5e3ee97287b46a144b1d51add0d074a7c9c42dd0b808dd795907f6439a49641c539458a56944cc660d53c4e8d8768407aa943a7bf72a1fb6bb6763d42811a7f41b01b0f402c003340ae839e78bda6b5097507f5683921f484a393cac8612af", + "86d7ead040bc8396d46c7ead", + "51b81ab5220ed7bbc2efe6b454b4008e83c925a0dbf8749d541e946ff83e492f7ad7a0663f1eedc23ca50ad27463a55206bd224108290e7f001b6b38036df113c2f4c590015e213dcd2148351b70e20974154406c0efe7660256e9543130e55c4560126ef3ec832f5c9f86245761dc5ae23fa5cef986e7149ebb37fb746cf45e172c4a6e912b72f3618144298b78d5ee0165d467317cb746d9af9f14fa92ddae4a" + }, + { /* i=2036 cDividendBits=2622 cDivisorBits=1386 */ + "181d4f7e185d58e6dfeff0d5a2c1ae9d7ba42b800ca37377b086ecf43b06152a520829b0a2ad9c7c4cf642157e93109b5d3ab280168fd2f31c61777205563ef0736bd0c0a5e4312e54f28ef6896494de40c02f193a3ec5377cace0c92dddc78e09c24296d09b9ab25cfcdedca16d5512f2e1014221e6aa004015a3f1ef0b6df13b87817317764f2e51f8595301a2bfb52341e04d6f62d587258d9781c3c5d22463543ded69de5483fc68ac93d05c6e767120bf7f3ae34d83b69dab29e080330a20aed589db98e20f7d7f4139d2bdeb9e005d7ce4f0c94f8ef6f14e58d04b5331712f3e0c35882fca2ee5478f5fcd52f413d7797b0716cbd26ac3d5039cc73845976b648fc11f8fba3436f5c61b3d06a7f47a2add53446479b8304ecef893c2932e14bd4804e48ec0a88c7e9fbf0ab179647a7f54832b185ef4d8f214e8125a8084778068a72c5264", + "0359193a4516ca93dcc39fb653a5f93e05fa00425063da2b686738c8b260c96de7f16df74cca01dbc55874c0e7e295f14dae525cef77d68e68c8d38f1cdae103cc8b0fe7e7b413200d0ee37e8e27c18001c5ba1b0c3d254198e9f1099be651df799fd87e2e1f41b1b851ac0d1291f0b6b16cbcd1db53cc580438b2c652372071b85d95619bb32b9cbdcc0875197985b40c3652d5e5a96a9d1e31823cfa9faa035dc635e14423b8017eb21c602bd1", + "0733db7e58ebe71f9e74eabcb7ad1c72d36fb68aadd51d75f24524cb31be38d84206090f45a232db19c9edc5343e660ec59f5e4232885821601fee564ff7673cea1e52e29a2d1a3499ecfcdfa661065553fee1cc910f5208a7231cde12f01ac8cde52002e02eb99dba5d4443fdae661b67a2b207c07e8e69074c40c8348f8f5875cd621e0fe66ae047feb4c308934d306cd31a4cafd47223fb3980", + "5b59f1a78c4e4e2b0c94c311c9c99c74bec41234453afefb4fcddc9e9d405534b9e9b8a50211be2f8ab6d3987b30010303546b6faeb0fca02a94a88761186d175c15c04646285a9d6a8a902de8de788d9f42b4daeeac2f7548e422d846d748a83b4f1812f0ee9ae4318cb0ede60a10d229eec77c145056004236cb6eacc21c9d87a02491b1435a402dc3256b1b4ce941e42f299b09c998ce3eff638095572348bfa24523185503efae8469e0e4" + }, + { /* i=2037 cDividendBits=845 cDivisorBits=438 */ + "129158ef59e461acd473d00ee064bed34394601ccc5787f8f8901e0f65e611ccafc2eb409bb3cf47638a5c92b4e31bf4dea5077de2002adffbe1726d725fcda4d1ce5fe19645eb927acc03a14ececf7cb2b25a95e7627a723be41686a8466f8549adb2b199fe36002afa", + "16a9b57fd4ee66bf272202a1a11e18e23fcc55d0441d8d4d5adf94ca45cf90fbb48a2a2769941a21f3e5ad85d2ebfd327595f5cdc821dd", + "d1bdb9fc76250a02c4b33f3d01105b1cc2ca33fb5940bd1a2cd76cae67d63d4dfb125501cb4b88345df1f75149cb0817f76e05", + "1581c6e450d86623f9bbe6e9fdcab00460a621ae92d68d646a623d4b07ca311a3818413160136c21878fe5401e4e40b42f38b9ab4f8ba9" + }, + { /* i=2038 cDividendBits=4079 cDivisorBits=2752 */ + "1194623db8bdfad4b3ef5773253c1cc9fe0c6e48e61ae0438fe9e379d0dba63dcd41d6ca7c3b3f5d5929194cfe7953d3c4898a18e3a06449e71acada7d4c1cda9c09375117bddb99b530a3852c8e0b7e21014e874048b46d33e070844717fd2e92806bf4a22b4351d54f3b5de9421f4582b67bd20fba3ae65db9072866d2eea893c8eab6351e3d8b4390e4495691578396460d3820073d185ffa7ae9e556edc01853ace036fbb2bc70c5fc88aafbe48c373fdb6c0ff7015e1354606d9538d2e04583fc244eb966050b621235707d70579c50a18bdf4cfe7bad00d5b6d3bda2342506cdb875378bcb09fd8c5400482de8f1ad10fdb87a21009959ff725a7ade7634bd550f8ff01451560fe153100d2d1bd9d8e2fb5b96e7546c31e2822a3264a92c9e1e74352db49c08565ed5a4b15e16dd1575b63f2d6944874cdab51b6f29bde6042abae07978f53ce98579a12d4d6be734b4135ea05bcb359646a25626f4ca44a182d104a4927f1e5bb5772c7fa6651beaf617f2b20e8b03f4c7ce7757a287f92d4a9a317df823bb3e566ed1299d7c7a8b7b5b63cfeb2eaa1e9c17eb2931d26700af4581f90517a847f01be56a44687e882ab864046cd6d8333048b5d1b37168797484e99c8eb2ccbafbec32a73a9130eaaff667989415890bfc2bb507fd3c03a6bb91501785c18db347bcd6049d79af2da18027955d0deaf67a08f713", + "304fa3d8e2ea3f75a6476504d3eb48c8d2f73f9fd9e7db3c3cf39aa402a49a01672aae511b4902a8da389de012b382a950033417e24b2d16bd76813c46ee2442b3f42ea6c82804b34941e8b58af5c0f91fa9b96beef7b155348162113c0275b22c6d50d6c7a543b7e88ba1e135ae5161566d025eaa67a0a6af6d78832a8c6ee14f468a3fa357c5f1208bb2c31004905e7a7b8e285ef331aee7731e884be3e4b8732ebdf2eca3ec629729ec1da04b63496177af0886e6915e0ecf547bf29d7064675bae3dd4764e4dd7732d62ccbdf56fff8eed226716c16a4c476e4d9376c9762cd078faae5c4261ad0f7cb6183a732fa43461c3f6fa0faebd18640584c1825fec0037aa632ca672ec9338c8603517ffcfc97d3c8efb3092afa1a308abef27b14b6c9b5bc6a7639e0adedbceacee26b4b627c5b5f120cb50bcfbe100dfdc1f906b97c4437cd28b5fa936ae9d19fc346d2ec0852f66384046", + "5d277cfb2421fa3a0c0ffd2fcf2b1019a5c0e70958258e08142f11e3c388eab1861b12572e51ef864a9b2bfdc8651fef902be68aad9be71a9fd801025fdaaf76f0d086b6ca97f2a8d9e8bacf6608b0f35ae32dbcb9c373638b501995473447eeb98ecf9b602f9867e4555f72e51b6460575fbb2b33c833613808f486e03186843708609023d776777f9f669bac24320f67916d9d11f81229fd12efee464913d806b225dd1f98", + "19ff5f49ddfcdba50afbb4ad28d9b398b6582947c06ec7729401b35fad4ba47c4aa834c31ba4dd99e81d8a61cd1e065cf0eae250be3d89a5aebe16dff8c39cdf1fedad670c0485edd51648804ffe8dddc8e6872ffe351b0cfdca1b52a84127fcf422184da89613c2e5548fea52da93e5f417ebbb545c964e3d13e6a05e4d28f3567a27135f550715c6723395fce21b4458e2188a65ebf4512316f68883e2c9c422eac8c60d7db54c3310eb5be25d106c56f76389c2f45f702bbeea4b1e7dbbb7bd5cc243846dc580b9d8e6ca0a50a635c8adefb5a890f882b936e866bb476050753a110627e9aef5c9ec515b73fecdcd7b126dd718a24787a334a817c73aad5feab5b80d5d03538f21e199b71faccee3c1add77ffe44f1eaaf1208ebf2a86e3144ef9113c141fa10ebf9333dc421258297ce96b70ae72e6916e9274d8782568f63e8526a5b2d53d0b7cd2a6d13230319a53e64eb5e6c5383" + }, + { /* i=2039 cDividendBits=3325 cDivisorBits=717 */ + "18de611b1d60c8bba7f267384f995da3f0cff63d2dbe0981bc04859695978c50fff43b44b98a082aa147fcae457aab7330dbd3dcd72dce8c06378fa48b8a26130bcd0a7db8f5af51303be9ec8095998eec31e390d968e10be0351f7ed6cb5103fc3f217d671370521054c47c263e6665502edee0ff8f7e50f8c09d00c9572772d4eed5db16bd337a3b8bb42fbfce0b84e9cef045eaa0b136e214de13410536ccb7182a9173a29f09a40ed7daddb53a981a428ac51fd58d7ca1944a5825ce9582c33a6151dc022e7e9e9efe8626423442084fd78379fd1626a78f022c62a6ab82a85a999775988032b5f7f5bad07fce6780359cc4e863698a60d5cc8337d7efea762f558b5b98d27f6984254bed82d1b1874bee6b7535f2aeb2a2788db2d34b4c211813014dea6596bad5f7234a44c9883e079107675018890ab91574c4a54e28b4c7911900482e30f093f36c9850a7e68ba46ee242afa2af7272d99a9b498e4cde070395f7b20c74a40ce9890c13ed89b523c1aeb69e86b5bfbd8d50797c711d55cd43058fba7906fe68c3856193c614d2bdbfb636100a95ad64a7eea56ef2ea", + "0a376aec54ea10e3b14614373ece4ac883824ee58d9ecc107ff33aeb4a2960dcdb9cf0c0e6aa233062b1f62286e79dc408d5227695babc993f7c6a31108ab80d86274ab9d92854a83d14588f3e4955dc60bef0d35128e347597f", + "026f25f7c9def70315025563ad0c62d0da43adaf615ae422d4441c057e0ff00d85de9015d54cffb6509968df4eed5573cb0295c33b6d62d18901412c328329b54c3883e320143356d6873a997be74de1b34ca203f8deb3edc93e38c51f7bdcacb97f863d0be632be0bb624acb4707914fd4e6c2cc57b48bc725eb08022cee9d8709c5c8036fd93fac938d2a0300cb6d57fe18fc2231d326dc532c36db65a1714b57012164b7a4c830544f023130a03ff74d1ee8cb3d128324832d3991a6ab396a55e605daaf975b206547654bfce342ca3efc32940d2629db8dacea1b3a0e242fe11b2fb1377fe04fb2876f0099b48d9add743827c53eb9ffe80addb8b118e4ba839bb42a62744bddd77173c306b668232ef01956a590775e6b176fac6f5d9a750ce2573bd31f71ae60276654352e1662e1e2b648cd1eef455a137b8f04233ad4132ef9ca7707d", + "5377cc09ee03aff203ababa230464f6ef16b6d3ac3efda229f95d7aefef2399882d09dee5bdb2f21e5613ef280171b8c39d94eb150d1f7f7d68632af0c94e36b52fc69b14ea67d1f1465073795345c24391b3209e2ae97afe7" + }, + { /* i=2040 cDividendBits=3681 cDivisorBits=2272 */ + "576fbf64c4b7d3cfcff0d03be287c5dcbf4a64f35418738a3de2a9cfd52008bbc7d5e8b5b18eb9f180c7068dd5805f4cc58145a3556cf36b50c025656425fc6336f4660df38e49fd09eab99faff02c17d3a5e2930e155dba055f9d742e204a01beece68653b2db2197290ef82dec5a877066a4ede16cb5c0c76f6f9c8fbb93d1f3cb117a91e41a8d08a2ee13768bc3e0e78051359398a10957c43ba02b9f21c3e14733f20cbf09026314bb0761c06ec418cf5037d7dd7576f16c65fe44b52613c49deb8a1311a580ed9071d0f71b0ae8eafd68dc34c7dda67037a35226d8a16346663ffb30ec5680f4a4f3bdc24a1e6aa047c1d4af646b3e3ab7896d003b5472bc940b1f1949230f235dd36dce4befd6b2825bff1f322c5f1a1a06c2d2cefaeb7e228ab4b395735d05ffb491ec1c71d52608d3e7b08f5d77dda7f7b58ef2a725cc7c1bdd2ab5a0e9180c25244cd41a3c7b5519d601e1fec2bfaa1564b7a628dd3df32648a720e530bd3bdcf9d723546758dbcc8205bdc78acc4604a6f5ea65c35110088ff31ffdbe9a46d68f3b7df6fa710765fda89cba517c8fcfeebb519a92f6fa5a7b96a7ebda1aaaf076fcdd7ddc44a7c51ba8285c9cc1b5991acf6dd5755314f113a93e552e891bace6", + "9df2cd2628251da863bde52c731bd75bab597b0c95382cbbe43c7d83670b05bd7412bbc698c196c1a364a60e39aeb954a7a9da7fceb176361dbad16c2d670e92a22a514ab511493362e206a508ed3f38b2b44ef4dc1a9e49da0d2c80a5c82384d40909bdf39ec4df861fcac782cfc977a0fb7a3d3c1bab0f86779a7e0e2bd8390791faf4f4523aebcc013543b51b2aa4d3597baa0b6642df9f7b5f29413ea2540f9577ea4ced20f5338c4a0285a23376016a24a533f80d80f0c5a03b8955fa6976a00a5be4c9511dba8295178da8c88b5a1ea7b3b00a572a42e35169aba0f23b49d534056b9250e2c5c78cd07c7347e1a9665d62cd92c261f8734101308498ce457d127e35771b1502f7e0e9540ecc09a87d12faf2af3b9897dcc7a1", + "8db72d1ddc0b7ae88bd35cf463975f4ab89f43356ef578ce4f435eff07f586a06ba2c21bf9ee1afdd3b30bc1f96ef134e546530e1d22a278c3945f5c6fd3f8df21be198e10d62a743c4d22d3be8f463f317b797496c00bed0577c7784ebbfaeaeffb41a4062e2c99b2f7025e9b47ed7af34a8688b63b97c1db6d186a7f7ace4e2cd57ba4e33dfd8fee8db89663ac8caa89345dfeb34b9c5bcaeb85287241871451dcbc74bbcff9d2beab75e49a03a632", + "8e5f4d0b0a1496f2cfceacf20932044cbebc89ceec521a87e20f6bb1747c8e3fe49553f2a48f3e16bf0a0051413b431ed932fd69820d8bb08deca04d6a498459023432f5fd8b5ec2908838dfae61d46fb7c04687426ef6898d1540c0cade13d76d835c9b389e4f494ab637211ad8a391c8a980ae230d0b6a5320207a893a752ee42ff8394959d2413331bb8fd60ba9e44ed448d724f13683e38b4a426634b61ead400e358c652b8bab6eb0b3418023e873127db7a856089cf295b8ad28529bf69f0f0c60f1211c1dceb3a40200e5d335b2104363c7a2fb1659c8d1f80bae0e5cc78b88046d7a51d0844463371d3e7b1a34f64ccf1374bd34f33968c71ec1c8102f767afc37781e8a03382899d3ebae8e8002c7c725d1c6d685a74974" + }, + { /* i=2041 cDividendBits=3004 cDivisorBits=1055 */ + "0a5ee73e711f2a97d74c0090026af92dc17e6b9695202e8d6329e6cfdadc2b6050fe3d7ef743edbf13d90fef4b09208d19938365e58a58c45176f34d9ea89267b57b15e2563166641d5fbcbdc03a9f24e77cef5d2448f1825b947f155bbc84192b58732c660f8a26cc9a8a972a2ba15ed5ce81318e83d2f9dbdbf780529df61d50157a1a88ed0e2a6307aac9734cad09caf149a6b8a0b554d775d83e1da1a56e7293ba4084c1b1f7c1009ff6798ca450e3b71ac5dd7f8181f959319ebfc85c05b5e5161893121ae3d2c65c5ecc0f1704907ca78c50cf32f23ead8781d12552162b6de87826164d287073740c8a23b2040002256976f4f86abde26287fea136a22ac321d4c4e764ae3bef167003f5dcc3c2c3b15ea835e77c77b6aefc07b50ab1441a74f5ec626c6d7829f953601cb70afe14ce41777ca4a42e33ef5744d646e82142ecca428ba88c4ddcd29ee09731d2849e5a60a8dda6bf1cce37d43a929345889a7a6229511cc89c283abc3bd891e1608c548705f7384e", + "7f3e728dbc69c5d75ae71fd7575030a2044dea0c2562136d8e6e8fe7742b2f0aab0c6607e17275a398ff2814d26e3c7b7be5d0c8e591fd19f2628b970167fbbe2b0d092f071edb62f006ba59f10651fecb0750f1c94f3fc290ca9b3abcbd02a6ba70b90f6a23b6916d51813f2b19d76f249fc32efbee4b3e09584d321a6f9a42e4328f48", + "14dd5b4f062451c5c078d40af6a4b5b54c429dd00075ae43ba3c2c71a105340ca8bcf085fffb272e75da17556be03e7c9d1fe0609e84e9006fd1b0dd3141687465896ac298d0b0b4872bff26759bef056c05ccbdb94511fe623de79fdcf69bc69edacff2fc789766426795284d0ace61b0ceeb30d40fc5138435efed0dd899cdb9d14f0cff3418d8c9f5367c96391d54bb8ec7c6eaf0d2cb33bbea94a369d049b065a35f0bcc2bc1f33c8900c039f1003ff25aef2e5644ec5cae8b27ef5050cb5990d216df5ca2d41648e4aef0cd1499514b0ad78a1e1eabdf6228df8491f8ca6f640ccfd7ab00b5d89ecec69cd7130930880104", + "420ab0f8a15e63c67ebd722947c2220cf43b646ff907523e3f2baa387727d14490223c0b03cb30e60dd875bd8e555b0fdb20d250b74c0c7e3c332e57cb399eb28eb6ea70ae9f2e09ff634aac9ab1e0883cd6dbf9ce86bd6c02058c41034fcbff7f7448b522915c3d768951a2f1360791bc7fc29b794ab485722498080cff9155a45db32e" + }, + { /* i=2042 cDividendBits=149 cDivisorBits=134 */ + "0942b9a0a87cfeaffbd2a6a58b500426223c8b", + "09968c5e66fb9e6faee52cee7d0bc5c0c9", + "f741", + "08f7ef2812eeffb8201b081be85bea5a82" + }, + { /* i=2043 cDividendBits=3315 cDivisorBits=1096 */ + "0169f2344c765fa7659140ede0b52ae2e3301899a8c6c4b93d645c52065a8df547d1584e903b778094f3c8a481e48d60161ecfc56ecc0380b9022e15aa55ea05bf849c71ae8163e5fe379f55c9cf774991d17d3052d57de87df01f2b42af0bdcd5abf82e23496e128f84bdc51d4ff96d6824c613a0c8b032a3ff802c389c96d1b525941e48a91229bd413360987e06fc5d268a48ce186c5fac6daf83c5dbfb7c6dd449278ccac1bf4f9e2a343282c1914d8476b8c41389d3829e98400e8f6e08cbf0b45cd92cb9b35953b3dd56c54d386823b45cdf59bbf6acbea19a24593e7d31a276dccb119675f36a9d8d457b03dce4c1bb52ee033e7cb110395ff466146492acfe8f823f0924b7678f7d133e24150488caefde0ad4bd8551b50d5cb5c6d600e992758c81de3935f6c973588ae0ba2949fc850c660aa4ac35c5fb7e1440bd311ccc27a1e608610b93a7d05fca46e8820c01e408fc46e44862567c46803a1e61c380e658fe97140154e3aa56c428c78bf3787269af33778b6cf04b4b88a0f1f44991a6032fd16ae43771eef450be6b02ccd521f27b43abd25aaab4c798e3", + "038747d7fac01a99792937664238b8b7bb6d6f99c3abb59b93a4c7ca0f808512948fbecdca72b5329bf42cc6cebfff4c28915bc5f7f59c77d7d184344d8f8ec2ffdc711c92fc92657cb99cd9be646f7cb61004b3eb91b3c56ef70c97b69dd3d19b8a4d0202f22e090802de4d7671863910ce9227cbcb51e971554629844df41b55f1f5655de073ac84", + "6694636526d3c0426c551aa17a949c9c4a14a8f30560a52c760159e4fb1518748b08e14ddb9f2954a6ea7daf286a19ffc8cc35f86dbe6fcc0daf2bb4f545f4eddbf591daaad3140323db6db7599e1244cab901e2b6363c87f5a3ca7dc09b0d1132ae3aee4d7ea8855fb206eaf4d55c2b299aae2c270728cc920bd967e0a070c95ac3f108a71ec38140942b3dc490d7da32c61e5de9dd1ef778c3f1eec44fdb017338b9217f7acbf1fc2d2cdaff16d7fe3c4c2aa922f37c4168fb75a7d94dd2c8945bc3c9a47ae0498239f315febabac58b764ab983514c8668de5d5a5ae12c94348bf66ab90519eab85c4d90c2cfd30d8e055b77986083994d011004c0253cd96ff5050e7359308989d08bcef7b182444cfde3808609", + "0def0b613e047337167e6dfba1245e2f566e58abf5e5312b6d0b4ba13f633d18a36ce1868704422d7ec0dfe5f2a589bb12a1950c4f6b0bf940951f9e0a665c76d4c2bd3422c27a126459abc8b93bf51188b95ce6917e51e69a2146435285e9e937c28cd2b9368f85b0bddbaa8c796b5abfa09ac384a283b242a5592fe15be900c5932c9df669703f" + }, + { /* i=2044 cDividendBits=45 cDivisorBits=5 */ + "142790dfcde5", + "19", + "ce61f478e0", + "05" + }, + { /* i=2045 cDividendBits=409 cDivisorBits=92 */ + "01f67977fc9167d136bc48a107027a812df24b573ad582acf3a205fe57ea7103ba194a87b9e1abee85bbfca4894b53d4fc4b0772", + "0b6e28e6c464bacf954dda62", + "2bf5b7077ab21bf9cdc7e93855f79c2a8aef7f3761dc3b7732baf4e9fbdd06e8cb4e3baf94bff8e3", + "e36c972a664ecb9595728c" + }, + { /* i=2046 cDividendBits=106 cDivisorBits=75 */ + "0153bd67dd549a9b5c0961803813", + "0750d70201fff8859bb0", + "2e70771e", + "ac9acc671669792973" + }, + { /* i=2047 cDividendBits=1588 cDivisorBits=575 */ + "0407d1253f1e50e31a794f974b46ce51308cd51d3c95662f9d9a05dc64984ad8542beecb6c6514fa7eac46571a714a4de548ddf5791d08eb5f355c982b17f040977fef58355dcdc5555ca1d1e057d1d88723bb5046e5abd56bb6ad21993fd31d17006122ab3a904c3c8811f8a34186bd6b78aef3d2f5562c192aa887ceab56c9e2e80362c40a43f96237fcdd17a460e31a10afc77cc4f9748a1a19909e054e63ca539da5280b61298e19cd289163f40ab96e5c61fef59c713b5b6b08fb861ba37f3a50d98ee34c", + "69f07cf1c87549cb7abed67e65be73958b5d2688edc5f2b88b0f2993b7c7b3f78ab5b80f5190d8fc48b8bdd1b9d7328a7ceb5721ac567a5df834d0a0b635f334154386bfbdfeb5f5", + "09bd5c525886666c3315ca0fd02574ad2a0b36965cd26cb106a84cebb91e94e1ac6ce84d506aa9904164b43c01d843949270779eac743e2b75a775ad67524ff278fdb413242484a8991fcc645f576fdc0f8864f881c29bd0046ea87be0ddc0f4d516bbdb72fd5a3d26151e90b0f6276e53a831a8bb9a4b0d5a9aead6b06e53", + "2c69f172898b99fc490583e63bc062b2d2a02b1ed5dd69c64f1c25fdcdea26e8091d25e05b6f8b920a7089886f90ca11fdf693e5c566b1ac727761d049854ae580a4e758e75a9edd" + }, + { /* i=2048 cDividendBits=2378 cDivisorBits=2102 */ + "02604932aa27ba43023befe5bb1ddb5b402cc9cb9a850754d9b818e20e203aed66b11b4721c30c15bd6008777a7587116415918370c1a46d6c744e7a4b23be280f0cf042a611ee4d759a9414074d4ff0bc6417b360a59dfe73a90cbbd0a794bd58802c1601acf8bc83141be092d9459da03bc39502bf6decda7d78828d605ebc0ac36623bb47d7ed8d3c25a13696db0da24183bd7838820dfcb70ee3291865e156229bd6b575d0226ccb5dcb9cb99ab17aff86eb4257dd60a33065d7ceef1990d147bee1164a10d72824cb956cf37246db79af868bc153917781dcaecf5588f4213fef93a1a4910d8fc09c4c1bdb81fbbb7b9f9f9dd081c7e250c997f9654a6e271765757ef9e9052a7aa5421f9972d45d76ce435cce0de49d751128129c6ec8f45b4e3d7c4a7ff0de47", + "31dba1489476cdbd3beb2e3c1e5892d3635b2235a5256c4fbb3d5f09c61f35e78edf762b9d2f4d841572c5838bd799b7d3466ef31cd6c48446d12a21fdc5b0e0cb37970db0733ef0757efdc45081bb6a55900bbbfbe8ba70c4feb404ba0f124562bf47772c6798e2d9dc3c9eed3c8068bbdcc52214e75d9dac79ad7e4de177ac184113326d8f0edfd1d281393a13be48c2c7102649ef09bb6b46815660b125eee30b58bae77fa851eb77e748f180b7452e0625265c602c254ed7034477555187faac7419688e7e55326d7814939be61a482885d3619c21c20a7aad63478d6a9f97ba6f745b0f5cf442e66862515d8a7cf7077845f7509db52c5f5ea54562dd429f1ccef441c3b6", + "0c334c6b76638bfa4f4272ad6dda1f6ac8d65d7bc90edfe811a6b13117d37d082a58f8", + "209c83a0b9f34d98b9e47c389edcd73db64d15ff88e92ce3b6ada930b89ee40ecff9f5de5a5ef7348e6f6ba5c9a26532c56768cbf7a1b3b852763dd86cc68f5be185368eeb43388214b29e4315d6ae653959eeeba6cfc1a18c1428388cc959cddf942976d9aad7b9620db56ee82d84c73da251c0c981bdf8eaf6fa00a68f7fbb4c8979efe443423d832863e708988e091ae4aa1c3ea5a6f2a621df2bc4268ba7530e2ff4146b29421ded01d375a3d7f8fea726de48ba9c9059c56f7eeeb4c1fb967b12137ef4696c61f95034c0460f4db1838dbfe72b7f86fed56f2f258629594dd2f8d40c2b3d031b5c6a308cdf82436e1aca48cb034666046a2301f4b686fcd6bd117918b5f7" + }, + { /* i=2049 cDividendBits=3801 cDivisorBits=1465 */ + "01e10ef50313262541cf30d13a88158bc37174de7f368a540db9397fa2f8c1ab089c911524c02b53d033dc1c4dd46a5eaaba499cde0c07102f599c16e765a896afebd79975e3e154539b0fd217ef3ebed1581d67075e8ebbf354d1aa3b37dbd35bc6c280ca61c8bc787871f565db70116e041451a5eac775ff6248f1bc17ffc81fd7c31f0316961917b26ce3637ab157505ceb788fbf9a3301a3a8ad4f5313df7eb487cce0d89c4311a8b5d6a8eb79d18312e301b6a0ef9651113289ee89449f3bea6ced24c2911f7adeac231469dbf88387c1288f42606c7fdda7f2e5c632cfebf3eeee032c15c2491bf1ac74220207b39b9afb085c6cbc2fa7c5e9dfa56686a54c7f2ea0cdcaee89972b033150ce62352fa4a6dd0098a788def8232e0bff5fa4c3cdb636e419dc65c113c56d4a228f27c19a9c4f09a6bdd49462734890fb02f13c40b9d349f686b4fb1aaaf93e4a9c2fcd90c4f75272a71fa1521193aa3e8178cea1ce126d03892058a297995070ea078a6f7de3d050e2cf73323e9cf26d8471925801e6f15f7154b950213099f933d2b1554beb2825178b3f8020d7b20fbaf75515c63c9996045dbbe9de2ff72f6364f2a131081c324a06a4eb01b3234e2f4fb466cdff5bd73783a08528b1a6d98ee90531fc68912e3bd30b5514", + "7c7fba20a38ecac66e6cf37de5883923c54fb17e7ede4fe748104d4cb86aa9cc6d8bf354b5518418c3fb92b2ca09dfc96c27459ae1e3ad89e631d9ab7f89752426318527c30d849b2f56762c4b5ea94af3bf6f76fb26aa9a9beb42915c3f8014b3ddb22bc93863b69376bddd1990400b8b4732414b3f28d5be6bdb42a11923da045c5c0687600db5b7a649de60af505ece2bb36749d18ca5374dc985f8523fc29177978297084f6011f643c85a0cb5a1ac32ba07a703ea", + "03dd2c3b9f782bfc3ccf2cdbfef69aa123071231b54fa2649ea68a847ac6af45522f57af86da6ae2dd1f5544a3982c84106be934f4d1b37d01bc85831af30bf1c9e701b98daed117bb5838c9ad44d8af550692f311abf7df971ee86b3126d6278ff7bd4fdc683030d4a916ebef2243e602daa7107695f901d603c7e5fc09d7044403321804953d13b06b93694e697ed6bf568c8978b42eae6fbf2479c5e73d5408ce14a3d7b020df18c9f78f871ec0980b1b31dfe1e008717eb40fa996e1c2f0d8bc74890233762f77921c8dadd2cc48da94ad5ac6e3e31e8e162c576b1f4687faae9d40eb1e0149618723b8074bf692427c1f305c4f137f695978c9843c38b6d25a9f30302607728ee7c611c2358f58e849372cd5afa490629b3ebc8dcf4ce7b8d07f233b", + "2e10057d4d5ce30f339eaae090f8d82520f13a4d1b2d6391d0747bdf055983628a7aeb8dd7b8402ee46a00491922479d3a3e8a3961aa3fb47360eb4f33fb052e534fe8bff9ec0bd6591534e72afd74fdfbbede6f5304454daa1a5948f70db4d0ad3f2ba8636bb5da4c84cc40cbc68f23cb1647d4ab2821768b2f6b7f21ea3440e93f583cf8c0a0d077be56a5b44014896e76e4d430e30c2ef3ba3989f9391c906535f9636ba1252fc3597efb92ad22b665991728ee7026" + }, + { /* i=2050 cDividendBits=230 cDivisorBits=100 */ + "152b09345dbff74e637bade0d6db6112e3bc9c24a6994464e34aec7db5", + "0b8a5a24edfeabe19722c3f44a", + "01d591c0db5581bb08cd1806946849b277", + "05332e38ca2057f58f28e07b4f" + }, + { /* i=2051 cDividendBits=4060 cDivisorBits=2315 */ + "083ab93300772a95d7512bb9906c5b7b1ea7a1f362444e6a8efae76dcd23e5c92359d1f2dc06660f48fd3f2b1cba03d01f0dd1496081aa88f82f7ab7bde388f91361f179a9503446779de6633dd775029afa4c7c64d020103c0fcc3eb61073e417ab5e5198422e05a9d62fc062d465db93a75a0300a8cac97d90823b6217341b20ebc19704adc476b2aaa34b6bde7d3a1bfb20ae3793ed9950f7ccd9f76c5fe0368ba197d9a92f9fe57ecfee0da0a82f22e2ef9c4b4aa529d376a6b4315d76b5e83c59d7f35ec158ad3a0fd31d2c8fc2994f4332931d204f98295a104455d7c2723c7ca1d3c41e969a61994064a12c53b1d6d996d7346aa402fed45257cbea8a2978159f81cc16c4f121deb1406460f423f46011d97ef6541bf427e87207eb739a56c94975ef2644c719639d036c123cb2c930fa2e9496062845d34fd08e042424faa6a77882f699ccdeebc7862cb86e4c7d871f8c0a44cc871c7d3cf61661c8ce63020cf417d611d321de299f9e31687049e5f31cfc3e080f8c21e8ecc9e1747f87aba61dc336ccfad27ed0789600dc2325dfad4e7ca127635781fae6d61645e02186324bbd7bc7f4e7e61763318d6e1cce114478d48d691eb5be99064f114a15247bf62926294bbedbc452d68b5737f939aa7ab015bc8dca4d2201fbeb16345b8b4747b556eb624bcfbebe18708bfb1186f1652cffc674c1cf6106", + "02f319e2adf37aff4a9cc80953af1a8004aae73914b3338c01c256c9e15ce534c29bb997c3ba4a8ddd6b211e7a48cfb78a8fce3d1042fe71c04cb696e6c8f072d9df9329b630220098d452a09c557bb3f5df1e2adb9bcd329d55550c3edbbba5c526500da40a17c68afc35d10aa998a15cae793ed0153d40cebe94882ac0efb9db1d73e9064ff9c8b00f1dfba9079baeee4db83ea785f3c6e8ebd6ac337ec9f6f892bd34aa2f4fe02252c70418e040fd77c39d5f9b7cd3d38b7dab792e2c9728e570edb28acefd5b1449c52ed3ce91dc2f3dc8c4b0c7f4b28f7fc19eca52876543bf3f288290e32c6930f2e8fbf5a0b9a0e1be41a703a63afafc1176b50ecfbd293ee7e57e8e8621fa31437bad6973cf88f533da19981f54ae69bbf03e178a7ffe14", + "02ca3cafdb839d718775e0859fc39eb5bfda439d931a2c6fd63c1e6d3077fdd7d5169b603b0a13321ab065be9d3abdbb8162373e3c981cdcfde1196856b987b4f319ef5d3e6b9edaf51d5fbf9763471c3d6488f739b2b7f6139843b157fdf513cf29cdb39986ba67bf8a91e558ee258cff809bc518c513283fd2cef2a3629845682bdd58d588723000df734f4f8c7fa6cdcc7fe3b3f4093786aaeef57a7537394368d4b81724a30daf6be8415d047929255cf1c993116ebdd68835c6b2f88d42acbffa2cd155918f2e455a1b625a8348f16a12cd8ad6caf2e935fe", + "02a19951f920f289c7f6849e7d7a7f9ce0efc9456a1e0d3cd6d68ff59a487c630ed2931cd48422dc5090a38547d8d610d2bf36d2d21437f93a7d09f6bd4ba689af4cf02ee8b56ada7d43925a1e60e4b717563c7bfb591b98d8216773cd0bf79360bf45957f774dc6b53ddc6ddf6d213644d7ead988ce1e907f9e74fac5bd0c9311dbfa987e5733cc6a977200a33a4bda28cae7bbef95fee52461b246cdfa2ee23939811043ac0db081d40bbe344523bac1ee894bc44c852b7b4b7b53e9f568f488b1ce9076298730aef71f330242daae9280f898d15233ffcfb92d3fed0a8ae9ddf645cd3b74243a51e5d9856be27fd819ac75a22328a0eb3c2f1704d53e3053da9d8b02481c8fef33c61471e18908bed809305dd8a8c266df01f1420af7af03252e" + }, + { /* i=2052 cDividendBits=1928 cDivisorBits=1003 */ + "1d2f7aa71719092f039362359de8c9696645a22a822caa6da1a69d52ff85bd1da85c959e02834555a3ccf09a4f494a5f64e2e84ebb7da45066ae99c9e2aa3a6aa97baafb2defa0a129484610fe69587a3612d3c28a9625bdb46f954c3ba53f0b8b4f370956d95b570aa5850f7de15130f2fe97a13eb1dd44ddc1577f780b8b3450fc77ea96100262adf689732b0b03551c451fcf4ecf7cc1c2512350da9b947a7486afca829fdca2734427732755d3c99f5916d598f0a72171d585854b2d3b0ba4ee09f8991f6be0adfe461fabe2ce1486eafdc31a74209ecd3df457d70a2d7a619b75d26f6992254c6044a0a7cca7fc1f", + "07ff023932c14b487c5cb1852ecc10460d19e2086d3a00beb464e9e6e3ecef51c50e44db36a40082ad9f233cc2058efa46525c6ea3143188ce4674c08081ff3cf28331ace943b9428f36859cbec5c5dfd6705f57dc8079377e9c268fc0d1ea76306a5c328073d2249b36f03cb7cd59434e4922af2d9416cdb9647dc8c2e0", + "03a6631d952411af6fb865894c42ea120b353e22a8a0a2b2dafbc11d1c408570532d05ff2ee52c33d203b506e5c0520e678783612a80e0b7ce98988e9e48b93d0af1c639bcb8772da43b918f557155732aa74e648a1ac056869719e75341d948d70ca93e78b643fdbe0c95c951f5d434ac1e2317", + "02707036d4986fc5f3ce3742b0e2579da4e9228abcd8b88a470ac8dbe2f2c042b5db4a66d8d5b9092c0dc5d5ded1a0d0477e684fdf15e14dee151a9dd52c855b47906987ee243f3039c62a8c6f8e56b41581ac46554b7f94233b7e6b9594dfd630e567b0e7961097470def24433f2b690cee4b15bff5c69d8578b6b9d9ff" + }, + { /* i=2053 cDividendBits=206 cDivisorBits=97 */ + "0903cb42f9161af94f68dbc35a8d04c3a5f1fb047ff760cc0a5d", + "0515f74fd42e599d054a48cc", + "01c5c5898515bf33fc74da5bac6c96", + "046c82b89c9e5c39837f52d5" + }, + { /* i=2054 cDividendBits=3284 cDivisorBits=372 */ + "0504d671228327fcccaec039beffbb946d275abbbb117e70a1c45584bc484639d2f6d2688f17c279fe1eb4d8b3940b4e3b0ececf208a112748db5aa95e6071d5fe7af5a416dcb47c90077cdc1a029580b0626c80becaffe356702fbea3d48ec0c65152fa7e4a5c3a4d3b815253ec08b47eb8d514bfc41ba8770cdc84fa07a85b5339369eee0957767ed5b25c523544feee2a6309ad4e7c4fca4325ef050f5d093542e1cdf7f6dc068f1971c7e7c871ac1ec135b7cbee678b9c3e2da630836ce1964916b20f336be1394f756090ab2b390aaf82ba54bcc0452a7b42f2b59ce143ebceb4cf2fb2e5cc9a95f3d09d4dd2f93feb223732ae8d617bc16b69727f5cae04d4a73c14c2713b18bee873d2d568e6c879da89649053de7bc2d3f2cf9925777967894283d2bc3eb6185e9bbbfd83aca3f85212d4beee7445426c76e1a45ea01b1bfcd5180f62d91cab3dab6ec1d682a116b3b9c5f0ff83d59526c05061e3dd53b82c33652c35c3a84eaf4a27299fabcb884bc475d931e17fd6cd6fc4173eb03e627ae62fdf89401e99cdfd5fe28730431a39fc7c98f29e55854c", + "0ba5dc203fd0d01601e6bd04a73c067b69328c17d4d9f49012a6a80aaa600b0d4bcdb0c077ed795942905f90e05ce8", + "6e4e74f2ebdc82afc63b0e1e239747801cf8ae0fcf2d92ba332200b80bb88f40a8dea37741ad8838db8c4685c17ff081556cf4b07e7b069c6898ee13b026f2c3a75574a99fa6eaf430d1b30d086a7ad072b3fcb634033592d565c07e4f370a5f2ba9500920c7f849544b18d2c4f41dc2b5f24f3373d7d6410c7a4792654945cdea1283a479f86689839aa0250323b1445bf38ac14fc7e1c0b1ed5ed3d9984391b2fb91effc4b09c7b3069031d8677665954521f08538d93d302f3517ccda1c9d6da1766cb6e7b5c697a57f5823ca6c0f212c150d46e4e4a1febe4c7ac2ebb3bad0d78e0db8d9285a10aaeb4ea12ef46ae244c46af3e6e9a2f2ff7c0bf63e73d3910c297bd0baa3a56692a0971f798384c57ea3e2ed848b446b59a6bc0bbebcc29277c2d66e287e0710f11b694c5306408ff9c7d7199f930ee1dcd11a75756e8bf6a529f1858a80d52465a69c8354184cb24333b62ddbdb3114fbd4192fbdefd16f21a1e6f915b14d242e3e7b", + "06eb3ef879f4313cf6cfa7f1745c80e65f2351dd0db5dcb16ac103f661bdb31359315c6e4339eb9e3e26c85a58b1d4" + }, + { /* i=2055 cDividendBits=2904 cDivisorBits=2657 */ + "f807e2a857cebe1c08b5f70440579a6dd2af8b96e157c26046bc42937f6c7d531df430a1e6750947e93ce107d038848806e174de5a230a5431532544eed5f8b5aa0fed21776ed54b73d6f152237256decb891dfd69d42cf75aeeb03127b70a975751d681a73063453501a96afaa2ea819ac003760e855b22e561a42618e3103c524e856febd7824094bda4b970ae8940e438c7a5d3c27a481122de4202939f849131eb12193dc7ab406d66e3882ddd7a1082eb5cd9159d803003586a2611c98ba8dc66a65a963dc7096a6a427ff51a29b0b5b5b7f7eb18b0b816a23406e98b5c5a60fee8e9cfd9b3105e173d5d3d236d13ea0a40ba0ebe7e4aa0b1103088647fbb22867aaad6849d1647c71a1760879bedae5afdafa1cb8f64f01dd250b3ba8321b345c767d046e55cc21ca40ab7b1238f0995b4511aa5be94d1a5397981ff76205be4bebb5f6731f2177c30cc4800a07096bf0abad03116a242d2d76588c9fcd060be7e66fb6ccd1df819", + "d03aa3589f3513e3130fdcf68c18d20fcc84001b36a721229f41fdf967fb873eca60538cc1c434830d76804665fac670501c2345938f3cb9cddd22711a37df611cbe4ea2d27cb54c053fcba8618d0de2b15a13db7d571d9f7ec2c661b4328d1ee4b1f74ca29520a672e611dc30bba97c703f4ef04d5e9591facf9b99a206253519bd7698dc48ff25173035a1a13dc8e9c323aa4066ac30ceb16d6744533fc9d868a3799e21ca2cd0c1c7ba0fecd9101b7dca063b703507d71fb439bd8847d994f428745c412949f8361502fbd7e0f6f0a7be32d868c7bf4692e592553455d9b3a40cf2a975c8d2498fcb65bd3185c8682c34b9db05dd6c3fc89aa2ee783220e447650d5de3c9ecb64be72b7424ff1ff2e55b43eaaec8d20157d64ad0c7b622fdf7171ae3a06959661dc870e4549968db1c48fe296b2c8bb4541c8b1c8db9e6041c18e1b5f5249203d8eae03b", + "0130eed13552335360b4e5dc4f91eef904d56086cb63a3b0e85577bea3a2a58e", + "3a402da08e6ba288b064dad0fc43ffe44bc92c76940d5c559dfe2e60ccbcff1f896404ccb4cc4e3ce922df9098f8e296c61e479b3be3138d245f142ffa02534ed73ba094c9c109231996d636622339f64bee7d901f50a795a75d7952f8452f8e7813b178c5aa68614b4dc9efa1697fa47f7e4a55cb65dc7e068fee3abc97410232888dfe7ba8526583c76cf47636b1543c324608864690ef45ddf0afc84113b2bdf20ac71af64c2ebd1a07a3b98368d626476bac3df66c6c3b5670172aa413823e4b38a51309cf687caa0bfe96a3594b8e319ca3f4818f60f5d2868fe864bec508341c0fdc9728beeccfcf7ded2c9a88ceb6c4c6f4951a0f25985dedcde468f4003bcb498a9926ff7c633ffa3a148db7ab86fa02e0149a09f964e643d7532189fe5cab71c45d12116366fe700dfc36bcbbf8dca0922af58640b554d686d89230965cb941004fd849a1f9905f" + }, + { /* i=2056 cDividendBits=3599 cDivisorBits=2887 */ + "67c6e7ee02896f4aadf12588d3bd0daa5e153fa8c515b09f0baf5c5be2c6a9f2b9d195801f09bfe5c15841db7c1cf7af2c0fc1228c26ceeb2d6cf33d2470ddc901cc74555db62646f7ee6d29c0d2421963ba0655db365322443b2e635165ff5a31d351c423a6307554aa11c9045fa9b9f11afee294bbc94a9b916ffe72eaa19f8d27f2a35f20f5f5a01028dd9959f803a96fe08d6643b0c659ecd2a81d246540c8820a03ecb8deafa5d92b3c13ee7700b9591635f0f463b639ed6d544fad65824840e7630188a1c806bc1f0c3655311bff1f409e4e0336c2b85fa93ac179679fc6b0c31d60c6f63cfe783250efafba7d4748823cbfc1cab338047ff8a81647f48259cbbe8b184dc2d04a629b55453fcffa0cf748e2be6cff6e40373dfa4d328155f56ff1ea17325822a7a4410b28858270ded589266ec9006c3fce1a908086785cc634d68e0b432b16a1d64a89c0bfd79990fe73676b5a9b9b3bd9df9927e5c8151a715103ed7c12ea809b8e8846a8d00450963e811a185cc906dd4859307d0a34f81416032784dc987c661fa542193d976a9b31755977e6ff6ef08878a34310304c725a0c2b5e17be0dd64281f82fce657adb526877a559593677e549d77ff17306", + "4eae3117cfcb76ff79ebe471a4c0b6ccd71d77348bbaf3094592868e32918758c1c545ea19bd63811e1958b2f915328d30758527b2359f219b38348ae12244f8fc362b987ec631991f5b654fcdc74d7c81c1452036def26df80692fea8a38ada398a586f33e2ceaad06f683daa1dccae2a5c1c8a201c7126bde36f8fa074979d06f333e52930772fd2f0c4260305a687f41a6589fa7a9ac093749efc66d8d2605d633864d0baad150e0bf6bd4fe8f5ae2ce85cd51e883fcbf34f2845d4321b838f03e5cd78b05f929d050de35a80b16982e53e15b03e423024a17a35952ca4b8bdeb667d47e7fec5c2d13f04ef701ce23c121940342d5b2641a63cda8726dbb9f3297e0312051aa12258588259631357e969f23e230d82abb2e5bdad66fe09e2c1fcbd4b2e26d850d73b49bd861421d8d966c7b9240cb13085dcd46a0450f5bbe8633e4f1966a0b04bd2171454ef7ba8c9540a600d60dcd5bfcb0fedc354a209f6d4a805b2e3e9ce31", + "0151a7e2af3df71eab34382929a6a504531af7b9c6886497f3f76c43beb1a8a51ad8db074df991c21a27cc0f2997dd382b3530ef744f6a27651bbca43ec35db62d2bfab0b60c54ecdc215f4d9394957cc0a4bd657ad44cc116d0", + "3397a5b90983a0435c33d2740670deff30c0738065dfca0f7c07c98505b1683825837a071b48edbeff701403ef55a7adca61cb9a3f5d08b03335456e633a4abbb112fc9e53bdf812b28092deac06c0e9da5f31f11c08ab0f53af67c34d595c821457e64790ada90c393993aef8f8c524fd8a010b9ff5c315299fbf39cce928b9d5030a14d5150c451238dcf93194acfd2cbfd45d0fad988bf0e585851efb3e0f067bb92d60b4f02173296cab4a6ffc7f192ae22510ea05e30ba3466dca9c20778fc204dd677d415af292bdc6ecd7fb7bc91e13abfdc3e2c9a5406db7bcf78c5639235b1a6a34b414875585aaec58aae8d0fb15223b23c7cef5bb0f83e19b92ebde3689b19b04257a15954ce9eda20679e3c0b7e4666dbfd2acd5f3a085781de622dc582c1416f10e544651dfe8634992488bf010a2e9a4230b60934093a49cc7c1320edd2a0080f3b7ba847c674bd7c96f29f4b7a26e2c177470b80ffee9c17d672724f1d93b50b536" + }, + { /* i=2057 cDividendBits=251 cDivisorBits=174 */ + "03f0000acf1a418bf510628c9e8c22ec9a956647828936be6825a9956340948c", + "340917f0f66caddced9dd250f07edc1673b1645c7221", + "135f13243cb2e34f6201", + "1849049290654cd3b71c2af416e6015e44cc2004806b" + }, + { /* i=2058 cDividendBits=88 cDivisorBits=25 */ + "9389818a40a6d6076dda0b", + "01d9a9ff", + "4fbd3049910ab846", + "c41651" + }, + { /* i=2059 cDividendBits=3443 cDivisorBits=2530 */ + "03af0def9a1e089b69ada33a6b78d9cbb1230b5880a76ff38fba3b8c3c54afee892883e5744aba8340efe3cf386f9591df36963a1cc2d215518e3cf1ac8e66b2db292e09d59887f9b3723a12506b70cd83cad549e6fb157d47046160305658dfb09903b2fa8ca64fd41f2b3679ca3ff0f9bec5e1b74abd7e1ff84a8bd7aaba2473b1f3733fd5fe95c5918395ac9ccfffb4b647c0d4a87f9d77afe954ea2e38f0712b1b7f356577be53c5d426a5abe252891f560a0c8a86e3b2609e66eb2748b2a1b4a81fa6e7a6b2049dcf03044c3fdbf310c8719c0639e623f81e4cc9885e35b4494ca15135e78c85bbf65eaa0f4a3dff9084bdda26be314f05f15f7a06bb9213d510d116eb4f2e12218558ac505eaafac81e7c5984c419d0f56f5d7c2be02d38f519b653cd67f0acda23d412d2a7e746c4588ea61e82ca5b9f0932b10b17439f38114707aef07be7c95032d998d293cfb0c9e7b24520244c4727aa68afa9a151cc687be9ca57558465367b46cc3f628b3d068e73b6ef360484dba676a02eb58f4598bc90a6866f86a486d0afdce06ced86c097fa45e498ae5dd6724efcbe9ba48774e57b62828de600c3d8ce70db", + "0183eb03bd9f0bc12cc4496d1a69c3584eee99c1ecce7c4af92e71eeb96a0b9f0feda20011c289ee36d53df65042b814f961bd7703ea22c76030325c06d3a1b08ed5148ff078e051dca465ee43b2472f9a4b88a7ca7746cc4762851895a4fa11f8f32db214577a3fd0dca4903f22aa18e968d354fa2110c9e065955d6beb962b42c150ad89787b43a622eb4f04c8761184ef1a03eefe8b37dacdf56db6205ad096540e25587ed7c7a9b2accc3acf760090d506e4ce3441ad9866f598e383f8fca68f56df0f1c6f6e1fe59a9ea68a050839d12df9054edfab385d212a73532e8bbdf3e01d262dfe19dadda61bddddd72a0770c39e5a94367d7c5e9475bbe08db3d0a40aebe8b6f180b301d5d35e10a057c82ed31bbc3ba595989939fada4445a1b319da8946b148496010d10b30979b5de43bde7f9751bec7659653cdb7", + "026e5a5c51954c9068c83942169ac8b3d50cc0bad2603530fbd779a811f082a4929fc364bd80ad5adbaa592ac90835cff702900292be713c8a06ee70de8555423efd6ac675adf39954fe3cbe125937160e832e5893c9256c09ef9d6160d43e868f53519044e4b2ce0b2567a867e0fb9f380b86", + "013742be90caf72f845aea4fed5e87691d06da586e9e66441677da15abac37de846dd4d2ed021aadb469b2e7d8c55f79cf10f3a82f681af914d24424d2aa20fb4cc0d4cec29c1ab60d98e1d40e5cca55845a546379831a2abcc1b2cfc4f46a2209e4370629531a96457c9b5a9030bf4c92c5768a1bcfbd1ceec010c991b6b625def95c92f938ed3db9b2a051f5a184f72855cc4e3f58efe14996c107d5e8a291ffbda6205039e5d9d4cf2acdf57364305b3bf2c54cfe731e77a418ad5b38f404441d95152f6d43aefb82982fc5d5d0f7bb4dd2e18937d31796b67e7c4a3da1403a1d40c708543ab865b971df05906d752d4ab5f40288fa31a68243d431ae9ccb1ddaa3df989776d0f5dc05cbe74e007ba8a0e1596a84e5c67cc3cc0d819fb8923af33d91efad21bf77198cab55bcd8df04704ca2ba4615829ae611e611" + }, + { /* i=2060 cDividendBits=1381 cDivisorBits=79 */ + "135d1a2362911cd754cbfefcee45bd88b7a1612e2f5dc250c16d83735f88e2ab66a06c8b145404476be597f19316433f19de85d750cd987fb414958ede1f8bd694d54362591fbd77a6b5d28edd47191c7d737db6c850bb093abc179a5bc221dcb08f10543fda12022592c0b6b9b78d4a4f4300d7d7e40adfa7a52ad48d9f85a5ae73ec9893afa5a16de0192fc5798e113fba595ed352d78dfea64d2abd2d41ab86c7d9c6880eca82696d7be02d", + "1cabaa959ef9d2fe1eb9", + "ace60b90da345dc86eb33f94e344397eb89c0eb0856b89d987d1410663bd210007032899ccea113a7e34ac8c3ea4a0d92fc596e1c0e722cd165e93cccb2896869a109926609ccf2fb3550b47cf0fce17026c24cc4f736d7322cee57e8f39b3885e9b375d7b78d34441999d5479bf8b042c9c26d1ca17bac8d0f846009163cf93dc4fa814724d147ce4486a165c803de9b81b02683195967d089546da68d4703a636ea5", + "09b2f7dae28f72f394f0" + }, + { /* i=2061 cDividendBits=3856 cDivisorBits=2085 */ + "c27b40a5bfdfdf132e0984835028730b8279fc0b87cace5f62d98c2a55a77cf54ba6df1ac9ed4add58f152465268db3769a9c4c5f1d0829fb0577f364cb579108126faf25055ebe681f5ca1fd741f9290aa29325129382a4c64299680d5a1b9845fd12db7c7c63b01e2b18a02fcb85d3e5658029d0eda69cd2360af794eee8f128fb4798eaae7525568081eaac7099f5fae4ff97eb7cf16a076e91b646440da0a7ad6d635a434973ed6a3abcf0180d1d7934c8fc1d642fb7ebde64d046e7d6358696428e2d558dde44798f5692773a0066a58102798ef3f5419c2e7deff95ef468e2535255976159ea11995b9edd90919a2d18f39c227fe76ec7a722d2829ac54eb862653a76f96c183ce70713c434596e96a37533348dd899f90c34b48660b8bb9b820fc7f1f73e872015d62c405c5c74f1d40db5ae407830b326bb3fe0f6b48dc9e796681f308bdb45984defc9096f82c88745c48a7f37cddd96353c80e268ac0430269a63862cfef56a2bf5bd74ce312b3dd52ffbf817f6c8669e01fe80a75d8af806abf2bc8261aab22bd903bb052ef8359607c0e28791395cc8b36f3bb357fe4f7788489c7898b4d9ef4bf8a307e03eacc8eacdce82301c6035cca5ce97b3de3650ac0b323216d453df3afdb61f599ebe55311905e5a5537d5e24aa9780bbe3", + "0147a9e04809e700df392f6386247057727eb7313c6703576b9a16693f4782c7bd4bb32efc7b4a5f0c721aa05ac4e32f119883d58a3e2773f2228c5122bd00406ce9cead2f3d5aad0860506f1b8f15f040584f41198170f4ae88a8b39632622bd1fee601cbe5efed79ee13b7f0a73dc39249d418c056aa66d56904404b3fd44c4f667ee4fda1a30ed2057900806f626be2f13f0d5022e773f028ead04e1b093ccde3ccbd739a6644cf589859d5ddfacc89420e64926e920f22d57d66925bca76cdf108d8a476bda60b862938a8a16c6b40433f47f39a5572075939e0491e99c9e69cc317d62a0151a480cb1dbd40b7ef13e7a8856a94c841360996be5772be5a0fdb230335", + "97f23d8ae282a56cdac505da1b36f90ff56d4c3116f3f436b45151144ad76c9858215fd9c6f80e6e84398703637ae761443854fe28c705e0bb769eef89a01cb5923fef65c33d7612cd8c6ac6243c511b18e7896a88b6b1fd5c91fbe3c628f824a336b8c1d2f39820f2f10f8874d5a392caee3332aff26fa019109f16be11c68bf0e75e512836c7ed51015d2c8a977cf3495b795636c5025598d44f58db727bd5cd703a9ebc6165e5dfe02726668ffa3bf404c606f7d66cf5c77726c000f0e12bd2a8f529116699f27ce149a160b56bc51c853cd1526f04129c189e7e0011", + "78ed1a39a82ba7dd39512f297d92beb376884b4b47a5af22ba29460a5b1f1577bcf5d341eecb7acce5a89f6e3d458e6bbb8604b550fbe0313afb0d3fd05d49ab6d332c32916eb20334079607987efd0fef5b17a387bffccae97d837a74be109878fc01c58952c479bb346040378f7be79623876bd71a650a2d2370fac8d6c6cc1fdd6bd103d9a3f8187089afb8d99f38700cafc1e2dd3bf59f4f97082c8680dbe5a7f435ae375f8777cd05d46c761db55577c74d9c87946c97f29e264f299c41f8f122a0a66e62a981f15ec75521794ef6aa7521e17eefdd5f360476c1edb4f6a287711106c7bdd725012f6ba0404f6f93bdd41aa47139fd20489ebad2b6196ec017855e" + }, + { /* i=2062 cDividendBits=1508 cDivisorBits=28 */ + "0250e3944e94e3d570ff8e0988a87ed971d91c50df67eefa6d06ddf63fab27415d32732d2b1ffe3547ebcca6efaa70e203bbfc8dd545e3a6c0f14c3e5b64f46cc4d797980f2d6033ad7b2dce122c2ffcbf56cac23c40a7e69af6d0302c07b2e0859fbdfe504fa826c7cdf24f5e7de7702ec4c293405962bb41b16fc07f0b63c1e03c467d34cec21f70017c1b50725dade55b115318f07de0f430067b38eb10576ed0d2f6415db341fa41facafbed5e1e25e9d076701752c441c184192f", + "0bc7062d", + "325751352e4e7d5d564b9ed4695670d5e2d050c22d712a2e751ebdc41fb01aa20ef0fffdafef664b18cc5d4bf4a4f5e87a614a4c7454041aab008e54d20f55759c62db004fb7efa48374a5ee67b5d848caf00e012a6236d6af43881717b5a464438b66ec96e2743c64b5d16b60acd08c3a2593d6c20c2dc109d69d504ae09303eeb520b0a0a2f75f25416c4745efa7f2c7703f4ab2469b8cb476bf1b0c8d7b9e9d1cfcdad6d46bc4efd16ea11dbafa45a3f9943b132dee116a", + "02dc8d8d" + }, + { /* i=2063 cDividendBits=128 cDivisorBits=42 */ + "fe68f48141e9c0f41c38d302af4a30a6", + "03204db22e88", + "51615caa34fa975687ef2f", + "bad86aadae" + }, + { /* i=2064 cDividendBits=4065 cDivisorBits=471 */ + "015c787a318d1fc7217be1600a0de945e070bc5b8da7b321cedc8d07c4cfc5e4610aadf83bd8d885b03db1593e75b23aec96a42c7b5454e62a77ca7245bd89601800d8ff873728cccdc34002d988c779747c5104440b39260d468d7c397c44041c0f2dd85208bf319fdf1b6a2e43f6fc3901c865ef99b9fac33cfbe9f5c9fc53a975d106a34264d994ed02debb2b78ec8dda1278077a155b2573e1abe6680f4c74eb37489516d6b4e1c198866cc5699093f95a07a09f0eab87789da4d09017361a788bfcef53e183fa8b2a7c477328f59147e6b0aa359763c5a970ba35bfa201ca1f3ca580b9c92b469236d6ac9fc5031d78046d384bce0445557fb1ba12d510f872521f6cbcb68e4c5730f1792181b948ac8ab220a0d40026ba0837e90bcc24d8e28d2e8c4a8254fe43cc2977955b550dfae31c26ad7b29c8a5295f952db55c3d27be0908d0247be70e42ccbb66be90a0346919d2cda5bede03980d231115048e28b7bba066fb4305bb38c58cb33ee9769df245c7124312c342cdeccd9125b48aa6449f60e3bf669e61d8a5a2b44594e1a466d555a626465ae3ac90aae15b40fda29930ea578370ece21e6fce05992ff5696e4f6c15e61bbdbbc10ef8cb6d12dfd58d62c466fb610abd8715a7bfb5e1e6d37a88fc24bf8c1200806468513455428e6a29e6416f3d4f50726b06e256076efcd171aa5a0bffc79b59d204", + "282cd7600a47c020318688afa9559a94e9d282056f313e6bdcfab3a6dbf8d93eae28b31379a6d96ab3b7e3cebb9839ee52496a722454a9da8bc8d8", + "08ac7d03c59f9e3cc358b517ea4f7da8e2d1dab0977241a4c83438dee9c8a7b92b402ec176885e7fba75a697c9bd14814ca61ba5ac7d07309159bb787e2f523fc5009eba9a6f44543097cba53d6c41d2af490d100925c73a1c7b6891248c8a443bcc919c19da0c06ba48a4ee3616d4b04b45bbf4654c85034328676915e100f2c12f02a6b4369c1ca84bc0c59c4dcca94c867f5a164e509a233cb45afd27683e003e21ad2ea19a6a8c9171386b4fc24facd84975cee26339be667d5848e07b3a7a796f15df29a7f9ac079cfb5d3c8867547ff852d45bf5f03aab514c5453a495d948cc6b01e8f9b54c4885efe15da625134d5037d7f67851efd0f8f52e8f360af110158fe850840c7af091979d22861dccb8b807771d0aa6374488fa6148175f622498d60b14def1a42388e1868984515dac22d93c992703f70bdd2e94a7ead193e22c4a897aa32b19c2ca206304f264e48c6f0c3a016fbf01c4ac511158964c8d6c29125608cd5604503f9936bbeb603f2c6079365aad0843606118083d00230d974b4e67d5ee44fd8f3b354d1a6e18b9c28e82df97c4011214989e426b0ae3887110ced3d2d92c6bef9aeb05faceb24b5f01f85f1c2ee8d4e2a6f79abd6c09697d", + "16d39e999fefe3627ea3fb9845de455d7e3916211677be59c4707764cdf011166c75bedc04c3a1a76ef2619ca23900e8ce3a37ccfc1f176020288c" + }, + { /* i=2065 cDividendBits=1279 cDivisorBits=665 */ + "53b2d4f54c2190b99dd4770749ff35e648b160a233f43ada456b698f450198ace76472cad8f75da3588893c36d16021451010693458b67dcc81b45e17d7faaca8a491ae6b10d3beb6a18054365c9a1427aede4d48f1a23a59de1ff4fad2f08457769a957eae89661d3c9a76fcf17e32e128243a5236018f81ada560623d2a804f4a30eb8d6769f24d7a3be52e80682fbfd4203535d4289e388fc8123598f9040", + "07b6586c1cb2e39413ad7bab4fc44aa4982abed030fed3a5717aeec92ec3bae49be8dd4640f6a7a8fa50bac51cbff6c1562b1e0a75bc5b9529cf7e59e4b201a3734fbba221b3d82588abdaee0f6e1184bcbc3b", + "0ada45af99aa9e2faa3b8d81b39de17184fc60e30cf82f7e95b55f5e9f7fe7bde9014d6c8f3b2996017515514873e33fa2cda0109d7f78dca6f1615b67dcd37712e314a410102e80c28850ecdfd1", + "017eb0e673a2d55f24dff5b0645270b6de12fca44ef6508fa3c9deb82818145d827563424ccb43141de69717c49bee46a95939a37a0a4d04e14527f3252da94dc69451538ec5f1312ec2628978540d9d1e7f15" + }, + { /* i=2066 cDividendBits=3384 cDivisorBits=2655 */ + "607fa648457b8a5e071eacb37f2665102cc2e695ea41c554975ba73cb194bd2b7bbc01c5fde8c6b670f0ecc99e9c0fc7f126a30b57b1c4ecd2ba33337ca73eecb2e2bb6e3cb533345e02d1b5e5d41d35befeffba22609d0d3d25ece121ecbbe873f04e09442c08844e85e25f6887f7495edc9479e977a375c374e2d0039b84b047e63f24e150f7d1897007c94bb7c07fc0122592388c05848c00779e4279becc15e9c619a6579fa281e44b7141c82bddbb4579cb711540dfd54f67bbe9a6d89dbcac3e63be4ff8e15ba4e8d4ceabaf79a2650db7efeae3e5e8229971cd5c2304077f0fbf038b6bad1e5475ac13428fae3747ccbf9d2c3b4335cd75c4f33b2d2fb9258e42e05640bd73768f9f33d4ef6e47cdfe487a27d853adf08820cfb551fed888010eadbd37bd31d577f69e1e40c67a5180ca2a082164f249e6388e0a8bce8b937ade7fede55ce353f7ee2202e21f95ce31406d7b89285af38aeccc0818f0ff5c7ee1e329c42b175ad5f85aeccb35867e814e301cb09195a67ce18b71bed1fc6cc0a5c9ec94ce0af66db81fb4d5755d7ff4d4d1b1d298ce8f1517aad7d5eb35360326a09e83", + "4434ee4ea0e3464ecad13d57f359ec5871b5e0d1e46113a5f849628622f6e66dc93a03e85f9b97c17dfc854a78d2c42c83c6663f76392eedca0e48f2734ca0d2e1b3465a1f1c9ae4f40c97d926dbfc34bfb862f93ac1e21b004a0b8020fa55ae8c11a08013e059ff548a66ad3138077e75137fa81d9038150456826b4e5ea96c2dc57bbfb05e0b74fafd4f1d3e67fa33d0a52481ff0ce5112d1037d4450f2bcb483f5a59d481fdb0ff7fee7f46d042d9e4ab5f6921e6f5311bfe2dc6706a896572ec40b479d3888a512c9c8551db7a10bd76307b5356dedbecd9135d40b4c71ece7af0dfda0d505bbebcf7775b965c163a2cbef7dd999520219319f3c38d09c5329a4763482a396dd2c54d3b442bcb74de0e807e74537d61305faf423f7d373da357dbde444580eae6c09556879d3bc66559ec3919261440c91bb431e0ea74814c500f08b7028f80a58ebc0d", + "016a300cac5bf563d2e6f64f2ad48d556cce2ec8ea5d44b2a3ab207bfbdfddf6521b9d9821b0524c8a1df64ca3223253e9a3fef30f9a7ed039a005957619a07b57c4f38daf8eb7e1cb0c390c3e7d185bcf33236b8ea98d30ba049194", + "26c5c2c381db7657fcd69c472f026be64d52bde37ca1e3cbb3aaffb9e7aff5835e35d9d58d2f084af3403e94aa0be8dd222051b225d230e4b54fc690583af4da5b120c4cfc133315ff710810e8845a978bfe34586fb54d4feb617b565d78a2842014672a515ec834441f95818e37d5d6fb4c71c61f4227d8781cd0016eedbe8d4a1a66ae932f89a95a0471d41a4149bfff0ed7282aa9162e7feb449be14402090ece6c320c12c72c1bf01d68c3b388e6049975c38ea2be9dd3b0b4053f8f53f86088a01c10800acaee6ff53ce873f2550ffd89e818529d9ad78afd967d3a372f727d1730876e3bbf46bc2c5681ba9893671b68cb0b8dd0865229a7ca46f6525708abb535697893aef20eb309e81e96c1a04a83d111e6c07d8b8d8cceafa9656a9a1a20c6574a82eca6c6fabd90d79de18298c262d750b2a2d00c5e823058b9b18e86e38ef13aab91356489ff" + }, + { /* i=2067 cDividendBits=3962 cDivisorBits=904 */ + "01f80a1d6b9dc266218fe2bee7bc7372f0ac07b1da8b5c944422c4f90012f7edc922af9581f589bf50342511e06444d5b0f95ed0fa35cbee730239b96a9763d4b0ea5a03cdd09dc9c12a51b55fa08b9eee09acba3338f95e249860770e335d9c50b14e2b21da61c447c0568d003a7f029a6fa36a200f6c28463949c3b77ede8bd3c7429c83d2228596d08d32a16214265d65b4c7e4a86387a32054ec36c82d4a6a8ed92b650af28b026f5419de6aa9c86035b553025393c9f87d7b5c083bdf1d8b41f055d6c81b40723d80e2c1cf712094b95411a5b627f4ec76968d4aa6490c5ff2969204e82dca996c939166a3370b63e89b0f31b405674a361fcd140619ecb859a7cfc72e8559724683f826773d7863560056dd11f14f516221a309beb73e2f90302a24dce89640cd0954b2dbc33235e8d3c1b44a0d63d6bb24738023f9b1d3e42f1d1e44ef7eca5290f60029dd5ce1a1206b05ab09c7190f1243c51833647b24610b7f422f2bf6cf025be63fc178453e4f1f4933a132fc7028e9e1056feccaba3f8cbc1e70f31e795e5a198ef3ec17199cb4004dd78a9d628cba13f76f4dd456f0bb87fbdc4ae67fc14a9881da523eb5a11fcf57e268c70de5a2e2c9d71bb54fe32adac3c3c15a9fa4c818dd036dafcfb5e3864adb6769b86fb8b4d299c07f401db18d8448216f8d9618d4fda375", + "e9f13c51b54480d076fdf4b240ee7296d71b21fa3e833588630fcd3cee926738388d1ec2d3bd4613ebf2ec33d4e86e01a89ac88a8bb653d7403a616aafe10410e3341df5e0b01a35f78927975aa43c5f19a9f499256256fe6e4766333dd45e1f6525dd8cdef13d0ee74c979f9b9a28c428", + "0227905425efa3523ad9e3101bd3c19dbebf953b1de2a0ea6252b79018c597bc73e8925476c0337aadeb138a39d59dbf16a127c20ff5b61733deea9009a51ea5ca9655267dec4e6bfe91fd1d937cb46643f81bec931e04476ac6d5660a17c15bf56d5bfac156fce795b508f69a51e620fb20eabfe15c7432ac7d6618037521e0242f04f5707c57bb1f88b7e03708ae73952bc089821503e3bffb048b6eaaf6fc7b828603229c1b8e74e885b5d35f763791f779ce780b5ddb980d9b8b3cda282a21313e9b692975bc6e920fb455c817bb9141521f5998c7660c7e62f922cfffa6eda3a859370791bea145924fdf19abf54cb1dab99958ef908c46877e1e0ece24a40036dfff90a2166ab191d5b382e1cf0410009bf4e318f75b9b79bfa8211b3879c3126b50b7c3063c759f451bd2ef83b24f6ad1e07e2631ae0f195bab5a874878b2db3fbde918326b0148c0fd7f057aa86aa067181981564891fb83eb2917fdfe8fdf2bd2ec104c36fedb72471cbddc19808c91e6bbca69c1786d4fbaf6d7", + "8e48e90c4e8bce5ae6809085bb5181fe1521526db5ff5903c92a3a7e11ff87df8de4c5086c23c9831838e9e333e27970922193e28f11e75a0d73f7b960263607b09e37bbb0179717778ee82386fd733e4304c8b8b8ea4ed41bba9047386abdfa7b43fd4986ecec399763c02918533275dd" + }, + { /* i=2068 cDividendBits=1068 cDivisorBits=560 */ + "0b093e6a107b5c6b9f75d78e596bb1a600ceb1fb982983421cb6209882dc8cd4828ca35ccb5949be57aa0b7073329248d625fdd6d17edd059da08b4b4574be28e00831bc63e96f71f17704bc30d7025fc227e5247e11ec18383856009d084570f7a712d6f25bf589408b0f1d8895313340eaa0ecfe58eb6ab2b366663b7e55f40f8f2c9a9485", + "bab62b743fda42e4eb8d5b50b4d9af803341bb1ce1fa05e4f28404aec66e41022a51aafd328ed41b88df5bb7f30b99a3b93f9d3c7c4aca481834a7cb7b7c7ba97e6f9ec023e0", + "0f21b0076acec3a9e8e0b97fc39003a98fa8be1d27028938635a4669c66e4f9982fea09afab9505f181a16f4596553ef97a1554bdf10e7a17933e4a4b158cf6f", + "23742d0d5a7458b941d63f0ffb373cc95be8d1f5d556b635f2311a0bba6226bd238fad744dc81aabf466ea4c6118ccf92d9fea537b9e30dc1e1fe35bcbd72e6e1571c548e665" + }, + { /* i=2069 cDividendBits=195 cDivisorBits=101 */ + "05309897e99a73b117e79ba5b87bcd6a824827f194c6e290b2", + "050cc4d68fe62abbd7a29ffec6", + "0107183b9c7f26f0f060fbd068", + "0e79fa48848781cfaac03042" + }, + { /* i=2070 cDividendBits=604 cDivisorBits=481 */ + "063dd799511f5ae9e2504247120bbda280be9d5ed00907aa7b76f5600b130dd3a36cbf1f4cc94bdb8087e2f3d68d19427ea3f034943ac9c28f595cda5823778df604d86a68da5ef77df65d1c", + "29e621d1d2b8f7efe2a83dae32e0089098e35270dab06a3a84edd2712fd370eeec16c0e971268c11f58b575cfa0b905e69616a27baead16425946862", + "2622b762cdec63e9c3dd1e5bbac2b2fb", + "0bd8eb12d54c12b508cee59e05aee1d5fff28bcd8ad7fd293d2de97367059f36851043ea118e3f760893824f510135ed48e85295eb3e8a81269be106" + }, + { /* i=2071 cDividendBits=2390 cDivisorBits=1616 */ + "04620aae31d6a8f4cbc46c47edfc6687e15f4434c907631f89bb868c4511cdb9bbce85eaed0a78f685cbe3c2b506724a7fd0aa2218fd91874c4028a74b964304e6db3f9b7c79c998bcceff2fcb326d1d3ca1db0797aa5ad1c54d2c93271b613e7f6ffea2278f8a86f61131ff38b806286149fc9fd3fd2cef79d12117fb50b4715031d77f828823ee327d49c8e9d318ac19b99ef8cec16fdd1e96dc74c9c15e8c1994b8bafa2593e411828bc0fadd401541dee23eae097f79611b4e9cc3fa3592ff6a9ba39c27de8052b8cd9a0b62dea86de4c7f270410458103ab532cebecaba3f3be59c9c9535bacf89d1dca590c001f95225d31daac5abf60bd3501330ea450cf62d3b4a98c9297ae3445d3d5f14fd053f3427f82b298f049d9e6c90992cc69923f5a7f59800d120a889", + "20fd035688293a5c1424ec00a2c39ca0604c0d960979941f895a4a374f0d9a1ce0a182f6cd1dbc0d5f07d30a468928d3cda0cefdaf8721743c8085c8186d74793161d7b372a9cf0521c8b86c883a49257e6705d0d77618990330885ef9f4a286de0be15a2d5f0098406796bb73f2f25580357e1875f57eeb8a8c0e75bfee0de1c8adff6e4ce84c51ab2668b33bd361ed72f7080cf6d7e7924ba19c551e066eb599ef25c0d2b397cb576182a47a2452d05826e93e508c75b05de19c1a370484f666e29ea7fd8c5f976038", + "220366fef3795442ebc7594bd73690c253d0322a6747471ba49ae24edb096be6d557489e3595464d19ecbfc321aff02dcb95a0949ec6636a75dcf812ba94b95f5365feecd900012b630d1e2fffd4d81de5320721b9771787ffb238040ed45bf5f4", + "093abddde34dbe14f6d8bc29c8a92b0779e2a7431c4ba3f1c82de9bdcb68b0c4f830871eab1ad07babda07253fee5deb556b3135bfa87d4270bfe90addb27169ef0eac9668defd305ef1e94c03ce7dc271b743a9a5d1584caba00f0d44f09c4c99eb38c34006549245d29264ce1b8a915781143ecc9f38734fb7237b4d01602b24eb732a25444031d00fefdc49c41266959a88d440c05caa95bbcae031a25b2d6ec0462defa7eb392657f54fe59e27f22c631da2d1f36ce947673bd28ce1e6761578b6191d2c41db5b29" + }, + { /* i=2072 cDividendBits=3686 cDivisorBits=2171 */ + "1716f0edee3f0349db6e150835c3264b6ec7bc2aa2c3aa08ca7a92b25d2d11ecde3a127ff2e787f65fe3999d95e0b57b383569324fc01cd8a3dd265542daeb40def7080403660f042a51adf2c56b3411ac0bd42264bd168824c893bb5b1c236151ae452cddb7d29fceee8a995192eb18dfc890e55abbfc97949b7b16f13cef2d951722778181a7b26c473144cf3ec72684b35bb30f5d23de821cb80b9458ab153c473d3236b63e3eedf4bfbb59d111fb931f840fbf4899660b61e27421361098227a303ef8ff64aa1de52563abbb119f30363eb8d1e3e74563820a8e3445be2626ca4c31f0ad3f1a56de9b02d667016df22c0502c4787ab1e2154bbb0ee4796a8613fa6bfaaf663cc6e1181158d5bd425b3597b9dc4138695cb1096be79f0878681ca7d619203312fbdd1dd27c84c5fa39d924bc2dcfd3e9446ae271418ee07487f4801a0302fcdda1c2c828eb365f4fe943b55bfdd6827e99a32ebe3a09157cf610339aff6c2d894d0d92697c12bee47b2106e90aaadb5dd7a35764b55659e7151fdbd9fdab9be0fd23f793525ca046be7953880f8cfd149ec1c6d74ecdd8d29a210e791a5e61c45c85c10c841db10e9f679272a6155858b71c9e271154c20ca577bd71e2722fc4b541e5d35b", + "06cd9143ee5986d03af080a08c09d5027ab99fe86afb050145f73f2f615936a88b681f91291e2103bb49da1963f0eb16cc2e5786269bf6268aada43effb7171404d5219f8d74b78cdb7c1d90511519a9e6b11bef4b3119b9aa3fb5d367e61be0985dbe8847746e032c64ff599d8f18f2bd257da13325da0f14170de8583bd17555cff036e12ad7dd5a76eadc1ec3e7abbc2fec45bc948296332cd430fccae6402684ab3ed744869099beff7d709d1262aca7ee05652ea51707bf352da21b58361db3bab663f7988356a507b91c0b45287f24bfb20bb7e3f6303a4a5f24d1a1e791a080c53181b87b253a239514f6c8fba3a3abe29df9aeb52f198b0f31866c80e81fdbe32bbe7d17c4cfcfdb3f991eda", + "0364df7cf43d129416c964e101bf70ea22c2f57a9397c6e614c0575e470c2c1ba0c2f096a6c905c3000d92ff1cdade9d5334dfc8d5dd67f5e68ec3485794740daab65b6e1d5d5c389f5bc3a0c7d2effb6bd84e816b1ab480a63e8b4617f288dc456b1cac6789516428e373c19c1ed03f7a1dbec354c2b0fc4a4f9dd0983640c7458ab8c1271565915e200cbb04c171c7265d7307c399dd9ca64e3eeb78516b971adaab0de9fbf531d0062abc640b65fba2152219f76472f6f779fb30e03d", + "01ca5ff3b0bb6fa6efa48a572789ebd5a5ad83085f8580adf6782743e492e75c58c977c3f86b86391769a42bcd3f44cb712082f75b6de006d8f46926d9624a176a4a5d9d027f9bc1b05cd6dc25713f8f03436b518ff8576fdf0dd3d7cbe25f6f97ee38677cf18c52854531b7b40b17985855154099da201081356a28f59b61fa274640cc36ea5555f323b3547d448f3a3b12ea6762950fc3326a4fefdd799c3d0610df8ccfd9b96c4011105cc3e92ad940b59a9566e01b89308136de8f43a4df9c225ae782e0dde25e9add371f9b73a8e7011f6a237e9cc2becfdb30777b764c436dc20ab7e03101eafa66a2fb9c549b8b726cb760216599dc6cc572dff71b5dbfa86b8d28d2b63940b46cd1988ab969" + }, + { /* i=2073 cDividendBits=3518 cDivisorBits=2222 */ + "25db4e03178382d629c8e18c83cc705c8b73804174cd490d519c55fec6010331539f05ee648b4cf8554412a5e535eb65b3623ae24e26f0a40865ad325f1ef0f7beed9327bcd7fd5279b4747bb6d23daefab33acac2eadccb0d3a85d2b7f516f143d282efa6cef6b32594b9f646c2bee1058a29681923c7e020289f57108655dec3b6b1b8e62cac61c0e9cdd9dc6fe543b192d409ee906316fca94e4a769583717485c2026bd73099533b656dab79f183c080b847b6ffd4335cdd1257a46e71e2d32670702840826b8271003d365bd0ce979abb615d70751597c17769fc67add4aedc01fee096a2761a8abe1249200f4eb620c8d17c1043954bad7c620805e188b9e105e4af30403c93f3cf9bc682abc7be957b53eb88e54ba8f4028fc830cfc6001983b4a83676c4db8eee3d588800b33b62b7f80c0ed9341dfde075632b25c962c2c4726117e7220900bfa1a0c7d8c5a2e947e52d072459862b2991700f26281bb48baf464409282e306c956bb3b2c032daecf4d11e742185331b2202a87470a6cc0c924bee36fa0dbaca704138c8eb20a6057175a7649e75136d5fc7951da9e070ee2ba523fa3353549812140e4da06f3f8f9d7f2d8fcd", + "1a0d8e40d1ef4ab9df2e3ccccde843e646e84dc992e04b26ee3bdf1dc46ba104b6e7a2e1402e2a2e3c58cce0b8bed9d43d7d023bbc2503a168a522fd2b59e7aa3050ddd519bdab5fbe6e43dd7c15d1593984b2edac7bcddcbacee8e2c1eeee9fb4c84244506a8ff033468669b4f9e8cbc06517c950501bb4c2173f033ed749ae589fda1a24cf019e956f651f2cbf7cc71dc9b5fa9147320bbbf3f5f7785e9a4c8b24a464c8fb9fd441121eb389239cde6b94199ee8096f139ad27a6afc8b0134e5f2bcacd148f96d8ccb075d236fbac56a12f6cddd0c65d2dd697d617239bb78faa540b714538d3afeec7d989b89ee2c208e3a5e88cbb5499cfff7d7c175be4ff5d917a8d1a9e6076b2a1c616ce2fc4df799b71c32c2", + "0173fc2282e8c3eb5197b38296cbeb4c156b436e466da772fe4fd3d31dc54886b31510eda3271d58153a69f0d97fbdca58e78bf34932f4a48a49d51cf33761b08bbec6c83254eafa344705cf778b59de90c3a1f2e006b6a9e7d09d90c3feebffd265dc531aa22d0b908926eec599dc9b1bf1139c8dc9606fa46351ea4e42a391fab0e70a32f5a90ffed7ca97e5c68bd43520bc408499c3550f1013e50a5cb94851f5d2", + "111d398f33652fb0cb57c28e21348185ce0f1e1cd2d2d024d8b74e0f9adcb1231c72d91defbca1aabfe187d2a1fe2ddce420dc1b813d47ee961eeb10ea21b341073efc83dad80567b2fec3f9383bd313a86947050b8021985407eff559b29bb70050b3d72a3cb3dc751799abfb608d497ff714a1f1f6bcdb3f778ce03c61a453701b6616c8e65aa705b5e67c961cc1592daa809da54d3028bdc904d09338f00e63a72768df24716e610b9318ebfc428caba286425383e069f5a385d8658e9cfc6066a9171be4d11426f5b973a0c685a4a27d98130a32c1e7691f40fe6b852a6e19860fd72a7cc3851691775529c94a6841abc8a58cff6ebbab4f459d9fb94426a2edcfe948bdcf5e758c00638cdd4aff12e2ae1642a9" + }, + { /* i=2074 cDividendBits=2384 cDivisorBits=1238 */ + "e48dad5985e1741f8f48126b972d3fcede1126b94b89be82a3b9580d716c173b0cccee9b1727164b4821be4c3ad77bfa793bf9586630cc142fa2768d347ca986b711d2f1dbea81b50c193768673ea2f5ff3b2f4c6a893f16894cc32469f7208de206a3d96f6061e5c6c5df6792f9acfe1b82f836eec300715b1fe80ab27d85714a1e1e31db22f8910a1df157d4f47269313680ea6145d0d14da33cb45846e0629594a7718091463d33155eb3f938fca601b99f0992739d02fc2bb104d31a11018808b0e4629b9c18c320ad3ea955196a1638b5b8ffd80f6daf70b9410f1975446e807bfadf75c7018dd85a733b39677d10a723b4e22f08fedd23dbc8b86ff6a97eaa522a0ad13cd6cba9e2f813edd231825d819fd3e78bd00d634a121157783d724db87015a4da7ae390", + "0ce150bc05fe900c752c7c8314f0ed515c6ad74f907386d619167d5e9fdb45295f5a6dcd2595390301b4668cb2507acdcfe5cd8f02c9953ffa695ef1c7b71037bce31022ca30de547ca107b9279dd6ffa9210a5af28ec78b204fad48d928a8502d2de4fc944935b51ee43f8c6a7ae3813a0643e01c04f96a5da5d0095e9e2fc8643fecac885ca3e3db83c7bd66c4c3c93244d39f7fda7130a22209", + "11bea0c92bea1535f838273153bc027723c92e9f144180b7337035c6000ecbd40f4b1846ac218b45a2cd4aa3109ad44533a3d0ab28b026c2d326a82a7462a6880f489af9974ff15b82466f075f12a6861b5be09a3dccd9729ab1421ed3a664051602d3893128cc2db1908ec517ca7dcbf2d06f61afa208e1d584fdeeecdd90dc70fcc05bd40cd3dae603bbbdfef7c549", + "021f18e6e5e1f6d889de88cd17d2ed85860199fecee0b37a6ef88b9e6fe0e9631398ecbcff1643c790d5c0caf0b4429f65e63b85b06bf5caf740f93b80e55d5f5547b721b183560ebcd9d845d5518c568b497c85767584825750524646ab1218b00ed159e2062b033395e24074d59fafbb3fd9cf2fd4934cae684cc9fd58aac6ceddb5820967f529be34dc642274ef89fca1e3f5c03318735f41ff" + }, + { /* i=2075 cDividendBits=2561 cDivisorBits=677 */ + "7e15da5d7e54efa130671f4e1ab3703442e179674b666fb3bb17ee998a53fe6d0265eef46a10ae8727ee1fb2e35b97bb6a547c1f976180f049dcd7016f2e3e0eb1d5daed8860feeb7541b36a329fef34bfd85c643fa27bcdbfb665154c20894f4c9867fbc665c8beb96958925cc226f5831053b37ceb0177453c71fba27d518ab3432cd921d85f94f7db1fd396f3b53766d8a3a8fb08cbc2571fc5f7b09ecd7f9961ec72c32dc818e604c0ecf66595efd4d03c58e1f89b17465ec0d2c6bfa165865971065c20cf4cee474d042a2fa380fa60431f0d4d624acb0654c3cbbcd9957b96c2da87d77228739a71a2b9c9709dc0dece384f6a0ac503a3bc737ffa6552308341eaff976e5e8447f805994038ca1afd7691e869e68d6e19bfd3f0a247cc6de608276f5e33ae163feab5bfd3bea38dc0e81c7303e030031cb9b23cb977ed", + "0134ebf9af248010c090d565a43bc2f8c26ef83d1aed9392f72c3dae4c47fdac8c6589d378146c697494574e96638c322fc116e45e936fb3464cec9974164602c2d236e201751d8766af6d7ece729940f293a291c7", + "687c4b1abd6636a770bc1da703374b52941adee526b2331e9d20af13685d2db73e611651815f01780c229815647bc99089d394ec3f0cb853bda20d7114be560c974f65c2bde625ce67201af711e30fb9dd1ace51a6651e4e54600317b8ef9911ed5c4f30e349720df3d0454324113e01082b8ae00868b6c0c15c067a45d9b844c560792f83d3c532e869aaf44d7dcb60c0e8d78b58d638442ac0027264c77e0412acb7f4a368221552d9984a06a85da59d17d482ae45949dabd6205c7b482a09efd73e709104dce37a39ab6ee8aaf6343d099c4268085993f88120ece55f4dac77b6460191886bea948ef119", + "4c4987a72b8be9d898355871b422f3d1816238e7495bcd2950c2b822a36834fbea54d9e5aab172f23cc1f3d0bb76d0a87338585244cd529708032909960dab3a4597a38cf1fd9cb8ab7cb97039d9b7abde3ae47e" + }, + { /* i=2076 cDividendBits=1666 cDivisorBits=227 */ + "02e5322d5bc86a3803628cb78b043b20d9e12f34ac7127d494af8e293752dfe14ef8588e1f19fb855ae4e8f026a737432f40814a7451d65a66c7f1abbd19b59c4c76628235939dcbdac7b13370899121f901bb22ed05219ba2c7555ca2d9c7f36076fcbe64e3255a857b7671a13c53c2ae1cc634adcc8336de177fcbbb6eb2a70c1559b721e2ee8f69eb810515e72803e70077daa07f42bd1ff2f27ac22ac817ea8c5e18fbf2ea66a6971e145bba4bc602ed0df5df34023841d97a5eca9f51de0d81e117ebb554eb3bdbe984dc10bc62dd", + "0721a906c77ba77932716de56fc4d20cbeed0cca3e802295bf847d3bb3", + "67eed2f6df443779c26f85cd297bcafbf63b8c61af583f8eb82639aa131c0a861d5fce49e745af73fddfa8f78e8363df0b8effb2858a6f0eb6bb5870a7286fafa44c08d8130c7d6c7409526c483a27fb2ba47df5c9230be0f99cf272fb98be7966be46534e7e5dc14155f0744103219c395f35d5333d28b94d514712e29fd37435b007d6009d670d5fda2b7fa28cdb5ae78fe8c1c1357deb5bbe348e9ac9323a09f756422b7d245cc43b6c5d3f7ab3a78f9d1792", + "068882745bb97757754b80285ada3db2da62e24c3e5c8798cfa72c41c7" + }, + { /* i=2077 cDividendBits=2877 cDivisorBits=927 */ + "0a0f98708296c63e0f36700321f3abff6dc1f604719502ca019d29046863878c46981d4abac812dfb7dcf1f03da6c79302dc46e9bf91a65e807c4340a20b9b84356bbfa23f5bd876cf82dfb700f78b7633fd496af614db39c0197943bac99d1f1f243a52f2d52312f7b4fe1ce5c3e3fed5745d59f8b7805b26dd868bb7d7764de6380613e42f7d5757d5986d2e6a6b4aa5563a9a1a323fb701c2e35fa018ee11a8a128699dce97a46cb0992ac04621eb69cdc816bf07cf26ba98e22b8a7cd2244c9c6875f34b04f78785d261826693e29d794cbb60c74439b2fc9a76c6c5ff8bfc7b30d72e341e8d6c29651c8ae58afc34cc634a59103eca3b81aeec6bacc546165b99052521c841cdd6183a332a0444d5e24aa104cf98a8953d7e894258bbaad8066e418a0596a0f9658a0cc94fb721c70e3c356f97387637d7c7dc34016948261e6059f11ea94abdba39a97f0925e9ea0d66016a24cbbd0fd93b31e513a0d432025a2f0baf0f46", + "699a0c5b37c35ef948175a35df7160d8c3fceaf1dd6c9a1f87a06ce5c9682bb2368000624f3ba895dad39cac62fdf69b8f509eb5fd61bc03940a9d5844d092a914bea203626f3c2ad0ad352ca109f32546e006b59fda0a5c9b9c65a92ad27be2881decec0fbaec0ec2796c4e6b99b256bc2b8ff3", + "1863c3a6e0ec9e62ab017f6eaec463c2a4e74545aeaee6c98c17ad4bded2087c2b5ef6dee7edf815056d19269d816d4210980067f8a1e9e20311aa334c663b29bd7b81fe0447a518c13090796f072ee05dccc1e6c47b39553b98c66c0ccb00e8e58e41c32098c11a09741ff2f95c6554ee694c111e3ed5b02c313fcd56cd2246c79a3b229bba615491909277e9656895494d8841e0136893bf3849ea8eae2d1922efd3e1422c852d4acd6cd86a575cd1a4eeed2215141ad089feede52a21b533de8c1b469467462aee021d95131abb1e2e654726795ce07765faa15dbe814cb05ef469ffcdff98e4edb2feba26f5d6b617e726ad", + "0461c74f939c3b0115b1f0348686c531298bd35b0bf77c1c945839e2ee46055356586bb1eae014158c26e8e498573de6c6200fd3e6b911cffdd70141c9a3aa2a3a59c099f585bb152b91a7abd55e25630c684cb07e79777634b6acd51f023c7eda660c42e55e7f1926ca5c93eca3c7a3b19bb60f" + }, + { /* i=2078 cDividendBits=1092 cDivisorBits=370 */ + "0248663ffad6a78b1e905102a51e976c9ac6b4a82eb5edda0b16f6ecb5fc093ed38107d1d54db116a8b5c16ac22bc2b6bb522b882f2acd5d09ecd76fc41a0785fe285393c7f22a50a2fe7c7a6a78dce5364092b0525450461b444e17af49218e73f8c9c34fb18c067f85366563bda6a03dc82e7f32073fc0ee7ce602e6c15fd6c366031adb2d45e49b", + "034b649704f1307f4d0565e59490a876762ed26ce91d20e12ec825ab32fbbeb12ac7d6e79d13e4ed5e97d57cbc5601", + "b162dcb019d1fb53adf3d89fcdbe860f0d9f6811fc5a6ce81bd23add7c42cb6769723112c7b83e31213eb7d2d6d84566a37f204948cd4478c137a8a3a52845c0a534272f50e1484f530a1be432890b60593aa44380ad0c14d5e2", + "028a973554eb0cf67f270aead68ee969156d8c3b1d1d2f7b999af963747dbbdd05fc4310925767a91c3e2e975f22b9" + }, + { /* i=2079 cDividendBits=1689 cDivisorBits=1326 */ + "01eb4cae9654faef54dd43f4cdefa1a32b5fbc3428d816f21f34d1f3c76eb6a6200665244977ca76deee9f70804d0c10ca2df55de46051ee8b46c02a1510775a7fb1b08a0bc87e2a8cf76a7d6c948d4bd5f125b8196db2f05fd6f2149bece3adb556b3aa530ede1d01d6f5f5c95e58b185776987c6dde1c7b267173a7c3ee8deacc9e76b4663ccb24cde2197b058978a5b031b52fbc255ecc28755ce644f2514774ef55b4d6a8dd0aae2f87eb50acb66e66720a5708a2370a44851862e3787ed914637265f95fc1b249a916ad4acba2b0d8b8fa1", + "14fd89aa22b5194ae605b8731c99cab19a20cc84433794b217c4a92c9eddbf27fbdebcffc2d17c93ba202cbf5c0cf9d8f0360776ad4512ec3d89cb8e102c6cb86080e68d96845ad7bf7d1dc2814a7b7743c789d04256e50832be8fc1194ae718f0496eba7098400bd91a862fa0e227928775cb4c558df39ec1d111ac2bf93b78f1e3e1ffa3392768f263da8028e0fde88729b44090538eb97cdfd9de5fb03b43857583d9c4b0", + "1767eb6fe118e0781f48ac8e4779efa76176d5bc0aab407e5e0d8b1bc09230c1d642d163b2b1e70b19c7eb81fe65", + "0779b2fe40ec7049f3feb5352fe5589eb46bab3f582ed5f395896e7ff370fcc06d3651a41b82480da408c8f2e87323a04ed37b0324f8f6922f8c93b0ae1f802ea00a304ac6af8992c63e8490765944cac4e0cc97590f5106839480c466b2d11bd9fbdce4b0bedef48676e44bf2a420ca03f2dae1818848d220dd5d6dcc988eb980254a8f6e3f54e55a4cf6ad739a26eebf2e358170389ca30986caca5ccd4e510ce24aca5631" + }, + { /* i=2080 cDividendBits=3216 cDivisorBits=347 */ + "c445fbe4d6208acf6014debe1c64a52245afa262b713ad3bee3c6bae486e59a5971dd71a0c9f182fba0f82cd9c593726fd71269ec8102fbb1090ab41ed94763fb31aae38e3fde625943563e1a27cd7c8035b62ed7b0b9ab010fbd895795e73fe9b65c5b91be8aa483592f4e5fa38c8a3d31e2db2a0cc5084b872267a3983ed49acf059e5fff0fa01ce827ecfffe48d3ea986ccb5abb2df784af96a21b1c0ed71d00b738121648553544dc00e31d408078fdfbcc44879eef3411749654c8747529e7dd0fe401199711e320410ae37f6aadff084fa81ff7ff28be7b8afcc88f8ca33015edb75c67bec56da3eba07b2f700d072912fc9c82c842a672eed2733c7b13996244cf4224b50d9e99f0537cc96802880b512594aa57e5245c47b0f55b2e798dd7c38dec37fbad125f5a247893ee2c8f3975243256f3320cf5f592ff64853c39b17259a82718edb58a0807336f3010c7dc0618b42b5d36a680bf22541faaba00eebd771f9498b9b35d15d46a37fff6838e6ca69594c8b6dd137232fd647d2347f3368781fa441b7af14c89a707055bc1c", + "0227f858b91c752bd5dbaf37576060fecec0c8c986ab8b644988a3604fd475ec1767192f9c2a82f1f5cd476a", + "5b07bf5844d1e241e8673be1196ed4a3517518bcc657b348b64ef072ebddfa06f3ddfe6dc04365cf2d82e201f9afce1d052ec43cf2006d695c1c18d68c440546109d6b2bdc73d8b5935d5702e4f80646d63d5498d8be51782e078f2c87df16608646ba8c7c5ba234e07a8013cdb3ad511e53690349a4292e95df2d745c79be7daeafd39734897b1de70c7900dbcbdd217240563ef63638793bd0bf6e7419d396328b1b024ed8d6ad3e6db753f26352c19babe8abcc352b0533c9ca15969a7d86b1f80b856d7906b3db47839c5136158d17089d0299a2ea11348f4631f234370854cb2311807c0d8adf16d7f5ca6fce8f99c766f98752958d7237c9ec791fce2344f0d1f511bd8dcaf3c7b8fccfecd3e83c02a4b1aaebdef3475c0442c131d25fcd794cd4da681f82c976d8d05328bfb6d1853d5e374383e7fde617d0d0b110bd1f19e5b90117a012da6d0ceec1a15b77a69fe0d04eb3eff4d00219652576c85e6b764b3694b367", + "0167cd3d7ded1062f595120e790e3e80313e0bfa956054215ea5599483be508bd0e3631d61068c6c5c86e276" + }, + { /* i=2081 cDividendBits=954 cDivisorBits=621 */ + "028a8e922e049092dff8325b46ada8977d8a69c372b598b0c337182c92c09a69e929a3640c61f4dcbf219067274c4080b21740ee49f118d3900a5c24ee991dbc872d84641db543f558573b070efb463b19a536f7ca021fea0f79d688ab42fddf33a44294b03cfc697eeac838cf8d2a0ab3d9d4396e3b3e55", + "1d106b4715a6fdddb066a28082959660a9b0f10babc9ed4bd641d50b4e6b96b1eb3d567cdb5103ea77e03d3c9c2db01e8aebca2d1db7004878c3db9e00fbc18cea04138941eb1b33dbfe6d6e740d", + "16622ca02563682bd33ee3753e653280daaccea612ea5334dcf0d698dced4f9848b8f0575cf26c66326a", + "1295499934b5096329595e6cbc55af6a50aa28d89331b0593ed84b1534711fe1e223c0cdb13b03e81c5e47ce740b03f28d1fffab7f7305a4c0e4a3ef977efc7762402fce07638d55783ed2a6a6f3" + }, + { /* i=2082 cDividendBits=30 cDivisorBits=9 */ + "0d117fd0", + "67", + "207b06", + "66" + }, + { /* i=2083 cDividendBits=2049 cDivisorBits=115 */ + "01ea1b9e7fac2f7e14438a596faeb1a9e9f6667981f7526ed751b23eacb9247a5409298ce86dc3d6b72a847f362ed3b92d6f57430ee41c40234f0f2224525cdb322de9e8925caab5bcefc791faea6e68c6f9dffb3a7bc20a1ffdb054c5dc004ff0f64364728851b66798a54064ef65909243359c4115177c61c5cdb9e675f27c8c7b801c0f8f309d0992d0fa7a15569c2e9081f6fe465d101d884e964138e2304639c712a93664ce56ab53b022c8b9990e46275cda7884ca48abc844bc819e816dc8e007d242f8bef919ac50f9d6627f79bef4405fd9a7fef1286d304632dfe812821f370bb56352b6f06c52ddb972e321fb290653fceb414f63cbed04e8025ca1", + "048fd83de634ef5dedfa3dcf76d378", + "6b6f68c069a3b736850af81b6afd958f4a80b0be1085673920efa960882c60c5d2f625c6a721d6890b68981e745037f34a188de538e4e5893dba4308aa8a6db7ff9ac759d16f9e33e3548ccfe8751313014b67fb838975d9bce239ca3f0ce99f967b3bcb57f0cf4563348574fd6a091b45ca9ab285f752651135431bbb83fce9d14b788978cdbfa23eedcd848f8f44b64e8599f0c6cd1181f46f9b31db813e8a84b5edb273487d4ed06629914f48103c0bc993364cff206482f5a249bc5f1e66d941d0d18ecdf9b53d62d108fef694e8fce3bdc09f36a095341095e2f83867bea24a371ffc9ce5796f2390d58cd6726e41d6", + "043d44a1ca8152898e9622016c1e51" + }, + { /* i=2084 cDividendBits=3257 cDivisorBits=1727 */ + "0111764df03b43495898ecf71d3ac9e1ec80b001295e23ba5543ff0c042eb16de6680d82befec7ff9114435a4d3c23004a31ddb17d51295f43c96cd1785215ab1c3db0425ed8621ef53c181df67e2dce52cfce34680d5247c459fadec93347ae7a248d723a676c1378cd5be99c18ac0cf7d0158d113bf26b7681bb7353cd37be13ffab040c785e781becd0f3705a50b84a4549e91feb883ce3c1b4d409e698898561c51129c982b6275c6b2450561d754a39816372c47810390f950a594dbb5ca0e1e936dab6bacbbefc60e7297df93450581fcc89b16b37658e0e8c342506781fd1a188f292452ae78c3e761e245fe159f80257f0199eb81ae1e06236883eca9b795eabefcfd3e689ad596fa9d55e215206e5883669a6b1eac228dce05bdeab58491e2bf2009d0af5d90f70202966e3e2328da95f725e04d4298ebae422f4d19f290e86b03cc94d501e98327eee710bd7df6ce74afb62e5b20d1faaa973987777e01c928ba5edb7d231013e5cfbe8db6ff1f5a66cd7d06251377393b3bf268cec58ae849e2d6bae153c581dfb69b9690ff6e231c0f88193", + "277b363ce5c01edbacb244e9016c839064e20c98be48769d7f50ce0c9cea58fbcac913055d79e18b4ac84ae2bf1a822409f875950f946b6e0eb29e178c99a2c0d3bed3fc7d576d2162cbaaef6b4749dfb56f30b8dde181cbe1e2eb2edb5ba5e29c8ff9533a213988319d6a1432ef459c0ef4cac76419fdc52bc2b824b306ed22b1504a6cd42bfabce36d13f93f6d9f5a9a77fd611009e3aa8e420e06ab89581a72a5ae00c521fa2ef6c1365aa18122f69876afbace3d94f47ebfd3d6aca2dcc250d9fa5a796cba73f9ec5524dbd9faf8e954f0d68a6e44ec", + "06ed26af21a8fda7933c5ef7146915c81bbfdda1990a0ebc71cf09986a421b8f9e682148b3a72e49dd1b7f54fa784012a0303fc65fbbd62c99e8b9c4ba521d08a6bb9998c3acb14144f343b54552ea9ba81d15d6900a040c78bf6d9fc84deec5a3fe189d2a15709df821ea628e69a088f698caa883697d026dfa208f040588277d2c43b5bb21871d4a7d8c79a5cf0ae205254facbc9498c19ea6980ed17b9f82921de87d1be3cc3916087506a34e0bdabebfb60180e164762a7bf73d9eb5a1cc", + "1a3ec7c6e6603c36840ef1da8727c441e9b9499e84a868fd99c59da89b0b07bacf52ed291634f74f7c495219715687df1688e6b283b5dc71b48bd327b59d5743ffd13d7c51632d0d8f18fc40ffb9144f7ea56011a98d22b3c5f50e63d9a1c59bcaf9505b095be9b321882efbf846c8db4bf8f696ddbe083507c6ada5c7dfdc36948811312c37321391ee1e96abf72599c119b56c0643dd23269fd61260b59e0633d0ca1813121fa23c0d03dc3fa240e1acae089641dbadd06164e49c50c548891b6d0a3de9b436070821a96fb44cd8dccd85fb6fb4e52983" + }, + { /* i=2085 cDividendBits=1696 cDivisorBits=1284 */ + "d18be1a231b14e54dc4c209a0f2da0e0bff5178355897b6710f4f6b788a255d27941384b13bc5c153612928718a87ad265fde124b08044f6149372c36bfbf10e8a9128bce548010a87fb3c0fdd52bc2e6783a960abdd0dbde45a40bbab87142d0f1355d610f044b5e3506db66265844e7b84bac8b27adb1c83d595cb3440af62f05a293566ee44a78d4c5aa9ea37c9c5181f033cc50bb69c6ff58f2d61a88e62a8cb19d3b2620ccb58edeb5c00dbcdd71c0b20345319f8359a37d6c89b64e20032349e382ad55d32a867480ca12a34de4ab61a60", + "0cc00e5dddd346e2a9bcf8e7ddfb968c391604b58859c21adb1f4ef1b2ba3c2209bfd1c1cdae7c5eeea3f98a439ba0807b6dd987e38e2bf2476f7cdbe37bc1164a1538833c6a8626bdca26a4ed6ccb4fc1c3b5bc352d8a5dc7e344d081a85db1112480266c544ae67ac4901faff28a284cb58daafff7d928009b8a7f41b29b377d2f5364dfffb221465db8619b7f1b0f8904b121ec0f69dfabd0b3a22c6c1bec05", + "106f4a78e5e9aa8878b9ef4e26b381f875fb53dd5c03c6a86e93dd29983e030ef3679dc348aa0a12f0aa15330d95b0ed5c4f19a1", + "0af6eaa022be83b8d4334fc3c6845927e6c288d0f192645a816606f83df293ea878a2dd44215902989918feab45c28be31566a59cf6dacebac023bd798f8b9a53761fc1f9dc470101172602e2200735eed0e45d99f903b5edb829409e25eafbf8b89a66aaab4a3862182f772a5d969b96d3b7a1979a9e43b2305edede1eb21fc716a5f5fae1c0a9c8515fb25dd4e2009de2ae6acf740916d36eac58a4ef18f2e3b" + }, + { /* i=2086 cDividendBits=1121 cDivisorBits=563 */ + "f8be625edf199ea25d9a28461cecf131fdabec58905732b44d7855e595d75662412b1dc5a7299df221a72a7883e422d687b18d433ad056e73ebf687aa39e902d8750d8014272454fe9ed22b3c91888f014c472dc94294e42dede0d8e4f8819f7c93dd810b65c5a3d283358bbba417c801b6067fcf5d015c1be70909742c447419082f054f5ccde850fdc36d2", + "0583c39084d08f5ab44d7c3f1fa47c0ee08eea670d6f5f10714a00eafa3870676fc382a00e9d16af44b6154ebb6dc6b6a6d144ce2bed59848a38319233509e5ff1552626a9ad27", + "2d1b0523a01816ca43a60013a477d2b051ffbb1bd93fc31f5c5982405ff381859a018fa6b5cba949a28e59f8310f07c9007ab7b735c44c3a5941d370217f9a45d5834aae2999", + "036fb0af359f215b2de956c034d946804eea7723022d8be8881a51b3f883c6f79150c4f403ba4bd58ea38023246c8bd2336147485f1accdc180a21a61cafbbf96a7d30d1367b83" + }, + { /* i=2087 cDividendBits=972 cDivisorBits=210 */ + "07cda0147fd61eeb2465b40509a233d762d30006902b99598e432d939c04e17c2e18c8a701ca5731cccd13d2aa420055f6df97d25923eab0b9592f77d88b2dc53d6ec3dbbb4424046ca13905a393e6a177055483e4fd6fcfd1e9ed02c975b8d4e5d09d3b96219d513c7b3e9bb5212bab254771bf89ddfbfdce2c", + "0220685d50bea105be39d474d03a661ace83226fe87e654cf87226", + "03ab5ae26ed8ea1a074fb0c75a38f84c0e30b15a4f5e0ffe2d8eb5f62935b1489c80e0d4a8c9ab0435928f61bbc727bc5a610fa0f7a575753f1eb965e64953bb90d28f0b59f6bc049072eaef1415085c84080cb548bbc267cb4d5966a26757e0", + "82330dd15c350b5b407fac60fd47e76e15ef0bcaa2bc3a8502ec" + }, + { /* i=2088 cDividendBits=637 cDivisorBits=322 */ + "0ffaf0485a261cdc653d587cb2478077eaeaf2c10501faa5610d03881ff455e5d39e9ea653fafc917b03bae95ce9e3fc7363fecdeaaed02fe3a7afd0c905fd55276e4915533a88f0957afd0eae7484e3", + "024c89f69f5a7c5670530d9e5ea8ec90a4aff8cfddf19a617902d3f84c1b9ac7e9adf6f248d5038e27", + "06f3753ed6b89cd39603cc33dda711e87b86d59f5d5deab5190330fda0413a82314807f7e0c556ea", + "b0acfbe457a824a87bf054a0a55641993e8d7d1885dd7ac8e32bf89fa87cfac25ea4ce2d43707b3d" + }, + { /* i=2089 cDividendBits=2858 cDivisorBits=2245 */ + "018eaaa5e1ebba3c11f11763b51b7f966063c606c7d1812153f57d93d228a205c01e7673b48d9272ffa19a5d4e8cbde95afb83c690469459da942532bfe7f08eaa04b20c8a22cf25dc9ca4aa9a08ebb486647cda82da9786817e0aadac736e0295e7f605b73744b10a731643f5bf862bae61cf8cf1360b57e4ebfc56a68cc83055dfbc0fc576cd00581bd55753f4d21ad1a7f7050b8f4465f3a0d81fe0a180c8bc9947cfdea9d803870767fa8be805ce285052c8bdb6e52cb12c84b64e107eddb5404ed67164fe954f596d7ed8c377c29742b43fc13cadb93fef484985641ee7e2c705fbdee866559632e6d9642f1012ae9269d360b1e585a9943c8a83a8e86d5c6327894a8f1a6a1be909606f5f52e4456f1682928f87ca303bbf0a900a55acf1fe19eda5ba3701fdd222c2964ee1c913ed0e1ad1495487a2f277447b4cfef259abad750962c1bfa44bb5283142c5348c2e511031d1a7374c9925608ed676adb481dd61df1b", + "19bc39c4e50c19928b342e75e26028b4007d0f3ae2b1d636562c2717d98dd36a6de7e905c86167f578cef7a17dc3aa79d6a5714acde675aa8b277578660318190b22d330d5cf642608c43c4a5da1904024cdfc0dbe03b0f495964c3b070a317bbd52e71d119b00c9c95e1057604df939953f5e6076d2fcc045f7b88e2b7b56379812e339f4baa30ef6fc69c65a89d058564153c3b903f23528b3307b75278e8de1d5900026b587f3c49fb027c0e38010032f79f8f837fc4e05f9bf5fe3e85f64116c58f9977cba789e4f14610ee2b5cf3b9f0fed5bf1a3b690b8e567d4d31d6e7622910da9dc8f7dc6f8b6a3903b9ab68c7e90f64605e9a633a6f578913681e46b0198d7b69814a1c098c097b9a863ee22f1052f372cf1b44f", + "0f7db69868c14cb2d45f8c5c3e2c620553d0fe27a25cac7a4f72e2297eae39db3eff74ed61b2dad6e4d39a434fd8df68b23defc39c911baac62678ba2974c9d44f70528c75a0ad1638168f93c7", + "14bb6a003ff36ec5818d9f78b9f8eec3d7498afbb49077b6439b8c75a63a0b2d798b0b7c5524b1524b57117a6e4d0c797981977e653d3f3d4b4c38e233fc4c408331d009b69f60329ad1a4a3b31216c23b95d10d0ab3396c501b3c0f36f8beddddf5373d9808ca3af16c7f238ed6c92984b79e54a142b0d334a9811aa4c42a8d7f4f7ffff90d25525d2049f6861b38cbbbb0057e23f4744fb4241a86807922c2753b489192ba933192c7267d82101360acd92bfb1694f6dfcf548a687102f979fee34469b0bf1c5617a4bbb3169a6db3d8f12f254590725c3900841c8f9a4f7e5ff00006f7de8b57c47e5835d2e288801675a9361d44bc76e07cbed756b3edfc07a4eab39ed5e1d3d9c62aed733dc72f4130193604a0d458b2" + }, + { /* i=2090 cDividendBits=409 cDivisorBits=241 */ + "017e5e65e9fdfd7e4026c0f6ed6db0cae53f0b8d19293e25fa650ec344e89ebd45124e966c58950714a243aca11f322b4bd0de54", + "5fd88d29eeac9c7be4d96997580d28236a0c41fdaecbf492ae1fe73a8064", + "03fd4a10decbf1408f8f9bfc9603d36d2505600d6983", + "4283a87b69a2340662037e15e4ae482b88e99280f54d73095deef5242728" + }, + { /* i=2091 cDividendBits=988 cDivisorBits=950 */ + "0704e57fce0395d084efb67cadb07e6efa3bcb249ab2c8d496c17d4b01a4a45432c7dc9a4025bae73ff4e400c1bb9298bfc746282e6bba0e1c9d3695741cf332556d561ab89950257ae2689a5d683c7631a10040c6767ed534b211325698f242f36021baead003c665967c51d0ace49f63016633b921099bc1ff0f8a", + "0b4d9d41a12717fd505d60dea871618d5d84b3f3a0d4bc160f4ac0539057d2cda0708220604a947c5227653ac452048d572e3377b494e528dcc223d387ab4a287a96dd93172463386681ae285d34414b0196562a5af76a3d28044e4a0375a0609b15b0ee154528962e00affa85731d6016ab808ba2036c", + "9ef8fee154", + "058af5f9e5fafe0379a3c79fdb177aaa8e40e9659589e645102160a6d9e23718b702516c58a9dc559d8fade607276a99b9ba1c2b4ab94222d8bc35e8e8eba893283fb6d7f5f6a7785f0671a3b1b982fe2495d3360a68644e2b5727ed6e1a1d0c8ae150f4ad201653511ba3ead1a92366272dfc86ac041a" + }, + { /* i=2092 cDividendBits=1922 cDivisorBits=1732 */ + "0118c42345ef9a4bfc579629bb45e38465392b4a4ecf4522afa92300041e2d6b8e832cd12c8a983841667539d8ce2b3839cf7830cfd05a6322e17e15f54edaf6d0f42c4e381cdc1f3dea3ac2cdd30406b5d21dd69b3bf66a8e31ed29bbc096141ce494b54ea4316c0005b5f0ece8ea88fd7951ee3b3700ad05616c9ebb3f0ee7faf9fcebc9b46f8e9d2a50d2a5cb7e507ddf5a15250ef2695e841da60eeae9d0a1994e7412c16dee1e3676e8550963086eff7241cadadda4c3049fb431099cdf526e4a964761a02e8e0cc0cbd7077a69267ca89aef52c6a2da716b6dca34f8585495a117729bc54db7e6643f7715a87ff6", + "012777074b28bdd02ce88a8739a1c06bc338ea876231c1835c39cd4147431f1d6839818c7c69f7ddb3c4963c3fde52e552adff9670273814a9c4b0b6d0aff3af2e29fb84b68404b06e6dbaa56d028751613e753078dcc756b40782db5089e00df6f1eabf900a08019118f8622826b1a35344789d456c817620612a02bad7432a9611afb5971972ebcd5286ef5dc6406852bfab166b91e67a65376c2420502a5cf19f8f1792a757980dc18ac6f9407ccba37f52e6caa5bc290d32a48710b488e724145c641a2a7a26453670d0c2a0afc943e255596dd213e384", + "f343b6fd0d60d822b1023523c84d2569b2e218f44947cf93", + "edbc2fcfa56845af92427d981548253cbb1c668d74adc53673f5dbb5902f98a7c732f45b38b89c57302a82ec1ea9fd460bc06399eece2f3ab7299a30dc09c02af0b9390c8d3dff1feed92a288d0fc2d99868ae4a997593e664e12f354b75965aa15677c4b74aa69c8e0a9ad0b26907e792e33773dc5164e35ea8ac85806e4dcbf50f99ba1e75982bcddc65f70dd650611d147c358f121f538bd5fd96b2f950ccfe2b5f12907cdc9daa84c2404d65693d05994672bb87e6dd1ec7f2c3aeef12dcd740ebb3c6b0c475719716fb6439844b12e3ef54a1a91f2a" + }, + { /* i=2093 cDividendBits=571 cDivisorBits=330 */ + "055619129cd14fa6ac8bbe7ef0e6823fde9b5e7475c513deecab0b265dada3caac506080d1b37453379d2b84b035c11923897a2a3f8af862aa0c858e44eafc236472e0f2baed8c03", + "0900e11b562bbfa433a39bab7c21376d1c41721efa660079cd3fbb076ecb1689635f1b0f91095704d7", + "97bb128df7a51631ebefa79135d21721fecc6822b36ce7e3a6c026346b7f4a", + "07419465ee9796e9ba908a1c34c5d86ebd5dc79dbcc3c544228f6abe60957a5981136ce11f2a827cdd" + }, + { /* i=2094 cDividendBits=1670 cDivisorBits=1550 */ + "2468dd9e114303dd3077e1c1b4071d9859b021b629262b7ea6259b6acb9dc06b29c9888c0e2cb1ffd8078118242fe97dae166352bb0902c36b641ab2f16ea34ab03934f64957325737d8c60fa4ccd9f859b224b50cc367ea605ef407500453cb2d19af874518cd833f0b38854216ffcb497655e901e306648836dbb1790d7e30f60c74baed9620c082b74d5660aba16b188620c8e1b164e2a721c6c8d9fbd1fb6844099701aaf24e7c3e68f0b83e8a447d0574515ee504ad51ff114b72cd41f6c5413d227e6182395002eaca48e5facb4d", + "2f0581c597f338db4a408de6454f15a397e666ce930dab08ce2708fb83c4e0d131f2d9c230cd6cfbeb6966e8aed7cc38c349d5fb1d96c3c7427765231537b23c424651626921cdfbe2b0caa5effb463466b0263e50e0e58d868bad276be6c4eeef115cc0fddccd2ff7c47158c07284dc22ffd17784e6d00ef48221eeccc0f4c82b296166cf4e61c918b0e02e93afc7b72a10db5cef22acc8ab6a69cfc27b4579c2f5b020563b52233c415b16b2996783c8028db8db2a34a86770fb3f791388591fa5", + "c639beaa2fbfc867fd97afc5feabb0", + "18db1c2e9577351101bd2e9226fff3b9973d79d73a6d6fd8c8320505c02070211d2759c578ce8ae63977ba0a7af5d82d79f7e0c2bd89ea3165b5bf117654204e798ee59eb2f9ac67ca15f897438bdd3bd0324bc759b9f58dbfbbee070ef6cf0a7786b0381c68779f1dc965f0e41f743fa453a5355a3646265f622c4c34eaf7874a73931a2a6d1153826d08896a9e8395fca60608e97a833b0ab5b2d72ac85e6ccaceba7cc72e7716217148a3ca34a66c51c2099da0ea02b1c92b4871ae3541dbd2dd" + }, + { /* i=2095 cDividendBits=3485 cDivisorBits=3182 */ + "055c521ab0882d2d8bd3446193a6fcfcf24a983c304bf46321603b24c0f05d777bf9f0d606ce8e9c7ba3f543ae68f15fe28ddcfb50ed47f9d3cb8e327b774857a9ed4d310b47a44e0a1167bca3f7aa7f8226eb8c2b2d4e6572c20405bddd54b6aa873d1216d05f73c5e18e607e2ec3d5b9a5c7cd4796780c126beee122db52862d35546a8626ef68dea0d1c7d2a7c4f9742508b412d1bae8d268f12684e0539f3ce2d5012fd226df840c68bb1a56ad593da01c32ee33d8a7109375304d8982982a9b320846cc35cb651600d64ab48291b717cb682f6e02483bb46548e52f80149d30dce3c6dd340c21b8254329346ef1f26cf759d6ec93e44fda50686e3b1c7cbb3eabcfb82d06c38f1ec59ca377cff1a3657d534f01584fca9c8c15ef0920d690efecf9326e291dafee66945d0b49dc8a4ea5cec5172dd912989917467cae3c7197b76b3d62ccbbd515c2043f7b0e445eaafb62b151b7c71349f8538308c56a35de05eb63a2d9cc276b2319d9ac5b00d661a41f6951752f4e40c3d7b4b639fd697939ffa0adf2c973b9920a500f8ce20bf396bb618a689d1a8b7412b1b16841b3327b703cc57d2eb7c8b37e51cc47681a328f8a", + "2e328adf57de5f9ec8cc1aaa2b8bf66a9ed619d60a7cba093692e6c14b985bc987dfbce40bee0a1698662c43e632ce6c4a2e3f27384b25d5356aaaffa0126467267f89cf80e20fdac01698d88312a28c6b5792f4fb3e7963d7118ecbbffb8cd991539c538028823ca98c619fd116584dee0e19eb0ffe26375a8d4e669353722529c1ac1f0179a4c111722246f40d53335c904b3e2da7cd33431c1fad571c9bacfcd0491e9601f4a49333ebabd024b2d16115d5f62e03f2135f2b0cc2a1ee8a4049c577e676d922632b2a68031a1591204522fb6533662dac02786491c3603c352df83093a82661f62c28d8c88c56609fdd4704a07fc6e228e583c83da6f5570fa720e3d0093669dbac0930a19612d4ea7359353af5e770fcbf1607075ec7a8936f1d26929ee927936501eb3bfc952a3b0107fe9e15d8bba43176a5455331160cc5ff59c24f35b09fe39daadcab6c2adb7dc38a327dbf4c25993e73b4c69c912fe9650cfc497c8a9bbdac4da0e6d495efb8e959ab33241a22f7a686daf88f775e668c39b929b1b1d02b47ddb24001", + "1db49fc9722c02eb81f0ba277c277b31b5c5372b1a75451c6d9adaaa89cf291869e2516aeb76", + "0d987167a2b6bee2a56d5ba5bf4c3764c2d810f545edd61ca5de12fefe3d6bd8269df870cfb1515370b3a928449a880defd07fe455cb1dd605c2958ceeac2b86d21c7ead228a5d3a11126d85526fed516231a6931b814d07eef042afc6e05d5caf1db0369107dd349fc0faaac5be90957d83308ebce72097ed6dd08d6673a3a7c7bf98e6f04e226bf0390f6b4838d14105c2717a9de9dd6b8d2e463178b6de5b19918b8a201deacb15190728d2c4e910ff7d1c16e33c6edfb9b930e79a54b8a71b7c7a2d8e13f9789d6839a3fccf2e374edfa38e88dcd48aa3557156f0c895d65923a1fce2222f2b70966b9db97673d0097c183b9d0e57865859757c1f9c6531104e963931e5fb6f7371f3f4d0ee56a9f71df53e281965982d36473df6fab8db16b67e769d033a83a56737f0569ab7ec335b87594a5caf544cc9afabd80a9e45712961101d7ddc5f1dcf19739c966a7d3b213868dbd35146cc8fa068d2adce3abd5f5f7775dd935deee5ad9867f732109d1c752f0e031ff4d6e72e465eedce81ea38b78191539e813fd477de2414" + }, + { /* i=2096 cDividendBits=3175 cDivisorBits=1563 */ + "4f8e72ed5779461ccc68743d064181c75ca9dacaaa3b569fad0a5aa976456187574a7b52d25a251dda71040ba627a5379a5d3f1384207c9375d42b929ba52678d8e0c119f0ca5de8e08baee54d0c1e4a43575dbd0b2358442543c60a310d6ddcba789e801dab84e26b92238e87ce71c2bd8a0e1ba0b07b94034ba8a6447b0126eff0d346820a0da09c42eebf67c49c8f5d34ccbc12145d8131b49c092f10322991ee6c5d77042ce6fb2763054f88327c9a0147a3c8258b799e737b12589d763378e8ffc50239cd11f90b63f023d38da3798fe8b4b822251cd95ef887ad8fa3f2d105ab2f02840023ae58920c8afc9692ffccfbb7fd56cb64f65ee9a5c37c7303125e32a752e07c57e7780320e59797b1a7634e56283f53f0c161fa1c842e570fd229fccd30ffc48fcbf963855ef482cb2b3e7f66fdda070bb990d4adef12522b5e23377719d5fbf4ecc9566211ca8a059375fdf24e15013685084d624315239f0b2bf68f368a17a807e5b944ba6f369b0a392018668ded304b7522aa75caec493ca7d3b57db7a916b49014c997", + "02e4618fa3db217a195e4b3fad25d55cb5b5460d7b5e62121c2d1a2981d2992067bf6617a7dde0a6be9a5abdf9bb09a3681ce1492757f8f6cf87a45b06a2a7aa76268f2825eeb88efe5ce4751ede007d4c1ce6f50558355000c696df1f68aa795230394515f219f7cb8dffc9aec849b21ab2a72ef9cff4d3e6d9134c732f63d34c955ebd6ae816f5949c491d7615096ca3dbec286354ad18bbc79ccac531d10dbb84900d2dcce90365d14187a6403f8241920748b3854c2a5ef7887a3635801d21f54b8d", + "1b82105510de221389dde5ed4ac5761d923130874e564857d41eb20b201775cc0f59c4b4b45a948de982cc4d2bd3a2c594f572a5a38b2fa7a446a2ba1b50a919fddb5cd2c0d43448c0dea734c3c9c70160537fe11c61bcbaae12d0989fe1b3b4f01932c60e5faba18c0c96952f1e36a18427cfacdc09f2b7e78bf280c118a70b13b30aa3e3525d3b1aaf760aa27fd1600088d396d2afb62aac1b1eb1a2b043d5cdb045b16b8b41205687321d2c509bf938340cfaf00092c3ab7b11d0cee77692d1a943584b79e4d18ed5", + "01778a898062b5d034277b8143f00a5a23d7dccf89de49295b285fe0db20dede6de479a95368382b0031692373b52c337cdd6c53843430311555194db79233a024414e88572fd6d93683df616affde3fa9122f22041680f19ad197590cb81bf4757e469e998b57beb88063fc96d272e1b0831cc1471aacd8b98fa73c9a3042a47aa9f4cb2e61e6183121883f0f58f6ce797c9b8e17472930a4ae6a2e094c5920f4424f4aafc8b36f0156dc97e6cffc0ef6154ce5878a0c325a5d83109c83206ffcf7b746" + }, + { /* i=2097 cDividendBits=474 cDivisorBits=291 */ + "b1270d71e11f7c0c04e2e91371622a80913d74e1f8d30b127b854f9379f9f1ed69d7171212e3eab646707e6ef922da9497fac6ebef7bd78dd569fd", + "0214868d64bda218461391a38af44ef538c8e29f35a80e47f680728456dd7fc2521630a80c", + "552986192b347911e96acba75af6d6c0a2d7f96e9481a7", + "0167a51b3e06d6639c7ceddf6ab99f0cd9444b5fbbcc1ec3f6c3616fcda5a1171a4079be29" + }, + { /* i=2098 cDividendBits=3021 cDivisorBits=380 */ + "1b2e1aebb5e04ae83c2886cfaac760018bd95eb12e283e9eafdababb1ef50683bf97ce9b44e7e093108261133eaffee51ca803a78fa652cea8a5ef2f0ee0fb8cf7dd582da741838331791e2aaa73c22827cd82b9f635bc3b0c7dea8c41f5112feaf8cdd75f2898523e1f3f8ea38611eb276b3e4da5e65f3594ac44f701d92acca40fe4698b1dd043912471438b82685d1a97022980e9e97a0e6f8c4f0e6c5aeb3ea0764b2c02f6652bb39e142e90841a392ca6ee6f5fd19b3f2af761c88edc25499e862dca50dfae2293c7533489d1e5e433f6772f43a43905777c3ddea1ee5e88ff66f77f87611b07000f62405b067415b3d1e7042785b4bb723fc37958774ef794279bcbd6f4bfbd7b4c44f111f174d3c1c2a1987d42529119ea4b426ed30667a44312af192bafd3bb0436f07fab9cc83940701ad4cee4282f1f9bea5b7dc798b71de988fce71806349941fc123e543caded4b6572bf4efbe162c7fad6e38521fda23453c709b45fb4b329cdd34907c526cbf7f220db158723", + "04d69dd985852dcbd7185a2a31250001ac79b1c3fe80f1e66bb1e3303a9a5948c70f485fb5fed55df051b2ab34599c85", + "059e1dd054522a66d03fb4fa2143d342a87eb94991b766b2c9781304adf1dab2e8b3541a7746afd05cd3dcfcd8c169a31aa77aaa33e8897486f44582ed8cc7511d34e4caa5b72d615fc866d7d81811c1669e92faffcb97f1aaad8dd7fe7591cdce076747117db6d7d09b5b9485e2ea9cc2cc21daaf39087ca8c90a2481f2cd3ce052bcb6c7d387a005b693229fa258ac3714242ea1e63f794399613234c10e6c765718b84c06e34827465164e6e66280cfe8d43ba179177060015a0372083e568e22e9e97ea8cea82ba9909bcbd5e3e6dce6fd03026011d39a4011e5bef6579a35c16655cbdd06749719d519270be00a040487477cff24e3c2efb9f7cd3ed1c46078e9d55e03c8f059b6fb3ece204da4510db758025e478c488fc845c812ec576b8ec182d7e1a197b5629ca6237aef5f8bfbdbc4b28f9d601c9f8ed3b1ac90a3d47bc59ce718f81898875d", + "1b294baa38ef38d820a9ff28ec1d1f51253deb009f4da795de82b33767f84cc21f630fa20c0aafe1032c9a2e0587d2" + }, + { /* i=2099 cDividendBits=993 cDivisorBits=575 */ + "35b0d8c8005c94cbd0f2eb83f5ace84ce30565811a3a6fde1ccca7123e4b946ee0663d5845eed1f135d959ff5a10f16a3a025b78dbc7551945f0eafab45b1b8d8b5c68d6719c626e0802b2130616694fc8ceb11bc9aa2878e097f9190f239c7865762afcf3730d31d4df2c0396bb811d25aa689041346b4457309ef0", + "144d21e21fb196bbdcbe6ea32b2ffef5e1fded82f64ec979ea817a777fbdeb00ba5ba11b6e47a46735cfe0d79102f2ef64abd44318ed858445a384628fb93163986e6be643ba49a9", + "02a50af1a4db733dddd42732edd362f17f24558c176663f7e3896e00647d1d6f5e917fb99b39ed7caaabce18f7d1bff44d2aba0fa2", + "130e203ad4476bc8d2ddffa50819158abd4aa1eb6df3be96b6c0aca552b466ea85d71ff1d2a02016920b67c897776dbefbbecb3253fed25d97c01618906cfeae4b43a45152331afe" + }, + { /* i=2100 cDividendBits=997 cDivisorBits=513 */ + "1a4302ecd76406f42da55e0df2ff8a65576590eebf9ce2a2102bc6036bb52a82c848fa2e2db074e38efb0ce8d597e5de4f1067d8add0dd109d1d8e0a45a1eb6d348eca6a780c2c23185c33c00cec0f51179c03894de0da037c031d9f3669582b99fca9c458e7f69aa6d277533cf98932a58f9817ca7e805ca4f19b359a", + "01e15717bbea97c6331d4fdbb828a25ae55559f3e0230e6fb2dfb5cb663e79da4a9bf7cf5668695822174b7e04e81c1c361d2fc486d998d1be81695472dde96f82", + "0df79f639e5b1f18ad9b28d8a2b240bcbcdf678257f40b038ea2f7228ea369047e8432d1eb61f431a003076ea8a2d02bf2d72cd3f715b3a8bf416d8e91", + "011e88df62575110a06b1457f797cdf52b7659bc4b280b62d0dbe411cc2e0380f54a82c5522b279fbb7de5ea8c9fc5b0ca98f36836ddb756af41818ccb482ef0f8" + }, + { /* i=2101 cDividendBits=2084 cDivisorBits=1657 */ + "0e5a696e5234f754b74bbf9882fcd24073e7d65d162fc99365d598464451b2f2b5453e001f00ce37efa05cb9099ec4dc34ee14e85449133a7bb2c9b66d957a45617ee4a5ef1ddf7402dc73ff84003fd9db6aec13181f57cda854e73198bcda03e3433d8d08a29c477a2664ffe33cf077fb05bc586f377a4522485c6de769afc76f7cd51b051aead1c2d82236580e6ae842f735d10130aea85e46e6d1140a9c68aeeab4e63646d0042fd6b540b301ce5023e6f9ac2e783ab995269a325f3f1fd3e84e1d3a22c86a6d4a2be301b4b903aa356c5270b8b20ce5aa5955adef5636efea3764b83a486ccf071684f179afe32fa3fb46ff76bb313ea462d2d425e4c04cf6d709584d", + "013408ce777169d32bc622482bcc1b15aeab22726d78af0c139c41f095245788d70a70981b1deb7ac62301cd7d960937490403c1cdb7786b70d94d7fca4a7363b690d3eb3035d42a9b4490c6eaca8e76940b790d18c4ef1a14347614b4722d3d4f832f147533793d64d17d082eea926b8057dd49bb01d3fa9c4115134cb032fa686c876f9ee5d3188e583e14f0592f8838a1285fbbc498733d2ccb0e8a22973b8d59136fad270575c09f305133f6b1fa68afe6af3adcb9c6c9a85576ee4d9278761477537b298ca8eb9695be6d931281", + "0bedb72cabbe0affd4a6083b19a0ead95a2f2a44fcc1b196c390cdbe8e5604dfcc6affbbbe703524ee0d4ff6ac130f6db105e3276a18", + "7dea34ae6bd945c87df6bc6bc3636dd64d04fca74c3e907be7d16698b2ed4c58942839715c4290b753addfe716ef02e51336eda257f0a974241039b7b6d06cb07ca8c81d60013abc7c51707407c16d3e579df7e8c6edfa4954c6b5483066b7644e9e8e3051eb562d22dd9823caf34ad2a01c3270b872d36de80e82ea519019c1becee64e31b232b85f134f29297f08f5288f7bdc665b84c7642d439f8eb3039dc51bdeca776178ebac795d8a26b9b883a50bd9fdeedfedb6b0c3735664336823be9b5840c4604885ddc16876ef3235" + }, + { /* i=2102 cDividendBits=539 cDivisorBits=427 */ + "03373f45da27617959d48efa35bed9a3e451d6d5636160fc16f2dda9b90a6ee51a016890d3668f405cc7b7105565b3ce5b0d0f1bd84d20d140bc91b51e520360b66f95a7", + "036cbcba7eea7de448f2bea1fca386d68a28ce88d7270f578d085c1f7b550b1dda813435449293398f0badfe68135509ae0f55bed6a7", + "f0619fddb4a7a0107cedfa95ab0a", + "02658acdb9cb8f4c60ebfaa6f4999bbcbbb9e3072004424070f23fc74040e3247fa2bb895ebe9ec12b500a92fdc76fee1633de66a621" + }, + { /* i=2103 cDividendBits=712 cDivisorBits=332 */ + "8624d3d3b5f0910f679b07596403041044b21a0c50407449adb7d7acdbe0c445dbd34a131b1de75270aa10100650e782b3dc4321fd3ac761098e881e66ad749a46406406d3f7f006249ccef492a7f2630dadcce902a32b12e7", + "090327228a62f8cc547fb9bad42175294f60d10701b5a211c82c37e1623a3c27d801153a736c8cabff57", + "0ee26ee4398ce1111d82ed10c29296fd69c6f0932c6e4b8e4e9dd3566ceccdeb72f227b70a1cf580bcd92a3632b23c20", + "0575fb8c9bdada68102d901dc77a751b3dc08aae750d9029ea1eb6df466680f950f8a59280a83554c407" + }, + { /* i=2104 cDividendBits=381 cDivisorBits=240 */ + "142f4f1e8094450d7f83ede54c5a9796d16778e535595788fe796f89c218d2161c420e3b928cd081270fbfe4c1f726bb", + "638d98ecc523ab0cd38401f1cabc12d86eddc7252c53a8cc541e9d77ec73", + "33e7b122904eb8d5f46608fbfade0fcea032", + "44fc8592bb366300f13a4a45098386aeb28816444332e70f186a0b391845" + }, + { /* i=2105 cDividendBits=568 cDivisorBits=324 */ + "4c81abea8b9087314e2307dcc26fb2f5e17e3e7849affef1735e3877fc0d185027bf9ea102112c5510988ba1b940b913bc698029b8d25a5c4caeb345a049a6cf3b7776105e66e8", + "091ab95f43e17ec5f61d71f10af348b88bb876d6f5fbb55bcf94436db96285e743e1ef83fd06f65b47", + "08673bca5c5ef1a8ec11071f5bef972b4eca829c1e1dbd6ef47325a05093cd", + "0783bd3b52c13c4d6e661a01bb89ec0ad47350650e1cade2d3855448d701922611c7f03e8c207d8a0d" + }, + { /* i=2106 cDividendBits=1732 cDivisorBits=205 */ + "09aac77dd214f23f64a377565685351cc0938d3615d4401e71884422040506b80cdb9f3ba44b9bc0b8903c7c1ddaa5761c18b97e2c87f26b2d93ed52b5970bb958ffe25fbd9a09ce7f8f3dca37c5ea6c9fbf212cb854a1110b0247989d28735740d2f4aaf7f889cc920333ef3cfd26bd6187912620af2a0eaa7cbd77cc0cb89ad4d7691deb5047498750c7d409368d3c5eb0b3b61b5dc0c49487a988835fa285f4dd57f63c57e71fb2fb1004ba1d571a9d9885b1e611bfda01bd746a97b8fdc72ea631228c3e35c4bd743a895d6f0bc664c88689271517cc6c", + "0dd2da60d04fde0f724101f1e23b318852c5bfdec30123f19147", + "b3066c7020f99d202a21601fa3e176dd32ff46fa0ef32b1ed5d08b2d1769252e496f1fcf93c184349f4771a4eef5dbe01e9d8f0a50c941f8154b8c166e379e06afedc4536ddc6e89188d720deab38d09ce46f9d3fad6d97d4d766f94c40fa4f96f1b2c504012b78f40098bb4d5fc854cc9f150c2fcb5c92a5cee116cb3299ef39f860dc6646bb2b8730899e39268b06978c3fb9ab8b5c317545665c9ceef533ececb295a3099d7c3e33ebdabe6048a04eba7fd7434a1248ef794a041dfce48", + "0511a2375ad5faaa9db71090faa5595d60afbc5d48380266ce74" + }, + { /* i=2107 cDividendBits=367 cDivisorBits=105 */ + "0c34baca2c9cc24e63c36a2eb2e875d21b12e62a76616b3c4d83c627c2747502965122a1a8048111172d46d0fb62", + "666c20435aa03c39d7173989ea", + "1e821e3f0d7e908909d2628c899b8cd464dffaba5ff7d97c3ec1cba0db1f735975", + "365b86a40ab3063f125e749970" + }, + { /* i=2108 cDividendBits=3284 cDivisorBits=691 */ + "0d324cf43b0397cd04a5d737c8997a4aae2e7cfe24a5d60864f5b672e59c99ae4c3089b9eaa4d9d8e44681b195551e28817e5714e6ca7430cf6b6ec8150cb0662dbcc335805a05339f7c119f7cc436b8dd0563778224be00187ceb1496756659253a039012480c7de15bb75a1b0e9ef272a84ee794c34bd07ac019560b38700dd6045ebc9ee281b789eaff8697adeb68c8e6498006845c87405adfca7fba5e89f19c5898299edd1a0f5c9c3477436d57cbfa498d69db4b106fe03aeef0f0efebaeadc971c74a7291d94d32ef2cddd7e3d29760efb702b8c38d0b807524b11c10974bae47eb8acc94a75a4d6be8c485335ca876369fac402ec40b7fe0720741c7865bf8d7315d403279b74d3070b494f9eece86ac1c5201a0cc0bcbdb00274dcc957d587e25da118035802656eb52e8410130de27144c1dd86f3c5a5a78cf3871ef83bce0cc0435d00bea25afe44e5f1e91228854d4a763ba540e6d27a5e3a9086c24ac37d85c4e1a6e2b0a365692ce42d9dcdf658c72ae19434c64e62ad780597b7221f3bda8ae4925791905dcac15073165f384c381f04154fff7", + "070af3499c842db04dc2425ff9b6ec88db6016086a4e41a2bc7b131c94c6e36fc286f3f175c9b4d40bfdbc8fc986fc7b9cf599898e93719d16f6a3204807a2bab128ff9a5f1fd2f13257be01df058727be26310017c747", + "01dfaee4e8130176b7d9139a7f015be857f8f71fdf18607ad7832ace97e859456bca24e192f5bca1addb0d94df39a555edd3755be9ec108bc6e971f0cd86dcd884eb17e720a21764bf77d3857c4d48c2a9210ce9ce983a00cd2fd99a00b2c14b91c099a4a3b5f2c0aa2516f4dd54d62f814278c31b3f17c1f083a996113595445717c85c52959f2352c80e99ad3dfd4f6e6de577414830c2eac3d4ba62bcc5f9e8f04780463c6d04bde30e92d880c43940447e96b3b68f0a075cafdbd747d77ec2ac6485b489339fb0b43b48b1685e271138efa836f0b6d7ab8e8e091a34229dae647074a0fc5ebf9149ec8d9ba469bb0d7705f20f92b65475d9418ca9f67dbd71c312d55ecf8be274d8b053d27d2deee826ed51a317318839f1a7b85e7726c4ea1704ca69137f282d1abe42c994000e53a7d972e9e6a770206620f05f3fa14835a371fae7", + "0288a50ee20b476a546f846abde7c62b394b5aacac25e5acad5ae446a1fda818845b5554eff48cf731ebb2cf3e7a5250545b90eedf0a520e1bc15a51fe925b382e507a60b974e7252d9a2dbd1eb26b6693c98dc7edd8e6" + }, + { /* i=2109 cDividendBits=1166 cDivisorBits=922 */ + "37e9c45505913b397b6860729d9bfe108801fc0ec00640729df0924ce9942b29520b41c9d1353431f07c3c9123a7e7cbd04e23547b05e600fdcf899a3a9477346e291f22e7fd8b427d3d9c25b39679ce4e65c4222408c79f45bfd722542f259aea0137c94ed433cb27c9e52a972f1e30f6b46c24c01992212db2603fa1b6f40fb8416037c3750701ede395566d5a9efd3ff9", + "03675fd459371e02505fcbb5d20c26991caef4cc7416e67a942437892a4afb1ee79d8c44bc3425727e6dc62664d218387f2c07a49d66e8ccdd0696a04812670fb65afab7e233f961cdfafd347c22b5c69b70e8fd37cba959fc9ebd48e3a309fbc4235617a55f44d5de8be0981d4c6a6deb3a09a4", + "106d395d55cc7ed7dda1a8c8082c642337f2fb206fdca69c0f425c351773fa", + "0136738a53ff8174fa1020eaf914d9d6efbac3dc429dfb31757fd1efab7a475c7b3c9292bc9840d920bf77ba9c678f92407880602b73c0beebb20ba9fe05a6d4c456051383eb9c61aa293a495e8a3ec4c1fdafd1490cb86b712ccacbe5904947804bfd892eb4186ba812e38353603832043f29d1" + }, + { /* i=2110 cDividendBits=606 cDivisorBits=28 */ + "08cba8f0c5f9588ffe05eece6b3d37a364dc9540cde0941948743596911c476ab169af7f38a7361586e3e1bfd77663e96ff89fdaed19bdc829faae8f0f607dc0d2cc70cc019fc2b765dea017", + "040a0cea", + "022d71987d06f5184c775e683401dd57796cac1c925ff68b24c8dcfab41575cce350279a840369c7e8eeba17fe13f153a83902d39aa3ab83d7a663ef3c1df4f5189c49869c7f996c55", + "033b9e65" + }, + { /* i=2111 cDividendBits=1380 cDivisorBits=1305 */ + "0ffa1cbc76f339077a0a26103b76b8d07a3694e5a58c5217e6ffb0180aefd0168e4d84f2ab0e69a08a415a8ab736b69335c8311931255d9dc04a4d638b13a79a74b50b02dcf0a5931591d59bfb855d5a367aa8083135dfa458f5e0f3ba82ce2a7f7f1483ce985cd849cf6562fad5072c9ceae303f695a35980684c7ac0d5a1ec7e348e3934c256c712cd3e28816c5787a15a6e841b56b0d2d4f780095235d4402b82d84b08e2463cf46ee43905", + "01d38cf5725356a4c5d0f3fed5baf9f9574e95fb9ca394a7da36cd2c88862ca03a67d7ea38fad521f5e2374532908e4f436ddb3e96cf82857da7b15d18c2526bbbb92b2b37b39d68f167c6807878cb203082f1cf55748502073175f0e11eb3e199147c9f1dc94de35e2e31c89cb3eac86edcca8c92dc8bb2920cff8b43d3e6b2963418f700b9dd2d5b955173fa522608ba3c98453e82cbef3a69e43a5a2709a250cbc2bd", + "08bf7a0b46188277299d", + "4d940d2343157446d7908db3d8a8f7107b2316cd214018204bfb939c0a5d18b456b66e46686f3106f168b5f81fec318cb8226dba0cff12e19915acc25ee7184eebb69bb6380ea39eb4274d438b013d14ad20f09a6652ef6cad867bc9773632aaf07525eac4530da32ed562d233f526f7b21385011e8531079ffa05d5e47e264ca8f04fd9505210f2964edc418be674d0bd796a1ddad9f676902fe3b5d65e24bfe2861c" + }, + { /* i=2112 cDividendBits=2120 cDivisorBits=632 */ + "fedb69a31cc6780e4486456064fa7d031d40450405e126ecbaae1ad637edb835ebe8a0c9afbbb0e63c57a640e1bef6cf182109ffcb41fdfe622ffbb80e36653850fc036cc23683abd9adec99b206fd7649dce0f95be2ca9be9b1bbc66aa2bb3585dc4b91c38dcda2dffb2c23d755728eef7f77df0c66e87bb5317d4b700f22b69388016fefcc4372e1afe1da73e1eccea2fdac79f337e792762e07f5208eb080dc642d3af7669c07f1a1683f31c2f863f7793896564e5441141a01eca8225320356a20d4e7f89237cddf7a0f82898593057d8be03a835a510b510f870668890277751b474344725ee9008b921c9030ee90bfa8c4cb1bb5c588c986fecb6d654a87bdc668ba1c34e945", + "7c2bc0b401b31cc6ef5622e5869d27ac396292af1ca7b3840a5af70da1d29756169be1694adbd91a02288b19b8b6a0dc2b38bab9854864443c75e61845dbecaa7edf03ab0f381a429c6d2139269871", + "020d6eae82bf36c6f881f55d24ed9708354631e3e8ccf807c645db8dd8fca4f5a9efd3c8b5b727dfd45288a18d83ee83ffe54eae8d7ed5be694be3f09715b33a0a640c3f9a13850475281f102ef185a50f79bbbb48116145970116772837dbe08384811faa5785770a98072761f78dffacb339f2b5180165f4890fd30ed5966366dd5c8eb2f423d8fb1853c815477929a8d5056535542aafccbf6ca1ec65a197579df7c94a3cbda08b472f3a96406887257d6539a735814980eae2", + "5e06c34ee2e32002871fa9b9d23003a57ed161279832d28b54480316b9a133e4e664bc4d1ee56b6b3f941a9e44c6ab0a9d272d1e356ea2aa763bcaca317a5236dfd55668bec8da854be872ef4b0b83" + }, + { /* i=2113 cDividendBits=2893 cDivisorBits=310 */ + "1c54912f7ca00cb520abe329f99d298891dbbc965e5dc0c3adc63048e6e26fd3ce9cbc2ffe332acf8710083a9f763ca6ab1dac01f53c132c9c54639e51ff0c896c8a8d3fc441adc8ab0233588bf02599add9eda1bc69ebffbb37bdceef9fbfff2d10ee571ce6a650e6a71b6901c5bc407f44ee04e1ee67e52a8561605ed39bbbccaffb573aa5bf1b8ff7bf6d926d0ba271cc3c05f3c78ce314494823f2d750a67ddba8f5c8e2e43c0ec18f0ec7db103bed6c39962f749becc21a4825547f4ba5b31b7bd10352cfaa61878892eae4e23adea1d9e725ffdc70bc4eefe1389da07c783e1ab6dc604b9a80a7add452160115b1f9173246a3039dab98c72f5d1c1e9748c89f356208c0f43bf246d89eddad99981f8f847f1aa8bfb394df78378b7466f399550732fc7aad36e84aafffd26e14bfd318083241465d050f4ad424511cd0fa873a7122d2824cff68b2750fa83c855d6eadd1302eb8103e3cf62fb293663ac49007e9f1eb7c255ad6", + "24f8d6504a63ce568a183c03a60ed3c55d354648e62ca303c345746347c26bf24c22c3debebdd7", + "c429e63844120d520cfaa5e9c1869cf4793cdce9649ca6dd99a88cf25fec138f8512dd674af4870e48679fcd19ea31eb75346d0c08cf2899ae8c202bb822408ef1f822dbbb381e70948d1151f5a4e1d8089e458845dca6a50036d9e46048f260dd83a7782e5678e2047ebed65e44436bea315dad8c1c92927200a43d26de46eb6482e378f0f325d36f47c39b1fc86c6eaa95a9a5db181145c22b48cbb8e454bd6f04d764904185f6ddeffa048fc057dcefe6b5201d56d18529fc392178ebe09c549b735f98763e772d4c6cefdade88e2716fc34f6e2da2787f8b92b2aa10fd191a19a7f4515399f2c6ab1d535f39a1c180bb41fc9401654ea27c2e14913217bda42773450af273179b2c4b309624fee44f3efa9263ae579ed0bc0a8b57514280f2810d7097b575fa6c5e748e66cf984b5e5462b37ebf23d90941a5081b040666a2ca75", + "22074bd29083da466f5c926c1a612372f263346265fb77391e80eac986cb503bdfbd42611ef193" + }, + { /* i=2114 cDividendBits=3679 cDivisorBits=1731 */ + "79c787dcdbaeacf7be0347343ecb42399bb5a45640ff8f8bb8a7fd7f2f6d7927a9d9bcfe3fa91794699c7af9699eeb776cc3b09a5e8b7ef61af21d083f13c46a8e038f937cfe02e2a00cdced810a62233082fae24e8dfbb3dcc8009953c83ed49e6c5a96eb8b046566bfab152abdfdfc6d7fda2811a91aa990c785ea2d9f162c7b53fc0b2ce43b2bb31412009b533f603ba48761663931afe81c528f899e0e090a813438fb9717f6939b00d02dd79d1ff6e0541cd422dc4a86c84b4aae27580fc511028b37c29e9a986fb2d3b006861cb5d4696149d7cf80f27ce3ae52a73501d915ed135b284b0ddf10047c8210f88c8704284bd8e37b702c2343362aee300f9cc23d63e99f88af1d30a6b658b5c923c760f4ce2a172dfaf0650fc908de47dd639bc9725b788c5a2961226a674443b4548b0d2849bcc63fe65b80e59fae1d2b3c581362695efe826d423f98d01d3bb8223028429295803daaf2dd6b7255a3920c3fc08df02af6b7260e9262ec0537aa85a7d2c7396df0ac905fdc60a59224d1ef2c1fa583d9925dcb02adbe69e3a62a61847a7560b99d5fe2fc517e9358e3d2780a3e2481244c1a8345a5ef9a44c0a3f2df2255c6f5c3934e2e1a25e253570b41919fa623bcb03b792de1af", + "02210618f3604971e38a27dde5171980b62dedf65ebd0a524f69aebd340bfcd741b1cb87da41e8c08232f0250a224e582e5cb774da0e9321caa47fac14465555b1999326c6a35a5e4f00c4e251232fd9f2b272d1e5c79ba27a213da75de3bc74e1868a8b4ec8393894d5f66d729137f2ed439f125e695c2bcccd8aa19288ffabf89d3226076fca70914bd2adb92948121646c5290d9a4a044dbcf58bde9ff5169546f64c1dfc68d053a256dc3b43faf9f3caffc817df52c0017c5dc47cf233cbce4a7440985bca0399bc689f4976fb860745a34fc39e7bd034", + "39334770433f789aa084fc26cf385d67be8561d3ef404bc5ed920755d8975b436157d9e3bf548be317a1940831923c0e1960d0328bc2cdd47ac1c661b17809b00c18edaa89b1d6955d0780ac8c5c0a4fef3329dbe7e8d9d4b6d539d4ffd8404b559a5a0fb0592d59a8e883919ae994debd4527c900575cf94ab440be4e97ed39e96ca3887a8377795002ace4e4952b642369594b9a3a2aa35e264d3982ce2bca4e65540416f79f946102eed25fa8a4e691675765d69dc8ec719c011d8c48901bd4733c503ba589e67e6f13b5a606748cc7a98c3b8ff4514581a6933a1a6a75b7f1d4964a720cad7446105e909def2d9b1e00e1f1", + "0217ede358fd6767f9c754213122da7515d722318536195483579ac83afa8a6b9814589bf7ef5426d144168706b2d1bdf8950d413d2291db4eed8512af1da575247662a65d517727f1684951c90f2feb40d2e3efcf36fed0d60684712b7e070466a73ad8c5c2b696e6168746e626048d95d504e49209a90db073f964a7c6ff450428dc328479a60adc9044f401c353d582fe395694989f731754a69852c08e450dfdd0d759677343f2ec887073be6fdb0e464ef1449dfc8c369ec9239384fd874fad469b74f32c03c71997ce1d2dc1236c2234f4e65ca12cbb" + }, + { /* i=2115 cDividendBits=2121 cDivisorBits=1280 */ + "0141796e1c8cda1a759a1fa5a225a1776f214e2c8b7c6656b2aca2a76589408f61727beee32bbdd4ee27dec6f4dbb5aa6fb89cdfafa668342f78b7c78b6606b35537f34adab74afc161a53af6d73a2ccd63edc6579b9fa89db16dbffe518291c35b85c989250d5ce3d26df9f2b2563380717965b338e9e68e5b64793801afc60d858c8bcd503ea20efb9cb0fa6fadd13b8d24cc0ce68a568cfc9b24cccd656649e2230648c32a3d33ce2bffe95984a796f8a9324df517b500e40ced7582ed5bab823d405c143390eaf69d58082d0fcac9a8a175550b95ef7b3b7b268781d537df8492cb6428eadb9109cddf0c0340c778c6994675ae8fb9cb63bf6b5d1ac08eed062af10cb32918dec86", + "7a48edb191b026599565d7398928e0e69443b55b38098f607ad15211b5dd02570e538d75038d1ca959570c1a4bf1c598bfdd2a2943b64e50e88087bd21c0dbb8e77a96cd550a8558f31ed15ae1ddda281b9b43ae06247f6cbcf0c3c48b5800a20aed05355a77bffd71a1e6e22c358f049c043d167c167998a87fe9f579484a6e89b88a68bfd96c8efbf6b535d5533d26ec8d87dbbfcf63bddb7aa91d155a4b14", + "02a0ff637c7c248f9788933fba87365081ef468bfe2e94a825e378391c56940dde18682c023ae1a9c6407ef0d8725306d01f250930ab52cf4a5c37b3aa7e86178f089b5adf933233a61ecedc037be09b5004394ce90edfc025d65ff56df0875dcfc97b65c05dc50ceae3", + "67ca67251db64bafa55df555b038495f091cf9ef258bd75829c858af7ec1fc2273b3b6e49adf7bae85f8d17278f3e248a9c2b3daa59e6420468bd6efd8901bfd376e03d3449b7947327be0f96db6cb00324d46bcbb6d79d1dc25b1c4683bde5fb1433e15edbe9ebcee791dd81f904a224d45c79fc77c572e09d2dd3330e0bedd8f45cb6dac842fdc129acec7be98a7408dfc2d8a9712f98ceeec7e9e30ed11ca" + }, + { /* i=2116 cDividendBits=1289 cDivisorBits=633 */ + "01c9b52555f3d0ff6f3bcac68768a077d0cd32a247393c6405eb1ea8d9be2146d2d7135a527c1a00e094cd13ab465ad6df88ae93d39d2a1c354c2c0aaea78531146b2ae03d8ad1a706a9b132e97ce1a8e330f89ab10def79f48b74b44e63c11c55baceebaf0c71e1b7dd87dd8b85a21674c02a45132ec90fce929c5bf4c53541cc431d7f3380caa6c931af60187ee4fc86cdc8f50fcbe6e5912031a4dc30081c90ff", + "f1c63ed432596708e661cbcc6840bc6b2d3dff3ec27700b75e4f0856943dedfec0d4574a26504609cdc7dcf06c19d1f1ee416692063302f9413ead4db952409e4f562d4c17cd418d88057463df31a9", + "01e4a36b48f51e8504107926168f65bfebef570d878bb772dea54f963b5c9372fd95ceb975186264d8b5b69feb40ac5bdb9e0ad20a97a0b408c3415a1657b476865ddfd53ad7fde9d6b66ad386b3df7d0f3ef2", + "c8a5baa1b0c0d8ab899ce91f0308e43225b7c3fa97ba3f4085e327a45eff84103e2d21d656ca52be91046ddb69aa5d5a423ad227373604f3a5e680843516ea8b18132ea133de4af68c416f2331b13d" + }, + { /* i=2117 cDividendBits=2763 cDivisorBits=863 */ + "03f4d0dc7abd2a9cdb6b43a668d8b39ae80aa6baea6150b4d1d832d490a6b780691e65f9f1a641f6ad45c2959320de26f064a2bcb84b473516fd73fd90ffab35294b1ad890f437a4e44afb4cd0adb83dab0c230aeabe263200f49945ae207526e141a9d994f553029024c0be062ae89ca93be3c545bacdc7057da9a7f80f8addb59ad9bb5cbde3fffb77e6c6eadb4626c81d83f49b981ba06e5d263dad4802256e1dca413e3633fd10bc172436a53831495b3569f7f1bbf99eba17b9af37470a3b3fb3b83525c6560a59c06ab6bd5614574dc0830f4ce2da634ee2ee138bf708cae1ea4071855d0d58535eb4ccfd10f28ae79d87f3d615d191127ca39973270ee34b4601fe32b72ef4364711226000781c0a9b66b349ed63a7c6de9621f87987c3ed09518213b98f64e80c32e706751e24345e512c82bb4bf52d86f01ac7ef7c20e8a8d2b3c0245bca43ff12d98349fdf1232922a3de2dc610d5", + "597e98dec8e385eb653e7a33fa991deb707f074e7797c7faffadd73d36ddf527022464443a794378f5bf3ae3fef13bdb8f2910f1702dd43d1c51ecb5955f2ebc2b5f7ee8ba6c57058f4fb87ef1f474260082d67eb4d23e46b804249ffa058dbc0eee438ef6831c1763d80a13", + "0b512b95872cd3eaeca1951e4303fd9d022f2bf1da03e445636d619a62fc69f210fe5cdbef0b2a5e2f66085b28681175325db9dd6733d14b3bdad20eb3ecb2afa0ea5b38a12e3f2f94705018c776f0ca2c0f752ba89537bc9ce2c9a3aafb0732079e1e0cb55ae10720d4571ef0dfc4387c79c3539464d27841407c7ed925e23e40b84ce71d4bf6c210c18eea5d0d6871e3a341b6eb0f6e5913f7f7c6acb59e2d8116f3f06f7214d06a504c77419be4e65426bc95b34e5eb017aeed79d541de15c47acb2d0c0451f2c904967261ad0242ae65ba193f714558f4c0e88a29389c3350103719fee727883dda3887178a", + "38c34602064d0707ffae37c8341948d624e3fd9caf574873875275bd27119ce37dbe3688e8a74bc91859f88df1f58c829b6715c547a0fb19df020d5f707d388b89126747137aba30398d80bed639b0139a0de8967faaa81b948ef9a30d0fbd56c6659c7ad14b60fa7a63ed97" + }, + { /* i=2118 cDividendBits=1212 cDivisorBits=373 */ + "048af401bc6f908502cd4776987d2fd3fa7bb856bfdf985fe58d5a773ac8b1801de0ebb1fea917e28199e3702f1162d0dd20cbe85452e3753288f79ce53caaa91ae31d312f796476178907a4563038cc9f33e87642ecf3cb38e682ff326e7b18711650318ddbb6df85ea320feae9147a3c0707be34fffe848d1e644a1b8b2916b0fee838837a1ea70a593f9af458c69f067f8bd56903c5b6", + "1aa852e233dac0b4afee3cce97ca40bb3554ae4c332fe279ed06438e80b920b98474129d00ac01fc7e48cae2c66dd2", + "2ba02ee3885e96bd32b7728185a5c1cb1f64219f2656ed35691f8e3d154f1f7ce8e89101bcab6e8bee15348283e589996b1e208fc9d8459c99eee948919c94eac74bd95b7aefa69d0dc9a4610fc6e229c704599c8dffd2fbe642837419929e7965b126a437f476b32e", + "0e1ae01a5fc23a8c057947d5356f1c41e7d52ef858697c9d0c855a04411e167193b9220fe7ad061716d28f23c633fa" + }, + { /* i=2119 cDividendBits=2350 cDivisorBits=96 */ + "0f95848c95a349679c06a3213f1ccdab3c415437ded9f92c87dc750f61592e7c4d8637b1d2288711c7b4fbed8e62debb5b8ce869bc6d6d2d8cf92f9091017ea59abbcf4fe68a140528cec07ace01217e02b0cedb19237ee13aba7a8d6dd607b9903cc26e7f5f489d73c06aef40d293a9ef314a072a3a9bdbf0b5e4f96e2e584c7ca021889f765f009dbebc6833adc0c3b37424b511866e8683e78c0d1a508e6431640248910499ac71b072f859c64ce505f031864ed0b0255e8bf7cc4785f8a1be4e15bb339417381f92eea9ef81fc1665c9d9fd7f78351baf39c7062b9c8c97e83fd52f9b7e2bd3ba51b52bc04b058a04166763168c85d0e68bd3be8d26194522d0310dc2a0ec5c24313da1119726b24a0b56bfecd5c65fb16d5e6ca138788e773d474bd33e", + "9fb8fc11af7b84bf97becf9b", + "18fa5091c8efa4d8f55b8d16b88f31c2aecaa6fda0f05b2e85a2363ec49f501c5e3a8568a0d5fa491ea350bade70937a2c4509fda07537b83c666709f2e85c81013da6a2920668a65a24f7929fe56bacb9786311a8ac585b2dea325e4a0f334f5c92a59bd9abfd2cf01bcfa0a8ad5c5df345b04711eb4222d7676ca8580f10cf31ff4732fc6bd2792ba32350413bf737773280053fdc84e0834b88e2c99e8739b05742c6c3f1ea1ff669ac5cded34498143c8d35cd4cb16152f54e381ccb215a80a90075ba4799c2fb4710ac2116bea7b85b68d754f3674702470c61d90b0d0eeea6e6b4018de0ceeddf9d33dbc91d254fdb89d83fcb70ecc9886f12cff8f1d12dec20212a0a7dc6b8e7deb9952880fe3d4917a8a506f7fadead", + "83bff20591748ce4f8f31d7f" + }, + { /* i=2120 cDividendBits=522 cDivisorBits=508 */ + "039c5f6b3807afbc5a248d6c19b42c4a3097f5f2fd625c69513b2fd4cd11b51ffc82c9641584dec628c5e01b3e4e5f25df25e656fd9f495471df785654872dc71b46", + "03a19e5e6c4daf95ced09480ed8cea4a565b1adb999b2f180c5f823cae4b4ba3f9182d0ae14eea5ccee0155e2b12f2aa6591caa3692f1055c8ce0da1f9c0548b", + "fe8e", + "a3b032886e51d8e261ce7e97aa79adaac4352b2f9b559d8fa25a7a524f5668a14a4def98781408ca9bf555adde33dae86a749e3f04450da4840ee1d1364c2c" + }, + { /* i=2121 cDividendBits=1446 cDivisorBits=1058 */ + "3d723e8abb2daccc1cd48f5a6b6b09dce31a9509d05f5fc56d8c25e1e1990103b95d03ef1d9a777ab6ae07c564ed824af254f2e4eb8f9d8177cfda79febae70726c034382fd40d2f99f24166a1006152a800ccb29bc917cc11cf8f8c8401ead3c0eb49b6c63f9a94b060bd84c6d99172c5a70bf8e0bf28e3714307effe244a8cdfdc459b03885ee1de23c575585a9efc9405667cc7be4d9d1ffd7cd3326ce7a4166bdcba82bb61140d7edd7b09a60c3701cbe4ce98", + "0c9e46eb2307d8f0812dac3baba4647a1cdd31eab46ab412a541c6821dbc00b1c76255ce2800173e50505db6de9dcbfc414a47a7ed0c2843edc51bfa92c06eccf69e5f3c82bbad63f0d863f85be6cd49e4052b4eaec4728d344c9f6469152f4d0f4af28859d089509d5fde84da3d2501ab8ee253778566a5779cc0ed83d73bb5ee78c103", + "04de9fe07462a76e60b0ca9b13d9c633877857b27ff882893f34d10bd83f689616f132b100ae5f62ca5f7f32ab553082d53f", + "0b1dbbaa2bac8eec0f7dcb905a2283fb937aa0745f3db5d637a6902b549ed8b90fbd7669b350befbeafd45cbd21584073f421163bf14fa6cbb68c9bc771d6b3d6371c91cd15a5987af06302aa940b729503a5dab24739f25bccc6ae098e63be5e16ba3c4bc65cee9f4318df8812935721f25c7fafdb3c5dfe3fd403fa9b15150100fcfdb" + }, + { /* i=2122 cDividendBits=379 cDivisorBits=190 */ + "03c4114bf67be3e7bbe065e605b236af5292fbca3aa47aabbb20be46b9ae07e4f76c69ac2759fc978fcce3f5a3dfc25a", + "1ef51a05fb8f0e30ce5641aceee3f14660440a27714ab860", + "1f2447c32b88c7d0343cb506b63cbf995ec27cd28553718f", + "1083898268e78d8685e734c848c10b85df508327b8a064ba" + }, + { /* i=2123 cDividendBits=2864 cDivisorBits=455 */ + "b92c1b361666fbc3bd82073f84d6e52eb9b88681f8f2faebdbdc7ca08209fc07e35a2e38560599dad48263f07ea014d44df541d2af23c913e42420be65dc01e79da82a118940200384621adb821b9f4eb553b668f4869e0cbf04c432445779d3204ce3cc1e1671196ef3c8db7742aa7bba686b8bd0d7b7bbd5480b3ad48cc44453bf44ca81b5ddaaac519053d471f1b66b77484d0abaa49d2c660b9ac978df994ca2af3ad43283aac0c0457b991ea070121692c2ca0ffdf8c2cb28a6f969fa53c0b35dd6638b62c897cc8aa5647a77501eb96bb7d57c8e5097c94bf60c2a5e520eb8ca4c0f5c8c9a7e4699a7416174114e2eabee7dc4c68acc2bd58257105a75db3c287c97ea4136c813b9f0a98f4d4cc20d4700f6606400ba40deca09e85c1387dfe36d4c8da79141cd7b9a84014bff44ddb5402705ce2b859cc9d4af25bdab69573014ea343a7c8ba809ffe82b9c0c44a12c649be080bf92abf1f2000b485e71b09c191aa9", + "195e698e9b5c73acfd14cc49c63a35defafc628ff7c00f6c4ff149608489f56d015256c7759e67207ee24813823f47373f687825cac0396a42", + "074c994c2c4634bd5b3f090bff2ef4fbd38df215c6cb991b1a182f485f41564edde40affef7619e80280302d6626f1e4e68d6dad85b8a398768847bc89d6cf6e6a538ea1aab630180ca1d5f07587815db3431d0826c6911fb35e0bae88a414bebfe7eca9f68498bd0d9e05a5f9f1ebf52e4c15a13d228a6119bf2cd313a127364b7dbd23962f8f8ae1859b095dc23261338b70f37fb68c4b0bdab43c835ab3be6f82b17c7892ca749f5ba184a706aa7daea9ff3ec6257e32aee0d4c097131dab0ebbb58b0475b0fd2b9f76483e33a6728110c0eedba72ef3942b110308d2db1faf291ce89496e9f65297a61ab85859d91620c009ffd166ee2ac8b2b444c93b38ad6cda671c48be41381260859f26eeabc57b75a66a13dbe00260a9f85cd34499364323c31160e6dc2442ddf32578", + "119c347aa46ef268429b4e798623beb23ee057b10ab4f279bcd8033240e0cd8819df7e5da076684b2c2a3b899a7c1ccab0ccb9b89f5e2dc1b9" + }, + { /* i=2124 cDividendBits=3102 cDivisorBits=1550 */ + "2b6d283381738c2db75b6e9ab28a55a5abd6a168e6defc21c2c4ead4de3a945544a4ce111aa55f00ea5f5a03482153368e5280d679414005fdd44802478f2145f968909f5cb684a0c01b64d05f4792d97f4e6c57c82d6d26a2ba2697a21713fb1653f081986456173f43ea250cc49c575d47c12ffc102e92534dd8492c664ef11e726fffaee46d5ee1ad13d06a819890d71ef22aa5d6e50f0256b21c319e68ace1eaf3e91a29310e12ba007dd8c3df713181bc33fd49bdf8215613d6abe9e29936517c9d005ab80297c7c7189243e2e85531890044986eac2127e797bf13188c29a65c164f9c3f9821e26b7ad62516c696fb94443a9bfc37a8f3c8c1d46f5f599a5039dc9a053aee8b5353747252ae9aa2e66c25ade0184148c2f004469bf619499d9efca89fc3873710d52fa540ed51674de00590cefb95e8a596ff7b21a95ac972a826247008d2852831655d4cded9f99bbf3fec7d4ccc0ede5e52cc45fecd519831c81036fd7d4cfdc3d5f0a7e5a5d084f2988c985e223c594b221d4620be8c6affbb", + "07ad162248e4141d6359c14358e0c3ef4a895c58af62c3dd3e55fdba2b885970d0972f9da9e55966bbb1374b62c4b9edc415e0328bd0f3851a9d73403c2c2c631675afe3e8a1ff02670f77834c6dcca60effc755a865cc5a81218e358750e24943a24ca4edb89d9f702cf61c59b92694d9b215785bc1edd8487cc205a02366ccc2cc0d8f6ff5c22cdd531a946373e2e64191d921a312187f4db88ed359d60c96bbdfdfcd91ddd8065a0c4e84be663d53cf6028d4003ed881f85e015b77afa63afc8c", + "05a84742c21a025c85debf11435a120e32f12400ba292f24866d5e6e6345d78bdda4b95f808efe7c68cda90987b5e020d8d476940382e4592024b53ad6477727f5f5cffe97c57dd0a29341bdcbaa1218a1a1f6c6d62635a2e504fd0392028863c7b676234decc6bd36c6df12ec57941eebcce8fa62ea50d550a788f5307b2e2c4c4dab7326c15607a2937656572987109921d5c2b5c60df2c10ea03bd7e930049b0a6dbb5acd4bc756da37561ffd0c244eb2381bf71618a7b07e968896ab4014d7c343", + "034a40f44473ce39537b8ac7e81c71e7b021172e12882094d8526465fa1774d2e34009945536afbf74f4a49d4dc1a1d76e7d8b65fa04834c2b90a56bbc501f9c809f0ab30020a49aba4264b96da3441f2f11d1e1868398b4fd3f34942c9bac999e7ec85d119d2efdb4541cfbcfde61ed3c28efb81238176b5bb04fdd75b0412b23653e3a56eaa3bbd5381feb094a10edfe4ce8df85a5ee6d8896d1aeb3b7919a22c7fbd6f4ae91b9556b4323074dfdbab83215051f765eef879e893123e213084317" + }, + { /* i=2125 cDividendBits=1677 cDivisorBits=1088 */ + "090cdcd6709bdd1eec8da2263f83337ecb356d7b6c0d6716f0b1b0e88020077106b54aa81021382b1929139b88c22e715b67acbf1ab3d6784e08162285860cb491d827a53e9aa0da03effa444ecd4d36381786f2742761667f26d9b1ce44e05d1303b6ed968329439cb482e9338c12787364e48540ab26ae3d6cefbc78350c716d63cd31affe4fdb4833c75e379d18c79acd173954b9f5858fa63076edf44747d00712277934580cb177e62f95dd0cab9be8b2dd31555c44f0689670bc63c39f423bee350bb2eb037b1c1ef1258f1ed7bb63", + "68907b87b4e4bcf68ae0c0ec57564a60dc0dcad0935be8c60213dc060a2f4c67f83d59ce384b25230be736a0c08791162d1003481ee18e4f9f2b5d209d0715439e17014fce0b67a8822abb6147af15951739ceae74ba9bfe51828f6af58295c56a1fc859009cf175b4b3cb36ef002ab1b1d623563fb192911ceb97db4b83cb95c1e70961116b85b4", + "162843af727bfb318fd45be3edd189249e4efc045802c2b7b3377b2d55d82e777992a5f71e55d0a8bdce5f5052ed7a9a4aec4f0154985e785cd645e9599bc0979d0d128046142eb8ff95", + "4cbd7c8c1e8086979eb2828ac6d1438956510eea1ef6c3f48d529ad2e52d3bc3a33217e9d0e32bac2d3210d3da3bedefaa7f9b2c71cbf7969d2ec778a8d2c4743769781fd14a7b365ffe4bf1d9b6deedde6c93c17238398226b25ace58d6c06b3bf065037e593c4405468f2bf19bccefd197ec84e916e3539bf0c256ec083568ad457e576fb49d9f" + }, + { /* i=2126 cDividendBits=3965 cDivisorBits=1935 */ + "02e3fa6739b439ad3ecf48a1dba9fd51296eb7e91a0b7c9c5e6175b79d033b37a7cd57c61940d3624c11420da5d85070f11228f38960b1f4d51db45159c812e8661ac5df65128bef799883d4ba1a5d81f05134e40c8125c837e890ec1f440011407e89c0b01076da48fc07ebb904514f37ea51ea1517803bbae8a46040bcc150e27b22af917ef27f90496d7f39fa586551885ab5f7dcf7a663d508380fdcf79c10312cfcef21548225ba7d597e8c9cba2eabfb9c7596ac76d116bf0c8cd5f7374444e16136e81735fb5d0c7f6aa91cffaeb4ceebd81841def55787488aa3ad205aac14097b20e1ac6fbcb91940e7cbe9558e88d9decc4206c39f576ca8fd29c11821aaddf3cb288f36e8fa3f0718702ae4283d3a5036db9980c119831aa9bbc25ff624a968186f9182b64f543d5483b0898d09c5bb4f0e9e9846855c030a04a926d9031176c49b31294b8b27c4babce7b3cad78d7dba2683362e169191c56e888d1352d4435f9aff90b997061119cf78242c49cfcc548bf184694b27673e030a6abddedde77aed53c472d34c544def6a67871b5c4bce8dba0770eb1f420886deacfa1aba0a8767a50be9b638a853c88e4597ea42762c67171b11a7389a9c8bdda4b626db6ff9a4e1c01c19144ee186dd57b3e30cffd066dca06c7ae7fce7447e58cde6b84bb599259055197ecad01760", + "1363a5f7b4a477ecb3ddd7e9028dc80edaa8f1ce80612a7b092049bb4ce2b74f890ee5f4d152bf3be79ed29408e8f7fd001ed9f4cefdb60bcb04a4b9edb0678bb5135107f033fbf16cccc91416eefd4fde224f8e98523e83839da1dd6750383ad5532ee2116183209b76833b3b4abe4cbe9d79642fe236de7a0a6a802238b203eb8045663f2274a5a2a3f39968a021ff0e975041d6c6038b2d0b75cc5da408a1150d1204215faa96a2bdeb9810ae51316ec986e1de003935e5d1248c572ca82de523144026262e4b6db318f7c3154cbcaf4f56b112936b32cd6d0c8f5201a8d1583f92ce2598f4e477bc8494cd08c7ff3e1e", + "262a12bbc34a3522b7a5a61d006ae753a20f6bf5f23c8b3537a4c11ac8c193518391bcb80e480e00b24225a00c530528317aef2516c2a03b9a8743427a820e5c466f2e1b8dbcf264486bd538fe31cf305fa973c61c5bce44defcf7028acf01d0d0f1487b1e46d5102ba35e3735f8b3910b4076ca3a13c52d520f98e3ddf1c1cfe62a5b4ff2e9c1a3ca123317508385b8f4dfdd0bdf4412c2e6904d641eb627716eb2e2eefbf64daa28280cf2306b53ad997ee025c48fc0b189f6b4569d67e945fcdd9f8c6494591e5fa7e9e76008ad82c82ea9b7d642415b5a79c1d2fc0ad897462e68a2644461d52e247d2571f0bb17fd6d5fdf6aebb714892b14f53d92", + "06d1150ceae9b9834a9bd9f7723ad728954b5c1d2570b553c1391d5446696daaab215c655b9700379a504e5f38571600eef7a75a04f441ecad7f9825f98f81b001983df42342cb17bab6ac7140bd0a54c74db3ed5dbbcfa231cf80a9efde89f15f0aa17e2aa6c0257f0ee1d714f1519e2799e383f6205107d80089445e5fffe9a7b1d3b82d7c453eb7a6938dce0603b8c6fcd74dbbad5473609c0bac8ca44471df5cb66a23bc402d452a0b12ac913cad0bf6b4062ce16d8ddc6fe8cc498943f4d3a142827ffb4c1dbb6777cf3c347d208c7286b6cad35bb9bc4fe0cf1c9e59c8035bf8af2f482793373a19203daa1ebb8444" + }, + { /* i=2127 cDividendBits=3935 cDivisorBits=2997 */ + "2abc8b88ea57c34c0adfce4a5c8b22e26ce2532628df858b1b4cdbb5dd6a2bf3ac2ca98e8eb5b527a605685cd408767a530335578aa9f31c807b12b41147b36b964d0e1fa2f14f90583d7750901b50c7ce4636e3d6e7694cb02f919106e99537a323c6bffd105ecd769c604b558b52ecbfd2a2f79b3ba94fbacd5461a206bf17d723ea39d0f9f8fcd40545c564c55659ec765ccf1c96150aac69c421ccf463f3c56664002be9828a38abc28d39bbd2f733e42ab5626de4340cec8e84996aef371c598b237af73735bb1cc3cccfee992ba352259986f66547ac246632b81a0fa8ace1b134ae04a090c3992c8ca3b4ddcc7338b4630bf718f6654006578ccdddbed6f8f7d2468496af67954e612cd554a552bbb31860e17e2784b700aef053b9818cd4fa1889ef62c0f6f41a2f91eb7e8fe67d88711ad32fa89145908f0da01141b5efbf08d98db98a2384863e80def4e658bb308a56e0d3075f7f95a4078dcf40faf979934a746af0e1349ffecfbba669d0af46f3a9709cc2e60bc7bd70ddc6e0abe035411cde917c18c4ca2acc97f80b4e301d8d15b416be41590c9f16c0fdde42238ec0d01b1c59adb3df3600c6a3f2d0b69c4e36de858afada8e64163172058754046232f4ae67f1e418fb9693753c39c619016dcd27f0f200d411f566c8d6e8ff00d61ba86973f0f0d2db", + "0db81f675e690aaf7b3d564e45f2f82636a2d10f4bc6ee080d3edfc61673fb098ffd3a7be7f4d3a91a456011db04cd10d891fc02956aaa148408b367d00cb262962927c38105c5ba0bdf3ee91ccc7c22505c32cd291ae4c237ffde1c2305d933211ff9c2e5f22c8114ce48ab2d01bf999f5a4878e74a27b8967e4205dcaf1d135ad68f75f9ea9c139db96115566c133e44537ebec54306a3abfbbbc371f7b1e6a35ebf698aff46e666de1aee205b2446691948c51753960629e397b1738152608254e2479db03bbc6687ec9dc97e07575aad20f4473d322697053bb82fa4b60097c8baeae1c482fee0ff05c6b6935555ebaa42a43a3be7b6a304c98d9d80a7f753cbc5662c77634b6396cfbbea2a41ca4eb4ed12533529799c0828797de13814ecf3684c79d42af41fb3e0224b7e35224b4c3059496f4eeb025913e1f510320b163ccc00dfdc23811dfcdd21ebc248ff8c3ea161fb4737b47ecd954c3f6516b52ce22c664e1f1c0cc5fdafe3a921590c295d951fd1db3b", + "031d75eb6ae1f02ba9cce6aea6ea7d711c9679b4dfcde4b41468ec9dc69d13741665fd6fe3bd58989a92d446857f73e474879a247163deca63e92e7ec7562b0be2fe23052a401a8a7c97bdf621e62d9f66a99cdceef76f2b899ea92eb326a9c1a4eea54ce55896dd5d5ae8b399484ecde75e65f75f27", + "02b0718f0651444ce296f0525fc0a65bdd8262cabcf204dea06300ad4422e5b3dec3e2a528bff23cbcd6bcefb4e3c8c98ccb9442bbbcc8d979a38e24e8f7d8acb592b36e9a3ff0afd6484555414b8df8ff4fbe92725f0b85f4c1f686d9a6f20d9794d1392f2cf6180664f9d692cb97284fbe5f3acdbb5197aaf8aa943b845ab74e13296d368c234b46722cdc7e45313fbc62bf1aabf817c3de11f16bc4943d96837d794ce8dcd3796adf8fe50e896d7d146cf276b4f1989f59fdde2200fc8a13704c61e54e4976d1745fad41258edb9386f24a2f3ca365588de0bc3237b517419a5572d5dda1877a6775c8a5e05bded78c36a5194be248d49915812c6e126ad815709f5ec7cd2173fcea64e033f0c3a5ed3dcdcdd865321dcae5ce59577a8dac44384eefa7801228786f9c4f238090d0b7f635c9d70399e605dfbbecafeaad0c322d7291b0e00ef7849773ad8c21b92bee75c7f334bcee75192f5d5b0a135c6fcdc86fd5294e655c5728cbdc188f043311954a6ab087de" + }, + { /* i=2128 cDividendBits=610 cDivisorBits=184 */ + "9913b587ba4bf9adee4fc638ff3bad4c279f039bfc075973a1a9c43ee1d77c286d1a8c904cb1f317fbbc9aae103c9cfe4e84ffdd01c05fb2fbdf613f2925333ac8555a0dff62e056a25bac35", + "e6a383eb8e5f109f3c4588c9a70fef338ff0e5cd6cf12e", + "a9e8d4498bd05d3bde09844461802605402249402ca0affbb280bfef864b6a3ac037b6a3108cfe5fe7b4cb50a534e945115946584d", + "58e2be57f817de67de1309fdd755da62ebf6e9751b515f" + }, + { /* i=2129 cDividendBits=2151 cDivisorBits=291 */ + "1afcd575750420a226d82d9ff965f6511711b54751be02b3a8033da2046a8dd19a3822f15245cccd0386dd9aec21780367153a50878f0eda7cf9af2381bdacc0ecba4bd190386dac03ee8583f5faa4e7b69d5987c25c75bb2962908841581a1d7202f1f37774dc487eaf8dbe1e6b4b4906a88bd42813c2cc06d3cf4e49991075c225caa4f8e4c81f5b35dcb527789cbc79d7f75db8c758492323dc90c0b8eb1d47e0d8f5f9f4ecb12a012c489bf7b63a17da37df9908272b7429013105efb7f6e7f85e9e5e25d3ed3ba1cf339e0335893309ef5047ae66f24ae3c6cfab4c37e20e6e94ec8156387236878c21f5627056b04df9db3dd5c110a8930146eda677a7830cf9f351a491833125183d45", + "06541528e406743709477ccf6ff54025b84a956a3a7c002bc783c04bca3aeb0afc194e7037", + "0443b5ebf4981f4700873e6b4ad1c7042ce9088eb1fe2216b97f658f393f21871ba9f65efcfaa07480cb39fcf3ed0501df9971ca27fd6f40bd655678998d0b36bad2f3b4f7736d3472eee4fee200bdc2d6370c1003ca7a54ef317f4e03e3c01c2d002190a6089188d2b0abe3312efb319ee35ebf48bb902ae646d0d154987d337a7e4d37764cb6800acf3d2bc0759ebec5cbd03daaa182eab5d815f83e36d01f07a764c1f2a1b5b87b3cd2ca55b3e5b07e4cee972c6adfd5bc17e4442b53c6ba7c55925966d40592420e4c82b377ba9076cc91608b79c9d2ef1f0d8d1e645543c76ec6a739cda95db6", + "879b3bcec75fed8e8ed2ceb297d43eef935c101c8146b8485716afe70394bce289417b2b" + }, + { /* i=2130 cDividendBits=96 cDivisorBits=56 */ + "cff5f57568b1fb3c0208a2ad", + "cae157530335a4", + "01066927f3ea", + "b74148a532eec5" + }, + { /* i=2131 cDividendBits=2253 cDivisorBits=1758 */ + "03357af450e6e6ba4827aac6243cce658c45fc7c7c78efecf0b6a09187da8547fd5e65f56707e204c9bd9f5873b891f8d1c43db9b2ff3266fb87e6a904a887b5a4884e3efa2dd5e053113320838a690a3ac33bc4d9b0c7ed979944e0967f202e74e109e30abee0ca6a8431a0bfc1f95b6c27c2668374662788000244eebe65f4c021b9e39f93abc2c4a4ac89406a4818c2a1ae42134f367276c3101cfa96aef71b10f2d6467857881b019c16c46bd3160ed6c84fce8df41209205f2c7b9516748e4e0983aa3b285c1fc800c2b84479518c22153b067f3eed541b3a737203333227ac932f37e324f2dc2149f8cdfd1f5fa7b6d52cd1cea16585aff81f481d3db70bfbdebb88a89e93f057d8151381b18b720bd01f92f7fcf6f9aa", + "17be35aa98d46b0b5561974ddcde110e59165666d796ff35a5fd6d0034d47306f955c944a6ff10c3eb15928a9e648a8dc9f0126343a6166b9b71b51ceaff16fc6c7afc9944efc70f4ac6af71257ae46dc1fb2edd088c1f756060c401c5d5a3e38f95285f58546601913ad4f16fead906e055cb31300a42971b057da03ca19d631b9aeae4a207eb3081049fc75f7275d0f8ea4a5b4621a99ba04fea1e4eea20ce00f258176ebc99b5c5860c8d02bed64af2cae0fb2d484ebb198874617c4d81f6d513f57e020aa915d30f85090481bc2460d52aaa093db71dfbcbe86a", + "22994d0ecdf5af311acb27309fe884fefc1ea134b017f0c45e5a26a0819a8b27ddec4c99705947354d36f078b17c2add461a5a1bc1950e96301cb687d7ba", + "06af2a0c9cf826da4c274cb7310edfae2de112bc17b9104f56334f8e063a3834b078a6c5b440d47a8d503d1a1362fa1743c5c4f29eadc7a77e5b8eaf23ce2ba49558d94e65dca6602afbc7f479a47c92eeee8b105ebfa7e62ea7cebc568b7b201f5590f2f8bd97fe5e52432568e67ccb3ed2119d7fa7d6ac60b7a26c9eb4df07100cb7d160baa41d65afcd2a344f9e5568a01bec1677894b6fcac19dbc30767b0baaecb4c0f4c47ce06f20e51cbaaed4261c00b58a4996aa3664fda3a3ddbfff82fb3cf358eb7f6c32701f3e8ee8dc3d5a185ea3a2ae4d5bdeb916a6" + }, + { /* i=2132 cDividendBits=342 cDivisorBits=58 */ + "36a28cacf8f65987144f34e4aa24c1f7f71f488c69718589b763c634899d80d04b3eb164035822924d4743", + "78a24dad8a6cec", + "73f1284b65445456f5bee5e4cb4d31cdf259a418d3f6a085425989b6d77fed729adc6f70", + "2742540db34c03" + }, + { /* i=2133 cDividendBits=1011 cDivisorBits=1009 */ + "0198d8406b7d3562f339cf43102bd7b370fc9294466668b64fba09f1f30491720d248daf719643ea9feba1222a7c5e3ccf43917446942e2652f2d665923cc9c55cb3e0f960af902c7be6ba2a6c09237c42bef4e88e20fcab9b5720dd392b7446c237630ddeae7ca2cdb5ac6bd0f3071ecad4e93aa5d3cf9c399a75ef37c033", + "015cf6e4803b4a66c51f0d36c934c4f336e6f0af9eb17030a5eb184a694baaec7cb6f88576ce4b23f737fb17205d5e88893b4c8df1b9023770770813d825ae7038b649009e48c9c86406ebc5d8166171a5cca1da1df94a35c38631fd255de2657a113d5804620c2cc69327a88ccc349ad169183bcd6e17650aa05b81ee6fb9", + "01", + "3be15beb41eafc2e1ac20c46f712c03a15a1e4a7b4f885a9cef1a789b8e685906d9529fac7f8c6a8b3a60b0a1effb4460844e654db2beee27bce51ba171b5523fd97f8c266c66417dfce6493f2c20a9cf2530e7027b275d7d0eee013cd91e1482625b5da4c7076072284c34426d283f96bd0fed865b8372efa1a6d49507a" + }, + { /* i=2134 cDividendBits=1890 cDivisorBits=448 */ + "02e4ec099e307fc92bb58234430da6c1047310661c38b7f29cb68e9fc8b5ab8885681c3c96e70624643640998290a2f82bd4467cc056dc8ab23d13a2917357f640f4366e07468e06cbfdc3671695aa2f9c573a8f447c8edee2d3fb3171d1165b6db5753ad23584d787937c1861c72d22802966a73dde510b8373ee5c96847d89ee6dbb79fed9eca1d57bde0991d7bb5b1ceb2eb55d0a6a1b2153b6a573fbd0288d6fefab2a8e5e00e357a32dbc1c284070a25ef153f91e09e64327fafecb9a32f7bff02c514e3d3c8e93d48bda58f767cdae0ba2ac803367c56dd87af60d83ee6885f96b79f1fc168526b9aa85", + "e81b858aeb84b0d6d1fa1bc7f16e2b94f9e4918045e883eb8eb65859569ebaa31af098443ca20faa9bee6814a029929f974ca68c5d4a7fba", + "033130c14f77d43a0bf9218a264e885e8b007993ec9025551ca10b6d7b54a0405428a289d7cf70c42d37cc081cc221ced54fdcaefea31bbbcb122d253510d8de487e8dfd7293de175106ff799399e68915f7bfb33e7b8b3f76dd3e0acb22f260133066df92a9ebd64fe2212917ff382b593ac87cbf96aa29d49621e5c8ffb3377d87daa489500ebae171149a210706a09300c641150508fa219c861f7583b6ad49afaf1087a8d4599d21f103165d5f5a733d98a943", + "c1d0f2e607af2ebaa5a95a4b82b3f1a322939b46579052d150bb212f0d3e6bacf770a81eff48f68475c2ba00418696bf5802ecf9657872d7" + }, + { /* i=2135 cDividendBits=2325 cDivisorBits=2140 */ + "0f5889be2a60a037a843d46f3e2f9dec4be7bd82b805bf0ed3871063a41ed73bba710cd8b5a6ddc84d4e6784992fa47734b09e09270c597abe4e0c2be091f24c40f571253e307cb50f08868fb72a4b9fa0339d188c253df66469e35649f4f7653858172603771934561c142cec9431e872a19f28bdb5c0fb547c13cf47971d567fbca094429ca22b2342765a9abf27ffd95e3ce7fc1ac13f970669d1bfb4ad735044b23ee8406cf95bf2709086ef258395574b21c3262a23e622548388963a6ea637f7db4ccc0c4bd447ada27fdc59751a658c7d8af881b1ebcc1b8b2227f7e3a2f88ff1643d0e33fe312a9cc687349c5b0076b1c88075b32ecc3ab4baa2a89c6d67e74f41a1e75b420d8a3f6bdb631863ab8539c69307149d3376587e664643d71e70", + "0768d975c3875596dc535750df2470dc67a520c854065536ade4d5b85e617b1f57424ff25df3bd576db5b1cbff251866db18507fbab208a55a5fcdd0690e4c4c0eb4ce83f9c99cbd8403074f9576f37bf56ec7331e3dba32e773dd47c5ecc9de033b82e8e922a668f62defe209bcdd53df68c9a84c4811b21b062f9a266e11a80f6f28a132bb47cad7e6670186e62e332dd60c797778dd12e3bc6e6d3b6480bd97b473f86871b5936a11f0630759089b4ef10bd6ce614ded42a4850c0ab9325e49cc5088501d80d9ec548fa1df3c1603b39167936d890c5e60db22b79e47356bacc987b14cd3ecb751930cc0a32aa320329dff35b40ea54a3d80ef679c1bcd16296648227d0d5ef475ad58a0", + "021232ae9fa07cec9eacae36ae359ba61fd8b0a0507caffa", + "d26d6110ca7f8f9c8520371d429f0c310071addaeebea090bf341a1bed165158ef23235a77994198b54a82f09024c407b73a91e9a5120f710eb2159bf21bf3062799bb28014ff537f65148a4cc41cb8565c24f915feec8446a975fc9969187d3a55821969f8b03f29f202406362b5bb0a2e61202e6610d3f27275393aa6908764c9fc52a1e9580629c8c33aa06d868f23e5b468f53610faf3a914678e04190f2fdba82f5ae9e2bc8e92d17cb4ec17c803b652065526cb4ae4a155b53aca1c8966d5c3847701d4715053b0577baa0ec88298707e485decdf15d2fb56a2b81618cc674739c25f21d54985c9e2933fa14d3556f2ba9fc9834a4a9f11e55effd0c954b64b6d211ff70eb793230" + }, + { /* i=2136 cDividendBits=136 cDivisorBits=116 */ + "7ed122bade6e04999bc573a26715ebc2b0", + "0383437e8156e9485e4189a4097b93", + "241a16", + "02ce08334542f4c356f494a5e2360e" + }, + { /* i=2137 cDividendBits=421 cDivisorBits=260 */ + "0428bf7c287e80b4c4bc814315f9e66c4017248c312aa3ab1a1c3f72ebc68cdcd461a97481850ff2a9594392fb52d0881398dedb5c", + "01d4dd0bc048ccd37c0a27fa2b792dbdf5177b01641b47d4a7cb5186e38c96fda0", + "02455a88ecb62deddc5553a33a52684867de82d3cd", + "29c5a4083f054d901d7650cb97b27a384d6c785e0928f3bd2bcc96fe05aae23c" + }, + { /* i=2138 cDividendBits=1220 cDivisorBits=851 */ + "75c7455c56a7809f9495f76a8ad68430e32559791c42906f7aa11ba79786a19e88ffa0d8beb5593b2b2d2f52f123ef7d1661b94538be1cbeca2fe64c99fc48ddb5775fd7bbab33315a709fcf8121cbf97fe51295f9bdfe15a536a4dfa4e947cbb8fd8925eae368f95ce78f11d7a322e2d450930170e98cb22902ddfdce67e42bc4e5893b9577e5f5bac7d20297679ced2390282e1fe2d4d4", + "1595ad7f7ded405e4cbac62538c3819717a5403f90b0f47a0f91bd34b96d0815bbf09784478fa552450b2b77c7e3c6c5b28358693cc1906c6ff0c0a80bb8e04be9702df97a946848cc21eec63143d8ee85160f283987c35cba1a5e931fc120949602bb468ae39a6c738b", + "0574e20d3f5c1316f842dfc67032aeeae83b5d5a4c49e4324294529817c09c9eb2da405b2b5bf2230019d39f958833", + "080d0dc8639b5a7c9e619d5304821eba939b0d7a0c37c7c52af24e3238894c6567a67674f9f81f22727b1a3aa660efa494578f833cf41a911c3308ef0488f26848d21a3b9412460aa91e4b53ada0345a7b42cc020ec9e9b43a0b20e826f572724cb347ab875929fef823" + }, + { /* i=2139 cDividendBits=2031 cDivisorBits=114 */ + "04488c5b934593367bc9d6346afd67e85429e3e7a12f80c93c24481b4526724d090279a733307061f3de08322d0d5a5761b63eebb8e6e097fe40d2ad88fd86adccf05a7ceb0877950dd5d8411e019483cb5d931e7e4981a384fc0a9f787705700aacb53e6f6fb8d75ca0b84b247d59fff3d4ed4cd0f86ad62428879bc2d428cf41b638c5811c3301d19be5b74cd3262647eb0abd0c03087290bed4cd5073b646ddb400d8ef40d5e5077c7969bb421929ad284a0891da18ca46f64d754d4a2942c5ed124266e4b5cfbc68364fb071467f96b01c530215b47a874acf2336082008af9adc497c4f3456eff94d3b28f3676e2690c82ff9d94f46f33f41126f82", + "030a7f900f5cf40b4befb602f533fa", + "01689645232506037f8684d29472b5b8732b16ff8cfa835a552c22025b637229cc889a9f0601c020ddb2bff751ebef98f1ff314b56b8002253083f70a71442cd09e1fbb90e8171fe7fb000f8d335bc7c1926ab646e45b8ab5f846ccfde95ecf9d67c55059fcec51f9cce138bee87fa4f60fd350ea7e607ab4dc6fb4875dbbc2e5e78a81e8935f658185b218915a72cd6e4907ead6f01671d6189baaa555975e568c1d3f3e89ca54f4c16e978f72036c00de24f2c6f961f09bcbdea1340e5d8b8660449d923fac9968a64676b430d56b285b5bf8edbaf74da355a6cd2b667816a81165d127fd3a05efaa3e62e00ba7382", + "34525bf3a9a13ada5c69d690bc8e" + }, + { /* i=2140 cDividendBits=732 cDivisorBits=82 */ + "062d810032c5494c2cf836ac0079815717f5c4b09a600e8e68cbe2c922372b40c54ae1a1c176cb0ade62a9bebb86dfb40fdaecbeb225a6b326550d894fe6f4c2ea953c8c5b49a0ba684a7a334a7d7e694e6d628bc44da7a7767af30c", + "0316b26258d2b6bbf4c6cb", + "02000924036d0c91fedc1e7ec4f5a9f97c899e58d2f45be669b62b17f46d5b04580d43eef0aab7d947030bfadac640ec2977dbe375b0fad125c8b1a36fe473c2649c4510f898a65be946ab1f737baa794baf", + "026db6a32cfc6e7ff69547" + }, + { /* i=2141 cDividendBits=2507 cDivisorBits=817 */ + "03e750b3a819c01ece1cb3cbafe89cdacc1e3a1b565a9c929ab1751036680aa2c6946abb6a44d570c213f4584905dc555e43b8678db09611c5ba2ca2cac1dddd71a5d9552d53affa69b765f2b158746eef615db690ae25323bcf2d73e3414aec3151e09bd3e4ff57758e32e286e350b45db0318de8b53c47c529338fe9acbd4336214a9ea8cc586ed803fa2aeb47f19f725e019c7d0ee76cf49a1b7f351ad38ad61de98be15aab0b1952e1d4c31fda227871f390859dc9ec8ca684aeab586a4364bb84c346d78e241a07019057803faa90948b6873a78663077d32db9574292050b1b568346a481b0cec0886e39951ba04c8e85f2cbdfdc076631a2c5ff80c06f26103193071e3b60404f50d702c9b7c16155848fa2a47ac654965f4ba52f8d63f130f84975162be63758851696b83727c2269bf0be9cfe005bf", + "43a10b5ece7ea8f3c36d52f3416cc562ddcdd5dfa8196b049480803ac6f262cf5924744345c3fdb5ecd3967b5966c9a426353d949ff0b1eeeae28d4f3c95d8466c346e8f08c2722c8d6b85847694b75e00222652fa5956a9162254a8679f0686fb88c5a49d10", + "0ec6c30798fd7d645abbeb69b4c924bfb02ea1bac2d08936a62b75f8c39515b441fbe0ce7a34445745da815a9e42bda53a7053316549bd0f2b5eadd338c8ca2bef15e60dc7bd0a11472cfff1f599466a8956ef4e62a5aa51caaa63d6e2dbbeea0e5e1e7025da8f0e28a125ad1209388348eec9dadc3baf90321eb8c3dad1dd09df394fe752d1224416a81eeec296e46689f422b4d642c01d4e89fa24d61a44ae959b859908ff04e44a82af79f4cb7a695fc41697f6fc1f3bb7ad48b994d2cfc63146475b165c5749b32aa6cf9bbf7b2e1e204c07", + "36aa6a514287d77e5c1193ce90200dfa741a7721adf5de97781f3c82b7eddc4ea9caade5262b90bfba192784bc52b0e83a63011488f540720a129f9d1321d9d61a8de0c30f1ae950c0ea90bbf8be169057bd2d5cc3f9a04fd84b990a641c3724a8a407befa4f" + }, + { /* i=2142 cDividendBits=2915 cDivisorBits=1062 */ + "05e6c4b2faa109ed2fc23416fb8945c9653510731597369b70e590b6831ce6b7b409faa16c7bafb9c75dfc6d0bfa1c0b07830c954b13f4fb959b8de17e32047ed5ace049e5243289669d7cf01cce66c25919cc4feefa47bf4c2984b9870edaffdb7f267a8b6c99b6293993ac72ff5e886b497a4a5e3820c85d82460e478c48fea682b39a2931550a997eec588edd5e02aa57b3f4a670098c3e416b4faf71164fc663ebb3d75fd41a5a859b7c0acb55b0f7a6c60ed75bab96d566642779f3b11c0ec160fa926d20cdb171bead555845c8c280813fa934102f568c688d278159072a7b98abf0c051a5aeb45e77f1da503ca661869465a1d7436f52e84053945114601e78c06f7a5ed4d03d0671872594d09858b9badbbd55dbc72d3a55618f9dd6ebad61dee64b2ef95f0e53af7893fc22f189524324e31b9a1056763598f0fcdcd8b5bfacdd9637024ad7d28ca7a032c5d8c9c99253e7f06c3d1127f3ec0ab686945681f030b68368f5c9ed23cd", + "02fce84cb84abde5e78700050cbfd5cdd0e076a601c27eafc335c7db9aab11179e700ef9b7ef9cfea9c77e284b75a47f95c10fc68ba53cdc14e71166dc73296d8fc636d5351da263ea1905b2311e8710a1773d1495dccbc732e1db8aec109cc9b7a6a93f67af1699ed39c0273ec5c758fee4f4e4b100b7728d4d46012f63fc879497d4aadf", + "01f9a020f302c91f07506a344859f41a3b3f30467506d999c1cc6e4ef6ea989419dfac920b38c9ccb275678b9c6ac3eab29bb50a531eae9a26faa883e7e25b26632f56d3d08ee6418f180eeb6fb1e856f0fa80cf3f906df305b925b91fed0218e18862d9a790959f523dbf8090ec70eb227986c55660c1ce25e0fa814b4a589281f009ce0749aa9f09461e65fb5094dc6eae6f251c70359dc39d737d7d468295fbe588b15ff676f207d7ed543964925ab370689f3766f306774b38923ceeadf14b0d91bb809bbaaec3f571c4c2bbfa95354053dc97acaa64d23aaf6a98b3f073e89d208074b1c04786", + "010ee181f01c71275a54725ddafdd716c49d348fbbf7ef0cc0f85b7de19b97a2eccf2b7e17b9223d6a158d6e99e18425c827f37e4b35ec7da58b958204c68c2ffda8e79b23c4736c823cfcb4fc4267229a8865d24bceb9c06048f635898695745b4d908afecbc30ad4e3702e391cdc69e8752fae9e5a43f68dec676bcca9a16461fef7da13" + }, + { /* i=2143 cDividendBits=2082 cDivisorBits=1168 */ + "02cd20215adae27253814f2a71357c6b351b95bb27491574ccbaaa3b44ac9cc1188218b8ebd07f4c2f9f6e715cd32d2b86f2aa0894bde2e2b7c5320752273f72cc2f3737073dbb52f831a9f7fe4a6c872cfe6beb6afba2aba0b742f41f3f7acde9eceb8351dbcab5c7fb33027f623310664f1b27e5c0799d62d0467e1f0e6948c4175234af46d89560e615e3d2848f85d0f3ae720666411a6fd34f73ed61305d60f8ebb5e46f7e1add7b7e3f27b3ba98196b766f5ac0b86cdd491201203e2ff4813f78ee3f2727f8acbe657e8d767ec795137f05eb05c6bd49fbd3c086e1992cf5f58e77f6658ee0459657f0c6d66d7312e0c74563944b137f0df12a0867cf89578277658d", + "ddda29b714f9c0210d27f702b52580720ea26ea34cffe4ce146c7623952480d85aad74031f74d161e0345a5110f030d610981a326900cf8704704e529ba606dc1b36c4490426f3ed0882cb646651ecbaf3d174a9c6215f1f4de7d52e93370dc0b5ff901fff2672db63869641f47e89554dbfe940aa1c4bbc46c22ffb2112781e8f921871c1dca07a6be0342774f9d1c14f17", + "033b81a815079c6452ae8d04d9a1ee77adee48e5d64898bb9141fd6c79df1ae51586e1d023e054c44ca0de63adb671f2e6ff4068530bda315377f612f5e54759451e03ed21b1b589d59d65bfbbf4595ecd98364d6474369b4ca5552e9ec4bf37a926ac8bea6c9c6a043473b77c025e415d89d6", + "69098ef734d43b670fcea06bbe88844ec4a7932e1f6a0a9303271db3d18e409108771eba220dce40bd5d3701066fcf2753d6e22e38152524cf0837fc277708b0a2abe391e6895461638860f93e82560c223345dc96ee09dfe2496cc3b65b4e6ada7cf25493f8efb41db2811c185e06860c69ae15a5aab188d907d26fb10921cf15c68d743a3e529225cb7c798e812530f953" + }, + { /* i=2144 cDividendBits=3449 cDivisorBits=937 */ + "01fe1d29a4e940ab62466acd16e948d1ac5dd8781e1df0b7ab76194d25b5cd39eb3270f6e7aa3279f0459d81aec4bc50e872b67d2b99c7d5a0c5ece4afb9f971a861af03fc9c38508455ae62bd88abefbb7325226dfdb629f579ac15e0ca6c5bcbefb56dcc10784c645443cd93d3767f774e0d1378bda4ed52757a6f3e2d35c05f25655509d839be1e85f9fcad55da2ca8045d292989448c2e4f5e5b2190b90ff029b0b349049f9e018f7f7f76479be633302c1a02fa50ac244b50bf7ffc654fc171cc65179dc334b5d3f4eadf923fb12f8b2f32f29557a4d0d4628efc6559dbdfd34086277920d3f2c3b0e8aaee25e5ff648564a044f06172bd28a633576c1c4ee6d428871314ba5b18063b5b3003f093d8552bde0b1b4607cc30135d970ca568a26ea7d0716954997ff64574e62237a5649389831c799aa37c963dd0201ec14af06d59837a7cac8dbd7a687aeea78eef74d4cda3bc974f5165463ce417f8f568ed76b57ab0828e90db6ca7da8581c43939a59e0fae1ec31ad36372042c1682734e05d5f3733b827436f06dca60dbfb487acf98bb8be05befd2e5dfe4bb54a69348ad82454c3e8ee206ad6d4f361bf7", + "3aec3ae5a7981223815dc81a373e41dcfd2bc9cf37fffb5c92731b7b32e37c01e0224da0e1c0dbf6c653d444c373fb2b0074a6aaafa4f9f52a4a35c9b301002bbc6acdd0814713f804e99206e53985edae2d0cc31c01d38411faa6a74cda518fdff6d5c88abc767493af23f76034f28e1f59b0f1f1", + "08a846cd2a193375b4a1ef27d5641d155542e0ba49a316559d8e23b830da4f22f153dcf952b20af49ce606896dc7e8a6ca55b03df2bf8bf7ca44d438317966da6b75407a362fb863633c34d2ec481c8bffbd1e3674a070b403fd05c0a8c2a9812589ac7695933d682727496e71c2ab3a4ba7f7337d8b5132ab2aa8442bc751f5a3378bccd9413d81efff444b3e3cfdc2d9405f10965430124cf056b58c666efa3763f16a50fbbb1c1e579298de331c55da318611207b8e84adf9f3a04df9beac32cf80e6c7d4a3c919bb7f6e50fdef5394d5604456ac592ede057755643835e98464f44ac8a183a4167cac9e8418987722508c0a309b22fdb0539d6269a88b7c6f8ba86f60ed6a25c12b538cb08c0f3439129a69be9ba4e1eb0388eb6a48cd3bac058a8b020397fb5286ddb9516f7d28c31fb81543c193e1158365", + "36315f07a26b9ec3801004fe6357cf9eb2642cc0f1b89eed30b29c73d27fadd8179123eac629e9c2ee44a015073b3d3eb632cde76ae06f66e12164fb0fa7763db121eb88dc264202fac444dc39215f2e07ec4863f1fd791f7bfd1c2fe2677d803f6412a5261c2d414b0b0d93b3ab1f119db6d354e2" + }, + { /* i=2145 cDividendBits=946 cDivisorBits=833 */ + "02882d87c1e4376d5d5773d9c8202c6af2063f8e1682b895ce0c2f9e95a8f1a97ee772211b1c2874c0e230e41c5a823afc0bb2c9a0ee52e2e9a1d6f372bca2ba68e8bad7005d8d8936a7109126cca9ee13bcc2fb32449859f16c8d940bae423b5f7ec57c1f742ae26a142481fadf087ceb6003bca88186", + "b30572c14c92b86bfd8cfd76d625f1b27951bf382eddaf811e0a34eb090648c863d28324e78d52eb9107c7c0d712cbd91dd0038523fa92e8b5b132310e1600de57713231f4ac8f2be7beb6959ac0d3c6848d7a55fdd0c78485289b1c17e8a76ebab2c59c537dd4c0", + "039ee48bdfd68956f20fc756964dc9", + "77dced9b9210fd6595eabe61b38616711c2c60f6db70e2a93cff6e4825f7f4ca21b84b16b3e7f2624f530b10d1a887a3699d9d4eaddb12fc9455ad9cdd3543b697f2ffc1131276279acfac6ad9ebef18f42a0db5d840fa2b3856075a168b5538efb160b62d5eb6c6" + }, + { /* i=2146 cDividendBits=28 cDivisorBits=6 */ + "0a190a62", + "28", + "40a042", + "12" + }, + { /* i=2147 cDividendBits=1582 cDivisorBits=379 */ + "2d2d3e58eaa1a341c4c0fb808e88f71f88fd6231c13de9cf90506e9904e607d49c8136163491c4a7edb190078e67e2ccb20763a2faeda99b425a062456dd043baa8b887d665e71b21aeeb3b8a4171929a33c16eaf1c234288175aa177aac40b5ae86515c5dccf3acccf9b427fe6202ed7ad115c18353fc577df211e435416625a7a24867e1804b1ffa22b309ca0e44a3fb81ca3ddab3aab23f5d098decbacbef9d814767bd6b01c195757419d261f49a076b2dfc9403430eb84999c00c2271ef796e9e16feff", + "032066f31ff5933ef3c4b52fe369e7863cab55e63f495edce106f4c86e5262bcae2a08d640fb257df813c8e00b635187", + "0e7304bc2ceb404f5a4883afd4580bf42939308e24a22b725b97a5c70e80fb04fd1911b590124a7f1ed8a0bd8388e5bfccbaf916d65e313e4cd54b6cce25974417248f0c3090449c369ee5e4a024aa5883967b5b6c7e3bccf4e37572a4b233b2f3ac54f995d0b4ac8590475a3f5f6028003b56e6081ff3d7f3af6e0c432041bdce8987b8a085d09c19037958b2146f910ceacdb6d59269", + "5f255cc89c23f13f09f8e6b98c02b036568d24700576d0dc198a315bd97e28e77682791e790586ce5e8a577e8890a0" + }, + { /* i=2148 cDividendBits=1454 cDivisorBits=13 */ + "0f9ad0f84ed796392587fdeebb4c5641e95ac4b890f1fbc35f174f434909bdc6f08d2d044b2ab580706c91ee877f1f623ef552adf7fd2401567a1d7e3c5c0104c7c2eb91d882102654f03c3d19fb32ed34ce85ab9d2df94c43dc296e820bb6c4a58be3065adbaa954135724a651f68827a652cd2dda7e2b0d973f081ae4968afa93d03b71711cfc73de19d12314cbb703155c3fedeab1395c44b9e713af9c59849d976ec74b4d0d5dc2339ffdfe1257816e0dd60589c", + "1e83", + "82ed621a825cd2f911bb0a69d684cf53c85fdb0c95627a9eecef7d88eea7675e3e819f74e0eba17e4b12625718fa601a2f6f5b467f44666e44b2dd8fdbafabbae76aaa8d67aacaafe5c9cc94991861b4f92ad3401cc6647ea2a19fca9453bb1067b1b3f9ab7f3754d3a363adf84fb949eb4275e27dea42b0d507ea4aff3a10d5ba9e073efe95a3e11f6afa4553d3eed52467910e043afae98f2dab49378b81c34c0d349e205799ac8fa83afd57618d3a34022485", + "128d" + }, + { /* i=2149 cDividendBits=1857 cDivisorBits=849 */ + "0139dc3c0e7762e41484ce69effb5f427d3c551d7959e0a8d7f89673915822d5dc5aa330cbd246e2e385ab0f18e36ceb0c525f6dca8dce3504ee5c7eaef7e57de5d3164221d1e54ac8c4276af501ff59ceae043e49a3c953affb791e3fc09c25371bb6dbae5b44d06aed2f751d04d00b0c8ba68b27d39b799ac9901bcc6abd93d9d8141be63a6b054654b01b08baca424656a5cb29cffa26d1186a9f245b2401f6d0c0321ce4e2e6ba7f0878eec9003427aaa6e8c328afade237971bd68eef8fb7a015e6398065abd04e30fd3830b863f70562bc72473af0608634a5bbc8e823ad6ff0ffb0cc78b9ca", + "01e827b56ea2dfcec08eb5bd21473bc58691291505cef9a26e848f5f2886c345294a904be394786fcb932997b9978d6023aac5c943e1b423c45ff54249cc9a9142429a61656723cfda4140f16381fad523e2c483c114991b75394051c0a33a008bef456539eda35e0d263e", + "a4988017147d61f6c955f9af7d7b9aa258b5b8ae4996e041a487aede5058e51f8f6af5e853d151db0793b7ca64a1cd0a47d2b734292c3f2ab59c407999c2934718772e61abe9fa1901e62c612588030a8379ae11f51ca4eca6db1a9a4caf6822f92eda4798f64859f65aa31ce1f8c870d07fe71960387b20d2b7fb2083d9", + "015ddff51d413ad04fce3479fb9f6ca78b1f79dd7141ded41eb4d02e8151db0e8a9d59cae7ae2be7f6fd8d4497618f425331740ff6ac1d76bf77b815f9801de700f6aa5e375fe3a5d473eb2aa569f0c0b468c04f9a36a345e6bb27f2a83d9480b2c84d85141e9fc701953c" + }, + { /* i=2150 cDividendBits=3061 cDivisorBits=2719 */ + "06d732cd208696f460f1083ddb5029512bf58664b5ef42cccd1d1f4399d68ac3806ef6d922d013b247cbf254e6c938536e04726571d5b6c995dfb08c17006663f1e9d4b49c9ab182065c84aa83e3eb920e684633c293922ccb1bfab290c0e7ebee38a206f293b9aaae1a39a15d3ae1d10e8829b5d67a6e3e86e015bb9ef0e0e30c2c242f0eeb3595b80fec21ea21dce04a5b698fb3b4a996df780a5b1c9ba5bc35bc96e2ab856844c4b20ef8d2c0bc9931d98f212c296a6e58b323302c45a754ae8f6a464f0fa5cd63d4a3c375a69478ace77a8645f0ad2581831d0a2aa8cda3754d790f8bb3c9044834c8c9a8dc5079f7dc2d9234eb44ee19afc53ce893b83d170d54b514384d59c261039f9e3996e8215dbc11ea8ca6bb02826b02fa0fe7a8a17991de9a16676c72f96067161c6b954d54dede4e94c5b063f7e8625967f3ac3e40cb685ae1a138090a949477a47511504c8d2a3bd3b310cc579477319fbcd343a90856458c07f4b2bfbafa35e1537e02f7721222cecedee7f8c187024a20", + "6f69e478df5eefac1773001970acb3df9095053b7be233350134386cd19980efc6f15df0456dc569ff13fe75264864ff4bbcb3896819741ebee57ae6295e4e52a3a5b990101196b58e2b784ae0e6f6da421f596e6422cc35f39ba46718184441078f2fa0b18ecbba3218dd7a251a26e9f43c504565dd85b00741d680f3c97004aa110fdec3a5b95c50e05fb6150470950a7f98940d70cbde17fe4305764ee5e0d1fc1cf42ffe2d0186ad7d071a1918cd2d84d9f74a190645908144d420da896459fde19778bff1938b80e39381e9a5cc9fe935cff876577abb2631bb900e35ed30ff29f625a5dbabc812fd839d9d5ffb79ef268171a522cecef6746d148617cd213caca769a29184d0d1d18951e724dd00a72ed5bda891cbedfe02bfedef25fd9bdd3d0e52480fc11dc51bd65743668528e31e2e87655d690fe5116e11c04174be0f94c66bbc688676b1166c301e23eac125f6d7", + "0fb7ce25f0fc45db7f4e0b511d172058bd3fa959a8ec07fcf00902074bf3c499df29677a6531b819fd4cfc", + "5e4eb51268fa6801a77d2d05cf11912af14690dca0b1ac0c1598545bc458e5cbeb8cf9136e55376492720ffa5f902596652cf41d254932e3d8d46767890cc0d1fb264985345c65625a7aeac758953c247441b6b4304235c669ea82038e4565d34d3800ef86b8c381f07c9c86ac72ca8e2f443d91b570a43198c9915b30759bdaaa93bfc53758206c70c7fa90979bd5ac86f8e0f9eee29f48d670c3bdb7c3a8d36434dbcc25ca3f9358d272e22b4ddd2c3b62d9b6c5a72aac7111b374f247449956fb5c0fb726050be8b1e861ccde9915863c4000b0d4c117ce44bb2d192217a39898e50fb2a2cdfbc0376c7aa223cb0a4a67164e5a9b5bac121ea233dc17033615ae1a2037c35b2d5b40ead13dec7687f78355323a86bae4b9ee932250a428bd97e90187bc83955f127d7badbc0091c57a0be2e4a62680f4f7ab419ad4e38fe97071d81d93ae55133a3e53ea3259c32c2ee07a7c" + }, + { /* i=2151 cDividendBits=324 cDivisorBits=134 */ + "04d45e19857ab029608885dd0177c69eb47a8f11cbd429d7c60a56f7b666de9ba597652c65ea242b75", + "3ea6faf763f18f4745afec0e93840800aa", + "13bbda99cfbc43a750f8bba0d1e4c1d13a12baac596a48f4", + "21c95607fac55464651e8260e671efb96d" + }, + { /* i=2152 cDividendBits=935 cDivisorBits=624 */ + "2c6ab2ef803aec35c483bb1b4ad5fad619fe6e35eecf79c2bfb40d15215f65e49c1afbea5c37c6044aecef4755e98110e6c4e8d5b8af282c585fb30b952921a94600d56400f1b6059b5a12e472a03f2880cdc7975296aab2cb18535552c91f3b8223f164aa505dfad8110264f28c921cb423b0c35f", + "79e43fe6bf45ad805f4f5434abed6b65c4edc9e43f98ea024210d0473f10493f3d6cb8a7d2b60e664892aedea3d2d61599f730166c0c1070ef8e9055d5083d91cf475a0d6f8b7cae4fe0a4dd2770", + "5d490bd57a6b8d3d2d84e09216b236825ae7caf8b742a389ee5c2140fa29bbb6c6d71fef41943f", + "42b660c5bf63ca2fca1a65f5845e2148ef0d9f22e5ad17d72fece18aa146a7617f4d883ce638e1c3251afbee12087281046c504bceff87f82f1ba5c76c42811b59b24003162542036a9323074ecf" + }, + { /* i=2153 cDividendBits=1356 cDivisorBits=930 */ + "07f422c829b4db3a36609764ed785ebcfcc329beb3bc7a5e8db937d5ecc8f37cee3edeb160ba3b1e2ae6d0389f922e1deb222b19a9149f8fd2b70cbd202d59d9a4259d1015dbb33a61c42f339d02a69053705c2c1963f25a9d63001a1aa769a4b0a0396721ec04fe450cd0c6bc75683b1ad5c6b521323211e45fb87fe728624c1728f3eab7864fe317b3f3d7084ed2437b470d6e68dadcda5b79adaea6a3b3fd4149f1ca2cbef4c65852", + "028ac9172eedf5770465e594f1c7ef640e4c64139676d52cfc8b1c9e6375a0d71f596f5426a2631256339ece82d535bdfe7e9a9b3466104b822ad6f04b31ace99756695e4086eca8a5905d6c978fe4c0a163df9b8690cad22ca02ac1ca23fac319c17bc84a83b8f3ffc41b69aa6bbb02fe14b59b5d", + "0320f4d2dddc3e8e005d1dd2fbdb901dedeb6f7827e0184dc9d2bb0d1843f35b9917649a907e5afec256560abf8d8347126d42762c26", + "013f53658c23c4a9bc32eaaed5a011ea3b3bb42808f7fe40e4c55acc67a609a28b9a64de92896eecc0acbc8bf85e17281d935a06a29e7aa092d88f9fe9081a17e3c3c8815bf97cf632adf0bd32c67e59675841a8a787c46e48c914afb2b42388b2829506123a35c2a228f4a2c5a905011c143f4c84" + }, + { /* i=2154 cDividendBits=624 cDivisorBits=304 */ + "bb54f482e6db5d5361349e106b0db58ccb3c39aedd37b08eec5e13b07bbafd6a5441ece16a49816ff2493a5ead4f2cebec949d8ca147c692153fe032298881026aa2ed277b3ab81c917993052bba", + "1ab42aad7d0786be69a68c80c1705602cf429b807ef8a30082bd5bcaf4ae30d323286f51fa7e", + "0703e2fb4de603ec84dfaeb170a0e73a16dbd445d05f8febd27f0d2369eef261ccec9198a43236fbed", + "082418eaeb0fe95a999b922df2a761a5668ff5e03a6139f37eb1c9121fee2a4998f5b0f2bb14" + }, + { /* i=2155 cDividendBits=3479 cDivisorBits=1332 */ + "5970c111a7aa94da1d9c93b463251dc9b6d26c4b8282113bdd5af76d0ef49ad137833e9fdb39c2017a8dda8aa2af318110781e5fbac9c20f1469a7e228a96bd563f70ce2894514f2c5503f13592a3784f65928a740c1d748888baa2eac17604cd76e467b8cb3c0b568825293a20ec2cc2e197b410d1ed00df279a74ec244f02d0871fac01b273b0978c5c0e5fa499035e089978ccf030793de60116de58f164b63cbc7d8d58221526e504315405705455cba007490a70a5e2129f283ceca8fdf4e311a1b0217fb4cc5c587853b991d0ac286355b1bc8fcba55ca6e178fceff68071ae1761fb8d866c6313ad4e4cdf1ea26fae971fc99df21df52190412233a091cb900a31e0d5cc9126458eefcc2e575b5d4009c9225f3fa8f3827778517642bd77e31ebdc8d99170de738b74f26816706ccf68b1d1ed54ec566f6098a9195b1329daacee88961c00a2d3cbceba049fe3eda90e9382c003be2155119b2e9f0322464c865e2ddb460651f9f1817f4f1d16bd13207acdc0176995224d49a9f553fb581518cc232803d32e6a28534106a3bd1845883fb43f5f3f0824e1b3e600bdd359c8b64ae74fc91aeaebef5fc3082d1efceb7", + "0797351211d2cb26aed6cf4adbae0354c9b431615baafe115976da979df0ac9236e9854517e092053079ba8b03fc692aa976b7615006ce0f7b0a23cea71230d07dbf7fb77b6ebc0ed1a23336e8c686ce5d86e1990d5a83408ae3d86390ecebd366b96c5701409541ea489626165fed95f404ca2d067c45ed5ecaa227a49892bfe6eeb68df377293470b10437345ddaaeb241c3ce1f163f34dfcb31857fe456144358d27cc7a8b5", + "0bc870bf7e19a8be9c94ee0dbc5029c0fd02bb25f6825cd3476b61f1a0a3d2fbf89bd1c3a99795c47410d4efc8bc980163382a171d3fdba9d2d8f619d6326a01055feb784c1482a81837c2c21f8f6bb2b898165d37b294662d5e74fd7ba95f42dece48c9d289f526b3a24d18af8c3b55d2063c027dc5370d01d590e396ac7022b4c1b4e0607dc579e370126814f1628559237f97fe4bd72031383f3b32107580f518ec9a907caebbbcda58a03b111ef16f02500efaf0f84268c1d3b7c0e9de366361af39e2414e7ce9aace4bf5f70f325aa97ae64b41a0ea01c6f634b62dd7806a1a37200c36cb597811d53308cc90a4396bf37d365161084f29686eab882c70304550a84c8d5cdc50d41e63fd", + "f82b3564e73c6bbe7496d3f1d94d942bf851549157c17f2129c03b7028a5f238e69e4b2a8bff9914739573021ce1b4f51c3178203a49d2fd030440f603be549842e3ad560d71b9ff8d5132ebab3550dd839e19a3dffd320488301116de21f970646d2edb5bf59b55dfa9b5842ec326db5aa7ffc44151f6589612ad60b747e80e872087fc505b72fa3be242809087278a526fe84ab378133d1ab97ed243f946a7c690a12a14d6" + }, + { /* i=2156 cDividendBits=1088 cDivisorBits=385 */ + "1a12caab15a5843412f412a55966783e2e18c0664d22965ffc62bc000fa51481965d0a042f1d3b1ce1d2407f9e1782732d0630b788e76310a88bc7c458826a124d8dc4011d344aa8ceac3244b5ead840fa3c0e006f073f3725c170ffadc0157e816c0a267a74b86fc766d9d3b1b293d650ffe9fc26804cc42a2cbe2210c649fa8a43ffb3b0bd3af3", + "019ba96cece43b1ed2121671295aa0d06a6fd87e4c7c885c133705d9e8cdde94b09afefb5e948d12c36fdef816cc53a04d", + "1036d9bafd173159a86d7d45b9fee1796a89a2f13dc775f3a04c0d3189bf458075daab9a462186b5a6fd93bb5174166e2bd5508b6f1a3ca75eca3cb65a60176c0c7aa655fe23b8ecadefbc8dbadb5a799343d9a6197dc62a", + "2417b2545cd4646395e7e6b23eee286f931e5b2296a6687777bdf8999c329e38cd3b3a9bb7d71ffad2758382b2706051" + }, + { /* i=2157 cDividendBits=3436 cDivisorBits=1513 */ + "0702b59b50ba97c4435c91197d7831c333d35167a388a23980b078a178a6831a47a6d7358770d0a8d33a3787a22217639e27ce7fbb20d942ad3c98870307033ab75bcc119ff71a667a488c0f960dbf8aa349b1310ad81bc339a8ae53ee5e7e8516878de79f12d1862885621214fe13ec403afec7b2e6509b071cfd5d59fe86b78c56d02ac018402f110b4090a8b391688aa72230aa44a87283af49e9a955445d4daa40fc8c400a232d808f7a5145e85c5a2fb7fd524c133632b9157342ade1f3dda307d1c27307332c2e06151672d903b5cf9aa78f617b8431138b07222fdee1042cc6b7f0370262a8618ed54c5e1eae178eca2be859be020b3a91b4d77900e80f29fb5d754778d32ec777c5988e460d5f2ab98872eeed34e075c30f7aef9ff0bd3505f12d8b9bf35b214b313adcdbe4b96251f1e8ee9f2c0c18600f6a996ad821a894f0c45947377015e4623df95d019b44a4384eb2588c2e07e6d6331aabbaaba60232cd7b3ca585e21541aea717975e59aa1c6acaaf3a53829f1d22734f04bed13e8dd355e525aa00b4a5c75f5a6e9ef9ee8c212537c919ebbc56e64a8be4d5fffa69bda12235488c898905fb", + "012cd6c40017122809a889e91c46e9a21d80f5cb9d971039bb0ff84df3aa2ee3a3e624a6d64596b0fb2939e30d647bffb1e0e578322b573a7debc6ee65b6e4034c361f73bd751e739c05a2b835becb68841c31602daf2e595ed8c5722445b0dbc5b3d84a52e734bfc661fe54332cb56ea58055264c766b2d5ec564dd0cef250a5656a3da5e9b985b6e53bf0bd2800120f91b534d6870819baa1ab7b9796a619690f00a40691c658a072a17b9407a1dd7404d6785a94248334735af296018", + "05f736f0bc7d81f35e2d3776ccf440eeda6955392de688912643608cd85d4da49dbe10d0fdaf492d197c6495b8a50757bfab8a778247dca6237b0863bdd1589fd7e6d2de983ffecbb87514f4f8578db93ecd3f11054e6993bab03a57c872ce8c1e643963c8c3d7148c403df6225b69e1b92e8b60d2f1f929446fed24408e4e5102c39ec3283cedfdbb856b25bd88002159bfdc537ad773995729807a6ca538e24485d9f724089857b375cab2488dc7347cef91e992740ccbc8f769334e63467d4c2c5abe94e7d77dd9b73b12bc7296ae5f44d9c3b746800cc42ca7ee989badaf302a830407d3cea3f5c70685bb74bddcaa", + "1fff408faaf9a67ca7e83c8c7f6b7ecf2bdb1fafaaa0ad1f40452cf58d9f9e38729d459c83dce1ae32f2e0943e98f367c4d9fa37c1b81f476d1adc698e6b3fd8a8dfcc171adfaeac92e9b9878372dab74f5a8f97fa881023ea9e4130efa5998c85a4a0576342875856de9cff66b22de451457de46d521b5ce7b2f6a6adb71b540f1a0d23db14c94bb77f5f29924f11879631849a6f6e95ac4048fc45b8ae1ba47d6292d935bd75fdbee961e077ce7d9bb781946b96de3f21bfd7c2960b" + }, + { /* i=2158 cDividendBits=3845 cDivisorBits=3137 */ + "194f5290b78f1736cca4d4a7330c23c34ca03b3cac3b03173f4fd33190aaca86ac48724901fcfc90fc0022eeaca44693f0447deb05dca8c33d2e27885b31882788ddb424d4d5fb3500d2f786fc3c948686b3dbe2288efa9a251b6d30ce41e96b651bff49701dd7b83849c9edabc575b408a78139fba8ac80cefee85caf5c5dcb5c8da13d6f89a2fa45c39a06f88438dcf76da55fd6d787105bbbf01e4abb6a498cfac66e7759bb501b3ebbb1ac19839aaa74d4c97839ba09c4160b84204e5b184950aa47d2ef9d87208f0d66085d1705c52288257451cd88d0022d367b258b0bda0f434320334a05c11f1bd8bc8a9fd76d82d003c668aee931a814be9a1907fadd80187642a558ebca7292e497a6ac2e831c13968e57b419adc364a884ac5ae1e1e5f90d8828e65f4da85fdff2427cf0507f828c699dcf79064998c9a31edaef34a38f488d93e02033323db1e9f48b620f33c341b01f8d10adf70d1ea2a3cb948957ce62de09f6499bccc7b9d3c7a7e0d3ad616e433e9eaacaa7c6f3d084e4ab30ba021d00b013d23a85493c947a8f5732bd8c9afb5bbe6f430fd56bb208d06c4a7ba25bd41bc62af56619d6b0122fa13124896b081c23fbc09cb108ab6aebea3d092c83d93d1a473a3c336496dabaa4f26844ab375c050257ebb01a1aa3351700", + "31380718f411bed1f667748e6e262d68c05856b2b544252fdaaba08c9a818dc470d28dc8e0376960e6694a6d24fc1f5563983596cab26c4c0737e39d36b9034d604726fa81df930820dde440663cbe8591f9d559421c5e1adc94a36bdead69ac4a1522d1faa0c2e997fa9aec771c2d597480de0dd3a662086c63144bfe23219401321f330c46e689099023f1efad241178a192aca1c95719bdf5dd92c2bfff9696377d08b70edc268d9b0318ea4ad00e3629efefa4eb0d818b9dff7e13e25d2d260785c892ed417a1ad0b726b6dc6c4e34f4cd8429119e5b5398c51e2e304c1c6ca5535a749f4451b768ab369f8cb8e327ca9c4648be5b55d0dfa7df1b16dc4a5f525b81e6963eeccdd3bae150f6ea413a9aac89911ddd2e3c271032df1aa11efdb4caf8ad27016a6c49a373c1f1a78d8974cbf1b187b66a12010824e6b2c14159a7d6dd6c7f7e2caabc46044c25229fb020050371a25bd11d4ee10fab59ebc623bb3534ca134106b7b9e1f425578847a3805168f0de54c1e2b086ca038bf8c8effe56c0c4d0ebce", + "83a4a173490e8957836a3f229375229073f789bef0c568fdc58e37fb5305f7b564a042d44c9c9e35cbeabbc7bcdca8ce84ed38c3b5a3679431d20315fbcbdf14cad65dbd093912c44a8a9d03fec5c380a9f21f0ce40f485cf2", + "25c6c5816d23be640845a0e84b26c3ae67252dff269cd5cb5f11bfd064bb6c76da5881c714ecb042f4b7b88417fbdc86c32f41f20b402e81715c7e734c921cfc855df8c319ff20581da14dd3306c273956aa8022f1b3b40df0576e96c8a96fb0fc2012cecbbb1e9dc8d63515d3407887dba98c8a57365bc848e6a6bef953706988882d25faa2483e10e32c9e0552ea2f1a0ce8ac3abfe9f9d72734db24fb01329750a416015ddbba4a0cb401efcb7e7ab71eeb3c4f057c6243b05c35ae15509388f6cc352f2f16fa6d964f545e8979284a7d3492c33fdf659695315084cc3eb19636bd2203f37d7eaa2b46f74043ee96b43bfce058f8347a968da25710a6848692edcca2ef9b531c0133478311e0d33a0e28e50695f76830967608b5693c72ec2151b89b49c7c137d299d8ab1b8cf7d53288c143772724a30c893926acde8891d54c50253ef04d3b53850ea767f8d8a61fd50b12ef30a305a75aa1bf86c59523a6f9bcc201f2f8a1afefb9e319925c75c7bcc441a14bb4f0b8723f5c07ffeb6b95438d1a1d082644" + }, + { /* i=2159 cDividendBits=1473 cDivisorBits=1012 */ + "627b452f3dadf3036358b532d867e55565660cfd5b922382ea4de7f258bf49d044c64a68dc2b4c70dc47c1f40d8552f7e69e38269dc5f315e0034673c0c879fc69d38505c06afde60289ccab96ad9a69505ec2b1024f6de1961ecbac427e24a5cd0e5bd2a8bc56392e55f3bc956503c6662d24282e929bbaedb957d707623f7322003bdbfd2fce4aa7a0ebae4694d9037fe2d8e4b491b729f121ead4a4ed01004b8d05c10a321c246fd623f77c29ee5b98a0da5831a2fde3", + "0ed14ee9076a8ad1a53c7a56fc7faf0e20c751fcb75f0ad16de36b689e05f0780735ab99dad7db0383ec87e42bc61f64699fbcce6ceb38e785002fecffc0716bf3cb4dd9cd401cb8cd907a3ae5dea8a3f81275a6a5e1869970e783ae82b3a7a37237e1d19cae1530507484bc597b17e55ab7e367aa0834c7d329478c31933c", + "06a5708f3b476e287c51657f632fa076ddc289a1bfedb9773feb50f0c6a37d78037b42f73802d452b0871940d6b1f401ed9a3c8230890bb9f0aa", + "03d59bd46034b6bcf9d68a199e77cefd8cee462cafa251cabeff960b6b5ffb25bdd71263a8f4add795a8d7923110d5b8aee73d0b55b5d92798dbae1aa70227972879b170e346a215727adcdce8977473669dfdbdce07e763c72b7dd2267d0e708a2a0274b80f714524fc1eb53bce676fbd8a15c988163fe15ee123a452f80b" + }, + { /* i=2160 cDividendBits=2033 cDivisorBits=182 */ + "1d8e1945b7ebdd950e46b11ed12393368f8cfc9314e59a53907bf365239eaae25cb19e436f9b865776018f9d786b2d60b522ae36003a4d966e5d75f5e176d07d24f98bab1affb57d1c4f041606daa33406523fa03f40fd833a3d2c4985ffdcabdb28e8b85ebb073c361847778d4298cced817795a86c25240b3aa3aca76fa900a675495ebfe4a472c6bc158c79f0f17342edb0cd3145fc292c535e6e73b847e2c676c85ba2e3b4e8b0eee141814c326014055059f3dd00f10405584fb55809abdbc84027534eab2b5c58a73a6d0219280760cf1df2ee51ae9b83197b131b0ee109eb75af4c566d9b7d88a187916455a0b3f644ad24167334b451e87787de", + "15e299f7f2103f123187e5dfaf40488933165f3ce61b17", + "0159b7dbce911277b1718ad55549eb51add2ba7a12a2f81f54d43d39846c144fee7c7966b9387630e759424840f9f248d0a324fed70b41ab6d7bd522528b900f48b7a93c7064883c9e6abee071b62cc452086a3f13116ae78a64ad2790a298938cd0c39f497b039c4d9719e06eef49c1b0bd2f4f74efe5e23de9d75184f36bc42f610a0181325dca61b46fe2de5c556b7d0e54beb083e74ebf4395d8cc8956b9b5e08cbf34c835ec0541526eec4978afaf5fdb70aeea0cd2512f9747fb155164227baffa7c47416a08cbb8175ae4554f188779cec7a496c18163bfbd776aa58c3cbe02292f27e95d", + "06727a81bb4e59a2353d54922064892b75da9500b6c183" + }, + { /* i=2161 cDividendBits=1799 cDivisorBits=853 */ + "2981e062477f0b725beb24bd41f9b05279a2e556ea7f45c85e2e59271eef32efbea7a0968623674c673a71bf1f3901bdcbe4d3d39ef65a19c922a7a2ee7806357acdcbda191cd3ddc69faa962f55573a45c3ac57731d45d2019a27892a0f32d07af9d63406190ff2ca0204f5ff8ee76156c217c74b2aeb2f26bdc41b5eb9d91fc5c0d782143c16f8c31baf6a967ef6c6716035dc69470f4a0d96cb6420d423a6bd72c4968faedac68c804a0b90266c658f8a2233e47ed3263b557c2edce60dd57a16439c8748c53d620e18d1a97a8a2e5270c9cd83f7d47f0c54591555dabebce3", + "1e62ecbd671a9c0b8097be5c342b913efd4fea7c41a9c4cc91ee3135dd51c9c6d7a251ee431506cf608c361598185576b9feb0c3be33be0ec3a663d89a7e963c625daa36972c2c6ea3ed525e0b754da193ef8467e8da368cc2ca9b820d4431697937cd3f0490034d63d976", + "015db10a7a5939e0e7a3e3873ad85f272ebebc164ea9e360e64dda8f0508bdec73a3b7142f190c0ffa40366cf3972ccb5e43cdd09bab2d0a213bb28bbc43b6a8460548c8a2263543fd1b9eb97ea1697ee260206efab7b916b7657f86aab3d4a498da55c32dc7ade36108b7144b3dd0c112dd066d74d6c2", + "1dfd840b284a38215c6eef55bada5849ec8449059d52bfad4045a05125083d890def0d916cc39ef9953489ba3dff3a08876adbd8021985288bf89358701c3dc2c8221f67a073de65cd903398d0aef2db1e5c70395ff9d4bbcf5a5cde8ea46466f763b7d5b0a489f5d34d77" + }, + { /* i=2162 cDividendBits=292 cDivisorBits=64 */ + "040feeca7e61962a1430d1b55fdb6393bad21ad624a95544071f778d4f117b6da204e30ef6", + "cd255a5c3aa47cd2", + "0511b95e76ab807b3801eb68c773cd2aca4635a8cebe32384175366041", + "a6c5b92924049da4" + }, + { /* i=2163 cDividendBits=3146 cDivisorBits=52 */ + "01edd44f542bcf8eb29c0a3c211ba535971fe579d0e7469450a1c70704f2d0b04101a81c4367df5ef9130b18fd7d1c2b1edf6b2455772fc2f093e691676d355189243da26ad4c2377d0a93d46429dd527040084565e2c23c58b31be90b7c737f216ef043522becca48362fb84a6600584f928d426e7a963e5434dbd0a9872a07dc82ca0ff2ae839a76e51deaf968173f4276e6669c7cf37b000f9dcf57f126f5b8b734488815a7e1021add4506b9fa5812a33868e89ca0b70f939a66ef4368ebd77c31d203d7f955d1cf142aef3ed1260d37d737216ca0997bdcea1e7571aa9c4d9e1871136fd68c1f9f9d967227f5162c84eb7e82eafd2a7988172c4f9fcd75e61418d5957af208f4799540655db88cff03d09dd9ee6368d2e387f931aa2cdd5d989f1f3e910e385c0e3f27e3541e0db9405d4660d59a180029716ba746a47915f3b0305730e7d7c43653a9449c0bcd269ef612cc2b8dc6d22ee301e497b8721e885744d8212ab542c239f18046ee4380f9e5c7b58a451af3078eebef2bcd91eff2053bce3e8ad6f4f9", + "0e63c08ed222b3", + "22517f9f2e17daa7ab2182f0e6b0d538e18b059e204eac920bf6db0e845bed2ecf9c8a911582f6ae94291a952233a3e35a592efc18f2c4f61679c692f2db27059c935e9a37546b6a99cbaefe4c40b54d6955207b3a69c15a39616788e6ae3a33e067ea5e77d0c5f52c3a0429234e79b5b9950c7bcae25cd5d66b6986317b4a141d0f514f947ca1bc2d04c6e4dcbc0dda2232f478f4b924fbe3dd76eb438a49cfc028b79b23f46cd30ec46109b74f7b00d1b5c48c370b71d5fdfffcb0db1bc6a506a6c84229b7cca82a0af99647d62d8f97fc13206fb8fd0964cdf50bec9985ea09491f350b64373fd5f787025c75c2e032d21d83681147301b5c9ef16ee354eff38ebf4feb1fc6ed9b8ce489634bb085d054b896838969d51123edb4f0015f5f3d5c3d9a8de7e8098ca1ad9ea844db4391d97968b1ec32d12bc6860304bc2eef46594fbe36807388236aabbd998ead49a1180bc350357029bcab00a8df22a1f7dc9580d2282a590d979250268c9bed060fdf2053c1858b2fb0659e1fe4f6cc30896e94", + "01e7f38ca6fb7d" + }, + { /* i=2164 cDividendBits=2775 cDivisorBits=2666 */ + "64fee722e17cb97e3b00ddb7b5f687724692bfbb4beb4054610fb8322fd4768183931b4d9716cef50f195eb5f380ab63594e42bbaee3b323f0eb5379f749580afe1c2e71e5e699d594e9eddca0a36099a75ac4b4350ee58ddd5a664d7c37b6485589ea7b78c1a3ddd4d1f1a0c17056277108bac1871a9828c09fd4acea6d775bf5ba6245bc8ef68dcd099cefae9f4a8c7f92236410c5d46caed2c4e698f21b1bc98ff0742a445992c94d0921c750dc719cc8eb0d2fb7e2b807bfcfc88a0fd38b420c14a89623822a389d61f8444189c59d0dfb7492b3584855f06a38dd90284ab1788e043a25f95f4773394fee8df95173026c96e5dd432ab742bef6465752d3817e7ed0161f7eafe431d39cfbb02581a10b93349e8fda110278b31468dfcdb57dbeca7d8edda3055eb6ae3d60c3ffa7b72cd202d2aef37ebf4bb531b1d04f29f93a13efe3074188f5ef1f8279187400e8bbec21816ba1ba6837fd", + "02753a3bcc414559cf97cd92b295ce671168eeb3aad9953bfee39810dd9e7dd3944f5a7804612458c69e22579328256c8f86bdc29814ad50bc127b9b277c3262dd7ba8ea595ea23661123da5b823aaca9633193240138d25709fd3402be6097b0bc89a2d3618da9e40b7df361d3a1b1c825817613e72509e2df134960dc16cdcfd7c3b4fb3c793e5969b31f1dcd48a7458236fe5627f200d1c7a9138c78c8f8749a315f30f8f3d7447aec1591deb1722b20dc3d0d3a29174df337a38c7ee1654b12dc1d740f749eba79ad3d4da2fa5260ca83f51b6f88b3f97be0912c275b98df95d8c7919f5f3873dd6a978887beadd5ecb725700d15b8efe6aa65b5b40e8f4827f4188d294ed7ec9248534d8ce4e722b3f3d15b8c07ca3c6e6e3379bebe09484fe88c968a0033d30c15d431ad1d631d5bd318bcc870f4974d286b45e5d053f3114ab1ebaa1344e146893fa83e6", + "2917049bc6bdb847bd47cbe60b72", + "83b3cd85e91539ef629af0399a8eca4482558dc00ddc4fe4102f7bc61058dd05c20cb74ddc3acd67585a26da2880eb6678902831eab73a50630f36707d819d6edc48663fe179258817b2380e130f32eed89b518aff167b3ab856a268c9e0378dfd6a994623e396f5736c3005f07459d79a5d2c18d204f25acb8cfa30a5836b8d6c0f1c4d91f4172bb20369599ac88e2f60da30c831a35cbb6264d6d3d509ba7ce6306809e70cfcb8d3a30de76147e204864c68003c3f4f0a51f45c37bda002c6c8b21d1678faf0231a5ad179b353e6528fabb4d2de141ce81d5003636b4c927183e880357840bc25c6f1f7bbb33e39a488698ed6af4d0e67a1c351929d64efa3e69af75c6e983bfd5b6892aa399fff82bf89df2df4967aaa42d9c1d4b27ad2e2fa212ed5633f7dc31457e91fa5c05bd491eb8d09ef707b4b5fdba0bce4c9a8b19589968e3755e9da402e8a9991" + }, + { /* i=2165 cDividendBits=3266 cDivisorBits=1284 */ + "812dbea357ae17b4a80ff067b18301fbabe6eea2656f7a8284e0c829e856ce2fd05fde061cf3654292473f9c87e002889457b17fd7669a8a99ea9f3a08489d1e48d343050a0335d2e2a4caf49420348d465d0fb64aa88ba607bfef0a6f499ca07d6b0d7e575af31bcf452cf73735d671723385690f3b7df146819389fec4042597d44d182627954d6b913dfb70659084ae82e82a8ee5c5029a55774ddba299cabdc21ef2ad6dacf6336d530a16f2c6330c3f7e64c4e1485f169fa77abc560f9897fad656c7d1995030edee1b71fc4b998d79bbb0a1672faebc4df24ed8682ab7675d7c9ce678eca46ece8b9a9a518c1f09502782d069342b16b0707d597ab3137237816b3063d8b4e1eb8b53a563412edde5ec065ac61c4c8de7cc41ef543c3c7179e963e348962bd6f85b6e9ebb97324bb849aa04306e7238ecd116c714b5817ad591c979a2b99106dcb6302aae10ca94c9d95024f276add1c4ee3486e2509e2f02c771e1b37957dfb021ac5c32f907fcba0ab7fa48632643bdbb5a9aa3a52e687870340e384fddb11d8e9ceade894628c306f9abbdf2fc", + "0636208062de75b2376517536ef66f057547094cbcf6c10fb3d1d60be1b8dd1afb32857bd3282a50218f162e4518118905cd51a647385ed09ac8401ff6813621ea089f9746f0526f924d8ec1612fd30b44d88b35ccb7149f3fa23f07b5ae2df4325da1bc0ba4e8b1c02f1d98cae7b290b96decb159b254ec2cc70f1757056ec484107f7c47f2dfebda3a80aafb3823b72796e62e964af871ff34aacc92c0246183", + "14cc03030c2cfcdc2e03f4c9a7df6229d8ddb7493f311e8ef8886e7d3aca1f992c00345a40f72e9cb97f51e23a55b0b53d4ddd0b1180e1fc325f453bdf6717495165050bf23111c1d69c374cf5a7cdfb0ccbd1c1dd4b705b240b3bfaff20ed91aa96d4c0113b6662ef987e58ffa25a57ee7a176ab867804d018e8f8cc3f28ec64029afef7fbbfb40e27f2c8286f0858a5294498eff2260d69904f796a16ef56cfc655e8036b474ffb3cb9a258e61701daed216c38cdf496764561a2b0a8c04cac1dd1d976ce2e8fce5f7be9d46a178d84d11d1ce7fce03a9a26481121afe8940e1be52b2e42c66a9ed267064ba07f1ac76fb27f92fd3c9ed", + "0517c15fd77dc691fb305b1b5cb601607c2b8eb69ce71d1f1610051c1bb9f731677d2a9ec3680c42230dc81109c0bffff775a78ea3fdacbe565b1e99281648a9ca6769587936ba5a784dc9380ce4ce1eabe94fb5d30e3cb4b6a51d1adadb105e7bc4b26a8650650a366807ac2ea45419cc322787e9d17eb472c89c8ad1d66e549df29c75a7a778d3a824b3a98fed5c88d2fb023466f8c685ae521a90f2cd86d1b5" + }, + { /* i=2166 cDividendBits=2377 cDivisorBits=564 */ + "e02b21fcc3fbe28b20f53377594604f4155cf6090db01fe9b862ea3798c21821ff024f8d408df3d1c0f5bd11e0af2ad7ed189a4aadc0b4213dc9a54cae5768b5648436da0dba25b5081e9a6f45b9bd2b0e424bca6d80c733b441371166e2125a6077ebfe744c5a1761ad649ee7a245416ce513e69f45213b460b1fc6b07579eea9348372843305b75f8dfa2e35657d816956c863fd842692330b06df546dae993bac94d92127907655a828f78aef723f0f4f732b4241b97aa7108950799728861426219bf7f82d3eef59c22f0bb277316e817451eff30671e322f842f45ced76135f9e71b8f57426e152c1a61e62ec4826cc213ddca060049860df276107614ae21af0c61a5e322cd01aac3cea4392e021d6d0d89c5810c6a8e41d7317237748ef49b40a1d21c15ef6", + "0d2591fbf313548744ec9ea5fc7cdb0bacf4047e389f4267b63294ba9ed37822ae33614dd65cb378eb5eace49bfc1b299d9f0f739a6ae95cb29741e1b24d4ee4dad2688d78f1d1", + "110d1dce281cb116bfd69496f7c92c7fefd7ae3a9ab99075f1653ad27bd00a3c201bb83892c4fc1d178d0968d1f883281b3186c8a7d696a1dc53c8a3f5edd950b47de30acd9d53b8aacf6428b933bd64bc78117c0ed0966fef6d91130159ad5e8f6d532c7448f7033e1c09fc6bdd87699f378724782b0ca6ad73775742c742e4b4f8c977711417af0d3331b291841bc6333bd3fc0e939f1a4f4c50666c267b941afabb63e659fa3dc72844c74b3343556422867ec652217998439dbccf0014b4a8f07bbef94d118ddd86a82832f335cd6587b5bc203b22e7d9f960bd7c372ce98cb9a2", + "0c2f7e8ea60f6e46c28a8e10997bb6e741d3cace976cff160fdddb2032f275a0ea778ce3ad18866b05349d7dcb6786b6da38f643ec3aeaf800d613abb49f9a60436c8fbd2c4fb4" + }, + { /* i=2167 cDividendBits=2935 cDivisorBits=1957 */ + "47416b9008763479e9aff4528de1ef97e2100d9ef519c89f19669102eaf0a22ab77d5ec169d0726556fea1715cd7b5bd65ec0ea731e29395fca145019ee3b35d950a4813800a7beb1bf730a992eb14ca731dd3e7c4b7d8ba922994643eae1f8841658feb11b2627ee5bec48157daf0dd400fa2aecccacce722e4e28ac63c2e1507df175a6dff9d251db6f862c18f1a8e5a85e5bbf0b08869d4e301dfc207d2e54f4f2a6f4ab17b8a9c34556833f03a61775bc760da9d19d7440bbc713b8f2b6a49fa38a41067095fb27f6727ef777782498d3a7c1e872bb3021bd8f097f63ca21e776328abb742d25d077e024a56ce561873e3d056c0d5cf5309ec0f29a91468b8696a3d551e39964fbfc04203c7eac405d03e20e0c46558597356528089eacfa6a64a55a72630e6065285553c6478863f7c4261c1d4441321aa7a0dd409d060fc85378b6c3fc21c4099f762a47e4636067aab0f7b1b4e125171befdb1d59f2cff4b45c5d6e5c4d21a13f35e3f39a4", + "03386ccf038fafe018b0578f16bd132b6923ad6466e3251b080cb1c90b5c0af127ddfb3ff79fe085dde7fd540cbc86f06ccdf1b01c93eed8d930476e8f36346494e29c2108a29a31e434b4e3e3683b90d7428172106c5f74c73674597176c75f320dbeb9f06f540003d82bd2f29b6570f23d33b99808f6e9bdc732748b0208e1716c44cc158f7d35512049f295f66e0e42d9590f4ae09aa5030ecc1c388398336c6ab0d82446b15dcd193b1da30d0606ab5bd5351abfab02c62b04b4e350968de58e6dbfeb7db65042c4ed00e9893617164eb42828927632193c1a477ce132646a8944516b2b9be405297b00714d7b4dce4c8578c6", + "162050c9ca513d1914249d7357a3c840869b03f728121c6e7254c7582245662b091823a5ef8cc8fee8ad4b750eb685c52c31f05729c201025089155deef6d84390e8ef8ef63172084dc7828fe2613e2d80c01785ee44748b1cdbb984518d1dad4845989d98bb6957529100a116b68fd321f3fa34b710e5918fa4f5", + "e907d480bc52bce2727a0351dae7dfb559cd6ba78d7cec809efbb7dea01b8725691e5e67f69b6edce28ce854a23671666b72200f6a41ddf991c6f1071b4ee05ffb76f4a1556ff41047ccae5c618f7b46fae94ab106c43f1a59af666c65b775f812098cee20028da608ed1756e5f1335944b7bd3b40a900973187cb967aa5c8026c244db01569736bed1517fc1f5c5d99c74c7f9917ae0e36a775240cd2721a91a8458d2ace134145ed02d2aac98d19bd4a876334bdcaf5d3f835fb45c447844d478a88d9611ddce54937ea87962f4fa000e40c104bef72fb3429afb8ca21285638e44760d8321b3520fa93200530b36a0489cc26" + }, + { /* i=2168 cDividendBits=3807 cDivisorBits=2659 */ + "6899fe5a2b6e3f04e63d0a66497fcfba2933adf9050dbecd42bf6d0eaa9568a66f894d160b6ff04792921916538d4aa8b4bde88a2321d2443b9090bbfd03df175a4e99e2d494314289597e86f3fa29c658bdb58139441cd06faeade8d987a74638aa822c71067a3b698842063b35a1a25890fbacf8fb97319846a88fc5e29f9ca02cc06bf50d6f57139fd62cb6d71f9410cc0427da5800e0b235f8f421929776f9479e316748154fbf56615e85e8442a2dce45c39235635ef75c09919b572e9bd96b08d377a7ffcd2a95023b583f7aaf199b5d0fb5fb7eef2fcb088e0f27cc5d4218fa78d3492219b78b0b68e749dacf9e5d5f6f831ddd56c83838d3abe6ed0baa0863679602ed82a3a31d96968631babd0068d43680403acde693bf7d4cbeab3e83281439521bbc70eaad6cf8548b6bc03bbaa3f8b83b20968283135d06fc29e047179ff82437653695edecb71097cebc3646e29c84bad0b6fd1fa76995004ced96350627c56383fc2fe57ad007a80edf5d6107f4e00de8fbb2f609e4323f45b25bd301a19de47bec2e2ab1625eaa19adf551ac90cc0e136aad774e35e4a5020e6c6d6e99cf6341f4bfb3329170a8497c75a2b9e0628d186c1425e10901aa6f9008055915940b6928bff5f9d1b7e971b9b668f15da4d634f477dec4", + "017b561eaa6565efaa2422a3fabd2282ea8f464c582c4b6db7e522f6712e76c63627396e40b29c541474dea12f49275d6beda281246b836637a3aa0f9cdc8239548e12b5dce5a8d5a1424055fa2e08a4aac2ecc1257f66c7528659adcd882b1c4a64b8177895d7fd2c5f54a04bda35a178536c9d5c0259b21dc7387f0d09208830c81f574c3d80fc8c40fa7f12a1572a34650e6a03c2dd8b21a20645de54805c39e2d17e61d3171e86fef02efae3c7dba5ff72b058915da0b45209757979064474b4aaba1f46f577d0c03a64e13bc789ba24e8e3f38430300a3f13b9c0a801211b800fc46e531169d5aaf8d0810bf1f28c93f6c6e126bfd09049418a638b5d6e8b11cae3ebc6ac84b974ca522a815c3e94e4fc0e5f86543c0a08bb9b2fc42d90c3b81b62186de67f61089874815a8976555505e8c06c84d6f852416f7016938bd18515ab592134c87fe65a91ec", + "4697783d7e674070407d716b00a0c163a91302714769f50526bf5aa9f9d56cd0057d9d762933c4e1affc0dc3795ffe71c13b87586d0b7910613b48277d03a4d2f9739093ed110c6ea34665628dbee1101d0508150108777fdbf672b4f76574f2d613ea04aa61a0bb074f99daf81c945b16e42c3d3ab6e79d92ea8eb3c1abafec0dff37f8e8c93def59f438fdbd956456", + "012be01e498b4ba4437f62baefa60de09001aab179171df176800a148c3ab5130ca7b92f1885c3f18f57f65fe083d12512d656b81ab0147c89139e73bd34e73449548914a7006b0c21f44aa29c601d7d1b9960cfb67854ec983c1f0f7fe58d1856aaf59cc6ad1ce2c35b9351b68ba44edc5fcf01a25248adadc2e9e51cdd52b456fa8cc2e881bad5a4fa64b163e6155c9e278e9e806eca281cf8b79c396499afc9b7470967f21ff99d6e2f136a9db40eeb1d39985e9267954c20bcbcaf26ddf4195739ec2df6fb7335023b3d647b50f4e5011b9d95debf97a87b3347e50d6a0405caf9934c62ea28946523e95e91cd1215b159778797c1bd7a0abd5a18f1c1a00e4de39ac8e99a21f419a3d7c6fabaf58e5510470d7f7d5cf464bc93a2e92d439d1e327758c72b12e35e5a4131fea62e9f9ecd8a1d7ebc55cb8ea28c261b8a22520179191bdfb7be9406aea97c" + }, + { /* i=2169 cDividendBits=2199 cDivisorBits=2026 */ + "14c485fd92cd2d292fac672f8431bd4750bc99943a90d3b26234006465ce5858721f700a8c9f9f9a70fc49e8cb5aa5f9e9657abdf1a0adcc9ac6667673f2743bb1eafa94f4700d6c3609067eaa57f6dda8650ad9c33febffcd9c0d631d733a28c727bf0167a4c2090655a6758ebacc31344f19435bfe6f9cec8dcabc6ab51da6f4d2e6374b17237290d41dea3433c09118d13f49e9cd59dfbb1b78f1b9dd5ce63f944c772cb7e7b9770096e682efb3f7773de8008d6ae21fb92158d0dd6bec18905dcae46f6af408fca16e8bb0593eda7260a415c7f1f5e05738da9d189a548103f35ece366480630a7bf387246ffc004b11617cc86a9e3ffe23a37185463b8a6b3dc022d3ea0805ddb393271925a4f4572cde", + "01a60e7163cb23efea3dfe5e8aca1090509e657386308a3b89bba7abea282536ebec974e589c0e650c369218374dd216aaa0b5fd47e89b80478c9a20f351fbe1fca668358c64362d9508d8cd35a3f1ac33705fc09c13abe4321413f3b44f94246212660b315f93f7d7ecb445ebe4d27805d4fbd590881bca5a667dedf37b6e997ff804190b038b8e0fa2c18f8cadfa16744c04695665e52042907974d60dedacb5d6ee10d99758556b35db3f08d771fc4cb3c14ad52392a61188f11cd56b5edae60fdf32bce43d30da079ea2204f705b2e0ec661b62e34e39ad7763b64da03a5b3eee80a6e3735028411e03feca94720f75f46e580df035dadaa494d7988", + "0c98c2286971cbe6184344fadb13f75c5baacdf3f4e6", + "6f75c3aab261c671bb3e3f75db615a9cc2f848933c648200d43584ca9c92a66c95708ccd7591dd4ff7996b0d8706c3e1c9876ab9f39debafebbd4c0d373d154c08f15dd9bd4a0479d84157f5acbd3ad7c991fdc96b5ebdcd7e494c6ea01dcd89e43ea1d4bdae38f6ddd1f44bb75210b5963c8f1adb96d2dd4151489fd2bfc86dccb1ce4fa72c84bf692456a1101cc88162c76b64a5b345168d7c77e3c7d947afbbcc97b3fdf9107b0ef1398fd0b59420c8d80aeffdd1015db30e04fbf70426553ad7eb3d25fc66f0c13d9ed1abcdd133e799fa8d8cdfc93433bc6c10408532fc6354f2eb946c3e9f349223a7b4dc790b69e610d5ae858c259cfcce5cae" + }, + { /* i=2170 cDividendBits=3805 cDivisorBits=2905 */ + "0b215c26d9a83b0cf74fba1bc93848d9b98fbd9b2138dd5b8f1c660cb4ff21111188a93d7a4931cd54d5fb7bc8397ee682537bbbcee3370373c3614b16b494f463f323b75109a30f8f6393f0a98ce2f814d3b53e201de2daf38e04df4b2e9add5f610ad39c4039ffab616a3c38a1f0573a20ee0acb139e44a555e8628dcc3d4406db082ef4ccbd67b28e5b5efc786fcd1994e1cb089d4ec73529815a7b24d44cd49662ea99b066ce3f5b99b28b63cbe58c789b0b7f1ae46da5565dd344c125ff7481a05678e4171b1fd3af822b5214ed76f3f1aff4fb82d54fd148248bd2a4a0a8f2aa91de2e4e2717da3453ac4bebef3aaee0005f192b49617a9c94141d2ee205a956a7ba673ea9e5e184c1c66bcdbdf07308fd234fda5630c3538ff0b651d95d7f7b8c66b3bad736edc7ee96603da4a8820db5288891abee7fec03b645499b72fe4275176e8eb37bc47a7a05a9df2114a56c2f40023fca8278a6feffa6ea482342d273c12b319200cc060bb830278537c7ac8091e455919a2772bed3a78d424d441510525dbf61a971aea0d2bfc96a0b9a3acbacf67c1aa01f19502cc15d0f0c4cc221da895e366c8343a535f714ad70161007c3bfd228e54a4f9851c8ee952a0ae4c25fd2f4d96db1daf971c0a574f4d56eadec14d0368d862ca9", + "ed7e07c457eb4a03ac18507d6f5d1c62d63f50b95e69c11cb0a00bc7fa41a96e80b6647b9cb62a81be4f203157d6d8b6362f6479a599a300d153e5d7538d73fcd46ad93c96308f18e2c575667f5e4e47b5db7640b7bfe67161f58540a9b0b4ff8b920139791fad5bc970ba2f45639f443eefc85172a8fcbc5802e857a7fe6d04a710ca7a8895c12d5658572b8650ce74344bbab5d202cf10b5e3045a6b91361313f0e4bbfb7d941c39221c7f250f9eca14b18f902d49a245835d3ff9f723c94e3b82e4d3dd577d03414e9c8a02e3c73f94c83bc73fb42dd85fb5362f562838cb178d114b8c0e9abd413c6214400d062276fd3baae90a5316b8de92abe2606a7d2551b7d22c5d1c879886b2442be263a1e8b46b870f442d9276f373042c55d7d1672813f627c0cc7222226852abfcce227253851dd1cb011d4e17c5ad0fa4d0fbdc2b537019291803ca8fec6912b185ef7b4e19230aa652a012180bbd6a79bd5bc11b495f151b8d7161d35f", + "0bff68dc6977049d31d98feea1057bf18dce918b57728e25451bf9722bc7d40847e28d9b5b3e95969b10cb2fb6f0423c740ad1a5f9a1beb83a47e68cc4e9756b4821979d00f4656406033cf62cd57cda7dc518d0378d50f9bec73ba60509da9eea15b9cf96fe265ba4e0fc22350b0bc2d3", + "7340c09b549411bc7d20824e5cc041ccbc8e69af0a53c215ba21d790357e290a244cd374f7ecb4581330f6530154f4f4a47f7b916d256b6edec51414f07b341c25c4aa3d3a8088086129f40c191c5b5d8fb72d13a8430879be6215a15676272b0f4822d9b8f295bcbf894ea40d4a44a94e334e801aaf4fc6ea0ab6ad4c84c3dbb591052fd883b47016914c1c066855f9e03f73af9a01fae819ae6cddadb9762a8aa33916f12db17710b34a3779eea2e62273628c924e8ad3cbcd810c6278aa90b582105e1b475492f67af03c12eeaa14f7f94d5dffe567edf6f816cc4b1da4d14507a6695965fc86522be82dc1a523ad8df0a40c2194f41c746808466ace7ee956fcd94edf9518341da84a3dc8ba7f88cc370a8bae3952d7c5d74e73e4cd5613f1036707cb458cbfedf3ff77d7d23aaff87ec6ab4813c00b7c67a94fd69184e76a9b123306e27e848b6071c865efb008de1ff2de13f5ce7271d9e5a4f09edb4060789ca30376c1cda1f75c" + }, + { /* i=2171 cDividendBits=2066 cDivisorBits=671 */ + "df9b613dec0b98c184085d5e2ed9a0cf28767ccda8eef52a478ee10d0c56a5f124d051aa53a23024ac986f7c25e1f9ca7992b8c711c0b0434813fafe93ecaf96f83bdb8da3c6b890b1ecdf3ff517ad8a73dd151641625a9b81a0e5f396d535818260e92650c30a8491538ab90f79f1cee9dec93c75c13dfa5091c333b55029db5392d78bb56f68d130fcd824c4594594c5fe540e60cff31b9d16aef832fe237c971440541678a0172dd084bc8d9a0fa9e6a38689c494b7a622a7f5be32da1fe9032c8fe7e7a8a37225692965e2b76b7abf4c322273bc8f89e67b6095ae61971d0ead93a88f0cfe4781fda2fa3980268cccfdc44efc2bd2fb37406f306398223ae6a2", + "22312fc40905dc58fabc54fc346bf45ce1afb2d68a88409d4d1dc348c53c7e8eca8f25f181c038e6dac6584a345c08e9a7c02aeea3d4825af93504c6a220780b5e4b1172250b1b20916eaa2a1e7ee6e843b19833", + "068a2b04c47d1ebf9318dc483262d96d84dcd80d9351a5f00f92335c5370115cd2051b0bf12c96092d159217eb3bfef320a002b7a5109a8e68a6938242d393ef7bd336abd4887489813fc794a7085cc8ac8f15849a2c6d28092eccc2a5a38d2e2fa2b4d12d97570233e2cf6f9eaae3b2d7d3b5ca52d1a0dce54e02f8a62573a06f5fb5e8df490cc231e516c73824e12a08d175a2ade8f3d14ee5789399cae7e23cb255deb8389b3db135888b227e86", + "6baf40d0115c0a92b23baf35509e042afaadf0ba1cf91c2b1548ba28205a931e413948cacdac56b229f2f1663decc9a4410334399f828baf79769540955063f90cdc8480b5a2ffd6bb46a01e645f61629621f0" + }, + { /* i=2172 cDividendBits=2316 cDivisorBits=1859 */ + "0cdbe8abe9ff8b46246f68ace007c53ec7633db3bd599cb47460a175bee5421227723231825e42e16af86c3fd64d90ff4969f255990cd9a0710e9b5740ff594acd7c07ee9f8ce68f9d606f386020626d54279b1c6be1ce13e24953a96281a3eb0c4404068785b8465eb5749dfd5d714e6e56640d4606183c9ee5ab3f81f56e195dccc208d51530b6274c31488edb3cfe2850de943dc91362d2ca30ca5e86f43198f5e3cef5967eea3b9cf68085f7dafd99d98f92bdb78a47f52079c4dc6ae8ed48715f31f8d3d84b477a02906d9753a57c7bec5a384177c652ce4435de8efcc4ed7f7c13a0a85cf055f4e840eaeda3a0a644dc7b20aeb107a22aade3ff6fa4b9f8846a16ebbfccedb174a26d4c78dcf4e2bf830a082f8204d1356dbb8a83269e4546", + "025fc58bb7906e34296cfef426bb5213cd024d20a2a93d6ecb5125c6dec2895f2f9781105687290463608e096dea323d7ba9328444eb5e7526f1197f96b497861fd07dc0f00223b33ef2b1a4ff1932f086040227ede2653bfe9cad9e8431f83d16b60003cf539d13ce6ee11c228be511e7a81cdd208a1f82847619625362847ad1ce6e8a4f25715abefd16210493f4b7673e0f7d1db514f843d25754a2c85cfd98ceac40965b126ea33e6c6178e39dd40675e710caec4f2b12065d2cd87a1f320f2e19d027e3b81f6ba80f7316a987843cf5917f5984cae17a7203a2d286bdc6c2195b922e71c28ee0", + "056a966f15c17077ed667f72dc73d21295eb3c32f68ddb13975bd08b5a02bd34fe50c95d61f1490cd810f8a30aedea7cbef7484e1b607208b619", + "01969b84d59d5f4f52e0bf5010951dbe50d5f7e4761798735c7024dcd38ce38e16c8e7e762169b8133c809751a9160fe9da16aec0908690387044775c6fb412853150a5c05c243f11a1bf98f2e1f37538a51a8847094f12bef1ae22e9d87fac8db36f758e239a16c88a3c3e1af3b1d0a73491b699698e245196635a3ec481ff1a6ba21176ae1f0eaa502e3563cc5e3a72ec1a9558b3ae706daa737a98d727727104e3ae97693cd47d7cfc00a412fc3f376ce302dcd47f88f83077cdad0b443dc0d03a6aa119d712f8fb4ba0ee3b924fcc4c11174c69e61246eaf4bc776e6a9a543e379d965820b1166" + }, + { /* i=2173 cDividendBits=120 cDivisorBits=37 */ + "1d3783bcd518b7739bd87fce862262", + "12f7b77116", + "018a5488af63108775f73e", + "0c88ee850e" + }, + { /* i=2174 cDividendBits=733 cDivisorBits=74 */ + "02a7413bd36087d056b42d4821bcf1935981a621a09261bd32aff56b20f079171729dc8a1fa5264ca57d70c07ae7956a45017a84857f5a0dfac85f157af616e5ee32633e2ec5a63489918082af21e3d48d02332954139447a188c615", + "69eb67d73f9dbf8195", + "0669b5ddc1424f64911479173a7db601a6dd91145aa1584fdf2a1353afee9308c1c259568efd4d93c145ea0483922c7287f07b7e4d8dc74f1835c37c55fd561d0426d9f22f36329cfd24a6abd5289d5c8a17e4", + "2b6f9a8c448802fa61" + }, + { /* i=2175 cDividendBits=2901 cDivisorBits=1034 */ + "19b4b1cb45131958d49ed2a7a61ea452acd03d1d6371291fc1eaae9ce0c9dd961c12f3ce85ab418232f4cee0fd5bc7d83e95323af5ede2cfa6976132dd56c7ce4daa080395fdf6d28d9000826e94caedb59b498ee051169ff34b66c9aa474082e350b554ec016667072815c39c389e6aa7392762d83e89e3c18792c6df063d1c886401763113320f6f9f9a2298cce93cbd894d7f6866a13fd265e651d098b582960a017c2405208bc63fab8818291c0edfe4b43ca75b199bb37d75520f0b5a616d174db8b1a58cc5545037d56d8fbb2c3641dabbf8051c81b06a55ed549d539729827a0b2f9521871f07241b77e4ee3d4252d52b0d8ff175fd8f5007b5e01c657589eb5a63f20a3bb072fc22bb094693befeec222ec10a63a7f549ae73c09a2d4241a01774d9e077b5610d313e38d7f6e6f845848f2afbcfe6626b53b38d9850ab6338f865628075de06de81906f5da4a00585368185e56ccd886dbaa4dea91ec1e7fe2bfe28c63f91c723", + "025cbba5266abdc50aecedb5922e6486448873c2a55d364619b4b0a1fc53404ec032fcabc7486c3a37e9cfb34fe0d02e8343f52167fede3be52ab483213a3649a5933b6788727c53fc2acdca89afecac28313a4a0233a3765c217671d7c9d8936231ffde34a155e3a39f78243ae94ddebbb8db605b9001f961467f5c8f36a8d6b31f", + "0ae1c9ae88484aafec72b5b238dd2c1e59758ac4f3964d0f16db31d1826836771b02de7c88589eb3040b9f40c64c23e4e816a82ca29a501a6372f7d256646e6c235800d24459116e4df98107f76586fa89f62580cff8607533add4ada333e3603fd15ddfc4fd41dbfffcd302f2893f527678f0e2718347ff0cbfd70b3ce53d7417c94cd1604b69251f9441a687a30cce768ce411fc53357e71e56c0849d5d7355cb7466fdaf1d89044448a1a0dde06ad56d9df52e9273b269211738e6d5e64d9eca4d9c02e4a66d46088a57195fe954bc15bad21fd20dd33a42a89eac0af9af785197e800ec9744cde97", + "7951fd0c41131fe1a4a3c6fbe8bb7c5574547142832228f6055dce078cc4c0d62a7abbc86e3e72132a40c44ca822507a901c330bca3889eb33e6b35a61592024799fa517c7b02131b08833b7426ec4bbe2f401b41cdc438287e5a7660bd535a2f1ea8b8a7dfd487bf3d66146995409289d7782c9a8cccb84e75f9a8ae040653dda" + }, + { /* i=2176 cDividendBits=2199 cDivisorBits=969 */ + "10900b6c685687acc9ea9fb3a73fce94a202450aa78caeb4ee679eb84afad5ae6840aa9980a457d06c8be4177790884759296ca45f5bd40ec80037b7258161794c43d8dfc8f7502855aac9fa668e49e0934841569bfd121e0736f8d641eaf1f157c126473979eb8ae09fbd8c85bad5edc06469278af52c150e630fabdc873f5001bf114384b584afde9878ee311417fb862190e3f9373f3310e8b83ba26a53e74dc15c05b660e0754c3af93cf78cb2722932ea3e09ad23bb61849da1dfa73d660def3712c9900dfe956e086cd4e09871d91c36add6f6ebd2712e3d23875a443226826db124ef8b27d1c556efa78c9ee9dc75025679f238c0884c84abef3313ccbc2010a9ef24bf5a505cf3f999451abebc22e1", + "75eb7f3eb7bbe6f6adb13c22362f9f4e42f3f5c67a4b3a0ae65ae394b33c7bc932cad0ca088980fc2b2773e4ce42d6367ea3b333db6f970058a88204b8a77b7e2de6375c92829d4b3f1a47341acdb8d2d68548b95bc35cdd2e286bebd9f455a13c6dd60b72c0dc5147034cd3db8ad4f2d53537c4c1cd2daa87", + "23f4fd10f76b9acab8f59aacbf000d2576702bd65f8c6794836a6740b2c8786c10322392b0682175f811f44fa6db1441d22a5ccbb05f8aa94a4acc2e46eda7d0d76ce7861840ae18f2cd37cea24b24cb69d91e4ffd86c0a388d4cd20e4eb902b855cdaa99fd0b6ef69394165c23edfc8573e2852d64132c87a631e1d9baf9da65a3df110bb6c874dd4bd88d188bbe9739ccc6d31cae3cf0a45f2", + "45aebd482749ead4069118e8594e11807cbdc260d992ff3a072553a6c9b1cf0fa45962bd243ba6e1e99abd8f6d71d2d8e82e2d0e1106a26111c26ebc252aff514069d872bc8be08584036d8585f4da04b10281cd188ef2001de2132b37bafcc2574085b3e786c853cb6728b0d2a816e91d277b5d38a8548c43" + }, + { /* i=2177 cDividendBits=2162 cDivisorBits=1701 */ + "d1c42ceb3fa846faeaf1e51f9b1bb6c168d9d654a51d15f53e006a74bb498a1b39a3b6922f7612d234138751bab5a13c66c2b40d4e46a366735ee75af6dbb0f39a45e4f635cf0ccb2eba3e879c31b83b3c1bac5a7930a754e634f1ee7b933016310e8337135d0ba330b905e9d3092a171958e9d320e24a83e8f9e3a7f3638539cb51618db237aefbb5d5ee224af7a12e4f5ec415876dadb0551c50a98ba687657fbebdf300305d213bae393e6896b345487d1435138a8c9dcc058016e688b5a6d0d48c8eb0f0428857c8cf55a3cfde358fec86103910b9e8543e41fc8703f41215a37e83e49bf97f142ecc06dfedb03e0933a2f6c1552067ab5aca4d4b1afdd5b52fdefa12c3973a6773b59c0cd7", + "134a9326ef78276aecd9c17203b67893009fc7829ec2cd7278319d0082e9add71d166fd334ffdf66305f401b9f9bdfa1f76d9732f51e3ac0065fe9f59f032d88e554250afba0d7054e90395a31dffa6a0731ffd96de758e9cc7c6bfce8b08c8094a5b9aff9dac44958e33fbe85b1e69cc69451a44c16a0d9ba3f5b52ee982f3dba06147a9a4e1539321996ec3341d197c95645c1b8bc8347dbf99fe0a7ed81f98b287844f0222f7ab84de9107d75cfcf93a1028b5c774e80a989e4acadb74a4f8e31f82115cbbe0af7a98e94af84715ae2247b24fc", + "0adfa56c2377567a57cac4429f6d15ae6dec69449bfbdcb8e9e5c307556410cc04138d72999cfe60da176cabaeb317faae938cb03853cbddf3d3", + "0f1f5e231be8966ee9446900379d3423135a6189be20064c827d5fc1bdaa3c8bc8be3c9cdedec264b84e4044ef00e461a3828ef01eb20202d1a8eca11aca39c37c4d4a88255bbfb98d2a834ef655212dfd1e2e3f3a9d6b894568da27324d845c2660acb56c9ccab12828616b0b5d605fc952084f1316f2f225939f40c49e509d08624c3960245441934ba9b08135c1e653ebbd425cdf89f71df1753e38f925dfa9027bd7da368fbb44f60bc512618bc3cf4984a3fe1c9065850574ea8300b068509239c92d0d20c62cf1c7d1910b1c9417fe755d23" + }, + { /* i=2178 cDividendBits=3513 cDivisorBits=1624 */ + "01d4f9d2ba1a38cdef1bb91e5374554d27732cd86756e481019bd49f8888083a7afa6799f3c5603c3416908943ce19ab3e92275244722fad9e0dc4ab5947eb467729e7f6dd6ebc6c49d49b7dd469e3fdbf035d63c4ef6b61bc47875c0522adc38431a4b959c34f6682013900afc0704959f718cc827ba739f5911b49954e9b83ec34dbba8f538bf157f30df4e481851388d1324b301cc235c5a42151bbbf8fa9e89195255e8b07d30718677223c1951881449fc7374f0bb69e03eebce5fc6c7d7bb382b0baa5007c0d644e7291112623d007d2028a95e77644b1981ed6bc68536c27eb07dfec7111ecb037193aa4222ee3826a712810c2413e55c0e06293f8490867b632a88be995ded199ec8e0952de67d9333aa3c69ac66611863859c2cc30757268e8b3cb7f55f10887324cef6df5cc4e999f7c21810f4f84b81ed1ea72ad048c153b792be456b5679a1d725ebd0f5d0aeb9543d26a5102359919ef8a742165d38f87389e77dbd9fa71316803283f21a81e4bfff7fef7c01d95e87171048757bb3cff0cfd8b126bd75c4fb4fb13d2d9f67d1e6b028e71e1fceafa0da4c15b596cb359af56a3fcc11788475c9631e5134a9e327c598f29", + "38c72ef5cc0c269001ff686a18ff3a71a8e69e9cabf3f0da1d92b6f9571aea9511f93c51b936de30606a1cccf022ec123e7e54a9b2e0953a01e0c0f16febc6f68b79b2d571eb51543b24e107270bc0191233dde3e1fe79cd30b08829399b6ea89c13274d27d20041fd68e2cdf462eed7871699fef31934df5fb6bb99616b55e6ce05b308b00b55f9f94f9bf36577755a9cd0cd48ec083e03004648d8ab6111b9ebb807ffd29272084f24e1a514851def394dba1c94781ed28a2c3f0548ba071ecfa16ae3a791676611fab8", + "084282c571c37f5fad7cb9f528b40e9b8fbb9212c74c47cb14fcfb51e39186592621085f5144b20cdd3f158256855cf1d7d710355bc24877dd18cff1ff838d19fd3808f4b8bf084b355728fadcbeb3bcd6a5a62c57bbd034af8771b2650094492a13e0f38f31685f331295b28a945fe5fe46fb4246e0d57db3dd469e99019f93d83ec5824f0487f19d0164e0405d78dab7ed9e9235661739f024bbb75979f45eb4a96c8e8090abf1ea158349ea6f6b7da5eea3e0807a0e143da3c42a01864bfb8fb77a476915fb37e87105431ceafd14ec31e080bc3a685eedcc5e1184319965c669b5c4581c8b10422abef22b", + "0cf7748fd73a7b79d17ff722ad2580e47d146a3eb5e528697e724a7b36d60b9b0283d1426a7b1d4a2535d66e05405ac2ddabbb6d18633ee231481c449bcf650ce6d469534bd4273ee52824474bbaa686ad5825daeb962fe784a52ee6e3aa3a4ed7dc10fdc750605ebfba2bb782cfa7b04b30f0074dd124b30cabbb782c6e5a09ce65b6173bc546d54e37fd4479a3423a2eef6010cff6d981408990eb7c533b1761f9b0270723a85df99c54c1fd43022ba04f1098af7994ea5bbabfc27031268f9d300adafe9b6d13c28241" + }, + { /* i=2179 cDividendBits=2214 cDivisorBits=468 */ + "056768d04bc72a72dcd7172e0b05697e96d8ebaea173dda8040ed7861038c3cfab057fe55caccc9bfbe7fd516249ec8771d24fbabc7b751d36d5c3839ce6c66e1d5e1ef9d27dfd967b3d68c80c46bb476bf6eeadd066405001e920a7ef3f9561de8f82b3210e8203cbb56b4dcf1aad70ab7fbfb39b6559fed0ac6925943f46dcc2886808056c137dd9b583646f4bdd9166a87727d3f4ddf5a1b31e815df78d904675ce7eba6112c671927f584a19ff2c15d549d08ac683d64ad75a0ad97dd253d6f95ae3136af3dd7460996b0a991113bcd8860b38652dfa99fbee0af68d82b3fb78d88782f6943660b85c122715fb0d0474ffa6666ddb1393e9cb4f43e27e5b955999fccb9743eb527ff8188bf83aa885fcb92b48", + "0add28d4f871f93b5019deff6891426a66c3ff102691ecbe6c9293d7777f4ceb63938c344b3599ff7028da4758d86e6578d58a3ff73ceeea37ad42", + "7f57095e0bf08e7f3e0fc378b6af8664de8dd92e2e91efc329abe82438257b8125bce818757d4e4ef6ecebbe884d1675dd889367903eab4cb41700662f3af32216f9d0d14e7de4dcb0f972da37110c7c6035ec80d210d12eb6547b86febca81746f7d81f40c8c6601e4cffd25c96908659863e66281b38fabf60fdf56edbcd5fbbbbc539a7c0a632883119fcb214dff205733bfbfe0fdb78788ed6308a7c8ccbb25e652df69263bed02668c5e6aaeea3b55c60359e4c1b3f5861b22722b3ba9a9464baf405afa8972815ecdb7b5312de6a88585261bab14ecf59", + "09f945d29c5247162f763ff59639c3f38d51b633326a58dd0344e6715fcf6772d07b4bc294d00b8ba1b15c7f9dbad7b2a14e839c078a5e1e299156" + }, + { /* i=2180 cDividendBits=1268 cDivisorBits=951 */ + "0a8487bac362131e5f38f34904bd532c9c3b215a2826c0489050aaf032de14eb178ac39f134a50b2b9e23fe19b72d46c9ac5deac9a23022e5bb7f5f89cdfad30ce0bd00083165ad4cd8d8e3827bb595ff8b912b6509c379d8e7869ee5b905798253ddedd3193a79cd35121d7e668bd104754001b29f8111851d42e8bd5c280c5317e3ccb1f454372d0697796676315e5243f89f3a06a0d9f9f8c2e9f528800", + "0b229647315197337528499f766e431d04f971dfa2a8b7c7e15be5f6180eb877c57436d932698c352bd97d753dc0064592d8ad27dd986097a091985c580114ca6719932ff43e905d4e43a5150a13e3116a378e8d059ce6020842b20999a8f04af0e6e2b10af6e57828b6eeb63ed0ff6c1f4b1271064327", + "f1ce37c0c2085fd4e222e92e1362ded405c113f77c47d44410dd6c0511c87ee5257fccee4839bbb1", + "0a04d191d6fed297467efd8c2408954f5cbae0e3bd444c2818f4b9939009eb310fbbdf448024c670406cad49a66109cc6a1dc3ba03dc587a4d489d3974f9a2fd2d631d1e822f43b85d03c3ef24a1f61a307577edab5a1db375f1952aaf21b57bb4b2ea120d827addb26f5d15b9ba7b1692bc54fb419d09" + }, + { /* i=2181 cDividendBits=487 cDivisorBits=55 */ + "439a4d9fecd7804547d615b60c7810261f66de19013774e3ac1167627cfa43141f355d87819b11f4f13c32abf131bdd5740ccc2d9371184b4eb551aa12", + "1a85fa9113888f", + "028c7e35472345e9a315730475ff41990fa2bad366cb72128aeff226cf5ac0d1794d2f5a4b3e602287bff6877f79a94af74f0d4a365966", + "0d7d2df8e58a18" + }, + { /* i=2182 cDividendBits=1652 cDivisorBits=1115 */ + "0c3efc0b390ffa3035d20a0dbf9f460aa85458edae4b0f0fd9f38123de8ebfef81a39304761272fc38311d912169f64fdd1d8841671303d072959c8a11a7cd77da3be3d2e0a9e09323c02fe14eba61227c7b37a76f22bd54cbcece67f8756fb9056cfe24f721b2ceeaa102c2fcd66c7ba29e75a3a1759ecddd4c30f2133e131d4540056b1b25c59a1e2787c3de5fbf2dc2f6b6171e9880dab359eaf0c99efa70e4b279626162138c287abaf611c8cab1e8188169cbeb9f93481bf79f3fe2a81342b4fe9d254cadb5777abec0c56668", + "0423efb632ddf81806127fe07e1bc07c19b8f8f0f1b4e3910662d703972a1f8078946937863c42077fd37a9f75c4ef21cef222f582fe4db9017fb60c03826e467f9199b7cd3b1e62b1f4d5781582ab7b5e08513d00ca35f7000e01f77cf96c1c9f783a9cf3363f374c3bbdb8b4e495c3b8833ab40dde2376c15597af52bb0e267f54bd05e58db02da3295e0b", + "02f52c7da771e2873beb20113a0d6db524c98431e8c051eb8c4b3dd220639b4afa29f074ac29ca50a0379386a43b7efe06e968a6301fcb216702f5ac7e4b9d6dc67d0266", + "012af5b3a6056a7f57ed9dac234c598ede6bf7c07a007e9c4ca1720f1d0cff6a5be0265f8299f04f38d498ee9769d8f5ba090a9265326210f595a2f4c74127019f3e0a9af197fd12822fdcfb66212a518df9579e8375e0467c1fd2bde1b73b71446e98563eaf9da85576bc36b05f2c98c31672f6006e37cf6dba0dd9a594282e468c63cc02a579aafe2ed806" + }, + { /* i=2183 cDividendBits=3017 cDivisorBits=2877 */ + "0159801284776882dfa889e7b95f6a2af40c8bfb4beb04169dafa859f65dbf3bba69cd517dd06376d7a8eb8007fe082fb2bf669e33d3194df4ab228fabd8c0732e8bc256809e70ebf7c39ee5cc3a043bad5038f4e117cec0e7d649b10232ba537f6ad75e95e12a61f03cb5a23e212edd1a4701c2762e733d9b355fa825730b3f9a92fb9da21c16a433c7b92a3c1b19848c1e0c939352ac1f0f3ca35490ee6c2ca11f5fe6235d882d8d9ca398f5936375c725bd5bf3412de00707bbf7082dce1d338a23c00a0de190c7de2ee288d9d5bc182f10c5513e0876283a355cd6936d5fee504bdc6dd5e540e466a44c6249b9c453db30ee73a0f83e29c217cc2692c54e2c64e3519eac3e5ca2f5db350885780062c6036c2a97143c97a8bdab0cbbb9c9810f6ea701a02b1cbfc614817fdac46d6fbc87a8801c4a848e52c7224dcb4bbed3f095a11dc76040cae05f5b2e066ff119f90ce518543f2d431b12dd48a5d5d01fbe6d29be31b0c8135569a96d7981cee09043fe8e8bcacc798e", + "13875a79f3a6da541b32b78e03998c76fc6813f64c8fdc96842957e138dfe40766426f1e92f3377787fb5167726f46a107efd4aeb0a71c2a9ac30bedddb6d269dd0c92b7f131aa834bd79cce98e9e1d99356f34a06bfb992aadfeed5dde6832c4bd88526ea5b5bb8fb4dbb4e615e2bb56aed064443c0cabbfd0f81227739d45866752b89c50e2d8101632a9d3d644e5e9928723f62219bdd885434aab418b399d762e85395a7762a48be8a33878250c29ccfac5369fa49f44f5c755ca3261dfe0dd1ccfdf8c7b4039ec7c7985f8ffc82c28c7f9172d09e513bc214bb4e3014922fcc136e4e052066dcb0de857e6b590469a51cf1efed98f919080e7c0e77575efe10c7ea386ac4eb73a23427d453efc5bb58717f939fa54393a77a137b1d2d041e38df83e919d713ff6302c5c6ebdf11c676782b4f0bd559c3870b693612d746a06fad15c28d2feebedae1086eedee4adefed3415745c6aeb649898d71feed01c025040109e694ed", + "11b120825ac5d5a598cd826b5ab4dc0b3a3b", + "01b119fbc8e049d429597ec203b102c0c29fb56e19d881c73437f2e9c0307a55c75d4844ca0b845d1ff7f28111ffadd1fb37c5e0ffe3dfe50d3d1d68409b7729e9ab9b572a26b513dadc5bc1851c939f7b7bb6f3d2a393e0953434411b04befc39977ea9bd075b4feaa2cb1688dc981dbf3d9aa4e3f8b67d34af4a5bd1d82e818f3d47e7b09d38949c45b3bdf67f57a8bccec169e28f77fae88992000c647738f11823b4e417c356e73675572e59f0bec953ad5eb86684cdfdd0088f917f17884e4d5cae0ee0b2172bf46e955829cb79f8ae792f02ac055f19076ceb974c54dbda3c8d33eafa9de2633b5f5c784de6d0d1fb8e0ce4a17312e5e47fb66c63577643afa4d44a36d8914c4c4436c3a1a195c6bbe438b53cd17c45c34557b92534a97485066129ae8819e397e096b09aa38abfa4ff41c906b7b7d8c498f67e6e0e449a6229381cedde2893e3f2e0c6ec6bd4346d2213af9ea76f538f5b8375706798e875c88832bb74ef" + }, + { /* i=2184 cDividendBits=2005 cDivisorBits=952 */ + "0b3483c1850cab35590f5b1060d4b7c21aab1b9ce2bccf1c0e1118c230f8fcc6713ac046e7a3b4818e4c1f70bce6a99b4d87d4ea64b3c39a8bc68b244fdb22ac6baa7df19fc750e78c71851c81417c1f146b890ceee661db3d09c9d3ea8e949cb958d61d0093f5ed97ee4f58acbea0c4f8cb6cd39fd2bc2f884ef8c630ab50a2eefa4b55767d6e85b35e35f877f76a12d8bf3480d5441ade79f244f1ba7a18f67e7dce5518386bb3571196579abd7822f40dbf9e0c9d1cf727b1120a9fbff59f40c69c80d5e0bb58f10d6bff8d8d8d796343da3d620f1ae1731af4e7fd5d89f77c367948bce02013c9cb5c4b58de504e0cf342bb127e6e8f8b08d7", + "26ed0b9367b7f8370b7cd2dccd7759818357d89c19449d44bbdeb710f6f666fe11de2639177a1ddb4fead30a5d8355f12b94db4d19df9e30495189ca1718d9a46520199e36b9d8e132e4f449ec3a0c7e8b92da30eb24c9df323e77f975124dfd68b8fa66d64d94be91817169d37ae06201a66451442506", + "49b10a433b9e59a591f57362a09b025bcbe8430041c8d334574f2e24c6f63d8d1f1d8ac078a794e2c9b88f386d950e6775f95f757e23ee77977937a6616404ac1fb0e712ff4c7e303f3a06f09b704f7e6d5f8f1e882094dd0f48a3299f6946bd3ccd78971d1314ad86ed6cb404e5e37863c4003a68a4e48807a23af007acef6a8b65a043", + "2605e64e43f70fb4dac6cdaa085581067db0aeb9fa42a099945d9823bb5eff0f03c02a575ac99b58fc483f685c6d87f019076c50cc72dcdb1354b10d66fb054495a4e5f2a1a750a33f9c0da87e8361f44419ec36ddb5f3efe676d937dc3eb48548b42d0cb5ff8b9178407d3e71e774a02140e9d6339845" + }, + { /* i=2185 cDividendBits=845 cDivisorBits=321 */ + "0ac70674453c6d881a63b83acf85bf4803108880bd39e805092ecce498e078ef91b08c4d466748c4f135413f1fcf0fefd0cfbffa02cae2136bd65f444de3dbfd6de46f8878a5972510dc85b83b4c13bcf59ef0e8402663be7713dc7cb6b5ddb52e4292ab4999e92a8063", + "61ec9454509bc7f8d410863f8ccd6a24e401d32697dfd5d1ba722ad07dee1ea84f33c4a6f7ea0bee", + "1c2cd53dfdf3bb19821fa0797d0d59fbabf054356602fcb5edd1b31591e4394d8ea3669df12744ea7190433f7ff65e355385d05940ccfcafec34c57c846a4f39ebc0", + "01808dd44aeab242f23a5079cf2f2cc4a52e23fc12d4b5e4de2f467948568941144c717506b013e3" + }, + { /* i=2186 cDividendBits=1551 cDivisorBits=527 */ + "18f5184905c59d1779c310b39d9f57cf9762355e91589535ff306cdcbbddba3b0e8ab348d354694ed423b0311a9bd464502e8db71e9258546d5857e6c8aef53cab5c97113c7af1d278b5307babd87b322fd9b56e9a1d63880fa70019eb8ea89cb1797002f3215ee7f3c2fd07a77f843e02cba17c90d17c93fb3a9bdcca5c72e40fa1f12a7a682db6822c06c962c20b89c0ed933fa4cca4b724781ed682422e143a9685a23e98a81e27260c8707fa9cad26a262477eec75925e74ad00117629721955", + "5370b2752c1e5f17cc0d3397c22f0c0dcc0dcaa956509670f28db622f1b3edfc60f4503256a46a53782e22c4fce481408764f6214924eb1666c609d1484aadea4171", + "4c9227fc79e1f5aefea93b75a50d1bfb39173c204cd0460ccbcfd5c42106c374da222b6828c71aed27923e8a892122348f06b154b206c348e8c61bb78fa2d402f1c15a702e3760a57bbf72fae5ede024086817f004a42fc3b211434a83cd759dd0c8634845d4564b42a35cd85d4621238e260f3f643edc0532b62e8e6571ba97", + "4104f06c3a1a37b78cb5c86ffe2fa86d3444874dbb2eba4a22fe3dad880c9786137911ebcff2ba56f4dd9b74549c5497afaa5b5c885d4a14a8684c6b6026e8d865ae" + }, + { /* i=2187 cDividendBits=3147 cDivisorBits=2838 */ + "016725574877eb3d985b4bebd860f81c69928fc0b9647d54941cb7d64829815c343cdea1ea088090728d244c8a97abbee76a42b3a5fff4a98e5cb088303d09fc1a3123cbc50d3a260f4769226e6bfaf62c843a2fd8f0d22296df7a868f95e69e34f1fee6a515665678d389866f1fb4c3d9643befa89210b8e805a84296f30d70cfb8dc7f4c07213b80c45f55b06c53e5019129b4cd0c90e546f9410ffa511efc44853d5887fe7e12d3885766c9f0c60d90e5e9a62a882045aac9b18ea4af93c6cabda13b446b55d2ad5dcabcc3c52e0f09f3196ea9cb9cb69b9e476b93a06f1b6f34e11b5a5894603313afef2ea0460656ab6b2fbdec68f2e1ce856e05c5a4caeeaf8fc366476802c1104919291d222f19bf4f524666326b7ba2c4d893d2bf38608378acf70f3af8059b3be71303ea6aeffcefa0ca93de73b45e5683eac05b15fe0021caed464111471bf0a9a32e5966935364504ac66c69bc32fa1c7c8c6707d7b355549991380becdc13f172477099223497d35932fa6385c0bd22889ebdf1214a27e29695c844934c", + "061f33e0cba5532a22dec4b70c1fb54e68f8a826e1bc19fb957d1644d16e76a0d1c6ec3a2fa03c8dacaa770a2f0188f3baea1bde8de713ca0dedd27a72a1ccb7394665fc9746e381b7f1080093dc0a51cbdf7065eca577cec2fc79b0e9bb5ff3defd520d3792f7c029d722ad66c51ddb7f19b06ec6ee6aa786fe582e509d6ae559a142a50cda300741e9d31f88a6fcc080367a738b1d1ee273d278ae66d2bcd84d197dcbfd7073bdf86375eb21874985f258f872c307b0b48de6027e36d5ca172bbc3e2a996b590de8d6b0ea851dafebea1e72ea5a532e9d14be53f28d22e774c315f283032386a3bc706b104362f226ec872b29fcb184df15fe0410d9458165ea998c74c2c2cf0b6ee82ee039b2fe9aa42627697800f4c6e23ef3424c50cbf742e0515574a1d0e4db5848225a05d3bfea24a70da5290f01a5b8ca2ed1b2c736330492138f2e9d2dabde8d61d0082f7e107f8fc37decbff143d40389b8a952e468d4ff", + "3aaa77e1bcb09ff4e3f4282957d19e153ce591fb0db608c0588abf5c3256c933b9f6bc8cb9baf7", + "c7ac45fd4408070e21a9210b4d49715042e3882fca77958c440277aefc50550ab2dcfaf82a90afd20bf8ad1d0c5e0c5e821573414c2ca76ca9a6c22d16b960cbd1ee2bcb263e00991627f22b9c30b9851c9ca6c6b1c1caf6b938035aad8190f5fc72be0cb63fe342b5a2700b689690cbbaf6a0f3fc40aa30b9568ca150480028ab650f77362c462a7e8c4cb827347e840f0ff2719247cfe320f99679ce6c771c4f4c5d6f7d0dcde69459b1303d0961f7bfcce494e99476f0ee5320c75f800b5233f4f03f311bf067f4cd8a5083c58dd25590b3875f49cba9f06fd82960c5afe2513f6a5f527556c5b84ff851285b6fd0e387947153eedde637aa8a57de98602b7ec4404e16282a48c95e3d8820ca58ee5a4f6cffeeb8f6d5a49cb05bf9abe29bb7a138d889f26f9b6f1773d95e2346d8ccccb086fca1865b564037b2a4bd891dc8669ca4651f9b285fa25d627d639611aacbdf9a56f64530a40036f02425dc16cb43" + }, + { /* i=2188 cDividendBits=2549 cDivisorBits=1434 */ + "1743dad60224b41c2ae4748f2d84f7f8f10a02910e3564ef29e11ddf44404cd65782781ee023aec42724c0e14df6c372a6e21d1cb35d330213d36bae7325067a3fbe668dc72dcc282128c0053389b489818c87afb8b83aac03c108641610717ea5b7d0adcd28a61744b70f9316913bb8f2ce76d655bb4d986be907e2d39584a27a928ae21207a0b292b225f746ca452c3c1a3ebf322bd991a8c1fd61334c4108d0d21762f285c2320067bb44c35ec3101bb860725eefdf9e24e81c8c2ecbc689397e00ae2e173c9b408fe7bb9e4ec03aa9aa9324dda11fd96fe2da91f1605f52a68338eb2a3121ebec37b7abeb3c46620b80ccb12eecf18b851ed316f46c8fd5f2c3880d9a30625dc1f169fbf108652007f6fd15fc0e3dff6eb4777782aa91507882026c7762859c06179f5d9de6da55030278ab900b4fcbe9a295492ec2d4", + "115ae00ed531135ca8898b0adb5d5f54da5c73c5c7c41b86174264b59ae0bf01c9c8c4aeebc37aeccae015fc61362d50d1aeb372151ab8cd3c8b9fcaea9272d44e2e671d41c673954488a87b8ab8cc2129039385402887f5f85bc6d3d43322031471df003a4b38ef5b41d18b3faf515afcc205266e50837448a491676a75eccced2f9e59a54a5f62b0431bc5aad1bed64c60b85a250c3a9e3ea7a743aeb13a35538c9c9e9aacd4406926cca612123e60e01ba1", + "01572dabfb77e6bcbde749cdfc8b4c564d74172dfe8d535cbdd053f0c42b3f649cac55fdec377880cb9739a048c1bc8a64b82a6e423a7e4fe588b3c9176e6be977f0de1f7d3b7651ba3e0d269b9341f36c739640a666f3ddad6b2c224007f23eed2ba380fd1f7f60b3b8983105cd1336a9c6747f38cc5395afabd6c7b8ef957522b31ffb981c1827ccca19a8b8", + "0d6f917817753fed41a1a0603ea9a84943ffef4ee516ea9fcf123a0789ab14155bb7c3c1b4886f3d2b8cde79cb661bba557d784134b55f419ba165afb64f9a4da37f0d2a16d5ce953c46e9bdd9bcf9b1d8b94f902e54344877ad8622ee445d7a00c5442e636f272d8c7fe7adcd57563b8073acdd333e1d4447fbe9461baa7a7691fad5916c33e4d00eab3cc0ce32b4916f2eb0c4372302d0d0dabbe2fa8ba4be4feee046ceebd54e397bfc0887bf30d9403f1c" + }, + { /* i=2189 cDividendBits=2209 cDivisorBits=242 */ + "bacdada59fee377c1232c5c9462c890b07cd65a6c97c72ed0e13b6518edd7fcb4281ecf9ae0e3fbb02350f68924518140e923a30711f19c31b87f90877133b657014d32a2a8253fe75bbae5d6fef09a6e092931d7b71daeff6dfb8ce9d00a32f87da0a522bbb194c2a487218ae152dc7792f7d990b81102b5485f7091eb4ffefb70d847bb61bfe10679fa50d3bcc9a68d597c9d8dffab5b20a70a9cd0c185c72064dfb6124351685a019d4c527ec1d00960d4253c81c790c44b7b7af67868815cda3ff959b69d31cfa1a503ceda11aca315e5d346d25840addee1199b745bc4be946e2cab1cca0823db5cd527530eb07e9b8110cdea5b2cc520b5bea45a161678da501874f3359c8e20c5c41ba4dbbd3bfb0a03f", + "03fc0ebce01de58e5f5412efd222cc7904a13f9c85b1bd5932455bd8001fdf", + "2ee1a04e56179ef62a87e47cdf12cb413ee8df0b3b448e1808ebce3bd084473564932278c9b3fa79fdef16599f85c3f36dd08f2f2c0e4e86c82897907f10d802c9f0857df9c4682671638d49e7b944a26cf1227240c4c6592fcfff9021a25d2a798104d576e5cd524f012aa51dbed91ec1d8a7c79c5fa328c44b878fa75019329c5249776184349e59967041b3e5bf89cfbbcd099230281a9c9f4041b1f86acdc03b1ec658b4467856f3622236ff4651c0b395d09066df29b54a23578248c6883898d5fec498a0c9cfe11494d5b919f3887f27f61455f02f83eb77f9603a7c1bccc106ff28d6fea44964d07e20f2ccce15673d042305", + "4840c51373dff550c66710b317045510d297901e4613e0d34d2ee0d883e4" + }, + { /* i=2190 cDividendBits=1335 cDivisorBits=60 */ + "6fd8dddff48f87bb893950f8e9d6e1b9f475abb09d07e4c12392147a09ed746d46319356e2669f25fe2c224766930ba896baa42918ce89bb003dc70608c03fbbc635495d01b30c4a69560f0e620ad4d826f35d1f10aa2eda4280f1f0c56ee7bed65bd5bf667569d4e453dba6d8df13f66ed4fae35c09bba1634bd30bbfea3a88b4bf550db98c63d0c4c163768749bc42a57e93feff3bbb1492ca02fb6a92fb89892b912cd24141", + "034a6f8e6116cfe0", + "21fcfa0151eac81f47183ec5211876d62aa3e0f391db03c8858a87b26b49f1ee31b3fe2df8eb91d428c2844b3a232af8f0cff69a0b337f9f64306e8fe7d53e4614cffd666f44ffe68f8e1de324ecaf4d2c42e2fc70e8a0f41c36c56ad8d72acacda5e566101d2810f8b8ba159cec734baa2aff52e957f7317f0da13fdb5408e02df8c6e069b535d87fa218d731251df16b13a9a84a84a4e0cfdc1040b62e497a", + "0272c624cc6c5081" + }, + { /* i=2191 cDividendBits=3357 cDivisorBits=2795 */ + "186d072c905da0159c363d520eef0fd9222216e05002d40d4721c561e34184a22ffaeed5c4ac15c08ee6a2a81a43cf5d8e5e3ec947bd57e034fd400a82b90f0ef04650a7d7556590b86d2c33c4438608fc59c9bdb28df6aa01597abf706d0811cce1288668ee9cc6588c0f996aa5f7cd9bb9778abc47e7bf8dc48b95eb9bbfa4a3094332048d1e2131ef4ff7bb1c446fb6fe4d6f9117bdf1a97464e1defc221597f92ff5aa863396800c2aaa6e37b51464e005859b4df38bf6136252965127918c8179c9aa5372433d5bb8212829cd6c7cb936236427e3dfb68de2918356a7178f163a35af969b6c4ac4757c647a4ac631285d75d2ca6596610af092a9a1c8e13737bdc9b5850f5e926ed59158603283617c003979949a41642054a4a78e532dd7f97e88045899a8d2dc39e7a01bd2fa16d0c77c110cdff268a648bb5d81848642bd7411fcf44935ebab2b162d96b7f274a0e15a0ef3c87e69c38aceb36ee57c9e64bff0e3dff98da082173a3e1125605ccca0decef03651033591e3cf2a8b18584093394f1c139e9c55a24ceb2d20c7d11788f63cb5043c51cbddcb1c19275ffdef4ac9", + "146520ce535aff45d660fface787cb6f933b074f8d1ba37d839e0288136d4ac0b6da499089ecac03072dcc1ebd71bd0bcb85560377230483234567795b9b1fe903499d7835d0310a38cab54895daf2767db12d7945d461b8d072928c4a100caf17e0140ac79034c2fddd44f1c8aa0b6ed6c96b0853031ac90b733c1b433b1431d3f264180ffcb0efa1793f1070c1a2b50d60819ec0ebab4965456e39c99344ddd5bacd65cb933310f707bae98487db6facd650fbbe21621849f5d82c579ba25ba5f9bf8a05e63bde67e667bb0ac5ffdc1756b372a1a9f3acf85cc6085964eafeba1b6988e6d731b3d263c937dbea531543106e8d9c8f6255dad5c1c5286a93027004c309848a82ad19169e4f19f29babb9b71f845d9e1c7387302e668a7e8ebcefd2fb5db6a93546e5da19de5121d019b40f23439aa2c8f39bdeb4e89e2a79e22ed61d387ac8a7b5474873fa90a0f871600ce982b1bc64a78968915322", + "0132987c76f786adf4891c77ec3ab5e026a63d1ae78dbcd5a76999910c2b6af0808b0292ddf20f32c81491194992e0d8c79b253018241207f85fff5a59443ab20360b68bb813deac", + "1280ec2c81548df7a3d7c61b9bf2f6abcbfb1567bac193fa9f7359eca0e930d2449c8cb9fad4e62e2c37065068e5718667835643ad1832b28413fd56ec44d2621a611d56afcd96e9521de71dfd96dbceac3698f4369df312ef7272df87909983e85d3d0dd95d2cf8ba9d3a803b775914839c657e2c6a08dd7eb1b7c592999664aaef57e662a1e3465ab6074428d946a787809e1f5dac507d3c28b923deb443aa5278c7a2f6184a19349a8a9d9f0a61277c128d8e2b49c87c813319bb30d4b52cef36ca84ec851914f31197de07e6ae9c5b41664f5a45bee6ac787c0b163ec26727c8572fb32e09da1da81f561045cbcb24dacfff5d8609425466fc5dee560ee6d6f42274ad418343e6f04534dd1e15c8ebd49a5e63720cef7a4bded528f7a44b03a128054a27886bd9d7342568d051386b1165af7f42de54f2349a788ecfa8fe90de1b09eff203f23537f0a0bbb22e9765e08b850e6211e8601aadf3f1" + }, + { /* i=2192 cDividendBits=1053 cDivisorBits=261 */ + "1dd9635dd92716ae5259ac8a9a5ea30b3a4e0ca5c89eae8f088ea8297a91278efaee9acb8e8d7c064b70157f72b5e1370f6a0bea11dff6f11c1ce31caba72d014154372938ddb73f6a87db33a719c1b2b7d2275564f7e0f9227b5770da5c842accb63fd20403a59198959305896cd36fc438f2e24905590ecd0a2a2fb95865a181952ae3", + "10575c0a9d44bf9da0d09cf8db89c0e350df15747c17529b62b5fe925cd6140d0c", + "01d39d0de4c041b14dd828d0371c1c854571d8d9c85b76beef1bea55cc6c3747f1cc9b2c238c62e3d9c89ef1a88d8f1516148067f4814ed4598f55d9cb366af4ce92b245eec171c10cfef7b8ce185c0da718279512c4ccdd5304d73fdbebbf1ffa9aeae7", + "0fd98e6019a8fd30777be9d5f082d36796fc33252702e4b133f9c392ec70586d0f" + }, + { /* i=2193 cDividendBits=3009 cDivisorBits=1306 */ + "d574b8da1ebb0a824372bfcb5d1bbaae7e1d21297ad2e531530ef086f9a8c82e88115ecaa7a79f110347432b43e54d0fa6001bbf7b2319d80db9a67bac78590ff19c4ecf5c95884ddfe003253463d6404a1e94c9268064383c379d6e1fd072239efa9b2b88101778565f2b491f4678a02ce9295ed212fe3e7b9d777bba4372d1cfe32626cc7631cac2652bf27ae1d49e9763ff30fbae5a2c7531831025ba7caed2689db64791c6495143b9b56f183ca02883861647adaf8b20d8a8b6fb094f111831dde453a6f1ebf043dc31cbca0fc242d505ec6366b32039eaacf2e3e3feb2421dc267a3f97f96eb934749e955637117d1b57904bb591f5dc75b87f15ce508a311f05224aa45d05cc535741927523dd029433deb5e01a929e7c128a24830db575d23deb7b4376f5fefaa7b79a6163670dcffe3163a554aa9d29c3c9a602a325a7261b87d13b894d29f10dc07b221af46ac44c25e92f807f245279b056c6c7395bb8c9dc5a4b7340d100334a9c7467e1cf8d951bd4ab2e6", + "6277aa2a6a294df2c3b857b4dd5fcab25bc099b93ae2a02f528fd301fd7efaa03d75f2c02580926f5bb820309ba86387c9ee6d8f5b13aeb48d1d180ad13315bd5cac17d81fb532804cf2a8f5d5927292d85de36b10e9368b40cd53f30822d971a4c069399556d4d1e64abe35401b742182fdb7b8264bf110b87fdf93d7dc2ec85627e83e08efcfcf9538e22be3307040a0e16973b2573789f160abd8877ad25c66a5d0", + "022af3c306e82f2b17e1a33acdd7421ba8c4874698d6f378793163960070eea3a6915ef3ec4bdb2e706460668e1444b5c0d19891946b484b818c75c60a357850a433750d4aaf4b2a73c793aff85589a310371174418054deb3653076cc44a31d97f851fc19f13dc5e292ee6872d22de40c8693b120e5a1feafafb6ca9a764a623c59ad452cec00068040d4e5c2525ebbb4c4b11762ba9f7f60905adc6ca5c57487d2d5b3a6c54cf42d51219c679217be717b32e09abe8949d38b34f43edc187b98c7fca0b27802465de4c72c63b0162d1b5d4ee8e5f0", + "2b2630a69a21284c8ab88881205575c41440f50dac7052e63964e69de04d3c3e4a9cb2feb0461b3c9f6acbad7f06f8a6329ca70e9ea6a0790342f7d5a738914b4dee7899dc4f5df891883562acd1e2af554bc58e2c8e439045cde7a6c83621d6978bd14e66142fa09db58dae5189e47a2ced31f292cd0743eb4e26c9c5fe1f9c5c4880e7e5feddcd3fac8d82e2dcf02da4aac452a25bc36dc51d091bf55757a63c2fe6" + }, + { /* i=2194 cDividendBits=213 cDivisorBits=54 */ + "1815a999560e6f59bb083faaa68d1f217a0d7f8d16d53c48aa72bc", + "1b5c30c91580ca", + "e15a2854a49788412a20317898ba62e3fa16f2b4", + "01161c3c70f0b4" + }, + { /* i=2195 cDividendBits=103 cDivisorBits=12 */ + "70927908af37f9ee9a866b0b06", + "0181", + "4ada69bf4a9e3d20fbb1d0d1", + "b5" + }, + { /* i=2196 cDividendBits=2200 cDivisorBits=1322 */ + "5535cd8ad08a02f210c05678cfdfb53b2ee9957737f844005722095564c6fdf29512f82b15e394d78baf684341e88dcb44f24de62b4dba7e5e6b66db11c99d90a0387084ddc49a3857b2021d2c6154197df2f1efbb7a144e3450eec5eae0327834209cd60391dfb5634d991bacb93319ecc4d1accc81986ec405cf92982f1aec893defd9f02cbca47ca72e88b6d80d52e661a43fe3d730606a026e573581033764c4877fbebb67118dc8976d7452818ddc440683e7e58c86cae81b4c2541f0da70a8a8f31c898a24ca4c6b9faab9412908da010ca0a8b8f7435d88fa5d73453a1639393677d8d7fd8dad71ab29a1c30bf81783ca3aad034c1ffac38b62c828cc494754803272ee7fa4ec8a0a1650f46facd800", + "01dc151c39996b0c64d0ea7f6593dcc16e47562ac608418d9d433a4663c09e2cde4c45455ac8f7a717e9542f257929ec7ccff4a0756b3df646e481ca3c5af98e1ea3853b6853c5f3e36feb96ab7d308c6135b31b3d7e60f07bbd0e36a63494fcb65e675c7f8ca03737246a75f15987fa50512935ca4e53c726e6189efcc3cc81432ac5230743958e22a1b6c02548839bdf58762c8ffd1663e525f2062125f0c11c83bc0dd090", + "2dd1c2d770138c3facd2bb9f4482a398ed7a21f4a135ff29427da2f176f27746a1f1147faf69fd5dfc40132791eb43686b4f1b83435d3980ca50af5563450af86a06cba19438ff23a1448320e0d7a40f32b12658b2fe2d023b2bc87e5012873b13d00ac01b28fd1323828189a126", + "96389ece617094a4992df44129c42566b925a09f2d8bb058bba97df7f2872f72d1c27fcfdb292f6957e24c00b61804d7170bd4f074e1b1f00af3562f41fe6fe5c7031b05333f4999d24c8bd98bb090654665d80a451f2885be70572a9487760a0e2a6dbe2c9511564d23f4bab922aa4b98402208e41e5b44df4d832422bc7b8d0049d6032cd3ab6887bfbafcc6e713d04d9f7251a09061267c01851d8809030984a86552a0" + }, + { /* i=2197 cDividendBits=1415 cDivisorBits=1289 */ + "24bb84e3ef5e36aadb0c80e3723b6ee5d40766f595c82b45679197847cdc599ab5251e8ae9e78272b77cfb2f2fa5278d5e73ab1441ab9462bc78d8d6a3fb40faa23c22aba1ef149cbd5a87a0e8dfbc218ce7c15061e7d58d0c5cf33958b669062b608fa04a361aed30e949765b1ee112a78f3b3c57842581977ffd58668d5808bd8ad8a27bf2eca4e7f9681e88c756110175acebdc4b84fa5bc194b09abab1c469ed162976756f4eb315c7ded887ed7ef7", + "b0f5b204bb6efac30609b2ee145ed7de6f0c2bcc8e9820f94a9e8c10c156039e668c0bf950df77ab558728043c9f643687b344509539424563ea42759abe3b5673f8c0e9aeeae34d225683510308d73d00093ed2308934b3219546cbe943a50f8c2434f11c47a16c2517b727ddac6c2101fefd977b9f4f30b01b3e162d124110a6d7cb419e6aa2cd00b1a3968851c5760fa394c216428e88bce949b3b37a68507c", + "3523a9e6a0143cf49b78307fcf0436cc", + "ad47827bb11d57c3dcee6d48fcf0e19d6f61a1bb00ce2b1a181ac614d688b57cd34ff8e9d5b91d8bb7db318042f3ab702986e0cdbd7e6f34c1d40d281fdc597e1cf6e4bb853c5d65efd968aacedee5bd4c819e44f16576e3b8c2c07eb881b44f358ab888f560422caa8325ff8c365a10479b5d4f4d3e23faa564ebbbcbdcb51839bfc5fa79c92bab2729af95145acf6e45969801781af224b09d655fc775e33427" + }, + { /* i=2198 cDividendBits=3751 cDivisorBits=3441 */ + "637ba715add62a06b9f104c78d42b092576f8259135911273f722704fbcadaaba0f65be2c716c60bf2489d336ff7be1d733d838ce45c04213b30e265bc24838d2efca4f702f98c1620e8319616eec0dca2784cd715aefd60acd67ad92346388272053e24c0ccc4013b5d36abcdd738842cdb996a38713e1012f3ee0460a784d2152ae5f75b114d46e744001281597b07288e03f3a087c880f6ed043dddacc8229f0dc2a6857c829d9e7573daf129eb882dfa307d307cf8c81f61fe8bb28df57bb104b98755fcc32430bebccad5bedc542bf1fc5d5aac9c80b29b5b7135f8d0d882949aa915f8ad0cf1a684c88c11c586442c75a62c7259b5c61ebe640af1de1f4a537ca9696f5cc73f084308bf350debe038493cd30e708193cb202682279cea09122402e14302e8992d0b22f50dcb43a37749a30c95d2ce554433858f25c9886b107700742bfd542aed43b22813daacf9a76461da70fec953e0a7b5f61bf2345f070e9d9f190dadc3407972594db9609624f8b831484eee5d03b102a571e2cd8576a4be75538596fbf0444e919935ac00b1e96e3c621f49d2551947be30e828212db59614b98962ce1840dc05dedc2c82c8901b414bc29b3cad53d8a1eb3b0578c3c4af39a62d018fa0263855e557aa5f9e88be05", + "f7af2d5af7213505ea20a1ff850e5d49da724464a6a59bfa9d555518f487fab1eea27ada4a72f5c9deb7c916976285dfbb2a307080293c8f7ee88efae8b39a46d159f794087d2b855bb02f8fdb070f6c519cf10141cac5ecfc99e6d9413c7d08fa3a3cb790aa9197e05638e747e33e01c678cb557a01cff926b7ec8591fa686273e0bedbc02455848980aa1353d037b7f6e12e9c5c0f940aa7f8b6098e9f4bc95968005f0215b64597e67b36f6c00aef55642483cadb5e969f706679447dd590f1b71246644ac1d1d1eaf90741d2b2838ed4fbe7a2aafbe06d693ffbd00db3726d52bedc6cb42e0c47c1ec908b911c904dd727b9d5b28d7f69d6244ae832f0c5142da60c8b55b5bb92159d1bb00194f5872fa4c16d95594aa1bc3db6bf78cefbde43126cb69fca56070eca851261843a6556f751327ccacf8b6c5635e07367ce2307081cf6132c28758b5e6e6d1d91348e651ad04218504eb44ece379174d8a5751b9cb8cba93e69bd0b78ef8e878a28d06bb359d9ff074254e9a71b890548e9a590bf8f1bf00b509b4b38ff45ec6412ef267ed42916664148b21c6c4695b33d5702c1171b89ea833a174fe8f5d6", + "66d2b321d7746b25dc91bbe1c656205eb9a60c5aa0cbb9073212780a3e5bbcaf6cbdde209d4b5b", + "7cabaeac6930d86ec670ecbabdb99b3fab802fdbdd5b2952799b47c43e2c34a8aead5eda554bd566eb990ab864bd7ef8433b3096eb02deb3f6349296e27e218a1690a322e6352f65962f66f292e49f83b129367e8c76a537b07379bbf86cf612eb48b43b2467646d436fd3272d8073cbca6f9f5edff79d1c84b13c3c88b9e972b921a450d6238a389d3d18f93d288525ddbc453be31d0667a4ac6cc43da0de7c138991a805328f881b4ff0207d1c8782ae448d866010cddcaebfdf2087fb8e5f6c4e4bc093a950931e127c5028ee8e78f623d82f278dcb695e1a4df07c773dba1ba3d03fe7ae0aeba18194dcf852882a28678764f3c4a1df02e4db001835f2d98b156276b0109fcc9731815a64da629124eb32815db2fe51a4713df18c787ec56438a00d0a7139a09471e764826560c4d33a74975143f3a6e651a8d6b8cd252eefbe92ade5d03ca8faed4022f3b9e6d319bae2026250b1eb0f3942d349a2c7d874f61e74c7e0300ff56a1499d6d8248e5a7478785156b1a70351c8d07ceb0dfffc099d2414310f253272ce15f65952cd4ab9c78a5dd5ed699d240f1a08604e1eefbb0187a52a4297e17f7275a8f3" + }, + { /* i=2199 cDividendBits=2504 cDivisorBits=1581 */ + "bf3129d60fcdfdad98e76ea236298c5b760425541ec79690de817ea6b683c687a8b7d05bf29e937c217027c10d7fd942d628a8ece17311b6c74f03987b3654c06e27fa056046364d9141013daf001700d926d176c302b153e0278d1b2b53273862eab0555d5ab9ca4a58b328b674e7f4d734d47ab66e8c611189a9c14c2bd5a755b23a2ced032e89ee414bebd22d4f3d6fb4d9d498b934d38a532f6641abc82cb364fc9446b49cf69ed6252008c29e6f8bbf138389d2c6eb18b6be6774d89429b419a4c91e5f88bedfdc116b22b62f5e81b9abec4eb1733263e551a7bf1a06fdeb8e7e4d906adcd8b93e219b520221952d3001b3ff652a8b939d99cc3b9cb3f4f21fe7f8470e182f424280c1560b79d885d432630e7b2174cb38e6654fb48bd2ce61901519242c4913049cbdf2b059a2d50935bbea0e4fc2df", + "10bc0cb15e8e8ecd86b6b9d838ae3baa46c876066e9ce7816c46ded666ae364a6c16d4edb390b03a83753197f00b275d1a23da84d7993ec94ee2e52a8a321a8aeb3b9c2ccee3b1b180556e168b36d74ac3404ae3b5af454bc7d4e6e7016710c183adcbe746007ec734a362176d0701ec67bf36ef2a6b95d7641249686bfdb3a9e627a6c5981b3a8422df602d999ce1a328e4554d920a72695e956fafb364def32638674beb60a07c9e30dd9ae4ee93ddc39fcb351eb6efbe3b280b87df97e9a4a48e76ce3bcd", + "0b6ccb3940cb799c40e93c070475ceb6f66b5430c856b4a9709d300b47941bad419d68d5c1961da3a53c5e0847462270dfc0323bd42231878cc8b8a393330acc7b02cdd2191ba6a92bc9cadb4ebed3aff09b198184cae4490bc3e815cf7f2e3421470166d7d90dc0ef7293bf2ae47ce5f8ee78c0", + "02ca49dc623408446c1a23c68c175845eaa61bad9f6c57de4e7f9790926d1c15b3bfb7064bc561ed5b245f2295c6b3f7081424cab22d51ab3c47f22e98063dcb285d657b417746cc67ca1c812b4f9ed21753c344e89235a6fba4e70750813aa90935f64745a50511ac10700eb0f962ac3166ace1b7edb0d128662b85208aabde1f20b497c7abe97302c5afa3ff642629a25dd6c9eb8f65e3396c59045bf36258856c3dea808a5ebf744262172d682250c6e04e0d742d7b2a46f58d34d579910681551704d11f" + }, + { /* i=2200 cDividendBits=79 cDivisorBits=25 */ + "4800e0ac762d94b97eda", + "bd9ee7", + "61358e179efed4", + "76b58e" + }, + { /* i=2201 cDividendBits=108 cDivisorBits=21 */ + "0ebc95bb4f5f5feff5cd04e33a5b", + "02fce6", + "04eea09dd2f53981706be684", + "2fc3" + }, + { /* i=2202 cDividendBits=2524 cDivisorBits=448 */ + "08de17d171382ea13470008ecc868e1e3c6f1d9f66b4ec1fed6f19f1a80272470331bbd9907caf514c79265cdfd8ecfd554e89ca091328f46941e9313104c14485ea4c7b7452fb80c5b2acd5c8359bf4a2d9a4ea1454e83406e2de6fc8423104c356ccd9be724d12351663c4083f7613688f013eebbb2fa85f8a6a77a321a44d12c100e04982066fae3775f6c20e42f8d03e397a60d485e6eae78b07760a7931fa8e802d2755b898daef98b54c8283b424522bb5edb802c9f18b8c30b73b22db23fe332ba1c611de6b72a8ba6aa322af4ddbd2e706e843b2212ed29dccfd86af1392cc5693eb498092c417233512fa08361acb3f2a2aa26cacd759aeb67808b5aad3ab1bef88f4a9217c5eb8b256161b3fe3949a3e3303ebe56f840a6edff4ae039d478e8c619ea6e01c2f88d0ab0adf1983f2dd1d43e8a5992e20c6", + "29dca2a42c75c6a40f94268851b3a867471ae3baf3d1ff3e14e195f82426e94d042ab40f51931d754e3af93d3ce7c2efbfc1fd1acde03698", + "363a6b293f2ca679382e949abe209eafd6363fcfd562a3046fb0ed679d0f41a01e66429184172f94d2f994f2095a176d24a1fbe870e2e3ea74665eb53c00c1b45e72c524d116aa2ce50925ac0e09138c17a6b2eabcb861088f62029fd703d62c79dc1a2941832f4c9ea4a752e05cefc46ac96443bee897748bb7b5fe706e8d27ae051ebf8480a8c80c4cfd6958397900c98b23123d563dfe5b76cc053767dfd137a00f5a7f689f526f9a4be08f3021c0ae36135b5cce22948db2fea167af595946d64de97a7e4248da5e1c1bf05e4bf2ce6a06bd4e83c0ebf7c9d31fd73c8df784f9a0fc2880c95816ae53fee4d0e54edada3c3e9e8658280fbebe8f5f2d2492ff9a54aa", + "0aa0f78d1dd5e9ae836ac2ade5d95be1cada688e15e031d67d6416b5617aea3cbfab9da8a5f397c7e0cb5dc69d806d1b37ee575910efffd6" + }, + { /* i=2203 cDividendBits=764 cDivisorBits=352 */ + "0559e6e9e98f69a70201e4cc8782c80b8227ac4c096f9a4076ed2b5f46b6ee92b85b5bb92193bc84e0e7fae285ad4cd13c163ee748b4f6857d45e6e55f0fa92a2ce5e180754ee60c6e130e1900c1f8e3e456e541ee50001586565dad8029f01c", + "7324eba97f8988cf912fabcb0b6b821825af7659c6061e9748ecf3d99e7a90b56af4de787233078714f485fc", + "0be5b38e4e428c93320af9f9301393e49796bd369e9a5c053fa957c98eeb95408041edde698a09ed4bbd08c3e2b67c1c40058ee7", + "280c175e3545d99cb4e2e8b863dd977eff9835c427de4ddda8124b9fa04d81c9f9cc812ccc706354574741b8" + }, + { /* i=2204 cDividendBits=995 cDivisorBits=11 */ + "03e40388920338158688e4536b9f8c1b9cede16b319149b45456c065aeba075976d5639da25c3e5cd48623886e36356740a1b5566211c04b6b800706141e7884960e443b6ff67fb66ba9b2553b29173526fb33c6582da00307a56ba639feb345c10755a17e42f1373c1cc9dd5a745da3f913f08e4c51385cf5a5257741", + "0763", + "86d6a5825eee018f7014147fbef50c89ab82050903046d6e1bb80859b7fb946fef66b330eb974435239f8c2cb414c477c27fb50d696d04ee32a297a2559f68ff54a5bbf6ca0d3a67a76bf1011ad12ff1c86310f8096cfb2163f749cfce01415ab50bba58d7eb964d2e454b96bcc43fe511ff4352c24c21b423e51f", + "0344" + }, + { /* i=2205 cDividendBits=2853 cDivisorBits=2022 */ + "84eb01774bd98b02e23f91292f4805d7b1df55c6532cbaa851dabf1cafcddff11f2edf44bcfad05ababc227285c24ab63fc93276c01f02fcc1b0a913f77eb4a38b560afc814d16cf5c1e7affd042cb4edde9da58489ddae42525ce8f2ae547132dbd3c8ce02b57441f1ca2768a0392b8cafce5a33b3b2ec8b98b6c0e5c25e45fae5a5c155cc88fc7b7c0035fbd8681cea1a70cc331c18330a6ca23fa09233500f6c1c95f569cef66e20a883ef52727cdeaf9212bd36f901c2d04f548dcd0f1a3ce98ceb8a27935489aa857f954f6433f187ef269e9110e44e9983bab92225fcf3d921399bf1e17fd633cb6e53d434e714919a28a66213a56a05efae96d0726b86dff5ea90a3449f2d08082a2928784042f28176a4cace0e70d3a2c7e9f4a05b6cb4dd1c875dcbf345b11dabfd37f1efd76b60a7b6add682e0f2c4276e02f90fe8bba0c2ae7d1ccbd6310e97c8e305ecdf31ff346c27736b0f1e75aa6d0b68d5ea8376b21", + "276184ed227aab3db248d49e85f1572fd24fe5002a787b92a9e6a25d39d6270d61c6e39716b49faeec3dede812f44f3d5ed15b48fb6faf8c70362dd3819280e336d5098bbc444b479b74ff690829a0dff69c504de572b7fd683cfd5c02d256e54a5067dd1ed47bb8191a9d8d9c46217624b966e02f25f7d2d3cdedd6728d885be31e676f6463e89ddcc108caaa966a88e73fb5b1e8a961814102913329a62e0eba2306a021e0de042f315081313edce9404da3a9161298bf1050d82d4a3545109e7729d6f9a0d42136960618989f3ded867d48c734a012ff20c3c01b5cadd45851b095d3083958ac0079353f859170ac77fe04f3f9820383eb7ca48b64", + "03600c35c01199c4786604be203108c12eafc011e35da14245822525cf484bc00e281b2e38d4b7cea53db5b4fde79b8efb2a16d5476f9f6fc47b63d88c0bfb400a295c6019609f004b9b59bb25e27c306c281faf675171d01041c6299735320617a84f64b60c27dc", + "062490ddef78f476ec31041caebc40eaa3d1959bc16ddc5eefe30afea4a7201c66b805c7c79f31e89ff10851085fd61b12763123f6f2112310af13cb405d4e1a784da1070c7a25e8663d8b5429f525281e2eedadd5afd0beadfdf50ee578e11866659bf8bf8a529ca9576244318add5566cddfca7eed14ce64544a5740af45853d4c44b3b4f7147639cc960467a267b227c0cb0f3229c114fe235027a1a84f81d7ee90425bec5c085c2055d2f4d60be83a9a52e6ae57c00b2f7aa92db793f7184a3c92af2ff6ece1b6998461f5f26f1fceb4ab6639a3d7e86085027919fc1c8ebe7ad574942cc3e7e99813845e1ed3bd4891bf812c06072d22d8e36531" + }, + { /* i=2206 cDividendBits=1497 cDivisorBits=430 */ + "88d753941e75dad1a6c58d661338999ec8279a571a75d90cb087ff783fd135f3b2c80a8d16742274dc5435ad31113d95d272173b602fd9a8b2e020617448784bd819b8934c186f78f4e1975c1d3eab01f38e7eb42047fabb49181538a4fe6d5ba21ab1d362635388104a3ca42cec31fa2d45012b3ab2df2057df3ae3b0e7b081aa1cbc85dceab32b7db776f351209158af288afcf2814549dd1ed2419f68b53411f329181b2e702977127a6d43ec5cc35270a1b71130db77ebd858", + "174c0a698bda7e3db6e195cbe304b9ed19f27ca1a7d367b9a10d3295e260b7e7b463b4ee2f94492dedb34423def3d1aa5f5248ae1a5c", + "05dfae8c3f9149171647aeb40fb81e17a5a6d860549f2ff1b9cfcfcc1120ee14c48d069d2ceff39cf130233b58907068335b3006c8aeedb49fb0ea1268de226e45f11c45280d8ad7bb75a69cd9b5ae835ccbe84ba9d3ba693776f4543caf3d0cc892bbe08291643a2028860e3cb9215cb097c8f6ca18c265d000da2ac4e8ba9f3685aab52912", + "0f76fcdb0485a255d0f4fbcb7990f04cb2eafcaf0de5dc9a06481728248ce308c557628a4f487e0cea3afee27e68f33a3508be6941e0" + }, + { /* i=2207 cDividendBits=2204 cDivisorBits=583 */ + "0ed50ef92b257a7b4e03d92f6abb0839f0f44ef392e49669f19806f872dcdef805c4976ed2865ebe535e8f97aac7ef63ee2c292488d04a60fdc3c8bc4703db9d9ab2ceff618c505c1c42273239bbdba7d26ba9c2bf19d32dbf840714e66733676a9f20b127effc33a6b65b15128df1b366b9b9777be2b45b398196ca8337b2e7a4d1504ea6bd37ee89da2a815852cb7fda96d74c8ed06d607fba5fe8ea506f2f22e5d00f5c5122c980984eafa9f6b69a286eafa8dcecf5f649d6cb016a1f361768bc29345c794514510297ea9fb8fdcd80adb40eae2155fcb1f7834aecf82532e03b21fe4ce1e132844e910706914d9f2954ecbc2330969fae105fa4122d08f009fc749247705169401355e4d1a3633a0b1133a1", + "36a062f96c551ce6333082d28791070f5263b8fed062dbbae8f82170591e141dff06f3e5c5668c964073fdebbd0f0e842687b05bc2c26c129f18f2baca5cf73b1bafebee4fdcc40ef6", + "45826b15c3b6b38f816fb211753bd158d469849764bb167635c37b23aea05ecb989ff22bacb20d356498e5daea9811a6c916e6c470ff11fb8af7edee8ebf54d51edee1ed9ed3b7e7a0c6e24630b724572874f0740b70412fe0fcf495a5dcb3e64440f14a6708d8204e20fc19b980c652491883ef463ad605ab2147b55fa869b5194d0c8935022fe9d9085c207e77f8c7c947a8e5267fabaa94f777cf31a23aac646b7656c34a9f25040d4cad803f810a2e2b38dc16cc5503f694f4bf3e022197c1542354e2e400bb2a55c4", + "163ffa19f077dc58090330b1b16d1bc1f5515d7d004442710982b1f3e5c6fc1388e90330eb769b34ff6b93f4e88d9a6afe0b2fd5d3fa2606ae45d02c0273c09140d103e2afc5a21149" + }, + { /* i=2208 cDividendBits=1484 cDivisorBits=407 */ + "0e0e0717b9340d6072049d02153691a18356a0683f9d09e9874db5793b846585b329015b6bdf82c54432aa8684a8832ccf531fd30cdc8a43c10445cfe204538be5f02dba36e1cf8dcf8dbef8f69508e52502e2cff773a48c494f3b98b72ae1e5ed9dff97c7aaa9eb39ea400b03b03a851037dfc415cebb24a75db45d33e61aaa6329d06f475328dbff6c4309ef65845e6c10eeb45c00ae615ea409032991a8347d22c17ec379fd1c644ea50e991385e1769bf061e7fca4cdd0b3", + "24d0234f52e745bb406fde280b422c45930d6f292fec1c3964574d4f521668ec0001fe8d1ba84526b20e0ef0a79fc7999acad7", + "61bce486a7e2ec465cde7f5d6c20e90d202c733c4b785b42481e7903b7e06966b998c2d8a2d4872c817ada17f3b5f6aea5d05e7a4f7300173221d7d5528f59c0e07fa1b7f9b871e872a571356af1379f2e36db15eee9bf724c067ccc597ebe8c3f5e2776778a5b59b2089813e13a51861a35bd1768a573b0170294bd5c2b337baa176947e27ee2", + "0776bbadf9300bb3a3b52b3f81db9b44750302c325c5369666ab13dc95b542bf1c3b146b7139d22c3563eda97690152782ece5" + }, + { /* i=2209 cDividendBits=1586 cDivisorBits=1120 */ + "a94df3f34da550f60f94d2f1e332bb24d0c7a915064dfdab643a4eb49205c37ad0c5410596a9fb07d0a8e054e651a008b078e2d5b85c98c2566f9ba760a154407dc2bfb3cef6e5ddff709811d7b4e58de4bb31632122aa689a7af15f1bf8c7c93ff69f87ba42524d272ea5f507b1e65875b8021037ae13dc73575c09486b6bed8c39ff94b92069256fea67982764c3ba2ce2c8504d1ad1ad17f0955bd716cd4501947215457ce42118623a3d39fa61c6200f0ee2b06b78c32091e1b09cb09eb0740953062a9e", + "d175ad2308a762fce4acbdba130dd3fe80d8209405f166d45389bc574269d4c8b18cb84b975ffcfccad9ff76104d6542231981b5163085643b9a84e61ec92a985d324f4b4415899f716adfcc4b449f8b4bef04e49b06ebe4009d830e65c357bfd1ff829686e64d51797d280e5ade11c87bd24f4a8fc898f58e5b95e8a0f2c2d459912f3856c6ab39bd87fb0d", + "ceec3382d87e7107254f0896b9688c67b8ef7655523f6833789e26a3f93e11ef664ba3fccb2bf561c8d2f2e9104d9198e69108c383ca98d70735", + "c463caefde318edda18514625eeb9ed865bd34b0f43f2e3a7663a8a94d265e398de3f97de556cf4f09572796dc2975b64939f480660259689cd800129ff83586f8c1a0ac46126346c21776909c90d31fe6ab7a1f222cd946b5eba3788c5322b6abec5fc568894ff4f8e9bef20e4f95ef4576758124193d53750c280fcde26cd0f2ec4ecd5d2ec360ce16d5ed" + }, + { /* i=2210 cDividendBits=1190 cDivisorBits=655 */ + "05d633541e1150c209d23c1f30d3aa41f03af22bb785a0c49590eed475cbc706b0aef63534efb60d4055a674a81107a4ca8028772b563715924c1fdef81f38d68ef1680cda5270c3c281c21857fc8735283e2b7057acbed473bee2b776a7015eb0afe348d3a17de59f734fd9f5a39e8fc7b9f8fe8f4073586e9ee27180244b33a9758e8c839a5f34082a99574cfa38f02a3c1fd6fb", + "6ba79d1dbbba94dec76ab92d1308fa092edcb8bd6fc53c2c5d3635b2181294773f6db2bfe831a309a86d050e88786e92dbbda2bd58dab5319957aeefa95d044ce7a464e20d89a4afa82435df1d6bc2f3c494", + "0de12ae1f3492e004fd715288b25cbbad3ceccd3b31f5b690f6b2dca2b4af098e89a3ae3f196b05cbd5ad38a2c5b7b31897a1c3b5146587c96dc7e11864139c50e15cd", + "0bb13854c946e6534eb1c91d5c15f9f18cefee9f5f25ba4b98e6328ccf1f0e2627efc78efeb9fd3a652afeaff237a09b021a63c511663a37692bb70214d7af04472b429acf524e93000df991f1527bb34877" + }, + { /* i=2211 cDividendBits=1346 cDivisorBits=599 */ + "e819a9958b501f2feab7530c25641d9b4f6d66a7986e648a616ff6734802576c87a7582c0f2ea22d41342788dfa7b3649e33014c2bb94905e981a3e6a90abbc2121894eac3950bd3bcd722cfdb201aa100e4906b89b3f4a1fa7722d9523ab1aa6a0d125bbbdcfd5a0677370e80c9bc89cd5f9232cf082ff43e91a72bd57c7f1bce272e1a2806070a38b6d048e292c3b43db30effd2cec48f4d7d2cb7a29dfe33634dc6b0714cd519", + "2cf84eef8875954d41cac919f2ac5d27f996cf4ef38e17666b2e27b58f01cfca6fc2d239e94ebaf926d7ad8798b7ba69ca02252d70cfb17a67288b34eef95ce9e725570fc28b13931f8529", + "05294651c953d71dccf687fb2609a0cea360bd5b56c99268a8712b77d7abd32788e15f58939bbcdaeac844f931a482385d179c635b79d68c00fb33daafbc5f7ea293a29ce5f1e4b587054e392f6cc9b86787bc8a3218b50d289356f12ff4", + "1807f4fd98175ba5112affe8936672a993efd06bc37ef232f8df29b159a8a07337be014a48e79b93ffd2ebf389b5a058f5e15ae554f1a12574291d25192a6eabad0fa3fd81aa124c366305" + }, + { /* i=2212 cDividendBits=571 cDivisorBits=198 */ + "05980e9088c270bacde811ba566ebb4669385c1a8b0865b65af912f6ffe1e41e44c5e302c6bf29b8f6be72fd2bb3bcd2c93627df790d14cd1af714bb79a9aba5bf7b95ee69e6ff79", + "17799cca924697b098da59c557293e47e254f5d6f392346b79", + "3d00dc5490953057daaca4f1fba7f4c4f80e762776510d39507837ed8f3e5d4203f66cf5dbffa20e65b41c3423874c", + "036ef1b4c03600347a13e0c73cd63590cf271bdb4a181f488d" + }, + { /* i=2213 cDividendBits=2477 cDivisorBits=2415 */ + "060cf92040f52fe514b1648254a2c3c3a7605991ca18bc4e054e205625f77a532047102550105d615b648788be26049a74e07354b5969e7174ca791ab62637cd4827891be1299aec53db819c4e430f2b3f317aa763c89930802aed94e1bff6d1ae72f696d61cf69ddb01ebb677b4b51a0e07ab2fcd253dc587d4612263a7cbed3618d731a89b1d005f47e1cb547e176840e4cd351bf6b63c6e87716bf00b10525a4f65cdb5c701236d04b4679e4a042edc5d4de539a3bd44769c9d6f39f9e72ae00e00301b14f9696552f2b438605ac8d04de178a8bb0a46299c9faef6563a4754104698dbe93d2d27f376fe437c16c7eb23b998849c5e6e26498d559e4047cf570192faf0790ec62f9b0070d751833de8030a5407efdec2772a338c6aefe685b6feb64c010427c3a89081247c5ada0852670cbe558b", + "287c05ea96980b2254b3ccb9a1ccb92aaa5f77a1fae7700ed94edb74e72612aa4ee81b665ae74afbe1d21f2cfb18c7756d1f1844cf0765381b6eea716a948a1470fdc96bce73535c7e3804c14cf957e013616ad93054624de052abff6d0b60cb2019f46d5e39dccebf389b8fa3040665012f66cc98cb5699ca09831d7f1d3c7013828009dd8f3640f394c89f67f66ccce4d1ec5a6628335b153b8d3d5b64d6c3f9e32dee8cb621e8252d9976a8a46edf3ff0622de9f258b6cc537151d02bf1ec170996e0b2bc6c02b64f9f8408ccb01df1bb696b383ee21ed2ae5e0d44e09c0f461dea85a9307c38e4292a142bb49fceba5a97d4221bdb4bc277204f22ea8d76b5022f7c067c4193719b52810ea62f671896d7fe18bf6eaeaa4a513905a6c7d1e10c9c8b4141cd54b037113410cb", + "2642cc13731dbd33", + "18cff3947ed39d143ca96275a9d12a342358701908a575f4a725da14760456cc6a1d9cb3506d93785dda544ab2f4c10c6b234dd2a32764598325f5169ac5ff93c311d89c1d5b75100bde8d8b8099b73a509674880c8939e876f77acc2f113ecfc2b9f9345c725be512cb0df885c8ba0136efb84e2d5e7f28e2d6367ea48dc0b50257fd991caf9a4cff992b277b26a96d1a8a475e9ee8860bfeec0e24dbd35b6ac6b5d1bdb8ac5856d42ddc3ff45f70c504ce798a8437d85817a83fcc203941ca08761c6e5885b53eb6a09a8d020a2cb360f54d02113393a66911c5056d0ac1f1d394a1438de6b9d22e3e4552d60bdc8a2293d920f1afd6f8d9294ea7a39b46c520cbb7a584b18a343d9e9b7c4e9c7496be08715ee4058ab41d19e6b50c200f456fe43a127a307e84363916fa1e1a" + }, + { /* i=2214 cDividendBits=63 cDivisorBits=4 */ + "580fd66da8293c6f", + "09", + "09c8deefbd59ea45", + "02" + }, + { /* i=2215 cDividendBits=2269 cDivisorBits=1186 */ + "1f1f718803ccffab6502f49127b0e4d3c57c52289f47e9fd268bc90c19293b48a1d39e014b246eeacd3f997070b47c933f5087e0a91e9b156c3dbbff177f9c45be8ecdc4cbfaaa8adc4ce58942e7b6b1958e0d30793049531441df091527650cd02b097cb037136d42ef2f2d2f06f36cde730b45b4fe755907c765e8eba82ad48282e27c29fe139004e03a7044b73905d153f694410e0683422b6862fe3c37aff132510a6485e63645c0d99b849270db93f0155d6ba9531a9e4c83b8bfbd19815a4a0ac69a7726bd4c6017926af003f89136beab9c9f7d8b41f2c41f57d1b869696ab60a2e19531fa8d202c5535d4d46bab1cc6cda26751b80fa428e28fa985bbad5ece85c524ed9f9e6f3002c9d55a5d5f6d0ab60d7f22f20171410", + "028e837567f649e86fe3ce59698a93c028faaec29ae056b1de8e43d189ea9494cf9bd58006a22456a468f066002c8eb56fc674d3339d2188148ce8f83700d0c6057cdac6295ac0acc2bc26d2a4b7bca917b86777b958c3fd5633ddcfddebaac77c071116296c08093585777401a2b3358ca2b77f991874dbb32d643fa9553966c111745f55fc6839a9fb0c249b312ab71bda5fc44e", + "0c2c4ec9657586f0ddb88d9158edd02c843ef76dc35696f927214b12c35a864ead965e4db359add961934fc12b20da5f17ba57da0ecac4424ae13844d02076d98cc2cfe53757517e274706168964ae471ef4b89aebf13bd779ee83308ad86aa4ce9301589f364ad8da18786a2d0a9fa5163dec8f405bb531c10c869c3af3a64e7d93cb291e22ce8f", + "b8698d0939a0aaaf691a3f705a7b9164ddb39a1ade76649c6651d35b84a6a5fec16e918aebebe6202dddbc3de278569f0bc3621a7004381c6b9ebe35c117a8dd04e1185eee8be2d27513a5501fcf4f8ce811f70302786eacf02dcafc15ef96f99cb28a152d310d57bc1ef4cf24bc293d509e26ef16949b7f11a288a749918e3bb306343a18794700a62dfe0d3c8ebbafde45a87e" + }, + { /* i=2216 cDividendBits=854 cDivisorBits=789 */ + "0129ce7d140ed68cb131a1e015dfdeae362d042a5aafc5d960193be4d8b5aded95ee057e515bc8fb021bb248789be367b608cf32f9e58a715099a68f256e3a11193bdc0263681904e9a638a7c297fb7b6af1ee444dbc18cd4aecb6c8b2e60c3e44042c22d14458897f3f1a", + "11f64ad7c831f90fcda1dff3032d41160bff54773a2804060369147deaa89e5b8c4ecf0f02679750c63b275c7638f1ebf134b6edb1138df7dbcd71d7cc1b14565bcc78444dc91044ebde473c43a54e9cf38b916b09823f86709ec287b45a1692f47735", + "109469cbe125dcda", + "0c3ba080a95c480bf3e1b07473cf40d781aa12de8c1e24343d0a156901e280d5c27aa9748c8fef4567b4581287176e8d42c0adc952a584982364c43202e3ab02bf3db9eea694cd5793fe2db433e08dd2c62d8010f692cafb5796b1b201c8b37f372ff8" + }, + { /* i=2217 cDividendBits=2919 cDivisorBits=2666 */ + "10bf799b3ead843d21f7e9ed2c4b20a46113e61dfde6267292c127390e5caeaea3491182587a814f8516e79d249268a5acae16e1cdd481d47a37228d5c1a4f2ff6b4569cda173e12b1aa1b3df60c04c1fe755041e584e8315eb6ae5fa39f3ca33c65804c44d786e01838fc8248447c3980f7c234607cb4ca3ffdc07611d557b73c52a0b882fe1475ec7eeff60562dde2fbbbbecf595c82c2da79559ad8e46bc3baa57f78b253ba4c26f6d2cb66f1018da5baa56bfe2d30fbf96f3b63674c0a097ddbbc4c7eb962db8f6267cfebace6a1b33b9e1eaf641958420a9bd5bb1a27242ef21f994889405b0c8b66373d4d0f67ba9119c8da36b1187c704b37c63b70c812dad298b11570521782986d6851189a62c91555d677696cdaef81e21e85fd0c74976b0089a13e20fd549f48ac39481830b1e3e38148814d9a1f96125c129c82e5280b79f42b14fd9a092a72ff8ff86ccfbdeffdd8f895daa1c615efda6df6f0f75698f1284b248e175278acaf", + "02ca7f0532b83370e62acd5311166f06e5a4c1e5900b44b1548da1daedb8892bd312e5f6311b3f413c9671ec4912a2dc2424b9c95fcc1e076672a894272b72211691683704707ca6a596e9bfa9feb4f1b8faca9bb847e1abc4d9a1b1fd0c69cdf7c92429187abef8b1cb2b0d97cb5d6d78300e5e272cfb53b9fead67b049adb17b20bc370fce027124fe3e04e01c02162725926828f8accc03fbd8cd13f2bb495d3557d34bab9a2674a064cb3a6280ac65a4cdc117293088bd76fff271a9fcd5571881bea56716576252bedc170c3d4396d19c3e24cacb7a07f4e03ba25548ed21397faec87d7ecb0f487bf1a29eee3320dfc70ef8b776f3a80eb7cda569dbb252cf0dccdb0022ac626eee61098757bbaff8f9d2c098ea6dee8fd3e17dc1b57a8c2f6892590c17ef191e5a271f295ba322691a690b289933469b243e9f23f227e4a5f418bce8eb24877f0e53c775", + "06002dad513155a028383558692e6897f5c1786da5a380446672b864732ff0b5", + "01b45c407f19ce6cdd1045c0c132e658bea0c02a1a4607d4a802dcccc98694ebc732016fe40a9c99a3f84bdc78356b8a88442fabb3b6db6d64c0cc8bc62e0c1b6a9ccb74761053555ee51a1927f0e1feab09c98ba2985f08a50d033217e180c54a3dd87ed4e369e72dcfc6d0ae79743c29132f381ea5ec49452d0dbcba2341256ca63e44528849749a33f653687d2b7034cd43855440ecc33ef7138a4d84493afbe628fe8d63b1ef0b23e92448b41c7e18e50249fe166b76430b6ffb259b20fa283a6af69df97fcabb7166e6b29c903dbd7b44c59064dd872ba66fde017fc671ced481fbb711eb8c13e7ef8e1a4b5be1b39381c4bfc63086fc9d3135d9107faa99035db84c5e7c69196a91cf70a2c72b60e9110b74f8cade87066deb4ea61f587fcb09f0d558d90324a6c03aa47892d924bf8c50d035b76ac8ecf33ae0eba077e483132ff1ab97565e2478c3f6f6" + }, + { /* i=2218 cDividendBits=762 cDivisorBits=409 */ + "02c5ca7dacf5669ad92dfe993aadca04207f159850765d1c4d495291acbf5d7c3e189f4ee120d035c9a7b73b66b0f1b81cc4ced3ce9f72f29c538568282bf2e3fbb11968d6c128aa40c0130a50934866b9e96d67d85ac02244ac0b5de275118d", + "42d2cbbaf088ccca380fde2ab3d50e60642e670f20ba32fe64b74a970d6211ce5b9ae5d2df29a3b0a396ea45a6507b3f61b1b4", + "0a9f34228e0a5eac46bef09910755efc8d5ad90d2da6c588413d6d522a95a5470679f4e7f4dc0267b1d92fb37d", + "01482a85fdfea0d30f909088b91e48cbe655f222391f63835fb54e73683dff8406a3299160e08f4a1302888462d5d96c7470a9" + }, + { /* i=2219 cDividendBits=4089 cDivisorBits=102 */ + "df0da2ccd0188a0567741b3712211d3755d5c697b029a5342fe27a83f23a044037abf2a4703f8642788999c562ca547a9e56068189bfab10f23fcceb8bb21d71423a883d00fbbe74aff138c977a11b5b797bf64be9dd6091cedab1d858b475fa1d3109fca5d1eed31e5f0c140c86ad26567cf0d486e487746e6b5e974ed8ba6c0ab7bd6158a261b33528b6a6325abe4e66d519fd6f326d3992b5cc23ae988d8a1d48b5e419d1e1e508065e725026f73706ff3a2c52486d0e7f18e2f49665ef708b0d559207256aa176a7f4f88f2a3bb05071d70034c4e590d5cf4a1aab100b47e4a8de34dc318826f38d146a1896b1a4d87f90164d458960048671be06f561f5a056765e158e23bdf4fd79f11552b15e7f92e8b2f7d36a04d1fc23371d2e2ac9fad78f6465027f2c4f8c9dfed35e203eeb88f87f336bb0c63704f74f79ae6ed479d04af55e4b2eecd8c6214faf41fc7f29c902cfaab55dda880dfc6dd7e2d7c5e4148f16ef33b6daa9b1cda05e28b7e4b458f85500cc10afaa4de47668f05a37157ab9594aca0e96e0ddc4308127f23b7d353b24212b884baa2e84d36c87810a8b1060f433f2aa7afcbc33c36baad238afc3ebc409cfbd6f48bd0478aee85ec1905c3aa93f0454f2b5c4c4e64a293553d57e342608918c08581a18050f61995a5e21f5d01ac5e2074738c01f0c175276e0f5444d546240d5d99b791ea25ffd", + "2c227e0c6f0ea7cdba3e310e41", + "050dcd771d3e23cdbd98ff1be65fe277b39abad6ebbc50c42fde933f032bece5dd2cf6baa7d148172464d952dd6038269f63023531e99dcc88cc28762b0ad70efc12943256970c74e0d3389ca589694a5529c32ce6050000a2a75d8d396f12d6e547e944f22048736fc0f08e996a6ac42d018258df84fa75a2209f26bc0474ff6b938b90e0896e1e211cd7613e4b2436a2696dc324ce75d0888165817840df38f882c2216c8cd389b226a8d8673ce55946f1afe6b83e60353e89f56e01f0d0d3403bb8d8a61f6f115ea4c1ca84c63d02d44e6741fd521f3008b2f7c2a8a0eaabfd806899e6362326538277ff4e6cfdd72543332c0cd1325bce281af1b4e571cc2332b35ea783e7b480607f32d2b45c4020db2be9aeecf42dc741d6ac865e50c97db50f5cebfb0ebd280aa61ef6828c72a668410a81016035d11c2984913ae20bf90604f77c1149667e57f328220c5c9208bea8a0ce187b9fc434117191d26c851097fc59204375b1e9b4baf344fea6f07145e65b51ecf9a3c16ea3155961b0b300a7cfc703e1b4d042b9bce5cc8cd18afb74585e2345f10c1bcedb923e51fc0d33f68c2326439c1425921b436ebd8b32c943b6c03b6d0d0e76f76d3aca5b497374257d9592b3cdb3f22c47363d64495821fe8521582bb47055821ed011d6a9a380374c0d1e0e29b2e40dddb9de61e722fafe70", + "1662a9f65b402512d5af8da58d" + }, + { /* i=2220 cDividendBits=556 cDivisorBits=475 */ + "08046dab13e3e0ddfde7f3c417b30d9595ca145fc63294df80d1e234b9e1f397c43d501a165d874e8920c20d971e1c3e507b8017ffba72841beb25e386d25e592a29acd31706", + "0468b77482e0d2f452e7874ecf9812022392a907ae12302d3e11a6f36325ddfd96cce958da1ace8c403a37224c7b663e3e2821e6ce337c212b2c5cd7", + "01d180ecf2dc484fd71478", + "a8c8e5b4eb6ef9ec9ab81aa09108fb7c8125185613b506dc4ef9e4a6e6e168e2c1f39ad0d5698364bbf96d7852267edad47785f8d58fdda735c63e" + }, + { /* i=2221 cDividendBits=3999 cDivisorBits=3480 */ + "2235638418b0dd8b85743fb99a33aed0be25c152a8f9a4f169ff6077f5e511b83cabb0a2ee0b7faaf4c56c4525973d719672a41567c601960a0293bf90638185f2a17bd9ecbbd4a823c2eb24fdcfe4f7e77f34dbce166832bc59765f878931a3256b49860c31b348a2448c9da6ddd247774f8bdbede60cba720b59f21782d7cc8d6e243ba06e39800e11bb655fbecd130f79e4cc18a3e7cce192a794019b4dee5f8e344d52a5dfc64629398e9478b189cbcf4858e156498eebf3b57e6167beb4028dc49680eb933a979a4a7d566bd8077cc7c576a181e4cd80446d3aef053f5cd10b3e868dfe26cd99ae4669113e77d3948906e20fc361bbd0f07f434bb7d6fe1d2da48372b7611c43c70c9217736605f1a765b9425f0d27dc26735e212eee3d9ecff560869f810eb72e593475577cd14fb7bda0a3663020d248cdd8afa4e63de33cd9b3a86279c0e7fabdbcc06e5429a28018295a45ddbd310abf7f2dbfe11175f1cc60aa5932d90f3028176ce5addf1900637c2a7703ef5962bd6c9e9c383457c11715b851a4f1555d991bab96701c56a09d08e271b4e54986e64fcc85555db168fd43a0ce2043ffeb792e8282ff1637b7b46eb982cfe9b5d77c812933663987d63b8b201a52646b7bb511ce06c5dfa18e1afde469d25b78dcf0dae0bae1482764019128eb1187a09ee550c1d5e3f742967cd8", + "14050bd1900f4a290e6f430b60bde088104bc90a63e22b536078facea2135abb74e3f5412c5a1e397f4bb97c6a44e663300fdf7f03037b1ed976fe858bda112974e0d9c5047e8ae9e8a5293e49b0bed1ba14f03eb4389550d07d7b6126db2f887ac891f5c98dba68af0206f792e07cf6267c36df75ec139ddd54dc9723fc9bdeec493d425d7b280f85902c39c658193493c9d247e111069df04a0fe1395f74402b321dbc16ad2ac90896124e59559cdd1581a87716d39dfcddb4adb14cb0882ea2d8015d99e27f3e26b782307b9b0b043504c9b32c1abc1494404cf436f2911360c742b6455487c010fe826cb9f818bed62c23402ab8c9894950832bafdc7bbc5b555dad0ed6465e884823cae8cc50a9f9fab5d718e3944e09aa13cd09a40183cda882f135ecce4e9655e69e7f50c66ae37681b2c22a30f3620064aad649b4ce4c6f20791f36efa28cee24d1e160f2ed55d5882818e6d9c55a589ef88b545b47347e9e1217d2e75de11b0c382c7802056dc0cce00f06387f9635bdc64536470604f0e20f2128a13c2b47f3b8d4c139185f505ee83d374aa62c874b753f1f46070c49bc4a6baceba92a12c4b9c86e0548376216", + "01b57034db9175af8122b10554737b4c4b4901950d9e92c1ecc083f3ed0d167ff1a73dff7eb0e2dd229596e08e4606b3b56ad7485e17a9012e209751980655ea34ba", + "0554627b7d4f88664aa4cfdaefe7dbfdcd22fc97da9a01ff8cc917f780654191058f17b6bf118ee68f13d3f88dcffd41f8f0ab35927a96e9e98477f06f4c2e975b378adc59794ed51424f19ccb3821c0007b31f00160567250fad05822ebb11b3dc1da3d292729a064ebe260b5f619d66a035a65f4cc5297a885bf2e37abaf70f8551e61f4ded1836228fe50f24380e073501ea347d38c30112c26dae539a2a32d1d4897d04bf70fe336f2f4e2d47469acc1332e4d4df84cf6648f84e198b71632644bf8f9fc468e4436ceb4367788da9aa9d197a6a76c0e46b201015446f2cb13d296a78c86c502ad73599ae73f335c6ac3d20d5cf1dffd17e1f5793f545bcfc55f797395aff762ffde8e386a6badc788f5ed8fd41e936b0aeea49fe584407157ddeed7018de4ec065764ef46d3c9e0977477fc2ea4fb1b594267418c16fbe309431beced3ece0afbdbf8e7d8cec1739cd32036084fd2f6585b9b609ac1c3c8f4ffca127a358e965e6d3a75e2232edfa47f25f4e3978e689d64089ad89f21d887f221f956e7bfb481c6f6e88afae0d9f39b2f7878c585bcf8dcc94380d23bc0df8a04f254477186cf7cc7278f1ec09450c0dc" + }, + { /* i=2222 cDividendBits=514 cDivisorBits=150 */ + "02f867c6aae17e4fbdc316cedbcdc92851dda0b86ea44d4760095d2f4497a095e5617dbbf742e5d4ee86040e9e470db57a9628ebd5ee084571f6f74d473f1d366a", + "336a2978ee430d9cc38013effaeb2016a905d6", + "0eca268947ff1a831fd601a3ab8d7d8d09fd0bf42b84435470ca8a40b71b4ad8a81776158c11a6598aebce90f248", + "1b3b59f3025a1dc7bf78357c245d9d9baf463a" + }, + { /* i=2223 cDividendBits=3159 cDivisorBits=356 */ + "6d95d2e9288b1cc46c090da916ae2f771355eff5207018fa0bfbe510500ffc5683cdaed7cdb9b0e9f1d768ba1d215a35060d6003012b0b780a8238cfeba52b85d456e96998abb43471889efd48a1a2d20f646525c0db57f7ebd4828a7994311c3ad402b13fbee0848c4b323c9546b10c1f78443d8cf516c61b61d124225aed7f484819cd0790b97f6a3d6837422ecbdd814bb3aa9810d560ffbcd9010882fa4c368a5282d9c02b363ad2c75c95c7e9c159ead6bfa6ffb07b4a1d99034ad6deb254bf37fdfb01a4fdc89e3466ccc742ef301adff2eb5c1f2d6c151d7716cd63ffff350c0c9bacbb18ff3a76db5d76717fbd41ac244146c5ee8b3d12fd3287f9bf67082dd94f16853120d6bf08ffc2663664b2902388b1a6721147a71dc619d681560d3b8426027183265380feb29c96508fecba269926e858d63f0caa5cf5db0b134200cfe82ad58dc4868bc3d13fdacc49ca2792a2b83495a13ebddeeae1b2339b290d149454674f9a23cddc93e3d9bdba725fe85b151c7d4e25f72414dc1822d017e00d9594705658bae8", + "06d87da882783680c243262b8f8becddd09efead0dae9fe072caa99021194e57b2b2654a308d0b3719251adcc2", + "10020a6df6dc4f7c4fd7d04b25f592e7e2e7a916737a8c8fd0b363b44b3007ade07683a7455e638ded225113fd8fbc83126ef1d3cd759f7653472924c76be62df5881a31a4cbb75303b632a900fb28d2faa4370e01f61e6d4a12c506d0cbc3527e4b87a9ef673da8fb3a333333962015cf60c07a7cdd85db151f201b5e6ccd6f893f67bebb2440f17ad1a0619aaa605cc02669b4f5056c7e1f8d3bd870ba661842b078ecc6ea6d4b8b263401860dac1ed0225e125e71fc0ef8e39caf264bbeeeb19ab2cf58546a0624331bc8de3f66358f9439bfb4a9791e279678eefb20b78f93e65480205a753b3df5ba128648da9a5596ba84076a0ce808789bbe7279fd6f83e3cb3d82344111040eb701fe087b1e6fce39bb4d1c67ae5069afdd7d4dba755e315bf7e33de90e0036ba08e81f113c2d9cd67bd63add26c243985fca7619da54a62cab159307068d354978d0d5b064318b67adc3ebb9537175168c8f8ec9", + "024cd0acc9a1231d456cdbccf5a0a1b6e5fb185da3de4f2ad87c430e37420ee84d70c50f60c10b51b5e56fca96" + }, + { /* i=2224 cDividendBits=2343 cDivisorBits=829 */ + "095b5fc7ba4a2ea311dc17c8b3f602415f10b2df1e8bdbd7fd9261e5e7a19b14a2035dad17e656163247befdc92665f52a2d0fe4f70cdd17c9909ea6dfff0aa50ea5190fd239735396acd7ecfa0339941c28a9b82e3847a18f5c96660e5e6f7ffc3fb549f511f71412372cd5b3d28e24e2469f9e6b5df635214216fc4c1c2d25167aeed04f86019f8cbb731f329e768d9c68c0cd403c5322ae6608f5346e2394261f5ca500ab0750ba81717606ebc6b041ad935f2d97156407d374a61ae07f0d3b32832dd0072202889a5998e7afef73090b15805ecdfaad5ca0c38994cefb28b34ea3cb146253c941657acc51da62fd6626fc272c5d33b8fd3e66d8de8bf3ab93585465179f43c34078d05983b179a5f517476221509b7f60539767d3139985c9b28e2e1f", + "125909f0dc29e907b234aafeb419bd32fea6191eda93e8116807f4a55e13c47d8ebfd3bcbd502e6da907dba9e2a3ab1bc76d2a7c1a8038d96e7dd913411ffb07adabe57c3b321fe937c6bb224031414256ca607ed29b3a1bb743393eaeb696f10c6215e40193f841", + "828dbf071b8f4dea377dce60bb1545af15a811fd2a73285a92a5c922ad521a61d35ebcaaef4526c8c600cc2fdc6345fa2acb09d0b006d0175f370cac6adf43d02dc9f4bac36634b815735f2bfcd0f2802d0929c5a6e41dccaacc96c1db827d52d18452821f4415071e0a14c8c9418c448fe1a57b095aa3c2ca20ca6c69ba81af3c8be4a0b00e2582da44bf75e5e32951c6d8f3dc524fb1a7a414e540a0cb3c356e837de37d5c72cb340762f745830768f47d00ed2f8ff774a56a02d041", + "03f26069f4b9a9e8112aeacf1173432424bb690bd1c8170d78ba40c0b611485567a3433fe6e239e68c1aeb973f84fc074f753f7f042a06c33cf2403ce3e782ca92be5febcb700aaa6c56ce58fc77c81583554663ff3155f10eea703fb29329aec1e5f7c537c5559e" + }, + { /* i=2225 cDividendBits=1300 cDivisorBits=547 */ + "0d5568d960d6e91f880a502441b3c1dc2382c850df546e64cf3f87a64899c1642cde2c5a741b6d45c012b4ff98dde0732d2bfbe927c4123f3d735ce3afb0a050cf5c9aa6ff878e8a422bcc5ca6545170a487468f7aadaf7f206f3ec3984cf00151a182f4c26be011b21e9ca38a57ed97f2df70602ee66d4ab88432ebdfc95dc58c0515be4785ab6ec3931144feb12722728d416a730bbb2635bc647d4409239088950e", + "0177a464c493d99deb501276e01e70a7dc46d8afa2041f6657bc20fa8168ca7307b9301cbc1de2891b1b6ff60a61412c18edaf4165f1185997763bbb7073452da44d894491", + "09163cc681791b0dd6ddf2eac7c541d7f735641e5474bc9160b71f195cab2108c64a8a958bfc67fa80d6ae0f992aebcac7b4f3923f70277bebdcd454b57fafba838be7a05d8ae17f05ea188469dbcd8f9e30500447999277111f81863fd637", + "a25dae2d172363e4c48868ff896569d9604344f205227d900174e77b4403a041f73af8dd51b29d74f4578c9a6b6f154919ae653fcf8f739c6adc45180320d749630aa3e7" + }, + { /* i=2226 cDividendBits=2321 cDivisorBits=568 */ + "019d64db56a38b7959018a7e04854980ef58d0a4f98acddadba1f20d99e039d83e5fd6b8211a66d330739db2505fbd9918a894a4eb3ed56d3de52c374e5c40e76337257169238e6cd17b89c161b06722ec6f453a3153011bdcdd62cdde6de0391741446360c50e94f92d494f0dc5daa28dce0f4223fb25b2e550e9572691e42871315045f86d4f3306e05cec38dc5b118c8d62ec82a566fc32a13af9f672fa9e45e15069a351f097750146af9d807394b0c8a646f3ca8d22747824bf40ef758557ffda7baa43db68d08ae7f4eb91a8b760dc60134ddb7475674b2fec3c2d2c8f3b870694c4e09f718194e4332cf6107cd1bdcedfa035676da3049ae43d19da0cca9fa96fc36ab8018210aecab343ccbac09aad8c1a8589315dd5a798f6b1bef792df9f", + "bf0a72418a8a60006b0b0c69e3127fbdf21567c02ca53dfd28bd90e611b8b28909dc50f9422066ce69368f0fd2071206fa5b3a743bc047fcd2d5beb78d75eefc7aa27e36de2e05", + "0229f59d7e5f98515c125a7f293883ccb54ee44914bc5150ec13598a9ad845d3872a10cb176a1ffd877a0a106ca6328fe40e902b2b5b7b79cd8a47d8a8c7dc5b8f91711e756324d5f0f73e4ed0ccd212488b38a99627c43f2a8a6ef924bef1f1798b8ad4ea59241b6c91ac390eef9a6b8fff63cd3225e7daff1c2757bbec078ddf9745edd2143d1f61abe20a55316e3d25d06c8c14d91c871ff0c7c73dd4b348fa0b32c0fe05e8811706e78189eb8f398f800f00cf1727f024380142ff9ee8840d66977f81dd4c19d7940e272b0dec9b8805983d7deb7da4bb6b8ede", + "074897d44577d0fe01fac881c0c1a86253e362bbb3be002905023e6f7802fd8aa8d20b2106af609dfba4b4c4c006ac795d2419e8ec6b29ab87324bb90a612531419f2d42493149" + }, + { /* i=2227 cDividendBits=3683 cDivisorBits=2706 */ + "07ce94385d929b54811ddbb923b00ec2c0030b46961c4f110ebea7cb9b94ffa05bc22794518a5f9682ca0f7f47269e07d9873716cd6b1f64ec80f9510794b41ef867cd86c76cbf9b86abb20a8014304cf2614a6b0eaf7b98a2e77ec263d8eaed3d183c765d8d1e7222a40ff29c01703a5f7e024e9263d8e81d42f301c50b85a38e507b71bb8b982f4b7ac855383559d025f0af3ddb653f16bd294c30a46debf5a1e1204a0eca0ede9cb5a7dc878c049e1f79341ed4041f6548568ebd88520b75c481aaeb06560a9af58702ff93ac0b98fdf76432fd95e11836e37da5dcaba364c90785090cffcda5bcd72688fbcb459fcd1ce69dbb6ed858fbf355ed27cf6ef2f7c1a4f10247c255a2836989ea2103680b3271408f04e586c851f975e6d2499dd7944cb7ede67de9afaef8d37ee96f701db3af925df65f3c947133a0dfb1134cfea6961043418af3c532416b6aba86b287cf9917ca80de333cb51b1be18bd1e2a0e9af1326ea650647dcc455f89696d8a0ab946d3f252ece4351a304d30784589d207be1050013839338c15a6d3564d50d342d90d74060656362d4db2b010d03f5e78b742ed65b942230a89cbc7a691e9fc5c8d8e1820bafafbff5a0636b96c811ae16fccd4b0b6b80dc59c87f", + "0159297ea24d03baec72c26f1970faf8fb5ecbba6a67887aa976b1e3a39ad7d2e69060d28e830aa188ca8507d8fabc78ef01ee58a0c245a6b8327cf64c95842d42694103dd9caeede63c994d8cc9ae5928aea45688057d249c418041a66f1d6eacfca625c6c3f9fe056c54792ca6bdaf0735c62acc4f9569f16e184be2f9443f0e408fbc15ea111cc8f6b0c52d8933e0b14f13f54ab651e93ba1610f03ab24c246f59bdcdd28171d81f6dc84f211664140450ecc55ec606be9f8df4b26eed8383e7a22ea5826fbe3ff71b541f787ce303343ee90928f53c4a09dd690a6844f11e72129b134c16be13064b901f36caf310462cc5ad2d69dd2eac25771bc2b099da0628e591ded1efc0453caa41ed5c2efab0e69b119839bcb9027dd3bd262062608c2591a691a5ae0551540f4d096f078759b718d6afa4733925686f0d67d41e04d1fd216e315969d20589f00480806287f1a3a", + "05ca4e9f2ff28fe146a74df417b0ab7cabe0e82b9b20f01cdf4085feadfed7ddf2b8aaa8ea9c76c7ab2d5481f105ab582d3e23eeb633a1e400c2753b29488cdac998d5c62c45cd4a98f2972d452ea7a8e3265c832a7ce47acb5459a2f0771e36157284e76ce9ce72e3c52df026651ecf6feb0388ed1354c1300096", + "012c43bfc9b66da4471ae9f009038fad0217e0967064e954921815ff96b17aaff65fc67e41252074533a9cc316d8756d8af2374f8526f23a9f267a9160627b0c2368611c9763bb37bc2fc1f9301dcb60fec3d125b200924d4a8d8a5fd78e3cf89100de6990e8ff6bdd6a0d73c07bbd9347856fdf42805e5b582eb68f5420ed9941c42f11db3a4ed96ac06f360a48d9f4eddf732087e5ee6b6e658b9713de1bf9cba4cffbf3dd9c9bf4cfc4decfdfb25fe382ed9d0d8eda6e823d26fe9781a164a92fd70a215b8522301b50e15fe3acfc7d959c88af8f286b548008f35359c5887ef8f863edaa642a88c7af561be6e56633761864de354b8ca2dcc2976129d242b8526c5d629685d7821a83946539de0d3805b1e9718b701b9893df690c833006d28a0fc9182151ca3ccab87dc62bea2b02c7deb93b14326c76da109430325ba6c26f2332d0d77090f40cc62ace64427d006a83" + }, + { /* i=2228 cDividendBits=2604 cDivisorBits=195 */ + "0d93f545223ecbc71a073d1c2cf46fcad9960253a9236f24448a1b397a70be4e019d0a663fc94278fa9f663cbc7570d53e6d38e0e888ddf196fa78cb83c0b92afcbbf94f22d2d2538bf0da73599a67cec0e99761af8b2a7c760ef2de2667506e8a4543afba7f5b4f1709d9366b5d84cf4d05c86b4cdb9ba4e41d2e772f016f58d717fa5d3915af863fd3216fd80c27955ff999873a4d5afc9f87ce6c9c35b3872c0a0c20917515573653eeac6d9bf5fe3cfec07e7801734a2e6890bf0060dcd3a00e9ff6a14bed8e4772738751eab66abfed2e6165f196ac8287433a64baf9f465231840c9b374d2826592362c2becb0bfc2f1b2d4ea027461f7be9f802f77691bae19048478bbd6034670b280647ce76aa895c1554df10a0292346ed3ddd4a5c3c3b13d1706dd517939cb0cae232ee8f559b04a311e561743e007ec7771b02a10d240e088f9", + "03aa684fb5ae435f7a59287621ffdd2b074b3dd16f8c29aac7", + "03b4401b3f6f4c4e9647bac61ee88047b70461101d2fbb00f75fa0a99a73ac55b196d060b94153dd78735969a60488aefbcf473d49a7edaeb5409f58115ca99cc561148b9f6c6a1991c85518f6b0d0314b4c106463e22c41a65c298633e8dd656c1da0baeb1ebe3a53aa71fe0077c64c1a3531f45c16a1df1a07663cf44b966abc3a65c536ac8dbc5c7d67c670a262d7cfd44c917108653f42b165920310c3fe8d5ad9c581a9ee0a6ede15fa8493cfd3e59d1136c7b58195c9c3effd8a0ea699f0e5561469d8214395067434c89bfc50905b1bfe832dbff29b60f38f79c39ba58617d9dee928007971718da63f78c3f004a8b4956801b3b7829c92dbeafae51cd4f3a9d4092162a5e7861578fbcf7b473ef7ea4aebf1377e641e13876270b8df59b4fc69e227ed4e81e8139baa5e", + "cd9a36513f8d506feb2a01462019b0fea3ff1689f2aeade7" + }, + { /* i=2229 cDividendBits=2967 cDivisorBits=360 */ + "03eb01df9b16f9cb0f60975c162bec0b7876c56c59e3f9b1e3a7a88de6eedcd6e8c4034bc182b235776e6ea07bd76db1a5d684712096c6e1fee1ce3e17c365eeed3e14c971d6c3082394610beab726e205ecd36125adee18b193a7d6683fc071c3334572970dd89981dbc7a082f5a8653cb93ec2c92eb05898e5997acaed41976fb04c7667f9cde338a80e4b43992c2b4566d06f4d6ec9053312a4cc51e4ed73b06c88fbc8bc3d3ef14bf7fa0135e5ec8edaf90fbc677957aecd77078c167ceed23f50839760bd268234921becb514ce8efa74a07f0b29f3739cd93b5526a1353cb2bf1b74196dfb95583522818fcd8b520afe236a99226b1308ed18e7d8c8d99e746b3f9dcc471ccf37167cdbff6035f24a1cc571828a7f9db2a03a453ee668e3e925cda957ed1754d62042a27edb34ed123928f3da7001fc4add76f19fabcb2ec16a6ac5a574f550823e78bfd2d88eba6f7581b86113e4d9f930e73af3447dc621c3f84c6ce2f49706abc928ab660f5d50fc", + "470239ece9a262a5e844a81b876eef6b59491a3909fa808483ae18299edf676e7caa44bec83a40bc861d2cd614", + "0e2008c04c7f8f89264ec806416723b681834acf1999eb07965815b8d3188c37c2ebc457123cd6e759ec3731eea5555ab7dd13d152efae6c256207c603d357217730e579c2b8d45fd430cfbe329a963b6f6b6a42d9bf47ce0d7e1944e3f0070ae076b44c20fabba0b7d6dfdd768267a6d22d4cba302537b8d2be2eb64cd596bf589b607f1b79be4f888551066c86098363a99b614d1a9ef980b429a308411d0af88190fe649ab500e0d4c8198e7dfeee52b23b691640186f4061dde0ddee275fe9b8a2d06ff71ebfeaeac7a086cd0476be6a80dcbc11a4eaf40a123bdc76f96698e272bd201f58bc5ee8685d4ba8b6d3e8fcb44156a5cf62704612cab0f4c36ec16ad39841b5a25c0f5c76aa45e03a104728d5aeb49aa20f1c6dcbd30f1a7316ae3fe4168ed675dd77585308581f4e65a69a1a3402dc9da33eb62858deb0e3256e20739cb2c1", + "2d22f928fb6093ac5c2b98fffd5827bb6d124bfdcf60208649f82d17d23bc51dbfaa3ab4b823f50403738603e8" + }, + { /* i=2230 cDividendBits=2206 cDivisorBits=1965 */ + "06178bd9f7b6ac9c1b8969478b1f40a2eab9b1fc363ec8946ff3e30ddb1314eb8a99f8e5617742aee36b8dd5ddfbf48781718d1cf57ab2ab8a344b89a678df2a3d657bee08cbc79d6ed2109e927d3be00b9ca39d58da516ac8c5921a789789d994bdacb3c7fd66f039aef331ba46ba79a61aa09bf189e824eff97487cd6076b51efb2438dd4c7c1368d6ad70ba40f34f254ab1b7c39e786439111b563c7a8582e0eefb1c468747f73bfebf25ce8cdc583a3886ab2ef1051a3d033f7de18f8cf4318bb078d06a07737a7d3317dd730efeaf4ade300f2b960188e882f1f4ed9edb6a1be5c412bc9132ae90acfd929502c9ca12765c93b6e310f3b62058412cbebbd3fd62e7cd1dd51df0b2cf4abbc79a7182b0836b", + "144c9a714d01394f5093e00582a5627dcbebef4b5e62454202cb69812ac541a533b2a2915f74fd094afff9eabaf39a5efb2ac60a2b72c90e2d76cd9cff9f5bf85a1bd8ebb45f7c17b7995ad9db53861a4bca5975dedc2d785fefa1a2bfdc68f14ccc02cc52e8f00fb0d2fbb4fae284794cbd99af3cdb49cd7e936326dfaa2e257a3c4e96a1aa66af587a4fd3b9e5dba918bf8b63bdff8ab4b0cdc3d9398483ade8131deb3da854e2e360a0c973c1ac7830af655ed42c9621d5690404ce352dd3b1122841a571320ea5b00dfa37566361bb352ae389f16b98856d68af6739657ba31266020cfec4738ce74288aa4bd8d2ea87cc8597d1", + "4cd3ede4816ef7ccdd5d5eb5d961d17a944a8fd8c121478a63232edb621b", + "1384e5626329f43a844b853cdb68cde4c3c8cbb1216be6b94e96153e24ee85db209b26ca540d5f1366b368ebaabde5de89096adc98dafb21943f0de45e056aac583293e3d67c1aa06b332ffef19ee9711afc123108d20181186918f6a5abd2b7e55c825306ce444901f9c622ef3b29339c213af3a5540a509396691f8966741f5120f22d24255a5bbf300a4ef8776078a8cb326aa8b050650c2f14bcf1cafe8ab9251eb03fb1c9fe17e5ae12a464c070873a474e0bcb1da8c865f5fcf2c8d31213fc8b0ead03e81804b2c91b212f97e0d07f0ce4c8d11321f7d2f6fb16ab4d02d2de05b5c8e8efd2762612c468fea93155b05eb07e60" + }, + { /* i=2231 cDividendBits=425 cDivisorBits=147 */ + "76f5998491452d02eb1ec9f48dac8e3f59c5aab411b5a62e420f7aaa23c5d99ddce5dc7f2c74cd96109730a5fe8ec6f7db206fb831", + "06bcd85e59a2fde6efd16f12e1d7398ba47f3d", + "11a7e578bdd9b4f2726da833888cd85ca2f825d0879caf41a0588c272551c0eca22518", + "04dbccba265b0deed964aa6fe6bb228205f979" + }, + { /* i=2232 cDividendBits=329 cDivisorBits=59 */ + "01a02582b4faea2772bb6bf37e1735510953641e43cd521a55ddc755fb8ced044ec7d9058c3932142279", + "056eb51c1193611b", + "4c9a94430961861edff5432567143f541cc4d55b2e4bf563754e8a36360662dc9acb", + "04cd8deed097e410" + }, + { /* i=2233 cDividendBits=5 cDivisorBits=2 */ + "16", + "01", + "16", + "00" + }, + { /* i=2234 cDividendBits=3296 cDivisorBits=1962 */ + "5f2e8925451906b71668f9b455ed0758f58ec96dec3ea31831d71442bee19df76ba29e0a623d74daa72eb0147e65da91be455d5ae9e12e95b84ab2ea37c683d0238ffdede6a1c309ba97d64fd10e85375f93657d8b9595b67c109261bb5678da978a484e4af48b159c240b2b5e2114c4650b544bcb43abbbb7f5a4a27410fc7bccfd81c0b3fc3f2d21cba7d5932fe1d99540493f8e7678f7c586ad2c1d6979d766d7e59b169e0bd400bb1d7b1c77006d5f4de114099c9f043d4dc4bbb6b702b1cca455a93da677a8950f23eef3e53bb536ec558cad43e6c911f5afc1928a84648d185ee270fb6f141dd0df2cba1dfaca1d1dff0f4c86cb4e34ae0621cca83a7e5fd869f90ff9dfffa51f0c161b047f298d8a9f97f141bc20b52751a58852189d3dfaadbfa72f0cbb176cc63fe8da53177ed5348648c32750d6157b808eab5249269e4d5d325063e0da0f9fed536c56a7d7fd3acdee8f46b320a0076ddd4de475ae9366e3de5eb9722b1e0d758be14eabd88da33d47c4b9e74841a87502e53353897ad12836369a03574a1948f8ff35e4bf4cbba83f7470d9b513524c", + "0340063d4db8d3200b07d241937d857ff9d83ce5fe9043aa49086a7c0a6b1a67753c63a1820140c625777dbabeb011af6f93c34c9bfb8abb7a43d50e238a0aa081d048bd7a6be44e43f505e1491042fabdfe2c3a0828000020d998e5a5d6aa8149068f55d1dc14c1b023330068533d332db5a4e8a87acd04bd7a04ed1bd271f04f302824fdceb768cc4fe4eb00bd4fd0f08dd7086b39066b99180da1dd674bb33553cb1aaa433913ca21cf1374704e5a4c0311005cf305271dcab49eff2c25729b1537ea643ac52067562ac0d38dc11cf22cc4910fbbab29cafe41b3c5ccbe80f43c7c807a364e96e93a81f57ef3aee4f9a2e6363322", + "1d492d0d321f82adaa820f2b7b025d1f345ebb9d6498bb48a5e7208970bff7cf883bc9cd4a64232345f75a1234d1a73b90530edc9308cee215c6a3bc734a53ca167031221f1ececac3413fd7ad2cbce44fc78bc8ae6f93e4fc954ef12d476528b8da7ebd8d5bf92507bc09a58442fdaab90546ec171e8fbfaba19af07e9a23db3c36163bc97719adf223b888d8f9a6cb019cf9f0972a2e40dc1c917d53301509998c59b1521a6b", + "f555e2725b09c651f9404fd613ee03775f3c6d92601b28dbc5e4a010fb6ba12e59523ca3d76a2afc3c7059ac3693c536254d1f27ffc6643604170c1a8383bd97097a2b42cfab912b938e7f7162898d0f2d1aa8120f9f24919fcd51629d2d6ad70869b8681d97bd8535069dbc406a1547240e7999756c6f083eeee9c7abe780b11b50bd4cab17004f5aada149a230555129877af2b5cb0fd48fd1709ebac6342667aec15bc4c5df6ae81c2e8a9acdce0d12c8ad24ab0e2d26af673cd0813b7a033d53a4cf437d20339748beaa3ad6b8a7fb3c6a0018a058de0d929b85b078b45b14c4d3a0953dc0a3842c2fa696deebf8d918567f16" + }, + { /* i=2235 cDividendBits=588 cDivisorBits=163 */ + "0b6d802c657f902ff41741b476277e6d37c2186ba52b6d0f52286d550d7e46828b705258202c0fccdf23e2f5c015b52ffa5a9c5232ba47d7fc4f0bfbb036d9c05e69cd0417bd770c0f2d", + "2dfe6c02bb7df917f6de08af2a8de5cc54099d81", + "3f9b3ab5ebb4eaad3b2c8c20f98ea3bb49e6338b5d7f44720d73c0062fcb026ff99d3a13d762098ac3d7785c6bfbb957f1e38bb8d661", + "1d91626673d5b5b4cb690ad7a1057d4056058b4c" + }, + { /* i=2236 cDividendBits=2209 cDivisorBits=1109 */ + "173bc999c855a43ac6f2c7995cc83dc3fe33bbea0411a7c9536a66752a1126cd2e0b9a675ec373bf25eb714526a71f4a304ee715ad925b88a0f51b9dd0f7df62022451fcd130f1382ffc9ff82a122b71b7fac5e7732d6c6c07fa64678c185525eae3584b6f219712003003242fd4eb9106bd0e7371dcf82d7dd3eb73aebf5d49212801a835d4327edc562d94b1d89568b6c446cc22f544c0cfaeb2bad3676d980555150d6e5012cdc4950180214a071c1b6215db9b264ccdf4a557cbe7e59a4710f02f5153d100ff7b8be79a08cb4340254a3d50142960744859086eb7bd5a8033cf7e8c68f4f3681b06df0ed5acea0522e76998dc322725476b2ccf5d5f0eacf012214812518b0612cff00100895c279c22d6c9", + "0969cfc1a09692ccd5082a360a591c6f10a3ff0d37847019de0d7bba1a761b8347943817ee3bcd1aabc8eaa43bdd1d7b76149ffdf1284d7d40d8507e8e6629b47c3f7ac508777b306d95017abefd58d3e593741cbbfead86e69472715e3ae86d08e4b9804627fafafb520466c81586c57faaba0d3a0157472938a2aed4dc384d03976c7502c0161d75aa88", + "0277d8fb284f013971e18e40dea57613823cac2512c2e0c021a03a890c003e98f20a2c48e508215af2edf642037c958a6fa75b33ac2072c96297b7c2b6cee7481feed4631c794ba6b15f8be5d7e2dd7d15a990520e82224ec66047b4380dc919d44193bce836bdd28f860765da69d51e312502226d3ba37daac007a3f0ad6f7de5ab8a67768fa55ff97d", + "02124d8606f3809a2cd958ce1307aad61768886580a4cca52b5d69c7f91e3e6205e280c29072075f23ad0062db3ec378e41c776ee505fa1c7cc4e7bef9b138f376b67a6fbd16c3c2ceaa56fc57c746f81eada36b34eac685828ec1a051bdcdc34537f522fbed68a23695cbdf178f31bd624bef84fd59cc38f40ff411eafc18dfb4f95d0a1d5727d6584a61" + }, + { /* i=2237 cDividendBits=230 cDivisorBits=132 */ + "2ed67b42a7f8e01e0ee30bd73c3caa2627411aa3862f75aba553cfe267", + "0386f4e38c4db12a4c735d7edbbb6c0097", + "0d47755060473cbcd771d4c03d", + "a7cea4e1b0123814cad0603486967e6c" + }, + { /* i=2238 cDividendBits=2270 cDivisorBits=544 */ + "24ca07b3cf876e1e7ab1b4b3ed1fee347a1334a191c42bba1eaeb7c6a0d2bb4f3ef3b848d89dca18b34075d53c86c30d0194dcaac361276b6f92bc9fc167ab928a6c1912f3da3dbf640fdcec3a2c887aa40bf610bb547935400736f3d6b0d81c5d0625f2bf80dbae853e40729e68d7e648c8590b8486b43fac61103f9fac4d66d8b66c746955ca9a5a8c3e86dca41d9967b1debb8a722384fc5aebbf90fbd0e7332c820e551d06466382758cb3da32da687b62e9f95d016da211db09d9685d2991eec96a9bb3da2a655666f8166c4f8b5eb1e496b0eb14ed1e71b089d9ad3e2cfd97396525488ed9c2446a58e3a3526204eea412548ceb62a5d44f53441a7efece03729ee7b69846a482619a62f4bab0e2629e0848e23bee49a71bad", + "d01b80ba1928af5e3bbaa01e46d3e4368886da9e2e328f0c13685ba580409f9d01a5b25a0837520e666129ff40261d6c0a281f09ac5af53284a149b65b4cdbb2deba7ef2", + "2d41700e000a5f960c815c4ae11232dc6fb36990abf459f82c813e2009dd3685456e864af4de055afbd507fa19b80e102052e372a34ff51f9454aa6a2e9cd222c3f795d0a5b581b180ba5f8d89d6ec8ed76c26487702ff7be705eace190ef55168fdfb234163d47d104d2c8bc57e4f5d8fc0e4d75523ac22952bd85154bb2fd37ad340eab62387481e4232973f1e4c259d8d72cf53923111d2bb289ef448407d4286385289658ae297dd6a1ecadda2758050a7b3115e1329d6975a0b9422cd09e7773b1d77323ac9a7add2db0a1a105755aaa46d434b878a", + "cd282d9e1db1843a334ec62fafad9efee5e71c706b093a9ab594da814dc5905cca3325ec219109db8f9d718f0f791ad4a512c8fad9dea038ec27a07c6677552759470f39" + }, + { /* i=2239 cDividendBits=1508 cDivisorBits=748 */ + "0a365c81002d3a63b4855e30225c4037e3b60961ca4f6590939205f9c5f9ebfb780a6700509905cdf47515c3010e0838521f9762d08bc8dd1f4b69a86c8194acc93abaa0357a0427b4f2bfa6a4cc36f48823a87dcc65b9a9a6fd0e882b16c0a7ea14bbea6752d3c6f6c8b5fdbe647a26a529b76328cc9dc195bb9269d236a735a7b65c59b70239ac3d90cdfa131aa6a4f1e0b004a2d278e87c2515325de79c585bb5352aba1d911bbd9df12b555ebb4e1bb30db5d0c97057bea4f930ec", + "05b4cbd0683c6a3d8c4c562d202ffc4147b833855f0ca901a2621867af5d76c8d625d5cfb4e65f7550b6ea08f8a959f0e55a4003ad0ed39d965f6a4cf8e83131c2a499fed8a25d02ec438317e2befedcaae41fd82068b87487cca6fe6493", + "01ca28a254d89f392717fdb34fe26d3389c308845ce0855152bb18d2a87214c733fc5a809960d2aee4e15daa4ef1450b8b45d1ffb9700e196264a6017c844685fb7fd6152ed0458b1df7599e0ff75f38582432ecf66ca5368ddc6694b648dcbc", + "015e17eb7f4bd8cbcc350a77cdaddf9f132c1030fdf94a60041a5a05effd792f7cc1046fe4845514f87072875d843729526f651ad9a57b39e3f4de1bf22c1c35eae0d737c166435c9973558b16ebffd21c20a6118e34326833e8986100f8" + }, + { /* i=2240 cDividendBits=2718 cDivisorBits=1742 */ + "0e3ff2efb634c59c92c969f152d901ec5ef3d4b167ba83dca70937953a27e81cce40d835d9f96d67476e4d28209e79565a5c162f07e3cdf1a9f59f94df2be85fedbfd19722cf419c025f09ab2845dc4012880d9dea8c1b21c8b1b55c0be8d13de70a4817cf325e9e2c3d064cfdbfd988aee9eddbef73f6ae951385856f32212a5b9d572ed1556109c3b72e3330254c284bb45a3cf8c7d290d2a1ee170707ae957d121b7716773d744e22b527620fd31b737e01243ceada810d36978c74ccba2655ffc3374e778776f48143cc11ab4feac4e53b58440f727cd7b19ff82087484ab343256f99856c637f378cb2a341d0266ac692404ccb12bd17ee14dbc7805079c980022c185301b9aa5234553d16b755573a1e07eb9f48df34a9006f9918ccd0622748db174a1a9e50a4b8b833cb0d353f9259b43e3845b2d746f0ae761c14cbd3bc7637a8f84b8798164c77e2e1e720f966f79a", + "3595a8dcde61ddaeb2c0cc271da3b4c62fdd8481dc93858911e8be82aadc1b0d4a4b40cc53d1b12e71a4dc0e74f33e7209c9c93a7b43eb9ce7151be74ce4d48df08ff0d2fec753ad409bf2a08fcb0746e0e9c77553fdf4efc4a4feab7726dd3a8025818c96f9ce54b4fb3860cd282c76091010a265f343b13e3a1eee8012c48429c12a9fe422ec04e4cbc5b3c10e23811f5caab68c07c1ce7efc5d5c0319812a5bdc162cd7e0bfcd49dbacd9a2f7f13805da881ac7fa06640ff816238ea0cef5c667a3b199d9697923a874fac627b698a8c849af9ae6a55b6c08", + "44140b6b1d01cfcd71a3989ed505c0393ea5a909855460f236fb950181b151d65d879e96d6cfc000f441321260727563b785fbfddf621e8c6f854610add08bd64b1bcf82706af17f0304486bc0336be4df80b17c44d38570d12a2c0fd0f69012002eeacc230f36f120956b771bb989c8867c17f9cecf74f03e61", + "0ca2fbab9a0c2c5c9239e155a75f14e40805d968dd18144c2977117251a1abaad2deef13499b0d856a383b605a3e58d17bb13ab0100a7bb13878f42dc68346b6b4aede0cdcdb496451b4165de1496c24dc17c6ce4b1516b75a4e193f53d2012f31d7692bc6378c6cb45f8977ac8fcc554a480a27a72e1f38b1427d3514e226bbba56db00acc4f74e7b163750c7aeec34ff186beb391585508ae2557872a24b15199a061bea208032c2b6fb07afe235dd23351f006ce808b4120c38ec839c6283bfa9f9e46e8f6ffdfe606d4c5c678a4ac5d9a3091c8f46191892" + }, + { /* i=2241 cDividendBits=2032 cDivisorBits=772 */ + "051b5e79071da4ac281bc8851447ded38a78aa8770c6e7ba29959dc43fb113994d1ea24fabe497a3efa5573f89bf541201765e5eb8b9e4bb265962733d01ecc4fc39fcad45b2017cc6367d19ece3146ec5df0d642c5b7600c82e07aba97ee8ce2fb2a54c1f4126164dd460bb016fecd329bff504950b09e873bd55b110a1d331aba329cc860b9d56cb086173d88c0ff10ddacf2785482eff314c6fbe81917b7aecda0c8fc912595caf3d80b28ed409548ae76879b44ce011f464698dd95daac36572a6858c4a631917ce7af67daf42dcb9a0e2f80af1153d79a0543f6a1d7935b78f0630a56ff7ce8b4b0c9d51a826e9e69a61373a3ae0cb1ead2f601851", + "0200e3a7b58dceaf4fcdd98e026bb17853b44d4639ac1c0cc966f9b606e90bc88b0922276927bc13a939b93db7072188c69ccd7b122bb61b2a0bf98c3b492f31626e165e48a0c172dd749443df19a911f9009d13d6949437ccbb31b5d49136c441", + "028c8d1636cc2b5016c75d2143aa18d588773fc747f41e65ffdb76ca7d6da3a7847b294ee0919bfc98c7da459bc06eaf0e4cf2b3be667d5763fe70358fa81cd57a3431a6fbc19f0d16dc9fd8fd5c68eec25efffe7fb904325d2aaa1642e62a18fc5718bbb079ea5e2fdaa402f6cf3bb4064e713bcaa029f3f2732a9b0007ea6b2837c62647cb18d0000edeb316a854f9607d1c1f9415dc67eddceee97b9a", + "5c4f2772096c8e3a7f14edf7cfd8439c28130cd38bc4e25e2a928350989dfc84908122f9b4bcb1ee2f375cfeb93a72f61b8ba20d4f79faeaa094fd902c8002ca0d2164e8d971cc533964229eebe54a2072ccbba07dad7bb4f425b0df76f9ce37" + }, + { /* i=2242 cDividendBits=3871 cDivisorBits=1488 */ + "038ef54305166c4135abdd302a826b732f9d41f041fafc9b14c8bab5c7d9aeca0981344ff28988db97566d5e2e13268d705f30f6548da013ca910364a757f1397f9549e23be312e7feae0402e8ac8109e73b36de0282c8e115f37bc2e8aadd1d9cc8b64b09c0a67fb205fbefacd4c2f73b4c29bcc763ee6f415b099299a320572ce35770636b956ef90ee0b2814fc1c73a6aa7d18dddd06e166a35ceb360552051721c81909b0874bfdd17e8f6fadfc82fc9a28aecef6bd3a2cd4bc54016f38bbd1783711f919480995b3e065730fd7929e7a8bbf82b87b395ccd9373571fd89cf6df632b82513317285c7f2155c318b13cb476d62b6340da8c31dfd124cf08cad3bdcf84cab01b1c770f9ae3fc377427e7f6e3664e1f169507e5931595b0a84bfbf701cc544edf0c96285cc95d161320e16aca4a2ea53c8e5c8ea6bba891c022647cac067b2bcd3cac5e1e1e1f1ffe0ea6102f795d65fc0b232b6b133f1b313ae1afe9f76d81905473bec576bcfb5fe4e4250ef2c10b595af816342ac463238c2ed40e06c5852c2bacd9eb7befd953d611effe840cdce3ecdb1b3b3e9b4d7a628a48acbad78f10c845633396154ebee025a46b263c2fd93faeccf2e13e78a109785098bee73843b4836e894d10d231811cecbd5e97d75e9684e01ff07bb80d97093d844", + "dd23768c351fbd09d400b3e6d68a34327b012856146fe739157e44522c1509ce4db2b1a0b157b085eb9772817b983a9586978157f6066ece838501d337ced2decc0fd956939ec513ad05c50cc5a7ba01be37a8b7ac181a13ea62548ccfc9867cdda36ea1993e006db13a9c1f71fb315371598274e2cb10245589c5edc6567fc8e38faef626614cf6705de76a12e6fe06c7db29f6f2ce8d198b1b2f50eac932ad1d0c733a358a1109461a7b00face543eaf737b41d5cd7b7621d9", + "041e90ffd3a3d4b7bea34159e0695c05667f645f803da1991dee592667f563e38f024f81ffcb3389624223ac8ee97ebb02882b2fb43701fda79d148b143040e55141a2c5d17cae216191db012f71125b5c944356e174bd3f162e8541bf703dcee0f10217ac8a87b3a71edbe8b468c29bc1709cf14c0a147a8b9738bbfdd47ecfef72c9ab028d1751fa219441380baee0d09c9647c15969fb26d58b788eba3845be4dcb0059cec77f0e533316bfc6b7e6d29338b7107e835fe22a0c944b75a962df501c415638041cb5b77f28667131ac270f2120261d3aae773868ac0502c965da3a3658b2f3ba2cd6160f646f419cb62170dd48406d0f874473670b388349530cf8abf3090e57dff7034a115bb731d6cb8465ed949ab3ea7baf84653016a03eb3716576131219b36a3d", + "75b378195310873f2f8d6ff549201552734064c13a55eb2606b823bde9c32a65a32c77a7d22f72b42a9a5e122e65e02556a036b1c8cbee148127767bc3092656370ee7b43c3126691f8f80744f022dd5d8641aa3d04e1482b6f7dc58dbe901352428e4a6bc3e37c1778c9b59536064723cfcd9043353bd93b79ae8b1f5841a6c7d63d67782af0140c49c9bf4c56d1c8ad73b5e2eaa93a6306d9643a29e5999016e39befd676015d2669b0507297e54a64d542cf1209a3faeed8f" + }, + { /* i=2243 cDividendBits=3746 cDivisorBits=2950 */ + "01bb3c7b22df49706fc7580838622f5fc3ce80d164b64bf24f408d7d47e8144efc0bbb1fa05e314112b4b1ed54542711e788c6308148a4b08c5fb35f907da0184f90837976dafdc8309bfad2bb3cf8d813ef951406549d2d256d028ea15863db1dc65a2301a98dfd663582328707e935d4858b96ce490eafd358fb8812b0f254d8a564aab4c5792ec904ccfbb92b63b3d4d16d5702ce654e518452c45aca4a6761f14f8201f7c61be24e9c553378286133bda89f435851344728895a603bf35a6465e2afbb612a7505e016d8a9d3008f58babee1236aa00e740e83262ca60d9c5f2b65c28084901123b43c0af1eb416c7497164cf6825a44c2ea533f631a4c251dc437c7e1dada9331cf680efaba4fc0b575225db19b29bfed5f2ac241e527cbd9b1b39c90074e5ffed2f4606686f3741e2296ec8cce6ca4c06e16c437070039bf6c7b66ebf1ca3cb4f15099d7e7dff3d21f3c92ec26dab58c390fd4fbbe5da53e47dbee939f57bb3eec80de2b16f2c02a2f6ad8508914a2bf08563490efbd0cb08350dcf6a63a2835d28811120c01ad63b327a4de7b6a2ac3413bb59e6246d6b73ae8b5de7a9a6fb1390ab6f89b270331f2cd79ba6b6ef0e9b4a8f2d94cafa7b2b84cff6e3e60d8bffca3794e5fb4cbbb0d6bf396", + "38b3416513b1eb5b72b5193c76f8bdce33f8ca2522c0bcea80c5e76349f4a8f042c3415ffa8e8db41f2967f52a7cfabfff884ccf74237a55005ddca42ac32c32dfce46e58898cfa6a29723c0eb69ad33e28a01f1c1dff3acb690d2c9f8b2fdce1675b4ea51db4de208c3e7841a103942527249a6f26a0fe43f196e79527ca715ebf469ca8ea53a020bd9585fe8b9d3d749b094e47d8e0cb273668c80237e8bbd6fdeabf809120fec5010b219dc4074854a62a7cac5e3a1edc7d3a5b368054865dfbec27b7d57bae8d758244bc8e4976daa7ef2c0315e9f2b7b4c130ce73006785b405d2a93bbfe4859b4ea190441907503d5426c6eefcb246ef62a83a8aa820b3d9aab0afaba5e641e4cd7162f498c0cfdad5c4192dbb0309401ca6495b23582dad4a4f9df69e09b9788c8e4a7db42004ae5328865f71c09d76fd468c58b49e46c8989579f83e99a84f8d2caf5a37a19b3d2f57009fcda0192b4df7d7544071ac74c3c0a57c8d41ab1a796b521c9c14b17", + "07d1333becea40fd002ecae5b40ee5dac5fbf69a3e1b6efcae7b6ea9c2834cb2329d7dd25039876e6aac6685071777b691a7c6d8be8082c4a2b796e5fb2228e631b5262cd397c0d2be204ccde465bc5cd274d6fd8e15e54a98fae294977fb4606a86977f", + "2ea4d73f86a3e57224d87e348dfdaee8983847a554793f7909bc6a2fe5ee4c46773144d7a1c5b2aec48951a337fc097e0c942075bbeae0330c268c37c36e54a9ee9a3b1a325644781d8dd526fd84e912b6f0cec792aa5f2e2832301b83309860429edbf96644dc175c54191021ee2a711a5c42854b78fe3e6e12e4a92d26f3a7f1e32090ea1f71ac748748053aec45c9b97e222c014c23e05dacdfd54032946b85a5eacf1075c2a765f11c0081c12c73a391db9bc1a65dc3cd89331f6e2c38b011fd4120fb2d64cd1eb45dcd13c1e97bf7b91b5c6179c297c46d647247e685ba8be75e5f9d8d80afb8aca4c139909c46d93b1da016d27c7bb59a06028e04efbdb47ba4483063eff6360761b4ca90c011f7ef17921f1041388aeafffc923f0c638037bf3c7927638304a96ff303d34064efce032ce012056f2c1669914bf050dcf878f4fc3a4122642df7573c085ccd6f25b747aac7e4abbf66648caabde79edaedbe5769f6d925d16d272f09121f33222d" + }, + { /* i=2244 cDividendBits=1870 cDivisorBits=1081 */ + "09bc4435d435a1324a701c60fcd689aaad074f9a8b74e2052921ba71180e45a50f06e50e4d2c6520409263302977ecc885c11414bf8589e2b50bc7718c022e2d96cd45d9f23d531ef6c7896673cae9ebb8eeadfba37073ec075e28ac71a8590ed242149b5bded019f05a45221f4f772dab3a202926a798fe2585febe9e4ba2ab6dd4bd1a1b5419fc13454d03d58714ccec97a5ef0d9f1db47d4c16ef2a6d0fcd4317d205b0f2a2ac081656aba0fd7c00d7c4fd15704559e7cbe61d31fc5975de09c7dc4a3b2fb0e08039cbaa964587c134d6ba0846cc07cbdbbd05039839ebefee8c9efd9eb0520beb47", + "01bab64e19ff4087397339e1b136b69702d890c70b11a21ac3cc994b17eb6419afb17bc703fd5c202391f63ec1790887825497497736c0098ade1e074c15b563eb65684b8882d636b2caf49238b10ee091484381489ab891d776e5a3d24c57cb4aa572784ced54e1c3b0df60b8ac80de54581ac0df9616710fc3cd8f2f45548e8a5ffa48a9eae265", + "05a129a71e52e67bfe0786a1fcfe228d1677c64480c4f2322b891956956b54f05f2bd51c7ea4bccd7389565f73708fd21e07b24a9407ce59453e3b01d4dbb1d081b8ae11d366340158b649f4a46db0d067be65702d03774d7e5f7f47be5031c5a99a41", + "0162cbce975f044b105f69b6c082825f83253de29877aad762ccef932d891be2c500dc91753e130de49833928ded9d70317c3df5f4848c598e175377fa2fe101dedc0238f9521bb0526ea0c0ab1e0e505668240a7486fd5cacb51a6a60a483198021f38ad8e7b1a2624c5db26b53c6cb16bcac0640c7bc7b4febd4ab0bfed8eca4aa8a69b38aada2" + }, + { /* i=2245 cDividendBits=633 cDivisorBits=294 */ + "01575f55f8dbb272ed6c08cf99c07bea490c830669748a2434ba7296f60a4615bd05b2f5876a7df447bf827b22eec2b40193463c3cf16d92bee052821d5c5c63d7d7b4d97de499c1d407eef136e93741", + "080d02b3ad05d2f6225f7f693e81e843f48ec53c1dfd37f36cadde05756838e4a1e9c463eb", + "2aa68db14ed6b98f59ca63305603f807f29d5f1ccaf3827179cc284209307cd9bb0d34d6e716a100acc2dc", + "01e7e015ca8c1a4a59cf9f640408aa221efd63aacc5163db876c80df4408f1a7e75c87434d" + }, + { /* i=2246 cDividendBits=1336 cDivisorBits=266 */ + "a26a4ee632e65c81e7ba94ab9f6f7d629ecc0f564e20fa269c9363564dbcbd357e969854b5164f12060ed7cc543af36e7db880280d8ed5915d9c03f47484144f1e453da14c2a76026294cd8a9470ba6e60387e18d6cef92d8fddf27f8d9628204113de132c61ff68ad4d84b7e730e451a93a2d442c547171c2158d9e3627f500123cc7a8cced462716cff48802735308c42035ed9f94717474284011cd822a44718d5d22d24825", + "018b3a05b65deabae3a290e43cd8502fd82f4672045d03ab8d5c582f45bc417d25d2", + "6933803fa3d1c3204a9ef86150abe956875d69146670f53c863f88dee0a7346826ea90166b5eecd7cc8d2ec647ef5d7e43c84af35d6bfd00fe28bfc306cce4187a22cf3110ae92203dd1fd6ff7ab2d31ad73a8ff205b626edf67882521bf8ae8e7902b4ea7e41b0e52c1fec81bf259c4cf3314cc5aa00027b21509f05a82381677abc028d478", + "3754eb253c1bd943c316d8fc198f92ef657ab61149ca89694d96c7fdb16406a5b5" + }, + { /* i=2247 cDividendBits=2326 cDivisorBits=1454 */ + "2813da0a049fc61c4a54b5543df272b1c8ab6d2109356d2f83e6185074c19253ce38318043080951cbc0e97ab84130cff5d1936f0c4ef05ffbbfee8dfb99e58e9ca79b8587192eb8b34c2f9a0708069838e619b27f36129a4f4e7b78583bf279241f88e7123dd83a86f3e6c5e914e5d7549d9b71c5d1b2b7b05120b6d3e9c2a3fd4b05dcdece5098d7cfba9e23769a962527152eb61fb04e2b4eb68dd4992e2c31c8d8134049070e139a66e4e1e02ce16b572cdb225c45d79ee52a2ce10f95b9d4a8ca97477fa0e36dc55eb8698bf036021666d46de9a0411b5d2c5391bc660605fab4e8708959b695b8da753c953275a39c08a34d8457b6f198bc8803bfe16818efcfc43f12326f5bd54cbbb7fb170a03b64d270998d8442d84164473867671902a98", + "1ab778ae9e3f27e30cdf5e7d67376bd496653b626e51cd5ca6038f205f1040e1ea6f05a5f706b4fdd82ee6dfcad08fa52699a2a16e44edee742c63005232f4b7dbfb1afa601841756571f22ad143458cc18248fc418083640ed7cf564e277ea523614840cc90a5f9747949a6a67b702f9336028021e5cc29796542d969983a83162fd2513cd53ee048cfa1b1b32d227f0a4ea18b4bd0761bc8ba753f6bbbfcc9a3665007089f99b231ccdae82afa907c9262291996cc", + "0180062d30053d91557b5ed04049d339bdb67351c87b8c682b03e3e4d45c70552f311a930abca5e122cb8f363e8d2cefdcc44bf3104027f85041b9314dd5c2e3e5f758fbbf429af27ca61ccd6df26ee88abc2a17d8e1826d22548a911fa912cb7a8707e1c8ff295abd8bc999a449", + "0ef2aa8157748f3e9156372683abe105ab5493d107ddd954fc9be881fec31f508cd8afc6a81c761e39a3c9a2460378be38186816f29192df2730674a0284beca82aca607492926f354c5327d8d771da074b94ac3a9a457d15a9a20c0e74d54839036a308575ff9e219b15eb612203adf3431f3cb4e600f951349402dd7e9af07adf8b9f6c9901651bcb0e2c8e88c6371c32c9cbb234d92b8c3998372ce23ce726f0db5ee3d81af05e8a70ad87fb2cf45c1af08bd7a6c" + }, + { /* i=2248 cDividendBits=3254 cDivisorBits=405 */ + "1187c03038586144dc1442fabbfd882c785ca6751269e7a4cfed1874cdbaaa22461c2564ddecaf906bea7c0d0a45d46bcd2fb238c9779ee4588b09ed96977e81c2a69b4da064ce4d84992f5d9da3ff115f628b8dc2fe95eb43d07b6a125bdac082159a23cf339e59657518dbc29266c096f00ddb170733a99741ae0ef6bfcb1c1fa04fe132d33b10a6ae0664b02b2685539cb73906a8bffc94b22c08ffecc66f9028e8711a634f0009f013121c9816f16b51164aabcbf0ea0544a01f66559baecc894a46d98f7000580ffffd7465d1b3a9c406ddf31a85483efea1722f0b6a2b4226874e867d3239a8583c341a82aaca3e691a9ffe37592e35cc5d60702bff6edd39a3cca4ad482a6ef3f2a69841f18c6e7cf4081630b650eb7a6155de3b7013012126101ff7de3c759b38f68fda9b9252c75440c5561f3c68e8e3db5982481e963fb558304d4f47273bc57f674bab9aa8e394823e409375d3268607081a3cac090719ad408f9ce3380832565265681df83a2b32a70fa487e912161f234d333cde9c9218fd843a3d7879772d316e4c5806a3d1842d2789", + "145cb2d01e7ec401ccc0c9578effe7f291f564a013a76b547130fe9cc6a6704b756e462a84dc5131d9981e3b40b128849515fa", + "dc65af5db17ed7062c0a13046e0c30d8a0126d17b59f482f21df891c0d8082566d3261a3858d8c1b9ece462615949ec76c421bef22f2ded519d332ea823e6a415b8a72516b04a5b8ce19e4b66d527df8b4b4b7b2714cebf27b64c11cbdbce7910a293c81d576f28ed35495dae432170c0b185b4fd4fdb4e7fd83ed66790454917554c3999884256790731618e10f8317c649e74fe3a0863e265b0f212af222240b3491989a0942af2959328b4a24248c958229a8957d4a8ea49bad6ee29933b6b06925901673c20eaa018b556d7ea2c66da3c750f412be2d0f70a87842472bd43b47cbb36672d58ac7d04499008270cabcacf89fb8e76b48d507f9e60fd65849c509e7e46fb5f55b864570de2a0f957d6746d90c466ca90cb60409d140651ce421daa5e0555a8a20a7a360689b042be33330938e75992dd2fd9e38a0dc3342f1019a55d12cf30d478c9f353e64a654f7714c499a2c8947b040510a42508e32f382455fbe", + "1119dc9fa208fb2e4aa402f596704f44ac595b9a9d32cc84f22810eb8f7db9a2faa131e86b9720cfb2da19c08afce5e9fd11fd" + }, + { /* i=2249 cDividendBits=2351 cDivisorBits=1989 */ + "1768a121e93e6d30e327946fa19f31442c6012aa337b1452ff6cccc30c1573c693ea6e857678d773104729aef03182efb11a20dca59134a4fbe1288a5f533e2c9720b25a12e9e63d46ca6567a6346d9451a2e3dc5c5b692dd825d2e3052955fb59273b6c6ba711bda52da2fe5f702f793c9b7ba5bc2f2fb718664a70fff858e1142d08799747cd7b1343b300e4303cda6530d9ffce7b72e4aecd9cea271875c7e5e079328e00c00d7e6024f1eb18a50470d84f6334a842ab460ef7b8b9e746665862118a06b7d6e2bbd20a089e834d0b77cfbde9c1d15f093fe5cb377c4235b92c494da3afaa1e2a89954cfa2126c0e168ad63a9830627c41a38aa517b50aa2a7b5ce3c67785a8906018e12d90bfb52c107ca83ae274bc0101a7fd719c941fae94bd9cd12ecb", + "0808a261e02c7d0aa409758fbb759806bb06771db7d446ca901a1caa66fa25a4bfe6077a25b5264630f4a7dc8f266ccc3ab336668f34d7a212716e534b3cc35a1cef4c8305febb5d83ea8092d98a143eab6fb993e57a0ffe31cdc172b2193ac1a09aef879f9018880f7c662c412335959de48e1e24584d4f1bf270c17a04cc04b43c63f6b63cd206ba91c2d36f8e276bd7929a9c56c6f81df29adcfcbc735a1aaf225f3398169f03054adace09eac2c7893d790f5261f7be3303e5f5c5b45042a739627d95be4860bc9f08c54cb03b841bf1d5ebdda7b9088845c5493c175ed6bf58b5fe5e080a624e0a7834b0cc17896188ee9239bbeb166d", + "02e9ef105da5bf22f194a04c3565b74ae1086e6c406457bd0f07eacdd7e79d7afa07dd396caee71b47dfee5a8811", + "07cba512c8e90a0e735851a6232dfc8791d9337fb383625c72538b965b4b8bbd474f44de8b0124df2a1929f8f502009bff08915883980d973e195bbd7a62478082ecd7da25a250db32fa3bf158f37f7f16a36c024a97ea802df170aa603d1d643f0a42986cb0d0fbd8172b1213dd23614ce26598d1fb6f2ba35285cb7998c3986e659d3dea3e4477e623fc0bfce52ac662dd5ab9b92a34af0615ec93d8a385cb2017b5b1776d5f643be072234ab5afd0c811f7ae942eb447a1eaaa20f12616b8b80c48c834cfe3606f1a0e9a30439f2bae704f4c3278b21ed86d049aa0f1ce231f46635b4d18cce9c21c7bec3effc22c0397a7cfa105f8c98e" + }, + { /* i=2250 cDividendBits=2495 cDivisorBits=1301 */ + "79307811b66969c8242a99f3679c9b28867c0d0ab4ecb76c7c1df8ab3663fcc34fc4cbe8bc5d6f71520fd6015811f902fa40fb89ac815451030765aebd741a876f4a47d47cc7e18c121b6225d2b7320f243b7c93984dceeed16f9c58a713e330ba461041d4851cd6f69cd0deccc68921cbd467126535d9dc6433f2d29318d89039809d8123cf557b17077961ac09fb513a00e549d2e5a7d16141aae65d9d33de3f439f42fc34b8016e2ca7514b3d7743a9a6a4c0eead17d5d8dee2b144cf2323cc7789dde8c9eedadf80f5efe5146dd1e71318059b71672dcbd6d4f772905dd6113cb83d8ec7e0807d7614558dd12a4b600c8294bb1b21a8aa4d274b1df1c8f6cf15673d52c69d85b0ec2f4c7eeadcc7fdddcffcd43493cb08c5c11594c29b0f1404bc4f14c237b41b9ee64390621f0ec8af415e494b85d7", + "14d57470a22b4f7d3d8aa22c95fdea563d0e3ce3f89dfb9ff0bfd02003f1fca32c31df8a85b096ccc354d8f2a54b47f68e3e588b9f0caa472138f6a738e5bb1c4fc349db2269598a9ef26ee4a6bba12aac86c138515344fe8ae411ceecec3d3035b97fb3962eaa3378ac40f8c8db8dcce4dfde9ec3d4d9474bee25d8701f0738f29e20fc6b794c0c70ea02c3c4e5674b0a4661fd65edbabd6961e971442fec2809f25d", + "05d123fd6b1e72b1d851dbd536f39c88aac7c4a4f0ec75b40dba28f9d0f2dad48843e23f4103af9cc2c04d0197512d321a2cb8958a50790096c4fd660d46b01fb685798535e2dcc67718401dca438ab14c5607f3d0df699c5093e40aa0805d0b8291e8359571f53a026add267713b619f425a461db75483fc482c756e674c84c3e00ad3d713e7fdb7e5fbb1f4c5386313216e1fbee5d", + "134d4a2c9067f499845ce5ce1befa2878d8e73ccd15dc468c3f6df3f89b330b83c9f561f34cb7b7552b9118133c59c04d680c1716742409054f5cfb229e2012ab93a74addf6fe76fa67834f79266af6c7a92730774b8304500100d9a279ac4822b63f76255227a997413d9d279a767633e8fcde2ef5f694f7ac71f708da6c902bda51d3a43e874c27dd87d15dfb3a9b227abfec924bd6c8dd23cf13ea24d98202d040e" + }, + { /* i=2251 cDividendBits=2905 cDivisorBits=333 */ + "01eaaa95c8160352070638a7a38c54de6808fd460055a9087c6acda9931422407f147e59286c2684f5e679f8941aeea6aaa848d8a09d31bb5e1d8fe4f8da665ebba2384a23845149eff47a9ae84347405dc22b66f586477b2af55ef38f92c16a55845b271621c63531dba5bd78d91bf7bc95efca55d24f4b55fe7e71be74787488e6db3ca52eaca239dd44c204bc5c66f7ca469bc0afeed2191a08d4ec9de80d2318486d9eb5dcda56a6f6796f3d0fcc3b398f936e9d4ec053ec10027da56e9d39618297ecd8b887c9f96adbb391826cb6f32dbb58cab37c27213fde28c9ab7f6d7d359c389bc700c3be5bd5eafec623cf628202fd7e3cae10dc8cf997a0e52f967f950b5bdd3c12e38d536cb31b45c1be2bebc408a61f9513231e129abf69e9781f278f0cfab388631f206a6a8e450f72a041623e1a452c781c4ec595fc0b95024a2fbd2a059b1f84e7bed5df431ab3fca2428e46700323df301ae7c11572c5943dbec1dedac4f2af9fd67c", + "066b72aa3d062d1401f34d7d04d4b8a895b5777cd583294f376508065e0605dfa4d81f184049d0f05369", + "4c6e5eb42e8c4850c9dd6b73c356c912017cc3c30070241ac303a2c92931b32c23d02bf053984a3ef016d403ecb4c3fb471e535ed6c03a3af5b9c366522fbb36ddf4c981b1607299ad168eb1670e733b0097e9fda30ce257ec4918074fd10da0ac720c5acd63cee4c2f144bbeb378d51bf8fd6b3d04f8068c2e9426a90f8c113c6e7ec4e6db62cb2c6a4e7bb5a1dc9b54e19bd97be05cbea8af3ef8cc2817df0571e98671d2904f4dae794831e5095302451de64423df1611572b6b55efe1c892902c63c80ee5c46943f2ee9a0b69430766e9cb6ad11205c59b581a2566ca3483513ce26f0afd473521741ee91de5a2d945bcdca29f24798b74df49c2c00a1830dd7e68cfad60d42ac8c28bc5a019215cfb48a102f169d15b8d140905f6775c4d959f5b676cec415be97fb963a307864a9ddf1f8562b587c65e0e102e32ebd86d70a", + "058f63434b18220711f08b065a52ebc1c66bd913ab578c83dec20ebd3d00135958728f0e605882396562" + }, + { /* i=2252 cDividendBits=3918 cDivisorBits=2722 */ + "3c06d57b6bc4eff1301fcc4eeda5c952a01e65a93e7dddb79335ced3240dbb7a2669f067fc55875b87ca9b320e81e165d4f49b9865a6b9cfe2a8768f5c3e7861274f778be7c3a20d4625c01d71c78fecf940cb4622aa6cfe9e6ac3d86929d2ea7c279400973412409da23ea67c65609fa0a971c4d9f504bc6a07e420e549a8e8731a4b52a8218ccef958f2f71c82e0316afa3fa56c86f23c04b97f2de258fa8d87fe1d0761538c1966a03e31bc218abf0e49b4ce2ed859d91344dadacdf928f3797a2ee25869f1325ae2673c5b164fa05ab71c4373db5647075f10ff2e03321faa3052a9a76203f430309ba0011f85edc56a9a386bdc4fce17cc5d6d7b1588937d8e110dc03dd5c0199a4222c5057d128b691591ccb38a047be29d30605359522fbe2185c6142216c9b33cb9380ecdae42744bcfc77717ae032a809558cc5edeb27bf24dd369bcd4cafce172bbe1fad402b8556c941e0fcacf7dd3ea8960f521b80b7fb519c14a0d900c3994e935a20278fbb7ea657a092cb063f798fa538c6ec45d0c7295acfa09b26724bf5eb02c59c3249e35bf1fa09d3dfb22d6ec1ae4608e6d325e3382c70112859c0a44e22863b4ddac788addc334ec885cf3d722455720efe5b2b973406371665b1549f6c32752a41eda03e566498aa4081623e07b71320105eb1df023c238dc", + "02f57398380f0c358f37b6864150fe7a4415c9ba2aff80e72992f1be5971a89604193966da58172fb163c5a3a9878895f9699ece419c448bd9ef454f311a897ed1d381e203520437460402c92784a9495427170137029fb843e8c766de4f3bc172b14a2543852b6bea14b1a285e92328ded778353e739e52a59b3ec574a29dea9f519c80ad8c7473ee32a0318ed27239d4345e5b2c69232f4b65fcccc65f5d680da977d365983820813c4ff4ae9a9076fea427210f63df44c27e128ddce37936964c9f20cde93986bad65a04036ca39608feab118ac93530ec57c6f23eab74f91c21a7f5b5557ce36678ea6d6b4284a24061a1f12827ce3c779d50255950e946162d6659f0800fd9541906e7e338791b11f85d984037543541dae98fd872b7dd4ff02dbc6ecf7374e307e00974f221f3285db783fc6336bc1f0f4826f05d3022762f9ab75047d41f17523b7f35fe44b5ec9237e4d2", + "14499cb1d744009bee62d898d9f9634e652253da17edda2c5b92547de62f245286df4931e680ea6cbbefcdf6c8090510bcc543b3ea6c47cf0270dcbc4b6b5813d73300d927f2ba929b23889d43993221e0bc0c83200b4723189b2500796a6ea3e22bb38596836531442504055af2856794648f2734cfcf3373303d368de600877acdd4121bae7492490d4d17bb9a570ef67e0296b01a", + "9ddded92b2014aaa8bb37c44b99232d7a072f91077c36a95dc6841d643e9f9bc8e49c8b7d55565af37894d21e2a5eb2ab6b5a7164dab0cfb2625673e358869a6c6e239d142f5d607499bceee2ea8e11c4c634696d73038c18015d801812ec1d7c1232f094dd9a746d91595c1600a9cbb467f923e0fc40412244fefcffbb038025182674b34474f52dc47928da959cc35a937e6627aa45349f35e44297eea2624e67fdf536f27a45e4f277942f3b431c6a6afc4f3174a900d2f7a560adda667120b97f792c76364f1dcca2e9618d60b008a9313625e465552ac3b8436df4039742f3d53e1f5a8109831b359afe11e9c78b7ba20fdbb2845b1da8dde43d3ebcf6922a4713fbbe478f56ac24cd4da91a3db558a624c7868368838242ba73b8d189eb2e465a22453ef5af7b2455373d3a6f9684d083041e2148775cf745cbff0440004f7fd79e1a8d9fe3c6ab8eff53b777d25b89b88" + }, + { /* i=2253 cDividendBits=3399 cDivisorBits=184 */ + "0cb5efa24ea4d48a87ec3085e4cea50fa45eaf63bbfa3753d11ed3490d1249eaf87df4aa1ea32af9c7dcc030a609926a8991b03b7f0a6c676e4ad39c19a64d05e8a1437ad2f85775f5835ac3c8074275b71fa1d58494611dfc126b734a0bb4a22cb081160afb77a78c7e666cb24f42523cef7eac22dacfbde29f5ba7526595d03c35fc143b4f3413d69b58c9d92b559ed9a4e4814761427aa78b57414272c0f86c8dbf273c177edd1cb07905a640d33b7ea0e9c4414ae97626b586c7c3fced28371d8a06a3bd4852da3608c5b42d96ff25f97472487d25abf2d79997f8dc1199560f6338f1ac3e20fd37b9c7d799766fef1400349d6859e19214b934cc6232aef81a9279d47bb7146e5e2cc70979aa1c4737d6fcb4026a3cf2bbeadf6e9c4dfb822717a764a598e4394285c2d20beadc27d4d4eff10f59d7d812ed5dd6e05324ea18fdea95c0243fd0d68fb4bbc60e9df9e8b8ddd81ae01683243cbf2027ecc375e229db59178de0e0142aefe2cae7ac9366cde41c626a39ffa90c158133376e3c136f843f76dc68c671baf1a99e2568fa8ca6939cbab0e0f11b1d3ca43e3219e2370f28f1298eba2c", + "c9d55385e4460146694688507fd60d1dcfb745a41c4c29", + "101f34bd9ce6c9efd9d3f58380d9d0f5773ee9b908f25bbe83457f330aa90a7721b8fe97e4875192b09e4300bb1a4c300053a86b24e9d5094a5a020940790f63b5af09add87582e954212184a83e9f19bfe28d555fbed165722f129bf141e9a2c92580ee79015b5a85d664b5864b9a3dbf8291b56b3ba1dc98089278b95d7238e812c09d323f6edfcf11f2d49b145c10d68b4b3d84e2e4b4fcd6f368fa28209f6b749aaea5270fa8ccc348262eee796c1fceb3c4efa306cbe8e516fd46d353734d7deea6299ceb1d8e09febcd70ac1e0e9fd0702d25522fec61e90054e42a23d324f5d4b57066fc803038130cb80834e6c8192ff130ea9751c65eabf4b89721b747540efb3c99b6c244755a476ce2ead67fd6d11608e351fc8cbec7adb152fc230799b26c33c32132a6b9e616ce0f09736772b28935bd850eb0d738e85a16491cd246420c6092c7426def3b4af56063ad9633a42166b366f921aed1632fe2b9fd0ec5b7e09767c991379af1db9bfdf5132af5aba9e02329a24a53a2c68519a4976a1fe1ce21bd482beeae2ed755219b46cdd", + "99c947df4bab6b98ac0412c38b0bd0fb9a471eff2baec7" + }, + { /* i=2254 cDividendBits=681 cDivisorBits=23 */ + "01c802adf0d5781038d283801eabafb227da284ceca3d3aa5ab166a511ed99c57c2f8e6a6111145b790b17abe84333e60249f665049cc4022c0f5729727d8e7d057c816063e5d4e36901e75094a2323205a01913ab4a", + "75ae6d", + "03dffd585758963beec21c3dde4af31a4712f337e3c338e29c549613ccbc33d028c9be32c62d6d9ee68b758b3c5750a652ee02de9503be650519f3a3a99a76c83f0772d26f8ac2e9c98cd81bd7f1ebe965d559", + "085665" + }, + { /* i=2255 cDividendBits=2418 cDivisorBits=1443 */ + "02b882fa8a3beedd388ca9547e962b4a5e1cc574c94368d53eefb30fa852364051197208a5b1f38100204508a815236ef15a39c9fa716f42c7599fbfac00bc95f759ca4eb4148b5630ffc6899d2c703ad2445f4df6a715a434e2244e6b73344959a36ce5f9bc59f8d9aeb2a76183fe51397a1f2f11aad4302ec5b20ce1612518a719442ba5a38f1d49a607186826173a03180f2923aea1b844a0a412c1ccaa56448018da9c1e093a5b8cbc61ca1f3d1f596152ec5a4ff3ec32359225ade957a01e7c218b8f88b42ee6a06b46af5146ee350c6de22f16fc77b052c90ba440c51577e47e67731f0c6aa6618c122eb2889680162527073b4cd88343d0c7727b3c2d56003b71fa6881b483e191bff78b2b16d1ad482d8a97899de506e92475777e25e76e1285324e6e08b31ec45f9aebe4", + "03afdbf8977f0ed596fa4456aa16b4a49349e262baef9150ef3f23cbfdc1d95152492ffcc194b7b31cde2e9fcaed8958b0f722f9899c6304d778568f1d8b4f8334a01356696c386aaf7a4b68adf77d4ba413e2b0eac9b02b466850210413bbc2091362cf16ecfeb49091568a6e4ce3413575f62055fd201b45220e8b98aaab8a1dd6c8283e07dbfe284d0f43d6492d9862dfad5e26900e64083889e818819313f415a54c40587a28dd20c355da51f984705632908a", + "bce9a51d8c62c9b2e66855b1e8bc2e8262a4da23a9c109c451b4afe5d077f780cef39b82d4e312993d70c2fa259d770f37d968a934ef229fee5ffd822649f5d35f8175c5075ca5265936b17bce48ef27b8eebb5aba6db7bdcb49fcbc3ae3915c485eeb937b22bd21a6cf5eb23f53ecdbbcd82aac7105414cfd0f", + "8aa344e995000b36b571248db8ff7eccc3467b5a1b1e9e670e5ee1b87508c0fb83363e8f01d688c65b0c13bd044a2f4c8ce520ffb32676ad6ec20d960c7515e1585600e31c3015b1c81af1638ced3e6e69265372433f3341f5a5065ad7bd17e663d1624a66e9bf63f83ce70c55313f8059e42fe7ce19697565d155d8481c3d1f3662e24628a405d6b29b56ba227ece95851ca95c5e97e06ba8a9f8875cfdd47108a14c20c547b2cbc076248e0a732c9766d411ce" + }, + { /* i=2256 cDividendBits=3835 cDivisorBits=2265 */ + "0693273e2baaef2cd46b441438affadcdd8e2df15bd8adcb675e65942085f788f0421df5208b301199f7b8cb44a9ecee2070f066f64d6e5642db123afa377adad74a24f90543b6542fdb40c6dc19f5c075b06ff43eb8914cbe668a53088a8ee446e961015b375ef3af79261fbed7f3402a32ec132a49281efd4a0caae3b8213a7ebaf07014e70474c2baa8bf0a9e57ad14770a0ef54fbad3f2a3a884e7fa7801ae2eea70cdad0676846d31e6eb9294c704017f49e14773afce03d80595431a85592633c31ebff910899c7d2afd524609ef3541e6fbaa45ff042e3e9b6c3258bde4709cb2b400c3b36a37ba2c75e5723df35a4c4a2816825ebc15d40de8a3b611411109c5024d00654b583e7b06a1b57d88d3f0949c15b411dd9bf19fc582b8e308c183cfd9a37d93a8e99765fcc24d41897aeb75304f8a4fdc20981d52d1ec64670423784a6238b7dbc130560a11b44f80c64296cb0843f9f2e91bd9c3373fcb9e61f5c3fb9ae977766948a542d494e3b138bfcc92b57c647d1df94f2930b63857c9888c3390a5d8fec5c7e852be401242169d4946692346dce9e10c63690d4b26e010b2bc22a4ef5bfdeedc58a988d76e5208bfaca4282d7605dd9dddcc5e67b02a1c1833b11a5cbc5d4e84b6324920e50853ae4bd7bbd15dd0c266b1d38c0f", + "8c4b13d9b4c900df09d13fe728bd59874c94f68bc1ce771891eda872e1b019901d682ba9831576a0fcf18560c8af29023f04a2d60f705fb58c27a4c7f8932a49c7250b0a12733758afd4ffc07912eda2303cea764e4be606a4549c87f442887357597b843c5700d155fd731d9c298731bec35f1afdecd898d684ae476e44cd70c5b0f4a474dc6d1ed9946b9bde395d1f44d688581b87bf3db57193c6260f7e6826ef3d63024c62e92ca96379ad17ca9799b1554f21c3b38633b765b6cd44badc59b55435895254580f3a9843c5b14b5a97f4a0485eb3c5ecf5e3dcf132701d13a292250e83ce978b02f3c302b3d7e03e5bc6092ae94c09b09680940ed7e43d1b14699ae3649d8f4056e80fde3d553fb5de69acf0b6fdd7c0271e23", + "0bff550b288ef7c9763d141e3fe0d176819155fc6049b5c8b830c94e646f1f7803dfee1a060319775d8e38fe6c4b352a576727f9e5988429afa98d85ea6ca1f9610ff824334c2ae0f2943618c8e162ba707389d78895a7266cf43a19a6b69e6d3a29c379bfc7d493afa1a6eb72d97c3597bec01d551117bd94fede75d1e124ef95170aefe1034b4dcc55966f782c6b727ad6e25e6f29a931e22dd874bba98559d7861af46a76640e6aa70b4d9c28bc70b55f3c16172853558e6f40434582e868d764d54eb7", + "026b7913d7b472bc46063649b0fac7772ab16081bba45b23857a96a780f69678baa3f099f1db790a446512f325f987f8cdfa40fe3e9594015e19ab204442e34af083da09979a912f5a72e676f63dd20817590c63b15802af4785f943d63f234d5f5871295fcc7a4451e3367a46cb5b7e7d95e143097395b1acaca2e04632573c062b4034f9bd9c2f6aaedbd933708e3a483e68bcf4fdd7ef479d37b98df7b5ebf23bcb5e05a1c9a3cdb493e2bf2528eb650ce34721ce122b12e3193d45c42a205c2587d4fd1c1e49f0f7ee9cc01f1c2ade8fa5305f1817812465f68473cfe08ebfa78d28e46ff5fec22987bd333b8a07a9287685bd9dce113de314616fe83ee51a4846632be8092ed59eb03e6978ea31a49cfdb346e0e9ab8f570a" + }, + { /* i=2257 cDividendBits=2482 cDivisorBits=1751 */ + "98c9f0f1b70839d1964c1eb17f32270cb4ec5ef23196e6a668388aa60055f85ff9e2254752f4619e5a3f5a4a266fae6f353a3383e969082107d5d66b69bbe561b1f917d9cbfc7a1eabf0d72e38b699f3f0f5f05b583591d5030e3fd7ac6b5cd7b99852ff8210e59ac5103f20705c47318a45653cae3f3ecbe29aa06632872444e4005150774dd5980dd79322b2710ca4adf67c3e4ad0bbf53e787f8f42a8144b83b9938112bdc705519dc03d5056627584dae3066a0173c6520afe75d893bda61bc8cbe59540d24840c52200d47696d095bdf220a2bf6cf81c57e15215ba3ef73df4f114007fa39ee53d76288d76bdae5799846833c3b4ef231e0f3847dd3df79a75e39bb079c37d563510114cf4c5c60822a6e5c6506179a2d8906e69b27bbd5d5e2971809512cd4536cbd568b030b902a736c1bfc5", + "63b8f17c03dcbc3f0f4d3f41c38437389f25656977a38c036629da49934536befe09012f2d99ebf3acf91d4d6a6d47c9d6810bbef9c652ccce0397b65973f47a17eb4dc468653017d0f15a5152a277afdc6e5da39480d370030875a48f62ea12086e5503b8ae55c1550c112d4820d4c2e4799570a7386d6224c5e720706b90e036dd0dc9ca9c21e85fc7fd274d5d1053a1dc195b1c25b8b5e3498bcc02e95112a03808509b8c3ee26008b7144f0cc22a6d81deb32b89767f6624868f1a112ed3d7e02d06b9cba6e0616f5fff69175cb3791e7d277cb8c5e6dbeae9", + "01883a64cf95455087f8bd4d9360349b47e47bb774ac9c5c7e6eeb650337d562f4ef84603b68996dd8e3392b077576f53d54a5515c4f0370cdd07348a8bb773b0e98794351647436240d41d7c94e8b1817047bed637f0f395a6c20d7", + "2fd2d345d5dd281fe9e59d6195cbc0fccfa07434808e6c0e2b16e541f604ef67344cd9ec45c9c3402fc31d719ba2395479c7e2affa330d7f9b1e7f1ac3d887e54a24305d6cc2e265f1cd054ca28e3fb7b64d9367ec2999674f262dab4ac045042689084495c129d992939c8f53d47fd005b7afcd06daeaff28b510336939425d9ed70c363ccec4a3b88a57879ddc55c9de725dd257eb138ad9e33e9e0e4b9e2cb2bf453c92330f347af35a270f07a69f9c3a9b6c9cf150a1005d4274fab190a4575205522ef34abf345807b011c714c676ead2fae86d58d2665616" + }, + { /* i=2258 cDividendBits=3541 cDivisorBits=3131 */ + "0b83b5322e8c80a4faa5c72fb91ab265eeb749e68bf8e13d890fb64ffbe941593be4b2504d053f9d5d5633be366979ec85673f2b31abe43ea855731377fda4fb1d62e4863f972cba8c777792a6eeed48c31418a58bfe1f12de6e88b15b7a7fcd03c918730ebd988b2d854f0017bf4fcf08fee2f64268b7006b9d2feeea7ac2947bdc39fac67d237684279c14069854051d2e457c5762ef78fd5d8eb41541437435eaba055db2a4abbeaa887a7887363423fb1bab929894232f0cd33cf498c08dc6829d9537389c4707fe23605ed12e45b89236dfdaa2fd19a5840efeeead45b6783648dc97357c6a2d4dc6808a7e925d2db5f2a417a029dda0150915f3e30ba68f31c5f0f81614637472eabab250875ee079ba1897e46039e7ebc45b32d50b5ccf63b20a4a0f3d68ba7864881c690b48bd5ebba76647d2a32762b8f52ac065339fba4012edaf6af721014bb1e86dae3f1c355b62efd648fd21f955d067a8771835e3e12ec13e82d78d3ecc559d091004848534944776db4778e307d8a285e4f1f8bff69d3beea16ac885d8b16406cc80e1098d8c21b3eeae47608ae741129f10bf3f12fb3cbde66e66ef4714529b9b20d9ac2003aac36f3c5dd275", + "0451ed1f5e3b3e7381a5f7420ca77199f4208decb333311a6b76a7453994a1090c47a97199c3c23d587ca53e1561d533a1378e18949ff0dcfa88dcafc2cd8154941880e105897a260cafa0f78967acc88bdb6adab93233a9a1aa1f7af091652643201dada922f772ee7ac2f03b93d9a8e171896c94b163f7048bf688cef73fb77cb5170e01f0abfb981c29a4dd58d4ac2f1d11dd4753d7a4872855801cae72e13f6083409ccbb36dc08db7dfb1357ed3a61f8e059ec6c00bcb4aac47cf6fe3bd9745d8981cae5ad797cb67cf640fa35227db95c4c6d6da82a2b3afc70dfb95a446e86f05ba883cad1a32c68ede3506b55f7f053b14564da052bbe2d179ebbba7e29833a25ea9c7a1071fa48026155c71f4bb2b138ed08d51d2f67d7a83697ef6bb1761f169470e7b7b3c567b973e8058b8a6c2b10817eeba2cb154570109d52f61142e41983944bcb1090fa416c9af43ccd06e2e0f98d1c62f210fb5f5a1c2c990c81b7f20c32069dbe0cf06df7e41c91d984b90f80b4443e54e1105c459da33080228cef5b72c04", + "02aa55fde81df9940170d376694f973b880a8d6b76d753617eefa33ba03be2bd01686b2676ab921f8be3db0e596dd11211b3baa7", + "01bb2da22827f7bbb6c9f6f824322d4855add41f2bcd630733d6094dec98916ea29dd8963dd6e1f20315ee1104c80bd1572859519a3c4aec90fe3102abc91261b5f85d706c45258a974354705247ce5669145285dd7a132cb98f3bd750618bd783bfa5f9c35ee69e016d58aac5df6d2c398db6451e84f0dbc0f954a99840debb66abce8fbb26a10ea332acaf63c3b5b93653fc9c8a11f88e6a51e9a01228baa4ede5b4bb4423c076537089c9d47f3221e75a545f657c54fee8eaa1cacb5a6d9a8d593775c560bed72e47ad8812e6a0cdb0e5ccef5a4a7e46aa54131d0491935234c29c4e832d948e53a7cd4bb4bf170b69c12060901e0181520e442f7d04504262e85e1ccdb8471af5ad22111c2c01cd96c3e01468bc2b5afce4343d37e39ea5d3ced3b1dc1ed6dc3f405436e26c96b5b0af6d72c64f55e9eaae8d86cace920b4e4889aae4c9bfda9431cf34c3dd3d412ed10aa55a1be7d63f68e2c4c2a0567d5a035c376b60d298a9458d27d63a21b42be92c2a813934b25f12a94ecf418c20fe10709dd11933d9" + }, + { /* i=2259 cDividendBits=2114 cDivisorBits=339 */ + "033005af38a4b77fe1592d2d4e1a0b587c88cb0c860bde4d5cead443f6d2152bea6e8bb6e7892102b669c08ef85af5447221d29ed5412e494c62132f1d409f8900fc9bf9ff91c2ab3dd513c80195bf793e2df47bc1ef003693b61b5b2502eb9536343eaae7fd19837319c3c2b08de75d742eafd504fd64435d359247de8759811aa282b2c4b2eed30ab4c3311023bc797487803f1c5c20cfffed0d5058296df6a80a9887497524e45a6add70ed702d94779f70fe4bfb8d1f8a46eb6c633c1841d50a08ecafe4c218e65ec59e7fa40bae3b88c468b9e5c19a050e3148ea6aead0db4ae56ddbe06d620428a9ab324691a756459e7a7d8421c338cf269c1c87b4166deacf286f04d8ac4b", + "043b0380339eb84cf6cee8a916849e29dcaeef39f3224b01bb49995885b89c143d5bc15266a608c8e90f41", + "c0e3a5384198c726a852ec831eaeb0dc499a42e3dafef537dcba9d3d611536b269c4fc2ca38ea966b8760364cfcae7f6b1fa7a34b3a6d749f22ead5b4b27f2e403a96a0f54206ab1a31e13a8f6e6bf7b148750d5a6af722929ed1abab1839ba8c25d5ee7424f638da22bde195ee3d6bcf5fab8fa7056b777af4383d54a9940931568f5070fe12439cbac93d8804e7a69702dd2515b4340f9cc18aec6ceb47ffae7b210780d7795139fc1deb3f85da669666d24f7f6cc0f995fa99f494c8e12003e76867c0b7c61f36ef1339982c5211f0def1b5f6d6bf1f6b062634f39ef", + "0240c94619c077caad2b1fc4d92b515b2d17a3156defdc9ae20c95a605dde03d6a23bd826f89cbb6cef59c" + }, + { /* i=2260 cDividendBits=3606 cDivisorBits=1969 */ + "2748bea57142c4bd741ed78831898411473d29c073a738acb44cac8968e2599070a64252de207f0c13d92dbae846370f9c1553f81aea590b38cb08ad0e549795d38792a72809ae9d9f735f300ae153215efd14951ec19fb1138c0fd5ef5a9d42e15b8ef8941ba2388e091aca0371e47e8bbf40af6c88d0432e98b74851112cfa84d1423f5b8422f743e875b81ddc2a9c037685a6554ab40e5fe08e532288ce64ffb988c77fbab9550f5e2ceb5649eb84aac1c5fb5d401eb89ac1190fa6e4c88057fb4775b8d7f007c4389a271ef481acfd11b8c676ebede50f1cf40caaf4589e7a635ce0af36ae8cfd257cbbce4df9ed3ef37ffe8c260017ffec52aa172f42fad01485817dac3c917af64709c97353826aa890d642ecd22407b8c560d6b0774ccc5766097b38c476e35e77067d45159171e259c3c33f310c4ef31a825731b1e55503a9dda9e119fbf1b48ed7bd78a254b01eda502db6b628fef9b2a970e5af7683314daa13ae1a6042a696fd416bdd24f96408800e5589c8281c27d50db3312d2253a304cc9e12d477a84d47187136d8340f35f95f612ae1033a71e9804ab5da4e1a450f9e9d45b3735c9132eefec1889cae19e2d100bcec8c5ae67169156d720e2cb7", + "a7e267bafd787d698bbdbd79930361fffe146298b4b5afe66682f3f84729cc29f2bd3a2aa8efa74113d634558657a1b537c21bdb23448b65b079fc7d3da0134afee3c2ed9aa2f6030ca0b9ddc11bd8c907738d4b0c6af3da4ff4c544346779dc11725a98a1554750c3857528ddb3026ce0c90ab6008efcc7f3bac280f0310ebed80469fad2571d6ecc1c93f144c207bac660ebcd3e3178f9711ed5edce1c8ed1baa16d0e1e0e5311ff7130a3308d6186a0cec9c4187ea7e12caf8b3fe929e7adc51d1ec83ef45cd8bdc4475a0e5abbe325384ff634dd8abeb267f7f4023c1a13a5b23bf9647dc0dac0b1f402acdbe733266d24f7cff3", + "3be71da65c561caf9464b2393de09f3462d5e06f28550ce57bf4b6eca6d449883cd4a6f022a3c3190d4d4900bfb24b95febd7fa2b83cabbab8bacf333062926eba8f084c302e28c3b70e206c5a45ff6021a474235d127b4140488a8f2d3a1ffb74dd1deaade09a6c45a5e1ccb609d9e012eadaf062c52377235c676f8ce2b1361f630967db7741be30d3734b06555c71edd8ff469c794a017592cf2badef7140f8b8df6c2045ea711f12c293339163d2d93ad6d828c3306b38929abeeaaa30d7331e286d89eb4aa197939fea5c", + "6468d47826fed0e385fc25b798d8764ac8306c1dbc185105f02c980ead2bed7a52261c57ab3931d7ba11452f41141b0188b5932210e265480f293e1792b5aadf9939052eebbb7fc761089e7aea54db16e0cc33e8078e2fd40d699433ed030c3cbe069e59eaf727c022a0f8d94364304f1eb5c46b7e0d1f960f3e2221df15af91cb02b09cc853dee73bd060a876b2aa3fb4b79d2f4189d05bcf3885d829225b35e6dbc1e0aba2d683b88f188bc7df2836a0b1c36adabe355cd800a59bf7c823495428d39b16ee8091fd2c50a9c5988ff310e8185a818bbebf2215c4a8e04ee2e7a2c769a429272ba399010c4b08833ab1c4c1f3fe5363" + }, + { /* i=2261 cDividendBits=1752 cDivisorBits=57 */ + "ce4785ed92f1a7281d1d13b50a921d1c3bb3d321b24dff20df42994291b6efb24af306a2c141eecd2db90b44208ceaad1377fe8551e18533dcaaacead3b3650ec6084c1ed8d84a64d5ff1b31e6bc05497ffaddf70293bad537f89d8d97330c7f8487af70e6af9789254cd21240b97cb1a2c2096fc496322a623ff34ca18969d90466edb3f974f098acc28e08405485b5fdf277e716fdbd5ff8b9b1ad33ddb879519016acf50bc13abe3adf7f32313e310f7e66c4abb913a0a7ae9c251d0f97dfb2905a8833a6d29b48b8705915bd5e0647273324e5881208f50292", + "bf1ba7b24b6783", + "011452a92603a76bdb2095c049eaf85b1ceca2e0a8dea00ef51c752c81e66585872f861fab04e8327297394ca4a101509d52c294e3c5e2265fd1ba38c1676c699fc75b7c6ec48a1084bedcbbd6b804c0eb72b08fb4ce557026ef55021b251a97e3ebf522d8cd2ec99dc6f1f5848ff5e0a0dc02929e97dc102536384c94ef63bb57c82a47325e75a5314fea5ae95ab592838e6c1918c9553c6e5943d72c21c7090bd2c834088481629a0a7cd74c0f4bfcd6fbb2e4dc1dc30d1717b6887a638ac1def515598cdb91807730b9326c95a751cdd6fe1596", + "a14bf02b4e9cd0" + }, + { /* i=2262 cDividendBits=1882 cDivisorBits=6 */ + "03c6026b46dbdf739d012feabb342eb721e6aab14142c96b9b943c93e742b1abf61a9838c892e2650f9bc2b451651f6acd1e9e914747838119b8008f429061c6fd1755d01851d46c52b5f1c465d072e541806650c745d95f7a6b673e1428f4a216c044596f4978d989561045a9c78a375381fbce8ab26d89b9b2bb07ea4a7fa8a0502c84600295473a13d64b1661edd58320822f48a21ce337f198291f656af34548177c4ec667f3a44e981830dbafb3c812593bcadd6e10c643836bbc2e26b84002f33554d00cb70abcf124b96cb04b3a6a1049b1493c0dc78620772f21741ca4cfe62e9c3587108674f894", + "09", + "6b559a245151b783390552f85b21a291fd2f6907404f44d865cdd78b79302f8d1f663f32bafcb5e54a3214090b3c61333c4a81eb79b9473bbf1c81b2100add3890d0a55809179a4214374eb5fab76ece6399973295fbb5467db6235792c5d91ef8eb2661b2d489f2d0ac7984a464b0d063c6a52bdaefb9f8304dab8bcf6384839721640aaaf4245bc950b3027ca8a5f2200e7708120335b0e1f47658d261377979c9b87a87d2a94b252d58056dbe306b9042cdc1350c3ac0b22b0bf876e7db9555a93ed088e4f7e4bfa904149a4c7a22ef5724a1ebb156dd47cab7e8cad4032ec1c43e115b47e56445e2bb", + "01" + }, + { /* i=2263 cDividendBits=1820 cDivisorBits=1419 */ + "0831b32031dd000a6ea3131884f5bc07076c1ecef0ab41b84b668d7693d1e111a223b2ac451b822dbe20ff940a46aac61f34162f18a0a5b49d27542f6d34a3a4be657f42a353f9b5f2f360b93bd337293b9d8b4d4fc7b1f475b9f9c5cfd19c79cb20c20437dffe54803711e8d7e182cec77a5d0ca74f0213b76f8aafac0c3cef5d354af01a73b4d14e85e5a5fb51b72b702a3b7760b1420913c7f701a85dceefc3d1ac52fbd9cf509baffc939360ec8d929effa6054a6f32e5098d0d24e81e00feed2914adc4f6944914e03b3c9d10f7bafb340c29b46de9b8df31a07934959133875bc6", + "0502fc19619426f626ed9d4e52e6e3922f1889804299f664b79499806a958e6c17c422928516b0362b8a5236ad0268e25c5a10c7803792885f6b0fa0ebf0982c203c1475281274635ef553f63df76352c3f5f86c2b29990c870289c00809929b7918b3830da9eca3908bed48c56383b0eb9a5b50ca5aa160114cf6fa0fc0327fb7c7e476c430eb372a926e6189ec88100499f1cc62fcc03114702aaa6282868cef10fdb1a5a0c2fe071ebe2c1258ae5d7473", + "01a2905cc5dee5d6a5ebe85c6191469a855f9de904d34d3cd4b2577b3d33f1807f958700ace68c4cb5230fc3120fc0ae0ce0b8", + "011f30fd8abbe69ab2f50b30b655fbdbe53a0c14ed2421fff3f1f4bb632acb146c0489c72cdcc3622d4e4823292c0313f209b73498c6f0de0f9925abb1f172abfad3343e61ff56c85367d0e073164a66d8ea0cd96886daed25a2cf0f32feb028471d0ffd6ebe8377f16422c98257b227d921a603abf7a263166acdf4a9fd3563b31883d2c3f59cae9bb14cdf30da6286ec8b1ee89407d3bd79db72fb32e2512ba8ac46849b278c795bdb0dce087a7b13091e" + }, + { /* i=2264 cDividendBits=1457 cDivisorBits=1426 */ + "016f35af55794032aca0daba1a312d21e74a6734b083226190b68e4ae4de869d50073bda469fb40ff40d9ea995e8c76e7dc2be596d3f82497fc0e00bba692353a36ac732e6ee27aebedc5c943e3b14623dca64e93d48aa6a08f7ec4b47cd0582e3f087d25a2845e3f93ba1d10344e19ef8eb13743ddd8ff5c41d2b0c869eceb4595ce1c73895f80ed545b39d0a8c9707b1963a2b6570b41ced37ca4fc712369e9da7be37e17774ccb9dd6715f7fb606920a345a8ebdf10", + "015f0b2403ad1b48574e5b698501127ec7c1b264622eca848b42506863e031d4105459baa15a406b865f7f219d98d4bb5524d10d1c84619debd70eee1e4a498bb694c839b6517edb618619c30031549c78baa35b36255347a045b637a0a8697b25a5c1ab2a42d42e78acbd930a7d0e8ed6b31812029446a3a79887d98a73f7782c4269e98f7bb0797c6be5af33fa84e796fc7ebbf0a4959bf413f9b222ff74293854cd86c6b20b2dfa0ec8ec07d37cd92dbc8a", + "010bca0d1c", + "0142c206812b953663ffc0b37adb4d4c8ba84046697ba088f8fecb40829d27afc14af70dbeeb7c21aa1d6a49409f61739d846822ecbbc987e1a6086bcde3656b31cc777fc2af87f30f2fc1dfc1b7460587218360ccfb01446977d95e18ba27a87b0e59fe109eae9518c8f92502de0781e327552f8760cd985dfbb445b6208584d7004d91e7278550fca045efe03972c20b1bc26e8aff14ac4024cfa32a8a0c93ac2ca7d22dbe1d2327c1aa1b8218dbe2743df8" + }, + { /* i=2265 cDividendBits=882 cDivisorBits=862 */ + "27876537c05f10408924c3c25e1189da8177d8466ae98a6407b57cf329476ba718d52ad68aed0a2a37d9b0a1f3b1a0c122e9b974504c6204e4a039ab3106cfcb912d0cf320f6f9cd89b355baa24673f0509b5465ab86e78ab65f7c1140976813c8faa486c19ec2dd7a95cf24e27a", + "19b58430d21b2005179be025720e1379bcdfd90ceb4c3ad80b29c43eb869478f1a107d0ee4692441988c0150c6b489097f03bf09dc9bd078aa683623a6bbc28ca4e73cf3da639366992b700a12419b482b052d9275396a0a5607ce8e6298f563f580ce60b14a9af9dd27f279", + "01899c", + "12ac4013639134cc15ac4b286d60c0551ba951d2219a82eb913b49f56ca4ce9df8ce7934716f6cb1cd4c256d645e0d2392e5c29ec0089d7e670d7856f7b71a519377a21b07d7360a5042e61c9c93e6962a48105254c43a011336cc768227cc2e4d368e87317d75d0b7915fbe" + }, + { /* i=2266 cDividendBits=417 cDivisorBits=78 */ + "01a93755c4e7e9ddc331b8851f734a89051da8062b4aa311c08c0f4f366b0b1386441f9326121bb388db22b4bdac3685140f42345a", + "1e28b257ee2de90df887", + "0e1962878414cb50cba82709f39348d946c19d3fcea68f1f56559aef21449b7393c64f8b73da393b078a5e", + "09ccf62c6cdf0b772cc8" + }, + { /* i=2267 cDividendBits=44 cDivisorBits=26 */ + "09782cfc91fa", + "01d618fa", + "052820", + "017062ba" + }, + { /* i=2268 cDividendBits=89 cDivisorBits=75 */ + "01cae4e8058ef70a86d924cb", + "9b52ac4026c657709e", + "02f456", + "95923ee849ace6b7b7" + }, + { /* i=2269 cDividendBits=2752 cDivisorBits=692 */ + "f2969f7d084da5cb2970ec799f3f8279c829e201c85f75a0f5e17ef9b3cee8e313ac5166777c4b6a5da8ec2f707a2aaaf7f41ddb0d9e31998b679afb5a852bef81ee2ae36efa135792eaf3fcbe9ec9fd1d52603766f4061077d6f4e52866552ea4985e11eb204719b9d606cc6f91ed73eb0a1a53b38fbe1a38d8fb0bb048db051d82283eef283cbf06a840fc494550db077b5adeaedf4196ebb31e2719725f389a6618ed8e1ec37a5db00854c912230ef5f203e4b970767003c3d60debe13b2d6533c338a9b09662ea19b7b7a49c37d00f6b58352d49efe6392ee3ea3a96092afd0dc166b4ebae200326c6965ad90e51c64737cec9fbfa6e59a437606104b8ecc64e032088356132ba266e0e904bc6379e38273c1d33b58d303271c62f7da59cc977103bd391dfa6e399a673a20e6ebd61038dd7164a09a7b5b24b97bf854ffb8281333a8dd3807fbf263cdd81df4b4f8f824b2170b8fbc8", + "04699789244cb2b77badc43d9c686a2772de9a2822929197c3d12041193dfa399f16c980a8fe7193ef6e42a32bfb5d478b22e6e8673b6838113731ef00071c005b8a9bd3805c9ed3218c22c2d5ded1507b87287b40c072", + "36fa596c46b96a318c04c18272c0d0e8bc0901cac87c4d2fd00d33355fd7508c798a0019e54f7af5cec4f9b58352300b641e882f04c0d1f1de53bc4c6c4fb6fc6d62312de8a7a66d4d4b917de8ed7ba769e6298bdccd4d2374dee74ad664f2607793a5356f931eec2d4820c49314ec44551bab693979c028ac1f4cc4196e1c79dc40757a44ff593769e7f09f37f0f265a1e3f3af3307cd5e09fff54b9ff9a042799dcc43404ea104a091b4413807a36de0b549c43a86b76ff034644f204814f42ab4a8f5e066935e1efe657150921bb5b1b9066b72ae8334b4ca6d623e1b3b28cff56c32abe01b59bd1c30921be124e47d3b0121248056c287019b2e8b1e94499ba1", + "037bed197ff758b162216dfcf938f73204c798899e2b074cde264cc4161acdfeeb904f7869ed81b0d7b5dcf22d27d06046d9ac49f1a0493e8ad0d2cbf7ae605121c9390b8c85c6674a8e19df5a0650009fbff6eff8ee16" + }, + { /* i=2270 cDividendBits=3843 cDivisorBits=1022 */ + "04da95afad3a27396e4282c1485db3419cff08143caecee5abbf6d01893606d91aee51f8f4f2cf504373c5113f28c30146ab3d987a2dc1759b230abdf126ee6f37f392fb6f80dc3602e0000063e05b4e77fcdc0366142ae0d2f4bce4d2a1f0d5c5e4e233f65161342bd5b52650bdb3122bfc43c710b4ee1faa5dafa7a9845151794d2b63af5ceea2fc2c985da47e9b57b23c498954b5dcb712d1a96669f4cf6ddb324527c43eb184f37ca6c8e2e8903e10fa8a79162def5fdaa328bb51ebb0d3117ee410dfa058c73581575fc44185b6ac03647fdf223793440ca5419095fb25bfb6fb2086585dffe8579c820930c69ba6ef1badf00d9dbd97c1c6d2a40442f21fb6acf7a6983a797fb3b03ab634368c543f127cca633382fe5e8afb2eb9a60dce9570f0fcb5ae44a5d7aa67a4ce63c5b20b0a561bb74c097262834aa5279a7ad88899cc7a0d67fbfcbba2753b0ae29674d45694ffc2b9d0298b9c936ee7a00c989febadf206177099a26831beeda4513369f52f5ab59c3164cd9484a87932a828ef5fc07432798064ef0bcec71fabc9d2061807ebba235f5a08915f131469354d1386528c6f7e8e5c517a9c000fb12a9e9abed0e5656020c660a142facfe954676c4b50dd13ecb7ad8a58c48c5e091208c913d5abbb39da3a5a582675f8b6a489", + "ec007cac928a569247c76ba3bdd3a98e5e8c76a8b7bbc5c11a9fcbf918742746308b15149cc305843629157bfd54a94a800539662bcd97fbf409fc7e80a9afdc0f94ff9cefbf2ecc5d3f1d8c32dc0d2427f7b54266e1b2d6ac64e5827360cc97126c19faa0b9a3d31378742cf2614a7672f562ff0a5613b2fcbb0fb15a691a", + "0543e0acbead86d46b355ae86661174c03564eedd754974c1029730bff0c4d503c2e0cb69cddd413e8b4fc836bd2035bb9c808c7dbaef853c2eef546965944c408cd61b39f8837ed5f4ebd8e6322f5b7499d29cf075cb091638f9570247b60d218f5b90a7803e4c67949f3cbed00c2eaa2f94a08daa32c5e14fb7e4046998bbe254731b6b76a124266023a164eb11ca095a90951d893feca8dfc235d5ca34bbd485acbb5de8c873622ff1ec20fa75bed6aa54585382cd4ebb94de84a618dbc4474f0a7376905edd415436f4bfac1dbcb65f5a95ae7c18929b165eff75c92258f97d82cf0a070ad79e1b1acd4c668b695f671f8d35bbad585088d99082f90e449f9eb71c1255b43d276e146b0f619bf2699f7cc62b532ce615e2978bb22f7f5ed04fa3423b3ab797e1a877362550d62e5655285be316fddbb865250d35124443089ece7ce4b031630beebcb84912d64aed465d55b2559fde9f2c295efa73848a93e4d", + "3bdb7ea8ad3ee51a134d3ec2565a18d5628f898f2a6b64f1b3caa4faa6a1f1c08e809225aff8359845e7ef1518f84a08e345fe1681aa998048192984d7b97f2065c15685016210a7bbb2fbbbe772ee5b377d49d076629d8d69978019c53d0187d1b02bbdb275e8e471cab7c491c650173b3d7523345f17602b9fdb08e6bbb7" + }, + { /* i=2271 cDividendBits=1683 cDivisorBits=975 */ + "041e4a431804f01950dc96f732c821320ec7e10eaafbc6e494dc2a2bbf557dd63c72cf9d3061b267bf6efe4c6dcaf115ea1e543d8770aa857637bda8d6827da12605fc8c014c2e5eeb74c6b12b1dbd08c30e1f7f367c14c454d324f097f66e7b356170ec1e21e9b01e94977313b701c61caa1f7c66031361fcf4c65dfd76ce4a49d8ebd16811d580243c9da42226994e4c37cbd5a788fe6316c7d0445b88b0cf967203a1a6f93ce1672195759e626becf9e1b58f5f18b73b951969a894826647426d36488bb6fb9c0ce0c514b0fd8d2b6bcea9", + "4e5312c664459de3d807712f2dab6b3a03128d6dc7a1cb7b8c0801fec93d8436f39a095355ee72ac59c31e87a511bf658c18217460dabf8d42f1dc9b857a135abcca0e41e54306edecfd6e3a3f4d8728a0b9d3f0780b2b913e429673510b154d17dbe7c5a256113fe09dcf048dac45e3b3bc8d1f616b6e20af32", + "0d75e5e879822cd3fa586d60b812418a0eca957d4985a124f04bf9125efeaf71a0934189b63f9450d052e58f7c5cc933bc798f00d1b72b16443e2e2a8fa1cf2cfbf939603125209180667b65dd95a83b1b2b07fab789f05de0", + "402ebc1d24389e7a1c64674ac9ad68716a289aa8c1972cdfc2871345f2414096fe206f465f0cefe4171c3c4c355747cdac58dc925cf03f3eb391ee3812fb95a4ce04dd7a66896edd021ee21d4a8ca616fd6837bec3555903f50c0f06ec0fa46b64e7a82f821ba3d1bf9ded4fbf14df95f6078b5eeb66ee4d58e9" + }, + { /* i=2272 cDividendBits=9 cDivisorBits=8 */ + "e8", + "53", + "02", + "42" + }, + { /* i=2273 cDividendBits=3044 cDivisorBits=3029 */ + "016d8e23a4f9c8fc7d15090ae7fb368462855799c9cf9a80a4acf2bbec7bf11d172829141ec7f6c38e8d1c34523efbf1f28152d249f8f704413ded4da0c213502fc9556307877779f13b12c5b733bf10d6db4c72724647ce9934a738d282366d05cefb3a9d6bb6877f64a88f5bdc3d6a9b2f2c5fd22b36169238ae501232b9c918d5ce1f83d357c53b547fe7ee47ba65da410ebf724fc3c783d1df2d3770170239b8a0f3128d697b4696a9fd9c30489b6eb1e8b49b967600d913b9e065036f867f7b62e1ca193d9a2a2c38571849a5381a1bc873c3f571e2673c4c9a811d5e624f58c28fdd5e0a737a6f74d663bda50cb7d44bb5a1cb87de1a9a8e07cacd2943774e19df1a68fbfeeb7023d5fa8dafe73e47bec77c1e73d9f3dbd86a2aa55ab1c920e4582a5b23af0a6474d5a25a8c64fee94541d6d87857d26225a0c45bbeaf5c52aeb6a41a0b944982d9dac06178087c735e4c72a504a9ba5d472acb1cc7c783718fa27d28e6a8d81ff885a03277c0584952d7c95e3b9544b2984281", + "428d8abee227b40e4a13a81d20f81df8d326bdbf840a3b4279895dc133977e6479f0472be90e3bf4b1153608518179ede8544b9f2156ff69a397f08902ca0dde9baec4e75a9004a2c9fcf0901e70bd030d2343519eb926ba68e5604536724006864c5e5521116f6361e2cc190bf063b923e2ca4080046d0959f190de6d9f701006dc756298f90345821d5d94fad07ff51adc3243b972429c1cd92dd3b53df4f0af23ffd6ec3ff053e780b4ebb71d98aa86698dd7d8c30e17bbb1d4e14adbd8f9b3d0997d87ddd11bd0d1bacccfe11796b1b1f341e87afb4783f0e1890ec3d68bf3bd97f87c177e7304fe146209d66f3c0ad265b3216f86c0fd9d655effac4ef6effb5b64358dadd8917785b94bf5ea1f35064870ce36a1910c3bcf8b8b83576ac2ff42feccebf3e86fc69c7cb8b4740150d5fc0a06454232ada83123ffef098212dc5f689fded911086a0e2735589f9ed7371bcf11745261ac7b284eb3af2f1f455a8a2b8ed6484018e532cc583cf7eee90ffe80f85458c2b195", + "057e21", + "2f61b917c6786459890f54628fca10959ba982ba49dbf1e0a04c4caf6e64077fb54271518b6eedfee1d49844549927a8e8184057e94420d2bbfa43183bf7649974118241d3ea90bb8ae4a9fbf637bbc0152c530576076a83ec84f842eca7b88c7cadb71f827c353d542dfd709ceb81372cc7d9cd4726ce7cfe48e7fbfe135e0e70652d7a6d2a27ecda2cfe00f23598f0ecffe08755f3d54eab87ca625dfb43b2a8502d2ddd1bca64445e4631742575b5a7f8d523c84de9cfff4b39416e7d199f08e6dfdad41b72c28c1e57882c886d6c35cf9f1f7a7a116fa1c54b9be6bc0c0cdbc60d796bf76d35bdb0aafa1127ba1ec5f4ddce08a24ac6e3c0fbb5f490e63e6fc342f0f6dc984aa522a19c80b3b4806fd13b59398e66f558947c225bbe812b434f4ed35f095d999d933009809cbb2298024cbd275283db80324e77db53b553f43b2f850c63fb714b59376d6b657de3e39ccd768d474d63878aabc679209fa06ef61ecc5e68c6fa8316598186ca2f80f4f13bbc52e7f62f084c" + }, + { /* i=2274 cDividendBits=3434 cDivisorBits=778 */ + "03758324dfad535cf96c737d5d3878cc1e232e144083fe3d130b10e074ade86886170bba8f691111f69ff7d2637ef9fd0f3f9043bb40a473f2548f2e370d804ea7e720096274c30b302c9f8026719d9eea980ba4530b1db6bf70d9a234c665c0740b3673590ec803e9a071ef6ec5738a338040914828cbbed9aded803aaf7ea966744e0fddc16abf65b81bb4887c436d5961740549c66727e107a3152e7bdf472a51ce7b2ef280a5c1846654a9651c8b47b0c9812e1bf23872274ebe36668a9b0d36f5839dfc645fcc0899e360009ffb38dfe1c3f0524f295f158052c8a993a26eea3ea28be23ed25c013439530cec669b2bc55fb5a7c4b00b4de75e5aea5923bafbc69d9446b07c0c18b7f7564acad95645ebccde2f7d73d02bcb24b3562594e045ce773b3285d3ffbdc6a16cad37df9094a05d3458b928e8631f52824890f3efd314b7215d7a95520aa5cfccbefc35d223d7129703680442012f099875b61f8d38b5312a69fcd3b80167aa691616b797831ad261d930df7c67841556d697e402543e2e79de12b88fdd3b809c9d929fbdf9692649b9497ce56362ef8136042781dbf761c3a6c444b27d5878d53a", + "01c98c8f619aa7e7e55cf982e2eb7e4ed79f3f92326334f9c75efc77cbaf8c4664db6ea5f4debf9acb36899ba86c39a1a03aeed5b89bee5d1b6bc8f2902d3e1f72e9e547b397561a7bf738ca893670d3c1e707594d02e2fc43fc2440ecf4c3950616", + "01ef7256beb96161a80c244b2db4c384b51c002274c16dc666a1add8fec440d2076f1dfea8e44aa584701fd9451603904747c2d8ae133ca000fc06606ed9a77ddb291e3575d56e011e1314849689fc833725fd70dd0699e83e8b2b9a974780de55a2692d94d517845a10ed50955ebfed8fc45c7f07c5ad140e5079a0abc231c63bae5ed40e70e26851741394412e3c9a1f2417b0b73b351dd33260f350735834cc8dacb078f34c27f18e3baf46dee5239dca5878832612a1678e715a21982de3a1390ae46930d0f8dd82d0f017452f91d75d7cbf6d182c9d7ea93683523d4b675115b930f6e7f3612b23cb3dcb9ef2df34c9d1371b56b2b4b3734428ac63992d725728bd9ac45a3182dec2f77e09f6171f994368bde04ab4009b5d202d5b00706e9634f0d9cc44837542d6f7464fa1cc4b2ce70ad70121f54ef36d39a9abbb0ec173d6fcdd059f310a66490a0d", + "f0d0930834c56e83f96ad57c0c5c4d2728d2230967faa7742236cb96aa943b82faa7f2bb2270ba272105b24e1b7aaf29712868799efd34018e4da0c155e6399cfe1219622e37b78ebe2a364cfc2a24c5bac2a5d05c6ecedad6ec5781a41764aa1c" + }, + { /* i=2275 cDividendBits=1870 cDivisorBits=993 */ + "1fb7a69834082976c32bd3749205540857dfbd63b291efb025148929c3a41641ad0726c9a56fec7b7fc1c3bebcebb20205537bda3f272027ee6e548c60724a91387901e98facc09733f8aab9221c6a26ec3b8f01474ed1c03d1b192057a2237a155521f413abdd9639719e76b9f3afa3089ba378be4739844469964f4289df053788180c914e8e1ff80c809aa605883fc4833543b20a4fba8b2e64c8a516f4a9a2be39c0d184cf57787872ac66ddb0f3bfd9bd698b283788869f7d01d21208dfe5d7235ef51f763a2708d61cbc5f241d0af8bcae6b5eaf74fee0598629edac80455dd5f948b2f5a4c6b2", + "01b29a877fb37c3f06fb922d382879539d9538fb9987e65d2d2d58f103c0c3d3a8805d5a8d540d578383fd385c9e2b9879c0855192d178c6b35dc40ce8fb5a3e4b6808c9bffbd893ea981e7f88c45d2a3debd5f079ae3ee77360e31404eb912f54339e6911528bb9e668dafa31d723e2943209284c334ffe41f5d63e51", + "12aed1b85a144c507bed00c3e7191a03318b06c5776308e2029f731e196b69d4da41622f529e857b0af94edd2a96bfd825912ede0158962940316b309b949cc961fefad08f1eb3406a2ae870259128808102b14eb06ceaba13cd04abda5f8dc0415e7db5bb52979bbe5a4a272ad7", + "5b1bddfe8dbf3e2d66f396c1d207b3691479d608921d3052e39a4ac135237eb9e6a0133ccaf8cdcd13ab4dbfb535b6e1ac37c6ee0f169466c527a431a29857abf44a10519051ada4ff0d9ba4272c291d190d67a4cdb42ce8a88e462d4888a783a3671d539d4f7b6d27ebb4e8d460d195de924c33df5a84d7702626ab" + }, + { /* i=2276 cDividendBits=2194 cDivisorBits=799 */ + "01cf982b34227eb68d476e0bc764beb60b8f1e9cdd8aac714f76ce791e50ee3472da426a5793b5aecb0ab996385dc19c20ac4027631a1be93e45b7be79b9a9326054969ed3493e7ea764b6bc889588cd520d6da24d189dc39e696ba3e295a3c6015edab2756f9f06d5b8bc826cac490dc565f33bb8c3a9bc5c128f9cc8cb887ab9f0e17a9277230e25a30baf439923cb9923d77cf0a2c3764602a823ccfdfcf7f1bd0e9e7bb57472dc7abd990829626e4518632af4d0b52a228b0c0a84efcac1e8b938382655204baa0d512338332bdb6033548231e466df9323260402fa9faa5764d38d1a694a7b192b222b64c4b614352f5f93761474d9912466e74a57f8099ae7eac843709ac01d45a7f47f5bf33cf10335", + "426958370caeb995572927a2c74729f654e7ba9aa746537ebbb4e3d37bfaa2387a30f881d7af16a13274f2938ead6ae31039330bebfddca3744118dc7d0b8a31e5b0dcc15510b28dcfc0c20fe2094d40d89fc9da3b80090a7e1b1a852b9f7b52e486e830", + "06fb0ad90c0818ec50035c06577214e430e897d0948c82c1936d8355fac25defe5b1ed0ce8b7eddf906b54a948fe30572eaf9210cd1ae9630010789dd41b86ea6b7a06cf5e3a33ee61a5e3b83f420fc50e03b0925379b6310bfefda6c3f6733e8f2e3136a0648cfdcaa0779e3dd909ffe7203a5ffefdddb49af67713b7966d140d9dcd4abb9dbba51975ffb12de6a39b895afede17e26f476546bd1ccc373c587469eabc369d721538a8fc9225d595", + "12874bc67af1e46a33deda050b22beec2ec8a10838648f71f0fe6a5d966df654156aad4f8364df4a4808139535cfd5c551a3607d6fb9a8c372ee01902d6fae6bacaad0d28ccba94d801934df22fc04d049e27295a1bbafe6e9c016f78e1495650c4bef45" + }, + { /* i=2277 cDividendBits=2499 cDivisorBits=520 */ + "05203efdec334364d3ce0e858f584a4fa9218a933821f5f167607a53067ecab13ccd9e8eb66829f32bae39956d4826cf043eb0c690af423d96bff2767216bef4a4b4ce57530edcd5cb9f8411d81c796d1384d9dbfb9156cb83965aa70c3da3dc11452be81f55dc8142dbd26e59c15b177fc97dd6ee8b67821c6bbdaf5c0eea44c08b7c52882fd94fa04ebaa61123f95d66a8539e90a30be5bd2be50a3ded0d456110cae3a32a1a8efe3efd5dba7154c568cb557d5771fbcaf5b1cf43d8a0876410da605de7bd7ee9f811767ab986b1d0692a732097c7e6ad01b77213fd6183a33b8e2275d939f53c4d484080857cfdc96c0facca1067e752e967a0584e2f215241aa3321bdd9377061e54c188aa64369fb56f2518d09df89e1eeb949d7a8ee39f5cc54c4bbbe6d0339e4eab53e01ba06fb2f731ffda873939b", + "88a09f41fe6bfb65ab93d4530f1ceff7fe0ec196d0434adcc626e82bc48b6c37a2dfb1f9e9dfcc8112dc9a6a074e44c451da4650d59d413e11ba986045577f1624", + "099ac44e5d1862e7488c7ef6117b01ec4514c5e0d96598b5826702b07acf8df1cb133a3dd5848d3a6eed3a11b03de6de9813d55b4148bd10586739c3e55631a3b0c0d43b2f86333aa25ace816b00339a7abd2f707a6dbefac4eab81b8cbfc39532e1188b5505227556a1f41ab0da1dde756ed96f62e3a2675c871a844716cf6cf10ae29f75969380de5fff1738e83065f475f3b1252cb9ff5805277a680ea4d2006582aa8da915738a43bbfbce753e62227be4426d4ac9a85e486359f28b0d1a7e1b698ac24d66a471a3aba4b8a52c8fe7228640d7ca5da3051242c523103511dcd2a384dcc904e1a0cb7f48697826fe58084443e1c20061", + "25509b7bb168bb261b1d084a3537ef1e6be676e34222cfacf85aad51fc8c3825eccf3951f31fee63eb5151f15a9381af76a0c85daed39ed57cdbff498716042ff7" + }, + { /* i=2278 cDividendBits=438 cDivisorBits=354 */ + "23996662ae069633c8969f65f745d4b1e279bdee92636e930743a1e47b478506e675e4057d287e0e3709cd642b979879985f1376b5271b", + "030bde01e5c301cf8a7d7d5796e82598c00a3deb81fc4e7a83288f0557f764fa83af4f2acd9967164eece0b481", + "0baf92e90805bed2e4468b", + "c4856ca58a0312d3d7a1293c6302fc30e6130976dc09e332c4547381f0b9ad08ec6fccd22295e482d273df10" + }, + { /* i=2279 cDividendBits=3142 cDivisorBits=1727 */ + "1127ab4f0e9a23df4492e1fc9344f9d085ca9be76e4112d0f261b922c0deaed4b6c4c034a519235ec673a231fbffdf348f7e68be1c0f446ae3bfc01e74de84d049c902fac86e50ae042c2f2a84aadf5c2566a376622524eba7e26aadc4c022321564a211a2cfe51ace09a9777634a5069d6f454d58a17c153f4586c49fa516f863f8e0d409e4fda6defc773f1a47a8687f80782abc19562dc2a66900682fce88b3d9e6169e5a808b93128b248ed630990b53625ac7f42ec1bd0b112cec78eea5fc0da8dcc7b031def646785a8b6aac234b0d82bb735295924ae63f66c993ad25687ece9267c5f2aad0c6024bda75ee04bf509dcebae315b8352b9d6f6cbe93d22c88f3931c2afa910a338485117d9762e27535587488cd9c7968589ae34ec5412af965bef2d0bd66e9fe4b548d2f7cc9fff043d71602319cb3834d62235ae391402b50a4829e2693b02ad6ce0392316e3d16ed2ff62fdbebf399d360226589808bc0dbf2b314a31abab451c7670687f52701f8f30b6e7066211ed18bddcbbf8b8beaece85f750af314", + "078175e3a32938e3e04f0b538a7f0b6357cddf9304db26ae428dd6a042d2e8168d969fbcd3abcda77a9c44034f389a719f34d68f599b5e70119f2fb3ac18149e685d9e80e0b39f35a409cd2f9a0bf66b066b8c81fa85f45d30fb3fd0376028962a03db559dc2b1adc26246a40a773ffbb043e5af723fb6be033be5fb2ab185931c711bd8821130b0ae39ed52559e2b8dbd07ff958ad99a73534aa2143d7d263efbe035c501eee8b259b538377cbf2308abfa66044ed705051bd3328355d52b7b6b94eb7cdba9505b73542794c718d1d52bbf6df22752604d", + "02491c5dece3ec2e26986f07439f198775b138ba4e27688bdf7a6a146cae636cdb9c03589312683c7d140ec41614e85216c42837b7ea5ccb992d0f8ed2f5772a47d258031a4a9081ba155aac1017901820a6f1799cf6885f1cc6598eab3395d64b492b453e2448b9dd31e161987b798ac56163e214b97daed41528d6eb29a2cd975b7db0dd45ae7d63dde800e39bfa1fe553dc08a81ccda3509c127c0a2c7707647cc06053093843199a5cb966772c3cf924", + "050fe7e4f391175cddeda89ff43a1f92609f235e2d09344026e6c881ea2329e8b1f5bc7835755ef8150ff622c8e603b7301d88bb34541d8b9ce32c98506fe285984930915060b3d5c7181689f841f905d78811cea98b14b825823e69ae7d554ec846557a7026a294215c610751d48b112675bf0676f2529f5b7513efdcc8678f3c3430e8e4025de97f50ee8b1b8fc4acd9a87dd18196ace76ba886e785e77663e665dcc2441b4e401d58811dac6831f73457f9fa8d57b1f912a641886c20642030494fab412d2e66ce9e023201a77a90d13f186bffbe8340" + }, + { /* i=2280 cDividendBits=1372 cDivisorBits=301 */ + "0ffcc06cd6434b867cb9188595487362129a8ec8f3d1cc2350f58e68ec09a94888d7dafa3561adb96c0bce767db3624bfbe303dde3a5668f91a757a1266ddbc42882726425e3b36dbb9b1caf7c4b88ca4bfce20849d571331096fb4b937051f3929025b965ce2eb64dbafcfa3567715b121b8b44b5cc95c127439c8c778d851cdb9115ba26f3c5ac9edc5c397d549fa9f5c937e3d522cf658975efd69e4daf932a3f4a9e2370cee460f024dc", + "15461b6ec6909ef3234e52c03c34e5a7dba89344c38b23ab2c773467e5c04b603448a3bb4b77", + "c062546346084b648f4248ac5a1f473decacb093d8733dba69c60440c41908bf500330fa3ded06984796b54dad4398b285807212664a373e80cf225f697a25aaadb406d81e4cee24839768e0fe8bff8fd13777cbcb6166eaead5afd1e8469c64fcbd45c32e5b7290d0237d73c4d31cfb9a9cb3097553afccd44952d5ee5d0e3e38ba9f981d95", + "04e31f3264cbde8ed8de81c269debd2351907344eb5032b354f616aa75407e4abe8725b8bd99" + }, + { /* i=2281 cDividendBits=3514 cDivisorBits=3219 */ + "01e28bfeae47c07c4576704ffbcc0676e7bd555d18303914496936cb69e324bc82588afa13134e2ba1deca0e3e828a9938224a46d0f09142f8fd6b67cc54d735c557844a8e3fd3a2ef9398cf879d1f122f9dc6565495b0d16dd95930294e1acccd9f1032d15576ecb2ed3c7889fedc43398badaae906da39cb4c436e06519e137e2a5ce096be3fd5ced8d25f448ee1b76dbc320a04cbb0c626bafd21370548aee75764fa563df309fbcef670a45ec9140427cafb396d2c8fcdf23aba4b3685c5329a26022fdd62345ba4c4b34e76d90e4945f97becb08ef32e72b98ab38af6a2fa255ef988f4f1228e17875f5e6aacc775b041e379e9aa23ec0e03cc48a1055b54f7b40c64fc09dc8ad7402700c2959de95428ac60705540ca473849086a22fe73cd7c016b4777f8a8a25dd494790538e94b318c85e0ae77192b2b70834a84758a32e726930da9c43751be6aa52b15eb6eb157c253134866cd406fb9f3e930d1ac25cca9f9b884d37e56d63da58359ca6c15ef380da5e8527c9992f9c9c4d2c3f75fe039967ef43412419f7e5631fd46970a6d9614bce0aef1ee125ef90aef67d26110704b35d0cd786ee96e6e0d0b08519496a8e711bdcf", + "070edfc5fe451a44916f1fe3a78e1416eb2433d03a8ba6354e07f69951ba697996782a97c98ac6f98e0e617694476bbb5217babd99533a7acfa91a82de7c1c67333160db9c994269d65d347b3ef14f5606f5394e463bfdac7c5221b370f2c459465345d1dc7955ef2109d34f68757addd56ead38b47bd266d9b59d1f122b1de06c1512a9c154572bd57bf68e86fbf14ebe137362a6f11ac825aef97b8560ec1497ccadf6f8299470d650d618851bd2f99b6802c502e12c681c58f2498fa1c24c362006767226a5bd2d9b74871a435b13630972eca7ccdeb9ef35e5aee97a3a77f9d460a1565daa10cc2c8f096c1aed658f57b2b79cf27d0675c3ba559edce93dec668dcbc2af7f37fbc8c3a6d03da2adf359d10f91ba5782dcef66c3ac31b079bba87109dc6813118ae3217ef32efdd23affb5e897991a6cdbef298b0843ff2e40f0f48408373842ef404d50cecd44eab7bfd10f1614fb054646e2a77dd7b9b95a7d0504796593d68acdb902ddaabd721ccd4212f3f77605360eca817b347bd6de135418e5bb413bc6fbfa7c1849e8889fa545", + "445e27a8e06ce7b38ff1d4cc4cf15d367fb0f785fed142fa10d05a2c6957363dd26febb39d", + "052c70e46eea2828bed8c8f681a5c8460518039c1a02eaab69c760c266a98b9a088585a0cd57a456faa527d2ace8b8c6cb246f4f5d85bbd5f19b121f76c0638dc41d8355f05707afb144f6f4f7e0a95f7664cfba59d72f3a77e0c7e3eef144842bd5333ab099c7a95e9c25ad351fbcb010376a47d75538e588cbd9c7960457f0c58c075f6f01a59ec784631773f833a7f050ae1442cdf739709ec9995e09e6827edea94a61ca29a4c3aa4f5b8b70274ea5d07575ef908e6408cc95b1cf8a9667f449addd0a78800ca6961f018dff55e401e1f77bde1fa0946626ca3c2a5b4e4476c63c0e8c3847093bf220101e7cf0a949127944ce41f42d077e559f1bc76b28fef95a84017e3bd1d4c20296f8c49faa3ee3aca26c75b70ec6f853f3d8328a681eee40db655a3411ecee8069ae33a96579c4601c84da4e0933eea465c4dd59b14b79fa76279900038151d127d905d5f8f4ae87371409cf38743281bf48d0c54f9344c82b8566aa17fd2cc609369fd7b4efa489f76cb640f2724dfb241362409c87753849f1c0d8e0ed29db226a04b5db43237e" + }, + { /* i=2282 cDividendBits=2273 cDivisorBits=2225 */ + "01b4dd8a0ea6fd2551896705c86eb1afb38e57e955bea0c35c9899ee61a35c3c2f60def6ba7928aad1bb5e8fff78c420bfed4e1cd06d735deb2731570e8f52e1e2287682e549e2f30123d2eb52f03ae11e83b610ab11edda2c9e41dac7f968f813be5c8e8e59c347a2013f2a072e6ce4a9dfafead521d689dddc6f392c9c438c42ca09cc1e23508da9c8b98456888e04cb4be1101b0c95aac6b8ec68e98371cc0bf51446e6bd2b98ec79bb3e129f408e9399947894386b14280366b55e374142220f710d116f5d423118f7614e7a0db30179b625e866c1ea51dad3ac07476f64b57015ebc2468eb3b196885e13a8eea6525826859314da050cce95c41be07500274e1f039f613364c1a02c6f049c3a59df50a8e590b67c277b05576f34", + "778be4d5b2a08f044f1fd1595d1f25d2a29acdeade08c7be23c6f52759515f4f36aca788faf591f69be48bf3d32763f07228e37d7e15cfc4fc6ce8d475d23a9bb81f054a5801587ec12a7d2da0f5825fcee5e342f65b0dad58de754623b138904e4ea2132a89346e02c3fd24e3abd11ca2b512560b4156b0529a5267616fae6c33859a11a9ccae99733122f61895cec660617a4087a5253a3f111ff2bd7036089b7fa94c8289d727db91a946c1f2dddf9f43406cdfe0f4bd0c42bc2c81655dab62b488e8d5cad2e1f005ee28bf9ceb92a2fbbee175e54f73a23c26f0036414bf6761936543b37ce120a38dc6ea0f073d9b038bdb3be83f5b35392af713ec3595a9f41482f33aa007dda5e7a0b4579611d623190d2c3a", + "03a783e8bf2dfb", + "201ae7e25a671141eb8f372a6b55d647f3e921c1612e35adb5f9a0479e4bcf8d3faf35e271306e3ecd9f472ceefa313d9bf06dad67501182de3f5f51ac3bbb6fb388c4e377e28ea038bd89aa7e60d61bb80f94af09120052226531fc2a07e6cc807f05b34ad77d07647c05e1ed2aef4f1fa8cbdc5386634680d5789c1d753ba92317a45f503f2dc899b54d943b22f32dc329dcb6016348695c15d8c0dd6076ccce410c9b0396c8eaf8cf1bb94c8ffc3630ca1a25b9338f0c572b71564678c33768a580658868d864869585342e8cc58e465a4e3efbeff62becc02729c83873414041f3d93016054d31616983e280ffd27ae26e583ecccee2e291c641ea1bc3864b3946b2c2ca1ff43c3b18d0c87bef31ef139560e056" + }, + { /* i=2283 cDividendBits=2264 cDivisorBits=890 */ + "ed96e6476db0eedec0a47e9605f44fab67f2158a62376643bc58a69dd31129490059fc33ae2b868e663b31deab1b98484640cb815b1b6213b157fd28e6cd603f7994cc7f4a598637131a7a772a5afca76ae330d3ae8e6c77173cb03647be4a4ea94850347552e455346f526c11a452f18603f083afda3a91d1c15083af073dc99feff1d5c555c7f61e0ba94c4b00f292cd8ce6a5ced59a2e949c86b73ab220f2c03ba24ec88b985bfd97c5e589616df9f9bf6a1741a3637e2b8917a32382d2c60feb3a82d4e150b592e458b23948130a1941497e154f44f2c4c4798d6a6259fc999c1ed838bdf8005141f7fee3d7bfa6d2b5a6d62d70a1b046da49b590d9b197cad8d523188278f95f44d07d500d061d50146093ab089e454cfe97", + "035c188db6190f29c52bfede7f0a74d250d30886984c31904f1680f31eec75bb3749143ae7abf4287ed4971b33c1a841c32653d41f7d4f94c3b328bc284ad6e51835fc807a7b37a65ddc0288b366ee2858cce76eef4eb7fa5e84b83b1e47ca19cbe9552f6e98c60b09e7ad0b487efc64", + "46b766fa2ecc09c08f8635673135d6000d65375c715233291c2430c2d342b461c54a569c393bea97dc943213d4bdbfd54bcb40d4bb24bbcc1c1d403a61c857e4f9b5aad8a6345c0cf916dc0775ed9dac6815b601a9696b261126615810b1bccd9e96fc59018d981ef18b2d7fdff2d20f0b2e184d10542ee77f9d11fde0c851261eb40487ae72fd19d4533e1148553102323bfb06ce9e86fa362929bb4ad7737d67f7e5bf28c68cd3b11c3ecb", + "220aba5c6cac6dd327716a44a4c955db0e63a7ea268573ef00c550d71462a85917e32cb67b380fe77ff597b80214175de78218f822450f6b6754a8ce68f5f777dd6b79b5ac95909c6b24404db266199f07d56c796b4da33c31c432a88fa1e51e9fc3153982a108daa7a44c488aa34b" + }, + { /* i=2284 cDividendBits=3846 cDivisorBits=376 */ + "19343f33017096ef50a31bc1f6d7971b16c6538a6a1feadf2fbc8f35679431965f72d443e6259c2ebb62389c52ce0a982ce6c77d9c532b7f204afe108b4851386ea981c382cf946a69ade6c6985a4e543eb3749382e5fb1176ce6cdba0122943bc2cd510ba3fc8f1a69ecf7e14873a2bf3ba1d51e239c11f3e4c3a0a412baf67a36e91bcfaaa4d80fa4b0e9cf8a3908eea471cfced50edfec799d63aa9cfff1e31e4bd530e7e2cbe69c5d61a60495ae19a688367f3999e1bfeb70072eeec3ef023810b41c29de4ad9f85d02f5083b930859d1ebcd8cd46257f0d52b4a07a5bc10b579c8ccbc59c445baedee970db35f9c78b3ec2164e4a3f85a1e45c0614fec32734f37b6e20af153aa2e933c273d653fc1c30fd67407c5c8aa909718cab45665d202a4d5aa5615886ee5d5fd8a5a2c52313089de12b31f4baf9a94710c75e921249f762607011eaa977590abcad8b79c6ccd4b911b2e4585654bcc4282e470a9a1ff172fb2a3815a22bd056d11743664dfc39bbe394aad40ed5a2c93e056313dbc74ed410f150f1371bd7224cdf9b04d11dcae4715bc597e8cf439fcd34729475d7013e82fd78948f9f0270042d8cb58127d9fa16724c47c51be70b33f193ce5be9a26958fbb627f09c3719970e9eda21cad0bcd966760ff3f71125ac38dfdd38", + "3eb412e0386dfaa8984d6f69deb36dbaa025fd822aebe007d31eeb56ac47a9d0c575fda7e332fbab1bde17020eb199", + "66e6ab09e6f45a2be01be920ab883eaac68bc427a55caa619834486c3385ab5724aa86264a793bfdc4cbe463d201d392377c33873261e6c4dde182ae98831e0009aeabe09e6e3705e296055b72ae2d669bf4a4e5a930052df9991c52e532b77d788da79a6b8d98d65d0040abf183b7487e17547ac8e99ce927d7ee8334a8db14398bdc4e037954fe8437db2240110293ebdb586f03b86def19b10281f43fc1ec68e8161b7fcba9261a7d806a7a82df634950212785b714416f1ca35e9d2114ee4c915b7c282be41e8f6e381805a919b6ade04d94bb082793b939c3167b3524033f23059212fd5bcde7ce7ecc5d13fc37fba0b1064a3d7a36d1b8f23f26b670ad8627a9fb8765911543030577499285e24d112de4f0582612384f99f6578e5680f7514b33237883414d6e24e068d272d9742635dd82ec459714214adbf7f38c4e654f354296b7a4289c3aacafb824665cf2ce6a5d9239b7a0f60a4b7e5a9fba6cb45f44c33e7e708e60b128b0bb625be67bd8177715560494e1bf144f6f12a681a8511e8a2d131edc81fbf2c803f170fba1deb5c60e3ba6a9142e278168c2886afba9ea0ff764612089e3d61c457a5dcfd25b", + "17128c06634e95d07441f3a7ad5426639de590ac3c515858b750f615d50cd77ce2399341a51aa91405737e404039d5" + }, + { /* i=2285 cDividendBits=1976 cDivisorBits=1198 */ + "53d3ec40d6f66f5d4c44e141d9331a3ab761711a092d93ad00116cbc63fcba956d9e38b5c419d7c6323545cbcdd20700f1ba335f59fc367a8afe1826a0040ffbcfa20d2d975522176db8d2d0380335ab1ecbdf49904fa1e3abebf3269b539593d0bcb896a836cd4ec07530e20f5c181186ed5a1bcfabacefc86b9631ff3ada266cd429f8de6d02dfbde9535c2769990125972b5d25a14a590d22b3da2db8920bdb1599c265b8d971140b14461d86c8677fae5d96c20a547858b3958597f227b15ed79f4e901cd3f788628617c4219f633db7cac13e624c6356e65f820cedaf8e3fcb64c1547e46d5801b02ea592d9dd9f687528adfa2a6", + "1206a9a2b61269bfb383b2db3cc8bba534283f6c90eee3ea32a8affaa5d9ccb137545485c9384dcd146d530d2266c0e6b84fae11d05c05c401cd96082edec6c39c4ae85059cb03cff20a008675384a5b117d536628c494ac31ff8b39941ffa805f3f2c31dba2520088915d9b3247b3c935840edfb50ab3030bc606a8c5fd050e7e4392fc3ecfd0059a5d9228cd4077a553ffa9fdfc58", + "04a67f2230f30b097405cb6f4fc074405cc9966ae41165b90e6c723a586221d750056a941343018508f047458e0c379d9e851052aec0eb02f660aef646e5fd5a6cf24307f28a13a8a208ea13e86b18364b953c683ab637601c316a071732a587dc3b", + "0a54acc8bb3dcf65aae4f86194529f2e262f7ddb8623946f82af01eb9d0e0f25e4901c3286a8f9986ccec7e104d054f1b5e166d663e502e41c1b7917c65798e6244f0717506e93fde6b78e1e76e0bacd0d8e4928dd70cffc3acb098405596e187d47900b3ba75bb2ad69b1960dfa3ff02adb395665f056129476b3c891157109a9f24ac7105de59270d72503b421c299eb8b4e12da5e" + }, + { /* i=2286 cDividendBits=1479 cDivisorBits=1261 */ + "669901eb79c27002c15643aebfbe5a51a3812f884640a524e4cc33882eb0ca86316a01b16f654c47b601b53cd0a8c5066e989ddeb75600307812edb684eee8a152fd934345c298bf8c13e8a3b97bc56be7ed60b95c78d1b7aceaf2bf8a13165ec0114f40a5d5a717196a95bdb4ddcddb643f4a33f2e323a1014cc5a9f8fd4f40ebc2cccac37b236e392524de43615e25ea1bbb72741426f4b525e701f49a58e0a0076e84d4f37e5f7ef824bd338259153b450a8431bf6f7446", + "1a42437adc48ee90811204fe1f54be1fe9ba0db2f7086f2584b74cdb6735758f24ef488be52c4c56f79ed60775999134fa85f09f06d11c1a5a622a9d81b2f696f1ab32f0e22e0e9a6d35f92d7f1918fd384d0ada503fabeaae700a292d2ab5e5d36e98f2c3f5104ad4831f281ae566f0cf8a8a31548aacf3614c5b2cebae7f01f80416c7e6c167b7224612ca3b1f5ef8f92a2b6b42d94bd5010395eeaf4a", + "03e83c1b41c8314fe41ec1ea766adc5a51a110e803e981a19c43b52f", + "02a4c6d9a3f535e0a0b3b702ba83ce77fcd72db55a8bce5bc9924de5175e3650d2a5768bc25156ec1ff2afc0ee298d4989500bad5259aa55e0af6096127e804271c1e34ef1b574d9c1a347d7d741592a34e51d028b43ddb35b235c63fef901ebd31f8213f5e7f3b6580ce97b48943a4ec66711c1f85423f266b9707c3ac8b48a46864ecc4d491428a39d65123c7684fb38fe5a045831521f93b47e4ff3b0" + }, + { /* i=2287 cDividendBits=2312 cDivisorBits=1100 */ + "e77167ab982ffb7501c6f151ebffed68044dce1c72f6b7ec53a6be16e0de02873d541dda79ad3697277d101af448e5450162c84a9215430b80a852c87ad4b83b3a198b62c9c643f07e17b0ec104e4ad441e814731b99eaa6cf7aae4f70f4ebf43f9b61f83d6f78a33cef1dc4c5fd5b01e641f547e7e24e6d693c7e5c75f3a87d933404154cd1b3b42c227ce6d9499a0423af6208fd28b77521cc381678fad74e81620e2c4d4259c0a334bf213812a7b044352df4404a4db34356146157330eb6e2c3c4dc075444c6c3d81f53eecd9d33a49a69e8ca63d4f7a545a9466b15c7cd7a7edf24b47b567655c128419d0d8d5a3a0fad915ff6da20d65a88f2d0d7c25750300b9c9b473b239c7d39951b539921fdb52dd54aff233bacb0ac1b62855196dc", + "0d5efc3339a585a482267012c502f2f871a0e36f8702f6d63a32cf8b7c31f0e94085912ed35e12c84937edf631abc4d1ce30ccc7845e6fd28fb571996537a40be8cc994d9625b12cac073ca5dabb56b85f0281eb3d4b6484e31f7c9b04e2a51e3bda0f6e0fbdb4c46d1f333386a95db46a65c2fdf795548d888f9af91e739a1729420f00a9a6bc355608", + "114f2ce7f7075f180e742c95e43abfa8fc3ab34f7c46bef7bebdacbe5ecb33f0c649706bbdb829ec277f787479cc6b2359ed58de3d2ab8c08a19df08f4c20d5aeb09e15d5c5acfbfb9a364f61914d0a5a8c9287ba24ccdb0922db4ffc1579fb3fb405b36b742d74a53b04dfadd9e50749b94ba1714048841b4e34f47541ced4c4d016b4ba783d3b6fb801b7f1831ff195a21fb34dc33f93c", + "077fcbe9cd5e00d572716664d6f563805efd5d56b5d7945123b1355379f5f2f1fc610dd539d584f1d77acc42e63cd0fe4f8d3f415d6cb401d67fd449ede28af63ee42d598a8958d18b6bb71b0ab84b813b21b3ee3d02daca95ace9cd9ddabbf124d01a260e204f7c314ca96ccc6cf9fa4e5fe102abdae5d3490c08a1236574f56e5f0454850f848ba4fc" + }, + { /* i=2288 cDividendBits=53 cDivisorBits=18 */ + "0cb0590f0f6bad", + "cdae", + "0fcb11870d", + "37d7" + }, + { /* i=2289 cDividendBits=1947 cDivisorBits=271 */ + "05d93a3853c68786946dd9701c47c39012f8920ae869bed1fce0125484e2921c91048b880ab71194afaca34fa84001d2ff8712b601d4c9c1f4c75a0f44cf08786beb6ea2fdd6bee96892ed0de8dbd714b9e072b88efbb4a22729b580afee27c009fce70bd43293637cb059aaf93b981970baec8e2805cd0f26f6dc526a73988dc2d41e5ed2cb7ba271fe21a73b59ba078c2f4aa1db5f3494141286ba0db408e43c1210bb6e747045f94021d8050afd6ca193789c15614098e51a09ccb7ff57772984c2bf91936f0ad98a32ed1ecae26cf644e8e11fba757e2448b2daaf7c573f7e71a736946788c066f2ad3e40a0641bab0826a1", + "13a196d61db06848d779ed9121494b474bd736fdc5535f746d7d024cd4d87c500fae", + "4c448929fe1cb91f07de3608a0fa517a02870cb810cbd3d45e50bf7bb9453e30e99eb3b8692c808f4fb0fe9b690dc37ed7199fd718e4f23fcee1174cf35151ccfda873ca285c45d16eb659ca752eda606db769e18b6a166403f8c6d07c8022b90b9cf5a13ed7512b461318722f9a2da47cf4d0b3def12464cb905002382d2e58c8e7e6a1e6fa51085bae479e5e71d2ae501fce65c7d9817a7fb74bcada172db19ed18b706ea124a6f0507b5c7d0441c3ceced6c47e437feb8b2d1c28259c2132be6f597a9ed2cbf38d98b4892546d7a18c82", + "021c8a25a78800f5e40d727d602b388d951598a74f93ca07491518620f17c35f0845" + }, + { /* i=2290 cDividendBits=2791 cDivisorBits=22 */ + "6a4dafc554e923bb097309363ef0a533a43a0a00a6b9925ea3477ba504203f85e90d7ef42b88e4f9e043188ceace91036f858bb7da65a105f52bec50a992cbb6432e75303f2a7528546d41e00e48bc2ece3ad7be8656924d1ca58b7d04752c8a900493906489c652473164c8d545c5297153aaf1700894e42c65bde699a17dcf3c205b1bc878000af9d27826b0a3f73027477400e4385d1c74b5948f8c189573267c42b081f0368fa3e7b0ea01c9c122b26d15ffd336b86442dad2cb6a007d772ee01ce068c57a45892a6e9fea43f810b6bb209f91c83915621e4823a3aeec013ddc3e60e60481d003cea75557ced8af79c4c1a666a8704b89431155ce3fc2a90c37a2b44351af11b7b77187f4446d5bde2b534b663c985ef45ad2a9ef3a45d2b609df0a1623fc4a23f7a92447bb372c45f8e5aa1c1792a706f467c9ff10dae8874e7a2d74ee46e224c31391dc3160b0cd023e92c63362340abc39260e", + "296f1b", + "0290cbc2800bb88627ffbae84396b6215116311b48b0e216fee2e22fb801ed4d9758f34b6f27d9dc7887caf4ef338f7f1a2a4784ad77d07071c17d10bca8a0fa8d66aef69b43a703c845dfc4910435ca663ba9c6ca74120dee5035e4e788e348275fc0f87889c9c9a5da9ccc6e3de2b72634b9ebd1aa29c09151a8a363b619174197501b91fb679fd2b8cec1a1e0f5b49ba6f78394327be76a715288432f69c53b2be0bf24fe5dc83df938c7dcc7ae22c95a3cb60f7eb5fa85e326c7f134031ce904efbdd95463afc06b614573c630da694500a8f50485bf27eb13a14ed752b192e389f0d3d90cd053430513226954953d78f8a2de078e05bbc316f253233ca660d8867a20037b9cbfc7fce5aceda9757d3500dc99f4dbb6d140944e596b59436a8de7ac75d99d58214c6410d6f1fda0576b20a3acf2843ccc4ab1c6bbcc09db411286c04a1c3367c618805fadcc72e2bda18a9ec9b50a1122a7f8", + "04e6e6" + }, + { /* i=2291 cDividendBits=1307 cDivisorBits=505 */ + "0407c92c187b2ac3faeeabde10c6bfe7a219ea42194b3d469c3fa35c1dd46f8437c995091ab7688f4233dafb18e4a2da3e83f661c087681e7c6e6e6189ada9a17f90cc92800305a08c5b035742c376877b34df7fa27e002c770aa2755defd61b8c2c92a99ca7c759d2483037c1296f00824e282370b7473594073e963ab374821e7fb466a3f35105b0944d4e358aa6c88e97a4d3dd0827f65e27b4752db3222a67777016", + "4857952647bf821b4a4350c4a514b1c0ceefb48386e838cfb07a8c31fdd40e6adb35e4a5a0b2d976d4131777ac96411af45d4a7ae4ebf4a0a15f0151ab6eb3", + "0e4338f37e9b354ae1c3f08a0051ce9caf49b886f4cb9ca5687f96b4db998f37f83e6011e51ce6c450bfffc420ef1050270f5d2fec03c1d643ec78c1b2d8089f062da63acde1d2006cbf5bf12d84e93e122935dd199093e9c0eb368db83a21c333e4c03b7a", + "1547e4ac18bf76f7ae00cee8d3fcecb25316e7a9857fe0d566051f3cef71ee96c96aa0777dc4c23dd4a24cb894b0c094d350edf3033ae854a037e387016dc8" + }, + { /* i=2292 cDividendBits=2281 cDivisorBits=1520 */ + "012fd8477e099f349dfc1257f8686c0071265783c3ec3230ea38e05841331687425fd0fa7660f3eccaaa9e4f22b4b58f047ac6945fcac6bab838f7c6df6a642bf89a29747bf06e463738871f7816ca2a3dd4f79b2bc9354fc59d54a9b0ac8634dcd156acede2146bdaa467da10bf912e0faa14c01d72e7991d6034e2a20994cc2358fa1568f8d82d8374744a5b67d61c2e67398a9da6fb741d7892d5dbff46a23e6aea4662390fca399666ed840324c1869952deda01804a62db6dda0bf6be20c173e1f270114ace145f0b7846f4470b81a31429486b893ebbd5d06844b8e261db67bcdcd545dc389ab7196922cff51fd76ee4bcf5eaceba0842a84278f5c77c6aa485370a32b6b5ac02997b22b4836ada8cca5d62e9f0d86fd05227e119", + "7c655ba5a655cddec4903ecdb8132753a542886ccee9ff71b3403abc6b8bf5d69aad2b9c7849abcb49cf717b0784d627e5649ddaa5cb31e823a04de3887a7e732d78e1e93b587f2b4bf74808e19ec470c6e93ed7225c26f547d447904c3bfbae3d52d61a60f0fde3f63a5eeee5c6bf3fc30b87c4398544a4b2307174a2700430d203fb4ae1f63e532f7f3bfc31b739ccbad3280a08aeced514e08d78bedbf5f1f7f6e3f4a35d41401f52c07c30c82540b3d77484761165a6d8a41ecbcb84", + "02714bc7b92c4518425225f890db0428ed2b01c7326ce768815001fc8b3570966db0f9d13cba66d170249c9d5b75ce6c0fb7e7c37cfc4347f25bbf64de396df9c372affd9c5e0b71d99310393df085c55131912342add1e9e4e30606b6e4efdc", + "110af073b2697dcf58e5ee2abd237ba8b275e8c0a42f5960664124a6a281d6c003081579ecab4af80b78e69d497f00d56cf4125df16f863d770c6818b24ed8854b76e2c6c7da2b326b3bc18e7485a3c834d1a4f53f2dad1fa833834276db6493eca00179280b379ba98fd0b29cd47f6c8ed915d08cfef424c393c49f1b395f89df41ccf25cd2be0fd61b669f9a15724720f5e42c609fd4ca196cd6c6dcdb173e420e086e0d67c83d96f1ab051bc3ea623143efc1cbc5ab8cdcbc7e74bfa9" + }, + { /* i=2293 cDividendBits=3815 cDivisorBits=3207 */ + "3dd272cbb454617ae5b2e0947798547ce381c6a2214c28807169ea74c0e54bf366cd338fd27529dd054af05d156ab0bbc2bd16244ab3dc2bf977f0a92c7f23f2adaf7cfcf129781d70a7bd971d66b436a7a9c256676a9d4c1cbefefa1dd2c7dc96ba038b7de0186e7284f8c6fc111e8964a200442ac41950cade3ae4db16ee6148407e66fff2bb9467a56c8fd19d983807cff6742ed7b55e8e82a382812ec7877e0aea07e820ae5ecae5d60e573d72145554856765fa4b2abbbeeb275202407cb1f69eaccee682adb4727b6870a4a8a8db7494e53a890243b8ec67cb2f4d2a53d8be3e27325225391df6777a3811bd77d590062b1668b8ac26412a771c9b2b15b14e04d5159f1c4bd7e78436bc8bd9834995f51550265139ca57ee304cba2e94aca7b9895a77b4abeadbc8cc5987a7f28d97975d906d69edbf205349b9943fc71a6e6d96480b0348a663bf74a988ff127fb1510ac4d2f33c154d12819878d7b1cdc033758cc096cd1f3ce4f08aa89446a76a44b40ed27dd9bb098e7e44ef14fedc5c97a6ddaa7f98a48b396e4963e2937a3d0a00e42102551d2b99c6d1248ce16654cdf1d4b89ddb3c8821b27262375e22aa96c6c9ddc97420ac516d6ce71208377e09e577e664cfb2a23ed5e2f0729f60ef4eb2a2e80b18fb3aab0fa1", + "705f91a0dec0b6253a4155a8c3ba03636ee971fbc281bc2cf4ee50bcd6348f5a76f70c31b0b45f2e878a2b69a799da534266d3e048b713ee8f2c62ee3b6555e2f1e11a2cb6723596aff8adaf51d9ac280ecfb752b5152747254babf81681513dbe5df91f3636ce10c61af60214e62d711b6ee4b924f937e2838aad06eeb289e26700bf26ef7dd2926ab4f3aefef209fb150d88585a71abbe0290c2c56785c161e0311bdc9fc02c0e6985e0c1f811e91c75646f9c130dbdaf4bac25f708ad3c551dcb589c066f3c54ac08966e5b43a659b416257c7f7d7c4d1a84b2c7c1850d9f369e3bda90b704113953073e69fb0551cfef539acaefd365279997c470e333d827c1aa1c054f3eb4096c279ddaae60519e4c09a8bb493b071b9ba5385c0a541ec2aedf34322634ef82e561753e390352dd0eef4be8978921039fa6be917d04bfc279cba277ff4133a7a0a3c02da0ba6a409a794ee0b9d9398e8d277a5cbb4229e3a70667fb4b4c5de255a5b4f4ea259313bfad4ad582a4cca3098dc16258cf00b06165783ced56e488f8957b776fcd7eff", + "8cd690206dbdfeb46d1129e5e22be57368d0318f7444f70aa35208b0bc8fbd4a950d6e29bcf4c6a9cf2e84896b53dd8f8d2372108051252936f140c0bb5d32f938d98608366f1016b1938556", + "11548be9015a4b2ebc37b08395258bd8213e4d33ca51316472d50d04a52511f4f1f189bf6444fccf3c1e6ab137bf44fd6de6ce9d7258744e57c8fe355b3a0482fb1ef44f6347a0d69edef6424b8e27a4ab42a57dc98eabfa44bb8010ef1230925cf85082bf350f8d541dbd567b3535240726ecb98ec64b0f487d63a3580f82a6b1d222648d0742dcffa6d423305ea1a415bfea266ce430a9ecdc5b61f649be6c1c69dbcccb080004f6edb60ee127ed90854f3d5e8045cdbc9c5d8a1c78d034695b38fd6cfd29f133b38871437f0661b57226c85331132952b031fab55c9da08d5160d63f50b76d8e12cbde8de772c634d3c4bdb2add98add120d16488f5b7b440ffc0b3b4f6b8c93edf5dbc72fb166befde8461a9959834fecae8a6244cbe4c7eefd79ff40daa0761fa2320d1ff29ea3fda9aae24a1f14d2568a779c783ef4d73191958f1cd0baa81b8ea570f7ec0b298d1be3efd83fdff039be4d00118b1130bea4ba28c835797857be48b52433a9821d33c111842bbe866a1a7549e8fab11de370eb454834e15329f4a2700dad3aeaf7" + }, + { /* i=2294 cDividendBits=208 cDivisorBits=98 */ + "0a7348c3c84ec4d024656cd68372115a51276a1b3a7b1c21d4eb", + "a89d1ae237158388c226ae8f", + "0fddc94445c5278de5e41c112f33", + "0b8c3cbe59fe689218e1cd6e" + }, + { /* i=2295 cDividendBits=781 cDivisorBits=551 */ + "13cbdd0b03393d0991fc29f9f6d65ebe6c36b9152efe7f357b53edaff73ce17c476b9b15071e1f97dae4bc4c42911b70c287514fb70fcbc3d3b67136dbe97060d6be0c4ad0dc8309367971f030583192f3fe2586daa8abc53293c7a40a299465bf27", + "39354c431141bbb4e9a3962a2e71220e54001a2c083fd7466ca22c04705516e976fefedb193019d13ab05bb81f7b88cc4ac2b6e2e438358447e7120c428f9e457d73942d1e", + "5896190dbb3af6acce520acc98ebb6b4bbfcf4ca95fe1b5980e6f53659", + "475118f0e16006670b564791b79df78eb7f63b8936b4c3b5583a8346f8c0587a6c1e31d54bc418a69ab1ee818c825f87f7c472948c376202a389c07a6c1eb0d302a7bbb9" + }, + { /* i=2296 cDividendBits=3301 cDivisorBits=1208 */ + "0cd8bcfc23888506b8cbdf54913ae1ec700ab7768646059b8ff230c1b62c02fd9f2dc6030afed0b83c44c0888fd2bbce2d54ca51c0fe0d8a0a83aeb35db518bde8b6274d24fab835732a31c66c2ed67678bdefd4bc610d5f49d26a6f6eb60ff7c9ecee235a76b6092fca087183326ae92d2b374e77c654898add21f7ea0b9ee0b9fd7e5be9c599b23901f4a074e0a9393b94260a62fe14798ea164d17638ed6ccf404743e40bfe9688ae16b9fc2a2052184d1969b224d3342c929e0960dcd30e5694f45270e5e6c78839af780a984a313e30fe4256d67835782295a5709bfa1f059bf6354920ac56b1e645992163e414008a1b339e209c3dbf19b43e8c959bc18ed24b0fcd579c9fd9973a14476396aada8b9b4e766edb3f3bc70a05dd59aa3cfb2c33c3e6ed36d72d5bb23c5cde612b5793a24abc25b8603bc359a82ee7bed0d9b1a5a983fc59a4e711b67504fb86b90891c108223c1e2c523a2d03e4f0aa06a7c63d5411c432146b9e74a2261923a14a1e83c74b2519e2fc96822b80f9547417188bb67af55c8e6c643fa569bc8317663483288f84725ca47e0f835d", + "4642c6358d7e8d7e20770e6316952cd9814b10b3cdb15695c603b847a1d8c390ff3298b59995e3c8199ca9e589d8448556fc844a04186106e8a928a0c3e3b72edfaee43d2bde08627bc5c29de4986f0de2cb31910142b23422d69e7f1bb13ae7a026ad6ed1d7df0f39a94fc04d453fa99796d5cd325e3aa1f2397ff3ec520cde9cf86ff9ae37f2d93777bf45ca2f1f77eeb42ec574c91b", + "2ecebc245ef87f020b37c5fa1f0961a31938cbdffc123fc228a4c73371b15b9f5864f3fb5f4b62314acb02e4314d1e1a2729efd63a495b42a02e8c9e5ffaf460d090df82098c9b11e36db7db26ffe0fa29420701c490d4668db2659f9322b35e157d230ada4df9f9120a91ddc20798a1f11e7fc49b7d879795817bfe43eaf8d51a02266a676849d2a1e10cee0649cb642a4d3030bd15e02a869ad62fafe484dcab906861fa47aed5cd684a971a2db2adabd76b208ae9c8866a406d37ca28c000f9ca2750c57128e1f32533d6331184543ea7cddd2bd6b97d5131f431730d7b12c8ad25d1f6739399c8b1bfb82c333d9aa532121fcde68d224397c6e9b7323e281e333daf4d40", + "35a0ed4f258ef876cd8e760c4feed35bd74d296570a2f177f46bc0ae6cf46fd6da2d96f3fd739049e4aaa19874ff38b8500fa9d8dcac650b11f3987b152c4235e51cf07fc2967f3b5faf80978e7c22f699cf9c6e91e6cdc75d262330b533630ed5226f7111d95fe5084bfd1a7791386e1966946e0d369e0d124d45cfd4fbebef3f02192e7deb54e3a9c1d7eac2f4d36f80366d17eb1d9d" + }, + { /* i=2297 cDividendBits=1859 cDivisorBits=662 */ + "06a99d2ae911707bcf76df16bd3ddffaea03c1cda860fbf3773e0e467b938e91217830a8a30f9b8f6600eac12099cd833eb27bd4ed6abcba254a1167e3dcf4cb6bef668a9413283c4193d3d2a8557ad18bba6766590c92cda521ebbb36ebfa30a194bddd7b27061a633297edaec53c992ced4a05719472180349e3b5f8d8de0af2a26b4c896a174fb453e94f3cafb09c1ef70480d3191d66140c9fde510292ea44b9639a600fca76ca202e7487ba1a82f1ea63fe4f91f5fc4a76b56c21f874976ebcc412ca24d029d29c44fde36c950339905d29ca8475916f3a518f78ae3d5f52a59dc8e2a8d20b2a", + "2658b9bf722383c054fc30c76eeea0ae657702107436e9d7360760e63f29ff7a31255f5c54454e4da5b9a24e2b4f8014084567558146ecaf782e264a5aebf0ecb9b60f0c737e708b2c06ae4b5e871d98804772", + "2c7a9945d0dec32d28596155b67df448b4bc309ce1167eba600aca1909527217b31aa83494a3124e60ed31cb40291657ffcca66bc204b92a5ef4c404c6f3bbf43861fd9c58033272516886c6e996af0b57f22ba66927be75831d14c9b56f742e657628e355b6b6874a8d047691aeffa503f166c0c324efbe7d75f88e81628bd5db1f37c5eadd1236bac816fdd7f44001abf693e27621", + "02fd97c4f42b67bec894eec7cc3c56b86cdc2192f5cd3ac2ee11166903df3c454c5a68876138b851769558a2eb050a7bd7abfffd2a807ec284c172351b9cdf916f235daa7c73de7b133ec11304a1f556b64978" + }, + { /* i=2298 cDividendBits=1958 cDivisorBits=735 */ + "0ab3809118b588170dba0f8fac74ab0c1f83471134fbf2c52b67ed9b8244e7d36e2fdb0b535ddc5a18635fb5644dfc9a523a2b5d424c7dcc34187e512cf161a3d51fe0eb9df4efa3a7830a756d2fe88076fe433c2215acc7a8415fbea1996e7552f1375776b91090b849db722f44c4c69db2fb24e194c70c4c0b8a176817ab1f906e152efc9e5442ba32782169f44335ba15590572462df8e321b36e60b221cbcc4fc473e9be97865cb12ec3287f4d84e8b15f6d0b358cbd637e028811caf4a05ab07eca0635cd3a27e8c63e480f30971508b8fb62b0dcb62511c396bcdf93d13e90f2be48c59ba89c1fe051250572b5d4b0879cfb", + "3d88935fbca8497c50ac91d339cc92ca83a0895d2ca71866442a4d2af9c472b1b68edd4cd3cd8f3ae5cc00f885e396c2e75c8a8fe894a30cbb6832937c44db17c811c54e7e67aec7eca66809f0a4076d3e6c5323a425f1f68bd987c3", + "2c853f938cd72afa93649035aea63aaacc951ce9755a81157432dba7d4ec52ee37d7bfdf79843259113111c19890b0145f715e895ed7ddcb14c5eff32dc688fa7206d993ede7c9c1fdbb0c2c2a6c75f651334b061ce37a72ff6ac828f118f7e807c9f408962ab16b2a9182e9a8e5eaeb634e522daf30d83df6d8e0939e0d668554fd5a3bfbf3fc2486ffe2d2279e843ce88709cefc80c9dc90", + "26f806c5a74b50d8a672e947214908e0739a4fb3e107621dc7d56813c69e8cb401d0300f918555ed62483cbc987d2d1cec3fcdd5ebbb5775ec37234dc111456bf08e2dfd829acc535d22b2ad3e6f0ceb1b762011836e9b55fd64ab4b" + }, + { /* i=2299 cDividendBits=2209 cDivisorBits=876 */ + "01c4c124bbb4d2d7845ecb05dfa9b360817e9db07b6cea800d27108dfc68683407736cda9d134aa1c8836496c0944954ce14904fb38cf25284205ab5d56fa3fcf1715712563617a267d4114a5ec0aac3d88c01fb5e507c77e52e6613403cac3909be4fe6c12ccfea226bb895c3ed30a127c276a0eb1a10ccd4a589a45e9c2f5f95177bf488fa1cef2fa2e517e036855ae449d011fd45d3a984c13896791ef7a4d860da08ce53412fda3b1940d9d4e9a040bdc6b49ce222cfbfaf456208be9a1deb14df2771d514b6d0769ac276fb82eec2c0f58de55f8bc68de44214c7461ab22b88318d2470513887d4fd9838e6d06145fbb695b8c01eed84b64d59b5fe5b3c6b73108a360b2148b327de4b0434d69193ad6efa79", + "036fd88f8043ab241615b3c1da0e00038e531853ac50664c6fc133d1bf01ba9b59a3cdc8f5cb80a648f914dda7d8baf40a5a0beb4c836c2886506893871de174bab6fdde517492372b6bd9c11c391442bfe0eb27676359a440fbd4645c9b707a01a2f0ce436522b1122933bbf1fe", + "83bbc38ea79d3205c59577434f56f30667860d96e7d04fc0282a42b5f709da0646cf2d2e5887fbea5d9bcfc12a69821f07d8769daf169cdb5d33f45af0e25536863124ce2e13dece1b07abfafef5539e775cb4c0f249b447b57173c34b5d27becd7fdc840c65824c326c13d68cd11af18191ef1ae3cae81fb91ad103676db1788d0bccf0cd15593d3a6c7e42fdff2491fe8a1c77e0a2e792fd736f12f239b790ada416b36a1e79", + "025ff2367882ea12e0ebfabff320f5eb09d4df1a0935ae25f3545fe10e74f60ed9872813bc229785715da8c1102c49de47d164f6e8119ff060f914c8edc965e55a03ca2ff560fec4fd719abb4eddcfe128f7e0e83e378daeb82a5609a8978b3c8d5b3b353bbf78f4ce2f6611d56b" + }, + { /* i=2300 cDividendBits=2120 cDivisorBits=1352 */ + "c3b2d906a67cbe71787835d7e86e63bca3ee241c283ed708457d0bdfae9d4be8c69f3a52a4d705590c9ca1b30bdf25e16291fe1f2578c8347df5549e94679b4316b0f69cec259a91596208af1e56a6ed22ef75c3162d697ade620e90f285df017c8195610a89d10dd2d4158e040c3079f0f4d578cbcdc2ae90cd9df03d79981a1688bcb68c3856da6a1bffc0d21c8ddf26b3e3e904c5d01da47c1183b72fd683a012d950cfa453d7567a15c47c0c97c782835fdcddfe567b9f02f9ed1e7d0143fdce9158df3ef2980141d81ce11401765eca1e6efc0989efdda540139503ebd1b31f3a7d737de83e5d88343862a3eec3858a6debe957aa23339ffe4ddd17b472a8286654cdc56d55ad", + "ffaa3e05eaaa6a8c4b040ea6ca1e56948c7bd3aa1eba5b1955f1a7e9d9ded55b919ea0a1d678960b0cfb602fbc7d3d4f27d5772cd966fc923fbadaa822445bee1e3f0c91ff31b28d9fbea66a787ababbb90fa6aa0305b1e144d0751f79591b477c4396fc3ed180c4f9b21c32a4d9f94186a943d6b1918d162a99c38080f347c9268aafbc967ba04e6fe8a666046b1d5c09f3fe688c488feb558dd841e3cff8b4e0ec07b0758b930f53", + "c3f47daf217b3280c80667915bbf86a3495ae10ebff128e708a0c9778a25a0b2b576b9ab44cc19e046552b3257fde598824870ce20d9ff1cc5d0f515787ed66fe3fa4206c2e3b8f6a31a85c1614d05578b88bc030537ee84301d593932d57070", + "1f2001ba23b5f1c89cad1597f60f508e84919ad0b52cc7107962413ef0e3f98e1a945d7d3afa7b2a4314f15728d4ae9d2a53f1baff96d0dc69ab9b5dd0e63925b04dbf1e0ff8711cdfe199f9fdd0129cac31676fc214b1901cb6ecd8bb30e6db3cff1741486602b0791f4a8bdb65a3ac1177f8cb029abb3859fae4d6ac96dc958ce7676f171abd70448679ad30b107f2291b9ec0ef1e82fac24e53499e03116b1a404c957b6853515d" + }, + { /* i=2301 cDividendBits=1017 cDivisorBits=792 */ + "01c4f4f0ee552cf248a7c55d4da7fa482db5216b4278a65930ef6967108acff3c22cb349f7ed10bdcf8b4bf1a0908812e3ab3e2f15f2b70d6270e054250f293068b203ad8a6f7e427cd2e84aba0970554c2d906184453c8095f503bc15e570434a35db32ccb90e3cf6ba067438f0dcd838b10da6941a98c90c50e4e019b45ab0", + "d963d6fa77829b8b852a92965d19f64773e23d7392dda01d67949dd6398153d677b212da78a522633ac45b898230d23ef63bf1f054a611257153e6748ad260712c1d65aa48b9e6460ea89b735702f3151263e5caa4e071ae67ee53536b5f838cb7433e", + "021567b6ba81c64395e52558047ab17f6812737869cbfc5a809f2d6de6", + "7d183daa1aa690233217118ea8042cdcc15898a08c5fcc42d19bbfc0eab03c8bbf006520e3bd7083332ac6dba8e5ba9de721f7faf23720e047ce750e44be74397993942c11b369d11e31d74fac716d607c1313a84a106201ea28cfbf5b17cb51868afc" + }, + { /* i=2302 cDividendBits=1457 cDivisorBits=987 */ + "014deb70b94c17724eddb4424100e42e4b38d43325539ec0d66004948b6b6f88698f16ae9649c20dc02d919ea6f26bdcdf1b52bc3b3dc7f50d73ed89b885603430a0be26160c993bfb427e7223d6497a1cacc432ff5b3c645123b5d19068f351a5f292178df659df0ecfbff3c005c6cfeb8e0bcf6ee15dee0f5862522cc2b24c4e02dab5be999b6950785817a6dc5dff66c62d2263b3bd9e81e2f46a176da75c345fdf21256bf04e6818296682eab0d04947fe4ee2636b", + "058dcfd8c8bf7b70069e953dce2c0a137f47cf52d5533caef87b0468837a6c9061c2f9a99179bae38306df276725f6dfb5719cd75dc758e5dfa2f2c5406345b4c66ecce34b78517c5377be12d5f65ac8c9e87a0400cac1af43f91be694025d168e56e4fb177c70a489643c2226d2e8be2bed16fffff91cf419b032a7", + "3c1f75b55019a19df7089cb20336037af72b65800c3734c901c2376cdd13c8652dfd5e50ed4e64b53cd3d0a983d0ae6eb2b2d81e0260752870d23a", + "0276365acb34dd7186a5b9d3204dc9d84cc732e3760bd758808ab21741a162eb69f990f0b5832818a85cd2b186ae0ded27e5a31976db635f8f624b9558b5132afa397a70eeb83408b4b71b26a0875c25da3d4124990dfc50327640808f35a6ac962311b46ec4b966e6025412cd338dc97f4d51c9e175f04ab259eb95" + }, + { /* i=2303 cDividendBits=1971 cDivisorBits=1936 */ + "015c0a6ca4bce81df715200c1efdc8a735936b345e5182b5b0bd3ba928e1dd57802430d83c0f61f552b7344c0ef5d014c020b9905233f5934cdae3cbcfa36b9450e66f47e3d041655004580ae8b425ae67f206eade537286d3c753061b2053b320153f0c50bc9586156bc781031f553ca4699f21c89672ad84ab03916270d3a35943ed71f5ba9ac5ca41abf9e5b2e506f2b23a9efd67a9bfe3a0bb653ce33d8a9affc71eac9d7ea79a2272904483b23fb1fd26071490281da5d2a54fd761bd0338924bd3875a1cd63af667803832d65c921d5d0813e61b41eb7e92149686019a845278e49ed27870ffcc2fd64db91c05aa6c8905270a30", + "11409b7ff1cdecf5cd514355a29e6c2fc25b3f309d208c806ac740aff18f15fb259616ee6e59bc8ad6966a3aacc77c9a95382328d4a655b9bea915b50a0e88d28a8674560dc245a470d9f5e0a35d1b77686cf89effb2b0669f24b00904d337e4891d80c29869a3203b4641d3320c1b2f8912dd5617a977f49b2418d14aff4e7596ed59e228c1fa418aad26812a98e01e6a3a86c9bfdfb0543decc5c0a0e5da7391a481e67dfa34bd0c9871820e3dc0b497f927276f39ca683f3209f0e4dda19f54267f86b56903e9b086bdf7aef219137b1bf50de58dd8ccc520cd06fe74f99c167b677cc867b0ee0f8c1185db10f93e4f08", + "142c6a6a63", + "0be8fa2ae6f56423a3b123d5e70c7efb9461832be860a3eb307a24cb469433d548248504304fe4642015246ce3f23047103dbc576e2e08260137df2854aba2b888ea3f1456dd9f87a1aeca4a29be762d929e2d23cb785c5f932f38b89febe69cd3d6256d065c5019a4e967d8e8f7a510798d2387840a83fd641850f90f891a98cfcb9a007488deb9e73e3b2998e2c8149d3a6ae97a3189f1576c1cbde8b30f39ee73b1de807f9b270e9eefb4351ceb56f2a1d87b378d541cd2dff04d6a38edafbd42459bbf8b21f63e885545ddf257c9ec895e809fb72c68bba873eb8bbf215113af20d1f8a3f6565648b97597c2bc052a18" + }, + { /* i=2304 cDividendBits=1096 cDivisorBits=418 */ + "f98ea53fa73c0a4ab27cd9e26065213e1b7b9971b032a4853d7bf32732f3230188e84df42bcfa81835e89707e3e620f3e7531ee2c294837b97cfa5dc9cf991e5cdeb1363adf079a82518d5b97b83853b35b57382d69f873c808c1968b90f354533310b9937e749940ede12dff45f2f65db049ceb64f3a74897852dc88ce8d6022efda1903ab2e976fb", + "3d97f29b0df85d5e0fee8eedd4689fd7e51148192b09d5122aa03bfb00cf45b3c433a88343553f6dcee272fb5523d938cbc99311", + "040d3ac3adf55cce25974ede5d9d5a2a68a2863760de46faf50bfca7b15e129ce7158dc3e4e51db785d5d968c83aa051c086aee0e0d79775f2e7c1dde46e7a84e9280003e48a8dde6ed3316afa1069c503a65f7e0a81", + "1ff0786a5c29a297cf68da7107b4a89adb5a7d8e7ee180aeff1b22ced8416164c80b9da74c706c2c22993b3d0bfd37d67139b16a" + }, + { /* i=2305 cDividendBits=898 cDivisorBits=883 */ + "01ffc11750c9a19d82bb5b6279faeb3e127945627bf1fcd9430f3e0ed3283e1903d724a23a6931e2be30460fa99f404e9cdf5e76cfbe7c53583f0927174d02e572a023ddd9da3f68fa94652acc8a518be9cce958c0832b1e41198e1000a65c6e3597222448efb2674a5555c3e83c6768be", + "2f0767b74a090566e7739aef7790be471db9cfc745c410fe013b4fffd52677ee92a9d47eaa935937354f4418e3734951a86b0b94394e2faed2e63297f81d812b44d216a94d0bd72eee2f55eb68ddb599ff3a613de6e3d6e7fb51d373894839574e10d294e7feb0a57512cf5ea7e7", + "0ae1b6", + "18bc10e6d75468422dc2b0ee97278853d2fb5c574303af42ed5a1a8510f029feccc75977a06b2812d57c73256a05661c31bdffb001057464eb0812bf864113af67f5eeb4d29a0bd6df6f752109aa5fd3c95cf45453549b8c367869be1d0e0acba16d49fbb880c112e6940e840384" + }, + { /* i=2306 cDividendBits=157 cDivisorBits=130 */ + "0991aab7c84edcdd1a8c1d5b2ec4e9dc183086ad", + "02c337e825e78bb88e7228520e569a0577", + "0376bbf3", + "01307a732e841cc93560eed3ee782569b8" + }, + { /* i=2307 cDividendBits=277 cDivisorBits=132 */ + "0b6f823b6f701e7883388753233cb9a36684022791b5f183a22e7afda7fb89759f3b7b", + "0b59de8de3159d2d4757257cee00f79f68", + "0101e8083849b1bc85c9b544e987c45f679f61", + "08c910e6e64c2f90e6116fa75890f23d13" + }, + { /* i=2308 cDividendBits=3269 cDivisorBits=984 */ + "022faf3a9fd6585d07f923eceac9f6d683f0b8cec73026dc08603eeb26a9256d0246de301f4f98a78938debd8e588bd6fd01b166366b3ba572ec5a0e39ec70e1f239b70310c373f78609d473d3b7182490a1648f497b7ffec526b59d116aa55feed2826b4050dc73fd29d500d2b9b31b3dc651ca94feed91c0ed7bf96b81ea2bff655bbca9effdb5aa54e9bc14c3f143cd0475a3bcea9c864ea1ba9cf4781cd87807fbcc75b99724021c64fe2fcd8381ffc03f309c3b7be3b521b16741d75e54ace958a6fdca071ef9a3735951645be22e0600d882de4bdeba77eec83b4ccfdeb6f907f742b2a7dc4ebfb2df82c986795b19984179a221e9817404d7104f8d6489d7356527ad551818a012790019ffc5ee4c5a766ed633d031168217636a0762cda0d70ec9597d36103ffc31178394059d90316136b78b1a5f0ee23ca04e64d5d37c4d964372c4e048bd0616b2626d284b20872b2b97212c851cdd3afdd14c9de0689f6b47bc631eb7319fa00895e954be425a12e34cf3aa11ab13486e30f50e887e1724d19443ef33c4a8bda49f4fdab047816164067eab45", + "b264877777fca325474af119f1dbd83fa20898f9d34a55b610ac6b00506f464aebbfddef7fb4fec9efd11ce2034b170bc4d011b3e9f45a42fe8dc3d05331a5ba4b234a6a68f306d36e724dd700710227ddc22ce4974020a35a46e2eda9e39f85a0d5c56004fb6232b92fb1bc269ef2986972299d88578f3b72da11", + "03232ae757c4918a36bccd0c2d6372dfa593a14e7122100b8947f97360354686674efb42bab59a661a1ebbfa35d20a13e8f9b6c22a4c5d79be45c72f758161470977aeb48cfb9c41a5c811f6b05880faab4ac6eb9f7e5c3583674ad14f8431fce5645b335c9a4e5224edc5c7d796a799086bcd431dd0487384d6c6a8ccd9412841c1d901d124b56f6f0e999563be115ad14921b49f7aec995a6ed8c8dc9d465461fc25d572a28aeb865b632a360efa73b9dff3588ce096b4dfe91beddf48d129ad225a9aa2b191ea66875b559284fb0d676a2511abff145acd8b7e3c69b5a33fb8e45e62cf8e28d4b66253226f7454643897cfd88799d4b284120217978d2ff30e6d76a180b092fb4126e4e182277c2d81d9ff48af5c2d53b8cad1b15419", + "48f968f8e4a9e6995376482ca9fd91dd1b6e6dcd834c4f70daa2c2bc77e2929cce8f4bc58572221111597718ac82a299ca5e628a655da884fd39d7857ec7237204ddcffb967af085daacc7e466efb2836671b3154dfe1a10b178b17802933ca99d2b9680725032c779ae6f708c342239a454c18905ad0ae1f8cb9c" + }, + { /* i=2309 cDividendBits=2425 cDivisorBits=1210 */ + "e79cadd5ca6d422f90f04c94a9ad6be93933f3630897e3a3babc3883bc88943eb8a647e8108da54bb866d906c1882521581de00d195f98390051ac59e23f86035d13aecce9756cd7d23267b3987c8888d3b03a59bbd537abe86d19217ea759dd38b86759a685a7db1e979be5a490d6411110171ca1714d20759a5e0060642ff7616afa88d71e02729be51a67f4d1a1473b207d53f8d830b0fc898463d57bb7daef4e39cacd421c576f91fd0404f390e685c2f27bbfd90f6a0aca510a0a90beaa3adf0855dad73f3f325ed9eef690eeb3cb1fd34442e9f363089caecc223935ab48ba471fddf2e051684bf11a79dd0897890cc7989bd9f8df9f05eb759f1865a94e89ae4ed06260a080f77ba6ea1a86b2d3a3527217c956bc73c373b4c0a061cd8d74c2d91c9bc6e61597fe1d7a5fa7", + "bf04e0dc468ab90e12bb8fe03936d03d30d6726e19b4b4dbf2e9e68a06e2eac8ac08e318b46779ceabedb097d4988984b0d33815864276a57317e8c1fe18c78191989d13a70de972e591ffc1bc4e9bfeba145653fe349761dc72f69f12f1500f9cb21bb5fb688679676e76b5f624152a3f6920b312223d3f75c1bd0b5d8f9b514a28c77263f79d4ee69ef5506af7495fcb2da822a60551", + "013666e34b3a3167019e84194af96aa14cfbaf6e204154cd42936172d7f4b7562294c3a1493077a4a0edc53a80ae5ab7509803f10085c2d41a1bd4f3821efceb90a8b24f5bd762233b6e5177ef9d5cd64dafe4b48380c648520e923f94a98186be5388eff3ef9df44cbbd02414dd380bf0be34c83e482e79de07cbc33a7f6f60dbd723d9649b12d9ccacf0ef9b656b42e9c721ffda7aec3cd9", + "9c297361c13529cb5bd787b139f1110178372980754a3c0bda642f34a83b28811d9789d5713f46a9616b4254b0db9e005aa9a550cf8ce2b171f1fcbfd123f6635f2399406b9e852e9e11da18dfb056b3b6e7c2d7cb8ec0b05a6640fc383a408f4c253139d0f19db69e6c5377c03b9e0b864ca47961eada90087823acbea7eada807c65b1e143d81cf16d6f9dc10f1e558836ca54d4e1fe" + }, + { /* i=2310 cDividendBits=3601 cDivisorBits=796 */ + "010d67fc603146001fdfb80e690612039de04cfd83f9e296a253a3ed0485cb7ec659fb807f0008828402bf716b50431eb773ed779132c3cb8be9523c75539c6a0f4382df3921c8d06c791e7eb5043e6b88cb19a85dc19ef13885c21842ca765e68d1c01af0280c3fff8273169d9f89c14c8e1158e322238049a894fc4400168834aa5b046910e34c2e7537fd0b447aa5ccbaf09a884befc419d886cd668c5bc0931b971735708a5ab3ad63ab03b159c2a2e033914e0c0e9ee017a5efc2ccd0e0c8a37e69b6cfad5086861a1d72b01f462246d18af2a34ebed7c4220f47115d04f74733802e3660078d4b53afd09d33bbb1dbb945abf40adb30b667bbfd6a37a8e180df13733b175b117bef6118f35590fe015007dceb4e15295650c29670a3e3975b412c13217c17d53ea35d14e56bd6dbe9fc8cc20157b80d743452126ed190a9d58c92c0a89eaa55f9a232df9fb368f6e12ff7ee95f7c0d346a82ba9d1451bd49f33389de6d7b22183b49778d4c3d764c035a91262302cec121763333f079bdd6ca885ba258b227b5d5b1f0ed160b8953b7a74a11873f78a54fc024c6d6ee4ce6a6652530f72ff5a73a7f4624713e746e9258172759c0e9e3a8ddc6cb7775b05d652", + "044e3e028576df6224905f37075499b787238c91c8115a326ce5291e05bba72bced6d31fd9bdc134716217d4ab5684f86a6931d22aa0d08c79c93ba76fb55c4fd8c3baf144f7d0ee1dc04c33efea287883d350bcf0f4caff8d1a9c6f6940ad4124a0c595", + "3e9214880136d5993d7f5d7dbdd501ca815fb5481335e8c6af6749d268f4a36e832b5c4a5dc08ff5f517038bfbe769908ed4a3c52e88a0901ad7ea0f283f7b12b0ad2677e147eb4b8f2077f8a42678e243564a7f552d280dcff3c1197b25f9369f4c7eb08daf1e0ce322ea3812be98ac44267652427937815432623195dd54f609fa2ef49fa8b5a4500e3c20d167fe0592a9bcd1e146a68d9ca3bc5cadaef50f32bcfb36ec8c17375ceb1567d806a0912cce6909c20c43c952aafe5d9388ec5fc86001466f329c5f5839df02ed6482f292b0356314e8015f570ea77f7096aab3df731dc77e562279b6c30013e585d3573d22eebb4e69eeadc1662f3adfbfbddf7ad3c15cc79eaaeb10a03b0d78591ad04d0e1c13638ae9b0cfdd74b920bac897684ee03970c52b5c39f5e1ec10b013eb15f4105fb684d8f5c80c711c9b369eb56c3f473828e49589c8bb386f7254097c8eebfd371db6af5a0182b1556c4343", + "c18b463156c2c2caa71113d61f61e42daa300d97fa92792944672161a33f03a28705c7b3444721b7a6ec35d04adf6f9dca9ff8b8a48655d245fdebf93c14ec1df7fbe82a192df2be4f62b376d250710bdf59daedc4b7803faeb8738b6f3761dd602153" + }, + { /* i=2311 cDividendBits=2831 cDivisorBits=905 */ + "22ced7a00d065277b2607f1229582c21c543cdc93e6dfaeb1cefa25c52b4e0ba91d9a6dc9b289659533af9f53a38f70117c3a3c5ea1984d3246a620671a67c1e548b98f7ae48de9bd02703e3857b4d37a1df6e2ef10578cd65cb7339f308f457c0a9beaf374d8d1cb82d940cf47cd2f9ced76434eae8bfa249584cf202c36447b53f452def13e8f09a9842dd9d66fb89c7010e2b5126f31ef085c2405d654f3afb66ba6232059ddd58d2e87afd48ee65de90b8f9ed1dd3dc8e5291aa62a9e4b72cc76dbdcdc86f6b4eb0a018ac2dc24c9c2ca22174ef34c814ccc410c2aca1dc92d8acc1c26c4bd6162943e85c07ebeeb441cfbcc1ecc3c5b4688979f62575d08d2cb369d27f7fad9c62b75fb889cf5d12f393a1e5f1fe9f0d85e40cce52956858dc1a667a7fe371b5cf33dc64879ba379fac512ea29ad0b3b2e2a6b2caf6eda89363e0a0abb6ccac87c8ecc254cdfca2018413fe3e88441996ea2adbb4ce1bcd625", + "01ca05b0275295d511ba477e0817a5852a0c9706f17af8f1bb160c0bb9334a8e04d2512ec16ae2e6bff26b7f0ab91666454c86e01e5fb522b6d37020ce20739dc0a0f0ace7f01ca4abc587c72a4e62eacf0ea0f6631456a3ba5e739be595c4411fb6816b29193e23351a60c1af6d0e591572", + "13747dbe556d85c61051a1456a6e6c95c8a54caf357660c7e3628746f62a8d7ac1ec4e5520efa8d31c6a5ca9bcd567a8ea9d647f738773aee912895dba9c395a9a3a8233f6cf5ae6ac097970c8b8e0456fb4e2ffb5f2c2b1b7c4100fa04cd7f2f482ce82deb968dcc6eae6f84a599ba0d4df1b318470fe90aec7faf006d90474960a7a32be7f268470b3f7554e6baf6ac12a874aa6422b96f1ba44b1cfe7530a55e47dc0d29c502e411f40fd443bf60b68c954cf05aff1e4cec7a3681f5ef9be4b4202a89ea237b50946ebade5e092934d77e0f48de4a380ed9ef64db9cc07ddf685b5c36d9a467bd268a03c76814d3c15", + "0132e8838e79862e486cabb4a4d69bb020bb682e873da4487ca23bcbfb414752894c2ab88b1bc1f602d3d44b23438de202c24305193b4bd2da1af1f75fd0227f31d3823f235169f78586e363885ef8d1c75b56af6257d7df7e7fb685ea157a28686b48f7929df34c6a66604df8d7ee1d5bcb" + }, + { /* i=2312 cDividendBits=1191 cDivisorBits=959 */ + "6c741fc035317595dea67fd04c844a2c5f285ebc858c033b15a93120571789c18a5bfa64e475d52cd50440efc0bd368d97ba957b237703a2626259aa3d16406c3496727f9b87b08b3015063da3528083bc31d03c63af2e2cfd0a04d2b025bb5ff79bb303d30d55b210a14d24663ea69c1eab24af1b56abc3492763076348b04024ed34abcaa0fad8dac712ea250807ca7f2ed8535e", + "295e08fcfbca3d2a75545cf6def71f649ec888f4f98b59393b829e11b01d9e064b9f5e27bf548e2c729c72597c86137901365fa203e62cd61efb1f058005822221e8e6ee0e015e58482d31f0705ad73850337e160a772d9fdb24836d8a5311300f32b97657137f866c6f70fa1c56434960702e85b1fc4f0c", + "029f2925f1de1580ce93701472f3511959776ea5d82d431e21d0cab56bf8", + "0dc6361d7f2bd335c2447bf8686b2f8206b62f58b4151fe8caa9ac1f726f48e74b9e704afef98e802f44972ef199b90d350a9511f1cf583b020672558202868d40fab7a67b14960a70bb1112a29f898ee832c22d047f164597fd1431f83b2329c6c566d2f4949e178871f06b433b69caca582412f1e5bbbe" + }, + { /* i=2313 cDividendBits=2153 cDivisorBits=1267 */ + "b5ea749ae92492b462f2025bed7b3dec843ddccd658fe2c792172260e3600f1b48f3ca26227f1e1c286b2559dee97c404ebef0710f739ead1bc780736fd6a3df8e8b3ed985d8d41e4c9faae8881d17610e9b35fd153cb3c91cb04bb4ae16996de2670a4ef1d1ff77a840ebee70f95041aa5baef0f4037c42c2f0e16d4652a2d580b4536ddda2a8e174b5dadfcb6f232eca5241effa0ee647eb7b2f0eafb6b00f0584035f61056a1c5645cb5ef7f0d907a22cdb5d98dbc1b379c1bc3be1970018ba435443a749f80a266a3e7edcb5dc23dab28864a33335e38004b2395c12884f2cd7b857db6a41b9cca1cdd19f47330b7528d6c960c378d81730a628a9684c1a617057ee1ecdf28b13e8c075ad", + "028df7d5a19a7ef63bfbb3fa5a21f9b6cdfe6a7f7387edef2f328b1d880780ad884e89fa3dc6616b0afb1b48bb3e4ccfca8021f3ee1241e01e2127dc987a57b127ee6466d39904e38dc70c62d02416d371a189ddc1e4f9c57d199c91ff46e8f583e06c1257ac1931cd8dd4fe5f7b2311c66e55d8c5d43589dc75dd32e35e9e759e8dfa5443c903d3e6353d15e658a28fe80fb4c1a363776ddb595458a6ead1", + "47364d89fb70adb9c40d9c85c2dfa7c6c9f974dc3ef7e9d8065b13f91615fc4b389105527eba5a9a3ac2aef7e0b05712262901c1196b97d8d516a973ee8b43aea3ddf757af2d1ca9e8ab7ceda3fa30a0713db8673b8935786d4252413c4c7fd23313e35d27b7c323d82efd225a3926", + "0201469ccedea7857216e136ae49ff7ca4370634fb5127e21dbc07b4e18a5e997d227ce91035d759aa36da0363a1d02c0ddc095b1ad0973bf7bd5da85db43a1fdacc13e2212077e5f06c123d84fb7e0101efaf688827f44a208f5726dd25a1f9b5e6005aa5b0af027f3184e34897c76b2c3688db1f6d3333ae01f4e63914c43575b397c9a5840fa6ff90eade7c84a0e9e3190c0d687e86be928c66463711a7" + }, + { /* i=2314 cDividendBits=771 cDivisorBits=333 */ + "03133b8ff5f498a94829b65ed5d8f1766548d920d399674cec9d8469de1756c7aa97e8a656633658f12265728c7ab3435b5ab71397c0d0145ca961dfcc82453559ffff769018b49ab7f859c64d2ace041474045bafcba02ab1b43ec5a4b3e1f97e", + "12b7dc50c5f224e6a29c51b2763a857ed491da7e0c9a8d5cd61cdbbdfe67f1d2c1792674ddd30944d35c", + "2a0e9b645da803a9c05f3cda862fd8cfdd2d4be827ea82d2f406e25fa1a3d69648c0fef7ae9e67ed60604bb81092d9f5269eb2adf754aa", + "0753ae884b93ab5c5509c016dbc04480fb73f1cf43add28fad70d993db444e507f06d6030640dd0f6e66" + }, + { /* i=2315 cDividendBits=1978 cDivisorBits=670 */ + "6705fad96bb7e009173b043003a927b0c46e9e772529fc6eef26b1d18830c63a1df039a26a6b1406896000d69d8f430342550a29e105e4c6fbd70e8f68fbef7ac704cb1bf658e5c6192ef927ea86e8e086a280f525b74b76f6191a1344a50da45618198fbd06ccc1a490b95297f32a8a05b21d50b0fb42360de3558f25b13ee8980f5effbeacb484469cd7e6eeb97851efb0ac2314c81c6bab712c9e7c4f05045bcae3b0be939df4b6313d57d3ba0ecc0ee3de7a0c4250a8ef7ec00d3297bb45fe7bf1c49c4217620a0b489486b913e23c3f32a8c4bb9962b4bc8f0700b7c534b5e44ee344fa1a8093c907ff5187f7874def8d205a0ccf", + "3a11afeb9ea38676429b4f375d33621bb4c06fd0e18428f27a43b087a6819ee16be4ab2fa5a0355db9f20af3bd6a9ae708201be7c6e26b2ece93edb85e50addf5c68cbdf4c31741710c7cfc5fb07cb593132b685", + "01c62ec96a18ab5b8e1ebad8a62e45eb298d27261ae577550549263e9e145d62143aedd3ba0f660079977d8890c2c02247ad034aed2e4ae4f93dca4fd82ead416ca92b5ed2e52858325e9296513158e3bb061a785c317f4d1fd62f226bd57d616e56777607fe27d71d01b1bfd7cbdd92f00745c3f16b16dad378322fae03211c105d2a6960d29a434f1543768b7651656618b23209cb2bd61c8366ef2739bc16b5abf0dd", + "1a65c613c80da6c38ee55bd52790746d3168f9b8608086e03b7675d615580a3429e241a0f91ec43ddfdbded7a8b7a97a432939f3fa4a7b7eed69aabad8b8a319cff1a0d493dd1cf92dd251ac3f90b214289ecbfe" + }, + { /* i=2316 cDividendBits=2076 cDivisorBits=901 */ + "0aa20ceff71bf056118c1f29edfdfe6e0698ae3f23e99523d29759d7bda622ea5a7dca95ed68bd6cd21b1baed691a710d9cd5767a96fee8b85c3537d9c31812a0494328893a31b24ccf8ae9288e24488318738a605c3569054ecf19b53f2d6a4683a004ae911316a674759677b6572b0dd3523272bd36fe1461c99f829b23129ece3b8b02fce5d7591a99bdb33280f7f35f73862cd54b3fdace726095e806c148d8bcaadf74a0c4a1cc934f6ee40373eed39fb7e68f4e0f4f34f667562a87a89e9142459bfe54e102ce4fd354a5e320eabe3c01bb0b76c15b84c10d2fa2d23f315d8b5b290857c8bf4bcc0bb6a7ebdcc30a6a6cc1ffd87d0c3e6d1345aa96c50ebff0b40", + "0b61c6bfae91a3e70517c2cb087b1ab2fd93475eac2c14c6b07200437fee9bec63efca3fbd603b5c11d18a9dd5a7649a1a98e8ae9f2efb93aa380b03685ee7351d7ff360da0ccb585c2f46cea53963cf8a3750abad0fec49b49e0fbcfb229cb13e1b90cf8e7bcd4cb0978309a5ccfd8a41", + "ef27befb22fd3a8a11f9221cd61251cf765e9bb9b20928daf0d5a22fa46a19ebb92c9fb3e2eb73c8b1e3a7225423a2c0ed3ff28a41dfae9ea0d1bea48f285b0839f121a8a3dd1a0186192bc63ee912fc27ed1cb8c8caa8662ae6e520051d50f56663eccb1c2fc0346219031467351305bc14f4861c192d71ec92cd54aa3cfcb6cbae2a0de978ddd160ef414873f4fc640b6187", + "0109ca0521ba46eab01dc7dfdc26158eca73b5c22ef1a200e4a8a5c763aef806598dcf6452d048793b90954b6bd7bdd5444004af8e513e48337218cd8317eb7e989f844e070d072d8c7850b03cf7d0c57bc3df02fd5a3d81db5963c101f783ef47c0b7eda1beaa0f65cb279e536c1d81f9" + }, + { /* i=2317 cDividendBits=4093 cDivisorBits=2769 */ + "04523510d4211dcf0838015bce9dbe1f3701fbb6159a83ebf4d60849dc98bb8755114424af52ae1ac4861e38621e365e0eea3c6278937e7be3331906af959d8f7cf4594df7d85cb691eb0fe2e473762bbda21c147c015d37e458525b05349c9e683d80d10e019f9e8b9dd51bc57a9adf179cd4003134594f4a8777cbc3d8c717fdb49d4a3b8a0815f1cc675d40a699d6db26ff8ae19406f92b2c816e8ae1a62f923e24897dcdf5929f91cffcaf412b5f1a1d68aa76266fdacff4490881c59332c92868b40bb2fdd814d8c7593b9e9573299c54433dc653010d5c05ab330826e25114de916edf1039777aef08a37040865cd6394a4d17357a1df47265f22c2ca8159e1474d41fde6b003fd31cb1689524bc30a73926dc8ca5fe637055d7014ad028925f96f26a2d9401823fba1ff4e4ab1959aa0b9fe452b2ec08dacd2b2f867e526cb73b153d45c5085fdeaf1c4b67d091352bc90690bb63df4f4cef21a1e6761ece403588d886bf4003394d1b73b086ee79d808baab10d56a3c1998180d70f5d90aa9519312ee25a6aa4e8ee408a1f7e633f3880034ef89a8b2335a5097b717f12d60944f8f90f817b2ebf2e3786c802345f5c0823d46c828a850e3d256f3a3b3ba698d817eb8d7057dd4a59d960db00a2722e8f5750942613363646a2c822c9b5bccf1dd79af9cae8e411449a9cf6d81f4a82ccc826789e7c8f522eba9b804", + "01f91ce8484d075ae480fe8558486cea9a5fef7a91a7d5f02d471cf116fd78557fbfd3bf0ca925873c725c2577e4e9fe122c8fabbe68145f1300912cc6019563b555e21225719aefe5cae33e5b33a4452756b2fd541d237415362599e82d06f88ffed20f4b7622f5a81e7a2cb38201d6d41b36096f1e61f2d53849c6324833813350d46caf0ec73a860c91e284321528e9cbaa08d1e40ffb8c560b7e9615593f6d8e74ec7e4cba5be9bfd48640f36154e32cf2288c54f548b27a74f79b22ed0b9b7f5d5748e5bb2d0bebbad841be5ba39034abc7a9d3c1e50a0801fc6c6a36cc3063864a9ab34f04a509f7db8eda7c1c07c6bec2025a3b5ffb91a4ba4538eae38f00cb44a091c9a225b0e9bfa8c5f6709271955275869058e93c9670ebb49d9937561225c1f58bced028160c4f4e2c63cb1fd24b32d870f5cf88a4e6029b8b5a85d80af3eb8a699c7aa6a854ebdfe7968877a7320f0ddabfdf7c6c", + "0230a52302b06396c685a485d4fa7d89deb689598ea26abb5565324cedac11e4e2f37062305b197be0efb446c318bc982eacafa138085ad258a5e9f57b6d41ef0eb9becc904cbe5c9ef658a62cd8df01839d2417fa3f3962cc8804fb3572c6cecae854b209e525371e143c39a8e0f302bc266f2d3a9f9a6615f240c7d9364ea6bbb5acbfabee5b6a4ce78cded60202197e268e901be146418e571eeafbda8f951318a1cb22fd", + "01426008fd93eed8d4659f9fde9d709d99024d34c6d0c3e077ff14b1dc1799c62dd00f7aa6924e9c3b569ced0f878613ec513d53c19f476a771c28a864bafb87bc9fc66587004359dbedf33f8c02ac75f82c9b65a0febe43ff40286c08497c9e7c5a2212c990cecf8f0362d47bcfab3cf5ddebb12f6eba27a707d4c55121344e8602ffb66590e2b31fba4c341e5c7dc3aa5b934ecd8e33e5b61295226198e283cb40fbcf96ab8ab29aff6f0ade0e578cf4549de1cd0a782ee4910a22b0757293e895f6398f5cfc2efc5390dbf7809c57a07e24e5f7a7a434b57a3371a42a9385b836ab4040d07d9b7d00361d34a138ea1ff89fc2de5ddcd9c19883383192a23b207e9142d10faff9918d7ed72fb80d44cc3b0feb0568c949ad0e953c3cd4853f7feb1474ef4bc5ff2672e601fd953b9726d56e8829610b7ca8af3025078f3e277fae9ed53898646e7e147bcc9e36fbe8b9e4b58de3d4e007a16948" + }, + { /* i=2318 cDividendBits=3046 cDivisorBits=2329 */ + "1f462708b4e4cf4d2e03dfba564641a0a3def2a2119b0a8ccf6c606ae86842d4b5d3e5d8b9b0f16b12ce65f2cfbd5f9327b0344b428739c56a3c8da13b7633c72951d0a167fd66c8f50448d530f0726e6f425456342bb77c9bbfa032364a8cf2cd09a7ded42e688600cd314df13279fb9401afe007fc6de89e9d5edd203dd729fe53b387811f30d6cdd009481c82d81f06103ef840d79b195c622359411deafb9e0dcfb4a4985c87ce2adaa2097a39028ad44cc7b05644758bc918a8e041fc9775af5c170353d84a1294a5449a73a30bb029a7747bbf9464b317cfa5e9255a3e010d3fc5aca872708836d361cd5115102502b2dc57de3ccefa3abd80a65823bd27414498fae7d1d17c888c5222028070856af83413bc561a7cd0cb7d1d876c127fbeb0c1ce7e27c79e66a8bd1d98054afcb5fec094c660bd3e75313ae31cb6e2c3f7dc05fb8fd90fa6ed38be4959def2a674ecbebec5caf7c4205294cd4c3b3b5f86dbd64fc1da6c9ba28799fdbff2e7fa117d3b00300ff108611889d1", + "3d669784e95fa09a13d3418b12404f8a72a3a31984b9a399db3df36388a6d6e1ce6bb39e473bc0279b7e65ddda9417c09a5e0b9b57192e8b24bb341b837298a88a8a743e9b66b4b0f8c30ca65c569025a11a86ef93308e4e61879332f526934070ba6ced18668c5b188f97f040f08c1396b9b2b0de020b34632d9b64f5ce2b9f7e10e60eff41e080dc7a491379c1598072af9f395b664c04e4b8979b053bb55421e455a3d3d9dfa6428b6182c9b82ca8f13a4904f427f683e93a7177203188f6fa52150025ae2daf1312c321ac7cac7e8286e9481a7ca9115889ff998a4f3f3fcdd41e2c4672e7ee555bcb6f6852dd701794c5bced96a4db140f6b92c03394bace6c078a7932317dc2c54dd07ee2ff876845ad7278ebd10cf77d4cd8fe6b2b170fdea8", + "82644b1d0e659f46ce736798f380064e3b99a27acda3b65748306ca45f547b001cb87a133a92202a767dab52462ad48e958a660baa2feea720a4ce316de3c12a2267c594e4833b520a7b71f12f5cd94170a135d3fe4ba943bdfa", + "3948b0361f130ae903e2e3aa9ecac0028f51563463137ee87aa81b5e0b6bf8f8552c86ecc260c22927b87e0a0f453bf979482830e4d83aa4fdf8e8aa08cdf96809f6b978a1757943b01371ce67138628c806d4ba8e2c82815c68de32c012def4923ba1f22ccec7bd6534e6725097b7ce2d3552e7b92b72dbd1dbab018d7d1190796da6963e00876dc7ec4f746a52b8f02b320450dc19f5373875c3d1b7ad06eb55a2b8206e43d6c7721b126fb351e7824beaef3c0ead1ecec9727de685f8b6cda7d1a3326773b317a7fb8a5b8b620ad8bb47240089fc5ca656047c9adaa728366d6a4012af77c59cc38c7921def783fc36223cc8c039f10841b604129c01fbf1030b3ee0dfb3e4c3484be58f4a957dcc016d5ef1479abc85b9691426f30a90f63f11c1" + }, + { /* i=2319 cDividendBits=2519 cDivisorBits=180 */ + "07cf23ac647aca613ce00be87307d5874879d34f87c1810236a7aedb3d2fac41fdbb1008a94835f20dae3b5fc912f14e28695654df2eac3444a8a7c39cceac02f2e2749662710153e5513839ce8b837aacdd42fa07feef31b76f8b6cc55f3684e18be9c6783d2cc55e9c0756c1f7e139c0e0570c652cc161d7c3149a9bbdb0bfab9b9a5c8bec3ed9b5355777f2c28bf4d5a5a2a869e3669bce90bd8a2568f28d6bf10994d5394e5700f38f8b245c29002c155dc4d04af8c32a75050e9c29abac25869742bbc50bb6d2c7d12ac804c16abd42e5af7ffe93f41631fd2db1173d9ddee89cec0dc3b7b5d8381597d2adaecda1dc8c6326aabbdea55c82255a1373a4708ed2dbde1eeb0f31c77063d84a2fe36f669d835fa6415e5ef2b576fbdc3b8e48ed1a3eef4479501052a2386ed2bbd97ea602241e6995ff4ecb3c", + "059c4f6ba667da762fb091ce922b8a140d0ce12d7ab8a4", + "016450c7f4d6f2e4e42dc44f585bdb4aebb5693b893294817c82dd0585692441b0ec26acc78577dc87c1ad8de9e8906684c1fb833687d6d4f97f7ba3e41290e63d82c9cccc84da1546ac50cc8b4312b45da40b12743b56cdc2269a4e477156586faaadf99491bb3cb97252b5f8523829e5a25a04ac101655abb618275b3719870e325e9b3fa8380d3b9fac46f2bd5efd8c2f9f04edbba86f96ba4d8fa9023a8962731a8152589e8b0dc67c8898e325ce6ecf7a4521afab220b4f894daef76491b95d308bb059c73ec5d67a96e41f5a7f03173c276b179e9e79296d3d647fa02e938aa040bb2e0387bcf064fe5d67632e3b05a2b0158dbe4cd492f5273497096a0892389556d326751cce32914cc0b178334f9927caf51f68bb6da9fac951b083e164a03aea", + "14042456ff3cd7a38ffc16b22a533ead0e7d28ccdd54" + }, + { /* i=2320 cDividendBits=1703 cDivisorBits=457 */ + "4f28ae9a7236c042f8ffd99fe7e01b68e103fbaed79c3950b4b95eb20fb3a12bf3ef2145d563b5b453064c9e67dd60b8cecb3b20f22fcef10fa58002350a236b6ea9dcef5e7f090dc23ea9bad5770c6951d06b47a80bb213363459f3d97a014ded8e04606ffb7c53d2b74fdb1fee4714b832d65e6edde395e417af6152602c6eb14596ff37e29dad412c8596617a9baef20778d8b0900e22210b762085b49459222245b45483ff30c3a2bfe32128c5d2aa4dd03be383aa7e3f18945b8ba9cc8528f8aa4a0a7f453739305b0540ca38dc3b136185a4", + "14136858cb2f179602eb6f391b5455d1a68f4e9d1d82af24943dd3b591cfce119d56ced90997a124907b9bdff90b108877ddcca784ca1a8c0c", + "03f1686bb228d77e41375c7e408c23b56968774989ce1f8193c7742cf5a17b4a07d40660e20b66a21f2b6e648710f18cf5601ccf9f4af7424f5c1c79fa5cc668abb8ef0f62300a6c298f5f073f3012aba7567fcf5cc3143829a71d58336de1dedfce2f74e80bbd882d3a7bc26536bd6e005c8204fc62e3acef5f0e3d1665a2d4a1d849be0e30e107e484d5b4f70df429422ca952b8d39fdfac7b321168", + "08bb7a8c99a453948b193f082bc1cfdd9657790c24e1c891f8c6df29dc7add41a0b73706de3832cfad4e0217b94841d68ec9a2365416f3d4c4" + }, + { /* i=2321 cDividendBits=2676 cDivisorBits=622 */ + "0b974682ff86031f4be68a1ab253149df4d3f23adc945fde480599fb45627fdfa41b97f9feabb2c2727be298034ec165a30a72cc9052a1a0f3f46aa49a9515cd3e3336480677375f3fbc3d8f4170e56a405eaef73bca089764003af67221d7d26866bb979b14f5e2a5a366070365257affb110e8344a6a3baf688251b46fbe96aed04e44d56a367a0b55aae7002871a2af45c3bbd125a9b933e0d285bb0df58e8353c6bf50d0097fe7fb5b1c93ee536e7096b6691842af1e7633bc545152f2f133e5c1e628bff1381a9caab9fa09c7830d65d9f6200fbed3f8fc623f7a364639f7d51afdfa64721238c0384b6d602fd3093f9b4c3ef16394c8492dcdd5eafbcd0818034ccf472151927828df6a4ee31e4b884723a06357712115bfcede046ad66aea1590a17f527af4a8f9407e9c7cb98cf4825adbff859f59b3ae74d75a5d87b3c9a7359d9d25ed10bc8934735ccc", + "21bbc03b20b44270fd1cd48f5a6f114421c16785f45db75807e2d623dbb95293bdaa88ca38372cf036724aa1e00d505e9c44e6ac758b27d7031ad0ce487b611b31af7b2d6110fbff2054f4d5b428", + "57f66878b9d86a2c3862ca23d52c6c6a583ff87d4dfa0920f1a81f3ed43393c35f6850fc3c2c8b8f451c466fc5d1eb8fd7f60f3c8b7814d332fc804be5a2326f15613f297e05aa4f6eb51ddd5adb9d614d1ca0984b49c67689622c97dddb5940759710c12bc313f9fc6a88d26e82d2a98ba76e91146a5c08cbf03f0c647e419edb7cc72a2e5758cd497e2db44f0c86461e6eb7dd9ecc5d8bd3083d47ba7b7d7f38631c4b15cd2e35484b90ff645447682091ab3378bb85475c47449edbd35e7d2af7f6604c94f0b7a70041d769bfb0457c2aa753b64a07e6c2eb06d6e4cd56bee23207e5fca225377b894302b5c7ce8790d157494049240b30f81a0aaaeb506c98", + "200253f80879d0b613ce5278515fd738ca5411e67f1baf0f608e8034a5ca451ae8b057cd3b7d8f3c31389cea0778a428ca49ed95138b671fce66d6da1aade487b5fb4828b0a299a1d114a90f850c" + }, + { /* i=2322 cDividendBits=3461 cDivisorBits=2061 */ + "13c7cd0c86cee0ccdd6165000c822ac9bc9f12f7e9fdfff70d5d7ed6174b6f42ad58be35580f5212d56b6c97cfa6cd3297f2ab61e1746728eb060fe5403cbbde6039d6765643ee9449affcaf25e9b8f2d1a67389ca72c47022540d02f495d6b232d5c6aa9cf129c1c38580ddf969e8ca40e6fd96ef49e26ad6c3e38894b2af9d1a8fb7c939b949abf8ba8b8a50eb8fb0a84380d140da72b4bad602e7367986cd595d46b02692e04494fe779e816acad44e8a510f22ad7a505bcae607106e5ecd4cc4ee6a8cfe2c0a790adb1816c8609d28ad25de321701628645ac66a06772071728e354446f375ae99e303b71554d8488f2bca7e59f84f272822589a33a0c453e7c3cac6bdfc10e9c10e310b60d69e998fc8fdd6957ea35a5f0498af11ce538ba1ffdf966e4bc9962ab893ec01b8bdfc00161e314aed3c2cb5c786f308e2a3ae85bca3956780c5bcac6fecc671b9b58df336f753f6bae8a6aa8d243d62c940fa5c309eb58ba8430c36fa34b85acbffd9ef3c3320d393d6a538d214880f1e7d7199e87b7ad1e43516ad1b0dce38367f96f6ad0f638aceb887d71b1bbfd2e7fc75dd63740fe202ebd1f58a8c39b3654ef63", + "0ff5070405dbbad65e2256c831c398a597c81359ae33f718c742035fdc837f6352ddf4c6eda8fd0925daf5d11d812bde969090757e07c40f295b546bf2fcf33461a920ab28c9f654d373bc678980727e8f26c7430248eeee584054d68d5fda02c41a32751051a4fc50fc8d432770ae757bc4fb396dcb588f627da17d79eb2fd9473d7a90d48330a1c7d6a13e5b8b40c785c411dd50541a566d732960339b21ae602e5323ae17c8346a37dbd01dfc8d7e3135559937e24b7f0b1beda56978122e2571daf51a7019ac618aa76b3ee342b6a793e1c0d07f845ef266faef991ac51618df5fac8f7526694e869a5362ad5fdf0206e01ce1a9c78142f51c90adfdd24be0c4", + "013d5671108d0a75fdce2c32919e170b017db4e9b59956b11867166fa0697cf3bef01b4c4c6012adeafae1c0f57e3e99e9ced08b3aed07a1d650120445b5e06213690ec138c9c626c2eeb8c2f68948cbb469f7212169c655bc24dc0bddb3013921a08320f8fdb45dda00f061ba5df8d773c05dcfff165c66ae3f11e7c270038775ffab8284c704c573920891c7e4a1a45f1af152be1eb30d94bbda488729e61f4fc390dffc56d9141fa0efb3aaa15ed8", + "084a627c5690ab05db8c1a4b7b749799972b2124462e4a9cc138fcae58e532d26202536b968b324e81129c6f4c976f763157774b9d0f0b2df5fedbe4ed72dd0dfcafe0cb8baf39e2d9e8b7428cf8d760eda5ffb60e6ad06f32ee42da0ccc1a00f3265d91d0ab93c17077a074ef202aba67fdeefa2366f0aa801d63c02152da8280a73db5dbe45770602827e8fb14b2d5c2c988048724908d849282af25aa49bb34198ed5c4efa83c7e99390c9baf9860889668923455dc5c3a45ea84722bc84125404f933a0b6f6ac0c91503cdc5ef5d2a73bb3fb4b1d99a543ce5bc8b521fe443f849d13473c9b3c9479b17aed13f5483dd074a0c9cbb6940870c05f83366835203" + }, + { /* i=2323 cDividendBits=3356 cDivisorBits=1704 */ + "0b0b250bd2d062275fb48185ae37ebae4f6ee29e1bd91ed4f7cba4a1011356fc80333d1cefd048e6c68d3f9a5b194155d5436bce839aeca993b0fa6ccab933d019eb7ac147bca946dc42b927fdfa38fe9dd7e63685aa587f51b4132787439fc26fd1fc7e7ac87777b858206183f000066bb8afde1e359b4042047758c8c896c99cba9d1b0f2df25bd64cfff76b6a93f5e5c23b2c28e1ea26b410f366dce188083781ff19b8f2ccbb0e433248c93aeadc62692ec5ff98f6e1b81c38c0a790403970f667a65b07d2bda00fe1b7b76212b93f42a7dde695fd70d09e41dc06c2cb569aeb441b0e6c0202dde0a2bfcf732bc59f1219d38ecd0aa2e442bbad832fbdc2f4e64ce7a550523c63351d35a4a40d6e749411a9556062d5b4fbe5f01a876844148df9b18b294ac7f0b3cf50a718efa1f6d7cf37e876055062cb8a7a6ea965598ccf6f76744acfead2f6868d81bf2764b4d91a5a550035907aaebf2d0dfd80ff4521cf42deb40341f1709d19cf08be4863ec8310aca044656d7c1f02995361d88d882c436b92c272a9ced436f1ba2d4d32261d199d15dc57c480f5cb3d06604d3a7eb07a", + "997bb36be9efc553588e15beb528d25f26e38eeaf57ff5529d8c95056db4c82fd2b87b9d00eb0b4da2cc6f8345c7b78205732604aeae51f007cf1a03e5f65a1a7bf13088277e10deb69824f01f7a22b3f2dac68c7733147d3a632d58ac2c730515c53f3a584c9e72937ac0b7f5419cadd86ff4983ed5ddcdb4fa44aeec43de504541d942ded64817f68621faabaf29afb2d95d682605e1e61829eff8f7be785bfee8a1dba7940dd3670262a860a91231fe0f48df8b546c266a751aec4d34011637d678d35943f611dc12126fdd80b7de7835490021", + "126b7e4efdf6607f42967f1c58a2ce7d1897d140eca7cb1574fed58a21207e676d66babd21722906281a31af90b51def05c6d1fc33df6c62b54ab3ece6b1c56de1786ee19052bac8ea6083d40fa3c24d2c9c141d6f362d9ecf6831c00f45fd405b40dfec0cb435fa2e92670301e1b535cb4e26bbb5ad20d095a13e2da29b0b17dd365c23c9d7142713cd080a898c717d142c9101097a21f2c6b6bdc0f89e1d5393b753451a7777a4e54012585a06bfba80d3b8a6c80cdc83796488b32f0b21ddf058089c58f585f36b9346af1ed641", + "827e63a0a556296b2592c59fcfd6b80240b4ab118685fa0a27b97a10c70ebc8a843c25c70585e0ac14b5276f18bfe67bbd4efb766037fc20749b5d431a7a89012760520f14ec8a5f6c0011fc0d4ce453d80275f5247806527c4e05fa83b6ec1cb2945e04b9cf144ed5965fa95d06acf3e716f8f00eb46c8cf96bfb424b4285dbe8fc7651ec54c02dba7b4348f553befa4463f7f69954eed1dadc715165754bfd4a319d096df782354a69de4f8b516ba74edac2a6a29aba7b6228f0e673c215176c92984538a700c192ac1f8c14be07459219fc1219" + }, + { /* i=2324 cDividendBits=2036 cDivisorBits=340 */ + "0b4ddaeebe1f5796b8d810bb39ff4ae9abf50273b6dedf89c09347f602d6e42cb5d19f5d54bf6140028b973771ccacf10c8c3049bd3ea82fafa3b933d1a46350e6ed72be6deb1a8b57c352daf8ad25844a7d9e9a45a07ed541bde531e9fdfa13cb397ae946d47803caefa3d5777bad34c72db9cfdc5107e5d16eb4809bef8820a4a3de7598aa25562f0f1f07602d58305e4561f6f6a98959dffca4fa89bff51a8b0b0fd0e0ae5228283ba8f54ad76bfcc3a3c2cf8d43d6c2b68e84de8ee6720e54ace8efaa2590167685d4407fa50451a808c17e7a5324241cdd5df4e73884705a71f9545d6f241a9cbe374c4fab567c36985343c7561de3d0846dcb071072", + "044ffabdb790a2e12892a569d179dc6af2702ff20aa4476a7e21c43bce1bc11f6e3b616a98969be18e338f", + "029f0d26e5d4bf799bedc0a2d67274caebd377b05b91297286fd9a274b4a578e9c18a68b1d30c09c629163bdd8ee0550d51e6393ef00a66114d961ceecba46f8b79fd90a80d2e82af9ea8b5dfbda2acbbad0d915e32a11c889d9877a0f39bf234da4c8f25ee7db818cce1bdee7220e35a568382bd71aa693b0ff1c4d7331dd5fec83045d601d698d9b2ced5afdc4fbb9feba7f482def495aab8c3e147313af83aa6f12c2b5d88ace92126892b408a28054b7f9c1b62b21098ed0c28bb011f791b65f85af6657391034998bb5949cdec32369804f02", + "a33d53992e847c2c615cba8834613fd9700697b6710e0c089f51f9c1f55d8ea56eddb8f828ceb7818854" + }, + { /* i=2325 cDividendBits=2305 cDivisorBits=1037 */ + "0191c1d256d62b8dbaa72c3c40f57b13f1bba73444d0b609ec334f5e479a5175854403a52fb40de75a1b8e168a2b09976540f0fea6c6f96b5197b3b95621bacc46c21f65906517d6919bc467c8b2ebf7d75468ed1a4d90608305b12feb084690733c1922d562e5d34cc876a336ea1c447267fd99bff28f2d0b963296f8514828202ff537d1f87a4fc8254e3ad2a259b83b4252be1a6c6ea475f7353c747a9c105eb3b323309e94b5f7920fe4a57da9e29d3ccd236d18d3b94234b401b820a37a1fe4237f8839740ad2f147fc9a92ec22c363f3691858f96a12d48d291041cd2230090e5dd8a54baac2ca34a08435565c9a87e9c5b42cadfd401edbda20a0647b460e8956a0a9428f824e03e1b7b413cc1eaed5c4e7e5a97ca0b95a6c9283371c85", + "0b063bd8debeb0e59c399d48914cb323d33ccc5502625f6048e005ca551c8314a0c49b889ce37ac71b6b861a5274b5b31e3f2f50ef6792e8fb2b177b9bb73014c21f80d3c21508d317dcee4ede046a34a177e109bfd9a111c64c9a37a94663cadb516da291a39da4095952fc6a06d1de4613d14aa736025a2c2e680312cb870530dc", + "247154d9cdd47fb1c99de75661beb8412e4d95d493c4d53efec74596e858af63ee495cc3941ea0093af400eb93f81587832f5bd368ff3f3da6b1567d401164097ee169bb097121e62e3d67501341927d3228c86d6df8978728ab72bcf1b4227514aa06db19c1bb3db810383c79277e62216f4778d699078b7271e1774863f0d8bd3ed0b54f9b0cd28e3b3d4ff2aee1cb397927b724afc849b6f882b85393b2", + "c4da0749edfee422996147fda1da8c27fc4aa17a9176b22194d313dab52f9734fea498e5d04debd92996e20ac3c436e27a29f5aa911ccf111527e5c9e50c2b3e98a18447c51ed03a204b21b0302ac7dd40fb186cff157e68bf272ff9dab7213cdba0ee876b11b59bd1b6a388844977c80e3835c3a9706e717a32040b01af38cf8d" + }, + { /* i=2326 cDividendBits=2657 cDivisorBits=2249 */ + "391e0c9597844c5801b808a2c49e0b53d9073015520018a782064751ff20219b44bf520b0c0d4dd4db8e9685d85c5375e9127167d3701958134e13626c18f6f672e3c633b28240060407f4b60053db5e43564676ffed1b255dc039f1349b7852b80d2fcd418ff2496a1893ea1cae3cebdf3634494461d7627332ba67b822991574525eccfcf74442e2088abdeb3f6f9402ef7963ebede1c891e405694d6a5642071bf684934abd918d67b0e994fbbd891d90900bc8dfda6ae13f15bce36050ea5b3442bfc0f35b061f11c93254f756b6c67cea922a6177a370ef9cda9b25f3609abff3c9576af5e60b82420baefd269f8ff196226184f44a909d3c0ecc2ba3cbe7a9aaae54a6f6e4fffcceff8904c322bed53269e6d170599fced0adc82941fcc745215eccca7854753568d005f4edeb7024b26ea8ca7eb0bb78016a1d4cf14754e25eef1ec6c462d5de5910", + "014485edc7da5084d93032bdd3a6a2c424b32172c53a16df4d51ce846a85757b5c73b8948e57514e8c921925dc159da428712fdd8df83f7b87317e79cc8d2eb22e46bcf93302cc67296f50521dee4d1033a0ed1467f3255503f8331c0246d5d99ccf3d5fa7aef8b922b37c7b18f0cd1e8a04d5d67eb20d12852beb34dc838bf1af9c55ea1a1aded2f3cca2599e086820ae6e50f90ada0a99aa1400819116705f0a6a04ecfc89ae833ee4dfda5c7e62fc0ca17b1d92e9783945c210d2217622a6a635fd4033b0cb2963077eb4a148a8bb65b3945c06c997cbffdb66a438eb87e41b06c28661d77fc014aa0a20efd5de199e6585d04b708e6401986caa9de399e2c2c55d2c920daf8e77ea9c305e8e9ca907f12dd2bf7d5915a842", + "2d0e9966e09da384e8960458f541e31857995507a7cd253e4549ab4852e3ec98f3cec493e3c32ded5fc413f8b10cf2b23c5cc5", + "6ad2480800fc74e554dc61870d6326f92370f173adb5be636c94da99f6dfdb6b363d06b4ef206bdc9a1b50086bd046e5489c0b0b5112a59f5bf5db64ace674658c4691ea3d1a6455b537af687e96a3541584e4a403252689abbbf448e8174329b5985d2ad6efc1d9ec4bbd085407ea1bdbd10cb1428b41447d3a4bd9f3fb2e4b7d8e8e3b2a74dbf618561b67ad60857d9bdfce081fb3d29ae22650cbfde78c979ad976082b1661a7cd187a7b85c033202569a407fb40f18993e48b49ecd6c616e976a1a395d5a9ae98c4a67c0d6e57802a5da842f40b6c1f8ec9ff69f359c8599a49189030f1d84966e4aaa33a1f959916816b3a6a0423de3c735914f0f9a42abe286aa974983f2f3af4b4e1d2b77ad2ca957846742c442646" + }, + { /* i=2327 cDividendBits=1647 cDivisorBits=1407 */ + "6a56585719fbca05e919a08836c108239d79338c6ad54f479aec6afe25d4feddc7761fd431e39423e63d72fdb955639ec1b59a3b83721f0140666569a167e2ad0a3ccef0e61177c688913a14800a7714cf235e08d27b3b1dbb812af5b0ea796b59435d7efce6dfc9de9243d51cee93c1077470822c8f8677e6901d5a333fd070e88f01e960dfdbe2be4103d5c524c68942db9ded7fd9552840514036793f87e273788400a9273ebd3a64b58601e63f461e1c055a06cf7cd980974bd91f916af30ca64e2634709a415f1b7c554ce8", + "43f3979a3239dafefff962652f6992eb643d149f8303b34fe4d233e8a91c1d3f26099ff8692c8b0d0f049cbb09d63ecd542013034a4a417a19dfb536840225858f1818e9b681977248593d436b40faf812d6e0536b6b346c41025896ce04a468bacb9841f3211c9fda2f7cd0237a29dde5d6ee323f3aa0a15141ea0fd0240fdab9161e42def050cad2f46cbf3bfb38063906e23d84b98ebd0b3696a296ffd74b2e9d11bcc08e9e3fc9c499303b9a4f9e", + "01909d38c75478dcb2d8787cfcd484629d4c60ecfc3b6824ec3781acef4948", + "0a45841eac134a2d59b961d377f969fce1d8382fc0b69e21dfc5280f4a4e4a4080cb2fb19ddda1b83c13b58d6cd5d6310adabf17b6adf1fb7d1350407bc01d68e6fc75d15548f5d1391a52faefbc1b5c1cde0a839bf453b6647b62f08207ec86e568bf43d5f19646a9621a6839ae8b95a4240eef6b8aea62c7935380e417c0ef8b59b92b40eaf2eb2bb58507d75e30df41611f9417b7fa24e44636fcb11ce4d59a148208296716bf91af255f3bb8da78" + }, + { /* i=2328 cDividendBits=1927 cDivisorBits=1603 */ + "300de6c70fc6295b7e918992c476b7900d61b4397987c1e17390f0f89ffc8f825019090d292ab58993b769ab149562cab2966d129d643ae767c1558d35e46b97226aaadd286e8df41a7884b0a36191f57b5dcc24402ef5b0e0a358f9e9e40363760247c7f5be5457859aa81fb20f5eddbd5b50702ed0e54f61ef5079edb8f16f68088943901b22f4edf8dcf5fbbb098b89cf95d91095fe892173e02535d3b38d0c481246c007265f41aec7efe60ad505c8e2ffed9ac9edad79dd343bbd3f9d9d3dea2c0d61526457b4e90af9c856be35134dea99f636122b197a902e1b7034b9d5c2e6d9256eb3dc393fb1b55c511f89cf", + "0475808bfc8838ce69a2335abcf585889ed0c8fee87d87ea5dd4814ee6cc295466df585276bfb352c23b0532cacb7c4a087bdca4f3a6c2e7ed950c49e2dca3f543494d30963de4b2c273bb6279b904b5da527207678c8eb7c39d7d7d07ea8a5f999f95c7b627dfa4863b4f5898bb163dd122b622f0d8e8544742f4e819d800554258ee9f139e2476f9c59aabbf14788f84f7dbe49f02197bbabbe2ccb0c60ace92e61a51753a1ceacab6af6b5503678c9583f3df8f3afb680aa318a09f6e05e523d637e98ac8ad9638", + "0ac6e59f705fa6572161205d804238c291b9d5329a0038b8de3a11666377e2621925f9b2abc754ebfd", + "03225313425e5c24787749b63b3ac7e0bedd2b5efc8361038991b038b7a8678cf1a5734e5e9ea416ae319a1019e7ddaa48a336d3e34ab1028922a6f96d70a6fe8f569292eb5d929e83ddb64371a05bdd652c2a5e012e7f2bca58f54f9e113a56c7d64748da9bb4ff16f9a822ff79a025d760757f180a8615c1db6d74c27679ad7576c6cc5fc30f9a44181a3fc4883c39535651e23f4cf05f77f5793802ae244438e2d83cd53328b46f31c1f3ba7073aecef3f409dff23e7ba43ed476675da1df03c0a670d9d24cac77" + }, + { /* i=2329 cDividendBits=3063 cDivisorBits=850 */ + "6c860260acfc6c72411c31af7f40a7ecadee40c551124e11863eed9d2c3159e66705cd0ea8f932e139332685b20c9821c855ac52bf55bb47e161cf0c6e2a26de981458682388278c54931b51ab0d7ba64ae5fa5de7538f0bbb765ccb16239cc4cc9fceb3933ba2d4e47f7082e7b3de4375f69bc1d40e9573925d4333f6561884d8d0b8a4516e7b00bcb1b58e5fc6a6c668043bcbfe004a31dde809239e80ba16f9016e29b76e299f87095ae3601d027c7ad357d368777c0b10772f8f3eb04f7d1dad9d657d3f73ace4d13ef1aa587b46aad36fc5149ddfef2de386a5599bfa719eccccf478bb385d0f8d56423b07ead8f70005751962119a02c41a0755e6b8d5540ff51edb82c9fae1d910a775f9a70cba0cae2b84eaf769e46f05628b6abb077d0e8c59ee3b8f8ad9c9a7dfb3590611061f1f6ca5541004084ef671f84c1ca630b0e4606e5da992251fdca008ace8c9d018a122d7eeb03594bcc30f6114999e30725cd149c73a16539f3d1147f11713769656642b591fa100b2f274e46300", + "a4d7997bc1078eff5ae401056bb5729cfc5bd15abfd14b3f46e3673c15ded7688ede89ee6f180835a374f70ec87625745f8891a956d1d80298e322fc4d6b34b839b14cb339a7b3a530705f4f369f1458443898fa28d6e09e496b3b8e974c1b796b93b0521b565fa51559", + "a889798f874641b241fb1fd7c7901b3f6603904fb9662066b49c526e445ea25b2889787b9664b6f70fb0abeaa2c5d96ec69fa762a9f701f386c5d93f3e958ed64bbce3e5c018385ca4fb17b9a81ba728bd8b465aff21d9c701a47daf79a4f73265f56accf0bb55b2bb2ee8a5319a51b94dfede3fa94a8e0fc03fb5a68dcfa6e4384fa0309b46a7d1a4eba9c0bb99e0fab9a494e00d9160d0125e7aba292ce0be07d08b4cdf7da766bf503598c85093f786507eab7ff64325e1164141f65de773866b6b9d9dd7bfcbab0c48d457e3cc161703bf25ee9cc39f885f572e13f8bc84be614b49284cfe352fe8ad2b77beec360d40962abdeabbab07eebab9f1b4e2688e554b1934b9ebaf01f4dbc70ee3a4254132d14efa", + "18a50c77ffe2e27be94209e743b077dc15d72b277eae7b99e57b9a05978dfd4d4ea1e6ef8dabe52ccfd7e425e38800b0a02bc8a6afbee84ed292eedb4f425f211bb1cf17389f5608c8071377200611684d556a0d2f3018325b975e8c5ab0821ae07e7f4712e9f1836c16" + }, + { /* i=2330 cDividendBits=1075 cDivisorBits=776 */ + "078e1f58170834bbcdf52fbd8a1fbeecd0c5c269600650a45b4fa016e625f575a51288904df15d028935ba44897aacc63e8fd6dfb322248e9102e133572b558cd8eaed065d3943d8008a813fc9dcd3609a78ebedf2722923530495ef48186fae911522260de5fe3812dd29316cba99d8fe472b9524e269f7286107f9986568cbf018e0af6f142d", + "111450acdcde7a71c37f6bb22799bdccd9a1c92d775878dfa101bbba8212284ff377e3d3e2f464ca44847ccd7394ac9842f05c631ea5ffcab86a16078ab8235c63910687103bdd53921392d324c2df42a083481a261d7280c26b22e51e2a6fc0a8", + "713e4825ff86dc7164e98c9e66210414a029980c1af5a7e01dd4392ba75291f1f5e05e47ac35", + "082fe00c3ac02d8080de378dfa97972de233e16f2bb4ac766c78da4a6f405c481fce8e3fbd386b4b6773c0f3fee5a0fbdb2fd8d5f26abb8169880411418aecf002e40c253e05c769ee692a1f4c1e40f60d28a023e8ab2fb038f1823c62b2435165" + }, + { /* i=2331 cDividendBits=3880 cDivisorBits=2372 */ + "dfc92231bd09ac427e4b79c9d7448385e7067f95059f6b747fc5e3e62bdb5e116a22ba89e083a0ff221a9f0ddca91991cabcf0a9eea79c8af0a11151cabb5e7766c8833bc529c4724cc6f345142427f6935595166cf71d432bf8221de34aa78dfb9b51ca6add5cdaae74a493639f3b4301b5466da07e1231468cc348699363f259e0083979a3a813469a46ac201888a682d24598e0e637dcd9dba36da418cde36fc55ff9e7072feb1a1edb4c8ec253794f6aa6861144d94ca69e30a72fd3597834e15685f482d13ac19cfa81578f306444355ff76b9569809308bf93c8361d0784627cd7f135f101a997cba31a6c3b19f00ab81420337ddfa8d08c9b4fe81d9abc97d24308ec3c6f112d8aa163fa64aed8b8b46473dfa3942b364a7a18559eaba5e82a5eac08c357f1e4f2a369c9ae2ea8773c69847c05b55d4bc21d26e2a8cadac09582156337cb8a4cd4c1976f9aac5eccfd7b30f9b4d774102c375690b83423843164b9dc69ad16112b0f9fce82c7d30090d05fd5c9c672290ef46c7daa024d6aa20d1ec96ac905d7becba295e558b77a3f05a601eb4b75978034502f470cde83def229e28db5931fd48c32e9e30a1d2a7245d2dcc84d911126458add49928b5f2a39a37611f9067d4475834ee2361bc8c3cce3cac9bc928ef520c106285a2e165114a0", + "0ef2fb32ab5a29b0fdfc683e7129558bba50244848aacac9c45721ca60bc2c8c3690b31a670f105d378e71b56701d7c3c3501bf9e0f709e7c7d3583456cd1d0de809e112b94ed1b270d9b309141d3dca67a62c847da731d282e8177a069940bb2fd5bac08d4686fc255684f70f180049bbcffb7a494bbe5674bc16268958a7881d85c0d955626db20e0ec069d1dc1de988f0cf08cb490539014d6a32fcce56057cdb543abd5c76b4a066222ded8b891843f453213398f04f06b9fae67e37c53ec8f8d8a9d10cc66b8fd1846e5eedbce7dbc5a13c1af1a7bb68de00486a4fec3e70ee507ca05f15e5de1bfbf7104f87936a1dd812e3a14fa71898ed21382f9519e722a06acf4c0734054da1910554e2eca1aae6173cce714c7a5f0b71d82ca086249fabe523b65082e3", + "0ef844a341dedad67b08da8fe4ccde0a98b4715b531b844d0e30b2ff471653a4c51c39c0c3154a7a854198bf3a33badc7b9688779925bdc8dfed925d0a1a6027e68c9715cbfcaac1752472c849e500c44ac77a0d16ba2e08e4fea0b80c33e6892166961cd01ac803316f74305f09714380d351be1ff4c29c9587ba25dc13ac61bb971207ac4c839d9de3901463ff1b1f7a20293730bec14f565c74662ffae32b3dab0b9ce809b41dead1b01c39b20ae4bd527bbf8b100756fca3384047", + "092d07c3ac7d855d3cf55422a36cafb8d0acfd1d9352b38bfe1e3c6d17792ae16637c822e8bcc8e27a6330b75c4134f2c4adbb1933ece3d5f66f428f9ceb0552d12a2aaec1907b184673db33cd6554bd2a5fb457487cc6b77e5576efb55d9d6ff5381f4c24708e3715086070c594f003ce69459aa1b01ee0d702f7141f58450a0d90b626dceddbdd8de950f143907ce2ecee6774d964b404cd089cf5dd68262b017e8576c7fcd7002ab83b113e718642e7258a0da87dca16bbee607a5fe537faa5f20749ed339fe4a205669e8b29f6a99620f3c878ec8d530a3741beb0a4ddcda07804307c79e3e28b85aa5f622a7c04084d205fffc0a5588b3f7f4e7f3259e6b769c86f5e030fe709f30e5455ecf7f6700b7fd6b1e24afe337aa9709c4f3b63249fdfa14b3a9c07ab" + }, + { /* i=2332 cDividendBits=1338 cDivisorBits=743 */ + "034ad0651db3ea2576f469bf3ed3358e817f2792a8483d1f3e7e6fbefbe464d17ff792757545368947065cce03c245ce377f32753b3564b1e475dce09b9b734fb6eacac817e81ef891ac24c0fb10e3c23537e7b9927c84fb1959154adbf234ab090710dcbc8d799b537d3437a30a021c06a9b976f3fda721fca8c557207d05b0b4a991553259e51853a458f7f74046b9865e203f07daed1c5517939f79ed44f7d6f7393a77c74b21", + "1257bcbb9521b6891c8d9e2d282fa9ea2912a4cd3cfcfe601a5cc3143dd377bb7241860c011211b93eda69c2f91843484a14a63ddcc5dc7217001228954ec5c37df5ac58c246795903c71bffdd913f393fea3884e4828d1e5d1c1ad34e", + "2df2b9584e5f89d1e14cc78e9bb7b12bae0c006b93502920dc5547683a6f10e682590e75629041ca3c6658d81c2ff906ddbc8fe4af55baacff6485c09b349e108deddab4f06c8533067634", + "cbba43f1914eaf3033fe884f6ae5bebb11410ea95f2d0ef8050ebbe6eeb1e71ce40efac751c0901897db00c47ef96371ca6c276d3baa5af1f2d745cc7bb19a2de35ba5dbe4fea9fa1f6d51543b3a3501e4395ba52751731ce71a6b49" + }, + { /* i=2333 cDividendBits=2039 cDivisorBits=1100 */ + "33493a44022a610671e3630fe18438e758359cd6330fb67145c9909e9a7f0705c9e4f987b5c2014655b7b5f8d1f24f6732eb4c821938e4af70fae4767485f36aa7f107641652f35a8ac6ff425f6529ee620b5fec425360142fbe33feb5720fba21da12dfa6b21db05fdb932dc70536c48edee0d2d41eedbef0e730a127aba98c3b5c26014bced307f883aef3dbdfd45a71dc511bfcb281b62cc6411a93e73ff439ee48598c3aa9479126bcf8c6030f718329548f9b070ad58efc32e4e38e07dad48dbccf834bcf97ab1913d916f6c7c8849db3f75008662ba457ded47da672c4d78983122affce946409e1978a0fcc8cb2cdde3e167c088c218d3b14a93399", + "0e8687a112cee47fe81ac0bc0033a0f870796509a13a92fad8322dbdb89f70a140ea382e944bf4e0f04a9efdec6269e5dad8ce6b667bb5433b9c9a8583e7abbc3bef953914859754a9da4e221c930f21c8fcd2c14ff461874b2ece3ffffca111f45b0510a7d6145c7bc9a70dd2afe6ad63266530bb0cab2da936c4d12acc0a56022d12d6c5a3d9e91c07", + "0387dfbbfe576e6ff8552a3fa91a8f03bd3962da4008d99298ab2a56e9b1f5e223b4dae4a7416b99ec72d2954c3ffaea1b5bbc3db55b9b9bd75281626a80f3189e01e3ea4a29f17019c527e79be71d820cbc4bd626610d4780ee53fe5834cacf85714936f93f8c14423b88ba99b2db13b1b1159cab0e", + "06f45e679ef89c7bc4fbf13b6d84a221194ec7df1b947cd1c6d38b6720cd59cf14aefd0bf45cfe9696f68225caac67ffaa1be5e9d8a1158f7689d9af010197062403f2234403d9d9c3aa2305206d9fc459b64027be8f7f945746c1fd3884e32a2944c1323d8fc96c7077ae8eb22e25496627fb2679b98ce8e10d7a4a3df9ed46f5cc45932a85ccecfe37" + }, + { /* i=2334 cDividendBits=2712 cDivisorBits=2224 */ + "ee47c18616fd0f2de259145e043b0da29ccbc095fa38fced85c7dc53cf712d622babb5460f9c7fac222b8996181c73f817463fcce662e57ae650b2862c52334474cbcb5667625739d7a3397b2719dd1d4d513fc38624177f6e926592eba80d0df3e1a49bb09e534ab0e64ce3126ebebb61101911d5f3fb24fa99c3cd2b566bc265de1967b1db5c315d30202f9e996a1f8f1d202e320ae022d42985c88775edecdf0e800b0f4dd609bb60c2f64273f2107b2ec45ef64dd8a912ba5a61441ba696f98562725d095e33150bab910d1f09b50f23e34d8e594ff8b197a3a6770c4446c49122d3352305e75dc97de9e458a38cd02495c8a20075310d8be73be81a77fcd8437ab58f6e7e43022279c313d121112d6426c4d2e799703ebe4615cab27bc9ca3ad79a67941c2a8b0a956ddd43b4ef6ea29ba7a683e18c02431292a0dba8bbfbfc766400c045a839a7ed653407a8ef54c8ee", + "1c4f4b288e0cc9a03b273d72f8eafd2bc2b409a79a361a6425e810b988d856c98946b96f0e7b3b2d1327fcb1683239035aa05bad2713aba966786f2d2b60f9771450b9275eca41f0d16ed5cf821a41fcbb737672a2aff9d68a9580e5be74bd4324f76a8372c26bfb1d87153fbbb633acf1ba4611be3afd9794ac826a04aa57aad60267824a2a24b7decb2acd262a39a2136820cd7e915d71df16a8c2806eb602a79d738209b4052082b0a45e79dc14c0ce508daf5b05e2a1601e7ed8d9dd529b6413aba491e337ca5b4136b02e8c0c6560e1cd8ece5a022300656ad8932a5497c15711af49bdd63fb8560e02bc573f88ad1005d0003fde8c2665784ce9e8be8f2d417f11420ab2249f0d92482f757eedc15d39c8d334", + "086aba0dc8f90c3c639f78d0df626fdf3ebc02d9ed083c579377d713a4a7f645528b34086414ee7d68a6e99f2b801fb1ef3caec5bd203f8b073afdf4470c", + "0bd2bce840b53bcd5cfe53a238ebd56767f2f675a6e4139840c44cf16dabaf815850c858880330fad1b15eee87a296dc5e055ba7df481c975c1966cec69d72bb3f13ba9fab9b2a5244f5818a4aff6d1dc9c2df613dd65e66d9e487573992c4ce211ba9c1c3e215a2f4310c182d2326cd8ec44bb03723e6b72325e1b6406ffe7eeba08bb5d5725beb4609b643882c936891718fb20710fc54d10e55f1a2151d0d678cc9dd27f8515e8096fcff9d7fbdebfb6367ea6ee1854c533f49b2d6408405d7210b74b409032b4e28571428fba53ec57656c1df9c29e1410b7e097b1447da6cdbb66858227f63a23cf21cad7b717b5b6fabe98028cd77e8a1c71db181cd066bf99ff56d81284b5cfee035f34a03f54a57d5c7767e" + }, + { /* i=2335 cDividendBits=3626 cDivisorBits=439 */ + "c073afdc8a8c1987c8a0a97548917b9fb59e452dc4b5fabd5f62a8d6d9675ef0deb26134a5ab6448efeb1d3357eaca09c14b67fa66f0d373496cde323d1bb8a45f1e7ef6a17dce71e78db87562cd36a906b1400ad43cd88c1c3b29c8dc547d2e820dc75358888a0747c82986c952797eadb58c7cf1b7b40f9c6bca174951b64ba40824542aab42715af4868ee2b218703e585b9785a6dcc972836a38d90d7f325917a8b8721dea4ef57dd543402043737e099d9aa7099f9b2e3137cd549a77d45a6eeb6f9caf2d77ab714e65b1461a3bf83017bd79e04741000867f19e2ca5e2b63fde31f1cbdaec28bafc8045af432a67c97cff2d2010dabb52af54de2cb5bdd068f1d7c348eccb1ac3a1526badd8a750eda1ac19d91041eeb3197aa5a376609677ddd788dcf14c13084b9e8e0aa520c76581ebe5a47f9528fb9181f4c6937a467d2a9c45d7547f6781a0f1b5e2b66596b3f50db9a51c28ef6d79eb621940e5d7aa3a0410de11afb41678ee810a97657578d2a4d2ed64dfb04e99246cc0ffb2a5d83b11ad527f34280bea6b870a1bed68f089c5063c1bf393106e2346549787cfe1d430c9e4a6d360ff52b415e1af00f83a2f242a9a6718fd941d663f6f9370ce078f5d92", + "691ebf90440a8385fd8a3ced0b7b8b42d15914dcaad598e76fa80ff1cc7ee63713d12a9ab386dc8f8abdf9c85787939146ba948da1f5e7", + "01d4ae10768d25757a4c9afba7772cf91d4cfb5f3de177179b1f4a902470672494e56105cec5ba84a4e9ae33a03abfdc5cd2473331732d57b6786441f6a27b64df6c463acabb1506330cf030e5774c3758f8a230704500003b26390bc0060c50ee159b07d57580a59b50c8487cfe4dbfc9f87f817164e582f6080e5710d86547f86047516dbf9921010d3bc1b1aff0ae6d4fb090701f8ac0607ff31c01fea27b570e3a5376f6fc5fb89387b7937d5951a011e522d7672ccceba26d91b740abe926e700350accaba415931112797ffc73c5aaadcb362025afe721151c61fdcaab7946cd47014d42518cf5e329532653d218d03fb5113fd162d4368f88b7923c14be04e1e09beae95014f993b502bb6363bf9cc0076f482f47c6ebda8af7a837dbf8c2313871baead6a60eb20c29816e03ab036bd90a58000ad27ddbb19b4204aaaca81797c2d08ae8322783b98e3fc672080b43e22f2bc8a883cfaa4f7ee31e05bb7927911e5b6b13f142659e4ed820ca1f493c5990b6b3ac3bda8e01c39223103618f970148067d1ee6e7b16bacd8c", + "4453dc099a76021f5744e1b5a51f2fd289210cff4489d47f9bef4ddf2066eaf25c7becc171d7437bf6a4cd90eca4492d25375a5d3ce83e" + }, + { /* i=2336 cDividendBits=3051 cDivisorBits=1989 */ + "06018de9a7748c3c1de05588cdf0bacd05db65fa8cd6f098cbb4172a5384f93fff4cb2af86d0306b4af1ef065b76476abea4df90d0ad32f4c2edfb30b1c1850e5636704cc9bfd643b8a99f65e22273bacf2dde7a376a9cd36429216f42b0ac454f1c2f73c95cd66f45226ccef4aa86f67f3bc81f9e1fe80d996a5074a01e46577b07bc269fb59a9738be8cf30bad6ea5432054d57083910bd1572bd55617b01ce77c96dcfc3f521276908a33995743c8802fa2b3c8185e51eedaa455fc99c45c09fc229f8c937c2d591d097d060d6c2343c8441e99bc3cdb1a3bd46a086df63c6cc012bb824d3ebb47ae607b09136e7741599b76a2d709fd13c9f7f769e2332587543925b1d3a862263ee089e9adceff73ec5b1dac667342f79e0f610ce3491550299c0f3066dfb7409561f8603bae051a158b1f06ea105f8efab0350caaeb72a802192e9440dcf82af10d4ecbf609283054fc329c1ed3b6f2b005fed645bfb0a3d4bc536171849157c34e2f2a859c6a81ff7a785688977e0e8d4b828383", + "1470cd1ede5aa79d0a028dd8df4e75969dda652e9c67cf2ba20c82bfa50a0efec3141bd142a6560b88077bcb2e17eb9a021314c28e056d5cabf856c12ddfc5a4db44fe6cd5d3f49ad286781ac54fe4ca7821466d61f799c72b09b016b2fd5aebcaf52ff6a91567cc5fcfaacb8f8f1e7f2a4a9eb784e2e45f29e44eebb23635a4e790b5538c1c35ed2b999cfd062d7179b6f1ae65593e0e15784df26878b2d29e00b5ce457f2ccb0559467a7f8a215dfad856ce305c412b604554a6aff7536253fc3f683631538116cd84a274cbd15b6198e21d9ec1c6780c3f2297bd3017d001235feca2cba3472fa0ab4854d601170b007a61c7d30a145525", + "4b3872839c7bfe25a7f772ff5904ad2bb4afaa1bebbdee5e1c2315691c6a19cfea513529b0df91084b1a0d99827e78eb8e7632e08135ef674e7173dfba3e02184dea3f6a329aee98bf91289cf7305d5f9fbe1a8d68a01fd2ca3a199f4ddd8de38d3f1a1b679651777df27f7e5fc501c0837e6448fc73b1d25b219e9a5d8caf71172df38e07", + "0f5e0d47736b43b7b653247329f447f6d17420d1d8b97b5cf7c985ac7539bd16620f66fc8c9c07814a1ac9d06390a0ef4fd1a944a3baa9c71ddf86698f63a395c45588167a5599fc34ab38fce2a0c2c5fda2fd62fa9c0d2cd8e3bf782b7b9f5174ef0a24359e062cfac78c5ef061bc455766df623918d8715db6d7d01cfaf875b4206ba1335395833f1b7b4a674b34466acd3fad9627f941aa45b7bf92afb47afe1bfa188a31ab292c9a51b70974bc75abac54830ef283fe5cb5df3e71a50fde9c33489bf6406975b903ea204bd3f61110d50122913ca5e6e939697cdb3cf24acfe4903a78a9c61e280af00f24c2901c61ea2e68996a9aa980" + }, + { /* i=2337 cDividendBits=3550 cDivisorBits=3442 */ + "3c370f67ae865c3003a9e3ea4e4a592dffc3c951171534da6dafcd7d5bfb86d84e678d4b592a2f13c345a0aca63b3f0c11ed9d7dc60b91413fa76581fc9dd05e57e2e75abf8d13982421fff9f3231721c43777c6c4f3dba4bf42e5c98b0d025cebda72098ad6814ddaf43452deb289e016122da827bc48f755f9171e2dd603bc3d70931c17f3f7df0f7f3f9b32b3821941d489f01619bc013befcbdf818d55226dac3495fe11be80a83b193ff9d02aa372e4ab0ad383cef3c383c96b13eed66143899ad674ac6d5c05377b53fc68a1f5b602defb0f50cefeb1ce2e006b75746db63fe17195bbcda17c5db2bf602c96e1d0e8f47a515f8c99c368d22574f19506ac9f0f6ec64f9c2138cf4fea95a73c1215c05f71cdfff37258c11f52aae4e580484209c45be214cf54da71102cce7bc64942f8e31fa4f4a375ea7b450ba68b26b2cecfae09b07e590a80a43c9536a2187c3eb4a67afddddeb042c0bf900e1cd39509d3af4fc262ff988c8e149e3eb3e01376b8e91a7b935b1d066a26b5869227d9ee0ff2916f401a385943c39a088f0cecf45255400d7a3f0d78f11b0a9489ef9045beabae8a68228dabcfce7369b963a2d045da6c993df5c3764986", + "0c5f2cbed0874a1450d38742fee3530d98045bdf968e1846b89a94f23cd4e171e535a09dce3e6d56b1dbf93128af21d09b9447627b12bb9be4fd11fb4566b45cf0a5aaef560c7d363707fa5ff8bccc7a09dad906f6d7879c381dde29621c3b37fe0ed7cacec92b34064291474f5c6e7325580a8a4f782692015df9d7ddbfeb0579b9b146beea10ea6dc053a511628e3eecc3df304a5f9c1e27265168337ad819a9b0c85d84774dfe1a439ebe783cfda6951b8ad71c85cd7baae5009ab8a411dfb4c326c6bdf30796f1c5f1537977604f5a02bfd4b8f7c8737fd66ff3423d995a55338de7686818bb69873a6d8d3e4810355930c86419edbf2d267e7252f8030b7fc859a5cec778c89fcdb19de2887789473e66f6eee7685f1215f1e64a83b911d35f1ec766e01f812073331496397093a4a6c11c4a89d783816fc92640f1b29ed64266132e1a5b86f192da3426f8617ff496302c52a33d336d7fa82eb3b618f3676ba6f96c71d2d3a9979d64cfff42ccefd3e944d096eb661f1c260f9ae302e122214d0392723e4b1345e74c4322a77ae057d25851d9f8dfcffcf16b27e013e6e6214ce93d4fa8d9b5b91ed7af64", + "04ddfc69b23eb44e40e458b48c2bca", + "0b1a9963e1bd28240f12ae52a28a0c92215898cb7a55a09c07719bdd1e93184ecfffd096f1d886d0e0205944b101d003cffbe4607f38ec36d95a2449477fca91fae6de3126f975cde1319e50fc77d82f923a7664308995df884a29d59b232089a3cef5a9637d00f315dc2cdf7f7e584dace1a667942251e6035e7fcc58bcbb3acd1c8599d20232ef710c04d3e2cd222069e8241aaee29bc445add9660fe7786337d9d52315dd5d1c17fb83c1ccdd9a452dbc82fb8bb2ba8d07f47a18b7eca9c88b222455e98e447816361aae2291cfaab57cf282adb7afa627a0ae814c43be74107a8df0aa1cbd54c04aa8d00ab9b523091e9c53a64e25d7f770d72c8493dceffadb6ff0968b349462685618652ed1fe58c0e06560d238cf328cb51f473cdb3a978fda37e92967aae5224cd44480a2bec575fa07268e6313e7e420518312b5d2f2b7e79cb06e2ada5d630b33b3caaf541fc688bff8a0fc08e08be86eb2bda4dc9279b010483d9df5af16c3ab08c0089aa911bffdc6c2df809dc0efaca349bc99aa2d4eab64c4e9f10a97bfd7459aa364a300ee39f733d8f10dd1ab3a2397e6636bfe9129ca061103e20ef820189e" + }, + { /* i=2338 cDividendBits=3237 cDivisorBits=731 */ + "0c4908ce6ce53c66d3687eba41cd886f9999ea475e25e7636b4a0058c2864ce0a57f1f896b645673947e484a8baf0dcafbfb2c2f1fb1d1c2882edbad9c4f527d489eccbf0995664bf0e5eb67fe67bc426247064b46103a32bc46598db38ec6d8b0e0994cd08cf3eecf05a4cbab881c6ebe0d0cb62ed6a67e6defbdaddb090eaad38d5752fda069fa4642b92f732522c533011fa30e868b0ad914dd4ff870783b536b0cfdc9543e0262a337cfd350f8d3683ac6fbfa18be882d7152ccfcdd62b6f3b6d035946bcef5aa5479b9768318a262e5c55cbb5bd72a3b8cf89848722cb344f431c48d304c9c09402c0a8b5702e192774a6c51ee1a54e3c298226de2b2efeaefb23edad03f62bae8e53bbd698a62106ca1f761c521f71f931be6be18465ed37a474a5c3f6621f0869dd188c6801bfe61d7fd8b8044f3f2b1cea2c036b973ce1954c4964ea3fa15006f376d94ec397305fb72eb9268bbc6e6a1c25fede985e67936bc11cc1830dbab832d5a8113f33d47380cc684245042678745cbe70664a4c9272b283ffed9f64ce8a0aa4be983fbb424f83f", + "045018921b7c4e326e048f6dab916980c898e11fec3653baa4847970ed5a00986709a360dc773817e3cf4035f55a43e7400889a28db4b23b2e4098fc92c10f05ab368c69e24b9d7eda8ceb7303cd025934a5eef14f81cd0a64db9b6d", + "02d9384e2296d1aff74c3e89d0086c547c7fbfa2f794bb2c9f71dc02b78cec0f484981e4cc7685de196911ce453c6218f23ec6dc06b748075dfd8c0182dad7565f27695b82277a753dad4b6ef26e4bbb847f405035478eb5f7c3c2f09ec2e7ccdab3e232ee376ef0f67e397736d93f8a601f34eccc6c2e981b93045dcf28f04d0eb0520ccf58efefa686e4fb11147596d19a805df8559dd0648aacafb256f79e5a5b8b0a3aae11c88aba5b1a6bf030880b76c3a2a754d1e014bc18c4560f1a8b57dbb494322af45ebe8375ce421d8e4f55008d64e56539e00c1fe44d2d5cb8eed4354f8805263b94bc1d5fa464c513ff6f8aa05de4965d6dfba74297970a91d03d8a93d6c9fae8df8e194ae9a1af6b7cc3d6c7e307c91c87271a7aee3a4839b2446c2707e5b12b3ff4cb4c80f676ff69b58924871798d1767c49", + "0127614a70ee8cb43bc7018f8025ecbc371eb07f3465e602f4f39a09f7cda2feca68e23ea59a64ead732b4cdbab632d100f7900a2950e2c69d15ee76fe5dc255124ece5030cd990a9f6809627ba1ecc0be6fffe2d99d2854f0feda2a" + }, + { /* i=2339 cDividendBits=1046 cDivisorBits=114 */ + "29a52696fcc65da92e950d84d311210c56dbd8e06898d602278ba2393ec8cfaaf07b5dd47e308dbb0001b58071b51b3ff5374536eafc8227d3d10e3594672a2ee761c29bf3fad1f04c744fa7b686faa17c704b71a7b2d88238e99d21f4187eb8ac5da9a820aa7448a7627d8bbbef5c7aa0d4c3ed0b88c8ea5bfe26107bb6b444e6a84c", + "01b62a193a36c9fd1763dd49062b86", + "1854d613e662cb2d635d68d1fcc986c8c6b0262dba775f8ee54048a9bbe767ef94555de4240409aa1707a11e2a15bec99c14e3fb915520a0deec90947f1bc8695289753b1b091386748aa493cf2452ff7f604f3994829afb31abe6400bf14b7e004399d12055e31031ea09bf0b8de5a2d21f707506", + "0196bee7f0506f692b0b40783d6528" + }, + { /* i=2340 cDividendBits=3 cDivisorBits=1 */ + "07", + "01", + "07", + "00" + }, + { /* i=2341 cDividendBits=1774 cDivisorBits=662 */ + "3b7a7ea9e87746de6e5e4da3dde3b0918f37907241382e00f84a7f7a68ca7ba8e16deac8375c41e29906d549931ce02acf90a1e85cd4a6b12a06b1006814d34c3747c4650bc197229f4d9314ca3b79d720b1c01d947bc7d3da1af035539f7e19843d424574d5d9bac79b4c9642ee6a35a3bb57e6c52606e2da35d36deb1e6a26ce64cccccf51e3bb03ea6c8cd2739a51a20d1b7dc3870f5fcc69714f6755110b2e775e480da768754fc7c39cbdfcf9743fdbb2aa2482a3d04d869d04dc2fbb946b8e9446f9a74ca7e3933f97b0aae28bd05c36c1c32880536272f921c8a4", + "0cda13836d505935d47110f356a67316d9592a6180edf87445aba175618e263300c26e6b87082881a361f3914f896e0aa8225034a86a8fc455de3cea3a8c2a599cc763735355a906a359850ed1501c48ac9791", + "04a0c50be87d227a6fb4966dd0c8d89926ce8fe441fd8e0aeed721611e9a3b30a4ef101abf5ebfb34ed66597e65cf0cf2455a2b518630828182defe253e2a5ff554a89b43add93be4260271c1d00fb306a0ab21adbb910f28e14776e7ebe386d4d1f2215651df8951f15e35874d2cbe40fc5c7c511ac4af9c0d91eb400e3a113dcc62ca32116e578be292d8f", + "0596123ce2ceb985221bac43ce4ab959832c41a958e27e1d76154e9d26d310b06255ad95469d8ea850c7b1c840c57c0b6bdec72af3bb1b678971281cfbc3d8ec50965f8ededf3b36ccdf496fe92cc625dba1a5" + }, + { /* i=2342 cDividendBits=1970 cDivisorBits=1033 */ + "02c99c495674dfd0faa5bd7485870d988e627fe47fd54a519f4aee4c9aac1d384241f371060c32471fb40898794b79f2bc4dc1c15151e522583a47d372eb15f1752b4b6dc91754599aafc2bc7a5372b816687795f01bcccefaad2f65e48a6c50ad2ca80834d542a462bdd6f4e3373d4fed545120672cb367f34fa784c71c6190dcdb8a3798ced44d7d790cebe34743d725bb473633b29035db1af905d426e90c683f6b21f1e2b53261fa9060c1c750ce985734dda348253671d5190904ff0baf06f02a950a3d592872fe0f93fa33323354490991289b4c04e6b49f88ade291a654c4f5f1191f92c685f5f7ad3e9c65898622afadf7b8a9", + "01533867ceb0c322739dd2af59177d1ada630c4060df5e6ed8e980244b1731afcae047610a2909da6a02079ca10a787f5980896bda3bd8be89a4b42b52491a8b9fb7a0efd06fa069a912860ee078d6f0b835af7848a4ec08f6bbbf7a7c7d7b39dbd0e63cce5559cc29b54fe786b02916827f6ac7b258381223e7dde5632f0febd214", + "021a8aab23ceb97f5c45f0a37fbc44f555e03d22c4c8a7236bebf29cd5222a6f3716dc39a9a8d828ae991afa94d1d98d26640af58930d07bc28d0480bd6b1c58d41ad7be98de0609dfb89cb647a65d359eec00f52756685c0984848701179a3da4274322895770aa841f671db22cb37f72def7ec14ab", + "7e4ab3570b09202f60af297639ef80135a1edbfdccce3081a78d1218f8fd6896652873008cfec8af28a28a13acb1ece02cc3a3ba41dcc4bcb405e84c7e77a75735ae84ad7fced087de7c4ad495f7ffa659c831d0aeef7deab1ff2066d781e6461e29bce263c6970fc5fe3d21e0dad381211895ad70c109dbcc87d4ea92a898d54d" + }, + { /* i=2343 cDividendBits=3030 cDivisorBits=206 */ + "29b4d0c6a1b10b7625a556d75959b4969e64dd6f8296fa4f35543530e0cb6defc730abda5a52ae05ceeccda2055f4d7efd86b61a403f07614370bc43ff2241f15233c272fd880c9a0d51247fd285649d2e3094a9101016301625489d072c0f55a31e34175aa953c075155011a7c1ddfffa5ff1f9147602a307e04a49c6eed4a42bbdb7ce1eed3435057acc161d278b16c2c64b9a26589ed1fccd616a595dff80ef89b58420442a6d46df1bc8a3c42f27bc75bf7228b0178d824b8bb014be1fe8c1224206667132e891f1861fd8ab9dc4fefac6e470d0f515b1cfa30df506899211a6f45627c1c71b76081a7546b2e0995044de23060563c5df10e7f6bfff195568d0ce92394ee929d9a3dee411fad904182f88bde2782ec6b58b910a675e8d0cf3f953f11a3e62b9a6d6dec0932fd9f7597495c56f46ebc3d7070cf76e82ed8836f72553d9d5be1887d82073ed2e2be9ca24885690d8814472a164f4658ea1997d66d5c3b7ea08c4807d816c55517510ed0f2286ddd57f11525335", + "0e85cbe6fecdf3de1d0778e8501e9fc829c127ef5278ff64185b", + "02df2f1f893c4f688c1f1deee3f26b471e2f5546ac15814dcf40c524b76c629efcb2005f186f1f074875b15fff387cf75d4bcc6fc2f95f35a164d9bd24f88b1eb4b69309ae4cfe829fb950271367c9392008949f3c6f730177207c80ff24e0e94d5ab1f33904204e648f325bbbcbaa75511bace9a7deb01ec7fb690ab564af12b8247b6b2d1e31f9a9c29c2bca556299343ffcd585132af91e2dc52dbe56913ba6799f880af74aa5185f0420356674bbda3c4914dc80f11909b2a7c9e28811d897cb59d88b23ab28a54ed1788dc421eedeffd868ec0e6cc631d261f648bdde97e2676205ae1bc88ef934514aa89526922f133d28ddec832a408fee23569ede00980df9375b14face78a3bc5ade8c300c147339f89ae180fdea8204bf8f00c1e9d870ba8d199351b02b191d21e83ebe61d4cc408917d45bdf5996be7eada3b4fab64c039c06ed9334748a89008010a844fd1cc4f97bdc0007173160c6829d6b3c1a7f", + "0a43a6150083d043797092e5badc399469d41685ca1575dd0010" + }, + { /* i=2344 cDividendBits=1691 cDivisorBits=488 */ + "02d8ca1a5eb20ae105075b738b66c4b63d4456d2abc5d1062864e8458d2755c712c088e2afab4208920a7c13d06ca278767ff67887cb6db74527d41f8931264c48798b807ddbf95fe68f4822a1b557daa314a7cd6a81fb45fdfabff14784ff7a1258f973b1ca91e335dae8b59da266b2b9f0810a1e6db694682028ab3c40a998a49f379baad52068f03f812cbdbcba09672595e618aef1c19a153e5c967a7957d89eb74ad68b73604a162c77d0b746c2586bc14281efdc247912ef16423b512c7568bd6c59427ce106b7d13c53f1bff7d0ccddec", + "98f7be094e2486dfeedd4892ad3badeace8e60072c6497cbb6719225796351d7054533fcdf729165d4ffb67b807567abe060fd6d3af8db6c96e7feaae0", + "04c3ab696928759e50faddd630686dcc6906ee775541f0cb4481b692e9ac182719cfa0770de82c7976c94b1685e9d883c315ccc14f0d8b8fa3d95fe9b891a15ceade67dd4b8cb4d6b13106ecdf53fb05481fbd9fca1c063a0f18c9a56fc0988d2b6d42188f5049aed07afffccebc54379645f200c09187bccc7737153fed8c58db3a8f985bc5727ab433876d41c9d386d820968085d8af", + "977532d3ffae16d56e20ee05dd7eb3610211661df93ff670fb4a64312f895f61506f32652f8bcf86621197a02967174faae067234b0259351193290ecc" + }, + { /* i=2345 cDividendBits=3182 cDivisorBits=1594 */ + "1315803bbc14ae481062fa9d35cc89455b514e325c9d10570c65e33033b50839dcc0c1e4f68f28befb1d0246ea2bdcd9a44c472785a0fdef87d905dc61335994ab48943057a17fbee99c742ca4c02ae342b36a8308bf47eca45a213814112f378f38073978ac7a2b14b7a7a56ea8bb59868a1c51d5f14fc2f856c15b2c4b488a33ee0838a03c765822e2a22a553b9a5caa3fe318b0fe1d4a7c5cde0419f2de5c38c8b708ad1b57e1d11d74595e8f14ffded299dc625d4d855eb1854a96c3ea48321c257dbb0988a11bb04186ecf8e00b1c18e4f603bdfdb031fd2f555ccabe3fbf146b2fc749185bf19b121d7918c3b4dd48654cc8b86162476969cfa2a2e8f2ad8c81c341092549b657bbfd11a89476ac784506908d51d54e54b361230fd473676bfcf8fbdc7e48911919027be37705c48cc33a1c564c7afaaa5985a06d7d2f128397534f72850df1d3c2d8215cd90190e0e53b75393a780dfd58ae022ebb1c901f9550b1ad37f3576acb6f021cd92c2963be8412be9214536387f02b7037182459cf032324352cd0c9817cdc68", + "02d01de87fb157ce5f2870ae71b4b509152e66adba3ad1af56cb9edd6d7d77c7c44d2402557d0b61788fd00794a36f54cdcf4e843d9e368fca71c8ab4767aa3ea84d5cd24b1276e805fd03f7af9195a9dd46a1c14209fcd13b3db94feeaabc8221e4a08a7f46067a0e801d03465492694384d536f0b8a5be2d6c1542087297996b046b5f19d84208b124530d091465208cadaf0cf517c4f09e206e714f41a0a7500d10290b95fc9fe79d5ba07572cc39e0adbec8996912081b7fcaed752deb662d24f2899297d715", + "06c8c9014969019d28b69d744e06049ddf19412ebc5cf6397c201544658cc09076b3c7865b14a1331cb10cb754f3392a97dbe6f9ad277fa6c3382ff6fe0efdb2d656e17262047d19cde27884d5b5dab46bc58616fb913d9638b7ce955b30e2515c2d31a5bd10109d583575fccf3fb4ce5f913d0c043fff8e813c7242d2e734fb10eb592531ca9d6267cf7aba1f9c22d5d283f49f75a513db317c94c7b58d9cc35d16be3fc01b4e9a43c4d0a152ab2f350cab61616a8d4fd4a2508c43e6dcb837be6d34f700130d", + "021b44d92406aac6d7f83d9fa9c07f0ab5fc43397e4ad24535d1cb86fc2f2e04ed2ab44fe3abc85adf4c84e04c90c68ac57c603c0c71418a0174ea2eb13e1bc5769b9db8fa0057c761229b71dc90eea55b726b77505be612f7066f3901bd193b18443359ad977d2b41976a45ae101ea27933cc457df73465146f75eb21d5c0259b7f7280f5fb83953639033b5f23be590239ffad1541bb40e220392db6da53c6c77dd7c621f86588b10feb0d7af78121667bf9a50d92e2c6fbe6f6e9d0710d3bddda282287d06157" + }, + { /* i=2346 cDividendBits=3388 cDivisorBits=3007 */ + "797c1fd1932d4900786173ea6d17d82c2b5bb6976e2fe7675384f359a02b2bf87de175992a8a673ef03badf12960d19164a456710af50ed11c2ab8f8750f09bb33495abcd53d3342c0d278451f81cbce818b41a47d5e05bcb466c4c7f8e9020ea8c7580300f24b286a05729375c6f0fda7db9b9dafbee41f2f38c03bfcb6da16556c34caf42317e23920690b74dce2d70a38e75b516fc174afa4271c469d96acfcac1f3c9b4c286f702f0ffbe4cb9b04dd1b38d7168f98449291fdb35ce9f62fd30780f78a2f35bd2b3b7fa2a8c0977180b4185e7a2ee0a86144edd6138ca36fbbd38b8e2105428441029b5df0503ea26f406d7ca35b93c38d949d5179977a578a923d42d842183d81ccbf51b164139dec745a4b3364e2c52040b76e7d8f805eaf19f545e434ce111fc8c0fa94b8d0a1afff61e383f63cf5f2c157c1fa684c2a9491d2e8f16a3ba61b01dac4567d5f51bc1110ff829fc4db54c85b53f3719d8f11e3906f6a04e4aae8561063cf3fc7faa15786f4441c8665ce65b34af5889dfaa87d604aa20efae1ba2d5847cc445c5d760a7e00d18d5f6af94d4f5545c3a9f127405009395a1a", + "7e976db37748c685ab06126c7ace85aba6c83422003bb99257426620baae1dc1c9be9df1461a95a5dc91d22a1f8d933dc6f2755814fbec6d606cb9841701f98d60d90af331feb1892ad0e54bc91d40bc75d27420058323d695e4b85ea3b816d17655ac3f3929a78b9d484243ca847bd652f5e2f96527b1eafa584a70cc63063806ac67cc3347d40478d69999ce09d4cc1d2c7072b9e0b42bf1bd41a6a1531e4c77f644844cf6b6320a997cb40657779f119c857ab9a61ae7fef1ac38f0f6cb6e8ff12dfb84714f1464584550ee11d0b7b7f6127f9a791ccb336edcb80c49d040fe2c028eafd794a28a0c42af6b46b5a86f47156ade1e6405e6c4045f94c1e17fab2167d0db98829e25b4563c3990c7afd014b04ecac709795834b371ce01dd47b8b4b05ec10e93670639f5ad4c869c8d37a7066040f0fa9996c4ab2491eaf54abb69b9cd099bc7d489694c894581f4e2a8632124bc8858568a7cb5a181be1c2a961a19474bb87af15b074ed027cef541cb5502282517b847", + "f5ac4d0737368f360d20d0886a9c2d756d73d397b033d72bb76c69ae6293aa0b54a9e58610db9973dadf29aef1864d", + "16520ee00e18532a60eed7f57ecb9e9c5bcea841367306c34fcd00d59256f5d8e2a67f390b8e0c9e9b8167a7f7dd417eacfa7fa002c4f346e0c6c6e2eeb52e9b4e90c47ecded2d5dfa6b5e6e052ec7b76180c1c15b607fbde10558eb085bf180f88b2e61bd37232f31567518866faa1df82cebccda72ce457127f1dbd457d41008642d8b77a55e19627dcb5c4adc04d8ad38f8e276256cc418b8db65028c60dd808b3a1b92e415f50e76737b6f887ec908cbb07a3efc1beda61ffa32304132080347aaa304fcdf85b1aa3d77eb9ecfbde116431b3b9bd42b2f7d1112dc340251a1ce5f0aab2617094e11ead843a3da84a52f1ca17ed2a80a47c27849263cc0d15f3110fa0b26c05d9b4736fd5c5e551ab2571aee50976b66475078ecea2739e28d1ff6ee2f599b63f95a99a3713a3f2859c39c283a7f6a5720d946fbd24204b1127af2fa362a8bc5d885f08ba7615b9cc67f5999f1451aa03661c800ef4a1fa9753d2f5936e7ee4cb99b7d23cbe7edcb8cab2fdeb9cac2bf" + }, + { /* i=2347 cDividendBits=3924 cDivisorBits=368 */ + "0d9375922480c2182174824ceccbfb1b04b1de140866d5146c925d5c4477484a9a3cb01cf4ad8590bc11f6e89cb34030fa2473bfbc87b161dea08ff8fdf1ce6c50ce5c0b28cee0d949d04f5e63755f891418779ddff9ed50a3c24e026d9978c72d8ef6cc1e7f08497e41739e714c034a883b21deb654f2a288f0d1345d00ece37bb3d4731241ddb8095a8160288fd4428e42bc0c7cfa38e9af3019a015f27792c82b028fca24aef50c0263555805b38650180d0a208404fe27f3123e87999ac9ee51dd743187dcba420c575b7080dbadd5808782d6be1e2975f6d127c69f1015b085142375af5881b165aae36d236971e673143f5594482c6bc143980ea5d9a024ee20a241822f7e1dedfd4d400cf1909d0c25879769944f5f350cdaa76242e9561905de5274b1ff5563aff5c9558fec2f6a86f1c2d09a78a7febc2f44d3d1ba02abf6dce7af55cae5dc2354f735f602f3119327bc44a36902f281a514a9d9988a699be4abc0ebfb2125f52cf3341b7f4af0ff43d9bf70fa662699b07ccdd12d23be754c3a5cfc7ab2ae5d957a4fd0c6cf93568576c5dcb0b4b8c882080be33296504bb1fb24d0b8e781f5a0e0c699280ea756ababfc9d98977a882eeebc22014394715f5020a4d285eccd906344084dcd2c70974b6644a3be585bcf3870cf9f91a7537bc2a003d7e6ba6a", + "ad72677789f0c63d59b2e4c4aa3a683cab954a4db5373b9dccbb33668543e0c679b253e6ca5c821b4bf396cbb230", + "1409a0171e5f7873cda948af6f6a624e963acf4260c08f5ff58a7f11573acdf8615cef70b77135c4a707f4be69cc725f380e000b25416a517ce9d8691e3d6c5414734bee535533d738d92c817be9e97ffc1f79bc11ef220f1edbfaa48e844f0c9603e2ae789c969c1562cfab2c0f7ee24582243c6c55f56d07bca8fa57f521f93843e099f0f3f208d09d88464369d3d18025c14a2775c8be6a49232f5b0ec40c981fae21902d143cdeab494f7ce0dbaba0187a69cdad4480ff0104e14c7e77fcc7226a85b6a3327183d12303c8a0255ef0d8eec519871a66e330a230d2628aa06268736ed34f60e58ed435e2dbd68d3bd329c588c9be248bc314e8e8af5a6ca82503350c9d0ad8c34f515060587dd9fe86f5b7e135866a5baf1591593122a6358167f946bfcd9a9fa3b1bc1826de67eb4bf79981a29d6b398eab577fe99ff2b19adc6dca87e54384a3e82b338ec70e7c9e676bc1aa2782ab61ebf711c082fe7959f8f408ebb651c2a23f33ee33a8111cae3e4c94fbca2ff6224a22626ce0c87ff0b5e61cf856e40a7fdabe2b607dafc139606c651e9d5d90419aa3b190f5e09fb882307d182f9f2195d110fbfee22d30a43208748f5b11516c27be6821", + "7957aa7c3720c942f6ccdaf8fbb03e4f73de2ed30c70de13c51da97748087c35714d21c7718f2e1f90c717a1423a" + }, + { /* i=2348 cDividendBits=3316 cDivisorBits=2413 */ + "02f22713fcf4767939c31a55bb4ef20a1d1e69f86b1160387e0bd9b30ec5b3935d2b6c02f134151b59f59dec1a751b276dfbd5f5256feb7e96e59fac58069f971e409a55d5de50625490a1ccb1b84345c9d4417d8594d597176eb28b1b5a1b354525cce70503af0fe8d0036973720fe9dbef54f60660e13db788d64432243f059a050244637924a12d55604c965958105ac8e2d015f1f7454bf06a425336663da7a1fc5953ee8f4e1db2e37e3bb2cb38a248f00f5361f7dcb994cbbfc19b7f4362cbdbb7fc3e825b1e840111600026d95ffa671f234ee174137f9fb93fd828528fdd0e4115a39404889194aacc5ed772cd0fda61320a505d9027d2d11155434d8e28665ec49786c03015236fae55023fcefbc391f5de9fdc8f5f9b8388f77bf93df9e6bd5cf0c7f67a30499c1698758f60095f58213bb25f433b226b00d8d80591c45d995acdb8006d486861e0d110a3d75fc19a2d0e20cc29c58596c76fcc04302d21febb818069df4ffa7e58be8d1f9aa166a84cba68895a15cb56364f01c4c70dce08749e5a102bd01e5d46c30784001ec31f9afe58cbd3a12f34be78ad", + "0959aff4e72f92127c8068bb4f75865176d4899f21676a3a5f7b0d93884b005349a5efcb15e442f71ca0a14650b767494f44eafda42c575d46edf92363670b5d8a9eb1c5b6fe9914369d66d6f9a9a533dec5b795dbb839de9cc153e22f4c9ad7cda1bcdebfee52a330d3e7744843b99d60e3612950b73535ff64b144b4d279f180158546790bde4b86708cbe4f38a51640be599fb70024514c2e203c44489f71a4a2d921ad49c196a628983dd6f0cb7ec6e59f69aac354be3ae15c7a9881cbe20dfc64ec167ffed6a74122107e38061acf9f08dda267dff9ac8a52d26fc5e1a1f19a4040c9ef6b2cb3b791ddc7f85301820ac6e7986abad05c88d776f1a714b866951cf9776b3dcf3bb91185a6b103f7647e639b25c4f7eaf887d0f0ca8eef65432f87cfe5d099f6b65d8a9c3322", + "50a7b447773961624f4d6f00c4c5ee02c6b7e43aa2f7a55efc473a5c5740e2375a1ba4202ebdf990bdbb17395028929e4517abd637a603a9791f5570907ef1b7c340d59373eb68fd0dfb31002be7991c63d5655e4c8a826ce3bb91e15f5b3a38e44e433766bf6ca410f46e762dda020983", + "012ea9b04eda810e4e17f68942cf4a51081d3a9b88834de04b7c1471489eca448f49b44bddfc5b01da4efbaffe3e48c76b07535297f84684c38dadea330bc4b00fd8f8a464f1ffcbcc5e2542e1ef7ce5b53bc0d482ff5fef45d4a64e96ec336007692bd97d39be55d663442bf763a556a2841fa6553fe4db02b0b3ec8328f21ead16a91f2922f35281e3e3e7cff7a942ae27ec8ab5bc2f334cb283f0f81f6913c08ad9428979d30a6098b90cf442945a037cfb40a85c5cd40423e4e46b9b13a37df34c4c91611d79f436dbb730f284c9a550825a76c4e36f2dd184bc464b67b9c57a469a3115057906d6f7cef7b0ebf1d920898a4a8953fa84e5fd9bf0b843d4b3b8344e74f12235d312b1faccee242abd2f7d8e0c450c35bc989f08208840b219a3eace2da783c443b46ec01c47" + }, + { /* i=2349 cDividendBits=2943 cDivisorBits=807 */ + "52957e4884f63213e2dfc8febdf70b9c4695b1e4a1a4a18f16423478f325672259ec49868f7d8c214394a34cb6235eea30d343ea67e209f441aad0b8973795dfe6d4241671964687d24400ccea915f8b265a61460f6040e51d864d79eed7b7843a2fd6a63edb762dcb1a1cba63acd2daeb570e70296a9a548aad6f5c9d43f074445b38537dedb3c6d48143c21954d743a91c757f12d80adab012460da4e35cfeeca0866a1ff92b714ae7f8291b16b3f484be6cc4140d99f7638f8bf40f5594a4e0b07e2c28cb348e6a6d75f7ab172844dba97e4ba03ba27dadfa5420d6c7be401cdaa60282cadddebfc73dba77d6df821928a4aae9e3bb8274ea7bcaf64c22edada980565b9ef67083917887cffa6e98e0b906512e8c69e6db9e9aa5c6856ad229cff2b5eb42d8b2b183b2602543bcf663dba47022da5c9385b23df82a67cca3d6c27216b67039d5fadfff90de0ceccb27f1f9b0c3979e827dd84ce24f79cd5e04370390cdce132796debaf2a3a2f3d7", + "607c180d2f8772deff0e048b60f1970ff9efa3cf98c60f956a729b238a9c32b2615e11c5dedced8ec8a6087a5ae96af9c773fab637c642b904008a42d29f42d8c04fee897141d4461b908b5b5be18934236819ed9232156b023fc84784697def9bf3da4a9e", + "db1e1303367047586d9ee13af630f1bcfae1d857e2fc11f37afca50dbf0802287071f587f35f4ff9261df58135c3b187dc1eab6429a568ce597b155e1895b5d228e65cdf59c4cfbf88070e5e64b2e8c921c7f0fcc8327e109d33284f4b2646784f40a2aa2545b18f34c9eff1a820d1581b302e01650fcaf7c708ac538689b57e22cdda1866100a330ed28c6d999ce9c257749f78352ece7282df1523f0c15a21e063a16eb5a8ff61ae81793c64acea5069cca30231899c54464e10c9f21e5247bd238497993e9f79e5c5c67d114ed4a82b6d988abb0c8020cbae6e6440fb4ecfee8719e4e2ce38f1dd73ce13eb0f17324b61808a6c93fd687a2593f6dc6d8cad63bcaf7e27854d9c1544c6", + "2b8ca0c7be87d19529466bb6e9aa5f4d908cf512e4e32221846c5afd744837aaacfac8956d75dfa6d7d1fe780c9876f405367ba263b0a0b70e46c51718a0fd32593206bb02409fc3edf235ad40c97b2ec6806ff0c03c99cb2faa7e78caf7ef6da7a60545a3" + }, + { /* i=2350 cDividendBits=2436 cDivisorBits=2393 */ + "014f8423fb8413d0eae37e8b87d852544796e6cd048eb7379033a9515cb62fabd4a2fab428151be027bcb1ad1ce00b34fb78739d0a2291963b20963c30e7c7ca931825946b2221ade1ee8a8a1cf0de18e7e3be7bf5b5b1ca04a3883f91dae70a4fb384868d4b3283dd371f2b5383c42de1eb648004e05530a251c699f36bf9066290ac59c9e3b3d41094489b04102b9fcc44d9e2857375bd013d825287d87d19b2f3dc9b87e2bbef5b608130c384c7a829263d5f001114190a7b129d74fbba1ec060ac795bf224da439c3f7c99d766ccf3fdb56f93d399cad2d74cf917d9c3334a2bd5e29c6fac2f2ee368673696be4078af1b8e20d56a7656b9355736abb40673df595de893c523b8bccdf323a25dcadd7a7454c76f006c04a037e22d7128a7869ecdcd07ce06e8db88639a76fb22ee76", + "45ac33729300cb5b2b025b94c9b7a628925cf2299e9ff1496717deff58753f92ac6b2df6d70622df2bc7f4b681653898db2cdb08a0e3a8a061139e3df7ad027973425a9422ca8b2568c6d52c09139f0f8d7b0b960edb043c641a0a78559bfecf43ff2ccf88d6bc3cfc14698e925216498fb9f60417246495343eeb408d64de45ec5ba8ee5d039dcde5fba3977dbe045b5ced9a1ca0bdb55cfb88c1ac85cde2867ec51c024cdfd86bb9791cb021f8c9a77a602c53f1db4aef5c726fb7893229a6c8d5af2cd9cf33ef7659378289e7f8a12979ebfa23d64a6f0d99d948d329ff16f8b8bddcf0662ec913ce26aa9c3234b63f767c0d283077d6b55dc49caa6e184d66ff4b3f0ed6c61cd9c60773966cd083ee06643554bbdde829d6ce4ad50eedd962e4940be34ab010248a3b", + "04d0cba4c2cb", + "117cd71fc5f407c902f96a14c8e6a39ab2d45af1c0fc41684dc4e8bb2f10f2162de2367588690d46978d1858e3de3ee25650e4fa19c9a6e57b9c5dfd0ffc0e3e863141f96b8cbe89f10ca48b921413fe5a828a176ffa4803aac100f296ffdea5175638a0cd0c2d388f980cb4dd7c1cba382eb66ba9b59c0081f3a9d8cc977686f34395bda0ddb0870ae512fbb03a3963b7c3e2e6db489d0b95713ff7e368ac9d1cb820db41be989163d06e76d81c30c74255d1cd649009f455eff60e69accdd9f60b96a6cd373ee132a5309de231669253590b954a50852737559aaaf542608fb1e302449c4c7e580fb4f7ff80839ca1fcf31878c177bd0a7255623026c96f7702ea08f57352c6b0421d3adc0501a63a24f2f5850d165b505c41417ade009a71472d50b71d67a9269c9bad" + }, + { /* i=2351 cDividendBits=383 cDivisorBits=60 */ + "573ed1c05ff9d6e3fb446845c19bae02aff229b6f264f0072f072e8e66a5ae5149b982b33d26a3eca1749edffcbfa6b0", + "03a1348a43f64930", + "1809567e0a85732479f69f0f57a222a9303d0426c74ac6a270b7bdb27221c14948a988726dae52378d", + "02f1460c93000740" + }, + { /* i=2352 cDividendBits=914 cDivisorBits=345 */ + "01d979dc3f76305bfe4b499bbe06a983f4cf6327d2380f280a26d6d1541ecc187dbca52655abec7560aaa2dbc14a66afc03cc8ba98f90cdae4f49b23b7bee0eac04358431a4c18fd4ddfb9c26b19ed458d2eff5e9fffaa10bcbd1eaa2974b77dbbf329b5894008fc790656949fede86986ebe6", + "2cbdd4f9a8d8b67997fdc2f099c4ee3cb70e371dfd80684251bc10b0e32cd4e2c8fe2e4748f6e20e0e8d54", + "0a951ce94d2938debf24749a162f18e4ff3e61913af0f71518da3bf59a3e56b6cb5492d706890aebf0cc8859d1aca9a0e072effc055ab7d4f202314f66b65055eb5abfd8405943ba", + "2a48dd3b756eb74068149c0561737ac03983fb941f28af390bbe211536bd0a9f26c501d5a3f2b841c340de" + }, + { /* i=2353 cDividendBits=625 cDivisorBits=124 */ + "013204f27b6fdc5833c9e19966ecc71f3e0534aa56600d7900c1c5a74ccb516baffad92a008682e63671bd0b2f765ee2bd6a279c5cd5ee377e0ec1961014458af9432261e391895c955036bc5ad276", + "07e95f9eb0a4399572a6ba287537b69f", + "26ae044a0d0e9f61ad58228cb8272acfa8050572ff88fba291bb7fc2b946ca28a6186d8640a0755d85119361257e1a5840b7e3123cd117da42f7af68ce552c", + "4a7227c281e313b2a9ada08b32a422" + }, + { /* i=2354 cDividendBits=3182 cDivisorBits=2189 */ + "1171a09911f541a5874916202838b4ee01a5bd3e2106bdaa5b5a8cffcf2f99e44d3875c306c241434184c56750e9b62fc62466b1f1e9247f940e1d7c6ff6b3709a247e345f655f2a195063bc22b6967e7607b05fe34ed457ab3ebc6e8e4603d61fd3a9c08cab672564df8453aa526b231407c41990314c1191837edeaec3b757118a0503a87fba5c2d7b04ca9189f187e36413d7e07ab9ebd4c0ced9039cd825288da66b6bb933c19e3e274294ab64350d2fda5ca154245d2a5068f3b313d83638c7339fb82b977b0c18e3bf4047edfeb2f7dbbbbd84a1b223cb271de4e6b6768ac0f163e1060713acc23a6babbeb97cdaddaf3b31abb05edb9ea497a9956104752140121b67e64802a2c72d28fc8150fd5e34d1c8a2a62fa9a7ddb50b5311b70c979cd153ab63957b428cd45d2c266887d826f371242e4c60f7c373e36a93b001cfa81ecd40c092c09172c57b4924a05ba4b120b9f78ab9826cf2b683febe6881bfd69b645424ae4d551da97381bbe844115f4ea209359bd2e89cdb23c0118d0de35110abb457a893a24fadaf4f", + "1ad063063f45df40a2de781f0b37017867f7f3c43ac77e4ef4abd1ec7d9c612eaa8228af45de90392ca00b1fe2b0f0b51b1cd67ba2ab4652bc0f921a038e59bf64539d62e50c252dde16d8089597ac0431fcecc0b88fe0831ab2188a125376b9ffdd93a6d54a078ff65ff23ce39ed51dda654f81add8e78dd742cc35463cd5b12ae387e7bc7c4579b40ccbba7e4874754d44a6ffce9b97f50950cbf36f6140f04429bc343dfaaeef2f3269d594e4cf16376daa9eed43f9f30584fc8c5173e8c83965f5200a7069df188aa9b6dc6d3a11fefd766a20cc86ec86d0ed9b480f8de20deac23851ef65fb9232a7596b2b7a49f1f53a63689dde8a749e2844f970fe8d36b58cff26a035b303e82d85d851d284c47f", + "a68a73135bc4c481de10befee25f2deb6e8f1d8c10075c33e4b5282d23d1fcd39a0a7f74937fefbea333fd1fe4b2d30b73bf53ed013232c20ece56a5632a218f9ddff42fc409e5b7b42e0db873ca8523499c62e09bf5f003b149a6ac0d6e4696b2864f94febf87781e1517bd3b4894b33c2240ce0b722a78131c554f", + "14c118f37986ea50d7809654edd5e5d5c1897a9e5a0e38e11ea3adf51f94ec9a3a2599e65b207cd1284647f3f4c8a5c981b3b86c31f5c044c5762152db7faf17e1374ac98285450feab2a8dd4f6467b3c54c4ce0296a09d9d48d1fd20566ac0a4f6f129901a379770f9f09d54d4262a3b9abc4f87dfc341e3cf029a359c61c02da8410c00f5219d6e3624437a3d8870d428a1396f6d94d5af59f42da4919b5ccb3245a0b131962e7c4598f6a97bc089f5d08bc631a12af1c29241b96456b9569aaa33f3a7610650b068fbbd0b040d2cb0f1746c3e59d31eda944de5f0e55b6bb05165e1ab53860ab79b8db739a1b5052e68d94fbe2d7aceb7e99b5e0078884662c58fa6f6a970c365197b2edd4d95892e11e" + }, + { /* i=2355 cDividendBits=915 cDivisorBits=844 */ + "0434de365b9bac8b5e7b01a780fc24d7d00760be5feb706c68ea1ea20f57ce065f3dea35f54ab8787fdc66989cdca67cf2cfe36482b026e2f9298974b67e33fbc22db166ab7a6808f2f436b2c6b462431e6218a76b24730c9ee04c52ca3d7f96cb9ca788ae2de0429e1ad76824390ec5778c32", + "0a37e400794c09d25d8ded3e87a4d0e8ac4a3e3686988f77ac558e894ed155552cb697abd1324a8e4d2ea4c7744f6dad3353db8dd48b29997e79249e0c5b789926e7a86ae1a8c250a095b16b1adf3f85275cd3fecc811eaada0175f3e65476c008d15b680e0f5b03cb5d", + "6962cff2bb6bf9ccbf", + "0681151880d6b186b17f48f6837177dfddf79860e0ed744a0d8b2dc4969bec7de3cb3120f0d38c23555faed9c7a56a962207954d51ea5b3e02abcc3ffe6184a89edcc442de912f27cdb0e63469d16058c7491b0eafd2e676e197cbcf659ad75d0d66161ceb732b1fb5cf" + }, + { /* i=2356 cDividendBits=402 cDivisorBits=279 */ + "8bb910c484233d49b29419d7f740f70a646125cc77c8b87f8486ad9f73735dc7c20df6e623f50ec61f735432dea5186dcceb", + "77689222223b6c312458a7e4612372cdf0072be954f642b411f36ee2aeec00d8ddc27b", + "012b8d58f4ddcb01c0bdfb24454f4d12", + "072ee6b7fc55d0479b8d846e693438009d868d3f6414e6e970d011f6866134fa622145" + }, + { /* i=2357 cDividendBits=1589 cDivisorBits=377 */ + "1dfe3ca398032e1f98f269819da5739bd4dcecd797d337e28a939413ef7362d5213a80ca4b954af475c72aa342f478dddf2c3a3dce2f492293c8b5a3734f2db27453b5dbffff1b98433fcfcf76a1e6b5c83d8d0ce3ed9c5ba63304ce1942d1524e0a49b6d43f7c67020e50201b0449be5db1324ec7cc4034e165ce126646a0b30d555175715f4eb45dcbf9c086f02cf882fac379e7034203d7f1d0265cccae332c25b876869765ae4b423c08ddfed9be102f12b3b0be1a7e388ae4d63357f374f91e085eeb8e24", + "edc1a84e4f6caa81a131a6cf07cd8018d8dbe3c0bcc474ac94396b23b70eef5e57faa6828e723fdf3188b701973778", + "204b67389d452a805430613f876a11a5e392a70fcc097effd49c3798a07751160b3033205a4767ac0d681bc16faf8e75f725d3c965818d96f41fafe3cf658775b63be220aeb3115c13143907f03a06d3916af0ef2e49898dcbde7c290c5d13855d5285a02d00e9229ecde91ee23d9019c6212ff3e0a723baafaf8239cd5596b79102cb536e1f92d26543e56b25974f9b46ca6e71d463f689", + "75c0fb542aef317da653c4b231b89635333ec04063c13abb0cbc20e3e2ae2de1c9d76699bf4a50bbbb352f62498eec" + }, + { /* i=2358 cDividendBits=3093 cDivisorBits=2749 */ + "1af99ff01eb9839837dc6c64488e4064e94714fc39e9fdb4dabb348ce645bd89697a28fb64e6eb3ecd1c687bdacbccb535992bdfbe5f842ecaca0674fdfac228910d845d5f864b5a542394580af6554e88269f6da90f2d814ca3bdf54c3da89dfbb36186408a0c8b6c08d3e35c89c8f4f785c3a20b0e187ef1f07fac16371b9447d7a59565158033c9c3b3972b84962acf3922944e25a84a079047fd99766e8331aacf15507e21775ff89802ea3c3828b460ec8a172bb1ecc508ae3817436bb3be0833aaf16ebee88b9b04d230a6564dd24bad929e66a27c8b19031802541e631b5aa09b02be7f9a927a3a212a2c97358b25d4ea3e85f73db167acd82229af51fab5745b07df800f444ad843805a2b394f39c114f4bfb1964702096d205907f1c0d4f78d516377cf13c9896ff01b8c45fd8b18658f4b07238eb993c73746365eabf9e76460e90b60c108f4c0119b9598d8780c390c01631445a1b280de23d5713639bab134e75c195eaa3aafe57e6e63be5da4840dacb9df10bf68478ba04ab2de623e", + "0e0192717eac81352c029ee24521b3b43101e35a3f62b5b5a27f43e9ec6301b992c4d02b15e8d08e82b1e7d3ebff8684f1ed6b71ec97f958c0b5931e50e7850581dc57c00daf6c463ef382967cf9936d78e88b747f7cf5cf6cc2ddfde61069365dc33dc1a6ec18e2df00a4fdccc7e24c1b846088ecfd443792688e0e3b1373f3b9b9937e1934b62a574f228131ee0235c6feef02a89f4ea164f7d9a8ec92fbd43d357bb431f6f4ee46e60805a6e23740fcd33a2c8c1b9a8c758b0c94a1632106633633366d83eba36cfab5caf53f1d3fa95437711f92604d0033637e8adf7991a3f86a4071a9a24b90e66b76e7931e5597e4f4b71dce5f1076f342a1d0e8a0cd3e61a367eca96a756dbc42ad09332fcf90ead1be0d6b8dd20b91eb81d2406c97f38920610716c3287692118121d8a968c059c56a646f1bbec9e025bf9c97486ce6eaff40b22271ae82c7566f433a31f5b87d7d08e74f5cec", + "01ed0aeb072236220e5081f38ecf7d72a4eb5dd36d36382b89d3f7ac893fa01c33ee44a74503f049d35ececc", + "0b156c8afe6583379991fe0a5af71a2d29cb7cf0f31bd0db6d853968f9506f2f128663d458cdf088354727bb8d61779d1490b292741b0dde54fea38611475a08c4a9ae8d18cfe69b51dd30fe57d0435012da25ed2cbf1b5aa4aa3b85918a7bba3631366d11bf06a3deabbc6a530b2aeac7619ecffc55d4d414c667ff370cb0ceee9d0f6c8d7e1026c5d1921982770b8c2734e556f131f8e345694c52302e3a9d9ce17269c6e6e5dad649a069017c2b44eff66b6fbaf705d04939ebcd1ea99f156f47322ea1813fdd4869ccd7c7497c13296cbad84293e01ef3364858f9bdea2c37810f3bbaf7d5a44ba16ad190721cf199df6af9f55764e3d5bbc426de667fcff3edd9ac4f42ef43de879e4afd2c3a27e7ead5bd5003f67d19d0e227fcefe0905c12248047a08704ba11cab29870051f4c45e550db22f94141e7927f8fd4d1be9dd45dc63ee073c5251591dd19e3a0aff980bb09e0326e2e" + }, + { /* i=2359 cDividendBits=1920 cDivisorBits=655 */ + "03561e65418c6d836283d6023d182b80812455bb3cc699b5c153fd8a21921e27975d594f859e7332eefdc7789fddca62a89eadc35d71d9440389ada7bc80ecea2cf451df97e6daf7886e1bad3b808a84a9f116e9ca0c1aed1f3d1aff4e9274efbe318b22e0ee46a74f3249955a3568630086fbf16a39d566fb54c175d46d79d9081157f6235148d004ceeae707b040879679ba3d4182a11773219316059e5b8a1777c95423d415cb913cf09ad35c6c210719c48e0e3aa1127ff8873b4cea8761e7b859e12b7973fee19b68105de6985a07573972afd5682b955431b3e4ffb46cbd31304bd483053af746839976f996e6", + "5288f15cb3a855ea9a4255e34fc9242f17d01f90faca6f5a5669aef9191fa93fefb10b495bac6355861d773ed20cf8749d14d1975d3718090e628e77309d8cebd2df0f03a493641c42d4bc587f10d3edd9aa", + "0a593c0b40aac754968589dec10f317feefdfdadeb35ce3cbeee1866911b85e174285cf219fec090daf2c2032fd37f03ffa7d84f5066d22ca9535cf334561530ac93e798f0eccf025e057a22f28288e2e7baa6faaefdb8f957ba479904d7fec45eee5eadc3e8657d68c2647f6e047f0643ed859d78007dbeadf5cf7946fb16f1757c5dd60b45b379fe499767510b68cc4146840f51a83ab1628569795af2", + "414e8e227cef2621a93bded7273b62ee03354404b91e1f148e91ba711697d14946acadec280d17b60db00c4ac9c09b0db669ca4b4194158b8f9f640ddfd7b7234ee635d300a6464f3ac4aea2982ae6421032" + }, + { /* i=2360 cDividendBits=1380 cDivisorBits=119 */ + "0745ede180f8e0429da07587cd0bef8c02c9b40f3397133cc02241415753293b8aa54ee61775f886e90bc16400031ed3d26705a4bfadbd3f051596c306094f48cbcdb3eaea8298e3a1791773a3175859072027ed0ee3bc8dad7b9f5d90b1e041748533c91c5644a34dd55b8ada242253b37148666da1f10700ed138de2d4db6019a25e666291fbc1260f1aa07ae3d0e75d7e62ff5beff72e2fbcd209a73378164add73a575314379a2ddb9e648", + "4f98097d498a3b697bc4ae91788b24", + "176492ca16a993c35706df2c5c16d333b309853a1b20d481a62026f5b7155a3f89532bc4d12d93b4134f0ebaa8f5fcf44eb6f1c15eb378128001d5ef44a77db6154231104200b1c8065bdea37147a09e13eefee48daec0f580bd04c19a63dc9a2dd2d32e20cb45f98aecba804a5ce9daa52fd4415a0bd19600a3dc8b28b0435b9954355a71325dd961bf0116fc83aa4b3e1d23bded67559e78572fe94bbe", + "2ecde59fbe211acfc8a9f655bb1590" + }, + { /* i=2361 cDividendBits=625 cDivisorBits=236 */ + "01cc60b32cb86280b75386f212f13008aa0273374e9b37dd5fa2f93602288af3f3bf43a6c82b90f265515a6bc98a66117b0534fb2f92508eac9477aa183ce06053a12e2b312ad26b516949287730ea", + "040350b0e64b2abb63c979f0547fa0143d926eb7550ed87174639043d81d", + "72b917b1f1ab3e4acbfa7c5b23bfb45ae40f0c094e4825a4d27d70be92511d3211c5660a71004707ab36dedc22f398c218", + "22885a2da0a9a1c25ad8a56b789d3b70f9ed2626928b8b5e5a601cf432" + }, + { /* i=2362 cDividendBits=165 cDivisorBits=121 */ + "06082ac1642689fa7152dd1337335e7911146901a7", + "bf799e0ac69179c28c245ced6caa82", + "081088a93830", + "051a649b2e1ac4758a24432aea9947" + }, + { /* i=2363 cDividendBits=2946 cDivisorBits=1164 */ + "022031f74592b64f16c5dae32f2e8f79e4905a2c7eb4c346745885134dccfd352c2156d3dc27124479428bba654962423a7df62fb5715478e8eace0c6c2795b61edf5efcb74b063e636f8536c5a1253c5482f6c4f963652aaf6fedcbebf44f8bbf20a3c479a33c6cbcd54c26ea56c5f64bfca05e6fc5df64d83f4a178179a82b79612a50edbd0a9c963a6b11eb651156fa025a1037d272e4ced690f8481febcea6fbe2a8914ab43774b424dd1be20070fc0568081cc9f55f6d3ba4bd906da2254ef6b43c9b477038cfa20465c2f308224803dd6fd05bd094f1a25da00814c138ab29c76215242084e0d51bb17e97e7eba34f8ada6df9a22fd676814b9fc47a29c78481581df50e7c665627f170d44b57d4915736e19c1bfa6467e6f54363fc5b6e4f9239498ccfd415e92da79dc8b9919bb4fb05eb8ea608906f68de908946625c41b5714a32b3ffdd5803efa7b42b5cea9156c9dac29d92de6f3f9b0cc3277e8cfbe5ce41f3f7509eca45f5f9d83f05d5", + "053077f8bbf05e26c3014c175cff5333042a5552aee368980c87fabc4191b04f0400b4bb0d975c37b4dacf16df7306590e7e0a344eb00938a4a36a57703e28a9f1c929ea678b470bd4bfcf0335e8b2462cf642cf770364a1cd15a65498f86a53e171ccecd4cec8dc0e5fd825b143c87eacde27027578a9a630e421dce4568a8fa035b903ed83df711492a2729cd1b51e2ae9", + "68de3b00bf1d7186dec74d281195dcf75f21dae82c8e42b59cbe8fe9a3e3a2531f26c842022e8e0e094c3a595cb2a7c3b874a79b0179c94b682a5b5220cc83778e4943e0d52fb854d36ce2d2a8f0407fc5099d29e3554c7033ffd72147267137f49b9cbeb54cab1730f5813887f2c4db26fbf509a0feb9f90cfdb4adc733e6c4d4937a9cd51b3ea7b76a07a47a9dfe73fa5b92bef6ec94d73f6370d74e7d97a179e9bf07dc47a7c17d61683f35c5170234b53c1c713537179cb3813607a704398cfbd74f71238606c8c3c3a7c3e6b36d269c91920232f2e8af2eabceb9aa0a", + "02082813d814cad511c108806c1377a62e663b02b28a14f0072a20c2c09e941fafadde5aa80082a69c95a0e3dbe196cac76615fe946eaed9e4cfe968f8914db1a3c9fb83c2e68ba9e5a19b40ed7e986f4861255c1186bdaf3ba64ce7fd8240a1a82634431df11392c6efb161c076a6cc6148c40269751e02d1e6ca218053dbf3b8f48c815f8e9840dc9c5e3ae28b3c319ebb" + }, + { /* i=2364 cDividendBits=728 cDivisorBits=368 */ + "1b56ac87db2e997790037f681e49ed867e60a3011142fbca08f04ccb9eec5d9cde521310c7052231eb35c6361a3bed518967c96919cee6db277cb9269c75eae2a2b219eb4e617fc152d987915eef738085eb8a5ae147f324a3dd26", + "7c7e9a6b356249a37520c428917cab051c70164d11993dc73060dfd6dfc289fdb5adf7c7c91b6eacb8098d4a570c", + "38377a74fdfbca82fe3b387e28556481d52b28202f789e54548644410f03c86403afc960527557faa13736f9f1", + "11510ec0905b160b1b77733729ec849751bca27bee81d0ad6a841616bd9e4944b11fbc3a0437c6117f99e2753eda" + }, + { /* i=2365 cDividendBits=1456 cDivisorBits=1259 */ + "3280bc8fe3d640922769e114fdd63e9350ce3beed31df5bc5d72d366222fbd76d23ed599aed7f4a1efddbc00054c9289a29514a0fa4c876b4495d799d6a633b20c0484eb5a0c0b417b1f548b424e4edbf2001530063412a9c45ff018338bfac56c774f92bceef90a072452c5beb3058fb2ae623791608ddb965aeb9be308797d24f39c54ec1a53333a0acde5ff52b151ed908f591d2b96c0d58f259cb41d21cf9c996ab55c7784f5d4d98bfc2959e2b6dca6d05bd26e", + "060dde2ab38be4fb916a1f7039aa08d1897e6af7a469a52b9f2d64932023b40e5f4c5f138b67ce6b580a55ab08df6c688d8b75248afab846fc3e574e9a06bb01661fcbf82de7fb3a9761a8d8a3062b8aaa2a4b8819fc534937df184ba337c07a52c99476af5a68e64cdd5882d20bc8f9a8b8b2449ed9049744bb639581765bc6a847730199682604478e0a87ae3d526816245bbaeb647d26ba2b80c92624", + "085782472e9a8a5f866c060baae2a2cf6eb23011c3826ee16e", + "05c7f2adcb46ca5c8a4499cd5941a06a8fbba7c6b3829e83f9f000e87ebc44ab66471df8ef912576db624f06a1e2c7a57cfbb1014066e91c550b0858d4e4389df79aff638c9cd70e48e0e467c284334b8ea67a6688ccb0b8610fc1a5a543875606af69c2e167b51e7e2bb836832372bb6d8af486a5ce313c2c35b97bf2d6563aba021d51fe7057b03e95871265e8ce3d897eb66e0c9a58dab48c03efcaf6" + }, + { /* i=2366 cDividendBits=1511 cDivisorBits=1234 */ + "481a62fd2c2a89863bc4c7395a00c081965ff7990ea5b718e22bcd62212898d71e14c03a54a504540bdb96205f4db1768a748f2d11ba61db93747f5732218461e1c19b685ec2102f17baaf5d1d6732763177abe206ef0bfa098aabb1119f178deaa0b31bd806eb67cf38ffb053b54b8423d5e49925632a341b6a19628fea94c852c9222ae1ab82c9ae8018261ba2574bb312cdd8d17317c3d1d53cc6aa87410fd474c4a6ec781237a9c11edb4c418db2753349e4b3707410f89c45108b", + "cc976fcfbd72f0045604fd653b1e93927c97d77e005d0e3119e07dcbbd4a1938f34494dacd9a4b921ff5abf3f05c3d0e9f5a520ac0e4366f42286f187ec93f2aabe32c47f2f2a01f389bcf2d9ea662e1c057aa1cb41c635f5b818a456ad5afe007485b58fb797772cb634ed23183a9467141eac97b93535db98ba6582df459cbb145aa9ae66fbcb6811c9e5273498c60c8f423cd684e474c84b7", + "5a387dd1e257efe5c94418d41574c4cac55f255e80535c57bd52b9f7828f27d14878fd", + "294df3d77e3649f051d640df3eecb13baad8460ac3b593bd3b45e0e4095dd1b42803dc0d4a9e3cd7ba63bdaf674c4528ed3b3fa9e02048b998d36cb5b9edd0c29250117b32331808c2cc6878b78bc30dd1dca28d10b9893a61c6badda1f268da29b4c1644757f85d46c6f9c9edccbe3a788f0d8017facd7ae9b56e07cd48bb0eaaa156f86d70fb5e53275b524fc85e88e9cef69d53708cf81fb0" + }, + { /* i=2367 cDividendBits=1366 cDivisorBits=179 */ + "0b808bdedfd3b4ced0a67b6226f4244c5a2a9442def77aba35e1d791e131f19774e9248bb0465c64f77c5377d443de2515a9419722e2257d6599a0e35510630152696a3d74b3e9adb6046b4cafa51ab16649fa550bf034c1add88ecf2bd47b6f5213cd4e1e2eee2944ddf9b72c6ffd044667f44e8214aebcf1f3be42491b3a9fe68ea6ea5edaac360315bfa2c3ef804cf55b4bccd8d822da893827978b50933983b9fc68fcb038686bc398", + "0174d4963e7e9cc70feaaf30b0f36a29023715c9b7ddb0", + "07e5d753ed22700ef3d53b8222aef447cc0583d5e019bad225772ab67e409e11bf8fdcccee393554fb81d22e7e9f51ac0db96d873c3a8cd14d214bff556a7795a34201f4255bf872640dae47358ea8f1aabe39d9548bfc447a8f29c31ef55def20f5ff064cc5cbb79ac4c3f7272cf371ee8cf86b211cd3ecfcd60a8b34aa5deebb43a67d32d8754201b77b0d17dc49186a564551c0", + "0138b5bada2919e9334fd60a688a998f280d2610f0cf98" + }, + { /* i=2368 cDividendBits=3026 cDivisorBits=273 */ + "02ba5e4fc18dac38bc42287be9de2430c5bc9f7817579215128aba8734907f0ab414fe81ddc848252f3120799395f6d9925bcba09d97c4fbe753e7f52866955aca81604a67f87867b7113c2bfd7e9d0103df8f0bca17fa23fb494431a9d638f0a805869e899afec484adabef917cf7775edb986f1625aa60336894f0f36ad65dc7ee46c8678fdbbd97be85122f0b3060860aa242e80d6ded9ffbed512ae54ab957936da66599f99cbf83e646c35fefa5111466db6e249dceebb8dbcbccfdb27d71a30297aa43131246702cfe10e0d4c5a803b59937f15e0ffa0ac66148a4227efa7fee7adccbf929a6291e953007127c51d3f7f86aaf8ff1e7cf78d187effd55d51d6c63ead1543d5d3248c1bd200044e223085ed8d27b36f8eed889e8bfab03d7bd33cea1c2ec7cdbd23834ab649db5fabdb947017582a916cca927b5219055f8ea4b31d510867562d0f3f94b17eae2b4b5e571114261e0f9e6acccd5a6e8a354faf3c39ca90a350e94b5466ce525c4041771ba6dcce538e51909", + "2f19536dcdd83a651302148637950404e920a70f11883ed65771062ae4554264676e", + "0ed3e39b12ec95f1009d84dc291951f48a680a6622f1b4c1c3692dfd42c8b7291b49ade21708f08cbc547ef1a155e378addc76a543c07de2c8b606a3ad9f0d9c5cfabfae7198e28bffc7ce79b84e639012826d608fdc4fcc63c35b2e1c622aae7d9ffa68d162b899388478ec01e072726f9294f398881f7736d6862650f93106667e749ec445ca05b6a15ecd26bb40c8d54510064c4c10c10d7a8ec07d9fe9ac909311c2b74f15b6c656102bbbd6e0f4c8498c9312f50be9d14cfe7248fead05cbe691d3ddda4c05dfedb449bc5b363980df487d20b379b59dc34311cb8a1a648a28ca99a9f6a6b8e4fdd21241c73c8a7a23c3503c164d4a4120e31045f275b2f9861f68c3bf737e24ef5c7c486e91a5dfa6b81846f747c86c7633ae2e612b4568b698b8110aa4b99314e640f9d481dcf49f4c2141011642fce21de8e7047d4bedb9f32ea86e280f22bfd77b4292239408a816675159eedff5", + "1346a5017573c376809e1c566a31295efc78aba165748d2f5604104c655bd2714ac3" + }, + { /* i=2369 cDividendBits=3702 cDivisorBits=2761 */ + "354479ca2114a248d57f21b37b93a0047d4ba3fcbef69bca4c78908b05f8294071c66d723e67a0357129bfa5f9f15b3be9b54869396a8d807beed99ee2a2b1e770a43d7d230152a457095bd5c542a4d7d6d89ec27cb4a4622cb7e6aa0b7e98933569bf7441d732b9caa9ba32860faccdcb25ac58b88d489bde578a303cf45e413f58739962033b6b4d355019e5dae3fd659220916371adf1be7d60cfac22d36d6b10ef55709784bf22b6870ccd40abe5059957d9abf9ed4feb5d4abcea93901c352171aed7daaf051f89c20a82a3668352ca305f30d36a0065bf3daeeb17be244e908c45f941edaea53592e984b5dba64de000a59df42220210144b809ed6ad09d20230ad6ead0b46ceaf0a3fedd03765cec72e2b51fd5460422aee3b5465e745058e062c1a63c32b09108a16269c42e2ee9ad4e7ddbf4b2212efd3958f8aa02141a09fceca608868fa5aeffe32d6b46839bc4db868362dae08e8dba022d8fa55a1ac31d11d7c746f298327b84cf1f9b98cc7328f2f3ac70263fc3153df0113ade33758fb882ea2c8bfc0e97dbeeb745d016e8a2f26f82e38f304d69c18f22f4e66ef92f717189ae37bb149e620b0299ecebdd8e4f165a7d5224ce7594c03ccb3d20d3d6d19980bcd38f1c64b765a9", + "01b0d410721fb1b0d6901a5031483b41ae802f49dda062f8a05dfe15b691bddca8bce33b3828274d58acda93c62f8f1813c5cd96607d6e74905bc0118003f2c0c81a5101e6bdc1e0ef58cbbbf741e516b40de76607b964fdf5cd806ff99eefd4d861321c2031c1d3f19c33cdfefa8002aac5b59277159df3e5f6e2cd391e3bb9417c26c25b4d4346e6346ee2d280c75ad7935a7429e99733eb9f0df8ae45c082d31b4d015d7c631f571935ff752ef67e0290cfca8eb3faad19001a686b4d3190a56b95786ec73aee790781cb9cad5b5024a4b99be1d1883de38ca7ae6659ebe59901bccfaf8d55117e4cd26b433f4716dd07a7b99f52cd8884fe8e412805e21ac9aec8d05fffba2e208d95dd6922bac9d15274e84900d9090caadc419f6058237234036595f427f304f73e9ccee533fccb78bcc3f9031bae3869af7cc0ffc1f80154cf4624efcd04335c38f4903cf63a98497f23deb72cce8875", + "1f8168a6b7150322a714b5b933d04dcbfd4daa38e9864c8725a3e59202748d0525d56f5e3ce3c05b6a13b9c001b0f4e5b7708037bbb73f52d95290ae3b84e6cb1845779a2209a403fa06cb65e0f4673999099cec63d834a142738c8827a67979ab8e4dc7c6c388e4b5581776acabe63c404035a73444", + "01a5dd478513b9d1ba8be8a5c9094a1a92df17f71ebe2694071c06edb4e604f256303e3a5e238b21ae8d937b9eee52cf07783c3df7af02a853d676adce45ea21f24494eea021dd0b8a4285a47d6e7a9d6f48e36b84c0114633dccb029c6a04de2281625fe81836abe08c8fe51185e604840cd528e9f5a2fca960daa8198f12ca23fd0bb4f69f2dfa97175b69dcb5b067daa1cecdf0d3c5dea85ea13743058dc323140303239e2bd30e639dacd43b0b2aa75a7126a6ed6fca6122793b879ef328fad8478e4108152b42d45f22bed6abd321f5b0bb16fec8dfe10b24b7f6753b8b8e8a0f19861bbf8db95ddb2e28dc5f461514da238b43ee8baae2d4b7160ee739b77b3859c51bcf8c4c6f7d68efc145ae8ce4fee5af245e1121f3cf74109e184a1db157982740e5320b36c223951d0810d83c42b19a7a724d0e6cab7a51480495b195c1de41f3160fe0281653871158a6907e891ed71f4cd06295" + }, + { /* i=2370 cDividendBits=3201 cDivisorBits=520 */ + "05853dacc91622b9a6bec91c9bc7955d6c00aa2d17b3d67e11b8a10dfca5a30622ca313bcc8c65fa82cdd554cbcf193582cd61c9c4494dc73e10804220922f1a446e401eb0c8dd66b15efc410bd9940fcb1569a2d0834277ec98bb650a84e5053ce0a3fac3446d1a4c65d59f3ab49f3feb63940c633311e8ebd69698cd5d9e68c56e7c14fd6a49648ca6f3c21b8024c24a07f8492564f1d62e0c0f88988385137e37bf41818f061d4d777a9fff177e3fa068f9259e66605edce434f90906b521529bcde534d7a04139c8e8811e84f5ece91a99b48ace95f194ba93936010f137d969a5b2b436a650affc763af1d525e7b395263aa4c48038ceea12aac5b6942b1d89032cadc521ae7b8db11acf309c6b33274ca6d92aab77115975076c12160872fc7904e0b7167e2e953318775fd36f7c9bcc918c7132788d1358c3d1ef8d199bb29294cd2c4b939d21411bd08a2676cbba3d9a75addffb1646ba083dd545892f260b84ae50c9fc9e803a095e50187c3c95221956c3a19ea16de6d94cdc8a225ca9a098452539cd928b5f64eb0fb4e3", + "cc2e1045c722168a3b457591b817edc9611742573d073c93545e40fc4959e2a422aef922e00e58c3857676d0af16561e0cae4a2cf5c5d9ec3d6b7e344c00470c45", + "06ebea787fc2afc7146aa7e06ea2931e0e30f70c27e4cc59644140700bd562c5a8dcc75f8d5660054170f8b47704995839463f266ea7ce8309240e317771c4280d1e9d61dedfa37708f36b32d44716d4217826d489cc3a19a4f5eab3e844f77bc999e047995ad6c80ce8d364d6920d3cecb529bababbbc9816c0c5246469bf4c6c2566e7d9174dd6d194c364777c5f8f59cdbc4ffb9b34a4aef4a1bbfcd1ef01d5c8ac8bc1e734800b8827b61f6ff57a9dd2b8e099dbf208a5c77b03fcb1b9ccde4ab991251892aabfbaf956449f49d01083db32a73b4936eb2e7f911796b736c203506205af7c31d13a5ca5b3fb7914b6a96f8c1a3a34c03a8e7fb6ccdae0d9db8a943f01c53daadd31cc296874f73def66d5f61bf8fd74abd80cb958732d7d2479c1899a36cc52bc9c7b7567d24e872ea321b100fd7ece351cd83909262bb7b55d9caf735327932864619d8b4d2f", + "746963d3fa48e9559d532b5ef34f4a00b8ad797e91bb34b0637ec51095166f3b899644abc5525c621148f7272e16acc3c2eb82c2b9dcba080879b6961c84dcb338" + }, + { /* i=2371 cDividendBits=1364 cDivisorBits=69 */ + "08b4dc6cf0e8c6716e8918a817f051f2ae62fd265df68739b4c76aff85fef64f94dca4c3c39e23b90d46f2df581592fec2a70d00cdd3629a292daafd9efd583df7a21af8b4290387b0b5ce0c63c75770f3cb045ee429f96e0a3d111acab149c09cc0933d01a6f49065b7ef6d0e9378d7d84ca9ba066445db23be2603fa745d1299aa0fd721e38443ebf6c253cf7d34359b48078ad7aeb547e3b920a1ece128503b3fdf00f56b9192f30f82", + "02fbf9c5536ac77426", + "02eade05ce05d792d39868ab61f74ed56f1747800b3e3a5122252678ab7c4e2c763cb3676d575059387eb4e84d139cb3b8130abebae4b6e7f86265215986c9ad2feea71732ec31a488c5127c2de542fa55a5a86d83d1cf53973b8a295142b301a44298dd01bb3d4e401a6ee2c8b0a3b6dcfb27b9c328286818ca75df0ea91731e95bfd9628350ade1246aee57c6766f78e4a3e1c9e927461dd3f57df26162ad7b4c9b6", + "01f3c7ba677a3ca67e" + }, + { /* i=2372 cDividendBits=1681 cDivisorBits=134 */ + "0180f5312bde4406fd192137890bebce25a5b11d24d5be2cada3030ae601a8308a69e9a1f7b12c5fbe5499282ac26cf679ffa2cae6ea0cdc6d97688edac93d4b236d66419350fa42db95d39eb333a151876ccb70634b5a26ba6fd57e0861597d4d68bdf20227696f18e209fd160206141917f0a9a64d995d98a3c587a16f4277755ef69e2cf31cbab93552e10c8ee00ab7281d9adc1cef7af4dfc4af61a5d6c8b580f18f5ce0ca86f710fc9ded274cd46b173e7e1554942c22ef3a21db8f3f9acdd321cf272f21e2a2b7cb90151ae171c01214", + "24897f54339ca67ecd5da28b5e164e7439", + "0a893c81bad04c9f7820b618ff26d36054160dd6d98b24aa58b93869f0c8caaa609096bc85e7b420a470ecb5f44787bdecadfa13bbb50681fdc99d71e2d856bc43d18f682d9600382e6190bfe5bda978fa6158a864512dd361fdea0305da71166d6eace501a5e34abddc13475adb1d72f97a7d28195326ed6e81e1af36b1a952b4c5753657b235f3dbcb3c286513c368a47f55b814ab3038fd94aa386c774286384d1ee1b8853f761089db7ed7ae40a02abfdd8eb00156b2778fdbe2d650b36d43bf", + "1920dba2294c6469d61daf2d5ced87708d" + }, + { /* i=2373 cDividendBits=4023 cDivisorBits=4 */ + "7cc740f49005d7e5a5c759b866527a3011e9450081565ece2e5c29387dfbbb3d24b7582bffebe8f5d500e2ae5ebb37563fb211a597f5138b2e598a4097b8f2214dd5140cd04b3cfb540453485bfd82a290ad949c460032d35bc8ed5d7a311e9c12a90216899ca58644ee10c1f6f27a8f543abec789b5bb5a4e940c545707ff51eb68af011fcb9978eb3e6280ecefc491b60a91615275021924fb61cfcbc67b3de5039a57d993aeb4a81f6eea6e68f0405e1a46b63e039106a40e559814928136cc396387e3ad8a717478abed1a814fd5cf2d02495c981dd47eee45924fcb2142c738fade78e68528eb175eed082ae5c0c7e94cced4efa2cb058b2904982be9da46998067ddc0ac8829d4856cfa2b3be58c249c0281954a53820ed821945f24dcef97b54829311d0305250b06e621b22bfeca25b645cc64efa40b0823b475b8b393e80147593a28455c384305762452b84c812afffdfb7de5bb8484cfd8e0cf664441884cda90c362a23f8145e443de4c3845a31913e67a35b5caf77117205e7402ae2146dddcb05a09b71039dea1f32e086e419699f21c82943225703cd316c37cedaa5d65eafe4eb56c0e82835e43630e1bdf78a02f155e72c92dbc6a72c3cbf7f11c40ca5f1909f154bbf2f08e44a625bf297dc4b01ffc4e492586576c85220d9f4fa74c4535db53fc7c25fae9af8f43e2010999eb2a", + "0f", + "08518cdd1aab0e64a4a6e3d917e35d7aabdc59eef78e4a96475b7a36f7550c7b8afb2802eeed9810638897a53983f29f5994679392a9f03c7a8e80aef90c54689ec9f0451ef3f2ffb0448e15e3ffd5824de9704eaf5558b8c1da31f52a478a92f02d668a092c93917c0fdefbdd435d81059d842f6f94a617164e22f48e55ddd242e4d8778aa72c5d650428b342feeaf8a5bc70178e07ccf09c10c2410d95c3f30f4481c19709d872719bb20fa0f5ede2286826d8f3114def604538e8015f19ae51e1b14d5371f829b26e71dc9b5df4417436335a395f797490fed1702773f12695d09942080f5e35ed8a176522ad86c895dc5a7430543e0d88e724de2c4731b937e819a086400b808b526f4b882503fe3c8af955801b04f480231f79b48ee052fee7fb04cf8bcebbef46bc77ed357247331e8b0c26c95c0ff9de9a24837f50948153bbd18e7b58049fbf7bef4c248e0c495df1ccccaa5db9fb6f3c0ddb422ff5c048a2afca4deae471376f04a8d1531625e282570153a1bf5062dd4bce577dc377a5356b1fdb833933d90114ecb5769cab3a8ce7e8213519c59cf16de1ebf0736eba82d306cb6649838fbcb35e1759d3675731080aadce397f1e7a840718b7b843babd9deb5bac55ff05a621433caf3e46c87a3b95a55777386b46c4b07eb38acdb54993afc058ec7d10d5139942c76ff37577892c6502", + "0c" + }, + { /* i=2374 cDividendBits=100 cDivisorBits=69 */ + "0effc2053e085c9c687db8e2b4", + "0bea3cc3f971e9937b", + "0142434691", + "0ab2cacb56cae7b809" + }, + { /* i=2375 cDividendBits=2733 cDivisorBits=146 */ + "0345f3c3f4cd819b53d9525f9be275a97f63c7e59cd0dfb8733de9cca7da642750d236b99e5f7e5ef17b6f63a3430ea031b30d9da0dca01774d226427018b176c8e7d25c0c291e992ff14e0e269682b09b7d52574c274c26e87297290b0220295a5c2fdc4ab9e36266a8c0499c37ec2acf6727e13cee8f7ca9578c4df6d14b50d897844601bc9ef8deb97e18561f6a9b37d649d0b8ecc89e96d92ffd5749fee889f32923bb7e333222053c5bbb51083e54ce93c8562bcc599a684fd2cd61cbb4812491d4e3190c062f25f3781ebddf2c1005245e1d5bae7aa09ec1e47d387edde8593038eb62ada90f6397db4e996d523a4098029f15be87f51e33a54c316b35aaa4789600287c48032a940d8d5063a5fa46a012b9a4c3a9354f1c038bbf620f187ba8ac41071f02ba071640c585b63de5fad35e4c519112713bd724a7d06ac2b83e3585fb9c1950265313a110ab0954c2a4b62a01de", + "01e351d5b8543758421b2c1e1904f4db7d1974", + "01bbd698ec02d519c3f024e8b36037f721cc179f95278fea45d370a6a31e7bd5fa86f6ffb298d4204efd36c8dcf96b875166066df77cd3bf3dbfdc2e93aaceb2e1f28271145f162c2d034f83b732d86c62de6dc9f7650c174343797ce811030355031120afb9c15e8deb9a9780c6f0a47572429e74b37aae4000241bb058355c6ba0f04781bee35f149367434bf4e7918ef23abfb94564a6f3390c2cd30fa73a4a61fed4289b16a48525120c57adaee494a6113a82e91a0c722333fd8446840497629e68e0269139bbaee855fcc38ed0f0fa513450eb169489c1c0e9a8b8323511f3c9580d271ef70d78a82b227a49ccc42cdd5a4095c3d14f75855b22a0b0ae75805299fcf6a49cfea4dde184d6f09ed8a18639a676d4987fe3bcaf3a062733a4f80ddb6aafde50031dbba15293dcfc87e8c246ccdb5dea4f28c03a66016a3e5682b8e4", + "01c99b463a5527c8a16947331eaca36b8bf68e" + }, + { /* i=2376 cDividendBits=1987 cDivisorBits=1707 */ + "071c62b67e6e112e8f165c9fea5fc0961b66c6b4171a4960c03fe08bb49eb2108bd3ac1c87b3cd03b59e7a68b7ecc70a68264c6cf0ea96cc24f9dab08b52afe1254e14d4ef722a8875b868c979b543f1af1cc8da54dd3244341f88c1e6ee9387127baaf8e43e0d79eb084cd6518fce67da7599d5a472b957aec00688987f11e66746bcb03caa82080b7cb624b0d4f8d2318c93dc0e4ae9e44b1f1e2ecc12e2eafbb1ccce24f3b31a96a01774f553a103c4aceb55946f4d49c20ef21377cbfe6b4246432b9f238758e844fe0c5c30f4402fb3df92a83cdd021eafac95f1b5609fe639420d3ccc5cac731ea74e22474cee952de9bc74764e64bd", + "055d2de5ad3bbb38fc52d7b9f9e58f20028d2f481ee9bb945ec3a30dbad3434b152dee7500b70753b6babfb62e2f8fe5e4cdf4d91da7e6369deb14115c798eaf5e59f6e02b95bdc8f56a98b74d9977910232d6fd85c99904c2d273fea53b16149a08c850206205ab4e56b08b54b4aa60a5d15a30ee9cf2ca9557d6202b813d7f840d99efca9f89d9f4e6828d910f1276483a46feaf78fd5fffe14b42d6307728ee4125e5477457720edd11d549291d4d771948fc98809bdb32a91dc81dd1e7b9c7bdf253795ee441490dbe82facb9d9624e61b73c17f", + "01535f40c0150976a048dc1a62dc36e4221a545f28049f54038f185308e0e48dac0e11ae", + "029df3f834c658697efe2fceb7884eb38d8724e9b8877b7ceb7c4565435af7ec1f5c8a5d5355fa7c6743d30688e2b25090603e8622ea878f8846de667ea18909c4286d413e3b48de2e766ba63aa423f6d2c49a4dd4844c95b26d78316786e0b1c0c60e498be47c6a05eab66e9d6dd952f322c2ae7160ce542b570c8ac2762bc38c999c6088efde725a6b47f40d9aeb9d593479379280c7e27293836060eb38a3a82fd9b99392fb3440761d85997f3309113d0b85bc65dd62aa999c48b50d59eb20c93c0a0ea2c5f0a9ab403be905fc2b6af234d5716b" + }, + { /* i=2377 cDividendBits=3425 cDivisorBits=3252 */ + "a1c271a86110c8a6ac51892084b3f2eb66a07ee9f3e013b6178520aabe57b5ff790819b18dc3a040fcf9be15d0fca50fbc52a957de77e5231979170dd9fb715003bb92877d7291956e9488de592b0be98f507bfbf3e36f014a760738de99ff24f06ec6d65647a70d72adb5ad9ae28b82f8047d29d6813d4eb8e5436bc025ae93577c223d0ee0872ef96ed47da6cb164fd4c39ac1d630a2b62cb368d101c2cd77c23011a716feb39f7120937d82c636829166de214170ea63d66b4c4966832965d5e4b353f94819963c9ebbc8ef440cdf90f92b997880b1babfd98bc4e874ea8242b2cda031d74f6710bbb4ab57fcd2e7db5a1726388ecf0bebc059f8d9c4c04b177c0e3e2c784e0c84d942652dfe3eb93829ba586d1cb1867f4db16ac4c1f2091a0a9818c9e69ca790cd73c9dd848d3512bc301a3981352140224cd99ce5d2c45ebd30f658d9cd09b0e63200341bdbd74d0e40e357ad871950a47b1b7faff3baa848cfd9969fb7e646780d3e65daf211a86dbdf5235ec14e9d8350754c82e66777515055c3f2834103121092cbfd07a62294377d296ce691f40fafb7f5bfc17e486cfefdb160ed45c91698ea", + "c5a0421913c064a26256b6f71e008ea53716b16fb3908e96a3710bd75bbf81130148bca31a1dd4904d30d05e56caa005ab0f7c9cd2ee698a5fa88f1a41cf70949cff0e1bbd2375c7dcabe953d999e9b70d91e2c02b0b4a180fa2c442d9c1d164c1b50ecdc9ada8e1facd1de74041652810a8a705a0675057660e82d14f3e1b1c17416bd7ae7ea32553f5681c7048abc6ddc39afefc53012bff3db8fbbaeab82551ed9c720160f5e522490127d1ee5c7c5cbb38d6f0c1ae7e6f100d33c35a8823125a2983498e7115347085b8087c293c8a0a386c6525a6d202e6cff0172a9fb4bbdcfefbd7fb37441076a65969c9d780f953954f57d24f9ddedcbab5b53cd5e282a59bbfa258281ae7b3ea1abe10ff6711eccd11fc4deb8bd4757a53ab140133fb8e5b455bee85fe7931903d4bc44e47b842ebd5b875e7dcc4256bab594e70359b8c6a8ce5cb3f024816bbd5b79b241fd8e8045e3cb561f44c96bcfd4ad4b2a8216bbe92f13b456072609f8fe0af2cd7b19aaf01a499bfb2fc78612c7b1c100419131ce0f785402e3aa21e45c12bfe537da207ce0550", + "d18a19021ad5825197977a3b0b0366fc4cdbe74ea06e", + "5617ea36bba3a7e283dbf24165e72c660512a29cc461834bbea184e2bf6db0e38f0deec2630cf1cfeae16aac29cf8a3348aa8a15e8929bc0d7b6b058496bba38854d35c79c37c6b6f025c4499d719accbd24a80a7742938f6be494f34f17bb82f13c6812b89764aac63702aea3821dcae9425cb672169cf12ef127ef625fe3d12719f7233a9e2a9e354d6aa3fd7ed6cdf416ce9067c913cf67eb642c838700b8390e024e339114d2d468604ed79b8b9da43b1129bfe8c6f664b3c4ca0128e7ae2eb11fd82c4ccc6f30e29a1e6a571c52bd8436d437aae8f1ed7eaae96a9cde4ae3cd4c53d81cb072d8e14bceaaffaa08dc8177d3ec5e174cf8ce58d28f1dc9d90cc866b0a205c3fd70800ecf7e99d2c4055ad5f63f7cb82718deecf5708df698cfcf03a6837dbc04f9384412fba17eadf66ff41c97997dd4ed36f273548069c5054ea2a0b9f2b4b3cea1098d416c121b6f81b6815ae4c9e61d33e1c047455e200b428e4d1c481754c9f78f3402b83914fca1d2220b01b1a0cfeaa3c003ea53c78220f1f607dee17667893f6ad28bcd0019c4dcde508a" + }, + { /* i=2378 cDividendBits=4032 cDivisorBits=157 */ + "88cf684275f77ea65a8083580db1c15e79fe7c1efb27632c4a6599cb5fa8a14be044948f65fd5fcfa71ecfdcd17566b1cdd1d70cf0589d3f87abe2252f2e2fc4a7411fe849040be0482b3367dba22dd076cddbc2ee1cc93f213aea76d5fabfd689d27d4a8ea60b34249eafe1b8835abf4858dfbc8c4c47b179bc3e2a1467d2ed83726f92de43fdd448a784f606d41398fa844f2f3f29fbea681f7c74b2377a90d0419aecfc0e0c9f28dd078584c411d9e67883fa7a4d164e62796b88ef243ad96df29531e60b038021c16597e037e316dd61190192eb6651f63cac896c5afa24123e0c2ebae61a6c8b5f569a40497a24f6e4d1d29aff82d6e652d22b31d6693e0ec5f2f373a2b263d3a33510a85a9a3c4f6f2becc742df734ce1e28f762cb4e1ff23f34939118948d7705ddcaad52ba31f71771f49648fcf90e9dc22d180925c770818abeadc1023ed1ce9ba33290cf989e305208f5470b1617d926066c56cea7e383677eecab2e77261631e23ecf055a44b3d1f8e0561af29869fcc3ee4821c8c36cd8d64075fec7099e0e2da39a9d9869c4f7393e81b035795852ff522748dd20b631752b3ee16f5d64ddd5429adfa031efc918f43b830d92aa5a5f84090969a918d04317f6545a325d2e84462eb2666990957134f80230786aa700f7b14293d5f46abc53e9c5bee886cff9d0bc216d00dc44562d293d5", + "1dcbefe078d402ca63443df4e2461d01adbfb8c8", + "04976a432f01dd82d7790649123eb7e014fc646f0903171a3291518f3f9d65c714b95adb1856de0fe4636fde786fcbeb4c91342bf0092d2272eae6f1edd9ed25e401321b3b03c7e47b7e5179ebacfc3adeb2c563b882dc2c6800b92fd588e5fd6ab20a6ed696ea760baa2e95171d3fa771e105e2f473aaa2fbda16b60406dd1f5f805d90edf608ea9642216c702bd48eb19b3083ad8c71468a666d7e2a4319e8f0f2e1efb4082e9b600cefaafd5d5b1dd4314a68cc6f257defa9eaca9d5b784762dd615fc3b805806cd5a77d8f7b345080001a015a9aea605548f644ef74976080c64b4fc48c5894843ed49aa4d1502a67f082cc55a5f32ed9d50e5d7100d8c2dad979fc7d2b07a2006f3ded73cf97e1d0bc2567aa3976f05b60e4eed343a8027cdeb15c34e7fca282c1d9b23b231e76c2686ea86d2e1674348e84a6c4199818506af90a864695ffdfd32175b5a3d570ade2b232b1fcfe9d0e475fa4287322a26ec762deaa5faef9f3eff5b30992811bb1e3424e0d023293ea956bafc184202592b89ce93d06d667c5bbc12a9d7d5379190c7cc7009390a2bbafeb213f99ba26c72d5dc40fedab3de0a0c5ed5060470e578730234f002be5c42d3b92fabb6ab694010caa70a4104fd199e55121016424c4c7256f8a38924719fe69c975247e7149f684ea9d", + "12c915607520646df110e720240aa5f91e37712d" + }, + { /* i=2379 cDividendBits=3636 cDivisorBits=3338 */ + "0f8b00e037dae0561f834a96a582bcff848bb54bb93b3c1e212ece6aa59cf92e1916c0b5c562d68addef809feb81066ed43fb747b3c26ae8c29e366c9cb5b72de8ba818d9c4748aa4c3a0c356eb8703a2ce7407484de24ce8a3c5468673bf719d1ffe159076b831f2a8ceabeb03134176d1a379f1ee172c227ce25c89ecaff9aca6bbb0816258e56af2a5f1321a9e1eed2a24c2cd158da32c975ae1a5fea25b047e3b5abaef516ae0b6abb59b656eaf43a188026f5c0378fde73f512624e1f77c677cdfaf278861050c195db44cc0c4545863c7681cad3364db9064fc2b7c5697a7d2fe1499687b8ff5c32e477d6542fb0be4ee1af8720a289d0eb0eb179e54dce15d1dbd4e6eafd4f5cb87e5e43cdf54293c6e43fcf39b29df6364f7e4ed1fb27850dc8fec88588438e72ff194bcbd28573c4ba9df5b04f06132d0cd9f316bd888900d8b3f446ea0fab648e1ece868da60251d2ef63a1e44380fc17e0680708151e2acaea85caab6668a424597544b2805cc93e7e09681ec6f145dcc2ece29d4b1d6bfe9d7e048875a27c3a0f4fe30ee5b635bc6761fc61bf47013952497b09f8db9b3efe12c71a122f6801c47e7314de48dc03fff82d0b5a0d4eb52231c838e9f94a9698e536", + "01a0bbe357427f4c6163f9f86a7b5131b55cd39aad7e285027dbe1d6ff4952e1bfccf2fda582f5d1003a5cac30982f32050d89fef72c5f5fb133f4a78de9eb88d20df0f065fb174ce13d0530d734cee4e104cb83a86c10c4ca469723e6b81cdb66bd2475a0ebc9029076842b8c145bd46b62588a62e0c156eb1b559a1f39640fc6790947adb6eb4531b36bad78fb905861d9e1f9c26215563beff4c6b7e5cb1db0e9f2aa065633b15e5a8e72f7b5987ed738f2de43f8be92dd42bb8a7cdbf201a7128d3cb909e421fccb7d5f500c25e039b0f92c32c2e332eddbda2b9d78e932ded1c7c669d1e70f105eb89f9dbb1482d8b344e4b9ce9f10dad13af5cb8582b7510f8c0936d7856ee4f8f1460f187a9a1d3152185146b126f5318a3dabc082a0735bd0f9180772d470bd2ebab2981cbc013e72338d70cb65b617b2ad2cc715758861e7d7289523e5ead7389066d8dc154753ada5edba514e2b48f60a76152d628556289b574e29260cfe6a43431f10c39903990bda747839ea65a838b86cec55ab16021d64916bc67fb5f2da746f122dd70134c943cc29b23c4eb098885e792f21e2", + "098c4e18ed11517c71ca2527c42273ff788c376435e88f7d4fe8f66edd718e17e65db0bf89e5", + "91bbf99786285c172711ba61f5c5531cfcbdedda71186f4c9d986d24162a7d11af31b8403c1acfe8d3b5891785bfbc2aec425d5040eaf2299aeea3180038ce4c412449a2ec2360ea881b041595b2ada64a633f23dc1ce3b00a14e782c7dad2677d2172925d594e1ec6587bc83550b3e2acc3a044d24c08268df120ed0133f22e88812f38561ddff32fa6776d2e9b78691bb77c4c031544d4a0a8e4bfe402c1f27f2cd1a500deacd7be1ab7b93b55e1fdb0332bbb5c8ad89c702ff7b5a5e5d7401b000f10cbecb257d865bfb549da341eb542ac4247e085f715f3ca610bef024f69ef3831ae53937ecee7c489e1bdb67ed045c481ae4158a0480be3f5590f74dc855c2e5311ff16bb00aca6c1d5ca8da2e87c873e6ff3589ef781a251aa14276db5d4135b33f35480c01658ab01998390fe4168b7baf5d145bd690fad257bf551f09a9508daa167e3f7e14ea97268124be27326ac2c235618d047f71def8f6333658ae324b9a0f73cc6213aec5ef88be83f024a637d0cb1a85347e29a69bad490db1e924fb7b086fbe18b053b19ffd9d571a976db632b80015827d2415e4eafa40c" + }, + { /* i=2380 cDividendBits=2722 cDivisorBits=211 */ + "015cce467fbb96c824dd9a6b5de5f7eb812e0153d27f79e9169593bb9f9b67825716cf2f4481e8f642e24c5c636510c847450d12eb4a7fa46773603f8894d47f5fbcfd30efad23ea4a10e9a2428ecdfec40d92bd7d1f274d374c783cfed11ee2d176551045c6282ae0d405b3c84a5417478ec3af30ae00080da8e01fbd971bfbbd341d7c1ca77c8c458557ac9e3f2968e0fd6392fbaededefa2b1bd9506a1b950c675c6ff827d210aea91c8eb8245dea7c47b754c0c310ff24a32efdc9545f9b96bcd7c53c3e34834f6851fbb10a0350b2f9090446591aba43f38e0da22fec6de6089c2be16356c7dae53697b23505aa7249b066814bfdd5d54c99f5efd1e4e8eeec6f31dcb02db4c15e8eaf4c0956460bf9d135c96c812aa2e61319489d6d38a7a30917cb4f63aaf14b045bb36ad071eeb56bcb93f5f0e1abab67d10f7c911952f7e25bd0f3a11c5df667e677a2033b257b855692", + "0179d1dc7e1cf99c532c4e4698892f46375ae3f71a6f0bcdd1dab3", + "ec574715e8d93647d294d1645b910537ea8a049259d99422753fd714966306ef619603b61ef575c6c9c82d082d39d95db48d067b7c54b980619933defa03eee21e918bf30a61e9eac21bf6c5ee532b452315368e99bd8fb457ab6d8d133bc98394e8cbb813ea3359a988bef42373aaa63d56dfbe1ef25cc01292b2aa2e4ceaabd55070c3166de9affe39a36f796d9aa1e2d68a3df35cb0bed73eaf0ba1d604968af21ec433647ebe42c11c3d70ae4b42ed7be407d029e1e77129b73be8b4c9cbc6eef77a3f8cc1bb8347b2e2e1632848beaa008f57d13b720d7d36b63e27246e2e1cdad3586896a19b776f44b3b8570af4448b1f396e8bd9fcf3d04c2f4cc6aa56869fb2ccaf1305292428b47abb7a5260c779dffb1f84a7ffd42ede4ae71ec05df1006f2fceddf506b3f17afcbc94590d4b56d6614cb943293b", + "0111e8fb2ba5a43086a6ea2dc3eb97bf1b845c49827a5ad8484451" + }, + { /* i=2381 cDividendBits=1377 cDivisorBits=269 */ + "2a2a7396896d30b0fe69747f728d34d9192868716edb63acef18bb5f3cf725b22795b750f43225797b49663aaccb0c45dfd85df8bffbd938859327c4bcf99a2e5a3da78fe08502f5adc99f11af1e1537c9d0e136eba1135600d7d714a3bf040e010528a54dd3344773a181e16f1c937c61318de779fcc306b9fbd69b1bcac2b7804a9e2b1d09278fa465b9adbd017166ae049ac7de46e382d874f0f3054df611dd9b0e1e0cd885fcfe96319f", + "015e5aa44a73ce4dce395a5bbced2d52827d9a26f1c06aff8fd1665785500165c885", + "1ecf6422c07e095aa5deeabd3b3ec40d129d19068b25ec0bd1da26762eec1841a97ebb9a6cdbce7b3f499b8866536c955727ed7894fa7e66130ee9436f173f1a8ff11869dec939866dc088c65c1b76ebee3a5cf48ab45fd79c6352faf171cd344ac523d64ac7e205707bf248d8fa151b115534fc4cd7295c23b033339a14671eeffd3764fb26c29c01eba0", + "9df2a73c0f5af5716d851b6efcf5f13696f2c078950a5ea92ebf4e0852db61c77f" + }, + { /* i=2382 cDividendBits=130 cDivisorBits=32 */ + "02fbea3a71e7884f00e32e80b90ec45bf7", + "2becbac1", + "116436848c34d52c09641ed912", + "0733a165" + }, + { /* i=2383 cDividendBits=2127 cDivisorBits=1972 */ + "62a688f2c60b4c100313d668bc7f51eb9e8d8ffb5b5b1929ef6074141bb49b2b299bae7d80533fc6d68d6c0192b5c0c32f08bc8ff7bfe5e92a5cb105b1b97819ff1cd0b15586f3e427755f723660dcbc55570b216c4ca0015b2948f00be5053c150e71b7d7791fcd9997353ee4d7d2a640aa07464f04c00451018954208367a1740cebd305e1603d48e780e1f441e66fe4600e37aab1bad4a96ed6546ba8ce5643cc58ffd77ebe1c114adf032d066097746ce58e8b95d2ce0e4ebb436074183c585d5e3084755dc79053055523ce4b85f87d6de604bc88275a177072549c661cde6881f45af1d0450a1c131f0bbb098d8027155bc9f95652dc905eb5cfa7518a2b12f1f9abbfd778e9a2", + "0301d505b58b4e5b65a6a26a71a88d5357ab9ea9bbfceebab18fdd74ba6a4de0e57f507f026fc219d40eacbdd91da9139886a0f6518be1474898571bf7a937d72a22d030d32d2256101fc31943cd0267391c3279af6b464e636db0b09400f875719ec3020dedd1a23f13c6d5bcf482c56660600f093b9d6f4a597cd6cfe1d98b74e4140eb779af81eab1c00762b3a4fdb1bfa595063448d201d97b6daa785f8b90571b58454b4ee56b68a52b0186f4d60ecc3a8cbe7ea89f7a283fae0d3e69cadab424a4421fc6e713bf2ef1ae7054a88c4b90742cc2014e2e3e2fb4a589474fc755d8431a3d245b2c9611fd582de00b571606aab96d38", + "20ce24d9fd73e4b6375781dddb4d2fce1c8c2fbc", + "0dc3d3935c17cd6957fe207006338261838550d7000c1a86ee8b578cb3842d33fa22e9d18c3f3eb417774da5094c9b27e649e610bb8a82fe6cd4a253f7be00b11ab300b634796782c30cec185242abf551f7fdf5a15b6fade04be9a35a81ccbd8ae62713aca41103ce980b38eaafc45c30158c9e78d1365afa52ae224898097ebbe9be8334f7f8bc43ae58396c095ab21b234e51e1eafe83b75d53bb652270c40439f180f9cd1ac0fb4a5df88182d336a65d03a3fa8570f07ed74241c8cc7d6d1248f6e26929207be80ad1372912bae167b7ee6bcaf9e7f3a00bf55403c2dca7e53518bdc99f28eb65351347302aac8d7518919f6c82" + }, + { /* i=2384 cDividendBits=595 cDivisorBits=522 */ + "0472ab5f2f25caf5e552debddc843f0c7ddb02423a63e822f2680a1aa81695926e09815de042e736a67f4d2487d4a4517ef646fdb82b945b6e16ac05802fd93360a9147956feaf5b35b08a", + "a19f6288859effdb43540de0e688c6969609513fc4cbc06be8372d3ab5515c965f486abffde7056d3e771f77f2ac2a64bcaa314f4997811c1936e59deec4cc779e", + "070b949e8258bdc0ae24", + "947d6bec8e4cf1cbeef794140f9b7a70d83e27c9b9bdbc30490fdbb60341d268d545a535534812d95c1cce89696d4ff832937ea9bd6b5b35424eca975f58a77a52" + }, + { /* i=2385 cDividendBits=3811 cDivisorBits=1699 */ + "05c710ff515fe42d9abff58b7141fddbb23a11fb5de65bb93e33fed9583891ff311789d8a99adef8beff37b386b9175d17e94929ead1cf1eca75787907e018df5fcf3926e0376a8e5458e86f45f4aa915d0cbc0f0ee85aa942ccc65a9014760a36185e99624c4c374bd8fe2e541bf9826de18d44408e480d52b1244ec55f2169d26258a70f6a48fd04e5dbd8dd548fd62c430bea9bf2bf1c2f7f80a0e186120c0372d010d1706f234fd9e7dbccb233545bcf68d94132fd8b83bf8095dbf4474ccf4557c382a109c2bf71f340e2f18901871e94af1a1cae43c13c6df79b5ce29f89960f275894dd420d9a0101a5ed2d89bab17deddd4b2a3a5f2d17c9610125cbf9cce96851c2cc1dd7d8cd746d7fd18f6ff3d144dcec6d65c015cfc7d9079199757b0c1c5c34552c9c0778b4ad018611c65aa249fac135b3686328ff1c1ff2ddf1c2b6829a183d248a8ee364fcf4f30572bbdf8879984715a55d6717e5781197868c57445f5ca74610f4309fa99b21444aefb495a26f93bc7faee4abd7f192e33710fd4940c2b5ca5816071799c4fd957381bb292aab6a703950c05adb7f600e8102af60587e4ccfee1eb7dd1eb9cfe3567410f2758721ec1f76f644f5c16f0ae770d86468eefe556f69d260141aa475cb500558c47e9c144a73adc140", + "07a172b666051d676bb62561f64ae193972720d813700f390e53372e708ddab1606e06febc343baf32626585052c16ce3e97acd15f76b2b8d8b253724f8894683157356ab74b5d5c020de6aa71ee0de284a7d12d22710d1bddda9af0e8358ad8bbbf27ee57384dfcfc7660b4444ad5a0a8111eb98cbee8f514699183bd7e6e81da5f446559f7745f5f3f9e0c918610daf80537add3df1a5aa1c4466c47a6d3e738bddd5eca99a09621a5e4d5551253dc161585815de54c4bea537d7d3b17430496af571ec0f108ed99d9ca95197faf7d2e110651e3", + "c1d50634f220174517af3ddf9a69bbee123803f9936ea1fbdcda98cb1a69dbb1422c9bf0f95b538deffeee0f8d77acd51723382ad67183d42b0f3f35f255ed42b88026768cd66080f80b1e1996bbed87664a8af196ed40c8b351bd7b96ff05c5a24a95d60277b3af689bb53bc9899ecc2e4488e9e194724d953e9c76bb10a6ad9f2bc16dd8de5d229f5d2208d5f8efd29c9ece9feb15772e1f48c6995059ea8759d2036a3329c33b6123b6234bac851adcd5796e534c6905c97d8ecd46954d110110fef1845c1b40e8d9d26cc6f1d13618b4b9560a414348280b569ca20737680971f32b9402f2c01b39cfa84ab1cb4f345399019207c86607086c2999e1946c4ecefbd4be61c8d3", + "06a3f370b1483e310ef2168a1b7cfe4f6d6b2e54af7c537022272531366ed9b18321ae1aa709a9e06c06c44dc441fac7105297d51f0468457a73d6525548d90dc9f4cfac7781aace76340ebdc75bf15e565dc62c1565b4dd2bb6d836508d11311173adc2b321c87cc79faff0939554b4d77343446319193be7d7912c629ce5dce82a703193d00913a84b548c1ecda7b58324bd67c2703e0225561476a28eed0583b8bc62df9dec06ccbb9d29248da4eaf868d9acd838a4423e893444d72b8b637b3091d78e7ba0cca1134cabf42de564ddfa7beb27" + }, + { /* i=2386 cDividendBits=2836 cDivisorBits=1708 */ + "09841af9e230bb831c7fba685411e8504b68647635a5f2039e77e3e1463112462c3ffed7960c701c9fc3814099f174729105be09cb7f6d0d8801df5ecbb72f492b47db5cf0c9994d4f44e2d99f893695df47da2ce43497ee6c39308f00d76d3301c9fc53d2f5c1e3ef01b13b343061fa474130bd410d94b7b4b308f6f3caae739e0a1ff07e13129f6c5c14852dd0b98c5afd98c8dfeb0ff3764e1e21ae432d9d5cd3a11d733ec31a01d3328e7536659929b93e6c92587e4d3ed3fc9a21b810a31fa8ff24da64718d4759a98573e8063b30dde7e8ff3c589d6d5ee41cd6f3694d7379f41282cb6e9248a093c7d8e91bf62843d307612273d5d925e40fb61099dbfbc97a67284afa126ed8802ed8b144b742bd1fec2027df1280b2d3ba5a98ed301574126c3a28b04292f50489203424ec7650dc91227baf620b10bc01896a228df323e153a291d132ec4ba7eb030c2922fd886ff02257d031b96cf3089a849c1784146a", + "07d5b21c50631d2ddf5204767cc02783e069c4da5728705b10d5ed4a9f5314c8b1a7df9f74c299dc76f70982bdd95a6110ae6cbe316955a74c2d1647e4fe5e77a6d9752321b877599c1765beb755a4f3a6522ecf5ebc8563159d7e62b5eef7b79f2be956274b194b6d024543ba8e74d8c1f63168d663443877c4bbb16e22c28cd4a63bd599f6556cc487930471fa18a191ef87671b6a420a1113076b5288678fdd870655779db21bc5e84a48d51aede6eb3542d305479da15ecec2a2ae2d7adb03f53ec56befbaf87d0090f9dfddfd3049b04e059278", + "0136ef9c85bf4fa736827225291ecc6962e519a6b791c3f371d48e159d5c2377b3af221aaca4b1ac21236a3322e5a74592baca5ab53feacd5ccff601dde4137724e84d5484bb686a4e14beba58ace77306d888b61bfba39b772bf6d2455390a5f61e316efd82b3b0ed6741c42942d53ea7561b2c0766fc3dc52e49eb09d8b8dd1cd6d79b0119b160d10995a15b0a", + "0117157e6c42e9f92438ca758aaa8a123b68566d478333feef591fe2e722411813412077d6710ce8df839ff2e158ffd4f97c5d620aa0000778a602dbdd230d4b5238d886315a460630a81eac39800463cbb96a9c05fac56a3c3feeafb739d578f7ada6fad65ae4c6258e51d319716ba3672bf9fa8de63b958f06a5be803f6296254943ee25382ff653b408ce7429f01f633676ea421a65dcfe696feb6aee896b32dc22b1d4f36a6e97240a824cac524a979acb9388266e1f80db748fff871f7a1cd24f0c45acb4dad806c0b9060bd5758a041ac3b3ba" + }, + { /* i=2387 cDividendBits=3314 cDivisorBits=258 */ + "016e7f0f93b47d2c7d1f58569aecb8fa91cb595df78c3816e46b348342a6ef14bbc283f1eaa357eb38b2dc0bf310dafec83e0c4e913a243c6d104612ffaa18b0d8cb7583ab463a39759a745672591fbcc29ad6ace6952013ea45529d5bcfc306dd2a8af0428eefed6fc14f4563867285ff2f2799bc2a753b1b7dfc38164cafdc7d4181a8226e7e3a66237cac2a44ad648647198d800156c0c2514801b11b35550a29088142f919ed10aa5c927d86af0b197c3dfebad1a888846ea40b2147810f1570bb3f922372bb4a519546af010fce5a8791999f21a09f6450bdca5492792f47cd41693d5c1b5d4369372157f54e5dcb7d46c6e5d01a28bc0579b95a7f41ce677abef9b146c87d32c75e521ea4aec02e337828ba36d2a168b10bd7daaa1fdc9368d553f6586d37fc6a4bf3486180da9dbafc97bce5d8d126596a5346b96d688b05a75b8ca724a3f2f9ad4c19a08a56c0383a8eed0fcf1cc5499ad908556467d651d07840d051ab48406cd534ee429c087989b83f4feaf2293d882c118a7068c7ce4a76b2a23cd67db913f01c48d8e5f7f8294688dc84b07fabc299ba49ea", + "0346d38be3519ad48ab937dd8692cca16375e8ffff89d292328826722d04be989e", + "6fd9b3a28ebf5ed67a5074ce02e62f539ce1963cf3c60b98465e2e8fb9b1bb93cfa97e185da35d1349aa565412b4e24cc91fbae8776c6eaab61423f629925d08b865678eba383afa4fd09eb5ec96b957289285e6c19b08cc5ff5cc6ff927405f999aac1a623f8187b12d3f8f0c8b5be7a92bdd6aabb86cc3f3d71df6533207c3c0fff5c903c8d96211ec46f63f9669e5bc30be79e2a0445af4eef1ff8e2e69f26e796e9166c43051818b963214e0f6fdd970ada25e7b610a8e15ae2d8a4d1221388243eac61001d90edd186c800c98568e2c27f30496d5e66d215f322b985103b6e7b53afdd930f63ee59d5ee3b03636b0c066f1e6bb364468c03c9b2a0b276f1c2a889368f2f9d71a44d6b7010b40d6214bcfdc6cb3fcaa52e2db9e006d4ab849894cd4cb7d25cbb8210d0ed8c6242d19ac636d5a76053386d7793d44f03f569c3e72130aca540e3b380a05641a592be92af360bbf8da4671687cedfec2168229735f207eabe0dcfe481ac9a7130c881aa8986e35db17a622eed8062a3f", + "0108d010df146f0913296c6b7c1d1375206df7606e139b5d8f555463c64614cf08" + }, + { /* i=2388 cDividendBits=3760 cDivisorBits=3532 */ + "8b3778f045f78b7663c9c910705576b868fd61107536f70cfd9bca88328816c564b94bf441d2f92df6b5d71dbd3320819ee43fa72daaed5d05bc57c2ed8111a7e6978b539b9f4824a0cfed17866df505a8683c762358ca21e460cf8735fac344b80feca03b574ff93a8d6aff6208771617db62df29657c4ea9654c47f119f8925b238d7b9487d1769a092c6ce5fcb3abce0c5fc75f3f2cb5883ca919e46d7da4d1ba4dc350525508ad9782276c7f1296df1d187b3912f2c05fc96b3c0f81dfcd796e27d1b9fc17df008a406f5496422829a08a9e9b4837ab6f41e78d004290c0c92e1446c6d30b327310441b1f78763041cbc97a0a0065211a33c8a65ca3441fe3f6429cf816f9af027b938f37b003915ad1a1c51c563da5e2c35105ea5772e0ece4e563fc6fc4008addfd09454ca103dfae8937d35f82f65c066c9b38c4ad5c60780d2c93861c21d8984a7bde6ef320f0cfd2faf85c36eacbb3877d195b2e724ada0f5a356582ca2c3d7493d4dc1c99c25d983ad6d85faad432b7a7700d324636c39e159b7535a7850411a98f00e1c59649609321d49fd0a13353f4c3c9dedd86e098619d3bfadb37cc9ab44c2260c7bd12df57000380f3dd99893136c3c85947103541da98bf12cd2c32e6bf869221821b97d75a8b", + "0bae0078d083007bb72b1b6e4322208c2c88d274ae57c5b27f3c845082c0b11a4bbbf8472f91631487d68f91bb5aeaedd6d97b18980dd3c47fb5dc9e4d67af166f7d794a51a783568a9de8e0a3aa6238cd08c6992feda63d979f40f593499f1f4d0b82eb8d37ff7c48d1a0873ac1281d25c2085fa2b12f4bb3a86ba8bbcff9f5991143b8322ed4c025ce5d65fa3ef58d1b86128db0e91437ffac0f7dba16457d7e958cea882f91bd8ebab8d6bd4f5a9e34dec2e6b4ad654e84f22ee412271d53d7932b2b616a94e7270cf1a047012e9bc5dd8357413ef878ba326bddeca041b3307fa80bd133b2fe8969850bd87f8be3c98f4943ab024e0e00e585323ee4a469c9d9987b8364519d2299f058e1c8c928c52f62b7ba9a0c78cabd5c894814cbeeead6f6ec843f736ed16813a755710688e4f1696ef6d1e219cf41a1a5de4d3213413cff94520f4bb22770c79a6d985b26ca362a3de5cc63eb384b8c7d6d7a74e0f208621c1e8e18ad2464b5a938fb3bddae3d33cdd4797bdd989dbfd05f501d3cec195643bbccbab29e881861a379b42a1aba2195129e995b2dd7df655fec5cd9a98c96ad88ca1e05e82c6673515b72c61db66177abec61366674", + "0beb678a3516df82d72e0e1d6d9d4e657a2b0249ada807f39f71498074", + "0771e20cab2a3abc404bba46c2e552d021e6899ca571126528e3f80c23f8562044c461084d0cfe443dbc6b737daf5e6cddec16a93af4e7e5b5268435c3f9a01c5ec279fcc7891b2966200d9738b9f130c905a38d675dc988fd1acd69ef2dec0504cbdeb1c00cca5b886368c9dc97410d4c6f2f48eaa3e4e770a007c821d48ac1f9770001ab087696eff98270a2001473adb3e9e251aa21ea0421aaaa8ef5233ffe91e639e9e6b59324d85442eb518ff9dfa9a965e9126327aea3485678bb910e19a62d36dde50eed2e9ff62359c623b2fc50b2fbd81553a34072124241b9b86226880217c6acdbf3bfe0ece289dc83f3ea0a32ad2d236cc2953f412502f2aec7f23e3fbeafbc7715161d0940f0646224e3bb36c210d6bb15723914ec2cadb0f3d81e22248fc5d5b44003767d3974eaca62a99fc9fd0ae6e6981738cd2c4d9e8b8de689bd7587b25d4dc46341261a5395cc853c4e8a5190b972aa78e5f50897bb34a02509bd8c7dff90e90755469d63b1c4c2f367c8c786e8678c07e1ca2ab5d98a1e4c52495610d044346ae03776655e410a639ce6f67ba5ed5aa558677188d54bd67bbec921942cf62412702f78b594a5ef436af09bece2edfb" + }, + { /* i=2389 cDividendBits=2427 cDivisorBits=584 */ + "05797b78dd2713ee0002ff830841510a7517068ca36d7c880c01958a44d95a52830d5f96b3f157fb0e3a68d0951817b0df50e09aac2716cccf49a145bc1b3a64fe5716c75ec1424012b1faf0e4d382fde26d8f2941f1263909163f3df79dd8ecbe57cfcec6265a4d9b771585f0f03491a4b26579078a76064ef3d7a5036b5608d2056169d0193fb24f84cd1c5820237fdf013e2e7bac9e50ed3b700932e7b1fd5ea3c84ecb2518bdb253989e63cd3658f5e1e625c0364b4500da8695a8278b927d85d291b5c01231e07b8e089b4d13e1985791694d8a1d9d1729ee13b97cc8e23ff6256909635432d1604cb8c2b9c2778e78a0010ba69ed15718122ad78dc37925bb6b4f6a991da9c2178d0611b3e55bbc3dd172004cf4e0a6d8a655ca0d59a72e7a93c640d24182b45083cff364f383", + "1e1bac1f667d1ef4f539ca787d413b33a1f93b3c4b28e3aa42096ba2d92108bc1b2325a61f183aac73ac6e05523038367f1e923e91ffd2f8ba23cd40ccb28f193a070b24d054520a74", + "2e8c610528dcc207384bb40e9a4a02d6745ffb55dc15489d18f4fffab55b6922ee24c726fa1105be27939631f0c1f97aa2e0a7e03426c358abc5eed1f5fcd0fc061d95e0f41a66c74fbd47640bdb083c612de0c3eca6633775e80d4ce454b19b1392fcb90d179898be73c014f5d8c531eafee5e30bbfda197a4ee3f1e3341c79c8ac83061c40cd73cbc3df901d8ea83ab495f2cdac90904e4dfcc0bf0f4ffee686291df006d5b3d23b41de31f320a93f912d491beea658923703d66348b2d086cc1ecc84e468f36cd02b8527292ff48fcf3fed7ed800ffe6493357750a9651f1a9c046110f7275", + "9e636c1fadfa976168ebb8b1285b1ea699189854fae58a2edf067cb9c40acb713ff02b5ab6283ae6adc4b316d38e686e45092b65bd35b185fd2a1dc1b5233ed8d72babd49072847f" + }, + { /* i=2390 cDividendBits=2740 cDivisorBits=310 */ + "0fa7a21d743c205e92755a3ffa26da8d4ea3cff0d95e7207fb891f92b2819c83b388209b9af923af31da48512515692ebfd2b6994af8e9f8df2891c07e6e7ef59ae6a62fd643c1ed80aca01a25895203e0cef4eead31bc61285e2744acacc753a66c237d0d60d0a5b264c2106cb00388beb261d681eb418560ed79510d6249a5b1c2d50338af4194f380d6479e9909190af42f2bd04e3b8d2f89576277fdb951f81435137b38da2dc52d5b851c9739fc6044676abd86ec04a937349db85224a99b6cbc1edf6b772b10aac808dbb08ad968b7a00b1667a0685dc27c2756bd24b1767d6eeb729947c4cd3ed6af08df10ab59fa57efcf2ffe45ec1df560ba5b81f03ae90f2f147953aab674ad37d540b85d919aa09c9702aa74e4ba3748b33332f4cbb69dea252a75a488be872c56403f55d446ebb2add1bb314e65c871505156013e3c9b2f3345eadd7cd6684b2a2ff0f169a9d5b1bdd721", + "01e4cfdaf77575e62a38606565bfc7b7571cf866457ff323552b938c2c341435746b96eab57724", + "0844309c9bd51890a549c9c58b70fbbb80a5ba0b0d58f12bbbd9e7ee95e478b829143d8046114f71317372f155be4a8f37ab045ed35a845163fb79a1432405644ba61060f48f9a6050926f2fd7bfb87faaecd2a8bc7d3882018f1ed163b1c50f413ccc8fca1edd74caf12aef2880e6c7ea95201803bee85267ce7e2dbc8252362bb134c536d694387c928974c8e29d227f80e804c6e3d62a4686b25e77c0cf1c62b39406c25f5f6353db543e5823f86d4b59d895aae9398476477bf31cefb97bb9225be42dbe0be3b6778c195f272c332799cc8c0ef52f02967a546a63206474a0b5252baf0af94e822407eb6c6b6b8a32b48b2fedc6bacfdfcc06c4ad535fd7957e04e88359644ce744bdb7da19712d2a7b495b4dcf7541c8a9c0a9bc836cb6cddc613e570a0066440595fdbecacb8a00", + "e227c13704820e26339e54ebf338439f5878aa5cf331462f4084df0ee670342a00affdf86f21" + }, + { /* i=2391 cDividendBits=2608 cDivisorBits=2417 */ + "162df0e89a279eee441e4f62989df1087c8b36a8ab055526d5cf21e475a2f25b0032d2c19bcef0938040b5d767f8330a9284952e2eda388c028aa5c7bc6fa650ee5bd7db313020689016db7c2f39fd4152b9763ada906efb012ea1ad505a98960dc140100b997610f3d53cc67d2b40bc7ff3ee2f42ebe5b5fe2083840ae68b8ca363243256d7a4dc89cef61b11e7a1972a45970cc86ca22b5875fd8fe94a1316fe771fe1f1ff11e8de31b7a7c123d29bf57dd7d2e4c22278ab9a59254c32b66015a4ae191c0356585533d9f3f8f6092c0ba299b4b0a2003f8d8c3d63efcdf5c4dfb79478bbd29ba9b9e06b06641bce196c4632ddbf494ff87fa0613f9719aef48e592fabef88bee1930dc2d1595cfcac86001434456f274f6eace7ed15f3cbe2a136f625533f207f1cc93a5839c5aa3b4823b20507cda3477a84f3a3b637cfd587dd06077b42", + "b4c02176742451fa965350fa4a39c81e647bb9c6b0f5c53cc7b400554d1690da5ab6f687b6e283885d29afcbca6fd3b0012b9dab9624b9b820faab22ef4072bd87029e1c9419e291e9567d02f91d842115b3ed0fbde0eedaa7c7b189bbd4c317717f23a2fe8e8d5eda6524c2bc112b99487936a7db485e520ef349418a733896d1d68fb6c4bee51afeb4c4c80e6b0ea23e6dd18e77fa83884c6e07879839a1c9de1c8d2464ccbaba5becc9547c124720d96d9e2d4029bdbf49e71252ee5c10e74b51a1083210f16b20ebfb41f00ab5df8e86c0567de29d14210e086c7e81c958eeecb3278a4bad1b1f37f2f4ee21aee226bb892e979eff9317839bd6b5971035d7addc770144acb1760b8ff140a8101dcfd428cf6a841840cccae70fb25ba39636d36a56c563f61565b75e90ab86", + "1f69c386cf6ae9ba025d0abb6b513e555cbcd1239bc94030", + "1878e53767976c3013f4e565dd9f6357ded7b440b5364d50798fa3101c0ddbbe081350a6ed6208b5d0421fb743d0742cf052fdce978ad74fad30ea43ce2f726332583799032a60b98951b1ffb1d3c1743d44224e6b357fe161c4d6955d5eab4d2f33fa25cefb4920affad51431c3677dc994bc5ba6fd622ee568d05dff649cc247f7bf9cca61c6c2b797ff28df1eaeff6f6567b570f203c4709bb88f99bd65d27c475dfcca3e2bb8621f05488977adb495156a9f0dfeaa1414bf27bfbda41c9549931a3bb4a1684e9bdd9101b6f745d6eb287469bfbc5188b7fc82057527745437714dae008b74487c1463321856527614ff8d7b082bafa4731102da56f9c6c0666deaede61d95d35c748b6d99371a9743728fa296170e2627c664f3d43d4bd436ad63f416eb46f1ed1451cfd222" + }, + { /* i=2392 cDividendBits=1992 cDivisorBits=87 */ + "1011ea3fe97931c3247a95668a2616a50055f831bf6a67b507c27ab25245fadb929322035ee01ae0aa58af356f52b700ab40ab2819962244a172cfeba8218c1170fe451b225ae5f83ada6270330eef78629ba38c266babf9cfd0e961625892948b6b3d4acf8e68d8d9fb439825d42dada29f93e0d5a35fd5d15f9e9e55db7011b242794ee10e5f5c094185de754cf1cf693d33d08d08539aa349e3cb311fc936dee90db3d4e3d204b0e67a78a8eb0ee3056019ef4522dca755a1a71416ae6d5b3125c1725268b90dfaf9e5c899b357e5b346358f119d46ff8e77340512a0488072d24dd79e7391b788a29e2e354637fc035bef7a4f45491784", + "57666e866406da26f427a3", + "2f11e4ec4a294edcf11d16903fbc13318e6ea19d1b69d2c78857348f378e01f82fa7bc23db4b3871338cb566c694e207284959f77e8e83bd6eb668d6ddbb18692a61dfaa9ae3ffde8e84e30e9197a02af830e937bc47b330560540abff9dcf3ef5b4231166a89dc5e345695b06ddccc3024f4c6d888188312a77f64c4ad6bdb8081f1fd8adc3a3fea6b39138bb346af3a1899406af36fd1b85f76cd1f7e77e390d7914dcc0fa79d2ec0552934f987e854bd3a43e235e6dd826d2d8e8aa4800de803cc3bae9be94a507758620d697c3a9f6d6ca99a603f3adf39303c2b218a07800943d47d3292f904bdde356cb0d", + "0f09b218859675d5b2d33d" + }, + { /* i=2393 cDividendBits=820 cDivisorBits=132 */ + "0b8d9f0d38859739c0fbb45ac68a9cd02467437ad6010bffe4737c56444e1d228d0dfd381a3c7e88a80f89700707f7dd351dd90efb813e72d477c1dc52d9c85956f288b0eded6b931225877b50529f890ee8e6ade822d44694b000d90c411df7c664f63d973e19", + "024b6288dbae97d5a7653cd1a3c8726173", + "05090531555c15882537a42485050abf3ebe6737642cc1536ff777c9b71b463208c553ae6e306f59ea07bd6155de9ce40f6c47ec00384e75cbf48fe21051ca65a44a9ddbeff7755cd53e755cd5f28a611b1b1907a18509", + "0241e070d8d2edf989ffa9193c569e120e" + }, + { /* i=2394 cDividendBits=2210 cDivisorBits=87 */ + "b11b813fee7c6e0478f06605d79bb829332cdcba3bb3cbc5758e014ecba2a7ce95ac1eb558f9640d13b95c1c0ecf161876dd3dffa963490155b65a69c3f267cd4a51ed181012fae7748d629342d61bf455e859f5feef4226c418366c975635534ce73a87e4e1b79107e8e6b8785687ccd6cae2625528c745a4fdaf92f646003f49d21afac7cfa4c2cf481cfc61b5df4e0586eaf3df2d65c01206a560df41a6880c259ea99f2cfb1ed27a1f9831eb3459026fe414952fe2c1600a23d80565a5b61e14e0406e241b10b876411bb2b18cde888f655083d3340cdc2c29cf8cf84f2b4dccf1be51633a870e64e794b3b686e87e79f3992df54798a38da35f27b43d23fd081f34d05cf48ae8ac7cab1245e54fad2a864d", + "9a3c48532b4707dcc0d5", + "0125f67f0c2d5bc94148637e102d64a88e5eea0f7beffcb73e615b72a6d299ae5813c15018dc713119c09096e1c9e62372064c8e266a2c70eea1002ee161b6d54fd93a3f9536c02f839e6ac11af263f05e9c94d7d3a1847a32b703ad84054ae6d182e0652bf754a7437c50768d4f70d4446fa4cdb73c4a692a0e3a0ad1294a77ea2a08992ca33fd6793a5fa0056693b01d1cdc853a6e6eaf5d3585835d90737b6414762e9c4caaf4638c24b218515b0db1b2fab97e7e1b045981fa99a44a291cf809dbf32e2ac4c06811d9edf5e0105809d76fae3d6c6be3f8762cf9339fb289b5ed0471a25606a18805a878c45ca20c720bf28f8a0c76e164a6eee6435f18d611f69ecaca67c5492220ad", + "6edfb373b01c6b97965c" + }, + { /* i=2395 cDividendBits=1173 cDivisorBits=136 */ + "121ceca53daf8c91db9faf49442232c65f0422b5f49da59c67c5ea7dd04a4830ec43adac4b573155986f74d094dc946a2b97fe8492b5ce8e2328447671c809079a4297e594873d995620a0ebfe1ce6d1a1ede64222f5420600819d11522bf28d78f6be48ff97c55ec7dca069db289788b14b3d9b21cee4e7b2890f5e85b59481f31df2e202ac5a22e66889c4275f939c29d5a3", + "1a8e7d7f74954cc0ea4c4c0e1e0d3430c5", + "ae9af70fc40ea18cf53dcd8756110091f69fd5b9d5833feeea692859a3c89f540aeec2d9927ad6abb3b272ce687bd57bed93d72984c04385fb502a872b7cc05deeb98b3eec601c6a6534ec9c18efbea7ee4218c170ac311c2fa619743f6fc9f5ee8c490dc07f12a65754953b8469ccc1f809eff468ec8da0e752438e5dcad493e423", + "08a954ee81b9c124dd9dd1d3e82d78b6b4" + }, + { /* i=2396 cDividendBits=1146 cDivisorBits=393 */ + "ec5c5bff77fbdb3a84db7265803d95a2e20e343f05dabcf9944a234b193fb35674d4af2855efd97b4fb0730e2f0553b50525b1909f8406f4813e41fb6519010dc9b88f426a22275c1751aaac7b1f35c0822e9fa9cf50af1c5ff445a9d149206ca9150df9e7d464013f3d5098a31c3ceebb547aa9710362795b0e219197ee7bcb6cabed34592c7564696b1787b8a5e3", + "01e87e6ebc7b2a9739ad542125040fdfaaa438b640a24f358e4c9cdfb9776d2194c8d1f8c15092cafe274ec49b25991fe426", + "7bddff8e375f3d3dbbeebc3fc3937c8c26d402cac53190c41a4882d2feaf694f3736116ecf79a98dccb0c9b3082205072b907d073311a65c477d22e986c5bbaa9f48c758866869a51eee6e93dd455239cd6f795c466e5a9876abe7e4880c", + "2f995787523637ed58290f977cdd499f354d6f7754df377356e5a3e5620e96d66b8c4cb9669dfd4d8158171b53ed2dc41b" + }, + { /* i=2397 cDividendBits=1060 cDivisorBits=851 */ + "0af4ff5230010d26439e51bbe16a97882c1c24da5132c5254faec855a20ab62ba2907fc08c318bfee23f7e6a7a30324561ea3b8ac1756e9dbe5151540146b3f857087c30c8c30985da6ea2136859222061eb564df76721cd34ac18ad4ad800473879e8da49e6cbeaf1d46e6bd1f23f7a98247a248d886b61ee44e834886e0dc22787a9b7e6", + "07e2e84ebf4d359f8f2e951b51870cd3f925d9d6881133a8cdf94b766cf54f9981849c4583b4173cd8ec91aa58b12f911ac8177cde49082a4a358c309b2d87f8f2673eb4134163c09e9ab698e4ec5351d5a60f8d31fcb89e33c20ff78bfadc42bd41f50a38115a60514983", + "0163ad5c0eb62cf03e2f8767629547c2231af02c99a5d7e4725be1", + "075628e1e06c66fec7498e0d22590bc6e80816405ead5d33f06ecb4d25a3dcc54f79abe67397422b1f20d78b60775fbda34ec84be69a0a793077063f5fbe565351b49c59e310ba315c9c90e4ab0c7f1b4c0db319336186d89984d6bee0670f397a101990a2ebcb92c08ac3" + }, + { /* i=2398 cDividendBits=795 cDivisorBits=118 */ + "063dc5d1a85fe4ba860297eebad7e4f91b11477f5c9306697b11677b3408a6840a71c251d6e0cf2c0ef4f3a1dda0969a178f5eddc971e460edf21dfdbb62d6386df91dc0fb53f6f95e75b97ca43108ae4c43ef2656d3a03c5374b98f27ea189c056c30ad", + "26f0e19f5a05109af26ffd5b0a3b05", + "2907d995c634100ffe811dc727ae25f1f8bc2a9d8e32f101c6edd177eccd66785a6b171fe362d85a464034d0132f7742796576769ad6fbee8e31e9d133e0f4750bd088fa4ebb19eee93c62950c2787d68c915bf93f", + "1fa42b4e4aa6dfae217ee8dab8cd72" + }, + { /* i=2399 cDividendBits=3209 cDivisorBits=2802 */ + "013beb31eec7e4330e09d9bcc98db90c6448280c4a3d3db62b3316a2373a9388bd1d6f0ad2e25b74d3413932000de99aaf1f28e688c761224a7cd8deb5d1035a8a17a68e43f2a8b4af280a2bb90cdb508da0137fa8535d5056b0b940308fb10e64410ac34ce73e9cc52f97e7413f382d9ce1c40016d34b1af151f3ee284dab3ccf8c17cf8857b80546fedf688c3e731e0d94490887a6abcaf825fdaeb60dd7e65df9502b6bca9bbc8f4cbc84290323febe4efec9c694b5d585c606aa4e0378291f812c2e9e6802d0a09420193a47ffe6d67504df004132a18443e80a354a178ac63ed7b650eb6b5e955876c55f38507d8d88aa8868fd5c9d44149c557f1c671f646bf97ed7bfd11c1e9ed450a126b9523de8ec8ba82b98d7bb582566fc94f00ceeeaa5737ffba216de9388adf33c2e43ff1dd66229c7cde45788167d0282d8e7b0007c3f2a37571bf229045d97acdbf538368767f047960d04de9b4cdc55d1bed1701e50671aba225de3c3cb2d402587b2939cd5850bf94c16b1cc7ff42c9ff5fa7c1aeaa53289fd362e50847748bb25c4c5", + "02902c134bb6b4cacf2e6cf5cdd52e38215c690665dd8623f47148e3c878b41088eeb41f797291deafd9ee126bccacfed72ddb4c451822ee2cc94fa505ad125a230578997759849cc03318b93dbab1ce3f156cce709098634a02ef4b0f959ea89b6db743eecee5eb808f29060f5eb9974329014689258982a5620f3d272e6c27d9c9e96b1d96c624adcb79bc17738f3e2398377c8a3cf0be8125fdc3852fd47c81097413e45df5571d6c91e8f0fba0aa2eec9622fe660f738f197317a0c7f0f0a8f21d1f31e4f00872988f29fd2037ae8381ed06f36b4f9e8035b0b7c0e3b773c52dbb276896d57d500a2b454ce6343a5ccfe5cd1eac5203cbeeea2f4559e56a28cd818be098354705ecba610f34945bb533dc2dba87c30f4bf84e355d0570caf7ff346a1637ffbd5a0e1a644b22c68c21a94b0a64eb2e15ccf45f22bf031c22bb301f6c4d3e616d16a2c31b419e287861ecceb44b0e924351d44bb73469a9", + "7b40c545b407e1bfeb16b16bfb34673b18ae3e1b79a03ac813c781fcee890f75b14640d8bc174a310e884d7d66c1242607bf84", + "f04d20b382c60ffebed21cd0220860a1d9ff632bcd6f57848669bec826edd3e19a726c0eeaafaaa8479a44280df96a100460f0cc9d0f7fa9cbb3413b8ab91d775bb9c407440a112a47170615385b1bad35bb160bb5e1f34098448754b4dbe1a2ad33b2e7528f620c745e205d4122b54b3aa6ae368a63def95f9fc974e0ca09fac93e41edf17f71b8a341b0e22632ca624a011319f7dc169cdc74e9f83cfb4e8413e825913f40bd655e1eb7091e91223804af4572aa66252aae79d0d4b3475f92aa03b0f5f43645763d4593cdbb4559c106c3a7adce6d16a69cc822890999d75eeac14bc18a9e50f65315c199d3214f2f76ab83fa32e11e041d98d4466e6a5cdba004a01f043e8b3d1f8ff5cddb545b49d132176e3dfacf4919ecc891da4e7d6f6b041f9694591ec921bb3c71ec3d9e60663fa734f8b09a09d9cfbbb6b64e39132a805bbec9cf7d0850065280cbdaf9494c41ad1a7fb69c4d73ac2fab32a1" + }, + { /* i=2400 cDividendBits=2972 cDivisorBits=1158 */ + "02200ade509c0d270cfc8d6c3b8857b816ce3ab3cd57625ec5c127a0eee402fbf91e1464fdbdb4bc0b5306bac4e72901b511734e46a35d49e4e7442e1415157662184fcbcd785e7e0d2cfcdfcc18612e5b3eb0909c78db55d9505e37ddf3ee829c6534c2ac32ffd8ae14cbd6ac634239a28faac0f6c0c7265ace9a720026357ba50ae7c7b7664935ad717a1ef1dc72825f71666a607a8f8d34dfd42075a12ea9e426125db9164e9306915ef757b2f736d87bfaff5758bfc7bf9cae6953db79c482de373fd2853337c42c51ce7af0b88506fc01202bcd800e75e09d82e0f10073e3249d7bdac0e2e0cd6a54d9433644d7df8fd2ab45dcc6b64326bf1ebbba2213b1b824e443f2b3398be3e6c999a0458dd61f8b4b1e3b3a49c3c41eed02f98a41a099d80dd3726b4b53b98bc3d9fb17cef61a84f11cfbfad9b0a2d1c9f5e0e125d2968622270f7b42df13bab1a0aa921a2704cdf83109561607ddb6826f5b6e12a0a75d9281a6b0c8b8527c5474f2dbe101e32f24", + "1fbebd328aca6956884a845c9007e027b911d70bd55123dc8322f7fbb9b184bef052f9d95a525ab82d35ce8fd224642896c6c7d10431e69c4640220a5a7a757f998a77075ace66450570cf496b4c1dc322fe827b6832f50bb9f91f63ab35d79c17676e9e18efd7a3f4ddc9b6e231a45f00842a9f6a30ce331197575b950ca874840196951ab07bc0ebdc7224b3fb908ed2", + "11234a687b6d05c51e3783cf6c9275f0efe8c03a4fb3d193b341bbf3db80c6cb7b9df868da0c084028647af4fa78670cede4026196b69bf3f5591bed1d53bbee82ba62bd5211288750366acffaceb716d7b99e9594b8a936fbca3a824098cffbb97b4bce11fc0d8994f28a577cf1c34641d33981dd3a284a7ed7ff6b188b0c315c58b42f23fadc8b36123c66a2aa5ec248ed566d5c6dfd1ff466c08bd182af20dde90c27b290c9d1b0a28c8b59c4d2f06978dbae9894d254a06cbf7adc73c32923c046e51f5a560b458e11255887b4cc9cd89984d8d7f2aefef222da9e18df3ed5e0be", + "133a645f39418f5e2a25797c78588f1fc93db179e232f09b845f2eeb06b1dc45fde126bfc53e26627e01fbc27b45735cb3844f61520f75a7893ea8882956af06b97ac3f54b1f3d7b7d3010ac3ed89ed9e86f3e07db5fd8739cb085013c7067cb52f52ea63d260847275e451b80c2ef71087cc9534abc57669207469cf0cbb8d0e6dd17324ea94a2b6e2d84b7621ee76f48" + }, + { /* i=2401 cDividendBits=3362 cDivisorBits=2523 */ + "0228c96e76b61e17c8a85b87abe1478b2b075c52b9b09b572db61ccb0bb38af5ba82c6a5b5cdcd9be1ef576ec2d456ff4c79acd5478ca5c89b0c368b36fd195adaf807ba6d8fc3050b48ab1e0427c8727947738d6cb72bca26a70f4c59859f26d689553251f893b48df15484f1cfb957adc063e3e70867c723a766202ceec0840f70c3daf717e1323890708401ca590673c9f9c6fbfbed5946bc7456afed152b1451b7b0a2eb9d65a69d9492ae0ab03bf267468083b5884b71cae6b59d8497df8c6a6fb81d16b9cc6989958f5acf5324327492f383b19f6eb0839f46e31e0364f84dc89d8561264be95f8a18a1bacbf2eafc9af20731739d70f5b7522e003e40adae6d35e5975a7401571c30a0d82aa5d83459d62c12fdf3d3b407e448a8eb83c78a1268894969a0ceef07e40a0316522d15a055ce9c26450e2f388648c3af8bfa59732ad6f0022b858d3f0ca276d60b717b9cb92948e9667e0320d7cdf5e436a58e4b0dec5898a89facac44fb7bb7e221212860bdf49491ef80961fec3432c42c16f457a5507277f0e735d033c4213d3add96cd8413f6377a62ef802c521c5f28d52e7b92", + "04bef667119c0447f8765ff7b736fff37c6ba33a918895c261244ef8e8a6d7675966742a53ce844948cd362db791697d4d4183d085f00f632c2c17066105acf53307684af02c2d8779d0571164c9e8fab2f0b20cd8c8290ba692b9fa93cbeb51aa4796521bbd02c8bb0217db03e234e92f2c6dbac4245cd3436bbad06e47ffa4ce382e4464d9bf18c709348a1c83d3d7af02fe0d42df060a578c8d02489ed37e40539404082a8de2cee1b007d5140fde4dc6c6ac6865b247a710916494251b2c80a7f1db434a76d5daaa590eb543214f9c2ce85843483d92346737d571562158048db067df08ed8335ff9e88ff5ab74ea058f7b9719fd966d67e1dc780b018a7c74e7130885068ea23c6e76986997fefa2d07272cc6f6ce6a687d3f11c7dee948ca8a7f93070948c8a87dd1a8aa6716116133dd6c619dacc431ce035", + "7479bde8a413d6a4e5e171e925b36faf898a1582ee04165e471eca6c7c05067f1366b10858712c099ebedfd9183f74bf16832d586ae1b4eb735f2245de9633d6790926c50b33bb0246a6df6f6ec9025f5a2fdf52e703da5a017c5457a933007816b2b076b05d2334ab", + "01832e6387bc8fc4f1f94392a47d35c15c87d993e64d6a575837e8f318f7f1c9b453a8d2754b5a35136e9f988b1e14cf4419281a96f0f7dba0675a2a28453482ed4a8d4f98c6c5dd8d24e9822af694a48e0b75c3984c21900ea82f72414be17df55c0249c10b2fb636a26a0be9bbc9d51136802c3f2db4043231c952b5335f264c8862905574b5ad43f5273f22db219dfd7bb46a165661c9253829f1e1a861e787d80d06275d711560b445c1f8784f8f4fe6528ac411d318844b2baf18e46d709a946dc688c9be649ef9c1aef60a87c33da3eb7e592483a1da7b97892f798ee9a36931a4e023b8d030efbe6b1cd976364e8011cf01e3b128f8544de7165531560afc6ebacad3c245e91505f0f2ad6f865358ff462e5f9e9ab023c3577c0af48c1e96fe63b77501e1680287b0cb86be80d4e42fc92e747e403b1af42b" + }, + { /* i=2402 cDividendBits=2214 cDivisorBits=188 */ + "21b7dea9a70ba9f5d218e57585dc02f9d24e0a4da360c62919c54f7df6fa3cc21fed42c0dd5e5d4913bdb98b1b90bda1774343f10445c69781ee8aafb651afe4ae590ef6e227582e0979d55ed66cd3f65543066553d740c926c8e5335410f73837c619713105c8d610e9429331c48031ee5185296ea23eb1732adebf8d099eae5297b2e689fb7fa48736339926503dad220edb21b21371e039b5d2a7ab6663dcc5fe73fdb17dd43ed412a1f9aee2961bc0c595a6cab75fc905459c768df97a0e1c3155461f59eee2651144c2397ce63ae3e00e3947bdd1c2182516bd9fe80ab9d90cac5d90f76a4ff7d5f5820999c2debfe21cb83557f64d8086a8ee297437ac06614b10ad8902aa811c93f9f06ccaf2220c9d2867", + "0ec0995ceeaf9dca927077aee746384defaae7913ccb541f", + "02491e61c4c1830095208fd97c2460551c91bd322de34c7116cea94a629f7452d1e129bccf26214a52cc614b2a5bce52eaf8bc1a058985454db3e24d9918850653b04c4c99b975147596ebe8ab2a9931b0f55224671f0516db80dc65ed82dbbd5fb9a65ab4c6535863baeabf3dcb59fd3cc28c9664d4f7ab9442bb98a2a9ecaac0928d5aec279e57ca792c90f44534cdcabd617ce132c2bad7da2432ec099358f169bd849793fa74f183ff7169ee1bbf93a2e4d7b37920c8f60931972c3620f7a12cd8ff41cbaeb014910489f3e4bb9169edd51c24240c733ddfdd8bb397bea7764e59cd19356c878cbd36c35d168d78d7c3622be57ea88dc4c6ecaa1f27", + "08df3ae6e08c2cff2e6a819c4376e6bf2e7b7818b9dd96ae" + }, + { /* i=2403 cDividendBits=1277 cDivisorBits=1113 */ + "02e7e0dadc19014491a906ff797bee31144e0f9b1210ce9bcd13cd8132578fc6c4c332f7ba27a35f33caef1e87c5f69e26e43354ee1a66d18a6a9de33de8eef4047d631bc1fbd4f61fd5dc4042531ec29ee7da317a952c7a9dc1defdc7e20317f676220f042ebd9b34b0f265c015c5d1e5de8421a634f108e7e4319f61d38f6b27fe625ec1985aad591a76a655d61c2d0de358c0459751e7d2fc61c7b6b42eaa", + "01ecc87e3c57d1d6fecb207a8ff78f424fb6d305caa89d2c08ddc76b1d8973cadd4e0b1ea01ddbde59ba1eba09b8a158d0cd67d7914010cc85c5a4bad33b22114a2e7b9dcd970d0e87ec203ed0da7f9be1c1308e81a11398e30c649ed74a0549a78556a17235c4476a7bd90638f4791b451bdc0b45b6e45494560c499e949428f7063e98c906827dbef55840", + "0182718928920405d416d004ee59b7b2a1d27ae830", + "ac3c4d90679b14f8df20f210b7e01c67507ee2eea7591dc6eff9aa5a9d1a0cd2cdbd5ae19dcb640a10530c07565b7a5641db686c118ee30abc848a055e2a40a31abb926efbcb6b1a9c5ae0616531ac2e242149fa09628dd68647c0e89c8b76505db009052b3f7196cfbebc2cb0a99f657811ce49ce956b69f446da44792e2e9d66a282df86b1950239a2aa" + }, + { /* i=2404 cDividendBits=725 cDivisorBits=693 */ + "0d4c8720d38263eff5915ea67f1ff1fc0ee074a3e71b09364815ff9e77e7eef13ef61a2f433bfd090fe22bf6c522632da250c19bb963e88063ff3ca2b9319de45090607f0bad8550c98d4e788a689fcf45fcd894748321bc8f660a", + "0e79410a269b110958a8169473e6d0978cfcd2460cf41f53bc36a44671ec85e8df0bc3f054e04bc028eb34354c93632e97f6506baceb6a02d37ecb7f95cb72843cb305911cef0d22b45fe54d0f1ebc75e5bc4cd2ec7abc", + "eb38f5d8", + "064c01ddacff5b6b9cd295d59eec7e82af55a58d00091916c498ddcfb38ca8cc544d326cd28a7e4accc347a280592128574f135968256d4d4b0a4941c7a9958f12ff2cd5dd1c8618ad4fe198a602e486fae40e0671eb6a" + }, + { /* i=2405 cDividendBits=2421 cDivisorBits=1659 */ + "1e262a361e699fed7011ee8b684868e2035d232f9818331570bb7979d823726d87dfdd1b6e5235cbed730f3c03a786d116c06a3f8cdbad9e7e148de4822009ba95bd9544109f66c88fb1eedecec022460d72248063f5e6e81894f7c666be5286236fc21192ed395cf5db3850dbeafe6de2e12ded9375c3f5798e5c07b623b5ca75355895cc2fc37118003e1538bd950ab8b3db22e9463ce60452945c9ec6f7b6d039b9d30edd83479ff3dd95341663852377ff55bae96c38804a13089850e7a895d48f9a5837124825485d97b71214124cef95baf1f9476cf7461f84caf35d12bd76b67cf968f35ecfe6eaeb8038ac1a739b840ac37e9918102e577ef8a6252d56fc27c552020b994449064ae812090f1fc0df2df6edccc8e74cbf9eb968ada7c9392118b4715d4bf51312decf97e8", + "03d9f1d821d76994421943f2c75e81790f0bdef09dad96991de6dfb55bdd8dddb6787a82895d16de420d0f91476b9cae5f3baa7d89c0741c7b13c5421b25e6940ac4691ca2c7f67097976507c423cdf6f0e8e030b5cf7d35a478dfe8fe00629b0b5464a61707ed8ba95d8856968a8bc36fb3d4ac72eb311f4eee639975e93b214bf0ff4b1502093cc56b6001f102bcb76bea4544a0ac5dfe37786e926c2b404d70cf7b97ad329201f48587b1f32c1e57ad915403873cffd23f2fea5f9fbec47ce9aae68e3060b80d7ef99a0675eff97d", + "07d4046b9b47ad71ce0d2388f30100116fb959a05ef09b343b66358a24a09b6e7068d14135ab8a6fd4078dc589b5bc29fa180cb2d502c6b7546f015fa943d7f1e1644e49e5accbd8e4bbbd0ae17bcd36061090b7c51b8a360e578f1042989146", + "01240466cd97e90194277c29c455dee867e341b01872bc85dd60356de9b8655aa90027ce9109380cbe8233a53860e839dea64ae7cc250c502779bb2b2728acfc71df49d749bc6fc6de5aaa0df303d3e533f5ee13ff962674c22fc42ad7a052210e459cb0c56a0123e0aa28b773cfd3753bedf68caddeb493bb356868060af8249d272a5f35d7342f637ff38aff3e9908776003575c6f3e574c498988971c5a354d85c35767672ea7a390e7867d66bbac509c1967f9b2e8c7c1822cb8f4f98a18b55f675b85af47ff0a61fce356a992ba" + }, + { /* i=2406 cDividendBits=524 cDivisorBits=66 */ + "0900d96db5f2893675b4aa620da63b91cfe1098ee216200877f08118f784db77dc3b45c70b05f8333b8d797cfd09f793aecfd42e6b1952a5d5224551b999c4f9355c", + "14ec9271e19f5d20", + "6e271e2192be2d43ca1f3fa8fd64c3f54a6fca12108402a83f271be08b59567ea373fa2967830c66ef024749a1769848e14edf43529f3de448f1", + "0c0cd2effb418a3c" + }, + { /* i=2407 cDividendBits=3858 cDivisorBits=2350 */ + "027c893e1d77b1227818e2a2ef3057bf9c6778fa0815d60536a2707f8db17886037d5a92be21763f6e02617801e39e6f597644cb1474c3d4cef99f8dd755fe176441d0fe9a0a66d1b0ce2c466dd2ffbe7a2e0a4682988ad0c9abec603568e753a4c1a72006f12148a8de7820041ad5f4b21588a78bcec0f2d77f1cfbf25165a36d684beb3f9afc364cc99a88196576870a83b45559627da0b1b3aef747ea89c98af3eef7687263541590aa363d69cf24f1bbf388b4e6e0b5a450530d20c78eced8db82e1463b1192ac084f07016a768b7a001be8b651c95bcf8e5e2dc10271d218e1b2bd27c52cb1d649b62933dc2c482c367718fa75c9ee7882b0a377bf86fdcb5a4a7dfe585b0024b81e7c7c4e9b53bbcf21aa272d15a7b59d467cb95655a1536203c7b35757397fdce69e4df8d50d80a5c3a7b1f9db164e6a9b9e72e6c881ac8e5dd26c9549784f615216dbd3ee76284777721ef2b2d880fea2c4c1926f89d017230805bb25d93a6333dc6700b11a45a0862afee96607f42057c022b24d76c2f859768baf2a23788b250ba3d4b80ee643ff67b873dc5b95da9e2f8acfa993e2f5cc696792c8e8d6460f5786b095ddf6a9814ae2290cc2e633f05683a19f8fd8acc74c32a61abc1475861704fbd256a3296930b391f6bfbb1f6c1ede9a0bfc72066a", + "2d9c294e11f32c3a2fa010f787fb7c3791d10650b4c4bb9a6efd2c498abb15307fbcacd17975da4acf0db8a5c1ae1609cd0f6d0e19efa0cf190ce6151032ae482befeead90073e0bba02150c24b1da5f05555b3f4516fe03a4d965543c785bb4c7cfcdfc8edaf44707a7cf8020799fd67ce9cd4f9859712424a09853842ecb4f96b69b54713e4cab075902f608cde4fae4e840616cc833113b2a229b98eb490b8177df05fd374f39a0404c35d30dac19bb80cda413edd7dc52c6dca09f5f3ceb14524c84cbdcfcdadc79fef61b3bd5d78350d2685dcd508f7ea7bedf6851483fb6fd3febaa1f66cd4b59c01f66212e68c157613bef6ac077f3f2a68467a5dabd0f457ecfdb71782b8e7178aa0427c85a9b2d9889987f35cc64006e12acfe914ee48c40452052", + "0df4c08a6a908fd28ecf964d1902d28c47eb3b037719ddb8c686cbfe200b020eafa42a95f76ff5459f15f3f62d8d76c989b4fab1bc7b23612644b37fb124d9df384972ca7f7dcc3db95fcab2cf8e44ad89970d4010bf36f16b27911ca512ccd1ebe8df052a8656bd4e2bb7dad8c1fc8fd7a8865f8a6236db1f41442602fb307e11b1391de4d02deae87dfb5850d046a7ca307095cc301e511dab355e77ac98bbc4e88ccec6e7178c4b8d645de112c1313dbbadb7c3480f045d3bfc980d", + "22d32c4704bacd4256d9a77f4b4ed9a18512ada1812de78f711a25e4d5db9a2fd10e28663f5297c4906526323c80526accd3d8ad024811ffbc9a0b5f37d384f2d3c70b1a410ed0b39bdc44401fde3a4c9c416b50b0790b6b4138c996c2673785de8ace88e82b6ef7258c8788ce3ea70346dbdc8060a42abf02555b775e8a96e6d3c8fbf9df0928442a4e7d37ac9258ac548bdcb040a5803ff43722e6d720398fb5960af9d50116b79019d20cf90ecd24d375e3b9c2535ac731c419f7e4e8834ca4c683a1dcd99a45ff00910d88ef7631fe2f9ef2a070cc59bbe14581002776b7afbda6434ab39d16de9e6da5b206f060b84071c48ace714920df4f50fb8ff9e28c64bff1f97065a02f96f3fe4f7d0ce046ba694b65eae535620b244a4e5436de807af706b240" + }, + { /* i=2408 cDividendBits=570 cDivisorBits=216 */ + "03ab18648d4c83c94a86e733e69d79864efc6f040d671813ad2d3b705d65ecb59053c819766419bf87b571046b44411f4f756e1579508b268d2f67e359ed5c0b9d60360267cc7c82", + "c4d3da00f0c89a0d0ab345fd6a2bc69848471b63ac00d2777d08da", + "04c56a998c60f73a671c6fe7ff5938a7a08d2653664e1760f4bb6115937fd7515b2c5f3621b212d8a2f8d15a1d", + "49c342dbb96972924beea1c4d41e1df9851ba0fb19e88d7f8bd7d0" + }, + { /* i=2409 cDividendBits=2090 cDivisorBits=660 */ + "0181df4b3f295217c032d97b299ff7e6981b712691e33385a46ff8e7fa5533a4486125a97d9ce925bc4b771f4aa27caab6548ddec2190a3af4873a6ff29f38cc3279406168d566452dcb44439ff636491dbd085300b4a23a3eb5d8e870cb111acc0c50d6a41ff6fcf124a8a4fc64c121b04963b71e386d4d809198a98e7c918f23c17e7859e085cb768d2f66ccc052cdf07533a652d2d056def5e136cb749ad0f65d903831588ae50eb8d9dda37e840b04a03fe80e4b11744d69803d5773dfcdb0eb6f4187b7717928b6c7c2b999aef6872d81129d6d263a8341df1e3bfc7e72b120a06a815424a330720828127b8e14ab4dd0e5e8bc660ad43d10a32d16475e1286b6191d88", + "e9b9aa1c83b5069d344c339c9224c98b2d6961ca8dc3723ec3cf82b718de4add3179a80c05e4815d4f57bfc2eb6ed249b5fd103500681e26978cc53f458670d4a9a075462786f305c03a0b14571fbab435b3", + "01a6a5a6a9e8283f467bda7f00a6da0ad9d1b88b5a3e91937c91b2d65e14a2e7cd675f81c2ac2cb6f2ce4f85a1d06dbaeb25e602fd6ea31bf7c054b95343a7132f34787d6e3edbafa30852dc912b71f7d3aca8500bb0e42baefa271c5eec8b77685f15a94e6bc35bb126548cabc4af13ec4f92262d7419390cb77b69d098110173c1b92fbd35a2375ad486a0cbc2985875d930a0f3e5bb459c06694a8bb8dca4f9816533a297e16f9da6eafcffaad06ef26a6c92", + "d5a99756bc174e2cb7f990b3568e65892722918414273dad715cce75c466716581d8ebab872b0c5bc9e3ddc63b3e055d828776faaf6fc2cfd549fd13ec1b6f75c5ecaddbf520b8a20fd5b472d35ec28cf972" + }, + { /* i=2410 cDividendBits=3183 cDivisorBits=752 */ + "1d78eac9b4fa5f2f8e35c3b3ff7ca8ba50ede33a7f18874e2d64e1e9e8d637676846362238ea97db07f005d2a7e1fbcfab5508e823ea01a32c6d0b91db527dfa09c184853e4446453262fcc714366c4c60f88a197e8d74f38873c1f459f8c0cf2e2fb78cc0e75da78d5de3877c73a06a1f91292aba86f614af1b244ed0b90c4afa9702ad91873508849343b8cd4eb17061d6294a5051baf40a46cf9583e5e8b8da6211df829776f786a843c827709bfe4efb54a3918ee92d2107d6f5b839ec679c5a40d3539e86b99c7ef48d636d68f95ff3f80d562eaee4a46b55885d5e1b8d545f3a18a6fe0fdade50ae7ac68b7ada9fb839c130ef9d015751f25d2d017f299ed791fe505d9511b24dc223e532f6c0606f568c93a71b6530075e131e0486830f42862f46aaceef9519329e9d7fb076127886b28cad775b1848d05f08766f5a105b31d1c6b9b539924cb8f1b027f2269fc916d87f46c7f76a01faf29e28b43814b7a0a6f6faec91329258a3192003473762b51e01ab5ecad19c475b3b9a499fb9fa2f22abe0edb44eefd0fa61fe", + "6af7cd2b0609bfa7781f18499f3827b253fbc7461c0e26629f8a009b2fb92fb7c55f05442923cb62e4d4b1730a228241b2af51eb51287c941bfa214ecb91b6214a1cd99d5ce38c6ebc98af8da285b08b264996fe1af979f859b08fb4581e", + "4688cb87182d5e215f6ca9923d7e12f0317da39eaecc634bda01768c7ecbcaf3b9dead282cf3fbe273f05e13927df20e59ba545c92989236ec08cde87cbb05555cf811364ae8cb9e8d50d4a0780c1c43e664984bc9b256f705b487b7522cbce5674e7944381c62a26a18909052edb989f4f761a60e3d28110f5baad2abe50fc01b91b4da6d39e76b66f9027fb1e5b5d6dab925098203f3a3ca4d4ee5d8e10c126a1a7de76c96c240e299e528a921733c4ec5258c48b23edc5b72fafe61cab371d6ad15668bf0215a4e5f8704d6b5486acc593c214d82255c9bc6bcb6e6521c17ee6addf725364007feda351be65c95816f6c3bb062bce0dbc50d35793dc535a8fe81b8c3d21c83e7d998b92999e4f69da4faed96a66c54b1a943cfc8aa7cca5c18b8bb821c9a4418ef47c6d72bad2b99", + "286c94a054d6f5b61f61b801dfe75e82b66adb73667325d9b8c2b31467089f8e104c03d77eb804edd664aa17cf1c8a27b9d7fd4f237c93193f2ab053b5f0dc397e6acccfd564c3419b08fc46670be80e53d43b392ade6dd26f680d1eae10" + }, + { /* i=2411 cDividendBits=2842 cDivisorBits=2258 */ + "03a0d938f399b6daa8ff6de48d2cd76bf2093f563df23398e301b637fb8c23b254b018335a98e7b357159dfb17893ee3a03892bcd70034fc30fffefee268ef090d0fc4b44a3da6f634f720aa7d4c98d3c2da974f084308207e853713b6156ca2271c2b22cbbec2527a743a6137b5fca9705880cea607632963d673e8c1443739b2c16a6a64eca838a4073ec1e1d921609f97798ea8f4f17fabed96bb1fc272d7a59b17f16725f689bdecb6e041fa94786dcf8f139f777ed5cc4dac4f1e826a594b7cf78b435170aa5df314166d742ce594ffc919b1800c62e3609adeef242775871f0fac972300144c029c47cf857316e30bb33837c77b77b1d0a749261ba34faafb384236b1f5baf82352f2dda1b15ac915f96be7601816d09e3a036144b1d046a196fd01d48c700ae7f72eabce5043853d97214b5829bc3149cfd95d9b39ca84f7e41d5e057eea9ff3d0936c2562c1acec3f094c4e7fbb689f54a0146d2459f97b4993", + "017f63c2a72476ffcd094333fa7568aaa68e521b5e3cf8bdd1b57a3ac05bb90c33c384a00a2bee4606c015ee2da4c0c0a2aa78cc3636f3a841a7457c35e4ffd5d1c1f185c6ed95b2099a37d6fbe961c877860771d99b1f3b58b22cd52552efbd592c79919ec1b386b5940b61bb85a38833a491554ad6acc2710dc206918a0e8055a7bd996d29d8f05ea996f809fc01e7c4ddcf0637cc5d73b47fffda4b276d4c950100a932fd1adacf551590862b79ec0327c91e09b432171f95674f7c47ba497add0245ca4cd8427f3dd4bbd337e77c1357b90b3aa4b65a0a21cb15f008eda13d1e339628214f5cbfb107e21c5d61a06e3ea4d167dc32d34267e493c539d258de3195c87d976e96ab90c63adfd93a64b196856690dff86376e55b", + "026c37d51158bf535423795bfc33b6fbd430af466577306803c0877a5dbaf092a068c03fbb13d50438bda0079d6b537c622f469376d455dd6e95e20477e23f0e9dc3ca26463b98bdd578", + "010082168e367601491ed63fefb757eea5c9f32d7932544b7f805b109736df8b63b1e8d9b9b1cc058aed6bae3075070b73446da4e8133dc2e16567dcba511f75e7ebb540162f6a74754ca94297d1c0fb6359a7ae1497f28ef7d8d6b0880bce59be4b2d5eee2d296533aae19e1408e3520c7c38ff03ad163d863f08cda3b1c8c462503542e03b7f64bf68a0c4dc9e53f7b7f152c8518fd2c4828a7115fb96e1d047f559f2232e2d4d4f87b50a30e6458cdf824d5a62af8628c6276ca6e9e5bd7c3f89c4f8974a64a56c873c66a1f4635d2001a4cd91128332698e32b79222eaa99aef9939e46b1e089d3f817028fa0b43c067b449af078c1074b3c2e767cdbed70ff25379a327a2157ff164b0262f980191686e581ab83b10bc0feb" + }, + { /* i=2412 cDividendBits=806 cDivisorBits=157 */ + "2a4ae12d36538c155c458dc46c30c80f96f53e8827b1dd1ad576fe9715c6eeecc3c94d985fc975a7e60a44c391514e871cabfadcbf75b476360ae1b57c33b6a4fede7bfb7f47b3ad5066fd6cf870d3e45a5dcf8f596c7a09b83ce204de5c5d591aa086cf96", + "1418acaf968a94733d9c33cc6aa76687a592aee5", + "021abf6415f8044a3fbda64806572bbb9b34a5a712a39162c18abc7e06ee0a5d10133dbd1c628d4d14b016f0f77e4c2b05772e057a0919622e7954317a03a6d6950262608ded5c46364d291b7a157efc5e3a", + "0e89681a63185a5e65b5ecc06e3ca65161a719b4" + }, + { /* i=2413 cDividendBits=1461 cDivisorBits=154 */ + "04b95e219d434b420e10ac1608b38d4bcc352fb8a6742e42c2d94181a8d824aa06b8d2d437008594866d416132173a895cdd0e0a383dc81936e06bd2c8710fe65dde616eb560af21f2ac8451b5181e3b8881e87b47b0fc9abe7b4925ce8f84ae84c48c9959b8c878135bbf4dbef711b52b5b77b341d7ca5d2fb1fc92d7e25e81c93656cab4b02ba0435a5815769b8cef6d60b957f7611543a8f8f9c08ae696bf8d1444b5675a02839cd9516ea12c4a5b18d41ec7ff8c5d", + "0380e9025887c4c027e29f6426eb40a4b863de1e", + "01592ed7a97f312788bba25075ec4db9d0c20881c17fad4c1c7f0849e6b4609d47fe215657dabad28e4b38ee4406bd93a5e1f2871030698c5c09f7101b87bc938b2e94972098cea160fe7efa662a205ce52e109f9097fa3f30c0d4ddbf0962fe4087c8152a63f9a31f4eda87f87332714c41134b649372d24b01b7c2feaf166730c73ddaa8dc695ac87d8dbad8d740f5abeb5ba25e6734728a4e0a6f45bac3832649619f", + "fc35c2499cce2f4c064a7b440e5925a04139bb" + }, + { /* i=2414 cDividendBits=39 cDivisorBits=27 */ + "104aef14fc", + "034597ea", + "04fa", + "02991278" + }, + { /* i=2415 cDividendBits=1282 cDivisorBits=428 */ + "01da01fb7fba2a3b442f96af0adb0d65d6e18d7349182053ef03ca9fa9cc98469d0b735b9b1ba351f860ee6d975d5ab56443f33e6c872d1ef5f728a2046f749f425a5610c19b1da406b2ba60f891bce02d045bcc02b0a153c0e285a4be3fcec701a45d6e0dc6c8a75eee895bbfbdfe1b728a1db9e167bfc9a5437653f2a558b730073e997fc459db238da4d9f6012e7ed91e8d7a57d75cfcf9f18c2a32bac86f97", + "0bbe7da0a45e2106f33c856f82c6b56f6b070cd98c65b8a738d22d9434072de7a415d570a3e83a2e82d732f776586b6cd3abd323ce09", + "285c8082eab1ad3346027d4a9a5edb8f15792ea028fbab507f917d0d5daea6efb7a9327551c151a7d74301583705aae528d860bff176c4bc18ffbba494a0cb892c543e4a69fb3d74de54bd84866a5671358f3947a77c10a2833ef77c04e8d6cd7de325983cc8fb6bd1b5f7", + "01a153832724ccf9d495aaddc0b306161e0a9fc840425aa19b28e9b5a7caebc25d34dd798d364b65075312ded1f21a2e10f5ba3747e8" + }, + { /* i=2416 cDividendBits=3109 cDivisorBits=2671 */ + "1fff2518e54c28f9f56a89c0d5ea71d3473484b43655a8fbfb388880a2394f14295965f58c44eba1ffb53c15e2ed952905a5bfdf060ab1b02ba595d957958741ea66f2a2fd264d948a718a323506b5023f080bcdc0e16b7ee750c04376e4dc6e9c6f2827959cae0495ed0ed0df7b180da84c010e850b2375ec4d2c215a3bb044d89020ffaf3c2d95e4bd84f8e42e41cc5db83c929fdb95c466ae5955d28221f07234bb56d03c78cf192bdc3ba12846cd6665159867b26f5001494ddfcabe91e05959bca8b33beb432c96d648720bb723c2820f2fdb072d48d70cf77fa5f3a1399a90148a9478786de9604363ed12630aff90e813bfc38513702d2c030e014e2c67c371cc92f065446df720df2d1947be78a712821cb62b03e855fb7413ac8ebb1b9a25c82a1c9f41318f338b2ecef1cc898219300b099c5055547922e4824d6bdb51baf33f5960db47d6b6c620faf01d6af7a16b2c975ff23727b7350d8b055d9344a54489bc60e9d55a6fa2dbe1530b19f5adadbc2ad4235313dbf102b4f23d1fefd1fb96", + "444299398fff4e4e6583801fcf1e468c31d9ee79eca47bd598d6a84d07305b06baee8d65eb204e93648815fb8f28b11bef9d6179d11ee0eb853bc811642c7d28f6e9265cd3b5bee0027e75023459ec3432a8d008321619e44e1201f8a96865436720661d52ecd8176918c12bb6830c58317cf24ec88c5d776752fb5c70f06fcb9786b6eda6750a1f5add2146c0a2a74b30df15276abf2a30060454660f8e0062078e302e6b74e971efcc64a24b152bbbc66c9cc09c3b6ea35af6dbfa3f692e9fd849ab27c69c6d324640b54a1e36056b861a490299b77ae83a0aff61d7bc578702a599a688f3594213e5d60595b879d7d21ac13986514fe87725800b543df09e02d98fce473d5765027be320e9856ccfd6d7ce4c7f50a825b4ead65ec01b8069ffd395eae676745eccc0f965897fe18800aec3b2bff2ef97b0ed377ffb512afe624b69ad35c652a342c02980f77c", + "77ffb9c47567e230d3589e5541faeba487b6bc870713b76b99d817cf318569f2a83b2b509352c088554efaef60f5fe48116e780395b344", + "249951d16b5273f18e975978bccf9324289fd3dc4c713a9bcef950b6ed3bdb99dd549efea360ca59f25d2a5febaba107fc9209ee54c488c54867970ade4976b2a789cc041563700f9e00381ef69159656e073de45481be9a4d6e00b0c77157bd19b2d95ae68043762a4fef074250f2297e901048b3d55f9764b2e17f3dfe8d086fabab9fc9e135c8edc8d3eb73526d4277cd49695fbdc818a3c1ba13bf4af96e4f0ff24d9ec0a5a93f7d06f0838520f139bea5ae3a57bc89e0619f78b97b36bf70fec521a0f1f55ae180ec9877162fd1f79dc5253290b30d59a81671aef224e0e9285e7c854e2fcba3abf5ddf6b64d305b3f816039cc63b71bdf02392c85898a2abba86512b26a192765b7319a051ab9c4dea73ab839986ad180e528dd4b3e6c3270094a6cc85d8b847a72725ef7e22edfe3e13a6258593c408361560683ed7d5dfbbae5dda2518c2ff93d588aa6" + }, + { /* i=2417 cDividendBits=71 cDivisorBits=2 */ + "77b7917b02c0fa08c7", + "03", + "27e7db2900eafe02ed", + "00" + }, + { /* i=2418 cDividendBits=2939 cDivisorBits=689 */ + "07f83ebdd338a7312376af86f5f96f6beb965143c2670f33c61b85343b1b72ca605ea5b070c456213c93c05628d5b7c5f6663932bb7df0435bce69c36c25874de5e3a42af080a3aef09230d56b1df1370b1b4c78be09f2863bc0454a6696daa0d5e3fdcde434138c7aa63f4d11d083fe77cca81ade39d0da879c2f05ae9b6bc1fc49444d4922e75bafb7ccba2086309892a90cc3477a0071e70f034e0f2eaa163ffa47bcbf7a3f26c2a9d39961d8c63929f05c593c7054924174014c893bedeac90bc971f891286117cdd7025b8ffb63c67356a8b93958ef896304007f030d789e074bb5b64257d27b6a4fcc915522318ae0f43364ac6bf2437bf1341d652cf88f768ff027387c9bf9f709772e9c5032060be1f3f367574219ebdc9435ced2a9b7a53507f59c01dac694b8f6f15f8d678dbad2f4dbd4ada525a214aa6ce2e881f739fd56c6172fb916e64381f6c5448088a9c8dda765b81b00d7e9182dce3baacc4d52ddd858252ef07f65dd884201e3", + "01f553bf3e6854e600587cc44fb4c97036d8a957fc6af4cb1ef1485ce651135aa9df2771f48d4c28ceffbee40c5ac2885659b76cd29ea57621117023920d969d2fafa9074d7e11835ebe031362c024f4041c6897ac95ca", + "0411d71454ea29f4732aa1527a01a6f48c38de31e5da5ceeb641eef35404dc5e95fcd27e4d7d9a01033533830acbdaf872e2c8738c584a8f261125a95b60dbd73464e756a24d0e3208b4ebc6b834a97ce56c93b7fd74d93f495bb2a59416bed6c4a0a821831cf992cb083e6cca25b10154a4640a34169f6e00909f1f90fd37cde93c4658260c2e7daf481774dc1857a2f0ec4742228f39f54a5446cd0ccff3230ba430627cef32dca2b8c22e099b6c9fde3e822d2204106a9ee2204bb22ab5821adddfa9bf3763db606f411200836e150f114c169f72e0fd527d88e5ad11202d75adc34e66361aaedaeddca6c193bfe6606cc7fa266af6fab0615eac04b57f5e8ff49d714a3ac213d278619fbf37eb58a9d86b6ee1689c0acf9d", + "d58b7097c2e3a468cbf60299f6cc8e3d1046ff58df2d09f9915600473457abfd193073dc88473da2b0e60019fafa320367aff979e182aa92625503e3a47587143966b88b9127590dcaa2965be0bd05eeeaff0467cf01" + }, + { /* i=2419 cDividendBits=414 cDivisorBits=122 */ + "2afc6030e01a53b488b75566157ac436a824ca10e1c3f3ae453b5fe50af616a2782352f34bdcf2202dc448ecda83c9635baa1c49", + "02a1ecc905db182804609cfac08beb39", + "10542b47545974d5f122981988b96e7b40e3cd4684180c459811847736c75875a18f3898c3", + "1e32b179b6ce5a8a37113651f417de" + }, + { /* i=2420 cDividendBits=2249 cDivisorBits=550 */ + "01ee40e9c3a140aef0ad5153260b40ea2c145968c7ae95076a9ae38e3ef271f4441138f0517da8550cfd1f33d746ac943f8a594d3590f02bffd3c27edc2ae9ff568b88451fa9d73dcd8fe00fcd335fae521a746a32d0176866e5a997d02dd999c4831e7b2cc9f622c64a66c11abd50c257b2b9990a2a0ac6d4991858515afa9bc542a75fbc21fb1ab1aa2cc2cc00b8ec0ef60b5b79fe9e32c414d2e88ba7a9cafc3df4709dc5607cbca2f471b51db9c793bbbd147792beb5bac51626cc7c4a842e92c33ce72547da5ad9774c83c6117661cdcb853ead30b83b2158ce9b0ab6a9fcf922c3600da3cb7cfb41ff898eb10fcd1fc5161e1f3425f4c22fdb8dad37986d50a17b98f6a0d1acae05de2a0ce19705f03974bd7ea6131bfb", + "266e598b79c35d20b9f791f03a23bf10fdff04a6a47983aa1f548c45ef8476f59afa93f41b63c9cdedb57ea29c0e1fe4906ff882572d88459f7e0ea5d97964881076de96bb", + "0cdc5c7c02dc7518b8380157b5075e4720144f763b3afd1ff6a641b89a03a35721ac075112859332facff80c7c645012d7b77fc037d5c0f956899530a75781ebc313ea0b03194d3b1d65fee615f8a5d2a4d5b9e9c546e9c0aa61683b4a8b5a06019ee91205097f5c0f6f01993697e7fa59633ae848dcbdc07b8df67a2885f5b557c26945f6e31270e20f0fbdbbf2e6083e218ce112caca213c99ebb41c3fb788200d8d0765b3325225b3788815f76eaa8700389107bcdd6e75b979eaf1f88f820f18bbe27e9c29921a21451c4ca398f7b518e313b7", + "1a8df1b4714563ee695268d9b9a48ce40982efc5d3fbc98fd7feb132e448561a49fb444f7218af3630f9f44a1d57ef497def96bc73873e58a0c4ccaa966be8fc2ef7f47b4e" + }, + { /* i=2421 cDividendBits=751 cDivisorBits=640 */ + "340046cbba1692b425249c65259430f0a00b194248694258ee4b2d0b48839f045a6f05060a7a3966e21d208c68ebe6c70647ac15ada054eac1cfc7268ec37c829f7668407483cd65077011a30961096b7cb1c785995762b74481025a9bdf", + "b5e00bc5236337678757376a2ab2fdd5ab044e87a1ff6e73d2c0dc322b5a3b69a9e9794f71ed8112485ac5320269c9dbccdaf1b64b35fc84ba176abaf6654e081701870a9d173b35084c37e247104e23", + "4931cfb17d0c0f20eb3b2609a30e", + "62b17346a384ea38498756506e1b0911565d68b3aa03313da97629182a2acdf14a7077faae3a65ce9fa3705e602d4481e8f7324e503388e7bbf8b57117f7762afbab2e62b406cd8aaf9a14a4cc7b0cf5" + }, + { /* i=2422 cDividendBits=2919 cDivisorBits=1198 */ + "0e124f736899389ce58e4914573306de3788f3f624a6e30ee0bfbbdbe3bd54749a0b11f5fdee631b97b9df07a061c673b9464f73316a0a97705072aa93f5f9a8b6176648316da023ae0ae686c9b7ccf3c201611332cc0f4cd8ee648e3c2653a94a1a98263564bba9d8a9c3725d6d04d130cee7bd7786d473b1b58ef5d986840957a1644fb2f557cbc37cd47a0e0f3851b897fd3dc46b049598cb5b3caa2d224aec8519078e850f5292bf51db4aa40689dbdb03c759a0873e08088ac54903790bcfe564cfd7f69404d3970d29c714fc47f8b2a561aeed4430b3aed35cff8f0266b5c3b56cb5f5bce104d21856ba7b23e69089be4277d34430232fa87c9af691f8178a388d097ba0ddff29d686b7b5d2f7012793e027d34b71ae23590217287693282f2d65a1fdb029453deddfaf5e6aa457ea390f70cbe4f686c698acc3277967a8f75402572d19189880b5e574eb9daefd6096e9bf69185828fda62f122da1b49e17077b5a8d674d89a29504", + "129b50e5d4a7639561ed08687a2fdc28a489b9614f5f307fec712e6d1cb9855cf7026cb3b7f675b4dcbaf54ed64a3fb5d039bc4f113f8454a416c12bc29565ea0dcfbe3a7d81c09672626318f4bf308b73a546fa8dd73381fe7cddccc02acfbfea8f1eb832afdce00512da0cf8c12406d329ffa76b9ec917b26340e7f78a8ec2d43895473e03851502c7605c09875c08ae6f41d21768", + "c19a52f3d7b6555d7921602cb39b96656fa2a62350597c31d64012f4fdb84444307b9dd4f4b6eae1c1755d40c322ffa53de114db93ce63c72698306927ccd4458d1bc5ddbf699fc961f73d6e638bf8a0c91d397b5cf9d3e8c70a39ac1411b0edc491ecd03922cbec9457c756a730d71d71b52cee36c9d6d958768d5f90e1c09400dca4287d2bd45e9f0efffe8644c571d8386065c5ccb666cd3b3ffa081f91bfd11ddf95e4a2ebe1f55ec5322fd257822d9c36fb57cb109989d9413a601fdf9108c4524b7833d248aa5f11a0da7ada7914ce5400aad6", + "09aa760444bd147cff0c6d5eb76ba330cb8bcb79503337c29f8cfd609af08a143e3c6c877af27ae57063d63c622370208177ba78c1baa8fa6ac4e60ef8dd6216a7aaae1fcebe09b0a55fc4af3186155610bdade58fa0dab58aab8e6286772899d552cad4167e48ad7017069c35d7b7afa789fb578fcf74272a32c34ae83ba05f3f3dd5d90f7b73a6dda3cc52898324d1cf38e077f414" + }, + { /* i=2423 cDividendBits=1879 cDivisorBits=1300 */ + "70ce387d2dfe3c943d4a75135894e62f6afbb3d4793bbbbe33eb0d18670eb23a9cf01864d3a5756749bf280c5a461b4fd9ee7d17447e9df29052b105535faad46236306a32954f253f1c3f3c3d595daaeda54e33283be92cc428c066479c87979106ecf9c628a338c666931c21df4618e5fd6601698047786c515449115f94cca2a59d1b999ff214a7ad72a366bddb04563ef314ca4cc85c3220cfccf63c902ed535b49decf238af1d5aedb2e5aab2852580e8404bb086519826aca62ad95ce5a44e8bad5c1d5e86d633511caa40fcfefc54f08a855d7a3401da0b2c2611a1bdcf4d1c10ea35aab2700e0d", + "031f95bbf90f22cf1e6f26593e5ace224cfda0eb30bffefb56cc0b38f3bb9774981a7bb5c24dff734f31f30e2ce57f9cbaa30006b9505acf99ea4633be345551776bff5f78670ecb048354ba4d3f806d546eef98336eac9f1e563784a3c8c783ced752b78f5d8ec9a40ac11352b6eaf143391cd1240d8b25737baed5d257b6ca70c945667d07bcf4dbacfd676d8d8b625567d429de2ab438f86960a4c5f65657313236", + "241dd3fad563a27ca8721a830148a9a464292d909f83c1ab56199ab5e1b0c501b062b82c4814f40c267561f663c1a663f2afdd3f8d418000a88d7be58a2fc2cd6e96b78821dfe0f674", + "027559b5b3d8975f334eeec561cac6d66a4f0767e384e0790952a7f2400d5348a1cb5b8e65b3e6a057d2199ec401ae02a6df5775134bf801345fd640e47bb64509dce1abfa78b877e63cb51c70c0bb736c5a6809410fed07e9fe465b4ab3435737660e12185a060ceea3b9eae71ec071926d4e1c5f938dfd3bea8e708f93a96536688199e979859ca97245ce890d88816864465b581fb1e96d77f082615002f0a56995" + }, + { /* i=2424 cDividendBits=3031 cDivisorBits=2713 */ + "06568b8f69d40c41dc3a17a725affbbe2e52c927249902a3a1f51454b59ec434cd2f691efce0f14be85c4d7bde8d9b91ed666fd57b4ba84e2abab214d13f8b9230e2381756908ab5f6522f5d2deaa0bf0fd91a2fc7b37f88ab8693f32232e6fbf1869637f94f0d7bf0e7efa5d9202e3bf3bf7ddab5d37f6395788620435e55798dd61e85ade74a79505f666c36d9b17d45856352e938d5a2d530403291a53fd3d094a4e55961712801044b26bf6b16d9008ad84267cdd33be9c17dbd2e479ec2a28c992c68d9b5966580ec21ab5228016388368dbf61ae57624f0cb2f5f57921c3e59f21b9f1658bf4b521c6856b47df1691afa57746202c3fdbe5087613f9c12c4faafbdf228d04a565e21473526cb05d5d8e04870c16016975c2cf8e924ddad340cb01d8c6a643fcf6454644207954ce0cf12914dfb65e2ef9106f45be597c9836c89b6b617c94a78ddf20dd40a11c066bba24517dade3e53ce2a4406b9646c15c57fdd8b3bb9f006320739fb76ceca618a9bf2cf0e461983810", + "5dc3ff84672e156ac22ff51fb7c96d1bf5457f3b4226c0b60a0feedaf24a98a0bc7cd72c5b51b587143e68b9abb295113f8fc044b8ba978568370dc22047d889ce2b1a4cb9b6fd1adf71ecdfc7c330bad66ab208d013c6bf42918f36032b99714d09950d6e88a67417dd2b574fc9721e2352c45b4fcd18c987f0f9c8668d47532f4c871adf634daf19deb85d1b9b4aad9f866293c026313406049157d2b57f34f5ec66ec75c0221cedb6d1a554f9df2f12a3c031fff3528dcc760210d1dfc662b53ae5ce4fec71bf3aaa6a32e2ca4ac77d543819354c3625a5492af7b034cd69ca128fb5d34c4fa96eeb24fdf20fe8cecdaba231db9a0e89c284772d031a961ba6f8ef70ab157ffa526cd5cbc6235ad1cc7c0c1b0acbeb5542011c7cc73c47221b3b5c02dbb688faa060e50f1f3d1c508e63a36a23e4685d59c5d5c14dc811ed0c26c8cec98ec402710473f4a6d85cc06ded6d", + "114de45aa863dd4a02291831465267a1656d83e0a2901f6ac5bf7ce4cb23e12e8ee9895ba725d734", + "2fd2b0c4735693b8eac383f82f982805e924bcf676143c003ef31d6ebd8d89b385b5daeae8bb5aa6e807a1927138a2a0442c1fc81a62e021ab62e903328bf1bdd591cd1453b3d2e03e331c4dedc48c20474073a9a2f78d860bc98f6682fd027dacd24d5ee65e9f972cd41fec9849310a930408a1b2fa5bab4da31fc1f82cb43b8674934c2c1fe97338ee14ba1850931278579265a875d727e02997b46c35a8bf6ac668512fe3652a276894b00af58df4a8db2977934db5b0f754574a53a1d15ea66d11324bd2820d5527d8fd5c31a19341db32955620bbf80058c4b5aafb156435cd266cd89a6d1ee38cd89cedd2e4d424c111b4a9624f8d55eb8d930cf6c01b0b48d5ca83238993835a32e068a02ff9386a751b75546e6f4610c3f885cdb0cee87e2e03595609cf28d841aca24a87876c8b4f321edbdfb24bfcdcfce7790045e72c2d916a092283037b195d4bd7ec8d1c72ec" + }, + { /* i=2425 cDividendBits=808 cDivisorBits=98 */ + "12ea1547e7d92fd6a16c2824e9201cdb0104d319be8a2956fcab7a292490a5f5486bb86564a2d51ff89e326618493e7495513951f90bbd9db9c1fc1cab5cf89a6f7061073b76b5a5bb7342b9b736850147c37f0d9ea1f34195c94af78ab1230ed775598176", + "b2524a03a848920ab24e59c4", + "1b27577bdcdf0e90735940d7bf554aa775fb6bdc110898afeaf3780000154d6886bc2425bdb81e26500517e65bcce828201f32368df11589217baafbb0db8bd2dce1498ef7f3b837cb2a6f2b497a70502dc43edd8c058f4c07", + "524c2328ce8776e85a12dd1a" + }, + { /* i=2426 cDividendBits=1610 cDivisorBits=790 */ + "716ef1154175d2072069c1fae63c59c0e486062591ef99dff5bb4f728148712228a943a4f869411117673d93c8419ab2efbf4d74da2a2267d7707ac6e68dface43b2776b4c4e50e3a3dc21c842eb71016f71447874e3cd9fd39d9acaa19301efb9150c793720b74ea7da9f99c231d5e56e73a3d8c3e7a1537d2a9dc1532b58577b5762bdb153ed1e2653ef33fbb63c0601ed08afe5a084decde460bb962eda0f67725e57c5eb8c6424391762a4553bb6f181e82904b9b62aa85f25b4edc6037ea356ff1049ef439470", + "32ac4d375da8eeffdee89e7fe9ddc89b5a84d51aa8180e5ff9f670b7cf34e8dc56bc8abc30a59d4b9789266074f8720077e54471fbc191fc795e9004db82c53c5638dd97f5bb4df3f3e08c456eeb8b679b49f6a565aa415192a40a4eda212247a80bd3", + "023d1094f1f51a829e34e4c0d10180bf95d0a704e2a8dcbf6da5bd9fac19c5b40ad552a6e6104939bceee36cff5190df83eecd4d9948ccd98e1300d7dbf864ec9b62d296a6b5ef7a619e8dcec21b4c631c7eb25ee5e2d1ae03320915cf6d1f0e016ba64a9000d8", + "144cb7190cb29758d01f9fb069f3efcaf9d26ecead16a6882902ddbf64d4c8d870f03c426f985b092d7d59820356eab24d597aaa192082b9a16decab59526e1539a4a638318bc38e62a8d6e5106cc2a74e8bc4db3be7ad4a5a1fa1f9385d99d4c99a68" + }, + { /* i=2427 cDividendBits=1355 cDivisorBits=106 */ + "0597948595c6046f5621c004236507a23d4ce438678ed07d15412706da40895daeef1f99c4a2297d495b9a8b9ceca37363d2f7d3f652f505fcc46a2f4e5d0794f68614c6851735f70781ecbb60a743b152b5b0fd1232a6341ef0db5b14da31217b7a4b99358e1b2ff172da5124da6a171e3b6dadd419b0820c20b1699be52a269c3e728ffe44919fe0a7af8e7bfd5d6e454c002eea7ec1e3de96706f2e6ffa2a88addcbc5a8ee1a5cc90", + "033b7301c5d905a3f7f3a39aafaf", + "01bae8a4af6364bb401eb343223e7c09e4a7c18e18fa3fa3dec81368141221e65c759bdb9f5fbb004a8928b9a0e27569ba82db59d9e25028b38043f13d85a077d86ee53e5c25eea13099c784614e820ead30289302de89e55caa5f934acac189fb18a49025fc96155836cf6131a842c73493471d3eae21769f574fc28ef2018b8141180327d9fae681f75d1b3c1a7372963752cda5632305b9754f801a", + "02cd9528bfc07e01ca84ba1774ca" + }, + { /* i=2428 cDividendBits=2344 cDivisorBits=2318 */ + "86488151f92ef1db7d06b7d8287f23b96aa320d20fbad3e98dac8b7ad32a8e82e84e14aaf443d97efe70cafad39629063660f81d5d372f5a1babd31b3a78e22a349f8124fa1731d65d16495fc9aab29712449a3f3a27c871e45fbcfb5148a23b916b27cb2efee43f6dc9b020bbd88974687d28710d67c38bad08f6b3279c4845442a9121d170a4acd54060421b2445efa08505f54bd34e5c86a6d4ff65e7976db6c623fe362f412b8c1bc32fff41a209f0947b37871853534fede35d3fdad3d20fc09ac9b219f1b9e509103323b6af75a2e40a7d242fe808344e8a8ea6ad1054a900cfac767bc6dd46a9037237d4c4ce6402b3922affd9a93b5a091d3c0ea8f3b185190d9a5eaa0aae0f0940a71bffed3c56cc24371113160fb75c069a9ca8b99f50161bf3", + "1e1d87ee7bda989c2a5e9a26546ca25d40dc9e7829b2504d9edb6f39b6910b9de26fd29b3f9bdf47020a78a56ecac1b6a08b7bef06196fd210ef2297f6c0f64e5d44bb6ce0eb5de44bc6719fb9d961885fcabbe25de6da0a199089fd0e46913d100e91888a39805227a4a9904d193627a0a09262bdb114f0e340858f59318d0ac3806ea5f9fcbe9fd349b1a66a2eb2157c85eacee0e500c591bf28175208f0a444c5d6e08d1c9326506ed4e2db4637a8e36ed2620d2fbd0c143cdf287b18766ba54f96f47651793d5e0d1a6540d7eec80f730bf717e6321f0c3b9432e165840c1b5ff629d5f5cfc7ec462a71e7c1e81b10d9b640cc43a9fd86c42c04e2c0bb875b935056aac40d1789af83cd6a4ae9fd24ab75e51d0b3fed479c59ae21fcaae181e1", + "04757e87", + "0d9119eec410d7dde3900f30129506b8ba272d303f0a1765f82266cb12013bf98a6148f2146aa6ac0695bcb26af8c8f56c7907c33a62d5e14ac9a54245f276eec5353109e7827a21514fcc1ee29bc3f28aeb23477ed27a9d574d56a3a3b6351e824ef9921fc7fdf26d49c62004d68187423c261205578f81d27c15f037be223da8de3295d46158a4c6174b213b960787d50ad0d89ccf67eb5deba71238687fe3a34a6906d74928fd61aa061dc4c66d8b0d851e5b494117401be39bdd101886bda0d9d3a9dcbdb50281f2f2f4ba90a52b6347bdd9bcc3129a4183e1d5f72c663fd93c73d0f6519b9022a56f62a6432fc938d9958ffce844aa4c57cb76b176da102f193d1b24f0e694cfaec0771b4bea0cf39aadd14f1a0c2099e621f4d22e5568e04c" + }, + { /* i=2429 cDividendBits=2638 cDivisorBits=640 */ + "2579f2da7b6d15a3679a8857f3d337373f7d00fc2ee3220cf8e01385d7f56d30ec535cba4efe6bcaa2c6f424349e7aca77f53c56f3eafddac03c41c1d3c32002239a014b7c6318faafa96a708dac836ef9875e18eb8be01f822b0d3bbd40f4b3efe78d0d04953eae224a35645973ab1a162ef48ddea15b8ee149415ff07f63d69fa0c5f5a82c4d0fe891b8c574d502bda178c9973264b0fb28457ec0f2517a9d1d26757148549f3d6bf374ecd481f598765d81ce0e36fec04ccb65193ad3393332b26fe069c6104c1d78a5b8ae8a047c06d5b26397f4459aedaf1c8ede9659e68d110ddca445b6e31e9bdfbb413aa4e36e505136268b14706da76ef0d6757115862097df708f9cb5778cbd4f61f929973764f592530819da6de6fd0ec065137d13f73f7da9146e4de6d0ea8cfc6e26a14c969b74cede72f72254aed46b5636c400ee6bb182a07dc9e64f", + "8d8082bab96976ee8eb6023cdb36cfa30a56648ff77b57c9c47bc12f97c39139e4cb4900e3c5757d7ff16911e2a515b238873b22e9ea1795eb31d6b5675c60f53e77bdc87da468b69e925734ced0da48", + "43cd01522e7f34f89d5af33ab24327cbfcc3baaae98407c950d5ddbe4ce9b2e099447798870dc8c1719afab760181d988d3d0fbd9f0f0dd04b8860b281243472bf1da590c3b7fc02586e0012b9ac3cc3edbf8575fdef9094d6576ce685011f7faaf37cf83efbbe732538ea1cb1cb31555b3a35bb99d4b408e81ab33363410cc384c7aad0fa5561242b5a572197771a13398cccb99a3e4bcc42cba89e5b373cf7aec83ad2707a0a1cd14863ecf52e664a7e771b9aea04566e691a591418b1b1a296dc65bc016ee4c88aa931aa3bfa9abd0e2a3b99bf1398b7a3479cfffc483fc48df95462c874578dd99f93d3bc9a7dbca309c12d7a5348c30953", + "07f4a375b0ec2caf00089bee3c82118b387d7428d65a79c17d3cc87b60fca69c348d62717739594826071d91c0553d6d61df2c97ea86b841ca37dc839f3f9b0779b4fb2c92aaeba959650569938e98f7" + }, + { /* i=2430 cDividendBits=1668 cDivisorBits=258 */ + "09abfe66ea554eda5ca1a08447bf80306bbe08cb563a470960f24d1d3dddcee8f19a4b224a5084d49d49532a7f243a876f2e61462d6b338656df6acd33349c906cf4e5683c3aa95697038d6e404f4417eeb96fb98978cd9aead9ecb9b0e8006cd90d1d2fd2226fc0b4b50a0e14120379a33af63342edd9add0711088d600924d2f370df9c3ca13bf8c3cc70a76687056a81db80770a781cd00564880d0c1153628f0d43ec6a16538a73c3359a7edfe2d678e3b8e0b6a45c4aeafb348b56c17efed7e7917b299e9a30cb84e07b133c1406b", + "01da98d0ad9c4bf9f402ae12267640b93675dce32de74a11dbb822397f52773836", + "05379049c11eadaf4ba3dc65a72a760ebd7997e22710e29496b763e5b6fd223face9d10fe096473d314db116027af403e72b2244ba69f8dc502fe4e60556a65b1b43431cbf4151a68856d74712036859f797090b9fcd7552b49e4b75b14d0f868d97e8a2251dafa903ce579783f993eb81a3e688920a8565205e6c2d081ca5b6ed69ddc6fdd5a88ad37165c1a3f18eb4ff7308469cbc13d8d1a71cd3c777141c89dbf88e95bf5ef6ec57c5bc1b3305d726", + "016b79a72197fad092caf65f01a6f5df3c2f5eb9985b5bca0d4c9c9e4ffacb8e67" + }, + { /* i=2431 cDividendBits=3785 cDivisorBits=261 */ + "cd062a51f7028b868393a847f64cfe2706f5262c11786978e0588e522156225d86e6be9d5a3d2b4111be14cf060bc91c9afd4b93dfd9ee16c6ff0b2be1a6038fd335d4dd61d73d3ecf19652dd3bd732c11555218dd9d5c3c7c531f2fcbf0f28aa6791803e65152d86f164849fd3f49ad2594650e1eed41afec33130b8fc6ef9e88f4e140e5b79e4c71437b11f1f280bb7e1c5816a5a615b765f8b44d4b9b44a60ba710397d12c5cd8690cda6e3aa971f132d7fcac3b1276fb0ff86c720b14f0bcc8a162e1f9b86c83bbbfdd367c43e74ad15ca703919f49aade3b0575db134c3e80e64627f1233dc8082ad5fd77d7c54e990f584581d12ec977950e552351df8e0d2551deaf3f8e1ab47e99b8828b95eb7ab56732dbbef9f0c33ca0a55f0c84f0b3c7f541b25f6f604d58e8f8e7cbb9f89e0de56656d0db89ab0284f4c6e56846f484eaeeea266f1a5853f6c93b0e6ea0aca13410ebefa970fe0c653f1a67c5b42307357e21997b3b8cd81b7e043df1f4c774402f0aede2767cae5eed1fabc4301aa5b87633706eecd897f69005bed4b437d7c9f03984a19105a005dd551cf01793fdac24930d6d5d1c4478a120509698d51592d1c58908db951d594383596c04ce8bc5ea2aeaa3067427f63ad473dae977c5f9175e9184bdf", + "04e2a03708a87a1db8cd142786b4379071795251c313612bab46e369c1f37e7789", + "29f7c99c8779b721480067ab576e8075babe6c7789a3e96876b8d1bba8674e756c1a7c675bf6e5b08ec6eac100abc5bf83a798cf1cd924db2196508a6c6f93e12a42b9135354230b4714d1df60797cd3062e1cf89eef143d0fe19db43a71b8cb7356045e4fe3280771db1fed7dfe860dea667242d83a164c6ccffa694e62c91dc8972194b4cf1862fa749fbedca532b71b84b0ebfe6ab6ccd54829dccbf5e9f8cefc8611fc860856bb9ed3b823f5deff5c7a575762d4a2750cf9b9de6bb4f488a914cfb38fcddf019b7405e4506bcc08ebc6170b967089493e75ab66e623f8b507c64708cfc25a28509e45c3ee69c8353965203ad0e101dfe06178e128f07410e24b45ac55568728b698b6ab46b48d274bd7b58859dd9e5566e6073ceba0b8f2d8b9605280bf05b118d9b0748f39d05c2341d6fdc09c4a29220e771a654a889097ec44739e82ffb757fbd88fc3ac3e2b507715137edd02dec34c43bc102ccfa25e33996fb946c139651977511a9c937ed97e6ad58c092aad9da6a76a1695e43d9c0a55d8645cdc317a04b59f22c4dc13d163c91b87e47857471461bf7193f3dec2f94be77057823d01274243d6d976d0dc094133a94753040a", + "016bda64485328787c8759bb668280fa652f1248d4559d7b22fa562e7babde7c85" + }, + { /* i=2432 cDividendBits=2764 cDivisorBits=2495 */ + "071a52c5539ecc71f4e92314164b8ad9b4c153fd4292bb30e6331f303901c55aab7785663b12f28c64bc91ee5a63d524d25cbcc5f9280d03771fa61eb71a9fdd405126ff10193cd3341216dd317d0c1a062a8a520de51dd72958beabfd63013b6ee006bb2f67669646bed558891f700629c4686c6ea4b449754ca63b55d0c1ca652d90b92d428a2bdfd89480dfbeba9ddf0d52443c54d62e14490350f99be15362d344efed590f18f3cfed61b225550e49066b55bf665ace5740df20a0a9d3332e0f2bd3bdac6bb1cdb68ff5784949b1c326aa7e95f05c458d404bbf28d5fc6271aa405c2a9a851d7170137a83eb3c125f1f578558ac75ab21c4437e77756fedea0012ab883bd7c6c1fe04e81e9c8429b9386eb9d67f859d870a2d3d973d902bd04a4f1f8fa834e3722e736bbf0fbc5390dcecab4e0387947dcfbdc46ab60395ed5f33dff91316d34004b9f622acbe514966fa7219554518ec83", + "5eb0ef7a02decf279cb95797ad8bcc8d264d5525db72c0477dbe9d1a7412340d37059b3b6661cc7f75a4b1239e23603ce999c917a0921fe766764952e02c9a0bc654c60439ac27e90d9ee5b2c20b5c39dd43934660605781b9a96b2af144a106c3785d4e0dc6ace83fd0fb2052a4b5bdc0f1241a4c8fad00fa13ff520375ff7960751bff155fa45cfad072235c9eb341f07b5c2f8d08cbebe93c96cc311fbde6755cee2459d94c4dd6389f78e76b6c1f69f34199deaa7ee9a8a7c44216e038847e7b0ba3e0263d0c2ba508ad260c6fab55c218c5c83467392e559cf75fa7d163f1c73604fcbf91132c986709ac214cac750b6035e31e91ff7ddc16a02cda79646aa12c4e77ce20123ef5bc42b9175a541cee214362eb21299ec830116f0d809064c363f64a4c84efe25dd36f13d0d48f13d2a564961e2b43", + "1333e26a6a9632d16d15156709b8a937326c7acd1eb83f8f990a63de79850b87785a", + "14d0a8ea874a6ed7b2bab885b5693f8e5b8ea7ff453b64b5e15f4084ea21ad58b5660d1db6488305066c2eaacf6f680508bca4e8ec76a36d33f7fbb6248093dd2940c2512884b8834bf90914ec8e4f5db478825dfb5f14ec2a1f425eb08c095b27b54998e97f41c47d55d7f274448417944d593f6eb4530c03c6bffba0a4247ceefc520e6da52dd2205d56e06cd2be42ce1188c35db0e432ffbf2d6f9366cc0989e477b0bb8448d5687b62a51b8fae655e5f727b5aa86076670741d33ac0d70a0118cfd4554a82ac122f8efe0471611a78fd289e9f62ba6135cac66f177e7c786ed42f2acf1097efaa2d7cdfd7407a6659890874081db561928565196556d05d9594fbc19ab56520368b884ab181a13459e779a78c2ec7755a152189db3d5ffc4d13ee16d7460ee86b1fcd70e99befe60d253306a8e14ef5" + }, + { /* i=2433 cDividendBits=4089 cDivisorBits=30 */ + "3e1f9852ae3fb5798e9a9770146fb8e6701040df4da81dfbc54e3e94f1357e9070c6743cee299ddb9b5d972a33007e8df704a443768e0396406f470949fc4d028e9513216a694bb6eea95f7f83442dc3658e963717f63f2ee84f78e175b6dd3af2d1a0aa9cf395d48126e422763fca32215b3fc99e869fc0031bd99c619be8329198bac6c0676fa40bbb3e2b28dae5be867d5cf0b7812aad6b8a78a042c2a3a24f962952d3963db3e280c2eccf0d4eca304790fa60fcd81ae07397faa62d183716e2e5adecebbb764340cac224a07cf8ab5a5f721466d588f53ab2841345cb0f50267cbe801fd281116fcee96e4e2eb2a2635885e24c85d17f81dcc8771545b70ff94529b5a1c4a995cf11d36a066853347a681854b1256a594a657b23c1124c12ccec2a2df45a8c07f3e1cbd3ac3671c45a198df36026d39895e611f5211e010658cd360b726798f7acebb3d16eed07c5ed18ed898f84769a4d7ccfde391d2cb9d3de293b64cfbfc8aa3ba93aab82aec837dbb8be82bfc99711847397d73b142570968dcd81f8fdba704e7e354b46b0416e3620ecf61e1291091a67e0f79802c96a72af7cac1fbdb2c8715932129d0cc93b6dd55d9f3ac743f16ddfc9a4bc465fe8e806501fca258d110a2701e3137d520927350d51dda183d4abd5d66a54e5250b872a1331d965a2feb15b8af21145efcb340623d14c5d4eb4ff10cf5ebe", + "3a7ca317", + "010fead9c341d7f48bdb96fb40156e3118960b15029a94baa25a59c68b01bf2099980d96417e01b038bbb817b7bf5fa71e89d15581a9ebfd8419b9124c4132dcbb228a6b28edfd0cf371b585bd846fddb011f68f95ceab8046a7bc863f3c55417de33baf80d16b83b280c6bd15080258961aa27e63812083b8f5f7a53320b383aa2d0c08b89345b740b6e9d23dd864b354514bdc0f89096339aeb17ca87f3bb30dda81d426b55fb243949953ba98a37e6eefe724a2e57a2ced0d733ab7bfb4cfb9eb5c0b2f79873665184a05fb489decdc14f653e8a863b9de06190fa7ab6c8e6919a93dbbbc5ee458cd43a564a8712eb4244ed868279d0536e348314bebd9701f6931a053debe1b73c75e15ac9275945e158350f0e876a8f777f528412e74bf2bfcd511c311b93dd63e82ccc11a8d412ff6d480acc5281bff0b8ef991a6f7878c301ac251ecb9e78dfeef528b41dc6d866b26b46dc6be6d8ac33c94b3c2549bd7de9d15c987e8a0c92786e5dea4d4fe0e8e6d5b9ea129b81c1c97140dc17b609c4ba23cc7cd08beeb170a2f8733541f64f7138a0ab123c6990e4625e8096dcf521980db2c16e6b28e673c93c59e1a2becc33a1f5b0eb1f2f6f9ef983df3874b8c2b11b27a5f6ca6b0cd6125451189f410483013d5658d555ced5353ed7d995541ea2e33e33d831bd8e761257a77538816905faf5543755384cdf388", + "3a5ee586" + }, + { /* i=2434 cDividendBits=3119 cDivisorBits=2717 */ + "6f50b39a9dc6c3c58aba4ac570b166d31f150612017059d5cd7da54bd3ad4e5fa2cc9087e2e500d366fd13798f8e2139d0610879d751437c8a9ecda463d291c400f2575f2ee013dda2d46ce9dc4891b32ce3343c5888f79c3ccd425cb98dec05f511780b868cb07f7e944d8de7cdc46a86658bdc4be917d2662f4f264ba7f6619979bfc77a2e9eb0b539fbaca6792538a020a544ba67fbfaced58780bd8f721e07d3d5d7fbf2c23acb1893724c9ad1766bfbe37b8006f87953de87efa9e8c7b89f7618b82eb9c35c016841eb4378318c637297e0be7d158d564df49df58558bb9b7a17fc3e87f2829df7bf54754dd3656e62e3da5bdb33090dadb843aae2deaae2e89d2a06a6695561320ed8b0eedfe69a14551b3dfe0892cb11c7006ec159f9c75f3fe7cec6e98ae42b9bb75409b9652d52b0200fd767c77ad6299f1fba4963496cbd2d32ef6adc1de2f30aba588616bae6c70f2ed2265c82757c08dd3fdc51dc090899b292fce8aff874d22dc7e52dc8cf67cd1cca9ae7bc269b3c06747d0c8d82056f9902", + "11384cb345ac738132a605e54e3e908d1cab3c1099bf964d728dafdefd7d16e902e15a684a069ceb90cda930de5562effae94527ced8574715d1eb143d139a1d7f87f081cafb1f201c0cea41538d5b7931e1ffd83bf043d115072ea4b89e0c38d7b6e06628d29a9a667b69efd7e8627b33fc1889e3484e382a1b65c1a73a528707b4b13a3af5e47f466a8bd9076366b27a7de27c2c50c0ff0e7af269a353e0dafc455ab808675cca369b5734b41828ed49edb41ca5ba164dc0ae1b945f2f60eb424733fab65075665e304bd43715abb0c37a1344f7dea2af74bac7f703880382bedae56d3bc9ef0fbd53337aa8a39759b745915d0337383a657c611669bc3546bea8ed6762a9f26a4c1f487e0ede779b8651ce870177f4e6b1fdc163550a9b14fa9a45bb80adcaa5afbc592b1dfffbe20f2edb340a47c1ac74de98c2248b2f422cf3f2e773b2c6f29ccba5c5dca6d89116b18691", + "0676de4db0f3869bb94b1adc42b3adead2d4b0e0e303c42ef6253553270a8c0453a5c8f66d3abe5c26b7510c1b5579816e49fc", + "09ecafa81045c617d256624a80461c94652f3e324363d975679176980b4c4508710d4db9119528dcb93f5f01872a48158fca65433857ac2cd39c6138b7b2a7aa99d17c3c0938edc32aa9747c5375ec26f3b559e07e28864530ed5981d7d4cea872aa905897c35843f264d7b01e9d6ad93f0d2f531aa868deb49aedf82a918f951c329ebe01ea1beb869e9c467f2c2210001dd67757688af15070c1bcfe232a09c84975b5d3780bb1edf3f9dcc7d12e2b821ec7afcd659a9a4543e1b9673ed5657bdaf52c0747f61c4c6e7636f007acb0115660d9ec9e06bc5e1f88a7b14eda1560c4d8c0ee1ca9796c733b7bae3b6aefaf96d4038cbe83529954f32f04e4c3031498ff233157938e176adb103d322bff18ced6f5836d3ae9ece4c9a78d4ae4440ea58ecf64fa3cf3831da9210dbe5466181fd2ebf55ee8d24e01328b40eed60f0ba17afa71257296c1450debe1650a972c01c946" + }, + { /* i=2435 cDividendBits=194 cDivisorBits=102 */ + "011ac29f2a60ceed96c265982140146e9cf76c55dfacfabc88", + "06c64d9ec21510e3f73991884a", + "29bcf7f20d7c0ff97eeb2182", + "040dcb6a6dd9cc54422693fcf4" + }, + { /* i=2436 cDividendBits=361 cDivisorBits=38 */ + "0671393dab6bf0149905e620e4d857f4dbd0d3472fe382b43a45ec0defffa69a8f4b6cba20a593d2953c1b8e40", + "11cf9fc6e3", + "5c987aceb436e1f2ff4d0e6fe8192e77067e3af907a74813ba84212307b2dd9a8f44feacf4354382", + "0a72ec25fa" + }, + { /* i=2437 cDividendBits=1950 cDivisorBits=806 */ + "1239536f7afae7de1db29fba5afa647f18fc1fded80c34e222190c8c2d5f9af8ba43889ff467c2e983286ad8664531491b58319f6aba207bc1b3d3fa6c03f85c5ac994cce5a6a7c2ebc80243a009be478afe185c094cf757a5e3e316ac27161490b4bfe159181384f98dec5757619226f017418432d28d858eace0f297d913fb67acd755c1d8d3b9c54ae12c184906863cc2cfe0469eae2427d7752a331a46514acd3688abd970863a457dd05b6892bb317f05cfc4142614c63768082b45afe9951d1a3ea711371cc728e2cf72bfd75fc7f7c205cb65caef2b23eac6cb8834a866f63efa0985250c20e9c103cda3111d828767cd", + "2788050e2f5ac2bfd5a3aa48cd655413bac20782cc255af9fdc560c1ee081b16e6fce899b37ed10e28dfed4bfee24a4fce6e9ebf4cbedd7712555993a15fbba943aa673f6d56f9f270d645b18b94b281aa8cc87421581e35954d04c8d3f6a9e8ee659ffd56", + "7604134c34f091219ebde95c1d348e1115775bf5317b759036501c19c6cd710b31bc4dc0788a6b29a26c79f42dbc8b70bebba2dc6d880a9d598bea35e5625163dd7232a2029d5ae77d1fd433ab20fef6d4722d4f952491ec575c3328f92bc517c1e1517c08b9d7265a3d82ff38d62eac8f210f4940f6c417617fdb374bc1b297b130713c37a5272660e42cab01edfa", + "1d58c88acb37f7cc26a8703fe7720cb68385666aae250ae37fc1d92173f6cb081bcc4d9102519d8f155ac54700cc816184e5ee9008604dd5425ba8848d7e13896747a787634aa07545fbf4a09c695c9e8349f982910ef6a9d77973b438bee07d98b76b63d1" + }, + { /* i=2438 cDividendBits=3539 cDivisorBits=2541 */ + "03ad942f8bc254b781642cc0918c800b281fecef7ea84b4796f3a1c3421e15e93af569de9fc4ee1017acdd39d2021ecd0b9085431b5450f37eb9696fe794eddbdb7bc63774646fe9de98ab870affc8dde9ef4a9a85442fb196c84809726d052b268207ca0bcfc7fcea5505d60df072fc88d10bee2e05f5387251eec623ea868791f09a2ffd9720a7685c65a11348eaddc39dfb37038ec3cef9d4782e1b8f711567abd6b7c59348d7e31aa16bb99b4ad07dddb2586e7c2c13c42e84766625e9a57d28dac4ff9d05abedb302831b8f8d19d7fea4668ff2597a9ec39cdcf168960d194e6a58ca2bce81a945401b169f5b757247cb95917c566becb8b10f499c0eb6f3d8e34c02f14d698cbf9a6d5b4d447e5f6f78c34e414cc4c6aef5565eca892e5d91311630af9c4f5fe61a86049b855877892ad38241cccac6bd7602e55fe05d464e92632b18b767753efafacc35234faac076d18986b02511852143e9ae1bdcbe3e858a17e5a6c77987d8d5c5f66c1c042b330e62394419050c45b36eec9ce3689001e21159fc9ae8f06c412563d2c5cc324854e78e1a49a383baccf151cfe6627d82aae865683afcd4febafb95c5a21f23324231e9fcb2e8b8bf", + "15c4dc2c53b1d183373130eafe8cb6eb1e5d47d7cb41f789efaad5bb12cf787bfde2e550bf43e4765962b7fbd154fe34a1b6e3a4b2386048af66a2b5788d71a677eb4378cb8502c81fd2dfba2aa60aefe103f299c1c4607b8ac7178863e7d99db1c2f6b75ece65aea5abbf55e320edea45ab973d91f0f476c5ff7b2de761d703da0b1282baac82fd8a735183ce36609c737774a4fd3301b854a76606a100ec9e1289d775a29e4d99d5b79a8c86bae561cc3eabf8c1fb8865ea804e3a954551dfc3440a0b7f8b09747ba7b75a3efd466afa154dc479373bb5ecd263b0746b30dd416476020c7b67ae6203266eaafe9579a31270890a5e4d5b3e7a97fa1d415a7b3f3e83d1ccd26b84f0891e9e3bf827c25d841d4db75733e7fcaa5bde23a154073876b733b21ee8d2dabd09aed5ab624ade620067a3dd39734e7347c9e4e5", + "2b40d38ac840ead13ecaaadafcf895f63b301f36467c0c10b90edd7273dbcb614a5c6bd53af97e7d145f979a8a1919079269e199ed9ad86e9edd418b0eadabd4f950b186c0bd3ee53fef3046cb4d11cb8bf50c9255e485da67c6cd9be5a3ed488039af1c91a08d2d7f7e6ccfc2d5d7e90bcfcbeecc5f59c0d62e41b08e", + "d36fea625dd409691f75ef5ddb23cf429c1c564b2a053c04b82b59d57c911dbaa766ea3021c1051e3934ef94a374cec3185cf4eda5d105141ca0f53e54f635d583fe00ef3a41660f37cc2eae1e64d8c939396bdab263e289a85b7f3d8a541776eff0b0ee65f6e64929481bec4e87e3e2871b66dd4fa2214a3d17d9b09444fb9978507e6266e809acf4a7efa9b086461982f76f364cb4bb9a202ed8970602dc5fe29b07c60a87629b3c4eb449d7b0b5a6a37e5f802aa694846275d7e148d239378dde845657a9c1b7032635d33d287d52aec7b9c31d66f295833ab85d6370691acb5eaa8166ef9ffeca3ee6e129391af5a0f00109a8d05cefc8ded82d2b11c2db7948b7a9d52b551e5fc9e0015d681357521644e61de186dbb748ecdc49ef366f2db26580dd7e6cf7a8f8efd6e9843c5788a943a0ca7f138bddcf6951b9" + }, + { /* i=2439 cDividendBits=1881 cDivisorBits=1055 */ + "59e58829d03da1401baacda85ee13050797bdec89d08891e2af58c45e5cedbeee7ba662a6a3ba6b72cd134d0cad8d37dc2b18ac1d4bbf54700370bf0ad9fb04ba0232f9de1326aac02f8fe146ff2e0f97ae33af0b5946935cb31e097f4267b76f65e5da4043568acbc3afc4b9228ad7eda97cce9548c7a1ff077927a15b7d8acdfd7542d21cbb41454d0c14764d93c4bfacb684b3a49444d5f0dd498a605168a207a005d9dc8c77dfc5183e696b532a9792d7d7aa7ca965fd8533ed141a718c168eb9c2fe7112ed23fd0bfc2a0db14e2651ccf97bdeed33033028cadb90dac0764a94c56562886a88dad00", + "1cb7c3bb054088c3f0f38aaa3f42def9a9e392655b20868581320f96b56da8b19afa27b7dba90f16ddc3e523cbf4f560bc3c73529f47c8923ad85fa019688ee6bd5e0134a73cd448bf2737660e24169cbbc48965d8995df69575b14d9378d24350263e2ce2cc2ddd7fb64c439cb15eb1431e3f9582478c0b4368ae79f450d7f6cab74c10", + "03215e0b4639bdf0ce94991a2692ac552ea14e4925a85abc2f0040d9dcd57b9b7638e5af03417c9323669356a986d4b648c9c8a3b9f0f8800578b32f332e52e63508b43a56f9784f75e62e06bde68d3ea849034638badb6410364f45de18f505939e8708078e713d", + "05dfeda513d5b655cd5da7a8134da96bed8339706feb1f580f97033577431b5a5d6496107d997845859b80ae0b691d8d5d33e27137d7dc42f8d17184a474b24f3d722bac2af42977dee5cc144c9c76e5dfc0702bb777e22d878fb851039b2f17a35cce8877ae123509a69454606a08d1a2e77f67647bae8efd1977eac4987dfcd16d7d30" + }, + { /* i=2440 cDividendBits=710 cDivisorBits=483 */ + "1865fb03abbacd21e2a17367426ae834c142fb1f9a4b8bee16e92bc595fa8b339c49059a989551cfe38baa4c9214673a10b5027743e9491b867c605d7d4513a0579bf03b0d9bcf88ab16ecef8db93be1477b56f1163722729f", + "03483d7a917a50a1457ead29eb7b3f93b4665e40005c7185b647a79225f46db56fd733033832f660b9f97dc35b0519ff6bad4b1bd32b279b68f670d6ad", + "076efe2c7dbd15c6fb923905b90d0c6b077914694101ef5e8dd6973041", + "028e9646704e807fd571cf497925d0242ba861d21d11730a1722b9defcaa4bcba46360aa370018a4743ae123a1b7c14ead7f4389e26cbc59ee3e3080b2" + }, + { /* i=2441 cDividendBits=1828 cDivisorBits=1301 */ + "d3678ae14274fdd69e1a9d6cf26030b019d668a08625c5e6fb7aa168ca5027f61a7a8aa1e362b9a685fab486623d0f6e02f7c08298a6c5ddb53ba845709b8d57bb5a7b2ea14909bc644d80e4860311cd8e871a2982c1f0b1edbc1f2188c8874fc44bec3aa07413da3c588e8aa8632c9f1a4847173a8cff6626d8a84d9b37cd5aaa1dc3d05d5ca9f671691669db3fb04a58137ce6ddbc19fe703094774ad8ecfbebf84f17c5e73e10f2da8e711d49eabb33b150149166b303287874e482b71af94ae17c108bc829d7eedf1c1726bb21a537d77554a86a2d8a2ae3ebfcbe461f254457875c", + "170e6d6e15d501153c5c55ece4caf71c8848f1519f9c9464f8d5e025b33bf1c01cbe2c4a2173fcdeaa33e1210dadcde2d55af103ffe04e94ded62e0f4c67f56fa64a088b32ec952bcd0afaa31415f6ff631d4b89d95f9c75b551f66dde08f7c393f9b39ee86e7a9115bff60495a610e10d7f8f5edaa6f616522c745fb5b3534996a2ab5b7819f65c030defe16ad76c2f2d07623d608492d85da1b4ba718e1190da0d38", + "092b45a3aa1a598948f17b0563088f111eee5d7b852b7dd3db6e5b7f6cb230920c820e0e4ad36543492f8a819c8078ff5ea9d2fab6c1c07050f7077a90d8f9b2f5e9", + "10a0102583393d90446d5a78bfff1307e534204b562174064bd6ffde5a5189012028d6675789edbd006d657385e9c866125ea37893615029c84d351d19c5201d9d276ec8afd85c5256d7822d8f10c3b9f90624a8d75a99d1c50b36e3a8029a1888872ec8e03f5c99a94fadc68f51dbca92114af85d1d905b9a335bdc6709732208562a8e9a129a3683a0ae56afc58c5dee969f683128525ad4b250cdbf8bcf164ae764" + }, + { /* i=2442 cDividendBits=2079 cDivisorBits=1061 */ + "3e31a5f370ea5bc56ad90407578c90256a6fcfdaa3e4fe8d595dae55feb8e1ccaf87ddbbfe21772205e378d67af96e32847d950c31a13d796d6de14007cd2e3691d94f477928b086744b3d5a96bc76b01abc6ef2d77451debf86f62657abfd1a7911bb0a738c6502c1f3c3cbeabd15570374628f38ebca9cf1e28b9a67349cccda3fee6019669f9c6103e0491314e964a7edb079bc67d5095808fd1c6383243d75870f07fa24fc0bb6a65574aee1536a75df9e7ccf9ddb7351f9fe7abad63b8164bc5922cf22ed8fc71d25dbc7908cae23e562f5dc5ccd1d0e5aefe12e90ba32642f0922988db6e1c85a290cdaa0e742100e5aa01f775558f2d4b940f7342d9386b98931", + "0545772362d02fbef4cae5c8e5bdc41f26cadbacf57b7e57add2693e72780fe8aa6d3fed491713a478ddb21c9dcfb7a079ff2db1df56846a3d11b7c79e24763f3a5cfd1e95eed4217af8bc921dbe2e3d2a9c1fd1b93863b0fb81f3831ae9c5c0854ccdaaae659f432b5747ff04d00348c5ef510b873518944a68af2d3405827dad790cccd6", + "0bcc6991b7de45894eb4db4aa31c1206a3c0e832b1144ff65ad626f16317735bc306e21a7ca8d38e6faf179d74327209ead5ae90e463093acaf36a75f5b73aa9fd470a91289d822bf65d9c720adb65062ef6fe2cf212c57a6989b0ede65945558b4f2e7877b7dda5d45ed8643218b2600b97ae532aa67737a183594cd21685a6", + "035bbe81a9cc49a32b3c0d042407a9b0c4d17532a4ff19120327d15e2a229c1f7cc05165e5830c05e767805f5a2224450c05ba1de522f045ae620406b21a5dc3e43210c7e45562985640a2ce87ff87bd812c21613017caa99c67ee6967d46779b7ea8a28c90fc155f47aaac2606801aa0fc2c02ff68e02559332b3c56ab491728a3b9d886d" + }, + { /* i=2443 cDividendBits=1533 cDivisorBits=1134 */ + "1af40c681525768788140a9a74ffa43fddcd07e8869c2db45249ab44099069d428c7dcc9ce996fa3c544a3cc4f53679f8dd8cc20dceef4634fae18b096041243e29f39c6bdadfd28346a19b210f0f80d7b30d1f711733ada1da020f41e9138b675a83e02d1be083511434b7e8564219c0957e36f16115002a586c13093374b0751737986f29c655e9651ca89363cdd8c1b1b7da6fd9437073e60d959e7d84a457f504c8fbbe3586e69862a1e401820e6b632f5d281da47d2dbfc43221f6a66ab", + "2d090447442571510b484f4c3bc97cb8d7f4ab0a6531838c750ac32b90a7c82728a6ff9ca8a44db15d5a55da53e7d699e48d4927412170714c8a588e003c3dc1f29ea8113e88b950d601094c9ac96c8070506d8ba62ac60e0368f6dfa9caad092466d3819afeb9693633ba57ff1b5b73d0c6e0f09b09c4b239eb2b522a3ad6b87bc84b6984d768e936cc99fb9500", + "9936e8c3a2cd8dc07b6f9028731e75f19329f6203e8fb7fc1b2fc77a67c8b7ca17975289b703f59a8056825b62c4014becc7", + "02e619a18b3cee4694b2a66dfd663589c13254c78cb9e2548e11b99e6a41a2a8c5bc8a9ce0542d8332f7ff1503cf3a9113ab6a51b568d06bfd167ddc27f27b2c9c50b4194fd8a38f4e89081a0efed7e6bf9075bd7d0574e4f1d432d8879f9d5f6fece60ad49cdf644b085e255fd5aee6b38d6ffc40be05638b6e88bc2f1bee90d6b1b85ff66f4afadfd8d87d93ab" + }, + { /* i=2444 cDividendBits=1630 cDivisorBits=554 */ + "396317556975b327d7ab7775e9a1db51589ea1d5de33f6234cbec3a15638f1c9078803b36014230ae86b0fcf74021a1af29251997189b6c2cc531541913329ee81f48b5e20b40a15dcd534f3f6d588a6ce0bbdf043f151e06a4aa359cf972f00af79f65a3de9eebdc16a92a1c2df1363e54be582f535c45c693e547a1e85091f4aca5f8e24f2d055793a12695542a1e112e71c655aecd3e099255f1ae939372da93900ad24620787589079471e62a186c4e2dab1e67be0b20619ff097b8359e0821fe837a484bd9d896c8b2b", + "773dd222034427d5fd2e6aa5f19f76242d58bb77c647ac2eff53bfa3910645c406e026a32e8e9fb00952702b5eadeac9711ab3ecaa376b3f6e2249778029507804afb21cdd", + "7b345beae53de1e57cb3b45e7023e1916671eb04567cf3bcd6cd49283eb8bc1405667276a28b7277ff0e8bfa6597c39c2d7404c26bcf944e396f504bffee53dd77d8ab6edf702e5e1402b9813ab9b4fed9ab58d33ebd6280d2fdeee262d2b6512435840caf49036aeb96a8d16e7a43c3830ac79e56b93676199038a62f03c3ba6bdd9153c3c86b", + "1ca62eff9212d428ad91e6096a38a04dab8dee7fd0e5f645d9be4c561d9e03e03997a5abfa069d2d0431223697ce67f17d420629f3ce7ef2df3ea7d414a86a34305016d2cc" + }, + { /* i=2445 cDividendBits=1658 cDivisorBits=50 */ + "01cae8512e7a283c8dfad2bab6a4fecf9af06963f4bada5f7cec3bd0e3aaf3ca12b3834e3e6b85df2fc31ea7258380cb45fde36036a7eb4dce5ad3930b0f301567e05dbd8e29b1025cead11b565533afbbc519cc682574a80547ebfdd3c5663c78e6c0dc8240bdfc3736f66728f352696196b63898f8500ed811b34bf03050ddd4954b498871dbec7fb6ef8358367c7f49ee590898d124ee4ddea784d186f885ff13a6799d76bd2b2405243b7e9b08dda4db0b38985bdb844fe0650fd594f661081e8887031c85a4b91e406f95919e9d", + "d06389fdb20a", + "0233c15f692053553831e74cf07a43b85cbf7209bb2243300283bc563bf4aac941fd9708fc01583b421fd3af14a609f03311ddf9c49576ab7565e45cb61eccb42c42749fd929cff3ffa411d3f568d6ceb55a8d85feadf70b11e8a261d5396b6027e937da972f3c1b366180143b82718d43d33f78ffb43327c354f9d79367c5dcdc1459866e812eaeef2bc17ca64312a5b6495e770451960746c0495ab6fd2bb8642c1de4584192f4fe343eec2bdf0fe9f489852597fc8f452bf2c377a1e3418540db23a0cd85ff7d68f5", + "cab390902b0b" + }, + { /* i=2446 cDividendBits=2683 cDivisorBits=1331 */ + "039f41b68c05e2757613257fa47d4214fcf2a45faf0f0bfc7d1a03d4e8559fd8c0ecfae03d7582db58f3434ab80c5fae042765ba927373d4346ed0bc8304374efb061b4dd740a4d54b966e69feee9fba5d652c41f4534c3d75e55295cbbaaa7d7c5e0f55dc8acdc5eac2167f716036f35cad4690afe54a8d2b7cc00f3ba608dc3d558c2db385e358cb041a20e86845ca24393ed88cdddeeb79df36299cf2011482ff975a1b92c9d6559d9e518bb718c43823136b268521793d5618d548de4d3602f726bfefa5bd0d140c5b8b1ab8f267cd7c0a40a8addc6195876efb31ea35e2e6f9a123346908cd2cbf473e7c78cacdec599083c6b4fba64c82c67589b5df6f316c179b8ba3585bd968cb75eff1070f9591f87aa110a6b1ce2a9dee8537dc0a1455d36c21ae9393bff0fc853342639128d3b0524f517ae63984fa7bddb0fa1f3c745cd1ab4ffa032979b698d240a05a", + "044674c2d2fbfb59147fdf0bfbcd5caeb53bcb3b1cb88f983e1788f1f896135a9ac62eac7e318a969ec6ab254c7bbc60df812852ffcb12c52c5dae796db614c03bdd8af0ad2f2457f395de86133924ec13aa15353f0ef5e2d0ae6ad4db884ea10d408a0ee58a17c22ce740e7c7f52bd2fc659626e83710dedc35eebed46ed49f2594781f45830e864bdcfe3fd56a1593d1a27c8f101a672883d386656b1deeda179b19485d1aa2", + "d8e41ab4b921f4d2045121177233c645011772d75cd22de1ae28fb9d83a76f28a7be6d2523d4866f310d0fd2abe5fe14e125320f725e8a775bca76637a70422dd0ffcc6eae3f0ef018eacd9ea08e8ba1a111a9bd8f3a6dc13b8872f1ea1c11cdd372c8f7336db6ac0d7b2914b452844c184fdd567d2560bb1d8145a4b6cf8ed3b5b1f3bc1a84865319441fa81ad66e9df796502ebf720e9f880e4bca113bf6925c1f83fbb261329c66", + "035222bccecd9b348fb007524ebeb9a106f5126aa7a74945b11165c3dd5f15ffc610dc730bf38b2135bbc6432af39e65962406cca81e3ede463cdc3eb1ff797d60aa6724ad3bea713f6f5585547a53ce9f401689942b91774d6cf2d84cfda2bafb6902e7f710b4aea47dfe236bf0e598efab5fd944dc72f0acb69e7d1e60d463c24e1559350696dc4828b72c2708401725257db90cb7e41a5294b7639a0ff32973be82ab494bce" + }, + { /* i=2447 cDividendBits=3461 cDivisorBits=2591 */ + "0b4fba2ad10c21bca84fd59b85aa86d785d1f563691d34c87fd024e4ba329e4294a5acb79be590bf5105e6ed92577ca3ef222b715036ee3d502ea0284262e76bc59eb4f198aff913cfb576ec1274f2005a5a4098399ea5a2c249851fb8bd53039c21f5514adeb06c4797ea71ab3072f7d22a133aaffdf4587d9b6e4d0c2806d90aa01cee03f66fd3f82149454596d5f79ba870a2e517c395ecf2e9172cfa0118e8c051e86db544a29f162d1b527bb64d2d56fdd339cafeab93b1672c77f994eeb5610d337d6df068b9cf39100f5d6fc664496e4565697f0421a59a6aa09d1ba8914ca3d556b6d01987ea3ae34d6768d77479b5548188216c783f0c7ad68a0c73ffea3bae076557b853618e1a684ca78d8d19a9681062a2a05436a6e05a12596d4e97cc034a06dfe6ca25cea857ecd78388bf3ca23a4268be6e7908c3d86e95181d1642de9aa8f93cb9b9ce7b760e93995785bf5bc891c44454a846f825de0667adb2c4b38522ddc24ba5b567c85695752408dce572bc34eefbabd36146a5ac6e748b56e2c76bbaa771c8062e91f720ff8c6d5bfab5fc7350112cf9f880ef3b46c8f02c3494e044b476bc4a4c5a860291d0", + "5d487d235734666fd5e4bb96877269e26b69e2859e5a9db6b9372bd5ff3a7f8a801fedd492facdfbc75e4147a253dc0b0f395ab1036c8a34e887f3a9e381e45defda55c1bb496f2778570c9d8a630b95e9c4dd6b0ab510441a111206c4838698ecfb1a23a24a207cd71abedeec5402106c9dbcf1ab3f2f0b0756606a94757f7285e0b23fd56b05a73c3846b9b92065db00715fd2c56680545bb54a40e28c0753dc1c7f2d51414ed161448adb16ede2b84ba51c064147c34eca2ef081d214b64685af7773509f076475a66b92c49221a6b31d1d08d57f047df657166172b5085fcb4274a5d9dab5a48465fa40477f3eefbf8ec31c54b0af487a1a455fc2e60abf1466aebafe98368495bf5ca05af64047579b8e06bd2d6c5806329bb1b4620c19b61726c070cb90642f7638bee665ccf576fbd1f8b7f1435dbd436828a69cbc5c98fa2967", + "1f0ad68ed999a03c10c013356b03bc31d8e31062e6fc9ff365478b3f2bcd4961d1646bc3c77860ba66d4302d4769dd2d404c11a8385da12555317ac5f641b0f39e1bbee55e1170bc3e5d769b3ade0dc4a48c3782b6eb940ce63c0b4eee25ed9380e961bf2148901edfa4e78e1b", + "4f9369faf53a4e6e167293c86d7ef3c1c0f072938e7ce4dcdc6d06ff55e97f5ea461c7782e593372585c2f0ff6981dd12d90436a47e9a861c91243b4d3280dade74f7c902df903408862e8bb73935e663a2b2a0e73090a63cf4b3fb1a7a0982b3723b63baf08be6372294cf318bf3ce95d5f5abd155515531220725089e63a3faab9d749ad56de7ed3c4e7d4e09dfe8199547afe5e16273138c16c89e055bf052e8d34e76be3a318ba0b7a38aaf74af5cb3d6e4030dcd84e33dc2e653009f5cbb2eb19704f9231b7c933de7372ee67d9d3bd6871e9d3691cdcb7484ea9323ca4d11336eafb659726a4a1792dc97736bb1052f9734ee053bc5c9a99276494df94d6d695f72d68491a0e6c9b1941b2f6c0936418b91737002be1a27f91779be8e4dd15f75df695fab5ed605fceb1ae915b8d7effc3aa9bfb0b3315e56f1b04a2c148b811f3" + }, + { /* i=2448 cDividendBits=3233 cDivisorBits=1224 */ + "35c22508ba6b4d61edd6f536e165636e5e0c88e8ade24b28edc1bc26945b775f25c357d01957cf1e09b49b787290423d035030836fe039c327e0b15c383e56ae418c4924ef13c38807751012b0c50804d1cf6e7f51a4dbc228eca6a8f066425d5155a8bcc91affd28d46750d58d043d76de63551a406af7b8f8f8e129dfdf5c97e5c45c5432335da8f83a8df87759f3e74f0937fe6be3a734cabe9242f4ddb7e219e56f1422cff2f24a7350c537351cd7d7b20fef396107fd9e06b0c528ef53ae741bf66ca1e7ca996483c653d3f6ef5cd9900890e3601b336896229a87e5499f9809df394a1a748e0364784f069a1336cef83c115079ffa8f4c85402c5db2ce7b74fb6292895f6c6514865d5ba461a642a7c2d79605204619060fd71c4653b34d0ad5b779a13e3a87c86153522baffa2114d198412da8bc62db246a258d8cd40eb1839db46bb80f1deff82778431c7b1ad9593d9e60a66c8c859cc81259e7d530f005d0d0ad22cec539cf34c84d89f1fa0c93b58a8a6f6b34b1877bd4f210b321e7c1e99cbd6e7824ee305fd2e480381f8a89a6", + "597eafb2d00df3030edef18f7ad0a25d84a7701ced388e8081f224e14afbb7310fe407801860f3833541ac4beb638fa3305212fc3189c4786e27faf2a0b49baf0ecd1c2d22756222b347bfa47d729b4ede86cb7674f63bf7ad6513ef8748a8a6de427092737e557cec312b5943ee6008ab9e819ca41ee07429750348035809ee276c7b4415651c539d05020c979899a9946bfb385d628a4194", + "99c69a96ea219070f822ffe132718916c49c3a90d05eba8406b30074438ded7195a78af3eac3d8eb4a3f30351445902064418485515a9d8a3a632eb4f8cee10f242ecead852b975b7bba20b5f25a8d4d916650dd151d07f0d68e01f932fa649d438f6ffe42f63c16845ab8cc47582e7f40f8ec6d041088a9b0e5b3558633d0c635aae6615e3e2251875a07bdf29333a567e0238bf41dc6dce505ab249713e1c214a8e461865f610ce951d0c2b6c809b0cce8ed9b1f2fe758daf6566aba4d71f551eff6d973072a00823a53fa4929b1ec4f0e083ccf4a1c805bb5fda6100ec35da8bba8d88a224eb14bc71f879ad09c91587ed7bdf9301a7bd57a06", + "31e204758ce6b5e3e3f175716e810bea3c8c30b0be0f7d44d74e80d16c53c54f8a2fdf92391a2408adee9f51c756d2606a9e226b1a05cfdfa3333031dda9d8fc0054c0d2851325fe5c069ca72e9ac451e6ec47eaa097dc741d0098657bc49f8f137d40f5fec127c72118a758fb3bc6577e0c314b6a41a90464e753e164438db0c333cba7ec05dbf5b2e48bd8caea35dd2ed2ced97f40e8782e" + }, + { /* i=2449 cDividendBits=2614 cDivisorBits=1149 */ + "1ebd451bf71c8fa0289b8fe52a4ee2c0d787d6886231de12357182dfe7537b4d0b4921836d7a160959c667de3bc20bce503d8432dc9eebd266aac07361674c633e0e4e6724ce146e9235116f9f2dc7342439bc03a8ceaa10bf015ec09b65b00739d512cece4db9fdaf0fc4312fc7a78cf2f49b783cc68fd64f35813b8dc74efe088bc5ca98ecdb1464ba4462a3e7a14a11cd8e40ae9cb01df56a5f942ac4df075a4669827869eebdeab388334e62c3ec6bc75e46db8fe4dcb9f4d147d8c70ab465ba8efb25d539d2acd70593f8bd8433793228639dd8cbb58a5276131607595149a9d9fc10d9bafe00faafe9a4c032f64a8a8af13f02bd958ce0c739c03ff09c01b00f41e66de2bcbe5d7ca55849dafa7b8711490536bd94145de93543dcb0b6cc27cfc94b9c73acb101eb65422c4b58a2241c6af828fccba063e09a0147e7ad2519978a340331", + "100669afe8c65e882bd8d2482725637470363355dbed10888eb1d4e3050092242f7ca0abbde525ac94b9909d8486303ffe4d561eb3f3fdb855d930a00e4a267ec1d25a6ae42008170e1f5e2a02ea41eb3e0640008b0f24e813b51316565b44a8768cb6edc3ad60b9f4be6a42d7de57ad3f9b7e520040512a0ce631b5d1cf0040c97894384e3f846333a5f1549f148405", + "01eb0f8042bd582b7f5dbe257a2093dfaaae5aa2ad51143c74e7a78b3a57c183942f3a980f8d4b98cbf49927ee1b9dad00206c68e89cf0ba06c3964c8ee54eb2e96aa2fb10540b6e6f841ac7da154136b948be1fbabf56fc01d8eb2e99db391a37bdc12b75a8fb8eff5f6bb51e24fa18ebb996c499116d2322be52cc78452cf01f6e0061bf4928ceb5ef19782da1b1c311ee76b32bd60bbc0d8968e0e46fd616a4e1dffc8d2fcd9352720761caed2ee44c254c99cab90422", + "0702c5649b71858fb9456d1e8d85e3dba41a0738a9d141f9b31f8df8366f7c01ee2bc9c488c110a1dcf33ee0c6f8384cf35d41f734bbb49368cfa5fa9243e37c04eb492579d3935bd9ced1234b85c6cbd931d8866922e0cba6eda50f30f211e1327f14c51e18e7f9d4b9abcfefe872caa865d70c4273cbb781c991e147c371632b4c188d9a27f82a527b30e1bdcd6687" + }, + { /* i=2450 cDividendBits=540 cDivisorBits=69 */ + "0e8b6516c2635278ff3c11e312393ee5434ddf5b77bfb78df07ac6aa8f151c0399615f892569647b81086ea18eab805f62f20b371f37ffafd2c718be7ff2db59dca0c713", + "1c29834badda61ec7b", + "843672d620d4b9d6e1468595b438aab2e099f03ca818d5519a445725a67c45b7b8544bbd3cee76d2f96a879bd9472ad23bc8e6028e968bfdb4e9f3", + "177b6afd379bf55b52" + }, + { /* i=2451 cDividendBits=586 cDivisorBits=392 */ + "02bb78c85386cca04230de5ad0da3f1c0772243febdaf46768ba2e32c9fecbd094420527bb1eb5720aae32bc3f1ca64666133f90932bf6b5d1a0a7ac2dd24b6385a4eeefbc5f76ea4dd3", + "297355848230afe2015d78ffc42eb21b9189b207871b1e04168892b4e4162b1c37f4339f87c12a067e3491c7b7a288aac9", + "10dff6dc9e89fb9e44782529e0af51901798447e5ef914f4fe", + "131f871d4580f4e8d192cddbe79d3128a98e7c0a4318d7a932c2493a160b918bbeece9cc1c4475727bf4df48a917d54665" + }, + { /* i=2452 cDividendBits=3876 cDivisorBits=1112 */ + "0ecf048e7db227f3c5fcfa23cc9d5ca41b15c085b67c2142b4df5ea750b8b958309119769a446fb18b62a4113b76227026865e1386957c4cce4e0e88a240cca80dfc1460615d52a5fc2263cf4381ab7a88f1f0d0bbf2caa3a66e38dabed6a994fd60ad08be1e2595a166dbfbb88bfdeb0b6516b6c4581c7eb9f886706d11ea674a3f3c677eed788b25a24783ed39697730c338d4942d6bff44ef602a8571a377f3b441b18b1515713736cbc911d8b15b8864ad83af59d25e126829eabc1d2350a32ec1936c798676047af1c9d989d3cc4aea2f9eeac5662817972ed3ba76987a7b93c9f7cdcdac90f1a14b7df04c294e7eff8df65eb709e3fda3a69890276429682eccb8e6938dab95f9ef4bcde003ff389b82ab4612235737f4b33ae77dd57b7cbb40a767fb702955f5bbea53b3bf96f0d29108d2d77c73e9982590082cda86c2387e668d7d4d51e8d8a6b44afb793f7e5319def56d0f9e48cb6892749f8894c06191fb6f3396570af1804b81b8be3dd379ed47f8e3479af6b4f1e0dc9717588e114b76769dcc575e3e5bd219a6a8e650c0b77fa76badc172b9ea295908ec4fd6f9c77782c866b7d35b34266e5e05c54b6c6bd8130147630b65726a464659f8ca3fddffb537b622f3e2910716bc8a6cd11231ccae87aa50bda54071f9caac393a0d2d687f", + "adcdec1a09c688c9da97d2e8201f30a7c27f9dd35274ae234b5a1f92840c6b7190b91351f43a11302fc7fb9c8035874ac9d43b9d09d5138c4a393b51119dc72860bf9ba4cecccf1a8370f0a1f7e1742a3ef9af996825223b82a88618edf36f114d6a7c0a9d3bad502c83e12f6c1d1188a30b9474b118a2f6bea95f88e2cb6074279f16645e3b5095f508b6", + "15cfddf114dba8db44cce34b85df8e974405fd35b7a759f510fb1641a4aada2bdb88747abc2f66773c99dc5a87fa2f7cd72773c09ce14f5c5232ed132c9cebe257183acd9604ff9e313b279d5d214fc02a831de8850bb813f46dc34c9154c2e0a3ac79b13bf653aaccaa303a0a12614778860a1bee159b3ee52676b892e695364cc42f665b0ae21c8118faab02630833f53af6f64e3ee3ab109cc95f8f40725673d87154571f7704f2a94cee02cb0ff73b09d47a6068e8b4df754f8cfdfe9676f771458d34dc00f66245126db448d06c1c7a7d4dad3dc74d66e535d4eb96f85f889c3e10df262df0fe0e52c63910d16b1682b94dd673dab133fe64a4677d497683699f409891c881eecdd66b3eb1c582e716835968e1fa17a44bd3190147f7e76be41a1dcc302531668266274c9077da26f2c51ade078a52d830d9d57f1c2bff4b1d0fcbdce2999a08075824d55235344c36ea640590db7ce1a8", + "7246a410628cde6d53b1f09373e77c10b74ceb27b4f0b831035cf6968cb9d57298cff6e47e2ee5a3bb4b764b61608bb948e2e7b463430993e9f40cd7cbf129eb05300528ccba3db4ddc519f10e60bacf17c0823ff1cf2f5e11f07c25a1077503a745aca56dd154cc0e7bb48380f75ca0cd16605e6f2c8d2fa718790be1cf186dc3c65a8949c3075d8fbb0f" + }, + { /* i=2453 cDividendBits=1876 cDivisorBits=633 */ + "0e15cb870b5b1519d0db2f165299aa4214845440b906183d2d348fb0328732c8e88e2b34bc23ff6ea7a4919968d8933ed981340dd8d78af0a41f7b79a3e63994bb41e6683bbe9a5b08d6776d84ff10fc784ad508288833869e7ffac11b13d335d081995fb16dcd0b283c5f56a08893c14533f4be0a2cd80fec80c6cca34e59021cedaed8ffb08b5cec8da2d63676ebb8da9d73e4f74bbd8b20b95bbca9e9b04af37b48756c8c8bb5f0474f1846e025879b9491bc0282c0d7224b910a8cc2caa03ed59ad4070f1c9835b4a93667ae67eef00ce3e2b6b35301d07e551037778310617edaeb573074b2b20d9f", + "014b40f7853dd31a4af8e0e72f09eb4449d8df73757719b0aaa467325abb5b5c233c8dc29e0a6402f744e360de45ed89700758da1d1122e202ff826472c6f3a18b271d2afb7cf806a7d5e59b8405bc36", + "0ae2a2aed29c6d44fdb1a06f066df2166b9c518323ff1e2e16633fc358d3f39cfa6fcab8b119c4b5046debeec292a0df31872e194a414d2420084c26c3f39c7e359058807c8d8ed505f14375283dc30550d853a77ba7242010c7e71e74e78f85775c1ff44997411a65cb0cea6b45669de2419902d06932095e44e111fc0709c1ecc052316f45cb36135d14505a4fee634c520a69e7bc04b5bb02423b", + "d51494a07defa1f281c3872d9668e6745b1b9c89211c7b9a81fa575ff92d54b73a60ecb58c9019892f537271e740fa868966d27a6148094f3f0fd25308e00f0282747c70d3db73528b0adee06dc12d" + }, + { /* i=2454 cDividendBits=2051 cDivisorBits=1242 */ + "2a57f1d7d5545b4186f4567cd1533d9ca3d62cf27f9104a1b5b0e158bc873c5112e4a94f14b6544fd84b7e2dc87b41f4aa2fd810f102f8a26049e9d3166648238a41995a797fd8501602a7df17d8f8d82fcaeb1f04540664f5b7cb1d141135fe08d7a1fba48999c80d3f4b2210705d55d1eacad6d4910bfdfdc5fa4c609c6918a36c6e019f52a9db5aa190b4fc28c361279ccea8747fce8f10a2f40f60feb5d24e1af4aceba7198e36a32a769cd4847ec082c52f626bd7ff280b667863591cdbefd84dc647cdf2f30b431c0a865b4814ce5d28f387c7d5a0129ead55598d18b5194fb28cb6ff5ba0c3377994cadadaa7b3b069f65471182f556a3b971a774c2e", + "03a8ef6fbbc47ee97fcc945263cf3ad2ae93c3dfcd06168f3ff7b4e5e45344ee3be018840b104bc7a5df935ec0d280fa00f6098df58e5510b95611d60e850e8f8e40cca6b4878e0ed9366ab7649fab43e9786c95855b7da016100071e8d67f9e86a269960899bd18847e44fec25331031cf38aa92a99ad4ad32c2e1855014c48d2e9cfa80d049a2972dfb6e262ff4de2150271775b1f7f18b8f81276", + "0b91cfc582dc02097bbd29c9a3fe8a403915ce36a4a40742fe0af18edccd5f87e1108f916bcd9c2f731d6c844ff1044a5457ee72511be34dcba86235b993b5165afc847101c5b061fa7b1a36a13fa61cd0c05e833672607f85737b26cdbf7fdb1db8255857", + "01f0c22ede3021545a5d71dc790af9105a827754b9d0388af5a5b056a557b422b74f2a47fff99e107f47bc065eb767f7cd8f0d1d9bcd3057ed3d84da99ccc95507469956ae85e719e8960bfb4c24d17a92bb59e369a6e2c758149c6d710da2f7c2f7507b7563ae9ac8c7bdef61660acdcdc1d7b32ad895d22c81cdb66538fbcc3f358f97b298a5859277af48487ce308943601070811781d7cc27614" + }, + { /* i=2455 cDividendBits=3774 cDivisorBits=1588 */ + "02c6853b5d6770e8e974b7bd6888d8436c9b7121e23988886f72130e77159a9945baa0c6a469bb1fb070b06ae560739dc8631fe5c411ede9e46d682e022c8adf1bb14b5f8da8f06d6a8bb29600c4c61da60dbc83757d8589b4ddd6c91594dcdbdd1556c581fc72ffe6fa1863e3d3db9f46cbb245f47119e07399a39d26a52a474f97436f47f9727de6601b01e45afe87a7b9bdbdd010de233d2460634eaedac052e38ad4227f4c7c4e6ca4716cfd5c890c3a994fe15e4687620008eaf7da2cfa01aca27f94806b45b781539d9e5039fa991918c43de6e9a5f0912de60e8f3aae0686f4dc7e6582a1f4dde4351a93dcb50ba06142248b8bb3490a5aece5853a5d9b5f1248956a6a5f2df018bc7bfc9354fa3b0f980f46fead701fd58b292dcb2224d855734bd3573797b0d87370465ea60d40097d28d5ab638409a1bafb8f4b5f50655040dafb4460ead1cf2fa5d0b6cc21d012a1e6c1ba176f9cf717c90e53cd29b9513c6e1dd419f94fa71604eb6caddb9b1f85543db9a8bd58ceefb557abe1f82def200dd8834afb225d0b5633e2f86eea70112dff90ec37584315c7219a7009b3cf441b84a022a40b2d6bafedf374a64aae06dfba034836af8196c59a4bd3ec9f3fcce7d1679f4f6f628bb81a9b7886faa4f4821d39ad", + "a76be07b1348e9bec316b25f2fc0e173a383b7fa3579d2ba9f7c5626edb9232e0e53e0d068bb3b18f4f147956a84ae58aa2f0ad82f83e0e65ceb3c6b657c5b015b113de170a3dc547604a452d0ac0a529b4f0015a2353999493002181736f1254eb904b76b701f00183b6e1c04fca91229d2aa184875d75e0c7174b0b35380dbe78c5423b690ab209e4dd5e312a76242b0e96932fd1547e58bb9cc5ef34dc83cfe67e18fb24f9f004c3e72ad3a5ce5b26838de7a636ee3edfa217b00159f11fc157275511186", + "043e70896ea28a7eedffdc7b060054501fbcc33ec987bc2ac73ebf22de1ded4e92425f3621507af434eba03b3a144265fa520ecae28c8b4bcdb6630cfdf8628832b9a34868e3aa6c4781c11409d6a9b8283ddf7cc9e98f270288dfd8e3ec598356f02507405fc774ce38f0eb01a3132294ce0e432bf6dd13e94bc32203af3e8be1a9f828e99c782990073de7f60fd13b2c5cf05dac4adebe9da41b10fc34b2e80a1d3c8809915c2c5ab1e88cbf17ba59d69af0f80b23650b4a990b0af3949ad9c79d4f8a729779b781b29d97f5d2cc393f4c209a594adcdaecaab802ccb5cf8b42f900850e7b5916a6a5339f9ca996b22acaf9b22974c8fd9ec562c7d59272181d73571fee4e81dbb62fb5149e6164587a05", + "4367028f00077d777333b7942e4992b00ffabb4bf1ffa0beafea7327761269ae1308dcfbfc951f9ed54d72c519b024b8151554d315ede9a439843130123edff41e4d955fda25dd20f07e3c6304ccaafe6c0fc9197391fff8b4ad92c89e0a7b383f18cb1799b619a1e90326e1961699ce9a241cea9ec1c30fe24c4cc1dc0a8052db25f1c56ef08baea38eb9189efea83e0ebb24bb90202357ac304370febc81483536def416424f1a7f620bc2eb705c31268674c9f91241bac9240579fda95ca95753371e060f" + }, + { /* i=2456 cDividendBits=3367 cDivisorBits=3356 */ + "3e1bc11bdd0e9ce8b831b31830a983f7f107d51444e4f39f6672acba70ffc7f8a4c4859f1184ab2586d3df8aa6ae10465faafd08f09f9d7585a27e7e4cf72129910d65369faa8f9f01961aa99d5e48b182e1b108f925b0dd917468c4beae5dd7a4927dbbc5f1180b5ad5729eccd67ca7ae89da64e1256859f9789a46539a79856015d92bd30b1ed7276fc7f1796655f9e3e08775eec574c02b691b8df8f8e2abe59345ec8438610364a7ddb367cff33b90be93731693fb84e58de8121661a67d335dbece6b073fa17e917352ecfebb7cd9366431d71dcd4776ce81471d99eaff27bacbd06e434e855a7eda533202bf4b10d6311ac6c60ad158b49f2a5aa448c2ccf0c9c27dfbcf8a76556c88002e4c67d3b05454b5010574caa77ee801cf98f2927d347f6a426c5a36419c46f8018604ba31c8d2b5a042395ab1f31c0910b8f273f196bd1c53bfb7cb89fb8ba727fe9b35df1ac5c5959d3e5fe4841d472bcafb377da7e510ab90371a32ef74426b070f73436f12ec90c42aa817f8ef9df1ead1eb1f6a930eef1b2bf44dbfa8d8160d2e58ef7064662b4aed9c8a5bec5c741277e29d405500", + "cc608715e36db025a9fd9d296391d7c48fcad4cbce6180d2f2b4514521f3fcf70204185c4356cd965710f8964586ff0fc17f108b8a5c7ccd7ef8170b26805a7ac3cce3d8754e87cb91b8eacb9e5f0992eac4e6f9ba08c80d43219de6fae3e1682f1c732c12349be9baf6e132aaccda0d40e7d6ed4139335442b3aee9a6e784114f7bfa984507169c850014215695afc0f5a941a3fa90ec15598b30f26ae69a67886d2434aad37fcb7b9d4492aec68e9b02f5fc1c0cb612f7e262e38a7d6e0ef6f69e0d839b8844e2b1905821f5dc783da445b086aa5fcc3ac121359c5148c827ef1acdd6076399375afc40c6ad86c3b0d19881ebee61ad08554b72dd25a4296cd0c10491f38be50616d91d2d50806bc7f1ed709dfc905e998c6f6a29c7d361c67a48515e72d55a2449b7492676392a7f9fac68f86f8d7a2fbb2c08e1910ca1a48332b2f0ebf65a5937d34f95c70826338bf50837bd8b6d38d98aa3ce22b71b6cf5f5ede14b47eddd81acbde7003d51746093d83c5dc4e9723d6f8ede4124ea401bb9df60d967f7e0b33a33c8141d8105e86871248a4d45e8e51a97aa1119b50089a8af", + "4dcb", + "a7ef294b46f2b6329eb71de4b16bb8e9cd3c3a34f88ecc2bfb4c33f77868c14ab10c001a297a486cba50549b538260f9554cd95b1494bf7e30d5ac8afe2ae4cf8135d7bceb811854ee682f451d73bac44d6cb42a87baf1bf109e0f0ee05790c993883084d56e6b41ef1dfc496ea0c981a6e816647b8ded97aa2e591f7d367173877c4f89406b25514ad37beba76a7bf9d1808f602cd28a8c3c753e96c15e5171437cf7134ddcda1e8a5de8eda2e3dbef3d8fbc83236f4be5a536ffd615b70d5aa5691de2eddaaf663b5ad31d757ef5ec2ad65b15e2e2d8205ed1963292146d2521a5d5527d75353bd4d012459c91b4951e17c9fca251a1714ac9c0f50f2038dd3253f7fe9bb905a200973c08d627385f122ce2c2528597a79fa041938feb57527cad7bd3310ed14f06ef64f294e7a3f74f88bf123f491b8c48852591e74fcb074db6c04f8a315100280b7e85b7a769e66bff7d5f5fd4aa614fe862453088b21ba554ab603ba1db8c265b312b64efdaee61cc4c7e2ece2e06b3807a1c2816e1f285fecbbe702bcf371eee9a6139fa4258bb8ab09861a01ff3b037f173c7a431c85aef3b" + }, + { /* i=2457 cDividendBits=2277 cDivisorBits=1007 */ + "1a1dae02eedf4236ba978d733f9b10bf15e3f19ab8236b86dc06544abbcdf9649cc78ab418949fbb58c912caf7f5f5c96bb34eb0c56e35fdf2b0bbb2b251a313e10e57ee7964417ecfa4385c93465711d33989886d201de57efcac1d9126ebcfb49be5005c6349055444f9d4aa9667ecaa75b4a91076a284535fd63d8de4878923e6dcec8e3da7cfb597e8e6219240f2f8b780aec012b6d9b903a25118987d79bfa39a2442e1d01ac1d0e275b9a6954a548de7b62a9ebd07755aa920b5267c71852ebb657d40a8c367332be3350f507c85cd538d37806743b82a9982229d330ad6be17b8ac65d8a7612495775c8987c4d0bd425027f4adab2c01caddf59c451e7d582848ff5babe33df5d2c6141929c7558e251e00e97a76cfb841b227", + "6ff009ef5f0dbbe008baf307a1b151eb670f2cdbb8ea56b8592572028401763a82f68548c680534d17e558007689f6ad935697e2d838425756b2e9d377dd061e8322b1829d822a576803ccb4bdb1a27c9452cf09eee127e8f9c12526e324dd7d606d4fccc4b0fa521b4d836afe275e14e23bab5d34d7098a2026104728fd", + "3bba10bcc74e2c3f0e9431bd9220add3bbf3cf376ba2ff063a3567c45c890da3f8683c555f70465cb9b42f22c6a91c58973b538c43467a8f91e57ae8ac9e94684bfb75b65ed59fdf72d45a099d231f717f6429cb63b6212fab3842765bb98551eb7999d215f7b93ca962f8fc3d292db349af17572bc15be391ee377da171536a246d9447294228613f5bb3816df2788bddd04e57a90e62ff64355636d73261", + "1f145eada51a0f068dee5a2128f2f0f6cddad72026cc7eea23340a86b13ddf5d35c0e84c39cf763dd430d1048c5451bc111cb063c07fbbecb2307962edd2fc7471ae4229e28faf66254763e76731d2a65b087543f504a13164c6b2d32458b0d5e4eff3fd95dfc27a39c5b96136e82f5cdf2f3f41803e113e04cedccec04a" + }, + { /* i=2458 cDividendBits=741 cDivisorBits=674 */ + "0c6b1a43d4062c5863d113c9cc8b80de89af00c194728d0a91f68a5229e06f9b381fc051480c9cf42250beee3cf0e86a0e9ba8c887f9da1c7d53c133641f7957a16ebb341c1d0e2bb9848f61b15c5cb38b3fcf1a935ae6536bba180aac", + "0179431745f433713850e8de21fdb7ca004cd02c4b4461885b3a4deaa235084f757677c0007d65b24dab16c4c9ef43ef9db2f970865bf76873977d0aadb2619e340726a674862eb04484c9858917d4c7a958729236", + "086d411fb023e2d131", + "0159fd4fdd870c22fad447f07e04ef2444cdbf96a67eee76bdae7d1b7714fc1e4717b5e69e1529d080a2e5be45b76acf2f0f751c5bfcb8f9312c9dfd75d465cfa4bb606007dd8df363f73ae891dd640c89cd1ff856" + }, + { /* i=2459 cDividendBits=2536 cDivisorBits=1256 */ + "82b4c9b66def8b925456bfd3d54791fc3e67709d38895a3674d73e991a735e380fb6ef5b340eeb1004bc00ed6e16fa5c581b2c949218d0811814ab7e63797d3ff15c596dec150c012dbb815e8f4a72354adb05343a70dbebe106e22cccf5843e6768225a25342451c3d64f445384d13e236d5df357f3293fb10396cf2686e7a21cf3ef81e7ca5092612050cee746a3d37290abfd8617307e132318ea582d743232edd53c6d1c09c619b84cb5aaa25b3473cdce76cdd195de43a46eddde841b4756d766e105ba93256d10abad396a96cef33df10f8447a8633fb3b861b380016c98db4cc6f11be71d07cae2e156986f6e1e33f5a99be404692ad95a4a0d8442083464ee45607c1841ef3d884723a98cb4976f038039e140d4b6c0241e68b6e6f500e1c013dc7decd42e98e021ec2edd360b39c8105ddb0f6141a56b676f", + "230693a58fc8290efee19f9259cf4f91820071c467f0addeea255ee4a69616f05179cc0bca240a77e7e86e1347f3ceb245bebfc7eef8bb480017f39cc799a4e2fae6834378571abb31be27520c550fdce41f16eada44cd55668761a982bfeda4f30916a4ca0c692e6df03775adbabc6aa6a15e7c9b81eae4e61597e613849d6a6e74ca694972c054fbf5fba7a0ab9c2a02b2579b30de4e7eb04e23ac38", + "03bb52406cae46861758a6b2a46c5385a04458a3b3668d447e13bd43dcb80d4d4e336a5990b012cdf886c2528adda30062bc9f36e8ce280a085699609fb426097ae2841b7fbd038e32cf604e2b8d87bcc018c544d2b5b32c70d517426bb955cdd6e23f94c08be256ea64df0033e9f1a309a6b5b2596c5f21e12fb7a8cf295f7ccb0bb4822667752bb19cd37a47bec4500f71cf45347ebc561b1d4c3cb981691ad0", + "03f36b1a6c1e4b41eb9a8efebc6de5e0292ee601cb9a5b202e780aa4fe405942a39abedca64ccd2e2fa2ff829c3101b7d975b1d461ac9bce2c3d6bc597e5a7d31ae3fedcebd9e5abf16fa8b9180a42ed38e95f2a4a7f64dea8a05baf96a10e5c5af09aede636cc964ab11f8a3cbdcf4267a4c5ae3db0bb98ecb26d6254fdfa83ec9884cdd0698b42c816b33a8a30a6695a416c2f5227f5ef30adf9c9ef" + }, + { /* i=2460 cDividendBits=3775 cDivisorBits=3110 */ + "4161e934a0d7d32bd8a793f120b81391b01b2ca7c074a36491371942d4d750799c7b9231953401d19a76298a4a1ce07bf35bb33aaf4a7ff23758f3e7873a2395017826eceaae7ed60aaf1c14b1d3d7150dbf14bde1acb78ed5b4cb9fd46939cdd6ac871c6d0413e40ac388d2179c7ce9c402778e0cb236ecf9d358a75266d1fdbb29872e409040f1b8521b6b674d1b21fbb3096a99d78f1d76e0455322a5d6939636a9f3519479c8adc95116b0468e71c667858cf1e8e3eef27b5a6649f009d2d7582df87e202b77ac5daf5f25f28a6ed7a120a0ca19bff124aa61ddbd3a4623a0432bb08c4954f7b0972ed2f00ca4076f9ccfafd4f0f6cbbbbc688a7e0c30b6971081683e8bc55ea2267b17795aedff92b87b189c2d66f8df6f825823b0d567f1da116d080d9a98cad8c5977cdde4225603162b36db9a8cb58a7f32dda16023e2c7ae2442449f4425fd2bdf076f0105b629c0dc3da14ef783a29ff0bcb524c2352a68c6ee4469f518811eb7d595e6dc24bf3edd7f203ff6df346a0f07f888463caecc62a40c7f2baef657260887fbd45300673d3235e6a4c52f306866636f126573517405fa4b96783835f98f34b0cd4f0957210f2fce489d817fec4a63a8f8de3622890b52381918c419fbe68480a5c4768dc7e4935b77", + "260467a2ac378321915de832514f02e5b87b33218e3d738413fc67b8d51ec4d909f44eafebbfba1a2238994ef0d99440da0e2199751a5e9678e5b2b907cb5f674ec7e159a7f668fdcc7496773a8dda332c33cdc16b1da6f69f91338eca4058271e618f4d31f3f82451e109b4a7657136d220e1f68604495084d9cfd9201710533f43dbe885afd3f222e06c7a357c209241fc98e101f5acac9b852a0964576ede7768ed79dcf8b04a0e10f7b2f60549655f801937375f71dabcfc03197c3f7499d5ddc51add0821b9d85deac01ec5676e9cbfc15fb222e70be1400aef43d1064618cd1f58e38632706189a77ec0fcfec8b5e75f74f9a3b1670fda0ec670534d34cf5a92226260fa5789de3236e2189615213646ac12642e3e6c4380e9ff6b7de7ef9cb9aa1770fc96cc76e127462f4e451ebc33a9f6394a2784c80bb3f5692a24b8e1e4b33f3e711286af63ae82bcfefa0feae0cd9dab89821654de9eeb4fbeb9b6c14ab52ab09000ea26be3dec41b1c0d68222266563904d954018b2f2bc74b0decdad6808", + "01b845a0e74bc6c7909d92a5a9c18bb2b894d475a5998f0bf373fd96602d2da2cdbb98bfd9f6c5bb099f4e2b5ce8f3066b22617459d2198573fccb1cd3c99557dc5fcbf980d077a8b00f0ab75fac6437ec345fb1", + "04a169934e0d9a6d7fe03ab96bcfc3f77cdf30bd16e7e30dd27a7426bdd05614c0e3eb13c3efc64e57550a4329f271c22f0088b9b458ad3bf929ed9d353bbc3218a60613f4ab2695bb5ce4389f10afb00e530bcf20b095da093b1d8ec32f6b0affc7b8c8c273f900b28bcfd165677f7b4cd22c33a05da190e31397962948e951ff2cf1b994461d75bead7f942816a952bbb46de90a166840fd7c629c2e027b8bba26f15f3873b1700182e33ad1d8f4e2924f7bc5719dbf3e627d1ade062ab6ab93912696c39e3f3913f1b64788002cb0ea628544163b159c0f028ecb04b4ef034896e123244c6286fc32cbd12e36683917a0bd1d49ea93f270886d3d6a627fdb964f9a1355944335b39487a782018eea786d735a06366479fbd407100e37fe9e3e5a48c19f41bf260ac506925146328e020be829221809ccdcae2dc2148ac21b69e2bbe1b996a82bd572e2dc49fce78b054adbb6fd8a7a7921273801a5c0cf04427f50bf5effbe0d4302a9c9c587052916a47cf048b520b3fb505298160d03788fd47375ef" + }, + { /* i=2461 cDividendBits=956 cDivisorBits=78 */ + "074705d749f48cfbe9de46051f400485a51288b94156369eda2eb78380be346311fcbe6694ff168d1fb89fa308bb70532021d7343f5676c390bafe67c6becb553c71b808d315ffe5317df1bd1579a9528c4055f200f4d42ea7470eadc36d6d4027a213e52c7dfdff49f7e3b7c0df29d85cb781ebb50498c5", + "043dfc99b991e9b35c07", + "01b72bc4a832600a92083e5a17ddbafe7709f500df9d38611de373a765f45f561d84e7627ca92c26fa2063631b6743ab034f4fb161b38fcdec77cdcb4eca0d576ef747ef102c0d6e2a0e49dc0f4004793f422a31200c8ff42453b38b290309f6e49e1be351437e81520f5159798285", + "04102b04a87447cb3b22" + }, + { /* i=2462 cDividendBits=3729 cDivisorBits=1654 */ + "017b8087604f4bc944aacc5ca113b32790219afb5b27aa9b63d7298988cefc94cba486743e77319280826122c755546160110db621149bb16227d3cdc7c97ce41898e33971dedac4623ddc1d0d482094dd1a7e3d3f69cb6eb58fc96cceefc4be15f3c468af7228e8775c3944dbc70bb712659c1fcf6ba3ba5666e6817a79b8dec8d5f4eefc1fe203e3843a1e9d01989dc5392a2fd548739d8219b55358b047471466efe9bf2ac4993d1c29eee71b36a8bfc6b81db996fdb89f10e6dd60f099ee7a1ff27af4d6b4513fbd410e672ff0817539cdd1d14f98094843bde42ecf02abe60e7cb777832d1745e5d83420d6cd9ce254bd6d3d5767058883bc5883fc4f5f94eabc88f969a335d895239a3f0e55ca0d0745c89cd0c726216b3a6bd2099545558f8c74740e741e1e6a2b4b41e8d17e6924ca4d2ff1fd00edd4b9f1962057e49b68c622938f390efa4326acab5709000bb05a09777bd0d20c4257b1f308a2723a3046bd949de519b6d2822bf9299bb457b2a871ee17bac75a5bdb74d1fccfe0ca72a084a5690138b68cd1e8747eb477903e0e3e477f6430328ef9fcbf27b5991c5d217dcfb2fb9712c396e6f95fc00c9d5f0d0b35106a3f586bc42c54ff9f7a3328f1cc426ee21de8033c3cf26e30986b5fe2", + "079d122ddf56b594dbe3f92e33fc727ff8387dd112ff8734463a64079d01d9139abed1b7ef26aa42d4659f8584cbf641069ff6d753b4efcf1b8ef425f9a303eda14ced545a246475e6113e9c92298014d6e74aa9a75324f298c48d519a23e1ba247239cb2e31ad6fc9a5e711b731f66fcf854b8c6e8ea6f0781de89519232dd0c41f369878be8c5c3634f7e02bac2835bb71646f08dba5ea331614365c9e54075d6fbad53ec66130a12f2cce9e1f5e0c3446e0a42eaca230873e56f39aaa453a77cc16ed9a83fbf1442f4c437de07a", + "31d876601358b4e30c20dfd329daeeeec2afd2c008e03463be57885c246971fb07a83bfbfd4d8136c186bbb5f9a78ca0ef532b989cc7083a65ed8c533f879d16fd5cd014808a701e87c1ecd594428d34fcc7a3c15312b653442680b8c38b523172675eb8392a285ba0af9529edefc04e17afeca8907f79fe5c676880012286c442f0c235d287563c67e8f7f156e0d9e4ad778a62b40ca4cba9f206a41078e18269bd5b1ca2aa86b39bf1790cc3509b7f75f9054af24723fe806de64b003b35776edb8a212754c75583274a6f4b36df27141c7fe252e093cf70357259cf996b0d38e796f5f8c24189fbbdf6d2d9905402b9eb0e6ccbeb36b4c4206707229d75b8198ab433", + "0235f6cb72cd6cc6786b54c0be633e372c6df6a376c3d585fcd9593aa63c2298d107f42377dd62f360a888537b873aeaaaff010c221d803c52076db70ff4ad5d4e8c7fadc27e479dcc3b316325eeb5d69ff2133a71c85db1eb4e14f7fd1674b81d70ac2a36f87844fd85665b50a4594a0a7dc141493ead1ecdde05107c1b0f64176f71cb2be1ecd800c0a6d81bfc82e2af78edb88b2680a95d8bef4db97df93d035069345898462c082ac8a4c4bfe2bedcae212cfdfb7ee70b1aa51c481c97b77217ffb894ac0560849c13b8bddf94" + }, + { /* i=2463 cDividendBits=799 cDivisorBits=451 */ + "485ba2e917e800648d4322b34297ee50108f17e598e6285cc922f214c457209e0bf0a741b5f4dc3748aadff941825cac75772c84e55a559bb9e8220fb2805436fbe93130204325fa9b832b20aaf36246d7e2f383553424d692373de6b38665655fcf2187", + "0178ae8454c4dcb29513c8d98e0baa52c5952ab583e48134ff3c2073d16639614760a096fa1ee37a4b40b929349c4f54a40ee79698c0bc4f52", + "312d0355558408dcc4e54dd1a6f1ab497872540eac4acfb53423efb190ae56022eaa1739ece15bfb55d08ab6", + "d51c0fb3b10d7c55987c22ecb76ca71863bd6fec42614897b9ebe608b93b92c271f8816b8915d92315e3ffd114e7a5e4f7b1f22a2a8c893b" + }, + { /* i=2464 cDividendBits=2903 cDivisorBits=2023 */ + "22c9019c7c2ac94b80a5dc55a40a7bb9731a809cef70a574ae3b80768a05845d3e39236870bc6a6b093f5037a95948665ed6e5fa3369ec74cf3f3b9c1514935b31668dbcbc3eb01e156c117a3c366036c06cf35bb4efd9fa704fb0cd7ef04220fdef54bbc7656293b50cf7e71fb51bfab9e4f89b0963c6fc8fe40882120ab522c78c408c9b3365f7d2f6ab9845ff83643e764f3c6f5e03f6eddf383615123785e8067b009607eb1dff2b7a9e0c6737ce902775f0f5065040f6df244933ac9a685feb52cce6017baa0f2fb8c36abb2f3ea3fc19c58f71e8a2b79dbf95e5080f3e2ab1f2598651d5a77beea70197a3ce4af8ef00da1f9edd3ca8f67d2244e1e55f6176ec92881d5326aff65a84418c460d8c56458ffdcbc6337639f61a29602cc3c05469cf82b4f87584dd534adb7b5281e18327e03a3758fa724cb92ebd304dc12de4e632b30ee4dffeccb1408c6f7c8f11ddd42db439486ac8da635a3c68a1aa9e7dfd2c0c0263881d42bf", + "055782c49b55615e39e303cabee6d528c936bfa57dbc4b0d204777640b62d9c01b034de5ce0fa17304d0d5b5627c9674160368a712499037bda277987e4b3a369a82fcdbdf796ec2b57313cb43e3e0ff371fb16aff1843c9be09b4b30cfecc6d55c8d249ce79fc4df87cead0b47f68af4e50d6f13a50f1059cf0dc08aa95d9e470b4013e6aa05cbc0186253d100dce06f29b6f84a6e6f0914c85bc6bbb4fcdaa1760f7ac7ed7f190b6026c96c7d5fea2d333fc3ec28b261adce923d5f9a08da0736fc0deb6c7c645e0063a3d36433c2cd3f5ac85c3ad86b66bccd15393dacf7b04b118451f369f04eb47ed403214f30b86ce744cd7df93d7e63c30489c", + "068307b10777a1cf7c479b85cd98613a91b5d0e621d86500c8edcc05f418977aca01d09fffa8bbeea8ebc3a55477432d536b9c0bd4a9810e9f621a4d2a6949f9fd9e84f31a9bb981c14f93516bb30ddba2627305d56f8782d612b44776d62bab47b7b6f705f0b4574a68b3218580cf", + "8033beced6c03fd52b36dc9d17188be7d6860a10d74573fbaccb97a04acf1c342ba73f1056e4a02583849a22d4471ff156416dfad7046c68b2d4354c464b1197e69348cdeca18b57ec9ea29f3edd7e72777fb3d2a71b6e905a503f9d84b051c191a50764c1db5aa5471723738042ab870e376029a2cc6bbb2d2787d5548dd438345c26d5e7d7bfcd9d8247c181d9312a1f129dec985f2edc1ff6f956d4e27b8ae1beda95d2a6f088929823f7d93e2d7138083c761eb7d8ce9d5981dc9ca7482e08a6752707b6c7942c80e095679b313fd616b97ed0516fe78458c8378ef76dcb5a495e5feca57281ce699e6888f495fa44069a3fead3ad9ae3b88c9b" + }, + { /* i=2465 cDividendBits=2216 cDivisorBits=1049 */ + "ad907fff94a05f978a4f2e4c6cdb1679226a152d9fdb5c33600dcfe44bbb2ffef5e37d041b23c2d87d78555f5c4c28f4a812256e1793d8646549cd20e149c0437acbd21b7c3331847cadd5db706e768bdbadff668c4ea4703a1f69a6036b5278c4a5408d0b2a15b049b9518c1625ec2c5a3bd26b6667e5ab15d270744434145f242b6a93fe2a7173763477849b7b6bd6b667eb3fe623fa3b7f521379942aab551cc475b79bf20864c91fa49620fac1a452a8fd7324e98ef60efa60a2fce35e5ad7881cf0c4a629dcac9291655305fe7fac4a1f60123dc208f5fc1f611127b1ff1ccc04521132754935350983346e3c907828bd7b1396868202b0f368634d748289e4921fc3a845e6bbaa50dcf11d1929e0f979cc07", + "01027938f875d035d7cf0d450345a66151eeb38c62bdcdaa02682c7dbce74b7a7a721486691ee1623c9a22d11e12744b055a7d4af10d23ece6f41a90ead2ba3ea5b6057a8a5680f0e0beca1cb0a767f9cb752fbde51278a5ff99bac63c0e54e97f8d5eca0d51f95b00381cfd2f9877252be47ed51ad4c06179f1582eeb3e31bc6d289894", + "abe74ad619af03882fc6dea3c118c908ddf541ff959464e5c80a437eb10cbc8c574cf2b24a323a0c05a8fb2d74e3c7e72a6065bdcfaa90acb290d72e97a0c324c9daea6d5f603b704e46b5e78b0bc6304ec491506f30b529697fc1dc8313c490e751a16d28b9a2b547497a705cd438f249e07315aea6588bde4b4e9f71ffe54ef023641e6ab0552aa26e1fcba2be1e8e0656", + "c56ea28ddd93cda42f3b05e6a33641a55719a4490a3c9f87a80604d4ac7f98f78d1a9b578fa11329aae9950d78e661dbe8e8437958486575b5ac27e1377ee8a7086734cff96acf2aafc80bd8734139999d21210935168c690bafd3305737c2e56c13ba2cc06ec2d49b2de08a3cb9979eb60457f987adc8a808852757afd5c7602b124f" + }, + { /* i=2466 cDividendBits=3180 cDivisorBits=1721 */ + "098144ba2661e0f6ff5e54000651731f850914964480383891eb5160ed622b1cecc25a516f0222fc67c7dd3547cefdea57bb2ebf83ea8b27150ae432f224419d1488264f1022756a0e6d0144c00d334f7349d59019f6d680ff407dc4687e6a25c2fd03fb88c9cf94b4a3bd60ed37c2e4f340c6554215187d30c18677671ea5a21c59fe4a6a67faf7688f43635d04107fb8fc0b365d6826e10c1d03cd525dc0cd530a2f7c9865d2c47acf9a1e3c83f2f605e28be22760b9d523ba1e4659c3e54f555ed77266055c269315585ab77262ebcd07a7ebe0635ccd7327ff4cd7e108bba1103098e76865d089e68fcc0d1cbe969feb433ff985bedf9344c2f9ccf410179c198aca68abb43b75a760ef467bb16a17ac04f66566c2f25b231eca539517a87e80c0a8929b3a2dedf744c9a571d3b0e0462917df575093034484eeb3f56a881f5807f9f0e8402d71bd3b04033c47b69258e49fa3826f64b497a39d8909e1da550e950a2cae285a5af5bff0c208d610851365921f196f98c7c9465a3845e549afb3e9f567d425ca98a3c188f650", + "92bad3618d5156b2c56ff50a152f1c709c7e6c914dcc17841c5b0d8364d70107138c9be039518c6a8a927ab414c46b3ccd3242bdac18afcc42536f4600b324a6cfb36d3bcb269a50d4df197e052324a580ea2246b68b0ce1bceacf9bd7a50c8ff0972acb7ca8d4cff0cd36763e0262c58cca5b99c3a0a61b55e1b672029349f20a2f058a540f1dc875fff278e4866bc25710a3c9c981c3337486a991d6b46b6173839545786176ad3ce3e96e1e573e02785c22b873cf221d5fe71032966f4151c4baa418325272564e3f0d0bc41782d2cf5f898d535a61", + "1095551a27738a4320b06b4768d5bf9dd34417a4ea959760e95eea00328d6de3926f1a8ac7738bc3c06a4aee632332d197b328f1ad19bc26946f9e26d16ffe34ee69b28d9bf52352d42ead32cf35d67cfe2abd90582069d974a8902f9e90af841059fa7c04b990ac01ad4882740b8855719ab9e0e2525990c32d52b35dd5e78c9007c05dd712cd2856424a3457c579b6538ce078ab8f80218418b5b8aef2b1abb7d51e5b7f18c1fc36b69913354e5c9e46506582a6f6dd", + "7c9cf286e45f3c8e6600bb9ad9dbce60c385b45bcefef621570119a0b26d1e9f36fe3ab91dc7951fe742903bed28163222dd586692729e604818ea8982a74ccfb2185eb2928a55cac00e8a9f3e4cd8f8afa3e7b42bac7fa6ac3a691298f9c1802e8ee6ef9caa0f3bddddae2506985ff61d9dce0820f3f11403965e3400a421d0b134a14870971e765d800c6292b2b6291cc8dd28a41de89106b86d24b6ce638eddb2411a889ac179f713ee3b04fae0f069dbfcc3236a1dc2e26eb95f925ef4079155ba8185f44b64fe0e738e1e9777b35a00dfcad4ba93" + }, + { /* i=2467 cDividendBits=305 cDivisorBits=109 */ + "4900e5cac19553ac1c381f949bae7ffdc97fc378bf81be2861caf63c53a7a6e1b8cdbb0b4f53", + "07ebf1e0f6c2f7ef5bbd95c794b7", + "093737074b556c53ecfa62f307e49efd2de060bed826da100f", + "061e2e9a1c06810d06e5ad38289a" + }, + { /* i=2468 cDividendBits=3053 cDivisorBits=374 */ + "05ee408e997b0effb9e96516f67487eb3f2543c9cf9333e7a2ffe8cff6a901a11b2bb2abc317ac33df6e2789832cc6ab3eec6ea8ae05110735b006a28771a7b38958e710a0154332856776b9ad1360f23b46372dd397051d58cc05b063945c3b4bf4903589b6aa9df774c68c2b77d330e548024a8d570492dc9e2da94e51d3915893a3f8b98b0fa827f6026f14026d642e396f8e665227a5b191d5302cdc54d5e7fbd90031279f5897a385e3c7493d44e59eb0a1b841d4decde5db3a5b0d4b2ea2ff76c2994e675c8fc08a6c1114478f89c4b66b983b13ff5cc929988bd3e6c146c8d193da28293466fca4b9739171e7201f5d7ac8f38c2d252d8c81c84c0b2b9f6dc36f01ccc7a9fdfdf531156eb1337bbe44d80d54abcebad3757d642e8eefdb3079f84161db7b0de3108e3fd3c9c3872e779ffd45cbd9f90a2394e0aa39284e28c0f2f3311ffbacc65e715707aca390af97671f6df945145d43738b87384a7e77ec561871247012e2285136e52d3ef93d1c50be4215616544a47b03be", + "151824c5d60d4d8f568d23bc2e6a54e7238c9f63b0c3ab93038071ab2fa8712ffb51948698d125013be189545c8c0c", + "47f977d74cabcc86079b74c35b08216e6dd34e6c38ba1c885c205ea4707c622c8e5984cf61e5be9e46f60e66f9687ea4ae9b8848be66c58ad40a03b17fb272d268665558eebe607577a9ed8a0683fdde27d8558b7268df104ba84c4d29ef22e5b7d15932f57ee8e67fe79154baa510ef78d17637c63af7fb48a2740b645a672ebad482160e38f1aac9a5e3795c4cf573790129a1fbbc4aca9df6726116a16d62cd8ec67324cab4bf3d879360f431aa6ef9acf5f1b3949c0f03857600980df86493090a4a57be68f7fed9eae672bc675a4a0f305a6130850797fd315170174b09dff3badc57fc6979f4995c6d215645db8a4a2b0abfac069c9d2cc7779e3219f2ed4a7cb51c4219b7b9cb8488fcb5296c6f3eb9f405bd21c9d45851a04b96da1e2032c0b7ff0816d32ffee9de29da2ae0afecba57f8481853a3d9ca42a542742a81bf06852a64480989556436cba600", + "0daf7393acdcbe7d43d041ee2dc91185c4a9080ae7890189dcc4ce52dc9758ff30b70663a7f6eb645e3cf30c273bbe" + }, + { /* i=2469 cDividendBits=2832 cDivisorBits=60 */ + "22e8288126eb4b4bc48c5fabbbe23c1a275bba9c9f14d6a7e4b3d1017a31523651a5af4befa3dfff180e852c6be8a63217aa2b6862488f9201da8fbd37e8d94752e1289fc959fbbb7ce28e51cd1cf0e9274bfcb6b7e520da860e482b3a002c244f2f9a721bdac41be56cc60401540a91ec7203d939f6d66d2150cae6fc9eedc969a1cf8dcc828f463c5017c18219f16ed2de0f00cd2b8ed0cec95d815be7f278632e08a5311d92dfa0ba3617b02873f28fc1ea046663c58a3ca2c46dd826a7b6af36cf0f54bc6ee8b900fb9c2861fc787efde39e7b3f42686a95a25daf04aa9ded2c47c214f617703c94d45eb3ee23b84bb1f43dbe69304e833400f24c570c5837cc7c316467656de8e4ceb01d87542fa75e6cae5e0e89579b8f464021a13d43114c0bdaaafa49e9fc8eec28ce15bed6bae1a7c18d92274047fba4323cd884f604136f5ebdec56420f268855015476a060f8ed100df039311faddeff1042588f300b", + "0280c1448fb4ce21", + "0df240742739524a54e91f85192100998f439b099e33eb4ba47c17f4f132ab4965e4292af66eb88e0ec658b1947955af6943783ad66fbda44d6df63ca2818d304bebd216d4dd2e914952c4d9534fceb37b777086f310aedf7586c4b964481ea998bcca1d9e9ff5a58572054e33d555d70db71fb9b0329355ccbcd3b0fc3261e815cabef3bd3b64585f9f35b050ae01418e8dca20a29c36696f2c80a48f1da7d53b0f280a79594eff9c1848fe7b7d5701284c20ed8b6ba06d6533b9a04c180b755cbc351b1063a7d36b49c73bf38aae2e86ce8e415342c92299ba53889f27d235116396d23eb1f31aa7ebdf895e268ee9f0826ead8a3777391e285cedc4ed67035503f85cb508c4dd6527976518ee227c2f44673dadb9bf9768ab1c1e2d14972e9d8e50cbf164dae108780505389bddabc31db732ed2c93ba9c5193d8c82e7df5309e3af823a17490073c36095750e5f061712108e0ad3c0d2b7620", + "01745ee0be6735eb" + }, + { /* i=2470 cDividendBits=3396 cDivisorBits=3380 */ + "01a6cd010bfad892563f6d42379914919e7d4d636c82b119df621e6ee3c8291151ef0c70f1d8f5c073346df672bbe8903e57ad47990c29af76cc8351fc7d0d4e244825391cbfdf707dda10d91f57f3dad8d799a3515deadc9887e34e0acedd501d297319179517fdb2dc031a4bb8e091fe32719039afa8b366a9ecedf3182d2f36af41865b9debfc6d4395ed9d154dce8f25089cd4e98c6024889909f6d741e2438bba49cb90cf549e6360573b35f1ed21a2eb4a92496ad48f463039f294df35dafdade4a5a0e4dafd2622fd7bfca6755a57df0ec5a9fa07782eaaf3e7c6084bab39521fd5fe9106615e344fcd63293a8805990a5c7b45f8bd8b0f62e83f4e38e2913457b9f7b16a5e49a010f25296cd4bdbf641ba871b33a2edf528b53c4ef9ef30457b08446c35a16bf2410db4d67f057ea27b3fbad4d94f1c309c4a6b467ec8a5ae560a2cb4aed86718186edc6ad9a5f173c625a637f84853b196fe5ecdd08016aa6d40e5294e42b196af92e5890693bda1ebae76305190c811c4f0a4159526b2610f2db5581ef5fd1323b9e9d95e3f7f3edb72e452b467d617a3d0854378838ef0af1438b17ba6", + "0dbda5f4bd7459129fe79431f149dd89493e2f1bd468f99e918d82aca2d92fa641ffe27905ba4edc02d71dece2696df9ba0cfe758ab289d241aa62751d21f079099c256ed86a9885ea000f61fa8229599d850c55c71b94a78f1515c020942db97d71673816106ae43b8d1a7516e02921a3d0da6826d7d5c8e7112110b781d7718ab4c4417383777305dd20d2eac47cee9350187e0fc364e0d969ccaa88875aae3b0f1497cb54a904278d28e76c0e8cbb03e78d8887ce91e4600e0a741b88c00d2d7c87d4cbc34a880364033575d51fdd8d4e30b9b26ff01d15645050634c5fd5c8c0dcca6f663dd1d822b9ada47f4bc905503914a6378220ae276c3a1c09486e69c39bc677d69fabf05549d9430c1f29e2d67439fcdd2072c59cfe15fa7b7eca427dc728eb8313072c8d4bb1ced04edaf5894c5cd895f59883ae1e04c2a4330a9a335ed2b4e5440989742cfbf9542380a6725f85d62a93bc2f45b7a49e41066925ef6841121dfb4cfe3182a700e2a1039c7b7172ca9fc81acd9cb7f7bd5c804899e70f5c633a9ac521e2dab9e1a1c173cf2896736ac553a2ab9c62afef09e46cd96248079c505c", + "1ec5", + "9da8716b999c2d3caf52e3bec40d42a703e933ef11334d873919d9645a2b4245fd7c0bb823fb9108eaa8e9528b595dfb7602578224c44e03aa7ef3a801e80373ad5116d7896d60fcffcd96ecd8866bcacec606773790d24f87ca246ded30b8a0bc16d630d4b23fa66b36f00140661ce83ff2fc798e57fc1adf8bb9bf051e0e556ba9b69fd2071028eaa3439df6764a491b360e85312a06e4a37b9c5519108c834528ed6b60118e65eba276163ceb43c784a84eb3c58746a0324c01a878858515252eff34d6b215cea6c009ffb7de4af82d83da8bc0494b7358ae46ab4ade2f3bd63528dc1a378ecfd4917ca863a7b51b9e041cdc01c5fc6c5dd03ea4973534e48f9832528b58cfafc7a84692d2680b459b7e459b3c37737d929af81515a9c05d59fa2dd41d25ae1aa6f7a446f4ae3998e09ae696ab7150741aa1f24028436affb160d4a2485ef4b46c49bdb0f1406ff690f48f6be48af9256b622567063eba6afa66b2b4c8daa82d4676474bc23f9fbfa1ed6189e9700f7a9c56ce865deccade7387fc1de2c25169efa06e4338cf1a12fe2590090dfb8bb4bb411f2816fa52239cc20bfcdcda" + }, + { /* i=2471 cDividendBits=458 cDivisorBits=331 */ + "0186f4bdf520388f13ca1d85fe5ec1cd4431942b35db6198a7c7ae187946230db951999087598d6e0fa28870cfc617ae5d10c4eb75bd635655ff", + "06cd285fe1daf9cc9034e1829ca95ac8a98482b33cc9b44c1713a0cbce480a915be76a8038dc6c2eae50", + "397b5212a60dbdda50ea3fb4ac71efe1", + "03be97e3f9cb231e3a9003e0c79932f575a0bed269c0656d0d66a822232f707a2e916050550a084271af" + }, + { /* i=2472 cDividendBits=2287 cDivisorBits=47 */ + "52e0a371f93b2807d4ef15be25da97d3a68836ffb394d59fda996548dc61ae124a74552c725d978e1bded16d1de75aa360bae2f904fc25e096980651822a0232f747164357920d55822f42e7dd6c182fecd79f5136a4375781b65fb90871fc3b53adc465b2f7adaaf509349818a08eb874355ad85512d3cdd4a652b703e9bc73d761f291f0c52642ed9a37ddb61e4a423ce17a5ec625bf45c83eff18ce972fc96113ae40d4eb53c72e33d02e5d7740a143607d7ce80358dcb5962072fc2f9c321cc7f1aed57aa7baec907efc92aae81ba833c7aa92aea961c7ac7afaed714df22df26ce455283a8c36ed61d72e13bda77b0f937a2b8d0cd17b4fedc6361e6be1449c4bc549857be0349cb27132d48389c9ace2f7b10c1d35472572749f62", + "376d36949c98", + "017ec9b54a92828348b22c1208ed894ed9177066efbd1b1c84740cd2d47c1934473fec8b73408c014460be0c6cdd1facf45f6ba56252a92def718dad0538a791d0d6932fb15486edc17cf3d0e4e850ce90c0e11d0ded2d97319c1de4e8bfb59815d2df449911a2bde21be51329b62e574c4942100d7393c239cddd35fa756e28b42f1e39a2100205e2f9589777074371182ce1a26bf59fdf8ea39d09c964843ade605a8d9f7936f933d28ed860f61fdcb8d6c7a711ad1c8e82237901e9c0c05ab074ac019e6ccc4648311110615471a9f8cee6900b6c96c822e1a77af9ed964a54835d4acdd8c0d0490e79f30fdc66f999f97438639c7d1563525a596c3243b46b6ec3cbcf80ecf86886b444be1765d80e946e8bc792f2b408", + "25688804daa2" + }, + { /* i=2473 cDividendBits=4061 cDivisorBits=2873 */ + "14255787d114dc892f2f0bd4628519db3524e122b99ac77affee18421a04fe6362af9b1d193535ff3c20ef44caf1db7d994d99a05a8ac45188224c42616e816ee41f70e15142bdf983b2beeb10c12d1dbc892d3ccc086d7e725ca7e1aea65b619cd7b5653de6ff30bc539cdc37038c74d891e73991c31089cc2067d45f74dda2513c0f0912739f2887e012836575282c70d907e60219d662adb80a3f36581ef8e0df55edf60f7c9c2a7bb1c34934b8041f7a38cf23e396d913e31e0aef55c875c6e1edc7ea0747c9f565f8e7d3196d1f888d7e0afb2b509bb448d4037b54a72c579014b5e892c353064425724d9d3a4209569d8069425889431173a19d61bb2a92383bd7b3a7e670ff0d0d00204f4b6f221abf6511c6737161c6d17bb72d2aa212cbf2f3bca7298f3f1d5775f012dfa1820b7e7c83b4f3622c40397698f941ace36d842643e962b62c447f2ca31fdba3eab33acc56cd98e844b271c10096cb3b45fb8a4e03f240524748b97267c039a7e0caa89d642f27c6d16817a7cbb3524b0450e27cce22cc0067db541a79c1dfe314e53c83bf242e35f3feab562c48e7330e39936f6f962e5fd5422b8125384aa318f2d1df6b20724a408b53511f9b850f4748d47bc7e4f0f83c8657d45c511ad873dd519b4d849927411c38e39876eb693640227c350710d8db738f316995a8442ac6c656f86708d6d2452913", + "01de4286bc3d306992906ef1f477ce5f3ab5495592161da579de8820bbb890d7144d04b1d628e460394c1b79d307c94e8522640260a1a0b05da69b7c0635421ad066271498be582a63f8d40645d5acb36884010ef116fa2fc6f9f0825c4f2dd211f6100fb8c34d4dfe11ed16a36d10976041f35caac81af9033e21ec4c81fe15b962c1b8ec877f6f19a57b90672df01ecea2a973164f6d3ed92b3699a4f5fe25609ca63a37f5935f8ef40bb64ef3b8bbb7251a09dd366f6c32e31c3240a4633e5c52ad694ee6d2b27f989eb09bffb08945fb77c7e9fd7c67efffd8df8226f906bec43b12e5a3fcd2861b6132307c25be8be8214ee141c1553c1ba2d1eea5cd57155179d0acead8c6d3c65ba13b79a3b0842e87926cc14c77ee58dd1545b2b82864aa82eac7e84694413ebe54e408cbeb3ef5f6244ac76f405218235ac8d0c8140932de21ac78c11e5824ab9f8b2ba5fc0859c8a3a691d7ff7e32a8a7cdefbbb578a0fc84e6ef9948", + "0ac8971abe3c86c6a3f99d44690d835acec3a3c4119f9171590695b3ec09d01bec6d380f465131ac24a4e83bced1f4f5acd95f314991d7f7ee5700bd623fac78a9bc776745bf23b6d5194d0aaf0f4d217a46d7c2a54f4301dfe7f663e2ff9b553bd128e1814c7d56f750d1d9990f81a411cbaa52937e6c4a97f14e8351650d470e2be7824d5916cc16b8c357e83ea57ce15ed43291", + "0122e81129eb3cee942bdf4f71f27f5e485c6efd99479cf1c5a8324579d75d743e9a90399f39c7b5b8f6dc7c66ab4dccd1b2a46ceaec437b132d13beb7129bf9351886ce07534f1496ec2ecde368f6dd649203720a6d2158707bb6b649492321dad25ebffd36697d350f535dd5748b4a01144bffcfacbe7a00f1467e9a53717b6d4e64fed2c8227a65d4726731c4a1491af8ffabfc62960b086dd4d245c241cc295aabfec97ebcdd1526e8517d3e0e01142ce4312b985e5835ff926d6da1f15170658eef79c65045b0d1f5fff69385e7c484140ff26b57b8268bbb3f052cf6e3058a471afcf753a94628248a0ff79936150a074cdc0e3d5655e2bae97955f685f63bf0887bf6f89363a3a8cf6f816e928dd60fddfccd7c6b5781afe3c44f1ae5a3fec536df171782e5f4d434b5e1fb4fc36d136c00cc3725701c06bc4e7e6286eca03bdd0c8b2b6fc06017e8256d945d74d7384aedde1b2dd1b67de975496f7c06ce3b79d8ff474b" + }, + { /* i=2474 cDividendBits=2260 cDivisorBits=1556 */ + "0c108dcb7072dba07b3a34f9f9dec064841ef141de1300e7b356b8f07182134068ff012048f4905e1f1e7f57ce70d3559b2716da512b5a17008c38b968271049618a7c6449312df47eed6fb3849a2b3e0ad2ecb7acb976027c6acd7b992b726dacb491741550a3ddaf831b5e296eb4c0c0697a7b2e1b9df2c8db97f39797ff7f5c23c4125850aafca070632af3935fe90d96dae0d25db601b68ec7abf30c8390575f838994cc3b44d0b5b302aed2174230d291c8a37d4dfb8751ed7777ff3662afde31a87fec63843c3e179813a935f578cb1d57dd4e53664f05f12cbda3b8ed6a665b3d6f71241b4e98a9a5b3d99b28fe3b7db90d2904b444b83bf813441500193d6db4727d730c06e3bd7436058a8d0048c58bafa9e47c26cb57", + "0108fe4700fabdb57607623d806a4ea5c6a6ed67af0e352c5f47320196af58e6ce8c3ba66d9bc6829a8113b7647ac4399ec8bab27d23a359963faee853f1a44e1830155b0cd2e0199e2801ac10eaa5aac157f1124dae7b1609b70be10a0137f96c62d2c1e87888749de88673c986382625d35af7e8ead7e1a7619763cc87d3694845ee3447dcb404b1773afe916a74367defe16c9f08d969238eb34666340d6c98aaa8bbc091d38efabab0f197d3772872a8b2b7ff12c1c0a9a2378ace4fcc98879c81", + "0ba7bc410ecf345bb6c05325c0bf583db7565f8d3944cfa39cb9ddcac8722d4dd5223e8417c5be2579acca326a99d4a9e8c8648206a1d33f0acff7048a1385dfa66700c7267e9338d117817152cf5a8704d8ce8f847256e2ba", + "386b054dfcedbc79d34146fade3b71452d9575263e34d3c3295fba29670511c497546e1a42f42b9e2e37f3fe3b0263d01a633ea2ccdfb9d4a940c7e432e6fc604bbec238f5b096b4004f8e8edb650ac2114a04ad580da7a625bba8bf2dde9ae3dc5ec4564841689b33509d347a4dbdd5e967013b5fd809481b8cac8e67f3322e2a9c25eb7f9653464ece8561afec1dd48802f7a9f939b2b497fd88b7c96afdbc76bfe925e16fc5e1eaf2af95d8712c41bbd1e27527c2b3c8d2257688add1ec1f339d" + }, + { /* i=2475 cDividendBits=1194 cDivisorBits=524 */ + "66d7635749616b80ab613db2beed56f9169d09f991413d1106ecda1a73c953dcec5e8b6aa8e58407700cb00fc1cffc8b8109f9a8f9aed3bbde7889e3425147546f4c0b6265ab50a71d025544f974bc2c2e9e9e85a0548e9fd601c3fe13b54efaf7bac29e2bd92f65acfc7af02971a1b60facd941b65d9a34a2db92c2dd8224c0de0d4bd8241e2feca2c77d6314e0af050e051831c4", + "0d18a13ea6a0c4174e2419030e61f026750905d9bdc1b12ebf50e7cde7107c10d5b26d596cc5aef410adc895278686e9754f3306c81d0468877fb3efab55e7390bbf", + "07da4e4a8b62195996904bab21f88f63a0153150fe647fa0a5cc3d4a897b3d5316e86bc4299179478ffb82b5a500db48f1572d42b0a584e47287016b8cff9f531de1ab82cb5a25bb3b32b82e20a251d88c2fc1c7", + "366b6c054865d2241ec7301beac2def812ce25e12100b65d7be456891cfdb2bb9ab1a37cec194c16f2192ef8632152d45ba423efb4278a16ed6e4513e7a9d4114b" + }, + { /* i=2476 cDividendBits=612 cDivisorBits=580 */ + "0989aea0d61dc2460db7c82bed538a25602413c7973d019af5894677fb395eb22bea58be34164915a671912083b919f1bf0ce1daf5f71f8fb28150b1a96796008fc8c8d55f5e1b45f83103cdc0", + "01f1001d58faaa871edd82fb62076675c789c87809d61ee53d77915ec5d97f2bdb55467fcc378b344d0573545b1ed2d7939fc54a778ac5697d2c2af3b201e371d4bb533e63838b21da", + "04e9afadec", + "e72f6a9879822ee96c9000a5cd16d61563fd3977bec312ca801e838587d2a2adbb99c7e33a7ad9c9ae234344ed6a696379d0f0cc7099c37a0758f8c6faf7576d25476d0258da46c8" + }, + { /* i=2477 cDividendBits=3264 cDivisorBits=920 */ + "3c56bd72b5c97203786e2f08472ad581c7ae5316fe1921ca2663920297be8dbd4fea2d6280d31aa73b5095d4d315df3721ac9f7105740bc5e29373f0a402120b8874790315ac6d19910b70fd7705acf6e547ec2de0a7b3a4161a6aa545c0fee00fc20db89ca10c3a7611aa76b0e5ec84a2be9799bbf663c702cc8f5b363039581d0324e2751936c725eac9216f8ecf28033dd733ce528242da193ebce5b4a22b48aae28e4fe74933c97489ece025f62ee39723e3e3bb8d0583ea8291676f206413b2e48b2f34a8f3b776e1515edb3255567638df50ca5b9d1acf708843c9518e1e0c0a74df02b2d782e32e66b642f81c60b6cfa5d4ca872fdcf22aa1dfdd79ea9c7fc158e2d5e97664c004164b76b11b2e7b0f3320cce056e4a18be42514ca9065e8f3d690f7b2ee26177ad6e4733915e498cfa8c1bc1f1bc20ac113e56c0fe15870fc051fb65c8afed75fd77b2102ed99b244d0d830cc1f61b220e589ec68fada6c108cbb2817d7625f19770a97bdb697a904056e09df3d6a0488d74f3238796fcb05839c1b1386023c900e2eb03584e9efc5fb26ba679f", + "51129761629d2f0a6e4d8bcd3091ac34310ca0bcae4a329f67398bbb1f5f627fdb95183cde7508aa199cff4d6937e000f60d203cb968ed06c5c39830f2f2fc11e7132f0c11e311620cb0661d16b4630168251b397b56a8af39cf2a6e10c38329f0bd0744cb32cd4f1d7841b7293f4cf25e04dc", + "be87987cedf1519871f3dc77b58c87a1062d513de56efcddf81428fcbb8ed9643fbda34f746d59f98bc521b8b9a69653ba4e572cf1be64698c839f9bd7028c6b06dddbb9102f8833d9e21f985aee313df9d2def960bd0bd1b99c89ee60647e3745cbf60593fb15f2466f8c8a27b8e0fcebe5156eb0f29c24b0e92082dbf007789c88b24186e47a54cd04e0b55e9efe69679aaa57a58cd00665b33049d23a21c4175eec54d1f4e9dc70a833766f5a945f91fbeb54e48e4402924e711001d126a65dba34a4f2a2f20ce9d87743281114dd046b9b536ac993c5b52ffc81d9c43a615fb1bf36e88f9f058efb0a4077f74373727a94835e4a31f90f2f41a31219ca3b418be8b2d105af2e1b7132275f5c9a3e404fa96047f38592cf37c1aa0921b7444ca4ffca8b", + "21473dc4990cd0a35dc416124f8b06e5b66aebb116fc8a0fc742fb57b060985f27dc82554967314bcbb72760b3a245bb38a54b3390f62fccc27cc52f9f49272b87250f50fb141236fb6553152b7a7770fb0960f679c77c8564bde8aa49e65b7ebc244167b13e7bb34d51e1cf3627e196b42c2b" + }, + { /* i=2478 cDividendBits=1348 cDivisorBits=283 */ + "099b2a7f1d9cb6ff7468ca101516dac9c1e52ca435a34c3f94ebce5e6b7e1411b49a60ef59d1964d4c3637ba885ff32c154e815494f0a5817df13026a9cc54a2cbec880f75a959edfb357e04184fe456226b009be278b6a327391c964721819c3bd67ff2d33b1a90befe724cb8b43481cf625db734e160e57a9b7904ced695ba9518dbd4dec6760ebd7a289a2db5d72f5eae5710eceee78c1afdea1f60d8382f32ef65f4788b558dc3", + "39f5fc4e7cb1f3d4a9a0d128fc9eda8c2da3302d91256dba32ff8f03213ebd0ab1e6e1", + "2a6d935f3bf31570bfcef350e5da1aaeaf520a69c380573c6d4aa7f38ce510025e9f8f4142a416fe3a7ed936b8e0b0a4c72b276a214eb53e0e18d051d362c77a78f6546b8f4be97358e03142537f2dcfd709122dd9fb0e56388ec019131a8c5fe22471743e891f75f4dbd24df2a23f98667484dcb947bcd534f2d432e1d2c0308f219b4454fa", + "307bcb7f1374f785fe81ca529e69c3adbbc123a70be543bb1477440d91a84d2b144209" + }, + { /* i=2479 cDividendBits=3402 cDivisorBits=525 */ + "e6017be99fe96e0491a5c318cb6fa0078bbbb081eed0cd7f166f1221223ed9b84ece45e30661e46ef0e9892aa885b8220f6ecb7c12eba5958666d402cc4d79e830b44cfe818fa9be46a2b48a05877b9212941de28d753a4fe252ed4c5cdbf83ac0ed36e740f9c8f3aec1f02e6eede696210137f2035799daa15814f2c44ed3690474c710984bde1baa07fbd1d9a117af94557d727f38026ae06b9e7198148ce420a378817515f1306b74f17b24b2fb424cf846d58f6ddafcdee7c2623785f0aa413946258c8d13d7dbe4e67d1de15266b8f0ec918a8cb570304942394df6bfca63ad88131a7fd6c9d13e7ddf1ba1109b40f5ff808d08021385c08dd3b57c042ad4cd2dba1e513453642b8866417d3025c2f8e15036029f56bef77c7cd151bd22b8f59c03955653e46834108a5ae1d430da63aabb0a16cc851e09e21eb3a45fdbebfea12e48f568c0edb8237173d0c1ceaaea296e88e07714aa4d067b5caea06eae151cbb12b78a9d57d66472fb1dc300c817fbe70c3b14b1b443edffa498645619c4a07cacf81eb88999935e5cda9ae4ca31c81aeff7f559da2fff2a48778f78547ec0918d90d25d35", + "dcb1f6e72e160c45c53419afb709ea91cb00fd144916704d1704f46c26397aa1c2711b81d46247ffa92994ae4cb66077e1b223322d577d42f655a880e24457572a", + "010accd045ad19b12376dbc3e8088cce41ec9b699234a04453ce4e80f02fe646189c6b1fbd7b0ea84bda771c9817ea1598c76a6dca0512490a7f206dcfaf54c9b789b463f6d43e640fc8c1313c351ccf5f621062dd9f8f07015f3d74b1b188553529a43af144c534778f8881339389e96a427cf7080f760dccfa0f4642fa78e4207d4fae5531cf503f6639548c0235c6397c11c438f0fdfbf59f86d4278f8e6ea38199c83d760951010bb56c3b5fe0a9d5bedd39aeee856f279442cc3cc07b6d00d87c14c1a533bcfecbbeb9c455e4c96c7de57c156242ad4930e13e2831a5457030b9b8d866492734ff3b32a4c2692b89873f9d856980f8aeeb009d7595ec4c9ab9bcbca1538999882147abbae120278e2cddc7f8b2b135c25546c7d5f402608e78dd3b984bbfd5c9a0b0e4f97497c0776213e7c74a97b624a186c766c3da48d280289071b484142a663c0130b9ff31d2c3d88b2386b5bc3d5e3cbca158fe0912ba0fbd872d512d23", + "29d2ff588fb9626eb401214e20d30fdf6ab2c42a41b2d22de33aca63301edf0b09b362892614d1310506c1b04f0cdc766fb552804baddd35727795397fe8451077" + }, + { /* i=2480 cDividendBits=3364 cDivisorBits=3261 */ + "0933c8e03061125aa468ef71f6031ea6f60cf52d2e6bedee855b80c078535f7171d812dc6a0a21667e1c7b05b10097f6473b807dc6bd1a091a9167b5c5b8664a1252b721aa0afe88be457bc7f01a945682b17d0ca5148cd249c761d14481b9a98d3334b698829c32ab82a0b5a0329d3ead72b74fd27b40a43586ad6896b8b7ed2ac77f19b77ac3139223566db698eaec0eb61ecb7c26f19419b0f101bf20271dfc67a6fbac1e328107148a3ab663c7765064b3ece16f16815da09cec53c7bca150f5aef2d20a66d24f6a40e5ec5a2831516f59149e22b8885bb952ef4cc2e6398f3c153c2395f5d857486855bfdd7b3233870deac709265c966e7d003eaa3134b1b4239f4b0b226725ba9fa7faa4a9f66b8de39936e78d1f8a66cd189fa4032dcfdf95d8b21858cf8dc26a37c57c1efce8b0a0e2e474cc703bad1d91800a9d5eb1d72efe91733e5384b9cce191bc6e3adc70f771938949891ee8165f04a8ec8a7c5177f248e01a26df3ac4ba2a636b6ac9b5e7858f0eb5b928b8eabb952dc291259e0edc09bbaaa32bab4fcf0767bb158ad4bfef7d80d08d2e47f8e8c58135dee39daca9c1", + "0a38ed2992bd940eafa2dc8aaf4c853d7be78660e599048357c74f1525bf0c1c3af96831d28ae3dd0664f9021382a8a3cd67735c344351b02104e3b00926e749d0c1bde1d9dc8481ff6ff603dee2bc8bad3f3f5523eb3b25877241f5bc3000606af0141ff588ffbdb4bdfb93414c37ed05ee0b90832207b0f2b4c95ee5484767491c04e7a39289b1024cc96314278059da80982cd189fd9b6bfecb1624dc3b356fc5e657214ec719e1fca982de9e22999234644b9225f08dd344d5f49f6a6b02333aa414b748be05c2f227b53ce748ce1bafdfc13d6261f1b298a4fd1b826f8c5d73345a2e1fc899465052c9c18c90e9f3dc41294a5c75a422e34dcf87ccb97fd6d21d3e9d905af11ffdc143e191f4b4198e8fdbd26e22c3afcb6b5cfb2294e12b6dab3872f700149585c078169ad3c24a7bd1018a84051404a119fe30bd7720f37a56bcdf0c4fe9adf8a7263532dcc5ad98bed57cdf36cae7fcfa740f88f26640ede498fc38737225f77428f78991bfca7216fb527240c2324769c16aa84a7b6b2f7b2314e72117032ddb83f80bdc9318dcc74294e6154f", + "e67432387b7ad755cca8992e7f", + "0a1784108c2b72fa4b9aa2b6f8a133f77d45603cdda9d6b56c0448f24b11e2cb1a91431932806209078a7215018971a4d7e252ddc2a577dfb497515116e8c096b0b14710d7cab3f9909402b8557b0352cea304c8006c97d4070f594ebab0ccdfbdfb21266a63fe27f19f88a9eee11f3630e6731eb57d8737ee44a1ab105d47f81d2f55eaae5ccbe9a3c8c5f117b4772af7d15a2a3c94ce1dc6384c432144568a05fa2e9bc6962657bca42c6495ec47f63340396e860d7b099fe0c9bdfece0d5af74b7f93467cf6ec5c0039b39731b3480720e01aaa95bbfa69fe13dbd56b5b27ac7cea8cedffd8392417bc3d81597d0e5d4abdb67622b0eb78188b836ab3db6dec9138f2c77227859a24ce7ff4963093b5499bdf087e431e08c9da558b5c40e4f13351133ce25180b6023fd6319972ce62dc223f454aafd9b1bbb3f68673b37b23178b405659f7fca89c4652bef676aa56345f9f68cd8561836a043c673325924e079f44c1362b3a0aa338bf8828dc621c5e484970e8c9def858dfdb58c46ed5d779a7ec32879917d5096a50b59d31c61f99dca7d37ce590" + }, + { /* i=2481 cDividendBits=2025 cDivisorBits=86 */ + "0144df898c0153f47c66f2195cbd5d74b05ef8e00ad1eb2946ae7b9def31aa28ae6adc795af7cd07fd415a771349ac3bd61e59c28cdf7c9b5631f148eda720d8e5f0ae1392ae07153dddaafcb5365bf067a31ceb9b3795b28d47c38d80cd920ac7d76f23124e1cc75a3e2f681648ace1baadd5fc4ff9f5175ca71a2c28958c85604304ef4a36d13c05a0a56ce54e2f88fc82b4a7b80a3673024e390a7e4054786ff42090807130d1452ffd3c545e183264cd4bf52eb36cb6391b72499c00cb6d2792f137aee58d2890386327157581bffe153ee1c6ce45448f6ebc5f07716c28ace685751663be910a3e32e533713a9c01f4576f494d3ec3e98f0daa4a00", + "1cc3a413702f7d3c079358", + "0b4b5a844692c1a2ca22a80670f308a45ddb32ac482adc754f4acf55e5ee09bab57b65a1e718992149e08bf782212ef6126ebfd09c8f10f84b24d66f8bd7a30689a73e6d59d71684767a923b8786cee81185aef2e5e81a8bfc8845784a28ae3bbf040af2ec1ae0e9f9d867620b1f14b9c943cd546840f8d167d42760a910a8a76653bbbf191185da645d19ac9bd4c8c11828b4784f0c11f45a81f1f41573379875f45be23b09ba160103997d577474630d4eff39b7de4c080c4cecf27e2a08eb51e21c93d0c7589e89771a4d6ef4a6e53c8794130431710c86c03675e9203d8e3d51bea8c28a37c1539aa1758520cf660550bd", + "083097c17962546d4f0208" + }, + { /* i=2482 cDividendBits=1569 cDivisorBits=1105 */ + "01b2546037f2bb676bb916677a743da7dbd295c5642ab2a20edb8e232d3f5825ec35552b56f38ef53c8cad958857c30fd69fd055335f2589be8ca134e6c43064fbd8c2386be71ab0d1ff32bf16ed20eeece61874b1aab55d18081939cb0d5a2aa2463e3ca3fb153370e8280ad65b624dd8b997b8b224fec30468e17c70c5c8561fd0a75a4e82772030350f889ee4b5c6dff1eca880dc96fc84fdb8c3128465df1f93effc90a59e0236708516b31b03ea3e3d49c675e383c14a9915e96bf1f600d79b5a5940", + "01824c4ee1bdf82e787cd9a2a192bd2feb212178bd6779a44ea4f7be2c00fa939e3fe3b60dc714308dc37a29ff71d3bbaf0eb4a10fa23de1df38012735f5f5f060b24d3195121aead2fc03cc29eb8bc0a0bd66d4997d95c3503b89089e10c659093137b458752b4a6d7d90d27c77e136b4d656f383cc27a920adf241980b02f92bf20c1e2ab36fd95d44", + "011fd49cca2774407dcac611661c31d3de9cfeb07fb1fbf022aaa2d993137166a8dcb89749bb0e79c9c15a1dc26bd763ff95f0882cb6da7e0cf7c2cb", + "ab463e87fb4e6fec04360107e91d821b58fe6be99addc982b0626124b50aae6d0f8a694eb0e899f031b97dde8e929dcbf50fc478f4f5abab854c5fad727d88c71637f39b1572f0629c96e2852b8111a55afb187a139ee3d327be337e11e3a5218ddf718d727db4fb37a5a636a8814d9de20469d8d55ca38e46be930cb3999989f1b88f3f3b04b3dc54" + }, + { /* i=2483 cDividendBits=3446 cDivisorBits=2292 */ + "02420214c4aa4afccc82b50cdc189d9b0fb52029cfb00292ee1b3d571b1b10e462979cb1971f48f0c54c9804ca68b9ac651fc246e65150a3568d8542599694111b91f677736ce1800b3009c85a7ec42f7e9e81c4f51e34b40bcf36be45129376b9188bbfdcb47c2c1d62595420dd5f765f183f5d8df7bbd8be5f7b54835fa3637c757df9d48542249a3b442943a2a3d3fb30aedf69e965e5773833abddd95fd70ac27ae4bef303f0968bc9448726370464587c7a7518e656021754dd9f84734efdfc92b4de14f3abe2683b27d6f88782261e7bce74b169b09d320e386a8c8e062adb65c2b9a8e764137e9b5fcccefe8b3f499f2d73d2226e51fc7f3aa0deb4c00eb5f4497ae9019f6f531a3ec61bc140258230586d641bb56d60a7ae48c7fe1afb343ee4b8502c29b4a8543a2ffbf2edcee31a15fd6e7fc7ee180aa3aebf7c4dd0fdaf5f1b9a9655b000a667de68eacc3e5e130f83a4140004f4e0a56801e7ef03022dc350818f0d3079dd972cd35758b90175e7fc2da4b61e7cec0cb46a4875fc0795c25418ee3befd292d141ef3396dd775d09255b06e4efd6d69ac3d2a43a56619beb0fb0208c4975220cf5c9cc", + "0e4da5c17c9a719cdbd4724d94a4dbfc6831ab77cebe15f4249ba59dca33a7d924ae2a7dce8b1fd9b7b4afd86cf4e5c9364825834d3832795c2de5fa92eb56d0888f81e1dcf7c1f63a439aa8f8ac7313ec5bebe54161cd2f5a6030b351b1860ddac502c0cf1b8597aa58b9b8e5831b5c060f0b764b06b68812ef5d421a05da3d052593d892b9ac4d40fd6022cb3bad03f4d6847f8a6b41b6aeb5fe02cd0a074063face5cd23cecab604a9e19551a5c5396f055d49d15a64fa7e30d0c4f8ea31d8bb1d0035727e850222b36daf8fc9c7968a128e3b9f287fb6548e038b3c481cd9386e4e15216c3f644fbf0f3c1877059316ece9e021e63e1bbd57490c03f7c6793727a9d7d57c60874bdf084be9ff7755f3520a25e8e2efd4b0fef7ee34dbb", + "286929c6ecdbd7b695e5f22b6bfc288f05828bc16f9d8298c7ee618a4fa8181e830020f3df5b983c064d371dc724aea594d80e8ee1644383d7f1f15494ac8d3f5785ed0616252cc4cd3ae58c2ec20e850a68a926725c19ac59fcee2d0fbc5917ad82fbc49ec096c056578b81e5f99328eca6b85c0e80edfaef624f01f7de274a10b1512b0dcbffcd0c2766b6f1de6491", + "0d8fcf0669458f9dc7261e4f9967ae5d2849e107c7802130e2cf7c7781eaeea69563fe3f848e31986a32390063733ee22a496c5232c6331e561a04f1e3d619d10be4c3ae44098e934a717004ecabc78d5aa91e09e79d864d05c550ea7c751a79e5fb024daf5ddf72b717ca562e991a482c5ee02726e7536314ab27e216c8e4a97b30a33a4726931868728e74055925da3f0a7b90595f5d6449c0207123c9484171bd9a36b10b411b50cac0bee1aefb9d62f318b8cba97d26b638f0d559e58c50b21f68af2c415d3b561997f7a34e6cac0375be54c6c1e530d1a0ba1191e607d27ab4fb3a2791def68cfe51e68b7f282d7dc1a1979e4e4a988a433c05e6265cb5573d7d1f04fcc47f7170c3826e8560ba311a8faee23aa2185916adf0afb6e1" + }, + { /* i=2484 cDividendBits=3493 cDivisorBits=547 */ + "19c922bb51f14246506ac330a7bb342e452f44b42d23ce788c53be701a73baf1555842d6df63d585406f60af5a05b11b73d47ea0412e6d78c29597338d62555ff099809bb1472845f2d239ae5c856cd0e2b4c66fafdbfed344465260278e55784bcb372309cdc19b9cd6d57d4679e1fd9b5971a7294dd11a69a6f0d4d7438e268b6b5a2a7622c7fff1012de1d086064cd71dea2ef98653cedda33c4795fd06ac84c65a341b1afd4faa059f5fac8440a91d52435c296319b7d07ed138855188f068d60152bb5a15e209d9d77faf387b66490097b265f044e298361472e4df5b770c65fa708fff61e652322932e9410b6e49d761546dcab50c47a5c26932e581153231957e4660ef4509bea9e0b9de02ea1065b4f68c3b0434cabc3b4a2008dfff305ee7e8466a4e9e6acf3693044690c8f98ed26d284536c75ffa2c550d993163589bed7ffbeb730974bf9e7babdfcae186955f812cbdf45b1264c7941812ed7f8d969c09243a0460b90add5f07b76c9781d705ce389e4f2ef29001b30cab6bf10e6bd82a1bc686d2dc9834ac9bd90c039fec54ccac1c2447b264a99353bdefef7f11eb93cc9e349271426c8a3af299a74d899a9515", + "02324c1d2a9a0a22d772dde8ae279814b083b1aa7594e5a8e69e5516686fa9a7400db76388815ff2d0cda46f3d3b8a400cf62f39d390a5228dc1ef5a4c54808ed57228faf6", + "0bbd554425c623657e88b06682670819ef3b6766cef5a165f6a42249607592c99fdd996c690ffafe2f3616d6b875637d2349363f271bbbffe8b5616caec78ee37447583278c69d41c390dc2efeceea40bde44e9d711e9d45b5f6e8cb4c573669e97d5c39e47695fe76b327283feb208b97c2e356cfcef52c70c1318930614158fdd72600725cf9b540880e45a240a67300dd79552f4f191149fab6a1cfff670242a2d948146211310707e6ad77eca73d12bfd26b78f27524efb0da75a75101c31639bba9cba0cf8fa09c67209541f8d4787ef3dd0b8101de04b5eeb487e37da155e0b5a5dd84ee3eb088ad3d19ed09fe5d699bb4e173eefb8c358f77f48327e16f48e4bdaf6c75e065fe296aa2b289146c775d5c3d18495b7b78fb1f96ac7841b5ce2f91a1d030ceaba7ee5a6bbd471418bc76ea396c1297c33b796661640020f448411174219346602b6b89b50d18719f92e50d3daf11157ea769e4e406045aea888e610fc4592e65d5e31b3414ee72e6", + "96b2699dc05eb7ef518304f0731e1f582a17ac2b528618c8eeff99ba0ea4d0f64cd677479e16b2172961f49e9a0b39bc1a62967116706e5c8e63c0bf9736050630539011" + }, + { /* i=2485 cDividendBits=3776 cDivisorBits=965 */ + "bd7969156409913826f0b341d919568cb9a9daf4f2d024a867f90a57c255380ead040f14d1b466038b996c3659bcb59aa9137a559528f9bc5c2ef92af3d433a13872b01d5305f7550f6f12f300cb8717ee0e3f9c8903ab9eb6b00b7705b7dffdfe8e462f8b0731b299761571c9d84ea38a6b8975ee80b42207aa86503c38d44c1a2a961f750b5adbb4cf9d58b09ca07466036f668dab56802224f2ac75e0f9f3d200d00e78608000534ee8c918921a85ce5112e32ceefaef9fa4fdbfb9473ace39dd4b6a27f6918ca01e384286536bf88d3c949559c7efd7312674cbaea66d6314f3b72e7ee7d34a446aa51a6e615eee9c1827218f8cfa76f5bea4244eeab2c8387c0b6700266af1a3efddc672d2a7028aecd58dc21000b725a6e9cec45c5eba23c6928bd51b0b0a95d2cfcba2d6776d038fb514c5bb276545df511eb56168821976fe7c19b0213323eb7033a3ee51d6188077b18c2038374471717840741c1cf639fb711ba67fd4aa2b2421bff8b72227825134c7ad1bf1be81d18fcff1e659e89c1773eab9c21e0042733fd981967531b776731847a7cb015df41cee7a6916e7372379e734531d853e5126747dd8ef99c03c6fb87d701e1b60a3f77016f2c7e9ef90257c8361f4e212ab1cc4f5b69b49050f70ed72661e", + "0f2bbcb55e93d0342919f5f57561a0f1e75c2d92d2c42798623767f5fbc22cafc613c5a4d5f3441786b62df2421ead776176b20a76586475f868857eaf976f510b07cc1e474611d3e7d90a934291f99ae0728f5c8e48a61092f5aa48d5d2537b8f26d117f509de7515a1838a1946f652a68965273430933fd0", + "0c7d4705361cf0d0b7b9297d62bf749b408627b0365b685a13f681fe35db0149ea75252d975305cd2cb8f5305b68c262f6bca8be5efe997c69f10f02510c5bdc2d4b308efe21cb63327729048749ef5df7555d0606120ca2b5bb892266ffae7472e67e7e169ba29421fc7a144e210b1b4f14a9de25b92be490619fd0e9b0af36a7c58c4d2685f2a9656a7c737a613c3d9482cec165906cf36d2e005d6b3291c7b58dea6a88f858beb02021c0a9bffa94e27b045e9dab446aff1b49f90aaad960291e1d4e8b3039c64b41399e6f770483edaf56fc265390acb550683b8a11079092997149d381e3fb270bc141c361940ab47cfe4b21b000c7cc5aef09670903a7f9aa92e4b0ddff303d1f33fdea89e73c424628cb3a5143fab966534f76945a50df9ad58717cae794d8320ac4e6a96295b89803ac4966f3e7bc121c8e9896b2c8d002900687fb589f45bad7d86b016965ceb467af156d1230ccfca0f47e4b6700", + "051be6786da287a487bac0846cc28c51360585a7db01e8702f891803cfbe8e1b1862b7e3c444e704c3d078ca7bd172587ba52a1b0fb26b8f0e5d988dc5a455917ad4b4fc640d262be1bfbcaa28821868394abe9a7484194a3a693eab8a5775a0c957bcedd6637f1e58dccfa9fb6ea2f07e851189199cd5b61e" + }, + { /* i=2486 cDividendBits=3895 cDivisorBits=554 */ + "38cabfcea2e474a7e0cbf81ff3ed42bd829b2f6a5c884ca32b4a592efae2291f684670215473d4afcb757e141b8e55641917170d45bdf31532fc9fc2b5654abc2ff42ebee55481459aaa9c17976e7f6989be27095b7b2c5667619f3609ca29f3e8e1eaf1a64fd18272066d2473bdb4fb2e048dc9aeaa2b9caff9275fa2b2365da81c26a6e567822bd67497393aeaccbe579038996043b010fd4f4e990376d36f2cc97975d913e91e557f0bad10acfec987788b86514e0098d0dc0df299385e279850c01b14cd12850a76d496a88f6258717a6bf5c6df619f726b8003f47af209e7a97b19dbd901aea018e7b108ec8c3f3ff53966d6374fba6cc1435917216d68ce8e4fcb5e56b7b4a298cafad3e517f824daff6aaf58a34547fc2c8e63bf10b7594b671b7e7553e3408c6a6a0960304d5acea789d46dc373bd30a6e325a7ae62e0352fe8846c12ebde2cfb708580a2ed9f1f64104fcc0324b9afae889f6e607581e8602a72dd95fd3dbf4c3989683b8873b900f8e134912ba85e15bbc004bc9813ecdb166782cd92f8a91dd8f9eefa00c24ee2c7c14c7f3c15def488db5b5be72d7423796d746fa0bbd4210728b83fc2dbc885d73e0ed09983238cb2d5834b928318ffee341a3be6f7c26ffcf14c28b52b523082bfe31023eebed599aceafa2052c75ed6726706", + "03f5499a1687c176e9e5f134fdb99fb382775e7881db9b2d13470ca3dd1ba9a09c795f7cbfcdf5072c3c7a87cd3b3a4b8a65dba4422eef7054b873996688fdb0fb169213d3c3", + "0e591d0060cecb815bfe20a7410b163d7f10de3451b2de5b936b854a34cc39c77a4e8329b89cf12f45d666ba3345c48e0b5daabd477276a6a37aefce3e71e4050e7b32f5f5963631657c5b14261fdf694f1af49733464b7587ea75a31797660e6376cfdb03d164812ab8dfbceb0f10dbc5482eee1b5077238b1d9e4f274655dfdd4283606b8a5aaf299beed9e4ea2bab465321e6b094aa47897776ace043a08897dded0e03226d96ca92113a3aa8b1453ae55348e5ea26da6d31aef0cbe58faed73db03b56af53d62fa9617b5a5a0da3e6b8033a240b0a5bdf583c7e8471607f1516159b9b5ef6ac827042a36d802fb775166746b130c3dc70977faadd4fdcd4d84b3df6c4725f5118ac7892f00c422f78d3c9d134ac71a06827af9710fc5676ac9a361869f25ba02c4c38a3e37f67c63504c2fd20d70507699aa7b7a0ca2d47b0b17bc0204a0c178467f426421ac71787049a0bcb1f1cfcf85f8348e8092400764f1b104148455ab6041871372748ec9023ab301c737b16f8c3ec40ac88c801aeecc316b1022c23e99144777fabd3ad0549d5d8cbe5a8055b80df28475f70794f40", + "024c1e8c89fda38fe4b1df1bd273ee2f3c473d030f7cf5fcbb300caab521169ecedeeb7776b26a577c87b232f943ef36f92429bdbf064af48e1ca6dbf0fce075a844cbf94946" + }, + { /* i=2487 cDividendBits=3455 cDivisorBits=1206 */ + "331d161d36b8b6e12c3a02d99f2a4b8084fb1373aa5f439e70a7931ee39cb085005dd2191f6911dcab638b970312ebd896ec8df5d6efb4d192cc72c0b21bdecb73790dbfddfeabad605faa73e99d5256dd3c757860825f3d19375e13ff8bab129ad11ee93716c10253dc2499130135b46af3b35651a44ac946cb8b7a5467087c5016886b499709481ac8d88cfb5e7f3eb629f1970180cbeeb1e2648346cb2f47d65321f2a376321923ad611f3a6c678927624d17ac3d565f2665015d9499d2ba2f9a912a41051b753abc8492e44756fe6fddf484d85ab70c651b3130bd917094edbd5ab153d185e68f84cb7ec8802fbc50d94bc3fc0b766f28be078e007c7084f3ee0174b40c3a95c14857c33917b959db8a06b2a271a875e1f8472663190165cdb9fa2b37e57703b75065b6333f397aa725d42a029827e5b29b50c18693d2ecabb6cb7858e106fda76a27689508354e534fae71b94586b5b2ce6ff9b0fbfed4753df0be1af61b54b6d611024c3b5485198f6697425928ee4fb72eda063a02aa27fa81ed9f65939dac211cf98be8df0c465334de150734958f318c6fa14fc328b154480cd5655a1faa602a8088d9d9ad", + "02ecf7e8f51e9d2a5a984133ec6299cabb8a4d2f845c2b1f00db5429400a7726be99d6a9d54f22852c0d1d011448e7a38b181b3781e86da2da5c12a26d223320c9aca4623ab86d52ae708cf94dd627589b0015ebb53c50d0d97279c9cb0e5052efe59a48e2c42254730bfa030a6a420d1d6cd1d23aab644b621f2a935e172e3b6e10dfc834327ef8f7898353c339f8644e039ea27ab834", + "117887295c069586e712e266a8d44cd04124c1426d4dcfe73159ad2f54927efed8b9745638fb5b959f5c6a51fbb0d03a4259d77a4bbdcb8617f8ce3adea982d6704ccfad69602df6389d966de519cf8aa0f38a9a9a9134ca02455e9ad5e9e491d9316e72fb3f06067598a535237aa91513b9358847876871bf895bc044296642e984e9047fba34da1761f39c3f90d1c09609fac8c9924e933a6b59d5332848fcca567d75c4c27c043f2718d9e0e600aeb05ff959349d7cac0728a74493563bf2ca70c13ea5a51c5367c88be277b04ac8551b81d2c53af78299b849629c0342f33aaaf3c85aaba6ec8f6dde7c6c13dde5ed598c3fbda7469e2f23252333fa4e66c79ccadbbb8defaf94a606af818c50f8aa40dcaa806dc8832cd3", + "0194d5e21193caab595b2ba41e9edf467615f44a84f9aeb5c4797489d9f4f93d9fe11f3f593b36fe75a4d1ceeed19dc7a3538f3ae1c289cd5c821d2f78ec17455baa22339f56dda161c412e59254e1196a734b79ac09fa5ee35dbf07ef8a1559f839c2d3a1f6865ba48e6375a50014085f6c424d228a25cad753057ae435c93abcc3862a278f62f1ee83f343accdd43f7477faa36f16d1" + }, + { /* i=2488 cDividendBits=745 cDivisorBits=283 */ + "c04cf90fa0679be0b205f01491d1b900c23767a2dfe45bfaaf97a0657a9430f5116d54ad50a520cbc5ef126d76187e70c8c6734ecf690d42005c507dd6b5ab38474698ce767bb055a0f6afd0f54e016c9a3547d431cd7937db464ba383", + "04c230f62fb3d5b58e3b8eed4dab5b9f1ec73001ac7e11f127715c257c59bdffbdc29545", + "28695a0d06a998cd521614fb3a481d10cdf787088fa4df7acf14d20d2526586d504cf75458591cd5f3860bfbf090d02fb8df653c4cad217a4216", + "0358871f5e6dfde473d780c9587cf0d230347c66abd070951e933ae44175155ac5350595" + }, + { /* i=2489 cDividendBits=1234 cDivisorBits=189 */ + "ec98a72d0ca93576e2c822d324754021b200543cd7079c160e64dc1fbba78403664ac0a5a29a4f475afe27589199cc34f75f51dc2a35a145f1a9fedf4bd06b5148df0e2a1227371f8ccb15a9ea0524e5f9bbe2e63cffa5404f6296f6d743f06f6c452e1b107207842e102ba5b56d41d8d4e88a3757305c56e2e76ba72e4772dd34e9c989f3a2b89684b8452501e43ed25681772a5cb44012b56c", + "0b5fb8f2688dd2dfd8bd153c9fd95f0f9cd12ee52eec6e31", + "14cd396c8b9aeeed983452d2567fab3e139d4a3c8d6f21dbce140675f1a054e7ac32742bef3553debd13863a0996adb1fe0d2d67ecf33e9314ab6c308d070854ed8d3dc4c89f21c5561166b65fc5734c5eec53e34a4b8730be749355133c339267586134053c864279c5b0a2adb012ddc644f44c674538eb6b51d43305fd78e3cb8ff9", + "044649f247e32c3a9d19f2ea9a7f10501c7acb6ab6b328c3" + }, + { /* i=2490 cDividendBits=2752 cDivisorBits=560 */ + "26d8ca4a9220af597034a3d703306bbe48591ec9204f21d7f3d1aada0f235a4065b8e2b361644c96d7ef91ecb6eae5add3f1f0ea6586751582d881c414994cbafcbad9905f14941f076e6f62ccc65078b61379705a0add39e102f7d15fa927bd4b33ab1c2161e364d5b6a6670a0f142ebe3824be9627ea4b5e3cac614c7931a7c3784c2eca7e0858f6db94c9df10672db2e949625fc36a4aa5beb3b2eb22ac4f1e02fc6bd05741a83b8e293315872ecd8b7138e2de654b70804a557dd1c41799af4e352ee5647f30389d46cda7d6aec00ea7a063c8a786adb9e0424eff6e1bd7f5a085e19754792c709a26d78d82ec72d017e470cfcf6e7cdf7ee60a4cdef3dd785b7bafe1e6a01f52bec489419908ede403a7daae23e18e53817bec75d96649863ab17f558cfc08535794f37a558eabbdc9f946bd8cd20276ee9add520d15bd3017a928cc5c3ce08b4f9135048fa0057c84fcdec25b8970", + "fe3694a2eaadda0261128bf6d55648bb4a98377cb20269246fb93867741f1114c0a6b99c04c60a0b9565f06e5a6e68a1e46ddc13a58c91d4c8f4fdfea2adc93950317f9057a0", + "271eb07bac12bcc29d2d4fc4a95abd73227f681dcc7e62b286b9b35f34967b0c3b005d3808486daa37bff2233156b1739441e60d6f678624c0083d126ac39e791f5c03e4bdb5310b67b4cd6be06e7438bdb4ffcfcfbf28eafd93795c3482246e684446b13023ef1e64b16f681316282a03cb13a453042096f9016cfd4bd0766674558c9e28dde02bbd4fee90ae718279428486037998f22676cba25c22799d0a9d836098c7fb3847b83bb3122a5d0b73859aff75146303bbe5784a5b5fe30ea40cd4936cb5a939839b2458a08b861143b42d87441599ddcab153a9cb4f4e71f5750ce31f58b1d1249dc8660150af500fca3e515b34a2693b437a687860bcb501473a2a784acf7b020df60a375909c40bf926", + "eff0218fda685b2605657384cc897d6bae028e629faeba40990a5862df3db812130cc26dede1a03f9c0b63e6ec99fd05e333468de3cfa6b2f123f716845ec94e3d8829d3e7b0" + }, + { /* i=2491 cDividendBits=4034 cDivisorBits=3377 */ + "02765a6d0c1ea07e43a6b5ff7b0e326c99735c5aa5bac530eea8c63affe78d4eed440e59d4d5cddb4f5f070747b1048ced9b00d886a35aa43bad501e9539c49e68167b3d26d2bb29539a7246e2211cae6a89a5cc8bf63c18ff205461c8271dc8dd71b14244d00e8816e7717a01b0c9d77f9cf08792d38949fde5dea14455ecb66b65244a9f6fc4993843a4771cfc7882808fe3c539ab89ec82bc2e21f5843b4eca0412b415d5cd0ffa9b2c798837e2b671403085988106177af160fe3398084ba6a35a98c662aded693cf589eb743e6d458b079fdad4f116754c5810f63ec80d99ae73cdf1caf6a4cd8cf1f3b26cd9b98a4915f934a1a7c2fd43d5df391882af85adf6aff4578e5397f092bc69dd0004ae9a9c6ffba8bc27106f7b2cf026479d1882eeb943a274b2d0b61cd39b5b4af5e35b81aba249f07e00dcc5de2e2625f89110164a9cfd4bf8b10cd786d08bff5bcefd744816c864cf84f202caacf35ff583147a07dba3c8cf6e077eabc1db2741e84604c7fbae5a2347879803af79a74fa72cc3f05baa3b5ea3a2e76366f1db45ba3ff833ba44dcbb3650e0aadab6921ecb89e59714851fbd98d865ce6935edbe04e05368d9e1b0e6f5bde33d6f5acd42f1e9187b6c6f6bf00e527d86ee22aad59dd2379b42478c4ae852af8070cb22dca20e014f5ab2a7da4f6001028021db0e65922015bb40dfb073", + "01e932db032b3b25e9570e6aac41a7761b779466cdc5c0c2f3e84d7363cf842d3cced01805cfeb203f9ce2539cd9289987685eb84242d9220865f97cfbdfd0fbfc77e664c34a20a503ddaafd5e4f767f01a525cef70ae590db2212f1a31455f181d2b3d6b57e5a2d2b5e40493045721080010f20e381ecf4d6bf18874e901a786322ce22ab6b3837929079322f5ea92eb31e223cf484951c5da3ffe9619f2641ca7312fe980403cb2983bad64eda476b5128c705f6aa03b1b599ab2938750d2ebb4599a690513d05973c5aef7d98aff824aaa0cac962d387f838e2e0e7e56237556f43426c1f95a845e0c948e8f6f80ba3fc210b7207095eae38e2893d2b301d388ffbe68ab6586d87dcf8c44aee8395cdf77ccba0028fdc4c98d9fbcccbfee4fcc5b5852d59bbabb01abb5d34b970ec69876b3a4c7b857134ff8b6c6ca02d2598120d8b07123bc0bb7f9327ff7add698f8dac625f1274a899ad0f8283a56b0b7d78669dac4960fb3366560e549581d105cf71968a7160b0eec5259508cb68c33dbb78e11ba1ac446e81d673adeb366d1a23d0fbaadbf675b571a54140de5236206af045b551bf", + "0149ddeacbd2cb7fee35571adacdd8b8dbe26e3cca0a369be3940d1acb82d9a248326632f2cdc424a6f4d052b35f23a8cb568df9c7578af62438afaa22e394a1a6b5c2271458399b8f78bd38098c2225f7e058", + "207a1a35023e389e78ca1ee9b2baaf9dc7a1ad5ec60fd7438a3b2a2880cb3cfe707e1f5dd5fbc27ebe7c84ae246ecb88436f6bb52cf67767dc4e5636588f0a4cf313ce6a044012cea99616184934368403a51784ca6010210761090ae9a1e3b6696914570d084915f888c4d2f0c76279d5128a1e4086d79540f3a9fa13084d80890f87d9eb7d8296bdb6a02fef72b106af6f257e5ec4d093d28928a8ae5f8cd1ac1bf5452f417042bb5e3e14f3dbbeeb01e93162255a9c3c320b07497fdc86e20f225f2e68faa1cc8c65310d55aced30083669f67492772c5c03af750a49d62364be4a6210e668c6c35f82c354493d4539e4495fb9d7407c1c68b213387dd4567a1502f8441bdf1ec007735a1437f5bdb04a267bbe550bf573e5d015e765249c2d7ef54a83c3b7fa3d0a9a603d00f6d2da673cbe52044d13a430adcb0bf01cac17f041a31657fe98a468a8e329051fb28f1d6ae76f308f905747ef0d4645f044e24cb6ffeab2892315e9f2a8be4ad527b4de27671dde5e8aeac4493a006317ab01ce2b85c99a56090ebf562427990832005ffa17d7cff8835f748d8630bd9f02500428bb76cb" + }, + { /* i=2492 cDividendBits=376 cDivisorBits=100 */ + "435665e8f2a5fe1f8cdf629dac0531b69a68768f74244302c124c698f5279d9f4e8a1f84348ba1ebdbe90f38d9ad4f", + "0591b2f4a9fc12a414b5e50b89", + "0c17583acd94e91bcf3eb0f8c9e3e83bb3bc6dd79adb28e4d1e1062f9cc6cb6ac7eba9", + "0462e79e94b57c3cf4318f4cde" + }, + { /* i=2493 cDividendBits=2593 cDivisorBits=456 */ + "b37ba9eace1aa33d5a8759bc63f0681bbf1bf803e703ed92434230abaa374e233d1f7561aa5a2243574f6fb68a6621972a89f733eb7bf773159243d689df1125c7608bc13ae940f03958113df1c4e9311b440c4c0744513c846cdd9b2f96e347eb46653601c030295726cdd2e3cd1e327cd82f5ff5a3cbe410df84fed3d19f36b7f637c0bf1b47e1c3ab31a2210ecfc7daf7e864cbe6b2c1ccc4622ddabd3501c2adcc6919e4bef7b95b0108a4b3cb48be54f3ec16619d463f8c0b16226ba4cf184fa5dd1b2ff534f2c91ae018efd80406145aea8e344cb50f932adb1833f587b8502f8b163abb7c073d0736f668ce0392ee62a38611ea1ffc6bbeb7cb4d135af8cbd0b3c943a0abfe4985d003ea00e4115fcf4291bfa9657003a6a8dec9d313b1165940f17bb1f33063108e6539c62888ad6c723833efee4f24d7821dbac0431475dc2e", + "598e2f1a874d103af543b3959e3ca02b4a7442e5a598c774979a31d9e0014700d364997bf4a56cff965ea535ae01dc51236e086ea5b5354c30", + "02011068bc7d199bfb37fdfaa2be8cbab086c63fe215f706ef1bf08ce86d4f7d20580cb0e7c4e673f5482f6a53acf41c45b0c47aa26de0114fbc9cbc303459f1571b80d8addd4e47c6898a31a2bca654bd452ff6d2c149b8fd5e45941ac49f3b6e7a2ebd56cc1a8269bf238cc16861d49929a8af682a8ce8b2ae984bfa3340bbc8a9aaffe4c1e214e0aa6503908039115edb71661795b1c759444c9f48e9b6642a72ef9e25771e7529cc66811f54bf073d31d8b7c6741f1f0ba80c8dafa5d2cfa7e1bcefa953058f8c03480e287f6ab38f8b3ba171778048807af8cef2e232256bdb7b41205861a09e5f800f90fb2d6ee0a67cb9b11edf77850a3ae3a6e6f34b1606e45024d465065e317c87", + "22b13d7f7ab6c0abc975427cf324d33363e88fa5ea09a88d6e0900a109bdaf68899e1a2fca86c6e01efe68087d3a47a60edd6028cd7f436ede" + }, + { /* i=2494 cDividendBits=2804 cDivisorBits=830 */ + "06757c8420101ecd9f0388b0a48aa513e343be1d083ef4467d8a481f92fa79ce55a1d1af943cf503a04c0ad20a7a520343f18bc0505b5986027e9eda14ebf161e1a594d2a9b94abb4ba2aa9e11dae9123019b1bdb3cbe8b1f56e1bc68d7c2e33c0e9162f21f77e18fd3c72d142fc1de610bca2a444d2261a0627e67af13383fa3a9a93e1ba3d33b6251c21bb7b7cd2b9ac695f0b2ca5b5ba0353aabe87bc63a036612511f81543b5db8a34b330933d20c2c43f8a8485dd0f49e33ee2dbd02a07c190ce182cc54b58b9f47fee63fafddd82629c15ef5006be10664b4f354384aa90491355063d8e0b8cbc963b214c214ee6f789607d886c3405536383b8bef2fc22e5414a2b53a851754a21c072629050a94dde1fb3adfc82f1ef0eea695cccb5d242f504f2bfd11aba8baf01210a332d8b62414324a73f0f345f1d455494832f04506a4d28d3d02e69cb32cf68c50e3bed4a6576f4dbe84fad4d611224d4be", + "07fe5c37cf64718bd7acdc2cccd39206703af74d0a3cfc6428fdd07dbc18a285e2c3ebd332a25206f78c9367db3883c4eebbfc3419342ff35cf6ad184651758818ae698f748a75a1867dfe3406f4e2991841fb05b21f352b45d3e183f91bd60ac4f6f1e0531116f7", + "ced9f694067309f825207452db77164d757d78952774d5f395e204797a3c4759a940bd7d4a2ddd4dcd8b6316f38126ba568a2f28212e16b156e880e171077fc2d84fb8703d6a34a52829dd799ad0c1b800182e135c861d43b1c5902e353be992996222cc8021c6b5c21ac94d00d8d021ea506f20e40271496d3692d10cc12986ab94b60eb69919e2066ad38d5b8b715602fa7f554089556a8d2515951059583f3d064f1221949751c714f3a9aa446a4acc69c209e1851899540975bb6258abbacb559d4ba971d82e227932d9450dcd2fabe07c20c305d0dfaea3e317c56db6505c536e747ea63dc22a41fd86bd4fc245b1f8cd8119882b", + "03dcd653489c344b86b7564ad2ed4f713bcf3837d384c0ad8b119035a9f80658eeb7414334fa9628d03dac75812332b716dee1efcdfca64666a11f1dcefd60cda7d76def4378230b6953aea16fc91852894418fe7b08abb43cd22a936351d82bda3a1b8954f3c141" + }, + { /* i=2495 cDividendBits=1902 cDivisorBits=883 */ + "16ad3f5d285e2363ccaa22c9389d8819021fe207ae0bd214d682fe13701b01ed95ac351eecabab90b03bf70b96594ad7270178dff748bdf943df52567f86581bb09878fead1dd73803c71cb64873a3a977462f92cb7a772646399bbc6b00f0c612ca9d3870ebb1765f2a7b297ed9ca8462683022da5a1fef81c1b8c3eeab1d62965fb33c87d124acdc51242b2e3180d84cf3d241add5bd58eb58258d2f07ece9678ad98f032ed741b5888c1938faf719795dd07d379c2e9a59f4fd960159a0929c253b928c6971dcac70aab7bb4756c22feaf9e91cfe8e838721773f277960d99e2963a7cd08899cc77bd7902a44", + "04bfcde0d8635adebd0fa5048d4e8b4f96a41910e59ca7a6c6a463a65e1469f0aa7eb6ba4a8d07f0989ee47cfb9e8cc9d2ccd547a4d77499e8a7c45e64704f9478e0fe16666f0c1717bbe4a682eef245d99ce96e8a034a367b8b3a1edb2a9913ad5f68702c88f1301e317062540637", + "04c65aabb5e65ce70a84a73df47c1f41e5ea6f20ca5978c4152e75c3963aca8e06fa7d392d05a66047ad9ceaae2317b33d3dd79bf54dee684709d44c99adb0366811794d85cb4e6dd17428ae052506260623412736cf1b087b5eec7214c82622fcdbd4c1939850cc5e27b3e4873897ceaae7b0d8a19548c3d299083dc2d44c37", + "01fd209d7e53973e4631514399da56f9c25248465b31ccf96dc4db6f5d4215d061c05053e16b660db071fcaa25a90aa14a8056905eb08573a245821a35115c085cc3d07308a5d4554428cc535bd9f0688cf95ec8b6d70290f2bfdaaf8c38fb405261b600e7dc663dc77dbff21e8073" + }, + { /* i=2496 cDividendBits=3375 cDivisorBits=2444 */ + "1cfcee2cec0d47e833540ce501efc7ddf0b97f10c77f811596282eff35079f07a287cb147a7b99dae206402c04bcd38a64921491d8f6e64c93ccaaa8c1ee9832adcea0ed9607c18917576838e9ac4cc89ce549e7f39db71d721e083e3a4747435296d472d92f1c15617c0c85e192a9f6b07747e088715afb004efdf6f6882b598ca584116025f3d131010717c75396e5e444743c476564b7f4c7fd96002dc221d01e1079d9b238af6c1d0d5f5fa492edf854d17d1003750f10e29ab9aa88cdb57eee8a0ff01dfdaca52ca17080c3c9005e5d76b1d0d7631a22cb9867d7f21ae7837320c4b897a728ec4c1c1f40cfab694eec91b4e5ee3d0c6e086075112c898829e8aacfec23342b9b236103007c8792d84697d7fb65798834e0ac1d87cf2fd4d21b5f873f6a73d126b63fcef07a2ec2bb7c6a919b7de7f1f0f822bb2e88813d85a397f6d3ab13adab173eb74cd1fce080a1b5302a863eb241fa3c4cf8bfa631ac4d0ba9f07142c926de1640004eb86e48f3a47631f5ac6b95b7af518b780cfe2ae712ffa6d9be8df73a27ef762c641749d167e3faec971c5db41fd0ada738f76c63f51777a2", + "0b381ed6501437b56f53ed9569578cec26d18379b1377dd09b9a6e6c1401ad47dcd17af52ad6cb7ee26f9e7a1846efa1b58b8afb329ffc9da37e2bac5a008327c6b4c0c65552812f6d71337dd53158683526cb76d04a3961ad8f2bab0548d2771ce95f04cdd80c548e84544f3618bb4469c03f6c8219f6a4a095632d38032755a16d562ed9d0ec1f1a1458bf88d4c6192f028fa49265edab857076c8eb92e01dc8a44042dc5fe3e96df54396798efecd3f471c65bc54d266c40b24cdc862066f116fc0f8091a6259e883e04fe21b0e3b989d6524d02a6e36d5cf89861f8ec689921c5667a4dd16edfdbee1c62a94be52223b20b2a0e4a5cd3e9183bca88e4ff53819cc2788a0743ac2ac3d3e789a81dc12b7a76b50c08a17f63367529175fbf3cca337071b68bb7c9cffa6fe8d603360e924", + "029572ac8baec2d69dae5aefd0870cb51fee653071a137f91ba3f78e24c47ae641f3d6362648d35d01222227ba8693332b3bf907ace6d12cc41dc86fac9d831af12f97bea61c402bb38be6a69a3c66da89ef12faf5ad4c56df940c3f3783b572bc7a51210cf6bdd6b8d0017601f88534e1467c9a94", + "3e5ffc6912d018b353fe9477f2147a7c4c474785cb271d7128e8e3fe725b1b12f26cfbef3ee7fe71cee39b8ab3e007b1e927be14a008d93a9ee9ea1e55e02116f3a4abeb3265cd75b0ef7740c75cc698124864f4b2b97f5b249fc8289dc0fad8d4f2146e0a68f3c702b91d07d0b6443d8477f2f2b4eb6c5edd9b155ace47bbd32e2cf00458c08e12481aa8c64684be49fddc468ea74d4057771b20c46cb38ff7374af147f55fe0b7729332a675630ee68f39b789c1f8221588594d67ac0c89168089c2ede4c980cd29b995f64fffc27b049bd50021d9b8ce7e9a5903bc359b1d801e07af249c4ddf768b40471bad8a8e188812b201e6b863661c5a1de0e694461e3c1f5efa3c172d2c98c82b8758dd9cdb49b8e478d691441350ea81c6ddd3d15ce81adb85aaa7c11bece036892f6106d2" + }, + { /* i=2497 cDividendBits=3251 cDivisorBits=1229 */ + "04462ae15718903315c604cee5912e8669fc01e07756a1ec67d3c6c185c562eede1c455532c60204a9543db8acf510e5dc4c78421db61405dcd82f8b15e08c43606ed6eecc216dfeefa0ac033440c82236608bc84bfa97ffa6de3c1719f563decc91cfb10843b6f39419028d455679334eb3817943fd2d5e2436682242992cdfca8ec62829067ffc4af11a0d07a48624b8f0d4a717a9f0b4eabe4d79a9c5354f5379ae5cda1a68532a242d944265c7eaee60c3d58f7007aca8414ca1189ff7bd2c0c0932c2ba20c5050859117708c1092d4b41e61649002f621bfe33811f4186b92a5993c94a2aa8d5255682aee0eccab916306681c1f64ad7f267f581b7f8500ccf021917b5df5ba02bfaefaa729b5e21ce9553f0fe441bb064fe11aba3144d81bc76acefccfe3334b4d011d88d980a5f1f6be7487eb64d991276b1ab107b9455e619b3e5c7f8b3cf3a81875f23af027ca4a3eb81ac0191c7183a75ae203ada005d89a9c3e31e65859be2482b96b32c9f9cd4265e91688aa493dc4fa10c47e1a9c400c56d67ce755bb86ce693bed59781b2bb8ebdadaa", + "03679b028f3313542fa2d16e25ba8f6d306e76421e8628ba63eb0f1df5555cb060dcd3b66bd97cdb16459ebe44ce3733b6fad9c75e8ba60ff32c6ad27e005314e5980226754e1580946ac374d235650411fdc0494b7246da59665d7fd1ac91f2a14bd4ac547ddd9dc855885e38bcc2237dd0d44bc3baddbbc15b4e20ed04c60e4fbc058def4b0982e2a606a42bc3613910f523e18dc6eefac813", + "01415e6e7f77d0ee95204875b0ea57bcc6a31ba5c1fc142903166258e7a5dd410e3e7de84e12e2e909c53b53bd25a5f80ab6f761c38dafeaebb87fceecce28f7591a7bf3c48cca0c191ffaf8811fd4e9936f69194ed843d28af53d9d5804cee21626980cef2566c4acdf0e203fb1461e1a31fef559f74929e50602be6c93bae84c41d551993f83ed06f61aa58100766fe887c4e6759271cc8e5c394eb668847ef4e43d6bb6f0837f142d165d1ca80dfd5a12e5bbb7032b88f6b1ed0142c2cdec0b341e305f6025f0aa867e6c03179ae1a4489b272eef3411b38191db5451dd982e1e9ae10c57eddc9b0823a1ff79e3f9d1d4d501a6b048de0aa0ff1dd1e6", + "027f925c07b5e10148ef36f2f46148a5e53919b04c97ffd0aed0e2251fae3a5a870a0b1ac93acb17f7f3aa45157a809ff3df598f179c5d5aabd557c0867463c99fc9e0ea879352e40b339877f3d7c88e40f83073cddb4c4c2ddd91685ace0aa610c2b08b3a40ed600c2729661c217d23e984bf6e817b147609118b7da0cb09a66db25021c3b0a3880d0f26090d29387e9d0bfd803f5284ef6998" + }, + { /* i=2498 cDividendBits=2684 cDivisorBits=2663 */ + "0827cddf00147330472801f6e6fb4426c202ba283a353471453b8fca3803f40e7e9e27d9d3e4401a6459cbb591e070bb6477d1b29ad6cad7ca5ffc139646e7c283f17dc6254292261ce146e45a91e5b64c43818c922304f8b6ba462e22881bc5e0245bfe2a407ffa81b12c06741d76f5ae73b35282452d5651e97829c6bfad38692779934211dde0ea78dadb319e8d7781a822a950356999ddf6dbd684e746b3710b487bd3b88f61d8e85b05f04ff2f8d45da82000ff19b764aa0e63a184788586d7079ccd6d1f4047cade8c7c57bf1904fe11de0502eb964bdb2567c0910497169e30bc4b47fcdf2f6dd454d3c2428638d1a42ba87780d0a953e71bd212e0449ca3acb5b0f3b40b6244b153bfd9432924cfec99084126c6016778494602afd1794db848bf7e6b50286f3ab0578321d66ff59088edfbfe69e144ff147b464ed804cd9d9d383808030363021261d0a38f", + "709c8c85ac5082987b56c0fb18808b33945ad168eb5dfd9e2048157301314b138ac9ec76bbaae146ce831f56a16be2ba682abccc137e6028d4591a21806b2df194d46460f8ba6a936435042f3da88fffeb0acb95b3b34886a3531e37de624136709fea3392553a7538866034900b6a66479c3b940ef84f2186c4524235389b748d139fc5d074146dc0f5563bc6b3f6579569302b63cd3e624e60dcc3edf3beeccfdb71e6f66cdfd80e1af1c98d164c53fbd88fa366da6ccb7a4757cde79b40e9a3f4babb09a2ec82f1a3b536e584992caab832224e82d8bffd34433f62f081e8caf2b22bed9f035c759edbb5425d56425eda6721979ffec7ebf241ba790e48fc680baf7e4187e02fcaf9befa598a9028355b39c2c6b82b12c8577454f2e137eeab64339012056d7d7dcd07525d47ae89aa935926bd1c39aed56fa667ee3d32efcc1f19de43c2edcd4c242042c1", + "128a35", + "4970d039ee7d3fda1841f308ff7af4b0c329beff36fa375abda57f08f571c818a434bc7d4b990598117056e736bab811d1a25f25ebeb86cc3eb2c7352a92bd50693eb74eabb4510445cce706f4c7f80fc110a78d0608a6836fb585c12e8d6022012eacf2a11b6cfc1f13bc2180c540f016a311fed1e5fb13a622494cc1b238ea8e28b361b62782dd97b69268ff4bf010a384d432e9d58b71dfaed94d9e683ec725c14f3fef731b2093d9af9960299548253ff1780737daff710d0f1350f6ed119d5343bfccd93ffd880c185554db32d7b4729e4b8eddaf3b153984a652e5f6875cea019eb8f39f1ce5c1e56567bb83698c7c58904323384a0c1f6f025f90268287caf3af780ad1d23f7e0f6bcaeb8a6c505053c15356466f7c7c0e5631ea03df2913e37ef53046049b2809c19cd49ec085a4590bfda612e5015b0c0ff307a3bfc53548c82f0821eb90d194c79a" + }, + { /* i=2499 cDividendBits=4022 cDivisorBits=2787 */ + "16f1065f75c6914f1b3c79940747ef46e5f5de26c9e38e927e427cc7cc706ebe225cfc5d6f615e5c958c2e2231150a89175b98ef25c528f0a987f6337a36577cb4ee5d9472b57ced596c8fca0b98341727386e77e84ab1ecb02430ffa9fc6693b9e412023dfe96847ecac47dd4ec70e087806f702ddf41c3e310931f8aa3d9ee747d0e3ea20c71018ed8d662bbf3b32c60db7e5c1c81bd84aaf35487d9470abe36d7812e2a85faebbff817fd270cfd244b781b3faf195719172dbaa7485371ad1df6306f1b729d8df9a42781037706dc7778ab1a4d5cdd5a3589eb0cd1167ff272ee8e1b60a88b46c0d4a3905bdfda75cec8ca1805fc64e2e4fe7fb83fa27afac34e4d2e368aaa4e570821c1dbcaf4b8ddc60bf990d3999668cfe02956d117f8a93d16967c7815e57f9397dcb5723be38a8cdaef7c62b288d39144d72cae08e657e966f972c0f4b3a739ab27a2bfb614ebd9f5b118fd4239c721df59d88b292cd7ecf2940de4236b12f3d74e8c020a4ab156ac9409dba059605c97e231ccded4be88c1cee8926f6bd6012b90c529fc71ce3c63cc6d6232ee40c9fea199cf24dfea21edaaddda907ea257c967e90d39f0bfcc43050e1e47aed409677111cf2ba051153d5e958e771faa3f8a5ca3cab4b33172295a567b4388a0a2f6f5047c0a9c601865d480088b52690a572c49cda38132451a12a319f4", + "01c4e4dbfd07d2a57212d1c0b2b6bb243ecd6849a345e8fd646ab11396fd2e28799200f7df54eab9dc0b6291dd90ca5d29995d41407e72d6d12334074afaf2f1ff5182ba16fb4b8b55e66615a9e6976de073215ebfa8dfbd749565ae9b005f1309e76ab15b785a6f8190bce0747830139359c6105680aa38d8c93131fd72ace65b37d8a61d22a9884642b2218eaf9abe0aa6c448e6782444da4bb1ca4c88132e3f23f7734420f85658bf93d23636ab55b6178a1d7002120dc251b215f5ccedda5c06070619cd2244ba0cd5192ca1433e4e2379abc7a7985c51449d2c9a89698d8a1836012d8442485a3094a308d1ee489a758d80bf6c555b912bd485de8c0825040b04e85d8bbe89f25219db04e61059d74d8a2e4f56fe520cb0585a4a6842acbd6c46e047a4b3dd43bd2a1c37bf68c83b7cfdcc1f7dc23d5a545a498f761e4818cd01ebeb4aa808ad8b2e6e36d6e7f9dd5933904c377494f6b403496f", + "0cf7bfc2c8803b07b2fb01b67d654089afe2803a7de977f3ec7281a0fb0d1d7f2bad9de2dbb879aa4ee33746ac4b55bdd4b960aec9e21aa950b0e6b89bfb10c761a96abcf0e387f968d5dc51b1350e222aaec0e11626c6bc736c118704e1f0956d9b30f9e7438e83e576015439a551bd38e196a0ffe1d8923338180cc8a8c838590f061ada4df1dc9c343a10ec4e8280e77fc079b88e830360da46", + "08e1f2285d3cd3c6b8ef81873044d2c317afc6cf40b94f7315cae054d0b0d5afeeac66480d61d30fe05a7fad25143861114368a1e3358a14c8b2e0f1b806c30c1797710982f3aa5e22e1c1188349ebedfab46f9eb6c3dca8db76565731194ce8caf31118d08518cb912b5c3b0d95dba689e8a1c69a5656eb1d3f3780862a17483e023b176c8efb48152f7062674f628987c702e4f043845d61d7e0be601171ab63ecd73347b38b2aeb7fcbea970d9797ba25be6e6c1e36b9a40327a2cbbfcca6df27b5994ceaa2e646645cb284594e4c024b33c9a333b3dcd1560d4bea4fad346bf089b78030fd3c604ce2cb9f9a37391233462b2cffec691479ca2cae3b0b6b50565b5e545005da7647e58bd2940c4ae1b26a075c68cdbedf884b284c4a7d3cad423239ccf5513818d3cfaebb21255a2920cc98f3c6e5134ff2d1e1e9ec59a3912df59137e1fd3a96fa3f5d7e68cb7bbf5621b220a5c37536947f9a" + }, + { /* i=2500 cDividendBits=3940 cDivisorBits=2145 */ + "06fded232dbb172d8ef9fc60af67af8f69b4653a43a851d498233e614d2fbe2cf8186dfb90ae94ef48a9aafa70922940e81df05447b9f18984e195a3d43c195ade1fa440ef03137d24824fa07a47adfe7a10e49d9747f5bf4b966cef67f29cf66ac7b4a1b3a125a735de86f360ce0d4e6cc927428182d8a47f1ad25d957949c44bc2b5b0ecc16bb82809253c3fbecb0b702b049285ae829951bfadf89dd262767b5363b8d8f324ef5d543fd9940601e6b52cad560fd1102307dc62ccf61600574c4511596dd87968ad994379f339c61916caeb72715284b5cbf0f9c06307c5a858be7804ce2ae782b8dfd048f8141b98d38533750cf2fd85b3a6d9fb52871567fb47548b3f46047a2201fa297dd19641d5f5e64466f37a15a1c889d19cd6199ddd607a3a322d776217dcc49f1eeb5c4ac4b6132b2d4e8385f97dce388da27c2a4a73deb63213a25714ec35536b4cff297d49ead7e73146ca06ee75ef99562b81a6a068a57b37e715d715c5161e7078b5db7f2d3115c07577b881c398c8cbd9eb1145acae6505133193e9e8ceb4a96e5f8e5915c4bb53376546f510aabd0500f66f1f5d325cf92025bcb465f168282216d73cca13b793458ac69d3e1fcd0e3ef143c8f74e710dc21777bc79380964483fb1c211817afacae498fe6bbe2ac934762890e9dd931a834e68b5b60046", + "5131c6b992c09fc8709fca5954f1bc307bc67205243b6aa788c226d3b8bcdaf2a8ff2947625b583803b5afd543353993494da8edbe5630173a6582f324a7ef5facba851498f591ef6ef7fa95b99927b0196f0b64c492b9f040d976e9665cea52afb347b0bc9967cbdc47349c190f5923d52557c58b4ad7a3f1185113a62bbd87b4248f6d4e25ac0d5e210fa0e3c8dd07b8e1794451a70ea837e96da1023ff9169528541eba80a6d5ca8767408b0891857b57b97f113aa34a405e25dde1cb50fbf5bf735612b37179da6be7c5598fcedfd659f27afa8a0d530fcf3d7d365664cae4790a9a060243062e3f70205012673d7c213ebf84bffbacf426c5e8da0a41080e06c57704fe150e827212ec", + "160b81051306c2790670f835fdf481c518a40a7c35a14627fd0cd2880ef7b084333ed4a3b3d9d4ae0f8c90807e44d5f621ede530dd11685fea7b6afb406e2ca905aeba37c8937b6f7e8442452f4e51e8f5591751e5ccdaed91014523fd26bec1761eab355cc104a3e6480b8e68e360f749cc9900a7611b1cfe9598cad096e59d516fa1f0edc7426322129877b9e1aaa114344786eeed7b1d7e4c545a4a16ca9837fe1b7213ad0dbc48f1c662deae3dcec64dab50a35f1e9eadb2177e17082dd3de78fde397ad05559b84c86cc25c4961712ba2e4e5f45a3ff7cbc16996fe6ae202", + "18aab2c8018ab4c2468a7f70e4dce7b89f2e6d847060abbb2deb6db196ba4c0beb10bee8fcfb9e05421480ebfcd0319c9750eea326fcfb56f2444bbe2b9c1fbbff8338858f804b78b54383e71bbfb66397bb4a102b8211f0086ce033932221ff0a3dc5c25c9f763afc8558008e53e23e3b0ce46c7d5e6d350d2a70230251dcbd3bd2a143ab7355823add817986f44fe37f999402d3affa632924fba9b8fe69e8365e0fcc4c742ca11b9d225605b85513caf039e081335902fdeeb6ffb86ad30b9c63be31f4b21571f56b079b82c044ebad4fd1278defd9bbab7d43202c0296debe0764d567f18c33688d2e4a91d741c642d19ca2b9c83811e817d7c663cff79995b8a96d03fb40d8fe65826e" + }, + { /* i=2501 cDividendBits=98 cDivisorBits=17 */ + "0381206a87d20c36c269805d3e", + "010f03", + "034f6efb7e769d970fb881", + "a4bb" + }, + { /* i=2502 cDividendBits=753 cDivisorBits=240 */ + "cbe2d5d5ad87bff0daeb5f5692df1525bd65a95ab9419b97386475abace906dafba03efbbf37eb9edd808388c3e45fefa7e321360301d12c54511bee50219b34924de3bebc95b266c4f6e4721b27e5789a4fe6ac95098fb1b139c6934679", + "b586a8993960f612008ec9b97665c46466633956ded52e415213b1d4b1d1", + "011f889cf02197fd8cbb576f1a563daf711318a57f00239e28423c39525cadd94899ad33bfccf2b358d3c12224977fc54b1bb5a2a378d88e38f5d6933869b9fcea", + "4560acf3fec74c8eb4d2a480b46fb7bed5d08a5087a8e4ad9fd0a216016f" + }, + { /* i=2503 cDividendBits=407 cDivisorBits=248 */ + "2a230e8649cf7001193c72edefd0034cc93bc7a2404df01c1e7eb2d8297da4134152bbf61bd79b7aa8b30ae17257d63c524628", + "0d4b526fbb746811fbe89258cb3b5c1669ec7767636840c6e753a3b97c6c35", + "032b68bc1d4354dbc83d687c7ab5104a43f4f04847", + "0730047cb47b33230750b625a5d849cb47f734351f978a7253f99bd6b15b75" + }, + { /* i=2504 cDividendBits=801 cDivisorBits=274 */ + "0170a1c0a658fdd271e78891e063fed917071cb96df20b20ddd72277ee828b67b82386faa9cf8273c5a18f12c61a7bf451f400aaced2f86f7d9e6264badbea8759b7bee4cad8a246a37f89044112cc55b8f49d8e04cc67ad4322db6355c41590ee24c9c4b1", + "8d3dc9d8f262703ac9b65862a29727105b15b80c9977bb5ba7b9c75762099eee241c", + "029c2532cb04f946389fdee94266dc28b221fb22d27468b9b43bbfa01028a32e3f755a6a62b967cfeacef9cf853b66340cb60362b48c6b32e1ad1caf43855ead39c505", + "0779147432b113af48048dc7584c1c1daefd72d40ccfb4ae756ca0dc1fbbd21d8425" + }, + { /* i=2505 cDividendBits=2645 cDivisorBits=2019 */ + "0732236497b002dd2928854b9f8e6b2c7e20163209f69ec8444babad3631e864344c74ebaad7c8f8abb881866922c7a0a8bf3e310ec4ddc22fc8b4714c1b88f4a7268c849e910add8d950ebf57ff796268a6c240c486760cffa82e782a3852a6ed79a2fdf04c754b67968eba460e442dedcbb221f121e5345c97b096df12bffc8294f0b6e84df2d688f632ec145e505eba00713a98df4b023eed0a0d79d565463e834fd31a30466876d89d174a65a86a380bee3d92778fc7cadebaf2d0cb5ab66f5b6a8badb57f285b285ee6cb51b22970d8c19b33de614ceb74a8defcb3846a87166f74028bd0f3e9911f5c7ead9bf376272f3ca38cd658d38523b4cb19537bfdcd7ef49c8aed829379d80b91413242db42ccf9a68a92e9326d92e758abab2d53970c75b315922feede7d8a7e1e6942cef7d3c2c64d2415b7a1d55b6776cd6646ed84242966a3db92a4a9", + "013d82be6987a44c3679719428124892fb45a983cd1363c13368db8e2dd48de03239f1958dfeae78a75ceb6fe6a22a079b7a8a7eb26688ad8dd389a77968fe7fcf0efb678949ad226fe14be63ba3e9dd70b947a982c1e0dc2ce63b2c8959356ad3d2b089497a18d2b22839fa9bf59ebeb3bf98eeb7cbd4392867c3acaa118d4347d2560b5e40596954cc45b38b1be012def41b9a82ba9dde981fd1652369255284e554d59378d3354cb07a46a97e027f10acf0fe71ba0707b365c5e82d4a95229856de189df4906c2e446ed27d79bbb39579c92caf8be12507e02a4aa7adbff9744250d78c56e25cdc8ae93c888b59acc0ecc8d7f7ace6a86253f01015", + "05cd43b54728dbacc8201602c2e1aae8a2601dedde3345d8668de927fdcd9718c013288ae08339340bd9029e302332ae62e2c824e50143a4f8c4906baad971608244770c6acb10297a194f5f1288c7", + "1468fd16f627853a2348976803288f55d2049c23793502cf4f6096622639f4a72164da7d786e62c520cd028746693806528af1b5dc7e078a9b9a743a324f5f1596c8dbc8d0d4cc05acdaa701acf6220dcb8149a8f90cfb829024ac5c6dd2a8005c4345eab65c919c6415d779faa9b68d762fd7a609c45a84cda53800204bda5d4735377555cabe6ed412fd6d61f1d6dd280535c91809ad3acafab3a3fd45e378953af4f4f1634faa081a222cf9d255035b6c46caeb4e319f0c84ff1e1fc6479574aa6a7694468a00184c03bb776d21bbf04343d74693f7946e0ca5d4cbc237705b43098b139e40f42b2b90178393c5f26a770b987faf454926f0fc56" + }, + { /* i=2506 cDividendBits=2825 cDivisorBits=2587 */ + "3eb06bb0596bbc7be334f792722fd970633b70a99fa1d03b9fdb515bd6bf761be3dfe186275e234f5fba33d7e19959cfa120e46bc178a26fe9f241f3e75ce152bd00381a2b78a39ef8711bd860b8856e259040ee5108d6ef49160b2ac92bc67e95f0be71c2c7f5a46d50d3ba2a1496f0a5e8ceac689142512f716589c81d592186274d6e080411d3e48dbed5dd6e6cb2cff57e2510232ed64db8d5e02850f698ddb8a035b23d218425d8cb979b3361826c646a10c1311f1c27a96fa0ff382ff0c7a98ed7bbbcb108ba687fc214067c314a1f4b2e9cf954703e3a1e81804103f89cc2d27c70d4f1121e0c51cd14d67a0ccc9803827cd4ce7f6492126de453bd245645936b8a381d9b210ac69881479e19837fb5fc6f39421140ecf3269bef715bbc1693f5a0e8b420fb85ac1287bf2f71e8dd346e6608ca9c123c81dd759f58fb10c35c86b69f34cfac27c39f21ba54b6c0f0936bea37ba38cc156393dd113e1ad0", + "03bf6063fec505e77c88e6e7eabdd51a06b845d12d751ee7595362c1e9bd5dae4b09e96ff65b6ec4c806171adf3aaa377537a1153921e54f5832382db972e6379b9c8c8310561bd0e254d7bdf90462ac81487194d3552caf3e078dafff414c8838f487777fcf01a7664afd9537ff0323b00af7aad6bee81852df985b92124746df9818faa1571f211676e4be5ab6f59159ab4391aaa188e9311f0fc9033a411bb3bb6b85cfae4b8367438ff51d6b8ea5eecedc03e648e263c6663ed5d40bd7595930c987929c4159640c8fc68b8afdf1d5f8583e6a7eb57806fd7ec9b221320f0483bb74778dd2d9beb07e273850521cd5ee37c1a32b9ed1cf41e922c61c737360b928ae13a8d9e33b1e3a9716e47a83a6aab46aa13f961eeab60eba543b651b8859020d456057d4f357ffe2d618145da342d25f0145ec4a0306419dc490697a7920b5ff", + "10ba5c2aff2a7dde9aa52e9ec76fdd4946378a4dcfb34f17a2082fef052a", + "db6fbeb8e60aad00bb4e91df6dad7fc35fe60920490485ddc999af517364df527cef0509bcd688c84695d87726ad5fabb0e57596015c8219a75b43343eaa06c0715c355e42e5178c7d3427e7822dda24017fb7ed62f3dd469a1ee7a61ab03824dc4b30bc7077575413b58daf8c5d5b78bf50ec7e1a4664090a6f95197963bd6ca53226d96bfbb3e20bb7b0cad7add368918edc23f5cbc76795a1b2bebf504b93c7d172d225b972466dcb76a60b26fb3eb2dda8edae5d10d577ffcf902f326460fcb51842484f81d5ad79e01bb3a5a489d441d00520c249231689ee9b41dc64a83eb4256470a0dc0580897820c9ab7b38687e81025df5ae029f45ad0aa582e9716a1291cfe0f35dd6b38046d8570e83b32c560756a4c9a53dac17582fa175b10aa233f5d7a42ea5a209c5b66768ccc2dcca6973956172ac3aaa210186f4bc7bd44143fa" + }, + { /* i=2507 cDividendBits=497 cDivisorBits=25 */ + "01dc69cee71ec50f84962564cf626c8e8518a0a874559fa30277d9ea5264c5a37bb2368c37b851208f32f8574d9a0769c71031b9b9455f7b5b2ddf18ed571a", + "019acf3a", + "0128e1b5c7cd70cfc4b336e509d547b991fab8ba3e5e47f969d386ce4b93ee743bbecb62fca0da6d940c2255695f342c5847a8731046a5420358cb43", + "01261cec" + }, + { /* i=2508 cDividendBits=3203 cDivisorBits=1741 */ + "05a60795d725eac19ec48847e2b3a3ca33a434e436606d128bc283f33a9b097f6705b446f836513b879f499e3eb29053cccf3accfcb965b90ced4c54e24f331fa714d2677db24c8b07569e1e11054f2021bb853b3e143216f1c22408afa1d43004cdb4f7bd68c8b47d712011566e5a65dd329b580e580d08e7f3910e834eed6cc0a75f1a5207db1d684398c10a19c9ece809c579b9422b31855ff35e5e22efa6d0ff77e95898a2e4a77ea35122902aa987231a5dc84eee3143175c7102dff9004353f07447f3c935ca51580918c9e46389973d105e8c69b41df54914f32e9c85f8bed78fe9f38e3aebb28bf533a15ed992feeb796fc216dea3b627b20f0d4ab5d8796ab0eca1574299632a43adcdbc6f0105f348a104150537c327b2e9be13b699dc4ad014809be89b457377a02699a57dd3b16e20b5855f4205107cd93a3dd87b32fe5f84fd9119eba644fac15904e4682d6ea2a757362c0ae5abd8371dc8991221b4bfe34fc16781a249527db29fc7b8c68e2b685503c91def997d08e05692647bc44aa789268929428cfd0234aece61", + "1e51289cc3979ccb975094ec713868660f5284c225ef243ee977d6df08f45d4e2d9f7fcbea0bf0e39f6cedc91400f73d5f7b64c6fc4816d5106267b9a1fc93ba1cfdc64a20bf03b2ec86d75c279c7fd1b91b7122ad6c7ceb65f41d7107e8e268cb1aa17e58934259371f1b6c8b087e528612a8ee8462abf92c58561288f4887dd39b8810297e287fa06f74df45d9c532bfe8936250f4599f9d85be18b08b72453e0a2cae2b6d897484742df1041d3de2c681fdda05ec904d494b4d61f450efe6bcef9e002703ba48ff29ee53b0c18a23902fa1f2900a87e6b115", + "2fb26b3a428259810c9e22efbf0409eef01f30ea17a6f7f43a4df934a0ea2bed833e3e9bfb7a7d5a5cea3854259efca47c470e9d685a67c67dcabf99c7f3fddfc1f1bf23b8fadeed256789e2bc258a37b52056e72d43004f0c4d3e4abd73ec164ecc00f990a020c515c0fc43877213e88828f7904f3d1ca43f6b396009114933b0c23c91b0c018823ae1138405b1bdd205e5ebc0c9a05e377af554cb6e80d758f8aef1f3ff9c4c264e8e91b3bed5a55544114974de452d", + "017bcdcd7c71c3230ee4f4e1e3b0f060ecc0748054310c8a9229e35190653316e716dfb89f8cdfc53bf8f351ea8a6ec653a18fb5d5f00a99822fe938b0074d2eae336df79abe9fa9a01db4d07076af5b5045b701b1f789536a2e02dc128b5c168b82c3a416d96df686a0215ddddea33905957d63ff508aa5dc9809f8d3c6b4e04cc0845a9acde4f09e6339287c9fed7dae9ade51f6820e35264edf9db22b57c9366d606da7e2b6fe77f25312e328d9d5f2e1489b8872be6ca986a490b8c2298ee619565112f7890a4116b58798d75b14ece2a6418e3f0f3104b0" + }, + { /* i=2509 cDividendBits=3408 cDivisorBits=1740 */ + "03c585ecb1cd39d50f9afeb1a098b60134c02bdac98bd5091762e1477a5181d8438440e3d3dd3a50e594c1d30cd8680aea9a1b98e447467e7d1b581fc80da9b5a67e52616bfe8bed28d9b82600a6d53298649eacc5f1e7281b94f853d5dfe21d15d8a0c09558d219ad5e98d05a5eb09dadadc15221b93f084a6fe99a7cfa9d7685285b9158743decdc8e84e9fdc3d306edc8b5440161a78b832137f5453adbe5ae7bbbaf70bebb1e4f7bd664faf63357e7cb7e36e4a7fd1be73525508942654c94dcb2e5d98edd4362216ed5d993d442cbac215059f25d43dbb256458699b41c7fa76a01a77dfdcbd56463670629feef268e2c4b1765da4b864304ec060258554b2aefc0ab22074f7308b5635883f1441519b87347f97ab9db1c51a6cec0b513570b4d23acd05b5e5b6d906e8306bd4fa054b6e74e295ef7b0cfb9f7467376a2af3207a1fc338b05e04252b42e0c075abb8dd1a3d817f32e6e95478bf280b58c256b5e33d817de6e24a1251b2f323951562567d6651e76afa819ffe83feb9d8b2802686134a5e1c1ea7be74a8a690014be7c4809d22a592e881503e90288a851efde6fa9b748a714046d", + "91b8abc1e0a0171e04c1a82c20e8b405a77d029e110730e33e8282306073d8d7d7cd1c16e5177092294136e011cc252f6380002babcdc34bf7c6f62ceb83b8a4ecdb26360b82878c0bddf0563cb6845d6c9cb1134ac3cb50e262247e10ddb9b5d1b2a1a0ce30d89befd4f12019e99d18e7343738ff20b19a18d2812d183360289a78e3057c9a32cfb11c589690cdd69788655b79de9ef252128700746fc2915ba2aa91ea0ab1ff3945bcc643f8ad79d9c61894efb87bda3cdf24afc917d928f14210b2581c932beacb9a52336532803b37982b8c5c736e558b", + "06a0358bc935ea4dade096cf61c09603d0ef1ab7217064d391970328cbe2b1dade0b750522a8cdbd8519dd811c9ea6247129b7fbdbd99b2d037c7c66c85b12701a3f573ce07e15eb4cb572c7cc15fc285d30b52f3393c1418ec17b405d33125c5c3b03222dd458452c47b2d81b246139eb4fb6aa99b67ea3407dd6b0a787a195955e52a54a61ddaf9d187852056c1a4afa4965d7f2fa1100bc8c5e909a7331127ae71b5669d8308e27b549715123e1e3a2c4c59b894d1d957ace32960b3a7dd05e638a93b3797ba76397ecd6cc3256c0c2", + "34ef8672bc3f74bed51c388bae2344a0f2c0304b1b9b74706bbc0ebe649a088db207a4da7006bb5d66e07f2da9cdd4b9b82c17a60adaba1ef2451470bb393085f8343bd6d312573e5df6fba6481caa13533e42516de399993da0aba1f64732dde8002e98fb8c87b15a18ec736e44c6017a7bf3bac93d533c772d6111b5e00d7630d8194518d4ff762981ca93dfe970923b2632d06da21a0b724f2add420b63fc436658d249285becae7bd6094c87fa705f67457f65a94054b6d8516939eac07cac0dd672877473ecd73defb13174ba5b7a2f37521c8a9cf117" + }, + { /* i=2510 cDividendBits=46 cDivisorBits=29 */ + "3d56ec5dd471", + "1f398dfb", + "01f6e6", + "023e12ef" + }, + { /* i=2511 cDividendBits=345 cDivisorBits=88 */ + "319a17e5b4736de93288e5a5984a964d5f6d2d4f6c3de13ff39836bf16b57e53a10d0a4d4fc91ecc5f3e41", + "613ce7e13756820b433c1d", + "82967f941ab34d61872f68806504bd28b8f831249c0e1dc12d7c0f939ac78bca", + "338e6672a27f503b23105f" + }, + { /* i=2512 cDividendBits=310 cDivisorBits=206 */ + "0cfbb4b6fc24722ecc49672e0161b53c33a0aa0b8ebe9df12a1d95cc9c74dcb9b11325d28125a6", + "2d4b4b7b958e9c771c15c5357c0fad2d202d187ba239da588faf", + "4961697829e79f893b38dac58a", + "08d0233c93d7f00084b7115a5573f7309913b82f07c2552c0650" + }, + { /* i=2513 cDividendBits=3258 cDivisorBits=1518 */ + "b24248ceb22069e61a01d7a29c7da1df8cdd1b08b0eaf19f21aac1b5e7660d7253fd1bdf35bd0f3d7ac7b3883fa62b99d58c05c45414a88621948391099c27a8293cd3d4190880411fe4d5af101c702ac03442d205b3e6155efef2cd3c4d5478e234b71f08994ad7ad48b15826fe5dec065a8e61772bb4822c11fe8f9487152ae3459dc05a041d1beab8516e04854d2be3fec8d7e14709bb7727b4410bd3459da90395c6c3ff56fe8562010bbd2be77b290870512bf64b670fffc86ac9061b7b60e24a76f66d0ba319b8acedae56c8abc50867e7475fc0afc32bbf127d0769c9b5d2665d9e09dbe933c1dee671c18a8a74081d632336c7689c4dfc2652bcf416c2b35ae88945d67e7c9860cab2f0cd003452511884805737dee071b3b7eb6021ad8684701b90aecbcc93490cefb98fa929e2237e9cb06eff73ba88302c4a2874a072f823ca753ff257ff3c62f929d181ffb366957c947226725cd3541b7c0dc9f30b0640caa712204edb776fcd9cee633f8ec12830ab1777da890f8c2380cec83b3a3bc0a79e8cf2ff247ddbec20c5f178da31f3d6fcdf", + "1f8a11bc703f790ec71080df7224390ecc002e14b2437292f086a9952c4abbd629134a8b71c6e9ecd158fcd109965aa36f6202af727f55eacc161bd612bf28b931dd5742a6c7492b65ad94637c7d5073731226d3bc7369fa85cdd7e62a3090b462eb7d2a62548144d317e7c7e3993a89b821b1d9cc8c2c002269839d84c0a06a3f58a3a0d27a9e063581aa19e8edb79bddedcbf6add163fa7b45823b5ffa06f9b7af0d9d62e60ce4d3bb1dd1f61fb7a1edaf961f583a6088057811754a03", + "05a6e696cecd67da9006e38d918d203097d1adc8d1c01c5203468d1c233feab5962839f66afa44473d2a75c81c0aa0454451c7d72b2aa6c937916dedb7b32285b568a04dcce1c5368ad0533d12c3211b394174cd879a6e77dd66c995a77d0ecd26d2693303efb1fd0928f44a5b3ea85b466cc82bd6a1f99d416afbaacc045dfd35c79a33a6398835631226f9aa268fe926e7576001c251d6950ee1e1a633f411d57b03f9df723fa53b3c6ba60de6df135077fc5b3bc925acabc66901ec7b255db232e6c9e300e592ec0a737db9b2a8065fd075ab6a39a2b7b563", + "06a9b45807dc85a7d872bce8828f6f83f48e4aec49402a638027da7969b9bf11ca65bf797074ec6fa7b002eb60a57d8ed26d36cdf637bfe044f1bc8305930a838aadeda57b52e39f78ac4d8ca8fc73b9978c54d6b1ad4cf4463a0fbffcec1dc9eff2497308708fb73d8d489934b1a08853309ca1ba620761407562537f042a43a60d731781be3bcaaef80c838ead7e6fab363e8136f2a7573b13bb5665e64c0ec6a3705325d3d761b0f219bfbb0130dd7571e00a34ae4a5c6c1278023eb6" + }, + { /* i=2514 cDividendBits=1935 cDivisorBits=1891 */ + "3e2599ede52433b042a31a703389def88baaafd0547cffeff13de65b37899c29ad705ca8fab20564782b06e6b0cc011971a571cd0e9937d72ac82ec93ebf4b0f270257d58f027d52d14b43db71f05e73660c7c2b240705885fc4640c103891520eeca3bd2d51b74b40f0f00fcf9b8d4b923c11e93d8d752be6729b730ebb8ca4bc526f25b222e619760bd079dd30ed1d321fd8bfc81e8cee941a29367d1b0ff261717a1e6d8b7cbace024c9240569c88c20fac3652f374562a128d74da6e5d9aef5bc8db58f7a5ba3282fe2657c2ed394d2a1042a76f3a6b12db4a9e1b4483cb41c38adcaa356131a59e67f5938941418962", + "05b5d03757bbe2ef213bd41a92a53c79bcb6860fe4f4b38973827ec0726ea4ad33271ddc7668595ff3bbf6ab63ea6ff69c68169d8910fc0d5298e0a7dc4a899601e631c735cb17b43b540f1401af17d9ef82867ef6506f119002d9a274f93176118c2cd25e50838106bc28d6b7f2f792feb6947ada0f3e93e8e8333ad87ab4cef390153e742250915a3cbf6868e0ae5ded92cecebeb404c6649564d7d539e093352d92c724b6b85e781cec29091f706de44422672102f831048431162dcd892f85074ea30d62a7874e8f619b0d8e470269d8a5496e5ff834349bad4fcfc3a009efc8c494d8a91e617a968c48b6", + "0ae22b127fe9", + "051150a1c704970c517587fdcbaa7a9566c0f7acade54dfb16188d690a7eb6f1fe9a577eb774c9963762afc5f723f476e3529444c12265dd59b7fb3bfe37aa92b3055420fb397ccd7e2fb448d440e27de8da912eaca429e42503496b8f8c9539ea0cd913f182d8344fe08e802f023356f8742ba67d2d368e2ae849924b90652320e20c3735216f1c908f63d9b3a8706867a88744ef46d2b59a345e556b23f0f737839e6ef2f48265e390c3db9eb8792964430593b7e6861719a337625a730ce9ada2928eecfdb754b272d541f0add0d079ed83e70b19d8dc816251c52b3454a9aac829d9e9945b9786f4b511bc" + }, + { /* i=2515 cDividendBits=3600 cDivisorBits=1526 */ + "e53bf955a28ab836003738eec0a91e9e561f02c660fa1571b68d51857c0e96d7dbbeb75fc454016139ce4eb12b276cd2de1bb6dfefcda32755513cf4419bee567b66e2d45bcfa2720fc179ed2439ab9d43c868f2d28daefba66bf640e61012d3e21b263134cf6a17f49a813ccd3f7a044ebdffa050ccce979b633d2a65cb13ea252cb31b8d7c07c4df11080a53cdb25c7303e79669cf9ab0d7eed854d04da0fc539a0b22b252f483a9802dd8c8f4fe575d9d93aea2eebf757e3ceb3ac86727d8aed5497c72166b63f492c3c98b5950c02a2fdd09caa991ebb954a2be1a7501efcce02b80e6e08de19461b242614a8dba44ff18d53bd8b2c41aa63d273c444e8678118af7a172596e7619c031688b55d0cb7bc5b504de92cd62956ef6d3fe468da1ca2c99e624aeb9951b1914fad72dd6f8360a05f6b321ba5ef0cd1668d024e1792deb76a0dbb4a49d74c53c8f89efc89fec755736f6dada2861c44ffb779ae83e4105667278fba13182cc2a30287bc8b7cbd8fa5bc607f6887d8d48809307cd6606dca81539b42285b6bd06dc0dabb29c83ae50b5b9270375cae33ab99d3b2b9435f41e07fd39edf1610afe4ced049bf4bcf406863b9e0fc35224aa7dbb17087fb0", + "29720249db9746f3b91f268ee5ee2e3d29fdd8f8cb5e4947de9ab02d200173d41887d29885bb9ef4f2bd7677913171141a6d998840ea3e84f7cd28cfeedf337b4a6ac7c344c83a6a6c00ad543cf244f7a3568e8742de2cbc2e317c6344cce873d8e94c7cdc8993449e74c055baaa6fe516b621aa08a36e4bf4f5f94a07e0c167b77bcd32e1dee6caf6225e53747f81de7eaec875133c50072d1308e2c03c42b9f4dd5930e4b02f041c21a9f6fadd22b56c6933ab321084141ed1851e0d886f", + "0587efb4a761ea44d5fb57cfca696ad6dca9fae9de643a862134c9c581771acc23149d8ac30fa124c4988319ae1bb871471ca82781900a4bc2d6cc28a40b97a30301c2647e213b5e9975c0688ca5a123e0938db54b0673f3cbe046467c58e110f9ab9c9bdd6f8dc8347f3f2eea4b0b9c94b25ea9b52c8c4a2382ac2763fe7cfad89a43e4a3c9bedbb8f6d41b2fdd043bd1562b8c4698e8e7f3fe963713151960dd7a27b021ca4f4a7210b2d81a6b76b8a73c5760fb6f103764a54d7678e63d95677e7dcc196417953d54b3fbbe3229b1cb4d93a044b2d8939ed44a5063b2f5c244120f467ce5ef275380ec53121eaab7a37d93716de031f7da4de84918ae29d42951fcef", + "20617bb88b4bb3cbf775bb3bf33580c43f11282d0a3e0e9b642d9b7fb8a0158805545307e5107ab445ef34bfcb66975450c1ead110a3a64f844ed73cc1c682b3047c4c1f4e4949f7549897f86ec8fe3463d1342bf2f283fd6a62da65fe6ae2b4e36e371a528fb734169683fd62c1e66f022e2bb360437375a26fe64bb073c9da75c601b79a3c4e3827c3a67f11acfd427273fe1c995fd8480c3ed6c8fc7c74475b15411cf6310b66fcbbaebc28c51ba12209413fca0135373668d0c3f9dc0f" + }, + { /* i=2516 cDividendBits=916 cDivisorBits=320 */ + "09a78f103d16c3bfdfd45d672bcb3147f2c5bc35f892b160730067a5001944acbd885946eca06365e9382e92e59084c6c1cc7cf4822ac1c0f1f57a2ceade4a8a58759b70f51246be4d4895b001f1d199244117538dbc415ac7f936fc1b2e58b26c05d5629289389e93159b79b8eea35250b97f", + "bb69a962464004513fe1e6306a61108f4ae48c8660e80338c03e44dd0e05d0659cf72211b9ad2416", + "0d3012a55cffd3e586945c5e52b8fc446ce1f1efea5c23a631b3de926d92f1a6f7cd47a7e0ffcc178752f0a8e5df425bf96078ab4d82c5aa0bf93da97b4ce6d7db05896a3a32abd877a593", + "6c845c70455fffb5febb2f453f326e5a22a63b3beb2036839a615ec7f16eb96b23442528c568d2dd" + }, + { /* i=2517 cDividendBits=1092 cDivisorBits=229 */ + "99a571d17f86fd24935d32d023792e111a9bfd964dfeb1095208ffcbd4919b01dab26fe829b3d0dda7c21813b933c4e90aab1e8c5a440636b845d76880d7da11299ff7cccac6ba79d40fab52aad3c2f228d7ef74b09f95ea209344eaead173651c487ade8f9d24ba9372a89323d2698ef3fbfdb761e34d2019965e9d0ba4e9050e8c5b367ec50a23", + "195048788ae04ae503fdfd678edd4fff917fdd0626bbdfbc1fbbe2fe47", + "0611d8920d31e23777789648081f4291e2676aa344c716fa09c1cde2c65ea4165d67895ececf75928ad4af1e6b70588ded18f6bfd27ced3cd8dd31a2fafa7acd0785da6b12142440ccda9c8f04f1ae2f6c3053b564919b70916ef6b0a31d28aaeac13a1ae3f310feaac7c36c", + "02836d96e857f4577c885e51c6cb97ed15082f055922eb4cf48420af2f" + }, + { /* i=2518 cDividendBits=774 cDivisorBits=428 */ + "1a7e986904789888e68c1f391830be3b61be404d2ff509d61f1a60f80b105504676e8fb87143f4f713c1ad774e673bfe6449853b6764369f48e132d438ab9c58b2e2f6c017932f13f73687bcd661a5e61235ed29ca829d9dba3135fc19ff6dd3b1", + "08d42551b851a4f94b507012fc8187a5a530ff5c3d79d66dd1a1312ff919c1a35f705dedc43a18ae67e765926de50d8ae8d3f95ecbcd", + "03003e931d0792fd3d95ef2ce4e67673829d332af58dbb188cf09bc8df2b17eaad6b5e5c9d7bf1efa30d3e71", + "03d2244eb63788edf2246581342dd0a5e98d6f084d03d318cf1c3b189316b298c9b1522baa92d0e9700c5de01d2e161b992d16d13834" + }, + { /* i=2519 cDividendBits=1270 cDivisorBits=924 */ + "28ce52b034594facdf528750ae853d58640b7b9bb1b6c6f901e6eb62d28e785db4f79a0abb27362c0fc5a7326018580fac5251c94366fc6363f69c00a317a70caa081b5e6c4e2b914e516f41018ca77db59a8a4249faeebd90976685f9fb0a81f82ff7dc717eafe774fd497b130810ad45189ba134c7daa5667c7fa79cf71200eee65aa5283bee72c8fb100654776824d17b49a99c59784d7b8e1015b9f5de", + "06720225684bd620c17dae9095869621a5380b791761e58515a9e6c1015d2382e5204ce172d8b89a6bc32473d7f325a0af38f90eade36b9373d34ed4623a0e5d172886cd8fc61dfade0d0e57cee91021dbeddad27765fcb6b130545df21b4c1e2adc618fbb053b84f7dfd5e3a7e34c427832e001", + "0654c12de773021515890857b0a4debced153ef48abf91bd70bfabc86dbac7496d08e2a1b973b30c61ac1521", + "ed1ffee029f596456b4620fcb3da994ce9a91e6599b1922215f3c73ffd576b44dd73dd852caadeef3e3b00b6bfcdcb44ac471a01a0b1de696bd0cc1827318b8767f99b9fb1933847fa3ad079148d44d098512c6f1a927b291abed2b5db144852e1fe539278f3ef5b299b3809430987891f00bd" + }, + { /* i=2520 cDividendBits=2180 cDivisorBits=1961 */ + "02bbb5c72d12cf21a15ce2a888c2e79a28812dc02c1ff6b1301456024a75818a20964d8f74fff5ead26224cca5af481bc2988a00a862a47492e3333095952eeaaad20de6fb386d573efd5d048c5c9b46faf08801796d17edd2947acff15234c073380c9614bbc1e4b81e66514002ab03e3885fec93e980ff51124289dc1c13e7313f48547bc689c95eff2211c42c9c77272b088a1abe4f658c922ae215da6f8708486d575fa8e35558d24814689e6f97b6f959fe727cee497a5785af54181e148371c30e42ab0517b3a226e1dbb13a672122e0864cd4e871a43220a5f491f9236d3eb4f90f4351aa62d045ffdab3041bc2ead85041b5d8d9c7bac1beb412c84169eeb88356e27b3b372a75e1dfba86a344", + "33dc735569aeb81ecbfbf19ae70209866c630c9bfa1f9184b725cbf559ba54ccc74e55cf573a3eca53b57469990f665b12bbd922cb74650cc18c154d09a5f937a04f45644b8704449dfc1f37de696361ea8cecd1e74c0296adee6ff61db4200b5790bcb7841cf9e566d2349e5cb361e79595799f81c4b3deb7c17691766b5dbdd54f607a887832f145571e6c745ffc4ce2fc91d40530c8eaca22bd773b5be3881feb691aab37fc6f300b3bb5000b84a5f7e4a46be0e13c72f570b598ba67edc544e1f784903fb221948f9270e235a43a059b0c1d3c03f4493b54111c42de9405e3cad955f95e283e7f8487d0f4521b45ab0c5294f3", + "0d7df3417e1ff1e7bb777ab89755e5edc542ebea58f1b1031e788119", + "0f84c27057c90a62b46e2581078045730dcaebb2346887f5e0456966079a410031f468374ae7d120f8a6a67f428d2cdb0233a57c41f7c58fa1d414e1867bfa88d84354e6fccfe58f248b4fbf8ae6ed216d4fa3bd6fd03439f28f0383847e3b1ae64ae1320b11e640fb889b1995d4c9f08218dcfade2ddd1bfc4f4057340cdd32270ce750d98e3da2774c0c19fba5d6a3b4cfa6acb7c655cb15c5fe7a42917de877c3a2ffcee9f1fec981e7d49c1351536132de45111e07d8582c5538de0dc23c6922977d6e352583b13784458fb97c89adad92c66944fb7cd851cc79e3e0f7e9cf89f765f752dc61294129be72b55aacf29d7fa489" + }, + { /* i=2521 cDividendBits=606 cDivisorBits=102 */ + "3c8b7224705ba21445f2a2473b15d2f165ae6096c12ec8b5076e6ba64a69e04f939f47cb226614261716ad38af019b298a4e4848a87cb0d4d9edd2504c3ccaec0acf4d6f77572eab6738c417", + "34ee87226850a8c13c7317a36c", + "0124d1c7981b2370fb7658a9fd4e61b266a70642c6dc760c2169c324f1da554393e4c21e1f6158cb09090ad3546d6f5ca446097736286468e8ee500db0fe0f08", + "293ed85d2cbbf71bbf06c054b7" + }, + { /* i=2522 cDividendBits=865 cDivisorBits=742 */ + "d8830989ed910cf6e0a2002dcdbeb2e794d35a4810684e34755728900ec489791f1856a87219136675c587720b67922693ce6e7d4198670d9dccb869458e78ce23bcc680595f84127b2d225ddcd99fb98b12f099b2c820ae7a4f2fc87fe848be66a41e5bf8be048292b57bf3", + "33175262477e3ede7dcec226115ec31c9e097c1df572830b29812223bb57e0b6340f3b194554dc1364accf5034cede38f84e9b250f6aa4d98710a794a25cc1a8b659c3b0fec1f80310b9f8228250892feb84b6301e366887625e759f9e", + "043cdde44a95b89b315e045b1e2f7b17", + "2bed9c5319b04270ee5dee983eef58dac120b1ab43762924c231374a254b00874027e0c66e87a5fd5499b35529d9f715a28e0314e0ff9cf4adce0250e522f2c09f2f02caca6d79f0ac7df81716a0015513bedaf99935da41d2c0713ac1" + }, + { /* i=2523 cDividendBits=3729 cDivisorBits=784 */ + "01832d2449ea9287a6dcbe533489539c061a94b2b15152e7719b39f580c33dbdba40ca1cc73cb4843daf730f0ff6a46643acf416153cad04abe5e816fdc081b861d204038fbf987510b4a9db7598c89253ab11c3a1ca9166a9a1c410f07cd0374d80e84e4b385926c9d9ce24376c29788c57bf23546dd5bf42a2eb5e0552c97da75d82d237530da1d4815c39e9ce1be81815c7dd880652d542d218f761464ecc059a3c190664e6a93f25a1ebd0edae6bd2946d2a911ae17dc6ebd9ba293455d8da5b22012b1a52f0bc6f7a99fb1c23b250b99d712e9f8b268f360a9ced1099a496b9a60d9a368ae599c0c659b97478746ca9eedd6edd7037ce3c7924edd1a1513e07b94ad8ee60bf33c98e28181eae3373b80135099f87b1486e26d0eb41b4bb0489580bffce9e4b84c03bd4a99cc537d775a89999889a13271731088ab3f401809a2e7fcba75d7bb8db7db8cbb940b14f3496b51da0488bb62f0cdd1d4c8af6b5e0ba134588cdaa613dc3f8cdfcb0dc7d4a6656cc4525d9143e5c903f188f44424281f8cd616ff435fc7d2707f68a7399ff819374df03b1463808b9c3061cb9410feafb3adf156a17b2c55a2c2e83f5187ce01fd28b4bdd6cae9e5b969a01c1fc0d77d7e939649241f4cedca4c7aeb0736f04", + "d5abb823454da9ea5f617d39c9ffa108bcfa90e0c8625bb619a21166183de4b36173bd513ea9a014e87b69f3ff2cbb471df6bfd4fd7176f7ecc5f67400676bd3f6f80a36ec93fc643ee9072acc9aecc54d0d3c5d8f27e6ed607e197d96cda6d8462b", + "01cfe0bae8b8760446e08dcd50ce97ed3e9d97603c6423657f201360f5ca528d23a5fb79276c044ace30d7f1418639576824fa3af92f06638f669dfc5469ac220ed84cc874e1c816acfc342e3c210a6a2ce5194abd9517fe70d373ab1b0567cfe0393483fe203f9db2b0cdae449076ecf51466311a525eda97ed150ddf3e56604802e3be3d1b5921d815f203ee47fc89f3918943ab14d04c59110105cfacbaf1e6830cd8ed4231d1b5702802450b2ab5145e450f933d99934fe16a609582868d585cf9e50b83d7fa1ea12199866ceb2d2c5bbaff901347e1a9b9f5f04c42c4f0ec370db82a97a879c33f142b70c457b58ab8c773437bda77daa8003782033c9775ea3e29862352f665a2fdd4fa6e1b817f19fb444485f70ec4840daf00e57d2f4960443da2156a59492c9b176c6e8dc81cb348bcb2b0b53a2f97e7de76a00100b1ed620a6329abcfff38b3d46f93a4ef11da9562509f800054fa5f51c8f352ea628474d9d27c1f49fbd552b5136b152fd0", + "902d2927e01af9953569e1a1846709036b511eff46ae4cf45e3cc14ffc72acc2763ea4a2c812f90a24b19d30f99554eb22d3a8822d5610697cdad5949ee1b6471459dd1c98f43822bcc794a9dfa7297ddaa49024fa070ec5c74b37dfcdb2b1518714" + }, + { /* i=2524 cDividendBits=3219 cDivisorBits=1090 */ + "0791eaf231ded3c9367fa0f3c0dbb3359d82a79467713955a052936c58fc9408132f8ea57ec677e3418aed82132f643c5c7fa09378441952a4ef0d4eac2b4febb59056ea280f5f0dd7e259f3f6b66a24bb478ecc6cf3ae2b4c6ae1ef983a573f065886c0c301deed6c5163508eef0c858de416c2baf854536b531db8649c075179ab96bdec5a463dfb99d7683cc28c86aa7adae39d1a2a484ffebef647d80f4def496a0547d75216f084e973c2a33ab157e40a9945d4e256b2f84a03933a1163357969eff3ee5d21a128cf8fa75c1a7e624eac3ea0cfbece7e1435ee5b763548ba9bc795c165379669572d39c3e3f587d0ebba494c2ea99692ad29027acc92bc12baefbc69f5802ed55802fa463d3982fd4d05a7f2376d227f7e04e94aed697efee72644f922a3a0201538123fc4012667835f57bf07ee07687e59f6b9d7a87bd1dde09076b11d687921e1cb47dd1be5880a748b18bebdc235c3199a19e501aedaebfbbd179bbf8a9888a823cb3ac11557f0e565bff803cd200e20aef7da20243393faf1e4ace3d05ad8694a685554f6486d85", + "1b0fa9e39b279eef12097b4ecf523e59469ad5b4c525f5df90a021556a9e6724e51c09d4edcf5ee53561a9fb3ad5b4bfe3e9693abb742bc681d62ca4a6ece3a6e94743175e3f9db986e78d3bee25c39741f2314e778ee61f084e2b4a6b65c5b271d88f7fe1e72b046eff1a283987f95aa62d2ff436c4f3e844eb7d50033578868206aaf641779c9a", + "479cc95775946e99ba65d6d798f6706dacc6bfc9b7c26c487e3840ab2d74a8ede6723d0ffea4d2e00f1ee0a5565a7652aa0021771687a6611e552abe5f90a4956a5d44f1b0e6c818a56a4e1ff370bca42639a7388fd9b4b92c10eb271f1e48ec391f2554c84002b187f11809f63d1d2ea3c9d50de691fe18eb7f8ec719545a9a8ac11e422b73bdf6042a74d9b5c65163a5b8338aac40f8b38db60c83cbea8215929206df1ddeb3bdbd97757fd056b45248db68e417608f2b892bc310ca2bc5d0475f45f465197ad127fe98e120aef162ddcd5a89c0a63dfc50e94021a559fee06a2814515ed2e2d5cdf725ca539981f8261a39de3cec3d51000dd333c223bde9cea888da55d9483fca010a", + "046f5e48f72b803d26ce366687ba76b7338880eb1e5ea6b2f1d60c331edd59cca5c1180195d4e8210b2e3547ade1e7c0d8da11a7e94d8d6ba466afadb92c06441c686db0ba6cbbd8670f1ecf5d3616d2aece800d2b2d3e3e9c0d9af21f7b8d226a96be7a3897b4e47900675b35545f57c798543962fdec16c7ca5dca221eb2adbe8a0439787bb581" + }, + { /* i=2525 cDividendBits=1684 cDivisorBits=1593 */ + "0c816029a0613480078e05df0df1fb552d312fc90dbfa23ad06fd2bb85f48848229ec42d0f689c2ed6e07e74b3bb8ff8ed0060a66b1912f578c63d98b7de49dc3d8a470e7d5ac98f044797acbebd327a9a6c8704a047f90b8024ea14b949c6c029bce5404bd098921bd6e5cb7fa06aa297a6ec44646d3a596ea45e4e557fa21e0f75f1865d8eceb92281aaf46de525625f1f50fe848f1a658f7909a67a20dc93bf111fcf73662147db62d22f2369a7218ea1f1f94335e6e8e76832ec12a2c5afa099de34d7c0de1947b77d40d9f1a508804de1", + "010967eb985262ccff5f6b261d9f5810517c00ce59a1f4f99f47c4fd8cdd073ddf41dbd01b779f1b9d201e5f87b50f436b26eee6105d096e848af2accb2def8c4946d32b274784e2ef1d8f56d9b58638f3673fca164c666d5a1112bbf6105ae3d798439899578838abe6026e2fe2d75bf8eacfa3ba68dbd33f4bd70553677839f5387f62e10c2cc20ea25c0d1d737ed5b5630e6d4d7b76b5b6c9ca327ef2dd31f5b0f24eb594966d4a7d06ded6dbb0df1c9c229720cb15f0533a03e325bfa6174f03aa5007a5578f", + "0c0feb61b264b1d1a3f59510", + "2ccd0b8a456ad5f25c42573909e0ea3b682ee486d95707207fbea934f13871894713d652e2a2934d63679689b7c02fd0c5018e4ed24035b3e534ba4d390f46e0daa4160913cde4e58f71dad31b04cd45cb9645a34784df60cabc74b9fe5209ef921e5f69a5f86673a7285c78b1ffc839f4faf265f961097bd839fc62074c25b7cce023ed827556781747e6801e13993504cac66097a8a829d6704b0c68a632417f9de3f66989e14761e5c8fa316e786752b710d8fe67f47168d3e2ac490ad209a6c575795999f1" + }, + { /* i=2526 cDividendBits=1914 cDivisorBits=163 */ + "5963047636fd0ab68c8c0f3bf031d58aa1f48864510dd20911fb4eca6547cc20f8ec0df72dcc9edc544693de8ed1c4b85f8caac5ec75447b85d0ef1c75e0056c13e1648fecc7395948276bc5562b801a9c22935fc0c360f0132390a8c853d8f18eb95f18d91a818be0f84e33acbd54abd57cd3fe782ed3654253ef9290d6b35ea5a6d39a72ea46841c4516023c3b7d0a4e8c19c70fcdd569315ba4fed9a21aacee09cef08defd95f6ef3e525c4f5373674d717211c562697f18739336375779fea7ad1592921d4b143e5d32232152b60eb4a3abc235ecf1569096cab654537024dd316eca25366f1ff644e66d12518", + "0370871a5215581911e9a262e78a73c85754f8e27f", + "19fce3534aff927a6cba65d057c9183984cb3a6cfd5b60bb36447042bbc4bd41cbaa7264dc628d55e24414027ab90c9f0ec38ba2925c44d6cd82523f348cf2f65070396f8f0a0486e10c719e5289eabdf6765fcd08c38f389119c6750392e546405410144996d0f23b5c895195391b0822c8e2a7090ead2509961e19abd855e8e5fa3ff15c3d3aac0ff97e624a26028855808d1f54db4af152a481a957763478d36615c9a47be84980f67913032ea977b31623ca3d85a3b553a6c6016b234ef3a864e0c817284554852f94d9aa679d2bd4fe90861f3be9f043f33d", + "0292be8aac0f1831d2da28bf7c249ec5c591479fd5" + }, + { /* i=2527 cDividendBits=3129 cDivisorBits=1202 */ + "015faa0d02cacb88ed17191d21a8453cf6147b60cc387d63c456601265695b33229645cf22346cbb257b22421be4f4e5702b238a1fd8dba36f106b097cd704c1a816ea8dc331d131c41d0be9eba18dc56654c2bb1abb9441188915df035ba6aa98e9e64b1eea0ee7938e1ac662e050cfac180543f1e0d93b89277aceac05aec036977478dd34cb7390c7411f4478b0d0da79693ad7da921aa897a942969c456782df8bbbd2fa5c3f2c9f4e1bb6c3536ca67b752720788ec5a36dd8a3fa457949b1c50b957b8829d33adc65afc3af737d5659c281456ad174edb72280bb0abf088b1bc2d38b944214ee4a36541629786d96f23f6179d845eabc437652b0c19e2307d6e0e89221ed1b5c070234a39d019853a6902e40ad5c8b237bed68c23563b0a55c90ac8870c6c2edca509fe143a8ec4cb8a87aff9c9defd499f467821881b77f302412a234a931af636d88460413250ca50bc93b1b161523aef958df4a34273f81642073a032f9ca2af064c4a10d85fa21a8997b8e7a0de49b4141cf103b12416556d64282e8e0", + "01676a0f9b96b9477ed79c2ff1d1052c034fb51bd8cb67853968df55763a354bf4258942a1775bd273b34459b50a1e256b779dbdff9264e5f6f069697e0df310682ded55f76a7c123071e39a70ae5d290a2449c8113e060d27049a806842bbaf209f05f53ae0f700beb49db4706a888adf549d4ee865181da5eb6c3fbe423de621ffe3761a35cc95e59cf3d468b802c95af8f50479f38c", + "fa7ad966eddffdb8e54f2b19ed649a673c1f7bc331033e6fa74e93b7bff91c5ddeefc180129c4b5c4880a5635f9ad1a2903a94b32ff8caecf102bf522a9f070bba37140ddcb85e01a20c80466857e9c83b9c76dbaf0ffd920541fe63aa280cea9826dfa51c1550f8b08a71ff1e96faadf92a942fdc7d1a56ee73f6f93f59ca0d531cdb80008d3fc0b339e94a37205241e07a339126ff5b13ac75450a6752d38a24e25f61280f280a4c572b50006ba078e7a5ee0e791f1f602f4558d13c87e6f477eca2e18b658699bd940f57b7442ab5020027740add1587962e36955ba1550f5158d3c60a8aa9d28c0173d784ebb154ab", + "5deeeccedd5261aaa3f14af92e7ac55c6a574c0a5ada9cd40d5d8d41da3be8a56d3755d748d68089c3598e65626c93a704213294bad7f67cfe113a5689336a3930026dce35c840a57ca05baaa0aba51a3d7bb1f28dc859ee5e9a33084f9ddee9ead1ce444c8b06d327133b7dd5956a1a74465a1691805cb17ccb8a6d53b84eb41ebc3e3d78fb67edc30f06ff02502d1c72a159574a5c" + }, + { /* i=2528 cDividendBits=1167 cDivisorBits=122 */ + "5dbd70da8eb493f1f049b977eb8493f3d92ce87c384a0f0c00d08e4d02c2f6072d0fa213d7a81ddeefc5a1f68c96dcc5d60e8c3e6f11524f227b9b6991aaa60fe9ec7ea16a41f3012eb4d8bb02ccc19e460556ef9c7819e12683957b09a84bf92c9578845163bcf226411f34c6249d644b5d9222aa20401838baaf3cb2a457341863e48042dd279cd7a5287ae023051703c6", + "018a2995ac1739125e9eecc6916f372e", + "3ce1d1ed87f2c6b73b82e9f9a17c730a8463cd1a24f251e80382d022bd1ca344d9cfdd15603a5d1f418140c74c9bbe7f3eb709024f1c5a080dabfeb13b5d628e0b33ada850d178fed5469a6db0a6592f49bfc3a2fd2558c5652d3aa95e7c506533f4ac70d9eab6ce5fe3cf1e90c8b18b9d71e863e984e10644a50183a6f90a1d6ecd1e", + "0100d15461ab50dd659c2191ff1ab662" + }, + { /* i=2529 cDividendBits=963 cDivisorBits=138 */ + "0189accf03f8095daf2cb72a7f87bea248a3ee12daaf99b60b3ae21b7a9c94245cb5bc72b5055349c019cb5173ece3a4efb92903f740700eccb18bde011ec7276c247e5301360ce84ededc76c5af147d6890af285014c66bb794b01689fded6d2b223cd3c2b784f6a9863d4672df10ed332cc5af0fa60499f3", + "03b5b2c75abf23790a33ca245cf68433d4b3", + "6a1e66d797f22146ea80b323447f223919de38b707bb8702af513941b92a59880f46ef30b50dda4986add1da25bb9327402bf8ba2e8b6b651b2ebb344e4beaa2a7a5eccf1b315b8e5d18560503398081aae401722a353b8e29896a7907c8dddaeb3523b7ad3995", + "024ff0eff092e3f227b6e56028997786f2c4" + }, + { /* i=2530 cDividendBits=2441 cDivisorBits=2218 */ + "0156886685b7e0aeedb2699ba4b30bea6c8d125d7a8fc6ff20e285dfd9104ff2b349c65886c8035901a0675c3745a6eae5071d83e93177c0191415ca7d50364dc8cb1b92cf74733f56f9b95ea95255f15c0df5049176780c55019cfe9e1fbfed3a9131c9a53fe636af03246406b91e13ee3d3da5290840e9a897026ff76ae4b3e1c510f001577d94feffc851ffb521f3d8add7479ff16eca5d040606f78eac25102d7fd578862c215d786b58f9a39a266fde469da1fbb71805e73b4c2efaf8b1112db133cfae4bf9b8f592c6845aa15bb18134a7dca9fa4765c2e990f48cb5f48c8a4c1d35d097fe375f085ae3c96362751487c06f736ae6f2ac46501d688d2d1d18df9d94550e496fca6a16f3e102136710b6b91e6b9e70797bf767d8945a38a1641aeb278e509087e44c29514c45761499", + "020038bcdfa22b94354c2a989610e6b2ab99c9d1086a1c978589bfac018885f5d1eb50802161a6c2ac6e029e1d66ffde4f0df67df3dd27457c1e66fe5624c5a5a2deb704d418b9c3b931024260132e8950835d43c79bd2def33c5d0e9d5ec6e3fb59205d7dd3f872481306b88e46e7e43aa16a45d0af1913f996a65e988ad93c221b96007cc735b2499b88a478120bd30f5d463615955ae5790f2f0198cf96723203f5a75741bf607b35e5eb45cc9ad64ab1d7dfacf8a50ef247536d39520df58723df9fbb49acead4a226c4f2a9607daed8d5479b71d766722ae24352d42559239d55b179df9f8064a0545a261b741527164989209d44ae9f59fc8a20c4fb16356ce02dccd9dd55d62d9a2e781d26d752d838013ec3", + "ab313ab995e99344fa4bb00fe673226f00d4dfb986ed41ded4e1a788", + "01a6946be47fd4b3ead82a2236e7ba42b64e9b3f5296f4d22dae39631c1dc8224a235a07174dd1574884d86d9aa258e5b8c7f183860c594f37cb5a184eb69ce2b0b9b891046847fc5e3a7bd88b3f8119eefe3a590db0bc08c8afb02d0e9251a36f49d41578da6250e184a97a62d7c451a9a050186cbb1f5ec1e4528f44ba9bfe5fd6ae03cfec2e9be65686e77225bd2232117af59f36cdbd2fec81424179cbc773c969e4cfdf9199729e1383b8f559b19a9464ac792ab835a9c3123bddc9bdf84293b0fc39ebf12153e60f0a494c98fc1bb7430fd9814fd64560a1ea655ace330bc3e4b8de50cf97bb21083533dfe1407dc719161e83cf845392a1a7d4610c37de92cb39ad177a6cb1f89f6eca9145c510ba0f788801" + }, + { /* i=2531 cDividendBits=683 cDivisorBits=423 */ + "04dd51cdd09f830eca2c9702a4338a95600620491490cd3fd0f276aef7d8a6269ae25bab5e5a125126205a22e5e846e7587bccd2f725a258135dcbef06afbb5d32beb2bfb8e63521fd5022e3d6b2238756f756962767", + "73051486e02359450c77b3b4fd390642f20a636aeb225464c3e6efe0a1f4120c5771aa0d10df3db3c9e3ea21584066441c115dc098", + "0ad3b61884b8a529d6a590cc8c3b2ab7dc4962decc2531f262e9604229d3ea23ee", + "6c3f0adbe8dd51ea75ba5479aff19997b68c8b7810b968de1c75a92cb122f2d721bb487ced2aaad9d2259a379f608100b80d285217" + }, + { /* i=2532 cDividendBits=72 cDivisorBits=34 */ + "9957613d56473c1bdd", + "01da7804d3", + "52bc44d29a", + "2b081eef" + }, + { /* i=2533 cDividendBits=1333 cDivisorBits=748 */ + "02542d0d15956018af00b8b79fa8fbec4f47492dc8c78d05b5a6ee8321aa03737893a077421b7d4d37d93574156630b2b02bc8d50ea2ddd2dce05318e9491d7430591bd2fc48e98488c582300d586561b9bf102b7d8cffc1ac17a7bf3da6dfd90e72e65d11e14500dac8b50ee22ecc8544649f823e9b3af8d1e9c72b3711d21982f1c634d548f638c4f8b7255d3a24603a5ae39ed2f9677511abeb51f1c2845a3096a1d3d8c52f", + "0402837ae6ff12ac25b3e0be3cf1a33a0f2f88aecce22bf715df7a52e1ed876431d8fc734ac0ff08561f0e932befb4208a68e71f6370582b602d9c4d3014c5400d7c4a32d27187245dc437dab61db2060e5acf563592e91de2df0a32780f", + "94add54579fa80139cc5f6ca613caf05065fda30be1a81ac5c0e8f5c9176e804896cdccf57686618b0b5f16f159ee5f994695a3c50be49dd46bc8d60c314dd9eb1e4e0611e083fc01f", + "b8ba9f351463976763f3123afef18a274408d2f1e832b5517b31167abd1118151b008c4d3a153e9b4b939526eed102cd0d65bb0f51a9fa687dc224ea37c830d30c8457b8dc326893f9f102283d916b3ae5f73c8cfc2dadff0bb9fffb5e" + }, + { /* i=2534 cDividendBits=1835 cDivisorBits=782 */ + "044fa3af1132e93ecb66a915a6f7ccf5bf97121968d700f5f751a825ebfa0118bda88c58177e873723d417e1f9d7a9a90137707c6dc93f8b3ed61fa73facacb7092d934cd9291f7b40d4bc4982aa9589b9fc734676e978cb79aad692ecb13c4b79807f86f524a0b85003913aad445e1abde2b53eb1d2538621e52259127c243c9e02f4d984d4e978bd840f1ce2397c2c01bb2edd87b04be7594d4ad05cdc2ee3ab5d91b8bd59c253aad75a0a9b9fec08c6077f28d47b14a30611f010563ff754310df795ddfb86bdba36ff413bbe74133d110de4e059a5bf953012faf42aef0ac703b2b6e87a", + "1ae8d49eb67666e585d4b06d654d6b29d888fb6b133348a03f6e7e0043c9db4272360bffd102271b189a74e0e5c7a597c3592013ca62ef93176b598e4540bcafc793a7767926991785281c9a5aec7c9af6d9f4b702771360b5a0f348f10a493e5fc1", + "290354b2768aa7cc15c966fcfa4145972916e02914ecfa1ec96e75451256c24027aa2dc48fc7bf6efc48195f9d99275e16f5a8958566834179635dff5e5fc0f74ce7879681c8a44b1f078d30a1782a167befc451526e9d34aa594bb69709c37eed41fcaaba00ef4a815229dd215ffe4630e45d879a5be343ee4052d39715760704dc31c2", + "099885faa73ce5153f1a22d37c8c27c0d91f73bf5e4c111ae88c1a83b22b66d66439d66508a229920aa2c17d0adc2b225ff7e618455190e32c7a1e99ded87c1c48b9f18cbcf8ebd522862e545745f95414abed0f298772556b77daf8a5d2f3426738" + }, + { /* i=2535 cDividendBits=2856 cDivisorBits=2521 */ + "3a162d01312f607f0ac129d15c6f6f210926b66e55bc22827408d739fc1f826b2bf8b57333f423025cd064c342f6298e5cf5356027fe1baf8e6766c0d6b00b2ea5f1c5115e26a0e4c37cce0f8c313c2457dcefcd3553de37211a01cf6bd47f47d25f5f6cacc931b203b926f4e80901103ce70481b67420e7dd04025000acd9facdef7565e36911ef977ec81562a62eecfabd63d35756d0dc188c893d8fab2f3811b9461638cfd04d292e34d8f0671a5b87146b21a545975628a3b4edf2b3a27381890e30b1dcf9d451becdaa7b85e163bb80d85246512427e1258c915df337580ab6b9f2ecc0c2e687498467cf859f7755e53688578ebeae8b29c13015b4835defdf79747cd41a3a2e81648ade57f91f84c0de19b483b9f8ec039735b1807ae788c6250cafef0b66aea49d0c7c098652063142043d3c93655e841bf587032d1c769f9debe3afd1135867e7a63a4a288d7bb84bf800506ce0a902bc654eb04863425430c438", + "0198bbb10b718a2fde35c096db536aca9c11b6ad5063f6c9398f027ff7e90bceb6de28e84ce87644cfda52dccdeb00521f31a3885906ebe7094f3d937ec7c9f4bc0fc8747986a79d20ec8ac6fd2f803fdc7f56bc5de93b0452a8451639cf1cd80da69a08ab6a0233dddd51fdfef433d94b636d612ea90f929ab050a48bef77426aab6b2e0865e5de7d6e01f9861f9c1343a82377e62f65702776241140c08bf25acef70a8063afb3e25972a3523dcb04cdfa18661735931f5ad6ff5c40b0b167ebc177a22111755ef6836f939bc50b5b6812c96e3fdf1517398b3827d711a94f0e61c64b96633b71d4b6a2d1fec869f601401ec41fcdf7ffdce7dbbfa8d277d43e2e3ec5f558c8570981da4af5bac3086de862c36152a8fd46bf795edebab075e60ec8071ccc5f0d560f419ff9143c3bb800e1a8ce8fae628ef059dd", + "246191ed7f0b8a2bb9801f3b95cb0af7d19b7cd0daa8c28aa36be1fc1b3b77303af9794c94aceb709a43", + "daf81275e11e0fae27651c45d9cfba25eb913f63fb6bd2b97ff3d2265403143fb8bddc28758e51bf5b2cba89f77096b4ebf11b8abf931b18f6b3b6ba2706aa7e03bae4eb9ad98f64cf26d33d717a5d5ddbed0b2c6658d394bdaf64debe8350a95b65af3aae4f48e903389eb45a5ae1a44eaa4cb6b86875f6eb1abb5e79595aa4989f2a262c7e63c4bcebd05d48b58d8a694fe56c9645f9d50a6ad87ebac991267780126a25c918de0dbc984e1e0075c201e6dbfc00a0ebf7a9c0a00180ed2fcedf0a8cd2f71bf93e1925a967d648eaa708ba00e4845456695377de78d33dc8a427d353f635dbb7aded278d1fbc05fe03947acf6891206f2010c780c95f0f03b58b7cc0f95ad46f775df2db9362cc44139afccf016abfe069435d264dd4dda19c716b374a1c74379b74e8ffe574f1df5e89dd494d652559258a4d61" + }, + { /* i=2536 cDividendBits=3744 cDivisorBits=2354 */ + "3167177293616a1fbcdb11b4ac2dde6ee9b55baef62b2a0b94001a09e193c18887d22f0a726d809580bb90f263f503fd6de2579c00a737948134f8ec54c55c7b80e082d03d1c95cccd3393f0d55f71f82d98f0392c94a86b83cd5f501aee81640efb6bca5418e14b95ff851b33272a3b3941f31b0829e7a21534070c890016363e895e33fd43d860bf392347f0f15a6cafd2a949937cb4ba81e77ea4091496a955a89fd02f8cc35df7d489c0d4356ccd56f3e08d9c7a46053cf2566f1fe464e3e4fd11f58883d0b00e5ecc82a02cd9213120214d673fe87c326bc39e421cdfd473c770ca0a569ced8eb95303af43dfdc6ac140bbec7cfdd4f4630ac772141064771594bf7dbba42cd994aad4928965f43710a5de756c6b1d9d412fa3e1f6311ae189cb186bcf013dc309d082bb816817b5556360f67ecaab0361a94bf88536a4f4cc17cdbc942e404c3783ff1fe8abfe1ccebbae5de75f026c3364778cce5f089b59b0f768e70a3d526aa3553dc42e497042612c9385dee8274e74b81977b7ae0eec64443b37c4f78be581c3bdcac9c2071bc380bf71fb3ab404ad020b3aea614b98d55feabf07e0c00cfdfe601cb524ff3cd858e86370fcca416605d52e34a253d7adeec0b6506c3d3978c7e9d852b91b395eda", + "a7122c1c00b211d0398db2d5b24660295da090d1af16c0834459f1c146c511cfaa3b0cf70600dc47e48e56fe5fd9026ff8baccdb96dd17daf4ccadb499017558b827b95381d1ded3541cfbea03f9d74faa575e46acae188ef6f64450efcfa3d450fa6b77892c843c5f8f2bc9418e0fb568ce2009c403c47f002ce15b451504196f255483332bd5a619a2919fdaa661f4d2ee4978eabf67b117c1cc7651b33abae1b4a5646d3e8d9f9328a7f0ae86ec4a9c6220560a80e3658e3573ae40f8e9345bbaad28f4599eada26bc4f03b1000c76d36f8930ba8c0d869d4575d065a2f9c1495f2ca1d16536801c0305d2b293b2e34163fd9de72024efaa64df9f2654d59ebcb533f7e20a46bba17f19146e48ca4645c85186389264a5ceaf7db267f6a1d3ba8a9d3b191", + "4bb2ebcd5b6bae4d839302609dca8b0c3235fc30242e9c7ce3a7194b6cb143fbb999c173bf75903bc2a7ddd7adf6610a8760c445d841e6209dd7cc02a11459657d9e311696d6b72c8a286c9a6d2ad359d63aab0c3e561635b23051484690bce409e3338906cee985bc87dde9df219f10952f671d8fdf8639f8c04bbaf40506b435e8aa7a6dc4105bfba97cd43f47c5614618d8fdd67c2656c00bc0bc5837ef2b5b560d60cc2b14b651f452aef0c8", + "5f10bd48dfbc0a2ac3c4624922193c674a778de9c88e76e7b18bc3c4512d3d1a3915ebe200d2330ea02ee052f64c1eaaa22a87b3039250ecdad5f854e13cf783c6361caa432894ede585787c1cc4a3667a857f2382d416e352d20e7ed7a4d2fb75486fedbfa651ee410d63c4d380c787965c13a6bc3678c1938d639ad7af03c9fab6daf46db6c321305dd4c34b626cefeed72072fdd1aa9ad6bfc8b880f5881e596d9c3e1d1bf8e39c3d2aba1f85d7a7749fc6badf6146f3b7e2dc41fd07faf738db0007138c9dc057de84b8d7cd66648c168cfb9e32414eeae7bdff1dda61d8fcc28d9e810c52267982c0de7b9679260cb480c32f020453c225247c03ed43ef258cc33788f4dac86f1174023ffd7ce5906d5abbd3ed3f8ffdf804fb948e9e003bc6d4d0b592" + }, + { /* i=2537 cDividendBits=1863 cDivisorBits=534 */ + "186153a1ecc91292de3911417d60e088b26d1c15c424cd45cb7dba82e16378ea9ca558ad379f2da2bd57d920f91fdfe7a5311abb1766c2488abf43d4164f3fb7ab84a340de8b1a173b0637dccd75aba708a56cd3a4e6f81e0c6cc6054a765cf5c829eda431749d6445886ffd79a85ee83eeba3d11b8952759bb66ffc3e2a510fa9517219ef2162d9e4809ba1dd5a69fdd3594f722d22a317d99fed0e796dc4fc2aa17657aded6ea1f8895fe158f550462fca10e8d42c5f32eb1852854613b7f18a76889b9d2d2dc526fde529a1959754f9a79c7f0e72a2f1b3639cd637c3f73f9353cc01b12d3e8c20", + "284cfed23d0df70e53a4e71fd8952564a52027ec46842d74fca4edd375fe70e8b390e12d2dce9ca5ddbeb04ab693bc029a266971f156c9cfa674ac9437c63e39e128fd", + "9ade62eb099c631a7545cf8dbe5a8616e8e864414ee5d53013e13f4d2df43fc419f599879befe012faf19a131e1e35c838e482aca851fa95a1d9e6c58f3c8d085262d450b1eb138e6cd7529b72049f04e97879cd1b9e4676d9ef28ba043e948ec719a90d6091cd2ee273765a8759b369a68252d572afb7224d3791f6e94d4ba0a3d13c362f9ce50cd4db798d936849d403cf354c27d26330dafde98dc93aeefc306e34ce394d", + "af9392996685c23977b370d5585c0b5154fa04464d4af904c505a76dfec57b0d2ac29061deefe2476e1de2d75cdc22b993ca28f11c966b330bdb849229de42cee307" + }, + { /* i=2538 cDividendBits=924 cDivisorBits=757 */ + "0579c80e7d3219cf38f0c38728ac7b94c934a020710d24538dbe6c11f8f8316956c56d7593033511e4523439a8ceb97f83ddd03d3bae0ae7e0b9fded447c618b401c49465ea2a6de9531d9f42c99e75babdc1f17c3a91a17ee88ac995c26b309cdac4b3ec33f9823bf2d48cc5e7ab50ff128cd43", + "06aeffc90b33e2e1ea5b896127b30ce499d8e688b0b786bf501e0e4f9d051022920f9148d42d8b1b868b633e3addb7c0425a5b17d79d180ca027183e8a30bc5c8298a7bce344dfbe40ba2b56d815af5911a53f8fc93e74cce0b0805c66325f", + "d1bc1b75114470b4be0b67db8dcc8e34ac852fb801", + "0582ac4d129bbe0e18bb36f8b85ae125c46751d997b0b300feca431b0001e4a8aa243bc30d0660c4d3068784a18545e7d95fb4a885f2d59630bcc68380a68cf0bb832365524d17da23f8768e0e9bebdfe6293e3e5e60f97f948f63861d52e4" + }, + { /* i=2539 cDividendBits=4074 cDivisorBits=1281 */ + "bc8923cff889da00ccfe9acbd48b2f4e5a5f998217d07102a24c74ceb347710514d5a7347f7a5d937ba65b0941253498f9467406d984f7287225acd8fbd77297127f664dea0c523b9caef69ac5f2e9f9716f372bdd0f95628567fff2fe49148363db3b6c77507397e8314164fbd99a5505efa33f757520dcadb741284cd0df5cc30e87cc21a1ca109dce8db0fc41473f9160a79ec9d150e66ebb2a73e5b574bb44c169b723458af55721f845b6a68b2c626a34a1e2aede440e132fab9f4fe17e852f3a0ad9ca36716967397ba54223f5a40549b5820aff736cc2ae2f2a148815b635b1537f08abe26636c069bd0bcd35dd637e6d0b4f44f273adf380846f3e023abc0d3d09d39faed3314bc9c3fa8beab80d060b6eb64df86e7746225c24f5bca3a7d08067d35137a8a909adf42cd448eefef77da08341b703143c3ebc710aa65a1731d43d843ec03d079d53aae568ef6e2f119ccec70b1c80f236bfe765ed85839a35823461f67397795c87593c68803c2e018f6beea35d00388be2910164a3a63f7dab274b5ae18894a174f8920c0e28f5153401ea9a41a19d682e60fa3921454e7f1d524ae1d47cccdcfd2b82e5855d14875651f520d3c0d64b2057dc3f8033a4ea15b0c4a9c4930972e2fa1b0829d3a48577512bc08039e187b69d699de4096d55fcaf5c5fcd7e1625ee92939516c807c65fe5be97cc4036d36d11", + "e784c42a2eaf6a99d5e0902db7c247aa9ea717af41393e711f00bda4c4cfd5ab9070f17d0b0fc1a154e1c9d2e3eeef479a457b8d599a8d73ab53a58c7751ce06c27f4703901fe544cd4a7c9a8ee9ea9647a484f10861b62609ae1cfe84150be73ae7e75f230d608e867057395e5f3337194b1598b48d886b21d6f0c7aa910277f9bf6242578529c519d256184e5c7c714ae9aa28f83ccc61ec92768fe030a511", + "d078d24e5371eb50412012654c2e4c5aad3207d54d4ab0d5fb24d573027ffdff25c257a513d43f6df4a1fc8c8c91c08672dcda1fa0e7d40ee395b5248c04cd3a8832a534fdfb6b52252e87ac6264ff401c33086b352096f6032bc1ac7a04944628e6b3069e4f61ca1559d582e96ab1170d523dc675dc134405e0f7ab9ecf15456f4ec7fdc75f327f24715c3a3b17a3eec57836a70fa556abbb8b0dab65599eaa07388e0eb362eaa2551341d59768b2d20a6a6b5932551a5ebfc464414e17d8496c99d03ecb099c0e579761bf69cedd6e65acc9bc2de5e6c27268afec41532b77a0b0c8388d61938cb86c3c944f5b4aa92bc3469d4a5dacab6200240af7f633a2adf29c5c7c793a4dc9581fa444eeddcdfd0f0e460eba65167dbfaba94c9e393fd34b6fc63286402ad72b6593a975818e6c5414f8d7c2022d522baf004d1a7280ea7c36408734d259a06062dbb6c6f8d7c641953a44d39a4215bb926154", + "adb61ec1c4ead20a95f23d298671861746b65cc11547163b71020601f4cf13a1f3aa3d3a98f34431b68afcf7b154ab06657cc952629a5e9f47be3dc612a176e774b47f626a1cad9e5cc274e3efe7b4b6b616ed7333029b8ce5baeee9e40a41f65cae90372bcd3749950c1185f22629c7203aa14cc88b526e1e1f9b762246e6c610d6db6e74c097c70aa0551fdf9535a9ec03d5136999d38fab051061a99fd27d" + }, + { /* i=2540 cDividendBits=677 cDivisorBits=157 */ + "7ba2a42f0923cc8ec0faf135609d284152ae8e1e443430a1750b7bda226ed7df23e97e4e201e239c87c52de4184282862dd451077ac4346ad124ed80b92bbfaf5844e3a700d20336ba0ce9763bff9be164ffbfdf", + "1da4473fb66d1d95d0a8d726cda997415f8645af", + "042bc612ab3a7e49277c8df1df06e3f2b989e46461ce1940eb44818bbf7a81d5401c79455ab1d73117a623c1be22416b6e3716f0497408b7f0a5cc11cfbb8e1c79", + "031e1a1a831a88dab5f647e4589aeea612d7ac28" + }, + { /* i=2541 cDividendBits=3378 cDivisorBits=3309 */ + "01c2757c9b355d7aa86e5ebc28dc1b84240c0062e6284d36b37519dc3754e73b7a1a5b0a5539a875ad1347e857b162d5125d9c51e73976afe189d160a2c854ed29fa5a72998db5a3df977eacea6c119d46236618b05f5421b2e39515e3122b683e047de250326300512afe86939090af61d31546644e47f60760bc7ed8eb14b0bd550ffbe5029ce8a3477c93dd1e6cc6f8c8ae9637413c5cb36626e0f454294ca02b77b42ee4ec41d55bddd44aba9c227355d41ca05991c28f7562741ea61ec48dd5ec22738a30679ce3b50e8646ccae0f84f7b2a41879ce1c5f61a2c38e21700f5d5f8e66c52c55695063a6d33670e40a49d6c6af1f8ba9b6bdeb719a4815d9dd2120ea0df63f922f1c7e41d5c317af8d45df32be60ac6b97db4c71e0704d802e89c96ac4ac14cfa21b36bc3996df4ea161f67c2c317d7abde6935ed9e321284eb772eb20b0787fa8d26a1b99f2352d85af05300d523156a53ccc44de7726b01b6d68f6d58d15454614d42f6d81106c565275ea52d078e3590024c093ce62085580c2f06de0a8e1490c7f5658c284bdb9362421156a88b229255656794b72a1ef41df624343bb", + "1ad553d51155b1a4197ed5184133e17c409fe8794d21c946170ae888547e0ab713a644a1a5f645d9c24f4b22b377d41074695653ca813f19f3f3c8a0c56944c499f877cc18e6b210282055a99e67200580280c1805868f50ac1a29ae6f6c773c34dc67062e8bd5cd14e13847150c1fc7784a42cc4cf8a499a037c4f45942af38c5762c89c7711931c6a112d9f2d6020ad9313e83bdd670bbf068cc0cf7cd2ddbb55e86b2a53316460cd46f8e6d9048cbde3e10e291d561c390a9f78e77176b19bcb88841851328954a8f988e301b03c9810022b022b49e772dac9667de99271dbb3f188822b6d23855208729396b74ce318ad3b39d443aa68a37ad4e957ca1ed72daadf026d0ee34d2920923b35757f8dca98998fc3f2f31e20a0c3bafbe56c453c5e7181ecdfde137738f0fb7806404bc1ce4d54864508fc7c2674d406f6906d7f268676291408e09d696d46008e1a3647bdb02cdaeb1e8bb75b7ce0399e3354e363a2e621aab9903da626a359419ee19f6478db7c48be1aec752e53b881934dfd54dc5733efa2840ba36b573dac1b4e74dff82dcf249f5623542a2c42c", + "10c98cbcf19d46859a", + "07c7ba34e62abcea484200f8a8110e5b93ef87882ae7e293726ccfb14821bf978ee0557a8e0937d655cc0b5d53da2a501a837481abc16bef5ee6cc83ff001bcc86671ab28bd47f710f2f6a548016c09d7572de9c3a4349d830305666907f3c07245f341fb9fa7ea50b17a1f1cc7f41992b0b255449b4dddf86b50d2c43dffc5b560dc3c01429e766d0f62136a8801390d6d9c07e17c7bcbd799948c488dc1daebbc04a55fd702ecb86c8fd6f81568910e80e282fb415ad5f8f96effa356316fba2620459e535762aad3df7a78894c79dca99697ff5788f9fee5e30a14835b9bd3e01bdf26b6959cd1a49bd2d245324ca247a47813a7184770d7c53ae90500407b023ae599f15d52310bf959e11bb81829dc522c9a98ae5c054dec2c67e2c9fc68053097062ebe96905dfd88869a240e01a5ed2cc056de4a924bcd94663b1db541fab2ee65789b519e58c1e1da6f147832cabdb1e2d1dfa547fe2f9c1cc171a7956a744cf4e65dda68c9ac0425669749cff809c1789723b6246f8edb8e9a3e74906a3c07f4f9e767b256c3281d6b9c5c72d591e9bba150c8379fa1c666543" + }, + { /* i=2542 cDividendBits=1244 cDivisorBits=1080 */ + "0a0bb0feceebbe8102b677ce8d863dc78f6d6b0fc0a78cee12a25d98e67663eb09d9fa33ff5856051616ce82c19d26d4b40414e7e3a2cbbff7540ee2cf2da3c204685c2913e04a3398aa080cde2da932601be850b67e33242a4e10ff11dcb357e90b8af68be6edf202f3a9db25371e97b78201f4d1027834ac52111036ba90c04217ab967f1ed04a788bcd4189205aa8cc3364e5f909d2e9cb693f13", + "8fd9d8ac8232dcedb956bccc8227fac8a0348b951764f07a7d9fb9c68444541267dabc8d60e9f2906803a0b6b66d629bfee45c6cb6ede4321a60ebba8fb0ec3b1aa73f2b45a16b539ac2d25f2ea70807173b1dbfbfaa7615f1425e7c2dfadac64cd3329ac71af7eab339da7e271ce3cf2fefa4381861d46c37706453d63193fce41d749911c4bd", + "11e0a1ee09d8da40ee94688949616dde2ef73b79d9", + "6a65293402a7d1629fa473ed4fec2becb54cf8caa73de51c6742263e3c0a48af56b785e7dff3ad76bd4da420d2373c0cdf09d7683f402b3565546b6e2938de95d90aa98ff18e68158b7d4ce16732925b74e9b1e84d47d5d038cfdcd1e4d4b981cce3f522a56dcb024e90ef5b2cb4f2bb9fe104ab26896f965ceac5f3c97c3c34eb12d9f2cd25de" + }, + { /* i=2543 cDividendBits=2728 cDivisorBits=2113 */ + "e2be512e506cbb72caf32578c9554733e174793fbbe92a59956192fbd70efeffb4a23d892af62df067e60ce0014459f184f602d19d12bb2d2ce81da0c39a03c0f8ce896512f42c465f69ab0f8029c2db46294cc2ad484dde665d419cf8c26b326f63ce91273ea69988e6d3fe43c54a6ec483c7347e20fec5fe9456170e78494ee897e90f5af79c84407f6762c14afadbe472c39b7a1bcc6ec458123003afcc9fb62c758a12352f95c73ee61cd5545c4283902ce0470b9aae444f585191be439aa118259e0ace72edd212c50e6389454ad771f6bf78f67c2f950c6bab3164ea2de1a1cc8b65bb2b361de7e851e148c2dbd0229a002f0f852bcf4f305d7978d83bbdc4add0e919beeba81ef43be61ea343ce061eb9f4ea61e81f6e1a9530cf8a9bb9baa9106b99504171b38a8f4834101928b66e169d882eb7359de9b2fff8c09e2e67695636a86a9ed08f35c4476e9f0214a3c3b0d7", + "1759c2371a82fd302c4afc76f94d7891bd2850f006503dfea2ec2c8d3301aa9fbbefdd603f08238702b609da4da233cb97bf83c53eed4cb91747303eb860f2f147bc3e169974c0e6bf5a61c7865c640e856eaaf8b438e35083e53eb0bf16ec57748cf3f988c0542ace5b169be1015a28fe97edba1b1bbc35f139e5df26b14ba89a95c0823b37f816d1b49607f739eea6c734f129e827374b3c9393636d008c1f7b83cd9d9f7c80ffa8f4463b81cf2300c1d9874adf0565011b9f9c13ab41c80cfd6427ea09c3d631aa73e6b8c27d4f5147fc1b65324ed17914bf8444f5d44852f451abac88ab7e163cf0f262a42bb90b26a608c947c396f4e98cc621954d3467a432be0aa47686d1", + "09b5db901399caa215634a0c4e8d815ca50f7d253fe4f58d5233159ab7707b1093a98ebe0b0feacf3bf23ba428f364cb040b26cb46e5016fd191583780edcefc53ea7e10e0545bcacb862b662d1c", + "0e5de8fb28afa74b846eebde2de93a90500b5d8773a4941c7fc9f2532776c7c4f9aaaad34e10893c9cd716b61a5e7ce771d01316397732045fba58b10b62574ba7aece60364567c3bf8846cef862ca2a20fdd6c7d8bf1dc7dda16a32a7f7394c7f98fbad217519c672efbc0bfdbedcee32a800be2b98ba872cad4a15f08e23783d5faa0d08a82133c7ae07cd9403e150fa910056a310fde1095721fcc1cf1051852bfd72e5fbfa6c245cb66c080b8953c4354a640c485928dd02c79b2ca280abd180aaf0f5311988cbd0cb210bd7d37bd779e9d4f42e993837699ba7d7f9b65953f22261d41672a79737122c1eab255824f441f866f79f662e4919167aa4f0ee4cf09dbcfed434fb" + }, + { /* i=2544 cDividendBits=141 cDivisorBits=56 */ + "072ebccb99d4b3cc934fb0ce63db62d9fdf6", + "765e49af71e716", + "0f88b68212c8dc3c2f33c1", + "2af15fd7e76460" + }, + { /* i=2545 cDividendBits=607 cDivisorBits=556 */ + "20af17ca3297b932abb3a6164a11602f954f530a22e309170bbe3c3a454dee4ea6f2dd9d1344c076b88546257bfdd8afdb3148669276934673176d6a34dfdafe45980559914757094afe6d58", + "09221ff2532fe8f907acad44b8214ab7f1b97bda44de2ab7663aaf526c675372d3da96f9ff0332ae0300bfb2c10c5611b01c9b23af9f0d0a0fde3ee462c11cdc1cdc2eddbcd2", + "03941bc0e4e109", + "030ce9f1aee7b8bcf0aa140ce85b62714d64298131591aaca5f4560350362748e27f30a4db42b430c8eb74aecd5ba510adfc8d356806430643cce8a72598e7ea70db173637f6" + }, + { /* i=2546 cDividendBits=160 cDivisorBits=31 */ + "1b92234e4381e3aa6c03d99e0a281303eca633a6", + "6953df09", + "4302e2b6967a19cb5afe4afd98ccc6f5", + "2db4ca09" + }, + { /* i=2547 cDividendBits=1228 cDivisorBits=1045 */ + "0c151813493a8bceb22ee0d84dedfad893fe29c9fcc1aed1e43475931a836e6790367a57b14cb4b4f59ae6fce7efb72452fac494a65bf7703a0d8a33b68610c82adc32521480ef7527c4a82025949acd78aa57310737d2923dc5da024ecb035802cd7aad1612fa6f97e50a052a18c97c643213036f94c2e322b54185f199e0a79f3e678d8ca9b2b112a4f0ba175977c31bfb1cc9c5186f230ef4", + "170c272fd6bb2db568deb128e13d3a22e96e6bd9277d4f7d15a0e4846cff03afd8a6f42e050b43241313383c259626c4291cec68c24ade5f102a229a0b972d9e0de7e5f6bfd443ccec6173da0d7bff7cbdc8d4f0e14a5baa33e4abd4d116aa417ee6c863466cc2778c26c83f359eaad16b49959b22bf33a15d2bf15698b591da5f6719", + "863491738a60a754027bbf6e1af80e3f43b3fa72993c83", + "1125b8c9fc13b0e9f7cae62e66876bbf2f62f71152ad05ad118a840b16099530dfa9839872b9208a817630837141d6c3016f0cb3d9e9278c2327f54509d12aebb184d893a64747335733ee4f65f76ae826ca0565f37a4cb5c4ebef101e9f4c9843f69cfc6d21ee49586ec55de527b1b4796220f76dfbcefd5a843b71e083ef94367129" + }, + { /* i=2548 cDividendBits=2591 cDivisorBits=1555 */ + "3ce7e2471e1e1e71fc53cd4ec07951671d3d36dcef730b345eb551f3eee77333b44426d41ac8ed87bfd376029a209474c5f39c59ef3fd85ca7fdde751534f8533073a14b624e1f91f59ada26ef45b1c904323fbc0c8ce3dc5cd136141fb92bc12874bacec15c687b0a7177ad66476bd92e4eaa931ec145687c6f259eedf96cb122edfa12ceb64b4c721fe172ac952e466183e617356f093eeea22417b74f2b8d28ca36d448b3467367594b8c90917eae13227880170026f9f10b6855b232c00379024c4cdac8ac1315193e9f8117c2f8711bf3dd6f2ee48a31f2072672809ecf200b784d788b31df272918f72e95390a7f17528727b154261735f43655f89e9d237a6325741d4fbd5b08e2f644b4763e3f7269ed895118a311a24acc62b51b5652d415b6bc01f76fc568fa820168486e69ae7c82a635a1f5017a61ebb372bdd36f7db2e4", + "02dde0499746809b437ece876c4c4518dc7d2ade6dd822aaf89d8284659e55574ea674da7858ab364d95d5f181ab325ba937351b7a79417d4627f4b45b7e6dddacf8d4d9022ba7b5888f29f99437eb1c36d9a556b98f04161324d909328284d28efe1ecd715d30fc5fe7a7d685bd35e7f5deccfbc0532a5788b2d7581c77af7d394f29b96df3d8197486b47be0e409e598a0fc788b590ac16e8e772d692be38e2d9efbc29771d2b7ab3b72a46c75d7461bff538366f0bf9931b6f1f1bb60707b22fbf6", + "153ef58d02b2c0fd61858c4f18e8119b6c27bc6c47c787054192e96936b499b557f161eb13956c6d0b82599d4d0e41ddea2cd3b8ae3e8ddef09305d111fdcbf28f723945475aff0bf3744288f8af730f527aaad295b47505a69937cfe24065b49167180cf5d8ca8f96b38be763b8dbb782fb54b5114a2e8782611362ebea9489d4af", + "0203cb45b22ef2a59aaea78481a7b27884e92c16e70320835fc3ec6ef375587cedba1fccba308cd2f350bdd0b6a9ea2053cdb9db539dc95c2a24ff99ad41df44202267adbc8c892e8f54170c3d743e79a2adc15694dcb1098ebea52a2f46d2c810c4b0d6c2e34af449a54786493d221a38eda7498534248074b68ed8b6003b8e5d47aa6a42e87857f42a5a25d2c76f2e913f399aa709fa5261a129c1e62cceb8e53ad162debe9b162b02167d86529baf448118b83dd9d29bd4bd2943ab6ab73b45bdba" + }, + { /* i=2549 cDividendBits=3265 cDivisorBits=3166 */ + "011be8ad8c8c7bfdbb7497d95cf03f56ffa292074a3caac1ff5f903d2acd2eb5ecaa79cf8e9eab51535eea1149ef966fcab80bfff8d5d4d6b993d89ae263f8762f2839e6c1165220cfed5483d9edca29fbf84068e71029679f9a1a6c896d2ff9de19a3d7f28846ab9677bf4ab099e007c1d7cd1c3c23df6d06fe70b4f67bf3b9bddcdcd90addc18dc8e064acea76ad5a7330f8b69f2eadaf1cb3e3515a70a2be706091636b85430376572db164dec8f8cea43543591c56b0de70af5d3fcc6b22d1e2c62d36406f73cc7a0ec083da9fcff4e7ac12a344e4aee6a00a7ff7e03b846f73d76d0ee46d066cf2e279b27ba180a567a373dfd4e789c80a4ece290e1c5e8be920e48b9745a2b8dde58a555d627fe852e6ee9f8a15f2d7a9847b93fc17ac3ff338463774edc3c6213cd5f2f38713af1b069e0a79118cd5c33c8ae1aa11f543c0b4944f3a7ed92c844015d8a20000100e93d8cf42e99f21ff8f6d34ff260e85c91b0f7fc3e6cbd0489b7ab1fdd3506835a6c93966ca66bc6837249de0c2c5a14a1d9e335a7dc5ea57254cb99ef67059fb730de5ad5f62c4", + "0de7568158bb674ff3beb878d592109240f1dd24f3041e628d6e9e7db9626942ea425b83698ae43290cfc1555a24b58156439cd213b616e42694ec26cf3e9665ff130a80c9f729aa093536ffecd4151b08d0b9256313330da5620f3e33e5964e73c690217779e9fe2865ce03e44d24706fb97ab27834a95431158c6f32995861ee9c91a416d966da029ebc9cf86cdde040afdd7b0ade8f63f0f3015719a08c39851bd3363db315ac6c851b44c2a589f11ce2531809b267318ddc0a52137200f71b8a3f7e4192d4f3911b69949b8fdfb127caf66a8b7186532d1ef588bbe263f336a9a7c2aacd10d2ae4bf926fbb9f20827132eb1ca232871381b7108fa677fff053cace8c769272f9199e8e70856ec7115763a36d65857c3f742ff55014626d7e45a2a381bb9561e88421f245fff1e707a0672eb9d5c0eb275ffd65a403dad5bae5a3bed362a3ffc0cdae3d02496d36b0e5ee6f9145bdfb77a33eb11ab89306347aac1b3af66021bf69ee4e1cfaa648c3a3c59888f048f2d3088ed513837b044f1f35c97a79ee3647a2a156c", + "146b72aaad3e31ab0316799d49", + "080d7c6df7d832fa1e875c9229f4f98e529e387de7816c542c771c059d3eae18523772912c21b8fa65c50a8f94610ec91cd64476c3502ad0c5763475b9e47fea572de4c00ffd309d687cfb56a0239441663a3c340c95930d58b26f851d558d8b86d3ff4341812007c58fb7ea27390739b5efd527487f4bc59e15b64d47d04f934cd0c4e60e065a41a17b0b1df135d36d3c8b3cbd1c90172d5ffc4000d316000d498cc1782c5ab9f0766271187ab15f5cfaba2b0478135df0ed41671522d1dd7f3626244ded7e4bf3edac80ea574c5a04e3e926115e14b5c1c2e1fc5d6658ef62749b412120b3525ded21baa3319c5c39fe8fda7e1e57aeb28785dd0c37b15e8ccd467073b9f470e3492f665307ec2a7a6e96231b659524afaa87a778b0e24a2b32dd23a9493826bbecb5d5b2405fd7772623c2447863147376436a25cfa9e19c5f2e98458532d3e9ef2d98543791cbfbbb42adca1394dc019c3af98c2c2f900ac29da4ef492d0f81083f465ecc1fddbc6391cbced7a97d66448a76ef7bfd7950715d98a8d438d753a0300af8" + }, + { /* i=2550 cDividendBits=1993 cDivisorBits=827 */ + "010f2d209ababc283bad3fe0ef6b84d4fc27e50cb2e57070364566af967d51f6b0747c0ebd1f51594b6ab52cfe61caac46d7e824210627f14707b134f6f63d70f03564d2afd46f6972e4c0360976bb4a6bee4b2acb26aa565d44b300c263d971921c6ff182295aff0fef1fb84c8caf31b0f73b9bc3d04559470bccc86a069bde611ddc44812705be7cd308c6240c5d03f081f88945c28e72908ba796a5e33e2f49ba45a8bb2fcc244f1a2c3b5dafc79f3a073eb2c11e4af3de8c7e6156aaab554d46f1dbe122882fb647f436474e631ec628c6d4cacd6cfce5dc7cca4b30680490a29ff52dfc0b13a49f0125f2a62dac0fa572324c630401aff4", + "01884ea4131ff2bb31ffc848b23e6e13169f317cd92b464592fdd5654d0e04aaf1b07a755ec6e966abb2484872d6af41d719279c9742678f8d219668e1757c3841f88c7f9610e61591b3c17f48f1b18745abe2d4892e4b60d3e5d76489302bdb69a875659dc693e1", + "b0f4bf192387971d744e7b9c373562e54ed864dbe4a5401df4272d514963023737d98bd2107d246495e45d2f179cdc81b48693f0f7af1480ed08e13bbe695b2550c74b3a91b1272e1f4f3e1c4d623c407a1cfe01f3b2e3801b6e3b9f2c0105e3ebf02aa0463d2bd7c6e352c861f336f8013caa7386d00753257ef863f738f0a86f83f6e0539e48c12491654e6ed3ca81c705", + "19d4cb1d1baab7c2dff7fccce57b400aa3f3995834105807088f42d517afe20e175c6cde114e6395ea3075d9bd7532f133e2ec70a84db095894e34364a7483c44d13c787e3ce8c91ed49fa803408ff5320fa2b044cfe6ca5f0915d6f4e3cdee62e418e83cbe58f" + }, + { /* i=2551 cDividendBits=2515 cDivisorBits=2427 */ + "06ecf442e32104a801441f5f7641e1d0caf9c89893c7404a2c17b95a9bed2d13d45b76f1f07f2f35b25758793ac52e76425da6e6b3222432cb097dafd8e6e9033e97e9e37e86e66f7e9849d97a1fcb0e754f673c3483819dd1d73bba78945285c841609993751ce03d4d8006fb4828415833922278522ea178f1c3dadfc46114460b07f1a2f5845fc5f97a214e72d15874fa712726523854012646032c6d5cf7d38668c13452610e72927361f3bfd485c9d7c628f8933d57bf909ee9cf97bb75410a0cf36e734de6f86a7dcddf030bc970a4acccb38481962566c0f6a598784df2262c9d9bcbba8409fa8eb77d58103f1872a83d2f2bf23deb0672cac7d932fce3e06fc7949fb31c43c16082b14ab90b3cb6a012f9ee92034b409d8df46063a4296f76d4797008a572463b2d202c15c812528eebc214c0195c7c27", + "01140581169478505a2a2baff77898075d7a21cb69d6ba2fe1343992dcb00d57c70360cfe3f3700eddf653ed0099eeb12d59cf968f2d29f8949b6d2ca665c8b76a7616b2ce4558cdd93f53fb86b1199f7dbe5a9d002d17c883858753268b87fa7ad0176cd8988417b3bf30dc1f21d40ad38b905d43583adb9cc89090d0274ab6091116402d0c9c174e35e53afd59cc07109ca15350a07989f3c1c1a154f3f10f60fe23a39e0ff0a0c1f804d5fd9fb20ba38d672e8929969e3f8bc8f79b0833aa444e6ed7dcfbd4b1194c1abcb40804bbfaa93233a94bdbc4693a92dc3a17e375ba59ba01eef69482dc9251058a740e04d6c14dfce55192a8929ece1ec45ce00eb0ba71ef175db068eafed42c4a28af1c71c108a263603224804193ed33ab9fdb46c3bce43b4f464ca98b922d98cfa53b", + "066c59e249a09ecba69384ab", + "1c6ebe4669aec3a4c9fa745898e7b2759781b84f735c2ab0ccb74b43103a8f9271cfb0b74b03e433070fcfc6ab41626629b758cdd678f683d99b59a46818a72bb07d8f731ff18a7241359a0864cefc2a28f5f7b59b8d54fae19769aa6b14fb8a0d6afcebde60da26e02f48cd364fdf6d7143816f6ba0d6236b552fa44bc2024b0e2da4848c74a4421db9702752fcd931d4a6825c8fcbd8683fb29b13889826109417a392a283d0bb7ccc8f4832d56f5a2a2bd6ea42d45d3d6b0e571eaf302586e7a87aae6da9892d279e822374779227b5c7660f71b8a53949bcae155db56132c94be55143c14529f090daa5b6566ba7b9d808d751581fe318fbaf319895d3be0e9ca0c8c212eab408984d46bdea0cdea969231163385ab28f3dca397d0a48d41acbbf144bd28bc6601956d295b1be" + }, + { /* i=2552 cDividendBits=1376 cDivisorBits=966 */ + "da02801dcbc1e075b1f43a9ab3fc0a23f633bf829a9c35311e7a83f53fafc58f070422c124399448abce2353e2ffcf44b39a375a0188d71951de4a3ee03b909d9f7461f89c5e526380f37109a58dd5b9523df0a7600321a19d87494a19206faf95fcb1436ef420e8d2ffd2b9e805353e74f3deb1baca6e6edc43a3292ac721737a316cfc101558af8d225e2aa750cf5575de33a9feab6ecd02cf164e29fcd0c541d240249c5f29d5c5dfb510", + "32440548b8a59a6e3f672f248d7e85031996015202121c873bcc044134c759639bc6cc123bcb69049053d521ccbd5b9673527cc679bcb36175297191cf4716c37ac0eddd749260fd3c5dfee713898a2faa951518c7d7bda9c3a5ae1c243e54b04b41b4c0a3a2dd5b0c5c1c0ac16e05a9a2042610faf48a1c10", + "04564f48646e388ff3ff516f9fa4b2015702d8569a4a60edc95dd7d52b99629b6aa3ebc628ae617482ddc26d18ff2867263b9729", + "0bedaa71382f18d20613f93610395b343e0c4fddacfe6d6e949dc7bcc779165e2e99e913846c823be2490f5033f3404a79811690ee48dc23cc410d98a5ae1113e1e79dca0330a62e57933ebf5dfa22a01c1d1469e7a545232ae5b1ead4f81f035a586b2d97f00444c2f2b21c2bf6264342e83bc4f84d83c680" + }, + { /* i=2553 cDividendBits=1525 cDivisorBits=1507 */ + "085151a1ebffcd1422ab6a32eba7d0864e2b14e7e4e68b469b3c6c6b85ef8e47b97f08c7aad4e1ec2788c79ae9c460ef696be8ede325d31ce667fad5d1460f0d92271c05138950b7c3e3a3101e265a49b70c137fc350934603333cc8f09874b291963d215a400a8eb7a0648fb4d97f32c30e9835b26755c3a134e11901a495ed4e7cfbcfe6729a4683ec851f16024064396ba9099f5e1f3a137c1fc7b1926377ea797b8863b2e2f511aa940b9e70dfd807d4b18a1ed9b94b1971f48026833e", + "057c3072bd610cb39c6ae883df7868e1ea2451c07953e44b45dbec8f2c1873a7519ef4b34227fc6234cc99c4831a558de7555af4c977d27519b759a523f8ed3aec33d04378c13a753e919ab1ed46163bd5dbf35c9b3b32b401f2d3cd5c4c637525c7f064f006a738ea48ef9a5e121c1f80a11b63aac4c1a1a0777a3da4cf25e41d70e8878979294dbc4ab868159b401fa60ae508aeae57c328b58a5a217a2a8810385e07622b19a663c85aadcc15af27d7a353af3c1c51ed85e0b0441d", + "018433", + "765e1cfb7e61d1387ebaafcc93024a63c3e3ab398e0a5c2f126694b61f1774db3d3ada197007f229ca70ea59054b897511c30815447e19f770aada9ce9016b860c5313659f6bb37d98a115dba098ff1bd5ec97eda21662d0657ecb4abd33fcadf37a5a23c924332ce202854ef769d3ca9a2eba1b1816ccd4063992cb3b056bfde427169489780ec2be9886a5467b7511bcd5e3157acde7ddec86e08fab38c8d1ca7771017ec64909b224805a0dc011312adbd5d37ac837bd95ccfd77" + }, + { /* i=2554 cDividendBits=2594 cDivisorBits=1042 */ + "036fd76ef3d3af38d47125fb5b952df384f2a5b6b2d1c3c5fb69f15312ea43588e6c8e1caac2886b3b7abdc75caba4b1ad8a6f8f6830f786d1f4698bb0a8e5e77887623c9f7ff2e50a8f84bfb52ab7ad0205d2dd01459f3b3d57341013cd7b847b55cf5bb65b97851723d70db9ae41b9c803b5b27d69f416767f10afece63fb118aedf82c4618676096c08e1c7f0208b2f66b8109dbd2aedb6cd162410b838ea847be676e3ad3e24108cc7b446a8e6fd8b90c002637de85440f9b197f9a5aa1c906d959d9f7286bdf7dd4facba5d73e705df3856078ebbe0d98527c9938bcecd38de89f2f97f2d04ca828cfa5248587f53f1b12e93c0f60cf2ce17b0fb578562ffc908e456872571e67da8b25bc2af61cf1f9ddb22d0cedf686e69a8daadf703e03c3f53b0a872277016fd6fdf3f70a74b224cc85cd9089cc55cf735c3f07629885a571972", + "03b2ba1bde5077dd3bdb033d4cf9b112994218ccd2431710d65932aee1ca540ffeeef12c22ebe87a426f3ebe3926ef7157b789cbd6c0e7af21eb17f17819a58df5e826df121e80e5a0b9c770151969f6bd090ac0909a4e9099377d8af0aa15751809f2ff638d010abc666519d029744b69b157e3412cd45369ee96ab983b4620ae74af", + "ede9f00e60ae7cc24542be47c5b88f1146a1aec14fc8729d9d03171704aa0adfe81fb47805ac58ef29a1732d889089872d4be6153711c906237f2b7bce4cdb28d601f6acb72dd00f1cd4eb95d1a93a61ad153b63123bfc8b6c7867e5182307d2eda73a8ad637d330849c4b3f4d1f514baeb269b4bdf8826e6cf5b6eb71709f4ca43b7f628607b2a3f9693e240bfbd452597ff2ed3b110345bdc9695781429370ee0488095a0a559297d2a9da86a84a3bb0509dd7422530832c59ee74a11ea6b1d82e", + "02b133f572b6e8da8bea28f4c048194d43734a38e3a74dcc433e6d5fefbe2f5eb84c8c030a1af4f459193e76c4689d303d2c565553828c6e0bcd7bad60a4ce74fdf58ab617b69b4c12f509ee015790a5e3102319c145d7be3ac64f4685ba0328d5f265076618ec0425b9e68cf67bc9748e405370f1f82f8fa52a14174ae391218b7a00" + }, + { /* i=2555 cDividendBits=359 cDivisorBits=167 */ + "30b1bfc9b11178853a3f3e25c19f968744fb5566a78067bf89479fcf7a316377a185b215ce425aa134e1aef142", + "3c92a3af0219780654b3434f98f1d108e4ad605420", + "cdcc3a9374d06d29731953564591e360ae59d05304e5f645", + "0be183d06dcb11d4d47649ba68357d9e1bd54184a2" + }, + { /* i=2556 cDividendBits=526 cDivisorBits=461 */ + "385f335049113c05e1e2e3fa3c01b9df5472e845dbc6b5144904769cf0d98124ae119ba45721ff34c44b1f8e68a0f7d94d2e1c6bd5809f1033536fa8d86e2927a716", + "1afaed8c599f390d25f7fa7ff9fbae164d305bb0bc0bd221acd0addbe77aef514b0d7e11496c78d37d95f311f5015260e95afa8109bca27a06f8", + "0216e1a3c6fadc1aec", + "0e12001f32d411abc52ecf73b92a0471ed96b212dfadb2b5ca890c8fe8492270c7d1d897a2603700fb26125da728807e907a04269e8bced40a76" + }, + { /* i=2557 cDividendBits=142 cDivisorBits=39 */ + "16b59c9c1c013aab136e94612097e6655078", + "16f7484f73", + "fd23f9020da86702315bf26a8c", + "08be3e3f94" + }, + { /* i=2558 cDividendBits=220 cDivisorBits=49 */ + "06dd3980a7ac855fd3327ff3d5a5443b4a3a6cd9f69cdb1efe3c2d7d", + "01e23259b5518d", + "03a4eac36473ad76378fec0040d9800b8d49b0ca3806", + "012ef8f0e36c2f" + }, + { /* i=2559 cDividendBits=600 cDivisorBits=203 */ + "dd42e96907fdc7e22005ac8f0fe2b497d0333c373605927a4e55ce9fad2051cd54e8af0d61f0754615b6de8e39d5aae12363410a8fb977b2d501b116887aed96de1e9a4510c248e0e15e08", + "06aca8703270222462381c5d4ee59be91c0b7b2b84a6112e7156", + "212688ee949aa853136fd8b21f31317ff6dd0c4259288bc20646e3aa0e7835e5e5a92cbca0c888f89b3e60c1c068b809abec", + "0542f71fa7a76ce5bebcd1f7e1283150a92e1f7304af385670c0" + }, + { /* i=2560 cDividendBits=836 cDivisorBits=753 */ + "07b423c3c5f0b8655a135dbe5bd3f73c271e4d3af45ad6efc69a1c7d55b0cd896a9e640831b2517af0b789811bc2fc86ea7010d902009a24362e83f358d822af21bead6c4efdfe71e600632c14f30ea953f92d0393b8ab258328863c9e28960d7c289161c6e35924ff", + "94200363dd466a4bb49d7ad0a21493861c2d78a2117d9c9635aa8e097a234cf5258d429686babc2b8e62e7bc407aa18624dcf38da81f226bb55fd33fe17131e933f6315ed1f7fbfc0ee731240010aa8b3ae6be0dfc33a7ebda3f8c0e25a9", + "0d5063874232b31aec7ba4", + "1b0ce402a29b7fc21d1e27397ab817454fcbf6dcbec9cad857bf792106ade329014ef26b3f994e6745250c457820ec2e23e41aaa931a309cd4c395bd4cbd280dcfdc92c3fb22920933693579e911aa778a1a302cf37816fd24bd7c64d1bb" + }, + { /* i=2561 cDividendBits=3208 cDivisorBits=2809 */ + "0637b2ae16fd8ea4233e450f4b1a0a2021d9e3b42216849f4a7e7f05f9ca07f8deee85fceca2adbe89b3e4a133aaca28971e9905a0666c16dcf02f4e739c9363adbf1bb819921132a3896d6c307b986f960eb0026d433731c7193b91b06b19a3ea8508fc7facc1875e8ce2c29761e988ff3d091057eaeb19f88e6380ee7d018af2f8a878aac4ca3975db211f0ab1115f8852acc5f53cccad5769a36120b63d3a24ee494eb9081d2626969ec0c07233725ba9d68e8af5c8b2f4f1de400fe88e0830f8650b4aedf2f68e3b56e8917384fbaa7a0fc833fa6a24081f43de343b9b43f2f0185f5f7a4649ce31049a2180d9e397361ed8cb8be606d561022e57545a1ee9daf3f0b8999b6cfd5710876e4e3c56ab10b08bf40f2ba1ee6899437b8ce2746495fd41ad5b4ebd7e462df6d148b7e4f9aeb52134243fa51dfc7426e2dcd77fd94a9be7e785497e213a3b90fd076eaafa136149cf028cdef3368868f494c3919c8915f52a7a0d85c0052117f442420308013676604892dfcb611b49bac66fd7901b81d09adf96477f30b8152f0eeffa54", + "0158b0fee3bd46ea2560d7159fefdb70391b1707bedfa8251b7c9829e92a9529fba98209b10a1c17ff7913e32b275b2a664f17ea4f6fb363276960aba7bb00455e7cc7271b707f76c1cb91487af0a1d1747572ead7809ddbd6063641325e6f6284b0829b2f3165417cb658aa371d09a528958f88417b496528195bc9d25808461e87671040f6b07b2d59c80aea378fe71a5cfd15d30c8ff648ceb58ec25b7f93571619351d312ea967ec41ae5c978612c21a0d16f998136724eecabc75ec55e1c74ea4c5542cada1ed20090a97e43ba79b18c090221f44ac5c943aecf0d948ebf50f6e9f4d0632d04d89bc933c79b533446f3b56cb789ca67b5608e38cd4566f4003c8afd1d55369bed49b7f716861cdb38e37020936cc05adf635b6ee243eebcf5774024b5596132daa48877b64d231aa85d9b7c29662fa9867e46ab6debc6f3e2c3949b2eed378fd2629147173247e8e26533ccbac548a525e6a80fca4f593", + "049e24bb66becafe2c615ccb477fb40895400f66d344e6194af15b9de48ff4181a8e7afff9e10e7fb61661f6fffe7fffd4c4", + "8e03d40c760c5bc619f64178479885337737eba6433aec4cb675bd4455a759f9043afa2b633bb647dc2f5c7700bda9c9157630e60291944239a091c7bda1cbe93d8bb975f526d7f5885a493d6baa667d14dee2f3e0baff96117fadfea0a0ac2555294a0cc53dbcea20b236b7981126721688cf92bc1a116b59310eb800ea03619a6df258f7df2e2cba160a4479521c65028aa41574515b79449512edbb93e6531cff0bebf11290f872744efd8b7b71543f8f83ffdef2d51728e359aefbd01a5725823ef16246b5ba216dc9c84e2f69461ee8927380f630fb5c36f984cbadc58946fc5f0e60e53a8b46741711bd793d1c329450f7e4cbbd8b9dee85806f01f45f9411940ecaaea51dbcd153bd015181cc1dd6e4ed820de7af4a5eca2a13941be745a3b9d4eab3e0193b14699a45b9cd5b52f6f24d76f6e97e0c15f662a63f04825d1fe29e9f9c05ad917a52db3a378dd067c1428cdc12aa31df26367ad939c8" + }, + { /* i=2562 cDividendBits=3253 cDivisorBits=2175 */ + "16b49acd37fa61c3430e78747403ce2170913b7e3af24811ce4291f5c562b09fac528f1d5cf8f3665807e4687be5823532799e51379c34cebc1a515e74e447bae7702c11a47660dcbf2fc90822796a296763db69ed0138b9dd4a51e9d8ea97bb0dc63b6cbb261f775999273b41c02186cae41d9d7a2391915fd63d1d178cd73d46e2ebfedebaf471468682db80067eb1b9bb8fb2d3936600ee04580f831d55bfb8f468151666c72f22b9a9020f965ea3b83230427a360e621d31e7b859966fef842e644123d5f5684e3e1f071d2dd4798c5fd9671bd83d35e63c809a36746ab8d49dea52f46a3388987918b477a263cb4e8030def31c188ebc257c74a9846449ec214032d3bf9e2175dae71cf42bb184072e7a6bc852022382dcf3d3e7f4e2c8354a64728db3154f007dd558297485e8efd03d878e805b60334584bbbf8c0b68886e2d1e0192e4200a43a39d243a8ead70fc67d06c02ea899c77cd6c322228180fa93acca850b393616d62c31b661bbc563bb775b20d3635a6779171346773cddd8db3477ffd102368c65e67c02ba3b49edd44a5fd7ad3", + "418377732a73e9b98b607171f58b311cac7576fef3e366fa8d402d7e669b68b7f85d31f2139705c42c8696d943a77c218c6e7bdae868d5f608e6f90575e4fa9250b55023ec05886d0a44e8ffa9140dc6e1441e7bbcb203c9f0d637f64024c9e432c79afec2c1165a5a518e7a5df576104e5e4262c87a5cbb324a2390f579bdf750b89e42978737656b10509a0d6f77d8dfdec4dfc250ee5b48986ca2bc8618d249f8661ea496ad1fe855ce248e2c1b0f4450bb119319ac212d910bc46ab7dfbc98080d3cdc1f20a7ea007e6a4a9724c8197473371f63f26738e1544293b35ab5aa81c8547d673c3420df0b3aacf31913032bf6bf606ea6f51cf2d6c862d11c93291c84b58a223903169524dbfe715510", + "58b9454da9ac53932956fa2eab8a6fc1c593e00f9034af5e37d398d8622b35c2cf8acef15878b3b758b11bc9124df5e65aecd660320f8f4b6e3b95295b3fc2df7e64a7aab99a0e0e4f8133d4b421dc98d707ef01dbb8c2c7cd7bb7bfd6db16b021e4bed41d68e1b5c661302b1e60dba01c49b497b3b38f08e8aa924f5f244091c746c6607e95d3", + "32a537ad8a8c993cea4e0bc936a6df51c5ef198e33586c20c75adf1e1e9c491411bd26295862693e7174748279b80e0f7c0c8555ccd67c7aa6660424d0993edd499f79f4aebd0264a863a054d63de771404a97010759849595dcb3fea5b5b2e0a39ebe6be9f456ebb04106bb6a567cf73f96ba0c039ae942bab8ccaf6dad82896200df050a2280d4b49e6eed69bcc76cc85cfc7d6d12c8d3f2c59618b0828f7079db571c8ad6ff38b3110243a3ce475539e17b8c94fc04b445b63df2d66017fc9f2dc50fa1b8b577842078af8d10f495e771b839390ce661b387596ad73f3ff8317153835f013ea09a7530df8eb1d6a297edea643a916992c970a0595972c68fda034187db942db7ad318acc1a320ea3" + }, + { /* i=2563 cDividendBits=1690 cDivisorBits=1413 */ + "03a98585a90d9b95ae97114d540f95f04547cde71ba292680c937e64d7a37e0e15966c0fbdbdd69a584ef7ca7884504f44f4fb29d318066a42c34d58c40db4a4707f2f2fc0ddf465a5c4a25dbc11b19edf9af2dfe79966a5575b7987a2d0f35e5679e0d911954555297ae54c15b68e19cc48dffdf2ab3381e663c4cbe07ee531cf195d10736da05dcd26eb91ca6b00fd98b5701dfc6ecd98b1117af96f9c037e1b5d9b2eb5ede673a3ebd70bd15637f37a586cb596e4fa8f66be88f2ba4fc7955af0d38c91c12be2b9ac79ad683751506c5f4de5", + "0f12808dee637a24c4a4deca73274b3e1d9bbe03434ba74d377e1d094dbb9aeffc1e001b4667d9f778310bc47b5cd2411a5b8b22b4d54b9c5cbfe5da37430af3a6703adb0cb9ff768416b5e288a20c282bd918d754c82636002dcd17752207e885a0d0bf54f53ffc46024e875d354d468b62d1b161c046610664cfa711b8652203e7a8057832c177744c9a21920711282617da4b3bfa2b8186e586ff7605b199f21e4ded18c10d962ada57fe3af3d9d69a", + "3e33a4c8cfc6d157ec1a525be3ba38189ef983b07740605d8aa69685e49a8662a3ade2", + "094d7d6efcf73db83bae82339209a62416cc682afd51261afd727410f8bb29796c40af307b8e1885280e5d3edf33d94ac95e5a952501470455d530069e06e9ed803f4cd6452ca02214578088aade10a71bbe234bdea3b2de9d5102c65f0a8ed3bd8266b2c3f0a2b125b20f0e234fac58dd40e7c7d89477a73f0a7fbf9ae3b031ac0eb907d8e3e69bd9b90235c9cb95f64d4b439814231b1998c4fdfd7941faf1947e51b2670e54bea7ec916a0457fbc7f1" + }, + { /* i=2564 cDividendBits=3082 cDivisorBits=2512 */ + "011c963ccd5fa68f2515c16b2f8173dbf892f73a22ae2461de82a7ea556ab34397510a5f4ce93f8cc024adc4d910c525137a89d33910cc40fa8416013568de96644703f6ece86dc3fdc4a95d029eebfa7badeef7a984bdac0d650bbbd05c51dbe8868c7ff6625335da8c745822c4fe3359a39491fb273c9c430b950aae9dca21d3f550d36c5cbcc5ec7c162afb57ba9428ecd552157b666a7190eed8a9675e64b88a4447a738aa80442198d3b15b6c9264dcc5484f177aa7e9d4ef03b8fc805178db389db5e75ad16f2860814e42e4cc21966c050eae95acf0912356110bbb666d76bcf6b2c62c9a350a294ec7077e7a341b1d50f10ea2bffad29043c88e27cf3db1025033365cf06508c68af5d243d683b066d96350d5f90f883593177ad6ca5268b953132e8699d53c6ade7d43bcf375168bc68e3a72174fb76b6fce10a4e8e0e07b9589a874aa926ddf8dea817857d2814e26652586fce56e5f075868d24ef491d0a8ca1f3b423f04228dde7f6419fc2b6fd7f012e952ea25b87e973db2bdf5a5", + "2d115037f8ed0187704cec781f956ac903f1165eca8c71c227e35e02bd92af548b214a4ffa9da5f5c304cdd9f97a762c9a47fce18fb4b3878df711745c04ca865b2e0e206b1ad52a2317984e6bcd029babdf69a4644650000ace785439572a26ccbd973c7861a40b63ae943772ad3de133dbdb4c4efeebb02ea160356fb521b585b501c800d9e561ab3b1ac6ec94ad6f955976d43cc45f61dbc3141256b5965ca87bd1be81a5b8ae5c98a237c4883c8277193503dafddbd52171e5cbc36aa2a9dbcf1b7c9914c6f1c73c45df1284696a892fc6da69f2813e27172ca22a932b5c68219b8074fe1c64942498ff25c35605f444bfec600926ab355636719c1240ca235a40f943c1def9adf9e96826a75629ad850ab36811a10ceadb94c81cda8bcd2099d9da9f5a039efc90c046d6e624f054bfdce2c5fbb0d358d4", + "06508db51ff2592f4d378486fd561c2298bb12f75429b31bc42248f30566cb784eae0fee03d698fc1a3bae320eff7ad479ab4580d680ac50827699869c09ebeca7c996069f280256", + "1f2dab058c92d7a6af77200ae6e91ffb2840e35550f368a4260f85aad3f326d8d2fd92cd81d6fb34f9a743d12483ccace91114dd5bb729b96958247903b14ccc582a86d3e8a60e252dc712725f1573f020a962572a3db6498739bb01662a6d5ebef4ebefb32837bbf2dae1b1ff1afe8733ab1f5bf8f84fe4e899a2850da128e58b05bbe9eea5f4bd7f005f0db8260cb99c8289f14c0bd9d67006115dc6af6643cc4d69cc3f5b4a50ec49f235310df0e22e40adc510e0a91ccda1e1d3f013bd7d8258e72503e1accd91854250f1443be595fac2c07ff8c81c9c380c9284e4ac909504238da674d756783b24918b84a509f1fbc8acb972a2305fafb91b651f8d7beb0e3e49e95f545563f582e4fc4e99b9db6f096aa4bd0f631def909ab26dea97a87338c0aa99030b0204c79a5f4732a343bc7728eb2517ec766d" + }, + { /* i=2565 cDividendBits=3483 cDivisorBits=57 */ + "014df0d9079872e71787444da45bd0214a7adad23d196a54725af140d8bb6d8cda273f4020564815e2d9846e215f5ff491b7300e2eac0f078b4e215f8116326de4db8139115f6715e13bdef2327cc8d202f1d21f605703e724321af579dde2f13010bce6f504c79bd5d1666939bd2659b488b560b8273fbb09769b75d7650c4d89c135255bb259f330145c96bdee18db43e9c8ef13b4b6ba64f8eb8e4ea5b01add4ff29bda42e7c494674194d6c3a9623ab4b720b0e4742309e1d73bd15e0f213cc54a6229ce32be9815fdf204e00e7ff4dc0e98b184ac20c060e5a0c712b00e3dd5d9c22041154786a54ca052717f94475bc4003d05a0903d902f57c53d1d5022b8f17c843d1ea50074f2f91c1fe1823b6746f1e9ab11076cee21dc4d1ebf5905c65f76a82c69a4bf82cc399a25c34bf22e17ce6232d2eee201164820ad6b6d5a14472cb0bfcd0b4009eddf1dadfe3d580c4d2d9246f585947e9218682919a4e253c14cb84b341f5e69cc10befb3663258d59a69e32d1c216e26375762d3d7c0600ab89c53339d61f28bb4a72cef9d0923dabdebdfec44ca5bfdc00ca1804ff116f097c497bb9d9663ba05cda5e175a7a2dd7ad", + "01376b9905f094a8", + "01128344621cd58844ec6c273d0ea91b522796461ab0103fa774f75cbe7870e438534fb819c106380773592fb8b9c633ef3a7438a3d3c6ff22919b0dd1538bdc00930bcc64d7e9e1afb532a47ada9d7165cf0684a381fc6ba6bb71676b039894b38ae512b2c21d229b1a1d09b2097a64bf66038e7bde1f697d784d5ba4dc098cf3449faa39976bc2c18cc231bb52d36f827b621796da6f08cdfa2cbb1536ef98524bf8ea21818524b83f97da700e0e2f4061f0389c3458aabd11b4c429dad46793554250c1bc28d152e26821f34246a91e26a63608968ccf23acc1bf585828f2c87f77d508fa2dbf053c83c0d81ea3b9bc44088c4c3ded76040accadc9d878333aa0582fd454f8f5451124efe6e861cfcc42afa05a2fd9ed5b65bacb186f8f6c77e13fd7d2e2acc7ec26025e039241e04adde92cdb823850753e208c7a932723b22256ce6691ecb9ecb18e5f705a77530f12a1393d0f240861f94a8efe0ad2e05affb85e6a62e256291017d29a64681618b53f2cf6d51087537c92ae5ce4685a9a0ead7455e1a6def57d2cfa9e310fd4bbd6abcc4a4d374f31dd967561ea27dd82ed0eac7b7e4d81865399d5e3", + "f357cdb9c23eb5" + }, + { /* i=2566 cDividendBits=2669 cDivisorBits=480 */ + "14a60cf2ba3efe6bf9fa8f916cef6369ab0125d6bfb6a4cc76ab930105d2970e308b9b2940788df1d83fbaa8965978476e85b83d35ffe2ac135355f014a79918bbf09c5ca1e42c75c5cdd9dcd119ae363954805cb609abf4af197da468976fa1aafcd166700e62b835af4920f39307bf580eee1b94c2aae5281d56f83d48a4bafe107e7633cb5ca8852568edf1e392f7e6164f7f82b009f1bcaf8f59c9a9d789548fd6bcbe32f9678d30fd0624a33c3786d598f5d357442bb60ee4129c023419993a837d36bcea52200680f94fd166b682063b1666ce426f74e0e54959f892f20874eae281fc6f5c0d8a375d00037b64ba245aa2eafa7ca3fb7056217e8344e4eca9c392b08d84a3e7610d77ea4800c00503b84a12f446d5fdfcb65465fca98a0eca6a4bd9ef849835b23f57ec798af48c1b68ed65db353a02f3c17e62ca49407249bdf0761b2c4273b49c7f5dd9", + "317fd349c75dac9e3b81072c703bde3ddfca3a6d29db679c762dd552704f812c6ae31161b846a5caaaee85cd20b76dbf98b2ba3ee5a4b94db2c8f9d5", + "6aca55d94d7101abb52601187bce3485f283e033181ed46162aae0194a927be0403ec4916a725680e360ecc7e301a511c7e30e1714fc0d9672bbc27f4734b437be644ef0ff5baf7c87d576dc6786daeb6b649f5e2e9e0f973f4647f2a2b57382c57c515201a77ff17039c75099d51b3b87fd0c95786aacf4f4ab4cd34d7077758e68d4887fb3d9007114e5b8b5a596bb4199bfb9771c293da2309b10253915a8273d13e07a64024021222eac5dd0aafc59e608e00c4465b46eb09ecf17dd47ea418507ca2f03c56ebae3d42576916d1966584b742238be315bf3616c0d1b2bf32ff5435b7327e4b8a4cc58ea24d0f986c25a1ce9fec4ed82475f05946ced8fa6e11490e2271a282e4b39ccc465f2c97b4970", + "2f15d0c315d98079531729f7e6aab239ffda7e778e5173611c3ea614110fa6cd8deb0a00acfab843a89cc83df4ccc484611d7c19620452a8cefd53a9" + }, + { /* i=2567 cDividendBits=3428 cDivisorBits=913 */ + "086ea9f360cc935db9e9d2c4f82642e2d6f75bf6a595ccb24a5871f5b687096215bab541fbac13f22fa091da59fe9ac68711e438c0f535b230405c52b5a33a2d49bebb93ed1022c3de534fe4a0a8c157036c049ddd79538a273cd2d4d40f560271dca4ad8a85d5d2248d14f5a37bf2f919e75e2323227a860fb6c34dc3010ebd425f35e647f170b478aa06a4f6dda6223eefc6527332ba87fe805ccb6090450d94fa62b9c3dc344c4c8419131dce681a118079fbd79cc317d25b70d59eb83b59edf5bd217eeaf6a4a59da3c346afa1efbec40e12e93eb3f028600ec7c73a432470abb489d4f9cf551682110519c4f983228045d9bec659081d4b19dd436d5eb371322ea3098c6eb6095a838a247596062ad1e1bcabb55a08073b76b55827813807a807456661519f33b18772296320701975c93f96bc6504e054e13d7018aaf76bf0d69e35494a986f27b080e82db50cf45983ae26f2f5703b3129e0d4efc8a3a244f0af2c2849ad0195dcfaf3893358aa5115fabcf4dc319f690d47473d67a047f6c7fc16da30af18991f71b7bbdd7996fbb5f9d666d964146a25be003df894324549b8091180bee6827f9fa4", + "01522fe75b42f942e51aad493029ecc4f65669fcf8f6659ef10c6f5fff47979b0e49740e8580efde3966e7e2b20d80fbefd889b2db1d55a4314f1e2716dcb6480a8a1aff92d8db93253adb55a82407cee74febf6cc6968d7126b00447374bf2c4f090ce22e21bebc0a2f2eac67f59b66a15bc8", + "06620f48918a2edf8798c8353592d2f5bb1e113df083f18e75bf717b71eac37677220f456dfcae31de02b06c3d604a41d2222357cc3a1bd5c42793b0be228458e1e2bf9360a877d7e3ac526f067f7f10a8f6eb5838f0c7b41099893b5776f180fb3ce44080a1ca46845bc8cc77f6500c22fb84b44df12f4a2fedcd7a5ef32132a954fa635ebff2865b5dc075079ac9663202c9c23689ae8de6dbd31aef36194ecfc0fa1d2dcb88c7dfb89097ba3600296689859eb4ab2ae0d63b0c228a98f8014551d3beec7cc96abf84b8a5c22d4dd15ddc063b9d65595ad2e9f6cd52c5b773762f7acafa3789d536645524b31fb9783c7ae5655cbb760bd7f56dec867b9950144a92b4b595f9fb905ad52db8a843042d61cc445d5fea8bab003ec5043dbef25daddd6f7e279e33f33181920d896ddefa86086d6f2d7ea160a621", + "775060bf732d88d78d4b767b8c97c7f9c180a8221edc3e4e43bd01adcf84e51fcd8b49cbad58eaed7c833c268cb3dd79b5a47a59b116b4a01942d129c640e21beba5834c4a3116ba44044105323be98d91ffe51d37ef6cc8e4c5ce3ff85437a97518b3dce75adaa260f4c4c005a6732f1adc" + }, + { /* i=2568 cDividendBits=1806 cDivisorBits=1617 */ + "3b0e3f49d21aeaf4fee1fa715c799944e9fa99ca3bac77606866b373618e91de606daa4f07d647d93e28587b8e37f2e77ff0016c6c208e7b93831426fee59ed8fccc1dd1dc6919bf62a925661ddbbe14de7ca39f2d4e7269f1a19352a5dce769b527ff8231de5fda657b3a2d9a5e8a15e4defd3418dad6f86613b66389cb3c9570de4f3419ed709fd1a23fb561d17c60adf80063968f284b60cf9efc2dbcf5accbaabebf627f034e3c12326739a66e1e38786e65089c96df332b464248db05aa302b5995020243679c4dbe96c52a5773757f03dd8e39bbc05b64ae80e3680f76768f", + "735503b3fd838801f88844e2f21c7eab4905e6fe8c19f4354ea01dc6a78cb1051e702f5fbff2bcdb19caf448032ffb8c34f2341889e7c507eaa7a2aea3cb590e010cb16f84cec77fcdb320bb1b4241a070c15be1b336b598abdc6a910647ba5bbc4b5f8e2c18edc04e99060b86651b2063ec2cbda3c22684194f188abcd04bcbb0719f8395799a4231d80c9c123eba253565e3c8ab633d468443f0f1199d1a9dd50f529412a25599f3a6b2a17346aadee7c77557cf9496055392a1e866767e1c958a12c97cb32da5af58", + "8315a0bf82abc5ebb091c1b8d10c5655eebd4297b472618c", + "391b480242c077695289d75cb633eb8238f7fa53abdba3383f758a36fa8234788cfdfffa750c6e9e697d27740443a029c810b32aa107a51803f3ba8ad5f12fc763ae65cc8fc520f6a4f1103d1cdd57540e2ed0824f0b58af15a94e9bcb548d93033ee0992357125f9b299d5b2aa229c498cf59146ff759918603fb93ebd5280f4abe20d47c8e56ec649198a077b6e78839548eec30a788371254c1185809634993eb0f5dbb47985ae96d36c723fab7767e3eb515167e1877751c5c1cffccb600f559a446dd255c3a3a6f" + }, + { /* i=2569 cDividendBits=1601 cDivisorBits=422 */ + "edec73fc2704b7dca57917c2b82d3d8e70863259b841dc1c189e9ef1b442ea169ae60f3baeeadd4c53c270b8d7b8dca0bc4353c438f88c2ec30402759245c1f2198f3938b2ca30fd50a55e2cff9bd40d25e7e87e302529123ca4851c72f809cb3c4e004b76cb5105e8e83e0336a687322d7c6aa9c28ff7a12b440e50f3977f8eea7125f2af203efcb3d784a042d149de80c35fbac07d8c77672f03d1e5bf1aa7a06fa3b9b668d32a2138a7085b026637fe34765654b4d697255fc6518e8c8125ddc62ce85d9f6256", + "3384fe41bc9db56dce8997f0c052788717081396b1b18a60e5b9562b2eafd760e3391d31be31272fcc845961374cbdf50aeb14ec10", + "049e3d9bbf6eda6c87d46a5b2203b85e28f69fa0ff6596d962fae7a6da260f2a225af8a7456024579f77011e5aaaf7b41d554e1f42693a989c9dabcb3c9a09433ff8ada0028c471904c008c8d479102fd3606527d4d70d1ee896db5e731acf4c0b8b12e9298a43d4a75977bceb18633908582d23535136d3862c8b3228a4c356b5c76e8d77f353e9906140fd57b43c6039dd8201", + "0b5a6badc3447b282e573ee2443a504487198398a713240abba05e2ba526e4c1c5c964739bf287dc1b1b045979a767ccdd78da5646" + }, + { /* i=2570 cDividendBits=2866 cDivisorBits=2630 */ + "03fa6d326d2cde9fdddc2ae5b324c3ba6b302439e3ff3e9a67a578aeccc6e03438f394d546a33bac7e4bc8260e8c81f3cdd3b5b88c99f65ba89d0ccbe59f85adf76d66e319d8fad4096ec3595c75bcf6e6be7929932102fb29c4b74f1e8699ec76396d7f60e930434417344d30c7696574b4fb7ed088ac48405fb2c0bda22c5f9293d6fc927f93ed197163c7ec03f3db2575410475236841d079e3d71476c249fe9a00a6a8d0f32c25540c56c4a57aad146aa420a5d0d7fdf5d3675822b439d5b2d06bd576bcb28bec40950bc2a90044cc24e72f54959c38c43ee8288e769d3a54ae04db614bfec1552eac9521d4a25e3d6dbaa775355fe2179ac862e2a939c8e2c7e9a7355c54e2fb8b3a30b8287d637b63a768d0b9fb44c7f4df963ad9c1706cd66cf3580a7e671054124c6ad4525458ccc25b1ffad90813701880ea2e48c7eb24469a8f8147707e5d648a3ee10ac400c9ea478aafd3eaedf257fc754597e8e727def2da7df2", + "385ecdb0c075004db321be9b3579551f50cd92648abc2e4cc28bacc25e285c011e07bf3aa5faa42765ad2efce48835459cb477a4c71e13fd1bba80603ec4b915acb6c7a9d395054f704d55b4c8fb117048eeef1d2e5abf7b24632251d18f611aa21f9671f6c93afbab7b2904f12e7641d4c64a95c5545fec9fa320646b7ad3aafca917d41ea30f5014702dbd21eeb358b993683ff7e6b720ecf9786685ec1c1dae19a708557a03b15f6754fc1692914fa009ac85dfbf13991fb7d8629a730fd2c9e59d9133b1da623a6b26cb03fa62bda7cadc5e33a8724dc8cb3606b9cbb92528e1ac1cd8b60bb025a8f73727cd378d071e498c1b46ea366eae42e9a53410c516271aeac350be3b9966af413f740f3f97f2b4aa8777676fcf6d2fe0874872c4034aff72afaf8546cd59034a7c88a7f8c9b0c0b48da6745d2910a5b8d6c8d06288c15f46d7d15e78f1", + "12111428916dfb2fce6dfa3ab1a4da1d5b7553e3b1f3afa70aa8cf6027de", + "0161664136396c2bdd4c5307ec4776eb1992a91a77a64dd60fb66fc958a3c12051fc2b9c56dfcff50b6ca6b36511dccee428bdcad71c23320c066d3ee7766497544e1ca9d40cdf110210b6c5239b7343776ad319bf8589e826ee73dc7311e9d7a102218074ce4832783ac33e9c99f163f692a3b4f05ebc924cad1c70513dd13ba5830c048f8151bbd4c11b539f6ab8ab3e0bc47f21e4a5da3685d5400a80e1de616811893cb5c36460cbba2993e6805db7b5a84430fc6fb94d3354b13f05d63b9da6206d6352dca4ba4f62eb3aa2d81d503b28be3f04a0e1d7e4639b039bd779c4959a7552bd31ace70dee1bd9a4067e60cb2b6d5d80958da3f2ac3130055638f0b9ac2f24bdf4a386f57e4a80f8bf5f808d6d4b55848c4cf4e2feb4caca91da15549530ec9a6114f7b14a69e099a7627da43e3fbe9b1e72e124ff2a0cc3e5eca7e6532871c520e5f4" + }, + { /* i=2571 cDividendBits=3578 cDivisorBits=2581 */ + "03fe6ae36c5f0ee483bb2d5d194a20e9e1d7d15dc65cbb037f7c744b7cacc915c925c405085a3e8876b12df13dc0db123f4ef3ecc576845b2cdaffbb336ead5850b74db90765211f5d0768bcfa207b38ab70efdfe60e18e94c7d9761ff4404387556afe1125526e95e0049d054f88f92abe9c5a23ae545f211f3e30de814f22015fc2ba1d10406560f6d3b8cacbc4701ba8ce2d5a0a284b8d89a2cfa34092549da97615545655dd40f4cd9042eac07c94b7874c8a7f835ff9b2ea2b1c05d460105303830d1e7b8ecbf856301626ca98367156a820af77e93f6221798d8ebfc391d39c4c997168285326b27bb20fffc54ad074647fc5de338f05ff447fe1326eda0ce6d6101b7b43601581f486054e9bd2e6c96fa825675015fb398e6bc597e9a52c0fd327faff12e5855f5ac9ee3d48f08d58d83b9f3001f1083b566fbd489464263479b3a322b2b05e5fe14f9a7c09d7910342d55a8268b9e737587946ea6087e01191ceade8a4bffe57cc7b862f71bb4fea9f8e53d20a4425be6a7c13be07b021b4da9d8d99992bc984fea86d693c0fb2a66fdc7f2240b0dc1323a63f254d4676b41304af5a1acff207448e23c28919f520758f7ee320580f4e7126965c1ec", + "0526990dbf9f5fbc08725cc72be054f5b320a3e8cbc570facd98f60a0efccbd586009b70c3be9cad851bbdb19e728e7259d8c8123748c37b432a0473bcb8092314734959d72b370ab425e4c8d0557cdad58d28b0a3364a1dcaccc87c6cf38b7e25e7fe5ebb3fb93a72b70ecfc124d17b35093c7a7e92dbc35ba36055fc645bbdf80d5b54c3e2e215c26cfe4f8e324633903bf9dd230022bb7a86099d58cf7164ea49b9331448bb0f6286e9de8e3be2424902a7a61df1c01dbb404d6d570a30fd62b223d780e73a8d23922b907d0e6c39a72df33853fc49e602ba0946b2cb9e0f39d049ae6baffc282bc61ea63380bd85d1944eda90e48f0e13f4fe6c93c62dbeb5e582771cd68b1d442eabf9d620a5d654c6b95019d300bc4437de517beaedee008e1b31001c6a347c12a6e3dc688ae481d52801f24aa6ea82cf2563f0c4bd7b6d242e", + "c67f756e59d3d47d387ee95b3f9e59047a69408bf0ebc7df254f808f753f2dbdb878224a01519cea85bce2c38ad81d37c9afac5270770a0d990ad344a565ac729111ecd7bd441728f561192860f6b6be05c078f1090b46ccb38ce08a42fce2b69b98c25d1550d3dbd68d223cf4c67ae4869c30cdaf20649223b580395d", + "010af1e43feec115fc6ee173557e04db27affdc38bdb27ebed7a70bbae9ad8282683657bf657a242ef3f1fd66948c54de40255f471569894c1ff2801eb66e7d4d9d549d0af144a9f032c4d776a8eeb70d2639037153b147d0adb6d8ce1b5b1548e8c9655eea81d05483f88ee309c6ae2932c353654e6e517f268595493996668941b8303b92e93a45c5daba2ccea5f3490598a1de789a9a3f9405e557df36b83d5c1fa061d6b79be414bb6aa8c97db645f613d734408a109d570dbdf939c77e3893acde9fa6a9be1e5a119c75c6dc86a0bfef9233c6ac386b5e5bab79c6c589d3dea0355d32a0bba8e6139dc13424f6008ab0d9bd9030b57bdfdba4f60fbf826808b9aafbbae3d1522951b5e83b0866c73fe82d283e1021fc59581583156ddaff8359545a3b4178cba597e3f0e8339852cef8c442570ec8a2907cd3f272e50a8b15f36" + }, + { /* i=2572 cDividendBits=3677 cDivisorBits=2866 */ + "168ecd55ea15d3b7b7414af5065ea55047940f03db268b162b60f0d70a0c1ab74c11548d5451cb09356c0ec4ee04bc87842e82011baf8d966766a8ef636c18192566cdc47b46fb5fba6cd8396eaf6b5f93b14a55a197c3b331560eb4d437186714def10c4dea75d679332d43ffd9a222336addfc641934088ea0cd09b5995cba42314a886cf2a188ebeb4508b621a894d83e996bfb48036cb0b23425ed86175a21ea85533009bf288e5e11386f00029028a96cf96210665e6b87ec48112a23847f8dc4f33d82c211737749ec30791477f6e62b73afc6adc966f9b7dfa43b13168f025556d43a99c96fd2f2d0ad26a722bee50a11a73e5c39d48c190a7f81c9ed0f11d199e33be3e6ff1cb2b1aa8082ffd8d232466d360e734d7a5fc3472252b0a040db96cf867defff6bba381427010287df28acb6a0df593436f50bd3a9142741abb768372043ebab6d1500e1c19525a2d7861d2b44052ab04c60e16c3b5f98b179a780119294541bdaab7d66c6a4c310a4d70228bc68a6a6e767fc307365a46e8cc02b80a56e1bd5b5b8ccd37886f079b447f2eaf7e3d0f0a3318d88f0536505b201f8f98e77a0c9b4e7110e92fd68f7486fdb83a2d81c4eb945f7b7300098d9e76765ab1bd76e17b93bb3", + "0211f60b1c4b20d3926e37655f26de06452eb574edd1cecdd1458f53812b42bb1aa1f0d5db30af148b3b13ace23563d6f3a00283e6a5d02c0132b6f41042e470006252772b8990490d52dbb46f4d4bea8477a010595607916eebae8cbf0f1108da47e01db2272eaea02941a98d15fca7eaed1b0e11dfcc039f1293750db9b10bf03a42d98d0893aa437f403b291584ecb153c8f1e91560e9a0df15a688b60645996f4bd1dd7cbc9d174744cb094ad79f8b368b543436d0cdcd570a9c4526dcb78a56936fd5768ffe60287d28f2a08f82cabb67bd4763e4e49983f937c4383c6e8e6e922f650748cfc8b453ab7728b6a9cd0d343f03720516db9004acb1330608d585cc678ca618401b0f494d54c71ad6c9cae577f6a62150e0f4994b259ea2aebee52f9545b8f6c9477128072b91406755b5717cc0063748f7ec18866a0a6a6e96d6c9c6431a998ad5bdb01a8918bd058599c9724177b63b67e6de76c5b9c29123accfbdcc5f83", + "0ae58b06e57894f49d6f6a92eec5a273181a68b0b5248ebd71a5a9dc99fc3a68998129c80d902300dd76a5d76770f06a23782128c85aa9b6164c100b344af3b35ac9e65da9cd74f8ed291816cf21a15392a36f9ae275c73281e52185d0e5894349d251baa3d1", + "01a48bc8a27e604ea7514a48001e101ece1cc88ad419e62e002740ec39712fde5a885c2a04baa6ef6a51beb6f249f8108b62e7c657a45e1a0565595d5c720631477b6ca4ea8875e0729dc0fb8f8b4d59e975e7016bd9aaa06ff5e803748b03fca4e77b42b97395d814da9c54c7d7a14783cbcb1b0c9ad3dd56269c2a70f3d967a00fba9c0f5a2c22df55bd52e5b69d9ae0ba9f5e043d910a15ccc0e91f3ed0f7fa81f466a54f9a965404c4039faf7a403146e71eb76539b2b4daacdc0caeb714df417c20f891f8d5cf97def85c8b903f32f681ec64df54c44ef41f23a5db5aee5dfb2b01be3a76b0caadb9274bbaab266e8ddb23c7a4c9d920e7c7184fc022adb482e9f75c792457f6ca91e4a75b25d9a6d44092dbe6a31bc5ba75861ba0f67a6bcb9fe82a8f852b24d1e115995504db58367478641d05cadc1835b11e71f08f355362ef1011eb6da3c18e59d4e23302e3885be9c5fd05bf234c637bf3343818ca36cf2ae0d8c0" + }, + { /* i=2573 cDividendBits=1507 cDivisorBits=808 */ + "0595f32e32f9adf5d90688d4e56f186d66c09ee96926ed04ff497ba98dfabe12f52ef77ad82194c50c82b941919329b376bb2d2f49e8f4577a668d4db29de50a97c3f340ec4612d0b1b583d635fef76b4612d53177902881716cb8c916179032789e0a32a60eb2ec70d2808c4cf6bb0f09d945010e8e0738ae26efee38ccc90ecabcb1960a81aaddc754195030c838a3fc7984ea49039c54041ba83b0edd7e6d400461379397be2c8a06f280d7c70e680dbdfd6f8ce9ef98d682e32f68", + "85c7d80b0190c5f12dda54160d8f9c8b9b77ea367ff5c6121c07943c16c62ad697b0a3c1b75fd92b2aaba20ea26fdc73576f8f99cd42edf746f2aa3b675b6c9487db24eb4f771242fe05d2ed4d92daed6b7d6429ce96c479c73f1b71e8be190bf371038b5f", + "0ab052f3759733ebc4e8f12e3a788572cafe98de50b78925d8968b7aa19ce79a96f0bd093f1b75aaefc0417093570b22c161f6a8ad284dd25c914973afcd2fc93839574c0c0e7a85ce82be5fbab05efefa499bb723e5eea8", + "058955b8d0ce38bd7c841f2ba8b040fdd04106cab6708dde73572f2bebfd14414b8d190198698185324b6b6065224e33be2e2e2ed4e3df61db6e13202a0aca27e9f6596d9e08f3151a3de9007130ba7fa541f061d7cfbb4a3a9ff70a387429b3e064026710" + }, + { /* i=2574 cDividendBits=2388 cDivisorBits=2065 */ + "07726ee5ace1f014dc6d284014c944609141e1ea8dbebe25d7921696b62ef14e50f112fdf44b73515d674717fa995b35db8fb7ae43fc20fc61c1958a0ea327cf31c75562ef21120764b71c2233a074cb1dd2ef675d5819be0473358133be9322adecd6f104cb3d854e29cd5c284f8490f5a57b3c04895969e2af1ba80d33b2ced8cea38ba6c6c99118222f7e701d4225b053c7598eef50ea127dfa5c698d0c5fd1fedfe48ae1f85e5c19a8bdc2da8b8b58af51727eab128c4c12244c9becaa65e1aeccd5a06344f83cdd89ea14b7ba192dfeff319660e1a28eea997616f2c5d4302d3e008619ee7eb0b94511ffcc578d26f4f2d2ed29989a61749cdfc14280a3480ba1f29359798f4a6f6a6c5c3789e2634a505a6edbd25ea830e74ec43432b57440073ce881786f243c2c", + "01723cd9a6d07bba766df9aeb93d42b38c1748193fddfebd75dbda104b002a5e84964448cb2b4f4d6be03bda21672b8da5e9da658865980e30f97202b740c81805758b19f92357da1ddd6ca642d8a49c9eec8826cdadb95736c794b7196e5abbd51d38160c47ab119e69118eed844d10633323d156ff906206d62d0ac5271b019d2622107662ee8b41220cb1dd2d280f32034253782f2101a92539769fee8d5f17638d1e01d0a6c397588c6d5ab14e14fbe95b6b98cb87c88b397ad1f40cf63ed41e059bb8585b2b113a2f692ff1538c5cc9648e562e06bc6457a7014b9355303fe03fe2ffd50cc8251283f88fc0b4d586e79c0e45f006c89f4f068f61d486e2d54735", + "052632e6685166e488b788605781ad73d82f4af070aa6f16fa3f3b75fdc1192061cc8a5b4e8966d5dd", + "012a6b8f6b0bf3e71814e068da670bd2b341b1458c9c2686fbe273e270107ad8e08635dabb0751cff5b967aaf89efa1bfbee64918b79ab467175fc97dd7a04a25abfe6b29ef9ce705cc80976ad2d29afea820a21caf30aeff634b9f726e9a8f89d2ac4cdbc4175056261aa80e0f279f663385fc16597e6ec5c11466e0c18137ee84cae189dd0c8bfd827635e238fe3cd9a533824df3165c154e9e15343b58401d28a8f1285658fee3a4d555c3313c51a90be3758960e5cb6cf5a6f54f42103eae9a9d91e9472dd2fde9ab8c5198b514356a054ca179ee4986cf9386f0bb9588d295182cd30700170c1de3c1faaa0f1e46e9628d6d5923cef1d8bd3a69fc10f6ca8aa6b" + }, + { /* i=2575 cDividendBits=1952 cDivisorBits=1083 */ + "e024f1ff0b8ce91975802fe338da1f152cdbf78c8553b52710ba4c7ca05d941f62fff37186169c8d172339847da74aef52391459e720983734b3f4fe494713a814339da4f7cc24492902e3c81d89e18a4afd37f3a61bc6b49a8bbe50ef7190d06b1324b217385de7edcc6833137d10021e2dc499e0d44bf67fc5adbeb298df58bdf9a90545b1454bea259e63fd9fcb6bb756844c6b8be0a8e2654f0f195503781e2934eaa33b9a3486377cba72250c99c34e2d0a9a892b8606f47d8eeade59ad6d9bf0db855868eed9584b5b9e2b49a6f0a1afda7e384d7bc6ab527366bb87748e13ff4d67453fd2df2ba4d10c6457fff2725c0f", + "03353623dd3723639af19bf6b657a2753fac1920e1a3aa375db01607cdf2911388597fb4b320c34be63155adeec2a6d78dba8b16b4c88a8e136bcb0df05e4fe40dbc18622c650925cda51a7afb76590fb496632f2cd98d1ceb0bbc1ab17c9604cbaeca6a1d9b27fdc04f3793f9e83a5188f3dd81c8e125f45dd48873125a605001c4d37b81e85729", + "45df9fa921f88b0e4ea9a147114f94f0b4b92868e06a9594f64346949e8009822fc93b6021ee3d65bcf05edada11783bbb64d7fede7b71d712c2671dc683cca1800aa3d5b1a4ac01b4d73451b627143d08deab04b017a061513292e8c7fcccb43caee7ba43d755550659acac52", + "0110d9870d51f4d3e8e7b31f33ece5b909f8af6d3af2a3c72c0d3c43e8df84eb1799a1f57b5b8eeb32fa1764d44f4de91ff06c0469742ffa113e3266668a96e5fc75315b4f4ddac6be22f7ed1b691e9c0c379003733f586fbbbe75eeae595b36ae40a5eb1f3647c15f01553ea814bddaffd643aed89d1064635a48ca15119821a61ce8ca6aeae4ed" + }, + { /* i=2576 cDividendBits=1517 cDivisorBits=991 */ + "172515b3d783c28767a48c9ec7510939cd8e79e945a6335483de8cb16e90c37d40454293dab398dc8ef05192455094524bc4fef1d6eee1c16f4ff4442aad7b27a8dd792c87f06680cea3fc87cf4c4dc694c58eaf479a9254b4731ca1bbaf2ea79dd41f3277d5dca198827e11f8a69c447bbff75d7bdddbfa1ae1f0bccc3f964eca7bd8db34e2263d4ef978edf69d548d35ab85394393de03a7c91d54e1bedf13e751d02eba5d4671f33dc1f12053fe2d840cffc3b8a82ead41ea146c3a9a", + "2277c0ed1bb66e260653312cd7d3742b0d09e6102494556dbe9de7e0799b918199c2853fd0b2a862e151bda6c0fd4c183f38be04fa2c4252ad0908be23e71bd5a7c135633cd4bdef4b3167eaa7bcc51ce5fdcf9b92ea05b4a653df2f6fed9eb9b25c25ffe95fd9858f34f2d83917a8febc64a64645d9f1b5d0b2081c", + "abe6ef7944c5e412c9783806b1238e8e7036bc2656c7b3797d83896dab90dade4dcd9b498766bb5d75c1ead05a454418cb89f4d51e2da64294cd579583e15d047f51", + "1c951972e038182dfdfd657498ac44c5bfc38803e8f96f910a110b413682cb26a2f9bfa2406ca410d2c4bb1e21f6275a62915290f6d0ff50485b80ae2b7e7921f49a8210d60091ef6509d24740d9c99e14ef5323636f136d8d5c1d70a0474c6b9d3f37fc9df6e353dabe059c233db82fa67fda2a5f3b30846da1c5be" + }, + { /* i=2577 cDividendBits=2793 cDivisorBits=2773 */ + "043e8b15bba33df208ff04492a860673824f30a53f3cb11e2b2334158701bd2828e9b1d5cedc6c69cc88226bb30f264f30cf898b8a4e932b5f276253d7c31760f4e5e76e55e039b0206b7f8b47b564b14e8638467eedd2bfc837c780d9c8916fbe3cc33e73b890a9454f1c577ac0ddbdf55e508462c5c9ee03714ba75ed91c8594b94bcc544931c2f1133e90b76716f1306305761ad017dc32c86df6a13a7cd2f2f17e2a10209034d464c84908d7b839a50d100b151452823e1ff8597b5759bb78421af23e3406332c052093a1083cfaa58b04c4cf3755dec733457ed692f6a9be0c5c0c398c35527ae7fd590e1629c03df89b211d4b0c320f2e5159531a4fda8e553836b6b4994392dbd949657be78ea4b138e4ad0e13db9a8b65fe6b88694445e34da4d31abe360ceb5fbb00ea86e82c9b8eddbcee97c56500896e0a9f1779ffc2b7430da843718952e3610f19f484a4ba3d3c740e6769503bfc43cb", + "620c0673ae46cbca046e5367a69a5e78437e3cfb351c7ed119f8c3d8549de8100c714be7923e72958c73e49d1a2b2996c2d07d78f7610bfba375dcafaeb0de67c9efdcca7f7492efec19b442edc6cdeb009c97b030d5357890d4c5bf372034717f62a45a5f84b1991df3d4451abc98629323da0071d9e7abb180b8a4db6accb49f944709896aaae008b380c3c0e440374d0f07c6a3541d81ac00bcd0161eacd7b54371994514fe521b50aac8ac32123a8c6767b50fbdab209deaf2fece4e862c3cdc7667e94199fbcce544d082949509add5dd605b18bc956fde7a0d3439a33a30b4ddb305c3476f7df6433d2bbe455da4037740609c079c25802bdb9054e2ec711d52da0c228fd0c33522b655965b68a85ba4b53822d38432e2340adf4953904b9d57daf065be79ff0a768bd43ea7003188ea80d97e67204d96213a15568cb1fa927a99b494f309a75e4abbc7cbf2f64651d6130cf1a1fdda19", + "0b14f5", + "08bfefdfdeadfd97d79c722de3399a6591dff7e79d01515e60db0a4ede38087ed07fd7b1a6a8270f202cdee61b27dc136c02254f52bf00b9334153b5d1da437df1d4467649c5e855d5b8bf38c0dc1189f035e53a0f6066efc68e39e0e8f2b4f3905343e93fd317c181930e89df5381f08806361afdfeaf94c9abd49b649dd8987076a6bf92e1aa71ae7496debf5a4c6e3493d59db5d205dc2e3b524bd4d1e2fe8a0e77948657699a80de5210bbc8ff9e233d01a945f404526bb2040063efc78a6389be89398a2d499de04619ff63aefc2eb2e8f0a6f33cf4ced17dc52a543217c71e24097b386addab7e14070ab43906c4b6fc2f386e16718fccc642576dd3d71bcedb7cc54a8685d2ff5741f91bccf88850dac353119a2f63674869415e648a35f8970f028e233ebcb86b6eb628a39eafd917db50fa731c05455e1e3f877083beaf8ea78a95c8859fe952deeee4f189589722c72f7fffed95de" + }, + { /* i=2578 cDividendBits=2998 cDivisorBits=387 */ + "0f78e22d2e5a3ecf236007e206638ffd6351a0795253a2a814444f6432f8a435521cecb451d449221ca3fe114f830b9476267ba5fb7d51ca2f15e4a42d9e40b87e54914b3df44406f602dd40095e608761ae5ec8d7e7070fb0912b5b25785c2d70fb60d479a73b39473803c9f1661c926700ea1c56bfbf0097b84ef78896a22f6c50937537668303c74955f5c70446d07419e50dc30081cbddda0e6a824952aad93a4aa515090dba9d6f3c6df9f33aeab6e670fb9c8ba278c0096aea37d73fe3ea671c41286e9670896429209156e5cf995142c07650e77d42a2ae6d9e7245ed64d67bd9b7262e0ce966630f232bcfb621bf0b54da6d328dd8300a62629b4d0e6d39ce0519f51b1c33fc4d3a2340437f94771cd2394eca7e0422f200e54d57d548568dfef943ea3845aae5b60d6106bdd40ea20b711687505c91c74c4ef9e5f522543b4831377bf8c8fca8591153ec61412b7dac65c39d19eb018fd07fd9718f208f353180cd362dde408bd3c9cab25f1f9aaf581cd923", + "0501dda7163d46b7725ef2c1f2434881445a6186b7f27309a12e5d71f8f0b13413c3dc668e157bb8f01e8488ef13a7b23d", + "0317060d52c5b178be1be38cd38fe4b78f498ca5bce3e7e75df3709d743d4f2f6efb583fefbfb042440f2d1977820df285ef8ca268715debcf2b35ccb7928c52253b5e56f8100bcbe73ffda6d9aa04bacbd64eb4a8d596f6487b2489a1cf898bc1a6ea33b03bc56d433f4c38c12c3ec1a9a09cc214035a3d6d61038dc89a57f0b1737274cc231de865ce780e3a7498b652c328f0dbe5514c92353633c979d461b82d27f1a8058f7493f03c6e6951d512b6d739b01547ffc349c11c483e93cc3099ee492c13c8fd5b3de9be8663bc7cf570958f3e35fc0ce05061dfe4f51ce68cd41b213db7fb0337a3aa7bf6aad4c9472bf8a8653376fa6e7d0d9fd0abafbf54a7eae718c84c587a6e3f35bcc80c7ed0078a9242dac6ef0b2896bbb029ee9970b65a6ad91f0124841f2e7a31b024f1ce404be22c875e36def9a7b7613b815dc55a317f5fa8d3c7", + "0387b31b4836f92a7d2cf832c005631702e2367c56752050ac1660c4300b0b0e0060f17e173859c574604ae12f3dd104b8" + }, + { /* i=2579 cDividendBits=1245 cDivisorBits=338 */ + "0ab8a2e1594ea71b9edd11afd28b88534332e8ffd4c74e6a7939c71c6cbde600adc2ba1a06616c148287ec9fd407f65529c531f720c9c7e35d9b9572deb03205c5de33d0c3bbbdbb8e48226d2c415248163b8ee32268c0e4d285d1b65904b86270f0467da1b8f188cb2b5d6cb8425829482f7496e7a20511ef4a6a858b58e7a65626e27219893a9d2bfc5835433360f60ec393238b675271fbfb4034", + "0bf6e6fad74a45cd8db84d88a6bb55b96ad1214b295f4a2210703ba31e2e57b9fee7e5a1db2d47ed6284", + "e566285d2aa75d0ca838b85fbe86645253d4fbef4a563d3f88cad95a85f9292e681e6399960d499f8a519815d3c324d4f5a8afabca769ac8c3171173f61bae7c0caf8b8171a16f064660b0362823d442487a0727ea79d5c8946fe178bb87d8b9f29fe8386c15d8c42a80e1b0d4f55555b62c", + "04c884420ed8b85b703ca2e08dcd1188a369585f60ebe767edb3fbb017161ea8a6d3085429ab51507984" + }, + { /* i=2580 cDividendBits=1539 cDivisorBits=201 */ + "07c31e043d8f1ff497fd23652f438411aee6215d15446b2d363885da4a4bffd20e833b4da6255027a5cede03a467a8428c3b3a908257555160d4f4963688dcf69443c918de40652d06caea81e2aa3d968a87318ea052fa35e0169d9456a811c358470b2a9d01f9947b431bb98c9a4ee751bb02af192d2ec15f37309a80adbaf153dd405ae0283a4a8ae309948f99c387b8f364bdca22576adce1f5a4bc733b39955203a6be355b0186633c02fdd0d59f7450d58dbd071a591b61f93dc28ac01557", + "c005a341b87d8b749e0e69d8e070df18d820ff90fa42e3c864", + "0a592f91287234fd2a4e70ba1ce0772531f05a17a546e38da67b07936c806c6cff7e0cd7f1d67c1206f4f440f2cb9f3287ca5947b02679a64c98bdd98cddc36f757373604d8aac156e7ae5de224650b9b979794edf437977f983626a9e7eaf3fe8eaa9a81d13c851d8ad32401a45479233ed8717d9ee538bf9e029846507d545c9552354e19a6a27141a9fea502d9f33ea214477163ff1e73aa689c3ccad88d0bb1224c917f8b16e", + "79d1fc630f51bbc07ca13146087a1c4145e26a3fcb3272d65f" + }, + { /* i=2581 cDividendBits=3811 cDivisorBits=505 */ + "05249d8c409aa0507d0ace3bc9d218a2e57d0f469844fa105fdc345705bc3f0fd07870467b1bc7304ffad9da373dca25a4c6b2999521774d712f779b17a39af4f0cc83cd96f0033edfe1fc8d8300e220512698cde4331fe8a8ba5700eae60ce4dfe120edf2f73a2861142c711bd406303888c570024aed0be525e3968c045a135c0eca7646837318c2cd2747e7f1904b82f3f41d4473dd45c7bd3887b0336654730e5d69f48fa110c850a575cac17a2e711fc9dddb67d9542140d19c64124e1aa188e7142c15a392478aab5a402c1c0496e8d3aa4fe73b0244fbb2d33b7e069133e86a48f3875f953592d50880605a50b0c4ae090e95667087f038f5ec4fb5ff792136169c9e6c4fad8bd23f3d5a7be43b0f45ccacfc8fef4a8237ebede2d008c35a96371b5e29ce19c52cdb7abb06a981a4227527081ff7ed3cdda49b67e63b61c6ea698be82b24c33db97311dd6bc8caf2b21944af6b73fcd8537059409c824a3e9950441c17aa2620d388fea469d5ebbe7d832455f53123e287293be1a41068a0d4159ad0a8c8ed109e9326b88590949c26cfb75d5da0006e8e1c138521fe6350c8eaae093fca8d03539cf839f86d7f60cde6bb315314379f27be6d51d5a3d350241d688e15187f3e3ecfc498cabd8755624473618898ba42423bab", + "015f5f034bdb01b1aaa05152d53dbb0737d9fce0fd1cf0f41ba142699530232c3098f4456fea4eb90ba78308f05fe4025f02f119d83fc7ea512a4b623c60974e", + "03bf409118a0a0b1b4888ca30b7b362bc726cb9745dae7d280e173f0c062913a8e52772c84dddc633ae60028371f8c776370dd1cfe9e4f23c7ac9d1c69b85cc30b60db38965975bbcc82999bded62bda6dd4deda5789b1575cdd661621b119b7a4b7dcab67f31c6ddd8664f9210fe9f79a3fe087102cec98b53d2ffafe701059205d4225fec53287133cff74d85f1326efb28cb54a0390c643d032162e393833b779991e49e2e5faabf4c7677ece5d500baec42f8ad60e3ba86e4e524518e2f3dc7e52b98a47a2318db5e619ffeaee7f235ae40f60f2e19c24b4b6f7473580a43a1431198ee842a0e689eadf89936deba21cd6226ea48613dc422d1f47871a35a072da791538ad4f290f3346c8b8d0a8a0b587775903024fe5356fdb33230edad8746290698abef18300789848372840ad4d852bff7951ee68e1434f66d6e62d4fdd56758d82a03f653adea28088fade7a7d0fc81bedb1f3c1cc5b385641d1d02858f24a0e68d25dde2c2ec1c27902741e2fc98a7bf59f54205d0d245c259e713d13183e3d0c87bb2cb4d636b16953b8d32ac3c59e4f6f8196843aa0944c", + "c73a515ac678ced84ffba8e3593c3e609dec0504552c00497a305d770a177491274acc4711c9adf34485a6b13b9817634ff558eb299312ab8e15ca415c3883" + }, + { /* i=2582 cDividendBits=2316 cDivisorBits=378 */ + "0f04ff0915ce65f9da8e6b5da4a0214a0073f5fc2f5ee8641df7cd647d100d70b1751d8d86ddf7cfdd69afea0818a9774fcbb221b08e5487357fa014b3b4ce493bc8fd5590fe55b44d1825ebd8a011f37fc4702cec0bdab7b6166eb0e4e970a53ef75723012a21af47b18e00c3d8fef05df2a4632070490da6a5a3d761cdeb14312f7a510ab921c9685bba379e0f2133fb76d2aeefa5493045d4a6c6a3bca7fcd17b26d8ab09ee86682b39c99387beff04d704b14fa1a0d6b3861aeb2d6e340bd5dcef3d894829c44452f9236fac67340a968130e18f307d2791b02c9ebf951f7c57d649c36fefb4f8890707c9c0d9782912e493ac812ff9c1b1f060365ba250a5ce038d932205103abf610f042b4a74ac2f911bb595a323d3b719ea9fe7dc8e1bd2", + "0192decb8d2a8887855a1ebc3e884268071baa20e41caf8c3311140b94d9cc71238acb71d7089067f3d68effdb92ac29", + "098b43ef1c34d72f2d0876da5633d6b0c7425631b8bb5e39d5b101828351cdd95d8766082f7ccd519e4d6c2aa8bff34bd91cf95b951c152375baa188d241435016443858ba62afa8aeda3f68dff171c1bc1abde2bac72ad3f1ece313a10d7aacec1a77986411f1f86608e2e7845e27516bc50eceb5f54ed3dab557199f9c27bf08e72fb9f39c6cd426cba312bde8e79999cbf916e5e835febafcd5662ec74893119c62decfcc49050839db2be52041666a8306ace0c846e2712fde1dc5af0da3562df03c82e32807f715aee0851a3034e88b80345e566bb8f1b9a90bcf944f2f34ca7d3447aa08c66a35a4f0070f4bfa9824b6", + "5e2e9840f2212c3a02ce2544bba7c5f1a9f9a64be67ac429d20fa23ba72b1bd7b944197d3c0ffabdbf88e7dfb9f2ac" + }, + { /* i=2583 cDividendBits=3824 cDivisorBits=2935 */ + "89fb2c4e9c2b339ca30141d24102d73c27432787122cbf3de83b87f127e7522d8e0ac71fce314273d184c32c36a9f1a68628216d86672dfd09edbd12f06b8aead7209e3890baa9af18cb69442778ac4389ecc7f8413129ecc3072d95f518756de0a9522421d2f0286b6a9e4631c28ce18e00b0824daa30cdeef784e23b4e0efe105359f00daa85af0cb7cb60a34440e28b98cf8fa6ed369d7dddb76d20590b03f4764cfd32352b7ab7b71e686d0d7529db57ff5b684ea0b2fd549b7b489a4802bfe0de7d7ebc9cd71ea480abb2abcef6b4eabfc70ec983a7f92fa466cc6e7fce4176554984c120c35cb5aba013c705006a84437fe6efd4ebc64b5e9c36a0c52683c1a719180bd1686753be470dbbba5c57c68b0c4c4959822f2024161c05bb26a276f0f860e0aac0992921aec582a4bc76b7a1d7ae83bb56639272186e1d8dfd90787a776407d6e5cb858de69e8bd9b1d92034caf2b40a3ec1bd221eb89a0dedc9c96cf2d36e58cdff934ef699c0b0613ee496f3e31f691a5a2e79e9c2061422f6995cbdc22f37b3117e66fb53fc1bbfbbab2455e5786d30dd74d656c88395b2eb7f0401b04bcf6b1802ca64a2bcda3e8b7628006a85041a0b8077a0f22184af406d7ef901712e4097134b481eb7b5a8a257e8e6be6691f4659a6afcc43e", + "68da3ba30866765b1ae6bb8ad8a733ae953ee4fd50e256bbede591424e339e53ddc6b7e00b981a3288a8bfd8113ade5c29a15d8640dff3e4aaa45e33fb90718a9f4b6bd30be6fe1cc325b18c2fada79d245f78f64c5154564079636a58e3b464bf687f9a42e4bdadc3f25d53c00cd086b25d8adae8659b0178deb74fe7212ffe1b7b148b9b963287806d8968a4b468ab8c72ff5c5d30a9983e648e2b9cdcb979478902d2eccff1461c8f4a8cd1bab321b217a8c0591064b91e886ff72f4ca88863730ca18ce6053baad449e06e3d8ff7a1dd1df76ec17869002ed64b2c2ac0106a9cde83d390422cd10e05897bfb1d3f26a364d9f52b499c355431d08c6eaafacbdc24d92bbcbd8631381a437a99fd00f596f3a9d9094e89d415a9e6ee50a4396d6b6ce2e4f39179b8645d34ddadc6f3d9084096c19603597c7de2f69bbd538edbcfafd689846ca617018c08c8d2b94adbf3acda9a7de7ba08631e1ea110875d50c20fb6a411c110c82f080d721aa7", + "0150e26ec8b7597fc6da09e3c8d23b12d5ce27d9373cd0131e1111c4caffa1f89ab8c357c9e764866e06405bf89486a932f583b0e887b7e7b6656591049924e89e2b33ce8a547ddae1087b8144df712a76ecfc2ae10979a69e9a6084739f4bb3716de221a905a3ef563f114ad0fc22d9", + "1d6e536480d2230fd5175f50d6ec18c0ad57ad88d0c8a9ac74c26ee11dcbc4fa12497995697e8fc42fc9bb4f971745c68ed369ab9924adc785d7f2556def8ad56acb605bf7ec4357b0ada8551cb238bd4a0ec973a8d66e5ecdab30f5b0ecfb0d75c08b3a639bb2d771ed7d0575dfe5cecb175a6cd2448aa996f6c0f6740b317d246a299d7d60609f1128dba31fa3f3c55052238cfd2f6b839163f8d06a7bea61ca4f36fdad5c009a7099159b60abfbd24ba3efcf9df22a2ee3a6a15eeaf5dfcb36db8a67642ef44f55bde3d89870e9907d7dcc93c68798680f822f988e54c204ec7d26a2d48553856cfcf818a5da953458d138048bfa9fb5f5a724da3fb8ea00f0cba84fc2dc8a14317a735ae936b4b64d7e449a5a0ab4c41bcbc7e88c7e3d7923a96aabf9d5f826af413829879c0ce0d95cddbb03330b3dbcb8ff4cfaefddc4ce5e5b9fb7599fbef4f2437bb6622527b6892b05521d3556c62e00a9b4a57c4799226b9089e615cb51b8bdf155feaf" + }, + { /* i=2584 cDividendBits=1587 cDivisorBits=1130 */ + "066ee442ed2b17210396b4984894bb52efe308acdc38a5aaa42caf87a09b1439580cc3949b14623c01aa2e91deadd973218e76aee856d7d90347879b8976a55d8422b59ae45eda2be79fe76863a9fc2c8246ec81a5775b71622c15972a52416070c992c7e81d03016801aa48d5aa0d6919c28ba798b1df46617575a4368b0fe435d4639dab689f2f234e389ae77d64b592d227a5348e61afcde74445e092f75c9aa791739a7561a544e40e20ac5d7848ae78f89baa683c3b7abd696687672a218e3d795e74515e", + "0107678a4218c9b3c8dc0ffe91953d4720d5a1b90f29b94a5166c7721887bf38c68312e5a3e64c4efd5f185975a8bdb835184450a6e17dd33a806e3021a7d71835d1e811ada5e644180698ec9ab3eb636589fea88dd20c914573553f86b7bf1fdb1c1c5558e6767ca6fc39e6245f1ba258f331b61c5a31af2bcaa30ea86d0616a0a7a98223ea34e73919cd732f0c", + "064098b80373fae04cae0a212ec980740a161beb25d4fd5939e852ff9671c314f4e6420ffb28a0e73375f55041ae60e7fb054463779626b50cec", + "33ac98db92a4b44d8199b5c883f01e9f8d4782bfe20d4720704451540f8adc6d4eb6c6d022258a99d4d005d68797ac27fc35507b606bff1ee41887126651e895103daf294aeb95c5d71ed2ee2f7157c0100c1d3ae89e1d6690b046a7691fa4688c545a868a6314e7901ae920ff97a5976ab9e1a1de3c3bb330715ab3fd26ffcd798fa567ec03fae39a8694624e" + }, + { /* i=2585 cDividendBits=3884 cDivisorBits=2102 */ + "0accef813947c834706933269dcfe96000ead23d795aabd2857f968a0424095aa37b44a3260aa778787edf00b34de10c655f3783f4f43e5d6e5857ca8d6e50adaa3291b270c1f8a861fc29c37eaacc6a65286330c6cc0fe8f5434ee3a3f0f4f7984ca8140257cfe9893c8efe56ce102573e21150869fc1b33066cab70d7efe245529e5898f19df290745f1d4a6ded8389132d3518b38ec0d30e7fc39df23b8096dfebe24e611f670e39b25c6fe6ee0e9bc61fca228dae52c90e098f1ccfbbc52595db499c2eccde92237b2e6641fb8dbe6d37564302938d47c5af2145439bb8d35f24b23a5dba60f331813eb1dd215d31731051bed92322c67c7f153988449742cc36274f3494a80da1700c3e5ecb3c7de44b1ef182835d90739250a55bf711dafb21f92b6540d238123a5aeab55d28b1f71471760719d9c058a51c8479ea1cd9a51e677b110610be4400e7b351a8e4f0dacc56c5f645281c88a9c75db195fd80ad94d5800f3fdc1beacde8fb3ec0f48d57a186b396520b1ed80906902183b28e80bf7fc1c99c7de65efabdff38e44be5f7c779af237d60031324cbd8a334e050a07aef7f7d648046f56035f812b652c696332741b4a0008e28e15a0eda9205afeb8f0adac457ebd2424e979fbb767750e48d93e02744926f45a819881300c84decc3768dd3a", + "2c788b706c39808a5ed3441456bc273c1fc57e7c960f98065595fa4d39c030208fb02d60433e02284c9b4f5485f4221dc87d607fd39fa9678a4dfe4112864457f67bdd9662fab9aa22596521c0cced974542fc30b20fc74c1d5e346e104c0b62e31b6a7d32ee1e0d7956364a9d4de1feb27979f805c3e1e2eae31b88f629da92c491c15eff5416b2813fe5fa64b7b1f774be45881f5eb85ed657d4208bb594cac11c43526c597a9200d9a1ce8d788e115f1642fda8c9b24ea9828863b1280ebf1ff1b775092da09257b21d1e4805c0fde854cbcdb418d394c952ffac4da1ae3b06cead2400ad26f1a8e2237e0585a870d98a9b2ac29b86d8d63f793014469beceaf4a05fda793c", + "3e2c900149ec959769c45c3b7bc86766b328d1c49246f4b75da79dc45f1f38bd2cd1210c4f0ec1bd64803009625687022f87e4fe3db0bb5b8d419f192dc61dfb7aa703d4a7d34f3a1c540b46a74b72944cb460d99ede274b44f6a87e99e676c2abbfeac616a435628c6dd1103435265c9c7dfcb98fa01c2c75d8532b29d46141446a67df385c54f329557a82626656a3fb8db83dae77f9482dea23b9f2683a49444ba33a12ee9294ed212742d76544a17ffa6eb2c4070d0e682ba905e5f56b0492b6e556179c1a13473013d710418d26796065b19b06f088b0e611b54843d5", + "083440d65350c9e66ca5b107009f5677f2538d4cb23e18dc53cc6dde72919baa7db8c24b9140482a9109369965c7dd36a834acb20c2e4b5bd393e28f72717c3f34300cb242f89908c2f4c0282b5dfe0ea2dc5454be2cc7baf716eac8164e084302c0dd9b0b5ff228a651028bc45212e7fd9a558d10b13d26823de1728f67514af7e6f0f35e172b5d0837288e7f6149264b994a88eb772224f75be919607639fdabc7153a0b5b381f66d4282dbe85a461edb6319a1c4220153e4876fea7a2ccd3fafa1a9f630c6b375dea33d14873b31b4517861fadd85e52f3520cd68e78035efd7b92a47e85db03fdad3608cb9ff8bdcf4959ff10c906e7f5923e0454d5c85e72fa20c4074a4e" + }, + { /* i=2586 cDividendBits=3548 cDivisorBits=2787 */ + "034b5cb9fe08dbeb867f1dea2d41a8a1b298b592d53b6fa995eebf5a08a860361948497b2ae78314f50d305565edc669cbd19d91c0bcea2189fc6c6b8e2ce8ce5882c4552477fcd8e3e56e861a207ca794e42043730b6b19cf410e5aa27b77d46f3f2e158d76a24e9db0603d27025eaf720e87452af5a10c646d40a93e2340fe1fbe14a2e4bec82f161b6b4cf7fd7d5b13221e6f69ec4b26f5916abfe3d543745e9f0f2595fc088e8d220bf7e1d1bd606dcd0c23e38cfd0e44b5a6dfa6cb687a5a75b90b57964f315d607ef547272c5d559635aabe025798f9af39e10c2b6e209b66b3221f33814f17597836ffd039fd436d3c718f1d2c9e9e051a57d9347835c62dd9b2640327cd03bc43d9e47ff5ea07867c47455a20bd761d29baf1660eb35268aa0f41eac7aebe1ce014aec25595435055ffd04118fa754aed62c51d71703cce1d5ad7bde33563451c2bbd658b34d1460046ef7cb33521b34de416464f680ea25d33d7e0f2302c440a218636f2e06f8d02d05c8d4c74b8c9568969cf388d3d61fa93e63cc5cff90c7af52e18e7d6e2d6d01204c3313abe15ee701efb987e4abec30a87beae692b55780e1ef0060ff304af21fd30acb582e1e75f", + "01dbb7c1650434f76d7cce5f33eac82a3d646dd0b06f78811512a05bd01e429d4d83a2f991b3509f48f230989fff94158273a7cd0c4c4e8a24e553907cd3209584657689bb78fd22179a397dd67209b2430c482b0f54909f473ace5e8c17e00b98132ecc89b36fac66c62ea02693335b75dc083d84ea18afb83b100f66e6d398c726aa50d8f083ae8486102356a476b561cb41bb66431ee286e5fb7eac21d51adc278136c1a75a5100cbdab0facefcdd5781a5e2839e48b0ea26a5cedce44f297863095ac4cd95ef279452c2096c03a8a93e88a1c1f6dc4f4422b2b1ee9274f103bcc5a5cd85bb07153ebc1dbc16b3aaef5b84dabc73ac78c97e64829ee71ad7c8a2f30d096195f76c0e872b7e20b9846909947e4ed7d4a689cf5621d2cf0d2bf25972318859776553933ed6f3b6273150de4da192ababd1efa49bb95c7f7ade74071951481143a0cc56d44de18c2925d851ec21d9bbd1acb238de778f", + "01c5d78ed8d53da641832b6e5da9fb5a526fd0e249b75b66e8bf6658aee30e8d80eeda9a3a6137798491f937a2e9d5ba899f0259b2fe9820d6fbbb7555d60db0510d5fabee5d3176ebfe10677fab62bb7b25da007a5cd77df0a8edec55c3bd6f", + "a81655a9dd89722861cd07b5e5e13eaaf98944a82827fdf1be47b24e7a7ccbf6e3523558b08385c5761cd539b2ad7d725ffa75be8d1a020f235426578c438980851664907dd3a275084fe07505f2a9fe2e4e0d4e71e1188d59e67d8905e1e86eb80aee87a570b45101630ce94cc7643095412b1243269140cdc77cae7dc1f727b425c10feacfebe37dd76f497dacbd6c08d4041872e850a08c415ddad017e8a20871d63ac566eb40a250bf5c7b86e23cf349f2d99dce4173d40acaffd857526ebc0bc3f55c6285aa87391d9c35420a8274c648c9a4d5202ee04fe249013bea27459e80bea23d54bc201fa4e9f2ea73962c79f31a629c441f0864fbfb55a49af0eab271bf42f17c71be5101dc7c888570b607ac15113b38c6fb2ab64cc30f68e61e38f22b75b093f11a54ec1e6023330fafadd46fb1e0c3708b5e8bee90bb2e31c9050be472681cebbc49b4b99e2443dd9f8e042820866d770f3a7d5e" + }, + { /* i=2587 cDividendBits=1664 cDivisorBits=794 */ + "43266b2101058fbaa78120af70350470307d1e5f2baf39fd92e8b62854525695b5362aeab276faa5394b7dea298a885d524bad7a1e365ee07b6720bbddae11c2b25ca05d7fbd6a6772daf0c62b03ca57f4161f78bb1726f13ba36f5510ea200eb632fa4badbf45d4566b39f62302deb8c0e34778906c0fab72bc9cf700b46af0bb55c482982e34e980af8268d1e1d58ad462550a451f7110255e8bd54a2e11967d49057e50532dba879852a2f83f821c5a6407a3789ea48820003f804f7ffff979ecce2b1908541c89c9a48adca6b138", + "5d79b12eff07d7585d49c7254a7ffaa01aaf35a4bac02bda96722e93d167b641ceab5c65cb562e925e1027627e6d5774719c5778970ae08cf8e8ed1a372b129ea110470556df9e171cebc7db976814bda689495cc36267eb435f63c203564b5810aef7", + "b7e7389660867671d4f570e4b60fb4b5ae354bf80a583a41203d35e9ca6c99ee0a451c9d64132a5f5a8727a8da4723dd934991256a979c64d2c0d18f979132c787432af9b1bdfb13fe7e5fe193ed531853db32c4e4582ce92f303304972005a3ab11602f39bde755c399412a9c", + "392f6837a497d368b8acc0e29755995e15ce41e334baf29710a1da5fd20c38d4b3ef35a458e819d38829d3f98e265cc2f40f2359de5530b304cc773029b8a7361aa0062d8c1c7e873ba45a013a0a8852387a09966c2831c562be36f827143b6a108cb4" + }, + { /* i=2588 cDividendBits=166 cDivisorBits=50 */ + "25a18eb48fa82ae66aa5f52bd61804824b3981216e", + "3e3d25e30a8e", + "9ac89ce2b886b4650065f18908a859", + "18bfbc354610" + }, + { /* i=2589 cDividendBits=499 cDivisorBits=446 */ + "0736df4c314860bd5cc95c1d94c7c4156da533d37ca0ac2885bbfbba9b6f697bb99e072c79c92890f90fc6530316779dec671f755971fcd6be2d41d2c4b516", + "3182410dd82f9383589ced661d70e0aaeccfa34b1bfa9cdf83f5b12c38e879c55510b21985cb13d2837f336afce4022fe1f3644a6e723b8e", + "254dcd5eb9e573", + "23d20ab223f849fad94c62d0d2170842ff7307515d4b0b3a0eb4d28650a653ed4193c614f2da3bc6e97350c91792504f667061e4d88fee4c" + }, + { /* i=2590 cDividendBits=1936 cDivisorBits=1582 */ + "1665a9261bdfb668a829c8c35dfc1568a7cc932f4474b9a0111b076d3fe5f5df648969f93f45513e284c088105709e3bb97ef9ee0bb26c10216367baeabc3aef962ba00c85c768ad35e61d5f873debdb0f818a3e0d767bbd7c19e3859dfd044fd0a266906d06d298c56aaea4c170951a0d4515827d9daaf8f722e95c6473b3aeb09067fad3993711361e62621662f98af73a59fc3d5e516fc0d0cf9aa53ae928d3b885b8daff7022ee575784ec326585b75c621f9b2d15b27ae25657ae93c0d61560066eab30aae47a07377b28f7742804caff66302e739b0aa5b49ca47c94ffe0dfb72fe59b8e1e96ba7e35f78ab5d6c5c6", + "08f66a91e09379d8121a7336d6abe3c36e03b4b829085006b5011c6ef73c73d6a7f59b7e60b3d96ca07fdae48de7b8596fc22c58073c90429ae3c7bb935045b0d1e8c8347ffef3720f0f8f4ef50299d513e7737095630b6dbd48c34ce6f1f63193663516870189091d5bb407200f52759019eb2212b79d36c8e435a95e7f3db8b88d0de0c66b7d223e180f137262b1b8697bdd5ddc290e906fdd21e171c05e953ba7149f52229179f160d3eb2956f1f9141ff4379768a9f4b47c175f54a3fb129727686c6c86", + "027fbc051a021ec9ace068482ea2ef5913d36ae52b6d58b92ba2cf617f2021028e913ab602bc66e64899986e56", + "0440119a2041905b2301c86e148ed30f3d2b05819a33f1211f650d27773ca3da452fc5b485ebfc2e7f9137d00e0fcf98831032c626733c93a93fb8b3748116c8fb308563b46b90db1b5beebcbeca6c9fee46ad2b8a5271ad0f643ce1fb84ce20b44dad868853d697f8cc55e4c9eb3959d434287b93d86d0db09c087ab8009b1100c98fc1a02f0fdfa6387507082bfab130cecbe00d7d3d149807eca81acdece635b6627c5d7e8d6a74903a4c1f5feb6602d63ccbe12f8643c2ad9d873f896ed28a828538bcc2" + }, + { /* i=2591 cDividendBits=1718 cDivisorBits=1600 */ + "1dc2f00abb260f43dfaa9338301f6bdef66310fc83427a89da4a102d822b4496159719ef000f34fe7375e367f5437df1f74029877581894c1fc248d682939d6e99ef1cb41c3f8c9ff6d2a390965ff2d0f0d7e179e096dd103cbed41bc9e2c6bd945ec743d3548391553edb38982461f5536de13ad7e1c388c61445a77c809ce553ad0856c0fb0060094ddd8925e4a06a4fd470cf2a304d3de0f082d29d38d0e5c7782d299573559fdcd927aee5317e92fdf7851fc5235390e1713680f3f4211e24694db560a8a1e4e6790af52727c219ba70893db38582", + "7cc1180c5983f365b89067bf591e5f39d0f1a805ca036629926238b80b01f52b532f7ab80cdb7f721f2fcb1febd97196e20b08f551427300669d0f5e1fb3c53d4a9b64c671948cb2f9c21810e0b5c310fa9d3477e5cff6aa176f8ad4f7d59f0bd5b304ebe94e33fa5a695f39c052211f6f155d39b92da68ab1389b8915d151f601439ff038eaad5ed9bf046237f72d6f043fab71c885a7178e5cc6e868683f712f89d9ee3da58325d841a1c6af520bccdd2cf5dc6cef49b6db6842b373f492d31d35ad55d8f80fc3", + "3d1251897d2fbc828bfbe7fb95e514", + "3272028155a59b323d558c42711a8d3ea9d7c36b003ced6c2b76a6cc3d12b01634ff43f2d72a8b4cce595fbd360928034dc9f5d4eb95f0c62a79360ca4bb653f2610b12276a697a20e5d8e935ffdb4f314e22ead5045eaa5bd5dd99503e46791bdb707c13b26ce94c1d40f96ebff1ae48af9649a40312364cc061038bdb88ee9dbab8227c1fab0c28a38a6c3f77d1a9708ad63601ecfc5490102405e78777e798c86d650a7dd99625dcc6c452adc5799dd326fc65c7cf520a182688d0bbc79da2a9d30f406b9db46" + }, + { /* i=2592 cDividendBits=2124 cDivisorBits=1874 */ + "02b628022371374372dbbc00f23071246aff7c24bbf5bb5d734a992e3354afa253b24a32f8d7e97f3cd94a3260de48f7c6bf13bba41687a15656a54e184e4f4e2eaec20596eda9fec3b55681e8d024dd743f57d72b2c1893ef8fa04f0b24e3e5a6829cfbccd65a70a92616151f56005313e0691956d2bfbb47a8695ebbb790e7737b9a5fdd9ba800e82af8db35aa711bd29c831f94c85a5deba086b81a085322d660701e8ce77006fad8e2490d447212072f08ecaf1b1898572f1ecefa7d9cb67574609ac5513a0b95a53c07c3ef4bf2c35d9dc1e98f76e5364742282545c716bcb5d492e0c6b16f5deb13102e4e929551c95682b0dae3e2bb1d50c04f869f100e7bd015cba3a373fc72", + "027a8c07d46dd9257f47a5c175b2f70771bd4587d1c85691463489585cae9f1dc5d99d75dd2596082cf8c08ba2a441cad566f9c3db85a68a1eef0a25ed71132c1e91e849497f5fcb215719aac2876f86b23ada103a642a578b825cf7b6fe7e24b5ce1ecaf5f22f3ae69d68938659073f65532cf13e252b34024f2b3ea39a9e6024225c9cf180f5d8b6969c47fd69470519df95cc8006f00c37366ab627304ebb192d8cf66fcbbaaa5f59a4b623dc63834ff50ad37f583d9f7ce2a6e6789323f10461c713d1cab2ea09131893439e2b3d70d849a50d8b10ffed229776976311a9d02152e3dbfd7c84287ca1", + "01180c722d55efb2fe089dfa12603daa66436d48e1ccac5a39a40ca1e387be95", + "f89ef62b57f9472630e28dad3a1f0b9964146833211382520d8ace8a4a90b7822a7f034f7541985f77a308a6adeea0e8c7a14425e0106c6b5b8c1af967e287182e941222cc7e75a2c4f721b5b419f069ea50daccd237236393ea759bbf0d5740aeca23df1ce087e7d1b643e0d9ffe56e326f55a79110146f9d8255d6cea47fa0dbc496210562da9a85cb5333d6147cf54bfa2c358692e7c2657ce39c0e8ffc512feef5b901ef35f3f46b253f443cf91820842dd95cae1c07a7de77049fbbc1b12e22b2979899e202ee0f65ca7768ab2b82d5c8879dbc314ca8a7264f5d1307bcfd8d219d52f72f7cf4bd" + }, + { /* i=2593 cDividendBits=879 cDivisorBits=328 */ + "729fc81b5863f4e4a55b7382602784fd8ea0068face3fca447178b71ca32daec8d281faec779c6f2ce6dfa28dea75395d2d2fb77b034585a25b95e2e0683856f1f030ce735459e3f08a8c1b90d14cdbf6ecbd205f8fcacb3ab73832f877b0273caaf56018329aee2b1db74dc47ff", + "ca7da46a1fb34ceddacb9798aad3ead9e9e4a0805e55d2000e4f9782640988434dcdf1bd9150278d43", + "90ea060aa55b5270865c14fe617f20ba4cb61333ae01c45a39bb74f77c11fcd5eef1b1c980c27a9acd93b0c666330f982fcbc94811fed7862ca16a26a8d208045e1b2d9d8c", + "0785d13b7b87571615a6f6e2f8cafdcc8a4b1bb9747453c8680737083de520d121ba9abac777d1f05b" + }, + { /* i=2594 cDividendBits=2133 cDivisorBits=486 */ + "0265f0564e6e845419506f08f6dfb6a987643bab67723a4ae53ee27e41c01c6f86acb88eb4ac798d2c01e7103deb8c2a0abc1b132c4ae55c49511868fd33830e22bdcc64d22161ef6727e73697a00ea3059c81e43050bf545dc36693f151ad78f754bc6721c28c4d38a2fdc98c6bd502fa77cf5b7535ba96802b6ad39b2b2f04e5a9d33881be0a80d166d56f05ddd9f16925bb48cbd82bf9eaae33cae0def2d7729169278df41047fb8a6f8b73c5e0e035dd436b0c00b5b080b3e743eedb6b0911f66a03cfab4af499b44c758d9e6205737374deba031b3a61a857d633cff7181e97b0e384a67577638dffc42f9b5765381b8c046734a321313ce461ec99f26fbb44afa39b10f8f508b168", + "174e21c2983f2a16b8ace2865474a36d5352274e9cb12a72ea670d368fdedd1a316752060734b6267bd663f7caad82a935768d66250cdf8a52ea0e2c14", + "1a57ea95f730f10582d9d3eed005894fe775c85bb98cdda441e4f36762aa8d55b4afec3155ff7ff1a5df3f37412efde99c85532e2539201fa408eee5ff12de32da5bf550b986ca415a91cd837c46175993c6ada8c756b52478ffa77d0722a48a2270ed2bbd16798c443c80b766a71a5b91c85bc1658f46c350ae1f778b664e26f355903ffdde4e8b4c8aff1cb43ac5d79f408daff3ba0e86590824a7dc445f304fcd719e2e23c504ea7562084207efa94462e1c3f85d3b6dbe4bb698e4ae746d07f4319a171c5c8f6601ee0b1866", + "0b1d138cb5f780585bf0e89afabea4e6010b3ea5a4efc77acba40d2b12a6f2569d31b3e5b8f83b02c1a359969efa214884b64cb0fd279ece53e2654170" + }, + { /* i=2595 cDividendBits=424 cDivisorBits=305 */ + "5109ff32aed48f2227e8e471e87666ddb91443a0ff8c1808b8a04b07161f8a0b037dcbe6d7d32acc33f0df0761bd91919a3d14c934", + "010793ed8fd46f98e25914cbca2b08fceb2ae52a694e025b513eb0a65ae427c6a8c2bfc10784a5", + "4eb58d0d08cb6e58c75729eac89268", + "3cbb71350f7024a14edb07bd78b73f0e2e01a3059ef4551a2caf04f85e6b112619121578cc2c" + }, + { /* i=2596 cDividendBits=1983 cDivisorBits=1081 */ + "21583390b16efee6ce7f0ba4c3cbe267a2716949f4a8896993f367141ca1ae436b5cc674df7daa5cd67d416c17c0699046402938cfa7cce4950285675ffe8c93a369d307660a22d02019f553e7ec2d3380cae4314d96fe355b573c06b63f8bcf40a22591208c6b05c708070a5d875fa8a9490147df34b400daeb10cebe57b8eca8cdccec8f55c5590d643c45b783afbc263d9fb3968b7763e900e5c9d056890778bb3a5f32cd1edd09ecf42e6b51d81c49219aa4875e81558162c9d53718f01146ab3064f3b2413af8f514c7349753c085dbd1fde9f556752719f0c6ae0c97a0e066d518538b6d920a3f4da92cd9e1c599d61a6f00202cad", + "010889de146d81759dd08a9b58b82f8b10c014b910feee2b8e083461b51de4e602784dbe04615b9d2fd414fee31a099257b93df08c4043eb021167b7b85d875636875e86fa71171857d81dd61c766299f5937b768925d22b7188cc3e86547524eb6956f3b45af640c3885237d015b81ede8b707ade20db3d28bbf74196a9b07b373843d36f81f46b", + "2044ad668f85f4d379504134eb54f0d089b27bd2f27caf8a5b1bce55153c2a6c1e440ad79d5c26946ea745ace8279419e4a46475a0c92d999954a614effb82ca859aa70cb9b965d2eaec07dc937e263e162315fa8ca7d77a1e6b346140ddc80ecc22290a4f37bee2aa94763393b1849bd9", + "cacb9ace585677f33ead2d526f4904e512da4d2b3fdcb73e9a16b20c231eebf598284f85a2dd1da097877132395a893122515206e9f7a31fb477bd29a9e362af7cc489f2a359ba61a350bd479ed265f7e7e46518764e3aded214412c45212c9fd6d0d6d9c43173f294d013e475bd7cec94cca04fba073903ff2498f336f11a20529440c9cf34fa" + }, + { /* i=2597 cDividendBits=1344 cDivisorBits=380 */ + "83dd2550f76b7b1cefc873a22d1c36c9eaafa039818498c0b83e0c87850abeb59d65cf4bc09f1baf9757cd5629f3ae8bd0ca237932eebae79ceedc2c372e238b4ba04172e077eb73533bb360a643aa785832a5b56badb9f110b4d62421fe82fbc36edcfbcfe002d7e2d7779af9423094fbad699b316a25f03b907aea133f69f721f06b40c6db453ede931276c0e9e7cef54b5715a5c3958170196d1eb26c5dba579773426e9af458", + "0b2ee2c25747c0016d92026aeb24cca6d2a9580a1ce097f9d88ff9e8c3192b7072c5fe9350cc0a4b0e86f9f9ebfa5a15", + "0bca92a715f8a1245f457ccc1483ec92073dcf1cca4f7947d047019a1cf9ca58ea8cc55ae316803fe814b78c4a64e3d7f250ac5d8556375a5cf73efdc483c25a2cd21f7101e6af57f27ba1255c8bb08f5b4742dd98545b4d299ebc346a474b85990383b815e2106bc1a623f813505a1e328661d2b34907babb", + "0ab3ff1e515e59de6e54d0476ced2a58ac334e386dfbfdbc69141ddacd923d6d1a4cc7b6ab371cef11583607b5b4e501" + }, + { /* i=2598 cDividendBits=2249 cDivisorBits=491 */ + "4e79f33aeee6160633ab061ab63f7cbab1f4c2378d6560c6a4af14f28ece7b93dfe11ad7f4548ca896763468a0ba53e6ce74d1f07d55e6d8f1c2a124afaaa9c6ceb52534cc6486993b8cccc4320de83ad60cd2f558b48eb729b544c1f62af1b69b7ab10c5ac8a84213829ffcb5bd687ef5f7275911cf0f126faf24a69c6c434d4d0307f1b999e7c1d4c6f937868d7f0eb32dfa37c81c15aa6c812451a7619d4a75006940c5c1b04d6509bfd6f9c99f1edf03ab2a7cca80d059f520437178502098729543fc02f3b1586e1a30cda2f8fae01bea2e1a6512ec2997845d03b7de60e055268f1a27e5e991ecc1d22414fea532c27ac99de58644c82496a60f404708b4de0e9e59a37e14e6594d69667930fa63de4aa881ff7c2a51", + "06436f2212134de808db6b7c05372eda6b59cdb45898d73c1cddc585ee5af92ed385c67d04bb552679ec9be809ca2d7ffeae91abc17d029c0ae839a9fa2b", + "0c8781f72b1e45a275f26afd81d269ace9d65c2fef93e2cae913ef63e0f30d6457a3f32118f7b2030f5e7083f06cb3975c0f36bbcbc60e7f5e5634966c22bad795b901f8ea32e701ad2b03a249ff2e73d3a8faebbf4a87d49c4205ade75cf0c16fc3080359f904d2a09e2abbe382ce0c45bb0b59303334386a87a0451e66e8b93fc565ba7551db79fb51614e0d1e0adecb20d044417a35a44be8f9429e98d5a2c2aa8df92c9d6d045818afe072b9a4685acf9d805baa776077ca72f6f92b40f0936d0bd12b8527858ed8afbf6548158881e9ba85f6f221a8f9c6765a", + "05a5a7ff02391a96434a7a443c5c1f73878b6f8450a380c7c9e5df362d96d967a321e0af6a3ab39af3aa3211d9743a8a3852bd7162b12743234610286533" + }, + { /* i=2599 cDividendBits=2941 cDivisorBits=80 */ + "0b19866ac6b25dffb97bda10d1f9cd15d4c1e3d42dad68f3474ab7b615a52e3c6b6518de28f4ed431db69e955e5fe97fda259fd3c859067808c8a72f7e3555a5c6e29a89ad65c889fb0040e9d643b6672c1d935b7c6c12267a0b6534790b3c79b3440c990a811f992e5e5e836d3b7cd3eda08369f4aba0c0ef93d370936d9771e34290f3975a1cb5c43e7ce6a8014699eaa9316328f7f0eb72fef08be8c9afad5015482827bb1cb923e1260db6c1e38d88df8c5900e44a5db4301ff1757ac7b0e66d04d40b1f13387d1d4a5d5702618ffb3e6811db2ab4a4a3a228cf426643822ebe8eacb093876fd2066daf2b9adae83f5ea8800103675d8c3d07b5cc951c2428bd2ed28f14fc606c3a161391df89e468e8bcbf8b79932df8f3c51678adad01ddc3a8fe37c9f46c03eff1a0e19b7b23a58b155e994d4f38ad224a989f2ca3658913ac120fc237d9d30b1e987cf3b7d75a54cf39deaebc07a0e97959a677fdf0bc8a5e18760b6dee42ee7d852375ba6e", + "99c3198fe93f95ab7821", + "127ae1d51c2ab3305710d25499e1418f03610b4d6034f39092df05e79ff4ab96cd2b6e16678f4dc2ce2b34455c8872ab2b8a3b55cc2f687e5647b1656dee00461a27be14593e6ede2dc40babe9a84dad56753c67491c1739074698013615353861a83c7012286ad380160acbb1469e4171eca5813cfadd6d7ef2a8c4c5fe7d4215b130f03175462e8f7f76ddfa820edc77794a526574ca73d03be7708e1e0049adcadac7f2c9c27705ed963fa36d9f4d4c2c4887cb5836d79c374c86da557ce3ecb087a4aa55c51c1570d099f404b96e5a617c31272d1ca81f810b96114240285836392d65dcad96bd28b6ded970d9cc0bf9fa3c44cd4a56a7d54a5ccc20761f6af39950bc0ad5241d9e0098c2f0ed716d402f51014011758539c13d836472fda20df0c6cb7886bfe3aa4f244e2b0d8eea2ad00572de85be35c53a4f1492dce1e83e4cfc5eed65c9eb8b477235f8f035e7affd510e762eb1335f8438f62156192934f37c1661", + "70753132b3c72e2e5fed" + }, + { /* i=2600 cDividendBits=1404 cDivisorBits=951 */ + "05f51ecbef35f4b94aaa4380c28e271207cc75e98fe5b25d542d594c5f7f1e295ba5b7e5887603772c18c4e9ce8d3cc7dc8691be93ea4f5d8863fab0ee2a14d76562e27ab31e70caef08ba1a3af3370499ff7919936f42e15a62b75b6e948831804f81bcc2964ea0df53a4b0f13917da68a0981b66f6d9f57b707a8e807d9931e32f96adf8ff47dd374d17dade30ebc3fbd1cb2c0f8a58d713d474d121d7fc0a979873dffa1b249f3fd85fc8a0ff1dd0", + "71d1521736dc8a9cb318edc2291dc5c5798ba6628465ba74a55d6d72968bd55a2c7481e8ebe4f88794788acc0c6f0d923e5d7dce375aaf4bc5d672127ba6a5642b2fdf5856f2658d98e332399787fe9e18e8b4b345c2f1acb1bcd530e6d4d461909af1f5ee40bccc08e1105a350f8baad87b0c0017ab1d", + "0d66517b4ba3b61faca191f710d7ce7e6e8fd17a7de4fb65cbc80010ea55f9d477eaaa6f547aa80bf29e7f6249d4c0282ae7519506316e2a51", + "2759cc7bca91e881d436cd48355984eacfb5d34c0cc455c7c13d4442536dc2251520449f0dda4a73feddee8d02841886e318e404c1e935d8d57772804dcf55207b2f217ed27accc7eedb3224110ea9dc5977804396a409ae554510611d0d907609401db0ead324d876f62e7d1c9ad86baa035ea3f937a3" + }, + { /* i=2601 cDividendBits=706 cDivisorBits=30 */ + "03125d2d53c7bfd7972ea734231279e9d584e89d6109020caf668ddec76e0c6ffe82c57d7154befb1e07f1fffd1b3293c8efb9c659727be37ee004287e85ed9219ad34a8c1d7551645c00593d709774e5dee5d5cf722eb4865", + "02b04b05", + "012479d9457cb4d18e3c3cf0c8af3f7f8e7a4c47ae57a3b595f47e417e6daabb19cf172fda5db4ef5c0ba5e00fb608e86aab238dfcb575e027c7106522d1656969fa1554533e9f4c6ba0be482b3a907c3d49ab0204e9", + "0240ecd8" + }, + { /* i=2602 cDividendBits=434 cDivisorBits=17 */ + "031ba2c37c550bb89a3f69917f9488da779cba650a10e0264db7a227b21e43763ed20939c82a696c1ffbe2dd55451423e9ef2c8148a1c8", + "01d5aa", + "01b1ad746db923e74e6871a67f309e9a8d5cb6c33bb9b4092460dfb31d9214fd702eb0f90be3e5d86c38c751dc7873cd3e932b8b63", + "01b30a" + }, + { /* i=2603 cDividendBits=1419 cDivisorBits=20 */ + "063b846ac0a414a2b7cf79005860582dea950883195f006522dc68416e4d957980b38ada5a3da026fe7556924e119205633477fc9a8d5843603932744476f8b99a15b837f56bc5db5b7f1eca30d4c109aaa1ab4077eba18634a8d644b1fffa542dde0a6897f9dc7791436918d9acf0bdd5692e6f1e8d21b697d5344659b190a0867c7aff8a2e0099843190953008742d7ea525631f31106e1d6312869d990ecea35a830915ea522689c429de73756bf2548a", + "01f739", + "032bac60614d10052a941975e928ef3ce509b046aad22d99b1706d073444ae270cba2045cf7ef1b1346c3c4bc5925cd92cb5f488fc76a6daf60f7a26b7243be199a09456fe7fccccfb58a2e3f7e4cd272ec69e4bf24388231036106756842e431e7f5d29a84f154dc77aa755cde79e5e7232c507409a974e542d05b9cdc760d1ab6a0549fb453eb165a2522a302a9d1b3c59ef63a97ad2bef3b823e4d593d9c58c25d17d6ce89ffd6986b398691c005c", + "017c0e" + }, + { /* i=2604 cDividendBits=2272 cDivisorBits=559 */ + "4065f048846a94c0ffb13bc19c029cf8467f3e40ec9024dbd66d465ada92053caf277e59c72e0e104845aaa0074712a432bdc6a2f2cc017cac3e2923deabbf6e976304f225021906e5f1aa068f1080c19cf72f591d641f3e911ea49c7c1e17857914bff7444f6641fed46dd3f13e488981b029d0874fbbea6ad3cf3e75e87c0098d6d17af7d9d989fd430e2fa059698576c524786c8996caca56087dbe04d79e38b51c52087a6633d9b280d6da54b924c900f53a270ae574731056c3f89430fb036d4f5a367930380595b61a896ce7ad89a23afe75e07542a67e13738e23fa6423306348637ef66771a62ad7099c5243cba974b35d3a2b2e71733227333a1006c1119dbeda80b555784982d4a09797fa79612ada001b31c01fe8a43e", + "32a4a741b4b35da3eadceee42a060b16a68551b305831926376369cef0001dfd9780467bb1fa70781f1838dcb9c59d590296f0273c7edd8570628096abdb0079e97ae7e202f7", + "0145880264e5e734288d9efc4d378534e0db920a8591de3e91528407ae3ae2ad217c7fa3381811e5290cf8482b2e5bca845dd6e2cc5731fb9363e5e593db801ed417442a3fb496be12cab17fe253259581fa5a8bf6ff7562fc59d29cf30a93868e490ffa7dddbfa663454903f86a412cf312af7587a1e5062205194807c52ad05032807cf7b864055b811e1de4f1176111fb5603d6220e1b095309c1882eedae944a7d09d65ffd46d7662b5b891f8fd4948b69be6891099c05827d18310b410c99c9c7eaf19a07f0135f276e23be2e2fc863eede66caa9", + "150748f3f2172afffdcb5ea220d66ebef3c3048dae22468958bb5136c8aaed424897be53b8a67a6b4750632292b52c067a3727eefb5055d97689ccd4e66b3c1a6b6354f3c92f" + }, + { /* i=2605 cDividendBits=362 cDivisorBits=118 */ + "0326bb6c33cc0189a3a9fb3c4e1dc225b5d037834eb440a09c47df0501783bee8ab31af5de6858f73608b5d9a5a7", + "1c6de4b4c17243f36464c51fc61f68", + "1c6076d83c745ba75e170025b3e8f95a2703ec4c11f3433eb0ef69a5e5f88a", + "11d4fb5748e2afea54d4dd8697f797" + }, + { /* i=2606 cDividendBits=486 cDivisorBits=80 */ + "0494dabf938760ec7ea62077b7e73188d8f42ac0703a0714207caa7eaebccddf234c0b4fb8811735f019a866993ac43582981b2d41fa3c76370727ff84", + "2f201be823beb61b6e39", + "18e34fa3d5600e5ee01defe44362aa8d26efab8c8cc2aadf62f5cf61d31cc376edceaa7c6f27aea378367d618cdaa0715b62ce", + "0192b7666c02a5a07ba6" + }, + { /* i=2607 cDividendBits=2033 cDivisorBits=1107 */ + "97951fe85a6c0b22bcb7092cbe21bee1107f2a0fb3781e7437d52a73aae4e5fbfdc4cdb430c4fff8b879f4c4e3df8b959db01edf6a2fec9811407f1c74ea416916aaa7fee65ff32505fda670666f68c7ce4517b1ea10371e0f842802040ef26de723fe20fbf88b7f510208a6645c01c8a9ef53af19715c71c57620926a3192688c57107b0c5a5c085b5bd918675465eac6fe0fda8210ed5a6defe321bfbe7d026286888e3b887f148ebc2d5a18149c00464aa9ffcf11dea93fbad49023fd213d6d45f72f577f40f7a1650efa38a90161ea99986570a96d4492cff9b189c6fedf8c7347ea91aa6a0a43c4cdf900397830b9b1b892378c28978f6285c06a00", + "76b3f813fac84e766cb6cd491f88468bd4e0c0802f591c76d1e53ae2ddcabaa0adadde75cfdda20fefe85d52e8d955d25e91a93b53428a0a1b62a9fb8098ae8e53db987a76d88f35ce32a299b83a37c7bd81839e698a9c58157f187b221aea45babc087aec5c0087f12d81211ab54076691514522b3b431d1c36947d4ea516f5541199fc34d508e31222", + "0146e8cca9ad88b1b726acc0de3e397c694e56c715d7b29a1deb3abb6e1d2307afc013aa0b554a1d019b2eccdac29b35ca09bb39eb930d7858de1c48a82750745291e0544171ceca355b11624948bf83a469ec5903247d7577d8696ebdb6ccf370b1786303d5fcbd54ee75b6a65e2b99c19bf640d4", + "5e2accdbbb058fd7b255a2f3e8b7dd5e8437b904aefb82c03f6b9d5943c1fe89c333320fcb228119ae8cc3ae358fbc07750c7263c1a0d5c0083fcf718e209ea59e04a68f4be926cd9fe9ae373d58592b7c41abdb412aace1f7b5b4c829d396c934f505a43a124e9a32a4d45ccc70f1dff7f78c175feb214e01df146e6c47ebcf925de4b188ee6280e5d8" + }, + { /* i=2608 cDividendBits=441 cDivisorBits=301 */ + "0132eb9deac9e242b493c230b018ebf883111eaa3e27ce552336d3fe737f0b90b1d415d73e81ed7f884228634dcbbaf1fa35fa71318e8260", + "0adb52421d60505531b630ab8d28c3d3358506e00d48c2f538eb9eb11ec562c8342d5daf0be5", + "1c452382618220972d9335ea9d296349c595", + "048ef015aa17800101d34b2d3d67da936a7f47ad55c35cc55b2fa3ef33185bb7f1c103385d17" + }, + { /* i=2609 cDividendBits=876 cDivisorBits=225 */ + "042cb0cf52bb96519fe8c403961377b85b6bf8bee4970cafeaf3bb6cf6e389d092d02dc8f669cf795f322cee7c79777694beb3e1aa2623d06d914bd5a3dca0905b88e54c8328742e3af9f165d365d96d5ff8a94492225a72c91da24e8854d6077b2611b0fc77ae1fedc3711ff062", + "56308b075e4b7b84fd6240ead5c0639946f7a94ee7fb0f5c8ab1d837", + "0c66384a26695c853280370038e37418c6ea68c3029510885c619a76b20cb3ed10b8b20bc2fb0d84c43cd805a2b2dc770f6ef084de8e16bdba07e9bcb8ff2ea2f6ffc780f1eb2040eba1dbbf5bc0c5550054", + "43f5239fe34e8a7f3f34e264395fffbe942fb471a40344b6d181fe56" + }, + { /* i=2610 cDividendBits=2850 cDivisorBits=199 */ + "028436efadb3cd9cd5d1f965f2ae577778782a0f5fec29812904d387309298984b4ad7b81a960a407963cd1f72b0120b6587ed6ea5f137b24fc96ba1c861e71a016b03142a401eba77ab0521d9179b8aab2800e44870cc7d4f9b861ec1c907d6d2a877e469d0696ed4dd5e395a57820542fbf65009dbb61cc2bade11c4629f6ce090bf25f8145264f2f422967734eed8264c626ce062cd7f1bfd0bc23e55026801379040dfabfbee74d9f707da8378d80f8cebf280b978860b2623965130c6725524fab0eb31dad8bcb6cddd2b4dcee448ed305b049f1f1d9b430db5d4a44b0d4ac9b9044760915bf9487c5510f29ab64ece8c85720566bb11967a6da7e4467d95f281e4b2e7e116728accb0e5ec6c5bea37fa8ba051779945c3d407f07cff96cdd187d307b74d1bf4031fd773094b27f6666d03e3ce519a7a9b4a6c600a7b9cdf12eb3a696a3bae0e42f9e1d5d790159129bdea6d2a47f6e4c7448f9781a63ab8663baf83", + "0822595df49c9c71fe57cbcd7414bbf12238821232ee36d47e", + "4f32d144d573a6d21bed3ee2cd946f3ebe48960c449ce049a563981b92f04c54d5e7f5ab81fdede8e4aa7c4c71b09483a81446281213040092f09883a31dee5256a86f8cf81dc67082a905a242c6deacf88c7ffedf6c5eb864890962d633ff13eb46a02019869ce1eabba36d400b3db27b5026deee79bec9a1c9b49756755b9e267a0f7491a09232ae0238dccac02ff938d0c1ba54a7a05055a92c8509dcdb495b035bd03402fc9f74c468def9f47f3bf6d9429d0910d84a8c734265bdb93455d8f85ac1fb8d2578c2914bf2f55ad8b9064bc500b9668890e6bba94cc32bb28bbe5ec1415c2824af6fa733e69fcf1961fa1e1fc1067b58e1fc43fa9b79a03577bb6b23bf39a8476cd665f1cddb848614108978aac86af826cd443eb41a7639a238f5337aa91283d6b5775b1d2158e544324f9921ee1b24a01eceeddb75ee292bd4fc51f0763054ebff54967c", + "038ffdcf3cf57740db56d757b2c6092bd4a24e6327a7d2ee7b" + }, + { /* i=2611 cDividendBits=1888 cDivisorBits=925 */ + "a3ece4ce218553537ddadccebc9c1abcefb007d079d23794026191501ca3be571756a75809da60120d354f80172c9ec25dc1eeceb9c0b669936b9964acd00e9a013be6d0803849ea7d01702dfba7c17f0bece953803725ccae54dd5a06b977f82d34b39ac5cb22003754469b5f5efe89656af4fc2e96b8ea51c11891d33c0a9e7ae32195e5b5e8f9c35163c641e221afa588e8992ecba1826a297492e73328d5405fbe8cd8c0411830f5715f9846ca69788793c85d231928e20ded4d0dbf3aabda5c5b488cc1c16723a318c61cceebd2928787e0087a4e98c03122ae3480519b558df06fdd5c95a33314504b", + "1a9d9dc98736725dcad0df47aa2ccbef350b60975a550127e1beb2cb74104505e62c3a44a83ae7008d0a76c1947b94e30316496483b47eb143276816a3d35200943aa40475452e812481d30f8a325639c70461c3cd300c97fd6caff2456fb8362c016e56004ccdfa8d1fdb1c510ae63625084538", + "0628b2984ea63b7dc0aede28724936dc1eb7a7492935e6707016546d5f5bedb5a6d617d9ab8296f04770e90d8b6729bc39b49a9636d3bcbde7ca1d870158b59cebdffdb952acb33d0ecd83a02393c4e9ec9698f1ed1efcb861d4b88641301425b472f011499c9d3fa60c10e260c401dbd2b31f1379d80dc354", + "1154c018e8c94f32e4416fff0cf546c9b8c0eeeec9bb0f02a0258699a9585d235c9c4a6dc4b551b3ee7c9758297f17e4124882ccb268d1976d298a627e1aaa6b9ad0b21fb5115f3c6d6c375c3a3d088fdf000d524b01bbb1f4ee9e74afff15eaf6892aa60b09b3984b7a60f0f09b125efbcbf1eb" + }, + { /* i=2612 cDividendBits=3125 cDivisorBits=474 */ + "1df4e28d9ac9c2d763aadf74a8e902a31428e09f0c9dcc64b892dfde628075cc34ca1c1a32225b515f6f1785a3448c1397e91046e83299c6e28a55e044c40bdc35f12f4a68d2a41825d729a5ab5220bbda03455accd4e1bd1adfef448ad49d4900af77d12061e3c69890dfda4fe4fcbee1af924794dc2a27d63adf65b36cd7fb7facb93dfa89a56bed8588aeab97dcb259adc048ee0c97a69a102b2da992383d5faf3b83005d7cc4d85cf9362320b4e818cbd405ee90f4fd056fe0251e5b656394c9427310c273c4fdc920d8da6b47c2d1006ae11cdf78178d1f3526205f48e26b48ae8da5cd47257e2058e7e263e5662d46321048333a2656fdc2e338743443b7c803110a445a6c11cb4591796af77f57ffc27e69dcb2f168e704de105e6fbef2383558ae22948af7bd00e631357f2870f600c5e451c96c4326bb002c010c4c63d40856d3bcb174c1ab2ce83c178584344bf0746bb224615d38ae7f1e2ca3dc02bc40b9af4ece3380a2471e24d5ec48a38cc84f4b09970b301e3c7f57b3ff1036a59cabef1167", + "02d124356c8d17d224457afa786e517cfcbce84cc07cd421c670bfda32b4e898ecd2aac4486c2c17a5adeeaefa8e8abdc8fc563cc7b097195e30597e", + "0aa2661447e0073a71d28d197c714cbc8ea26787549358a4f068b308d9ce1df7fa5a6f0d98eaf0d768a4827a1bce72fd9dd93f1ea2d99ecd5ca6db53083d31011a82576fdebffc30145125c5a89b46c54e6ae20472bd9b71ef82e48e1e762a6611a334c207f39280f3ce6365e4c8cbd537559cb6dd01d0ab6bd5c21f622fbd826e5aa12f66fdcfc0ef9ab092fac969f23cfc31d8cde7afb363b8af968b1e222ddd9effc3b0196100315c2bea72b8c5cc98dc7a553f04e967144d6320c9e6d7fa5767efb0b3912e7e2fda4f9f0a1ccd55998f58f271b738c9639bac9c6c96151890d05dae9b8b03c25b10b2cc16ab38aa3406f6ed8265e9148305e37fb327f894d79ffc6ed22bd33aa12637870b7361f3b0d9f6aa6846e1b513a7a22c7a4dae725f88f8c2f610e2ceacee11b6326dda9f762a6ce964439c2b1641fe143974765ded47bc90af77c4acf2c87300", + "1d36a50f5cad022b598caf92830abbcbfb7147855fb8c074c586806c27e749bd5fed43d4710dd11a1572dfd5d631b768f9cfcface85d45ed4b7767" + }, + { /* i=2613 cDividendBits=3210 cDivisorBits=1676 */ + "027a6a28bd33ae3c42f9ed0766361272dc0a8a2d194834b54395ba55b01a26584ec2d9272720328fdc8af91fdc7dc96d68c81fc2f0cee4f0034bf3dbe9768c12600452a66b7da94f13e7bdeef2f24d66ea11ee73fa4380bfe7305f5af574a027717b3a442065c472204bd7f12d9112a3b516f7330fb0c887ba9a4e4d6f4efbca8fdac832a7f8e0daeea5af967af8c7d88484a913350a07795b2cc112f63585bf57930cfe475be11085f798524feaaf5d8dd744c8b534b58d6ead0953c84fc430a57e6e0cee2f308fa8f238daf128703c996e200e7590d7519457b1cfb220881568c4fd853ce67420af8aeabee5f4fca3f85f952032a24641dca51f2564ad5a56242263d0d141954dcf81b47c120e01914aa2921b5940e594f28e975f6f9adc5ba08c14a19df213ed4791fd712bef31dc18f7fcfda8ca03572aea04ce6fff249649cfbbda82f670105ccf6dd9ce1876eb024193a00eba9bd9fa9bf0b03d2601a0aac6f03e94a2fd2cf39ca54e755244574bc89e1d06ceb34a285e4433b18e4bd79777ef252c70093cdadc6fcacf68defe0e68", + "09f800bfcc3a99c43368764ad2a785bd77c51a3a8b310d0961b279659ca99bf59fd2e1e04ec0ae6a186a276a64d162f010c7cf5b7bebe5bc4da786a9ded06635813efc597ac9bd3f2b2b1737c1cb8bd4875d70139256689353c6f4dc224c44831382b60112a63da7e049917dd1cc8be7b10992b191359c9ea13014e7c5a5ecbbe04a4fbfdbeb5fbeae7ea0138f27115848f510d6e9af059ee20fc735a0ad9352c90f166cff67a28a72520ede607a79a7555da1bd3bcf2fa8dedc708be33577e832d4d4f78068e0222b906e86855ea13e5403", + "3fa3e8d5617b997aea2c8a27055dbebbebdd1697696f7e1fc6a8de845610f3ecbe1186bbe6522a33bf9d985abed5925c007594726072d41098a633d78c47832db1117f9c8da9dd0f02092dc7495e6dbd56d48decd466f3c419233334cea1dcd2347dd93381271df730fd7f4d3ff1c490290a52718325bb910e6ef92198cdeb150ad28bc849025f014cbd5d5e6b4c23d5491e71210427164a7181003bc7cf3e28426ae6e3aea9f1aee32eeee281b715cf650a6210dfef1f42a530cf68c3c6dc1f", + "0853301bb4c60a7c2daf20264508c9e1d38daaf1c5b83cdba0124604e8144d50cd4ef6d61e2c12698caee1a4ecdb38d36ebdd87f5ad82fb0574fc1033fb966ad8cbdb3886a5e4b05a52ac3ae5a585bbd44b2a177bbb7511af7cca098998ae60da6410cdcc2c4cee32ebc0dc0721514322765bf4af31ec7fb4f05972f5ffbf2b4580288e056c180cad293ee6b5dce82f5a05391ad5279e195776d1389558198b7a2bda5ec10d6cd58edbb8035fead4ce3b6dd3a13d35c0d8bfcda6bdcf75e104a8f152bbf21ccfb8f6152a00f97f684ed4e0b" + }, + { /* i=2614 cDividendBits=2148 cDivisorBits=591 */ + "0ac09fb1b85072953b3735191d271cb52cfbc529b6bc7d58d3a4e26033fb90cd6612030319c90ad56c6dac4a77fb145fb0c813ddfb28127a74070ece89cb964b32fa859195d94c91607a358d1a4f3768b54a516e1058a6cddfb6796a1d7e9f33dac8a7e7dfdbed9a7edf8d5681fd03b5dd680918a1156ee38bdc2b1e6d523401ac00b38f66775fea4c2d4203f3a2a05d26c4bf8c2cbd6e9d130b45ce9c3f0609f78f504c138a7509cabfae07644e56ef5ded40469757ce031bb2fd76bdf2406e8a196599bc5b42c012b3a1fb640c7bb116aa99795b5d2237da12f7995dacfbf6473b9e058799980d8fd0cc40b7c1625996cabcdd67c2c5a0fb7dac53e7e28e0aaa925180ee6e69dfc95348e52e", + "40e9c80c631ddfbadc7ec32d69307102076c441b12d97f08a0e36eaf60ee76d6f7fa0c9c8c76e4e136acedc46af4fed6cab53e752a98eba7d38c9e88359be96b7d77f6637dcf7777fffb", + "2a679911a984b2382bcbd9988cc82a3f5707bbffdfa1d5cd348f719064f074486e7b4234d0294f8a682bb46ba84b76e08f4b34d8e11e0d0ee0632697f94b606a502ebfe3312578194d317574760ee4c68ed29e5161d5724ac7165c4e9922538a585c6477f4d4ffc71a436de718252501e159fa97eb5e1a33f9544ca699139f15eab2ac377c4d9be8b6f1ddbc33c9a821c5e798a0c123dcb1b7e3c3adc8af745cb00b5d97728ccf31198439316951fb5b8e78934a9e666e5489fada02377a33910959cd", + "3b527ccea2791437cc93b4d95d04e4b77310ffcdd04c1cf3d6b5d7e32c43c2b35bbc4a28a774b100c703c463613aa09dac92878647f1ad4e0e6eb2f6e4bd8112aba9a93837e7c55fa62f" + }, + { /* i=2615 cDividendBits=1383 cDivisorBits=97 */ + "4393869689728edea7a6dc6777e314903efa0160d141c9423c070498c576370e3068144401ebad639b5d10f6f42d1dd72f1a4252089a9875ecc4d07a2ad45e908444ddd3fb76ed40c0bd1c7a2eea8a82538226d70c79f9a0fe4a245620b094f3467059225f24e97f296e3397bff780f32960b9bc32c39692c1b8b0b481bc631797d72d2c64abb8d6e3969f1fd13032a6015d38c908cf66ac4c54f87692fbecc4a64bd2b0f222c94d623dc5b901", + "01b32891662d7c88210e79eef9", + "27c129aea3531c1bf07fa428e174ac4c7b4e64933fc140ee2bca815b1a76c3fd548066159aaea0bce26692c7796fbe984bc007bf361a8b84fc1af14517924f592ac40f9e9a8169ce83be65d035a297efa039a7a9e4ddb226b7f050f11ecd3d7bab15e2b0049465ad3ed042330fd93df92affc6f27d58de52fe5e581f6c11a726ec561aae026f6e2fcab3948b5ab2147790d9c8c27531da2d04830cd2f710a52a1c", + "c919e2df5045359f10bdbbc5" + }, + { /* i=2616 cDividendBits=497 cDivisorBits=44 */ + "0103ddb2bc81b6957d89ba332174cb1f96ad4330e4661076c26847bab0d8213a293cb97af2a5659664d32a4b32a2ca439782564a39c051f1f5426221b5aae8", + "0a50a06aed8a", + "19317229d2ce8fca6af0654dd111581997f455ec392facec71285eb0bfe92e2f67eace95187691877162fa23544dc57b5334500b348c0a3259", + "e8bac021ee" + }, + { /* i=2617 cDividendBits=94 cDivisorBits=27 */ + "2bc533d8214cfb2c1f9485a5", + "321715", + "dfb35e1967ee627457", + "0f2982" + }, + { /* i=2618 cDividendBits=2924 cDivisorBits=907 */ + "0cf665988e5a5fe9855c670170ce3b5c3c86b5a2a5ce1d7f4da7d6a8ae317f7d78cb088155408ea585098b2f6fa1308d41467d185d76f51316e9f6d47696c404b5c5e9419974f346344fcd7b98b73599faf357f7dd56943dec6c54c9e42fd3ef03db235695a461d4ffb827be102d3b28591396f9ff5930cc43e1461e39f454c82d515e482570709ac515154c8392fa92e37505e32b3f017216f3824d2816fbe25935ce4e53ea788ffc6c7af396c662b1b8b0ca6e76d5fabe59877a218a518e01cc7261159202df7543a949a04e656250c44d2f1ede83817c9b11f4becab5996394c1b3b65b052628bbb1d5362856c864347c95d43aa9830938dfa2bb215b83c7fb8b02eaeb6b81691e5ec183570e0fbdf8ff1d5e3b22e2eae0858301d859adc5d228f18511e3ef0c22c907d16e65673be65f1a2db87f66a7204b553b36fc18f2941af3a641d689f70cd2abd800f65329a41e08add4b70982aba7a9fbb96ca1b9588af7e46edcbafc97818055fe80", + "02d4c645f78a4603877cc2ae06d0a31b613d3bb9a3146d58dcdc46b73ba058900ebd2edae19aab52fbd35956e61e00b859d1d90fcfb188a7652fb0851f39f554393db595a6dcd98fe160807172a0f13e2cb70d9b15454877ea22d73525a0e1c34ad0af81b42eedd1b86a3be6024aef5f74f1", + "04941a180de9ad1dafef1f18f35fb5b19dabcbdaa91ba2b5c72640cd117f147fe9b91a1f6b5fc0b3df42c791510b163b87614a2a47e69f86298e2174478c9f23767392886dd24022af4bc46441e2e338fdbb09c88b12426894a7eaa4a1fbe11bb20673374503f76ddb56026a733b16edcf0f230c31844c88ab8daa4b4c9598b1ab74afd7a11096a30531273b7ca517a86eaf9f2ef7cce3fb706575b732da26ecf0c2b01077ea63f28cb7b09a810cc1728627a9f6dba92eafbd60ef0312dac3481804fdc7c94cf6d3ae75cf76f94a8fe99d0af5d328d6160f70a78dfe80b1525889e38425733150ad164c111744e5e95383025a6816887e9e7823257de8", + "02c81ffcd8a72f5ed0cf54917aa12ed88c7afca3d62741d7b7026e059270ee2e8b37a2541f46df9f5a1ce7dfe755c3f9f6959283c4102fc6d9748659ea44e7f1b95c2e76483d4a7799f003a61b62338229afbc1e3104431a002dcb382a4a5078bc743ba5e4b18b868619da53b7f61be55718" + }, + { /* i=2619 cDividendBits=1415 cDivisorBits=295 */ + "5ad8d211d23e4b53fb2a3203460801c9a0e1c1a75a08f1432950e4a57e906c25f4ad8df7d15284522729054788be8bc72598c878c04c90857759e14f52ca4893ba51edf6702eec0d0b42f4038968a3adbd25f67c1b0b8c36a72cd61bbeae0e11610af1c31cddb686c1af41cda114143cf880fec70b9dce42eaf44396369cc4daa02ee148a4a2b1eeea7c4025e4a7a3124c17df76cc36dfaede77e65b6cee8140f94c87c248b7edc66aa31779d5affd1dfa", + "6527e123d5b752d0ea26a21e281498676e042cd670b5eef0fdcb5e177157bafe62702445f6", + "e5e933928d5bd517b69dc21d1b342041fa35317f5c4145d60a4b709721b0ed783076de886e0112a1504b22461ef15d6396b2cc7f87e3c748fe205cbeea9f7ba26fa46f1630f1516fee4c4e231b5652ec5ed420cc6a1148f7edb4e7f845812cd43582011f54974fe7084726245539f54f8a5e1bd7d0152b7ff29ee71e6e8278967a5696d72d587dd22d694cb8", + "22e1b9abbb55b55980b33cf32cd302160f88e7646ed5cf0fece22ddc9e6e9a88d1613fcd2a" + }, + { /* i=2620 cDividendBits=1538 cDivisorBits=1180 */ + "842ac4b667874497827774d7da1f70675287002744f8c04c2f7bc3700dd942366b895bee60a5c1712fb44604854db8eb6751880a96a08b41a62531d222637d71145c56fcd45800936a5c6c6c0b84ae17ec8611579709faadc94ab8aa5824e85ee0942d741a7a3472dffc6ebccfca57613d9cfbb71415328c3de39f19b9201bb66deaa65b3e2eaddf5900b7e79eae888f1bb6d376eb51cd3c99bf56c4a0ff1d9ddc5acfcdfdcef3dc395c1adee3142eea507491ba8ef15ee06a2654c3be9f74ab", + "0b42ab1a54ee59bcbdf1d83192aa65df162e67e55dbe18a1854079505e7acb9d2a4836b0518c91bb40f71e5ac7317638240c364851319fce125483669ae741d8ca02f507436787c452fa666a174b6051fcbda35bb23a1da6fb09dd41c8e7c31d74d3ae9985d3b27655a9204f5d8558706efc9cf86dcec3edb256711f42b5cbbfd49f60701ae2e47e23abe13dad283126cc04134c", + "0bbcc04286310cd29a317ed52353f1d557a8256d65fafe27f12382c994a367d24146cc0ee4c32b27853c7ee4f8", + "09fa23930f1530ced223a22eb82f65f122a4df182901ebc93a9dd7e44b2e0d8b099e4c3d2fb1cc3f7665ba9d78dbedaad55157472ff73a6f291dbf63ed2c0f762e2abe8e3e74c1c522f9b700e2bc2a6794dc7b88c0044b1e6f0fea0881a7b336decf957af506010da96e318dba770091cfe041cb82823fc7b0247ef942cdb23cf43ce5cb2536163aa15a6e4cd7b430772a15130b" + }, + { /* i=2621 cDividendBits=3361 cDivisorBits=837 */ + "01114215b12012b086ab2344380a831e786e57a9f643a229ed92f6cf606df32434aa6deb452dbd9c3f47141d4435207275d078a43d40f5bfc4dc244db443352a74f49b90a903f3fbfe3bc1a11f9d231fe06ae5aee6e8a996a6fdf33e0926bb9129d0ba369b37549b940f4f68d33fa41d97f796f0a7a552c8a9c2a00b1956f760b81a6241057be425d2f636a230ccfd944668163cbcf7f99391b8bba4074a399669280b44bb8d3990c8d5955d48f04739f28876585c56b1277c826b5b6ffe8f46790637226dc7e26457add26dad748c19cc642587a1ea8c9b52bf9849be2fd71205cf363f335ca5b0007d3a6c108c1210de4cd7a321a6eaa79e1cee2adeb4ad34efc906b98b809dacb974420606201281dfb9d110c65c82ec5435915a538e5b1df115f22807e04d34178770531eeed70cea858cead0eede2c32d98ade38301c88c9eed9ac6d64246eb30b3d92af254fa786769eff149893308fd22aa3e8ce23c7647a1630fb72870ff1ae3c3df11c90494625e6f89d9deec5dd893a1b1e9bca97913a5ef8b4f12e68b44bc165ba9e2a14c3e221c233879ce5ca4109f0c3d76867e52cef937e", + "1c6bae3154da5b339ac189a12c918069f39470484d4ea0e0f3fbf84cc9c3434e7b200cc2f0a5a0c66ccc55daeaf5c6e9c330667bec0cc9a539632646c2886ba547a640501ef396df6a54eb8c38f2e16883fc6780fd41ce505db418fd255f913d4d28d5afa8ff5b7c88", + "099d62623ee797c6bcffda4081e59b9c8d06e8816e16f2ac673d6917bda7115776a509f7fc864e314c9ae4b320ae84effd16e4e21e087bca8515da7b0e7a8076a8cc51af0d945d15b715b09167a756e6fad88c50726a7a316f93919ae436d42017ea0e4397aeef2073f76a6db3d1cf706097b3ab6bc04feebc6506498bc21e6ccab3d9c34d2ac0c487ffdb8276fa430e374aaa48204429f430ab8c11ea78765f3a67df75da437a6e080f4621a98ac978acca8a61ce4f6901148aadd2a33489fa36ff451ad4d2172bc24b620c41823e15406e7003a309ee31d8b3e8ce53c80f5ebb9645d1f576ad6a8c9e2ccb29134efe38418ff39dc34fdf0be644dea6f0af494ea994191864efc9b2763f0d9db44ea28d41ec0037ab2ab02d1eebfc0fa9a4bf343e7d9a66a32bb84fda3e53b5ffb48304050ccac7e87b84376e9c05", + "0120b4d88a6f9ab5e159cab3260e1a2aecfd3e68f71a2d1143674b9b44d1a138fe58e672c0998ee934b7f4222cd94d9752ed299d3b265dfa134adcfb5b0d2422283ff579493634b78263074bb9ae77553a7ce799cbb0812505e147d1fe570052f5d7750ecbb5d344d6" + }, + { /* i=2622 cDividendBits=3542 cDivisorBits=2929 */ + "0c7565b4c2bda7bbb190678a6088fd4964df0428358bad5a04e06f943e285d1dddba62ff60bdc926d634f8ba10b527297c6b6ec7c51aac5e9602fdf0629e631abf2748b69ededbd2603a22bfa35e5e2fffc55613912d8831cc0d489f6b67dfb1c914bb503c7ed3aa7aecb68a956c49a7e0ee0f80ab72519456ca931aaa544357e44a368efcbff6058697b6905bdb52e0be5629092ce77e5a93cab721466e63d5af81731628d9e9093ffdd4edb418155630cd932dea46942e2a7c64816fdb766b7a3b58f4190ca58ca765906ee939efae7b8861d1f2a409222616b5df4cee9ef59317f463380f02d4bb17b32708e23fc91ca89836b80001f73209dd9cd586ddccbc39f7e26926b7e4e5ebbdca6336cfc89a56d45ccca22e8544320d39e86f53660cd8ecd012e8766e837338f3e6c486ab8a338874e08e09587c953576142d52bb58f3b1ad0856481fc52e414b11873211f99056af65f4e583f1f33b19b3a04899f690b75b6152baed05e9e052e7301988a429ad8fee12fb37391abc6bb4a8f9029f23ec241bd8c7326d82d00f4254b47ea7e6c93b6721906a9741e0caeceab36a0f3cbb934b0a4375e7361fdf21f9994edee4a137fac267bc6c6949", + "edacf05d105d1ebeea956c2330ad385a84507d7d42b2e1e324b35c89c354b0478191a9412c5f69f0f4c64eb1f37e5e68840f33f141c6cec963185e0b71c8167f16542a81a5ac239e7d2ebcf4994db70e0038f6d1261e58cf01e4cedff1be46aade28e2ac50b161ff0f25339f5adb0ef227236935c149d06313e547299889621f728b2d5d861a09e6be53fe99e0d90dd4db388bb91f8a2021aab5bde5d35fe41522cac32d3c25bdea47bbcf9efdfe3ad528b9651c56771f021d5c3a177eee09a56df49787bc4f5ec686f7f2711b39d78cc219e772c2a43e7ba90d33a3069a5e64b28d98c290a5e90aa1a7a4341cba9da8b529de6cece7c211068ecf692e1072394bce546c49b7c7b1c8c61d276a975fc52f4f5b22fd6ac9794e7bf1aab3cab3238c18ef97bd5de87e8acd923d5334026642af0ff1f770506207e60765d6fa374f89b1fcfc230485c04c877f568ae81a54616000c35bc7e14ed76645930c75a2a7cadae7f93b01317014f50dcb80b9", + "0d6b4ba1764c695582710220fb7b7ea620e53c1b36f9746e98e6b342290946b1047b3d07e28f074bb7fdc381047fdc6ae6388b08f2fdc7a12d57cb56cdcb638064f6a56e850a91f5ded4a7520b", + "8c744c0bdab57072b43acceaeace70a129a41dc3d2280432fcb489e8fa88edc0c0275b9653c0389f4c3e3434903dbb5353350acae45d3278d886985dce09517ecae091a626552cf8f32337aa72658bd9c45aae4fa6d2fb803a8ff299cec4ad0f439b9f5538332c03365d89a96a290e983bab93674a3f1cdf2fdae2ee78c92c8be2bdc5bd6c0bd88c9b19e73f20af089517e16fa4b1241592fc50fb0a6d4a79f9da1f4730538c2e20c6c023cd2a748e829d4303a3b0a784c8e634648cecb6d70da1c68b71dab22bf88371642bd5be3331b1ebc72ddb32fd76db832fa748e9dd3d23ba0e6838e662ae9b4a1faf010d789fb814397cd24283ab11fbec9dbc136bbea4a04a638f12c607fc512819724d0b335d64a5a3e5b3c3ba4708ba7923267d9161ada6c18ce8fa1f0dd6056486e35fa7626e915508e846223bd815dbe0d154b5039e1e342d420a6da821f83c30bea2b7cf0d9bb000c292f3844dd27a036eeb00516d19ad1427bab729acc8c39f56" + }, + { /* i=2623 cDividendBits=3830 cDivisorBits=1183 */ + "19bfe43000736927560b1ecb930bb601d72d5dde12f386d35f9da5692d5c4149dbe51c37ee5adc375d3f27c7ef5d66e5d97c820d2828f9bdfa7f86a84f2c0db4e49bb9b38baf6daf355cb582b260c9293f28a3b102cf4429cdd348d9338082e88a6b2d614d77867fbb048272e62ea2d04762eb003aeae30cb1bbf1d849a445567ba37b6bb2f2693d793ca10880126afe9495322a4f04790b354e748444eb9eecb36c69a8729433f9fd6455a8e834da6d76a229b86c795a1d41b880cd5bc6d1f2ef34e57fe00553f586232ca5a67cbee0e4af160cc2d6d41d6852bce0977cf4c44c46d6dbdff39c2bb242907a411dabc431ebf1949a206adb172d092ce24a4b65f5b40deadcdd020d6975c26c859f484a151cfe26716594dcd6aa0e666de8bf993bbd02d265b796290271d5b7a033146f1ef32261d9b39279b86968c362f38bcea5d432eb97deb343404088ab309964bc6a213256ffda38667093c76ee5b5b14d574b8f1c61ffbc62d81ea563f7b0aab3520be88b972d99917fcb19090405ce6f8a9e71d45317af1b3170e4807fbfdfb337306999ba87510564cfcacf48da5380bb976f721d30c42bc0738d4125e5fd76d830ef0cd664cb9fcc4530be4578c70d60755a7bfd3c20674eff8ec7df4db55b9cbb9da23bca14f6146e0531056766", + "63d1065eee0acf8b5bd5bdb927f148f861ae8d4f475e4bc1fe09c24fb18eda30af3ccb3c2d29163a3c14ec73f22a806e9ae360e1030878559a0ce06da0f8531f4cedd26cab9b4ef17cab38f955ae8d7fa007e42410fbe2d4d00231c506cb55650d9c5d9101670b62756a32068f51bfeb259f22034c02e2ba41a448ca2a69dc4a4c5bac64b04810dd2475c4efa5b6f820d137cde9", + "420a43a82cf72b3a2d14c05a9613ff2c1b98efd4e7ca200c8127e62027e31e03d4a432e8bae8eb444a2d66f0e0f14443a5f0ff1dbec76c7745ebae7f08be453f338824bbfdba724468245fb30c5fa9b71fdbc1121d2292df86a5d7a635cfb1c4dc30f7102a56dbad327bb2423afcc93a665aafccc0c91a9711956ac1487ff05056b607476a91d79a101f8dab50ec212cfc1b84a12c8ade6e95b82af3e9e52bbb232c11f201aeeccebd4775f632e38d3a50f6d536f25685b2b4abec3a71f692e643a9602ddbd7552c67fda3beb4d9da4c3ef12ec9af6c76a7ed1f325899f4752bf60bd7600652a550d255173875d11c7f7dab39003f4e47a8b2e3c4f454c7b0f8d9c289ddfd78b194fa002d072e1198a7aa3ea1a610e3baec953903ce20109ab887179021e5ce414a50333f71080ed4bb656dc3a4feb19de0ee69f88151564c5c0b03e5dc3aa26ffa6f90b6", + "0bb3a1a48ca9cf0ebda63f613e35070e93262b3fa17f55419ce39e78b478d37fe635fcfb4c12e8c6790e14d5d472fd93051327e8a386402cf159f4c2bf69b941bcb0847996d58960cc9f70d8889eb64472b647df9ebf9174491cb52c60743fa4c0941ef7e31aa430c72c41a1bda13a01d8a9a4b9a28da4bead2edb7b4b1de747c870acdc115deaa99a0fcf32ad98a0b23d7ef3c0" + }, + { /* i=2624 cDividendBits=2209 cDivisorBits=254 */ + "4acb806942866e35d6f5bcd9b4954372b01fca73ac4a36e04c8594a9d6c6e8983a5b631c11acc09fd20a207c8ff93ab7060fe72d01a52e151fb1faed9e5cffcf6ac2b45945a52e8a93eb352a89269c82896a33b0cbae9705c59ed31ffd17e7b9aca94ca5d6d2a40bff0dd5c7bb12ba5ace3e849aba79fd21da21c3cb3b26c76254324156b016728e9abd3ce7328526801e474139460320ba7f33bd7a5495714a2b6cc205947a2a80faafbd3737949819f955bec910743c5b8c73dbe62eee5c3fae1ce30599675f02720dc8588a1781ca5ba4ca2b9588a78cb203a9821da34744cb142fc0f4a39c27a4eca0bf47e6c71a25975c47cab132e3a46bcda821b8c9c90178c46b6c4c123e09ec21a356c8cb09cba6b9c8", + "39fb3454dc067a539c16ab50bf3baae7e0aaeb534a8b1fd2c2d43b30191ca935", + "014a3c6a4dab3d1890ef1e3ddf2e1e0d65ea79c21f139a0e39c3073284caa70b4ef36bc8824e4be62a609415ee3f9153bfec20664777541dc9bc77296e81091ebd9bb89b9879fee71059ae00f351dd580b98144fb7e668c2d45a9e48037bfd5f361ee8e7bc32f97ad1b14600995b5b6fd0fa28c27b2b318b256652c031d91093ac5a7b4dd301c612790bcbc6c3129c6afa4ff99204086f9bbd5347d007f2c8fab75d8a22e21d65d98a7597eed1118e5bddfc2351c8252695475c636797645ea8a36324a929e30b1f15865f303ca86f8841d20815dd86b08463ce685cd204a6fef999e36b8f31ce7d5e0e3459a7f153832fe3ed529b", + "027330f988dc4a1c0dcf87082661b41c45b0de5a89d762d1eb7fb391c4084cb1" + }, + { /* i=2625 cDividendBits=1718 cDivisorBits=99 */ + "1fc5de625aa1e4014b62129dc8a659e1478b56851a9e37b0d43bb85ba32539bb7af026421affbf2d9f866b902c3ebd5f2f9a55beb48c089349c323c57ee5dd53e95da9bfc2461d9d3db90aa3d44ef4e4af3fdd01266d9e4879e5aa1bf6eddcc11697f958f544254b4394de9af803cabb4216d6f691c723fc1cb06ea552f6304a2d24667f8efc59b594b6fbce61cb636a688dec3a8f35809d12d36321d154f14501466ebacadcf9d9a88a738e23df47a5e59d83d25d1a4d952933b0bdf5a465fcd0cedac8dfb3d6b7e418b01b8a86591cd6a03210306a28", + "06d32be75a445d8757aa839b9a", + "04a7cb89e87dcff40cc72502b6c1fd455f062dc264e85d42fce621f2e0d2bf01171ee9f99d9e24bf9b4d1afa73ec30338e87427e9b6a883d5140100ec99dcea65e6dab86f92d03d205789e5c5b4d677e34b3aca7073b5c2ed48c1e14446dbf3f23edb5f18b106e166527c39e5efaff3d6e6e7d2fcaa61a1d2dafb80464410cb9e85887d39360f9fee39b7732b11a60ec2113f5c61a6a2da4f5df0554579aa66960c3804bd0518af0ce319ac37e10bb1de3a79a547a9d2b85a80c22ba1004aedbd196e2f478a4ac969bea3f", + "06c54fd29fe3d3a16f5b545b42" + }, + { /* i=2626 cDividendBits=1106 cDivisorBits=1042 */ + "03445a2acfb28cd0d329c0a1def887ff5ecd807bfc24b2c5623d75ca30be573504fc3818e1448e16eda9e0c0448abcfa6603e201036bb5b87f5578eaf274095177c680b73cd58b63e7c92a63881f6a661efb9d574a1713b148c17eef73bd9318db44e0ff4531a24ba6ab89fa482ed7378a1e9552ccf6d875b4fccc91236e9d7f5c2afd926b366d3545d759", + "038121885d716dcfd0bf2fd071ca838bdbe702b89e35c74207625a989fa8601f8c10ff25958ff949315557aa010491e2839f5c8cfc175c6442eabeab7cde5ec6fc1860c2c3adf0655bada3ee3f9c2912b3262be61790ea6d0874af274189799ad04d5e2f6c354285adc79f64ad13af1862b506decac53e7fef53e56a6bf7815bf4a859", + "eea8124555a606f4", + "021b65d911bea9cd7374a5dc1ba33530bd0c75ffc113f804f9140313a056511d0738f89783f499182a89629ca3b714b90d59a0c3d37c299e205a4f5d40d315feae7c38706ab8f343cd3a3f5f776572a0065cfbe0752891b263e095d0d891183aa2b8d92e4d7d6a5bd4fb8db5c58450627a7a28295896ba694d5d3ef51cc8721d6d4c85" + }, + { /* i=2627 cDividendBits=4040 cDivisorBits=2841 */ + "8e9035fc53d6667c5836dc7a42f4854c97ee85c6351d3c8c6e4632e86d73ba0a48e1907aaf60acb77275f87bf2a303ed45229a6fb9d69a4cb90e10c2146183f3bbb2a558a29fdc162c1c9af8750365687bfa76f3149f99a1d1538307abe0fa029884b530cfa07602dcfd69ba6282c1f86913569e675c78394a8b58c535cdf9a112624dd414060fade35782a6e62a88065a2d0052f7c19a980b5b5db57805ede499902260cc899cdf41ddb89166bfbe9769da4a75ba4ca98500b8fb52794de6219ec2a7808b7c7075b63c757aa3223642c4186a762be68898ebbd266de46f3f69e7f5761d80f1143313480e36126726c23563b562c4582db732af35bae2bf69034c215eaa7bf627ae0c486a6005bd1f5c728e75bba19fe2d909de3c2f3a8d6fe9de070f4e0cb2e608d0d58427609e50b2b50ae50d9ea947740d77ffe795fdac42e9dfc47e58f94e4bfcad45bb34a827d7bdcaf21c8a6de93005a73b291a6b8c154eb5bf039cda764ef3459fb507f86dd866b1a5f70c25756eb8952cda142079657548d8e23a17e2f6974993108940de82118f178be40d65fb3d44f86555314f696d846caa307256a57ff6426e9121e728cd3a53fb10c38d8cea5e3c5900646cbab55b82c706b116ce1a4575f5096cf04326102f9aa8a722c0adc4f4499c6e68b90922b5e894ccb3c3bab3436aebe2118e60184517c3e67dcecf", + "01fc8730ed486acf314824466947cbdf21bcc0cc00a7a455a8ebad25a4039601394c7cd373ad01b7d835200f979176178eebcf04d37f730e643bfbb13b3643e9ea4e32f1a9706f3855e3205833cc77e0b316d97da76cc21ba88d0556f408f0a11607cb82d98090a22aa8d73d08fb4e0598cf9b39964681c226637d33bd31b53b29d74a460ff32e5c0738c83191a37aca1df05f78fc4bee4515c08aabe54df3698d17bc57bb24ffe2243abe5fa2e688dfb8e59a3e1573fb1a6feccad13a0fde1ae8741f3047a18119126610909a8667acc3e93a7f346d5806f92be9062674f3c1ee02883484ab2adf4873f784e3c74b96c5e3fb217a0dae8d809e680c6cb84add4ff84ec64ed3e1f9e8fbf14b79d1859b353d99971715b2278a5c831d26d8d54479d7591e293d059712dfb0b324ca49e8daa03e1212c9f03e59652f3ef121877aba4b7027d4e8ad5d3fe31c9aa34994764dadfea3ebec48b30027101bac5f3dae2c46c998", + "47c4b12810adc4ace9c44a48e117e06ca9f062f93e9ac09360e33365fa865dd8ffbce1ff2aebadd610e72151117a0e6486f6653c357f933805165d608a0ea4c2024a4f6ec589f0f975fab1b77992620a8035e8192bdd7c17d64fccc1db63509cbf0f74a6c67c078b6ddff7b6a6a83276c366a422d2120f55bd946b55f743d7d5d22c7148963a5949fc68985fc2e60c49140ecb6610f9", + "01f732ca9c82f275c9dc8b54750bd3a882f1db95dbfe6e5d2e9adc0162df4fe3b1061aa0669865d4aef65c6ae25847c8b49bdfbcef1d54002ff9dd82984cefde476003fc72d861056316eed23501060b96b2886e77cdf20d9fbf5c616d1925c58e4f3327faaba7bdb3a73d4fe1ca33d20a5d56dadc157f0f5814351abcde19b4cced1979521845c936b170d14cbfa15c912ff9303dfbb12c15bd1ece0cb17e73c439ccffa8ddebbfc53dc95a1900c2d5c8dd793a94555255e52fc83f7d8ab8101ac146408495491557a11cb74e451a72c38e934709f3b9618adbfb17f0c6a39a50a3270f6322374efdf68a9bfa01b4ea9dec44afa32bec64fb708b19b6f4e5939f6546bc6646dfb0a94f5b15c1fad5bfaf2a9f42690fe034a92e661999e76a97335b512d3e736cb6df5c5ba48ed36dba468141031ae41f6a99293c41fc9c7edf52a10f463093784f470b633f7339c7491336338d424f6eafd3cfb9a53b4e8a368e7a39f7" + }, + { /* i=2628 cDividendBits=2887 cDivisorBits=2736 */ + "71d418015e865fe184b7ebb70e43229a29c0fe6952b2d96417bcb2d8318ec3596e994f8b17133a11e4e2426ab7bce7932d5130b33966d19488b2d5c7def0e2f607cf48ad5fda124e4c2b91a38047b2857575a43e627a28120cb20e181758f4d2099695b07769bca392663486240e97acd0ea2525da345fa051cca2f92c816281f746a9b14924f06ddc85d31a25ed212b71836b123cd1cee1e143ecdaa0a5a5b87c98956ff7f1211ccaf0dacbe7fe00f4544d0bf5525cd0fae662430a539038090ec61d66e703b454749ceeafba2d24e2e67670f7bea894c37ddcbd3f24566f9eb1815d8b5d8359642319af73ad7cbd6c18b9d4270ea7a098a111550c02c2fd3deae64072f312002c2f9d2273d54731439a848506a78ce0b473fbefe7af898bcbf73cc610a4ac4b625a6cd69678f83f7cd620bf5d2b86b273d5949a8f0765763af9e348c6c7531d83b7834398295c390dec4e5fb3c47ff9b2f79e0b0135adbd76dfafbf9f507c29e262", + "7eb94ec9458c3eb38564b53874eff72d72ae56993d09e908b320f06561d482c69716ef1ba530da8e3f1ca26693338d7f8387080f0ee21897929bf1888adbe230415e42d23febd6f1e57da8a150facc9b8a6295073b7d8ef4da0508e6ef9e9f28ae895cc1445f7b045ebad5448bf8d7f2665dd1684f37b961d039cbc33633af99e568f73d4885ebb1e0fea0609800727d779619974da145c31863a03918d0e18bbdedc6f2390f6c848ef1c8003b2e1b98dec33bb7089b36945c63e56ce3877aa078a251a72e91a9749aecd0746b8051a1a44426ee9bb2e73a81e3ecec3d546179a4666dbe97da16bf2c0572edd84fed2486c7554d352374dbfe6d3dc8c11bada4ea097295d90321507606055d1a05e318386c168e94cff9f8dac56446189cc88b08d720f4ff22219a079ed093f7d431b04e380ce41d0602d4065a95e65b586af264fc86bdec6d8f5964b3e9cf5b185342a638fe0851eb", + "e5f31579e4b406ce229e373c4389f4248bf4a9", + "7699290d7fd5c1ae22aaac8c5ce6dd8629d500e6126d37abe36ca24bb7ef3172bf4f89334561174ca6ae9b337877f10315d80c9b6a3d8885060112b2c632dc1c060d973744ce313ba1bdaf4c6108be25fa13cfdd851a8514a766c9fc7695fa28e8ce05022243410cc784f1b9f6dfe6aba33fec392d8ce26b6d15cc0a7444d836b43271457199f0948c3c3d8cd487545c6603f6fa99890460faeca0487fe531b36ad456a51d67b3c3327ae09ec5b51631838ffb80d832bc8a8af1349e4c27e49c1b987625ae9cabd3d1294b17309029a6fa416ca98e1026305fd26a7a1c7128d29d9dcc518858d5b0dd3658bfd4a817e574a43cfccf29aac9884253ac523b63379401e44d3590ff56a21a11d4fb6ab89782da26ebcc7b09fa6ddd6f0abb9d6f77a1809e7f3a0dff62187b691df8374c3921dc02eabfbda613214e61c79df9e5aa940a10b38681a53a347c3a9e8ec2d560a08b53fed23f" + }, + { /* i=2629 cDividendBits=1262 cDivisorBits=966 */ + "38cdc79621ff866a1f0dbca6286244e7343f12b64582fb6c0b0dffb8e2dea5a603dae7425ba335e37a8c774f9c5c361410f1c46e5bcc1cb3e399d1f21736387afbf12085bb274cc6e5a9a314d709f8c01c1cdb33c66af14ee4f87060d39197674abe5523d4715d5bfb303401801b093649824f36c205ef40a3bc221738e0221a3781bc51015a13e3cfec965377168311b052e10afdcf4fd360396bc65b36", + "24561bfe64eef8a8700a849391d38e3b6e6bf484dcdec9c18d2e55d50f4aa24a0ecce13c5c1ddcabf8e1609b7a8f264d1815cdce42d699199a8ef69b17361bd1f09201ef09e84067606e13702348c191287780a64eecd32fbb7257f6e62c1da0237f2a7e6c4955551d4ef3d1452392dce2c1031497b63172b9", + "019032f6c8497b8dc1787f563dc2dc9096a80588d962f118c6c8e1c7a0fbfd640e3578bf4988", + "13cac0e167829e5316766909d66cd76cd715a5d7a75e08a62e9f7c2f4352362613f0f7d11da2bc23445c8f98d69be1339c4eb35c39a08b1874df5ee55859652a18fb8f02ab8271132d87062e9f90e9135cd9074aef1e84297b63b7dac014582c3e02610a9d7c46b8b9b52308dc964dd4e758f231b437c3a7ee" + }, + { /* i=2630 cDividendBits=3264 cDivisorBits=658 */ + "3c2122e307b1f8ff6622a72163d487665abe105c89b7db2b28bc2b99c6ddfa4664302c72e342433d862a53fdb7fe4de3b693537c6164a3b675fdabd04ab879af7375c6d20aec9e5aec7b86b4a37b6fbc5d5b90e98d25c826c9445c42525e8bcec54f574db5ba77fb571fd98dcb24f6918cad7286f85008ef488e0a4b74acb19b33d3efebd52fd6c3a2a924f59c14847670fe89513beaff22b4e0438c5103f79c77741d6300eeae8fed92adbd4b4c90cf09abed3ad7d050ec257b5175da86f86ae26ed8f18e1d2b8a772b50debb8c210c560f7cfc0bdd1a6402a0c5b2eceb61b06bb1f26fd460ad8810e43828e1672b56a99b548667a524ab29289b7a81c8c15dc8fab8de47f5aa11f445ae3e52c3267c620fa27d3e48b8474499268e7407bef10af5333023165834e9bef5454f9be1b886ecc08a9c89d696e7e27ad592cb145248d4d6f2b01d526def6eff976213267f9d48dfaadaba9885eaa36bcd7253ee14ca89bd8e050cf68a8985434adc429b66ef66691f01900c72357a909179ffc82a8d0d61444a533e3b71fb03d17e8e3250734a7e691a0e4889", + "024f534bbd2803c824149733545a41ad612b6cf1b0a7b0cd05f2fdf50c7e14a670d5d234a614ed0e0da05da693fd1fcf1de7f3e667ed4aace2bb080026a0ba99f0da45fd9cecadd7ad7525d908f4e7a91975f6", + "1a0815e7047a9843581ed33fa6541b7b07547537460136a5847be524608eb09734e2ac0f6320fd91f76ce5176c53d62b997b6fca01bcc0d37f2eaccf115cf29c95545fb475ae3e59d769c0491ebdd44e3781c26726b26dc7dbcd39eeb3f4274bbfdcf1691faac07afd739e69f162dc27bdeabb57c8bdfa50f0607f2bfc540500db6fa70580798123799d5ebc9e1ceba11ce5842be571d36495f71583f5f81c6f45f56375cc73db78fc14a760f929da4c9375dbc4513c8b105d39ad84a886736161ff93d63d8e4157123b451de75b5fb43e17f4af146c3d153b5c2206e1063d5f6289c1c8efc720d246f303e9a7ec812e041b7e24d3ef56441479dfc7858710c3cfa28a054768c1dd38f297ad2a1af7aa6c794fa5ae08de7df41defd169970824a5cb03dd3b3913d2dad4af794ef6d6a76f6b5f427d872a14548b85e554d606e0e16c71648212", + "020a0c0989f28593c39ebe4f3ac6d89a32048e8b2dc909e94bc1c8bcab48e358989470b00e8cea3907fbcacf7af637ef271bc866835f792b3860bc5b9b049b064fbfe45ca17a89968c31cd057e5d749e45113d" + }, + { /* i=2631 cDividendBits=2250 cDivisorBits=103 */ + "02f961a5b4b0e67f42b3a0cdb86147d125a8d5b3134f6ed2bbb1b077df334e86c1bf2fdef01808b98aab1c52ffcacc0242007c0b0d5a7819f56199836adbc8c239342095426db5aafba504e95928f81d13821172ee5a5adaec450be985df893c8e643955ceae9c0c854b4dac1009af6ea01aca5fd4d86c2dded77dfdd8b0c58e7eb65ab15ef8368965e5e5317f0437ea53e479973a13c93cbb6f8b0444c2b7e00b11661c79f1269a1411b1ae3085f397e3b13656aea828e3effa6a4681a2b305c5f67436d661aac2123f4535564ac4bc8e54ae4784a0abee18f4be7c1bbb05bec43c9edff311573084c48ed3227414d3782778c5f436b75133288fe9e67ffdaa6ddceb46bf8a175a8ec968b681d0192ef994d6a8bb9cb01c5e07", + "42feffe59c5cbf6f2fd6c7fe03", + "0b5d541f5a9d2e4cc5b149f09dc5a06adcd0c5eb9d10d66bd54252a027f5d0ff4f9feb4869daf281afb47b86deee4d6efcda3e5b38ad77441702ea88703c80195954eefd6e60b1bbdfdfc05464e33693b4477cca925ad1d98989d5671d1fbb6e1c04830b997310188b1d24d7d1d93df60733aaf6d96e2e8911de08024c43674c1d4c5994a600d38912d3bbf6c6665c2bca750f8a09d710697f1ada5b51596348f88ea53c022065e4d5b7cdb31d229393068ff406f8af7832716417f6583486f89e80dbc5f45211fef4a98c04e77be3a68d0d7e27590599472cdf501a2b4e5f0228a9090ae684c21e5452d53a6b4fe8511473dcd06bc667abb1c8823e8073177cf3a79d73be21158098f43f1fae", + "2231527bd0e99892fc1dae5afd" + }, + { /* i=2632 cDividendBits=3380 cDivisorBits=256 */ + "0e4f745ced1bb338146e15877e5544f1b54aad688ef23a247de564fc3cdbbccdfb370e1e38510b3cd9c0ad5b662c09016f1470461902bb9696da30e82157ef6e60191a5b666a8f2f22ea32fa83a3ae71fa406b63db3c488de572672dbbca71c9c168714b470425c80e91e4cf2c4c3d95229a609b2ea16aa075f1fd8add9b22ebeb9fd69b7892b3139d889ddb7a7a9952b9c572dd72010778d3318be685e93842179c6b821ccb9aba454ed83fac4335d6837ce2c5b52c8993d920688ef9d5fb0ef993146b3c411cddaafab3cc16bd6f4a433135f95452a18782b4e80dc4355f2ecfcfa12bc5c74a94bcd78b1c8ec8faf49b9cf385e9c75e11589d2aa175c3313537daf80da646bf9c6f46de4b26a7f38346ad41db5d26d297ccbecf1dd15dc4bacbc7fcad33b14a722646a4caaacaaf099bfa1f25d77d6f165e0b1b3db9db3401660e1a6ad30aca38aec1f0136541a4a0c07e92a3ec72c6a0a7f0c7e94f0e815230c8934a960bb53636b21c32440fd08919ab2edab3a35a2ee787487f7ddb012bc052d8f3af9ff6f82ef5a58b0a598e7aaa61c64d040b3154d4eca8305926832f952106bbe1a8e6", + "6fed40a435910a5f648bc9e4544c575205f2f55df3f376a47ce49043f663e0bd", + "20bb16d1f2ee818819130fb30a1e5c63baa5cb09a23238c1cb2eefbe48b67fb3d542609571839c62e4838cf49009cf4951101d0b924a5f4d22e4cbc3a6d008ac73d86873e0ec683914f6e01b7fb2b3231b27bedf0ca22b0d97c3d60f953707f419a471ca122b34708b0c4792fd3236e84286eabfeb029e859bed655400c40d64c197ea838d3d6b0ff316db5c13618f8e7d5ead3fc5100dd80abd4668ae8c8e43ec6abff2abaadd9401b0815709a6f99507e0174412f720e9ea89ca2b2fbe1f7422051a9a236d54bc3ee732db4a89e50eff3dc2e9ff07771322e9e686697d3332a0f0fab71971e82aee9a0d1e5dfd354d3e3a2ce399e387ce7f7b3d0825b7e978bbd325d16f2d0217d9daa673e836bb0c24bda50e446d1ee7fa6f8b2cc818f3767c8b44e9c41287ac2fc2ec7afc815a73e812939c1b75650c4582eb4d85d7bcc3693e44fd64707f281a32544fc24701a63576c491638abb5df784e85dc6ed1b32bbb7095f64b59df2a4fd6a8041746b5fbde8dd4715fcc5f68cf26105c2b912b1a0e455d174e4fb", + "68a20cddd802549ee10c87a9df5570de9c66a51e6d9c458d699a04761127fb97" + }, + { /* i=2633 cDividendBits=464 cDivisorBits=224 */ + "503609650979b04ac6a5b2c22a967a4437e776990c7184fd112dc1f5003458fb372e5fead4d7a2a4fcbcedab24d614454510e885cb3d9befa576", + "9dd1ef05c855c8a5ef2e36cf8656732def740c1db9d93274f58fa69f", + "821c45d6b93c3e0cdedca0c3b58a8ebb6ee194055393db591b6211b3b3a9", + "0377174ff7814321418fe10c77b228d3023ff9d233ede8f3fe6c797f" + }, + { /* i=2634 cDividendBits=633 cDivisorBits=2 */ + "01327d0a7fe84f9ad7d53f72923405534089554c18a13b11538bc4f0eb887dcff552918ca6e1d2669a3376bba6500e37a87bec9100e318c772822dcafb7bb2a83633f183d3f430e4bf36597ea7283a89", + "02", + "993e853ff427cd6bea9fb9491a02a9a044aaa60c509d88a9c5e27875c43ee7faa948c65370e9334d19bb5dd328071bd43df64880718c63b94116e57dbdd9541b19f8c1e9fa18725f9b2cbf53941d44", + "01" + }, + { /* i=2635 cDividendBits=2805 cDivisorBits=317 */ + "1c8256d2f2ea4bdb27a335fbf4190a5e033a4a770936e5f653fd35076dfc2fe76d77173eec2126cb2f27e6706884485425a5eeaa4f1d85b7edb804471a3797aeb62b19ffc543c878e11b286866fe61b81ae5a842791e645a1b55e71cfdf0581628a752608186a169d5f60099fad3bc62af0f7570839099544bc52c8b918c5c1704c4cc88f3d8946b46249fff9ac8c6d4839d4f18d889e873d23fddc486b3aa7b31c002bb5a630e0cbccbba0001dea3fd0fd08376290c688dcb2d6c9e32aecbd1974472c1315ddae4612c2ff9e7cf9f936ccf3a0a42607dec63d717cc53dde20d3d128c4b9ced74feaa29dd5fb006bb95daa9bd098885e7ab05e0530f8632e5cb018eb0f533d259c1b17d9ff4447ad3183e6a40ac947bf4fc30e1b269cff9c47c8140497c4375e2cadf4f821497f2671e87490ca25b536745bc745774e195efa189e3985157084f80a5728300f9ebb28f8102458903f528dfba6a47590cc258", + "11fae3d5a9e9bcfd3cd2f3dcdff6ccdad1ec85d0ab12120e77fc36bd6b13f6b14995b9659203e0cb", + "0195e9d60bdb5325f0c93612e62f95f5f4c3142a9be969a210807f664b1ccdc685484059a56dbfa61456e6464b4d4d70234c50e6dd0b97f1bc815d435940f710dbfd67e30a96c7637992bc19598ba9ccdb87b5b303c28910e0444d59524941cfe53de2fc176c1bab4f070ce8050cba26712e62924b6a4b2271b51b9a0f6469ec418c0e2b20cb7ada808e595d8eef8b9c2ad77b317156e21449fc6bce97fc0db0ab46616ee729604ad9d213be5c52dd8a8beed5526e0150c86650d1f7892d23f04d585642595bc1e4d65e55772958a7e332e91ba86305d7f629d12eb967d51a7188318ea569e407b7c2b73bc7c263de48a75a53db10d4bf72a39188da254528369b2cdf4633a18b39b0aa6b1c92306a8c14b1c75be18eba72a5efed9056729a62cdbe870f5811582bdf122cfb6f23bfa7455a9c5f5c7c734e", + "0515f5d998638603a1d93a37762a84e36e4b529bfe32cc382308bba8bd3187e3995d0ebe478f137e" + }, + { /* i=2636 cDividendBits=3381 cDivisorBits=267 */ + "07613fe515c07f9650eea2b46ed41f6c0d19785a660fb7f758c9b47db69165d957c713693be93ccd34078be98a3add8be8cd50636d854bb4701174e304cd0f9d81193454e99928a84864b3898633ada7a750783c98e0510eb799182c5ca79d2de3c61c83794b0fb5abb93887c49aba314eb84f76924b0faae628851311906d6d4acab0301e930ef0db0d7e760543dff8bdf4dd6baa8ae9996e86c060a9e829c5097b8fe9adb9ea2b14c5c1ddf66deb4215e39292371dec85e4ab4174139f96bea959cc58d896a1fc9bc20e8fd6cd62b24f61107530e2671efe70a5b0562f8100716b73a59aaa6b7cfdc482ba2db38ef514ea8ebe3b4a33ce372581813e5ac3c82359a901ba6968a905f72aef631912073c2d46e28a9d2ee86135ae8cc86c873b17546e1e4efb5432d1d39b30e779ce7655209b0d7e765919032a9252a585d8739a169b673fc665f3aded0bf247d51cc6a888618228e3558cbf3e5cf7e971a2a27d85a2d91facb94e360c09c20f27212929990ebd29a45c953dd2c4582005eac90fd36ff10f4d62ef5aa91db9a15388b6a6e9ec94c43a0313ae153b9ae548a9789edfe7cd01969e", + "024cc7bd5c0c39ce1e10c0c7630ef5d238cc977cf0cc9870d94d2a59e698ca42570f", + "033570c0cbe09f16a68399818f70713486485f2de92f0d3005072c45d0a764b0b3d6a0fbf4983178448c3a94d566295eb8d668987edb1972d26bd1af5ff734fb9fd003169e88f3e9c8ddebd3ddb48922385460a07f1d615033bbfcccf1019658a7bf29c957a10fb13242ec4d539a3d40ce9b4b3035f0e7845ac7ae293f0f99ced1c08b691997212dfd9138963d277524c155e8ac4e19e460b383298cf24143b0790b8b6b90ca4319a537b7a6797367330eb6fa13dfe598e2e65d524bdf9f61ac0e655dda5337ab0c175c5bafaa2cd55ab5df5437c010f2412ca62cad5f2d18fdd4d449455696101d3e116ca270ae520992fa4ccdf0f1774adacecd6d14aa40f187b815435934dd96be2e546c67d0b388b725ca1afaec442da225bd897dc4683c9e65a006d0a21d35a4532802b7a9f73c8e1b3ee6635a39744b86de5312472a96eb4011ea5d86b79c02f40188acf256f41b1b32ed2a1a28220777decdfef392c196c9eaae1387e0af98bc6f5a09d5b3f26172ac3c08f825b42230aa66d3fff29b3c745eb929ab", + "016080030012112a5a1dc11a78e722b65d35f5a91b8c3a189aa6f368e2bfa6e90899" + }, + { /* i=2637 cDividendBits=959 cDivisorBits=514 */ + "6cd2a9616d637dfbc048f4c5f00886e200833062fc97aaa28d41fc129ff81c9124c49417210ffc0ad44e85117df7c06b0031814ac2bb33f01c785e3c72ff62d115cc03d2cd84122522d4962474b6d64a16d37c2a3c531a6e43db707c8552ae6b492027a42277f3864cdced49d7639bfbbc9424d5fe93fdfc", + "038541d89f54f8519630bd71a1570841dd8b4ae52306f831a702084e47bf9bbac0fb775ce4d50a9a00a133b2ef0a86a5e30153fbd3cbe67a11a3b176b2bc6718b6", + "1ee93005c072105b10811893bf4b87ef4ae916b5e93ecd7602c3d5f5a8f2358ea521a25bf947a67783e8bc9d7e3a8b0f00575fe8b1fe7028", + "c8761790bd3d31f5fac8fb4b646c25a77cea82aea25db794d5609eb06485d5e5c11a20f64489489537d0200b9b0001e7a8e636f719fb82dec5dd412b1914818c" + }, + { /* i=2638 cDividendBits=1863 cDivisorBits=1267 */ + "4dbcb7b3f3226846cfac4d8bc96c6554d2ff1de927cd818bb7b7563d22701d9bd966f14ee55cd5597bbe561016b63400a795482c24585e9f13f5697d9b69b6ad920925e6016fbe131a26b830fc6a7c50cf61708230d8f0e7fb431feb6d341332489d702e9cd3c5281012a15fcf391baeb6a3ddc5cae21bed7ae82d3faa7c294aab1ece6b35ff9ddd4d1957b173aedd1915700cfb0bc879a91ae569e5f25ddef42f15a51d45906a31df2bddb0ddd9418f89dcbeca22579342c4218136bd62aaeaec5570ffc0df038128cd8c6c3b204b4d12b71597f490026be5d51a08b98ab6b936f6c3fccc6ea8155c", + "076e280994cd0ee39f5ab40871f0a571ac0f32358dfdad104de1da27365d535f1a5183ce783d88dd6f4be0ce862fbce521a8d96de7fb93ba80e359d78f2ca1ca718c05310e28e34c58ffd365f0dd192193feaf9b468d6abb80066859b8971c1331d73ab0439e13f42031e14bbff6199bf70e7ca939fd6d916fa4d6ed08a97196fc66a9f3f5bb848de7b2c3dcebc48da7da2b5add9c4efb9c413b8810858419", + "0a7651f1dacf0159675379b369a334e10a9283a6f68958321ff8a9f8d72180e0eea00a5ffa1a1270edb02de7c39670c03240d7b58a7a2de18a3b5ab42b92cd4561388a4cca1c10e7d2205b", + "028af4e10a8c4075e1fefac5c7abaa4c0af7d82b6c220f319c0e172305b2fb856f722f69bffcbda26d2b57be3dc8e279b17dc6eb216ae4872f4c395ff973f237dbf0bd535162e685e6a3fa9df2bc3713407010613939719a9f30db844ad11e472fcbd23c78b525afe825a79345ab227570efd5bb1eb33de54b5b6b739b2c1594369e3035018c913681b938ce97d7b77fa42c1839af33a85d17cc14f32d0079" + }, + { /* i=2639 cDividendBits=3045 cDivisorBits=940 */ + "179920a8becaf75118ee6dbd26c118ca536202cc198cf18328066fe905189a80061a866221a87f08c6f02f813d9b01fc341771f3dbb4a1302e7963f5d375b306c8556609440f8ad9fb1ee0c7a6ac92dbb6d47478489fa730d3d7fe36c36d0701bfb98a3b23f4347c281b1e9625d7ec9b0ab0a9c361d0ee861f90bb4c76b1acefa3274a29f4863d91904a78668d078f283087ddb5195ffe3adb1d6213f7c3459568887b4055c8a4dbd22c801587094bd59b19724b258dda36be511cf8e810d6ce77cf1020af182c54f58004afd0a0f1ab02cf2722497fea459289cff0ee930e0cc6372ecef31328dae6f1d2d29ed3fd4767350deb5fb1287e4a7ea709150a5ffff58bff037e1292379693044c8495bfd18495b1ee3806081b98f60857332a8f91d80b92dfae6d9f22b23e762713d462ff462abd7bbb41d8197b00e9a26b39c2b439226f8972f54aa66099caa7ff154f1f7e801a39ecfb356070c0538d950fbfb024faef2fa104a0b353c76fa8ffde8abddb444ea2548eb3c990ae9ae6d8", + "0a1f5b218c07528a9425a21a9949d28adee97ef067c13d9d466c568b364f4c8fa1673934d1ace7bd64fe146b60d092cdbdd6d5504e320f8486f5c1f4a360f39f25a099ecb781db3294775a9cc01276cabc750c9c27029d46fa4ef31634efbf9967720a8e7fcc676b80473b5c55313afeb2861300dbb5", + "0254cd8832d41e50f9aea52a94d4508fb28fb00b839417164d330dbd667d6719d887df00728ed2f4b29d1481f8567c7b241a4e9a89dbabb202424ce6f4d13ea48d79d1d24eac9a34bc7755e216a82747119ba4ce1365c183f5bc89ad346383b805ab53c8aa8bef60d8ad841721e803e4f90a8c7bbcfd8e5e403317116e095cd8f259cf80b5807ab059ba52d5bdc09a57f651c214d3b61ea847eb3e1662b8ef75df7bfbb3df706c2589af4dbd1e73bae83076d6be8309e86a8d23be28974e3b5942e97b41988e81e573e2d2443beb84cd0b251049993bbfeb6d6b0f5711002fb953c7e0cc942e91681575644abd0fcb4126de0bedbedd91ab3e23134fc7cefaef4cf8eed6d8d7fa5a", + "07871bfac23bbc123802b1a6777bb43d52b3d07ec44171696b6adb81ae5d5c3152cab91c728cf321a7525d7a947439815a6da47b9ffa86289f64489260db0284b6064d5fe8543ef89484e8e18fdb24c850b48af06360c2d90c347e104d5dc51deedcb7eefcd699dfc79e371cbd17c5dd7977ecbbe736" + }, + { /* i=2640 cDividendBits=1574 cDivisorBits=171 */ + "08a8d45f5634537b747e9d88fc03a6f858df00e7df2b40d2337b3029f2f807a566a7ca3cb87e9d8e68e51fc15d914fbd0fbef9668232eec9bbc63f73f003143536b481a6b5774b5e24bba41dda1c1eff23c8dd5eb8a5c8171713d23243a25b9825dbad299774e6eac5c5e82eab7ad100be3161997cd7691d491516ba6fae3a8e422fc4c42b41a602d51ec7412305ca297dc2e9c50b1eae95e1aa4b3b9aecb787f55e098cfd428a9505a1a14c1892f6b27e4c97c547ae876bc55461ad833903d97fd8ba3a0d", + "03b14ebb01dc234f70db143c896f33bc27e513634aa0", + "025857b39fd82196e8d5c82c4d41d14d96040eef2ca072cc33b92767c41eb6866ae58b0b659e4ca693b21bba8fcdd8a5fe39d97ff2cf132f0ae66b565d19904b8b7dca88b9f4f3b1b8c600ffb63a5a8802624ad22008a9d0726f715e1d8fb64d2e68dafef5166116248a7722fb9aa58a51c43c148470b0e94c9e5da2f8db9933da92c69faf230f21025a7998ec2214b81d3e6589174f83708cecf2e7e1b90b7f66939568a5c0d54a23d615cb018ef05c", + "5cdea2b84a9dbcd4df327cb2d46f3f4fc1c655688d" + }, + { /* i=2641 cDividendBits=2229 cDivisorBits=312 */ + "0174b1494e451b4384cb26e37747865e911c5c2015f0f339ea9693cde13629a5eb1d47f75ab0ff6edd2b86c1f0158208a2895048f424c7db25d99750dccd8b85a98f647f413c7e0b30aadaa0829fcfe2f56bafc1b777cd919fee66097a0a8d9abeb677cebbf5acc3fd15eda1f77bde8496bb74ce0651689db7056ac9b45d7d0b30f7a001ab547adb5d1c2800ba11c688992861fd2c90016637b3809fb54d0b49a9349e2b10617ba241e3fab2e4119e52fb941f93ad66597611c687702f7834045a9b2815a9fb7079de4a8be4137fa1cff055626aef80fe848ecb0e424c0f9e93f131ccc95b21c4e5892897a1f9bafb7a0c4bc0fe0960b6ce3913afed03c792802c25940c9b1862fae7d42ef0e014628a71d436a5e8ab49", + "a0b15ccdd6d8b5aa2c99f39824cb4dc8c1ad2120412d27ec2aa12048426010de8e65b580b70f81", + "0251bcb0f7865d5cc9dd7f25812a55e9b1c1c9fac19857a43708a4110b775e2d2b1fce089442319b7d10e1d844aa5111d107bb6a1ac2a8c1afb62f4980d8216c3478c1b1e557bb99bd188429c7e630b208e0ea4af8d6f89bd62564927a3f8764a5b0f9c447e13580d16bb226c56305be4faec33624c6eec6f12739d566a1d25b94483f0969fa368f8e8aafa484a0b7866f590177ff9e80f036909cfaf48f0ecfd152ea79eb5d951890b00f827004ea2101cfa481556f4fde28f2f035a16b2b8111fa27bc332d2d858b93b8f9d02a7a46aed6535e01aa56c4f1e43808803169f215a79a1b7b842c21a38b4dc4f207b7f9", + "18d42fb23001ae168b822d9b46ce7d36128c7178fd64ab7a704f9a96e5ce44c1bbea3c393e5fd0" + }, + { /* i=2642 cDividendBits=1105 cDivisorBits=259 */ + "0161f52f43708827b0fa9fcb88607165c6f3b45171beacc1a3c1605b03773cdeff4d6073311b9788feb73f04f7eef7159d710db07a55d144fb4318c72854df16a384564612c1d56de982095c4b66b3450ba8fc07ba485e48085906bcfbdb9801dbaa4227b8e8d700764ac112efe95ce8d148f82a547ee3af5ad8cdd97e3e7539908eaf30f21288719305f0", + "07eecd43a6842d2d9ded01d5cf6bfc20e5e86d76e90cb467971a2fd7fca5286a9c", + "2c9e91d7e9e1803c6ff24a011bc30803e15f5c2804a71d9b4aa7d8a102abf78a87db5910830f01bb2c531748163c9533f99132c11fe54fc8e054c9f70618ec0a4704ee14f5b3332c5b52f7f0802d8388fdf28f6d036241dc307cc0766c6c0400f4110e57bf3496af7cb3", + "32411ae6e38fcee8760bb833968c9064ab54f75b728e869e8fa10c191a08eadc" + }, + { /* i=2643 cDividendBits=3421 cDivisorBits=3337 */ + "11f2ebdb11b0c6b9c52a4fba959c858d802b242e2c8f61d5921c12bcc915a6e339c13b5a9e2f1a427cefbb9afbfa055fe3920e490e51a2c414fd528e10454464f7f3f488dee18ce643eb5d8abacb31667f867b1a2c5a267af868b5b66133f0a501e458ded17c808ed31f7e6791b36954fd1a68b3e6e6eadf1d47595a8f8e60de14074a4e9cf027f972228b01461e5755f972790bc893de6b563acc185a69295b0eed606d33d5df67d96032e74a64e3fec3be0885c4fe9ba6d00c10023b950dc8983a5bc2cd23518816cb3c720a195bcf8afc79ccd2c323576d0d97cd31287a0a64a4051c762584b558d03b5100d9f8f01c762654d3ab1e6a13b133518d42b0ddef6dcd45979feb61e2049f7491773da2ac4e91cfa2fa0cbc0d2a3ed4af84d100ccfb6a0ae5bb2062a680325c6c5a55fa947245159dcc8f0f6e23cec33112bdc60261944f7ea0cff7f8bf76899443a9892540bc68bf972713d751830262a39783297638b3caca536e2e6f51258c3e2f45cb97dc27f568180a8f5dc614f5c7df6d4e7b17af61ce0a47663a5498a9a6b607bc2eaf6ec7fd24dfd18e8eeb073bd285b7aeb121b35f9dd667869a90", + "bde686a4cf08a87d51de17a29a8ad8d2abfd2ba13e856a02a6bf3d80f76615984464e1d7cfa3077e817876560d8e3846882eca0e3f4c82425b0187ba3aa6c58fcd56f14e7b65daebaf2c29fb958e2c380608572427f5e0d53fa679c2357150ff32aee1317436d60fe9433145943d0abd8e5b51e124e93a5c5c2eeb5d43244a7a1c5c190c995ca88f65cf777aef803f7eed55c1ef84e6674a57e0a0799331c44f7dce89d816858d780d9bd44f3338af019274c2b41b6af026bc20aa506eadb6127b3f8c1a477437ba9481c7e1e6c47bdf3cef964ac3b6faad865f680db4b5654905ab7f3b1e97cb89b7fc3c796eca18338c192b0d0d6b7fbaf18de600aa9c0c10ea96088ad2cbab1c6cb094df6766252df131e6faf937447ce695af701600adaf40a266a0530c1627f144777b71d20e371a5db9439bab730c3e4ae872a952f96bda377d81701a2adc63e49b9911d51253a12c3e5f4f21254039935ad756c48a3961624316b6ce6543fb529e74fde383bee76a06e766e00596563fc3149a1a01fab757656c23cfa150dbb046d54de1dde86d4695e5a58fab3b0f81308678cefc31ed", + "18324bc5e01d8d520038e2", + "68de361cf6cb9192a0e6ea0091d9a4028e7466fba6eb564a31a7937896e23b8fbd92faad241a6fd1ffc1684353af12fc46e090d3e08d3a6fb901a12886807601cd03f9f123bc34565d43fad3420fb0e7b5ed3346fce3159a695b3e7a31ef9159b6fd13ce8abce7dcbe38fc2571e9ed0175ed7a86237c1235eb0c699e26ea85116ec647deda242fd644cb0ecf358261a38ad36294bffd71a5fef0c86893e1799e69f0d7f81807055c1d1bb9d43da7526fdda3a7601e605710f17e8cac2726df1add4d7b0ab720feacac93c41dcf80e2a87e23b0b35fd1c7d83e5081170af55c5de7215bcb24980a3d147670fe420ac0f1b6ec5fb025fa5de4b815c977214d214d03e6ec811bf69c053385c7e06d2cfcc0cab8d4b5504afad8868ae87bbd7a3fe3ee4180435673ca41d8c9b0eed407bbda67da8a7d4d2d8564c51ff720eb4234eefb88b75dd6a18e7c20778bbc165fec71ff41bd0377b5e7037ef6d904255a9160cb69e65f55738563ca92ebbcfd1fd41dd83f0b3cc258de7b377e62fd3a8ec4d8eeef59b044c9d4cc3d3aac20949a0c4a62d2dbf5709a69c499b3e2596197f6af56" + }, + { /* i=2644 cDividendBits=3557 cDivisorBits=1252 */ + "03a69e52481db3baacf1115b0493d404fd1608625b02e548f96c198344aae8c400ed815bccf7ed62e2a1d8e1d694486d1d3932de138733680971209f3bd5d5563a9313bc7f34cfdd493cb3640a13ddc4f5b924d16709c84897fd132ef51eb542efbdf65810f93e297695d5ea5401483ca9b9f29eb0fb6dd3ade84b1377c8a6f00ae6d7089570098963a86963661adb57e54525188efe5d9f96a10513e6ca7ffb67c4bfe00aa0e8907255af7d09c2d291bc6c36ed62245372f3fe2211e40a77702772022b1317b63b64db2a4529665ad70cddc849312ad8601407b51ee39b71d686d9758e23e4647704c4cc3e616bf8b5cce73481a563e8a11c76c38b6fe972e2e794d3cc21b2354d4a52e21fb964e1caad8b98b25d34c6cd3c89dadc80766eedd5dab752819059f7efab506295d9b3f657ab13edbfb63ae152e87afa45a00ad84eff63fe32254935fc9d8ab7ba6034ea0ff614b85fa5102bdc440309a2e5f0aadb6f20681475adb2bb54b4eee6ad19bafe82618dfdf0cb69aba62156c8d4781b0f1801ff6617dc089cbe2e57cbc02c20394d575d14cbb35c9c8d80a5da654f1b1e5272865fa67121c1a5089e2f5347642039c3a7188cbb62eeef30683e", + "0fb8aafc96f2b1e9189e94dea69c60a3ae7d817dc6ee954605c2b388be28e58a71c84653015208afd48cc0ceea209aae8cc7c264ec93f7a94f1a2ee947d0bb41cba5e600b4e73b6d59f7d4374d4472764072d6898893c55bdf6b13e8807f095f6650de0424ec352af6c62de4261244dc6da8894cbcc9aa5063b3cda111e310ef4daa488696fd02ee6a7dd050f3cbd2201e919212ac2b8e4d129eaa6a5e", + "3b72ef08793291b3f673b7d593927ec74989efd496b7fa5c9c9c2ab0559cacae7fb10e84abbb94b85066fada47d71d0196d908cafa05b844cb4cd924666733403fa34fd2a4321cddbc216c3933399b4309525a8051714d1c0c999d9eeb70367b67574dabc7451aa7f2b59e4067044fe64a603c62b271b43415b1f2ffab7219050e309338d3b69b064e9172276599bb2b9e3c380a011337e1a1c009f7e614ecb3711e4feeccf53e59fc018d8ad1b69ad79e521119b341a3424b34265de04def836248f1ded7b94e5e59b90520af58d355ae115c6f677294f32b8213cddbbf73b8b0d2216ff80d4e2962051b1deb8b93ea7e4e1917145be3806f6bb61a8dd3c6fea6196d7f567b5dfd3b5b54e638def889fc291b911fb3239c86bdae07cd78cbe8", + "0b92abdba73eb244b04896d1b7f14e1dd7ecee4784cb113cc78dfe3725364010bf5211a4d1b817e80fcb90eb3cecdda7d7777fddd41484beb01ea76e9c04e959101c5229f7a42977390295789e9a5a6586fb84cd355072682ea5c62a3299b942955233688f16a0b9c0832e8cd6baa3313fed6c122f4757735591056e78425d47b7879cecf627f9defd6b562ab8bb9b68888bce0ffb4c84229ce057790e" + }, + { /* i=2645 cDividendBits=3748 cDivisorBits=316 */ + "06915473f5da3a384e8bd9df3f75a39980fd9d72cea88da830138dcb17750461c40de457ccbfc90d5e6066e862880236e1855c4f6c7c528799cecd35a602fe14d3c82df7706f90e5a32e9524cda8ff89536e8dbfeab08e6a3c88b5aebc5cd2b574e24af3cc1076c2e1f309a1b46fbcba40789b70a978340f46a8630b62df20b438e35ae164bda7ace73d986e1785e372241e6ad29019012ab5cd47ac2a63157faefcd558a1ede115d4b1b2d1587a94cffe33e6ca037d10805e66705d356395b86d8590af6cb3abf215f2ca0bee71672d8e2d2eabf1d68beb7296c071e7bfa9aeae156cb6b794907636c1f41a01cfcc6b76e307a804e9ee364f4ea2b52a1e4c5348ff04801e60f8e8a1be61384ae99183bb76d1196de5e62b0c8971a60813851417c9f5b032f3883c673bca3a93049d25dd29aa20c8cefd17e0ffda71bec1ce1090825cef4ee976db9d66ec6dc7fa52c79acc0799e41a681622401247be33dd1a1a0fe5806b979a5d76c823b24cd1d724afd3e513e42dd6f4136eacd74dfcf31e73c849aab6f994bf8cf592a77eb011af167a50e727b3bb9c1e2fc9523f662c982fab046a591958d8735e10437060f932e9871140cdf926e2d8739cc6c43f6c1f95a52b883ea6ae808e369e9431e03ab3be8bd852f8", + "07b41d7fc43aebfccf7f0ff39d29a0cf9720f06553cc2123e3dce171803c6053599d5f8f2e9a77c8", + "da40d17c313fd6fc5283da6d1e10f42fb565ed73d5372caca9b785a7a0b0171da6c04a2de83f14c3bcab32a6c0aca4057586754737e76e703cced1e624b55dbef07070dc1547f48bca52620badd4dae23734523acba730318b979399cdc076c045824d07180a888314fd0a1a10bda30e2598b7ae35b88e9cf672d5d9c03d420888261f4b443bb86fe78fe6928dec6761ca3b3420c866d11fbb7f7cf50b829f753dfbe22ec0c361ff993ba0158e9d1ef4dfc59cc50a88754f5ab31cc52fcf3d2bd3247d694030bec6ee1cf1b98eceb4aa22aae967b2ecaef47e973ebc4e33eba1d2d0443d8017f807fdccba5b5a0e5813fdffa98e6b7ad602c59365dd9c5e9220334174576079ee68ae71bb330423e5576006247ab9f3606694336f45491448c481066e2a30092a383be9081fae5a6099bfe56df002bf0fba583d792f1009ac415afce664ae39f6daa250e0807976a00a88c5b8281d90bb0982466cc967e44782703178406964d244246338cb91eefdc1bf3a3db5bbff8c173933feb2d8fd35e1d685d649c113ed9fee39204a9669cc3a05dfb1b753dd87005734e15996eeadbb13d2f416a917101516af872b67", + "021847acf8a743b2120e1488f06653911557b91868192186852879defc8af9b7fbe555c7f71b8980" + }, + { /* i=2646 cDividendBits=410 cDivisorBits=225 */ + "028ebd6ae16c4672b0c152c786778703bb3741ac60eca2f26fdf5465166c348d3c08b91a75e4bfaf47d178134366ed52a1901d79", + "0174285c1e3e637f86017a81d91121670a47367216052ba66ee725c61f", + "01c2620108d4d6199b7edf05d9d7fb0cbd70a3650b171014", + "0c046cd41d036c99329e7344e0683d960dcfddc79a14b3131471b30d" + }, + { /* i=2647 cDividendBits=3654 cDivisorBits=2188 */ + "10537c03d83118e36b5bfe56e956fe61efdeafe0db4e850ff4227ea311568d3d2cd8ef7fb0fc70336276ea9cbe898f5c25bbe4b48dbc5e5f1f8a18581bc13521b104e62836b23d8404beedf551caa625470c1a4f6cf634d9502bf1a5211f7e160114e6a08889f5b3a84da281db0262ebf0810f850d89457fb72fd57790816f7b57de51f0749a77a7138f0938c56a05f838b02e838a82aa615d2cba7ccef940ec2a4da70a7fc3dc6ba393ce33136f353da390a9895499923ee0ce4d8891c1157d1c8e88086389286e5c04e50fe31833a31af355e803b6abe3fd6b8c1829eb231f1a6e708c8e85aed1e2d27a126da1c74f1156dcbd5c63b6b48aca5f2b09c7862f8b99e3237b0ee8d8ec82ebd7a90e00ea6376e1a5571d562bd60bd17983b13cc5a8d59ea3ef0c0cd41a17c3f0bcf411c6eab631e366110026a89ff9f6d6b78bab610f4382a83edeee3ef0aca93c80f014611cd35ce0d8c62f102dc9eac27ff4a8efd124ea03f7efe6982bb8be809484410db8f81a749a93661f16258ba7205454f6abf9bf6b6c49dc8024ad6a47d232d55ec9a4b1625ea067b397771be69049ffc4b0a425b484c6aec5b9d9dc901b401f9bae388023c609b7ebd2dee0b61c9462728f0aed2aa5436b0f", + "0ef4875361af6e6f306a8e98f6371bf7fa4a7cc2a8dbc0709071ca78d4a8f0993a70797c43f0de7cb3cc44cfc319d9172f5a6368e0c7c268b2746ccdad5bb1b0af03f5dfc80258346ddfff94de7fe6e2306c30f8c06dbfabfe524645e2ee726c266dad1999d095d9f76c6c4771364f533c9e46ad9ac097dc9248ad26b5f11b74828da6eab5493fc76954e6be718d1ec012b4c3dcb96da274c8f08fc01acc661a33f56dfc4455214e21963ecf4a2ec907b6ed61190968df324a3ec7a466226caf3ca89bb97b48398590e787f3bb5dd9e6fc469bd2c6067128cd0c790321a529210195fe23d672b6a806f03bd809bce86a736151985237448163b37b04b63158c9c6034fc8773f062f2ec19fc588eefa820c07", + "01177797b96e3b0a5a2b9ceb1d6a889d66e08262c9f502875485ec8547c3741969e8706b18c53bcc7455142fcaad66eefc2ce1ca76287e99cd04316f14ab673cfbb1a160b8deb10bafa96c9c76b1ab7d65b7dcead6b637f58ac0d7d6559482f852410250280f5197ac252f7a3657524b4637c53d36cbb6db55506dc4a56630956745c5b9898e4e9f8367cf0878602a609f6f030a18b01a73c4342c89557af8ef9288ce7d5c589964afa84afdc3c4d95260fbe4bd738ffc7c", + "0bbfb49b82ee7da975880aacb8ce663c109d6efbfad57c65256064f4d50d3243d601b2c9689704d282300d0228af57589e7b047be3880109c86b44ab41a4aa3b77dc294ff5db26ff67586c75c4df2ac7c57cb3f93fcd7e871c4f47b43e5313d1a3cb4a3093b437a5f46afab0f3d726c276abec44b68f704e4e8a2f4490d3c0cf2b9b5b6640e849a75940d3fa7822ef96c69f5f2e5a55a06db95717b30937c803c062062d1ef06fb11d82083699ee772c60932686b29e3ae352d3dddb99f98c68fb0211545a385d71044abd1f728beffec0cc6e7c22920622ee40b72b2265cb1d880321aaf3fdf72cd9985075cb66cc0f35c7aa04718228516d8385e5dff2576a85848c7289eccb840cbab0f4e39a6d85b3ab" + }, + { /* i=2648 cDividendBits=3689 cDivisorBits=475 */ + "01b7b0bb15a66bb6fbf7a24230177fa3cb958cad30a0ddd0e8808dd33f4d94c9ca4a792b8bf9c78d9c47798f50db06f720603da7e2c0583e1fdc3346980547dc1d8908fa4f9a483a56b396ac5d2b9207d72a1f919c5adca69a3ffa763baafb27a23b27d5a8a40c10f0e18e9a2ce9f731e2ae70a706c679c290fa4e51dd0243f477e8df350d1301edf15ad8ab7cfaa38bd7496c7d983cef04ed722cea1982f7eb7280e60426e0e3b53a25546bada8b9ce41eeec820c71007a46a09b0bfe922598aae903e653014c68f8cad8fa49cb88d44f3edda290211e7f5619c16b2dbb045086c662719f473eb355f45431cedf29d6dd1da82605f68f0aa42268e7ad7d483e108acb09ca01f7e9e46ed1adfd8b46701d08f7922d43a4670cbc9d851decabbd509720724cbb437ee590e418cfcd16b5777b5c60fe39b913a23b542124e16a6190f79da67f1150fda83e36d9da383c35bfcc518c31a014d2b355aea2b1500b2098741ee51d57ce681a765261188c0e088cc231d796eec13bc3fa1af46a31e16360531b7cf4093381313903f7f1cb474495a7ab633493e3c7bda6efd89f2fbf5812ae3c149ac5b3fed34ce3001e16f619464148fceed53bc75a4387010701c8da92fba1f9002c0445b9cf57210d67", + "05ff8919f7c254923cb79777c6416dd7b6853357332fa5534577cc31adbfbdb782be5a00c8ffec294e920693322c0181879cad8c2e1d44a64ea90ebc", + "494dcbcd4eb53d9a200ec6dd67b5ac98d0c753ba31913f4b310c12f972b68e9c2a97bb15b36a7d7bfa92f24bee273582f416a576ec11af4ef27740362e1107e54e3a5624f91ff49723ab98fefed89e796064370fd0be8b2bd9be2cf78e4e2bd3a4c84ce8591df6d499e1cf49b52b80f6f619de0fead51cc7f1daae277013c912004220719ce659ae373f8989130a08e0934f2fa85b8487b5b84f6960cba085336c34bd0655f8104333b5444f24fe3a029adc8e2887518ee2646a224f077447f3b1f73e7775f3eaa440b07ae7f5ceb8dde727be6801e592af817ca17699f78c7fc23d2c1bf87fce973ae85617fa5e2f644048589002bf8a86cbac992fbdebd8caf8b4293a6ee4be416d54c5172f9428a6cb8504d3b400075622cf0706ec44011a83de0d9be8bb347895331f3246114f413a4f759cb35b25dcfd63d07c39570ba756722f6e0af475900f3227309f829b0d174b65a15074a9d6b36659ce44e27a8cfd7594d2789cf65adc961c98fe22fee4904d29102262d7092b4d90242ce649f4d8eb27f613f4cf51af3f3c3f1af2a55d0a5c", + "011bba51198847e098e3a7bef27e9363d695787458b6b0f450094a6d84f93a59234d573848363544079d9752753d0e945713a196f461ff56f18069d7" + }, + { /* i=2649 cDividendBits=3940 cDivisorBits=1402 */ + "06bc56793c3ffa98df43ccf2ce9a1dec7b61bd40ee5d438fb1b00fe94c512bef09b8db8fcf4707c4716e0e710e46158461b0037bf7134d13b9b45517f9b5f97aa56ab9303ac7a7e923f3e6043b7dba495fb585279d8380b3a4b4c2b61df309dcf727afe3be736350928f33c9eabb1d7c2c1f73cf8c0e6bd6cfb1a3ca989198d8e5e4baa61f7b61b83350f5d396c555f5cf46d5ce66be861aeb58fe445922577356685abb81dfb8554fd7fc7aa5f1ac33bd33ee8c30d8cf46ccf9457edf38cc9eef8502c51d8a447cd077ec0a8fb8abf3418e0848205139b616905f1f274f3fa9303f82ddcbe9ed3b6baa4b32c10a28bd35e412d7d5e95bc8c2e58ffc5dbec356afb49fcea8b762e943ef10eac0f2006e0efcedf547384f5d2d665cd3c6ac0282ac560e0f95fce4103975827436eb691245a702d8bc24c477f841737a7be2000422b3927ec4bda0d64c350d06f4b9bc95ff5f8f1cd0612014c23d9fe6a7fa8a77b778464772090d28b766787dfbc170e95ea4a438027829c18c9fca35db9067cf395042b4c70afb0109bb9462c86b24c0c04b3889a87ad3643a8442f7a44e84b7e2d53e44a711dca19790d3333334e4fc9be1251684b6e775b6051d5d2503f239eab8ac100fa51391b8d0170c17ddfb2e166e5514df5adfafbd82fdf0a2924e6c889a43e2980e6c71da4f09604f", + "0387c3a903c876957c458210c89c694d0242148e030a547368b6101f6600a3fe7ea50d5f09570efcd62a4e64abbdffcde170c5422cf21a97bc86eef4b7fbeb18164da5e637bbb772ef7e58262f58fb574ce9e0198785edbce568a261654401d70fb1bf8d926157cae7c229122192f2f71824015bdcaef7ba5888cbeaa3d1e6da1d2afc1663dee7a0d83bafce912cdc5bb2c2ec49e4fea34c52246be5a44e173e5f0377e6befaedcda3fdaaf33b121eb7", + "01e86f762e0c80fadf8662beb96a376e66fcf75643ef5381ce614a484ea1c7e468f8803d63fe828e355316d0d984765cb8790e06ef25e36785c1a9c85493755c980855139d1db0cc4f2e14d981de4d527e82ef4b80dc247afc482b6a7c33e6580287e84acb7f2a0f15552e91743bdac2a7a2238710ee83d97be3a8a021fe33ae00dbf5f3cdd8316cf3dda406db3e6ddcffce04b6058691ea460ba0b65de90cd4fb30078516d410afbaeedef5ec4c53371f62ea844d28a073123b65ec8526a55c2a4a31dd8e1c0254c56af417a276c7d90705e9553fa481fc5bbc2b47f402f330e3e2d9efd2a46101df7c51ef09e17a48941a732480718585fdbd65a6dd7c11bf9abd4bdfe255698787c2964185c48e402c2ca7fa0e2148c73fb7606a74771aedc46145f3f88f7eb6dba4d12a2c58f47f7aab1e682cdbfc2fcd9597eadbb6", + "03099ab1a65ed420246456c3e53570cc39827bf4236f4c68ddb3341970e16e531efbaf7c8ec7c50d0e34ebadcccc12fa4be29e5b7e3db333328ec01fde951c75c34ebffa5c56a46f7f1bb254337faed3c01f0da041262ad07e3843a893ee732dd7115862c742d7bb8e62c9831baabaa3cbfba2b0579c0ee2fb1cfaa4cd3c345be157d37190104dece77673615942d64ce53d6a866495cae54c2877697d70b6be94656b308946b26c10edbb34cb9afd35" + }, + { /* i=2650 cDividendBits=1657 cDivisorBits=633 */ + "31d7084e32602f5700e0cc04b188718362b4f6b8b0ee83363e8fa2297aa8f8ec4a7a6036d71b60c8b6645b020bdf25f0b27fd679add22e0153b3054e45e22ef7bd9bc678682ce6668aa48cdf7eac051aebb224b8c2ca0f053a2ba447758b187b05c2596c0d9e46b01e22438408e5209c36c9ff1f79d8c02394e747800d1bcfeef16fcdddc555011f745761f7a95d870f4edf543907f337cae648c86a4777cccf9098c69dccc64873c60b0a7dba2a38743a9eac0b28d69b434a8f1aa38d9574225d6ae505b5c62c624c84f71b385aac", + "013d56bd86dc6505bc6838820ec6cf751206c828a550a9f14d3a1d4689bd0f20ea5c5c84f44b3402624acb0f25646598b450ed5283e581bfda7671a7e5109df350d6d92065a8790a5c803ab033a83016", + "2834d29c138933326d93376672073b13455158c2f33b6493893f89341200a8f0cb62e92882fca6169414b7fc5ef7185ae4f1dda3b08a43e37f0ec4a56c60fe4634b55843e98ff3e7a945d649b2e0f3353fc84b811704a2043d50614fe095239f19f433e9166074a8d7c1d48242af799a8c15bddc6e6beabb1773fee918347ed4", + "012f245507c2ffb3aaeac6f9286751727cbd4e5b098a45d513929ba941d886fd0058569c81413e3ba87b7be9d7914862ed6068dcb33cbe7ff39c8badee6f2f71c2125895ba1ad5f2c2eb56edb7cdb474" + }, + { /* i=2651 cDividendBits=1768 cDivisorBits=303 */ + "b8148efb6acdb508e95cb3125354195ef0265559a32f91426a2e841f6ce7118a7038c796c7ac0121d3ecef5eb5766b3721a1863c7b5bc73bcb30606ef87c50d60ebccbf50c425074f768f43fb0c9e241c36932bd39bc438684594ade0fcc0b7d9a1b12f1452abc42b216a75135e93eb8860b475c9e5a3c801503a49e274f328f83d5996e36738d4bce568028664e2f51d85bbf7c45efa35d3416f6e9099cc81d6d6ac1229aa05d1081a7ffe5de9f2c59b706aff77992e3840861218b618955d88b9f5bb5be6498096546e8db54bed500cf41f03576502c4871954e8cea", + "5b828027618f1ac39baf6ff35b141bd8183e854370a5dc30a7cab4d421668e88a38250db36f1", + "0202f7af92d71dc5ad1096f3eb86fab3f3260173dd0aa4d51e71aa9c92a78b06df181bc34358a391c46ad5e52cf2e9401d0725ce1a1fb545325999fa5ea6f7b3ebaf87feb247ea0cecb74e72261fde430b26c2d328576206290f5fdb7a28b3cca98e9b99c4d8997bf56db40b73a2db85705980a93912be59b059b510322fa8a064778a818b88bd965a69dda3ba90256358149eb746b6e7ac05ce58854e6aaee613c0b1ce026712cea99e4911496513a5bff1da57d010187c", + "38dd43e758a24d9f3b6521d5a20ea431b6e396342d0fb8e06a44a1b4fa32ada7cd7f9ee9582e" + }, + { /* i=2652 cDividendBits=454 cDivisorBits=276 */ + "344f9af18485f74cfc24e1cab10b7a67612b9f59873ce713bcd3d9757ec7d38b98e8c91a21f006563638fd5337db9eb9f58ff74e1541795536", + "06170279c3bff3bf98fccdb715820be9809d925c9076a44bb673a185b7c7f1fc0d10b5", + "0896fe240f3766c4a2a60f34098b0cddd32d72e714e519", + "01e8b9011b05b195e6972765635363837bfc0e466fd8ada904020d91e19449531cca89" + }, + { /* i=2653 cDividendBits=3493 cDivisorBits=2329 */ + "065d0b75325efdf43157e03ed822b735f100dbadcd6791359175f05a4c531eb4b7ab68066a8083dc21ba83808d130863041a22371d1b5055b1f6cbbb089805d99d0b586b91b5eea8fc9b3090f2b942b0aa1c30ddee60bc75357abe30c192e1cecc1fdb4a99fa2d2bda1a87f76322ee61f4072b12ec57f39e6c6e5b2a51130f7871aafb65b93f4fd4a3bed1cf112238b6e2f0dda70020c943ae7ab950add2a50b464d3d118527d256feeba28ec976780188c9ab66e8ef4d3a235d77139e009d32dd88ee08c605cbf02bb260b1ed7b36fbf816b364f756153588a69ffc61cc6e6abcc4f8f5c9097582305b6f2677cfc37397ba36bbdb70e7c1e08104241eae5be724f49de41511d9334141c5b45e396ad2e884e57f156dc4addda9c832f70db14e82643cca51f2c57d41d3c28afe514ca9d4c2c11afa421cbe35a4194b11956de2d4f4a9939d132364791113f9bdc1efc6d62065c2a85fcf5ef433a1a09e1b903bf8aed548fa8f45e7c5b4b3a27bfd5cac8ea97912d99034d051d7fd02f72e629552909ec449337ac0f4e8bee90e130d224840a5e91fb28e8c9f0cfaee8e0b634fdb45a0f916b84afdcb89088e3159227ce56a659791", + "010679596b01cbefff0c259ae0a4389b3fff8e3cbe24d733cc1ebb6af859bd8faa7761aa0c4d2b415c5b1b0ed7afce21f07461c2c266cf8fe1e9fbcf6d182d73d21d4fb8ff0dee88a6631bb3c8bec9cb8118ba3b6278abf07797d00a2067df5e2501765db0b2711a75dab3cf4895957334dec8544df924c7cad6033b543b10c86c8f432d0d379e8ced33b0684397b368d006330985bb02e2a14662d94aeca83267d9eada59758023707b0cfdc030a014711989943af4ba7fa874bb910ac82dcdc0cf8665bf4f0ab4fb6dacf1a4c65ce75e42c7666957a8b1efaf6d62e4e2593f9bbcda6ad3e1a17980009bd6883dd8874bcc204e41c315aca8b5b8fe743c84aba3a9231302b81743f2c04cab83671a8a7648b6fdcdd937e746a30b1f1f4de7daff74bb33", + "0634dd1efbcfc21c4de0c34f7e4e047fd52d5d53f52e25b4f740c214c060ccec8328dbf5c34108bf5c8cf930323211e3c2fba3c060dfb4fdecf552194edc43b57cc0c9ed8efa4d91b57ff454293f0c2f8f6e84dc9385d0e60b38082a3cc892bece793cd4558b98b4002b62aacdc6081ec0e88a5f52a4315c85e9dde38a60faa47cce3730786d0defbb38ba95d2a0f72d91fe", + "68c79092b269015b0090e29f0deff7f20b692109c642e5fc57dbc1c3412e2bdc491edf2a856a7e4e376ff200dbfff229374e6b99187e44b9445536e3c51762cafcbdc61ca18b6414e3346f7ed260a0e3fed64370bf8af2884ba27e0eb66e0f989349ee874bc774db2d6178995dc6047126150556557b86dbe852135ff25b2943ebd61327b7eafb132e940e4c7401cb4849d20fc6d9d5a2e1c6384faae771e515db67b2643c1ff0db09cb46016c3dca217104b979b7c23ad1325ae0c50d44450f4a03ea056a85b0f32231d66d6960e68f81edb431a9e6affdff5ca280956f19778754af11bf7ca2e72dac77792a2c405ec3693450b786e96d88aeb2da4de876704705056004e4944e07d86a8c08169c8b8b9dc49d91c6491371f7a5ae5708e7b994f7f7" + }, + { /* i=2654 cDividendBits=2398 cDivisorBits=1461 */ + "243583698348bbca6b7066a97bdd0b58cfb4e48a8355553a48e1ad3b076b44811fca2e1ff79a07e9c53cc162feb950e2d48d9b417508ecd3b97bcde6077e6214ce66690b03099b947ecaa5c446651dfb5386664d1f6186a67d8f65e3f56928ff7337ed6bac4b6adff5bce184900beadc4c42f87d7dbfb64a755698dcfe075485b1795524a1ac19a042e112f77a4c6c08624a9558d54a68d27cc5be2aaf398b1ed11532307fe8a2907d24ec083cd495f4e7bcd25b6c0ebef96484354a2ca742df8868d65d454aaf46ea9a72bf673d124a5c30116ea1ff062cbf8333f9c555303a9096fca50d9778d5b26b70f961d0beac23708fd53dd974fe79659ead6a5c9c71b4d3819cd3d55169aac9707f01bfd42e0f28e88a475236c7f9f9c067db90dd52eaf113c832193df6764727ad", + "18a7d863c127c8caa007d9cfbd9f3728a5be0ceb5b159ee61c0146d4282ef5240c47655219f80c10c7d8a736d8d83c13c4c6e546ce18e84e97c18e5cad32fdb28ecc3ecd32cdf8873bb85a2e742cfcfb66280e5b826e11cd48daa9105c2f62051a5e866c773cb356f143466c7816522b1569b53946ff8160253ce17d49ee2cae7e3fb5ddfee07ad45938a96d3010b69f119cc1ac94592fb38cfa0d1a2f87c2dc37a8780f30fdf1c0c9de23d5df9e852fe72208f132d131", + "0177f584ec39c879b3418a6d3cd7db39d3b1693126eec97552dc97e8422cb6906022cbea521181a6af111d7f8d2e0ab44f5274466e7cc3231acd6ae64cb8b24a7485c88f13348d34342854ab56295ea435bc5a445bb3bafc2e2f2d513d476b255c4d6e99cbd83e34aae3db78957de2dc9e6570c5c108", + "0c603a982c48bf1fc351685eeac2f3cddb1a396f0d765fb92bffca80137caa362af6ed3ce938459ab507337c27a63be439ee420ebdfed27cc7df47b476c470f7f5d7d8d216d780fd5577bc3c25f7c08b67eb364905a5f85c0a7c97d5c0dd94838873c8cd7d37266a8c707e8db0ceb149e7ee496b4ad699f5f641a858a48b2d53c1ccabdcb5ff145c9d7d09d7a4377010ccc1bc6110a64e0c9d2e8a6a136177f6281b816f9207eb51b424c35ea4fa15c98ad1e23245ad25" + }, + { /* i=2655 cDividendBits=384 cDivisorBits=15 */ + "034b910f630d702d65920144c169a7cefda109a009fea086a925b7d567b0950907ac66486f458df595d282068d80fb31", + "5c5c", + "09222eae38e161e4c68cf105f2da1a3c002f3978b95917acf212b52d575c589f1d31d485bb06847fe9554c2a3e1d", + "3cc5" + }, + { /* i=2656 cDividendBits=562 cDivisorBits=210 */ + "0186eb68be9c332bfb0c1aeb3e332a9fbb6a67f16794bf12d283ac2c8a6f6c6a5e68c69456334ac4b80b3552fe5d8e90b6fccbd03bf6039c1eb5d80a076b24abcf2faa327a13bc", + "026e66a71e32810174b51b457daa1568c451509b3d00a8ff59c481", + "a0ca0e848c26245320a246234a2838add21e9d48d0eb6353097c0437b0a06bb1fddc4a32d9400e526645643d", + "01d891797db7803ceb96f487a27807b2705b4a29f96cd6ec8edcff" + }, + { /* i=2657 cDividendBits=3225 cDivisorBits=2050 */ + "5300eea7ab304e4b5bc6956dfcf7f18375cb76d2a5622d262a7976c2322c449cd018daf2cd96eacbb6c2631e3d70fde81d479a54e22dc74cbd2f89ed5f5beb3ddf5effbc5424e3711e85d3180eebbbb6db8f2c8b971ff9cd4a4e1ffd9231c6e3a6b694dd6cae8dcba72ef72a1dcfe4df025fd1496d3d84410656929a198501d506aa300ffb5568bf2b967866ae40d16c9e08fd53ebde753f28b6e866b07e4bf2bc13196b3bc4444bb2eee171f306b9a6582d9e564de1583bdf23c478ba1dd507219782acedb73f960237467f6edd27049aaf7c379fcef53831f93f247b4312008b3e68a607f3f0b5558b1273b098f5955fdf8565962ac1903cd93e8b08225f8b863adb7678337189aca78c4ca4bef9df5f1c2dd65b45206686f311852a96f8128931b1ebf523f840504275f040c3e86c53e83470e0d4a8939341055849af54ebeae3eeb4cee771ed5a210371ec7fa32d0bc3179546f9853ce54635cf79b846e4e78de1979c0eec9cd03f1014f31d7b85dbe8efb846b83484f0c07a38588bd095a487b154e2197d35765a75ad54363460254dad", + "025905488be523c7d4639c5ba6117c5a51309d106867fb15283e31a57f706cbf4007f357ae8b49616f6382b73f1ff84c27dcc4b316cb2ccf2f4ddac136a3e6bbc99d6628c7da55ac1107f8d8d0651e45400e748366fe4c44d40421eaed61f373e3a34989a3440705a8738294d6ce738a03ef3a8dea5d48e3c7cf334e9f291eb95ddd7286a4f9423194218dc916954d2a36cdd8bd7ba0bfa324cc436abd3496180b484eb702d9a540064601bed92331e90b4e7f6425883ab5bd13677ea7646320c97a66524c219c30692c26b3d5ed7a5c8a7022f8cff4a1dcb7c75036453c4d4fe8ded80d7bd6b4488163155511c710fdc039536e97fb366de17bc1ff8df7bab658", + "235ad0a8fd8cb714d5ffe1d68abb5689bbcc01a3866103949489851183a4aa3a9cfeaa8dcf43cf0a97bc4aa922db9882bb7d562e9d279b279f0edb67fc2107befaa541172b81f30baead056875483b3bea63b6c8136c6f37cd1f8b0f1e3f6e8b6de39548bc4c0b07eaf8acf703bdfd642498135f12a4f306c0f88b4fb7ee5e36f10b2b1769b38dc0115e7da171933963f3f2cf", + "0188c1874caa7e2fdfb38763b37c10ee868ed5fbe98d71a94b91ad467f5cc9897e2f7d6f84e1afd8af9c1fc5770270edc8e1d4c22aa68c2020d538d94fd1125e28d75dc35ebf1a80aedb6c9f54f8e5be4fdbed8ea96386ed12819a16fec1ccf414845353d68959841dcb0f4e1dfba9a9895d48e0d2fdcffbdcea44f8502ff781f9db0275aa687dca7a8f9590a6702e09f56d2b9bfd2db7783c4f2175f6da3215c9a10ce8079e4e5a11f72c5a9ae633b18cfcf7045a2e975a1a099625f2de48ab27349355f68f4e4e707e2881738df3b992d5872f5f596fbd0200a42418ba5ca8bb1b5f1ef2296a7a0cedb5b321fd75f7a40eab906f7551503f8933e1e37244ac85" + }, + { /* i=2658 cDividendBits=3126 cDivisorBits=621 */ + "1129d55e257727cc95a42e602082bc49c536e58436aca213cc98e0a35872502ef1e737e40050c826b062730e4f5eb6fa7068f84fd4dc24e5b96f0bcf6eab6053b2914db30864655511a5303d53506baacc04e6f548bb788a2e60f14b47892d8a411c46b0b31f3b4b43ed0af5ce63d4c93d2263252f9cb4a62865278826ad9b816cbc94244617ecf5c35fc093f3be3c673aaf77e73d8e85933f0286f77b37dca323823e81035d0d5766ba7e46fa88525932ce5b740fb17d99ae18ecde139a80394c75d4d6c2ef38511aa0737742ec58b54cb08fcc4ef9abb1613ea5b1cd074c39ab558aad5805c6a3eb6a786d77e85b15a34f0931bb6510ad2637182453e801948939cc0a8a956fc0ff77ee594001820362a77f23abb5f67059eb6534f38c9682ec21eb86ee9ea9d8d83b125a9af90382109cad10bf06aac18ed800a21536b25d8261a5819b310d12c519f0e8ea23022b1013737b2da14cf97cde601d6262704ef41507fdf3e637b560cbff93c80ee2c5f78232dffde19b5d983cbb2153d505aacd40e0e859c070", + "01e6e4e26091db462da78b20ec27ecac05b3a3fe023d8e5449537d9b23061b4224761f3dd79ccc64a1fa21ec368215886d2b24def4ece3fb502b8c7cb149cc5337f918983d0246089ae3c76acfb3", + "0906327fa10da042b46091c66e6d0966f3f5d378a14f55ee3057038534fec7d75ddc7d86e7de1c6a1a3747406c412cab9e315a4c3fa04d03194b79c7f6c014bb4bdeef24e9b98bbbbc8ed0fb231edba1a67324d8c6fd51c1dcbb2ec1bf2fd02604dbafd2bd93ec5bda7279a7902fb1de104974e63fbbddf55a4d182cb2a2a9ca3572525f4cb801ac832f3b595e0f66c47ea0b7bf6bc969d77ec07b77d0875a121f65766c6cc544c335e1f665e9b0dbde68aba3b5a943b04f0634446edd1e0be9297c463658d4948c878832c18c432808618de5ffc906e5a2d571dc3716d6f4c9a459d71243527d7b1a147883f21e9847df1b42cdf619560d34c9b1bf51286f26bb40912d93f371a495d61b1038cca77453222b207571bf60af27f14204427134b7bf49fee892bfb56bde7308423f37a9b31e9deb36680046a17a", + "01d947d80f6f4d208e6cd1252e348c72545e60a3117e86e04c4dc37d8cd39b250f8c92a66b50bdaaf9fd92e0be936cbc11d47499bdd282a6194aa1bd141aebeb1306375024898b7c85fce7e13222" + }, + { /* i=2659 cDividendBits=2933 cDivisorBits=1864 */ + "1e9923e43569741b64f98bd2b9068d3fbbd2bd9d765e7f65c35ac29513d83f8753ae2b9dfa0fd218444663ba3ac6a944a97b2ca3b0bebe4cbcc6c86b44b298e14f8733d925b80ad90a7380ff2966fe623f224def7b67c523569554d66f0337a2b75353ebedf451d0df95c38993e2dc19280f0a6b84f3ca3c5316d8ba724eb0510d0d703b9f870ae7cecc7a3ec337c402bb55ab1d849be9f812c06745fe05d6c6f8d83a9da542a9ad1b6f2c32853208176b42c2e282fc5f3ce426caa8e14d6795b00b6236f40859948ddef382cff7203071159f60305ec392ffc6d2b066ee74b9e2aa383ee24693666264d4964835a5465e0a89443fc327b14ff5bcd8c55de48bdeaafbc1a3c1090b0c8f8ca9bff3873e90ce635836421b4456ad99074f7532eebe61cbb78f7c42d541b8d35ad0d1dbe89f4ce35a6db2df03db726f6354e027d46a874892f19adb726639bb1fd33384055b5f0a4c6e3b4fe71e389ef03653c7baa8919b5f3f9d7af0f98dcd65f830b2", + "c99d633ee05dfe4cdbeec00cd19b9886b15a4690e099741f554356c23c11a2acd528973fa63d15e11a07df023035fd91b825d7f43e2adb9c9ac00a0da746b2575ee2cd16b4ede9d57be5edaec863a3a4c1d5fb6143ec163b774c20defe16da4d86869e83d361ffec8ca66a3121d984b1250d2bd5ae87f289ea9f04bab1d6a6a0f1dd5e880e7911c4ac0cdc5e96a430c67b272a88d6d1e597841e4349fc1aaf73b9500a14d89b01a6f7d6cfa6c18168ed5c0708e76ab39aa7f9ef4a987d6151102594b6907c81fae34a79e2bb286dd0d675ea2f682818a0fa785086aa28b4d22ed835959064f510b5a6", + "26da1d5fe841d76eac93cc18a030d1b319b21121c37caaa9f4a57a17faa94dc81b416a1de44839ec8a71c56f1aeebcf5e33f2cfb3841d02de1c34c363f131ea4f04abf6df179eebe4a1f6a5fdd72ccf5454a8ed876adacae870a415dad0ffdc370c522b1ad7490d4f93f6028da6f14f1b8990647da485c3be408c431722e1f6f6c85bee520ee", + "63a482e331f08bbc44f2028494e0bf19b118a300a0475a8cb7a43f22ea19944cfffd3f244fadbafcf2bb6070993c19c784608d12f65c9f6214a04436ebf2b8e8935028e644e4a6ab35dd49bdc8cdeeb9058ba3ca619ea3d5df188b84bb51746184e6c2a7a703f1d8975141a6ee5a0e632cbcfb849fe99a90a40a85b5908c455cf7c8cad57f7f41901db7185eb00c17c9f33c47a69e21a69f22c85fcb71cb0924d401f38eb9524a2bb2706182383261e98a41a57e15a575495fe8fb209d812427d684c8aabbec81faf69ac6bf6d3a86b58ca37d95efc27c31be46b185608313a5e91a64ab4dc83c905e" + }, + { /* i=2660 cDividendBits=3926 cDivisorBits=3699 */ + "3d0fb0b7242fa4503a323bafa64e45a2fc9acc6666de5d3fa4344cdcf75540c8bfbe5179b468e234234533e1ed5ecae38e5d427be887abc36e07f700c3f42aff34d78233ec07cee98f959edfc4754dc4bda77fe443da676b3664f102559e0d25833efc55c801280666503ae1ec98ff3e2eb83c4bcc8f7f73db0596b6d3aaa85c311f9babb2a5b91deabf01c02a9adaa7ce4335d9a301ae74a6824b63573d160c9cbb19831ffb4004ff7e5204d0fc8f0563dfb3b65e1e9c02fece1bebf1449cc30829a4718027690e0a378b125dc742e75fde2438e11b22f396292b297e64fb426d1e9164ef72622a966bacc8297357c17f0a173876d89fa9e409de9dc40697075b531bf696495d4be91dc6ac2b2ffcfe03eb8385ef9b64ce699e7c67c2325eb296c9bc76b0d739b34806cac137c7d1f4761a09a9223d49babecd5178c0975c647a50f0deb9cabba0163a73355490adb7130527cfb643d918757f68fc5c0a6eef0d02a4c04e726e28e2f2000e23af24c9b28fa1335c4cfefe2a870da78073da30633a44f6ec4aef2d38a3be6f8285c97bb9c115d946419a594f78d9649c59a6213996251624ac2d953415c76cc9e20b7298bb9dcb4685c27c1781ef6695418c1374a5c998701d82eb5f5fabe2974a5f6bdd4c5b37a1e16e58095c870172ced6b2d84895c2052aa28173122f", + "acb35ea0edc4f2aaff598d47929a1b1d6639dc8cdae14513a8fbc01ec0298a129b008eaff43e9a486da27396bd45a608c89fffabe5b7c0e6609d35113b4662dba382a937488db69fa2e5ccae09537864d51dc77963795800f9575c24fdb67ce8b905293c3eb4d8f4b45c082a8408a98629d5e1b8c65ac9f7b22437157a5cd7b0157af196fcbd4b488bb02292851325e64bd0805bf15830c65f5ef5a4a8bb64c50978bc9378a04553a3d705fcfea8e541a0c7758e36586db1b52c20ca91865eb074bd415d77a04ee7d6acc994c2a0094555796af0c5206ea4a74da4a642347d1920191779a8c1d3736149aac20df0690a47e05a5da1318e42ece071d6760dfa304c888902ba9ac42fefc0fa4030926a69b6804c049fdb95bee9ff72d6a9a63ae7e6d094ec4d2784fe693651d58e9b646dc5e74df80e4600cf1f7ac5a459c3ab0236557867e3df348dcb3845a418667db19c14b98dd877f6e130589967863bef60a9372f7d41cffb68ea2f88c865787f4e7a4e910583282e49165028fc7c0631bc4c2b1a8c134f07255193be8bd103b01faffda67131a1e727558aaeb81faf45428d878b6f903b1af09a4792b070903ae70a776982e4261703c4c53d96fb269a61ee6820b56386aef65f5e1c42977c", + "5a836154c17eb4653344182058ab2855b21313caf7b0b2cf0d27180a18", + "0a4cb8e1ec703d9305e0bca33e8c6f5e8e5de31cbbdafb67cdbb85c1c05fae7bcb2b7c69bbdbbee7361adece06930461ba0fcacdc0def114e18d411b7c7bb67144c57a9d3017781393305ce11fc5b7aac91bb0bcb0dfd2280a2e4c1592b1762fb510bdf313f7b04f427371276082f0f84d4f740e3799efb91a13542bdd0585c7b785251ce881317c665b555a9f0df80cd2d5d9d92a453775b02ce3d3031ebee4b421163b534662db9d36651673e1c1da17360bc77c4442523f362a154a5535ec4144c71d88695431796237ae62cadb5dec7cf2254ab3c8d795eca119d2e4016574904368fad74eabc1ea6f234b4c2a92228fc6870f974191ab0e10edb3031dcfc8b4319813f23a8ac1947590c82c1be953b9c80c687127c6c45a031074f14c35d80d519a033ee42c716c9ef1d6e367d9d752ddb827ee11c831f5a9c51f5a61b74f389b46fa53cac4b5c1a99f77f5d1255ef5825cac89242de8a6ba0291adbe3d34b90912e9e71038d1301287052e314aad65c17b22fa56826ab030ab190424f50ed8708fcee4e1a322dd690d995ec70b5f40dd2f194914af248d3d2566f6af0eb42508e070ebc80687e98a06752d197d4e4365b3e79f93fd6c3265c490b0d491e1f1543261c797facc1729aa068f" + }, + { /* i=2661 cDividendBits=630 cDivisorBits=60 */ + "2ce3c59e6a0567f7455a9a85f78ff9b2576c250564ca15b1e156a07492a1c598be1206037aa9ddf35e29da282b7c4b2d01eae8a1ffe1fef047e7b9f4cb8481f9843f9f94d1167f643579cb3bbee20d", + "0b65304e8f839cd4", + "03f077ff830ba098d3f4b1f8cc8543600d0ee9ee75772519fc00f0a6e8206b586587ed6bb67f91686e1611fab98d66e10f5659eb23b760f9bcde5cf6773c3e107fe75ec3caac2df3", + "03823c5638cfc0d1" + }, + { /* i=2662 cDividendBits=4036 cDivisorBits=3052 */ + "08343e4ee50ccd9db7e4a383f2baae2fcba35c93d1a082f29a03903f544494d1a87e59f67c7486c4b705e473385f6945ca43c7bffcd3f6219eb527c563f79f42f786839b5a68e567d14f5cae6e63fe36d8ec31852032eb8232435d5299961411a51fc3c74f28221a4a4ade7aec6d23d7f4db250cf2ed65e4337371d6ec723994a59021c2ed7af6ce077df6fac91d7cf3f64f1c2c2f82d06d04340668ab28bd13290883a8d16af24e383d837bf8f6c114f2b5ab9493245ef5d1007a92fa3cc3c9a2b7032c9830e39cfb3a8925622ad065910e0ce54ee7938201921ac7971c2ef5350468d4c673df00d43674efeb7251438a3a069b79ffaaf132909d5f8a83e037acf76a708f788a40179d4d642e4b85d012301e6046774277dca1ca4b47d70d76f893f18cc2cbb1464c505a5bf164a0c5a3303fce011a2c179fe391021544e0cc820a264767a42f7f50d70a10dc565ca7de4f2dc763a45d4a0606dd15cd8aacc7789268dc97fd31da4c5340bc772d8027c921c7b5f0ae2d7c84b4636dece9d94999a45b1de408f6df51e97fbff63166a43a97a0e847eccddb0c4c8e5549d9f8035f0a7871fb5175cdf0ea65584e98602e080c00b6c8e5361cbb4ac23ba1ca1dbf418eb5d071b55809cbb442b6ff27b392eba18624b2f6505c008216e77f1a9e071c9b5c5e312811848624b95970d304e487ecdd91c435802b94", + "014b0ce0635860423c7a8010bae42c4a02f791aa71e4d6bd4adea9f965c86c170b2fb0b4bb85f0a86e9ec352bc01f8e85d52caed05cc0f6bacb3bbc1c48465d55cd35c1f5b7d1074357a41de0fb390e4774384e002c5da4ed28e4d18272b92293bce0ebf4e6246e29af08d7011a30157919863a6a1e1cbb117ce840cbadb0dab17130737223e764ab10e93d821984207a7506541b0a5156f741366ebacb33ab23da1da23928fd6817b294815df67dddeff79c2690845d3da940e745297918283edb3a3f0aa2e3ef937756e86cc44f3fc7ba14099b7958a392289f36f3cefceb5b35101b9db1b4ad9a5162ab37d1f97c82a868fd0a9ed44d097792c32807f4faefb92bac99ef644ff1a0a8669b0fe76d46ed878b3c2d667b4730874c04ccc2e4314913595bf7e75660be713713f3daf8430e4ccc4a9822f0ab49e8763ed5e45283c91d8b8b931c1400b445a7e6bedfba79aa749041b2021fd3a89b0a950e9d142646a9b2563c49fb22889b14ae028cc1b5b7d1654825ac1d34552b9d483ba", + "06581c51fd082e2d43aa6ef37685d6711e4e2855bb55aba8f21f2c97761bdad36e89a183af18e97b3693e429accd1c8b9cdbf8b70535bcb418ae1ce0fd9544bb477ecca5ddfc8d2e3c1d6e6d6e925046e4d6677702324512c71f64eaf61a9499a7e9d755ffd6c45e803ad6ba28bd63ad22df12b9b9c51b42bea06621", + "4507b3dfe364f2e016d3fc3f4aba2b4e4b2aa2b9d9468ac7faa719c0ec8e873c3f99bfb74fe7da9d4bcfb37adf3bdd67019f3e7138a59b2cad83ba78dbeae4092a58af00b0edd0fafaab4f6568a6af9131faaa11e1cf9dd382bd3770ade3e2fcf64a26c30d09752c87c63cd9505c052f22e3eda80ffb9049b514a8c88edc8863a3420e579c911007a8b4e16e21e2d5394ed206d0f0cbf49cd83f27c62a041d658afca95f210a59be0d6ebbda2ad078f1d15dbe31dd062b75763208d77156417d823ff7d527ba97d2598c3b7959b39121099c5ab367efd2c25c837b45be180ae40c03de1c9eb5fd7d61f82ef9d8342768b1dbc9fb1bbec9e3519251fffb82a0a3e3028e2c4d331af95161416d276ffb74701560ae9a81e4aaba6755514e5fbbeea0f8cdd1b5949e2ecc11e5d54e1a430cb7f50fc276a2d610d0e2821a413d11dd1132c8f184de14277dc9b1e0516c9a5c5a77a533461ac170d89ae0fdb9a0e965531fe333632a576eadcca18c41f861112d61048a09ee923985345f149a" + }, + { /* i=2663 cDividendBits=2149 cDivisorBits=2148 */ + "081182bc077a82af0f77cdb3c8bb6fc8abfb8eb1f12e470358fde49550cdb1873a64894bf8924643f2e050b58de31b0a1b15452ba4dce41aeadec8fc061b1ace2ff05dbe0419e9cc3258df26d629e5f36585fabcb0cb527b233019e507a9c71c040bc92f44c87d067e219087f9669792733881e32eac292293e9a833b901cb72292167237a485647f0326473dee4b99d1470238d2bc77b63c0c177062d0d3b5aaf8d24e7b2e84baaea03084f8a6abcf3383c7afd604f59374258b0d5985560640414061bb9d147fb76022a14ab0a99b2fa50440177f1c55b51393009620becc95958cf09554d1060ec211e0502026c3638174e34734875aed258126a4d951d8987e5172a2595b057ca98c876d3", + "03f2e04f65799208819ae2367f7f2bd4f7466fcffe152c3e29141ef6fe9428d6462ba63028a8f4394df0d6c4bfb5ebea15d0fa03345c8d0771283a5a5036e4246926afebf9ad819c4ae004276553be5201c72753b2740c842dec91bc2877e461f0e9daa130a44e393eded40a9f0c25e8cc075a427ab926434899f6ecfe9b5b896329fd53e7488958866e4f283af0d48d3abf643f54fac0e655ff2d9f2905681b86eeed700b1f42d7b954ea4bee1ad47d83eabab9c55f618d485b5ff3395d3c52b5e3d1232acb337c71e689b28245efcfaecfd27124717b13b03ae64e2675bd1b28e0d5c2afdbe318be94feddf41e4d929c7dbfa1aa34fd6a55ca6966437a2775e6d21377caf3538451a3c7a88f", + "02", + "2bc21d3c875e9e0c420946c9bd181ebd6eaf11f503ee8706d5a6a753a55fdaae0d3ceba7405dd156fea32c0e774335ef7351253c23ca0c088e544765ad52855da2fde610bee6939c98d6d80b82694f61f7ac154be33972c756f66cb6b9fe58223813ece37fe0940063e872bb4e4bc0db29cd5e3939dc9c02b5ba59bbcb145f62cd6c7babb74396e355c623690310829ef15b0e81d1f99714c31bc7db026b23a1af4a079ca9c5fb775933b7ae3513f830670589d590961cb1a1f0ef259ae7be984c63d5643ae102923516afa67eba139cb09f1f2f0ecf33f0c3636d1520729307972383f5954a2f6ef7204919c5d110ff1bcef11ede7ada26c33f9dc6a0ce9dba40f03a8faf094f27513925b5" + }, + { /* i=2664 cDividendBits=845 cDivisorBits=39 */ + "0133bfdf0510d291b6d5aabc02f39b6f51318e14a9716704c9379ba178333a8be03efcd0008d003b5cfb850e9b69e0e992ca0d16c0a44b0ae0fd9d778ec626f925bab6119d54ecc688d5b231ce82efaab0f5182faa4ca04b074be543ed62c50ac31b46e5b5aae8aa3200", + "79bd771fab", + "028725e8829b66edb8f62502496cd37d3127b4de5a0f15bf068c33aadd7b839913617fc009cf1dfccaa3cfee2156aef356d73e607306c9739b2b23cf7490f0a3ce531e15ed89f0b25ac3afeeb64f0ae115f39bbb1ee2ee7812616def2ba715291a8412f07c", + "010f408b2c" + }, + { /* i=2665 cDividendBits=1674 cDivisorBits=1613 */ + "02d0f4507a83ecd548db4d7f2e9f80a1f83b32f3401a16dfd3dc68b6c1637ac3c1a3ba3f6b465f1d21fe53754826f4c26cc62137cec16292adb2ccfeadd5feda1f5328878c0636ebbe38f9cef5169275c9ff50e89863dcaa70066dda8610b35249912157679d30b38e4cefccaacabef3aa1698808fb8c8c56071a17d8777ecf43a663825d995646844d212a3bfd56bb9f8dec852e5e20c79c9d33907aad5fce4471ccb68540002ce1b587588422ca06414989acdaf538d35590b31640af06a7b3f25b687129d8b8a309b1b832b287d8008f1", + "115c9986b882cc8f2c704928048abedb0d67cf1a75f7860289b9de62e9b0c6139ff4243a4d124ae2d9f0aa7ae6c23311cffc0bdb327be49d1a8fb01468958415291e8ca538bcefeb5eeadc7d00e870512cc00bf4260301dffb0075863dbf9957d242a53d4fb2253638611e2ed89fdde4ab878605f196304e4c066cc63a1744370343c3eda5326f002f068a9fac278bbdd49b031fa998f9d9b41009a4136c664d252e1d6d7758f0a6aa380dc4b8ff8ef8158338a4cbceeb79b7a45858c7202e1c638d122b96ef1baf4691", + "2986887b1490e898", + "07f875d9231584a4ac89633e1cd9a5ae7fee2c19a7239697b3cb5cd3a8dd47d1b22b14cd9c4e6c64cc2652038aadd3351397d18a06a295234a1e7caeef77ca12b59d7281e51d072816572d2100ed9b944ffb1b94d12b97457549edad3f65dd9b7c7ec462c07ad4dec1f04bb6dd90ab4c2c5169fa1099513fce3aef5f6b40f83dd89d6b174d94823c6670be8c337fbf4070decdc46d3b7b65c446ffbfb06cd4f8e251757f2161af19e1af5c0a59c0e6b3518a28d68a9c29c5303f5760418d3bf9806da895a8532feabad9" + }, + { /* i=2666 cDividendBits=2659 cDivisorBits=446 */ + "0496bd605bc73782bd5bc0a5e46b2bca0eb3422bbf74899b097cf47c28eaea8046200ca71a6626a8c1c54358dbe68241024b5f1fea74d39c012f6993300c5aac64783589e2c68b7bf1c74ac5832ff7875831b5d22f806a1ef2af2eb4755b1c510a19cfc587eabe973bd4334d869c64443542aebab6d09499930b7560f748d7a233ec6f1121ae71adc4d9324e0b5b735a6364d2684ce29772af3be3940270a31da6fb940f73391b3aec54f49b8cdfc1371364ec6dbbe9bb963bf7b6edc3c9672da3a79603cd3e26609c767ed47d7f98b0c7e22486024d81400cdb3120f899ea1fa8c24d712274c7c12cbe89c46835f9d3bf04b181c253aeb1f27262915279cb7b8919c620cec986e82585bed75e9518bceeb5d58b82fdd72194520253a4cce9cdd8ac9bdcc1f18e7844ea569dec21cc5bf4a833789197d51505809ff5bcfc546eb7330e3602fb2522992c35aed7", + "2eaa439ed1a8275fe4fa38962ce2da5b882001bbc3b8118766025157f1b4c11975842437722b804d9f224cc46909c5715ca9646d2ea94191", + "192c80f7624c69b27e7b29b1b0fe8c8574199967f9d2c568e098f35c3a4c8daea8e160402c16372edf1252d80490629f4531c9800106719df8554aee584a80fe4146e2daaa2d4cd331a81443171b73a74540e48eba67e642436bdf98447147a653c34fa9346274f924cfc1b2612d1f33cedc5aad3c70b4855251ad4994825a06a955b93ad0a3a4a8f7f5c278670461c8bae8682b6dfe5d8ea74cfe320bbbb1fa864b240a84226596679cd42030f3e7c24c4263b2466f37bfa55ef45a98c91f14d69ca28891e80dac104da4beb3baad2ec5c059ac68d55f1996e28ea7578e0434ba2fe947069c8eaa75adabdd5646510f15959e78e7edb8221d6f62ebbc1c7bf6a6b90e8a42b66f53d76f93536928d3b8385d006ee7", + "2801388465bca244e538cb49855f4bba626b8b7a078b9345a7cf8152c26636326e8608ced6e98b815707db9ca6478cc75c878d7daa4f3700" + }, + { /* i=2667 cDividendBits=2226 cDivisorBits=1108 */ + "013ea93f44b68f57a41ec11bf8561f6bc748b8b5ddc5f89aa4ca0bc0381dcf340b9c3f01d6422d39523fbd6025c0e7d3d7ed25afae5d9d1a9bb8d0b99d86ec6236f7206099046235e7a45f1b7de789967079ccd7c3cba9fb89555c48126d5839dc5758f30827c239e2c0c19899722a4f860c6f1e126b70ba8441350039e1dc86f9a4ba80322dc32f41695815fa01a082ca8797aa6847cf58a7517d3736594d4d9d150fa154dd3017a436b9938e39c7c12365af40c3a04a13d770b93e119b42bcb37d1130abbf2632bafec17765131d4b1af8f31757f2f197588657ce5af238190ee9d55f1e9c703bbd96b1c810448c1df46d29c690ebb42658a999bd927ebbba4ee7adee8b0b36451cd8766ca66e3415ec37ad9ea59f97", + "e91e1cbc78d743b3f3fbfe2d13c0139d48d6d4ae6583e373ae92d50926da5e0ab9f88cc3684597870ec34256ca38ddd7e6cc552f044b516cd00b731891b6a163c9da86cd348e192866d8de3d29caec262514af9cf241939bcf9c65a87512028f5031b828d8bbbb80ad6bf4d611b40923e416594e09f482194e75419e64ba3a97fbc6b14db0ffad94d564", + "015df0b624b49b42a331d0e072a5c60c9a4a5ede072bc4801b64e9287cf3e68cf9b6f467bb36cccc68447641c1fdbe9e270f409bda83d2bce7e81afabf320cf9bab6a3089a26bfdf9ece2134945f7919aa6effc69ad3b73355c450dd88bcd18071f80976915ee8a7dbf4f8a7e962fa548c99da2fc92e07b571f4c14d693b4756f031cfadf39ca90998487f7147", + "4d496244e5c5257aa3818d87eeefeb8bee638290ca1baa89382b63e266e46b8c51b86d76bb139ade2ce6a455da31d2b66e4cb6f26d84c694141d8d3cd3dfd22620b26107308a41ac502a131d29a0de21fdfa231a216c67ebfce55d9b16c2987a055a120c7d022f74786680b394f283cae64484571880d73166d29046bd729cab9663cbb314ebcb914cdb" + }, + { /* i=2668 cDividendBits=1866 cDivisorBits=117 */ + "017c8f8b347ac52e701ea160f15fd48c507d43beb9a46248b424075497925ecedad79ad3a570ed9e8c1726021aa723293eaf19c688e73d51b85be49d5403b825256296190257cd417660c541862136126e2abaa532a6b80e0912d925f3c033d9144d24d4e26394fb5d2c5d58ca5c0b810b301b32732b0bd0d8bc3f1e9ebb67a18c10f1b4c75219072c8c7bebf38ba18a994d4fe5cb810eb627d7ed4918760d16bbd4bced7eff7506e824212465458a6b262fdeee90340003f5e2dc03afd6799f36fa15c579374e9a49dfbbe2402401d9623f12e3e24aa5654ebd0a94b7cb778d8d96a56324e7e1aa21ed", + "1d053ff1045e72ba629a3ad7f0b464", + "0d1d0f03a8e6c9fcc5866b6b0fb292cf505371e716dde9cdd7ebddfdcfedd567cf4801b2c5b542fca9b0941a32b04adbf0bb2e8f896039f3603104d977dc5fadc5d1ae5993f25985e74b40d88f48d94e42d0590c10d3a3629eb31ab7d6fa80d70709e466a8b59b80df9c1760d6070e1228446c35db16878e841451b74b3e78665d03b2c1ab3191d2cfc01cd907e554278ecd172418618737524c881606643c0c1e88786e6ee26b9c7b6afa6f66074a140c4a52b250b3891b04fae9b46bdf2d2e5a09d82739eab15a0485c0228454d16cf5242ee66d2fb280041a18", + "0cd171e04e1d29568731f85f37108d" + }, + { /* i=2669 cDividendBits=911 cDivisorBits=332 */ + "2d143fd227efa5d8b40a0a02ef8d84a29897731e1b7dbe29716c0e8ba82f2f8ed8d72f89b5fb74fb84ac73f3124c898df3a414d12d7a246263d724c0ba9269c80ee662d5e31ebf0b07e5d02b019e94d92d5360637af70682af608db58df250f7f732025bda6c3fc3e7a033c264cca93a2e5e", + "09a571544e57680fed9eef818f373562ca5347e594192536f4b9c87b0ae25a452ee2f45656207c0c8a6c", + "04ac582788152e4ca4335726d0a63e430eea99724a5af76b80fc0dde824f39a9df3ae465943e421f4c907567c9587796e1afaa5af24f2e8dbbd6a29096acdaa7609e647c477bf8eea9", + "e58edfc3ad04f3a8e0e2209a63848f7cebf3db0828a848b5094de27847755c97b262e86f6b1fa26512" + }, + { /* i=2670 cDividendBits=1458 cDivisorBits=1305 */ + "032121f391a2d2c09fef9ba23b7f35abb1dd6d18bf03d13e9ffa42d71c9c60b1a600bae60123a4e5c6e7c199f62f8b4657f99178606e637884978288680d625b81103a800aace6ede16337b35e52388ace250a3ed25bbdc9044eb420fcc274e8fc1a20ccd824c4a8649a9cce23c82dfc36e68600e63a0e1d5d6b2c970ca122b2cc2ca13cc0013aee892a1fdfb343d8c6a16b8906d569191a3db1ef1e4bf44515596707d3054a9d7c9f806fdac08610f014b558a1202cd4", + "865881b280e0a38bb96b53e93da0d5d16cd161b2d79885052fce1d092f2120e01193d9c139699248018057be2e5592635522d324bdabca75a3884f9f132035fad805d5b5d4aa61790dd5d4b92bbab0b7e3a636e2fb6c69a0922f073335de0a347d7908bbae285d90509fbb0b79e3e0af1090f04fa93465821c6f8ef2a35f2334329de01e437ebcf1e9e5e7cdbdfc05299d0923eed26c5facd0c94c8e7c98681759f72d", + "05f69555a16c8fe258493a2ad9e744c5c169ad87", + "15c7d4c64eeb738c7c85a235dcfe60a295de020069d581043042d2165f911e72261b3e6b800fb3bb16516684a82144c9c5ff94e3f474554d5bd1088399cf50731f70bb5d1d08e5c42f826f4bbc6cecf1c733bd5008a00284552f22f95caf8eb28b2fd6246378b13e84ea061aae0eb92da055ea46bc2759ffe5d0784e29e54fe3c4ae20be1a064c63f7529a463c46745155a6a97dbc76b5ae1e400390976dcc36306b19" + }, + { /* i=2671 cDividendBits=2483 cDivisorBits=1722 */ + "05a631b1c90c1183ca5135332978fc5dc50be7586fb2250ae730131a00687ab342b249e5072c1a0fe768a82db529a3408cf4c78850cc2b28e195890614b3c11b3aaad7209cd8567b1c65ff88e175f15440840ce7f8dec58a76d344e223bbd8449dc32847f704a62a70a27020ff66372248dff04d4c8a95d0a94d2dc5eb0647903513f04e70ba71fc23c26d9076937ec7586ac2531a197deb81c465a910bbbcd74aaca530b564ae6872b0c3da42b4690ca394624ac50b0c5d57e0ee7c7f517a056ad54bb2fede1e7b181502215fea5fc0d16dc7cd011bae84dc29d5357f7d11d281ab920db339a711139b298e528a8430115e2725b896d323d3a697f9f594264ed351b087c0db582e61defc5bcd19d58fe2a9db6528d61e578f058b95781b68c77f3f243d0cf50b4ab42f9551cea19c64c07cff302f8e2f", + "02d0396ab1cb6ef3f36fbaa546671bad509e29fcefcb2c5c5c7e060e850f86e2b854c39058ed65ae2d242606b8f712a6256ae5c8b9f5c304adc1cd17149412225448ccbd1a3e25a51b3dd637730ecfdc9f1f0f5c4b47e8ab83d04dea46e7751ec9d8c3f71061b844d98357851210397bbc2846daa758b37fd7345b561a47a771ab8d59e038711caeb5dc123cbeaf99fe488772b02ff7696322dfbed6bdec19f8a4ea30d99214afdf5cff0bf7b095d5e29ad738fb00baaee2479f0571b4d3c7aeb655630eb37f5be4cc3345cccf9d4033859044658374e276", + "02020acf568aa946bc60d85a7679bb04a8a6a6df816fc7e407a8242f798da056e1016880191d8a92908e0c162e7406226654244763caec46be25fdff4889909b260776516007ea303282b6af22a7d5f4f6957b4104090ae975beee9e35557149", + "0118c0c31ab42cb74386791db23111ef8a326036da881979d4429d51919438de00e910fafe97b0d36f98936ee70fb86c9c3b7cffc5d2127b23133f9b1fa5d9ae7f6c59e96916bc4874c5aade91a4a06bf1dc00cf972605e46ba92a5b8da2e44a856b3748a162aba3bcadc6fd544326857361ee41b2e8d03decfb1099464c45fa9dd318c2ecf2b1d4a9963f1dc9e0c18742589526ec875e97c7dd18ea3082724c5f7652e0abf7ae80612b58a141534959c672dc7214c9be3948bb18ba0a2cc9b21a58ca472643816a667ff097fd711163183edb807cb6e489" + }, + { /* i=2672 cDividendBits=222 cDivisorBits=38 */ + "298d2b41a9d5b3058c0ca6287380ccb43a6ba98053f3dc91c89d6e00", + "110e8bb6ca", + "026fa1a69e0ac8240812ce43b4e769d647f55f2a9821a651", + "0f15d79c16" + }, + { /* i=2673 cDividendBits=2399 cDivisorBits=290 */ + "659f5a2c0957beae4c440fe80193e9298c5f793cf8559da6360474960d6d3de7e38facf599a748fd83cf66386211f5abc5158ff743d8e266c3b0e7f4c446b5e7f342da3b66f2578b5f72c0e71de5b092cbc6419cd718794ae3d629c8e0a254cabfb0bffa2d9d40b9db81c26120623fe2e3d8226526b14ef04e60ee658a642957d3b72068cbfaa56a6a7f0afb053ad066e60a1d896ee924eb958bc596811a15de199cb31e9a8a010627c937b1d9456a9fdf598690d8ec61f2ad42dd78667bc424ccc77a070ce0a68648ae0c3575c4015d995222c29f5d80889bb7b918f7034f4a3667b92e40ba761c7df6b5719cdd45070a5121e5ece93114280267f418b5ff6a4eba5cf1ce5378a7f0452b516ce5c9199946862cfbf89b61dfcbd8bd5c8f5fe18c23e74a2ed6db8c4d806d37", + "016575ee1d4cc88fde4ed1c16345a8a3c334445b4952750bf63fc6338ad3af4fdf435f77ca", + "48c739ac31ee2ca0bd04f8cca1fda55ebb265fa52aed086223f487f25b7938a3b9c32b697c6788ac589b263b8b26736e646539cc3f3ca9aacc366f2d46426fac28cc27ef774d4c55c65208edf40f1f9300cb610bd04e1bc5e6cb97f845ef0cad3efd60cc55a510d1aa2f888ac391356509512a770533c302d88b6706ab99dc2abacf8c2f45b6e2adcd08fe755c6a5de9c9543066e68ca27b87948e0b0c7679995880fc36934e50483a3f25b2cf48a1e34ae2482dd61224e9292e5b06d12ec6b6d2f93eeba1ca9e86f7c4f735c1879fde3d480795bead724db3ab57243f298daa49f62428975440586a01fd3f60836a726a93bdc2f0d1a1a1e9535baa196b0386d821a0bdaed1cf7a", + "01340905c5852b9dbdddc2bc62cadffecb9b344649229b7deebf024b7f4d40af2de83b00f3" + }, + { /* i=2674 cDividendBits=2606 cDivisorBits=1242 */ + "32779eaa13150896da534f11131ff175d2bc603638bb518feaedf572a28cb303d14928a4407ba0dae385df3c6fabb5193b99169ff20fa92dc40a1f25f017680e80f25c3fd6d852c30b0780d55b2e6b9bc32684681493efb1d4131f9984cd19658cd001954d7fb481928478a7ab217984ba98039dd9f6cd7c3ec78649d7dea027ccb4f68c305c3a86a735a0916652b69255fb29fb3b9686d24cee9d46bb43ce2a820f6ea77895838edd8b8b6eb3c1a61560599a987abb980052c622ce85fa84cd250a7c5a91d3a3699868ddaaf351fe238f6623b18ec7382e4d36f13dc81961d06e0255c8035315fa449682f27801dc6f0157e5ad64e9c9aee25041fd3d07817f2109f74c8c6e2471a0efdd35cb98195690b1e5846c791203aab9d84e0a7db652f8cb1e6766e084e341ffc89034692a097803ec559dca6a3eae9e2b4274411efe0f89f23c9f47", + "02e90576b03a5dfb64d7edd28e3be9f8e38cda83fb3a6e3819ed3d28dde03c53e16d88b50414973e9ac7983f0bb34b4209e50696d5bf94a3259df1564e198ac3a3a29964523c9064fd37e10b69cc91646dfd61b5d12984150d97556ccc5eb2dcd2fd5841590028a76d0ab9b56fd68485647e88bba99ee6aca0f0b9fd354474b6ff7aac61b154284e8abd39cf6ef6fa70b40b3b2975d33e85ba6b9438", + "11575dc80051da5053fd23f4fe26f0de7c917d858d93f41566a622da2ae6aa7fc7d77694e0f1c62b5deaa1ca9514721a88bd623018100ac083aaddc19212e03e22c313ab05a012156e4c99c0734fec0ebc91f1f490ca2798a35327dcca4f373bb019bd1a9c4118b9d721743859d10de7e0a4f643d3bc76161ff0bd7e711eaf84dc92ab071ba1ec3b946375c31f0ddae36ed514968c2e5554a32c84b84d24bec81a219de21a5c276e3ca091", + "024170c58edea73d6439e6a4c6e4651304837daa7eca0ba74c34e49f50b4ed5bffe691969d9342bae9d5edab090d4fbb64984b3db90d1bbc7966244e86902a595700e156e303d7940b536276426f7a4abf9bdb84daa53919ad70dea5ef55f3393c3134f8e80110200e6b8f4406fe8a02f2e9868b4c0a055e010dbc2bebfdf0366cda0065c5e461bf188af50f5e7c8e9038000a44b07a71d9518aab8f" + }, + { /* i=2675 cDividendBits=3538 cDivisorBits=2449 */ + "0188089c34684e64c12d1cfe6544d38510731fe5fdd732236aa733dfa666a6cc69402f089f4e223269acaf092edc0e7c2093ae8b34e31b9ce487db30c88da8b0ebcc6aa56f83704a59e3108850de0bdb24291919e047ba8b07b1a62e5505d45305ed2ba38fc839959fd02190418da7d15064b70c6c21f4bed87573628a43c17a57817ad5d9493067fe86c23f5e137aed451d7a3c94aa7a76e16c68ca7f0e49500eb774c207dc4ca7f7102a3c7b823c203978cf3a12775076c4ea37f452ba419390b4db97e43bf58d11d761dc8feffd2fe70b13ffec4617af106c3175d6a07dcfca1c780cd835e28728b18c315c2c0fb4c77af3e2f541b3c6695061cba76076595779f4c392c4802ce79be9d7fdfa58f67f41c25e5ac65a499d2713d9b34a41f8314e89c76e51301bfc1f9751c7d256f4e754f3d3d23bce86ee6f70b2d326267f97cb4e00d7a42ce1d62467425a4c9b761d66cc00e2820c78fa418180ba6549a562c1b2059e7c6c6308d15f152a06c1524870940707e319038d2b659f5b3a485ca0b3c0bfdbf21d950160bb63655e8fcc1300733c71d95ad131188cac8620f557f43874de18557d1031916b60993d16d1e902e8aa8bfabc50f6f933", + "6183e74eb0d9a372abfc6281c0d5a1f3b110d7f478d19260fa9148dcdbab1ecfedc38985dc89702a71c7eb2a303abd4d239aaa3fd301fd8f1af4da6d333d04081a99df0c4f7f328fad5acfe1efd8263299c44581813f2aef5f42563a3b27d7aaeb0d9f608cb1216ced86d77d712b2415ac8de081d678124de7302caf17db2ad5c5dad28a14223de1df81d48244346517eef1a6b33cfa8532629a1fd530c3fe1096b593f61ae7fe0f0fb0ab18ef9a52421d05809d539297083fe15d521841cd4c5c8d79fb9c1affc1bb4fcf41abca8d6f7f2eb481e679d2bf13b72b6e7da949c5734d62fbc59306dc781cd79a8f63569488d0b4ae4e156cc532d330f0297dc89bc3e58b8169d9b20a8c9f49bd089a2525f4529121f2f2d674249991d286a2cca0e743688a278427657cdd70825d9310623a33", + "04052dbb1a81518b41f1ac66e6ea8c01cd6b7f46c002771ac940dc698745ff06605f17b0a1c14775adefbd5a888c9ef45a9362700b4f09ba6ae54ab05040c58c0662d3c8adc4c44ced9fd312047370b217e1004552d8e4b528df93860a25db1368a7a6ddc8302c3f902238fcaec289c640560a8269cc6db195966467b2b182ffa37a5c7d50f6d6884f", + "1424760fadcfb9fb6b94d3827c7c55cf896c4c61cea5d4e59e3eaaddf328ee02918085653ce98b519cbe0ba1a94feec5e028625227aadb13c2defa0816cd9f6e07bb282385b742addab01a28933747b949e54687b02b6a07062d058b0a4383084cb69ea17ced78000d7fb0c81549133e4f63193db3b1402c3041f7040752472af3394c1ffb30e44457a2017f1d53c27cbd0dc9fb720ebf9ce333125f586d828dfb5581fb80cf6a77216f445b30cff7d19ecab3510f78939e6432c4843caf3d89e86549b292539665c6151cf7619a7e577ec21996cdcf1db6c62951feede02e8dc6dc26e4970c9b13e1b10fbffbc7c293340ec1a5497ac653a478df1acb6fae215b7836d63c09a3e740c4b4f82d51536e3b70bb12618c372f96ce43a4a4ed11702c2434e6626ef587e870d87bccac6b19eb76" + }, + { /* i=2676 cDividendBits=1213 cDivisorBits=292 */ + "08951670e11e42922c16ee09c06150a71511237d8a12989381257d4643e4205dc546db57b7e5d28d16583d178dd8ee8dde377d1de1ce78d5d41d4ed5d07251ac5d085dc7768742291015a25dda5ecb9eb4dbacfabd6773a552da8532898b845884f19f507ebcdef8c418d9cfce65bc15798a425bcd4363ae4b018453875ca5adb84c42fb9c96860d5e8aa2281d151657d9c8d87237e0dc18", + "0b8fe5fdd3a566d01cc6b043563632fa664490477d2f1acb83f8d143692e91ef64ddbbbcb7", + "be0660ca5f20b9fb31496b84bd8afd55bd4cc95d27f767e630449d8ee393da6c860aa682a86504a2a5c1f50efc25b649f7edcf6bed49218c26765eee54062b1324235a8812ea88924e02716af3f8ae5708efdd9c90426fdddb1c7e24c11bb533044fd75bd896544973f65a14358f36a7ace469", + "848b510fd478eeecdd0444a10c7eef6dea1653d3dba18b01ade6a96d206658bfe5d97909" + }, + { /* i=2677 cDividendBits=2114 cDivisorBits=1359 */ + "06e8007f92db7c1fe5270f18e47b3caad6aa76e376ce2573591e14dc88e59653e15f5cf98567a9ac98164add0e4dac4b6f2ba8ca3714ef77a51d798a0c8fe93a0ca5bf0e487097042a9c70e52f81a361e63c912cf59b87eb519ce11561ca32bf13f8ca1306944f98a0ece096ffd9155b67a2538b104e11592e7bef612574581f8b868c628f0a698bf29e144941a5601d4f739037c48e898c056ec009efa57348585fad68136853b5632c1edee931e098db4162ca75bfb54035dbbe6c5613cb32e85de6db4ec8aeb4ba5c19bf533767cbdf76e7d697ae78b8f39abf96edfea2754c35d3dbf47364b5d54ceb9faf32be8d150d8d4bb3a674ae176d876780e46c6e725bd29a287e6352", + "0b0422bbe026afb17901d6d77ea7a94246b00e409f3ef39adccf11b12c719f242f08ac235c814856cf9b9aeb49705f689ab705b20a77a56d2b6b88fd0fd872c24254cbdbe6f72fb68784ce73ad78550479e7522932a031d5fa237805e329d0ab8e2cc0146457bcc28668081d4dfc42ed51a9ca49e912f5959d6c65271e2cb8878428eaf9d067657a0fd63df0cf93b5debf7f3af64b9a94cc490a19df8e199e588a901d6a2078f9a8e5cf", + "a07de30c2f42dada98c10ada7cd7ff5efddc4661c14b03dc38feb474b5ab4cdf9836716c2a09b2298818c4c52a0999531c6f7c036f643b5ed28efff8bb4be7ccab486208fea6e5e13de43170b7411e790126b9c734626a283bae729ec9d5", + "08ecf11d323d87c5d8904dd336b5ea82107c41ea5288e58d9a38857fd5c967ec8acbccaa8b6245524ce710a8cf9131ccd575205248b6a08504a34343f147ffbe4a4100e844230df9d710b774d5529e905abdb0470b6bc0cb796d10693a86f9e4c4e7a140b18cf1e4f6d3fe2a80d44c161029ed3862cdbd66109bcc96802ab818a0045a5c1868b15f91c8302b9327b704775b5f1977d0f3f20e3b7e3a0a89d03ea6ea7f9d9da6cec5a717" + }, + { /* i=2678 cDividendBits=3377 cDivisorBits=1790 */ + "18e78cc127e8750d7c52c59f9a03e8249384e7035aefd9f37b6989aac1cd7a757c8b295c5063d40dc9efbac54797193102ce09c00a739767d1978a1e46b684eec735db8bb5fb0403ffd0573a8701e07dd75da83b8eee07116a6c82c13af86832f26c8841ac6c4f20edb008c48730e50eccca80c04a7deda32c908778fcb9207b5db7ac98ba860d8b449059a28920c8c968f3563df2611c5a9a1be9ee9415ac00025762d5617f536cf5e48b249a8f69019ca1ccae104bbe7015ecc37ffc3c0e505c10c7c3bca0a44b776decdb944407e9945e41825bf7bea23aa6ef60d44092466a90e38e8adaa2a863afaa64e14b9f9c8e219108ae5805fab19e512e0b1fee43182b8705d5cdc5c8000f9abecd7e5cff54fc9f58d49824d30fca7c596b9647669e3707b692bd61a14587368454eb58e7b4da20656f354fe431fa9271026735b17ae0386d8ebdcce9375bf546b619a90f9ba575f9270ecd56dc261fb644ada7d2ee847aa99c386aa222149000a2432a243db4afec49c7008be0601241779d863aeabd08465a480327088292b02383002f8eb92a53faf6249e528427bcaed320ffaa203db0bc84", + "078a5fb2215dbb052c28a3707a9aeeab8302363e565fec52bd8efa84349514b8dd42a8b916343708ced6e60bb47b74631033b94ca1270e34ca0c0b283e03498b6bead2857b1f7d770cbff955899589a75fb1206025c0fa7d3c2cb949aa50ee1daf50cb522834c08ed2fb71910b476889c560d89f43893c537bc59884124d9d9a8fee2baef6b8385c6ea4de0e05d06ebed43d66f473cbb5599321735bb5a6cfbccf701a63b7bb6b5c32a4b4b55983cf615795f271d3518a4466f3cce361d7c53ab6ab5ba3f9c4d5a32ffe4ba6030aafbfe6f69c177a40e04ab9895969901a84d6", + "034d814933274ec3cf1bbc3e3f600aab0774dfbb6633ff1541b6789f1ddac2e417d69cb4a4255ffcf01a400976e638cb5fb7710e23cb3a56c5c27298d1a3498b08d1cdbb76297b24595eceda8702e50e9ef32c756740ab777d5057c610bc890398b504ebd31e879030410101a01e6eca3d2740bde1b0781ae58c2f264dda30e3642b356b8b0cc72fdafd61763a97d7d755a33f0f694609e44e3027d03fbba1afe29438408196073819ac6beb95294fb694c57f4ab18962b02c573089a44f282bdb9c2570f76d55", + "058dd602f17e2d116ea7667522c35b8de22549aaac7f8271accf4472a4035523311cb8e6e7fa2bb6939caa81ea270ab0a41e674bb0d13f69be36f7222702336847522531c0c5bdadde53eb8417141eb8e8ae2bfbcf284a5fb5973fe9f640821fe88df0c9234a7f5f37833299123961e7fd7a4ec46e20a44d37dcfb1d3c2672ca79454ff53a7112c97ae2c8eddb6cd62b6ee404daf648d1d7055ac940c5ddc787a325ce4f4c371bd5e5fe75ac3fb2c03fd830c035d20897ba9a7e4bae6f550144e8d62ae9852156144c4fc2e2ad4c5a44d04cba66c95983df0593c9164fd98376" + }, + { /* i=2679 cDividendBits=3671 cDivisorBits=3510 */ + "2c1fb0beea9549bb8eaaa4645b4b0034f7ccc1ed8f1fff7df6330fc4b4cd2cd8c4f855715c9bd10890d928d1492effde93baa57fb0645510203251396bc1ddb746361d5f0a5de358f24edec7c200551d3fbd2a91e97b642b772c3d4679d60be5dad894a28877c4c6fcd8a1f86949dff01b8e4d4d9ef503abe8a9a2aacabd75f984f85456c177a12527db259ca010e727ab1f6f14cdff81d7a6aeb955e3066649808bd2c0a2305e9efb8623ccbffc2ff0f3469fe470720b7081ee0018a5d658a7afa9b0ec962edeac801fa0a33ea54dc0ea1fcaee66ccbefca40bf2a9add9c79792376f47447574896a65cea645fefbd794061cc85a7339eb9af7ae21d2a47a5d651117f5f6860de94e635244e85d847deb7a56727db1a5ac5e6bd3bfe9d1a9228e278dad7f4d7fa49cacf6f610a9146dd7abcc33ed6bd6e3e5a5364c4efcf2c3ba781818af7624224c59d04387ec41bec6ab6c925c434394508e8d3e77a488e57a5b4f664fd7522bc6f1a70c414d73f0aa67509cc930b9ce5df8c66ebac860ad34541970484d7e6923be82f2884c19cea19c83c8b48ded1316cf2feccc57f804938eaae4529b4f3eeadcc90c3df9c63f8755168b7e18e30530f86848be1aeaca76946075c7cdd6933cab29", + "0619ee4f5c8a94df81b102945f05306ef095e06ff4d25dc1ab7927425da9dcf060f26b6844c4ad7aafaea71dec8c93f327aeec74b9dc5f0787e4b1fb10641a629db812d07c65a446d8cf508d741e89ee0dfc5bdd93317a5a1a6d42a9bf37246cc502c639a516876e9466b66849bd59176b65e1f6a37bdda2ca2d0e2c6d073b9e5abde5f2a9ffb6a65096165eabaf4cc9739e403b08061f99cc50cdbe6604953d57946961aba10b2153b352df116bc30ff0c297da1cff98a0a618db6012ff50cb04579e2a0450e7eb61c2af277ee0671cb727e05da388535d7c7c2f6d8bc964f5ccd07ba479fe9fd9aa9c2e051b9d7b465ce37a7c17d46dc65f0416cf3928bef59252a6e8f9d8f6486d0f2d3eb0d1fe250072e1a27bd29245d5965c3f558bb09a613d5a231c5bcc5c74cb2bd49c47a85ed408e15c502d9bdc2d887bc0303d826f88196ba51446d52611d07241f6d35e6f33d40533413dd7e31b49214ce40310b631db92d266b21e2789021b977aae9c5cc2fe8bc095f6444a67de36ccecf4c5a645efcb9aff6a0adb545b24494da94eb69f66cb9d1a1f60a9d5530b15b46030156d1fb09754b2963fb1de19a4a7a69e25cc91b6824b7ce1", + "073b5c37f6ca933c1fcc9212e5a6c2c3f7a0fc3b00", + "05a0f3d451094b9c0719ec7cfa44f46233180b87ae7c4e2474fd1f4fded6f6bc1055bea1e69414a088950cafc381a680fbf400ff5bfc36254f5ff80f7e48255c95796b69d681677fa470009e5942dd113a777447a20a81b5e7bda6de2f4119c76253e8839b7ad5e5d7778c751c7f1b7e4a7805650b78902e0c8374647a0f4a262edf80965ca9c1afac62d14220eace97cd70b5e33e2a695040d3a390227847b0e5730b07705379158b549e511a09e2da121cdc23933f62aa7075e1bf36a2eefc7fc42f1a12341f6392fd54bfad31e8da8194daed84566a90e8fb17879673bba9fb7597887eb11d9dec90edc1ad1f67de980d9fc89e73e57f0a0bf09b575473216ca1f46118c0d2c9d4a79db4f59fc4e67203e3373e1ab5f14d1b356937989c147bf5dd20fbd94d9ed3d57111ddc7f7905fa71aaca3a97c07b34e4b0ceef7448b17e47486e0add7c668659164740f7c30b940e38f92a58beb01e3be64bb02608a37654ab7da08b25323b18b782c12b15df5d5d388810e5263c9e1d121e8839887c4b2764f68a75bf3610c1093a41cd9520416414d78b22d3cd0436af236585bffbeebef6e9147eecc9c50addaf83d6e0fa46d5c9ff8d029" + }, + { /* i=2680 cDividendBits=151 cDivisorBits=71 */ + "3c864101075cf981e80e333b66d7f52b965ea1", + "0b4c6e479f876913f9", + "055b5912dcaddf9a794810", + "0afb7d9e51ecb61711" + }, + { /* i=2681 cDividendBits=1631 cDivisorBits=313 */ + "49d4c1956dc630ca726e51d125c6d7689acafd6eb1dfbf46e1505050e166bf92776629ad1ee452c563349a6bff4c785d61fc6658a345368ff23f22f7382ed91c347c6f00e49ead854e333acb79dc0b3649b00eb8912202b103bc4013cb93d031a7a689fdb2732c0ddf403222d72455faf5b9c125d5323601a40b807f8009c19cc68941afd0168bdbc1bf52dfab8a6ff0dcd91fa1cf23264971a364a3652c50a3f62a410403c43fe642de68ecf83311373bd2742619b8f782d1bfad5906754f7cbe247eb8eab8e442dd7be5f9", + "015501dc4fbd0fbefc1323bb65893cfd9de1406488762dfffb25d17df953a60e48cfecb9c364e270", + "376d1f1fbb277fd708e4e3af7536a9df9b4fbbe7f4078e97e0f0f70582cdf18227c32d05f6536932afca66a9901f36dad8982b11bf1037fd5fc1e6853470ce2dfd623f4b96250d3d1f552d4dd479de77a83928ae20de711cd99bac5a9908e3240ad9734320657db0b8b45d57d8d55b46a6edc85a1da4bd74c047b92885d30b5b58ea8c754a2725da27e44f97266364408e4a0e21bbe1086dcca936b37f4090961f7b556110", + "d24527bbd5d5752af2f301de54438d20b0e75cff0891b97c46d2420b0a568f959350c26e314ef9" + }, + { /* i=2682 cDividendBits=2994 cDivisorBits=2524 */ + "dea717c9b96e157e82bea4ff17c4a59b4bcdd6eae9c3b0f676c18b2cd6bf6bb7e094184a2e8b1371ad607ecf1d29fa79237fd0829d86ce4c5867373a6c96996316b56c0d9c7c4a4ed03f351eb6539f967f32218b9af9bc05703ff2a20ca42bed4e701ff7a389d0c6566872e1836ec0085ad5afad8260ca9c36df5ad27c3e0d63baa87ef63452de489e3bead330ce3e18755820bf0806468eadc8c1353f07a5991b94fa491377442eea975169580f5d2a89b913cf59d002195d0a2f5f7309fb83f7a7a6e0644bebe7ad15ea10c04852cdc336aed98db8eb7c2618b4bf05b6c91f66494333699d97afa92bdb84ed40cfc8ef549d7ae2463dc5578cfb29dd7ebd9478d3ae4a41c83338292a60bfa93a457a60dd26d07205ea53b0b676a454620b096d9cbd2f2a3059f42891479f7f253b547341bc585cd77bf07d95c80bcdc5e23975ebf162e43e14e455c22c6fa03c42febd523c9034e36ffb7bad3b6a5a11c564270ba774efb1f8fbdacf9bf7d3153b2b5721e29b1a1a", + "082cc0b117b57859afe20dc9485ff6f61293a495051a213c76a4b71d60e50775aebbcab95f7335bca1afe48b93684e1829a424bd49a75633662a762f6abf3f4b36a6bf69a34cbda49c77c42decae1b72bdda86d59bafee52b4b04740fc4d74dc241ecaf068491ef5b240b2024a4ea9978983a7defd05cc5d3ebe3be232475d7c105f9a437bfcb54e7d6b6a8e5c72b1b2df37fe43ee904860391ec83e2de104edb9d86f1832afc0eef8f5abee804f28a2f0719c6368ee896351ed968972daea99390dd8e6700609b5268623555830407c467042b3f225e31e1be40b51ddf8d8f9b871e17373c8081bdc7eae5144de48af5ce6b4245a8e55def989dd4fc8325c361b08b4fad1fa9dc07afe2865be3df9b9b0cafb3c218fbd7efe92fb2ec10158e7b45e4c402f0e66c903cd304f40b084dd09963b86e68c0b423be46e56", + "1b3c86105fc7fd32da349086513615449eb3707b3178c10aa7fee0583a3e8c4464c80e71e84253a943b5ec3cc25ddefecaf128f7bd5fd1e09c0665", + "013ce2f94b391031ee731f7c50af72810f99e1620e19f737bf2f7d24899164a591990541104ed7721f74b0b1cec5c13dad0c4f38c7a96e3867dcf5171cfd66f0f3efe12e1c00eb72ccb5db7ac0c395c4d8741988e5c561426e81a49f02436945436a3c5f40ff31ae10dfa5a91f1b1cdcdaaa7cfd7db1057658605f7f327bf3fe571f35c3e6f8fde40aee849855839f1d3eb794fd9f9f919644300b81c07169cc016db4f386421ff4911614a8db4d5ac6c7a6fb43eb619d8669d39aad4e5875ba0c188079b1334b29cdedf098dc3887c41405370ff59a1887f0c590c2fb2b518a6223e4be1710f5b293f15eee35c977d60d662c1def82c557aa9edf5dc5ac7915778a56f8c44b6b05b5a764a34788938ce357fcfc461c731a956c75b747e40204bfabc32b6df9d989e90c2f7e1ada07c5cabf8f6d12f4faa46a7d8e2c" + }, + { /* i=2683 cDividendBits=1121 cDivisorBits=657 */ + "01d20de5f968f386344fb69986450f3a4c0b241aab5bbddddd55868dc98a0428291b057077fa2b7114be68d7e9eca6ea46780bb2d5a731d3f551854bbe1e170aec659c4fffae5fad53faf8ad84c75bf712dc166c1951271bd4819279b83ba8d4ebe057d48499cddf2ba62ec09f295d5466cf5e917dfbc47211181b9027dbb4c18543719c9409f65af6dad93dc2", + "01df9f7e15f9ec37655b4fead19ca8a4b33acca80fc8a315dd79723b5c15a0460a1f797e737dc8bf64f4afa9d52f5314f3c0683955aff450fa1887b9f22fd9cb02b80ebff4f9cce71a79c8b1d15f3f91ac43ab", + "f8c1f5d6cb81e5ce6c5733d092c924fe730d0c0b10da17d8f33324ad77284b1bb8f07701d7e8ac61856531a589ba93ee8d9f56ac9f93d783044f", + "216deb2afe79335b48a6733417220cc28d2104aa35cfd585b3d33a8fb967d5f55307afe82ae577237ead330c7a1e19dbed93eaf9ab6773cb777d54a9e0cae66f5a084d016387b50fee133727afe5f820affd" + }, + { /* i=2684 cDividendBits=2514 cDivisorBits=1896 */ + "c0ad64c7ce036efbf1dfbd35a9051a224fe0ab976c5600b20ade0b0f78c42ed405f0f21852cb8efcde9f29fed599681af0fddbf9a9490d557a961c18846daf58d5cd00c4bafccab707e38cb80fc5ebfe4ad4dce6999520bc2cadb0ccc2e61b12d67439085607affcfab2919f7f8f474b8205659dfdfcddadb7b762f101a4dcb71505a8b8eadcb711c4da08d8f5e94d8b9d0968d01a05608a0a0ff5b625439e691452c8761e7e2220a35ad56a971f715155109c8d207fd939e37cc9073fcaa5fccea39d8a080013487414a20dd89e8c31005ff2779b770ed7e25644303854743e37ddb177084124e6aa63e0b718ee4bd6451d2f2d0de971850e7607541f84e7b6f023946f46c473e15a72ec1572f6dfce0fda7bd63d86e2bbf4b7c91fad62196091b35bf4f7fd50fb355aa5b17da9fc51107157ac11531b609099", + "7759b39b9d3598f1946d5d19031b4ee320a463cb09276c90572941bf791d504398553ae27433cf9f3dcf6a9f62414f18fe9092b3b896cc079056141ae1ca798ad7e5a6e67b0bf29b5593f7052819d19a14d68c312f6548473f3e86fa59177238f3e414749ab4bf436cc6fdc9de023f2eb54ee3fa0d3aaf92a3500ca93bba658d48506488547c6b52ffd024918f76628debf9def7c4942cb70579c58aad6106bcc820cc520630e4df8f9c3dd9d52129ae088be65239e445ed4de2000274323bded628fe12dfc9f737f38dd019dc710db6ddbeb78bebecc6350eb5bf55731e7b032c2bd732f686e4ba1b546d86c9", + "019d483dc2e754fb8fae5cd1e0244970c08ab4156e639058ffbabc95e540024f12e2a0ac7a41b68dda893dc527430df7af9fe64e5866f08e32e8d961185811e48b1d6006a599ff3e56c308127b0a", + "4231202913443a90919a98c17d5e2883e43ea2773ee4329617f91f00c669c14d4bb359a921a2e1a5d29b8a4f7c7db5f649979e3abcfdf76c05680b3b8dc455d8127c2bc522e672485de34155130b70314d3544a99c42fb61a6c0b3f699114916d06feb4f54a14ad29fd6da837be53381264d13cc412146ad2822caa69d53e354a5b0f9266d101faeeb7f7ea0aeb287eb18b260089788231cb52e05fb18aa1c3166dfad8187e19fe470360decf00463fd818050cb874595b8c2cb4dd98323949a2ba67df4cc94471d85eaa351f2ed89e486727639c54aa391d20c177d3f1436e5a51e5e6602465f1dac6d34b9bf" + }, + { /* i=2685 cDividendBits=2396 cDivisorBits=21 */ + "0fa3215cd4297c59212e25ded4f13db9ff7f0698a7bcba321a07addea059cc8d02c0325e7a3a62523427d47aa2f61358acc400c8ee753e19f214d8015a135089061acb2ab5066c221617f3eb5e4f7e2db46471daf2fd9fd19f720c48760670067674dd3442f239117a94f548223538d130e403202c12b1daa9613a01c3c9891f4f37429c517595120656e847fa4ec8d179b67e50dad14baddd40667b02272b7657424705561058df110c4bf46c72308775704056246473c008b731e268667c9980a1ccb29f6a02d07ae6474294ec4f79182df6d653c3dfdbfebf7045b87c8081283cd820572d976d5606c2c10a7d8dfadd62c3ef737b626f525099bf051d6df74306a717a5cac959c4155a11ef271f8a623e9cc9747c219f45fc24cc18b42aa7bc5be4d3136333e159fc609d", + "1dba06", + "86aa28656e82c8b2b620144102138015e1f171ab54a97c33fa4bf588657a7488942f0f0cb63264f44945755ebcb71983111ed3bca2c717412dba31e33c14a024f2cf8a74ecd0851eb65eb7d8e91241c6811a66d09653f9aa00acc8a479ff80405e4e02c5e65a3612582788c0dba00c39e18b54cd9c3840a24649c0384a03e1b2a0298a5f69007dd0586816cad75d2cc8da50e928362c1504efdcc63373dad1c0910c2a384839d5447e1b1483657ed3e17887e392a374ff3c7128465b52f7bf21c79608eb0c9925813ed06d0cee1a926abb279363da93a3098483d72eac6b200c069cc2dd704dbc2a5f98cf56a4e312d2af6493d9c91be96a9989418624573b72f80f3f8e3d687b91f853e80c19cbe3baaa39e3351f7314119c6aad3b6e0756094bd0443a7588479752", + "1340b1" + }, + { /* i=2686 cDividendBits=3308 cDivisorBits=1875 */ + "0bba0d32cfedf24f6acd03f410fd5fd0182a531e11961f2780be34c00e063d70caba44a485084d7a441f398ecfed3135b336310310a93721443e6f5f45fb30b0d5c736bf17f40ff1f7f98b460514783796e94bbeda5b0fcf5cc9e4e31a79c6aff183e47c7f25b7d3c2f956fe0c9af9ed8fec68eb92b6089bb50e6c426a87f39cf5688e13bec65cac96b562848c3243b1ffe98883ae692b2be59b6f1f2026441db5c21e30bce6396501687bc9871ad66bc3566cdb4053e7f36b1af4a86ac5aa9c63c7f28d3bfa8cc67e31e547e9c34108ededfa53eea02a8b03404028cbadf5567ff5bb0fd45f4690f235eb69e111198123c5fd607c03e9290a0dd565abe9f6d7bc8d0dd4be5f7e1b6e90b422539cc0501f91d747afb55fe3645850f02445cd76855c920dfb4addc8b072e95307f27d56525f7443da0185f168ed9cd59798553722a53f0e470ace7489f9aabc73d36c78efec8c8504cc390796761bb5df97a9ef655d18cde847eee0287ba790e005311a5a94d7a29cb98d334642a7d912c2095a2a99c213ea464c1816006b81fe9c0a92e208c6a993070a9bb1b97fbc6389", + "02a0532fafb8c2cc925a32b972201d009bc681c6e81b82459859f75dd1db6f33b2f9fc9593ed3f88862a4315167f88988c08de46760e2001062c8d68594998fdf5a3e374bcbbdadcc8edb85980742f4157884a72e21a71d386cf7ca18ce1f9a6d4831b4fc7f190a111a7883a7698b5d0445c0907e732239deeaab68d01f72d8c475d9f791cf27c95ee464445b9e6693a375d21508d4573b431a475fe8d01d82baef12fabff800cf1963f9b052d943538bd7d8e40e8bbf51e6013c9c84e1d4d77ac7f852c959f7a6b19f49e4481bea9ae2f5371e859a4948978f8d3168f18b33514583ba4ebe299ddafc483", + "04771600aaaf07ac62e98d1fe296a817262e508612c8c471983a648ed7cb5ebf8eda9340421fe27d09e9acd3634879ad16b3ae96b668eda682a5c57de73b873e681e9b715d76a63f1ad5410c09f41a29a64be3a6711c2451531ca770c3631a990189d4a2ff0a6ee9208aff6738a822e0206b0cc340105eec74f5a7d7437730725811bf3c0c1a6eaea6e29bf075914f4604297069b2038d0164379f276b18e176f7c76cae093a5e2d55779a201e90cebbf36e203a", + "01d3b8c2a162e98cf2d1738b8a9a1c905a094e11a82acf29c49551708a2d47fe334b313d20c37c049997229249cdcb7071552532cbcc071b70ba5bbf6ec12cfd90fb8c8fe01e2c803f7d87bb165648746007e5806cac2f72b90d7942e7eeadd11de2d965de26c211b6e433f331e42c0559a6cc1ded4f802626448c8d33af4feec948e191291933fc8b34731dcfd6f3340c905bb1269a7c466dcb7a97390eac73b5e697a2ab6e2eb4405069abe1f2c534e336bc5746e3ab84c926589c8958a38bcb9d24ea3b0b06a1dac715b04511956c41768671864e0151d2c2dbfc46f8369c975a6482161067840f7ddb" + }, + { /* i=2687 cDividendBits=3005 cDivisorBits=4 */ + "1ceb6faf0a9d03b071eaa4b287f3f4e53ebb9736932d92145be54901062789fa902f6de24d02fcd4d895d6697f3244199ece7d85e87145f7a749946b7bb1db5b70949a4438e4c90d20fd290793ae09de54612a6be06346cfa7fe4acf8519e74f6c28f095b443637e4fe46f76d6f68fbc11e55f38c1862bcd510e3197aa92fc345adb19d1e4584a1588939a6f87db0597506028d60ec9cd63d53604da0f9b3c5cc0f0de514ecde37bc0f3eda93b10e89b91c15632204921e0dabc4d8d63cefedc413924931542c1ce12b08ec741f60ca0f0b6e6aadc29aefbde2703f938b42237e4355ed55fc5a7c3ac3c2c1cd17091f4405e7520ad3193a0fc0b8159eb1b9560ab93339b6243f96839d8965e0d679e69793d2b6f353297178534758150a1440a3c993795ee457726f96bfc7b655651990c874ea981a465d7c19955af9c1c8d5eae20146401f6abf8ebcbcc893edef82c110c57d3ec1c05baa260fa0e7f7486c48856c7f51152669086c946436249822ff0311c74d3ca0b12", + "02", + "0e75b7d7854e81d838f5525943f9fa729f5dcb9b4996c90a2df2a4808313c4fd4817b6f126817e6a6c4aeb34bf99220ccf673ec2f438a2fbd3a4ca35bdd8edadb84a4d221c726486907e9483c9d704ef2a309535f031a367d3ff2567c28cf3a7b614784ada21b1bf27f237bb6b7b47de08f2af9c60c315e6a88718cbd5497e1a2d6d8ce8f22c250ac449cd37c3ed82cba830146b0764e6b1ea9b026d07cd9e2e60786f28a766f1bde079f6d49d88744dc8e0ab19102490f06d5e26c6b1e77f6e209c92498aa160e709584763a0fb0650785b73556e14d77def1381fc9c5a111bf21aaf6aafe2d3e1d61e160e68b848fa202f3a905698c9d07e05c0acf58dcab055c999cdb121fcb41cec4b2f06b3cf34bc9e95b79a994b8bc29a3ac0a850a2051e4c9bcaf722bb937cb5fe3db2ab28cc8643a754c0d232ebe0ccaad7ce0e46af57100a3200fb55fc75e5e6449f6f7c1608862be9f60e02dd51307d073fba4362442b63fa88a933484364a321b124c117f8188e3a69e50589", + "00" + }, + { /* i=2688 cDividendBits=1221 cDivisorBits=105 */ + "0aa82bddd81e5824194081cbc95409ae9d92be366b54294322317f1cd3e0b875b127a4f6ee7b78c1b3e6a684d89ccd548c8de32e73087c9427b218c149857367dc7d7e23d9992b0ac327ddd1ca2a8e830464a9b8f7a9464895945a41bebd65bbd9e244e90109b5309a5d1a8a921da817e9847f3c3dcfe7ae682b9478fd92b4aefb39bd4a109ef04392c211ff23deec8a208af24a9c94d295fa", + "5f1779166aaa21fa4aa9c536bb", + "1cb09d73162bbb7040dcfebaf5858eb36d4399b29cd4082df88cda337e45ddbdad76bd449aa2ded08bf7c56f6f800a89ec4b0e0d01ea24ab64be7d24a2c84e20afd5c60eb6a97a70aa56b750ef05bc9168306f7c5828c024644a8e5674cdff420228130f30ac8f864f351a05c73d42165fa86b82fe8761e3b836ac274751c9a5d8a6f58d47f015552c55342c", + "2450bf7f27be03545107b831d6" + }, + { /* i=2689 cDividendBits=2505 cDivisorBits=549 */ + "a81f4f71a99a08e4f7132bb98d953be38987cd8b5652558767abb03d82b2e4c9cab253abb5ffd1482fd41997d8b5d332032c6820dfc0b5bc3eecec708e69c38dffb7149843e025d1bf891f1fba96ad6eb23d5ab617d5e848ba679726bacd5357f450cbff51f72df79bd73117b98d0ce577289a3f5c06e6c956bc0beedd0e97503c5ca088657717a10148aea4e4acd899eb79fea7edf64929250f9e05b048d9371ea2982146efade722f2e6c04dcbe066056a4e900b9476b68b56068fdb7635108838dcdd1b6f9eee03470acc12e606183de06a5abb46dacb219ed167655b4262599f6b8011cdb8f721b5dbcd3bec08d77b55e13c27b2c7cfaef78f9ce43c8612fc7dd12a4c823b4b624bc5a396c06deb10704561cd7ac1555b89b7a0c6ef4b776c2c02f7b5d0f029d22f2a16a9990db0ab00092fc205ea86c5", + "0e772a30a8ef69e7b9bf523cf9acf8793d7f5fef91fc3a76c6049bc60e2b28907e5da11008c2694bc6350d538310b572f58d350701c03806f1a9752e83a1f9598c16680c0a", + "0b9f4f5f22568ce23d8b6876f8929efeb2357652a9264396b24fec780652a1eedb72d6bfb0147b2cff5236f714bec6f4ff088686140b9906b8da2bc514b52130da1c47ed92af5a22ee64ea624b494b1b2a7d8d8213af5559a8447ab73f48bbe08167b1a441a97bf2e26d104d32cf6840d690eda746df901f5f57f0b137cbac7d7e027c4c1ada0c8e180d6079574f133ed3eeddc053c7b0816f4b3ff11f7383d66da147db512e5f204f0d75713d972cd9add3bb502c261aaa2c392043b118b8917190fdfe3f8f9d30c38a2637aa9b175fa675f7ff2dcbbbb9ed3b6c442cb35176c9b7491f7d53b29bc659528b50b123b0d65a319f7e", + "044806a4f8be07124084ce26eb7320d699332e1b3cfe43cf42b303504bb20aae7a491d4be909b892962c32db392df910b1e38df194919a4119797203e332614c628d5063d9" + }, + { /* i=2690 cDividendBits=2021 cDivisorBits=1591 */ + "0b399917477d6bc55433ba0d8acf07e92410bf8b1403b65d27c1a5b24ffc1281baaa3b27c9bd4b59885e54b4a864f325cd2579329a4604ba68b081e0266ea8382e517248f2168ec30e04033c636c56ad1685f6fddbc31e555f3d903ed641911bf0decbd18b65b037c6a9d35e1b7f0fe4b94eb73ab73d0db550c66efa0822dd9e29cedd6b0ddd7f471ccd3d970ebbfcdff69457fd1f1fc487dc9e18126f530f2afe8d7c406f9e2491b7c6de9d8a4e5788c58e953a610f2b1f16ed6160183e65dd7465ddb65d403b6e308c2516af8dad8e917ad7fa68a808c0e0b29a21109283e3d011d16668cf757fae84425802fb82fa7f3512b937450000ab06d25f88", + "4267105429bf8addf214535536a2204f24fe7fcbea6478b091d4702f97c368847436648dcd99e4d17deda702a8302bd7ae3f3cac34f76c5625b368091ed8b4c3572189440635c87bb55bace5b284cc67a062f82a700a19169a93a231b2f1bc5a8472b3c0eb334f5403e9c72e2f559683c30006cdeedcff92851fa4b4573ad9af0eecdbc95a20a9332e5d60581e473fcf773a43a92756a1cd3a632a34757c38785f1afef31e81f2b4c4823c4c97f6ec918d84f4e49ca1323ef655fe19b628f90fdc4717a1488814", + "2b467fdddd419430af26922763b84ec83bbdbb8216e598adc9828f498fbf051254802399bc550445fc6ab868561049e60e3f73cc432d", + "308b916fba64fc1a901ca8bf3526271315b8e7941a7ae0c8fa1d8c63b6a073d8800449237d4b7daa5d2418f644f25ba17402d50cfb0cda4a62bac98fea27a00bcf4b9035f47f1119015771131a8e1bdd69e71ca6fbf12f66435abd12299d747d5566a32b61a88f3f82e912e85f66bd7f24d381102ad1129df8c5d368f7025eb79a8bd1d56f2f206aceb49f1274ae43f530b68aedc0eceb19d3ff47e42628936a48dce0094d1e91f05c6be2656c6435f182707e5b7cc1259fc334fcd10b25f5f221a27445853804" + }, + { /* i=2691 cDividendBits=1999 cDivisorBits=1252 */ + "727f20c25789c98ab9747425d9e6e63871520de5aa7c5561ebcb0590f6088bad0b699c7d92d982e2cfa7ade472150c542028ba911605d61ad2c67130a01ca18d225ffbe38dde4514cdcbad67f743f94e0da50a3db94b002c9ac24b5cf56c3ee441d10c869235b84f98266ddc5654c7e73b5c28a2209ba267260a7a93f47612d4c47459ea226362a8b6a2a4643455c192d8df7c33e52a357c67f64c9540bbbcc1080368ef9786cb665cfa2a5bb01ccf6c87ec5ca1c03dee0a1e68efdfa740c5d90f37ab1d2b60ec29e59de8c6af590dc843011298feb89320b4d3be9c93c46e2d1b312d0354b135fd95222483077fd46b495693775bdb85b4584d", + "08d515859f6f82bb2e682f011dba942f6aea6c2e5a0c295e43110e29c61cb8611a8fd8fe03b48a549dcdb592ad165bfd695d11e7cce7c1089c66e80d02cb8805aae60cad7e3bb55359e2edf4bb5453e4cc88ca6da0e4211e72ffb248c0c4b98658547b2e3ede3f6150744ba70b72f14a5d718f1dcbb1f16869f6a601c726da34b9aa649e18f4d530845fcabfc13a68bec75b1df4cd1f0d5f6f45f8a214", + "0cf69b511d5e3a53048323e12024664485db3eedec73c5d36dac07e3c072654a86cfdf041b8dd04e70b2606870ea82857a20f51fe61f715708d965890d4787604d81e709b8b81316a1f0126596075fdd686e406991790cddcb23986ebd6e", + "04e5b01b3b940d9355286fdbf69eeb8e34f81ea12a19c36315b1423b99f307f16a9e0719c3c3f19bc74aea30038b47baaf65f1b3d22cb0f3f691a7c2f5839fee087945092e2d2efa97d54f1dcb55756f16192b0b5837ff98a93577b18a877e2e61d4fd33da038f3485524eba3a65aaf833d77309c75585a9200940b1cf3e5dbe0a657057e3559fc6b307b6026695b19e57c0df1979b41f7d95609defb5" + }, + { /* i=2692 cDividendBits=2313 cDivisorBits=2069 */ + "d669d4ad2767c8f515aadd5a797d5d7a58524ecc80b51240cc37a5095695b86d12834fc7f94950df364744e4acb8f6f74383017d09fe843bf1833c6635d6fb61daabe113af7f99d9e875fa2c5f0833034445da884dfff6443ea2d6d2b651c740ea1419cca57a72250360d346fa9488b63ea9bc4c61215ed2ae1dbf1f52bde52e5324085203929ab1014b8be52d0aa40250c0ebc12d946ff1715785b242bebe720857924043cbb62833ec0b884344b4ec4a0cf95b7d77ee48442f44a9490ab37144ffe42c2914b775421c6a423e02b00f30bf34f471cd24ba5fd547a2e36433b8221968dcd0d8b8eade89530fb121e9cd5f88a562a6f38fea2d28c448f5a47b138ae3f148a64d47e94fd9dcdd22884881d2a3ff9faad8230e9ed3aa3744ecedb50a", + "1b9420b1e0a441abb9c5c06eed857cbe87d29da41da5297426389b84d96448a5e5323f477d391fc58baa1815d206e0b75ea4c5376aa5004c1c6c9c3dbf5c1df1a208a9dfeac329ea3683488efed82cf39fda41fda35b9625f975678f4e091cd939cc1d64204d01c8f474d5e599a7f7d54dccc3cfd7ae694ce2d74a0262a3e17b2059581e1dd86995b984e7fff4b27b57aa672b8a5400dbb9bac2747e6e46c1a2f4a7bf4b52d380035898b0031bc6bece555ba806ded164dea0c0c3d3376678c0bc4c459bf658862a81648260e9ac07a7ee37dc8f5494a3030031e740401c0a01b33bdd026b5119b8ac667b7480ab28031ff0f3c8365c8436ba39cf2144a40b6579e764", + "07c64db019a481f784027ae22ee3e5f374ab6ed00f10748bf55d5811de65f3", + "1a087248082bd93e1bf7ff9ed19ee4f63798c6ae49b489c5322125798b7d595cac49ca909b1f39e2d4ec2deb2090cb0ce3c8a4d33b2505f5f1a3e8faea3bc541d6e6bed274da7b159096297ffb05d57344958ae7b151022bc50979619e081a2a2ddbbd48d6ce1fc8f4fecda55fd65bd44a9a21c062d5d2c1a2fa0776612324f232a20f8b4fe9eca8d78e1fba11567b7db15c7e52d440af6b732dbc0be1d2da84a8eb46a2373c5630ded8c1f906de1bff52517db71d8dc86edec3906bad0e4e5692fecdde1dcc0d615fd53b7a493006828ad06c33c922d2ff326947062f4304c658d9caccc8d4935bdddf4ed41c632ac8bdbdf2d892549292fa1f113d800af635349d1e" + }, + { /* i=2693 cDividendBits=1322 cDivisorBits=1139 */ + "02dba4a7bdcd5c7b480dc797f1b08a5b2a77353980f4fa780af86975d6bef43930c5e73e0b68faebefc32af2764508ae384bad9dd8b474fd5af5a141816fb6b33865645b555571cd4555f9c09613a5a074f2eae8d594a631469e144762d8bf30a286d0c43f8c78ff762e9a027fc325954a986a829c62c519a55ee90617c2e7371d6c1692890f6595de42e450cb101fadcf6b629c22887ac8e41f3b2f262aaf5bd1c730d75ee1", + "03348fa08b606b5fca3f957d4829259abdfb7726a0a0a51823a6c77a3d05bc815c5f10d91aea6dbbff26584b52f9639d813271ff5e4a1ee13e7014725ae6cf117c6e522efc436db790b3a88a03ce3ec4b8572366fafcad6e71009d3495acac35e03237c021c5fdf8edca571d780deaffac6674df68b167444d9ca9dd54b5512f4f5fca8486c64dd1340963caf9c692", + "e4425ec1e8d6d618d0316c3497426498029affa4d06e92", + "0128f2b56cacbae80680364acdeaf050799bf73ce29fc3f1843987c09aea10b5c29e5ba1275e94000e32b4045a6e493be2522d56f4207c5d6f957e03e504564f05f4d0e39539a7bf3bc5edc70f1b1fa778480bfe9a4f6d4ed632afe2c1f55dfbd8d342f5c2bcb4201838f2ffbb40faa34e3ec34438e70d0fa3c4c89308534f93b3c7394934d235c72408113c71639d" + }, + { /* i=2694 cDividendBits=1874 cDivisorBits=461 */ + "024c5fc0486e18d536d851fb8a26df6dfd34ca489aa6279a3d1248e162a30fbeadb6a36c9e97f35cd7fc70df39c11ccacc10a8f193debea6f45588fc694a544027cc6a821d3c4063cfb53b18fb70d1ac138720bf3cf15ae3c9cadee89056de71f93f065a5bafc784cbbc128ae3266970c87c7e77b393e51ca9b3b2382d6c3c9e849220db5412a2cd6497d9141aa3e923e469d29d47e95bb55378c2db906d54c5a17ba8a5e5562d7dc839720c82b4499ff5120662bb5ea90cc92e2c0394dfa4a7c4299aa78f64b4f6a737bc6a8e6c3a604bb843f3712a6f0f6ceb98ab726e33f80cf9c255b84189bca2100d", + "13ffd7768d7ae00c1388e85dfe6796212b38e9abedb48c9bc1ca42602a040f134cd6899a8b678e162e35e7351e1a9966f236fbe978f33f86066d", + "1d6b6ba4a51401f2c10a2c7cdec39f4e88f940ffb506e2bdbbf5234919a62fa5bcc76dd628bc2e073403dd168d0094a814c2ae4980f03cf160cbbcadc4ba5236adf97650ed4eea909af20d87bba2903c0a03216228b70735c221915d260c033f86f5a22e7ac3049d07771da24f270760328ddf620ba77b11709000d9ac7aef43fb7ba7dddfe9ded86d45c9d10149f4b33045f35b6e3813cd91dd508211edcc96ff9bd4e0f9c45fe536fdf0662b6eb696c6", + "0b7f926683b1007774bdd43b3f13ac9d93a84f294d6541d702001f6fb00e8050c98865809544a0762b7034ffdaa6ec78e7835ec8ebd3abb739bf" + }, + { /* i=2695 cDividendBits=3871 cDivisorBits=2887 */ + "0a9494832203aeafa7fd70ad79614bb598567c981da04a90f5273c06debc1427f00d6e800d531131081206bfeb86bb590e2df9c26c92fedf04b96225991280c7ff5aa38e3e43e8933f143f2f48afd9fd96a0eb102d83a4833daa1dbcfe94fdeb54159f810a51345382791e08202933287e8dc3278552a3aecb7ee6b15d56221debd7d54a1e50880aa2a657bd790a8b67f15811a20fb89ea1a80281c02def82323c408ef769b3ffc30f6dfa7cc72e097ad769e9f3fc867a09ba43096ed7bc1c124604735f40e12e1f7f7e4d4c88e59f3e396ed70ac916f0041c1fca7f8055c34112695687b3d8882dafa765a1240be2d57211fb2662f11eaa0aabbd80ee8b1edf3050d7ca667539b61a461be91b9f6bdeb176c4b34f0ce974797dbd91412683d5f70eb160baad97aceae11def8250d3e548c58ea1adf0042b10d11bfd338238031909c44c0b6219fbeda5389c8d66d9bd5852f3aa8a8cdd74756133cf40bf868a6768336b6cc6ca321e3a9e05f4a8ea60162e28ad534924c9e74eb8abdad95dc31c6d287c0a14e51fa262f5c2ed564f8d546c47f31d81494208c82a3cdf3234e2b64f807b47da28a0b428679a9881b2b803be632d9a98dfcc0a37c3f2bd11ec4312d3a15e97c36c76d2786b39f30aaae086e7d591de8f56ac03bd96c54756dcfb77d62947", + "23cf8e5aff2a69552e2c745c114db631a71cabbba36197d72b7216579149ab85c46d2bd6fbd0f61e11de65824b2fbeefb28722c0ba79a20dcb7e5bce130461e8542c8004fc5f722195bc36873b6f286b85fbe247784cbca0dd8153f266ffafc0003d3ea5b387420d918cb31da61cad9e6a53e3ac7929d39a2ec637243ec82057be03acfe555337673703e383d5bfbb32e0a110bfd140fd5bf0258502f24b628822f4110f0776f8fd3d24b83980ba47f46ca0fce11b228f5901abfa72f6eec269876308eba6d7856caa3d348472d1eb9f0f4c217fdcd1dc5daf60b3494db1f412989b33d22c585250374d28bbf541e30ef46e2d26a2aeefd55244a23e69f4cbfa368eec00dc3eef4f04a1bcfcf1d46966040ced824254eff478984e9c0744d773ce18c5ccc376cbc30c660be9185039d09356f5089e44c81cdfa2b3e01ed23a098bc519d461507efabd7a97c911a7f48f09753d771bd825fb173c0a313418fd80de85f4d68fd4348e43", + "4ba2cb78202a90097937e60f577f1a0fddf84d18c99ff960df38d8ce0649ad3442e50a0aa6fd03c2cfc2df98b53ba8b6dc9c11bf474dc7bd47cf4e07c68990f110ee92127f76ead961574239c60d76df4b6ccf5bb309dd4179269b162c8ceca4bf6fc7835efa8fc1596662c7309618f07a1630de54d8481aec09cc", + "22d8ea2d84fe6eaa70f87083f1bcc827711c45d0ea8c6ed458b754c5fa185e69a28de354cc1c62769c3e4dba644dff2fd51e3fc9aeb67e10a37b2cefa2680f52a6804448f0b5bfbbb194e83acb14306da86cdf7f3f73e2a2d89ed77143bcacb070e23ca7aec7869be52ebf293d3a909df2fc7e4a8054ced9ee8714b70d7a4d34679d7282429b7831dbc1870ace6903e52516ed49a1ee3ae1112f5d276e4bd4c6bdf7c302d374fb8726355d98376112858a80b3c2d9fe82eb83b10b3bb68c8737ddc0c2609c5e3cc2cc679f7d4e9a097e1e4ca8aa0351d201e02355cbe733428867ac01e786ab3fa6ea22e4618662c89e7d7e6842f8857cd26fe5c656167fefb1fc6835e3d67fd800068dd07b2b804faccb731585ed270e31a23ac47408c877f6ae9b8bbb978de04cfb164315efbae17505f7813b2daac451d40b33194a25d7e4ca9693793b989441beac3d25baaf8fe378ab68fa389b37dde62540a7937c55608fb5bf522a913070e3" + }, + { /* i=2696 cDividendBits=3638 cDivisorBits=409 */ + "16c4b3c7b1cf937e4ab4c153eb2197507d7e256ef4bb5eca0f93e293bf6e584358d34bf385db5184e3a8ed1ebbc97c8a01ee99892eef909922d9301567c654f3cce088aea53ae2721b1ca37cb3320025786fd930ba561793e30bfffb3be2d83308fc59cea8510a26c5702143dd4885cc8b886081038aeff57a9baf8062a8d5bc5c8f5a4c6666285000b031a2ac8e6254f63419b1656e9f1ada15abbf43b3c8d0b9e997635952d6488257b1bc6a59d1643580b99c9e9f2a21ac9bd7614318a0d94889be1e03a1d7f52b503557337c4d70da6ee07f582d501d796f1e6f729681880e639a712762283abb01c7b8099236e30c822027e919543899b76370262351179883047613b6797d924f850904f8fb3f26a1107016c0fc1f40cd21b4c500f8fb3b6ddbc9251087ab5e40f2e3b76bfd4c7afff7b967a412a772196662217780661300fc170dc22261a30f1099163be802f3bcd179f8c94081dff6c6f055da0b95c168f6b0d7d7b342cfcf7471e043c4ca6909feff4cabc0f9fb03380ac513cb752e456ac5086d4176e759efaf7e732d52fdeace9466834d32b721a0547f55b713e78657dd89785e56b50af088e16928c3a188ee5bbb5499efe2ac98f94381f0582b263f3d468ad4", + "01440262aee9bbdbe31945f20c447a1cf3ae043137527def8cd7206391ed2f162a7a7da3bfd0397ba413d9b1266865cacf87f4d1", + "11fd430e2a3ed845ccc1b3ed9cf27208c6e9cf78af64d28485fae78af019a760fc9aef34933feddf2acab710b4f92ceb5f5cd5a5ed870e39c4fd233ccefa48d75c48dfb96626c4da538ea18aab7ca21a34ee380694db8818421a48f94e8f2fa3bf9e2b346281977c09c59addcd93ba9ba642466c39ddc49e0b64f8a73d231c17b6cb534e1bd07810ca9b6e32d79108ab5821f73f6b9d6304615f939cdc926b19c4f693cc52efebe590a046094004cd7bde66ea691eb1a8e7624ea836b0e4ec77148b557472ccdc99c95df7b4c74e8bfcbd4c11035e0d875ff7eb25ad5950c0f6f4dc995fd350bd03318defa6075858575ffebde998f45266ac4a0de38a326cab452af0fd00c93c8c071c4f0be8a361f3771bc9a817a638ad7c8b9fb33042c165b446fabe89f43534cfa67dea5e3d5479964ccb8335200347f5adfd86a8d850f96956298bd729dd47e0ac70aa174d9a9703fdf0e5d27af578003053ea2e271aa0909f3a47248e529cf8ec77840b4cc9e3e0e907fafd36fd651ebb4d6317ecdac91e5f3273bc9ab8f0f3fa0fc01231f42ba59266b4", + "c72c9481ec79442b35ceaa2d68d3f3990886fc97f52f7f3f7eae6affcbcadfce91e888266ad6cb96672012f9997585d1f121e0" + }, + { /* i=2697 cDividendBits=1315 cDivisorBits=1283 */ + "049838c8a5b6fa6192a85ecb82e29cec87a6b00dd2c864544ddf89660f4d5abd569d2f9c29305387c8bb46229f9b03a4c4f56bc5eed9b7120d2eba03fbf5764e77d531a3ae03df782fd17b8e6737d9243847aa189c18a183de35dd51441b37283ece6a02e1489710d6751fd38e6fdcf3a82e691c01eddc36a53bde4bdf7f3146879328b16e55a96d45161b6b6a292a344ad9765cfece826e8725e8fe69277bb136a4b11cd0", + "01bacecf57301d13942bff1e77cab8e7d054136fc7aa815e59aff173e02f0e2e2780d6f9d2988ce9f55486ee7c5ef8936244bad47f071eff95da6c427d9903b8364ef12b0dabe331e83084989d647be83b5284a0d2116c075694fcf2ae929610b3099da5bc437a6dead04101b625391333024a8e5e2a8da7eec6d07bc86e356768ecc5a7b3397121820b0bc38282f59bc27dacc7c7210640fe13a4d02e6153243b", + "02a801fdd9", + "01939f09ff7aedee81254cc329cbb6b62681c2f36ce3eebd6a994d1c269a2ae9ea262bbd8196209f205031ed07311c3089b3ee0a517716da0ef10c57747a15e85346444e45a2cb62bc6119b5262ab40013742c91abaaf40e052ce9bc749c7720c39c310e1f1ca01ae6d57bbd40a7c5600c9e90082542cb68600d9cfbd3445b6544931a6c22083f34e5bc9a968ae2c0ae98ce1d8d6fd434f1009c562a271e2e17cd" + }, + { /* i=2698 cDividendBits=2483 cDivisorBits=849 */ + "0299941eba810284aa7750c6fbe889d7443c7e5aebf6968c366a83be7e8ee22483b0cf01ec7a68a1bebda98ccf3ea71eada806ee7520b46d572f0a9c65e4afceef6d8c1c5e0f4f1d4f5c58b0fd165a1ca409143c21370126cd30b0ef241950d71e10298a7ab7f55a8ab4c523ea98be0838ba47b4e000c212a5ad5e1847d8d60de7e067dd22e6779f549c5e6033b1dcb0098f7db3b557a5f5bb3672a7d5067547698cd685a28e9e436aab9330c75e2b931e0591c770b6646e5126360c5fbdad655f111137da8ebba0d3808c361178c5c865c991426c92c0673f5d9a8fce6a9f194de117ab3dc719f730989e615615f45a94670c09e9e07b90c109e11b24b255c8b40496d7163eea935afd99ec1fa8a19bb23c96c5efb57b6178b7ba6ee7d73e8b665b860838f96d0e5c1f00af74ec23dce03d69aa74ad2a", + "01798d1c20a97ba7dbd04b8684673daadec51350229062f793dc3ff314397e8911f01718f108e03561d069face3ab7b57e7551a1cdf9b98672391a2eda0f4e7b08c441a5bc2242be83c23a287801d08a5a8d9bf7490d94a4ed3e08065c6375995aa48a9a296e75fdaa6526", + "01c34c4c22641baaacb8e9595d881606de2495fb11054a6aeb9fce3d233108a294c90da760f4acecda11158e72924bbf72db6709cd1a53609d4dcc7dedcd9e902d12126c0dbac5d9696dfae1f8efb12ace6a787bacadd84d850ff5893ce22fb50c7d7d53c522ba4c65749956f64f77a6746a66147060f0e96f826724491e5c987b2371b8fc55fe717da6d2b6e9e7956037b50e0d11fec1076606cf9822221dba480da86c9f7c3acae42a5c039f074b793f544beb89c01c5aa374f3497444baff04867658daed4cdfc96410ab96", + "ad232546661bbae20f815599767e45032d5b54d88b394d2c23dd67de35a65d2535acd461953ca9cf1433ce51c1924ff069923795f70ecda94cf3e0b345bb7a7a486784d1a965d0792540838215035ae35477597fa959dc7dcf5875ba144a998c59050f2cc4d70cad06e6" + }, + { /* i=2699 cDividendBits=2458 cDivisorBits=1873 */ + "01e9ec373ffa780a50a4f2cf5ed52f601464085fc0f68e8514964a9b5579ae72d37b01f7f6ee082b9ec5c15bc2357b487367aafe53e74c09d022d8bb2949c8969f855e6ea55cfed4671fd231af0f7f9b8226a6507b4de77f09358c07c638e3b76c9044c73c85cb5cbd0b5edede2dd3271e46e394ad46db7ee479aa5363982dd4ab76aa61c63bf20d3e3337201dd8c9af0a7a66e17c65a5e6fdbd64ca095e650ce1ce07341e290dce7f807cdbf266baf10db5f1f921ba3ad7f14827be7c50c25aa7af288863f42156d46f38352e93cc46be2e31f37f24950d1d9be82021f67d5a0376bfbca6a474cd79e53fdf575b08a1699595d70313c26b391f37a94611c89be2021c9464d9913dbca7355e3238f85f2a57feaacddd9151ac7691770362fc7246d86c6390407c55e59c8e77b5e316acdfb92644", + "0115c01c7230fbeed51f0fd53c813c945b2b05a89da557f154c1e4e4d7d8e90f61f826ff38295de0447ccade1b26778ffc00c3b5266ef3a83722245ba3307ce6df6dfe2dff67ab466468ea13f61b83001cc62764f14f9edd491b7c9cedf2f8e333d979322b12bbac94788f1fa39fade1cc97a87bbba24152795839093af56c561fa7e0122598f4a3c71cee9a5e0c0a5267f2c1dd7a6098940cbee8e8ff7e59846dacc4d37e9f32047121daeb9e021d207b16a92eac283dbe81782f0e4167b0249aca4d674d5c78b08b260cffa7fdc9b8e1993acdd751f2efbd0f53e2e34dd9a78f16a2d1ce1e37c07ade10", + "01c38ea66f059c98ec63e2984bfcdd9492596d0728d9cc5d3f4f6ad46a4a623e89cc1e3f147459eb2728e7bdab177ed813a2f7683218755d6e2aadd8b6975f65a17e858a78aef6ef94d7", + "961a164b018e0ddbaa14e93713b5ae2a8d77379868740a2debe6b62cda698fbde79a0999a510734848bd2d488534bfaf92a21d85418929d4cbd689d3c559dbad34e70582bedf898536b41dd89f92b88aa3da53f0fd4c6e7b034dbbfde7b1c45eddc4747888bcd2109e62123dcf6b63740701003bcc4d56214344da09b3f5cf47e335efc8ca06c0a4d4bd020d7a20a55d3c6890932de091af09ecc6050983a4dcda8dc85bc7d0c15dd512abf920f7f05891851d8b47969edab3a547865dccdc7e54112ad91d2a57fc22cfa2fbec1e2597992e5a4251df472c32ab73c59fb2d3fada5e1f12479a7f3766d4" + }, + { /* i=2700 cDividendBits=879 cDivisorBits=650 */ + "41cc91fa1e4f2b374af2e963e7ed456780fdbee71fee78c1da9a7721c1c2823d338973ea8ba3b32f81587ba9749e9b865876ff235d55106bdda5c53727fd68c8a6e9a48de1b3622b85ab27532ba1fc2e4af987794fceb0de04f58076b864cb3bfe1ecb22eefc1cdc9246ba8c6168", + "018e951128a4494785463dfbbbf2ab3b567b550136cc22e49786d168bde090022f91684c6ca30d4ba98fcc86a6594193e85e8574ad89fe07a732d35690be92486a4b2597230301a0d608df2f8e40b1a9694a", + "2a42deb265b45abdecc0613ed7331c77844dffbbd206588bf885a42774", + "0110aad9f8b2f1c9a5d7210cf3e3003b1b3f6e4cd60530ad0499eac1b096c2be3d6eed685637eada370a39ada848ecf15e40735f047fa3507ffa98f554e2831c007177268265c1b6830cf92c3ffa855665e0" + }, + { /* i=2701 cDividendBits=3573 cDivisorBits=269 */ + "0de6db47d463ed64277a42dd8f0a9c3777bd2634e2be52e82363a794fe3a7d02a36c0eba620810e105dd21df15160e9318b36eb0fc3a0e4a42031d0ea115f8ddd6bb07873401a0aa16327975c9f243c836dc1000d470c67a0775064a4c86a4d641e21bfe4b9733fc4e202b3b46483403d084081737bcab9cc3beca62171627e2f824a6be75bc3b86b0a2de738e22aea9b6c522f1205e156b8dfc4aeb61200fcfcc4a4f06e9120a1a4f2d0c8d6d4d285cbc706fb983a4daf01ab16e0f665ba927ede8730678af6d492239d460375452ddf258ae4662717cb337c67bd2ea0ad3b3e23005d5e227beafea661e8c037d095e3ce53dfc936cb3310d22407f47b258b5532fcdcd874653d4f5bfa831a893162ba5ec470d10a6e013892ee6aa0593324dbdb2dc9b75f639f173fb2ad009e9ca8a0081a3ae36df6caf023c9f6567b62b285bda85ee9899c51bc765051462042d551636caaff541c846a481af1381fae10e8bbab6ac987c4bcffffecbc616e67db5f790d87af0dd7b1ae99b91b144d392902f15811f3e6e5d3411d8fa8a38762046a551c4934091527f5e63a75ec55e4d9ebfa3970912fcf6866d442d990eacdd656933201e53e92d3c66c5524fb5ef08", + "0c97a3499e9c3cf2a535aea7a0e4912b64b208b948b22163af7d95821091433f528a", + "011a9ef04d1f5a26a78124cb1acbd047a2bfa19f6a16a26bcb1074e98cea344ecd33c2b645626c5ba1d080ddce58b6508e922ea1e28197cb9b8992affc15de676af10cef1ca2e3635e7a3a04b855af19a23bf8bec54176e7d37eaee7e4ddf113d37a66fecca45e3a5b7aa331ac991baad64bcddd1dd7333e4e80aa64c39376f41d7358ea0bfe1f65ecf9c28030ae01a885cc3db1655fd634846bfc84aba639a781fdde19a8397aa10f2c5d4c4abea54460e75dfa15688131fc18951d663bad730dbb6ff0626849316b248ca6df7a503ba7a62a1fb810e5713723523621f9d051ad229b637b14a4b8b60c68606313e35f3e85ab32cb478e4c50d967969bbd4bcad0c07f294ed80e478a306ace8883869313bf5d90f9b4d696ad8f508ceb17e0d69c74271b2e588ef682f0257c61197da07f3b883c8952f59c5b8bd206b864cf4213c968c623980e3ebd5f41c1eb8613845e28e39432a733a5a65931deaf0344980f67ed2f9addcd2150cfb2aaf66b53bc480e34a7f09cda1fb397a0b89d08176fd57878b0d00b4947ea0033396c48c47fe7c153c6443753124f894c86d11c", + "081567516af97f5020598a568ec9e8d57de388a8f665af08fa07d3969c08162a3df0" + }, + { /* i=2702 cDividendBits=571 cDivisorBits=429 */ + "024a443e67ca8d374fc804697d0a8607db1cc6e60b561891669d88c10d0844bc4861288d354aacf4cedd928542e2f1d4d6be278e134bf743df4b783c3bc74185c6c98f049f2b31f8", + "0d7c747602a6b1a3192173f671d8877b1501964a4e0bc1e3b99025a5be45c9758d4b96a33109f9c7450352bc908c342324d184063e4c", + "2b78c459573c413ae07ad5869302a4527fa8", + "0b8fb39f4c1217ce5150f527b801e1911107dd5fca8e9bb9fee545ab74077d900d86d17ebf0c93f743884c608b09a72b0a863dd29c18" + }, + { /* i=2703 cDividendBits=1994 cDivisorBits=840 */ + "74e7d1b1e948f735f8e4eac5d37fc6970666942168cbbd04130f0a7d3b39b6d611745917f720129db6221f88d2ae4c2a726db92ba7d86861896c475fd6d7940af5e1ed6bae87dd295a1f925117c593c50f36bdad847fb45d8e0ddfaad36dd9cf0ee1810c23476b1270596ab4527057987f7ae902feb0803d09f009eccd2f4a95d8849e27cfedc93abc2173449038dcfacd90e135cd33c46fc07d141acd73b4825d893c67f18eab9743a0354ec91e7a7dc894005b38b2cfa7a2b05be51de607cb2e4cb112874be37ed598eb51f0e18b0149aa4a7044e1cf744b414fb883433c7a71e794a756cf12bcd49f22b650e27370f1369d5df7fd4a9d75", + "2871f2f928ee937cff3a516da088d118bce2ce922989a064a61a478fecff363397bf275e8f77167a82f27cdede4da5203ee7c38a78523f944854687a0623254b815554bc68edbb3f309a7a9c81f02948811be85a65b9fc19fdabb8a52e0f78fabf203e4da6ce7188f8", + "02e3f6180fc5c1fc68d9b0d272aa30464ce422c7e95e9082fd0c21125d3e93c1cff3e9829f07f52635022dc328fc0717d1d8bcc4a1f2ee8de49b9fe670b2055b56796f15fdf86b0995107f6d97af38e7989365c259d53e25b3b0e0eb582a6796d413e1e571df040862591cb1e2be661bc3d4bbf4e03caf8f039688700a1a5ee5f553983876f382adb5d8ebd3e562cde035", + "2206472198211d8914ec99e073d2a1715a0e78f53baee91aaa63221e27f215b6b34388c9685a3d069db2db9a1997d8bf7c4c48f10b4dc27145f92221d42e810ffe3726c43453679856971d85a6a163b47457d1ad01c30ba4e83649e5b0ffcaf00ac10ea09a4958421d" + }, + { /* i=2704 cDividendBits=3879 cDivisorBits=2588 */ + "13c94ffe6cb87e232accb2023355896a4c46cd18ef8b6ce51a667c6e26582cdae764711dc30a93560d3401bea6c311f1e2127d84a5300fb992e8675f8b8bd840027eb4530f75c40def53040436f8b38a57cdc7d0c3302c34ed275bda1c961abc70ce23b1f348fd1e898ade936f6353fb4be7d0b897c3879ad43b242007a5f704d88f90071bd5519740af33ac4ac95a71bfb8e981a83da1ab228bf4eb47b91884c34fcd246f97dc2f4bef2e1bebe34c6a892598eada44ab0e25891f771f8e1a9e9d10a8509714b87747a7868bf16df570f0da004a53b33f01263a379331a8ddad305d9fcf9c3faf9d115ff6f8061325699a6504f1da2fddcb9d390c12c13ff29367df9dfee37c009029faee467dcb9a8fac7e0b486dba34e1eef14cf32b3bf0e672a421ed22f8dd04493bec485b636382f76dfe61cdf21daabd39a634fe5e819e1454a5b89b56c96521df02243f70d98a449df1c33080c0505853d2e878c729e7d38eef84c05e083490e2448f440995aa1d19bac71bb1355b7c232e057ef8fd28fa2725189de0036f91f8b9b44e93379c443e5f21ed6a24a6fb9cb6c8456c0114ae47bba10f97a30a0e8a20486f3ddb8101386c3e42a36e9c10895416c0c9ca615075a4e1680bf1bfd06f127540825e076217d46918a4e7e8408542834347e0a77a9c4d1a08", + "0508bb1782542745e15550c836e8e21afc39cb26273f0358c1dbb89e0dced578de9ab4cc33387162271b9c45bd2b9b51e83cec55648b17b95e629c621c5bb79867977ef3ce08f31114094622c3bfaf2bda4e1020c7d866342d35fc841cccf53ca9e5799ed67021e47c3b73eb6785319f0c3966b10ecfc7674e2d5b58f28a4fe9ab2ad9fdb1814fa298a7990bc353b899b3f239e064e82c60bfa4fe03433eca2c6402a2d78f33f7fcf454ae334dd2a20929944cf4f3dbb86a814e0fc5c357b63d1d2ca4af62c714a269b55f4dcdd3bb12426ad4c84dd0b6d142b915f620b630fdead04c824586880c3eaf70105031a9f55588a096b166744bacc2900efbb732f361a8f96163aa3780001de6602a8617c0bb0fbf92561132d4a7ee3692584ac3f67ad2fd7dc3c849bda2f331239ccb2d7b954854683dba51796968751946c12c2db0b973f3", + "03ee330223a44b1423df1a09145b720b48ee621b07f7102880300fc00cdd774313e69cb3645b7f276fe28643037720cb802ab1486a5116c6f1d1333e76419452daefe55d3080e4312f8b7cd9a270cba556ba76a77260c325a1e8907ddda00eb197d06dec353fca9b6c0c3683ea3a9d682e77162e9210e4dfed93fbb44c41e291230d39320968100d6e8dbe1c502c80324e78330a65bf4aba2df0883c669ebcf96a6c", + "a27b4cf3a5939ba02fec4a6012e8fba063d85362b4433bdc0167ba514e0502c3c11f1550c1b81d62eeaa2f0a140d6fa6855df69fea3993f43838c24b0b2e0dd09df5653afc0aaa060514392fb52053c2f4a61a2a9908cc431b3b498e2ae2b4013ad37b11b8798610ec20147cab8c5a5838f87ce8ab51577f098aea43dc6289a5b8e7c35d90d8241c188398c147da0065df803ca8482f2aea8ff63244133effad9ee284e979d66d24627c4a6b72d24ab540941ef2dd70dc8df5b7a8b7ab02259956ca4fcb09d9163e67305d88144392b8d6743955cb1b0a39b97a6babca18d6951ae0631c23756c28e3f54c756690290771716e46f2b02f538786c937c91e0bba4cf67f41d1d55b0dc8ce8be03dc47acc4c0445b6782ca41826dd0867bf661ad705f0cd616725f3d4ffa62be29c71c5b223378ff1ada3cb4ff1227ab041a18508b29184" + }, + { /* i=2705 cDividendBits=4073 cDivisorBits=2134 */ + "450c9ea062ff22acf11003bbb8102bf26c8b86744e114dc4bc67d1c59da693cf0571f5867f44285916d5e87cbb8645173a78f65f99b93c08a804274496e52fd4a6f6f1d2e7b95cf7ffa6817538cc1de354bd3ab5c874924dad77d10633220bad59eee59cdd752d31292dcd75aaf2b7efb2f7faca21828495ee5d79d99f9c2648fa45467633e1e9f808743c85d175c91aa3211be6a50932b2a7e435c2e1ac3a775e4486970b08692bbe3d730f7f45aa443aaab06ba86edbcffc4176e0356799e18f16ca112981e405fc8840336d5bdc813951924d39a392f7a1127b6405866257940126707f003336759b9e7e026f671d3af407c5205a13ca7f084e415758f452644d4db5571015936be3c354f5ec9499b553549b10161876c29427cec365a9d050f3cf2b70975472f600e472e73435616146afdf163e4de92f8f4b1cba41aa080f51eb5e3ea23c2f8a0e0a6af973c1304a5a565dfe11db2a6a4ff3c9005476abb60eb91390896cd9b29aae828b398e0e8d67b1ffc652f6038ae746bfe86e715c98dacdaf9ed58da30d2f26d5eef079104141b42156171c9edc8153f30bdc45262fdf54e7dbd6204b2c23dcd26407f34f35c3b74a408b52bb402f83260504a9fa1357ae4b79327b4b3a05d10ba46015adeb3d0252fe1773deb2ebd304480c9d51b4ae2773794e721062ae262e0c49fd2f19c2194bf9e3d832fbe6a1ea13", + "069cd038549e72f514da300cb79c1a1c3731c7f1f618b2bc8d0718f7be0b0e5469702e5613b556d1c7adb1e7de3625dac2ed8f39d98a32d79e878283a076936020e4403c57eeeee25d034ed39a4c49a5ffdd3643ca8cb63ba0a6f6324720a7f90fdac0c53965ff3f31755ff31680c49df412abbdc33c76a873404ba1d6f8b04a6332e807acb1639bc1d760f56f6b77759449367cd17d6858d39146e25dc529b11b631b2d1af30e6e5b51c55246818239b3a56b640adffcc45afeca7b26f2f860706099649e8596d0c47392621337959ffe7918876a85613c52100e8a5f607c388e81881307e6dfdb417d26d932ef8e95b060ee3a7926a7c2565143b5408740fac2f54f7033d5785e1926ed", + "0a713113697059c2d9169e7e5f7297430b2df1d455f9b4ea39359c36cb93f781ad0054548181d518d090293b7450e1d548deb5ab808d697c3492581cecd70e1961fef8a40f54b08c83117a74fa99d27b5296c73c8454cc0a56a70fd85a118628e73f45068952442e265fb3d1b3d0d15076946a3d7fa1042a798ba5650adb404d13ee622a2e588dfda7423ecde5caa7f8d463a35a7dfbb2e153f5fa8e457eb6889ad3bfeeeaff542ce66af0e53972c7c9db876f28fb03f70a4c067cd12e3d224004791485303bc8f209323f90a6823a78680baa9fb8bf7515cf548113a0046859b5f0a0630939a862d5debf4ca7e782e741b062", + "02dfa67378bb00477a23ecb8559757623a98c52559f34556e76e0238159a194a37a7a98a395b48a55c916065087e42d1fcce15a79e121db256c41180969acea36f8da46a7267c2421d762787f69c905806d11da80a61b68da4c249d7f19fa461269d642838ce3874dc28fc61e315add5aaee08805bbf17d74dba6cf1d20888d9308b97e8d3161d5467f51ebe50806324006ead7db849367197d8c045cf789b3cc03637107beaac8bbfce161d258e44de5bae9418987eb72c7a97c1f4372e0d8251eeede979c902897ae553b862ba4a4d8608334d65abf924d949313d85468886f7e1aea51ad63801a6c66c4ce41c440a34e3fcccddb08a36a9f163f7926c6ee44914d241448459d9111359" + }, + { /* i=2706 cDividendBits=1777 cDivisorBits=36 */ + "01d7c14ef244d6060e865cc3f9b243194f68c8ccba51ca967e563b740b2a50d197ccc726ed2e1b99899541294c6ff847af5fbd3ac374e6d7458894fda7b9caf8c4a50281de2186276599e1ccc279c4f3b1f527ffdc41f9b886a34889d781ec6a2cb6c811e4773b1be74a6caba3623cf6fd6f0c026146a57426e260a54902da2ac5e2cb50faceabb50ec6f971e2ae40cf9fa030908b699deea472a0c9daa483206fe3c362a6384fd3a3b2c30737ade36ce3ac3341ebab62647bb9ca465c6719d7845ea8fb8ed3f9fc418638f9e9bd937572d4e3fa4a6875144f7307a49d864a", + "012a9ec7c1", + "01946ca537cacaae9d7a86f2037beae9fbad11fdb8ec207dd4886064c6a21d8919c677a2b03bdbed73110de5201967de2dd56bb51e1bc55ea4bbbd9b0f8bc8c5fd6acf509c17642c6bf793662cd4a914d10d4c1b7182c15e76ee884a6dc8a4310e3557ba0c397e2958ca326a03b76ec41134d6f11dac8c1fee1a98f8dc4f1f5255f78323eee4e0c6b52370804b05812e7004c7c15dcc4c9559199abe161b0367aa017345c36794f74ae55e553f691ee9e9af1ba56c4c8d191fa2ac1b596d02f1dc744a4f1db113bb4ff606aa534a84903f351930cec05ca4b50d3c", + "b7cce80e" + }, + { /* i=2707 cDividendBits=1902 cDivisorBits=1784 */ + "2d6e2c9a4e0a13eea74a42baa31dd5a2f5962998bad455f217dc87899c6b1cbe76498a7b686e2a14c7fe2c8ec74bfd0824ce484df19865cd752812c8d2e3d307d5af0a7f0ee9ef145389a3cd6482f91f3a656194ff12ca98ecb2d22b8e2967865c5ad188424c9cae24a6fbb6d364008327bf89a268f1b868115d011df6100598cb163bb34c4fbf1751e471604e983cdbdaa313ad715cb7389c08efee082261c0ed9552b8aa93c0dd14e3a60950b46ac976962e769081a9ef25c914422d20c2b8b98358ba718848b00ad325c9983c939e63f3ff0176b5b99704ad72265910099864f05fe1b4940c870595a6f136e3", + "2c3aa697a099ae4250ef68f9d72b7037f6c96c53a113895fd508096651bd4d9b7d2136c7fd90f181dd3df1b52d6a3fb26f79a9f167796e002d049ea544f3cb0a042f7ae6a24abae9d33591a38e1f48ac952e1a957b0b1cb68f074477dca1f268bbc98519c84f77e825792ddc30e0c29fab9fcd8daacdae4f3c44b58dbea0423b2ffc9e40af737388fc442a4caf8a57a1714203622613f102ada6a35244d289028672fb53eac6f58483c143a72cc42457f0c30053f0989dc51910a81b0726cc5da37a372e5b0bdb71a107e1ac70d89b232f624f865cdcdd6e9d822da9140f43", + "0106f3f59b78677c8e12614bb638c801", + "12aacc95d2145e7c4a663d365fd2e411bc75d41ce91cbfc9a1703ce5eae4420c9deef232674cebd534e59e4fb862f1934b660fe6b01f5031c1bed91ed825d3ee371239599434a7c8fd35b424b4c77c5b75d084db0cecd5d937bc56da39e70160de4c8e5ceb8e11aba18293b68022da7a1dd98a6d6e41beaca8eae1711fce3a19941d5022dc4de28e30d1d021c4d319759f070eb26869f65bfe2e4e3878f57bd8212a334d25038df95e09c4d54add18ed1e62fa14f388cf4f376359ec499081e71ba90962077efda20123cd00a0c453d72aaf584e28de8540a5bc725948cfa0" + }, + { /* i=2708 cDividendBits=1682 cDivisorBits=1121 */ + "3da82bd837c5050c2d0e406369bcbe26c90268b9df6be745a5a5656909cfde1bd9ef3fcb945ec4e4739ae944914e894c311119bae034ce51a2acb8eedbd977be6d9081dedfbbca637ca36742cc38b5960e03737ffbe13ceca8d9713afcab8185f0acf62f80e1c6dad0f566681d95dfe39c959bcdba0a94ecaf20099529eca93f4fb598ba349488ea0bee5216b9684754b52d673198030c85a7e6f46556be82c6980ae0ef37eddf5d77eb146b7a2fa042bb6f3bd71ee11e8583dff623beb12898ff397afa99c9e0767425440d265a773f6131", + "01239aa7af432df52b6576b3c4309d87adb3dd30c78cd4e3f2dc7c34dfe6066f711105ae0429eac7443d495e97111ce2b9a144aa48e7889785ddce4cf91a47eb196ea6ba0b8ac29fef1ee9e7107fd19c8aff5ee91ca83049fedc74f49434105346bc4b609fdba001fd122bf7c7ba9755ec48ac07b8a18da4030a6d2832520b1b676bcfb49c4e5e5c7eb4eeb6cf", + "3620f6d0a797552ccf0a7f17ffd8fe4a1ece782ddf7425cb294abca08b5d97ace2632fc2d47bd85b94265618c55f74ed54c3aca4561895684d7e2191e226c9724dfc930805bf", + "38ab939ab4f9b3f068ffa8ef0736ccabb4423911d1aa448c43f7fb108eba51986e8f9d280e757de32d0983ff8217330a12cdf7d6a961de7c27451abe6537bb92c8e2f4620beeea2509c4cc22ec5816702d20fb5f75d42f063efd148fce898672d4b4d5b2096bae2975b61687ea5471762ed39966f1b7c5d62672cd22cbc5a10bf5d2fa3976d6b9163c1af1c0" + }, + { /* i=2709 cDividendBits=1649 cDivisorBits=151 */ + "01313cb3a394192ff5d0e1751d471b512fbe5d875c0c00770ea3c2616aa149a529b8d137ab13a3822a609185ee8399e81f2cabac031024458db247cf4090488921fde6d76996c5d78f72af3c49df9221e42279b91c39e59ed931574485a072eeba53b1d6a2ebe3225addca026247aac338b74dbb678a862db7f032cbac3d8f79c30bff2da97bfa7714054bfea97524aa37861fe1edde8f666c298a347e89d5b32428f1797cd60f4df3f2908e7457ca3bdeb6dcee4653f9b7b3e7783bf38a0035ed905701f882c4e3070f9760a3356e", + "2a183265fb2d7e8bb80aa34e84ecd81704314e", + "074050baa380b9f44e266340e84132fc6ce1e3f2a98b7a02f32bf68a25647b9979f2b605cc423a9e139b58c7eb577dd632996560e86309d499e5f877d2596845cb75f481a942ed9b2ade3cd9c1a167376656f11f779d14a34ead074b59813aa55d61949e01bcf2b4066401337bb03c48616ae814bb9d33e025ff4a603aa2ab65fb1329a7cc2bbcc298520a8fffba65b8f93eed03ff91aa946a06efc3690f4f57b006f59a9da0670fd6e4ed123c1541e36e4c55517732579956525411", + "0ddea2f4789c9d6fe17ba1880aac2a7a325740" + }, + { /* i=2710 cDividendBits=578 cDivisorBits=552 */ + "0536866afa3d8e8f9ef24d4b06a09b96d694856f347c7e88db56a15fc572a94450780b39544c3462f63d2781f7a7570b914afa58b2d6772b459172897f9bd786720357fd1ae5c5a9", + "d655ea07b21fc0244410df934f409ae44a7f7b4fc082765e8e36d6256061134d591bf70ebbd4cf7d3109136eb7c2c6c5e11908b1ef1f26fcc4dd4d984491e0d17b410fa827", + "0639f1", + "06cf08e84d19649c37e87ec4f72e300806de217e7b7784aa439744bd77d0fcbb51a60886507ce22ade8066a1064ed4fca9066dfc3556f8781d510ccf3925d62b1a6dcdc9f2" + }, + { /* i=2711 cDividendBits=2235 cDivisorBits=470 */ + "835fe15ba52e0a38aec85d072d54c342437bd3f2013b6746723a5c079f0b5d845bdaa9b9c7cdddaef5aa70199ce05d6f5318362a3c83f38c70b5267f06766baf986a7d4daab51d4ba116481ecdf6f19e239f3703cd28e530d50b9c1271e1c856ce4436443c1dfd98def4104b7263cf0bcd88c3b04fe63c8a9784ae7080bac1283cd782ff1aeeb3f06aaf20d9f68a17e9a3b48fff853db368a6cbd8659262ba341032e9811dc3a31e8312c3e6c96b170cbe263a340a754788d51b1b212eb76dbc14ec5e1198ae98b9d42a1621ead03db090f4454584c2c1a40e3d4127af36c43d2ea72e0478159749f2e24843ab1ebaa019e02c489e06e25b89805f26c651ccefc90a880dd9a83d803c0363a9069352e1f36a6962ea4ad4", + "08385b19532a0c8f1c52128dcd9553a015df9bcf58f7d52b2e09c6620c623a15e9e0914b7fcbe268f63f88181c5bdecf832fb5efe18fdd723cf786", + "0ffb66608c7fcf9ac511f2f52755ed117c24479f33dbc4df4f7d326459520c518821ee004b09f320dc993eb015dd7d8ab5446768176850d34abbe23ea416ce3bb13d10dcb04439e31475b324a84cdac28aee3090b12582647ff0e7373de91710d574de148ec6767deac9c01e401795101ba4925faeac270af521c489e73a966e6e250244da273860de478e9c531202b94ec2888978992304fb0961238b28a7c69e66fb39848dee16d076332642e610fb03ef73e5f84d1d5c9c476034e46c5dc6849a1fafbac25f56fc1bfb5246b952ccd9be176ac1d7c9e09292d85ebe", + "0158f52f544bea4741617ae990f5e1c59c37bbe7ddac9b1c4754e6a8b2e8032b8c9695fcec5a30d3b1a0062615a95249ff83d1f627c114f1b76160" + }, + { /* i=2712 cDividendBits=2959 cDivisorBits=531 */ + "0bc3622384e3b12b94b578c96ae0fb9f263040b87330210f02868f809dde190f6d0061f5d3a0a1bf62542beb55edb136218a15a96da4b0fc818e37fc8b01b396dbbe55e4ba9bc9653d52a62727926a33e7b98aee21bcf7c55b86169d82c411479cd430153b805cb49b657249058c398bc01ba1d2b5af5d49b96ac10f8c9d1a28e892fd8363d58de92da2024aaf97501c7b4ab900bb35137ec0a1320e6b829b80641bc57b58be647d0a1dc6f7ae3bf010bd4c6af62a7b758e95d8a34d28b54de03f3f5f94616a8f869cc7b290b7a5f09d5fa5962e8bdef4760e6db2c7fa4ce10fe01ec571fd32162a713002566f702aaa3d6ca34d435e67aae9dd317db80d0e1636b3157197a01bfc1e084c0c5e24f586cc97f3a2102ef91f6e3200c79aac9dcc520246b4cbc2fba4777f73aa1896bb373a26b1e108b90ff830ad11c8e9f497f0cb8b4c19ce3d1171711496eb51dd78db6c7d2dca4a09fe03559dd82b9f4890324a0dad19a2388058e1393caf6fea36abc491", + "01d9b38c2abc469e4807764d02178bc47bc9ee6e5a1c14cf5c4156b1beb226b95c8372de93399c20a19879687f69a36bc72918819f4da303614c2dc742c9c9a9059419", + "065b6d2e9bd3db3ac29354afd516f7462bd8ce95009043d8281c445e37a3de2c7a0ad091024d71bf883d0ad388b70506117206b198d5f31cd268475d0e0f3bd9b710aad71424f013b6b3853da94248e529e5f3b4d9c2e67417047c69d1b35d8d4d4d4cb2a6e654c94ade13a1f2817b3c457d130445be4ec0d2f3d7ffa0c3c76785f953d0f5c9461de89499b9600835c54bf13d24f707ce631154347aae2eebbb481397e117b712d294a1ac4754c8880df8c7758dab1532ec6d46721c2bf24b9cb4f0886ba43382147ca72a6a5bb02ea436a2b6c73952099d10c2d311445d0f7e33518c1500f8935aa13bfa4e7195918ce7ac82873b9adc9fd20dce4cb9cb76e01fa06d9f0223f5da3e75b2634b6bd160e35598756188d3b4053fce21ef61010959f92497b9064568f24770854903351f", + "0b66a86d08207da33f4853f930075f510a54f7948d056f6359410cb05e406df4cfd4959e32a075eae91d2c3eb728f4217ae03f19804cf4faaeaf73a2cd37ba0aa88a" + }, + { /* i=2713 cDividendBits=3443 cDivisorBits=21 */ + "02ec9d7bc23b14c0dd8aa518730b5c9442bec7a5bcdb63a1f2007474bc008003d6e4312079e8c6e5e4c96caa5071585b6e41d83bd1990a70c9b2e1defd0a450522dae4fbd14606ca7cfc09591d989856113c298fbc2a40bc19537bb5ed4839780935027e635d1d6e197cdbd189e1caa69ffba38b1ce6d9c99225e70323ad69e984abf777e5f2b01a91361414d02685a1d241dc16238435d90393a546c05309f097219ea5859a97d20080fab505da351dee8dbb5eaada15ee9bba2c6ec60ab01a43e20f2983c9c1b657f392ef946a4e60b815766e8fea97e383f0f7be5588a012352d6c37008a7b55e7b5bbecddc08d71fbb7d06073cd3b9a0c3e52ba8f4c0e1e799c28e903e26be43968219141db9b3ce93217d8b090afd97791e862c24dcd31a14763512cc6db053d937ce7f38ff459025f87f237df20cb5723240465d498c3602f1a217725f9af0198b38bb7063887c4daa061e866f772c6956c7f11353bda5229c6ef3ad38d9bbc21f8a35e7a51fa77d92a2627bd7f0fd9fff0fce9f18280ffb1c16446978d1ccedcd8f7d9afbe5affdd1242e513126dbaad619096ac5842e5da6b497ed29d664d8037a1eb9845", + "0ca561", + "3b329e74455c2c0bc5a6410b573c8abdd1b93b9857347afb9a62755157eaf09063c3d7735412fbdd26b8fb090a975162f81e62e18ffb2aad14be849c55f7f7f28c4c1100c70985177407c7dccbe09c1ca2b42664e2075cb67749d3c99783eb5cd93c0a54e4f2d8b3799f41e4c9ad230963568312356100daf959f65b0dc10632e0a852422d5d5072561ad89644ee02580d2adf400dad5440be5e33ce3b25d83d62ce6e0837cb11020f9876040b4896889f1e0f0c59661aa54279cfa6077edfbf8dae1aeea5b5e4098893e79ae6d1f73bfa99f0338e5bd072abbc5b1a92e7e93ff6d73efcbb54e308c0ec36fe40ddfb8fa6a9e4ccff91d0b0d945dd49d2884ab90130e942f22a15888572fd9a4707dae7585f7c2026a238a0140756c151bd30b65b722c5c3616807dd102310ae9868385c6bac5ab9d1272f0632d824421471c3048309eba67b55fb7446dfa4f2dced28ec153d7483114dde75d75c3d9e1728cc40a1548749a025042b9e7d0bfbbcd5ef448f6f1e3da35baae5358eca43423f6c6c1cb7bf0dd8a9240ce6fba5dcd15b87d07f6afeb7883bcebaeb4d1952d108b294ae047b1342797de3a2106d5", + "04b890" + }, + { /* i=2714 cDividendBits=84 cDivisorBits=2 */ + "0493a2229305a4fbe6c316", + "02", + "0249d1114982d27df3618b", + "00" + }, + { /* i=2715 cDividendBits=707 cDivisorBits=280 */ + "07f8a21b06dad3d2e2bab174d6ffe5e6bb1e2f6ce56bfa70e918aad26cd263062d0c9e69e824a024b4eb3470e7ff178e0c83ecebf29944388926f0c560900ed0c83aca321fea4ff89a538408017e9b658341163a8d69106e52", + "43981e1f6a3e520a0e558cee2ff067d062b0aa456d409928e890c822329b0089aca721", + "1e3080f897d40c3b375d4fadf299a7d32f13fec6fef070f74bff837c3cbfffe0900a6b9d8a43b6fd721a30c5b9f2f4864cd51e35805f", + "15bde7d003011b1fa70fe2460960a012be30da38aed827c47701525e04d9ba8698e913" + }, + { /* i=2716 cDividendBits=1617 cDivisorBits=1416 */ + "01190376af5f6cf91b902748c21365fd083789a47f34696835f88ed9a7aa396eea29e846cea7efa094805e9af454b88c1e685be5a6b9d0bd0f810dbb5090aae5c970e3fa670aa037c90d35ee8931794d3ebb7bb038eb63c831a36800dbb8f8f55f0f30a54aadf369d16010bfd8bd7c72df634675ba1df441a8f154f98af4c60c036daca6aa0e2e5999700c1b3fbb6eb70178ad12e2a59b8cf3475011cb33918b160654cc6c7652c0355fc510dca71cea92ac598a73f2a47388b41540ce95d45e9c5e12c0e98bf9ecbda1df", + "2c28ca27b54181c21afb0525fc9c12df91d283b9e454b74d45ba1eb6989c96d04e5954880bafbd7de8b61bffe4a617ef87fa66c93bc567de307408dff40c97775136065d4fc47f020f959a306d7202499ec534a7d6a38621b3acf9523712fc77588605b7c153d242272c81b68be78c411cbfa9fecab1eb1af3cfa8efc716a4eda8ca3b9d9797bb17fc2e19b9d6cf61216a00a24d38103074c384585d3204a46a252aeedb5f51ab76562e987aacab29bdf6", + "065d16a70429455a3159e6dce4d5d67d601fc4c6494708a3e58b", + "13a79b2c5ca539919d5858f667f9fd5120fdc44cb190e80f30445d3c17146b56cfd75e67c839c77045ddff0502a238c3c4b104cbfa1bf391a1f09e683d1015893c0f6137652e60167fad803cefc0a2109b8f4da7e3741e1d5654606b2d20751ab1bc20c7868212c094b9f1d0b9ee33cab0043641b19a15c88886fb712e36dc55fe3cc38839316aa39e3f08ec3221c908e19a061778674a36df7b303abeb86f1e88a6d37326590dbb77e9155c5f02846f4d" + }, + { /* i=2717 cDividendBits=1181 cDivisorBits=1126 */ + "042d0f8c18907d80530b06305eebc5dd6547adb0242996735c5ce04b293dac142fffc1d1ce08d13b2c1ce72a2a38a8cccc7f53f2de6e430aad4cb56aef46c934c8ebd35c5c7d239fd4454654e88825de87fb461329d27260888c65d92274652fcba85d64c18280d6db8683a9083707076346bcfde8af0be40c8c421762fa9d332922d195a953fc0b6aeefd6ad5a6f33486cef8d9", + "2eb580f7d6a44e9cfaad1473fd6741ab9fe7912a4c1c9c8458b0a41b4f61eb902bd0dca6133580765c75b2477b665885bc5c0513de6609af6ba2e952f34b4dfe312395ac5df66f492055ce8244ab3efcd1de7538644ca46793456addfcaa4851f29c95ca0d2a67782b5d1eeb23312b8ead7619195ac9aab66b687053d19b10e86bd8f620855f425b4d5582243c", + "16e33f251d82b8", + "0ea55821f6a4a0f82773f683b6ae7475d1364b91a3f889417cf5756591d025e4782ac3ed17836fba5290bb0e8a20467770ca6feb4e229d3f581cd6ab2b71e3e82987e4a0afe31cefac9627d71a96c49d5db04372439f1f8c81e49302db92a4f90af1e4d1ac975152150c69ec9bb7be54e6bf344e080d6713972328a69a45b48fc766b41d6e98297074341275b9" + }, + { /* i=2718 cDividendBits=3970 cDivisorBits=2569 */ + "0325e03fd4e922af690aa2dcea047a0625b4b56b7af42625fbfb0a3c328a5665486242bad1c1d96d1a616718e23baf7e1ff7e6d0de08d690bce58ac1973784643b9d51d7aab3faa17e51d3f111c9e1d36e72cd84856c9916a0f8144473bdecb60f7c8c6aa9efa42626b3a0f1cc79a4218794052d16a22a249fc74faa4891461f8784caf57f44f32f29bac4420f4656088a2171616573b48fe2210d77042f5889e1454b981b48d1b605e69791e90a38aa6e7b19852f43458a6d6395a6095380a68f23d0c9c6f926cb40ffde6ce6522efb05d5522fe747805cfa282338b4fb8e95feee8c4a97f0357c16da3e6e390f2ea30140f9a53066eb031f41867f1a4bc106edb308860ff67443aab134fdb124ac7cd8bd78a893b536b3ec02ba8b7044e9b7308b0493d8862a5bef390b1c45ff6c261462ab173c019ea767e7e3b989e354d22e8be65acbf9342afebae3f1b76194a6040886330c9202df7733ac243a9f09f02ed8295de1f627d8df91a7c8a1e219ce902d1a32efdd6d2cf75b40bc6cfdbec81335787970332885e34659f13876046c67985a4516defad62fd00df21ed625ccf71b9654cd10320c83881304acd544018a2f0a73e912c17bcb6300205cdc4f0b49fa27294f4d9ec3db410ea2fec003efc723453efddf0ada3f9713a3bb0a6202b59d50d5760109f3681176b800c73cb3db", + "0128df2fee98dc547abaf4d5bd44a48668b4b7cb1dbd1676c89e4e2bb2528086b5a3de2db648ca610733eb03010392d961e6b5c710291db638e06ee4758a6780a42b67d6dbcef80bc99fb686daff91a72aafb338ae45fe741ad81961f235543f288bd43f7223b1c340191e7d5692ada2fafcfef32fd58d73f6b779ff7c85d1ec63106817c1314658a3e61d6c428a6b356715b4c45be1eea87af706f206a06f66a5bb073e437ee3f4e8da3bc7a64287e907f82852ab5eca5a121d53fbf9bfea2c43add0e708dbbc6b352eb16b5594564ce9ad8580bbdaacff914a8784ec96e66d1c94ebfff0cab469e6816073261804b148988451f73dbdf31cd53b95f812fbeb002d94a9e35a3ff83e2502aefb277bf8d38427e3c38d8fcc33bba25e67e681b91417dfd8848579822ae94da1cc1af332a8393aab3c4175273e1e42666aa53e435e7d", + "02b6ed506d7ce6ec8d3e7aac6e1d871bbbdb3275d2eca0cd35ef005af1ed4e79d051977120def7d810ba992fc4ae5a59ff1b42f2bd3c174b7a48df18f7b6fd07d22addc90241b95b8d25a1d04ee7ede667586d8c0dc355dc429e8e7788486ea5ae87101e0f7f0ff80d69e7da370c77fc94e8a88b6aa820bbe33bb7899c32c828e23ad428bc20764c636424e1e4653312061312d5fdbdf1aa80508e479f53819faa363ee82b856d130741a31915d828ac", + "530d69ab738640784691b5dfa566b7f680abbfc89cadbdfc747d0bbedc9af01360f9631c2bc94c60b5d4e2d8f3daf4db3fc039bb641a77699127e536104ad0cf9bb13aa2220f9b7fd5e33cda9aaf85f0124f8b4de83c54ba3307b9bbb20a2002da4dad811ea728ef5089852fe54a7a22fd4151d9fbde888f672b20417c8c89e2d4f956b05a3d624fc0c42a212106cfe66b133c98f212dc7aae5f5832eb04d0007eaeb0d52569080ff92d326ac0697f396e09d841bff52881de4c64031dd153068bfc784691ec060749cd9adafeb182220973178b950fb1611b4d15b49d47c34886d340b070c0894be238b47469c05ff047c5710fec830a98b95ec38951c47e3a4ca603d5f73baea508e626204118d75177b2458c8720c928e2d459b747b5e04028000e53c23c07794449b4fb5263fcb4f4d38238e395408bca87fa5e7370bdafdf" + }, + { /* i=2719 cDividendBits=3540 cDivisorBits=367 */ + "07bc24b0627950baae1dbf0777bf736f66a61beb84e553dc340fc4bac2319b1ece77b23154547a73d22ef0d103b37d412cd0b005f50e60723d0acabdcdad40919353ab7af3d18f62b9e5071cd0be8dcb2a70e244b28d2489d0a7806fa512e3af47d1d0f3d9fa1c8b81946d2fdf2df9670c52f45c5012d71c728eaaa26887336f1b012d7bea2828333144877146ddda95c3e0b7aebe47313e8130705dc7536f7f8ffa9359f643a5516a7d2d747b529fa0e1de253201be13402669b34211bf6c3cef5cacc77d45f845d6d817d8f7328c75cbac3904e789c371b1d9a494a24ca0501a03a3f7b570951516ccf764a866b558be2b90f856b4e97668d45311dc72ac1785b85ef4e56dd8546dcbeb8ec8feb937313a088eaf7d8704bf90a098ed3586ceaa44fc4a0088ea8fc4ae8d2a1dff4c7f249f482eb8d9f4cf195967ac15d297f524a6bc201b3310b421d50e473e9680e98f829f69697c417a74824a427ab53536a0b97a9ffc1d3dced3770d67b3c26ce58cbd625dc0fcee5f49b02a31b62e886879450f6c0faed8f4ce1d769195bc88f40a32a74f5ce32911919fd9e3bd92141482e8a3f330256106592600907fd531a1fd910bcf1870734862466b", + "207a1b13b1b07e215bc9766d031e39949c7134b8332b13fdd4f57090409d60f3f9abf8f712dfde5ea0cc2a26ebe2", + "3cf87e8976d78f2cd6697909723730e050935b2d87ca77161668fed3975a33e8a8b1bd9d19ffd003aece4daed66dc7dc3c430ea0064f4e2061101124d7656c04c38da9885eecfbb9af06c3eb741061ac4de9688ce93380571b633d1fa4e0a85203a3446891616ddee89514835aff935352e761f81f393c3a5992b83ad3eb39e696dfef2cf384d57d080e584968764a8818d6da3067cd322a84d3c7f9753f443bb7fc457f0dff0b03782465ea82363b605a08f56714e492ca7013a4db56f1a27626afa5b82ede6cf5c1c2a5bb067351362573651bb3611b3b8cf2672abd0fcbcba3402dcb4659887b5798069a5ef4368c7bf9b6ab66acf7720c3e081626461e0b64760ae3b189fc6e40b265e2c3074892567dda7fc09abfecd48b5c800a3ea2ef7cb1c052b81273b29c23fbd2a6210d5cee9836e1f1c7ad656b383d9fef4fcf574697b260416a7c77788a9c240d60e029e758f86b3a8c49b5b5c50579d252f85b2c79ca4a15ecc2217660d57e7c4042b18a3b84a21f0d58ad80891b6c632f2e1ae0b7916b9849c2b0ebc6f51c60", + "11e1e78a068a234f7a054e4059272cf88077d62625434f2cfe1d9459951ab3ed7137522c78809edd7520acb319ab" + }, + { /* i=2720 cDividendBits=3569 cDivisorBits=972 */ + "d4ccc8d1b8faa7aa938ddd6979d275516d559c4113a94548b6ebf610fd00bddcf485f31bfd23f2a9e00793d7ecf89e5ca075dd0a23125afd4e5d4fc02ec3327c5da6ce77baf43e79042b3096d9d6b73ae5cb96edc6aa537c4f63e1b4a93d60e8595e9a4706a30903d67c8208436fe237d0147b6fde57623e02d218deda2368fb0164b68b67ccbba829e7e2f99586710fe4687a332d97695de35f9062bfbe96f41e913c0a541896957051e7d294066ec31f9cea8a410389dcb470afaf8ea4fcd1bf759029a10ccd34866e01c59f126f375a2d89b62033c65f5efbea08b0a500edecbd3a0fc6e79b81b826c22d80e2515a84ff687fd8ba4178a0c30b34ea3e31a959368b56d7a40aa091a764d8b53204890f01bbdc1c4c0eea2e6622b0610a9c296632ec640b0518d9a39a27ef4976985bc8233de80963e433a5b84aefae25dff0eb390b79da0f6d4efe2eafdc5edeb0edd0618c42fa57f4c9a274ec379ef8403b6fb55817779d6761a595225b1e03f7489d4ba7a7f95aec23c702dd1f348d8dfb668a78f07761a144d7434dbd90164f10c9ac4f0aece61a8681356964a5482b9b3a9cfaf8788452526cde1b381cf8e7fe80b42d0a7831bd0d2619fcae2bd3", + "23b34e3e93a6e51710024d9e33c930b87a281fe0f21d0554c8d2a6fac06fb59d9e38f6754a99905c1174fdc56e8abd9fa2439011c8bd18d2162d1b690a8f949ad981f4cc25b9315bf6d6d8c0303f234ab73690a9fca2b8a33a6d8b61bc35925a20ce7d0fe9217e6326b59922c0165eabd18b9d6e7eb8fc33cb", + "05f5f15570fb85b0423a0e880080e17ff0e20ae6cd4d9558cce8b33699890ad414821162742215265dd5be34a4912a2fb201df3fd6212e00ea5f542260b404ec8da7ea46c2465855ce855cb1c51083bd858ad7208fcd82ae333f5b9d6dad56704bb4e09a2c8b4d97c9aca29d32a2f0e2b15d91095db2527f74c3426f52b36865faf6089785ad2900ebccbfb3e00c3a0ca8ce7bfd91d8a207947937b5d6f1d72cb5264be3dc05413b2368f3a70da8c10542478f6e4ffcc2d31a9c01c5d484f446694e15af501ced7c26040dc108a89382c0692814d4c8671b07243721500fd90e3a6baac4369128ad0dddf2ad1e0c5b69e7f5f83a2328194947ed89008162b966eb6af3a772aa68259fde8fce2c914bf37f2fc9e8cef41a75613799d72b28f5225f67f45ee53ad7cc5ae8f8fd1c8c5cd2682ab861fc44131f453c2dd6f3a84a295e04783ef147", + "0a11a12b408a527ed2e662c9a16da8b8e1067d3f28c56ed9588f8615341f9c85e04536f6b8b0f262f63e03e2c8a5387dc619621614137fa0ec418ea25099e4cde12f070bbb5646313617e52890c326b2faec5f62f113b4122fb32ab909a21489a777b2d53fa45d95ed59041ef2ecac793c2d7ed6478ecfb386" + }, + { /* i=2721 cDividendBits=3418 cDivisorBits=3188 */ + "03e56b6b1f24ed24538fb4159a39a207b05b558ecb9253f74785e2dda98ef508d3b01908a7245057afef9844833ef399aa07b5c93afb3c67ed6c7fcea967b9e387068cff3b67578f1a9cc1b9e3deff5f04cf66699eac865be8a98bc5646f064ed18f08f7b226d2a1c926051c9f0dc1fdad3fd4b3a19efe46a50d1513ba9372696e22d3827807216003878ddb40b044622d332a42edd1bac24a2bdf9c9c99d7219667ba7b11fbed967191a575b502302a5cde18fa32f76f1d6b32378ea3bcfc929e1904009f6ca9aefb8e265b70868166120c77f32832a529c53c102d0cb6a6b13a833ac5510ce5dbcdca1122396667e71d8a99948d44cb69ee41544e86b5a978ecf04f4211b02ddbb57dcd16a5ee132f56c3221dfcd8e70fb3f03e1c911f0e26197cd0c67a2937a16d8a60fd2c2b6a2dc4ce34b0e99d3f68b8a50ebcc559571d2a409e412bb71dd9f52cbe5312bcd5303469a7c0465ebd1eb827037273035eec90e1f13c60389650578955f4fca4bb03f0f62a7cb3916c48e704ee45fe721e17822615e4a273d9a883f0b132688605dbb0689b8113d2ff742ba6d834da6f92ac07034d6ac6f4a3f902495940", + "0c9ff398eeec7cce61c73a52fdf48c291527794b52bf7c430badb8da13b1d39353639d4bf68effdf230283c7d13371241704695bf057b251e20648d007a7679fe0fca119a742bd1a969cc87e46929038bc54ba054c67e4412742e773e432d89542c6843bcd69cbf1b434384d98f3213edc96e2d7174c2ffc791d5e0bbffeff50e741f386215f53f4f691e22308962ccea1e2ad6ca67214fdaf3848b600529e5c575c1452a13bf21cd7619bbe76201f52980e396fa3a1a58d2489336144e14ab1273e61c896f95aed951ca816329a722ab7fc6ad7f1053bec5cb3e6c7ede7258841f41bf23d8f6a9c8ac81c1b4f7d2ef76dd09b038eb2a7bc54aa21294fa9849e730d0deba4b7ac2460ac0fa23eaf3a83ab60cb28093377866955b5192a3fa023561a71c43fe2293c3979a7530f0e5b8d49526abfc46ce3107260b2b666d7d8ac1ee22d87003f6c823dfbf6945bb9a01cde44d5ad4e894040e317d20f05bbf4caee3d826ce6f27d9bbde9caa11de97aae5a96d24f4b03da0c66d5bd659846e0019026b80e835e1dd0cc1ab0ebf26bd7", + "4f013525bbe53f2200d73e7448b952c44da0496a395d273b250a5b0b25", + "0297cc78e310924202e635f286f2863c99b2c0b8f3d1a2bb8d71b2b7f7213f8262732819a7e3b6ed85eb39ec5c1dd48795fde07abf67f4a0a9704f9562fa2832552fbcaee0794c36026cb45ad9ffb83ef9c4751dad9d8c84a2366f971be2830c55c67c68b9158d8e0048332a06f0fcf6037de4f20d8e992c2fb427b33c81b70c4f85f52b35cceb17a8ff08ad2db6b695d49dcb82341343d16a8068924d8ec0fa6b38336db63739817e295282689516002f1c7a94a4d523761276d945e17645a69cd68851a70094a402f70f4c0f264eeb27ad394ec3a48a4f381bb63643a2855e53ff21a81738b1febb44324f15f89fb73c5df7b1978cf2b2cc8e8b4d723229a65510f8b8f40cca0140433724655f525fdcd3f4f00f0349f8b365daa319c0ceba804a8ff3e36987ce3292344e3d7dcc3bd32f832c70545caf3aaa0535c40c83861e6acb18c566908727be0aedbcdcaa2e676a9fb5e15e2322c29a271158355408ef30ce58ec3cda9a81eaeb001dff8a82042a89307978117803df55537f6ef8431c4e9111f88b9cec8eb3cdc230862d" + }, + { /* i=2722 cDividendBits=749 cDivisorBits=509 */ + "0b6cd1cd320c918246f0acd23b68b5a66d9fda6acdd1c2136694f0e4e9760085d5b14bb570720b86ed6d4830f849b339d1512d0928b6b39ccc44d240e354635368f895796e1bad21e3eeeaf3431632bd91098274f8ebece78f38bbebfa88", + "1d2f9d9db8dfa1a4a085c5ba42ae65452789361d0e5acdd3f2b1964bfb66f9dcdfda36f54fa3d7be0d0c61a0d865c6fc813ebf84d75613d15e7014162008ec72", + "64368dff5a88e02940e30ecce53e0e26824e8fead4106cd0d96ada90c3d7", + "041f4d481fbdaf99622162edb3bf268d8a6136fc23d1baed42342ef5c8dc90d1c17f172abfaa68d7b492d76c42e31a856333a2fdb2633c8f1101aeaaf43290ca" + }, + { /* i=2723 cDividendBits=1950 cDivisorBits=574 */ + "13db0899b5eed2e12eddf24f177e0973a7d2beaea25fc22ae4b823479d051ee41f5d625828b4a8be9b650da91cc770164095dfe84aabbe7bf6fb0947706f2d38c577c4507638482451481252c06f62ca40f66b95f35c6bf59abfdc010deb4aa2edf76582af46569f75ada74f1dcc04a8d361bf03ed0e843c89ba07d91d8bb8725a01b5714a519373e6a7f751e7b45d8683cbe1ec04dd589f3e2823f1e7cd3ad29281ecd85e3745e9eada1cff52bfcc8ced619428c81a2234a6a5d8167a57874b9579c9243c571ea32604d0c46be7588e7a607001e239d35aa569ca2161f2a9d40566f388b16af0ad6c79fcc50845339e07334678", + "1c8b22a93a184e68a671b22233afb8812d2190767e0bd9e7d8bfd115a7c1e3a9fc37c85aac1cd34a039e850ea60f48cd12f554da966cab7ad8cf7ab8bf3dd5aa4718988bec0cdcad", + "b2148c2f104ebce95cb555479840210a23767279c601240034b9d1d373ba43431eda7a4a5d40577fe273d5e1494227bcc6af90240c0bafeb2f1e877978707a1b9e7677249988f5d5e808dc28c78372521019e673cb84e419fede9a67b7a621e1418d5c0691ab038688acd90ba2bb64f00a36ededb9f67b6cab5e67bf4bb27ed6f3f87a0e55449955f0b469b2697c505271aefaa408ea8f53515349ea2df0df32604b29e984600d735e775c70", + "0ec0ca703fb6c64aa2af49ec072e51dabe49a05c57e27033eeb468a845d64995bd4996993a1ab10dab99b8864e60c2fea89ef2021304a198020b4079b8aae55e271ccfd907d98ec8" + }, + { /* i=2724 cDividendBits=2557 cDivisorBits=246 */ + "08f0b08ddb58db2eb29c7a78a427cc8b5dafaf271dc1049ab5c66710622e4d7c18c151df3970873c52669506a6986c74ca5fa1af8f55f25c3923a6e3d7cd11180339c2e52fb393d353e13e198439b9eb5013cb2e0413ed317b9963639dce427a1f4f73fc0fa0009a573208bdc3e6df2cfa975a1252e68d827534f6dda40d91af805e567f78142d50931f8894baba75bf30a138515a0ac591dbf2efca79d0c9ce800a4d91a066e02151a80bb83dd6899fba73f0b9daa3bfe8a308c5ed4be7dca9873b9e57cbd448b0916e7a446bf8ba36da078014a4b5cd1eb15ca146a9dec6e59a1d8c622057c554e2babcc94c970112a704a8d10d681b19b6abcbcdfd947193ef3b2399433acdbd8eece6aa22d0a1e9e779c86a897cbaa057b85bc45c96374ef3258b176dbe388ba5bbd76111109ef6a4ac6eef312b06fe2915a5cc9a6015ff", + "298c0156b32aea99e78041f5037ab7dd79ef4a744aff67a7ce4640f8ba6988", + "37163f106494ad40703d6c0f10205897bb2a7eba08758cb00a1b129c922c4cb1b9941c9ac3e5fd8d4026023cc15990679edfdfa2a5c3bfff706e5187220cf9f3f6989b692bbe1c83692b97b39e84ed3f3ec3f03b6703d2742d99c1759ea37bcf185dc2cd220c80c14e2f00438631390dbda5ff7cadde90645907009b42a5b0161942dad17eedad3a9f84c04bb93e8a4524293d8c1ac3714f520764ad312e79f04a370dd0bb09261fdce0e1ce07fa3782bb65779df5213ed3b37dccfaac315f87984468e3144c5dec9d4e67bcce9e01e5e82ccdad5a48cdf274f46747865218b68e7686d9361d4f805c9d6394fa92daa83c625c3c38b73d9c486c8db10f604bb0038083c92372af40a87564543b3eea8323143e81b9a249ea8a60b31ec26c7dbc42", + "1a8944a9fa15fa5ec593e0baa6ba585bc250943de13a1093edd1c8ad6900ef" + }, + { /* i=2725 cDividendBits=1897 cDivisorBits=1694 */ + "29dff5847d9d313a9cbb52b2511591e13c4e37c910c7df2a815f0818e1d9d9585403359348e34d960da7414aeec842c62946f440c11642ee472cfe885a597e478589c4845c8101fe562216d3a4cbb260e985417765b4aad0daef06a01be503ea8674e27fb642c98f26682bb9c121314c4c85b6b9d8dd9c58d5688a6990ec341234dc829ab065cab6d3e960ff57b186a803058408d4740ff58cd521e102f6e62fb0beb5aa0ca8018e0da1d235d6244d6ce78f745527f048b2f6c56eb5c7e8c5dcb168cda29b76fc05fe1e94cb040447424c22950d7a856a3bee084e3ad99a119f24cae268359bd79d1db320d878", + "37d58ff4bedda538670c8aad5468cbe98e9a793628a0cb4aff73217a3548acd40097464159fd11ab61ae33ee143625590ebb940609d461463aa2f6c397d5e7eba70c7cdc03a7c5dc3d75cd127a43105c6dbfabebfe72feea2c6262ecc00502d8709a4458de88098d6352b6d7f67ee65a64701f4954270b199a41b48321aa485b418a42bcadaa7641f4a9b6e2a12fa95eace8a56ebcef848de9842f373118e71e108d35c5ba2f42e99ef3984f66daca8d7e63e0d772ad3c3388ac1982e8290ca135f3e59d5e220e5d392567ad65e8e7e8fec303a4", + "bfff06595ac90182abc0dd308875a11704eda5027a26ce69a2", + "14020dc38268395c3a3852b8ef5fc713999ad739292393b6a7cf3535f7d963e7597d8b7e5f1939def11d9951f5eee13c4d5a3e7210e45ca54925e6cf0a63a0cd2d381316cf82af2d6ebbab7fa4dbc687bd5f53f7e057625090f49685744b134fb7302250d2b82d03096cea09c2661f4ed4c6cbdae6cf1f3c08796e53a75296057fb0d4471e393110d7f328c2b91a7948445adf37a8a7448817246c0b0ffab6bcb88dea879e7486f7dbf75892bbdc61eb52bf78a1e8f9a35bd8c86cb149f92175972503a5e3151a03d0af3a30485d538f394246b0" + }, + { /* i=2726 cDividendBits=3534 cDivisorBits=2810 */ + "32a00590bac5b89fb02f858f5a9da1906d09c80ad7f365774305d44db5a97aecadf09d0300dc9102ad30ec59b2bf44f0182e91413b44461add5950b0431574275ef415997d2a22fe3484807ddf95975fc43a2cef1e10cc5feaa40bb85665dcf74978f3eb4b469d76ef4ece63a6981a63b1d2be2a27889fbfc3d469ae805dc74b22e6d0e975a09c51d4664da4a286b83bec11cbb2ceaef16e346d21d95b1d26825450ac53114a66c10ccb0d6aa7b90b1734a62e9d547454a0ef5c57ab886bcf4edb8396edfd9a20c772d7edecdf8d1e7ed7433212c48bc110a9b7b012f36ab9a6fdb752b5e3e1c0645630e4fe63fa35425d85f767e88f5d669ba82c96371a575b1154c62f30add61e6f409c9c1e5f5188033b5678ef401c109367dc8004abcde01546b0ba7902155bf0eff9df45dbe8d630c4173225a9771ab612919a9f6489a701886dda393c6cee7d3e171dbe1172c4850b193a3ba823b82732dd29881e155d2d3b86c6e1cdaab09e9e9ba3c36c828a539e86f278cc56ebc4332548f9c533f758f9008f48e203b0fe7d8455c87553cbe43302eb0458a618023b4502dfee4f2219d6d3dc122bd9af8cc48aabd44a3694263a698f97c4a41ba39f", + "02a4edd63289af000fe4468d28f0ee28e543d32775d0bd136630826629bffbdc02959986b2ae1a50d367feba0b2a18020d20a4cf9e7c665f992c4f9349917c3fccee939095cb948614bed63b33ab6b339533928eb377685b59d854950126a80bb3e6bf1357d0cb03e47f5cc1859d6ae4db7fca9c680c23f9c8b053efcd431740529b556ef749afec693f4177bf79b3f2b232ff3dad9a6d0b813809c998b55b75f861f127f9019aaacbf3ef5450ec979073e662a86a88d607cb136273a654d2682cf4ffa067a644e26375a62f4183d06f4149a9aa8567ba53adf04f7f197c285dff05340ba9fd013064a90d1412fee0776a81216bd25d06eed304e263943b931cbf998c156e3fd223a91879ad447c45bdc31ddb0bbee32efaa72b0c0c61cb35b241796aff989a31961735588991eb465ce9a9f73ea969b250b908cc6f20cf7379992d354cee451bf2318291c522e889632c99b92e7a477ef173d4736f87d5a5a8", + "1325338b087c6ea3e2666fdee9d37ad52e19466b89461b5efa2998aa985cf9c4f8d207ecee4a3fac789cdf197c924323a85874843f0f85db8af9e1b44b81a7e833933514224381bccf136143aa5a383ab4d0bdd51d8401818d9d9f", + "02684bc852e46985895bba757c03782132acd5feef7bc434958ab9372e44116f19f87d624237abaac94d27c6e52c7f6cb0acb1b719a05f242f37da490c7176c40e79634c0fe6694808a0c2416afaa5aaf55be56285022e467eca42476262a23775357340f35d7e19ea2d33f5e0b497cc1acd11967df17e67d5090f0ab50756ca5a35b70e6a896cd2d0a181cf6dcfc3afdfb59b8694f0f7641a652d1c3484fb01d1c912be8ee7b309e1a2540ea4d7a9e066fbbaf6561ffd8fc485589239af987f5d7f92386ba1e4f058894592d9a4e6b5a36f6c8c2f1381d88af3fc00314895ff719b7c94d28179cd7ed65c3656af91c1d418fccc8e4be40a1278daa8cb6e679175a6f2dfb033b52ab6f0f2f2a9ff707014a99569f79474a2b43c946c552b7e49df9c9028c57b36676f19b2309ae1e38fa24d06869c9b17d548c104d09f786bbf770d068f109cfc68ed849434fa1d0cf12a93ff188c82778128a7c0635a49b847" + }, + { /* i=2727 cDividendBits=1604 cDivisorBits=1340 */ + "34383bcd349635e23223f8d6af8a855b742cb6b7dbdb172e4d28bfeb48d416374c6e0dbac86039f6990d5353fd7a20ff8babaaf870ee52530b1d835bd0bba2e2e614f313c8cc8b3a01aa9c0f69adcb32ae1351922fc5fba0bf0422b67b864659a84fce62c648fd838083bfed60650d0ec049ecee672ca72abc9034b2fd47983d64576deeb47b8d5dff995368184a7103ebc128f7399de6006a4970491486ed4842bba5328f461ab44bc139f48fce7e77df04c3ed3a14d4108eb83c2bce4366ef98ded4566afdf639", + "04a3034ce2bec7726383d68f26f9ad734bfed5c0be7370637846a2d56adbb29a1b92b282ab99c90db1ea566dad71fa164e202b3d832f9d75714f67ca2f05b510b21fe007a6c9f88298861c1a4df03a52ce2445023634ff404381bc2801058e506e2a9d5024336736b2ca3601f3cd6c9648be6cdfc5e8a4ea661776a66a747f6d8c6e3b4a4ee3c227c438c4a8f1494fce25b19329b6f1b21c433a1e76858d6eea3c4a8a6643c99c8a", + "0b4317a4feb555c83a97371e4ce06bbb04d03763b4919789a030f7ff920c9ff3be", + "0112335de9b52d8b7a41d54a2d8d48970195bb2dde07c348363c8f8496e833d7086689e582f775b60cadda58908aebd02f9a233cfc310c89961ca1541c6ea362f544e06b50250d55337af9182a0bc92dd5ac553ce2fec9ceac9269d2619aad10a0e1492d412d8479f58671dcf2d172410a46aa1f898a3ac7754d3ae066cf99a0afaf4ba03ecbbe6a2bea333251b2920c47eccf626cd195118508fb1276c61c1af26cbfd50a0ec9cd" + }, + { /* i=2728 cDividendBits=2339 cDivisorBits=578 */ + "0145ba6e99330623b13066400ca7d8958bdba6d97992118ba4ff55cc2c727cb79165d55ee884a2b99e5b7384bd5e7eafe385b014ed86e46b5ebdd25655be1119e7283c81f67fe4d933e519ca3f6b95093cb23cbcdaa65e81ae45dc4c37a115d13cee3f2ccf904cf3e9dc08c0cb01691f11012e5c846e89dc051a191587ce111fd821a138c6c95867eef25c1459c445f7a4fefea7286de3a6b56fdf5d8e7b0c8fffb445a9e025cb954c32990edef51a863adc370da315e2953b5777baeb02198cff28b5b6687578eacd6c0af659bcbbcab9bdfa4a4ecef5797194634edf735ac6e653524e77e304b1ee6f866aad13096dd6555919c9910aa34da439fb5228b6fd8796efebe07889386438e1a6c9c3e9393c7655808206ca0e27f201b40ed7b5bce6898d7ff6", + "03c626fc2ebe088c08530f8ff89bc2af21fa27f8856b517936782735aac9cb36b4d2280308787b3f76461b6e70cc4c2b462bee572ce76dcb032c0ff4cfd9080d21bb5522a5e818254b", + "564ec8d8cc4c93bfe470e871a17004b2a1ce52fcc1b8c6d04b168745306c2094b2559881d18a912f8eb2d11ca95e71925be7ea3cac7c57f1a90957d60281e7a0a3af942d1e8ff298908aeeca6899ec5068a3d819d60de23908949bc8e19321779147d93275f44c0bf582f027ab17c275c02a5e730ab9165a5538217e37c7d5708773addd9abbf41ada76e828172e003cb09f4860b4a2deff7eed55659b0dcd7fd64d5c43e1f8f789dad188a09e84212bfe7f417519fcb3c0f13e871d96c5dbf7dba3ee2c167747e243a391b461107faa5db71bd7b32018da21be1499", + "02c134357547c65812e7406fb29a422e79923b8740bdbd11dc7f90ee9d8ce1b20b6222aca6a3d712c5ee80a75a8f7ccf99b9c7b070de585904f54ed8ba4b64067d1ea2e904978b5a23" + }, + { /* i=2729 cDividendBits=1670 cDivisorBits=669 */ + "23542120879d98dfba4a3964e9d2419df9a65236eb712c59c2eef969d9a7f7959b2a4319db94cc29f44f0a532f136e4d7e2e7759bf4cd3c83dd52dfe453537719ba2a425f044419c4639df45d8dd39ca4d1f86ff594110586ec1af81ec9b9544c5afdf6e541f6c0fd61ce52bb23a0ab7eea2b26a537513d5fc16dc3927e4b890bcbbea55adaea7f104623cb7a21d156bcb62b1bea5f93e8d7f8089d3e95c55075b7c4910d8a1aa64c710c3c7335f1b10ab145f8898dc7a76206db0234937afad19940e93b94eaa1f67615569cd47ed8697", + "063f14b0a74aaab0046cb2186bb0f7efe472a4b583dc5d234cab81088f3f47d1c2de609cbf3ef3ab03384ea7768787f019aeb35d173303b00b5cecf84a474649de315576469d688d92df4ae1216191a3275cc098", + "05a7e47ae2d2dbcbf1a87b6e6584f643cb743a174dfc23879eb9fbc8b22d5a512b2d2457f78a82c3065f82d7a6fb1838ecc62497536d7bdda4720d12cb5b4fbc5c28133275273bb60e8fb157ec19d796d26caf3f016fc709e9dc10711232b69c174f6cdcda3fbe2fdf42490a701239bce72f3635358a75aaf2feb118ac98", + "058edd0e5c360a5e2f05e61d18f822bb7d34483b86978211d6506489d3a2d426c9368aacca917f6b89fb898c5624f5c2978e059efbcba08b79b1adabc82a6c4e4dc2d639d22bd62a696f43d27303b9d071350c57" + }, + { /* i=2730 cDividendBits=1008 cDivisorBits=66 */ + "bbc19c3ece65c981beb3d089b214fd3caa0de34b9dcc96ba8999efbc848bc06334bce406b04b7f658f2a6cb6227c46bc3f891517150f0b0414ea905afca4833ca937a19ba5fbcdc42f8a83c93a073cae61c8a814dcc8cd9fc6782ee11703885648ee489bd0d6a2b5f3401d45b16ae7bd79ebd6e8bfecea9fd78307521336", + "03751f39daed2d3d50", + "364dcefbf19aa000e2b2a4e66ebf9c2476c22252e9d4c1249706367cc55aa054679496a020dadce1cd7cd51c223d93819b15437b2d33b51e4a889f35a7fadd53706aedb6c99d7e87ced0aceeb3fc1ec038af3fb8500749a5655be80d221011966e92ebf93660901156a69de57a0452788525a81d544c", + "018707d9c553b59f76" + }, + { /* i=2731 cDividendBits=3577 cDivisorBits=2506 */ + "37b85b7848aab74ec3dbbf629ba11965705a8e7884825a120931833e63835a12478ca806610ecc1d0ca745d2bd7576752e488799cede98cc6872dee1c8c51996aec3f13221de723864788881ff6cdca97e1ddea2ddb3c3510c9c0813d8d7bcaaec50229b35ec4cdd4ec868357ac3e88df3c9a1a4c510faa31e83a68092b94a7fab384666f7ba330d29e9fcd529741566e88f6fcdd928e4ae54525c8d311a122e59ef88cb52382507a6567dde980b742cf55ae3e8151ca4ea3c4e5e3ae6dbe938632984a9005800ea76681ac4944dc18ef0a4b98afa736f84e3e2244083bbbe64140bc9a9598713fd3a33681ebba7fc4467f0613616a2015a01104a2b9839c73a01d3f58bd8037f1b95dcffcf1df3630bed2c19d2d11d0d0a3560f6d0b52f39d78984af2d4263d41c5a98bdfc719062cb3958502c2d6344fc94e1d8f840245255a4aa48923c0744e628f4cebb5ac4278e7ba80ef3d58aec043867330b86b8743ad345d44440a439c54dabdf133946a7f935c7ca2745a5b42303e815308dd10a24895daae98ce583703b9dad6f347bb3d11672c25aa5d57424b97e877c32b4c0bb495f85dff01bf8c99202523526eb341a3298ffaa1bea460bbca99d55388e91", + "0371cb3e02728fb1fafa76b07cedd265cd1b2aa247689009dd29fb248da94776aae4ed57eb523794a628234ba5a1b62819c070226bac93843d92189ce161df5f1a0881b1375cf705b8167e4b050ac3f4d181f65509ea82a53bcce015ac95a23b379797ab12b8b0b9bdaa9afcfe5a52c7232425e1672a4d835cb4b1e71ca28dab3cb27d02ebb826b002fccb846af20de24523611d56565c12b595ec87d101e7c520f3f013d42329f0fe16a427c3243f57bd55be3571f2e18a5420441706c3baf842ed7db49f3c43fd173e27a001d5351134688d6a6540e93adba84f11f553285c48813da6d1f27bc547a50e2ddfe0ecbbbfab1f01d964da9da2548d74bb88e72464f40affb38af1c826e355d23d80959062f7fbf675a468d40e4aace697b84abd0a826c7fcbff5781f32e4d8dfa5b66990151864b10b8d10b5b3a", + "102d3071d70c81695b8d4d763e2e3890e6071a2163debc9c662973793bb035aeb8009577e87e422aa7f8a76f70b499ee8ac5510d3a60df26f00d4520c0a304afe9e424a597f58692e6b275ab69672c8d43bfefd786c079949dfbd3f0248b179e2dd77a9a41a7cdd44fd719de0c3d4cd7759131f93c76b9ee4717803b907380fa8eb8257a7b98", + "0283b78b4765af295ec205baabdabbc08bedcac24c69a089efb17fc5be1cabdce043136909094c97b3ca859ac0ee14e3a200e41013d9d74030d04f258be4c87a8584bebbeadc8a212013ea857cfd36312b3d792bc708445c3e4de57257bbb2cd78ba94f78ee46aba51176145cfb7e02581ed9f7c12d0c434be64a50c28220b781688b6bc65f924b0ee3a4212ed4d5dfd3a6eb7978f1839b7cc467defa9e07c424a040d52dc3656d3a2788658b55ce63c9305108f295366c78243ce7e776d65401844131e7e3a9a5db1ec9ff85c4c68320be7cab5e7a0d7bf6bba5b975f90e9cd015ac907a3923ee91b0ff735bcf6a8466e0b269f77a9da1cd9d7333c1ef0b650431b159d4b590076e531ef4a43c00b35605f61a30031a980455a0537b7afdc375b55c600f6c97bb1934c2f4591859a59269aec6fee27e6018621" + }, + { /* i=2732 cDividendBits=1630 cDivisorBits=558 */ + "2529b0214f2293123f589f27431856db8653327f1cb52ce84fe60a4b20c2648d49bf2f33f3ab066b598d0af017732ef0aa314b4fc3b55c721c30bdd3d408bfb2791e9b424de5c69db2a8562b07b5f36a1b415eb6956d4607e6606e83d36277ffee081545c95f7f5089bb9c1b9c9fcfd4eb67f38010a04c278e1aabc3921990b60a19935de92868e276813e5df23c23affdec5f39e7b2f8d49d8050858d999efeda0314b7a624b7ceff3705f854a3b4af952147f966034c228a1ea83c4ea3e42d573e38f8e382d30a35a9513d", + "3edb1f945bbef7f110f4d02c05090c647afdee52ad38264df9fc524ea9b45e64f307962c0e9075c43159fee3c8eefca4b79117d22da109cb372116eba3890f6ca3de963fdb41", + "975b643d02fd0c03593e3b2478da3852627b068933da8baee8b1ebc0e4a6e599f794e873d9ac609dc18541d30c74c48edad22f1171b343461b9e0c7f3c719e1c1f70b3917a0f11b3a7c27f24e35473fc670e47d2b860eb2cba434ce45b6f714733f039d8aff05c6513d157b95b5f1020694d825d7477e79b713339607ceda053bb75480ce0a9", + "0e60b9a5dc4ec1e66c4c7e8f75da7c13d35eaa8123d6980fbdf18f732b7d457d6a216abf731fed9be898a59f676597e007d145c751e16a49fb216fb57b6b564c3143969cb354" + }, + { /* i=2733 cDividendBits=3564 cDivisorBits=2206 */ + "073af8c903cdc324ee66ad506a4e32a6074f1a65a78d9ab416bdf9b066b4def83bedc54b6683a2b8e9a3e292bc9d7985626575943d3278468a805f2748f611c524f9352f84a249a191a167c3b5b6a452a2976c8e750b3296a74dccb863b2d05fe8b946b9e645ddc8acee317760e47988a6862a9f673a4b348a36bbb990472505acc8e43a71de8d35a4e890b0bc6ec640c512c41368df052768f019210eb274710c5b8368b2889bd2908481bb15580124fd89591b16b13d48817d0481a2065245bd70985f1260465777f0f0fb652943b2bb3f2654172d75c811c19e5d7171447e2737ad9cfffe4c0111642013ee2d2d40dd4f27e662e761e5fb3b5b871d3801a67e5e972c50a374b565c10e01cb009d8ab8fa03ddef11ab6599e6311100a08c8cde96b817442117c188daf96e5a282d37fbf0e647a1b9ae7fa1fa9e8c4aca8b32d58a6aea9efd774026b5f6249e7ec3880ae6be25545f729ec9bc052278aa46692fa8acf768b5bae70e2768ef896a6f51a30d65e05d05e8f3eae22be53fac0fa90e4eb409815dc4245f3214d16fc96107117beadea22980586d266c08a55b000bd7d54a1aae29d5dad87353b526ec159e54f36f477cad18d660e5aebf7a9d", + "28dc9952a2f34f4ec191594062f7ec74a67cbc953f3d1b462f96e6fc1290070963f7d282071fe6960edb2526a0d5ac88d481f00851c142f950d378f0bd6137d3aaf7a10eaa5d53f79a6033210fbef53f02053802bfdb1acabf6a029fe6c237a96b7dbaa6e41f5b511d076cbc6e471422ece29531ae873815e21fd4b46a8069699d8579d114ff7b05f2c8142ea7d5e546917a542a4a562c9f8a68377e34688c4765f2174cc2d6949dabc28ba261521b2521024d2eb5ee52320591de999eeb6ae570756cd5565c41b3f564a1bc8bca890d1b2a5e83cd167bd0de0b4ef66b7e7b459e35b488193a387f39aac90044ac1c98b00808b272765f21b21eccb03c9f43a3ec48a6e07fc1b86acccc597766002b3cf069fad0", + "2d4c6664b7fb441f028c20a05066bcc319dd7bd36380068788c1b0dd4e0c0eb78905a5fb3fa23ad1712870e3b30ffb88238d424fedc288b5da6f420f5ddaa87c29036189b01146a16dd2621baf2c1aef3f111cf13d12dac7e41683021e85fc2e3ff3b97b26cb6088bb01d911f21482ff3c1fd622e1d7e04a8271cb5f2c87879439b926411a5c33cbdccb6774800b7b00e92fa89f165f2af877b162f0590b28c0206de4f5be65dfe58e70", + "1632b0b43d92b6ab92844b212708d84e5065f1b3637dec010a89337a8b863329b9ade9c6b39af5a5f8d645a90a08f1a44b6e4d2eb263bb6f7e4c6c365d86e7c12d391b4579737df459f1f8406c905e803b92094c41ebb133bf1ec0b3a07d9f694162eab66f5d9ead02ba1d8772a4843575f24222f7550ffafcce536f387c342c197ea5be1a24b77b31488a4997e9e2ae32e1c7572c31eced3fdc3f9f1f3758958b1dcaedcd8123ed17ea1c73a683567ca7e54f8350c6abc55c042ea32280512c00498494c2f9ed4499376679faff7c5253666c625583a931019773ee891d24cf92ba7d53101e37200e583080c98db32fe22c3d541b5fd8662dc60877c0c783c5a217eaaaf90188ce34852d33d2d1f4892b325f9d" + }, + { /* i=2734 cDividendBits=2272 cDivisorBits=1912 */ + "bd265852c0461a73e5781cb57c0445a9b29965dffbd4cb5342e6c3ec1f0ecd23b36f632192dd302f47efe93de6477a817ad9a1e1bbbae50330e7651deab221f64ad8d0ec9ba4cc0ced7e0315a4c9d7186cd87a985bf3a6d1810fe1c2876da816a383f85cb545418dac08202153dbf654f46cead603dd882ee23ae2e322023468ac1d508208aa2a53f3824900c054b0a4ec8ae18db231432cc34c94c62588837869bb76c6cf44a2fc035913948a19024f2a110fe7879f26f569fb4ed84348ef014a5bb7ca1f806a257b26ca2e05880623819401263dadd41108646bf594fcf73e798626aae65433b192fa4bcfeae025b43244df1dfe1011b465b027324b768d75e9912d516a5b1971d96c9cb1d5235993b937db538555b06e0c3eda74", + "246ddfaceb6a1d96e34f42dd71906ad959d973775d285e271166a0948357f08b28203124eddb3b5529eb61475e56c95a70b554d4ff6850a0800e26a5fa34a6006d82730810ff1c50a62f29a04d03000ecb4e48f0e3e656485c319deaaec29557f9fefa31c3e992cbaed023a441041945ddce095c1709dc26963ad6c1d33d8f31dbdee0421ee64186ff93a6c2abd205b51eb5ffb0962c90f6676b88873fdea34ac7797e3a18309b3cf5da7a5b2cc5897dd1cd999257b815826afd59419417200cbcae28426fa500949ab745335f221f21286c21d8e99ff46f42ce47bdc490524e142ab4f6a0fc14c277a70edd767768", + "053137d68697167a04fac5daa11d39c1d1296dedcc0735bbfed552dbba29c6f48291cd8d3bad46e774c11978b53e", + "0a94762d3d1df39eb1edf5600e2ce95f524d5da845c56545806ade7a3cc8e9ffe2cb93f4a2ccb53d883b8d58712c681ba2a3e166c50a3e896299a3a2a86f4e6bc72266152eead7711a0e3fe94efecd8c0be97e538aa4b4d213621b7587df8899a179830aea1fa47d5a989f7b057c10b64805804d8722f7eec75490c1e1ef53b7cb5c41df89ee5a686f43be90b9c58a63b42b40b577a4138470e19fb2d714408b1711e9230b8b797042622b4016a519fb839b2474985255abf193113da7d48fd5e276cc305929aee4d23974e88d3a5fec1691e9b2054954bebc2b86557b833a32e57a05558bb7043d6231a686616744" + }, + { /* i=2735 cDividendBits=1498 cDivisorBits=556 */ + "4c48c3b0260bff3ebb29a078c1557ebab82eab180f3d86de5b331b516df6035a8ec2c5cc0850ad719b7312816957e6e3151a49f11d528f4243bb632a6214e26d95575c320114e4cd6faf0ce4d585b0017bcef414b2b79f710297c63019f2543e1c5bef939e0448ad3ea2efb84c03359d4cee88f53aa33a1200af9e8eb846bf108e1a25c124fb2c27dae0948215e3f86e419b21f7d19a159d57d9540b6a1ff1a342ba4bc3afbddbd76d1cecb1d9dcf1fa3f0c06e2567dd24df2bb0a", + "0997b82eda12a48d8fb32788b02a2097e447e1eec8aa856447da7792e99639ffa3ffd6a2c6c66a91ce96a5b0cf5430f8d8f387460914549a4db9c8ed117cdaa1127ac0f23547", + "07f3cdd7b5872a84470a5af493d44709ecfd36acf115f3d749fd27c2f2893a1e681c72f7cb52234c1ab1b3accb9078c2edb3566a8c686197a933ed338a45d87673d06293671f4c0dc7981f6359fe1879ae38fd297992dbfa51976767f71bd1c980c98fee944a908d40eda494f7b1b7ca8274078a3ea2", + "074254a846cdd1a781fdc94c3c1bb438f35f068fe8c8bc9cf8be437b96053186c249b6bb8d826f04d55b60eb5f6668bb5fda5b4b267bf934e89dffa30bd6fca83d37e27fd21c" + }, + { /* i=2736 cDividendBits=430 cDivisorBits=245 */ + "3a46415edf8886047de7260872e392d1d5f17f64e7c642f0b31399c1acfad7e2f95324d2684e03759008afc51747ef926f86bed3f2bc", + "09889e6db5055433f45f4747da7251c59fb9ff52bdae512e3e00af365c249a", + "061ccc103189e22bfe903138fbd324afc76136023d4a08f9", + "016215853407be94cb1cfb74b017c2c9d49d635f00ff50a1d9dad8b78b88f2" + }, + { /* i=2737 cDividendBits=2140 cDivisorBits=1933 */ + "0b930b019a5cceffba0c8bcc8f8fb4189fa8727995d9c08d5af93e424d77178788ac229e3f894e964b6e37cb4d720c6d1ad63ffffe4360085bed2d5521e5b3ec1703d54c96d71dd6cd481c4f0a60364341edc25d7f57188276428970fd155089b85fa152335cb77d4cc44d75bd3069b5938f94bcd5560b6f4c34931638f6b9d06ee737be46adc68005dc21864e8bef5111e923ef29d7db0dfdd7e10ed6dcc359a4f1e96d86d321db980e7ca042443ff037e5c868e220eba560f516dadcd3f27bda568cc30502b4c2f2290db115086e13187b5c8f9d38d544b0437ee5ec3d2970f2371fecdf5b709fb8c3443f170dee91431ff17405229978ecebd6a1a99703564db59692908071bb08b08e7a", + "0f9c9168bb1057f2b3f63d3511e983b5a127ab9dce756449d30efdc56f8dab27d81c6356044b34ba1f8db5132326416060f56c389c264f20682876d77d9a6f620538c2a885fe8c867a55fe908597c863fae1b5c48eaad4ba00f893a7412dbcea76482f3b9fa726a84b716165653d2d14f06acfef1d5e87707e73dd8a2fb3ffff03f2a58fa80f7585369b0baa1ab4d0831176c38b30f10156ce8b8a9b9bcdd002c249944a75fe42d5de589be939be89a893fc85cbb06f5761761dfbe948ce72efc39629f0a59b7e34d1e2b8e2f0ba2440ddbff718ccb1819206cd34aca40b2400834217eaf4697fceba32d42e3ce7b77fdd9b", + "bdcc2f5ce2e51ae2511eb5436e650ee97234e7f0bfdc8913b627", + "0f736c8808e58f10bf9cd5941b02d2869b6c980ea99e8c8cb8106b2c148abbfb7f56c83159aa9ab9bbf5c58867a508cd8ff97232006bf3e2be24c2db8f894f333a37556cd6f385f5af1d8d60989968f026650e91d4aaa47a0b749aec47f77387cb1192658ec93882216464be124bccd256a3fd1735c7dbd947c56fb42a5f81e7c70e2b134c8287d4411babfea2d34aa57521aed7c723c53ac2187ebd5e779b3fb51f40b41bec8b5dd95f82805a73649011f4c4704c1302c3b7549b8fc9e6dde9a878fd9b6cb2c96acaaf03343a79fa2e8c42dd6767e54a12baae8e20e91dd1d016ad296f7bb06dcbec9821394bafc72899dd" + }, + { /* i=2738 cDividendBits=992 cDivisorBits=452 */ + "bec8aa3c38d13211f7d986bc72e80653358898342da6e6071268c3775c6a73acfca3b6ee15f026b81ec613e7adaecad4c0d421edaa64f4804aa87cb1fd59305e3023128d3f6a24c82180ca5f3bcdb42d31c2079c81650f398b673f7af8c3150614283c4def6e0e947f86b7577e2e17a076321047627ce651b6bd0b8a", + "0b4964d290dee2496a6a29c58545a6ee29efdc789d3e86f5fc96adc0f256c3d17058b5e906300b14faec6565ea78677c60d2e0f6b4bfcf6da8", + "10e7472788917dc316877bfd33bbce5e051b17d13d7929d3dbaecebbe17068478ad828accf4bd2f65f7d1850b8b6c3b9490f19b523c8526b003cfd46facddfca2e9b4dec", + "07ba26d738ee3956be4560433e05e8fd97cac027ec228f905f4a7a60d8a8ee096dd42ed8166fdc208fdc3662440deee1378d43d323ead06caa" + }, + { /* i=2739 cDividendBits=1362 cDivisorBits=544 */ + "01d01ccd8e1c1acd6a31caede31f10590e546db5d12e308bb6390f7764d32cf3da5b73166f946d79e66e05a5107414e749840270b70a41a63d48a420bd3f004ff514e16c541d6b303fda429f24c5ed5e83e071bd395d55175dcd2d736d2bc117b754a3dac9e6e00881c4cd400cee37365baa9bc972df5f3c6029ab2fbfc84f1b46bf93ac6d4bc74baf7ed1a70c41fd86a5bf174de24f377ec53637f9c2f7e663b9bc29fdd80d62f2c935fe", + "20509d50c407627c1830c362f54df3d52648247385d4b0856b74154d6ef57b6a179e09d9395a18faff01a3d0f3d2c2469f9ebc46125c0249ddeadea8eaea8fc027273ee6", + "0e5cb8053d26fc389faa1b80dba581649c000636f1aa11a95fa07172addeba7191730332649d94b6bf1fe6e0f2a395615f962702fc47ec5c5191dd5413546bb39add5a51911803cd0171f94e42df8f2c950f58a344b975beb30773ba5819ab4b619071b142ac93", + "10026800b31ec1788442835207e030828995b3e56a0c4d5ffa95990958e301ec34b33d30034d19c57a70ab77fd654259eae28634d5c71680d9314cb3031c099cdbb18fec" + }, + { /* i=2740 cDividendBits=1924 cDivisorBits=462 */ + "0c8130996618cb5e8a48ab6472ca1b41963236a4bf1de9290a8fe1f3e0141f2ecc23713726add82e9e5426cae3092be85be9af3815245ed11371fbeaa4118a1322b246beef94d46c98f1d7988bf6d595fcfd5093077422f2f63cc30130bef313e306c9cd1df167ee7174c14697bed829d26ab4dc4578eb473519b4e9a9f5da6f2a4c11b1492d0d8869756d7a69b7bd67878e29f61d982d0de752d4f98cefe6ff4c36ad0ec04ba24a24a78ec546560153e3c9792f2bb53fc111529f3c5486d3d506319421636a41886d6da1d5be0d4c6b91b1c15796ea9ae73678538b96e70a62265785a874e93d41f442f0cc5f1ae541cc", + "05b2ddb3dd3ce528976cc4f3caad028d225c516896a02a2e83015da6fe5d35686612d57d37176eaa6f0ce96025a498a8b1423616320dc3ce6baf", + "0231bda673f16bf72b5f9444af596cd34513ada7e2c2067970bbf8357ea21e6c73d51d70acf165becdc353841bd7eb44151b348308c6b8d425377e2c0d1e23c4462cef2c7e6d6e573663336c0d4416390c1e15074b3b1972423ef7c12b67e8479aca46cd3f05690109098859ed38f8869ac02bd324496e63bb177033c51c96da245650ee378223b4bb1ff064d76a03ebee69637fe04e77d750077bcdd85ec852a7b0af1f81f1dce713a6769ec8251f46b88a7b1d566453ed", + "036e7c8a86dc4d1d741e30baa2fd52079d4ed54672d870d08b390d5a504f4538e4f4009708ed012f4f865a471843eb114479a08ce2830d85d3c9" + }, + { /* i=2741 cDividendBits=1627 cDivisorBits=195 */ + "07195403f8a88caa7be0cd94b9d87b8f7386b752b710b97cadbdf955b970ac6e64e394c65fce7ef9256bc2ffb6d8d35e502e36ace0fe86933d00a5e739a4ec25f2d44538cb61d8664cba6e9bd4a8f0a12bcf1a091a3b4f5a3a4014a4d6f9758b4f6401f835ef78b356e3c0d8bba751da61cd551f8db72016b1a79f5356b7bd4822ddb13bb9bb0a751e90000e200d1d9c0d533ae3582beaba04fb7fcad1ddb8c7efff483f2d5c73aa437e75204756daa1b001328ac60b8a2ad4d8bf418f4fd9cb16c62a28f7eb621bf89828a4", + "023520c7241f2d641c0c83ba359183fdfef6bceb81710216f0", + "03373d71ae3a3957ed5a04ab209a34b0d54c28f986befda88a2e7291cd2485c131f6f32ece12e57a0406e975d0e95b76b2fb410a748ebac3e624ea429bc5b4b6bfa6f3610448d8ed10cce3fdfe437cd70a3752ce87655bab77478759f9759a1f025a03823dbd6b0c41e3a82f08d125f4694a3af16dd4b23911be5aa846fe7a5eadbe3cb114734328eb3ce73a91464b7c2e2765bfa8f502e5fdd452d7c083fa129dca03fcbf8267b32a41c46f470de723a025140c", + "d612c6193565dd4d7416d6ed0806973ca427e4c332045564" + }, + { /* i=2742 cDividendBits=814 cDivisorBits=571 */ + "30a16c6a717d25dfe32361aeb3e06110f79d2e5a31e4f91c60c83663b57a858eb2d93a3fe97db196d310c017cd43d29c6c261df56d88a2f94663c47c787ea00cc65ef867952bf199e46ac84baac99ba18864f247553a0211bf04d22cea865c5573107eb40aec", + "05dbea61674719612931eeb785c80418ca6adf8cba85f258df8b77c01d7b094b784997ae8f96923d1c0063bdd6e63e48ef331093ff8e36d4cae336afcef99ef9b358642dc5c2e7c0", + "084cd23cc43d2518c48d171c1cb70102dbf47a4ac240d52535350f3f9a08df", + "02ea7ba1f791ac1ab1d9579910901bb87efa7ca328af5b20663e8aae5e13c452049c8ff4f01537feb722cf1bb70c2ae2f29faa16638f0a6ff71f50dd15d5b55c2cda7e7b792e2aac" + }, + { /* i=2743 cDividendBits=2082 cDivisorBits=646 */ + "015ebd64ee6f6447bad237ee9dfd72a7700710e0ce50e01c3d421195da274fd3d572bd2a9e925504d8bb9894c4720e6e8bb19338065d4d8f907253755be015f947ce889849b835d94af5caa682386031a822349b27b39d021e0140fb8b6aa8af0e7714f7df45d25c8b7dd5b40f9f546af29f8eece1e9297bd031e85ce6bc950180451d17a69639551e8b18d2f8b12c8901adaaeb37dfe8afebfcff467f9c504952a5f1b86c5125c55adddb43483dc183c8c0bdb5574d9b4558c8ec06c3e4805ba27eb82883784d2113e611ce37afed7023b7fe7b15d3fe2fe507b195a1ec077d71eb91c929d4ff7e5092ac234e11b4c39b92ff2e1b6e968461113396163700602161da355d", + "393569e81a2ae1d15a333cc77a788389ad44b534476f5be8a2e629ea6163df7a1736763da0f57eaad84023081ed8bd64df3992438fc238851fb52963c548229172bc6e734145fc4c9f5eb4316721823dbe", + "062181e3e0839a37dff9e1d25d04030a623ec831cd49ad98d8ce092d751743aaab60b0ca716b342c3f7ab94bbef46a1169762eb5a30c25a989d9bcf61d03f8387d77ce0cbee23f004a127c1ee4b5564584d2c38524a0c051685db5054806e5d413228e9ece15dcb8aa9fc658ff3b7034499c767d2bd44145739009750506066cc38bea7db430cce8a19553f2cfa73b4776c671ac39fb08b1ce0c112a919d22c43608041c61a20f9c3ea52aad24b4cb8e19a0f4b7", + "2f7f5e67e01c6490d69ab967b9b54ed97d530ba610491a39e4c970668150ee84bab8219e3882ff4c154b14952c96b4d053a6ad05e1c1617074e73f2e8ba49de295626386d4a2012c04d39430a62626fa8b" + }, + { /* i=2744 cDividendBits=618 cDivisorBits=180 */ + "0347261058592efcacc3ea98990bba467c4d0581338b2414da339faf64aeecd0365a17cac360a0b33faf310ab6234adfa27f0699da9dba20cd778fa4a62408c1fd5ffa6df6d25e7e3a8f909d6c9d", + "029db00a7a1e242111880f2c3e50ee223ae4adbf29f389", + "0140c78c726826c6041183896bb3d9109b1d357ab88934282f4573f641e37cefa50faab8b41d31e7149d6f28539b8e7fa14ae7302e2a5f84", + "027f35a56e53e7304e23fe105c8f40df30a7b3db2202f9" + }, + { /* i=2745 cDividendBits=690 cDivisorBits=165 */ + "01337b300a0b4795f7178606e0d9be9cb4f72f548a0a1cfcf96021be760024c0e2e093aca59fbf552740b203f0511ffac80484b3ff28d895d2d76fa0d4c473cd58ca2bf60d2602c5f309bb70295614fb58fa8e9c8ca6d4", + "0fec663fbd63ac0664bc270727f754f611850d66c4", + "134f5acb4efff60c0997cef9d50109e376a27fb916325e125476a65f18d55486b51598dec967803d6ef3c197ee8842d390e9e944e62d85e8ee2f8eaf0bc6b787c8c6", + "0e73a5be830829a81e5bd0ded2924752efee8a0b3c" + }, + { /* i=2746 cDividendBits=288 cDivisorBits=220 */ + "f880efa692de26524d08d41ccc9e780ca818d838d8f845f4aa75b52847715a2d00482a9b", + "0a21865a623b5c4cd9c2fdf7204519b3edf35e72afc6db55869d99bd", + "188775ca47e06ec45b", + "01ee5226db5f99ff2ef0fc0ad66ebb87317b6fafd7e4640d0d57d06c" + }, + { /* i=2747 cDividendBits=1063 cDivisorBits=533 */ + "25d9962525f3050671000da8dd3927e209862bcbcf1c7e533cccf9b2354d1f11e0d0bb6ddc00f58e182b394258e1878a680295d7401988398283eea474aaf37fd216945de8b5a3860a5c093d0baa1d95839bf920372d5e20c008d4cfcd4f483e64f40a990538e1f558a68563f2a1d133da441d8ced9b3345a2389c6db41e6cb2589281c668", + "0403acdc851a99013b1802b6e4722a75d14d404dec5ec1455603604386dc278f203a1586718033900a45e8ec968f59c8fb407116abd22ff2a65330482a7035080ab323", + "096dbbc61d88bef9d9074f9a0dfe417dcc7e7e4ebc4dcbcfc35d6f9d6df9f611df992d88f1593c381518d35fd72906c7b689b39e76bc2e37aee169f37a7e7623c77f87", + "01251af3fee5639bd9b9e24176f15df6b818c2006bd0aebc921778ab2a12c0946f60e2842a608be2c43b363d60ab98437e3967405835ee89eaa936f846b472fcc9f1f3" + }, + { /* i=2748 cDividendBits=3577 cDivisorBits=1566 */ + "016e858cb08a9564097978c631a8e36457ca9a065884dca86f5b3a670e2ac402c94e229cfb30a1adaa96209c0de6fcb13c4ff639e7e1300263ee8c5fcb1b5e4aabec30799a24b9fbfb0c07289a4e83507445a0554cfd38368c8cd0976c681096d0eaf6360d81301f926f47f5501422e4fa16b698ff68617fc00bbaad0989c8059b68833abfd771ba8d6a70f87505f56de7ff186867c3a57503b1659a63f369795bbb85fe89f0cac819b2a71b29ec4150d49efa376994034fd54dfa431cc963197fc07ebb9c61106f3edbe124f1769ef5c222a2f6c78d8a0cedae331f7aa10e83a7cb6cd5204633cc3913d8c9aefd3c5da83c1c073a2d2d51f1311cdb236dc5cef4dd14eb84d2b2babf929bd2fd39a33f21022362391c2a5cad30bc5fe6491a69c8b09e2c76f3e862171806a806969980e4d78c6c6905ac21383fcd560d26b8cc9cc3993976c0b381def5a145fedaaefbf3fafbfc12a113250e963e70e2f64ffc57d4ef3bdb84e496cac0387ebfd0b4ceea64742534f8138742d1f7b80b3fa93324feca819a4015f33e6e5e9311f11425d1b0cca856bb42a5f1448f5a44b413c57516088e9f9d79e401b1552b60bc000e96ddb3473567a737b50466547236f35b", + "178d7051a3feaafdb31fe5cf4e04b870bde754d30c27567adf2721a2def6a4578da261856b8bf0ef4fb151febf557dad5a8c8175bfcf92881301d34c80dcf47552a58151f716223ea6c2f497f5aa49ffc1c7b75641d7f0550b63627e0a557e467b52be51738c51399ecdadf92234b3e2898651fe40a7353cf39dfe5e46899c7fcdaf78524b556ea1bd4acf77b61110ea8c5d96aa3a9207a037f0a3226615bfb7e174edc04f8298e6b08255bbc9a1295b7613035352670f234ee72ad385a5e5e142f65348", + "0f8fd8f81b9d00bd51749d371ed286b00194dd121dc29e77f9677d1f27235d4f1753b3418f3d6e2f385311227ddc8c558ae2d92d99f899948c2eee87933e5a3aefd4dfc1772769bedb2ef54f3228d1994dc44f4cf730d0219af582721ef64e2ceddd845980c3331311f69deabb9962975b45bd84139bf6d66af241048db149653a6d0c5c8a7063503ecfc2212d449210d061cc4f7ef203d8544bf7110cabefd277a6fc800e4d8d4acd90ee93411ceeac849b811b6fbbcd7e59eb3c2e5b9fa081790ad13dff4ce78c13f2eee42ab68a45a59be89b94bca8ba6b74c88b1d437b8c5d1c23bc2a527c54b86268fff8a47b77bae39ffb0053a337381953a0", + "067b84782cc55f33ca955fd78f6c2e262cd795c36c73673c28e326696038b2c8ca4f613dcd81744975820efe1b54fa30c7bdcd652139f75473f7d235d702da11bd2e56fd077121e3ba86ecb60199a77dad930aba0279c5a8ddd13e863d0ad9966e67fa4653aaf3fb0ed2b65dacf33482fde07a4a7069557d8468bdd8e5dcefc79983d2063727fb46276a9d7c7bc255ff606375ee3c1b479b321676cec4e43bb55712e22267f19dbe9dd4d0b2f641b7c24ff6c58148da5a81d00510b56fdc8816d93a8e5b" + }, + { /* i=2749 cDividendBits=3278 cDivisorBits=1108 */ + "297e17479fb4dd6916ba64d9b292cd963364fe1d39e269e4f8e96f3ca2c5557a9fae75908936cc8e87c37b2ae548cebb6aa4f458fa07da2c8e323f54556c1d49ab605ddcf77ab61eae032a1deb884bbcf3a25f8898a809036fbe8f7c4fe8598fc5bd02adf81212f4392571bb4de3720c4f243eb74f3aa3fff31779c19cc00ec4a6c7869ffc4637c111ff4a13da494e68bf02cddb8700989c85c17696938537920d69d37a8f5c906413a680651266f389f3b7cbdbed0a86b39d8fc1bb24a1e31e4bf7dc8d5180f50377c4ab731ce0bcc08b36bfe848f8499236f88d2165748f04fdc622cbcb02f6fa151e03db676a613581c3b9e03da7a2ff5639f2d0a6084e4b692103f748ac209dab3c18f604050a3a7879e3d186c13fee72827c9d0f865a526debedc927af42f1d10947f65b381801c79c8623bad4c6f6cd51c1b6273cf293e28c7fda0fc2a41b40ae6b5ad6f19725dc4cafc64f2a5a177fe6420255e065249ba429b1fed7ec34e92d9635411561535f1dcce51237e65b2e498daea326308107abefcf4d12b443aebd00b32e2b89c6240f2fd5783a16de1482", + "068276b1f8a95884b144e065b46f4316279e5428805ac908598d1d125e8ca1848ebe818801d529cf881fd5112e705120b88ba4b0fbc3c8e9f33526fb315b6ddaca8e98b6c75cee5c60d43f6daf5cfb080eaa02a0311e3bacf10392f55ae8c12036ff06a9801aa9f8ddbed843d7899591a9f0c1068b81e6454b6c5b4508afc1b250f76a28b29d39fd489645", + "065fc07e63044b54ae2b8d8e93a98fedd6155637bd34e65ff731a7106a3a44be97e9054706ecb21d0ec07d3c401fb0f43b5959f65884015720c1e5e6e551b95e025a865772b8860e7cebd4b9eac7d792024a091dc9c052b818e1e41cd04bf2f33bb6164ca83e22d7f05ea886d0800bd7e8051fabe56b7290d0c53f3d8cdade241c2602a6c292c7fb16e02835fc7463dcad8878de7f36906d6ab014c48ac68a02cc104dea9e27bd18d846209e7587d8012d66480e3956e472abf5b1899dc85bf67308fad02c695c80d435e92e67493a299cd31c8120f0d06e5bc1f3f79093d00f9df39f1c68c306dbdbc9737624ecebca4a94012d07490f56aa6fc5a63afcada66c704e25167e63d70a6ae25135ab959b", + "05e69b936962fb8d1502a7650c4b27fa8de9db1b258f0317aff2fab262bf04cbf6975e1cfa3e5f789618ff434ff758bc8027238f6a544451bf56e0e55abe12ece15a39df1345c3ab2c15ba03990b35760e389720f67190b2e12552c80717a800aa7c36faf5e723eb902f66528bc1d5fb0231d25bc7fe405b495171f5ad35eb9927d9696bced944d35defbb" + }, + { /* i=2750 cDividendBits=2740 cDivisorBits=457 */ + "0d19b0639fe0bd725094818f482ff35ea380dbf14e6172c816537484191fb352c560fcb8ace047ef488c22434520120a221b928a8f7d28dda6b973e4cebe3dcd98ff47e57bbde6860a56e96c47d418279415abe24e8eaa83c6eb8b87cb37ca31a7a51c26939f133d6ed33d1db2afdb186d0e2ca0c1aa313b853db5082004d238729d257ee5f5c82236e1d3f150c470ac99524cb37293e56418b77d994fd1ce18f3651092322e3d90ed99a6f21fb7e47023c11608b8b8ca5c04110d41f07eee937235b4a9aad69716f4a627d9015c2321c6d01de13d395fa7663ce4c990cc591961a2d9c02ecdaeac52470e9e7b249fceaec68bd4588aedef3c154c4440cab8dd3a04955d4d0edbca5c854619d4b77a8fc533423fcc1fa6dcde966431eb9c006fcec4b9b6e6e78cf2a0bce8c1cdc3fc32da3e58bb3c2f3eb814dc905e72225d0730dc9a1ce03533dc25aaf3e658dfec07fd637ff577461b", + "01333544768ed3797501724ccd8b3175ef5ee7b22a07d18031afa86aecbcf6bd25effef5dfb92c8f9ec7b901202e917cd84c62365aa7cf38eae0", + "0aeaaad98741e4afba89a73e64d33e9e251e7d1e5a2cead645e450beed08d9dc2b032e772f28780558eb436bc9745c152b74e34ed165f16e86344e8519454ff351ad1626ca4ac9cd3b49910ae4a9122bde92473383b74b756ae28f66eacc3587cc2b776e1c8be13870994c0e3924ed45c0518c83aee74d31b9e08f097933b9e3fe7916521fe1835f6fb038e95ea878a4001c0a52b2d2d1febcf0615d99a5b66a73bf0e5b529bac1ca50e89289434d314886bfcb20abd66c496508d42318d4b545e8c2021437450d7aaa234cb39f23f7274ec110ddcb96fc66825a11575bc0a77083090f4aebe0a1693415cd31a57f04879372e2f16af6c33d67253a04cf68d0987660685a0b501918a18ef3d5eb47d6833a9d6cce6b57cfca3920b4fda9f", + "645603d9b2a6f63be60baf21a70c275364acece0a36332d5e3cdcbc5e318a87ad3a0faefe9b8eec750f58b8368fcc76d5c6ed53667adfaa4fb" + }, + { /* i=2751 cDividendBits=1377 cDivisorBits=1203 */ + "01726442011bd4ff3a194694ede1522ad3d230988232b860a5c14ac554bfccf713f57d0050bfffb91a5413669235f4f42deb34834b8baf9afa7f6e6f6483ff1cfcfbcc19a90bee4abe4837ac66c886c0e101c26510ed18b407574eed2a99c704b2afdaa8ed24ef8624e6c97ba08c683c3142fae08930089a5af6d742f8730e112bf57ad2e83e5585cd7679044528d3f2e19d226724cd1f421bf47bf831db3d35a72bce5c2f3019cca742152234", + "065b2351e388ff20e4694d72d301ca0fc409573c1529d17be9d94f7b6a8ddb1823e9d379cb5cdcee17ec7dbb86f256cfe0640db13512b497577e4798b15a587d7400e4b15bd41362cbf71f4d038fbafef6d7beb86a487a36c7223e792d4b6cdcb5b9d5c64023a0373c361997ff6dbdf50a3760a7e631bbfeadb00d02a50a11187c64c5f70b9cc5115d4588e2bbb0c95dbe0323b4e0762f", + "3a4635c65f3bd0a4a8901399fecf945e42dd5592f81d", + "03e0d48f8b53a03b3f368b892d0e00d7987af6a9c5039070bdf5cc064d63796b66d37054f3930f5c5f77aa14d6e28640d66d9de66c8b5497e12bf2c512b932dda5deaca1b4ac797ab2df4cf282d9233ac75c9e9fbb63f148fdd954c7996465364cff34eb91e6588b4014d9c384d00d2e73af8eb18e54fa6253415c003b6de46fa80f59712859f42cc53e792ef169f2439d068e505c36e1" + }, + { /* i=2752 cDividendBits=281 cDivisorBits=120 */ + "d065373df9b9e0f5b650599a56c7da183438d2de4eccce1ac69aba5c7ff37d54bb29e3", + "31cc20a95f32f286a623409c547f4f", + "042f536e1a2d192945a8167d0d1999744b274ce775", + "1c8a81a202ddfbb61b2945cec8b1c8" + }, + { /* i=2753 cDividendBits=3596 cDivisorBits=3260 */ + "0d918fe40588366915e9ead3fac94728656b5f5c02798697da2b17388447296778ffd588e40464a1368b08f7fe0c8f5cce45e1a46c3db60f813a73232df9b71606d71b6c1b30a81a633db255213e473d422044feec502108c6493931c943c1b1a63bb88fad57bb274bfaff50c26f9fd5e0a18e1cfeb2fe48026bd985b956fca305b545bf8e7e2d590d07708a80c07e572e13e2edb40d976476a006f17435f461ce05fd6b819b843e5e10e5622526075ad5f7e470e3de83000b0cc78d32532c0521c1924ef588746a9ac6876ef5cb8fa7b4cf3ab834479ecb544cb3e1eb709c1a607f4da4ca2ed54374c62d49fb182d1857275bcc755e42e2ec1844daae6d006ca5dc5378c71cb1abda2c0dfe8c401b543236732d3aceecd5e4edb6b462088d05d3a541df9b392579368197194612859cdeec8385278a4307f9ede2b671d368db07a29ece1aab9b55dd5299b4e3b959d9a1738a2f1052f845a19872b183ea749e68b76d6d6c78c6eaff454102e6d4e4e6d46efa9f0b246511193fce349d1a6f8c66c17bbcb5af2af034f40c7ae34b35d3a31c20f8c0e2dc6aa50a7eb2ff4dd5bef192f8ea42c32358a076235f55770ec2c884aca7c12fdd16ac4243c3d53d0514a95a", + "0841f41620bd722fc14547636da0008cbfaf99d24e267ec51a94da7ad0a2e1519be3c8f2269578c8b93d07cc33c6ebdf71c5aea5306a34e5b6c09774425abdc6ad04b546220c557f6f7018bfb5bc69caff8b52159f421121c8a9eb60187438419a33c4d731d09dcdb6375eae97334e1b089c466f953f2502baf2ec2cfcad82bcd8b3c6cc1c5c685e7fba3f327cd06c66a775a09ea330385053dc1cf14b9cb125722d6fbc46821394d3244f1e8457bb0dd1f2ebcb06d1f4dca427184210a5ac3c289a8d87f22439e4207983ee2cac3345cf99b90b8d620d80998799c19b3a4a944cb283b26f4f733fc1eca0f6d2d77d0379f3f2940d361e57fdb77b237ad749ad7bd1c627a2457395a89bde05e8853faa57e8da73a0bffab3511ef773fd796306e76b264aa12a42f69d7170c58724a7ee1cd8e0a2ed7e8129ef239667069a528d55254b68a2d24b6e47f3e7a1e3e1efce004bebb970353b31e6ff18cf93267a1ceb68ff439d7d2c7c2b5cd34b23a55443e8b1fa979595c61305ca55b2349e6cde5723da3f739174ceb1d429563bd7bceea13c4e0e8c4d1bb3", + "01a4a614c30507269cd81d9f2f37b89d70698d9843ac5700a0258a59410f2a0dbb3592e353e438515de363", + "24933b466c5774b99181a23b517e386a9701d25546cdd1cfc53e58754ab1b46dfb4fe2beb922e0f598ee74c9f09df2a5c2a34a26c52f3fb0629990fb4de5631c3e6f31f6dd90e798cb7eaedf18e4d1ebafcd1564fe23e27491b1731856d5e1a71aecf9bd2d7e15d1a1ce59931dac4352cf8d7462bd034897b868230fd8a2bd0ef48ef988886e652cc570b4d6ad7d454474ca6e8cfe39c89266edd57d15729f8f6f9fe58ecb0bd7ff95a759bb55f0a7adfeede3668d62ce6476b66326be5764cf06e8f088db6a8ba054b09f63981f9d4b23521225f8571324320955d9fb9e8d961bc1110736b81d875b4eed05903bee3c4eb8424cd1fe81b344fd96eef8544bdb8667ae18dd129f028d17625273544752d7da82868786e9f023e28a8d1c334afc92eaf976e4c9b6a495cb38c9b4f32e8c5c74e5656c2d5e71932e910bdcad6403f60581c3012c62c2c5c67cc63aec0e4b74545378d65524c8f5600cfe9a660b5980a6016ec0d1a460b1841c444dae93715977140b9416f1eae6b276c4e8f8a49093b6abf54c2b5064ddbb9ccb1f9b9d68fae645b0ac3a21" + }, + { /* i=2754 cDividendBits=1417 cDivisorBits=1141 */ + "0160b1406095bda6542b623d5317283a55207252271997bccf4b82e5505301b90f51dd9bb34efc7e5db92e5206970f6ad1e4f6afc547840f0e96998d35b6c2a01ea66348ec6eaef32efa39134a6a3c9b46a9021aee9969c4097bd0e90f636cfa268306728b8c12c5de5479515fbfad66a80f30755f4ec7710c4d57f7ae4fceb064e820ea2dbd69bb5fd7d9a4173fb6cd4fd2ebc5e567319be7d11301aaf46b6d534bf5b97590663fe10996670e27aa81bc13", + "1ec0471333f95f1b100ed4a36cc5c4b1c4f6035edf2525db7c045f4e0365ac791a8cd95cf78dd77f0350a46d957d3b81693d402685e4c172ef9a5554af0cfaabf83c48eb9dd6e7b7609b7ef1ec17991339333aa1ed4e3942fd6a8066c1cb64e304fec9cea809e1b1a3fd556447629c97fbd8bcdf54ae1826a36913099b0fc57078e735b9c91ab14a1faa159f2e5a70", + "0b7821dc3187bb09b2cd21fe47c073d03ff70cdb2bce599b199be9e3f9686f8749304b", + "1471b1b501a317c266be7a863899356a57730cd37f13d817fe846b6f9a0bd9bf07396f6a7e163452fef4b9373895bfd99efa0a5e6dc98c6ac2f1a4064ea29017ef8e597f9040660fc9f9783041fedacef075678ebc864ee14987377460a9ab9b76246fbe7ccfcaedaed4dbd712750cefa0cdace630b9335e378109f1047a97ac74c6aff5cb6537e7599f807d083d43" + }, + { /* i=2755 cDividendBits=182 cDivisorBits=84 */ + "1d210a5c837b39f9b929bc71663888ed70f4481a649327", + "0f6522bc9f4df18d925a5e", + "01e460f575c926a818359a8ec1", + "073e8fed8295155e624e49" + }, + { /* i=2756 cDividendBits=854 cDivisorBits=368 */ + "30ac31a14d292ca42e7c04be0714d8eb621854d3e31d9ca17473c42ff2a217732159f574262402c6525ddab18712eb7acc9f8fc082891d5c9bda7db1c08d36b828648a4b42f9a830c808c683e4ee89d8497d1971d01ec5a60ada8511548e038d6861686efc8ad357a4f23d", + "5f450f772d7b3d990afeb85e042cbc58b6590a8ee8255388b8b24594729d3cf3a77c8ebd94e1f05a4752ce8d3fb5", + "82c9ddd455da5a8bcc2acc9859abf3f1f8425979063f76f628eeb79fece387d754f527d11ec7bfa8a462d840e5ff05a8879538c879923b9d7d391ecb6c", + "071c67f8e1d4bbd59d3e0d1569ca0378810265f87532b2ce5635abb84ddf8fc4dec4988ada7e42e505fc6e538ae1" + }, + { /* i=2757 cDividendBits=2779 cDivisorBits=2411 */ + "020a752149dea09064a889d6fb2286c536e6f4adf686353cd1520d73ab7a10c80a992526e6864a40aa3362164f4f5e74805621b578a76676cad39c20b714c6a7f2ad7ea45c1b338fea7437b9b5fec2abcabc5023daf06670f06c761c06ad8b2d112f15aa15e90908192dcf5b4cca7f47f0945c1ec0e50d36058277cebea6b925d6d6bf7976e48bd5ee093b3c3d1d50b20d5a06c3530081c5229a7bd0d6d90a3c22549c80c4c5073fb4e0745680639632098fe9a7d7601d9527edfa8f3cdf7a92b671ad1c330f965229654b93939fc800f39a864108d3a188de4e75f44ea5f7def114155ce330ad91c09c44497c0df46ea96c81ebfb5dec1d15700eb4f876e44920f63d436bce18334ede96d3fa0daeee197ead0c7eaf40449a051d92672956e16fb58854c5cb2566ac6728f84ffb88bd0ebbd5a9255be02e6b8ffd1b0644e38bb8b509f293c52e8c344e2db512c525508343b883302c41bc76a5ef8b", + "0652d7d9c21a56f5f836c690843382fd3a3ed7c01f0d622b0b4c975667bf6cee2789660f6b4ce91c45739cc8b60acaa7f38dc8372b6267abc90f4ef620be65c35f6f72ee1263f74567f67d6e48359ab89d31c7c161250ce8e809b1d8f1be19e1e01b7f4280aad365bf2fcba6927c23f723975f8addcd563350f4a929fb0dc6426bbf794c603adbb8b8e0ee71e2d7d77aa537a440b32ba7c0e229c7f038a50edce70d67a5c2e106d31836b6ec3cfc43c252fe9e3909ce4210f02c4e8ad74f339580cb97f63e706a57c30ba8607aa7c7ba5d0ee2e04439fd9e8d5b28c5887c10d8ad5745af0a5ec457c94f56b0156edbbfc991867bb5f86bb9819ac5984914d011db3cee479a169cc15b783ad64b9e4faa2814a949a2c53dd2d9548d842b0c41c1398347e30916e026eb8a3f3763d5", + "529ec4c5fe887d59f3ff2640c854763cc93c9b8082dd8b6d34fa0c837e7a13ce3e296c564ee0226dcc298156b4ac", + "02a0d81232c7e2762c7d5119300657b34125a9c5ed6db2e1033e8060e833a9f3cf7bc0e71ac5fdb9256a97070494e9919ef56c590050980571fedc448d1fdfbf957517ec45f5cd1fb74783cb5a1e69795f7351a38424cd72ac2c3a330adf4366cd532c485678ff49a7500bf5592261005a8c43f53f44e5912dd8eb231ad4a98fed1963420ed5dd612deba3a16d7686b2ef405e31ef9049c3c69a061495cfb7dbbbf35b74a02e8c49a321e49049a5717c76ec8df34dec47693aaa3c9d24248356370ed423c258dd5df48004c327bd10caa3f5e72cbfbf9691b6558733a1720ea484c6e9d31729f889482e1eff7fb897d89df8155f3c4300e55a6e1cb41f9f14e76a1e81ea7694df8956fd9baf141f2fd3acaee736b6de7847be36c3585a7718aff382d91234095efeed602caf186f" + }, + { /* i=2758 cDividendBits=2970 cDivisorBits=1752 */ + "01d887a7156fe2722a35b6129d361febb22e1c1c7e4db35590ef5424679685ab3fbfde59ce67fc6ab934d8a663639d92fd87bd588bb5d0b29fdcced3cd139e0cec33c1d87cd84a9ce2dcf289fe4c82fafdf95a6d9a8e2b6c14ca43129e175ec4a1b0ffbd7ee2c189511914c108d2b2a218511c9670b75a2b847180e93b26cbb374f1eb159236aa102c866231f6399aff506a4e38e8e2b25e170452157ac9c92b9c35f449c9389617a63e2914656affaf03567926ad8fed0299311a606f59e5d7cc4786cfa818b40fa568fc934778138cb699ba8756e2385400a6b2e92c38a905f61e7b78ab3081801d519417982b10d563cb375d052b8c58b2697115a875f1a5483ff516ad27c04bb218afbb902daad14cbf206bd50c79ae66ad8943145dae552840b7260b14a4ef553a1188ada32c4cf3a691d02c2e768bc1fa291be2f31d9b933aaa66f998e615e4fefbb7b1b18d714f45c1a885c046df23b4b3b09095ad675900e1efca7f42f7c355d5a587d254be3807003f", + "8970046a43f185380bb87511acc7ff352c567d2742b38902529b92d7e9498eb75ff5191fb62222b6f41e1fc5dad817930fc83c1ff1dc4b0a1992381d66f3db619eefe83122e8eb3caf871e7f5e0e74fc4a019770e22bc1d8fd67e356b7fc17a0528776b2c2c1f06f4e0b8713603e2bdaf44661100b0ead8cac5340a51a0d74dcd2a14df96b7e2494052f4c4b813a11835618ac875a46d497eec6acd697270c44e435dedd14a87a4cbf016f639d39ece0888f23b6550505587492983c2b47ec1f25d9eb0f76481bc65fd212c1caa9a5b0feae358e0a3f766f81683b", + "03702a1579837ad67fde88afbf5c7a4ac14939a7874fda01f6e7eee0b243bbd2e72517183b368c147fbbd67a684b81b3be6f89034f618381896265cabf812a606d4a45a3721340f67d3029c4a26502a693f39d1d4a2199b2f0b657cc70f0ce2f41ba19a3a8df88965b002bedbc956d613c318ddb8a64537cd6469f619dcc11cd4f9062f2a7847feaab383be04ebe50fad58f965c35075ba0c4", + "3d4da9ea348d78340cb2d003985647d683eb5cc2dde8c05b41603ea3055424847887fc98dce3fa0d1b4169a16ef7247225f8c07af1453e6e6148a41968c68fa7a36d555ab94271c1d15587044f1b82d37d34b0a790765477821aa7ddf6a05e4f8c6ad7ba67cf14bd5b42c66d45f0b5dcd66015d038645aaf6aab2db015d20f31abb237a74b5b2cfba966652867a93198b7f8922ad7a97ca3663890dc019a2708ba7c4dabc123b75c7d590414216bf251368a78bfe87aab9b156ac0c790a0790f2dfacb99915168a3fe7d10b402f065be098cc2f557c34f4dd55313" + }, + { /* i=2759 cDividendBits=1694 cDivisorBits=1150 */ + "28db8efe7c939e93e7e6b1af7bc844ed830abfdb9a1a421d9e667f054c7a80aa207d14eaf0439cb24093ed04ed3e68984c8a12147e95af336ac48c36d2a1a1beec4abb63abcffee35985ce93b49547bc65284575d702d01fc99ba30b1100dac24bb6308a12080fdd75001c49698259c522f309946d9deebc35d72dffae25e62fb73e43e36247aaadef235ecd2944ebc753d4f5475fbfd46823e5275eb19edc31f9e060617bedfc68e695732ef620fe4e054db73dfe6e9961a03d50f023ea4e3cccd405cd7fc8f818f53c542584fc0f1e0aac2b22", + "17c0f849a8e828c646e41a8eeff609736fa7d66990bf250dd035c6699ba30f67e5342d25fc511e97633eb4b4ea0eefe1c357263db7e796f2bb45eb686911cdd0d6640778f94dbabb1773ee419f17a90d3650c7c8267e0bb3276967eb60798a4087d5339c68ad7210d0f4b886dff4a506f5977a1e996117d987ec113777d61d9903fe7811aafd60cdad2e00effd9d4ff3", + "01b8550cb0bca8ab27417b060957ec60fb124ee110273bafcf9d79ba17e27567dae0b3314b0ddca4de32cc75c3460ebf49603bfb7a7920e08ccfc5d8444526ce5edbc8b01a", + "1354e4e182be0b08030ce3da416d81d3f36ea5de8a1605323a84590cfc84bb0b8f3e93714e14e406859cf7f1af21b1c360760d1e36f1e570f29e1059e28e605fbdfda7ef290fdf0f257b7918b7b103b6321f0b2a42b4e9a0308a48bf90c8402047a0db4b11eaf8717b9df3e4012b24400f67ca8b034e9111dd609a18688264e2f60cacb2463faace310c5cdccae2fc74" + }, + { /* i=2760 cDividendBits=1146 cDivisorBits=186 */ + "039bfe94f77c3903dc342ce3df4bc0da5e49fe9f357e5c4f7390a87d7644f5c4fa7b52a4912410c254a6bb39f9ea37b08243f3feda38075f79296cd709b65ff16ef17c59c73a270157084bd6388c1ec36e19d832e7e31628c21794f6c704605056e239133763bdd0e15d10e4b37faf6960f6883797b0c6dc85ea6f6426a6a3131762181c69f8d1189f1b0b306bba4ec5", + "01d259ebcf1a4ad7e16d954418af0440a61f153117779442", + "01fb3843ad07e2b9b1803f662d8c348052dadfe2ad8050a500192da7f2d79b9282efb9cc5630a19a6ee64252affec38ee9f02e04ced17705267480e5bd8e3ba23c77db6a0c7ff1a59fccaa779c41f4432f6a8ecd3c5b59111cf7d87db757ec65ea2ff68cfa5f81fe1b90a0aaab0fb327557815f2c6d9eb6239", + "01625ef8c37d94058f0663740ead393d611091c960c30813" + }, + { /* i=2761 cDividendBits=3189 cDivisorBits=1440 */ + "0a636053782c9ea48d24d8b6fa8b33d639c7f5767c33e3c861056f83a42d3d59c6e5b653031c59d2484cb6f7daf268d100302bf81aaae597280d24502b9549a90e515f1438953e735b2d30588d25ce5acee1500677d6572fec41c1be5c0245137697701ed8c129f714efdd2a3cd64088d542641efcf636bc285c01c707708d3ecab8c842eb37d933096619022fcad6485708281347413a74ad0ea0dac9100334ef68b0e135a80d91752fa8a36fb20010c37c1e81b3445ac3edb658331575ad73577a6987b3af55f5a2b2e5ff2de2e570d3ba274ff00e08a31c1533a27c95948e8fa9e12e7349b1c020f7589e28187d1c899cbd16a5c7a4b2b7745f756948a0bdef9005074187ffa016a206f6eb3c80f488f23f271e8fc2865cf3d1239c574fb24f654d4b390a9fc6b15e48f89a36f7c060f0264c243b764e9127ad07668489c5cae36671cf5370730f95b9f7e3e7502b3ffb22fb88da9eea974a899280a08068ce1cec5b903f998ccf3bf3ab36fa0fc72e87988cd65605446df7684cc2881971b085aa8f1af8242d2009470341fa86", + "c4877499c7b317f96c69306d981033710dbded0287bcfc29f8666544448b8cb5ea8ef6f578e71521aafdae07a21071f3cdc3f75ab915481060113814bd5c06c45a2025080a747c3b20d024f378d1dd622dfabaceccb1be5f85d51bb05dcededf47c9d608ae91fa657bbc17dd7a4fe4388ffded926ca204af943b45d262f906ec2dddc1d8790ade2b62a8f7244b5a45695c0a42d76b9cd9f154d64edba23ab3dde72335a36547cdc1f313a2bbbbaa05bbf1df9946", + "0d881e89defc1e20eece61cbb2541a4ccc3bb18da1f8fefc47c42344bb407515736507c58d0218aea896dad010da71cf954fc5cd55655c702646e4338861758b79dffae2abc1c3888c159d410d8ad98702956acbf7299ae0ea0c5600a31eef0477b6c198d6b2085f1b05227f58a9fb28f0a5ca74b49910ce8a077260b3c1f89c7138d53d5ae7ec4768c9f4f640f81b554a53e64301fb4dce9236f95839ced029b809c341fdeee01142af6247fe96094b781d446ef5b4879eec5c9c49e2e272aaa32aea7c6fd66f2ae804590f66da01f5da653aa8a5714f381b631c", + "651bf7fae303aa3feca30d067f69374b79524a00dcf3ef6c9b5d207fe37822d2e488ef873cb357eb7150d087194caa29d81a0c6642383ae5e0154841454a13291611e0aca7a004d9bccc7f33e38728a371ab21b4df3581c88e82d22dcdab52182f8a661899a380d0d0ad52d988d448ce15906f6af98316592cdbf4d9848bb7652c38ec8c84e8e7c427b8a783b764ad6113c4a4d35c7d86a75940e717f0d760b04efb0aecd4fed8499f91e1861dce1b789c2524de" + }, + { /* i=2762 cDividendBits=2242 cDivisorBits=1958 */ + "018b58c95b49259692be381929034b0d956541b1f19738e4b1df61657f8cce532967a321d476f9d5f84614a95b3d2054a7bb8a775e1b158c2939c3feb2dbf1ab7cb7765aa2cf5246d6f29c8715a026c4cd64a2d6cdf736ce33fd86b63ff00cec37e89e11793ab3ee3aadc49a10570b27e30e6f86a8ff79e1d0bf3470edee2c205a4c20ae41fa502fec85d1f15e0e1fad99684a3f961133cb23e99590dad4d9ad92191a516ad678acdec41a61fe4e3d8fd0a06e265e7cb026879d4ff667e7df2fd17ea0d3f2357f5b1446d25c28f4204108781a7bfb1a02b04824c4b929a3cb52f9a6200ad9dca701e832199a0f5828affccb0125f108663f5e468d80349c4d835ae13c2522178077c83245da030df8ccf53c9f79bc2cc332b2", + "3f5d4d23d2f004f27133774b5739ba783b73cf061195916cb918565ac11a89451968a30628361d80ef449997bb3bd112c8356e77a635c32e14bf132507b48bee81a838a5494894b17b956115dd8cfea35364dce1ef83e542d329576259c05491e240eb12b0af8f5609f0dc0b11c0bc72b90e9016eafedef73a6d5391773a446e60907d9f74b9c5ea25034b8cb92107cc6a4b1343190c13b773db473fc3c14c369c484fe8905b43c4d87552874a987db5a7882c63ac03aafdb04ed676c4814f5db7f1eab714dfacd7e9c60657c1af4a4ef7cc1dfda84a7e79bda8b0eafea9d54a49f2d46c09810cc5651dd54c9af9a2e2bf91b6f371", + "063d3f9e45a45fbcea6618f9587da15a98427f39c7762289d611e58acd4c40924e4bc391", + "1a5793bd719ef74d287b8f8a8dc4511c967538429afcfd8be322931d59800778ff1408c1c52a19e25200f2cc333bb2fd1d7953a6efe222a53692638ff81a7f928af2bdcf3f6ce9bcd673b303e0281ae6d1cb9bd9aa7053646ea67053a843a6ec4893146f1e58e1635e67a34288123ba36a8527a9ee885c5eedb83fd12c063208ff337babb87e2cdf18fe99e771bc25f5246a336a4d7d01d7aec2d2a46afe4f3b1e6855479ef7a11688b4ac2a76193675442001e0e0b6becd95cc9e92f39c279e13866b64bdb21901c31a8a1b9645213745479984e28f6b3a26dca566ea5aaf91609745b89bbfc2d1b8604f505d5e609a0488993cb1" + }, + { /* i=2763 cDividendBits=3688 cDivisorBits=2404 */ + "072712cc190284257b0516656e6c7c349312ff1af5f4dd9b41e857c3e30f418910ddb5026c8b687f3044410b67225f84979f875a1d9aad9094abbb932887838f3dd3c017819f6ff1ae6c3681f1ca371e18a6ffa89682b488d0078be20fb7fad324fe0977294d736c07482c13a96143a201196a766d4e8e837146960138252d1c7d64a4ef4e4e8e57c7dcc1dc275c0e3161b851bdbf8084baba030a4cf6ba52d1bb1c298358caddc54a75be9834a175fc874863cee6ee5c9d6c2a6b0339617717a47e8b7040bc69464e896ce8224d72b409f44878a2706b2847e62875d9dedae989f85963c3e9812569703bf4f31c3f00212fc737f6cbe1d92f6a33450a6ed86cb36f4313bc9f5275e26682f9b1afb372f5517a4fb99090010db8ce3c9031650c8d2498f9b4bc52bb4ecc3456e11019a64acd81e98ba417b05928f8af85967428f5080fa5f09ba1f512d520dab3e5b743c16c9a0e7f48e7a706f906ab027115a1a6e008215d39c2ffdcb1b7fbc5d6f68cdf9d9c171a911bde963042fd5ac5f35acaedf7695e7892c62d1ad18c0d7fed45f2f750f09aedab64d7d66d16bc372a84da24498afaf653c46ed8a7761a7445bc72c596bd4c48a8722a8008800bd3076b75a017892ef8ab376d5fdd64c1", + "061d52db76b2fd66bcadc3b370716692ecc44e22bfdf9991ce9ca673675ce5db317e270705d5593f800f1f93a8c10e05de2cc0aa409fce63a299248fa47ab631f1ea63fea9bd87d9416df42d30fd542a45e5eab23b51984b0edc55bf64915520ee4aff27e64e5b6be9063dacda41f5ce6fd197eaa864ea9a5d8e4c5db70127029abc4a8a97b139eef3dd8d215abe022aed5b666d7c6a22d78d1f193137da976866a252dc4dd557228a576fc829e2c81d0fd1c65dd275a5270fa364300a6136c33a6399023e8f28ad70e82488279cce630a1c868409ce27fde7daa27138b651d19d05ae3272383e023c430110fba0fce2e5233dc65f17c0c1a736dcd1c2f149deacedf850ee985310a080910cb9505a923aec6abcd81ed79e5180dc632f3d12ce5b2bf7610067fadb7ef0a4046e", + "012b763f0f2e43a95c3c5f631d7e3aa00d57371ad880ebbbee95baea2c0a26c841a29a2d1f5b22a4ee130644727f83a1025d2443f0a305b69d18d66ed9d233d9717d773676020356946d16bed0ecf767b501f59c4af68450c3188338ef5257a60fc6082688e98656361f9325e468841aea8c8959329da39fb9c4e7d91371acb88e7c77884bfd4bd8179f078fc0c74341cdac18a14f7b5c73f3c515318c044424ab", + "0474a5e4362e71b1d50ac5fa04e0966dd7bf4cb86bb7d1315dc23fe7870d3e71ccdc9f0f521e7ccd4820e4edc51f5bbab646d0aa2cb1c6505c10f63b396c5b1eecff5c7e874e462baf664a8d7016d43fead00b4d5764c088dfa011743337305b7b8d9a9848657f81937decc538845f844bda036237571a2dabfe96a6498b210682d5a58e87998b9cd2c3361b93b73b8eb457a23ed07f20a1a45b51db40faed2e4246ec71a0bb0092373adeda1e48c641198da6950ec48aecef637bd6a6770ece7add76f4b9dff4164f6af39fe377287ccadda463d4c463c2ea13e48fa061bf832c77044fc78d769e9c088465fa2adb45f6639af743e28cb6d15fdfb826eb029fe249edbe25ef8ae53cd6e280d6ccf3756dd3fe69215f3f93b79d7cdacf7cf84fed95793c77f230ca00ac76f747" + }, + { /* i=2764 cDividendBits=1443 cDivisorBits=450 */ + "011618f9f0899af63d9b25fb871ab724ff1b9eb28ebf3752c5ba2b81263c4e4ce36a273341c091af2e7a4a9f3160d2ebe639c6ab13ad7d4401eecef30856ebc6e844fd90556cfe6d674ba9e37b05541695fb87590c6cb4d82539d42044fe816042e8955d1b0921576c9fa1bef79f7f4bb924a61a7aa917711b3964ac14ae31ea62669f70e6a955863742ddbafbef440df7ac047cae9642ec438c16612b7cb72e04491faa49160ead1dc242015aa275c92b4aac2af5", + "022d62a55025c7b6a00ff721dcadbcde146af9040a6db4867e83095e94b4767e224c46b80db2c14c76f8a5bf0d99d969e11a5183b3ac798da0", + "7fba07776689d47637efba66901604207fdd2d04bb8a6fe19c246217d7f6e707496ef33f2d3d911b994ede6a883ff237ee80c4b868bbf066dce559ebc6d35427ab1d0f44443a9679803ee057dbef4edbe6a9ce50514bb2e9be196332aa3d1ead684df1bf0e8f23659b815f12e8cca9fbf462a2754a9b208e256f3bc3", + "01e79de96c4ff82fb62e3a039b6fdd5b3bdcc2b1bda6a979d104229171567376d926e923fe2083481b80f7427f17183a8fdd2e25a25e116a15" + }, + { /* i=2765 cDividendBits=3778 cDivisorBits=1747 */ + "01a89c56406e04d519cc82b802b8c9499cea6769a32ad9423afa55c67d17768f52da69eba25c563b9f9ff5753b98baf4d62018cf51032b3cac59279d54d2e4a147019d82d56a3dc8d59a9c6222d3b2523032a060b8a59a4f28459dfe8aa707a49d31c7f32fc645539233333ec0bd3c9cff228d389d47eaf5ee6e6d87d175d6199c036d5f31606b1c5ba5012f8a0452e4a15db1544181cee02985aa741ed659b7390c199edb4e2d57c7ff8107f6aa0dcd9d3606c4b3b35d54eafb7bf7a52bbaa5c6a29867fb328fa6f6e5f92cd460be1af86040fa4c746dbf695edadf23b7ebc245c4ae4f9014c3677f2e9ffc666f6d6dac4ee36ad8345f8d8df017f6fbb3f19ea6784ad930bc035ff1bbc2ca3fa4aad3ecbdddb0846e3607756f5652df6c66e0667b303b9a31e3db6b1093c8b710524d4a1125dbccedc4debb35220ee262156a93570041f9a139bb79e5f17d9df956251dfcb5820c1e8dddb0ccce23b464178601d1299e61cdc0d04b21b6ae0a3e0d8cc5f2fc28fec543ea246bb98577e90701de2041ff9d66c7358ef843457d67d4e91185bd1522ebb5887b4a0c34a52eeebad2de54d618b1069c5e51ed1e2c66201d8634d42d2b14bd38c50eb2f5cf4b7853d6636498955a0c2aeaeb343953ee07d519b54b01e7b4cbc7f2", + "04706d6b2a5eab4cbdb99aef31942899fb5684cbeefeb9460ab8a3b0c1254ba8c24d8e6f7524a8a78fe1a5362e7dd6b81ee30be58f13f8db5e775c1bc9ca6963ed91dd2892b0a26070e46ffb8b4d0c5e8110da8815a11c33ca32386852fa111276127d44770669c89dc526aea8dd38acee67a49f49ca4cca3db3abc18404879f4d56a6a763201983c3f6c83e4479fea931b8d74b72df5e95929f81ef2986650c6f7b0415d9a0fd72ded98d34a3d3af2d49ce267a5becf91e89be854fda5718d0c2282b01b890e9417ddf0eccd29c116e303d919c2f7c4b33f3ac90", + "5fa6a336a35751c081f8a1ea956013649106b122127bafc94deeb899ca887a6381bd808d7148e89480e36737f8a834aa254d6490b66c0d8ba1ab58b8e772dfd586ce09ffec70486e37332cbf9c883988e28ff19766dbe0563ba43d0b20d64022295bf0975b77199de3caeeff14de25709b39546ccd42f6d3f285c561d1f259741b52062632e67f242ad4338aa30283a91ad4f8e1ee0ccedaf40fb96a1ee364c51223f6c44bc5f98c0a2f10def8afab2762e2ca8a022a03968748d070c840459c7f5daeaa5eea2673d6c771ef255b4ce9bfff644dd446625cf2327b3573c160f3de9c9d3ba30b384ee747325d0e747e549278846cf2d77b12b423aa9b1ea0", + "01c2e0964628e97564d780ff704bfc25a328ee43c656d68cb6b8155b762e925309cf0bdb6c6e3a33a1022fffabeb49145571916b72340b263043d7ab60333e612324437bfebd389d5396f42df9b0e4c6c90e3afb77105cb611fd358253a0ebffff527d01ed71b139fa3f2634ca46325208806bca310bda285c7a9a7175ac736fbc4324138571f0a0e60909487e276d220279098ba4e2e3c9c28b26600fbefcbec996475917a7bca27d8d3bfa01ef7a359203347475c89b5ceeb62ae834ecd1f45de8553feed3e36154b399c99d3d18cb2089b5933e65ff93170df2" + }, + { /* i=2766 cDividendBits=3189 cDivisorBits=2163 */ + "1462d45547f2a390be5a3e483038b5b00df9e46913a7818173a8d43596f9d09470c45e2ddd7c01783080629e4ddc955020da34782cb9b846b705f3492b26d22c56c3683290ba3ab55442fd160aff4afe9790c839319bcbf624b092fe26b738aff42aedf79739945a83d3fe593aeb165ef31079e92a5d94124cdd2cb679148b73d588858c0a8cfa0b02ce9611bb7e9d995f242027fb3bbdbac1eed9afb13f2fd6bee46724068d3472b2ba33039bfb4ebfdce2536d730ab7b643750fdd91ea76a6022e9ca423632df9b591b731a7250c920307577bd37841778864aaadcf3aced87405f8bc9d7ecaa5cbc645221ed136785c3afdf4214b8b4b0ca947e767fa662fdc7a1c3f27ed1ee602162d00aae661539733d2759fa66d82eee0329a83b3d413416b452843a11ffcb4d371e47fce21946a6fe25e526da2f3f1e81b2f57eb3beefaa80fe83fa1e333d42b1f1793be348ad064e12112a01bc088f7484adccdec2e9c4a2a46692e57b6a297816d052b121422d5c01f122613087532aa31d0ba6a5f7f7376aa18cea3b351bea5adc3ab9f", + "04554e89cbcba3bab75e02c499b4d3db01a9a960fa94549a80a0b78c9e37ad8f84e2647551e417ea3816d94392370678521159137bf23fd8cef44ccc04f85ef003434d4775628700e869d1b08763c1bbcbbd9bf2ec76ae5de849c14218a69a7c4f8208909a782d5f122e9a6b99b6fa2b720b1c978c5ba6df8ec47aa2336678fe969db8be14617bea4a37659d429d1d639ed3cb1a5fa13e9d0999c50514cd6364e4087b1fe4485e2d24f9f45854f644ed8c223ddea0da6038a086094b273c2cae11dd9d3bf6c26ea948dbf7ffc265da43e078f0101a905fc7ec49a685e520064727750b2c6fa39962b416c246e1b2244bacd6cf134fe59b3aea76a212e051856d0b50d78dd43923f459d9ab72580ac5", + "04b45fc304f6f291210b40b4648a24f7925be0b5253db756afd55a02b3bc99496447ef2cc3eb439d1b73be8c68c8e280f7ec6df0b5453a900050b507767e1cf33cb29cc33dbf1ee43f1b0317e0bbe0b53a4b2e539f604d652793865d46cbcb7e13aa9434c1cff776743838b8276ce2e4fb90c5e2d0f64dacf7fe0d649eda123786", + "041728dbbb89196e89907ecda79d1eaf4ecab90007db656db6b6c68629f5df168a0611be092bdeb647a8ec75ff0d1b25cfb1d45b55b42c58ba32baf6c541a6c15771891cb0cb8b0c8d3b90a5fe08cd8b92d649c4d0bd83f13ee9788a75a8956422acbdc01a1dc4e2b7e5e5cfb1575cfc7466609cfdb241273b4dc45c1de7cc83bb2fc199df8e0f32873f9c50d8d36783a68b848037c752a15ae3a52e35ec71cc110b0a497b83627e91c90b2bf84bdb31a24b5fe72382e892830d78f32a0cfa589f1d937eccadff021013d18a2f396cb8826d3662d04651558791498e767c7ccfd36def6b1b877bc6e29ff0ccf53d4f68ccb4da571b46e0605e231df7655c5688ae65461b0d40ef388c5c646583b581" + }, + { /* i=2767 cDividendBits=616 cDivisorBits=450 */ + "743234c6a11a1755fc46d9adb1727cb02c70b14e5856b60e548d51781a2c9a86ae8437cd7b5f078119382add8be85547c50625b617b534da79102f7b43c8c7b1efeb51eba4324b349dda108fa9", + "036d1846e752dcceaa3d76ac4d434c317d12fe7e766f7f6228a4cdf884ee4abb442f4e9d09c41c1a78a88d0c00365d825d2cd386f34facad2f", + "21ea1ab0bd287d4b04ee70950fc1634cb98099c65b", + "9deee212903543827daeef70e350474c4e0ffc79f14f83b8987a7df8d30ec2db503ac5700c90a7341119f3a55296b5601a18fcbef8a5a5f4" + }, + { /* i=2768 cDividendBits=1537 cDivisorBits=1501 */ + "01c9d5c3c09d066b161016ee237564aaba0a2d828f46c05431c55d6faed4497eff784ca7ce74dad29d86489e688f89cabe84b486e8cc707dd44f580e4ab6cd286038998b0ea1ca76479646dfab5347e8fcba57bcd81d5ee96de63c7480c964bb0e38e736611c15267d1b0d5352428a0db31633fd3e0ffc4e9a977769dd23f2f49928602b5118c214668b453d884cd999f562c4d23a885a52a00cbf553451bdf71632054145410c1a4f3f294f85e1416ad2512030a0d3f5cd630bf8396baaa06aaf", + "0250407c6564d105388c6d7bef717a1dcd11e5beacedc972f0ad8046ec6030d1da02aaf7db89ad244c254c0685f50971266257e0bf481fa0ec52a6fcee440c2ae13f35844d6de901b1d656866660a9d0792a5352437eb0124ca0ef38b5da9405aaeb68986a70e05e6e460453f7e1b1c50e871fc1210b7786ac29efdc4d481e3276b01e481b6fa353a30a77d7d2e231fb37f437ac30caa83682e7e81f0a9a9efdbad81b487034504b51fa5b585251fafdd6379503d3acb2230093490e", + "c5e6045c6c", + "5f7fc8957d92aed16b45f8c0f033de5b4e8573bd1bca29517e35471cf9468c3a3a4283844c53d2e676dd779a014cf0c58085e4c31c6d841b89970d32d682239aae1346686e0888634bfbfd9ad92386a327d437bc89b929fe0e4d0304b1119fec4e83ec6e5ec64150bf9b4f66fd1ca0ef09b50d2e9ea47e4aaf5acb7e25e7ed5ce3fa46b0a21abcb276805c964052cc0ad6ac344be0c11b137d73aaed84ec72e9e0048219bfdd5732620ddc4d241fdcd2d4040602b0f0bcc60490c7" + }, + { /* i=2769 cDividendBits=3082 cDivisorBits=219 */ + "02a6c71f9279d37770495a9a9bd123f4b402a19d9220b98ab92152f6369a44c3c05683cc2bfff52ff1cf553568bddf6f95cf4792587e9c5d3b52aaa3d2901a97aebb88ad1ab70a9fe51383e55f418ff61e423fbe2636e751dc66d488b2b02fc9261b0e4eccb1aed1075309c208bda37ee43053f3e20ffdb94b6eccfe691fbc04b6042f54a59b2cde724cb179cec02601c945aabdcfd7265830655dbd615b72af479cfd7573f87550b704cd9f0d6b52f9903b5592c1831b0d3ed2a7b187413721fc0d484037ec518f12afc47f5f554240a1acf5e2bdc107e23cf91895fb49da3b868feaf9706a5436cbb8456e9ffb499730e44c1207e592b512e8128f0d2c93fb4ae686bd0f3fa3b6d6aa07f968f8de986b69b7e0c796340aed0cc6f1ee39b5ee1a40f05563fbf673438fe101be74fb5daa7b9d522de2f59da0a0ca17b01e0787b5abe77742bd7a169782df654afc6009714ba7a346618293bb51c6e53eab060c62ee4b66c5ea22c630dff55c4edc91663bb2855e2c40b9b09eefc2e58735125f3a79", + "02d5b3874eaa4477eda3f7a6734ee7466e4b80df4162f107d9b1b7bc", + "ef727a29b4791d5e04a67869aefefd1db92657477dc0229b99a5af632d58705b4048d42f36f3e21b77cb35af35a556bbdf45b00cfe415177d0014409bc6f8e815fcf9b70776410d2a66f020b940254433c3f321de293d39d02e111381527688e6a032ad691342b2e95057fb4ad80270d00ec17c979673f475d90142f359b649ff6f5f44f979f49fb444a3775d6eccb3cdf2e4c4cba8c837e9ebd69b03ef1f3c504cf0357ec2670b720bde43ab64720d83da4765d281a42214fdba78d9f6ee6fadf9058bcb52a7ace06fd0613535b9595a9385d0079113644e9ebb32140d02197122e5cf30cd3eebb13faf78a0550cc9cc5ca08753dc707a5676366ebce2e841da51bcb5fd2443c18d7800bec619f39cbd3eee6698b24ed64cf8c94ca98b3a87af7f0db98a0b102ec9ac0d0a480e618a9e237e7106b284d82acb45865c03db4f304a7a4ba3e37faa51d65b298ed1d1a8c94f6ef9468f6f7b220fbbde2dc9e9be90717a471678d", + "0d35731cf27ed3c85a5edbda3bc191e5d5ffe50b660641209463ed" + }, + { /* i=2770 cDividendBits=2721 cDivisorBits=1434 */ + "0140008abf0e95218f818570a86960e1a9b198be81c9083c149e0597969d7d4923eb20a6b39a839655ac24bdec8048357b8c52bd75fb6fb086efbc97a3e4921118a98e21956dbf573c3532063b0d731bc0362241924aeb05a33dd28e9268169bf3ca5ab6e4104361deea824e74d1421b344a0e4513b76c4244db81779c7fac5dbeef677f1f1fb87bedf3fc77b5439f8870308138dbd8f45d3c836b75ba292ff9a831097e6a4ea6f806f444a8ddb68fd20207cb8d6d7f4ec3f7f9310b5f1b6f64724f01baf4ecfe7c515c61f165ba174298ab587b9e245f6f364b604bf01660985d2d7a97e1de11a25cabe83d1a1291687d4196e10850c888d521ec75e511e5d46e6533b6635f0e2b5ce9763abc2910e33034d5a423021d44815ae555116d8885440da1b921695b030c3ada7feb6e0617c10929ec984764eaaa1c3b01a0773f51a0572023a5a9b07fda0816e56da8079679f3b6514e", + "01e2100125d4c37d291347ad551c77cd156643a957b7982fbd37600220f941138020caccbf9f6a65b55d928bd013b8660bf1c8516a9afeece796d5388bf952faa2460ae59374f0c8c840eda5b1ea1199d89ff000bef9f459ef83df993feeab2c927b762e76027b1d0c7136714b9a94752a42beb0554a1efcb5e4faa99670a7fb23f8fea278a6219938fe4b5590182988e129c7b48f5815ad2816e61d66cff2aff9d356ad0a4c810bdfcd3953dc0224d2bc73751d", + "a9f005d551f3acd8590c6596df147b3ceb802ed5737d727bd9fc3e43f6d8691e0aa6468aa1d134a60f468f46a9f86043de05b42260b54499e44081053406f641b621d20bfbc09f200a092bde21b4566d5da6d4cd892da38c169499de730f45517cf428bb2dccf63d543f73cfcf7b25e6a9a8c2f643a9a3cdeace8aa2676cbbf9f30523d5b85bc0c28568345b970c75f1e18a2457a270c49fff73a978692cc2a328", + "a03b2d12e5b6089ed080bcfcb200df0fa2ee399a8e4c90ca463fff03873974310aa1e54507ae2699a93828e2d0e3cd9e375d7e2b06910917055c8ab956d2419d6546b36b270dec811f2271887a69f7338e283dbbf550da6951b670510b0dea9d4e2276624ee617ef83fea37572339e692b91ebfa5ff37d99417544cabec650297751211d8b12af00b491b644d84f5497edb9eabdf432177aa2347f165846b8cc3592b389208cb28a4b9fcd08c35f0a42208dc6" + }, + { /* i=2771 cDividendBits=3340 cDivisorBits=1436 */ + "0f1c464ec399a01c4a50723b90158ce5e43f19c10d6b82ddba74582ce6c408fc3981acdefc7b1f1a6a861969df92a71e6279af60fbd26acb2b664d06a6ec1b24b86e35a1d40f9b29c0c78d1cb75147b83d744d44039bfaf10c42d71ccf9b9c2d58c20f9c2c51764f76324dd70401b1d99fc1c7e0f18c0f0dddf96facbd2b3808f57bd3e97b52ed0fa54daf03f93341df9df4ec5fb65a5a05d53087d8ffa41db595e71d6154f9cf05034249e4b70c99d074c825bfee850280f3441d36f7bf33eeb648a54f2b1f2c302140f09d512eed5ca6c77c34520008f2e0fc689b2a816ebba2f3b748efa8b6d57b923b67bfd0971891142260e1cc6a6af5b3f149e2330a75ad1687f34fbe1ac974b448d2a93463e9599f86f92d1991f92dabdada768af0af11c44f333c2e1cccaffe671ee46fb4590ceba7ece312194a53ba5a8327189eb22d244e94f2cb1f23789504146cc6dbc8fbeb89e0a45cf4e7cdf5342ce388da973b952730a14d1da78e4d69b30b758a6863116f863c47fb307d19bb855e3c61819573e654a1c71e0c9455ae58992aed80ce074981e0042c0b63458507e1d9caf85fb9", + "094b4e5a76b037b3ce34f7b1aaee0fe72d622fb2da414d039ca0c72c4b7520ef6549a712bfe40de1788278b2068b45042df9c3dc23551e159ca03dab3a3db32e613a2d793d15137eef41e6c002f80b4515931cc861fe7e5974f0f0ed5bd3844b46e6a983b073f3e6daf5ec783138f6f668a5b901a847967758ede5b6ada46f2be7262afee6b2ace576c6c75e60afe62df099f2581a9f4f8e71a23b5a316976baee6acdc5f044c77c75aa8383a5f6cd4e01f78910", + "01a034658d6d3e0f1b4a30879ae34bafa694b4946a0afe15c69036daa0577f30148e8e693ade8ae25e2698e29b32c2f1a69c694f09166cafe5b76d85b67628da0013857f7abacdc8017d21067cbbe7634a2cf16ed344b14b2577baff4367946b0eecf6db83f62301f90d3d9a375624f12251292d10fd73aabc2b1074670923467422bdbfb5ee8ebfd1669be8d6f63e72d4e6f0db2442d459ad37f516fe5ef89493c4b3e00b0810cc96837ac655d96f68b49fe73b2944a415556ace08dd410ebffb63d4691f640f11b65f7fd2ab7dd2948b537e442e461b8fa2fbbec64c5a3eb0477619b9f34ee4d3441b89ffa8b007", + "073b733acda9be0aea5c7998e23c9fc7221ab7cd3896bd6650f4a8f7d7cd0feea555474872cde910a62c7e4ab6b1c342d7ebf3b1400c2ee0f239d45e0d08b64f95c36592a48e71e86dfebe9ce53900c31b64ed29d230a96534d050cf3e24581ccacf1efd6b56c24c59f531a86021b6427ec3789bafcedb358a15e1b9cb4a0e7a73c2aa5401b29c1b10203047192d4f3a7bb836044db964a4787d4d37a84126a08b8e8c269618e46fc5c5f12e1dcebdd4ac78a049" + }, + { /* i=2772 cDividendBits=4015 cDivisorBits=3383 */ + "55a4f469d933fbba6ae8c224a6a6f69505b52e316b8cdda92020771f8a10c33da3bfe8ef415b01750d751d13a8015e7651b54d96c464c81d8d623581c0a90ac49e9efc22ad876ac182da2e450c8ff6841c96d052fd2c271e59aaf33bc04a1d265cfd7895f5416ba0fd7bcf55bdb4c09947ea543499a55bb115d70d73b190db5fb4585f3c587ca3836b4673d56735ea224aae4966c071b45c88878ec98e3eceb5163708c61d5b43ce1890d2f5addae6ecb7ca41b32dfbf42dca9e2ad38fdb44af021380bf0ea7b4e6b53c2667fbdae266507f01d69ff7617643694038c4b70374fb4250323f7a6fb0d9285a7f8c11ba76700ecfa5cab304cc6ef042b62f25e8c9afa971404d9a8ac8b127095c022a5469fe5a0fe8ba297d2c12a4e890eb8a49e0062f426b67e5e2f14c6ce485f3661dbdea948cf625d01f512b644dbb0efac8e6e2263cb1a75c05b9fd57f04c645b6045f017cf51ce35db935dd15fd665556e9ed0701c33ef70e9d699054dc49eaf8ee006575afc2d630f4636487205b2c7884f34347290a114bfb25dce93ae80824335d734e28b4f87135298aea8536d361bd655e5794d83c1d3cb69e58184e677e3823ba3d31c63f569868b0588536796f3f7bf5a66065137a2f919b87740a0d611d04ba8103a52688fa0fa0288bd21dcc7d243fdaac071fa7dd5574dc32ba3015e7fe9b1fc65f92f", + "583c1d0831bffb3211a4db853d400443126a31c4e779a2fa18038ee74b8eba99bbb0399b6a3a7341f9708bb1dca0d27fc7c47f4929fac42d334159a0be9633ad4b10a71719c81654dcdda3fd93644a29b432acb0b8adb8ddd1225b61b2f076e3f1140460dd17b8d04e4c09e3fce2e2b5727e8f6f9004c2fe83cc1a2143514a0579a98ea29f76a6667539a62fa6552ffcfb6fa8821ec5b03fd19561800d7478a0fd1a689c1b32081e1b989885ebcb89ec7f55e9a852218a8bfe77d88cacc79f838c1a22bbfca2b6de64c6af22c2cfe9ed69ff4f8c4cad0bc030b896a8e67a6fc0f9b7f6c9e042b5362ada8639d1360e110e4747dc2387bd6e9d267addf0a857fcb19bb3a59754878a19685dd5e3636c9aadc1ccdda05a6f773556b1e72015af0f5652d76c0164ed767ebb4564e4ca65fbb137801aec29726bc9fdaf464249ef7c36f2c2bc805eae497a309f605da34b5a4385f4e31817563cb5c88de29e8587f0f41252ce6c983786289556275b2b80ead467b2cfdb167bf1e8aa1d5f0374a45fc318b7961aa70ac453573f659948c0f5c672655644a0cbecf1320507fa622df865a62756898b77", + "f87bf1fd7db7c577d9f12e69f0d50980c5b5d2681d8538501b27850550bfe8ffc692f7d910b2053f6aef5ab8a0c4690a69d2f846ad30078b54a18941ca20fd8edb61118631e740c03ad620b3b859af", + "329cf2c146ea15c352d851a97c027ffeb83ff2229491262af321a38ae3884be7bb8d626a672309a6cca4c910f011521ed3a3aeb1ba9882c2d2626dca7acc15c83e4308234dda0a19cad5c0dcc4cb74bc611274162350cdb079b757deca0d6b80821211de9776fdf6dd76bc2b63063a50ba3847cc2944c7d32e5076ef929211c91cfb5c89b0066146453dbc6edd6745fb912f7eb18e29c411ba074f5f20b6ecd10942fcaae54d0cc77e622bf834b58fad848b07fb9b9fa46eb8be742d5d5c8bafb9acce501f0b2149d115e6ddf8e46b6310c64a587d6a3eba6239029baa0d68c22a2e649522fd75573cf3e6dcd02725e90a4cb34d287da0afa2b2eea29d079eb110aab65a0294950311440d23c93ef82d6864f8dfd89947486e199b3e531facd01e0b82ec457deee571bc806ec577a754b5d475c861bb02cc0b607e6eb25e0a634d6b367f6ae02bd876e82bbf29e31ee1c041352a05faf87170cfc590f5fdf7412d1a85cb2e68cf0705865cb0222b948bb7b23980b8b4a6f7d799c8fac7411225d5cd2d6ec8907911fc749252d6ae5ab93870dc98f8e11dc7576e4aa6ba4437a7ba5f77905b43d6" + }, + { /* i=2773 cDividendBits=1605 cDivisorBits=1125 */ + "0164c1d06ffcb89167d82f682b92bdcf805163069157fafaaeb6dabe0f3f02bf8e127f4b0a0a5d26b965ac8f0dcad300f7cfe13483c6be5b28337509d9ea943ca8a5d89e598fc7010c7c28ea587580ca30aa6e94fc5a72cc7e2bb63087022ca2e677cf56e399622fc92c445b8cb19e1a3712239baa2efa824ba0ec0766441fb40a9dfe44e8ea17a2e7085ebcc24b0a572d90ff7ce7eb44e98df56206f216e52cec9fc8536bc0d57f83dbcdfeaa0cfead48cb026db48be861412aadbc124f82ba273ba1d3ad2f28d6a9", + "01bf9e2469c25f8b06ab8ac416c4e93f0ae2dc2d0fac39d6087eca4cac8f8cd09bc8fff565461372c92098dffd6b4ba6a30b423691201d1357bde95d969280d5596209c46fe465d8897f35235725d45ff28c149267ef65c045ec9eac4272bcce8e20c0023a907c790b241021cee2a314c4f9f2cbcf7b4ce9ae6771a347d026b1f8fa09a9c7d24a3a282c57cd75", + "cc09087fd10c14591e55d11fbe5ca4ac9dcd447d1a9cdf17e86d0216b4056815a21dba7ab23d9878cdb0ea6309a6a8e28db55ac42c2dc1b28f00fff0", + "da5bf5ee8e750e05be0aa0bc1f6e85e0887b748306578348570d75b628a76f8f6ff639d9e3d0d676cba4d4701e93b4154c8d2818dcd786f7f0fb9406bb9c75303c84358e6ab0fa7a3df38b7e82ae4346e6e0377e421fe3df443246d6fa436aa19ea313f0fe27c570d21d1816e4633cbfcf9298abd7f6927284f35846a0278a5bd38d022d74d52db9cc30adf9" + }, + { /* i=2774 cDividendBits=3525 cDivisorBits=2381 */ + "09316d5f778f30e7d9fcc6f9a7edcdf08cc1a8bb394f9f79cd91c6fb70a5fa510bc6957c7e62354aee1a2335824b62bac17878612e794cdedfb0bdc71328efe76d1bb7772412ed1d0a72d8937b0c8c0d0430f805298018867ad8d9d4350ecf2891bfb0da6ce2dfa4c85fd5ec1af358a505c40100f95a8dd4c9e36ff1cbb3ee728054a689afce834d0e5d759135d671a9e09dbc368991e33f580f33b7ad0d3b090405fcc713b188d45038b4b9bc8b71f7bc128df35db1212ca292c5e2bf55daaba24270f5b2eac70e0138586877a081d53993cbadc664338526adf560d7f7a517958f674e5f02862b62b84982e67f835d7b3a344984b8ff8d4b6f700bbe37766304d30e7f279d5e771ecf197de81d59adb46d906fa0ca332a8fad8f4b69ed082f33f84029edd6564bc0bb7ea961e4a121492ac2e046bf4b5cde6d515e6196026820fd762d07496ae25a419a3efcfab181a8fe686d7f990b87cba8c1f245a63127756151ab35094fac2af4b588d43bf95bf5bdfdae6468445cd99ec8fb076719ad3e5366ce931a9a3aaed9ebbf71a55e64d6fd0bcc4e15741da9cd6f764b0d6a6b3ecaccb19f67bf0427e7e51907191d004b9338a9aa73f633bf", + "0e726679ce98d200d877ebc0509cb4735049fa47aaf520002db6a49cb33f1cf08669bae118c86826069940cd60a2935a0cd15fdadd0dfa36dea721718afa5b981bd03d93ef70c9ff6b7583807cab44a4031940674589615388e072ed7d46445df515fb17d409e274d00daf51abb8fc11823096a5939664c3f1f520e0d249fe7094c7488002216b231575422e0eb99ab3a7a648543653f21474ec96a903be89355dc14207035ceda366242980c69fbf6aa8d477902307ca3dc8ee13ca99208f6d95c9a8f1544a069feff1e6d25a29a1a1d879c75348f5355da5060b2c9a8b0d79d7cf767242c2b629647fdad65fa97c58334df7f25dbf0d1527698801944ad88eda66ba673ef1855c787ed8d08d6c39f8171d1a0b2eee913e5bbcda9b53e4207170d86474af6785cde592", + "a2e6f388ec5eb8ab9604be0c94949d9739f9d4f05b3e4c42189107084abbf2ec049da67cd26f4a4ff4925bb490bc824830717db05578a8155be33990ce3580c016634a61c814c6cf4009c9a6f6bd70d66bf20fb896b89747f4c3b3379eb5a9d7df5f445e3c2f1533e943e3f9cb0a3d23c4ab61dae483254e186d43685893c0bede786e048a1cf710f82ce7c496c301", + "0c9231c077907f3f47d1fb999384f109d2a4f5023cac20916411b8265acd26fb7efe9a1e0478bcce53bf0f7b00c6a55456976f5afde7c5186fc6cf99ac0fb2009a8d4683cb102f7a201bb259741aa083fe6e12da5448af50dfa0f0c40887966f9fe57e3099cc53f8cb2a9583176d6514c6341a527366230b74df2807dacbdd0dab9199567e6411b41ada016c38f463715c37acba83bfa74548f227dd4b5f029f22d4dca58d93cb09db27aa1be4b1a7ef894f5b43a2abd18484a5ed4aae457e212b56a3b6cae59f9fbbdc4038244593fd54b23844d884a30830e29649520c28c295b6bb8727d3a02147e1ab6d6c6697f97555cd478a0e3258e0a9b0bbb4a0be4e9c727f21f7f35196d51ff307337a7112a824e77e8ad7fa1b163bffdb86330473812d9e5ed630ccbe182d" + }, + { /* i=2775 cDividendBits=1325 cDivisorBits=529 */ + "159efd85b886a66551abc178b968b73b1764e3e2d3f80480cc9daeec58b67bcea0d113fa9a1ce86c52b21c70da00f4e1695f161ec0c54829fd5a0d6cb2dfd17d569cf7f1a6bfe6288966368d1e0f6779135f04cf255a027f24e95598092e06144106f291bf70097fb111c4bff6a4f572da628cdc3d2c80c848a8f89aa7af493c2252d46f17f3ca50f08fe5a1ae87e4dffcbf26fb6f76b894ab169e54c1363dca57310c2f86bd", + "01794cd8c4c381f4ab91d0ed153ba32a3c7ab7db2606163bd3c161c2e1aa31b906aff6fd455170d5c842cabd3ef121aafa36875a0cc7e142867d02e77f5e5093004d85", + "0eab84896ce76abc3e89beec4172cfdb526a61986d98186d683744352c303e503118ab2e16c7321e1927d46c306b2f7a1a7af66c0b2e807286b0fd3f1ddcfc843d24d9c76cd4d38a807ce96157beca30f99e3d0995655d7c342c91db46d3f5295fd2caa3", + "0986c62a7e1c5adf73e62dc9b4b72c4ec686c4b40845ee7b5d9bf84a680c3669de557d191a1a7a041a798e9b5fefc8bf4fcb7b833b4282799766fac44f9443b9390e" + }, + { /* i=2776 cDividendBits=97 cDivisorBits=61 */ + "01cb4948ef1e1e29d557b1d8ca", + "07b188b690fdcd5c", + "3bb2b186d1", + "0714f06b2a6308ae" + }, + { /* i=2777 cDividendBits=435 cDivisorBits=28 */ + "03aac785069892ac4bc78ad373765e6a15fef1592708b5883060915fcb72517f48369fc5ab575f97ce614a4e1d65de3f30b7c72190d18c", + "05a6898e", + "a623ce6089d0712eaa73bc30138502ab565ad6af94a76820021170d4846d3066d0afcfd07bd849014cad10d017eea6fbec95bc", + "044c2744" + }, + { /* i=2778 cDividendBits=3802 cDivisorBits=3696 */ + "225bf0d0f939a5b00e3502f11fe35eab8e663a1d934e80b4f590f377a81b2d2c282c149e766f895e3b947871cb9492e86e138a33f4095834900751a5d3a870fc7b55d604738cd5d06ac0cd0d54262178f3c92fe89c5ab96c3848992a217975467ec1bb76880ac0e83e0bf2332f155b25082ae1e39afc9183bad929506bd7f0760b322794e34ee38181cda3e1785aac227459ecd23998cf4f216aebfde7d8cc2f45fac87f89b681b69d18451af238fcdef570a34a22600b29e03b6bf4a1de3ab54038cdf0eabf1558386d21b2a26c1ea031a7db7bc72f794a6f973ba379fcbb307adf4ea43ea110a367d0639ebd2810484fdfb3c17be9d0221a1d1ea89dfd0b8fa390450b9d165d1ded7a38d6dd00b467ff19f432b2baab7cb327eec382bec020309cd82c603fdeb4c39f2bccf002e0321c785bba1a06d778fd7284e60c3e19e8bcbd66f77605a8767699523211b2c10cccd014d9203ec8de7d35cd6d2a40ec4d824d29d0d307ec7f7ed2632478f4250dc7f7b0c18e5906499c85229856ad02eaf5a4ea270ffc477f99f726238935a31be2ea72f2877e6da955f89deea02bc584f0ae736bf3460dfae2689829e32f31a074050574e29d02ebee311c5fcf4c202b03a56e5a44531eb9024ad8f16289c04df5b659984091dcf923a0da", + "a791113559166d6fba72e7880e984719d3af0a5e752e06ef16344372066247d554a099abda89217bc22854dae27565f6e5af8e3e6aa6460577810caca4ff4ef1eefc290d7f3082b59b09eb665c0abd6c04e185f63d3c506111fae6173533d7d3eebe5aef4d8000274e65a66cfc4e875ba5496323b3aa1ba8aaa3abfce0fe6e859c3a0c81db6f1be59602dda555380cbc96b00d3013eeaba4f8b350719ef70ceffe67966130e1639c5f5389b32e95d50af87b3f6fbda4002e24fc31bf9da9eb2f2a11c43ddcdb3bd327e4e597b6c2c645682dbed72c3816d82e42137b9831dd8cd9edd3a1718ae1d5252b690482e647a08ede27c315aaa0d17c15e3c3852e68d8588dd504f51e85802a862022432a1e935c4a63cf27a074a834b34544f95b4a50d069c736c9dc9d547fe427d96cdc37ef510b96fded6e52ac61831aae24b606ae9c625325b94a3c680586ea457c1bd4abf2838eb7cea7a553c096c617a05fb3ae16d24126cbe8140e62b3868981309f0f79193897cfcaa0c8dbfd30ec99f67864bf654273a449965de2d8390240ac3408db62b8f222e981fd03408b9ab6bfa2261a3703dd4fb1a61c8d1cd9291752f46272e5ec07d44227a265d8d449f516fe58f498d79e2cfe03a97205e7dab6b5", + "347dffe0efdd76d792e6a199f6", + "3d7d2608de2cc7224bae0e2fb9d150a5ff2ded84f3d37925a3a608544cc871ff33a5307d474322bf93b2f680acffe85e195f92d25ccfc66baaf6302166d57802f7368e39d763e25e5c078518ac2f43d570712a180bfb537a50a26d3aa47fd7c8a1ce1de37d30e97ac2b314f86f682aa80746059bd9ca6bc2c90ed898d325620e1c2de5b86f194ed60f5dd49ab76ac11b01cfd07917f1fdf7451588e9d669256baad1aaf14fd9334018342e9f61ab0777ff00d72471426931ee1333627e62674102df3e01ad199b6dcd26aa5de2e6e0200b9ec40d4467a509bf387f9dd6556914e1b176e9d050f213724e97f36542a1b0a0a6c0987c7b21baa943cc4e9dad8756aba157a734bca1e6db5222a470138fa5fc3d66e2905359b2b620c3e5d538253f21b57a08cda853c4882d59e9bf6e1a00899d79c033c6283d2fa2fac2c4f6bff01b2e9f7f3ce8f3758213c03b81a7833c5f3f93940e093f6e8fa03230804d7de00b47dd034172505209aa5814c8c4a5ee9997d862fcdb4845573b8e4e5adef87b3a619bd52fa8e9948602f3f051869a8ae6453d50cc7b8eae434116242830acdae3502ee6ab3c6c522d85fe1d5d03300cc181b36404cefb558ccefa788b0724270068ce67817367a5f1b0eff0e1ec" + }, + { /* i=2779 cDividendBits=2274 cDivisorBits=1760 */ + "02a1ada051da381e0183c005b6ce4d5d1c50a2ff71c963ed3833a0f9a6ca4c234a75bcde791ea6cd3ad93c19c39929de8975b549c259ca7bdc3ce3f39cd2638dd51e63b616304e87bc130aa80d41e1dc9a7cd86e8acbd1cbc357db63ebdb6021664c54f064e57b1e948becf30d43ff201ca05515045439a7cd52a5931cdeab76731ce81adebd8e2082992652c9161196f35bc294ffb09652815974af22422ad32d77b68cc55972a863de55ab0a51df6f554c8df095d860a61a595e506df6c7ca3430c708cedbbfb4224108c2b34a38a0363b1b3010c56f6ffd6b2782bd40e0a5ead4171de767d7bd185ff40e1a2cd84512ece9b647742d82686c64cab5d986f01cdb210b6afc8c84120bb47da74ec1ae825c17fb2f6f6354f6e4245d6d", + "3544080fb89da0a5473501da781dc0d4ed67629a80f8471b555b45316c60adfb39c7efdbdbc6ffcd65ada0722b8f05974dc9cd97f1e704bca1e153ec8ddaf35caeda80b3113a64742b1d5caffea18b9d967ffa6be47a4f7820bb7ae5d76b8f1dd4b7c5aad7982398cb6ae3af2ff77c0fcf7b0ae25cf5b1ad618086379225cfcf47b5b38bdf6da7122aedd62326cad311f3e294ba07d3a8f5a0cd334d8b597dc222e4c2c9fa878c9f8c4a6b9a4c3da7da473e20d2ae8ada479c5c0dd2bcc0a0b8b76ccd9518e5fd47279a819c1d8dc1c6dc0df263e74000275e4e85f2", + "0ca5c22a725ccc1c319d9bc0f5354beb0bb05a3d1ab0dee4fdaaf10977ea08ee9a70aa08dd05aa87d6b44ebc77bb5761e92efdcaeae43668e1307d16ebd976048a", + "2daa68f90a848d0c9b335df6819851484577838907fe89f06ac9b9d1368337ddb160ae3c0f60162e9b34c1fd2c3bc4c2df3cdbf0f46632eb4e9f9626d2c2ab289ef159e9c4c005338e17ec608fc6226a5edee45b18a19071775f71282148b89f66a90347055b419d03014258197a34728b0087ca9c440d25fdd0980b09376ee83be5965e4d5977d28075dc2c3848434e681c9f10348674774ac2a1827920c1ad325c737ec70029db5d3f080c7e23464acdaf8d1a09f164fc2db1c7a903979584609260ab84c96df6d48ad701a01b83254c9294b13d0ad962f42c60f9" + }, + { /* i=2780 cDividendBits=2497 cDivisorBits=1191 */ + "637ed173d4361492e657bef1ce1a5da6c38f6fec176543b67b18afeebf39ccbfce195ec477492c8a612d0fdcf408afbdc54e0ed4baf57785846bb95254c770e69b7276126b727e6da05258be95cd575e5b3fbe219a1f1bc6a417aaa1561b4935919113b46f2236252c4421f03a89538646d5a72c7a7e9a79836d264f1c93af2a9d1d5a05b1d8cf3559eae7da41063970e9218eabb26bb9e72d65e97b4a260cbadb124450fb0fc5f9182151d5cc53d62cf020675b6178162941768415da4d967d7da7d04e64fefaf81013a4fba744c68685eab8ddf03189f3e1f30713ac6d2ba39a568b7d21064bc932799faf552ac4a833ec08457049bdff7724132be263a723900a6fb30918db7f0d2d1e1f82c6323e90d8823b378273c1c3e79117044ac92fdbcbb9835c2ddcc07175a4e3781b70b3e293934a051a4132", + "662b2230665f82ffa92b08c63f63e1a1f11bc49d91896bba8a026efa8abdf936f7c866737542bd52119285123c451e235f6256feab62f56d2cfff1af3c831bd1374f2800d3c842b766c2734645835ab326225ff3b7c6eb9540688f8dbe1ef3f93eb468b603636292f19b1ac92a64cfde3ae694087b9510e858eb7cb083c21ed3399ad0bd05aeddd6717ac8e4efebec70a4c020befd", + "f94d55c14e331dea41d0695b1e7c8b442afe41b878117dda30f7c47ea7815209118a3911d35aff3706302d7784a36e32a14717bbc56edc289a10ed172444d0f9426d91e383d37a2b52fbc07618abcdc11380d3765f865da738efe22e618af1b009df9abbcddc48e1a56ba2ab5eff516f18e3d625d411e97f700daa109f77941c19041516f0cc4de9eff4904edf57d96d73911a88ee01cc48e6c23dff07981e2275d541", + "3e6252daad3fd2fe0dbed4de5bda326f939b8fb54dfd2330254fd7f20867dbefd6e26e565a738f23bd9cc80c32d6379df80ad5f5b32cfd171b962aaaa1f2dd6c8d47f6910f993ae6d239d2e8a86695117985d5b8e2b1cdc8012ac69cc5d186a63f31e0ce674a299f16a549019e8d77c60a176986d6d58a1a2af8a12f7a77664da1b5d7d58258b2083b155155a9b3da239f1a4041f5" + }, + { /* i=2781 cDividendBits=468 cDivisorBits=463 */ + "0b3b72fdb3be730ecf280ebb20bd5e1981a59b994479200358894a32cbc6d424c8d96e7fec18d28128e2ee62a96ef37560b3d586b7f0f504a526ee", + "77af173a6cf7356fbf036f2513b8806ba2664786218b68f894f64b3d8cda8a7d8389a493a30663c6c77a7606739f9c0027d502692ea1dca66244", + "18", + "0308d03987460c553fbc4fa6e4120f6a6c04e4b1540e2c0a923325069257290484871214d03926862f73520e97fcd55cf7dd4cdb91c8550bf08e" + }, + { /* i=2782 cDividendBits=2872 cDivisorBits=1008 */ + "b3a8f07a262a0d9397000777036aa1ccdfb55c5b551ecb0e1026bc4173454c82a2b13c11c405dbcf038cc35f71ec81928c28a43fed1af1264905f3b237849d6282c89a42ece1f98daecd061c447c2308ad306cd140cdc5bd1192f1d0101be0852324932e516c41a0e98ae38c1e066f1df14d887211c9856a73e41b3a59aea6a01d9a28fac214538f48e2a261f668e13104658cd43af7b18b4051b61e0df401f76be41a63636216d58a3b557aa8a0f6bdbd0947eb76b6d00e24a9e49ac9d1b3f6c04e505830c3faeb07f1461bc7e318929823f5285dc5fe5dff5938287db3932867a098359a73abdb076663e415f532672dfccce362905406f5103bd6aa8f6c3a064e8d0154c4e17457ae0998cbb7090b79c8d05efc8c2a13cd5b337da1cf7212ec4a0adfb2110038222f0f28fe906864029373f5878da2ea3be228a5dc4c37779519fc7be26b57f2edacbc70516f06d6e3abe9dc5932430bcb8e56f60c23266bae18e737d11ad8", + "7da6a385b07e009494f9d28403930681a7afadda50c14691e3a3c4efef4dde357005360fb9f3f18588f325756b46aaea5571a411109b14f251c23077b8fc4c9c54a0a755c477c34d6412596075f7eadbc1ce0efcd8c1ba99fb7975629b3e8df3e52fc63772646e4b7fea81a44e089cca12a261375634502793d35010590b", + "016e09925a1d1ec0c1728e8f2b47433eda3d904c080252b2538fa6676d123b58fe3bf4f0de202746a728a2fb7d7d281ce882f3f4bf98c8fc979a9ce43b442b70f69d9138eb338693ffc8b83600289df596983f1d86fb4193ba1f24766fe937b5f2846a5ecdef9b77d430cad5fe3c38c1833ad5b5b735cdfec67f3e0c0bd7050eaebdb058c15de966d285ab5f0a2b6762ff5fe316ba79eade0174b9e2d70122f40ff07e0f8cdf27cb8e5c7d7b97e3966f51e6030932aaed075d03f8c8c56d4e9d6174a043ecfd3df5c43c5e2cec9bc453f461fe89d0072db14d35584200ea5268ce0dd576d7f67b2011f3", + "27dd23158531db216fc3b94a920953e78abf1254df9c96fd90a64646ced684cc334bc217a745bc4ed56f4d83954ca3f553643e064c273121e6a189cfbab16ea68ec651e45b1266beee73ec68362a33afa8d18d5ebd20ea1248c2b12875370a42496c7cc55f37a8c83f95ae2de4b5b820ff36f59866b7d6da149bb802da67" + }, + { /* i=2783 cDividendBits=2446 cDivisorBits=1629 */ + "31681d11d115f1857bf6d14f8ec4d88bc8eb8836910df1d1884b26b45b870b419aa2a8d384baeb29ec1ef8cf1e1ea60e9aca61627c47dbb85c254fbbd896c416f39a63fce8df0ce26afe1ac6fa6817718e18e2bff3aa70584d3ad488cfee2bf78b20d761e7f18c238f367883e44beadec8ebc15b431c75556dc21150370984c0b60e965ae48e9c66b76988132a5c5cb8b625f18f3f1c82a256e1fb727eb02fdcd083b26604f290893d89d0dd938ff0b0266ab4a5ed1ccd53238425826cc33c9378f0a25b33492d4e121e0360ef7bbaa35782a0a5d48370d4172a0fb08c3a5263a375fed9dd81bad00cf042f01380ec5615d4baf7dfc4eab3cfb1b856ca77537516bdbc72853c5200aa796bc1ef03c03525d8435007f635a4bdb2a5b7712fc582cd99fdfb467bdc0222285fb8fc2f3a1e13ad", + "0522a082c1729de8b5a8931f433314cab6eb4bc145ecce72d71c8fdb6c3697c8e58d931691582186ce4b6ecf53df14d9fafae0b3d604ccf2c466431980b2a2d162e5a64a7d9ade10bc4800622b6f726244274d716d3e3ebc85eb40826b8a1568da071d56640dd278a83b0a8be1fff88dab37c6fe44ba3f6dd441ace6075495f3ae70533df2f16432cddd34c918a67dc8036b5d341f00fd2506ce42b0371257cae1132f3952370a8482687560fbbf9c960dfe261f5368c21ef065ad1cde9775ec98e1a672cc2a571dd28069a2", + "099efe3464ef3843ea73816b64572034d8244fda7be006a24045989a23b69d87f0b613adc8174a5cd1ea71f73490e4b8ac00d3f2eb4b8aac34132dbea4e553cce2074ec5407f6e73a5e8e33272cc7726baad7f80d75d481a72ea08c49dc41ca53eb3882b17d942", + "03697cd99dd59baf2894b3f4afb3acff82c3537cb8ac90ebf1c1abd8928e8860dfd7b6898a52555aa63aff90a9c0c19156d050154ca582c3f96aa3ac08f8b58cf8f63092589747bec146e575349d7bcb46e9b0b004386853fceeb7dfef2dd6bc1db0aab25d46368ece33883638c37193ceb7fabe836c49488dea79c113659b49c959b68515ed215e4c72d4e8aa715ee7a3a320068226ed28a704eb68031e79bdc34d7efbc002034068d71820241d7819f9bc91fce5c8af0210d3ab3020e41966648efe21659c5fb867ea85e9" + }, + { /* i=2784 cDividendBits=206 cDivisorBits=91 */ + "037624a6f10c6df6b781fc785d137a25ef2282ceb2fbacdfd867", + "06683469da7e4e9ec789be65", + "8a4eb9b8099d5ebcb7afba043948", + "0196c36e91e2af5e8729ceff" + }, + { /* i=2785 cDividendBits=3778 cDivisorBits=3185 */ + "570422abc79b92c0321009de99308f082129210dd49b75cb98979456dbb5622a7d25347638e449331f8424afd860cafa73bbf178a6dc59a1bd1458f059609ad96cbe6d04eee5a473f4db0f48afaf156ea7b69299863ef9be57007c729444fc28e78258bff4838894367c145092f7e9c05942f9e040df9382d3e39b80cbc1828ccfdea2d1ad76c07f285c0f1c11ecc89f76c2854bab2c198a5351a3925e8fc3214939d84ba5fc6e1fa18f13296d68f41d7f0ffedc55cfa162a603d4abdca010446751fff80df72fac6eaeba70cdd35ee91954e4f81042c3673f87d0d9b0ca7356a3fdeb1c35fbed96bc97619bb1ad1beeedbd193d3689d95d70fbd398f27478778613ea6641b967347d074bd15eb70c258805e26d4f4a301345cf4310ebe44c6d9b068411f7798088e149c1e01cc9657a4f4b999286c465a44d98ccd6b061c0c8db0496b1023c15815c3a36f49c7ead2a7e4006329e4375c2495b73fddbff54828102eacafb78f507bc5cbb81bbbf95fb6ebec50f1b3a43215cf93494418929d0cecf9d9cf9b8baee41858d31f7395cbb9830f00c389d052c35e53a599495ca94525449f41c4138f4c7b50af1e96208b777ebe3c1ce8005c31828e6b46d3df2a21d339f768e005f045b2341cc170a8d24153cf81442fc12f2", + "0101d740f2d1401df55fb420dd4c9d3c6593ed30d729e971c59862528a4a3759ecfb41d89b42896076403b9cb9e0b6b345b18848e0fd99343087223cf124617209f3cb5de1a2da6cf799d9be2fad7121ea19049cfca53df5227d263941d8a340c0aa4a0a7819e5b135b566629569fcc35eaec3c4d1a79c3d50556a916da3af679df59cc3ffc48c86fb798d5184856d407c8fa907beaac4f0dddc7b0ae1619f49c6423fec218f182d5d61e03861c235f602df642b98b941c942f710b241b54bd9f74698aa6e4ee9e7d9f59d5b60ad13a26cb5c016df12d75c0269085123207e09a9df7eb30b0df1136df870dcaebb8f81c05402157f7f03b687a8640f7794e59f315f21cc4666e09f3b57dacc6657a6193e93ac78fc62c82020fecc954b964a9bb8bf057cccca0796d7166da26d5a566b8269b0051c3655c914443f56ef6a23db9bd5a4f1d6517a654c74460f800a6d8821055182736d17b19741b60eabaeff9b0b71c8a4f364fc08da902b08c28fac8fad29a9972a32c22892ef106ef6a33b1974836d1421a831c5ae85a36ac90770", + "566518c005f110a17f2ee874fa44bb0b8956e3fb1a27a9adaf35276d44a78ef06037762c30786cf7cfd05610e32d5d9e99279440ca2f93bc4cb63fcd34490ec56a6d93c8f64d0e778630", + "487f91cb73a5c07a612d679b3ca2533b26f4ec15c45819c585d65d639afc823ee633fe58cb2d339ca5f7a4e2bf658c126d63453c8b2b34f4afe41ca41a2f9e3be581ca17f488df8a265f1f857a0bef37a3b472bdef9e796726a25e06068ab91d71601b25914f5919a806b204171ff337fbd89daf22d4eda945085faee25636df928177b6d066557b03985758ed1be0fea1791c8dcd22f13b9c977918a570860f3e8b033bc18adc1af79f66b566ec82c7d83d09b6f2fef4ce10424cac835d49db91f7890305af0525d9ca36b69174843c4ff42e3c104f7b1233a0714eefa5ea48ded022e92890d059606049bac98a8dc20bbb7167f7f916d2ceab8a5e82b9937205811b409e8ebb86348e75a2cb206799c772bd04b5f69d23901590f7d91aebf749a77c7106d6762df01cb498b6a03df33ca4fd7dc5f9c00f9da7b727446403fc1ef28008631ead831e9065a3ad78a5356e1ce27dd61f5e5d1a816912f850e4be0c93c04c8c8e3ac7e0df231b7be66fcfc596f8eab7aeddcb8dc886d282db25c9a51cd4fbe51f30a5e1006e560df2" + }, + { /* i=2786 cDividendBits=2601 cDivisorBits=144 */ + "b197a6f2abaa75e9cddf6f4e18ca2acd77180473e77036d1d01f60104d82bcc67ba496fe260ab3b2ce5d5a6d355e8ea7adbd542aa12c3215590e6f88f966e7ac225ad5d66676a940c42448adb113bfac6276e6e669a02e286849aa3a6b58f3cc50bed2d14ac523c3461e8a51a9225af6acac5958dc551177d9b7836406086d78803f6d3066402f7dd688d1ce543ffb016a17fbd090cce55f7476293239718e4d475f79e348dcc37748bb2f9dc81995c50a8607ac582d048dd7f7008b784852d3ac3ca99a85d5b68f72321ee79138bf5348ec39e545a1b4d0e0a9e27b5d4e8b757735841bc749a57c16a938c839aaadaa48d5bf00266c6accf20d9f288e4664d7714e635014f95d8e3205bf3623fe941f4478ff95832deeec9eb2b4450d7cf56d6ef3afe7bdcbd2f169e4bbb6b51976fa90c538fc9a773807e533800b8679177a40426224d2", + "905aaa1ddc57e3d3917595a05d81b7b53b6c", + "013af1f9f0abb6e7200ab812216d11bbe7ede65571ac1986e17b8bbc00189d70b90fe27248db2eb5ad5c7add2e4e8ceb60fb3cf147afb386366e17f1d69e5de98afda1377d1e771877738dded55e95818a9e0143a57b26a67583272db0cd23109ae4fd72e387986f47997007b038f85e390c3be476e93737f2e24edfdcd76e4c25619502cbef8319294625369fb3323ac187d5238887b246ca760a6b6cfd3d371fefe2dd88490a7414a9363827621986ce5eb76afeb71203fee130b1d0cdac94fda479ca509ca1aadc7d70b9162ea8d1ce28a1d68100a7e403404a4a7a2048f512ab1433e13d2abee8bf3766ef4081813c664448f5777db55fbc530faa60b7f6af249090fccaf702b39568e84afdba1d339374996a68369155708f4747dc9944d0547f3e5275800ec3308def61e0ebbe2c5e1522", + "53b78129780a006eb9d8305c92099cc8647a" + }, + { /* i=2787 cDividendBits=2288 cDivisorBits=1807 */ + "071a1de71be6899e3ad7d37b12132f0cb284cfc19fab0874a015aaa91b8918ef715fd866bf0e69f406032970fd231319b1ed1bf44d3d4d73e14b4a6e9c6a426709abe9da73e6de18679fe107c0dd8183a43fa8465d861b0550924aff8e2792213b2a9f8a7397911be0ca7306fa5a4af83f58c98aa9793ee254ca27c170efa49ad03a932ebe53ac9e1c145cd24b4649fac6982f16773071b5b08a4091adcf21d0760a3cefd63474663e91f92d23536a904d7d81181d82cd6129d3249d3464020e64f463e19129239816d6a575015f33a98c217484f9e26d2e2403b7f7247c5589a24be1e11f1717a297581bd0d457bb343872e4cc87831006b7df59d15eb6e27453882acb524490031476e4fd205483916e816f4567cdd6152cf792ed3f2b", + "6222c633c3858e0e99cd64b91eb78010f338ecf1fa5c68bf0267133ad6fc3ddbe2f93171d475cdd56db752e8384015e4be6a063be0bf58b566c8ecd7e8d01a5efac29d08a6bdcd706ca2b7b8f05e2b082147f9ddf4ca0ad7a3a4109b78428fe9ad24cf4a9544095dc0d04ad065ce6da4f387f26fbfe919901bda20a992556645cc98460c11c97f1065346317d681048d85f30d9598fa5138a2fd5dfb1b2f1e8b8810c6c1c7ab57ca4673316629b5c3bfa80e37fef866cd7950eb07fc82912d2ed49bc2f7688ccaa20809bd012381de9f9d4208dd46be898df0c51bcb5d8cb7745179", + "1286cadbdd836e3efd7f7e34500462b2f7cbfd743a1a5033e170fd03ee5a6fa31dee267e9be48adc8522f09e16cd7177e2f200833b15ba3dcfc79710", + "2acc5733365d201ae81d11ef4302d3c14edab74e7894a7224c3ee04947bf208601c19161093a4e11d022e8cce46b99d053a7da8c33000347d00697b96e84346595ba4ac7895d87203eabc1a65885bae60f3f670a829b6b677b7af10681b07522384adb4476b41d5a1eafc43f75e7606592259f00caba46fd12f39c3252060b535dd20ce1c824e8887a3d86155c7bffdda20036048b2f7bc6d4d7e242574f89273e06754382a644c2c55707304a19c1ef41ed8d3fa7f96ff2964c56635f3b7acc5e884bc4354004b4f7dcd926118df1480160275eede65f87f84dd8a156d5538ac89b" + }, + { /* i=2788 cDividendBits=242 cDivisorBits=160 */ + "03c26f7b2142eee97d7bb41a244b40c363e126010409fa329fbcbb24829ef0", + "519ad868b355e0954e8f8c9fbd3198c8d8262a2c", + "0bcb39b4885f0d226fd149", + "0b7f5a54013071a99e29ac095afdf09c381eac64" + }, + { /* i=2789 cDividendBits=3674 cDivisorBits=2801 */ + "03be2d9ea1d829cfa4e7f66162e32186324ef9e094be3f7bf9f0f03e6ea3ac7752a16a2b3e73632475e12358b2dd9c7909fdf60d14d35159f9393c9c8f69c288b0f053ae3c06544435e2120ecce5c49bbd3aae7599586949e6ea6dfe542d94061c6d40b4b4da42e70c856a45bfabd544c2b63b9c730b1c5737de5886375fb2747460426dba9c9a4667a1e01486f6e8bb608b643658e7432194fd44c6cb488d2b9874d6256e5c13a00a352ca4dc520079797ad05b121ef7913ce244b0b11c0a74d4c3339d81a5841005aa6b0e1fade481500fdf99fc421a93c49440110c47b48b516e514ece7b974690276f443bc9fd4ee18d36a6106960287e002b967f2e39c88b5d4575aa5513dd95471de2bbc3701dc5205791a609d653e2e7a8f9c3495ebec357fcc8663512125be5ac799484e5d0146750fe74c6a3b7a22b0a1ff29acb2f1e380a50e69838d2719173461286c1d295f361403283e1b26508b7b785d73254c4aacc94e53a7ea720b44b218f4cfcee6948cc4d59f772344a04d8c115c37e1793cc921e8bcb7b48dab68d1d1f74fac5d62cffad65161f8186363855afb7a7de43120bb3792fec2b715004efb88e8fec710fed86be73acb9faffe92984d7e6815ec430341ee499c04bb03789", + "87c14f5ac0596303c14d78a2263bd1ad3faeece7a3d2ae540304edc1dba7bbf56c9432c5027abd8816f5c364ea9d03f756124706f3eb5fce992a924752842e3f212c30bce34268ceb6bb5ac46f45e1cd3decf7f9caab7c92e72a9b661b863977b1d39940d3dbc518c8c07a580b0f69111c070295156a0d37bd5e0f7d5ae7a05f55d66a24954f02bad4d92ff00f94f2e0939faac88f48effe777a6b45f7e945c78e28d4144d05963bed95fda78685b5fc13d29b4c42ea7a9636597d4233085cf260d37913c1d471d81f029c5184f30e509181e2b8cb8b11f51eddc9e7f0fee2bec940b25b6ce26a58a768599b9224c0512f9ccdd27a66110b7df5cf3ec63e5765d2686ca203dc46207232712a36c1c9289e277c2eefdbfbd56426fa37d627514849b10a502a91599c6326287b1c97228267f0c15e28b0317dc1434dcd57fad641a486ea6c59ac17e7975c704a12ee912d8cdfffab4faf05ab145ae1b219d2", + "070ee20f60a02e39aae08a59aa421cda3b1e65d9f5e669c98e4be3bc5cf904bf285b4139ed1383ec200a6faaad65c9d5099879e77fbdbe0edc6eb2718aa05226cb9cfcee94d9f81b479381c2c587a358083ff155b31304c549c78f0f4aad895853c86f24a1f0f729634dc21216d5", + "5f3931bf98e4d2dca1b47e7eff7c6be1431c63e834f59657c3d183fbd5256a1f993b5e83723248a6ead2d9d021e59c0bc0cd9c03714bbf92ec4253e87fa68f5de5cd4b6c8d3485bba7593636e4c2b42b1ed25a43fb1c367e3aca2a37c6dab7087ae784b99ddf0b312558215df4f74ed36b0844647ebae612f133038fe094b1c08d3c2916a35da6d1845ae13508ea016f062f0fe9fc240347c2e21828c310919b9e7cfd95603bd6d6585b8b849c7e3bb56394f4dc4b93cc17e0db0d00fb1b03502cc368d74d89c175b381033cb35ba7c91399ba2e675114661967e474b66559426b0040291745bb3b39f010b9dbeff2bbfe4d312a9fba84b772bd899093de40b29162c0c71575a7dfefdfceffd3ec543a12a2224419dd561593b2a17fa6dd607a598c3426de72e87841a0d60b64aed433dc88da647dfa4b9c3b8d9147603c7c8f3b442d3e20b5fa723e073a058800dff78e68976545b5e3300a7c3f84afcf" + }, + { /* i=2790 cDividendBits=1657 cDivisorBits=890 */ + "01ea8f3ee7c3548254c21c80c13d32d827f976d4064a633c5461292b07bbd381f867a1a8bf3f99bf84661637c74752272c2f1a0258b6e7b8f323090ff3a7c52e82338d7ff9549a96496fa255c351f25c0d156337ea3c8dc4db5b1aa1ac4319989a8247d6a390e0f763d188fab9cbc37489ab3aaef816e707f8f866e969af34d459d2d83721e3b9ad38da592bbfa1bedf364eb79ab38565acdbcc6810ae821c276c01a2e399e257d206513cb2b7fe91381d5d2f925c13af56e0537f4298ff410b6bb437f7cecf7676f50feb5631d37344", + "01b8f72abbea073ec9a9f109d363d6bd2eeff285deca61489b930716da256899fc39746dbf2ffd4497621753e50a4b03471fe280a63369237918d85b408e36f4cee7fb77665e90f4e95b183d966688e43d8b2a0a8ffcd30dcadb9a329d5b02f2ce6ebcc3bb2d1505ad79ca7b20a3dc58", + "011ccaa2d2d56d4064c79a14a33ed50dfc3052fa1de91a23c1e43a69d1bca7d6edca543f9a2f762e33d9b11eddc9543e5eb8b096cc4708c32ae50454c15025bfff9e645780370ead9c36bae1dd2ff92dc1c5888b375a69a5788661cc8cc581d710", + "3f456ce4f10d057083af639d979a09a33f14c2c248480b92482c528a3f22ededa657e28921cf9ef365d637b3e109a900b923304c6a22cae22bf9d11029b8afb07348c13fdfecce019515acc0ed87081f76fa11d75a5cae20d65031dd025369a40e22d4f75d403611b1aff8c92fc5c4" + }, + { /* i=2791 cDividendBits=1239 cDivisorBits=1051 */ + "04a34298982931d0fef83ef0c83ee10a0134ac9a3d7071b9eba2a2c74118f36cbd171c990ce1535ab898080549d0b5d04027f83606959b41a5264f9c3a07e610e73c18b99917e6e8bd127cf4f207adc66b578ff7d90c5b9b0a78d74af9ff7fb56145361d32b24d5582a616897c6eded105147448b533d16d91ee0fec6d3ad5c62cab8def87f8a795c9d440bb7eda74a2e8ead54e6b463ce1edfc07", + "02ed2bcaed1c18344c0f519dcfb6d5ba80bb89efb4eee507221e98ee79016a6d29e8847cffb523b01404f4a99807a73b9ea25c55377d52f6d276589bd189cb5230c2cbd31b586bdccee44388bebbd41eb6496ceb319b159d539b9a7cb5ed3ced3bee13c81c0cab89e47fd588e5830cfaab0a40b9d3038d80f90c8ad3d90a627c5abe9189", + "0195b32a0261d6de3da7b5cc947a1d53c07b6a0f27688952", + "aa776b3c1b84728ba7c5b6f8e6a03a31a35ea4fb7b03cb917aa7d54c3cd754dcb38b7fb250e236285a912522a8e14110c061a79da8b1a43165234fc9c25a9f22a45c36e23ce1dad84a89542e33c889bf5571ed6b6bc5ac841c944d035c1da384b10c249fb9ab17a1d8dcb958280969f7f770c4ba2239c24eb6d49c5fcb0739d6590d25" + }, + { /* i=2792 cDividendBits=1957 cDivisorBits=1061 */ + "1faf16baca754f4adedff58493412f616827e5c9e857ecbf37e354b82e0d37402afe0e872a7f2e35213d0c863eafa2df03bdc282e2f9766de4d5cf8f3522274063be3ce83ca4fc1b4178db11a8b5deb218814fe8ff795a10fcd40cec669f1ef0b678099384e2d15a904b313879f4be316c21a2eeaf414771ad18ac57996c180ab0f98a6b59e028764af148e61ff7570ef11ed713e1c8303a501cc48f75ba5cac13f03fbd91b861ebd5e67c804e3d23c5d6f2d67b8825ac1cc2e2fa8a82f1dde9208691c2df63f90eb11b5c2e0ec0d2cc9fd3beafc845a788959a2f209954894c1ca3bb24d7719a9c48d573184b74aa92a43f93b71e", + "158fc0a448a64764074469d84c73fb05127ce1e7c86b98679f852cc8af9f40c1a9ee9b36975c28ce615a50a9983287d47d10ea3073e24ea9137e7a2c9e45610109a6548504568e84f6375b621166700ef756265088de336d1432a8d5e0a4fe8c256f4772c51e6fb3218f5fc8c31f1464f8c843d41bf4d4d847f21d346d2f411f294fe9ea8f", + "01782eecf1c1b05d5e1c6e792bd7686105c4d126912bb3d0d567f288e777d91f1d11d881da1423e57dcb331a5cb1a8f97c461bb8c976fc915ba45d3ede1c194c5c78f4a1a41e67aca4bc938ae7f9b337569304ebbcf49b704cc54e797a588a23c249ed2f94f0249ee0f8c9f997cd7a3c2f", + "0833c875e974160e802e25eb7ee031e637cb6eff874e83d7091f5f13bbddcf4baac7b015de5fa4b31ee50ac26f1bf719cfe755b4b6b37ba609bd0d6a1998248c2b3a8d4dcacd85f626d33f8438f4d22851a33c6a9e17c9ffa19594313d8105aff99bcc7d84ffd80cbbba11eca674991956e7d90b9d0c51cdd013cccd133b5453ac758222dd" + }, + { /* i=2793 cDividendBits=2330 cDivisorBits=794 */ + "8e8a25449145751e6067992a8f8ee35a5eea8b4b6938738939f46bde7e700a8e65060294388c2939d902de0ff9c73d40a4289cfc010b981738fc97bb1d7cbeaae031ca95377dbc730ebcf369cc1727ccb894cc54e8560982775e4a3cf776be7644f4bb7da2d679a525628650f0ee5353b2862aed4fe08e7506c342774b90cb333224f3463904e56cfd4f2073a181d6a642258185d4dc557b4fee976dbaba91059146f89242ba61bdf26580a670b29766e447bcbdcf568ecf76d8ff262d11d2724497479639663dcc05cb2578949860d7954d1d6db6addfd045321808a9b130b3cbb4238efb2cae193d7eb60cf1979c4c6fcf62eb7e8247585a7dc16b742d3cb1594702ec368a3c41d3d593d78b5b14ccae5b1a277ed8b0850b4d1b0c397419a990aacc", + "01f654b6446f6ee4349beca99e9f5bb31ab07ead8b373f8decacf1e21de06627fa47ca48200c898e798ba2572469020d9f15f08942c76effb4a0046705e227156d929d1f4ea0a1d901b308d78b35d0a5ae59b7ae6b21224c3d60ab9c571e23a77c125deb", + "48a44322d9adc29f9b69313dc0b73221467066abfc8360645d1df1d1d20fdd4ed50725be5904f17cae0f08d93a35929d568c6b95e9d43de6c2b8fe96dee9e77d77fa7d7f76fb83704a4ede0d29b765c99aae78114c78209b3d2c4a38e3438744ae47cd66f46cf8ba6409643c7d7824227bb12da03b62dd7e26c73b3f79de602b2445fc9c843201952acfc3a10c9349b79e3a3586d2f1219eb3f8b6dd2e89baabde715b4358e8cc603746e7ce084390cbbab5dbc918c645830fa6cd4fe1b72063", + "019cefea0f2fcd93959eabec4dfba6ba41cb4b24fe3929e0d8fb4aacb4bfae711139fc8306e805eebec20dab8d91fef3cd3d3937b4ffc447b62fe52e03796462921f7c80f9613cd78c1897e21de9f12fb0078eaa0317f54a8daf942b3c14baa0b4bbf8eb" + }, + { /* i=2794 cDividendBits=1565 cDivisorBits=1318 */ + "14d3d14c33c40aa80907edda88859f52153f86444f6317aea25bc15ae9793ffca5409141bc9ce0ce397ea879713b28184add6c9fb58a0302e2b333f9af6a21eaed34dc9e2c46a8ec81328edca045f529b6356b370b050f72acaa5f7976cf73e46f8e0aee10e33d614fac7865f5a3137c20eb2821daa55b1164f2d33bbb848c2647d06bb8d7f2fe21e7fd5f3e1e465940026853bc78d1a2d128b12ef4b35d029f373e935a96d0a1557048ef37e5a3681d8400062def0538976643c29c78f457fbd2e172e6", + "0f85dca050fbc58171f3286f166421db6150829fb4113499541ccf6c0ca62209664b1451e947cbeb340857a69cc9d7971214dba79ef4838a4ef014c2e72916a5e643bd94e590377e027811e4edda0287984eb3e16831d68ac68f62e300415aa6b532d68d8d2b7e0379b520d83a9a13b7e2a5af7360e6e91f1090c762dff3267d557f2cb46d45d2a670d22f33ffa895d41cac36bf74aeb40041efe71864aec5871ad5dc95d6", + "01577b16b3b00bf05690b36a9619e92c8708c0b45eb4e53807d2326ecca7cb1a", + "07c082c1343ed30cad6be9f53100773a00cb4d2448538625bab0b612813382f0fe294d65b7995cc1abe0fe5604df96609766f83fef05796fbe9a4e9d4a5b8dfc216de30eadcd6f5542b7320b59b9949d78254d7648af0bd059c9c8c0963ee3c251ad6c9d50da15a137f3eb4b9080ca0d8c16fdf7c0b8b52d145436c7b1f4b6ad2712f5796879e44873bfa0735aa0658c7938e312eda44a8f945d9f101ed43cdf6be90f892a" + }, + { /* i=2795 cDividendBits=756 cDivisorBits=343 */ + "0609d7ff6aea73f9e2b22a0143d9d1fa8f0cdab9bf88f85b03189df9f9522b96a7f0a05c9a3966481ca76fc5e8def64c2ac7175b0485c44028883da9cef6cc769594c93b0cd06aa54bc8463442ecbd6d5354942a4fff24a601038b5521b6bf", + "38998bcc46f63120c506b55d63f2ce73bb17435252d9670c50e922a533e30327d3f4d25f246e38c41f86da", + "1b4fd3fe15cfb085d0c9473455f31aac1cd24521a6d8e0a750fbb21f39290ff10b1dbf438d1d5af8702ca9ff66830a79ca132680", + "1e3f210e09eb204924fd5b2aa8ea484dd11c551f0f044becd0772d8e75f8d97cb213a7e6bcca43912bedbf" + }, + { /* i=2796 cDividendBits=2289 cDivisorBits=753 */ + "019ff93b6063423c4d9c948ae5ee9bcb9d3338cf2d17d53356374de88c00848e897001fee42b6e4305ce271ded42aca55cfede76f7afa1eaf4c373b0fb5f080db9cb61139add34acbc9afef364dab76480a65772e87b4124fa4ae6da796a94955a2aa30b5ea3f82b2bef6ba58b83cb47bc3183ba60b1f5a0aed210dec80b12ba69d44ce140345e25381cb40edecf026db7d3ee333f86c70a2a0786fcaa5234dcab73a7f1853f53d042a97005e37b220a6ef41bf061ae72cd0b96e69d71716b3b95d114c54eeb9e09fadf05ab02b4301161c62c65395a21a0cda54d3dfdf9d6bdf2d491f3eae5a6090851ea2b657fedecb04fe8928b3f1ff3d9b09d066700d88216f967ee8d79741a3fdb7fc355ee8945b9920b3d7554a322c8ba4689cc195f", + "480aeabd0f88a2bff27630d1fb90e1c253e9c571d004f7e66376de471157bbbec6141daa8d0a82a022ac309061967ce20fb1348e2acf5d8f8721cb0f8f9dc23fb24ff5ed162c5c5fe39847402feae9b27abdc30f55c6ceb826c38efcffd9", + "05c6244211e2844739ee082e614e2a97b3d92d97980abe41b708c766f493079adf21d00bbfb0e00971164866f947e8b8495478b8766522b65191118f366ff932618d2c413cf84986174a7e4f1e46335ef284042369e7d49deab7950f5bd099ecb21e9679ed0e0996618e5e59bcaf890883eff8ecc8cb18a4ee2259afc6db06d5e5bc9e19ed63a7775cbecbfd856b44d6be9b515739d6e54b4981aac3475daf4ed913333ddc4d869dc79b2ef3f28980ec7bc45d58ccc3b796ee38dd5bca01e908d7", + "1e9470f1bcfc468ed997b842877754efdebb07388c6aefd389d1d63c82e73e02c86a6fffe7e4120b7a86106ba58046c8c0749b9f5ff57aa87eba6a7ce929496c2e6224c9654bfa53ec0329a8e2c85010d839eab75232a074ea12d5d17220" + }, + { /* i=2797 cDividendBits=1020 cDivisorBits=981 */ + "0f80f7ff6504ef75f999c1c7ce1a3be919657dc351a334e8eea26cba8d5513f1db84d0a2eee9c4e723df983c77cfddec2c0d4780cbe091be5db84f438427a3697b759eba18997468ab6dce9e0d8ffa261babb09965cf7acb5a60a74dfc0e995f813ee524132a9c97b3d9a42b58871da91b86a75b08c3cf569c523ed6ada18aa3", + "14dfa374ed4b08aeedac6377b1d8d99285b97f65b23a2ce31ae9bd1de4989f9368e50af076de5a29ac131f68884bacbe935d6a414e20200b636cb86899eb771123f69b4e097d2d88092be13c0da9062f301a2a833a032bce91235d44b67ba50bb16d29795bf7580ceb0e8092bb4100fa7869106dc18c5316b8c34d", + "be24a24ae1", + "0813d714dc3c1d719b455eebddceec1b49c04359db575e7992a38813ec85111a8d635f1e7f580e0050800046e62e562cf298bd1918eebc66b32e3695aa516bd26931f3c227af22d3b3eed3868e4cda168ea3d3c4fbd40cfc26a52d3b59254a871a5fbaf687cdd5e2c4c5e0d8f2d3edd515e64ad9be95b5e20fa1f6" + }, + { /* i=2798 cDividendBits=25 cDivisorBits=2 */ + "8cebdf", + "03", + "2ef94a", + "01" + }, + { /* i=2799 cDividendBits=880 cDivisorBits=90 */ + "d09a8b509ce5cd3c252823cef491e2e86d96655ab5d1500f42871491f98967896fbf526994a6177dc84756c4eeb0332d9632ea88206a8f3d1abb4ea6e3751294d343f52feb6a203173646e38d5f91e658974051afc7242e65356800bd416680c5676631cf3cf287ba275e1a7864a", + "819a43aecb46c866454697", + "019c0c650c6204487733bf6faba1fadd7d5469fe61ff2f4319e91f2c48ea525c40fa95ba387253323036d8149267adbc3dfb322682c6898d0259408adb339f184640a50237d55bdad9d9cb2aa7efa886af83ee24aca9999e5c3f049f827f0b5ce156148e", + "128cb2fb269dbb4ffc9288" + }, + { /* i=2800 cDividendBits=2954 cDivisorBits=989 */ + "0224b65e922ae9922c78d900c79f98141175d2375fde60c746a85f9026ff6122cd6eea314270c584df1ae61586d18ed847ae78520567f9fbefd8b364cf48e0a42fc575511a8425214718601251fd81e25c1d7489c59d05a2eeeb2aa185af0d6477c412cd8718e43fa487d1ba8889604a384ad59d6612132a7b5c77ecd414d09972385da24d6928df84e44c715561ea6f930993756436477454b50a141e23c91a63b25c7470755df7818df61e1d8e5632b4d10854c2b052321972226261dac3bdd6e5531ce2a54f00546a644f54954f7e5f97be32e8a4bfe7d8aebbbd8a9acbfe805d939ef28d5c5f6121dfb56154ec163976e850a7bd364e4b7044632ac4678ed1ed37a03d1c526934ff5edc27aadcfbbc955163c20b8ac621a99159a911b42875d370d6570b8ce0166f2760f6214b12ac01a645cfe417dd6ac169b358fe01f2449b5b8015f323912e8fd1bbcca0782b832635d0735e62f67cd590096b582a8d3eadf3b36d0f1063e438e897c82a73ef1cee", + "187c80087d0d01ba8d8613332533dd52d8ab66603dcd6492034a7c1b8125619d9cd901118dcfe4b593e55ddfedf2b9845c4489dd0e561dcccb449f83b9ca9d80453e7f318e057a0cb89292bb04f8ab394ea2c50b5d3fbd24d2f0a3b1b44d9adeb77c663fc1f033256026b1c6c2e1928b6360b40f9c566a207749f7c5", + "1668af84fd93bed9067313342fac731861fc80adeabee3310d3de655839ab768c27c97eada73b1608cdbeb5dfde859f1ddfdaaeaf5f19eb0919c108ec2c0c7a4687c323c98f05bb7dfdc5116f60a5dbc4e912221f8fac91f6578b883d1323b4badfc6d428246e434ec5c65012553e9234c911392958c628f47a2707e01b8d2f086de7aefc8ba1d8a89040f33c86e419a346ad4edef147a027410f19a0370962b3fbc1cd0da192c920117e3ae7d3369af844c689810bfd5a8eeb8a6b7cfbf0d8d97d6d7c7810ebfc382d98c77f3688eb558db121d20735be821896986d92ea1d491c5e33b4b2d971204b68e10daf31e894e9c19466171", + "15e7d4cd7c36fdfcfe579e299eb21e22624c734f30154073c1756c8e8afed64c64eba1d4cb75ca0188c06c542e662befae185f87f307464536c9a718875c1285547b6fbd8f003f56de3a0907f45d157ac0e5861cff9c7379795a61e0e8dec9dd7512b6aa1982a002abd4b3e75a69f0829f144b5b0eb7c92ac88919f9" + }, + { /* i=2801 cDividendBits=1561 cDivisorBits=219 */ + "455424e96430a84b0a3d8656848e4dd8bf7d3d943b1d1417403bf3157c2d74a9f337d13dd63b6a787473acf794e2828539266c452492bec0105b51a12a03d563a39e953743fcfdbfdf072cd69af47ea89f39354e158b76402b3b6665592a1222d1ff341b62582a54febb7027c9dd4c9047a269ffc8def12fcd5954984aa0ce969e50c27c94d1b6d873d55ca6310eda60b9806296a7a3e68e6f854feb0486d691e4fdcf93ee15fc9a867bef448c05818a8ed2d32dfe62c3f2fe920f8dfea204f65b1d4a", + "02873b79a4c6c3f4c3cd9c637012bc919c924f7888a1bafd057c1ba6", + "1b6bedcd52b5e80447892ac3a99049399b6c0b189301eba396c80f865baa4b4d85992bef8f245167fdb07cfdaaac729e14d848c145d031db6caf07b85aa816a4ac0d807650706438ae22e6aa520145e82586ec79e191ecf8ebf9104da19008afed85b3fefc86faf7e624e1f84162b57e12fa8b62728062bea990f65e67677d8a7468d6d33309f43c1ed39af5cd56545d8b65b87e07311a1f7a8828bce6c3572142f62f6881d80fd2", + "6cfbde2a70bc3bbdc47bd53508ea36f257dfe9591b8b0e36ddb51e" + }, + { /* i=2802 cDividendBits=999 cDivisorBits=624 */ + "68946647d5740f7d43959eb2a3b2f0b5ce4f2f3900c77ec0e47ff6239563317d537b22fc91706d9c7e6bd0aa9b99dba5e98865ef05819d5709c3f881c3aed846288b8aa9ec5f7e7acce54c1602df2c45d1e50318c808c1733355902d41e7b94d32bbe9bef682b13f7ac6a54b51fbc096685c84a3c73c43f28e49588305", + "0e8876e7ee2ecf2330cda48bd58731f1ea9568f1c99295658b761fec1b4295d32ee2ecd63fb1c04c5e8cd7623ca7f44020bba68ed73fed406fd0ea9b5ac7f1dfe56d01d3bda67ecffc51b0d079c8", + "07322bf2f774b7e2401e9923ef31cf22bf1586b0eb7c038fb57b738412d5f03dd76146d8b06b6d780796aebdf8517e9b", + "0d1171636d46e3fa56e5b798272993475eaa48e1b290beaa49b7fbc976e6b1b1f6315061e5a1973bcb7f4c736cf043578dc702e5a5ac9fbc8aeee4348a8046256cb8a085e7970d23377956e656ed" + }, + { /* i=2803 cDividendBits=1834 cDivisorBits=952 */ + "6c7ce9b4e1481741a28958c39d4cf3bd1bdb3cbdfdfb5df3fcbfb36d72da47387dc391089288c695a969ee81f3635884eafcfa21981b4e3a6591c29718cf1eed234422b52ca130bc24b1e57ca58c11c5500d8c44c89ae2056fb16bfb64751abc00c8aee1f035cc78968427510f15bc066894807346d130308473b92cf0a699df39e25df28c4d0736d94aa70a6ec4ca9211eae7df9c24262ac9660657567d31034eb5ef7c1f5fcdb66227816ea0d4f7a27206e4344f21711457e12aff77ff45e9f4ed08701d7b307b3f4b1758befdf310d173ac8460df8bbea3123fdc6a8960f0d1a049beda", + "cdfce0c2fb99f3e76909168a3671291b866aa998ce33948e8fd293a122c7cdd2dd778a993c6aa9815042f39133a34aaf416acbe5ca4d6dc65de34f093d764c009b6ca05eb5324e0ef771841fa66ea170cd5c958ab2e133a55086d003a1cee1a27517f3c2f671b3e830c755c121a0a309964939cc8158e8", + "86d3f45f2012fa9e236a03590e97e6b6844b9da30f902072f7050b4138abd8aad10e646dd3a16d5f1b6f7e388401bacb96098e0e37397c2383a94587cfe237747289c5119a869b20b537e66ad27bb33d72e11e474420f6bf71a923273f78e20be3cc6fe693992aa4d3e97dfedc1c", + "67cc30358244fba2bb6a71dade1d9832483fe74398be85771e6f0562b8d3cc621d925eb663cf2ab784a1dee379efd208c5f0f306d4cd3f885ba1aa6b805f596d945b96cd2935bd8c7666375a4933628284c6654aaf85f5c40c5b05c6809f7d5e130c8699462e6496267c4b1a916a35b32e0ed89b8ca57a" + }, + { /* i=2804 cDividendBits=1454 cDivisorBits=944 */ + "21c292f549cd85e7461f8bae4bc34ff50a4076412b2b48565d431fae36c23a3734f04aa4977cd9d4b67cd7cfa0c53990dc8dfaf31881fa54308237b56740d605c4a68215baa1568e840a861feec60b38ec34362139e574b51d92411b387a76212eab1a7e74ff69fb6343f4b236d7983864f51dcc51081be5767f197959675c0df663a7217f673df75a96bb863a0cff252ef813e05256d7080c507bd2e0671534996234da069e3e98ce345bf33eec197e89988813c8d2", + "d22fdf55e6bb8edc01aa988d872e9e830dff9f64b41366928e347a65d1c824134b91cc0b53c2e05afc92ffbff06925f340cfde55ebdef4ff739d87819e71bea99d207b6f0ab42b2a977038af00eee479fe3fa1fad14e12472cdab9de1a8e106afadae6cf5868acc3b54ed375c29dd49990dee1bba71d", + "291e55f697ca45e3280dcf790e83595c55bf2b1b03937e03667135dee478c3574f6466a1e8f24aee52c1bbd2e3496f3aa967ea1f37233525e439c9ec8a5478d5", + "bfbe34b58d49bfc63bbf23a006128300ca3abafbf2d1aac6b6ddb62face284412a71b3c541dda38df3d06bee5a7f8afdb2df7f15753992e5f0239fb6ee8e37d1131dd057fe22e0f516d935a6016d2ae6a88dad81fdf32e5828f1dde400134d65535d293cf1ae05c3b14966aeb2f3125678f2491825b1" + }, + { /* i=2805 cDividendBits=3428 cDivisorBits=999 */ + "0da3e7e847d0a5c5050db58ad8227b6951911f101393f2c660368424909975981c9389caa1a2a9f60871702109528f36de99186b923d18f7dbc3812ba9b067da49ed19b09b9dd951a737c211c4300940cadf45a9b421abb70576dba9b5b2b2a28c3e121de6d7fc0e1d2c95dfb97ce17aa34f96335725ac00acc9334e10e2dc7e4ec762d01e9be6fe4dc9ab81e37b44c5db8475719e4d981564c0c121bbbaa591fa0483bd7773c57bcd195aaada437f1bf82e508bb4a9db0a359587422b035570fe4bf7056fd6425ae688dd9215928c28db53ef9df854afe69d9fbbdf46bfecd3281fa3f05294b0a11d0da428cadf5648655bf486d5df813511d75f4ff336c033bb52b13e5683780f4209ebdc87bdc53f834fe224982fd91868b4de27ddf1434717097cb04f95c032af62847cd85aa3f52918a6926a1f0c11493ee69b0272f2451da934d3b8dd0a4c1425f4694c2dd0a832bb1e5321e791bb1ffd9cbc8213d314efdbe0aa3fea85457a9e07aa4a40537b3447c0191476bb50c883983add7bbec7bbaa279e3e5b91391ac6458b043b5ef8e905692a11ab0cafb60dbbf7606c1bf9efbf896167bf76a18fc345d918", + "17ea38c459d561bc19be6a305c424bea220f5bcca0fddd7f4616aaf34f2e536c4758be007e0d4161c10edf9d1dd37684566ff0c85cf70d1d93ea4cc6770542ad50e36a91f22dcc566f6dd555b4c1af95d7b4e0b87462a4b1eb41c39c77676a70eb90fc7747d3dd127427aaca864332079bfcbc68e0dabd1ed6bc55118c", + "92037e2e9895c0b78173d0b713b9b262c42df78a42274ab1571bd4d72e2734da229b64bc2baed93bd703a5d0e8b68358ce8bc99640d070aec05d14eec4a2626d0f9968d6354d41d1ac381f7045eb33a512d3efa6c654497d6247d1d4c148af47ab4e43ea0a3e4f732df246b73d264d2ff339320794e8397e6a65fc4034a82dae9b39ee7530ccc31ab215085a1d8031a86ee93e77b27fea898e519d411ba8d877879155e2adce63062c65e7ba2ff53bbc1c5e26b43738adff473e15857694ce2041c14bb6317bfa45335455c00f6af4bd5841a53d39fef9077e88720c7ba3942439d8d74cb1fab5db672b163783eab8f489d5bbf490eb3bf5838f538f0f12ba444a5e4d1edda329b298e3150519a2b0d38409308cbc297ac8347a7a291d43b8dfceb43c7cf38d1c8420c1d76b2d1a3785", + "011c2156237d20535c16eee67fd38a12d24793ad729e6c9ba01c8f0f37decea25ac9f9a4c6ee592f44abc72d0c7e8d9e57b91084b5d6417566dfca5dd5cf878e22fd65f59d5a33df5c57314588657466cae17dc0bc6dda2ae465ed52c838a20b4286b050e151d09936b6bb4ad114d65142788fe986b4d47b4c4016a75c" + }, + { /* i=2806 cDividendBits=2660 cDivisorBits=685 */ + "06520fadbd20e9dc79e969b2e9f88ff4f7e559595c3d1e4aa0fea7e1fb8faf6bbbe836961d92b48940f9d5fed9d9c22774cc581c471e214b2fef68ee9e1cb5f83e454cfd71731bac299dacb48b6c1f41644f09541142ed65ceb5611043ad136bd49528090a58b5578b81087d6fc7fc90e2209418c03d009dcea0410020c1b14bb6c055a2dd713fbfb9f2677a7c225b9db77804c83a5a5df377d8a727f5f96e425da18b8e26f98dae774b610819deddea9626ff153dcc252b8220d365fdec06a970134695951944edeb3651651c1d2101e17f8f03ba35497850a716077e30771314292da35f95abf719d27612adae91f2aff673dcbfe3c8adf83c44f01bba1689aeff0b69f725f4f8189b21866a44c4c859f008566454f28d495de8304e7a657b270a2424ec8aca4a6e1df7c44930a22ab8c7f5764bd7c3c3dba8c551a72dcc5c0c40e1b94171cbdd9de0a2d4c5", + "0f491bc58ee1111877528af0859c1860caf707da0d5ebd197281c5800a8bfd4112c0949597740e4f7aed76ccd98817ddb9589d04981baedd599acc70867e4ead641f41cc695a2a081d8c3214f34b71a8fbbbd895dfd1", + "69dafbbe936f2f68e7a01b373467f1d9914cb47058d5ce32d564795bd020e328d004bc8b967056d7b19bf94575a50ef10a73bc43c082299a3f4b1c7ce8c289d96ab4e25cb66ef13c4c4a032d76a29e12b4a2204c99f977b03f7e1708c1a36daf0e0a999efe24860dd10768e9c92f87ab7becd70c6e0dbb700bc5ed4030866aa08f645a10a9f72922871e2c5f18293bbe4cca9b4a84f12a808dab81926d0b9791100db0473e0a96340dacecba43ba55a14004334c24f31d7f376a82a2a3a230ed85c6944d29c7da468adadbb1e372e516d0dbea2b8e8e8bd2b20f0dfce3ec967dac271f52d43d653d270d76262c48997d5ae053bf18fe05", + "06453e1cf1f4c1ea94fb14514339a9838e00d1b6f8f6efeb88b24538aa6daadd5b8904c663b79c96ea7878d17fa60748ad9fc7258caae00f8e679566135f97cd943576fc17460c9975655ee9880cb69e0141070c17b0" + }, + { /* i=2807 cDividendBits=2997 cDivisorBits=425 */ + "119ee08c80f1962efa6331e29f98245f2989a1285cc5da4a8ef35eac1dbba99b01a3352320ebf95b87ece01b6010c2365d3ea7238e45e3a0489a35f61352d5179a14c2f38c6e8ea04b148c91f7c4fdf4d9cee24a47ce08e5537b64d0b64490a48ce02243d5c332791e1f7a40367d182bf22981416473467aa4405f9a94b0283967aadb4960ee7bb2547a67c98a3877ae04d8149e472a18355f8e5724c6f36adaa7377ff2a183152b8b39ac5c249b3db570a792f0e46db6f0503bb66036167348f3282c4c745a3445f5a263701d3c902045301ba7357cb5913edc6e8938900cb7f64bbd4d4aa8af82511a08ed7e1ed6e0c105ee4dbfe9d5bc868d9ee891ef88084e13940c0174373c21f9fea9e2767829298898cb803d7ad483744d8b46a5118ed4a4b7f616d3a376d1bc6a204eb9badf8a990dbf7afe9ca1b039cc4233172bf32e94d438facd28e6de7f1e5fbc832b065765d807553d71b2c218b057fde384091e8e02df7e22270cd440bdef98a9413771dde1c6638705", + "016ef7f0b16c2088c850f0c30a9e80684a63a8ce8c109001280cd3cb21b6f04f9217516cd0721c97b61c49093daaeb5dba58870714d3", + "0c4ad2654f0e80f13ea8c478d4193b2574b08df3de19b2b7fa3d3e984916513b809f4c548640cd8beb06604e2a03905d290d853694339e6ab7d5846a6a4a330fa7872df8df246c4d0ed30afd5464449a5a83b8a18a47096258d8a9ac89f7f8924b76459eb2be2550f25b2768b0b87ea6526c07d61489b007e79745296aa86d31bb453354aebe6f303cd3b4b873825aca1c79c2652a761ea747f1679e07155ffafb3c4ba8fd46e6d240afab926e6087630b650cabae04d6666fa7c31fb66b245c1e1028902162d30361e7e8db6ab60039f462627b07c1b33306b1e8fe59c6918a6f70b6f78a9893409a6cd2abc4de104a67544db82e5842b4485230b540037d9ec2740142096812d616864b45c500ef13e61f108dc5179aa9e1da5e1752e108c5a106fb19cc3230521008ebcc5b01459091492f3835c2b394d02d5ed65c5db1a93526", + "0b13cd2a11a39540d09b2f9b57ac7d195b55fe936fdb5565b1b11030e8cb94fe6dd5aee0fe364e9a68c423db192ab6730fa1bbc0b3" + }, + { /* i=2808 cDividendBits=2161 cDivisorBits=42 */ + "01685519e4c249c29e227b94842c6a89dca63b1808964ca335ecc144abb3c2406e5e02d3abca76f1262e9cd8a1a8ba47ae470ce5a712293330e9e7c5293e5bc97dd83f59f37fb81e3d9e39abb1067ce0679f3573f839239a833e99abbe64425090646905fb0784bf75c97485a82ee1b76143b2591df5ac7c21533c4c8789d1180b76fd52fe6b0045f4c743137b3152c190d8fe0ddfbdd6d6cd2dc8fc23f3684ab2e6ee8434dba34d543819f75a88fc91e1bbe5669e0a9f0c8ce4af5441551020b0e19a2aacb6bac89d7bdb744c71e5532ad2cfef69cc72aa5b17c301bd913cdf2a1dace579d92609a8c4bf3b6aa66cee0d322df22bd448023ead110704d8a512119aabf334a717126c080a565f6349", + "a1e8687096", + "0239bd01dc940d622f398ca164115c7390e71b1ef0eb83d128bd877e6b0352ca31d457bc9d9a908eeb46cb55be0b7da03f0694d93ab8008a4d0ae49d1e53b52166b75570275d4e9c13a3b53f6bc9a794589a82ecb3b10177344cfdd62ddc42354dd6f5a1cea0c5c97338638429070bfa141a42b6534087acd91fecfc0f5612a5044b7a86b6e2e788bf6107cbc1a5093e11c50dcef7f5bb4398b8766b45139da1dec9a3ebff6b3630b7a2c3403cba241865abb4bc1895db86c48bded2c11fc6edbfacc6fccceb5f753396c309a1120b33cba037524b45850896a6a711002ba07f2234ddb3152ce5c1ff50a9fec1b67236b51961d030072d7909e7dbe0aff30e9af7baae8bed1744a70443", + "85976d9407" + }, + { /* i=2809 cDividendBits=3328 cDivisorBits=540 */ + "9c678fed20a107d4329448c066921e8cce7f62f9caa58dc6086badab5c029543668aa95cc66c34ba0e30d254b7406b206c6bd6d984212da2911846e16f18cb006727a871e978b71bc9545f5408b7d31fbda6126450606df5c2a8b201a13d511b50e9cfb78cb80c53c2a660ae9188dceee86ffa349d1b02c8f76e5c051400cad8c19194a725049ed412f06c3cf954f98178a0ec62272760ce19a797e7dd45672361f8a86ed87d52a622271d242e6e19fdeb8e24a56ee7d073e99a956c214af44b911a612edbeeea22dd22a753ddbdec51bd35d48f5d110df05b7f92d0d17fadaad95670d56e7d2ac71e0fbac59e7f0a1933c682c7792c2170e03f00d5ec45c2a64605a902431f2529851aa1da8c8cfb4b612f9272e8f0737c74fa97a68d37f777d0bb108e9ed4e931a6ab320978fb6dcce3f4b2e2fe6deeea34f71087fd4243e0aa04466422df7823b041be502d20d51dba57f23636981e2289239d17600bb41c30d7e2c2e3599a4a33d075deb29cf9d5a9ab5f46c37728084e388a9aaf730742e570d49c784cc9203050545888f92d24da89adf54757d67850f3ca2da4e696da", + "b0901912e977e16223b5f2a6ac5b04d7cd917a16711104aca1f563500019f5a5dee4cfc0b70284d37f077d56a5bb3b4a5da58effd5b3eb7885151ce1be092ee21ce40f", + "e2c5b232aa33e84e540e1f347267e15a2e1e82bc4d3f289b7dacae05048aa8cccbc8b0282ba8ff7619b273ce16bca43aa80167c91689953fb4f0df361b90843e017fc0272d5b6689118b05951f25dd073a319f00e57fc1c1cd983a3bf71e5c9b6fca452aab7ad8d7cf63622d6abe09bb89bf0d5ed4984bbfca73d34c85da64f1339ddbcd8d04e8905f4751579fc52db87181ec65950debd6c223f0f41d7e8a7afcb20a893f64936c408169e879d76cc178174c46fff880af8c0dc86e50aad42e6bea8f766c95e6c8170ec8537ebf48865d8b2a929bbd94fc59638a6a7ca07f5c59dbe4d88f74f9f7cda50b8a21e9a2665946740f1ba064157f1a097692c098c0787eebf3295df0c0eeecb317eff381ce8b0ee5acc15eb7c09ab9f2f9985e5ab0e273354d8b50178e672accd4c90adce1114ac911515e92fcb401fd79c10e4df0eeb21fe646ec16c2ce75feee539e65f00d6e51c051dc75f7679b33028e", + "73424f2c2fa6c4e7bf9ae3b0045107236cb1848d7cec5264c58c677fc7703e46cb5ed15c384cd2cba7b672c1f6fe1ec2eb116db166f09f35ee5c4d6db48f887b1af888" + }, + { /* i=2810 cDividendBits=882 cDivisorBits=376 */ + "0307328330ca7584fb2989f757546b33092e67382ee3bacb0a74f859af9e1812fcb81bcc2286c6c08b6e9812e89e6fc65e0de48d7718939d1dead836ffd72d5013641ac16f63eec0edfcdd75b91516b7ecef159416519c0e04b14eb86f834e14de4824dbacf3899e8c5ebd07ae9fb1", + "50deb5cd6257f5a986f9e07bf3c07f11307c6c020dd8eced1ab2aada21998790a89c3c09b889d06620211ec1f3ce1f", + "0995f227f6ee44a29c88e4806e2c2cb9bab027d0e599eabfbabd0b99cdc792d51ed60e0c90fc5197bd8c87aa34ab1207716ffbf4b851839f8f4cedccb31bb6a9", + "487a0348e3aafa234b4f7185328c0582457e8f7b25f608f410d0767f03aea4ecd99dee220a0ef8959fc2013eec833a" + }, + { /* i=2811 cDividendBits=772 cDivisorBits=122 */ + "0fcd49a2f6f383de7a0d36b5e9869304bfcadef34e48b419b959e70efd765095c6bf041e16d21d54e236124694f86b82a27cb68e9c684047031bc4e5d531deb7b831c35526a8db3a6efa27aadce778b1c81f3d01d9b28183873fa037da0e7f2dc5", + "012039bbc93f5fcb9aa3fa52401254ff", + "0e08ff695303a2fe40f4350f11e27b0888928cb7c30ce94abb6c017555d03c45f140c43c86361f50d4e7e55bf2428bd5397e0802897dcbdd1af388fa244a104e21604fe8632e736b9a9a5560187924fa6c85", + "2d9500eec21acc2a3d3db52c17714a" + }, + { /* i=2812 cDividendBits=3463 cDivisorBits=1454 */ + "5fe3a5c2c6a96b183dd0c10c59ffbd36c7419de7b8f17f6aac3704194926fb2fa3216823af722dce3fb081690be6c1fe94a87adcb6ce0b927cc8d570f8a9adf94e95a200bea1dd3cc9da9789a01327eb1ff90daac2f82e3acbaa515d771fe8f950ab95c46a3b4df110af32c0217b1a80194fecac140d2051dbc915e292d1b5d69297b9e3af75a9460381eb32f27d2e122961fd72c1a0ca63d404e1a9860f0ab7f38287a0f56143e7c94c27f1c09122c094e7cccf43a0c43d759bdd829d5668c5edf88e4ca7d1d12c743b2cf80ac2e6f601e5cf964574683282747dce7275d66f4d25b35397e50baee29d8c4561c4675ee76dc3d09116e983a52c5fb2483348908b7671f23523d1f87da7ce71e4e83b44857a34e3fdfb55ba51e5dffe31bba111db38ee20140c921514ec8d5e5353945c38ee98e2efc1f4c07624485979332f51e8768d00803fb3c3577bcfa539592cbb0737d229581075e7055431986bf9d5355385c246121c8d56dca6da2b34403c0d39ed123dd9c9e7d34783cf9fc66ac95de6ae38aafdab5c4b43f075442c4509809bcad801443893cb8db842a56f8c78cbb6f0f739fa5ca16bb0c3f7c6eb86fa45f7", + "24a2aca8831907fd3172ab8105be7d1bcdb9bea8a799541ddf5b314d26ac4fbbd86abd80e8ecbdb22e37f2161ca27db876431d4aa82240f548bb9f0d5bad9fc9d24781444a87fe753822e1bde364d8b393cc04a9bac831eab8ec7f1a8f4a1b1e1f6afde0963fc4328846b0e4f65894c9933d1f6a5872cd42fa366e85d571e5ee85891e6f9d1893046121d6faab545c81d426479214e1d5de346d520d8c3b43cd5dcf3e33d4d54ad96876c70339e1c0e81b95293f6f17", + "029e0d433abc57cd0f9cd8257a3d52499826888561f2c3230b35b2a52d219fd73fc1722936995529454d2a7549862a26875559f7bc386a4bc4f8a8475c599c5e3c565fa8067779459c71d0947156c8885ae845ce0862ebd97cb95231a0b8ebd17535b367a1aca87f4169454f69295bcfc23851fb0cb7855f69eacf5f0ab66d78fc01837173934f859bb6c5a234a22040e51b4abc9a9fcf70b7d46821ccbb1d4dbbec3a713994ece90b6cca2eb5477cf75e908bd467031ffc2e411f8aa49a51989660d2ff08fa08b2d4aee8b8caced5adbbf30173233514d2118921c072f38a5595366aba3ed172886784d61f7799a548417bb6e6e6114026ec355779", + "03a91870cc38c7ac6d0f182a7998ab8dd5f7b7dcb2f2a0d5996186bad0f531582d775237396deb67220f2d0c612ab93ec24fa38375afcd1031adf2e815df34ab38de9610f062128a295611b76da053f25f013b503c3b7452f48e8fe04a64296b6b122bcdcd506f6cac51c55bfb19e53b3820a6eab144b582dd4169304c3d37d0fd75b12d188e347b70f94db428bcf9a7002538949b7a8a6a9d0a59bb40cea82137c24520a52e82ec1dc1398727cf7743ca71457af318" + }, + { /* i=2813 cDividendBits=3635 cDivisorBits=3086 */ + "07edbad95d321d2358f8e9c99c6971457b6886eefb4bd351d3fb00d881998989e7216b0d0ae1da2dab0541db6837c24dfae2bef177b39cf0936fc96cbf4bc5f2aadd6077a64d0c6c0fb6b5952302e2ba9e64b5b2bf4c4c9008d525f1885ac74a4cff95bb5524992c1915336c0b26cd42d0498f3d71d23bafb4b10fab621fe7e9efa5a2614444ba9a73a99da8f7fc16b5d268240bb9bfe6afae545a8f3f834e4e8b0d0f899917d19c1692e2f2b84ddb83de8addfb733c1eca007c8c28486506dc57fd2e4adc5abd6d14b04043cbeb5ee186da62956eed77016040ee01064a8689a34d95efc481880788b2ff418ffd0ea837108d6e91e4b779fe596d92b34b3907cdf09e956864061f4af9caac555c5603eef626204dc760eac1972f990d640409d720d4c5bd11c095ea16c916320a1ebfdb77dc971e5327bd810a7bdde9e6b2dd2e072aeb673861b9507700f18a1aa46b1932f74df55ff708a096d7914974f77d01d93a8c5b361a6616092a96abb7c56d513c93f32f01bf4318665a3a5fd378d63b0282930c68c4c6e4b44c8fdc227655f4efa616afade2047f3528fa92ef3ea9648263ebc7922f9626e3c97b56991e6fb06e963c771b44a085c983cd2ecff30f780f8de87d2b4e", + "25756bcacce1eae7b75bc4c67496934c3f42810edc669e5b79dec9d971c51a9c4bccb49a9ccd3791401a4695037d134d2bb3c77bae65a4096581afda7bc0821540969736ea3a4a426de2305e7bc6330d58211608d2a8c2f072edde17c4f0022247c4c80de3cd396ec4ae583b99d99fc2f49bfa61e4928bad153e2e15c3cc785b898c28762b1c59e897533004bf8844737df46c9f15614e0bf5ffdb96d1f40a084801b69ae4a630087eb44a2c739521b395ecaf8665957011e315d3e067f0bfda46466e27a8317ef75f2e2f63e365a4e5f660834af58d4eac10a29b7cd82e01dd9a963c4214201614c8ac8f339cb491feb2d81062d379087053d71021a8af90184846b2755050932745f902e94416b38df9834c839a98bc666ae870a36a33c753daeadc51acb5f24f30975815c4a4c4c347b6b15e4fdda012137c6d7bb72c0d23acdd2101ac55f393d4bc9cd41d1e04b695dda4c0b7226d8555067ae7dc0b892874157706f99e58875cef4203789305a3af24041458236a9869e3f74140c1979e98cd", + "362f934db551ab89228106e8d1ac2e1f9601fde0f4cbbfc32591338dccf9a763e3a8b56fadafca2f240e0bd91d0c50b290c10823d807f0d98fc5a37d5eb012a2e1ce0318c9", + "2363cfaf8e2cb34dde098e8c625797e8d50dfff2e3097fea11f522fceba0ac0cf973685a45f6672c960b31c7e9b7ddbb466e0e3bfb2df5c1e041c5cd6a5f82e93d19f8b31168423c650447956282d3ec5175bf45fa7bf146714fe9443579682e8027d02cea4bd9c095d7cfd98a431f2eab82c7e1fb6e48b05bb2c2798b555577cbde85aa1f3b1b1e7de23d158128a2739a1dbc4d26a076dd518ca535a56af3b04870a50a60bee49edfd0fd8dbb0fbdb7eeb80b6d207d4cf390d67719e9095f89b59dff42904ddd1a36e8f4ea644b24d7cc1f5d7c77e7198c2ad200b82d33406cb4b823f46e16ffe2df30473e8d6a9112b68b5811d3e4224170f798ab181430d9d45b0c90ac2082fb350c5d1d1badd16d97dcf4eb8cd7697c4ccfe1e20e799fc628d0aab2903ca8b69074d8b64ab5bdffdbddaa47a955adb06a3726d174602e0892311c7005407b613f00660da1c1c296e981c7200da0f17578d6b14430d6ec6f09c87e7108b871bad41c761f8383a5361909d54ac896b9669255f763a5593e3cfa59" + }, + { /* i=2814 cDividendBits=3259 cDivisorBits=620 */ + "06f756585ce88280dd037701858f9f2db352785c8fa932ec57ee9a2f25a0902fcb938c5f7c707c1e14b753fc9a554b389e15a7bb4129dde30fa0ba372c13af107dd80294df13003d083a1853b9abe2e187149a7a7b168b6a2509dda423b7d20f007ef92e3a84abfcb3a0102ebadd46768c2741ce7bd2d2b45fa2fbd7b054e7f34c14dcf2682b035c843dfb7d0e55b7b4c1180e022d7f13e84181db4bca9f30eb0e8cbb923215638ca637e9b7d2bb60c1cb6b9fb8074c0251f974771c7b614f2393c70a2bad966b0944bfaaa4e511bf04dadc778aeae48d77f62beb798435c8351841f03420c64d36dadd370706e253ca20bdfcd448dabfa52058c8bc7f998fd6798b03b4b89f57a9fad0f0137aa3afaa4beebf7fd718cce7c4cf7dd8b344f9bce8600a07f9bea7d5934be360d99ca3270c23225ddbff3f3858d5264a6a698e45a84a5c1afeb0d6dd1e8eb0fda0c1bcc82eb16d652835622ecacfed1d25159de090154167f55cee9cd06caf35034f39cb9a528531b2ddc842003900d00580c2194a7e085b454df9bd1c3704fac890ed2e94e45a32e7b8440c", + "07318a79494a8a5d3114f4a677dc54f5ead803d0ec57a02f1885bfb3c912433e50e26ef01a43c55e10ee4ccb8c349a12f710b6fccb309d38414066043e7d23d71543218e6a769954307e63df59be", + "f7e8ac5b3a084d609292e4d78472f9769b759daed31e0ef4ae56a876a16019eba46fa7abb0516b4c82e45e089d7c1310fcdba182434fec544f3e0c8c78af9dbf75affedf350410e71a7d9ff02d80265181f81dbca6ab46ab2cc895eb11e716d1b640624d93c929fb287a742ec8331483e17c5c3644da8afb871b2548defae3a1a6ddb4172648e4f53901e5655c5cca68f86b5f2d29fdff668552924eba874297c8dca5fe28090c37562642f2e4cae3a8964a99ad9b6c6bce61db7209bdfd6a17726d63ef45e1f52690b0846426c8eff6295782b356424603db1658eb4f1fddf5a5e1aa61e7a60f1545cdb9342fd740560f69c20f819aba90a491bae6df0d28378a2ad2554fe1f13d509a2559a77171db7ff6fa28f0c263e2fe285b774e14f7669ce1481fa725dae7647e94c9d668d4ae427830f5068a7a755ecf58d6f32d429bb118fd5849676de606d2", + "0344ed83072c79d7085eee7ce8ae87ea3a31db7f4d2ba4d1b5fe2dd35f83795ae86fa9fa59c3957ab631f4a08735821b49a96199699293e07174d3536963a3c08ade6287d066f3d97edb37b23230" + }, + { /* i=2815 cDividendBits=1995 cDivisorBits=239 */ + "0580920bde2cb9496547cf31e97e0d34d1c4a34337b7c26c56ee77d2043890449d69fce5fc9486afe4563f2d477e4c7bb49d72693979ba64378afc47f164d5e6a8005ba0337cd53b93055df071ea28b0e0210b3780b5dd884db7ff47eada5b1aca6049b4acde29f02454d07e024170cea5ff9921e4accb1fe2d93fdc47918bb581e64f7f3865d6689d6ea9cfb8c1b2f14afb29539672cf341b6e458385ce5c9b6ec18637428c26a96e5f2af5c6cfdfd504d6f1b0398eae467825295a547ca644ed062b201d4da2554a1a692873bb24eb89e57fc22083c0d78ce52f4c85cd0993a52914e70f985ecfc487424ede1b64029a9d3800975b18b3c0ed", + "32b4e420601c11dec0825b6f9e89cccab4523db849fd6ed7c914b233a1eb", + "1bc761ccdf948db61937ecb194e9f645f023065a1c2deb92380c7fb9aa0c7c819ccab2d68941aa4146ce07a6153bb23191e75e278d55c08cfb996dd2f44cd6a26d3abfc334405ebf1756348a56420be4981630c5b2f00b1e23869191f60be6d24f519301d7694f08480f84517d783503719d661ebfe89720ea019a77ed960ee37c3d8f82a93f12151ff76f333cc7bdbae77ff3a1863db36de8721021ff42f6bc0899ab3ec5acaca30c098d81011a911e074ab5c001ec6fb4a1dbe9770aa722ad81b9750485fc4deacc8588e744e3df08398ec637fba3c127d8a2d35d", + "22d0e8c59c810a564fe3fa8713f1f4f239472b21c25acedb50de0ec73d8e" + }, + { /* i=2816 cDividendBits=2523 cDivisorBits=1856 */ + "0538e8f4985c21c65c8712ea457cd2412324384ab011df86a6786781ee0dee6662920ee929c1895edf27d824eabed5f149c10037f33b2fc597acb9805ac888199e2735abc000835b65f023991bb1e28341fe9b26aca57b509ef8062ef2ee25fa693886dddb124eb49ebf87d8495627f854958e0f2142fdd62fc29571b47f9ea2287e8c005295e77ef3b9f5972ae6b4b1a931375cdf92105ffa291c41228f3cf5e24d1d800bfbbee4ad1653d9fae6d523a0d2d4512070d5695dc9bf3f40d8bafed4abdbfb47c5def3673b3aa3dd1e0cb8b13fc96e91ebae768b85c0785a64fb094aee79d14486b87cea333c28b3bb4a7e35d13e328867ea55f6e1c56c68b8f0eea82f166f8c39cd1b0b4b33c36fe87b21991e49d899f2853ba55a583a01f18b731471ac0ed2679d67b39f6f9ee9dbf3b24eb659a3427bbcf590722893", + "1cbfce81357cff4518caa2e700ed607227f51347b8e298d64f0502dd8fef7598dfe6d8e4072dfd2540ce39ceb61a7a96a8e88e064ae33904dd8935d235408c2d5982d8bba201bd3669d3c5d1169f4347f0d1f4dc2e45e338d01af5fb74fdb3f93899fa021f4854e13ae136483113e56082110ed9055274c39f38244c7cc8024c5243722d06dbb544e2ed082e85bbb5939d1cfc16ed0b0d78a790a6020a17fa623c5e33bbb81d089bc3f4ec2c42ccfdb5e47593e3aec821b8163f1d0aba43d289c31ebff634dbe3026222e726a6b41856dc74e8581e3ae70482f307e16ef1db9151a1ce215217d07e", + "2e809fccc440b391e844c85478bbaa047243c0f857b804be87dbc9031b4e8df56abd9d1e5b53c864cb53030a3c17379417e3e279e5fb660219ed2091d7be05789ceb375bcdcbcb38a5a01fe5df836aaaad9fb57f", + "151cbc82dc114546920fbc1a68e2cf1f2cd8150dc79eb85e5bdc40690b2f36792fdfbec87af5a018a43f04ef8ca09ce839299842fbf38a2980a60df9654ec3fcc6f0fe38995c2e5858de858b426689c24af0b045a2e9db148469a31956f4a4f196676b2e62bfd86d1abf54dcf2eda4861885ad2a89761ff83b389df83b3703fa72c3b69e292e47c5aa18d9cf593e54c27708a62d88c69f99ea33110ae68a620fe166bd605c27029a212eb7b7dfa83faa53483ae561658215ff81e36a56a7e7c51a247ce0d2343b5c28d0d0a477c307973148d80d56cedcfb20d9009724677066feae37075bf6a411" + }, + { /* i=2817 cDividendBits=1419 cDivisorBits=1327 */ + "0311892160393377880845c62ac05e07975e545fd2ca290defccce2b6268e5b0eb194e607b4dfc1bc3be759c2b6b29c36e78550f9cbde5852466fcb5eae4ce77d47a3e12703e284ce872fc9f73135ab5f531b748795ae00028241a3723998a2e81898b68f0155b9635bee78f407fccfee6415d3dfc3068685ebb0c952419ccf21975a4d85610f68adc6c6c85d28dafceb0ff483925abd3d81cdf6509460e2445800bd3bc3ba6b519f2732ee66252bbec4dbe", + "1b58c9f95f435b214942cddb3f2ea0aff7e4e8d2f43cd18952ead9e9bc1e652dcea738c567ea097adb11c27e1234a5622fce88a9a9584c8ee3183962dad1bcf3ee42f05bc48285f6b67f440b598cceae8c76d185603db2f57d0814bf7c943b349d83d0ba360a7243d32f8966603bad5e31dbb2913627b634f27d788f9b2d4f735ccb8bed2a1056e73ea80e59522a1815a185237748333d3735e052106a7154cc12a60ffc2b7a", + "1cb9949d611f04ffeaca251d", + "0a0478eaa351121b8a6037e1625dfe8e5fb9cac0510373f10db7c70ce726796b87ef956d636d39bb4cabe76aaf477dbeb32ce23331f8809b77ae0185b85e70c3d934799587143b3cf089a04f7a92494902553985b589dcb3ad94dd65e5bc64136e8d1137784af5a634eb2d7b91cd9445553a452a24e849bd150d465cd62375abad699217813cd0087999285f4e561d55d71d95106b7ee71efc11453d36ca38cdf1f5a7cebeec" + }, + { /* i=2818 cDividendBits=3825 cDivisorBits=1082 */ + "018478aad41f3d8c539dfd44aed6b9fb128e7de7af02ff9466435fc48b8284973f43fd18a8f0493e09e4df04e57e99903175f4d27b2d14e166ec213c03ab769242f443b861d172a79bcbafb72234d497297bb4fd516d0ce90c6e09833873b9e9f0adb22af80a18dcb9c7adac7d7534b69f5070483980da4be3f80f36963d0ead86bd67c0f480c9d8ecc59904646836d60c865406149698f7314c3f578800a65e21c3a526a2b744015c89117ed8a8ef3dd87a78a103d40370a0090a4ed420a213c329c945d561971067522f5a151fcdf8bb4ab66e617c0ec50d4207407a91e92aa0fe9a8d249a5bbf39281da9897ab1ae67b6587d6754ce0ca22f132a252cb7a521e345ec1215f1b33621701ca714e9deada382692e073a3d912e7d55b82aac0c978dbca45454687f8264a00ce17ca74d6d8a14abe068b0258f0bd2b87b7ec3002362ac9c56cbb56667ec76931abf808cd8a156ec110587784957c53ba588d4d0dcef1c5fd0ce51400f1bf10b5aa67dc3e9321e186bf5a345f7ad0f9def843d1ba6ee56a553431fe0d36a9c8bc13cdb91ff3e6fa43bee2d3fc0437318019b0c708e5fec65c6bbf979ec326537f57ad09a84cc9856cb75d433abdeb163fbe92c9733b6a76bf53c4fca83e644b2712c4c43a48f9bc37b3f406af1e81ea112c7b1", + "74e66ea08ffa025d27623c52b75e8063ea13d2b626f507e14938bdae9eb60c9e288c7e715064afcf22edbee10d1f575eed61f805c9acb7c4133dab14daf7db04663022197a4618bfa459b2fe92436d56ee13d4386a16dc04595c83c1f347e31e07787e282772423af13eba62a4681f8cc4b326f797f4a660ab1dfabf0c24b04ea441743af02082", + "0352b6fd58f65e097f214c62e01afeef5bb7caa9bba508ea1eba6b8b85acb503b2e484c3b0664187e894a98e2565294640f88ff47f09314366856408888587fdf625e3bdf4e21c72d742d4ab09fd9950db2e80a1137488c4962691296d2629a44c6689b0b17d24bf4517a35afeecb30e73b5ec4bb68213db159cbd1db9d6f568da9b51580fc5a29692f3cca8cda6a9aa90cf2c937e06e765705adec4aae6c57932822b121e437681617536fb0790e94f5dd55cc620a28a2c07243bf3a09a71e2b952f224edd889b6ae4b43fbdec92158f6a1ac0042c47efa07362047c726c4653bcf5f6093d248a596a7b54290f067d988de6593e119a49622ce6b0f722ca35e570c9ea89a02190725b9297868d92dd6943bd2c12bcb8ef75bcbf00fcba4b1d354733c5743fab833d6182fae2b3a7ec64dcad6fbb5718a94d0702ef9832ea80d39d4e9ce9402d0a808759c5e78d66fdf0fba95afa347669f", + "24951099181c2882dc43333b513538747a3117196f204b18610cacea9b8fdff26106b47da4d53a4157de674c5aeab43567d83ba1b2fcc4bee11058d5cb3a225214f3e85ffac23498a9719ac59c29a0ebabd8f5a3d225b5cf3df3d63de0bc21ed07d522684f840244c18db2e34865cdd831f896ba2fcffc9c39760b8920d8cfae8fd1488eeccaf3" + }, + { /* i=2819 cDividendBits=778 cDivisorBits=596 */ + "0300aa38dc7496d1f8bbf2a6a27c76f77010851fd10640c3c2960cbe03c2bd7a6c48e468702612cad5725df47fbf0e38a3058eae374b5c11356cf821978877cf4ad18130c85ecd8e525a70ce215bb8b1f30f76b341980060673339022da48eefb9b1", + "037d1f0c221bc62f37d5a1d64b9bee9c9570297f26b329bf74afd43cd0b1f652b1f149d3839c04184a407fc3b154faed6299e93ee492526ada27524c7d5b9f83236ff62f7a2b90e3e3169e", + "dc5390db33f5dc7b4946116cae909ea8f92a5250f5c95d", + "02cdcd1a26348832b56078c885898073007688ceb307f25f36b61836b833054346ce33c0778cf35967f71073a23cb8670b7ea9911000c72330b38c1667c1b8541f93eb24695d127378744b" + }, + { /* i=2820 cDividendBits=605 cDivisorBits=469 */ + "1d27026783cbb385c1a355c886257d2375d6f4dbba41b12756679b3436f495518bb12df7b76a9bfe71a05d7e1675a2a9b173815633de02edb6b94daa65268ce4f78144192a5be68fb877a84b", + "0b45e77aa45392b3ff04a4dac3ebbb085228483da5c4c44e0afe19a1f9667825d6f8d5884e93abee95ad43f6127f57cd560b9fbaf87e5cf233d6ea", + "0296057bbba3136425e02808c17fea608bc9", + "0649341f79089a82c1bb1d9a636bb81b913d261578baa86fe626830c0510cc3a99fd14b49769b5637fb8f164cf27565bb6dbd19457fa1aec52dc91" + }, + { /* i=2821 cDividendBits=304 cDivisorBits=168 */ + "7c6d274ebe5924120cc73e20ddde45cad0992cdcba166ee2a6c90ff94f8720fdfcdc29ad594f", + "a4957d119f62f435139fbbcd0515c79a1f528da962", + "c189955977c0e5fb658cf36ea75f8f9fd6", + "1f5bf392b782a0002599c8c9642310687c2f4fe363" + }, + { /* i=2822 cDividendBits=518 cDivisorBits=345 */ + "3c1d4444b58d209c648d9a7daa0131f5db97e3fc8790055b7550e0d0baf8d56adfbbb1ab8b5054843884a3a7cdca6f07a14dc8c8a1b8df31009305b29044d74548", + "b4fbd6b3b397b4acba0ae16e11099a1358bf8ccfd41fd831529f8b3c360086997988f823fc7014511c82d6", + "5507fd53db7cc1e1694742c0ab0c34d5c43214af47af", + "a199be2f00ccdc2af031c28a43654b87914ddeb129123253068be8c6d7a9db41a39dacc25a5fabc1c67afe" + }, + { /* i=2823 cDividendBits=3849 cDivisorBits=1527 */ + "01b8251a9f76d64c65355eb84aa4d6f4171d3a835d1bea80a80ca1a9fe4fb5fdc178d725d10299a2eaf96663ad3383297a74a45d015ffa7e53722a911582371c09ff1c19319147b096a9e5669619015357e8dcc6f06886752884c55c65ddd009b4b5036083df1ecf28a9cf076b1a5ed334cdf2d38865497c31aa8a3e68c92fb628d8b1e2d50a8d1ab76412e59414d1da48dd6a702ad756a0a505397d237bf6597256cd5045eee88941fa9e32e35bacef1167527e50952b1270b9adc9772ed2588cab615ec8d88e63ed857984c533c983c1d0b8550275377fa88736ba4c465f6a1936e5135614a7a31477fad4c5855d5032eadc22bc8b07ffd3a2538297e355649231eeb8dc4dd6b646007b001f02aafbc692e68a31b14c6f5e1f2a91134efd879dd7c1b67460db7566ab72dc5014630edbdb8efc90099c1258671c84252a943fa007ff1880ac8e13583ca5eddc7311c0f914acd6d6e82a2c875d1f7ff8cafd2643f30939d5d71f0f6e771df6ec6c995d9623a7840164b67b9e0795586b7f5a8128249e8a4529a03dda13fcaaff005bde939d70c5b3b148f17acec1ae5a6f3ae2a23851c17a3e46110ac235a55b012f07c6ff8d7312dee27efd7801571e12de6dc8722e943552833020f4fe27d91edb8b3390287627dd9da2e321fdfc57f4c5c72303", + "354ac94ed0afdc73c2e339675a2e2285177717582bf4e1b1d38cf2f06eff2631e004bd1566c4b93b2fbe13bb9a0b217b7c668debbda5c44e76a37fb9390d11c6eb228174ff23bef377848af1cb66fac07ec67fcff4920a082e99ad90ac748eb8d1563f32fe6ac4a3800266c038ba8a87ac8c8be6c2560f1b88483dcc2880f6281133db7f726de08879ce977cc68b4e0e7f38deab26cea154b3da48940e02c2563849b39381ce7776aa9fea0f7efa47203e6f86488d73324380ee4922175dec", + "084254384dddae194a99542d23c43cc508444f2633e4f78b9ea0ef113b5f6e079e038ee2e2c9dcb27c3e574156cb5b46e9725ee88cd2595dfb93a001f877f5d3e077c1c85366169429c46045833f3ebeac79e254cc798d73c15e1aafcccb54b9a7a08e7cc899fc840b51e8a780fc511ef191ffdcb85a0d84cda2f685fd5810da1334c7ca929b0a1cc5e05eed65c545379997e68c72d46bb4afadd18f68ecad4bf1ab7cc1dd9837b19dc87677fb92e1c5610ffa145b5c3326fe6f94b434522d5bb144c5cfa414ec97afeeda62c53aa3d97f927369a4b6cd5e58e9059db567e545a9fc298f74c9cfbef9b996348d5ac3d1740dc11da00cdf0f93ed47d6c3f9decd3d9c7eddb2d970c93bab0309e9c954eaa065eee511ee362ddf3bdcfc42cddefacd76c2", + "34043928fe5c5a4c480a13ae00349aeffc79dfcef7462cae56b64a4c717507edbf6938f0fdceb16addbe09210138f7692263170b99263bce994bde1b1d318a0f6dacc0312a808b9d5d7e72546904acddc154f37644842595c3364388eacfc9381f20b2c35674cc48710af52aa5a6a176937422095e7d40364d7dce350c3dbfb9f24ceae378d2354d83f1114c34f30662ccd2ddae2312cd3562369848e46f7ef6f4d10a46c16ed42446bc22ffe7e06fb9b46418e9d55bf85f4581bb7ccb2e2b" + }, + { /* i=2824 cDividendBits=3018 cDivisorBits=2329 */ + "01002b609378be9fe08afaa1b749b0ece51220f9a2969f42fc4780cc36cb72a90c3c77499013125b82d403fc72d9c199a054770af494411ebdfeca94c663eb779f2b3b7b925ca211092200f1b38bb8f19f161e4a83ce4eda19b25f9296397e52e067fa4983411b8964ebbba798596496b18f36e6caf27703def46a74851ee495ead603cad0f793d52464b15b0ac632eb4c6189d258baf18fbbe0ad35ab110423abdacfd3d44cebd48e079a2fe35037b8e0c0433c9fba3707cf281a7945dd1a39871883e2d6f99ecef8d43dc05e4280f473017901f2324711f33bb59289632750692e80cdba0bf4560bff88b1556c0c7bc6d2aaa0cd25e3545bdb5454d819fc16854943da25dff02e1633ca74c1db0c9c362f2389585e505d85c77f03ff41221190116f1e4c2bed3354168fd50fc1a08f4fd50873f8a606f7cde59c64812117b6f6a38eed3dfa64e7b18c812cd6992081f8682f31bf5a6e5c0224489e33a5d74534c09c5fd30dee45e6e9ed7b8326441996d57693815a57fe18c9", + "015566ce989f3122b038e5d6d1d8f09fbb2b89b73f7229f12dc06d31c61640c32b3ec15024d56c240b9cce38532464655177e40e371a3181a9a5295b8e417e936afe6f8e4816080209c1851f76d38d5529fbf90b92e8dd39d527a9bef31bdf80668b72962e9a526ed1c1e575f5e28e7c8dab71aae58b3826a33b5dd1217784e5e4663ea35109d2766f1cb23c2886dcf6c59fe7364fc9cc17a4de06c35de032612fbc32e5f93196b6ba0b5b50bca8919839a06b4d088bee4c8e429c53eabbe5f288dece989b0a0bfa60ba0fc4d7f02dacab4b4c333560cc430822945f932f911d3a752b62d235e9f3859c37ea032377a409721e52711bd2521489852ad5c955c50340b004ddc3fb6ed3a158a4e50a0768c4999bcf37a5939087107e2ab8d74ebc1867fccb", + "c016b30f458d6489b1382f5798c2048164d550c6833ff4330d6c9b12530d44d2bb191ceecb71f897cced6ac6bd602f551f988078df62b3902e6d534cf0873bc7d00c1a006caca07a8961ecdf719995721d958a5130d8", + "5324b3e5276897a2c7b8a63b1db7ac06a0147994782b0aeebfc8bec9dd386e3ebf8fe680dd9731e512adcf15af42c1380278bd574ce5ed7e4c0e1e7d2fc397d7518fd9a5fc0e1161625a074c7888be86968320692f97b19e6d98eb02ab507e6e15b7fb33e9e6af2886aaccc9afbf20a172fc00f1d3a469b935bead93a22eac97c42951a926695aa787ad75ae8a006d9753030174aa98c5a5b2e1d3940d73a52b548a58f18867718d30c5deef8804c52f47726a347fe0e28ae058a41e6611152f7d63d095d25e174ce8d8f4e6f2bcf36ff4eca275bc6792af71be0964bf522cef826e630bb701a7b8f47ffcc113993521b9f85e511be43a61f39cdd70448c443086ee79f1161ab78aa61d43d517d635c08b59f90fdcc067ea9a5c8e1deae5bed69fbd81" + }, + { /* i=2825 cDividendBits=1711 cDivisorBits=403 */ + "4ea32aca4e0076559f1360969f814638f2355c7a9778b1d0237c1e7e87834ef1f4d527a30a7f3be85dcddc76ae5cb82725f4009bb1ce0d797280bcddf33b6585d57d9a75f5ec8a4558539ef594f5400c5739f0a959ac888fb81875a3158e3b42ef44c5d40905d027e462f3e6d1456061ccc54b63256085ad953b56f611cb9e7c5d19b199341ce1f5b068603d4e0780d3ba5d24e2809f737ddada988b790e45471b7599f9972739f35814a29ae308ef472463c5d2034eed71f71100e9bf0f8d1b73b8b58c4d8bfcc07b964deb7215df06b4fbaf2c695c", + "73a92c99436e0ae24e6a93720d58e475365dd4c64446510041bdba5fae87d832d17bd8e224da8ece5dc2d61c94aa218cd066", + "ae0dae9aad51b6f11e3c0732a23c8017899ecc1a6d7e46199ea9d46d40707a6446288fb492b510daee7f620af726f8bc0132aabf22f32528d638ad01b80d19f4f04b895a643da896920616f8303db93d6fc32c36972e4eaad8768e218dabef34129d48729bb13ec6849a24d23c1570fc7eb4d6d8cac18d236b1f27fd5ecc7c443c4df6e96d2b9a8c0d27623a38016f8441585a7496b42738681b0bfc69d76f99bf100445", + "468f93e4a91d68a8f1fcedad59f970a7744bdda4c44f116bf9fa14e7dcc8bebd91c44435a897e065592686270b5b5096a5de" + }, + { /* i=2826 cDividendBits=1331 cDivisorBits=168 */ + "0651094afc8870c4a6d3fe741b61a2e63a4f03367827394e0d53d7942a003dc8aa6e094bf147d122c8e45b29c126438127bca0f836955cdde716135321465844ce72d4613dc879b593d522e6cb5c9cbd7c37700b296897821b4d979f6b74e5f12830bb3bd8b6c30bd9f6176362fc2962190bd21614bf8bcc46bf05f456339a9e79c3c1c954e19396e7cf25bd16eba1e3eeb4b0998fb5d6a1415521e4f50fd3dbc610005b34b0f1", + "02b3681c8277a2fb829c491b0203bade1f89086a63", + "0256b92a4428dccdeb8f33fe76d1e0f1601a658870bbb9050aae1b47a6f5564596d484abd70fdba001aa6ed9221cdec1fc9aa44e832490b86c0bfd6e6fdd77ffb8e7c392775a60ab5f1c7c0e3febc1d4a102c2be10dff29c1d8d01ac7cfe31cf92cac8e587614f10be0fdaa9c7d881e7a19ca4d5c7ac5c4d64a3fde995c399fa3f575da9290ed097fdc70a6bf134ae6f1e3b56", + "01ae99b051b55de8d04b5c0c8e742a0c6bfd4222af" + }, + { /* i=2827 cDividendBits=2374 cDivisorBits=75 */ + "0afd2b9aac23ec2da404a08feb724ede09c4dba85ad6853eaf8afe142f2f18e7af8dc5b7c6fa395acb23fc49ea43c8f7db1083ab4e50d8266f8b7dd28943b385f16b08c5d92efd9edbe7287ea884f8551cc2f74275c60b01109b953b43341448104f16eb072c64348cd74ffbb37bf37549a22246e2ba6016136ed140beae423f3c26fda8f7ee3e6b1898c44e80af92346c1d09f326d6fa3140d48da1f3284be2d304ebfadf6e0fd0fc3ebc7a1b56eccb3095c7e364c9d8ff9c6ccd2c224ff692fc30997e32e2e66fc22d5d7542f80a0c27d59401e39443e19234ef3eeaa54938194d2ce4eb3512d4e8db584231ee99e8be653dddf86822cc4f0c7852285bac7fbe1f66eec8603af6d6f82def62fe54d47c4256cfdfc5f150c77e7ee59375c06866d3a747fc07b4787c", + "0783e4042e41ab7496ff", + "017654b17928de8e9068505effedbbc00606f9918fa2a8e5037070c99f7815e671cc013daa30d3f438efd079dd11daaae1845c1b0dd30007b57beb8e1ea1ae25b404522ecd76e103950282e8fdbd01cbfe82cc6b323e4aa00c969fccccb790adf6913bcbb74bc620d8ec34c5ea96fae66f51a845d74a9a4d7752f945db32211d5fd02c77e3f642f75101e352959a06ba98965cc6e96ffea752544c47b56a7d1726200cdb9c6a70c1c45514ff4997e4a5029c779c6f1e24d962dd2014a07691c6c6495a4f52b134aa9431cd3628febc7cfa55835c540da9312f4cd18eaa910584cca3c370abe8f676ca7ea04ee8bb4074c469fa9f85e4514af16032a68b54f60fe680dee43b243dee79bee024af57134be2952d1014f0dcbd81d9c3fa72f91612", + "f5772200f78880f08e" + }, + { /* i=2828 cDividendBits=2262 cDivisorBits=839 */ + "33b375349be9b32d7e24d4fc3d37dc99da796127385c0cceaa066c4aa6c3acb4ed0d4df0c35a2f131886aa5b0c39d98e788b8d2d1d85a3279a38dec62d3b9e80718e7ecb498dc633d5cbf3bc717a7a07d8f84d3cd67a6499ef9059ce56684b011193d64823abcaf0a4d30eb2a6aaf01f5bf56beb44a6813f83e2414fad33a00b9a2eabe129c5516381285ae4ca848ce882982be598b391dbad7dea04b4398b0a337524b4edf73e1ef732c9b13236f9ae44977f864dbf5c15494295787dcdfb791507f0e3ce03ef903c7fd938a0568ff385c7e8cbb3832699e9fbe766eb865f86cf949a60b5a25e9675d61bc8f014e385cb531c9a193d2944dfa572606690fe330b4209cd93f9e006a72dd995e0413266cfbeff93e69282b0da6800", + "7a1fe1108f3e47511db3233f18d38bf535b482f1947f6235c1ae2a2381f57529d3a6e4428b2adc86e02bacbc3ad746570340ae160bdfa9a7587cc26d59d3967916f3ffb02263c3fc35fbff8567dfe775a3478cc61fc799128d40b4f2ece2b5a7d0f2ef1df2984c65bb", + "6c6071d4097d8f34ad9e811b47c7aacc3695e4b7f806e724724eb10fb445e424cfa05fbe7bccc281c924b2798d9a52f9ce82256c8dfb0c36f2ccfa3353ac43d61004233cd5b5c2ba86df7caf4f0d0142c0b9a01dd8cdbed4f61b4bca8c943556ec06df2549cef5472fe84abe3aeecec8e6734b1110710e2df44b580f7712b685e7945f3301bf63ec65e254cbd584372e58002e70a6b1a348829fc6ac15fe3ec5df9bef81008c9563aaa45cbc337f23a764ca", + "3c58a6eee5dca5806f424052f7326146b0b55c0e3ccb6a6d4ceee4ce4b53cbb531ab22165b639734e81db50a58203635f42043a6f17f55b8c90dd47bc6ed0f60b822444ee0aeefc54af7b9708f03242966460302d2800b9e05aad5d049b41bb3ff17f3a914bed81672" + }, + { /* i=2829 cDividendBits=716 cDivisorBits=688 */ + "06d31618b6fccb921906261672688c6e22e8accaf0b9c0b8532a1b08b3bbf2a09aec2946aa497fe6b81e21ff66816b35392ee6200ebf28d788ac990559910b0244cfcf369bd35726f3d6df7075a17c4f54255f3d4ee96ccac9d7", + "bac09aa38da8a9fb0b24528ca15ae0d7c823d5bfdb86c645ec83fcc8e43717c14a71ee8246e661490c4bb61a17ad4d5f34a0461719b02694d4351c201e94b4d988b46588c06e20cb3c03a56ef554b8e9408b8567432e", + "095ae797", + "a65d4500c3822a4922620a075385b8cea98ba31d0fdc45152a226700226b8ea684933cab3f54d9cbe4860bce54d337abf0f0bfc0a32d13173d7e7dd4d1a0718eb0f587fb66baea4fb5918e33f70c3baccf935317a7b5" + }, + { /* i=2830 cDividendBits=3884 cDivisorBits=3138 */ + "026e1b259e02b850d5327d1e713fe0a365d319424c0a70d22323935dd318c191ca1feceafe33b6bbfc362c11e3964ea8d5f6d207301c64c4d4362c729642e4c2b39e710fd84e5a17d22f18a62380e91b0255a6f413a0e5ecd8713e3c99b43ab75c0e8a01c7017292a8557ea6662b4a123411476a5295a7b0530763e1b97516c9c03803d4de0cb16491d9adfdbf08bdf5b2cef0b62321a87664c61347b39b0d9ca9419059f59879f8d44b4c824cf788e336b3191327501923f3751d3edb5b097379a2a427d3805f7dd7f75a3d21180bdcdec4ee423506bc9c1a4e9318458fb88e40e2caa9d33b4c2d366cede0a5163af6352279a68aebf92321f2da3360d98843e89762c338e92bfcc8de2e355a819c33fbbb082f90dfdeebfc9d3a8d3f1c65ae339ed0a213f58baa4f53f3f18499cb307e74b7d3d09508098cac0f1a037d6391b25bfeaa83eaf39ea84568e42d1f27d1b606e00f5a199794eb0ad9d1130d37e4d776073a9857ba9c1143a689491af5ae2b2b1b41e628ac93ea3416dc2c1c15fe2afc8c72721a1693b79915964e913f846079060bc7d59471ed938749f39fed319109a70d04ecb22b5fc291dd9ac483680c0fd98fab8bdb58c0c38b5317d3adc3d12aa2007a6b8a2fb1d8e52cdcf6a615a1064ec926b0bf96771e181aa22224f74be3dc64cf0b", + "037d0f82caba8c3257c855a5447b055dfddc9be70e1efee31e9c619335ae32775a9d50bf713ab202dbe63d8c1a7e8c1089199e2ccb0936f645bb7ddee22e47a35962dfa446b1ca03bf39d828108eca3fd8f3276e496ab0cf31fef0f7b43df3436863d44059cd33f9112e7db4764905558575d12d3cff60edd9235677c49bef45b80fc4a3e28a70db00062c99b31b4d27fc8d7a64f62128ab4b03472248b78d65614dc35e70d21fd0a5aa3245ef0b3cce5d5cb98e15d17f246cca8856990efe73d3a9620df91a899658b61967bb2ae8326e2f0887cdb8799e40393beb269cb9b80aaad9e118a9559e39832b9640b62c5624f5c51d44df4f0cd2b96fd1c5a4cd8393757813c24de0056db5f159c2e61182a3e499c36c91fc7ab3d24ca938bb61bb4985822d397a999a0efc6ae0561b532770a28caa40fad622a18c4065eebab9f9ec0f3280c5e038a6bb87c590ae823e2f327cc522b84a3333c714ae827168863d0d7b0b873c84b7e025af9d0cccef2dc5240fc447c082b5b35ee53d2461a2341ed3cf7f0a39193738d3", + "b254615813aa2fb67f73424c18050a5212ae4dbfb49d0e2d75070aaf17bf85522185dac0ba588262b018375ab47e677a10e3f2dab06befff4c4db9d4e4b8b55eae3f7777447bbcb552b160eb43716a7f51ebbcfec24cfe26f72afaa022", + "02ab06540b7e9babaa428f4229c37da4bd444530c0d0780ae38fc60e9e904edc379f2f904eb8192b9c0032ecfa8c00c4a58148e304b3ddbd7208213746ab0d8dc26877a094674689d3cab9969e0b07d983d60071958a34c0e88a317494bbc067b781759866e921ac061c18febc48d5d2de8d447b7e299e294759d93219b7693dde3d1f1f94949f5d854c67a3c71750155149ace24fda8280925be92a88429627cfbf577f2a2ea634c2fd85f66d539392aa19d06c527870e27efd5a7de08b631f3355bd620f51d9841a9e41489b45df77eeb7ab2c75e1b47c69d80d65ee3d33b17ca9e227643e8ea1431e427aefabdebcc7f92dc4003f0ad705116f84621d936568566da1f8e28c0aec71bfb3358eaa36b4e281de3b5daae25b6d9cb5de0e8e7b54a1cf669c3db7cbadeb5dd228aa50e62db10d329e6ef06659f058e00fb234534895ddb3b074e592a7b6f491a5de3e8490875dcf1d586fe20378a3c9a6ff695692e67db33086827a4f9918b819f61169585e2d3b9900f5a92d95a09ecda59d842f49bd6bb6e37d6305" + }, + { /* i=2831 cDividendBits=3265 cDivisorBits=2235 */ + "019108fa8f52df023e36ce253ffecf09cc510998549175810b8339053f57b9975482477e068abee2ff399d0a92e01ed29498c8defb31f1108c49ca5e3f9f534ddb73b54fa997504c0b704e29a7e21fcf2b2f3d95ae5a4222e9cbbaec96a35c9571a253db685eb20932f15cae23192152eb4e61d8f1dceba6b48abfb2a1d95b24f768ee592766029fb98f988d05188c442fb0b4f0f43df36a07a90403ffeca48b7d126fe7e305ccc9c1744845bb6bb18d3e9c0f690fc1c6eeda9a6cc6404e86eac6e888214c13ad37c0766afd43ab0fc64ea10bb54029cef36b91b60fa6630902d470cb110398ec073f58c40b634d472e87c0e6158cd20c9b581e6619c3f6f18d5ed87801b0e9d1b24be21d6307ea099893eba13d1675cb4c8f4858513b73d20c977233d6b0e1016ea3fa07ece1ee00dfc81144382deaa3e064165a37d4d573d59e59879de355c72c8d6874596c20883b2ac5f8f1f02341c9570972cf434a280afe5d7b8f4f6d8a06d34aba266d25e0a4691f97eb60e9f9e21b9a30a378152dbebc358d87f5f953ea5881c53a00f439523c8694a68a29e21976", + "051795ab602e743f52c69ea0c1aee82f45aedf3ae0a809569515e756714bbc0dcf1fdec7e55aee152a401af85d7008f7cec6ce981e9e78fe2558009330ddcb6a628a714bf4c65683ccffbd26a33c2496cf22e48c00f68dd6a2ff77877e21c4f5e7312ad3f469017da373e1749d0e9b1fcd5aa6cf99491702e6e2fffffc0d3334339f2acb45e18df8637d6b5f2453317c26eafe43def5955e33d1e849095646ea7a6ae512e558a6c4b35c7d45a653a3b6f52501603de097e692e908642c7bc47e94f2376c1ed6ad749c423a0f0f5b45e44bd21ed11dc96f982c535559d8c3c81c29017d19fa738d3acc8eda8085e742b93731a5bb3b51a917a8c0e892421fd575a0382216f39766323e9d26007cb0bde4e33a30e177727dbb", + "4ec1827f37f4682fcaebffba776d453ed8a547f3f6c8fb04668bbf93355e02a29375b882a2cb57e111b09baed58162c2e650582fb8c353b511d1032e5b3715e2b181cc3f1c26e8e03bf443754f1470262e2baba9b405574c4d976b589e451d50f0c9ae0e2b911bbf6cb331d403aa6bbe3360e5fe18983228d24b7af537a2dde8ef", + "01b526a59e922323711601611ca7e5f0e2d268a7df4323972b3cd2ae04ce31c04f0c8d188fb3abc0dcb0c3f1cbcd089a6eeb62bba69c800c82f215a87ad8beaf3878eda0b63bffc525f47de039c2c38a8f5e6ffdfcc6ef64f024955090a9fb965bad7236f01fe9ec01d70acdf7fcbe3aabbaa596958d2f77eb012c7f2a3173b24b7ddbebaf42ccf4f0bb3b1a8d2a4b219b2c02c116d95bfb22cc2e2b17609e41ee799778045f26cf53aa06549d173329c8ab8e9f2d8eba55db906d8a5c9f1609d3c5147f2641854eeebf3dd5da2b2b862cf89b2b0f43158fb4727489ee47678047c5d6ccc292f0f8fb7a10c64aa5fd0e2dac9398da191532f8641b9234ee1ee92211ff1c867b438fbbd8abf346ed84e7d6af2438039e3fe1" + }, + { /* i=2832 cDividendBits=2505 cDivisorBits=1813 */ + "01ee113f2ca16f0cc6e70db2128f30f794730f4180e2893364eea749eb123e4fe4204b900a6ec9c1fd8323556cca8099cd37da7145e27c416ac711ec890f6a62a1a79909ac332391ee111ac13f8bd8ece06150693590079a26a9549b42fcde92855ee2107db0c50e0d6cb3c47f3e4df99aee9c178624681390a04d8d3eb1f9a4c109a39d801b04bc4e472d7f8f4966c56e52d143ec649bc0c0a449fe36ab4e6e66c1e43ad394794c8992765fad7b9d6f2de09b1a8f176274d25ad85ce94b98a145ec96e5bc0974bd99bc2e0f6cfd0412d311a9eeea3f08507dc0c90e7db42b14c3a4ca7ba8e73c78e1a2df61c4b558164b235eefee7378f2dd3e16015382607fbf03b23e90da334b72e279a61fc729f699ed2e154ee7bb284f0e077db1193ea995e0225f243e7c46ee0f231791c2b123b425146154a6f4ab6c19", + "15b0cd4377914fe00a1effbb6f63c8c1c83c21952307a3c05450395472b055a231fe2443227ea092e62f7fa08a6aca7db91bb14f175b2c47f44ae16c29e62a6a01665cf4509786b35ba4933438fe5bbe12536b7d225ca0fd25acfa2b115789256c35fab7399049f3341fa19632c43f44e7bb2bbc307b8153e1d55decabf7a505692d0ec0ab9081b2402c44c3818d1830fcc92d61116a9930622567d8f569a3a151fcd4a84858b1a3995d1b9454288480bc585e10d7755581d53ffdd3eaebb259b800cbe9cb063250f14a610ebd9e28276c6794e9664e38d55fc4fa63f3baacd8083fcb", + "16c7256d5231d01741f28c89b1829bca873e18375cbc079f8015ac14feef0da159d144f7454e5031773991a6240257e81143e17c2dcd56fc12bab907ab052b4191e0e5d8ba9bd75a20bc7b470effde55d01b24c33b089b", + "0d8bc555f1c87486ef6003dfe57f6b50e824cdb1e22c7f83ea2af5192b17b93bffb7fde0d7db69ed6a6ddba737cd0e204f54a6468c66e1e165b35eef3e3283d12b6bf45fa4fe1d0c15c1f9fd3b3817c0d50700f6d3a6328d5700254989c0f9be4f2b1db9862996d3e347e27386f6a856f33241e4d2b83f1c24b6ba1efe4b3d4fc0f4534cb11ff9970766820bd35a1fe999ebaac2bfa26c485bed6d7aadc57bdbf2f40e9d88fa2f374eb18d93b6484bd0076ef5802ad5dc8e583766fe2a908e4094a841a24d10461482910eb1e52c4c122c604a38582e0c363aa709c7c2733590e57430" + }, + { /* i=2833 cDividendBits=3888 cDivisorBits=3522 */ + "be8b11ec27e44f3a61e6c08c5f7e8ac4fbaa4a51efe1949fe860768365c090579865dd644417ea0390905d5005f2273f360f635b4d3f8eb177ef8b8cda1955d86477165deea046dd9684afd6a55a4ad5b692a8469dc5b02b2425be599391240848fd7c3645926453ffa5c2353ab6bb1508816a66ec25d0375af6b24b91f5d3499c6032908888e8b9c2f53f2b2784691bbc7ef897d3f38129827ab1648979e9b68e3db5e75183c936a25ff4fd73cdd8cac3107d6bd7488e1bbf847c0f00abb1f40364cc5d86041292dd278076a1d3246325d7dfe33606b6214515218c87552ea95f489a57f8e531be6a981d73b08e2259511c84ec3c52577f20ec987a0046167c1a39bd30f5ae07a51379ff5f178636c4317299d8a6431e38ec3828f690c06f8d7d56aae6aac15da66f7622c82deb346280e44c21689e7abe90fdb744ff6466776b2e0d5d95179ca5b8e0909795b586a608aa59b4195904ac6d849fa59bbae3f78c03abe5b43fefd1bf1d63e04a65cf6b34581ee1097e53fc3201069e242ae82a47899c33026c82d231374fd4b284c8e638950692e5f4a51d03740756f01fe020bf97ee6a73d31396f464e9de390b15abef7647e577ebd6b4a03f80722777696b643d301cf50c45b9342853d5b48d9789c9c93807cc50ceb33758b01711eec7b235ec8e69db0f", + "0103dc23bc314327f57e9ca5c13931a19dc115c7215027a5c12671f93d317ba9aa9d0627ab2f89c0a0d188b5636e2db75704096b8080ad92b5d8292e8e9442cbe6952995d200223254657050c7623b560cd5561ebf7c2dd78a8b8c6bef6e115db1b69dbb5c64daa69cd251c5acd3810cac16693ac7f95a9f8a0d5755bd37feb98604212f327955bc676039eacaa6dfd488a1bff7dcc35c9da65663b412242fcdc4353af910820d98f4ad054f7d2ed57931fd68a35d8de4d0b5341098d25d17d2f59f806e2bdcfa9a3ebba61d4fb7c136a0ce4c2a053cb38b239d1d04ce5abcfef546ef0a216e53b2937c16195d43b36cd6681b3842b646001a28e065d129da0b015b65b1402e7edae763a967e8a146d6251efcd978c058631a7a3cdb85a4e351ec68c86730c2133df19859453d1997854389b38d983141baf049b7263e8611ff15c21d45d50a9d160d0a31a76e8612f4e8f23a401631a2c026bbbac5fc10faa73b2831daef90311b28e3a0a792894ac475cc9b22c3987c30dd0227683c00410fe98aaef7ebf48f88be06b6d9b590a3bfc3716c537c9eabc279c30020803e838a503dbc343c0edb91b64fbad339c94f0314689e0a65efd4cb22", + "bbb683555866d75bbb22a0481436bf142eafb7a9bdd9fa3e9e224a75102a17457b40289aa7ad1063bfe826ab175f", + "5b790769ab0d7b2311c4fc380153bd8ffb83d54d0f486530b6db255f1bbb31759798a8efa18e267239d82bb84b8742dd9d205034eaae4775ee33f2e16a0a7b2362c6445ceedb29999449e2dcaee8945e17de4b7fb83312033989af68f671697e3808e53a8e70beb5f9b00543f90e45dc9ca8306ecdfe28cd59683560e2e77657fc06bb621dbb0a29a0eacdda3f366fabb6889cb7f790ac013f51e5438762f8fcc234cd485f8d90580835c9e0009cbdf6fb1cc2fd6d0a0ae0314e4f7e08961e4487e73150cbebb7a19dfe724ff5dfabf2c1140ef296946b93eab7a6e8e3b6bed79cbf5fe0d0c7a8a91c7208c48b59acd3a839b66f47505da4fbb8c45dca6a65f9314c3281807036acd35407f77edd39a4eda9b1f700074e3bfc664ef7aaca7e71f14567733102c0dbba7dfec23bc852b55faaaba11c90b161b31bf6918d434d172c5bc77d890aab8c1863f46cbbd6199e2a79064e7c924529f71b86a635ab02070e1b924a7ad2bd289b975beb0286b620bb906cfbe067c9484d6b9bedd0952a4a99140733508adb042ff876310b624ae7352b2f51752883ed00a73235e1e825794abde43aa84f3867ee3cecad492bc691e3dff371b47c6b71" + }, + { /* i=2834 cDividendBits=1934 cDivisorBits=1876 */ + "0176afdd893bfd4aa87be7cf69724ccf87b1e771a4cc328c6f17c0bf00ff221744495578a238330e26a22669b5fe044baf2ea19df6e53ff0332e35290d04d2e1382dd91d189a8e83e56aea49d89953d104a2521e7b5da05749c1e6fe4255064620a55d33343c56946ae8cf64e7ce858ed9cf389b9b23d8a60f7bc231f7e673bb03a22e7d53024bcad9eb88508586c239e40413f156b0f3f09160b59a9c754dfdb426096b346e1b9f9897638951b2efad15476cea989fa5e59e3337c20fbdb70b28b0bfdc9381ae471af65cd819e1c10ad19ae0f2e4417bf86dd21fb9026526fa872c8408eaa2470134284d01a5e53e8c06b4", + "04a45e07f0d7521aaa9a7f95fda68733dcf30634580da519b92515665a115c512c9438269c385774d666695a385900d6fa8ec4c004dae094c1598496f1c3a10dbe379710c4c7e78b5a09c934590b90452920dd655564ae856f81283e293fef036743ed530fa6f14c59b5c57cda75dbc77f82f136eae8cdfeab4439b361e9e91f0b87827b8a7c43e575cbd721688f3076a716a9555f9db6d6d2d96d9a6f452496086f656d410a2f79ba68cd230836d5f5ff978fa5c742ecd4d819dc63cf0424e091d9f7917323fc03358061b755e6be0d9378b72a3ee1a2a7850d86a9d70d1cb58d9898a9d6f7e6740218d5", + "50b736404b795d", + "857cb7864102d122c2de1bbdc16fec96edd17b421585aa3027fa1b4d4befc1247c2a00d7f841c4cf9c5addb1d899561eacac51bfa2ad3993adb0eb215ea0edebf5648bc7321aab5095188064af2d3425fa336278ca175e4b4175099e423c2e9ec199f771e1286cf7f7c4fb655f5d2db1b7da9adfe876a4cd3cc0ca39b8475c2eae53823963ffaf264d62e70e5fc24187480b99e5c614c79339d972fb9615e70acb386c69383938c5583a4caf1dc6d5ff59e98a333ccc3ea42fe076cefb912d9cc46083c75f88130208b88df7caed51baafd79ce1a0bf20a16b9bf34199f88faed4460677a79795a55453" + }, + { /* i=2835 cDividendBits=134 cDivisorBits=125 */ + "0956ac9aa29f75cec03b33e251301c5831", + "06c396f573698a27c42c8b7852e2d5fc", + "0161", + "02f9722e7aee4deab9c79166e55347b5" + }, + { /* i=2836 cDividendBits=2870 cDivisorBits=1480 */ + "1acc9d365afed8d08f9a3fd45e1464fcc55a3f821d13d9fb9983e90425d644a1bd843ec2bfc2a7230dc1c6e59484fbca259e94bea65f33f5c9c1785225083f703896d666a73e04d8d62521c5dcb7ef3fa9d0fd8e331a1073d39f9d83d645e2a50072c47146af3e64b32aad453174734a0142bef7f02361044bafdb4fac1cf8530ad256923696ddc9d820b1fdf75139fec88c9b2b5850dbd883df288d4bfb386261da848086188147e375016d165a4831e3c8f9ccd76f26ee0d9d5271399d17b122fe6a38be26a76d77e93b33fde4ec32e7ef2737e3e630a939118b7e4448be746554934b6cf24e7bccfba7f1f16a2029fbd77250fa79bd73f9bb7d2c60224951be47aada0b85e70ce069482d1be0cf2c4ad3cecea30c42bfc891e632be2be9743a20ae37b8c839c68eb0c9c61960dfff8eaea0acf9e0b271685fa7294e91023a49b94512873facecb020b8a77405af06589869f727a61c14a30b11391797ed2051cbfc571e7bb0", + "11170cc3074c1413694196d8ff0d70455d352e413c543b0dfd97933b2d2cbb931d961ff776523f3bd719916ad32d9ff201bfada5f7414c8eeffeff98c328fffb2930af378292847c1145efaf954daca5bde9278ab6ffda83b0b58f33723d1e108e88722e3e880f956816ee28d5cdd012f7dcae620520496d62093f5f2f284968b189c20299ca012b639138dbfa3f0c0298b09fca24c9f6ba62aa368bc4bd52387b890ceae278e0eefb579255928b961a4d467d44839eed24e9", + "01917079e670562e3d7656ee4588de03912173e6b696f67dfa9ea75eac35cb2b340d6462028754fca10d9d0c4162aaa3fa93b81129b9441e44e2b820f9b1f931cfe217e481da8cacd58958a7a9d71dd6469d6c1ab3f9679852c29d209d97276b51391ebef4a2c32241a4c6a675cd2b493312430f550be413b1de8680108bc0012cd1f38d0a0347bdebef81f8cfce40db4d9bd4e363a8b63ee36b652953b42719f50229a6d5c29185b499c8f99c381b", + "06cd938f4ccaf5de2026a06e10432dca97550f50d93e7a5acff31700e75fe80e952f73c97d56093184363e3de5556af26667a08223954f8277b2623cba695948361c39dddfb9d634d9d5f7253a9737473653aada95cceb5148babfb8dedc4551d2a639d364d4daa6df4ceffb3e7c295bdb974a858059b0e53cf35a1eef539632814cc6a928c0dba891e3409d5b956f6922063413ec3726e5b90d5d306a670bc4f4cb015fc5012127b427c63d4d75c680ad9f2d2ee5950c9f1d" + }, + { /* i=2837 cDividendBits=310 cDivisorBits=260 */ + "304008e0332f768d7cca73d745949027a6c150f6ea6c6902e83cad4a38e3bee96f6fa773bacd31", + "0ba639c719fdb872d37b5ed850fd9e2a2cc372eb9e0846683bbb54095de91304ca", + "0424528c8c4849", + "05cd83a271ee316150927c3db62b2c40177fc6dbfd7e041dcaf9188c998d7d9f97" + }, + { /* i=2838 cDividendBits=3917 cDivisorBits=1257 */ + "0564779f03336add8ffd885bb4e95678e7c41d754c07c691ff292dd83ba66c98ffdd5da9392fa6e4b170a47a091d366868be73f70cf7d766392e9cb22749363ba0665090cae82506f67b99d779d7696ace6e93686af5de44e895cf60c69da37e437374055965a51dfce23afe5a5ed35bb1c0e35102c5903c113f3e1893c839d4fdd6e44fa930613ca3e4cdf8150832eb8ab5f228c8cd43a2469deea2b47dc1c83bee01b33aa31b0034b095012d3fbc4f5c8f8f887501e3b094a6065b2bfbe72edc1639fa2f059fd4ef82232f2284f24bcb88bd4daec3dded0b7439dc7cff6d0d29021fcc6c177af5082a10acbe1ef7479fc6532651173c82a73b6ca38b7c92b8a2e62de99619357770c72adfc03caf8f8dbc01dba1b84ded557119c81b1b33963f1c45055eb2499493a1ea450029f2cf2a11a35f9416a69c71e934894be01f4f7ebed429f275cbd4e942b205ec61d6baf34427e566d920ea931a0e892e176eac37fc64322a2d5a4ffa76e7e9c6099af54e73bfdef61d9f6ca391998eaa19d9889e6b083229167cc0c581bb2fa66459f3d6bdf9cafc6af3af0513289373f4de9401744764c5b7ef3342fa1a022559a0baa0166a2b29617e679d57acb77faf31a79f5591266226609197e9cccf162acea82ae03c5d988a8c49b9fc558ed22d26f8076babc38ae9bfbe94ff", + "e796aacc2def715707a7c7a1c4c2eb7b9ca5f68bbac1f8e04e10fb088b406d458087f614fcc97839cb55c723fa4d7969b04a50cfe78762571132a1490e4cfb5aabf2a1239435f76f958cadc53f856b76620196991f17f00379cc050f361d632dd0fb01cf418a6b63b25feff5c295e6c19540bf2623a45c04ac26e3f8523f09bec2303f9c593f8d56a3e1c7137409b03f3bafa4a1a9ba2a7adf59609fc0", + "05f5fb07900d732157e7a06f8cefa682578c01285ec34bf13d1ca450d2fcd69ea43bd9a2cf8a8c3b87ad94cd8629adb74f7ef57ea67ed355712bfd30615ede14a48c70898899299fb2aee7c0b49fbcae8536f3a6ee70652e86f8289033b16cd0cfffa4d3062bf54f1b17acacaf3afccee61210bf0689d4f0e907913dac1f9b12168efe204353f6ebcd8c40e266a8ed7ec213430384b76130573025bcf0c8e22cc469f52a1e527c95d1d7006fe9c5721b11656f0021b8642c697d281690fa0761a2382e6f25a09be920c919c8fe4baeef2a36edf54e93ee0f60bdde62b0a1a771ec5c280b70f9e215e32b6349249a34c98a0f1b41067d9051d6edcea2431fe86c249483bc256cef12d09b63229846197c86cdca4044862e1279283144e9d77be87cfda6c0baaad59cd66450353bf3a5edae7d42b65915381a33e3e73cde073afe27b253fda20b575cb841cae261", + "121e37697dac169b67cda2bba1da9adfa583b644c67e8b4fc734b0712b83cffbe028abdfbba0fdfb7fb60a6e2ebdd84036dca58d7f485806d906e33e9d7e570717bbe568e400741fe31fc4095113f9161acbdecfb8f4a7afaf398f5bb588a6e638f664c6b1383ce0fb580bc5d835ca4e42befa770fdc18d5deb4aac6bac75a81f9e3b18625ab548030cc182c5c868f019dd4f84e307627ee93c79a8d3f" + }, + { /* i=2839 cDividendBits=2105 cDivisorBits=124 */ + "01012eeb1c1a95c2ded27ef2a1e332eea57a444ef92f9488fcac10f15c96fa76d672de6ed6b3801a9f05ef649e4d1e96577785f7b8fd5131c15a388704b726f81af60fc4001ff521451bce922471c78a2330283e5ff522b79f691da43c8f0bc910fdd4928620e37b9f1cf6dd31923377c49dcf5c873ef4a11c64a144b097867c70bfe4d8689dd3a90ea8908fb3a273f0d1746fb268d36a5a79e283fd99a912b62018c37e81eb773cec1bf0944e1cdfa96abce3f61d6d869c81264dd46723bc514aeaae847f9c69c6a8aae0d248b616a73947ebd79afb11b53de863f6e0054019c9b714a79db5f2cf4727d9792b3dfe2a6ae11dc62ebb354a085fb0d51159688f59b2275428f7ac60", + "06b951df60a8e9aca9e20e53316534ef", + "263fc46f1c6fa52acc51d67c5c2383aba503ee0928b209cf384295056882bebe275962748a2d66eda9152c1bbeb19eacf77373a002a1e75bc0d24b21b028870577a0b36f4c63f84410bca7e2fe46aa821ba1dd511581f08353a76a59a7c22767324425d57277fe620ad895e58ba121bb60b999f7f60eda921906560adc69f80e1c476019d4c0b1ba9b8bf680a1e4423d5a5c29d88ddc9fcfca0a4b3d6fe64716a07a2b967a629b589a53de8956d1feb9fe2a8349dba9d6e2fe9e484b9a38013f43aa29081870dbca778d90c6b6253f56ff901e6062beecf1b75261a4983275092620c18a45b4b3a6032f70f525bfd8fbe9e33bf5c44d163c", + "02a52770741947470aa88fe2facfba5c" + }, + { /* i=2840 cDividendBits=3282 cDivisorBits=3001 */ + "03b842b9f49f15f1b9fc2b86b84820043a93da9adf3ed67ae18b64300dc05a3f8d9dc7a4c43b2374a8c76165ef4853ce6f72c233f010d504e21024c58be213260a325092c8d1074858d4f6952ef6650b943e0e0a1b298e3f2de96c69f5352329d19fbd5da6288f146419fbf72c0f6650664d6d0910cbc817ceb27ba5d25de48a65d369839622061ee6e054d27d6e03b66f45f97da87719b006a2ac53c2374bfba47e8f1af6866c318914d287a08407bf2c63bac2fa49e90bcb4940c33ec8cb829ab5fa1618f97383255a00f330243e55478aa25a0217ea95e18146f330765c1e2e8ef691ec218b09cf7d882b996090dfbf2afc0adb5e4c67f5e48f13c3ed11d02b1fa8b58c5b230ff64b2bf110e692ef908ee3b71151d6f9adc12c27ab57cc4a46159ac71988cd7638f8c295b5497d937041e761a9bc3a8f4a415b925ec595341f735c54a0f60c8d0f3a47796ba4e882445593c9052d4982ec1788709308a8597b53db63489a3329ff44a15b8bd6add9a93025cc158ff30d9205b87c67f68ef972d2866c2c9af7f86bfaf44cb69e50f30cefb20ed647107afc3cb1", + "8eeabd8e1b5b2b7c6632c26fc7d00e8f03068f8e6b8d510e4970e50aad91dee814ec98be13db91c576f3c4f6ca470f73a2f10bda30d12a0f9c11b4b6eb95106ab50b3d0194dca3fda2c75593a152d660183f8092d4a28181cb57e8893065711f86d0f8b48a416468bd87a83c773dc4a7f4543e82095e8e07d0f4e3bb6f2702795f9113475a3732dcf46da56e8b97ddc2507c4cbdfc06e4963542629c51dd4aa053028498252bc3ea5db2b8039d282805b8226bc0645d87a61a0a037c734255fee13691231ae52f9a6659fa7665a81b5b21f258e084376f40b990d23162b14989fedaf21db4b69a1977d90a1b45d48c1d933dfdd7bd256a0aa0c2dfd84add806649c7a629e4a14a1c265117af73010b8039c493e523ef06c222624cdbbc9f567c9266a78b74f8a6465380e200b092a8b74163310bb62f05deb8ddf77ddaf1177e4744d1ffe5710e67a0fd451a5e9a794d10ae315d98883e85a91ce27fe02cac881cb339dd1081267471789132b1802effc7acf604b52bb4", + "06a9bca6c496458dffd4712a6ee87bae00ed06f57c72a7cf58dd326116520dab897aa99a", + "6632a20dbd7292abdc38b3a0166cfabbbf2941737a078c32efa79c277f43a9ae80e1b8484816a44df25697c1a7f3e00cd62fcac992ea8f35128811743b2f28f8235974a2748a504ed737cdcea3e3a82fdf58777389ce863256668f0f4914b2505a6658eddb89b175d7dfe523ec6e7e3ae69099351ea708644683805f7da7ed28a15e1067fdabc9afe62cd01443b7393967c8fbb0886539d81e277a57e823f15925c000960b0e90bfb5cebd9b9dae14dde9cfc5d2265f9b339cb4c718769b00f0366f4c85de5ae2bd8618daad699574a712128aeade99030a0fb8f93ffeea85f9bd14f168a464f851246c3e2df709896e9bdc8248361de06d5ac0216e4892809cf737506bda037615df43e9493733d2dcd6aa8ce20c4aa99bcfb646deafb6cb6ffa552297f5f04c0847a086bb567b753b14cc9ecc13b0bd88b46aaed723f2db94cba34b3293cae4b6712adb6f1dcb7a9214aacb4f353037052d7bedf6a721e658598b8a27d8d935c4d34d00ba6e3a4979e249ffe45e1e69" + }, + { /* i=2841 cDividendBits=1109 cDivisorBits=996 */ + "19eaf1626ca8995012e5b9518afeb47bd4f0db56e70ba50d00d2b23402d0ab92f9e368e3fc7f10e43432f1c897b331ef078c44f2149e7bb341398a493b3eb1cfee69f82805ad0f6d2ab7bd71df87746b38ff1b89977c6a4f5f178fc64ed9de12bd9601e4fefa69a7da641ba5dee3f71423b352445b17752b653f2b6e6bf988c5c3d8ad2498457adffd724c", + "048a4e94cd9ff10feb3bf00e3b1c36125bd6d389e57eaa50b620c1c80c9d7186b55fe3299fae10ba5f560e50b6d17167b607982769bc13cda11ecf3040e0f0e0b4f9bd387d4e66e696fb0a7793da89e4ed72514d5ab2408c6eae339a8c46f98a848ccc94c087b9662319bb6c048374c691b232e3eaf8feaaa7f5bf9ea5", + "05b55b62f3a30571651fd857694a67", + "042e4488be4d14d506d523f92116edaa3e197dc740edf059941205bb2fab4c7b15cb17950ce0bd28f53295f050406a7e2e85c2cf94e6b25bfab9888b3db6f6a1c5eebd375ff03742c2e0e81951dd34b0f185e5dc3e14763ce517c50adeffcfb034d2efab17460537750395ce646eed38d612c186634b684e23775bebe9" + }, + { /* i=2842 cDividendBits=3704 cDivisorBits=3371 */ + "63c71271bda9ac33f2f24023e53ff8b5371c328270b5ae2bac007aa008742cf6f3e9b80db139abbd015428010a7f90de8dcdb4b8bc8de95793777f6cf905bf7b1ecf20c9e8326c1fcaf8ed5b232b4e8f23a043d2dcbbd2af412574f6b78b3cdce491ce1fa0dbe25900ae50570fbd93591e3d10cf016bf1eafa3b4023d5ea3e687443b4312643f1b820f423443eb54b5669218f6a0d44faa021681bf3da41ad259d02de90a720e1c47bae5dbde2473ad0831da8ff8dbbd57904ba5bfcbfed6cfb7f05b1570e2438db1db9bc03b3503ab447ebe15a89ff7aa1fd33924ebc72798a199bddff677cbf4ccaaab419da3eeca94ff32e9ae591c2fa47d49803670251c2a48a473b165d1e60eab50aeac4445fce94b949c9599210dc15d5fff82d3c483cb74ad3346dc38d4a07388635116fbd6cdb1c05c83a28dfc8f85675d919fb4ae7a8319694fc4718c232766c7cbc5c5e37d6a85f7dfd1fcc93e670dc902018c33f5eb1232d8acc0366778689f89f73df0db27b3d6a9800a410b35659cde37f4789bb30e36ed5cbf42bc5f8ed199165d7242186c87819f3e909bc1da0d5685aa95e2d40d01b1697381c1eef43e02b7a8d90d3c72010f0c7a69895e2669009581f63f3188f1fb0dbe7aefc800d5332976b", + "02eaeb736557ee7afc6749a84c920dbf1c60ea0f7b8ae6dfc2a0631746b12026c40a3c5f900b599828c56fc5a4bdbde8ab058087145c9e7e5066775649bfafcf0fdee18eae47d3ae30df0edbd64d29dd4ac613d129eb6508a7563869ca0408503b3584e368c87baade7a6672e3ac83a77c84f905fd7911cf5762a2b09e0a66a1a434db477d9c190dc2ef81003fc01446b9bd579e3b0836a37866e020f088fb67a456cb8cd4528c08ff55079e78d5de33d14ab0d92fa44417e38c6e44d2f7aba0e2df8c2775b73ff27d07d1e3197cf0c441c68ec72e789bb11d56e0f968d0ec01fd61ea06ec4904a30b46647728c46af8e6bfb8a8d5a93f8b2429872c389b773b2307dd245d5dc18b33dc57eda3cf725601ce9fca8ab4b4b9c3a9ed86f8f82e83f80e0d514c69abc275fdad83ad07ad7be9ada6679d2531598553a7eb92b109f3204fc5e8aa5d40fac7d51d8d877c9556900e5f3c5e58bf270ba4ea861012ebf240c6771d066c88cd94574116e6c3f79041c48c6987dd1a18003158abf0ac041cce5be0e0ef1dac11933a9f093165b1aab826f44bc22df49f2009521e0c431003acf74e467b9e", + "2232a854bc3c2aa3789310e95a98c3856c87a1ba0a0c20ad774d7a10746eff2d1e1566ea897955f537b0", + "7efafa5efb707b4c1c56fb951d54180976114ecfca6f2c5a1dc40945b07f4bc077ed3d121067b1a3d2e4f9dc9072b3b3f49549d061f6b274ca794bebd1b08c4b1d22c7f49660d3f5f3c5e85ff8c130319f43d60932b1c618b7a7d621fa3b2c697c0db9d91bf80afc92edcaf07d4e7b7926cd100a555a077606f0308f949fbbd7dacad3bb4df843b6275ca7d6c2c03476d9ae681fb8ad37fae2f3a3514334f35bce71aeca73f6bb1d15ad6535510b62bd6871a6e4674d68772c1cb6d3a7001329050fbd830c2466cbba67470e9b1e1fb1debb5095c0061344d35afe6db43f77a15be683076fa96f3a0df2bf827ebb88ffef0679789e187f5a6822b0bde4668fe40e9a147fb1b28479cd023622f7db77037e4c5c53c65e9f45ca7235ca953b123268b206a1ed55203503703b145c1392333fc2b5163cfdc201e1df3b96661ffb9272cb4677f7430e9fbea4a5c496ac2f909d0ec67de5c7c3eadf1f4d1f4f0b2f17bbe4d01337ce776beafb30cfa76c891e6445a939c967d26a596f99793881d0f52b7dac3243eec9db7605e1aa5f992e6e6f70a508755dd9de433e5115fd92bd280899f8a8cb" + }, + { /* i=2843 cDividendBits=2780 cDivisorBits=720 */ + "0aec77d3c0fbbcd1e0081ea87d6f974082c1077df4bd48a1bdec9e5783d366c6493cec1704fedce9c9e397c85087ae315b074cf80bbfe040b6634d54b281f4945b0ad673bb392f4de13a0c9ad77c2c66472079e0b3266c002f8ddebe8f6037883de1d1ca16a9383b6e05cb10a73e308d2411b8da5de219c162d16514098bc754837646c284c168007aaa5aa6c16e57c9d1543ec8b0c7843d0469d2709942097232aa529b2823e1981cab27950f809794806404767ae0584cede862ba063363a5c86e4bf5ca9a24e700917b0365abd42c1c8a5d572dfdbb44941093fbf83011ef0319c6af79bc99b03fce155a9f35f1476b3266205fe356219806526ea79d34a21f5f21c606a1f3e0356a8a54c98ba516cab96142b7139f1205f21125a2dc06de35cfe52a9ac05da9d51212400015d23847babf912af8c1297327f522060a95fcf2b763fdeca4c163f163b7b9780bc2c6ce8107543bcb3708cbc5a0bf", + "ffad00cc8e33fa3276002141cb041df32ab0e9afba006c9826cc77b3d725f2f4b10139d4383e04ad5897f0d610f54bbd8a1d746bf3c09ac913e5bf77fa1206a7d6931b0794bdc384d8fda78cac2ceaa641c4422cd8876c9388fa", + "0af0039c2f48d677d50d9a567307dfa1a424773e2d99e10906276121cd775742a4d117e5f90a29263ebd812f8c3e125c8ae909f964178dbc730123e6e1039f22d2e7fccb52cd2cb0bbce65b3a97cbbb766d4061996bf8c182caecbd36f637d6e6624619bee9266d58d6d7d63b85d73b76291ab4157304b0ff3ab2de41c0f0407497c47a8101468ac873dc7770f6a30e3ef2ec39b715424402c3ae424e82423811718e84edb8049cc69172b5483018929f9813d6b599ad4150baae9779a4ab6f4624e8c2c672df4fd25dea546d25b91d0c6e72a984efaeb585142b094a0e57b8f29b5450044d57ad5d31594bef667ce641821cc48faed1e2193d9f4a8e9aba38fd6a8", + "96b91365533666df520071837b1170bcf02f19063cad0eb80f92c9188cbaf1c3b3ccc0cee551c30b1fb952b656432f262ee5103a7927b341a49279efa8671d0b087f93186c30e2cda3d7e755059d3d53dcba294c49c784ccc0af" + }, + { /* i=2844 cDividendBits=3580 cDivisorBits=2480 */ + "06ce47c4da3077e84b4edd272e46d7ded602a331493819087b1838658d313b4ba14ee1d6ccf816602e0a1b27f2d3841cd05036ac52bcadc8f9c3ca604ea5a295e26805edb88a24e9591786f344eb56b3e525dc60298b662e818c81910ebca6cf4ddef8bcd77501c13a442334876597d0d2599d2a65ee10b01867839aa87afeebddae4e8c2cd1d33f2a6e554e825a4b3207537a53b528421f2c477ad7aa322d8ec9b8b5b46652ffc3ac46056931538edd9218330582bfd721416e707adced18278525b81776a93564f97d4ae616a19b3b4d9f78f123d99adc4e52e28715c2c9073fcd7d4d5308be152741192749ee01a83bc12c69f6d6cb17db72971c45ba9eeef7def825cdcdcb7b64f6ba1504867fe129308fc9f3d0181fd505c8789367e3515dfca283df9d3ba04bf56a1dc6273f91bcd32d0924cc13522fc9a2acca1e739a4d9ee11c4e5f6cd57bd66f2ebccce5c9d1fda373017e7d9123554a3b249c587b644d191e96ce1ae3d1ba8663eeb6173982bc47364ccb4a7f850433d70855074f3f94bd12e935e803ffa5c9b76c4bfefd1816041760f01b93d9e32727f8a66f431541558d706a6c28ed921f4ae7d229a99551113dbe963c9cf9f600b69e9166ae", + "3d0009de4c0c6fffe102133992797e010abd955948b8e749f0fb7ffa3bac1a8ce9c811c4e02e612413d9525c5c8a556535e7d4a98fd543253762ada3da274ae62f3b58b0a6bf275a49041a434c7f68a25ce81355e8d8e361c028b0530c75c597157f7700ebb06766b07b44d1f5c23a6601b832283621396072b9f3279c4d962aa1eaf94868b926e1692246711ac733fc9d7e472313680c782db2872d78c59b51dd259b6daa39e6afcbfe9fd27c4c0e23e99c82b0f667bb8a5230b536b4a80de2d790f4d3329be66877d28828013bf7a3241bdecb2077e5078e568457e2b385eaaefecfffe72adf22de8a764659fc111344df15715227818da9ee81c0da6beb1a1126a4c457ef76f419991a870dd95f52ce9cdd0525a114ab89b40d64a8e13c7f4de1328cd31a82cb4c3864a9cbc8ec7dab7c5a87b8d1", + "1c8fd8d6016c56b71f414ab094011006eaf0a9107e4afd2d636257bdd0115dbfe2be909f4de1b0962394bf771c2bbb7bdd571d05071e7802653f45223d3a8b1e063e98b5b505e518c187336d87bf63267fad83642430cd7062b2536b5642b045c2950be4ffcfd022d24dcf19f4ed9d575fdba58698428ae725b3de888aace7d7598f2a040b6090dde40e", + "19b9589d0d5b97ecf6433317fd4fdc249d1efec60d06c0e71a8139c78bfc154cbf6b711ad1088e0939ebe6f07a149753642dbceca1fac528091b4f5eda897d7d0c87c398bbe9785b0359a5db982bea62ef8c5bd4c881994d06ef8dbe25b346b2ec89d50d2776f75700cce5b3e0e501494b27ccaf22923a79cea3221a05599266e5e41fcff5640e3678e410a5f75e378de2a8fecfd80f0a7b0a15a9084bb71411ff03d1dcbf6a2abed6c903f94a4717c235c37b4441f0783b8294d5b071b2b2daeae478a9b05972d0c8aa3dcfeffa07aba84b4009b1470acce9df3fa97c21b850f26abf557c206e2d69f21d21a3b81c14f42e46b9647aed54cdbc2933e0c4f41fbeee0889ae360b8465d1ae2cc6c3bcebe322383de9a8bf239c018f84f8a6b5d97d72b442213137d98993587111572bfb16c8ae1e2740" + }, + { /* i=2845 cDividendBits=1903 cDivisorBits=1120 */ + "76844c008a78d328c73f2e3b200d03999a121b80869c27bbf97ceab1cc24e717e8e8c4a9c166cfaed204ac9479ff31195f89a58388ff62fa7dbc36e8ac190d486f5b6d26071b1fc1c13deab1e42f4eaab58a66de2d933eca5bf0d0b9076a24e5455cbaca79569fa6ea2567b56982faab99287babe066cce01e375576fb83f184cd41117b7be3832cb05beeb2e33846aea80b34149baca17ba034715bb4c5a708149943c33b929dcb825087ab4961759769310859dcf423336bdac732f5c9d581aec6c38944a26c80cdcab089b32963f0d2506af1d049a2db007e5f6eabe57d426c7e776e8d0cd31804ac90172434", + "07724fefb80bb9ed8fb2a836d3eeba7e11e64db58f8c0777edf8160c813fc485ea312d76fe2c7d04162bc6d9f41eb5ef483fd6f877f83cc91d4728f235252f709a621c21cd45e82c1d8668ec9cb01a3cc2e4f241d65941c4e879f207cd8c90c9e18a458f958f9b169265a52e2e7d069d6e64b5fbdf2ef5ce440d046dc36a820118515e7f978e2e800ec9d91c", + "0fea6b6aed0ee8d82b2df935ff31f01a070ca6543ff148f89fcf6c75ed622777ec965d21724fc9620c1a68357f53801f25672597172db8ee29776afd74935f38a51e5b9c419e8d81f09a3540abe749424a6f3922c2fda9bf85b4656fbb0fb87a460b49", + "67addddb0fff568f82557655645232f4bc923cdac954e3593df8fb7996d4d538af581e9d7b1289263066d546d3842fdb8ab271e0c96591c30a5560f08f2936af978b3fbf934620623c563b944320cc399afef42f1a406a9e2141dfdfb903d1277bb8378cce7fad1858a76a45b0f1afe87cc03e5da8b5190df762d9901675fd31585494913c54bcf68c0738" + }, + { /* i=2846 cDividendBits=1259 cDivisorBits=1173 */ + "0758225273d8ffcca7ce3096af1a132d009467b91d3453aa2f241de782520881358ead13067f954d719b3915854098a4aa8ff506c2d99f47306ed22bb74447c9c9726fb0fd1eb6d907300a2b73682094a414b637fe2200806e9458c3a3ad975bccc2e6a05c927a3a93422c1afcb91b1fe0efbb6f51b4d6dcedea560061890675e41664f8fb714caf011a0b209ae13eb1474236a314b1eb608358f76dab59", + "0df9546729ee3714480f7dce4ab4c77c4a4494139d202e7389cc9df2a9e4d8aab77f4e192cbccb3516d2f0b7dc4beb9dda95cb4aa79191f69b584091ac57103f1386559280e4bdf1fa495b1ce6e3aa09fee1ac593a460a27b3a91361a9dbdf834c6a804214c84e8198fafbb04db054937c1532026d248af3004dd033e67a28c5b737eb5b80fbf80b7bd64b6a01a2fadd161450", + "868bb2e0a584f294715dee", + "0aabd0eb66008c8fc2906bec6b776a807dfeb789bcb2b58567574ffc6f28a86dbec55663fa8f9ab084d0747c743f347b975b575313fb64c6b6943e1e0be4c368408cc2e351a29267fde6f7fbfa8b7520ceb4985adb3d99292cf49d3bed8173a83d85dbddea1e36fd20b9b215f0801f50d2f15749f566e31d6c074fec9b7b5e13fadfa5f93fc74a691aec5b54310db13035b8f9" + }, + { /* i=2847 cDividendBits=609 cDivisorBits=76 */ + "b5a88ea68f85773f354a13f33e39ef413d6736f1b00c98e9dab8be323c06bd5fd86bac34438de3291be6b557c62a1639da1b88aea7549d46c9a0941a502514652a4fd42c1bcb583282361c34", + "0a41f794aa5b6965cfd2", + "11b5a19bd3e66cbbfe039f1a7935319f1a1fa2b7184264d11afb46b7a66957c41e68a9c5e712776a989d1beade67915031f67939e29a11acc276a556658578f2fd604a", + "095b2e6ae5bcf64f4980" + }, + { /* i=2848 cDividendBits=803 cDivisorBits=314 */ + "04913d3d97d8dbcc3b6c2738d6df5c5495052b78349e45ba54d7a431a62d7c2003bc9e120f05246765491b0f5fb83967fd22e74cbd46f6b8e6b9c7e6f899bb592ba59db53c3fd6c8d24cfa58729afeb124d47cf0b2a73aed0545809a6678690069d1e1d436", + "038359a2433a1f45f5e1d479ed903f540b1a7e9617025370270ea69b77e8372361e8c929d32c77cf", + "014cd2ecb94925cacd399baec4b93a88bbf95fd6028464a58720c679220db710a60c31da70bf41c8ed998025cb22594d64f8a4598d00693ef26b24eb7f54", + "d2ffdd184099ba1fe162d2e426e1810660504dc82038346085db51878c5539192a62bd60d5d34a" + }, + { /* i=2849 cDividendBits=1651 cDivisorBits=142 */ + "068878fdbc98352d8caba06b2f550f48755d38af12446fe9056c37fd3a11b920eec65db67f5d12dccc307747edda31acf7ab190677b4e0926ad4834f52ee82b56493608a24f73e11ec1123b29d977d42a3a1fd9b9fd3f1c9b27acd23f1753bcb3bcdf5c258dd894eaac99a1a8d4f7e0342a49b701e3f1c99a9221c302162dfd65cf11c85af41663eca3d9c19f106d59c7065e8f8e55d0c6d19a7fad45b8cf29ff6dccee2df2eeb3b45466fa12c474e83fc196385a1d02fca5befa7781482ac1f8ba4bb9279d46d2ba3612408d9b595", + "16e3afdf2ab0439e1893bcd0f98c29c28533", + "49114b298d0cef621f477b2710f1cb56a5e9e2c2159fb1cd12d3c51c12b7bb25d7c32580e9be961a03f3c84ea5fa3b439a8bdf81b6e6878a73997f1aba39e1d74a1b8aabb5e54d346cddcfc907962951263176bf19a96fb3045cfd4623ab399884be46a2c6f737681b04bcf3d2eb7e96bf246934693f7b9dc83e84b7382df2adcfc6897ded3e07429bd1f0283ed348d8041e09f0059c812965f2c768ab574c35d4e7b1c86507ec7bc919ac3f03990eb4df89bfb4d896b04e2aaa1c27f2", + "041911ab8012c0c115e6e573fe2f7d19065f" + }, + { /* i=2850 cDividendBits=2732 cDivisorBits=1479 */ + "0837ef67ffa477840d1ef9b97c6e197ff4cda4178f114808e5918b6345bb10ad03b5d629bdafaaa7cc43d48abb6525e53b2600599639fd90fc7388a7eef3dac8031dc22bcd39c2c3db8bd80f1e43a21cd40b9ec9e47fcb88b08fa9c4cec61832a95343f49c00a81c24983ea0518b05604ff63dc97ee49b0f754f23500d9211738eb28bbcab92e6f0dd4ee882cad19eb8fa887bc50f0e3e3b52354da4277a2fb2305700b60671b774a20a636c6076a70358182492cc3102b5600f905198451bfd4708fba5854b06c07b7efd26e872606acc212ad3f1aa1c57d4428cbe92b88364606bb84cd0574b6be594055531dda5c0205649e204fc9c9e2dfac36d6d65b0c80805ca646450a952350f4282efb1de30df9bb909503540ce29f496571627ab49986cfd2af66d3ea2654ed05f825a871eb670b6f4284c63ca1fd3419e13dc31c8f44adc0577e53646bf63188e47eef07b91e2280bb01f", + "1a786e16a8c91137426663574c1320cd71c57252108a0662f001e68f33c5c62c38e5dcde1dbf5af470dba09b415e7b1e0efc07ab31355733929d4d5d69e5c9a7886872f8f15701272f59cc891e64f9ea609a4a025a6843027ebdba14977a88c85748873fa994d51d3955eb0b0da3dad56aaec73b1d9984ceaef4edff74e06e4bbdafa1fab5518f03dbea9cae1d645b3debb361c2d01bcf99e5d5c3dba0f789326c965bafdc6488ef80b49908bac186afc17a5699ba549c8a0a", + "4f7b833eb9610efe353da15e62d52492fe43f13145786f994cabffd67852193ba018d2f1cdf72e698b757683edc9702fe6c445aaa17aac069843578d963d1a404f2038bb583a0959dc6b48e86024df6d914b6c7fb760ac6710e16664052acdc194648a60418b44dfe8757b02c1dde65294950c88c229daa87f19572b223715110addfd3fd7f8467ece3f50628c3e856eadf984f2e793792bc70e25c36a", + "06a77da87460c44e55c54a80ac65d9bd5d7cd3381662c3ac93ef0bbbc9989c7b110e5f926780bdc0a91e92ce1200a7d2da9287fd379664f8a6665d89288409fdc07e608714d0ff9cbe026aea7d0d5752bc817c0c0d68e36fc0cdd55af9689f8c520197dc648d22fd33fb886d6be15a20945c465fec4ac3b323ee0aa373c1c34bca4931fe59356a860a33389c02a795c89db75a97f0a993e2042a2d5fbf7b9f7ed640d8323761b3e244d2a28b8edb900660db5f365562a2e9fb" + }, + { /* i=2851 cDividendBits=1794 cDivisorBits=1539 */ + "032207e950de26ea1e32fe7d6708d50837d2694453df0afeb529e1ea1e9a5638a7b6e8a6e8bf9e8b74ecb0a643d76484dd17e392a72123a31235855128fca96f29fde1e895b86d9e5df235c1da0e24740440829f0cf5dcbfc6de1ad8c1b0e32178128f8e88fa346ca74c0bfc3961c2e0f78bf39b236f4d9f0e225398f42cdb339a98d6091fa9233641f84a2fed8eb641acbe46f311578497bf1579931eaab1b28b72240867751c430bc1c5371a527649626df05d0440df2cba3cd37ebd319dc788dc51614f326da2827b9ff1b0025597256c4052fb1f983dbe009366e9aafe0eae", + "02fb652db751c597561f9451353aeedbca0c497747618e8c5f5d0853ae707c64ec8e64bb2e9d37ae4d8f297a922d31096ac75c7e613ab691c42c972704972f0ed99c79529816b8a7e15dff5a11797717babe3e27a09cb109bd82ce2958bb821c2519ffb64ab1681efa9bfe4e57075f85f6b4db8b9b4bfc4d4411543981a4790a3bb133de7a4fd7d0d674e5add75faa2a2b3b793f0277f092200693d62dd3cdbbae94fc4f6f1e08b0f3cdedc6bb9a2c51323629ccbc9236bd229059270a3a7ad83b", + "010cf4cc3b461c73268968139e5deb110fd05b556336cfd803ad5f09adfdda8b30", + "02c045f8b5e4742854828ac64d7e051e103c1eed7236561da4a1c1e9a3fe5164db304c0a9b65e0821ddc271508380b954ba31cb6b8dfd5022d4e32dacff5e4136dc5170a82bbe45d519613d2e7615fccee32ffe4a8baac319db5795c74464ad1c06c401bd5c41c00ce54734f74b7285567af8d848a8a636c0bb4de543b10d7b2942f0760ebd1584ca99123b43a05da3bfeb5eabf6fd52d10fcd3601c68f4418b571850add5f4470a7f98fe748b7dd8fbbe4999951005350339a520108f4f7a9e" + }, + { /* i=2852 cDividendBits=1623 cDivisorBits=114 */ + "5c9e762230d12daf46750a7aea9c3dbe471bb480626d74f3a7675852e9298ae3f0def1bc0bf3b616ae44107141b6f4ff87ae8ee836938a174822b26af97b3245f2a32b3a9145be86516d08a7bd4a95561019a98cad4e7b548a804e603c69ea3ffcda9512585c5323665be5473606e8754759d24487df49aa9d48795ea0d1c4591a6b28bfd1cfd7de09c4f1c61abf78b3fdc3b4cc363457c8f4a45f2b1e4b5b51a6da9876130bc5e744183d12083823c7d67571d9ed22bfad5c8e7776f09d176f9a285a35a6670af651d33a", + "0356e2aac83ef7d9445096e46aacd6", + "1bbc3964f8b6a460c298179b34c95b6a015b5b0e5cb4f455d55891cf0fd7533b6b21d24b66a2ebeb5626d36a59d8508c0e7932d48852d3ff41e2678883991cd8c5b166f03b772e589fde907e58809695b270b17cf47decbf6f29e88437474b2c31960c664a29059c654fcb41084bc00dcd84923589b4223b4ebb8b972bb939f41e675b62e98f069997d7dd5ed0b3a24ca6e9e9ed17813c1106b7563a434361d4532ab75a6a9d107df9ba180d61a009a88438c8c0c9c0cc5453ece0e143", + "01b898b8f8e2ee65823abce93e8138" + }, + { /* i=2853 cDividendBits=1573 cDivisorBits=72 */ + "1937e9ccdd17740f2ae5c9c7fd656cf2919627c6f6f6b70b9bf82864ce1cf48077e1b30ea2a1d89ad6064693471e8456efa3af4f42e567882f2eb6ce35cc9c548a4943f67af83491247e31fa154ee9535670260b91a74171798a34a875ea2105d433a9644506849ad84af99d36ff7cb2881754aed95c4765dfd364a0bc6b0fb70b0bdc11a464c8ed013672f4f59773f22c72d242ec9fc7c5587410d4263e2711996055f32218de4f7ff7363aebaeeb3680442ce9dcea5dd90c16ef4536a05f7101a2ebcc3f", + "c74192e3fc06c45380", + "20666b098c1ad208428ed5829738e7ec148140dd1c23d160cbec4276720958a353bdb164478ed851248cd67fe9eb27c11d93d861a65cb17031ffa0990f1ba7e6a3923aafafe726187e4e8dff33557dbc25b12ba1073b3d51588287d886f7b9fadee261c7033dfebcbdd41ee934c6887e623603183fde3671aa6355552a71d5d8691692171837b4e29020d1cda5a9118eadc06af4948062bab00974d710110a4184ff994a9815f04625ec61ddf80ad22f6fbbe06f12be27ed4a576bf7", + "4c7c4647a7ac18bbbf" + }, + { /* i=2854 cDividendBits=2296 cDivisorBits=789 */ + "98c6a9c1ab2dd7619510cf91e854bf86d4a75c60bc8984426db18c3a5fdeab45d9dfdfe3460587b2934f1833db1230f4e4dc9f9404d8b3d6f5fb446a4e925d8174e234a9fe55fbb9363187d59ba9fee17ca89109a09a96e745581abf8130f8592c30ba5a635d7b10fb1c5b24317817e2e5653e6afc6b0506dba09b25a7a520f7c01b3e9b11a4906d7f95bc0a7836d469fda715b56305d5348db4630112009f4b72996bcd20b9178d5bd4d8c48686b27b266a925bdeae929cfb40370b643d706efd8b56000b67bd0246c5b72c85ae42bc526cc191ca672e13eea11ee9dd9c926bf27c37b0c78ab132805cf5ba8b1110952fd7f1c31bdfee6a9772bf2c9c221cd308887cb6a33f5545da57000138619f3bccdc6f9cf2c83dbaa2fbf166a11542", + "1c1db7f96143f2044460fb5b6ed547185027efaa42f3c67101f3b115f5973e86ceb9188b52b353a38b9557285a0910f9ca7365c97eada6a1603e83904cd3ae5840799134705a3a781ba56c79848c8b2472803e87d91f972f370ddab7e17c862be9182a", + "056f0ac7e6d3785651b547501db6aa9f62f3193347fa3b96d666394ee23c7d9b871f39d213b8a9ff1e9718f4e2b78b531301a64ebfe517e9ddfb353711869a5c58b92305b7eb86f8e1257e21cc5fe9ccc43bb1c353d32d989f2c104373bc0a877e0a2342a4230273a8dd94c901269793135093a117fe937d121352550b8a198f3eee3dba2a35b4ddd2ff8a67fda2cfa4345db6ce85f9f807636569e9ed8d66d65c5cdfc3481e16b63a8cdba10ff119d378c1b5c51784e21c689be85534", + "094c089af5945461c066c1a36a5f3a51b097877b4f68c9591f11cbfe23d021e97e53e1d9f00e8c2be648bf1553e7b978b9b77ed18e1b6fa697fdcb60cb535ebf083406717912c7524a0593a9644cc31a8d7c13557ed0fa371278b219e4ce2cc2323aba" + }, + { /* i=2855 cDividendBits=1713 cDivisorBits=1206 */ + "01858727e1ba7e7b89fde67bfc6efa24e1b5c218964a442f90f21780699eadbfca0643720aea8577931b6c5c3cc7cbc7df0758821d69f466529993d11546572d4e93dd9e4627382f123910773b684ea64ef63c2c714c43549878f581531febd3998c645dc49f8393892680282c80911dddb529c2f58d6f1f0945081aa61a0fc389f7e0b6e2b322f2906345cacc2ba06fdcd87e42cc261a3c912a14167152d407c509653bf15b93348ce45cdcb37ed874c70d028e35fe34dd8d4fc23258e3d5301e632e8523e29ddd5152de8ee0bc41758a8cd62bef20d7", + "15691adf6ee64dbc482cfdb6bc5136bfc94e4345852fd95685a66f8d551b4f4dfd0af6b35aac6873a1f1542d379a044b19977266027cb7736f75c99251bb695e345bb7a68d9bd0701aab8c031e1da0575e00f88304b4134f9e3ec5ca1408477a6a183f8d1290eca9718ce7f7b63bae4699d1f08bb0160026bccc771edde9a2d6fa753b0fcc9297c28a331afebfab56854c6ecba945c118", + "12317957e01c4ea059dca2e060c7f6db7e5c71bc55b2e3bc61823aa92089c935c52541162e588ea908e74605ceb22d4f847222c032ffd7b81a4005d7d8527bb0", + "05457551bba01a877d492157bdb608d512a2f77c52b8acdcd43ea584048d30285b828e0989ee894a25d6077cfb4d22ff50ab59c58bee08ff7b08fbd4bcfcd2317a4e6233fd45be0513ecddb405b11f173e9931df3aeb29c98f23bd284ac93cbbfb8adc19dc4f331cf28c140f10ab7c6f9cba63f41947809b9a2ec394e6e61cfc9e7c539393d949891c4d9557eccf1c8758d0112e83d857" + }, + { /* i=2856 cDividendBits=1119 cDivisorBits=180 */ + "44aa2e8b51d17c9e7f0afaa1339997d1fe26141a608588676a42103bae6068c3d02e84168dd888ab8856bf6ec6c23cbfea1f55b47322f56555ec39e9e63c67516db87aee57d1d7e54c985b2f1f47ee739d410ef2d286815e7f6b13c9fefcaf9b6eb2854390f33d68df48025ff8bf6e34e5721bb6bfec691f281bf45fec08c5738b3ea1fde9ddc509431f45d7", + "06d876f3edce77f3003ae96e56ce207cea3e0d2dd7f18a", + "0a07d20745aa6152ec118a8644587c9b3351e4169314663a064bc3e51240a577e0bf9347acf48824d49840154fd1f30eebcb2856338e2169936c59cad790ccdbff4bcaa98bd68b5b5ec0d6cae07be86d2005626cd32f208949a45479cb2d26857a02fa803f793d08c217ede4ac6ddbc669c2aaae017d", + "4a69831316ab8c159f4d29833906e56637ac38f0cb75" + }, + { /* i=2857 cDividendBits=3527 cDivisorBits=3233 */ + "0fa5bb3412755dd8eabb67a82ffd0ac7f44365af2751b29be80ddf878b65f0e112f25e1930fc7d0062b71466bed8b12a0d3fd29502ec2b5df52d3ce338648d5fc3248e5d1d6464a74dc9825c41b3c3c1451e92a13d24d351214ab34a4a6f7ef69d2bf5e7d9cfc476ed5605effa94858f6bb0795d5d540cfa3c6c4bafa0fa4cc39df72833f93af15e71d5fd92729e00b97edbb268f8aab001402fda2c0bc1436fecf1d780142544358e8527cdffc3ee5f10403569f1f2e1ba5e7c5ec5fe66c088dbb10f594ce6912151857aa74cb03550cd0f2a82adb9459e228a6a6c26798c1a9cadef0ba5975aae0fe198d96b743def53b38c19aed3e70bbc124c8e0ff1404ffe6605f64e50ff3554de8cbd3e4b486392808b8076173abaffb350fcc0477aed30632684f4dbd84c97297731002f67639649229a1c49ae8f4844203d60553492bde1f0479ba73bf710e8b9dd4d9c802032a0e122c20ae2022e6e4de333b59decf41ddef2b04bb5ced5895a1800a6c4adeb08e018920815c9f7ef315cd3dcfd36b28bc13e9925936f609966a40ab3795b9aad4456b7dbb797313a2d6148444922e958fde6ac4a210881aa793dd8639c061d57e39f5943f11a73", + "01bf3bdd2dac71b44061cd5b0ee4e09cac0e12a0988295fcbf0adbf3b73d8636aab4559896a9d3697dd0bbf52559e416c87287aaace418b1e6cc36d0f768b301f28264812185439b152a82b808b7f0dc424fe99ef89fe1dde7f0edc7a1ed06c5633bbfa1fc4acd1b44f54bf62b18f3a3c42ff929fef1d1a34cabbfcd8a26520a24b97eeb6e746399baae6998164d32de1b2bfc9f7c94bc85054fad0121c5c233d881c8a68e43298ae34e8c209d151f2070ad0f1210e0c7e3f82438a0e0302750c33b6687397bb63a29e148aaba75f093a05f2cdafca8363fa2eff567f22e8dd0bc3906ffd90fd0c685905ee554b160a9cb953b574e801f86917371d0d3e2c8d2b170948626178258562bc5f6907a426691b2ce11b47b6b1a55d8702a308ab863e035d027885bfa6f9b0b5dd62143eb085b4647e929136c40e21d69680255fb70c0d7999dd1a0eaaa150bfb324b6fde611d35c4a84e87d79bbc7fe56f55f393db51fa339806ac7954d3195e6307db3120d79849749119dc7a1d1bf98f77d63afdf25579f48cb5550d9453c41e2c99b92c695d81fabb", + "08f4e91a87bf19282758c890bc0744bff54a444cb0d64d404fa16e4e2bb6cf301bf14c3bee", + "96bdefba37bef09ec723fd566ebcdfe29d3ef79e3138d61bd1bd9faa95e2c5d0de735880a3e64ffb369abe7e2dcb1a32adf20bb9c6d310d0aeddef43888dd140f6280e5c5e1ff414fcaeec545f7370076bf6783935ee3c1b061a762f9f901898410cc8f331595e6d922351d7a8548de3e1fc828bbd559099f1ef52411f259eea1a66aaac6524b6d1fc098a9f28359ae6ac66b6508485c04ab6a2cb209e62ad947b9d1727b4623de3a6814d8314d8f49238cb337e5dda2ab1b56766ca81d8ab9c44064f7ee51f34b41b2b9c0a3afcde4d5f8bcf5841d7f9c992265668e7cc1041bfd9d74748558dee56829ec5cf6a3be3d52fbc8a00be23e447db66a80cd20a8bdd45e80342a81e57a72132b6d13bac95c58476d4008665e3055a47ba2cfe66dd37678e41bd1dc776cf4371e330c7c233c5477e435836c2d0c8b947456b229abbb2eddfa3664f68185273e6046b349589ccc1c90699442530778993a46f88d955b83ce569f0efd9612ebaaf0930cc501fd31f517197c58a4d0d1206f49456821e9c5a0e836cedd5bff7422f0775436b7de5cce799" + }, + { /* i=2858 cDividendBits=1237 cDivisorBits=162 */ + "028e58a577b968e9d35b339d60e94e0bbe9f327b72ee53296cdf96aa4b3d338eb160ce82978a539156c392967b41c3d2dc6e66fe9eb303f57673139c88fdb59994885dc2a08d42af2cc75664602e8385abdc8fb6a4d88b1c42075b8fcf39453f55478656378a14a03ad5b627163a0a7aaa3f3ff7797ed053790903f82afbab48813206e4ad8a7d00a736421ab1aec870eac1e194595d780407a92a", + "037c6f1e557c0fe94f0b2f969700c80ff3c0feaa43", + "bbb3fee770ebb8ab6fa0bd5c9f0de5721abd815ab9c82b737f93c4eb70d14a5c7d3ecdbab6793441d0aa844b628f9b443696a8bf7b7b6b9b4db4e2a75c5060b4d8e8d9108fb88306067fdecf752426c19813011c7780c517b5f6859328cab650ca79e574dbabcc478b646caba0e468c8c26d6c079e45be8951a89f3b3eb97d5577a2d4e83712", + "02a728cf58f9952b8d19d33e81789530adf2d34b74" + }, + { /* i=2859 cDividendBits=2513 cDivisorBits=939 */ + "29d64c0875687fe9fedceda4bac434ea8f05dc6e8f64f8061168ff43fb75789eb3310533e9f716cc68b7e32122572ec9d90302215836d7d2717c4a94d2061aec08a0ff3c59fd8d0cd560b753cb7cf0663f58126f1368b1334a35003126034ef9430790612e93d5e79e3a6a852dedcd17141b9cbe1b67b62c179e7f317b9fc882f1a6aa6a1d795ee98228a51d21fba82976907ed407b1a99fd6ff6a15eba71e729d5328d3d29200c863b83019bf2ca81a2481a9ba1cb3e593b4cbd1b1ba5c9d68256fc86790deca34e6051c4565bcb18a4218f7931b1f333f2d3a6afff0806e6277066a8309d60c7091eaece2b589dc6f8e1bf6ffd71bfe1906d3cf001644325e5bea5af4dd08f7002bb223edfd9bbcd2f2a3f67de35d37a6f6f26be8dfb8cdd892ae40ec0a3251984c0026ff13471416ce81fbf5e67632dfe6e6", + "0419c25ba1758b1f22c7bc2587b7c4d324da3f9d01556a1a35233ad885dddeb0dbdf8a5f09ffa99176d4567bf5fa0082e64b31bc350d9fbfb2848c30b820ece072d3263d3f1dd98fb553eca0a751a1b0466c1eda7fcabf44ff95e182e6402a4d754c5da77d6624c49ff9acf288aa5bd7fe4ded4666d2", + "0a33df126f3e417661607b71a216f2da64be35ab703b96dd0d9b7255d94b18535cafc2b7c1f368c209bb16a2ee54b7582d9d4073e5ed29370654fd01f0c02b56fcd4890d1cf3609e8962dda36a98a7603493a73401f43ee8110c650c19c83bb0aa1d5637865c8910018af59b71b2f120f7c49d2c1b56bd94e0f91618b6585dacbeca2b9f61a19e6444f92b9826ff346996923d1480a3a190be27bd29f40de795e68374bea6a737f408e239d47a9f308af2e22089ec93806cfb44d693b1c4646437fa0d12bd", + "e1246f501c9d7710de96389c913926586010d396b96f5c30fc2639c3439289f8c8a1ebab24287adde0ade83026a97f9cf1e0891226084bb74b50dd5cf8f2578add6b4eade7d10601dfa76f2acaf484ab6a98c9f9409b5aa3472c4357ea1686ddfbdbef983f5fb79944b7f7ff1e8d9fc024c60139dc" + }, + { /* i=2860 cDividendBits=3381 cDivisorBits=917 */ + "1cb0732f9a29beff7d7b89c9536db614db88694ebad589592ae392e7cee20044c97974ad645ac8b394b701be20591bbce2594114c34453e34ace9d1c860e005b115cb37d061e1a91299f879ad6146c3745bd0537e8b77573d44924ecd958d39ef621829f32564847d37ab5caad10fb982e4a2edac7c9ed88efe46377bd16aaddfe7b4cc3d6dbf86618ac7d2b70d35590cff0ec9a59fafbcb1ab557fc992d4740ebd13a7873b9a6899f7f8110d841ef5ea6df34de85e256deaa75ac53f76c0b1a71d916a6f6c421b3da634c64f3d75a8d1cfce4eba41135e400dbd53f0d01a33c770ce89f61735ba40fd5799f1e3aa7b52bca71cc9d0c5fb0d78729364d77d85a028c82c8ed3210135149f20f7468b6d9758838256c5f4098288ab70746f68bf691d429365d96614d37ecd91336fcdf86de02ab1134f069d9929ae78f4750de1510515aa5c963516abebc12986e1a9385a97e92ae1246fed164c056162821422e367541c38e8c8c3fa73e845b7458ea5593414f8ee10d27fea047d5b935ccf17a286e5444be934d556e117781f3f624e5fe9bdf90c6311d4a8cf10a3af5fd90ccff094acac5c123", + "1466a29cc4cf3e8e56c82ac9be152962a72a084a4e2f2b7f6e6ca78e1c9ae241b374e7a07f27f7589e6e3f6d252ea939effb92ebbc29eecbcc3b4ce2708d60867f9f562ac4cd0062273814ccd940cf1fa5a432a6d1f89f597eda0506911f5dbb571fb9601316cb66f21e4ae10201788aa9c9c2", + "0168017ee1cf9c77a9e115d32b8f9613759aefae06ab66e9ea283379d399bef9fb7206bc05a226ee5461d87cf319b8b68bd235179e437f90b147366cc363c0b3b12957172362c3bffbe4c16e110e321b2bb3ebb2c3d8bac0f71b2d7e40c60f5a8d7d955fe5f70095bc4d0edf759bbe05f21c64a7392302b9aa366be8333dd5a9865ec2f9978448ba4a8fba4cfad3a63f9f6ec700a11716517188dd9ecaf1c3a48eaa174b2719edb5c31c590ebac19ffe4dfef036fb9a32035bd0ae6d968536658b33afaf6b96b1c202caf58a2b41c2e90660ed52c593095f800f27088b8305a6a885e9b6478e2bef6deec3aa1f7aea559eaee376cc0f64ca17f3a2376f05ab3f5f19b5a1334f95d46dd64acaa048a9cec3e7852cd45b4a21b1bcda9e28aa3e858974e2f756ffaa090f3a97cbdadd9dae653d5658c5", + "10460c6d84b88251b80c3430db97a30088bae87b09ad80f091524b1e070b7aea1b424302903958217c5c4dacf141ce7d25e3f91e48d4eee240ef4470db141e0a1fb2409bd82e7d28ffa1977daf0ac5bd62367e6aae218e615e7c0d321aa1aaf55e0133949fe5c3fd091a436c50f836b796ced9" + }, + { /* i=2861 cDividendBits=1673 cDivisorBits=1401 */ + "01b7d13d89265f872416a634712d23b8d819082cb16b308fb99c03581b76798d8f7c05e125d6abd991fb24cef2440d14a66cafd7019fc4f50cda765cf9d516fa442b4e155b4a5ccd531ef81932007f286435c0d041134d507435b9f671d83669d6220f00bdce4efb260c4c67cb977237b2291c475c1209cb4f7d65e07ce981e891e2cc813a9a593ddaafcad26580bb9ec073ac4b69a25f5b202377bf3696f09f49c94f4c67a744ef62bd85e9bfbd7f9ff8e58634fd55652acad7a698345ed86a1d5b4d13292e4154b02a389494603b280372", + "cb682ab5e6e1b5cb13791a3b949abaa33f965b8188a02617ebf4c36cc4eb7401a2dedc6337ba138daeeecb0636512bb3df9586299d15cf2600c0697bacab5c468fd031c1d9af8dd2780f9bb20fa19b53d6d67d52d0859b9fa8a6a2758d99c9afae39055c0ecc69ee79a959e22889d783a7895caf5d9178cb322c137cd29ad2ace6ae967c952d6b42f6caf301445d31ee63afa5e7d677245d8fa12a7fdb286f90dc4100c399591787c55a92718bdca5", + "02298976f85dffe9c1cd1fdc9fe47aae8d875e94a5be7084c8ea76284fc7943d3a307d", + "7dc8ee5286b8ac28647fd673e38c5d28384f1412a60dfa8d74cd49983c0b76cc6e948fe5fac7eae91eea4700d021704347707d04729493b424f75bf537f28447553b821629f7131cd5a43b1292e73778c2d6d9dbe90b5b591c97aca2b648b79d598cfadf37ad26ce0a41331653df34f52b563825ea8fdc2741f8dcb7fbac3c2ab49ed42a5f14e6e492ef77ec5e3419bf655ef60d5a2f89a7fb5b5556abdd21942a7772d4935f4e45b505ed421c56e1" + }, + { /* i=2862 cDividendBits=949 cDivisorBits=212 */ + "13e70f6cf60265d61007287519e9971a7638c5e2bf63ac274d3ffa150c4b262a3964681cd6e9eef709800a83714e19b5e4f17610e2e3f69e82a600432e7f41e2056b254094d30b6af5719f0cb2fad3e01aa30badd1142a327fb63f77c24f9b5af49530ec15eabfc6b004be0fa0440812491bc61a019da7", + "06354563817df32baa359952c7238e2e11a6dd3598e4a174be6d9e", + "0334b687c645ded8213f047997d1fed28af0b52ba263f6b6ab862a09c3ed6cf310f81e53c1d5ebd2e5a7c4baf9a27bfb7971c3782cdb69d5ccf2c61831b682e292823969e7a8f33002e5819b0c89b775ca6c9317dba42279bf3b8b6f10", + "0398deed66310cc66fd49b8ba6c6d14fdc38f0312712854dc941c7" + }, + { /* i=2863 cDividendBits=25 cDivisorBits=2 */ + "01aae25a", + "01", + "01aae25a", + "00" + }, + { /* i=2864 cDividendBits=1563 cDivisorBits=559 */ + "0189d93206c0246d6f9dce5e1752c90dc2466e134c3e95d3ff5dc606d6d207fda6751adfceb5e10c0a2121a54e7021ab8fe4dd06993060f2cbbf51276fdd37d22ebfa6974b0da6c1677312dd76cf2ed42c87a1b2be78bb0ff62b27574ed14a1f28cb0907f13c402137bbe6b14af67596aa761e25e440dd22456c29886c68e2f0aa067e6ab91b5a37f7365595765af693f5179fd549c030eb930812077d3f2b4be0a8cc9855d3b364b90f9d031771c9e175c503e6ed57c40f5d37a4a13268a8c1dddad46e", + "0cb85b555c351578ce01a94a0375f470da191b308d2cccadc54bc64091a1771dcd803ae358e905332df60c0fcc1d091d91bb34fa93fe1bf22187726ccca6529f0d3dd3b09165", + "1ef66b68b21b22e80aaae9ffa88488973278a57a0c330d8ec67085e138f53c24aa44f258849dab6c9c0ed7210eec44ad1ab2c7679e6fe8bc8d5a9538a4bc4adfe688f6908b75db386f7946eb7c7e8b90b8809df77eda62032abd7784a75aa4b12e8d797d8e80e1d190e8d7fdf4e2d3f1865692c35b91d5fc951dfaaa8304", + "02a42799356037971181292ee2228ddb57aad66833ebad539086906c40978788e4eb793bcb602d34b3435eaa81c0456c7863d51beeb395afe82926511cff70508dc9059fdfda" + }, + { /* i=2865 cDividendBits=421 cDivisorBits=158 */ + "0624e5bd6f39ab933af415c7baf364c30632d1377768486fbc71c13a189871697542a0273159a2b2ebef2ac5c2602a66960a4dc2be", + "35982a4d9da27a1495eb0d525d13766511f58586", + "1d5921a8b5dc3fa906d9f748036816fd995fe504e8006dfd3612bc15098616c69f", + "193d87d7d4117bd18f641bfc2f6df33860063084" + }, + { /* i=2866 cDividendBits=3152 cDivisorBits=2875 */ + "e554ed5f68dbebe76782c5fb5369aada638001efe3641fde3b2f4d9a61281556263fe9827d95098c488504783396097339e5ca3e8b260d1487ba338090dfd03821b9fc7c91293e97baea552c7ab556526c19c6d60198309e08f4be9175508c83836d2d2ce96186443901059774ad744078d90111356aba9cd21873e7ef01de8c2d82dcdc793fc5efc5de0c6125b30999c88b9e83785ace43323909911449632f7831b34cb9738c81c5957fa4d73e59cebb10a96ff0c61dc41f3d0d2ae3e4f847efd67a2e4360c97f0b33bfb0a0c3b03109821c73a05fbc094d7e518d2416a524ad0c4e140e281df7bdd03096475a5f1c3433ca49a98b6e4bf36217842bf012795d1ff2045909abff87422b5c8e3a24328de58cb4c88a1ecf2cf65187c0615908cff70d7f153082fec206a369c6c95648c5159c4801606988a7e49294f975ee58fc86a3f95966cd163043a8701c7e622a95544d46a5177a2743de7ee447a9b85fa575fdaf739f4010d8d5c711fe5496685123d800ab484535425979861a0e74215503fbdecf195dbeb6cf", + "073911b702db17fa3c0b050ef03c85e54d6ba7a2350cc42b15e9465ff94541293cd9b590bc513f3f396f0557b981c01f8334dd20a260bd303861bc9b363d61768c88102a211154ac5fac91e6ae61407a7dff5e5c439bad9d248b591611548c21883d27e9b4b5bfbdfbecc87c5cf21540d1f409442681673777b123e5d1d54ea8ac136f4938f544eef035e35a4465c68cf5663d5ad96a8162e7bd2b197c6b05e86b3e3686b46af3f2a38a89ba49d108dabf4a3da039dd5dd98a07044f7d113b55a374651ee42c56b323df806d43f8c53348025cade691c7851efc0d45541dbc8364d8b7deceb7f741b2019bc717d828fee96938ce377b79c433995cafbff61943860cb737daac9ef05283e0b542897885164c5af6b53d71dcb68952e10131f04c15cf3f6d361a7cf5b917f70c1d9bdf7b0f6a342c005d888cd194fa8df48496686e19b3aa5ea886ee158033cec3b5ef67dd4b0d8518542bb2d0bb7609d4b52c7cf59d78e61d3311fd", + "1fc022bd75a7429f8744783005b34642651b2af042715b44f9acb9fb7ae9e8cdb3a967", + "023da5c3782b7f40cfec93ccd9bee4ac80fba7a12a1eacc72cf396d67c77e2bec0d900e4f1c63e76a22d608878bbb9d34cb7f070d2e78061a593dda8ec8795802a831092a7dfee47a7abf984ebdaddaa66d530b821fc116e4c2a699fe49022e4293a61fcca6392814938cf916b23026d6ccebb653b1da78a7bf306c93fe9002df1a707cf9fbb91a6d737c4a867f053c5fd2296a8e54f9eac067aeccb291fc41b5607c4b456c6280c77c105eb8c0fb8b5a3a2ac3ac3e271c206ba51cef548bc1bf8ea20809ce8e2b0889ae4e416fa67f2d694d32d7391b871aba453c7df80546d2ddd1d2fd881a22d77e6cf57faa494e8895acd9fb94d0d5273341390633bd3bc6374df58c970b19e67de96a91811fd5739c988930f220cd8cd790b399e9ee37794d2e39b8a0bd8d5cd982e8bdd4d35ec9437fd29bbd0254bd5a770103516ac9914b9274630e45d258281da2938bed64798aade185f0537b62ffeccb3d5b21fbfd3315ed7ba6b7504" + }, + { /* i=2867 cDividendBits=318 cDivisorBits=27 */ + "1da63218e96957a5a77ab555368d7c6488e5a7227bfc33008148a9acf43f31d8af80bcb1ac1a0616", + "04f2469d", + "05fe7df1b93dc3c59c2f47818ccb889279bfcddb1c126e5b33e6a1522ddeafafbcce52cd8c", + "c5af3a" + }, + { /* i=2868 cDividendBits=3047 cDivisorBits=886 */ + "59bf7892b0cf2c123d4f829462712a40237dd893aef1c99336e76683824ce720aa7a0bfc158576e3d25d398088b8be5bbd34ba4eb7f238b9c93b2aff698f4cd1746291fb7f9bb42172d43919c2c9b8b49149034564df5e18f06e880f92c32b7242090ea8bb0411e6ee85841a68292be2ace2a194e0b2c9e2bf468a3f840d59e0faa67393acfcb4684cb5048009d0737d9275638fd3f018b46262a0a0d027596f74565284e77eddc3d4d94b1dff0dba589d8e580dd0d90708015efd16a4ab89a36479f8079e8305238d0d77b4cf17c523ad43c8af338f45c9969eb82b67ea36e4dee92a8d9f71b0c277ffefc4ff30db0407b2b86f4dcc68d1381a7d9570c9fe23a91a08158811b3a54cdc514f8ed9b5a2aefa3836bc5bd57c6cdbdda7139dd2335876ca70f33dcf439f1c4fb0fc47bd39e0112e9baff0036937f78cc955b4fe9222a60f24366e3ece70dc9a250e20f895770e42f1682c7a63cb1b7723693927c2af678fecde522d3e05581d4bf09440952d33da10f735bf735c5d609092", + "356892cbfc3cd208e0b8c4b8d27f8adcc55ad3dc55f28fc38b6e559977230f3129616d21fbf8c216681240fae1325686c1b9f50a5fa7d0bb9351bbebe82762831350b59dd13d9558bacc4cbc6e526566884b467f008d5789396186b7fa9a01534664f787b00466911602afb788ea3c", + "01ae2f1238589609aef7b51aa690c5bab2af36c8dd157b41f62f7d63d537903ff6fe5b4b9e79385b779cd6df0dcab10041c8902c061f079e35e5e585d34ba8f1aa5fe3f86b6f088276fad35ce5b64eb6babb6f75d0dd54974c1d04002d39f1b1f7a9ea09f9b9c402d8e4fdd5a157c3cf6b636e37a13095889d6189049e616dfcf9ce625701c784e0c0f05fb3a8e7afaac3bcdcf921c62ab5a065dcf97aa50a19edb11748c3b909352869be4e6453fc0426691f12f8fed316f9b692ad376f9d85938847ebca85276cd320b03c256c6362cb6f973392455aaa2825a0b97859e322c2e2fd3ec14f7847778d35cb9d9ddbd4fb3fea9839bbf0cf3b85aa7a5a7cd06c3e04776e2714e6360bf7c80b57adca", + "1697fa5c2c724ee67b4f871c699f48126c53ceca53cf627ec9b33a137a68a1f29507874b84c615830b37cbbc6bbab5f66dab1c2d67dfc00d87af0b051a801ecef1a3119dfea90a19dd9db6627debb2f47c7610fbb49f02f45bb8858c18c74c364ceeec76657dd52e6b7135d6a9313a" + }, + { /* i=2869 cDividendBits=3755 cDivisorBits=3079 */ + "045e60b87117a7107a51a12006a494caeacf8b54f9fd7ec6aa7640660dff5307d29852471520ed42a76d9af43ed467e43fdb0d4906ebebbd593c2bbd288db17dad072836c01bd0c426ef09ea9d3610850bc58a6d74f7f963173c1d87a0457b78048d3189e4567e0b59e8f6acc042195f6f98874cd334ba3288a4bd4c5536c6de2f82aea16b90a025167e2c037b4d3278c2a91957a3bcf60f4ea7bdc2ba98f3210c294c05109f6229a52e94b83f7157ea402c3057d9c7e039f0c7621828faf8a011dbd1661c923f526a62de628339d73656f9ed053101455bd3df66741df097ea84a110fb24e8bbfa34d06a9043a822184157b2dcd3db531d373c1aadb0662b8c9505a0d54166c9eef3e0de22dd2e9c86c38c8b7347be8d9e9380e0bfc03ed26fe6386cd6d2064453c9686b16c167be1186f755e3c3711b7d6a65053823c47ecdabbcab21c217e1b27bf9e0767232d46cadfdef70a8bc1e616403c6e6b076c490e65bd7d2d523c5f72d8106ebedadd7dd3fcfab1ca4b91c04051d15067c67c193a62ef1714f5f6d6dcf6933bf8893edb3a28c87b0252fd100e03c37a3582a3c2d396c6625f5793fd7f673f1f6ad6200b64a5f1d1ad32ef10f261dcd9bda8182892a3a0b0496869e258eedf11af3dd2837e2cfb733691b", + "5f9be1b41619f7cf1c6ed4597f747396318d530fa147801c326371a3d8e351e5c5d9db03e1f0dcc1785054b8cdc48d9a7a952b5ab4b8de8eb33f3d607da73f5a10a1f1ea100560698a872772707c167487d85c6ab1b3adaa552bd1b66f4e2b42ecd99ca82e1046baf86436a9a868dd63ba122bfb8a0e0dfd6279a358a6a5462ee12d3bba09e0abfd767810a9f77149204992579cdab8998b11b84321857847eaf3eddf91e0c0ad7add744062b006b137833b0406cb69355d526c429331c0f5960273f2720004b2e557e008653dc2fc486514a7c7aea407add73584b0c2e2f68741a80bb11cacf67a72ae88892a69d9f5538474a590102669e4a6c00bc25487405c50ef401561617f3dbbe6dceaec10b43b9031e8e2be0cffea9c46bca0eff357021d611fc087210c558489b325adedd3c2fd07e2c2ae6f3ad8a0cb9854d426d4b8f7e3a891cdd4cb3676624a1808a873e37cfa62e8a5419f2b59130ca919c7b1fe9b240e872d345b7eb9eb3eaf7f4faba4c2b969845c7ffc4f71a0a73cb355675b", + "0bb28a423dc57e994f8d335448a520a803b8d20137d80e20dede2a31f163700eebc060d977513d53f398ad3abde4f826f998d38403cdfa31e96a0ed4225878286022f80f0a140ccb49eddf3bb399719ae12ef660ef", + "4598525fc2aa7682b3ff06db379dea78dfb4f7393e535a55d4b304bbd614b465483dc60e6426f4e5eac139124001cb6d98ee0a7a15c61baf6209a675166f09ccc797253587939aec5a7e0bf9935e0da61da022e4ff5a0f2b7cbf213055d8116f4b7fd4c29686641486a27d63d0e88494ca06e841c48cf961bd0eaecec2a20483b1f58422208e34d31804c8d6501ca062a2284c1c059a1fb5f989a620aaf7ae6dab0fab15a7844633a1c9f0a543c70bbe5b834222f39df0c5b17d8cf26d8d7c08b3d57988b3ba93214c59dde42fb1eb15df012e033e84824a90a94868b88690b4a7fb5c8faef5ad63d6ff906535b6c2963e9cc2aebacfbba2df83d62bc0a9c0ac25d4a5495f0620442095991abfe7fc59ef23039c009a3d999b057e8a5b1cd183e936fca255f01c7dd0384acf6d016f9ef002e5cd7e6defbfbbcc87dd75ce1b20a5cd7c0ac812b6b8e8169b718d7940e9d26a520b49068b797d108336dd0bda62ebf8f274b697f53b7467e921a14bf2baa2cf11f880e5a99b54378fbc459843cb26" + }, + { /* i=2870 cDividendBits=1941 cDivisorBits=971 */ + "159cbf94ac3b6b8460228c867b593de9156b8e5effb26691dc79fe3a98bed91229eccb92ddb935f0800f916deac3e17ec4760844dde55680114e222a0375a475c7b4334682a1d15c012f00b0e219c6c668dfab6e103530b1a3b79f5c434d7429b351b149c98def27e3da4faa7dd6c129a5864b647092983571d6ca32f6f355f7d660fa4034be6dd0afed4bd73b7cfe6827e0dd5860339405caf1d5082b821c5799a99490f46bd3c8ecd2b155f8ef1fb4c46a717ee7e065ae410323cb1d7236f30c39996c49161852518c1f3001e7751d4263ea500f37c61291edd60233d44cef6e533ba5fe503a73a0e8175bcfa35920cf0a5b", + "026f03b3881cbd3ec12350a38dbe456a6dc125a92a85301116f0f21f404df7c5e3ee7c17f94360792176d93c4d54e981e31e2fb33bf50330d09b906198368a70f74544285f8fc5b1b13c3b75e4f2ab0465cade8d222049dc9b432665790d059dd9d7ed087a8a23690906eff98e796948c93ad8943feae6f4bf79", + "08e16fa66d143b7d2fca2c975d3cd30c97f682a585041265ccb2b8fdcb0c22a6459249a815db9a29d4c831db677caedcc09e11215f8fb3a16a03f5951498ccb4837ecd8bc87dd22d48299456cb57988c24637f99aac96726bcc8ee2511257d6ae37526ca3f709f302a2f95eef66f55edb9acafb70ce340204209", + "023704ad5786282b5c140c810ee3966096663c820ec92d4dbe965f2de2f9b215b9ef44f8a5473c5b96c9548e07b5e7a5d87a7868b48750ec1bb33c2ba290541b4f28058d6fc460c85db1632d3c3e24efcbb86abac1476768b26b471c5fe9fe0962ba1f1414742090b89f4958380f609c5869f48651cab9b71d1a" + }, + { /* i=2871 cDividendBits=2279 cDivisorBits=463 */ + "657fc79de1820321dba60794ccd0af2e1d74a8e1017a74fcf0b6c014733fff357cbf65d63b64719fb8ece208ffde1bad81d61b88e5866c9970dd498a1112c0616541eaafefe75c0a107fd663b298982e034849be955eccb432050793832fcc17b7ae5f8cba76c4c6f38af75630e80fab89d29e6aa9996754ef54f24095de1a3de0b5ab172f603989aa893d5bd1ecf5045c5e0271467f45d55a0425a10b94b2346f589923a1bfcff31ea40a5b8cdcaae5e4929f5bde8436f130952fe68d7f39b800e10fc32e07b04addbc5240324f1005349efc5ae2c2028b46ce00da36b95612e9a21894a8eed347d618ef6d28731bd6312cd45476b28c3097e55e8a004196a6fa90b81424a0e530b5b51460d69f7a5112c2334d1d65a25fe52aec43fe", + "7c057c5e951b2e95fd4badd9b8b619411a8ac27e3472feacc2d6ac0f2ff36f8ac200732332263dc2be77c53e125dd6366f8e9cca610984078c43", + "d182a9deb14848e2334a46c3a1db65dad854f3db45837471780ee3a1d495807ab8a05d16de63ae0165d7103255fe08526292f5b8d1226cf35efb5342eece87ab0d1540795fd33dca8253bbbb44e33c6ef6759c902593ad9a15d3bd8424074f275a225b93b4e6cb859f4ce8f11a262c93f77757e439d14cac38e49a15bdc6a28f23a9cae010476c52c1af92cd23d67475801e16d3d55e8f4ae7d5593cc00e382ec7e5d36204270e25c7af5234eaeff0577d4bfd303999dfc16c18199a226669a4841672fc7bfc264f1ee15c7c1d4e7097598880f0212fde669385e1db51cd37c379f0c7", + "66399a96e448be787a8c9d843e868b21d9539fccbc6674e459d26a4fe8a8eb49fb525176535d683a9100cdea76150f57d5a8912314eb20e46be9" + }, + { /* i=2872 cDividendBits=687 cDivisorBits=208 */ + "3db9db2931c1835f5d2ea1c590b6a4e2f72bfd9d518a145e78268069e127a5537ba37268d74a99daccb504b96dd074c4755849630523c043c27c8292c9ec9ead4368c6b818abdf0c12f0be4b82c5f11ba2bfa120ebfb", + "a94a2f88478a353f18ca865d92aa5c595cda853605f5ed296806", + "5d5790b0a15f451cda2bcc01edf6fc8148079c0c14347f679c8fbb5d27d239fa886d46681d97120459dd008db1944d5d03e7f9f3423f4ca79c152fea", + "11e286119ba8113f81b3eaca9b8c02e427f8c291b5b70eb0bc7f" + }, + { /* i=2873 cDividendBits=642 cDivisorBits=539 */ + "0377aabc5d4223b96dad175a61aba0e4a091ee8766bb3079ff653a434530a5bce7bfbafa1087c1c1988e22d910c2f54b33b18f2a2adec40f28a1425aac5f55b9abeaf3f2e8783fca63b02e54798c55c8bc", + "b6bb0a8314900e7218cb24b3913032c759456734f768283a5d55ef5101f89eafdbc14ee6ea2f62077c2dc3970ac94a9cba6912c110e8c5351696f439b531925b9a2bea", + "04db98183111c499e0549287f38b", + "3cd7fab797714341bc25a1c5f0f0629edde52cb62240f924429b2402b0d6399ed3d4faa8baba7953601c193f1a81ecc452000098b3639980fa6ab4647518eddb8ad2ae" + }, + { /* i=2874 cDividendBits=768 cDivisorBits=688 */ + "cebaadda0ee68307b8963bfa84b49d21bcc65dea821b31df74e0fa5a2f57da60ff251b45966d8caa05344f42067d07fcc222ff20327bec0cc33d608bc8f720a7d0a7d5fe54301516a7747075e491dbdbb7d874896e3d5cc726c657c8af1359cf", + "746716a87924113d03d283e02fe1056d93a4f473fc59fe6aea24f5a11dc163167fc8c6705ad9f7ed3ed795dd1a99b5ce1bd297b1b185c698d0e4fce6df39a176f293f63eb3dd9fd5d5ed32fee4de9ba2862b2717444b", + "01c6a6d4f0337cb2ef0552", + "4659478d67047673e7c30b325eddd7d80202cb9bab50d97fa7180be8a68e419dab02cda56b74dd65dcb611c034ba39ba41317045f2b1d6a1a2d49c96952178e0c796a8f60e76284d39d8c59a9bb92870d4a9cd4502c9" + }, + { /* i=2875 cDividendBits=1533 cDivisorBits=616 */ + "09dbf123278a78b4c67b54920ecda70c4d4e815d2ee79ce609736e932458bba17f63f2de4c2ab75e7fec4204fc8742fe62781e25c284d7f6acd2fe80df1e77200b427c232557b77da46e66961905420b4c9733160d4f4f083e0c8af8875bf03affc44e3c88dc7fe634de94ce39b043661a4aac3e2f6c05c7401f07c2c042a5c7308af6cac4bec9ea3bb6a161e00a4aa5aef0488c31d364a3a924be035db7956944636d8b1a4c17a085cd5761398152173c84fb0568906fe7242f27c7a7ad074c", + "e7361d05f65ab958aa43b46360f6656a5e237058d6d11c731e3f9da8526948b09f4578462b524f6e7f4c8ea44ed278bba5d8aac9e02549a57ab5e625a99760165361b3f3c77bba3efa79eea73e", + "0aea89e490c20e74f323641d97b175d542987f7421730bcdd87508df5ae6c2b16e486590a73d5f7c96917ae1a04cd967f9774020ad5458a823d2de54b4417cc63f7790f7f439a43826a6be5fc7d8396a8dca1fd81f5dcd44c6c08bcb7dff48d427fcd268105612468ba56a01066a9d1f4b3b76", + "b2ea840945839429738ea5a41f87e8170e315087e990cd781eb45986d7640727df7c443befcaab2f9ac986a84855467c09dee13247ce195c6a3826b16f6979c2acce16f53aa59c8a07f1f6a6b8" + }, + { /* i=2876 cDividendBits=2349 cDivisorBits=1618 */ + "01cb78375d3c8f73ee787366647fdc759c130afab5efa9fa94b01f08daca31ce1f9ee4c67a2dd317a041bda8dbdeae29bbfc35e9e29a779705094feb10f135cbae3b56af0bd5c050d858bba584eadb7f2a0491b4fdbe66f2f7c228f11a7c19606bf771fcc3ce1b572a19265189a7e43d6d6d024265c5c5ced94ab68b3d92d5492e6282cd2dc892b6168652b9bae41d98aec7e1629d009dabd45dfc1891d49d3aeecbcfac4b48cdc92cbc79d705e6d276c82f81d6f9f9c3d929b2bb83e12b096ff17cdf91835376b78e2c0f361e0d521de1c5abc8b6a0e968913b22114b45c94296884c4bb5cfa06e89f35bf90703b334602fabb0f5548c66fea61e466851f5f45b598e9c27e13348d59c31ee6a8082b1ba9bbedbc7796a10d8c3c2771346954caa783f9493ff", + "7c6ddd3e2a2b526d2e93db88a0d064700eae80bd7ec7a29f393d470b5daef463bd648de0081096ed0c50803eedfd4c47b24cd3eedb0eead82c9748eccd090cfc723b0ad3249392b2e4a34c4db792cb8b4041cf36675a271ae8f815b75828232005fcff1e23ba0449ea2eac3853cc53dc6a7782d06e9eef08b6e337d766ff40fd6aef5cb5b3929af1155536cd13bdaa2b135fdf6532ab54b26b42cf9a5f735eee6d354dcfed149a9df2322767cd34964601d3a503fca3fa70401134cfce4fcf3e15b7f39eb1fb94599332", + "03b14f8b6aa4c92a828e67d121dce7f4cad2e7593b8f549aa1983f0296bc0bf7a4c2b14243b111bf3eafc5a751d7de48f6ebc629c9eb0db41439308ead40afa19e7db8993f5adabc1b8786fe53f276e7776807ab63809b4df9f6ca23", + "5041e48483ab9e0e73624f391b64bbbe328e1523552d813cb5354bad5302e5610502e21f4a31c3cf292918accc8eb19e5a75c5f8f92e4575ff5bea7f79e8ff775fed9b848ba8cbea3676b81b336b1e088ecd1f92bd24d7b9bf6a7ff1e5583a067c7a5ae8c0c8aeb3dbd23a764a0440bd9d8778835ccf73395210a5634394ac3c61d5146e4884fa1a4d9477e68abaebc42a1dc5a8b42f91695077f913d85b93a627d723b3540c24eaadead96891b8020b6a3b714cb183ae1a3a06979b807f6b4a22ae890d97bb35240029" + }, + { /* i=2877 cDividendBits=1557 cDivisorBits=342 */ + "1bd115b5c2619b0ff6206cae005247b2fef8753223b7cb018db34f1c19d126cad9d7cba92cb8d2e7e0eb066361a20fb9973dcae6838280226a09dddb1704dd8a8d86cf9e1f9013723fcb2575d4bd6df6756155c6cdc5971861a4861e9609e76a5ee34406b50686546f253b69d8e495d5c0ed9eeee765bf2a7548583248f143c880aa10fe7e9c33a119654731a2249816d380ee170c26d7bdd2f3264857062d1b964d7ffd536bb427b88b3372e9ae8c7de72c3bc3ba76886709bc11776185706ff4bd6e", + "3e099b0360c800f5c7709ddb40c73031f6b9416e4030e0513ce66c10f4703c21095fb84761239faaae4174", + "72c967bc80c85b7bd3cdd69ebda3cbbf1555c490abf64a8845de35dca9f74350319ec68c64ebdb00c9856b7b59c17cbf72a91c9c81bb1e54446d63403eeaf7a3b6d279c36bfb8cee57518a8c50f4dccf7291eba44c84503cb4544c3deda9af953ba443b3c12669dd5171c640b49ef18c85b4a7903bc011385c110c7dc9c364fabd8de952fb8a7a72b664aa11ec0c7454e67d86b5d2fb4100", + "3a7de22ddc6a0478f24f6de76d89ef9e135f25ac1273b97fe307686123cb66e097934bd4abb18adc9a496e" + }, + { /* i=2878 cDividendBits=1101 cDivisorBits=276 */ + "191188eee1241e8db265a75e247c1cc5385390357097f6c2db5fca5078547f7cb48685a9f8147ed2511a7ff4c11054412a451831ffdb8d399ab8c80eb6ba955122c30735c6058b70b507842c5b8f555c4ac20eb504bdaa07594f28fafa2819642fbf3218e0ee3239955c736c10256235377f18ed5a55a0df27268f292a4ce99363bfbbf7dbe369c4c31c", + "0be7e7dab376336404989a52c69099988887cfd0779c1b6a84b8f085db0bc76b3d3356", + "021b05b136a79df4389ee8567a32db9c2f32592832f74744fc4488a0d2d28a023ae442c789bdb7597f54521eeee93a51599c0be77766a25421403247aba9c842851ba42cbba815964c7ace65666ed474c45530401a4455ce197d6fd9363d8cc8300fa95a486591df", + "07d19c0224704507450001b618c0bd9a925f1dc6ff0efcf8b6f46118344d9de4735532" + }, + { /* i=2879 cDividendBits=3906 cDivisorBits=2436 */ + "0201c1f7b0980a6ee31599d1edef6ad1aabe24083fc9a07854fb80e40346ee8db85f35062c342ccaca926b1fdfad77c350377fa53a8eaee0326e66b06b65abfd2f716742f2e6386ec784a82ee48496d4e1ac65543a45fdb149352eeef4afbc2bab47ef48e29d6e8c7a2decf7a476d3d6c2847bbc51e34d0f26acdb830f0c632d6518f86c97e0c2f04ef68141b075fef7ba3343ec239d4279ad396bb7a0fcb33facec12902407435ecd6dd111474afb9d7637fb3b0cbe14fbb3cf519bc0e0a758caa0f524885f668a0eb452eda026a6a459ec03ce319fdcf079822c108db9d9e02fc747e6d3b106925a777d46adce942371427e5cb10df43f9b304516ee62d0cd923ea5b512ae3d5de5ee53e8d8550680450b5a56883b8ec0e262bd63ff40f6088c1ac98c781df3cb44abc2d595e43db05a52bf7a37919bbba2eca73520b8bf7dbb7f8a380c820281b046d69d3839923a9f91e92574b9cc78d97d0b3b11339be0f01b1d758a41b0353bb260eaae69c31b2b654d69acea27947514987d5fec83ad8246633c5446bede1862da1369d1aadc73ee30bb3995351dfc4092d6c3627dadd43d2db7c6222b7d00e35a997fc8b19dc2be71023c8d92051d09a1d93beaa129ddf40cae1821ec5290972f71d53287454e29a4cb7e40db0c830084ce10a7eb481a01b13f9d317cb5ea", + "052324977ee128093b8c37eed731844eaa2327873b99b98e62c2a7b259a935cff810ebde07c854418d7872684a2d9ccc36ac31c38b24d436aa0001960a199dda90dd6465be877d11dcc5f86ffb6bde24e6b653fdf47d8e2ae527f11e53a4cb3fcc2996799f9793bc323d9e25730a00d9d735271971f20ef44cd6317a7623db67c30da867303c1f0ff30713579813c035269f5b7294b2e4ccaca023ff3bf769fe7ecbca63ac84cee289c75d9ddf2b6fcc820d2a54a0662a3e176f4bfcf6d1138c6ebf4d7f8d12866a5077f6822fbbfb523b9918b967d4a2e3383ba59110f7574f0f0d80ee6af52350a79f344a1645471003c1cb0c20a4046768538c2251b611c2784fd04447f36b07d6ec82b99e6c241227b8b232dd7541d6b942e6cdfcb482a25d9ac61645119c56a231b078ba16ea5ae5", + "64017e67404bcac3ec852e05763f862c9457341c60866862c0770f54368d580176c4c43cc9d639355367707883fefeb32ef0c25df3691d837146bea0aa44716aa556a3a2822216796a5b63634ee03499c868639dc7a54fee9e091997b72d4410eba587bbacd99b239d6072f1c5691cc98f3672155ddd743e25df21d7f24aad099511522072e761e987e5f5c8abec1e18faa97ec4ec676502d2d38d33d2cba685bb4e8e9024ca72e1dae5a485773d915748b0edd4fc04f4b2", + "0398caacd129f131b714a644510e9533302728b7e7e7f2cb94901ef07c845fa93625ba13057836c428f7d5516dd6731020a0c8fd414d246d4cf925332fb6303815974fb34fbfe17cb127325902218072a17a41a3d7d9f457e747f2b706d620482f6e024a1f210264da804a457712215559fcad7f0619afa69cf4d2b065963f9d504b231b0a326de93eac4d5400ba286560654aa646acc1ae1d1d49e6b1826b42ef46cd6e9375eda09fd3869a6bde730059e98be6c14f4b230155f8bbba4962eb1439e08b0faf8da98a5f756bb200fd29f395a69eabae83c8485b7a519787461c0a9553fa31da6202a00e97c846dc97abbcb38a6862c7eb07e4bd4ed8d301d12fb504d4f13dffbdafec599054a3607aa6f93e3ecba83986819ba32cb29aee43047048cfdea5e436718a5acb9c9b0c533eb0" + }, + { /* i=2880 cDividendBits=432 cDivisorBits=192 */ + "e141b4f64d4c31e1a0d3fd3afe16c6005d893d170bd964881544ecb4c632b6689961a7ad3ee541cc3851ddbc1d5d10e5201aa743baa1", + "d1be251503e27a06e61075d8a3e5e6ba21fd7265daec8a30", + "0112ef7617dae5bdc854d989d6305c273a6e125a1a4fafc440ad36d16d3f4f", + "b64dd3ea56946b8983f1b287ecf1a6130426d823dbd345d1" + }, + { /* i=2881 cDividendBits=142 cDivisorBits=103 */ + "2c5654e6487ee75760b06657f355e53d676c", + "0a7ae77af84457d38cf823396b", + "043b0981aad2", + "078cbe2796b80a9e7d424c3fa6" + }, + { /* i=2882 cDividendBits=263 cDivisorBits=202 */ + "06f1b624b7a92dfc6ce6fbc4df24e3db8e4880a990e1fb1e47cf5359883995e82b", + "03ca4fe992e598a620bbf898d9c75f64ed5e642edd2c2714b1c6", + "01d504ae4698670c", + "0125dc12d26dfacc64840704a66e091c19b64aa76e435f86e8e3" + }, + { /* i=2883 cDividendBits=2243 cDivisorBits=736 */ + "05e8a9a287a6178220870a16b06d87481a4c8d2edc71b16f2442efa55695f14c7479b458319d197e0899387ae0262bee6a4abd38cf5110df95a52d33a68d71d71e95c7136811255c72b39a97cb21f5416d200eb735ff4a256a6e1b4228b0708e4f45d77590d8c048adeadcf17203cf7fafe1f364e543c90dc5c001c9046a5e982eca0dbc843b4d0809ba08f40684972d775232e099e3a3078b2a32500d2bcdefba47e52e267ea14fcf04c25155a55d2899a79cf80bc887382f3289be2068dd30fcdc28e12bfde6582d0c5e14667fb54416b076fb515ee19ebb67ed8152033cc937efba2dbe3341c97d7b85618585a40d2034225d2b49224c03f1344d57edf3ee35b2d9134dbdd2dcd0970e3bad3377103e4192e82a2ecaf86d", + "4669669d2e562017c2e1fdb8bc87e6d7a5d51d45ecb1da5f5da3d7f5beedf5848960d1034ac083f70998afd737a379c66da1d0cef63d31c50d4aa68b7bcc5b45c3cc62e95613e9ea13567298af1cff22c5f027a1c26040414acd3883", + "157bacf91c980d5c2cbfe4a06009d25d9a1f417b2fd0a30769f50666b7400ef803050fa127e2b2139f6e4a1d14d4d319ed8152b279cd4832475d17d795919ae9c59761a7b5113e152c1409c871582836f776a09d78e12fb278f60ece944add5efe087d63c51ef38f9873ec556aeaa6b90f1c21d6ce755e90cfd6cb6a119df9f194c28c503f567fc4ef7df16330c4d05f73d2d151498d87d4ed244879b229fa834703fd09df663bebb36388f4aa124a0eb0d9ee93adf185dad9ec0e797d", + "3e61d7bedef9edb03dfb04c1b27ff5ad90c93959018e4d651419c1635b2880151243a8da25f9318abfe01ef1fdfaad30e56d28ee98452e367e40abe5e78ad6c4c13aa76093a63f5f5ba97c734e7da28133dd5b7f4c89ef90cdb67576" + }, + { /* i=2884 cDividendBits=1497 cDivisorBits=995 */ + "01581730f1b5d5cb28720610ea44a833d05e367607127b4654540f13439f5346c3a7fe87593362af8dfa8bfbd7939ef7e08bd4db3b73fca2fe4bc812ddab9f378710c7c440802688912738780e8abe92e6a3afabe5bc07d223966492ab5347d5d81c51912bf31fd82a9c9ccfc0a8c68aefefd3d0a3f86d7c00f4222e8dea2464a4eeb7b2026cd5a70d79f584f4e85526237aab2bd33f0754fec29f79a0ffd71ab0d42e6bd7e4ec132a362294587ff407bff59089558d7e3951aabef0", + "040910096f676c905f3d361b00db8b405237084224de573da828d9050f2d478c37ea565903b4b2ff53099bf0c6e7523abfdf7fe39b64308de32cc1045d5e00c5358f1dc89be8131d5267d2268f15968163fd52e36924ed949e13102d28d8a571c26d3195aa35c31350cd4ad06eb199c9c1acb5d138b10d97b165d4ebb6", + "55449c01d81c34965391f38accd86bd650781458a5c595bb9c7272ecef4e9b2a470d06be79206db4e32685bf015587faf5b0f457bfbc8ef8b2ab7ee539e88b", + "02674a4ed5d0b9adba496df9c691802b62f7fa30b92fda0bb68df5075b3525c370f110c4a0fa91b20b0aac4cbaecb1299f63f63c3078a0827e4dc8b16d2a910c4f0ea0bc92126279cbe1ebf8cd953c5589c50d966fe18f140c441c9c6061488abbf93346b8c89f0d051e0e93d31c492186ca9f5fe6de51a3c7c7ebd31e" + }, + { /* i=2885 cDividendBits=2202 cDivisorBits=1285 */ + "4fcdffd532ab8944187493b224cdaf965e5d83260d3c5f3593c98a32f2341c8113b8392589ec765cd4b87df82e1214b0cee6b9b87667a16063a593b4c4b67088601cde6f8126d81c851263af3633db9eccd04fb6ee33dc4f09aa631bcbe4979bdd8a8f64a7fd18203f01fc392f5036010ee3611e37f28da29a97d8b179d858494c23f60c4a2e7f0e56a10839e3b60d7c8f5f35a4ff0b960fc3ad9ea5d21e3fced74bd6c42dac2fbbee4cd3015b658f9d73cce8ce541922345940b6f581fd7e65889e9c038d427aea40afaf903ffbaac1eee9e357b3ebe961d22c1b836303f7a0feff9f409f777a712fc8b9ae785602b023aef08e5ac269b89d0477b8383e3ab2f90e438c8d626c2deacf0713af2f8cd197459d", + "0205896008af390794adc24b96024911089b0339144bacd229512c31d494194347766b3ec9b3cd76d6e0080397346e57a8e47c0b6826c8de1f10ebdfece6c3c85266fc0eb073d53cb3eefcc93270dc69481cc50c0132477aff6ef59945e7777b853bf50e447406d2ed78ed9674673ee8ef01dc9b51e64bec9f6912233100b9964d4059e11b189a7ca91a14ee206e5cef455795b22cea4da2415e19a788aae2a373", + "2779b824f9122296c35d06ccf7a850241f6011b8b8938cff5a0c00b5b475477c736d68b1f09a4a74031aef9e39136a6d12ab43acd18f1ecfedac12386baae9433c6770c6fa50f344ed863852568a5679ac9fca3af5c253291764df225c73b4e70a3b649db5a031c3e8e6a80e5dac7b546f7bde", + "34a8458db84dcb2c4c19d91a7272fe0b95c6fd7dcbae45f6d7d24316ebb5509d5b75e33ce2705d41962427c6c6866bf8e0641b259235748ed5eef8c01543eb49f3e5352efece3b0ecd61bfedb3c87b1ca5937e8d02bfd72ddcd45976253d23305e31a16e720b5ad433847a4a4a9c17c95ac6f7df6bbccf07436c36c0fcb75ed1355e03730b21aae7a1059ee0337752ee3e585ec29ebc19d09e1ffac621a846e3" + }, + { /* i=2886 cDividendBits=930 cDivisorBits=503 */ + "01959d2b169135544b8f85337d5587e741ce47a593084fc7801129404c76ced01c8bc056e4502e9e1f32e760a7b9dc46ca4dedbd3f2b2cdc8882139758243f01101d339b3eb3a3fd9c501062c3c6fd91ee305cace3f956ce7b48917dc20830383ac5d09f2e2e6db475addbc351985ea1b3f05a4457", + "047ceaecd082b48de9692618681af159ea1b03263588ca1378c1464fd22f353d268406af0381a285e6fbb341a7eb0056672bd8852772b02da94d98e382e742", + "5a60d4f4a271971b6fe6678d996923cab95a226c2ef837f44fa5ca4cc08c62774d9b64f49e91f07d7ed99b229a223f16aa15baa4296e", + "03315ec51b3ed5f3e3be78937294970ae3382901d63c4ce27c1787d84f2747bb1de2c4501a41d101ea3978cb5f676eef9df88f90afedea5bf825461cc953fb" + }, + { /* i=2887 cDividendBits=3564 cDivisorBits=2815 */ + "02020f6b10b1bf475b531fd34ed0db824f8717a7291570ae835dd3c20055d9f5b2424baff67c1c47c67cd2286da00e017eee584526e1f8683576d3e6b15c88b83883225e132d3b438c95c8b3e3f8bda6c9cf169b0ee47e77d9874c22391f56294652ba8e73910436f98d523cbd5f1c6c0b484b662cb59c05989dcc795be754dfdb304a7f9553aacaaf5f18d70515fd482ca39a0011d8f461be0d890a81d076f2894fe388bb3ae5b22e9c60ebb69794b69601bf3fb65f0969338d5801985ecd5bf4db6de0813f6bcdc89543d2e39b32f7391752b3e88c1802937510532d7efa64ffabc9fd0cbf95c9954b3c58d17a28009b8d765faf3273d7d0a458f9322e5e83118aedfe626546f46ba130ab2d0441492778849d8efe4fd4c92f053109813afbb95f270f3c2475497674fea98b7b6fe8ce374c1b6534efe06d8d852d05f09c2702c49ae997630cad858df5d380bf5f822d1184f25b7634b62b84a5517019ca7541ba0688da0fb7f874c98334827234cf54ebc0c543b023c304e6517baa0937c7c4d8d7e31178585241e80553ba3b158a859e69af947956c06d7f12bea6b6e1bda64aaba4550f4f01196dd4d41ee1dfbb214d89d8b12535dbc47ff04b11da", + "58dfd1c2e5efa909e9f6441d6b90ea4ba19f00f73ec0ff0515d94fc909f838269b58fb8281c89bf6baf0d25b583aebba30837bb53b413bc5e7641ca75128eed62b32670ad23ed1f8f27d87534461566b408d77f9ec2fce279829528083f4ba886cf1af2e75d40e0509e5930a143ed55c672e74aa5274c2d464d7ef856326181b033f7fbbef29f930475becd3f02210af85e6d7fa4f0612be9d37040d69020d543775518fce54b53e1aa0be7e1a79a7ec29326eea4ee0d113b2a072f4f3099dd012838f90e0a900a3e0469c8ff6744038a37194c5a2804b9ed2b5084edad69cb8e79a05d1de24b4e9aba96201ee1739401cce7ca9fa7fb78c4c599995521cd1aceb682073a8c1c7ef63e8b42a0e58fa7423870935737400b5eed37c986284d73003bf60d9bb2f046a0a5ed20a76023b8ab1c7bdc4c31e9cd5c3de206a86d93c7b850a91d46bf9ad71fede930e7e03950a2ad0684d7c67b3d8bcf7ed6c5b076bcb", + "05c8bc9011466aee77ba26a9d18fb0ffea586bf087e26c3bc76b74353ecb09f439fcab0497db3978206d8eda0ccb471b9bb7bfa804c247b83ede395e4fa1d6200d0c0e31b7a8c2d2055959bcc70f9a9acbbc5305823f0e9aa12bd975001c", + "2c517353cc0d1cfea4355667026cb941339e3b9aca22049a86089787a34078fd8fd84b168e72f32cf585f7aa193d1a7af54adedcd0c5255fbe447be2568bb9d21313d06126ac6f450805c17fe49f1854e075efc478e3faa4997398fb48f37a0274fbc08bc219a01a61427cad75de972f157fd8944d1ded8ff7fd99b09414b5b87d5eb8e3b2f950d94ff08a71ca0e54906e6a3b42652c63352dd8617ea6dbd9c57a6c76c0e628f7706fd8c01a3048d51ac7a5972e321094e295d06c2f3944c77d40229b9ad81204cbc82c5f67ac807ef5dbf17503de00a7ba4f509418862151ca2836036e402b624e1707b16ddae825233e513538bbc2f0d2550078d5f219016916a802d05b8ddcac428f4d4be4f4befb9a27e77fe106429f208e6f460ab21d2290573c0b0ef7f2eae29b039e7d72ab9138d889e7c5ba4053564d04d7a0a42287e3d2b6cb4da31851bcfbf6fecb8ad18ed093708b829db21c47e721c9a4b447a6" + }, + { /* i=2888 cDividendBits=2276 cDivisorBits=1798 */ + "07700edd2614b57e632fa51a7c46bd4571926b673b3bcf54529f21f16392d8c5a30b2a1074cf56b2c26953d22ff1df5c2f2063d4370e93f077eb48686f0235e9d5ad8afdd2f1e7b8a4c8b40c364062160dbc4ebf748cfa9de33934311f29dfcf2ce4f3230b9b943096359561e0fc2cd732974e82120c10ded79ccdf98e181bf67f5f583ff849867f750778bca75708fc41b262e7c0af4f526db4e2df3e817c2d9b34d7e833e4e00a24e6d30f4349b17028b1f767aca6f414494f301c5feeff4b99b16d5a32653f69b7954a51eacfb50b9846e7db11d2a0b0a70dc20c74fa429a7abb2ccd580ed294b51bcadf781e2a956f6692dfed46460c00f87d7a3d380c012b0ac4c21ad4cb11af0a8ec4a6f30242a2802b7092f0c7172241353f93", + "17ddf122d97ca651bad8234bd74282d7908859aded887afde3a5524e7f757e8230c16f3cc97500fa140816fd5fe5ffe253964b60b978d10f183f1dc308cb0ed79eb3738a71bbe931eaeca3c839e76abb00af79df8f7aed7a2db82e2b7e1db7bbfed18bbb7f6e1be2cf8e525d346b1c608b54d81e7080d93b4d8a852fba19526747dbe286037567344650835f4b87dff3939337438398b00a921c695090340d2de37d8f3e119b5058050cc440b66cead5ea7ac54b0ac387bcfb446f41043426b1b8cb831f2a8a1731f797bf06804f69bada58aafcc098f3dd68f95ae887a2deab8c", + "4fc72a1b34a0582f4ab7683b640523515a5c8185ee3e72687d48be35db512cf67d8a12b16e60150fc3d300812efef90d5045cd9b69d73b4d168e9adf", + "0df7f4e1ed10fc8288ee6cc0bcbf15c81ee812f69090a609e1bb86e864144befce15fc58fe139684dcbc8460a4c5850d80af32670a8f965948151e4e17e9fd4fbac9456da5b64dd3627aa469a34e66da52edd184436f88eecc393c306d426526acfd4a06b28c87e3df6681c0444c0f5cfc78988c8d5f88bd577bf27370843ee5cf44f91b47985710982842c335cf31cbcb89d71aae2823a3f68c733ce2b7230cdc7d5427f27cdf6d3cafa5923cf79cd7cb438c80193883ddf7343bb8b7a9b6ee92850503e65574c27504419d71dcc15cbbd6742a82f25101409a6299a43e63989f" + }, + { /* i=2889 cDividendBits=4093 cDivisorBits=2542 */ + "1643f988250a708c73d51888c63991c9e0e4722698973d3575eac3c55f933e441cc33ec73b46d2da23b7ba1638b3c15d65136d951815a7c79cbcc365f9b505bc4f92dd552cf2a37fbac7e48e07eeeda0cd4c98779624677491bd3cc5317004ccfee88ecf4c93679a6d9d97c2b59e7139f247d5eb05c14bf06878422a15f8bdf4067d0b6ec3c12bfcc3eea57f08d39acbecda6d738d99f7e023c955a03291957c9a28bb161aea41fe30b7bbf88a3c9f50a0ab04681acbff4b5e04c9a16c78f51329dee814886a55fb6d7eda64c67551a3df18db3d5ac26951997c57c7e46475e3d9a551ba87bfbf092f7b7ee0640a84f6be4498bfea2c61a38e7cc6a11ad915ff9b1a0712d934e06bf8991d44c87abaf75eb5e83486c659df85b5ad6d9a6afd4ed8707a761a5d6233c19761f099b0598c724201ae6204f876d5f926c1fc6a3f60405d330a6f91920c0c406a8df9ea3205274da32991fe8ee85b3037cb25728a379b8159863495ec57bb03cfc0760ea650dee6ff38063f88ce32b0f414d2a1e7e406d9e739ff25a4cffc7d1d0aa603f9ec127709eb740d70a1f32bc8a83c698b32d01052f7c0fc84d78eba04ad259db01e74c35f9f16b0b307a2bd5bdd9642b38b61a7b48a8fb36f82f6a62bfca7760a55fc72bda95b71ef279f88006b0d529de99b1a4808103b1d726b2fc9e6f670e80a47c2a31628ba9b05a8a5d31a8958d753", + "22e00a3f51b2fbbff46706c39310600c0adddd0574e738b2a77ae967e3cfa77af0de22277581318b7218312a40504375b7c19179f8bfec99e7a8e385871dad39ee0a915e5df9d44ecfb54e22f7dd1efec7d1fa376ec58bd9116394d6d25572c2252edf2971414b7515b4ff554f4b2b93628d2276ee5e945b7c60c0907c62445e2c0b12aa42c16599b087f966932a1260c9a2487ad7e7cd0c8f255e5be224ac8fbb20527e56fc2a72625d3ca957735f5f4c359a82d422cd271b3a16895a49eac0e30c3a4a825b97198ef333408e798b9e3da69dd560edd2f31a3345f04f7bb933e0ddd341275f380f8a39a3cb174b4041a74843dbb8f451e2c7a07403726ad48d12c010146b6c167de09e1ebd49c963f65319d655511e1eb7eda4e1691141b40e191b81ef99cabcd7c698f9edc0c96f92d3ace90318163cda2b087cd306bc", + "a3707cb63b4a77308c8a867a6f449ba03a87c49091195f790b25ae123a2ea8ff6a839b0fc04e31d8da509670f8bd9b06f6982ab9831bba2ed785fc49216ead2689c8c40885d84bc6017d57d29d61a2e2551f82a4993ccba2b4045ffc3617575371b446f2c9cd7e91254b186ec9b2b31e2e185c98a344564a7246e16c583352617566f0cf905eb4cb97b2641bd704621d942bbbf852a4026570d8372e37d0ee8a38d4eceaa39c6ca3f28fa672e27730f1cdc37d55349747873651d6ae83ae175571dd", + "0db655b82471394508e679b5fde2d07c5033290237d39dd2f8496b2afa31b4b96b2feb985abdc6d3f8cc787a2fddfd15c764b50c1efd83e9b67cbe963464ebfaea743554735ca6b989c42f2fdcb1c369c66b0dd27f9541b70b9cf188d828dbd5e874ebf9449acad571359b488de10568cc83d2070db4c5f59f087dd7ead4c717f24605775577747a110f616ee871bfad02fcd27656755b14d906a6468052b35749a6c6208629694075e34be3bc70f25926d2cb2ecbb9718ad81dedd190b9355e0b183aefe69d8ef93cb7ea43e2051a58a084b92e81ea845f0c850f3773bda5606767b27594a52ba90f63251a323c0b9e691536249c15e2a33218a93b0000d87546ef09d95a5a4e23fa774dc66fbed9bc43fa1900bb3daf76d6382af5030725b42b8aee1f3bd3570b64ab37c9d4599159873398d29078369ebe3980c70b07" + }, + { /* i=2890 cDividendBits=3818 cDivisorBits=833 */ + "032e0a54d2ea1b1b4946b646281d32b654bed63a1f3150ea9cb3d6b8e7b24a4d1ccb4848c4617d103637c34878d1c89c0f81bf19f30bfeaa335df92fcbfec2eccbcbddb6cb3d8edd7913220c299b65e29f1bb54e06fe62c05b3a23e27ddaea6190f4729c13d61c0504557b0f08b926dad0328017b1313a82df174c51ca7c5eb601c464b91d6e078e4388de343b6b21edb879cb64ade66ea99cdb70c5d7f52a28daafaa86a96654594000dde0d122d06ec36b11eac8cfbca82a8a098f6f0934c54523797d002646eb13dc45e60dd587e3e8aff2b47123e2519cde61a060b804f1c78b3147a23d21ab2e75c5f2c49dc6eb755a5bd0e94b89571624e044af436da0ed5ecd1be2beb92a32ca4870eb0fef691ee8648178b31710db87bc620719e559872e8d081f3d26f8711d56bea2b1fc35bad66878cacfc6a2fc3e7b4d9baaaa2cacd95281fbe5699bc45005636f2b53236e9864bc9925b2fed0d6f8f439311714899383948d8d61f65501ed745f77ce343e70cd6a917ac698c4f31ec1cebf83047d41f76d9a989d33585ee12e8fbfba78d5f2fa6992652b5c59c678849624982ecce2a377aa43cdfbfb2b516e8cd93f27d8cd1ee86bd233daf58e60f4bea9712e61aa18b4ac1a099846f70f47f1fdaa14f8e21906edc1be403c27eb5fa65b", + "d4b422a19b4b3f8e4801b1c7c0b0a3f5fdd6f827b1ff417549746734ea4626aa88de7aeea53d898b65d9193ff077ec62f54ca307a9c8e557eaa1be980e64dd525d42d32601fab39a57e66bc51e412b168a68c81df56376370614658b2b99798bea50fc1d20485012", + "03d3bd8141a95fbc941e36fbcd1a423892101a27d27e4bc5e7409dcc171aa7f3397f71bfac2b3c736b4fa5a2356784070db42c149ab10a23cbec97148cb6b284955a23ef64eff3a7bbdfa49036a3773f197187662c141168d7fc055df56d1697ea813c9319199309ee803c1fdb7122a811f3df4107029f2ac4afa0d0dd8155655c5eb4a033bf4e3901ece920494d00885e33ef174e3a9c9f49b6962a4f4f98a30e9d8292bab0e5f5f20f2bfaeb8446c466784071abe7b18ed2f9ab8118fe0f7431edcee7e496c32099bda19757ee6abe8a80baecb28a35fd9168aac1ebbd057136adc5c82b94a06de995ff4d3587d57ce6b5e4ddc103a7621abed8d517e77215329c09c6ee1c4eea2d4013f8c121b95261f7f568ecfdcd093f5c89dc205ceb5b289bf26a82762315b1bbe00c8bbf5888efef77e6e27294ab93faf86dc49817163f16876e82030cc49e2ed9cdb478cff87d465853f094577533ec57ef0eb604db3bef1ce7e7927c2763688eddc9c93f30982247408a17", + "986e203a58b0798534736b35231758042764df489af9c7a4648e0d07f886f5e7d70a1667effcfb07a2d773bd6918161e607dfc45b4945d355947d2da64a3a27545cdc8a6b043789320be31958063e55d757480bb3274657aa481fe7e61b6eb4643506f760736c0bd" + }, + { /* i=2891 cDividendBits=1256 cDivisorBits=528 */ + "29d36bfe6bb0fa7335579f86ec55a77cd425726a4c5b222aab4834179c1b26133a4f19f11752395305b5c636b2e8075e686b7e78348de924f2a4b73f567beb8e5bc661aabbdd15b84a19a45c14fed62f9b0caa5a1485b774f8fad6dd6d7ee631136ac9ef66f2f2971554ff17ded638290064716f99f1761b7a0de147018b6806211fccdcc26997da898196eff62084de40bd2c0338e7638af0182b7e37", + "27fedf0f7823b887381a545c9efedea71f26913a46df4b11e6b2498eb31dea49fcdb2bcf7fba76d0e717d1cd6886f67ab771946c931c80212e0cc0aca39abe68c3aa", + "010bb70dcc1f62d61c29bdfa2c2ce4796be0dd3a2cd40ac4727aace417d8c366bb74b1af306c3a147f4eb3a209e1deccf6f2456e6e5596fbb14c9081451db6be385fac72ba735fc34cc5299249da864c6d0d8e857ffd178100eb8d54", + "0bf821a60450cdc507149fae265f4a078c9939a1f901eddc85f43018a07d1d7be34d5ca11ebb1272f1fab7b7679269087745ae00b03ebd89906e5833f8744cf8a86f" + }, + { /* i=2892 cDividendBits=1053 cDivisorBits=52 */ + "1105b6867ce70c2d2e35bc36a00838ed0e070d6c6f287c954b8f06d11aa069771bf02ed589dbfb938bc95e2fd800391a1154a82f611c4862837e97052982ab96a7ab0e25327e7b794b162bb6c6618f44e6229268c035f8327e31998c498a5e64c0067d71f644fa92aeeea7a5127a4350a238a93183cc1dff16098a4b869e1ed28fc60b4d", + "0d46b0f7831830", + "01483c8b304520e5296e34257ce37a38c18a3df71f9013a7b0d7413550e7a383a8cc826db49e641a32acecdb9c94190711fb5c630dbab171f7fabf038b972b4329a2aaab68f700169c8f34c2ae3715d6f95037660a9d0cff98ab24c651485fc50282fca7ca948cdfa8f79d4c079b1180091d8738e38a67e3d2bf700898df", + "0cf5375cb7797d" + }, + { /* i=2893 cDividendBits=3121 cDivisorBits=3096 */ + "470492251353ab209edeaa61d9c5d38eaba6b53d255d76687a08e27b0b961458b1d39fc9678087dc78d6d2b4c9289eac3d2f580e1ac599410fcc09c2ee6a6beb6d2a0fcc398e5ca95023d9c118fe21aa49d22491dcf5649c0081e991e39e26c5587368ff1c7e0d2b008a09b45ba8cd58dc6e12801d68abe7c528d630b68a9f5c83a1bc0f0b94c6e806d022878d20e6b900b0a369b83757ec64ab273feeb30066b8eb36b50952e137ed6599f472771858fa0701b7cf14c8e9b31d0fead904d7d237c77cb681705fd28249951c918b546cb67232f6478609b69af46dccebb6ebb42be482d3d7e4d7df932adee7fd73d31dc338231fdda24935a77ac05583799bead86af79efe80c81f70c62a2972eabbad9bdbd7e916c5b29404646609a6203bf6e782fd87e65e2d4b5ce9a59c15e3d1bf45a37718ef44e880d3900dd6573607915c40816385b51ebafc91f6e16099c761ec15bc13b30e7cf1976f9b98b0a2b6348f939434ccb75e9b6774a8a310587fdace798c99f8c4eeb5c47f4d89fb0d2c5e81adda3b48e2", + "54e99e4f42373d559fecc49191905ad2a845a50bdd77f3456664ba6119c5c8dac6474d8af02e2e0330c62005146488a80568fc8d714f5450fe26933657fcb3abdb29574520c4abbd9249ade122868fa5c2f0001cb0f958ef3d6e36c9dd25dcdac038da7e71c2929ee7844f3789dfb334d1e386562584ec3fe5a3133cb4ce3a43888aa957b0797b537286567dad0e994c2fa9e5ad42ba419e649c11ce1da27fc0735d8285be00face11ee53a42545185ba356fc9d9ea77bfdea62de6c9fb68025ef7e7e6fb769cebc9611d3907e959bb8fedf7bcb9dd40580a83f1ebb5fdb727bc986cb27329aa2e9a647eecc1668a2e91477213047445c45b75684b53d95cb3b80241dfa13dec2ae2f8f190d49fef52c5dbd794234957e1031edd1560a30596b0bf64f1388c3b90a4ea9d0b5dfd93ee6bd7f802202f0f298212d5d083fc5a87576bd4957a66e734ef331f0d484fe7f27bc6b0294fd16391fde34cd3ff8e7c116c137dcb4945d0290dd1c0e3b6bc3d65974c935249176b18a1ebb457077e9c353d652fb", + "d61bfa", + "3efb041b5da14141ea36c6a54206130598cecd3f1eaa8d1c0fd9ca336a7adb75d07358e9f9dacbf169ae4e77eb317ced94b48034bffe75e4704e5ed426095f8f75dca5fe5aab24b3c59b9525ad2a1a14cb7de245242112ab27bbf50b313703fca2d8afebfcb10fd6705e30064e5966283cbdc578c1a1bee5a7af35e05685787888786ffaa9a0d744382ebeb708e41b2ff3bede68432cc765a757ccc087ae6cf01326ec69e841bf3e63ab511b4d540892dc75231ea9ce50baaa08d75c7ac46e70cc40dc7bbabb0eafd30ee1ceda8acdd701c4384f9f6c5e472667cf623f5092b0fc0410f5f6106e0750f3feb0038e6fc6d4ab8e7a44e2c2023b8547e716638e279d833e417bc2876caef431d293ae643e04ec6a881431d68434671ab82ac5e64ac4b1c21069185d546933c3fea69977907b7a17f76cc4e011e2552e049f60180a28aab6a428f75777cc8dd3785ec3369aa16141b8b13989e97400614147da184821041d9fc434d66ada7e1865c72c16ace84e6aa8b9abdca1bac223485489ed025bc6c4" + }, + { /* i=2894 cDividendBits=3173 cDivisorBits=313 */ + "1d31e26991954c5ef8284d33859f2f5828d62a4b4810a9e92057f73e5eac4a28dfcf553d4082523995bda2ca7b03868ed8ae566ced16e00236890d18e8ff3e2b7c4004328b02703324c5fcb6854910c02e18f18d07639f1a602c2c4e84a6507d153fec9e7817801aa2f7e5a9ae13546908148d9d2fe15b1f184defb4c2a428897fbf6980d44a34d494561689e96608a8d31c0011eb7c821e8a39776ad174d804f48f729c32e6543d51fa0afa78d689f8a680b6d2ef09324d64a9030b8543a079d24bdbed30363fd15ef55baa58b9db6968120eaa6d159066d355fb3875e4ea3c5791bc4b2b2b6b19c67866ae587e5b6b8371c89579b95c577a5f013be2ae50b55163c86e0ace8cbcbd2dfa6674d7cf89d2c44a773883989dcdebca33a880e1763928c52a480661662fbbf5f439fd72a0d308bc7f87bef8747991a668d5fc6fc54d62c2e70b6008a21342047def38d1dedc4730b482d8ad82bcb8be383ba8d3a471d985437c3ccaca135f06ba76d16484d230e9b8175b6c2ba8d2a733998c5acbf20cae5ea404628f5e018e5366", + "92fe02db07742707c84b8eee51e2ba20e06b624496ba29cd262cbbb9b4a99437866d56043358f4", + "32d86ea5dc18848a2aa9976f4eb660d8e9cec86267e1905d21362d3549699a9f45911a619a8015416583ab6e3d883d7794c5252a7a5e31b426b1fe6dd21d8dcc52f9378373671c21c967ad35e547539ce511d0de6b021a2a2a6fab11d855ad6fa1f319f4fcfb90d53b6ed3ec88a9c13f6d6c6338388a8d83d778811c32e0bf0dd395a9376428306839425787fa1907c5a2fae3e5bc268e61a03060410341fc0bda964b42e4e7038b7c1b590a1096ae20d592ce5be50d402d197d2f6e82559f110998249cfea18d9ddfa270456d1d641c36ba42b7fde92bbd706f93a665ba52ffdc17c606b37cabda75f698c35921e14f42fdc7e7af820ef2ca2976fe82f41cf9de5b2ade87f885517f328f73add26265c7b0dc4304aed5d54d6882fe514b8cc494f51129497759d9edb53460a4f023d4a23ec813287d73a19a6024cfb0f5fa1f712da5aa244b25db01393826c1360fe0cf0a627a7713938ed0f611deb194e5c587ec7d08eb5f", + "01458cf53ecbf2710bd756831bd51251c2195f687f8f5efcbceba830e98f6bed62259d643854da" + }, + { /* i=2895 cDividendBits=2244 cDivisorBits=1134 */ + "224185fdd6cb0291682fd14a3d2bf3b1c2f1b9df8844a4f75b39717997f1865faae9d162324f6a6d06e51916c0bc2014cd53dabbd43264a58a929615ff6ad559484822b595bf0f5ae607ac937910972629205bc3620f338c9abf763f3816bb922c4d1d135b22ee986514237f4cd8b3656b3058fdf593232b50b90817c4e75bc197f5b6563e11b563515b1d9b4d3c25de6b3299b3ec7bee63cfce6f41afce8ed792f171e2e3c810907bcef61b4e3e0f7948dcd6cf8ae4f6d656d95f54c678c9df916fe849d0263bb9cb6ad10e4dd58c77ea45c2f7906dda28dac5edc2adaa10d5eec87b9e4b9869e0b6138f4ffedcf79e8b71a0682651ae551ac12149a7022367edfb77eb22553328a34ba3b1d0083916aaa83fefeabb00bc", + "13ca54aef2f7cdf03871fc50134ff0c25269995fdb6cd13e6ca19282c1b72bf17a3e1f62dc3af9dcbff74e6ed4d272c8dd82e1346fcfe14aed85127e9524298125629a21f9e207c4dec5d1721855632107d4022e526c902ab3144db25d6f782a0d6869da130dc743f6be62bf590b302068214f5c1aa65980bd26d5922b26417b1bf015b78b3eaa0a6d291399b338", + "01bb1eff55c60af1405918fc1a2def6e658bfe253193e447f19ccac2174be274cca9a95212c2c8990e47cefcfe5080068340a28ef7b5f271b62b463878f5e2df10d8ace89b217c7cc2ff17f5b7612f1610e427cc27e2d667f1f21b663d16cad01356c2fa6bcdc4bae31623adfa57a79ef79ac0d61cbdee534b77ccaeb312b8873046511cf72ed36a433f5e", + "13ab4238a608fd6a6cc26a997f59f2c3715e8fb7e46926a34f960a7a24da6795a8864b49cf93500b4ea3778c3423b93e77f346e368827d1b39307b24fcc299331f971601e548b77442308aa001b0112947e0d652cbfe6f1858eca9c3cd47cfd37f1900b686bff603b0817775640705f7acb8a884b78c3c5484932a6eb173709d225d1370c24f452e8270cd886a2c" + }, + { /* i=2896 cDividendBits=2933 cDivisorBits=2580 */ + "0c7c86b4b013bba068a89571f103038ceb582e42962322503e5333ce4a2c2e5f99356cc690ea62dff00a19862ac74168082a09f0e8b38783826e7aca4d328a4c84bcd3d2e43232f67d8c7ca9c568f15b4409afd06c4a54527c95cc648c332836fbd57440c1426a131e890e8d019476297c09237ba49885edbb19a326f4cc2bacd70cc736e1a40ef13c8769a32b4140f6dba821f449ecf1cea35cfd1b3aeb75515cd0f4c690c9d234fcae233636835005cc7b75a2a103194e5276b101b2db419c510360b1107279a47f419188823ad5f6bf2fc95ef5504d3238a1daaf81b0afaa0a77b10ff723ac383d22eb01725bc5c9f42ce155eeb84e06b19ac734447fcc9942c110e5660d2c76195a2eb5404bdaa3e820e39e1f10d3c0d1477c3311dc30d8d124d555272c8c203361698f897bed4084c3c4add12a8d810316578d50cb6fd171dfdcc01afc200a2a6dd0fb1ca5c250aa15f174dd0d0a2c8efb8e3cfe343b24321a29b11ee4546cbf15b0b141b969", + "02ae008a67e31057a31f2fe6b552d88a2e2cbfdb5fbf58bf56efd111cb4fa722b6a584baa95ea1ee47a24bd3b8416caf29726ac10c3ba37c44a82b3524ac2549d202c6a9966fbd8cd62eca378afd979ddec5e495627cdff805174b78fee3e8debc7565e231e0c124b234ef9b1f485b124e2d42cd443ea336b847c85c8ffefd28f6b8371b19014655cb5fdc0e2f022a1e6c0a39467fe1bad5fe25495ecc5d70d776b1b766de33315cab0777717a5059921987db1c54c4da0c7fb34013955093fe4ecb11c360decdc0b54cda061c171624dd5dd9235c9c33cd31c044a3b6fe8f93f41b8a78ecb84e914d80e2e565651ca9e07eae6be2f1a950249d77a716d18c056d1852d3deb3be3b6ff4a9b262a9db054c359ccfcf9a756375198ec4a0749aa14d79100056d6c55851ea0b9d65e8f906f915f3fee81bf55592ccd561cbb355e4a7d6b5", + "04a8de7bcec4153e1f8bd461247d825c0013e0e7e30577439147715a85629ec1e38c5ea6a79aaa063367a5311d", + "0124ee933c2296d6cd416f4587eb7e3a52ff6351884df281493532bca739c07a3a6e03a2a086f4b06e3ef4a709f3fc9f2c3367af9bea0a24fe4ac8bd506bed66130384b026d0966b897823d352d06ea50923a832c9439e50c2ef0cdd06e10b9888c974518f7958946653ec643ae9edbf3f18a09c47ae1f3b096a3f972867d2783f86bcf5a39b6a8fc2539aa200612931859638fff62b038334225dc0336ef6d51ad66b3608aecf7f453d4f66ca104e2066d21d4b0f579034757a792913e9d0571faed32a70103650e44a8e10abc46a59ccb21f6d2fcef45d97044c8de29c2f478b107c31a11ec478dcb64699cc0664922e3be953e73b616d68ca5d43c360f854a85ee2926e1a2c438b398ecef07be2c454aa8db6f04dfbf89a38c8190de39b82bc515e4171dfe2539ee1a4d4d8872b891840847042322a30dbe0d543526892747cc1e8" + }, + { /* i=2897 cDividendBits=3861 cDivisorBits=385 */ + "14477b931ccc2bf78c8e2c3ac8625068e83dd7de73f96a8c2d0743418de397a8812cfbe337d5c658ff638cf5f64ae669a9845ed2c448df1f09cf8f3c7b6a2a41480eb3ee44729beaa763e8393aafd94333033a9a320e204e7386923291d82d18c744ff09025397a13e0b7b1cf7766b74875bf604334eb71d910c64357a8509b58ddde705a8bc911b8b0fec57aa54df34af9fc23ba874197607dfd743b899c7ee21defc0a3c441772ed952394f609a2557ba9c63056555539724f2ede4cdc05d993cb09eff0168f4cd1cb2e9a93a859f4a2a18b8fe897b464e6de7ce4399fb4bc9ddb386408db94154c6bf84477315f47c9073fc21c52a3e1f0f2a0d4ae0190453f9cb1bbac7025ed93bf4ed65cc622b6886a47a79db2ba1ab214dc5e46817cff4da068569f9cef10d236721b06aa38a957dffc892b2c0bc0055ca1e908ca16f84c3b9e317a977e06ecd7fd20674d51c6f98d78dc630779787242a49110916091725f1d005da81cdc5c36deb657893331b79d84d2894da04180bb8f1ad7d4566c97e8895f4cc1faec8cdd19641a6063bc6a7c9bac8ca6eedc925b54fca3d0e163e31ce2920db41ad5caa03e0b95725d456b9e843033c8abc27559e7f1f4788b1b11fa206caccc8775b4c9f6fa6a231b1c56ac6c9419557704c4ccf0ce3103fe56571484", + "0b4d0036416ce6d154e359a5d8f67abbf40485bfc29556a7125331d9b7dd19544d829770274382a47f39a332657057dd", + "01cb642ff072e076857a5aa47b8070430e94e7a87e1814d84e5e035f99edd70e87c5d9f9c662a981c437f1e1fb66d7a9158f8b95afe2acaf50d52730e1206f421b46b69bdace24975dbd0c6065d9bb714e06c384053087d2f221ec7c1464060c8b695ee039d25983cb69fdbd4af771fd194b43047f5343638aac8f44f18c2664c56c0b5ca3d6259ddfb16ba2249ca8ead3ef6f39a6686d9a953cb4023da9295301ef72b2153b62348b99d6d018c61b4d0c765c031c4dea0807a2e7d0629705b134add48fee95cf032052e0f293e5da7eaf550d7b775b9b76720ed5967f0ac720d385726422ba489d7277592fec5efd7c9858d5c80ba89e844d4d4cc7067d6bfc8c396a940267c4f86ae93ae4a9a2e2c1fc0e533f96212016853941ff492980f9580f2addbfb585e689d946f8c1a969ecad7e25a66347d266462301aeb5ea41d18265c2eafc6eb8d748c6d5c92a3a0f0cf3b1c0f733698edf800b0214a68f003365a7aaa93311ec068e8b84097f90eff0fb91e19f276059d4f157d79bfde96a1f4ee303ea08e8cff1afe20df66ae5f19be70cbd78011f1354df69504ee42b83bf540d305bdb94c689fbf6d9ed6be98d0d6ab007e3", + "09534b27f903d7693f3bac704bcb42722a8e7f17d9ec54aa99afde9b83593f11fc1889535ea22065fbba7cb16762208d" + }, + { /* i=2898 cDividendBits=397 cDivisorBits=20 */ + "153676897e3b950226c46e924b53a5400fb280a5315b729c7e3213bd1d8fce0c80155fe007604a55bfe70c5ce2d8d8b48baf", + "013cbb", + "1125375fa18557fbda91a3cbdd7f115ca9534b2e667388473f5010689c791e70d25dbd15cc84c6c2e277977f5ea0fda7", + "011eb2" + }, + { /* i=2899 cDividendBits=1257 cDivisorBits=357 */ + "01d93ff500ccd08ad36029db17633d160b6b3b185f7cdfec8ce252a46d62399af567c092479c09889a7171d2add059af9ab515588680c24a6a2b534d421e664f276c5ac7053cde423d897f6bae9decc23d17ffb5c8079189a61b8ded8ed0b22463a30a36937373a3bb906378bc883be63b44bf3dce73dfa2ed851fcb50472b00bc3b3eb777808ee6e93fe3ddd922fc52af02e0cfd01e0be84b0adb684056", + "0af6bc71c5f72665abceba83dec214428478c3bb5abbb6839cda90955595f7df97df0db31ea679addf201d096b", + "2b2a2a97ad7aea1534e93c7fdea9f9684c7fddcbf6739b127deed9d14e0bd3d2f5445cdf8094eeea563a93d6169c344a00baaccbae9e92aac2f715fa8a5cd2a7e2b8716bea3c9dd735579a0f68fb11812d25b790af4a84b0c1262bb18321db8571d36b02a1d840e53a824add11cd751243", + "03039c6b11513aea65c517508dc918ebef3a2e4e6470fa769b4559d89aadba08e39493369686282c786c3e4355" + }, + { /* i=2900 cDividendBits=2096 cDivisorBits=106 */ + "666b249c344fa7142e9a05d21d9fafdc1ef1a2554480e504fed2375e43177b53827d54a95d6eced0925d93520c7390c99256d2648999d7b41a09c48319301519351b17eea8d89c718096c381260790b9624848fa18b09e803ad9acf4b1cdb15c87319ffb32ef96750ed1a944db56b763c11c33e8162b59d0a6b81a8921319476c602ca228c81d780766a680f3b78ee2fbccfa34383d43bc63998caf60d0af6f65e36e506d83a806652a6d44e843fab7b99f27098cca57e1ad92616553a1e413c034cc8be8a1df85fcea9e359edb37116c4584b98d9cd5dd81160c7680e306097fcdff9ef8ee1cbab168a5f95aa501dd2aa57d88cee1ba3cf20f41c344f15a246c120824d5234", + "5cea9ffaab8472683941cb1bda", + "011a2dfb1b4f1a5290cd25f18be09f369940c268c93c12eda9a29ddaff0003576cbbd5ca0b6ac79c4af1420be68dc244c975f372bd995f1caff7fbece0241d355dd05d1d81ecd528f21c4a35eca66fbd37fc663d994711c5bef9820a049da4087ecf968fa68cb9981537b110e0ec3ce962374ff7c6078f62e671566ee343d929586bb624d1ed72102ebac42738202b2cc7fa4cb6f16b5d2f2077414e5d6b024681e15a105aaa904267eb4c3be5133d6a5a3d042e4881a606bac8a90cefa3911fbb142f9d0131675b1313c35a5528083e4cb71cf2c782475d12347d02b813c970840543890986aca40f9a492e385299e7dfb6d8cd8ace48b7039e", + "42dab13de844fcac924cc893a8" + }, + { /* i=2901 cDividendBits=1714 cDivisorBits=1518 */ + "023268679da8c236d6b14c2fb6ff9a1814c3b8dc847158d6042e6bbb390ccb9392695859ef277b89ccb4e8d3da546c4a96068f1f5ec29b0bad4d514991840fb40bd3ab8d90e974b8ff9cf558fe0135a0282d0ca63d13cb6d4b51e4fc4c40d0f700da3b3663aaf6e567dc83b0dbddfcaed2a03c714b205eeea744c5f67312bd2c384e5b30dd5c8df4c951c0de4ca2af0bbec3e96fd33e61bf50bdaf02b6d3565535839e24587e85a653849e133be7fd9cc76e289000145956cfd7103777ad88387430cf349832a1cc197603c4b9585613d7e5a96a505a75", + "21d628ccc92495841128ab81b892ae5c097dff3d3afb9ad571f6f4afa41fe21de38658799e02364ce9caf668adc57a4f8000b49cfbf36abe6dad56b7fcf141089bf7da5fddcbb2cadc04c70e970ff43426ae3ebed4dcf4ea15b68eebf85e56680747b8e93289cb99637d734bcedd7c6659102dd2e448681406bb3bd501478395b97e3353c01022855c4edddbeddcaccfc9e59addae2dbfa62e015719fe55445c60dd0c1a756b7a1e4354fddf66ebd446eb0eafa02ea772c8152948a6c467", + "109f0def15d784b2749deb6d78f6b3db442dcdbd89dd24f24b", + "121f1709e3f3490f03bdc837ca2ab22efe275caee7f5a8f91a0419e328f2c54ce7269edd5679b1aca4c21fd9fe56f93298965281335b2e3c2d3a77c312d2fba7387c041c181d425292c30a2a42dcf71a9f4675545a5b5bf33790765b0c134c9ff9654fa59d940b881c88887c924aa51a0660e977a73792ed9ac5aced8f102a42d6b70f06c99f88b885a414ecc904e7eb183acbe418297d78848e718ce0e2c4657ca8163bde937228df0636fb5e9626bb25dc2a31f0364ff856c3f24f7248" + }, + { /* i=2902 cDividendBits=19 cDivisorBits=17 */ + "0579c8", + "01fb18", + "02", + "018398" + }, + { /* i=2903 cDividendBits=1716 cDivisorBits=1351 */ + "0dd6d0704feda0adbfb60639a0f574c0f575aa9f68e7f2afdc871a207863f088abf19e67e54589ad6581985fac7122e2537b737ae15b1c28cbd64cdcfae3ff5b5a4223b40487a4fe79fb47c7e918323df0f8020dbca480f9563fcf71ca748ec8fa05a935de9ab3b58bd33c8f31da37276520a86d57cd90f6c533375bf418d5c6928095a7971c8095dfcbab95664b439e0629cb06d3994dff7b91ae2c5a98bc74a99de16b025e508d93036fe80cd4794913d6a8299a70f138d355d7d32318ebab0d0411c4b09b61f20e3d71ec6d73cec48ba798ad1952a7", + "7b5bfad5cad4e2eb237c9a54b8dd91124c019d9d6195eac1dc799c41af58c356669e2bedaa8d4ed9b96168f81f93511ffe98bec352f563c976080436e890bfc4a289081e286861f883e6b1c0dadb15457f383e3abbbba970db36260d8e4759c62f9ef8192b9263d6818420c5dbd35d08964513a214d988f13dddddc28a53456250e5e7ea59e15a220363a7bf374b9330c25597a6ecd9a5fa642d73f7fa1210797ad7cf3572c8a3990e", + "1cb82f823ac555fac834a5b7e9dfdddb442bf833b4bbcb08cfc8722773322d59284382019dce2fc608a730fdc2d9", + "17f8d20aa526ee9fb4c7d4ba04b748c60bf16e225b7db3cc212fde9e57369fed6b6d29cd676e19b678adfedc1b035f3d7f0cbd9eb6f00590f8e48381887c65798fc380c92f118778e47094b9bd80ad868a8fd11c04c25ccaa1ef42851e42e5b8440d405f04e68d467cf44c4b41aead0bd7f347f0b6fe44a46241655f437dd6b0042cb7e0c13789937685924493d7e9f45c6663cc75ef2a6e1dc9ae0a53e083d64985021ebdbd99f9c9" + }, + { /* i=2904 cDividendBits=231 cDivisorBits=33 */ + "70ad487bdd9674398a90d7381c1b864b9ec4f503d5500c182dc0f6f1b5", + "012913d33d", + "6118cb02c819cdc3f0b9b4704f20d4cc34ec2f95ffb9674757", + "39193cfa" + }, + { /* i=2905 cDividendBits=1795 cDivisorBits=1675 */ + "0208a79175663aab5983d82df7e193e5b94f293036cbe52d647fb0c52200ec7bc600f762cd34f20baebde7dc9bcebf2c1bb47df40506ecb05d6cc49a88f64c9407de95e73fa0a392a00fb49dd5f132774908922b08f8b4285843bd63ef41e0ffc437240b92cd25751c64cce089e14b52bf4ea67b174fd17a67c81e69f9f42da9f9f032c4dd8dd2ff227646af9476a7b73ed8b2fccc52f0af8a1587840c002e2018ad8983b05ffc9c0defcca3f93186add9e46529306ee2cf8392663a88c846d564c19fab690442a6d8bc8af1f912f06246cdfca5f186f6017090494f14e9105c81", + "05e74a9ad3b837f43d86d65f91b6ce454477a80f82499ff3d0932539ceae27539bb083d5cc0aded0fbcc810b63d94655f5b118a1bebef977b59aa43ab2b4635eacfd59a62dee5c418ad9b70719f2cdffaf1e0fb9859bbee87969876ba8df9a0e92849e7e8eddde6a10d9023abd68dd16e9c7ff6d78470ee6bc50195a4ac300ed92d282086e589a9962c319fa29fcc2fe0349a5b41cbd6982f1de03a9e974b279558d9cabd8421c57b0f480db4c2fc813f85268b2cd08c8a1592434b8d44022fe4e908656b42c878eb8d2d0d8a2678caa336b", + "5831c9bcf0e12c03ba6e24ca1df2c9", + "01db7c31e4dd4a25bcdf7cc55d63dacba6babff580f2b83585dc0d734e742732356e6d8eb14c9aa4b8f97f1b84e698991b539eded03938bb0b38740cedbc3cb2822f7c21107c689080da61c9a29ffd1cca6dbd023164b014c8f3b9c43d461eba31be69044de6d7f4eee182ce520e9efe926187292eac6422739c897c2b59559973b3813b2a19cd1635384fa45309d5e281fdde5e4ed1e47fd71fbcf0114d6d9ff4b1fdbe4398e0440d84ca98bd29d8657cc6e2a9d5d62da114efce58024996512f9061de9f61ad9f99252b2d77e851b3d77e" + }, + { /* i=2906 cDividendBits=1208 cDivisorBits=1125 */ + "6104d1fdfbca88a6de3031f934f3da4bb612cadd52a2f32eb1fc98051ade9c4bb7c6d89f90ae45c857755795dc7f3ca3fa7a02feaf4d2e1696005fef0eb6eb4a0da952483125d40d4826067f9e0a3e7930e37e374592363b292dc08b4c9f8ede6bc614b55192592382dc6b197b77771ce1a9ca69208c428b7d0702e73cb56df04ef8f0981a38be1bb3b3d157db3ee4ab8a488f57671eb6", + "1f6a3528ffd381c69094e5c5db8b7cefae7ad68fa87f91602fa35dfbbc3ea218ddd4030645aea64132edf7044ed050c17b5bff8fc8b6341a90124da6877ecf742963ea63ffcb5af6aa124b49a69cd807ddcbdadcd2f823cfc5939810a64d54e64469dc980d86a2ca18b71b92d44580a64ea4cc97b99ce4f4654288b1817c0294ac9ad13b27b7f5958d817fdf95", + "03169b66fc4780ec1d1ba8", + "1826baaaec9c385e1fc356109c21c2465a765d753cbc38901b9c4e6781b078ac2feb4dc43eaf99912e1e965620bb0ca5bd7a075c53d3dffcb8b769be8d7c129d0a2e5849c72ab3e28f0deaaf43586fcde64d737ef72266be41a40411323a85604c757fd6d982deec4966cff8500a45da44e5536d623ea9ed2bc8564ad4c26ec076a7ad5fe4fb928bf02f06adee" + }, + { /* i=2907 cDividendBits=1051 cDivisorBits=933 */ + "f7fe84f89240b07905a94c567422a848f6210198d8c91863b46b56f9a2173723252cd66a17f7f4de2d5c970a4303014787eb19cc6892d487fd93ef25f1e4c06af208e93f7e18780f2a3fc1e2071e2c6743b27ad8a939df3f62988b01fe144b4411c0919b5b8167c3e872af44fca67444f08e3639e24f29b125646bb21c4381f4ec46a3", + "0fdd56309dd4408cd5390495e887f9fd401d537214c9c6256ae75e2a8e6196732bb25cb8cd58309a01225b0d25ce5e1bc7e861d05570a9c2e3f6cc880cac3bad7e641bf88c96e6d14010bb21c63009a3ec124b2fc798d63a5c4a7ebfbdb6c0ace608a8c7b42d4f683d4a0e70e60d5d0dc4b00e8e6e", + "0fa1c5fb97d320c43cf775873b8083", + "0def38c817251e1ca5c332a3f07831e2ff7012890b222a7411c6efb76947510cf3d304f72966477e679256a9adda4a6f97b12057d7b1ac52a02c9573a8c05f3d30cdeb090e17e5750b818086e58e2fe45554c5d16ef2e302fd68016135536be5eacdec50b54d6ff6f1aa70805753946517c0e86459" + }, + { /* i=2908 cDividendBits=1848 cDivisorBits=1797 */ + "b4773b3a26b35d327b68d4e42f24f203e72aa9e2c01f6c15bc5730fbf287412b899e2677061eca4ef861ded1d31f9d271a36a5a085f5309d1a8788877db3733bac6ddc853971f1a3933c8ec3b123a50882515898304318f241b128a7fbe4ad95f18ddba08d03aa883eeff18cdf1cf6d43dcb0409b496f32ba712407879016c64991ae5e7ef637433412231f586b4e05e9bb1e049fd1daf38f0b8f0582e4d535dceebc2139141b5eab851bc2faa50667ad9e8d6a927ecc42d83d16f344c1bae608c162917fa8d56b8c209d37f5dda9f1a8f509bbf03c70d3bf6726d6828a8d7ef18cc10b90671c8", + "09011097ad0de82da0680350c074ef74ee2c14b5ca6fdabfb932c9f93f139e7f20fb1578a41524e08c9e61c6b2afd36081ebd85a97f7d52a0bbf3c7f42ebfc72ba90eb4114cc90a5a0e1b45baba7026d098b3c50d62b9609e35e32387d6448de1a7285ff649d54e0576d6ba6ec23069774ca523ccb0dbe542d4c7a81b90d5b52fc71360548bdcb0a24dbed1ebba07f15d2c98a59c7f898a8983b6936fd23d7f4cddf85b360195b41a7e8fd6a18e1269b9576811cf90d8e8282cde41a0a7a94a40301077e4c06d982d39d604f764716054fd45555268c6018d84d5b5397ca22ddf1", + "140ae06bf89305", + "94223ecb9a7daf729a73a62bb1bd00d236b7cc263f8dbb4b16f022a12ab6dd7723759013ff771d6b18a11a4a20d1ff7606f91fb401bd2f1d3100643fc0179d7d655a8ca750c385f3c3207faad16c0deafe884dea3dcbbc8ed3a285513704d90460e30575e0cc83ddbc155c1509b4ff56325205a297da4725ccfde1edb778440ca76f097d54c46bf19df6aeb22b59caaca100662f7c18428eca5bcb63596926a2f5e1b7a1734f96e9903c1123e72d2806ef6826dce75fe178e40cf9c425207adb8f9c552d9a995e9dd60b6c1d6c727d96f66e432b391afe59fcc5ff9d046eb913" + }, + { /* i=2909 cDividendBits=1251 cDivisorBits=785 */ + "022832a3b9e2ad28f5645acfe41f100b31bfa7b4d727a5ef428d0f14355191553fec54c5e33c4cef5ed51a17567a937097283d29c3ec66e2f6aec7d1dd7988138d4f6f864f181070bfc9ed8cbb1606851e4a72cacd6d1558f6268d25b22e33b55e18e11838f44ad0b39ede582d508ca4801574ae76bcaf84f0c81e73bc9b4f0f68f370fabb9f3ce9749874ae5f3dac87fdd73970a24a6feb4a9aadaa", + "01217b8de220c766478c2c1d12d29c267cd314c7fdb5eda007cf6c77c3063fb5a8e5c1d1c7066dc13038b0b84e0242e21c4cafa54546ffba1a19618664d99753ffa81b78f12ae822971e6ddec650096fd85029a36545e058b3879309782b55dc3837f2", + "01e8541cef714e52c3cd858097fb4f1ec6f0ed084766047c05b124a79ea1bd3bfdc325169d35d2580b3021faeac4ecad3ef3c593ad8794d907ac", + "2f4faa05b5121b0d65e5dfb6f513d2cdabd67108cf1d63ee1e9b6e213f7b6a7ed40da662322f876115f622c488a71430f50ef68e9f70ef312e6a70e8e4f7c5b190bd2873b81ad9b7ecb9f2b77fb7394686c970b83ad7d9864f5523dbc298772b7912" + }, + { /* i=2910 cDividendBits=480 cDivisorBits=231 */ + "604fb42e0ff51e93d7cdf1fa4d32fa36567269ccf6fc40b1cb61ed7102e2125b1f9a83eeaf9585f2390801d7a08e3c7a2fd6b0e92b48297515de5240", + "0c6f5d90f529a860bb893cfdd654dc2cb26b0aa25be39373d3f1460c81", + "07bec365c4e7ed7b733285ef9d91cdf50181fcb45c878e91cb16c0ce8f9cb7e6", + "020235cb34f587aa5274fb7ff9d2c8f854f268029d463fa0179062df5a" + }, + { /* i=2911 cDividendBits=662 cDivisorBits=521 */ + "20e00c8af93cf993d69d7611376730efe61b29acc010bff4658f10dcd1a9b81bcc8926472de41d560ddff6a65ef75a613631a042b07ac8f8f63f0fde1733eacbabd52bc5877ecb4c7c18fffe67cc4fc170ea5a", + "0196591d951d49452709fc62a8ac6f5bb57b581b31d5e1f05b6f4e0914c0dc1906bcd3fff6535b538174c3675f28c844e705dc069942a5a3905f692e94d8c0433bd7", + "14b6200d539c7d57a10b2d7fa3c2e6381a26", + "01326ee065a0ef14661d736e47c6f6ce2c0801cf02040733382eadcfeb95d3bd603f741e9b0141ea7324c1eb9eb2287d3366de7336baa02f53735d82fc36225a3270" + }, + { /* i=2912 cDividendBits=828 cDivisorBits=795 */ + "0ce47b6db59c2a78fec333a2dc84210993a29a20fc3925c2fd2f4db41526db0906b7c31a05254682accb04638feb74843fc1b3ed78f0ea8d28ecf0455a6931779f8159881ca994829d27910606db3edf806858caf44cb9d9db5714a92ebc8313642576f9b169e7a9", + "012d1f01532dce098dd365f68ff69ace5fa3c43c879d90628f3481f16f553d0ca26ad5dca0900c1c5739cd386262659660c7b2d24fd6db7169ddc60afd2fc9162c939b4f3fe33091c0a1ad5566d13dac53cdeb27c71c3aa893a208312d715efd63d5ec88", + "0af5ecf11c", + "def63d26fda0fabfb216fcb8bfd36138d43f2fcd1061e9c9a0c251e3a9dd0a1b72d5bbcfc644489d6c17ec824eb3eba51291df2f4e97cb0469318c9b1b0e55c33bc414f58bf57836b172173959db9d4e12b24f54017a1b1b0c3798b8d386622cf800c9" + }, + { /* i=2913 cDividendBits=131 cDivisorBits=41 */ + "0169ccc5a964c4baa4efd21a788117589b", + "d121b79cdc", + "01bae1eb0a150b8e0fc556d5", + "9f2b53ed8f" + }, + { /* i=2914 cDividendBits=1009 cDivisorBits=495 */ + "01a15d2a273a8e42be04ac17f1fe98e2d048f4db00e403389cbc867c8ccfa108667a079cc7581b2fd1ba70b7c5f45c1e324b5455ffb1ca2c610153542dd2c8a54045c7991d121a3de3a41da6f26d7975c97f8874a8dcb1d4d60c354e358169c50bb724ab4a81a199e6f7c4e65a6db1016d86dea2e331c2197a084dcfd76944", + "5bd01eb7545398e6c376c5947e57a1d5410443df00d7bf73f52381e5f37390c36a6352866e6169dac5afe475abdf0f65fb4a948431f93496424e5b035297", + "048bb9ed97f4c41e578b67ed4c2d5b9b146fedf12f67e5828195c3839d3ca3110f7ba1dabcac1b1238037beaf7988dd9928889b631cc3cc088f0d55ece0f94f94a", + "3872999e94ea94cc030e31b9979bd60cdcadbe85d958135ce595bce09165131be9a906727e6b3587cf18ec6953cea4bb4518fd0a0ef01647efdcad40aa9e" + }, + { /* i=2915 cDividendBits=1743 cDivisorBits=701 */ + "0ff2b698e067aa57ee3b9f975d93dc366996b7afdb1d8cf4499428b8f56831788efe90b661c11a95c6afb560abf7586b6cc45179d7525588388a6cbbb418020393efc8e8b3b3ec700962f9b406304df170198eb729e4a69c42fcc093a2e6be20ddacb491c941e8085f4a7a59c3fac5c6a487243b318ad17da2aaa77b2f88319212694a9983a86747369cca9f2c616c77e49565ac240e16aacd2d3a42cbf4c63d26cd0d4cead50ff2e4067be323163f9116769f4754b817da429280ecb15d693ddf28f90e9e7efb45f3f549f3e2af17bcca7f5aef429a33ddbbab", + "0c52b3394a9a528ce2eb5a483b1ec8e340e724098a9a706e16f3a04fcd8b3059dcc684d5d918bd9447b772d9011c17884c33fec727b038826c2da9476465bc0891ddd1160839a56dffb0976feadfad0b3a340ca6d2055490", + "014b4e9f4f8a3cdbbd3e2d14e5321c3ba167e0bd9faaca3b335af8dbf1264bee86a151df8fb24a17a83dc1fcef85dce9ce0464042a39b6daa1bbaee7ec2235136a9130b3e1c037dc7a4cd66ed1e3da4ad6f280a25ee104fa6f1b54a9125968a58c1c01047f2ee6bd91fb77c8b829daf6259dd2fa3d65adab4c0e367b4b3da7dee3e0d2", + "d9269f46dd5fabe796fb9493108988acd7cceda058f2084613070ec538899c5005f4649ba0b3087186df336f956071250ffaec49bee40f4decb011ad04a3530cd3276b1c20f169f78137636a2976ccf24d95fe65d05d8b" + }, + { /* i=2916 cDividendBits=2858 cDivisorBits=1098 */ + "03d85e14935456ac29ce529cd17cef27d4e4df163613aaa50ecfad82a1f7a295b6d82cbbfccb987efeb44983b6d4e168a47fe6212962d9cec29f5d986403eefc9f3c1115eb78b3ec1ed71118592136b304873f9a414ad894a7c8f84e0d043bc673bfc9714760895a5bd62b80e845568550c5206c663321b94201681505dc12977b3ea819ec57b8a7ac7fa795cb0699e8d5f166c6697c83c10eb72b76615db97cfb249baf87876045ef7c9f6c218dc2f415b387943c42b91938c23da067a9be291061569db37c193c2c7da946c46373dbcd9644491bbcb89c7270e9977961653eee87624ab53973ea313753ae6506823ef043f75d9516376a68ad44d900facc2b4d15cd5993d42673ea8ffa825e6d688dd0cb866660c8e1765b15c3c6eda82e203465601bf68f3980deef19acb59646da98fa76ce60bfe0f970910c31b9276b90c82f13dec8a1fc738dba3004c342a48f0789665a8aab187fddd442980123e1ea85b7aa9df691", + "03b6521fce9e802ce189936fc6686bf8d550dd7aaab761bd7c24ea90ae12961b659c884d0aae3b915ee37ae9a3b5c79af70cd781c8f8f53463a343ace83a68600884b03c4c5539326ecc34dcc4d0cc9360dff269a97272d2f3e1f6d0b065a42d8e06d427a4173971f57bab55bdfc10d07ab93ff6a6f16e134eeb8c7d560b86c75f53bdfd40842bb170a0", + "01092bed8e8608be14818e36f5cdd4f27e1e9e378d69823dcb6f45afe35e367279c8554f6b954354b9cb0bc33d746248bfdb69f1a1a8b30fd5ed5416a08c7250da8eefe67e432a5888635de24c54d8ae0965c32992de808685ac3aa63ae04567926ff95232af16c62fc21f983c8c234c257821ac060aecf8fb6805aea6ae75ac61c5425cd0ccb7484176dbb9c5ff24efc15b7936a265501a0b45b6aefbc08628c3c15852f53af349f0dfde272b7dc86cce179c59a4f4c7e8304bc372623470166dbd935d31292af3b36caf0009256335ebbdb413886575ec8c8ee32992", + "01e06ec2dd99aede22410198c896249767889e9909af9c7da90c21eb853e4c757478f8f49c1e61c155a70ef46108236675a3240bd4295294d320f1299f5ea414f62fbe6a876978594e894dd74bed02367edce8c78aa0cd7c6b5d3539803bf6d1055828407d22ca78bff465d5a0f6b8bdd70f2c87cf457b96447fe785739eca3d798360ba4d07b6821b51" + }, + { /* i=2917 cDividendBits=3921 cDivisorBits=2899 */ + "01960a7403649d5e13e2b9172ff89bb4ad674796e1db36e3cd6ec3644de205f37ed07915c07bf019a6159f0650b0db7a076480f27236f8013a9e427ae32b2764c09f12282a093c7738454376c638a8acb8f62a41f9fa059b1aff42503648d25e43726cc2b76d4ae59a2f1f526a46ffd3e0a426b9976d8b619a697610d91a0356bb5fc353f345b7e281dc958ab10be836b2c984aa93906601ee8318d283095c40cf21dcf717258f98d7762bc04644593f8a5386ef3b761ba32a9355a1681ac54a154813d0664635cc788d087b6dcf71f33c53cbacad3d64b5744d4f6b5fcdd68e87934e874049ceaf8455c4ade4cc76f48d30207b45de5b68b85e989f77015a8bb28981f8ef634f1846620b76929188ef9d4c30d89279b7c4531ad0ecefde41be769501796200b4c7096104df0f4a8f3534eeb1d0195e360cfe050019c8fa4d15271a273d94bef36dd66bbef1bac95ecb9723469f5c047ad2e3c8319260801ac80a92d5c9e7a3c1aef1847341cf0ecc3170eda15fa72121c536596537b2d91679b6aaf2cadab040c8d52eb14f556db1bd9594615c6240f2f0380fa7b5e16570f533ec30f329b346e9f59038e45ae1a35472b9207e4d8f4e03fdb6b1d92432f39e3c39908d6b7f8a154c5acbe362d2d971dcdbed451e629b4b8ab7ed92ad44e019d304906a4563acc796f918", + "04db4db4b209d617bc182635014f6a6c903b2fbcce84b6227f9c4cbccb4ea74009e629b52c9b2ce268d27883feffde62f5764b95ed727c0ac909a90559574c4370dc47bf0695b971075228618d51f216af34055372dc8d37fc2357a8e4443ac1aad3df0625147b4a617ce515b7b859b64b0b2d6438e1417cdaf74e46b538a158a41243c0216ebecaeca5d085b12dfdd16fa0c1cd01939a6ceb394152fad2be7ca946193d3a309adc48cce20c06f0628330f58ffa6eb375f5a171ecd0b897ad2f28eb0b738850b6610da5b3aba69b6cb1a8a4f71e5576aa67a9499e962f6883d06a1f34ed23fbf6bdb7d6cfd8e0e89354bc7c9a9ea9ec270df448c58f7e273442a49229f2bca0c532830d5ccdf6a32a82444eb5654e94dccd07ef3f0fc96d89e30559c79339a4a0f1c4ec7afddff735227501e54fbc3c0198d27fbba626eb10ce2e758afb2298056cb31d0251c95a1c2ae2a7c70aaf672886cd4a404f7aa326af2415ef1ed1c95dc84df8e8", + "539ae47cba7f594feceb3b070691f904923cdfbc5d96474b15d0bf09ed1fc3b5354a0c78545f26cb9b3c6a91ba9ccbe3deb67789434f6141695c3ab94fe4bf66df535150e935fe45248563e5d20c03ab3fd4102e9a81461dafee8d8fe06bc059df1fa5579aafb080401e6d79dffdb2c6b60914567d8f859b3f255737ebd9104d", + "047a6440915074573a088e7e6d0329c4d63b5e62dcafef0a226c2024850043f28b0f0359d210e9f309f1294cf3a0bab3e726b81182d28f66468b2e11fb871e8d2904c30aa8047e13e77a892ce9808dc133103eea86675d34540f9a1f16d951a74f9fd560c3ad19fdc8c623317c7760dc1967a32b6e78f900a718dbd91d90c5ae4cbd1493544233cb6f9d2a1dd1ae0056999f151f8a4787706f9c5ffd1c13bff06ab59b7b23bcded545f9c56a8bc9518f8642e4b24bf720aef95bab983940805e28ab382c58a0310bdc2b1ab077dc21cd8f9432a68f7aded5ff467c4ae00553ee873954d3b1afe4883f258b7a8f83d1cf59ae9cb2d309b86a6df57bdac63d690a34a3016dcc6ea9858aa0e073d1035561cdeb30668b730ae595307393cb81b9c79cbf8f10b748c3a36223b6f32fc98283107f337cb603871d1ab9fda83537b0064f8dd536ea719e0c446d46e1e22fcb0f7d32866ddec33792c496dc4b0dc9f8dd2543d3a7584685b3ec9b50" + }, + { /* i=2918 cDividendBits=1212 cDivisorBits=138 */ + "05109d17c16425a826579ee46fba8af047211323a4effb459fff3a945f2aad7f8d6a1d0a7bbd6fecf210489ac7ce4b6856da9934b541613f210b9fa405a8d48a149368d863178ec2de2092ee8f2c4cbfbb3ea099f51723dbf0b1a461c1f1b8316531fed0a4211c4a62cde88517e082084af48d2c900a6538dd713ec7eba983cca2f2f5301c61b3cf182420066f8ec1d9dc931b1a3a155b6e", + "c23c9442686fca0b7716693975f9edec49", + "06ace92c165f323f1ab32e233bb7bec4ebe239f5eed3457d3397a7f11749bd5f19b6d3b31809004fc38e3a4004a0768e20f8eb1037d527118c6dca1a1fffb26e2bb0d6228d35ca6b7e7899daf5357a5632cca3c32c7a3f1982e2f750e79408d67f662c481fea361fdacbf1de919b22834b1c4a98c0988da546d91440154a9943a284d1e64fc5bd", + "56355574cb5298b55f4372775e1e12bc89" + }, + { /* i=2919 cDividendBits=3359 cDivisorBits=1581 */ + "5f6dc5ee86092b39b9390abe96a1b7ed6a4ca1e285cfa36e00bfb13b6d1b2c6180c19938d918d8a82bc98b0a7b2e4b0261b7491a8e182a89dc45a5389fe56948cabc68ae6568f833bc498973fbd2bf40f94231d9ce75eef638f177922ed71e6464219c10bc261a16575d55cb70d3f8a56e172445297f581aa5646dac7202c6ab215229f9538cff8e01400f40836f18e6b5e328d7a4ed84f461b2f79d7bc172f12f89efed5e55a597fe1dc88db69462b347864a757967bcf0883f9d45ac6b017f874779d718e61c7ba1095eeda3d855bca021bdabab6fefb13f11c19f20af49b6fde0f02ed159f6ee6ec7732ddd02b3188c8fdc8a972198d599fad053effa973acc17c17ede4978148dbd8504fb635a50c003f6968a3fbc214c34993a2e6563a7d9d3d3adb074e1bc6e5d46a140e3f03fce72d6d4c217fa5c814570a1a9420da5e0376b97ee8ee90ae566517f19a3dd7658fec9b7bbcc03b4a564403e58d200658710afd3e02388675407777e4d0ea681b8a1e6ad4fd2937f2d0d1bfee45949cc3a30f09c136ee7fb40c5fdd8ec5f2d79a5967d90c5a51218bf57fddd33a93f6a68f79d4f", + "157cb4478b1a30c3decdb95b80ec2e930b090349ae59823de2f4701928b04bb98dc6abc9a30ab4975807ef527ae6b422fe8b1a20a7645dfa07e3e1a864ecdad886c598a0400a204ab396389604d70cf0d57107275768597a30882f7f25ad14f96992f7854c1c4fc4f082d2c82610ad7fdee85815d8f3114be1540f77f40fba8e521f1eedd6b210e7f9f46139b0dbf0fcbc43326439f27ca0d91b3830dfad6a7e63a98364cbb2a6ded5125955d85c4f20cbc94d3febd0a4837f1fc8714d1887f89172de36692c", + "0470f306ca91c2c64afdea0f3946352be3ffebb7c0d3f5ea9eee1aef5296dd4f062dbe8148857dc562fb8f9e0ec6173727fa21d4c57b6b1138f419f64d9d1731c67e454d3f5fe0b05e8e3f2faed7ae84f844b30357f9dd00f1c69fd0142c47ed375733408f6b009bb7d8b4067d8dea2641caa0b9ccb8fd06d147ded58e77e7076f11b9eaa2a4ec597beab500c34c6e09c4504b252266d4542c40034fd393f81194d044d1bdde1b43f9b967ee3309b1528cd29d26328c4d2b7f1c6c58e7a282de531ba6b8860d3601599a50ca2ed962628eea9754dfb122ec988151ec9a6eaf", + "0cc8020ef88d8e80bf2f622502e5a9fd5452a889d17da4529473f1e1b921a8f78428e2bdbefac4c9efae5dfe8101561a03c27b1218832b43e666908ea647d2535f96e3a28494e7028dde512b8ad1246892a2e6d09a135c3506ba7d40c2f8b90a2060dceeed1b843d2130a4e4a9c0bc285ed84b8def40bcca7a9708f8040270070d086fe6e8e036144d77040efa7392d478d194d7d94d1da6533ccdfd7446f41623ed8e51d546842f7f745535f1e33fb6f6af0c811bded56e6f4e556469a151f42dcd4c1cd03b" + }, + { /* i=2920 cDividendBits=1131 cDivisorBits=548 */ + "0359f09a11fa50f56974dbfba9d5e9b834af5e823ff47114c5f22cbeca6a768090d291081ad52e076d244a3d558ac38cadd1e1fa575b11aacdf132741eda090b6149b144375419aa9e2f2f3b6bf7af18b3ab6fcccf0f42ed1bd47574f3101af63d46a0a9e80b15be803a431a60a384241e9bcad3c2a0990af85cdbab494ecff21bd73a3ed869fdde1da95f971194", + "0f71433b98f2ad7eb51de43e2fee30e2d9212ccab478832f1b338a386ca64576dbe726a2ed6bfb0c8ad455b8ab5905af02cd1140ad91d8ee276d2e8b9a2dac03f37a4c95c3", + "378eab4790da65526b64ca98a2e688f019687e6a04d1d74b72aafe511512782f22b4bce4d3c188baadcafd073615ec95abb02f389a43a19dc40055d4524210b508744bed471f381fbd", + "030cdf237053bb866e33026dbecef2ba00dd5ed61050edc608ad6016988e829154011f93baa4d51b5258ae0f28b73d127f46e7636e79e01942c623b3cf0a4ea0206f41e39d" + }, + { /* i=2921 cDividendBits=1275 cDivisorBits=312 */ + "020ca5500d6f3618c90d9ea366efa955cb7e24b95e9e4e3fd31fa9ce608685647b91eb22d48c0a367ffcaa1ca878b8888793ab97ce4104185d943b977508818f1ab90cf5e80c7498086965a1f4fb38a769717eeb1179574d425ebf6ea138bdd9c1fd299321970d8f0569cb0ce46dfae5c7562375a1eb85d090180ec06e13e5535dadfa69fe65815b7ab5886a8bb9140b550b08d0471d00eeee9c9d9d4f693d4d", + "8b81799055bc1cb0b3937f6c5efdcc558f7a1a578f0d13e6e8c71aa79ab18ef28366b58665d088", + "03c2c0424dfc51fcc2f6bc3e83644b20fd2ca43fdfca58324ef18ef430355b8ce7028374671c369cc00d435f230ba147f24779687492a85d3e4344e10c690a13474535091138dd5a9866a4393d6a4222ca2c2fd7dcd313461de5fd9d3d84db8de2b73f7e10eac6ac4f58c4ad4faa3506913672ca095fbd79ec", + "10b248f3933284bc6d22ce0a9cf487d8bafeadb28014c870fbdede487d799d745a7b69dd94b7ed" + }, + { /* i=2922 cDividendBits=3294 cDivisorBits=2232 */ + "3bf2c4fe22b7b73413a8d6d1dc3e909b1ff1bbc1326ac44ecd32f2589fcc607ca6971f2b38a27e7ee375748eaa1d32522207bd3cfec69cd7e41af67969edd309ea5c5d4b6d7c0889624445c32fc2698005b74754694dbc3f98ff46b1e69f3ee90231e2833ba971b6d52083d3388849cd8731a6dcd97f69926c0cb161a8fe94cfdd4666d79daa0cafb60ad8b292ce66587b23fe7774a038cd734683177a21b2fc08b9701f720b265e995189d7919fd74e8f6fd37416ced4fad0e1285cd6f3898b0126223459ca246de1f8e44cb19c4319d6d984f90e0abb50e99531d4e0e448b8d2074bd0b8c5eb897c1682a6ef40ffae0efe3b4dd19f1e462054e78e8c96c36965ff0284995e81b9529652e5e42f5e49bba8fa1f1c3aa2566cfea259892b958a5a355120bbe4c765282114b9d079fe1138e6242598dfd6ddf3fa8ae0b446f564884cee5dda5b889d806552c40e2264846c59fa95d3a846343255d7369f85923b085792be092e50e79b2d45242a7aa985cdf6b8507fcd5c2aaa8555eb41942ec6139bdd660a7d3bab5e948c06a922a0d491baeba779d22fd611e75f90", + "52a94f2f633d71fcf372bbcbcf9547e995e1e2ed7720f561a5f52efc5fa8d93c53f778149f6f95aefa04b6a6d7c7c554dc3e76b01e3c9ae52cdc7497366de3af558c74d1fc3ebd067bf491011397ce1f4169dc0f08f109ece0cc2f58b533633807102a127871415157afc2a0a5231f2d478809160e5acace2c52226230125396a5144b6713b66fb82bff01f177ee503ecb29f1419b6114ffd9d120d23acde0fdf012c305e57e1ba3c277efbe995e7a68dce7610fbc470683cb513bd4323ca9530810ab01fc73ea42304e17eb4e0465e8987c03df943a441ff529f23253da38602033c1f114756ef17730a0ae50b4f86a7d7abb465f978cfd4ee99b609a7fb8601936537f79203d12818abb96b7c3e3254ac9386ac17418", + "b9a88736a2611882ececef1fee04d042e218b30ebafe50328dd5c2119b61357bf5a09b3edae2a0bdad838f7d50cebbe2b68b55060db897b0b699d4b425dca00887733d8bdbdb12f1eaa0a8bf8fab06c2801d55882e8eebb59672556adec9c9e11402179c4750283a0ebbd63bcd6c7d180ed25c03e8a7ef58b0c16ee77eb5b4dfecd4478cc3", + "3fe1cd80d934bb8c51e760d73e34cfce01c8535d31bc25a69c9e944fa3b8de625ce2ca92f9afa5914140cd6be703050e10cf3f201aa834700647e9caef4cde320e1e88babb7e6c79d52f688c81ae3681a2e4841955c2a62254cd18efec9d906f4fa800caa716b30ece4950a3fd5291dddbf64bd05a5b4b2088689ebba40dc43a370c463614033ebebfbb9c79e133341000011b8f061b7fd85abcd4c750fbb105de55d06e2695339d8a5c354330a860cb42f03db9b11d84463995ba684e7b428bc94537bc51482ce7d5ee96aaaa9348f563431d150080e29ba2158267fa09b38b0d1ceb85a28b4bf3b2b5b5ad3d7630a290e4b051b3d1a389549874cd87a05508ae1efc95921bc7c7361c58db16eef11d6a518fe266d148" + }, + { /* i=2923 cDividendBits=718 cDivisorBits=71 */ + "2bc5002161c1ffa8b2566dec23a7bd9574c3563fa810e5b9a21ae763052dcfcfbfaa2011cebf89b7212406f5142e0e3565b0367484e44228fef73091ff61c322aff8c6fbebfabed5b5c26705cbb31951e2f01c18247d4cc702e4", + "3da5dfd280d8310c0e", + "b5c204e5d0b7a7c7e061cc1665bc3fcf02b79c8b674529a9b774f31e6511edf05643b4586a2b8cc8c66a493ba0fd1b710f3c399d53ca514f6361d9be453e9e6fc81c5231fdee99c6099b6a8579a81fc33e", + "1844d2ae23ef056d80" + }, + { /* i=2924 cDividendBits=1120 cDivisorBits=242 */ + "0826aacdf5b5b070e7bca3f414666bc031031e3a3ec9f45a7681f0ae775427bc0872a8308e793ceba26a078687f731b33b5abba3def347d5c9c576466a9e8e120358cbac3059388c01132e058b5678edfb6b530a2548f489d6f4d6aa12bb0d0bc35461a0f2eeab26a35ee91701fedb5ac89b549089560a5b5d9ff36a722ed179f8dfda7e430e091a1183daec", + "a9d318cab8e9472355de3d1bdfae0d92797d5b45d301e2c985d8ab971e77", + "0c498553fd1e3719f218fc20f1f2432023a6d9044df7a4b79c70f8de3cc3c5de46e47f463ee7ae6eb958c904edab98dbb38bfabc9e05e7d319ecb62e41883800aa1ac49fc66cdc1c40d3ca7dae4dff98dedfcaeb94b6bce0116e9a2f6ad830eaeb58d5950c4c89fee7723c9f0cc7", + "3229950504bc97b74effcb5e8c8e5afab64be581caf8ed7be5a3c9b4986b" + }, + { /* i=2925 cDividendBits=811 cDivisorBits=576 */ + "06158a94a4ad2a34e03936486a8a73eed49523680428cc1544354fad87b703fdd6a0a30c3d10abad3931c78079b8880a3e2de80ce6cc3d587abefd4df4dc5769d6e3a450fc5240e51e2fc7e295af8889d42b375d0da289f7988ee7b1633dfe3088ad6a25177c", + "824945d4784bfde3085cdc819024c475fe09e2c55accb1c3f1d85f97e0a87f34da045df6dbb66a7d0817d909b8583e23cd42cc1ecefbd08e9f5dabd3a0517ec74c8d677b7f63097e", + "0bf46b9016c824fea0a72ab87c7ea0ba37a9e7dda1519de3909f66990c27", + "3710bb8cd0b7f561e8b5af498b58f79caf7b3bf2e30fa19d9e5f47d94484661cda0d84684fac1f97edc44805938d8fbdab50531fe034fde7db56ae756af9f5af21a79da97d4ebd4a" + }, + { /* i=2926 cDividendBits=2270 cDivisorBits=1272 */ + "1a78ae9ad5521d2552c0cb360a6e1e4673ca8fc962cfce85a175637ba9d062befd36ef465dfd9b7d8d212898b7340327bc0082301dc2c5340b73217b1e6ac2002d2c0a32e947619db61f94a134ee9482ad459df7335bd3e0585e32d3a62d2067e106b54dc4f02573058ef1db58d1609689b8cf9751738c71fc4f18f6bd2c4b7ffbacf59f6a614468c9afb3ba42dae2f890e556a494ef0ddb62b54bf425b02b7d99c6d49741747d8a5a7987d0c9f2aa9e74b9ab9bf0c088e4804fc2a59efaa533c4d45a46fa987c2c609c735ef9354151fe1d78f9d0153c00d5c902e1380f9edb7e65d205f0ccf6498cded6038178cc420db258e2dd44975833637154c4335fe420132ede1046c1ba0a135eea3045743a87188d76fc6d5268011b7ad5", + "b57cb4640079b091b166112de6f429ab8159208ccfb35fa4c75e43a4e43fecf89d8651cae174e72b33af8e11fb295af0dc596475ae469785476fd82151195fc57a99a93438678cdf3e5c5cf902a54de0d965543b55d2cfe7a7e5d3fdb39696a0cb9515353a6757bdcb63d95026d4491556c3824efcaceb7f36f5ccb27e2a50abdb60ec80f9c71080d4ccea36a00828af0d8e343d39817e72749bc07a3b90e3", + "2556f9299740651f5ad2c571d67b54685661e0aa93f14ba6778388f3123e93bdd76af1118b61ec73c2cdaa7c3ea7170408667a8784ee9b0c866a96f1d7211e998124c45aa5b1baf199118bbe6a168d78d930f3c1fb1029c119d435265717327e32ed14c524a53c1f5eba4352cf09b77539215477cb2155b5a99ef157e0", + "2632374affd658ca51039b125c628b0d7bfb6f97b2d899b2637c3e656cc5b793e1f071baec5669cd557aa813a5181c698a0bcf640d26d6d9ac10ae79d7a4f7ba2450cc51714ae4d4f9348acbf6131e4aac46ef4a6ad4656ce3b5a4549a7cc3c7397d6bd71ed8a70c53df3390dcfe5a89fee4d5d15228e022650342e6030cfc283e4762e120c166167a01564025a7fb0d54733f8441f9139cb0a6184f0c8f35" + }, + { /* i=2927 cDividendBits=1544 cDivisorBits=1474 */ + "11f92519d551fee6e4bda622af100657897deac18882a68f5bbf960efbda14f86e5fbc5429cceb8c79d2bab0b4accecea1d7a25a057f4d189b7f33fa655f54cc40c60f19de4ede7a23934f183ab2778a6deac99f58eef563ef84128ad0de9136aaede197375e0c13685afa403a5d4876366756c670dc22e94aec38e4a0a137f08d4c3fcf40b2b7c82ba8b0ccc8601978e0af96d53cd947d34a0af0171b433848c01c29fd4051e40873167e678227e2e4a0c449e2c4fe540da6be9c1cf002ac5fb5", + "0224ff258987b7db1d257dfe1cfe7e8780ab7d9432fb1240be713b005663250315c4624aae07ca5fe8d0a84c8f7b70121a803e8a72bf79e8d321a5c9a9f617d700fc9495ead823fbe0a6982dc7c1507b4d5b4a48228806248878e0bd47b23bd4bb9d1e422ba5bac03cb89c96ddb190b2c9b91345e3cd660abe652150621a670a81024e3fa2210d2b1e2e8cacd12e29cfeb3b3650669f2848531317b840390dd285a6e2d5a328ad66615afb045d4cb2c97f528fd530c8e20877", + "086189ad5b9bd24ce9", + "4b1f296b2a9ded4d5b9f622cf61ae38d048d5b415e503883edab28167bbdab78adf4e197c434114af07cf64a93f9fd0b108673e813873d06ae3a8aaf1dc62b5722f23dd45e17bc195b89fc1e86021939c0a25d6ac56bc830e18093aadaf112ede502d57ae498560f1ab8f94f8ad21a3678eaa3bad2da235f6e84b0c52213720e5a915402f0d6127e39509a96cc8faac95c75afac480386ba859ef754a2faa2b7a7e70bb5aaf78173a0eb091753dde234b402860e13d15766" + }, + { /* i=2928 cDividendBits=3333 cDivisorBits=1432 */ + "0fa293b4a6c0f2a62522ec496c49afcc6eed599ea116ba500ee06fa2d5bce28f431f7ca008e373e2404c66e629e59a45ef8d438d397b75e5ea3b5f636f357a370af499d16993c41357e5895c22bfd9afdbe30b177d33131c06b220529af5c7cd315e710814f18848ad18b46a21c44561403ca89b0c4a969f0e9633cd3873f81cbb79f3f9e22ce8afd3d1fc647aa1822785e2e41e807c4a477b263deedd9d95e903f87a148300d71a2d64d5c6b56a9f39f6881ac4d1d7b298abefd687e3068a89ab8eb46f8d98be43e93a55c5554453872551bad658990520e538b88192ec9f4b16be8d16cc30698b1b608c1f7b99b03df1369417a0dad15786311dc88cf84b003c92cfda1f8c1c4437008584199ceaeca657fd82de67fabfeea1d8e5ffe4026b8634d2fc1c20951b17d1bb175f9b33d0aca5be75ac210ce9e7b9cc880973d057c491f90cf9df3cb0599644519082065aa20a61c4818a4cc2f7db4508cce517cafcf8d278dc69d4b90a8349ea0859f8bdce2676f508e362dddcad1125b6e57272391270acad1608da6e0f37224735ac89a918fd8d4d6f73769b7918a5ee60cebce3", + "6984c79c41fd9dfea57c752f2b355d6cf38248e0e9619cfca96bb24d70206439e8de41a576481cb44d175d42707818f1edc6f5370a78d2c289723b10332d156a8cd4b39cf69d7250846fe3d430b7be5a16268eac8f01754c6b06000db84cf807bc565d237b5a0ddeeb93ff87418516692d0f3971c0edbb7d044fb0c2e7d17a96eb4f3d272450516052c6ccfc8ac21534be36b641c1708c8d9d3cf77db9c849af1a4e13cc174cea1efb296c8da4b55bf045a575", + "25eeb21b189f9ede2c619effe2bd14b886bc11fd47203da9b3eda926ecbbdddd5d1a59123790e330b9dafa53f6aef3c7fa62a4fc76d11e5d207bc2a4abc7d9f56d9b04627ecabfaf28b733e822dd9dd4211788c64fc814672fdcfb04d200a83483da405750dce20f49f13bfc5e072f0138a7e1edc3bf1eb59e573cddbdd98b24a34bcd3df77aef730afaf78b8b07dfa809253a39b5e115e928a99392be5dcb87b1d39a2a7020c5f6f05ae075b844f0617b637574cf59eb28d6cd10ea2d8f60fbcdb0d011700e50baf521983d51c637bee6f5394bb688d9350a4a7b742b283fc90a0b400eaefd72335462454f5d19", + "408aca9e50efa6a868e39faad643e64a640154085ec70001aa136e2d23afe5aca09eea69c99fd7a7b3cbda99e8e35f74b64a6981f3f7a8a657d3ca4b192d8d65014c022c7b13eb955733c1b419477105179836230b1fac374420b9c9115345b6c79ede59b716cb92eb72f7f1f3cac46e600f64cb587e0c011a0e6c2973640a78dd1a5378f83a0123a81ac614fb29a4f5f61b2210d5a6657b6794d62e635a981123da786a45bc88b1a35c9f29bbe3ca04cb1376" + }, + { /* i=2929 cDividendBits=1920 cDivisorBits=716 */ + "e4d5325ca2406a4c0df7625aa9868bac19a1336868d9e79e665fa76b7f89b0f26e5523256ce7dd69fc75528df8a9f53d68489d659461641dea9ee71fae0883d1df5f02f4b078398b962a5a5e07fb75cba96373a01af42ec5cbfc990a1ae3b855a2b33fea165cf611f37e95b24054c1d55f44d847cc381b2dffa59ae8e6ee752a4f09c6ffc458590d49d68bdbed0c243af166ef7f9c4a99a0585972d7863f5c350af3afd1d148e4818f2f4d92a500ab33869a1921152eb22f9a9309edf4f15ec2a86cec11c7b3cf3a720a5a2ee26070d3a8e35f3bed13b3c52e3eb6fae284af04669143d0c2401d48b22c3aab765d736e", + "0ac322be5b2a504ad84caf8272932c9b4d6ddbac7985080b29dec17963b45162c1075dd8d7b934851069d6d83b8233505d14ededfe72620fcbf376a303ab81d1dc4e0d480766999fdb0b7e07ef83e6f760e11b963773343b65be", + "154336237ebdae71ba9eb59201bf1a8af6fd67460e33f900dd2dd258f5686ea77025cf31df7112d6c8096a2ad93f879a0fbf11585408ddeaa96f30a49ced7792d7e8e194fefdb9b3e5a546bee932c6bdb735cb3b0c770c36f38d7ca011c921a87084ae5ab37c19165e94ac5cd50d479f3a3587302221a4059f01282586e550060f84653919d9c8a075b5fa60117947c3ff1352d0a0686f", + "0476348687823ea1fa21a12250539ae84d05ef0877f4f52ba7eeac35ba557dc6bdc522fef3b4b42158fe431e27dfd44a560bb9ae9a89cdf6b23db7b4c5375c2de2710ee7c7f85ce83ed2902b922a2092c2653d3cc9d9b887260c" + }, + { /* i=2930 cDividendBits=1827 cDivisorBits=752 */ + "0715fc7f701a677a1564a83b1c4a2bff954bf462a4a02c53c0bb9f26930a0aeab3dff3ff0723f8e31a947035a9b0ca6ef58d9ec01e71bdf5e4f9013c55edd235a3438b546856114d4f280ff182bea7f822e5e0abbb0e1df1beaccdffdadfb1f605838517bbe8fd6230f89d1d0e5f574c2d07471a13516a8e703e9efea4eeb1f647eba571a58d97ff4924176eb3b985e6b9be8c377befe6415ee327e4375c98ac3ce58a6d199187755dad9e72f054dcc71a9bb43ed22b5bdbd87971840bbcbc8fc8240fd09b445f14c7fc71d91e8c7122e6d61754f0f10fcc21d22f78e4fae9e6a8f37e9517", + "378c59cc85d1a742c052e37f6f5ab255fbf5da96033d074e7c823576773b428c014adc99c4c3ecd70349adfe99abf3c9bd9a9ab0021910f785f26dddc872727936c1886998f4f8986c087e9794498d201c75be6d64b9d401a6f49ab23cd0", + "20a7f2f27e3ea97bda6b935d6023841927fa8ceb623ca239403e61b889942ae9d381f4a28e6bfa3216273b3496dc5e7ccce7bafb45c76d0561d59006e92e593a05f9cd09c21d302c7d75e72fba249cb8591e69d1c82007e5db81f4bdd63bc8158995feb8f29fbb39b5d891f4bf729f6a9af3d61d17dcc9ac0de5fffbd96a7f27b3f303d6566871", + "23ace061477638982ca52fc2cbc7ddb691a8ee2abb32aa1dfbaab466f238b12425b88dd5f08b9bac82b2da1e4e7b3a3911031b0a0f98113a588166283cfdf209d559d828f4ad10d6ffb59fed5f463afe4a8b0f5129d5f59eb8b1f43d3d47" + }, + { /* i=2931 cDividendBits=1397 cDivisorBits=1 */ + "07cb646f4fa0858ef9743454d0dec84960d7935f419f523499b608de1f8b53c674d18f9b5cd37cff38165c892b54beca13b9a4ebc99208fded828599b6398f9222870ccd521b214bde4f6417b9feffe8bc1697ba44a1a9674b4aab8a4d95781d98f9aab567c97a75acba319c9f54ec7e340b1ec6fbae636696a91f647ec3928380f4b18ae9f57b959bfe9a79c66c111f8fd82a05f7efb59d6b6dad808ffb63a1ea7d54bde6cc7e7f85fba0eded1fb4", + "01", + "07cb646f4fa0858ef9743454d0dec84960d7935f419f523499b608de1f8b53c674d18f9b5cd37cff38165c892b54beca13b9a4ebc99208fded828599b6398f9222870ccd521b214bde4f6417b9feffe8bc1697ba44a1a9674b4aab8a4d95781d98f9aab567c97a75acba319c9f54ec7e340b1ec6fbae636696a91f647ec3928380f4b18ae9f57b959bfe9a79c66c111f8fd82a05f7efb59d6b6dad808ffb63a1ea7d54bde6cc7e7f85fba0eded1fb4", + "00" + }, + { /* i=2932 cDividendBits=2907 cDivisorBits=2475 */ + "071900c36098b8c4298f2f96f2e899aaa1686fa7e2346789f78605d88b43c47c9d570debb8912af43164e8f6ba492202ace1ec7f1906e4652c1df694645c4bc5ea7f26afc5c39ad27d7768b39104b5f01ad12c2efd463cb2cd4f5d95d50ebd9c90552e8f97c8ce6512997044df7a87996700da5e4fe3d79e67acd312bbe31d68e77da241b573151f10129c7595dd3d2f00fab821e46d130f754738b96b74142ae2fa2187fd269a743bad19355a6161d614a65928adc013e1a145be4abef23ac61bfda08bba4699585a07efb8c7fa58b6d2ac47101b47a305b6e7245b8fce170252a9b6a2e78c9763b6e7c63eb4ff7e3a6821fb06576189ef29ac856d1cf7efe5edaf06b77b4683b827b488024617b2807c3d9e10f1839326bf71a31e4594289521da7b7225746758530040ea570f201516dfbf8f088b533c1c999f1f2cfc70b47ce854f3baf96d7b33b417a4c94d8eab2ceaf638aa2125c20d6c8cdfb0d6188800af0a94f5436ca5d71e28e1", + "0656e1bb885852e563ebe97998e2ec9b3bebb7b3db9ddd7549698da5e02ab22aee31c269fcb2537a965df3fe35260b456ce5a1464bb02660796977082a19489906b88de058579a1e002ca6a82dccd6605040af25bc934e89a52f0aa3e836d16de3f72d534eb1d4113653909226e2f4bc6f7c57430cc5e95e94443f2cb5f3f97cda24b8a23ea277f5115ff70fb04dff3577a8a4f79d070525281a86554935c2fd44c791c4907e7d7d785f80f60158a1c182b73f98a6d73f971130b781f08517e2324362a2ab1dfa523818d85dd2e03b21d8fb53a77424fa37132b0d5b09708e033d3d4f93e35d45dd03c23a6fb388affcd1d5c9665e882ac8fddf97bf994f11aca4b60967ae1470f3d8008972f5b842dbdd22c02e4e11bfe7b424507c5f6fbbdcae80de26bf77847e6543ed90dcd551ec73d81dd3a753", + "011e9f18defe216de755e16de812d00ff8f07047be2504b48562765b5698cb5b534dc642ba751362ebb36659f4cbded7e972e6a117572a", + "033b04e3b2060dbab5c3fae7f83d7df2f420324b03a9677319f0a594b83fb5fe091cf0952713f4eb6808a414daa3785cb18d372bbf701bded7b6d7a81b326d66339ef04c85afcbe857a3507b1b18b04975b522ab92b049588972072a4c28f211c11bb172f9db2d0532b7f641b55248fb4bd82237591eb87be576da81773980327aa426530dc4288447ca2acab18342ad91b6dd1f572b43b646ae4ba8fafbfd1898d0cb57fe3626c19e6d4aea2ad48530e4addba9fe58301e1ef4e6eb1f889e04cb25151daebf917c9d5aed36cd6e1b839ac035edab5ac33765d98a3ad489f9a41fed915f364a9a40cb3741e5aa979484b9d34dbd527d0968b6a449301dbadb021ebeab54f91ffadcc889c00af84d942653e51e1babff66b05f0d04ed82a48980152809e509ffbef1db13ec121c0dc9b6e43cc9128043" + }, + { /* i=2933 cDividendBits=517 cDivisorBits=218 */ + "15ad58319ab33ce7a40d4e1abbe267e63d4ba8fddcb344b0455420e892e5800bc9d887232e9eacf72d0aa0d687a8e2f6cb9aaa38ed8da087ee463a668c147e3849", + "0260cfe1336c2b7dd719ca0a9d0ce927bed1be284fe6952d5fbe71ff", + "091d73199bd63d503ad3751b45f842010e3a918821a35ec7ad5461bc288b44c691b2a2a7c5a9", + "4b2a47348e17886cd0da6ef63d1f1df3242232b6cf553c96b2bbf2" + }, + { /* i=2934 cDividendBits=42 cDivisorBits=22 */ + "03e0d34547a5", + "06943b", + "96e85c", + "8a71" + }, + { /* i=2935 cDividendBits=1059 cDivisorBits=741 */ + "0604ca21af2954cd42ae7733651e6db25057ba00da6d68aa0a987d6c2f2a937f3f708ef5d048857beed090011a8f07bfa4f675914566359c347d7ef153917372564000f0e0b9b04d34878d152b361b57530dcc182c87c7781c2109d9a7aea1d21ca9d10faa1bdd6dc681daef419960f6e46091048b01702f99344d0df7845fa326db7eaa41", + "1a107b76112ab42bbd49d3aaa2c21adc2eaf1556bc58c3b7c3a6e66546500014a5473f26938cc02d95975b0d3f6ce2ebe68c6a4aef96ff3d23d88d7d3200969534f04fb44796fb4e0302b04ef4d88d89de5655cec13b42c0c2229e8609", + "3b1d605b68d5019c2d658560248ce1390d40eade7e92a8b7618aa35658fa48c465018f413c7fee10", + "010d6471e31b751f150c292cde11ebaf074524546d8228acd79ea6ab7e734b881d702ac1b0a4097e3a96ac13a610e16373551b8f9b9a9f779217aae5873d001fdb837c8bb78684156e57c82ece2236aea86b133a7b366ab77db682ebb1" + }, + { /* i=2936 cDividendBits=4035 cDivisorBits=1591 */ + "01a24cba53a004bbc26247984b36ec2da9a3a73634fb2d06ce5f97fbfeb1f35ec166a98ac043fc227b961645ad59c1d604f31e38a3a403764e497064b6846986287fbb9358cbf78ef3a833c2ae96534ab2b5a92f57fa5e5782944abe64929c03b7a57ae3925ef29f30578b162a5702840b0884fefc9eb93b378691095b26fcff90c54b9bbdb1f0708f06aa0f0f6900a3895feca2caec845e430a0e9079c44454925f2d6aef3112eba4d7b310d67db50d2160afd7ebb68f8e6f1066759f79894e152823fd6e50a1a5039560d50c927533d2eba77331097a200ab4409f4cdca22c28a625c6c5f7cf6e4eb987ae3d0927cf7ed33912c55cb2add92021143d6ef0de12785aa253b09d48ef4e1b1c6e458da9c380659a150c9ce6c5922c845aa076de70e4aec27a5196ac4a20d1853f44298011f35bc5d9c66db85e9084c706d5d33bcb23693c1275050f22902acc13b81fd6f24d475c219da303eb3588a1cdc1a779228f71952d2f3b50b131df04887d6550cba8da744cf5afbcb3daf0b8b9b48897945e732ec4f9a938c9fb6c7070ded2bd0ebf0c609d167a374bdf882a740d0b3a8ad1e7a73b0906908a999fb3355522f7a12ce107f0f83ef29bece04550a8b96e58d8485753a153e7e23e16286691ffe230c9fcda7eed131b87e7442dcc7e4a253fb3e9d7e2691bda24e9dbfbeeee642fbac0994c8c509dbf97", + "095f76fb3218216a81565cf35f81fca9c40813972b3ed0f4428adb103e32800909f1eb75cb92b826ae02a10a3c33dedd66db86e1688d68a527526368b48f9051c76b1427b4c92ead593adf7e9801aa6c567da0d9936721a56bd36fc2b03426887c0ac6f48d11cf54e492339ef8afec612ab18ca1c59bc91d2bb7fc0b7e69d75c4584aea7e54b04f6c46b16152b5ddf8609f9c4b494056898b44f08b31b1c36c568ace349734b624684760f42f25b8a1ff2cc53f9647bf8c6c5eb2836c80f5a2f71561af013e43b", + "2ca0eb3adf17678cc3a0d1e1b7bb64c67d0f1ccf95fe02d5c67ac07bad0cf257867fecfd382040db9d14707663728ab8f9e3521bae0444fdc68ff04ba27ef6ed4e0a691f4dd183761d94b6252e7f36c0dfef9d1a526e63dc083172420860a00c59ac311b06c5db322aa0054c5e167ef9f5b77315aec78c2d31ac87185a207323754fa2706c4ce40b50aae6a349648d8ba9f76c3c9d326212727c12939ef078db6fefb893660e9bdf640cff6474165f48081477b830e06a146921c54ed5f33c351ec5ae476dd9548645304b100dcb60ea88e40cedb89e409259f28a3d533aa27070f844d11c2648e840a7227f7ec8266096f2827b5256ceaf1b18f4efec50ef6cbda507a4c1b6a389ef6c9b66fccdcc1de405f81ff40d3fb03f86288ed57df1f304445b22d4dc92e953b1b063e67a1e9b8ed6", + "03c786dfe90a31c46b7bdcb4ed2acd3c56d05b9e59eaf9d373183a4905394a6d0f26ee423410f1663b0f8c0d2274a7db4efeab0c720370fac412f0fa70f3bc0c386a6803a9037f329bc18b5f0e28edc416c44a0b265ee96fde68115bba31fe985a5b403e1fc538d55653468b1da1684ec8e84ee882f71a8c2c3c7b81a4e5f22e502cdbc173b646afbad915097e64a9743b66545ff945fa8f3ca51fcd00ef22d96a0d4527e765ced3a88671d300fc772fa2ab51ccb347d3bbedc3f03c2ea362d44de9f47dab3c45" + }, + { /* i=2937 cDividendBits=1660 cDivisorBits=896 */ + "03ac32d7be3a664fe8961e25dfa1225590852f0832b9ddb2b8166914cb9f822d470e29a586c201b0edace0337d1d6d86d5a20f7145299b0dd07f78466114d1e4c9df4b825592057b5c0b22611836ad52ae770872c2734c294e2b24176b55bf356a36648e0a675597fed26a3cf6f625d9725f149bc021532d013dc0f7c64fb0650eb8c71d33eb9b45587711b9cfa9c9d81abf309f82929e14dd4798d652976ec556203528658312f3f0e9c08a27b5a9dd59c22d9ce1d64c0ecfc16368e73c1d0b9c7618bb1f4d5b6969f7220865d318e0", + "4c9866911d5af6114e79d4d9ded17494602cffe9f234771ca09c2c46528e10960bf55d4f1992f5ad7ade6c355e0abc506664c0dba006b72e3369d7caaeb1b8af8f8d8c67ca7924938cc067974e2ddbd63f98c61bcde0a60bf71a011f1c0d2eba69d6b796b9ebfbfc9ac2f9defd0a6b52", + "0c465ecba9532b3a6ffeb7776d040b9260dff1d50223382493a2b61664a1a37290e61221dc198699be3263a7e53695bf1654bdfd3cb61094d69971d7545ae782b3177d5bc8601fedf3b2d33a7bc50705ac799ec6d0d797ba139278d94fd72d91", + "2ebac6f3ede18cc44198bc20aa28e14947284e1fcd19ac1834a03b01c384f8e6ce8643ba617a477d7f873f82f2a8df0231d09e02aeea872489088aa8df97d3b7111b0a15734e33d8741dc125ddc02c2dcb970923647c423fadcaa3305adc9bcf1af03cad5d585328265744dfce30e56e" + }, + { /* i=2938 cDividendBits=748 cDivisorBits=588 */ + "0d5e94a38fc5a5957f7fea3094e3c0d55ad13e1244da39a7a1e18d1b73c5ce86e0d273d09e2bb01ef296e02ec4560469264d7ee6682e2ae3857445686f9c5c693ea24d1b9a3c6e89346b22dbc06c2db6366b494461861b78fe3cf01e2d73", + "0cbb5976207dcf9349d17c04d6fdadf7c80e8859cbb80219f49b59be807fc84683f1b2f28cde5d42498321b0ff8b31a34e4bfa38ae2d22f5f0a5aa5713876b329a1c0c7c710b082084df", + "010cd21a1dd41435b45e0e36ce9571fc2fd5d84879", + "0440b2c5851ae5fdc632124286bb19f22164314cebe4c74f908de5b001219d8d5356d74baf892e7980bac15741fd361c34dadd2b603049193f48279b3b395cd67d8ab397a2ce4c38a80c" + }, + { /* i=2939 cDividendBits=1982 cDivisorBits=414 */ + "06b3fa4293469310b746379c2cb291bdbab196719d2b177e09814d5a4c0c5323825ce4ec323a9283db5d4d9e1f6d8d9adfc488e45c4c150fc41482a6271472268cd9a1451dc7bbbba89c8b3271baf3cc39c17606b9aa0206abff07a90e538bbd26337768487779c28b6d6117a6608cb2f5790ff74b2cfa34322edeccc13d8a7959cc4e500be5c25f62847e0e4108c50c33e4c0bf7362eb8fd1a819bb1adb0cabe427b2cdd0325e8318c2f591920136d1d87b9a0f85d395dab2ad8b7ec2c9b8a987663c43f68c8cd56df8913e04931066a4827aa15659d5457417ab64db1ef05e6dbdc377faa4d7518d6c08e1b61b400be8fa4f2918b84847", + "0bc6af7cf2ea174cb537a7bdff55aed766ec6a7bac04cb87868b65731cc0099a7dcbd5776ad11978ec0abf42a27750752acc0d20", + "91b77ecff682cc8c9103e8abf3b8ccd3029e744b94c1c6b7129b11e1640f2e8f0b4d912a4fdda26f1eb91c4d411aae7973b0a592de1ea5bef99d46b3bed76bdcc3fb71f54ae3f7780b2fd5d04dbfd215fdb34eac3ae298aa611bb2cd838cffe5bb0fbae6876fc1e6891460af1048ec0eb62e6e60e1a120359b96cf14f4ec296b0e0898636650524693e53085d7c3f5a808a3506c92d2605c33eb7ea47f6fbd92a68cba43639cc0a7ef07d024ca0b7598d84753b9b3740f119dbb103461312b9ece704c98", + "04b154ff262c0c64e1207efebd5ad0fd5d251563892205a205ad550c00bfad2e77705dae0ddfbcf64e9e4e4637485b4d9daafd47" + }, + { /* i=2940 cDividendBits=1932 cDivisorBits=1774 */ + "0f34907c42fafa080a559fbd6f73fcd58cd312141374826e838a8d864f4ad6205562ec700bbd94ff6a7b0687ae937ed7b7595c186e71472dac275967732aac850307cfb3a55b52feefec89e7027c22d98e0e988f66f355e030a5a71f704596910d668ca26d1f8c19082437b58260c7246dd65c994eaab350f749228f89412a940c243bfebbf28efe93cbce93b1158cef771e3df6edca2927fb8eacd3c650fc71485b4abb83df333d6d267303f468c9a65aa2b9d5bef3ea7888e3f9276916ffe510bff66488a57e9e2c89df632a865b982e4852b318d89257b76ea0b6bccdd1d76bbf8c08df49004e0f99a7935a611cd0d2c2", + "036b889f4a79e6c915bc53b00d080332486b5153db3fb6a63339ee7c887643927f42c7673b53533fa5f87fa204eee5c395ffeab36491c80a2b963097674778ee780127d33e4c6c3c8a86866ade7e7f575eac8d5a4b7e8c66a49f58c209b862d7ca819fe9ce6c7f3438c264578b2c72f8fc8a0409b48960797c2e594d1631e612dd265259e4c3c1f52eac999afd6207c5c4179a8318a5bcfdc9028d78e36c58c800cea72c5836c91fab5b20dce6c76d041833e5652e87a93a42416310cab48f810871234958571c74ebbe27eaa751b320f282ce010affb8ecfd6687ccccfd", + "047228b042668bdeee76c17b5a834c36b11eb86216", + "0111e216a95518add57a321cf31ff81edb988d4dd92beb07424e38406289f8e1cd6004b79c35036a34560aaecdaf7b7b9e596e100faffefb32956ac69206a87d0360eb819bb1f64d03da4f50805d7a00eeadb337995b0aeea7a891039962585729b7cf0df28de8a5d5e86da57d705a2e962df9bf3b3702f06f40d4e96e4db3ad27be727191e4e9ee1bbe7b77ce37558e262b88b7c36cbe3bb9b2179805952eb2444f28fa22665b7c059b3c1a550a2a75007fce514aff3b3919aec56f6a77d8a1ceb156e8160fede6622985ef31cffe1ff2e92e10f69f7aa59f6f0ee65b04" + }, + { /* i=2941 cDividendBits=1337 cDivisorBits=797 */ + "07ce4cec5c6dee60eea488aebcbc2091391424a1479ffccd56e5d7a638f4917d7b09119396ff446c749cad046babc319c69c11dc46101d9f4094b6eb17a0006a458ba128cbe31c7ad224c379d903bb63826e65057b5ed3b3c3fffca6c902b7f72e6251dba893fec516a08a9f3af7e9614d35d0ac0ccab6588393f6eb844dc5c8965108ecda51dc365a5a4fcfe2cdbb66dc3fc5ec5a4dc86c8b9da29c5c32586c330175c312036e", + "01e397f873a77d5ab83e06fda5a6fad6975851e4ecfc1fcc2f788393abb3178e283d72cbc367e93e6f4544153a0917c032601b11c3eaa40dc32ae82746897d401a4055a0cd5c788998968c093958ddaa693b29ad0ba953f55c473caea6cff368634f5bc7", + "0421d729c3d0f15559556f5ab936994fffa76412652b4e5c41dd7c53703065756e9d6a10658004428b531f9e23e1f65a5baa0bd56e9296be3e10b4a0c711ccc00b746b6c", + "bacacd4cef0310aa0bb7a70b602843c3fcf626d03579648e0d596385f61587ce76edd5a6978b2fcab6b8f0ddea7f4b57da067abaf2c7f5d9c80d9986dafc5d92f5916023ebfb2bfb52d299887d325f9857dac959f6aec6fa02c4d6d84bddc28f0f1e7a" + }, + { /* i=2942 cDividendBits=3675 cDivisorBits=2080 */ + "02dfd6f8fe5dfd4944ae187f05631be718822131af86d4c4e125d5e97742dab37d5bca6f377b74e30b2308b22b318bd742071394ef623f2354b63a73d0ad7268f92f71a87622aadaa72a6fc04ad4765c3845dd78b780415a4b88fe9b8cd37a5289efb119ccac2effced5b559a516737d399d5c2423b1b6bba3a03b596d2a168d648886216a6090445dd3604501e6878d18882cc1deea3988e5dc84b0b6f67d1a4e04039c3bb869d9bbc953b9c102fd62512c1edc255d9cbdb190104d01c269caa039dc03da371757ab3fd98cac54cd55b4b09317bb8769acb16a233b3f2d9b4f6357cbd06998ecb684f4131b1e69781d59f5c99caf5394e86c9509657729359e27cf2ce529172a8410f0a05a7f59c5236686491c110a919e7fd6392d8007fa944abdebae591c56f7f9a955b3de5b6ff8f4bee3f2495d5a6eec5f112f876a09a0f33a46ed97a05327dc73ca764616d11ac6ce3e801ba611c0bca527a61c662f4c81f9f527736725afe4dd4063d89ab6928209c14b14120abe512ae1289c3b87805f50775b2b9031d4038c34fa1d43c40c0e9edc694635385ca9610810b2f74ed5ddb78a096c11d623beb2b337238ce1e84da06449e0f420a925bbe700369e11554652fb45760827b52fbd6d65", + "1b4e1dde92ecb567b409def3b535a1c350a68366f84002198cc5a00e52fa896a11a7b9a61f8142d5c9e60f42145fc24f446f1c394bd865ca9f6787fcf4b5525faf9ec7bb2ffc069a62eb791d2fd098b13f687db88ad3c5fa4215e7b91fc50414e1e22503c868375a4bc0802fb3eabe631833608b3c996e73142c867603400c11c955d1857de92a375c733fc2612376b02cf6e72aff566aa99eff37bd827c7c3f51c22795cbf3139aad5b33db118a09f98b4057e31ad297bfe126bfada2001affbaa207270e00c331073243dd301dc13cee7fa6d6e0ffbae8dbecca8ed87c48c12e7a2b6e7bc925d4edf8add6c455461cba1624e1d9e2326df75dc83d0e8b7c52aded0cc7", + "1af2e1e5a7f181c5d440dec976647d90e666abfc874b32fdc720e342681a7c9ca8c1993f936f37448f244914fc21a5af7898120c081a158028c67853e86af1eb1894883bb427091c09f3084e99b26070faa63b8d797dbfc4bf8b7352ce6f8f1f86570a874c63ca5ddc27786e5a2e109dfb7493ac96772646f8f19033510588999c16ea9e13d4ab5427c19f9138f046919a3855912de66d2c5cedd72a76fe39a8ceaece582c7f1762ffcc0e07f029c7ccca0e54b5c4a3b62b7e9998d72b0071e6c40b6c0edf9c05ff", + "1774993372afc1c77938314259bc47a73fe4a16d76b681a41aef8c19b380003dfcd8e1bc867d1a1ccefbd643cda603dc0a07ad26a85faf4ca65f6261a4f54b0a76bf122005d6130a30d310aad2f7aeb164148314dea0d685f826899eec0c1a26073aee66da2141844223873c63d0dffa67c07aaea28b4cfb967f6cdd859d3f1893b8b215c6d5870e33f9a18964feadc4ca30f810d5f5b0dc9a7e7415871a16376de775101a881fd119976d587f0e9f3790d407a8b4d0a7e0272009a8109b11514bd8b9976ce5ed694e9e6a8721200314237f3cd370baffc409dc77a9c6939f4c7728460cfa7377952f8530161b1c9b254718550bdf733b683ab700380ade927d2d19d02c" + }, + { /* i=2943 cDividendBits=2064 cDivisorBits=79 */ + "965b7c7c538480b8f0a043bff70d0dec7e66e5c1d7c9976fc92ad2c45a97e3fb0f357944e3082df30ed24e7973311d4438ca4ee418841ac1005adaf2f05092c0f1d20300b103b9e7f163154790c642c9238d4dc53e3856b0a40cb7ad0b0be229def1d1f84510068a9fdd51809abfaec59545a0381c038885f678a2c809b1517e63984dc25dd5f7e31237bac4fdf3a091ac62f55938a4380a9ef8f0fc0dd3b8b5854c594ce1943774c3b08443fb272751f5998ccadfcb327a0a72bff1697fbeff78743caabc17e6248b2f012248be92f7ec48e147396ebedbfa24a5202353b1bf4a684122f170132e43159d26bdd66e2fd7f6d63852dffb7ef4d70eea0c52280d1ebf", + "3c2a6a3ef42c56d52edd", + "027fc215e255d3ac7abc6182a1639e233099d190333d2b9a2cd4ebdc2cf7664e142b0f78cdc19a1ac8b3249f720fdb7acfc21c016aeda394ae7e8a2050470b03ef3a107315d467f05a8e38bf2539450bbcd8f115902306acb0b7304fa4ab09f444d292738072ec814765a773b138c6fa6beabed8d0e49b48338ff908889ba815fac181c58fb8f85fbc61d5132b8abbe9188b78498510b43414be08bb1a61c5cacb3c871c3792c0b2aec74f6529a43f4c8946dffc14cbd30dc835f484ebbfa486396e105cf4f65e114a1974c1dbd26d0a0b71d8e7760ad6843cb03231a1887fcf3cfcf4acbf9411fdf535a554cdb91483e11af85ef398d4ca0c", + "336a535c7f94d8108a63" + }, + { /* i=2944 cDividendBits=1921 cDivisorBits=982 */ + "0166b482b75cf4ff0e53d83f5e15278fc567e925d67aa00456f4a770b9a0c405353114a59f7cacfd56682967639202f4e8f727dcc81f641f01f0be390ecf25d8107def1d0c961a5022a2c024d9d7eafbe99657308a444548b54e2a1cb798cffaa904f94d11ca30adef5b7de946d2865449c262cdffaba9d2024c88195a2824abd831dc26d5ea366cf9a1a7cff62ce5580b5afca6c3db3f6d19c212f0ddad11b4720abb858ec9b26a17eaab5e68192e87615473c13f8f665b94e72c3c8c1f1ce4e777860dd31c8a0a9270e8ee2c91bca959081051c6e010e49440759d8a77fb42e309de3070161a05b35eccc7b837016b0e", + "320ba4ae2d94f03483fc51b767092550d3230dd49e813a86db9a0bedbe1feabe71c8495bb03da740a69638cf36b960f140bed557c035bb630429bd66e86071e37093f855f1ccd2e2a00834f9302540339c87d19463cedb2da303653f44a6d897bc44504fd1ef7be3dfa353715a95095b9b4186d7883db6bbe407ff", + "072ae6b059eea4cc58b823b4f2bd3a5116d0927948cafdb2d193b224549adc655ca9f6b624b3402af5488545146be54758a68926c93125b862b8f4052e97676c2c0c08bc145dce67b693c3043fb6537e14b0dd487bfbf6b207e0b16d99ec63e97cf461529625b9a561661aabaf41b3ed6669d619f5bc", + "0d5ef63ad509249186e7e5557acd512ed2791170919f4820e959823fae761e853adb62a5557a721e1acca291c075a632312ba3d29bef6acf38671a37ed7d9d126f1e11771aa3704c535dfdb2688db5827acc24651bbbd82c0be98a6b9c6a1b5dd89ecc0686fade278f8a5a02bb98ecb1520f414bfcba2a0dfd80ca" + }, + { /* i=2945 cDividendBits=180 cDivisorBits=176 */ + "02e6a09775253dcadcb5f4b5ff8186981d319c561cd432", + "64352b39c115810a8f73d013c4b9e4204355ecb67729", + "07", + "292c68e0dda74392c9ca057520715b3b5a42dd1f9213" + }, + { /* i=2946 cDividendBits=2205 cDivisorBits=553 */ + "7f0f4bf3d1ce7f325b6045a4353a4b0997d23537a66ccb994b2dd0f0e59463700c872b6592fc291f428c17bb23da14ecd72ebbdc0216da25d9e3fd9be8c03c7558017fe6fe46b07b7322e4383a80d6f7f708907c958f04a620e890d7442c89af3f844261862fd968f43e65d1c125653f82b5ba004a0066d145f3f2eed55bcf7bf2aaccec28575a7b8d8fd71a08f43ea5862c509e77e30edce391316d2f870cb70dfc6e4a860ffcc4df3546057f1f7a1b3ae62f878694151e81283e62275f2f97fae77d6d3157d64e7ff4ff2a2bd0db3c70b0bcca7b3f7426ce797f4cc490f2adffda246d43f5601a102c919221cd2b27d8c91b398cc8bcc0508cce8e76df343d61f4367f7a926a4c8ef7d953967b899a9de93b", + "0183d06283b54bcc97d21498481bdfa641b6bebac402b35c3fa746722dbf3c2fdda6edd9fb84916e5285314653f20525e8a9820fc6489293f70d258ce6edde98905f4aff78b9", + "53df9a20f8313abe1b7d2c6cc13ca3f32870140ca23685aabe1eabd2d7338668dc74ae84f9a9d377373aef5bcbf04f1c01d8c8dc76e02bbfa3c8f2a048e4c273323593a42dc552e365e8946d16e66222c19ccfe73a2e132bd9253143ac4af76b28b7cf6e641b5f89ae586b3294e42f632dd084cb6351ed7a71b58761e11f5ed18b85581a619c97b961bae4fb92f5beb776583952bcfc2218602a8228b752be5c3d97da8de53b639c29198124ca387cb634d34909c8fd63f7ebd2693b232f9fb417b10f4ad98c4cdbd27a9d2592dd", + "683ebba16762b063e2563736cdb24c24405b4b50296024d96950c5f3aa5bae9d97780d37965b08431a9d3a964a2ca7677af30a8a61317398cfefe2677757bcb260417c2f86" + }, + { /* i=2947 cDividendBits=104 cDivisorBits=64 */ + "ffa470eaff0109131d3bb979ed", + "be6d870fc9c2f2bc", + "0157aba91ca9", + "46908be5e55eabd1" + }, + { /* i=2948 cDividendBits=26 cDivisorBits=3 */ + "4e5fb3", + "03", + "1a1fe6", + "01" + }, + { /* i=2949 cDividendBits=3456 cDivisorBits=2468 */ + "43b230493b889226bde60543e371ec5e2d23434431f1269de1424df48b8cf9943130d1376dc980871c6545a8d9ed4e6a7de572b3b43bd47879f4002e9834f43c52f7b3f9f4bde4f0b7c8f52929bb7aa814ebf45f47546413a78d5cba6281c23c7551271af78e89f4b7698b45dc258c2f9c6388a5ebb807741e316cdc057e1250eb534ee52e2672293acca7a7ae492e6575d8d7684731cdddd3555192bedffb44137144d9bc53f7a0b22f27728e34f6ec196cde6f15634554da95d55b63825454620a5e33bda4b173be2b7797ff4fe169736aa064996ef0621dfe68c16ff64f47299430b3c2bd30d31c22a478c4eae6a6c8b01fbad8f90bdb46cae8f20666f3e09c739edc497bc0856c13f0507ffa5ae51493f78c6997f2364d2c7961d007eeeff19d87a5e0c7402ecb7f9c647518d55fec6aba73a237cac228c08f4c3b6c01cf180d0765935f9a38274e11681874b16a5089f06d1d41b913466ac61b3a85e244f7f34379665627be59da3bf0dae7fa80a45a7abd64789d6797ed8489abb5ef85c0f754e7d18098472d0cb48291d1ae3c982aa4963a806b38f9142bbac3ca9f8cc445bec4aecacf36e730565a4cedc8fb", + "04cfae8d0613c95aa5bd6e7f9515aee797879ab629f37aeffe3f0442315ce096332f65fa712ed85f844faf92b2fe79d9a685bb1b42108342e7d1035da91e9d94a8f7e0154ba46a183b900b3f899ed1ef59ea06e718354ab846a33d7d7cdb2ad3ca80ea7ff0efebb93738efaa19703ad5274e04111f8d56d6f2effd092e979dd0acaeedf654963650e2e79c9f1015de3502056f88664b56477b00b1d2c8d866f94e5a1fd08e3f92f6cd30697faf58e4e971349b1af7695a6d2b89b68cfc24a2194416dc8b087154751b16d63ff6b11dc7f9905a723060cccd74f270270b1937e163c5cf1cc8be554e9b9120472acf912baa95fce1ad8b27bdeca022a179a5f1beb41fc0985cdc68781cc5fc89c0cb8d94d27009eae4c6897e39b01579f91176875e1fd7c4d164a650a47e973024876dd58ae88d0328", + "0e120224161c1e83e34f7ff1e8782764c7b8571416a48d2e2aec3081794364eb75f475062be5d13bd293199800d37cd7ece03c642f833aa760299b5603cdd9eba74d1f05d6e5afc399b64b9efc4ad4e0b03fc1182fc94a41d3fae1f2aa5b435104cbda29217d40ba08e9d3be7ad989025d7e65372200b0719f53ee27", + "02c6e9d8e0a115953452d6d0308f8a617003b2abbad64153cb880106851c75e040c32bde0a37b00a422623f86a3515e7a440a2a77603e5457eca52c2fb6288d8a554114c19849e32f9d586169b749b93471a06ee9e1331e9635ad5f6936491c7dc895df7dac93310c34a2fb61018bde5f308e5add4b3163681047ab676719c4868b4af169ebac664ecde58f26125189d962a20b42c1237b0031c6e06e37a998bbf3c921941574f4cefdce0c0e1ba3279b24f1e3217d271facc4d1147c963da30202d6f96955bc9e9f6042428c6cd4d7e248f5715b02ed460072d00ab0044803fba0dc1a65d86a2cde8eccd088196d401959578c62f5416f64f748e0e7ce9a0f4185522ab2c7acf85177440721e8b0bd89471fe10d15245c12b0a6b4de01b03ed2a08d851dcd0cad60d1fa3714bbe0acaa7e88b1de3" + }, + { /* i=2950 cDividendBits=2952 cDivisorBits=2827 */ + "6f3eb31876efc0fc387e2c0349bc35c51055c4186e66507fc7a1d401c612637cafc1a4d8b697d956c051f16a786e8313a1f3a9e68bd2b552878758b1c5cdad2c0d4cc8aa0c003182d950c77c7462d1e2dc1214baedf9b9022f403af4eaeb5b8f9351175881511bd258ec0fe1da29a3d6544d4e66917e3eaef9e43e4939ad3f54725d34593bbeb65ce11f2581db77a0ca8ba69366d753694ed7dccd4b07871b556add4738ee24c33044348c1ed95247ab816448b6eb7f4ed8b49e59ba9e5584410a601e484da3be7cde4e8147d01426929eeb352eb9833cd3874301f9a35037c042ea49ca6a13f24067562e5a58df18abcec5695c024cc8099cf7e18eb4bfb0aabf084842ed57513910c1067d17ef8c86d3cdf2c6d830eea2681c6a2740ab1aa05de9921cd6dc02213e15d0bf51a60698d7d3ae178b8213c414a86b2e348e3d1ef9862a78d094ba0960ddc183cebbc8e74f0665fbe8b28f1b6f0a0f2df12f4365dc8fa858b626787c9651fc68f2c61f7dfa", + "09f16c41c56a12d81357f2f627a549d97944407a4d22f73b57f72a77216ec762e4e70fe9c5e306f6c26d76debf58de087bd27b0c01898e1f585d13af34107a04e486c5fd1d1edd5fc49f081ece185b9f378eb637fe05384864b1edb097b3c7930284964f29f4c1da43251f04e0d0b925e07b4d63eb7fd9d8f50f7c184b3d57a88ff04a73bb52c1b609896bf49102676bf4f466131efe9a8195a5630a692e1b25131303f4b63fbd25983d1c0b072669cfd8919ec8885adf7f39d3f99ed4c4890d3fcfd5b76307a0f327a3656233e79a7e25690024c4b3593894cd3a98626552f6c70b8b357edb19d0755daa540fa08dd2bb79260128772ac463ac542a62f5b1c406a6ea2c3b18dbf07d50e3e6b67824f0de3ada3de37117f9e039801a4ec86567a8064fae23e9c87e27edd45226990e712c4d10ece88fdcdbd4b7de8f8a95160fb15e97f45119f5b2939eab06969e8ddb77e9a73fca74aa0132860593773d286322", + "0b302ddbb68f06e14d66d21402ee99bfb0", + "02fe9dd26e4cca70f317266de1a333832be9837f7ef9c35138433725e1c74761cef3414792c1828ddb2e7fcd017c53bc580115e95a584a8ca0309e5edad7d73d23dc806622a37780365b2550f17d221440d3b116491c89f57d6a086f8880664fdbe26e976d8feff730b15dded0d243e308b23609f3b35dc8342ac91878fe520af722868df32b1837697dedbe26b2cf891bc15d379fb355da7c786e5efaf7d16ba7662e714e8233fa98c0c946e97ea111feaf314d20264d0b8fcaceb90ad0d0a3f8f3e3f74873c958f321f87955daa713fbbbd1abb0670715c77ef25169709ea58c20a0d23d5559aa626f021b0a89f4c0ce497b16fefa98b10bbfa567e2cd092749da7b9e7f10a182b79df27ec060baa6436360d97d43a64a0bded79171dc8d2ee160b71e06a279fc56c929d11ab5651b590432a168c59f4500c84e9994705865f8fdda3daeadf5adda9400671016bcb678629dd575401641dd880e88c6bd12f89a" + }, + { /* i=2951 cDividendBits=1942 cDivisorBits=1032 */ + "056bf68b9bfaa78f94a3a9513c4cfb3f6f5b2219e73b22d30a6d0113f9e590e6d331a014b7ebd53b48b72815a2db2b8f7f033a466cd0beeb75ebc796b7f3f4642555a55b587c050bd284fc5a9d571e0471b26d62150eecff34dd7a256fa0196f1ee783f50d9faf330c36a5a2e0d6cf2c68c39a784508d8543a93bed046fabc3a33db033ab6f0dcfcbd6c01ce4d7541b1e0d4bce8e8a94cb57ae6d8bd51dca25eab1b3dd8a8fd8f3d3880bcd672942c94bd69ef0c7d7c26c90f166bcd6f8a99a9ebbb0630505b007399efcef46e2278b81df5fbde53a0cf4b727cedf650d3293815604a5d28ba6cf2b96691b72af2c6463427f0", + "c015f03305a90280087c98f435c9bde85f24ca695ea2caf730f68106fc90ccb5a1b9e9f89270a925b17d5eee3573724544bba340769914c8ac51540ffb9abe2d4374a84ac671e721225a92335b556c2cf28b5a8d3f99ff800dc60b62c1a4be455d3db8e42c923f75e986db559d1e7bb4fc9e57609f748e2b1c3bff6eddcf581e24", + "0739cab3261b0fa94699bacfc50f5d235c42b8241b0d1e9e9be018f17349abb0c995ee7e6e9d118ed4323c90feb80db46d894fd30b898cbf59865bea5b31fc269a8ae963afb6d7ea83b6957efd8310f4d1bc79ec9e3c721ebc1e09c2f80586677014d80d7befb93e45cc1d6cb36418dace5d", + "84069f81233109f828e6d309fe2f2b216f54ea9ef5b33b8de4c3a4890ccdd86d687bd27549a72a2b950fb8cb4fcccb5993d06c3b97b01fc0ebcfd50a4beb5e7ed93f8e8bab7e45dea296efcf0f8068a0f9025c9f20a7a28b61dec958b55685af7c9f9ade3b1f22db734c40aa4bbbc3a8eb5c0070ed9d4b6738c527696c00483cdc" + }, + { /* i=2952 cDividendBits=3217 cDivisorBits=246 */ + "013315addd50004fd76b605aa433e7624e3898d4a57e0cb9aae3396d243fdd335e908a55dd615a56622cb7ab2573e2f9110f8112ce349bdea538ed94c997d5aff28bda3b93f711a6e19337aa2da9c604e2178c8172169dccd3e26f079c00cf1b8450564c993068b73635535c6cebb15ccc5eb2dc05257d1338edc6b4562bf3ffbab55b0e5c2a24f25f3156c3969ca43ff2fd08ef270c36f3911613d6a2c4f435547e93d04bfdbdb8de9427840f7ac6ea775021f007b24dc1eae769c7a4077a535053ba6da48c2d6b9a4b25bdf8052d6c6b5c143a1ae397dc5fd4b72ecf121e51ac86b1e595c5bde9c8a7f8bc13e853bff0df1084ae899f2ac8d144907ce6b90385124a1c7711aecd0951b5e4369c0836ceeafb95ed9a1e17d90842d409687f42a417865bfc767636f044062a75a1c9b4825d1c8058effb42f38b73b0f28e549040e78a501b8aefd3e67233085f73ef7465424f7d0e8a06cff6cbf46c65e5270ce028e21c0068ab1f21e6119ccd0ee33086815a95e72e6aae456c79471aa2859b92866eb7aabbb80249f099cb25a7c0ea923ad4", + "2b864f2d4699e6dee06258055dcbe92661556aebabd945fd48f919cfa77145", + "070e300c6e5e3a234886a8198d2766b86bf106641802c48cb458ec9bb53956e2402c39f5d73c3a3728d1d32d998508baeaba1d03bd803a80d94e24f87efa9b986cc268541f87fd807af0a51716c43354f340695e47e97eb49d635026f129edfe34ad2ed5da7e8e58f2cabc67865ccf14a7b28f058ff975fa3ee501e9453e58ed4ea7f35071428ee5ae172151ed7e64b89783e62e9702e24e8558045f5424c1cc2ace4a24821cfe07e7bb60a1951e20df288d4be1f74694b7d50a448e57039e9264182395b99f4c6a45c53eb41c57a71f259b6d81d905ea93fc69615e54d08a81e3471debe1881f59ef32bbcbaf9f09fcbef451d9da5ca71a16e5318b38dc12402df33dbaca32eb8e79ac79c84d7d2f46471eeac6c639ed451420ab0872ca8f7d125f3c82cd84b444e2a5f54b396a95b94f94a7ec0ef08eac7f11466bb74428d3ec0b5802d6531a270409ee7abce7fd3cd2d6e00a6c17c2d8ff3eca736ff79a16791f31b6deca602984ce8e244d01ed8b3c81ef89", + "0f49edd2046db1e801d57310126c9922caaa40f0270fd795cffcb0377231e7" + }, + { /* i=2953 cDividendBits=1519 cDivisorBits=328 */ + "5f2dcc4e14af01db37fc30be07db42368a58b7e5359578b370c0054441ef01e5aea01e6d66dd859452d6b8dd6569c23892f64069c0bee73ca79ed44e4746bfea322899ac4f3f9f0b930d1f41d92767a8139ccbc5a68ad4f7f40a91bba3ba18a95cdae8ba105bd052c5efe5e72dee83af688d1a88118b0e396904c5d5f3501fc14d00de339a7206e738bff615f0aa364834191e0703bb5cd6575cdc7e161ffc5ba54e7f88b985768ab7066104618e80df64e555b550ea5df83b3d7b47acc9", + "a038185ec6766f833a9f24c074f8a9580dabee436807c0c04d94c97cb1877ed2efb66a8d3cf9cc6b91", + "9813f589ea07e383b62ff2149b5243cc7b87409df2acefcb42f62ccfdacad429ec091e38f03063fc9ab7b0d36d80fcf836824fe7db604c1e2f737e32e45a6526a54c12dc8929ecf52fa3faae91b54cc697f913a501fd2e1925c808bba84fc78efb9768811f6569be38487bf9e76f1e2b8094389bb4756fadd55cea6ebfd9af5770a81e96626d40d2a081914cbc63f900cfcb37172d", + "166fd98fe4af1bc3023fe0d17eeca071d7d3cdf18f576d33c17d93285d230fc048590a2e9e1d87bd4c" + }, + { /* i=2954 cDividendBits=2502 cDivisorBits=233 */ + "037d9ac7db157d4ccef7063eae923e130dce314267dda761c1de89d25c87d7c9b3dbe0c736985ec17322795d7859c76453988b968514af180849c4616adbcec6aff776c0de4baa27850ffa59650e26d8f88816a7a259cc042463d42a34abe363ec7407476fefbc0f21b143245be8aa28b82bed8fd7db20213c7a69ce533f918b9bef4c6fbf6d2295ea28cf9a4d9651c19d308f6b248d8a35967b5f3dfb77569ac5f524a0fb0f33a96b0804172dfb75a19266f5b567b33516bf7a2cd7e15d2748a8f8acb59e67f178fa04f0138df23d3e3ef9becd6367e07c847db48845e0eb4a9a36e4bcd52faa644be6534f69efd3c31026a21d68a0287e8226ecbade9e38c365ab0d764bb06602b327e4a1b4c5f597c7fd3f2b296d7ce9d9fc1c799137ac0fbd72882911d6d5f97c6b53cc5af8fdeb6f90961196219d1016", + "012be31bbf799b29cadea85ea58dd46cb65eaf5d86bc8c9be0dbb0e81792", + "02fad45eea906afb7c35f2966397ad4cf3b60d2cf7e1a5e2131b13826cfebe6b4f71b468b4148b982cd63d599e5ca4006ccafed926c74c4031c03fba125c1a6f434497594f4e08eae1a9c68902f956298e6e3b6de0d4e7bee70c86f214319838016a7c7ead254dce5b5b38a896bf8069aa2052137dd4fb207e4532fe087dc2e3282dc1e290a5e76c86264fee8a48390a86650c0a380dbb9877164225fce7369f41e7de5a7149c4aeb094bbb813dc6d719d93350c674441fc0fcf992f4563156fc33d31760bceb8573ea683bbefad6c21e4761ae8ba3937327481066116c237551933ee268722ef2a2608250fbb371f8a9f71286961e90b1bd0301644f904bf1eed394f1de405187ff686813ba95de922241c0bf96a8c424e1a4def26", + "0116ea33bbc2a46dec5e218fb113fe92d556d5bd923723d6fc21463e426a" + }, + { /* i=2955 cDividendBits=2893 cDivisorBits=1238 */ + "a18407bd080cce2c3f1d1d30bb77c3b7a5c2b6d16bedc6fa151750c83fa88134d3a311638cb01f8a3103e73da6a08b1a97a80320a76834e5191cdadc99aecb5c119d51941338216dd553234fded1d69aa0cf58b7fcc29e455d51add1ec83128d784869b19797b8a9c1ba11afe0f52f5d54213785c5305fea00c0deaa83b2e5126ae6fafab2987972f415e8f7a872549cff5e7a9d81c5de9401fe4a0c35fc7c40a4a65c4b20185c7e75654c140a4d9e4dc5667bd8cc4451dbca0eed2cc4548d834af173b3ba282717dbe0a4eab44cc8911d7b81284aae24af516c38167de481b740ef6698b4a29a945150b88de32be0d5ea3db3a3e2d276192a7533503e2c5f0ff41f24cc7330a7b8b87fc43d31637516655d4204e43b9c7ae8f8d806dea6ddb4ca9d827568fd1352d4f6debc75e654bb373d105965a1bf7912ccfddd91caa786d7b5c6680e0be2836cc581cbaeb916da1b9b5b05c72eb4ba0c9011049643b6ecd7c01d63059a3ae1e5", + "2e3948605587c4c6c17c5638834d8ab3c44fc690f6d59a5a146d37ec8425d222f6feeac4345fc2cdb8a9391fc9ec2f221ac6a47e15781015f855327f8d76a3429e75738da6b116ddc821504e6897b3956fb7667beb7e717630bcec5abe4591b20ca9b2524dcfdb3bdab3b1ee886a7a4e2bdfdfdd9ecd5da3761aeee64eea84f0cb34ea45330683b21c981dd0575087e8343a8dfbd9ae91ee16b7e1", + "037e84da7cb2f1c32bbaa35db25f4b9cb511b0a925dd77af078f27ab44abb5e05aff591fd49d92fa504fdb76eca48e27f9352f7ddfc80f6ea34f04cc478e30f8c68036cbfbf50a96b998f36b38fd96a183028aa6208c294bcf58e23e7ee4fd4e5ce82c1d5d0b718f7b452732b93d70d1b8e535412a183a8333733f2e75d78ca75471cf1765f5fe8e9d8f17f6536ce7bbd26c0764291d14544e764b1de0479fc00b6a93d249c12185ea5df9008e68a63d37933bca4cf2d6ca1376afbce9162aea5f5182e4f4d6db9f15d59ff0ecc280", + "156832d79452f88155780cf4540a9c2a1e9ece29a7521f3967c954d19221bcc86d285e32dcf26019e8ffc8037a9ee285d8c173b81c467b02241483258ca5cc31abb2c627c1c85ee7896f457a2d7490155369048b8f8d4b9264041db8c9ed07dd4640a7c3e4fc6d6f03a57e95fbfa7596cd9517879fb91cc0646c4cab6cde8a6d8c8bf1feadf39418976d3223ac5010ad54ed6083af508de41a6f65" + }, + { /* i=2956 cDividendBits=3702 cDivisorBits=548 */ + "164f019c72af8da3b4efc72441d77c84e5e7f5c9e6af9cf2ceed13820786c8dfa682ca976bcc69eb6c5fca8fe408f06543598794dbd121176417781a8a58cf32f54075caeea9f8689ce0c5c0edf569529804b77bb7a25e7a4fb9c2045bc2c13ba27d734c43c869616a708db1a05ee3dcc1a856db128b4a18f464d21dece9932eca7669f07f76e1b18c13c88355e684845b94e9f69915dd339c4abd00fc17c3238d378428117e58df84c9f81e1499ab2343759d08118a8d3d20c55e2906423665c712257a9cdf441297dd366a3c8e3da56b141b2e159457e5cf64f3edec327288b4f9c689cdb4c807564f6cb0c92c72771e59c177de61b4cb1b8289f21c56902059304ebc995ccd75f4c65157d14697e22235dfb773e4b60021440af3e24b157d0be0ab0c164a1380d7b6cbbad0190be0608bc36bc43e256a496843acc191f36e21b31a242e25e3413ce97b607792e2d3eb15f2e58c98827382c88a535d99954e6305dbaea023d26d806d28235c050fd2ee15bf9d599ca077884aeea916aabce53308dc7142b7f2e490d502dbbb34333c56924be37538a28350304b043474729b21f9eecdb542da63623678d8e88f434ee7d1fab6b2556a2db34277986b3b3d977f6b77765f8a7b057c534f110ba8ef", + "04e4b3f15e015425c58bb2b9f2afe236cc82215fd4fb66d2815a73bbb2cae0e529be755d04cf69273f4e1295abe265beffefc47c66b1d3fc4358c3a98fa74fbcf7b12895ea", + "048f1728aa191aa503f22d93dc533219f4d83ebfccdac05dde8deee054301cd47903e5c1db03f9c5fa382285233d34e1f014fd7ed168d2b039fe44a9204bf6e83770f49200d22fc2f747f634b51d69e6b8faf0bf1bd6db2c25ad8bf98ec5affef7bf9c8006f515c9c064936772a5c305b2e76f4ca6c5dd0f44b4849851996478d36d111b9f23182a04dbba45450d92f046c2d503372debee6f0f99f1df433dd503db451715ad69ce07a8d75abc1570ec149f453700d772eefcb2a89e3b745396d48347665047f5954a4479cdb4d6471ecb483c190d69dfc8041d3d3022b836b832180d0b1ce6fe1512e1f65560c7304e265afa5533b80dcc44b203d8d74c34513f9d40e867418188311cdcaf5d8e1cae991a6e96020309ba0809e875ee6b54bb453166d0797d87cc5f2ff0bb749e2f16751b90dd6124c8ce0ff345cfbefc94d822ebbba8473c72572b7ec2c7ad050c98eded3a7efc2a2fcd5d0235016eec4dbd17357e0748d0dcdbc8c0698735f98115c1f9f77fd3513e3d8a3133f06676bacb647dcd233de170d2e9e59d", + "01a26b16f7381e0d74cc5640d7dbba3236e5def265c575607c3f6453a14b3b4cfa87e42eb72c5bd788b4464fb19cc89cd0aba79a598ace8840dc62eb82048214a3b713666d" + }, + { /* i=2957 cDividendBits=1343 cDivisorBits=272 */ + "6a5dd9aecbd10e0f86b775b1065e8ab21f1ac4d5dcb6f4b70f5c7d0985a1e25c789c9e5a97bc1970af1cbcabcee5591ffa0f447010b206fed7d8cf794bbe18d41043c0e9ca44a979f9d3ffe7c13af31dd4eb74b0ae74c912aa915efd0e284ccaadf94587e4ae5f79b9048da7bd96ee08c3d70fb46e1f89876cd7ecc4cf76b0bb3eb611208154fddda4c9820fb7a4a80cb4aa48e074f8ff921ccdfd800b7d24912b147180b8996bc6", + "651428111a55d0bf9da1a9691ea201b9864f36c595bbf961bd4f9b8f79204fdc4b49", + "010d6478d40ca33cb540b437eab1c8645ad85bd08251dee7ca39825edb1d094bb83b469e47ddc02d66797e5e4ed3b99e64d6ea26027dcee12377759f36e59630aeb15ef0bf6fcf74bdad083e68f899c222518596cda7f7d91fb20a4011c0022473c577e7ab2b4458428f6a2ed9dce0271f5cfec1006e10e4571fb4585a81fc3f6e9303c8fc2011", + "2461a780c94f76d053744e85e41c52d2074cffdc8850553701b1ae08d7d9bdb34bed" + }, + { /* i=2958 cDividendBits=3750 cDivisorBits=3321 */ + "3d7ea91e96cf874d63c1bb2e0e748f05eb105596f8f3a3cb83bb9d8c956deab98427c5128fd9e7f90c6dc524560c330f7404747ddd26793321da19e041a7bc06545f6296f599d6c3c00d4312777587bcd19f7d7ca7fbc0b3f79a57c8db7e3943f4dc94dad7dff6bb54763ea8f3466d1fabdc80ed264c556b45e9c2eb40a50f893a9d5c028cdf3b90ce5fbb30a3fde4647a34575b885e172be02ed3040887dd84028b980ce73efc13a05baeb5bcdd5c5c9275f9e5fcd76090e3848a65cf36da099b198c25baeb3fbdf4cb7ba244717f45fec5cdb57a72f17283c16db9d5b6688f710efa395f91ab3691d3d1c65142459554ef14a09d4968a28d5ab5bc13a6e9481fe71578d98db1917e50d86544c54498da8ed3c467750ea36e0896c5f5a65525a33426fcc9371ba28990a7f2bb5801ffad77ac0aaf833961bac050c7622217cbe1e5f54f2bf86fa9fd030110d2831455fd7ec5f9121271421c4c51aee23938d4231e8b7b0e423acc3087bbf6cf37dce20e21c068167767c043a1f7a0a14940720f6897ffb0679e010565aeaa5fb4b711ea4e1e7cbea00073c6d23461823ee5aacc2e1f89e337f844b8f4ee9db506dd42fb70b7df3753e7a7065e5bbd670cb3fe347468ea1162983c6437db2a2ed48c44884705bbdc", + "01783c464fe6ee8e8236cbccf6a2f381f727a668a5034ae0151df199bcfd160779e9d9a7620ed7fa65957670cadf4b204a1376356647d281e906fd9c67276a5d5f9248771ea73f9091556936aff86acb372c6fc946ad984a4c17dcbe2adcce1072b28d917f2aaf001f34c17eabb77839b03d6536721b828dd6088db496f4697730f1ce72d242163e654b4d896f56a09539ae6baaedc85a132a81e7e7f0f6bae4b67c519da67a51450fdda0f4280984f466e362e8ab534385b3d8ab44f2357e4191814dbfb3d1f27cb5b792a1ea9b64fc0268652db534cd04e1190228f31967622fbfb0c6abd8d6ca04d258d312bbc172efedd302b60a25c25a3c12ff60f2ebb90fd9f8bf4f410f721e119241cf18326f618af3b006c324aa1bce9496aef4b14ca2452125a8c65b601e4cf20a3317414387ba1a610059280bff874d9c7274f43f855ab03f50c0d3923ee0e30fa89fec607d5f177fa14666f513caa611df0d833fd5839aced32844818da604795c8e9c6f4346c275c775567ef5bb09105b43b263e63c36c418c2eac1ca199f08db864c4e6441a90c509be5896672d12122e441d1", + "29d7b31cfbbb9b1a42469f4ad8e82c4ca4fb1b4474d53755d88a724e120801c73413a17f27dabd741b2f94920f3588ccffb708e94fc2", + "012fc1b21191ebeaf29b3d5804a47c2864f2b5501ad9449d1edaac9981911c4c9bf1a17cb28f541f25297f92e2f451fb1ef815be4a5040171b0c4f326becfb1db8a15dae81f7689bf07570017a564bf5d6adcb79c97c025a207e9b6adb04553803a38f35a32f93f1e6da3f5189949e0fa7b1411d96a78e49ba6192d4ec2b82a00a937ab956cacca1b5ecd8de93df38be83f27e476295e88dd6489d39a885f0032eaca3c554a8ac813b02628503ac77e4e8ee1bee93bc518e6e820cfc1911365093ccdb231479dd7c7b150c7e895457068288a643047da495080e336a566c8da5e922c907be1692387f22a23f7be6ce31ab8f93dcb9298ba4c675e4cab77eb437b76c13de5391f154c93a8e1874760347ed2815a7abf2b15f74bfecaa339d034fa9e68add612a987ee670376add92511f7cdfdd3a25fe68e859adde6f32575058b09410aea793bb34c1c77b9374431ea92078bef6de722abb22f47ec2013b2a9df7b9f1d7880edb0bb8f75e360937f9e2ccd0f051cca6b5c9bf2fd3e09c93a68ed48d2cd190869252bce85c168a55f2d11e4c48c0fefc8bd6997a7071f6835c7a" + }, + { /* i=2959 cDividendBits=2804 cDivisorBits=2409 */ + "042647ab6f90be1ed424b05e6117888fbce18e8542bd0fed7722155f7add9601967278bfd580cc939d6eee05bc6b7f803004a1d4d8e7626a3c9db9b7afe8eddcd8025646631ee73bed94da5cd8117b9437ecdc59d5f00ebca6948228fccb58f2fed310aae4ca9a309d454f5aaef9bbbfcce58e5c537af8f5e4043034c91b89263df3517b721335395e2dc7fb9e8797f26a6e2ef11d2588ea9af0935b9d124ac9830ab78bab39a54bacdc569de8f18f7fcae31777afd8b253d3d6654d1d36c59843a3c9b95881394fa42aa1bcb5b72823a32e643a9983d4f824f00d7a3119986a02ca2677aa7f129dc9fcd9e77f6e6f622bc123fa3e04a32290ba4f15cd5926046814bb222aac61bff29d18a117a35a8ca9c7911ac6ae8a1ffcf0d2924d69f61a980f7083e573c666b5338e1f1970d4f867a046387315a584273acf1e769ed95cf6a509d10012367f251e94dd695cc817f5f017c66b87b227287d19bc35226b", + "014caee9f0565b767915d8582552dfcc4b2c1038c7a0bfa754d4aff7617df3b73be7165005cd8e233c2491f381357c54a37f5c1e9a054902defced28823e148c50c9315adced322d5ea05da2eaf01de41e115c302bcc07e7d77141a252230ddbfae4c68eb6c1465f800b1468380e292f64197c26e51e37fa733b51f3268fa4be741e7835cbc02737dcbc0027f86136122a0d2b5141c0ee76884d0ff77a6adb8aa4d292f02eafd5e7dc6f16a9dc1399bcc22c75da0f2e24ceb7914aed5365ce6b7950eea6a67afe2c45c2f0245b61dc7b68a7217a03579e7f3df24dfd42e3abea88606cec04d44d5cc21bc638795bfe81f6cc1959398e0fed3c7f1da6d3518307d202a594c1bab5dd20b31ba46f6bb6d5becc21e8f7c6bf2f11981885675b5b7fa0b0406489a0617ff1b5bd47b658", + "03316cd844b272d8ea8180b5c3f2c0766750c2eaec9f3fae9e22260800e66bc1b774afd181b42095b6d46f1cc35487b66b23", + "b8f55620ddaebc227b355a1b9af8cf491616caeb703ff921b91d88a9b9c76bb4bcd38bf3a47560fcf6c745117713ecd54e8965b7d9adf7415ed572fb9b64e27eb5a8ecb644b2cfbe5f89eac50fb6350d4712713745864e4b9d7d556d7c3b0581ed691b88770814a487fc2ada48f5974f7d18091d9b6ce1455f0741c1f7ac3b16b0e03d8b4077a183a39c6d97c0ee79e0b7133cd8af6a9afabe75b6715a3566aee272a8e179a017d547277dd1bbf04358e03d6dd14c5fe6e73026de76f53047e3617f93c9afbcd236d01ca6c39ac932843252f7ccab947fba8d1bd919a3832e1cfa544ed4188517a1e5e795f34a17dbe3c535062aedeefab9f2a44ffbbf2b8d8e719b9d4b746397e6125cb2c5ce1d6cf54c62f724a8bfde81d907f3baf96710fbdcfb6dc8ffd5913c1fd7a06c63" + }, + { /* i=2960 cDividendBits=3933 cDivisorBits=3916 */ + "09ecfbfd0d373a02c0c85e859f395cfc4f89d90f4ed03f21f3607b486d4bdef0e684fe791284c304d9e479b6546ad0053b175670fa663fa8ed460137c2acfc31c0f2ca4cd85a3dacfb90934e8553513aa7c832aa968437fb14b0fbcc1b2164f1b77ae70a718851db973cdaa7760198c815a7b6bc10d819ebb39c8d2622cb7d6978dfcae01157dac09f504a95ff580009044077b44ad6b7e6a1c0b5128d905dbaa621fdfa46a284fb74705d2a2340853f3fc69890bd92776df2fbaa1f9527ea85f1f58eff57c03f18aa4c42fbcad57e13cb3811444bfbf9d4d3a449290650f9db4dee3eca1da6d322cf717d87846d4923176465b56731dc942b2bc65d6169dae019991b2be3e45f69fc542fe835210f37aef8fa4705e2260166251be2f58e1acfe13bf8686a6aa27536c806fc46431536eec0bda196b5f2013e45b0d7b5b897940e35fba734392985999f5fff13d2e80752cfa55808faacb41d69e0b14e624d47bde2047b56b93d099aa123ea6e2a9c9cfadc499ed48ebdeb3ff03904ba4cc444510de9c2f76dd0059acda2dba7644c3f8794bb9dae52335069df65c5d81e230a7369bcd2eb67e2a4e1c1c057f0edd4d48f190f67bd25b69547ac463954b60ab3dc8eeee91ce4ed6dc70f2cfc94e20b5e78a0000e8e308f8dfe18ef6784c46a56e6b51fd130369a85528fdcd3", + "06a1e69f79da44de870768a22885f915841b59d013bcfcc51a703a3007a990eafa68bb3e69525e85e2f4f1338b85ae564d34c0670cd34b66114f00be3b335f2e3431c357e0792fdbcbd2e039f12260bb8dc04007a428260e8087e2c3f63942eb52f034502f206145cfcac5cc72e9fd846924833b55afa5a38272be24ead9d25dec5e848409b0ed5774ad60c354d3621d23911e50e4cb563decbbbb8758b1b4dce32d7a4f2f801a030d9fd25e7a4f626efdfe3a5491c748021cf613801b929d4b5fbb541b83081c0e76070abff7a657a2bc3cc452e17305e0482780cf9603156db43402c80f06afea526cadcf5ad8cf1e948c7e2a5692cb9dcf8eec23b883cb03df50d9b5b9812d177597dbf15408c8584ba20af4c773c6483379921fa91dbf6662974d40b286dc434a4ac9351a69f94214a6920503c3d90d7075e34ab6b118a9f4d24c79844599990e1202af97cb0bdbf4b801c96c11c123feda138cb23dafa2ced7804b516cb85977ecc1330f434c0c91cbbe8d32cdff2623773fe2b0291594c70f60f9e8528ecca6db0bbf32842f9eeab1b0d6db7002b46109f645d50256f99961546306ed42bebf9411e95c7f06cc325282d92a2d5f45184ab2a8705a8f7134cacc29aff44781b9a7754b81966e6846aa958c741de233ad3dbeef3463794f79003e597b16813bdda1", + "017f1d", + "039d55d8df40078efd242a3a5627e774f697d4b6448e6e7e9583fa6450ebef43f0797ce09945d62d4f1ae3d7020d5dceab9d0289adebaed0d928128e6bf9d8a06d693e908158b9b9fef46f00919d19768417e70e8e7f12c120243d8ed55711bd23908df189a92073f2c22dec81fd445a2d436ded9c364fed1bad5d4101021f9a9be983e30e9fe4d8af2dcd4f244d4ebd53e8d56096d73790063ed1897402b13b37d6f3997c8df0b5b653f58fe5fd0b34797f9be4cf1fa16a3b12b66471965c3273f1a7994533da145b1a5f94931f6629d4aa0f4d5a029d4902f8dd5e5e72bfe704bc7e821e3150958f2e9b05a0b4e0af6109c4e06f5200c46fe33050c7374f0ed94c59c61951c7bdaba63e11667ce3d0fa8791c1583deaf4658009f47117052270b0defea5a59702b97d08ba8b4bd55f324d8b8283168c7f94702eeef19dfdae9f6abd910cd7373bd5f011d5ef48e7c5a1d37c7adebc620dbebd98c7d28644fc2d211f5f5beade13590d278c33368f4ff374ff8dcbdb498ecbee5811585349635aef188afb073ffd05784627d00761744deb33aec3943e428032788681a72caabf8c34d322e8f18785c5c81c4f454aadea4c04720de91d80c4791789d3d73ec08c7d9ded87c6989b9c8854744e25f516c8fe7b8eb2c00e0eeec1044aa89442ad0d8240ecfda01e33e296" + }, + { /* i=2961 cDividendBits=2058 cDivisorBits=125 */ + "013894a116bb6474a83a165de20cc6de928abcda4ff9f3d575e28ba67bdcc60cad98ea9317c71538e8e6377b6f33463db3f1d5f8ce1dca94ad3c266ee05c442405915bbe2091778767b317469c8e123290052970dbb71236990faa40908825a6f18fef8d1e8bb81fc777c96cf90c23d7bda2d92361e5ba2cbf8028f3b031d4a3b2402dcd25b28ea4cf7950c653200771a86e8216657b8d118a6bbf23afa7dff6d24aa8154258965a151a6c1536447fbe6d2e77ae9a3e7bd729b964d53ba7de06ba9b850135ddc9745fd27b9d8c90d7aead5f94e5deed87ab149f704ce65b773b2355044eb9a60b569387c9307e61245d62fd91defffa545aab574a17d930f27f876b", + "17cd4125c368318e69e3fef3ed70b2c0", + "0d21f5e580eb32d4694df71d397f7d0ebc48885534c329fc85401fd121be69aeea59511e73330b3e4be83d5c7bad852dfaeb033822f122f2966b630673fe774eea18e2545f4283912c057ba57148dd64c5d8fcdc9fd315f1ae17fcb5765477f96c635a165c20187df12de6ff92e164d6cda2e2998b7157d58426d98c0924fa4ad4eb82b500746cbd4a43842680df4aff66876c4a5a407324682577c77a1a54c9cb16d5d6df4f739407c251ad730dd0aecf0cced7202b8238ab1dc989eda148a0e56f746bfe24df72a31f3209a70fd1c79777c3c3eaf2771b6ab26c591e2ea81e4fb0dadbf0949a4956f85d3f27e4b2c6689e", + "0ee460cf4bfa88b92330f1baddd334eb" + }, + { /* i=2962 cDividendBits=3836 cDivisorBits=3733 */ + "04abc167d8a6ddc91bea0bf90fdfd6fbb361783e1a6392b47871140df8bd46109e4750b7dfa37d3a5eb2164efee189f88753ac04f72d3de6c6957670d86fb349c9ed5da96a73be9a90e3e36c2d40d29b9294b060ab707399250ddb79e359aace839065b6de25daba0eaeaab1c74054681b9b4a891b00de87dd876066c86f05cedc289204c45a5581c1aaef23c4147c0605f6c3866657885e6dcd4f12a6c988ba5b7fa569ed9002fc5e608c6b549af19d9cbb29138c1b7bb0343a3832597e75b576bdc44e90d2ecad039f0315e859a7c0e5187cb40877e934e1925296c00a4b2988dc989b32d3ba5c86a3e522d3d2ec829a2dcd0b54d3bb9fd554c451450d5ca24c869c95f75d3bad81f10517a4759f2e553dc073546d367a656f5a797c1cc68db85c1c7c5f8e7112d62c7e6264ac6a5111a211cd55dd8f7245c924a47d97b30051b084dbcd8805094261b26956dfcc8e7530097b564b9b069d87faa071cc8f25da613780c0f6eaa433a342846c74a819ef3a55a9d4a272137e20bdfb534042a86971253a0df75cbe704d2606326e812455d4b8efb0b2dd3bc23ba959f4372340ff04342727090bd86067a2404eb23200f20cdd549994124142f7ae8ad69fcbc0d3f238f4aa5c61599adda90a8df7aadb818f5b0c9f13929f9172b27848efc1e1", + "1f4827f3b1d4a2603e3ad3461437d8890e2c292641cf3461195d101923cb4a88a0e003420eac886ecd6f0a75803a8da78a9983d14fff5ce5820caced0e4f52f6479881d2343d97dea15e12493d367d2eb61007c8cecad65888990b53662f9aa25c01e16cb92c07c97969a6ab890d32a68f8dd572eb63a4abbe682201e06a0e6042fca1174746b7651f4c06f881716e8719469d83b5b9a32446ea0246eac7d8ed06d5aa12d9caa7ea0e48642ba22c1bb5c1f04c0e4301f28bd49264b97a9878f2ba636ec1423e69485a4c75a5ea7ccc987233efff9cba449dd348e9bd96452fc35876883c2b29839a0a830dc2c390e41f4a6c810785fea8556a2d49eea1836866a5f1622ed57124d12a73108c2563e472998307edafc68214dfe87cecafac8535fc5901c90abc04d942be702bb892b0c1d4c8b0f14e8a9fea3b48c1fa4e67c57589588969f765c90d568a4a19ef9b1cbede117f6abb28dc219de4dc7f3d5dce5c6b5eba96634f2c031927ec45b8e5753dcb96b4600a0f66a8fa0fce8c30a1f4163283bd0ec8cf953c8efd7cd51487b3a0d2ffe84f93fab1f5cbed980612a0803a87d05a6ff13043acb296f4747aabca3251677a22a0209a53e0ed5d5836a6057ca3daeda254b1f328c4a9c82ea642811054596e", + "2639a705c8b0a1a5bcc56c36ee", + "0ff6bcce35b8ff9dc102a298facbae0dd3c2cc5db288b86e19855ce8f6ba15f83705b88810dd466a00d49cd04e99d41a6845a39f2af1648f360c5a65b0a6d64b225b9846aadff6478d10f3a29332660ccb8f97db1bdb6be8a6cf8245ad7096a897f6e7dc113350e450bae49beee5a8e625566e5ee5040898140e05d152196c5bd46aa60319f7b95e4ade27b8a089788ad8234ccaef37492f25ec719680690a43252cefc584855b5bde397b205b6266122c5474dd69c724b42d55f81504f4c482491176cd9ba18436fd1b71e142ed001ba979b5006e53e7e92076c6d9385b931b89381d0f0c93fb76be37992a7a73496873cb78ce6e2444af38c4b059c9fdb19938260bbcdcfcc4afe2759ea2828bdfc592dd7d84922191fd01e5b5b130ddac2d2e20bfcf4905a40b30cdde92628edfa8d0d614568e5e139c2c88a28769089cd11a6b80c0141f8071b769e6cda340020c54158211812327236f475052b5f651e4e81871d31fa554b70f73880bd56900434b7a0e88908b0a14cccdbee5ccd85584342b03ad67883a6e82001f62ae98d79d6ba9a02820a2a3c99d105754bfc9fc9b94a0c5ad8bf4682e9a3a7e4d185b345c9b94234f6f41b0ae9d676ed9c8ddbb0ed3390a32f78dfe5a519495871245d9ef3f699d" + }, + { /* i=2963 cDividendBits=3876 cDivisorBits=3632 */ + "0107b01b6caa53b31e2c23e12702ecc6342436933f9bc4241cd2aec7ca45cee947d9513e65dfa8ea5984d0c1e3ee89fdd68ba3c803b804fcb19b6ecf48440868cc396345ff22435cc93d6ad65344b6e5fd1bc4e4096ca975ad8ef560e763c1bdc7b2a5a78120a5b45b33121481af15356adca95298808daf0a33c2a9e675b98744e24caeec99e4a8802f17a0de5ff93c929bc5469708872e021006be1e36704903bc88198f9a49bcceb937095fc1e21e2250202bd49f5b7c9245821f496a824d8712ba53fa2c5f6137effbdc0d64ec5dc1f6ff47b1a6fc1b2516e041c8ef1705432096b6b6e1749fd18ba5b3f6183deb35c679f35ccb5ffd25993c44dae959bd0d3bb326a9fe49da9997953192f45272f93a2f6fd1894df61f902b063bdbe4dca46d91e4eff6068dec15160f3efb0eb30bac38c678597cce85a4111019265ba8ee6f7e6a883ec28648637fadad254c4339ebd036d09b6b8a05674cd1e54cabb2ce35e16491e4d1b20a3d961c0ae83db12888749b8c6e83b12818fc6661125721eb81ba6db6c7bfcff7e30a374ef1bdd9e2a2c50e932a82a4787702782a687a29a7faa52cce9358c09092e83980a0736047f450f5a878218453517797ff995eae3a8c21576753b681dc6c068a048ba3af8192a9ae918d70e7932471ccf371010bb1bdbcab31", + "a95e2f38a37f3c426b7adc784f9ae2ba6de76435c42e064f1b004a79735f28fd8f3d35775a5dd088071134ba842bd7157e66c4dddda99d1642253bbafbe243afdca4e1f4e4f03947de52e94f31293753c35c628da7658338a33032e863976076fbab9ead5ec85a90a1a9d30848eb8239a7daaef8f3e3697efbc4559213a52e05eec8c31226c05669982f4450b008edc68c0c888b195aff1ca7b1ee2bdb729060089bc656483886cc1ba911d7b3226a71ac1fe66b2da0a3c4da12e110d3fdd8c5591e055fd694346f2fe22398fd5cfa5b051be11a04f384f036a6b67333b36595c3c7273177475ea46c88c58099c53f733787bfdff698395bba6b34f8efbfab03a4b24294dd6954724a0072a859a9d5794b151922219c6871a0057f8247e37f6dd808da878ec69906b0a2c0a37d63e2be326875a8d2fefb1592b2da0b2961e6152e760a5469590dd3470f7ef45b7e147c480fec0170161097a9a12ee3add78ed813231452cfd908a869eeeb5183190c2e9b8946a6f7b69da1176edf1b1ed2896b7149cf1ddadfe130de96a6fb22fbee555e6d29aea5e9885f8cc11c8c6109e415bda40e2b99fe948385fadcd1892bd9c8bc33c837e479f7cd18d5fe4a0f4a48e9fff736274c6f", + "018e909ec1596029984587f4dcb30514ad8e5e8173dbe538809281b481ac19", + "45b6a6f7847bc60fa2ec30d6f13ac8fe5dde1beca9f31729a861367b64f4a9b5b8e92d8891f339b71a353796ab34630e059cc1ee468780307b3937ee8b6f8dff682f0f2c41971fa832e5af0e6210de4ddefd9d56e5cb956b9832bd79f90ec99d24b8315d03f72df91537056789110103c7ebd4ca0233e05580ddf25a65b1e8c77dbac29f99b8eb1b723bd4b6f286954596e1a23bba43a5e4693c5f105970c6cd7c1506abdc36086a26296eafd6a5bd831910bd4bcfd8a3f26323f6e12b5bd66501a41ad097fa5b3ca1ff9b2f99e18a52f8467b40af68d9c6dbcf864d788c1f070ae13efcf8f96efe07e26b2dca4e3eb8a55a2dd36e5dd44d8bc0660f3209038f1d32de9fbdc5abcf882a4733530b7d794fdbe718e3972deb1dc1742f15510549c8bd79fa8c4cfed6e8b1fee7465cbb9f4caf163efb22520211ccae9ca97605aade6e8542a392b6c63008aae7443346ab8d33189100032a25f37bc278babe028ca76f1dbbfa09007c5bf803826544454fb1b1c5ca62f09509615b87bf880a732ecf3d2c2eab6ad4cc3eae7399f00062d7b23cf4ff896cf7af9a5579b70756f875c2d4a92b57b096f6e3c750040375d5aa96b681a0a9b0567e8f5b077d26b319a236b07c9ca05a" + }, + { /* i=2964 cDividendBits=920 cDivisorBits=300 */ + "4599769fee97b9d714fcbda3c4e8bcea8ac3f420305d83e0fcdc5d309708e5e1575d51f24e666e9a027e60c5a3f33a7e3f769de7ab635db855ce7e9402f7df9a66845e572deebcffb9176cef279ffee582dc78b3dbe7e7af2a82542d0ee77d9f8a030374166bed6071f4f0d961c4f4d6fa936d", + "026504bae34aa88d3cb16f85701facb34fd51ea988c6e4a41e660f0435b66234fad86b80cdb2", + "1d10ac89873c0773d6b337349310029304592062b4193c0ef1b2007dbfb26a5eaee738034e22d325f89435337d8a725b5122d7bf6697be6fdae269a698161203904e0ac031fe1990e40752327cdc", + "8e4f655b4601f570c9f86983ed33e48a4a26088bcd5b517efddff87d20bbccf5fcdfe39675" + }, + { /* i=2965 cDividendBits=1423 cDivisorBits=1116 */ + "323e04315bf75e269391e9ef5cd60ff937c29955eebaeae4f79626b750d1277cddcab645d5ee5636494291f63569341d2a47f3d104f437d75cfe30f507eae5390acc78b21880844606dda2b29506ea9a98b010b83c65df2177da921882482f2fa8f2d6f4aed205ccd43b5b044d67c08234482500f3ca50f1c56b52b2bc6a46fd4ea657cf715f5dd6b2d7633e1560a444b3a98aabe79d912e519bc210061f3d3702ac24344182d71160938a1e7305116b74de", + "089a8c6d62ff63fc23ebf0f8383a22cf473ba7adb0acc5cb386c67b69c0ae6820d1c8fecb5873f37b3453c1d03ed5ec4c226676c004b8c2d28dad8a454867ede0909c0448296932bba43528602c270b8bd74d6ba72c6063f9c2fbee44ff4d52c62e8984db2d8da849e091448c8e5ba0d260458c225e12ed5397b21c6bc4b6fcb47e512161e900e2b0927a217", + "05d6f0706ead6771c007c99958d4831bc862c2de6a0b69a37a508a14f5e6b47233f9344d16dfb0", + "030ddde67a6f7a1989a440821b211259720a6f2567c884fb9b29adfa40173c564195af118fe264312b63a7fb90336ed2542989595917b1a59530a020a789b5241c67b78fc892b689fbf378a87d1cbace19b2380d57d991728f37bf3225cf6dbf4da0138b30eb117f73904fac8e0d33950d5b3712913f7ea1ced0ca6e50d3c44c6288e035efff37a066fffc0e" + }, + { /* i=2966 cDividendBits=1852 cDivisorBits=504 */ + "0577a2b2e0bc6113d7ae613b05144a565a51a08e1b7fc8a172563ed51c19ef6cc2d51649d1a13ac5c2ca6689eda19011f0637d82ee5b2ea19f984e849931f5174d757b4ddee5a447ac40f3e4b05b38e8d7bd2180b71dd1f7d3c7a7dd79dcd04017de93931317a4df7ee072f213de528ec12f0f6ebb47b58ac4d5c6a9356536564daf48b444eb320255bb58f4e0c5830586b94b5c0d7b6f75b93faa7d02688f81fc1b06cc601f54af803858ee620ed9cca5f032fb4925235db456bbe946eec3f17e10746067451f71622498143287a2efe7222f64c5a850ec229334240bc914517863552d48f3c5ed", + "e4349a563d74136eb29783caebcb594d2cadb3f3f10e032d27f2995fdabdb02f608af929af0f2380c190b329b53875b7934838e05222916cb84d6279cb0807", + "06221b07a3ec594c94d30b78ad86086175a84f56278d05262fbe37e48a8ebb1f98ce4f999f43c025e57b6f468cfd8330827a7a5109af98b1b249f9a17771badc514b169efccc9af7ab9e84107ee79f28d4d52e864bccf97eff373cee0b3ffae841fc8987ac1a14d483a8f2675ed8d494be0d9b062d0d18c0f678ce9b38e3a45dfc39126212b2c78aa2aec4a2524babf2c50dee994e6115c258307f68f23559f2f7b18e05bac102b569", + "607866efc716a896a263f5b5303d14150e4faf2aa5dfadc7d5002f4bde43c566d67e64fccd96a27166c47ef73c2ab2a24470fac763d72bf9effaf370f2880e" + }, + { /* i=2967 cDividendBits=3938 cDivisorBits=514 */ + "1f274fcc8a8d9edf21694b6f460e4f11e9710bbfcf960da66c8ae1e7991300bd6c375e88401b41e6d0a23d8f5815f26765acf54d15810c049b2566b79540d63ee23318ad543317a1fe409b5b84b46ed15ca31e778b037bf7bf25c5dbcb98b038b3f7a3c35986aa55c160bfe70d4737dce72ffb9607f51407b7233edc20edcf8e3cd5c3d37b7e438467bfa57da2bc051592deef7414ebf1060cf1386d9bb6dc2b8109d4ba407be72060224b3d0b8d1c9d49c3c2317eee3b4e21ec278afced0db2a90a0e84df61cd1ee5f89c303b9830ed1899c2d46d15188492960f58dd6be92f5f4eb1ebc14e0926db811dd93546a2b4c8477221b804e76d36ec5a834687851b8e8d2c1b5b61f2617c31f71c8dd31be0bcb04e4a99111742121fb83c8cf84acd5187073cdc6c3c71c998bad85e10391153e37f563d451462295c0841218e8c75acd9d0c1e9655cf197bf8a56a9b6c600fa5aefec0249360ea7af56ffce415db38d68efbd6b4db0d63d9bba9daa46f358cfd145d469bf58b6cc72ea834ae6f5a3e969d3a617a80f42e79f0a9c139d643637630bb9dc6550c5cf22e3fb0cd7f89b35acf86b3ff6724447d69db1bb3b415c28c504eab2314ca4b3cb8f045e654f1af5dbd5ef67cd26196a7f7f649635076fe7d15a2198ee4aa2bdd609c64f573c1cd3d5ecfb4834967e3920901e", + "0239f76da911150f29e7188f2a982ddf67ec0b94db35776390277f8a04423b56a46677e6c0dcc847964e3fdd983a240c2efb1d2064894d428bd4b89e04f904b7ac", + "0dfe1ad4752ef3d62b92372bfe80a14ab627b8745011738a5caf1f38664b314ed4b73245efca4145b86ed4449f5dfdb23d8e9979b7facbaf977d17ef531470d5abee5ae6c0f266d1ff900d4c8831786ee38c56cae6b518b7e4ac72a324d66dd69622153343b1582da4e655acd44c1cb041984613aa5640bd83b2216d316694f80a624eafd465fff318071f3122a978d4152c2df5194bd81fd56ea62a4a280cfdb3cb8b54e9f615957eb8eac09f32fc1240ac12a4bb7b40dd51af9657622149382bd94a11f2d7eae9924aef43d24aeb424751e185a587b5c2153717e27e7cdf13b122a7ac7b606026484fbfb96a003a0bb23fa48c94d7889ed650751daa700d9ddce31b038135db441104f5a1c2e1e310f7e9b33be897a5871747ea46062098e064f4b810532ea5b12f8f94148f3c26259b0f214013a57fee4f26e534004a8a7d6e6c3256b95082d58145c04c0534f9f98ac4325bd030406c60a5f2639922e45320acf6df25982dc2a28add97dba8708d6aebb2bb29fcbbd5479d8c07201a59c2626ba9e768530d3c20095bd564f2f966195a7393d0070cf173f2a92965df382d8735b7884eb85f05bade7555", + "01be7332e83ce65fa93c2258d17dcdcf24afc3df30107936af77bd53bc1e2958fdbbf3a42f156e8140fac5bf7fab7c1d86b82e8a6679d9703098920f222375f802" + }, + { /* i=2968 cDividendBits=1447 cDivisorBits=842 */ + "fda7ed0c867be52c3259f2716b6df493fae43034429cbb9b7de6b6c552968aa404d707d2f222cdb98c9cf3f90dc70aacc0e90a6509e3e54724c2cb033e59df23a932b3a7e180bdef45b804fcb05f0622ae92b7706fc7314aa6e849b0849f0c4d5ebf24605a0958660b1111b6b7f0b1b3887bcb0afd94180425cee452234d7f9423765c0d7d19860f2b98afeae3663c02218a8884be897be06f5a11a3b29e8a8968246fd72771728e18c85449a7ed84567987cde0", + "03a21210be6ab60ea0691adfca02064a64b3ce3670b4795df2189829e5e25c582d92b5b86856f1caa273ef8d8ea155d6b3d6758df67d5e23d757c595a16efc313ca8c785118ce92a072ca41859fe27273fa5960950d4919994e937bff57623481b29129c5b3593f074f1", + "45d17ab3b7383e649984bf53836268409c452a14955818740819cc966947c98e8933a6259bd731105ecf5d32d518cd9d7249181973265a653aa6a18916304ad430057f615a437834894fba", + "01d3001fd2b67ce43e74f5ab68b0737952f4f8743af90f76e990c379daa628cd110af9300cb8d39023343be5b5da8be1d4d2fea77e708e66b6791ff852692e077c0b9c3814d97f1bfe84eca628b62b4ccdc7408a516ef833deb8e762b303ba6f95437b68cf5a3fc377c6" + }, + { /* i=2969 cDividendBits=3077 cDivisorBits=1572 */ + "19814f1b297fbd284fce691c44ee289696f959484e439e21eeafc2e4af11b985ae5af435e961e4bfd5f0eb555974731193b19d1387fd403665ac87b65e4e7e571ef171f3b6102d361c91c26c14690039dea30cb71de410dc44d7cbad2bf5fa886bb99782b61c68a217a701de789c2cddc01fad6ba67697653eabc96eea5d82c8183d0d6d9f677a34ff416fc1770135b583e6282da8dd995c4f7e0eb46a3565ad1fcda778ad8bd5a27260c0486061213cd782591910ae68e52187ad6c3f6833a5b9e3c747fe4513d6a659f9250ca6056b707aed26364379b2fbdeac7d6c64cb4b618ad8d8210d63592cce67a119bf4c4163176fb4ab3a03ed0d2faf9222de6e5b64e99166c671b76e942bdff6d68f105f998668a82a872a66d7592c9b42d5a989a000c1536fc2779675fa23b19f7c9ae31fd351af9cef19ea731b9c766d46dbfe91ab74e18f323f492b27e66befe8111d8313b7e2af52463afe254e6864b8ca39106be1138d4ec5afbf020e7f9d466592d77e05b09f0a180e1e0cbe880e050d12c1", + "0d3077dc05e13db5892cf195ee95735c4fc8a29858a223f2180fd490c211c71b806e2ca78717c1c89ecdb6d7af29a0d81d97c3af519dc83c8f7ae028775582eaa4ff6231b317be1ffd704905f98f1d911d3865c5492541d772a1f3b90bac6dcdb075d7906c80fcf5cd79d44953bcd5f66a9723388d28c8acde13da7cdc48e6bebcbb7be32243883b41a762c8e663b7d928bcfb584b47cba04370a456e77447da59f26150429a05b20ca3bbc3a466780b98d2b4c64d350a1dd024f740e53519856fc56e334e", + "01ef0b7994d58e92e0f60a4e5ad710213bd217f2496e4865960f5ffcc013010d3d1684a03851653a566efabc33828bccb52d4f443f571776492a036510a81ab61ac305e73d4b989fa6b493b1d306b0d2506f8f97ae83061aecb6d94e568fd745c2104c1904d157288e18b285ab3be52c6c6b924ef92b3ff5e45467e7c5676180903f4de7b137b9ade319416921cedd4cbec363ac47800d466abd3801726848ac23258fa2a40361a1909d197a74757de5297346c3b07d6f705bd27aefe3", + "09eaaee5860c38defad1c56eff506e235db722109a1abd43d81db1fb07341ae46d1d9f16a0d99b8f33851311c06f1b26b9577d3f23d53cee401e32649646dbae699c0e468486779fd42a0fbdb67b65a9fce82e18324258e855c065387dd0fcaf1d8212c255fd4b55c13cc232acd8871435f5842e7419b52f1166f951e8ef095fe7d65ae82783aa6b91ca2cf296ec111ff6a55d18e9a5f8f65184df300b44119bc5e900329d9624697804c27194a2bce1782284ee79280a4da642fcda1d22e1034ba343c297" + }, + { /* i=2970 cDividendBits=2173 cDivisorBits=1790 */ + "06968dba2e517686b7dc16af8db79b459684deeaa2250158c47ddbd2b15be6878a54dbdd545b11383154e8b93ef8bb3841076b89a565ccde2c2bdad429e2b63530b6ed8c8a29cd42b860824e6ae7061020765630ded4b0787de9bb0f4c418410d3a07f1064343b4235565adfabd554455b802cd3079feff65418992479d9804532b0d8232c3df7537a2852a4dd77b7bc2660bf056d6819d54112f64bb82369667c6eaefde039600b8854c401d155ceba48eb1bc75da30f563d5ffcdf9ce18c8099079f92a28e4daa1fe93a6d3cad9d7021b1c10bd61f5b81fd9733fb9a023d1df0551bf08a71c92f7f4e5688a3e5688bf6e942ef7105d3b828b2a2b7c8cd09c5dc542402b4d3c58b8276ddbd933e49b3", + "2de9ebd206c32e19184afe6970a045be8aed61db06b0fbe47b6572cce4b236dd616ae2a35606c704197fc49ee294a725019e22dcfaf7d0fd03bba1178a0a05f084b8713b2f96ab5ac445e7bbce0c5316f5e56f8e5b9a692b47ed9f1e454ce3e403f0a87e5c5f9d3b5dec06b44042844f7a72959d68c469035703823d7face14c6226928c23b48d05a416fa9b3c0d9b59862ce4b9add22037d83db9326f5bb2fde1bf899ca5e990c0392f2b0862d7437b62894f45499753b6041556f235b41e1aac5b1abe315f7851f01ef648b95ac517f2ff0050da5a0bbdb6da3df8f7dce1a4", + "24bbab223431e6bf23d5d4fe439de30067dacdd096f32bdb82b1606c118b2305f6ddc568c52c38027b7b387d6e2a1a33", + "23e57559ab2b955f58d747c592dabc62222d7d3b71e508ce887380b3cab71dc0b969ad3f58490365203b63a42aecb23dac39a4b8dd5272c99b85e7ad13c4ad73263ccb02866667316f7ad90ba1a6d48462f981e79d4dec7308a46d8ebc08cf97eba3d051afce2cc73cef8d325d30bd4b4a8e053e8c163f405f8a07e5f5c7f3278fa6132707238efe57032fe1b19f2ae9b6cf39c754772a72010ef1695d3d3c66914501d93092b5c23f5df8cf24e36c36f5b342d5a61d1096d85f2ad9573f397c29a8948eeb6b49884996fdcdc0c219ed3020033ff4e5d02337559bb2466aae07" + }, + { /* i=2971 cDividendBits=774 cDivisorBits=222 */ + "194a2f2306af288e2e28184ddf92bd467e80f5dce13419d46899b7f3c816a18b444845f5f71aa9cf96fa82aaf64b8b2cfd5255c2ec60a5b304c21ef583b3c25febb1543831f4c5daafc9f0f0cf4d432f916908cd403a008212d5034cbe1c7e41e0", + "221448d169d74d3415488d135664f3e5426bd1feea6da40dc300777d", + "bdf97589a32a8ecb440749eabaeffbc2f002c0d72b8002acbb10d9dc20c7069503547eacd5ab1c0be3d434aa4fe657b8516819bffedf8e5d489374b5914c68f8c737eee139", + "0cd195df5476c17bf98e3446a734d051cc0bee071bd34f045728ca0b" + }, + { /* i=2972 cDividendBits=2374 cDivisorBits=70 */ + "03d9491f61eff7724d04976e043cb0c12548a9db4bf0e3b81814a5795f8c1d7759b3d65b791527e953e1417e6fdc823567e2b0d6b749dc047b2e769bb3e5f88e2e73ae3d68eb6c75f7b9a1b7d549bc18c820b703f4578643d4f7f7d7060731ecbfd1e4334c71b050a722063b13ac5805030817abfb412aff6bda52fcc79e6437541e6239295daee1b3403004bf5ab808945b635a21f8184682e49bd501fb97b00124bb40b09632c2b0ff3cde2c909eccf42a5ce5b8cb6a3a959fc9d6126e005898d27df4d1353b8fd6fd80a120a20b41c0684484cc694a138921dc9b33e651e5083918bb4873cf440a3599c17be75a4d1f690752d4f3cef895f75a750e7ea34e2f39047aa7fe4691cc11b18ff00cd91b98d58a454dc14eecf708c2ed0a40827069246872faa855e5ee", + "1f2363d1e20b465326", + "1fa46ddd94716a6c69f0f3278c5645f763791997df3d4dd89a4805b1da3230ffdca41191aa051409055aea832db4901ee84ee0400a7bc1c59321fb90f7c71d695ef1ac1b702e800e98f37543fbc10ab39c8d7778663682940cc7c94f194a0a7212f4e261b06ea6116c6cb0313ae54ec61e2c367f414e18a9dad51a9a006f6a595252b9aad5ccc64e58fd4828ac0035e6e836e747a244824a1dc0b238604ac6db01a128fbf7606c6df2c7606b435ccbccfb6e178ac84422982e3f86a7ff01dba1f477cba144b74d9535fb1844089990bf1bbb9aaa8a975a370a44be014d755b9f296b3cee068c96cafe2a06d03ec12a12c8b8a514cf04faa9c8aafbead70e70150162a03ea192e1ca59888570780275d7de51503dba049fe03ebd1dc68703f476", + "0fbfe46cfa6b395a6a" + }, + { /* i=2973 cDividendBits=797 cDivisorBits=37 */ + "014643fb2aea445692f1e15d598665e2fa1c8b31ed984cfabc7f0487bf4bb7ac9a5249c3ffd3ca3474bd79060930d3fbc8da24b2ea764688ff6b65b5f3c8c5d43f186129065d98795d5d7432110b4196526dd5638cfe052e8acdbdd841ae82ce63e1e9e1", + "0f5effcfa6", + "1539d5eb642b4ea94c0ad95d3ef927b8c29fc47f40095ceecf41403f857a623bdd809651d45bc19ce45a55186c4a5393ccfdd6f822dbef43e9fbbe24835883019e286f32e913ea341d0a1a884deca4c7bcfc78d3187d617a6ebbd31d54632e", + "067425680d" + }, + { /* i=2974 cDividendBits=3285 cDivisorBits=2795 */ + "02fbdf8cd2c8c5a2a64b7f60bef9cfdcb73bc65b70585121d20602b5ffe2bd1dc3a3e8f5f48694d94369e19c9ddb881eb15a18a26882c32f7abbc8b0624639b7b05266b5016a7459569bac0a6d47c2e1fbd85f29b0d23b12b401522ebbd4096657478dd231c45cdce479322bb8b38c3627fdb2a9bf03b7289a74bbd5f757c935de621f0d3069d651f209ed65a7a7d99e4c64d92155678e7e8b63c1514fed3c4ce4391083eb801700cbdc72ec93961b6ca828204c7715c83c2cbc460cb4985dbb20b9eb4d7d555dd4a686f51bdaef6ad3fc1d02a548110f44d934085f18a4cacf8688243e04e1e3f434945747d17eb734b88d15d71a422e0e6f61c87c8b27d74b8fc22df8d747059591ff5902bbc04c18543fcb0521dabdf74634a7bd71012744502668964aff1319e4cf67dc12ce736d91a37baee6f851d457e4d62cd66745ac7ec1485b48ab3c7486b7dbf0a7235133c8b9c827bc740ccaf04a4c2c0a22f175669664faa5aa92f7da645089d6ebac4084e3029671603ba91477844d936ff136b5bff547cd7b3b72ae1cf4832eb96e19f0dfeb9740d2a8d167018c", + "0194f10a1f279f65b12c6d03d0810267d68448bdc68698125bf7e304d2855f9c8a956bbfb20425801e7a0efd53dd59ccc440b6938be8ebd8f49d9fdc758e4314c442cb8b39e1c97709c1175fa1f0e0dbeffeefd4573939149d58c845effe3b52aa938d3d7452def3a3145d90ca950030bfcac16958ac4ecf52fafa0046ff864006abb5bafd065675f285562a3bd5f52ba83e2154957dd32d6ec8a98fd951bb9300ca8427d2f2828fde13231386a172e1c64144b981f16dc4843f0eaea89e257641c1467838e78697baeb9d239b0350b5c6b78fa275a0def489353d2d6d6633b4a196946808e74f2b555bf1a13c19c537277556c4f7f76c1e568cc840e29d43b3b3e0d08bc533fe88005fae2ea1ff9c18c295dcb664e0396a9d4d00c8d4fabe5e57592f981b52324fa33af607ac5fdc4df49bbd5cab7e53cfc569d61b135532c20f382b3f03a1bac02f76471c63f54928b408e74141d7f6cacd0c226811ee", + "01e2e9bb5eba7111af27b37d8a9068dc5b931160bb6e7ab7ea20c86c5eeb746bc3944598fa3c2ac374e231bb0876f6d8bdbe3439621b6318a874bb5c6465", + "038917f8cd0cd8fa29bbe614d12dd5523e8ab8d8dc8a9012c90fb7ac47acc99d888bb391dc58a513eb053f077db85e0545bc9a407239320e24775969a584e56796a57ad83166b9b1874eced34f15a5c476fa4c6c49b2aa2060babfaa1934b29b2295571a881448a9c39847018924d5c60d2ebdb6e8457f481d0075b6aceb95290879d57c91340bc8dc2cda60de511d2c509288e80921800e0230052728086a255286d88d29e86e296471b4cca4cf4f74be2e7bb1bb3fe1af1b3e0aff4a766837bfb85183416c1e233caee3c7749ca6785d89113420bca115a20fb4826e61cf01080f9a3605e351705983fe13224974fedb67f4e9a6c13db01b0da9f45a9e3023f50afbeb57d6342a4483be1bcf78fa60f1e2e88d69bac7728ef2271ad9e891a39c66fb75fdc90516a77ad91cfe39e1a6493d7de1bff831a0dd3fdf237a927b57c9674d3cc3790837bccd19dbe242583a0151db5bc7d86a7d174bcef6a6" + }, + { /* i=2975 cDividendBits=3117 cDivisorBits=2998 */ + "150a9d8570eafb93264a72128b211665c20df57c519d8987937ec7d62d0e4598f25d6589c6b85e9134c94e0d16e61a472022cbc68c5dc519ee5a9ff7ae499a7329a4fd277a45d10e197bbab0dfb0422589b9fb7a2cd7d9f9b7bc92580b7fb0082f47e9dd9362e2c3ef40a68b1aad1cd154af5d16506d157c16d9180f823d0329fe6127d604e5b5a20a80ea57883a58158b4064aed8a4c074fd1bd844eff22537e144b0b41397ea1714ee4658c7be30ec3618e22104116a30988fbd1d2b73a5fc3cd8ae71f60c5927cd2abfbf127c8dd1e2613099abba42de0cf1efc86082c63c024fae0cbe0d0776ddef031f0abf40b5643ea7fab42ea11dce0a9459f5789542e8092823e0f081fbc2760901c62b03f75511aff3934102eaf38d2bb352c8c3ee728eb9f82bb7aa7d6787507e492ccbc3b8d67ad815f65407223009bfa42d0f7af34b461f6db5da73ed0e56859cfc2b450d9ec316a1bf9b83897c61c4e18683a8d579fd5cd7082ae0655d776a18d954726c287499a7e2ee26ddc5c46bd373c481145ba0601ab3", + "2575ac0d922916569578042c5bd9949d6183c7d2128b0d22a4385b577c2307047de5c2b6b818c026def62544078dc340e6fed0ff9979e8770fc0b412d90f72d4dd48524ffefbfbf58b525c95c74ab9efe481fb6b69941983d31c484cc18dc8275f4b0a44a16eb0c533ce57ecd0b5925a7c70b9277868dbc00e609f38bb2e9130c5169fdf575ea273375b6827fd15b6d6382554382ef34c8de653b7a23dde30c66eaf40a2187f9dd14b64fdb51549cc2e4cb99d4a445e961402000fb2567f7fa6904b472720ed20b197416b99e1301c512a429a88fae8f438b9a731719153f1e5c3dbcd46ce154181d8dd4ddcdceae163176569a30a858ea9b6fec593b4767eb123c4369b3748994483fa7bac642ddd24353b9ff237b9ce35a1153260d696c3995dd977ce41f2bb33aad0ecd88833f47b1a589f136fba867c327fc6dc8fef35f584e887ddeb1d22212e22a79d603d73d008f075fa589804e8f72951bbaae54740c715af0aeb6872bbfa034c14c55ce77fba79374b02e9e1", + "8fcc3b1203a3b6fbfaef00565977b7", + "1070f214b00497a834f8531f46628897af56aa1a062e29a2760503a84db5e8a64d79b6716454831b9171e057c696053bf8954a5aa525d253bf6be3fa2e77c3725ad2ea6ed4f380a0b99a581e37f6e3709b39f5eca3a74b6fba1614aa6c04cbe76f4544a9d66ab39301bd909abc643d8d6ecb4e992c62dc728eadb1dfa633dc74c2ac86f01b302877cee6ad1e02bc3aeb5f4201f7f3c194bda1653ae5bee1cb46911f32774cc168d7ddf17ace11e89751b7ae3570986903826a97d1fed365464b0b6e42f8e0b9953b4e011a8dbd26680034e02cf1ff18452335e5264a110d3297bc49c083c22825c5f60272b8388210e9b02df7db84095289486049346df43fdd61d930b80c29f95124b8a1771b4bd5007d115eb7a5cf8f5f03c21f65d1978778bcff4b0dcc2527f7de73cecbb1cddc295791d913f7cc4341c642341d87e7728996688692029b1ac21871dac9558262b32b718d7f310539c7a42eb83a13b40fb2a3b7af995f8a7b9307434daf6d7ce5575c9c61c15a53dc" + }, + { /* i=2976 cDividendBits=1670 cDivisorBits=472 */ + "3dd35a59e7b83524dc0aaf53abe97f3a0dd54fa72d56491fbd8dd5c54a38f2093e58b27d8f98c5a69651b5bcb5e538a41b4224063501ee205c0b42412cc8706cf0bbcc8a81d2deda450a7f7efbe46d878f1b0d11044524854ae6e6010aa4f133f0f2e174dfdf8e0994dcb6be49a7fafdb4212d1d863d9cde002b45ff6ac12e59b02af10ffb87026059fb26ee8074c979f6f8739e1bb9d71b0b55cc6bb47961f1e740fb20c65a99907413cb61a64a5704765d8cb8399b3c6359bb021f3f68fe22bd7338a2a596d960945900d6f6119810f3", + "4856d8fff9a6ae92e18d2f4b7943e816c1d8312dce1547704cc125d3c512c812919e832e9ad288e7597a6bea197a026107c8016545eccf260413df", + "dacb1ec506aadc865bfe868ca1c7696b3fc6ee066ebbbf8829477989ea08d1a326c72f33293063192270859318e0d2437eb49086ef482fce5301fcf71a60a6a1e8c002c79e007a9644ef2e082bcefe1a237264285c1d1e1ffdedc3e5372affc0db43c0425f3364bd9d281f9787a7e814d55d12396b320747f7f5cf4871d2db53df48a6036aefbb2997bd05cbd5c80a6f37dde9cf70ca", + "3ff6bfcff86f398fb6f05ef60c344ed86a683d6f14b17c8e3343fc945cc177b508a8edecb34390c500924ae02462bc33cec556cda4d6fb415dd2fd" + }, + { /* i=2977 cDividendBits=2493 cDivisorBits=1267 */ + "7450610f978cbe90c766925bcac060fd5c1d442b705fd620444bb7948956ca8d7c22a94ee7461f9dc0c2d142d29015f377ff2670d28b4e8c0c31a5e6921dcbf8858318cb11f8f0ce1ffbbd59739dfebe86d7f53f1303c5ca68c0b16330fd2def98cfb96d2be41d4926c7414d4113fb806edeb791ca06c92ac534c69e6cc4d815e91c346308e176dfb16a949282e8cd24baa792186224dc4e324906af0df35315b021019233f61aac56abc93385e15e8dbdf5a94ec39b6da47e9afc8db09b9e8501e6845a370dde60b4ea43e395b7b5c0a183aa0df2ab8c5c9fe1ba33f909200d100f1f87796039c67dd8008212bffed5722f545f9bc6a45ee262e9552f36e0537aa2b69e03c3a022a5cc63218a51e4492aec836b5ee517b2a7b97edf78d604101b9f81c3e8c0557b4c67e3d5ba8c673e3921f6556093f9", + "07511381ed4f5ce6d688d34964feaf526e64f63ce9da3439e9d2b00124de8c978788b5c3248848b069672f9359321b2e6ba74ebd6d2ffb6569caa7d78e15e912c12652d954915a2df29529f4bcea038eb3a76ae31c55fc4219589f7aedfba584992eb9e05a113dfe0b7f22ddcf94e41bb31644d0b6fe8168792a260c14fd7f3cb5cbf38342bb19041bad9cdc213cc7c4d99787c31e942b37fda5fd36366811", + "0fe5a4d3f9e18a958e653917c9068336ffa0ce36f0d3cc2a0e3b90eba3031e581fda323ee27cfba5af65ae3fa87a6f97bbfe37f900eb397746668b250f369e1a9bb9f75524f6c0eee799656d7841093af0bc541139722bfad822ce165be29493ce65661629546e49ee2e054712ba6fceb0982c32f4d19d493f60af97882c48a8a62dae5e4aba145620386709d0e4ab86e0482c6b4c703b8c11", + "055cdd8bb110ce8d36558503704af347c8313804042feb16558596e02f690c6175b5d2364fd921ead07aaf614b9e82449c6a668ff4b312b268c713bca441776b0639ed53a281995a5d9b2f063aee7d45853689e304156185ccc88eca95d76b9b15a51cd0873f7ad16fd078192b204c3f16cc06ed76b9c8c79bb05cb9319c9d3abe23a8ba828f58abe66c74a15b4261103123022554828245f556628eef5ed8" + }, + { /* i=2978 cDividendBits=452 cDivisorBits=128 */ + "073ff02cb9b1277ac696abafc3185a5e8f73399f4028beff5988f85e1e37a1366eb8428e031f6f1a8fc29c9bdc74b6754f599d836fca4aef21", + "057d777883f6d61da73df9d02496b794", + "01520d31a4619eecb5e5dc7c8141d46fd5ee9f4105a904bb05ef40da0131f3ccd7032e73512c16af8b51", + "010dd458010f328216761c782ac17d4d" + }, + { /* i=2979 cDividendBits=538 cDivisorBits=160 */ + "020b8e2b1c6985bd98fdeb784939f7bc469bcd471f1c5f1e1f9fe96b267f4165551216a36be6702d0b44e827024fca774f7dd085d75cd372c0c8cf0404a93f2394aac98d", + "b9003aa1af7aaf4a68f07a400007737d3de9f34f", + "02d47be06d019b02faa55f37e52f5e022443d668a769817ce2da1a2346e20cbde6c673476269ca7aaf3d47145d7c4e28", + "2639c5b1b29f63ad464ac2c49a9224d312b6b335" + }, + { /* i=2980 cDividendBits=1110 cDivisorBits=461 */ + "31a6c20a3ccaf407289e54ba371da6efa8a84114dc5b2ca4addd17c142638b812f3257a55423bdc1c67d6a29839640de58d434fc6906fd819934f31b48dea046d9ee3e2258182caac3207c09ab029a3bea30268610c1f0c0c3f4528f7591c332274d70d4263ab1c6fe73f62907c62111d0d6bee8d813ea6a3ab6ffa71a1cae9d48972a1fe199fd28d7356f", + "1eadb4c2ad9783251eff5ccbbde8b9187ef172ec86f9e7d1a3560b257afc2663a5698a67fbd89977f260e92a81106bfdd1ec78fa117cd49575c5", + "019e522203a41148ece3c7e6911d19a1a0e64e74b0fa1412fdbe662c2a986a25cfef6f169f7b73c443455cc87fb842effa8b1e83f8b9f9262a2d74e5ffe86fa3d2de00519266c4c5912cd838abff453eb2b1", + "19f76b97625bf160cd5d0c4a660d78bda5c01ae3b14d634e2245faaa80b0946e291810766dd3b84fc88efa485dd58b83170227a80bb2a2e7ce3a" + }, + { /* i=2981 cDividendBits=197 cDivisorBits=123 */ + "10c43d3be8928b7333c652ff748365ea7f915a5f99c226a9be", + "03be2e2a38afe76b0329b554e28ea8f0", + "047ac553b9c76cd5697c", + "0369db3d4df3e8d393c74707b212657e" + }, + { /* i=2982 cDividendBits=715 cDivisorBits=385 */ + "021b8c0f24fcb02c27dbed62d0c2ba32a7b81579463dacbb4472ecc6b012f2b3ec9f4faa098b720ee9dcab558e8b7ab630188defa2760178dfdd7cc6c70a3bb2e55252aad2686f969eae5e448c840756ad8c56e50ad3bbb6d012", + "c71f9370df8f7859c322c74353819641582454dacdb57b1fbb7a1af4a1d71cf4cdf89773f459c217a0fd55c3f7abee2b", + "02b5a92aa5bed99006c87acefe9f10993e7e283430fde00ec6d2b60c2bc87b37590383abfd3071b31ad3", + "b9d41d13bc05e0551faee9de868af171d29d82830a1ab8d7cae02d548255cf935d044eafbf1c00fe00b23abe9fc024a1" + }, + { /* i=2983 cDividendBits=455 cDivisorBits=299 */ + "66c024eab093a6e5281caf5c638d11d4ebd537cffee6848f6abf360b19ee62ec13c9a0476ecd5561c7d8b6fe961c9a230349223535cf5b6d1b", + "06f5637dea257fb4c56284ec39a1bac000314478c1b89e3e35ed6e79dc0f4822f5cd95eed4f6", + "0ec41e721425bf9d27c7e1b381d0eaa32d780576", + "0565f37df8471a40def1e36d6f1b0f422260a2a50388bfb757c2015dbba53ae42c7ff7cc75b7" + }, + { /* i=2984 cDividendBits=1047 cDivisorBits=570 */ + "73c2e41965c5068e997f2db954942c5c8c4c4ac80c4c70ab8625bcc2f761a031c9189f28c85d73ddbdf3cc7ca2329ff40efe9959d8e25a7179c71670930ff3c2aaf2afe4431edec2521c0694d889f5731ae33892a2a03265b5a0f6b9d35fbd0a0840bcacd539531c8d18bf4d7e807af0efb83c598ba378d6f4c3b5723c23a9715c10d1", + "0185eecdd8506a094769080530c419eebe131f80e10a991744005b8c9c47fd4ee94833d2672e4fd635fbb274cb3ab262ec9decfcfb745e8909923774f497ba73c3d9b3f01df89865", + "4bffff5614025a45d02275da773668c6641820fe9325c6887431482dbbb5257c874b2dcb9d837a1b8a1688ee5462399e0abcd4e7672e0a7b036a7689", + "980c2fa00c13b926bf90e91cc7de8872b51a7231c38451f168aba0215136059cbf9beb88f1d63075621d6564626979fd9ceb8a5b77bbc61caba101210f9591d678ad198841f4c4" + }, + { /* i=2985 cDividendBits=189 cDivisorBits=50 */ + "019548a549abbf2db97fb36c601a1656a4c479b3911ee2b2", + "f02bb41b0a35", + "01affed2bb2bc5faa0af1741bdf28ee0b98b", + "1e64e7b00aeb" + }, + { /* i=2986 cDividendBits=3820 cDivisorBits=2160 */ + "0e76a94b9c645ddd7984a4686d4cb127bb7d5021868d170579d30f6041244887e53fa3ec9b237b11165772a966c88d06f0f754c35ee8169dcbc031a3f9551c69959ade88b34837824b6d8538e5183135614d2f4612c1c7ae18456ef24802ff838d04e133468e5d9c090bbcfd0094085633df88eb5413a985ac1c0a81a7b5fbc2fc66c2996c37cc2b267b5182140d3c706ac1090442a29e4894a31808ed0b008d478f8b91c4b311d61c0ae56e9e6761946a5ec42740613768757359d017f528608a16f4c3bf5c7e06c702cb3dc8d185d7db4bf81f61946a6d93377d716d1970d06a880d3a403a563f5585071da3041ca83690c219951da1435d0b04ae60ebfdbffe2d1e7c662815229f50908d943d12e0dd31271d6fac47c45699fe631c23ceaea81e4ee7c9a56f4c2ec295923203a152e17fefb04baf96dd67127eba469b3aa0fa13e091f4bb0d4112e43803c51f18bb64948ffacedc4686f1e71ab31133bfccc5a08769ed4edb9d45070a0ebcbf901891521d26a8e129fb6d14a148faf739b2935b45e08e5399bce196edc7844f4df215890277a742393136bab11f06087dabf9c4f7daaf91dcaab527323517f896abc5cb316a06cc3b47f14f094560dcdfac9bf65a5f252bbe6fcda8b81a51df78694ef1a1ad9229c3dea3d3e027a954", + "9906db37dc15cb430e12532d7b3acf3dbbbc3bb977f4e36bd0970a0634d072dfd519b0fbd7277d897ec6a937a0c8c4b7dace1565c7162210d44abef3ea62a5d54dfa88651930af735db6410a8dfd911d4b989341f29ceda90c0a652619844bf717734eda81eff0e5db52ef7f6805b8d2989444bd2c2b5a540bab133df93c448d962da6812bd8678b70bfa6557d76dc8c6f122d0820ad012c4d7aaf63d1dc3ba1d60b31177532682bc4f943e10ea49a7c41443c830735542ad0a6645ed3a8fc64066ee653dea2b5f646dcc18b61fa8a36e83ee9beb115f0c0fe13ec4f5d2a7b2e217d61fcc156e3043b98cdca1a23e2560e93aef453a42bceb006522037cb7e72d7940e596e1c21f819f163c6f894", + "183237e1fc2655ecd4d8f254a6ad3392d544380b2bced4f5fdec02341c5565a5c7a1797d9bceba3ea6e2c3bce71b86338b485ec2e703b0dca627dd54f21601963c5078834d81bba838c6fac20765072d8e87ba17887050951ab72122e0b9d9f83497a167637782eab0fef6e19a258fe0efdaebdb1ac268605914f4f34b1108aacae6c37308081c2d10188db70856e1a366e4b39453f920fa99f2434ac9f601f0aec001c2df34b902b37f26d32632bc335f6e0e777c22dac1e51f793fd8e067cd93a42860eae6cf774c0ac08e8401b225", + "8f14c81513043a592e742582917d325ed5dbdd8e8817bde390d49738d9b10aa2c2fab9b03e8cbb8df17e1e4c0f3f7b1c6d9ade4ea3bd42e7cd848a5510dedf0211a282fc652542684431babd4c12eac9e9abdc3d03e5c0c10fcf6715278952997fe3df09eae42b6b36a37c096277d126cbc2594fe30dfecf3e24b644b1907e6f4f68e6b6e1298f2c3e86c520a78bd50adc2c188ad3d143825a9cb3ab38b24fe47eebfee70e17b5aed11703ddccf50757fa6246147904f18e74c40c057125076bfd3eb6d2d1e5531c3a9a874cb810623fae089b7476fa01e81f318762cc4936de4976ec63c1ac7cc8c4406ed0756e6b4dac9eadb3e55e4098bebaf66cdedf61ebc699f6fb6a098f002e84d2fad3f0" + }, + { /* i=2987 cDividendBits=3140 cDivisorBits=1006 */ + "0138e965aecae3e4fd219e8ec8ff9a1e5ecf71f89263a7b1d22d2c7e275f7cc06111de028e896a2a28f5250aa3a9838fbd978c2963a118bf2b9cfebabb150c97b94d995aebe055b81a26aaa48f1770e6ec3ebb4fd7aff9d502f3eefe6f0b34266905b5eff988b2292f65140cfe12193abec5fed841f1a00eb3e50085d0915730329fb6c046c94727bb8d379a4378fb89ab2b874d62e5945f9d36725a232c1681a468347b527ce15dcea97fd17a22e25d80a0cba362c65845d7ddd95a5e8a672168c7ec7d81c43971d43c4340d0a37eb104bfd2683199fcf4d59ed2ae1fdde62467a4236133020cbd525db365c8c67744452c778ce9b2abcf8226ce99e6e24baf78c34549d1b986728405a7ece6f9c6dc69071be83a52a5a4e0940fb2228bfd7058afe3060c3d51bcb6272578baa14f2cb906d5a45195ec95fbf8ba6739101c7fe7666e5b8fcc19d42647065662501206ffc4333a0db5ccb98d8d2254bf4c946e5a08fba3d6629d7f3d8bb124e99c74c07752d995111819465f5ba8e8a00b28a888321a78b736fad47b", + "3f69ca1f24b89560a18d16de1ae77a39e0456a11aca431abd6582a1c22b4bee85312b4c6cbcbba61187aef766f384690d1a1bccc9e0b41057e2359f587d870dc89faf0d841afdec3499a320e4727a3dea0f747d4f64fad0b963f6c89d663288a9c5205a84168f35c3a7a12a0c4c6fb2c724b3c6ff30ddd8e3c06b46407aa", + "04ef3a6f223c78312dcd973bdbacf023657f9031d6ead03b545b32f75f9ddc8ca890c804979a7de5af783fbd7a66811b827eefaa52784a358ba26c527e9ae2054ae60f814b539d14b6d6b34958b06e9a5c97c50a244aff51fa44e47c89a82c7e31ae3d3aeb5a5e90d067d57d367e226dadfeae83f1a5c29173cf2d6df041e11597be837f24248e0aec3b1613f43b8ca6d59bf9f483b4ea635bcace0169fcbe01086fbf8fba9b695a9cc02db573677fba33f59a2144b02bdd7282b78799f69dd584af31526cb02c2eab71a24a63789410d2a8aa183b872ac54de0d8d1cc949e437a035cd3d75e576aa72e02c57c25da0f37e7eeb1a1bed28e701f63d74868fe20d9f55884c56880a4bf4732", + "1474598a1872b419f4ddab29e936cd0746b2f48e2de82d5fe40650c8f233a618d960116ac411a16864659530055e0286b5de98ac1e5d726b745858ab3c891b9b6c9a6de146ff882dac01bd7ce87d3fe38d9c11bf7a371e7b06775a54ad57cd060e1cf371c881a7f20651df9edcb4110ec93a451b75cd022952d59d7b2f47" + }, + { /* i=2988 cDividendBits=893 cDivisorBits=420 */ + "171d68c5578266d56330e5effce06bad4147894e336ac83a427e59298142435c5adf8ee9685eb9352b3fad79aa4cf0d48d6f1988c12292020f9e96590e4a6d441482310cd50a8260280504ccfc0d178a97911e12e7e08a025c247d0cbaedc5f348bb9723ca7d2fafa465594b44a81b83", + "0bb3aed0953e237ed8f72e4144828564801156740558ebcc2174c3606364ce22ea077fda0814629075dc7611613902e34d58f229de", + "01f9ae115a4dc58ddf63eae4977ec33dbe8e3254cf1273487109b1b02a839e8114186fb5f41efb81e78f2e811fafcb717e2b8f2aa56d0598b45fca0c", + "014c32c5ff307872c41456f2f8fa25e086d42fa44bc42d8a41c826bf4972c585c643c05444ccba7d66c8412b128089305e62e2f91b" + }, + { /* i=2989 cDividendBits=2923 cDivisorBits=1754 */ + "02bf8b483f7e80d21c6c3c3c98f57fe721dea61c58a7e9306e0ba1af93ba14baeda8dc7e2096917786b30c10450ba2532ed831a299ec3f1e1e3623dcc5ee1cd5b7482e4d0992aab79a9c6e4b34e5d0240b9759e9c51380474a14b5ef32cee0e60641eb92230b6953552f6efa8c7c584a13064dbc470ec02a9b15e319b7b12955a8cccba8ad56c07aab7a59d07af36f9b422cfcbafc9c01d766a9bf0f318c2b873aa66b257a4f3e09b4600365323c9b41edb921194157c831f5717f0af5d76ea4e8b59bf8967560154ea6064bca00bc919736eddb1cea77fa1485fb76779858ddd3600983d163aae3d7683571322bc2dd08e6ef7007170e082d363a37495476d8934cb98b796a8e85416f793bd22d1e3180953df475846e0f8409cac28864ccb65e9e77fa3751a13cb21b6d0bc6b597a292ce3f01c1cda27b5b2f19a47ec1934b24938f3b88a18e39e69e24e45f7ef8a68033d6ebe232afecf99a9973dd2410ab5512cfdd9a9d595665ffb36b320a", + "0393113139e37ae295aec4493aa87728dee196b9fa677113cfce7d2dbb75767a5e21b68f9362d7a80195e3d1a5c42dda1fe77f50a77611132b8765a79df4f2aa20a5fae99dab03c85755de437fc0af424b9815a6bc2569585ef52de90f6fe7c31b26dcbce3ffd18074b8d6f5edd7e03fcc90e57a1cda9421348bd07b20cb1bfea3b299aefd8c25031e5175ce05048523b558cea0eb2895660feff825930f35894b564b7421f2a8b5abe67d9683af22ef78f8facc06d175b0682227e3c01c77c63a5ef76bbbd50fd5d4128df0f716742fc308d1e618dc0456ed8baef0", + "c4d2f91d65002174d42f3c9fd29fba8c683fc7d2545b0a8f4f245019f2d59eda26460c5df4d29bed4d0fb544ae0d8842ca489a624eaec8fadafb8f2014b38783c12607df33af29b416409baff74618d48db36ba91a4d953e948b4920539c02d9e742c09dbaee02d891e50621eb8790a5a6a834b44e91c05cb481ce08b0ea716464cf980814dcb08a5eb501049ac3a7d00a5a", + "8c535ce698d7b1a520d5022b1fe86bc3754eb88b451fc5f90a5cc7628264d7580338770ca7f50fa84d4522a28ed95e6e68d6b53b2896285955d56854c381a05d3d7f1e3095f3554e739014a1c0f8f949bad6a459ad657f735863e010e540ca05946a045a85835d2416e1ca4b6baca127e5fb40f6176f61fc59277ede2f3391ff23cdc07b904ea34cb34bb496fad44b5bef30c6312a03eec554a68f6586f2a4ebe300e2ee65aaee7f5eec4e9486999573917a6e2bb4944696ce0315191960a96490bd835bea25ab6344301d3afdb16403896e7d23d7b8bc087a51aa" + }, + { /* i=2990 cDividendBits=2486 cDivisorBits=1559 */ + "225a18b0f01dd08ec6885fdaf5a9f41dd389848f9e3e6b5b2b71078f47009d6c96e2bc1f6178d14a786a5f7b2314002fb5a1697e77b9c6ab4ca9b34403639ad58e440febb0371c3c9f14c2f6be3d3bb5e0debe2a2c14de82e9d54204c3fb1a995d0a668dc32ed42f54a000de06bf2efdc00f6a718745f4aaa7decc9b12af2a80dfdad30e8ff33c7a0953702a182ffe44b09f2b21a06515695886aa44a1c7219dd161b11a50cc8e565a5d5d3c2e25ae223f3d7ea4a25b2b03478c7dbeba710856dbd9f706af7a9f5a16aa4a8f09f8937a0c7b5a71a98d37fb7f1f8c915ca1a3f27f2aae1a38e13de4980b28a272df39f3e20bbd1227f15bc4c221435764fc0e7f2ab0adc89f1ee3545d2693e09cb640cdb087ba40c8a61adc9c7bd90bdbed7ec30e6936ec53f1c877c122ebaf7c81af625d3bed5cc509b2", + "2e11c11ac5da95862cac41637e21c785bc46a16b3144f989994d1e6bb55dbd239292b0826599972cea8965d036750556c90ae8a926315440815e85ac1244624c08348bb8a56df6774aefc0aee6fe7deebf28e90f6f712a2f8ceb93bf6ea23d5863e41b705a82741a85c3dc17f8eb7e7f73ee6145909f2759c00e700ff1d7a5f21ae99dda4ba652e9e37d9cc0ede175457b860fd78644f14437bec4661540dd7cc5ab64d6c7179dbfce6028b10c99c581c95d04446cf16d8d9e99d109a0eb08e2a508bf", + "bee361f51dd9b8bcaa1f736d0dc1cc596da2671718724dc90a8bffe42aee6f190c62fed67e6d5bfba593fe6be1f6c7e8aeff98e76f0ade2510f18feb1e7d698883739504e0c04c939ca584682bc801410c466d88a7df946ffbf598a3ed33e7228009ac70a637b99a70b8d2e25e33856c381694aa", + "042f6488438c51abdb5e8a7cf9a5a9b6f2c3cfcced17682d935f68093687a8b1996bd35677601dbf6b84d7be4862cb2810c1f996bba58e6e2e31b1b5b1aaf5c285e1df73ef57932132fbb3d3813e09e2bc77b00b2749a451eff6f9e2ad53849b94c03e4120e6d376751fbde42286eb33846f3c1f8b84739cbf7fbf70133543637545d89fd26a5f558e97a9b2e9f825005fb9fd43f38a1605453b9ef40c9bc0b5579abec685dc9c547b1cc4b8d71a495084992265f15cf1088fdb96108552e9b4cedc" + }, + { /* i=2991 cDividendBits=1251 cDivisorBits=734 */ + "6160bfd626d07133c11090c8c94ce31382e71468d4bd3727f9854f0e5c59d4d0944dd38495736f2a1861117fe56d27dc82a40c0c86fa5c35a823757ac5da9f14779b9536ae0463ce3344625b39168ba1d1cb3c40381928ee82d05c86dc3849443ea6d5188382acbff4199b7844b11faad127ab4a0b0b991414139924b6ed47671289818e5df566d73fdb12904a99a766899f09fb36e1786ff9931ad7", + "335897b46ec9d7465e87b8758b807a0cfad5e0a6b48d67876cd7912dd914993600e42f641a7b546562c18e065b7e39942c91cf720f1986f6e7bec0da4b7e5eea67dcfa0311d34bd4bbbad6f2782ddb87ea6d1ddda6b984178f227ccb", + "01e5812bcc5e57391023e4df19ee716ee001cf07087b940628ea140dfe27512eb96814fa035fee1fbb92735604c2988f774c219955b9c80459b444224d32351e30", + "1e4d3deac0739d9947ec684fb7dad31684fb248217a9a4636e17e5e1d522c727e749f4b9748fb64cb31fd86a20b30951545afaece9c7f33d020c52d5a6fc4a5e7e8bc50627d8a59f7aaf3f5e07dac619636f0719bfea13ac9c74eac7" + }, + { /* i=2992 cDividendBits=1041 cDivisorBits=70 */ + "010804c0bc189f690a0cfd36155d701899a7ef28a60d91068f2c3974b7975f32df2b8e4c94ff743d0f92d5faf1bef48a49ae6001257ed1a68c5c916550238ffe931b5f28984e86a7cf88af640e704bd441a3c9c7d00e986d58cd92ec54d35fe29a8843c60d62acfa6d8678e2d4bc7118ec04bb2aeca1b5fb2e2e480083dc8c08043f5b", + "3e93d60f93de9cdc35", + "043814bca815efffaf7a86339ccb6d88762c007fa75d3898aabae06aa1989e5e4d59bccf3416bb0d3bdb537303e46a1caf28b1b185da89086ed2812155aca2e058435dd460963c4b73b82c82938b97016396ddcddd9ff3448a53a916061f68391308c51a104cc10052686535396e2fe7ad035c04529968da807a", + "09673ea00f7606ce19" + }, + { /* i=2993 cDividendBits=3625 cDivisorBits=2235 */ + "c0ca7dfeb2b57164927018ebcd361b3f4a3b12afd0b47df9eb1d81236651b8a6408da80d4eb86a0e3eecd0f7793360eb4ae2f7baa6d371160f3fb81d75f9b1b36ed2310f90ef5b362f785fc237fc01a84e81532437039c27c3a9b89ddc59db0d8a2e58551fe83527865543dcdb80d7a0a405f06fea37ae28ba70e554ffe5d723ca4bb79a6b6d558df6c2e31ee22e28f4b75537ce5a60c6976c6020945b81f3576f116927ff07640baa1cd542636105c2faf34b566d28f83ee3ce9c9a7e9573bf1379113ccec1525ed21ede78387466bc96c5cfcc8a6b2e5acf695aece79bcaf009d7e4b8be828916142e0e441772989679736261058ea7011471be8e460b1099c6ec48c29130f0df54899d99f140920862ab3cd39fa8b7e9ce580b417736e4f98d59c666c39cf55eff5649346c79e24ce16d7cf9d3e476bb14727aa24bf331e6ff77601f30633446099f8f73ee8b6b0396b68246de6574ab59c699a6377557c6fabb902a44f716d492a4a435bd5bbedcdec20f4625712fcf11ce1d274b4ef7bc7bbe6ba463527fc0ce040daed6615da3cf2f4a463328e5a71aa40f12d2b43f9e4f83b64e07d71f95933bb36a347a963cdf2fa3b870f388f5eac8a7623c6ff6448647747efe", + "07936c3a66fd573dd1fc688250133fc245564baf4a5363b68393d5473a38798a89cd4074f4cf8d9d236629d14eacb262902663d91c4f71bc08349006fcc1505c32d5d16561546d65fa3da5e2ad96c64b2400523b81bcd1e62acb98eb7a0ae134f00f81002ea77ae5aae9e3b0e4fae218f82a86b564f7852c48a70e1021db4880513ad2f9b7cfc342bb8928fb6357d7a5377b0a0f0e749518899a335149ae4c970a17907fb0944f334aea8ded7489e0ab6fa6b69bb579cb4e23595d3b1847baa3a48f5f5cb358dd1194000cae7eafdf6d2709464900b0208e19b23bd38e0689df3e93cf5d0344aa32804d8127cac9fb65908761c49539142440717733b5ae0e291c357e03cd2d291fe23dab358cffca71c699a89a8dd1a54b", + "1972b235c6025610a0424ed584deebef9a8f0a5abdfd8639b0aec162da27740192f41d87e5184df7c56ae71467adc51c7e21f82714de14f719b43af083c8a5d7c4d53b97c9faa094bfc4207ee8e9378bdfd829676911cf13662d8023fbc37c50a8bc40b0736f381262ccdb34fa7c5a14407a2b50b139d26cad91d7fcfae6c543360557df80fb893d63c552464015622161bf39b0aebeaadb24417d2a25475d34fe675c5aab3ff20f341cbe087680", + "0348c87f454d7ac38a0415b4911f8bf2176f7657e63822b6e56bf7a9efa3b8527a4f8354da7ca85ec81d02cc7470053ea2431c2fb6c1c3233bfde2722d91f10b67bce6d3cd1522d568ce8b461f19011eb7173d1179162fb133d087c4a6dda85ada5521984138080e31fe8c80218438b3b59085555eb583d6fa2921459fef23f07663ddafe773fc7ec47126f40684a598d73a38835713fdeb76bcc2135f03d4ce2fe46c8ac615fd6b528e53dde423db038203304e062810bf88c2e8cf4854817c0f3ecd9f36c1da03050db8022224290071f3bc5f06e6bc18af0cbd6a32de86b1b5bbdb1508fdd90dd6db630bbf7b5916cfbf60e77fc8abb8d2a7059b6df3e4f56607dfb9285642c34ba26dafb1f25e29a76e6271e819477e" + }, + { /* i=2994 cDividendBits=132 cDivisorBits=75 */ + "0f63e8c032ed4b7a8c14b49b28aefc3ddb", + "05d8d8511d26dd421844", + "02a1d415dc587e96", + "03e9500b3c55baf08e03" + }, + { /* i=2995 cDividendBits=1080 cDivisorBits=52 */ + "76f66c70f98c29a8c8c34057331156ad79c017ebb2076cfc9c92b395b32e6702030b78eae01b87bce35dbd0553bbea28eba1517f7de4a4c8e0b8cc4012297674c3393fe429088115ec852d91b3dd18d9d70bbfff6dcdd2830d1613c94fe060b260804d345656dfded8129a3e6bc25e5287d2a15dc55a514f8031ff0791605a269f5b903218f648", + "0f1421313a73b8", + "07e3b5184a2fd0a1bf7e4fb241418cd9c64349fc702e915b8568e326e63719b4be02141b77d7655b9107bca101de11ffeb104e2ca4ac0791de56685a93d820bfbbce3b045e31c6a04d9a5b9f5e8e6d3e4040da50d5a3f2c4a02b69c9d5308682f7b66fb46b4e12d74463177ace6d729c40a8e9a0a31aadb058a280ed143636e7b0", + "02783562ae5fc8" + }, + { /* i=2996 cDividendBits=2736 cDivisorBits=932 */ + "18e4389280561f27761509017af406c28ef7d8b3d657749c3daa23fe4dccfe768731aa46415473f7ff81ac0e3de0487c780fd8f5d75c5c1f8dceb38a6bf46a737e446458589753457ba4560b8cf72a7521786a30405da73d89f6b968e06734ee26e53b348bb6ba775bff4c4afdb53399560209524faed3bbb8ace5a2bcaa2ad016ff3692d36e485f1c5322ec6060776e6d4e20a809c74606fc3b3183e8ca3e8e6befe00212b181db7dad656b9bc52e0ba0fda0570e49d344df31b0d2aea5dd0f903b903870ed25e2322053c19475d002c5f234cdd0481c6351e2d516933ec4f76990ddc7c8b19fb65abb603b775c8b84e9d785b5aa3a5258b0c59a7065ef65cf05f1fa2b8bea8057ca229c4d64a5a10a1791999ea1c1263c850607c0971c72be835651168650a2b0f526978e02ff7c52620ab1ffbd563ab7f1e1a6bc66ad7890219c7e26c56d2d4665a61d93206bd9b4289793c39c01", + "0c92974a956946b0e02fa72f8836271088c4862cccf3bac3456aa9869c9d3aca405f230783bb890411ef772dfd3756e204d88b646e9e6ecc1f57a86e2c266f9b51bc70c568b7f47c77b37d91358876e3283725d86be159c906c5c4e1fbe0e1833addbe78f44d8f387e98dc9d17db8dc6f5d2321bef", + "01fad548a25e923220293d56bfb6174a9f1137f670083cb2825d5171e641bcf4dc43cf0da8eab19f1c010218a6fb167172d37df3f278948fef55147c2bb89fa978e6730ced3a1feefc53bbc923f206bd6d92e4099a9622ca2de954ffc6526aeccc84a55c75879acec5221a9e1eee603830dd9df2fd07e84df4f9b0ceb59b8dbfe30d5c1fe01f68f10379cfdbac7cc6ac87fc17f9f06ce6339b860653a141e4e087076705ca66bad59470d84657550b5b0cf362bb0ac6c2265bb0c4db89ac08e2b8126068bf1928b2de37bbff3a5708269757c53709a2fc5650fe38caf27d5b7d27b4", + "014f3664b5990b56bac43904051fa9174632be24b74c5a71d628e216e30f81607940713c2c3b366125a1b2076e8ef08ce13395fe30d772addd23b43edec493f574ec8a6918540b12989aaf7286d2ea581ba98434060a05be17fb4f939c3a5fb4e5d2e437de375c9208fbd6afbc057fcca18d938ef5" + }, + { /* i=2997 cDividendBits=2006 cDivisorBits=810 */ + "1ce1ba645d1e5ed594a58a37c39f6d0807d48e90d88adfc672639c4cf426d9cc9774be13bfd47b303dda48861aa8fc2ca109eb20c2b63abfe08e589bbfdce10d384ab06e9036189992c0636b98bd14775dba92c91e3451b21fc9f86d8de23ec5c89a86795f2b0be2f7c21c4f1d488af31a190c1b8aebf7ac16c4fd6518441b3658ede2e8cde065b27e2f53e0ce7be01067a10271cfa0c87f9d308db3d4e3eb0ba3f5e4544f9825d193574b4318b85a716d2216f02c2e8adb2b300826ea0f14e681f66e72e2d6e748442baa59c55e754258f199657c8ba7b092daf916567a6e9c850e848d924effbf66b96ea7623ed6240ad51a4a12cfc8c0dd3eac", + "01d1b2bb3d88c2595bd51a3d95aa45e0ff1f32e4d9ec46e91333a3f79d973b85753556deb489572cdfe2ad5a955f6e8bfa7b88478a7d741fe8f43fddf70d1578e0907cba062fee091f20b23dc8fd7e0f75a759db8ece80e434129c6e8a0681d72d1e2a17becd", + "0fe06c4f71da9cac38b87895cd3f6e39e88545015f80e10027b73db73d746f909d86c40a195ffe28f6121f8aea2af08e6eb5be74a950298e696762af5b12adfb500e97deedc526d41ece302f595e632e339e56ba531337d955658450707e0e8136018fa2b972c65bd6acf7a58d986a2685393b17a932c85a70207c6f0281181e5d7e44eb80a448e73a751c254bec5dd0f59e1ada9578", + "fffaf3a10d07a1f4f3dcafbd90e3eada28ac72c1f0761b8a98b8415f1daaa66d0fd0c5d1916da01b0ef634840b29e4d9b9bcbf454046143aa7d59e83cd1ddd416b37340230849e80e176abbfa05f82d59840e5270855fcba48d5f66e2b802ae605e71c7d94" + }, + { /* i=2998 cDividendBits=892 cDivisorBits=786 */ + "0729aa1b6213a5c49df2bf078beec818c3f13f1cc9fb27096678bd6bef44054d987c673d28f75674aced245e9915b4a37f14d888a43052276550bb8e01116ff7677239ba02bcbcd2e81df5d674a83d9ff407951fb81e8e3dbf5cc458dc5f490237e095f9f4c3d76a8b7e68a644c7da91", + "02cdd1bf57ebf3224c55811f8beb2968b2ff003a7486517047e2fbcb0d6251c1182643d3a233c37e077dd16e67076888eaf0dec61a0dce66c5850ef14c88332e325730d5d2dcf2ef22796dfbcc05e0c1edcae6756fd09bc9e03393c287af09ab1f54df", + "028df341b24a8152d86e6eaf884a", + "0221bfe59a9f6bcb497fc4dc80e4e1a54ccd72634614ab639832999caec8c5c58d32338d16990df21f8cef5704f8a22f5f21813dbaf2140d2c6eb67005cf4a2f6d45e263ba72754ee82a036a7c1161d237d69ebe8cabdd42f49897e6a49c3d5231da1b" + }, + { /* i=2999 cDividendBits=4 cDivisorBits=3 */ + "0a", + "02", + "05", + "00" + }, + { /* i=3000 cDividendBits=1860 cDivisorBits=1461 */ + "0e1b1e97860bcb36eff3013ffdb5c3dbead6e2590bd1390e236d3a19ffe1c70ebb3b9ae5973a5c9be9756b2b561c684f135bbd9c8f377b8e3a284e2434a23cdaf4937b9cc51bd108491396e1e6baeccede0aab88cc28c1ec88743a2d8ad8f0c1a31822363226afa7a89fc76f20b3e2fc3470caa2528ec1ddd27e0e3ff2bc63e36f9d67cc50c0c79b8ef71a6426eee9b98f0e9bf65e8a0f0d38835236b7d9586b43eb22766fad954460c84261787872f9c718baaec4b2bccd67f8a4fedadd98433f90a3772eb49ddfcbd300d9bab0b0e88771a71d1042bfb813fd2e649db410891626279bfaec939e20", + "1fdb18a5c86692e3e0485e1a2c71cac2103ba33aaeeb509610eb835e6999ebc1571e9b85e3727b67834622c8c77257d102f017dae58ebd59ff6017e67b705fa91161a514d450df9d80f09621d9c8d6a4a4322dda9af6b6b7af00067608c8bc57626624ba7955b32ccb88e5f7b43edfc6cc45b3b350e1370757e855c6a0ac3db13b77fbdf86055348fe08a2ca99e81212f8bc1153b033b24c24cbe927f2e2d09ce45371776e6a63dea3b105ca94eded40a5bf559e9cf846", + "715baf6efe785ca9cc42a3791ec37e5d6285b2978d1498461fda8bad85214c94087643be247207cd83a56db4b0e2afd13847", + "0d0f6a9b0caff777ca9f78cc652e1b3eee2d2dab2c40bb342e4b3e5b84da539271c77a662b1ac51beff450ae0f2392ebd6697595fca5d7cc67b1c259dae0bfc99023d615f1ded77f3f4f5e5a737fdf26981698d2c40ead7514fa5303b1488b01705794291ea3f4b61898797b607d9a9b8b1d568b24224d00ca2148bc9cf17d429ebf7317da6888614f647c84a68b2147235ae1354cd9336b44e7fbfdbdffa9d09ec60032bbdc7c140bce8d37f39733e985b6df0d9572b6" + }, + { /* i=3001 cDividendBits=1026 cDivisorBits=939 */ + "0208894f747599067d6bc9439f94dfc77570c714df2e24765ff700a0f83f71f11276e6fe6c30ae019128bf0fa85486b520480a3565f11fcdfeb9970acf3c54fe8c68b52386a80c836123c577bb4676f74b5004c6f6acea789b9865a1619c8c06487856345485d174324b54424b7948ccde700ed9f9a617a349a9475d0db75443a7", + "059376f66c621975e9fbda297045bc5d416cf7999257c52aaa4b559504d3e7274344b43f0de225ff4a464ea73cb98c57a1e2499656562828fbbb437acfe13f5e8d2e5b2221cebe19eee73e6c256c99d81f37a03fe3850003cf87f77f82a26d4dcc12d38f5d1fc3cf17f7b65d368a64773b5dbd7f5cb6", + "5d5a39688c5c896e1adf83", + "02ebaee0cc7bd9c321d06dfe06eeba3895b569e425a9f3adcb45305052c38a4a5e97f52a58f40e543f8975a7d14f798fd64b26b5c54a0c8e78fbbdb6ac67580fddb77a9fb24e62d091fa98e984eda03470e4334d21491e2110c5b2e5a2cb184d344f153ddd07f93bea355133483b429955d82ee94885" + }, + { /* i=3002 cDividendBits=3754 cDivisorBits=1290 */ + "3bbe001d2c71c47f9f6a0f6ff03533b7c7c22f52d0644c051e18d15fcc15c4f3396517187f032056e1b69325cec3944fd3dd517ff51c5af470360c4abecda274a01f65e56bee6aaaf73d743e2078f4a68768a49eaea0d0d1e3a9716f4655fa6b2e20add09fb267146598356b08b060fc54fae54c6a3f7343d7023c3475607a5792c2a64c817b344b66baaf50b43f827f0d61bd0a953a360da5980a1f52a42d590657421d1872d2df3a6378d6ebead3846156284c4a4f40afee91f9e0894307d76be2690b00751390a3de5181557577de2f581661ebafac169310b13eaf3b7518de18d96ac456267da0cdbe934ecc651644cfbbb6001cbcfd992214a7698e1fad49d0e793261d2fcbed2d354471b3b23c5380e91772e533f4bd0e6142f5a9981e7b939695b9986778a96476d4682df4b6df3a648d4701043cea2c610e6c06994de160c4b9bf435c774efbac328910f9f8f44f96d2364abe11202a1c31f33db6f7b5967d1b90670f37d638afd9cdbc3fff10e970f30f86a05a01d4ead878e18b1521d65ce80d455114318275816eeee949d4d320d625a482308592718fabcba551072169bce120186465a6aef63086f956a533c8753e406436467f67a1c09144e12abef796167a1eb32ad10ac0bd3349e8c51f5367f3", + "0204907d42e661d029511901b1469dafd562b6556fe79048a87f51ec80aa07fb193ef06e6031e227c782844b53b555671e744299ed92417ec82b25fd8f5cf7129070b4178b7f3d2040f9008c24c93f900756b691c3ff1ac43c6ef579798034b33f8cf869fcaf25ecc2601e17ba06dc035c792ad6a710b1d9559378adee39ee3b154ac36a53b8349b32833d0b89d0baf05c8131e25eb8727d6ba5c10bd1f5f82004c2", + "1d9b6e3ccac4c97bc4c710f0d956116f92e7ecc4a9db7265a14c47c03a24cc4bc4b6d3b318b308ce587b03bfb5be4ddf161171b7c774a3781a9dd542f94cd3ba13a69704965fbdec25ffb5b47ad91cc3f95d8748ea7b986bc93209088f2e1ca39a05b885c3422dccbe28d83d61ae6a47e987be65e92c1453d8d59be28591d7d098c313ce9939494d31bb8e3b8c46f411b39d4bb0166bd5f9c29f9a778ae8a71ca715d9e4b01c9d4f87d0eb9bda8fc5a4251e7153513089c6c1e5ec80ad72315926eb91b71fd558820e9f7b08dc6c3c2edb7e4959f43ad60cab0f73a8f81b19319b7f18510d223d52c695abaa78433a5695ad3a86ace1d49fe940adc73d197a4fe1753882fc2f9f320a9365b8f26d34e86b0c008623a95bcac9674cb4e267de774ff0939c94b03a6e6f0a3dc8ba426b486ca05ee4", + "650963809dc0c46e61f6ccb66e485075a1f4834983122e33ee52bd74e0480c5a6c1ea5057c410e988fd529153c613b48a6ad2f6c85bf6c43fd72e006385a0e3f8e821619ed8dd60c186bb948f32a2ea4af91fdab57264518eec2b7d7a72c70658b3609cc5d690552b7c6d6dd164a9c714ca32efc0516ce5aad727bd16956a7822449eb78ed736063f787249c8d1a031b1b53380430bb46571a963f96038fcfef2b" + }, + { /* i=3003 cDividendBits=2065 cDivisorBits=803 */ + "01c446f00ffdedd844d9c2a3ca62b08b6d142e70a48e6ed030fd85a975ab2539a01ac8c9f30b94a2d98b5d4905652c780ce970c44333b057e34d066ce8e109272e40ae2d1f4c47b73e026df3fa54c2a67a6aeca695acf06ff378117eef40c25f8013c69b7e9030e1f248dd09404cf2ff2998b607d0325563d2c9de33d2fe1286015ba94a9518a801efed864bf6a9da5ed32f4a2c5e3e92c466af7baa775cb070eaf236b29bea4059657e5e028022c720064ac8e2bf02bb860134a5a1165a7e021d1e9b6516dda79eb4b251b8f60e89c2d2ebaa058e8df5d99d9f339ee6d670d08f4ddac94bc12da4939de106394360610ab2b415c602dbc269164b8e4a0bebff8ec909", + "036cbf651581bce931c26d6dccee97b5566c9f47dfa1f67a597ab6e18ec93b50031144b5fb7ce3253fbc43b0d0be5c463ae1bd3e247649dadb2fc8ce676bd0d232c05a058b430019ab44c1dcae620460c93cbdccdc6303af3d30965e1830af2ccd2f7c3a6c", + "840f419e13d977b77073b56e357381bf34464887a5fb276bda39c9c5a996a6944ca1fd30f7018c9cfe964fae36cc7e1275570ed31f74b6e939158cd7b8a8fa1a0fd5a38af6760628eb9202cc5e9816651f6d2e00ad0ff6c1de09afd8f80a7511e3a8e3449dcb1dda78cc47c5cc9cdf19b255f11507f304b45cc714080f6028c9876b7bcf6b55d877500b5d382b434be459414eda77a3c260b1c9275de820", + "08ec5d41414bdecb41f2d99d36ad9ea53a0f68f6e01cbd57e7fc94a38e01a86c25cbc8b5b85add8118e2ef4a89f331bdaadadbe5c87a6f92ebee5a97df57ee773495af59bfbdc2f3f89b1d0a738a81267e1ef392a42fe9314677a3214195c769cdd99b89" + }, + { /* i=3004 cDividendBits=2680 cDivisorBits=2650 */ + "135aa0eb4559af2402af238cb63b50cc65d36ee0744b508aa7fc29b08c86c40d92700fe0e7b6410363b11b9bdfe5d8560fd190cd19d75ffdf2e5acf5afebe0309cf066949c7dec980bc0e37446c3201b40e69c58d205a6eb78c0c6cab538a940a8a0d513950ab04ed2f0f9801fe7532885804e9daf736ef87e4028729e154877e48afdfa7ca1fa28357c9d8c20732851bc896af9742eaed5500f1f988037e7856feb81c3581e7ff75d5882612004a1fb07668ecc855adb001916830631f78dae97e3c56b691addeb1da0d327376195c67b8983203b89e251662a748978626d5f85481de0b1ddc2fd0a7f68247fc3c84efecad393cb62c8416d943fc41de5fe049d6ecea4cee44ab27ea26ab35ff7395a4dd899657cc0aaa42ca4546fffb31be2285d336a557e4a1fddf1793a69ab03095540013f67960cf665757c56f0b53701959425006a23d0c298ce5e76ff03aa", + "01f81dd93981776fd2e783afac181273177576c116c895f36cc4a8bdbf8bfbf4599edece83348f25e774fe8e0a8d0e350b1b77c4a9c400126d65cd0d3f64073cd05a549d5ac9639031d669f1206e78095ea98f9541df7d35ffc33ec08c2e8e9a10c6c19411ec4c606a63b08db5c8fbd7f7de12a5856af5a7edcbf776c055833f2c458f824a201b90124a5ce02ae98927cdd90b674609ae739d5f03e22c36eccbfaf9593653cd5e7acfc44a5fd9332547109e349bb2d8cd4032e593e8ef2ac4cedcbc62dbe6b9c320a4e83480a4a00e28feaf550fefe871e95684eca38112219a23424d3b0d0440405ff5f0a6c39aa3d9a0d189dc9481459952c78a04ce1c8536db17755f2f186b7ddee0854e4ad506e5e387749198918db1589f91e7432e9ee33994f68ccea813aad1522b13f29b28442dafd13d9c74c663d976919d08cb30953272c0258aa69f767e9e1145", + "09d40dff", + "b269f971f73db07be2c701d4590c2669b74770ecd4455ff338433fe7d641b7c4b5c953c63d63c351696d830884cf353ed4138b3a9ab7408babfc5ed5ebec76d9d5f44c6a397270b67f3f97750881014ab603275dc99f1b60a8362dbedde11dc2858cead0fc5bc5461d3ca4b9f89a092dc539924e0cee331dc745cca22d7e2aec688ddfccdff454c230ce77bbf2cc2cd5b13d1b0b88c125d8ce518f6bf515f35180e0bc80fe0a757ed06676a9c156102c0950ed9cc428a8fdb23e0c05eded066185dd69ec56e0cb18ee980a7f6e468e87a2275401cd873ce41bd7cfa3de742b5b5f028055dc1d47ea5229ea46c2fc82d32f5605bd3ee639b61f7c70044fb17cac0049161aa3b51a257ebec833621dc839b4c85fb4037ee719c459250774a2e95e8fb5a872a172222d5461eac1aba9d15e205d0e62ab84ac9916435f7364cc2f7b6428c9f7f2896696874eef" + }, + { /* i=3005 cDividendBits=1189 cDivisorBits=326 */ + "0ccb69b2dc4af8a13a65d8954fb1f91112bcfc879035c5b03fe745752aee1c23ee6b71f61848392611bdf6b173a73904b4dd2c581c6ccb02d8ad3facbf8113b5862929dabfb91492bfe8c969d7c3784db6727796dc0b1299b9f3bacd352a4bb1648d7dc47117b42db9035fecf9f021c6d3e197733eab296c9275b787381b7d9a9fd49a840bcbe8f52d93c6d47d4e8e25ed5a2ce719", + "3bd1c4d1c6d74b3c391919ec85702681594d57d1bf3ae99c09833bad2310123f9b82a104212df6b889", + "36c148e814484d3445eb7c85af46777284519cd8c67635e6b1ea3e9fa11c13ab181137ac5a2b6af355b004c81eab02c194c30d482539840d1baa97c6b611bbae9722965da93e95984bc574dce634d19beabf0d81dd21ba47dc574ffd7a0e87ff10c365c3f4993aa2f31a5539", + "1f4900bdd88c269ee1f7d90dd8b69a60eaceb471511ebf6991d5ed0f4b273e8e1cfe84895c6a0e5398" + }, + { /* i=3006 cDividendBits=3360 cDivisorBits=1209 */ + "2f0c5aa1573d835b8bdb51ba10a848e3a0bd4a291c23e9a6ec6c53f6ecc314d84fa188125414ed80a4acfaf34a22d12bca6adefd38de04901e8c2c3671506ab4f79ead9fcbe3a3f749b87d57e195437cde0affc2b7da88724ef8170725c2d39dde11e83e3dfb404547ff4ffec2a4346c181ae48f5b9d4aca96a20258a2c9e750c8794320fc4f020901e6381be65e20852bbb281998091a5db0cb44870bda88a0bee85b94ed471707f5c7f487eae38db0d97e9a429980c5ed78c5ddabec7d7cd38ff98bd66e18aab5cc6d185f4d4c302f70bff782db78e76858377885ee37b355a854bd09af4d5cfbec2415aadaa777fc0d7e73ef4b2d339cccdc6d0b11672a0f9fbe9baf1a69c3f265fdd937393bf32748733134c01c6b22fe4aa68519f759ad29e0dfce6b40e7fda201cc26313656753804f980381514614c442f9d5ad064d5014e4df4f2e29dff452c529408477b5908ca454b1051ca077431699baa1ab68e79a7c4d4cd2afc2d98512f72bb8ee75c0d8e4a46a001931ad0df8cd1fa3765f5bd9a0623c8d1d0396fbb951854cb7a81e0fb37665c37da3c849f402f31d9ca35c48d36c4", + "011455cb8e09bebf7ef3008a28595ef1255afd431299cd5aa66ebe562ed76054dd845ffeb9317f2b024d5dd032cf20370a97d8b53a21e131ed00c454b18c33246cc22aa13aaa7603df8125a68851b8b6b2b268d5c67cc711422fe39717e787f95238d40aec9af5f39eabcad8853f9cdf5c6f2660e1baf5b57244abcd45b61801c5660d325afc824206e808c7d3acaf8d5b88c498e179add2", + "2b9606a4295bfc1512122f5b5f206eaa21eaa42ba7ad428c8e763bbbd09e377e816450ea684d694cfcda4450302ba8555ac79e9e4d86fdcdd2b7bee3c662957df0ee7ea0f9afde00f9c9268cb1c8dee5b452ae8cbe1a0b020b56792729067532eae4d8d0faee7bc9cfa8ff9834fe51b974cac1991a52597a9220a5a18a3ea38cf06decc5f850fc74ce7d58b8839ad94561ca69a29c884f55183161d3a41bfd8157e4d63f39ed941ab60fb46c9d1b4efaab50ce4cf4ec9dd1b4fb3eb7d9c18f3682c167e3ceb74d0c7c624e694496f69854ccb89f181148600ce963fef30e3779f3234346493205d9da1d371f60c646d36730c29ea014be0ae80fa1ecebb11075dc6e627b7ced736f6e26d9b47b", + "cf91878efb333a651d1cc05f1c7b4fe3b8341b6918b01296f5ca6f59ac7077a88e292d8830795df6881afe6baff9aff862702d77acc85d483fe4deee5195237382874c27d9b5cd3eb5f8fb3c98b603d1eede5b8e63acc1d553a70b768cd10854de1aabaed0b891d7f08a7fd54c4e02bf98ff387693e57cd2b8ff06e4f03d2a0b604b30828e93d1caf1f9f5ab88d40991dbe80a5ddd0ade" + }, + { /* i=3007 cDividendBits=3124 cDivisorBits=1354 */ + "08603204cb8da4d148daf2cde870057e80d9ab6f04cb61ee305c8a6e6eaf4f29760c2663bc975c4e8683366218170c346f939f92a5fd4727aa156d339ce7712792bf1d4dd3c6317da2da0a8c4cd26da9b4ac88469b0f448225d430db518276ec86f44e7e23a456364bc3a89aa7ad00031e921fd0951fc4a104ce10bdb408a20446bbf8a9ae1116c06496b96e63753f60974400ee18792cbac119c52f4864a13f26db1c216b601eab6bca92c2f517d718fabbb46fb47fec7a24ad4f2f539df588ee31ec240754fbd6e794302b80b803207b0ff0875a0193eea664a6215abf3eadd5dae73a3f377b635899b23937bf56888c91922697459421428f24e36acc4c000502cbba6fe0742ca98613eec72f87472d4e3e9117e6d6fbff092791c0ce52a6f8663367ffdb592d586fefbb0db7d5ca68bbc71844ed39b09313f40ba2fcedf6b19e87a72fe85cc86758c0a40b83fca64e35c9b6528fd68d050b79af6efae0238f494b924753087e7ae50d49ea2117110d68d2cd3f17eeca758da2f1ccbe71cfefabd83d37e5a7", + "01b47f1c014103649d8a89c3f358725b49519cf032fb4ed85cb0c4cbc45b9d960a8a328c4130abb7253baf2f977b6f6e521f724612ee0e7365c4d388baca75a1ff97c716bb4de208593fd88da5112932895a1f3d3e0ebb58de237326b01fc452659f80389d3e26f41bd081f9d64fdf73049dfe11cb77d52d38304c9ff2e72de7989f6c62f1e354cc088f5f8429ba0ef8bdfbfde58a63470f2e1dfc5232a9e01365a11dbe298e672dbc54", + "04e98b854a92e22919fe6f53a6cb72fafb1a4ff44ba09ff6c7f2152c54d3ead175db96fc0adc5088c78f07dbd3e8076c276048b4712a70f4b319b70dc9f24e3e31ef39febeb0f05b09e6200bb1d2418ca01bd20927974501353aa065088ecd5d6d8ab65ee23be52100368eb7d8c7ca4804cf3ece506ed3b336b02c9ad29c7bc182f3294dbb12d2a9ec77e134d4fe4a5f0519c2238a6ee5080d236d33e9fe8bcae3c2be19607531c942f68775d77be4352cfdc5776c3856697454fff470bcb90146a36a0c617e6b5465dfa5c1d6bbcd6146faca0fb7b7698553bce04ff3d2", + "1117c995dc6f03716c5e0b5983b4052c0390a70fba4791eea4ec4dd8f89c872fa8f3f9e437e6bbe038f0fb0e9c7d1fab31b416e06444c2566219a76e508c84f04e8a0223dec065514a01d4b8bbf252f0ada951afc3dc6f0a27cd83f499fbb09554a9fba3b2c53078206dbd1da64c798c657130ac6ce6a0ad5455cc156ae599502109f90af983ef2843c401f69ffd62bcaf8bde428802cab7d2e4f6c9021f0225eb95fc03809203acbf" + }, + { /* i=3008 cDividendBits=2651 cDivisorBits=867 */ + "068a24b6418260b481a3c4500296ed2519fc61c94a3af2fe6de7e6feedbea380b898a9ad62394ad6f1b3eb5c6047e692d8db54617839d20f8ca1a01c4c64e90d0b53595cefe385c89aa2339e9f472f114c88efd4cd794807e7bb99e40cb986d892429039314f171f187811d91c45264b547ff882badf5cb50cf84e529cb67a954c0bcd4ea80b601e756720096ebd8ba419767433a805ac65be1f266807fb3cc5f33220211363c60a0a99ac551de36f48646797a88f69ef3b2a63786463e6511f2a18677338022282a38decf714e26fe639e8ccb00b0f47665c02b07ee521c801aee60dfc51e9846033038e3766fbf72d182757d4c3e7b30225cbdb14cc2d85c80cf595e95d93dd638c73a1f5058746a0769da89867279b446d6addc607072afe916c118052c3153ba7b26446e0fa6eb4e5df0c7866bc42a4d221f8a046461357f995945a0cba1228c93a06bc", + "02d42fb80d662559dce1a2b215b5c0f81f025d201dc13e6b48ed00bf1d43472dc598b39b55f5fe05771dd867e7fd8fbb4ca51fc214592392c36f094c4aede087d16dde1c5c1d7970355acb07da5f664901b384deb912fb4680b727a3cbfe79c9d77d5833a0bdfa360dd04474f6", + "024fcf584b10c8eb70b705fd26ed99cea84dcda625a621c0ce9a68acae2fef470bd1aa8bec67344565eea7a51b7dfdf57f05fa7b6a77061d1fed628f8b1c17213953204e71cbf8254087f9719203785693135eabe83d20317d33c0102cb3ca3008622d3a2a514d69281c65203590f4871237a32813971e02f0a3168f0dade8409aae534b9a17df7df3eadf728b136c62326cd78c75a3b72cc2996d35b2bbed36e03699bc320dd0f11ff3ae213f1ad46f5308eabf8d90711667328cc81d09c8f3199fa2603a5ac95934399866245adde1b8cae5b63f274f0e75bd31c4237eeefa", + "02d1fe12cf8117a44f44eca77e4b5d1c7896104c76b8e63ca225b17f55b0eb41e7af9ed1ce640b0dc97bb021c049d68c913975289a59695e94ed49c90159db17e443c2d6f72e95c092f83e3ac99ecdf20b78af91dcb1ac23223e6559a974f7e9bec09f54136ff1048e8f1a80" + }, + { /* i=3009 cDividendBits=3854 cDivisorBits=2289 */ + "3322cbd701247cb81a777695e81846561c5c564348329c50637a5bdd4e9724c85d070938c60e6c2f28870680a794e25c2b243844f9e21ec3f65277b80e633d37f9324f89431b2ea34ba07c8c27a3b719105a8d68b08f70c0b1c083f580e2dae0ce9d4a0645de85e3fdfa77bc1ce9d0de4b7de888360ef72603608aa517c4910120b43a759f4d242dfcbe3c942a9959b1a5635e37cb2c6f47fbbdef86e3c1cc2dd7ce7de286ec033d2c74445c4904bfb35f961697822e3bf6c508a7218750bd78a0c2fb0d63338fc89492d58762b74332cf4a388d525b1fea333a7b00d6a6b096dc381e757b8762efc2a75af5ee563681898eb41c29cd4aeb11c0afa3a7d8cb1fd51ed56bf84e4f127b33f9c0ac47010ab5e82a46b19de654a9ab20e69b74ed2883a7709fc30d8c76bb052dc32a0fa0712563d8cc8d7ab3a4c941e43f5a500a979f3b2b7b78b757e5749a04cd342e88fdcceffda519d52dff87cb026feb97498048c1f82f7b673be310c1ccc30541a6ef820a71606a4850616b2496916794119716816ef8fcb7de4b3421fbced5a508897d3889f7f7a0bce39e91371d503265bb6b0ac8da2783e94d633841bf691cb049434d0774d20d9035609c05840074c332da5452ddf0c41846cfd2f83b0a07b4e8f3804b03566bb770a54d42bd1b055ab9c11c", + "2c0718b5b42ef65d2623e3981248177ce85b7fc2def59b4007a1b656ac869d6b583e50526d623b07627c56fccbf4bd6b7b20b7b6df9b2fb560c29c18650be2d705cfc0d9904d89bfb0a696424c3c598c61074f9e3500fca02dc08ee5f320c76149e9c049fa15e6f2466dddd22985ac1d0d8a66d24d20cefb5c3f7084332bfcebc3da14156507c3cac5f48245f1f0101a78021e400015f03d9a468d6ca069b858e86d16434b894e5ba0b53691634a33d14a3f1efca6a442fd0989e6ca8d1d8348016d7003ffe903235c1290fdc46ee1ce160ec28bb76638a5bd9a0b5bd195df3ec1820e2ee036ca2cbe82047a63c86398129aac90554d8cb07f9ddf967eb631d07876bcf31d8e1e196588d6e59719f6779b9002ccffc98a31323606645e42", + "012954ad877484d19a838829d867faae8875a1e82e568b1fb8736ec410141a31a8397db37e0d268ccf07f5ffe5f4ead666c64d8e71f8f1f688bffedac19b84602d89f38300633ae13f0ddf1f5db19c165f16816a924b0233f3ab0e1118c1d30fa7dc818acfcf20144b8d8bdfd402c448ad4f630c951c1ae15abd3a950fb6d520babc80a2175fc8621a77fb9eeddbc7e699a81957912897ac9e251dc164593e1aff0e3fea9ff8f22d205eb31a57b46b6ee7d523fddda886e02ab6c9b8c0ae41e147acbf31cb", + "112e570121e7dca456728c69031f0848808b5562b64c5d5cb39c9acb9b4ed952cff29a75077d169e6f1b6eff8f6d573a3e808315a3e03eacdf25d95b0b6d7bcbf8b7ef86d1f6ce84028aef1d5135c319378cf522fa49b8e7bb770bce4ff359d635d4ea619cf6461fbb8a2766dc21a884bd4ba3b9bfd5ef8189c8bfe7a6e8ebb0e6c9e6f131ccfdc88af89bb2e0e5a32aa5fd34e61131f2730a029c64dd5be6ae2a807cd65dfaf6931eba10e8486e9282942d6cf130b86c71809e6452fd707e1892dd05b9d13693dc89ce4989f9ce7b1a4b6bec82188cc70899a058cd98d208c447beb741c6f294b61618044fc31c26627077aab3492238b4fa28f557d9f949cd50636ef539cc63ed8e79ca36a80ae5dbea271c06b2f1b913987067da60c6" + }, + { /* i=3010 cDividendBits=533 cDivisorBits=205 */ + "1134b9799e35edaa376bd13f98a24bdea59e977221cd0c7c2544b36e28a150e8c6678c46905356fa28b49d3fcd8eb778ed6cac3614c5f9e564892e05ee421a589e8905", + "0a3df45955446c51f505f029dcef492a655afa891f77578bf951", + "01ae10814cde09ac07ac3c48d7e47a94b20f5004367c468baf4efec4bcb31e6677eb8c79683bd05e6c81", + "02d5211187f5b3823ee3bc37fff928f97ecb3ac6d065d229bb34" + }, + { /* i=3011 cDividendBits=3446 cDivisorBits=673 */ + "178039dd0777b06fd61189420963b0045c9ef605140ffe76e6398f60e530f444ab5d6a886d4612486ebff921f60bbfa32eb7bb28194354b3c752eb0ce3d66258466186a494bf2e882f9399f5cd63a8f4b5c5a69547a69a818e666d3e4b7f0e598daf134cf77e58902c14c47fb7bcb039d0e7ef0b6ada10e4dd681c4a75fb498a7368235af53199634ff237db610bcd9d40667ba08eee69785d8513f69a549ef45f9e8c04c81c715a3949de5d53c61f336e62cf08fb2760594734dbca07b2b97dbc6a3ed014cc078d8744a8aeebdb1247ac7b16b685a9da260e36c31dd91c8641f86f9f9b16a694501e146b853a1215bf0cbec2dbf3ba45300d172ab5e9ab106482ac91f8c70ce9d1c17d6c21a157fbe11ce98334190cc627320c4deec8b105a16c25cc778898857493863395514c7edef189c1e4aa20dc601340fddb029b7b0f645bb3da788e77646b1dd9283e7ece772de5b2f7174c3b8ea103d1c1069765316abf640b37002b9e7443e5ffb32b60da4c092bf0240cd346167d6e52906cf99cc1f9502306ef4e81b388d8b8a34946e2fd3fc8aa839e2c364831de143d2f1d6904755d5d7590c179aede20f21b2a1e", + "01cdec525d9cc4e8779fdd893756f93fb543021a74b5962f1f409b89eeedd7c62505e7508695b5f416aaea53053b67e6f3dd6b8a4a7385282cbc3d78bbc90d1ffa5ddffa0833bb598bed7e3ccaa33998adc02f76ca", + "0d06389b898f185c95c40ccba5f0d322a4d6fe2d1eb47e08ba0c4cc2e4310ddc11f809fcc6ccf24a3432d10c4a2cd653b34afe4f528d51ed6f7209ee1fc501ab5c83faffc6a53ca949044599e4292004fe6571bf999083555ec21013f72d09707913dd9c47f882bef5ecfbccd8453a9f600aad4466a1ddfd32b4364a7e324d6c3ae8856fe0a09b357ceb81ca593ef563fadc7b2c5fe7d2310a292047c916c8c05354733b2c9fdd5f188df8e75cf83143b58b840340ba158903cadcbf56df4f853e6a2000ab350224b9657a2258080e7196bf452f68cd87a76d43891ca20614e3fdd83e9ebb6f8c7a84bfdc6ab55c9ac41194c492d41b376eb51466307e2d8c4187228a056253b6d744880519f1fc2cea34800b2790787d41d8e809070bddaeb6700b879463a6cd24431c4bdf0b63aff41afaeb28dddf82950c4893b2b657d9678d1cc7f7098e2d2d86f2b5030b7dba4bf5ac4d1c0cc81fe84fb30a", + "54fe91327f66905ac712e4e15c65c777b17c1f6d02c17d582b881e00c53ec4c93518264414548ce17320c34a356e7c7e81d1975af71691dcd1fbcf31a56c3f8788cdc9cd74e25ef4efbd0e693bdee53387db483a" + }, + { /* i=3012 cDividendBits=2079 cDivisorBits=352 */ + "2bc09b9e3d7932d42df6e8bc56d85245c0423c1f8bd66bd230c8494be1a562b352cf4dab9eca4dccbd3e071234dc53d01b3e3d721d36fe5c4939d7df1fe1261378b0bf6d939da7463e8a80e79ee98a4b941eff984e97748f8a3c16b924fdc4c82412e207ef2d513d5aacc2c2ee434d020a4745f260ca5acf5d437a8bcc0cf3751bac21dd2e8b350d2bc60739b9daa3c1241d1194e5f823013f36083dcf536e13a9c97fc37859f8f57ab5e675876fb36eb9f60f2c86666a52e6df54471e87aa242a6f646518c5ebce416a9effff6bd7f8db214a14f3a263290332e8daa70c4c2c775bab40a14b661b63490feeb185a390c9b2f50cfc617b16ccbc2ec8d169fe79414c7a3c", + "c0d95076b0b697ecb02529a3148692cd864a6d99d5128b108775917e224e567449cd1c4ffce690fbb43ec3b7", + "3a1468164617309f26a4e7b2426fe4345f45ff089beaede0f09d4b02c0141c8af0ed13058a01f87433d87708c0a1e8440bb6afa3f10e65dcd644d2800daf0d8b3dc7acf8702597f8e3f9b484c97b1c6038a01d62a6a37541ffe94cd22d72f8135239cf86a6e2c99474348c05b4ba007050f29ab4f81cac0a1f5ad1c7af7b166cc9039d8365a35dfe8a0148389bae7a6de7bd940a4044cd976267b2b8114d99774968aa13fca6efd2f85789386b6d4d5f0e509a8cfbdb8fe46c1ea0c40cd04c9e2c470b1cb1c15f8143502674e32656d3adfa69f767d46f6b", + "3d8483bd4bd0d95484ca1915f8aa9f947d3a52e0dac610faa6ff325c9a040f66298e1e415bacd8d3ffa853bf" + }, + { /* i=3013 cDividendBits=2445 cDivisorBits=564 */ + "187b9b6dabec2efd9bafbf661b74f340f2e095668eb1e7492e1c026d43f03ab71875760c2abe9da0a25f1f5f4d21c853c25181f48422a70a0b228ef7ea08eff998a7046067e072e62ce9e7d8a2ba9da3c586c2d2f2bc1db3ec7c64762504687eee27cbc094bd646a9a296d43166b5b7dc8a93bd768e4f9240509a892e1f4c76627092170d3abddf1ffc7a5c660920fcf85b57efc6e0b0fa8869aab39be91eb64c87358f8e8df4d3bbc719074eece344a11b15f4416bcf464b49c28c73f00c4e87292aa506cec198055a5c5d06d9da2e7037463c98a5556626d0f40dfb031e759596ad19f24143e5f0b394963c1ba8a81eb8e83788867861e35668173d037a69ef13e44aa30ad75455adfb4813879f8e3f9f30bba61c8836ccd3b32b1461cfd0993b5bbe673f14c2607c76577badd50c7d5b4", + "01c65e7ca9ad2618f8daeb98de6a22841216a57e4f8d2a7f4d48e2b5157e03fbcd7e85fed6c34fa29e8b43ef024e6baa6e91ed14b950a66b557e3705da6cfaf08a2631ea93efc3", + "0dcb495779a7a357c4b841dc036261c1a15267c1883d3cbec598d71d77ada360bcef33cec8b2793e485c5347a3f2b0235eda7c06599b245d804505a0f84231431df527cd41428070b3d9309c4c23743ab4af5f1616f0a0cc9a7165f86fb8a93eb63cd1a69746bb36072a4333cd9c9c04923dd4bae96e1aabb48b8eadf7674551868d49a3e87f4bb0775d8e6b7cfb22b34debe2c2196bf51475ad447b930711783279e2afb5b9e111b4574ccf9eacf263d50bac0b279e8720fc4ff389d7d410fe87ce4ac7ba3b5cde905a50b247daca86046d7261a0034994e369775ff65bc59a0483bfd338a2e86925e12f17", + "03e44a52720e2aa4d926bfd9a4c238493d1a24c08a8a41892a4bebf2b317f7eb794a16e62a006a0231e4982d42701b8bb898a8c21f4315b06298376afa48f9e885a82b157e2f" + }, + { /* i=3014 cDividendBits=1911 cDivisorBits=302 */ + "230fa52d2e4fd3982290d626f46562fff1f9f93a32254459c7a7da99ac475e31e7716b242becf75b2d29f18c7be8cb970c4ac6606b18103a170bc926256b1b1dbcf415a5ad16118267f8e72e8a1b02f28d03597e6f2d39c32caf278330afc3b9a5437003a821e26fc44a052b99c753a3549f8c9532a1ffcaa6cdc5b82b8e4cd8c9571a226d15eac0978eeed3c89f6daa54d7686142ecd58314df941bcc9d30c83693f81e02fd2e4f815ab4896a1ae7f8531e5fe77e65a51661bb3975e40e65e2de58f4d408c625f1cd1d31377167cdf1fce16509de44d7600935ab5adcdaf385dbe40e81c15a440dd94854030fa1f7", + "2979135b03154a0cfb00da8f91a392d3420b2b15dbc016a96422263d2774ed3c4c0dcd4918eb", + "d86bf236994aa9fa3bdd0cb9f465e42aeb64a5c53834b6cabbdd7ca06f78248554d06aaced9ee1df0356756a850b3437b82f3f5fc841ac53bbe8a186c7734f36e0230e8f3f29c5c7e97aea41f30c00fc5ae0233379a812b9ae324e7b268376e4e94449f96f8f5c3e4844c53bb381b8a7b1efb3f794c620452c5c4bd3c757c5b31c955f9b44547d30a1592692b67a863aac6985c37ca1cfea5159be2566a6fdff40c34b25f462a10afc75d8020796264c7d350ba33a51aa2d24ab431318c6c9f5d64558c6dbe078f597", + "033f677afbdfe365e869ef48902a8871f0ba8b778d318fab70b049967992a1d0f39ea9f1085a" + }, + { /* i=3015 cDividendBits=987 cDivisorBits=183 */ + "036687c009f70deb62d3cab96c7b3196d1bdf9fafb5847b02cbce712aab6fe3d6f477b71b42cd93c9ff1a75a1f230650411bb1bc7d15b99c9ca6fd1f485bd9bf5001ec9dfb9e40f4626bf09d17e9ae78955f1189f1c09190ffa4de3fde0cbc3bcbe4743d44cedbf1be0dc2e524b4fda4f9c4c8061d99ce218be917ed", + "2d301dc2bed955a21a5d7f270bfd9565e47ab6d11b2a2f", + "1343c0535479af0c7f6446e2a0811fca411b2b3c2bebba6013f50ded5f428ac5a1a7f1db91b9e4ebbe576c44f1e102f71b9ffdda44490f9c13d13384e273e3f5070e4351df31c38d50b3382d0d5e9ad1a6ea23424c8ae306b3358f575fc5f8f75e0fba1e8f", + "19d4945e240cb325944edb36daa755874e7a0a27a505ac" + }, + { /* i=3016 cDividendBits=440 cDivisorBits=116 */ + "8b8a40768a7a4d240bb227b8ab9864b402fb5c5b19450a275ae1ba9de01e284c78010dab3e528c34e2a5eac319c112318c1df695580595", + "0cdd4cf638325e12f533a39a07481e", + "0ad8d16838f6d58de2a84b5f2abe66ffeb758e79e3fba0028875b99b0d12d23c3c704bf81f9a01b3ed", + "0bfdca1ed4c7f59d9b23c2910f47cf" + }, + { /* i=3017 cDividendBits=3231 cDivisorBits=2375 */ + "36d4c813d1c4c604b885ebddbf1fc5878cfda1c664626506203c0528420930a8de9c430c1713464c2f0cf43bc1478b3da344475e64995bbbca6de140f95ec82143bc3dd2d0f6950f68836e7f3d300166ed78c3ed5dce30ec5a4a881a0e417226254996b9fb453169bfb346418ae5f94d7438138b55913f56e3b299ccf613d75a74ce305451487221e4ef7134fd10bfeaea983ffd68b237830da7704b98b1ae928bf6bb8f92d99baa8af1a9b6c095ef24563029e58703492f469f4579f08960f3153bc21a703973719204e5ca0dbf9316c0de77b84516d0a0228d880771c11b9dfba09dc06ed44891bfea9bbe90e653d498897142142bd78c1c7d4f11dc5dadaa1c655ae13725ea6619898ba8e590b33cb3f37f6c1b4d7218f54c7b3d9152df774f05975b7ed5cf61a95d10c76a0fbff5c52122977cdc2c27880d330658d237d3f5752356ee60d6dcd50767cf3ca0e9b4d1c9a1b1114f4aab81c681f439c2481059a394e53aeca4f4f2c13665ac9282eda77d5f63544c62239df121b2f7b321ad980126bbfc027b2eae11159391a0cd0f07a91cbb", + "1a72699f1de19afca4ea37eb634a69898581996f28627eccd26985939d450356152faf92e110645ed8221c3e78463ddf8c15509957ee4d00e827c2ed92c29ee7222a61a50ea380261ac098b520f361c659e7220d367d20614a41870bddc06d6333f3384b6796373c41e33ccf47f11ac3868cccc7e38ff9092acdafd21978729fa85c35da560e1ac3954f1a57c94b9b8d9b6aefe8d982e16eb11151db565cd86e3e2c355194138dda59d198dc108656293b2198a8765e4552c5f48ad22bf1b2a094b53ab1f2f490fa37e27de0eb520535231343b214eddb246fe25831aa7f80782f3135b84a58ac344a68dd558c2e67afa9472fc4fbbf3df2c07845f8e1828333f8ebdb96a06ec9fe4693bbd0db77d232c6775d9cfd36043e2ff38346bac2e1f018a4b204a67f4092c8", + "0212c0bdb523c6652839e3a220c0a4d7be5d562a0e9206d9d4c217c9e6098f7a7bdaee5ca234acc428d023f36638b342b67bc74af5170eb8e3cdca050a40fc0039da812ac99357f1d21cd2f17693417cd2e9ce67351dd2ba7326a5d369e6b23065a856a7d0c65ec56e633508", + "175041cdd8a6727c1e0260570a2c0e5ece4479f3491340183c1f3a14f8c7744994f051dc3c4d8cc1ba767bbf56ce427d6c1d2c2216907fad341e83e4b9af2b2653829badc14171bcb54c02e8a97fed097e3cafc1377e32fda29530cdc2816c22e492e46d40b2c512ee758698fdab737c6aef8314dfcbc3b09549d986a67592e299f727879447ae7c50eb9c7d0b9bdb5bd3a5943e1d87712110289021894a5d0756e5f16592c8b3866bbeb7124bd415684103e1261fefa8fe6d517a1eaba82f3f6f68bbdd95d533e6579dec1b04821a52009f723b026d483f23a95cc6a613393b908de9be430b4001b71b6a6a210aae91369bb9e79a978a4dfb7c9cf537fddac05597c9603de232b15d34ed6d701d95fafe38acd38ac0eed5bc4c62ca687573c15890c2d68ffbe91e7b" + }, + { /* i=3018 cDividendBits=3383 cDivisorBits=2338 */ + "0e7134d514fc5433b9ad0828f41979b51f7f84e8375f3859688b05cf631833f596576878f3d20ed20c5d8a71c277e2678235f1173db6325bbe99d6ddad39e17424e737e23cbd6ea60f8aeddca396306f953083b1154279839cc400b34b914e1b4a499c0e8c05f8ad4f20c547e7a96e974a99d466fa0208474a6db25b9eb99d740c07ac9209e239bc2c4faf17dbd4081a9fecdfb91c5a748139f919547ae2713ec3ac435efd0245299983745528b8afed71a1362d44dd8e03fc311bd5f933913ac7abcf8a8ace8f5f722f99f239affb7c2bcffaa1c1c64b86b14718b26b52a5fe9fd7eeca2a03d4b38f53916253eaab2290955a8fb1f3cb3bf764a2b5c05577fa9301bc444a86f092508b5584fb79ab432887867dd3ece60ed990e08deae9ce6de0cf9dc2936fe1edfa2cbbc83c41b37ea9b64ee507b63709ffb39b88be68adf247cd5686793e76b841379249f0349b412e4459fbf7cab08343a687ce6687142b1f1d8e94f6307a262da633ad073324181fcaeb42e65e3f249c8c6cae29efe4d116846a7be1bdfdbf80a2827a3343c0a368da7d0cd39d0104ab0228ae75f93511dbd68e3beee1eb", + "019853dad20240246f5f42c05be87200b80c273d4ccb33a583e6cfac13f0ec200cc106a5bd35ee2c1438a25fb390c7a59a8b4c9459107116b47981cdef27b8b5d5fe23fdae000616ca6bfda1a112f7d42005a55929584eddb578da929f3fe3e4b2049a2233ca454869cf5217c30c558fc1ba9863c135faef7bc1fb23596fa94b2d5056ba279b82e5eebaf22e633690eed756072768c9ed66cae1688129ea82e8de4641526a0e5f8ef1326eb13c354ca8995da981f17d7bf1b8497b977b026915cbfdb328cfcda1f0ead53f52130775494919996779066020a1248e04c0dd504f4804b16046033b6b0e2c426932e8ab073f368a924c5ece4dd5cb0308353cbdc6a70cb28158b1471ae713e2e37c94a894390e0c5cc67f94010b717373026fae8f3e89df0c25", + "090df46f62a1a2faa2e6e3c7453f12fd01c9c920c655f18cf57b2a2b7ac463f34aecb71f76c1e5fe28c70ffae66f864bff9cc1617cc36c49eb752ec4cff210f02165e0e4bf4c96a5cf224b3bb85d06f79ab537e9f8e6de6e9cb26d4ad6778fe4aa8f5373aa52afd954f0d7d9213f7e00c0e1014d0a445dd89635a44b559bef63392d33", + "b8861fa38ffbf35e8a22aaaa0bbd6d26452618df5b2e1e9cbfb389ab58bb3f59222eeb204f744fe8fe8f273a3b4dd2474fe50eefaedc72071ab9c9f76b95551c8918d55bb9da2823635be997e82fbd49b2f5edaac947a091ef15922745de3ecdeb0a23dde1768b3ddb45257ad82b20b5709ade23d5c645c64dad6c3145e083883faad8dee5e94fa59d726dc5a24b13aad7edd39730b376766053fc8f6c65aebf8b15283279247d9bab93f77dfa189d05f64380044d0785c30028f19b7ecdf9af4700762552295c5978e26cfbf53dd0d6f4149485b47ba01f1c93a162536cfdd10684f73e65baec5540649eb3d1ad1734417f48ef8dce67a431d8964fabf53eb8c7500e236d5c7531a797d5660cf9a3232f939a98e379e0f28f9319a56bc99cf58c1ff58c" + }, + { /* i=3019 cDividendBits=1292 cDivisorBits=81 */ + "0c271c1339b2e333249ad738dce24c2e44bbb95f8a27562ba413cc3673198370ccd0255a1c07fe91c1aa81ace540ee7afb6744e41723e6ebd102be1146febc7b8f8c0dce29ccd543baa7a9365ecbbc8e6f59764efd6d03315bf89ca500c307482881daf41c226eadb2a990d60f963298452e84aab09515aaf0d561db3f4eb37181a82c6bbca4bbf620d8e5832bbe700d4de8ff9154193db7469e757f5514d5391b6c", + "018a124900d31e4350b68f", + "07e510b5bcd8664c0e010f38efb2ff0c29096e60737d7691fddc45644f11982d0225b7ff69e6e5a1e171f943fe4de205310799852772d575a5f89e3d61faacff54234115cde45080724db247bf7715e85434b5dd407a076b1c4a85f5175cad4075268b7138d6df9fab59c6fafb67c27da13734f5fbaa3a8ff2e967c9914a740b8bcf2b2a751bdc90afb07b33e9c6420cd35af4144debaaed", + "17e230ee283052002309" + }, + { /* i=3020 cDividendBits=1279 cDivisorBits=916 */ + "7b84df1e4d4f0700a9ea0896e02f630116c25b91d634b6f3b4203ca3e1663d77ea5421e5ebc8d28d330d0029467a52daf49bfe20c67ffa40f5eb2d7db7c9c624712c60ae4181b0ed62052a5daa6ad81e01860155f2c37dcd9e00135b4ef4329f4afbefdef8f60b278f30bbf8f656a14aa9651d9712a3feb7d0b3650377c18d0a4bef81f51a62f7147994851073c703c994ccb6ffc168cf7e63c1a2e2821e461f", + "099b0846bda712b9e17d047ba7b4c3100ab711405c37c4b183567788590c77a710ffbba60647f66110bca840d09d86fc30bdc365ed6cc639ce5ccb1dd2c63576f71d27f096382e76f470c69a94abb0d1fc26545e758c01133069709ee63be0d28edcb9ddd7a85aa69ec4da43fca442d5bddc21", + "0cdbec155e9059045a1adab121dca8c68f25da971fbd683e4130530115c34f7b6ecb03c6030039835932c5a5af3b", + "02ca32ea01341f2714464e2b021e09777264385e614af674ddef5f19ae97ba8bfb027afada1331ce8cdb19ee05222de78d8795b7e2be0b8e34cf526db765ee205a10fe5b88dc7ab4b274f561cc9ddca5be1d550625c55521f0af22d52c29f1b39a64c9e1f8f22c10e8a5f1f82fc2282f9cfb84" + }, + { /* i=3021 cDividendBits=2181 cDivisorBits=1189 */ + "01dbde530a3a747d415190e4b193cbe85d0824ad44ca8bb4a233777b77801e0de5d06deedaebac8b8d791ab1a9c23d8e440f0a8a162f3c0edc705a7dead19e613163939d8c6a08b933fc569f842b51b680415896fc5c24abae7ff89116b0bd916f2f2eb1a024329da540f8cab38a9ba8f9ca513c8aeaa661a30ebf5f5e857d0c4266ec78d8436ad661b70ee7a371c7ed65e8341ad49ee83f9dc4432922f4101a0b68e46bf6c129528ef0122c6b79b2885a739f01547be801c2b885de24bc7c1c53fca06cd91ced08e1a814e81d15aa9868460c4e41a3120d7ddda894eb1b2d943e16ed45662b91761d408713018b7c2b60194950c98cb4cc53c5991d7e6a0b07c90649843e0220914cb8e72410be8b4c76", + "1f0228a190c33c791678712709bd6148e08a7d38ecdb34eea9678cbcb69b235179abba0544947e201b92d01ecea00ab21615fa93504033e3d35126838a0ab938ce26c3953474cd97706985fdf4824554baf610578bad519e05e610db3c86056359da4f8ea0a45d36c158a4c094b52276e42518f147cfe0cf33dc620eff5761404cf45b7888c22c4f17e4d4c8efb9fcb8fd3196cfd5", + "0f58af0955814f635d79d5698a0022969b02345434be649a83a69e3be6ea4fc261cdd3c4a15d73c15b0b1645c533f727998e95c9b9b611c0337851d736d73b3aa1f525fcc51983c00efd2bbecbc93724a9871e8d65e6fffad218beac22f7e52c9152a09d1aa68ecbc6d628afe84462156e4897b26678fb95fa76c98d", + "1772ad3a8edc7fe2be527e7cf91691df9014ab6260448829a8ff447077eb4c6a35304d48f0ab002046365c6e5c41c2dd82661acbd292d5323ebdd09f39e010eb96703ce185f8629fe761af31856a9b3d11e656f7974e404ae841ca77cf7036c1f74f8ce205de56ac7e9f7648929a9e41678c0bcb972af7bc7c8aa39dda9dc8c5282a79ab8cbb19bd9021c4bf804fef843a371e9725" + }, + { /* i=3022 cDividendBits=2923 cDivisorBits=906 */ + "07aaaa3f324fd93865c8c95eaa5798bff2b15fb17d2d2f34a3acdce07b2cbcc832a4691c07e6324827208f01090261c2ab9a6daff45582215644b12185e52a4fd602a3add374af549ff3f4df7884418a7424cdf9d1220d70c146a1d3f8512fb7fd9ed31e9ab900320e0d3e8776f178445fdc21aa98a7ae35754aee11a6c87288c5fcffa54eae6deb147636d3720ad5fe88dbf97ec8625ed4f65253a6f1b80226069fafe2b06cf0f21b310b9063d6ce51b11661c377af6a7cbe152b0e3aecd78a9d5f44d57995a01af51bb3ea7230ab8e6c66acb97bfb098e5f1f46d6893aba4600a8041d7e0c16ed6eb56a95f4f90e9def8a473a93b8a1cd01416fbfcb2b816613c45313f7427bde770aa7b783246e76c761acd2e7f11bcc8d1ee5cd2d9d588a3b3f39d81cdb4e37fe9063064971cf1cb9330d2d34cea05f0d2238629f317a24c60f74a8f49cab46e0262742b3fdf91e3bf1ee7071e893d06d528c4e32a3474e30195b06ebbf027acb16d274c80b", + "01e37a102512d7b84e43b2f23bf9765b81320c29d66e4caf812d10cfad1e708ad70633624a563434f7c6d2c894e171f9a0c61c5380974430352797d51c7db14a838b439062069d0181a92c8c11d01c6a89436d1d5b091a0390e16fdaa18ccce7cda842401ba69761192a5198bf4a51bcbd39", + "040f3a294f3baf7712e716e59b9666ada2782054319be958369b3248c7359d56b45269328f182eef51eb9a2411b724eb42864a754ecb6468c6e9d9c1e5f17daec7b30ca58dccf004f454ee16c6f8d0fb12b8cec19572e1424eb7def2f80f08831c2f7cbeab38f21209c154202edd95b3ce33f8a069b95eadcba9efcc2ea922e7a2ff8f31b07bdf103affb4ce359da85aa2f35f2a51ec079974f3882262b1e25e7a063e57f41ba9a117a7d020f11b67e19b271f5f310ed9d41f790bdd8704d54cecbdde5ed217cf8f3068576af95c5fc63faa635842ac5de3de84c94ffcb46b3b3a66e72c5a274bf30d80cae16b31fec353b189dc4960fb485371cddcb6", + "b29ad365c8b596958e416688fc401680cf979f6d009658278ccf3b9200fad9a6281483b6217c1c7095fd4705724cd0b05dd6b261ace5c022ea40e73dc696998390b240d9d1fc3084321dd24898f802e53d3670d44179ba6989550b88fb98f4867543fa84ca70af1d6f429ac8ddd4044585" + }, + { /* i=3023 cDividendBits=1666 cDivisorBits=660 */ + "02177c87563e2cb34380ed92da7c0704b885c3a69d56abd01b8fe5408123a8040a1d52b8d4b648ea97ced5861ea78b4e901da1aa83ed90f385a0386130f697a6690053f0965903d0abf10125e852740c9eacb454dc23d459b6bb5febef846a308fb3e98e339b39ef80640a5ad219ff0eeacee2c583c030e8cbf69616f8f7997dc92c52428887bed4591e701836a115ffb974b4b7774dabb4d6c0323e06f0d54d5cbd5e822bd4ee20fa315841e18fd5ac572d15db2452adf758ff2a15eab704fd82ea58d1ceb79d935fe7d766808f26dd1e", + "0960f37e5deed078354dfedd9760ae29deba85cd5123d26f708759270faaeb06e78537d4569f4a34fa0e2ab9ba1dd1035e666a25a1dc96d45d1bcd8b6fa23e781dabc8ed63f090bb7582cb06ace38f14842d97", + "39188e98bb1349b6985164cf87b880bd86d04b9e3b326b54bfda0d11a80ac5779b21a269d305883971f42ff5e4b9158637c4ea6b9c9d4f4dc05ab03dd161cd6c9b8acf5f781ec68b7a7b52829de0fec52d598b3b4554359e4e94bbc4091855999586e9ef9ba42f7978e5e1125df94f58289fd3d3b9b577b7db7a9cdae099", + "02415b09d0bb4d309b2b30744c23b1bbe87cc94d167e37078abf660cb41e2896817a5d058f6f5a4c9423619cfec0b6b19f4e4c616941a763a4468741890c1f568d71fefdddf562713f691f091f48bccdad7ddf" + }, + { /* i=3024 cDividendBits=580 cDivisorBits=329 */ + "0cc97b7115d8cd1994e505be7044f7109d6a6e804c00b0469b8609f00e9c4273eea126ed7a7cccd2eedd80db9c78062da1412b63f02ffa2a95c6e804e8b46e5de8d4345a07c0dd5779", + "416a7999451114aca26f32043fb2583caca406d73de5d20d8c1bc254ba6a72761da1813cf7d1329d01", + "320a833a5e02b3699f5db9266a4f41a429e6dcd7bbb5c1a7c0edd78e0f8b8a17", + "250622b47a7c139e4080ea5376b497f09a81ff4ae31868f70886705c92c69ec406610dcdc25e23b262" + }, + { /* i=3025 cDividendBits=2372 cDivisorBits=499 */ + "0d0529fb45b0cbfd808632d4a5aa43c6cee940360cf643471c0f7f189e1c68f88a578e7ac0e8cb2e3986c24b9af6b55d927ea4dd29ea68082f58c4c177c90a89475faa4d77da3767f3896f97664415922bd77cce879df716cec9560f9541270047a0db9373da83b69930cc6b827539551827c978c6a317f2733d5c5ab5e5c477f267331cc6932b163dc9e7cf57df69f62c5f4890f8086e22012cafaf589ee4732ed276f8de18b92402311bacafea2771dfd701e96a3a662b26229a1be193024e4409484a08baf8d4797cfbe8b5f68730078657bd142d12e708a2b8b0efa77168db812da0ad9c6d8159e9f75593d5bc875e8645133e4de465172e701871962d85610cff03f228dd88be735aeb3ca83c469a02dee8f3a3e6683cdc5bdb139f744174e84d47e0804ca116", + "f1b0add13f8a8112bdfacc9e6b5e79ded107169ea65e6f269fb93cc713228990c8044d2a595513cdad290fa7fc88d45d95fb980331ee90fb964faebfc2f8", + "0dca83121858b93ed3db64f0161f03c0176bbc86e4890044967fbd881689ef20c64b3e80f27986c764b052905260ed61353672967ed11e58787d7db689699ab585ea438ed5ceb1d56708e99052572613b3f47b195cc638456ba5e8d2ac428739ea7cec843c411d75c22332c0732bd6fc1bc339a48e6d32d806791a011f9850ece3d317d4833e44c546207df55676db730e418b95e685bdb3d78da3fcaa95ce5dc871cc88548ce85acece03568d6410494c1ccb5f11eb4b83435b739ef39e70a4371fd91853ed5197dd6dda1e8c0c7ab303f65ce1d6b16445ca21e240f5c6f7ea283c444a4d240a81820dcc", + "86486132b18d8ac1b400965325a254e75567353adb8798289eccaee8a58253a4828002f7f501cbcf364a3bf29c6c4297cfacf456f7e2fe29983188a6ab76" + }, + { /* i=3026 cDividendBits=2134 cDivisorBits=1103 */ + "178c9251fdc8dc15787f683b591ec06082bcf600e41279346a3d5030463e8da2df6333e37bc95c41ffe826fcc8907fd8afb794f45930f3cdf07e33c0993a142e589af45c84c0822948a3bf90084ad69aaf4e8ab3ebbc31079e1537ab21433f828cd04540cdfa0342e99df94c2e6a4731a2142228131d2b85883bfbbffa84d25cb4aec26c4671063ed2b149babf720eb8792388cd4addc917f185688c6bc605b92e7870c981aaab7a1021e90fc7d0c4674be5fab41cc90cf8da5a6607b13b6a82d10d9eca62978bff6c7d3f0e5d09547e96f98a33c120076456f13b9a1617a557d02ad6f11f94aea8028300c9753ac33b0beac28a28c656cda8b0cd64c118c809c81a9a2e026c151b691428", + "62ab160c79d7d8cfa199d8422acc8849756d22c3f9844d5211d8ff937edda86382add5f854b727b3ed6451f07c7bb2902042e029604d2e7969a43ae696e35e964a3cd5e98e47129de67393ddbaf550e6f53f84eaf9c819a87067fabdd7be06c8a1134e8048f5f44ee5004b7e07193b2815c325c350b96087896ca1ff15dea8d31e0b0993329ee5f65ef3", + "3d19707f2c239d676c62e36f2dc570bd003b34df7af6cf52abb0ecafaa1654458772cb417cd2870cc52606343ad593eed2dfe6942e478368eeeebc3de7e4b4901e674813a1e1afe047790c58309fa0af45a0ff823c136dcfc6977e0eea81548e6c3c95e6bb0ee3f1f09bc60017deca368ddcf0ff34f0e3dbb684ca36e62bc61069", + "3d0585e0eeb8f6d5b701abc1a374533c28916576cc40b71528f6f2dabb812ba854213c01266a60e5c8a8e6a16b3ede20da94bd66ed85f0b6d0a71af3a96af7146c5e00c125d6856d51e829797332b39b4f3211b755fb012a99f8629d316ef1c8da2192472a885b7aa96493358c484d0d4f1a759eaa1151c6fda789a841dbb96f17bd6ad3ebb7227af27d" + }, + { /* i=3027 cDividendBits=886 cDivisorBits=441 */ + "122799e6c6d2de438baea1693a6d65bc6b1a48109169996f66707856ebd820c94bd9e46a9161ac182b8db4e60f4efa3e2a926a186bf669374c78e96733affb913588aebcc4ad1c8b52a0f4bff0a3d310fddbde2324076443c6788807f9aa9007c352124ca65d822b6bb102e92fe5d0", + "efaae2756b30864311773236d6ae2053fe50f4a58f331692fb29775824d034e6f89a153165b267b9ad922a15a3f4a25e06427e0c773a58", + "1364518b6d8d8e34663ef0b920eabe51bf27597a1d37ad42eaea6efdf9fbc2a6a6c4024da1b46481df41f793cba722749628e546dd315d6f", + "c974badded0b502a90f09ee37aa9280fc1a7b91428a473a0b1e1f554c6fb048ba24bf796d6e030c9a9869a7b120a0ad81f15940e73a1a8" + }, + { /* i=3028 cDividendBits=11 cDivisorBits=4 */ + "0402", + "06", + "ab", + "00" + }, + { /* i=3029 cDividendBits=2197 cDivisorBits=1815 */ + "183cc297405b099b761a5306fb9b0da8557b0074a74ea793f1f24e2502d85a0dc0291b7fada0a46f178991b33ac916e46a3113d6386f7ee15052c6bbfcd90e35a96388e245580592bd9fc63c5427bc8c7b28484e0fbc7aa30890259bebded6f9eb6c5d9814959b379ce5d8d1574e2ad04f7fa0ca9171af3b60ab5ec2246b7ef1d4d948b0910ae9e90181599608aec750a4b7e3acd379fc6934734337a158e35c6d77bae04e5166ef09b1c629e3224b5b93037e20600ee53d969412e9e6276be850561f0a66f4c61f3c1660897e14e8f1f614961e4eafca53d187877d1ff10ef4d292be871bae7f5c079d2b9340fc742364b86cc06130803ea2d5ff944f1df0efcd17d0c488febf42ad84a0dc671aa11f788e36", + "4e50568c3f6b0a4719e729e9ba2efbec3a59bc5a948f520484241e472eedbf8370b1e6591a85fb9b9073e3f7121567e171087f7ab47393fc7428798118fd2d39f332f6dc364288f52a4273b04b892d39217400620f3faacfd45619092977afbb0089601aedc8bfe21d37c342235340ebb930ea850500edbe0a0ec97b27f09631d622167d3b80e4ca22ad0a16fe00a74919e7c8ecc060f14148e9e6522095176d3a531f0e10a1596a96d58f226c487b691b344699d86d73c23bcaa6b76c5e3d404506d435272f8bfed742f9bb35e56b270f92092753cef2974c15f074392d18a3e4e5d9", + "4f3abc8dc1875ab72d57a112ce1d9f33eee7ba05175441994d6a2f72af34fafdd5dcf20bb0836bcee121c262241e9cd7", + "282cb59c8889c7c4bc42f13bf172f5d4e3dd2e7f14ff31ab1ddc8808dd007e45df0b9b9e2b49ba5725b69aaaaa47f37fc9bdaa88ba320a966c1d84cc7838e7c8d5298097d8d7867d3380eee5e30ea361ffc5a05736e5c957daea4216926cc890ec3c4ab354fbe35d6a88e812d95b15132eedc73c3eaef6a500cd4008490b14872d2586dfd91886b699f2da522adade93a2f15525ed2a29e9d4f1a88d950d9297ccaf486cd15fa870466d6ad5040e1b2c8bde7ccc5f64c237a9831ea5dbf30d388c8b607057c34b456a8a5414ceddcfdd3f80e69fb23fdfcb4c020c1b3062d88abd48f7" + }, + { /* i=3030 cDividendBits=4071 cDivisorBits=1467 */ + "5dff913d917bde036ac37e8964761db08f27dd34b1589807b4a4358853121bb82695d6f379b736fad1c781f0b26b09bdedc530a32e9d8cd9155dda588c1b61c9f5c57046a27f15314e4d1eadba6dcee372f310c3bfcd5cc022ec1b7eff502dc22f3f0b734f031443c80b19790d43f391868817c8cf727f63b26b761e0f075ba4afde5b7dad254507730db53b6e04f26bb0f4695ba7d2814b86c225df828283c253a4233e9c17e504e095a01f12dea5e224f96f10a3e0269b1129e0f1a083aa19d6a5ba252011fd8d0a4bce6f91196fc9d6342478301dbf0e6136ae5c91f572fffb8357d373e12c186b4ca58f07ad4a23a7fa41f1746c27eb27eaf1a940c67b3b73168b442e8e4ce1b4a18ae275811f21fbe4dd5c23825bc3fd75a72622996ed3bc9bbdeb8d6faf448c9cd7cd11ad5e6228bc8ade0e82874b9b2f7cecdb1ec3f18d594ba2ea5c8042f0a2858d2e4109de658f510bdb4983bcca85f77788807f3d9ccb2b716e25de7b291217e5e5d289c6a391221db2e1b6a6e8c7424dcd244604c1e5d2e6e82c07041bb982676d62a93d686dca88a4cce8e8eab4614da6f0388dc8ac05b4deb60b86f7c368b18bb84013ef9fe848222c8a4037c2207fab03bae26ab4e5b2229a68c7fbe1d592bb8cfdebfb6e4468f2618b58c38f623d723a1624ebfc29491385fa1c4ce71faabd970a38c86e9fbd06ba968ff391cb5f27", + "02ed8e0cb10ae8d5b68d03553f9057e3cc41684170b8c58abf06a5782dae2c7c7ed48216577b18ea92cd80640d0182f0cd3704581e21ae201657158ea3426d4970464f1ef88a7ff05cae61f5fd92d17e8247b4a0cd21ec626ddd8e6ffcef5b954a0f4971d0a3ab02c0ea1f8c50eace5f4ab6b4166488699c4e579f5fef42f68a75a223e151e49ed2731d2387d6e6e08f85552906c64cac55195845c05c4e4216f7956fa9d9439ab774a17820a166a4a9a7dbdf876e8a4371", + "201a93479461cc9f6eda8e1c6fd639f65c0352fddb7ef9f575fd1be78e6f693c09f6988f88631fc6732d18185a9126514681743f95622b36762afb23fee300113c84281e5b0e9a6a625051318cecb818a6c2129709980dde60688044c71d695d3109d5c90b9079f98c8f49aa2b5e701cf90ad33e192279035c91f2ac60ae51a13aeee6947b188813f3f9379426573b10dda1435f4180fd056b9b5b1a5655f569cafaf5a231ece33f6f3a57cc39677173b4bf30388f10c22c5b797e4a3d45a16b3d2be5418b77f754b464e8071de4f8b71751b112819c24aff96baaf6c4059990e49fd7510f74a166456f4ebba0fec5958842e32ab1e06a6b9d72a62397f0c86763f8167f51ea8399b7b7a5ba527372d07e762ebdd84d78c3b4243bedf379fe69638cc8124f8adac432c65a0870a63e6fffe687fe6d0f2472683a4e53ca5da41f8bfe9e7b6b0b", + "014c151301a63562ca9b91384cc00e6e7ed1659c6186baa2d546b5b10a366c291454a4a82b3278f6e6b7d509a5eba042f8513852c06fa739ff1b2d12df0522510928bf4dfc60c306475d8df111c94ae0eeedaa26ea13b3caf104ed320ec5b2154f8da9e19c63e5aaad54a31a4720244f9188165df3a934ca2df70357f205e034bcefb6db78f18d0761e3a3ad208548fcebd12c728ab55b474d41d4e1460e93dbfd8b227468dcf0b76362a0477574749552eea2c1e25f3e4c" + }, + { /* i=3031 cDividendBits=2994 cDivisorBits=2729 */ + "02eac4cfb169522c69ea77b196506c94cfdc1761ea814f840a2ad300f3bf3c01d1c4a6ee27c65c8eae610420d63f727994fe260bfef4049506f98c14254489b70c64a1b9443e5edc60bb998a5f3c605e490f9623bd109ac0f38e460396b7b97213ed4e7a9baa5027d6db91a1d741c928b87e8fde1915a2fa6ec9dbdf637bfcb8ca9bf721bfac9fcf808c817bc58f2e0f117fcc6fc8b7398e17bf93f839059153e70911060877b9361b9dd0fb4dab3b4d3938d8c557931ff56f137aaf58a87ef815402247f51dc74a12fd8e3f9665f10cf0f8710dfdec4b15534576e7ea1c4f55561c7ff8426f0f10b86d297916d7ffcd71c3375a4afca88b23b53dec60236ed4f5391c339bce67732bfd1843ffe9b957a8e434c0baaa008ca7078b5caea754aa3f9f449965fb5210d6c26175030dafa047b8cb5a2f58379a276bf3336f7d496f98f1f15e818a81bd038369f8c7ee76eb6193820df9e93c1c92f7ba09e898a889bde44ed6454db3abf49c77461142134729f8c0ad06c86f", + "fa49045fb796513794d8a60dde28deb1bdc455c92240ebfd7b995f4a32604c1c4b15e9c0e13e87de9e210b48a08cbe41e79edb65bd9b679e1a9cbf94ce4b4d7d4d83b81c543f2b0ad44cd4bb2120e6923dcb768a78593e27b8046af25b50935b51c79248ef4978da352c08eb28fe1ea2cdcfbee7ced57e91a609e5ce80b2f7cc1c3d6fb2bf942066f08f4e4d626a556f0f1820a5d63867ba1bec8d39d4de42aaf52c7461509a1920bb92f44c4bd72a190495669e999383995035af83f8bfbf42891e510cef433deae6eb55746f748aa50b8071d4ed7c23896aeaa5eb4a69823c508d525d0e9db056b023eb93636444d9a2ed671c369230cd4b3210f553219510357a13c998271509f32fd239a7599ec8630f56365e28611e1a09f9ef5e877b305b5b0e9ecc74da4fb0ef09a3306a23149cf5d5551dcbcd95d2be2089d51d1de6dcefafa63abc004ca9b5ce913fdc81f371251c5a72", + "02fbd1df0616fe31c0767c97c99368e1a3678873fb6d9c4ce14c96303ed473e7c378", + "55a7b76b0cd5644bbd99ed19911b9227b31a5e0a54c39f8e38a188a63162706499a2b8ebe5fbd3ec024309d636ef0a1d7477c58a10ba6e7e6c129845429337268a856b4d4decef929b2a97d6d8b27d0f66438753e279b3c614a662bdcac414b1b1c2b5195fe5074c0bf5b6edb0f3abb7d7239b7257766006026710e62b53a1d903e24520c77e1971fb1b2526bc1ae88803991641839f9ef058eaf372f4349b039b0b479875c82e78ff531fae0bc8b7b0276d362095d3437121a65ffd0e4c489daeacd425a5ef748b67058d0a816d4ff405aa85a1bacb1dd0f0362dabbb2a56813c38d2d79b907f9322ffa1509b7f2a44a36fc46b6731862f6844e091066ca88d917da434441ab457d9ea9279cfff080d200aee5965ca51717308b99a388aac533a1001b2b187726835d8caabe5d84275c398556fcdcfcb7d9c31e1d83308c500789ca1f4f0f97c0635aca18eb71449f0d3dbf98cff" + }, + { /* i=3032 cDividendBits=1045 cDivisorBits=533 */ + "1294a804d5ea51d0932606efa6caa30adf14e868efcfdbd65ec8e9640dde93dcb9d752bdff7196cc54179aba5946e7abd9d002aa91ce91f23055bf590292325abcc6dffab2c1e6155a6ec093b81142d3bde2bbdda62b8a6189c9af5ecaac9b642e79056d7fcf31f4a272fae13ae6e21af465342a2c8a4f9cc15bd9c47982e223fcf82c", + "0bc70576455897ddb92f4d6ee836c0a6f33370da9d40797ce166692c8cfb3662825f8dc72d6faf07609e1174d00204e7de854ac25641100d0040bcf62b510b875b9725", + "0193e10adb072f321955333811dd6e3b9c660338df60caa523cbdeca6439df80ffb0dbd168aa3e945bb4d02556f2d2c22fcef2cd3a2bb0f500ccf86de2f33b6356", + "02afaf13d05757b435a609491b7c9240558560be9705f7639be383250409b246cbdfc56bcf67dd6ab954fba04debe24ebe93c5a40049ec9d8cb4474c62816c4b3de2be" + }, + { /* i=3033 cDividendBits=299 cDivisorBits=87 */ + "01baae1abc8a37ee9730fcdf517fc681ea7c09aa46d190d31e4adcc24541e8d08d2e739410ee", + "3416608c0999f48fdce96d", + "087fb0dd8ee512ec043f50c3f51b2bf854a9cdd837c21d6efa3e95", + "1e0731d1f5419d6d05ce7d" + }, + { /* i=3034 cDividendBits=3525 cDivisorBits=1971 */ + "19a96638711489ff0eda6a9fb28e0dbc0f8c522a9e43042e912fd307a808e261a5e312556e370dd23433221d3c328a71022730754e4019ea85c9608a23f022828a78632f099757238ff88dd4cc1768733e3b2d95d0e2ea4f43bff01e3b7dfab405d3e177a0bbc341abfd2575f978ecd9692bcbe324defade2a8267c828f3d6ad99224a2e0ef21e1d56afdffec981bd632288ac7019c745eaa84f44fe9861be3d592fd636ed82fc6cb15161a1754625d806005f7e62919eacdcb2dea8ffe07b4846abc02fd9b1a2277e72a821f95259abb2be1119c8a7b871038aa5d8198585ab41620a90ca24cc9b577d7eb2cba66c42074037762bb1cfbffd1d3fd526531412056b4c55c8aca13fe50c312fe5f861555e5253185bbf930d28df494efbaaaa4968de5541742a8a0de9248995b64efc77e73977f37ef8ca3407d96db3ef5a83613a30495f3011861d6058e8a592a97d777d53321c1bf65a8b65bc54bf6dc876c8aac704b458aefbf921c2eab6b59c00d5832c324d4b76f6c9a2f9abe907f81203a65456f411246116dad59138dec8a5449937d17b31d9fb6dfaca3978092331d67cd19163cd9b678dd9101e7bf7c99f38bc976aefac639c9789", + "0587e460ef6e3deb295d0f5d4b46dc48c768a53237a7b278b94e9aa477930acb9dc16e7062ff2aff81bcccfc1a3885ba01225f92c5fb44f73ea2084417e36076eb1290543351287abc02c45a37e57651aa4ed8fa57788c123938beaa5c0e0f50bf4178fc16c4d18def37bba4d678f6f23990ac8e9a038de2fffe8e8b80119ae23b11450706a7695b5b2cc29b122b9a05dafe5131924e6bce0c1cd4f6403cbc46d3475952bfa7b668b6195a5f258d4d6a0dee4b7c5a25fb986d5019ee469eb382405affc163763caa7ebcf31e4f62018c1086d3ecedf448caf4f081536f804dc5bb2c722787b8d4e77b3f3792e33f27902cc299cc459a5a", + "04a3c74cbe2994e928a59e9f8209a517df26ddfca91ce6d717124843b96a688afde9b280286ad157d34c1e84358cd8413bbb48e26c096dde51135081ecd64911ce3926063277a39b1d8cde8879f0b0346584c4a9f0810819021a58aac82f3eeecc531e02e35340c53b7c470352cd96f98fc5eabcc10c15c2b3948efa9ee6cae7ff3aad73463e1f176b6086930f3584b96160772a7d1cb4f184638eda9a1e98f4f792d7679892ce7922b4fa3f110a3d79ef2749593460f42d144d4446b9a37af89f12ff", + "0402cf5fa11cb537d69907d61413b68b2bf6d5f0dd7cd8472d746987f806bad1e1f0d2cbdef7308ade5bf7f5a78f4cd4ced183e773cc612376ddc70ba19cc910b1f94c4afd0dee1fb76a9f8448994e956610ecf3d3858723ee48ad08a076577ff9c60668d9b79f733a3aa868d34252eff9f47e64e31e40a1cc4eed884ce2b2384e96524a0967f5092db8f9374f4e6cedda40152c749fceb2f194f098c6999a65fb6c9e09775643bcb6070530205e79c63ff60d0e19fabe6971e03ba6cc025d389783947d323d262376b06100d36c77dd4dedcc0b83ebe7e4ee50c7b73e31644dccce16055a21fa21b9811afa663d1a28401e76f78783e3" + }, + { /* i=3035 cDividendBits=2725 cDivisorBits=717 */ + "1c40eb4f7dfc08402d84b672b5997616a5a78f3c594e438e764d5116b8a6b9ba5a73186b06c915b85e98ff694cb6481dc63c6e15cae460ebd7778049ecc2c5433c8a56296f4fb677e471717a53304c022e2b3b7185f99afd46570e50ab5a579f031fcea1a92e2eff59ac8a37b71080a01442be1fcec26cde9f9af9ce4efc70c6440940d2cd9239427168635e7a00f149562c7b70d9427ead7eebee7c89a0cb6209eb115cc68e1dd72b940d6cd7754272c029925d63f27e0123447a1897758406589c05dcf0bc0db5b64041fbbeaa3c265326ed1aa272b309083f3d1bbe6e41e5ab1d121ec5eb5f1ab39c8a9f5515a4f43797af9ae3ab732e35ba9ca7655c408bc612ceca16f92fc0ab9c0845122586edb6071359df03bbf3deee4b577c2d0c2396ff519d4e9d345595aa8c7c0984667c19d4bed8efec007dafcfef898e40e2a98da9ce106d3f0655ae11f6aee426ad0e0a3887a0cd", + "1f6a563a32611c515618ea553e9dd310a7a4e46efc95efa81a06f6ba579d49a8c73e97a6e6f9a80f94f67bf3e3c1dbe566aa503b73385cc3392dbcbc10a879727dcef29f99ec1c7876aa6d3a45f5a5d383d45b88d14a7694df2c", + "e63c281367a0881e9739548f465a4895fa963ad4904b6d4141f2b68efe4d6fa4d07b2c2203b5794cf3e20052c4be4a12f919320e8e7c7a7ad6fb865227e8615b5bbba28c9b5eff25a352b66f234c192f1a2dcf764f0ac834447456055b1c986ec1ed810b9e8ea23acee31ecfa38a4d29553f4db0af6ef7de0fc1abcaeb867df7672408832d5ecf795ef06311fb756d0578be08af0e49d8c5655c3ac85e461cdaa7d95ef842252f6fadc8c3c057657053f33615c09d429d27b22e1e41ae9e2761b43e27a5817b6e52361c8934b517393f118f2d58407ee824e938b8473dd41806036946a4c92f1e847377d9f93fe316708c04027e04a6e7c2350e07", + "1df559dad0ef354913e773dce0715190082f7f8d81624c533694c67a1b28e98dac2bfab63c93f3902caed36f9c4904c30715216025917694f626e736ce84f14ecfe105f441dcdaf7ba4f43eaf7cff73b238dba79fbdf4a251e99" + }, + { /* i=3036 cDividendBits=1855 cDivisorBits=873 */ + "387b998d71d47ab1765303554e079cefed347cb49748e7117601694c4754ab45b00620068f634bf0ab58a5e3fe2829749d6c1ce2aff7d47d017df019e2f14f225bce7e70d3521e05706a5969a3f590ddacf5b5ddee6bf435dea2b614c01aebfb0c428f5504d15632adfcb3c2387fe657d8d58d0d407a318bad8caa29226ae86e58260b6cdecc1b34a64f17c0afb2146e7fe3a527a35b5b0c6fd3ed2968dbe9557e964e128b87c66f9334e36bcf3533f32366830d3cea1f54a143cdf57fc2fbfcd626a91f45102239d7694acb8b060877c261984254084ddc109c152f01267d0157a5898fdd0480c9", + "01c77ee90c9be1c5e4746e261e33f7d615fc5c6c2a48f4cadaf174d68e9c09f75e3ecf0f03a711d23c4ea2fa4e6b4e7bf3f9a8d743a9c23228c104648c7aa4742b1c8a1dc48b10f5d57fbce9534c6d9e90c8065ba431573cfc3bdef136f7e8b50b6274fafcb5882b0c1f9fbf0385", + "1fbea81fd91aa01f9732b2bbbd57dddf846cdbc61f85f8e3d73ff6697ee0b373231beb2984ab3bf332a9c134a79d14a523265a922bd47fbc2fc7dd1804bda8cd2f4f90004ef773704d3cb9519f605d54c8f642fb086316d48825c51746025e13f05c42fb41654f6abe7e0a7d365f6fefa78acd178c0fe4667a78aa", + "a2d9295bfccb00d77481c8caeef1b6de3ce57b482bac3db85f8b96236f8aed1005f1a80a1bc0fd60ba825ffc2d4fd37bc048a929a9a239597c898b7cbe1217ce92a7893be8e7115d13577e2e24bbfd86cc877731c58271e9c00c75557619b5676249f0d97a05987fcb9323d277" + }, + { /* i=3037 cDividendBits=3167 cDivisorBits=1029 */ + "183e021fe4a2e6a7e3b8e88ca0bb8d599d625c681d25f3eaa81c073cb03728c7787bc8d25d8c4b91c646d16687081b6473369648e2d463cb36231d0f262205c84edffff9d23ff703ee83912dda4bb46f5b55e1bcb1a2068e4a677bae5f9523f3c89768ae84797f3dd659657fad97f0b0b77085374d3c7d1aa808a705c82f0ebccee72695d89edee25b88aab89eff6561fd949740f0b25400d7c776cf4c969b9bd35ed4bacf8187023cab1207f303c33160153ac2362a35246a0bf3bdddd5b1631d771b6282ace114ec8d70b8a020d8e59d6c658ec47ee01eed887d109bf7c88b2e17fa3d859091b15ced90a0d764e1c75abf74ec466a6c7bd0768001801dfbe4d38a55727f73cfc03d1804c077836656d94fc44577c7c70e92bfd6141c76fb6f7a31c6fcd196593cafa67ce887dcb8723fc37891ca94e0ec0641d6c5fd7ffd92aea68c3aa9f9d487ab1882638a7d02201bbc55637d4e4cb7e40844b730681ec3f30e95abbebd24c0c0ed79e9c4760e594570c5576c20432d522c0a241b6606207ae0166c41158630b9319c66", + "123f149692b5e6dcc3bf5ba433fb82fb49ec878adf4b8d4d19acbe77a7b7f6652b3307efdd4e860f26717ff7baf8e82173d8363d6e9b2d3d9a4069617556f63ffd47d82ed868606b6f37e48bdb78f2ced4a922f843158e42fe04070f2db83c7a0d4b56d7d7d56246b7d0ebfec1754c9cec28cb3f7d3f630ceaf4b4e9801259ebad", + "01541f4825955b4e56d83ff578840218c2f57bd87f22abc5c3f3d2ed374e080051e8a830a598af40afea369d03df8a5ad5f8b4feb23b968cba074e0edfe29b490c7afd64eb1e807e6db77e0c169ce1ddd0db8a1ad82a8304858e1cdeca20950d6d78cb0fa0d2b98dcffe6a4661ee3d4c6e63b62e034ed2c73707791759e3a0021c57d79e5ba9e6f5a8373114b1b4b53b11dfaa863e49a96792cc737a2dfa7b4997c53e26177007f2013940e76ae4b10a38a6410022b7ccf30df7c15738587419c5005508a84281bcd8ae31504b0db2e0b2f4dae89303c95b7a836ddea6a8219724e6afda92dc272430ade88fb7e0ecc4c0090c73e4659d4799ed82fd38e530ff4c35e807f0a15bab92513201", + "03ac44a5e42115d05a378a028faaf1a982537d3e587c0216c26adfc63bd55f02f04cc125f34c5db22281a88b2cac82a67b71de3b91470a4d7d9e115f8c897c0cbd8b482e77ed7b9790a2c48c56d7dfd423f1331e4eb870c7841ffd18390899a75d84acf0c0038ad1d7e25a8d2bdabbb831fa75fae5f99cfb006a2496afdb12e6b9" + }, + { /* i=3038 cDividendBits=3153 cDivisorBits=1541 */ + "f3c124765f44ef93a20fb13a070b22f9acc4d85717357758a21c2f306288150a9ea135c51bacb334a8506d8fc6aa0555ce79a487f5a1fb3f14804ed9a99061e92a7244a35ca9920e6a0ba5f321e5195f6b5ecdfa810561c656942481f018ad0a6d73e53ac79e6bfe99a917d3f617b3b907452bb6e088c516144eef5b6728d6ea81c84988dda2cbd8b5b3e0ea17836911444746d80c98c4023ccb70896730af59b07cc576e3dd1d0b4a2b91cf41ea9212b17e09289d8afca607358b8b405321cd5bd7ef36cec6f20b1cc5e369b72794bed61aafdf10036fa4c804bab90548f02314f8f16ffd1475dcb7165cab18e0e5375de26b3d3b8cde047614c082b30be7798a8253edbc75c36237cd282aa625561f169a5d8f4a94176f2c3f79dc6bd19cc8d8d4b07af241566a95d7e11dcdfff0e1b84859a7d898750011f4aa43d9b884b02b59bbbd70a9070c62425c96aeedb0e9a1dc120abbcf2bf4487f2d31c3abc0b25809f85944d9e1e1c5428a58ef126b9034dc33125975d2ed46800c0ab43acda05499dde7360295d192d6", + "0cbf87caed2743711181783790eb0246763047b4846d61d1eee86b58b6f59bcf105c68519409f2f075507b04070b9301343b48410c5279bedde009647e4f151f7d9eb1148a13b98e59f0fb5e0ad849f309f50ba67b855b9ceb3764f688dda86d78fb7ff307ce5196962bc16aec6b0f8c47538f31058ad2767cf3447abad406e449ff3c4d86e937adb9ff43a5df620d79717e5d62afd8e8cb274cf43eca5c70728b9e482057806ecb4dad2036f5dacb21214a7feee2eafd2f3444c674fc404895cc", + "131ee953a6ada4c0e54ad890c5acc7c50c94a959bf3fe94c278ec99999ee08013f912dc3736cf30c6c11406015a99ce8cec247c8f174587a13ce0a5fb559b43e35cca6b73f4626a72f9e6f177beb29d01fffada8ad7eb2ce449bf2efe128b03bcc7b3ad57440921ffe699fe20d7f846255f17bc161c3da26cc08de4e28fa84eff21636ed3c6d403f7e3fa0b4198ab140c37eaadb49cb6802795450115c22edeb3633b71ca0bf68aad4e7947aaba2206ce70a1fbf7a5ac012990c146efc22e2b9580b406dac38e588e3a8", + "072b85eb232e6d419f0ed7d20339eedb2b40d8f89908eae8f3daa5a9dad1acc26702cd5f74d465ee8470f30df8969e75cbfb76f11169204410437b42c957b1ef6c0ad640b5529b7811814c4e88c97b1ebb5b1cf28750fa2bc0c322120baff4758c64bbc4895fe34bf2a75cc8930d1ba347f2d5b51ab878427a8facad317adc60458fa5065e07e9eddeaefdc171c5b4aab6e01cdd3798e50560127d48ea5dc8f525b930591a1f3c5365491f8f654545f2ff726c1519f0cecabf5a09da48f8fb60f6" + }, + { /* i=3039 cDividendBits=383 cDivisorBits=19 */ + "023926b8af3f088016832b839a48ef2ce6ced1238f8679535ecb4ba4f65d8b3dd302caef39204b0afa4b415b90e64230", + "03417a", + "aed02f2a56ed95513de942d2f55dcee37bf9def5052262080386e75040528b0f494c863984ba2c552dfe991e67", + "9e1a" + }, + { /* i=3040 cDividendBits=3409 cDivisorBits=1443 */ + "c3461bd9478ed75763b68fd23ec28a6d63945c69301551fd627d39d6b2d92539400f1b7efab90e9fb439640a674fb95e6f2093900568f119ed9f6f64a088d55d3e0f802ac979ce2712a62b29711d2b8c6019a2cb869f7bcfad46464d663e6175ba56ad680870cf84baf30b626f5aa38eeb77fda51ea0835b26a34df521221fe33eb62ec61de5ec1a5558cc9aba31b34420d014fdf2dec518f922f3051f31c47b68612247a47a0a5f7e62bf60703f6c3cc5d9c12b815aa2c3d18c768b972477347f7f56ae6ded738f6e0616ecafa4ca8a0865c96695e542cf2b26ece90cc30382accfabbf8f3d09d17c78544c6fb2f8f864c3780203c506bda65c622eda396ecc4cdbdffd556e14f356590928ffb2f4d10c8cfa2b0384deb63f6b14fe2757550d799dac829e93b4023d849475f0e2a145865eff51e79aecc1de13836473a5eaddcab3035ec0d0299ec7f106a4f0c177742787064971bac57aa86ac7448e23f4ffec55e84c717c804b9309e6053a918d94761cae598e6ec0dc0ef0f513f45acfab14aec0a21ed431a9bb6906693def2699dfbfa55abd26df8860c398f279338cc33371ae1eced50d9c9008", + "0587c29292a1df0c0de0e018df8eeb3e5aff9d87f0ac1b7b1e7947d934b3d614685456685727a823c447f561d549800dcc538784964e0b01a8d6183275c91095349730589b750788aa31641c455a922e9c22cf71c9691468ced0136082a16b7faece6da5c8acdee4e2155f788f93616c6461deaea8dd1b8d893f4e8340f1d05166bd5578627707d156a501faa627169947a660a122af72e69164bb703bff2a041ef5a43d1bfde4b2ee595012ffad0692902e365798", + "234f4aa30ea1d7c760b26ee6319cc4c44d6bb10cae2cd97a85498d77c9f535adf0efa05a21f17912483aa1254af3580d81af5d133c80281e95ba31e42d72bd715a13f9566b109beb7545bdbad310297624126a86374b87018b5b8c18393782582f061a469eef949310f13bab143a9bb3ca12fde11d35c3b989cb97c4795f710fb8cc2ea70cf68fc7dd877ba74be362a5a427fe2052bcb3a7c96d068e4813127e7ea5d0c428295cfc547e7044d43fe55ced401c83038a367bd6528a0eb173d2fe0e88a7eb105981fc1c4116fc190143cf0b5dc3534075c8fd31ab0041d263452b55690f64c0d90f9b728d6a46dcea972e4d750b88e8eb", + "013b8f810ecf612e0e2c75467a02fefe72d1f109fc667810f5643b04fdeeac1ef2fe03f805cfc339ed46184b3178e5009bdbc917a20878ea549b9c5c3040859f7c8c9da68124f2dd5ad43f6d067ffb64418e24bfbf56d57113611b25d5e834bbf2d1fec647973fb5334a313bf6ff13fbc5756f32f12c0cb3fa06f43e71a4c46c5de1939a672f14b39fcb241d39bc955ee515e69705be4bab40e9d99ea61eeb0c0c54a7fea6ac97d53ba70373fbf92ff77f51986780" + }, + { /* i=3041 cDividendBits=2455 cDivisorBits=1992 */ + "07f419a545586f369445b1f6263fc5bc3ec0b70b229c512b0697cc1d6665a7b859812d549b8cce8f45fa52f33d90f88123a76ecb85df6ab8d61a077c40c64ba9dc0ddae71a3c3658be00bff6fa466cb4e5bca53de51478b0df9ab246d172d1d0c5f1c3c80ae714134cad97fc54f16f9d0b609bc8ef03a795cfe515ed56ca743a40bfca5ea2c89fdef3b387d4e4a50ad01afff930ce05a149d4b7e315f64776bedbd74d6975441ae480fc5a07baf8b087e34c7952e0d8361d762637e2de40c1bcc703ade875d3b22a657eece0cac4058439b1771e611510c9837327beba13754fb5d40126fd3787606eb1d2ac9f44370ad3c04f5b4d3a2b65027496362cd63655f230f7df690b2674075debebe7fd18faa8acc90a9a133f74ad98ccacdc010518a7e8b3f45044dba806e5708314fe3be9207f1c", + "1d69fc8b671b8f951b9c4d29cae8ab0aa5d6eeeea3f9914ee339af17fe0257e1d18e2fc808f6e76a704110c63f58bea93d1bebf192e553325d9c6f37327a29ef80ba8a7ae2345c13eb8629c6d09dcc307462bc67d0ac22d793f7ba6ba311c9d17e1bb933629e594b38cdab45650a1ed4b25168fe900f1e917c7436b526f880ceca788e7b32adbbd1b8907dd40d56a616b90720b183501fde4723e4ac65d43db9fe37fc077e902040f19200a54ae9144dd6fd0037a389bfe93c23b3d0493bdd2511bc3c08ff2340aa3ec17516a4f72663142c377f33df883ada79773e5774e11f76296677bbd668e5e1f8086840b88f43d1b7fd282e35e4ea3a", + "4538dcffa0a413d7f2867d312106be65d14aa65f92e06ca59375d0a7af5ad7ee4997cb19dc591155df66c0f15aa7d137e9e00752d7002d0a2bff", + "2b7a7a4a2808ce277fcfb3fddab6089fbcf53aca8b5fda2456d781f4e2a08da70634aac813fccadadc89db9d32a1771fa6d2e923f95f1988966c413e09d0772badd6e124c5299ceb67d84b849c2a0e8bc78d8f6d6c0ec9bf3876739fc7a12a32ee07aa86bb36c93dfa89fc080f548d945ca1ffb439a979b2f700ebf5a95b39613f5e30501399ba53981129bcd43666eb7fea8066970d88796f9267be925d34eb4fa33e822b33398e958d911c13777c6638b0263909f79e3d06e6061b2f2b279c7a8e5870ffd2d99d440cdbfe284575882a9fce1d3445c9e92323c017e096c9ac3c8d7ec04cc04206da014d6f506e5bf1299827096e7f7156" + }, + { /* i=3042 cDividendBits=863 cDivisorBits=807 */ + "60334bd644d726125e0f2c069e0580466dc4fd5368656d0612dc6af16eb82c46a9d41a5d635f951e1d9687ce7ff98a5cc603a768edbd12c2ba0c6020daa3fe0cda41fcc56a3fd95f9c280e91db14fd9f9ce8b4e1a6c158c73285a015672844d4b6ca197bd4669c8467f16a76", + "7230b86eef8f3e92128b5db08513cfc1e4a42fd2b313d51cd2bafeb14154f5b934f4e6e90bfe9eeda6dc6f277503acd58eaffb39206777cff8a3fbf18f0d6e1da9c92e9915d0b5d3e44e45f033edab4d62499cb6aa9422f18560784fc03466f9a6b7adb95f", + "d7ab3b2e5a50b0", + "1fb4115744f2873cee2f6e723bdfed8659de44e2271c8b27653248108327fa8cce1188215d0fed3303f1264941541ef1e0c925559787d6e27731117e88c61e28bd7becdfb68a5a3bdcfa15b157cca0f0ac6cb69a9d30033b93b0a81ee3d753e838992e4926" + }, + { /* i=3043 cDividendBits=2948 cDivisorBits=1023 */ + "0160131d318ca921930b7a84ec70c578a43e9a7b5f5d0ff72733d6eb33a0ef96338e54b2fb64c19597d1644f2c47ea9b19b130f32f5e382cf7a4b24fbbb41265c5ab8340c3b2d25aeb458dc6c430f938a59492efa3e6ceec5c76eaaba44e22e4c35ea4b082f462ad14fadefb8a8fccaf86985c9bd58caad7fb20d83f5ef97e6492bbbf23daacd2d53011da76d7082bcb4722dd895ecf5105a49635e67c0ecf62b60061ae0125d8902133787d81737aa04bfabd090c8906db576696a2434bf2e1552c7d95971040b1627d0b6b9f81471e1871d67ad4ebb33d69e7500fb9dae8088c09d54855a0f5508ba33967fb556aa63bf6fb71369f016ff1829262b0d99092779714612451f4aa55d9c08801cdf2f7e4d14c45e45dbc27d620aa03a0b3aaac2e537da0b90b1dbd63f696da9ee61417147c383099ab20208ec02f61359a0c1cdf2695f5b40ae172437151c279aba2cc41b51180496af44d8fafe29a6f1cfd162b33c3f9eb5adb430dfc9b6f5785d65997", + "3c2e4c4876899d03378421cd51bd2305589a7a4430067c3f45fbfe153416d3f51361f43cb7b4a7b8213b193056e0de0a793ef2edcca8b5e877df9092c02a23318d2e734dbd3e9b2eb7d8c70975d27b2194f72da47c20b617fc874a5faf4f2573749468990d747d493b626b28bbd1af89272223cbc48856538dfe02d2bef204f2", + "05d9abc47d19dd2609d58c03a9ef06b92dcead8f41fc5cd26d20c284e706051b9f99bc70520f5fc9971d718e9f16be0f9073bd21098d6d83b27123c3e19c2a265a55b6871573b9d71a1b3dd4f2f9f9e9d2d486ed9c02b7b3edf84181d50526cfda02937c4a8545f19049d48fe00079c25abbc5a67f81e20b3d76cecb45e9ae87ce7d986761c022f351fce3917fe2afbed0bcd4fc55f912110334180795979150f1eb824d1a26fbd2d5a53996bab5a0b0ab4e1212d96a74c1b9247a92765f3e82a5796105f5566868657188b1c3c31c4089ce979017231d744575a8044c5ecd683a1cd11d1ea8570cf963e0cd52146ece54", + "0d63beed920d5d6dc3347168486984258e3f90a236ad788f470f1484c633b1641ec1135b3715b51ff7b6a1a7076c1a4a7a331c1179d93fdde9421145f9fcf6581e5d68383a005633afd537f9394bbd7e3338a27dda03ce80d219c4f7604bcdad03fce59b6de6a9231b64e265ba277b7f0968cafa1dea5a8a704898a51675fe2f" + }, + { /* i=3044 cDividendBits=2316 cDivisorBits=1603 */ + "02dde4af887691d29ec3121a6ffa381b8379efafa268f37b6ae878dc23673579f308c4aa97260355986f7f31ea1043bf2dd1d4d039343ecbcabdf3a8f196c533e965a0d9c5895af075d0a0d85d187288099580e919ded50b6af06c66b0bce764d93d61107dfa9f0fb77dc166b26c7f46f2edf5579f2a9a9f7f000367185548fa34adb93e8b14cdfd3d6263bcfd0fdd05251ff1eda584df096439149f1355c836d68e6dac92e98b270a50767440e5cf5fa2d3ff49151c26217c01639f1325bea3ec9473a13783a962d7f17947fe720c6982eb8c6c663f96d1ffe7fe1aa45a0e5e24f8a59f031b79ed73482d64e7c9588e76c165fe94852faba0a7a06181c5e63c663c4296e4c28d6db9137768a2387362c56a0361fe1a0b277412f50bdd12fb43558e", + "02e462ecbe2e60e01dea73f44b8962907592729ec56692500ccc8d5e048ab202c415c305356c270efbf904ece77301800de7872731cf259b3eeda515eb8440fefea2ba0084c47a1c6413993cfc8be6b538d2ca24fc45348048f3fc5f59dfb952613bb192dbf14b404c4a972163973ee424ee701e91a6656c3a7f59580713c70b08da46f1c94d68504492af69396d2a4f4e55f008cc281112aa8b968c198cb874adb35ca6bb4735412d33f657985c6abc435edc1ea7357d05bf261d9990bf0bbf71e3e02365bf4f0e78", + "fdc1415823b263824b1d58c1d96a9fc885bebe3d80266d6e29c1c99f9ae2d506e7b375eb8a88f8f391112d01a2c71df12a74dd35134f4d85f175536d3672844e396a7542997dee374caab9aabb46411ca3500ccf5f852fb8c1", + "3ad7faec5ad77a310d62123f977db8ac667d0217e4d83bc5a2426b5c17fedebf2a27876ed1521fb38a16f7ac85a3d29ab199e622437caebc64d7553d5b03d5cbfe490c5832b29d15e44fbbcfb37f5198a37f5653e28b6086c77b894428b261b3b6f66dda3d9b186b2b2e76ea9afac84d9faf694506407f3b8ca335946cc18d26f20c0b0dd709ffac22bfb7693b662b3230c473504797514e69f2d33ce64029998bf2c6665f6ac182069accbbf74300cd79141aab71df455dd859078f0da88fcd9ae4734cee3b2d16" + }, + { /* i=3045 cDividendBits=1765 cDivisorBits=612 */ + "0591bbe7a13fa42a8a3dd5278e063e42f78964a03c826121a8ebcb0e7006a0e983d0ecc66d932d76aa2a3f7e016127991f4c8d1aa4b01661bdceddc1eb7331867ac9cc15687389d6f765f267deb7dc3458f6c9353d5bfb81905f65296159e613e33eed75d2f5371bea6c977a9450b3579f4290e9c95756580f3bee3dd4ba0fb1e7b34955144bda2398617cc96e7f4bab270c1807570cc208ee0f77985ac43c27067087de76a7337e866e227e412efce23c65d5cdb6304f93b193d52a9c56f20dfd9b790058e6c59c33d71a0144c53eb52890adf6b5112a4a1d347a39f3", + "09546e621be061953f102ac25b3ca8fa843395a7e5b55d744fb7831b8cec1c274f520b9c321385d4e78a80dcaf667acda5b0aa63f029b933ac4033a3556d4d3d0f14caa8719138febdc46cb0b6", + "98d09e2b64d30e6169538fa71754130ef9155409880e2366c771264754a2e40d8d968670a114f564d144b45eb6e3c77babb2ea514c4616090fc89bb85900bd5a85dc6d584bd3903ce13e75cff2c4d62ce656398e74cfdd606ba091a208e25adf9cf0fc3ea2df674d7946a5b470286f85ad87bb61319698b3f58d8095c1ac8bc84b124413bc24f63ee5afece86cf7d1fc", + "05191418eea479464289e2b62974dc85a9e50011a9f473a0239fd18244e26ab75b98421b7bc87f2ec9507c6919237524f06a2692339a156056a9b3a79b1f3a2dd5a62e4862ed4e4d97d59db0cb" + }, + { /* i=3046 cDividendBits=2738 cDivisorBits=908 */ + "01b8e317e44ddc34e62d1017d0026ec0a30a894aa2985ba66ad519ed2099db7c9f8b8bc9ea5e366efce7717290d5dfe1cb679e7df44e46e28a77050bc3b2613ef8d395efc7ad6fd9c85219ad324a7f143b4482425c1707121979d5fecd263eea2aa35947d67650780fbdd46299a0a3ff27e987b6bba49988f5203bd5ab5c57ef7c244c7fd995a173dd27290428b9327f6f8dac07cd77cc762f7b0fbb887c82a1ed7139ee342f564668987db25ddccd7d96c6938be94244dd23ab9060f905101ff3cdcad4dd5be0503d8eed19c7077a1a8f10410fa4a804d7810a44233e8edaaafd1cf3c3c691c289afb739fa78d308c8ba2836eb99f2f7f21dd1ae42b350de012e3cc4737cea816054099bad9aa6b4c7ca5eb60d23d37aee4598bea08b677dcb577f55007703525f82ede3166fdffe1761aa784148feee95880fc71a879e11157c5dd1ca619543fcf409f1c2fc56ebae08d1fb28991915", + "08eeb7ffb1bf79a2a028ae1ffa298ecbc62aae482dc557bd0de9b184ca16b59213148910dfbb6e339d46cb1e811b5b64143cdaa7595e7c17082d6305401f2a8d8b0821f423c3a54a94ea128c1974da0d18b9f60f4d333a7d26f14e4e2ccce4389e2ec4d4871b6a00bebc45b1bd51ea86d236", + "315b8fce481c8e1f4f2c7fb9302a0471b9fe43c48226c04b1c6333db03fe92d685327476a3765e3e4ba36a1c94f0616bbeeea9f71a0920548c787f66922c0461407f2b0819a8a5ec2d1ccb131041787a70dec0aaa09036332d06dc2f2f4ecac911a9a78f21cb26de69b3ecbf74eb067825e6711951ac99908b14694844f8d983569eb5382dcba5b4063d671b2c784896d3f4d44cc4e09ba41272355329a21533e08e9b9c1df50e17cc00ff575e646a3822e0119f03cd1b09073625d1c27fff856400e61d067e2d19710f5b0e156f0bdabad61e94444cf00297d697b5671517a739cfefa80e", + "07b830332e7de57419c9a5984a3558093efb7f26a2b964db0610397d763fc44f6f1c7114c9bdde0a86acc5f3e174b80f5920b484cf5b44e9bf0c8a1e32df47b68958cbd8f49b3205d92ebb92603175be48e2c7e1ac44c055c21e504e3eb26c2b477d6f9c6d332941178dc1f5b5b9f0dc2a21" + }, + { /* i=3047 cDividendBits=3132 cDivisorBits=2242 */ + "06cce6887820fafe50a68ae0f739292494211285b1b54257156f80fab5064bc3683b015b94b8a35f02df3d6744493d7c8d070dae8d6c09710633c77c351d7b91f7d9035379e8fff1a2d724dc3d719d6bf943473c548c142a97d93d4563455c78a7d1708368acd4c374238e2ed412a33b23037c45c341dd7710e41aceb5b715fd35c57d546cf9d5e5f2db3feedb6ad27749ddc7dcf00921a6eeba4aea4bf88f41da50f20ae3ad9e70c0c99d5f4f6ff45f1fafd7c070da04520fa2cf4b11fdaf4f2daaad51ad90c89df573fc69834d17dba3eb15a137021d084554773b4ba78eb8d40561456e31242196b35080c2295dfa569ec257de90ff56e4e15df06d24869ded5f8b468953635e45fbe0ec514e9b2f1c2facdf40b17c72bdb4a4e747f15163a39eecdf606b57b0ec08bac20fa7b741d2f869690888a6f913231862171010115a9031cbc921810b5fb8a400aa01dfd9adb9ce30d1e6f8681da656219159b87c4468e022f0312643c3eaf8644705fd83df26d2b3ffcf2413b208b55f3ee072fe8ccd34968c002b34", + "03f1400628544e12f5fb551f04e3f9c057c8e10e0b2ab2d490c4885c51712b0055add06f53d338a205218fa23e407f06b0739940c76a5cb49af3972e3fa20b0769b392300869dfae4ffd5065076fab5983b64abda6425d7a18fb7180b00b2d21683f299a8f47482e39179f2de6048db76fadb986f358afbf3c491341113a5a5fa61ff670e35d01d6d34bf1f4f71bf02c9bb0d08201b2d81e0021776f984997527afad1c73d7f5e7533f06235943c4795958d8c97ed2c37286358d6e95cbfd22437a19517033c2575fab1b9221389a9575d72620e0a72217081803b8ff8924ddb9e45af0f7fd6cdd5ae1e22725e2595e911e49fe4c1fcfbaf019b5cfe5d09450091ab44102a0d4ebe61e106fee62c09f566e89d8f67f9d2fdad", + "01b995f87a86e4c61f70b13c4ffe39b031949e56759e9a45f271da4803331840eca2a51fad210ea3513755ffb60a8392fd24312c071bc95029ede945c00338d5c3527f147a74232e55b8bbf6453a0e41332fc8b2e1edd77cfdc7fb2f9a0b605283b52b94a3962194d9ac6781806bdb28", + "bf3b448789c511d71f1b552334a0f8c144eeef8e7ae6b51c6d06285fdf2204315f3f185153c7bea6832525a352e4eb2f196535435b524f64e5554fda2f97203750f0d134354243737d746eee074dad8963f900adc8bb95b4cc4d8c8a3ce673f6c93dc00def8227bab3f63dd6e11fb393ad0c536e7165804b9fac734b953a757772be90f3b15613f482a893ab39173fe822e8f083d08622cb1363eb29b5bb923ed24831f136148c5c70845ecac3f1b0b9aedcb52a25927231a9f033b75f3d1c114eb70e1c98e4942ca96b01164902644da6f8885f78c0b4c103b9b11f3e991397b264d2af47e12c9e836c30899d6379ca7a03a72e07b0cfa1010c54afb8d78a076c27be6ac0ae29e8d71cee864e4d4fa5a083806c7cb6892c" + }, + { /* i=3048 cDividendBits=1941 cDivisorBits=1936 */ + "0e770ac2325df8f22573dbea9a3a5ce5edc29443324a31ed6089ee4abe2fc0d92cf9aa629667643c0ae9f6606f5edd69af2b680a2565b9d4d7e60e726403e47ec10b46d355dea169760c989f14c795a6718dc6ee4e3d64e7ce2a24a9461631fa1f9206a7ffed96fb247080484e5a5eb42fe0ca60b573942df6b1d6550c480b427d0a75f7c221109abc6e82463957bfeb330bb61dc1c550c2e051b5cf95c512cb397434b9c514341c61eebc2f81af13adcb44219c6e83fb6ce1417b304cd04d3729370ea8ec3b8f8fa36dbdfde05dc5c3106c62cb1fd1157267716b4874c7a1ddbe3042caf3b23ae49652cc19163643b474547f", + "a6d3b12e3def47313552895f869de75fd7c3aea6ebbf6d8868afface440a18bf6251714ca6d3a767caed38e0db5f7514cfa835c03461001278f733c403a26767242e5eaada8372cfe4e54c03ea1598d9e196613c4b7c715b75d72ee0435794f477a7e817a651c16c739b34bbfaed2d301b1d8dc8d5e44fc74cadd39340f97612b85cd0a87f537f091da3d4a7c831a0cb0127301dae92074f06129afbeea419c055ed675edab5f597c9fb7592b4e28d7f3f8379bcfa066ea2ebd309d0856827ebd232c87eeb1c18cd17fdf9c8baff47a9e9e97e8205d83d562f4c1c42e880df99a3590948b681046099fddeb7d10c048b326a", + "16", + "20d988390b68d3eadec41c64a8cb03b137c340da07be83a78acebd0456e2b8ba86aaa6001133d91f79937d1c84a959e552f36ba0e563d34180cfff8bb3ef9be3ef4ab0a717558b9860e416bea9ba83b82ada931fc0b329f209a6a2004cab2d1d4998b5f7a2905bd28129c026c9fcd20d8c40317311f552d61ae62664b29b1ce1327c09472fe3aff3e26dffce237c19c0f257fb34c4c42215cc1c7def42f894b211cdd79e48910156932014e6239b84dbced52631076deae0fd5858615959c8e526b16e0407256e035dea86a04bd59a765251ebf350802cff60e0dab4cc8ea68a269bfeb40324844916faf54a3f3b507dff63" + }, + { /* i=3049 cDividendBits=604 cDivisorBits=506 */ + "0f4a9ada16a50e97f23fc82ed3dd96a7d1f415a93b5d5b917750ee31137e2c43542a62298b7ebbdad4f37040614eea6bfbc2d34bc14f515634b4549c7ea8fa21497cd18500d51f6a776bb718", + "66a39e3a2d9b9005f7b258025d2dd0d34fc842b7b3bf717184317fa0e74669af9d68a53a7f08b75565b33f4a7ba7338abcd8181dc2cabcc135e7bd06dd4842", + "2623b61034e394cf8b7c12b2d7", + "4e04dd15ceafeede4f007b202f610088ec98b6a0fab8f504fa754e5853e3aa1f43ee9064c0d81cf0963bc5c552f8e251f2541977a9f4057314cc7ecab223aa" + }, + { /* i=3050 cDividendBits=8 cDivisorBits=1 */ + "28", + "01", + "28", + "00" + }, + { /* i=3051 cDividendBits=1734 cDivisorBits=1683 */ + "0b27e9bec30e1053385a03f0b3fb66e724e415e8f47480c75d6c24fa706111926835690ee75acfb31697346af06c67cb4c7cf49e613818b310c90cb0a3451f1d27cc5c5d579584cec7aef4778bbea479d719c98f44c5a7f8b0649861dea93f321a8b011a1779f7bd695eaae9eedf43c101077a2cfe190919e02a303f71da84ddb91e18da7c2dd65739b5f385836cad5c2b656ddf5fd828dc0b6575d3f397cdfc5081de79309d0f91c69dffb92b6201b39727fba5bcdf76aa2600ba78b1d71266e2ed6e912e0be88937ff335eba861b2867845f3135c00c3ee2", + "010e6172882cfdb23c397e99c4f4e1b9842fdbe7638aa9235566b980e4a38b9238f1e7e1ea60e9787b1ee5a644bb625d3c81c202b490d2867bbe26df7cab4859ba322f3b9c19e92ecdaa0a3384426ba4b1874fabd809cf2e5d209373b81218ca8aaba1f9e9e60195d9b5db0cf91acb28ba77be7395374973764c6d4e5cedce32982ba1aa59c49475309acd46cc9dafa59641646b9ef54fc0b95fc3aad5561f6a69296dad17fde7c537a0909c528140a203e1d6dc78a53540a9993f0bab30d5f0fabac3052d22e0060353ecf71232525517bdef", + "0a90043854d3ca", + "ebd49305901c63ac9b455e9d5d9d49d26148b2b8e607cfee895818667fcbc9b1c094ef26e574ecbea429141798127ea5150d1e4c2249f4fd8d079276b9dbc4932c7c6a6a12fd7af60a256155e96414546332d06152e852319549495e0a4d282c4cbca9fac2813af9ad800a8deaeb6b21628f6f69945e77e6bfbf76ce18c051b6f9a91be44ef1d5224b730f18c3603d9f2f637f1b81ea790640d24ebb9a1c44d5656c9ac481f2b29bc4ffb8366070f7a29356586e96f89232b8fab398f5e677f0109e0480402999b326b9f05d1b096f58634c" + }, + { /* i=3052 cDividendBits=226 cDivisorBits=86 */ + "034c182d2385df1ecdc8930177b849b5e65330c995259b2964bb53a7d2", + "3e8928a952029533429028", + "0d7f6ece74be12a1d84d635b233afba83a24", + "05b4e6594ef6b69f0e5232" + }, + { /* i=3053 cDividendBits=1194 cDivisorBits=493 */ + "010d36e4c7515879dddeaa8fd7d655313f1e521c32bb2c604cee05d286a9492275b5d058a68676c72f0130e39e7ecb34900454959bce32baeea73566c5cbfe6b98c59d0ed7a2cffa1e15bbe6937bebcb60ed552c4e90e4371834b22c24e80b4b4d7184a3ff45090d2543cdabe0d91b56e619bdb6bc18ace1e07c14e9773986e1ae8bfed3194d4ff3efd4579e029590463c7b2f31d2c0", + "01c6ef7933a0e33acf76082d8c79110655741ac07c07cf32113a22b8a7c3c1b07545d300fad39a3b337d09efd285105c33c45303737978d8d51f505d214c", + "977dd8d8fffd8487f7391e3fedaed02b98cfa00393882d4b87aa8be3d2db6003ba3d553ed66b1a896b013381561e99ecc8e3286b90b4469886d674b128c47454222e0dcf86680a844f4aad30796ed9e0f88e8d05a20ad531", + "7f8b15c39b5fd08855f9f256cfe57f1cf9da1297c1c67856b4df177005ab25474b0ea52d32d66ff3c0aea2ec54f528d3c75f732428ec0dce6debb23734" + }, + { /* i=3054 cDividendBits=1072 cDivisorBits=28 */ + "e3101a013bf2b3d7751a56de70a4b40043900a539822c24120b4f87c259b2d8bc3a49e2dcff18c2c2feace20c9d1986237d0376aa4f82fe26eed0688d9ef407f8ca3c98c8a7d32c2241770d8811371da4f276f727efae074b7990d7d938cf301a7aef03abd9c8245bf4a71c836e553cc66721c1cc74be36c1ed566d84c5f4a9cfb0ac3cfae8a", + "0717b1ef", + "2003a56411d24b6eb7cd5952ee5b531f87495a9865b8a6cdfc6961e1f8197be1b85661cbbfca81129a3e0812ccfb1bb380308550fc1f7d7e6a66763f643e4f1a78f2199068e8483f18433edd56cb141642db87708a9c2291fd83f21e52df0b0fc3fa75a5874f77e3e25a27ef22bc724237923f348bc57e2670335522e91d8d67e5eee7", + "0236ede1" + }, + { /* i=3055 cDividendBits=916 cDivisorBits=657 */ + "06da45c765b729b9eea5ec5110a0c341abca405681c7664febf36398a418d7f3838b2c330edb4e445a9ca1992e176114309045cbfc81b3919ac6777da88c7cbf97802a43cf92c4f34792b1b4872e0e97cc3385f9d2e8746c8c507dc02c5597f1c0ea2dbf42452b9b6d973a0e3de51e6f2093c9", + "01a8ed111f3ff88801a84420aab954c5307f1d4d6b930e8fc8c2c90a5d289ce6a72be6b39c4e53c3ce6b4be3c0958288ca6f6d9b630112126175acca629f4ece856e01ec8c63108e1ffa15f8a669d75cdf8598", + "0420e00a719a9b898c44c4ccabd516a9bf7644919a99a90aef0abbd2c12d8dea0c", + "016e70ea0212b97ee1158b295e4110657883d2eeadc20c00a1e20b4b3ec4fb6b6cb61ca50d05ff389bec21fc5704a66d6730e875e4b5b53779cfd3aea7abdfaeba6414b3535026f10ee3b43c9e3af177d160a9" + }, + { /* i=3056 cDividendBits=176 cDivisorBits=24 */ + "c26ea4759ec1ca1e4da9825106593299e3cbdeaab6f3", + "e5ee33", + "d87a18654cd2606579fb672ba0200466335162", + "1e646d" + }, + { /* i=3057 cDividendBits=2131 cDivisorBits=1768 */ + "04c7215b26b7a634ffde40eb82e310ccd593f289a83c2b5088635d54d0201e1eb22e6b3c3918e5ab555f90429744bb9209a7816aeb4085321c129945556b3cd7d159f1add3a741922646d70a5b319d98a0b9bbf18d4078c9804d1804e7d3fe166ee5c184d89091f046e024f0ee97a4fc78c378d5fc9f846d4ec4434549c7c17d015f0f0b22e07dcd07ee129744a039ba2de6aa78188b26e4a98ccb5a3d67d956470563a0aa88a3193288c1d835ba6d4a468e4f01f3b6ed2035fdbd3e7af00036f2ee747bc840332437aca51b072d68df0b71b5e828288bce80b4b438b3d9fde9ff67635e8f0960282983771c487a9c3bd10e057b8c4e2e77caf91dc0b79826dcba0e4855cc8a15e6229dff", + "6c9a54596a3ae363c4c4acb236630de7d57ecf5c6a340fae753df41364d3d2464d89537f6b7cc036b13890356e363559caeb137fe9c5500b6919f2b07159db7af5bca201aee6bd86cf4edc2a012040b3e956660c400fb7ea979f8d669a1f2a7012c9e76724753d990cae198e62b4298f40192d18263609dc4bed98f7518446a33b74b822e1bef1e40d783c69cc1ef537f71054c2d916af00c420a7e154e71aa89676543c603f76856a5ab2792b73f244f447524fede78d3e9e858ed7e2547ebb42cdcf7eb9efa7f46ce90dd1fd4fba3f8b6b8d5c5d634e0158919e4df2", + "0b432d971c09597a151fe11be0fb7d447c700c344ccfca636ee2efe6439af140cdf95ad4f494e7466ec2dc270598", + "32cbc58c3bad5f6e0cb8d48246a7b309541f2c00d60b90bc7631a67e62960c5f9b0cce188d80ca70b3cb647872622028182d89619a0156d833ecc05519028c13a18023abc59527b2b39a1a1e4e8f4763fe280bed5945a6eb6a3360d508b1af280037f0d2451968755e000f51ae8a5172fe666910870b6a3e4e842fa87d7f0ba173e6f328405f1800256a32f531fd2fa52549b74894602bae093a91d7957e69a138da4b0a24f75780153373a8bd61a8678044fd5426b5430b0e545ea319bb7d54f1edacf6a7bed6281c8586274eca74917f28e5c4a37a31bb2980c09c4f" + }, + { /* i=3058 cDividendBits=2533 cDivisorBits=1001 */ + "112d06f4d7abad83fba2b1bbfce31337606ce566e00d59552f51f764cae75c7a6d40842c125de358ab9fd3a268a854b5762060c0c1a4a37aaed91a84ceb0cab7bf086ad984d653fbe01e07d4c158beaa01b574c6b742f3ef8f6b19d545d4f4ce55b782c46a955b4b6ee6fe9c69813843ae4e595964047082a708ba58379b48a71010a7cdd3a6481559b6692875803f0170f0bcf0fcf4b478e4e82f035c04aba3eff3f59912608302ab3e1957f066268c88e3026afff17d1f65c5e95ca43e79f18cb0bed7edabfc0a0216854257e7bd83e4f877fce53196281d51ffadefe61d2fb691d617caa22c901087742e38af0a5dfbab4c2481611545c8cff05e162ee8a40dff4a8f262475607744370525e1d52519427c88b7d117b2d85b132db5caa8d7bc2965b3e00105dec41287b3d4ed5fa546862fc75c5b3b6c080e5d6f51", + "01bb06170e9101e179f24af4d68bf6e60148d5d76cc458560c9da3d414d57e8c15a10122ac1f0f1a3fabc473afaa0109a542d0d203360eb212eccc674153aa289dd86585e381cc7e2943506450bc071dbbb9f0e6e6d55d81853014685b72ebf7f662e85b98d7503ffd8b0cb346b999760bcc6b843dcd31e30eee4196a76d", + "09eccf2d28b2a43a23e43842e859cccd2639cad774d8a06c40c13be157cea83305a3b5dad295f21a4ffb284acd01fd96fc05aae8ce16488f988ede12d72d32674a13f368931a0fc225b25524e3416ad597b74a017d7260cfa97a9098f3764f05dc4a38ed90e9b8c6bc86f1d3b5ec10815ccfa396ca4c17a0dfb0d57d85950a0e2d7a4f1ae8d15b60f05146be3e9c8beb8742679e83421503455b456c5815e8014d0a3ba873a6679d8470b2d99ee5da1538c3ddb8825c1f084b0f7e40eecf61dd", + "01a658aac2bb33a35643fb8a045fa16cc127adb2d16e100063c1881dbbc2040710413faa8a001890bd61b3145f1f314236ff0532048f1194c1d13376d833843ab275507a63d67744170630e0f2131581e5f5c3bccbf314b474b3ecda1b9fe193d4d3fed458d0127622eb8960fd5671f3684124ddd5b56379a7c6a2bb9938" + }, + { /* i=3059 cDividendBits=3938 cDivisorBits=1261 */ + "a26f0b7fdd35a65bc96588d7031804f11baf1fad7790bc792933b60ce8d60c4576679d87cce19d6fd7b4bcfdb3a62e5c8112dd4a2ac9cf7e58a2015e4ee0de42df6ef65ac5619f08c695915387c084df78af982305a63ce2361f796fd9927701f2ec6ce561f78cd64c3e6d7a947bf4cb20b2515adf8ab91d67c21ec5f7bea638ff8826b73ba51092578f57ad6fc6d508fab56aefe3dfaec0894e2a5feb289036c12ee87ad64d85134cd0946550ee3502c778afefab7beba8dff399309079d4c5e102ac214d09efd007d07688006d7f19df3aff9b5d5528ca4e8c0381b3c6538c6e6ed4e7b13aa824eddb0e9d46e51a419195ce0685e04112a374e690dec5f44527a6724c1fea08e899af8d77b300651076fd92b100545adbcd5b8f1120e9ff4b2e2b96211859f84232f0b429e0f7d1c42c140addc2db6a5793dc3a683b46d8f495a59c43f34f62e4388201f260bc25f2061364e79b2587b195da687ff4f02df2359d9db51198968aa8eacfca7cd9ca753803fc9ab24d06bd5888dd831c3fa98d1fcdc69a0008dcd9eddbe13822e5eaa55ccbebdc774242a4c9928ff3b1451543e50419c6824b30491a872e1ced1fa0603d82ed02fd23a033b971ad4ec4ea43c17a82968ae1d46d0fffa471f1ea2016467247d1caa45d06129943557818bcf0701d252b80ce3ca19aa17d84fb", + "07852135efcd2183b2a289df2b7fca00a6c00f4c8546e99d196990cd903119f6f849250fb5061473f11251e63d36872cd6fd81102d17202682e727f6503632c6759e0014756873aaf1e0362ac85cebab7db803135005e932a24e1f1ff591ac672e1542f36cbfda7645fb34afd11560745145420eb0cbd2b36aa2f2b4225a1b6c830d50fdd087aa7bb04a1d9057ce2a971123a8f5739abe43bd19f8d5b262", + "1599a1dd48ef4e3c04c133b3312d3e256af966e6e18bb7e3a245fbf3089d68bd9a65252cdb3b851e5d0a1c34648fb6fc51722ebedabbaf055ce1a33ab4dc30d38f146565844c2569a7a5f602aa6bfc498dea7fa295848e511c0cb5d2d8d6009ff08f3efc5f5aa1c3dc7ae8f1292a172c33845a46e3943fe90807f607cfc297e1d147f7c2801ebad89a9b79806969c7cccc7fd62dadeff1c0e2032ea26f7bf228dd921c1a7e940bc3b4463d0aae6bcaafbc45c3768f9114dabcb0114a3ccc0b930d0e52410fb8b39293388816a1ad4fd9fb79f83fdfd691404e0f0b7b4cc1ad386c43a65546a82169347f374e6e2288b533580bcefcee77154b0be78cfa83e34a45378e24bead0c37eb73ce7b752355a952d817d8239c6b6218e13fa1e783953551a600caa5e0da7b8507540dda1c159b207a1cf9696c51d5ec6a8c728b050c00d5ac1f42ac879fbe04d324b63c076a", + "0233b48fc2d5ff89722ba7dae563fdf06944b89b518e7fe725b8ce005448b5c5b91b298c6a65b5d197ce26217f6acdbcdcf57636cdd0e08c1286dab7e10baa14378742e9ac4dde9ef394eb3aafa3153573dbc1dd666168fe6b1ad38243588acd05d45515083364f69540f0f2dc6680e7df808f341b739c9be5b585a88e10cfdfaaf19edae84fba0f191bdb28fb007825d99028b45b90bd6a845c4628fa67" + }, + { /* i=3060 cDividendBits=1991 cDivisorBits=1233 */ + "5251d2fac0362be1ce36ae12d78b6b90f0fc1fbe04a8c80dca7fd890588094fcc2b9d6d5b6d1c821b46774bde71a0bbdecba46702c9386a0fe6d578f964e566cc52cf8173ecc0a5c72ee3ea550fc971bb0a81d2a90b580d68e356ba473ebf431a9f70505d205b8ea2ccd033dcdfcd958107869fa87111fbffdb8dcda6b9936e8abf480bd11a06455aaa44609485d5550b5452cd42409723a22aa73fe12bb0bfb37aac833639e1e2bde9e7ae06c88f107875efa7cfbda1d72aa91b5cc4c5010d57cc62a31a368f7764dadadef1b90656c62ee2ef08ec408adb74c77b14a57b827625e0b5a9fa7160e18549a49cf46705f18ceae1ca1c2a98f07", + "da142ab7a679ed90f7a5373b7cf52d420a6897ce5ee7d9767f41886f810a751352d8ad9ed2468d0f951592a1d65a09ef6801c2b0ec5d57b97c4308af706688ce265ad9c7b8f53ca2300e977daf24b750537dae8d63fe36cf041a848cbce5ed3d22b2174bd4a389e10546270df35d4e80c93ea86415c7d8eccaeb86e9f74c9a78e9d61f9aba17eacb0e68ae245aee5be10484b0e9478a5c837976", + "60a24db5b2f87014ee521eb925f9b2201ff1c980d1c95ebeee40739d989de48e8bbf0db786287281384a4a8c9d80e4017f92956f8fa93b0ead8b98682bdddcf05ec1a9eaff1e018bfe3c680d54e95efcc1663c6b922a3817471fc2167cd4f4", + "c66e2c98b97159aa015638648c0cee7994db706e69374a9c297b7636eacadb8652f39e0a1730b6123f8904e230a1ea4d5e64c90d00b853ef4d6d37e1914f84bdaea361c34f347716d10647df2d2efd68a3608e5c389f2cdb99bb2f1e1119ed3388123193b9ed885a9003e8677cc2a71ebc9add00606a7bc9a1f0c7c0f767b51ee2947aa3398fa75678d245055333c8a312bc250de699bb9c128f" + }, + { /* i=3061 cDividendBits=995 cDivisorBits=513 */ + "0169cb3790f90ee4acd5b16fe9e0242f4d918de958e603028bb43d068d136b62525bd25fa2ebc9bdea18ff8b281a66a37b98660e72d051147930b0247b809d6ed302c8c2adba5a1fa52e6ec6b5b9c8d641d7dc2a7795310eb4595b9449c0087af0c2cb9c93f4b0610d2d8f748de1d99c266579a1f29f831faee8047fd4", + "01d0fef67528d6f0f6acff75c57d87e7cc208a47bcafab0f6ed0ef61c8cf7787777572b4a7e9cee61adf3ec74acd2c11dffda9b23f5688886fe3113f53ec0ac0b2", + "c72ecf19061927f87b62e74a00245a6cceb143af16e760899064326fb95c04ac5d823086cf3fb8cef9e9973447efb993a9c5c00cc8f9eaac7acdb104", + "e56b21fdb967349e78e64b1f2ef8556593c571fca0f244c83a04d612360fb8887e7be1be018531f1d387fbd0ae0ae4c352037756a8b04fb98945cc22a6146b0c" + }, + { /* i=3062 cDividendBits=3418 cDivisorBits=2828 */ + "038907411423b732253a21f37a488f3748a80b4388f001bd9d1ea676643c22a028fa4ee03c25bc44922f9c54325bd975ed6ef56dbf90d0a33510e8e02e546e76b5c093f00c98281fe28ab4fa9641d2a1d283be2092f79d61be67b25899d8919857a3150b408bd5eed413b2b7aec0d1a18970e2341e27d213eac828774a44f86a18a725785b7ede0446171bb3cccc83d480ae3816f28f742f169c16b6b7036069cfcfd0c0816a49445f63c090aec435e7b1c2c70ecf2b01ac5614011772d8a5aba646767cd0443c48f65f303c1f8ad92d6343c9e5c1bceb4bc14d9ee038d4d983b2999915facee38bc3a6878c1859f08e9deb69b162f9a62f7cbc917bdaf7a36bc1607ea99fd5f1c7fb585286aae0fb7e775a3431f795785d1d69486ecfaf99eb65f05519a2cac9afb0ddfe59226f5e84c0d969232b03f89e46b6b00fcd8eb8febfbf1feefcb4e67872ab3c0aa59964258309a4db4197e48df05ebca547c78b70683bda27bdcc071c1aae3411fdbecf7c8b0b833d5ce79ca0b5f70d7fdc2b9d9f8c44d7c9905d2d6e7870eb8d35ab0ea42d4ff2fa764d6e7102956512d41e17cb25e194a22a4134d82c61167f", + "0d17b798be46b4946ed5fce934a2a4a65f8863c615a73d893c9fb9458cfb9c5c0190c6b6e75ca61dde77de12778ddc7005236078bd70c46690eb47c8666f1232527b0daa8979a9b769b082418602fb02a6567372339ebc9c6cb604fd5c6bc30d332c3733dafa4db1b634fd6f834feb04a35974e73a6da025f36629b2d10c4fd9890e92d738a2e8218da38a59c097d8bcf983b66a155ae4218478bd8d1691509b89863e69685657d219eb00988cd9b34fd959b4d4c2664a086f2154bc4f9e340f1c828a265088a1c264617fe6408288c2a7cb880291b33a72f439ac97e74183ffb88247a145120cdcf372dc950760629c8c832ff94e6130579bdc08186e4fbeb502c80401597338fe0b1822279b17e622385c0ec07b26bf03437fa8babfc084da46915c51c3fc40b6fff5145bc0bd95b8e1a18c5fc8bc8887a0e8cb454dbe5704d26ed9a12feb01292f5981df947f80af5390029b0336adafe3604f9e98df379b6f6e", + "451ffc2d91e1ea20907515e89798fb34ce8c20141dd183d8dc7bd088f361abab4139e97b059542c7e50c9bcd8c508b4f3d695e71adde1d77c094ee8a81904a9d364b3c3dfa7f2216bc14", + "0cfa11c9424e410042f73047d64221ee977dbede54a6e63e9eba4f3d6391c5c2c1f28b3d69462bcf1838ee5057f40e46f662141c143402505e97bbd9b37365b2d803cec41bab16b18cac5a2e18286548c24e41c2fa305f4ee87db2e014a4f377020d78e08692534285ac8ae2a3299951b7588b0755e45ec9fc970191666f08a62ca38bd6113b915acf2bf423a9fc4ee0fdcbd76ca7c39a8440636d87e60fb5e1edd787a858290c4be75c0627e7891b7587e381edfd8a229712a4a167aa2e856a40620682c0ac6346e7981a5e286c3715c7219657d803720ca3e0e61a4de6153480526e3973a5eb4f8b24f81982aa86f7794f1de09b841d6a039cf9b463ffcb6b37eda2ea089fd726aca95815e2fc1aab6f1b7669d7d99c30cba303824c5a71e083dfb426a937d215afe7d0fe1a7061941d62376d19bedb61b8aff09bfac03b848391f2e53abc970856f1dde3f5f3c09d3831926863f7be9dd448fae436d77ef399e7" + }, + { /* i=3063 cDividendBits=332 cDivisorBits=103 */ + "0f9ee6c4332ed63288521ba15adfa26b13ed83437b2ee8e4ac3e7bdc448ed4f19b3ea9f9381766aad974", + "71edf386dbdc778b632008e998", + "23198bd737ea7b46e1da35f5fb69b3c76529045bc3bcc405cc765b3029", + "28af47442f87a6b33e8068f01c" + }, + { /* i=3064 cDividendBits=770 cDivisorBits=73 */ + "01dd4f80f085bb3822817c2f833d4449f2c2f0b6e514f3d05fc50b95ed54f5f927c7e4f28b8925f3aacd0ad22a8df6e39d7418ab193ae837f4e918b4f03810265ff42afdd81e7681cbb177241ab092449ab089f01b484708b4f3658f0dbfa379dd", + "03dc26fdda7b0c6edb", + "7ba813878286dfd9153b57505c6426cf05fe51234cf618e93cf009814b04ba79f6ea5c8edd601f5ec30e9b5d9bc7d58645d3422e40d3cb4505fe3e0d573846c3da4fc2938242f76e56551b77c03ce271bcbe4eb5df9ea06d", + "f6000b0b65e5669e" + }, + { /* i=3065 cDividendBits=2476 cDivisorBits=2410 */ + "020c84b07a236c8b63d3934f89509a264b61d80494e5f30190121fd2b6e5555801bc6a5bfce0be08e538b61a58759425c52c5aceb8fbad83c1bf2cc4e790d7f384632c06532777686b06d05834a7347016568d6021cd10d8eb8f0c250a25484b44c9a7fcf139de8d3dcb8fbe0f224e5f634fcb88173f056ef73721231f2d709dad7d656aecbae01dd771b3838fc4a984eb67b7555b51be1d381355eb9d2906e6ccc14a3f98a6d16ad8dc76482df692ddebf5e997911b44d476b312ed7d0b4e46aca4cb741f04e140963b32956d936c600bd4af4ba7fdd425e875a28e5c9cd9086a540720d2cf59ebf7cc93dea641119cb836d57a8d64620b4287e0073c165e51b0b6902f80ed817b4a9e284860ea0dc1dced4e1014877bcc2d6a504c14eef5ec1ac8e80a802633bebf684484173fce9f082e480c2e2b", + "012f6083ffb79c5ba650472b3d377f71a8664e9c3242eb66c62dae1f2f83fedc06767b0accfabe05d4439b3a7b52e281e4afa32f1a2f7f181a2a973a9373e89ad0e2ffcaa761cb9838fba771b44fe2721b7a1bba1a8f4f3392cbe5375d8e5fa7b709187913f416b47ce9bf0b39dd621bc30bc25aa3638c9a17a99951995e0841aa2b5c57245fa404005fb0f7070aec35e1a10fbf0eab9935b671346bf579a753e2f02bd27a6506ff4d84419f7db031b016b49467ebee050b6973bbfa5318695ae4b99c97f4e8506d6a3cd3ff26196e8b533c8c9964335bfdcf12368acf06de91629a10be8121b027ba216f4211b319fdabc1adc4c0378972867de735110df54076d1222b6f216b298e648780600432d3493d6b6c8c280348450ade605fc67ba78414fd9d9200051b56e115c35c28", + "01ba9b4e974c4f4f18", + "5deaba23487788b63e0f17dda6a813908226d71d82f4f0e61ac673c636e29821250afc9efd3cd155e2330f974a2e2a4b1a78cd4e6f5250703e3b29d931372e11502473542556ddd7cf9bb64d0d526086e5ed687c9d93ab5d62e52353af1ec94442b04652ad2a5f56c21db1089c840947f2ee4199ec8bf71904d2b4894f481454bd20f5cdc0c1a9e0e70a45defbde785862c6b8d11db209876bdc74879365b4706570f073f455e04ee4f5611b2ca68684f37ff07ec5cd7d936d3d7aa938369b94b2f46e63ef834270e82bff3f5bcc0ad3cb891901c2eb225c5bdf0b4b122f18c719effc95093a6c47675e970f1f735919c8495e5be94a3204fcc7fc4ad47e5acfb2ae12ee86f96614395d6900d64ceb5ad6175b0d7d9ac4fabea5d87756e3416d153cb666a609cc2b1fa3f3326b" + }, + { /* i=3066 cDividendBits=2590 cDivisorBits=776 */ + "13fc74cdc500dfae5a5f05e96d286722794a4f2818102ed66f30a2e06c2bcbb341e3c5fd852a0d23ee435ca4679402cd3b8261f3baef72782091388c9a4c0d5dac91fae649a80f0ce960e16414b474cbf954a4608d8032defdb47c29fbc9bc4cc360672f9f4ff47b82d62c392f487e0145a56f56c0b04e3362c6c4e1d6b2836c9538880c5e4ce0a1b85fcc527dd1fe2fa2230b104125ca1348a03ce41737052298467c7cc85a32db394bfc3c720d84a8d2662d13154835d9c6f0a611e78b97b9c7e5667adadd9673f0656a2d8d0c2882d34c7cd099f992aa8faf4a4377101011e6c5944847ad4a5f55c58996d2d355a1bb1873addac889eef4cf2cf8679cc87705db6332375f509c0e6a44190447e8f1a7833e5005736004a75ee65b7179fb94bad21f81c0c04db435b69b0e5e2b8ca00c7f7c69879b94788100d2d6b9769160654a7bc8", + "496c8a11583a794f5429277721df1448a6db5ef1dc1a72c2db10b51978aa672a49eec4282b2e434c70675377624fb6ac26f4c3a365fdb4d02e11381e263c5e426cdccbcacd471492a45208880f6cc229664300b9a680d4783e42bf5b434a82847b", + "45af0858485123476d14d9daea7d08e9087b7a62579df224d11708005764e17c4e6cca9a7f43b1847dc17febe73df256cab58979dffb70e8fe4cd4099847fa0ccb3ce4d166e4d0a3bf2888335f8e960efd694a775e749ed3477b6dbdb7ee5109b681f8707408e1a6801a478d46f9bf0f072d7dd2dfb65ab0f9499fb038444a5e879fb7fc899b5f6e350eeccf8c7d81a834c8c4374c76592310f5f6bf31bb2c936e53ba5b9b7bc542012d555dae8be8cc85051079716ed9b024436b16acec0d53de71daecd1a8279a6cefcf4e787c526f50d5874c8b1218a85d23bca9a114e7f9428b0c", + "3f2eda5e810470a8f5e4b117222e8befc162cf9cb613db2ae2fc2b48f0677f223dad0e3aeff578cf6740e9bb706343f3afc6b8d3da4384d2a1e34b93bc0e4cfce0e42f7132e1a9a6f26165e662230fe44d8184eb8122d4502ac4a471453e877d04" + }, + { /* i=3067 cDividendBits=1683 cDivisorBits=1262 */ + "07a25351239cfd3a5160e63324ae123dabd95c43b879b3d003c68bad509a427de083ddac6a192c09fece920e142d746d01db6d50fed86ffb67a310e29b94d3e74d4654422fdfbc81c8413b8b3efdca583de5f1b6dad6e3f8b510675a1649cad670e363bb4d8a3be11570030dd474a813305f02a118e414c57e45d5b038e371a92c4dcff1acd7a7effbb852a5ab787942745d463102bee3d79a9f72b089ec7905e882180675ab4e027481308a6692d091b77a6b888947b787ea287f329e58f601262729f8b15236dcaffeb89af9311412d1c7d2", + "37e5a37490fa0368913c1aa364dad81bac8cf3dc90b298521b07c3271ed9cbc3e7eaf65d531d6d37bf0867195bae200560a918814fdb2505ac21c849e33266c109c64b7c21125d9f40870e0d34f3f564b766af37135c8d93b057f70f61addc444b953dfdfb0f5aa08b46aa98eaa629a5833a39bf0e38a0a2b328cd6a1fbddb514e0b37c8b1015d4d12fd0d991b01607523414ef9f9aa4117ed26235b5134", + "22f6848a38370d084d2319c47537eebb15febc34edc7a743fb8f3f11e03434e8eee9518bbe2162aed0f7c8c6eaee8d8d468cfa6432", + "11dc542ac0715251937a902c2e69278c43cf9fbd9cdd8fe227ade8fd692927dcfc24508e9414109c8afc2dbda3acb274cc16c02d25f9b66d7c2f0991a8597c2214408137fa6480dff290a7634fd6ee3aaacaf7e0270c792f9314fb43e0b9506b2f743933a15086b68ee63be5dcfba50c4df3ca47975688f9af92a30a0a5b4e90500054fc62d815abc63ad83f54e2806da3c0428a68c310bfaa03c27b9baa" + }, + { /* i=3068 cDividendBits=1070 cDivisorBits=436 */ + "23cb24c5531cbef2a14d20ec3aab8768d351ff26eb9e3bd81ebda571989ca3f7aff4869a3904355f2411233124818325c0dbe887448a6fbf1a807830afb34b8b1ed43b933a9576ab7d127c2b9ceb6d0f8b5d1d5f5f31874979f634e320f61996f429813913d230f0a689c6b6acba872bebd25eb9a7521083d54bc3723deb1fc5235c9b15916e", + "0dd46f8f70f2af0e937fcee42bcf7888d0005f777b334d80ccc55f1601a91750c9f79075ec9c42fb073d28d80756d0183322d732b3eaee", + "029690589f82a9ca9003b365ec92211eef15629a6abc8468d639ae2387c26777d21d8bd5e5c22ef98701490e7d55ce1c02fa6dabc2cbb7388b0e9f33c16cb8dfe8cd3dbd9b2c3579ba3a277280a34298", + "054072536d7722b11e09bfe94cbebadac98090b7c101f50266a86e55c5a4d493ce5c9b67dbd24c2dbdf2edc5da3fa4a738da828826b81e" + }, + { /* i=3069 cDividendBits=2467 cDivisorBits=2015 */ + "0586f75c49f97fa1e922963791c7aeb33badad36e145dcf2b552d4ccc7f033d83ed67e3fd42d5080a209f9c00211f349ca2dcfc29b9f4238a20f3aaeb08fa5149a5daabccc381cd20814dc8d7f8176290f072a91b142273b6ce9e56cbab94e25ba97b4f9ec9762a5e690988b66060fd7f111c0e2077f9b296a59b094c3ef34372afc5cf92a8ca642058c2010dfc2b6518ed2f5848c196dd0aec8063e72a04f927f837b1c2f3a35a756dd4b06f75f5a15c98b25a4e069eb855ca31be20911d793b659ac4f195aeba4c09a5845be684feec1e81e07298fcd77fb81ad112e33304238ad5bd05b55dc3fd228f88b40beadd5e99c044b905d94d9ed50fb56f34f3eabbf1a92606eb0a38b7b575f021bcf3646af7a4678240f614e1c76ec11b9e9ae0c5b489507aa603ed9870aca06bb79c44971b97b5c8b", + "245e0102708c47450c1384e02d301589fe53dd6405d182c03089a91729ccd71fd50c5f05f4423045638fb3f6b125d2c1c1e504e0fa380facb740236362e6ad6ed0b27de8d04c8fc05d74718fa11816e0771d0f8b9491da306b6d2e719bf6df006ed912df5a3ac2f6b5b358bf4d4ec99fc96152fe62810ab2f2d74280366ffb926508910ce2e492d328bdd7a23ee3595bb3d86daba9ed232b9565bf31428c22605361e6b2da217d59321570be67ba0c45e7023522f427a4e8289112b255cd958525c392215730e130778fe238b322fe038776b70f4ba5ea72b46b461c2956d5757921e39850900375d0cd9610565b4496fa36aee1078205d00322d1dc", + "26e862b02a8a2c8501c75979bf4faf12f2e250309604c129be537c295ffebbf9f4d3f9663671215083d2003822b4b92bf7242d2ed5207c06d0", + "1f3e6897b6199f154f2c36de3048a9d6121095ca673cbc95428adc2478717a7d3c956317454a2e68b4bd0baa5caa2d862d0b1356a93982af2f01ce68641af116e78ccc9a68b44f860900625d0abfe8f78581a59101c71acad5892c452a2fe1f70aea68e611ac05afaf34ccdd0e0d339ab0da2d16b631b7473bf85c9eb22b07f6f98890ed01f35ae062da4019232b740c6bb6cd3767ad04fa484347297b294b176084d9f0db40d4d4d09c09ef58a193cd60dee4a1cfde34b530efd8f7ee37c89c27966bf9b599d9f0fe225fdc934d9e80f48c0d8297f8536e6045f6fe62129bc8c099c0f024993d2c9e6d4255890eb63a8642ad7ad17cad3735b5b1cb" + }, + { /* i=3070 cDividendBits=2869 cDivisorBits=2181 */ + "020be926912a2e1c713b5c3953230eff6189e2ff783e111d7af9c2631cf9dd1d21be63b9c5adfc3f54743e9cd9a1e02b1580d2a1e5566d6c42b8f86644640dd41e5bd362ff4f5fcacc143c47b92084450e7b5ae3acc8cd8c76bf46b16c927211d7c64416f139d2d740bf133c8bca2a43cbf628bf0cffe47404fc97c4a4a587b377a81e8cf2ea668e76cf51f4e783aed5ddb5d5d54cbf8d389d4f5460271e8eaebdb797d3b262d218ff71930f564d621164d561388dd0e69d804a78306b9dc737cf3fbbc482b8c34c3a6bb294a8393db4a59ce35a11bc4a1f355590b2c0fe2affad90799d866dba45f49a1891319bec53c38f02ccb67b30cd9abfc5563cad3e060dd3a1451e191460ce2bf42a0ef51f65b699ca7f4d50505e1c472dbfb9ecab03f43cefc1070136e1bbb144f935fe39d41a8c8c1453e572436b5c34c2017d0789f7a2ff55b4d80861c791ff16756082e20dd71f442b0f9ef2071321bd94b1362bc1738119774024", + "f181d2483db9fb0dff51a0cbbac1b4217bfb162dbf6de1b3ca3ee3697aa7ed5cc01cbd44f161010ec9e7b8177cfeb20cf6c70b40e10f68db72c7c848fb9d199d8133429c41ff368960c6a10701f2375e2c6e6b7df669dc9af1106046012bdece1daf639c130afb574f60318ce32ff8d0b74214c93b0992161393766523ccb3bf9843aa3c9b8db1ef9a11f931667b363128f69d82ddf21d4fc56565598cf6bb7a5d78e4e40c0a4498ea340c37f7796fc2a38c0f011b4d66a97d6ede2c470d82373c7b06e51ec62ca0f1c2d1b3e3367ce6b1afc71ecfc84e75fad75d1b2a22f189d50c8e71b51cc4b94834e3ee06e8d59023cf2eb16dbd738b7f7ec9972632f789e077f452d62145688c553c6620883f72", + "022b59c8ec671ea975a7687c89bc13d8ed716e965a85d4d0435673d97f1a6e24c98c0f78de67d6f036962f2a0c5d89edfbe12cb6c2370875e136d7f1e3b5f50caa169013700aceab66ef6cb8bda6a5721af23aa96cb064", + "87fe241ec01cb36819c0d5ef9aac290d7eb41aeb4f35ddd837a5816b7ec300109b1b645df0a8cb360df8e97ee6aeb3ca753f3329b5b2123b72ed89d37e8ce566e7d88e8f93204f4ae7f62df64c6f2f1f640bc7cd5688f1b6191822f0699427d7aaec43a5920fd865618252f6e7691034e556f02917b6f583c9121b93bcfa84e52336e25071c23267fbfe80f1ab2e5e5c73818fac486e0119e8eec9e30f098e4d04521592be9ab472c5d01277373132f2116d8f98e8ad28edc853395af9be9f2b8de96cbbd13daa2ba3fb273bbf2b7554034c0d9e426afad42fd0bd8060d6db8e59ad30076f7878d496feede89c4867c0310b61bfcaa828cab4916f7a258ec37d659d5399d8bb369a79f3d60db288179c" + }, + { /* i=3071 cDividendBits=1080 cDivisorBits=968 */ + "c4da3a10216b74eed1cd7bb1dec570219cfd80043307e9e4e68cbda0c92a605f1609bbcae4dfd702619cb50f5ed0a8263e57b10310af9f5fa8b6627edfb21c1eedd18eea20ff777aa3c0c8258836be3d54ad9d352b92aa65f8a720f7fbf10625cc0ed9e71973ab38767d3418d810b3776ecae953f4750812c4185a0613f965fd430f2499aa73ae", + "a85f149090c2f4a6b29522ca10e02d2dcf5c72078c590566c8801fb9c6f1df514269b499b80f6952c84185bb8d2848912e8b7169d6571b6bf1b1aafa37bd21da21bb504a4e3ac4a80985320e7dab93a91f5c43fb182dc3560ebba0623077d46e4dd3f1ffe6e71d50256575e0ae180db2963a51856ad3a7b25e", + "012b4dcf75670d2c954886c22cc9fc", + "098195d811850590bc4f7aebf41b76744129f032dc4d61736e65431797483d36bc3d7ed57331a2db710c094092f44db103d8b35df551166b756c693fa6e20236ad08da9c6818f7948ad5ee2a00ab7a2543ad32f2b76f5dfb1167539c752fa265bb4c452c9028ca86e73fc28242d65ea721c3d9969bb1631126" + }, + { /* i=3072 cDividendBits=1986 cDivisorBits=417 */ + "01125a5264595f489cd32b90215637f7f7262222f5f71ae12a144bef981faaf33a987ab37dd7f6c5563c2f8065f18dc6767bb2458f9cdf56016afbfb30e44e3f0e9d5e7dea5f391e46f691ee6313dc2c5d649a0affa74df6846017c813bc6d30deebd50867b387d62d304bc319875fd6d28e68f47d97e2b61d4c1a36b091cfde540857f2fd92c946426844533c84b9c6ccb213ae54df39c2abf1e63e6831c9ab91b7da325d9b987482d23e56aae611342b122f01fd1986d3fc730d08e8051e05183af24e05aa7cf3520927e5cdfe0b77b81c983d6c512d489fdf0b6cbbdf4890fd7853a1285a185c19dd13d385c32170d47374d8845c7f2c75", + "5fea56f3db9e555c5375f1ea105ec08030443cea754aeda6f285f27c079349b97967c818822ded4447c186215f36e83ff5b4fcba", + "02dc40bdf91381d312785a72f8fac260a7960fbeccbb9f987fc5b4ed89df899fda39c5e275fe2c53997e905fcd95faf03b8df73738d0131acde8c2198092e5a7d77d348416d1d0695cf4eed01147e86e7d528aa48ff85d5581ccb8a345625b72fb2f3cf781e6c46a4e1ea98384059cb8411ea46031710fe7a2b84d7076ef177fb5dc6b85292b9d812d01ef3b4beb536c7f14cba97d95d1d7127dff73d7048ef730119315f140fdabe83531a3d107b3547d74c0a8d255319c0cd106fc35f4e53ac26f09ef0c", + "4650b901b3b91576c40992b91df7f54764fb503d11c353ac3168ee65c047089b37b9a79390140fa16d23a3514579793b5787adbd" + }, + { /* i=3073 cDividendBits=1865 cDivisorBits=973 */ + "01acb186eb7255977a4d202093ddce20c06d0f66237756dcf8ea21949a4a44801de08c6eb6aa3dbb187c60f2cccf9157e475412d160590f3e868ce9969ad3fe39c5073c9dd5f77ecc0a6a9fdedf39155e0dcc4444d7aa4a0c9b37b4e30ca7982dbb80b6699552689d0eb01002a7598487d06c391792267fee048b8e703c46a6fb10350462af3fff2fbdce9d6996d14d54d57f4f1950f7222c9227d1ff56b0542e2a320af32a62863622f2b63d143ffb7b40a7b7e2170e7a9d7472d93f7ca4e959bcaabb72ae463ea9df1a99dcfe1f8c93f80513939f52afada56f3acf9bd5f087ad1449cc219c2b1bda3", + "1082f4055cec4f717564524d5848b1fe943542df5dbe6785571590ed994b30bfc756412c3ebfde0d5f4734f8db78b78257950ee6b31eb42c7c64a7ad0d17ce45e6299fe232c6d85eb5696682742c7f8e7c5d679ca44764816a2b11a57207f3371b138d2762d6cbdba5a5732e2017287e8947114cfe6a51c1f07b", + "19f698db71417c83c7f884a43eed8ef94c534592174aa63b57c593e559a3d0b9c0c2a65148a76ca399da63deb02e27c3866b477ace626b28cc236831d5eb7fd0ff651352ff6a507adf1543c60a1073aea27dd23b7e818738d502919158213b4ae75ef84643429ab00f68dee20991ead1", + "0a677ae3be76c5b7c776e2abfd46c3a123faa29d0d6ff75d181c015e2f85d46cd58fa72973b8ac8783b8e88a25cc297dddbb68e88c8d4876763d3af2f5cc63f7560063f1d6af2e9e58956e53e670d73a5ca05a271bcaa77cfef77f9551c8a203bd3830c7e9b004100ffb338f3f8bb4193d3aaa62c7ae34e0fb38" + }, + { /* i=3074 cDividendBits=2522 cDivisorBits=1032 */ + "447c7b1a9616da532266ce6f17503ab930c77a75e49a18d5dc18fb71a8d47ea39b97af8b6e4e85c66a4c3214047bdd3c2fd5c5a4c83b71d6f1314cecd7ba244c292cbddf5f068ed3e4d379febcc4e348aa44371ae8711f5999923294c5235fb7706d53cd9ae8083cdbd4fe8bb54393fc1c33827d7fa6b23a409c766baec5ca638785869c272c40a32e331d7732785f3d17fa2b45d998a93ffbac35e3cfcbec3e45efacd5a01c1d20a317d36df7f119d65f44ddef10ea21218b91410fd8ff4cc39d670f1dcaff8d5fef4cef5820c57cd82bc0fd71ddc72076ae960d2379dacc71a83720e6128042c10c1fe6148f36f45a1e88ae20aea063165d6b7e4025b17047663df24a6fd431168a109fddb4103c0dd69eb7f42b3e29aab1992737120cd7a291ed73b4890d83d62f47be96eb2217e74f05719043cb7ce4b27adb", + "84cdb4ef4db8ab88b19c55a9e144d7249162298fb850b61a86a5bd225c2433fa86402de83aef8b7369498823718cbcc5499327c6ba1c8465d1c25611c775266f380ceaa218313de108db93d4fcb1482c70f7ad7735a09561f54014db3668b000eac1dc1fa92d9876887a0fa85ff14cb28a5599b2d9e9fb0345ae7644729a9e0785", + "8404a6ed1067dda3b965a15afc16513ad9f81930c82a89a3a1622b9cdcd0775a8b14023728e2ef111528c77505fb7cf8eb23a6bf24d89b61a7a74a3160f814e66fe1e4c29fcbcd279fb84feceb398bff14795d879219fc97bc45034208ac4735e6a869f50b3f794be2b32ddb9dae14beae8ad7662d1fdee9e50d0db2a0564d06274ed6ddd019e8f5ef309ea5e5d16fcc417281b183f4174993c2e9c743183ec6f0c1c36a4dd62e68154135b812d76a59515fddcd417c123d2d6e", + "51c23c96b461281efc5abe5fb2cbfd006b530cf4dce17ed61062c7f530b08ba9aaee0b7f19fb351a7b493bcf2bfd170ff7340eb3b62d84f3f9513a419091586c1002dbc3aa44ff9f722833c644ba37c01d1935536fbcc706b612edc670b629350230e968737a0940f08c4bb4d46591ecb7b0fbfa3d37d41dad9646df7588c7deb5" + }, + { /* i=3075 cDividendBits=178 cDivisorBits=54 */ + "01bce3f259784bea567230a0a41d4ea113979ad83e62e5", + "26d8b983cb0513", + "0b73d6f506edcc3982cfeca54505a84d", + "2094bcc07a642e" + }, + { /* i=3076 cDividendBits=1833 cDivisorBits=926 */ + "0147fb028634969f48a119c91ac007e4a3c1d1224baa5a607f0bd62cbfc3e591c4ea61bc12a88c402a51bbba56b473a54a6445ed55ff7b5a5b8db5fa20928efdc92816104d5f434389fb98143efaf48d28c7e3eb0f488ca6183206a5adfc5188cd787002d9e66231176ae298d9c8e02bf7a03e85d858c39b979e316d5d83f434c311a505b565470c479ebe2a5b1defc09ebe423703099e270297016dee0f758b86c828ad89b12845a8443deed9c83bac5c6e84499c1abb7ec1b202163495360bc6e79aad8247ac294aac1d5dd5c64b2d21523daa7b9b605d5c896f2ce1ba489ca5d4757eaefd", + "0b270e369d2e3cc2de53d59709fe3a2fbdd2f69a0a3e8b163d653212bb6a6dc2c207152f10e4567ef7712028cb6ff0781cfe175b8d6e952963c4f1d7f5be6ce494b669646b056f97f9cca94b534bd2fe7d913ba99b2093f4fc8a19f62f8a61e97f6e65d19c0adf0503e014b585333c0368b10492", + "1d6895f8a3189d4b6d5139ef4ac72594e7c4e753d48a2ff8cdbf8f6516721279114a2682d424bfb32264f59bc35f0bc9abafb150c27136336e3a0aef97ca81d96c8bebf6478940ea52f95cfa331abe17821ccba33bb1fe7a20317ef3866e183e7502542d105b00d17ce4a47e1b32f0c91b1c", + "02e7aaa106e21310aff34dad0105d84d61b05fe4feb1c95f30f71937c80d67c483ce6a9d671b9e54b7dadbc9bea6e2e221c5bdb062f996b91ac2a90c186ce7c638c9dff67d07682b232165ecaab2035380974e3b7dce01e2a021fd9cbd9bf7d8f8d913230e1a6de615f00e8b18f047a0e004c905" + }, + { /* i=3077 cDividendBits=826 cDivisorBits=255 */ + "034eba85f637112e0d223b2bae7b4b810e949941dbcada3d7a9a1dc5ae12880196ae966503f7349a53e37ab1ffe7b8f0e5f8cda82ed454c6cdf9baa54615eebabf09e03a66c8037b3ec7b97e4a34c36662270f0639aa8726ad63d4b34b50e90ad396764467818d25", + "186bc480ba2a9e43f8e72495c31579078b55e1ba2e8c89913230f85c03b35824", + "22ac1529ed24f70634b2af2cc7e9c608d8f154ad665af3e2415c3bfff470224d0d4c2a3c55050f67897a1bd6ce538e4b1dc4f2e94d48402e51bc06e2e1817768a4e7c205b63a7058", + "101c3b226be66a324b84605df9820a2660e120ce58b48efce2d67d051b2380c5" + }, + { /* i=3078 cDividendBits=1601 cDivisorBits=285 */ + "2a52aec5e5bd7dc9bb1c0739b8379261b97e8b11de998793fbc048e85b9afb5bb652fd1f47a232c3b50b03bbd0a8200f27902e014931311254945b02156b8757ee8b6ec39462ce99c8441a995220b68764fa0f6b4966adac3e12f8c6f17c52265b9f2cdbcca8aee0b9280baeacef27dc457e0f86bcab00e9c5e7a94831d851864c633439de10a1efc9232bff2bfef5d5c02bbbb401cb163268f0a5335943098a073e8ceee36243590aa86eb3892241fdde84cd400ad4fb5f6c107278faf4b83ff7f641f790ad2f79", + "10a8b33259ce32041f4d5e6a44524038fc87c7c981d386554455c32b8133f60e3f82119e", + "028a6178c8f37dd37d65ef800ba6ea9c9d00774b2edc5e564327bf3d9d2ea3c61d0f5cfb114c180091fdccfde3d46b50ab88f8636bea04c145707c12de41205e2f77252c9289e53d755c08a8cb959133f7278a7f7a16dcb6076b39a6132433181d66305e287bfc3e3131f9b098e30d5cefff435258be6fff071a6f8ea7046371844fc537b09045fcf10d2c64df152a5d91c6d6c67d91850e89943ea81f3f055256b13c657f", + "0ff08f12083b7557551ace5988f12c83aa8a5dccdc563ff567203b40a06f3a195f2b1c17" + }, + { /* i=3079 cDividendBits=1618 cDivisorBits=778 */ + "02484a54eabd04115449ec2c4918936d11e50101bfa4815437fab30b78a97d4380068516608ab5650240c4240f287b8609160bba0d0017bad49e93119a6be6e56c775a20f8647cc5c3e7e7500473a9a049b727168cd99ce87763022c43a34b8e5cfc729c3fc3562f0db816f9655ec5a33b2618452876cf65d908d6642be89adf11eb3a1b9851ca2781796bf8f22d8c386326eaffcf1d7d23310f7bbaf79aaa1ca3eca1f6f04fea361524eddc5d8f726f949290c30088615c49549ffc331157a819e847df6a1a41a432eb67", + "02f959dae319b0656ccbefd0f8edbf02b6de42cbb122a13dc681a348d499746c48aac8f87adf1540b0bbc8def951303612800d511094f6e64662afd831c616f649a52caffda1b854a06c36d81db24e96cf69bd17120cbfd70ba8af3da550a5b76293", + "c476dfe8ea8d81ff2b652f29ec503e03fcc1fb7cce021db3cec4a9931b4527f130759b928afad429dcab29358b17dc04aeaae38e59757150b955a7359675bc79d7a8ab3ff6e74f1c810b03a4c8710328ee15aea7b7b4ff37a97390203f233d86b5f8e99785a67937ee", + "83301e019b00030fa3751b1baf3443620ef596f29dd1ace1474ccf1c20b4a7470f99466c7d99aeb2cdd707cd1d104d57c682bcc781133499852fad5099cd077d741a9d0c6c305739c4fef780793c3ce1f7206d5eb3798c727de3ccecb5440cb1bd" + }, + { /* i=3080 cDividendBits=2754 cDivisorBits=331 */ + "014cd15b9456c2a6a31ae3511599a48e7e0d3c2c0c85b3d0791799261f2447cb933da12ab37a232c2263347702c09ee0a0e9c3fb22194dc14f338a8ad92cb2d1799ccf4dad842756648cc9ea70b8124ff5a349cc417276b0320e9e60d581fe6753c2e5c5336f10230cdf998912329e6d63c735ebb8b738de668abf42b40fbf1e78336ad62f117134f33ff8b99221e80464dd2c8803fc26ae139ebf1d8623b199de2f9a10fe1fdfff5e04b8537e68dca2affecd22b43e66f19f6d076fa6d08aa84f11225b52524f8d9c0f6415ba13b997342dbfdd5aefcc80fe73fbdd75909d855b70aeaf033b50dcd093479255a49793ad09abb9588b3594484611786fca14c53df4c6b84cfaf1b7623208aa96056f4f2aeb41ce0f5f53a4351e68feea546a6fc7032b282c2514e5e2b9a9f795910b23caf75a762e737ff7f80975be2183114054b6947b0c8d69e83f20f9e26bc67a9ddc92d90b35f5a36a15", + "044b02d9114f7ce53bf1188ee8798e69a68af65873492797578ba31ebdfd7e3780f7adde572ceec66115", + "4d86856d058b87c4fbd5336f19a634d57492411749c7cdb42220ed2c0eb48ad0d6975b5b3ae7544d7b78ade5faa98b2085a8a16bec89666337287aaf9c4c3a1316e4bdf3a236317df999409649879355ab552b71f7dfd14647fa9740f2d139525b24ec86b500b021e5e2bd30d282c659317fb09e32d946b58c80170c6fbc0a83dc61a60ca545b7e42cf23ad252e1b0e2cf51ff3be415fb9868af3923da225ed71c70b063ce6063e045195ed530c923c2bdd84a707120297a68ea83fe578fe16498d3289997b1e6be3554abfde267b198c7c5cde261f22d32815c2f01f55b93c188653a8283de51f518a476d2dd9f83a7e59bc6f233a811de62becb3e5926fb646184230f4de406b4ff8d6c4446a6e7d3d3b0e13bdfdeffa8a05b2285f95159f3523b90a2b1d1d0d4a1e165c9915aff", + "02db6f0720399372c73ad110866e2f1f073bf0b516f865b08130d733d17099c1aad58e00a6a2e602542a" + }, + { /* i=3081 cDividendBits=2878 cDivisorBits=509 */ + "3846b01844bd20e4aa1319254df4278476294014912c7535392f6fc4db7ffe3252acd36439b12f003227bfa9e63a842fccd7f7c6c93b40e5c62afa999380e13c19fb915e0b0056be13a2288cbcfffd15a1b53f878a00422217b9051ad18fc6b4124df4c4e6e3a111bed7241a3396cd05d6bf3052a38e88ddc2d9ebcf3314371387df0720a8160aae973f0adf09aefbbdfb46542571411065268a8eb6d7527bd8b23e7b209dd16d73bbb86ebcbb28549b63e5db5fab001d0f8e651ce65f5ec40b9bed83ad27a7f0e9b7e62539700c644a7f72169b1234ab9a9c648c1d6566b18e43233683d183975eff064165092aeaf1d66d10d963bc77363aa862fd9548ace9d5a64432ee3c7c7a44bf8e53b58442e98725b2e5e42cda1f97a20991e79152d400d3940778515f78632f3e0aab7a03bda6de47e426965622742d99f7f7f429ee6fd3a1af22a023bfbd4af1ecbad1390dbb28460831d3b38ed57721abae8dbef9f192ebdf33d232dc", + "1bb89633428108b886fe6ed1d57b32b8516d70d83988b20a7fc196bb0bf97cd3bf88be8d3873689f9a81c85f44dde18f71296afcd5eac06abc39f969d069a93f", + "0207b3c6bdda27c83f0aa18d79cf2f517a39ede5d75fc769ad29d943e40e0e6298003c4295f85e61f946d04382b496602b7af6aa38f2636563e88cc569c1633ee9431a364ef5b1a1adba8b100ab3785f59424aec4010fa2aa224c95bf3da5cfcdf2393bc41c500bca590430540b4c1eeb8188a2d4bcd8e0f678356a735683e4577122d3927e363a57387451ba54eccabd67a847ea55408f2eeb713bda2b34cedfd1d36834805ab5c243b623c90cbf7d5e136b7597ce08149850530e6fbd35f379b75593d221c6ebfbe6cc924dd509ca42a888f3d373d7b7fbcffcdc31b65eb9e48f03c8dfd9f122bccdc017c57edbb39da74b490edb2b87bb2020e7f074b59b7473d337c9c7b25ffee2aba9790e9e77d7c8045bbd87d0839b6052b16293c9276f5b4faaf3cc787cef3", + "0fd0a5c06fd08042d8145a0145d61f3ae5bc522eceb201ba0a4a395747b78761a9463125095cec9e208293073841ae2b8a9d94261f4342ff310d40ad201cda0f" + }, + { /* i=3082 cDividendBits=224 cDivisorBits=91 */ + "bcbb827465e96f31e39d7908039c685b384e066d45b759e466913187", + "05092869cd787957e74aea95", + "257a75248030f2b594553780363654c8a6", + "02f33fdb710f50b37dd4ace9" + }, + { /* i=3083 cDividendBits=2366 cDivisorBits=875 */ + "3ed79ef72e354a8e601017e6eb61bb6c08fdd46fe6b6279c052439e80d3b0939ef114fe64df79e4fee54ffce2ec780a68a051e313078a2be9a758484a977682c94a2688bfee4704f4510601c6eaf59410510b0d5f56579cc3aa8ab437ac8f6fb1a672082cdc4443b2611220fba36213f15e2f9fc52f202ec4a1c74ab62afb45851c008949073f57f699162f892e20e7b94f103abb9bc16c4ef01fa2e531dc2311f17aaf2da526767be05aae7c163602be4d9f76f7c14be304883566b7deb0ed5dcedca6b8c1d3eb605dd55602597aec0c65d48ac5a92cf569009fade5aa9955f9a65ff7b1d6494600c8c90aa461ebabf098173a6b62052f3c32531e4861241673b4dda67bc02f16edaf5da893429ef392c7fecf0ee88aa26b554244d2969d8e986f0fb08cd4e1056", + "05c6d12d064e7223f67a84404828b077e217ca65b78bc620f02f77c794afa36b4626e4dbd63fc6d3dca6fb9ce3b753beaed726fe5dd6e428f103762fd87cdceef2e1a94aaae54152d7056236ec2d3005dcad138f40f5049fb2b55bab26d47ebb51912570f34bb73e4711efcd6404", + "0ae0f31440519a917096be3f679b2e838fa3d7710eb7832ef8aff08c43c63ce00db5b388d11d30dff2c6ced78da97e5a9a70c729003fc1fdc4ab90d51db56bed008c2c8b3d80fa6c569bf58c3a05895a58cdb207cb49580622c456f962bce176dd5172ee8db295acffb8ff847d603dd330618d0e5933fa60bba4185a66cb48dca18cef8e630e05b5eff67189762c81e1fe62698b9ccea331c2266faa64e5108640f02ea5766714585c9d47b4eb511f8d44f9dffef74b14b01a9cb8", + "05996337e265495b5e9fff2f26142508a2944fb1b58a146d039ded07ab4b7dda0bf929465dc64d224da754748ab953613aac1c1868e486ba553e45e78de893c8b618e8a670e586761cfe8981b7d49ad5fe6883eecf60464dd890e281f382ea2146394b1f6f18f1fa6c146053bd76" + }, + { /* i=3084 cDividendBits=762 cDivisorBits=571 */ + "0221eb6b7a82265493fe02d71d16cfaca4a9bde3af1841413f97730571d885b62270da5e97856e8c83b88689b6e73484705a3762838d04d981679784d6efa19568dbf9cf0478d9ddda9ad0ebb175cff0077b15f2dab2ee089db68c0b12cf35d0", + "04ecf105eb077e331af2b37052041396e928c45bddb42022aa8c8d6d467460c53fb6130760248bf99884dedfa366699f92fb0ce109d7a773d04abb296f9c193b07bb25d5e07ff1bc", + "6ed58cfa7c9be235439e4c160b13730114525587cc6e288b", + "02f93c45fe10611774ba5a7101b33954af566b22f15152ef0f105c95511852dee866fd5c6ad64548ad4283375ad30620077f0eef32754df8a9abaa82912148477f6f441680c994bc" + }, + { /* i=3085 cDividendBits=2945 cDivisorBits=1376 */ + "0151710b871e3ad1021c8326c2d40ee595a54019389a50f6f1df16450186fa6e661b3e2ab138222721bd97ae6e77c78324fa94e330ee07eb35cb6092d10977d87542719af9cd85c998aef7780ba9ec787ff821ddcf36cdbabc6e1026e770a8da085d43dae9a2bc91cf07615696c8f1287798193d6125b01343fbd4f38c3e048d9c2c489b0c9013662a56e9580b297079518197c61343bed75f49346c00a30b15b9f59a646979b41231171184852e0634d3b00a736954ab0aa6b9e34d2f528bc018f1aaa4b9ade5d37aae4d6731c3d6ff0c85e22ec66a723d7f22a9b1bbdb8fb105ba74ae050369aab6dd28fd76eac14a102353fe92903b53be0783650eb4dc861ba009cfbbac9c8783daddbe9de87ecf4b7f1f5f0da2e43831e54f8b02170bfeb88258cb9e41dea48e88b0725e1e8f89fb1c176aa33a5d68be40b99d43f60b3ce5f295a3065f2b35e1d140656cda06c8a6069fc1ea2d24f92acb57197f0e08db094c548b82e9f58aa4f22143251e3b34f7", + "c941659bc50d1d4b66d6126b572eb481f7c78bfb1909602efe2f516862a04ffaa102af0e9cd4371b665915433a10d513ed0b52a8bbcc974eb3d5a15931755e18f7662673953d029c0c4f7bfd5d3ae8b893574db3c4ad5471d859264c26184b379cf3407b831ab0b498346f40a629f4a367fd0751f9331bffb1e0af88373d55ca94f9c7f9bc770a9c125f994d60581ddadc0b62ee7c5275d6ab6536c2be36365f6c9d78d9c36765c589234305", + "01ad3b1720cdd39d0865bfe3ba8604ede070a1280b82531f2cbcae5cf9340d0ab6ea9ee01d0f8198688768cf4974a1210a73e42b16741f8da4a1352ed289a955ec19addd5dd2da72fa6225af0b166382b08c240e6741104c537137febe8f69bd70b593144ddf24a89ee7b8f1b9671ab24089af29942accdcc0a1a0658a6773a5a6b010bbfd11fa6efbdad9665822bf43ae6dbd3a99a8fab6c025689bc41318dc05b164589c15098f8c755a8f765a8a7c2aa0fe77dbf3bcd9c9834f7884b54976fe047d46f2", + "94cfe6f6274e19399cfff5ab2c7035d9bfecec466f49c823af22d67d98e6aab7a664cddf30a04962d419bc80ec5dc21686edad04bbd84ea8cc7dda45c98d06b7ea99cfb12eece4d01a21b0dbd6bd45d8626a8c1aacc0b82d0f3f221e0b4eb8e4ec3634ef8db1226f1b2289a45f789f4e0196612b3eb897458e2879e3a46f88cb168d35d97d1daa9cd3d2978765b1ddf0c4ceab8b5fa1ac7eb37515859b67280410bdc30f35a8bab009217c3d" + }, + { /* i=3086 cDividendBits=3378 cDivisorBits=471 */ + "012d81ec54348ddb82e37e15dd9aa90ab0db9777ea13dd87f1f3da32cb42620014911713572da961b5928e562e6ff1659bfca855b1b928128eae4b69a610740625522474dbe4447994138c3fb32d6e0258228bafc22b52f1f822a4a6e4aa0f5686f698afb87a8acf5f380426f45de577951be651e8331c8deffecfee4d38807cbd55411953027862b9b6627571a70da388fcb34a32074eb63df5268052030525d82fa0765942b2c2b624ee7315cb3085ef598e5e40846e2d47fac66b728f5f2d7174c6ffd21da1240bce20e9f545a1ae1a0ab05548ee07a8ad5ecd3123fabdf19ead667c1f23159751ec851026b7b5ccafe3c748ac10c10de5f7e976e0cdae876520ab53dc1188e4c6217e543f1817f96d15193a49c28ef988b08c56460fc8c3dd325e0e08e6f67edce0637217cae64a8a6aa609dad563a95f97bdf26b6b685e993b9bc5743bc056f637b91b571ea2abfd83ad2eb77dbdca87c3e20f99bbc63d5f5433ad45f8d02ea45a3a124947a321804f912b4217a9047c9188d90558350e70a6c572995fb5b0c83935025533c5b5d512357cf3bc7204a4dee4b7b5661c03c46ca27749d91b", + "7424d2e9b766bb2f00081d2a27060b77fa3c5cd7a0f27f8ec773526a592d4eef2de4dac841dd6a599462d337432c7caf0bd657c95dbd168f0a2eb3", + "02989261955d0d77e941c375c7636c74d2620a093b96e9d6f6ce20954241c64afeba2431b5e8d42a3bd7ca8c5d1d9f822016bb584205947defbd3c8fcd3db90bc03387270f14ec88177a8c137e58797b04fe2257ffd907ac287e44a64940315df977423129bbc7c902371e2a410af989eb0b61707223d837febd69523ef7dd8253e2d91bc2e64342665f642e585d56c3ab196f3398fe04eaa655ef5cb51e167d59de238e8c059341c910ebd1ddfc55babc6aa8a5223b596c3472a4cae0d24e28c4819501b2aadc003a05a8ca41301348e9a12d410b254929d1857e340604c9deb234aa6ef0d30dcaea04948c2fba2bf8b8840448e43b234eb4496513ff89ac0e08d1f65dfcc184469ee2b74a0b4d55a2a1e112444840c9a4072b2c3ea55596fa4c63e93cb4e4f8dd9c748b57c7ad6b8f7bf740c82ec8f6f3877aa73171925a0bbd8f27753a8766efcee5e6dc5f24fc8f4c8e494f1a938dab130a9e54cbbcec101deafe451d6f017ad968bb75", + "5791494380970017d0f7ebe4e903296f024eb1c41ac4637280da98d7dc91d2ba8d5a01961edaad15fbe0f45838b61216487c45d6bdd4cff3cdc04c" + }, + { /* i=3087 cDividendBits=348 cDivisorBits=277 */ + "061a3bef038d858e96d95b019d52f4d4c493cbda97cdaca50580c28501ee0f3ac4aff8fa45aee65ef964d27a", + "0f391f8f6e2383ddf85a91e9f6f69e87c5615614c23fcbb2e3439f6ae331d2c5f65b57", + "669f521041b1578c29", + "095b3b6dce4c2f570cd760eb920f7819d7690b0c1e2fee8bcdea234a6b6a63596b9d8b" + }, + { /* i=3088 cDividendBits=3786 cDivisorBits=1651 */ + "03a31b98b60821179003fad93bf2b57b6891c043fa04846e865af6983edc9a0d23adcf6e980af68d97455b6691960d3d933bc1d81110f5bd55b695a309c578faec521676d08d49eb806a8ab5d534cca0e799117412035bc425fb3385333e076c5dfdee958ab18098f45a9d201a1d85446ddc452fb2bc70417ba89da47075a1685cde69bfeb1a64e923f5ff46328040171ff76f6036cdcde971a143fe43cb05fc3e9756c39083319f64601edc322d0018395f09d1bf5c3225ad7c503dc73094612ae7562b2a59ab156459df974ba023bd79f4eabb351a2e6b7e6ece3b87bc570aea8dc5369f51996a3c93184097357082e3678de98bc71572d98ce2ccdb0195cb2ac7376d0e87d9bb1963f651b502cae5151d5419f084224b1fff081feacddf449f1a0707e9cccf6402b94c7c95d636c5e8db7ab7bcfcbad6aead8e9ffd05be6b2d2e50ef0b48555e5989ee58e6b0f25f048d906bf42a54748e81d37b8be205e3151678b0e40dd4028693d74767bedb00a77e0664658975d8d6d12bb28b19934aae5b380ba8fd229e9ded006286383b6d069cceba6049f8b1c779f302a9c65bfe2baf7bdc0fa2486fe62225cf378e1b1fd438ffd9707b5985df661d5995fb29e317f9a28defff8ded3514c0ed09e0c02cebe40e0b74f709f99340", + "04a284b7db694c74aab4fb54acc7f22d65921e849e7e267994c6ccefac3d47110e5c003a2485cb7c5ba2b0676f4cd43c6f05837a6902bfce650c04b7834efbce4725512b567bb21f33c447b736e94f5fac56e01005aa9caaad3baf16f3abac185626cffbf3da282c3978cb3c204765cb2d0bcfe696d0def22d0f24d9ffcfbb6faae0e97f1db4abee219d540addb41b20caa76b9d627659f16da1a5a7a642b732d1aed4630b91f50edf6f9939431cfbf9e79f6e605ba5a7397ae44e7c285f61166ba248c6a024378da218323c8641a8", + "c8e4aef3845e648837574948e1f9f7291592a9483689a56ea92ed0dc62350d65bc895b63381f86e0f657faf15f36501b6343f3a37d059ce38d148d47da40f54c549906779f4eb9c993fd5c5b7079ca17a427c44cbcaa39adfa049f3956652110304491192dea51df0b663ada90285d5166c1804ec51f684b3920bb22f3d7f66b8150e867456463c44da3d45efbb610f817ad0c930e384629e490911dae674aa15e0463a4a14bc8f672170dbee6130ec4521dfcc0c57fe0aec903348f43bdc35f220aa5d77879013bb52f5b4fc4fc288f55d9802ab3dd8aae196c89567a52c3d0312e73b3b5b1514c44801bc1ec6dfa0804183f9100021545ef9ebdba9ef5eeb160c7e24976c9e1d091b0f9", + "039e5dfdb460ab63768d5050190a9d63b39c6f01f1d2b79b41c76b34e41627d5967d0438132e04a0a4f228df345bf696db96643ee5514f60be59ab77721ccfe6efb817cea2619a78f0aae451d69e6d790612c2786c2f0c7fba9a5dd16c8a7c0d3fea69ded5f1489e8d9f156aa6c74696c1822d67d67898ac50df50f1fc423624a902ccaf9a258fd1a1fcc3c8301019798601de980154328d526661276b8d10108ab0c0bdd0171d120fa4dea4b6108aefc67fdefa15566a8157604b2c119179ddf2d46f0188216b8e2168722e1836d8" + }, + { /* i=3089 cDividendBits=1559 cDivisorBits=1480 */ + "10715c8c138bcbc4dbf02ed252b19acfc1d6aeaca38a910b35ce29ca0c3ed8b3d56f60e44a91a952f7007301e75a6758db18906a9d9449c7d31d7fc3f4bb53b0ffb1d05eab4cdaf6e2b55c638cb4aef1d2de00050afe8f7aae77442b5f1336c15f4090062d330dc0affc5ce40de4bf1e8bbc5bb0de6bb2540e0c2b487c76019c105035758e3e6b5b7b053f365bfe3e87e1fb460f7c61b96f1ea10164f1a265cc8735d933403ff661849932e69ba4aaede3233f67277ab5003eb5ac1ea7d32ed4647f61", + "4f24c9066d747c2cd8e70dd8ba2457cdcf8f4f159a2018374865663a194e2899d16e792adb5688ba17f9997b9b21c53b9e6d69ad65b919a39902e92773a19713a20a08e0db7c89eff1147525e9502c92021127bc397496b78fd3413f9c7ad288c8d19c20db4bc82540441e69faff9820131814c74810150fbafb35113fb909ab9e6dd45fba06a00ebc4dbc008b8069b5621fe2f2696e85eae2bd1ed513faf03ddeb70711956f63ea24fa25c31279868be3317a5ed835042668", + "352fb27886d78609caa4", + "142a25a7bdeded4b17b7ca0d76a612e8b67b9c25f9f14e5083ff7143573096565a90a9d93f21941f8d3122e6b1fd1c926930154e22b6c268a847411ec238074a1d4280e07a40311e3219e4a1efbd4cd1c7fc3b40b012869c5f26a2378a06d6982b1d20f45af20f08349fd4af947f2ad7ceb66d3fc624a97a407e760c3d40192fe129aec9f7809807bf9bc156197e2a53d866bede57d53e7d345790fe709bb3c6a02c971916d73eaa53608e60582771e31058bbbc3fcdc5d4c1" + }, + { /* i=3090 cDividendBits=2441 cDivisorBits=1068 */ + "01437699de5df9685bb449ace046f6c9fbeaea73a0f457f32c19446294ca4f8f6943181c21ae9104efcac73189c2734d9ee262d185b6ba1c982f94ed782b3764a0eed173357e153f6d701f0d7467bad62014070995467f0e1b786640f3de6a01160b2070481003c7af3cc9955f1cea09292b2783fff6d1c146a9721761ab653e45c74abe0f504765ec356a1b11e66db22ab4b1db82dabdab84b811b1a53d1ddaa2bf08415d05d62f145fac49e176ae5f3f52d5dd3acc2e4538eb0e0acd0b4cf937fc68f54312eaf6654592a02d31c25432f1a949e8c8dace9f1e7ae25afe61d358e57eeed95be7ae3145933e006f430972a7099d03f6472cb3e2ae7f3eb5b60c84deaf6b8d8d194477e6d857346716c20dfc010f64c20679351095400f0bbf7141dddda50088222c4f50cd3e1f755e61ba8d", + "0301954a72a2b640030504348e2257e423cfc7e2d4306dc7e039dbaa8f138f420dbb698bbbf861c6ff646caaa7f9bad7e04e5a04a7b6ac8fe82fa3e4a44e62bb945b80a72206011527405260b296a82b979d31dc588e56a2406c1670c7a272c63c5fc8b7bd3d6430ae13be459e68e0f78a8cf7f55753a76daaa47d8968d3ebea243fb814896f", + "6b996af48b286ae0da097e5e0ddce0a5145ab9a5572b89b43411066d4d8a3f5efabac7977affcf4bd5d2cbcfd25c2ff542c917f77c3feadf0596a095623a7519fb2714d3c89dbe773b516e6d41e7fccc9edbc33334e255732012950b0cbe4b98c9b115e64c4d48d29f89a0d20cceacc1a8de776523437b9ff024248f88662435f41ba7831d2209fa5689560cc6a22328ce4d4a675c6f85fc7ea75190c294683933fe4153244c46f2a769a988", + "017d53a95ae03f35f8b9c38a7a1e2a8add6e3409b4305954e3e93a6aff027681d05e5bfe7280968257ccf63988f0f9e1b9286499cb6765d949ae5e60bafa87ce69deb12c29bbcb613642c200371845b03504d5000468fd0d4c7010995a546b4f6e8d1e5faff9aebba2213a31dc0e5cdc1dc79408aaab902344365c6a3f546dc2a2143d377095" + }, + { /* i=3091 cDividendBits=1242 cDivisorBits=109 */ + "02eb8bf46508ef0f54dc97dd3a829d84f8361520725e4fba1689a306e056a5e1b8165a76ce87e90ce110da0126e8c56b07b898bffec6ea32b609a71d72b012c2577ea132c01fa466cbb3aef3b242ce515931faa85e90a598ceb722d594eadb6b7a58c222fa2f3bd6eb39b9b8cb3c9dec58eb3627f6e1c9154318a4cb42b3ec07edbd32e076ff44832aafffab00473681e274f9b29953125f04fb361b", + "10bced01741dd11f08d12165fc67", + "2ca963654b57bc5a12fb9df5dce6a048b36146aa5017e90999d5c44ddc898780a3f77ad13aa5d213ba3c76d69911d21fe587ebfafb8541aa0f86c0244fb72733b2b5ac7d3001d8142e4b8a4c1cf3ee427e8b8f0c25f9ef86000528bfb73cafd4d3d7f867caedf9246be32e98a686e2af8af6fccd9533603899e35e20049865239fcc20ce668552fa0bcd18c903e1", + "01023d35f7fd4d838af4a3842a94" + }, + { /* i=3092 cDividendBits=1301 cDivisorBits=844 */ + "0d9c283b3aabc0fd5b6cd38471c67755ecafcecd08a0c68b7c42671d7ace2f5b557e17a861abc3c5bd4b0586f6dff4be5788df295eabbd14f1fdaea52199b54808021089fba62911a040342ebd0cec7320f280cd45d185eda0f65e594ad578203b50126407cadac54a1bf8c01b093fd2ec7d1714e2121b04894530202c3836ed0994ba4554a70bdc311ae7a77caf0407cfa564e2c20791b129899c5c84ca0314a05839", + "0ef5aa7624a8e5c267c01f01938420bac0b788959a2ba08e2c0e19b56c230f09543ce23a7fa09304ba9eda6de65e7d3300e30a3b2e3fc929add2a471fee05b749dfffb3090e7b01bba41436d78f30dc983042f17add261f07318da495d0d82718046703556572d87dc57", + "e8e767f837f25ae6fbdb2d2421b2e7f3b5a2e11fcf5ca0259f6746a1ef8679f736923ecaf90ab52737c321b75c93a8acd1109fac4e1ee43bda", + "0b36ae8934e7607d291cf095fb2a37f07bdf04d09e416abad43b6f6296faf13ce8fc1894f679f988efd2fef5a95c2545ca56cabbfc10e9906a5e3945db200d3f89d523c9971537e3ac62448c7f7da783deab846a2f1a51d0bf033d886ecbd8c1e4cff5c01cf38faaa923" + }, + { /* i=3093 cDividendBits=2463 cDivisorBits=2292 */ + "38e1d5ce9c6cd8b36e1f22f9aa960d761e3eff4fa199a20ab38eb2d9dcec4961192bf6fed276ffaf910f7a6623b5c426ae36bebc32cca78b52e942708677e00ec9833ea3bbaddc2ba1c9f879f15accb64fe193f8e31d5aaff512e185cf87b5500278c4fdc0903e20734fbb5549c220cc8518c28484b20463161384f4ec5a7616279cf7085bb7c901957218a8d22816611f4f810dfab451ccc998ddb660f12afe73066cfe41970255b132bdbb4c2eb39a24aebf5faa7484cc8e0e4d11260b0852ef75c87a5acf1205c4dbca7fdcf5972216bee9205ec7ef30d638312219275d1e76b95bd34b07053e1af47f86086db3f6cb891081851ca8d04eff234e639abd6210104309879c0f2ce1bcca865787bb6c4001be0efbd29e1a678346c35e498ab364820dc1a809e107a8c04380b867db41b6e1ff59", + "0a88b249e49bb26b7ee2d00b597cf9004b34931dfac15684f279dcb0689e7baac82579a3cfa61721bda31cb6970c7902a3c03d8fb64461d79f4741e2ca1fc5518bb5872aad7a9e890c81431b021761fdabfa717ed950e70e4b25034b693d8ba5f828ca92c8307e7f8314a077fffa29f90f26a64f4ee8591d46c24d515c4596fc631f0b7269165a9869bafb8dee11c7e5d2f287d5d6cf2846fabd479fe7e7892ecd8651de58fa7b8e8f79e1e84c25c66c5a9f77992f4784c79be4510ac6ab00b3a49a9a9e066e2254d4eca6a710886cfd8315176aef1f8450a60a1cea1432afa7d74ce490340425495c195cbc35d3445f29bd0295ea0a0a11566fb9db0047d6a1260178de3b53b613141629f67919f21db963adeea512d5aa93f637581e7dff", + "05665e7cc31097b7871e1115a94ea4cedc6a25c17633", + "075fc5b7ce0f0a01e2d57e39441c2fb603c3f34236d87f378237a1527652ecccd64f27224c569a2a9f735d77c03ba640df37555a9e0ecd02e00b743b0f88a0640903588eee7f942922fd59124ff8ee79f18a668841ef03fd08a9cd80ef16e2c1ea43c2c04727b26171f1284f2a147304a382503c85e0cbec0f5cfe700855175ee6d185eb0963eb329be0d8f777b32e4a03b5dcf32c92cd4b318d1adf66dfb9c69bef3682944655012c78cfa761cc4beefeb0525226b33cb7737961f12cae0d73173407132ec1df9bea42d91cb715f13182546c1fb9642fdfb2dd236a457c107a8f02ef671bfde5ee5c2c0957ca35a04c9ecd13e117ec5b9eca749577cf9fab7784821b0c40506516e589502ba0cf70e0798f9055375b9579e124d4427c5b8c" + }, + { /* i=3094 cDividendBits=2817 cDivisorBits=1154 */ + "06eba0c3e59df4cc18616040fe7ed86e51b30cb247c98c7aceb085d1c80f30d8e93ede5266527a7d3422342ae243afdbeaedb96076ef8a0c6613d4b16ff74ced1125b11836a162135b0c98fee60255566b47f4e059c4f80bb9a486fd720bb12e48aa1348faa11b42b6ef8565987d4c898b00bf4ddd7d66729d060420f6a40d61e9fa5403a15e5e10b2866fc807db8f1f500c107ae7c2f4912b0205178bcd9fffb9ba88e15664f32ec53c42fe623382e2859f7a1d0c4d2019f79c319de174bd1119cea693dedc2a332d830b403ec507d6acf929ae6b08476bba33a7cf68c6da5625daec0c479efcf571ece71d176dfce0839b691251a6a8c30f88df3d94ad64cc541c5a30b7b5718217c714aed09016819f7359071d77899a63056dda54c808cc941c0ab167d601bc4da4915f847680510a19c96a2ab12549408f8dc952cd986a2a23b65b7ae97ef56483cae08ab348c86c904a00af8dfcba5d8129b7cb851294", + "0369d67796d1a637b1969534330e6d63bd1f16b8eca154c248092d94a09c9fa60c18d459ce40c3f150e89075355e3c1a6f9e7af15797f3154dfe817a563432ccd325711d8ec9d4ff45af28dce146f1bf72a0f04852daeda1eef017237fd71a172142df4f3cdf52b7b5be677de13c4ea017e0278f4b781a918c0d54495aab22c07cd74eed4f94ffec10c4bf8ed88f460fa5", + "02070462769d97cc7a3ecb53d60b676012317a4a4bf7300224e31d1879cff72c8cf98cda9e53abe01031bd91db9159a174d8678cb2d09c342486760b39598a97944df294da1e245b586786334784e97724872aeaf367d63de9caddc0d9b7dc7888160c49d2f985d94ec1513d7d55f9243093bb60a59d625e1cc65cb473111a95cde713b74869b2d66ddff2b2231f9363ebe2efcd5e999f502d076ac5a08f5591efdf1b0c1f0fbe839f46a022c9a6934e8bb31085176f9a585efd0759e3542587297129a5f3df6f489d748080ec42ad0e", + "030b7922d5c8f22a9559e973b811b9ae38200eb3f33582ea2703bea3f8d7e7c9b0fe588b226536442f07748116d2a84f93ceae84a7a6b328a46d43b8a72f725d4fde1c8d3193428baa5836c172e9aa90c7435d306bc84afcb2d42b9a4398e6add6db2634534ab4a987ad3df5765c44d72726d221c72968d21f6bd2ac99c19003dac4cc3fefa7e9e51dbcf728117893b68e" + }, + { /* i=3095 cDividendBits=1235 cDivisorBits=516 */ + "9012f24bcd0a5267ff559cde9f47122a7e67862639a90c239c6b28b9c5f8ed7c4f6b4d8f34fa19448e4e74185b9b059c861443977f61a6bff5ef0327b711776b02bb1e5829c4ac70cdbb1e9aa030442ed25ebb5764a514972762aa48487f6ff041b347ec07858765b884f36f6633532805e0c331f7f08959fb01a95f9d4d7b70ca18b7894cda929e5895db096bd1cfe390d6b798b6d4e4e0b195", + "077bf93f8ff7e574ab0b669295e92fd3d160ca8a2c8f38b73054dcdc48fecd0a61a1884fd07c5eaa76365cc1f5be15b4def1aa9de28ff5ecbceeae98d79305fee9", + "13400f88e738476a7f54b5227d7946b17131c40ed9f1098285867ba220aa2016b1f73c8d7be87b395b2a1566eece253184acf2a8eeff5cb8d2d346f4314e66edc85b475e17ce6fa3ac851583409cab276e8b6f5dc6b561fcd549", + "04b576b5cf4e0f2239dba640fb20f548d85f7d7831850cbc62e4024666d5aebe0ca488992c0c85c240809c59f787407ea84235785ed95d6b3e07af53cdc4b72424" + }, + { /* i=3096 cDividendBits=4011 cDivisorBits=3760 */ + "0692e49712624607934cfc89f53eab14ddc02a2be2eb7a67652702f5434e983dd7cf372f0e80f7fc1ea48641e8ab247e8ce42c60c09845890aa767399acad473742fd7d4079fd33c4c6db3e2efc2c8f47a8a43b2a8bec1582b16f916157807e6d7d87a4c3c3e38ac7715945e680b488117b7e13cf83a68e6860d3bc2b32e34afb0b2b49bf04d32855d0e218def32eefb48ca6970e9b84e9ca9dfec926a4bbc9c5cab10182fe41870c642315bc2b6b8dd71571c45ec444f878d85fa03b77f8066d9b5b3a77fbeba3230c86d1b0a25e6c75c8ebe44cee2f6677bc88578d99490b350ed57a77c0bb060cd8700b8c6c404aee0fc51cc65190c2c99c85e6ea19a0e92a64210c6a985a601061de943fa486e982fe4002159a408a966cb61223b498dddd76ef244c9a3287a5ddc960b7243438448028e82f4cb7e42dcc779858e70f82d264ace27df8ea1efec0a3fc25dcc2a441ca96e8b0acd6739774fa244bbfdf17b71d21fb747b1efd48e06760ac4129e1ef71012fefef1032e019b1eecb1adc68d2ce7fcb1d72c68e6f469ea6924a8ff3f94b4d8ac345bde68959557f1b9a18f496134dc7c5c83d107ad76ef140c0c8c45fe4fe2ffd4b0a2c05a9512efd5749ce0547d87149e058a1bdf93c9b33b5d226f00dcef02534c3d9ed58eda67b857cd570b7a7e8a0902583d32a691b5aad3ca24c0c718f50879", + "582ef0a18aa448a43dd4fd1a7f9df3e7fdb29ef570f11f46566c1ee46de1e185e4e6fd4e5ff019dfd293499ac8929e82100c553d20dc8a27150f06f22d1af3e266e3ab19f927d87ee8d125e5cdeacade6413edafb276fa280bc53433ed4d20532d93101aa9d9ff3fa30a469b453b89fe7af69f274a8de9d2eff15cbdaf0dbce49a1ea9881aa25f5586fe0de8ee077cf45ad258f9bcefd7247844808c22ad8b9cc0706961a29ae27bb27cfe58ce0fdd5008f4b07b56c8a29c17d5c21ddbf609bd2e91a6e4a5c74f8dfbf705c9ecdc49c5082e511f6a3985b9f931752ebe12b9f59876ab31009c42bb27a206430f9705cc207c2c51821211bfa1a033e99ebc876bb903512cd69243e6fe7ac3500f235b6f8146834187a6fab3c9966bccfa17f4fbb5ef80d97c8cc2e390d79bb065839457794645586c6a2336a19e56d7a96c7da40b08d3a53c67b7486ed0a90e1030f1ebf2f105e67cfb0860439c58f45a38216856f6c9c50be780896ead114a5cb2aa91d8f400e917c148d2adb63309436b8fa241d0386b3382c0349ff001adf90842b2d7df4c969910b31e76a6f656a9921da881cbe6b345275368e645a3e481e892ff22b3245f3bbbd50231bea911e8125635421fc79c3ffc4c30a4e64bda70c5fd5a2b254046353d", + "1315824a0bd71de701ccef7d72f4b1a43b6a2171ce771d53dbd5d769a2a5ddc4", + "389ded754ebde0345cd74a6eea81a8b296cac1756a2ac8c70cd7bbef33a064443b921cb332ec25afc908dac59f9f7bd4711588154f9546cd4ceefaa22e0f3f0150b6ad5070ef8581fcb302d344009d98024b0234313ecc6ac2b966d3964bcbe5c1d24ac7c7ab166eae6a10c085685b3de8d918959c4338003752055b22fe4de54af9aa16c77deabfc417a90d6aad5694ae12fad8aaeb39edd211a4c07d1659c69aa5cd47d1f36246fb88bdab6501eaae9cd4c8980e705c64e2fbcd789b0106529da5bad62080a17f0cd020373dc43d77f43e526084c327e69d62873baf59dfb650af30596837309480d8a5df2826b6363405b40808a07221ad952ef9cf18833f45c9cc9e45de47674503b587a234f9fa35a35193d664659bf2dab1a37fab70c4aa7fa7ac106a757a35445d02984e34c237a8a0d00eca5b17cd08282c732b6fcd9c99c7d2eaba58bfc8b9681d4ce72fb36ffc788d73ab61101466e280612e69d49620f17560c38470641e32817641fe93abddfdd817ce924f53694a2584dd07d0d8356b7b09afc260b6b451454e1821bdf6c21de97dd31180d28ab34743c9fa7d8ef40556a99bf2896c7fafb5fae83a87c691ce6fce46a2accaa8100a3821d392df06f4df154f51299a03e8d45c1cc9eaa3cf5ced9cc5" + }, + { /* i=3097 cDividendBits=2099 cDivisorBits=1092 */ + "04f532dad59ae83c1eaa6a48461f5c167711340b4bd4af1c770a79268934cf8f1895dc8f9a358a2cb179184b4e394f083ea1f84e81c974476016256b861ff012b7c0f03e6fce51ba3b010df3f29052942f504fe2d4250506bda2f4ebcf435cd6304a7c205f42e583008e1e64b06490f290320e030ff436aa5689bea37aba4406f58e4f07d3ceb202d40fba074cce79f832ee6ecc6e7cc819a67746b2033256a3cb8bb3745287f8cb78d0482ded7d871e7c3d14bd3fafbfe542aabe8e8f4de4097637e4e00ae69929f17ba80cd6c3a3b0ff551f1f32f0ed64ec059df11e2d28845e624f0cdf589cf72c46ec00b6e15cdda37621573a605b854899abc69a2587100f96d192189326", + "093f515916dc141c43fc87af70dc56f88c225385ee49a538169f3da3fa7f3ad5581b642f0464d19d56de411f85c895564946a406b75a1ef8708ac0e99a1f5d9c1a0e2b45e5f9009f4b4a28d31650f1c170921b5a535523968544bcc1aa961e643b0fd3616e45131affe8a46bd83295bab71a9f589de83914137c0402866e9b0ff66f97a7d7a831f6fb", + "89400d9b2d29bf539679122b94f8d1bbae849b0b66c1394633f41228186cdbeec5cfe729ca0d25b08e298eedf72e94a875c1d72cc5b05fdee9793082f533b7d49c2b9dafae7ffa0c7bdce4c35c1066a0bc35716c0ed751b1db91b4de3a613562b4e31bc9298be7aeb3c02725698911d45aef7ab37e5952a890c2bbe8cdcd", + "092ded0df6bf72a3427afb323b192b6162b55d3da300a591df2607aa7c9275426c4e54a90a2d7ca7297e5660d4ec7e6ccabce440dcb46e30422c949fd06c0e85ebe4675063a3c6d9fd724673da7dbf963dd43ac581c07c384ebb7de9a7e1d730a2e38c123e611ac8a645d25826f6309dd30881d2a0aa2935ceb2db29ba14a0d39593673688b2d6cd27" + }, + { /* i=3098 cDividendBits=932 cDivisorBits=441 */ + "0db1bd7806f08dd58f473777400fa9ac9ad1c350a817fe914348ca705cfdac46fecc0b8e2d325dfc702db0d856053c51c403d4ffdc1e4198dbb4c18f6c53fb2e305df5c16200b631149275e9ba112508d1eec45f46301011c744dfbd39f0f0eb30d5b32edcaf00db5205b2e0c2d63c0b8625362053", + "01665ffd22244daa424d409e923e9e1bbbc9a3d77da6b1d0c3de67e6274924f0032d29b3d7bee0ff63c354a95b24361ebceb72e1b105a03e", + "09c8466b05779d72b924580a8c1615be0ebacf2ed85e05d5b3c1f7eddbf4ab0d6c83c339e068cf32d89e7c8167615e731b039df725dde94b7069715f9df3", + "de207c99cfd1b82563d163a550b22bf62175e4e3d09402f1b59aa3c5956ff4aa045124d049078f2c1c13b1d16e7b9b6ad18f7ad496ff79" + }, + { /* i=3099 cDividendBits=1643 cDivisorBits=1371 */ + "07066c9bc8d0517ed124081d26026fc998fb02a5c1e68243bb3e7f064229ddb5f325e56a3796a031df23515157b1f933f3121e2867342091aaa9ed41bda91ea0f217302268670a662a9cc7d75ca1c68cc35c3e8fae4e6045e57d26b0bd63ad15b844f0d4571c271ceb9b4a194cbbb360b123dabb3db3258bf4b07b3890d1ab615cc5cbbf5de2e152d8eab6611b199f7cb34ae2690cc6a49dbb72b4d22ffa35a7f6ed91645ce7b9df3b0c3dc8bec1c4aaef01fbd2a7c16da662871e2eac99fb68a6d312e0a51419d21ee6278da3dd", + "c4c2431599bb280e68f001cd5f8c0d50463faa133084176a50923d2efeb773ac13e18ca5103abfe040dddb9ad4d1e892f950a5ea8047f673951727ebbcc344f5a3dac219e4482bc91c4fc85713d0f44a25791d6cbb329775812fd3b8e8b508022c23e27657f6b91a39294aca449f35237e2dff31351ba97ee806706756c371a552800c7b0d4f531d151554f155f2869b3be60fea5689135b992362c465670faa32edecc4abb94c00a19a12", + "0923e730df2263866010dfd6f27118c0ae5521401e7d1de247c89aeb0557d988171913", + "9c029f3ba24b5c99a1cf49e491f740fbeffff002b57fea0f8bd6b2bfa7e1a861293669e8e0bb309d7e874d8da5769769a858be418bb94a1140b0ce4c7d4753e9ad4593e9fc68b94a5d56852d62672fce5defd6cb696565b3e7d4a083f44e094009c23ad09813d68876410fdb9698eca286f701b361a29e4df8c90ec6f24cbbaf202d90d5a0911b7d1a40a3c7bc32ac9171bba48b742c97669b77b9dc7493fe99eff760b91f5291ebe57287" + }, + { /* i=3100 cDividendBits=1764 cDivisorBits=517 */ + "027b7741fac7aa20b1bc25add0ef81c9ab340b27e4d999cb7607d7616eb05fb2539b3f0199cedba07dce206d512a641432ddf65db50a8c33c7c817adf77aee157920b0b73dc906d2ca4b17d54482dba7f15c8db6980bfcc9f085f5e0624e8483de2802c100f2792f563aaf008393a9073342fa9b5e1d146d17a7a25698a0108f6425e255b5bf2b3530aaeabece777ea7fdd803e9a4a40b3f0a983a3c8b34754f27fbdc6c69ba3df97604674541525b25d074bfcae724fde49f023b6e33b758687d9f5a92d5717e6cd6243c8266b0f97080c94cb94305a4330ec0a15d77", + "01ab8ea516494ec61e3e7ef1d5bc69a2dac079e9eaa395b3231771a8c7d0c2a4754e9c8bd4191d08329216effe37b7b8ad9108aa4ea12878f548031f8207dc4368", + "017c7c4090f105f81e45559ec71b7f1f13b67cd1a3b682eb4472f25035a8e35e689ade9916e36c1097e0c4615064b8684effbc52f0ac3248a0f16371ee6c114c33b647ee0149a74b87e1dee8ef54b3d8274fee6459ee921e27e4bc77122057f84751a1bb68353906a9b15c68bccf37002f8a8ef3894873e887d9459207005b5dd0dbc1e30ced9ea771ce7f8770c49e6a13cdfabde3ce3b25e9205387f6", + "01141db6df4d63ac66c9ca973639f4cbad3c942e2ab279a972ecf6b456d06b14f61868df7da66e7078f9d3d1edaf27289ddba64c171ec453ed7eb2e37730b4bf87" + }, + { /* i=3101 cDividendBits=3771 cDivisorBits=1254 */ + "13dc2615818c4f51ae6c007d65de25cfb3fb17d7079ecccec5bf4e0e70e4155a3a02d82af2e21ede61ecdeaaff6a9bc384988d48022d50a11b4c545d33541eef8cfb2919cf08a02cbb1a0f08fb1573b718ba2f84a4647ffd5467ee1425416bf5e9d4b910879daa30fd3e479f0386ea020e8505d00f0dfb48714be1bfdf9e41122a72cf0776e92f2e04958aeb238e1d1fd7ad4a31fa33251090a39dc6b24f2a6141a3414b2aad90373ef817760e595ccb76dab2fe0713463e9eb8bb3526c0f8fc0e39a8f8ffefa171e2bbea7f78c6f70df4079940c2f2d4747c04cf0e074a2790ed4ee19189c103a1fe25f4d64d1d18147e768347d0bd319e45d6fe46a5f277062be48aea3d8632127fe031ae5e33a2712d3a7f58ff4b045822ac10be9704a47cccd3b749923e31687f812705778fdf27887a5c19447223563520cb26799bca3666aa465409b4c9c860a1c3a87416444056f16a9f3393a1fa99d71cceb1ff431e28514b313ba7f2833bc14d4a74bd87e9656682f5a01b54bdc60f6457b0326dc282771aaca5df6e6fce9ff1d4ed7ddb2c7a0a3cfb512a9b4104c4b8ecf3ee7f219843c266a3f41ae78c9bedbe240f0faaf341c6de4a286207a6027d97bb12efb412ae7372f87de11c34b3b3313ee9e88e2ac6ee95b208be", + "3459a1d51c48131b32e3e56761f1938374dacaec6bf6d7b7cf2f77ac24d36c73dbb79fce0bf0b718f6977d17e385f849cb1f0f9f2577f7854769a6bea8a15492c745ede80db67bb3c757aa208961c58ddea16d417d84519c073611112f33b7f480d92e0516bed65982ff719ebe510cd155cfb17589df1bfd2c1bcf8393ba6e59a3447ec76793be72c0f05cb4b401c1ef8c338d9e5014342831213fcfec", + "611e40d90bd904d446bd91d14e21e505ac49c63ddc89046859a49fc3235c1699178b06f89c3247848d0356c1411fd11b86808c065b4c39005644c25141ee8cc4811e8605c3890346123ba8f440b5df91dcd26098f9e227be76ffd2e7fe9bf4174d17e8e8e0ee7623be437a1f9eefcbf433e6ad40a0ef62934c9ffa7e65cf9289512ce58258a9ea40eddb44744b813c44cf1ad5b7717d8080fadf59913650aecb45472713e5f21ee5a27d0352b1c0f27182d91987a805fc60a1a164ee1b725d965139557543d13be51322ced2f05a2e3ca59ee7cd4d437a8600c8c46f4130ff1b89c571e16fe6edd008e343f0aec8d8c59ad6218bc1a4d4c77f843e92c98e68f085401760acf949c516a70c899cd9bfadb5cbacbcd27804c2461fb28ef2a7ae0f096e78c7e294d05a1348a48d59245a31e9ffd0c44720e3e853f4", + "175c7d4839dfa032300c82fdb126188875eb3a50e50bca2c6b0ecb68d36b8e32b7f117e043d909f83a735201b55f40ab6d779563b756845d0a007ec36865774ba8281f3fea46dda9c21ba93d046ddf557240604770e16bb203311925fb796457f30e276428a6763de5584c333f715ee5e1716cb10c8c6d6b32bd483e40af448b13cbec9cd7e767bd155fd3463d06b7f3bc042da3e49b1661a0829657ce" + }, + { /* i=3102 cDividendBits=122 cDivisorBits=77 */ + "01613106d235d74f229270bfd0d3dd9b", + "1866ebadb82e6ae47621", + "0e794e98d2fb", + "0805099610506854f940" + }, + { /* i=3103 cDividendBits=42 cDivisorBits=10 */ + "01d3fecbe1c3", + "0319", + "97149855", + "0276" + }, + { /* i=3104 cDividendBits=3574 cDivisorBits=3127 */ + "2fb4e525b758129d1daec9bb8b68b596085965d04b3f45aec387151935964503dc4f84a98a452da0d308b3c53141075ab3e9636cb64a839fcf57952673755a8ff3e4c6d6a1bc9b149a8102aee32fe155c8f9669c1bf2917d55e62084d78d212993918dc40d87c159e454f9e014967890a3ca2ceeafb454840914589fc6d250f5c325dd11b13e0faee84d3d2098da9d0ab3a4aeab8bf723df74a4cddf4561bbcb2b369847bbdb87eb0c2a6f89008123f78c8777b8de8139787ed68a164e63be6d27633264f59dfc201d3c6e81a8d9e0b0bf46fcbe21f67c6c7d1896e68ab50b8ddc85a2ef171f999988c48a0a83900a2e5fc3f890a55b891574aa517f46aa813976ad17f56cbdc8b217eee5db726b9d5f91335127bba3533635a809d0326d47d3e7c61f8f3c82e444f1ba40803487159e7ded73321664f1ee928b94f2ba67c660742e9e6449a3fe584bd0bfc6827c6e6b37d3999e30097f7d480e694c003c378f269f5081df0e26769b3f1f44a61528ed5c0f30e824e9b3f32714e124b0c726c0d4922913cfbc484b37552bc42c994b9eaacac38acfe54fd2599d18a70bffbbaba6a919d67c55ff833f6b484f088cb8bee20cab399dc75ec95f642c0517a208", + "1a359e5327882e0c26c430df3b8f7dcc88452131b7c8eb59e5004d3a8832de46b96850807865582671aca84b16e313591db81eae97285db49389f7a5d6f18c1c661b1d24280ae371459bf3d235a902da10b71f95a223f11b2f79fec0b1138180fe8a18b35298d63fec5d178c085059715fa1d32a54e61c94db47b56c0c31ee6838db722dc7040fe1eac7d520eef9dd9d1a3f714b66eab0c520e5badd5b708a3c093415e5543a0fe3bc0bcd5a9de5968674c0fa8c5ee503a3c54083ff7fc1aeeadda82c4f327ccc5a25f43a912154bc1cf94aa09892f38c4d920590ade2cb123f483868605d4deafcfe73e448d7e1a9ff65bd227897284a6960c98054e08293e0308aed8ca03d8466f08c54da080249cf09a24846ed145b153130d6d027f93ca3491ea275262010cfb0907a600a3521101eefa2fbb8ab40853446b7129e81c8a90947dfd1a5b0a7404472a1f27ef1fd24045dee448caece41b6679b44b6f1eccc12626ac0353481daa5a1c181987d0496e96a690b740e88d939d4ee25b529635e01572e5d9ef340", + "01d1f9179127af4f0b93f94c6daec444261bc7b5bec6b6dfdfb38235b0232aced4b5c6f69b72ac1e7bfa4941525fb83c293d9740ac0f70702f", + "128d3c8a66098ff71b4c18a8b3da9f21ac7658b390cb345d0d33da663396783e387a72099833abddfcf9ca33aa1a216ed5ad9b7bb72199c5d24a3eb6994c4b939d840e9b85408bc65577f2fcfbef569732bddd43371df904ba8cd8e3e7bc282b98d81f199bc850f1aab73858bac9ea3be149711b8fd32405c09c4569d5d1b7fa4cf4df63ad79a67328b0904799f7eb24a53e2e7f143da6a43a091e1331b74e3ceef5dc421ba54c7860102e76fc4616d756a86d9f3b1d5c8bd27c9034a766866391cced4a9777bd153b42840fdf116ab510f740e2c90f845447c59d60cf0548f22f445b06cc0c05b567fc286cdbdaa680f09031ef991def82a021dda8cb6f6829fe112e3b75d0a92f9ec6939b3fefbe6f6170bbcf250d1f71c4dba15e77ab630166113556d0674a9923b947387aeaf73c3688b9dab0da76c4f90c5efcae1dd6d1b58da360c87c46657677bbfddc5489cae0d18e7083a149637eb76b17bf546956950534b10e5d5f1ba09b061882d0a10bed97610d1d9a1f49fdf78e507247c7b6db64e81e7cf948" + }, + { /* i=3105 cDividendBits=2517 cDivisorBits=1835 */ + "0f28790efaff750faf5cc6353e9e5029e7891205f980e707972e76f39f7e9d314574d9eae0138b7e50834825b72f9dae4887ebcfbdf2a54d356ad761bc5a3952b34478d07d5467d5398e7031cc345b6f3852e2c37f99ce12c42c302f4f2e68921e96f5d6e4d12d2f5bbaf3e0c70f5f266b9b3d8348526782bdbc7841641ab934b3550c616d5f99cec57e678dfd99e7b76b8fbc587c1751f423b032bfc382079f7f68f4ae1ba33a205dc44b8bf35ee9383efcb9cadb726e9df0e3dd7fa0dc239abb64af6a4d8ec3cd349fdd4360b2e170fb759e1d187936a14089c179538d5b404106554fc45011856682eafd35b5987461f6ec27d861493ed7c7ab3e18e3bb38f14227f13cdec64f053e411b1ff3b1ac3562ce34c61cd7ff8fbd0f54cbbac1f94e522ccc379ec759fe8e936b24b4a38e804e22e00bc63573c8dfd4", + "01c18ab8af47193eed00ec3aefd27472037d3c7ce1b73d571e262f9dab7e01014dade8e9afe3f4a140d717b73ab98af9570d6d460854f046198d35d4d0f62f873df0eb88fe78bb414734419d9f5f3742745285a4b23e4a595134cdb12adeeffe55f1125b52f698c057292086e570410e667863057d5f8c05f967f9c1b1ed43ef3c8598c94b934aa2722293f1be98ed89cef68458eb2de2c51998b19eefad8a355ad2a85fda4fa3452edb0e1a062273b53162aa4779ee0f562d49324ebbb6ced4917c242a08ad47554a61314c69f566c67bd617b8a8704cf4de19a9289b7123253e6eb6bfa6da", + "08a1cebe0bf162bd2203b4785b3ab351eb77ee949066c2aa01b99e78659b92412bbb4a25a0ca8cfd6ebebb81347234dbe332fd1bc4b79b5ae733efe31640f5137e11949a246b2fc66b55c08d72530e9bf2522c1275da", + "79317bb55a8140dac0426dda65b3e15022ddb9cc257d1f7f3dd5d4cb661ac14359964aed85cbc3cc798e92916f09432103904fe46f2fea4ffa6607de979cb870ba78dca6f661527601a7f684ea63a7dd015c4740b424adc450b8def7532f0890a5611f29ece8712c45d39ffc9678ab2fdb8a389f665c8c56fb0a0d77717ded717f049b1e52373986181f152ba8c6fcc6ad77ef86cb2d04e6309ee40fb7527c8b8ceb7e0aa43df9ed0f4b92c61615824a83d3df0753611e7ac72b9611827e3ac47b2261a008db39ffe1adc20c3f1a8e0f3ea00e425fd0f7761f42666551da7eb26d09ff2830" + }, + { /* i=3106 cDividendBits=2927 cDivisorBits=2208 */ + "36b29200e520b84af41241a21ebe6977abe169269d962d31cea67d613535906a6ade48ec28f7b27666491a92bc223f1bb3b550b61466d071b611dfa0b3b72618addabf061264e7506a3e9dd7d4a62b8a3086c4d85d02174a3739eb60bcccfe596e9680b840a72ad895e0ed2ae79f906627dd3047758507f730429ccd3172a3a4d0fa6e8174e229e100a0a38bee62a7f35d8dc91d6fc0b5cf0a7027b9350fa1399729d64c136e23f25bd5c9f0a2a8e1d2cf0d545b324c8b10143076cd8f07d2e9ff0b78c3cbbd4f437ded7dc6f73f85e6de51e968576ce8c4d5817fed9243e69c11a23dd94ddb9791014831e84f5acff6eb3fb509229dc841e94feb732ec31b5b6a40d78392a78d7a7368259d51077c96759a400f1460fbfc512279bc08238dcef968d34247db26a7910a880896071411a6d012c0080e99d986099f40f4db648fe8f4b26bc26df0faad4939884599d4d6637224f0d16bc18383a142ed58d163d1fa7c727fb58479e8fe466669cc2b", + "1561936425ce0d7cbfccf2aa55fede9113250491f439b444b1e5d50f27f9dcf418f31409c131a6f5d16dba6490af20125fe83acd046e708bd34d02279100584feec8f1ef6a3319a82dfe59668ff8c169b0532c389d88b28ac2772217e7414aafb4123b307d7a9c62fa1374fd729e15475076216ea294b7b4656503ae02d63692940a559f2af9965ccd9e0365c362cc9279679e038b26f502c000e8925d251f9ae0027e63f1ad541f0b2326d3787a81e5836d60fa3cf27bafff542d0aec56530f6c7fad00afa829657c3894098541f300bdc02c0e5ea51cce81d575685e07bb791edbf58d85c44cf847f1269017c0ca38475aa7eb47bf3b81c1c9723889b8ff33394bfa417d684b2909b003bd0dc2d89973037944", + "028ee70501be9eb58b407f3bb94d0275d8da248f763b0d664e8e21f336bed35ce6c368b4f801adaf6cdc6255457e8ae17d1d4cecd84b976bd83db84c83f7044cf77fa9774579bce73aa48fc5578da856b80158a1222496942c02e8", + "025f9b9d3320ff10ad22dc8ab7e691640f50e78054f140e3b610a7565b93f45e71dff3122a88b811f14a0708a6433f09878c547a03b4cc16b605ceb19443ea2ce5c64ead20e613fef2fb95c911ce83a5f3a64b993d67927de38de26a8e186351e2583746699f43d340f683c6b806fc149f243386ce835191eb44314941acd5481e2f0941ece5437706d6b168298da7a81f8ad03a3c4177bc8a6f1a403c6a7c210c5e4d841b5c8fee5e44b8e8e06b0d9a4e38a43c1d6bff99be7783af31ba4fefed393fc7489901968c37ae85fd17f053e58598cb63a335fc5a4502300e7dd0a341effd17647d8d3246d4c6d7e0e9cd4c231d393715700e94b92cdbca840401e55e424e97ceb50df1109fee2ecaa71bc3fca15e8b" + }, + { /* i=3107 cDividendBits=531 cDivisorBits=455 */ + "03487b552d629293426341709527315e3f02c7757a33919ab0505516b704f1235012c9ed82bd0eb8cbb7f5872dfaf7d04863b63197c2e7f7812a0f7206193606e37d6a", + "a680db105a7f3171c7a5403d078bb8e3f79a755df89abeaf61bcb96d7f6b5e3e9a6ee778cf083f6cc34bb2bac69845797a5f6ef67a69246b", + "050c3f0f304361d0ef36f8", + "81b63520ba58851db7cd305e1273a769782de1c44cef861de92d98333077c7814cb31acb4b7a3a666a802f918a3cceb3e92a19525374a3c2" + }, + { /* i=3108 cDividendBits=3762 cDivisorBits=3340 */ + "82498c3a49526b06078bb9bd012edfc24ec0072a5907b31c3a5ed1aa75a5b32f8acca93c45b20ddfc4d6a0118d2f2da2c112ff055c8c78b0e444ffa039ac258df6fc05d72c810e75aaf8233b20b3ea0d27e49fa3d9bf6be7059166d3bbe813f4d3d3ed30010ef28d9aca7e857ae748ede4ed9a11dbee71d89f15246b43831fb5b639129f18e58e57d7a9d4c5fac4208dc68772bd0d5e553a74e657a1d4d2b7057dbf35dbd9e31a621a1bd8d9517f801faa1b0b6037dbee8415bfc4c2dc39abcd439f4004ae42ef0b3f3423a95f9652a396824d208ae1e01f4c34e134081325996db82d5ad025a5a46524d19edb8830f8c0e6914d5feb59cde5fa918725b81088776b114e087d2ba130c40d73f331459510e0a0f193273594780dde471e7eadcc3a0b21ff37da798cc75c442ce16df7c216f8c7edebf39176634ccd688eefe7b3ff2db53a85e914040d005fc770146f870d954a3fc0d9e56872d892e429bc642c6c4074d2b60982732d4c66cdf496b9ecae6a9f4199ed26594a3f9374fb66f85aeeed7a06ac712efedbd13313952f7e3bc29a8f1ebb77ae2666e1642ac1e38bed2c736becf367903af3c8a1421f91c0e2d5a7e9e517ef4dd239fead7a8b95a36ff9ea7143e09e4b355cd30f8d7e8e89a92471c800e5ff", + "0aaeacdd83849bf511d1d419bd307cbbbf58f626f836f1ce9374c238401e169856f12b717824e9052b43df560197e8428cec82a3f13ddbff7be0412c4a270c86e9e0ff9f65629533fe7b44d8e82a7789ceb5b2a89851803ae0388f3a931e746ce903a0621afb793a229a76dfd029847875869c917a290014ba5752e0136da728e880c43081706ec4c70f1fd38b98eea39c064268938b209180c19eb12a620a39aa47fd5acd340755cddd8c422e901c3509c518c571aa38954527f53e2c92bab6a9759a432ecff495debaadbbabfca28ffeb1f6e46a37a5632451ca4b9825ddf6894728186d3822af0ae825656ff6e9c8c7cb3c4ae35b8544d6460834be4f8d8ce8deb03c94576fc73156ca8c448cf77089371e1ecf6b43c40bdc17398c0cb4fb299cc9fe9b9e9447d6eb2149cbfeef528ad6ce9f8d0b853dbd0abfa58912e177b3dc596777583bbb4da8eb73df4c7cdabbfc7aeeef3d2dd4c4df9a69fc6725ca2c4646d51a814515d1ec0c34d1381f56605dc7492786da24d0f14b838ee4398862ddefb9641707844e2d82018175c7dbf302aed202e2ad9a2cb550c10fa309656e8c", + "0c324fc3faa3148e4f8318577b152497a40a180d42c4ded242637c83585cab2c100be2e49688f8584a64fae9d0b3208215a1169f5b", + "040fc1cdbaebaa2c2ac235a103489efbbe357abfad27ea5284e23cc6f87746b9079580fff393222fa1b138c428838c710fea9619deb8e1853bdd223fc546df2ec0383e3769554fb290cb7969b31ea03593a82f2c4d4a2c3d53d5f3c757505c0d29f46de7fb87bb04e722e5ae2be78c89b428f6a96a3ab16aa90dced88fc90fb6ae85bf62dfea310584804cd85c014b663eb117f94516f5018399c6e3e082c2d268ebb9ec0a879f317e48e9f53a9185ba7d6877a7752dead217a4c7193851efd07d1d26c244ec6e75c007bc25c0e31888c1f97dd690d4d156ab8a1259117f2de1a579805081ee34046943209ab82f4c14dbeabe585ddc339cf24cd64264e64de6de9e0cb6a4a0fc9661bc227788b35234722feb785babb150c98daa1a82d94a762107e472bd20e440e947103e24c8384a6d0e78092c8030ec216a8a65c1ef37fd434d62a24b39fe22af13dc00ea81231e3fcf9cf9b0ba56838e7a6b7c380783b84e219277ae2b8d1f5f6bd36b4b1ec85e18d015de041ae6c4d290d556fc22254df09ad1506de444990c0d577fdb4397643d18abb2de62822337a70e718fede541a63b" + }, + { /* i=3109 cDividendBits=3401 cDivisorBits=395 */ + "e60efed5fe8da309292ce0e0e5c5dd07a07b67941f797e5f5b9df2e28cf70e5168c30dd38aa056fe1483401592c79a9670e99830f9a5edda4227744502dfdd0d94057d9b409d4b605da89b335a624c821f3fffc688673a553f52bdc73a9b22b296066aff45a7e3fb64576bf903770287d0c7414ca1812cece8c253e741fb9a290fe52b38f7087c188c4ba02b72ead1c29de6e9acbb7ff0cde0ccb39fbad85cca07bf8c1161ff3495b23b74afb4c6a913332b7f18b963e0251edb952e8463e0cbb1458c66a88f484014dd6e67f67e569dd931a91f06a2cdcd6a49074b9920eb3ea63549457c8eeba8a1c69c2130eaa2b2691d5c93f8db3d768fbee4701ec87103e6eed5cf24aec0bb83f80a48d1d8ea2a5fcaff2ff58c6fe1781aefc2dc4980416314d99120e1f464b6743bc79062b2b95a9e86f3830b4b81105638ebe7dde551c323bb720e531d2e26477a24ccaa9fb3844f853c2d30929c518526d8ac7ad77fe7caa83e081157a398e82fac08f72198218e3f8614ca5f0000938f18077f7965f45c001e8e4cd0032537e195be28e750fa430cef8c704c1834cafe01ac3e15bc2e76de4f43e1462b61", + "046a803cca43fb01a879e769379930b0d181f596d6a018953c115186d4fcbfc2faa88997d3142b27d76b25e3b47f8e195495", + "3418abc0d5166431b611b3231107be5d171f1a3c10aaedfa1fadad2a2385b8381343adfa7e68e212b626283ae622b0db0e5e0d302a4201c36fbd8fddf2341cda93b34de7e1db7deea2cb3a4fdd67626ade1f091da137ad85cef97ad5a760c70d8f2e5ce47e511df784adcfda10a0490176c141e3503184f67ca78fd6b0492a8899e746f149068f275cf6ef13c27a5f98d2b9a8291d39da2aec52015c902fbe0f1d00856db3dd951c4a59a0f1256cb3fc5bb3be91f34e8f1863cc17a98c6c1b1ea53fe5852470f2dbbdb3305c51e4b5098b8a59a79ef1fec1e3bf0de0957448bc316715afb72f7a45e3a273130da0cddb981ac65c476c9b23f80bd72ce173a9553abd0ce3d934e814a6519c54c054753b0f8889270a4d9b8c532f2c5ccc9d5c519faca4c6910cfbd177437410a3d6096cc2f23f0b1089e51da4d63e3c7b57c38c843b6c08a3525b383a5a6f30d79b0c19cab4f1561b0aeb9f9c940bffffcaf6db6c070a05d9f6c45d067c8ebf43bdf36708a3923ac0ef710d", + "029b4ad25b6ceadd825c874bfa08a3efab64ce16c41da7aacd2d57381aaf947300c90854111ef8daf965b3200a38c48c1ad0" + }, + { /* i=3110 cDividendBits=1864 cDivisorBits=274 */ + "0d1697ed95d456a823932ee1a12485ef1055ebe3749938fa086593df17af5eda64756782e709583f2854cb1ca6fe7897b136337b08cdd39bf201aaccc7df0f985b3fdf7458ba2e8aa8e1b4f0524308d75529b5b32442e6d94b11ba5eea48af752d223cabd17ad05a983cec7002a3551d3aaa1c58b3109db2ad78a0477e9036d1dff7cea07e617fd26fdf60e67904b8e15811f1719f96835ced9dfec18f61a48096f39d96641247608080b20b0beaccc6c6b5f405bf0952320131fff73c60879dfdd232eef1c8545ae08df9a95be09fe4472d9ba9b05cad0ce995bb0e4fc7785344fe18032cef6e80ac", + "01457711b00c80f33bde68c3e9b1e40e005f1e9140f73ef6172345a7e9602785b0034a", + "0a4b770cb99952e1053ec0618e28b6cbb899e29dec765194b6835eac7755999bd72d747deaa45833a7778708709e8949bd600736e8130db6a6b0882000c7e2e9b064e77b1533b769d104ca3880a31edc4aa26d011e962a6b1702ee37fc1f02ba42cbe1a64896e7ba5faa57673f015f272a215f8afdda3b6eebe6a6e44c0a481acf6fd4efeb2926caf0460da0995a85b58a62241d4aa25f6fe4da4b90a766b431a7d0b50e952fc0ffeb8bf7782fe50b9607918f9a353eb34fcd626fc2f2eb3bf130968ce2603f72", + "b76bc4f9fef8c4fb76dd9e1debfd85a3400fb2148158665c496d509aca4c867dd3b8" + }, + { /* i=3111 cDividendBits=1908 cDivisorBits=482 */ + "017f274bd3026b5610f5b121116cb8cb107aede37308b1c0556bc11a8467c9190541983ebe790c40a74cd89352c4f1ef4fd62ff1018902138c29fee3a171f11052d86df83e9eeefe758681e518fa7e842d87af77d0ca816f469501231bae469937228dc7db1625065fb5c29d1dee34a5ff6409ba5fe0f04b70e4959256280f65368c0be4d6c61b11b5f5c8fd60d80765b76445955b4c7515a96211432b553f425e71b57736597007d0d281a5a75a56ae57e8e75e9d8565417993dacef2a605521f381f714add47507636aef6ee3594124af9348d9a45e8e5924c9420e25ff20404b0f9b56ac23fe8f3718839e2d383", + "5679b483a818a3f835faf8fae938f393b89e7d55b58907d519ebd3dbe37d8842aee1b1cf8b2769d282ef05cae36faec3e170b773b7bf531b61609684", + "046e4795588c4afb59dcaef47e7183bfab94f2fa62e74100672b5e6803055cfde5d75a5833191a34fc6ee8e9d9cb6f4ede54d16ae3f5ffca2f81850fd687b0880628e39b6b52827c2e3c3737b0f90ecf9a1ba13582530142573f41d9b8eec88db0de0cd5e054e47b810f283b02ed53ede6fe976bcc6e8bb37b2b018738ecd7b56b483e047fb3781966fdf55d6708daa0061e697c15964f753c032e611a6f80c4965d02b9d4dd1921246cab003c267c55445684", + "22da1a6632456513068c3fc2ea3de43c1295c78df9c2f8cb9497f772445de5e883b957e370f1b4210870fc833df180f997ea96e9f1b5f521c274df73" + }, + { /* i=3112 cDividendBits=2977 cDivisorBits=258 */ + "bf6373de3d16d467669fdc3fc7f09f80f98cd10ec99f8c09a5ca6a81b1305935d1df63a20816f567b7a1de2bdc03ab01fd3efe2617b6bfe7a867f7e2c93575dca3a1deb52eb2f28cc48c894d3a3ee9e0331fe147260f30f38f0c5d7cee73f771ef134f652b5e5dc7267dcab75c275cdcb0372f332101e7f19aab5d2a76b00b98095338bb5c1a78c3a3264763158d9cadf98cdc39b2a9e30503e6b8337be39bbaa6b033536986d1750265902c1dae424843514f1beb8c5c097f0327fca6ba9e10c885ab5165d12e64e01aa2f533760a30e3e3bddb54d46a5e9188815d81c7ab518b4fd179a13e8b1ba1cc172f981f6c0d0cc0f19778543c411d9bca5ddfc584dface17307ea77640c3b2e2baac9682adf747e03b2614a9cecfdfe4a186abb349b38ab20c972dcc7364d40b33517f4abb8fc60b7aca0a1d10aa6b629f7311a2aefbd4e5f3a7a6404da1e1e30b86b81280c22c72464f57e925b3a313c5da6818ac2318deeba4655cce162b36fa6de34f239f337f8d7", + "e2b972377475095bc2fd3bdd6ed372c68c82bbc834388864b22a87c4fdb969e7", + "d819f3331c496da74ecbde049e6bcab959821812798b8b67a0ad8878126e66de0c9a4e0e92bf591ea0275049a188f635edbe17568f67cd61c6a8abe7155b04b68e09d4130c3c372cc3d79a54d5f1058190bb150b916938f2c29e188975a03f1de543bd93080a4ee204d48ae577dbcf1bf782eab2630c990d70e74c2d038987027c08bc007d85d5632d074aeb7eae8e4bd521d9f87fbc0ec302335e16eda22bb3156ad881c915bf5e018a9779afe6fd297ca13bf22e8a41165cf1eea5b8febdc8c08df4c1618973cc4eb71dffcdba7e4a7499fad38a01fccc72089e6a05c1af2429fea8d6734a65205cdfdc1929cd061d9278e30ae93466392e47eb1b74b42599977f8d3f1d8c4fb09942496f28a0ca9e1425dcf8265663b1be03fed66b47dfe54a72106cac9ce73bd5309b95a0088c79fdb451fb2aaf5eb7e73c576f5180288f21938fd73924baed460d8181cee7d7c9764c195d", + "36ab0b3277aef99ad7fd7745b802c683f285adba86f599c7821a71a7c0f0f0ec" + }, + { /* i=3113 cDividendBits=2437 cDivisorBits=491 */ + "03d79d1db271669ef61f13d2832d3d29789cfb5b975a72a778643c5fbb466afa4a16d3f2d33f265c314ec390d9e89b9c38fde6c78cee9f664eaf6350fccc257724c819ef4cf180529c10e541923a702120a5eefc61c99c012d0593aab4c5e7e425838b5e5f3340519c94eecfeebffab86fe37d9d6c1d5c099209c1887b9ed6a98541afc966e26347299c96c556ba44f7f6e8397aeb4aa65a92855c092da9ff400dce12fdfb556c0c218686fde78333e1488d5a90f1ccddac0f235af66909d97e141fc69ad571c7d412ceeaa908c4675a97c92fca3b1c91d655695a6e3e2d2b49baa35f41e1e655b91aa5c1e39a22f00deabf2584a24dcfc6675f7a6ce2dce665b190e046bd324a2e6b2dd954ccec4231dd1de5689f2e49345aed5319b8fd218f1de462e5f994b54781b8c4dca39526d7b5", + "015c08c254b12d9c83e1b08952dcd2806d5c97e99d8f5a617681203744521286ceaedbd0ffeb1a4a318469dd9edc3c40797dcc6cb53033ed2ab5d5821fe0", + "02d381bca27ba1edd91afdf541a51594195e119a925730da2def769b955efb6ad1771d35b153ab7bd4994fa73f52007bc45da3ac07fe0da248d12f881a1efe7da4a22d149b969fc883bcf6d55a5779a617c91bdf7ee2344f960ee74d3b84d8197b6a44163445f497156efcbd7944a744843d756f169cd564521508bd12b34e30b6695ae30735f98ba69546055021864d4be3550980332f0bbc0cfdecc60d87801f5ef657249544d448b7d24cc93004506d461f935e967304e2baa21fae28c7a20eabfd683319074e10243a2af9bbb6d99492e8b58df4f7c09fe0280ff9986f6180ddeb45cb0de1b4ba3c1cdbd2f6ba3cc4157871", + "a172edd5a2194b79055024d0d34c678f9b4ebf870a6b594111f546a6f9507b68beea6b7bb62947b623bb4d8ef406eb11f4d449102cf1c569b73a65c5d5" + }, + { /* i=3114 cDividendBits=1196 cDivisorBits=619 */ + "0413b2196cdac5fff9694d3737f622048a363dc518bdb5790072eda2a33753f95880aec3305be9869d62b8fa240aeced7e04859f4cee311e5835b81d2fe8c2caadcd36152f7d35956ec5f28315b2bf09b3cf8d29f9dfc86d065efd68e75134d7a90896b648b073d6e863da7b2f8c9a0d2a0a082f70bfc29afd03f67a4ccea9b9ed11e82be642afef2995d4a575d5f1b1e143edafb112", + "056447e2cb0aef746c3a05267688cd53413cc89ed7604ed2b3eaa1026345fa327f8759d25fdbacfa2609dec4f2708c0430e110483b7cde313eb5aefb10820345253deefc1aa4a3ac45a58fdd22ed", + "c192dfc2568ee073aa6eb786ae7bfaaae0e73621158c5daf4b3a6cf3562be2bc78218d548a5b7b28650d3059430a4982eae12e29be58b072d28f670c3e23a2e1e3af6456ef068aea", + "473b4f2beed06c7424ac189307ef32aa56b1bbf3b7185a14782b7327a42213573c0107d73182dc07ebd03f4470c6b6288402cd3e3ef6fecf169386a517a38baa3ee77f83cd888cd5f9242c0270" + }, + { /* i=3115 cDividendBits=246 cDivisorBits=41 */ + "1219d8961b61a00cb8313f0d04c6bd5521df1070c6e501bdb9cdbbd0892724", + "b17e031a79", + "1a1b79207f0abe82fc2ba260ff4af8899f03a1091443c4dcd68d", + "086cb66c7f" + }, + { /* i=3116 cDividendBits=1147 cDivisorBits=725 */ + "de775554bb7e5181ffd39a8195c610177cca2e851c8f30d1c685a04580f474a74525e2432d95bdb0a85a18e44b1c3928e9844473065b00f8ccee2eab54da5f62c59cb25d917809200469fd48f862bf9f8157ed99102b7427cc0385c4ca6ec6557906695273b2b8317a60a0c7260a20f70bc14b5219f8c811bf1040000d0a9f24c73cb3a87584b3345cab9a96c826ff", + "0351cbfc719373114b41f7400b60def2ca63a607107365a9a13002084ea137416b38bd3a43f415574dc53ea91305589a11be7add6565ce70772b1a3586ca2187fd1acc707f5dd0c872ccb0facb610184f1b8cce40ad23b7c141739", + "430480a7d1047cbe09e54c76e6de1992628e1220facfe3149b459160fa8923354a727ae38a5e03101ff66a8f008405917e31b7cd34", + "0314f52d284bec86c8b7721f0f762469679eacc1f6ba6ec3dfae1b589c97e2314b80761b621fab4abdaac2e2587ececea313b30b194db2d9b0de627ee6aaa0bcfd893985232122ab2f5a805d2cb04d022508924163134cc95bca6b" + }, + { /* i=3117 cDividendBits=2030 cDivisorBits=1280 */ + "1d2d91336f52905042d65f3aefcdd2c5e5ebe446f931551eb69734f854c18e0612849f5ed03618f73d8955a1925053369e71b9847c1f216b47313c2c596bb644c9ea2d20a14d98f4966d2f369c8fef8a9d95b831f9475a883e598c40c2b924b300edfb7165ce6a82a1bfb53520822e320d5f2ff1ef0b047fab272d35ef99dfdf8862e780ef3b7c65fdfebf67e6c277ba1d211470b4430e5dcc9e584cd2bcf5bda65e6d736e48f2c397a203ea9d63211ab8627740231b0ecbd6a85369588fe9a824cbbfc94b91cd00dbcc2e8ec0153b943a2cf30212542519fa6d8c2845a9eb45e6ea5b8d0c7e562fc97f6ee5d900d2672495c9096ed7733b8dd9a43691b9", + "82b693dfaed3475039bbc0608d9e4b0b68b1dee113e0bdc4bc2530d14ec433e3d2c3c647c46395b61896fc680a0a60ac4879146e11e5476c30e9b04d2d13276a1bd77ff4bfc083b82718b655175fead4d1be4a4401e81985518523d621e13b05259168651a42cbf00d4ab51f4cb5ec263dfc463c22d9053ff590abd36c0970f4a4696b875769c7a7d53d7c11fee79a0200b9457e559970337cc0634c83b471b2", + "39250b87f1bd8be30faa3f05d2d7c0d92bf700095ed828715fafe69e824aa0f0dc3ec971e4eb93e23078f658e86c56234d4d4382e011992fabd1abb3073ef1a6b3c47815cbb7be5471bbbb5dbedfc0be9b8fa7d83f30fa71ed06e9301a6d", + "68d0ffc03cb083bece572756cb84779fe24553a0bd34eae49ce2e2a9fdf6fd31fdea1da26b72ebb7d1ca9d7de42dbb0cd8162bfbb641ffe065ed6425aa8423d1c6eef8453e5b526a1a60632b0fc19ba9194cad54af70f5ed0f1da81a5a7da06a8e115f389428dfcc8f0d29670202903ff44114d61482fe0db5948dfa45169befe6e075bfc3c15b86410c19fecafb9963ae1c36031f484d0561f51f68e97614ef" + }, + { /* i=3118 cDividendBits=2507 cDivisorBits=1718 */ + "0ddb79f42e611556cf35baf55a29a29fef5ab6889a2795ffd782b26510625a38a063caa9a4f79e998d159ef9df5167e080c50beeab230d2f98a2d4af0d651b4428572697fc29e72cac46868598f3dd91588b0e354ab684bc50ecf7615f95577b74d1099836cbdd015b23094bd0886758ab972ea8a7ba338cf71689bf3d40eec0a6b86408dba29844982e42e40c0149956d0383103521f31fd2adaf10f407b69d2adad9c6033139bb497b7d39b3cb729e5322343ee963c577a0b9c247b31dc1512c4baeb19073967258c1f7a6593568bc513a04650caafa0d269c7647118da57824e73eb08530515800de3c83faa6342a3bbe3ff7d098124053149f8e229869e034b29fb8e9a3201cc8f2b3945033d596a6849ea31608e6c9bcc25f09338b8437141d25d6ff724b4ed30258752a2922e42ea57564e83f44f889", + "106bb0c83773c40268dd74b9c7ab00ce72e7340c740703d33194a841f2c22b6bc19dbb1e35516642c7217ad3d6ab8dc438be6dd482d7c4b858ca7f3172a080edf1bc58cc85f19021bfeec6135c7c63ca2964bfd1e9d99fea2a60abd2d774dadb760e5d76a1d2233986928791eca64f91d6a1d77f9fd1e5302b547fe96ac86b25d06eec0b11fddc7f7e1d2e58c33ab287413c6ce82b72f739e6051aac5416963ba5a34b4e04ace0cc73189d429e2bfa308f5d68bfb5a3c5c5592b0b208e6ea96350cab07586bf18dceec6b37221b1160ba22f4e0a8f15d9", + "d8098c6f50c557cfc5fc3164798bac6e9703ac63a597f5700b628c323713ba52221bcfa465cf34f71f59b3b8ea112df1d356db4a3699b7a1442f14baf7631020bddaf576f994ea59a3db0b7d409203c256e2df9e40d908d31d3a1751474998177285", + "104dc36ecf078a2df4eed096bccfbda4becea90020c363253d384c78a4d3c139dace4f7b4581eb26a7bf967babd9a1e11ff21d36b7f779f2e39f24ac8757c3d063ffb7a70e64779c741e112f3a056d1c7f77ab6511b34e9f379a25dc43c4f931c2ee68b4a3d6e5be9b7791bd2af89c7dcd3aa4abd5f9c69fdbaa83b5b7e00386d4c5b8cfbeb3084ccd3eb58f3994473d8930cc65673f9dfc980070ac9b9ba9d24cdb6fb0a7de32b173d5d49d9eb344f13ff9335419b0e2014a68fca1df82bd8522bbf8d78d8986edbeb16d3220de4eb054bef43cb4fccc" + }, + { /* i=3119 cDividendBits=4080 cDivisorBits=1275 */ + "f6a7ca3f7669a4c957fdbb93aee25bfae0a07be753f4326bc6be8df557687888cd189ec3dfa542c64e52c893f8961275a2cd0671631b573570905b621fca0be04e554f43904ab8c74632c7cbf8ddd2143ac4ea725d81ae4f61c1dd3fd1217c947ab21afcf789463b4f2986071f60837eb13ba094a228c23dc686dd16014df02e1973563531014e6977ef94452ea7f85bdda66923e6246dcb19ea2ac5728a2647309517f9c01321c53745dfbd838f7d0551f80b41ac8329a45a093ec288c486b3f33a3b604c02d450a283bb310b8eb8e6346a0fa7046860f2914d03712240fef3b4a945de2a935c19bbf648cf7c7c291ec5c2689a8b6ae8176d21ef9fcffc830c7d6d6adf7d04d37614a221e192b0d727c26bf9c09da39e104fa489b5a295c1783542e9f3bc1288fcedc8935e989147563ca8b4fb47df41889f4d7fe2aee13a523b7e62dcb5b05041cd282d628b3383eb6666229797c3912b61baadf5f6459b71e0c4c07eb0a3934023166be642b9b0cb02d635bd0322d1527830a2f509fad387772a4ad97ac5bc06a9a1803ee8ef2af182983d88dfd230543b80016a6c172516e78d0658a5d771ea0906be6b758c8f994afafeac93a18b235d7aaf37c2af575cdbdd8bccb0bd9968380ee17c7f3bf82f2a9a18481e8ecf718ccca2545e0d57994070f1ac1d6dc39b9fd974def6204574865affe6bb25b62212bc4dc7cae5", + "0755e965cb70e1896cec22140e9cd541eb8dfc57d635fce9e323820ff307ee0460470061695756fa2b19383e6702cec24fca23a87dafd6f315e8f9e4aaa044918bd03123aafed033efc9b18676b5f34594e23c485bc8525e7eb0bfc8f5eb61145baf357ef4d6d463637614eeaad0e3b13a65ee36a078a4e705065ca123baf1e1fc1c519405cac5f5e1d4fc5ae4dd15d833b1c0907ebd68f74c3d59ad93e7f31e", + "219fdd68a16104f7ba2f78c72d2ce71335474c99765d0e2b36fa117c44bad18b168f12f5f88e4e8745684499b0af2bb332c60c7be3a5013245314b1f6f150944efd54a08d621c209bb8964ac9154f278d75c445c23a20a6cb86660b260205119a8263ee520b571080777c77242663639a32b18744d2ddd5e23961fad88ec56250a1ab3c5f5bc5d4b92af78a82207c20ba5cd6422084204192e67f2bb977cfc38dcf248a3ac096e385736177ce311e5a23f4eb0eb0ebef5709b2012903f7c84a4c5800a2270e5d0adb1db4b009250bd48b012ef8ef1ceeb42ef1e1fe64becb77e769dfe9b89fc4879933773cc48548bd59771f8fd37aee6f3240b2c09b6cd2333f5aeb23fbc4c2f21d6711f4eb76c78ad41bfccd3d397d7136bf0403ae1ad0d17eeba7fb1875734d09a6e81d5c373e2d0996dd0906eb8771803581d780b413737e8025084949db2d7a9218b79a8d3e532e0fcafeb84f76df755b9c3cf22b6a6", + "058cb0b70eb64856249cca0bc28594920c06dba3fd3ca39ddc22d4e2777642bbde21f684b2245dcb5315584c4fdae8821e451d2322f8d91f898267cb25893376659b720707da3873b1ed4c2008cb54af4b2078d7f5c0e7805ca30310b000d7e33e710ef9e8c378e13a04922679742744648e5003ab312ea6012ff8ea57eed5bc3dddb87a528552afb4004b9a08b08bb5d6c53344ed4a0277719d74c9f28cd171" + }, + { /* i=3120 cDividendBits=1974 cDivisorBits=318 */ + "2574761d60d9882d683455769c08d1b9b142fe709fa69815f45c59cb4aa8667c26c0a0e4844fa0783fbec42da174b04d5e3982fe8264487becbe69928d6d719386d1a7805b74b5476f5807d923ba8a105e3833659ef4f3d273dc46107fdf02d29a24198328cbe41f56073f4440ecb041f94327f0066e2fad9b5a370dfcf5fad445448d72afec95ccd98df03a552cf19b78be56210211a040f86b43d7d13bdfc20264a6cbbf090ae18528790f47e03da0d376d93f7361fc810fff19e235aec087ef009943d557ead2674dda235e31f7e4b1e8e4f71dfe34a1d58b58f9a06b5bb0cb8bc3b916b00b6ff2b3f0da28d92a7ab09b61af57c77f", + "384d75aabba68fb270522ab16c0b740ac67ccb2dafb703c9beb514219e02eabce41455be69605e12", + "aa4d671d4c3d387e2d7ebdda7311b51dc80a734cff2ac84da1ae65f8dcebd90a7cfa8c13cf43d97fcdf4e5b0da1a13ec9601d4b9d1fd177868e5e79f0f45bace162360da7a509a42c985b61a16e9b059bad3fc467be7601b4560bed1fc91c9d9197276f9e3aaa93b9dbffda97b78394dccbcffe4bf9784b37ecf3f167a68ebc46a5ddf0441e22b82c6ffa2f90cc255f6bc881607ccee18bae873ebb1476235979df5e2f7839d34b6ccbf27ebdee436d8ebaa6c27e951437b4ab99d6cc2e33aee222eb6439279c95d95b967ea41bcca", + "1a72654f10207f2be9f80c8963ec0f1f428d99d99c5029f3533c8193956399ed6dc76b0d6da6554b" + }, + { /* i=3121 cDividendBits=580 cDivisorBits=392 */ + "0f8f35ec10fa40bda7877f6da9fde92780eb6c38c90eee506a71b29ab8b86e31c868d32cfe0efdda18ee3673a32d83db6c17f3f20df9aa21b5ede30fccd1b4909700af121f4017edea", + "c8b95e9c224462fe18f160da0671bb2c2f378f38f61980a5303177423416bad5ad13337f7b08004497643ca095f357513a", + "13d81df6fb0f31ef1de4bfc9be9343a04e25fc7cd4686b81", + "77024d51ec90816a3d063141b644967ba2ea5d0effbacc80a0da08c97c1be70450bc87857cadfeaf0080f1df051a94c1b0" + }, + { /* i=3122 cDividendBits=1480 cDivisorBits=255 */ + "99852e965635140e4db8172370338be8a780599e313fe4a9ceb5202d9d85e25fc0589ec62775768df8529ed2b33252dc5e39f418e312211f0c1b47e056ce47d3ae0e91a57c327a7ea0572c83453f2af85566ccbd6afa804f1aa9805b2296fa2a166520fb0fa59148398933fca02fb8f566d29b4b9ce727343e719ef2aa7990f0dd8e2d4626d3fec3d96e57a0d093d4349271537a795c6a799acf745bc7f374685eb80dae34871ee8bb6dd0ac84e896723ffa91c2f94a41a5f6", + "5a5305a7461165fe738845f1a88c909668c4f107acbb730c0151b9905c2e8a59", + "01b31ca6efea52d043c9ed637e33f89df1f15c7f915508daeb0628808d4b4727bf219878881550a296ae332ea4c833d6d4333c134afaca1e7af2829493129d2318b042e60d158747e29c8d2d855fbe27a85c6e9f5061ad8ff7b63a1b12315a0922352bd2a18cfffa3148e57d73684f04e8d5a3bf93d83c3635ea0c50f0326a5faa6f498d043f1d8c9687700646aa0bac238b6ebb3290f497d3bf", + "350330811afe9e6ab53d007fef2eeca5984a3275c250d929586d64e9b902128f" + }, + { /* i=3123 cDividendBits=1123 cDivisorBits=311 */ + "0552b65896a11f91362dd372e9456a370f9a5512f949defd8216942daa405e747e5a606664e174583358505a0a940171c3ca307c34b2988fd49426772d38325d6c8c731e540ad769882bc8a3095817bf3d86bfab88bbdfa3305cb873fe04d8703f6a597d49bba0ba7789844f1bec7bb445b772dff9774d9eb6da8e10cd41c4ed98d89fc94b8cc00e17e8b80c3c", + "5828d7640e6b50e9cf019602cd509a84bde3a6069400aa79e062d864de144071cc35a4c1b5c328", + "0f7514800b0e748c6914ad6eaa1906d722bbbb2b3804f349e00006b8fbf06e56eec958fbae45834c7ed203df571aa66277437e7dec7724ec563ce3be2095368cec777696d01c58b0c1f9e1135db4d277d852b61e5c1c592cc992aed4836dcb5cb1e3e8191e92", + "3335ecc4a92e162cedf0c115cd9b409c5c1dfb28540b8d5515ee5199cfb784e0e1cf59d3480f6c" + }, + { /* i=3124 cDividendBits=1532 cDivisorBits=510 */ + "0d2e6d50de850cf9604a77945d0bcb1b08d71d08e3275dfa3267c174eac591fa177619bf22c162f7b24d1b98a5b13be106e14357a5a74793ab4a95d6eaf3c3b8d3b124c5786210d0bb9b5401ecafb9b074295ec76c78fca515e9e2323050b87e3e87ca8fc9ef4635345e872f330267446ab1aacb6862c188b3fe0da8dd887a3b6f6c83983dee5607b773a640e110e392e270e5bec0807c52e0ae1e249c85e7f5a08aab19f1152665f092d82225fbfdb6e238c528cb49ab181469b2d16ac992dc", + "b8d27cccac9aef9158e4efeee25f6e04c3ef9255b83b955d58714141eb0f77a76ca4d7049bd978bc5340bbb8cfe20095212e581b36db7817a73d81ecdf5e8f", + "1241f811d7702dd44ef7eb4d71e607cd0a9bd3ad5cc31837adec3d83c3fdfe2958ef2ff399fc7012b29ec1e79ff59513ea65a9ab6bcaefdbce498326490a6f4d4880c31ff0eeb95090421ca813b70646cc932583d133df1b911fce734ee627560b1b711ac2676ce7cecc63e721dd78929e304f6fd529a7af0f427863158883d4c9", + "74e31eeaf412dafd480bee3be3c45c92332738df913eebd43bf619c2d232d067a47efd3329b4729e525cf7089ac63aeff74e27c9f5be3c82ebe06119ece895" + }, + { /* i=3125 cDividendBits=720 cDivisorBits=259 */ + "1689bb903c85a152910804ca902b7520f12a79c856988125928a3aa5a33d244845b4bd5366dd59a11a7503a10bd9646e848e0001a573c716d16abc7700b9272127b2879705cdd1b04afcda4a43c36820b0f5e0d732c61ff46ed5", + "0632dc454687604fa13c2be7afd8b46303c9fb297695dda32e0ca26e843b306e55", + "03a2cd1a2a04b52da88ab16ed8dff1e566795e8df1c8d3e27e41b4552e2cac594a44fa30a401cdb84e372e37fc4293938ccc6c36014028876fef", + "021f0ea9889df29cb87655eb70f63815ef9ba3036d708ddec797d3fda16713927a" + }, + { /* i=3126 cDividendBits=519 cDivisorBits=116 */ + "48d3f67849dad113a2c8478dfe4317eebc42ce23ee8674264e2242acac1ea670cf6fc1f4908d572a0bb06a90c579d5cc8acd6fb4136a9b7c66a26a3a8f1aac5194", + "08e4404cfd370c4cd2186da589911d", + "0830ce09b1bee00e52b7f81663cda21cc8606750f2ffd1c058ebc2ba0bda2fa194e205c50b105f5eca186b0bb4641f898baeb5", + "02821fe8319851846907a840080213" + }, + { /* i=3127 cDividendBits=107 cDivisorBits=9 */ + "04c14f67ccb22a042479ca1dac1d", + "ff", + "04c6157d49fc262a4ec892b05c", + "79" + }, + { /* i=3128 cDividendBits=3532 cDivisorBits=2861 */ + "0db3b82b28c098fcaa9fbe3a0abd3f1bc251e2e124f318c02bf1d60fa14d86d37214d5ebfd4aeba6b8c7814fa23a5e1c79fabed185f79aff1c956b35289210100e579fd00e31c72027400dbec24837ee40f4f36a530c289edefa7a7eab40c67a0da7ffaff29b702ba86f856d21470f22075bd1510461bc0922f8d8740267c284863405eaae62054c1649c4b2dc224690315f6bcbe04c71975d80382ce0767cfa7b5dd68e126cdff10c70c97ea318944691a0935de24f2c090873f211cb9b4e804fba27fb1775a8de8015091c4906bdfbe8dc554aec96ed4cbd69e2745fc06a6fefafbea153b916b9e911fc29c255cc7ce3572514f2e6e21ca6f1b9d1228286399828d55fdcf28aec6d258c3fa49d40b93797ad02fd51e72523d2f0c8abc0e29e69c5a02ddf8746bb233579a6d610af5ff2b25922d02610b1f146e85fe995531d964c18e90e224d0d505cfc7fce39fed3bdf8d62e1c7ca2dd32e36a1a78b1c9601bb244e52c2defad1f1a2e09b942ca9238833a93ce7bd9aa383d7356543e445ee62af8b9e627b4421635f8d8c42ca4373f8b720881c117c2f3cd6accc4e98867015bf9ef541219be9cbf0b3bd4ab88ca39c170dc81a55c7e2df0", + "1aafadcb4cdbcb2f00b54662c01d8b125d780262384151e3b5fda09e4de7782b4d35dec92232a6db090f7e63ebf18bbf87de389489abff102817b5ffac89af216f081081e23124d9b613b1f0213bebb818b8a93af06050f1a42b163a386191f96ef5a3fafde7ac1a8500177f50b2b1327957a6a5bd4473eae1ca32cf4e78a897e3d5c6365526a8f67797cac48dc0cb9c0ac655cc390fe197527a7b01914648877a13d025a6e5dd122d5e39518a3dd5b6f1acc94add8f8d5cc4c6af0120b4bec0303f96c01b20df0ffa3a54235e834605746d419a069fe8a68f27ebead0cd1c1bb359c1f83c5e9999987885e62ecad640912c7c32db135f3e377c514feaae80656694fb68a7a41c12d4f58851b3d264a8fdf752b21a584e7fc337bee1d6e61abc7021fa8ed1aaa0e1a2b69d73723bdf27bf9399db293efe0caf5465026fc98a8a365b9c447795932ebd811a29242c79d5c9b458cf20d04e33b5fbd32a237a28533ed6b3ffbfa6", + "8371668a4a36f47d353655890e0635383ee519e2eaeb8ae8516fa4f571d78196ce0384ad367aef4552a5221d53d987960ead755fffab08a129a6e396fa6bdd8ea48dd16174a2ad82e93e4273120f18aecfb29488", + "08d8bd0b0e22a09cca927c21b0856133c911ef4ea1753c39cb038b9965bbce66c027b2399c4c3ead2f639818a4de7c913947c8f3e342284647c5a1bae89d38ddc5a86ef4d86fa46b9a1c7247e79e9465d346408baee0e69378b80fb7fc6ded7917ef1a7a64ce27e22e64eac8c6d9cf9634efedbb7b34524f9dba5e42baa501949c6b3a214ae059d93c2b7b2b0d697bf1efd1d5fe56d012f9653dac1abded8a8510d0a7f7a34151d37509e059c9b05b1d381eb5c3fb9c3e8341d0e3574701bcfa1799ea8ed59a9cca3e442d309bca36c9253662fd5b6d848705f69c06c870f81f82387daaf55864643bbcbe652440db82de3313a36275e56d55eab5ef9025ceaafeca52fd0c66ecb2b62adb7cf5224372b0baf859791769a6199e3401158388a97779af8aa9d33e1f98ee7458a9746f0320916b6c5d33e9d98058af06335857c2dec07bb717a2ebf6dd69245490debf99f81c5f8707f85be57032432426045ef438e7666865c0" + }, + { /* i=3129 cDividendBits=2533 cDivisorBits=1075 */ + "1903e1a6a2cf502d23ee576060c91f4513821d49609dfc668063fbd65902f62deca8579288388f7588dd0e3293ac6b2a236d54b9aaa0a2d353f45fd37ed6dcf4755f5332137d3f7572fac253fcae779c3a732f7d655279d76eb94eef5cfdb7a27abbfdae57da37f61fbef28db82f3318e4d9ecbb62fd3283926dc61d66a1363612f539b7c0405c0cff41237ff356a0261f5f80fccc7d31a7a126c8032411c0cfd16dbdf5ea9fe7399a6a6191cefcf8827c1f7486030b1c70b6a4e1f5b28177dcfbc82f30ec4aa8aae16ac923805227c46c273791beaff096b13edbdb6626fb38d50129276de76a6dcf5a999df7e7d1505846205e773af5ba670c5aa81c04f891ad0c24b7dab3bc1a3dcae1137aeb79104edd364ed110a632561634711ccd749d2a786fe6f50f10e4f032c4cfcc10ed33b1aaccd8e4e93f97517171aaa2", + "4fa3014667db738b1772c7457f474cc80b5e5776579810b919dc2e512f3aabc60beabc573b1a43c1a155e59ca2cba20ecce3f6b1124e8e948c7b6a80c42b502cd93d873efa2189d85ce73daf4c2a319ab25c32d13039c11cb6034940aa105bbb02a195e7bd21ec0350ddcded4039e1a96dda750c5f0c3d011a951f0eb85f7630784a6785ac5e", + "5069e5818adcaa14689c2f7a3495a7eee17354fb760f46c59d2163fbb1857db0918c8a0bc0e6469c37a92941f092d4a72af90643eb1297ae765865f3701e5a6910b384a0d935bae4f54bc263f39f0345015471b9bdc017a821605fb11a2409dfda7757fbd7ea3d277fb5bcd76d800b3a9d618978535b0574ae045eb5567131af1391df56444435ece0b2e76226029f17acdeced7d69d1f7240f266324882b2dad2fa6fda8bd55891bfc6bb49d9af98bf9d7b8eb35472bf", + "3fa723eea3104dabbf092ba523fb6858e74dd2117c3ff9d7c149df32599bce2cae0e7c6e67a038627c79232636915e7650f99e26fc27df39c0f017bef10b7cc19cac121a2f89963132751daabfdd99f3bb9ab3d98db1c9199f304bcd0cdf69d62390973b3d154977476255244a0eed5b889a8523ac5f2173ee93ce52cf9f291b802e651c3480" + }, + { /* i=3130 cDividendBits=3419 cDivisorBits=1261 */ + "02abade54b54999e3c057d968848d2fd2c2c4962a285729115b9d767a46346c790f07b8e65eeb254bd17bf6650d080785c6989a4883d19455918a6d45ed6703073168cc554266f4d3801bd2e8ff6334a75371dd98a500b1fc8a5b9fead0ffa58e5cd4803fcfb343c30149649f4551e162b599ed0c61e70b8b39e61ede6a1140fb973282307c584a6429f23a64ffe3eaa424215a6c460ee979c447bb8191a332ac2a62a78af9144a60ac38662d6e9c11c7be744d1204cf41ef7279dd7ae402e883e7184675432a1ae158e1a951f477a93f55c2534be6e709311bcb0abd5661caed2eda9e13906ccf92040d4e7ac8d94ffd963243a6de76064b1d9ba5a4bb926c8e712610be5041c3e7ed2e46d063222154b75f599d20f96d0e9b4a69ac39d10941b35d10b8da57441fbf3ac623276b60b95e14b23c56121b883fe8ba0962680eb2741e5b99ea20a306e3ab6214f870918f1beeea01986747488bb7bb98aa6dba3510e8fd79231d1da4ebbf073bb062d27661c7751c3a850600bed5404432432afb2f6dc1db7476f877a1f7aae1913ac4783697d7aee45a87bfc2929d19f4f7e21089098ec24406944470295e5", + "1c6acfbee885870dd3cc749c06f9e7a71242e83de7b2eaf96d244e3fec5db15cbfef98e6b16af1a9b43d38bd447865ac9cbda2702bd0649123698c5c2ecb0e0c8348a16b400c72cd4012c55b298a9551e87470e9a8c25ddd2a30080993362b97f4622e35003df74a3fa535c63a5a1efdfb2922238215b2c5d38c19de60affa544456681bc5c852eed99f47a17d3ea6378bebc23656f1553436a2209f3aff", + "180f01735f0fc736152d4fd01bf9556a719cb7780b9a34d20c42bb858bc08a2e6f2490e510be5c6b37302e8a9e616798604ce7e62ba6d97ad19cabf0c6b1d8c99310b0db5744cf89c4e957810085a2ad12fc4ef252791a5fd76a9486c5519e6064c1ef27662b3628931866271903d82b0e58cc2d5251c03da323b04c1907a8889125744fd8b0c0c21a3ea08e0a0adcb7655e1df3decaa3a9cd9c2ef719757dd9d7ffee22faeb6ebec831e105d618bd41fe4859045b5d2cf49e88bf0a8a25b19c53341bf23544f201137ee5f1ea89cf396eaab3d22a039aa6d6865f03ba8b0f88b307d74eca347fa54975d56f1d44563245c4a348c0b2cee0d7884c26cf047b11c305ba774b686174b3269119d64e", + "04368139aaf0a4379310eea63c716ee14657c72738a9597b2e5a0830e2eabef8c3dce2822ccb0fdd09cba600838b15fcfaf83f59dee795397260ac7941e1bf5e9d87c80994bf9c0de67caa95b34ed778d5f829f0feda380611a389ab341ac29a80535d7a8491a1f73eec1f49f9d0e3a122642788d275c648e3338fa20b8b8e445b7946a41b59c70678b0f1bed0dc37a20e5a4f383625d5edcdc809467233" + }, + { /* i=3131 cDividendBits=1121 cDivisorBits=401 */ + "0b318259572e711759c68e456948b2631cf003f149570ff048ce8adf9cb6125659556835c5babc7db65bc328daf47db89c83f0ddf6db9458b1121ca9ee4c2b9aa2e6fbd3acb1ef467054ce963946c47583c55af7a373cb2945d529c2956965d8aaa8e50740a0a0e5e8b08da1857a79146a0084a7c494748ecd536d479e62f320255a85c39231ec7188f3cd5e", + "0171712cc07000a4b3addab45ef0b23556d56c02ded48b91b5ca0882623ea103a031f99f9974197117e947dff88323378fe4d8", + "07c19dda3a5b9e1bd057c36f29633ebaef13dee02a93173b08e03fc8b808226802b9b238508894d630748c1e3ced26ae2f70aaed26fa31897117f3eb68948f8803ac2963db7839178abf94cc589234f363bc1a811c037bf8f82e", + "0147a6b9edf018717b50e2bf199561d5e908733f389c0df7958c890580bab9d734ffbb31d00b411ffb0341fa20f968ae276e8e" + }, + { /* i=3132 cDividendBits=3970 cDivisorBits=1352 */ + "03a95d22627dfaf5bade9e80165f42b0ad00e9786d69f5c77a8c29b940dd52125ca64e660ddc45983b4f7b3d7a29ae59b7d4fa96e0c6c6b6cc24ab15b64ad2c4ff9b13e619d915cc77630f37e5d5f6e1d31a0feb549882e8c692314a8fcc6de26d44e1a33b7f3d42f6a5badca6a88e24beee546c468513af97df6c7620e9198bb9cc61318d84a0d84a62123b49bd1d70edd8b3f72ad5e07f0e9cf96a28006e7cf6e5f174f58532303b31571913e18ccd53ed149087b0421e515c36c587e60e796b3d7ed31224df7758dfabadac2e87fc3fab16a681cbc1cc6589d24a2a732bf4a1f6c13507c4d7ec4f54ba6ff6663b91651daf11803670a8f3d078cf394a8c047d4ce1b6b40438dd3d43faa19008b5bd07ff38820a4433d408c076d121dc65f1703429095623329e44db7fe4c18a0a4fb45d6207c4c87c067c68c45a4ac8a26c8a745fc2baa66b3fb749140dce8f457e74eacb3940cc541669af73dc4a4a368c47ac754fc0fc302f28f47f523f73eafc0915d2a0883f0468f49de033fecdf9b2fccbcd7f823dbf9cca918d4a0906750d2ad63110d57b693cedbec30288117360824df09e8f73b157805ef7d659193230ba7267fd0748ec6ff7063b4d9f6af81252942d7ee04898c119351285fbddf35942ce3599d89703a3970cde702ee7b7c6adba4e10ed084b014cbef6372bf4fae3bd", + "36a63649404f8199c06a7f4a95724384714ba54618bde9f9dcbe34d1eb1e6b995de2b465eefedbc04e46113af6300a92e2bfbb76928cab2e55de6b66b4ef71b8e6055ee78cce8ddaf3ffe69fce3374d78b8db44ae2ef79d6fd7ef09bb43fde58f7ba55be648d4dfcca10d8ad2f1a0f1b53b4a403004259b0c90056cbb68c39134676801d35a04ba2a6be78228606a6569f7e3eb5f3fadb2c35fd5a45048dc7af73ad9614242d10cf1c", + "112700f97246aa5f7e319c76790a4d534aa8a1ca06d3322f20fc63750048c890149bc5e89ecffa46a3540a77c944dba08258b0068469ddddc25c551d68c051c81f99e4dc34179212e965950e89ffd265fbac6aa1a9413927f477ff3223702e5f701391b34fb43dc8e58819e47633c8da688e56a56c282b36cbdb87c50e9fdce9b99aafec97d22ab62d08647488bf6c5620295602840ea2edbdbdbe10a5e2cd6297aa1f8c6d7998be4cf7870636b4744f6ee040c6f1b16b9160118fa09f20ad73e9a2642da270a68220112c8cd874f00a3461513b9d14b87f005c14a5cd9265600aaed3d8d8f1129153b6e88b7d5a3d5c790b574ec99bf761479ef8a63047dd810b4c4a6129518c89810bb9ccb7c05d8b97251a2264b4b4aedc381b3f0d9e0391c8e3ec4bb0a7e30d0f52bc4d8db22fadf3f82b1ed28a9512872fa9297d9193d196b4373522191b0b", + "0e1ad108a0e710f15bb1527340b3aee88c2ad7f5b70e4b042b5130064e206d29828af81af0517b9f0a341e6e6b25eeee8fd8a2285595f57e9f5262d5ae2878265732ce43fcbcffe35d26576212b05fae8041181c09ffaa7fc0deda390d04ae6f4b7f3b33263070401d5fe623b361cd98c9d4031176bb4c90d123a56b66a7cebe233372aaa9446b693ab1e9e46d48fdfa9ef435b93cfd501f4581a57bdc6b1bbd7cb73501eb4dae0989" + }, + { /* i=3133 cDividendBits=1101 cDivisorBits=486 */ + "1fcb0a8b167085fce09a22b323eb3f1d0f33185d8311e48a366673a0dd30a802be41465e018ad4e28399e97f06d4f76d2878a681bc3d908441e041db2797778d034683885e502300a6f27ae5e0b149dad77640141f09e62b914c1e632e7f07060bbe6d2edd9dbf9c982659e6be83c896079d9dc36253628b0797536e331bcc22197fcd1e7f9216bb5a4b", + "276208958555c4cbc09472033c43bd5e712045c21a7801e91f9c1cecc1c3cdca6401d279ee74afd3503c96766c3ac22cbc4a08f2399930d75849dd9d53", + "ceaa037afdbe0a79adc7e9edb9631bb7ca98c640327756c55734d79716e2965aaae1cdaa254653436d5abb5ffe0b03b36ee673c94fa981babab7348aac034507135e6f3f5704a583d6c5f7149d", + "0c624241e0e5528b6ec3960c9e0c275dfcbc6e36868448c223cc5b84e79c4e45f1e71dc5e42d1e5796f8090794c925053c1a298043790ebd61cf726264" + }, + { /* i=3134 cDividendBits=2963 cDivisorBits=99 */ + "05a7a11666da6c09a9c5b92ea01aabb2cee4c67e0d74ac44458c5d7a42b6b5defed83d9364b1478b055c7119ff81ada10535c8107b11dda4f7efaf5dbf5353f546f387b70bb03b8a01b09eb4dcb8e6daaf7e7c4e0b8aafe1bd0f4f5b86e29dbd328cffca579e932c59792f39f3352fecb4d1321a0723c6fc392b704699ca556a2116556aad2506e148eea2957ef7ad5e1c9871b62e46e84addbba3e31f03e7b42153b1379bb8f29d094757f65138862395e98e9affc8986b09e1e98dec319abca1cd6859a7a97ae43b322a65e5922480a568167688e2768cb546eb2700f8deb2014dffd41abee178ea42151ce549d7afc77bb7e2b84337b49aa7e3985fb71bbe0fdace6e2bb38839c17bc8b24fe2717b047600d6326f417b1206802bc39ae587817f4640a54f0e8b1ad4c7e45fbfabbf0796bbe65933447f5eba89a5c77b42453026daa52c519e8a667296c582b7edd965f8d550d6925c20c824be38ec422bd7f8c72e6bacd13b6e39f496737375cbef27f26d", + "019335d5a7141f475b48fbec5c", + "03971b315c34e71015bceeb795e8e23892a04b454b9112646b2da7a59f4ad5ee7046b02dfc074747fa150fdbcb10b984c1059056dc6e989bf4c089e89ec7333e837bbe7586d28a649f3f67cb11bac70f76af2e1eb52fa6ca5727739efcd0bbf00889b4e0b092de5f66c12999306a0f0325f262a630c060ed7ed99e07f7c63c7455a9b255a5c06a1919396975a25e550169512273074faf6209c2ab22ed9bafee9e63fe0c457a421a0f9ba3d28a6e7c3d80387b76e601a3b0f1324c98b0da48be1a39004d6f4e770462b51d619282f28dbf3dd1f8981603f4c708e6f82a0df6b1a165044d10dc823c2da420727912fcb479c1096aba22ce2731f38a93288cc231eb18ee7c9170806d248994bddeabce0245c824e44b5b320dfdd259e9fdacbf531407c1a4a59b06f78b9ab47220ecc2ba29f322a54be13c23b0e40196a7763a2f5a1e6db753e60b3306bb6146d9cd7733bde66405374a52288cac4fe3dacc23e9fbd2031df85bd7", + "013bf6e615fa129a48b16fbd29" + }, + { /* i=3135 cDividendBits=4075 cDivisorBits=901 */ + "06a9474409edf6c33bddb453ecf37df7d75f295d6bc7d699e01eb7b6acf9a09fcb647f211b156f33e1aec86adb598d8fe1885b4bee20d46feb4744fab70a6a7b31023b93c82af3a009597ed8f916988a2c64d0e57aa288e0959126766e0fc1f79d74bf9e70a7cbaed91bc38199665c1d8adeb045d1c5e1825708d8023965909ea6385d540356ee56657f1819937ade436dc474bcde81ccc0982c73d10a069d388b119b38982071f3032bd6275d0585d3838a35512407a824cf180660ea250e07a82a4b7402c6f9f54911ac89ed57e232cc2cdc5c233073d5d79e90f53067c0086c0045235c737109a15c91499054e513cb6c79918ef3dae24d427c65d337f33d92221d607229e65807834124d95f7e946ae6b3b5ec2879a9b1b110b8b1a35480116db2e74be3fb0e073f772c679304834da8f153a8180878777e974a601126b9c550e8deeb77b1fbb7d8971b6c2d8e415ae195934938b235f966cf33493fa87094bea01547d2f3c8bf13f516daa3704ccb35e46764372cf1772fea7987b67cd5363efc5b9e6fb8d94fdb49d2948011f2a43f4fe3f113720c423e6da0a3047be0566c2603d854bdbdaeb602dc2673f0a28c14d2355c6203e246c21f48020c68d2f7f255b80fb57e025adf2acc6d010f22b00c067cf13c8e7cfa4270e1706e01a13d9d905cc8eade70394d0b6dae95db37f8212e5c8c52a4104e8afaeb6627", + "11820c876dc06a0e52341c57436e210ea110468e78bdacaf008f838710bc5ee37aa9e894ba84e1f750f4556325fc24b8a16d1adcc8ca085c79d1de7d546573dd7fb68c556d52f6787c3fb1e7ed44874856253d084aff8a28ce4c3e4090092f08c31aee381846fa634c69b2b519f3a89787", + "616661ff3be386da418213dba31946583ef1c2a4d08a8284ebe7bf1dd8a6c155b5973e24cb941b53976644a6ed5be97ceb5ce8752cffc4348134c4ef54557fd017cedd9fd7f730f9a1d514aa97a7076e7d9ad2ccccbd19647da165e750d811c6b12b675b946f19f718f53ac64ff5bb9516fdd595cdd8cc2fbf9cda4d7dda305bd9758415086246a0089718570c3d63a723b5abab0e2fad57d212e157d105577cafdc28869e91abfcbc8495fbcedc5242293558725f515d89ffc9e316238ca7546adec52a31901a979ec74e20c78dac2d02cfeb672ebc400b03cdf4e7791bd6d255d4b7f75fdbb6abaa591d7907c8adb4473d2080ee8e65b7e44d409a4da7773b4b99401725b828f9d3ab6ef0e5087781ad350a71a43a2595435ae1e853684a42b7d63d05af141baeec688d54d3c08b7767aebb435a47dd360dd22785a82c2a41d8fe87030e50c89b2d7197cbbcf215aef9adde80d6828f03d25cb1e11086310cab79bfebf1d2793fbc760a218d86753ee5a979b8e1b3e5ec7ae68a5efd39ca42703498c41bf58005071d710932", + "1052444f65d18d468e6fba88e6cf3d0851e6730408ebadaf7e620301be34e7d79ca6f31b28131ac3c35ff7832769b6aaa0501d0a5f8c95eb4be3108d51f2b89c2799721f0d6805e61faf0abbc23fa4938d49f0cda2b52e6cb8c3ebd6359d2e0883a40f651017b99743eaaa97a249130ec9" + }, + { /* i=3136 cDividendBits=1610 cDivisorBits=443 */ + "138caad823500488c2afd3931001a601c2231bb4f7a201fa75c86d79df72946f9bb987b2a1f720aa419d93e2f9b8c261684b4638a79c86eb7e2ec147812bc062970ab57a425bbaf256616a4020cca31cc4ac569c3848ddc34be9955d42ddfbfbfa0a980fa66a75b87ba6487b5a852d5fa87ff64b5617b3a614af0d991d9dfa3fa767bc39485d34f4a8ead1a7a438b03221ce559fd0a6cc13f3dbcf018d2d41095b6fcb28823e705495bdc49ef873e29f1d48eb1c2dc0d906fd75eddc847116cd6be2b0e52a4dd2defc", + "065375b3ad9c493257a626944ef141f4ede580314511752aa7f7b1a6ba83c51135db022f10fa3b9c0e61ff3d8b86ba4535768e9f714b4052", + "03171ff521bf1c2ff89ef702ad08b697c4e61b2b352e2cbdf2ae7863e7b56968debd9ab9d39cb2e109fdf0aefbb83f4367394673f797ebe6c936e81a2cc4d248978c27ebcd8d3899b3ff0bb5fba961cdc08cb27e08c472126bedb7cd4e982c5c660ea1c26b0b5a787a239ac3eb1e88239b5a879165b3f68e54d8c4a8fa5428af3f9d9efd8189e7d1920f7ace504540f62f9b", + "0104194025ca745eb9ed5fc066a48834672dade34cea6e16b20467b1656f2252754df7aafdedbcb4bd9c7b8fa99778baf2d1a05595a7df56" + }, + { /* i=3137 cDividendBits=3576 cDivisorBits=808 */ + "d22ab24e63712d4f85c73027a0c9c2f711c61169cd4fecf6ab36390912d3f446eb62eac3aa89d87fba69c5938fc80f65596d744d4f6a6246228401331ccb7000d2d2aee1dd0c57c7ad66682628bc5fbae95ff2429d1e185b19ffc3b35b55edc41517da3e37315a96ae8484c37bc6e9a4ab0467e5f80aee4671c712d1388329dff234bd861647b3fb066fe682c5c010f039cba5303778e5b0063db6e6fdee225e4dd84d8158f79c40e3d03bff200103d701667cb1987f7613b73777f9f10675b8b600d8f97daa2d7f0a5cf7f72345f4a427c0f18ad64b90f6e411a95c8a34dfb355be97a3492b066a7648909967dc455c84493ad99f2d01496b3feefb88aadea19338fce256fd03a93a27b35d0c022b3812ecdc8ebe82ba8a4a84f18b5b6f4111e6e86a40df6f23cf925a67dfe557b1dace2af9fd9c24d3c7d40149beb608807e33a983a8ba58606b8159f84ecd47607a430873edbdaac89708ae4269c54fd949ce5b40a4ede6d919fc1a5aad649f3c9622a0f268ea11fb76df07d3fc70854950932291c2b6cf1e0c0f6232432705dfb32ebd2ba96b1c75c26328306e62aae4f45b10c563c6e0f290248b550e4014f5d0fb9ff4318f445c6ab09d1bf841c128", + "f1ffeb5cf081a5384e964355a1c045f204b67d0472690c92be96d97043b9650505f679f0e1dab702f16e5accf0057a8761b3563e379622f3e24241a0e3a6abd2278ed79ed9e14a8377338f3dc293fc8df81125fe99420f8cc3fc1481c1fe59bdd2ca8c417c", + "de5352c1115db0f94b5d1e57654d7c727cabf27717cfaec20f95e726b3abf68e028ef1e90736ac8212191793041f90ce219eea4895d2cd67c35def4872923c9990ae2ea36596f7064365aa2102f557c3c013766b7dae7bd9d595f7f977641a583bc594fd44c126876e2b9adc83ec411589c474a6d75a0e107db2bd2159a9b3ee7a846255d251e65b7fbe018f04dff71e5c45ef31befd4f3b7ebab4d54a9ce217d86b440b2ebb8665941f33a8536952672350fae89a95fc2de92ea6571e1f05e666db06596466cf608cdacd5af6d4443b2a2f2a41c7597d7e8172d11b2de2827a60d0ba9147325689baf73299a906925961a098698a001485d98a23ec58fa6c1d8839bf79b2128648dec1c5b7ea229a886eef015148938e273bc5bd5c88cd503e4bbb8d487a167c12289ebfec47dae10f03893c57544d9cd854936389940ee2712fa74467a3777cf79c2c6c6d8253673469bdf211dfeab3e05ba5", + "e7770be39aece35ca7931af9a906bd54d13ead6138e0c029504e3d3c364a9a2f94866ab5a03f9a142637aa34dfbd13325512cd7dde394c29f344519e6d0dc0b9e8147beb3d8c71f8fe6ba63031f373a533c7615ce92d21a154752dffc835d32a649014783c" + }, + { /* i=3138 cDividendBits=386 cDivisorBits=313 */ + "017e2410454061ae991a721c97893c4702766919b4fdd24ec3a823b0956a1277681692b9bfcb32c6257d47c4b438f52a6c", + "010bc9ef77a6d5d502bafeb6043805476dfcaeb3cc7bc422b6fd8a71cf5bb437814cb563f9987fc0", + "016d51663d9729457611", + "2b0d6aae05aa35ed052f14e553bf97dba8ca72318a2601a59b8efbf8aa6dc26ec3d7342c322eac" + }, + { /* i=3139 cDividendBits=1965 cDivisorBits=1187 */ + "1f93f07f2550d725292d61dea262b8865ce3a02182e81e3a57e9535cc666c91343a356c170349689e391d38b859f462bbc61be9a1915d03a01945487b0b5edc9428c5109ff6f4777d16eb5abffd8bd6c582e4599d0db22ab6bd23ce23677d3f2ef5e39f49a6cab4572df3f31950aaf9d5b1db9ff28dbb5c35a279b400d8c5b9a87f3744255bb84c138cd18bd4901c477de13a794a31125949f47c95a2ed5b7780e54b6abcf288775a154013ec7f2c03272835be912fcc3e8478c9671507c51a2c1ddf35ea96822934ff19a94a4e3d5be4db34c060a657466d7a9d5195468eaa0a8f2c421fc5288f60ad8bdfc2f8d8c83e6c05864cc82", + "032c1634df52a3705d83fa665203c161045a405f9e038d06f993071d36741ac5d9c7a99d2efd5f6b126d82c478b480e6a8a6d603b6af0f257873bacb0e69b605a042d1c49db2e7a6a11b087c70dab79a1f5cdfabdb3f5e8c6a12e633c630805cc4c43bc0368db6dba5080927f3d537cb0a126276ad89e4834251441497a431bca26a22cbbe116a104e2df235b80e819cc5f35ca684", + "09f45be206fc1c4e2eecf247debb934c28ee04bebb0a03b6d48bbb5114ae20ef7c7a7a647260ce9d655e96277c16f75ca5145e268944fec95af9cc345d55439acd5a53d2478abd04adf3c2fb62aade2c3fec451a73f5bbb49e822148e4509f49a9a2", + "031c003b91dbae06954bb7c64faecf35dceed989136f017460a7f34e5cabc05a4b16fe3255aea7acea253334b5313f175f1aceefa6d8cd3a79ae5db2fd622701507a18b462b8f8cd14faa9b6d90566a95b9a84a82c468a3cf7892ecd26afb1d0d4b58c1b758db3eaa0961f3d84ce21703253a165d78305b698da82b3ac968ae3c2409c79f62cabd7ae49f25703bd0579bcb63248fa" + }, + { /* i=3140 cDividendBits=3988 cDivisorBits=2063 */ + "0e760f98b43de532c76b27d141d288dfa6f91cfe938107354080d970be0977c2f1783a3036c30c322ee4b99898fbf57ccf1a1f431b38c447a9e8056cd5bb0de7ac24b0e1407b708df69ffef26ddf572e5f7cd045b867d51686390b694d2605649c6a410e63b062e6485388acd179401e980e1f48af5d9b0291e4e56e617dee8e0ea564663864b656a5fba40c1410b24126f7c67cb7a826602e5696b061a6f28a45d16413f7aa53458650590d94baba24877af18d5f1533512ee317da9d4345db42fa9fe8f8b9b297bc1f7ecacfcd27c4acc9277e318ca9422abdd7188dc1138f8ab6c9c2250e2aa6ed00eb03d02f2b16eb6daa625e07bb3d5ae580d83a2f3da351670f9730c8ef3c1ae4f5ba5a16ba4dd8db750b59c2f0ae44e27be878c918c54b6fdca72e493dca81b158057c6149c0c6d448ee69165f20c699b2fdd6d40ec13fccf9d30244cf5840a1c5cd176cb2610345fbdd13940824297355c56a8be82925b398dd616f3219554819aa7f5a5207ad62c6ff2e22448f9b5e291d7b9b331434ba1d8a7172d177e80549ea371a0441b47012a24a9c44d2f9a2ba8a7b9f7a5f4502a3bc51da9b77b6884311ad90490022bc1ee1c19489066c7b722bcafd80bc7b66f2d721ae68c8ae9e7c7ebe688550b68567fab862816e915d6944e825cf404ce5b6fd122cc72a5e584c7b45742c78dc3ced", + "1b9b3bc3fadc8afae8928b8f98f698a784e14f51bb063dbeb7e7bb71f5ebd5152e92af8eebf9cccdea13c3f7c00ff27c4a66f436df242b1ef7525b9af23c71f24e4941d4ec7a486a38e55f751a82006b37216c6eba03db191d4dd0fe8a21f1d9578b8116fa7d536b3b9fc651d9f65c3afd753358933b4bf5a4285e1783ced7b2a7c7cf3c1512ee9d639241c34e9e25bacfb71f08b9a8d29dc68ff81b10084e6dd7b8a87a20509fe68f406ac8bef2348a3fb6e65fae608fdbdb4e43c6cbd81107dec5605d6f54093ab8438671322cc305c99c95bd52e407129f9b75fa27d4b8bf5d74526aa2e968b28888b1ae460acb0b718594bd2c0c6496b391c0192ac50ac844e3", + "861a0512b8f48f5b4d13bc54d51376b06309b0ad2d16f7a4759355d8068ebe4997264bbae83a135d13b1c87cee9bf40699e148f21d042330d8858003f611e747ab3bd6333005f95fc9dc851695294e7b8fdc69746defe429ee064cc3f0929b61d541bcec6b6e0e8b4448400a6f0b705ad2d67085ab9a77b53412f93fca3caa4246e702b4eed1bae2cdf62e7e368565b120fa2f97eabf3858b71dd52ebaa1e92437eb64f2b201e820b3bee6131ce10709ba99fb397ba635d02fdeb09572e48559b4385c671dc4f562dab84e6bdf9f337c03311026153f413865eb14074cb2bf2604d470854aa1fa73f20adacd26b68021af", + "19952ea2b7f957dbb90c39d58d15215db36485a4edfe413f61dfc58e420c1c4a40e626e990117292ca7b87b510077180e4acc55937503cb855f2e6aeb85ce4a22db19c4f951f38afcbd935dab099ca366257adc81388b67b55e5b405447d07e416b058e8e50dc3b4a9e57358a9456b0250394a940bd04ed45d7ada5664016ea78d6d540cdc9d0aa32bf09cb5f7cc4fc484a586956b68e436c885a153d9b86ebfeff68ce8b4975db0e27e0d119af419e8429de6e48be3e04129e7710f73824e59504ba5c131f6f28ab001431573274424dc2d0c7c4c5c2187e39ae4dc02851074b3d5514b369a071be43456d3c05442da7e450061d322989da135f32c0b487593e2c0" + }, + { /* i=3141 cDividendBits=2600 cDivisorBits=2473 */ + "79efeae3271b7f5176b22bbce7c7b0f7911bc78d10de435405965b41015e7ed89895d764bab7d9b4492be15804cd6ba3bf8ec3ad36659688c95d456eeda4900b7da9284d942ca3a87f847c99d165b7763db66dede60da0463d31d1623802916b6894f1d84601aa0826cb9bf042c6d25848363610d0910cb3aa805ffc5a38245281187d81ce9b4787155ad26b2b3202addc465793e4352e9cd45efa374fe1ed75434998a34e1c94d635c1f0225129cdf6d462cf5033278c7b9f7653bc712d2483124bc78cd4ad4e58a8acfed735eebe34bcf2c41c5252e5776f9bda7d94c713c3ecd06932a398a1598e1a1f40ee3af01a60e28efae48d1c65050e992df43d2fc4129918e858077e8d7f2133f2bef9a3e6966c71140e1aee06ec16c11cca4782ceeb5b2ab4f9c40c96ebd17e19af1f9511a013cac036042010e6279e906e3a4f2bb58f1501c6", + "ed4c842352acd5f3ea3d4f5c378a1fc83c3a6b8b82690188ba3145853f6528ff9cec584c8a08240f1034cc7f10ed6d801c67f8dde39c7436194186791148fd589136aa9a3e401d15251401dfed67f9816ea633efd3306a7b68ef38e907a6ef8aa376b1a9b1039530e4480540bb39745cd0d1560b1b45fd68601a610109062ad02708d59057a0170516abc432088df12b8bb1b3fc527b676cd93823f0f9786e89d0420219ace0e700fc894d0d43b76c7811fa52b4b3d2b36b81ea4c3ca269185de163fc9a0868810c175ba910cb2808d66213d938ab9b8be68cc695c6ca10ce5b583504cbe16ddeededdde0b44d71ac80d54459c0d62bfb79e06ce8853c899512a3bcb1103db3b5c7eab04140400c89b6c2fa788ad608de615cb5a597cd94745abef54a3b6fcb303722a481fe283f89bd48ab0a90ea", + "838bfd38dd792506036e709e0ff43fd5", + "faf8431d5b08aa0f9013bada58da0475d75136d72ec48700c791b4fde556b13af6ad9af27ad6950309133028ab9ad9a347c428cc258c58e90d3767f200e2f1c10410fca8e334559ae686f13df6da90661354e9bd8a73c706cf80b6c083d51dc0f80b8c64056c56e22f750e98c32a5d61f398aa93014d87c881c5566ad709a276640ef2ff65bbed8968dfcc24d33e270053ab07eb067c26eb129c56e9501053614b57cfdd9f20a5c074a7829979b9c19fe2b8693dd4e6566d546ab7791b3cb899e05099bac57ab125b04518bc66ca434acd540c16f194e2a69893e3086e20844481b524b660b42d9b7f4d7a9d6df5a96f676e9f41bdd5a2c921b31ab38cb1a2109685f3e82110053ce15517416f79354edde2c3e8b2daea7c98aab7f2d35a55336b6ab05b8c26010cfcfc1c87995f572bd098d914" + }, + { /* i=3142 cDividendBits=1300 cDivisorBits=693 */ + "0aa14a27581c8dbf793231c85fd921763288b9346408ff5f5d231acc0567de740c4380d585b072389bfbe6c4032082a4b28e67117a32e28a8d518831a10d7673bd4a3f453e477a26e3e95e4a5bd4afff04a84823f4850a29d166aacb89ba5f4bf5310f6121331385f3065bfd5eaf93cb4147a83b4cd5cc30f32931c05682028a80b344126cc7df005e54aecb71c33fe5f8d933fa929a010962bb42466dcf6c27b5ba77", + "143da000150d8e4403ca80bce816a385221c54c32a70c431c79adb26df7d66f31f90f57b0100ac9d4dedf30d6369a38f8cc163cf70f0d15ae5020c477dca02df81239682793d3dfe881d66338b2403aaee62b84a74aff1", + "86723ebf50057051296e38cfb9e1d994ee36d670bb07741cd2e74ad3f514a1ae46ca4be304addc03544b53f2ad834ea0ce8700da179afa47da4c2939a02c867114a11951a53833a9e77b2975", + "1158294e55048f853ecb8acb88e7c7288251e2d682d96279a19599c3d5c538df193c5b8b9f22bea2ad2bc46c5b689302ea5b08675f564d66070ad79cb73b1978b13efa18fbac4ddc3af3597103ddeb0822f3597068b852" + }, + { /* i=3143 cDividendBits=1365 cDivisorBits=88 */ + "106cbce6a41b81d3cd0de1324809757807f834b4029bf6fecfec3a120eaf817e6714665df8e574dd9781a8a98f5ce1e2a8525a8ae3728f57c959ae24ce4beacdfa5e21d420b85ba9b7fa37e7e78276a62dcbb17581942bfa7c51d65853ef97c4e2f1fb8224fd34c4bb924ff9c037be95e967548f8b2a01a578f692871938c633151377a01f81b96ea4ff95953e331d863f804aea227b7c17cf1372b7c384e23d6846ad70ea792a8a06553d", + "2524988241df06e336a1d1", + "713445f350d83aefceea122e53ed103bb62350733f73c248c6075869a757123ae0d8a26ff763cba4244c322c6e61593840fa79c00cd6c402f2949f3ad5ff9713b38c3fb051ce8b8cb8375622647337b012294a4a417b0a521127552c665f9e8a3b9e80afbcae3839b49ba46172a19235593a32c3188912bf3ba8e6c603d5bdc418236f3d76ad01fc0a39d2a0c2286286889e2141d79ca0c0cfafbb6dae45cac8", + "02fd8fa4d8dbcd4053fff5" + }, + { /* i=3144 cDividendBits=3974 cDivisorBits=2488 */ + "22f8c7da79241c2bc36088f633b124daf3fb97d539d52857dcf09e668b7ddb1c9daa3c89f162c7b9d80fbcc3886e4e8843bace6577c62e14d9d23f03a9f129fad79ebd799bc264a3bff0d67b31d372fba4af8dadc63a2a95c37634241c2d1f20ca6111a7afe9d5053a7996615f8f7843a1555765a4cf8ab41c1eafacc0070a1c3de2a36ec469601101ae9c639a8f4533022ad93e5ab866de532824b1b9af9a45f9446bd0d4e4ed870e4c30c3976721403edce6753c7167a4bc4193246a5321a5c76cd82d4723f316b71c2d502121076c6df6ac535eee1186b22af72203a29f67ea1a968e6eb329da1aa450fbbaa0350ecef14425b7bb392798dc6f7ee9908d39790d084b9d156ff5553a08d6365134136dd1e25df82ad1f69d07dc63324aedbfd1715f1e0221cf2ab5d346ada931bd82a453c01c8cf05e8fb20383f90f62215e89400288b25bc5ccc0b7ec81a6801d94200d458c0d77af34bd296892efb310404a427fe28da895f68716d8e03f6abea44d50e42dcedd0ac3e3def2433365ef8aaab4378f11d0e488c1745646a4b4f651eda4b8551567cdce531a806686b27c6ebc978bb115db60fa3d7a81690be29ccfb8b444c9f6d2ffe93b134770650a10c1979d1bf544eca9e6095d48f7537a4fcc7dbf66b7ee2955549a412c43e20a757d829d9da7804c6734d7a246dda9b241150f", + "ead923b27934cf5c8aa2454a6c40b31214e05d0779714a708a3e93e85ce75e29f16a3a9aa3cbe4c7b38d5be0ecaa86a7c78d972b4c824ef925d90becc7be5c0e4f6b23f2e41d5a46a1a4f7035b3687434e040c7b53164924aade82df54e05716e3e112af130c9580db263bc4ae3abc7e390a054a54415bfca27c467abf86697f2e39438149b690bd3214dbcd39350e71c4c1756be57ef2cd654e6ef9e2761f1f3785183d2e9d3c09f856123fc47cc8fb8b76bacaa1d543aff2a8d616575ffa4bea835e123740da1c6857c1bac6fdf2824e3fc4901eb326f562ae5026275718d4de7b06e209697e74fdcf00dde5a388cae933ee6865ee39d783482fe99b06bd44483660bd5097359f7ba41adef5d817cdaa1075003e99e4e9fb5bb2a3d2a519354d1d996ea70384abe95e46d6c705e30830a400db1839f1", + "261f1ece40feb6ec4f6cabf632499ad6a93c1370add7f68bb5edc2d9740cb7ec41b5fa6d783012ab62fbf5c9b737a62f382fd86b9ce1f373d1e2fab94c25332f333b3adf57ef1c9da3690279492b93b46a5dcbac471ceb1042b5718f3cdf3eeaedd407e9b3fe01bb2bf9d00b62fba5083c57056fb27a160af5d5c935bb54fb62f94af624d967e748b9149f59d46d2dd0aef6d1bdca8b48300b003e4107d149d87aefb54d11459e70fc007a3b1731adea55b6d8bceef471f2636c", + "e0b2461f96458fb7d52bcf44c0edcd11941aaed2de61605559643848ccb67b48aeadc2f7d033e651af33234d1fc256493eade36f3edb1b7d7eb60b4501a9a7d5f14c0de53729282a0e35e213fa24a799455991e158475bc1bdee1fdf477f7117586f13d89fd405282fc6e8f222ab6673fab55bc4ac07c022b9349b1293c82af44c4d5ff7f135661cd015a37ee30741e19f1d0f0430442cb6e701c001738034323b4a50c125d34a72c18830d1396434f7ddb36f6e6de42cfe6554d8dd1ef2c096381e599f6968a6f281a91ef92fb31e07334b49054768da24918b95d7d3e8b758e0a677097fc7ce9dabc0d8edc5e077b653e6160448ba4c5cd29f1b24f28c17bd1f94a4315a5ecc9237dd9404d9f8b699b6d60dbabc0ec332b8723caa1eff1d0a830c9b6764250f0dde9bef1fdc0d00b6df4264bece7063" + }, + { /* i=3145 cDividendBits=1992 cDivisorBits=683 */ + "0559befcfc09e7dcb5394018951282c0da83f8b730de77b8b26951875aad475b7df8621768be10cbee1b22314d54ca9e1accfdb28a0c4706712c86802855554a86b1955d90fa8a1584e829701f7fec876cb7891aee2847880cc8aa4fce9598a5fab34390db54d87bd098ab1ea417489d796942dad157e7f40d8a4afbe86f2c02ba2bd140b0ecc3b4784b2a12f39e1b506aaebadbcd0c095bbc1ee2ffa45228416780cea439381acf0fbb95992008f81ee273bd83a8c0a8a44eb88066b996d4906e56ee6dda7b058b5e062e83440d1b249645456a827525f8c37e5618681f4691a8c710a9fe5bf8d8245973491a0a033497a6748db813bfefaa", + "02f2d0c9d319ada60ea6db9fa7816943497277ef44f73d672598e1960aac5513f638c46a0256cc1abed2bcd77f34de39906b66119b3dda22f03deff816b2d46625b577cc7b00eca53daf7f948df6363bc50022cbe1fd", + "01d08ea294540ef55edcefde72a81af9cf22bde708b6d2b1542b66f1cc11b805aef4eca3072cf50fac833f960e65960e19ef1ed280de9a13898d605e3e83786c668702da054870b6b4387a5d0dd7b0dabcf0cb871845d0890e47f00142f24c2421bca1e15ff06f325658cbb15baf20e53e1ee335eb3018c82b041dde4a1391d460c4f82f44b1b645f1b6083777a14baba627e6f2a10956e20ae393cca00b7ae6b77b4fd4", + "01f458147d6acf3c2f794647abe32577902df6ccc08ee821a7114185c4467e9c66748d358c6ebb64bc04880a329dd89c2ba9e3c96be6af1fd0a0deb9df1c6cd9fc5e9b7437f9656c9bbd80348a1a487b4d0ee89cb726" + }, + { /* i=3146 cDividendBits=1336 cDivisorBits=1090 */ + "c1c9fcf62f6d60387a28bc6507f20bfcb2c34230db436708f75b582e093c0d9a2586e516934b521cee3952a8b542b366c3e0eaedd5236a577d81e3dbf9c7714fc6f78136ff7b2d8e1bdc6c273b91d88422239629df74a19d9b7fc366d551b8542d3986cc390f5e41204f377e82c030c98e9768c170334b2cb737d792fe2fda396838146435f0a860838010b6fb389f3581b6ce3639999aec04c69576b15b0b58efc515146ddd07", + "60c46f69e917c6d2e088ad5c14f555533145f9ae8e05a49dffde128ae805d396bff9911f5edc907d846f2816807d4ef4ecc8fce7161b6d815eb571969c3d1399e84ab010e0f24f033fb328bffa0ff7d268fc954bbce0905bb8931cbc00b3d7ab2da5f9de3af48645a506cb4beb2850a0a2795df2800d48efbfefc0953bb960ed3160e6d9209bcf70", + "0200ac45311ba85195efad088d2942c2ea359b3bbf371914e725aa727e0fe6da", + "427c8300293aed831ad2790d16bccd725831d0c8d0489838c2289d3ea555205e83c1525473492100a4280e14806af48cbf15604ef1a0a39eb1ecfd148d6b8bfd878757cddb36947964acc409ff62343605416ef1aca85d30a444f65caa788c4b3dcb2bb0cb14549974b3d1e690f7bff3183665011da684dc832699591cccb09acfebc3c90bd097a7" + }, + { /* i=3147 cDividendBits=1449 cDivisorBits=631 */ + "0123291cd557aff87de293fd1961fa3a7b1c8945c0b5c1eed01733000b6f4ef4deac24f23bc6b22468b346159a66747455bb924828656938d8026b3d79228fc3d0ff47fcc61f31c65895c999dfbd26407a4eeacbb79c9d44d5ba55bf5ab01073de15ffda0029df4735d5530f2a7aa1eebe8ba7ecec59c93c43994bab97512ec381f8071d20c2d1f248dace77f410575703c1581db50f92a767e602247ad898e6d9f9c48de52f2f46ce0550bba65252e3387f8ac0b17d", + "6921bbf81585643a5cc814b399982697fef0293ebb1fcd117a43153ad583f8bb6ec4e6b6768b90253feca3007326e023e8354f14217a0d2dcb47fa63d85f81fca399b6ea8ccc5e456e2f6eebc15c95", + "02c4fccbfe58b9329e3ba2fea5f91a1feee07648c3ec1d5735ba92b2cc0a21979600efd0dd570ed6feebcd0d0a36de6bef2de7e0325ba534087d5d2e5e0e3982a1b264b28fec7ccf5f262d0a15a7c4077b56a5bae34e4a091a9c0e5cbd5b9e50cc27ae67615f99", + "37b1b1bce2ef67a9481830dbd70c3dbab60c67015b4292f1492ee5a3bcba970a32955927f7fda2a2a5da2abc3b5c9cf8fe3565f08240137708e2fb606b2fd63185665df1a759184d48f4eddb601170" + }, + { /* i=3148 cDividendBits=2934 cDivisorBits=2624 */ + "052fdd366218aa3b20d792d929bd0018a9a93e8bf031d27bb51e9c0609673dc51a6c53e996658d3f2a94f68363713e61fbf0ef73e23e25d56542e9edec67f55f166aa0ae8a8a7b0a9f291d2396f0a1f75fb2f2f2f418363a8a207fc11ff1e191cc8f775a3c63567302ed48cdb682fc601d8f486ebabc13a9ec012c3065a46b52026917d09e09e6ff3d0a3cb3b7a42072f1f74a7d70e07f3aae11b553a16779e7b2ccd382f8ece03eeed105080421e4f6c0f26522782088c97cda10349183609a3b5128a3785dcc3e81aaa46075fa223e26e528ab415c687fd4e2b16ddf9d5e1a352a47ad929dce24dc73290ed4566bae1dd5f20ba4bb0b6fa4631cbb50359d7018825c3c1968aa6288579aa7b1053922db9c05c50a12e047c1fcd7ac7bca08a169fa3797dd11749d07eb6fe1af786fe7cba070c39a1496d070853f33acc475f3e87ad7dee2ca4d03a67a3ffbdadefd873ccbe28765e12717647335efa17ebdaa4576dceb75a949f8c83ae090a23d1a", + "7d2b7d72255c34148df2d9a6c2274bdb40e94fb72043eb4270eb5a21a1869c2591738d84c8d43379630172621b3c5bba30a16a63f40f0aa5e45a0e4b30cbab5258485c9ad1089905ea1a86cd122ca919cc03d48bc27bd8f51bab0a059bfdf5bf82ff2b9ec15a81011354435f1041559ff890fa899ca537dd21f0707b68f8bfbce9d7e4f07ae0c3eec71c8a18741d2fa15ec371ceb604697e9080597d3f4ad578e32eaf793c243af90c216e4838f63079533edb8eee78c8f84409ab2bf5844513483f027fcb2d3b38e5819bb584f616b53ac2f355958ec9972b7316f3fb57841aa1e3aec1b6e9abba740514fb9255d6a4b7570716d56bc6828c36fc39b1d2c4c2236a6c7fe2ffa2ebe3eadfaa79608a91f7d0ed30899076e2fefe090124f94b927bfa7a6fdaff4a516cca87d0959a4ac1ef00e11d050300959fed79f5a31ce61b041f11443b16db8b", + "0a9bc658a0a76940ad4f4d1b459dcfdb513813d28171c871217c11a27e2cc928ceb2a9813c2f3b", + "2f3ba8477c080be1abedddf3676e5fe8477fa1667c0224f16b5abb4eca99aad9d8703dbee4e9bfc60ef20f82bf2952416c165f5a82b83a0668355fd05318e3d2ab36bdc3b2bfe3c56ab8d3c55b98bbefdf0cee3be87058212e296f0ab5f5f0884037befaff022948b281c63a1c8670f36b5412a8b0bee1849085d7513aa9616c05bd62b944be229065c3a248de668ee3576cec2fb9f39e565f56bc1f8b2b0f5b093f69522a73a079eb596ea83c418216286271e8f7ee1c77b6a4e1d34452830517b4e259e88ec17d73c4c1156be3d3c3fbc2cd40d2eddcdaf8a99a4380e00aa780c4c6d1da6d3172022bc4a0eca2ed54042f65f225d4ba326c7b214d09646665f3ad779f9fd2e553343e340d7ce4967bbb110a7b3ec1a742526a6120ea690f2bf4fe1ee10d6536c8b68720d15238c8f8951758028532e342c8d0de0b4265d25c9b17c68e407b1f11" + }, + { /* i=3149 cDividendBits=857 cDivisorBits=89 */ + "b8fff8be1f8ccecb4a3c497eb8ca0e71723ff0df49c3c1a32a4c431a5cc80b8f88158d3af07414364fcdbbe09796e9ccb5c693a19955f88da08f7c1b04025fb507b33d05ae1baefc4ccafe0edc894c3184bb9f2a0622c6c51d19ac6aaf43a927e855513c99e4f466ec76de", + "014e220bc4a05ad6d2043c82", + "8dbd690f74a46fd7444372e1883acc34a698daf082acca284ba4c0e1780f7a98123cd889aff5454f9de08910878561f3501e1c5d3752b9bce1a1c2df28fe5d47b18ac30d93e97af4624c84b1af1894cbfc9cee108208be0559fbc82a8d449404", + "9ca9c8b96aac66ff585cd6" + }, + { /* i=3150 cDividendBits=2232 cDivisorBits=2203 */ + "92c6590ee9a7b8adba90ac00124e6a2c5f82c9628d61182cdef8d1cba609978a54fcf101b06a973067040aa5ae2260aefa89fa8835ebd385c8524768f65a6c1a8b3049818ab12beca152db407acf580a48121ed9ea700126c04a242155bd79f87ff80f0832b221fd54edcc2716d57f4db4cdd33bc31f890d76f3616ae7e0c8032dfb3dbe8bc02c00e01e150455b9671ba1baa3db459b5fd4d9a2a60b56febe1527728477e6f76e91302622da1eca533cd9fde22b91b6b36be66e283ac4b2ef9efbd88224f1490d339ddc046ad4071f9d4081abdd88224492ebfa0ffb25e1db0ce3a34ada15023f7e0e0712da66cb49466726579cf7b320edfb4af551d6d45c54bcd3d473031513d56ee82deedcd5cc532e30a88223a644", + "02b4bfc3362534c020adfa5220588507e0e450c0ce4dad3f56e202787d462072abfc45e956f56cbe4dc3f2b9de7c1c67aee20abd4ecdd8c95542a66d52662b89bf3be942f2eafd3d96f6aecbeb20caf707afc62f6c7794fd09f21551df91514977c54487f6e9fd0e92585979dd75e4d228d7079bc7c94010e7caa0adfcfabdd0dea7696ba2877a0cedb7d36b1992fd1f87ba4b88fb2a12868dedf6f3e5abb05a3abc337866c04e5b10606af1cf884bbf8ec8b533f15689c7936f815b8e8b65ce2b4b6957b3cc9f9594128e31752d32f9f05621339573dc41fc2d220bb2d0ae24d7cf7302fe3dec2e96070b285d377bcf8b62eded5c926c0b0f031230d9c8bf0c537b0672bd1823a997e61efd46a72ef3068c2b8e", + "363d4e69", + "0169c62a09b8e7a79e0d3bb89337cc98aad7f81a3fce3cfe4b0fab72df148ba5b8f927f8b0db91670122c0c9f9d2f20a707ea3645b57afbc6a7c98f2bf36280b1cb42b495b91aef281db0a702381a5c4ea41a19559eaa624f0e12001215c17f8caecf8000cea304e2ed65dadb1f0d4574afc7b4cf57a8ca59f04ca8d90c41e9a96d4697a40e5b2f3899b4743de13aa07883a2abb32f3066c08ee739e841cede95faa1f63f349064344980c75221b32c351c0ce2e23c57585a5bc6042ef880c90cf1759e08830a222b7642e9ce9ee02674145bf81925fec3a37c1ba1ddbefcdbc179c47fb3df2ba38ffd500fddb110cfc89cfd8e34534624796753ed5b7a4dea9fc5c5420a636def7b4c7daa5f503c265c88a8506" + }, + { /* i=3151 cDividendBits=1811 cDivisorBits=1344 */ + "056d3352ec90c67a10b445d4948dd273c3ed0508c15fc3a0f5af6e6e7903f6d92af8d0900432ffa925dc70545c94d95eabacf2ed090f07563db39fb852818e6b923bb4e887c2f451aeaa525e3bd051c79ce07c0f52caaa4aec9fb28a26490215047a94206c7ad36cb44e333f302293e2ab693b12ae08d27dc5277bb15eca067e31fe645efb692c7079fc158020586165de05029f930c33b23dbde49f5d4fcec11b70e204457d8c6d1cc7702484b6185a317be0dd5d720182a9d7c4447c3365c7542ad4a49d87b7c0b0c931b559a3af6df9519e0dff6f4053328726395753f9eb98999f", + "c358589bbfaae1efb1380d01dac36ae35cde71456f019cff20de9d3cf8f8528d40b6a523725c3509c709d3bf630cef8511f4ae79083ee5fa63631be5b08a875c7e2017a5c4338989811caebaa579a4ee395c76e19327f06b50f869a73c80836d3f66a4dbb5a0711a3b9ad03b532f63a3dfdb8149b4679f8caac42e56808c2c990283e693d7952e7ccb13a174ddc5e12fcc45c0051160da2801e9258e71f7204c930e0ace5f5e0ff9", + "071c8c89280a24e222448f7d30a431e01e430c645d4ea4d91b08ebac7314d9e097d9454efc0af3521d4142d5716295efba97f6428f5b298d2b8440", + "06237b3f4ccf0ae99f8a64956816620113e496926f65bbb098b8496f0bca8e80f99b58a69b834957b62797d005496977b1c44fdadef3800e1d54cd51832e2e324d47ac199d6529d668bdfaa3ad8f4309932d62e5b8075b9f9d50f7b075041474227400c6963df348129bcdf3d52c653f962987d77c85efa351dfc030a7969a318abe5834545c815729fcda47350c22431dd5149edd253ed8dc4959aad439b3fbe93c51bbc005375f" + }, + { /* i=3152 cDividendBits=3131 cDivisorBits=841 */ + "05f94fd237ad45f477a98f2b831f89265768ed1f2a53f81e5b75605e93b9a5c45a0d85398831b986738d7881b15d1eaed0d6df94bfaab54add1e0e20b0ff0226fb47e750d7ae10bfba2896d1d8de0c348605b3c69de312dc6e264103f98ea59b16e2537912f412a2f6502ce8fac99788a8b9e22b026c8e2c58cae978027535f0d8c43f43239d698481aa5c5708e8cf67e2f2644a2480749f4b1d77c1aede3835b8229c30f8d9deb4c9001b97992e17aa4cd52834ed940739361316cbd5b07f4f7c5ee336dc84f4955fa13c2133de4493b26a4441493b3927faf6d24d51d78a7f23a606f15717c6582bc5127c0e12e4562e4c4f16c81cbdc4991238bebcb9b01d94b6f5df71aa3ec6c295c8072507529461add2020127e1ceeaa9b72afe9d5904954da01477487edd081d8fc9e00c6aeeffec8e927318c5f4522ee5484cf495af2b58cd2a22b6717d6b8286595991d8139ee1721afb110eee6fa2c78402a758967f71b718bef830350c749bb7a800c43f862e8e50ebc6cc081897283bf858f92bebd937c472677c2a", + "01096b959b524a7e25187782d1f495d30a83903cba1d7904fc76aaaa840cc4b4c3941a34558fbdefc7e7a9786a49a6d0d4f999ee672d4e74ed965e393ca04fd2d40e7cddeb40ffe0fae4068f814ba0faa9feba046ea9694374f5f6b0d92b67b3dd35ccf6f249d2457ee0", + "05c308a1e7e3bc2d1879f8d6be76e3226757208fe60d6aed4ade711b2a5740ce8337592e7d8cdb9d94fbb35fb61584d9d61baf6bfc78b19b69fd0d5b5097eea1a6e11fb17da7c30cd146d6036166f10302d49c57db593b171260a7fe1721a642ee7ae3c6c8686901771378d375fdc0221d339d00014c6f36aaffbcb76fad54a2efeef25be6679ea84c68b2c26a468ed7fcdcf18e643997b57f4ea3358018fbb4499ea46b9f57447857aa38d860b96452ea7b780e53b16206b6d81383be1a9cf5e320d6c2e1b63a5b60c1c2070f74bb5c3082f26c9356bae5d38616dfa5f21e4f80b42eaae1edc1862c890a9d9810d5f63ee3880369cfc06c737ff9cd6f0363d5740baac2ce920ec0813a87949a8e1afd4f3a279faae1c919223ef3d543c9e4", + "3453a3f03d21103d7380b11964f344cb53cd20c75154659cdd7e4555e336d7818366041f54e01fda61ab0c5d6fd4bf76ed9539f07b825b70c442f6552bcd86326854d80a7347e37b5c125f3a6546745f2593f45f246cec032aed8b88036c9a899c7ff5ee8c07449caa" + }, + { /* i=3153 cDividendBits=4025 cDivisorBits=819 */ + "3482726af98db1123308c257b86a72a6a6b3c37d49062c5c661f81d8249f8552f73952b0ee102f73d9ca75deb79f8c99c28c727275c5dcb90178f22f9082081c0b5cd511c31f53226f7d831f3ed7d3b7d58e954008ec5ed7267e4734342ff9b97ac12bbc2ddef0e4799c5ba1b189da2ae54aed85d26026ea76bd16dac38c0f6f014d5623863ccb516903f955cef0feaeb0adc7b0eaddb5de75a670bb246d91a84d558d467da56dd37193a81fc1eb9200c5b35b55ac5945a37fa07f482c97632ad56403293f0d8cfd1efb2e4013bb42a6fff14e61b9fe26ce5b4f196c67f21f9c31d4f4517d86da0015aef4171185cbab7a8b67e0c97f1edc353dd453e4d5d52f9fa6a3058a21c8f6eed2ce51081fc31d56adac25ad427b8cf34cdbea43fd4ddd832cd1e617b5b8762da9cf30051d6565bdfa547d1fa558fbe4b3b2e860e65166c65624e3d52fbebfc344f7666f8fe3e8ab55133fe5a69c641a6638ce92c3613d64c459b6dd158821272e2898114a16d0793edc282453941cb95aa7277355ef3a983c7ca1188f35025bcfd934c842c88641e199a5f8e9bfc8ab17716f25dd22ae6a3df87e0458b78d41ec3654dba2d895bf0cb8b9eb1e3a9042f8493630c82f7f20b456ff60fce26679ea2d17cd20e68b6a2b9cfb2f0e89b30bf47e2eba716f32fe2a740f50179eb3ca4f2fdd88d3e0c431edd4c0e65c0c", + "e684917c07d2404bdddb5466a2d8593e795cfb5449b99f9aeb672d4a6b10b26b0cfe2b3fa55b91887cd02964e1fa2835d6a65ce7ed51f33ce4ff7b17679f376442daa4991fa7a7e8cf980c0a50bc2ba2af8c42809cdecb979b13a6c2d8795edcebe837dbdc1f", + "3a506aa4efb78fd53b18d7da9aacf752a684280333bd755311944e1415d63105fd5e921097bfcc9eba7d43fb6ab731df194b5c9e135f6e095ad82c9bb47c137694a40c6882b7dfac1b90a3eed049fc68c949d0424911f522a19f27c716ca42a84e8bb437ebdb440c942f624b8760c3a68110be23a2078103670f469fdffc09df8eef9819dc1732e2bd372aa2ff0cf49d8c453c292135cafbe1412207e7bba4b9a1789e5c341a9908c36f72340091c3e76cfda5b2a22bd0effab1ccd6f4e8506ec0b490f63838215276bd61f29b09988bbe12396ca8c65970c59b3809adfe841a83b0368aaec469b15f259260bc502071a4d3dd644d1448fcf0297fe631316cc6ab7db2e097fc8c24b71fe45a915bba9db13b6700d8e6bee408551e13e9649684206c490c09f1bc20f87c38749daa2f1f7dbce67033e92ac055ce4d209b13083e42b0e6e13f9f77e6de9a03f59ee6c7f5714824e92fdaf802906bb3ecea71693d8bfca1a5857ec27389c915776647606cc8c437b35b1f9803680689d95469d729b7dac46b69afa61ce317bd838c8866d693", + "b2cbb6c82db0065a37e232222a6bf4994466ad4cc4984c4b4343e0179212fc8928a3337e9cb580a8e13c91344371745e8a0a90af4b35debadbaaa6af8819fa03f212e207de7b205083bbffcc7469dc07e15a779dbd477ad829e009cf7e5fe82c0c4cb74b0c3f" + }, + { /* i=3154 cDividendBits=1119 cDivisorBits=341 */ + "7f1f7fc7889f968e6a4163967c3d170c77841c7cb14c15c7b84b0a6ea12fcb8bbca93f426e332b8827fc924055670c6d182a4c756d6010f7ccedbefbdfc9193682f2eee50a9429d49dde4577e662de8ba768c9586bdaf36d29927564ec51ef908b406ac44d9eba9b770a31199e565a271280886b693956ab974864b9c911ef70539c8c474b069b44f9625a7b", + "19438f17ed1ecd665f05f80b00b8757462b969dfc874adf48d2993d8f880423d1b83d6a9e3e15d7b241bbb", + "05082468c67834c247cde947878fa8c3b8bd3a54d86f04856c904a5878159a7d852915e3e407c4bb07d21e2f7d30df4bede533637c815553033527064f80f4aa6605a404b42d79544cce1ca6e2f6f1bfd2d0283a16a2ccabb76677f4a7f9e06ef465", + "172435fab3a09bb64e3766aac668ff7d3cd2e5a94f2397d8183cd248717a79f114797abff5205a6f5b2db4" + }, + { /* i=3155 cDividendBits=1946 cDivisorBits=1890 */ + "19365177880790e3d2c5f49b22be1e95d649dae85046122d5dde3556fdedef78ef69f97f3fbb88f7b4763f75e793c93a95251af4cfd474013d35998eab85d44c5cc3afd2e3878a8444da9a34897e9e2e2055c7c2b724ecc7ca0f9fd72d4602b8f42e031ea9a26e23dad6dcd3127729ff105833451c713413070768a73fc7006a00a2bba3822143a24a4b1186d48bd96d78c67b872e22db5a1de06f3bba1290448a023ba833f78877d1d2e777ddd1fbeefc629bffc53fa7e5596a8e0c67e4168d8a4d9b91c997098918794402e10cf5e0c15d9cd4c623a59b7facac17803f50212d9bf7de266151169623b2f35882cfa76cb3eb", + "03d8bf42e54b2dd9d2cd1a2037ce1d0b9ecab594e9521d95fce02eb14aa05e23ee2f7842702847a9eab800c193262237c579eaacbeee9af4c53344eda23bfd813602268a98a07802d8bb8313c8d3fd52d26e4814868947b7a3f4cf927b808298c7cdef7aaf16d26dd73cd8f48e28379b99369f92de5ced7207df88418a6113252cecd6a90883cbe93de038ad308a044a361e5e1cb95359368ba5cc1222d2e343f1f5039a0859d4949d8a3e819ec86befd74b1d5c7215e2d414755dee56afc56bf1eebf53de708f06e929410d8da88aba43a485e22acba00206e4526904cf1bf923c589886757acdac4ab7a078b", + "068de5f42a5539", + "02fed2f2a85f1b4ff71f9c7b3448cfff0dabf1de683146d543b0feae645c3d167e2ee1eddd8de6cd5ebbb2cd9c5f87e30217d5bde378551afd101e2480383defa751ae4ab631bbec6526377282763d5c6d16dda0ec4fbedf3b14b27507a5e58537df8ad8f30c56c5bb8bde3ce31904d72150495b0c5ef21c8181055f73b2797f4f1b08e07962e55eb771db7611f1693d2104a8a5d9de76820603f968f0b68f60f9902d7329378d1040704128c17455026d09586f6341ef070102030a45ab2f853e73a8957f0b3039f54f9db48dffcbf33e4d153b7fa1c70e529aafcb0ed8798b67cd6d4878e9f1c0893bf1def8" + }, + { /* i=3156 cDividendBits=1540 cDivisorBits=1060 */ + "05a5c23a3ab013a112e46b496d2cac703d9fb1aca00db206891be730ed6f2f73be4495f4840552e7d0e8d6aa734a20b4c31d56907c4273343a2c5cd5865ca6703f60acf2103da5e5ffbcbf5639623a5171c66684c4d1593ee5c142c53bcef25b3c9d593749000431bf01c6ca3b589d9dabd08f4de0ddcc726f6fd5a256c46489af0888d35b13205bcc4b45b9c8df980ddc546b665d2d67cbe86be2c5e2efd409bc169774dd09744d5a22832599bdf3c193a4edbd580290b1bf0cac5934936fca06", + "08ae57a60de3e896d8a6a8e5022dbf5d9da0df2db786dda1ac9f49a2595bdd55722f7b8213ac92d8bef9ad318c5068355b29b3eb05f4bb42600d7309c7c33eb752174143663f3beb3b0f492318a8a3643c3e3dda7e8a2fa6685eb8761827b5b70587459b52cf412af1eda2e15096f29d5c0294a5944af6cb293edba46795a3e1af9e3ebc55", + "a68ada8ec937e44d0f8a6e7fbb46de3bf791c48acceaaa25598330b2cebb8928c8e261aca373d929912340c49ddae3dd1b6c818ce093509df3f0b24a", + "05241ddebf8561e93572cb28fcd825ebabb597b6aa8a1153a881fd0276aa3f22b150b52b432fa88f3a4f7d38741f9757f6e4556dcc7307a7552da6da09a182fde4b58d8bf8008a1fdb223776ea33e920112f6863d4a00997e972786510a812f51ef2c9135eec18ed8b6ad091c2ff74eda457c5bb89a3d62662da336c70646408b2f7aa3f74" + }, + { /* i=3157 cDividendBits=2748 cDivisorBits=1752 */ + "0f6b94730e9aaa88bade45946e1248ccc0b56c2fd6a7a2237d4cb4112cde72a8bce7660e9e02846acae01b8f4d7066bb6495c75e0891923f8d5fd7feba62e7b0fd8ff9d22132c459d90cd61eda8aaacba889f5a055d7983117176430b12a474cabd3f3d74941d20fb0a07678bd413e7ba0cfb4e3f1a90debee1f419d5832c0a4a2377dffb59f59c5a891ee56e43190d5bdb768c818da54f33cb06d4782ca6a17079f574fcb38ccda3f1a6b8db7ef93bcd57275d4a802dea6c29ca56c38b4d1874699e719630436759b23faf74b03c1356aef098e7bb47c249c6c649a41f55bc8310247969e31b814fa6c8a93d5a07a85f8a898cb9949e7c006aca86fd7dff83f850cd2e0879605917eb9d9d1b2b39410a0eee908f86a4ebd0425bb7e613bbbf9f527399511338c9a7445f2218a01160cbead67ac72666a3ca804ffbb14a0a7b99f6cc5ecfd0820030c7265796eed1971d6af3a92110cd64d", + "011464a4e4c430909e70316899c8f285d1ec6cd0ac103170a9c67233922886335bb21981de2e853b08f7ce28272c353909349747d163d3c9c2a29eb807800e85b894515799a0298fe15c2f7d3e2ff2437e65e94b331ce6acaee19277db120429bdad5a8620acf8d7492d257fb6f93a2972f1a59596b51c9bac6e86b64ba0d86b63a3eba95ee369b14e7bf5eb7efdf85a5181e0ba9fa9709ebaa1b083ec81902064ace8e9d65581bf564db5a44fe6898c01a5889e9659d48a5d768dd2f92d75ea5b369c49f9dc2ae1e90600943f94499a6a5ed52d52555512eb3ad9", + "0e4850b27fd7964ae3e3f9c5416d9ffda85b01f8572b6da8493b28cea8f7ef7f8a659e4dea626d1a667d9db46eb25ad24c33582acdfe60b0c686fc4c0612b687fd05a28ab3495aa7d40b37d97b7cdf5c63787e1f4e23355def3fdb188503ccf99938eebc39eb654fe6746e4b00eed2841ce6fc7b65f37b79bdb6ff9b8c44", + "d008211bcc39c0befc4d7fef1f19def3fb00c122f60c31bd7009bb5e1f5a575c427a1ec25084b6544d735a99212907c5f614aefe4dec157455ed2be5e2d9c0db054a92fe3361b150230db7a6aad9f06f6d434ba08820a3b94f4e4df88440b75eda276905e30c76e23fe1ff9215903b8df0ecd36e725f4d00b719cd2429d743f18264e4d3d839b145642d762020d2bae38b794204f2e597fc528edde10318a8dc5844f6646d7eda3be723c366a43a7e308a702ca2afcd8681ea45503062309e97492088c7eef603cbeccfeaeeb58d9efef74c2c8c3a4f9dff88a9" + }, + { /* i=3158 cDividendBits=598 cDivisorBits=580 */ + "2ef3422e410a94643f68a79ff1d77cda3392204c63dc1c83967ccf1fd704b0af09cf8938a8e18a234b1d31053f9a53fbe7c5bdb4b8a03b32cc79173459d219d7c2cd15c00a4229ecc95646", + "0c3ee17b7d8145729aa5d7d322695db2fce32603c1742f77434fd93ea4a502f8a948a416243a2a50a2b900d698c092ba8222c4553c0df5ade674067b756ff03b19ac1b81cdeadfa960", + "03d583", + "07f2a6e8fc1d8b2600b66def1ce05de847638b9de42b478461c69f0a1bdba3dd8c43d8ba1c38a44afc237a70372c1da5eb8fa1e1019ab0618cfdef9f0dfd5b2e6d458cc0bfa848ca26" + }, + { /* i=3159 cDividendBits=2799 cDivisorBits=1196 */ + "4be5e4e920bed2889eaf7bc842a4bd89fcd71e8e91cd4b6b9112fd61bc4df78eb86c6f6b562747cf9031fb1a59d02564ffce64c79b0909167d5f8b40aeaed05351fcfac176ff45ca940db12cdbc95a279bf039b7399593adbe2814797a0f77e411e7313ca4143f44259916a9c525f2f1119cf4b6a5b1f5e1611d9c251e18ad1b3d90233c35f75e181d8437ca7c5e8d25531873daa0d37476b41f242b3e6516565747db95b02d100033125fdcce6ee00a2e66034904d483e8a5a9cddc8b4eea1d40740ef5ad7c7a23e4aabf60fca78f954471a085f5b6d3780df30c3298a9263fffa75e5df4d895403e20800a0401aa421894338411317c6824cd1d2b2daea7d1e897ec8abda2d9233c60ab3593f154f409aef28147a47f2b7106ccc81457f753335c7f3ec18cfa4b7ec0eabf126790449555ff176dfc048dd2759f756270dc0d734d8add1b3bce094c6ac1878aef22e6bad49c61facb906d0c7d65cdcf17", + "01a0b489646f741d38bcf516878926d7aaf291036c47c9c74307cb5ab6adde95e570441d67033cc1e141ee3eb2a49d5c4c2baa5d4913c8f80de29d3efe345984611f940a009323944278ce492453d9e3471b08d9e9921fa4492b5bfb480a23623c808c4402c8c8b045734cfa7f56ed8c66ed403a03d9a979d53574519a5554a3d54ec4ac58683d875e3ef2504266866ffeb7e1923b0d", + "2ea09f5a5ba0004f6d7969f3a545cc33f0bf88b6eb9408f1c3e0bf4c5606da05f11707d10c2af98a97d1a2889923c22b6454bf2cb0cad8018d89f72f205ca7c424023565f7e8e1492d21735a1c2582680e071189b1c5332007bd5f259298aa41629a2c1bc1d4519fa2927cf9017889844da089e65b6f62c9dec15cdf0314035be7f38c6b6bea5f4be7c3688fdc02b0e39454957412e074fc55a429624670f13cb8a656427bac4acab09d2f0d66a7153170057b91efc11768543f691c7bebd69045f0c92535e146fe56", + "0149a5cb70b6cdf095dd630bda5e1372ea251c7cd1cade85969ee268b277dfdd452fb11ea9b361f31fbdd1d152776b3cbff40a2630085c85ac42daacbb90dee0227ca34466e38f9731a3cf73436765f178abd7b08dc85d9ab90eea8a9d06ed389c780650c3e3456960cf73548cb89bc23f376499f9b4f52dbf856b37fd1b5d708036684218344ab1056e8f00041ea185ba54f58912b9" + }, + { /* i=3160 cDividendBits=2604 cDivisorBits=1572 */ + "0246182e6e1fe7fba8969fcf5ef8bb130e1c047da23d9c87eb9a7cac30e55fdfbec234b88a80d39cef653be6028a7097f113dbda8c6fcabf5e7986659dd493f68561dc9009b5c778fe56dbceee31a0e3a9edae71be7901de6565ca96bc15f260a5cef29c8ed544e5acd464227b396fa9944d692a4d4d5de395f3877b53defea8063cca98af158d606fd8336fdd9924266b2db1951e78e536ddebe9790acbd6cb57ab1a762f30696063a80f0f3d64d7a611a9ca52c8e5ca7c58a672aa514e0bdfc01b5bdaa7f12b2ac328970fd4d2d57352098448d23f83631154990d4c23d7f23d2a6db0bcbcad6fcb475bc35122cc908fdfb93978026e996e8074624f33c732d29dfd1a2b8e3bf933bbda1391f8f195fa94c8539817fc58c5b82c2c3536f3da5d035377a712299e4fd7a7f55b4fcd65daa2f480f4357ed445ad519d87caf04f08d9b38de1b9", + "09151dd874810ed9d8c3ddf4a2dc69632c3d2b73b08b16c2df0dab171a8efb2ece0213cc07aa9d621f9e0f8c6e1a9d068cf96099c8d8f73551a758a8223847aa8eb7fba720a5ad1e9223dcddaafb553175d9d512cbaa47e20ece66a916d91d646d4c4003a7c555981e8daacc1420cd4bcb923f1299fd12d9d6e986d2a03d301afe41e5f7e94ffffe33442c02d3a59f852daa686c0735c5e47cb92f29b8537d650d09b01758f4092aaef5a943f78f729dc10f65c7c9dd465d3e7213234d573c5c71b6c35ee0", + "4016fb015605675853f1156af523f5be188d46bcde9ae53787ebfe233cfd4de1ba1264e3bcf2601e1108025904873fbd162ca99a2d3ad6183d63ff86a85ed933dadb6727b2a3914ed99d4dbf7baa8ecbfd5e3422a115c6dcd282f6734c7942391e245e9cb862c3d082f902f0b62232c2f8a41904a622213f409806c278d86cea78", + "012f97f36f39fefaeb0cb7c6ea5168641a6feb53ae7abbf976039ae8ca39e7299cdf1a10be0e7472a9cfab1094fddce2cfdf4d1bf26421d04659c364f552ea07168d54e588197fc8def547c1a974ce90f460a5c9b448c6dd4c1946c09f8446f7f04eb61a6e7a75ae43035dfbe0fa8b14ec79bc7aa13267806093a194b4f3f5e18e8abd8685e16552811bc47a83f2e1e4ca7e3e58c68f6d958f6b233f765a42ce5cd3af2781883cb2d9f8a6c88a21117017f6c27d86b1df8c2b228beb9efa9b97046cc0a8b9" + }, + { /* i=3161 cDividendBits=3133 cDivisorBits=1250 */ + "01248cf8072e6b8c597f58898bb7479ca08ba1ed4f03add058db8f9e3b50ac19d0c34fe20d129b1e6e16c3e52e3fef8057bc031143261749ea2d585eb0137a38116d7b583d793cb98d53049f4ff5e513d71fc338f73b640951205a1dd145914f8a43fd5286a838272c1eac08b9a1f3640a42fb81c95b453a5946b63e72b8fbbabaea108bd3f8eeb376bff10a1f64ce021a1ce908a7573ab6ed78d085e4550c2cc8bf3cf25d01b1f525870bae756d60030cd62d84a2e9246cde0dae4d9d7cfb4af56a5f5e8ea4b9750b03f80c1a03f068dda35e6f34f64dd88317962e70d05cff82bd0ad7e4e0d8ba8e81269cfcdd982028656974a2c6c5fe673f02e6a55c2e028e7b8f761a9a86e0278a45c9ddceed8527ba7f832eff8590742cc508691f4e81dbbed07e687ceedce398c3f1f94ca4f6f575fa88793dbe80f6d31e31980d0bbde861dda19c9a436bc1bb73835b2fbdf7eacd8fbaadf4425caa6fa3d18db8c22786df6998e28219c197371b5cef1a83e48ac507524a3df9a6d54bc3572a9429904a18673d16952a1a", + "0248bef7db98d122de1e18bccd57ae9fe5eb792c4b32a4e096d00f61b90e967d680afd601a9bc63165c58d2d3fb779f5e87c0ffc6cf0fe1fa0f01e2b2b456e9e87170da026455862232d6433a3a70da9e8c4784ca960b522b983641b9c204c4b62cd351191e07ed802ca891aa5ae6609cc2663aca9a43ab458e79cb8d0af0932b3e85f8fdf5b60ee23687faf56db0f90b75363f0a98c501e9de2180c85", + "8013e9c045209311fa3c760d18ade9c2b3d897c1c6877379416ec92792387a864ad7a080337fcfbb5397f811e901161bbd09bd5171ce6d394142c9e99b258d000706d2d9d960e05322e4f258b0cd4d6ba8565841201429949e7c6a09d802eca965b00b50882adf80f0d10e80c946ade47e51da9105a1120380d08eb6989d3f88b5ccb4724f26baa7e3c53c54eb8e1c5f01d2b9b94d1f51f1081c58603856b892e1cc22e6462bbc5f2eefc9ec65c5a45f46346b22109033e5331cbc381aa9246ff712ffed8ce5a69ae08ceac7b0e0b25939be7aed4b847ea6878252ff2f509d8fa681ea6176f04d1d5c6412", + "dc011ee2fb3562b68576a4110fef6cb45dc79a033b6d748f96d45b213d0ee333bb97bd60f5d92cb1436fa8a1d9eac2cf816f2f6f215a0371acef1a07bbeb897368fd4d951e67d0e658105a5c275bfaf4057a2e1646654d90982c91e8c4988fd4aa90a9fb20f96e59eacb3e6dce5e592c02c676c77043ddb5d943824bce8c7a60d0387d886636263fc3403eb4ffee7d3a1ff07eb885e025c13b3454c0" + }, + { /* i=3162 cDividendBits=3312 cDivisorBits=1319 */ + "b489dc60a9f84a168c075a29e3006e0585b873a175bc1bed064fc7d35330298c227e67056c6fb8720d0f73afc66a2a126e472753d009b89bf92ce22375c58734e953e8a7fe0be01e91dac4acd4099e3de6301c11566b279be31d3aa76ff689800ff17b33ab723f56ca07aec6c6eca9d7c862d48e80641f970d55492337b28aa20fdb79c89f1319a4e616f3c17883e8117650b449c95cb951038464c28aafaa24c2b3626f5979936dee153e81505625b25d5be8e9c65dffa4198d8707b978b6055f6d69824e12763192014cc4715f07c26ad157d95ffb60d7db767322c793d571097b23930ecc94e44796d74fa6475678556311e9a8301f5716b8bc874d25ce46cb4fd045274e6dd10dfcba911243a298d477a316a84220748ab6840732048ef5b6bd28be8abdfb7a226c8fc6132f33e3a5cc33ad2418923cfac0d605cce8c7ee587a140e96cfbba27fe969642a4fbd4da468c55bc592daac2a5cf127fe78544c193fea0e6ce77e3128be4b996134d139aeb57d6a3b8473fc96efdae9b673800d182fb932b73636cad660aae23aa6faae50da028d7a65f1997bd78c2dc616", + "05cd0280ac63404bbb69f0f00d0db8042fec7bb0d075ba74ae8d362c54be954b9c43f5f0b4545e3ffceeb84e8c25a1ffc84c7f43c3684521774d394e288190852e1ca3a950c063c8fdd1b2b3a503cd54a30ba447e3ebf29db0835a16818b371a86820cdcb6ffd7b297f0197c1095000a03dd9d6c12f1e285e047b3c11e593beb6a0df71f275ea5ef472663ec426d4ed1507deb4dd2dafa511b8413ecf600f1c06bf9929876", + "1f1f7895cff43c23059b493b2dc8d4359ea754b0d026f5727a35922de09be595e9fb23014f24e019c531a78675410f9e06b67aaf686f931cbbf1ff1899a796e6d0da32c3ebf8e2f99ef39c715819e8c10c6d469d0a8fbe9ab15807bc795d4346c47700de0e784ff2d1e6008dee5a47dc311dca2a593a0d569ae6de661caf7396bcbef80fce9c0e23c6e74b6f17639fd9515097208744cffee542ba3beec167b3373c44b54f7064d26c17b04a019f943a39ff541e7f9c58f6940c4102efd332cf794ebbe1e101c89f105e04719999a0fb60880bbd4736a253f0cdea78b24cafbca7894f4d7665f5185279bdb89a7dbd9cea8f74571eee5eea80a7", + "0476519a5bfb9ca8b01fcdbd76c2547e1c3bf66debae4e48991ef8f0421774cccadf635091c9ddd21b9c413ce1f0e6aff5109c39acf01d298a8cc3757eee55ed15d10ac992aa7292e90e372e44bab2e7510e9aec9fd9890ad653ca926328d1ed2067b358cccc9be06866e7145ca51f59ef9d8f5f3bbc49f470a1a0aa1a1c783a50a53eb0cba8c2c8dcff5c05ab24a45edd4ebbc19c61c6b08700a0745e6f1772efc175511c" + }, + { /* i=3163 cDividendBits=3905 cDivisorBits=2222 */ + "01924a3d1ba91c80085524b8bec0a96a72853108a465e7588d1e1d8ae9f391ff8f21ca0065b63a2cfa063af5ccfd0cf0da3655f0a4372365f5248267fb349fbd504714c8d31e0c5f78ffede36f09351fe7815a8b14d83449d71fee2c9677917253c469be82cf6c6b6f8c9e7fa9c4fd3b387ca2d550062af90889fc71ece4f73dd38107e2183571869fa34259dfe4a120927ad05b87b3335e5b5dadf5a61c4830f3ec5e3311dbf081f7591ad79dc59d353f6b654c421054432e0a34be71666029d0a9a4854e4a5406368b5daf4ea02d11cbf2d0dfe7a286235319ceed1e394ebcccc7077a8e91c3001a067c789a31da7e28f87e4e870caa2b18b56ca204938126de7ee04fe08edf93a081e0a90d75668d8f5273f243d82462e15e5ff4c0abfd682b854b7cbf55d81ac1e30111777252801294384dcff36eeb194df3b0aae090f88d100b81d3837d77cbdc3e478783cc51850fc76ff6e33f4df30f2d5acb7ee8a7d81802af29fac60ba158b879bb212d9ede862cd8223912262aa9f70b9fae7d71708d375d9303b962208812072dda740401ade27cee7ceb47626efe0f588aca4cfad2b77f2213355205dfa40d5f7c817bb81f9342cec2bfb85fb0290f09068f36d5e4074186b43cc4330c2348bd37f278d9853caa1f942479be7a35d1a86fdbe1b0735371379d678de7", + "3a33342be699dd3a29711768158d6ce24fc9368824c448337aa740ccaa54742ac9d388704fe5ba09a269b2d7ee22eef44692dc7a8e8fe2082206e89bae9b5e413afbd1d0e8d4ad89c174b807da38b566a988b2a18eeb1412796a5d59dce483d1431d5a1398a38def3e65c182927841b3ec336049c32d671e43886b54da5b02b9e71caa38b8d055d3bc9c546725e2d578b824a5d982f4d2ea88a81716ac26d7eb7a25003b0570ed998f1835307633cff4c6399b40c77dcecb6f0498cadc23c7848d6d0b363d868b0359d0332a3bac235a0d91fa9b5492a7d84f2706480765c5e53df9ee8dca16beb0dfc8c4ff18eb18a87c9337c19620c8c80f9826a28feaa5ee3b2f1bb1a0c9892f0c9dec9e333b9dd817fa256e9430", + "06e985c5e835f11231b5d43994f2cd59d00480ced18ec86a5e2aa64569d4358b3af290829298157f51ad0c387c12501f883777b3aceb841cfdd6cdf7b639e7df2333d9367967fa463fdbfb8a6780b5df13171de9db1bcffdbe3039fe0aa53894d0fbf340ee49a78961725459504f647947541db44d18e1ad5e9b0c1be30545a1f4da59c8aaacab42cd37870926c7fa09d56e1cd2ca4943aebfccdb8fdd1b3f96edf4b02e771e69fe12dc33097aed4e2d06a0d29183ecf7f25d5f1792acb726fb50cf2068071a5ce6806ef192e1654eed36b390", + "23de5c838c84712a32770ac67ef5ebf8e8427b617d4d1b4eccde8964de7fe1e9c317f778222dad8c6b057c64117f19e044a05a128eab3462cbd59b1abf0f0207a7f4353f25c35cf6c2721dd0909443c2417f2008757aff93b879fe82eadd954bcc91ba7c39016d3097e7b24d2e10762fbe0b6f020315c14a25311ed51e3c12bd674b512443df41ff7bffea8592324079232de3039f425aeebfb7c2480151f4ca562a9a487a5d746525f615c8921d990909fdb36164c2e6730430e8810486c0cc27a8c99b3e1b0e654aa4df8313faece085cd14dc8b610c20c2d0b73d15af4aabedce3daca76236dfa06e343899ad739bc4a63328a5a0df11a9031f14f91bb468cdc677e00fa9992e9349ab10f022473eb1328b76a2e7" + }, + { /* i=3164 cDividendBits=2343 cDivisorBits=1246 */ + "51cad5ea5856e862076f929496ad9e7672fa41f433d530f841a67e70f8c76200dacb408db36d4c0fce7b7520a7df160dae20bccdbdb8c71cd1173adf912c311793e565067fd331b95d4f7bc6b03f2ec17f9fe8db777486a8371e3d6dacf547f09231fde212b407535b55c946774fb11ed3bcfcf2cad5a4e15b14dd05485672214b2304eee5c11e26655fb7a725a378b574e78c9f2e8e5856a6cab16c62ad9a47b581dd5668af4ac7641c20f8e3d23afb2683ed232639fb54c623a6988487ed555d359723f6785e318ab562a741d4979011c33b110bb8120c96d0903439faaa4a5ad73f1f17b8eb324779a3327fd5edff3ce12290b2881ff36bc94351836423389a4979b6cd085046b41123165731de969ea54996feed2711b7da1c4bb49079b0d18546083f", + "3acaa27924dd21438d344435ba2da7c08199f89bb45aef725b881871ab6a6bcb5991d3fc4cd0357fdb270bafb1943cd0081931320bbb182e2d477a3528dac1a923cdf9e074090e1a4e4b9f02ec9c4cf7f68009396e922de1ea275dd2230f1bee793f4d5681950967eabac8c72910cbb2f2d1d86995953729f997fb859573ac9b4d7656d6d6b6d2363adf6682473f1e2522288048bc42d1337a26f36f", + "016427649ca40b801fabbf0c4422499682f1af142d13a1298c6757958b7adce8683f6b487dface85d748462a424d665c67a12a6f2167612343d540d2ca32296102f6cd4cecb7a71dcd0340d8afd9031142d097920daae105d2cf07f7f80436af5670f2860c2f1dcb122022900d95ace65e53c7abb6699c788e9e3c376206c0001d8e87a38db1522d550a", + "0d557c1930c2ff0dc850893d30730331f83975c7d282b722c34e0922624f4bc298e5767dd67985eb3f0ce560364aea316c2112d07601f5afe7554c409207a10177db4b20133655851e55f3c63190009a96b1d29e87eb637344ce1998ca0178a3ccf1c267cd6d1774825ef5545011fe287e84a51588ff5659e181026ccd406700b83a66fe42367ff3c944e11a56a2704d7d0cb8fc518b07ae7869aae9" + }, + { /* i=3165 cDividendBits=2648 cDivisorBits=1889 */ + "43c5c95b8374230ef2e2adffb463c42a4ab89a6038b6cb75080c0f9ceb43416fcade88b80ff890c61d764defa5e8e0fe1071695b9f7dcb6870f4b45aa005b01a019e6fb53e0c5918ccc33ca2dc6ddfdc2b216f0521f98aa272183b2c1102575ffef9e27737649e6ee5adcf44596314a22e3e1e0bfa0a06fef8997c20853361f406a650208b53e4f158cb0b9a5f05371ae7e11c89636ebf6b835a8d5f237a24bf0173a6bf5966c2734366a5d51aa09fc8146675a683144a96c8e3457b6d46fe276cb501c90e332d6420d9f8bed937cb88e808886e327a3f887b72418c46c10558dc3fbdb2ab8c096158d0e3a9dc6621170713ccca51fac5a5aff2c6e1d13dc91ca1065978789f5347ebb8dd9ddd27d1598814da541792acc58fca2b17113ef2618fc787fc5af281cb0c9f45fb5241c5b43784be58f4302ac2a6262f3544b57bc2eb4a43df377bb2f3065368", + "01bc1f6b84764dd1833694aee89998b5ae57e9abe3f3feea97557b55593380baf918336c9125e9c82417b929a85008ecc1ec0974525af492bbcbd756ae36451d08d5d48b4e9999b9e315f7d00848efc935d62f8f39c7618dab299e9b43b0d913c0d9ff33cde71963046c9d921a5b109f2df253f0f4ab73ecf1b4974df66f57ab57f9c9639e03696e20c36b030fae802b4b98c6d7bcf45da623c216dda965fc62c3fa1a8cfb98bb41b2b7a3ee776d1b1e4937072e57d0c0e95a243c76fd29225699dff3340441f44fce337f89a532cc3b21514aba8b64dd1dc26f61f9ba0fce76f8fdea4ed1d80c5cae977c61bb", + "2710b74f0ec145e5f76123f8b06d6998f5eacf612dd923fe3c20fddb552aeea29f533ecd15fbc1bd9f48086135bb07fbae976f6a095a8e7f862d846f88e5c9e85f7d91c435c1c34e275369dbc636005b2af0373c23bb7217c31c6189895ec1", + "4ad967d73e2f0216baf053e939b8593e1bd00bb488aefd3fddefa158949b7b8f0dd2a3bd231a60e3583ac2b34d1ef82d59692334df2641adda3ca3e665e99dd6d2697f65a350e7ee593472d47982d1e923813b869cbf25561cd23f9d601984d5b77b8d485545832dd472202836964e6eb9f758de400446ab574cae0addf012b1606e32802d7ead21529da4934f20d4eb3033d5f9bcd545cec8223ef8112e48feb4bc6b9648cb1f899b1a09204938a649cb3247bc148151063bb945b6769013a7d9dbafbca77b5649dbebeb5602cfe810b3b3a29d15daa67ec6cfe8ec5788d695d0a5aeff2c1a62bab24afb6d" + }, + { /* i=3166 cDividendBits=4094 cDivisorBits=1295 */ + "33c740445d1c4a66ca47bc3ab1721923e3934c1b3761272d91b3f3a987f9dab0bf12c93148fb524003d9c2ad207ff7c7f81c49ab57775af21370751535da54e6dd793c724f65ab553b0c8812068c54e024404918868267ee1d7dec75b2bd68903bff123787e5f70d670b536b8451097c8b67924b6ec048f146458cd82b0fcddf2e9922f8c2a39f258eb28e8185c4002e697af9d03ee7f31fb6a2f15b4a8a1ebacf27c1f4347cb7b8ca819fed9876a9d71cf5b027a5c4eb8d0add17f39cb390bf7ada60e13ee663e43cd24c8a55939d7ec613dce09e5111810fd32ffd5aa041d85128c9948bfd8433af8130918f96f09bcb12567c4b4289c70a3d3f0d1c18afd7aa288de63d696fca8ab4f4d075818579f50c335aea2c45e6a197166e077e774f98434a58db4a67cc0db1b30d379a58fc899ba3b8bbb41ef025d81964c612e9311c12b8587b977700ae64ad5005daaabfaf71096d64a69cfb8fdca837384e08f59a574eb566a79531447917d2cfd1c2bf3dccc4c5730cda58c8a5362844d2358876c0e38dcb3cd498cbaf0815c240b13e5fc79693704ecb779f6af88cb97cd23e0f49a5be96313cb05309e1228be86c719e366ce9e40de0fb8bd154ecbcc7f1ea78365be5a49ac9c9dcdee83ee58423b6855fc14d0e8ad4e4a1df618cf246e4aea3f280afb48623a0ba01650730c37bd360da4ad21eedcfaad90354df1515415f", + "0d28ac9fba6c08c8b02e2e76ebebf5942fdaa28048db26a6816209f410bc12ed667c653d0a7cfc5d4778db2cd76a7726a69a2ae14862db1a60d3dcbe1368c9462708c5bad0ae941ffd581e8a6d69b2e6885ba25556ec45323f247d174a4afe19c3e4072aef2f3dc5f5a1ec81da7c59eaeb9d1295a0e62f66cc181b5340ed50ee8043467733a3cc15321759f9fd610831ab5d78a1606c24096f0dbf3770e73e031924", + "03ef52c68e1e6c14d361899d4266801835f1262a0c549994113806b164da20cd1e7bfa2793fdf9aaf6b2f730bf85861d6262bd8d97937f23121e571248b65ecf6433c7df36044ad116cc676253a4d812480ea3e0ad4fd1c0e33d433e0386abfc97473463f2e374827d2c1cab56f8779af6e4070eb510712701ef37d51d94377854b299f478f88872bdddeeed240f8b7efb1dadde1a36a7583e5fcf1eae615e7df5fec212f6e230dc46f6c1155157386b670f79069b63bca26046c34fce5f3a9d157724c69514f45fe0afcaefc5ec2b983b351ad3c7151eae9cc57b55b6421f1f212247d032f987fb7a89de47acc378738b2f69cf409fbcbffa3fa13be78a4df69a6a83172364d4d97f6878f62f2935a3f0a74facf577dad7e06cf2ac3e015a339bc74e10b588721ae654f44a999f6e2350f672c4bb003ce892fae549e7289c6b0be5216154fed64316d3a3f96a3478d9368f1c640b2cb400e45f1923cf1e0f", + "0489862d3a9de997d0234442946fb7be16b66c9949937417c99a0e38362e690f942477563d6284f7c620efc01b3660e230f1351a06d0bcdfa975ba0902468a00b27536f514334ded3493687e1e5b8c4f3487b55086395aaab099ea5b3e0ec5718b3ac9d3bb191db60363211137a30ca4a52d3dcd7d30adbd81e1b302e4e9553047803c49dd293184d9b2becdddcb10e6996b3ad46da125cb9085a4613c98d5d89043" + }, + { /* i=3167 cDividendBits=1067 cDivisorBits=337 */ + "0140bce8cf7cd5b5a877d031eb6c787a181ab1c283d2162edb65fa2ae4fc0bced340d3852c94344bd84ae2ea9ffe6c545045ed3285975aa0de0c425b63ca0d8a40539e9910bd432905d983bd73eac4dcbde3db19196b51e0096517e6ec19f65cb7dce555660824001ba3a2ff5e37ddbcc53081f3c521606a9c4b420dae78bb0dbb33008ad352", + "01bf2fb82fd43f24a2421bfab8261cedf9c5e637c30ba2801c05e049fbe9df93355a5000f8c7416ffe5d5b", + "b79cbd866e7d6011c7abb09d0da9d6bb9aa763be97ce2f01cfa8a8c4d7a6aa7c2e0e7e3afab0dab1cc33e700dd80bb2a89f65e4f2bb614edaac68efdb3acc8462509ec3aac330a7acc665f51439334b1bf47da6088c346b31efa77", + "018e443d20381cfe30cd8f2d4a7d7532e08de89c3c71dc72b528d69a16171c8f0b8f0620d76171f8789005" + }, + { /* i=3168 cDividendBits=2805 cDivisorBits=822 */ + "06a4d913d3d249cff72368eec7adb3cf1809b4affc41ab668844b410b9d78d7dcdbe765e692ab28f2f438ca785f51b18275024acbc469f2bd3c0a0f2e9298eb61afaf51fc812811710e49099a009b751da9e66971f4d662a5beb336d248749d3a54e5321a4a4088a9717b7f4b22854ec0158697ea2d4498153345c7413f39aa68ea4f790fbeba0ce386f99fdcc3c83996216832b1e83f0a9688fc88d1c1269acd7ccd0c34842f6b05ea116b2a6719a3855413eb96f4755fd15d143b39c4040b380eed4178fde211201a044001edb51c2b20179c5bb4a2b304bd660730982f03e4cf30bd1e1911aa0b502a876c3d4564b0046a7dfd026eda8104be24dd686fa4583f61d237656c1fb8997fcc2d02cb3c834a2efd12b0945f47c13d0d12b38bd9909cc4b0ef5e31110b06aa21313870fa73894e34de890e8f00d0cd489c9641d0630bce872f77654c05a41ac5345cf5318167a9cec73a30a753c1337f749d76c", + "1030311b3616191c58d0b2c592310ae586745f275228012a08ac392b4bc1195a2102feb987f5bfbde181704173671238358ee6d2b8b4c6352b158d060970bb2b6301d82c0496f93196138f0d692c1ae8e625b4b746d4766e602e95d38825c86839f79f8221bc0a", + "69111b73cd9feb0826d87474c4d187771a0a10ce3cc1834508b2809fc2200933e57257e0ed55df8f56f3453032c636b3baf061e0fe7ddf3126c93768c82c119c47de11f8f1ac71c1528881028661cbe98a80fa99e2503e2b5e4ffd8a2ff47e2ecc55d21c569532161adfa406fbca8924f26733fa9d837eeb50881b6f2c4a1d325e42f20fc79af99436d0061127f961830c81c314e1c776833440770428ff2e1b42108a686d246b63157d4bff45bb5bad681de7e63d5741681659debbd817663249f41d8f44d883cb7af9c7512ac26ea92449c8a03807a5b19b2598befacbf88c7e73ff717ba4776e96ccae514c29856a0739aa8398e39048", + "05b2c1d6a90b11640050a9d85b9779f6c05cf784ff6b592b8fe31de87120a9b15209a9737a3b4cae73252122bb0c3259e57ade77f42e110f9a67e8f30235bddadcb1f3d4954966e7a81cb41d7b4739a2de285081a2f64b0adeeed788e1daca1f946c7ab729549c" + }, + { /* i=3169 cDividendBits=3819 cDivisorBits=2374 */ + "060b13843080e5d46d1e52c7d4580a6f0fd086bc36bf137a2cd747977387738a0594e9c71b280f4d66cb9f9ee491cb7e53b0da2f083b708cb7a158f38235b2dec813ed403cb47d00050b0afddf30fceb39c0849068007108abf525dc7e1d9fa60cc17b8dfa52c70a10ad5d55f320447da1319e9cd35aa72c342cb2ce2f127bf4e37a7ee3cfde8ee1380c834c2749d7e8d588a3c70d5e4ed97aaa20c44740ce9db30891a445b44437b80e9f87b1bb90d789c478483fb8e9388255db7d3477d08d09cd5da5d7674ab7a067343d69706b96356abd892b2c3e8b4f316b6239d11ab0cb7f50913c29d698b00426cd5c0bc1e6eeee91de7d7ab53f2b83e2fdf19c51589998b463e547ce394a72355b91abcf437f398ca40688427303e88dcd971e95df617e74fbeafe7e7fbd3fcd4c7e135bd01dca21a4a52d467c864ae5245252c9d51c7f3720e85ffeb256b9e6d8b5086a84dad9bd86bd060655aaa7f22ba0664008e45bb0752155910e53f7d7be012d48306f646b147443c882fa240b5be9c191936ffeec568c5e267b56292d199dd25c7e232b3c5349b3a4836ee77ef4ec7235dd19b84e49d708ccf98f6c5d884d42e404743d85d8bc155d779448ab97b62741cffd725d5f67e4760f33f363576ee0085f9064d2f05d10b1b75dd927bb4bc4", + "2a7b559a945b791b87e1bb2e86b8dbf58751eb750ef23f319e7620f90752e31fdb5490041ec5f813f177fd0bcbf31760cf3a9b8a9321686e82b0d8588f26dec8488b65b13b09a4f03ba1d54d570afbac545f58f74baa4af12879b3111994685d90b3da9c13b746d3cb1c3a2cf4d78d843b4bf5e5cc820c78559174cf7e32fb6fb552187043ad56409072aa23fb9bf89b69237f4c23d5967b577ef04dab0befe4c6e9af6fe9918b32b66385bf8f6f7a8dcd50fdc7cf8d0b6cd38e7afb3fc7c600f870695754020a2d300e276ffd8ed238e58724806dd3da2496dfd47ab01380742c8ebbff810925622e50b73dae0f3e630313ece595ff94b92a5a7793f737f9b2763b9d2cdf95761e7ce3e4ad163de28b0d23a0a0f86b0a4ae54a254d3e24bc8923d2c16214d17ed870", + "246adb6971655556797d60a6d8b72ca65dcaa073d43b1c9b0c510ea78c57f30b8406050413b6c1f1efdf67647efa24118ffc0261ae0dc8e3608ede2d7d10da69c287c8cb831e2164dc05d94c083d4c195d46f2c406e7167520b1ae0560fee1d88ff9572488821687fbc53fa60058081ec5e5f442fd7f92c9d6b8df4bcbf5641040f0da22861dc39943fb1a307853e4e08192397170256dcd971717fbde86c9f09e8adbbbbbcaad7de93abadf3d50f47bdc4eef4350", + "1fb3805e1e77aeda8c056d8aa2d948d9f391c3c5ede7c162f1641261ae7ecfba908d136e847b60a5c0d9660fa55767d1cb0c3b52b1436b414a982debfa298c4a6920e1287cc4591f4f84d949fe369ab320e40bda8dbda220fd8474855d0aaf66719aac0b139497a99a6c045140be58bb149ab8ebbbd8a5809fc49a549c156c48a02421c0eedc1f432e801d8aa5528d7def0326ab7d6f93c1e084e21d3556292e4ee9c751c410375bece4459a801a9c1868e01ae2dc62c0743c173ea0a07ec0a7b3e89a1f71459095a5f917946e6688ba51d8e6ed766301c6c5c9a48cc38075a49f1a8adae2e19566fddf2e3b30e2aaec01562a57344757ba3a54a2cf2f1d53fa3fb11746c6f3f3fd3d2340f50448fdeab26e28a883dcfb6d711671e8f4fcb5b584099938e54ce258c4" + }, + { /* i=3170 cDividendBits=761 cDivisorBits=365 */ + "01ea29f6bcc2d708aaa14829385bbfe6d46b3c837e52ce3bdc3eb46c78067d8d73a06f8b52b7f1861d67f03bf4914b4e54c47262e7209d2af262d14a0b15e905ee6288bc6a90af249c205af0ee6ef34f68c102a7a5d7ad3d78ee8c26cb665932", + "0de023a4390df07ae5373847bafbaa573d07b853f02ccbc0c71a4fabbbd3fb746577d1b98929d986e5015d534880", + "235364033a704f217b40b9c0101170cacbeaefe2cd3a4479d522ca32a3bb93e8ffb49f69515c51e1e5e15bee55292b452113", + "dfe76f8df620851969fc2fbec2772d45b75f16edf4427c14d24d375314fe83df1e67f0185d7bf21ee5175f77b2" + }, + { /* i=3171 cDividendBits=928 cDivisorBits=785 */ + "506f001410d77786a866869743311a19e3211710806a58a36b7debfcddd57fb519b4a6266331ead32d1d050a0b09be0b67554b4998daa2898d99a5393fb35f7237de555a5cd677857388d6945e1cf0c59640cd529e5c2296cbf1204b9001413dc27155906a3fca3671a00905698b71070611dba3", + "76ff8f392cef9950e73f0023a07f50f8a54c45fb288d7200c760be0c0fbf395667a56dfdf12db44ccfab0fbf3601aa1f9f928dc8ce36012fea5431020d2494f43ebd9274e6c3a3ca9dfe69f8c15dbcb230678b304b0ecfdae11f7ce0229aec241c65", + "ad093f0bd57d045cf0ac451794eabd357e89", + "39e935784fb55fd09fa91470d90074cc57c0ae7c471f3a0981479acd75b5f22b55e3d59fc7d8453b74cedda5057bdc66c6fcf6e6de527302c8a08a65e792e52c402b056016d37b4182d68b656673b354eba8213d46d0be59d2df3aa7c7226edbf396" + }, + { /* i=3172 cDividendBits=3759 cDivisorBits=1381 */ + "4620014aedcec80fceeb610003822cc137cb51aed16a29256acb00d7c54ba457177d89108b043722e3f2ffb2f78d7a1507abcba2aca7ed9111528230f5fdf99730ea689d950de933eeddb0ee8366c5e1abefb2014cf72537727a49185454d23059a3e3c94ac78d2a7e7347f3e5b02e9fbe17dc3d4b29f1c99c1e7b521cae06fdf17e56f2ea18560ff57135d66e36b97c6a060c20ffbb31edc7549c662710f32afdfac7b6e922193007caefb7cb09e1455d93cabb71671bfde37ea0fef45444b8e25c44f02f80b651a0820f082cefb59f25a4e50a2f5c805e152a381ad81240a499423415f5fd6a63f0219e8b752e224ce925bb524f9a7c225c764e0be2b12fd21865b495d432242074e1f45e068a3bf85b2d37dddb2c47462c5bae2257ac08d992dd325217914eab5ed4c4aa9c36d56a27be0be69c6ce0040b34e2abd86279cd834ac122daa208dd8372239134d37b75264145f8e349162869eed32d988977bde0a07b4c8a8196b276a62943a8404d4b72257d7a47aaf936808b62e329096bee12176fbce6c2af7fd000e186052dcaca1b2592d2ddf95c8fc342a0a830ca9541ba21c0a813c2d1d605f8bfd42475097d7ec2852e6ba63b3594faf777641c084ec5a539df617b8964071a6eb56525f868948fa91c5e90", + "13f086488a25b7f21e68c57f3f49e2c2c307c30523e9fe90fa15ace00111867a62f72d68f89f54e26f23bb8a53bb239d85f4cd48e89e3b52a45205cd41a2c1496ff5947f34c066ab7b531bfe5726ca4bcb2b7f22defaf6e0d3d09e002c6815744d6b67487a2154c5fafdf64aef7cd016e6334e372f78d34f1a6bffeb831f4449e048fcda2a70d79b942233af32421d8305c7efa01b1b89b63fcb7547dde0fbfab2b30f71101806776c03a1c38b", + "0384524f157010a608007529e06faf42b04ef61857f68630122d0efae75d56ab91c322623b1463c72bc9faad15de14a011da442a4089ff01dfd926ee3fd8d21585a59a9f400363628613b08314b981f51bc23fd11bd50d266eb92de7c8e9fb6b22dd3e57edf0146b662bb3de9694045011b107de915a604ce81983f90528f86b01de4993c9f011fa2aeeb105bab2af745610027f4706899fcf5d84b717a1913d672b197ef2ba60210dfbd735563ad2c65751d84db804e8905d16d60dcbd5748b121fa56904e728db1f64ca17fbc81df37e4b63db5cd78c7cb688b7969c8550230d167707bf01caebe0ebea811333dce1c3a96e1547553f49c0f1f2cf02ea0c07c251cae8b2f852a5a5bd1990ca0167b6890dd689a99f17e924d6053a1a77a09e2f9c75cbc11e7caa7000", + "12ccd8656895031dfc05befe1cb853e2275b0f03bab27d38ceaddcdef9029525ecd4983967bce73c4d660049f5337d0986e1d4678b896d2853a3ce26c033aceb4ddbb415bf3d0e579738a48ea83032249104268f563a57e12259072aa740b41c7136b72e60e212c8db4867911f371fcb585dc770fcd5eb2e7ef88b85a99cdeb813f38f41d5f94f0f089a2fa50630c99d52a72f88ed6aa11b50e4038258722c1be2928d59c18d12d98bb5418e90" + }, + { /* i=3173 cDividendBits=2353 cDivisorBits=1229 */ + "2ee87a026445e1bfc8e7dbd174bfa74aff708636bacc0fd83b90ccaee79b08fad75a66a9e69fac645726975d9871512b25aee29dfbbf1dd2dc7cbaa13edd06b93f6b9872129e296c2e8568ce80071139b7b4ff2ee6dc43863a342857e3f10cab29f2b0c85850b0245949e8ba9bdeed27c579b3a7399808662a22b2b26771556d4358263d24e759b0d6a284491f5dad04f52a9c524d68d54e5981981cf225621c2c729298a303432c5918698d9fe574f1ebdc35d50e62a517d35c20c85d575f0ed2688c2c6386cbb40290a26475dbf4dbbfee36325f64b449104cbc730f1aa5a7597362a5f2b4830f76a343a6364a13d4d24ae3f35b2cbf78b72af41e88b3cd5191ba8ed59f93e2e9adf06a0d0b4dfe3c8f2bb45dd4cd768d6a20b3b28126127f2e99cbcd17a7", + "0e2bdc50688bc44df2a53d5c1ffb63f53669a02a77a86af447b21bf6b6a977b1acfdf8eff2b7e1fcc3639b08bdd675ebd9413dd1704b94eb011748d0914e5c3d40faf005397dab2abcbc103a7969d15e85d70dcb390f32c634c08bf1879e09ea016cdf43a8372d09d18007c2fdb8cae258ff579e8952dee71c0e6d4d4f651092f9754e63e97af81762eac6f3a1d77337dba1eca79cba2513fe85", + "034f60d21fb7ef6ac023cdf78b2fc0b888d4b00709b824831b305da5ed3f00628897b9f7e33f688190c26793168e9567217fe1a49f9ffaf3377ad80d8a5ff282dc7dc04e87efbd1e71a5fb6b3998674be355fe6afc7c544de966525ab2b7b4b87b0cbf6adbd1d8449314245d841d61d6fff0e879143d494ac38484652a4e911ff2289cdf19e2d22df736ae5d52", + "03bdb2a7f1040c0760068cf0f607d0852c85e8fc7a4a3eb3ec1614c9e85bef9ebb809ecffe63a5db7d430d2bbfbd07dadc4eaa698006b85e19cb1b5966f14e6950276c680c8d387c28d66e98b86293d181ee39a3212cf084e09386e2462676eafdc1e0598b1e81e48d802f610977430106ea6c2a7263359a3c768ee244cd8c7ba4bfaae0e377e8937802d08ddb1f74a168201965fce79b89400d" + }, + { /* i=3174 cDividendBits=1085 cDivisorBits=253 */ + "0bcdaa9c6184d7f6190893a418137ba14b87df41d65a984a7128a939e6be90e2cdce2f93161439ed3297ef565c1621f84fb08a94f8726f2baaa25e3d6f39bd4e4a52d1ace3f7d2293ce629205839fc351ddb10945dca9e3781afaaa41ebe4fe1dae14f04090482df8c887475bcfeb41576d51b5a0144107993eb8cef745d05c0f06bdb48e154d5f6", + "ee945d5b4708d7c4fc399cacb67f20f5d7a9bee37bb2ef2de6d4aee4c63544", + "0caa4cf29182c5d83d904f41fac64426e94f47508d5efe88c8816c95ad556fb42c7f4ebc8fdff16da1e29f4c711584bd0af4a5c9ed4b07d347b43159768f4d74415cc7ed2c779ea98b35b3c3e9cd267bdac22e302195e5998bcbb3732e6ca4c50d3f5639919566c67d", + "222e5ebb8e00272809f609e6fc1a225448e12d5cc8f38f1e67e97412423bc2" + }, + { /* i=3175 cDividendBits=900 cDivisorBits=507 */ + "0efa20a972758b9a9eeb071483ef1c1184b196ba4ad2851ae2d5ebef241055b7d751da45f1a709e0a87b553bcf41334cbe0166c19223518e74f205a032d2cf1c7991668c1a242ef152e1538e4c1680432f8ae50f9a6657cd70897803310c4ee5aeac76b483e9b7e274ea5a678f70f8dc01", + "01f6abe8c7652f4fb1bc202f20b26d9c66c889da498121d335b0d130a62cae9679fae7f62371926cc0c8eac53272bcd746bedf06bf08ddff62332fc8ec149ba4", + "07a0a3e9c8daee3055c25c765958bde3f2e2f77d5e71939e40e5e2a7fb33e6fffe269dde74c4eb8eb6728042226236039c2c", + "06c81065f4973008c00764fa4ba0e6c508b4e632201d9858f73724446eb89f4bd53a6aa44db091335ec483add683c83b1adff05fa11b9baa71474fe3aa2bd1" + }, + { /* i=3176 cDividendBits=3061 cDivisorBits=28 */ + "0984bc2ec9dab84ba42ae45916a5152ba4ae1e7378a41b04b1332d3794699726672fbeda2560dca867742c4a18971c4463f8eb1a23e9c8b56808afaba392c1c5f128ae91ca4d2b6eae86345b53ff983c193a4258648837b16ae0abd45fc363b4df66bd6760bad9bcc8c63f4104a42e8ec342217b1eda50c6713ee675074f3db3c7fe1819a693b74a4d61c4f764c1e3004597f2f04416c5daeb4c071bf42763f4f7034ae6930bebaa73a8f277ec6dafd58a0998c698bde13bed7830a1a3cd0339d53062cdc716978aa1eb2d04241055a10a69c35ea16a6a0ff0571209cad46ccc6e2a25160454727b889bf5b60722348f8efbc979a177fede6beb8b9afa31fe527010b3930d1c47e1fb8cd373987a09e7c38f01bad6df32e966d89970377ab07e2bbbbd16e877af9bc020ffad72f5c186315d95ae5fadb39e3286e773763e56747f7146df355cf4530e3e9661d32eda003cec333fdfce5a509b6ad89a4759e8cc07b1d65dd92afbcaaa31e9db4dca888a0c2c3daf6d0dd768327fd3f7c3d267", + "02008d47", + "04c10e4431ab399b3659f45d463fc2c8d68521d076391664c33ed8b9e3f5bd49fef7657054b0081b8f036161c2de5561d9b2f015a3b44eff71b71aa417672dba11ff150aba474c3ff493612cf724006e7023eeb9f8726663a5cc5ba51c34081cfc97c9df8bceec7f1199280240a6f95490441bfa6915fe4226a5a2415ca78a5d0daedffe63aba20eb8a9fd0feee5f18c3aaede2cb2ece9df333ff2d63be77d6bd76a5e49125347db6372a9ddc814fce43719fa17d2a12188e2634495aaac4002670e7a9f9c958a5ff8d7403908eb4d471be855d4f5a8860e2eacb6fb8dc3c9d27c21332fcee69d8a66d7f71e82e552f9a0bd82c206ab4158f765cdf5a6e2f9032b2108b58bd9f386b3e8b03281e53e4eeee6c42f642df0699f7f3a90565e8b3ba1a31637b84edc07588799b81677a9b145551dc92e4e335a1cd3847a6a89da7d765f2451e89690f1bb73a659107f083abca501064608851977bceaabd0d11f59e1bf49333d527fac3b7632a1d14faf4cb2a7c8dca169dfa9d277676a", + "b0c201" + }, + { /* i=3177 cDividendBits=420 cDivisorBits=161 */ + "0750e8d01cf57ef2616ec0f24c8656db48bbe36772172b3c56b3d32cdf5144c499d983e8786fd54b98321b52d577d5cddb3836e259", + "04e0a881e4c61e9213989df08199630022df211f", + "017ffbe904b56d9905fcddc9ecf96442c5cc81d5019cb427453f65bd142166977aa7", + "01a9daf6e47c1efb4bdb1016c461fe583f968120" + }, + { /* i=3178 cDividendBits=2633 cDivisorBits=1197 */ + "01cee5e97b0968a68a7fe8e13b1ac93407db741026a9062b00dd5f851eac2174d31f7aa87292f307c11d2421bf51de2ef18ee91b198e0aabc15fac1b66be860596b4f37bec80347a89e6cf6bfc6649c6685184fbb133d4476241c44d9fee921c13bbe5996d0fd9eb26682a2e1588c9ac599c5d5f47c501efc8658e6ba44551ae51930493ab7d22cf811c3c05eb66d50fc439cadf69487ab65b6be0a83f509508846209bfda2772bf165e1d76471619f03302a7df2690b6388535d6df13d8697c40037c8cad40ee8bb3d055df645b233cdf9dcf7a9662c666577f89175b79d3390fda5e5ccf4cd8d440dda2451ef60acd3dc1c5882f214ef22bc19f181d84f2f186885458a3ffa6290010ed23958f1baed21ad447203740e53ead24c3cb742164b3316d718343a31d39e38d11278e2ae9ff31f57b4aa77cd7fab98d4092bc8d8d3f97a891eb9c5314381a", + "1a8747a68aea8040f074fc1ce6c52a26ebc57f27d3c33b19e335da8789024f7fec71521fe133236c09a72acbb4a29986d8fc57620cbfce06f7c4d2fb5cdfb709f82d2832826142f7049f2df7a23cb5a013d1f2b84ad329f93fed6e697c080cdd94e574d8e85c9a6c83a1d6b199fbb5868445ba795be84119d86a7a8e08a5ee540b4bf6355985e1b5d4b42a29b81935efd90fed868849", + "1172fa0d8ee450b3616981a6a179817cb97028ca404e9d44ce2e2ea40685f3ec6f35fe03b663b531c0efc4c88474f224cacf389b06ef736a535e449376a2a84252111a4ad2555b652ce21972540c8c5ecf41acc393e7089b6f44bf5123e295036e6e79384768d3b6adbccf13d8dca701857813a7f8765567744791baf65817ee1a343694d966c5aff742a36c875beb6e505c367c39b751415d530a6d97ae5c3a1f8a842ec1b028a770e8962bb55fd5c34a7f7b46", + "127711a0b5d2545f21c8e14f86f3d71f2658aa304a4306981ef0d6e4a7c0e9bb2a6dc955d0dd838c371dd859b0942bfab5e133c5484178fce824deab505ffe8d7b535644b9b683bc87473220acc59faa9798f12b006885d0c0900d39e13bc0dd51f01f950574e527062994be6fcaeb46d2568de2eb58925b9273f0f0c7933f83e1f83ce91ffeec41d9babbd62fbf552ca4640698e124" + }, + { /* i=3179 cDividendBits=50 cDivisorBits=49 */ + "01bcc1bab796ad", + "745cf9e93992", + "03", + "5faaccfbe9f7" + }, + { /* i=3180 cDividendBits=170 cDivisorBits=149 */ + "03e4b41ac01f878fef1f2d1af9384a9b580395923e73", + "09d37640645e20efc7a5976e4ac8b6520fd558", + "656f62", + "1f56395504c77d2268ec7505146422496ac3" + }, + { /* i=3181 cDividendBits=4068 cDivisorBits=520 */ + "018592d1d6c4917774d7bf64eaf59abf1cd04e379af72a832dfcf264dae7a9aa7374bfd2c460774b6b17aa8d9a9bdad93e4481dd15052215635a7df6162a7f17a214208a7bbe98db5addf4e59b85bb07153890062ab465f70d3e966d6ba7e4de17b3d5c24bd3169564e421c9e5365ee7caed22476afc2937856caac4d84611825e514c7ef0edcdd8401442f2c801ebe0bae1a2e42dc77a3d79717b32d685817830e13f1cd202895d7340e80f98f771c81ce5860a6c512ff8a7b2d086252438b5356ca9044d8a094cf86985397c74ff93d91aef7c278a0782c7daf8f52608782fb8ce338e38dcb77b244de4506c8d6767673b55d01b5a2c211ce41439559db32ad56cb50fd32646b131ba0a91d059632124ee3b4e94409654beec77e7836a0d381c8835b52e138e26dbfa3209dcb9856496de388739250f863793b0c2c1993dc25bcbcbf483a2ed34fd3cc7619c060764d77ac477a36417536c0a8e9738f270c0850be48c73e0938c880d061f4e233a76a83edbbc87d18f0c4ab7207e4a379da47519bd0d763ad9c55698ed08c024817d55d52df4329dba9f6418705cd60bb887b363b308d86e92bc054bb12d4720d7624e3ba4ef4664d5508b3c5cda19b5b7a8096a50529ac8670af92425b29a3bdbca363090ad437ee76a4c1c6af984a2dc9895dc8386f6d100a725c09d16f06a30d76424313833e50c346849c30eeb", + "6081eeb35a485920284cdc9ee71453197f1350bf6bd53ca1da9730ec0db4ec295a3befd0233c3505dbe50d60908ae71436ad2575a7c0b974cd31ddd2ab068ae9b3", + "0409662f6a5802fee2b9bcf2354be750d3fa3d076064f74f89808cdeba528af004ae4324fe5d13547fb685b871fae9b7be8d4813c321278b373bd51d5ff13738f4c6e62fdc935a5b93298f2847069ab627e675446808c66b6d1485c8615a32c1311a8ad8a4cdce6485181347211c10cc121699c28ecaee0a402d27b3e4dc02a1a439608bee3386e152860450a4281f61d7383cddecd160b17a68b38ef6a2fb7f920c9e14c6e584b6b60dd8d53cb3b7fee30d0872189ce24e4a4c5f8514b63839c551015f59dfe09cd7e9895dda77405395aafb36c0a060448dfc4cf3e82b82e2d056194f28bce38f10b53d59bfa687c556dc07348ed9f43f8231d60ef9640b3d4f564e5752e7efea568934a1a8168f87c86c94448d912c884cd18db5e80f8a6d603cd3cc1ab5e7dfad40558af86c9d3fb93389213709a2dda958826d4fb704a756bcffd6186669a446a483e00634a65dff27ee75520819467afd9a517ed729744a2d88b98d10e9439d2192b6fc97f7f27360e2c89cfe1309d546046e22ed58ae4c81e29ea370f03f3e55c6d8ff6f531657b40df78eb0f6f5ef7f8c000764a86e85d962ea50ba9b4fd03e084632321660c680130fe463cf38dd0ff810", + "410ff5f5bb4dd5f246a93a7e2544cb809fc13f0f80c073e57f5fed9be5e85d2f3199c65aa3065fefb8595578b01dc11dc08f8b800c668f1e2858da315616320bbb" + }, + { /* i=3182 cDividendBits=934 cDivisorBits=892 */ + "01de42879d2ed270be1a17a234d9c23ff2fb8ee57f8a8e22449c93ae3c8d3360e26e2e3039e0fa78fc46784da4b0c5a51193f241f1a3192b22cb2a5f7b761fff5bb9620e888e7db64c9f55c868f4551bf2bf0fe53dbfab2f02e3aa6286a0b0fc6f9a6d9ee44329d070cc03851db900c3605c946e6a", + "02e8f59c1c9c5a3b540d47a01f6af5ccb55b13e9636cfee87c7a115c01ea73b8df51d59ce742db2e62af3b12ff1ad82031719e1cc3722bdfd3d5deaa5f970b8f67612e95c40a7ec35fc1e54ab344d4d958a015cca38170280c1b893debf992b9f172df5a08926aa2b6e1ae733648ed47", + "a459c133b0", + "edc076c92ae92ea032c55f6a53fb87dea0cc46cc1cb6995a9806d3d38024294ca459b9604e36475e5322300a3030e899b696b51487ea9ae149fd6c1decf8f1589c3222eb113843d09d26bffb1cd3cb9a394f84754aad70a6d0a191b5e6a7063409a5239d47b337aea49765f1a5289a" + }, + { /* i=3183 cDividendBits=1877 cDivisorBits=60 */ + "1b44c6a1ea81d8057bed0bfc4534fa63b19a8ac980626e633f7a4a9e6661e0c3cfee7556bac83dc4258f7e40fa55da5683dc67c2be69bb63364e0f04c94b75708428778b389e78329c9d1aa6b7dbfd8f17e3f45484ed25f45ff9e161cabd2a066c92fc344e61c5f088a2f06f1444a8fd29e34c1e8d457950724b7539a08cd969f8d347bb6abf9bbdc37d72b73e18d983bcf22facbe67958bac2fb1a249cd54642fa7b1f11ec7738f57ecd86637e7aaf2a2b0905da01c0fba20f9eac244809b857b713767113a7ae4d950859f51e3e90b6c7b24fa29b208514645c92bc28304e8350e9b669f1c97b35165c6", + "0138de09d2d51a24", + "164feff6ad22c970292eb69879a62b0e8f67a0ecf9bc7650782a6d0a18c732008f06555e0759286e0ddcf3d162e760fb283574670a44ca984bbcc5858db5e27798a49aaaac6e9815c432cc2a86cdd6005b175b9eceb19556715067b7ccdeaf36d4e8d43447944b50d1ae56cd115277fbf07ced24c906fe838c7605289cfa5687c10515e414e495ff04dd66e3d72bb673f41691f7c88051250d7a64d40082b6e30f8e6b94a9755864d9569e0cab536d6488575ae2cbef9a4fe6bdeb7cec8d4e5ff2d389c11432e1fda4d44da1c90b9af7454ca4cccd045445b37ea0666823668c8eb3fd13", + "45a94f337ee11a" + }, + { /* i=3184 cDividendBits=530 cDivisorBits=348 */ + "010afbff7e3878e10703905a98b8dd25a2036b1addbe4df645c87ba0396461eea25773dad3da2cc422df30d97b3da4de0ebe9ecaa758fa3ec00786c8c83f8021422fb3", + "0a23a23ce7b644299cc0cdbb52e922c5265439ec5fc14e4da51d77aa340d8b0544455cfa016ac9d69af11b04", + "1a54f827352e56150790debce162dac160ca2a146a285d", + "0361b135c49f76f9b0bd3f1d9cba7f7b662aaa3ae6b5456c19ec1a6a5fefd1c8ad2665d76e1ccfbaabcabf3f" + }, + { /* i=3185 cDividendBits=1950 cDivisorBits=640 */ + "3a758a631ea95a3eaeb7495a3dc4e66a3e2c2735f4204bc176e766a0440f2675e2edec88dec2beed0189f339376f6a3b5285ff415372b6c7a83e10f9ff392a896760b39fa9bab687ea86fa6b80637a5615d50842939127a05bacc226c1853cd2878d22d6ff8b5070e00c0ddeb80eb09cb93c51580e37f1a520081e786472ae643e2d9bb2e253279aab547d278f1eab8ddfd0bab829913684a4f79bce5847ca820381231bfed676690fb6175fe6302b01d7ea6fbb51107a7d5f349cbf8bd7a474c179dce3f78cf5ac086a3701b801ca727431b9e42042d3f52d6a45faf67ff3e16f368153e4fc70936bd52cabe19fdfae6c86b02d", + "99a46abf3db79d5071d00c18cfc36ff244ab5738c13fc8687633ccbb15e7bbacb5100dd5a7fffea30b81326e3160cce70252d8aef5d037d43805af0a0f6b640f94db68b8014c0862cda73c3b2fd73d65", + "6167b5436a59817c9bbecb916bc517fc7d204cf4e83edbc9fc2a248a863462ef477014671dd0074c67e59de6ff30f9be6085a5988f66230deeea3c1d31c4c3428be26d97e1867caeda404c599e8673fd0269333a2a913d6d8027bd0e44143a3ace5e5f46b3a04a1dc6c42f2e82f610cc737d3f3f8f305d02d15c849dfb91f1ba005d0afb5f5bad2ba8f7f912c4c8e6a54c83c5a8f9eea05d917b34dfafd35c5c1c3aee20", + "129a7fd40eaf02d032e21d840375b806d3d96a1ef7c668fa203cb08e9eb9ebd4f8f0724bd4eeeb8f2b39c91c0d8087a3b73e5ed99d4e92e072448a0d0ee55c056a1b82a4a7ede7d5636b940761a91d8d" + }, + { /* i=3186 cDividendBits=3805 cDivisorBits=1965 */ + "1b0be2d7540fb923481257e5eaf9c2c051ebdb1d500ef76278133f5ed3042c3b2978af1d1747fbcd3e7eb17cd08dd3703432dba1f899f78266e3c7aa14dc373e1058d8f1ea7ca429b14af884584ae4741c65d72b4fc79e086c9ea9bc005ee9a68f02cfe492950f7d3a3310bd7de9f75e66200bd03d39d23909d45b7edd319480c2ca5d823d2392cdd397726596f6a7809048f77f3cd0348ff53dc7c1de23caf5c4746efc1cf433cbfe9ecee68d25c776f258a323e92572d0305244e1fca51f187091dc447baa17281d9d89b7cc68dfc7d0193c7ac4405b536595f63b78354ff02564d33b4fa1fda5c220234a84845449462d5e5dae26ed3ac48e36bdc820e4b310aee9fc2a9cb5aebd074c859a5f42487966d6f052e670137c71dda248c4f68ac960866a38028a071e9131268681de2d58f245c9d19a457e64f33ea918eb39b294287ead82ff1ce12a6fbdd132894deb267887f01c631a218ccdeea84f0845f0eab0617e9783cd4be52341fcab64301af832088f8ae365dd33fd5b728c5c93e39447fb5af1c0b0258a26008ccf12446f7d8e49fdcd67bbf4243d3d0bf9bcee02c9a162e1a598b4f55b9e9357d7118a1fb3c84e2fb604c27ee24bb5d4d15224d2bf9405e3ad360ad3cad0fced012c11561ff87012a809a70815204208", + "1d46450153f8d7902d4178956bf80e2f8c3020731842049c0a2ac3b599a070ba838d45a244a942512cb69383d8da6db7bf835a18b89da894264cde2b735a87773c25efe7a5f7b0e80d0307ec49086daa3904059834cea41c17eb4f11ac7f33ee322dab6dcb4dd80815a519ed46eafaeea581da414a10de040c8993c7082237e698735060d07e5ea2c207247187e0f301192fb271c72ff5b891eb4c6d00d0ef1ec632c4f5853a6d4678ffbed84e40ff3d949e35313e965d090aa822a92bed21340b0a874fde168fd831eb3cada3f44bff4cb3464a7469bbeb539d295d93ff9662c813162584ac3063e3ed90891a88d374574145f17143", + "ec841a2f1ab85e9d5bf5066cacce70164244c5cb179b2ba10af9fda6f6bb07c5fb53e3d9263254a4ee6b1fe1b07df6f58822df2d8d2a6c95f8c8c421fff0f9ee6f1e37cc3dd6bae00de5d8acf38a5d92a0a155619a3bc20a82828e29cdafa6b7e3d0e7f39ef2bda73bc729482fb45e2b8f2247b80e09660c59aba67c8acf0c259870ff24fb0c1140e36222b0191ecb7f390d52a78311de0c2d1613b8498e4b2691e5a68e222e1a727849ffec3df63c1cc207ef87e4ab051b0f77425dd6673fd6ddefc3eed415f98960ae38399f2b80ed4e1eda84716184983ecfecaadb4135c4a58ef6270889", + "1bb2466f9c0fb3e45d6cfab02239bc4bc3c461a4a84a99f3142f327493369403fc507d532001dd15b844d813c9363bfebd7d0ad6307a48be8fc3bcb6920057aad7556ba0565fcfff3fd07c4e4a098832a99255695f151cf5eac8159803c58b741689daa1c488c8c2146672d0651f1328e10d7df0c6dcc1b9564ac9a82439c8d403a9718c0e69672dc872e8bfaae7f688ef40f50fa8298e9b8f0e05749d3e7e00b6eaea68ea338ea823d37740a9e76342835b3a17ca69f37a0afc41bb1b25c8bc72cf62e0f35ac34364920081dd3cb2a6916fceff07efaa644705e83ba973f22dcf8f4861526fa3602ea616d0df11d7ac3e21782b8d2d" + }, + { /* i=3187 cDividendBits=3092 cDivisorBits=821 */ + "02a1d1da16983188d1b6847a5e4df828909c3e720b0809934a496ea66e4f5fd225c87b576cdb4d097173e74e2cfd969c749525718e91f7be96f2292788a72588e7b77bdc00b04e3498cb46da33f9f3e6863f438aece522c067e46f0dba57fb62f53d63a931574a9e6d76d04f52b975eab54b187d4737b6c8d5cb9448f9adcab02a3e93071df482ebc81d971575c35d8a7dd33aac13f9e11c669743b3139ddddf2e70e576d9d554e226024e982d775ca8be91200dedcd2a9aeef5ccd66ee2b3220c949ae0bd04822b5ab462a204b3d9b0fbffb625359b857487204be718810c520c06b471ec684be26d42ea5507e17f26be8cd028fe4692aede362a067172faf06f018d7e45a188b50b68790389e3724d7548d9997158e9ccb96a3f4ccedebc8b4cacafc92f1049534c40b3c4addbc06b14b4b7774e568c63fa82b4d9d0b0f2bc987de150264eefa48fc0bc8b5480b8975802bd870da36e9cf34005b6e598d8a804cd5a5a89ce33ed7bf0526a2407ca34ea0af9be9cbc3af847a06d9f8e5e79e1620124", + "10dac5c646f43f43114684fecbb445c23c37083e0cd99cf5058b9ff693af463a19a1464ed4b772e1c74a7962e8e2858913879bed6da95e9a87fa066317c98f14238c2c0a18e11c4f9f99e30bf529ce2feae748402497e78174a2d2c46d987b8812342ec1f4009e", + "27fa7aae6d73d9535499581c0226df49d99c19156b07c6fc8c5959e3ed2dc4a8a08c68c66d5d12f46079bc250379b74a2572af942dadcc6d42ae614d2c403e71a4ff02e04991029e6d0bc1681b8f56b307b1b3345c166f26d2550577e1ca77cff4ea245838c2cd3050990be2c02566c5e442e8bb2bb71d79b35f85bbb39e722525d14d905d61cd87b3bebe48b48fb6cd1654fd43e44a41f263094db6d2d91b8aa82432acbdcc1c59313891188bc0a52e20968c357b0a54a809b1eb450425a52e9e5f3b2d6ab8d17da46cd4b7630b355aefc10604173709c596c5dda0d565e1f8fea4cde718cf1dad3039f9bd00096b428786526f3bf92693d064deb1941947e79b5b8a47b8c32502f4f36e8dbb888ca5914e655d7b007b305a83741c", + "0a0fead979aad5b34f476f1a8d39203a9b0180c4d94eb53b388c4580244e364e6a38ea716c4aecab569346b1283b6d06c6592da5e86dae79d505b504f7b9cf12b3d08fbd621855587611483cea5455a4e78fae7f8536f04a212dd53c72e5f2d5c269c63d9057dc" + }, + { /* i=3188 cDividendBits=2855 cDivisorBits=2073 */ + "74a97fd74c05f39a14d9ae1ccec25b1cfb6d0a7a90595a12b17b1be411180c3a4814691af9b2879352379889c9d2f155d245417225f0bbee89a49d7d54893d26fb77f6c2b178561e429196ebf59d1f18c51c6050f83bc93a4ccb642b9252113ebfe5f6d3ee8ccb5639920f07128e01dd56a885f079727a25d7cd9ca83651dc5bea14d261b0c16778a59598961a6eef371e2dd64404f02466f918d0cffd3543a6ffc0513ec91e92d5a66ba1cccd8d96b6695494b3b0c0c5be4525ba054ff200e0739b3854af3b67e180e58ea35b1d2374b272fd5490d7a4e3c6bb844d5a9e38da49bb78c7548eac70488948f35b843a605dd67a2f553f0e1bd902e2e2a52ef2fc5e0e484a1071c71c194e82fd4bfed3944fb6ed1a07994551c2999885712f7cb227defb2abcf8f267ead29cd9a4692c7cdf66767b563d2debb1074bb1cacca5894adbca91e712393a6f9dcd763cf17f25b415c54bbe9512c0bbecd8b1757c3fa06d7c8f87d5", + "01e4f4b1a6a3e8b3e85f8f8914392d45ef511dab9f4cfbcbd7bcebb27b2c0f473baaf1808ac9d8d758f599fe755620b9ec87606016fc69f8fd5a0fe2e2b6418f4e9a7007ce8965501ccef564aca7babab4c24354bce7abc60dfa90657dae3c3b9c9637c5c1c93b2de4fcca0a270b5d9ce96192cc5f076874cd6d4576930f8debf5b79d0138024effcaf6d30ef57a1a427a64624d8ddc8f15d6f95e68b69f39c64c94e5eb24a7e2d6730b1fd4a139ded4a5ed9869a5a3e7e32edca457fe5cb3ea892c58fe50c601b8bbbbb11e83a0b96bfedb3fcd66aebb44284ba340b6ff205d79df28a9a03afeeb7489a2b6065a4d3b729bab5a61fd50ceda2d018ff0643182a306fcbf", + "3d957e363e400eec5a8eaee8bb1d49560870c6b64c859f0ad40bec5adf12da9db769d792d986884713ad9723689e191c2df47b1af86e962a5c4a1d2c835fb217a97beb9c27651da8d4e358e9cc697f9465e9fd932412b156d67b81d1b07f9dd8c336", + "ca42bc8df415203a1ebca1cd5486eca56699ca870129af9378bac456a9cb8cc61c9c5ab8af8ba213aa90a59c1b645b581f55fb6ac5823edeba0ef65d336d2cf1b13810fe20809a961b6bbfa0b085e315568bb5d6377e051f37494b3ed1ca2d8fbfef9daed16b14308753a169ec89beaaf96f88c033cf921d552111ca79802acfd2373152ab3cebe313f723f7ae75f813eba5f57907fa3bbbb1163fc42fd550ff93d8ab99f74a6f0403c86ab986a7bd6249a6a5fc2850bc4fdf85cb07d0b28782013b79e589236023fc149dc623fec072a8a72730aa7537e4096de435ecd6412946d8feb945a2d08b10b55f2c86dd5b51e34dda61dcc1fb80f05a5c4c0823096268ba8b" + }, + { /* i=3189 cDividendBits=3338 cDivisorBits=1380 */ + "0292d69c688bcbe3867b1f61f14f6788f785c504d546c97ca904be985215160025d5811d529ae90c1f507b33fd26c1efa46eb5b580ad2555d65437c8dbad4edf0eb8535db982b608a709834dbc1d0dfa8837e1f346653b7f032fea81864eaaa6756b1e08867fc472bdf95eaed83cd5e73c9b074dd17ece73677db31bc86766363e729db1f486008d31d738fe6db44e5158f5bd6a79bbaf3d66535122e34110d9fe199dad9991a336da324b0137d3e03d5bc73f4ca42ce6e77daca74177f411cce763f3d508933c2145b9754d176f5ef08a40e51df2911cef5970060d90a497bb41eb586154efc25e8bb2b6f2f96dd1c8231c74f3a8ffd60f552da5f25d41a72fce4c8fbdc273e5d59b1b7cf2d282970539bf9193e6a032578dd227395529aa7c7de7185f5b09897ffd5483993645aeac38b5a125cfdd009d940495c4d38cfc3da07b00e0588e521a1668c1e02df71e323c85ce4439d008b65cdb106604a0a9f8172f4ec6d83b92bf54adaba28a61420cfb3668d862b40914f3b68f66f12c7d1d3286815e81e7c14630af676baa095bc05d12222651b5bc13620aac9326a2662199ab", + "0b7447211d1763730c59016a9520620a1e061f73976e02a73c3785b0e2f45472807cf848601a2db3f1012dedfd5d263c589bd28459716d9ac00ce7b75c54c191fb9de090fff8825daf2bfe5d5fb484803c4523e63a696761ade777b924e2d7d57ebfa4d6b474c8e9029f535525be1b007a01b69d8ed0574f63b44256e270992b06cc1988644924b55abc564506161d0c8e3f806d6452b0e4dca0a9819050a4b10cf7df37ddf3639c4ddb468ead", + "3984f1c6cb5dca1c3d9c12802f23dd1dcf429fe31d15ae0cc09e419081c0c68ab076effbd67c60b523d17de7956cf9ebcd78435502d978ccd265d6514ae37b9d92054ded7a5a6acef3d10a2a919bea748d145bd8c699e8b293ba214367b8c137cea0d2f8a828d24c295ee757ad0772ea783efd491f7c55ce4a1c1d4e0be2ebf87baee3a449c3b4166093d805350b1ed41ac14ea38ebfdf1ca851392f6ebb8a5b9d7d1621e59e1b2c89ca3ef2eebf51a4e0d8604cdaa332d580561a80cadf9ec20706b118ac596d9fde4d34cba8a117e3781c4e9201cac792546ae01ea638e39dca7d74b74167f6314f9be88df238c5199ca5000e41", + "0970b04d5708c9e38bdaff200b414270cbbde408af76006803497fb0cb758893fcdd5c2c48c0519ecdf9371aa32ef63cb1900c1c4751467880003ba503122b198e9159aa5aee42e820341086fc3ecc5329a656bfe404d7b08042b1ca2f141020d069e62766d531544d0e08d1e9177ff07908f520e4942ce367ddb6a0cae275327374422cc8c7a25990da882f21a2dc243f38decce3dc084c31c3849fe54a78c2e6fd90acbb1958e47e5c69e9be" + }, + { /* i=3190 cDividendBits=755 cDivisorBits=8 */ + "01b258593c7db095d5260c0ea3e64efa19027acca98c73857b0661e9d2719ea1e11cc4614daf9c86d06503e368efcec33a9e9d10f0f61e95adc6f6e89e38ec8d7cdc21db5ce10e8132e708432d1970ceb10c8ffdba23fe50a9b795ed11cf46", + "0e", + "1f064f84521ee62182b7b7e722bc7f9412767c5540e3ae1b12bdd9d82cafe6fdcb32993c67f8e50ee2a4d962ec8ec4cd5478eeeca3dd9cfa207f59c228a32ead7d7021f45937e4a83512e03a141a57e8132edb4427247379d64190eefc85", + "00" + }, + { /* i=3191 cDividendBits=2675 cDivisorBits=2552 */ + "03802a8e3a86352ddc630be8bc04195c548dc3f30ba90e005fd1b3bec0164f55640ac58d29e4d348a42b385d84f202bc5708826b8414b7fe63bc0b54c1bf5d8276f2f070d83e981840e8a71bf5266683fc90735ad5342c816af552de4c8321175537959862892981ceb46ae32b4073ee1b4f23aa9cbc3dc392ce68171a723e9cdd5e3abb313193e4fa4ad085829235da897ad9b67fc2fc49310dbe8d27c56f426702564233dab8793ea84d5a84c52e4287126513b1fa9149056604d9ff6a7634e7b5a6e5de2442c4b6d4c53dd2dca2ffd8f79019644a90e85fd2979ebbe126ad0b8db52bb1c8eda63b2638006ad426167bb1a26f9d9db54126cbefa1cf5c1547f318104d5ff05fdd7767c4c2487332278f183ea29e9a5143f8720329c867df44a915cac86787825c8e0ce0b960c6539500623f1756aae29f01f73d79bb5bed33cb4927f3c4c04036865693732d2597", + "97e4ff6260649f55f38378da738b170eedbf5efc63f7da76ea7a8223fb6145109f23d3ba881384492b3ff69e6f707f4f9de58d2134514a807492e6990820045026f0b89311694f1659e34244a6b140d925c31122764180cadfde914fb12b2b38410c1205ce4540ef898f236b1ee35387613b039115c0f22777a5e15c07e9fc8bbec0c06cc27cd7477c1e1525987827812776c187dd06753fe05c9f43df58c76e9dbbd77e0928b74c1e1b943099ed7aefc3c4fa86a268259d3e3b09de64d9df1d5da797883cd5bbd3d2ca193184827a44d9ddf3573aa0d95f6e0843af76a8f1418600fd1c74f2b20c2097e6d8cfa00dde7920a25dd211d33e1a84d7d54859cfa2611c88543f24b6982c8cf9dd249c443c16badddcde04f5068e2c0e947e80e55561874618a21887da49b4417f0e4a2a4f502abf476154d92de41105a4f8373c", + "05e661762199960505995f6a6d1fb234", + "21db0733ab888d8fa627e1ac10522717ee0c056a482d1b3ee1f9411b9633b9a2e5c00b475a1f788db2fcb4f7b97124a879e1fafcb347dfc976e2688224d1adc9de26a6ec3b1539065f214c3f7f736f9d3893472773d02d5b8b4abc52d533e730a7a9a967fabff931b6cdd9365225fc02c14274ecbb825221a33108fd515964e3e29006a0663dce0e31d08bbccca43735c795dc69dbb13b2d4f31a5d7172906ea896ba39594b345908f796420e8570ef3a0bf9f5bce7007708a46c3b2cf0693615a47564358376bdf1508b62b90a2ab214f8a6d377088a399bb1b23475f4c1273f6f7d9769c3087f570875c275e0b86c40ba5d1f915eedfed38e8b32cb0629a3fde48784237f6cf18e443a4c56c97dd448f8799b1d53ff3868b09fb2e81fafc78a5fabd1c49108a463bc22fc2661beec96f7c44b4bf06353f4e284e1e163567" + }, + { /* i=3192 cDividendBits=106 cDivisorBits=91 */ + "03937bb8a50ce00687d979b63bed", + "054016892bf2af298d20fc8d", + "ae5d", + "041f3958f5cea7d4c912a6b4" + }, + { /* i=3193 cDividendBits=913 cDivisorBits=606 */ + "0a68e1528e7013da3aeb4ab5d3a91baa7fe419c160e57fcdaf1e5f6a077d5419618326705793c7bf5386d63fcfe59c7ea5092a5a09713f8a130220d0c0103a5ed575bbd3bdf7fd44e5ffdcdf210d36729300759b63a27b6de7372f8bc1bb9e426c18cc2c380bf8c76dc0a69358bf733338e7", + "13a76a00d8ddc7b3347f8927cc4a574b4c26d4fdafb63d48765507c6b037da4157896006101a79c297ce60ee85b7c8a9922788035e1cd92cc3d5149d94184520a2096ac65bbed2bcc6c48d36", + "879708c7f9194c0724cbd3a1930dbd21689e31426ebca5a9ee494018ac2ef0bd9636fe79e681", + "1181197021afbebff4f70a74d41b58e360a7d8a57776d41caaa17aee2c7278ce08de3d70ffb1fda7b127d6758a40aeaaff44be7262c83749bf590dcabe63cffd589dfb9a189328a460c38cb1" + }, + { /* i=3194 cDividendBits=964 cDivisorBits=620 */ + "0bdd017dd4f4457fc66f253a9a3f23b4237cf43fac0ffa5af2de9c18fea54bc5580b9d7481b60694f6769a84fc3b5e7fc4d0935420ebd50f7d669b996bebc4e03edba3d31ec523ccc684abe2d8ef78570da2524eb52db5333770ebaa3bb64ae8120d34ebae59dfeac4f21a3c088d88ddaa32426850d65ed7f6", + "87ccb0ec089d6fc4fcf9bb0e6bac6e89fe7ae02e311340b5022131a1c09cc52508d696466d49848c02d15beb91fbfb3fc63153a6a35107f6ac18d423557545b7522e3ba9052966e204ff9a7177", + "165d27732a88d9e64cbb4f35765b2ee9695ba350e433b2854fe67e23b87282a534e27daf00eab83ce8ece55f", + "155db7a893d2d623da2d3cdaab9d4852838d45242830b8b71449f008628fa1b51f10996443a1d67271ec8c9bae4a7957e5f485bb726b3eb885661523a00f394eaecec13fa2482056b862db49cd" + }, + { /* i=3195 cDividendBits=1056 cDivisorBits=569 */ + "c63d3b9be4b2bba4f4234423bcff877d7e6be740f8323916a493d5d5eec464b8d0d9cb307a22f8c1ee6f7703927cb09f848e30e626e8f32aef262a8f98a888bae2997aa6956e01ed196ca16ebd939268c9f36d15b7e00b5066f9bb704f85441b9ac3d0e2fa46650b07d7fe197c79ac3c7e71ceaf972f0a7b083f0c3ef82769e581039150", + "01486aa551153e24976ff2602873d19a046a2f9fb98739b76a2807455816232b99054a559a3962daf60e865e9f6b9c3f6d056607b700c79845931e7300beaed04152f7801090c132", + "9a86ea1cebf4de7b3bf1820d1c6c1802093c425e0c8a18215efbb53eaf496dbf41b42950c6f2b34f99f8b736fc635a0d7b80c83cbb3feae3b1332c6c9f", + "6f1271844f85046adb57d58caa035f732e0c5e8dc177ffebd57bb66e5da9f49b0fe0487447a04a9225ab2237e3a85df21b4381b73bbab868e1595726369228a2cd116dfb027b42" + }, + { /* i=3196 cDividendBits=3031 cDivisorBits=1710 */ + "1ab32909d75c4cf2d3abd71a3ff29f97fa68225782ab46162822f612bd93175d8a015a3256c3dd7a3c9d732fd6ee1d26d76f7aac601de6af9bd66d08257a26027b83f842ba983b96280cb902ad67d6f3bec9f9b9098501c19ba390e53bb4d54520e88ce6e85bd0dbc08563e41408712c187aa3a92aa5ee212080e4a2e1c0399c412ce0d6f1fa5924d1b829cba962bfa71e580357404124b764e36345cbca950c31ae9e1e325d2ff825f95ae30684c988942e39acd1a2c6d61e2f47ba35d33c4821db2a318091907f100f51eaca5ef12af9b48dd9c9d0e24d6e92a2960e9670936b002686eff66bbfbcc1fe4951ad22a2f700c69f6194d37b3ef2a99fba83885cc7e854002b50f9e9f7338289a313e1f2a56a933043759de47f9a61883fa6c6bf48f1fddc2729be68d00dc3b3cc1d60940e0b1ee9fad749a1e185fe558dfd5012efec8a68563b6a2d16cc8142e7c193bf92460ee5f309f50b0a643dca5593d38312ed044773ea9ae21c41ce4048798de8cc0f7744b503e78853bc5c", + "1a635c4904e57783947ccb8a36d2ea0df2cfd37702758876bcd8abf97584299a4a3f0d508bea8afda0fea1f0ba5af55993500f37075a6797577c3148a3523525fe8f94b8247df6574bf263a10e76e9e20642260a12c9da89a25e45a414eb0cc84353615bda56269f9d4a48790841f3058159caf7328a5030feed2b24acbf1230b0cec1a2d1e209f5746cef938797646ad5914c2e365a0426481dc2e897ca8ec73720bb9eb8207d1143864b8a80c0d3285fefee8ca992f784f875a50f02b7ff63331dc112b996744321d09fd7a69e16424d116828aca8", + "0103062a21f9c6fa93685bd25e73ff366198b56153e355f97d457de02a493e239470db5bee436859339d12e0e3c7801c0ef4a85a6dfc04fd079a4a07ccfd1d4a84c2c988f5b924b0413088aa6f4765a2d4550776927371dd7e28e4e8d2130e101ffbc0cf00d7c491033a50d17d2f12046ec6d6e0dc6e9580eaaf2ada204db00a25f9090072917b8181bfb255f7cfef6e4d97599f9d3d760c6145ac09a0e20b7afbe2c860bfb5", + "09c4186a7137d7f7f953b73fd3566403ecfc901f667e25a0deb9fcce3e0495aa287f745a35eb4825be4fd5ebf9346c5736ae4951bd40e915864cc3a4d84dfc7275547097a8d78107283598686f21070e64fb318df4738439fff4dee3ae90c15a2fdb25aa1238652817f5cfef61c36227f918b4f7330d49a9829b296bda5282ef56b3d96e255eaa3e077508bbadd6789d64825b50684ecbe5090d0739bd970305081b2ffd4ca27762609cd897797f5073853867fffc4d1aeb3a5b5eb1901b8ebd7d8e9998810109e3d9478fc040683b2c8f6e8bc05194" + }, + { /* i=3197 cDividendBits=4034 cDivisorBits=3332 */ + "034024ff23834e70c7d0404ad1495be9e46770317bee2bd5fd0e4c942ac2e60cbef7eb63eb47a5d656a18f6a50cee65460b4cad129739c282f20047a9afa9e8778fe53a12e82819e570d976d09a988c38c25a5efd61cc657dbbdbd5339c055bd547c39f939a8326842c649ce90338d865a5d06cd737ee86d4c04494c8c4b29f271ad1f5a25f406410c62ffeee2f3593204a2b21840416b37599ed93574642117e2ec6f732ffcac7e714eb1bb208f851749055dfe29fcca86bec9f6aaf3478514de4544dfa396c8c6351d4a931c7dda846d5403c37f7033f70341e1240de3ba538991ab86083ff131ebfba833c60af927fba3410d414ad81d5b2fe51b0f13b021c2adf018a2e013e4a1510e6b4cbd84b4328a0c5ed7c11e0d8da219d30e61ff6f74361eacf52aa210202a91f81a760916de7b936d3b60601e6f37658f858eb948fdc081b710d128d3d8ed3557f44259260c33430a110a448eb15632f446d0768e0392270d3fe6d567986f9cbf24d7dc3e87b578d6dc42fc91c12decd4b3b9f86fba690e9c7ce6afe2c23ab8da0231be54f89cd954c25956c79edad2e6eeb3730d526dfd6d58729e8d81af4bacf2ed3d91922de25a28e9549e38c7ffafa21bec5b9bb9568c64bfcf1506b655f948ead0d88a0fc2180a71ff85b58f198be85dd225641f02e53070649050a28d5566a98f98ee4c474a1ae95ca33c", + "0c15de9f3e1ea31adaf418f2044816409e48aaddee14fe111941fb749ab213500f19dcae3159e41289e632ab6f8fea8754ae1dbfc43071478fb6fe3701e94834c0bf588a6f4ff7bcba198f62d75042f9006d46b9a92888ea5d599cf411aebb979415a9634a466261d72e4594492448de5e803bad3f3971f46331024d20a082eceb6124577b19f5783919a6abda2704f55fca1c06d3c64877432f7ae1a480622b525e57291533eeb6079e5324f8a967b7e7e8e81c9f13b18638da5529cea40cb13bc5eff8440cd182f810e13ac06b66c96d3c632d5333c68c919b0f8697bb3388c19bde01fde0cda5bfd3529241357b78541191b5e83534e2491146398fd5f5f3e55c70cfb75d0884120c20667d510c62a73d45f5894989a021c64c845e459142848a34d17a20474b96e22a1ffdb07caaccd8207c6acec7dac60e1ee56cf35a2bca40ddfd8bce8b05f035f66a3a3e147953e8816bf151061d95a51aac2cb957d8e73a08179385a2e83a7c4c51510ab913d3bb3f0220e829c4e0d3bac56878660610ca303e87f8637c62f15b53f61184b306ecd31dec16ebbc75ac6c843921f52b0b", + "44daee13babaa596b9221cbca186837e000a6c5f42923d6450e8f9b96663bf3f0a60aa4b2a581e316f03b85c051dc44fad987581241fe06b08ccdafe8d256149a2099e3ed9131b09826c9099b1e962c449d9a82f2c7ae4d2", + "095b9b9f3f89769f07ef20acab9d470bcfcc6eab0cf172fa3cf3f506c65d4616b04d4efdbf58c044dc8b59c20eb33b076403f3a965ab46faddec7135dd305de97d61c1c6661ac3f37d47482eb5a4006a85ddcfd5457a505f2149b3b5f829e983d5b93c5633e6766458508bbd2c811e7900c61f41dddd2309ca8f712993ba94238a28563da66519de6dd4599ae60911902174382e45cab3d18b5364865e7b25d2712d3e51dfac95211ddb5d51ba9d49ef5edd7892461ae9d9942ae657ae8852eda4abdbc9775be8e9c259980ef88e75ae16fdeda5a86fbf0862f9f38fba17ea5afc73898c45539e9fbd12d199566cfa797cea0ac4be1222a2555a928412ee45903d94f1d229db6258a309aa139355341686547d23405b7182fcdb1ea46f2fb5d94b171e5e2f3a87b7e2e576c11f8e2f218bc220f688b34d529c7b17a106375f70a84f578135c3d61e3370d6d92fe5dc553a01a47bc5da5c8404c2edc955089722079248ea34e7152485c9f3c8610375e6640a9f1eb69f06e6147f5203e8b5ce53c8848f409797ad80ea87c14ffb87885accf0d7b8ebfe9ebf1ba0da7fbd4cab8836" + }, + { /* i=3198 cDividendBits=2386 cDivisorBits=1554 */ + "3b21856d187c9a1acb2aaa1d7fdc04fbcc78d2a8343c3432bc4830864aab32f25315e2e9f0d39032c106a85e4b1b2d80ddc4a5f3da26a4076a9202e4a408af92107b274d4738223f5d7ef9e15c0925803c87e96ff59ac725b6746da5403408ca211d50be18e38df34be574275a76e8ff6eaefc87045cc4163bc4bb0aaccbca1393a7e71d612d7397fba08532ced6d05eb1fa660fda1728d7a277550415a8e153ca856653db237ac5e224f7e787d9f361efd458ab31204d14b0b1e0b0c6b6cb89ea5d198fd767ba9badf7e052a59ae55307d829f6c2e4fafbbbe2da15d39ad37d039f200366409e59751bbc746b63819d16e48691b8224cfae5d5e95d4e1c4d9c2c4590d03a2488f0d0492deccc2b990d7f1811a59e3ea095519e4509255d31e582f71ee8d25c8713abda", + "0279ccb8f2c9707c087c63043b28cc86afa4e61dba350eb649264ea265be97bfdef1da712216f597adf3814b15972bfd16220cb7964163a6b28cefd80992468099c8c1c5ee9f6a984ec64ef6b7012d2c33ae13fd5f39a69a99dbecc5525c2c34e494f81aedf6ef79305fdf919418a5f12cf99e20a2e9409e9db6ace50a455bfcbdc40eb8df2e0c32caaaedc24682c87910155e481cae900a7a2d8f37b053821323b0e1dbd2194618f8efa16ae071393711bdeabf6158253ae70c23c7f05671f3a5a60b", + "17e23e3bf3976e8369c7daaa3ec44b1fb503dd657373259812688e672c84d7aa8d19e341b9db4a8bf32f3b9155d78ccf147c079b2195ec20e14dce23a2e0905971ab169e5eefec768f310abf1695439c9c52de25c48db2f85d34b71d0cc51fb71cadc009573c9f73", + "f8e56c2e4b63d4705c7066b51cc668e5e2854f3b82ba5ed390a2f5edcda11bc96b5e2d94b60474884e9cb3cfe7786468e124606e12671ec98f9b6d2f6fa4d4266ff8bfde51572978f328e6ae7da6a840ff2d17a5d5d30886b675ddc7cbd95b61deccef28a5a8c6d11806226e9b25ff2622a891e31ab352f67ec63a31f5936a0878f0fe0787e2e21f0817ab919f7c4c2ccdf555b2e31d06a1c30ea718bdd0dd1e37152001cd4bdfeb926989a07b5b9b439d166c76e93b8b4eff4bd4f4ba3489f53fe9" + }, + { /* i=3199 cDividendBits=1919 cDivisorBits=697 */ + "3476fcfa144409c2aa276b1305acbb97fb300c910ad0c6dde1ede5820367b403afcc54a3cfbd6c5bc7640a99dfb867d0f3f47577d3813cb26db54f3bf845236e54bc99ed8f202f345fc431474b7f64ba9d3c85d92c8cdeaa9cca139b122d73d0a0ce0aa1eb7128123f432ec908df13a962d7fd30f2e44c9919c02c43a42a388a704bf3ccd538c844424a37d382cf97e7d98ba6d53220fb2484d3506235a49ea8f180f3725ac0c97faf53630397e02bf17bc5d9fc1e05a39200f80feb0cb931ab10c2c1b105fb2d037cd916983c608d0305b8941ac5e2520414af78759a1e2221ebe16a19e99e9b5be930d2ea4eb06e08", + "01607923b91d9a76afd9b7f5332d4f6e236e76cb3f977a7e7ce4a2f250f5681e9ecc0b91e986dc2d0c5d1b331c8e50b66094da5b559d0e2255f4f360b25e3b2ac66c346240c5960c6cd2a2b1c8fec15065563e3e85cd52c0", + "261ae0b1ecd0446b831a87f1040006dc513d5256355151eb1e2e9dcc98c87d36eb0d83df9fa13fbc3b83c4ba1bb5f5be9ef1ca868d4fc28964651d06c7918ce9cc0c9e945c4643b10f1d36267967cb0e202d597b73b290330092754231deae47cd67d40f2618c352edb7e68726fc9f4da136a351eea42ac7d856ffd9a11a0673ef2a59081aa04388beb1d383bb6d9147749e946c476a0c1cd3", + "8bf1dbb4f0956c5117487106289e1eb0b40615b71bd4a44c12822595dbed2d5a60f2a23145a7e6460422ef18f151203c214892ce1d680695b0742dcea66c6c7a74eb686a181815e0622c0dc7218ea2141c719c306839c8" + }, + { /* i=3200 cDividendBits=1390 cDivisorBits=789 */ + "075f91eb75fa926eaa2930b6cd591c2dcea0bd018409a39ad19b05e91e0d5dfbf85435c908e0ba7664123e83bfa8e225b92117d075f11b547a766eac0c1c1e8e6e46d79b4aecf1dc43a21f794c9f131f3c74ed2966d60a81d52ea20adc5f61d42035d6cef4442b813e59857a5a191af26f87526bbedc2cbd54c19806f1d327b8836d490581776317f0d274957ccfd4dfd93a996b44a1f37d4971b5bc803582bf0a9a2f5102538c901439d83f19cc", + "0a9b26dfc3c6901bf1055bc4fee332876025aedf2327bd741c7b1848aefed261446d2898966056636b819b9143b5ade45cc9c7e29b28a2646ed9bdd6effb6531d1a78a17811a4683639a59965dddf479dd3c4dd2b3ab2522167d61a10c552af772bc37", + "b1f88a839ccebdb113daa8d92e68ccf5ab42cf0c2f8a55a0ab8c9be2297b99d0c171324c920debb282c5010dfc137e3e5948e7511ad5141ccda759e75fd55a593ddc9c07f3703f2e486d8f", + "017c00e406bea9d940414a5cafbb3a4dc719e242705ff4f21484525663c2bcb379a0feed512517b6715ae184479df72445c8f6d85e85314c714b120a87947e9a61a1fb5b5e0562753c682e6ded3aa3c99d78f2b2299f075b5b280b69139e3df38c8c13" + }, + { /* i=3201 cDividendBits=3549 cDivisorBits=2742 */ + "1cd1909b196a0c8b8675775a5967fc1fc6ad0c3cf88b7f493ab846f635ac648044e1b967cd3d5e95b1299d342d5c29e733826566752dd00c443ec77fc50d73355978074bbe021372fe331ad14a464c1d2a043dbbdda76beb2270d9e54dccd1fb2ab4235d20cc385de4ea2a78a78b69662bd19e82c5c33d2bcd6ae084da3866782b0cb99b65e9d84be110a13ff060b87f684b7723c64eaad7d1a401aef8aa53b2da644d4d7cd839544e12bf14f8e66c15da7510d2e247486d9b2e489dda481898c87bd911bbbfca5a8a0a12396d0e1953c3d4dbd439a449dbd88bea3fd5ac4d38fc91cca20c8962505656be6fb36e82502c7faf6e33cad6b39a66694ecf74892e1c3e1370dc371d8ef1869b82d13856525bfaee77d9d1d66bbdd473ecca5876b979e71cbeca2aac174addad901e04e3b3949b6482016644e8716eaa6256db8b7a058a746ddf8d7a17d3d6e6c5971d54bbe106c2e3d4e7f6daabee6ae2c0a4eeba9b76448e893bd0a7be484fbe7d2f3eb2d2afe1721ef1d7e3fe9bf8d5a9e1afa75913577660bc1c4c8c2beffcb41d81664c045e36574733e232aacf2a6c4d526f4553d7f52b9bad4319e325294ad9c23478ef191da731b474e4f82941", + "297c73d5730eec22066b18c8d8e18f29e4858c20635804f4fa4d66a301b72b70a83c0e2a0eee64922edf946c5529020b5fd230707ffada4426d7a29da7617496cc2515446d1eb6f46e74fc085cd7139c0ba7c64c5e9fac8528ad0ecc9364351a764e20d6514c3ef63863fffd0ddd4bb2a0649bc9764cd1f29e8478dc957dc8c507cd6d14f20d216997a0b4df00e107940a48f9b23e3ca45c96bb62e1792d47da2ba48fa01adebab846857cc15b0fcda536ec46628c679c43d161825f2e529bd482f49ef816239c15e8dcc39ea88d81ca5e1187a25cdf7469660abf1c2fe903cf6453a195114dbc96061ea64227587f0884fa38c58ca9abe38fd1ac9ba8a609b6791f6e683d1a9e59e2289691c2ba89fff864f5fa40a43c6942aadc4f2b0245134ad437b3f0523d14b92b7ebcf61cd88a4df878513a0b1a0df3d520428a68e6a4928f36ce63786fcce51a4f010e2ce02b4959e9154d323e", + "b1d4ffcf821eaeb91b8372cf98a8d1d4675e6dbe6aae630b37365ff9691697c12089d0a418ca09779ebb3953635795595157c0726b5db33a661624f8d4791a7c75db84dbe97b035c0a2497624f093b28c0ee4a3efac083d214411a8be6f4920777c142238c", + "1d8b770103559c472438e0feacac7af851fa8dee3875768fd555d084b99c0023dd3f0643d929c92a0fdb9eca0623197972a57cac623d48c1f48f9bab6b137f948ec2749b404ad809ad809886e8184967fff89b733f7f54abf3a58129d071a06e93b2a4e6c7cc2b7e15f84511006cbfd59d54de7780325cccf2fb2aa62830323a7b308119199870ff062698ca2717fc22f6937e41a02981e8c75f97e491d134f4350e225129e49dd7a8e5e16d92c66c11a3befcfde8a97e4b64dd4ae579e971a1e2ca8692937ce2ccf1ed3ec06beb04f8fca0bc4d0a9baafd3603ce509123d6a91d59bd101ce697f14ec871f6b8163e34805f719c539c8118ba6ba0dcbe291d1ecc816b92152302200fc86e3d9c8781df3f2f28fac866216fdcd7fd1dbb107a485b07fec6f166728593946324c94080a825e29759608974a7cb9d13bafefa5074700ea45360c9e6361b2308ece5c05d4a04ed79fee63559" + }, + { /* i=3202 cDividendBits=3686 cDivisorBits=2819 */ + "22420063cac7a9c6c221c3219b7e5e08f51ff438bdb57bd73c1e1d62435d6a70f3845521de45c9ce9140c05ffa8df8d41b0a29137853decdb20dd0850c4cf67ceb35a647e17b64a7e5347c0ca9b83f5b3251c6e0b0d024c2cc260efa5a44eaf93aa90b4f339864602b9eb258b41ef99ef39af594a34190e4550e859372d72fdcfc3f10bfc1984c2804383bfc101c77a80b483c43d120606a4b8cbdd14dc1b6ffe991f1fc034fa5c4aa46a2e12eafe5fa31eca4c95068367069f05d15ffa1ed6416474e76e9ed9f37e9fec66492cd0039eaad1f8b5762405eef5a1747d04a56c220f20a8f02354723f9f26cefc52dd276ca13da55c18c7678d32ebd93d1e3d99deca55103960b7a93044b683d01a06bd6c6c1e6f4dcf24ada1e9297fb7576106cbfd621e1ab56ad41d38bb337255a47e5fb3ef16c3e8523bd8bac77a2ae869e00716da7f02832eb172e62bac2daa4d652b9e1c1249f0945cec50b40f4b1e037a24c3defab4370336d74149330951937103dca7c44f8b2aa7def3c9bac5112a83bbbf37c1c9434aa67493a0f1f2a68fd637ba557828f1b90c58de36a222adccfe74c43d5fc8c3533fe09fcdb7af8d90b237480762c0373b2825057b707075cd4edd1c399ca98e4cb47372f71e998", + "042e211bebe3af53e54241edb29b2d4fecff66ee9735a6e22fef309791cad77c8a6d3221dc57074ece11e456366f386e6dd3ea20bda420fe783242a0a9045242f9507822e5cf0f11f9337b763fdb10ce22171c44c206d52feeaaaafe31e1a23367449b9a09c044162997294f14e1665cd2a36eb1f84ecf0e2cd04efcca8d8832ea5b5541bf615bf0f6d10fff3fad118856fa83dd8c53422949b2a749de0a06deaeaa8b8dbc2a0e1468e0d8e26925acfa316de4a1ccc33a855390e3f6d75d34ab221124e6038c339ae338ba9a922582d1a9dc905322433dde20db9eeece0f1fe1f97579cbba849dea797e7aed996da1fef5acde26aaf38517637192c07c9e6a7b12e3d6a8f5be9c8c4e1e349450ab3d34e5a19686d6d9c893792e0329289e23e7e5145141cdb3b6cff5a25f6ec4ec5e5c5f67fd7485e41e4899927fb9ba84b082b79769aa1e86ee68f02a4a97a3dfd18256b9484026ab2b941adee301c62b37f90b", + "0831fd6172eab7203cb29a21fd2395aa69a3d65b0eaabb49a9686a5f306fbbee2e6c3e96c38f16ff1bc1e1da280adf1ac03d4f34922333681c323ae70f38fdc12fc6e26218a5d5195a05c683a7d4b9b093ed38735ae59e3c33b6b046cae2a7d91b63c94780483a108cbbdb102e", + "015d26d98bf0b87a51ef82efccd6d87368226677c0493285953891af7e2a7f6d538f57eb89f0c08e197106349f7d5adb346a89d1d70ae17e4b48db710ad2f4be74ab3c8bda61c3c50fb5b52c7d0a8ec789dafc1f1f9b691d893b689702f8842e800f39284cb16f986783e0ec449bcdd352482579797c55065ca474238c292f5f119b5ee409f7df4fca846c34fd40c1c3a61144806d2bdfdedb46bdcec72209313764735f0880f7f91de84656b301b01979646842544b4c0cb842e07d451f261ac38c7e165eacbc049211dd5a70dba7352352752748223ea45bbd44858cd602786af26a27031c07920766b1a420b464d5b45d6746d0f81b4ace4e2971e31a5f8afd373a16829b3c03821d208bcc480ee9fb22c560df3ce745d1746b044aaa307bae6d634dcf17cbb012ff2199371fb6e703451cb0c7c5bb8a34c71c37512e147aa044bf6b756101a5feb0dcfa651a1bc9106060afa9d0b68b0bbb20d516d669799e" + }, + { /* i=3203 cDividendBits=2301 cDivisorBits=831 */ + "09a7b79c1c0f785814fdae26a147573e09efab2a58239fbba9a98da1fbbe4ec32e749af9f557797a62f8dc4e2e61daf1a0a0ebf2a1dca7c062edf68312fd7b2fae5e22ed76484bbabf7a32a2d80fdc7953a177aaf9c6568f535cb466dc805a49913e4a23c5288480d0e9b4a8e4b4612783a68f62697a5162845921e9d337ef9bba850dbc3bb52665ae34949a53b82eb9b3543a8d7d58b30560f2b50baeb5fae3fd9a397b7390e6b359f6e6bb0e864b364b7cc64cd48a0128f834bbd5805d0a4d4617e749946b74d8d2b1cb226c685d35c95cea2bb5cfb082269a5ad32b108e7acaadf94937a7dd30c4cbc3ef7b78b646cbab2d31d5be8f3cebe068683235ebed2a2b233251790d2a55331c5b258a06716fbef63f0dc85f3a50321af019ee0a3c", + "05d6ec7f8ae5293426876615486bbaf8e2b1d5255b14563f2cf7c405ffdf97262d5752cb60cd920a425375caec78f011f2dba580f4e72b18cec2662505b3aeff7ed34443788988266b1fbad0847dbf07076ede791c771f4e65e9825492226fc6db4f2571473f1c56", + "01a745ab2e717bb5aa859bf92c1bb8f054b503d9a8e47c926d5f8077747b7f7cbbf2fd37ff7fca0bc08cb5522aa107f2351b4fe9726be794fc2bab5ee5c32619f70261237a23154dddc8b9fcd39d5fb41331d24c0bb2f8ea1cbc4eb367c852f5dc033cb1b22a13f51dc5e1e0ec1296d44b68f17c40aaec0a18d71f507ea62d2c76d2436dab37cbe3ae5c7f227abe1fc17acaef4a78de4822a1f0f2f16698fd04d611a883263f5e8be9aefe0e5bb0c3666f37735fccdd3991df", + "05b806c13a31c7f454276757e481ff37396466890742e38546847a0a61f59e65dcb533987654217b6d1ae000acb96a4cd94c4bb260f63866579cd8ca02422df7a8c0efddb6e7c19d7a9d4de945dc26b541d5deaa98a80cded6591291a88d3967eae07cdcbdc1a552" + }, + { /* i=3204 cDividendBits=285 cDivisorBits=264 */ + "f6dabe015edfcff107320f12d62aab611f644364d9fbbba3e4dbfd8a8125ef21bf0758", + "b599fceb79874303f02b2fc8c743a9542defd53578511111fb198aec0b5e5d8efa", + "015bfc", + "40993959d6f4b8c71acaa66dce415642f54f7f4369b3b7cd3117cd61d56cd96b40" + }, + { /* i=3205 cDividendBits=2964 cDivisorBits=742 */ + "0bbbcd888e03d5cc7ce6952770c84fbfc5f25b5bf2bd95143ee8f6e262b16df5093a602623626bb068e125baafbe48104c0fe027f8704740fefd6efb88432da53a59e24ddd861a3c488f15b2eb4d4cf43cd6fe87c1a060e4debe440be53bcafebd80121ec48695d96e22634c397f2aef725133b8f761f02b75e9b9ac3eee1ab27dd3ea13cb98144faebd92b36326a86e39da9eb1440f39346c4f4d55485dd88af963642c1f505bd308d5c9c2b4989fd04fd0915ae38d2ece5267677a68e138034a4602cd530a040cd6e094bde744c6831e5efbaeb39ef16a5b3cef07ca85e5d245697265b57740256079eed06242794fa4b2ff1b4c8b568f670d523ea1c9c924b3bcfe90bac83ab523aa58cd8bea7d00ab90813db12634bef78a33d1df52609d10b6bf9f844162606366f82e5912ad55d8e6b328af06d893fb64d4561b8bde6450af8cfd10c5a92b3782ddc92d9a0e556a5962ef42768ef4e683c231181671c372115c2a1eba5ec907b61e2b5fc902ee84ba1f", + "39740d9f2e34af731cf439fda4c8453007107a71d7493f14858b6f6746d0be558e84d97113faa8ae04f2386055ad2f346ab68e1d7a17488d7e76e73e830fd8736b8551a6d40d7b5e083d0c27184d09a0150af4d1bb3a62fbcbdbc93098", + "344850c49ad68dcc530928a9faca3a1cbc09d23c34dc9c40bb17fa8502c573b7ecb6acc6643b9c62e0a90ea192dbe82c0c5ebd4368253a77d3d312b1ebbdcd2499e4ab22c393fb70ff7891c20067f337d91f0bd0c28bb79ca2a92eb2da045bf1da4970164c4ea463fb207366e95bc95af4bea70022d53e22b97b86d71e8fd72a7d1cc919da7ddff2091c5e56a3c6d8cca67aa31ae567d9c136034cbfdea8fc4dbc96451ee2672c26cfa6bb98f1af4fa0c0c2e7c7fa5f254a683f928c49b1cdf09319f42f7f0ac7e82b3ef468bd61df571991d463a7f88e324176c1aaba35c2741fe862db0ad0b2d3f89bacf2320940c5282386b47043d6339486a439c892ccfc0dc273d7e2a94182b094c353b6f6bab140f90f25e492", + "2a6b3b6a83168191012f06eb9c1b843f893f59aec6f48658590720cfb3d750b364214e6c77dc4bd262aab6ea46bf4c93c43277d7e458ce63e86528266d836f3750843c557340ddf32751345b235565ad94b21c56934464cd3b7887a36f" + }, + { /* i=3206 cDividendBits=2358 cDivisorBits=1233 */ + "060a06dee5fbf7b1677aac2cf5b0b240fafbd841255633891a98caf1134bf87de9ed96f7f7dc6e0d95c5ede7a5787f1018af5ce0ba19093b9670202b0fd2b2923de717bb5e0f9496573e70fdda104413b88732aca124813fbcaad581371ae94e7fdd6ca8b1b427ea9ca53c93468b57f56fa19d6767de6d3443139f7ed05e94b184b55d545dd0087f99787fc96870769711d3d5c5f69ab01ba16e2ca2344384d62c808a3f6065ce1def3e9427288ae15979ce9e08031f8cf95bda78fea7b8bb431c2296c3b19e728983dd2ad82a033c222972653a2f09a253aa411ab503b9f1a2b30bdb842e45573a1ffdbc1c2a7faf2260d8b1e2e6213e492e062f4753ac3a01bdf46fe33a30202de087bac90239fa020a956f79b755cb922addc955c42a066f0f3a856602b5d7", + "01e48a5b9c0f4698b9f99f63767cd767c4e88bca9c404574ecce4828efc672dc1abc056d8e865dd17510fa4f3d24b2a413590b3a13524277024bb79232fc37874ee38086b3e6b3b102c311af0e5bf67776ad94391de06ba927ea4ad1d950ab576c7310e3c3c86394f5f3ed926675a8b78715ce38b0cd31338abfe3d5a2f73711d3ffbc58711785c33b79ff8d3c40ac862cfee0ad3cdaa9650462bc", + "0330d2337533a855ba9c92bbd2fe57911c1cdd95db87581bee0ffc0b167b1f0dc80bd4d44fb74cdbe94209c5013fe2a90d254002af644f4c9055283fc2964a2c94f3e91b343e8d254fb57319f7ab629d79218d7c54b70379878c353b957b58142258ec1c5cc4b72b2ac3b0405eac635a637c27be6639ce41be18ff822d5143024bf73a84068b0b70da107079d3", + "015d8e72ce7d3e46e50228b9702ea6e60566eca0d4925c99d0a88a281ed71411d72e9911d4967fe31a051c72a0912ebb2bd510ebf36de6c905b59c1c46e6eea843e1a9028958c06e4df4e1b7f1daae3bb407cb7cd1bb81b1801494f0e2036efbda72246384750ee0f0913140f9dd3a4dc8606211ca36cd189e319441d9c10b4d5b6b9e59a88d4a22fedddc5840b1b404de03055f1e23f91e7a78e3" + }, + { /* i=3207 cDividendBits=2354 cDivisorBits=747 */ + "0159809d70cccd47380f054114719e58018c7d37fe30300c596200c2583fb514ca99ea7ea7cc88d05863375418ff54a17d11ee0e183a0193b76c205fc2c09dc9cb366f0f23a1e8bc54baaf7d2dee11a5d04cc3f15660a1ca9d7c64b5b96530452b7d47a931db148a32680aec53f19538bb09ea49bfffde917a107d9e02769827e52f7156386ead85e3d479485ee719260f6d2e67c035b0ab6368d765833bf72ec337233598b28ff910fe03e9797be86fe694895b1e0284c89a0809c0011e3d8876a53431e705c33738ed2c8d10332568f8968312c3c962b4b44e111924557a539fa52e5067f89c934f1ede14c4cc0729ae0e9b85bc889f40a82c3414eb2c4fb2f254c9763bdfdf579b88453c272d3492e2658d937ddae84d96d183a8d26b0afef075a2702029ca", + "01af3c4ac8da9a7b5f6a96914db66a30c83727cfd6c648eeec985dd2e3dd8a53c138a144b662b7f8c11455a639e901a42ffa68a28abb138e18e3a3cb4299d486dc35ccae7dd3082757b313f21638750000f80fa1d025ec036e86b492b5a1", + "cd1ae98ec3ceaddda239e980945bba8ea495bac5049c30ae87fb70293cd5bf51ad31dc5105abd87ae9de7f51178aa43a89b8fa5147d897b2700e7da2c9b0b98c2e11165c981652d6f95e252f65919295323a6885da0586cbe4f19890ea144a64c7df59fa5137c32519c6f1e3030cc85e67ecbb538d84a9398a8daa2582ee89254554977fe4840d410382c38177407cddc0067fccdd7bf419a27d0ce469ebedb13760c4ce28312c1355edcd3eeaf4957a5c6acd6c9e053cd53fa9b813ca74017f627523b0108f084b56", + "28d11f929974dacebce610c8691f40bd1baebae826abaaef4db2a20d0833e97a9a603780c1a7397e4441a27e36456d046e1cc6ceeaa5f6e91084bc24f99a88ae3d97ac214fe8e928ef939e0641aa197099f56b6f0c71473b602f98fab4" + }, + { /* i=3208 cDividendBits=1037 cDivisorBits=231 */ + "0c0517f3097b0d3e459b2892a305019c54fc25d7109b86f776c1f7472d04f914dad38e0571d5a923fc3262991d1a44d3697e55dea338d751373ba4fc5b368e01201b7263d9fe722f3c784ea527d71cd3cca3a082e521d6156b1239107662f8faa544fa2937d3dad899a704beb6f185dc76abf357398d2c982f5d69d16ca5c6db2212", + "0aaf1a7837d9b367c3e5943310a24840fac590d8c4675edeed28da4951", + "01200273162a707ff86df79184c2771d5baa8259f955746f8a732785b2f91a17d860fb86bd13b3d4fb0db28378fba137f6a4d9410a2babdb4bff8898e7de6b5dddd90fe36c894382f3a0227079c57592cd8ae88f7299a4156cfa798981435da345da9f4208b4", + "089e0471f43c9e7420b74a6549a25558f5fefc554368e4d405330d1e" + }, + { /* i=3209 cDividendBits=1488 cDivisorBits=823 */ + "49bdb1cf9a670d5da64b13b5f199fa7edde0abfc81f88cef70079e96a701ef782eff55a9b8590ce3df3e40a2c9443d08ef689bf7c7991dfe3f529e0e884cfc4227aaeeffed9bbb26818a5ebc7ec2620b68ac01dd601a2fb84656a5b430670b49e708a80259e353c932ebce854506c87d67240fabbeae3ea9055f3bc237a2e04a4b9646db0780b5dcb4db4937b5e567b8789060b55bfc2c81a79c300cf4ff19d8b7b2b84047e702b17081f28e039b3447f6f5eeea501638755528", + "31b0c7e3a7d868ca42f833cf72e241bfd2dee0b58e4ff80cc060ed2d82cce2935d0ee430d6fb4ad1fffcf7776f77fdabbaa0ca923f11151f03fb401521ab9609cf05499de5b2a230699ad9211710a743b4ed491175f3451268cddaf1f60375b59c0e4f9e4f8e4b", + "017be7b63107f384d0eeaeec9c64962ed64e8f6ec4c750f47b69f97a6837da8baccc1bdf4f0f08b6d668dcc0d3f68f31454c44d6a5f5f038615da7ef065ced03b2d9092ee453f42405cf5a452e32090b61b96ac2", + "d475d4f1d165ba3e8edfe1f1a58f55fd766e61f15b97713051e6c3dd1b60b2dc19a3b81dc6aae5aad118d903019c9330c0eb385201a04c761e86bdfebda3c313972dfefaf116e02221268c57676f802426a04e30f8180bfc95245338e20e50233392100d7252" + }, + { /* i=3210 cDividendBits=263 cDivisorBits=74 */ + "2f5e14250b0e1294c880bfa7ac05e8886081d244ee42b5683a2a0041de96ed44a4", + "70f5772b3032240126", + "6b597a60814df4e3338a3a025602f909532cdbb31b5da9d9", + "1845fd8224e4d8356e" + }, + { /* i=3211 cDividendBits=1091 cDivisorBits=5 */ + "254eb2226d706723bad1b5657f1fcf98cf47c614c0fa2d61709bca1d7ae51d0a3e6f5b1d34e7531720d217b30d7bb724870ba6ce655d083bc5ed25babd5446f29c2a552b897b74b27e5cad85f97b0db29822b9dc9135e173720576fa20e03a865bbcdb099a67110ed169ffb4d5a1fec53e7ee990c9cb9d433239ed092266f8d9565650e6e6e6b17d", + "1b", + "0161babee79bdde4e0fe4916b8db4093e1c049b4eab3eeb7c1cce18f50674ced6a9bd3f799a9c0b501373049007fd7602aed77f4ae6bbdef403830ce07031f12778fca43fb9c46b1470ce9fb7b048ebac343a811a69037c1e7c750422724bfcc165c53f6dfcaedab3729da102dd697a87d92ec34c51a811573a354a18603d053e6c0d396c62e7859", + "1a" + }, + { /* i=3212 cDividendBits=1683 cDivisorBits=183 */ + "0352c7a6a0ef0d22653e72bb3ea704d9cb21a23610317553936add42f8a6b25e728913ccfad0fbee8b121f856832ecbe7bfd1fd598a5efb82bfbc2a31be161e68b7bb18fd3ce8ae4c9872f3e4aa3d92e890a5acc656d34085c56d6bd22948c07819fc3ff144bda8bdac0c2ad5208d3d5824c492a49ccba74df176922da8c80df9016cbcb3dbc7ec3c522fe2ddf528c1b487090031aeaa3297dd7da421f43e56589460a25cd98d49efa3014d895b226ebb4ec15d51e3d36c1209700c0fa66b1aa3e28c6bb1c271eb23eeed121b46bf956d9a059", + "77d764c0b0a0b1ea7dab42be5f002230142accb0589df1", + "0719663d4ea69de7773bbc505fae62a8f08a343d75766927f95e36612ac6345195ef824132cd133934b3cd92b90f0915c78690e835b1c8c47c99db93a5be348432a8845649b8964476593effd91f58d09f432e97ef597a5e632c830cae932a33fdcc8d1e2f9459321b0d927c8ffe3bdde73b9dd076e0cb77c3c2a853d5d56e72ac0135711419d749b1c83ab0f01e16faf532d8e098e2b2f3244d6ca61a347cc3500015138801e45a7b2a64413c037bb7cf6ab25d9c74b8e580971028", + "267181df9267ccafdc6cad4360125fe6fa1d2595fae2b1" + }, + { /* i=3213 cDividendBits=3120 cDivisorBits=1542 */ + "efdfd80d3a60936f73b9a1eb920e9da419e4de27fdab114724ce89334be77d0d053b91f57306dfc266d3847304b45e3cee5c0aa8018f7d5b8b4ceecb68fabf320546e54f2d2776ffd6c0af2cb6b43ab611540d52cd3584a4153af928e42f15875d75fc1740523b6b77301a8255bdbbe32ffb7cc471c532e8ae7e43f672dd4b941e95e0967a376d48660b13640cccce7b93803acb28d3bc7c6e61c1bf5a48b94396600175184a7505155a567d52f49698884a436551bbedfbb3e08f5153169f7abd22d43d5db1cd819e85eadf62c91eab895b104f54fab64c3da92fcc002cb8962639d40a816bf66f3958e1cc919e07766d0e35a77f02e83e121666f7ec8f22a7bbd11df9e6130816c2fd28e5f4f4a34ca40db454a0b475bf312fa2b3b538e13ec0035b0a22403efef55b93b93d3a137df8bf778269107efbe083492ef4cf7bc625f98ad8f2fd7334e9e23a07de39c82bb42ccb71d308371db11eb2c88bef2e8531df19f894b2e45f1314d837204cf72ea3b341c4bffff95a5a02ddb4a93780c97eac57ffcd0e", + "330f0ce035bf9ec0fa3e23634a2488c36101101772c882db1dce89ead12a21ae4a51da1734adbb7a9ec99b0665bb415d5807fbe6e19f7a46ef6e03ddf83d9141352eef929aef8016072e6aaad1845c44949847b79d7b130dccb3d905cd4d292ff7fc54dac820395d8c452b921c55720379fdfa6d221c59c7802d90c3564b501aeaceb38df37a6d3e3816cab247310d5b9b790d2a5b75bf3291442381d82d68b0072913b9576211486961789ac0e08cd86eecc95e09f7e7f9829c750891984b1459", + "04b2b060825738081bff6c5e705a25729bd64a870a20f8ac2208e2495a90845a431c9cfc0764fbbd2430b3307af6cc9bd2cb93af109e76025bac501a6a22c96c7a8f021e2c30176401dbed38fc42b46282b32be6deef803e48a91effbc9d3d8b61d2689fd5e9170fe7b23baf844ab3b758044f43fb36f85ebcbcc5a3e2f511817d6133b70b557bff67aa146497861c4467f7d1bb94bd86a78f3c35ecc961ffda571d148dafde81cea7142e1f47d80f4b3638435e2eff0ec0f82bf0fd2632b97fe718e32701db", + "31a0231f632191a2f18ebf0646fef9fb0d62c4d7e468b29f6e9141ef8c75cbf0cae0ffc9c9a2560b9c07d25319e94b17c335f90d77b86f66f50a1b5dc0e6072cce2b056f1df15966c1107f8bc264e6947338021bda1a850491cab8cda2baa546ba5c93ecf70a0fe3ffcf6ba891edee6ad0e63baab8c43d04efe24d98dd48e1a632aaf5ddc8e692e9c23cc453362fbdb50c33159d7856cbad624de404d793646a3af8fe13368ffd1c10514b081ca308919a64c324fce205eb0a5bdc9ab3c0220beb" + }, + { /* i=3214 cDividendBits=3330 cDivisorBits=744 */ + "01f5e338844a60589bc96fbd3539dde92af63d306d93b13d0746615ac7aaf571aafbcce666d3f31b8be56da03068e94f105e77bbdd8748bd8cc506d71f0593393f9ff793520878740ee197ef819760876527cdef2e0d229b9a3756ae0de82ea8eec16a78fbefe44ad7f2f4d9c9012e6b1c4757b5e69bbef55c2d79c30e46199e0b98a620e7601d17aac8f652665193db92ce4e8894285334a38af12eaae1015e3cc20c3892a49d6bbc2f0cbe21a1c44a3b643329ab170cf0843594dbe0655ab91bf1ea1dd7d8bf3f0b95af94b38d9438524555f15c67c2424be1832b9c5e0b79008fe851bb95f3b57fde55abcc54eed4a9ff92408a8e7ff9e06fe4186122a8d9448f3889cc9010dec7060427df8fbc828a0d610261ff9e2f2dfe57fd6b2b32adedd840033acdcbfd9921c79aea1616566c927b024e5c3144d239985b3390bd8997e95a05b0cd339f2c7c9bfd004e70f7d80be9b2c3ce66adce6dcb033d6aac0e8e115fcdda05614ddf1217cbeb3267490081f1324060e641933850cea96ced159cd418535c3e9f6bb5f1f9488893089e44319a811b476d458c5a8fbfd748603bb2", + "3a8730a3ab9799bd68b26349bc064c0f68398f8ad09e385f21a4b6a24dde31a5f1ee1a66d4274d26b371aba9de25e200f34a04494fc73eeb5afd5d6d80ee738448bae23f7bdc7a3bf580d4e798de111888fe1a51b291c8508272c6752b", + "08933d8d19c9b5c94994763f656d6ab89b634f8fed45d6f455a937263c53ed1ed2ca155ddabb6a14b3860d4c6b42516714a9e644a546cb63909f358154c37c594c9d458b9f366e8975f8ddedb110fdd0d0c70b338548fd0ee20c80ced2f32ca2ffca730dc986020a3a131535625a6fee827d35fb96aeb7d0c69bcff69141ddb34180a5e9d61ea07fb2f39177b26c5f19bb5fad2bbe3ab7946f4084b12cfca948996db41a3d6a44d22e76bacb0d2668f22338c1012ca193bf4868aeff65726650f2b4c40ee3f89c5db4527295070d173431e87cc424965d4550e44ef20f40670ba3f9fdaff95063b6d731adfe4e8589044ea8de0e5c07494ce82b583a56f7de85029f6ff7e976a92462629516baa77f051fbaa764322419727138c6ed9db767f77b13d22d1850508de83e2596a9503e5c2dbbe344d4fcbc682e9762b9282b04390520258c", + "1870273ae4d891f53f0f1db7a55d97a69695dbdec93e0e00ebf9853722c106f506e3e1989b6a8d075dc340a915f316c2ac4fb9454347f372cba0730d6185f38b66266d4dd2404204edf9fae9bba591968690b843a80296e23e5888f12e" + }, + { /* i=3215 cDividendBits=2790 cDivisorBits=1611 */ + "337d83d9a214421a066bf0efa5abce9f9dfaf705c00d20587ed87e465119670e3754ae27c93a282aa063acff698b7ac680ef76738b802840a6f80454f28e89a663f62671bdf4edba68b92846f6a58b81396499b32119dfe53ca8b9c4da9a59a9e15e124842d460a1badfadecef3eebe2af625e862a4674b215a20c2c7faf66253e47045146448c5cb43ffaa9d08feb1bb1cc12f70550c026dcc5b0d84c521fdb28dd3e509264ed5b02b00b9d0fcbf5cb2ad80f95cf330212ee49831f43b3509a26419526b215777418f610f8e25c51f29801cfb2999a11abba4a815517979514cae70d0dd57c05e95c8ce76bb67f3f144c2add86107cfcd26d6cad9ec3a0ae2f42d7d849e65b6e40b2f5e8717c917a3e378368f2c53eb4e53207ae71961fa8b99f8a95ce2ae3d034295775d9fbe7b7d51552fd317913c64a58a163d975ef23f5d8f4826f23e3d2630bcc0ce5641a2159b33c825a74c760bf64073eab68", + "0346689ae005d14a532d626e6c968f8dbe11e2c2240682cface5262842d3f1357c2f99bb8c9212fff8c9a3fb77a136f0ed22c3f1d14a7c5d4a71c2235316ca44214c6491b2785695ce848bcd01c839cd91f01f60e2101d53ee35d1e3f37badcd39fe11263fe41671cd3249308d8d288e7d1f8ca3e1cfea9e3b1482b97ee36547d94a22178e813c4f3ae99874ade9fb6a268b61ce80ae814c6e52c16b9db13cd051af38be8c5209dd24d01086a0e89c1533ea525b92e2dc142ac629476745c6d475782a75a83dae5d189a", + "0fb8d946ff853e24456b2cb07d18ad72ca805bea5d63d4da09f12896caf08f5adbd1172f8942540b87308d6373adfc8463e9121c699a33baceb3473e78cde8409f0f87ff1a5e891d04c3f3042112cc5bc0de957aba1538289688b82916cb056fe7fc20d87c5b94f18521fad9ebffeb800a45e3bc3c6f847b73ae09091b763aeadd82f63c18c127c6ae7a859e0f9f525cb01f4a86", + "0154e01a376522eecc3c40a0fa541e53372394ee5ef6cf0809a58b5f60fd4d11bb5f084db0b9ac93a6db39a216cbe71b2e517f0680c9e1be8b06c3917bd07046db7ca2e8b6af2fc8f013085bb63abd50021c37d41ebe718497c27eb6a29723cce60866a66fdd122a23ae3d5c9587395d334d87476e1068fb15e65671d30ea7651f3d91e6e868270574e7eb30d24f02a57ddffb80938fe102ad480ad42a178026bd36f037a4f4c7810d417ef0bcc4bba40861e38d655e849a24fb68df44a47a45f00afad4912bfec146cc" + }, + { /* i=3216 cDividendBits=2267 cDivisorBits=1759 */ + "02e62f8bd12408fd6853e79bb157ef33bd57459eb650e39632247f02d05cd33c2901824ea7ef32c9f5891a44865d96daa9550e404065da1759baf0fa52d06ba826bfa2c5eddbb6526259143891d181f7a27d55b82a4e3bec3beffd27a76a016f6e8512916fa4c790a46ccaf5dcca7e9419c623bde5ba8612ab7704ee1910e212acc342157d01b82329dd4cc4faa1888f2d264551d8d6f26d83aa1a5e529317fbd63802bf5cce0fa8e8af73d7c4a3cf8f7aec0bf9b348e11fb6841dc9f9168c3ebb28ea780575b05fc9fe94d71c8e22fc5156f252d46a575044b892ef46041d887e5ae561aaa1d137ea3671a1aded239c2280cb6afb0bebee55d962e4805f26f67092d16d11a64fbacadb4dd8c79ad164ef401a28d4c9cfd7c1e90962", + "77e713fa49b15442d0b7ae1e8875644bed424c92682b7184b894c4ac6447019700b16d63988852daea5456a67aa857016f22ac39f4712019c84043e7bf045e32378f30fa6487132ad7cf5e30c7c619ce932d2ed55bc8f14cda00c19a04db1ea5db4524b039f84ec61c32ebd301227191d9a74c05cacee1d592f52faf05180b61c371786814e5117f2ddcfb38fbf6b44ef2c1e301110afea195f27c3d38a23de0eb675d7118e5fb240fe000c0a9f7f38b25b951e8128b7193e766e71caa226006ca1a891d87aa05eb90770e93d9c00950ebb64c1f506c679daafa8f08", + "06309d767919e923c560aeb36d300ff5efc2d011fb42fd5a00d2d7549ce5e09069fdcdd0e192350872cfd270407d6dabd778fb053669696c513be99cbb636baa", + "0288abc62a148c75ac83cb2304acea845f301b28cec376310209d2214f233fea19425115ce553ab16e7df322f0fcb022d9c1c149e37d85f2da7da1002593b21abc984bce98198c911e98eab5070bd2f078460f653f9a861606628b3d587ca523f63116f5c729633b1a21169a004015302476493bde5d01fdfdc4b17bd0f54e8864e1509d1649ab652831b2f217ff7ed1e0385562b672a27b880f3e760662caf908e773d92d3eba7cd195aa16845bf13402ff0a961c6550ab63fe34612e568fe86cefe3b0bc02e6139e6a107c46d4c53f35113a1123ea846d55a5b612" + }, + { /* i=3217 cDividendBits=2689 cDivisorBits=1269 */ + "018c5a1428bd21fde77b9973be27d5f161ae92bde08361bb8808e174fa31c45152be1cf10b0013dbbcbb50384534c6a3fc1818577304f8ded70cdbc36712c73a3d605f0c3b7c664f5a84a535cd0bfdda25949309ef500a26cb96c64626148f673da4534ffb55c88d47edcc9721a8a812159a4bd71298129cffdc152aead90d351311914b3f48f8d3fa49d0ef208b6f7fa0fc522bfeecf2dad7eaaf99c8a90c36382203a3e09e7d079ef847d62bac0b4fed0f38303d1414caed6e7c1551bb6945d96f6c964b1a327ef140bb147e784a29bb82b4704e0c54731f578f20918898c13c1823d54c349f90c8f1cf7f5cd637e2b47c410b65c16b757ee5c70e2d283f7b27ea87c55df01a39d893275337fb1278ed87667f0d8468448ac6dfdf68801135584db644a7be7e472788dd5eaf21178c0ed68d4944185284d94b525049bf47990e277a287d447e0be8979f0dae5138fb9d", + "1148c47930635fb24a44e6631ab28cc99a2fe990b5066f0eb319d04c3cdd4d47d8332adb93adb594c6a4fcc529a913c80b7b2794da7afff916f40485ca921d3480255a01c716459f85b0fa8c7a24dfddc1e4ba91be302a856599623e18c9710dd5ca7c0030fdec394d6697493e27cdac484018aa089f2a887623ac4bbded04b3dc2d989b4f613dce0308efec03bf074910c7f0a0fa52d06e49df978aeae74f", + "16ee6fb9a4f3cda537e217d8fd6ebfc3b3f144f0866961d05c376d3d00f49020090e95ea5a1f78fba5b7b896264083a462c0355a18535d2553ce8a238eeb978c03a4813ad56d3f48b33fec7aa8e6347d49732e3a8cd08774e756a6ef61a9612ec3384a5ec6f02ca17ba6d208df5041dc0cc5af708968d640b518eb1419985fd26e1f80eb153021ef9434919f6e988483aa6aa6b7b173a070d9526873536b154bece29321dabe965b1f968a31d261f695593f", + "05f298ebe3aa5b1a0fc4981ddac1c7e8ac51b72b41b06b32a16d365e3fcb41c4e44ea2ea747d94e1daa8f97e0efa33eaf3c4f2cc2f423fd9879bdaa022929c01851643c006eeeadee9293f1b4fc2d04e6fb663bbf595754678f80d8e01b7f856d7cf5ab6911fd095766774c26be6106fef00b6a95cdd7fa42647d8ed7ce9d777f35442d5505ee341eb369380946dd007d670a1e7c6ad19d1245029ec04982c" + }, + { /* i=3218 cDividendBits=3638 cDivisorBits=1581 */ + "342de24614bf6229b55697224cefa462588adaba92a4227918249bcc6ff95675ef566a0c1ec71b5574efd9b4fc9a26781c87af3e40beaedeb342df01e5177d605eb2f51705ff50d244181bb326da3ae83974cba640b37d704ced42675bd08ad84f8f05927d4952f451659f8be18bf8b9e70a9052e4f93d32a13d35e75e8bbf729ca1e0763aa2bc59141bd2c5b515c122de5a6f1549ad9da3f09bf50f0a3256188abe98648be8f256f9b597846af3a446296d4f26350a384ae03c63edc8325e9141f323cfe971b39d0a623e48b0a2bef771940f8cac32a3569f8d42abb6404f08fe2b899788444f035c7b0963678952efcb830c7adda9ed40bcd906d2ffa990445a3f19441d7cf98dd6a3f0309889506cc63f09ad3d04642bc3331b24b3d0b86722dc84a1a15e3f22d24f8fb7ecfdce32e0b5e188cec436f904e9130ad2723f84f76e089525d663a89ed08c3b0670dd20e18ab7a3e0d51621961a4da5610d5a247ec2445b60d9aa5286c17eb1aab6749e752b8e31cb1c66a274a79cc2a77e787661b82e6778836c1365a1e39332e889071904e7c152dbc9887e8367a5bc765721767a9bb28ce8d428c9644276036e3807bfb1eda2428125305537c710e8bc046b9c4c7288411b39", + "0ef14966ffa35420e34113267498a9399899c88a4a6077a516026e5b64ebffee8ae1eaa16a312bbbb6e2dafb4049ac82ba0e3dec4106497165d073513f59b95f05a49e8b0a215bf9bca7e679ee12bc9c5eac4b84d3145fef641d0c93a8134ca78a8f9619f6c73eaf7c8d6ea92d8b5818f0bcbb9239d03ec78346cfa34da8e95b68a664099a7d9cd3f2a3e6aedbdf3da4291adbca64d1e15b6deeda66a061b4a8267e77fde0edec76ec74c9a8b97de8cdadbd4a23493fc1a213fb22e0b845c26fe697f2264da0", + "037df36a14bc6de0e77c611099252d06dc095b44c42b66d77dfd744223b0a1e7a03b99bcc863478678a5dba94ab64ce3cb94aa7e6712f72afa63a3ab103a21245d873d0578843c4b5b65ea8ede2b5fb71f2deecd7da25003ddafd0b156add14d3f13a8c160dd324cc13908817b3fab03d3f8c4bf5e2ad0a7ad388f73a39ff3c2e5241f2e41b40fd5f2378c6daa62ce24cb2507edda703798ffa94c4f4ee6cf9cc20685383f26464921fad5e422b0b89062c9623a32b08f61b1349fc57f3dd69bd119433950f40d01a77fe6ae4b302ff54354c93288181c0121c26fdd2290adb08293fd8977b0a61d3da156e1f36dff368c54cb2034a3ebf8572c7ece99b3992dccda", + "08505dc482e43f20bdedbd89906a82d70045d7a2791236f5448d172df5d96b9b34d6661ceb545e718da86080d212e5335de929b4cbd941896c1601b413aca0c7aae7b54c4077249a94e1ab90151d47a3f83aa3a13a33d735f3e4fbb1a96c9470e046d19bb008156ceee4796411886b83dea0454e13d4926585b9ddeed23c50d6947de838cb3f11b83d219944a5b9dbf513b10e2ef3ebb2eb47e41cb34fd3609b06b58e1598dee0f7f3c44cfa99a1147290ae8c33ec395f11a05252c2b2b0e8357e1788a780f9" + }, + { /* i=3219 cDividendBits=2759 cDivisorBits=2334 */ + "7b26335d75ef05fba9058fe315cd99588eb3413fb8f1a36dee2f281588110dfcedc9437a6c44dab48c1385ace3e18777b2e9a74e43ad2a302056fb5467015b8dc214d1186e202319fc0139eea45cb1d933f0984b7558cc652ad7d572de8df3eedb96f7572082b1fb1b106b5f9f166f4b4dc66c043aabad07487c01ef15aa5389d115cbc0ce0d0a2535ae62a5c90326a992b6d766320277c7c85fa7d47010a5bfa6206de0351ce9924a0cde21ec301217f3d6eb8c7393bdbb77ad78f604e3b3dfc7847650f25d7669add38fb1cfb68ed0140556a4cb698045dc41b4b2f631c69ec1d4a4844a755f44455f699de343063658a92f5bf9bf173441634239a1ddd1e140e85f8f09336b1044d60a45dede148ee5f20348d73e3f73f74b86bdee56c1475eda56828e8401b2776c6c7ffeabf80d906335bc08be87801a796ec266743ccbab34d680467b198b3be94a16004c1d70ba0042bc8d43c750", + "2af99419236ec24ff60bcb11464e2c4fb3ea646b8587918e304bd57d174566c98b46bd1f0b3936aa5495ce8b8875df1468857d83a1df85859a3efd9969b8501734f1741cf7a8a4998850c616b6763cce0945fd0963a979a51f029cfcd151c6bf699e6e3d7987eae28e48aa41701cda9a7bf3279e2ae761730ee86ba66a28737162aa05ca9518af074ad6c6a32cf5eaef6a2476c93c429e9acb5868d5efba1b8c2fc3083897be18add933a326d6fd286be3f58b483082ea90eb9c8688447bff90c213b1d0eff920e9354a5fbfc6ab7176c95d2c9bc63001b7b856bf80e445dbc67c90cce02d531cab779a662f46527871ea40bc83921118e4f3ec947164c4a8c561887fa656d4117719e5d2045b5da134e62b27af88667f892c27e08aabe1b6651b9476b1", + "02dd986c01899b7faff081d5f22b6efcdf3bf0646deb5df6e6d67019972a76c11070f873c14dd5f6275e042aed012bdd36de83b7c6", + "115318df7fbe6e94f16093396b778789762ae8af6610f637861fb993ca67e772df9ada51f8550591a671bcd49ce4ac4924e7191bb0c668d9b80ddf862b3da812af1a130ef6b6a794dd1baba0992d796ca00a5f2a3042935c05b7a9dad63f01e74c934ab55c8d297346a61c43ab360106a0e29fb0444dac958ac1aa993364964a71f035b657e6d72dd9280177b5c922450e46e6d3d75b0b84fa8cf74eba09c07033ac18d4a3e18ad361c2b203dbb7d3f6f6063d751d9dae9580875523cd8cfc70815fa261ba2550b0c9f9809b02143be2c2aea27174b6bfce03f8d1c982691cca631678df1456cec9c4f58cbb79b4b3076666cfc46221eee86a5c29326421157ba2cd11466fcbdff4f1ba212634f2305ea8dd9df2433b070c4f15bc3ecfe03795dd04736a" + }, + { /* i=3220 cDividendBits=1159 cDivisorBits=770 */ + "1dd0eae81fed758df650b2a780d1e69a6f4193bd894f6be7c75685fc005810c149d2f5f77a8127638f4974e5975371bf15b21fb495e9c1bd9d0ff5d8d34777c9573393d016bedee431f245f5a2cb8b39a6d70ce2709e9901ef8a55fb9869d7e340a33e5266917a777da5b033afd6a9093c65db05608adb3bff4736109ebfe156e3c2489d86844e6a10e6a96feb2155f5d8", + "02e5703fdf867786901f5627754d123e747d2cf32d829129cd8f44fa16aa86e53bac93139899ad5eb11e8a66a1d8d10221169a2b07370f37ff929a77c4bd0913f36a9b868203a1b4df127adf5b662742e762f99c7cef20ac438c26950c07d598d4", + "0a4b7431a810feafbb0890fd92782b22fd7e6ac9872e952bb4baa671aab4aa1f54f133e61be0032a96cda490bd63c97870", + "0d88c7f778e3f3f1fdb96859a7d432d35029b572691985c0d8de8a64fe272ad569a076c6da1660e25da9103eca5aca8fd9b0d4fb77bc0b2f8dcbc1a032a927d52d865c6193f8e93ff029c7c2d29acb676c8276cefe033a2937f7c1a899cbb918" + }, + { /* i=3221 cDividendBits=3879 cDivisorBits=2873 */ + "3153c6d3ee2c7af353c5ae783d86337308f6410ccaa87cd1dee3a52cdc82466ef873f0e977d50ebeb627d14898d6c8c77d6ca5ab58428ae518b6567189702a9139204f6c9de1a6d144fbfd8f14bf3579970ba75ea45b77670c9330e26b9dfa68c4068862c5a91ae0bd256a7721f74222a1f19439d819214a8a916f8a0a0824dd5ea2a1de35176446bf179dce375ccbfd8e63f9170559dd27cf6b8757ea726f67f1c8204d579e3d987c7e314aeefa088ed87ba4ce19df011c9b50623667bd375b284cb8f36adaaeef980fe58f77c9eeadc5d2ad3f87dc239eba2a7e02c830140e29299fde178397712a992c4420f2ff8e55192f2e47559d62cf51b90bf1ab092fb9ad935a8ffa5d5cc010e31ac683f1448922a94db16a46145c8892bfdcf1978921419f9b64211bcb915f4a449f5da67eb43f7a9df65bb042a12d30753f59402bc2a46900ad680bd3e58d413e9d3d6adff5bd36fee69574060c4dff6b09f4564aeb303914828d3a1bc5832eedce45df6b032934ae63c1564d7bcfc64f5aaa18164d18669405984e68637c0fbcd41c7f8638187d2fed846128ab0031741ef9639ed3128e2ff0433cb3d01f9102f1fe3d9061f631b67349dd9e0fbf3de19e9c67a92574243080c2ec851c8c6ba08f9934a4aa9361dc128fb40424e72f992999b4a81ae7c17b80", + "9eae32145718dae13bfefee27d04afe76ddff0c010a3f8cb5610941aa90f689f3d31cbfeea90426ed2d870d424b9e26e9d5f1387fad84835428f2bf17ca2469902654fd2fefcf01d3270fc7bf76ad5cb5cd3e0a731e4200241c97740f5999ce953ed9343203fb565afe397bbf7243b03b895fd6edbdc5aa32e63ead7361ffbe30ef567142fcbf4dfc8dd1fe46de7035946a43a82fb95e4d2f9bd524fe19a6e1bee609f03e6b33d62b09f363dbca9e56da808bdea80fe596986c8d77f64fd6d842dcbc2491fcb9700c2490e0f68ea95ea5f82308d9322a1c15923ca118a4f9ebab323eaa7c78ab99e557f024a99a2cad663a32a169e7e859b5fb718d58f02ab363744ee4bd0d43a3045da81a8bc6b1627782841feb6d5d60f1d1001620b6ff11b85c135e8bc09b1c794b0ac58ff685c30e3189fe502369f7eac6499111634081e6184939d3cc248e042088db7e29aff745edc386a784204894ce2ec5d5630deed451e45dfac5a35", + "4f94753bd5c44fde5b842e6f7644681ebf7fa82a47be5dbe434630756a3ea4f431605273aecc685cc1213c0c2a1920f98f801404d19ff2bf99ad1b80c4f4e24e982fb96260fce81215b1fd44d8c843333f05cb79902933c500c2884180b2184ebcf7b4ae2dd7571f5e68647558238477805fced6fd836b55b4ea3c541b69", + "61185634616675c1083503cf8500b23227a5d6943429fd478b6c1c6051db7991f1205155c2815de5a830266f37bdd9e570d4b21e182886ef113aa5482036df8382ef5d838dfec34c5a5288fa463f8961e2ae0037e9b6c0e8c325eaa1196211dff7a592a3a6317b911bda8278c34c699bae27aebcec8beb708116afca52cb26b41f1b8a8228d79504a303fb5024c87fbab8a2875717dd841e3557390b731c9f299248ea2338582ae29d924f78fcf3f460f7aac4b1a73fdcf44881a3f06dd9a3952ebe66d0b5a941be34c1d1401d438703d1be4cb5de5a1fbf50dde7ca38026c68b00c7a72e597b774ac87d4266342a4ba075098e312cb75195608af6ec0b1d70043e99fb1c3d969f4efc74c76edaaff871e1471905fd7c7ece21677b6ccefb4a7a1665993b95dd0537a2e0d1264fc430c1128cf009c3111b15ace55c3fef68677925a9b9b8f9c733ecc2c4817bf8b46bcf58ba72605c03f4314e946aa1e57bcf13f5cb6f728e4c3" + }, + { /* i=3222 cDividendBits=3645 cDivisorBits=810 */ + "05faf2c46b80bbf9ab990aa3c651c47944947a9f898bab9e31fda07328867a4308f3ad3545f2e62ba32d0eb871dcc04b52037176bdfb7f12b34d45c74f715da5480e4ea35048c7e76e7681d4c6ea2b84013efb83c505250f5fafbaa96576640f4d8a8c8d93bf1530363f39dfa6b24dd11eaa20c5e92301473094c97f78238ba41b8972d4f8ac33d3a1e8fb6aad347d98e2ace7d1a0d5c9ee881f7facaa44f0426f6b0cf3919ad2265a53565b9257cfa1cb2c7bee933800b328da2c9d28a4afed800cf9ee1fc8a27d74e1a6c28e6ad62ed87699253f200da6eb9e483da8843347a0859979b7526c3edc9941709913672350b325edb027eee47614a7b646b32c78c924532ff0015c4d423a9923338ad09b1ab041bc3aef172fe38bc65335d6ef796ddd8cce220f0507cd83ef3d963196f4983fdef50a0a6b538cc2d88a3b543ce0d27874e0536cdd301447d2dcb5a09482f243c8d0b0db20cb2e1af1ee3e7cea467c04fcfeda220a639c871ead05858ce7172d5db2c484c7dcc04cb54df2d8ee7952de2ea549607c2694b8f05d30ca1debe207606ebe30a387fe83cb1981d6d3d8503c5dc018f0b05edd4f88e00c485508b453cc97b2a6ce6b55ae657be362ba4ea4bbf06e28acebdf", + "0396372ade6f17dc286cf9f8baaf8ac4ee10129240f6eb8d0fd50919691c2dbcca2b4f35d29d4b0f883b2beee730796e3981fa95ee2cad1b290a6c1def9244dbb238ecc7f049954e1ba3249376a71cde30cc70cb0908b20ab3ef09922155f77aff0f4ec5901e", + "01aad4b7489b27893b60d5bd04c7b0d7d7f2ec3835f11dc571adbe30de6d15e313f16262d4f2fadfb3ac9a6a7ce021d2febd3975d9fc5481f21ca243339ae0e55a6288637e075374f884cd5356a32559f3ffb018aa107bbe0265024953c29a36c09b223545b7ca3fec57d0cff204709652d2beb18a676129724b69b0539b5e03c24242ee69a327f59570bc1f463446150ec7c4cb4c556564bb27de8228680341163a3b08ecc2b61d1b61e083ccba2b7ecf163658b197451b9a8d7f6a6749f83fe3d7e1eabc1324f3c62145dfcee0792d6c505d6b4b63a7cfa0cdab51f2e804b158c394fe5ee603fb2f9841155f23b4e5c3ee0748d3ae7b2a21c44323b098f1a4ea0ccaa64560ccc8ef1d4dc447c318f393eabfb7ee041a671e2bc48449c042af05ea4d0cccfb478f05302c41823426c632461b08e69198899e1caa7a7f0e6c854ff330d7274cad62aa92e216f09ba548b585f211bba365d20f92b57633d92974101b77", + "033887ecf8a280f5fccc1e1876be9f57d8785377f6348582405fbd69fd29986b1dfd497dd25dd2e101f7e027b6b8d05cc0c2a20afcac58e4f12813ecfe51be9663789b43af4de84e06485588e2e3216818e76f4528ba7507d21fce8960c3223ace8d1ac3c3ed" + }, + { /* i=3223 cDividendBits=3311 cDivisorBits=3231 */ + "6cff4f64d4f34a06b2c406c17da92b0bd8a4b04ca3edd09194e8fd8d20022b3ddff0d7403f92f13cc5b3b7614a44437b5ad577470260be162223b0d87634b1b1a69d51a1c89d5fa7ca846cf68dfccbe79581637256cf449ccce96600b8e10d46b64c0694cb322d7b8b0bac6c8b3d8f6a8488a34df9826ee09e4f46e427122c24326ac737ba3810293c0d557aab3b2a3b8dda634cf335802f93c88f5113498b6f9c7e06c4307fbde31dff8a642a285697e354e7ecc50dbc8dd6ec2e8245d673e952d7f0bb065e6806c0b9fce6bd57c54a3c40271ca3130a2a8b67a9859b73043636492d626db35c7e9ec34e701aa3e3a2e49615495ed75d4c8639b051653c8c0c116dbe964a85498e9c6d19b5d30dc3fad8758cee8a68cb00a24cfed626455cad61fbea0467132e6a49917395e51af9604b874529d95d08713a9a3abcf9a736bd2b007556336eba8011e3128f85106137092207da1892c02daaf932668b904677791659f60adff4bbb0f14e80353657394a7570e2b94aad53fee696775727124cc73d2f73ab79024f9e484deed26d96fa481e11fa6fa0f665aaea05d9cfd8", + "16c2e785632c321a67d9b9bb6bbb6d08d85a430a1e29e1a95370953bec9db709902fec1e375beae775c9f8954565f19f9672900824723f9b54a2cafd0a31387b907785890b2026a3f679bd7d8ee444be850f3d8645e05c1417434738403e7d387656a60b77689169bf8fdc694eddbe03e8455c32e5fd9b2ccf43726e8027cb49e4da1783f9db7eb3cd7c5da3d703ae27ccc5b4f6011298dbca9c5aba8c3819b7e271282644ac218fccd4c406808a33525b70f4e5aa444e34a1715a58cd4c7fcf145dcf730391b21b0a383a1e79558ee7287676ab81c7fda8b02282eee011f06d605857043462d25e55d21298d1beaa964e6f19e1f53238ea5718154909eaac47e05138e22d88a563b609015e0977c7ffe48d8a71cc307820727adf2abed8daeccc74fd62f0ed72e10ec6ee168d200dd66a4c9b25fecf38259e122ffbc6eff055992d1897c692da06ee279af7e036c3f1d08414e3b4b9dae20eb2f2d9a5fc826ff90939cb7ddecd960b386e0c79b0fd194318f6c2584a8ab7ba0420da5d0526c7e1bc3ddd0ff92e25a8c5c1cbca8ee6ca7421f152", + "04c9e86412042762e9309e", + "0cacda76f9a6f44e8749acf5c6808d3d0af981bdff1c41275d7db602f395bcab42552de3dc19ecfd784149320b9a1c92f886ae331ad9a27e8715c4076a9b16d7f9ca224f59420c1ece5d602f918b1a2387371e158b1adeb8342a6c7019e94653841f11cbd1413bf3c059fb61ef2087bb868e916ae2ac059a74804362f6f0f8df4d94f95e5a1459c50f6362d44bad8d6260623db30ca810011bc9b2afef6b0c1af2342d886eccbe85c920170a77d9fc29f838c564b65aa72c1e8e54b543433b80c41f62bf00167fbd09ca21f499fdbee46c78ab6c2de4cb654e156d08d6218dbd4cda5dd8a3708ed1f14e663c0ff2df938aa80197aeadb1c9d388e1cbeaecc07e5b674382e2e9137b8382c3384df0b99f224753221b019d0347e2bab6d0fb02871f745585dac9f961e2a9af759b746e76865036fd122744766f179163b9eed145aa39d467517feb3f6f6583fcd0d9eb22cee9f1904725645d65c4c2c4bab8d60274bf9aecec108d2ec42cef24c4ce98830a0e56ad0dc84014b7257f92f17453603a04ba992f2aba745c12b9d65f7f876bf4057f3c" + }, + { /* i=3224 cDividendBits=4036 cDivisorBits=3728 */ + "06ef23472b841e49001ea2e51b2a5e0e2ec5d29b45ea5a46c0cd5fc16b82eb69e426d78d7990380b4ce7d16a702517455c769bc6adb58d1e5c71fe37d6d6b1ae3a71c7cee31d4844f0da97ac4e524f4fb5deaefac6169b0af73d6a50b249efb7d436899b9469020f160a48279b3e9558ddfb3f266cb9336fa54ac76a4d6f96d8f3ee6abcfd7d832d844be58ca76699df9d6201c4e2f787cd911ac31b112152a21445fe38b695f243bceeb248e49309d37b514717acfc1a3cf5c02f356d3d713b0748fd34c808ba203b7af3512b082ea9894830f9e8154d2e080ce9c24b2c54bd2e68f570e29fbdf37612fb4f67cbe10d483443c345dfdbd5edc2f4e90e6cdb796e8384cc0a06a1d847d737ac0d339b41b961f9514590f89510ada8bfeb3943accba5699554581b1a05936e86405aa35bb6d4fd1f309fad2572c4c72bcb7de9e936f9f0f39f64526ef295cbb186831ee414023eec7cd6828e7206b54b61e4176577c82ca2f890e6d2223fd8ecc2aac762e57d4b795510a0053348b7bdc2adccc7766ce90e51f5dd23d448a57fd812b704cf436decc9971870b4d255bbaea57a6a416c638c8b330762d91fee1233c7830d2078ab9dcd5878b487fa02eb20e6877dd724ff3af1c0d34cd3038fd724b99ea27418295cb0e768a2284743039579779abac10ed727772939dc4ee324c0af3e4677dd6b335a0b276dde", + "8467fe749b913ee67b0866f318b3d613ccbf7a04eea992f77ca59d8333964515363a323b3cc61d8ea9dce5cc29ffe2643d8c744df2d360e498d50531b8b05345de438e749d5eb4257b04e6ef512b61c266d5498ec133d003055cde4fd2698238dbd8801998b59388a0d21992aea043a296751bb7b751df379119eb67297725afc1324993b92407fa3fe2a1b68381c1371433e7a8a1a3c8b5f0ce41cd43ad878ac4f51a36a95c6eca113e6d4104fbfcd83d7a9987b2bd45adc3858096a53d5d7589acf054f2e7b832714b0b1f7d2d8c9cae2421e5fd962ce8870ac0c2c3dce1bc527d98ff9c87ada8872d0579d9a47f405e1f78c462a8c22947942e55d0a617b5d62c8cec54ac6a84cab51b087b38e5be5b05cc4103b20e6c288798b8658ad6ff29dbba4599db2c91e34e777386a22ce82cfba712724703d4e7ff942fca8a5bd7e885933c2142e5f8fd33da4eb301c9a435a1fb7087b8101fe2d39248ba6c80599de9b6b3bf28c8c2c20219fffca9e352518a2da0f52383c7e0bc2277b121d84f2fce53c96f7d7c74b333003a8828cf67caf6d6903229edbdef43353dbd43a01b5498a0a34e5898d28f9b618c4af0499a6094216fd916d562cedba3cf2bd45ee07d8c082290f4e8d83e744eb2d407ac71167f", + "0d6821143e7c9a86fb946f507a1a5cac6bddbe241e245da62015ae4218ab4d2063d5eb5b833ca7", + "0cbf8adda697f5498c8f7985fac751a9d1a33d5d2705c499edb338d10781c922b2c26ab3a04ea3d47e24eb3ff4b3aed53189599e911136c8efa48bfbc046e0ee7fd20de883376815960ae907175ed287dd582c56c81584cefc6b284e4fe078cbe6334b827b0f7a4bf77a0c9c3972ec25a0e2cb972208eae7f04bc632dfca5d0e44a99db8daac934d4fb610cfe9af25e91e04f81da477a9fc21cee9301239e2a5d5319f6d7ee3dc63012e11ed982671a62b93b4bfee908a1779fa70746ec0c5ccc606e439a82b392111bcdebaf6a3e663dba158d11603472a545a98fb49183052c209d8f6dc9e4add3a22b6c97427fe17c95a887fb13b7d67e51e1104dacae00cce629787d739ea39cafd38653b7184f4ffc1897147beb22f50008df5c1c5f156407e2b70afbf461605da6300eafa7b4c5f77886138e9156ef14a0c6d30c7f0fcd09eda70c880acf49164c14e4b528c3e8348c0c3892ea09595db42c397a09751e7c8beea70df56c3e4c23d9c201ec0731385c3b289dc86d4a7e88e7bfa2fd7182955aea5bd6686201b75209e691d0a053f2984373b6d16385c48481a51f6fe96065276a0f71f730e5432baac39bed85b7bfd08d783ae305cac21fd48ca7108c98633aece576f8f00fe016c33537b641efd05" + }, + { /* i=3225 cDividendBits=1358 cDivisorBits=390 */ + "38531b6881acf616b6ea481ce8c3519e8257fbd6db28337746f935b749e8a0675eefe1db9a03a261d2e80fafb37e913abd15301f915accace6465cfc3cb698222f478e066be6ea60d87f9d02f709d64b631926b94809a7a2870eb26cd849462dca9273072b347d314d4705aefb2020e9f23ec7b5c6f89150797bf5e304743ca70e5e0730f969213f07a42c2299ca562dcf3c9f226dab18ef90fbee0e916022adb40cf8c84b97408b4c18", + "0d8d75f544950685a1d4f29ba4c9da297b1c7894fdce0940fe0ef31e2646a6b0c51b5e9957a5f7e9d08eb747006c3abd06", + "0427f02584f503e9a90b9807a3149fe96a0dd728f6686850633257f8e7e6b8428165560e5982b03e9ca100a0d5ab7d36b903aca313b1d15efc366be74535043e4ff25c0a45317f6a786ddaa7435bcd3f50663c2f7b3159b9adeab8695db58559aeb30ab4b64db1556a0881b2b5023f062e09fbae8706f1e37ee9", + "02dde2f25cfec3d248570e1f546ef09d99ae12f9f7a393066195502a4fadfe67ff659add3b755c6514a4a09ac393ba4da2" + }, + { /* i=3226 cDividendBits=3513 cDivisorBits=556 */ + "9e0b733fa69f5e146c92eab448d6e9c2d353752a3ff777409ac1af4115136847462896af0896bd27d7dc2981a22b2820e399d877f935f4f2640530dd4acf4b80c317d1c59f11c2f190eb809a9565e2612dca3f969a2c6f6aedaf25a12da19db92512ad5a5637f0a42c4e2bb7ed3104d020756339c3f6990ab7763c73f5064e128cf5afe5c7e66c15ffecfadc1237434aa1094d89f882116b7b0ce2acf092c99d33d6dcc4d72dcbd2fadbd989a7139866eacb624ed32e554c619b7b2d8f6919d14b8b12ce5f4c11e29767673d1f862a6f1a9eb8da85051901bbe5c64a62f3cc128df70cba2fcf456a44360f4cd1c23351baec90d7862e9c3968e7171fd68e2c2cf78f32ae61d18cfb4060c168017012f566567dd98b01e875b8c0b3b0a6e4b80ed9254ff01455c8e1a3ccd69360d5b45e61465fbbe9b5343e4fb282c8e5d16ac72f2bb8c327f28c95f866e55d6b4f40a5f97c1a87818fd319d23adc44e4e7a48468a450c7e7710cded630a8ad8b3ff4ada5bafcaa2ebf56d757ce7800eb116f6fbb89db6ce42283fa72b191fed0f738028f89af81518428b58da167c2602b5c770fa80ade153cb87c0afaa20dbfda29e5490027f2cfe485", + "0a974b2f9f79f386d8f62932d3a32fb899fe83193c2b8bc6df57c37ebdf758954a3244f79396d2ac25ba9cf212ac69ad558605f508c863ea8e67552f3a83646292e4046ad53d", + "0eec2d11d3d67894ca7e5e49c23e9014de2d8ed41d6b44c9f50613251f473554df497beb73816790f13fe14abf2cf7540e3aab612bd3d8f5fd736a51ec267bbf19bfa9d63e7dba1122e22af8e43e6bb9afe5f09a93bf3dc247a9113fa59d0655fb18996d64fe3fe5051ebab9e0204c7d283440c053ca85933900b1184bf8f8c52b2a7a59234c017a652f2001168fa512179c0dd6591d2609cd7b4f570cd9455079154e4c0127b470a2f4ba7c9256f2dd9ce6499a58fdccf456ece239ce4e42d6026c2435179ca31050e1de48e24fdcb6fbcecbee3487a5e7b26aee7dd25bc709ae92b7ae60431e1c1d5c22f0ec0e84d9aaa7969c1b67d09b8f11f93415cfb73f8237e7553dc6b93c3105d391fdf1155c22102e99a613595b0da1db74c61a51ff3f43c74834228e318ea1415ee479084e44da308e696a7099cd23c1af3eaf474274dad9df890978d91d4ed92927f5441ec44c95355ae15b4692358445be708dd0d7f707be8ad5c86ba38bae0954de648995de", + "068b822331c1b5dcf1c59fc235063ec8de960bedf128704d4924baf96d446662b811ea3d5ed8f53ef412657406a8ce1bb9221206b25b04425f824f3bd1aaf2cce07bfe69789f" + }, + { /* i=3227 cDividendBits=455 cDivisorBits=304 */ + "21da5ad4fff4eefa50c70ba19f9124b2b111da3834ddff833b025bbc131147eb27463bbb1f2597bc22d4bf7bb8a71ab6e5f9f014e9543a8fea", + "4bf4b3fd3227d447652f2d92970b6e6aa79234fb1dc5cf36c127a1e76ad62937bfb1edd0c6a2", + "7218e44efcdbfe13c07cef12c9b105ca011878", + "3937e6cccd2c9be6175361c6bd01712104c29f99e9318618e07724935422f0e0fd7fad1c43fa" + }, + { /* i=3228 cDividendBits=3968 cDivisorBits=991 */ + "053d3b41d76d09acd01c8ff49cc74a31eaa1fb16dace655eb9a98d9f6d6056f19c8f8ead37a25ec8ad2a36b9223566637c79da22469a390d2815de57a25b02c857b97c296fb870e260e47d361ed1987b617b9537ec7e1ad7ac008bdeb70fd168ba2ac670b18e38fad9451f83333d26c3ff8204737ea95e8cb9832d337128b4f59df149cb062d0386e97e5281ef9b9f703f45111108cbf8af193093fd8f2717b5208eca381d9e4548795be39bd8fd98f8fc2cafb69576041e15f15e2965eea84b84ff4e61d53c8cebb36b7cb07dee875246445d09215b8447799baa8e04b238d162e3d46c5f0f766d733cf90750328b8c16e0d12a4e4e0b5ffb85d4a293e1afc92328799c263d2bfe1e251fc76d41142a65583a62528544f1944abcdcf63e154f7c4e42f031dfe1682395fe1f8620b2dfc8bbccb3c066583c3f5954664c281f711c0516b19a04eb816aa58595fe0188f11dfa8a23f15ad292f9788e32271ff8425bfef6397299d3a3d1f34b1b48e5c8230e1508300d36965851deb81d4d8305fbcf2ec5014280d7e2ca78170ca5a8281014634122c1f74fcf0fd5482db1034f12863bf66e73c0e1944e78a05f407b83ccc4820c7be1c7de64b9992abbc949033005331be12d7afaee04c6a3f986f81c2c29d727f55cce4f5f71fd4ff4f234caebb6188639784f3a1cab4b5c72d4a68784", + "6727e8d4c09356d574bd9ee586ed5faea062ede4dc828e481685028ce16bf4f747bb7ef32c8d5919520e2f4e4fb9dca858692f479b4518b5a55afd38893f963ea77f622490940d0f3a09e459b09c024ea8c97b98a6cb9c583e5f3a40516d483401a27a82976ff9719df5f78b01b318fe492d738cf7971351ccaddc66", + "0d00821fb1a31e91f2926aa5fbea4838c700c067b03dc8bcad497490819617f1c8bad4e2b595ec12c923cf25f0ca8d9e25c7ec4bd57c1603aa992578a555e11f66e112508f3309a4963ff7d63a5684dcfbbad58e9861989d2bd550fd987f9fae2b4b5d6d0f36af42b97375ec58d257f58c69bbaa2dc516a159369ca41278587a6b35a2099fa4ecd35640e982e4f64b81de3c28c1a9f677a85d52f494129f466cdf65fdb8f5a65a1f219b14c2ab8bf71c911acec93b5119ae9b09b0b6e952cb81c46d072f0e38dbb6961e612637afe5d5f662abde340c9a9f994439ceb4efa7d94bd29f978ce4fd64624eaa3f2cff7459d5c1052572bc226acf797220033e67d04d7eb8e61280b1266e3d496a7d6b331dca5dd7929b94131e54b0f95998b1db1174e00b89fe55fef3ab55dc8cd22fa63577520425731f137e420b45b2221e332ac5995a28fb678848fdd05ea6983518aed13a99bf98308c42d1daba06e6c741dcc3881c549b58c53632ddcf614a1cc989d6dbf034", + "01f9dd2c56cd7c65b1108e32409647bfcaab30802b6a678d9a3f6d860415f51f0d1a612b5c2f7de167260e2a1ae3542584a99602047f7549d5682b74a1f63b58bc8f7de99acca6b4fd8f76460de7213237091a01ed74b9581ea8e9eb7813f633de099912e5ff7c8e2892b6d42abf17661ae94f1e342c4863737422cc" + }, + { /* i=3229 cDividendBits=3132 cDivisorBits=248 */ + "0e2f3bedba1d077e0e6167c47b9cd53079b2c279fc8077454eb4461bdee7cea270da4fb41ca81e494c15015511609c9bb0eb72ec47755f1a01de918c73c8f242f61dc80683549dfd318edf7d209e0a3311b93cf852372465a544a918e728fc9d11548366535417636e9d5e1d827253195b5c9399c7965e9b65be31cf99133d1928bd1b9b1ee8ac3fe0a688de950202b6f41ebc40ae590e6ffe52f9d072d823870ff01f7b7db1d76214f4015b6fed3351a3d59597387640590bde99e41f42d9a97d466005851cd91cfbb9d44f6073a160a5f231ff5267e0a475a8bda94a2860df9ea8476e572837e0a81aadd7812d85993631cd3e883426940f45af8fdebe27fa2e1e765a1589146db8e3ca8d09cdd8d80cc81f2ecf8e3b8e6f1a3f5bfc346b9a4d935246998b97725d03bfab4bceb1a85c798e5e94f76f226998c3c438c5c71c6d2e441269c82cc0039288144c3495f5266ac0346ac82c0b86dec67f6895fc02709203be9306b45b94f7647241da68987aa544bf4387cbb582b3606ffe5a0ca40189fc0c9160b2b9", + "6e1e85df66ec1ab5fcdcd6f7700d942f73aaa694442cb6bffcf2a6c139e6bd", + "20f9b8d5110eefaa7f6d0c8af27ae5508c8b6e61f94b1386479e3513df10963d7cf47842644284cd6b80a8a4c0d8d824cfc791f9caab0cd28198385b6c5e133941d74d5f9c1e53fad1d78c1c7130312d17cff5249f1d4785279a3dacb135a6da8688a9c69c3a00fc5890335e4c913de7db8a4f056c87baf5acb1ce8bf75143d6dd333414a65dc5b31cdca254196d14ceb35671ab2133e776dd200bce597ca34fc5c0c80524e8dbdb51d63882df0fabb0c5ceb652ce0fac842cb0446018a1a183c7468e85267467e097a7eef807cc6a051ea8d07382cf4585d66a0d14d46fc9bc8a1573f39e84e268ee990f1147e95594d2f948b5ac761ec387f3d9d75677dc0a3533f131eb940935e6ed427aba6f3827870182fe5734c0cbde49ce16d696be4ff0cf4cff787a12bff748f36d55d0df490557b3756221ef12893d094a7b1df5e00e448299d11b9a4432db64a9e2768024da6a601baccdb018086e28be651fe67593812911ea1ef740d2", + "375c2042e4d21841556d6063dc4f81acc50488fb84eee9f5539149cfd72baf" + }, + { /* i=3230 cDividendBits=1411 cDivisorBits=1333 */ + "01dbc450ba3f85d84c40978f88c7a96d7ee040781d6fc6a91f68fa0eecfe0439f434689078d9899e76f34027fee41c1a2eca6f4d55bb0d11bd783578e09c7e76999d8a3d0d58698c54f890b5b8f2ec17f582e52616b3e47c11ecdf5f5fce00955c64b28c0a6f5cdfa91ddef8863fd9d28ae1591945910555392fb6c111cabe7c427c7c797eebd7f4cffdd463499ddb3d36bc73bc4892653b2ea8de77e7b33c0df346da9b56bdae82f489441f5a8fe0e613", + "04cf897e4ee6374a65b20f982fe59ae36c6ae80448465b8938a9d3774371cadc0c4cb27d5a35857a2c607caba62859cb4c0f79267d70c9a9024779c42e8f8c4629044aa68ea7786434903637a88bfa1be0bf83bd168d51492afa079cb983ef72a906927874f6c0534f3e8b8c0fc358f2e61b005c59f3ae86b9d7c4f08256759abcb0a720b123b8f40c7cc2fd56341b6af5da84421e71d983bd5c405f98d2e6421fde4a2d68db55", + "62e5d69a0ea8a47d81d5", + "0142e51788915bc39e6d1e672b4106ac1dd7ea6d8dac7d8d33e7460673827d9fba5a207aad770bc1e274495a2f5f1739d53972fa4c68c392b8017ed3e3a786c2ef584690fb8bd080fac1c73096614762292aecaf8a3e28194368e952fa42a3fcd1c599c9944135ae466d6b24c7ae5e0d811fe5ca9c95ad4a1ec993adcac0ed82ddb172b7ab0c9f86ca17e3e4905d89a560e7964689f7092aec2d6d140ca976de7cdc43649b935a" + }, + { /* i=3231 cDividendBits=4092 cDivisorBits=2248 */ + "0285fb7165848b048f927e5c70797fdd8dcf129b32f7565aa445d45ae84f18cf5677cc6b33e18ee4786514abd3af8d34bcb3ffcc39f20a89dfea74e07a743da4a14ba2b7d89e4f65c6b30b863158a1b115b3cf931130dcfc1ec14905c2bcb6033b14189fbe06122602959fd78d9704784cdf16f604ac24f68a7152233ad597eaf7227d8572d31202dd1cac00e7960d078f74badb5165cc4c1d53f4eed6790501916d48c6fdf0b8816b7628e467e2007dcb5f551afb0e79c343bf74d23012aacf9322ef0d20de985c506f4e7d88a7dbf6dcc741db47c66eb5c2221c1b12421c240c570c8494177da0d914031350ed203f7f577b4165fe23f7166385fac92fedddc7b654b789c13e452d08d96853132a7e2f4fe0b3aadc2cba53c5f507b5a9fcf88ce878be14a53b0ec77c5c411f641d5369d2d197a2ca97c3371f0da2975621c1f8b0a365fceaab265f2813ebd4ece9e45d37b7ddbb0f8a8a67cf64748909713b80a9a9e8da04133564a0b994d7a68269c6234fc5f7e4c7670cc4ed97de6407071b1f11ef8af8eaa7671783326ba44fb65dbd115d5e18edff7315063e53678f85a63f8adcdc88b474fe3a4c1bdf1b84ff6614afb95c40e30dee16b879973c9b41927ff93d1e144569394d619b6229824048b0af8a8f5f0aacf0094c3d6ec33994c6c32b123cb8ee00460f2bb0de2d862e516d57dbd2a4876c26ccaed552cf98fd", + "1e6bbd3f1c78522fa86d3e15d649fb4d4a785bc51ec2bbafc5db676dc0b394f6e669d0cc731a97df783448a87cf76ddb16120264f0b11247bbd54d8c37b72389ffad462683501714fd02455e76ee485d33510015529911f3361344153eb3102a108f146f82c884d1ab6a29e2fbd17e6ec1ee5658e8521a7a194d65db602823ddca3c9f606971cc86af29623865c4137801c2c1ae7db64fcd54d838747faf98cd9d7226cd5a3498effe8cfea51e9041f740ab098b7b91b0327bf5098c9400ec8569b709e6ae66288331e9b07a25723609cacecc4547ec4fba22402be3e7a0b959226e70db3c1ff48746fb92fd2abb3d7ff18b72f07770dc13f58d2c203f725dade6e17458f35a477cf3495a176f9d570e6478db516c366376bd", + "153c1edccf39ac6fa5137802963210ef921e1b5034f2a7fab15103ad3b05a17a8e003da39a6fc5cdcb1ceca1e34cad4dfb7b12e5c5b509bc80dc25fd1cb99f8ad4ce1b5127720495756e547e1309e8cd3b45b4775158df9bdb4f02ddd6b3c9b826d6269d08695720a24c830dc02dac95b71601482d10d50cacbb663a59463b479101f6e1b36a922ce1b1f6bdc60fa8366f9c89f51119696bfe4b474fe318bc2c21db8e6583fba94657c0d2e6ae15b97a06d31d81413cd31d904d4e4748b0f4b79b3cc0ffc4af594f355775360b62ef19b12302a775530dec8c26617c33093d6ece31fbec9a37a7", + "11fdec54ae73ba7b0cd00974fbec9271affd647513c9c8f996d8cfe13925dd2fef8328bcca604a3d73bbfb2e1afd39c0469d1512f16f2b8e9f6714e9be2fde7ab569c0e7a00d11a50ac6a8441f55504a2ba362f6cca9d683296f1bd48f62f076cfa62c18d19f8dabf0af9c9000ec5394cd06c4b91a9c8e7343b2157fb258362ab01bc4fe1f229e8e71108765f92c3fc716c6dec000b8c9f49c786252a4b42da2fc6d34ddaae0725b5c18401387ce601cea84cc91548cc08170a5ee6a9ef400df59d1c3558fe8da2f05e783b811d813026dac7af8c22efc94a4189fa4a4b47114e6c5cf812025b5c3d491e2bed1475a21e9410a8180af6ada5e3d9014e6ff6bf3c208c1713ce63f4746bfd812db0c4fae5154aa4ff3cfb888b2" + }, + { /* i=3232 cDividendBits=3036 cDivisorBits=431 */ + "0157f1a2abd06e4477548a1e3377c9b5f15f580bfb2eae5deda9d5a3d57054ddaeb04c61c2ef550cb25ae558aae6185eae4eba1fc16ec706ce0d1d3e31aae159194f2c0119ff40f8ed6c90c96167a4e1a52c07217069889217af54e5afaee600e0cfa5726ce31fe6a4dacad2c4bbc25658242bac27659f90c8a575534e6136bc41031c5ae09eb0a70621c04bf83ea8acc760b9a9d37aa8d5fe59a7c4d2ac4f1b2640bfb991130e1009caf58dcb8c9d60a28ed6aa1932cdbe627c13e6daa5c9fb29e38afddda6e82e6c5a8833d80cf13cc8d8eee38e4c260cfb0200b6e8ad9fcbb8c2b7de815045b40fc655dec1f05d3b2c10bc558af2eb8e426bf418d32c6bae50500591ae6f29cccd87a5c3dfb3db52ad5f263d854174dd55ae750ab0a6838d2a93c68be6431776df7145985838bd55d3934bc7def8134a65ddf7fd89a89ddfe5e8517a627ca7da8470242a65b4ca6925b3bc52b50826c0974b0aa77a91560f5fe61121d2331ce24098706e8aee001bc4229afa0283dee506e464cb", + "182bbc919ad356531fca1109b3655c33f13e5cbc7b728856e028e51745ed8efd1a27583bea5856462067bcb9c73df0f20d96c0c428ee", + "0e3acd9e78580ebfc54889eaeb956f09a450cf7c748f5c1f1a35565015170a8e82c5b1dfe51fa5f14ec1fccc62fd4c26ae8ee4ac55220ea918664f1447ed818c2c23673374a295ccbe711c18cf4ea5fd908e95365794baa4a015f21da4011fb32b078d16f17ca8f1666198d94e1640b6e6a587e7c0ecc2364541cf59451d18e9654eac038199db1e8581f387cc39801769a788a631f6313caf831d18209f67e59e986fe5170bc5ebe9e6036412e89ac6488007e6997398bf40b17893c6fe5be35534e39bc6384dde71fd917c8fe78fafa36ae1f1f15d044ed048bf84b9dbff20594bf09239fcf941d858d58e949a88adc073c2a07bc8ed6dcb94bf41b4420366a392deade1a2cfaad54ae2f469298ce2eeb56f6561268b0e28db8aa4005ddabc6f6a6f7b8d0a78b62b1444a0c7770268a6bd83cebddce234c30aff043ed33530ba35df5e5301", + "0ba4e1f5b14a785ca0d872d5a0454253a7023b6f86272041d5b623d71ad27cb5d317ebf285800297909612b5f236e6eae3da537711dd" + }, + { /* i=3233 cDividendBits=3544 cDivisorBits=2399 */ + "ba31b3ee574c3dc23e2ac3f5599032e8e22157bff460ceb4d81c392dfc2e917115f15ecf540b7e9d57933c0960f54c847dc73214ffccb608cc2b89a3265cf126d7cb038d3f2d3255dda6e11860ec9b45ca289319b0c05e35ae5c1d6931ad8a634c46280de09d6e26d2b4fee0335eb01c25403896f57dda0ee47a54d3392c5f62e28b0b0fb9bf6be29ba1dda9df760588593f57a69643f30a43033b6a09814d55acaded3d8ad8e240839671defda55df2a3f9cdc64e7cebc8e1fe53fe0d3856bca25c1999bf0eecbeec6dfcf8c65f2505d9a684cd95b9e85f2c1b076900e24d6ab0125d4a12096bfafa383904fe26b5f4d7de6897c47bf30bd15f313e619e6fd78ab8249eedca38248d6e782cea2760adb264bfb5db0c93f333bfd5cb92ecb5db82dfca3c63918dcad930d363518a8bf9d448bcb3419fd49b2c696d2b70ec7b86789531a70acbca4fa0c363ea276ca2a6930a3620a6c172cc54e283fad55f14921464d91f37eb6325637385d2d0a6fc4eba8bb3bf5fff3626a782bf28e70ba5a54793e46543d3221dbd8156e361a2976988504452e8d03be85cd29e242ee63b95aa8ed180f4aa88c62230892dcb188163c10bd7de9bc05bb961d145", + "73c770b495c44c32a44c1d30f5d9d75bc677200929028cbf13279c3cee1cfcf54159538772454f067b2f545d178fbbdcf115656221eeb2a46b39c779c5e41fa09fd02e97f7a80ef06353f70b259a49f7e5f426d00bd9202c41e110b5861d53a40013920ffec3456265d3e773f31537700214e25891d57b65c90cf74d0cbb21f783737bd580ce2e2994e0e908b75661b141455fdbcb4291fabe025a1ab08e77d8138f0f27c68ecd71c252e06c885a4247ee65b78dfb31d2f5bd8141c8f1dfa1c581ad90c7a389fab455e72c0baa31f08902900d4239e663d1a5de8b7daf125153318f0a2789a38935f7945ea8a19d4c834a24607e2630a96daf32d703ef3124638c2bcdc15c6dd4b465c4e8f18b93fe4693f1210e4692007d316dad423c0dcbaef21fa8a69aeafc6f914df731", + "019bb202e70c09f22ab9594a9452773552027fbc904f6b7b073f00ef1c8abb6044dd60f324414c4169692088d8e14836df8da02dcda0fe57eb9f505e967663c4df1cdb05f3858184be3d9582e4916dbe4b077a4b5e437f410b539edea7ce0367f45cc6dadfbcb92c4783d7dee09d56e19725f5297f619702b7ee7a9b31df53251240f5c34c0df857e1f13943deebdc5a", + "0ffea3bcfb7bf0140481a5c2de1f4ab07e3a3e3d4236f34e3657fd40f8bd090c6e0e7670a7eefa97d13ac7b621c1835a67b43e85b848662fddb24ed0c4f889ec71b91069eaef505b7f7775b2add7ef86c061ddde0a70125f589475e84490d3223894d8b2722de9caae2e613ae5169b6d0fae49f859d0a9a5d8879852efc62fa977573ee7b1fb2114c37e8a931fb0664435bae2d288bcbf983bfd0011774b378ca36dc10270ebf1ba97eff5c9f9b6d9c64c364f9ec076ace981dd309530cc66a7cec6087423edb10925b6f17a7032526d846a28765a41b44fbee3f7cda7e56580606f808c6031eb9368850e03d33fc0edd1175ff9ed23c8388f58669fcd17954ac16a79d158303a1760858084062fd8f31addd61c12ccf0eb8cf66c0c23163e153082e4a8d31086823b8fce0b" + }, + { /* i=3234 cDividendBits=3971 cDivisorBits=474 */ + "0651085cedc6f7a1cd6ffe6ec25ad2a2342527dd7ef17e0e92ba0ceb3c694ffe323cd69fa0bc65eae1190187bc6e13a8d06f8acebce45c6cb9c68b2ef3c25ea690b8221062199464235a103aa35507e0ca8b95d9766f65919fe0c75eddb5809c09239672b45b606a79004dc9e9e9b8f41cff01a8515d2424f37becf3c82d17496840bc304c078b8465747e0a2746ed9ec129b80b840c525574827e9def19056179edcad0d60e482bcda370a02496d4aee2a9d5e146c52eb9782a985dcf05e3584c729c19bffabcb196ee6871c978ae41340f22cb8b730e1e3c5ead21d099ebaf22034bff9cc88be177375fc166c54643e402fb3b9e9c1c955352e924a42767afe738ca2fde3c9a478815635e88f627b0f074782de84246697c25d3a37754342ddb127113db74ba52000bd32ee38887877d73930491a9cf266d0147616539d2e4e248f6c9a09fd510e31b855bf00d700f931ab7518e97de23a6f1fcf2f108d75bfd2f0c4a225719f8dfbfefd9f67696d5d18697801ba0546eb175f110cce8716dcda6d3e9f271cce25c70f6a1c477cec6cef4800f396fb9c01f47cb08005caf264217d577e10ff6df2fdcb8e8818f1bbb45c9bbdf2957563e54cc7176a78356e467e78f98f75de858805e3d893587098e7ce6fbc35bff58bb66ca359fc704bab720851ac1c0226b916a03b7aa448e577633", + "03250e70f503d3f42ef46eeedd2c1d756501d5ba0c02e58c982291528d5a9ff1aa4cf6e7eeed0795afcdeea12eb398227f41944f033d5507b45b8e8e", + "0202335036f4418d8926cf1a913e525763b3edf5f2ffc35029c55ddab59e9ba8a24aba19028604c986a1bb674a724756a108660ce8836111225af69620e608fa5863d017fe40d5c414e440bd11b87168f5043bf45273c9760d5201bfe169bd7e14e8fefeb909720bc6972b6185125ddebec71aa7dd1b9aaa18700c0aee345d31e41de4c3539b705d881644ae30b8dbf6f3030206f2b4b7d965143820c22465887614f65180ad7e636966a062a2582a15ec1f6b7deecec61833fdd3168328f00b35528f72bad0d1b9be3c6eeac035409cc3b3193e9c61c8cf6984ae0d9dc82461116f91b79a776504519b55ef9c2cdabe7683f5814313b110c1fe158cc8bd2c3b380c74f0f838915fa97e14dde0637cd077f5ea5a766d99c6b9a5e5fb3448a20bb609d326cf292f13e96383cfa8d68ec56c4979bffb81b84bf51911296fd71dc123b80b37e929d808c7be406c8cbfec81622f91c4e98e6d4107184183c815c2fe2f2d222bb529f7fcc93dd7bb4653a2da96c3a321294eef5248e404b350507b015360e189afdc1b8a2a236be5b0f9a58dc4c72b9918ce3ba1f260bae84c91931005b0cd646706c1d3de47a3f8d1eaa701f3773845d937", + "01376fe6bbfc398711826452f47e913efff77ff98c073bca439946de13be340000a375717adaf4a28cd68729e4e883b4bf11efa1ca812bdcb68f77b1" + }, + { /* i=3235 cDividendBits=2077 cDivisorBits=435 */ + "1b0a545d2d9bd5c9a79957d922d2618c919eb9ce99abbc6fcc3e1578565efc1139c6fb9a6b597b974bf574777c1e1d4dc3ad4783ebca588434a22e1a554b9c82ed5c65ea1e07089d50adad7827e754de52d314f1d67173e60ea1b0e7ad623d33b623d80501e66b946457993c65846c9a1a7fe95fdc13dec1194e78b5c3f39cfec00411092938fe80cbbc007c968c859681f5921049791217bd8f933c92a55de61acb773b907076358f20b2bbb30bef56de381823c1cecca71bbd69c456119606ce0825445d55493e73cf21bc6d8cf3a20d25eb552611b4e7034b9d1c61a30a80fe7463f22ef8957d5b578753dcdc76d2b25390ad019aa490817edd86415a8bc8efe95db8", + "01a9a0c9186200751c041f828c234b2b6cae11e1b78c3d150c7311a3810c225c84d891a0cc6058ed1cb52a4e2a078168fa94fb0c9ba9ca", + "1043885c6388fcd176d2fda16bb8bcb33b2d0f078afad5c01761c314a197eef7c491e62cdbfca7c43416b67e647225de858190645776e8df663d1041edb86bed159259545caab9d92e8b30f956703d2c79afe9ba7e7cbc82e50d2bd2e0afffe5f46c08cc3f91796b7daf17abbd36ea9ce9e5c5a420c148b0ff3817cc014d7e5f67567b370cc4d18f7424d30f5c5aac3ffad22dc3d3602d9ddb5ab4c8f7dcb920be16729d6837e63463c9421d744fe51ec9f11c5a31d08c106f15ba06fe4538f7d2df6bce208b9cbb63258d51300b", + "39c857ef8cd6d4ecbf5e6b8d6b9f179f3f09c23e29005752e817535a981f10b4541b709b15cf19be72745e53ebed358fb0ab3a79320a" + }, + { /* i=3236 cDividendBits=523 cDivisorBits=61 */ + "0472875418b5fba5e9e7186750d40d5247f648b3cd7a13560ffdb438fb86d419ff6d90750216fcd1f9d27074437985912a0b382449d4f8f8ed05c312053019c06eaf", + "027502a23ff3baa1", + "01cf5e3e8c57e48698e5da0579f026ffef0bbf5aa770227750627c6e54a9a2ba30378359ad102cad1bbfc5b762b44a85d901c020071c069da0b4cb", + "01476c00a2a23d04" + }, + { /* i=3237 cDividendBits=4000 cDivisorBits=2797 */ + "685227e5fcceb3968077985d6c542c42285c9307da7a3694bdba38904e4b0770b5b6cd7c62257a0e3d231f733252bc0c3b8f443d2e5775269a4d379f912d98fedfb1dfe98a0a3a601cc617d7281c39b056112607eb1e040807cfab8987b29a5e24535ca1e03fad371e4b8caffb99352d4eede354d11a2c4f7b6b8d026bf89d93510a7f6d11cc2703362e885e12fee2f94f4652fcc151d2f8336e1a5edecd3968c4d5c3c570bd1938240c4549f4f96afa91134e9804cbb59e2ce0121b6ecec0bf29c7b51590edbacaa2898cce2bcccd1927bf07e66b3d61a96a256a42056469c52b6a4deee0672befbb4b317f7a3a8819a7aa1219e911a6d24486428339688f749dce7ab9663486313c02666b5a8c8ef44f52d628adab984e6316a3536cc7858f5c011811cebeae9ef7dac8d3bde5f077c2d84ebb2bfc33e131f2443dfa3653a95da69f41913978a2dd73a93006172553f2855980cbc19ae0ebaaebfa256f235fe2114868abb528490d8be20ce41cb168a4fe7c05b0a6027ad70aa36dbb0b5239de7ff1cad9f12767db385362cf80f7e7042241241a8bb20ee11ee3062c460f5f00a818875c09a097bddd04f2be863aa49c6962c20f9c7dd84b6626284a8d8971722cf4178860a1fa9da20852b666b493a461fc8ec14d77431425581b5f7ad73e2761eced3f5c17507e02840ebccd8f3d2f3bf2f5", + "15af3a65e61c6f48afa428a397e62a88b30aa0a8ec6fa44214c89e797ffaa05cb50cce524f548449e5758b34292c1bb899f85bb8b1a1e85e48554cc75bc3b04a2051fab3b1f3bcf47c1892c35c9da0fb08c36648c59c872ee8afc72b1074705c0f194809c9935802868c6652af5ca12dcf1cacf9f20201f30695a71e95f61ca6ec6e1d31d941701b6f15fb80757ad8cd36be0a146fa2ebe9e25c098a93dcf26df34a38c20312964e6ad2c061f4accf91751c2f657352eef83c39668325b4776d99951b6dd2dee96d0ed496444169c7c1cb1bd0d3a983130dfcfc6a357f327412a51cf5e5143d447ee8978ccdb1b79441e1131d74309b14bb48da92988883e94b29d5edb4c98447b47ac0d2ee46713527f3c131968e883c202b9bf2956f46f4f78a99d582ca700ee86a13d3657cfb3ac475a47fdf896ab67e4a5ea88ceffb509770c3876cc6fc8da063fed3381114b575a200632cf2e37a64e981534348b4", + "04cf943874ee9cc22fcace72d674764c6493d37091a1dc05a403dc3ec345a956a8b6a76907aa6210dde1e124dfb388c1c73c44cd68c4e6b43be67237222a100e901f40f1f65b05246bc3bd8688c15b55f2399dd6c56ff004716b26123e6aae0a01272e8f0d211e64ba5feb7fcd87d429c97748409f17d7dd42a9386589db2b623561ff47fd80a2f6b73518371e372af4400bc921e3d7e8", + "065c4f84402b6b53d4975d98002d2583b56a4248f225facd429659415f16baf47b09e6ba5d1fad69cc5252631f417910976b3647588e4ecad3c3df97010d37b4e8e8edc905c0a8b6fa9d2363fba8c6382003764ab43be63850ae4d111bdefd7cedb1c711724994d07847a7fda4c9619ad15730555b97e695d7d40c40df88e0df6be5170c6d2b2c470bdc21444f92abcd511ea6a9e4e62396592755b0a49be49467f939148334be393d29feadf237caeff00917ab050c1f37baf0a456d416e1c81e1b0351465b2e441e0f722aaccd41c5c093b284be34d7a4b42ed3d3a2f783d5f2747cf113dcebaeb89b290468a665a4c8fb0dd8d0c9cb8e3e365f11e5543184e9bf826d854e1c2c93e5d94f350b9004c1de1ea57cd3b0faf847ef5268d85ecfd400d23c2bad65382528cb8d6a0bbff11da9ede834647f0b4465759fb300837602db7e749fa5ad8ba2b181ef8b6d6284915dc9175fc456e202bf8c96e3d5" + }, + { /* i=3238 cDividendBits=1001 cDivisorBits=818 */ + "01b91d2fc00161b840ce9591b5f4beece3a175e0394ffef20b8d31ed45c58e0525130f5bb27c5ed898f7d52f8be3ecc4ab0aff6b37d0e53b2628a8650e2bb436fee869a1712b79562dcc46fea4bef14358aadfd84e621012af11315f9b73feeddf46d49a7d8ed4a09f9afa83ea9da75894dd027e85b5543510edc235164f", + "fba19c63e1271516a9e0493bd825590dcb4b5b0ab27f8b4048ded70aa299d501aee5c15209197e293c94bfb1e082c5bf50614955327a094cce30061f936fe25c5cc1e1b2da7a3ca8db4792c8274fc8a9ae428b0975fb20a4ffdcf22399f048381ee3069bcf09", + "01c0c5bdf1addeaf2d48a7bd69d8f7226075db903f38c9a2", + "aab89bbc7597073c7524e6efd060316d18b1d160fbd837524b61994937fdf42a73bf798d5aeeb3cbfdd2ff94710fbc638c660cf0d19e2f8a3213839aa31929ca3c2429d76b5812dd993a11ae642b7200d20c2a1cabafbc5dea888d7e9facef4952fabd16019d" + }, + { /* i=3239 cDividendBits=648 cDivisorBits=274 */ + "a3d211ee5ab2a777768d430f0dc72e4e34b1370067a0c7ff0ea020dbe43954af34e0b3a567cfcff44d4473d66dc513405dc3a3f3b75e943f27507dfa8dd69a7b0755c0e323416885dfd5577ffdce4f0657", + "011b1055724d6c8bc9408eaa605d8e0c176fbecea3932b51c5f8bc788ec785a0ccaf67", + "94285c3ad52311c41e81378dd31f2e164fb5132c86e8cf26617e64ef8cd70e737b2fe738794b98e2a3e99e40a0d94c", + "3f7b0f02ffe09d312d160930404475b96f2af0f76f70587fb574c18e52ab307ca4c3" + }, + { /* i=3240 cDividendBits=4074 cDivisorBits=694 */ + "e1bcbe49a5bbd27a53ab36c97b11152eeb1c2054acd66fbc6ed336725fc3ff3a26a1bc9afa8a5ded0a0e6f6d50c73c5d2aa0f28f6fe05aec017e3e5b50902b1813048612cf9eb5bb77f4feeeea197549a5ea09c232c84dc47e126218cfa267fe8657cf7998c68fd09f83397176094df8dcc393ca880c29b87d0dac57ca8d03b7e465f9e889d3b011b9f8cac9a10a3573cc0016c1dfebd964d5a610790cc200fdace222e38d61d5bd8893790a8628ddc58f8780ba5f520e7ded2f570f8d401e845db5a5f626d28281375bc44c9c60f14d6d865acd48dc225807457902880f39b4eff20996102fbc536ce0d32e64ce109e4aa34935cb335d6aa8661eecac8961f904253250ccaed228c7888ef7fa6ca9b65166f80b19404aeb45cc5c8e9c127d791f2733051a8aacf3a59da322f43a689b24059a351894d2f10592ff307f26d1729a1d6c8500583b65e5fbc3da469c5afe4e5146d8de4c76aa151f945ba2e45555a8213444766ef2fb7913ca2b2d619de8fb82d9c28cf6f7d59efc38befaf595d2b402830279b03c69e8b6969927ec8e6a8cbb48b8eb7cce8d47b47a3ce674cfc13084c0c81f6967821d3d7164d1d116ea6a96066e0c25e159e387036b07cd91f75d6c296898dc9867244e88c62b1f630b76923b698730db497dfa7442fa6e2f2599a57a0d52b05190a43a5daea5af21b08b3dd1872db3648d3af22b3324", + "2b4be6558f6abc5fddf89811eb41ec9bc4511596d85d2ab3935dd2323555c49827b81a11e4ddf6c45b5ad0fda325c110da094f38d4f9105e37f39034e7e9644af11389ba33bbabaafef964be7ed9b44b218e6ed6840c41", + "0536b8ae4ad74171ae9859ed9d408301021d4ce6d74a4c0e8f89058ffbda833d4fc032ea0ac92b5efc6c683b12d217b2fdb901f8c8b1806ff3cb501793fa3c24e1caf3e8c4fb5f4346bbfd60b4b173ceab77f25372ede375864e8786fb98d2979ad01efdbd5132172b9e69110416e2fd10372346ca1f5d27f08861e843e4da32ce2fa3e64c9b7c174c1e67627f411b9ce11a0ec64719581cb9eb5ac54ec7d4e2d0f016cd277bed94e709e729723b4b94c3f3d06d69724cacbe2bc1522e5604ab1eb7fbffd25af00a1e87d257c8e3afa1fc113fc333d0ad63179809380f865f7cbdecf37e1dd1c968e4133090a06dfe5c4cd23478f439d6e74d50c312be3ed04816d5caa6ca6ba685a758dcdee34509e98664277d204b181eb31407dd7fd8eba483b354d36ad48aafcd19b44c5b0ce2535d2f1eaddac128111883c4157e97dfa908d5578f7efdb892f325dabed45c3dc067442d6cccc8fa505f32b85d8ba43ccf72c4592eede5773ff415b6ee0b9863904a80fd50ce123471aafe565ceedbb3de80cf58ddea30697804063bac9d354e2b3929c14eb51502a78677e2f8b93f6d2cbce28b21318adc", + "230514b4cbd5496ff8cc04f5e572fa55a23d008cd635f177f48ee1b9b8d0dd8bc47d8574c2b4bb0092ef6ab4a0f568289284c871e677f1bfac40a75d99dfd95282df0ecc103bdf27cf08ed84d0e9a446a84831b0a4a148" + }, + { /* i=3241 cDividendBits=327 cDivisorBits=263 */ + "6408ef8c2438e2ba25c68a30d9c5521e3992c24b22c5cc35b8d1d87aeec003ff4a1c1583e9d87eee2d", + "32401359ad4839446ea8fc4b93ce9cc7490455a42c75ef100d6d6481515e34fad2", + "01fda0a840acd21eb2", + "8986d46e6c50b0f9ef2edf99e933bd0c2027ba39a23e0dd2e5e8abd149ffec29" + }, + { /* i=3242 cDividendBits=3762 cDivisorBits=3000 */ + "3180e37db56f5b98163a71f89e689848762247f55d8ecca9557727fc08f551c3fd0960d49a515c55bae689c72f4c2dc4910e4605c740a9c4eeb1b3bfd343ca93f8169ad9d9f412073398898d9680b4e49d6b48c55eea8537e859d25e06a593f2da854f97ae553657d316293af4a84f2274f7ca724127eda8e1b8af836282c7d4eae8a797dd2e908f894e8b2d6ce9cbcd421d8fc5658398f3a148969574ed73d591b57a1cd0bb8188cde8e14ea4788093c05a12729f8f0530888a004429b5f7516fd5a42f93fb4dbb0b6bcde230bb865412116e142f295fdc03900dbc9f50598a97eab00f26b78a19554f8668522c2a433b8f2eb98a85d272c57583b6150756f9126d88defab9ebe8597b5e24547605ef186a974eb0b1d3c56163c75d3db15828bd178b91fd06e571f841ad5b5ba3bec183cc2868a7cc0aeb045355d3593ca5f5284836964b54ee8d8fcb62c3f4ea525f879d7e5753dabb73cedb21d9ab0d0e2baeb1792b4954f3efd229849089b307036b3fce5157b68ee29ed289c900d59e4c3f7e50f2fa973210de12e1b6e16d6665f2867bc10d21678de7690ee97d91ea1c0db1a27e1951ac084ee0d2fa36a010c2fc21c7d267453bf7270665103e1828a5f7d1078e0fc842b42746f60e6c6aa1538787516a3713", + "e8aa590bac62ab87a647fd93e4c0abbc8dc1581de49acd6fcbb5f899963026905818a15098a497d6d9d1e555fed569905edb18c2f8146db6bab71c200b237e35d46131b2e9ac5a78165a4fbf146a34dbdf99ada2057132811449dbfc7717b7bc57864f5b3bca5012d49a87435af3ed7e5a5ed72cbea2c2e7f75b7b7b13da87053316c9d8a842a2bcee52b763608b235aba99607ee7136c6601aadb5373c6cab1e4295c75557beaf17d4f596ee20a9bb9ceff8dab331733478ad36c47297e47372c83dead588440f5778ca064b71e92bada4f3806e4efb5e501327b5daeb794f8b59115e4d534188a158ea520b14ea5c583121bb8de6fa4fa8ef182a232a0ad1092ec38ca10afd126e86011cc8cc713697f4c003307851e7ecfaa753929ceebe6e90e649947f5c0c3b24314f7dd8f53c24f9837cdf1abf9336110c8b4c1ef5f24e91e054c188b66e6396efa29a33d7a8652a0b7a0409547f7443aaad3c753944e1917b2f8f373ad3e0d8af7ed260fa36bbac8a5e3edeb3a", + "3677e2229ffeb1af56cfe3b3d2e02f0c92d2287465db9bd8ac3c2fe7a34f18da26d6a423077b1acb7bed6359d916750861be05d4472f203587936ad4ffa9045563a8486b9435a072462c98f0b34d61cd13b817d3ce106bca215bb556c3b430", + "b76db1ab4135ecb74fc968805b32c5cac0e25b97cd1ea836c3ebc82b16b38d3b92274cd02915d61dc552a3a4d177d68db8ce60e126372195fed8cea74541716b99cd1eea5dd27d21567a3decf509e766ec8cdadd61c08da7ba411d3f72e279450152bdc2a105c3c03d2dccf798cf09a3a47256c3543c85ec7e50ba40e5c3e4db333aaeccd346c7b092ac80622b6102e4aa9876b8e9a0071ab3c2ca724074436ef250d0e79d6ae78c4de842d6e93980679023605a4191a1844f53846c843b7bc90ba3f478f39e42d433f52aacde159ba8041bcd668e2837f23f61c6724a7fcc0607785e430685f68f582b957e3ed6d6d9fc77db9e81d73e1f654e177d35a1dcbac1ad12a2ac5f59e54108a12d1fe28123925c23dbdfb877cc38df691022f6216339f5df38c90a413d47c9c4d59c3cc20c2e0a866fe00762015098853ae69ae59071b51691aa2ee899774a200417ee86c1f2bb260573884998cfba002389510bb20e059e6a3d186284ae5d705ed0e383b7fbcae7a23b5433" + }, + { /* i=3243 cDividendBits=1963 cDivisorBits=1297 */ + "019170d0a8ad996a53c4c3c77b3615a5a3e53875cd71f85a782c5aa9d69b6e63082f5f264d2c8157440bf11d574bc0b3eb2b269bb4aad8e842a24118117b28fa30b70ed5ef0a84728c6fc65dc40d661a9eb774bbdf5309a542db496dd8658baa884664dc2c001a94ded3dd6acc75da0734c4e79b6c9c188e1e75376a80ed479d9da66f5b72d8e44054f687048068cf189186615bf7283b2345198d926927d27b7d45071fcd705616a30abc3d70bd4b5db214271c1496702045970185e7e111cc0a55c51a7f59d73e901b61981a32b6cb4fe917d5789a7a34ec5ffc1e35989c0c9e4c5bdf4ba6b9bd4d9a7d87db69504b7b012ad6ff32", + "0191a1d1c38d6a4cf2c479ab664b197ec010a938ec80819792b910416ee3ad53fa304abfea5482a531c4eb88218983fa7bc5de6b4d95253c569f7829be0bad9237cdc6ca01dee2ee6a6811c9a3a6f69ece5d98deb17dee9613859100f908c9eeecedfb7f7bfb341c4c8b35a4108de3be99e762b9ab439403f55166b0427a3d02f71f819ebeed233a40652a31c016ef2220c36c6a7a896aa06aa25a8ffee45ee8f7140a", + "ffe0c3c2760ed7947ec21fab59bfda4f6fe910b013330dbae5b5b5b2e42258d239224f85d09aabda14467e79fd8ebc967bf2009be7232f10ba4cf9675c3a6c1a509e62ef227efdbdbcbf8d319de466970760f3", + "139c8f0628d935c00add39975f773ae3023e88e5879dd70fd3ee852f6317b39099b8016712830f5749385d9a967e0b1ca38e3d3e6f59c65a8ba00882783bb14ba009b849f84b50030f8cf1da4df20b34df259ef2f04178e7ff4f2dd9f1d2e648b403164668af9193ea6a8e084889de7fefba49dde9f55b7454ba1d3726a2b91c67c91087ccadf911ad7a86c03c437c3fa9aa285455fb02e3519abd461dfdee8539b4" + }, + { /* i=3244 cDividendBits=2901 cDivisorBits=450 */ + "92b8ec3d941f61712fca9a99eb9affb4b0a03e32c2da75092dac6b65dbea35f12586052d67a78f34c2ee6d8056295b362ea2ff8c449d342dbcac2755a95ebfab54db892b72b91c0254ad90612d536733e2947342c112056acaecac3cbb49ac2b2958fd71b93a2278432ecb3af92fcbd62e424f7d2aad900ba40910eae26a4ef929768ea9e789511156ca11a9f82455950bac9a85648ae1429fd5dc1809b7047f055572a45bda5b2223a33cd6f0b1688af478382709dce3782ba8b07b80460bc9232ac214b3dba6e4a699b5e3413bcc6bda321f4b8eecf4217e92589e977543b5ff4c5ee01b4c491ef868e5bcab5457ead3500ef72e709911692216deb0bf4176c3fd9db0110280ea464dbb8decd6d7e52a680082abfd3deed7f75503f37cb69c8cd5d39b9db9d689732d00420c4632beb60a6baa03df53b277068b5ad42870790f90cd57a87d75cac2e3ff8463fb8d5fa88a0694160e3547f008250f1fc74acabcaecb6c9bea94f44e46", + "2e9eac152e592f5c137d7dc26f569d98b2a2675a683f9d66b99c04a2eff67a6e6e0bfa9d4c998fc7274527eec67e207d9296e7f2e0fcc881", + "0325af925c825682c90fd14955eca89dd4a63a2e7bae928b62321d77e1287a915e4d9760f4d7a18571f968e4ef1050e239b4e1012f5d49c5ba30f2a4e680296f4b9ccaab0ecd72ede7895e1503d94798dc13b36b991062c1980dfc419b7b08ed7b15b5842e77e7fa01b03ae328601f6623f28d28f96ce0460f5592d278780aec1986ad439b8856bcae64de6a9e3a7a04edabdeffb4a99e594ca08996e142a25353c5371fa8ed9a9dc3adcc098007e6b546f92fb9ec53cb89fe82666f647eb4e067fcea8a3e1c8ade7b7226b3c914ade6a7a5d96bc9e0eed0e835de84bfd99798bce3f1c3bb55ab38f541d207c719ffd8a556da9505f29027f4cd0133e54d48f4eeaa87938f1e7b136a9ad8d1c3fa5aebddea31269456d6beb19a4687bde5c47ecdddac14765a06284d55799501565372f5a8d9", + "1c4580594a99fb4265df91d09af9fad1b0cc633a3e72d044394eae7164257a99fd1af9f7377591ae3d48d4820680e557a2d7605ba5a4b0ed" + }, + { /* i=3245 cDividendBits=1928 cDivisorBits=1906 */ + "89e3957581f59925326f8263c76139df7345db707efdc2184cc9f1b5a4e1af90d52964228c9db3d87c1fc3a37aa16a3ede292697e694bf800d4ac5431d8c8a8d3dcca609049c8130ca34c09b34dae9ff332a98c97804c4d528d1787e11cc0a076b837b3d7f9a00867f9d75b94ac76fceb8045041dd7223bdf81b0ff48d6a64dfd61af46757218df2ffd5745fde2e90b7aeb9af9063f254258b95791b2ddf2092add1703c85e94d3739204df98846fe15aa39614ff5c320bdfbcf11b599f34ba3c4c2074c9bd2cbc1054f5115e8160ceabf9acb8f3340d7152bc0901077e14552efb94e55206b0e4cae46d0d6d4f04d23ea", + "034a7c9941bfac8bc607c761ec3a890c60200db9b2943d618e7772abb0e8d6dd95a02112dfaf26ef304ed38ed22de2a36347494d38938ce25f3e71a93603f793f40a27b76ac0087a69c292db04c2a6ba52c454d9589733bd53d2b3b3986f128faab53df31feb73bae3deb8b2b58501d61ef667dfc3f14e0e02f47bb360eaf17f03ab093a0f8e8aade22814bb9787b3ea5c1d7ffc5edcedbba6573f7b4dae32186ced0c2fee3527effcc02a20b04eb5a8137ceb32a7039750322d18944aa0564d45007ab1aa89320eaf15d3b8216e69c43cd9cfe4e14545ffbc04c912706e7809b06b95af5fd1cfad19987f320e09f7", + "29e636", + "034200dce34e81c9d0eee91cdb6a072a959b29a3130de31535fdde6ec3eb7758aa9eca9deb9ca3a4df10e0528ec75e156c54ffd4af8bb2f85fdf76b0ee9601b5afd5c142197615341c8bb134534d600f28551c5cf321b8d3b4d5652c1eea16cfb769e2ee31f3aecbb62eb3b25aceff91c41e888e82787156f984c6e0310131a009bcbd13ff704d8c6b3fafbcddea6bce40ef7619c0e72a94d4eb912c36e8b8d6899bbd45e6afb4a5985b0a5ffe5b38415e8a17737031fa97085d3bf1ade817636482cb288b7d3a69ddc67686dc2c62a7f92da27cdf9f881e66737b49149fa7f27611a4bc14bc41580960c82bd41fd0" + }, + { /* i=3246 cDividendBits=3189 cDivisorBits=2421 */ + "08a0686ca0c5fb53c159221c6164941cc991c9b172af80d28915ce3e70fb5e0d6541a1d15c8280767fe066e5722310b8269c8dd79f4cdf2975e7a4c9c6dbbb157895cd63247a509269898a53ece8fcd7acbb3c018dc83b438521434a8acc1b4838006b97ebf136d0fd20ef12944f97d6da5957332224ab600b205fea3bb6805fd971f99c772773cd2511aec8d910743705fb01acfc297454946adb2617b74ee6aaef1b6857de8d173c613181aaa7345e4b4fefffad35eca0e48aeb72756fe1a87da42ea15edaf1f996085aa01b607645ff395650948eafebd6fcde4d85a248ef1a768595136d9fc179f5cb452850bd6cedb8f38c5bcf9454af46a2df498794be3c2175637399a8b97a83f7bfe84d3f053f9b4ace300fc13f9bed5a9c9d22a25b2b7cddbb6ac9a274ffd35a8157214595f09265c482746774f42f1e8ee89f5cb380a5be684e71cbe578e0005a7ab1bfd0f095dc59beddabf816c6b0f1ecc51013f2c22ae8c6b6a2d04772a6be4a91f233097231140e11b6474b21c2347d878423452237ff7b59c929dde8f8e272400c", + "18e892332ffd0d950642a5e3b9c23d4d0f8532f04c60543860040d0ef4f80a4176bbf416460c7046aba6bb1b023fd2eae43c5dbfb4e527ef7460c9573cfbaac7ac3370123e73230bbfc181ca1863e4ebb235e1f6719d6c77d057f8b7b6fe6842318f18508f77e75f0a270a6fe14a5df3dcee3500efe3e97308c26801ba817fe7b32118a5e2d23ff37255b0eb547af7c14b8f7c890293ca4bd02dc339a583c2805dc6c5a0252fbd2864c91766dff8a613d7f26d695f37776a4d97cb83e0568fc7327e45d45fd022131cc1dee9db93954b2b79f67de72c108bb30e6d58e2c7b7e686a71a61e812edec406641d10b55522ddccfed72bf4ec86b4dde2d9a2bcb206d0af32730113dd78a3d49af863da82734e1f8abf3b5c083ad778007334f0009442325198540db48a540550efe4504b9", + "58a92fa294b86e2a6dbc83f3847da3df5edd8feedb4a263747198872cb4ab47ba8d159ad1ade0eb3919328eb9f43ffbc6c3f4b0c16ad4ed391293b47f05b30ed78607615e5ae5bac892e5ef6c4a0f5d9ab102e171e354abdba766bbb60e5fdce", + "04edb99983af7869a3c1a412d6d0e9c2847cb02f17eea810d0fc9046562c1fe709c03295edc2b01445ecd14d9ef0500aaf2696b5d8df548d9e4ecbf548fe537db81eefa9d175cf1a3d9be6263398068f8f7d93c034714b2f789140fb5febdda155953d39ce7cb4f951961853b3abc8edfcabbe5ee62b0a20e3d659005804e08d3a19970657f7f5709c4d25380a7f2878b52405c45ef737fd2c74074caa96871f12a66b933d34589e0bc8073d699649f1fe9964e74992bc1129e7803e96078d78247a804b766756c54f6a271c92a78b90fc85067a3cb2bb784996a6e3346958b8d609c7b393b82d5ecdb17f4962d122eb8e20193a9f2814b9964657286d0c77f420812431af5092f4e5cdf94a8ff0a47f6de2ebc04338484f6bf10d471ddfce6f598e1f3ece7183b99c89f877c09e2e" + }, + { /* i=3247 cDividendBits=1260 cDivisorBits=784 */ + "0b03b414b422c142cd00f71ef8b01d12dd074308d9b79dd3a743ba4bbc6b4ecdd232eb78d56279fec7e700224bdef28f45e28e6a818bf412f7a7071918cc7bb611281df749fd37ad34e0b5a1fdf440fbde7768858e466f634902d0d7fd914b075a60fd79925954561569adc0fd911229ab553b05928f85c01d60209fbbcd6b56eee2aa750a64df8a17f857e159b95475d676c84a78c9c9207a0015ed84e3", + "4a4492ceb21e34d97a7cdbe409ced6cee845f73d2284cfcf799a52ee2c03789ea9e2e4fa2dffe856bfce336a1728dd729004d24473e60ff095256a8b27fd1b856e1a67c9985c98b5a01942500c482777ddfba4b30cf460476e66d412aa07e2478704", + "25f7779c2c94ed526c9afd9773a0d12ab3375b9e096c3a5e3aa46a5a341d43934f38015afc264cd5655786f0d23ad7ce665026b01acfea0a35e2a289", + "2bf532558fec681429f5a2516bf43b6b430a9387251c30b278caac636381e0a31f354e01e262b61dc1a2247f7e5249a66519f9163eafbee2b08d630df6ae86b650158866bb003972d804c469b1394959edb636d5833db38bbc6ff24afe55b4adbbbf" + }, + { /* i=3248 cDividendBits=3587 cDivisorBits=965 */ + "05f1679744e71b6c5bf5f1443c7a5d0e94731a512091f9333674d9568584f80703ad5eb0f7db2909e98e15bebe74ce3f1e16d48ebcd12464f3e25a358bbad77cd28aee9056f3351009c62aba69abd7099946b5811d2e4ca44d4d5b24bdbe04d597ef272a549aaac02b660f6e461feb0b141ac1df1256a95707a03ca279f75290ad4902466ceb5342e02d4e773df1c4f557fcf2ac6e6f22ddf11ce2d690adf3f3ae7e175a6be54fd99fba864654d652584fa680cf0bd771ac4939c89a36779558f784df45802354c80ee47ebca7907c3e5e47757c076a3b3f5482cfe35f5d8e48c61b23541d5bc795405ae9cf6e94f5855b50ed43b17a1fb2ac6bf90c01858f50bc95c7736c3543766ff84106bac4f64486db6a09e704c3f847ae0153133e20d919f0f9af6c54a401ac5d9baace5f59c8b91d808c06d85233c5f4fbfb76fee3a884d4a86b7e5eca445d419983515b0206856631c5883d7adabf2f3f5db4fae2a07a85071fbe26551dd52bb7abf6ae3eff4a24c7d069214ba25b1cc0469afa2aa49c8bdf94f0ae6f8e26846f43794e0b280346d16618694602270e1c5302e688303b48630a7dcb924933ff9da44aa6c1fc4c7e34ea71d77381fe96837186abfa1c1c", + "0e4b6ea067bb0ab5fd97e12b50d69ac4c9fc0ac94c3da0109a655d3c0fc1b92f38684f44bb00378ba973701c4b2bfd2c9b2492fede06ed94a8593e6c9dba34486b519d6235cfd5cc6edd1b3e52ced53e3e9f0aebee4456c72595401855c5e7a3ac567aa6014cfaccad20e2dec5fc41d769b753bad7021f7028", + "6a6e84078de55f9dfe10bba65f308f364bed480b9ffd8b32c6ec870bfcc45236c1f977affbe41399f311f30e6e6b2dacb8ca8b8d37fd045fdd9366bf40ae395216dbdb26e9e8ab6aaf21b8f56541b95cbc2c04933a3676fe9f0177154ab58413273f9dc8a97b4054f813607121a9fd0a70bbd39b94a69ab914558b8180f798a59f710f9c60e4a9a57cb4a1ee5e12bc33629a5c0cdc355844707b938f3713ff43ddc003a56c35f88e15f6bedefc77ea197e29654fb3aac8d7e6ca26db66f0182e97d14982742aada04f7ed8bb495cdf203953ebd8f937a8be333aadcdce6a26541b9b8fea0840f2c39add0d19f48f4a7ffa1a5bf7e3a715e40f882b1bd2c44534725333951353e23f57a99abb596977b03f85711249396cb69adff352cabf3d13a1019d2c8085c457195752047a305fdfc233abfb448fa8b6292e91936696a73337cd0cc2ee5bc547", + "04f90d3146784414d22e1801ae5bd7ea321161ef43487e7f7197df0e25aced515d67866c460dcaf4be9c44c1e8a52e0110ba3e07fa6ec7043012c0dda5453b51312ecc682db7a3954df553b020ea870816294dd2da21a600fd7101192e622f0acbfabd1f3d71ab017c33c3978d1bb3d7db83ff5180d5bb3904" + }, + { /* i=3249 cDividendBits=2689 cDivisorBits=350 */ + "01655dcb055c67a847a5b11e3c3532f9c7c1a0211cf303f0cc6c17d72b9cc71e0b1d40bb52306eef94a4ab8d51e43021736481fc80785306cd86f99ba94354550508e2b579e5ccfe68d09a8e20f70af24ea4860e7092390a79e9a93f98e038c0aee8fb15ebc8d8702e64b03bb6d4286ba1e56b1c58fc5d957c518c321729449b433ba5a6218412ec7db42c80929a836c523af4679d35733351ca9ee7952e293c803a5becb7f39978a8b1e28c28facda02bdbe40f72babc381cf2552600313494b069596bd9c99dbb859fc119f2a893073da5804635701e6b73509c7eb64e6c3ccc9546638b3aa706aa2afb2519fe63e91b51cc95f8f927aee6c33438b6267c33e535834310d32002d1ab3c041a3324efdc70a873e717c21a7b3ee75d5790ad6d1577a81457a8f5a6097091c989aff1d3ef2e9dd2192937f899cf1e7eeeaa863f48f82a3d5f1019de943feec92a5d2b765f", + "1b85612a944edcc8c72605a62f28ab5f5fe0cc5d9ba14c78151e14fc8a46e60ee4a58a364ea51bc800632047", + "0cfc3747d27adcc8ef263817f40f736b4ee4998096666d0593cdf6724441dbd198fbe7cba4b4a3173bcbc986c517e726b3d44613727a8fc532d0f20be35dbb5b7d97bffa2e4ee7032a0d25a53d4d59d5e47f03b053066294824f86d281e9e48c945473a69b593531cf127347d81804aa23e2e15acd3af1b8c0256ac7c22f877b96e75f3ad0415a0d09f613d1043f6fc6c7612de80ba20e5820324aa32d7b46c35ab58bb026ea4016626adec4c18a19ba1c8eb3d220ad12a526d10f709cf99759cd04d43e896ad265ae958dc14e4938a44e6c37072aa37d2a036f980b7a91059c84030ad3c1e64032000cb52d7414aa29cd9d5bcd9f42f08b2da905a7982bcf76b1b6983e7a977151274107c00bb7eb96d75b1535558018fe7369a07ec0d0b52231661e5520", + "1ae0968b37f4fc634cf294de7012f1ea42b55d62e6c57ee56832f303f5db3eb22f32b65de804c1f854bdda7f" + }, + { /* i=3250 cDividendBits=1438 cDivisorBits=484 */ + "22c5d5cc40e7810c0bf787d40aa1e893f27806f22f9b7ac58640b9977e63fc76329cd327eb153b4490f4e2a472e0d090abb705aaa877e71d3dce5f252e44ae5f6fe65bbed77d99b44bd6139067e7427dc8f74de2a0444c5c4f9f5e62cfd895c91041fcd5ff19d99b570cb2a6aa6b5ebbb308d09633c512357b2a4a66ac9f715fd13d0b36436bb2d35856268a77310b0dcf7e920851fba51695db4c37310234446fcbb98d437942fc3da5743f9221608fa0d3785e", + "05d13c46f0c77a597d229975a7111558bd1a5229ea79b2702eac5a03a1fdf906fbdc9cb39fb18ae4c5b568839331b28652e2b66449ab7a813af066682f", + "05fa3a5e4eac4db742da94cf36a6fe59ffa22e8875f47805bc9b65fecce50e4f8ff3df46e6d1a85e0642e6d4e522f39d678bc7bc878247b0538216aa5b9150e7a6098ab88060b86a292d2e05a3db7d7acee97107f052f684c9deb45eb59c32682213d8bfd58e0c8cb2e5f71924931b45f3ac171a0b63937f", + "059b401eedc2fe68f9424b307dd7252d5fa076e339f974f9bfdbe6b07af5b5e9735434fed368f380db3a9c16be135134b0dd4ba35b6bb0406d4105cc0d" + }, + { /* i=3251 cDividendBits=1077 cDivisorBits=887 */ + "09651cf0c5cd71b96fe491d6682f21911f38a79beec231ae970a783e123c68142eba1fe74d65030923bb13d7953923504c714f4e3b442ce80f640c7e00e106e8cade4670ed717dabda276b9c3cda021f5cef2349b40fd18ecab91ea5cf1f21ac6b4ba6c1a39578183b68a28a4dd6f5de320027052229b7667c541b9a22b001591d14de3f8388c3", + "55d9c118d02b33d5128f10386248aa3fbccebcafbbe717d08659561bd3d5bae620b3a6b662bbca91eef844e57b22ac2f719488d8ba1bf36b23ca69ffa843e3e1da686fbe75bec5721513d8ababea2ae306b4baccb59708d07f373b3880d7390cdb93ecbf7244f45e8ce49755cc7c45", + "1c03dd76b7e92a47c28bcb4e996e3b8f95b6f2b3a71634ce", + "15f2d1cdeb8cb0b8197e07562d6d4aea706b3114b435e279f9bd0788c2d31afab06b6c43a4da42fa66718bac6bf5c764e2dc5ae52da09595c9c082b0166563bb3cad2e080a918181d6889e13823ae1149dbc7c1789004b4a5b47a916d28a0126aa8afb69da4cc279d282c6facb853d" + }, + { /* i=3252 cDividendBits=3292 cDivisorBits=3079 */ + "066f6ceafd4e6b6bba0deedfe45c3308915bdbadd729dd41183f6d0fae8aa149dda3a53db819b388dc136c907bb4819f854c263568dc8376a31b78132be552ce4c8bbd2e3caf2f7f40a603b0a640ec1ce3575c04b7050a0803d493bc53ddf8a4f3e5a2c1d6857beceed3c9de8e1b9f7ce323790e94f5c0e57283fdeaff67edc7c69b48018cb29c1125e462f674c40d7826f3b79c1de2b13394d9acabcf498195fa5954bf3d396c223267ede67c67cf889aa918d7ee2685eec1f84c863f770b57706979d438a7e1267aed867635668944f527430467b29ad3e83d912952260580dde4da1a6d8b0adb7dc666e993b5a3f79f21955c8d2cb4a78c40f42cd40654a0215aa82e74ba5dffb0442f506baf50b589c98a4be0c35ad99cae5d348acd61ca4ce03b6aa628beab69007d58656ded571a350a7b7a9c3d4296145f1d6b0120ef9d69e058ccb8a2bf8f6cef0cd7806f10483be512c01d79e80a5bcddb8f81af6549196e98924bc5b6b9c26caaa089a03b383c462e43cfb99dbba56745f4a3aedea62e548ac3215e75ff6c76d6892cc22aa24476f4fd825f9913fd4224", + "1cbd8dc276d326d8e7470c9fb64f2b9beb4743d379dd795c05fbe3fe59728e600092f2eff996cad8d1d3c2227f10cbd085a9ef36ded46b8b8eb6fd1fd36cbcc28cf0c2ecc4713a8a5a373d21921508bf965fb080e304c0699f18f8016d0f7920df88017484e6f084b8b8ab52d11e107aadfd8f546e99ae929dc3faa16fc9e5d71d085eff76cfe852a7f033b7c9fdcf3db07fbcc02da69b8c99cb54b909af012fdc67f6933f94d16c0754c865916f422ba45451fdd9e6e7e772f68bac1c3422ecebde5f3dc9236d5dc3cd8599a12ecc3b9e1f4ab17fa4afb9468c99cce3d5b506d903288a2d3aec31ed08b3580d63bae72ff7e5b41838634ed85b3ff1f128c567e19d6144fe822cd8f9571d5a61769da4f70381b4b36360ec4a2c2cc8094c3541591e08b32305ec6afe47a6d700543b372f21a3dd9a21d2c66b230367f9fa3c29f2892bda2d504b5c8cfc0fa2b1e92ac3316e53a0b92046b6e01e5fdd163921026fb6f1a7bd8e08996ae664d684099c90993798a55f623fc3fe1a4a9af3e564084b", + "395220673a8f005de65b858379940fd7b3c523e93153d72008b9ea", + "1958214e61ceb5656f5cafee36ae9ec80d5d437acd7cdaed9b778fad5151e243dc0991fc69906a3c6e4f4c32c168d57dfb0c76ba7f732e4c1cef0d0877192b435a33629d5f02ef65cecbb783ac3a9f8c19be0c4a83ae4d248f95c282cdda716cce55ca68e2a5e1e69836ccd6e1b74dd63346aeca7bfd2fbd925b75920b1a97114a0ad775228172de7fc69d2c7f8c81aa15a57801cfde4aea42258951ff3cc9bd53801af06761d03475083765b3d98c46fabf8aa6e3498ea3bd051c99cddfb240438e3a56ec67d9e23a8c1f7b5812ffee9c8150209773e7f7f7e49389cd84f10fa4656686fc9bc8009bb3d023820e69cdfa6caf09746b2ca703af2e53fb5439fd1bb618853302fd605413b4b68f45d2e38f9a13d1396fab86f8db1c0d62502d043bc448274a5186c4e4f210c73553d80f8bf3d28424f09f65b2668a982d43b6785ef658801b54b902d9321c1d0947af8e7b4afaecc22f4a7365fab438ad794ba87a4d78271a6307b16c1a7287cda6600ef2957a9512d24286d5c7fc87bd7a377a96" + }, + { /* i=3253 cDividendBits=1861 cDivisorBits=1617 */ + "19ac0d287372653fe42ca912be0fcebfb7bc86e100cf7063ca5b12e299120f2f90f22d03bd24573ea016fadc266eff92656f86621f1e260d17180581c2eb0e651f43e980dc8a774627578425813da0792e101bf85e8b98de8df37772557f0ff0c1b4903384899879bc3217a5af80220a9cba10cfa215832c88ea6299fcf36bf18650b63debe568b02983097b6b89ac2c31ff07c0b4eacc10bc16e02fc67c8f01909f3d4cbcf21d7db95b83dfdcf587e78bbfbada484c83fced84c78f5edc8c9d577d5fb57f36757e78f77b3a31566838e6c6b4c34e79a30fb702b39dfe6e9d95607ab89171ee8c6e12", + "0105092419d773de876decb6d4c26b875d627ff8ed340d4b3ad709cccf1dbb019a1b7f820107108b551abd762cae9a16356506a1a9943f0a5d42af29659d9a6e9d27cb61c325c0b1c84b5595840e73afb1b5f8a6eb38d4c7cd2b6c2c566a31d8433dcaebd7c0b9d66af805b55aa23fd817a5bd6ec6185525729322e383463ce823c02d0fdaaf49aa83084b8f3ca316f35f38d99c0b1c49520830173ab10c7fd0d35ca3a446bd0f3f15bffe794fe215e9d9b6a9161141fc0f796cc643424bae4e6e7ffefbc07c6569c74726", + "192d44acc15488a788eddf4855dd121d4e65912ee349f0481e40be25032704", + "88e7ed5ac2f36853fc1cb39d7c3343aea4dc13049e4330c98ae76166829d7f4b9317b3a3cc1a3d87b6a79222b88feb7a212962a8502ebb00d5d54ca465333c732601ac1d95cbc17953faecd423a2079a588b2c699db46c913754c4a8a5e95424d8283af4060f0bb450b5cd33d23ce291d76124e8bec2553f697fd7448c7becf69d5e903cf7c6be8fa4b2752b6ca9f2ab7389c6575423d8c315eb36cbd81c3bb899f5a5123c3753029cec7c57662ebd5b3c390b0e7de05c0d2a3d47ae2c8d0a9d4f1ac124d3ec9826877a" + }, + { /* i=3254 cDividendBits=397 cDivisorBits=230 */ + "0c8b99254465b9223f77d551aa93ce35f9972ffeb2055b490b6eeb8e2db723f3885c82c71762ed74c6c6e9156bb67a649ec6", + "2db9fbc5f1911bd6d67d45bcb6d7e58689d0b50815620f860bdb2383aa", + "463c2592f9183fba9d31c63de971395cc0dedac27d", + "245378fe8fd28d5e577014c2b0d1376eecea530d2a5cfcbbf0058280c4" + }, + { /* i=3255 cDividendBits=1729 cDivisorBits=1418 */ + "4325f4bf55b8f28027df5ea5cd1ada7e586073234dce66aa16f3e268c57c6fb2fb996d0a28ac700e22fbe1eee1a3fd05e71c03c3f6297874d8f22fd8e5de8ff1e4c0eedc2e116723051e5d4cd81e7b15f79f93cffaadd509cff8978b55ff9b305fb94e3ec746943fb7848e529b17d7d2e6ee4d7065ce62d2b2ba42b6690681ec85553ab0bdea20805b2f9ee02de037431ad7018c8777b0435fe026c51eb27d094267b6b94a65220f56d14363d1bcf33adeb529f8ca214fbb86f27c3ceda7156ede00bab2eb6da81e4a8005b016bfa2dbadc94dfcc57233c3", + "01566246de4ec6d106e13ed6a14cd332a83fe0e7e45b2dabb9432331851945bd909b779aecc104f94838f6127ac30b789476c592a9d3bb38f9619132d1145d020a9354ac5a012a693d14b9b34d8fe2a5ff6fde927909f597a1d802e9f0bf68780a0a42927fbbd70389cb5a6f1ce7efd7de0288897b7f69ba82d0817a20d001f48734e629505081cee1b7ab1739cedf368c5973652fa196b7d81541628a4dd4ff08b0d8fc19ebb52c2bcec25cc0c04dd044b0", + "3234e87df4796831a625ea7366819ebff3d49b961f39fc409d18fdd9287e0dd1cda05520a37dcf", + "01433b093811c4aaedd507dc2115b3c7f2c1c3aab7cbcca7b8690a53a9dd7a587551b0fcea0869ce44f995f426238e352cedd33e9a63fda7e6f0a7cf9d312e4c06cc9b2106460fe6b18fc3ade339a4c0069cecba36e6cb8fb71da59f10d96b814d0a6585c316febc5a0b3a14c0f8ded0a4f82e105c9ccc9fb36d62bf66184b0d1a95200f97ccba84f2aaff064a3bfae56c8c2a0050f9fd616979d879e9753310733eef2f70800e074357c47b29dd6c70b973" + }, + { /* i=3256 cDividendBits=3600 cDivisorBits=2708 */ + "bf5c7a1746bac2aebd9352caede84f781a8ae9a51aeb00b6e1213843ce4b3dea2e81d332a63cd8250cc24b1df39865746669e070cacc0c830b9842a29dedfecc60b9980844f64c5bd653ff6327e59407ed082108d06c3c6acd8262fb354e64f1948a8ec3d76cdaa7e61f4d486eb5e5f2490b78691172c886150950b1847900f7ad3f5717550a20758e56a5050a6fd5198454307a92a1471ef6d75b45ee0b64bc9605a83088d284004913e929478c21e626a2073a8d0bca35d5bb98fd4c49becc63a35b378e817680f5878b4e7cba6288937ffed9577b9c10cf195d6e2fc5342d3b0da51a5f486deb5c843a222fab68b35f88a7850f1f3d35c45b324756bded247bc221e785e2826ab19629e15775e0a1d4275a06ba2cd963522db2c51b2ecd70fa7edf6e1791b20b84d327e4e60eb503c154887501afb170e6e687ae79388adf57527e32dfb76ee0d780fdaa0a4be747910e03016030bde609e02c8685c0f58db8da7648065066aa409bd09355bf25fe4ac0487b90b0535ef0ce59e2dfb8bdfd00c1e958f678e6ed766a5142fc853f670f5c8fbfb2d398d41da89fd80a838fb491976fdfe7cb218f62e21305f6eecd3b328ca5fb7281a5aaf837abbfe67a987df4cd", + "08bf1c726cab8ad92d4b2b28a51f469474429917e08532cfdd09693527ce08110a811893a6ff58f95bfc53c5cb678013f1f3508e88a09acd7250b0a9c1c35b0e30c61ff8b40390fb98f4ecb6e564398dbf7ed8a1879f83afe901ae4ef5a782a5dbeaae89865d088d71fac752bc1674972169965fea586495bfb54f60c3ab08b50dc62e877591acb90c8c6b3706505751c1b649c7189b01c525748f21617c3a1f8e9aafef1073a16678ae6df184054ec78de5875f4fff077a299beb57fbc7d5afece7bd0c1468e21b8964d6ad407465731928a4e88bfa689b4751c54bc421b735eb48842aaa0eeac5dd767e60b78fa63bdeced9749745e6bcedfffe21a26e75f5a5051cc32fd386b41aaffd18245fb867ad6aea48e32e8786e0004abe4004374b1008c637e22ce3ec4129f530f9152d4a10b7da88c5f6aae71c4aa5c0ebb8a658274ed5874037b5c368b54fd2bb03ec14fba568", + "15e0e7d794562af1a98c9277cb98d4b353b8ca2b57fe8045ceee75ee97c7333eb3c84bc95dcf0a7a8c5dd0da53872a3e42350f25fd6bebff6f21bda0e6f6c9db5691144643413efe4b7c30b3c7aa3c5240c091667c4ceadd3967190c09a7abe4ac0602e3e5b167ad53bb145d427a00a7", + "0553fe6d060c21bb9e7f8102e99a51f3e343acfde9203a54fe5627b30c13a697c4e54e3d2de344e3f7b9ed7df9d95c2d76e2f3d4d05a18c8bc5c578071371ccc45fedc794c147281bab420b0df54e9a6c23fa6ed3660d347f990be6ed07889e57e7f5c6c4b25cf2bf661f71522606938129952cb716f4085a0c228dd1232dfab2d4986867779892e306c737950452c00bbbbfb9f3439bbe0843f19588c569870f3f37dd7d864ffce6ccaad1fc4c05027743b287b44c50fee76d7e6b62f427acf31fc7a66c37b89db619d4d3ac28e43ea431a63e44a75a4051be05dd5f5eac3700112b9502c1d8f5cf4f4e20275ab19ea217853b4d42df739be5ec6a6a13589ed79dfbbd8a10ada6b41fb05171f0b6ad320acba15adaf81873058f7076b3f6447c80ec15d0dba610353ffd7ec847e5ec45706742c6e6b8d066e7656624441a495cd5305a56d95cbcafaa4e0a486401f44c50df5" + }, + { /* i=3257 cDividendBits=3583 cDivisorBits=3060 */ + "0a06d3129c7e632662c39a368b5b63b3ca38e8cd508c396d0b990132f343b8b6834b96728e955b74d130647a2c84615da3339b10ab5a619b4046010ea673e0bd381153177cbf8a2d7f929f020630c7f404a9becc6ced2828bf51e511662a6f9770604b0b5eb7c06294553d10b6b33b50be850f23374d0be74336c0407620f05dccdf6bd9223a539d56b9de8bcddd0d093dad37b36fabead04f5112bf793ec0f3431bd4331a48839bac0375638283f8d4421445307e36425c3f5fed479052e94a75c839b9c63205144251236ed59256f2fab7cd15aa96b139497416ccdaeec1ca098186376216765209a77d0661732473b3d737af2fc8ab275c237b4ee1f490164b65bf61b79c9a7fd68016f8393025b5bcb65d0556d392244716b33ec6e1954d15015e208cbcc1642b9c992c785c8373119714e3fe71e4029250b1a33a2209aa2c8e954f3d4286896e38db78b5cb8e9938e09fcb1bc3d7265910d546811591c92fcf490ec35f821744952552f5ecc2d3b379fb002236f0f8eda553a5da3f41d439cc61a903c061b93a36b23ffe6eda3b315bb59bc7c71d4b5c6f4cdd5b5f1eadcf1a4a3c61372d76bf7652d50bf44c3efd6959e51a78d5c18e45872dac127eca", + "c862e132695a4f4f38efc6ae61e7185717e23c835e1e463b8525cbac1abbf1401d52f0860e5221733408c008519978a9ac9a098d0794429dc2be4e9617a8f1d3fecd32c48a6f7324a6dbada9aaf9a40425fba5e6e2c9fb172514257f4235ac400625f6c8de2e8f5e0cfe25aa99d9836ec9aec9b0f597bbdc983f36f36822de027b601582849d34c15d9442eb546dd232a186ea0543324fa4a07ea21c532ba7081c78f3b081efea7d6838c4ff84cbc6112b654f1a92cb02c7593edb8fbcaeb97847ca572dc2c65479ab57d66b2d98a19b62c3a7fb9eff09cebbac07d1132e949e9476991df32b3a67255d154f5e20fafd2b3c59f4d8b6cd8101c4462c2083e678cb36caca50eba640dc491bd0812d2b38d27ffeecba07aacceed8888e74a14a1f2b757ccf5db26b7f96ed87c57beedd8aa5b58517f52975ee31b7a9097f2f410da5a61df79c4bcdb776a204e553711062d66d98b71e04061667fc71b3e56372a0268ec24667c7a2c209e9df1d8ffea7a80e9ebff7a6052c6f31cb00aa5011", + "0ccf33d219512b2a9922434cb51ea8179271f28fc90d5fca47d778093145bbf239e7b05ff12e6ae8511066ca58f4deca3a37acb207eeae34041d01ccf6fd7324c93d", + "441f81a2c45a1e666d5f92ccd9e755de91cebffb6868594e9eb9242d589d3056d85c4b6d960d770bc5567eff38ea9806e465d0baeb17f7aa550c30f18349e63d1551ce6af0e5f7937b834d07acba11d2b8b1154a67dc66234f7bad7f1eda94ecb08b5525401cd7996137a368176073dd09a74941d5ab4516d6fd0c2b0b6b0e86d5e10020a5bb4ab0bd56bbd09af6f49ea71c09452f6194faad30f83b9ab61dfe66b2d104a848a96f546fb867d90d612bee689f9874cb8fb27eddc244ff40775377d328ff139d43cd10e0d2fecf73ae3f311cc090d480e34ca4044bde45ec3ee6ff297cb415ed6e0ac6f4ad44f8dd2ef8712b1bd1078928e09d8fe9d88e23c0defa8ddac23ec83a1640a1eeb767645d7e2d40490f46dda1cab0478ea6c45eb3d837b5e33f17161291b175079f4ce2a0da361e4f5ad6fdfd552edcd00bab1638df28da5a77aad9e620cf49d6e2fbb0cff9b8476fda911f04f7c0f55f8a736bb8961eb8ef987f6eabbecb9db3f4c10d7a577b7f74ea336948083590e53c11bd" + }, + { /* i=3258 cDividendBits=3839 cDivisorBits=2257 */ + "13d16de7c3356a2da74c1f7a6dcdf7642e8fe307990aee81b5b9f69d9c9db6657e0dfc06b5d46514974887113c39345f668f2ad523e8ee158418999bf237da9b47e5336d9512f0f162634fd6755aa0b6445ddea9cfd2f2ac41d878d4a3f51a666454ddeaecb0c6072f9e1c65cef2136f94fcbc4507279726df1640af7438d4e1e8700513c51a0c0959bd25bc4b98d9d1bd1380db4687547bbe77b2492175c6d38b8e8ea4feee42e2ea5e6d1c15109c0efa74a728b13fc30979770cb07537def52035bcec0a5c7627dfbb5f6965633a123912581b65f7885897b919f8d047c2bd0d23369c8de077536e235a4a1ddec87019c0b72f0278912dfa71bc32b7689824448f726c2c824994c55108a915b0c630da9451ab07b12a2222fd0c36bc86c026cfb6fc81a761c2158b291e33494f9276b217d6de7e9567551f36557ebc5b9ff729d36cd42c3f7ac62b59d4e20113ffd8aaac5a636a35f67f96a5aaf5d66554029584f336d54fef2a7c4ccc63c4d563b7f9fc4ba79caa103f9afa77df12a9163bd44351823c128b98a63f3e591f79c6560a1b6b83b46907da2deda156e3d694ecad6404174b23d33ab91c711cf709a4701f4e4a8ffdf38c6fde9317237e5b070ad3d2b0d91562ac4754af2748f8a3be9ba421184e01e2284406f52c1dc94434ee", + "019584259f562ff6b9871872532f7cb8bbf6da919e295fc434f2bf69de9bcf87f89f9d0d90f8081f7e76882edce78ece59d9edad4731cfa38bda7fe650d636a9a6fbcdf798e13fe9b50a99d2ee8910a1b9718f911892f1886b8360abb71b6d68c0783128a961901c455e80608b2f8b764a0fc228f5d8fa815ebc64036e6016119736d4ccef7bb791fffd6c074dd51f4e974b54cbd7ff0ef4c73f7313aaa3e10ff9aa86b32dc285175320bbf0911be880fbf54f5f6a696d5680486b7f5714568030999015c8f3fb96c998538814f2a4db3915ac216ab88c43c18029520420eb40619a908c0c492f265371eaf2643d665a23685f684d49215adc4864d724259ca10bc2daf8ff0c49fbc3af1148472f242e34d157b0241410cfd7b8ab", + "0c82d381960801bd2af3d76989cbc2130c5a4322d573a5408ed3744226af6c99641dc16633d64a7fa51cb5fa4e9f0e329957bd27aaf35b2b161cf02c6a681b5739b730cc4e30ce101dd1ed0da3222d1b4107227eeb3572220eb3a09630a01f674475909cb2567a0ccdb9bf11c29edc9e892a01b6a4554738d4035c2d249c2b0351486cb8d9ef2eb46fd8ffcceded88ab5d6abde8530bdbbae76528ef8c1e2a986db79a8ff229d0f8c6667b6b30d36dea6538261f4ba84ba4d6a2d1eb668ec996fd9797ee57a8", + "0315d4aa09d0f9b84010f3d0eddec058757ba8a5b0eaff7cbe11afee311b5139f6b865d3db2b7889d7e62c142d78e8aca9ca2549381750d7fdbff417efd31dccac5841819007c345de29741cfea217704d93c8029fb704b634de6301ed22014dac6c5eba806f7df37a7ef3ec1236445fe530ced396541868b6b7bbb6ed925bcb010eb09a142ebd6b52700a534d3fba3ade024ecbf5ce1237d74732790758444fffe9e9c2ed6fccfe9b98d79f001b60bd9ceafe14b21a1c60d378cc15a5635e729a09c1dc5cc7ada29bbe82d77a59b4e3f0e212882ab21393d3dcd4cdd4a53dd15140f1e2a2f6daf69350e57dbac2315a5f8168ec3270dd599c33da434da7dcba71326b56722d1b531a2d683a8871844cc3ea594be61b87f6e7b6" + }, + { /* i=3259 cDividendBits=3733 cDivisorBits=2838 */ + "1a7143c6aa66c1d223adc3355ab3b6afce9069afdd774ee16d4496632fe51e68dcf2026b8c53212f0d2f50ea6218ec3437f72bbc197f23c1d74c6479c24e4f761bdc850d3b89a46b5ca8e55e2ac5d68af20172aaf16bcd73de105904fe07c58a1aa3afedd15fcaea1e06d7bc1ac6319242be7f05c02fe3bc1c0c8fdf087fc28f1d5d83c57bf801a5cce9e480a368650de1b69629b1e62392c498d9004a6b9f78e3277ade57a7f91f8aa08bc59a6af31241d615629d64cd3b12a2705d0b0b979d41d94e3fde52903fef97b0deceb286b812904725576913d41340f47c7471340dc0cb06f251745df3b4207ffb95a8d74f545d3c7de499c67ebe39857cc3162c7e0f2df7a82ed8cc8bad9c2cadedd3223bc79382c4c9d49803911f8393a3177f0556d57aae5946af1b4f0c9210aca3f850aaf15076e2f11ddb17305c46ba2838d178b4656d4b58dda3c1cd0889718c3f14e1d2e7b0986c5814a6c6bcc000a00c52cea8d261994db6c7c65c524eaa89e42f85830fd376b097f0f8240a8c8a04be9852e390e0874273fa2a8da9d31422a5309817b7865224d0a27fa810d95917ee3c402d9891701a26635a4f476b618abc79d22ca6ef3cf2e50155e1a8492713f1c89e951fce54bacd3247931601a71cfa5ee5f07a", + "0e8e94d6c464f20d37b49e54bbbdb503cf1dd35a8fc585c0bd4ef3e4e9e36d5a98548d954ff3d6144cca3a2f352d5dbf7e848074555ad439e828a164bbef4339651b0f14318ef0a52ab374a2bb5002f685a2864fdf609e56d1ce958c56e0dceefebc355563cc1e3cabf35c4e4a2fcad1b580cfc54281b8c7d3d71a4c0471e5fd56f4a38d2490fb4a9d87472a80a24a19e97e8411c154e86c7ac80ba666ca2a1fb998b65527d93603b19586a5a02333dbdf9ece600b7985deea975411fd14d19cce3b29981d015b5717a414762724b226dd5454797b7c1460c72e85ee927406d8082f531ed78659931fc14bae232545db3ceb381223a7427bc1f2ab4466949d93e4e973bf40db99da189120106b5d4f349b8a69d988a3bb0a2654f404502c875846df97bf1513e7a59b214cec8a2a55dc7de16fb6c2821dc940a70b08f68b9496e54153f4b73224304f3c7b2d18ecfe75d0a202601598af13b679d1664a6381850f626b", + "01d104e811f5816a4ab373187b15eb2aecc6eb376e41a609dbdb019bd0d312a2db56f1eb1ab46c429b9f054d1c20a7a98e6026994ee9eada93f84b057fa4d80e147e26ce091b6fc3c09d99a2e881d7b4f1010e175812b499e985b738445786fe3dfa5517d67b541ce49793d4100e7cd471", + "09d959a0e09857c3206664d34f46b3f3d3435ef490218751a2222871b1265e7b318b63422351741da7310c88e1f1a7611a08baccfdb1c8392995761456971b18467964370528fff704d39815bd5246b6fa79d1c0a322ba489775564e46cf10926a8b155d6325d837efd916983acc8d2050ba65fdd869d2a411ac7f21c38e221a316febcc32b94cb6eaaaf83897a3897e10b9a9b5b31486b50f3817ff27d8492dce68d9b9de1f78a97fb5b5ff7b30531e51a8f5212703efcb982738261068d8066ff89dbd63402c5f0f526beebe2c20e7044b81cc519d800ab83c285d320231c7533a78a6b69e15e96946a77a290e9c9bfde40834af9dc158132a99285395d9e0d04f8602699f6ecde5a448410c161e73b62e7aed6e9cc6819a9439672cde9f0a9544b0e17178611f3f275ec0d2da4b4379f9704ab4536b2fb2177aaeb899c9f06e267557ffe062da1226298e9f168fe8ea8ff344d1754180587701497ee1185fc6e33f" + }, + { /* i=3260 cDividendBits=2860 cDivisorBits=2470 */ + "0ec8d9f7433ea214b0d79086bf262155ee4d89c0bced1334f491eb775ba5f03217705387437134cba36d8278731677ddac0d70190f9fd787fd8f397ac5b1da7507558ae7bc767a5550ab549c989827b3f8b4b41c41846fea3dbe9ba438fed4505d8753afdca1992b4276f33b10b88251c2bb75003b5d939501da2a9e7931847a9e7e247b08c2a5676f264ae2c04030a9a7c6fcddf12f7763fae4d1dab7a882d385693bce4e06eae993f8950480d9037df973bdadc9f99377c8f40d0611d793f975a204f9808079398c4e77543981e1d77a50a8201f0eba7dc28e291d4893575d897498dc808e1af2139a41b0fe486a5ec47719a27f2ed87ae4f3e5d0deae08bc0f36fd80f44bf78360393a1771d59321ea37302fd3d23b7f7b79be83722feb68676b2d5d5618cd6b15d1cee4e4e378c4f2b96dd0f4a76de6258ea8bb61634a8e02daa64e2394f38568d3131689b54279f669bca7abd185eb07d31e0107c5d3dc5da721ce2c62", + "0aa445fc5d491017d8b1fba03005f2b35741a06b8d4610adae55fb009a41ccb05bd9183022f65f30ac1409a5e9c15bf84567391bc46db6b10cce80693b661fa14f8b813ed65072a57b6491240c01c31528af49101cb8929ea912735fa8d20133e4cd9e7f73a37e30db18601a4bd09bcb153b9f24bca584195aea1f3f726626d79b6c2f4b338a6bedc98091580456ca59de9a8320dc905c04cee244647b76c5fdeadd3fc2c66f90fd09cf36002854d9b48be89190799f19d93836e7cb4c15c14cdbaacc07ec6c660a1f4bd453c8307fd40ff377b5acf89db98b08a0d4b8505a486b042095bb1242511f27d69f041f0c26eb95a68c635fd07cc588545b217c4894d230687a3a64226c0f6f113b649bc543a9ae05bfd0cac92083a0355d00a02ec05d9c04653792f4e24726b5106883cd2ba05d675565", + "0163a99b9fbd94d08614bd981b0823f5dcde1082864ae18e14303efc7154ffed3e4913f85772ca09e46af6c3371f7544efc6", + "0937e5502feea3a19642b21431b2e9edfe60f926bf206ac026718d2811198b906ae061f1630dc68f6d1d46ea91b5472e235d8699645faf2820131baf9a6e45a3d22e4fd72fc9921ce8c78408bfe313f717965248511ebd7dc5be6abd32bcb4b59029aed60b352834b9017987ef2d6c14db69061bda3da81fc3c21ed71dc4b2de1fb3ef06ae85312cbe0492091556cd5c7175385ad72cf7506b2f980682a25dfb4dedf6bf97571404554d89093eb449c2c582ba3bc965a2b37412f00f777816de529de82b09413c6aae7ba8185d82e41dc509926ad268b8e97ce71a15750603c076a6fc937fcdb130a58f05f5fbc00dc73253bd2e64f9fc1366bdde12416048ca18e84207048b578bcdf2d090aad9aa8d33dfed226a3019d5ccd9fd9a0dd9ed91dc4cc916dbc9ee814e3d207e5fd95dd4b69354d544" + }, + { /* i=3261 cDividendBits=3295 cDivisorBits=1908 */ + "4a4e92e797c2a34ac4cbbda1be47dca8551bac9585e6ffd44ef7acaf890b7ff6470be14b131f06f5f02da6292c76b0e0496761fbf4fedea44aefbcac3150813d1ca30e9785fa68fe85b611472f3276874677463a9834f4187724d25042c06046bf2f01251735f173ff9ff85f4e8c0b60b61d7874385a35f61e815a4b238322af42cb7830a622013e2563167e931b541290666087c56a2ebb18d940c0a848e7e6ac4bd8be7093ca86981a480921d0e628aa2726999bd7fda7487c1f4de1c62c4f1f2b16b2269fc10bdb95c7ecd9baee90b5c21768bf2e32c9a56dcfeb0c6e39b3a7e329d660ac4547e52b1efa65e6ef2da9fcc6b8449d330edcacd4e62e97ab63106cf6fb88c8ff237b7d5f98ca2020a016a2a10343a94bd310878f1ea6eabf842c3aa69502d1e67368e7102171a8f46b43e004c2e570880a10f7bf07b77e64bf084d30ae6fce6d370aad886876a5416ac767cd9df6c336f613aec0d55ffa55ca8a300eee53fe1797f580db057d513e5089b09cb2be5d6155800c1c85442d76aef5ef05d1ed8542adfc4231a8aefca0ef71837ff0d7874805becda78a", + "021b0046912ee348f35b667d34baaaa32d95f7294d69099772a00048f1d1cac82ddd0a3ad2b991b753df22aeaf94fcd8f1a8180a9aff2cdf41400782308efccc297395c3eb61009b7ef78b768abfe46c416fa5f2c095a303c3506dd2273bd92e5914f38132d8b264819b645604c9663b51426e5fdd020fe71c804e4da82709e5ee3d47e84d6f6705df339a720f531847e7bb8135174404e52379387a47f64c808d729cbc0264967b1e328184dfc0ed8ae58c1d8a275072181bdb5e49b5203a5ae677bec03ae5a7e0b1963d9d8f07c81d11df3f2dea6aa69288f12236d9f68db3e8020a9856a6454dd0b49e1613afb7", + "234ad27cf818eb5024a133148c085ab9dd3badbf2e2c8cb67bb6495db80f72d8e1235bec1fb8ac93dc8465230f7d64b0872618d26b32e79f65ac10e4e2a54d0d40a95052192eacec4df5dd0998f22bc7a6f20ab8b08bacacd7168079d0c27331b8f3c53dcc6b112a60cc59d0075aad82cb8fcf49be3e3104421a729ba836af1c418abdaa73eeee055b38fd917deb558d2a0f11217344a51e9f5b9aceb6c328ab9cac2950b49ffebe8c91303f99ec", + "2e439af89a2ac085e5f829005b881e85b8b41629a7dc40558d7e05912dacc66ee9bd73f965febbc8c2c5a824821a5d256f8a475d80154c7c0fbd76dd66a7d2aed8245608136b47a174a272f0554aa23a09b3befe4d744fd2f7760dde2ddb03cc2dda6a8235f8689cbb6ebf4d5ead35abc93af1cd3edf1779d9cdcbfddf5f072ad3cd393cedb1d7224689dc407fcfc02bc78a45f0c898614c6bcb72708955efae1b353fa7ad0b8ccba83b18f3de2ce420f37afbdf3ddf9f567294dec8b1462a4a20d11042216a0463f7271861947f57972b98eddf3f116ecfdae6657840dc35f5cfc06b6e0917071290a6129a4bd6" + }, + { /* i=3262 cDividendBits=1531 cDivisorBits=533 */ + "017f0461930970b57e6468e8a3136339d4c0bbeec6f2767d302a06c250ddfb3f2149a2834e7e8a08c5d8b54dd852c9c07f9db1ba5e9a517c314b422efb338064d5c49fc5075f4bc7d609503099b4f0a0a2024c6c2737d8fe9851bae757dfe1713358aaeeca97e330f27c09281e75a6c697d5e6f56e46bcdca772bd319bbb6eab572ff8b5c2e6785e11c5c99f251f0f7020eb637d5608aa0a69fd24297893d45613a27e3deb3c5979192b04b212744e6b37da97a43ead407b754b2f068f940fe6", + "121540ceaa905aa40a354a5cd3909b96f4084804c979597e49191aa43d57a46c8334def9fa84dbe5f8c96dc56e4df536d48239979db1cf41bbb014957d69fe4531bf7c", + "152e586c9700755cd69a99ea6bbcd3da671c0e580e11a3a347ce291b19f738349466199d028d44e4f09ebc1a1e0678ea35005f5a387f43670c4e72378a3a8de105e5bd167a567744891f7a44f221da2539ed0030a555605437a45ebab7ec30983845e3ed46b3b85489fa5b00e1288b1fb48596c8c355432aa1e8003b0e", + "02d5df81391b28fc894e04d1a59a22d28365f48b765f6d6acceddfae6f06952d0ae7832d8065da04469c88b8d751cc350ebd5fa0f6b389ca6c7c87fb24eea7efba031e" + }, + { /* i=3263 cDividendBits=3191 cDivisorBits=985 */ + "72ff1cf014ae2ae06ed0b611f8cdc69bff5353ea95ab6d8714d2e6ec5bfb281db2d66492356f2eb07c0951c13924adeae600e6da4aa059c0d01eb6b81995ec03a5df95f2bba059af7a32cdb5f2b9026f6def7d6160a8e28528f78ecd46136ce6ec337276fd9d95814f6c387eb754aaeae63a607d6cb28ad6cafa63140f2467ca998cf42d432f08824f5dd05e651ede627d73cacb67c38d0d9c4afa660f1fdf8e5ebcd1398b843e8497f7ced0a86d696cabeab7aba723ca20dc4b40522435ddbafbc1b8bdd1b06d8dfae6875c5dd0376c68bc70835a9d71678e18fb327cf119e3204bc344c6274aa605da79bdc1e36ccebe0f112e1508a9d212650121a718702d626a104016a87fd9245a8fd81055b9f5fd0a488a64afb3807a373dc6dfcfa57fbaeff604e7d9aacbb497bf4dc03f855657f3ecb40dd325582868f00c13dbfebbd148e9d366579d00cd8e9f1ecb914222ab65775df59952ef5970accec6b13ee66f270ca9401731e4f8373e332990236eb67af3815552bcc327155318ac2e076fd1911d4ea2df6ff84711bf0050541d", + "016934f2e2e2cd21c93561ab6c89a69b868d33b57ae76e97b07c0db9f76b90aae82e52876feedd49947722ee8e49093cf9ff924f255230a256598e975560f287fe83ebdca80657bc9537413f15da2e54440b2074584a7cd98fadb3489d036ede3265c79e00f3c0b63e440d8a19a930e5f3c36b0072e6107cafd20cdb", + "518089385aa7c142dfdc8c7137d03eb7345ff06b45797b639b8e3123359fa17061f310f37427ec656ac7e449408d4fe933f3c14de53a80d3c58da24eb5c39b80f0bba5244c9e51154d84b5303257458cc31458f03015a1e5eee62fdd1ea2b8dfbdf0b3a247cc7ba904ef3089608888cf36cb832dc84aecf6f6c5111c95097f9ef31bccd0daf6b09fc883908ddf05dc3698c8f2df1ee337a1c0224ce5af9be59ddc13afccbe886ade1ed8c00f66382eafd521f69fac3c248289e89eb2ebdcb959a416fc08e85065d8fee2d7d1e0914abdaeae26533c643385f093f95d3ba3be82f808b4188fdb2ae68fa416a7a81f50fe6ef2e00497c43e66f6a0e6b7e9416dfcf2e3fb6511df500ff57b903244639ca051e3e9ed", + "010f82f3c9648bf086dab315f6a7d6da9a50bb876e68c7a86eab97b9a8b04608748a42a53d0816235ac73bca4ab8a5c76be1a89ac067a1df2d2712b58f4508a18dd06da90bdca15016994f2cbcc96c4077332cd0d277f749285a3e571663653d1af05ca35b01a39d4d6e6f8dda234845fd57f4bd1a4878175bf61a5e" + }, + { /* i=3264 cDividendBits=2923 cDivisorBits=1362 */ + "0351a466e972951fee7f529980e10ebd8ede3d9a350455a83e87b612cedf8ba883ca33aa2032738dde56386c21e09e1c94639b8ce623758ee833611474939bf14a335435ce876e1dc2ffa8ab6de24cdda63209dd7f29721195ddbdc9124db3817cb5ca81223d965e766b510bd37676989a5839b8573a4d30d380346d029d46c14824ddc26b4a5e4e1fdb1eab2a1251804d145bc6d7bc32747b408506c01f2c1d8eb7f40bf3e4224bbb987f01816f10f573681b02c64f9616ffeaa3c1d3443d6b8aab102ad33f5753375ec017e1ef608c25430d1bea4ccfa76af01b3344c942da74dc5e7546e09f23c1839b44b4a472f723b721c4d7d50315d31315da67cdc5edf06b6906de858fc5aed673ae6c92be479be539b80e2f52f9bb7b595a66f937cc0e77a8eeaf77d4ff9de972d93411c74c99136057010d4b326d5061c524b0c14db66b1602d9371d8b19d2ae7b26da0d69d08cf805afc857d23f6a2892f9e74bceb6b12215aee5a51f4d1dddaa59c2", + "039248a17116c8a2f95c4118f694045caa142841ec19fb8777cee937f525afb61ead48ae51acbd57f7eeac17b1003b5978894c03f53676eefb4fcaf0b17b5e5c0ef43f694386618d076d047903bc578ebc3b8cb6c1cb58824d82d88de498d2c5602e47bf73fcf5bcb059461d0a75679b6f91709cc16f115325a350b30781dc239c59e1e99fcd0964cf4462923d943d1b78a5d4fdfb5666f1344248ad30aa00401638a1cc8f80aa3da1e4ef", + "ede67c603001ac24a42a74b5aa5685b2e645ce7cb5b4dd1c1dbde3361fa221f9ad07c2814ba5f84d796feb713046767ad2742645d53baf9ead20caa08fb9d1177af9abdbc1cc95512781d26412294c201f83cdde1a3e0b8f5b83a4e15e2b4449ec0c502495e2c7ec6d5c92fa512c1bac812bdbe229dabb09d6b1a0faf2367efb8d589872c750b780c13a627bc109c44744bd9da40a782e3e5d488080f4be62726f9c8e9bb8ac1b3dd70a4b4129dd8a4ecae7ffb3bd1fa1526acc4f87c39113fb6d7adf", + "01f42d8b01ad0b8bdfaf4326abfe0927083856f93db5223606db86eb05f2455ad9401895607e155e263b879fe5efd66b67869fb9bd77bf3684838c4891f09579aa010ea8ffc259c3c07187f5e4c21e5bbfe4542874ac61176ca2a40d2f1b2a47eb4864ce228579d90d32ee579b37a987aa44d279efb380f9f775b5079bc9da89f2b1c543871065a67b26cce07439ee099c6f41ac7ff5e5de48d7c906946e97583a0cdfad26c15137c70791" + }, + { /* i=3265 cDividendBits=3819 cDivisorBits=253 */ + "04ba469c948ad4b1c6e420e4911e55754d34d54bdda73a2ee5eff29fa0772588fce1aa62b7e0d9f822d4270d0f880dbc9211b0472f0b281dfbdbc7b82dfe0f6c7216a013c211cb07305e83c48b7ad6e2812dee5d624a75272bfc5caebbaf01fe191e5e48f6ea2b293cceaf5dae77c3c1bbba734cc537e00e6f16e75dbd1f629c48c9aa031175d1770f9a0588bf4612656e3a13e46f7edf92267a5ce2e1cb544f2d5af3be110bef5c2740b6f12a8e7b8845469b9ec25e1145c88dfa885ec61162f814ca1813c4489678de17cdca0502a55f4dc57706924f8dbd1d8a1a40548e314f4cbb6607a95ef61d637c5f2d2063c77f304a88ecce06e718a55cfdd1eb7d3b0fad33bd1c263c4b04d4972803a16716fdae63046750f83a6e3e7870c76b19a6b33c1e21694062f6e80faefcaff7b384eb526b4c9bf2742ad1765540db85c3b6c4f897c467e9494868125ea328022cdc5990ba991f505e2ae1d6e593181a56d65093855fcc12efb206038891ef32510f16f15f1ef2f228ec50072dba4f986953e45278420daaf1f8ba1452a93c3128951755223cfb8b299daf442f8c35cc514e7a0716d3250d37feecff25355a204135edf6d79716f922e9d897bcd1ac1054a7b3b2fbfdb06cbc614ce585155c94e67cb3b0380007d78ebae8165614b71d", + "021da4d157098b270e639566b8ea16a9b7cb75bbe25e88757a02d660af3aefec", + "023c04e3eefcff7ff2e3a4d491c167f6cef9b1023d982d26f114b3c105e026d8c9d684e384cdd8091bc5ba295cf58aaad5883b82ddf9dcb402159fd64558c338dda9f3303c0190e022db0e0d6c86b63bb1b97a498133738c217532e9610431e592e6a89b181c6fc47dfd0e9034ce27cd16c74b48bb82447dd7f0106018d81df4190f4a81fd3dcce4c0608fce79793b871488607fcf3652d3364aa3b3eaf89f63bf6b45e212d3970cc87f876d647375c01c3ac9d9462a8842b7d97cc2ba028762c1ad7544bdc7a9b6e7478d0923baa050816f704234c23d2d6653e52c8a1d5940ddd116e5e79e9c2b636c09d68539a37ebe2ef2c4d97fecbac3be025975871aa1d87c054a265969e9efde5c058ad76d3aa5c2893f0b592ebfb5b964b34f2e9851f93434339347f4da799cba3399b871e3b06bc0c8e669f19b67ae95e364a106371496b48991dd059e1cc485ed47ad906d3d0998df7fff74e86512c8e0aa9c4aed5ce2ff60abe1b97cb02c43fcc39ca18fa788664912c6b8de3c89c900beccea2bfa685e19799bb15c312fb50d2ce4c36561fcfabefef2ad897b3fe3b84265ccba50082cd80773c2ea1e23a885e63990f4c75c80b8ec27f4325f5c090e7f6d63", + "01cc73a3f96c6ad6e8e12bc4c72398d0eab71fc2c2db1b4a0eef6f6e8c0e72d9" + }, + { /* i=3266 cDividendBits=3025 cDivisorBits=876 */ + "01a04ae957aabd5a1aecff2ab346a5e7531aa88403dfdf61a7c63900cb271aea0ec96688f40540f968da47e08734feea23a3832feae0eab5e1cf2c2431ad44e7ba4deffca879b7ac5359e64a99da10df2c3519a4ec20a8bd82e9eb22989c038eb86a39adda8582f8f1c51540f3d33e65d7f7c84247a7ebb94923e5653208d420d7f6c6ce96e762fcc0a3bc6d20812fbafe8c31d6720102d1e5b68f20373ae70274cc48799e329c227a5475509b4708cf1ff0c35621a28dd452b83ec3a3148796c2b8bd0735f1d4c706f0c2909e3e6774ecb99d3766c93c7e0c8e97ae7636cd2c75535e7a2b2ac71749d7aa695047de13a7ed04f3d52b61cfff28e0f943e1ed349e73baef98d255054ca9291e62013b80cbef2939f0042ec22be607dd6bbb9ba2e8e0fec9be8f024633261df6f8bb3c4550b804c8d62e7b330099493d91b319fd469c83b5a14e3e475fa4b6a187b5a0d1667f60f3c90b2e91fcfa086fc6151dc71e60f8af3ac3fff0b64507393042cd7273f889ba1fcbe2e82b304a", + "0dd0d702b12a12de3bd33b43643c7f99f850a8be1a18846dc1e81a13b95e7c452b837a0864a2dd2d40880ed4d1eaecbcbcc55519312699066d4e7f20496589c457240b3395d64bb8b33c10067f93c74a3efa5da29e02d49b914a74729cf529ce9d62928009dd911c6ddd040498c5", + "1e21b57b4dcad8dff0418d2bf593170c2bcd05f79ae26de5c325f27045a25b968522e6aed3d6f632da532cb2e2bca7b37f818caf5eb366ab5bd5fec74fc2fe51a1262064578d5c1e1755a9a766743b58e8e11ed4fea87f10c9c91c60dc73b938d4a51f2a55cbde51916daefaff779dbd1f2930b8ed30d0d39b1c36b15b1fc5e9b014a3a87294c563b298e8eabdafb5856b68c30febe32f5aeb3e1d7aa939a2631b691d97ae2ec9597d7563f4f692d68d0acf95d7e18daded6adeddfa4e5c95adccb62b48115c33a2f39cc1bd5a01d439e29d0e9c5fc9bc23e49456e0ad9c17092e30f2b4d42b21fb2f802ab66c14a6d475afefbc0af695cda2d1499ba9f6e04a141ef192de5e50770a57eecfc6", + "0505be74bf89c456faebb1dce29f5e488d3ec57ff275b0bed34e8f0d6b30c0d560cb1100705d99e1433d7ca416dd8ce7eb827eb5d4451304bd5517256fb2baa04d9410071ab995b528ee2b8b5bc0f99b013ab1e1eb3c27ab8d87b101659b52d86dcec1d9cf32e2b445cf1aefbcec" + }, + { /* i=3267 cDividendBits=343 cDivisorBits=154 */ + "5179b9d25e025b9eaf9bf4f30d891baabac9c116d3a273968ddb05fc4b009a0494c548dc9fad9c58db54d6", + "da748224d7570c7f84c4016e87e8dccaa80f12", + "5f7a72d88cf455e5c6558d6f5129fd6696f956df5b586110", + "aeae17afa85e6f1b6145f1bafee3376c7491b6" + }, + { /* i=3268 cDividendBits=2963 cDivisorBits=793 */ + "02171d728333ceb4eceaadd72c6892bcb441f8b80aa708a6753160145b22de47be3bcfd3e84264fcb7603d60f29f8e8f5d149c276ff81a5211f6e13313bc15661eab6dd0323fbc63a90cf8402aca5f0822f7d81e0a9dd808ac5d9a9922e86b10801eb1b7fd39ce4ba9a1bb1a779cf2c2e2ca7e03bf5285c3db5ae5f87366427735d5ca3ce452094493fe78e4d54e622e4af417fe4773725a1840335173ab474ff4d0ff47687da56280dfec2ce8a32407d392081d1e522f413145a60cce34c1b35b53abf88dbd0389a0c5bdc375a50c72eb407a81f36934d247946ed337b746e16b6a0748d67e84f4fac805af6192dc06f9e2aca21c8befa817e88dcfbbddf9af03aaa124c0ae2b8fc4b0e9ea0044f7b7eeef2a626a36b50747f4f47f7ffeb0945a19314524581ede366309f333da67ce8dc8d428c386f6d1f391a2b52ff146d494674fd0eff5ced0191dcc82bafe73d2bf6bac930ece790d7f56fe5d21dcd6fb6cb6cdd49ca6f457965f37414712184accce84", + "3896a86b7f2712103f5b0adcabd66f09a14a7375380fcd916119db5b5e6e203453697a1001e7a08efddac4886c2ab51a2c232337c2c44c478e1fa863d798a78acd6b4fb1a85d435b812ae62f2138a14671530aac2c65bf45e2959e4e088ac138dac9eb", + "0974ccbfa4b4e2434fc000e81c1e85c008d40e9a65384815016d1921f83ac0ed14f4b798f07f9cb242e86cdd2c11fabfb22ef75b08a28fad5760b54b0d1e5c591544cdabbc6205701fc45fdd0304be90e1daae9b607f7afdd12f45d5ccd45675a2835486673628c6b7ca1d0177320b5b71f0a56d305ae682a5c8853f2e487d485892c4912bb0af1d77db5661b2c579fe37c77c2dc0142b08205d95a7723ff5ff3f151f74808c41e76d00913434d5576ce0a7615c36a6416de0bbde567828e53c56e865c2e66f64e49dff966d3f6558f1720cdce1e4f26153b8a680dc4f11996f305da24701c3b5cc88c9756c7307a847fbb369dca6c8289d44fc1d26cbdeb471863d9825186ba3c27e1246a2cf4d134b", + "2e6e901cde291cdc8781f009006d5f9d218143cddba58c5817dff8a41d4e2e0eae9fce1ab7573e699bef9aac4a2d34c729e768a5bb5e3a99cda8d93db265ea681eb786e8a71a526a47b16f3d15880c65a7fa1548c29638a6e2719c1f33087aa50835ab" + }, + { /* i=3269 cDividendBits=638 cDivisorBits=448 */ + "3c298055a8b21363edd618cb7d02fcfaf10849d2f755941126c2b24ddc92a863b6c4d26dda417df0eaadc2b3c42932d6117ebff37737e9b749f9d6723f644a8ef07fbf3cc576b8c19dd5ab8ae091bd14", + "af5ddb2d4a3e98e56929ad034c964d7565178c1696923651ea4342d6e5306ea4d736f554407b6146cb7c704bf64802a9ae96619d2a48fd53", + "57d31812b6751d28a9c6dd469710f04144c95d7f736298eb", + "8d09dc9f33d3732265f4af4d580618859513c20b571ef5df8d819fc1817a98292059b88f7d03c0663c4833af1b7ce5e9a743f23f7661e9e3" + }, + { /* i=3270 cDividendBits=724 cDivisorBits=250 */ + "0a3e2553b7e5302c9d1bb28b73de7528c87e4c40486884114de5477c7847f9e9f64d33e70ea5c5780ebf9a2f55d21c116c174419e403ac60a21a08b75e5039e2ab6b5165c2b9fdd9e9d1f5a1cafa228011c38447eb1baf5d293a58", + "02052da1cb3e217b9717644caaa4fc8692b97917838011e0a82da860434ac5de", + "0511f21e9fd457782ed221c0e09d57f33be0a0734984b0cfc37e9061f22ab361a64056d4257f8341d4ec0396ecd309d921b2e6ec48b694cce05d9f4c", + "7ba8b628e73ede33ea6da57583e4f8a238655e3f06515fa321711bd06b9a70" + }, + { /* i=3271 cDividendBits=1414 cDivisorBits=813 */ + "06ca2d09f4892466672f38fa9cfdea86899041d1c8ba3a6ae9a1bf96a56f38845f36c7f6bccbcd6e44651e500a028f32ded8ede58a7591298df7c1a2fae64ff4fd92bd6bd4373d9d726ea23017152f979c525d07e8337ad3596add5c4920205195c3eabef2d4e311c043dfaa1b81b58ebf9a037f5af98502bcab3390c9ba0c422cd3050da1212ff66b7fdd6d068782d2902bc2c74c45739bfac8d95f48f9ef1e9224e24632466f2f67cb5ac647bca99599", + "090ad80f05bedb97e124359d42c36bdac2f9d75978391e539c81d4dd09562d7bca8218d949d325a948f2ce3bb628741a533991fd102a1588f4ef2d3192b7e513da295f3c4c13416e567694a73db704315c6c7a90009bcfa2441987047a7097d7621966696133", + "c039d69c2f0e7105767000f2785c063222d6a641d920bd7fa340b531f765f3433f8d60cc138f3c58a6cf849b84a8a993c0890caee2103284e6db00395a5cc30da71bd0ae8ceeabe6c7137b", + "029dc02292780815566c46c55f13e63ce84117a82ef62a31065996f78c4d27fa7879426f0a1da7d7703f531cbfb2cbbde76c4f5725e2ef18bfe07bd28bb010779f51921211b9b6c508dba1f6b8502a2d85100ddface8d9dee09ed68a552a9430212a552c1918" + }, + { /* i=3272 cDividendBits=3347 cDivisorBits=2142 */ + "03a7ab8b2fbe77ba5d62caaf1759e3cd2ff69955926c5e019e9a4aac46c93fa98f7b3cf9d8dab44c7474cedd2f375b28abc4272145e4b0f26da5ff406fde4243d295822c186e8b126a1d51ccad74af9cfcabdb122ae79aea43a010d97b0e74c937df53e1e6438201d957767b71cedecc7589c62f21c2993ca8c21f8036eeffcf2075759250d1a85229f6123867973d3adbd5b2ad025a229c1b52b770a2063b846a6a59302944ba840b34c5998bb9bf92dcf72e0d15a02e3ade439fc4eb8e94c0d59cd34cdfe322d3f32fe151081279312ab3719dca0a2cacd12c168ad517cada6c13d9e5cdad638b90cd103af5f9ee9cfeffb24285ec35bcf54551c7d82abe2c6257446da4e5bcd9da489da31c313eab842c07786665af87167c51dca17cbf5fe5d7683e57831bbf973821d7c087eeff784bbd96bfc1620379023a170b3ea0b683f656dc09be7efc4b22aac50debaba182135a916a2df0e67549bc1c9c679cb5b3f417eb29668948e2ad6eb7299f4dc5fc3f8186c9b02f1db4a2629c74768e1ce0c325d5608c74967d87c1e1481798eb61406bd99f3c3559e22e0d419225b09e91d86c", + "1438b14de3cd57f61b0bd243193133d88499a8480d3ab570f604a65611fb153dee34e3c6fdcea06556d1e21cfd4ff5745edb5e4770ffcc367b2594dec2a6e2ff177a08f199ed74ba756d13165c0b23dc2ed04be4384a7d0af67141a0f8f210014e166ac4fba7b62deef681bacc3b59752a0842d59ecb8d02de671e1166d5ea83fafa8fc1a525baab72c8363b25878e8d8d2358c0f2c5af9dacf5415c74b3f7e335323f22bc175adaa3dc576609df9a4d67f3408989e9c52007b337593ff70d3ac4f3a2d3e393547e2207c597e36bc7239782746c20b5bf6d6a81112738829af13469b357f3b31667ff6907e49b93945ff464b69acf5a71ebabff855aa9caa4b3698d5547a1f3ccdfd1723bae", + "2e456a645bdda2c7fe1a9126bcf9cc5a85b1ca323864fdd4b3bd49c7bd1cec6789b9aba09fbd5bb89384b232343f851a3754862359609607557c1433ad7a7ea8c5f00cc3b72e4ee05f6232346bab7ab861d256180ab607f50f25092075025d4ffc9ed43da709be29943556e334e0bd273e9ca8a307b2c351fc06c798dbca3351e75e05b6041e44ae0ee4c68499a1c0bf707a179d898cb5", + "0c1bb8d625bdb16ca208747d120d3407cb1c44fc27af0f1ef02a2f3e93bb6c55ec74a6e76aabf70e6cc0e1e8605146f406865ac3d208c3275090fc56642c923ae3ef2d19d352e2d0fb3b4417562aa4e3100f04af0602006d1a8514bccdf74f99e90e45573732ebe52ed52a102ae3eb82c91d4e2e198f615a1f7f88db5c8945c7ca0531c633622eb4bc381d82d7ef8c347c1338dc4216f598816bd7e740cf53a5ef213167a031053d4499ec3baba8979282ab382305ab3cfa27678cbb3df06ab62ed87850db1cb1eed39caada79fe504230e60dc2118bc409257f761b2970bb7a89dfc458a9ab5d9f1ed268a361ea15334aa1778fa7c76b908790ab87508a555b30bc66cb551977896a0c7e66" + }, + { /* i=3273 cDividendBits=3103 cDivisorBits=135 */ + "26997673d3a11aef713cea5b3727d4cb75cdd873b94270fe6a2078d61abac3e1acc7adcd296162cfa13cb78cfcb4d28bd667636f653718f46c9cbfb763b425ba3c74266634a2bac11c571b6d2224edfa7c2074e6198ebd355b9278c2997306c24a1ade043a570befdcf29e10ca992829c6f80bf4432258f4e0d214223dfc433d24f02c83045c8a69edfde809e09a2c43f77fa724cec0dc24a1aa08f3653dbf926b534e4168e991ceafe3603a92fbb30dc767952fe81f990bcd8fa88e5729b737f513f3b8d0902f2b089e56765724f6d10fbe8d88bb5adb4528c4fe621c543058de0ef5d5d62aed8c88cd72cc302066af094d5cbb69a44d0e783c2d2beaa0d4e575823e6618e2a6645631c4c3ef445a5ed4de89cef68bfe4d0e5d37000a7c1f24a4a321fa40df0bfa7b2a203cad57c4234dc1412fe27d32f1bd168e0b6a29fabb42ae318edd216f1595de5367e7a5412b33dc4b238232e8790a7e24c49947557aac14647e3a5e6e3aa555f01867ffe71e584251245f5c4f8eab87f24aafe8aa66cf9584f3", + "68e3907620923c7abfd44e3a6d04c46806", + "5e3575df6b4afc9fde3e6d201734ab2bafe90efaaf42760fb2f2ae4c82818e9a6c95db61b7dbb2dfedaae53401161484a70d65d57d6a3d7296db41ea2841f68e918c78fc1f31e656d69c3a50e769faa67068a410d135b7334a54b5a96ab98afbc30996905984029654510feefd5a2b3ccdda978ba904ad96e6217dad15eca6f7f59e38296fb81917a8b38f35cbd971ae94175eacea8734424e269c223ce7f8fb6b10c8c3dd9eaaac01d1628ef14047679b004a4a69449070ea3c788dfea4784ed231566b422cc124de99464775b714b6ee9403646216d93e58db043a4b213600e40638ac47e623d76ec8cd90a08728308ce1f2d7ed7a41cdeff3c426ec2115a81be32f2c5304ea67486991eb9aa74b9913e9af19f704c31da8efbdc35033e4457c04fed03ffd2a35521c7be347d835fd752dec1336767d8e8f48e28077826aa0c33b43aee3e183a24b26ec79e3609a3f949f4cd4305e4fcb4a2820b6070fb9f2f8a666a26700bb319898a4d8d41a4d0adb4eb1", + "54e8ee7506e100703b3bf667af72f5c4cd" + }, + { /* i=3274 cDividendBits=771 cDivisorBits=280 */ + "037fb8882f6cdf350d642e1324138ef4700dcd0d7c4704d3b28454b87d2dff307e597abbde5fd5578e5e57c320d89607cab080184515fe2f83e20fcedb96201709d1f7a8f7ae62e235863b9e3922ed9b5b5bfa7bdf72087c6019f0a12edb5e7ac1", + "23774db158ef0dd7c1deb69c4f5b1b6eeefa3c0846bde13bcb52ab6f5c8f56c1590ae2", + "19417834161411ae0d9879f7511a574867ee79b6f4dba5de4021d4152933d79517540e78f497b62cb438b2e480276346ec9042de9b8436b5254fcf9008cb", + "1c1e7b301cb144b2ffc725d413417183c1b4c0db00c28fdada627c391579b7e44bc98b" + }, + { /* i=3275 cDividendBits=3713 cDivisorBits=29 */ + "011a90ce4b0427a437c7c05ed4d084074af75d209221d88ce23387eff2f4f2fdb283739f1fd983ac601fc38feb848a8e5c128d71624bd28fa957582e58ef4c42c1ab5e2ed91f43b4785be4fd96b44d307e2eb298addb63da21501120fc3d95661de6a40887ebd10d12e4570ef7c0c58b3664725bbb3e6e3e93f8fa0d9e7abcd45588ff2cbabf1b780d0dfe3a7e7af8cf9a3b03cb6853aaeca1964855ba2f18e743fd884366dbc9fcb7655ad26874f6f40fe074171919544a9dd87eb90a67440939a87d7dd86952adfefd970e1a911302749d21336743caf2d85ff9ee9d08f14a95e5bb784b3046375683f845bd9443486cfbaf8b2c7bfa0920be374f0565e7539c1e4038bce3859ba1144dbef24981c9e82f820c255c71464afd2fccc4e012016a6d5387b080841c5e89e0f8846b21e3a139492fcbc6fd1dd9d31836dd6e6939bfcb9887a2c67de8890e9a8ce4094eb3986d276978c7586bde3f19daa3e33e2b8bbb38cf2952c464c188a5a3613a2ad9a54c43514e901aa0db28b41af2c7b9c3143141cc8d6736ce3577fd04cc04d2afb3977d3dacc4393c174d9f81994ff4af4813fa176eebc0c18cfed67b2a6900e929241b3479baf02fb724587b6402892488858739ce0d310f629002dd1c7540e003", + "0cf8facd", + "15c821e1d3292501fb27fb59026a35688a5f18be7195ad52343cec4ee9b0646b3225d871abcfcbf101db95f9b1a08cfad2193f1cb7ffc25b1f215f99e5963171d2175a965bac65aee1e7463bacf0005b6c58f35bae0849b0c997e1406f71804fa165d558c106838ed20196c41b1b2516c7d3955daec0e456b5c77cb3f7aea359b09fe9a5fa35ea421732f10dd300ab691f3c762836badadbee48c0d67c3d0e5a9bcd3a77167d955d38babd31d307dcde72fee4dd6a658ee67985aaa7eb75caffb2d4fb09c525bb3d9a902d1297323bdc7293918ba3ec43891dc365db7535acab6f455c6934effb7efa42de3aae30214e55f042e8b197c524adeb92ca84982fb72ed106cb7aa188ff39656c0636967a3c52b7213d3e61cc2b96adefe745a3256c474bbc590ddbb3cb916f431d83f9dc23de25bf13f7a1cbeaba42e1576d3b07aebabdefdab6bbf00367f2c2e5ce8f2fe967c6cc472daaef9ab55ed4e164723e3100e44b736aff9301a4ba7bb598cf83ac25c2be86c04dcbf17af468502175e47bf6c3d2193f2d19a4f576c369915e5170d9c268353ad15ccd7ee4520b7081fa640bc797d5448aa4e0ec0a79d33437a7f115ae9252d1573e37a2a2f0320a6f421f5f3974504e15031c468c0dde21", + "0741c596" + }, + { /* i=3276 cDividendBits=2288 cDivisorBits=2089 */ + "05f323fd242290896bba2a5121e02fc4142c866ff632a71aa0b898edcf7365b75235150a21854dcb88113787d0fe36faf7e26e2e8bd407e60d0324bff5697d385a62ce7524b9b0a366df0f9cbbc13311a5ac86131202f3715439aa77c4a962b6c0c0b3e2c909dc4f110ea3e732a1583daa837aafa14834af855dcc0c258e0f15f07fd6a48cee6dc9d9dcb417991a528419d91cbbe5c3b022123d214645f7084ee5e055e9b197db5c994a57557e09df841d70273fa9d1bc7d724f748f6dc7459a21699c212c8f1f4ca3b1222c8d79ee9a509e2c08a29087686ac218e152fae1810c9f780507bd236c1f6ad4f9912d750bb0440d51c918c134ca635c935aa97b5c0cc94ac927804355e788a97ef7142649b232c83a7ca7a8d64b30d4fef8ad", + "014483e3c6478bb10b5e6a67b765def97352a9e86cbd3f128627b1bc91bd80445a11601e422b335037dae18cd663ed233967efb126ae51193296a22aa258b321f29e3652738d62b102033b29960eec2dea3f0ad4dff180214e831349485023fb812c67ebc6bd17cc6aed7dd904c00a6e646cd29c31b40eb2c152cb18b223a5a5aca625bc7028f9922dcb29cbdc05e7d33e9f2c16b0de4d84f740627fd860603fea20b9e3fcefaf002e5ee1d9834f8f5d51b546214d0e681ffad18086637bbe080d42670d8a8cd8acd294343dc49044fefa4eb6be551953829426132589af981854d15e60d86fb340df36d1a2a04e7f518aab77da0ec2bcd26e5867db0f7f3c82d99dd54cceeb", + "04b18ef99946a6ce404d2d116acd67aa808aa571a7fdc15a50", + "c608938886ba053f936601abaef2eb140d660313d64baea1b014d9432e9b69ab1d9d396425d666e00acacdb22c8dad1d2542e15cb45b89263c9724af0cfc2a56a819a00fef7bc408c8f372ccf0fc1f29564fe3e9da806678042fc872bc038ea1b527664c1a745dbb69962b40965e7628fae3a2e59813faa927fbae56cd5d2f33aba054d7d2d854776bf4b36c7ec282c5caa30c4a3d96bfc049b42c1fb0dbafbae6761262ed2f454a5ee281f0f5eef47af6b3118666650676fbbc61d27074c5a280a3218642660ab2162ced60992ae67850e0613f8c231b549e52fc01f939318f21488bb902ec56069ce0118dfadcc7cb8791b4275e02fa4dc5381bf33e9bbe5f2dee14b13d" + }, + { /* i=3277 cDividendBits=3292 cDivisorBits=2918 */ + "0d8fbfa01b1bb81fbb7bfa3f2808bd9388eeed8a20d0e11e53d28018d3393c58c07818a1ccb5612fc76ffac1a3705c443dc65ab83348e5404f1dc88296649899a962ac5ecbea84f08c4427089b7af16d9d14071b715819adcaa0876bd7e43373e8a3aeb4e532cb7f5dbf20756b856ba06ae3f9532ca8846bb329c3bb3e93dc308dafa1e16b6c1cede4f1bd2dbe0e31cdc05fc14827342ca513991eb2a89e5692a9e4e5492a63fcb379dc23b58cc872a1fdae6db4d84f96ba73a89fd7517f67409e0dc998dbc5c3e13c9dcc8edeedae06fb14cca2115b1e5f776cfe360530d9c9b10e454bd337dd736e01a60947cf6573558e88aebaba2f4e599e21994946bc750027a7e5f5689ec01877b956a96521fa203398b2a5e05cbd6793ff3132f4c2b11cc0de5657d39f69032c20d902be9a61e3fbddabbced1e635bc9c2574e77d2be8378057a149f0b2e14640a43139a29dd6b902b180c13aea9127cd4b0bd35abf37c04136fed3a5575d1bf4f0e805ff9eccadb72a386c181618619ba8dece7ee8cb0bc761923e6191d417ae53ceebc0e8069d75f3fa37f10025a408e4d", + "079c451b3d49e7f94ca6eaee114e0cf058d2a872c795bb15a72735ac14b28dc1a9df36c2011d86278a3ad90f65be1dbdd5e984bb19e036c777278b96a4d91c4b555a515a736d084f982584281315f97c3d5a2b6d7a50bcd5e53549f9e36e68c72358d377e842947f6144006f5c776afc99ddf548e5b7c516697036aa88b3abaf35d5fa3556e4f487070529d7920140e785414b3d2677d72e663a61090ce8b088cee1f55f133ed4a5cff2389cb0c1196a32abab431fbada1b863fa48640d3cd4beb80dd75409a31d812190cf0226df6f8b4fceeeafa61bfe0b2e6eac04a088a876db5eef7435db84691d43fe54711656fa432ae9c9a2fc00418715d22d38f2819fca0cccec228a0cead9dc8a34ea8b43f607449afde91b5b1e0402bfe20fc5274508bf49779b2eeb63cd94a6125ed035ec832180a606e36bc84986a5dd2091620b0a6a23cc5103d7e2b7724aadf7f720027d58678d7375366a5a120a0a9c04d63e6b96f7689ae3c54efbaa8050b", + "01c82ed8f6132415cfa81cb710e86ad04e21fb4418fbfcf22ae8ad29852bde99569b1f58bc8ca1d45c534514e471f6f2", + "0282ccdb9337e54d0ae55a1c502a044be01e5cb0e5c64e30283660408680d841c965a19275b59e11bba0a5af54856f26887bfa6482f279509a80cb7d6ab420064d00fb32638b635243209ad12974f81e26ffedd82cc59cba49eb0469a4add3f85c7df91bae08611f3a9bcae1a75c26369686e532bc5fa08db3736fd470a0a2497158eeacb4b67dc043bdb7935a253ff803d1875f7ee697822f58891bac169efbb179d40f8eb6c2274f52d17708d60149e49a17e205f09d1999c1dad9493f77600cda3f8016421c1beb40c6d9296c2d8c1d8cb93aa73308004594cbbf83530b727bb3b1ab2eb06b5739c1dc47b1678ee46207ab571292d1ccc52b4b600d8b67d2c61a55595386956e1406728c881d8fd591bc2a795bf62a828487e69ea688b19ef3f32c3bbcb84525a01ccfb6e80129d8c9474ad4eb2ed994af7c86f4d2fd8672640b6aa64639ba3a706196fa085571d6c9540d829f0fbb7032b7035620c3159a576be020f47fbc03826cb837e7" + }, + { /* i=3278 cDividendBits=47 cDivisorBits=16 */ + "6d37d018243e", + "588f", + "013bb89739", + "1367" + }, + { /* i=3279 cDividendBits=2281 cDivisorBits=1785 */ + "809c88bee0e5597febcbc0506c9f9d21bed115d06b33701f887c737a9c2e32a118cbe824e24db2681c26141b1d4b430d87444e8fe0c8bad8f09f1301e4b23f9f617d45e181d3f30ba79477752848875626f552550a31b70a6f8f1560ad9c714c66ce627444e71db3276d51001e18fb4767a46d30c2ab3148b610e108379799d1706063d96059c62c05d922385d19f75b5297b7ce5e2819794ef8345cb423a2d2bd1fa4df040cff913b38f6f05fecfc25c643f0a96839b4b1e90a9d98a594215aa101012d67cd3cdde55687dbfad8040766382754c4230bfcb2174117c9127d0be527057c9d7440f4c8216768a4cf0c0ab9d2961b9af7c68f430cb6d57b846cfc76666561f8bd1ae1fb862907f4447fc6c4947110a4c31a3a19c974905e", + "cbc201b1167c898df3534dcd7da1af9f8079348e2713fc1144796afeacc3cfab32e718fae0d931e7eb162e8001d26f76d6c8c3a43a2f0418df84413f8482f2c4d9f15985466b2d40c57d646d9ee8047566c4b241c02d910d32ddcbf23382aece956ce61610b88a9340dbe165b36bf9c2a3701102ce480b4a37ed78eeaf989446e0b9f72fc184a1d28b437009be84d89e14f5fa8d1ec392ff31b825e3112105b79a5c849f66532eb206a9a54b38057b491f6e6c11264b32ca9b9f4abf214f13d69c2a237b13a0d16c24309053d236216f73c53de7630be8d277e22a97b69f75", + "a1962ab98d5c9f30a7d2841692edd82080fd57b94a207c92cb24afb62e2be7eba55b53dc449f25d9c343545356b8f01729b07b612c6101a28efe4667ee90", + "306b7b022ff042503c8e3056183693523022a7688cf8bbac097a09cb25fa89b48c60d7d4c8af494ac8d968d500abae5de0e3fbca2109fd7323906103b5eda0fe01097d43247eebf1cecff899a150a1db2aa03726a4f1cc0c757672dc8be7596280d8d53450ab4a05293e836f4d60402d106ee7978446353f4f950800001a3a46a853451f1b0612858aa87f246c0c36f098af42c13e1acce8fe6325767105f11e8b186abaf47873b771020bb9d6d3b4819f15d03732cca3de16312c32ead4d5988048a816ec585f7a9fb3ae75ef35789ddcdec3c58d2e00161952ee8469188e" + }, + { /* i=3280 cDividendBits=1274 cDivisorBits=732 */ + "01e66e5f1f79f007a339a1f7e70be0f393f520f26bc826e17f8f591ff30a0d1d2def210586f9b5cbc4f7661cb9f4764598e1e5f055c15ed8ef481aa4243ecf6ec49794f8f9977b03ea88036490a445b5053ad4179eda00194ee690db23d20b4c1dcd28a6d20cad4bafd2571cd36f3fe4ca58f030b1f7403c61b99c31fb012160b9b531abf4a97a0c14e33e969c1d55f55aece29a7854cd35f636e794410c80af", + "0ccc3b043e6ccefc51a153e246804adcbaceed79dbb70d1ecb1dad35ca4d136748598311b6cbc40cf3d729b13e7ceec86301689711106b12bce9dca55eb71e09ab004376e0ddc91fb724e8081d944a1c0c9f25605edb35b14262b892", + "26025054366e930b15eba3e7845d7358018f091b0a2fc486e923629cdfa047652c683fad091eb5f39cc04183165a5bea3d660383514479ac0d3f4ee5763a4abe246d04ac", + "090da1d624b37d98f08fea1ac335f400ec6c37b2b3649f0b19f042d46fe192bf4297216e165ed324c32d2abd7d9ba781bb9fee3e22c0097c7edc5b1fcdc2b671f84b1a40292375b17d8a612510265da219ffbf4d1895b918fdac3697" + }, + { /* i=3281 cDividendBits=2562 cDivisorBits=854 */ + "0356370223bc74e5d61115f7d346f15c0f184fb0601b56abb072b70465a848cf309a48a799c286ad611e9c8813d2c4c453cd123f50d2660623d5b4c422f86b2f6f23d9d597e922ca88c5aa5c1c2a8fabb2c5b1ae39f16ffce87c5fee5a4d981eccb07a55a1153e2cdb185361ad3cd6fa98e031faf3cb22c6db3028395c3e4d2c7388b19c43a32d7455cac29f3c60e2b463e95d79255543e4e301ad2fa2ee5a7e32f8c976b04a7803b2dd1edc2029afd73989325f6b13441950d90943539693e934cbb966afef13af9bf416dba4c437a84f4f296ced5b0fb2d6dd00c1e2795b8c3eb9bcab888f2ce3beaac166f892b9d678be5e0dd81614272097c01716114d2b0a6ad44a69f9523da4aca1283236df16838115a86745e2d52a331d9ea07b7a2a1fc31848042b28311427140e29d0859065445fac12e1b6e986b26f8d82ca1a830e", + "31d91290bd8fa38370f18d959bb45eeefeb518297b0d02601e485895d2278e27642b6c357692253475fd9395b84aee3ad06ab499feb2be2a9c55171e7ffbc5bb2edec7bdaef6522c2a76d0d27b38323b3963aa97b2cb86dcd5d576af2dd870d4b16a5c6a66c42228eead05", + "1122ebf576d2d18f8fe9254e60e2510cbc15fdf1b0848206c9fcb786d31afb65c4c654beedc705cdcf0d58a20a96cad1242d4855c760c31b2db3b053c0abd7a9124734b662dc1c42f6dbfe55fcbee1e1a52b351ffabd81e72c664cc843322583d6712a7e0168f8b2cc6cd07a591e6ef1edf7b38bf878116337c8ce58463875e92d11b2eec88c003a021bf3da1e70e015e17f0895264fdf9eab66fc72d5b3981fc2f023c430efa93fc5294467e7d382c7609b5d2afe0cbc212d66ea8d9b6fc3b7b99759592bdb9f89895d9266dc91fc4c49dd69812678", + "1f6806cf72fa2b42e30f99f29de0b74448da854501f06ca8511e24411679d8f43ffcb34e5175bb8d4211e71ec5bdc38ac64fbf32d93906fc15df110682ad90362812cc172732f8c0cf3a7bb74d21a0ad0893929be1a43cd767cd16be4f31c63f9b1e040a483bdef005aab6" + }, + { /* i=3282 cDividendBits=1340 cDivisorBits=204 */ + "085ca12d12c02312ad2cd7d8df2421bffd9507d561f8b2e368f2f129914983dd754b024686a145eaa1643dc50c862c00ff8847053183ffbeaf11c03b9735eb23bdf18733a9d801f7c27fea0aa7ec7c8d0b271f29dfe84cb9d6235a845849ca06e93af43b3f33493512910aa76045cc952ab78da91850c5dbb0a7774e9d7d283f58394f7974fea47803966a8a3920d25710fc1c0570ecab41bad2bf83d84884b1eabaee263f8ed52b", + "0734068a1a404726292ef07e46fd5d0f923ad915ad997e72826a", + "01292d33531e2b60aa31c188c10095d1626d7bb02b445fbdc09e5dae4737652336fd4921cb9f7fdb346acd246370ccb42f7af1eed0a4653f71811650bbddf49c21f118989517b1f43f76f121437d20089f22781584d02a090c919819beb4462655ce233a97e08af774c70538290bb7269c8acba247163f67e891f95b834afd5a68300f1b632b99779b44a13f5635a7", + "05dc760d71c1735b11561d85c00824dd31ee8c21129d283fd005" + }, + { /* i=3283 cDividendBits=1136 cDivisorBits=145 */ + "1244cb0a2602f2b50f3738ee8c9f1bf0f561007b8a6eb989f8f58331cb6696a19c5219458be370175d4252ba44a2c6b43323234cd962b18a11bd4f7b0409ae8ed9043788eb99069e49c8b1a9ed29596b164306e6b0c6c5c703aa6e3b83a227c0fe4b94ee9e9bb826d092062c31fbe9bd11cdec1f34fe1e5368624847d5d3b630b1e844ce5978ee5887669a27f8b2", + "01f6f9ede53101c28f53c1a868c84273e902ba", + "094c595033a11a0366115b75f36c4cf2d0a43dfba3c6bfad2a7c1bd20906aec1960dc243ce26424d9d715ed9d5b27432c8d3a5b6dd5efb316ef4603013d1d8ee3c35452de5e5271761a4c07aef65c417c2b269f0d41b1adec92232cc8a916c0687ef0d8aee7bae9a49e3c75e4992d609326d5eae916dc9dc6872ae77", + "a7dc1681cf4ab4cc78ad2e439d039229483c" + }, + { /* i=3284 cDividendBits=427 cDivisorBits=288 */ + "0429fd289b174bf58be4522bc18abfa638bcf1be062e2e4065001b18afa18c06e5be7441c21ff3d24f9e812b66226566b0b7db410e6f", + "5b88edd1e98aab9a6eae7fc67dced23ff9c01743127e8ccfe4e39743666a2507f960d9", + "0ba54d6d6746d30aab33e0cd38c3ba244fc700", + "2853a1dbdadb0698ed0339d4f96ea5bd701c9d8fe5b18664e5df401de9b7479a015f6f" + }, + { /* i=3285 cDividendBits=3729 cDivisorBits=3174 */ + "0130a021f4887af7f4d14d20c3a71aa192f6ab0c35eefae74c2c3b91f8e9373ba60ef83402588298cff58f3069e193eaba4edbb776abd1253b998601c768fea250e91d10f4e257e15be644e67aecf124de8fb17365ed60b9e8ad62933a12ddcd4e18156ca5bba946464d1e1d02347b9cfb0582981ce0b20522e5efad5fec6fd8475cf954db2a83bcffbd842745238d46ba0544a6203e9d415e0cd63db23d81af8e4f4f841a4aac030a7c085da4c941dfd2d34d131f608349e6a8f951800cc03cda993d294e178866af87fba22ea7db07e8546ac817c08bc255538437823670aa0f08ec1e4af6184faaea5d00260e29f42de98c9e949a60aa6d620719d4488577570b856e656446f56f403a5eb0cb319a695af7a156f2d61439896da1a11a1e5575bc3b521398631a92eecda437d641f0fa1b0b603b5828d56defc359650fc92193964b4ee30d3104b9c27cc685220068c45c33a369673fb7c5feba1e8aa17c1ef5d5cfea40f5ef0a14892a9a364ea7ccc8fecf4e9e63b0e8cd02bff690113d0c82e43d64907b13f7e40e2664de0a98ba8904aeb8fc223216eda6fc4bea7aa2c40e7a8e48b9f49b7544805f3a3664830de944c6bbaa0233d84d3ba2124aa4c306672ad94c2a51fc626248aa26ef000974ffb3aa", + "1a2c39cf4eb365f5cfbcc8bdacab79561ff355a6d9c03b99bb8f864e8474adc733c31154d6565d7ccb27d03c1a659e2768228d00c558dad0a9d5d77cef4e1a2844ed06a94b4f3e8db73741012eb41d936be892709d5437649c75dc9b37ac757c011d5ded116a1776f878d3c28c72df69b9065ee6cd0ed75b1dafe2bb670bd82522ceb91907a877e89106aadf4e463ced6a52a72dc65d441e8215de446f1d1d63f1e1fea754f0d614597cac2be9f3bcf4e16bfe72a1a77d6dddb64070bd03c823748ef9ce75bdfc76a0a10f95c7cf19fe8da9c6ead5d3825abe7f45f880dd23325ef66409d5994c443f191eabcb54db1e44e386d46b17f813af3a036f67244223a6e93cda4f294c5015f40f3e1192b8cb1ee26789d6ace6ddfd08b5ba4d507f4d3a4934a223d3fe297acb8e4b3ea81fe0b5da85a9c4d0a894750b6d4cb5f9a13ceecb4cee8d870d6a3ddad5ee0e6ff32fa7cb4773b5cc294a40918afb0d7fef35fa55b005174155a465d7ba7f3a13d50ef99f3003b96a8e2e10117927ec5c56bbe1091749000c1659ec6a165f86", + "0ba39780a5b9935d1acc91996c137c30178548ed81ac19548eaa3593cb1146fc98edbb42e46e7b5cf0f3fa62e64057e2394512803feae2d39e53074ab196088b8e2dd05cfd1d", + "128fca7cad81a7c8aed74d2492d3382968af38f2f26168c426cdadc5ae5e98741cab81ffca3fa554bc9ce45c7c937f7ef85667f0106125f6fb868f54994cf22ccf21c31a7825e74fea9b90ed075b22e48de0288d5d9bb408abcf8fcf5804c6f49ced64449686476c691f35f9d3aa27f8aa8d15d15c1b2a6c3a1d57465169388d7426ac7665bba1022a47147caa5dba68968644038a1ec5d9d1c4cb9ce4f79e72c12f1f2c7059c302695048edbc7b89596893b8c292dcf454ac9bc7c178bd87f01ebaa3d180cf0867b4966630eab1a718d5c73f9d89040ada8657d5872586266b794fbad219b2d459d3b1e831672fa921ed058b0a2197c87ac1129a5e6f15bb2ab7321b0f55d04015dea6be018ad8716c6464370bfe1bd2e81ef636625ce33b5e5d08d4da18c893a1728e2d334aebf067439ded97b148553075b012475f503ee63aae9e8b49b57f1ff0108e798aed8146662a1c5f951fe71aafb23004e0e1e503cb20531504a5b4020248414bb565dbbd3cb57dfaece5def295cda56cc961403bc56d6299912db2bf341fe7737c" + }, + { /* i=3286 cDividendBits=3702 cDivisorBits=2848 */ + "2000d836a12f7379c91d61e1a8c169a889fd6271f4356e10c960b5bbca863fa38425be6174fd0967cc21315f7c4c327e369e251366fb57bfb7a1a70d5e7fdb68b36b5a7f6c0ce9582eade0566ee2ff751e6e30569549f031f27b891e10ec6a580136b51a467b085827d2fec0307b5b34b4f8db718017b99a8bd4a5f118e3517b45bb093bc7af1f4048f9efc9ccdcebdc42cb713d7ef0408a30b13820cb0e1a8ea8cb4a07304a6e7a7808574e6eed5e0c4265922ae5f05c9d07fab485908e6be1ab511c99b8da7210ee678101c0fb2688437f45686ee72e5e7054d5693d0c6e9622c1a4a227c6e542d258c0c0bda8a87f276c69fb3b1d28f1efeaa27772d8a1e45bbfbcbd31ebee89efd2429bca8e222cd7ba017f3b9a46a21fc9286b82ac576e15c47db91d96925ccbc57ca4e5b754feae62a934f2fd30b8e7cd2de5d038d8fdd85f582772ef49ebe8d1fb129b79850818c4aa7bdb43137362dfdbe4e79adfe76fd4aad3552a674109890be853bfd739c0c63e80a46982c31e6569777f3984d6d77d1892dd00d601299036387373fce41a372efbda55aaa10e329cd854e0811fed55eb6b6ee879707da51d490ef901feea3ea5f96b976acec858cc9f2b414cacd26782242c252978e6f364c111782d", + "c5e7d62ae85972d9d12162b792e7b88b8a9f966f299ea472d61c2b2c0e14a5a67c0bf6af3a69aa11591c8bf297a0014780d613c90c8c4572c4851d531693c504713482a79493e8a57f20c47c69d7ae74af5c93eb032d3172a7abf4af5123668896b0fe4b202c4e6d63bc068bb98f028c7fdaac4859c5cb5a0bd99485edfe096e953e4a0bd4b1f292f37e0b6127c8f289afd567ee472bff3acbde9d2405c53d1eee3cd335d8bbe574f5222c8e68a57ff1a7a87425f7c5112c937bae51e9d9f46458f01a88043f9de5808395b05a69d975542c3bd9821f8c9697b6d17cf31e43b25a6988873e8ed20554eb6c8cbbed6062a90d3a77a11fa197bd1c97d66b7fb02866dfae6b5cf156cc9735006a3762c6d689be3fb78315c2ae8310db2821b8449ccf25d6c663b67cfa717839a30c976fc3651035818a746a5f00e759197b00b270cab7d7043adb8ae7c7e61c6ac848714c4d363c9ae45b7914d9bb832150ba45799ae85f2b", + "2965d221bd78ef23e5cb900705086df08f910e4f64566d096b5feab00dc3c09b0a4526341eeb65593336bb78f100f25053bbcf84f9608da6da058f9fddb426301f49a2bccb3e18ebcb6daac5d634ab43c31ebd10ccdf65cafb754969ee015ab56566ededcd137778c9cfcb", + "a987a009677566f9171aaedf55d6c83fcbd4a679be12bcd630d1993cbc5de9c5b954d884f10da43f69d6123aea8b788d617a98dcc8b3bbf512ad262c577e80739fec62b51fb5241fa22ce9ac730fe15782e9ece32613076618058cde7dfc0164ee312d0f5ee7d24518162b72ed1ee40875b2712c0bab04785602e3bebce868ef636c17988eb0a80040c6650cec971b9b5d29eea70caa889b9fdfd3185569dcb2b1cb022e7a7997950bd6fb668f6aee4ba429c44771ba85ffa53124451bfde79f30a5d1446ca16e5c7d99447dc2ea43015a442af95e1912e2bba576b7873f1ca9739c9499846c25b6e0a2dad37efd4d83ab666402e9792483228a84237496ec006dfe23d682b21c461d1e44626a0107c18e6ca55b7806278dc4030b84d79c54f449b2734553b8a56748bf2457b165dddb219239b71d403bb8d8cdd27ce59e95db563b9c89ea269189da84351157ae59c36264c289fcf75ae1c7e8cba204698ca925173c14" + }, + { /* i=3287 cDividendBits=3004 cDivisorBits=1892 */ + "011dd343813cf382e82066bc53931759f9615cd47d9e59214a94e9c3aa2c9fa8ce178d39c734bfd03571b67d7303f322d40ef18925729cf12b979b3bec71fd65771db89190520f0465555d71669d1f46d54e5b3e93b5eb4a711ab615a5ef41cf1cc6c7a9e1d4661c00fd1fa091fe4aa1cb82991b6c09c2ae28cb842d67e796a40e67a6617ed628373b47019cf5ee84a6f9d469e9d62fc54d629f5533bd4454d6b7fab7960f7eef82b57ede027f3807adf7b0fc0c89ac3667bc034329c090184123857ba64030f53b8b2ce8b9e1f429b4363ded726a813567ffd1d498ee5cf84f8e27f5ecaf50e0607099c859fc4d3128f36089a0c60796ccde9a998e76a581d8e8f47e1ac61c0b6d32b07659d956eea54a1f4e3d780cc55caaed1d6352f2de8160a5ef4b4eed4e6e799de483e949b0aadc98696831b39f2ac22b24683988ab3263c69bda6e93a0d7cfab72ed7faf35e940d764b773aab0e709080c4c1beb495fad9570843e0dc1673cd73a214e17605915cf01b06d76f8c5", + "058449c2652d8494f13c67b7e13c409989c6f9865599c6492725efb9813ab00bd1582411bc5a7bfb919ba57bfd6378d58658c2de851b08ff6af88b063d8e315377c41216b34310dc58115cd0127f9f181233d6e0069a15a604a55abc3a28586934d7ef5096f940c2390bcf4ce6e6f8ae6016bb49a58922584f37be8cce6adae44c3fb5964adfb9f5f57091fba71d247529f8c3f6e7da07cf5419bf7baf4ddfd67453bbfdac87661f74a38c7e1cf07250bbe695d83d109d3b23623823a15797916fdace3e120f52d22c794e1a52cca5c02d6fe51d601b6f5d0e673aa54ed73f6bd7f358df9be818bbfd769dd143", + "33cf78bf799d55360426bc390d556bddea37c91708ec7be9a6f1bc83a738f02ea59f2ad967127acf7e25b315589f00abb5940b53377ffc6ef10c0cd85c3eb5a3268c4e709a24754b720026156ead72239fe5603e16fc055ca35096f44e57e119632cd5857e47234f06957356cd2bda55cf9bf8c7307c41d775729d82163aa731433438d87e5a358dc2e160", + "0302106920b684eb2f391ca8d5b34604a317ba5fb3604e8ec5d657e350f19bf60069cd0a0895f17496901cc1258c5eb5d07b3f7634239cce0e28a7c2792a9098c7a818610f3048206fcf8f5ae98c9eaa46d1a2d888adaebf89e6d622c240d8850a54de182926ef93a86c10cf5d3263f21c03ceb4626dddaf8e2afbe16ceba6349dc77ebee921fce5a77cbdb627eb192330c986814f83a6865e94f8eeea478d773939e75a067d64096daf045c671e4e0571b98df166cb7cffc3c0ecc5b9df1f30f61e84169477d57fcbad891171a54940362e02f66b5e799aeeaf62c9ae3b41dd7de2a40888adae0ca9c1969ca5" + }, + { /* i=3288 cDividendBits=551 cDivisorBits=420 */ + "3fa06981d199450ea7132611b171fa8f279755629f04d1c1bfc0499713b2655719c1ff047137be036a6b605ddf780ccb31db7068ac50fa21a87687a2224528aacb5a13c3fa", + "029ecec93ea46bc8cac717d1445e0208760e86d189f2799e63189cdd13da5010ffac128a28b83c7223e8f9fcbc39642617ea2422de", + "1848234b359b8c2464765ee3798c715142", + "01e8c17a51a0c27461f4b2b7ced1746c8486bc999ac1f0aabd4b68698d48810bb8c99568663ed1c5d5d766236e0d2bd598c1bc88be" + }, + { /* i=3289 cDividendBits=1112 cDivisorBits=635 */ + "d5ffe8144bd4787b57a728099119bb3726260674ebb51cff2f550a7a889dd5ca05fd8c2f994320fa3c2e8811ee34f23c643a697143c26f4dd5e8a84537b4fa20497f83252ed86292f999291b8393a0f22fbbf0e4c6701f419bb1fcf5e06538a655caac6dde4f038a5ed54eb62778a4c68aff38c5e2221fa5cbffa6602c4e06363ddfbad0e30ddc9b19efd9", + "f409ce79a0cfc195bcd531e2e0d6b2f61ed2aec9d6fddede94ab924e2d362efe878041ceacd964f19e1bf753043293728d3072c9feb00edc7b4825850fb766dcbc54f6bd4cce8c3948c8b6b85d3e04", + "e07d2cb6ea37139eece7edb497177de7d1eeb30a859558dc2c80d887f8e3af549dfbbf0605a39bccb7a165b7ef5bf256653aeba2b1ffc5ebfe55b115", + "b1ef6da54ead6f745f0df3fc4b4ddbfb4a43b318594b35d18cecec27c065ceae3c9cfd5261eba3ac4f2a043d1c0220ebf761b9581369de144f2d664a2360b5faafdd951f26db6a533f853d743f1585" + }, + { /* i=3290 cDividendBits=4018 cDivisorBits=3366 */ + "93da571b82bea7b0e97ca6e2e2aa1e7783c51b366c9ddb106cfad67b00963fd344a08d41942d740ec3d92d60b24f0c82617f139b82ea9ef0cc289b100472b7dd1fc31203f24eebc20c3c06081c03c67a29266c83e24a22cbdc3e7a4f9e859edbf9f79b54c7457740b2f08eeba2e1caca6ef7532d73c88c632b901ff1dac36de01c365347394a23f338c2815ff668330dfcc87be672628a5059be3ce0eafad4c631ec7b5bf1eadc372df26a5220da437d9fe4de12f308105c5c367bd86b8ebde9f4e47b0d5829e8c6c6f7926426ddc6245dca77f1d0b02fc256aef240999c99ac9ad632c0962fc764ab9a1fe57c61398def4ca786ba63d9f5b36f5bde7e64e1ca8f598ddc4edb58b3fd6f27857d256c08e8b22873098198c42d030a08bc1fd7edb5b36f9cfad5d73de216cacb76d11c6f31c73c156a9e3fc9fa7c06bd829b0824e4cee41dbfaf844a6eb941ec156d4f43eecc35a06207b362cb833a5e93a6e62406cd4c39ff2e8df29caee5279de5f197c7e390d36198c9832d3f5889c5036295ca64d9f5fce2fd962db5defbb790337b274d89796878b88e500a7b82d151d28aa7bd377a7d3cdb14ae7183e225efb8518e0ef210fbab386fffdbbe876cd7d12923e26e7897ca85197276811f5223889f32c70bda2c7c169722798db4c55060b99d72cb330281401b5db5e1879647f9d18bfcd7d409b0", + "108a8b46cc00dab22fa4908b991d2d8d2d4e9f3210290645ed157dbe8faa007c9642f5e69f172fa4f4cd33e642409264cbaf172d92ac8d290a412e7e0bd5babfe8096575e85f9fdfe20d6a8cb3e25f789524b78516c9d18755706811aefda9721f17d6da4686ac94220d10c82f069865a2be4aac7402302ccab79b1b4bf4468e8fbbf16ba33ba5621f95accf828b46f4da82fb3ba7ed818507e5b6c9616aaebab305e5957c76094ae69d09da2f99f8451d271df09ab8f2c0c5efc4f15f6d6c42019dece556d1901b88fc3f7df517bfee57db820bca7022d3beb1e190bd7e03b35ec21a8d8e891e1563b6ecbee15a7154a30f36294187b654dfb8ba271bee47743ba9c006b1b581103414a03e03a91d78bc2bd5b14a33605baf96f84c115ffb68ea31b3ebe85e0be8f15834554ff74efa8cff6ba79257d64542d844e8246ae96fb624dfea37a25a110627853931cd9c53ec081bd1617134b2ac5bab50edfff996821804cd1ee1f0be6ab11850aa05134f9dd2ddec3f8b05b333244af4b7f6aeb58395dc8b3fae66ea33376df335e740055d359a192b66bda9b2ddbdadf129a766d805d866d9", + "08f03f7f591b9587477338ec8142800bc4098a03d96edee7df5d352d674433375f28bf832917dd96191da8fe33ee4547bc644e400b953c7c0b104624baa7fbe16a6675e73dcf630a413341c470c91b597ebd", + "0feae11cd50359c785ec553728fb5f59d470dfc4ddddd42cc616d9778e636ef8415e779024ecfd8f64cb9465d7790f3adae531d8371ab1f32b7c9308df7308d3494886be5a97bda94d92ca6a4a029d25a0bb24d221c7fde3340f8f662a8723ad2f4e3b8bd093a2fcabc1df9e84443a95cbd526cb77b6df2d25372a8bdb9c309ad1f7b385744dd215d3227830dce17eb1e5ee54db97eed1853a5c4f687e9d69352b6cf65101100b7cbf55becfa8259d5ee61cec8f33211fa8a7ccaf8eafd6a0a380885ff1811edcb5e6760dad7cd6b00687d8ecb5aac74b162d7726bc0da68670853451adf8dab6176a02bd29093d566e663f02d7839390724f9a6e57910391f4f951f72f83c402c66cdf98a9f6c2f1948eef36beab7b79580eceaca02d2d423b795173ace784ae189c6e1acdb66f1f4c4135dd03ece59320a8d402571754cd2f4a782f15a4bb262735b389d155265aa1e881d30b74360c1618832cab4c080513c898f2a9a87c9e50ffd882da98d26dea4454c319c9ed493a192c6c3ac8a8d376161144f0da84627edd51b3ad659c1363047b3d077d10495a2a54a3117e2fd8c02a60004d7b" + }, + { /* i=3291 cDividendBits=1303 cDivisorBits=175 */ + "4e274ca73b92409d4ab4576d7086332ef9a28799a7531e26f262274c238f1f2c64eb84b77f26f4dad2577a205660efd03543745a053c3dea6a9e008c07a664cde4d9411c2c20bf3fedbd3aee9fa2c9b4442a7b07c3ba104b6873a97d00552955b63ad406424a6a391a3d450b43fcc2e2be22704c89b2b589acdb7933daa7ad42927f14a9d1c9fe6e883ad910863acf54a1d9104c671ef8e5b3905811473d94456f1f5e", + "7b59d2d3590bf0f557c24615cc36fdc521416cc300e9", + "a232c274b9b1dc2f7eca2bcb602ee02f9e42742f6c09531955b178557e6ba62e0a13b730350ad0f6209f04785467a22b9f5fe07207e234f2e4faa14d20cedefa02d87e453524c4bc084951e341049d994db1ab0c40b85c6785e685627009301afdc032f855bdd3478a3fb46a671d1d81ad789cc78d6b3176d27443ec75682510f82e04a6fc6a367dbe9d8b6d6b", + "1decee36eaea93a262eb9e94d058472d648e650788fb" + }, + { /* i=3292 cDividendBits=2902 cDivisorBits=2312 */ + "3606ed4b2d89f56ab8db648120aa2e14339ee96356026ca622212c70c01e1505bb2e7962eca6dd415302ff8fe45e72020ec34f3a7d32d6a1a5ee4d73ae753cd68b2fca861b8993da3ecde8cc1ab20740b0c7b17e79af0570d17d30a7aa2c39504ec4e72bd3c42f1471d73354b1c31b2a947e3c544b702493f598823f4281f1dee4f45dfe44f04beed461993f6631e79f3ec926b1f70307a1a846c18da2af45d5d839c3cdd43e8db85f390366239c27297009eaed958cf2375852c635f9f7a167e32d28713eab77a518ada46171c536da5b50e7ced9a98b0d9dc8ae2ae50e451f578bc20dde61a783b39d434005687efc6bd013c2296f100d0321439da5bb0230d1ee3c99ec7fc4519457fba9461039c60b0beb9db21564a36d336acc19d9f927146f41e36fc254c71b3cfa03d5f89ac76c96b7ff0656259bd7ec7f50450584f1c33783e217154a4cad4d079f38189f60231933879702d1040dd2bb2fce054a82d171fa64c26ef88c594cac", + "5afb13db4464a3c895433a2dfef8925616c91f54f489d307fc7322ce7f3d27837fb4a3d0409a2dfa62266fd11bcf81c3f14327aeec5b24144f379aeac1d40154e5b50a804553e75d65f3dab0d0dc9287fb4818af2db07d90c3a4e0ee14af64aa8d11fb216f4a927a60d3783e417765a8c32e8543cf0378dcd2b31be630f987c7f38b5b6174f07548319bcaa2fe44009d1293ff1b203eb949e7f119185a1d66ce677111a46c9a383e59fc42cd95cf7997b35f3e4bfa5adb289d747942c97dc2712939e2e6f779587834a986df329e8ec23ce0493f2219f1dfa6a36c1de5cf86fb3459630966ac489efc639e4550a8a62e5255fd7eb5ad66a2d9d7724bdc9bff5c7b3e7016690031e8ae9860d82bf81323d0bf29ea79429d0a13c393b3109d5e987c", + "980534561a1424a2dcd605fb6789bdce9f3b1d42585a409ba9e39140b1c19a50bb8f01792518f85c48e1b3997f6fa35b204aa7ddc6538cf110a1fe9aee6caf6aedff7a02a76466d03ec6", + "4e1033970ec0492b57393a6321cc9df280f4053e52d0c869e4323678a13e438e30bc850cf204f4a50a90c10a8ce099ff61e1200974ed428c8598d364c345d5d1059f4298e4b170dc47a02fa7ead54fc99bc4874dd4284a9dd9b1d617d1ae01bb209fb337c4e76dd43020590c4a9becc3fdc2f12747c7234c562ee566d7d8cf83d66cd49b25cf6379d0b8577834d7465fc0be1952b7f16cde4b2b0243fe1e25e181a456a4a09022da18c8c73057ad4612409905fab42cb802d97ee94f053aef4875a47d6ef6cf7be3abd9661f65f3987328f4e3ba31672e78e94fb0c3ca7893ef27487f4a22f83af028ab33530ad8739bb413f2b20805a5a59a09828c3c23655b1798888b7d4d547c6955a0e49ce8780bd73fa3ae02989053e6c78fe7f49f8154c4" + }, + { /* i=3293 cDividendBits=1920 cDivisorBits=1861 */ + "d158aea5f03a617530a8bc6c47e86f82792c2bafddb407ff30167d1076c4440ec8f4681006ddabca2baa437750f9f5caee36350494477761245bcfd464c00db52f8f0f0c037ef78dc235cf23ed3b9bd4b3a3819970a262f4a07becddaaf6cf746e3f74acca5c62001317fd1718736626156f4ab91686184fca90f1e4618ada3339db6311f38920d421fac39c2f30a8cf3c61c525936c907fdf4c5a599d494c767e8230a4b62e2994534fa7186816012256e6341f416561d053abd69ccb77d56250d1d9a596ba0cba3b837b9e9b052728649a19f364bd5dd1eb9260542096eac712fdb123dbc2cd3d2446f1c197ee4dd5", + "135b38bb3902a846ca2f4b9ce8d187a23be134b0478ab9de3c9bc139460a3aca032d11caccf7aaf63aa70c9c2567c88fee23f14b7fcb4a245a63159397f079d18ef8b8110382cebab59af20fe2dee230c586f0d2e87d7c815fe8c5335fa1dc3cef361c49d4341724dd2ed4d4d974cf2a67d3d00a42c768b1bf3f33dc1b52d341f812376b0086b9092c6e86adbc9d95dc2804114b134d8b270b4bf488e4ec6f966cc02512fd3be23c9d7d7d760054f95f18b33d9eb04f8a8541fc49a86c11dcab8b018b32edc217add4a0f0e3668cb61326663b8dfb351b4bed23b160cbdaaed9c0e0a7e03d53a76a6c", + "0ad0bdc4f989c945", + "0dbb0d90c848af31503921913b7da4c37cd38dc89b14b8517bd2faff1e7d50cd77f831cd31f9518e5c488a7e427b8e8ad1d9024e155f25f469ddc987f5103f1e291c670385afecbf4cbbc69833fd86c1e34fa597b24929354cf9115bb85fe53febcecc34989a0338210c68d3fb8ee72c5a0e808a97b64d47e56f292ede5834eb5cfdd98be9e20bfee18982ac9f106ca3a0fa6d9e0fb7ad20663a47764a4a695ad0add111056b6973ec246706dc1843cca234d7bbb07f8f955ad5ebc0e4e3bc4da96278ef2d06b0ab4e39a77df4800b098c84edc3a7338d82aa20433d6ef6c0b104cb4888c09973d2b9" + }, + { /* i=3294 cDividendBits=1643 cDivisorBits=1601 */ + "0748cb888d3ecc28748beed9def55f5b8d174e26cb6b69122931ab026a5dabf5aed133798a0f268b9e8303aa21f40cd9b78f1eb2bc830bc5b228b13b88a0d148f4442142c502c27e29315d71d36f2ffbd3e1fac814b15a52355372b83698fc3080926bc2091f47c682d2e49a7cdce707e313c14f5d0d49c33264c9739b07a2cecc72a3457ed09b87c9eac89a2a220cdf390cc1f68b89793445f7118a9a8206f5b5c7797e041e7ba2ba58cca302bea742cd79aafcf143e04c5237f498d612d82d769a3835d3daea43605da4b78af1", + "01265bb52720120055c58cc4fa1b2991aa47f6d54aaa5da2daa5ff3e97e43dd627e94e212ea971bab06a5417f532ca1467e7fe58aac6b06401fe04075ea2061d80f4e9c41a3bbefffe8ca44f94dc96323c9b4cbd6113fc0c42a1700b3f6a50784ee112308dbe471b956698f8513eb869193da2a7851e34589d2af1be37a498337b742dc234ed34c183e2107473ef317bf2ad2ae9683cafc48b1b1b6ee4fc0ffeafaa53c94d1ef0ec15e9c9e14464826f102fbc770bcfc3dc60760fbb850edd3f83d69c7b2d3e3314f4", + "0655ca7f14ee", + "290bbf5cf94d83d7a75f40a97fe907f3bb8d6f068c90d55344c58f6525a4d251f05434188171fb68aa816d5803196b48a5f8ead5927f8ae61472afc1d4d4952b81447b927f329be3e50e2a570fb1e402e24721e44a87e40857420efe36a49258d65b222137a837ae1fed9167b49104fce120a931b7486d3455fadf04201685e3eb5674399f706fb5c3e359980986a4e6d182d13601abbb03eb055ffc68a441c2f2d033ab718e232461d3fe33e5fc3a43d1c9ac277ca90ddfb7369a0ea6f79437832f7c8de68b0019" + }, + { /* i=3295 cDividendBits=2361 cDivisorBits=315 */ + "0127cbbcbf94581a45beef6ef402f210fe488dbfe47f4233e4371bbdb84a063e9a29a8f34d58b4b52b5123e089e874951aa56d809abcea5708e63b731ea4835d4ae80c47e7781e3d598eade39c5488256efb578edc52d2bc4844ec9613350424c18911852436d94ee5ed172c75971f5b988a8114b0bc66bc006eb0486f8491613813512b4a90fb00f7ce05e2d9cea04b8abdcc59a0e242882c65aa9db6f81722e4c653f09c9ac82e375c9966a2e18f93a9664737b8b0106c4083238a612bcc0069708f636ad2a4950ab947cec53cfe132f84ec888fe73794783c23851039d918f653e6779e7da85593133a00e9382fed285c7f98e81a9818bdac4ab6adc11344cb80291ec0a754e41fbee4307dff8618ba07eecc7439e870c4005b965e3eed8d1ab393b3448a119c", + "075be61585fcdc21f4ee234034c184287084739af42ba319bc70a5c48a1b634845ed46abff73e799", + "2831fa5a7a9c08784109db0a960cbce9f95dded67da51d201f17d2bb8145453b7c4d72dafc260a9f107947fd641d7b1e2438e1d9a7fc92f4aace4029122a541929ffe5536175da47c2cd81d3029b0d8af6e2654aa12e0655c0fbfe199517948dfc468b299a854d4fd1012d4da3c56b0bc1023fd7a20529f157846c22808b1e7cf71dd1dec449e7cac689f3f56a01bed1b70899cc18ae6c25df8eeea08abf559c3a40bba247ca34f23eaec67251e7a6d7a404f27628a3f0fd7584933ecb7a9d9a25a91259745b94a51edc301aefeb126728feff2b9b1acbc7b7ee6bd13e27a002685eca8eb0082b0a04e74b2542ef0554b55ad79bc7511c1c3077d8edf761561e", + "022526a0ead8881b9490c8c256d5450e4aec4baca1c61eba76691370c3447db0d6ad63b6052e87ae" + }, + { /* i=3296 cDividendBits=3491 cDivisorBits=2941 */ + "0342b2c1f2bc0a42a7a68c5e8268531c93b4e4da28343c902908201df6e2565ecfce02d9839c88d5c459696de8bb147269a1ae344ca42708a63d29e18e9268dd0279f0109af1f60f903de7ea306aea02e04198bcca0edba04ece047089460c7345f253df50f4f83f4becc29903c28c1c09748da8877938675d3ee56118a8f8065ecf6e47130c0333a21ddc00a7ceac6182b5892cd4cd22926f622e3f90a481808e105b3907eef9a45221e916dba17143ceabb1bdad15c69112580b3d94da930ac57eb3a472f1d5e03f275cbe04893ca3e00e0117d09c8768caafc2dd89704da2420b6e7298e8b786710f8713177759f21c246abc703cd3c349906735aeedc328dc6d8c59bdb681213984cfe4e9c24f2ddc593467f6574a99e739ced45c55619e1a7ea5c09127d4ddc8fbe85a678aad92c9f4d4ad198a4a0684e3ad0d1bcbae2c5d7f1339d47e255ce7fce381c879fa71eb7c2bb8afddc0103f34649ad8ab717d22264b7f8a604c77218701bf68ac937115c777c180ab0e2fbb1d329802a40d19b72a5c26f34496185dca3ba5654659f504f2df063ff66951d4d6caf9bf8648138755f170336866a107fbc427089d93a0021ab9d9d4", + "078296794d9ecc71cd7cc17061896c2b7f354de377b183e83d5a137d0859d40a6252e970833de5030a330d82cf97dd12dd9fab95d8e85522e654cfc066d9bcb8d78f29c337f5343ac4665dc0e165b03cbe0216bcbf3a1034938d4805bbb6a5f6829d8207705ebff37a4551859edda1171fe4e8142cf96039006bdd2e219a2c22f04da756b035d73a0b8999c29be9d48b5839c79582764e4451a6082715c2e45e2b797575e0b5245bc08bcc27f473b9f7138914e0da3e52e56746e1732c5c5837313a1d15239f58920c4bec20b89bdfdb0e32a4f2fe7e69f1cc1e0f77918551fd2d796677db0dde49644774ca153003ef0a0cf7d60fd9ea8745d25b1d3e45b0d4f273badd8fd4729d9b63573f10175bb0e16935ada44db450486a17693bab6f5f2021a4efe13fc256c6cb53bb67e67fb3922d99f6c6f59390508e0bf8587384fc296c5381579fca26126b1f9d9b4b901440367b3f3ce3d1ed1707f543454d5b4cc8df0f09fc9ee6f06031fff66976728c", + "6f24af85b51cbc7941528aab0e9c6f5dce974876bab4922402e1254270f1ca78ca3da2f63a27e3fa3105265a4b264860d5e894f0f044e1f5edc7510db83f435b7c087c7ff6", + "014a3a7cbc3c106b2e773ac9961970ff4b1528b28ec668f30e70b919368d4925ac9486cab9d272b52a4aff5d50e41b1467d573368790066234bf36b697faa41101b5acb77ab05ac65edc2167931cc7e0daf03d7fb87201fb3c95cb3d65c7cd5214d934279fb3251213cdbc1c863003c520f34675cd7af7763d145f140ce607079ad94e801c66bcdef2b9c0a9c89610266f2805127c4746c43f7da0bec1357890c3db3947d598f99ac7adb20de65671b54f0da7c902afa22fc91ff69c2efb0fe3647d4dc5717ee2a1c2b3f53a6b8ad28d4dedf6ab599c07a5d9a44c65b4c6e4e2cf68bee901e8a8b005a9e0f13b1092f24dc879f5f4b2bfbdc0733a0bba6654547b65f36bdee8481c697ee580c8be379f79beb2098e74ca06907a09d9f592b36c7b47b6ce0b79efbff5f790b16c360bb6bf582d56ac98bf59b3101b8536f42e0aa655b5600e129f2fd4aa2f06974b679f31f3e16e1418f90f2e708384dab135e99d0225a1242b1073122a62232444534c" + }, + { /* i=3297 cDividendBits=3659 cDivisorBits=1101 */ + "03cc001bb01892e9716cc386f1277234ee054d840b13a051c18e3227ee4d8bc554368421273dbe049d5c175792c3f16d3890a536f68b09e85ecea439cc408f91ab28f661b6c40bbb2c3b8b95117db8970ff5d9278ced8cdda675fdf2c23c83a4cc7075c283374d3bf84652168214924c127ec2ae7b28e734b21e3f9fc6040d732d59890f3eb9c8517b1f0b9fff94a9fd729635b59209126702323267c8aa0fd45765061851e293be334fb78de4bc0b463ad928309b99096b7e2e4122d3f2996a4167e4b16f79829c8a3ec7ad4a0ac830cfc1dfa8cc9895145d87e7bab2638008d004c9e98f52ddcfaf2af6d1b8d6162d871a4236a107b9581bcff4da5aa1f70285e4746a2be9042a03094395924c49eddd39566cdc53cdd9130712d500a26e0e3d6994d3bb955949d3570f974d504bf7204b38fbfafcd49e45d6e47b2bad195bce7a30389460d52ea9ab5add0b4841eb8d7e1d39d2518ee4579827db79742787217ef48f0ae972347588dd75c39b7ae19bdfb791b71ff5b3935a1b7540bf6a9442346f3013f1416214beada1a6f6dd1aaf7aa42f0e42aa4128ce062a552c19a8b63a3017cd2070b04ea1e08e3648882e84640245369a6eb3e6757602c1e46b8958ede952f01d4c075fe3", + "1b1060162bc826e95a15d9708c01f4f99930b8129d7e05042cc5a27b862c0187fb2c41061d2cfaf402ecd6ab8dad3ac8c9d7dd5b5ccfc8cbb99b17b6cd4a7d328d71b319d0740f789a2ef28ae6f74df9eae02e11c6d05f9b17bd61315f6892cdc573dac989078e2d5e3b88059072b250f6458c3fbd1c8e4aef962ee7de92fafac03b10613fbd97fa9dec", + "23ea38c8f63dd4e51fbc7ac837ccd2eecbb29026a74401395e1ac70106b9495469b869785c8980f5893f0a2e72007ff0acdac4a9504981a2ccc99089ddad7541b6d8a6c1ec075c21aece5cb4cde3b529cdded0593a73d21cef5590a171b22863200254f906f715867ef785416b293775a1d3a29dddd1e26434b9bd8207363e912fc97ce298faec3ec3f244b0dfabe99f1e9954c4b0a238d7c383f7bf1e687e48d51d33e995f9a1987543720a3760cfcbd1f6e036531f1f65b0f70ba0bac27c0f850440e08e65109fd6f6fa4dc9f745b9c96d854651b367ec0519682056abb8fafdb9bb007c2c3f5d9f8a073845783a29b69ee51393500afac6528c4599d123808102caf8adcbd383c47f181c09e3caf664a7e38b9fb8a1253d68594f535bd549ab5a3a00f28939e899ea02a042e245b25de5658cb8dbdf22f0411915e4555fde", + "03822d99f3ce07230f5db5dd09394886c0a51cd0a69f2facca5dfd4f64257be63d3b14aaeb992e863c2ae5a20b68b2985886a244bcf9c18365e473c91fb2583d85bbc0f97da59d078e2c769d95b4ae0f6450cb7d9704bb797505066b36849f8edc6a38b7557b7876da3caabbafbb2f999819f1735859c370f1bbfffa70684dfdd7264f20a314e0bbd93b" + }, + { /* i=3298 cDividendBits=2277 cDivisorBits=375 */ + "091bffc5da99393dc598ed26cc3d765f564e3c7820c50bd65fcdf1028677ec9c6bdd0f77448ac3b920102e03f16ad1bab47eac14b59b786ee1923c884985263efca9db5b59bd0c897d186d182dbde67759b75410d0cb058a30229a01b6e177e42bc9f118643830bb1a2a7a0b34368ce2156af547a070fd6672b4c4dddf4ec37667412a0784c0b879f36ecfcd5eaddbaa5997cfd072dc95607ffcead9bcdffa980506de4af25ed9a6a8911dc90afaa1d1da48cc102259602925d0c256e85f2e2b505c99c4ad122bbc9c3e1aa366d7034211cd6fa53bf32b649da4ab891461c94a080ad4da121e5d677d1fb86560c44f75dfe2e22db0c652470ebc203d9838849d7d310cf4bdc4884d23c0e58eebd0cac367021ee4621bf7200d7209dd8d", + "565e901f4761ec23aaf5a84da3b306e51ea9c97da3952793b1c92bb2f5a01567d873646ae181466947f9aa8199c8b2", + "1b00137b1d756c1529a614b885f1665a4992a3c553d831535e0eda8250204fd9c307dc93746d841be5a41af8669d90376f77bf4a25d8ad9177047460abb941c0704e54a2f82501e5e2573bfd284e7e258c14f4d1e1cd61d5ac357f2e3d328ec771b3ec206a3a4618d4885c476e3733db2d176276960c40b3f33ac5e13dbc140dd9eb9f5b8f985883f25859bcc0c4b55cc03a7a437a5cddc99d46fcccd347188e1f1600109204139040d08644c0bb73608f4dc91576cbc58b57ff13ce5512a14cffad8c5b5511edf907a080aaba5752f1ad6254e0a977191eba520a8e40f24fd38f6c8e0ce6ed35eb707e46f7f520", + "231c5e47b068252fb6cb235c680495c249abe2e2c85bb052a710338f5d499a0ab0ac3ec47513fb672ffcd7c2006d4d" + }, + { /* i=3299 cDividendBits=2018 cDivisorBits=792 */ + "02a1abeb537cf6eb114e3eb8971ec05ce5c8d0ed74bb125d84c3f1a98caa059af781ad533042bf19642bdd5931157b55709b501f3d0861345692f4c37a8aff2b50ae2248c058decb9b84f45092ca64ae4ecfffa2946018ac3ef24695e0c3aa5b03d1e47e9c09639ee3d9a5f2be6cdc5d7a447e97c23f065b450d5b7d3a77d44ad7aa8a8ae076d8b50cc3b820c55aa9d80b5bbea6120b41080c66e9d9f347d8e891ff677a18ecc90ae946f9424908d701c377bc766440f3f390f5c88447f49fd7ab7f973a8657063777337fae891d1abced9eb63886cc0069bef818da1641f7b26ea05b96ac7a0ada8844dc5cc2009da8d2dd9ad99237bb693c118a8c49", + "2c0447132f080ec9b238a55098be465b5b1ad3c433be45b62fdb4e460c93eacc7341bb64dbc4b9b3704f8a7ef709d5a09a81449220603bd8b63553a79c365073c39e7aa0e6c4a775cfd7e5f80a6be73918d11f7aa989107b8b35f161362440d6186af8", + "0f4e0e41cb0f8ebdabe1351cfca1f911b498e6bbb16098806f27695cd76bd31922934e1d83f4849c49cdccec2e8bfa0483cd10169106fd5225cbeb4f93665262d1fccabc75cb0e11d8ee97725a4dc656f650c4c3424069cc5a0e703dcf961f71f32ba072400dd4a6018f197001f75b1e2369c8d33e642c3618536215f3070dafe0687ccb08ab96e30195d5f271cee51b19f79878cdbbacf193dd", + "149db81b18de325fa349889b7eba74ab6d93403d4ff0beb5d2bf933b358ad72130ac6bed3679423aad6b67ce69d94160d95fe676f744b918b60c3b2649c91a2ab6d9911f4092545019fcd2afdd5d3eb2187591e6d857ff61a61a002e8c324fe591cc31" + }, + { /* i=3300 cDividendBits=3876 cDivisorBits=3770 */ + "b33a8bee37770b6700a95844242d94f6731a2f75581f953ef56228c5c5872d3c7382d5220793831a9abaf52fdb6616699c86ff0300b2d10c13f4ba927aaaaed047b8fd6f8baa8e6be4f079953c5b9aee8111af1270d1d7453c8460a7fa8cd925dacfe604df671c98ab7335ad64c1dd9d4ccdc599ca75a50b3ae44d11936e547b96b6a8ae2daa2e02d4ba32498042626e891f9f24adeff3aa0547779d1a1a3c522c1a6c27c84aeb4836227ece4f02a1861ce785309d65821e55ed05395e92c98d445d2871e2c8c5477dfd9630ffb4f88954286a4552242e31bef2512d1d2f7861a5bd43e82a4873ce27e2a82fe88c576252f1ec4d6f237764a2e4671a9e3dfe3baab3cf64ca5a70bdb3b5b4f1c3539e2c937f73edd7c2ab4083cd3bb25171b9b53277973acf7b5ad7f3a37b671c22750234a590f6edffdbefe537cd62aec14a5a91baee556a55b946afd8ecc8c61b3c8445609155959d17224669abaffd0adc1fb3b0be640459be9aa4cc2856ef9148da315caeee5dbdbdb86dc0d362579c9f9409ad4d5ac4ce5ca0f1acc861bb800868ac7c4425ced2ce277c1512321d94fc6fba8dbf59bc9d3bbe6f3e02e9ef6023ca10543bdfbe29496f747bdcaa888d9cd1bebd0b9b13e22ea009717d5164262a676b142d48b1aa4b26bcd84a3e0f385c8404f863f9", + "027c23e1dfff4edfc66896349f76466053d7cea715ccdbb1913d517e40d77281f11917c06ee39512cd62845a8b06e2c7fa7d734570c47cf25050507be4dcc47011eafad2fefc5fce05981ca58e14a37e6a95317a8c8c33c982615b4e888e347e846fbeeb6e345a723c75212cacccc7b868b6c3873fc40d6d80ee9be019d8eb6620b3db193a69cca572c2c91b49bca3a85fa09bfbc0d0c569e484da08ee74275d8a4d685e0bbdb5397443b51f589975009845ccf08ad6f0f8709ad84eeda6270f475ec6a6c87671d9d100ce6645aa54a164abd9ed986cccdf92a6b2713544d349485021299a6cdbd582e1b56c7c86e1f1953c186ec478f11cb941f1c8958ee907b7510d0643ae1e14197d6823d6b5dcc7d3dc12112c16c0160bcb172d3e0ef4541cfb15cd132bd5e0f4f307040d01a640e767aa706ce299072b0f096f3dde065169aad5842c496c885d8150af89a6a86dcab28e6680987fb65bcfbdc643898ed0c5591650bd5e25ab7247984f566269c7a42537b0a8671c674f7e13c9e54e3f6a04982215c5e4c257251120064171193b058bf4c3d4ef5853ecda3dd3a85d10d43b8c842595c0fae6932e67acb8078030b1a468536e22c17aa4970fd92e0e33605d66d012496f83765a5cd7471cd7f06aa1248b5b24be306b", + "4820608ca8c04f5e63ca7264b3", + "01c2fe4c1bbb0463bc3cc98a6451bb3feed51d4e5a9de4018ab556ac3af78c73ca7e61981cb27fd9a7d06e3f9e3bf6817d432572e5192dccc36ec90f42b8cd431f3b6d95c3628c75fe8cdea1e828e87e3ae3473f5fa72f95e5c5c9878ae3e8e7913cd26c752c65c2f3b0a716899e11e66b5eae2e8dc6df05210331427fb32298d41748896385c94bea31f174e3b9053c4314ddcbd69e40b8812ad2e4d3f29d4762a9d7b1b1bf99a93fd88729f4460a8cdc5fd09514da3d6b3ec35d1c26009f861f717bf2b68b1276457a366a6edec6dbd215efc3b3b703af56498ae07a251e10d7cca99f3a991a90b25decbf0e89102fbb9a72cae4ce4b5636abc6a57a2519c07cff513658b5f8e1dc67e778ae4c6858cd36a76f23a27fbab4cb2201d696a53c900e2538c90194bea44176c5abe796728a76c7795164493b2e9925ebc64d4b05ef19001220e2a68a743cacb038a1c8e481db83aab346e4e57e3735706d741fb902d1419aaa2105dbbee62a2e4d337013568a5012ae4d0ccdf3a718b57f55e2bcfd5c6afe3ef65ea4c87824f4f0855692d5bb173d43e9f88962dd97b4b08d316a9545b04ad281619a3c16ba8f0c683cf31a04ff63c36dcff1eb355ddfe416b1a15a8a7005f3a0081ef03a06b944e84f8ae64ddf280b6cbd28" + }, + { /* i=3301 cDividendBits=1264 cDivisorBits=143 */ + "d6265444dd0f8587e3fff01e07f1ef2109344c83f479c9efc1135d7886f128135d40e7297858464098bdb993d502500d1e5530bc12c658111649f311f84d7753760a8f5b0140eb8e0854b42c4902a79a261123bdbb32487e47c75fe3e639497fe45860a15a610c0967e0627346e935b9850c7c7423c8a4ef6f78b0977de892d8c17e3cab44b859b4cb5a8a84cf615e0f4b82173ee8eedc881b1b96ce4c9d", + "657eed4b63ecfac2efac04da7e4ec395660e", + "021c24ce83fe315719d9d548bed1610d2149f70eaacf0e976d1d6a20da732b10f5561f9ce647912ddafac05c4eb8e52421466900ba272a9cf309eca904ffa4c0f68e1fea86f73693ab5c0b68d0befedaa002746a139487ced0362e13d2f55e4ca5a6f7715d00b298a92658a647d3efa15ed8a69fb7a2790f687fb96d363e26b588dbad55b574111b2e7d386a38", + "2496676b30ac45f403fb382b50ddc8ce2d8d" + }, + { /* i=3302 cDividendBits=648 cDivisorBits=485 */ + "09d921a841ff5cbf98ade7d8df7be4f9daaf3f09d65d6cb3fd7154ad005e9a4c11513758b1b16b666d45e296566959fd0a0763520cdfe30dfe6ffff1a75c9469bad9e915b6ef1aa86cd4bf69c72b4bbad6", + "07034090e396f02e85a5f8dff6dab65333bfb376f5e2146854c8898a9356e019a47cb4eeaa28e36312363ff176b1032b834a8ff8003fb3961dd68cc2d6", + "01678259e0b56be8a093a75a6d837f4f629fce25e0", + "01376d3b186c567eefc09665b90612b9a399b04702edba7e95f4a471e57228fe703a7f13a55393dd9fb8196f5719a132edccd37cf912790d7565c45196" + }, + { /* i=3303 cDividendBits=3240 cDivisorBits=348 */ + "64330d126f44ece6f4cb4b2d71838a08c00cc80aeb5f246ce98451dc3fcdbc6f411ef50089bb99ac5e7dc21a1a7b2cb56cb950b8a645d2db716d6925dce92b243fe5744868d93839eace70f9551ba6611de14f341f2e473aa752c8913f2f360120ccb12e92431c11a5729f31bb0e6cd2da6eb4ebee0ebbf165646e4205c4bbd7afe06976ba0857b7250576941deb00b4b36fbc94db93507e477753e14583b7190ebba2dad2fda2cdc54ce05fd37bec0a1f8115fbc453f99b0693bef04b7a8c172646edfd9adb38b781f628388224711a867ffcb681ae4d8db9c806c41baaf787f37f9a161888779cb9f63af739ca29e01aca9fe692d2d42982c5a6f500c446a2eae887a1b4d52d681a2e3855cf49274176a4cddca56ce9be38758742b060fa490b0248fbef1c7e6599a3e52014b9bd856882df5b02c9d18ea7e402ec251b4692d77f5eb117dce48d4e6f15dd7cf7c10c24e8ea43f6336f3a3b5083b910c05cd7c1fdc7ffb8b665293183063484088437f109979a600aca713c302a279e02c522362be76641b6f631f466bcdea8af5f597cb57a83e6", + "016ae24b49d4bd463241d788e3664ca86a43a57c69823f29e4782695dc88a88a132141eaa91ead35e2dda2fe", + "46afc83431fa0de9817b21bc5644f94497d14e1ca2a831c54756b8a6cef3462a7c3157f327c1b538deafae1a2bf04c56cc173e94a69ebaf9dc809ac79cd5dd03e33437c5288f59a9de29467c497a73e1eb8c6506972af715c3f19365d52a55746ba6484cc94e2edbd02ccef19c9e7c034975b86ed3681cdf325dc94564e795f843c68fb1be7c0faa000c26bf27dd35b2b036be01cf51bf857cc50b1eb2478e0fa1e02dc631c7fe87c3009cbbf6c86934d19c6462364b75f3083d595df65f3cc4f69a49ca8c0041e0e2e285d5ac9fd0e53907c5d1e2b7f9f9f12aa1d769c84b403438a9a333d64750a6fdce26d5936785ad16ee106a3a9a1d6b72eed9e14c50dde9e47c356f2b76d9f95bae04563b27a0a88dc1dce92a90a8abecb266b0544170063c3d336d8b56df8e9ac8960e4b207354cc08f836ae8258a6aed986a300e4c45860661e166d7000631b2faba7eb83fe6bf28064bc46e5bc0796be856ee935e13471d90d43957f7e0709", + "14cebaab0aaf5ec94b9ea40dd2e419f0f2fac7b949783917aed8ec7d7209b206f5d47c48eed49b7136d6f8" + }, + { /* i=3304 cDividendBits=1243 cDivisorBits=1133 */ + "0584143592014e4e70be9f11c7c6069c4015b62940c4acb037d68c85120d5fb7142aa3dd5332d684f464768c9fa75b8e818beaef1dcc579196ce5c0b110798ea49681ac378bc93eb2b559303b17b86d22d5d28808d94fd5d1c76e8ccd5df0305fb5463864be578dc940165fb8430acc1f47911fb11b8534310fa4eaa92eb66db8d55ea530d26c762e2000bfd836ca8de6564635f06e335f78b5be205", + "128a496bd1982c3074160f176d74fb49049fa8a21027aa5118ef120809c47db75bef50ae8949791c47d26c6bbcc009143efe40b2bd6d4e5fba1a94639f75a18a496e637a7c0a1a171b39f1000b3d9875b9cdc371c45d0e9996a41bcaf7a988621a94ad85a90bfa25b9702dba9e4b499875ec15acbf26a133001132ca161664b069a746a298cb7b3b0d49929d0995", + "4c29c4f7885ca062c08f40a71816", + "042cd8f3b521bcf0977761c68f9c51b56961d4e8a61f26b382cd6ca3b1901510fd869b51b24411e06ba61f120b4b6ec9ecdb8cc87e295d922a255288140d39add86528cdf73339f9bce22896b7e8adcd3a010ab6fb97c009547e748b0ddc3f5326da1f8a5a6a2277fc47e18d6904a32c677b8187a557307d3786c62208ec99bace8fe7828dc75ef92ad4b8c41737" + }, + { /* i=3305 cDividendBits=3302 cDivisorBits=3026 */ + "2fd6213913fac92312b45703e1e4fd6004a0ee8418d1b614e2ff9dec6fdb64ebe30243a8cbdeaa51ee48b79a255b63b06d208a1896fbf49a71d4c1eefe251e2cfbbf1824b381dacf63a90c62ac24c76c45538527b4c451381d39cd2145fd789b51a9621283f3b28fc50fb5f4ac437b17bb2e1c4375d433d1e5afcf98a855dde091366820fa2bdedb7a2e9f7c7d1395aae91735480c0d8e4d240d540fbe3301731a30fe6fb82cd0192715db8f749d49d601132fdbae02f8e5c475349bbbd3da6a7670d24587e28d01ddb7aec4baf6fd07d64b6f9e9ca88cfdbac07ec38cd22f90b03ac93bd12da4daef6cb20387efa33376e527e3cd9093958e788b47be37393b9f143154a98ef0b15f82339113bd6e5a88ac02418464eb74f2df3330f28f0af5f37be3ef19c8c79f850d1dfedd8072ac38dbd90eb4e7753c330d434fc77cf8825e8c1df7e8ff3db34cd05eafe7c34beb1f57fa4e9333c529e22d52161a04a2ef51bcbedd986f29fa0dbe2061e5565ce321ca04c7dfa2ed22ce3a01eea77751d496280d79e179cfa6513b7a9f582ccc55e5ac868958248c974be98d37fa", + "017c0b9dfe3d3760d426fb6397ebd40c9afc1220718a973999b8787d26e004086982f33c3b9016f4fd35cc70947d68a3e30c0529494d53661f84596e531d9d10aaf1b5f5041db6f31fe195e3728fbda4ed5d73fa9c4ecd5d2d8bbe5bb7f4af336b861714a0d91fd8aabded2572f8fbfdbad49ee443062875072596f411ca7ecc46d29701299b3391127d243af469416aef8cb941886e140a70fa073186163fd795ceb5593d9943f58d8dd4ad4d385d0be4ea509033a6daa67bbf5bd2c81ec8045c8ee42b43d09c36ed5eaa3b71e7a1167ed792d55a4af4a2ac7b93fbd0785203345cd53f13f1343c7af34b72d08b994c077a7bd38b8a52df5ef505fcc97b841bbfbcec9462d7014989efe5e78cbbc10a41f7b31bca2343e5187cd73c73e3218a9d44ff6e3e0361ce90df49ceaa9c5cf64d9f0a0cd5c3cfdd40ab9a07a0d15c3ee1a24cea2c974786bd3e2b73eef215b852a2288be47a58ae3b239fa7d036b8b6a2c439b4f4009f0e87d2cee8833875fd9782dc81328ab49293775a", + "20390a072f4eb5bf63d7cb4a51c8ea0925a80ef40b16b44fc3175906cc65cf96b2e5f6", + "010377812af0967ea6857c5d79fd51b0cb06b2754c55dd2679d668cd19516a4fb343140e449d1b6dc9cd345964e70a416b7cf038b02c50c052aadc87826a11c76e3503a58916238a90d8043c76b695425192cbc918cf32eab206875dc60bb63a792712cc67d83943c83c2501888d3bc388f7c2db4a935ebc70b786c30c7325eac88d5924fe70fb5f69d97c77d5207d0c09057616d9fd0d72e466a754d5dfb5cb5453e3028680cfa73ef371362e78b1d62fa38dc4fdc2ef80075ca83f3a81c34ed4c24e949f444e753df6cb8aa9ddb1ef92c9cb1e8aea6a461c747fbffbeffecc5487bd83cb3c5b310dab97b758a070e59840b4896e5c62461150446a20dfef8049233ff8b15db5d08cdcdb05bb6abd06c3d784fce680fe2c8e7de2fa96be098a405704ada723956747718701d61d7e08b46dc0dff4d129edbbde2e446c2d17ed18bfe512b192a94f483b37850c43e2f97f8d4ead01f2bece3d492eddfdb914a84d75b4c393efa1765ac4cd37103a763362db079d6b706b6d81057e" + }, + { /* i=3306 cDividendBits=2962 cDivisorBits=2321 */ + "02496af5e979da6f82a603cd9c04b472f2e9382eeb194add625d0823bb71985616f36fa36b9ca77897cfdea2d4d324dfa26557d4f8383a6891ffc3e4d7838a7e505feed4a93ab7888e32eb7f1de2ac347b04b426aa4bbd674c3f8b1ac09545f70a166d4c501f07b4793197d7c7bdd683980eebd7f2435d8664563161162b4b5b3440ed7d21379b92f9a7b80fd2b8ded1e358ef2557a4d01f934aa8e28faf7aaf14c7c5daa898e13edcadb0dd5fbf729dd130e92db165f8240e985b861aa8716ac4a42ce52b9fb623bd2f77f2c061ab64bd795453fea97aa8fd23f88652e02af03d69e3c4b27823f4f125a267c97942f8f62b8de48683c53724d319ca6e17bf1f476ccd61397bed4c0b5db7070f706fe106c02d687e4a3f26fb17234c49093df8ea9f98cefb1280f92903cdedc85d94df4a2bf19068873249ce36a2e9cb744f5e111f4025f38d2973d030dbd5748459afd24825b25d32c777ae5d6ba92b8aab22dcbfc1369238ee965a2b927554883be4986e57", + "0192d93474f14a66d9c35db52f10e44e39f46d29a7005553a2141bf0e00d250667c0f65779f0e8a1a1740f10ff1515b2b4a1e223c2ccbd4b7a41488385c21132d257b3d7a39fc4748e947e69764491c4d04c78ef1dcbe731396ba95dae8e041c4c1bc6c37f3f42742fed9b991622bae8eb53f85af4e68ed0ce39b1e05251a451fc2d8b12ff84b69424c5b1b8abb9a1d9944c3c724972abf796ce7bc40a1f2103f261ada46d50b354b85246c4e81efe29e992b08511dc5b5e94afa655a4a6fb741e6e8ca422bf271c7dde75d20be1654676bc7e152543bc4d98a2cfa4fe29a798adb37cd68ec51f1484970f1205477385b4685f26db2edfebc03a7780fedc9438cf289718cfa09d02a0281f6270f6d198faca505ce1762c806f7450d76f532e94dfc4fd", + "017404a938c529223b651caac73ff2286b56afb4efbd2e9ee7e8f6c15ac9c3cf4e82bd0e0b17c621409684772e31e4e49343a4c43263025797fb9884e5a533f8f782bb22b970eef5fa5017ff2d328b290b", + "9d99139c0cd130aaec5b34bd959f9a17da3030ebde3f35252175243ae7c0b0a947391020e8feed0adb9518f85ef1614acf14776ae33c4683630e66ba4a5e6d54301ab04dd57254de0a90da844bb60801b31fc316937af32eb218096e279a135ba4bc73951dcaf88be07434464d4528ab4e9224b5ef93f8cd953f99c72a3bdbe401bc07e3531302fbce7d91fcbabc5638b24c43f20eac74e2931a6578e904dbdc4c0c8919b63a2ede68076950899a4816f61478f19e9ece48be31c528020a0f64709be6297e530cda0c0e566c134f2568557e4213efdb99d29ec620da484711cdfd1b778e6eb9f4850e7728ca6830ceb3304cc18fe808422a8eba5f93e2c9105ac3cceaed14171056043f12c81f25359976c3a23a52661e91aeb0489251f1490f7278" + }, + { /* i=3307 cDividendBits=4002 cDivisorBits=2358 */ + "027a95e600f47d4f8f8cc4b453bcfa728959daf72e26b0add8a557f491e9683dc568e9866ac6f5c30d9daf1ca8e7a7c8e460050be4f0cb6467a0022803edce3ec9e4233aa52a0712e0a68bbcc274fc29404f4fa96af90c1551c82a211981c7b76e5d0228e1078ee447d2a700841e2ce9fcb1091492f1751d3387b08c038900ca23beb72c0490caa9dc0d555fd05e1a4922b0acf2c2a33a4b0051940667370b1a185cf5c3c695acf20116a2d6182797fd070dde021edd4d7372b5ebc3b3be4ba3ac0472e7f5e4990bb1c3846c7a54c0da54f3c5e44664cb81d1bc14b2c066e923ebed1c638a3023039a63d058733818e7bcec53d561b85bf9664f286a2bf1033545957f5077157e036dd92c80bad7635b861bb26dc9c82f306b6ece2c4b79b207b8d2211e1667b73c90d829aa98ce96222a7514615d1abaaa061693f7c835d96169dbef9bdffb922781c06caf45de1dd973e5db056bfb477e7e2793565fb1869bb53571d5940ab4b6eb37d96dbd5d9c34179a15b9a16ecc379001f9503e1de6c7fb3d4d381acba6b9002365ddfba0e61d4d783f53c222bb3d6214b80657ed6c17da4ce15f27fb497a5fed401fe9ac3fe0e277474014a665a2273f277dc728c7e2f824693310d9a725f61bce0c224a0b897eed8cd5aa9d8c6b969311e00e7882df3da0059ce7795b07a5caea1e5ac38fbbb8f07be80d", + "1f47011949848b68a0e908faa3f4537674f9b8e0ec6cfc2cb5f57ee2ba847dea7b14b6495cae25e500015a66f9b701af5401a66a6930fa7fd53c6b42ff5aa7b5c1ebb2de16ac4097da1c43550efc09127e13addc848a0bef026e7c3002f3f390c4861d74a96f0ec618c1e9a08ab7f909799d8e0f931b6c0078d669cdc88d2b594dfe98874465f287520e9dc8ac5f31074eb63757c43e036107479dc89984c2b01004243957bee7edd711a02ae5b0f3dd7450eaa7803f46f96983d7963948d4412f7e5452e1262043c41bdbab4614158d1bf273de7fa233398db1eebb523802920c549edc8550162cd1d912d0893a34845b17f8e913e2699073e6d7a302836b737b2088a25f935e98f378567aa5ac2f1e98a348fe17749d166b0e4f71c93cacf2b3c5a393c4a9f6", + "1449fa2bfdbd39e7195c2c2bb6232b1c0ad0703829f3923a17ecb1d3d2502da31cafcde0886a2f206be2c762fbbb0dbcdc58bb407b409adf2afeb32f0753b73aff35eb1072aac64da6d12dc9e8febe06d56cfa06f9ebf8399f00feb3baf306f284ffc6b8f7457306f3fe8b98bfb7d85b6e3776214bab0915e3793a732c4b1c37f15bb4633a38fdcaa6dcd661cc68a781321cd5b2ae3818d575a40336999853f959c4a0f42e77da48e880fc4bc6fb628a34b29801c45d2583759455cb52e11d3b4669870e0668e8e60a2dd8860c0d", + "1c3669a8bb1794e70514b31dc66c54f7700e72c8a8eda32654594b7d7813ba12f908e6d240101a2b7397139f2f483209b7c66c6dfb446a4c322402840dc4a06e43ceb2611d9bb47a3eefbc9d44c968c98d42e0e60f45f6431c89db297b51a5d20d922c564f8bc230a021d0137efbc3b56a6623556abd27fd15a7522c148ea79f54df88e29876696bae5faf0baaa536c1e05d6d8d8155a79a75cc901afd808b1af05ec780ff4425a56564fcb802c498d7d90802d973107e4e0b412015857c385b4230bbb5f7fcf7a63d4241cd4cde279b2b8b03eec3c60762cbfc66a9dba6edba87647280772f7735f6e5ca17776b5dce10a140b50730fd7b07b172e88ba7a437c001a957e188329cd50fde8377a7c3a961cf8c7f27f7476236f10bbe0347283fa442e6b0c3be8f" + }, + { /* i=3308 cDividendBits=935 cDivisorBits=321 */ + "6b68cdd84df4c512d3c8ae3d0560680ef77f1332ce74420410e1e02aefeb5489b95250eeeeef84d011aaf62fdb1e52fc1eccc376fe7a558274debeba4f27dd75c7b2edea106853fff778da2ebb28f6c5f0556d0310d56ef504cf7de1aafecbb24643bcb220fdaae3e4f8e0d3eb9e598c339ad180e7", + "a1407e188dbdd925bc4a4f247f48560cbc820e2f3c1d066f482c858fb80c1564f55587ee6d2d95f8", + "aa8551ecae318cd4ee2858501cad55840d3ad5016cec53faa13b2c5db2084a9313a79c0f088631aa45b4c1a4c0b81bfbc26b6fbe66a389a641023da1e4406fe6bd97cb6e3db55c9025be542ac1", + "0330fd7b847760adca88ae8902a656f992d3dcd2bc95b92a18bce7a47c63a139683b1e6e8b78c0ef" + }, + { /* i=3309 cDividendBits=2522 cDivisorBits=631 */ + "1f7cb3e49b5668ef98d77168e922e92b7e080f940e219557932cd5fd754bc9f9eef21d06103f40c8e7501e9dc1bcf450b9caa6a2d5d50c63f6c4cc4c759785a05615a3bb36eaa10cfe059872a3d8d2e653e7966a685ee4c5e9ae219ea52c8c715b362d680e278186915eac80ce5b83f62dd3613dd216e8247e91209d340cf360ea51421af5437bdeb1514724724e11c66fa1c2b30381632c96fb659d401a7dd5f97aaa32a6132ef58a5f714869b60fba05ec3965c96260228741bf04e14e96d0274c9e277204540fe17cc03c5c7c2c282abe5b239cbb786b42c031e6b3b4204e762fcdcea7ebe36f71e565c9001f63c3ef47ffe61a590eb9964c1a2a98bcef6fd13387713e891fdc548895c88ddbdd542b3d5cdbf0609e78360babca66cbd94a91ad3267b08276dd666b8ee9f2ee762ed429b5b5182d87fc362625", + "7a4c12772624e5121e50abe7743b77ca307da2e8207a3efa6bf1b468979e1711b3c18ffb02dee4c4532ca5ae6e3aef2d8bbf0e70ce0b4d1c4786674f2a91a279d69c54eccde7db07104c9e68c1230f", + "41e929cbcf151e358a8832fda1e1c66f203746d2b1a0cdb7317e2d6b14099c25286e2b3657dadffedfc38c279d920d9b0ebe1347be28423724b25f9f0c279eecd11d927b573ac5803b222c49dfbd17213d544af7e7573f99eb5016ded6af37935b5dc76cfed7292175b2dd65fcbeae576a17ca751b4153d3865f8fa14c4da0d2cbbe01729a928765670d2ffbc4e9be45c2997228aa993b052a8457ea4972f0da7ce5f59ccda384c765e6a18747bd5ed8967b41c1ff0406067fea1c5d20046ad74f802ea3e0c29a07bbf44df8a98e839d55902ac9c385209a9ae97c9a7f683885a177aff6bed5a3e7466adb7f", + "480b2075507ffd1b30417c29adf90b1d3b25f1ecaa360491773a3425bb609ceec70718cbd4fe162673a156c81806d5ce254d2b6fd554d83be807597984d127254428152d23f18a6b26483d2d31ecb4" + }, + { /* i=3310 cDividendBits=1793 cDivisorBits=1048 */ + "fbcf11cb1c1ce4739c41b562de69103e7dfc05e564efe846b48ed272cb3085bcda7c77ea6ecf94e855913566a5f6501753b8cb44d1c0ec4157d40336666833728737de72f2673100c76fc50dc006f06315a18fd4fd1f7a4ce1e032d44251201bd7c5ffec2bea096fa61caff573d42fe22a91dc467ff2dd200988a579c0820671ea4d6340adabfaf04874e5a05df7e6442e25e2511107798f7b9e700a3e801a7b7068e0aa4f3f51336a1aa414b4b47cbe326d9b8b208f87dbb79ef61753c11654d8042bc325cd72ad152331c0e07f01f234df8ec90a7a37f6f76257a2b79c695b", + "f32cb1ec9480386a1bb6ab581ffc0ee03862cd28ad1d6265447b47a642623e5db105731f9d896e340fd79991b1fa05954aa4bac4c794a697f01c4695c4160802984853d7aa95d744f94a4c55a3aa3d2250e1c831f2d37eb1c62449087da5e8e44f51e7a02d93b732d12de5f8e79dea025ef5180c19c622934a448f878979f67e70db85", + "010916f3ff495305773f09c65e880c7eb51e4d3d0da96d122aa5f984a72f40ad482455a3f8175d3d4695a77bf873b5166296294a013bcb54d94dd7e6cdc2d5a7e1dedb108dbfe9e40e5404b8736e9d72650247f6473dd32f8944705528ba", + "4312442637f14067618e36049f978343ed7cf0ed186c5bff74be2c10ab983ea239f40573585b1194950220bcbd0aa162dc1d08db35d157c4f942b0d0055add270687373a593c57929bdeb10f3700578828e2d534296ef28e87c3cab78ce4e4c5786da950c0e276d679c5ea385747b77ce02f9fe58e2b6679041803c4685ef2242722b9" + }, + { /* i=3311 cDividendBits=1729 cDivisorBits=1503 */ + "019d688901d163f1835ca00a09b5e369e2052162a29edc124b7ffa1dd2c2dd2bcf752961142bc260829c953ba366017be3aa577a11c2d0170cb6e1011401f1dcebe97658d5f3ab6021f362903d70f5183169eb5c712c25f2295174ced0af1c634032600eeadf613fe39bc38f50017b7cc2dbe4bd093e993b72271acf35ba78570ce2011299e40823b3525ca2866df242756162e61e545e5fee234989e8c6d5c6d990eb72268bafbb38581c73d0f7b3821028e57c281c14a70b0bf1d4268eb16809e2416f10d465071c4fbbe8654bc8c9cf5a0d7a5f81e41b76", + "6dcdb792f94f8b80b34f07eb8826e4af51bdcc80bb26ea30a44c070fdff166fe55a3de55812b7d7a9991605a8319d7f33e42c5b8bc72e1936858c14bb50fd17a098d2d94f23a5b285a971a658b66752a628d034978784dd8d381f445c9e017fd23c3b282d354bcd93a0b468441bb6ccb46939b202e6f0ca9711a99e0b1c0813ccd9bd122e1c9d189868a59f9acb6003b4055a4002f22e5a34f38c5a451552bf00c95927fe87b1b9867d30b8369b268098d0c9510c865e8f43614459f", + "03c3d5c22f597d2883180ff0a0f93bde49bd679918b1159c2b7e7d3bc4", + "123301d12d32f4de172e58865caace942759ed56b78511d5e7e8c94bd0cdbfeb837cedb3528d93608f5bf050811232c85c6d40774320d77d5bb76f353e6744f6a1bb4f85c87f3ace044566b0a7b6647873b914bb5a1ad892f799b6474dbc19879e3a1a598ed6b964486c0990e3bf33c35b78af5e9585e98275603390441af3bda7a73b9cdd2d2bdedbdc25a011a9ab27c82c0df2c51b57c0d7de69302c0748a7e8f0decd7aeb9f54261d1b89296e91970dfcd4ad689adf102db028ba" + }, + { /* i=3312 cDividendBits=1101 cDivisorBits=1001 */ + "1d239d776fbb8c7ca094c44b6235bcfcd995f02ce99ee24723ad5677ff3f9ab4c70b169a7fb113e006ebaa5071f82cbf7db932a8ee3ad8044f6a4b021a816d2284d39c6902c5b338d9ea8c0a470c5cbe5ddbf169454ef239ad1242c0cad51ebfc8cdc3fca1a018ac000e0941aa050ef5240dc42d211934df3630bdd74e1f06bf41da4bb99452a2b535bc", + "0118369440480ea171bf54e87b6d7110d1d5349707149a27865cbdda7cc14dbf892ab223fa96c13ea01d419864178da531d5a6639e61c341862624262a5b453d6fdc6998bee5a4c08cd1838b90dee49b42254c96b209620791c0a9ccf2dd09cadff623a88ed0765289af314d571f3f09868a87f0af987ebecce995cfd801", + "1a9f07c68eb91b14364fba42eb", + "dbc5a1f3f6cb0bd1348ea2675acc52d9076e2d897d8d8213cbbd12f9ea7ad2aa7b18667c1daf1b0e28b0a0989d4aaabec34b73ab839b108ea9f4cbef81e95606d4e687d8c672e3c05432de2c943370bf8f382ede9554bca2e8c3c160b59cb30d35e2e73dd3b36eb8a0c74dd6ddf1c763311c16b8c772faa065477faad1" + }, + { /* i=3313 cDividendBits=3218 cDivisorBits=2198 */ + "03919592ef5b767a1b2aedadfd9c29c226ff37aab9cc06f3298682c273adfc296a9ce186bc1d3f9c188228ee1a342f6463bb9685893d00f6923fbd34f05fa251007df64e118bc9cb12c8615de245f47b5fc691b31f5d1d0ad78a3ae04933009083b1815f0fe0f760c1d9f31ba94a716e58aba5299271f04221f0328f4a064f7d9e636cc85c9b69e9c3cbbd9014b2e931521f9e22ecd3502718283182cf8e7ab59d05294e3a2c605f03840b5749947d8fccdf74a14480338ef609d3d751ff16e6740bc2241adb7c66d59a76bc69f07ba27e4d580fea6465c12a2a75046c02aa15155aaf502141a0b5d7a08f28892c9a0e96cdcce6330a728efaa45bc2d3fec24ae3831f9578d40ad569e28d29f2f56a2ac7f3be05c4297771e3a16be05fbdf638cb42f7288dfb462b6508853aabaca89f5dc3f9170ff1a30b1506a9550e217801b782f77dbeaf7b6030bfd93ab8b6b7fc48d61ebd0899368a2c7cd5ae115b3788f5be7e3693d2d997aed0afcc98c57c23e756ba92f17346ab016c08ca411055eb41541dbaa2c05d9cab0b908ff3bdedf1185698", + "271f1ab30eb65cf77cc64e71741dbf7a8d213c887a7be7e7569c263199d6932458cca3301c887136c568b35d5b75029550d407f1fb02205ddeb673f580607cd845cdfa30c256777d44d5b6fb47981aa404b40ef5534192ee87c02704a0333d99e300700a6212518d1b9262f57fbcefa32a1f2b030727df964eeb6e4506548a25cbe25a811f0937ccf5ae76ac1e1a9a844675aff74eddbe0177363a65f41c8b4ed404a962a3a51cb79eb389e4a74fd76e8daf58494778860b76c6b32f3f40acdc4b99084dc9363a7ecd8e7ab09720d79da749029641c4e0e013c3fd295ba43930f225bee88872675b971be93af7ca25203fe435ec65f9b15976a9ea013feb471a5c14860d1b44427220f56f0022da40ef49f314", + "175a3c76e83dcd9ddc2ea2090257d4b06c425a769f09fc12b2001840affd107469e56fcd4b5c8b6e8ae918da1b643d60daa65083fe567c1b493ce9802ecda8eff3dcd2009ab164bb944e6c5f4b4c98e61c29c05e6c8b3132dc984dc9dfb7024955f4b81ab51d3b322d8a59c755ea3453246ebc396ca54e2fc11ed61c5ebfdc1a", + "1dd5fddc1a040db35d2e7a8443a2a345cea6afe6238d428ccc65145c404d1f12f8b661cbc5b7451ad988d7f7d193e29ad78a8a21a2fc6749fa45097edafab2a5b470f7fed6d83c5392461ccc1164d451db803190612216760273cd8a91277135f400cf300205a9c423236c7462dd7dfea0f991f0b843d9648a6af2f2e3ce8c5b441379f68de387f27a73748b9eb9b01db9f358e7c6a2db8f5028d66c0c38c4f9f62df45937ca065bdc1c39268664b7d1175660d329563c70de9d597388a76b99abca20ff5cfec55b3e11b9ce660ce2c97bdeec0e1f0d6c13e76538a637080ef016cd256ddd954d538c95aa8a213521378cd84cfdfe23233b4fa045e2bdb03345e8f9ac9a92727391bc294d5ce8c81462c47690" + }, + { /* i=3314 cDividendBits=596 cDivisorBits=532 */ + "0f363e68b5541508ec4e0e60c77032f4f96bb3a4e491ddbb672edecb9472f39df39c794410dcb38be3fa579712eeffb8fdac3aa7de5492cd3273a3f854f82d0763a6d93038c95a9564c582", + "04a196079720c3e96c45805c99aaceb0d7e855451874194fefba0facabcd7ca0d1b3402c68cbaeea0235dfadb81f7ebbc199b0b93d97222632d26e5181333de10e3c24", + "0348df4b9947e94083", + "b5e899792f9b3a7cbbdfef49647c8118449f1ed1895b9f7a2f7e1a488c294688a6bc64762bba4ee340553adbdd80f84f9493bfcc360a6a2ade903112d246234eff16" + }, + { /* i=3315 cDividendBits=3004 cDivisorBits=35 */ + "027890127fbd79fa56d46f43341affb8ede2dd98ff7fe0c1e709bc36d9047fc16ca98aadf29443621665f496e662e648b1ddf53b218a8c0dc6cd49abfe4076d77abb25c21594a07e47310dc1585309d133d1cae0c8dd9b10e1a8e46ffb7502676562baf6414d743916e29613d115bb5c7a29a97642179fde52d2b1755d337cfa1e0c7681d4b49e8517a2eaaed476715f13ad537b9dc65df41629aa0b4804601de37823521eae0c3ebe2244293d70cd2a98043dd8bd6d65ca810dc0435a9830e3a27c50f7c7f054975cd0a67ed2327502954ba9897e67124cb51750ec7195f728cf67002d165fe784f3ea6bb8fb7babaffb0860e2548320701fd467c4bc7d463f977432b2281f8eb216c27d9e1298021350d53a07303bae07eeee00083b5929d87302288aa82163e3000b1c09f89bffc3bcc7b44ef98e6ed5e49a6f6112ff28f148529c68df001f8fc718b56b932e6b7badda889bacf2f526d32bd4c839167bc2b982f9f7f957813491ad4e42e192a9a06f91b6c86615606c", + "03fc43e6ad", + "9eb83687b4d38bbf3ef6980edc52cfa0b104aa337c51ce4eb0d1058c5e800a5418067d72de6531fcc3a404ddc06a041233acd35e6029fa61c65e8bc8b390d4fc5d953b958047dd6968a7297f22c3e0d3333d2f7026b90038c6fb07d0eb15cf220fce9e5bbe60de0a9047f9872e501a7dbb7012b66c014530961344ae8e5332530fe2501cc8131d55fb03fe88b0c315cb5b4751b2db58c1fcd7a5fc4ad3101a391989b1146c0fcc7a94070df20cd6d16244d3d6da3137e3b0f0371abd6dc43de71a006d35cf854db8567624ce4db14e4bcbf63fa48faa2019ca3ac33fc18b1cf87b36bd869b7569cf7ae851744cd0538a0fe9f8583baedce4094f9b36fa633edf47549093da8f0c23fb5b2e729c86f6f13bfd6b27a597417373a49867833dde375c29caaafb8fade3800fb73b3acb20cf4cf9e97df76ab255cd773749ee53052378dfbb6b3b9a582fb4205517e0984801dc78dd8aa360682fe84aad13c1d82c5541b17f77ff6781bcc51e37cb72aa324b0b835a", + "015ebcc09a" + }, + { /* i=3316 cDividendBits=1539 cDivisorBits=665 */ + "014bc8c56317b3ebba2ade080a858c72f08baa35b6e47ef4952ab920549f3f073bd2e7cf41c4b25a87c1d0cbf6cef3fcce62b24c0c81e01f1a2b2aaab2e41f90548e81ef12ec205edfcea9c1818bf9f8b5b0c81e665987160156cdaefeb574c4835e6bb84dcc2178f1581bf7be9a157c88f5cda9b4506d7f27bd1bcf90aa65a78b2d2e80788e2a4a19be4eb43174f3a6ce99c32617b750ff9af12c1ef5e6ace87648d5c624f22c368472f5197abc4d92462c9f6fcfef88255ed27ffdc051d427aa", + "013dcd99ee40f275d8c6f2705b0606c94ddfb7b5b85c2952d3ced9937a8672485a6f6d2aa9295965e448806ab01bcd0ec5eb8603844b9d3655c9d683b8b3ad4a8c435a95beace6b9169bf28c6a27b317dc0b2dbd", + "010b43210d8ad0608d07b6d2758aa97a45830bcd44eb631567e26143ab404a8e60e3b29fa7923cbcf4081cbc44eafe3021a3f7947482fa2c94b23f3a84439ee0dfaffb762a4730e16a49585abba73db97ae5b750e01f2cc61fd725e9753ffc38c8ea93c2640588af9ef7928443be", + "c0044696124cb9f3a6261a534ae30fa0b086918acc755f227ac2ebf58c8f657524949b2cf528735b8f9749885e5ffa91a4024329bcf2118a5d68793104dc01740821ab7f935d985102664dd027363fb51bbe64" + }, + { /* i=3317 cDividendBits=3539 cDivisorBits=276 */ + "01bc07d08661e3a55e3540152da123368779e17d85e8a4c741aa90f2375b90247cc6a0674686562f5585872d24b76d08a35d1d20c466bf560f102184f83bdbf4424608ed45144ed582f1ed83d228468b408ac0a4b24648d3c3d1ab067c3ccdd339a71ff7cafb055aac8eb8ca20a5a8124effcc814e56b523a4055ce862854f6f01f1c4f39e95c17524f6a256f804a70071fd997f2677c907b15fc45a6fd8d92cf596725a0ac86b958c444c9e5df568e781519cbbeb51264c0c513b4fba97e82ed1585bbec943f8d47d75c35affb622807b5e21600a9259d8c60850f40155af79f58af70ca5702d03ff1dbed4118e09a324ade9c92ff2937973bb2e11b87c871950979b6c79e547f09fdcf4a573d51d1073dd6c4c863388915f2cdb733a65cbbd59c79f9f6e5ec1e3d6b5b9a77fe0784e60727b4edccd2c3147bf8053dbf87c9ea9c8155a8053ddd571a20a1a81fc8419deef85fc3ad7fded837cc00645e52aacbdb28faced782a6326734d9ff448d0270395d67e0d18080f7cba1b4673de25265cf52f629a98e719a1607790a1f07dd3cee8d2c457ad3be6d461c1098fe75ed0d5d79647e8011a93a255116354b44a2c8abfc7f2557e11ada0269e", + "034238fb449910da08d9262f8ace534d290ea42f6246722b84f30dc4709d3dbfd526ab", + "8842c20ce1cc306775f2c4692daa1eee7aed1aa5a3ec50fa77a2bdfab5e8db4d8599daf32ceabeade1d3b2b2bb73b149e333ed4e03cf633870707fda66dd9f05e3ac9d429e24a664b4142b14ccb0334f7364b73354bceb2cce70c2683ed6ff2111be42a326907e4e3d2cb2b57c936986ec490d4440d28a41c279725cc4e63c5d2dea268e949f58dd6e2643ee575aaeb101c725bd01755a82ed1de9414d0a97ce4a58f26ee183a747c16bb06ad9b68436e44756f2759c41c07c71ab9d12845225b7efdfe67b4e35654286afec87013e8c6211c6afc3fd6348a8ed32a19252e34ed6e5d7abe6ab82e66f854198dbfb5ebaa44f6dd550390c6ad849bcb834f276597886a4e4a69225821a81eaeb51ba606fcd303e5d0cb44188fba0d3eb6a91586326500d6fa86cb41fb2c0d56f0d30347780bdd045199ec92658e8a51459abf24fb1ac5698fa78b459748a53ccb1a131b48b1cebd614e3bd91c769f15afcd4c3e6903ef29178e58309f77071403256033c2d58c8475421b63b68baaa244a7172a059a14695d07acdacb6c54cc15f5bccfad0c3c6230a7aff03", + "0520f74fb690c60d0b51f305348926c5321031763e3091fa948da529d9cb011e5d9d" + }, + { /* i=3318 cDividendBits=3341 cDivisorBits=509 */ + "1b76d4ba048e495c83524754836f367813aad23b553e30a1cb32eafb600259b580b468362d554ee27518ca3b6ea6befdd89f392f7bda9693608c10b03e5ba0be091076b5333b3eae4243f38b3c2c5b3fdac8c02bb9da0edcd69ced770740ca752ab461ed97f318002609b4dfd6c71145339b39cba0f0c55084bc42863a8a83110705d666005499147c20e68b049465d9a76595c710f121996dfd7a282652a1863fd41069a03c3aaf04779937745112593a8c16ec18738dd220779d936997e7bb9432f5139d61b296092bd74b2c7e2ff8968b5410146a91752f8cef49b2425b418107f98c279862973370da96c185cef4357f3c10de3d5cb9b92ec496d2ace173d430e7e298f4eac9f16153d1c5047f3c9a8ed64c3ad3f76d35e6c4fd7c656d1f2b7560c88b05821bf3b86f7fd60ec7dc92223675dace700f5af85606cd7336033c01016d853be96e5584231359c63a128bc1ed6b25c295256bcdc5fd64099d8e4acf85f48513df00b67a5215eebcaf627e465a127bf69b9f0cdfd7a82d8edc8144dde0c1aa00b580d49e2bf2ce2dc562e7de8bff7daad1b10873e50670539758f47d", + "1195c7ac10dad0652e1de87ea1bf3bec72567c886531a0164d87414193f9755e6869266d5c0ee5a22a338a7824e367f52f75942601ceeab601b417918eed88be", + "018fd1695d074cd41a0b260e24fd0bffe9c26075f71bc878d5c22b3bf4809dbfe16111dcd4e6a0589e742ee38be9f507a1e46f4bec22b2c281f6579ff294639b963d370d325ef26986177f15a2d0be90c1ab7ed8ec703f39304d014bd3af43239c4599f35b569826701f4f40d73d5eabca56367414ec5b5190443405eadb7eb3828b32d35a1fe1cae8db7a7bae5c96531727b4cf58918c87dc2d8b1087b9721af8791708dcae4b1061263b231a94b88f6d12bcf89b1d668e7d682811a2aeae5126ec8ecd7fc1bf11f8a22714065655a1279f9150903063e9ffce19aa05d8a4d6e59e7584585c60672f254cb996e884aebf23405c26a14ee0a46833e1cc183d98ff825670f694e0eef97a8c9af5581df448f52793fa4377b9a3b34a68a603337d02c78e49d7cb4d272572701320ec92eb626758dd34216e93cdda7454300ba1cfdec0cca0c132c2dc690b35b713b18e5ef8686eaed35f8ec3b2bfef13a69dd53838ea97", + "03c374b0e5c3a95b14b347d9b14b7ef4da5a5bb562c16ac12c1100731820f31dba281fe5240fd6083c25e4e91b2ab2e8c25e0dbe0bbbd9aae972f6ddb0afa06b" + }, + { /* i=3319 cDividendBits=767 cDivisorBits=554 */ + "01f1821f147b9681724340036be94f031fce6baa499a810d67e5294792dcceaa71b80e0c5634ece1355ea723c118dbe6807b362d9896e8302ac52cd684cfb3bc92bf4aede5c4a55e7986a726a79e4fd715dd0e45b1cca48f70616017500a211c", + "0297b9084709b27fe38ff67c035b8899e342c1e92aef3a70ef0885a21ba04224b56250c48fe8511082bed237c82cd2ec0319cfba3b416d367eba835db14e0f345873de9cc6ed", + "bfe3fa41bde1803faa5101a7a2960d3d67cd393f79c0db63e0eb", + "014f1a0b04969f377601666ee4dfb7d0b62c3a2dda8bad59f66bfd90d8b32fad1bd14a5ec4ada624a881146233e12f9a4a70744c71d439014f374a4178e890c15f631b69258d" + }, + { /* i=3320 cDividendBits=2284 cDivisorBits=1854 */ + "0b75d5106572f84f2211e1ef68f33cd241cf2f0cd792ab760186a3e0e1436cc1148bf0972b7f4b1c21d8b385ec378bbe500f6d67f219a02cc04df616de8cf66bb26f67395120064a2e8caa2adb144a478a06829d8a1e7ed30a5ff92f0996c2451e51160eeb457a81c6f82b7b3dcf45f16ffdecd6304abf139b265da2e19d4d7486b6b8e197c56656c7b08cb6de31dac446f7b4d4257e943a7bbb1da4b9592c346d02ce0908c8cb3c98c0e860b83611bb35c22561f977a61acbf5d4952f803349f368e4bc131dd834cc22e61be8dbedaa48608350ccf39938c2a79deb6f12203414748e598c4a986d2a31e2d068f39e713a0915a0c2de667b6d453340ba53f23674ed9deb816f62c79a2484f8a9b8bb646e30a2265105d9c329dc9d56d50c", + "340bc6a70e123db6d165961bb10ebec0ddda58037aa6106d7357ae4e6e4dda1f28b164cddae8ca7adca4b94fdaba5d813ee2f52b9c059c3ac24ef233eb1a1f55df0b800142001426203697ccb6ea8564148ff9497cae6d818e5a49b8fc45028b1544c211d838e2fc9e1ac3e2bbf8e327ce8143886f0a65b41d61beaad2ecc358451afe779f44c6d1aa85364fab5c988c87e097e11f97de705b1d4923d16f596fd2e9bd81b6856a9ede6afdb8203a6a2cf5e750a22d539c6fd4d3d9178857e5d8973d2311b2cf98ade36800cebc5b8726ed3cc0f74f12dd174bbfc4ef4a160d13e510114c7f832899", + "385eb764cbc2156237c2a372767565fe8e371570f7d60409870eb13f90b359c89f7cdcaaa745827e8d0ae6d235ffb789a67632b71105", + "22a808acc233dc5a2165f3b2e31ab844b30115db2b37da346c7b3242ad96e285d6f2bbbd1313ce4caa060b6b963fda226d10f9587ff678320493d7f573cbd83fc8ba7f4582d19d7b66d93953080a8ea7adfe11d83819bbaafc8c956c42bda602f185a2dc9a24caa7a2f0cae31a901c92b96fe74a5df41c418814e0eadd3a7f369c43f9999f38d18ac99a3f0df7932dbd4f67aa446237435c813cb0ed0696edd6be410dc5f45cb4254b39b61d009b7473e48549dce98c62c62fc1b7db6d1bfe3866832c5ae793e737dcdd405ef78d1a79f8c74112eb936f9c065210f89c9e2b00150d0db082b5e10f" + }, + { /* i=3321 cDividendBits=2735 cDivisorBits=2234 */ + "08057ed6317b13162b135047adce1b3a983f53d90df24284ec88288155b00ad819a731bb4234ee61f54b475d737bc2d879d7ef65ff24abda378ab406bd789bcdd37da4d3e6ace034faaf42c7a4564e20ce2cc9e0a32a5df45accc7c271f0d36c58722212e8aa3b2fa9282fa4b916781f6dfd2e81ce2e00f47760739ee09d86f2dd63257aa100339cb7cb9b0469ee0e4e9e021af44dd4295342a6640bd3d9cf2d2c2b439e13c278c21aa157378c0d915cd9a394026b0fa818846c65c6a1cd1302ccebc3356bdbb3d3e44ea67b6ff23de0dd776658c3118a8fcab76c76700db1015a081391c17cef656e83cd21e70bdd38a5c22df8b4305f37ac13717e5558d2635efee342d7344c2e012feff40923a8d7ffad54422420eaed076cc7339b111c59998e2793865d0c369c1e6bb9b505a737c6a9da7c06f6eac28a847e7255c6b6b154758a71de5f4163c628317df11cb08aca7cd8d9bdb0", + "ba6bcd284b2b76a5f010085bff137c4ac6d8e113c9feb94e2af60b4bce33ab4ad9afd26a6b94aada3fe4d5a0d5f5884e9e91ee7f5ed04bcf3614b57b77ec7ec45f6bb64b07ecce0d9fc9bf1de8d4b0cbeddd5a20b44d4ba0e2cc5d3c147c4bbd3e3ab42f3bf909215fe1412ec5f1e2ade6cb43e86a97453e15c59081e3fdd60fdcbcd27b39467f2e419473ab5e7ab83b2b561914b3e544be683a65ded0920fdb1f4842c82d1158dd06414e193d7e6f5dbfcdeb4897d50d2c8063049b1ccbf8a0468a22f304a033d64ee9ee8ec3dffc590888e85127908832993273c5035fdfe8c774df5258b3d209d966c92ac907e20d31ba3f3f46fac49b8176c1d80c0225a06ddcc0fa1db1a8518b128a3e5f89d17ce57833b5b76ba9", + "0b03ee9c52e1a5955069fe0bba17545743a65629a53754608c1b221eb178e8efe7ba3cf256baa6b24d0d0d279c4e32c82bdd21e423ce97e18022e93778cee6", + "4241fb62e892207f829ea23aade4b87ed1297523388be37ebac1cff54691e01820ab297227374a8da92bdda411ec0578a2bc9e29fcaba5f73d838be06a0ee11afad36ecbeda59d0920c89e73cf1962fb82bae6197269563df8642eeecebd569be0b0bcb45dac1427b568b9cb6328e65b4e491c9d92dec628851a21514df7ec16d60f3212dece76c4a255f490fac664ff46d68cb142336664fc4e834dcf1a03d7f1b101e4c7daed0ad35602b797ac04d476b0641e528ccd93405368ba94d32c4832ff30b90409c913a0611b089f485436dce5fe6a19a3219f4999fd47dd7262e7015322a0452e82a53706dc588e791113abb436d3309dd07e918f3e6b4730b605006ad56eaa886483963c42f369decb41a22ae1373505da" + }, + { /* i=3322 cDividendBits=748 cDivisorBits=603 */ + "04e758345c6b3ce110dd395afc21673649d8916a644955310afc784d910988df56de517e74dda5f587c0e56b2d377424b8d305f81d439ca38fe9a5e1cd1e55d21114aa0a2f50299056624c243e4e5b31da6c6356d7ce06f4a40600075bd3", + "06b7ecada51dc0a667413b8728c342893e66bd32c23bfd2a16830edba162883aa63c5768b6aba9c9c93a014326b3d586e57cb91e6a7bd038924ce62dba8f7b88a5c29fb1511a94bb65ea8463", + "bad9a54d5b2ca385b9ffbf697ab45e6beb2d", + "0429bbf9aaca87fa396aba5596c3b682ef62e2fa79facf432d14c0b7821ade61530768957eac43a226d9ca0deff39c8796bb19902f6f23a580bc90aada0d47986a77458dcf697f491ee6356c" + }, + { /* i=3323 cDividendBits=1377 cDivisorBits=925 */ + "aa411a787501186301f5d7d98af83172189a0f1b59121a9624a997908fe9bea6cf0bb2af7a9ad6ed4c7c097bbb31d7a7c8ef9872be46a1079b1cbee92cd8d72f0decc95c0a7afad7d218e3c0bec1451f17db95414bbd5de5a11159e3e4f7ed2f4ea101a5f666242d95fa106d42eb590efc765c510447008e29f3de1ecc393f28c3d97f2d708b770dd52e11ddb6ee193b0d6df2ae63855028cb7b2a8cbff60e164e04706f3729f72539221557", + "1899cb4c500dd981abaf20e430cd2b2592e4dd07b388c7632403309293f4902bf0ae88ced3048c7fb2260a74e3bfcc7fb985f0eb2ffce22b34be5cc47ee07d45b6e0e58316edab3d77832e1e77536bf8e485a96d71d8fe2b4630e6bb57cb4c686ac015340ffcb3dd4b6766566ab69678364c8c12", + "06ebb292fe8d7991dc27d3bafa2c1bb1d66f7074ad6205bff930381d47814e3433e714cb75fc6ce9c32afabc023c70221ba1e9457fe23f9821", + "0a16e8dd7758d47c3f18495e675952350f88a0998cd8b5362bc7609c511bb5f65e3a22ac08dfde11c31f5744154f6072d59f67be05e9418032541c15768323d8e5e9747d5803af5bdf970f96f41e429be6fa55417b3c8d57a502a8ef2e040111be9818195d51c6339e33b63b84a7e9fc69ab5705" + }, + { /* i=3324 cDividendBits=3784 cDivisorBits=3456 */ + "78a051c22bb86acfdc03ab705b38d9bf181984addf2a72989014c382a3f5b4171be0b63e298085da15f17b71be48dbc79f183fc27a204fe85223dfe04a2296064f7c994f78459d5b7edcba964ba8658f11594223b3a0b8ead1c606df4cabfed933960dffb5f1dcdfe8134d4c715b808454e36bfa6dd08936e7a9d1923846858d8929e45b88de974750e595607286269aabd79c8f7aab61be57b64cd01594640170bb338f372a7ce82e372925f7a43cf91e87af1eaa675b9462b2f1a6d58f6f6bd891fbe27869ef2fed04fb642152e48e66e6678d8e08a73aca417036e1d62675dddd3855a1c9009c29b40d008a486e933ba7cab568577752484fb89c305ca9d856aaf3e5402f76e25708987279cc74e75a2ada0bd0901e1337b3edaa1f39e83800cfc78a74dd09a223e964dc456166ee7c02f362cd25c618caf5d03e3ba8edfaceb1456ab0ba2ec0f70140d7dae01563da5f2e77a1b0d383e3792a483436e4cfd100944ded5d081a57bbd96d6fabcf026c719599982b20a2d41fcacea82474758d35d2bc17b24e0beaa3d54e76acdf0f93793c125044cbf9d5f9fa0c8979bbfb9075b2e5cb43778b0784183fc17dadf15df69b48ca62b65ebc61f53e90499adc96ad81f02c5555a657c3bd234230662199bf05d08fbf6d6367", + "98a20f7a66d05b67a6fb4e063a3718ba6e13e6831faeeb565879da7991bde378c5a9ce8ed531dc0aca866d1084b8e9ce1c828bdad973ca8157d38ce825ec20abcd6b1f67415693d0624ee310d78088a936cb69d861261281672d313fa648112704cfaabc9e51f89b08bdf6c1c4ee5e01d75b7902af9f42bbb6566c8f4573fc7c38cf87cd933adc860daec34f119d2f877217f0d6312d0ea1eee5049ca252228a65b3348fddef30c24001077cf6cdcdd4b4a18d7f11e7a72f18f24fe6f79f27271a6ec2a7a00f4fd61efb850de8240557d0f7bc5477c741d99175ece85498b429716d0e75f1f01e115ea36ec18c3257bc8ffc342ad1eabe8cd8d8d93364c0d2f6514bc6c3026dbf85a9dc1d9bf46f18248cb06a1875dc340aed3c058a049ecab37af0d28d22bba82b8e40acf2ca26bda8168bab569977c0350c8a2a905f0e61e85c9dd43b355974c01f210c053bc26ebe5e6bf8fa8cedc4a38fad44ba1e25ffc150b46b9daf9ffa7af76be8df0e2eaa124e4f382102a2709a57287968f3ea34163b20ec500a71436d6426f81adb816fb9434feef2a0c63ef0e23a1111351ca2b7f4ce2a130ab7fabe2eb8834e0d6b5936", + "ca51402f41d177ab4e9e50794795b22978124b3b953155720328cca0c5453f7603f033a6cf19b182ec", + "1d5e199d91a54da62baa1b4c26671640d957a9015dbe5e1f3b156caea706d9c02a856292384df7831a55a76258cdee09d0fd56972504c2fb083d4f64159a218a43b6a86d1ae961a28217c65caf294bed803552ad7cbd2c74c97de6487de4d08d4567305db9d198539aa32b2bb1e89d57007dcf3a1b3786971f7eb2989dcd69d603f5acaf2b1c4d771675ccef4b477cc7887f912e8a593cd68b08a8a0e47fed0bbc513b2ffa13e702d1af87d57d1c7eef2c2c08f9f49c03497208195bf6c5ccd45d78379c080e14e08e44d8f49b10e61e51ce78d711738c00e8ea448d5cef52098dd5aca75cd43fd7b7a6176abb0af2c25cc109dcfcd6f4e633a618b5a51c50107a98b024e5156acc77d5b34e0c0b449d44438c3fa29423a1552f6c4d4d1df7d76e261f71fbaa2067f00c827db9fb39b814a53075725124a97dc98be25458ce7f992475bf32ee355233fefd5150f6b74a935fdac089be7cd9cc289266cbb0bc4b10f735105d1c06a6677d700875a9948ee3f497850786046d930e1c957af9612bacb89d643fdb407cf4d99fcbc2815764dfcbede0bc182605e2e5ff7b93fda2975526ca850a450bafb6903831e8d3b99f" + }, + { /* i=3325 cDividendBits=3845 cDivisorBits=823 */ + "1c474dcf2f47d69215e5e0e59a6b1e1f24f81f9dee8aed60e78c52e4ad9132e77d9ecdbcf7254a4b6a456baf3246f725709fe236771067754f3b773ada95e8dd59d6704572458bb9b258aa66ae975fda592468107527ca2cd75b69e83038716401f41e08c1f04c08f882bbf332de0d1e687b9bc213036132c82d3d8cc26ce9f0e07a6cfb82c5b6f42915906415bd71c31183c7099961e4879c5f596958cd763a4b2aca1b3c764ecf056d21ef20070646225ff85b9e3be314487a335d470ab95b2bfc561726c49a110cf3076e473339287d6794f886a93db58b508c3e9b9c7506c4100474baa85a5f38c9a0b99273884bb623d63c3e5e26c743d1ebb8f9083ebc3d3c82782a437fcf83c4f46ec1c3e8b8e903f85b89f6adb0ecf82f2dacba19af5edd54d96a12ffc6e864140ccbe8ad66984adfb1d89803672223788f809e9b0729cd62106f321679a3d8b14b6872d548c42caa186f34fb45598053641532aea0578954f1bf452b62ffba4c27048f239fd4cdf8576650346324e74e41c0cfd6b00f6bbf36681460aeaa4b01b6f9656bc79b6c31fffcb870e3b2a47d1f6f1befe8bbb68796d3a1d3e4409e0afdf13ee1674bd5ef4ad1a0eb0e9e9b7da832f7c5bf7f2c753c04d3516cca3670d18396c4512da45448b297c2cedf4ac9ac65d578547c", + "2b9b746d55cc78c73945abd2be44f204f88709189a55d3a65a31253afc377587eff1c6d714634d18ac7d97106f2d4d98a0576d8c066bcbdd30c454a29961c0d32595df372bba37b74d815b6ac145145b23b475cc896c346ed13dde821c3707dcecfb4e40cc7694", + "a602f146a27de17765af33e5179eb2ee22f9b1b6ba25e1d30bc73003cc1af03db9dc0f26609961c7c83e33a5ef05e6b1923d9e82c559de6fbc90eff851bff572454283d4c11e9aa987eaf212cc598a2ce841b6429f101d8bb3e88280522721f68378a3397f1d1eaea3798e544427ba92b55a10a1fb17d3034db07cba5c2da141fcc80596217bb6716f2e67b1fdf8adfe8a7e49c7c0e695bbc164dbe97960d93317832b9966223967968d0c17d0968e3830626862c72195564504dd06e77be0d618c449fbcfe4c99b9c2e6465a980f4254a804e85061e2a181bbe1cd4fdd99cea7a8d297a0a2076acd54580e402dd4bb25fdbfe99b537cfe1806709cea0925f35cfc5a8ce02b3db860ca0168b281401cd1650bee550e2d424ea40908abca09752c850ff399e3eeca7c6d224f48c8588110c6260b4e1351e9c537f90ce752607b01604bbb3fd31a7596e5bd9838c3db847d53db4f252ab192c9f56109d4bb2c150f357a99d62adb9a6ef40023161c82d08d138c6a8b8ad7bfd5b73", + "0c42b325135df5aea067f79093279b03c22e5829141c0ac418124b3f8f69185ad5d3e5587ededffb6ec90a776347737dc53164ffd6f3f70c88d6758248041df29095ca833040d5d8a31a669611694a8fce91dd1e2b4156ab6f994c0f339722d1012e27bf347400" + }, + { /* i=3326 cDividendBits=1529 cDivisorBits=367 */ + "5207a034f509e9afd8ab087975232b9869359e283dda60889a25adf4a65ee4fc83b2bb8acc576d27f3a000170885992aa8e5b78b3071d8e6d1171ef5c93f59bd32a2f0aeca4b85d4b6f338d96c4a68e2d272b9a731bf308411cdbc304ec28f8a6d1881ca09fae794bd08dcc1273912f9e13fc8f97a2f43b53bf73589879a0fb4893fde400bba4505cc615fc6c0bece961f053dff64c6b4435779b123b7a700a2a10f56e21cde5f345495eaefc6092d6f690b5c1345bea7eaeac900d46c7481", + "50e90359a8b5522b142011b9a5fde6ad147d58ec50f8d1484c1f071245c99f658afc15e9c4956b9eca979e24b72e", + "01038ad7d005f6a24fb20dc3e790d39ee473e164d22b16308f7c5b36eb38691fb1472ddfbf1af2cd4b9a02a147f2606517b7d04396e04676716a90793c5133140886f1932d61615872b515fef91a0e78323242191de0c63238427e4336dd118c90b149c3fb45f04baa35cef9be454d0dab4273e47021e1268b6ddef21e0de230b4c72314455fd6d1c8f141bccf326478d1e6", + "210a74d006e0adc8801a82cf9184d1ccfa3c5f7cd496b63aa2273a235c2c67fbdde7c41ea7b69ef08aecf053532d" + }, + { /* i=3327 cDividendBits=409 cDivisorBits=145 */ + "012568458e55754b76fb9438e71e89da09d5e773efe7cb89cd5cdb8cc372210b37ea66116e5ee2b2850345624df9d48dc5f1f35d", + "974ca6b8be88d5bb852657e60d123a1e5b0f", + "01f072a67df62cc9d41a2b36b073e3fa30ec6e211dfceaedc8c69a1c7a61afa1f99f", + "52e7894ae1d26afa5527cca607aea116ce0c" + }, + { /* i=3328 cDividendBits=1954 cDivisorBits=1400 */ + "03f712f1948d2a7c65afa8c763af4516dbf76887ab24172d0d27dcf3e3b54d0bf86f5a035639056caed7c598ae9d7728f964fcb8492a489fb4c041dcf951cb443e7fa0cabd22bfbb5335850abaf1339cc564d64c96f2a491437505983102ccf8140f9776f46874464bb403f4e34a4740db119a44f87df0b952b7e47965029261a5911e4c59203710499897c152cf952bf4272631253c56a1adfbfa699dc7fc0077a9762bdab742f1b16c6e82dd47edff6ca4f2f5c368eb9e63781917fc6856289f6976b94d4c93153c4a81f2bd1b4b1fcc905b0300a132f2979e4fcad9c594e70a17e66fcadc4a8b385595674096acb01ac27c54d6", + "e68fab095a42f0d57b67bf401c62535a9bd9d7cc2050b4f1c5c7d0bd123d22cf6ae648d23219199d78d80e1fb1ac262999557488f3df92a860aaed79ebfbe4453e0d1137cca0cb2bb90318cc42c921bffd2a88ba35dd8c1d0c0a57a4b8c9122a4ba0ecae5591e5f61a91114a06b55bb340b7edc1f376b8a1833b8679674a8acac77fa7624bfa379474d75610f8ebec1e2e49cfa78a6ed0409de85ec25da85023eb57f98c63b875665663056b009d31", + "04671248beeabd5e125cdfeb69a0f1cf9fcb5287090aec0ccc73e4f19cf9d975438c83b601f952b0936be69d908c40741cf3671e0e72486ceeab889836ddd9680adff0a74bd8", + "6540951b24e7b957c73c91a124ef5cfa86a4b314ada07ec1f53e2dcbfff8c641e4c94a2d675f251f53de842260ac92281a347024f02d3b8b08b6e317d6b3ad152bc3e98c27ddbd6ca0589771d3920171d5e808cd52ecc7ec17bae72528a2098f659e47365597caa467485ae1d3fdf67dbe9f6dc3befb10363886d0eb0564512f0f4b0311e667cb9d60b9d1bd1a2b785b5474ccecaff60b50a328aa10f719b23e48076811132155a15854bbd0f3587e" + }, + { /* i=3329 cDividendBits=4010 cDivisorBits=1627 */ + "02c7849dedd690c0242f442063f17f6b57a8dc8acbe4b42186478176f1b6305ee97048aef683689d0e5cdc98b4f9c8ad2b7bb35d861bae72abdaa2524e33f3b2154c33da4d89b19f1a3f15bc8664c214453716d7e87f04f0fcf18a8da42b4354e9e1f669c41bc10e80357cb26680f80e8da22d042b1ab51a9bc7ccacfc5f8c1b274c2cca24b448b8a791d21a46bac889c9e153cb04f856c6a57a10d468577f048ca72ccebd1c98f51332ce89bc6fa8f6844099974b2e0758849ffc74cd140cfe42927fcd6da927a7df77c302a116ac944e98b8ac9a93333fe92fd12a8001dab3fc901a25d10b1916859a7fae725cb5d4c8dc2c16c1555c3a356a136d18b48ce97e8f02987b323280241e063d64995c46638e303c1fa27b52a012f96ee7118a1dabf8f53ee67e355e079594474f0b2b93ec386bca6376def5e7a73bdd105935409e8ae39fda56d6089868cc220394254a4b2f2b05b6dace3affae3dce08d88e0a94f7326bb7537aced7ef32ecfdd8bb23028c3626e4ef5b4ad60a52296b0effb738b295af3f4cabf06f170a010de7a533efe51bc9cfe8df3f5fce83a1bef2315c6547ed626a1fe06447fd8fa70a904dc37ff6bbea70890f9981fa99915dbb7f8b23aae9793404a8f1b2301c2240b4eef1fbcc06fee9218b2c294ad6b78133ab6c5bd6dc6a04def50d12d1a33a37f872af5cfd834e4af5", + "01e750ae3e40796cee4f49ceb9732ff15ed8bfac9edf48abc964faedef7609653cf8af2e177ceaf52d5ee1fa97fe60dcb81bc0358845f75bb65b0eb0c2350e5fcbcca02330af9d6fcd1a0329f37ce00a70613abca7a93ce8e8bb55156f1737457ddf5130e4d0b4b90eb47745c45aae0bdea71d855d53234cd4b4e2580ce934f3e7afbe90e260efdb1525ea2ea4f3fa1838c6959044ddf211ced3f7161fb284f2b0eb61021c7c357e6885b2bae6541877a3855dd4bd7f3e0c22328e3234dd18b7cb11b22435a56261d3bfa2d0", + "0175c7a847d58d0006472f7680615cb27c668d5935795fa5ee9413b38bc277cb3a0c9f417399b8a97f05088a7645a7101b8f1afd37bd85b47158096b9ae0d746a222a647e7e3ac1f9b114b75506486095204bf07e55abb8393b6f86b49fe7047a364c67a7af846874e27b1eae307bf759bad1abfb07848254cd3c9c38cd2f45631e70e53a1fee77fa5f279655ae2f1c36ccf2b91db8ab0fb7c4785083b8c80c419b4159bf8ea22e6603aefcd32344d264c39467daef7703bddfa952b9a50b76c647d85b39b0fd9c4509567889a29c614f53b611450273716241a7e9775ce0b7f7e26a5d9911b20ff071341fb5fddb501dbb6a7909a4836d812411bef620ba28af96b1b8bd66b347536b6e916e65e5c5abebcb77f8526cf213f5b84b4caa2d543cd355ddc050f8f6cfe9eb8", + "017c82143223a1f832610c2d9d043ccdf532d0e18449f7afd9f1fd2b95f2052060113ed7eb1690012c2be61ad3785c25c19510239f4352164fd9fc3938329c10828f0c9cf54de127fa59516ddb7672234cefcbf6ce828ca3d76d2657396abdbba38243b0af3481c7571ada8bdd53fe443bbd6d85e375c60b0ed5a84d8f2aaa9320b7e75bbbeb97e78e5d3d95fd5a39084ef1e7c8f5e8e1b9a0028775d6dd297c5111e41086ba2ebde1c56d5ebdf21f9388ed3fec7fe9bdc271fc6b9516ea5104ac161cf67e0d32f9c0b4e575" + }, + { /* i=3330 cDividendBits=905 cDivisorBits=356 */ + "0159745f6a59ed6173d08c5ddbb7f2517d9b74348178779242e138fecdcf820b6e10ac3b211acc751a714a037de57878ec0ad370a2a2a94eebd6f4def056c91bc23f7e43a9fbc22fa895251c1aeb099342963aa96f640118cf37339ffbb0799b8e51dc43c823223632149cdf995a51562bed", + "055151af81fbf3706d8cfa7945a0564e48b5049f008b118d88d148485604aeab9a72e19fd0d78a3e3bedeafd7f", + "40f6b75c1c3fa73c338698505a8c87a8bcc401fed493767a30b29a8c2bb518e894e404ff69f9cb88d637936cbae664148ba30e0027f82672af8287c6a93df0f1772191169b", + "542a2d4394a184517dc44a4a35cf250066b2d478d40c51b659e8dc6f1acc79e3cce79e67864552cf1e56c608" + }, + { /* i=3331 cDividendBits=3513 cDivisorBits=2292 */ + "01eb4c6b9a986dc32e636cce167c89688530b09f0825111d1c289dc21c24ab6722798542fbf6205fb313dec5b11882c0bb07a651647f9b91f0971219396e67129d55c2605178788871b0c6ccade64e12db76d56cd50c91952d8687ae0005e6af1f27385666424779fa59041bb930fa8b59f8606a7be193d4f78b62ff23719687757e9075ec51f9679798a6ca46d016e7c1209bbf7e47ca33c62223fb8d0605db0b1d858eb8b64db73f8196f96b181306c91a5fd464ee3e60bdf0917fb994f968b35cb541bf86368f475b2c99e72f8bb7612dc6f52df5af3ed6bf624f2c5e4de8b8d3d9308ea46e2bec7b745bfd234a03b0c10643b86cbd819c919b7c27f2db5a3a9ec98ff729bfacbe37a0b01b28c4bc3f38f2db2bab2b9eee28cabc430cd15ce1f2446bcfa3fc3f4022416fed9f1eb5ccfefcd037675e293999226135fe1b0980cfe5787178546e8acd8742fd71d8f399295d8c58549692b21fd3d581ed126855ebb8bf9a852709087b85972c911949fcfccd687812db7932d5dde37af6cab5de5d4116a7ab1d4e381dab0a71cc7e86fea5fd8dc15cce392d1c7b57327c930bd653d75c64f2f7ba426a63c8940285eb0116a01672b0cfe0", + "0ee34e595ab01ad52f03d8a1007e9d30a6c52365a21f26bb9f9d9cb438fbc2029d70822a2d89e14331efd88528fdf332ddad61ea725f2b64fde5598ef60bce71705391330a30593ee7fc513709be0f227ca8a349b2da0962ff774e16273311153d5d04d1d588628b59fd5585bd300415aeaa27d9ea2fa6a40ed94f8f516f17d416905184cdae57e0caddbf753f49bf696be6677a218ce95b90d7e8c4460da6fd144563f5ef84a73e28024c5ee1451e73415750d4472ad21bf971eee32944db06ce5f146b8055088fe41151805f283849859b988e3d43f6ca35fcc7b02d7396bd62594448a118982bbcb218b768ebc1e56de70f20a13134c264c078d0115e5a066b9ea5948d76a08772eb7cec97258b00648bbc6efe004c5d7beaf3d04ea429", + "20fff45183a8ac4ba4d1b3ccb9f5685bd681f4610217b3c6b9fb538e7a1734c223af2300db5cee20e716cb1a9039686e817cd815dc84ef66e801ad91bbd1481b249cb7a065c47ae8d4f602b25218eb7a0ef45ab6ce16cc336c58b196edf2bc3551e5e085e6df2f6911deb01888c75dd4bae072b1b4ff64b16f2f4a4d16de5fafd7a213b18a3d6e9673d07fa80085ffc9a476c7eeabec0230fb", + "0849cb734dd06cf4753cc669eeacca975a2d0fa5f60dabd5f9ba1705e9588085620e00cf09076a2aaa53af3dfdf645e481877750174f4ae13856eb27e31aafb82fb9fd338f9d803c399d293052dcd4f0cfeec8e9f54425548a553775ea643265b2179027d374140757f80e9c933d994d571001d61f87145a6308246f904ddb8a0ca058e0f4585a97ba8b7947bd39b70bc188db1b70886a98f5de802d122e33d1877a12679e1a511a9a33706843d7faf76bff287fc7e2c0c129f24a1e0dd7baf45ca3d1dc2232744bcd4b28cba4b725988583290e53c02132e0310bdf61a41044aa1a3fdb081775365af3fe2d641d61b728d9edf3e36519ebaeacc7f85569fe6e9faf51e83a4df40f1fbb9afc71ddca426ed70c0b46cd5dbf94a6a4627c2bad" + }, + { /* i=3332 cDividendBits=2009 cDivisorBits=1091 */ + "1ba297e7aaa2ca86787efc436ff74fdd7d74bf6e27d9c4235854ba08830d9d6c9ac9ac406359c80d99b3307b33d25b725d53860758cb7bf9fca8a37f5ed1155e7d98e6eb7aaf22392b44c87b0b792dd60cb784db5d5c246997b276f8c9a5951cde917478078030e600724e31d631e5a244a53c7c514432aaf94bed3bad00c585c7dc265d8c888240e13fb7a6e532c726f8e20f3d9d52fb4c194fcf843218ec89c51ae05b94ccf0219fd26949b7c91bc3f9af6004c89ed349ae362e65d5112b641cdc170b99d5e1b126cecb5eb8072782589d564aa0d996226864c166e351cf8db37a3577910308331ea947b42343b4d52e2fa21c42b71c1b47d8e6", + "07f531b7595b9bf47a22c77d7a4f510e31709cf44e4612622bcb99b28914c92cb85208288faf9658f62661c808cb453fa695d7066247c775a6368ce15fac8603465dfdb69c5ac7260e6ed8bb9c38bfddd9d808747f8f37b7d0bfd3eb58e3f11c4942296da46b36671d732b288a3a9f58daef2a2b3373b0de3f919fed65b1699e0eb8a8044c8c1dc8c3", + "037903cd616f54fc088d396a70acdeb5ce4464b1c69de8d0e77a173224acd4df553c7bef77009fe9ba4762666962b7942f747e8f526305fc4eb2790d58a9de7da0c52546c93294e38943bd857df909e565d06f569ebbdbc224a110444b1b606b91e7448230fa70f7d151b47d87c76824d8d5c3", + "04ce891d604909d3a0efa17b78efc5a50c9e048a94128556832a0ce0b6e7496cafeb98a686795cedc8cfc95b221c98308b3fdedfd169b9f8fa371752952c99ed8920d37e1ff9dd1e207cb8fbc6b1cc70ad243b8cd5bbe77b0bcfdade1e2202dc4ee04ea34a04639efd456a190a6ccf6ebf9bd20852df6a8686fa83929420c9918d1b6b32a3c805ad5d" + }, + { /* i=3333 cDividendBits=2267 cDivisorBits=1315 */ + "0597c5cd2d577effce7d9b5c9e53a65c8af0b5c7855cce1db5976792952c5d6599f77a84cd17813672e433218733c70da54148ad7eef34a776e52c80f453bc04e1170c6c0c28393657c9d676f94667f7d2aa0cbe8e63b1ed8328dd34ad7079a4524adedbf6f5cd132f1a1d14ae5d03b6ec12aa53235336a84b3de59f6595d31e06f870d3e9a3cc90e50beea70bfabf54f8c1f42db3f2134bad33289988db77c9ad54c81861968871c592128a0b3dbc25e4f71a6b9171bed54442ed8001424d59119d23c3c53a48dfcbed676c8aa8d02646101fc4ae99c92d78ecf48e90fc9e91c8aba5976fc4f3c4803ca39ffe9c4d8229308afa3d98cba71fd958f4ffb610ba607a2625d850cd8cab9ef4caf474aaca7e95fe9b7f3a020fe6e7a90a", + "07bb7c35251022e5b4bac881d51dba10f087c9bb000290dc5a3e5b95b207270e36e621d51e3e84a6e7044391ff5b128ac9f0fff327a1effe42540c134f210c890056a8b7c182c1274df7d1df5871f0fe255b03c3c0a1b5fe9c3687b179c56127d4e704a42d35661546b752fee9e05137e110b9077274c166687a9ec82bc4ac06bcad4c435c44df848d9723dd861fda60d974d4a8d0ef56a76f93bb157eb4e4c54d94188117", + "b92a8dcaf7fb03fec36eac1a14970f812d095376918cc347c92160146b8586e0349c2c124ee41d3661ad8de91f00ba09372a6b7af29432add2b26f559f4316bf18d54444c42782134f9aed703ade288254625105c639f3b03213054c2fe063d0b1df25c0e69544ef2bcef485ceb010461c31ce02d4772d", + "04c8f9c26ac12e218d38b39bf95c6b89fbe52ee806b8dc0d0c2f1e916f82846bbb1d1a7b5825336cefaafa56e7b730a681f340c4d64de6429abd52510dba3ef92a8c905faf1db4477229e3f0a3f01a8acfc5d12ab7e6d3b386c79176d0579655035528e435e41b1147cbd1592da7d74e6a4254f2531b07bf1a44a6c1ded2ac5c0b19efc6b56c02705b87cea3f6b1133b38f7ac189bb473907bb2be551116f426c6658b46ff" + }, + { /* i=3334 cDividendBits=532 cDivisorBits=98 */ + "0e3710f9e53b5c9b25828c2f6a85f55800c3e962b88f3963e0dc3fc1c80dfcab74575eb13fb9439d612cf0f781744f24536ee93329d0d4f09806341e30b8e97ebe3d22", + "03c618a722eb8760903a7af51b", + "03c44b4b11e62b48ab4af369b5ccf7bfd0c1b8b31187732f164be8bb0f3823b9c3ba275086dac24ae0a3822160717d29851eaaaa9d2714", + "0241849a7f3036c2a1f23cfa06" + }, + { /* i=3335 cDividendBits=631 cDivisorBits=103 */ + "0a64aee0d5af59834ee1cd7281dcf31888a096bfad003646cb060c1ed091cea02a03fe111d1a15063f366aa1b3acdefddc8ccc3cdee09e63dd5b9fd65048cf069c5c362279dfb83a42b788b1b7a57d", + "2d3220e1201b5175a91688e301", + "3adec0590be1f10361377a2b87ce6f523d138b281040645521c2c0e2998c0139c35023ba37d99206645738e338d6df05d3ddd46c18e08f30cbfd349ffbb2298d2e5b", + "0d0b3373e7eb0d5aeee5b7c622" + }, + { /* i=3336 cDividendBits=3580 cDivisorBits=1651 */ + "066d7b8c5fa113213fe67cb5e2176ce2386b43fc78742da3cede825886d88fa506e5d42ff03a56435e9e43c5197f9b8f472dd10185f09613db04f13d74161421065feebdcd8b909dcc5fa266c0bd12327f7268a6edca9a2c8d4bbb9e61035458b100615ba489333bfcc3e64775da492deb4134c9f39fdb5accb17d7d617dbe57ee55a03fc86fbd72d1c400449e5591136d5e3d021637c737172266343a667275341962fafe5c8c9a0c8f3f805da9345975c06493f8053ecb098f84c959ed5e1a95c86e965458f33249c32091d827a0dc43a9560c921ee55162121bc29c7d1532d02a591067170540a3f7de52e8885251baa29a6771033ea0eb2ccc84af315fb499debf3c4a621f4a78423b7fbc31933cb8c9d21c142f84c093c56758839a8902bf5418f3b6871a2ef557f3d175b7be35929435e97bcbe0410c0e2c6fd3794c2bf5635275224d1a7c906ac3335b6eecb468717cece59c86e7866e42d46cfba082d8a3310cdb94b74c67d0f5222aa634f69d8114fe79130f3352baa8dd54be055b1e00896c134e5839fa5cc82a5014d8052c8be65075f8de3487749d441b859d81a7ce2e1bea912d8f453b0d614e6b4b4e9ddd40559acec54e7bbf469b4ed616d2", + "8bd074b87b5eb373ff2bfd5588749962dee91d2afc43094f20633101ad593088feff90fc8cd14d590cb1bdc5bde7630e9c00e2824fea2e79a9b535707f292e8694d286a8bd7c8595be4b3406b870c953521e548cc46b7b9e121abd1cae9d459f8c63a9946d1675b74dbfcf8605052ec03aa139db8305ec1074daed8c103c802162ce763309dda54540b2844c31676b4f6fd5c61ef3f451d629a7ccd68edf1923101c6b7e400b4c115674bf5a1d04bd7dfa8acc6e81d0d5c61892198c5900b10cb5acd287c1da989b307882890eb9", + "0bc4e1179039fa8d65d965c7b02ecd6485f1ce3e144b6dca8b9394956024961867fd731d7745fdcc1725a594784b77db5de2890e0a0c6328d76843f8122672f26b4f6c498208f8425debadadb133e0373867f8bf5ff2cc9dc84e58970ef8d972f2bb26cad75e32ef2e301283eee66de6f764ead4b5177841abff98ad3fd68b07381a6b435c958be040191bf11f744c22179d4d45a4674197ea7a6cfe0402fbb620f45afea4f1f99db962fd6ca0b950da343bcfbde9e1a68fbf50070796c2edf50e6f862727d5164729dbad95308a0ad554a32829466ebaf308071cce7f261056b2cf4cd4068b5ddbe1700d513ead01cde339", + "0ebbb45a88e8703ccf0a9548c5079ccd9ad2b57444da1b89a528fa73f878fcfd93f05bd9a0f6e9a4a01a9d84be8d2f0b64c7ee251fabb61bf9d228a74c05731a7a5f561ab0be903a750a338b5f310970b2e2a538b4db692d125a0839b75513dc7650d87c006ef5c42976a4ce3104bc07bbbd4a470e0a37589a442e18cf7f00cc23981636adf95fbf6a631b3c0d57a72373be3d6ebb54adc5b6f0ff7682b8a578d4d50d12866496657a28ac0a1edc7061af816b7211c4ff240ddb77ab919c922469f5b881b8c0267ace32331ec4a1" + }, + { /* i=3337 cDividendBits=3573 cDivisorBits=862 */ + "123575bb0553c1febb0c0c8b3beae966ac9dab6a1eb54ad4f5fb23007eda97125a07d74264a0995fe3c025a0b0411ec85ae130652b691c05130877b02aba9069b7f14fd33fffb6eebadb460e6b2e22c0c9e87cd859bf3be7ab9879947a517609a7402178680573efddded450a3ee70c35cd95805431500af35291b094a411c0c22e57bb1613ad690afc72eeb526e963637cc632c051626d2a1fab0131fb089d4faa5451d6e5f81a56f7596eb1ad3e8f23c6886e5e84602f9c7d6eec78c436c33c4b9ca8eb02a5d99762b894bb387fe8d99ba44819a594d335fb8ebea2b040fd156d9ac84939c74d6b116ea521e151e36a5bc8b67d2b62b7496fbd3de7aaa16c518c9351f2cd3f93290f3b9fd8abf5396ab11fcdd010ce556cfe3824dbd8c1e49c8c9ae2d4afe504fdd33eaf78e460fef465174e298638de012e52a0d395138875673cfc6f4e2ee183ecaa1a2e7081f48b36db8ce3e78a592bf1b242a067f2457cdb130e86e5dbad3aabbed0232f31175ab95f66986b14b0d4f68f93f794dd7f7c63b4974ef35c905e9836fe9035a749aabb4b9d6a253e1e6ce2881b82900b8b547d662ec4c38228c506edf7426b937e131e408db51460adb5cb3a1952df6c6", + "3629b9619b52b074de35492597b942e2a6134b0ec73abd4c84b68f8867f9bb79752d06081d48b1dfc8b70a6af9d09366868bbed2d5d4629d9fb0b94a51abb3c06b148bf47c84185a99fb34b86c97d186775f9a448d83587d87d11e0eee2fdac74605cb81c830d01e0bf7b8ce", + "5610462ba713f8dd9fa8adb4400d3c87d612547473ddb3ef512e3d2c3dcca0b9b16e612f96cad5fbab257f4da0342f04aae81b91fd7ff80860d0213a955a436e40432101c6e6f6a1d49a599119cd4d81d9c8eeef6ec2c4dfec77efe6cdb59d129904f4aed89c09b85012eded59d59c6ad4c53bddd31908cc070a91beacb523fc29b7bc26f8a10b41d8bb67f7bb9ac91aeeb91f9f781d0e96fab847f957845a26dc6272312f524ef8f3bd9f4e2c950043419d9012bb1c713198cefd3fbd36fe96df3b2d3b6b1d04f628709382597de79f592f6c74091cfcbb9bc1e17b6f9ddfe09457e59c62ac4aa01f0701a1a215aa2c203558eb7362c729286f07c3ae035f609cf9db121ef9c55615b0cc5679b33b35ab4acb1e173600ce91e4693b7e8dc6da2299f9166b1610ed6d0d4ef4e45db128470e02ec0c2ec8d07d135aa3e1047b67877ff6c970a092984ea3ee34e988d3da69e8ad", + "129e7470c995238d76754849d55a2ffd79a728b800e67155cbc690fce3345ae92c8ede32fbf8d397c2857b3e732bcc09835f9cac707c60eb1f99d904b1739bd744b1a36212413eab7d9fae85317ee0273ecd2c974099d9a2de318aac0d7d80f85df4c606e06836b6c6cd6390" + }, + { /* i=3338 cDividendBits=245 cDivisorBits=217 */ + "0e85b2fbc06e56d13d0e946d14ea8ae15c07fb0a9dd70afbdfb6310bb09f78", + "012a9c13d59c30e95ed77b527487dffd22c956beb61abac72dccb888", + "0c73351a", + "3031a4dff811a9eb299a816dd7cf8eeb007d35b6de55ddbd99b9a8" + }, + { /* i=3339 cDividendBits=1903 cDivisorBits=1766 */ + "7b9a45ccd5e6b284cc0f5fd0ccf798c2020e097e0e5e06bc2a05a9bed0d94730dace1e19289dfc1fad00fcee873b73a6df97d61114300cff53bbca24b10625fddbb5e0b5425dd1abf56c697306d76bbb88acf09ce99169b76db8a8a48bb602b11db35ed1f1c2ef077ce4ba14b48ade3306625e37d9982e8d264097a9233b392fa25229b83033667c4314cc8deda7bacb9114cd514988aab1eecb012529ae6c3902d2839beb7e89998a9554d3feb39ea6c488b1e0a4d117de32c301e18e15a1c0588bd5db478984a436bc36b1313d0597c52b93a3f7760d323c857e72fd7ab5b044599868e0e58b4987c1c61af690", + "2e332078d98aa84b1b9a74b299fc695fc20b4a46902653f6ff9b05f5b9bb7f828279b3b7a54771a726d09025985fc83582d8ce2534fcd7081504f568cd931f7194f849e2f2e6dc74f66f8ac1842a340e6a11d1bfa90f1fdc8c68f88c845c7811c86dcee00172c15dd4d70847fe6be304d0327bd7124cbd76ecf89e8a2ee134b860e60bf8a220542513942299b62200b226f4fbbad9ed0d1800cf00802d51766329993828f7278bde9e1f09fb55f0237febe4ac6a9f7e8104bcb29747fd69cb035641e84b70d887ed1b5f80c03fa07ebb56f7482875b88dc452e862a5c0", + "02ace6e3c453e9b5bf52130cea464a145083", + "063139ba2221da6a4dc385b659df9c87f5bfc8ae0c4fd06fad6cd85936ff2ffe50e55e4b8c945a7fdaee143cfab0baf2480c097d80d5e8f8c63e5a34b05c95b7f4d9114f3818b107cb2a5d856df987708ed1783cc66306f67debd6203f25d98f4ac4e7975059d13b25406439e00270cf1f559ba115ff3506fbf0f5e19d977ecb374d52f97c9525216bd6c666d8acd57cfea20dddf37e495212b73f1d8defcf414e905cf75ebd056209c6514bf7bb7146a0da34c94afd87d836ddaa1adda928f324a32e9b2e10b3cbd25e25e8017ff1a358efeef7a5c442aa9794d42550" + }, + { /* i=3340 cDividendBits=3844 cDivisorBits=1336 */ + "035cfde1e81431b7898cf5e5ebbe2c9e3bef5419c27da89bd471c588550dd3b252e9d6845ea254309f81d8ce2021bcb0a559c9240d586c49c7c448e38422d8c767dd01d3893301c24bf156a11799d9a0d0b99a6ab6838bd3871d214395b59ee19f7ee00c1db8637226aec28b097267fbae7374d7f90d8f43c0e67ff6bd1aecb99ea497ba0c912a0b534e8904cb12093313803f5078415ed7afe5c96e4628deb3f867d204f4002180bfaaf3b253e2bdcb5e50cc81bfae589abbb838f0c40599900d2c58ff915a70e6a2cf38c2cd8fb2243dc72b4b36c12134f889e96a976e024d3fa86374c663247cb715897bfe098821275c9a28919bca7537ee0b81b91ec2a32b594912ceef7e5f07a7155f0689b66ad23e152fa204a221d7d25d31c55255e9e3784aa8438d5b809a182558a6959900878da2c65cd1b9babec3f38842eb4776d37cd7a05c554fefe8411984fb55a39143ed01035378e91580189785674c342df23e643de907f0d87ebefde1eec87696ca4e71fd9084d835d64d1a1d7de330303de9b705de15c27b3883a668ed9e25efe780fffa73d73042a5ec967a86fd55fa7ee15b619bdda683790b8267b27d49532623e8bff0e8289ffc420a0d9c737477b4b18b2191f3b5ee27aedb4a3f7b3bb7aaf3f248997ed08ccc8728409b893c7ec6", + "8b3ce4e25c0d519dd1cb31c44ff6690ce652cc2800ec013fdc0b537cbb77b6deff7e9e27de2abd0fe69f45b93391f0acd78f1c50b680c7fd02f748157c9a6d70a46d964363e4f197f4d9b0139251b0bdb2fede9f7658c204a1e44d2920daef5479ab5e54fa0d12ab2aa943eba8c772722298ba821242e30e3f037a576eb89ea3e2c1d375becba34ac52bd691fb44f1c2d45acddb39c5dfdf6a5fd68025ca76b9744a92c01aa0cb", + "062f009f2ef626d728d6be4d0f07dfd285fa489cc43ecb0b4d3505eb754bfdc0d6c8a9343240d7aedebd92a4dbba10e0058091b1b8d08bc79ddbc4995995bfba68b05bdd118eb3613e024f7fcb51cbd5b0a9fe7189d95d008a989f099751aceb3e96b6e1a03c74d84daa5688576cd8d49b25b80097cff6fe15ccdf8ceec00a3b637ee81f049d620cfa1c1ef5c139db14b3d31012d8d6f7f60d2455189ae14be5cf6cc4834105d93f52596cf5f4a477795a2b4dfd68a1f755f037fe7ccee26c9bc1c310498b42b5b75834d74fd0bed6c01fe3c06b3df96d09e808350322adeddf0bfa99ec730e15ff32caf4aec402db0482449956741bfe40943920b9188a1bac18143ce336bf6319dfad667bcf0eff54612e970c0e73cd433e32996f5bd92c2aaaeac16790adbb0de5e6e202476d99dd8af60198322bf0d758a1", + "5fd9863281c630193908cf89b034d545b4530268f6c31bc9bb2d784477ca5bfae609a787c41de8e9bda0f50a0c425955d8e1bb813c369845161683e7f23e95e7d5fa91ea58952f1387f61e72f95b82821737512f3b9016fabbf3a76929f78aafba5a8f376e15f2ac68f9793b849022633aea7273affe0eaac51f09a31ac36ee005ec9062bb8141f9c22b5341c36af4dee99a632c2d0f4715be2c80c462561ffaa1f31336ba971b" + }, + { /* i=3341 cDividendBits=11 cDivisorBits=10 */ + "4b", + "01a2", + "00", + "4b" + }, + { /* i=3342 cDividendBits=2017 cDivisorBits=1759 */ + "0138a1e8656c97ca3edc070c770245e3e627a19115d55063484e274667de95f2a9029dc36d8acf9f2dd044938827e72c08b04ebe1fa0553cabe88de580d70a37e0726ae11e0fd97fc00ea76f18616e24c64b35ff4a9ec59f5bb33ffce336d485e4e2e5aaf4ae89ae62c32d2bea316506b875c498cc92a19615dcf3e40db00813db17e17f7169f7fa4b4d63950f90238f464f33d10e7ecd88a64dba00b895c75d2bbeca8be292be7c3467ba9c643470fb36b678cd4250cc37bd28d8f47b19d02e8f628ac670af8dfc38b4ab4f4d40f85dc29c43e08460c4165e195dd5ea1d95f390ec64f139c8c649be9855842460b576e1594431eec69a0d3a5657c2ac", + "17f4d961b55f059b18507ea8604a1bc9c41ab716fca1932a234a289d657b183cdfcbe0d807cea8d540a6cf41a8d60483e394d0e34fc8220e4a6fb1aa15658e058ef31ac2d7a151885cc3df21fc4cae52ba72647f087dd5b278e70ff80655a397ee93f0763f6a26e620fc2878414c50f8310a5a2000359ad1b1b1653ba2f5e70cc87a9393161e9bb949ddcc82469955e7daa5bdd9cafcf8be1193b50f8bdafe31be7e328f1d2c7a5b1fea753b2d59a8fe0fdd5e168bc6093dc5f16bbcb67b3e00d84b6d3c962ac4691c90994e694370610f3d5c63ea4489a174e393e4", + "0d0ccf3838a1dae07b784bf4fa51e3bf28081ecdec282f50d1fdefc131d07f2a99", + "0d969a4312cd415b9b7ccb74ab4000fdb71f2281766c047945f20d5f43f870ca8558781d0fb87e49cdd99185fc0e4bcbe5d4ed1708e9a3989b504579909b5eb835f53a7cabb2e2adb1b66a9f33f0ba0f0f4f9d98b776c16da827bda5dda681f7b8d27214c3c182544d3335de9be17f0ed73f060155c3ca027d6c24ab34ff342c807263b04087dac1ac869c601323fe8a590136f4928a2ddf73e67cb950f06d76b18197b7cf8be617730f1fdd6e536f9e27a59da78dc035e40aa1398ffe0c1d280c8a567701a5051fa812e45afd6ac0b34485962ab71336da85f4f768" + }, + { /* i=3343 cDividendBits=3943 cDivisorBits=122 */ + "243beca2568c23d9f00a156b68e85f745ad02387459ec3e992a40ef8ca6f6d1b82f67d2f565d8422527159976e85a3ddc1ae6e9476682b1f90e1b8fdcfe86ef38fa8012a4dfb02196da2b02259b0d0d669cef468edd80e72a3d0a039129882e8e86a37fe832ccc66f85c3affa5ff3eb2320b0d475b22fa823b1b2711d18c7ce1ba9f6916141ffbbfd69442c2d30e8b970c6eaaa613de3f2f7b7941ae2c75807c680b18c071c36926c44a11dbad50d27f3fccb4a3d78d823a97f97694f1716ef05ca0683d1225cf3e6173d143b2800bce78390f4b904a8bb476b8f5da5e13f7fae4ee794c917be51bc586338a6def52753e3bd490ca4e0debb18d134d8974b5db9d4c1d5b212dc013a8c67ddd23825cb45f1ce1f4f8cf3181af72d35ec94e3c184a59daa2e4015093ad6e0bb1e105532ceea88c41aa3b312c66a3876b70b3d07d540af7d37cba627b0ba9dd0a8535f81e601468f2a16183c1941c289535b93eef814ac57af03dc8bd01ef816c0246809fccd5e5880125d3018bc25a784048b05d306e4097bac25d7d97d29c4624bca9fbb5c1730255de6a3c93f7491b4b971386459e16577bd995dfddaf94c5a9534dd391ac852c059d4a15e3353558d839c7dcc1a5bf22f28b6b2c4e7811051ed4c7a7d149dc68361ddc55a7331623da97637829116ff7fa47dfc2a50a378dde", + "696e664ad55f7e5d0d86b82f4c388c", + "57fb14f2c7dad1a4bb8aae54fc2363b61eb1981ec573dfb016fd2c757983f749c0e294ea4348251125bc7e0c3a9e81251b4f14bf17b80401a5ec253684a0e1121a80d075e7415b7192b132b65f536f2fefe792ff62b2e86f0741ae807995df8a5cbc3aba4b4cb965414f35a4ac91da2d48855c4ce5d76dd3200a25e9f4348cb00303d217cad7bd26679bbf92dd8fb572286fa07c3c51c930d7f496a0d400467ffaab70aef97bff413482e06a50c49497e4d58843f02b09bd609889c5a3ac84ca6a14be2bc5589ed40f328eb0d08a527adca4d22297e19f4adcc0d3f695f69d0a6b68f3d6b9a5fbe6175e4364316f9285cc4f1ae3f5a695f20eb594ca2b3b20276d9be04295b67f9fc70b607c95418d9f1061292b4098b67dfd34f4b0d9cb927bc151e6a6391e6a45f70f1d2458608da507353af0557b58a3e80be218737c664d0f71af59ec031869b33a70d2e288f50983e12fa4fe89a0d75b367c72499e8c5f85b08225b11b0660333ff20d45106d66586da52ccf7f1f46b51a35bb8375cce21f6ee9c0a48b600718e556eacfe329b123f884ba9b700d13b1b0f5e98882af2e4fc85a18804d26d8f9b02f1aa40258450b211bad94953d52f274f6797529e6d7401762f1eb69160466308c26f44b9de7b236e2a49bffc8ecbb0ae29c6323", + "16e3e5e3a75ae69a9687560b9daeba" + }, + { /* i=3344 cDividendBits=3101 cDivisorBits=2596 */ + "198f4420d581486a43dcd1e3ec6b7cbad87916cc4eb045bf9934220476b235b391078fefa5cb8e9ca1cd8e3fa37c47cf2a0e95a95e7e9511116ebb7015f5ebd483ce151dc1ed81ca19c48085e3740121a2090ae2cafaaf7e24819489fb700925fc01d550c875166808e249ee2a4582b74e869801adebc53b718c0f88e98bc0286c11690b482151a12150a0f29a7391841df2d854d68bea63dfc6c6cca2d4e469df2856ac3234f54341fe934306e57b3468b62fc958ed8049f589fdd83ac02efeb839c43011fcb3ea9f009451a5c5adfde67bc91760308e890d7890b6c5dd0bf1e775db0ff2e1d3ba9a4f0b7bd75dc08897672c450b33333bde20efe894df2a90a1cf1aaf1d5e4cd9a75dcc68145acdc4c063a23a8a7f33222db6ef48de2c71d1293f46e99991a5a67d7a21f8bdddb29eec4f39351fc70cef92245984a95d984928ce0dcaad5d0cf19dafded3db14dcdbf61844f225e27bb3ff5119d4388b0101ae44335ef6750882c8cc4537be2b28026d25dbee00e02fa9b753e61bd69d108823376e00", + "0b85e4bf760c8f6677b99fa0f86db74539e59000d8138f507988e0baff0cc58544f0a824e5f722a7f77c49570bc6b2447266db7c6c72627c1f7fbf82ce81008f3f009f501c6e105e7a1226954538470a80d40db217137f5ceb223ae622fca3007b519e8ff702f53e7c5c9d44acebd1e4431d84f3c786bd8fde51f617692fab911d751aa19d362a91714e2cf78e25b6a11e3924a0a0995607150d6cf5cd8150b4de21ff06b61c6d8a2c258c690c3fea41704b759d9f412d296fee7c50a134d60f165c033e456f57306883226a0b8f53a15d0109e94c47f61b12a1affc6d7949ebb4fe0a9ae312e5b369a6b76372a4c25083392c08d3b74fb1a8dc19bb315592eb3ba3b79c47cbf915d25e0b675a6526e0e38b98f10785e7bcb22fba983daf10bea6d01573225ab6868d4c1ec3597914da7ad988ef6eff18909df1904fd5b75506dea6d22a87", + "0237d7c8c94bc602e54e0d59cc1517220f225715a5d70e95e7cede91bd6ad30a0b52f69f7c1fe07b4e804ea1b566b026466a15bb62702b1580ed3ca1374e102e", + "0871fd84314ca84a2f0840500a246f683bf34e5e4946cbc2a02d5abebd81fa0a2d526a3d489556ef14c6b6852a1198092bffc2fdedc34b7c84dcd53af5361daca067a0246e18d2923f1af40bacf836ab052bc67cf7661dbb87749e3267bb8fe2127b18823d3e36e42720aff54c3ebba3ad09cafbf609cc871bd6f9e770e73ca50ebf4286eb850387238a4c4001327d1618aa4170b0022c36d171a9051dd3e254d5fd48d42c6ab687261611de6ce1aa335415ae3b9ff1f85de11a25458da16cb3c7417870448cdc2fbdabb1f61a5f4e16ed61470e738920ccbcfa49c4e5458e6d3f623d2c9b0050d2fe7a3a51367d94e82db7f2364b614b517878944996e4df4decb5d26faad4e12f016dd075c623311cde7a8971aac97f163fe5811f5285e0b9eb912fadeb6ea9e2be26b3ac73e8f41d9ddff8fbd9f11aa568ddd5e0d59c1a8c0610a959be" + }, + { /* i=3345 cDividendBits=2836 cDivisorBits=2646 */ + "0ef1d9ab933334915bd0443208b15696d05f0bed625b192970a8428e4af0a8ea3a1dbb983fcccad75f97825499e158e059667c0df867b0da50b264e490e2876e71e109a66f8b276ce2268fc92aab8e6040c93c67fbb868eb68e2e1e4f27b0b8e7cd3d99418561ad0e039d7602cd026b842dfcd21ae190176423167826fbfd873b1166d5e93c850ed9329089c0f51ad1a085eddf452af6b9ae7c1bc48102f85c73c3f6ff6b56b71a1b5057373bd2629bea0b44c02732d83c421bc3dfc813e8b5b88155b48ebb9cca0554b0275a193bf497b90545e62329ff88dc625b67bd383ca5b8851b3ab370b6a4138bfcc8d02231a50753c05ac0acf48ae23dfd0b4149692a6a370a8261d83af60743b4175b46514355652a829f76f1866946a18d8ab85891f75a610f259e88db819c4c9804a5db412278d1aab0d28308e6536c6fa4ff77f201fb936a1e03a56be18733dda433f55638674a8a07fa1c1c22effacc383589424769d", + "3bcb56e7d320362a96e113fa5a8764c7726b50c0264679903292b582c8ba0644d1960b490549467542e5e235ca9bd5f9d858b8d0e98375d1f97c76c1e08f68163904d82f96848a7bd8d81f6eb829c7f98a4cba990a0b085d53972a8f25cbf45d9cde7e422f9b74a6b66d57b1028eba33caaffd34c5c95a41c4c5951b8b9a7d4792dbe273e9517c3600314ee062e98e8ee88ec3ef46988849577347df0053b57a44b2e298dd6fcfdc3a82c502f36d69362a3658ab740c7ac4bf1c3990493b5ac1f7acde15d699e77b3b6cd96f6f09e14f727190e78861b7cb7fcadc9f36becbfc903e28b0d49a581cb260cb7d85c98df0ab45d0dee585954a23efd151a25b9d5c44f6ea6cc506e8499fdfefda074e7d53761507beb3a32959ce10b3f66102bed7645fa3a0d8e5ed29faa5f59c6bd8333ef0c27411e691cf998d6ce853d8b16039de4ee88788f875ce74cff6", + "3ffbc8dc4e606e46f2d8613bbc0632881117ba189c0aad64", + "16c91e6e3693d856d7047f63d37ca709b867a49b857189564d608a356fa6ca22bd37f962d2e190abeba10f6409a9a44da00f1786b8610ff8ae9ff4ad74ce1f712e9179a4394e76600ac3490d90ffafc60de91fa890f97ce4b5e843b93a357c7a4f842b34fa1e3c1c1266ee7a66d300cf10b19ac22b60d4a233ce35bdb1fe35ecc929639dc05883d09558d0c1fafb4bbf98f982bafd34efbc7d6477f9b4e50ec882fb5f7545b0566969a3285f24da973897e843c67076a27947f4ebd489e1b5fdf95b679dd3f2463126b217a02b37269bd5b82cd0d541583e852e6628e71777b4b3193dc315ce4c0d4b9c936d8f2d92fee432bcba77c4fa49f3b190f404734eed9e3a1b69cfc76cf9cf11fb22e816f1d1157483eb570ccb25cb1483e5d8c96de459e9a2e9263c335f32faf0c69b995a59a760a61d6da814d360f6bd7a131206bed2bdc76dcb5e74f65dfc85" + }, + { /* i=3346 cDividendBits=3130 cDivisorBits=1099 */ + "01170cb616377732f74fb9c5ef46270a95426c76eae932429ecd3ea7eebf0406a5fad1ce6b471c29f2170e2d95e420468e61b8d484b7d50af172e17d72d23472686d85657bb3b24f2bbd7b16c9aa056525289ddf084eaa661ac5cce189ee1957860b9aa0e35f38175b8c6756ddc0e866efb08afa27d44e09d8ca75e494214322c1bfa032e96403a44c86c9e53647ffa9854bd447df8dfb417eb99914d6a7247201c5db5284ca4dd84ac29feced10fdb4b38e1428c56892d23d85acf14c0b518c7cff6deea69ab24d43fd1d81a51466a8aa0d7b551d4be559ce0b3cd9431395fe0d6bee502d991fb68c0bfceab08a1ea5e9ece89d8f36ade8db10e9d9ceb59681e19c49fa596c0eaf31ca08f3edb7adea84378564f19f25f5c60668e66eb03a42a3453a39da6080b802df8afdc0dcf1334738b6cc1f22701c4b8a4c570ed0944c657da8b3525118b2328f9595b4a99609cb8f239875a4491fd1a9ec1b33cf7ed30c72a8924e9689004fa7945b9d7f77e86524bc151179e4823c3cf485f877649e21ddfa14b0578dcf", + "07a8ebc8977de5edfbf91f77fcd1d92f402e13dfd7a675afb7fe329f3d0fb2092e621e17a7a97d32ef0841c65b1698db69b2900c46ed4a11e224ac39f7e266bc514f0cca7b1018b0017ec00e8d0f71f52240d119578f07499763600a22c08f8085f9f2bf42b203ccc15702907dcde3f4507a66712b7f1ee463bbbc776609f611f791014bf17418120aa5", + "246e20734f1245a3d4a07bdb8841d9faabbdf2b5358e9e97d945647057d3ac85e918ff8e0c58c1b840f9b681b9632a4fb4c72ec8345d76dcfbfc87dd81bd7251a5aa8d75bb7c877c84db6fa2a6da6c8e7174b3dcbc9186a5613662de0d7339569d083318c462d86010e65fe862ce6cfd1acee1efb6e9ae9a3d86f3b8bb16622b660d28e9f5afae2205fe59b0c4d9f25646d6d0ee5426bfced428d46a188359bae7a37dc5688efdc71113b2ac51dfd75170f52c2c9619777da33e1fe8d65f79930978d0b0170269f0fb2a6076f0b654e1ef8c88e43e624c46aa550fdde544b57b05ed0fb12d917c4b7b469bd39458d2c7fe401bef859f0ed4017be9f298b4", + "05eb544974be0069a5cd15fe5b69cc82c9fe64309d5736f909d0215adb4b45a879ae581383979a570388fd96f342af798a12c6956cbfc21c68aa7db7ccfda45ee194dc589a916601295304a91bbdbd3e9f55b16383eeab1299809d9bb5e172eb4b0b5fbf6d5ccfb78f9a6aa736d7ddc1daa3ade3087bf603373796b38f8264eb2976be1a5723d05c19cb" + }, + { /* i=3347 cDividendBits=759 cDivisorBits=47 */ + "5032a58337d3fae9bbafa60cff71ad5fb6abba426850c9eea0d9814ef2f1d54a02a640ab7aaae3dad2bf5af8002016635b0b919e2c273de5c2611bf2306119e796f4131c2b7d5b4220ab1389b7f6099a3b1174f2309b7722f34201a8de1f12", + "65ded40d5cb3", + "c989708211816d1872e5515a57f29a97e6372ac1526b1977e07f16f7201d347935e57121e8af40532661007acbbe15c654610490b15a0a71e7d98ae593a8c72b0b7ad32da62c812a79975afcc180fb4a11879c1293b427e3c4", + "295f7a2b6d06" + }, + { /* i=3348 cDividendBits=2987 cDivisorBits=69 */ + "04c71a892e8f163655a243c6e3244d1a924e544f3200505361939fbe0724230018847b94454b4846c4a5ecc08af7830f9926f66e96aee970c41d5c5ab9e1a6e694c5fa3c99abc60c626dc267db74cc55a0749c1f38d6e50248eac2bb8d0e4e83f61cca72cc0b1eb9e68ac799534d011d79e6a9769e62b54f1d164f0e225287bb8561c825a42520928bb2796cdd3922e09926b28c26c162ed6808487ca93231920d703ad51a92d6a2c63b64e7e5b287a837fb36b077a9063c8efd78618853c235ef63788f69d3d55f111e541f19147e3774a06a3d5dee06b492ecd30217f07a8393547207fcaa5c71834f7a454dc41c0999f928379c035f97b24bf19b6ddacf025d2877ee7a9fbcc3e897f6b0332169ce034a710aca3fa65ca28ad2a6cd14e300a43b016bb7684a8b1f6467b417295e45962876bd1ae4a85f1b6f5697f559ea36f30c111854b0bd903cb6a21cdc790492f8d00730ad754dcf54e525a2c0a41120c8b43843c21814ea1a4f74547ebb2db47fc99799fb00", + "144daf266acfc984e0", + "3c3dbcceb377526ac302a059589d0fbb5a65568ca2898adb65788c840b6b9d115be9a45e33755d3ee8251cd3137dea2188c26b1e32bd5c77aafec6bdb27c35be0e2f8658693305bfeff40182869fd39c63b9899c677605f95a091002f1ec5ba6aee2080b4b6123406bc1b24161467b14b0d319ad6a2eabc2777b7696f2e49c5a6bc781c6f400cb65cc0cc52b8d3145901db7366e30b719ab376ed2d0dc760f22bd2d23c86713158866c663fa9659d945554fd5e87d537f98b09f04832f30e9c8b66425fd3f28ea9d1efc415173af16316b2f6e5a2745c4f98a6d3b46d7245edfde946670b3a822b0b6876ba39078f038563003a361b69e626f8a3d1f2b4314d0cf21b0ff06c39ec97d926a2c99ec4e30624cea8b57976b8cf8093a9647caea883d1dcea93cc5910e39c3fa149418e4a610aad6fb31d68713da6aa7b0d89ce7aa492037b63c3e3a7ba2355d2bcab79cf2d0730444be33f31d63592adea8170690c0b2635ffe515078142ae19439", + "0b3d8020764a09e520" + }, + { /* i=3349 cDividendBits=3933 cDivisorBits=3335 */ + "0a03f267f1fe3b22aac92e38e597e8f63f0ab8a25ff8a3640076fbfd822067bb347b6694c26a582c1ca4dbaf40624ac30f9f3931b0ede669f76c7a6b55d968aeb721d422b533d86a72d7c10677829090f1678985352464767078459197ff078fff8f6b71e740b4c9df67fd2acd8713df1d3bac8ceca6d23a038bc99527cff9c4b5c5260cfedd0c15c0dff570a5e9ee991c2bfc3aee1e18c6c206a337c5cd6584af018d2fdfc4efea1463145ae50cd56cd7bde3ddb083783554df934b9320040781aa0746fbf079a8a494892d7cd25fbc02ba797c7a0fe4497b1de87af8998a29502fd2ceec70adf31c82fe97d5ae54f1141dce7270b3c751e30aebf8f9c4a47c3d567faf9d8cb5d80989443f3afda879bdf5130f35ebba6c0637ccfb5399abab25f8606f95ddba49d9972120c25b887cf3fccaf9e8995f05aad1f969e60daea4c34096440e16ad2847f89add8f1590d7ca66bbe5ef1ffb20d7fbfc49507390d1b708cfec3228caece2d69464b0dfc8a1f9c141532afeb9e7ff91178a6262309248eab7a1918629946f39f291798a24d34d2bc2b491acb90a73667defa4e80ae5d921d302f1339687de07a4309db2a799eb1c0ae3236b32198f21d6ec55ca0e5f66abba84b3be8e7be51765b99b074d32ea12ec18c9f19f6f22ff1023a5d88140d29fc79fe7642381c9d52917", + "3f62cb101cdfc83b44e2a563ca98a666d6005e397f50ec853c29abd546dd7ccf0f76120d4a8480f932237d663cebf3b909aae12a11b7c6f6cd8dfab6b25389299fc485b465c9db4f0261b53ae13798c44ffd92df35ce5671e62a5d7e89c5a8264c6ce5a7658e00167ec3ee7613f7cddf4da84edd1474636b1b697bab6ef9f43b839bac979f314c28994b6c4fcc3b405e96138c3a66b750afbf8d11c95d8290ef018c9d10737e41b5fcc1e13de1b4316a4c1be8b2a71eb42c6c381d8e03f86c0044f5d6cb7788eb5f3d0264d49f7d9e0dd2d81226f2a7cf03a32b500b84de9659f1de3cf5908c3b3fc4b2e9e349a57e08e44c874c46bba8c1f9bf79844ace608d3324b4acc698ee857dc16bc226eca96d42e2fce7d382765d9d926baf2b5b1b10d29fbb2ca28382e3bf1923ccf65e64b80dcce3ed8e16e8ca5b727287b30f465b138c88357b24b17a1d7a501e3e1474fd3e4d1ec14eb342449005b438a27bc713ae88491ca935eb3735b8da17e6abe14b262ec6364022343d5bbc88d6441f13b03660a9bd9808a35521cd80b0f0ade049f63437e034d6bc9dc577baf51ad5944ca0", + "2873258d1218f140c51681036ed49f7250188df7a5cfde57b2a0b42f2a5c1708d6976b9ab742162e6bd46ab3b4a9623460c2821da7ba7ec2066d9a180d08f5c558893431d99da419362cc1", + "27056e59ecefa2f2624544f70075cea0ab1e977de71bc18485744d9e7ccc4099ed97c6701c89b9acc5dd3bd219c274e81a40db86cd991c7f6ebb7aa577642b7203b136bc56274a823f3f9f94904071f6d64f510c3eeebf3ca738ad92caebca2041ffdf3335da4d4a6104335d070ca93fb4fe8218e27aefc853f2cb9630ca1fc9f467e32d9331350b18f394448ddad61aa19c165cdc8ceebd3e82cd584a6f58124f69a2cea1fcf84afdf3073ad0bb70bc4443206bc794eba84b5adec315858f5fe71543ee6661a31abfe5b0f088df03573272205e28d1893a48161303fe71b2573fed4b5ddb2b1e4dcdf6fe36895d9326f8a7b5e06bdf23ad71222ac01983c85f946150f01ba8ab1f81a30741365a147c997667315e961012d5aa88f37ffccf137bb91b9e43b7d69eafeb87e8b4d2dc91ae91f590a26c48fd2bb65d3efededa3e9e2c6059ccd49d916670b4bc402e28e5d85377c2e34aeeb817db53d1f3e7d555892e27d3e2542ca80944a7ed55524eecde45ef2e5f101394179ff61ab17fd0d43fb420299b8c6c4e794b3d2c1229a738db3f01352d7a1e49c0d52cfe4d7e1be477" + }, + { /* i=3350 cDividendBits=3378 cDivisorBits=2233 */ + "036d7f44e92e7f4e55f5a9198bc2f466ea248c6931641b70ca3dd164f599f023dbe500568336e69a9b91e6eaed1456fd79937e9b11bfad647a9c9a52fb2e413a5ee9868e971ab0953d31b176c101663b20416e42df8fd91cf7a167d7f0e25e210041742a0bcbc5e8f6d1da8ec0a998b95719f39e391149f6917ad0c3cedcc380720771938657c56e3c7268fa60dd9c68b0b7c569fe3a94e28b61ec7306d50dc8c5db92ac6c461198176893454a4d97bba32d82dd71222e37eb0a9597e100c4fd6bed123bbddeb463a5aa3ac9121f4899c8d24d1449782e41fb02a9f6a1c4bfadf2291dcfaf111dc453e27b93557428f01a25bb4e6971e4b4093b5ace96b860b3f0c7020d3e163ed66010c6b582683152650af3d0999d5eb698ffcfadc7aacd134cacfb62dd43779f842a9229170a1d6188cdd6524ac4ae67b5b28065950518f4a37fe9140dbf8335c919f27357a0a4cc71263053c67b9b8e0b7a696263fc7bb4052dfee21ecebba994b284125ad15e15914c706362dae1ca7a98361a31194e411706d103df457cead7ea32f881fea3868d6a5026d24f577da1e31fef8d465fc640f007ae74209d", + "013efdf3ed38ebe1bb1e5cf172fd5c6de93aebc2752f970ea5c63ce30e8d29856602010e742daf41f17cd239ca1f517d3f5f016f28b7bb1df8f7517d88625b8983f2e600a36ad65fdd28cfc588861310bc77bb2523152c15e712991a5dd3fa2bff0ce21d54f2709e5aef88ec664ff7f981969639d26c5a4b3be2ecdc6143bb3df670328116d76e68d2f34e0faad8a3ddb3edfee98f6eeb43036642ae777a595a9cc0957eeb62e840f236d6898269a9f53b9053bea9b8c3f6e08f8224cf4b022b1fd8b84eb8d1126681919fbe0414c7b16463faebd3639e6f49213b3337c53883ac59f5136725f3748d81e2b815b32e008ab3ea97275bcfe8c321124b2ec5656a112646fc4470fe580831750ae2ccc00652e3dfbd3d3cb5b7", + "02c0374b14130402e712c9b03b1b7975911621734482c67392700061d7232020fdc57e39950295faa2bc5538df35eff1774b9a90de68247eda5de4f05cff8d33b06c862cff27b35d1d75a3611febd806ed751b0670f8c3c079ddcef5cd3727ed3b0faa37a1707073344e6941fb17c122d34a51c22c8409a87c2800bc50c4066f2f9a0065a1bd7978b6ed40d07f359d96", + "e57530bce4bbaed7b5b74a0b2967d4291de8231b172ac7a7110fe1d4a30ba7bb0ebb86951fe5282b7143fa7445f382adca13e72f4b788a0c2df9a968ff4bb41e0a82e60eaea6b687a623c9cc53be3a8980148ae19aff70f0df18c4e047a7f7961493d29f530065f3a0b123d50450a33100c560ac5f97249ea047321ab578932a15170b6b6af6a472091c025b0fce61ecb06758cac82745b26f95ac921c0909290566bb7ca0a923263a1e5ba067e2839798bd1774d1a924e2c5bcdf8cd9de9832ba0d21a8f429a30ba1df6f561a4a12b1aca84ac6982ec67e362a8b667b9579a6e6fcf38f5fa1bb296c9143c189437612e01b3dd9bb38bc97b8effaf4eb4fb4e5770c5b255cddd62b205a29f31f0c6bfdc99830298d6c63" + }, + { /* i=3351 cDividendBits=3082 cDivisorBits=3038 */ + "03d740dfe68aaffc4e9564005611248e0f3fdd23f3a3748f632b774e92aa8735dc66e8013361271d3eafd0466709e51cb8b0aa0b062278440bc9c454e904e4352a37d4ae391024a9d60b4b64d8ac84599b6b50c45ba01e8dc2c7854a8a0f554747613dd4ad441df90401b502fd420667497e598731ee688cc6d1479cee957bab6b46654dcf088e3aa85b8f918eb258d74cc8d26475f202c693db2d79fe99bdd134d678e180b990dd0a1d3c2446c8ddfb41962c0385730507a1067671f164290750765dc74f12d0dcbe3d1e383a68d99d3421f333d04ff1dff4bb7557d93827cf568c592012f5bbbf3888e50b9af8e0df939d6ec4812898142744160f7f6a1ca9fd5457b9a7d2d65ff5dbc9081ecff318f35e218c55b065b0e467a7affe1667fbf03faf110b085ad628c8037abfe5199f2e5cac6ac35995b665c3ff517861cc55945161caccbb9d7a76fcdd52b404281fb6e7d054ee4f90924abcea5cfdc808019a56a7787af465847694692b17c7b8b6f9970868860d396653d5925be82b88c7c0ee", + "18d8d6cb7a4ea53eb6b39bec1ff026f22a32462ed5e5649809c02ab63fb15a5447743c58088a2a5901c64aeb69947b95e70a754eb8820b636f7dd997cdf67fe4e4b40c0abe7fd28e286943229191ec89397332184248a990488199835f400cf096a41172973397cec96e747b803808a4a9b72aa4d32c24830ea2b1bd40caff29bb177208e3504ea9501dd69abd68b8f079159a570e1579d833fe8642ede0b3e7f6c07e63e6534f620a10277b32cb1f01ac0a898d8493606fce3ba00602b36e6c1b3879c3619f3754a5826869d8ad8e0f0b7c13c3ebfb9c9fadb58194aebbc24351cd74ffb717d58d81e4dd71caa792224af8c40f1c38e14956fe28b70802cc83aada093cedffc7553d3784583cff44768132a1353c91d33766d63ad6e6c402c73ef7ff1b0f323a29ff641b1fffd71771268e67c8b77e8b350c87f06b6ae523209d83a4ecfc26c1a85bef79569c9275a6758477667a19e601b6edae9c233634da19a14b0276f713b50135494e30bf73f0a929a11e15a58bc8dcc64a72", + "279280a4aa8c", + "073b3f7b808b93e434a8590d2a588296ae5ba611dcae24f0c13fa4b4d5d41db24b8f85278a2f4359b5cf393bd762c25fa00fc083bc48143b08975b2f43713d804e186d452f223933f903ea1558ed35a71c55c6d527f82eca822d029f2088e3713819a35b680f22707c2566d374d762581225dbf06e16034b1262a7d28ed2963c4c8bf600a22de560e4475f3ba2e1fa39bdd92cfda0b4733dea17a77be183746fd3e52a05e0ccf365d50ad0b11648f6daff3bc6c7b5aed93f62cceb6bd0b33f83cce8cf68f924da15e930ead138cc9e66bb0868d96c54920f0434dfef0b6a50f8b333dd916e569337ff9abb69e8e3494e7b49b9198db7adc12a9ef3be98da5b0e87ba6c0716be9c3106d02b93c08911757837c3c765a0671f4a7d464c399a4314f55e42c62f900b69e7340c0ca66e225229350e500e44a335130bb7a3104d09ee3276e44313a4f790355cda1420f9d3a20554562c33beab62e37966204dc7864c7f863dae57d7fb2ea69438d0d0aca66c3ed646dfb381ac726ddf5696" + }, + { /* i=3352 cDividendBits=1595 cDivisorBits=503 */ + "079aa4312fe89600336b65f2c583b52dd8f1d73c74b92cfb397b4f3faa12b0daef7bfa90a980f07cad1f3ce1c04ab5232e8e01e6e9d307a7d1dffef1442c06e7cec77e3ccfbaae35b85e045a764f7ee057616b020cf3eec0798a135fbe3edcd444b3d0923a1e8ff10fd01121ae8363138e8ba655ae2db77932236cc126bc08daf4edcbaf89f0e83d41bda02f05b4cad4bb5a83fced2b8a81b1e655afb33fd802fe5515b3a567f37275ea8a7c61181c26c99d4c6f904a772db41e900ad73f90b4bd8e42c88487a5bc", + "387f6c8cc286865df621773726635de51f4498393f8de373b854d01b1ae4cab8cb30c0bfd569700d08c42c5ac83f9b5d9b7de9a27872827720c6b9beb1cb6f", + "227488196d90bac1eec7e5c9308aa143f70876c3ecdda9fe0c3ba28e3747ba2f293175ce401d0e6e3aedf4bd82a1421cfcd4bd071cffac9718867c85b8a7f346a61df24d109e85d06ada208f018b5d63b6729eb1e609627345f076445f0b451c1463454bdc651247e297c6486f1029723f7a046c2795b5f5634a6d47f58952ee0ec4629177b73f5886", + "2afaab4055e1cb819458ce5dc538019db70ee5c2572dcd8a3f19208f8c83fea70dea88bff9da6474571fc2b9d2db2d3ae12d177044011a39b1ee3b2c3801a2" + }, + { /* i=3353 cDividendBits=622 cDivisorBits=197 */ + "21a7070af9a5afeb7e2b269156fcda834d056bbc0ba77f04393de7bc1f800c7b9f84e10d0f2e1297f711bc40f6a81d99fed6ee5e3b1ab31d659cedb3c7b4b07cba818503f80b6df33307d991e422", + "09c2fce1af278757a5dabdd7cf28e02ddac759aa59873df6dc", + "0372893feecf2637c77cb4bc3b5e1d19aafd4c8c1fcbe18dec11ef10e3091d4bfef245b5d77c9d613d73e78810a74db1e9f3965b7390", + "05e71745846a170d2d03a8245d0747610f6150386b489e3462" + }, + { /* i=3354 cDividendBits=3157 cDivisorBits=451 */ + "19853b00dea2ca37f4829bf4ed73d729e30d9499e87ea9417cf93385b62ff9d53e3bbea30887ac91f838a4bdc6456995a3445e5a7c9b18c43220c611875f777d010d68898f6103c77de44d924a5b2bcc0aa8a45da5d83f9664d312db560c3f636cc55af839fc71f3b60ce2a3a4500f8004b2d83706537e14405cac42eba8dcaaab69112419b3b3919fc911d4310f1e995e7874d0486eee5df00e068fa5dc4ba653b248b8f9aa23984f4d58cd8547a1ef0930be85c25156e3d07a67b1cd3fac44304fd69be8f91be3fc1c66dd5ee11a2fb1babb0a9d8f10cdffd07603b20e157b77e8601ed9377953d635beae0926f6c26cf6a21adccfe773dccb126ebd107a0ac33dec5fa6deae1d0853e643b3bf5ec9c2cbcf8aa02c1ef9d7c96eb22e1e2836cef1f3d5b9f232a6746620e445f258ea9245d52ef486b16cf6f7e796e62f4791c05f135308513881d56009c775dfdad4c20f1ba52aba4fc4d01326d3eec84a1a5cbf1b862f94b4f8edcc6c8c5ce8c2345dbb54aed970b96040102c7500ba00eb450694fdf8a44ded08d937", + "f50e5d0b05d4098c3571efde8914692d2ebcba2d0f4635af9915d2aa811cd536bb0a36893721c1f70278131332abbb4c94cfca526da0094d", + "1aa8ff07b68a9ee5038e066c9ea8d1b342e6a6ed62649606c0b2c19bf1e4ad8611685845fd24a002af1c237ee57ff1c60b0bb8b4b85f1a36a5ccd596a54fab8764d88e63215725ea92f6ff18520423c8ec1acfe07e74ace24223610d9482580ab0df0fd941bc33c4b119fc4f12790b25a1ddaf66d12394cbdd951b1b0c2e924568a7d1618b91851a4ee1c2022a9bbe890e4941047aa6e2fc39596c17b8ae86ef925e3c82b4bbb9611a270b36436480bce0df98af93bd24fa4e9fa4bba84ab360a179ce5a0f36e6fedfae15e3e92430ffd6a15461183deaacc68d6f4e6e3c555fb014e7f987047ef5ed4164f8d12c7a66147792b2610082dc7bb68b4d86ff0c2b81302f85796402e17fc306bff542ce7d9cc451457dd1500b4bbf2a52b824ee403a3318c819a2a4cf04e5521793230c9b63fe29a22cbcc01deea5cca4ba3af349bda2ff3e7fc276fa6868054bbfc8d9d6d4f8d1", + "2a2722f04771694ec2764341b31622cf476aa5049032a2c03137cad2cd2135bebf342f8c79bfb684e5cca43e5acdf48c4d0f023c529aa95a" + }, + { /* i=3355 cDividendBits=159 cDivisorBits=144 */ + "4234f5bc0207df608989b14ee0486f4a9ab97367", + "41d8c672722bf7b4da1ae413f798b1e33677", + "010166", + "1a240bd03e2f4885cb9ff4c37ddea08448fd" + }, + { /* i=3356 cDividendBits=1184 cDivisorBits=320 */ + "e2f2c45bd03a0e23cb3f653f679da9ad5db513f2bc2bb9d13935c0fdd8a0349766e908430c069032f50651737ef9f8f195d24892fc0bf7d028e4a184e2cf83287d4421eb7a49bc8fa2b19a7c6b18f466cb52c0e3a0979f3cb5048db23751d0898cce6a941bf2811a6ba7e2d250445f877da5e27b11c9a5ce0bf60660ed3d57bb2c33edc5f6bf1c10dbfa01bee03b1943ef48423c", + "954e4097ebfbb8c8470f7456f7066f5ea63076948ff0e7c49c31caffabe21bcb18a1767372329cab", + "01852056759fc86f545ce3050766df99ee20302689b9498a38002bc9d0aa6c633e1f9093b706ad409e789dc79f5e9c4843fcafcdf40bd31e0c8cf1f4b04c109d3e40fa7b00123372aae90d37f8cadaf09254a498887c1dc2384100b07d12566d2cb766d0262c97afb3523c7e33", + "7d499540d7a6579f174c32af0167d3a8c870c67c58ff98796b1dc5b8b83b066d82c74372c802e22b" + }, + { /* i=3357 cDividendBits=3773 cDivisorBits=847 */ + "0ac0a239aa1ce65f6938df64874ad2ba6b091aa158a719c84718313dfa1062f42defd85350b82bd99584e7f35632a343950e06fc248860322d1951a5194ee903eebdfa22b1176b71f22a52ebe31bc57da1e9cde71366a7d25201f1d6fc5d4f99233df7bd814955978ad2834938e9f793beb98b6394265329432be3b03834a3112b58d9c7c393f049a1164564a0b87efc072fa1057a13a5ff2546ed86653925efc4a012035f3ee1f1ef6a4ed528c3346ffdd2f3f45bb8f45fe514f5c013f77dff75dce0b31be9247152cd7a88de944296c6566995b743897fd9b4d4d12cbaeb39b5f94e328026bc1f21c6f7e241285e207fe4cd38afbe5fd88a7a583f1add708c460910d47d9784c5d13110da0b939946531af8f0dff428c6982ab1253525fe93ca8f2aba4f0520d387730d2ed04051a72355bf394bde6cd01b2e7c4f668ac64166e979ba392441b5e25a603372c4684eb6baeac90dad84549cd63587ca4359868bb477071609e47653b27106507c9f006c42a17283a3e1fcf113c8e68a05036a5153035c82887142d49966d520d9531f3d78b6997646e139cf681932454b5463ebc1950b32e2eb3a8bcccba08d94a1d76d01e42096762129d7fa85efcface553fa97d73b596e6773a09fcde8cd03272e5f68a5fe647858ba", + "577c504598dddc8677b5495ba5dc5bad29b01b4ee020f68a54837b3118c22d18ca2724823a03d612b1c3303c611bbe63a901963399d3249526ff26848f05bd286f3117f3c57f358934774584a59e598596ede416eee17fbd60c8bada70110f0e1d3bdad1ee8bde9629b0", + "1f76beccc0c9138b24a86d4e76ebeeef02064f9b849545013070b390acc3471566b0e9c3cbf387535685a4f08cc5d6030710e947abcce25d553dc306f5613fa55245a58362826ad021a0a32738dc123e432964ceaa77938a240f3cd308e403f559fe1743db86efd586e9496b6d5b98dd4a31674887fcc5d1bb3aed0ebc39cf723bbb5cc17ae4d051cb88fca284ac2528449f9bd4b0f49abd1ff2a4051d07a38f604d27ad7130bca878f22920d761a4c052758edd1738eeb0907b4a328a505971d207f6234692b5e3244fd0564086749792d9cbaecd9b8db25697cd0c81717df186910e13563091e77522969d632d4b3a2d86e05663e7f9a04f7c1d3099c81b5b9e1485382f5538ec5c64d46a0578650384d632a9cf39a8e8d25c4397ecbd438c3efe45a7d4cf0750572440cc43cee124c27233cf7d4cd1fa36edabbe0bb910246853102108821316ee2136c6be794d5045e0996c4f5d70c38e2250be5166a09737f44500d735d07853290aa5f639", + "491939890d2ef0b4a3a6280ee3e04f4310c6be903b51ed2645e3d48287e1b66c7ed2030f24d3be19544fe732add392eed3e31de359e313fa58c2d525a4e908b2edbb4d2a429419040f9afa7a17d324fa6e4f512aa93688fb3cb4957019c4802c8cb0d4870f5bca89f08a" + }, + { /* i=3358 cDividendBits=1139 cDivisorBits=355 */ + "25e2520360a8fd346bf5d2a88ea4ecf053b7966311c3c90859f7f4606f1d4e677c0a8e8b92c644dba1020929ce78746a0cb952ea1048ff139f8611426579051fb919433690c7ceab9bc248915f3ec2def1a0365e8b260b580f97f8258a177832e10fa090b8f1573202b5daaaee53d2d01da3d81527c7d5a349d37ec95ce5e34a59c855dd32a03c467d6405862871", + "05d4aaa815a45312d5ed0ec2221aa826d637e6e364aadf881550d9cf0cbb1aa989e4fe7cce2f0c6060cf89f929", + "067f4fd210285ab65022a962aca50c2a35f0e627505663bd7537f89d77455c588244fe09ba0adbe8c9852fd692f0f36bd8bc475941bca650b1a4c4f4fbc34764ff24f869fcb8fe8eb2d5d266d0e5ef88fd698e19051e2eabb05e917dde11ada53bca", + "02b05f1bb80997d23aaed843e28e5d2cf3068b44299f801f4990c8b7c0614bc8bd9b09ff076766062429ce1b17" + }, + { /* i=3359 cDividendBits=2252 cDivisorBits=624 */ + "08b908b2ed733aa32dcbdb5f8c8a20cafc46932312d563589cf973e60fdadd5f11bbc221a33ad7db72f81fcd9ccffb57113a4920e06c724200cea9d7e33203bf098686607a688cf82d0d1b9f2599ce47e4b0ce10b32eaac7cceeb5cbf0282481e40eca71022f565905c29ac20d3a23bbb53ed1422abefc8ca553923b8d4470d20e9ee92814075d8034e23a80097bc6989152bb08e8bdf452d5bf9a5a2f5b758d83fdc445d35f2e9a5bb7f196b9916450a29c9582f5a9d5246bd2e16671cbced0be37b34409553569acb60708b9199c858c0645b9be81d07efd005909dfc55c980d956e5daa7ec82f1062802a3ad61442afdc2e74bdb56d7c59cb1f926b438b39edf10eacece1956b724c5e751d6f28770015cf625abb48364c46", + "1777d3410ad8b31b6fdf79180411e4269c6dc6431ddbff564e3e748f9b13bec510c9b707ffbe5688c323d0310cff2835ba00e9cce231ff648fedc4d70545aab9e166d69a88fd0bb9cdd056dfacad", + "5f26eab8682342f3b11f13801719d7afd862e2ef1f7989e6aeb21485f7a051b82f6776d2d20997f85ffd70a92d24769494983882ac42bbba03ecda45c733b3b9d4802cb8b27380188b94ca9b88775d684ea31ea60bbe07a7c69a378829728996a1440b319cbc8c68fd89cf22c0d725aa019bf5d06ec00ef7d2798846d8cb392f2c4a8e158a39fd7fe89bd3440749f721a70b35076bf7b6804b9d196d787c2e8d7b6da690e72db6fa9d75c0da5baff608c4a8645a7ad321f9a33646d51efb3405fe637a0e4ba33b0623a0d13b", + "104bbd4e51d041902ecd177c130c9f277b67953bb1b718765de4f8a57aa533bfc5a0602e45bc03fa7d9fc0d4f6f46866a89163b7e2d54cb4aa36be18a9c92129f1fb5eef898e1541095513904367" + }, + { /* i=3360 cDividendBits=2729 cDivisorBits=2702 */ + "011a228334cc4cfcc3c1d4b40c1792bcd3267daf175a26203c1f70eac3dc94cf97cc343ebcd07cd1322fb352acbe11bcd45797612f32f0d441a19cc75ad59c22d16c62252d4e99d14831518fb277a5ff19b444b2b64f3f2c38873328ed750b2d8022d864ecdf8ed519dcdd272fa325a3684b897621103623e9ac972dcc6690e22dcf85e4c73e2400e5f72f21c6a441fc544cef0fe82229c5b7c1936cab1623f63b301dff1ec95043949fec3700eb76fff3d94c1b940e227ce786bd38fa872cd9938f1372d6ad6da3893716b699c4f8f5c360cd870aae063d735bbfdd68d0c8303b341e295e97a6695f175d177f7561f33e9661e2afb6fa196c0346177df937faa3c7b8dafd2c1dbc757f1c2d5d283244b33a694675b0362d67cb915ec940731e227c1146a5b26c1a127f78f200e02c34f4d9891a831babb32b2b1c4368c46643802223fb0fcd343012bcf7af2a36b9eefe445d8a91e4", + "2db9be291a00276ebee341cae6c46dc208331052f9c9ab37fc15a4e9961c005d361457e4e75cb67e314624a613b00a8767805f5d1cb4702e2949b7a48963550e1f90d711193247a72b15707aa8d310fac5948e3681cb8add02fa675bd4e15d3bd1d521ca96ad5e38632d8217abde6bdb778b84365b567ca8f4bb0ae982a9e27de97b85a340b23dce314da2a2b2da0e2b2b525c59f1a01dcd7768f1d9fbae03760388483610855c2dbb1091d4bb06f54eaa23c3450bc09c13c7250c9a6775457277727760cbf4cd6239be701e38a6ad51c0b5c96c97f0246a1df483eddad72afa676065f878c73ff37c978c2e0f0920dc33f7450552d89cc7c7929d087573805caca65b68b023d74e474fc6febef5e921046731aeb270b11b3d036090595684a79c856a703215476f6cf43539cccd8c5315d6f08ba51b5ec70b7fb5a2a4be9d4859b8ee4e9180c75fb415a0100bd454de3934", + "062b90c2", + "2b8fb443c16243b0c060379a78c5991277ae6bda6eac593161f158a5d772efb62f16165c1aec8055d49d71fdf1d80dc056f63f2f1511f8e2e5d07c7d36314951421b978ff3b23f6838641c3ab573ac3c418a3e69dcfa47844e2505cd58f14d7099ca9f393fb004f105f82a22ca68005e93b2131f25e597ced23c04959b0bf2431686fe826556434a9cce5720bed1b4fb21003f1ab957e6416a00e4e4467752fe636c47707da589227137b6ab4263bc351c3dd48af9c804b27d00a551dc99507d9cbe84a07952082e2dfb96220c53d7eb5ed1264aa05db36f6f3a35b1457d12abda9da736514e75c035ac814908fb17a17fabaf67c7702121355d0617ee6f6b6cc4f98841d16811ae0d804308bb170347a303ae5667c4b4940c090ad58e7ad74f7ab3bda889eba2f3c65d1b639daec11d6197752f1169663f89a320a351f4d9092d00f57fa3b44a7a44d1707720f43939f87c" + }, + { /* i=3361 cDividendBits=761 cDivisorBits=205 */ + "015b3c4618dc16cbcd2c236c892f48f856149035ff1dc308900ad2d027441ec55af1ca180342722db51f188dafd121e1fbbf77719c13df0a24ddbb63f9c3de89e0bb5b23adcdfa911cf64f7e51c6785c0b1b9c7f3da33f720505b14a95698ef8", + "1e02f0e034d6b5d1a4ca42e6a2234ed13bc410eecdb75795ee7b", + "0b91f10ac1cec3623b2fa7e5c3fd01f2379eb6573166ceecb2c140ccd7f27bc358c24aac66b455f12d156525501e67f0a3204a690d9f56f359953ed69fd923e0125ac9a81d2a", + "0594afc687bf072cb596759e66da1fbaba746a597c6927147fca" + }, + { /* i=3362 cDividendBits=469 cDivisorBits=350 */ + "067afcfd6a29338f76007c17b5f6c3c5053612ea2c35d30a66e5ae7df160cc43305880048f83ac5d733b731963f20b9eb7b63f8403c80494edf3cb", + "0431380b2861ca49c051265e26a4c78f8dd1f2a9ef897b029b4d9576eab8da685c5550c7d07a526c2ecf8866", + "018bb9f11630dacde320788f9424d7c6", + "034dfa660c88d04324fdb8f970d6c4dab86149cfb8da7a0af9cf53c40dcce63819cdacd27b4b9c03ee84cae7" + }, + { /* i=3363 cDividendBits=752 cDivisorBits=363 */ + "560aef6cb5151828e76e84fb4b68338baea3c21e4fa010710728f6fc0c48610b5490a65026e35fcc231467828c420197711709a7a309d22ffbdff4d3d662206df89b6f4f2a02b89c6b4aa7943b40bb48a4c5a96d04cbf18bb1ba3b8b07c6", + "01f5f31629cb54b08a91062f8045fd815d3d9361768f1bbd0276a9b3bd9b4fddc62d128dad2dd7a0fc85130dabd3", + "2be1fcfdf1d13e5ec7bdd2c2199d594dca578a8b8b35ada019f73b49470fb44cd6d55ee208c90e8fa300e1a80250a418a5", + "2a3e1a8211e56c1077f51692acb359f3435d7a28b66e07fd1132df7a8e43a8091f0bf7571560972c11a87380c7" + }, + { /* i=3364 cDividendBits=1089 cDivisorBits=23 */ + "0134e675750bc5d0019beef8f531d8b4d1727526ac47e8fc1beeda141ed5afc0c7d9715d03b5914fc24dd01b82bc99ac01c3ba0e8af4d2bade8d05227af353b491a472172421d016638931be336dc11ace64cb7bc21269b9b883776f12acc8df9dc8754e9d4e086c8f1dddfe05cd63f2007c73575976dabd35cb2a28a32858919c3697ef2da039352e", + "2f3107", + "068bb13fc97a5bf56d946a95c76aa7f931dfd98d226a04181c5b50bf8d6991522186f871221af0dedfa2ee9a9be23c7e97daf513dc57b8b9cea014f02dc98216a77c043629aacaeefbe1c22567469cadad9219fed7997a4ce1ca549a667221ea3c0882ebf8269472dfb33f00573a334f7723432e70f4e8fa1e39695c0e782714f06785b26bf3", + "11be89" + }, + { /* i=3365 cDividendBits=3177 cDivisorBits=227 */ + "051d733a21803222cad3790a5ebea92b5bbf40d58e59b4eef3cd2e9277f1de44b1eecca5cedc64671f37d5455b4d2c485c2b62cbf32bc1a7cbf766c0ffd445bd3e708294d4b58825e94a4c16a7b076c224361d83a82681baa2678e39dd76d1540de8205b0fc403ae5f7842b59da5a8e2b33e0ae462b3626f425bbf9fcc1569817ea74b3d027b46bce5474f1549084e724fb5ccb119c51c803919ca3e76f3f20c6370b79cfbe4cb5fd7cc981ce63e8f9c8bfa1b0b553483f5bf8db07fb76c84db774eb35d8c79aca0ae1deec4b7bfcf86c56d6a15490383993db7c85068370ee7cae4618d94445f606298d02d5e9b06020a2ce9f9a184606bc1c7dfb7669772eedf90d90892004b29f7f489eef2727c53ab250ba311d698a9c44ecfd8ff71eb107b62d1490b24ddcc3ecfab0fa8d61b31b84264ba9dfb63211e58a79ca7a3cdf8bce25ff1b2d61d2ebe21474a100a4f61d84405d99e5f60bd31a6351812870c61e70ad6253449979ca8209b920d941245ae83473558a554e0ab3af59a00238b2f0451c33b4e28f5cf5f5bdcf7b4", + "067f5bc9c9114645f0069ae4f37ebd8cb40ce757b458f3946327481b61", + "c98813b0a00559beef84ba7fddca1fc2bdc4bc790591005d659f64778c1a3d9214141dfac9fe59380f4a920b96625793323d1c752e5b2f415654ad0ad040398374c851419930636b2dd40dd2fa160c52944abeb0e281686968f6aaf906676e3de460ce32987caa5a35cc9b79a5d3bba08a9974641e1eba0e779b8697e79399a380ce57539c0d5daf933b8e91e079228ee140b93ff87203f8f05e1763e769b9debd7297cead75fbe8d7b9dd13dc26b9be4fa53b2ee2fe30460ff17ab592ecae746b308f28c1e0136ba54e42c8d838e441a2046baf213557a0580bc4c9965639079d8fde483a9bcc227ac0a1a23e094fc410e97afb73ee5d54992cbd4e2eb91e92446beb8df5da9f97e93beef10a46f75ac4faa469eae4244eb51e85410a1bd6da478436960a8fcd810d650d8acc7d7abe3fff4f13716809fa397d6eab9afea11ca1bb845c1d9419b1856496dce07d5414e855225d618083abfb379e090b38ba074fbe4a8c003c717925b83a0d244ea0b9", + "d6015065c584567eefe9b178cca4ef08d2795dbb74e0216bec168e9b" + }, + { /* i=3366 cDividendBits=2949 cDivisorBits=787 */ + "0faa8bd8cfb93db16112c2e73b43debce4ea45488869098386d44cc345b3c4fe57e962ab6850f989e311e78a132e12f6541a4b67d5954a0324a30e6288cb3ce9abad90829807e074179d879d478a1f085e160d955f8eadc813eee68996d4085dc2dcf519b8f78ece3deb8cede65f6c632d1f8f76850689ba0a10c5dc9880bcb002ab71c2b5fe5eb2e6603e03dd71e1d40f9927f3650929fc17f6d8e3ea106a1871a4e3ecb3c1e9411d56fe6468a1d7e9f5b4407c55698e916d58f0e68c3fbcf486b92a10d6e2348ce753baaf35aaa2a1e3b7adb08c6d5ebfd3428fd25e1454b12bf2126ef3f485c6da7cd145569ef0b908eb442dca4cb2ea88dcf70666a1b6305f08640a9f41d3c41b70b972297f0a8c734a82243558f1f8bad672e1378550a568e9113b977569feb32f50503a8dc629a09df75a36e3ae2c9d4d89f50085cab23013f0fa4e8e7b30554dac0edc4171e8cd7dac8436222693d8da84b9ec04afb1850b48bb69271b071c85d8406e7c2f17ac", + "042a84151885cde50c2db647f115782c494c4af2f8d1967249f52b2300fbcc96cec1c3aee8a5ee29f7dd98fc5e686abb8b4458d126c3511ce60a414c169e809abbab7cf42b23c95413d6770bac5a55693c1b497f52c24d28692b2e40628668a5eeddc5", + "03c2aac91b54687cfcf521d0ff4d4400c9a6a2ba567f63831948a951b84e906e5efefc06c756847e7d06104004133dd6b606d3168e37c1af8965a33d2ca82fc14970da31bef91957e242dd1cd0f8cc1e56b60df3fd36c4fe9e665d96838873865510718752e2a9881e6bdb71045b2a324a8421c4ebc7ead0a739ffd2b52a9286137217a41e4834a366fb642d8c3bf333e110c91e9f4ba7502d61ea3d2d5e99b2a93707e3d0ab63d3bfcfffb1085e53a44dacb7122739c61f89e3d38bcf1fe226698ba7628ae3bd653a4c6cf85f0cabe09a4fe42010406429004e6bc769fc621d6e1c89b42102d21246a2317febcc72f0a3f4cebfcee99b5fd72f6c791504a40138dcb2b20356d8592ab16d464a6516", + "370fdf8e1d130b55af023caf8a530220ddd7ede7a2a0623e407c15c8a276c21ebb7a898048a58fc7d8afb5b21a4be7965115a29a93e5c60fce9b6e6ecf13db44e641b30cf0cdcffbdd903df2a21d76a7a5e968e7e28343f75eb5f95e806803374fbe" + }, + { /* i=3367 cDividendBits=3920 cDivisorBits=1824 */ + "475318a5175b94a2713d7fc8c9965251f95b550e2e472c9f2a8ff08dbfc7f0b5ce50ebe5f2d8b3e9384701bdbe7551637a7ddffcbdc64ab1d3750da1cd88623dd7e1396b870a8aa1aca1a00927aa669636c613462a89855b28c29ffde441b91d1ed3fac3a7e31f707cee525b500ba3b31874354e4e78cace6e893030f4bbb57ee555227c97a460f306625908d517d55ed001b8493fcc74bcb03e8881c3f9b2d412c0a40d1a7f81abfc1c9df12a876438a31e25f7b2f64121d4919c89140e0a7a527ed0738eecc5e804344d5fe5dad17f19ba705de156a14bafdd142cebb2907b4577ee3c4ee10cb281f5d94db7b119109e565440631bdb610eefa9d63085abaf99785c345bd7c9fb03c2def8b90ef562d061732ffd6f8df4995dac040a03f1e554d6e319196095a50ea04fe8e755eb784df4a8039c492c81e12c48a52be70926e500df123ddde08cb5ff14d335e39cc793a1e98e8f67919046535d915a4ed0006b9bcd06582865397a80cca48b4e85c8b868de061ebc33f7b79201dec3a2b085d0b42498f82c721c41983ac207be0cf0124ba43a8f70895588a0ed5661b4e36706135695ea586f5e6c4f0a440166c7586c3f3915407f4cb89210cc40abdc1f5ad7b5385e8d5fc38db04d3b1103ae7ac9e1196b58caa23ed965fdd011827c74e8d0a9e232b890d9e70522", + "a8a2afba802673eee8f6f1b2695aaf72ec89f09d394e3687572f1a824b3dbecad75c00143fd68ae4fcd7d695a0de3366fb532b4f84b44f0ab42301d498da63cdcdd29a7815377670f568b6d24a18f4d98c5209036ade3c321de8d0d2012ed3234a80bb742a5b96c71b5b5373250389bae8cba579c6a31da15ce6d2e9471b5e77a7be35c2ec3974bf72070f09df3172bcf8ee250685acfe6ff78f3125e3a7ced4a0c4f70c8a3bbbc0dddb59db47b787d6e56b2ab26ac8c81c107ed0797b7a45dabbff505e32d6ae7fbcf65e3438d1f591e62134eaa0367c41ba9fb16e2eae70faa8a0dd40", + "6c4688a9ec2043d22d2dbf7417335f218d53e3e631dc1d7799076af840fe91d696457c0afbb18913ebc1032b41a419e5b899a14acac92f45cb27ae62aaea1b82c767b2fb74c362975aaee8311a618cc75709798551b221e858892f1e57c7a0288bbf830d93d7ece097d5b855962e426e63df9a6ad454ad1ebeaf0b69c5927237d25b2f0c13e37b5297ff98201834f418f32250f8f6245492a2933cb004791d42e99a9689f0b2ce887236c9adf1d5dd2637591f2e16c85f0a82a20a9f4e3cbbb4eec3dd2ee2ea212aa346d0f731b4b64e7f809231a4cb0f6eef5861163f54353a5956b01000ad54a61ba191fc2b32effd32805926e40e5ea12305dd2773610f59951c45fa28de", + "a1226c23b3a9de875d46a8c6b5fae93a700534a7125d54063a98e132ad851bbb0ac3da1e1215ffd75070d323cf093417eecc5cec9386a0cdc492c83e90433b6bdc5599c81207db38c55a5bab779f9ff664133c4afce4197d3a06e11da5b3aa3d1c9998f34614ffcf6ce4b7c09bc402e938558293ae86d040958794abc1308b7ceeafc93bcb2f60395c6f86a0c5156b0601d2278ab8be6499d8ba2d0f7236a801353c13364ca880bbb226228f76d37b73e6a9827360a8b8ca1792ee806cfaef5de37f58b2d219e4f9f853414436b8c5ac41597f6238e32a94fb913f50836b191f2b5527a2" + }, + { /* i=3368 cDividendBits=2809 cDivisorBits=1930 */ + "46234e86bc117e95574b4fa12c70ed80048cd2cc2702cc05b7b8eb8cba4a2195c976dd3abe186f2cd3e674c6cf44aa493f4e15f54b09402ff698d4aa3e961494d6029ca7b3226af05cd63719c799ab7c9360c8d2c6f4541301b430d99522b66cc7de54f15708357e0000d42fb14ddc063fe637710df27967e31c69dda8ea07263495922f922a2144ba0bb400b9fade65e0470595288f8bb5225f916c2c396d45b6ea3c3cff4cb02b578354497578c95dea4d8f622ed5f3567089223d778dae1a84cd5a2bcc1bbfeee270364d852294d0253f6833268935e3e2a2f7da4cbc5eea680bed1692a71a44ae1ff174b528e4ee49b839b10f18cfd0069bf05b01720f671acb4b971e9cce38680f322b1f4593573c14bab6580ac3c3dcc5640661d6caebe79811456d0f8d6f3bbc357385b05a8af1c1a016df20ecd36b94036b4cc70428cca1b243ddff4025b621bffac12bc81142cd531b12d9f57be63b52b87a0c83", + "01c06aed8cbe69e7d5d2d99561ea75d28233874dddba65a4ed19b84d36586c6a9dbfbe9917d786ddc2177cc4c0632254c11736894543d70f7b32e44b479b71e1e2ae1429de102b4cea054c8c12b5325bc3bf86e66483b9645277b4eddd0fd573e79b1b0befd25b0a6c4b57b6acd393ed433420b2cbd5b2ab1d1496e53d0b00c50d47ef3639dc6d18509493cf9bf98c69b658f6864abdcf2e65d6ed458dbd3c49938b060c2e329fffef039ad302851b93baeba19f8f0df79d3322175e89dd3f2ef99a8f5ca1f93144d2ae1d6c83475e4ad18f2e741b47c77260afee615d1c76c987f6a31a6325280a9098e7b0866b94b1a3be", + "280a9e4558b5770938128274578d2636d29a1536509fe172f68302c1e2d09619385891748c0a9660fdf9b582554e63455b12199689b51bd4d0637da407561266c30579e46d93c74f631d5ebbe5763a34ecf4d6f4ccaa5780dc97ee4171b13058a27aaefdfbfc09020042d73e12c7", + "01a15a7738dafca7b2796cadde6e48959bfd5e8f5860097bd397fc12692015cee985e18558a12de8ea2f54fc84feb27ae2742385bf9d2167056c961a97eed56260a216af1a0ad9113b8523c83b54abf610fd711a1381017bd7c983b17c072019db909f13926bf1ce44bb3f1f4552d09e83e07fc2a62ad0133d6ddeb782bec5642f3d65e58ada519a78a3121d0961d2282761d59eaab25477d874773758ec156810e0d2b8e39bb269262321647e08996e457c3a23ca9ceea39c1e53284c5df62be9d44661e199fe6c1109b72a34094978b66590a9142a4719a5a5501c16a6bc2b6131148d7f03bb51cc40c502c2b76adc67d1" + }, + { /* i=3369 cDividendBits=2895 cDivisorBits=1007 */ + "5b252462db4dc25d94e0119ee160022080b80d10a1e5b62dce81a07cc7ab7fdd975040549a6c3ba1cf560ebb0e79e7fc30c846135c59aa07ccbfb9cf5878756572385083d88961e41b059d139d1a638ce3356e7cf73df39c820ab4831aea447b35b61e5f079bdf7ea4cc27e849dbbf7f0f9488daf3f9c1cfe1f5ada7bbe2a2733c9c68f2dbc897654fd0243d2c23ba37c3511d57cd208fe95fe3996bd5508adfe9e727dacdfcff8f7a515fe710615089222bbf02256da908d5a919499c6f79ff3e8f2ea2c482ec5e41849fdb11275d58089c39ad1c5b07e7fc5f80e28620177ca0b20fe9f27236c9dbdac587ef294a34db3c4bef6a47b66ddc2f5799d86238699ca5a9ccaad152a94f9d71e46f0be5ede9c94897f3d29db54b4b5aac1a39e94a93d4bc15d96d9e81f808bab4268dcbba5a204b2a672c85a28b0430552be6bfa2050c5f79b0166ee3f51134a6fc990961ae2b42075f8317d29c26773e88815e909544f3b6c6587c185897", + "427c6bba06d84e5dc94a62e7a1032029b3d7499d3a1f2f0a38cbeb54ef391032d184f82f87fb4e82f0784b91d810fa13485609cc080dfa026166957ffa9a5bfda15fe502720e5849d2cea03c306be745a9b90b3aa338865d249358cb793e6174d09da4403abb9e41a6454dbb11ab0662de678ab2caff072a73daf2bc9d4d", + "015ef2b6d884efb5cd1272d67f00825a1c1cc2dd651bce9ca0e79963083e672cd990b8ff25d81f2859541f8a0908c4fedd8fe8ed53422cab4ce74d212e54149debed40cc6defa45f75010d17985b0b595e2003ed6238b1323fcc2710301f31599cf5ff77e874eaaae17fbfe8d4c9c7b713ebcf1f99bb86c2ce83eb52c0bdfe0eb3ac176f0fac92a4c9fb4f1a887d92b119333c51d80987981330c46dc7062a8315b3ee067e5ea33b4b9860d439f87a7f610aaa30609dd824ad3f4ccfc695ef3c64e4f9b4bfcb1132ce683a65d19f3feb6b7d8e44c4da8eb43baec69a353a6e4fe5aa0c7a7aee4efe229e643b9b", + "2b12b3b9ea3fa24e003377af333e383522216070f82206145f8fc69f87b5294efa746c9c1fbcf5d3b0e583da6a673720eba4e2e3fa6fbb8b8e717431e222d0112c84eea7b5e21dc909540a3a4d0bf55cc8d6ef6b04aece751292e967ecc8cc221729568e949ed90c6e5db3c14d696b4e2de57e0e4dcb8c62a5d913905bf8" + }, + { /* i=3370 cDividendBits=2692 cDivisorBits=1891 */ + "0e69cf85e97ea5b31ca4277959809a2581d4e50433257236600e0e4482ee78308db78b554c6667522676848d568d9bef24e02a89942db2274a3c52e80344517facc00347fc7d9c3c4e57022da358a780478bc4961d8283760cd4c56376e0186ede1ec345619e336145e801600b06a4caab2c9260123953522f96756988be4749868404e6872926552e52169203131aa11d30d6020a5513f57991ed939eb0ae8d45f710c299362c3dbdca332096f0ea15dfdebf820ec97a6d52a5b63b871e80968c23917e989683c63208de75f4635b8fc42ee09b8ce0fc47865e4b630b8956f64269fcd4fe4e3104ee2e166d3d14a6b2b33bc3a7d857b9843b82cce8d3f0d789c2be5687700f84f9c13038bb6609d26d6f7e9bfc5b2eef3dd5ff00ac372beb7e6c730f975f16504ee963d6e692f44fa07786e4fccee432a3ea46c6ccaea73275dd7f36422c4ee3c595c827fe5d562c9611", + "07aecdbe901555dc0f288348ff27052c2da182309da0c5b948e71459b196132919cd44ca74151b1d4b20dc1fc2e05c96704c9306d055e62cc3b7f22743cb928715a017c3818dce867559808c8d2cda7a409fbd44081228c753fa1db61d6e1c34c30d9e4cd7f53f71175ac314a43f63364e30e6c2590ac5ad2a49b20d5826cc4a66ac2197aa8d7e92806544926bfb1d469e476ca0972d7252f83d505b8cb3e7324fe88ddb8c41ed7891b477141da593f76c4e71b464db657c4d8bad229f5394138dabde2d6c3b1aa5a5ddffc5d60d4b19fe7b9a175baf6be16b82ecd181bea8f4a720aae63a1938acc5a50054", + "01e0446ea17099e2af2ea28e6f8141d9e678edd9bbfdec817d16f5bcc586516e0269b34c0a21f7fd9e4cdd1f0a5e5b8263329237d2fef1ba7ca5aa02c89fdf983ce32f001a238a512f91b66f4c0dbf9da8f2a8b463a0e6b5bcbf0399fe87991b2f40cc57cfaa", + "013e18b649ca0b82bfb29eb04aeb658cfd9e6ae8d5beb54e2c719fe8d9b56aa3ea6bbda0669cd7f940f1c23c7b5113c2368e48c94a2a2ef7e41f52f4b6bf2a921170682712cf74f1f9879d7a6028479742924f20638c8d9b7124a606b35dd6821c60fa472c1527821858b1df773eb4bc4880324f907c520582b2a03814bf23488ed3ded65b9e1d4c8076b18f53cb61afa9116a1db0d19a6920575f9320212c468871030e0fc2c3abe573db1b737356739ebb0c128ecb6b23d4dc4d22363a6a0cdd8deee8a299e9e6906ab4b4ae0ada95b8c34a2e11245ef53e410dab8044ea06dbdf6a9ced327f7b9eca7249" + }, + { /* i=3371 cDividendBits=940 cDivisorBits=641 */ + "0db863b4f5228157c42fa705e2265d8f1ec416e0614b241bac6623ccc8a1b9429da0d77c392ad10703458b7df1d67d702393025906124a880958926f89e1a99c90822cb5b9cb14c7ff86f73ca45b15a675bd7d7f1d9029874621eed53ffd502383e83d318b5c94b705bb7df3789557d171f02495943e", + "9de9736046dd5b572717462d22522c6b02508a122e90065dd681dcd0d06a306488dc5233c5b512e6f101949e1095a7de73873113538d01ce8e4df605e70160f8339edb747f13c0d498490a18d2198d16", + "163e22744b94eb32f6fec6bc805fa4d5a1dfe5fdef52ffb6de9a1c6937a0fa13e26364829c80", + "431d21acc5d0c4706bb42e4d0dd82322e8f4c54fb7680926d456005c68fd45c2e2f2d693acc098d26bc7e9fb5383d10f3b7d727321e15b76fd65fefe516751df060d9cf583a45ff31b679de748a9a13e" + }, + { /* i=3372 cDividendBits=819 cDivisorBits=796 */ + "02f2733b973b3371621f231ca709d4219fe400a9e6e2f7d0c597596cb44ad6e61380750bc490b013ccfbfe7558b7d19fdca023ded01223fdf4eb564a9f4cf346e623b8f4e5481451f36a96117bfb75f9a4c44f5e896ce1cd3532bc17abd9a0419a7ab26afe6eef", + "0341b0c79c4009db52880ae0566248990e99ebaadf337916d03170058f87b8d24eeae473a9506aa9fe88340a68b3a438c57baf8e2ab7730b9c67d5774bd387f77c6520063086cd4f4e9e6365b4e206d07fa14a7f94b396ba2c8564554d20fba8085bce37", + "e7aaf3", + "b9e22eb525a6639dddcad55c032a21f01d501b80eaa3d4e45ec0c7c1be327802bb20e6b63e2cb4721bee4fc30fd880de8b7a4acff2dfc241a9087c24807bf2d40dfc577b17ed2d925bdfd9086ead1ae3d7cefb62a75215b7745ead0f8e79ce71482aba" + }, + { /* i=3373 cDividendBits=1672 cDivisorBits=361 */ + "df5c0a00783ff945764fd6a1bb02be9217c504fd0f582d9fa951056580601d735a705ef88f33fa5c859d9caa015e1f379997f918391a4c45e5332c5718e53f776255451184c39dca62e3bde1e245897eb32607e89647e910928c84181dbee9e98d211b282ced7bba2ab02fc69c6bc385db2db626ac9b00d93d68cbabdafe51b7a1a1f72419497443369dd736006c45c6fce8377b62e7ef929b14d56aab1f237b1ca61f9a5a0bc9d9f92ba0ca44a0bf6d157d1dadbd9e3ddb3acf0c87a6c8f37de68a86d348d8694220a760d4e0e000a548", + "01a3039d4450661742235e19e34f48666923e9163ab1ba232e33c1c229ab5e275298c4710d9024b350532deacdd8", + "8876993887cbc7d2737bc83f258a0fcda0dcd6f0f673dd1de73bc75df82727426b597ef8bda8c0bcfae14584ba0c36e22bd6623ad066ecf0cdd23a676bafa60f39d523d492807e5314efc46719b4c267b5a839ebee1738b6dee3b87d6b4011f6e93cc90d5eb894f741307e2108c504d3e1b872a84442b904e26419b7afc8517d536fd08af328ee4450ca27bae7c5fb532b6ff9a850bfd2a3682a3d5e546fd91963890d90", + "d5ab9746b6ff12da95444015e1d32b46e42e84bab387f168959c368a39029d032d925cf7731b17da676ee0e3c8" + }, + { /* i=3374 cDividendBits=1626 cDivisorBits=504 */ + "ea22c34f81ea3f1657c717806c865cf1592d71f7d6c33a4335e70898c72eaae6d1aec2478266542f571ee999e6b15308bffe2a074b0fd53ff92eccd995a3f01ac9a530d10b3f4d3815a20abbf781346ec37c7216f0d94844c05cd3aed684bcb62b7e811a3fcea87fd0cc8149da15f60475732302bd6ec926422c4b26e9d7b3bde576ff01df06e1e9460376306aa64327b5a684a9fa15a136f762ea26e5aebbce133be958cd2c9e662815b8abd5e61fc76504ae37998c32579906206221c6d7c3135e9972dd469784399223", + "a3e2384fff62006c915ced536f1b7789292639a23cdf229efd43d9029c5b35c027427c023bd06c36b7d13e00ba04f8a89c099c74c00f9c0d0a8fe175eb59f7", + "016dbd5c2ca36b036d5805440aec904173b3fc0b3aa4f4a8f34c457a530d08e132805c7924653840f87d6d16ce02d1079eddaf3944453f5798d17fa4325ed49b873cfde899c85904af754e24b8bf6bed3b173fc5d627eebc0e900432b13a8df51c261d09828f23a0da88930b7051211e4efc19279ffca4315942e36894d36160834d14892e2dd44ac39be8dba4", + "81809e45b75fbdaf55f5fd22306799aff58a5e8490d7001ed0a55fe34141003b8ac7e44093a1c453d562938c6e25ce5166db18ce8f84dd6277f0608ea5a2e7" + }, + { /* i=3375 cDividendBits=86 cDivisorBits=7 */ + "0acd641d1638fd247d2068", + "43", + "29464535d2fff514f8d7", + "23" + }, + { /* i=3376 cDividendBits=968 cDivisorBits=293 */ + "57ad42fa060fdeac13b22887e5b99f5a0cb8c5d526bcc87c714158ce2fdf678cf8edaed79094683d753d9487b115b950e9a1067c4cfed3b17abfaae7bd6a2d59fb4d1c7c7c691f382f1ffd11a7c1b88bbbde30a8f0e28c2ef90976def140b415c26534f926ed21bbe52574d8a74249e2825758650979a3b63a", + "0c97860be267b138456833ecba1e1c107c7506091be6df72b160acf92f224c49199f252226", + "06f6847512e0268419ac46c7bbbb51724d3e47891fb6c8c7d830529b0cce22dac8063421ab263813b9b5b5a72ad956cb118120c72d7e637d07ad31acb8b0e609d1549a394511b73efff7386708587881f23ded43e3", + "08297276791487726154a3c7e076368f468c0a05cc03b7f2135c01edf2f5ce423af8987c88" + }, + { /* i=3377 cDividendBits=2289 cDivisorBits=1497 */ + "01dec570f6db4598d391c242f51fd2841a74d4ede826523fe0c17dac142a880944a1fb9b127713f0fb40e506583fef1b81d7e09090e515c0aaa87dc2f8faa745ea1a83b4e03de72638efbff93c02ad1359441ee6e03892ac90d71c245fcd2c23dbc4f97d0b4274e54bed35f3aaf99a8b9c6a940b6e44c8f7bc347073c036ce996c90ba639ac7e3847784ce9cb8cedc3b1dcca4913d2fa21594f60b173ba0f48671f2251cf21674353935f2025876840dffa705fbbe0efe879586f84c1bf876d205371fa9748f41e6e1cc0e38e02f76c2a7a8e24ba90e0f6c399a3fb6b9818159a2b77f2ec89e9e3db8bf67a26ba870a758b17f8b3be3f23e302e54793e33e40c85fd6187f3209c8fb0630fa77d316383a5ca8e9af4065387d77e23d876fe96", + "019446315b713ce7589c057e28f1e845d59b6b1be5a0f148ce41c21074c13be490cb53bb443c7342ad4561f7272c94e81516096f573ffb17b2d5774ab6d743c879d1da7a68489aabe16651679d48b9650ac381c5a0d4a7d0a38dea9b36df6d590b330a5099fc7f551a26b63ba706cc518f62c05ef3d517a1bc534b814c0f70b624dc63ce8df1e965eea5043857df9e4e492a4d07fd81e046eae12a476aaf34785c95f16143d844f09adc97cca19ea9565cb19921ddf540c64f05e20d", + "012f2c8e26201fce1b832c97bb78309e6f15db92e4ca66a511ba17b927113c339e8a47f0e7f9c7b5a4a513d3aa4a79f5fd061de64674cd22131f96d1391c09efcb827078e06684c107b8c6127afd5dba5c79e3fd71768d602450124911c70f8d9427c1ac", + "0150a007018deb82007939005f18d4c3832047977d249a362eecf1292d09d95a79d48438f1007c43a7d0e2a715f8fd86ba3c2008ab0cf25728285c679216b2f1f43e661f26948a2a73011f7be0955b4e9a45547df4c1a7f6279a91cc5747ad5a265454be02812259c7fe1e52494eea097291e7cd166b038608f2744e84ca4b1cf51382ef292c8349c6a5bd15cce94a72c41ab8bfb22d4f4e8f770543dfdaeb6328f01b6c3e248d3f1e150a855d8118d9f7ca844789bdc2955d1c50da" + }, + { /* i=3378 cDividendBits=2716 cDivisorBits=841 */ + "091989c9118f2ee4400924748d8b0f38fb5faa0dbdcfd4bf496b7d654cf82e2e057b61113a5cadb825820673f0e113ad0e88f2591a44238b200fde3708734e47f3312e31482e0662f33f4d2873931ed7199d565c809250f1da6a657401df0fc21a090d84b9e67c578c5e075530adff4096a76a78708e0322fbac815545ce66ee8da26e05fed67df4c1e64e016eee06ce32f0d811d5b9fa0a017fe9523dd755b4d728f06907393bb5555484c3aa173008f72074bb8cce36b0073bde3a406f0016e502909d98dec65fe2a29d7c5dc5429ab95dca57f5b1eced98b70177c83afaa9a93fb7fa1e1d9cf8963bfa4cb049690d31ac108c2ef6062e6d2a4866232c18f5cb06726d313760a664aafe80ac6e7ab16d46539c083e3fe1b1519b20b92cd131905894952a5281415186db2e4957f4b37a187f7c4fbafaae8864586a4fd93fcc8b788221c1a14a86d89b3e1d562cb4a0b24879a3", + "012b88651b77b18ff91730c7508ecab15db848fd4f48284de7a431a72b9e512e8c98490f99b08f87a681a0f8cbf11de94216da081be13987ff5a6bc708d9bdc80c2cdbdf8a931652371442466116b2c9c347c068de78dd7c886cca85063208229a9e6ef7016985b28b46", + "07c6f9288e34a1a27db745860d76663327c811633606921dcd620dd43d4e7f3c853c655989f83a0444ef42b14ed1040e3c5034070f714c19854a05d2fc8ed7d319f331bd729f2d2271d4ea4592ca6923ee8350f64021691506ea47f33a48f7c6699f1863f2c68100ac0bfcb64830f9a63233f15996b373c2c92859ce12122c1e380a16fdae255a226e74a1abc97cb8443e245c2196a69e33fa8368d2ec1552ff5c69d5df84cd397b3e9e8830433e36f3414b6e075a13c293d03000f22f68e62a55a86e6e49a44ace447dcedd2ec6ba81dca9465622342159f4f84eaa1240409c34aa5139e6ea5433cde149", + "93343ad25c9ea5d3baae5d7a6be8ab4bd142e3d4f88d72b83bf3849f21600299442d7a8467f7df9197b672895f185a804148d8c6e48c070862c860b987e082a17dd7956d9f91388fa7e2ef79af7ca556bb2d5c49a24fbe65f69b751a23f7c17eeda9953e572ce83cad" + }, + { /* i=3379 cDividendBits=1564 cDivisorBits=639 */ + "0c1d437ec4ef6d559c3aba1c7852e6ece6b21f22f843ceea0313ccbf6c3073fedeab39dbe6dcf5860f38583ee69cca1ec8c3cda0abd37e28abf03466aa709f75596ac1e925062e4c55423d020a55ffe1b265cc8094e8482b683c1234538c28a4a2d475a71a35a1ce233b2f2c23b5c48eb643fd1c846f4dd30f92568d865a21b30f0ba5850e17c29a6f0d229a3d041579217ebc0b02cecab4e25d10d0b07651bc9eafdfdadb62c330534e0e96060e760c028891db7416ba63e1bea9992776a7beb9c98278", + "2d715dd79d9d21e2e496afa9d9b13eba2c560c740c3559df7db2ff968ca1078ed54b7fe79282fe9218118a47f227b3232bce4ae89b6ee8cf78cefc2d01a7aa56048e4b29ec7b20dbba75ddf23947ec97", + "443ed1121da9436f1bcf4673d11e1f9068874dcdfdb84b6d396269a05f2619aae40ad6f22050a36b3a99b845abb71cc3b814ca32e65ee82fc7dcd8566210ff324698503351d6f0cf85ef4ea6bd5d792cf382beac7c416d0474aa2b5f33038195a299236462d9ee2ca2d67e34df5f462d09095fdb", + "27195f9c9293e5ec65ce4d325532d5b6742db8a8e6ad3a9e41ee6e9336945ab0d1a970cc5aed0f1c8056cc9c1508fce4ace33ec50b9f80da6aa403be70314fcc08dcc1694676c7ca845e7ae26827144b" + }, + { /* i=3380 cDividendBits=3534 cDivisorBits=2874 */ + "38faeb05f0497eda48450ce279db31ed62c99521bf373afae0e8c9f9e327d555175401afd3e155374f2e964e6d3b3132cb7ff3393bc4a98028b1cb499b7be932a38db97b8382d7b070d99de9aa6000b17e2d2f468808f2345b1ed56a5c4fadf33e65a125032416a90370623914cc58c7a8ac2ef5e997f7df2f0f28f0c6ab66d18c064f305050c97b53408bea6c9d2996365b7f26627970c8822393302515b32ea9fa111bd6edd14ce1ac1e6bf6195edfa45e6dc9a564cf151aad599b7edb74365cc2625ae9eedef536c36d6c93ef60e076e5fa869c052dedda5e63ca9111da8e7e889f94290a99008aa1fc38d44febfe5357bd8d696a8e0d428e21594d3da092a580818132b122d0d75650e4f5909f481c6fd2c7f55f05ab55a06a83b7f4d2198a2d2827687626f38e68f088b0a5c2380bf4938d4db95f0d00eeeb3334095dd8694df3da45a4705162b51986a52f1b94a211b035a87c89e8fe3a74be1fd53f2f62e54db619e881bf8056078f635375d36a60bece4cb58af01ce07924116153944818ce470e192bb98db2926f544f8f51defdc0689710bdbc0853e9325b3604eb3e61892d767ab8da79c69e14e5e2b14d9edaddb3f9721fd06d0e", + "a60c1cd9e5529915228a24ba1b7975aaf552cd3e076c3d30442da90cac8668c71c9d7aa7c4eb5748ed063c4e44d82686ca6b12483f8b533923b2c4bc8b577123f22cceee641ac45e31121f4a4cdbefdd2b563b5f4c77d793acc705d6143192d6aca257d151782a09aa55b04e583bda1e7c5373412cbab7e189d35c473b71fa0af2a3592f701f087c28e18b1f3d1e76d2a3dbb14c06fce28299bd6ddfa3e67863ff319b2fc2ba6e2d4284cb1f1161661e8d38ef4676726182f9c5c5b3d4f43dacfce12a05d1bb920ee114801b9375c2d9ce55149d181748f176fde25a2225c2cbcabc2f2b4480e22557d01cdcdfcd28ee301d9d9d6afa3e96dd01535bcf63df8dfc1d4cd394088782b22afcaaaec953280e10525b3f3f8d5b2cf031d14bd4551b375188be48abb1d08a2b49368598c08191121088b672e3fc17d2487b51b1a573fe2710d06b8d91ef4cff0e966fdbadb8fe66e543bf19424cbbb294d4abb2727aa0cc9f173c1bac", + "57d913f77fb154988554f4b0db567e6d2c8b4aa7f4ff736b22a1c00098b6df5131a93169754bf2f48ae7727c5459d049074760ad1b912b9bf494324a5ddac08bc8f9dc24f61946efaa1d63d641da77c3f7449c", + "139b21c62f7b679b09d9d4c2481786bd514f59c6346481a8f1856700d042866f5fe705d172087b4f9feebefdff7bbc2a9f678dfa75d5cf8b480ae3174faaf69c7401fc80bfbadbca3df55a3a96dd6b96a05092e8e2505d62dd08f0598fdd613b0f0a272da2c4f898ab86a23e67d8d12143b9bec64a5d3c6e1e9e3ca67ff7102497c46418414a41406c97b090b58df707ebd235a0747257c5f90b8919b0b4db23212fb04bf1919cee8d9f76e7d523ae9bb26d950fcc8d5f9bd2fd7eaaf9cd4d827269bb344e964f8369c787acc58756f7230bcbedec4d158d9d4a3ec82489a4f1f37d0f192abfba186045e8932ac024cfaa11446bf4e7dfeb299f42dae4c8f94a189dab993c319d4a1eac703f5100629390146763aaab2106c5678fb3c49d789ee4156b4a5cdc904b6b3881f239ac02fb1a3b71b0c7523dd0bb137e24c42720f0bb5a15ef62c2fae775d73636dd317be09ee1eacc394f9a353482a87d00bedd05fd7d4d48e1e03e" + }, + { /* i=3381 cDividendBits=1395 cDivisorBits=44 */ + "056db5d3e2bd58aebf8ceba542d325e24ea05ab2cd8a9781b1c006105e5f5237bee7d0e34bea9a4ce8c08731773ed8764e7941fcd89876e048583e620ac1de8678e346d7003627d1597ed91b7a00fa522ef0b26a25e30a3584c1e99732a1f5586fc233196aa61522423f1ef34a68f6ac532125f9feab67bba949d940448ba9bc6f5c536e6c509b481e69e990166cefed74ac51307acad5b86d4d62784a2e9d42d0ce74f92e0bfb7c58c251de1683a3", + "05806d05796c", + "fc9923245c0ad49ae76e0116fedb17389996537fec7b2b71a7c82a54946142d62223bc5d5f116f47381fcf4ff5d33db14d17b69eef2e4b0afac8fadbcaa732a7eac6bfa570b97bd74901d2f56bc37bf8e271d4c918e549be3b61a32bce2acc7b141bb6deb1a800b33a1474fd1d969535122da9d92d85601f912491e39957ee28dcbb4532a8bc7f59b4b7d86442e3641e4eaf0ff8a766f148a472a5a94768291f4a5be072f884a68ac7", + "03efbf58e8af" + }, + { /* i=3382 cDividendBits=1491 cDivisorBits=1312 */ + "65e14b3a0a45ef27ba73963a89b12c288ad797fc19a0f585c0ab8dcf4c3b1cf0a726d82ac74a464b8abf212e0ccc56758e68afa2515c211e8ce4506f76edd730850cdd9491f8fce10b4749cc7a8db43ede0670a343af154f4c93f2373a231b1b4430d04776f1a5600f2c147d9e62d600ad321e4539e11e98bfdb56745de56640c6204d7af8151e001e3f317fa39d99bfec7f5e10cf0fa9536ced67f86d1e39e61113c81ed0a2b11a392c8b2bd6cbbd67306274ec0842ef2c60db", + "56020e2abc6c1d4cdb018b0b0c3413002fa1b51b1092ae06e23c472d31350cf9d616377a79c6e3a1c32c4bd23afbb48081ff71c6efa9d8e588f5c56ca7893d4825afd07e84800599f7d6d61fc4d6a31ff4b918769cc8a626bd082b75fb01e0d994a5f6b74448d77a2a4294ba7264763b345a6adbb5886adc34f4b1842e67229e5dcc34e19b24b6d26ddce2a3ccb4cf0f68566a5bd78e4cafd3a4b1c1d8004fadfdcc845b", + "012f3e17b21e6074ba97335355b1e2cf37f42067e00f00", + "395a7ba6fa96b1da3853f29e0eb35aaed60e4e3974d66e06e29d12f4ea9cad65ea23e3342632169ff5a0dce8db01821688f9b88d4850ee0a32dd1e4c6e66a86d0702dac93eb7cbf92cdf342c6accd9cb92cf41b053572d323b8f322ad5ce465b194a9b0379619c7b5fc613e0661b032e4c5851f5c95bd2cfbfdada02f926ffadd41bd6e8469c1909a0b26e6a3de20041845885e4a30230238b9b3f730aa132cf86cb0bdb" + }, + { /* i=3383 cDividendBits=1078 cDivisorBits=532 */ + "0535712546ec6410ee136694731eb57c63f9e1c58f8e7c45d9e793a814011eb96dc58581e3379d8b97fd3ecc9a318c993833ce7bf699c9cb3bc4ef69ba5eb0a098101c31b2b3bdcf013e1bf0f56d8629c5d3b28bdaee0552547be8bc5f280abc520821c187e6ee7e99511b43bfae58a623032a0b501502ebd38c96c77f32949d8fa5e5bd0af622", + "0a2af688894f7c9a2c50b952c4073433775e313e61dc231daf3183c49f335d3703e055ded27f510ebd5d110f1176e5e6e6cb2d306557a8f854d9d769328128a0a25fc5", + "8324aef028aa5e49f1f61314a849596f6616457ec661e2208ed88a29678f443e810ee030e292c1f024ce8bb2eac98cbc2f21fa3c77dc0933f57a3f88ae7ab0e13bfbfd2c", + "07936b6c6e07bce3373a1db782b53b92cc40e96c02fad71114ca7c66191b6725710525c1a2494de079c74c0ae01e0cb18ebf2366a6ded330bc5d0844f1c4be5b55cf46" + }, + { /* i=3384 cDividendBits=3932 cDivisorBits=533 */ + "057b6b9fc19eb7e50345f1f141d09a8b3be407677d1dc5d96dbb19eef2e405a45bb05832054959cafea8a1724a3d1fddd3ee38a7d296991c3fc0d5a347ee62e9e19f095168075e8fbd14d2019c6247e87bdfa696a9543446ea142bbe959a68d62bdd37c503ca23204ece7fb5f82ef6009e6d2ab23cccbe38d31aa94578b19d1d2af78f56e0b0154db14520a2c324e979ec79ca8869f9e25f5c818e1e6174f606e02891d8e9600d4e0d693c83abbdb2b8a8f98e722178d22bcb9cb8cdf0ab1ccb5e32a5bb32ac4aa3b075c878ba9e0e76131c10a0a71355d90d1b90058e7943ab24f8236fa7e0fb6b1d22fc7ec4056c3fcf5cef6a537b306b315c473fb7f93ad942e4dda07fc1e1fa199ba82c03c06b4be9b208ba109120ec780dcbaa5498b1aa58de9a3d0292aed33b61b633cccf70de43015f9aaf8a50211cc69a76232ec303465ddac65b7a538133930d974fd1eae17cae9172a9ffc45caabaa4e8e0bd035626215543867591611a798844b7d30042df37be7f01d1327cdcad2558bfe2bd20c0aca52fc441f22788d1fa2b2972c9db5a313bf7eba041d9c8197da09296cb7403b1e39260a31b4613ba26a83eee0318c265ed71ff91c3daad26d6f767d35657f51717556925facf1f74c0e32d2525559c534d64be2212dfaecb83a92672d7f5bc4fad0598332ef01ebe3adf", + "16ad505112703b4ebc5fc34e37bbe0f261f3da2d1f521018601359fbc6239171bbd915f0b88f7a00828f701e5943902bc15c945aad55d82ac4ce4d22862f3d0981a992", + "3de32af5f06559d29ec9eaafcd9e2317d649d380be8491cac383f1ddca5a4710236969e3c4fd531dcf692b46b8c930232273d88de86400d972acc4cc36cf086b3d1e091b5f45b60866b8a3daf1b48d8e529a797725053d029320f507392b3fea11db050e6c475667cced800d0b270585578c2e4d371f2f7e8421ce54ed56537c393904696520228f0efff956ff2bbf468761f5930a2083a0c67414611788d878f6e6970db483afe5c468f19e784bd09b3a8d5b37216eee0195e0895b21f84d9f9ca3ac8492b9aba4d19e68f9b34c70fc4e4b719e116ddc26b636479daab54f8e9160c0da3f6c01152df0b98235de262eaeb05d75f931200c8f7d8c103e81efeb6d1c08263d76a02fc939ce8143226c7d27ec2265f97314afbdada6e1fce4fe3c51d9e9eee0b5e8b2d9c969c52614fa374a0e6796216daa0027f9578f4e2bc4c7f54331ffa45faa2e6b55176fbb8aaf7fb68aaf1db8a9480bae8810935b58b6ee0f63668620742f51eaf5be4b43149d63d7b0cd4dc6463be0406c70a51c9313a817850bfc82ef8d55f85cf407393afa5f2538ed8fb08d4da0cf47a8e8f7a66e89fd831992783649c99b", + "0e69d988545b7f82c22bbb74c2c754baf97593e63ca7700007c988d4b93ff7585c1124ec769e6b1bbb775d88d20da71440afebe97444ca579b1b3a50b5d8566876ed79" + }, + { /* i=3385 cDividendBits=821 cDivisorBits=591 */ + "0911ed616f6c331215ab36054af57ff87f3519bc6cc7b557c6d0b344a0f7544851872ad2f8f13109f9b7e9b58b70b55e770c705d8724a34c84a23e2ea924401d85d6e32e608b4aea3cdb5f5fb0591ddeb409589aac08b4fa86d3dcebaf2b5767da83c68319979d", + "7973ad01b6ad3e6a3a0795f0648ada8c6e790e59c8232df47c2322bea6fccac27c33597368654c9af5c8962a94aa75f5d3a4ac6ec5159d0be05b8cd2680988280078ec2c96854bc29e51", + "131e3afc92b3bcacaae8e6e189adb40ee0de5772d322c31de800f83087", + "09008ecf177c34ca92abd295daebc44a7eae5422f8697a726dafd0a43fe9adde52b2f2616e807d0768b083f3dd22d715d94d2d6722aaf185e11fe35e6f5a90ddd4aea0fb1a55b350eae6" + }, + { /* i=3386 cDividendBits=3763 cDivisorBits=2621 */ + "03f67dc6225d4ba8dae99b58eb7758e61e92a79b99544b978eedf03f128b58f51cb2bc74396e3f0d5e60e33e9f9701ec81377e71e4f7ecdac36f0ccc93dcc4cfe119e46c95483cadb60859cd8d5cec3f384eab26cbccee68ddf83436a21221f6ad91409b9f359374f68f1e5f9b164e2ef2098c5dce5dc1eb529b4ad9b12cd9340932a3581e046e5febf52092c914cae0c16c2579d8025ec324840b991d6249d1b106d5e7cbfc627b9510b0099afae061fc2dfadc425102601af8c3736943d7359fe5baae22fb8395c4f9f3f81e7af813742d27881887df147fe5f5eef0a715ad8c66ed5e6044abcf5cb75a7ec3d092090e08f98365b723f727b40a93c9e3f61c0665efd5ced535a0f7cd37161493550ebd7f56f8835e216f8809a860c904c192ec3db17e13ec709c3aa258999acb24daa3bdd17f1d1230220f00c7165b05dbcc2b5be90a77304451ec88e3ad9e1147054071d0245bcfa243809d8f798eb9479ceedcb5707a9fdf22ea9a92d3ba380c1a841aaa9874542b547c780b9e8b189c3877287deeebd17cd0cfbfb20dd571dcf4be9e47e1b1de64d4b6ca2cd8fdb5c151eee4083143449b89fe1a14d83292c30c4f8b69a81451afc81ba23ea081391cc57f1c3c2734ce7fa2cd5edc404b820b8f850b58c66df69a", + "1804ba337e152e04d6bc88341ab6ca312266a41ef5a2cabc1583a759344cc109d11a3e8a8e2d66fdc8071ade0d7b8c5c2ff0085c9af7259ea3789cb7947a51c8bc2dc1ec4d33a288c6ce22ca28fcb0e2e33ea335f6d977663d4021bc8137c9da62952e511085555f2da99c779cd21b8b8fe70e845b471ad18b1dc7393c29e6d4fd2d9e8dc6c29042d466e9a6c868366aeb2681af95948e6d46adb7531bdd3adf4edae4147553d99c57035f2871f732ee96f89a95fd08d46d8039a349f2cd4bbf7e967144e9a59d0e8ac0f4799f471b8b2ff4abb5062df73e11812d3f18f0f006627c5c343b00892c011f51759a8f4a92e2a3c67274684ec98822efe1276e89007c787a1e955fb72f6df23ddab04d56f69972364a2f018f5cb010dca52c89db87dbcb39c288807afe1d1e72e44ba09c84fa3470d61850289af1ab5b1e5ec82c2489b246cef8c79e76", + "2a3cebbcb773f90203a7b9ba524f36f352b22a42acf7d66e7da9b5855456ac84b3ebf45598a4a8d369ea5d0841381825630d04d316d91763a792aa95f55aec6b4409869b155117c5f80c7c750946a623e81ce5890af0bcdef7256bfaf20629d6bcd06c5441c960721229c5279da8b3dda49b2e97e06ad43684caf89c7a6e37cf35c32b286953de507bbd37ea632259", + "c9328aa40a9c37971940b5165319756a0939e4e3b28063d7c76f46823ceb8697a8b09e569286ac688a1fbd608c2706a0a397b07db273238f2e2a9fafd91cf8e1da1dcdaade6dee1a92296f35b8a2c196abd56524db00fcf3ce78af0bb588c35c283a6f4633a9d41baddaf68b4d88e1d98c5b943af31ed8399133f042f949b620d54b1e337834721e8b36b3392ac85553a30ea9fd99ff0f9644f65dcf20df638996747cc31c7ada615d9376d129ed16608bf5bb07c494beb60c48c2b33610216fef2266e6b28507f97ff495c177e3b239b9b396f4c2243c48ae7ae7295e3052b66e36e1487ee7b12bbf0276c546645dc58083e8cd567fa215f10de8c5ef660155f08a7a4aa6e24cf52f7a3d0e6c1d8dd13aa8b22a523a76a83a1d809a306ba3dabded1c6755e424d41e0ead045e5567a9501b52875342eb6f9578107433807e9c201af5a25a3394" + }, + { /* i=3387 cDividendBits=1917 cDivisorBits=314 */ + "11e5b6a7eb6ef943cc2c8a6d9508dc90a3b31c89fb8b44e32bdf2cc3ccf367b537ed2f6b8d8cce73ab0bcf98f0174c093fddd9f648008ee5a813e1ded73f72cb40f7996069820bcb98a91d31a90a136cf2a6d74e5a94cbb38a3b08af779d3c4ca3fdc6463e3575c5f3001a50b8ef598c89a2c958740b533d1dc63be33f123c77e7216d6bbb1112bbfb71140518925d59bb896c4f0818b16c1073ad149f3c31a7bfd641d85d1439d82d25b17c16437888bdd3faa21f66682a051967ca4aa30e46bae304d30c647265294dd633a81816c39a2d1b2a53a70d21f3529b5409db4f679b8fc96b01ee9fa02577cbf7b0972f11", + "5114c9d5062ec55a05549b3df904e130e39b40fd298e8ad28be897bbab874b9413d6a2ce82220e", + "3881f985dbd2dd68d8d2b89373ad37ddb1f4d5e68a3752ef94061a98d0090aa712b6f8f5498d6d113cc931a00c701d1a16ef60bdcc0984076d302dc45d0f9d6b5a434a0989e1f2db5922129ffcca70188cbd0fb19f48720423eb0ab37da31f6c6bde8a404c258b8afe2fa2fcbd627befe6430cd36447538a5138022282f4c22ee8cf3ebc7058203181704d9e1ecae4a9dfe30b69328bac60ce47fcc420cfc2c2323d16282c2f2499bae470a38e29f3ed877ce0067283e219dcea109aaa7df63e80bd7dd352020c61b2", + "1ca6a12ff432dc77c174b312f352d6d1af1596f56de8a6d3ee15e97ab78d51f783b9ab168c3355" + }, + { /* i=3388 cDividendBits=1899 cDivisorBits=1531 */ + "02b4422a8d57cccefed7bcfb8a15828632fcefb99d1f2dd0d306a30d0c66326cce21d884d2e770c3a9595c9a1bf2d290b4db4db77ab76726df1e1a99b6a98f0555f653f522933e8977e4778f470f8c999c8cc62b5fc6843e31a8665d9f6c3e9450a45b7ff5ac122d92c160220d1e33ebab8aadbe118948ebd36a24a2d7de34f7450bc2801f6412fd46752da378115b8f8073580171525677ebc5a355119a2caa8f1257e50d28adfca9fd63c0056e2c6664333c9e01605669dcd16fb4bfedb6b645889ec949ac454b2df371c43adfa459ec08dff20aa3c5afcf7ffb6ee6de24037f234640d6e88d78c3671807f138", + "3936ce99b5af47b5c079eb10c603dadcf3b85f081655a5060eaf55659c607435b771e2d679244e97e743c8b1aa1cc3dcc8c5c509fcb14861896da09e8ea68267d1bc923f3e24eb0c611a3c1c3b317d347eb149fdc8cf63c5f2ef584608c1aa6664ed2c6fc7227385f4a1fdd8bf78a2b67b59b22e444b339621b41324b35eafd24cb5ce77a4b589e4a4ef7b3b2d735a2dd03f5af7d7ce61fa65995e5d78aa68d20c9816d0ce1840ea052e228da9c8f98edbccbdbcee85d8c70866a16252bfe6", + "0c1974ea2d346728024c4e4be0700e2b4c56068d3c9eb2c024ad2b85b3fa3436e3c183cfeef0b0eb9538f37f1139c9", + "181186d451bf786af3cef5cde6793454cf5dbf5097de21ebe14af0aa41c728615bbb7f73612662a168fcfd49055b36d2f5ae6437c9257a0c72b82df0f7741f91838789798222341e497b78d1d20a002147131124ad010cf2ec9155b688988089ee39e2c323dcc3b1327b3921da40c73768873e5ec9f4deeeaa2e43a21096eed254b6d07f21acdecb6af3d1585813fbee361a7595ace1537c45f6aeefeecc68a31d7d849c5774f1e215cb38de28bf1de775d28631cda1c6472333c8a00f0fa2" + }, + { /* i=3389 cDividendBits=4088 cDivisorBits=2721 */ + "67d825470f48d1597c87efa9ded6547f1c3c01f4eb4d44da3b5f67ad0e483c09c90a89e775cbc8878d6786e27bf57e1d5d7054790fa0c502d9d0a7a66a9b1e99a3fc479437b203478a47e09adecd31519de6d5c8ef728ce771eac2d4ee195e8a5063af8da3929baa73a9a3cebf204e44d61302fcf58a9163c9cbf3759f68847e3a9622f5444a833fb8f7e6147609aea691a68f20f7731403608adb282fe864678e504efd4d8e9b33a2d95fe33682501e1a8f21e09c47295501b3f85c1689254710bdb44aaad91b8b8be12b53ebe460e41c0fa76e3e747aac568824261ffa5f4583a6cab659698fe2e10096c68fe8ff325e75908652f198d1045a301c75f08f5b82fb129f921fd54facddec3f913ba44d86047e8959de6e728b54e0d4d5663539c4c5fc42441cc42486bf0602edd79bdb39bce84efa0bf2cd0581e67c7e3058053644376620f2510ac108a47d8e77ae89899c30d58ea3730500089480199a206734a9dbf926057b15e482988ac32729c883f9f2cac9b575b97fd056945273c7169b5f53a7953d7d1ba33d00319bd93bfcd33a9aa3585e5de09843bbbbcfe59f129a29f27541a33d57970f5b68f7a3454b2c587e8bb984b86d61d7adc6d36ff7b583934893134a79905f5fb258d7e5ce88bcec3fe19288c03ad2c685766781c91db895a8254d734f409db50ec9cc8b5180372662c539c9325757f65e6f227bf1", + "676962d4fa9354bdeafee251b7ed125dd71b6c8c582ebe8735d1478b4f2ca674f1fd837187c6566e845b528af0c8a922e83a2f86ea46c36ee55cd4eec4ca53f6c14d78733da4cd8b89de7c4d44ba2945cd8478f87ceabe4f858865a3f9bcbb89a29b51903768d98c6a84ccac74bcec1dc48e8e9e2ba2198e724666373e7af294346431bc9f937e82b9fbe85eac468387a7c69b84f99f5314d2a112f95719be5bf8c0cc0d568ae6e82610019b8c1ddee2d58cbf832c786e9eed2ab9d3d3c5b089c86fd3e6b4b836b932039b9562c6839ee1dc6feab6e13a25c55c0177b39216313d63265173f7e0a633b952ebfa64f81a705f46805296e10f26a05ff00b33928d61c016783e4566fa6b6a922a315301dfced4376385b1cfd7562e184eaf737de540806117a4e87cea4fccbd6b3add35305557d657f0fcf788f16c8879fbc3da12b34dbb3f694c9fc5713bd275032638886d1e5e3c", + "01011230a4b8f357b244f988496a8bfa95834f549a88cfd24b95753da9849ead81e57d950f02e7d9154424e49d0ee509bbe16f9a31a9405692a0420084f4773c315bf82e6bc2843071c00316894de76a8b7f531ce2ee7c40cbbd45cab85f081f9ec4150d732e05612d4f14d7d55b6ad29c7a4973da924ccb69c60bcf13abdd884378a338476c195f5fafb2e64aba4cf043ee721f09c0ec4a56e17e188e5c9c5e3e9f574a3730b62a2415450b", + "64a54dc51608c950dff6ba02a7fc0b40c938b787fb3ccc230b669600031f18069073017b0af6c4b249c984f3c2e29d501acd8b50a81a68b0f95c83e5806949c907362d88045ab058bf71e3bdc75e6250e37af5e2e5bb971ea3bc6084e93d10b336300e7fac1acb13f586b84b974241972a5dcd5d3faa08dcd851a7538ae26859f7676bf4ca5a5fe0ebf994150666b49c7f52b6c403186a3fa1e4157229f434edd175f73a0d157292fe373a37e3410a3170e45902a57769b546db4b85f4323d787a8a68ded67f2c0f0347cd130f795b4307eaa2e4bdb64912525824cd3b99e514c19f7ce3ef2f159707710427e3cec9004e74f86175c58e630cd5a71e15cc6c27197f7b0ff1a14f0d283054f1f6807c87be34fe328c60a9ae3b8a629f1e694c68f9763b4974c925976ea9ee49fcab7b265f86379681bdea4acb288d81ab27876a05383268f920d9e58a55b0fe07b36c826482435d" + }, + { /* i=3390 cDividendBits=3976 cDivisorBits=1328 */ + "41a552b75da701e9efea3bf3fe962b9cc6da85fe8d4b70667dde118900c491984f428558fb4a198c63162f3b438bd6a645774db67594c84efdbbad6353f749d64e7c7fc4a11b93eecdc3e18f9de51260ea597fa5872c8c972121aa1182483a6201a519822943899115504ccc980c52e29d6de78bc516e696599aa9b86058020cc315cd5cc16856ea2a2a7c81e0d698fc55a5b376a44e8d578bacc5f3c422467a1f219142d9c6737dd3f9ee2b4b48d427c26805335d9a9b2c938881d5eaf913c174024abd5751410f3263040c86d19ad0036003977e4b2a333128395d737f48b341fedf51dd840557ca4b7a70cb21a5a4f75eaeb9d4fd07e3bb5b4ae9c8ec341a77d3e3a19a23c1672902f112d1ba278c4173d9230e05cca095f1b13a2ed4036a31dc0e2efa2064d44714339373d3097779e709785ee3c9ec0a4b7c675619897c834b2f03bdb0901455e3754df4fa1cc008f06399b56adb10985648956cf96bbd822b2afd7d74cd0d37d0aa9e193817cdc589d2669c5530f4bdb3b8b253b61ac0174eac60bc110b1e1c5088be80b5e7f38fe1b7a973a8e4356ab2fb5f2cd3c326d963d69b9b6eb8d6b483b2afbe76a746a76b4da370e748d4ac12a4f8dbb91a9236885c363dd100177a9df5126e3e19af5a6a22a74efc29fa7191de6804b1f306d95ba5f43d02fef5cd13c0bbd91f81bb8b", + "115a6b6d8efcaccb876d18b22d9babd5cf372dc3908c5dd91a5226d7731716b5325d9eb8206d1341ab8db5f34942053a0b5f786f43d46175c7d1caf611a8c2d97306d52871b9c734fcd9a2db6a9c9add0ef67898a3b791ce14ef465b47c2c1a2ac6d473224baca09786e2b90d5483f1219eb0564ce93bfa5b7f6ff93fad8eb392ee66b0c3fe007290eae7b21d7592352ea7caa11da6604b86c348a30de2ddabdde3d77fc9c1a", + "03c86d84d95ce6e4cc7b286b1f17cb9a28fd19ce182f8e05042104ba791d1829ab9f03b1bc7aaf97ac4e3964feb2d32a852660e1a98f07777260ce470388733a40a6d288f505c543276aecb87dee36bb915460c54393cdb16fee2e67b6a56ff6f05781d3f6103f2ac0cd0038a4f0520b77b77b9f96c91e84d2a2a7aa34f6174e521f8bea6edcc75966f629245c80e659008fd341065fc91ffbc57639289a43569871cc22706e48c9d3c7c6f87a7e935052dfadb77474aca1625e230f42422a04202ab8dbadd706dea66ed04f82bd1bc7b7dd3b5856446e3f11515c00eb37c19a39ae98c4962c27a5ad3029e3ac3f2fca139dd9a9fb05258b7f403c8acec6de12f4be59f164f1921895289e8c3909f21a6d9789be0981282d1df9c822c416b63ba10f267d8645aba26383aa844fa76f3c167ca2d80df2f564c9463680a5457b8a943ddecb8a450232121a7a4a", + "0dbc0be379516992f377611672f561a0a68463c9abe962991aadf8b31237c18bb3b81936f1604e5442562eaa9eccfe5233820a11356db7e29c4b99676b319f56e597f35167f89761c44e1cffb358070d9939a1910b035083e9f1a88fef599a09b802f244e064f2113dcbf47510ea22724c15a4a03941083aa5cc38dde598562c8b4722952bfb847615b32b882d26d7e5c61a604fd63af6af4cb850019698f8b68f305f743807" + }, + { /* i=3391 cDividendBits=1779 cDivisorBits=676 */ + "03f1c4d0aa10171c5275c552f045c2f56d2d5680fce6c6f44dcf2b11b4fda476b4ca41d3b69a2136e4ed5a0ba1cf8dec8055a09233f3079706e9fe2264bf762664ec693b3dd3ed830866b12619498d639aa693bed489cbb11f33739d36c980808e083674afae9ce261cd24116ab51bb7e48d92c8e884f39ccaaa01c76e4a5c6fe42aa01cd0b41994f96007850298ff1a93694dd28b68dd46b33e08f8568a472c35ccd6f75785de020076af40e65bba921ccf364de0d5b4dbcbed8df832e0e2755946979ba6fb746f01fdaac54479d03ee08cdb219ac37f492e8d23a68e0952", + "016826799329b2188cde583df09515a13eff0bf83674bc72040c600bb58c36f838980880fad50d51707bf123c441d448afded35232e7601c287e82038bb492d4ddcfc1561c6fbc77e47c0d8b9b1b154a293ca84fc8", + "02cdc217758025729dc79d9be083c3a71da08a32bbb64612d63d41be54b7bb2e57ab4916d53e59ae0b64ac5ab1609766929be2b599b2f555fc21c4aef0e6fe037c7931f9ae7fdc8ab1712e26d9a35fe1dd9069cd47e7f524d28ef2dc99928f2246732010cf1df1ce6591798c64060ebeef87874b650071aabe6c91ccc0c096688f58357c08efb1ade08e72", + "01226b8e46ce9bbde341275407be6812fd0c3db011eb0c4001632a5ddec6294788af59a291b66c41dbbcbf1d48bf3fe87a86de408cb06b07912092fd4c5cbee1bcc8530537a2fdb2fc478003353762f4a950599242" + }, + { /* i=3392 cDividendBits=1075 cDivisorBits=345 */ + "01726a9cd6857ae7df7caad6c22bea506a721ad0c046bd3eda4838cb48053d024f901298a51587691fedc76d354d31728cfd88eaeb2edc15b10a289a9c011912e53ca4ea7f9bc1244889930da4c4654f11e451fe4f85eebeee8868a07e7996e0f2c35a6e11c3a65cf6a0a80ce6135354ba24b3983e131da68a56431ddecd3c68c61fe110749466", + "015d6588108549f46b51f64dbc79f0a152a709405bb8795f3dc2da3303a76348074bfaadd53814271dfb742b", + "010f66ac6fcf9d07141920d74847fc0f8769624a72e14125e940dce32a28fd8753b3251771eb18301591605a2feede46d7090b10ea8f4279a79e223fd993b9a1dd3fc825170c2e0a676caf9e361e76c990436b335bb9c67162e679a9", + "e12d8989eb5ebd800c5142d4bafeabf63f31e57a6a736c8d9b4c0f180e4e770041cd921cb0998496ea9103" + }, + { /* i=3393 cDividendBits=2473 cDivisorBits=1031 */ + "0185e628075fd497561daba3463537c8d90ac45700e74659e84986b778f8f8c4c7c06b79f811d52306bf40fb3ef39407fe030af92e51fbf0eac692fc06ab7fa97651c42b1d8ba8a30998ea7fbe76e5e9a2e88a726b5e566868ab4b1e5d08ef8634d44e4c14e7d81c94afc8efb1d48e697c4871458131e2047c25c1f4019c7993052d418554a14e72dd96f7d8cccf7113a829c4c618c063775e453f68579be4cad1a18dffeb964193a1b5b6603b9e79273de974d0bb216bba749761ce7ea0c2917c1528b89ad1fa12ad569cae463ef19499f5b51a2cb19c48a04cc3cb499ceff7866e0402f80951fd1842b605dc5691c0efa18f29f5d3e69a2791619cb415bc6e7e506b7f7e17b89260baceaa0ff5410c726a63cca1896a8a04c2a91f0e39357cb012d69a3b4f0eb921d08529af82155265ce3200cb63", + "03ab6e978d5b8849db52563442f1412a2f3e0f24fbc2b62c8259de6e0ac471d71175f7da377dba573d40d9a73fa56ab40899f16b0d65f2a2a1fc3fa3be40bb33386c60087e19edce061461c37879a8a65ddee398f7b0cec6d3a6f1cb64100a3f24d5b50df81f04dee8105c7f886f3306233880d49999a50b1e3c862ce95601b113", + "6a3fdd902cfdcbed237a30f9198b31f7438e834872f1799038c5cb684415ece0b3ff39ea0113dbc4b24815bf82bc9f4807d3cf986a833b2f93b65b4cc237d1c3e55d78354d37af6b4ae9e30afbdb041aca7bcb59f80e872379b2f352797c11e6844dc9e12c9c0bcafdda6abe05a94ece89118125ca898b31f6ca2f564b6dab9c731421676e4dd4fe547202b9b884f03babdd49a14f90f21b987ffa0e4da186e4a7ceb89ca4caa127109a249475cb5b75bcb29ccdfe", + "02f6df54a9375e3f85c1f549f6912d92fe11b899cd949c36e2746c30e25a893ec32f7abaea7bcead4f9e32450012631bc4adb06f98f1943490c3137e6e28baed666bfe9677b7e6725c4591d0b3f0c3b57419709cb5297dc6e734e366fde677b6cd1d844c67ac9419da34ee2462021986f162536a96bbf9d0b00850ad5063f2e389" + }, + { /* i=3394 cDividendBits=1944 cDivisorBits=155 */ + "bc38606223b668c518a9551842f62ff7760627332a298fcd1ec5ec97916663b6bf690e5d54f614d8a8f4af2aabd87ab294828a101cd0dea0204d41ae12d21746a8b6d5161bb4e82975b8eff704dc99e28a6d0d71749bef942bf006ccba48e75bf2ef71130f4a4cdf1464eccd14b534be0346381c0f76ca27da5cb8c964487cb55f6778c5674e9c3b397c05c12d3af3a000c38a50823cd9990a0aeaa664dbad5d917f7b01556f06fa524b71506570f46ef38f6ed87b1da38afe1871dc9dd0880cd2f6534337dbbf47d48c9a7485b6e5118033ba36650c686e750a68607650fc3ce7454df5992e7a34859328aab9507849f7382f", + "0356fb5728b174d55987d96a0805d8b9b0b02587", + "385b712c686ce7fe0f71caeec5c1c1525cf24769332f781b070c8b39843f31fc8dffbbf5fc0bab0ef32f009f57f5e4dcfa9f01504c8aa3cbcd5bd63ae6fb05389dad043584f9eef6197ac0a739f05e0165949efb498ed7d37758ce69b84d47d783e86af0ce562f255002a40a5917c5447acc890ff05918a63520cf83f1e9a51d5fdeb37e3b0ebed52f71160353d51b15412c1cbb7a6eaf00d57db6bdc6812d23dbf6c0b10a7f0bf34fded3c1a95224d2cbddaa5c3bb1f522ebc8333ef69585dba5c191588bc49e0c4b0c06d673c48282dd52cb2d03447a393f51ff210f0e708e", + "02e002c97f982a720af2f5da985a90ef4175574d" + }, + { /* i=3395 cDividendBits=326 cDivisorBits=190 */ + "0dba1fe4a10c1b2448af6f843c023d7b5d887229653862cd21e258009c8208c0bfd0316c55d1c75413", + "3b3924525a4db17d93a2ead4fe032f25c5e79e1e6dbff230", + "3b56423f9c3bf79ef79348b7551c4c17c8", + "1a2128c94f5b247a2d4476fa53f3cd7acaa3db4aaecfce93" + }, + { /* i=3396 cDividendBits=1981 cDivisorBits=731 */ + "09fade74cfd928ae2e5564689079bed6d6e0a292609d28686221861fd8b008c6323e4719812b6c54f034acf3f4b474106906db636ae21a8ccda7cb14904cf1278947cf7d6576e35ed860919cd819c6140913449ac7bce5c0b98b7b80428059e01dfd6a42dc89654d7a24a8a6cbe5bdc06da527e3e4d06c8500f3589f3a212950c04d319d41583a2373533ea70ef2ad04a72eb0ad7442568d84f98e28095123c1f938b6cf0325840afb8604fd24997650d17c7873ffbc890eb26ee68a17d78adabcf22d8dba1bd3c47ca73afbd7baeef2afef63af4b3efbd57102b580b0865930d37539a2847923357224386728a10d4c52818d480cf501d2", + "013b5d8e55435510e6e97451084ed05ee7830212c18cfc488ede1d55dae520b20055e150cb217a5033947c3064fad31bae93ac689f31e15e7540d24826d594099168a4384e4cca86a87a9912e4717d4dec4f2202d6984bccf56a63cc", + "0819ee8d76f9528a5a0c74bd4fa08aef159a9477710cbf8b883edcec908e4dd387c1be20dd6c2e8f8bfc2eb93c6f03a4f625de53f052ea6f74f24785ebbe292b131acff7b0a12bdcbbf62a495fa94464510ff9ce30a44531723259fe9cb3d138aa69cc3357f889c6466b879af991ee2c3c1759ff0a5561c88eb9bd30614174a59d43901e14f647866e9a93ace29916cf740e5fd029737fa1b08e956759", + "2d67dc1f63a8a071595aa5874b20180c7dd56e13d858e87ddeac869c5829116bfdaa7c1f147671851b90daa6fbdd00970f95731b9b02ba20fc3767c3bd2479fe0dfe3c18fc5d01fa1cd7c6a8581931de9f6bbfda87f9c1af153be6" + }, + { /* i=3397 cDividendBits=2457 cDivisorBits=35 */ + "01473dd22ab8adf7b9fd1e0852bbd77d3d26bff31dd6465b190b9d2bde47e23dd40af7896fb6f526a166805c269a02521c6223bf8f3d229b1aed87de81306c178b7188ccff29152fa055c943e57a3e1f9b3663365d3bca407a90d16736f3125f2d06d99c745182e528df8e343983b96138589842dbc5cc67d25af73a967e04058e748bfe7ca7e6ac4a08935d598509690065a3b7a4cc9ddaa3fc493dad0046d48039ef0f7e46592b39b36c8206685e0929976a446a59a6fba7b960e5f98093d080f366522b884b3d09c2f6d911ce5369eaaa584eb0ba172eafd9c2ef7ce95107f25315a3aa4adbd612f8dd61d3fbefb9b06993e1ba323d0d44834e5004490ab52f8a724fcfca7126abbde8d463efaa224c96cb492608a0e1de45b37718ad16681bd409f3d7ba6b9d61eafd1d64e4398ed2b038bb", + "04713d896c", + "49aa044d98772c5b08dfb00a6eb9cf35f3faf07680ac348228f1ba13e1f626b20b4159c67eff46f21bf3e32a972b27d7ed591f5805ce712db6983cd7bd67fc08f80a7c47709b0fd2c2e956ed02e2435b6184502d4bf008e6c5a3eca4b0c0cbcd470b393992ac3dc4950cee1682eccaea9e8db17b1b2d852d6f602f08bdd8a855da4f41de8d702525b676e38285f8f158f7f3e33f9cb2752ce87df21ba7bca957649eb49084ea27ed449cc89419203c776805a50b48c861893dadf4a7fc398cb54c3ddd95617ee4aaf1e376b977ecbf9fcb80e43aa7dfeac7518aa5e06e3aeb1d1ae6364aeed97ae4a708a3ab17da0be2b104cfdd6b385c194191f8ae19a4b41229f0619672d1a48ae5f3e80bf4e877bc874137517b2e49f8ffd5016ffe98ecacf5ca2ede609a6a107e58957007ec1c", + "03b351a0eb" + }, + { /* i=3398 cDividendBits=2464 cDivisorBits=2008 */ + "9f5555711cd802c65e20a90df592384f2bd2dd5aba58d2f7938b561402ae5a3ba84fd801b3ca18e23a22c1d00674e47c8e9aed05d140037a84582a750ffa838c830bb04d7863f7edf9299dd93f714dfd0544eed92c251e42816aef8b228dfdd2733a864903248109a1850c10906b0ab6724e190cf55fdc2b54a2513df3eeaf2bfcc72442f63de21edf8c992f2b4f0f5e2132fb44f207f47ce618184816d6c21f655c867191ad8e29649325b09c30b999999e9a51cdf9c79ee4dfe0a09c464beb677edc9bb2e1dae740d5f9dc7ce7d288db80bd7d86503825d5e280dd1dfbfaf3a4bfeecd683a5a2029ab870d1152a8b00b6c0dff513bf6276aa9919d82bbbb4845295922f26c9bbd3611f7fede8b0a1ab9b5b3e6ccc52398bdf4c08c4ad0fd5fa36c531f3bfb20885c8261a24ead0f9b2c9b364b", + "db13e68d843ec539c33c1f751e3eb325c3071f5421b44d5c37008d9d8ee878ef989849c7218cbdeee28209574f3868ea23c6d2e520241ab6e2899b054a62a8247a98c9adf6a3d6c3d7d2c8eff9584d2ba35d7e42e28cd79e969745220ae062d2a14b508c67b988375063a5176c88aef3b40c175d1e10e322073b22dd8818cd8d9156de94b3854350a75aa8391999b8795da820ca63a9ceb929dc0cb4e2fab3b9ce99eb706a50a19a49f02a519bdac0f034d7ff445110bfd417d1a8662999717f98611b83d804d24e76bb71deda351b35347b25c5332de968c3e573b6b82d4386e104c0dad0934a369bd57856e3107b0807c7d28f1c996da874d5b0", + "ba2fc37821b141e95706927951320e5be710ad0942d55bd9f9db45b9d537019b37d8e24317b3a37c9d558897d8b877de21d27b801c0c3e3988", + "6125d2d57f648c47b7bd63d0eea6a993a7ed87e6f598491ec7f99e929e94a943e800e943c283ed613cfcc639a048233d4168a90476d86b453d3d6182a785cd85f97b392dd4b906fb9f264d2e9437749e4855c75ebf52a09a644daed7161991f4aa3916f984bec1a7a915c4de62057b64ca6ec49357f8d68fc8343d6fe3e8507c00a1d56a7a7bead232a0303f79c380f7a6de33cd6147cf82cf838fdcb4cc222ca2d459232c6b6901a36b252f9a156fe1eb2f393fad7462c77699225a141eaed93ee40915ae29eca343448c7f116c5b80a60500783c7c6a1747ba3904ef664e22058821cf374615240cb94add460c549c48c874b9ae7d47aa5580cb" + }, + { /* i=3399 cDividendBits=2235 cDivisorBits=1379 */ + "067e700503880f605fba26ced73ef99984504ad50bc922c2dafd0aa76b655f5fd7ce2fe5c7110ece419eedb3cf7c429b1c316c7e92fc5aebea0108e4bda1ac9bd2676dccb655d4e8104f43997cad054509b2216e282cad92442b764b1615de0346d5be98ec40b598d2eb6df47c9d11549ba3eef7394e42299dd37b9528f0d520c7affd262c11d68d88ef5a183297c2f64eeaaf6b9c0a58b461e69a8ea97e48bb244d391f38eba41a5272e45410ed050edd9612c7e21f94593abbd052340b8c131100608639540d03b3a1663fc0f2f5a9a38277ce1d5a927e71309e1eebe02209087153da5d0cdbe52d7d8db82840cf7e9adb020caf3c672132730c86ae0f1d15a79e076575c415d0d8601c89be158badb1eabe43bf1f82a1", + "0396bd2364c2293ff602221ac47e30b3d4beb4ecd031d2f58546268f4bfd833e7a3f55eac9d6fc9123579e28b20b54afc4e550e76480a958bef17cb5114a10659948245b8a6edd34c804f48e12ad3f424347b34f85a50305dfbe5c00bf07aecb248725495f61754de4b23f415ca71d7affbea7c16fc43535500028fa127a92d5c07ef3dfa1ded23c387380a1902335775ba42a2ee85257e2437a43f386b945e327533e73ddab1552969dc6edb5", + "01cf39f1460a6df54739bce66cdd4a73bca08d0e50c1a221d1763b8237c54a2f494368b5e98fdcc5f1ed29725990568a86d7e9a192b5a1c6a0e8bee7558b46ff0b5095163ebedcad9a6cd610675b5b3cc1d0319a566b177630e3fe3ab77cbb8e360e47160c4ff9d1b421d35b", + "030555bca39d2b87c47b097b9fd0ba2b1ea34c0361f6dcedd450dcf0808844aeaa58ef13c856f875461cf5c4db4548f611c3ba32d8768bbf25fe7fb92d450cbf5353e7e03ecceab3542d0e133c0bc49fc15dd61071c38fcf7aa3351f15c56c8c176eb57ba63869181cc035a7b92c67f613f69b7812ca32e56052f8fe693d84fac6226e8659b0d6ee13148516fff0b65ec5d0eb84936a577f8f2531f38c57b0c97b02fc0b8a9e71eb21cb27d44a" + }, + { /* i=3400 cDividendBits=22 cDivisorBits=16 */ + "2de561", + "1eb3", + "017e", + "1647" + }, + { /* i=3401 cDividendBits=1217 cDivisorBits=462 */ + "626b0b08f4ac513ea9b4214aa3b5eaa11b05cdf69af0b055f9571f94f6b481938851458fa8e63cb9268ae58421d8397a27f4968b33203ee538d51b8d79095863c9cb504afa9b59c3b06bfaa5078d09726a2d1a044e2356ef3d65d154c080a99dca667e53266421338dd625ab21fda2db4b99e689432b7a36a77787e8a754a352ff27a0f6bd610701148a2b22df1c5df5d1a48e9d6b34544d", + "21cb487c2e376e1c5b9e03debf5b770189870eb8f22a6decfcda3365105497ee8487e09ba48a68607c099460e5c6af8ca94b83de0ce014ceccd1", + "02e98bd1f451f358cd14e664ec4c59fe43dbcee5a4190981f68035b35c264c6e64531b0d19574b47609833e87fe3c2c06940e7f55af15467e0a11fab1ec67462100863ad8db10b9b23ac6babe477f33594d3cc36bf3c8ef810b3083757a8ae", + "5eb6aea8aaa61a1728a79687e569f9dfef406d2b40ffa4e62fcad761d15b6c2d575d88f09e9f2ca7d48537ff954fa8e80b6ee8b6d70e34f63f" + }, + { /* i=3402 cDividendBits=83 cDivisorBits=29 */ + "0786d33468c96f8a92052d", + "121a3ed0", + "6a70895f9389c9", + "06e963dd" + }, + { /* i=3403 cDividendBits=3817 cDivisorBits=3244 */ + "fd6e6301d4aaebf03202f3ce80c3c2c28525fd36b654eca19bb9d1e037ce16c91b68af210531460f605605d21c529d59c084602d5b9f2fdd6f0790de08bdc9cde4d0f0e136fb0582e4da3146fe0b366df3a9dd456de74ea3e20bdba357982d5eaf4f241154a95f7754fa2988dc1d172981eb9f117c1529f1cf0f30933f4b553668f2334afb1a9392fa18e90858e048a09a942f32682e26edec783593146b715b8380a2f78a9f145d7d622a5c39392a17603772f5e31b1fd597e8d413f4e51268fb5498bc603769cd9d449c700ab9fc4424e3a7266e1b92fdb823e016cd52744224391faf0a8c35f4f3d273aa57107cbb41f902d197856595b4dfe904c8885a4981fcf2fb395df489a7d7250dc475e86bed1867cf743c7f22903d551f5b1ae174f910b2b6e77458efe2d71dcb89c5aea68962808ab806088d7d4ee6b4651d4bcc6cbea84dc3856859bc408ebebe8e9849b15b1c0ef188f89c482754e9187bc4f4a9880f42a0799739e3858df0212247347f426b0bb08be35e7e5a0891a33b728c33af141ee31e3afd1861b963e068f65b4fb58c2457be677945d5f5511124fc177081b6e4fb305f2edfd310fc6699a49eb204eca7ef0f316dbf0d0845376460b3075d83daed68f6e40883dc75670a0ff4ca8882adbeab5fa5dd43d48560", + "0f38c97bded317e6325c6fbed4909975a1a4c5fc3a0cc854114b054e19998880038129293147ec641a332611aa87f2fd6b00b2d7d484b4d4c0ccb7c5d5bc3e73f082e107df230540e7aa2c6b5719dc2461e3b26ad516feddfd36728e469ff9c8346abd784cda05d4909e77263eb0c2d117cb233df3718472704e36965367449c08c7b8ec8bc01ffef935ad6021887e34fa4b7a7a5706502051354f8eed93cb0cf15ae20d41d588def9454d3d3090fea24771d65d6d68603f5a790344308206ff13e4fa6fe65a9b86aaf05367e52d0d99be75945eae792f420b33a8647c19a7e18dac167ab56e17781adc976f81c1f20cde3d02b06d2828978b0b351e6f3961c15fb7b2202868e35ba2c08727cafd2aacf87f3e658f95d5e5050cf57568e73255bf3c493ddb3f77d2cfee02a92a2ce0c4520a19a1c952d5b4825e964d31d542e0b346d815d16bd6e7f40995b43d437452c62f46a98227752d59216f0a613ed3030f9256640f6e33f5146d9caea29c2c3c88177d64a16dd532e3b6a2dcfe8ed53dbfe585315f7cfc13b515adfc67ee0532e6c16dbc84cb", + "10a631f80012527cfb825079155d1d7e999443e8263492881ecad4abb3b82e1d9fc2ee817fa8044a844917cdbf3ec2319eb952731de4309b7d198c13e7b08f5523eddc5bc9fdc45d", + "048d5f48681bfc503f112a2cabb3b6f5bfe50522391ab2ddabd412e15fd9fb2a7c4f9cc710c348848eab1b4eb722df1f89d81c18c8c61628754deeca3b58978353456cd6b42c3ae1c6b9c64fcc6644fff551a2c77f34da7b370c275c13137bb8d83cfb86574b2b3bc81da544c8b2a369123185238051d433d9c4104d0e3a918f19fffb2fa47ed98752499273c5a61c796953438330bad5e5a8d8ab385a74f323d34e9444770c0ed7afc26e9652f5267cd2965c2caddda59f20a104a7c0029374012e5972cea1bc0485ef56dd90864007f240feec7b1cf11280744d5c3c4ddf7e3374bb6f056e182760673f58816efb872d00578e8b10bd186fdf105ff58c211aaf41e977a03cafed9c35be62f7040406a919b04abb6de103986ede6b91ecb4acbfef8962ab2552a2b1bd9788ac4d99cb8352f41264d1535dcf72acf8ef97fa48b31ce40247c1f1c86378547e8b7bed9a59226aa7de5cbbb7cafc3ee3de56f52da623949c03b46071575b61b94b3d231d7def8875f894c5b7f281ef73ab3468c30a2d6d6bca8f33e317e39b1f7aaa2dd299d8710ddba1" + }, + { /* i=3404 cDividendBits=3321 cDivisorBits=2111 */ + "01f19224d2f7c856c289f94584a284126e366746c45bc49b197eccdc9c022a73025caaa981bf5708b82c0ba72b7f03d25c8f3e6e24114fa269eb9a71def2a8cfe4326630860437547f0160ae17d15726b15c5d0c83fa4d00acda846d89e627ff817eb819b0701a4b7480fb8bd9b75ba69726a56e4423b55a31e6abc6682a65e4abc03cf1962519a9a9f498f555936496482f4624a20d723dc0810028795ba9ec6c25a5e562ab6ee86dd3cb0543bc243a54a5bfc8b25c69bd79612df9b7b73e6067983e680fd0495e84229730c59da10c3e4ec5d3895e28981608e750fd4836430115bfd4a9212d77b5953fc157d81f9d28bc49e72eaebfdd944b06685e08ec793a9730f2f988251e1d3cfb670ed2dfceb627d3ba694c5503dfdbca6de18916903b35fc666a59e4c44e8499a3c67fd1d290a68460391297e9e80d83392e09e5640a64b8a9f420b4f235cf87f2c34a29966c3b77d7ff7f9f5c2e849610e754ac4f25532c510670510dbaaa410f7d1dd804e8c4e32531e7ab6a0c8fdcba1e7ce306ce181dd01f86a142965e714c329a46c32775f2fbe681d5b9b4c2a17acadad1b5", + "5ee4fbef36805d0bd3888be70d299f835f5b68ad3c3890b5d33da878d5c988cc1dce398e44c5ff5e9c12f96151af38045d7c5505af7937be285cee9b9773d7989dd6313f205ce239b687a297594d28b7c7b0106ef24981478f6dfba8c105567c308e18e095ed6915fdbea16632203cacb544e8c5cd2bc348c5acddd51bbf1c94798425777d9858a9ed91663f8ad44d9a38e8869a3bedd28de7d3a9c0f6d5f4e92129bc22aa8fe0cf18f0dc7a4e302d8a7da8a24511950f174f54b6a0cd84cf8bffa85f34f6edf1e155c10bd100917aac580e9129f756ad0f6722bc78bf009514fcf1b0fe6cd2143d51a881a88a90a0a10134a9e02d44405993718c648a23adc01d5f26e336f5ee33", + "053e504d1943efe106a8891b3decd53e699d6c11210efb7464b351fab64e1d5ebf7887270e5700746425254ed6603bd405ff91ef1e95b0a246c85c485e67632ef603a0b7fb9db2d7e272067c8130a0102f60cf53e746e9d1491a549eea3de9b2c4bc492f087664c001e958ca26029d208380db424379499f118b638e32b928828fbaf43f9ee2cf41c6dc307b6480c7a6a8e643c6618cbf8f", + "1d3c092fc516e5285c0f9acb4951673c32ac7a6efc4fbe11046d921a45781440296cf2ebe7fd31bc0bd899d3f0c143621ac1c316caa05fa3a1f84685145debc045ab4bf415bff834bd76d41b02bbdd6e82e80e63cb7781ad00df8bc59aa4ff47aec143b28d04222e09b7ec2a4339ef798cbddbe1761b1975191539713fbecc13033e01da3f2ab900593ebfe83f060f9b932b0c86fcf8a7fdc2bef7918c93d88c2a37de183698527f1375104fcad37f11879d778b09fe21a2f12e862076fc542af5149c49e2a075dc89ca06bd38b1b9a6d2089bdff61db87bf1a4744647389c00650b173fe0a5d9e2f912446dfbc91c6f8d56cfd2137b1c41f75b8e8dcda3e9439923905c03deb638" + }, + { /* i=3405 cDividendBits=2200 cDivisorBits=386 */ + "35e98fa23b67120a3d5b56abba60c118136231699c8ea7d01474871563207d47faf527e49b60b0749e90a84cbf9a9d8ae09ae10e132aa7426640567ab7c666a1d93962a874e8ec42f5053f9c98dba911900226d7b41115d28e6276e2f8ed7b37c628bfb1437fe3c0a0ccad31b64910416b5b65c5de7eb8737282b768851be308c613025654e4ff9bbd1dc7b7fd711e2793f67032c5a7d44fa94d2dd3341e636966fd92eca4643b8c71e6097b5c015d4ec21a2e7bc6dfe96e4a9a6d2504166da36aaf5982f932c630c6b8788b57f7c2220f58aa3d90740c0cd2a808166b6754ff6cf4b9134113f7d170470f4eec1f6afb207c3b953296302858a505777737ff370fa12313e737d90fd63cdd90b82e0bc3e51c67", + "032b5f936d6f3bee5c93ebe71ae1d20d87b17c5bc1a6da068eac946a4cefebb3e47c8f9aadd525de9a85de4cb6fccda8e1", + "1102977a3e0c12ddb91d847d21db4cdba0c6570af43a76e8befdba6ba4c18c96ce29ea04ab26c29ef3cd079da408ec9c94dcf1af40b8336bbdad0328e81fba1d53d02fb67fc51c9ad9df8e4eb84207dc210d3bbd763041fa81b85361a7a9125917cb070b22ea274cacb04b730db736f44749261c98ede97c363902ab394b01b6c845c4380d0387060d887a72e42da12174e7a19664fe9cf8aac0593ade95c1ac36f7bf5001d04bf81a1512087d51a68d221e3b292869b4652557dbacb6a501ecd63dd43771b0d979170fa240d74c6b8fb8e79f39da11f58e601be6ee6add01ac8fa8b5", + "a711e8e3ee24fded08a9ad4a3d0ac5b77fa95ecaed3b18a6cfb6647b804ef121b97f3d9e12deb4c79960908a8dfa0d52" + }, + { /* i=3406 cDividendBits=1346 cDivisorBits=544 */ + "0191c939976834647a4c2b1c2941457572cd945dc488aabfc2b944039e3620437591ef71b2cd420978e6f712ade0414a5f64ae8aef6b18d6651c3197ea19dc398d19ea68552086e4f6f1f331dee9a7a23195823853d1a1be6be6270a67bb6235805818af581d37777686f41055fae3687aa6970e00de790e4a16e279c64c0f7c96642b89477ba92077930d3c5de9e13c0f0d08550878736f5afe1389ae5ea6c242c1c9d56994eab3e6", + "41a3080b0e1d365b961ede24758237a67afdacf47a1404585cf37e15cd04ccefa2ac135a27af849752deafa00d6588cff70350fe350292c003fcf2ac60de3d367f44ac65", + "061f10bfc558625c798e42301ceac48bad67fbbc6d24340f14650fd3640605b9cfc165ede2733227434fb980a3e3be40a283084715719640a8d8199a47099b91c5b4e667adc4cdb010d607a6208e7ca5509319a320265b8da6efbd79efc0fca29bf3d98072", + "2cdb3a5adcc8270d4b51694fbfaa514f7cb8567f22567e16bba27ef8cfe8181d0986c0cea0f93f4ce4fbcd56642b1d64c365db629f1a40e6880d6bdaeb1ef78191866eec" + }, + { /* i=3407 cDividendBits=571 cDivisorBits=293 */ + "028cea78ea77115b31ee313434b32e9bfaebd9cdeb56db77e8a504af601e61a98defdc6fdb28dd4419677f95e76f7b77416ec8952405b1413cd8b19d333ab2643fc74120078347df", + "06da3d122a9964505be64a563979616ca226af5abccab494f804663aed85af4cff71d3ff5c", + "5f48100d62ee74fdac78a574810a80acf620c43a305eed9acec919350e4cd8d9070b15", + "0204347f1b232321ffee6e5b19615248f37f000e9ed1d2ce032af651551fe760669da26153" + }, + { /* i=3408 cDividendBits=1437 cDivisorBits=1031 */ + "10f2e10320bcfa7f9d0168ea40f32b96f5ec92795392b74cd5383a0f9543570c4f0d7c97e63e61ac3d2c2b10ee30202f7b3b671b236995a51ca534044ec0046370ac90b647e8132c282aa6b625c8ac85e0b53620228f4965514c47bbd7ee36c06c178d43695fee7f878f3689d44397a3dec45965bb5b4b64930231e713d0320b74c379c31b918bcadeb085e809fc24a4c280724528554afcc8b1fe38d4f2f4004f72af16e089532269c99d11861b4e7f7094f81d", + "1819b8c3fc3211326bed5d9539c280f24a9e36070cf53fb32548471c533a0ba7c7c71a921c3ad587deef4d1b9e1b711cb2ee4fc6944acb9ad6e7e4df5a9f5b0b2efde6ef2d20074613d0cbb05cc2dc1426f8ad2ac3c0b48a2a1100b84593f3814c1fe06876e67a6cb84acfd3641033298814eedae93c6aa549a4454a85525e9a97", + "b4086d5b5a07b604710fc9a6e51cd00d174e085fcf7329f4513f3c7134eb57be6db7a21be4851c33fb6c94e2defb92cdb1cea7", + "142d01a1bab643943ec10b50e284cbea14cfe51c9025d8a44fbc29be0197e07e84e3feabcfb745576d05bc377f29657a71aa578da0cae1218c474009bc5628f24703961b4de6e8771342fb580263313bd0454af7720ebe2f97590cb238af04ddc1546580a00433d69ff15ef42a53a54338ee644770cde039a739547cecc7119d9c" + }, + { /* i=3409 cDividendBits=3626 cDivisorBits=3193 */ + "03397b63965232311779820282a136cf6b963c2feabd41e6dbde157cd54d6a954abadfb09a62a458f57b286041dd05baeca0e7af53c83f6afc444239f5d14c6968389e8c2aa1b4a457c0b92f0290b80e5d4d52e0470957da3593cdbda1c2c84fe81ea5153dc2a2e806148c46b63e45f55a006afab917ff7a0c43be23da26185b5515a0e67326bc330ffe6cfe266e0ba84b4f9fc3913a22e77303a40c63a4f853aa4fbfc8e60758e3a2c360d6c19fa48d81584d6bd0a731ade0cd7449c6f04beb42abbbece43a64f182295345c1c892d225e915a4798ab54a64dfc40a76a1e6e514316e73871061a48063691e2b6d57ae0d610f1085d172c261d349a6b91bdfc8922ac59b3caff0dd50a0bd2fa81b48cd12b5629934b88082923ff462f1040bc318cdec3c2b2c8a1b48f03514804c203de6a47e684774bbb8aa5797d933ec3e334eee00baa38a4682634fa117b57fca4d80b749588c7e2434adf64c294590ae15647e24e8eb7f847e8dc3221eac0f2a05159f8314b78e800968e7e04d1e3b6685e5754a5af1f5fa9d0daaa4db0a64bd6da2f7b8bebed8e454557b0e15eb4aae9fbf19db23cf976e15b426e90bef3f9ca85f22213c5f27ed5803d2643a0d380c963449cc1e2300", + "01bbf357830135aab1af0e463007d37a349d226f3de4329f314e85e2a541d4a96a4af0fe3c90f3f7f6ec1e5addd08d73c13adfb9b37d8953f016c2e3d15d42b9ba2002f454f76304a446bfe1ab9d5f0830768ae657b0d8ad879aaa38ac946d8709ddfadf028c89daec0b9d97b729c45b1f02384068a598e1bf92c3d16bd84d68a03e6e5c271b46939a6939c61d73083458b9049ee00f9361015f11c580c51e14ef064d8ea61741b2c70060c51b7ee959dc0c2df56fcd2e541635fe4bdea17ad73a870b1d728d164c25b16da80578b3828db763df2f1c50c35323777d42724de740bdbd1de43d35b6087245bb84bac5e873fcfa89f509c5cd0e8e0ad830cf05f9b76fc7f881940cdee0e276eab290841c3a9e238d39a5106efa0faf3712ad6330ed9c67aa5d04e0159878f4338d3953395ea970d1503b7fb888c94f639ddeb50a8b51425841dfe7e73c25bd5828000bce734c7964587472228079ce3872ccfc17aa698256cb396a1780bc5441650623cdf9fd2b80c56b1fe07654bcf22750775e89c16322b0e366ca48f46fc644235460", + "01dc01afd43adf4ce9e0827c8aa0a1bcf2520c9b3757a56df0e3414348c129386c79497eaa4b7ab03089fc82d0337f71d8624d96032a87", + "0148d60f239d257b9b59259edac32c94f01527696ef16b3a708c11d8f1e0e3a7b657dd8784122e38f52f6fb4e84ba45779a535abced889b8fa7955f6c9966563f2ac26b3b9a92c1bd0aa5f558be1ae43a93f9e186d5a47c2e79a6e150392c1210703b99b56ebba4e65c7fb8e946971540de231d529ed181b2d303afccfd18daf4b73ee5dcec4ca1fbd7889f64d4432ad8e0195190db12ed209e3849cafb5d6fc0e1528e583257cb2001081b0d15b5ff529843fd6fa2f4f96f9d27f97195b56ffffa051cf9a8b7ceac48a2b97f913eb07b90e08b922d7d29d241a7f5b936fe40b7aeef5d48ff9e4419f3de3bd3df60dcc8250543989b160be8581160714c162baba8e11b99cf522a75f55097864be2f30192ae47025212e5c973ea04d37b03b1a90293edb69267547af2fe80dd5c6466d046699f70a8b40b42853387a10a18b72986eafd58c909298850fc3d6107be15f4f83560263c4a93bc11cbf00c0661538eb3467e99d561feca14c49df6d5acad1e176d4d7ebcc3fc60618d2eeb07908b09a433d469550fdd2682c1ad3d484e460" + }, + { /* i=3410 cDividendBits=3821 cDivisorBits=2083 */ + "53d5b45876dc8d46cf2fc6e63eaef3eabd5527f814a196b497cf1e2796289d1baf459102f3bed30df42acec0250e56e9c2aebd487121e3508c871b49fb3223a2c0f126312712199869086de93afd14048db19e2fd6821bf244b95e5656ba62a5634248badf00fd258c5c4aa20a43f2558405d9c85fcab204f6dbd110b856b011dd37fd4f52184556b0ca350b0056931bc60f47e37c60236c9f60e542ea0685a4e0967a734d1b349aa38caf0a4ccbcb11dfccdc18913c35e67e08619e8e1208490e5814407f6afcc6f31aa66eac143b1c4f02fb62eca192ca04cd4d0af9846d5e452af4daaff255c44a0ba5c93b951966ee34d0415a44ef1d914c25667aa50a3403f8a65dae45127b9ca6afbe85a80aeb84bf17ca1c51fd7377e2211063d48c5673b6d2a6b4c19a88f8fc290e5ebf32249040efc53a0278eca42c27a38b766f46e3983500415eae055cbdee573def260b418d1d25c49f75da4f648f0554601e9fc67a9172027aa00d5b6c90da4657f0ab9f0c0130c0826e6ce6b44f23b0a66bce3b8507a50112b25d9f04b5a2660a712f5aaccf0ff49dd0e2721af0be24cf01dd22dc3479bb80526a0f89195a4cf1d3dd91ed711a34620982af852555dda008e620dd60af39705e8fd6401457cb37fe4950bac804e0c6f686c9507fe168", + "07fc9c2e2843401557473dc25f7aa24ed9048f285b595edf426a6914cab43805039a8607759c8d9633d4961524c79471b11d5a9e3c0dd589ce2595b388ae871d734fd27b558889cb2e5637bd5d0170eed0b7a62e98ff622b9c78a5f2664a1e5fb962bbe930e4a21b5fb884100b87f2aeda51f57f189f044a4478725b078ae237d6b321de191fadc4f4e65a7c15ab7d3066d4ec87ff3d3b1cac41451ea96ef9979c6a31b7c2354415dafef2959d1087c1943310fb62e3852483a834425da679231ffbb9571529d73f292274090265144770729d420fa40606a9cb97fd226382e91a19b50effcd2bbcf6f298d89ea09f412468881f390c6a9e0ca5e3e133bb2306c63d61194c", + "0a7f29337529c6ec562662aae782c59b9e061b8342cd497772358d547ea2c52b9e123181abba4c5191d4770b124581b980ee116db4d2ede8aa6877541de8fc69bb8e0d803359381d9d08d1048e05f33b672116b5a8e6101ee003c450712d44fe8f29c4693c165ad6cbe083aeefabf80f3db05a4dd5c5f45bb5761458f5648c0677e46b575dbf5fa5c67d9b047e208a8f8c91f1d48877970fddfffd545c7a2a8812dbbbbb7fe2277e6abef3f8c2d3aefc016f04a8acaee00c143388745d56f1aad4cc166b31d0a6b752d1edef2e0846341fee890c64879ca6b9", + "03c21908e2da98648b79eeaacc6dffdd5357846038133e2118e84fd40571889f4015944060eb30d5e2a859fe13a51f0124896104b3980bc82060bb117d3c217cbe8bb83913a284e8ddb61f65d658e14ed7c6f07340c59d2415b97089174fe7b8f586dba64cd07d664879c2f50a8416fec44db27b166a3255492ccf637709d935f440e10d11fd5221e7fd49ea07d3f95d4d93913cedc5286dda87687591170749fcd1d0dc034142d8ba802e5b2cc7339da11fdac5dfee5e047296ed4f38f865deb67852ba7eaa03490aedd049fe3dcf7b8098ba9ac9c9bb86ec409c2221f6869d48404bdb5695cec9f00fafb5f3ae54c87de80c2b4910df197d7408aa3b704d0887809d517c" + }, + { /* i=3411 cDividendBits=388 cDivisorBits=278 */ + "05d6de3400119e04bfbd82f63b314fd22330090689aa85d50865ce8b5a755fcf09932bdc7ad1cfb016ac7c20576e6f490a", + "21d22a887ff4895d3cf4b16fb1961d15b61175540063b57918cd046d557be0c018112c", + "2c330f51619770f82de6066733b4", + "019a6cf6fd1a88a607411f63106547319b3120b5439b071d376f6cf5813c6da163721a" + }, + { /* i=3412 cDividendBits=2144 cDivisorBits=1926 */ + "9dadc9937a20491f2a7dafac1b376ab3ca2c3d55ce9eb2b613234dcc5f827e2e571e728a88b45e611505b14cbd262449ae70cc7c51cc3c373d735504a251bb128bcf6f1062ad71fdbaa9e36ef05039d537068fdf07c009df644173ebe9dbcad54e406a23467396c839ae02bb1d2ecf57275385554c8807e6bd7b438da0e2b9345197c6c316c753094c27ec11ae56e6f36f6de459eb61e50696cf9461373793d8b2f7df6801968be85a385b020a3e03f27df6852b846e7ba9978ef270d8e57b93968561ea30c15a7a6c2f3781d03bf04f9a331564d38bd55244b0e909b0e2cddb0cd7ed8c44d5cb84e7b66886700e8b9ba6900cb4d6b0651fc05f74f49e4b5f6eec850b10c9db37e419f6482b", + "1076bb8e1777ac17e64b32902ec8fec74c0504550de0a78ac4ae0a818b28e08fb9d6163191b5cb80ddb6ae5c773a504190e2073ff42c308d181309c334e4ad608c2e502b48c0628499486fa25d91bb1d6a8780db2efab9098197c1e543e00c556287aecaae6f48d0676830a970da9aaaa0954658124d931e468d30dbe07c554e425d76dc96d66982a75b403a8de4e2821a7fbf1e31e1a314de361207828e9cb62831bcd34c285b55eaf3539484b0ce2c6cce5a4f167c083e81f048eb1c95df50e45d7146817d8c9c7deb0da9b2755beb5f8c991f596a5f1baccfef54478c53e702f1aeda71c189e7549ec207138ae47d07", + "0993ca60563045243cacc66adead1e143e26a9eb142a91e94626d13b", + "0b43ad483660f9f97dffd0af279cf6e07e00bcfad0bd9a15747949631f0809b6ef710083828b2582f09fa9da559f8f1c0f2b99f81de3087058eed478dd947ebfebe21d907b7eaddfbb88e603f1e76aab797d8cbe902ecfdfa8ad2bb0388df61e0ecacbaf510ff43a5e77ee8d4484fa4cc35424df493e85e3477e90a8a8e979ebe55569786deaf4ea71e501f1e57708ac0b44396a1202ee8816b54a697d711b17cda8bb6caff9a67c0e161bfab1e9126e80b29e425ee36c0dcfa34133bbc8890bc615465efd2feba7373bbfc77fda2ab0e4b64d9c1010db9f27c64de2a5ce4a8be5047819c995ec7c14828ec7851430c08e" + }, + { /* i=3413 cDividendBits=3849 cDivisorBits=537 */ + "01a3011aaaea34d6910831f83924fe8c33100599321a7ec90b81f49b249979c35b334a2f5da90439ee8ddcd31af7cf30f0ad0fe9b2fffc4b7c9bdd57853d412bf4733d62c53883744b0671fd66ceb7fc6aa8ebea010c421f1dff59acba83e985d9e6903a0258ed6ae3d40fdf95e9342f03be9651f4cc3a969143b4719b2a9490e134448c14a3b40da564a90c3e481024b1032ee361c41b337994b863f1f001e73dbb2642a056c510e0e113497b14cd151fbada3918fb17fb58ec9f4a0315502fe0500c59c3e489a7f4ec69e5f82370c209fbb0c2453660b497e2de053efaf6cf3c0a9975d80108699812ed16605ce3399a8c3c227e843046f29eadf3f539dbb38fe8df33cd567381684b6af323ab63a039b3c8e6543bcf8ad7c51561b1dbe0a1bcce85a582a633cae8e3a12caa96a261b8a01d0ae6f26de37a61bbea4d7dd76bfca5f414b9ebb5329d084cb912a41e37fced229ea46a7ba6de258cadefede76db0fe0c57b89b9df81fb6d4c8f96c013f9eb3554c167edd6dc7a2650bdb8b7c05687e2dadb9ac2e05928bd7d18f208570d27fb583615b6ef37ef89b357798bf8771dfadd6105a2d7bd83a68e0bce6a4bdfae66a57dc873f6fab0f149e804486cd6a80d64e505951be8335fe5595778d9077926a32fa4262b47e34ffb5b18d9e109f94", + "a838cd7177685d689a67fc9be2fd998d614c42e675178288bb63483adc6955b0c83fc24107cb209555e6e1aab32e1cf7340177bb84bdfd11ad95fc71e26ab521b15f55", + "027da3fe98cddcc517e4e5f4afc9454b4692115cdb5a98f30c83cb2d3ffe1eddd842e970751ada83a0211b64842ba29c77d542ed7068824357fd3ecb6b9291f722f0dc7291edf5a9d4e4b84bdd149fed6dbb50612dd65dc7a6901aa062c8b3f3dba0714054285193c192feb7a5e7dea869676d4caaa36c8baa499eb6b1e3ca77ff321c03412a00761964b69ddff8465bb594b5a384391fb6c68e1aef135e5522b618cdf08e525cc0ed3637c491b1ef8ff8d156c550303b019519545419a306626d55959d89df148440d9e2962ec2cffbad876876a4f5bda89e6a618d0222dfc88748107ee830b697fb0b564bb7bf3bb80bddbeb5fea492bc56722206107be70998c2b78d0627812fa9a08a25e8e1cd2f83c51b68b9c5fd44075949b64f58564f10de99a3f5a6cd18570c9c05737b8d8012ee8c4ce0fd7e84f3c16b8874d9365b4de1863f76045226a37c7f81bab316eb820ac209c4263dd9bc56d8440553a0dfb915b312edecfc1f20d3ec71f8f2f9364d22f822abe2a178b031567bc152824a82b270a2eaa2cd146eed3889d52137edf67de7f87f7eb8e86241ac071148f3", + "5898b1b06b7bca13d95041cff3577bd3267ae1b9a3116b98f427188d773379c4208ba7a27a86aa34b21183b951e3af9375b03963e1f7b7c334aff4fae9bda6183e39e5" + }, + { /* i=3414 cDividendBits=2910 cDivisorBits=1459 */ + "0211cc4af7ff6a2401219d55cadc3e79b9bd49f0a68f608c94e02500bf4aada164fac5a3069c9f6ac157ac26335d70b442dcbb2a73eb9ca58f3d6df410e3ecfe2931f52d79a2e0e46ae8459ebb52658429e3adcd9ff6a27806f8d41982b31d76c62ff88b795e51c712fbf68710d116f02d1c3a76f1f60db67b189dc0b10881ac4d9fc728a7606b76d51f2815f4de891fef9e26a386850fce2cc1777c437908754954a9d45d85390ba686e35d9c2506f6256a49643ba8828deec9764d6e6671b9782f9c89c22986b27516c530280121baf5f20d2dc9ab17b3abfcf189457596dcde2433e4db9c55c739553c8a2b5916c686ced0b6d252e1e2abc97e333212d2d8edb2a7aedfa02075462f3d5d124191938abfccd9455d2a4b6e787585693f6395af9c8c9420e22ee786cfa0d4e52248b16ae68d691aa95244d5ec5d436e33285f1b3667511820647e450c8de4551ec08cd33013dd5ee9f914c4a8a70544088c535ec845b4f742142562c70507", + "01862dd8b91b9232fdd96066f4979f71353312532a48c28858fc6b0b95165d769cb7d1169bfa70b670169afd185306916536b121a6b77ba78a8bda42bb4ea6d772527f98e87d346f2d47f7d147b265fc5498eec4f83aec71edae0884e85eb2f9a8f173203ca3eb919e5643d8e1c27b121fb4104db49efd5789613a1671e71114eb2ee9b55a59737cc927584bdf9152c9c2b20b62541486263d75fc20fbc3c172e7293a6626b5287c585791c1c2848122e776606894e505", + "015b9af08c3bfe69e966ec8d5761a4fd63a87c5ba8a5611411703eef8ff6d458ce7b566350bccdc59a194e1f6d8d5aab49b2feb11142a9e9c092b449170669c5f8da622e6f8ac4d124ef5f857785a35589dbe5e83f47e309f24cb09045b7b1b6ec11fc958e63c0718569dfde894aee823b83f4ee8f62ad8c025b3e12a1c4c5089bde81e1d475cf33348510e3780578b8c3fd86cd90912bf04e43be93434e7a5c1fdb8d09331a9521b3b41a4390c47feca27f424dd3ad", + "9d674f1c3d9bb563c4ba2fa810b4b2692cc1216c39e535ad675afcbf80fe3049d48efa979ae75078bfe95ad10dcfa103c1e491f82cef9c744306127b6d86330df23353dadaf5b87dd8620b16d68714d9e76a628085e07dd0750f8b304bc85088b18c80bc7d08ffcfa6163adeb343fc5b6c4b0865baac854405da3ff9e71dee6a163297c711f0b1aa8e5aa1750a2fd1fc6b2b1c0d4aa59ee7fe098a05454444e0b53fdfad1c084d8677d0f1a6f3d16de8ff7cd0e421a6" + }, + { /* i=3415 cDividendBits=331 cDivisorBits=317 */ + "32bffb7a6b43d8330ae35cdde9ff80f49374d3eedbc75fb5ff27b0fcf3dbd6b4ccc4da1e45756e776b", + "1ab8dc3a41d169644c67fed782a1dc804481548378e3dd802706957f1097a53cefe529698fdcc4e6", + "01e6", + "050963d2504a1ea1d5ef10c800385911674d7d4446c934b511312dba5bf3031d57cd7fde5850aac7" + }, + { /* i=3416 cDividendBits=1322 cDivisorBits=341 */ + "0319f1ff67f620aac1883a68e4b1d9b5c755cf8d21a7c492ab12743ba90995ba98e449ad2c85270aea6d32a4205ea019ec9e26d6a807fc2abfb92c54167519b68625e739ec5ea177bb6e4126d1333235583b9d77ebff297f9054ce509ec6474a280436440ac6e6c1becd8522bc1589b752ab88b4ff90f333fc38696f88e589c1084da1cd94d80c34fa8ef6adc934f59695b0f7443907ab0ab36908fce7e2a2f0d256c7ec721c", + "18f58706a4bb86b8f05cf0a5d750b93f83bd84d1438346c6012ab3f97cbd7b8a72b00a57e9fe6e5c9c5d8a", + "1fcf533ba6f37283c3d2edccb9f4cf1308d96ed7da59d01de07eb27f56d4e80552343c0f8be4af707bbd3c039e71223645a7b880426b0faad3adc8545fde6277e275777e8513de087ce51ddcb30741266557b36a9d4541670d50e4c1cf433b47880958150160e28b59126be79c9a1b1771dab948c4abc14ec154c8", + "01d64bca210e8a899cbeb53bec9a84a4cae9d44d9e140677caaca549be68892f91e0360934ac4e8e08164c" + }, + { /* i=3417 cDividendBits=1432 cDivisorBits=1310 */ + "2ad918bf18b02c0a550a5d88aa7f4b0248283b0d02b9e281ec82de8d94b786157702a62a31e36c15572c403c3b252c18d498c7200d2a9184de6a9fe0913ade621d6d8f59f87c45495205f78aaa9ab4edc60fd63d21ca07178204430181047d51187f9026b88beff7e62fa6c428c2ccb82b21f846e21719cdeef77839731200a4913d1e934babfb919af1645f0d1e4d08e127d0963c2c927283ae218d9ec69a8a9209b128dfac46fa79aab8e165053610b22493", + "288b1ecb91747788af490f14a2d966b8c9655a8173e2be63536f275c1beee0ce481b9032d2e08da75c027dad169987f87459c938614bf5a03a75176ea05cda22a7088a1b84b2c71c1a64279b7e241601b85f1d7a4ede324a7ef2c2f3877e660c1854d72930e5633786ec2c2908557eac92c38161803c888aea18eebc7f307b864ce2a7a52f304dda9092651a52449bd664160f5d0bd69acca855beaa5cf39858c03c7ac7", + "010e8d3ce23999bd85c9fb6fb07ebe5c", + "0d6b0081b169e918b7da2beba06fd93bf70ab88d9ac002a3b70d9474dc58502092189b89f5a97698be7c1afc07f98b6e8fd15b0b603747cde8b3d44f33056c83d4ed776337c85cd63875caa2ed92acf66a5a6fc1f147e0e8526a81fe11bfd9ae789962680ebde64f0bdba27df10a1b43aaee70f9eada0b043e0734e665e31870333dd40d667704046c6fbefca13736d33f7aedb9202f022eec8279b93f16db2dd9e4530f" + }, + { /* i=3418 cDividendBits=356 cDivisorBits=318 */ + "0f2ddd7dbb74777f871ab37d5100f7900ab3e3ee03f926a3ba473fa5af91901845c1d8285644ef6d77404f2db3", + "392a4a0551f7ca8726a2d1fffdbfeb5f7b0aac46ceb2d0d815a86a3513e8edf66753990e7158c4c3", + "43f9dfd937", + "386ca9b176de6e715af223d8667fc6cf744cf7da876e2400cdca1a250a11ca572b2cba8a96969cce" + }, + { /* i=3419 cDividendBits=939 cDivisorBits=580 */ + "04d9fc5fb328e761d5f5cc4f76c2c5872e6e3f3f0b463260fd8d97ddbe8e82d723d7ab047aa1dc1b2d15abb9ba5f15973862c31363f859c1b0a87ae8f0c26cb73f7d97b669600e511e28617a27c5c172e731b2ec9b4cafc2185e8ee67548d04d6ece4d2433f1b74b747f1642706c2fd07012bd5c2339", + "03e322287a6cd133979bc7e05fa1f6bb1fce002b3e915c5a569e6fa665751d3c67635371303243b6205ec657614d849353178ffbc357cb826ab4b2fff2959f8a18d42b77c9cd6c620f", + "013f80d590d1b65534748a522d139754058332f4d5ac21e798e792c1f4e1f7c9ca336deadf0730576e8878676f28", + "03487733803527451cfbfb0e1e16a698e79be4bd9182a73a5eaea44a2abc5b421cc7cd93574173e408ac680c83cd06a67ecd1e3d0df30bb03a8f17a7ef58411fcd8ec939ee29df4fe1" + }, + { /* i=3420 cDividendBits=4024 cDivisorBits=3441 */ + "e6bbb70178a190cf82b042d094c422111bf0bb2b5cf1d1f78c7f0c8184b9856b4777a7d3ada873cd33169c42daf94406cd29a4559ac29a70d13b90cec3dcf6ddd9eb062dfedde83e9c7258a448030be5eb09ebf090264c4c6c4370e95a2b3f37c0b3a4280ca694478536177bdf80af361bfe262ab81ffc147f76e45c823c325d3cafdd61f027ffcbc27f46cb29d6d27c56160283c43c561214745bfcb3d756829c9d1120af5b4fb36511b52e73857d95986de309ad2619afb51c03fef96e1552374b0a7b728dfd23c8368d49381ff577bf393da00b5e2890d121faed89b6cca37329b8c739063f2787cb1a9e040783e4d72160a2b59863637eb6651832f1d3c7e3935cbf8680d4741e02c7e7e1cefb42f3990f5c081735341fc05d7a00a65a77e02c36c51902f0de7468536e3a762944a62600cddb923aeec7da3ddb136edb9eb9270da02a287946cd83a8ad59c59e4906d4bc86f807450d7a80e383d35c0404dfb1963d191f93a57076dc591132d5107369447df206a21a633b6a40b2aefbe06cd8b683ff9fa3e06dc619132483bb53dd1c014bfad1effec43cc506a41ffd8f877612537900ec312e145996d116f6bfd77106723c3681f926ba58dd64e75fc0203baba9e7546491a84057e08da0d140b1b49338a08b4d848b0d41bc1bf72f5ad945275a46e3ad7cec29157c5937c50feffd94a60e7a34", + "01a56db775625e8407bb709215a2dcbb852a8fb9515c1b3b1ef2e0afc4d432d2a38140699a3364979514d30e1ccecbecc5350fffab92b42d4f1aed2ebdfc9c461bd6d0ca293259d1dfcb7e08865d4ab59a63c316eafd6f734e1cbae45079bfdc337e7b2b73c831c381788a83918117ff48c8154df245c918f18683352e2a7081cd471d4254ea28303ccbe3c0a86c265fb66e18e1e869bff54e3e07dab611253cd92b3fa8e48cbab55a5cdf22ec1ffaf1e8a989eefb1d5657d73fb75dd22d77dd4b40e50df6273e9133e4add36084c09f3baeea0da252ece16f31afc20031ed5d4c68c7a2d50b1e552ba5ad19b8787a34c9564b40ab54d787d7acf28df6289a812b21023c7061c64581261564a4700af245bb8e1671224b89817d455a3cc3a6d0343ff16f55fd0217cdef6d3b16bfd19b8e3a2ff864ad9de33c2a2ccde9ae085345faf4622aabe1676802a5607c47b911ca7f8eb78f8a7a193bd4952eae237e93f7b1f3d403eb2a1ba174c6997075de3518f90780e21b9da0ba9e58f4fa96849ffb8f64fa2b63c829b2e846d376a42e2dea3bc8242799c4e6d611de0117a4ce731aca114fd1fe5e52bc72f6653f7cb3", + "8c292214d987955a62a4f0eae149323c67bc282118faf9392efb8e24ff7736a7209f04d3c0c35dcd5016218f4ce81ae2977a42a5193eddc486c15f6b159361ebbf73acc0c985699ce6", + "514d25933bab24ae041f7ae3326ea21187e98a72657a585210c4dae2d5a0a70f8f98e5b025a90a6183e9dfac34b9d83f5023a6afe74a59eeeb8570596353c39aaac02acbe05a383f268b3554fd67c72dc2881e1173a4263ade1d8e19272d0df08c5601a00687fb3a43adb45226273006fcfee7cdea394df6fc44365ccb3385851af71c80035b4459f1a90bcda7da4a0eecfacaba090cd019a5b766776bed235c03b8ea71d695655e07def760293d286998ce1ba929c7e534f9a3311bb1f7766859c0f144bfdfca05d0790f82fb057b0d2a836d05bd876b97a8e70ca4304f746cbe5c9199e62422e4ba65ed2cce8bb189aff8882bd9f1afc3162e977f86d75b7af40f06fc5b4bd3dcec6a66207e0be2c913d5be54b27ab0dc9aa1addd7f97db04b2288cd9c2dadb180f8cc63635e25e15356189b2a98ce72425df739fad7ff5eb3e47b8990a56689ed7687ceb4fb7067ee109ac633a233f0bdd68d2650c70618959ca5ddfa21c7c8132ffad447f369bd600bed139065f242eac19d349e1cff5ec81940b4b00595fb12ba0354b18983c18c1daca626d303804e5cba81f2fbb9a91b41e652167f86d45e324da9c5d62" + }, + { /* i=3421 cDividendBits=2066 cDivisorBits=917 */ + "021fb42865dd9ffb02e3dc1726884a62ef09a623fe7c1beb756eac93d9c6530b8d5e856b7449fbf626c0e623a7a5183808ffc75b7e6895758cf91ad8c23ae1d21e18913aaa8e98292aa8c593bb6fa24d07b1aa0093cac420943ac5c0903c63b35bf8c2d37ffff06f9e15ed9fdaf5faae0f10b4d5b45375ff136696f1f0fbae0c82d05938f667baf742a18c11366690e97957502e30ac392f969259ff42c7de9999024ec881e5e658214c9db3a6500e442c6d415ead63f4cb2ccba7518d0170918637cdf965785ba67dc72f6c3ae4f6330494e53f8c9ff04c82f834f815a5dcb7c7d8c4a095abc24e73ef4e5310958b0fa5cdf6f0ab1e2deb4af2b4d136488b1e43beae", + "04ab6db8eb85efa6b9ddedaccaf7fd8acbc37b52d442e9ac8a57071a526850893d8bdc3f14a63686489f070085c7d44551f813b1350942798267b9b9d024b05e64fa9be851013b20c119a6631168e215128b7dce2b4d054f9c77eb066334e1780f2c409861247f3e59ca567aaa793c8370ffa2", + "746f0600b9fbf275ae5890de520226d23656ee8c631ffa9db71d8c0f4c4c36799fc9909b41b8f095be27cf4c7d927d15a0c2f096585157f0c859bfc498c9590169be9a1db97316146931f91d10cb2cf3829dd85c8c72a2e73726504131888c70f7c94d0f3c2ff9621b01c4cc1fcd98a9bd7384b8870472ecc9b24d03e12e68056b3b33b19072aa2707ff0c4b9477c3e7", + "042dc9786c6d36be32ce6059dc99c107984dac3b0ca8009e587141bb718ad2ff00096df5c7c8ea43ffa881ad84db35843a53c597f4d4631ab96dc9e40870a9a8d91a5d3600ea952e8c3b8d21bd9a7552b960769b9bccb718fb339cead285ef8de17b5b97fa6b51d76c06c91176e10af446ad80" + }, + { /* i=3422 cDividendBits=3315 cDivisorBits=2146 */ + "039b120e0b99b103b4e4e88ddb1f13a1bbd9d4dbd08e9f7821446e9c5c095df9df0ffdb87b663bde8936d0403d162fdf95da4cc1c8e3fecba02584a26c507726c796634c335a9911042370232673a719b0641b3518b60a1f42e677222c0b71b94581a438867c81fa2dce427778baf6fe82ae98330a98df4650f869a03ac104645795fcdaa50f2bc90af03b2edf5d50f0f27e58cf90e194dfa86c00f261c1fb24df9fd39ddbcc37aefabd47c444a7b296d66dd4cd2ba604b5e12b13a974a4d73ddc0fc125a7852f08750d7227c9282be953f550e7521dd6b42b894bcc2cfb74b7a7aba8b54fb0e7bb41d915250a9a1ae8951504704848f36e457f84182526d4901c35c5e65ca50ad0c0214d7c807673ea6913fd8d11144bc6ff5338e752f6b0d7e64250e437bccb267818a4e402664f28279be5e2e6c37f06b2088ba8d17accef5a30d0a52ce2b777346c156ad7cf7c790d26e47ff395e726d79e39e529384e277a19175474e9554dc70d3fa0d6c1a836aa7985a88d1c8803c32ce999baf9ebf07f673171962078cbfc376d51ae600271546b6ac7a0969698840e7975bcb696", + "0261aea1016d4517743a21febf2d9493e5262b215ae5a0d3f034934935e7ac9af0e09d9a1f6bec22a79d8f4b902051c1796f6811a9494b3510f14c45614014aa8fd525151c3251dbe845de9f89c76ad684a4e62b4a2f4f15b89461690a94f0cb0d5bbc801fea930c85a11584951ced688ad0ca765244a7677dcc90b188206b67882da62ac2aa90c65b488eb24f960d3cfe4520424b90a6452ce53bc85bd4b4bb86dc231a3406cb5f16072370c5e18a8a8701553f0574912c47870e128485d22b0ca8eaa42fb00416782d6a9c44b7d57fec3291b94feb69d7045f74585aa6f5b85e7898f50b3a6648c7624eab48bc968de69bd1a524a83616bd6e08c40aa39bac6889aafc63556023c6eadeb5b5", + "018396c4a59b4b8e9237688f9b72220458b45bb51c5b0ac32361a64c7d4a896defcc7515683d586c1a0eddcf0532fc503655792ccf5a6d71dc2ea59b7ad5e76103177cfe5154eca7f86a49f7dfcae7297242c681fc0fd9d8cbdf4f39dc171bd5e7c5508827139aafa22ddbde3169c5bd7130adff15416b2abaacfe4ef5e7e94d7ca46281d08b84838a7f4237954a27f09ce234", + "011f55fed76194794d2f2e7d53a1baa5a0d26a294c90e012632b8545c21d650d9a7badbfc4209be223a7cb88d3f67b1fd89c84da8bedc7d3392b39f966a570891951c9507c0da23874a3e34fe048f5a8969a014d9d9879c99e39fe94ebf5cf4309acba5a462195065dc97ebfc9a63c43710198b78438065be2d9386e75aa5163a02ea515dcf4e19f85cd1644fe8bba5a14033beeb4a5de53384c104b3e13132373040b359903aa981c62bd92dce010a57f4ddac884a08d6e61d3104e86d1c341669e6f2248c30f144be4bf382be8f49fb3f5dacd3ae1f9e49be01304ad1b8d9b825295e192d11cb7a87b631722a21aaebefb17666fbffbfef34b2995756c10f637fa2855644a324415b9ca03d2" + }, + { /* i=3423 cDividendBits=1158 cDivisorBits=929 */ + "0dbbac40c114134710ab44f3c63f2b2dd71f1cc46f123f5fb69e7cee0b8e038f08b8b33d5d054f26ad4f992f76560ed8ba2288e4b47cde9dea2b65430d8be1cabfc120a235667af6ce3d538ae70ed218af6c32f4d6bf50c6b46253615d9a89ffc2f6d1c0ac4ed9bbd8c0dc8b6eb9ec3e75afc70808b763dcf5296d6dfe2b46842cc86675c06264ef0bc4e54af0e000e622", + "0141bb1049884aa644c372e7d83784f96844b49e3ff2dc41f7b656fe4bca19155782d73b918b7b9017d8bf81aac276485cf0f2c424f71541654ed77f292c01eefcc945442aa6b7339156f93c3af40c193a689855abd3a63cc3e86955f144e914f68a3d3671983a511951bf4defac543d75b1154176", + "0aed689570575c261664717ad18dba363d8e09f8e8217533292986d90b", + "a383b2af72b3227ae0c3879c469af0644b39c1185e73c791f1fb2d156f7b1e01ab7c89fc22a148e3f60fe1c10f8a0dac13f3a500111f911532d9df0ad6ca215fc729920599144a233fd2862f50653e1e4455cc4d4a99acf1070173408f6753a73b72b27e2109053b0fe1218436d6cd4515d61010" + }, + { /* i=3424 cDividendBits=986 cDivisorBits=425 */ + "025fe897b9aea8106aeb007f54b1aba1220ae50f94e0fb323fe2020407b7427b31ae6afb3892ae54efa44898e9b5aacbe19bea2a1bc338805664098d978c1771b972e2ac134877c3880db80b7954d8a2ba6c2508b09f1c885baf89d4e40d7d780ffed5749442a808be5eabf35deebf7b6d818c97422bab810f3f1a21", + "017144986c12a18bee16106f1c1d853d28548636d85983bf64cbbe5ea3a2c940c78af325ec532378901145d8e79ac854781dd5be7ec2", + "01a570da69f80d578cdf6dcfd73a3ba13c37a5ac12dd083f183baa78d4fd9007d6c81207c0ce8d93c92b52ada7ad9afcd0c75f6002f56bef263ec135edf9f6e0ee089f40c03465", + "013c3b95bd2b69729aa123a522152628949c8b1862f74422d47a819ea8258959cf301ef3ffab588ea37260c9eece36ff7f4377d7af97" + }, + { /* i=3425 cDividendBits=1097 cDivisorBits=814 */ + "01efc88053bf97f0f4ec2dad3c036cb4a8bbf9a42bb28836da67c3964ede44c757464441641652d762101cedf1bb67f1a127e736cd7801d10f7545a4bef1c8673d2f4605059051429a7260f46b6def29a48fa08e5b6f94fbca5181f7ec00c222d5da554191383e1dda3e6cc4065d81880a3a5901445203f1e13fadbd8c279913ab1f1007a5985a96ad77", + "3aebe694a117cc786e2bb3ae90a737b2833e5d76cf3b2bbb99a80e77b6e8dbd4147b040d30430988a3384b071e718c1dd328a24d8805de21ee6ada03d7b3016aec894a23efb4f8658f11966e8cf19d008892221f146b774cc8b7996c1f7a725073ddc6165f80", + "086a0fb82792b9cf5ee7278dd29ffb6cae01e66a6754cdfaab8454d0598169e2e7b443e6", + "1d60c04121d10034da9d5b3a7e98902c6eaf40d400f20976bdfb75e0a93f79a36c0bae14ae0254a4142e5db9ea8c24ec80de5d3f0403ac4dd4881c98fc05da9ec2e83e656262ed89764c33a94847daf30b5227711e170581624c67c4ed910b533a98e17e6077" + }, + { /* i=3426 cDividendBits=1474 cDivisorBits=812 */ + "e7d16d0bd1a3793e99ffdacce7bcb3f5f94b5bca7b65f25ae62aac6cafcd07b833e6cebd7a2e795391143151c73169ae6524185337d4ecd2ea066f61d04edbe846385fdb749aa3106110f315154e5e9353307af8da16146430ffc3a8a107908643d455c3aa429c3b98db0cabbd6486d189f766f31db78c34b3cc623b8ab6c4be26b6109b9a36b89d34d9cbefac21fcb7e6e16c41e55f06d1055e21512b9269c95a11011fab9990401f9f81f89f015e08a5b492a2df4fa348", + "04f5125df5a7996d7fd2960468ba059f452eae59ddfb782e66170f0a850365d5fbb32c4f433fabdb4796e45c5f96804451aa5e477ab5495c0fd4edcf4f5f9a4c9b5afd9f01b89b4852cdf1126791da23b9c621ae66b2098551e698522c9010100c3b03c25d55", + "2ec34adfab4fb41ace1ed8240a9151a0603c078e33a70845500334a94f1afcd80d84beb5429bf31f16be3a2f750366150b74540c651e8fc7b64f16336509ceb050e7539c4f0d9921aeeb7b5ec5668df861ea2e", + "045311a524ffdf0c20666e877e20ffc81fce451f3a6c54fbcf1551276cbe4625e5d96566ba6cc268428679e229789016b00ebd8dd90a2f4f396072972bda6c6344a4683b243c56c348a3d020f6deeef31447ec60ba15376dbcaac004a9dabdfd71b7d3de2c02" + }, + { /* i=3427 cDividendBits=3711 cDivisorBits=312 */ + "28eb37b0558d1f1206e1bd15e7f7a3b617fb6da3ab95b331134ee5571961a01eba827b398170fe7a853592928ddbd8020030481a6d8aa0235dc0a8b7229861842c7ee21769c14949030067710d5bc4d51de225169f2f1810dcfba156750c2fd39067d1d93076423cbd942fb310114c14b4637cd1b996b815ca9e1d82f6bdd5c3ba65c822badb698758964ce0fea6d5c2412be6739da3532fb5ae05256a7b1d9d061bea0117e9125bdbd0fdb10f25fa70b067f1d8659a019298e44e453d0b5df95bcf549625535812b17976a4e126ef39c9ebb96f96c4d65696820554d04047e70b50c05ca27da1f1c9343384f902caede57d6cd015d459c9a9b67aaaff4888db6a3abdd0c2dac696bd627a3efc2e3cadc07f63ed6819020dd11794696d3c3991c5dfefc2470f965274b77142063928c8ec18fcb956a0f126baeffc99c82faf24820dc638ca3dc2b968f2b2fc236fac33f95205981b1941d49897762a558740f5df8a987cf438aabd688bbd9a336c8e55d344be926e9717a52db571ff3d6854378e02eb60e22a2f92d3f9ab718089d435b3ed4c94fc507eabaf9c05ad2aa22c60290bd7341082fd803c96017a710eed8a3196dce57de28d404859908981b4ef9e8d18e7091e513f9f11fcbcdd9b0f2028", + "12d3b59d8111b5152fe903cc708714e9771236ce316a049ca45e61d39c5f688b4bb718902debe6", + "022c64c5c3ba0bfbc56f483c4e29c4c1ac9dfbbc9588103647b2530b66c92429fd0707fd51e93aa0f7569a529d592150630f69278224616b50dd02f0b8b086fe5760e72c8071e6e8a0216c5deb733345332df500f958e6c4dc1f1de8c4399a919ab456592ac83eaefbd835e25841bbf1a066f348a21bc1fcabbfe7c75f332d4fde6d885724718cfba947faf96ece583fc35b6f079c2e1d6dfd62667f841df732d09e1e3217fe363715db4d2f1483d36e94fd036b6fb260e271dbc044fdde4d50460fff3a82ec5cea40cc2b5cf47535c6af81ca804d65f5ffa7bf3e29463c24dc0db6637df87eda887fd1d088be2b773e53b81de67b5ce06ccc694fc770832ef7c2de477f95c17d3ea3af300e53bcde56b8e41498ac04cc46c72a4608e929f97e6e05ab50dd4a921f6c1cedd962db065fbcefc4d7ca2ac3a5a4cc24902f53d750c37a7d914ea6c68ad17f7dbde533344d91bb49543d5b74f161c4f234f35a9e3e09b4a10f75ca2b91546914bcb84328628292c375fadb5ef5fe298eb0b3e6cbc99fad1e426e33eee25a28de577bd08503f74ec3c19248478cd4d907509bed4439cf2c0c98f40b55509275", + "1042bbdb223c7baa3bae1c3f708921130da16ada3fe05dd002a5ae268eca9d0b0963da6fa9240a" + }, + { /* i=3428 cDividendBits=2200 cDivisorBits=339 */ + "55492ccf83f8dfe02c7901f2f05e80da6deab099ecda98932e495d56c01b21327c6414129f6169b99faccbe177f07d0248503fc3698cb197bdd5a22f199bd26d132c747e4d6aca2cd50af75af738890a7a7db3b09bed739e05798ae36aac61ea2b85239c568a71cd9a68525c62db50c855dbe6bf730680135fd6ae415e21e0bbb1ffef6307738238a29e337be1f17118afd91e9176d98d8f26f0cb372c556b74c346f970dc6de07a2a60fffbf54293d04e1da5eb94072b4877b0fab2f782f23a5b09ce015a552519f5c08ed9d9f22cb54c9c4c13e6c9fd82cb236ca049bb5b7c4b178b82dd0ab18885837d199d97b2067e01032ee1c89a97b377d3cca06067ffb56686491a0851f99de329952a44f2e70c9292", + "0635ea238e742a107c6adac5e59cd444636314914e2a7073773f8350892702ed3e1be98a1045b91c4e8a42", + "0dbb77a14071a3ab4a3df1e47abfe120c5fcd8b55109c4473d28811e7e03c3453f170f4b80bd82f34ea9f832567716fb5949729711a6719db90f39189d7d82a518d6bdc5836c9f8571805cc0bf15e2025875019de119f5af2ff1cfc2dc825210d011ef6255d215aad5bbe682ec7edd3ce1846ab04c0981ddfe741e293b8dfbe1253efd3106352780d7c6a6f9b54215c5da027f5c14f43c361f49e14239b8a0ce4191bc27e4f391c1d81bb9236ea04c9dea21a8c6de1fb5b5e7c048db0187777c5eaa43b83fb1de2de91c7dd903af12a73212a742ab0c1e0927ab92b8a6f90645ba7d8de2b1b36294be", + "05db001df49f2d73cdc4555d95bf4f00068e6d9b46f47da11186c0d9b1fc1939fd1e564c69e4d3698fcd96" + }, + { /* i=3429 cDividendBits=3387 cDivisorBits=3372 */ + "0300b8728fdd4d387f1e1e92ea56f9b890272aabc2d89a0fb6929d01aaca205472031a56732816559c4a0668855993a471c479e9484f76fe85d51e8220c2eaf7801207cd1bd766723890775619c0080d3bc720212b026b31dbfc7ba9725f5d25466edf6e1b936817c6f93acbea0f89edf494f47cb64d1a0170d117c7ce9afebd53a9721cc1c58e6a535134002f31d9aaf3b1c7748284e2a4a6a10faf173ce504ad4c035651b4225551b25cdc79c7bd706fb186da3a1608c12f0d7ad0a20ddc28e2558c5ac950dfe7c2f07ff79711e94bcadc939c0a779f31d164d8d37c05f504b40fb08ac6e2126748b07ab8b7f77f70ae3bebfd50ee1140698fc8e0350c1409a5a89017225c40f89136f28c497f36511920316143a258d15bddca3363839181abbcb98861cd7687fb0fba10fa1f493028768e718f715392a922fc2a6785dbeb7c353fdf5e8d2df1d762382290ee41c2553fd6184935fc9bfec23fbc13d2a28f3aa034eaee6e50c0b09e321ba8e7152a290178f8dbe21b782012160c6ec9c34888d817d0be47027091e89444fa4b558dab2cecbb192623ddf4f06bf83a3029363fef93526196e075", + "096dc23158ebd53130582f92de283da52fe78a3bbd019acb9f81c69ba4634b2db31d88608a597858b178ec8595545da251caf652a45dbb11722c753a428eb55ec31187a161f1194bfe4269f5ffbe130b5a36e8a791ff3298a27f7532a5248fb8fb851b4a8abf64902ca10be6a275f8c1aa1480cb6007e4884411b51f48ee36f03be42b246160ea9d09cf23caa6b5cc4e55da3cd0bc42ddcd43fec991fed51e56f7ed24727e340789002f3d7929d01b5ec086ad57c239699661420d8386ed4bef9f981df134d71479feda5c9c8ed6f2212859bb763bd7fc3984f43d2bc8bfe580bad1ed2301fb7e6e77f36400118641ce7f4cdb407b60485a5b6c5e8510c03ff481578f0e447c567f14b8e081ba9a76797611b20bc5b5de8f6899d9701d4ba04d3291ec6d54c788850846595e95af6006ae825e694bfd4b8aba0f20e260bbcf2212cfb8275fe89f2564ee5ae7384a633051780855dc471e1d9e5986a7e59222baad2fa289a99f363ff2ba26f9a9060b2a2d241422a23674fbec2ad73c30da11c80648450b39b9643f24a4ceaa2fc85d9aaa9adfe4b7194c36697082421cdc69191efddbbb5e89", + "5187", + "051f8ab4ca6681e1b9045b9916fec9e2a4d4f68a6c3ca7b96fbaafb3052e573d4d9cfc78d213155d2ccd86a82286b54a1ff13cb921605a81d7f8dffaaa52df609da485bf774cd60a5ec9631b06ca993f2d8f7572ae9be214765d9e69b563f44d1e9a215dae5820d2bd1aaa088a027fa3c6ec71aaf688cf6b9822650829bc5806ab237ec68a12ea667d7130946a276d38742064e07333bcde968b999e140828fd3cbfdf651e82ff64517fb8a7d80905cf62fc0c5a7211ebfa4ab4e4009fff057941a9ad65f5015cf80383375093559d9be7f9c62eb97d9bfe74ac5f6a6034f210bfcea5cb73c6a87b36baf662c6d1a40f79164ae38a95aafc48d242936a6b8ecba6a72e2acc08bea48604d90aef6030b754b6a5de8a7d9e24f345401f30e7b606e2c61c529f1ce54a1ab0ebe1dc5267b947d274df1c18ee1c14c86f896c5779499b10cc70ffeb15ba93ad78300925bcfde528b93c5293be096aeaf1a55581d962ce5ea92a7da0d9184b9c1cc40971ed7b4093484b55bcb97efd5ae29700a8de5fe9dbc817e8f4ba041bf8256dbd465ea1f437a99a94698ce2386c9e3133b9e0e1e8ed38dead36" + }, + { /* i=3430 cDividendBits=2646 cDivisorBits=2326 */ + "187ddeebcf5a122e7b79e692ac04c807bb4e627ce8a44c8cbd5d80ad4862fef40390235b0d88a76da739f5cab3342f24eba772a2d0a8a1563519744a29dc43fcd520035db8bad5d359d3de6a9c121dd894dc3fd5b19b1f8633e2c4866716f31e8dfac399171b6324d542ff6e135f26dfaa3b6946b0e678a3cbe2144c1ad228b2cf9d4d2e1c2e961c81cab6e93b838501c5e0b25518df6476e457c0ba0180610df43b55665bb927b7527542dbc19c68044d92b1ab33ec5e535df9283fe65f8b30470f9e89bed6d9b32dee073824a2bfa384483b46d289221b324275021f2eccbf087a896ca7d256776eea409d881c89f24e640a8a761fad04e47102a2a423d829785e2b9b412d55fd8c4634b4e018cdaae218788615ff2071cac2b24640e17627b16572ae9482d4477f9d9bdafa23a60df1d4d22cbeb7e41e9334ddf40255ace7863b3e40ee519e6516b7cb", + "2d8c3a40446268cfe25e92b8f2e96df3e5c155a1720103a4e6565a95be1d5aa7d3a11776d3b85522eba38aa187e34f34e6ad617163fb84dae80956bab7c9415faebf66fcf367793689adf48f67aef685916f71e637f3aeb99f90f0bcbe5c5fae9b8f25b830b7249384eed199c3283f3305ab9b14882baf2681094e23d050d90616cf23586f60fa094433543b188dc5d516c2703452c0fb0c958a3a19b32e4b4ca6ca4d4392ac54ed8fd5e77d58e5462a3a93d2429390dbe22ce3569261accb462efafb7a9108fb60afe5b9c1fae836acaaf23662fceb15c302ab6b7a5653788a8426cd48c087fb2bbc263ec3f70f45cab8c1caaa0f128dc4575e735dd3e83659fc097b9b73fe2287cabaef0897629d1d95c80192241e9168e257aa728245e0bd8ca49a", + "89a7a4848db03ac69f3adea9d025560d3852008b36ff7158d82a2b842aad91fe9bf9b71d3df2ac21", + "14359879a28b41582f756e8b4e528fd1f845cfc2ee57049d57bc39cc9968940ca7b2f10db3aa00c67c078dafaa8268795d3d574ee3e1d37e2f43ca2924ae88a8528f4ba67fe11646b436094c599855f94ac73c2543ad2109f32de80e7c83d3ecbd06749463ee8e807114549dbcb04487f75d93e7844af137aa48a8e45a3a09153232f8d0a9d7ea5a4d3e63f65e596b3ba64f1cb54f3674c7d090628f241194e02e0c93915ae66a272ed999934b1a20815d1177a726eda8e09471b95501c6390bfb941ce8e29f87a234c6bb1e76ddd095d766abe27b06631fbdaf8c1aeebd156184617f4445ef01cbfec237f2662df42ed27a8a45cad976f086ecad0b26c410dab483126508963cf4782ce74fa5ae65e962c3475ab30d9f751e7d53012fe2ad2bca07f1" + }, + { /* i=3431 cDividendBits=2316 cDivisorBits=42 */ + "081c2f76e8d45a8c11d5e2d903566576c255ba534269295f7031f9d01192570ee6eaf763cd07546176ac4f247d2b276e0648ff6542effbb58bf8e490b4c099ab6686d357a3c8899b85a653a43437679dc955a6804a640241491b68c0d8dc7cc20bbabdccb1246b8d5e251bf4649d9a847364f111c8e270e3895ff8103f16ea7384fa33b48e6f220e9b601b411ca3ebbdce23e58a6a383389e76ae6b0ae700fc75c2b280d3b02c4960cab4f11a82e8c58449c7dea2718601c498cd16d37ba2f0702fff79b57115c0d98e8abf60d197b30fd7beed540a6f3a6da4c15dca88e35a418c5fa71abbd4cf43149d1f8c31d15d25e4314adce69fc726d1339b14852dd292cf47abbba127f95458ad585f4cc1f5354fc29ae8b32f95e39111a8bba8c0564a35c", + "8fadc57985", + "0e733f6fe08b07191e7c3029f5f0ff154401232d822e746400d2064aed061e27226f433433204c4e5643d1ea76b6b0c33f2dd0e9ab79457ec5abb0299deec988631a1d1ebb92702821391d13c8e35ebb34149442ee9ad5a6da09620a1549a0f96181f99a93b6db6da2f515adefafcd803e9ad14244b0ab25a68ec9bb883b17b365ae9a98fbeec3813e62880f9720c0025aefa4401745da0ba4132dfb13d2cec5fb338b793ca7e2cdbff6beb1bdb377f1db46497bb9d048e0f0bca59ad400dfe9688e28279d556c9ae454f767fa0621f3b494d08438b865440faae4528302a5719e3076b3aba7d68ca79b3b55c6c898087e1b4d4fb981dfeaa1e8a0835975736be58ec27ee16c2cbe58249981cbd6ae2a57acb699996b84ccd87726ba69", + "57685d29cf" + }, + { /* i=3432 cDividendBits=2032 cDivisorBits=383 */ + "0c6c8c55dd01d7628d64ca0a0ef37293f85e274583fb23ba3f2ce8bc5e5d4b3d8d09e47c40b6123ff164aab12a22bcdb46d6c83c23e97edec6d0e9f4586736b86de7ab27f2109080daf569378fc5414aa93b2be9d8c29f113e7d65b6ae878ac7c87ed362398e1a908225773348a22a6cec94e4ebf84a2402d9d376f5ec7ac682678f0acfdfe2047fa24ab7eac120642ea38ba343d844c0cf78781754fdc02b377c6e374421c901c43b45452bfe09d185009b495539b33b708d25227aa7e3527864b123087acb91e9629d88a08e8e71e9703d5d9fa75a1aab3147da59298c7c309dba9f1aa5cecc8b28a5e7cddc16670d5d9aadc18f75adb51f0c8a8d66ad", + "5eecc3b6d5f1abfadeae65d55862e914e306f7fb00309ebb31e1f949ec8668d270cf9c5725d7d1774d8be39b946e8ea2", + "2181864d832b90615272e9be209c62e3474b786c6d3c7ad90e5fe1b897b71f14147c23381aa98bc7bdb9d9b0a27a768f566496b93551aca393d44240ffcefa0c2d5dfcabebd6c4cb321ef6617181e6fbad4fdfe4233dd156e63e5ae017acd8615e3e5b760ab89a83a67c57e4774db2d3a78391c1b9f13043b6a6476800c4a91ba0e4eda1e038e412740b991e517c2b6951cf317af72d8f396e4db6db33a57781b0af9216885273674bb87b2e9ba1d6ab4a46a9b712f8dfeeb1064d360dada84626713438d150fdd3efb59632b296", + "0a1bda26e7e40f9d50fa9a95fbed1eddaad443dda3bc2169727014195f1381e87b6698e4182927aa8945b8f9eaf52fc1" + }, + { /* i=3433 cDividendBits=3619 cDivisorBits=546 */ + "04d28ffa0cb2d2787e6339b88285761127c6b5a8fd01c2417eae512fd7aade1c16cce1a3f79f46f4430c54f41a02e889cff7e03c52c84b1e4f5a7ec0f0f8a580a882f44b825d7730b519885c570f9af755329f77bc5608a99fd50dc14d994b8492a7b073d3fc0ee5b049bd8d9f7906dfdc510e5354bf1271bcd43cd9f37400574718bcd7b10fc0cb9dbe7f19d2e80e61664e89abbaa1176c50fa0a415e71221570bc63f49817f72ef1e32d6b78d6a8fba0bc96ad4ac6dad165c498aaaf4b614664b1a0c9864f867a24a1bb28a1642af8a6446fe14642264b777a57e366239feafbe8ea44e3699948d693820cd4d78375385689073da0e7f712bb35cf7e1098514d7f4830c6c0408539f1dd16797f3e84cfa83cb5c9041194137e42c916f136a5ec59811e18faec3a0f14c29ceb5cfd9982fd528d1fff4319db300e98a8725af6ceac051986da19833325725b66ff6ad7da70b4fe6937753b0deb3e8d5655882921b181793da2fd44ea53d50e07d1330b8fe436ce14d659906837dbcc1e45dc888c24d443c67ebceb763f1af289f0170903bd002f3b11e54c8bed1786a3a623184721c35088e7d2a238636df2b6f27ae62df9dae46d22e0f0f9c9bf9c2d1249c8a2a3517019", + "030dd5ef828c6707cd3dc43fcfefb0b4edcb2a52a1b945193c01d3b15300d673d8e629d5d094b6571217fb7d322c2008f37f64bc812f02690a5f998a230d39d8022e9d5648", + "01943d05453a8bc391c5a4fca23a985ad186f9644b51c20213a8f4a5c9933c9d144f4def87d96f76a807daa49a2899c380ab59c80961c1acad9b075a223a643e84b503c5bb39ffa12171429bcd1311b35f456ec7832754ab1b99e8d232eac4c367ba03209caa001d4966c93199b3d167e98f6fac0e462e06c7ae9fe5cc7fcef741d55486cf59ec48041cff572592f002e3b2056876e28f3df93f264cdd2f0b2a11943e7944fcf6a73f1da26ab2345185e678a6c464580eb61a49952ec65ae8b53d5e4ea5e0215291edd97ff0e8e1b929207de1c7cc924c8fef2f10298eec5332ca9e05a84cfc07e1e9e9c051f627cb35d147dc38bdce97b7f9f9f41075f0283e42617ad24ce735a0c0854c40202a7cf54d2f2cb33a4f53b62ef6c1f0a3d92054e6310ebb8f044126d7b004441c584cbf495c6e5207b8512d6aec5235c8f7fe10c6b123d3b4ead4fa06603c703dc6a541e726890315a33edbfde25e86b666f3e38e1181778c0e6417d2d37c085a46bdeaf7f9d4664d599eb1f35933fe326e13d5c0", + "0147b31b16dbc4ed0afc51a2e87507dff39b966df91d75bb6c344c11a10f1a720247ffc08ad20456a5686fc472523f3be374c21a7e16104d40f1acfc699f4e9b666d2ed219" + }, + { /* i=3434 cDividendBits=2591 cDivisorBits=740 */ + "2c09a3895d5dee16f8c814b1cdc52f06c7185e4c5002245cfcd6af126ad94b08463072c6ee09fe9f248c92a9e2e8a7fd38a5996c88c9c9b268945fcd3f7ab953fd2a845e5d34de8d99b77edfa6922b0ab73ce0d158493fc1e8e07477785a169a17ce1342c4da15190cbd72f31d113e6362a8a275b58c09619fffcb0f507fe1a4a6f87133e02e542e34a782b6c6eda2bea965713e43afb5a922da7fb995e2893f60b79e1c9f26e1e537d6c8244ce1c7b8ba654294add022b57ce65d555c0437292435eda6c6c146f1e501a28e88f994651380c88ca2d226d9813bc600a578390dec680e5367063ee5626014d08e08d642117aec2073a3edcf0790d6c229f7524d524d1881ecd73341ff9d289bc25d4e1f2bc9466f5c8c53ee79ae63b4460ae5a20f5ce249a3e65cc906af09a92f49848c0df21e6e1c6b020f5d3f4d9ebdb6cf31feae0ecb", + "0ee664c84b8716ea0363424c92706492abfc2707857ae23b6e96d70e3f6f0e5f4ebdcb2e9521af9774de77c8690fe7fba726a4592bcd5cf010893c38e06f072d44186df54bbc7316bf5fdd7e119bb4d23da74d95542ece0f243ae1f90d", + "02f49f0e0b923a7a1431b43aa4daa32955029be8e566c410af7a8e52bf8a473759c5963aef415d0ef1955fa4aa074129a396bba288e4827567702dbeba33a5202b2091e2f39fa9e1a25cb4add4bb2d785abfe2478b855ee9032e3624ebfd68fee676ae22770425c509d92a6b1543a702fcab491c69203feb8367046444e561bc5e181fe8280fac69dede49e02ba57cc518218ec721b8f07ba0ccb402cb875db26af360afc8a0efe3725576ebba4a467f8c09656587455a055d0b8445704214c0a6746d5f3e3b1abf9ccbff2b26811719ab631a7760428c1aea19f35fd751f21fa63fe94cbc8c09f0", + "7bf7ea716dad14a989715acbff09a3fffb855bd66a85bc3ca80c4ab8ae3c8e046a46e1dbf3753089de34cc86ac93e303aa1b54013995861c3dbc13d3d467ee866ca0626a648bea7e3ffe1cf0ae33eda12de47d37dbfc6bd319f71d9b" + }, + { /* i=3435 cDividendBits=1735 cDivisorBits=384 */ + "5ced7eddca1d6be828a5d26a56d6ce7d9564cd8a51edacbca25190fee6727fd101bd708086eea49422ee863188f6379e9aed35f075939b624418a70d436f6387d9bdefefba8095530903b5ee27ca8bee0e37022cc24f8789e48a2ca7bdaba571035dc0ea9f29da84558cf62b20424a08e1102871030e65fe9b410c3e6858a75205cfb6739df762a1eee4492a5d8bc8e6dacde6393d2430277d087aefa01da37ca1e4ef76764ec95e03ebff5e8540b5185626c0b74272dfe482fdda8bc75c639878889c77f5e3384aef566646d95d00651c6bf0bd8a28addea1", + "bd27dbcc503e592748635f06b78ee9f99f5ad6b445fcc1060715295e793ff61641c69ef53394ed4c1da74f0b70e4f8e3", + "7dc4491e494c00699867f42b893f4602c6ff2e60d518537c8375dff006df850588145eedc95f08f5f34b99610dddf1563199a966812d26613df84481930a53732a2b333bc747ee7e0e4867dc6d9fb67fafa51bda8931d2804e58563cffd0d545bb0cf2f822f8f26f5e5020160af99dfa9ffbc8bce30748b9a6d93321cd73a254dbbe44c4d867f8ae677d6448350bbb2a5d13d46c375f9358f2d0c676fa0af090f9d4a4fe60b82ff42c", + "1a1e5de989676a913af30472db4dcf6db4c0b956f5f44417f2ecffcaceb696e2e8d2e4573d6ea9582d5f63ebaa6dbb9d" + }, + { /* i=3436 cDividendBits=590 cDivisorBits=70 */ + "2896baafd06b7852ef408a83ee0165ec16aee94e68a523e3c0a5631e6cf6a9b1c4098b01a85f72d9c669f7d528f1cc17370a5af56fac3b7529e43cb8a4423695e500dc7aa4c01a3a7b20", + "2f60919861de913501", + "db51b00acb3bdc1d58281f67d30ed250d9d6d7ef0d6661798ddfdf48d27069fd6cbddf12b4b0e700759f0c5ee394d35ed19d3d209aa3d6720db51d76753eadc061", + "0908133e51cdc7a5bf" + }, + { /* i=3437 cDividendBits=3504 cDivisorBits=1224 */ + "2e2632f53b0e866f612bf04c07874a5d636885b1d0aa3adca6e8545c3236269d6846c5e09e45b6a7059b39aa6014dd477348994d2bb5c65899a20c02aeb5149810b115ea2b8c0e9b8da2ed5a1162d3ecee9027755295b7b12edefa9c245838bb4d34caa0ee97538d96c08eb46cb2f9d7fbe0a62073ebd70852e97c4e66475b807e55abfa57e2fa7da14a96ebab66dead5c740896db9e05ebee12f6a57e1b16f52e0d38c0d325a3b692b7de53d784353b36b01fa962a197a5476652b111ed79eeb570751ca20ec3086982e8e8a60917ea30cae2147b55fc3688b24afed9858aba4595e29e8e47740e48d9cc5155763fe874a9874f65f4ba0b507a774a8d66f5c1af334b5ccab3df1a460baa59452c7a23d3fd6a5f2ee0824333598bb55fec75f8ba96d0d6416903eccf3283d4fe11ea3d1ef1ed8f4d011fbcff0b061027ac0084080eada0331bc97bc4ae5c84d9d86bb9956f7111574f0ca03ee40af51ab5914dc549f8e736779340568624a354e398cf164cf233706b23b2f670b8307165125fc377aebc8e0bcba3d57b5440fdc1da93c1b3be3e8ddbd6d128a05ca90d60d417162472dc612762b8274b2dbf02d9ef00e99ccd8bb6f3", + "faa9da5930d7de577eee4317af9263039f576c098b2797c9918ed60162b831a7e01d669f0e2b92abffa4bc4e6e7933c53e4ab63d0b777be98f682bdfd55feafe3856434405bb66812dadbe247a2c39a6d6941eb76e644687b331b379dbdb0d5a0c6b6fa18e3156e0bbda3d7a3048e5a607bbe69e79e17cc033b360f8c446e92c6aa7b73c9faabd513fbb87b06726ea7f4f116f4f306f4b0371", + "2f21b7ce9904b8cd8633cf88dd23d20751070d06027116cbe122154ecaee1e5304455d824d96d7acd5b87328f07efab50a8470c3b7cbd747be9d742c1816603a07ecbafb44aaf53cca5a38055a9a7c25d4ddaa4ee22defcd28daaf6f6137fda9009b1c995624672e46206c22957649d2e3356a2292e80d6d0cb59c3cd160485a09629800a00ea2b5e58051b9a03c0a4d729533198f4df433d0e6d30b2afd5f048977a0facfad126e4bb046319a5a210dcd67f81e124a25c75e73396b4ce42e06d602aefac20a6a3bcb9672e78c7f9a8ad53f0880e537c0a50d55905fb117f8e2153f5f35b70cba5e28e3d9e3d310c22b8f85b897b15a6d0b11ddd8c9fcfd68fc7297fb3955729f3cdd5062911c062ea341b85543c1a550ed24fed913bd", + "aa2d5114bf71b44e111476329983e91328f68b2b3fcd93bc7e91d78ed11b8ad4a98dcc01abec3d3c0b2b9b45e0a8c3b7e61c52c5274792ff6c3800171c567326efc5bf870a2d5404f7fb32b45a8d223da2d85d85c3cf9ad081052b00c2b412856b9754273ed8fbd895c4796fb03f3dd2fec973c306c73631bda252b155e12d422fcfeff6ccdef6ec25025c3f5d510ba9909d6bfdb4091fc986" + }, + { /* i=3438 cDividendBits=1223 cDivisorBits=1164 */ + "10e4daf1eedb6cbf722cd73681f030a2688d1b99d7b38f2faa1b0f31c737ebdee9ee9c1b58e8da979c12319ceafffd6fe37b61ffb21c58490572eff86c8ddd7e135016f9ec2082cb3d11be214904cb5c725baa45fbd7a38b10c71c71ab50e37a6675b854295d349239c607a88f51225768264cbc1827374e0a94237a8c3a28e17129f53fc35521a32db03990697a8a23224e8a689b700ec6bb", + "0bba7de2bb33a4f06f1a7c3532c76f208dcb6fdc07da460a1317c235c9d0ffa8a669ad66c10cbfbd89c9fdae3047f5901fa606c9530d866348b09001a2b63b32ab3341e0849b0869a85b3def557a39171355342deadc46cbe1060a03dbd3f7872c4a535976e23ecbf4871aa744e21cb48b47f24e34cb3c96109a1a967bb699e2116f9781038be3ced1cee53af5fe0a0a0dca", + "0170bf7f8f569a44", + "0123af464774113f03c5d8f9b33362013a02c20b459c4799a81b912903ea6a4042079e2fa6acb7512b0e0cf38eeed92cca1dd8975da586d7e6b359f011edf6de646d585e2bfd890098679d5ece6af3745840a55f585e0c1d8788e9088623e8d2129aaad588384a2c96b1d787d56a7e9d06a9062195d2e63ef57bf1b0df26c1bc4f689506721d2ce000181a4cb4cc413b9913" + }, + { /* i=3439 cDividendBits=3904 cDivisorBits=707 */ + "2d08c70ffb0b55d318a92358ce06a80474b7e39b3cf81c3f207630878cb92226f61c34f791dc47c13fe997391fa2a4aa3d0be0be167fe7b42e4b9641014831002ad96177d7f92a16a67801e9300b581d3b2c19a6f145b376e83ed4abd0674d14705c98e1e423816a0eebd7c800ea8cfaf139d11d7e9a6d12ed0d0ac94199050720507fb5c7f35b1c3f3a9fafc05ce205ee0aec5c91f47d5d8d5a0f43c09add867cf8ff5ae79c2fe15277335bd805328565220e0d38cea14a8672f9c53dce6976c8ab0d4491de877f3741a3a814b61ee3ee6cec46b14bfdc77c62948a9008ece86129397c625629f30daacebaee2df10ac46806fa3bfe5a5ee1cf5fa56e95797983444a643afde7a4a70bfb5e378a58553ecae38d6aee0dc243cd31b8e3cefbab47230e17345f146d0dac0153856f45c4b128fa06ec73d1d4994a6ac80af36aa1bc38d2e1791b104555467ed3e73cf4c3c3561c5032bf32a48016ffffe5dccd9bba1f394a66aaca2ad8372034e25eec8b677389bd4b9ed1fa4750706593db3580c9ac4f28b75b32acda8bdf064532c72d5f7b086a50e7c4b39a669e9a635452f25d9667b686c265b4ca2e6a57c69b27d4c1a3d147f306199f05e693d29a2168fcfb65587f5e3b727ef844aa5eb83c4a2fa249d40895bb1238c8e3770afa2e377c373e11ad5d9f3f6f", + "84eefaccde621a5c26562ede63636eb7cc3ac1a55922e08d19459e16bf15c0032bd0d59456ea9f258b52db40429a292cc437ade34bbf12da1c1ecbc2357848290ff0cb7245c9f5d93c8a7cdc30496e553531d27352f497d0", + "56b9d40b92fc2bf754a08d39e5ee70da690b5908b7b450479b31b799f3c487d279964f6811942a9aff6efc693c9e9a9f8fd0e0103c4714d92b37306d15c5350dbf68ed18653b30a07ce9120e8c0305dbe36407f87754c4202cde8c484c43c316996640a8b4b303e10f03ae2af1eefaed7dcbb1339a40c3c7e3663a98bc7e37ac9137aac90dd7d73706ae11cad0cdfb2fe96ddc4cda69edfc1a39656b89d81ce739b76abdcd3115022afdea5ec46d31f041b481d8d7972b722ac2510a5683abd4864b837b12031c624b5248df761e13d8fd0aa6f0d45298d46607a01ece35106aa8f5bd31f0162868cdc4146f380dfc4d5a9347a24fc5f68cd4043a40b0941b2d714050ac445601bbfcee64911b0f8115e998a39806c9a3c95cffe7ca038183872edd189c90d0c0c1224b15e08ab7e927c7265f4152be7fd3ca4204cc45e8a802143f290f1dbf531c4b2bd3ed28631dca36db0cde708c29fe83633c0693359f9513d5aad4aace507b33efa8411e5e0a4e63e1a820f99287c71e64fd972fbfe591192812b92d6219c5ef59544e9f16fab9", + "7390d402d2e005e6e36730421df0fb1fea88149e4a7f4c6b9266d60236f1916813cef2afca009fc6fc907022ab114477d1026ed26c46ae31ca0c9872b49f0cf23d021a9723edf955c68c923d2e8f77c8e8a2d0a452bc6a1f" + }, + { /* i=3440 cDividendBits=1706 cDivisorBits=1641 */ + "23bdc05cf15d65f7c1d0dfc650eb4f4ae09b1bac22ae93c61441a1a68793ad619a76bd5fcccf26b9aa95446454472dc6361290bb5b92f460e144d48e4488e7aa13fa8da94b1f2bb0196f92d37067191fa0c82b35cbe0a967c304adce4bc0bcae18443c98aa4013b2d59e479aafe6ee195df903dd8cb38363738e01614ed3598c464a8f7da21e3854e1d18dc50616fdc2d63381e587736542e481b05e18a13c239f66830d2222d8a6c6bb402fa43bb04e0244cd85f5f9d8843b4f6ea2dffdcc212c57b00a71c5a57e6c141359183119e2dfce849a5c", + "e0957a01f7214299bfcf4116a7c1d6559357d694356f8bb21b518240e451b4da4bd1b60632b5e565eea5759db3ee2672551942ace17933a7c36b2075d6d8d589669b44f1762119e11861071063198a9960f60651b2571810abe5b000f9c5bdd21755fbf53e2f259dedb7c392a4f650de0f5e9b062ce38167d2f1a1c99c901d1419d8444f29c72990cd09ce1372e10f355e97478a0dff78aea74b28523f7a22108a26f2bcc70b45d08b7d6c2bbce6ae8800939ef4f2b753d36351736b1f3932069712e325ab9d06b7d27dfbfda2", + "28bdac0ef7871dfe", + "b4293f918d39c65fe2fbc01e7c0b94a1f35ced50cd3dcb61f4559d659db7aec97113a5cb653118866840a5b3677c68268236b218ae2cca04aec67b2bd2cc6e486611c6045ac4e60d0a8cbe5f7884c10de3f2c2eae468213547d3cae4417bd848ecd8d87eaaba8e8826d8f63941506c2db48ffd42c0ef67f5c48b9edcb89ae992edb0263e66487214ca52f2e456917f5f2ddbffe7d9208fb93d47d192f763eb8f8eb5ab68413c6a30bbdeec094d696e61698d6e18055571f315a0bc7db5d86860b07578614dd7435f4b345599a0" + }, + { /* i=3441 cDividendBits=808 cDivisorBits=431 */ + "9b4a488023a0627406baf09d48b7dbe42af5c3155918c9b6d52c9562e04569f5e0f984dc77bf37e7f74dc91785d6214ec28dfba31291279e2d5f9326e5e4943319caecff3bb120d7e1e2cbf07d8c387a00efd82cf0c4f0b69bd4db3d3948037aaad649b705", + "7dab2d59b89168c408862fee6e3fbe88a5661eb0f3f51bc7e8e56a5e997799a46127732146e02a937804f2526d12e2e15c1a614f6a23", + "013c579157a3e2037276dc3353d32f294aee61415c4320f137b0fe8948d7df14c482c9a5e512d105811b1ba040473370", + "59343d6d755d195ca13ccd10bc9b191278ab9cb5f75f2afd3d281f1225acde9652916e700a9dd16ea615571037f0f5e80f4e41b14eb5" + }, + { /* i=3442 cDividendBits=2366 cDivisorBits=15 */ + "1b203658bad1aae553245468a0ee0861a438c67c7d2e171f9fc823f55a69f958f11ad579970f3f7610b57df33f6d95d86a7b2f20e9816bb646fdd04020b5cfe38950be6e4feb68635f252a24bd2b15f5ef5eb515e9e199ed6bafe936aaed9bb58e927cc5c5364cf8d889e9b14bcfc01d740b8037ad5c8d0cede9e95fb6ae52860ea1dcb780c6559bd6c4adcf1b5e21661ddbc53c60a41d2068f25c20e138e31e49dfc5b11ce97a57b0f86e69d0c14cbb57e1ea710c3fb114ccd2705e47a795100c84ae189f15e83ddfe35d7087c7347b4f2f057e8a8073ba8eb8f31fa248f66de4d58299ca492d2a0fc50bcca208b76fa8ce8a6f84176ff0b9b961da6ae340e0739af5189b05241d5066fce5e2b936c5b88ea4ccfc935425dcf47907352273a31e950d68c61dc929", + "497a", + "5e825bf52689d3290219b369a6db3b478241941bb9bf5e6b67ca449c998b92b2f4d9f09d88b6b0bccdf6a9bb2070a8e036cf21079d6029ad4b11ab3d71b88518ec7e62e496bbdfed42e4f219d1ee9b2d879e142b243253f6e787454172ce89c08f1991d6dc4ac21645df165d6a3c0c44c1d9d7545f38b6702bafaaa2b35aa5f55da2281d685d46afe0456f3bf4c295a0a5df76541dff5cb02d8b1106320aa8773f484a7ce55156333d8c9f34686e93698755a385adbd0009c17b8dfb26749f81df20c60ed974b18d2fb50e91d6e33c482cd832b7a8401237ac80d871eaf1f5e66cca38e9caf017a79674eeb9649606ccdd8c21dac3cf54a2b005405a4ca3dfab577f285206c4175f4d19687795dc377f3461136bc52465028b5edfc9d937e077bf2d64e9d848", + "2ed9" + }, + { /* i=3443 cDividendBits=845 cDivisorBits=205 */ + "0ff36ea84a22495b9cf6711742a690c35dc8f3101778e355b79473b53bfcd84d6f65155c482b22884054e7b97e18aad668de5ef7da300a3c7776d5b202a162d2b1565dbe97558ed67afcf5ce48a2786e60aa7f8d22d98f020e4b71c0154b52b9780251183da5c6016f48", + "16a1d368e8701cf3b59253d553dd11a7ddc9ca5dbc0e4924f8b2", + "b46d232650680136409b044922e322fad3719c4d8c5a73eca05ba5c81ccfc952f9457188bcf0aa5e0f907e1fd2a8c74207d2887f166f6edb1769604fc260c5e77dd82b28158e6a6e64ed5ea93aa0fe03", + "0c434385803dd361d4ec36f3231e3f68d3858a653bf27891e932" + }, + { /* i=3444 cDividendBits=613 cDivisorBits=225 */ + "0ae9aaa8ebe45cd1d736ecda7d93bf88b67d72b9f7706068ee27cc20a3f6f1ce3d4382260de3026a3d3ddf54edd243822fc7b62f980bb0ffd113964b7ab1e5d242c93d0c9c2d187b3d611f091f", + "0166e0aa5705657f6314e3a259fd5ecf1a57f33a1c00d7d03d254ad407", + "07c8d21086cf658b2a18f1e61928938aa0574cca6ab91425dce4915ef07aa6f13a515bb4a4d62d4ea36d48849573d32a99", + "013fbf70cf57d981a116959d5b35fb813dce57deb742f3a094e9d82af0" + }, + { /* i=3445 cDividendBits=3618 cDivisorBits=1553 */ + "017e82f302697b153772a98a6081bda40ce24a05e9ffdd6a99cff1ccdc0caf2e59c53236201018e0332088bcef39d0d092f8e1c15fe7c50bbd38f4b93bf9f2ae1af57a9fb38145ce71789fc6cc402cdd4d6cc3fe35a38fca4b7aa00cd7603b09964ef4518c70fbd32ecf091475129e3d85e128e598052f6497142662b4ca217bfbf54cbf1d225e81827f1c6485f97e3b64b58a1f8b5d2271b67d6b19f4e0788f58ee457065b5375c19c5a9e72c63885de789369257b2327b394bd4f47249adf3336e924f9a88ddcdc23b123345390f08c72fe59882a05df9313b20e5e63f4ed8149c590ffb984ec5703b0858317a1d995de78763bcbe5efe97c37a329ff325305562eaf31de341e008fed3205c8a1b4ec99c7c05cc9267dfea30b3a039be06b9c3b1abfca40367a33a52d5ae01e5b8a44734023b5fd9df3623bbd53d0aa7388691419afbea7d31902a5dbd287d107dae843e333e6a5aeed4c6821f4f3001c72fdade1648865a5df780c8d11bf8db177bc6b5f2db152d1f6e0edc9bdb977d672ff6693e2416745d25562b7d89aba5ed903213676fe5f94265612a42f547f96d0fba269d5f92700e4b9a589cdad146c2a6c02586c9c8eedbbff5048c74cd7b1fea79bf82b271", + "01fc735482970dd3908984901be8cb21d66fdfcb384b8041c18bd5c5612d0fff2ac07fdd7d7e6aaa7487eaf30ab32bda0dcb5748d133aba96a320b15e97164f23fb2ae1040207ff022fee3d57e5d25a08ca363f301ae0e5efd509f05565a5d99ce6debf17640ed8044ae58fbc04a5ed6d0f911bcfe960554cdaba6725ab46afce603ff8d7c0eb03a1f00dd392d9f6b266d26323cbf9220776bb339bdbf7300bd7128a2269d3628c7d99b0a85572b0193bcb62215209a30c431f1ee69a6e8d8887e02e8", + "c09746498d90a55bf0583b130c6521d93bfdc341f5755fa800e001cfad3876fd687a0740ae09ba91169887702105762e76f656327a48e96d7f987fe71f7f44986a1c3530a0b7dbaa42d93dff32379543ce6d2da0d9e6527bb50d67e286df5cdc5676a38f5b50c2c19146bd415ede265230ebf19a4dc842509475cf0b9d16f911c3ea6121f920318fe396012e25cb4066131d9c3b7d771e4271a00a4709dd829191014c73098e2fbba62b078339b5b65f61d51b8e576baad05cc4fc1c42fd5e41e6929f9c467049b67d9e87212b5ee367baf399f287de11cf7fe5be4e55de08a07136e10f4fba8c1dad5de190128e027e3522feba30087605d3bf68c92806ae779554", + "2c99343deb40bd6ee3c32c0b5663332cddf20eb674edec742775324d529086792dc8e822b2b6d5041cced6b363c7997cf46527b203f3e709b79ffa5be0f26cb4d4beebb2bc78affe6b8c6e091f66482b6a02f741af70b96a79ed7d3587c427c4adff9929a16ac6b3279b8b8a8ad16879e913cd450596472f3f42462a323774200cd1b70400300e23a83d5401d26fc894a4df6389e14d90430599701e9bb614f76cd4bd57f3fd9d75af9afc5eb1814d5f24e50cad68440803b69dd5d811fe94a0b651" + }, + { /* i=3446 cDividendBits=469 cDivisorBits=311 */ + "0e951af86a5a0dfd539c4fac3118dd50fdf005f909c35877a82875faba12bc1b0923633b1af1a6adf3bd98d022a142c3910729cd5e80edcb88266f", + "1099a74b26b7cae1f4a3748bf24d42c53439519896ff7a98305b1c7267ae68f5b9aa2baa617757", + "e0e20e841b07643d3f6a04032b1cc3aee93dc5c5", + "07d178dac9086fd36a70f8c369d932f1105ecb947f0baf58c3cfda1eaad1fdd466423d0ef65d7c" + }, + { /* i=3447 cDividendBits=1422 cDivisorBits=601 */ + "3d77e8e352a10478d1b359e2b95f4d8fc4f814a9ba82ac0c5ec82f2fa9a516028d3e07b46ff6228c494bbdeac56c7f04e788bb8f5239778b410c1601f0deb9f2b07cf3a19d77eacbb70619def26dac7922bcd6f4508e49c8fa946ecdf93a8561bccb3193956ece7ddc3425528eedf316250ac1a3f3f2958389c51baecba3cfda258515f46d79f3c7da4099aa68736f6286b279250efb7c502b98b04c8a3dca2d3176c1ca1e557c9054cb68062562c43efff4", + "f3096295738f513237a29854a9d21abcf7b7575f923f6eb3d661e84cf3f796eca580403eefee0a8da3da2fb3382ebd71f1697d98680a2f976ebf0d371bf8508a4f2189d60df076883996d1", + "40bf3f73f8551fa7538ffe2cfedb52defa1b9a74248e54344e9e87cd21f4eb18aaee54653fcf6879bcb3d61851b234f9a22aa4768b14fc8aed94ed62e7b43633924320c4066276d3d14bc69d5a0ae88768da4f79995068d859e8e26f665b1a8ed8dd9b833c6ec3", + "e6ce9a896ec10ae4110d53788bbf2afa0896939fcaf48a1681b1be67503b4ea21967f503e7ce4620634135b514ba21de2f48188a3b388ad5f4526169df772671b3d7aafa2ee958f59750c1" + }, + { /* i=3448 cDividendBits=1468 cDivisorBits=1451 */ + "0caf67c4fbf6a893b194e1a588a42e6517ae585e4f2b89796c2c3996e94da4ba5590676db4f9dd1a3849fb35be8f79c2624992c49c0b1a207b3d3ea23e6e2ecd2e71112d5e053857c3c3eb227de7ffb353acddbf78c518a5c4e382bc559abd962c7df43db79ad5a81c7a2ee9033295a35583063c1e99275c0bc0137ddcd7c4a2b4231dc7e196d246da11b831c8c8e1b88a9cdbce7f12ddf11bd54b8567168e02bd3254c7bbbeb61e7ea9e83673ef050e0d9a3173a19d6f4c", + "0185a02f700d15e9e34d1cf222047f1e2af80e1c1b7d785b8b52ce09a8baf65082f3cb2dfac45d94b12d2d97adc1c6f0acbca1dd2c7bc60840598791a1edc91d2dac1f8d02fc8fe52e12c11bbb1565b1cc1c4b31f69d91a4e099d75a872ae54bb0c5a60627490225dffd5105a998851b035feccb87f76ab4a4f67af6058f7788967681e05d1526d6090f65ca581a58cc1686a01b866ec4a54d64c2fa320d068fe1860e917ecaf46961e314517d7ba478c4a69c9cfd77", + "0855ad", + "cc7b4ae8261fa4c45b8393ba34d446812c952089dc567623eb31e8d8150e0e9cc74c8146af1290d2cd244f7f3ba26526a365f0c178e77fcb9136d1846c282e10fa21d7d8b9fd018579f06149eb30de30195c3291a79515eb708534fd199078ae5b401efa6c15982ca5144b2c874f237e6d452dc915cd32ea68e841a3b9df2c078fb566ae6641f04dab0ef7d20e1101eecef56018a0ea4771df00fc33887be4f5cd9dfb008546d9b976be56071da97d15f3bfa5a2e1" + }, + { /* i=3449 cDividendBits=2942 cDivisorBits=2553 */ + "2e888fe783629eb11dc7c7fd0e3d7183772a9fd183b4585c1894d70f4976a3b6bd94f2b07ee2649fedbb2b92de8a0bb57feb0e0761dc54151150b683fa43912dc54afd14a2e38353c606796a6d1704f9258e084f3628a9b9a4b2ef40f65e4101ce6e60c0092ee1f17586e8033e0a4aacd2e8c1b50efe4017b8b49ad5e4d1e371b310eefa7b59f54c767b9abf27db559d0ee5f699ef8e9da8ea9a491f21d39cbddddf2569c7f68756b5619050d56d4a6bc3996d27042c7aa2f5c3d42501dc8e3e50195068be717760b05e0b5ea638f1b07a4ee2ba2744cc475eda4bbf4abe1a6c38e6c9663402c3396dbdfad85a7dcbd19d6d02c70774050a7b035a52b976dbd6f0d09651ba9d393d111ed71cc353a93af8e16bd0d8c03608af4a973a9bc3b5a817fa8e06808cb356c271917809ddb761878da3498b07fe59154cbd92dd929fda7d758afc3f5863467eae9fcc7a4bd4719a823f04dad9b6984b4b77d34af858160d18cdef137af4ea08e41f4421723395", + "ad212f0f880135492a69a9b674a6bcdb4162276fff0fdc1014c1d85810b7a35ae2c1cda16addc05993d938eef276b5e9c296d0243dd3f514c36db106344d40a459e5296c209cadac9db9f78e94bdb5d169d9a5fcc96fa254858e94a24483cddb59e1d68b7f861d5c400e0797c95d37d762d63127e8230687fe4d629bb96cbce9b1078e0245cc92d0d30ce603c84665b4279d5bd87073145d052143c5aeb849d108d99cc45d549938ca10e6c0cdac465c266f410a8d263c74c0ace7ccf1aaabdc7c9e4e4c704263880c0bcf5ad533dd39183198a05e7db909e475db16924121a807a638261bada7e6502b52f20e70c2a232a1e7d039551e456964c7d656a4c8ed1d8373ca7ec637776ab7913bd7916ca2b853b2f040e24bc7b196bec012bb311f90a3e7be528460a4f6f5603d1605cb927dafc638f03d2542ecd1f3a3301b78", + "44cea3b0897d791b700997ff09126dca72f88b0e9d28367172707047827b7ed1eb1390748bd29c57ac464d29bc514ee7fc", + "3bde05b49dab0105e2cb1e3d05be14465559d874198ee1602545a2a15548e34275fde6aa6b2fb5ad06a5adca652814b42ba2b7ba639d6fbd78212656cacb4b73b7f740edeb0a8d2d553a47cda9aed9822ece894ea05674fc864940b5a949142d4863ef0ab10298a077845c7ae0c1c9fb347149d6565b9c21ba9b28f0be57584ec3ef8a3adc373f1986552a223031233b38622e36bfa5c43fb87054fadcb8dfd7295fe213f39b82e1a6cde5c14f9f4a70a7a5fd875cd9a386fc1be6c2700df8dc81da75fd28fd1201ede9ccfb8b44e43a4f5cd9ca4c2c786911bd7a83dc623fe1bd9230a2f1efab9a1f452564a15753fdde3e88b97dc9bf012cdc65d191d20a402d46d6265fa4bb74c8b712ed01a64fcc6790320840e0f4b75348f7ece090f8c5de948a3b561eda5e51617886b8292048c3bd01d1112498c8a245b5bebde175" + }, + { /* i=3450 cDividendBits=2446 cDivisorBits=294 */ + "2e84c28f52441cfb20e22818a341710382796ddfbddc467e52b1b1ee37d1f544bc03cd44062022a15af61715bdcd0de863fae2a613c919f094b59547e0afbaa2040e6fa7308d31b57d70b1e5a72498a83a8fadfe1447c580b3db751fb4f796fef83073b673396eb69268030521186a52e9adf1a4ff5bf6d55a1c4cedb9b5b34deffe833dbc041bda3d401d62314e1ef620410a28af0366733aa3288a69d59b17b5137c77dc6a9a0cd5e482b70c201bae8878ede728ebd6aef65c03ff58b9b00fa9ddd62eed3f5046aef6b97f60e7dc891c8b10c6703e51357d635a3bfb1e6f265f5a1917455dade645c51ed547a575af00c8666b4bb1582fae1f1c85cb2433313708283ef6b11bb67f66fc2ea742fba9489952eda9b5d69690a342150b04152bcee0c8912851476f849d346c1c4278c2243f", + "21ed5bff6460b724a2dd545c9423a10c5f13db433d05ba41bfe73a800737e197a211eee2a2", + "015f0266610f7a3b37bbcb1bc6a4b3b1567a2f68927b028822df81fdcd720e8f91a216918c961d75dafa8850e91b781d31b4f490572de0cb217b6ef2b055d70a9ca4774deb8244adae6898c90058356b2a1a3aa78187c0ac3fa175240108770c89af8af9509eca0fd66c2bdaca5e2b4e6356bc5b2df29e0bb95c72277d30d5d47758ce4d792c24ee38addfc959fffc149eb089247b2f76fc52bdbf09ea20ce00d3deefec937853f555381e243a33af00dbab50cf24d863618d7a867f46b542c4bc19f885ae8cf7bc9421569166d183a4a6e7ea04997a3d4ceafd04068e8e57d300b0da8052bc0f8d63ce6be659ee0bb7056d2dfa9ade80da2614ba9ad35882746d0c1b1019f4037df8836432b3e0", + "1974bde99cdb70a34903adffd76872e9d710134b77c3b9b9e079dd6ceb7d7361d333a0907f" + }, + { /* i=3451 cDividendBits=2139 cDivisorBits=1717 */ + "0211543ef01c4621d69d0140e1c4c099b111d2ddc656e70727bffcaa689370de3217ad0b4ab3fc2d95d20b60ac69d758a2eddd8e2a607166cae2f71ab0f76697eb9f79d5be584a376b8df496497a46d16543532bf23b63a9348242e198f4bf81017dd22bdfa89dc642b5255570466deef66dbd1a57758c0ae874c900ea89173e4120e3ddae3aa8372b53edf417ad611d1660bc3cbf1ffe5597bb4732f3568b42eec2333c24b031e33bf130ffa65ea7d33de8dfc8edce10bc0d5a60eabec20f2c40eefd8614c14a809d4c8fe1cb1eb07f028c3c4529f1537c9ede928e9adef208b7dbaf7517ff8a6ab6f67dfe7dd6c7537352e597380e2fda924754126c698403209e740e5ac11ba4a5469fd2", + "05545870cdbc48b0173da4b1420fcaeb0cc6992f3c8217d13beec00263e6a14b45203bb3d83c4a8a5219f0573eaee3303def7619d97ef405a968582db5327ceee72c134ba9005d401b0321e1a926552d991e073d8b20895210a3bf8a1b3d5f4c51e7d7c0991d4081f0207ecd99b37ea53e9fe01b74c778f5fe774414109cc717ee86ac5f9e4d8054fd79ded6f3f17fb0cfb73ffd72511fe788677b82665a0e8e2c7d3a11ae2357bc616ade63ec1ae2620436d33b2e3a2e53315d69934aadda1fe1c2433dc2d6177cfa5dc8e6dbe8c0a52716b712dceb92", + "6352315877d17c39cb9ff276d0e795c1a074b7e15c252d166999b9aee1ae29567d90d455cb679c5c375b8b350ca4ac87df0e1a10c6", + "01270cb9607b93cf8d8d1cc0a849ae869dc00f56854a07bffa7d7445691fb37852635d72fcb313832f3adc0317bd5afad3550180362de44f6311c7f8a3b89ca521f0973feb0f960248e702b9cdcf36deb9cd70290823e68530023c45b6ecde140f5a5276618db33a2165f546d67cc8afd1f36a3cd16a749787eaff6d12bef46e67c3302438cc77651bca0849b52bd042bdbc1a1cbdf4238d4d7c50ebe1d5c44b3d8b142bfeb7b3d1cdd34e991b98928dfa62555e16b0f44035a809f4c6a0d07d73b1983bbd921fc19bc9df34dfaeea1eb6e75e56db4ce6" + }, + { /* i=3452 cDividendBits=335 cDivisorBits=238 */ + "4348468bd16a53524990f72713ee6a0bbc575d988023ff9df5f5b434bce5409f14d138ee8460d28c3767", + "0e0e9c32a26006f1418fb112e9c39facee4481a11041ed8e7d281a87c7c5", + "04c94f78517ebcc352da72edd3", + "0c12bb6b3a64bb0ffecb48dba7f17bcdb8974649051908d6bf1488f72f08" + }, + { /* i=3453 cDividendBits=3618 cDivisorBits=168 */ + "0242d2911973e7b3de8576d89552ab03d034ab50c94b955c7f6facd51c9a85c882d247b37118663c0cc1af23f9a0d72a89c7c03a9bde7adbd14cd4cd91d9538c4b456b7a300dbab5b32878e6de8ca46adf8a23fdf1fb608c786b4a778f0e6ef3c6bed12bb7895cb47dfbeeeb44c6dc02d8275c3d018f9a37ab32afc4dd5dc774661ee7bed49ffc3134b92da448514fb4e6e1a73b2502be4529821950d523b18c033d7ddf92c6e8aa936ef033e341551195f6a959924fce1d02eb79f5c520920035fe1dd5f666ff4590b8784c9a1c9d9f66f65166dee25c9b7b61b758e13cd0174be68b8ef36f5471222be62bb7f55f3dfa6fb1472f2896d7d772f1ad968d04a792e63d705104f3917e008f463cf1e61169c001549352d1853a5f836e40fd6d7071d2dcfd5325c2c619d915de74a1f34a45075b354d0d75bf56c225d3338d52f595fb8b7adaebaa18794f5238616abf59aebe2f46ba6accf0a04ccf04743fbb5205ac92ce959cfa6ac983f96a1032c4e66f8e8ecd68f8171f80e6fbf9df30ae585b52b120f282d21068b10041061f74270092c03f08895ed218f03a13985610ef6e80a09ca0e42dccadcee68312ea1fcdafc07e3e75d0c5a29a6edab109924e3e080e356b5c", + "56d9b07932660b98dc10d584f28c5f25a13f1083b2", + "06aa22fdf5475b2bf2a814abe8060386c9a1fe7102efb0a9453d6203d7d7ad3e12444528f6e7fc6d057f050a3df23ad4f108e7a96129d983ef08784c2c754a8c5b73d04b096169716be96a0c1af6b13e439151f6baabe8ea2dd32b1a7e6478ac058af8e7f534f02003af00da855c0444fd8ab5b61e0ab5de9cb18966352cdaa5902be0cb2031cf15145e4240d9220e429ed7e695af857dbc2887a473721b9822a72fba964b918174b9d3db45ea30719152ec03d3aa67173d4b1f9702179e0c2753692134ae5241b258a38cdb1302bb4299a29dbabfe0da9c0c73dc341299f8df7f548b5f8f5d4a5f2782e45c6956dd71af45316e1afbf13ab43199fc6cce3a925d04f525ea74e3e1ab35391a35a35c96039bace0d0d0f0977bec52ad054532279656dbd56fdbde9985d77dc177ae1135230ffb6fd5167d28650a018bc57f67d8417dc1849aaa6e317d038c4a73abdc97cc1e64b7ff1f2127c8b1b83564fba1b778bbf62499d7ed7b102d955db0525bf2770b9c5670142335560733036f9307abcbab48b6366cd5ddfd27696e811fc2a73516a7ffb7d5ba4df0a2a9e2324fc68b92b96f32905bd8f295171ed2c2ce2eff", + "3c96b56974263dc5967e12e6121340a1fa67dc410e" + }, + { /* i=3454 cDividendBits=3196 cDivisorBits=2380 */ + "0362a9cbdd3f725966a6ace71ac2eccd5aeaa10c8bbba80a435fb06207a89568002f83decd0d706539233cc02d79639c5630485c86b3253cb51c60f7c18ef7164096b372a81529892f0cc3b9850774cf54ab2b36345f85ce0537f15412d3f2cb3f4598fb1148f5d2bfce69c791955f587d38b999cbd932721cf9ba5a288ff94df1030f3dedca5208d0a733873eff7288776a76a0fc619defab40b45e96eff55543d07a26fdd2e1c36be5c2490705905a99dc777e8a6f1ac58fbc6e9bca1503dc1f71c0d8fa6d453267c41e069c6a3529d9400b9471be8f4a7da194c3439d79513dd0a9e22947cf19d8b526af0b997eaeb9b2deef7e0839d14893decea0365a18bbf43135c8157ef53b9fa42bafb57a1fce60692efbb7a000ed3530880fd704f51686a12fc159298237a687a9258eb92831bc95f5f0ac86d17f33cbdacc2754c9572022e0b27ccd0eea3e02c6ba6433e0237c56d2e0b6d875d35c90eb25da947b5097e66e5b1e66687cfc788f855369d9b2c81309c489b1193fa1dc676e30b9029de88a7123ed56a55f398ab98e6413e9", + "02811b20f6fd2765d07b2c60e636d2d3b110eecd1c670aee0665374950dd4505d2d03eac8c991467848c382c988e7cd65809f6f0dd6b16647458df0272db5050d3fe6752713067c9ef3cd5567089066be2e2010f192e64a5165d5bd2c7fef4157f486bc5eb6a38cbe123f42dd195588c1acddef78484ae45f714d5aa5ad4b8c109ddc18ebcb6c762d60161c45eb9cdd5124df7834d40c86a9629c3a2c849a658dabcbf3e4e2b9a2093fb6816f272bcaa7126e67cf298ed2aacaaa91820779e7ed9c5c68ccf2bec04c08d30b7d6b58ecbbc7d662f7021d374d86e2dbb1f11487f2b828e7fe0e50d9eecf565045649dc545333c63e83c395e5ea5ce3b90eea2824df6da2b94a74866fcd34f867f9aad6e929b0fd39f5c48ac918319d78122c3a4942f3824978de29534c51", + "015a1138e7b88fc218fbffd445b32323992b1e0b2fcc4f1dc5b13747e79a4c3b6e30d864a70995be431543a9102f90926590ebc21453fae39bc52367260bc6ceb1a98b79206efb928183effce5e57e3060d7b2c7746095301d1475473ff9fc3b0e0278e7051908", + "8423114f74952699b177c30401450a02de1b8623fb8b24a87d85e9992a5fed78bfb3c96c9ad6edb857d72cd13b71965a6760494fd774d4b12fd8544a3623ebe5156112b134570b6a79951ba307cf4d0e4c2924d69694ca7718df3332f4029aa4d005ff448ac85c78deec026e69a0c346dbb53f4d54d7b0ade19252df031501553182c0f62d151cc6e6c35fd11cf734827230c27024d8898c7a9eff893580d1606d13d8d8277308f94a640ae69bef7a73f51bf6618ff9c7f2c007b343947d185a6f1efc9e7c9da322fa8969d68c46986802d04a33db88c1d884fed7b42a1afc33439159fa83631fc40da0b55cf3b75ad34c19a1aff09527adcdc5a36692e97c7bac83095312ba5eb9ccab0975c7170ec483a860da3c292ae107ba7c84eab98fdd796f6cb1498cc0c861" + }, + { /* i=3455 cDividendBits=691 cDivisorBits=174 */ + "058bc7c13a0d4becee62180d0e009a58784c909a5a8806e7c969ecd7e6900b7c17e085128ada90a353ebad43b42a80677ffea2569a36ac346cabb4968806eafeae20ce66414fffc548669cc1e420398d09b4789fe752f6", + "0222a0650f2cecf1676c03d9e02aad236d080619f71e", + "0298ebe92a1eb265e0e1704be93e7378111af295cf7ec1ec1465871e527c9c4476b1e8cb9c1f8a44f217459e2b3bc9009fb88dbf01bfcc7f0e3c4cc820d2cc22b716", + "0124f7a48c7349dff6e98808a72d417fa270d009a462" + }, + { /* i=3456 cDividendBits=2640 cDivisorBits=2447 */ + "a8fccaca5ba20fbd632502dee2f904edca31a3b5d903f83b845c73b29883f4ef945f1f9930a9f5e4255ee3fc71252ea7ef76b2dffb3e766620618edb5fdeba2562579dc242b2e6f6cf328086a230decb666351ee6a18498dfec46898c8c4194fae8ca729af5d229eef5ede40891b1e1643dff61f3d80dd1200dcc583d6a492b6cdb89e0e2ebc733e492e64a82c48a61ac06c1d4480ee7e7dc464b1e306a0b305af0bf9ef33b69b900b19ae4cb61404c85a14ece26d52e87449353ce449c9587d85287603a8e6320aca35436509a743cfe2ad0e9f4a56ba726bf9a357deb2e40f6df2ba0c8d8d2bf0d46676b74862fe6a3ce04bf9cb6106a479eacfb95ee313bceb900fabf07fd98c379521c10763d4809fc4da8d2894d73d3e6e2811b26fe62ccde00c9555a3c432496a5b3809269d49912685d9d651ca4bd39ed056c9e2d4c16f07cebd597d9e40554e", + "6537fd801764754604ba03dea80af4f89d7f06bff04f07d88e6906963bf01a34fa74ad65fbe7eca352ac7bb175069375520a225f647920905aeb04b30143b9c123e5bdff62423d0fc2e08f7470d8cc38df2dc91a018e780a2f47a6d1ff0509d3814815bfd55c808398d8068e8a062f6505de68f2dd32aa985a88b9a16edaeabd4d4d71591d1d20a765a4e6248feacb9b9125ace7845892e4930041df854e4304d70043b01518fa2ec9a267b139019b9baa0a691b5d1c848962229b222221a424fb0d7a9c0dbccc6ed96de7aaca8aae0f3d9f8e1df8697ae860baf7a6ced4a1e1ab469300ec6f0270d21c32c0aa97ee64372077f1c13f206bc453a90c210df9088ad07ae76c5ef9b0de83bebc563164c4194f451497f9cfe0874f92548730d05fecba824a68a6bb0ea886d60b8800d95d587c", + "01ab662f2c103924a21581d7da4a16607dd050442a0634138c", + "61d1d52a1f2cb8a9e2ee73d261c505f347b2ff3825811af93a29721d1b1f0ef20143c3a377d01bf12dcfd58c087f4fbbd1a022d741e6e48d2bd34e87738ecb7cb8be7e458a0626177b33cd008e1f9efd4f9bc80c10e4bb38103dd1341200c6ed1f8cb311b3a999bdffff79ae54bc28445b046502c9c22925e3448a7704e6d8d7134226a78cdf1511da9764f4635797d6cc24ca5cd8107036ce928fbc832bda59917fe85fcfd7841c286cf6718b43a81ecba0a97d2afd884175481d3ad650d2571059809e9978b119f9a85c7aa1404d54d231bfd8e44ebba137f8622730432786ce0a90bc4ee48fa1ac7a2281737c544e92402678d164760c096cd03ee6b0ea36f206275007bd5922d5e3a87acd3f35d13018a521bda4d363179127a345d1f6ffc3630b963db11884806364811d83f072bd7e" + }, + { /* i=3457 cDividendBits=1762 cDivisorBits=552 */ + "02cdea5d9db5026a09a0a7d80521b38e877b66fc65588c611d7a7d769260e86b7a3cab92f1c9c4f733cb075f8b141412833beddf2e27e0ae92ff7ade04a844970fbfd7902e1b14761710a44926e73480d0604390ce0ce9232f3c83e84cb618bb443dc7c59ec0c52edcd500d33dd1de56d2462b63e61d2302436e408a0cdf4cf84e63ac47aaad630d4656f7246d9f1bce20839d4daad2be9df8c7fe94308a58dfa39129f348d3034fce276aa4c2f2083aa1df81c1bb79438dcebf4a0ea34fd45a0121f32ff70d159c5c0adb59f8720580243b7fd5e3830e5126b08af26e", + "36246a18a3b267653dcf649fd4cdf47f604d5678b662b5c5bf47ca0db084d399f13fcf70f57001ab9305746be8ade925e499be76444e1eafb6715a51591d4e72e2017975cf", + "0d428273f03acc88e6be6d8481fda89b6bcbb544405539b09d5dce79abb1d1237d2f07c816ad25d7af8432cd3a74f83b625ed49435fc81efe899609f9cc7cc518d188fbd22a61bda2eaaf01f8e1e513e4cd5e3ef362b17926fe901de1268e1e2bf0a51d11de2b32970061e21dcb8259e510b8aac71727b47abbfff424248a9e2b11df193a745a1956fc2522efabbbff906827ef8b8257b29", + "02a18c79030130c138ebdd2c3f63c001332516c6866d636e0182dbab8b94227b3c390327fb817c056303d88a8b9f6f71ffdd5b59bd23647cc2fa6b372d31cdce7c49919f47" + }, + { /* i=3458 cDividendBits=2969 cDivisorBits=765 */ + "01af6f2e1f40be2a8c5e3699e27b09de3122b9c44badf0e433dc490836d46caa72f38974300d2b0c268fddd8f8565a5ebcdc0a0edcf39d96ec22b03feca9fba2003d4d5703e7448ef2b590782049acfc5e0975af6cce83276e25124978c0d2ec1933cf6199d4aad65a8755de4a97dd87e0b07bcbadc6ead40abc85e8f421386a5ea929f1f676f1f72c44e5e6e738b335f6f2b07add35d08c06e226d9b4af4b30601fc75f8721059fce16945a988f08a5774265e27efdc83a2628c655a99959f6632033773c61b3ac128c9e81073110253d15e2ccb4f12c79f4f2145d58c375458c35460a98925ede1b6a55567aad5ceda9eca18b419fc8019ce79c397854cd2594ee95178520ef1fc2fa518ef73df4ff62ff7eb68292d3d59ae1aafec9b2d7cb615d13af125380a5abbff2f87f8911b47fb135e5232cdd9a5c6a5716b4a74a7fbe466d024011530def45635979a960a85af23e5d2441b2d1e8560ac4281449cc6c53f409a8c655dd3afc1379d68b8053ca9760ab", + "1235bdf13692f84ec62cb12d4a996a8f684a76cb9bbad3e5c9515a69c68c3feca430a81e5900e8ffa120a68346649ea74d2bfd9220288848ca52320f6083c761d8c25cbb81787d8c9b88cdcb91d679c915573919723698516bc34b7e32df55f7", + "17b137a2c1662ddcb5a7f4080a14d3079b1972e3b637660df9ee3256819303d9401fcf45cc9e9bfea699a399b083eb82201b4a2db0a4d9ecde74926a3d5a70934642bb6408eaac361bc29c94528590db4a6e6b5ee8f0a264633a17ed693c5f718dda74bda185a2e9316678ea2d2968a9a5426baa82694c9876937e6cbb8a3987e0b9e1d9b88658d64981c52f387f199f73e7f198e688df8f06fed1e92959200653b3fadb8cab0339218f29d53a193421b965537374d2cdf2b1ca6a8c7612b4848172ec58225e1ceda063c6ec562ee464944943840efb07b8a868aca95ef2b5d757cc0117ef28994af71199557278bce782f64ddcd3f90056669532d66222ae48ec17b94bf1082563129abff8d6961bee023ff4b0", + "071e1b3c613d23e2a93c926f6f41bb25493e73811b6c21a554338c3f51154cd6b493381a41f4966a5a50da637cf729d32e67d920dba141b2049365e94a95b07acf6331b0571694d3af20cae7e88b7d06cb1929290c512571597214cfdd53dadb" + }, + { /* i=3459 cDividendBits=3088 cDivisorBits=1831 */ + "9324a8a45f65cca1c9b0ab5edc822fcebeae5cf635ad7010763ede834f5c8623e87c16b78e5c5183e07966ee54f31c651b8415b6d2b3b913a0ab0b6065189d4a49e71f8ea8eed07845f99883e5b78fcf4f410b345d5903e49b96e90f1887d8cf1f5608b60d432b833dd528b8ebff43f179ea120e96036a635bed06b36d83842c3bddbc6565b3cabb52651d99dbf1e21f1c5d423dd96912b08617d0126b598cbabd5157e8cdfbe448c80dc42ae109f1764ef2e59a90543766020c6aa5380b35a98fbaf14519e595283666abc824426bd36cef0c4ad4c5777b723a39ab202b1f6f2c43e06cb8df15b1ef736f39e7e41eec5355da7e36e2a52a3813d71fb734d89220f8bcb7a89ecf5690027ec531e4512301b812334c7352c6438e8a6174cfac6906916426f6ee1d12ba05df9ad59f2d1c5606bb137b3be4098ad05fc98071c27e9b2dfc09a4076595257b297880f7970046269865d4f03da118a9239af81e4a6a0cde13ae879cf55ab9a07aa05499383480fc789e23f8099f81c484e985780a46b2ba", + "0a657a6cd4423da893a0a017bdddfe66e1b0dd2298e626f1a6f6a1278ca8cadc52931cacf18de84aef69972a68b09bf8b70a1fff16150d5512a47f2efa6eb2150b437b7838e35735924d002f3202b4cda9381fc16b0544f50fe4f7136ef273e5779497c8a48d404e3b4b926c12be871f54275cf01f20605a168a31730de129cb77b5c69f3e2bbc1ee87d932b9d7e60cdbb4d7a55c522117368a61394a5cea3222bba1d808b844dec705f7691cd1e757ca04124db9ee8f6556c5796caafdf9e7ebea73f325bde78a679ff82b6c2fcfafc98875d7b9da15db5f13542f3f149368e781d3024ea", + "0e273da8e7ec51bf57c6d0f9509efbbbf5b12246bb06fbccec2f6a55865f38ae22b157b0511e3508f566d2e1d837053f1488fa57a8d1fc8188510694343c5404fe1bb10f2f5f79648c84609dd043c10482d1f7ab0bccc74b0e8e9c546c44eefa5e566de65314b07a39b9b4a0a03f116a19dcd7fa90317d0702b2bcd8bbd969fbc73b7a37534fea23d9c8bf48323ef913e67ea36ec0cb96262bd617e53ceb", + "042aa8ae234c8cf2eeb997773b88b25d668985a38387b25f6a5d8ac7bbea599c71ffe4d1633774da5c3bfd99521f68c1a06eb6b5d4d619e4c711b9abeeada456cd110c0cf20b012daf0e775101f320787a7dfdc7ce5995df066722fd4c1cb3933c4fc0d62e46b057303f33c3723f275cd0b9573248410043f0c22d478a3c8b9c8ad00484dcad0328d43ae601aa533e015026bf5aacd521439fb3f3656fdaed26ae3aa6f89601870017a507b29feb421e33aacbc2fda5ddf9fb4a81e844e3ef8570d3621ed2ecfd128137a34d25698238958ad34cf2f733fd2e8fb20bdf3730fd5feb1bf7ec" + }, + { /* i=3460 cDividendBits=955 cDivisorBits=410 */ + "0789abb179ca02cbdcc877e580e486ba558b09b00027a0ec089dc8e191b1ac9d8f6aff170ecdd69b488b0a1681a6c33feb0696772f50921d2458ca38cd2249035f293aa1692a95677883ee31f557202619b98800d5eb38d2f6df17fe4bac09bb18543ede48feee8e67bfce5b2b56d736f702299474c2be50", + "03c83ef46a41a8e912feeffa34e2a42a5961f3e4f7035900ff873f26ecf38bd39118c32ce23253e05e9e2c437216c98ebf6d050f", + "01fe324edbc32833b91b616d69742eb7f8f7adf8bce22ac29453df6147bb83ef28bf31634e6b4ec7f36edc46b76e2f8a8da7c293ee5b9813ab9ec309e4006f9419173ff7f1", + "d63152457d5b2d1b76df98f61c23da7058aec331071e418cea3b6b21355ba2817c0d12e414f6776388bab03bae9dc0778e8231" + }, + { /* i=3461 cDividendBits=420 cDivisorBits=259 */ + "0261a1199674a57e84799b46e46193b86f9cc3939d77bc22aaabdc0ad3656fb7b6bb64ee2b0a47f817f40c07f4aac4b68a6a88f19b", + "07e0934f37050f68a2b6ca1db3bebe1c68a51581dbab90b5dcc8c697815d67e760", + "4d6422af3d1d3d3633f40fb821fd462063cd6c71", + "02b79de059796d2971b5ec5856442f9b1249679e6a7a2017f4c9591c59f22f503b" + }, + { /* i=3462 cDividendBits=1971 cDivisorBits=195 */ + "f5959c9a009a3813994335105595a7903b35fcc704edfa8871663f5553b0cff916197d54102a03192378998d33b31ca4b9a58e81583e492639ce2fa9e33dd98324fc2c02365fa3d7a7e538f3cb422e37fdc8919902b4db6e867846101aeae00ee6f25f2715d3e912acd784bbecd5f8f942a6319fcae365b97b48185fe9107c287011dd61d76aca37ce2158beeed860f23adcb027cd40ca3a47e061efc1ce48626016fc936aa27189e1ec0edee3a4ec43e04422547107909b07f75d7ea01a25519a82ce4f0a53cc3a8713e7144fa2726ac1c4a455d4bc62b1f20e5a56303b5347b15cfa1d883667c2b4c243386c5252b4f56a5643ab11", + "030a860093d5f7af9b92967f8ac5594bbd151bdb56739acef7", + "50c1438a349410d4fa28040fcd35c0a10e687a116823e18f9e1c8641b448e8dea1e635816c2fc1bf9d41563cf3eb37962014641665cb4547d67e2a201860cef93f26d90c7ba83abee4630c782cd09c8070aa6fcf9b34e1ca6a263bb477eec530c0c29f41fae6cf9a4259bc49845461c3e968a4691e5b3d7a1a8b3330664df31b3633e23850e62e6ef084c8423479ad742b4e39e96c36a8f666023c07c02fd98be9434dcc8b5055f101d0dd5f08c9ff91a6bc7326f8c4f506e63748630b54ca63499aab284928e5d4183e0610aed2ae6d011527257d6c1122e0ded8dd324f", + "b2f5ae9a5eed40dd393dc59b8b86fd1a79f35db159d68ed8" + }, + { /* i=3463 cDividendBits=343 cDivisorBits=252 */ + "64810e0645ec4cd44f4a19a257a2068117659641c308a5b08306930e8904373088ce28745e8cbb99264d16", + "0951432cd8e3d334e19711c050d9840fe51bf5cd5153f0c3588e9fdc2d321871", + "0ac963a7b5557d644f9d5502", + "0737ee94650b786cf066434bd4324076065d98814d1fb7b94c2d4b99c0579734" + }, + { /* i=3464 cDividendBits=1103 cDivisorBits=585 */ + "1f82dc8dcdcd1bf5965ac527cae170d7ec34c0127e66dae910050721967ebf97db96230575c7fab0dad33d8b4a8097d4794b2c58f65f4853c9ec0c895e341add113e3970711e98a821af18c9e2151a089fa69487075b9b60c2c6c5844a73ecada8ccea5163e39936b393797e794fdff0b4b05e70a94a3690f4832c55cf9bfa2c4929dd2c054ab8c3f5a5", + "01cf284f45d339f7191e5f5d0056af5f56440bfd3a4d80a0ca2d670fb566c9523780383927932fae1616367bbfb90ffcf2b4964fe8f1796da49c92904a80f75e071626e54b1ba6309bee", + "116ac750267e71d23cc7acab8c1357c2f230fac4496c0118da4583d37f0ef09d09742fe480b27220c318ecedf5bf58460bd1a3d6e3ac234375fa88bd5dea5a4d8c", + "019b8ff338cac856e22f26195b65977ebd1fd0611a292fb7747a11669553cc49d6ef79410daa0035a91a958c25e81054625a0c8340fadda88096a58bb0a375fb79796d576a1ad99c197d" + }, + { /* i=3465 cDividendBits=289 cDivisorBits=288 */ + "2ad3bd331ab23bd5db70f0906f30e237644a63cbb8acdb516786d4802f2defeb72b00168", + "b8a20311c8ebf1d888f4f0f7afbb88d923b753c26b824130661f75792cdb6ff548620055", + "00", + "2ad3bd331ab23bd5db70f0906f30e237644a63cbb8acdb516786d4802f2defeb72b00168" + }, + { /* i=3466 cDividendBits=2292 cDivisorBits=787 */ + "0c93416d0bd8c8914914cd452458b44f8474fb4bd6a95d5a5b264730ef78f27acc46421400ce66b8d48c5dcf6d4bfc696a6b295fa3933ddf0ccc4d347702f1eceb972f9f3a95d4cf9b296681fe6ee6d82ebcfd51aa271fb97de0f82f99b1ab406d479ae0d5522c65ab4986e5ffed9000bc04ad95cd078d50453227f544620606eb0e8740856107e1890016da5ddbabcb636544a91b45a0b5edc408a37ff0895baa3e7f4202322d9f4582cf0b72c47b434686310323fddeb26bb19d727027604c104abee943df00c38902044036904fda9fec0af5f965718cb6b3a81ce0d41c60a2c264108a2355cba2037b7b559072aee762b73a4fdd1f0f3d6973593b715407ae51fa95e611a493ec53e43605cc2db06255a3a24973bba9bf6b7fb7f65024", + "df0efb8f8c3fb9c8b1e7851367663290fe8a2a601bfaa07aeac38bf17fac50d65f06ae7473c61be72a7728d8d9cda65595c8c3e15cb5930deb844e46302fb294fe512760576921d6611ddd6b307fa468c8d49d0d3e8298ec9cc07db4e6b8ce07fdf2", + "0e6ead909546eeb47c723cd2fca54e6131b6f3737ea1534212d62c76f4e03bc71dc47ee5112f7ab8a577a716d6334949502f2cb91717cda3105c22f7de4cfbdc0ac718c46b544d5223be655af39bc818d8f2e5f9b799ecdafa791cf482d529155a27c0c370387d2febc39732746d9f6a6e1f94ab9acaa1b0efc516dbc0a0d9febd550ccd5dfc2dd199947cb8d4a1d2116b19446a558514ac18cc8fb335a59a27d623e5ca8741f0e14490c906b3f252e2aa423dc82fd9339b72464a20a3", + "7bf9282e7285482fde5c5ec54602c8422e4da8f5004fc3873df67c2ad0b8d0398edc31f90c730bd9d4eeb8301cf0fe73b5339a1985a3e21b83f559fb9159569ecfac90e38cd4d4191f64852052edaee87ceb7dc466b3a5c8a3c17971108ff52d5f0e" + }, + { /* i=3467 cDividendBits=19 cDivisorBits=13 */ + "01879b", + "0d05", + "1e", + "0105" + }, + { /* i=3468 cDividendBits=2482 cDivisorBits=2285 */ + "023872dca8666d0915d285ce34f54d63e29a3b9886c122b246a23f65e4c07809d4090e562b3ae49c8be200510b2deb8c96863c1e304a8c43198cc18c08bf6d001d284380f8c0e58c59612193c3a8055cf2771061da162cd3cdd4de6f1509eb87108b87b643c825c822c6a6200a86b437f41885c870a6bf8690aa8fc6bc5f34f96348326129747239565e2357a6b6dc0de60bca2707eb98c9bbb4dc041caca7c79be4ed3ff905a1dbdbdeee78d632d844b8cd11d43ef7f7524f48f52a26ed0a4738be6ce049eca97167280bcc91ac3e0eed12f4e811b5f4aa729b18cb6a069322e18a5febde6080cacd0dc88495bac73da282c62eacd224258f77a45660246b6f68140f0897b5092ad79f7a597311fb41235601f0498f06e12fefe926a8b266506c7cd0f17202d1518991a88b970d9f7244e33301a2bd98", + "0a7265029df4982aec3e334a6519ae9b3cc0287d19f5cb67372c6df44136437214f9b04b83a6afdbb1832535f76fb9ac9b472394fa4a6854cf65ffabd743a0b31d95013fef7e1a4eedb504a9db86376b6dedb26ccead3cd34504b65d168c8f8483b1e5ba97d64416f0fc44aab208d848f5ed77e81189c49379d01932dbd0796f7fdd8e92620570cd1d4a4a3482547033d7c852da2acfceff5196c973cf9233a6b7031b23693352b03049cc30719f9c7714a0392e86b54d062567f3083f9138d39e58dd87c79f14fb150f45bcd4fdbbc669947cd69dcc10f3d889c38688fd25a92181ada75ac2d29cd37753dfc8c1f4edbccc63a06285275a3cbfa482dfb52cf0a4960d85ac3a1e9a738460beaee1ab058919f098a2ef89b8cc9e5d89b330", + "3669d39c941d6dae0d3dd056e453d350310bb12712fbb00d81", + "08d2cfb3168d2138fe20c05428b41a0c8c0047c850d4113cdcbc58a0a1fdfdb186bc589f44502498de61aa8828bb9b7b85e4f5838433c34d7b44c3cf90395cf522a399f77386d0d64e8df9d1f3c83bdafb5a24e5286461c435c98161eae98519ebab37b30948f045c8c529a4202579b1a92d3747708538c704a3f87616654649f4fe79e825d4e142f7b8fc450d2a4c3cab3113c77aa04a8324dddea51a28c284202e7dec3ea15f64c7318aec137857f83f9471c18c0f61564ba5a1957b2dde220675bf340cfe30f6f62d90295e5eb0e501f2b330a643612318338724a4d10b229727385a7d11750aad4fc09fbe466845646decf5e7cfc244f74803d163660bfe6bf5b6e7dbfc742df867bb607a2659f5e168601782c6350081eaa0260268" + }, + { /* i=3469 cDividendBits=2207 cDivisorBits=770 */ + "3a7dc56876ae9600e399edf1e715c9f8c5ae67603b08ec16f9796b0c7391df71b34d624ac793bd6a760df11b50b15523af648f2d6e7b007bb25a3f75da464129d2d22864790e020898ac0eabf70adcb21d9cb5f5e36894ce0b3eaa12288c5b4a756a3eb27f96b37d70adb1ae73c10bf636925cfadcf1ca29085c35d8ba8a9909ca9603bf39794e1438095ac1fb68c2e2a1e7c4c7aac0c656c375ddeae53c1aef4b4375aa2a8132074504519d5343104cce752a4fb2286998991fd3987dd8c3a666d908f4850b7b31554f5d395f72432871456f1e1233f6536bb7d7df421560ec2b5ac9f7be2ba5e4df3d5b499845e44a5290441b4c6f92298159b3edc6e9d608dcb38f360e33a9c2da18421cea143b9df004cdcb", + "010db3cc9ac2a0d4300072d597fb98f1ba60295f28e6ee4aa5ed5f0a04f519f2183fd20a690aebfb41ec8813bcdd0a88e7e58824b304609cddcacf05ffdad82c4a826402d0bcb7bebb2b33a585cc0ee2ee695bbf1af044488b8491b016918a2859", + "378505bb5ffe1d216ee023da44a6e2d50d6f567657a27f301efa2beea30425f1277eb59866a5285bf2da37e4aeb2ab1e88528d35753f48e3ed4b1e377e5393e1a16d46b3d9a83630d608cbc98f75cabd9c964314cd61027f4a42fd31d2dfc14993ef5bee5e95af7b9424ea8194d7a2517a43377097965f700182403fe42c37fef28919021a9788cf19b0e1b60320b2f5dad0b0fe18a2d81b27a422655c08244f7514d80a8f4ab4b97cedaf80ef22db4d747ecf69", + "7abcdac079271a8c022985eab7904b15d938cd8941f8310e89d2a87997996d319e0c7319c2d9d5c68099538a2675ec1d4f34730781e1ae47921ac81c91c0dd0db00c96a370af373bb2bc9e9a51a11ce64c7aa44c874dd4636dfe40a057ec4a4a" + }, + { /* i=3470 cDividendBits=1308 cDivisorBits=547 */ + "0ef2560e819fda2370e8be5704e72f88665f296dc7c161342d8c503d3cc29600bec01262d6f632c6af8cd5d75e8d59f96940fe3e16a945d91ed7b0c684ecf613a536576bda7d5b990f783e22a6e4810a92a6eb9d19541777f16e558439ac904a1ee5ed389a387c394e1d67ccaa4af4f1e6843bd9bd694c6f01f089233e96d204aa2c51eff703028f0c9669fe14bd2d3c384ef0f2d7a906cfbfa31b9665d198afca28f5e5", + "01366f1f9a2f36adad648ed74bc05bd6b2ffb3e488c1d1e7ce33749330a3047a89ec3d0da1d729bfcb21645907fb77fa353b4a8f474d645b0d6f884f7eeb4a18c4caef04dc", + "0c53650f005d6eb34f22b0ff58d13a2b8f134392958006f04a6007ca930ed30240567c1fd9654202228f4c56692eb5e6b4192d7c476fdf55fc6f3b0f8bd47fc099c6ca36c64c39f1dd443af579c630a20ea1b50d881d56e0d18b69531c689136", + "5c7a2a8bf1aa80b3c8df9c5f2d8652267238ae29a61c674250158c0a71851ff431188f412cf157d53ee47c6f66d452d458f36866db445e6dc327887322138345909d537d" + }, + { /* i=3471 cDividendBits=2067 cDivisorBits=1458 */ + "051dfaa05044b6246b853b875476193247cf168332b7fa3fe14b5028fff338800e431a8f970e3e171cb9fa6aa97a8ac1be0e5a811228f725ec7cecdfec2ab74906230a8a8093a5b8197285cdd3277d52c2b6e21dc8de53349e9dafa5f0b142c9ed2d7d4809243c5f4c8e74a2f9d64f06be08122fef7658e0d739bde884be4ceaf754860adeddf88e98dbafaefa6e766d36197e18154428dc6d2423c6099eab88f359342710f2ff58aca949a764c1520b6fc164be15d48a29132cf2fba40b11082d1e001aeca6bdcba7eccedbf0296530bef87ed7ce4d734c99dfa822d16129594c0aefb0b695f6bba34a6edad99c2c4b68ca08dd9ceaed3ade4f45bb910a54fffe76a4", + "2ab64bd48d77c0092dae0b58060835640df901cba056f470998e0e9592049f77179cf8c17049b9aead736cd04ff88a703e4ae86b209c0add09016f4b0206c959b96c4dc4e76fdeb6dab5565dcf2721273d2545ebb8d7c55e190912da58f2fcf3c04a4607ca2086237b9cde0f87131faad97f68f673dc34ce452ea557766ffb9c3dbe91c39fd4abb3508ff4b86a41455f3f3de5f23600487d9b026275717dde1937865a7fdb3c7708dd073b8fc4af7399dc8e3fea90f0", + "1eab83b09f4e44d7b739ed6f2a411ed0a81086131043f1ebf8b820f7aabe8858c2975167b6c74a080b7d3ed9bce985d6f4b926647a4ae7108d41a866393c917d86976ffb58aec87cb3006d344e", + "2320b1821bee9dae08ffb9f220497a8613902829933ed8f8518352925117b562249df1fe07b1d78858084967f68fa3c653cd8b7df2a34a04198843da278e325aa9f20240947a2e4e13799a0df6bb051ebf45c17048068f54a3bbef65dd8a794b18db0ff0e455ccb3d5c6afcb33396c600ff324eefae42f9b067efee7a423b41905aeb09083cb4f236f9355c8c9b6ec05e7617a70ce36395f82cb00fea1134ca04ae76f003b5a067dee3c6b9de721ae9a23522ae58d84" + }, + { /* i=3472 cDividendBits=2704 cDivisorBits=1073 */ + "ebd904b5438fb6c339ed98892f345307ace35a88697e78da5a6d8dd5368ea25aa855291d8b53c762db4c6cbf17a98183b3f2247e6d6ee54de5d4de6093af71e3f812c075e7ffb986531b62bca3f5a39d69cd2bb651ecdb767e79f58bae0ba79ea81920bc8b55137b0baffb8c47953c8f4e2c76f1949ea0a84d2a0fbd46d43393d88fdfbfe0467bd6a1571aa9746ca15b3158270a3371e5b085425be6b0083dea71183983f86b3fd1789d8dfb46f6e79bac3c214befea6874dfc0fd993ff1633d7b98ddee6df4e6afba0a8e16d476c276ac5bd93e925ea87f133a8db8ec3b17a0689859bfbdb0a822c95ec63f37be140d21b2f6728f508f0e3cc7d2e87fc6354cec34a037f02a8c176421ce6b07752b9de3b28e47d05a5f9d48ef4e856629890bf766ec49697bd35bd204f60f765b6485137d3a77677e6773bb53fed1b06885008a1b51a68bc16bbb5b796782f990d176196a", + "0173dc85deea11b26f80be4e3be276f010ef376588c143ba6da3dac8b111b4054cba67f3f319a1159f51d870d26eea290a17df11a517b0a8ea689e1795b65dac888e39c1a26e9a5df362da34b7add79de22ce551c12298c2557f36ab945cd7fd177ffc35736378da042d19bda73daf5f20a50698328fd52a3a86298a0f9c5778668338633aa97e", + "a25d42b21b454e26609f1facb1e7842c5e1e00ba2d4cc158b6977d002908969382267a18e80f27ba93a4ad3b1c3960cebcb3b619f42320c46caf2c5be726490d23468a280645eaedb0bd33f4caf3ddf03a798022d48043024a4a5b5225850144cd3b653fed54ccf4e04996dde018263c58200183bc5c2fc2d964c5023a02b40604b2644e83db766b7f3939a9e4189998bfd6488e0261de90f0c9babdcc9ac17645462196080f3fe00c622629658219e88650d8d6af0dd5d78231b2c55b51d1e77881665bad17ee69ec3e5379", + "0150d242ff080117d9f59d646f2fb8a4b6cf317de16ddcae01cba2a7cdd7f8c72b0087d0178bd9d2aed10cb73f672400c59d8ab5edc554700f4d55716fa2bf1914bd18ddc083afc615df8fea5e66a29faac79c7defce043d0cdba5c2b17d9dc7b4129b08f611ea264b61be1bef748d23bb43c16ff0c977415ae177e7722f51e26ce69ab14422dc" + }, + { /* i=3473 cDividendBits=2427 cDivisorBits=1343 */ + "03d38dec8ee2cf6795b3b01509e9ffc69bd27089d1ef07ffecc15286f2d23834e8180e9478330d6cb8f3673789fda0d5d4158c4f8bf2b820cd345756d12f01c9a322e56db66fe53c153962eda03867cf903e7226130db1f4c2ce310baefedd586fa61042929122f5b0dad5b8b6889779eee4aa53b42b193837bfb7cfa4e23fa028a9b23825533a107bc8d4d65318964f6bbc4b27a9404827408a70d175c9536d75bdeca9f4645d0c6298d534176b339bb24a3e1560501c9087f4659dbf4bc69dc5286a0ee1be5a367d8b73a8ff01814a74631adad50c6447c06e258e9ae1372a19591c989ee6c8600ee5c204b5b18abde198fc7985d0834cdf197885a773eb7517e3e7fce303763bae6cc8702e834b907d7e3a204beb02da5f0c2ba1db7f3c7dc80d2dca5c812391a42a63780d7d382e", + "144a337cab175f321d53d285879710ae00ffddb671f7e2b0b257cd91d4f2ff2819c89c43ddad13113c6a049e79d9a16d1ddea619159b68e6e5672a4bd1efd28de5a1c6cc153da9c634c7a752c3b27e05d2346b08420b096a961766e85c87c3c8c585c2637b22d779386af75170acb9129a0607d30afb105f6e3ac36e9e5b8ee735b162cd7dffa1f66f2b97c5287075b3d9780c397869fb4887d56891a718852d372ea866ca5bbe38", + "30472e91fbb8fb21ea2a06819ed759b1344d80fa6a201d292ac694222d5751f06ff43cd3e8031eee5ae3ff34f1655ac73063b389c8c46b2e1d7a37befd16c0fb24be4cd4a50f1afa41b58bcb06879d66fc04b4e1deea5330b9c6ae29a4e844c2438b1d41d6dd24965da2b41efb8a70b08099b5c2a6b3778370096e1b8bca7fd13675e3967e6c3943", + "097effca935c5c6c524f04e6b764230c0341d1b52c176c17992e26eb9cf456695bc3c38fc4b38da6c95a8d297b77e87a41d4a5cf85a673abdaa955977f5471a871ce6842ff8d1b939c6bec6419eec47d7a50543f87861f2bf9bbd515559d3ec5e109c38e35ca3500e3894802d4dd13474637011dd00ab9beae4263d1407b97134eba984554527a3d6f1494b40d5207bb64a543ff35186e8504778a6a286b3d718179ca5eda7ff786" + }, + { /* i=3474 cDividendBits=2448 cDivisorBits=1454 */ + "c1146ed5c128e6be07dce992d9cbf2b5a10bda9f0f8b7ae5cfd89d61bdd6dea3c37a0ee128884bfdf636a1a87d73de83d3b5ae2def5ab28d5079ae9007b64b5852ff88771fb37577a7352cf8c0bc93e31e319efcd60e7a80f5cddd7a0a197190f844642640e37b6e6d1a42561c184d1c456b8ca936140e18e3491602e80133df6312f4dbc45554b011f1940ee1ba73960fbc3b8bef11b5da3ceb6096c20ce668b828d63f40872b5363c3faafc40ff659bd5104eae444c5ad1e36f3865fc8bae8eeaa6edb599d31b3f822fe842152bbd44caa3b4b833eafcce51630cb1c71d2554f61c460158813013e1359c730133487bd678821c15f3c0cfba4b2490bd4070a2c96a8353e896dc8ef6d378f0b71b4e0e4f36832b02375401c898aae667e696aedb87502386f7178abcf1da846db56a9936d", + "2a3fdf8000f45d5b64b206afb22975a9747dfbb39183fdcb02740a3bd36723f6adb741259888ed195f43b09f154ec687ce9d92cba6e3f9b7447571ba67c87cbc77ff86c73fc51430119dc3a3cb2b1c0419dea7d3431f7a800ef1bbbe2e387eccdc3d9ff7e334be808c640948062fed6b541c4dff31243b0acce7e7d5bff0911e2fe42de69e771134f50b558288be110b05e289ad626a35a7a18ce64e80e79f23008c26a7c9a7bc54cdbb6e5846fa7dc9917fe393a2f8", + "0491eadf56ad99f898cb05692e26ce903bc08de41ad56f21bc8263a66850d34f9cbd0287b80f9d67187267d652f53e3a54742d25e1161fa448eb2827ce556e36e58b2b9876353388f30574f3dd08307fa2b753ed99042b29e156c31664a35dafd8cfb4aa2a1dd559d164399b6ee05ad6d280e92acfe1b34b650212597a", + "0341929e12a7307b720e570b9de7a4e59db00988f0a1a2d8650937cc2af394cc1fbf5bbf391363fe2680cb900fe4c922b4b23453175127517797e041bc1ee7094d5026025e469a36743a7dc3e1d8c6ae32b8f74be5867511740597c9418dc7148f302149576703f8f391881bfe462e2502665b3b8f1b127691c26b53b9ea5e7571af512c597d3b74706c217c3b0d77668afc7039e62a25afe846b5026473b4fe0460ce0364c090217c72d5b41f44e7d85e4b2935b13d" + }, + { /* i=3475 cDividendBits=742 cDivisorBits=497 */ + "3b241bb1719f818ce565540cb263780bb3a9a482f591947c0e0b87db959e22d19f983b84ddda418c09bc7b646ac6d731a0b460c799bd5d8c8dde0582d0ce0d13a3306b6742a6c7f14532ce68fbe1b2a4c3180e5c51f4271b22cd3262b6", + "7f4ba9ea341d7fbc27dad5adcfa425b02ce2edea851ea9d17ddeb1d8b1ec8dc0d7a0e93dfb23e119e8d92b76babe92e6b5dcfe0115898e03cf0e2e10d1fc", + "76efc8924c8692679f8da9827e0b4820e3c23bf0665e25cda48dde76c7bb57", + "678eb23d5854cd18e889ea633009337bfaea40241d758c3d034f36206ee8255e462396439620da4929171f111b629b0f5ffdd54f2f6ae3aced457933f212" + }, + { /* i=3476 cDividendBits=2692 cDivisorBits=109 */ + "01b69ec7778948f7add93668dd3ef2539efb12212c53fe0a320e6aa3ee1e8d24e11d0d2e5b05ff21e42804050fcf53b6e0829be4ef1d53a824b19bdb4b0e4a63073378b2b432b011873fce42049c81cb4ffa75b599d3f98cc070c1a76ce069aa3fa0b3b01adf5a732ee87f122d90295e64c0a5b946409716770fd5619480fe1d2ff1a7f5e59b72427256ba4253d179c64d6e6f2ffca7a24003bd1af7ca81eec676e02defb113682de9cf82e1fd3897968ea419a055c8347f43e37826071cfbbdd8263dcad99c17a6a54c9d02cfb6e2e0f09610ab3098b040455ed0fb50875c4eaaed0b3400e61d345a85177560677b31a39717d15d2985067ac706eab52a0fe66c931902511ac3a400e222fd842eeaf9bf9cfa947607df0b3441c4f03cff49ca65c7f0a531a9015e087861a1ab5e72161270854c1bc8ab6d8c9519d6f2ba8877bf2e5a247ac6b7660f6292896f40c46ed1", + "048ef680daadcd3b4c448367cb2e", + "6038ac41c06a0f4178d765d60f436c911db8218d7bd6d63c1beb839becb119e0db5fc33770ec48481e31a16ce90cc698c653e48ceb8f6668e7a6cc0f0da9d487ce1da1940f113f0afd3a993ff330037fd4c41f7dd41f161f2ce9d5b1b00f361c4482aec0601bf006d91e77960045cd2bf3c59a0d9ad228a88c72b79b0718a9d1b2d60b38e1907fa68768dd1392b79278a7d21432ab86735b2a1334b654776f59e412e3d453f55f1ff62670ee38e7ea845e266b75b2b5c4a082922a1f40577ee3b4d83f992779f4d61d2b88b77572ba66f1ed85740fabd1f3d1534adda4da05f119ad5a410b4683a402193400112ea1704b5bd3ae456e6097edef9b082b09dfa207e029556cdcccaaa5264de16d312eac5cb8c0c1ab17dd44bee96153f2c89883d6da0902cc8ec47c9c4f8bc014eae75be7f04c5dffc1e6191ddbd7534fa3a877b6b779", + "01cc0c1c756cfc8e37b11dc38413" + }, + { /* i=3477 cDividendBits=2091 cDivisorBits=1601 */ + "0154851b517a39e415d5037effc943a3068625c165114f91c050c7d1e5a3614282ffc09751af6d5950dca58e2b4da024383461e772833cb1a201988d1112bb071b01ae0a688a4a58f90c73001659c8a8d92baf2b503483d3d8a2d6725e06958080c4d08150339ea8fdd5b47d408373c4e43e1af47eb033234e0a64d566925c537bc1c627a1b5cf28024de0c5d633f592e6ce073e9d3e3d7f3086a58db51ee6c937183d755f51bfe50d25906812ce777cd41a83f6443858434af706e026c3995a9487615d35186c9f2d72a31bfb3058628358cf92e44948dd12ba34977a5fbc5b571869836f8cf0664578c9c032a85a42cded86d5610836b2b61d90a283fdf8e8b9899dfd540b", + "01b09cff02bcd5020a1c39f7996906a68b1f0890733765414f9736085d857c71fc75ced290ae15f65b9d90a63425c1e236f136b12d321532f6a3a53ab4d2427c2941b49401db098f8f5492ab5057b3ab697304536b1554e27862b9f3ca3e4619d4a2d738fd1bc2a40509ddcfcab031cac5f08fe74d0f0c502fabc0234f6476c089fd430e7b0432062c17b2df9410486350e83db86e9095de0a0bc38d6c4d4d7becc714b01bcbd2cf4302ee95af3c6c5005e9b8db65f7e4678efc88bfeec52f51446218c1d2e4de4e1e", + "c980e851fbfa63cac49a0cfca376d59b1ba40a73cb7657111f3bafdf0f6c851aacbd7556f09e88a6ff280943ec575b1563bb3599dd26700046c57ee19a", + "e608a4c6d930788dccfd419bc2ad223e462cc5b7b9b7dfe03444622197993152546a17a276e4f38d173ec663b50843125ef22c9b0a53a09e8db36515d5a4e5d6b0e0c0e05518020f3e59dbb3441345b687634a2a695792ae81a8e20f8236a0069ed63812a54ac4cd45cc2aa7eda15060cc54905ce6083ea7b888c6c8f1fc71cc0a8513d1bccb04f8de609b7e8858612704ab5a2fc6883447dcadaa033a1acd6771e50019fa70f8111b8ac46bef4328118b2f4dabc4b1aa13e8f84f8348c7b2e14dd4b1c904d5f7ff" + }, + { /* i=3478 cDividendBits=2097 cDivisorBits=1565 */ + "074227c9a347495d4ce4849f0211422d2fe30cd9bd0735ee3c93b5be69df48ecf3b3619bc3157bb42be8d03099e59b2291f4fe8264ade507afceb2257065fff771fdae580429c243920a5a02b58c428f96de2b6883177df88801e2357399f49142c7e15bbdac8fbfcb89469ab9250faca46bbe4d677bd2e1cfd99839a10178d6a2ad640d2eccb10f6b7c9a9af4a9503586967200ced9a12d0e5987193b1e0e4acbf1eb21fdea5ceb847aec22ec195e9d4aec0971b35fca916242e27c5e64c15890b107a2cf9129fc8a7ffc69e207d6356a6fa4da25832562040823023368d3dea8e93802fc33d7a731f32082425549e6b8cc447169edd762f023daf926f72426a8cd0d0fd242", + "0b5a1c0d9ec25d95e937bd32fc6d08ec04e5f12e7b2f5d98ca88ac79c61196c6f5aabe853c1031208907db092612c7d3a9e9b8a01c71af1b20a7878931291118397016d12b91cd92995c5c8a19fe3ee7e806d8d677f75d1589d52461e29ce33ed140387615a31b9453aef94c635a9476ad53104f79a0bb022a9ec12964c92e1d46d20ae6155a1684069768e07ff14f0dace20f6820011b20bb9c9104409636547df7fe63a1627063060a93664ed7de114fa9d9fa1a86a598df225a962fbf997fa461e533", + "a3af7822f2c474a90c0fcb5d1b8ff3429a09d147ef6e6f38ba4d01b1c014156f87601df4890b06b3ee79fa0b44f2b50c2e3c6cbfe8ecce04c78139e3506e7d3ca69d", + "04fe64abb372a9b43762b3d58c34af67f85c304b11b9f35c029f7e36bf6d927b34b9eed421bfc98f913771e8db4562b2e179c6176e6786be1a3c99fefcd3543bbe93000eb10c95c5b368c656bc54a7f9fcf37e0a9029cb2fd2bd18c05677bc5f10d2d4f3898236101cfce9749fad80f3a34ed5797447ee6c7db7dfab3f31728a5566f43e958cfb5493f6c94d1a531bb602324c1f7dcaca08760c854e9b2aa192f361b2d3f0f9683941ffd135a6feda9b5a2ed53e8a9fe5ceb246ec498005012823732ffb" + }, + { /* i=3479 cDividendBits=3603 cDivisorBits=1670 */ + "04ce1e76f187a8a9848065806275058e1fb36eba008e3e69cf86c4fda0a7560fdcf403d28853dd98b88538aba43baab60df59e87924ec932b0591405cebaa0580bcec8bfa47ae44f7c5c7d032814006bb914a7512bd7b074a3e071d76f1d3be02f34dc31acfc65e63f3883d4e8b7dac57d5f2570919a04843e0d6e4b156521c99b5f463d565233f0ced811815eb9ac2cbe51ae1648ee47fb8efcbdae8e499e400640d8a43575d267cd0e5c31c18d66689dc82f221f690faeec8cfe7cc1c86912a9fe3e8406d1d2cb22a6fdacdb6e9501f053545bc49ee2dcefb7c1e76f1db64aef13be90b52ca31538bcecb3e768dbfc257b9cf7c5e56269faa5ca6b2069fac5a521957d202d929b837ebedcf8d2d3a5577575f14432ece493eaa08d22bcab7445bec2910963d40a0b73feb8fd45326c71ba912efba9367e1dc4dab860cf99ddb6b0c6099be7e5c22a08e64c9bf188405bbd6f45238162268cc91067a67e0df374c5fcebe022c288421c4a225dedf52a6beb04f804ff135bf2d3a2d05748f0870fd71c7dae69c6e4aac94bf15723ac9e8d5889cb69806774823853a4bfba8f89684cdea662cfa0a9ce1907520ef117e49d4de8c7e8521b33136194467dc1837be2c4f3", + "31723f86e129a77167ecc6229542b3d59af648a0b730885a11c02d6e12bade45f6d82c106afa77c4a88b578d76bb1e2b9b231ac2ca7ce9bf5a18e862805444c044e0d84ce65afb0c641bded94729510fe27dec503e2308820e393a3786a51df9820f665cb874121da324888f9a5d4f021a37a10b796f7df41394ff096b64fedbb023ffeda87d4cbdd4e33df8a7c8a6ae4f6e59a8e7a7d8a1e61dde87e9d2961aec78019e28f8a404bf83a7255587f44c9de7a02bf7f90abb3dbaeff9720f4a2bbe1c98b8bef1b1c6ef9c69d413110f9449", + "18e0bd307caa5f07b401ae2445fb5bd38b18e3e67ee4fdef03717d12e230bda7482463870b1a192638a9868b54b014499367654447ae2186374c84ad698ae5c826a4b5f9501e43fcc75f591530de07ad390fbb6a8cdb7ffb6cea2b8ada0da8a0739fb327efe8c623ad5cc14026bc64bb8e873afbba44f661d2bb2e995d7d303f92f4349ddad7bcd8a3dd692dcb6e2fa0ff5ee6243eafd0e26f9539e717926a8a545b22579ccd402723223a086e1aff029b0943d5f30360272dce15c1c839c82452b86d4c2d521e78444b7b6d76581d42782703b3d6b59c06ab77af92a6b50bc6850641fafa14e87b93018d9b54a6b8d83814", + "2da15bd6fde2063ea37ec42bfe1fe5c032a4e08f633ab6de250672de2d768185d471d71d671cc72c3e8563a4f5126ac92568883982f5c7ad0f1ce141398b92dedbaf4a117a0d64c0dfa1a966a74b26266cb64c55a757f5cfd100cfc39eafa58310272c56d4ad1a7d4c90cd72102e2d33ae80fe56d9268bf1ba5736b7cd2053d657da39176b762676055b32e91c2081bb692fdc02ab883312d03fcefa60a3da177744bbb67fea8df5b6533276350d96c41b506cb1e6c953def5f9f070b1a6eb114f17d3d54fe2a434921986513b28a3373f" + }, + { /* i=3480 cDividendBits=3876 cDivisorBits=2118 */ + "0fb39d956fae5e7a66af0ec591d26fea78ebc318d22cc2c9d770236e1823771813428ec407036390a4803f877cec882c3700cf1d915044f774f51fa784fb08a90dba8201e055ec91ace88f596015a2b1230dcaa7bc9f950593b969e8f7a6bdfe616247492f9385c18b523e75a89c88fad69c570145b89c7feedd1f83066a3f645cfc2c46653052098418fdd2f7343ae1daca0652ac32b05e0b0ee5981b0342a5e0ecf9ac4e453e4ccc2678f6f3b83c8f205a3abbb2816a7b718884a6bd6b5fca8292e2f76957027e744665897eea38dbffd20906046e7b33d8dbb09ae2564ada408e2dee0003ed5d31692d80ae273f0be156aea560301cdaec1d8383e6f5868ce23d7c9010df221369e388bdf31e2ea4ed02a65c6a0e7db0b1de8670d08b51e9aec8f32ff3c933968406e361d461971df0e3e2e502089cf1b5e954337718f8c6569d74fbdf613fc077978e5bfd80c9717d595bf6f0b91695fbac5b8a8b2375d3cd633819bffffb9fbb3726bb6134eaefe9ae4c7789d226ea03db3c75382cc25bac1b0c914ac81666a3496a3055b2c1b3ba288a146edc100ee3743b22cddeb88c121626a81e5ce02ce903f3a05eebe1b331b959f7d63f1c71aa6d03042425c705f346985406d2ff019884a53f10728a4ea62a4212cc22afa2df1184a7274c383a54af30ddd0", + "2b4f55e2bdea7d7e14065f83af9c9a576d84d5f7425cbe3ad7caaff99177f925cea435379e637d287f61086a3c1c6f9b4c0a6e4e190e10bd49f56d38532e228a921bc4c4747563a0e94df59d2f2ed8479c0b31ebb4edd95d33aeabe29116fae6f438f79a8bae5475f2534f843c86fc0415665de552f3bb1520c3ce351b46d2e6379f9512369ac38c245fc164a7da63f06c0707aeaac8a7d015afb54329a561e0fec86f4730251f6b6d66356bb501483e7cfda6853ad5dd502fc9fab911d119de32ffd41646167f4181ffd8e231f514c06277f8d5174150853d02b315a3bc418851d93b485daeee116fe4d39aef74a5d36930501ff2cd7f0525701630111ec06a39fec0d39e3a4f075e", + "5ccf7f7cfe7a8c1da1203e5e4c42e91ff287b9373fb7f9aa078374df65ee9f1cdde7ab9a808921408f404366c56e44cb50c92b4388879ffe3be196541661b733a41414939b21ddf29a6c7a9424525a4c15ee3334d15fab630af3d67542d2310128ad3c2fa0d084970352bbfded154b7971974635794fafbe28b44b13193e85d17fdeeea412463133cee6e00445ab5b7b60f468cf5ec95affde173b443755a7da9988f149c53e139bc2ad2f61085ccef1cfe359c8e2a1b9738dfc5d954ae0d5b596ab1ca09b6746fb3bf06711d14b0fd3bc59dbda6f200dcda989fd38", + "281e2b549a02eb3de0cc28210101c04fa70085c1a9083d063f922770dde421ba21b3f063b2f0cacebe4acf16ce24a59abdd31891efd37feaa63a7f835e15a89a90a3712420381d50a6700eb59afa738421aa88f6416b43a30ef85cb5f004ef42430f2226b0e1f4660c049c8adf088dec8c369355bb7e10f6fd4f50d13299d6c122690bcc882088f240262a01f55380e0c3e76ec1cb10b8ec0aee2b8e00463108acfceb2b9444a2646952fac302ba0dcc79809a5fb5ff0af60e8277435f1aa611c13aa1fc95a71cb7d9a76ea1450415577c82b91c0a5791e0d667e7d67c36fdcbc2259f299d1af13655d2735ef5e2699f969b33c717e612d5d79681ce6a57bbbc04ea5283a9d4515b40" + }, + { /* i=3481 cDividendBits=286 cDivisorBits=173 */ + "250df9b996cabc318031eb97262b466bbbe7232dfe6ec43a9d6e2ac30557f0eb41dbe9f8", + "0b38dd288552bacc34fb840d18dacac6cdb36a1c0114", + "034d4ad3fbe37ca99ed358da321f77", + "08892bf2b6f5c4ea4ba4bf2166b14dc32b684ccdfdac" + }, + { /* i=3482 cDividendBits=335 cDivisorBits=57 */ + "60e8ad6de7f8fab9e1c75e121d9331e39de2eeb430031c42662c00865e3570b6760784438dd8633000ba", + "017a1599e40d4deb", + "419de4ee996cfa10b64e8fe4d60268165cb95d420b5e039b3ea548093837d0e4efb3fe", + "014af6f1c61c6090" + }, + { /* i=3483 cDividendBits=3810 cDivisorBits=2709 */ + "0fdd45f2d2329c8ee2c897cef8efa275f615720bcdb7819559e24669b65ff18a2893c7e00d175f8ac9bb1d130d48d11a6c28814f0cb84fdb278fa904f3270a8b394572fd0cafb0a012628925151b651e09241d7e5ee53d3058391f17b62a5e90a61870f89c1e531304846124e9ece52669a0f608881ab5b13594cd3de8521a513164fc8a4fcf4ebbfdc172e6a7ca3df1af974b51bbc28f628d5b57796b8c329a5a69852f61733322e864b15921dda121ecc17e3888086aac2c3a2512d0ff9ffb249682dfc65fcd8ef2e8b7c853dc0229935c7e474a3e743456b4c70bf233b2ba9c172af41963c83a934b4546a06d5145eb3bdf20e8efb42e8d849318288fc15e1e15aafb0acfea5eaac082bec3fae4527510a56c6bc658149f9c944552e78af5f2ef33a6abd2afbdf25a38835535d7c4f592add7405da05ef24ec52abab17647940c82f0d675579af7db4cd18f635e7a6dd48a38bc0226f7c7b1ffda60175296aceed247770e13ac154cda4a98fc34d8fece18ef13f55265ad76327da87713674a4420efed659c1d5901c9d7422c3e95b1b769e86bc02c787ffe4b37eba0e0fda6bd8f0d90166f9b65075ff9048bb6f8479412e5bd414eafbbff88ba91f48565b773f2bc873210083f2ee22abb65f105cda4712a2bedff04ddbee085", + "19267296373ad97f542524944cdff48841c10be380d8b01a8cf05b1c46947ed9ebd5c6390df2c7d6087a118216745279c66833ea081ec6940aa0e97c61f6ff3d849f040a52f2f9b383f620d01787bee79fb9d5ab324a3826f88309d626fe53e75bf6c2f04ff0d8439913a3152f2d6f6c431d848b0eb59bcea06668dca068526717daa79e7e23c1e76444cfa243885ede30afa17b8b2d0a524b6210e57589ef3e76a3197472a96a601890437e592d3a4b945bd6ab9dc44ab298db8d97a926518f7ea4106c8356fb66b48f39593496c61c6c91f49b643b85fe7cf275c842d2c41ba513070e7edec05a8592cb5006d74c79a8df935b376becfa8236fdf15f350673d532d027d8db049b4716a4773e2afbbbf0f66f3eecbc7b5389248a433ccd44a7d23647be5bb6f526cc4f08854e86e7823fcc62d2c0fe6add5c9686d6e0a9f2ec79cea124973c9d1d95b1647dbeb24effb46354", + "a17b188b5842a77fab122ac7bf0adec9e5bfa0162349b2ec87d9fc47faf518165c45c32500a889d3c49e87d52c48f797498551e94e639ea3f2c97f2d8e53cc317a79f22e337555123b9de662adcbd72c69fdb6e57110e2588c288eb01e0367ca1fd295ec5053f5568931d640edadb7e138f134fb6c5f7b56e1dbab16d6bfef7589de38ba4513dc5864", + "06042967c98d457548a6c631c39a525ad3cca9e5c290ba4e19f1ad10d263291865a967a65b3b97423a98dd0e0c585b4ae5365638e6fc0be87a8f13e5689de2907b1c2def6cf097a7a5bb4bcb23202ddfce5c660e32c754419ec5495a496848186c023432ce9cbc8c41c6d6ef8c2e44b2264884f380603ff6fb490f92898ef19f69202c90c36c8f25aba0d3291e29f396c72efbc55c5dca553b0d8da519b614addab7ee5b1bf66a6bb37e1fd4d35c6dccc048302e1f6a32bbedffa6b83ab23ea0f454554ccf8356ff68b3ef54b358f13d295bc748173c3847d2ed0672cad3cc09b9a982f69b4baa67cd54d508fe0dcfd347d8dd1ec1d21323c9f940fbe5e4b9dec68c0ba7be8d5ea04f764a2f157074e9547d5cb155d5f7b1d755b1e50013766dd313a9434ffc2f2d0effb73eaa17cee22f7b2dc3a992398f43bc78f9640f6ff5355121b27dee013d2b04f1d91d403a60f333b5" + }, + { /* i=3484 cDividendBits=657 cDivisorBits=22 */ + "cca72059bccc9181ab8fcb0e3a7bb95d30f239b0e58c82529de423f0f9500244ddc630da9f721eddaf035c661240bd672e97c23383d45f2cd9b44de9d92d9c7b4c2bd0b45f41bd250baf5dcb7d196b360516", + "079778", + "1af520ff6074e9d379aab91ea07e8cb85afb11c986ed96b8b74fbd67face1f932dd281aba7da81f7ee73197cc9d11d094c5128bbacb64588230848ff077632ffc9c0a86f63595a27a1484d758c951563", + "0199ae" + }, + { /* i=3485 cDividendBits=593 cDivisorBits=435 */ + "01a1da6bfceeba61e949e9eb4e26a38fcbf79f379d987496cc296cc1818e843bf4a7c54f3ea3035335835a27d10e04946f3d0dd14c2adb3623c5bf9bf4701dea8611c34d522e1c1e999b82", + "029cebfd8f3439ff943f16063a6cff384f6d2085c468b4c12b7bf3a2aa4ee379273cdb83ea94af616dace21f9ec558fd5596752c4f853c", + "9fea287ce5094f6b4f6f545cb8d1269d7d187078", + "137decae8006fc0424e42d6fac8d435da67a027dbc671450d216186d8cc8ec9a945da4241d0b5ccced864113860ae939ca7dc568e762" + }, + { /* i=3486 cDividendBits=2494 cDivisorBits=1270 */ + "134fbebc1b74fc417e6065aad10ad1ab8ed8f690b33d1447aa25a7e550b1a6eb9c7a0644a82925e123a2235f3e9291f95a6e8ed96c18b6aefa0f3d4a8ca237fd2c8ee42125bd5533442748ecb6bad136a64ca36e3b35409372fdaf87d343ad02900a060d87ce5f29230e5dae9e10f978930d82b97874e9cec7bb21d8a66c7ea208c359b1cbe245ff7bbd3bbdd4de4b2e0feca595d3ee4d3fa3419fa1acddb7055a57322a7c9f0c42d5f4569aa61c620c0ba53d92e4dc7f0239f2b0e33444e0e3c9b11d0bc4d65bee97b596fac239ce68e7bd05044b4347e173201156a3da7151b2364d319e44cac3e209e455340a9839e702251d5535aba53d4fa58def0f04b8e19e95d24f8f5cfe3b59b4aea2c0235382ed80da48760402fc4ef0babe7f9ee2d3300b2b261f1af5886a506d99977a10c4eaad08e2b14948", + "18f4ed3cc09c193ed16ef7656a791c3518acbc0dd27c2204e9ea8dec60bed28257aa8a563ab91b6b778adf4771438952e84d67f3d337fb983c4a900aedb64831cba8b883a9b340b37b13a4daca7b9f2a4f15529793c69c66fafcc10ce89ea03a6f12da616071140253b02464002a44ffe2a29f89d2f25415f7c89cb49bec5ef152d07f1e51db4005bd12c56dc003d34215e212ee5098ccdb4150c7d2c9fe80", + "c617b0dbb27a62dc6d87a9f6a5f16f8e0585f7f9b7f0b08fd6bfb0bb4cabfce7a6ba83d56a17b5cb38ed4a92c486ead55a510baa0792de1a6f899fe889c3aeb22e48c537087be2041e8ca2b0ac5c4dc4f7e3ffa2d2e90ffb3032125fe32d02dfb695219feda4d53c02d1e8b33803fe42e444ef7f094fc8f63e112141073d7feaaaac8531b3931c93fece259071c6e1e713cc8581d885a201d5", + "13518b629542a991ef1b86b37939c3e4df7f28208d84718c260b4c65b86b7b0b7c036292cf66dbc852871aab19391b0661b741aebc17fe09c537f90e557f03af69aa5f089045b2fd7f2e583f6234190126b9eb493b2ef564c4261d08b93615bd3aa146f77313db754f7f53a0f95f1e8fb997a4c9c98cb4d9f906caffd5770ebd0454cef6596367d2ce0634f862173d092b35d02ba625654b1e1de829a208c8" + }, + { /* i=3487 cDividendBits=3134 cDivisorBits=2404 */ + "215d1f5cd04731ecb71932c24ab6cb10ad691a3e2fc1c0910e5394f2ee57203c2f44085e123c0f865bea7357fa45bf1539e063cf6d27b2c65c261fa632183647bfc68e51105434e1b99d6e88f9bb041bc417decfb33811634affef85167b3a3616c30a8a87ceaa2c6720bea75b3d7a3dc9aac7d7df2980834ccc776fbdb57d2bb7598eeadbdf766450d75b749730cfe104977b4db0d18e7a3db9fa5bdd06ef8338534914c1adf29ec95798ccd492ff7a5582a127129f0d13958f7ef5bc125ac3145f49dc710473723849dcf6cefeffd262e0e46cf6226de9178ae4805ec86e81b9bb333ed22aaaefd8f2514f709d971982e5af54457cd1818e499f9dcd25aa99dce6f329d16bf6db51dc47b7ec344358bacd70a6e2737216ca0b5f9e74fc8ad88fc97fb624636f9600d7ea6405ecd6c403af85fad1eb399d96414130557282f4127c28598cb7b13bd91d7be1f72679ae61aa35e5756fa2bb17aeab41a40fb8573a05cb952e82aaca7c1318fb23b16c183f15e5f16365d2a51b045b4d9798bd061427d2bb6b5ba313", + "090b88cc49a94ea24189395afab62115aa90248cc71a4002bb2d22a746995a10be2a54a7133a4a75606336349d8e6156cd060e70269d2333f94e09f73e4b1c76ce32d6106f7010cc3d7708b80d4cf3db5fca983ffce84bb17972d89eb6b61318342ade57aff2e3d28d2e0f888f0a2c194fd242cc961564110500624204327a175ded294af96b4700f84a30b56d8e13a697390fae83cc7c56ad81c5465e4cd3417ac207c1412e5e4ff56429c4e3ed6161e9e987a0e01f9b448f7ff1ee1de0b5a5a832d43de61a9888e57de6cb539ec50d8aeb56d588e9a1d95bc96eefb6b643de1da031dd6a2c6277636fa6b5b87479cad9d291c2936f8662fab9b325f56adf00bba5274cd8d02df81301d3137adaa71167e761235b8c18585fe1a12059f922f71c7ac7cc9fc29e10835e9d1d88", + "03b0494a75ba528bc21eace4a6767f900fbb0e716a1013a35eccac7ffb6bb783f44a8a3e5c7f8639d3afe4d1d6ccc8c4c6f200319787bb54e844bc8c20999577f346f9b063ce293532d17544188caf0c4773150d443ebab4ed2f0dd1", + "1256d50299a08d5c3530ff3f76fc8db20dd8cdf690cc6b58cd78820ca2fa75c5778525611a8b66b6f0cc3a5a29590fc3c3c130f2ff2a4f706c5ea47c7aa7b18f01491686b65c2d0907b48cae6cef7e4e5f0afcda884d5d2ee4577fbf624cb839f4f5c8a83d5da8f73bb1856f97c0324df27b33cfbebfcbd7a1083d84c395bbe29d5c35b1deb820fe7c6bb6071bd2ccb928d02d022461d076ea36400b4f9b1f50a232d01de40e73164327fdf5d2fc5068773bc589118d6c554ada9b7c3625fed33ab2e808fb7aeb2beacf87a9ee3f23392037e8f4c8825b81bca2505750f43171e60c3e3e5bb556f40ba7c3866fe7642ebc4795a1754382468bfc9a19e4c921fc320fd0c08c96b76f48a391e08d65dd9f86fac5ac5ec2c96bca0fac0f44eb89b87b01247d8eb244ddde9e9f0b" + }, + { /* i=3488 cDividendBits=269 cDivisorBits=144 */ + "109709adfad533a9a23381fb0b431c6d8f47823d60557bbb0bc0b6fc475f0bd0b743", + "510298e0c4dc5e6f1076d70bff05180b9026", + "346d0e48f6a6f6bd11f43973c848be65", + "46a210f3b5ffcaf22d5cf940df93bf94a445" + }, + { /* i=3489 cDividendBits=169 cDivisorBits=111 */ + "0145babd3e1e168f52b370470bf0760ab149e14be055", + "6bd1d930d0e253b7ca24cac31fab", + "030563f2d686bb2c", + "3c8852d8cc547fffc398fa1e85f1" + }, + { /* i=3490 cDividendBits=295 cDivisorBits=30 */ + "3892f377f34f08eaf90429a354e279e7709930070f4cf72e3f98207d5871c3f4533e25c64c", + "3a940682", + "f73dbfee4e0ca24bfb03bdd3ffe1e401b766fcfcb4dcbdc8e0be4be95d345ca89a", + "1e1c8c18" + }, + { /* i=3491 cDividendBits=250 cDivisorBits=240 */ + "0199b4aa7d46244475b02f1265b53697ade3565491f455fdcdd9f5c95facaf31", + "35c97503f3ce3f9500ce167ece3d18c8b5c1021c9fb7689408fad8b9c9f3", + "079e", + "21292b073c24b40d430bce4134e50ae2267bebbeef363d8f0a887c6637" + }, + { /* i=3492 cDividendBits=3139 cDivisorBits=778 */ + "0538220a132dbd7505762b13407af039c359a91da494b1adbc783acce08b20a7cc5190d25f5e4cc98e313d78967468120601c795cdd17da28048c69fdf9071d1987309d4dce04c3eeec26c630300f2057671b640e75bf2338b35c813a36a98ad94faacad99a4d1b11ee0e02d137d7a4c34b1df3501e7c15ddaf6e15337e1d9753f31f3ca042f21dc5223983673b87428b05faefb86a2cb27bc77cbf015ce969a2981355601169f7bf57ea287b8e51abfa6617c726d5e143a38c448dd70313fe28039f0a45f5a7a2df296669bfc2baddd5521b19bf310389257af93c470d04592b7a9b6909faa3accad2cb778117198882e6a515499f88417f31b1229d2ec1b527356e7cbe71674a85b5911703864df4452d49aa58021bb37d1d7b8f1abbe7b878e287f0184f891540186401ecc756bafe6040521364f542e6060f6d9d7e135a7e107ab4a0dac710487b64852457e8bce72f49a84fef351dc1da6cb49bf008815c2ff93f365cbd2a4f5e5ef38f104244563813b77ab393b8da806cec2f56d7d9eb13e10d093cec00d86", + "017f3ea366b661165a8d432b8d50be6cc149b79779fd4c26eb59d9a6c6195127e866cac9e60ff7251c36a3fc3778e8e34a5e065acc3939e971d41f1682c60431c6cfb24364dcd98afa600d4ddbcd6dbd8b8a06db2a046fb649280be991a33f1eeb7d", + "037c82c7ab6b0a469c368b34c8fb16477b81d918f97a61d1329ebbc48d95bbc27f6a68ee42de8d41d7f30b1e87e11ac58ded35f0f4fc19837651d06c98201ad5934065418945ad3909f8577f27d3924bc90048c4d39dce79747e388fa944dc1ad7c448604d9f330785798feb7aeb5b42be68cc9d5d3e3d40dfd7e265b5117f12cf4d472f1f5c17df7fc10f30490ae0aecfe226a5a700010a56bfc8cc4e4bad1b1a2c56b50e4351d99d78ccc59e06cbf5aedbe1e11413d9cb70956c8f0ed219542ef40fc3e801ae9ddd971087e8b5edc01ea0d3b92c621e62ff80617ef58d67aa300a994f508fc640f2e40383573407dbf9a782d5e7b4c2a48ae8a9ab254cbfa854dce4e911a880c78c41699dda4ea7316817410f0b9d3b229e7b3e29742bb7427f7d01de33412952", + "3c2c5325b9da53322d385bb4213717cf838c6b2a647faf21b47d4cae1dd94cd56ef049c94579f322d483d60aeafd8597b03d519911009bf26ba75f65ddc2cd0e57dd27d97b215c9137e2b2b6fa396d3c73a447c896fc660eadaa222203f1649a7c" + }, + { /* i=3493 cDividendBits=3849 cDivisorBits=3330 */ + "01034fc24419320412289f23874e33bc1af133febd8de21ddd1ec7d57adb6f7984c8d2320c50a6a32e805c644e3d449d5a888ebb9caba476076bb005569af0803cd4004f146e94582bcb533d086ad08624e3b3cecdc665b860aa605592e8def52e579b5ac0db551081a750b74dc12c52a381b00edc56ddd3ed7f74479f5e4f5a11db29205cbbbdfc8fa694e226f71dce222492b6bfa8686e3295c1ce35cc22d76a1e358eaa465b143020402f91099da76ccb9bec7e1a120136b45d8c3273bbc8cfb26fa7d0b305a8bf727466c135ee742eff0d77474a83f07e553ef4fda11cf90cfda40eead37aa01e080304a6b32b8847c0336c579dd28d0299c95e61fd9f0b42082b2b5bae97a7f225184a564dc1e589e09136a80b656f301e141a0b773e4e7ba95789f0485905c418db201109917cc3e76dbba6da912ff2162e9041bed42765a53263cc5cd85e3ab33825267885333bfa2c966a200ff8fd7e1e9892d3cc0566ac8b7fa3158112f96cf248880691d04d56e9dde32299c47903f03bd724dd70a27eb58fe65e70ae560c19bf60da2634057cc00232a3cefe04c7665fdcd46c26234a3ab94709f745a8018a4bcff92f094f56457c7da1ad5dc8991147931ac308f24582cb740ff275dfdc3f854a5eb2db8cbfdd6043d4aa5b23f2dc0638ee1f93a709", + "0288d7d1679a7ea69485a2a3b3ee077e076875f5b4db9438b363923de8638c41b461249ae76095308f6a1eea6b8267363ec92619a3c143f9c1da7913a70bfe603dc1e022ed092ee347439f89452f1017f340b84f2eab0cc34aa94c9387a1474f1cfd1f75af1d4cfbef1a6373a87007fcd76dd4aa33f835743a9919652f93cd437a5e20ee065f74a68c28260b42214f4eb03ba1668360d01d51d03f49dd89c8db0999050fc6d79626cac6ed8aaaa7b7a94a946ef04535738e7342089cdd6f9e93f6ff7b770de06e6add7f7cc8225306e514f078ac2d7cdd4a2cb9bf1937f94ee026ca0afebb976c3fb74f874eba05ae47f95d4b00331313b5152dfb8bfa0d8f78cb4d849fce5d721045407b6dcb4fdfacbdad3e3a1157ff1a71dfe1f9320fdf09da1290bf0ec14f81142e6d23d01473fba3612bc2821a16537529f1d53174a6f0e88b20e03f1702588c2a90e3bffd60e64ed04ead5a0acff2ed755962974e5b089bdf5df773e7a9f198e6099a4a3af67fa71ea501d40abe345139e6d845feaba12cece287de552dac94ef24d911a8a509b4077a260b7186062a2b3d4a2777659e8c", + "664f9b8b16c3a83f8246a3f309ff0474440f98a01b34446c2d901c972e47967078a12f6220a23cd95777ee746003b801ec0d8fe3ad33205c2bec066087e04f81ce", + "018f1205b027fd3b6c78e697e8a7b316f7dd05b266ff9fee5dd27acaaf83bebcaa7bf8e7bd49b19b8adcecfe82762a6026c08a22e3f359db60bd5cadb501c513f7ea3ad89bc57c0c5967537b989f96c347f679426763314af0bcd2b44c67236785114fa7abfe712eafa7bae91e9e08771ceb6af117e77fe72dc31dada70bd6a14e699102df8b4c8e67b2d00039f46a990a2c4726ad84a859f6d50a7086b43d59a690eaaec4551083a86c20de22c9d7400402a582fecdad4deeb0b3689041969033f074d06e1f626b9ab2ea2758c777ee9ee9a0f2db0b9edd62c7314b1083d5d67b0833de54bfa6cb081444872553b70c6c0d1b216f7a17e728269f1c503f969c9779272bf0395a91bd0d60773c7d2fe2de366f263ec208a5502b3d1c14a991096d5eabb4bb1e4ce3515474bc574e6cc54d7a208ee90d154e7d8196f4088a389027dab6d91c6799db36e4d0dddf6b477c9ebc11ec93b41d53f01ec1f6bbbccce282a959e2ac10b9287b1fad55f48a4cb55c77aa940a9ec10a05e566b5a7131d354d7bcf50d3c343ebde4d013a4ba8a4cb398315e8fac9e2a1c8ea5ccb1769b58661" + }, + { /* i=3494 cDividendBits=1038 cDivisorBits=829 */ + "1954962524bebd5db7e35ea9a78b5d9efa956fafc4e176d5cd55d9607a8c3cfccd161aaa9db7a467b20a8f4ea2580d0b102cf391be88e26b06fe4a3fd16da090483414e3e1c013720b69d12a03ccb8bdc9bb22807009b382cb4e89bf947b65e3ac788b4953d0f2609be36cad136e43c1fa973c93e9692cb7b6fb471d89ac7ae9df7b", + "11273f3ae3f49b94c738e10db297c1d4d869bcbaee494d1c4fc383ba0482c29adc5ceda307bdf92c1e1b04038ebce22d24d7c34bd0c912b492da92b3bb763e4c9752ad0e4ac73dec2942103d0927ecff216644f7f42e9baba8774d4e26e6dbacb4599f8c1ed41b52", + "017a097d65823a6fee003e4895508e159015b9e8bca5c0a9b8199e", + "013c742648dfd13a18dbcc78a64349d123a88195889346963de94caab9915d94486af30726b26e54554810b70fe4b6095f7333187891050c12925aed337f49f49aab855f2c6d4d79fa9f2d2621e9ffdda61b99ff700df1a7606c286dc40e2c4ad53fdc31f86600df" + }, + { /* i=3495 cDividendBits=2290 cDivisorBits=110 */ + "02ed66a31aefd94c245cfc1014864712b025de8cfee1ae2de44c7ea1d432bbe8665fe39637b4ccaf44e823cc97c71336f5ecf21caee69a8b83f541ecfe1c51a06de8e2ee1365eab957e9c5a2cd46a445811e7b8ba934f94ac6385ab1dc0bcf9ca702b558fc4fadabc067c392015ae89f53d31c13f0ba221325e21c8b90dfb54d9eafb16401554d3089c2c8605870503ff03de65a682ccf745a771b8099ad8007ade97fb62ed0eb53f787c4dc5717d053ce0cca5480034f660d08ac6e5cfbf743aeb78e7cad9a1c7470c859bcf1a390987e0a6fd4446b87473ec6ac95dd043050e40b1b29cb82e795d857b5c7a5ccdb269e8084da487b3c4996870c121845dff32bb1f3b2995cc2454187c3ed49cecf7cf256cfc7b9649aa0c8ee47a7741ebe", + "2efbe4c15dbcb2a299ed1ab473c9", + "0ff33ca6b8f5ce599171e244e25dc1e3b064641758c49a90f060e2e6b674acb4dbc7b2041e19500dc542d9428c02d1d06532872ce4fb1bda1112e32066ad02fda48845e4f362d3c1d7603aad7dc5769338fbe6ad76028037895acb6ff16f0f66171d74085baf710a5fb4eb8247c6644087586ee9afb248fcd4ade1365471f484107ffc37c56c7b786020a0a066311ed8fd7d43531aba24e35c95432e4cd69b32164507ce1394e25e8c4783b14d57cf36c1e840ede59e2bcd6e28d97b056b90285746fd0954b39c23a1dde60ab2414838387998d6ae28659bb4e83d0857a3bfee890a964c989ad72f0eb60c31903b3d1986613b007e7ffad94ef4c14939620ee7eaa40cab926b08d55544d5ea46adf73bf5", + "0f702a374e0f7976dfe4f622fc61" + }, + { /* i=3496 cDividendBits=1038 cDivisorBits=200 */ + "068d833187e45ee211c3a25b850c74af083056c97e8d37ab4472cdc04dba50ceac2ac7b14083d15bccab23892cbcc2fa59cf1b85d341bec3fe1361e581f146e53ce54e128687dfb7aa3953de5634bf9c88bc424843bfcc24fb1e82731608db5887bc2be728a20e4e9ccad0ac8e7a38f7cd0975bc49e4581395d99cfc062e94072d7a", + "d9aad3db6d8ab62dbfa84b5f0de4ec09fa2ac42eb99342bd1e", + "07b4ef16724001680b29bc7d550c2bb8e604b10c00415c15f59f377d8ff2f0fcf3b240343e235b59bea889622700bad5a2ba698c63d7b005e89559da5446892e3b406eff784ec9ccb3be429c2e2815623ac391ff44f04d592935bccc6cf37de96f149863382cad2c0f", + "12bd2da1551c3492f7ba004edbbebc714843316ed48556f0b8" + }, + { /* i=3497 cDividendBits=1448 cDivisorBits=1091 */ + "4c37c08e8ea163ae576e8f752c994a896ed9e3e6556984abd39604f4edcd3655f78974dcd5effc909cb643b2a7ced19ac5542c89a648de73c782bab6aee59fad36775cbd5c788b5620fcf603feb7220e3602ac7b567631b828bc5402fec81b5a65324476d4b76f92aa7bd45253e6f461b2ece728bfbfc26edca1a3a2c00dc3bd3c79ff46a4b3adc83476e78f2efea47c335889801520e212584d58e2e32afe6c9fff6716bcc7c9d6ad90db8c0e903d2d11ac1e7c77", + "0588627efe18d68eeb6bd45069252668a89abac349bc5a1f94440952fa9f698d473af3c7d51606ef2a2b8605a75ef757ac1ca8fe0ef38faed56be1380067c8a9f8f49b1ad06f8e84fd5e64e710ffda289de458254625518bc074d0318669a764987d0e87db510682fef1824529374d2449cb837760f17f39fbe5b5da69c65b5d18b8c975da7f1cf73d", + "0dc697164abb4095b63c7a544535781ba243c0789f6d5396c9c1d2dd0bf4b7a2261d83aab120e7b65f9ea00332", + "86318ae125c20e494ce102b07b9af190faace2e66434b670321e1aa3e0276b63871e0b90800e22c0b7df23d24e225034d93847e8cb65f2106a482ba287dd756fa2abfe94891c43793d01666cf60f08f983923532d7155cd0977bd82c48c17827d787d36296243be9e76577000fd1c07aaf569019da89a9f1a78f52b44e6766be1def289255707b8d" + }, + { /* i=3498 cDividendBits=2352 cDivisorBits=1933 */ + "eaf540aa41fc440e18f05784161924a9eed0c1342eb01d09919892250718ad8ac8b4a4f60461a47629a91a1d27716147ef8c1232dc645c891de7a479839451bbdb847c889e316dffb8472026836474105dfdc7748582165a1d952a40792d3219428b36880c150c5cdc2112a01cf1b51b5deb8193859567572978ec4ad41a430ed448cbc0eef4f6141b9885da46901617da6889ed8fdbfab39984490a29cd0262fb6993a5c073c3ab61a724447f6209c9f5df7f0266a04f7a70de18b5da68c55cbebf8bc5da3cdc3033092b72a9a0186b1c74380209ab1c9272c358fa7c4cf8e32e987c3d73a353f3546ee71c2dd2aa9d8e618f9b458ed8d74c4a807c05bc354c4715d3db6c47032f4b6b63a972a869550286f2eefee4db1bb55ff914f112f8b736268e85e85f", + "19d621123ce9639aaf1df1150eeb6fecc239f6015d7be20ec28614a83633418c81698e721afa583095965ae223dfa455fd141d9b3c1d490c9930b385ef9a549a5f98a223ca24edbb3aeeee06a314903cac012c63265fe6da0822e5b8265f883f38e6c097a1ee41f8086e758e61801e5494643929a3ba5ba1015c9fe194f443c608f9bf53714538daa2b9e2115b129513a9507336bb6ec3e1352fc764ecb80bdb557c1c4021b9b9866dbedeabf2681c17b6bac6d132cef7075c42878c6e83ed2015323a0929060002e3b4acea1160e9a6233e481c1f6d1bcadbe4870b87e3e686d19a7e98b9e2c9c764ea9c56de9e53108134", + "091813f80518bc0263ff5387538cf8dcda46928eb970cc7f514de27d8d6c2a902a9a8864ca46ac0abaaf6c42994fd04a4f3099f798", + "16b436f2447ba4d0cbd139eeaf723dcdf9eb8833d118f349006f461ec51c034bdc984e8d5436256924549fad54b808a3d6755ffbcdbf9efd96208e7e5117deea028a7a5fdee319b85576625a9f710ed5a8f0300abaf4280fa10556f139f612f77dd3d1d1b66feb2aeade87774ade8c5806691f3dacae5e22bee3b11295cbf6b10b828218f978cc0423ad4640e381c54fe295a612d3166456fe2477eb1a2c275a53bada1a6dcb830bc31e7ba06a48c478787e9a842f4671c6d36d6922315bec23a6addf45541ed5cdc8baac64e2bd379dfcec680add6687e1919a61a6c451d02122586944a6f76f40430b2a74a1dd57fc057f" + }, + { /* i=3499 cDividendBits=2750 cDivisorBits=2065 */ + "2071958cc7309ed65bffda35f67fb6eeda1f0b322f121df6781e4f7cb0523a524960ffbd4cecb064e57e6952e3176e58fedf491f3e0a4a4a712a696ad4dbd087c963aa23955f139c5379d96d9d9b3b29028832cc9b2ff3afa9b334090c1152104b65140fe917c6497bd800b140198b85df3b18d7595117233eaae838c36fc7c34f19f1e0ad00b6192b979352b4172d1371c6f24c016c53d747932b45aa9b7ea234fd42bbca4931e8f6ab6d06675c96b90fac8bccf38b2d86021ced618c0c95cc1027c9933e07408cbee6dc29370f64872f65eff043af74a46b4c340134fd4c97a1954e3af6d4676146bec0831f6a523b57d082ecfb6d8f386ae93994b7f6e9b10b5a148e63b729f43bffbd2cc8e55af5c234d14aeb3dfccd60a1be105067aa8fd2b20c3e7f7a390f6f55663657caaf00de3ee3d7a6dd1f00a8d955bdb4b2f31ef7813535be277df71a1161ddac29cab5675dabec55da7bef", + "7ead2fbe5a557587561db42fdd3cdd556923ef9b8d8d277a977b1c82e28e1ea63a1aec03c86b432577e5677ddf874a02ddf68233d2bf2e2c7da7e937b33261bb36fe35ffe4e4f65c0fe4cf63af7ff710b5003eb8d02b6b0fba4d00cd7453a1e622d8688357dd04bf55a36d00a04ff434830a92a76c79d3f8bc51fb59a8197545ddae59b48092530de821a57d5457972823e2de019b89e3f044bd221df331ddbbfdf725964b54a758e93549a294ce25641b84dc9b1d3a5d77c6876fa1329407751bf1094010cbfbb1de86965d5791a995f887afbd67454f36e4103c11e1c4e76c3c0a2f81b07a15fba337e19d80c9247cf31f733cd93671115a5b081bd412698a3088", + "4190b7ec04d6daf6dd7c2ce1ada4eb078d24344c3901151c816fd7b4af1ef4538e4c729eb49249a4c7807022a9337e34c64965a354481a3f3a898300e4d1a41370ffd9f028119e84ee386ff805043798143c38330624", + "7498e811fce132706f468451787932facfbfb680b0d7c1b2f16b8a5be17a9e2a9cb8541fbb5c414aa13cbe7256fd29aa27983f21162bc213d6a993c3d00ad5626d2f5f4228790fb7de9152ffef411509378c6c6847d763203ef92d3a795eb1e5f477725b29de3c3631d0e30aa7275c7e7d54e796bdafecd0f481b9747ffb77126aa56278cd0428c32a45f24aed42d75f9b4d17c2d9dabc7e32738c78cd7af8fa016bee9cb13bef8b40a95f0aeb24bc2e962857b9a5d5c164f216aa41f80b91c2b04d8686503c87ecc9783883d70e339d4a05289c0cbc8b17c8b947c48fb797fd98f64bf6049cd9827c572f30b23717af79049b4645452c24569ec4cc29d6d63078cf" + }, + { /* i=3500 cDividendBits=205 cDivisorBits=150 */ + "1d25360a4e900a94bc942e405b4874d5b07fafb40d91ec5af2fb", + "076bf209df7d694c78ebc16b5944dc0ff547b9", + "03ed5431551af6c4", + "877c52b837ec60d2bf0d8cc95f9d4bda4357" + }, + { /* i=3501 cDividendBits=922 cDivisorBits=330 */ + "89b0562912ab48a0b3235178d7ef6d9fc2e830cd2c749739899ddee944052edf8b46cf496f655f7869a61f215d55650a51e03ef2c400f153f693c878ec0e003d83f9cc297cda4204635596f49ba54e8da24421c490b12295d0a329c1a2571787b795bb8ded4e291299d2c422bce9ba42ebc18a", + "01048b9ec3c50680f445d05a38f7f867797922a037f48760574a60bc67a0c5007818bbb294e3bfa2d90e", + "874967c7d6b87ff9dfc742db637c654981bafdc23c82aff282a276464acc2cd049751276ac836ed7cca77b4d994127ead627954132deecc20191df0c76b695c61b9b213bf392279b85e8", + "cdc3ed4fd0b8ac923c8ef09783beed365cfcc1f78fafce4b7f3cd655915986223fb652be1e6f18c6da" + }, + { /* i=3502 cDividendBits=3124 cDivisorBits=2618 */ + "02fffb4712871faea2cb9073397c8bcec8590443f939cb3fab3de5cd43e2493c2f678ace4ae17eb52e488fc9c85c888fa45675996f837a4cd3eac2e4ba3b942be6e896283f73932146b2af7e809df1d1e98e4f41b26571c8783ff566cc18eed44d24fadf34f9a63944566eb2d3ffb0b74aa1444cced50f8f7edc479307b39125f02acf530b88a80233f4993615de93229220daac4b36e05df7949f5275526f6e40f4ea9d598ef5306327fc012e9a3e044797d1224a7b5ba14eca76d1a969af7655d91bc5b981080b8d07ae66427266574ad33bf6b5a5dd862eaf468f52e04a22f8434ecc13f672fe23e73403c7275eaf51005f962bc4d97808c8acd576ce8ed5207d26ed016382a003c83ba2a51ef01464fbbc2db916717677460c0745087ae0a6ff821b6114731bc967dd7a687388cacd6556ab6a71caf4165bdd23639db30886727d54905949799e0898852bbdafa58768599bb78efa70fe516a4e152d734de217acddd831c4bfaeb035eeefeac03d590e688da18721a20019dc0c024ded8a52547fc7ec90c4", + "0262f89347d39478b1921a238ce5db5ef9d39281f15d5963bb6557caae4af54f3f88e6b7170a98050a6402103ed928bbca11e1ba9667a085b41e36c146875661e8eda20b0d1ec8aa32c8f59fdbf889d9564b5b992ab71cae92b9f23259d9f08f96fcb9720bef5852ebba476667037700343a81449c56777915478106ced617a21c10bc97beeeef8b0328bdd83856e4da7be5fe16594874e8a6cdec414944c213152e6e284e5c86ed374d30ef0b4cffbb0c5c30453ef1de5ae3f3e848d0dc813b2b01eb1fcf7c51a8d09741150727155e6e639ec04adba4e4f40e07fd726406b9ce200e9db6789bfd2fa4e1a7409fd3b1bf1f05dbbe31db83b28ff31cd6785b78056e9ecf4fdfe934a4da40e2e978a7149a9adf3dc286e00987747ad97e8336903bbb4fce210940e09fce38e6db44e240ce76ad91750d0da841d8586c489c61afaf9b2ff24bc825b2", + "0141c9c9a2d93fb9acb12369aeef5c59530c6350cdabcdeff20429beea47c5212569e3a0483420fbe228444085185f27ecac3654d964957052d9a0c99a2025dc", + "7fc79ef60f32c0bb4d559628db9e15236b2e6ca74c05535fe147574fb24ad6452df49fb3423e79147811b5acb7cd058628bc8218aaae68befb2f711ab2931801aa8313f7c3954fb3bd8705d039bbfa47826c5f55bce3d988d983acc417b4ba727cd12dbc57f717b438e9989ad3177ee7ddf57a11fc426fa76b5eb13d067b6743765474b068ef3a518e7494678d7e12fe134a316e401aec288ec9e170f49b71f83f194afc3be835166c6936cda86324c722a661c972b97fb2fec26eb8b08a2cc7306b5bea0774116a752fa22504245ebe5d9909636d6555549bf790f54c55f69aeeebfe1cbd70972bef2c75df4d07d4c256d1a4b38e889a6b8bdf197bef248f796c91980fe23d8ec79f69b89006a44bb748add02f153c8af440aa51cb22c328eb5fefe1d74db60784a5c057f49440a19bfc971af803275efd2c12bec565231de39062def03971cc" + }, + { /* i=3503 cDividendBits=123 cDivisorBits=22 */ + "02e9a4bd91f2e68373851deab58e39b2", + "20142d", + "173e7e2dd183d3164d6135c35e", + "178a2c" + }, + { /* i=3504 cDividendBits=3675 cDivisorBits=3003 */ + "017249c0f7379d7b5315c94f7f9f88023e24c8b597a94f51d54e84e394d72b3305f3078702399bf1cab1f73eadf81e94df703f07e865f16a9ca10a0a76ea3a819869b01bbc42abd38bbc16bea46ce9824d6f7bab7d6dc9e1a8e9e4b74c7b69ac01717e9cb97f21bdaf82fb83ca643e6b88b36fc0c9696117bc38475bb42edb79725f23a1d638cf3cb0940f40d0050f655dc2e8803f88932b8af037640babff25391410a7ac42f93e097e064fbbedf1e93fa95deb18d618e1986f3b82db39c2ffed75feb062beb6ca05493ed292b6b40d2aca648f325c9edd3ca18c734d67c8ab0574be5efdbcc67a6a31a4bd45d1f433308c630c0d4ea31fd887d8fe6baaed866d0e379015de321588f649e7c2df521dbc024aeccd2e8e59d51f54d11354087b436b15fb1219500bd24e4222cfc37e0b2a3775f1794c4904a243b04fe96425dbf805318f1e40ec5603e1aa5e4b9a732dd2aa8160de3ff4212b661155af873d8fdb9f62b49aea6b45b9903a5690a0f363b758d6abf942b7a157f017fcddd4299470704b5828b05a5baf2fad85a0e806d19bcca049664b3b9d4eaeb770f9a2cab8697cb73fc1ed592415f1aeb7b069c95cc45e8ca0d9fe886dc5bc456ae14fcb9b6f571faa2c2e0714cc918e70", + "011996c202a0f21e5a4ca4d8e80fa21d5cfa33454295c39e57e9600ea987e3666cc71b58723e7a1c470c2fffc477862bfdb34bf3bfb44f32495fc0d2b4f0fb11fd17d56bbd9109543bf998fac02c1d21b1cffd40b114f7435cac6b0f73ce6cfa2f9a92de8238f460963c67e91bb6f17f07671481ed76f2a92fcd9ce72eb267a4d27cbe1bf8ad5daf4954d04c8433a0e9cdbd920491522a99cb8a23543e1d38013bb3450c8a27ff2c17b7b92f38a9aae3c37f30a31464a5842de642b6e45f7ed90221b796cc4b7e5980a9c644a7f0011e24cb13f2bbbd72d1cedc7fc3d601820f91db941b2c1341fab1f93cc6a4a9f66bdd7a3ab47a49c4146af5445864bd42e12fb744a04be2b7994acf5b417116ebdfec980b492de4e6ea66ce580c54691ac7a9a43cdc40183254917278988aa69950b637eebf393967fb86f4a7a64f9f16ee8ba9b827bd7790621e6ba99e84bbddf98bda0fc80d3eefd863e3726110e2d490fbaf226850651b03dc97e6a3d56c4813026d7a4da4027e1d", + "0150a389959aab1a9849673b7519d18c9bd564f0f516a9802b0a6bfff76e630a8efa39d385b1b521a151aef025b40c4f2ad128ed739fa298d854a2dac25febb217f1a7f14f2507fe3ac7d47a8969fccaac522e08b2", + "010f308ea0ef97cfa9d6f5902bc33f206515f65c5fe7264bc9019a89ac17d8f5eeefe24f875be7654f68bc5a2b288734d41d59b4f9a80f2b75bc3847e2b7ff561351b815b10743e4dc9264e82ea3f951ba90ad8ae93ea3afd0ba61a735afe4ac40138a205e14b5fb471c876d4cb03ce60a76caf2ce8d0f0011157fef6547c5acfffef84129372684aec2417e72fc97b86077ea527de907c470051d0b762c88a85af1f33bc855f1447278d9640a96d0de5caf47538072eda1b715a74ba4d3d363d429ba09e2324ded083fca6e5f963cc14d02e332a9db1d6ba621d3e1ee2f8198f36da156fdcc42c4c6537d804e30337dc548f9c76aca6774772fa74e160807cf6bd65c542d3137500efe642e604dedb783c8ff0cfe2ec47141af0d7aeb2aee8b479e3042856222926eb42036d5726d4f8a4b7dd5eb18ddce985e05f65fe283cf8b1686debe42539eebafa9521c13bc46d3400872cf7fba31d1ae58b63b080206d2ecb4ffc510c968df35007b6c65b23f0504ada4bbaef646" + }, + { /* i=3505 cDividendBits=644 cDivisorBits=398 */ + "037505f878c1d2073a751b09e0030b5fd71fb161840519f4ac5b7a37eb47ecaad5113b2267f1c14116b221e970ef7e5b6ee07d3300fc746666f58352e0e0470843d9445ba4fc52f44084dc722e65c86a50", + "286963cfd327d2235c25cb6558265bd74136acf673e9b687008433b17935f464a08901078a1bcc0a538b37b7068d07a9ae7d", + "15e672a38c6c62e59b990c7d48fabec5c8ba0429e392e4e8d0dcaa8cf78f5e", + "03a55ebf8431da3ace55b730b2b5098169a1f37d4222c32352a3c607173c8f50792f13949180cce56c466a8ac7f81667856a" + }, + { /* i=3506 cDividendBits=588 cDivisorBits=315 */ + "0b9cbd4586cf7a4f919bfb133c99d09b8cd8f340b01adc83a9aca82d3d4debfd1defa9418240daf2f77e13b542206aa8a21a6f8a83ca4e7e2e502fff005b4d2343fbb68e7f24baf6193e", + "01106864fe9a09b1503fd10464d946b33cfc82b7aa806d2f008769322c760944aa74f26f4ffb2c1f", + "0ae9af16d561183e4dab7cbc19484c49118587bc80c2ccd5b5a51d21284d7551741a3e", + "2edd73287c6793030b38f733cb46c5a7f5df4417470e9a076ff1ef5faeabf77cf5461f0c9a43bc" + }, + { /* i=3507 cDividendBits=727 cDivisorBits=134 */ + "4d8b790b167c8cf3b42b957adf7b3cda70f50120cb367c092b12199c8f3d58e09d83c4cef15c915e89f3b2602ccbfc0a8d25cda008229585b53ff7c82c93dc9ae31b7e00013067d716d0cc5ee053d34f732ceea1162b759dc03efb", + "2645039d879c3ec521e5f44b3162085407", + "0206ba255be09cb8a5c2045158798cc93aef7d6fb18f7ed242393d411e0d88d69b5e8976fdccc2d6bb83caf7f4ca8cbe5e12c3ad16101f9a908d495b03adcc247a09c0ca184e6fff340150", + "038e5b78e16dc4b64de7e6b437e865f5cb" + }, + { /* i=3508 cDividendBits=2392 cDivisorBits=599 */ + "d8755e28d7264f9abae65e0c8641281c8546c3387987525366d4b5dd7b61b5bd33f600db6bca1bced446ed584cef2b1f16435faa929c779a9b9ab5dbbd47cfd3b6e0c8293ba6b7c232642d1a6caf1b45823a1492512f0baad7a0a75dc619e7f0d54fa0db20d2bdcfac8882049c79150c6953eed46d5bcaaca5fc91ff0e0ecf66512efbda91ea3e28b943bf526e0f7b130888c16f27df07cb293f3898849d7daeb12e8a1ed0c7447dcdeba973f1209276fb032215378527e6616c5f1f1844f2004c0dcaa4af0adc47db3fab31f418c5675a730d52396fcb9b834b8b059298da9925ff3a183763a904d42da789b6d380b1d931c8dfe6fa21d250c0e66aab9d1ff4ae1b966b1e055071a2bea94dfe0caa7556396ceb354af5675026c633188f0b6e7324f2e1469e440820534e", + "3f63869ee6f56c43b1e5ace51022f3b3b12b2b869c91f9fceecfef85cfecbdaf0309777bcb03b9ce2556a5417141307c473296abdafdef06467eace8f240953c99c7180e7b060815b13ab6", + "036a2ec4912f0b106608d3e05a52961c1f01937177bece89e1ce0b12b009a61162b61ecbfa949c6c8c38b1cd03eee24597592e8a33dec498275dfd9125c04fb9017184316600084923d3d06f126968a1c958ffb142729e09aa8975e48616427fbd64489f34a156cd89cd7dc6d17872dcf6b4ddc4c38a3e52fd958e77db36ba63aa99e715398c7f8b47916120aed6a060c29e36b3392784b31c8b3d0ede170575d09181b66473676f9d64cae2cf0cb260ab51c6982549f67bc063be8883be72460917f4d65f769fa531ab3df5dc16660c420fb14283a51461b57b7959b08d7c6cae", + "18750944f7e634d6f6dd9c6fa9484bf5731ce4ee3e61a662c6e91c8fd7920c2bb1e34aae8eb4ed462459a601885df5c7c63c6d70ed7d1a538a816dd1b83d86d69e10d209f8594fd6bda39a" + }, + { /* i=3509 cDividendBits=3403 cDivisorBits=36 */ + "1320517819a65af360e17419e4f4530aa385cc98cae13e206d6497433523a26b20afab89ceba836263bbad44e07e09672944d405b7f177558e048b1ec6a00527c0dec2cf7543d9f83ecc076e56b1f1f66a48968cde93d333c591fb63835c6a1b6bf7a3970ab0e68efc88228fe1f4c651dfcd87bdb72a98795512373d3d55a5fe7acc91a25186982b30d7d3df3ffb748d20f0b6e99375abf8b110bd993c3ce02dbbfecce44b70d176672ee66662128c36019fdde81d1097eb4beba217a882301500f8130c5744290587420b811af153b837d4b26e0286cb8f62358fd59e1019cce5b42f9c9b25e4b39c46d6eadc0920e5210f2b006374cf6116ab5f875ed669b49f9d224e4fc884f0a3e1f960b2db3b27783c78a88bd7fdbdcbd10e7be9c721cbd5da88baefa46df06fb0e5417a14410440c81a728dbc560ee08168c11997e3f8e9eacb321ec03b4cb6a111cb65ce2eafb6509f4f8903c7881174960dc95fc4e142568bdc0eb17f7bb9fa75146939ccf69511d451e56b1b23351946e8c4d22077430ddf4294c4a583ce903cd3bcf961f73ff512e55acea3830c1c2f28d6425d177f781355103273d8cd", + "0ce37416d3", + "017be604f76d1f48b3be6d3779a29a6fdaa3b8907b1ea52d0b4aff291d645f68fec5c44966527e139eb1183a4499e0a18806eb49210c5c288b90b636affd01087f0fa4f5e257010ad80af7d9479dcd1ca00edd1dd5c558ae8df1c413506e52aa585da61328f00031a091ce2a427ef58b0cbaf857a877d0eebc1d6e08854c089e50e8bc501b19645c202b1d898e5ca2f4ab78f3cb56f6c112f5902815708a0c97d0d88f39519bcf14f1fdcf2367c0bd03bf1d08c988cfe43540dc1db6306b8f7b867b03e00add9b6eaa072b2dc44b42a8ea288470cabd316338ced90084e75257daeb7af8695fde97230c2514574515acece719186f9189047707ecae14cda25b95e5806c2967b864e1f4d22112c7f2f039ddbae0318aec09a0aeaa881fc675673ccacb45f09572103037ebdb885c5bd6d1a0f00ca974861c96edebdb2b86c8f1c0c1ecb77828584461aeb09b578d46ef2e8342ddfb61e7d5f91597834bd1c52fe8b424c32be442d86594a8e7a9b9d51b044b7f608b8fea11351f41e1b17ac348a0e08e1206ee242c53e4441adbbf13f89a0ae6115209ce019216e574bf43a18b82e18d7488", + "bd391cb5" + }, + { /* i=3510 cDividendBits=3895 cDivisorBits=2579 */ + "1e7b6ccffbf1330f6cf53eae36d5fceadb52b6a16ec9494e66e8b8017530b86027c5cf78c15960800614da8b81bb354387967da1d42e52751c9449f79221a90aed4b716e15a44b845003bd99ff2b117b2753f38eb54c391a4163a082c84fb4647a551ada64a9e18ad800ada2c6c5e6d145fe5a3f5162aa27fa002aa49782ea57d06eaf12669c589e7f5e2d1aef7fa6b691587e47cd8a3f538cc5596f2c7f3c507fcbcbf8c473caf3f833faed32dbdae938b0d298211ef706fb3e75d4e3c4d62430dd93a631265e00445f25cb6706a5741c22ce7f1e9c4e497514937805c79f0759cc642dc5ce6238bcf954bf75b6a698ef08f8cca2c38da5d1b5d1c53be730b6c3df2d271fbc752e3cd84646106f4c2c178003082e2bcbf1eefa7330496d0c66819380615d4b63183b7a46c1dd3c9b9db2cd209f3a409c959ad26b651317cc04c6929ba9cb03d2e6595acb8190d268f68bded6c205b07ef6b442e5f11f1bb2d74ade4975c55b26b7ab6a77d6c4bd45879c984d1d7f5963b1e5ea3cd90cdaa0f579ae1144e9905b11788575e1a845cbc0b7860da988fdcb6a924bf83f74142dea836fbb5e73d4a7959689cd7fa0ad0b78d0b402def2e1ce32e6fc8f4d23f2431e31af6f5bcc5e821bc23b7ac4559b1c19e052e4949f259251327d30d5d4dc09973bff2e781702e6", + "031245224848b92160dc3bb49af5259d5a5cc5c6fe334b8570d25a34f85660e453bd6a40a6eddd122e16b965c0cee969303ac15bdf5f8a0955b456a9934ab5530a8ef34ab4b5eb52ba395871bc3a0e1edb2675bd5532920e658bb8b8a4c7bd2ab17488862c2300e1fcf6c9f42f77e79c07738afc368a4d38f46d3ce277f620b075c11280482547c7b1b0b0632f755ec917e7fb75cbd884c1bde9d255173261af84777074654c5f85f993c1a3846112375cf690431caba7f0e511b678536e2a10b88c66bf7672fffa6d155e08ac518d815faf94743d8aef1525882293d82916b47b40bfc5bc2d2b763548b510c92f09b5682c265ab2f27952c94fd9ec601a1c6e3570d08848e65c19271aa20a8b181aa9cd3c80fd99946288e066d4094a92d4fea70599433c2f7024ee4885fa4524d944bcdc71dfc7c0b8141cfd1e91db1ce9405dff1e", + "09ecb35ba717b5b5f373040471974f0ed1879541de034a33720eb71505c920fc8269f596500b87a7903fb7cad54bbfda42bb9566f5ac74a6e22becd485860561e31d8951771aca7ebb21a52a955a7805b22e9f620c544a8a1106b3a1590771e822231e9bbb620200e43546b6b20ade25ef142c01582a386e29e4c3b56035830ca090a4827e385fd02336dc66d6a325e59a63a40a2e656a4ef3006d53ba93634bd716270cff", + "4798b0e46655181d11e22855f4765d3d467f2828e87eb19ceac65400016b2f46b7094db16cdde3c64bcc84a6077593ddeb9692627b3524ec2b0fde84a6d645ae7b3ad93909e898346d3c5cd87949cabaed0a21d7336b01d830065263e2b970865a1d9a86c77936c7b3e3771fca920cdcdd7504bcbddf687e17e32e3d7d0322cf2af1e22804ad3547734cbdbb924e0c5c742ea41551ef5f5f6dd43b8b74a854bad886c9980c604db0191928be4e4b5e75eec7791448350689e498a5e6c5a109cd1248b2c21e445e6c8fa5ad36355fcd7cc23a7d31e2de2e8f632b5f15d593e312f59df85e7fcc7c64c519c77555d6ca52f30104103ae64b04eff086e7c0a4700f045abe5cf80a0f5b0a338180efb100d3c16ceae94bddf22dd65474e0d7454d24dde2489d739c112ff9311cca1ae0eea393d683143d239476ad7e1a45556280ee7c04" + }, + { /* i=3511 cDividendBits=2168 cDivisorBits=551 */ + "fab13e320cb8538566e42a059d5faf3b0243378e60630153c006caf2f2081f0347bbdd9b8e2cf331178505a12d8b02120b2b496f5b9c22fe8ef8a79382b89c4a7bcc7e47ec0763ece036c5663abcf7a28b28aebc942f2be59b9cedb2ab00c9f1aa26689bbeb63fe474d26f4eb61200a799706bd1882a19f461cbda720f9ad0062030fed83ecceaa7fb058f8a89da221d8cc6724d1fe392579eb529a41074d1f2ae380f2eae4d4df42ee1a6e44ddc2a4ecc0055d2d7cb64028da33a5b5e1b021e48b87ecd5ae801db10b7197ff604d19e81b4e6bc2f78bfe0d52065620545d13fbe2834442f5c8daf23de01060d9cd21f753c6a811933c50a0b8dc2c73e4fb53b52041ed54c13f60a1b2109215ad029", + "4f2c728c3304e88614e0cbe298f1a87acd8c8a3adbc6ea743a1e518d24b714c52931ba614e375b672f421b8a78f55fd5bd4a1e49d817920844fcb956f04cfecc100d9dca26", + "032a96b4270f9f4ed17d5ded214ded4042dfff60481cb787204c9cc555ad43feb1c9c88e88ebf7fa19b1a632a4dafa949792d14817bf1d06ecfa9e2eabd1de0b575a9b925107b67c62ee3d89e7d96b2a697be3fb50c90c6c7ff19f20dc42f6a3826ca33a961515cc16895983b280021960e60eb95a9bd2fa605752a1d1dae45507c993a0daa2e898c94278356a298d1fb882c5d8b72e20390fa4f04e5d38345b60fcc3dfa7531b395e11558fc01c7b34ac3053739db1e31de27b9d15dfbf04c6878e2c7308deaf2ba8c70d", + "2eab4d17a2f11b9fc1bd66e7ea360040f58b26694127a96930bb5ab8e6ddad0272b6f5eef4a155f4b0d7e2668070556a9f75b9d8129d3298cc79a0fe5dec5db527bd44023b" + }, + { /* i=3512 cDividendBits=2217 cDivisorBits=544 */ + "013b27b6b56123a002b539ff64c617ef15062a5b8a7d26e3c4b8178eca29996b421d9efa32455aa2f0e8a120ed02f05339d10b5555ab6cde9d82e46c5678438819058e382929ef46891734edbdae6b9122a210d9d80cf8e0a57ea17684f472d36acdf32fa25f547c8c7d8312dad9f5fe577641fa995d6ece7ac3c3bb5649fbb3fbec9e7a601def9566a676286c59b5fe14b277879b0b671311afd34fbb7f40b1ae6e7c241c1658c77424276e9dfccabed6b862cadba3f85b9d40586a12c3094f60d508f20937a5ce2ebfb4d4af66d89167536466456b3a523f60f635a7cd0c985a8a062544f1f9f87e1bf9472b71659df26da85ae4907906fa06fb1b22176c9e5d70beb084c6ac144a17b2dc7f31a1d99f12156ffee8", + "b3f8fde8d2d2827f961932b79573b2a2f6f2ca4151df3f0326e4dc1dc9741f8fb568d5a7f0d94f84840f52078aa949a2907aac1c2f0f71d16717e9d1b052de7e9d6bea6d", + "01c049ef7d48cde405f2f9b38e5ba50a5bb6421ee1fc25d34d01fd76549565c3fc0808dbc63dcdbadb31d5a52f9bdf5eed4450e5068c5044d68f882c96c8d71de899905bca428f2377c6f75f67c610b01326ddfb133a59c068bdf512f93236ddc687961e676fbfcebcd97b9f91aae64f5179d52ce84634cf55adf16b7819e7bfa50f2cd9a44faa9eafdae0cc8194866a56a937794a3b09ee7935397d2a7be0d8a69483369e8c988d87ea214b6a1782e34bad9087a883f9a90f3f24bb8163bf3d290bd8d24e14f6ea1b2c9423a48fd7e46716", + "18bd1712b6e757553280138fb72296969cb6910470175b92ba230d30ee54fe98df706790968f866efa3a0486f7275817258512908a22af1c34d74df981def1f8cec3fe8a" + }, + { /* i=3513 cDividendBits=3277 cDivisorBits=1674 */ + "1f0974a6a1b4d70f2628b7aab560d1deed0d8db8d6b1909e57025a31669ea9af34b3da9f400ec79f4e98d6a29809feda70ceb9573f54c8e738ce277b7b37bb22349bd1cbaf4167aa0f6ca300eb906e0cbde45edd889da9ba1c1a694d7b7eb8f807bc2fb5fab177bb6a0ec81d27253939a1d481f225102656e36361e3d7ccb5b1b2ffb41335a5b8b1d489934ca6a4936e11f7da036507796655947c6f349253d5a85c6b77b5c5fe33f6a0e4533db5c0c24eeac4f1522a245ade126a5b46d8683a0762d3d3760e192558c7e5fbf6a2e2cf282cddb4e255b2d6f3a1254a482bfbae2bd64a8e22be2caaa96bbad464c7b9b566198f9aa82713f71f51b152d0dba9198887175af8c58bfb1cd3418cfc48149c3c8eb9e0ad63bf9c9afd90b441598383dc643c335498ee97aeabc7f8db93faed7916e5f0cfe81ebcb1bc77cd668c21e6cf984c2b60db4602e9d230903c758e932dc234820c82e7ecb233f60795a81951d7ae0ff35954368d2da30aee90723f579e971b91c65f807de4bbffa717dc24285c1c2d9ddbb4329b37972ab3a2c5fea54f0c2a6d925ceda208eb", + "03cae6dd76cb4fced01ad03854dc9440718f97d95a40f418c818fc85fe0c435c1f9cbf355bee77214635dfb09f8b91bec009f173be95d5fdc86d9c46c2b2e2a6af7cc81d6e4674331bc34a5771bbf03fe942e8329a7e23b5afa786dbaed590a8bfcddb3434c9fcf4b2b62b8867bf2bfe16231ca262dd9eb7e9c56509d746824eb54bc5d4b9c471b1cad61bc69bc53bd9c393b7f3a9a34dfa7ed1e7753aa59daf4d83a90c8814b2fe72bf96816fcaee07360cfe8e111b87be924aee4ecd702e678bb1788b097f003dbfac0172adeaa48210e0", + "082eff4cc574d3d819bd469d743f91556b2aae535a530ba43412f02d51b78d01545e7fa94ffac44384f3760893a7aeeee28e5751f792f3ebd606457a4af01fa0c8e893aaa018aad1a8faddfcca50df0cfb34ce81b79453b9531b72bc904c88fa6ccfaf24a626f8db2e77c3a19199b3764839aa36f77b6e0833050617d592c8757319e69d6504c4a6da552201dd25abd9c1408ba8a27f32f2ae518f3f1b50b6499ad8cba30bfa005231789d2151803100ed82266cbbc189447f0689f8f01bf75003bf62a99dc1a3291d", + "033e5ac9b5a7711421e1ef42010bc78e8948305cc60d337aa0bc026ee457593c267b468d6cbde2d0fdf703b4c9368694ffe42ed9e423e773dfe43f7dfcf86d976355ee1114c0db7a7a8e342ff542f1f722b1c3b32239be591070486b913681820d8e4b31711a8684870026f9d5f26eec064c29eb4ad596881ef78b13b2963a0d6bca4e61f2087f87fb865b63fbb5d1c6d9e1c4fa7dcc61469e6af2fadd66b20aad50b6dd8743eeccdbfaaabf718e447eed88e5a4b9c4386fde1cf6e771130c41c3dfeb75abfea4b6e4afa9804385d7923f8b" + }, + { /* i=3514 cDividendBits=471 cDivisorBits=202 */ + "72cc1a497d2be0d7700851814fb60a863e30cebc764381a67d47a76bb9a4610ccb5e17c9b29085f8140d52c437a9ef6a950bb898fb8f596357cad8", + "0384f0f040c14c85b08face5dbf093f82582be19804c06b16f7b", + "209e8ccf3e2e4f6077f5831ab6e5efe6db0025a9d7b657c666701a7d9d046d58d117", + "72a218b09680cb9beee6f456a458b8085160c3f0ac3c1b5bcb" + }, + { /* i=3515 cDividendBits=2742 cDivisorBits=165 */ + "22226a20cf0a0a8a3a90c424e4cd79bc03b25b8237fe14c6c9e75ccd47a960ff8ec64d6cfda74fc17e3d11670bb3cdd7f551ef19fa1978f0f54c9430aed6fa99dc3376d7a4e90f62ef8e6a806224f801449fe3ffe67adbd4c2f6b22e6239ef539619ff2304da488403971fe908850b7a78acba1951f8e6a8ead7f8757774c890c856ba20080b0657e7f1476a48eb01c3e61b7945759d644bdf31a42a7b28a68a6589c089d4dce9dd62db19496856c5d045a34e75536ccf9b9ca50e0f4615ba6baf01776d3f78f223a87974a8b4a05fddab7bb8d6aac24ffc6a350f438753ba4461fd4d807a277713522d6ea5ed780b248027f6dba8b5ca225ebca051773b7c5f4e8cf5e24b391c51633f7ad8555dc791d5873e21e11588cfc646e675186408b1b7b857a4a7cb0cbe4b4fbe5397f9043ffdb3e842a0c3a208fd77b07486a31d764f4d9f35cca20ee0ed29536bf3f18e8451fa86efe29e01", + "02b42cd80740527504fadc3c31c1efc181bc6d59ad", + "0c9fe3e1cdd6e3709f4e533a9cacf599793bb7822d9b71b73ad93d760b1d8ba21f660a105a2389e4951f2fc48f24a98b6b5dd75cb25e51acfcde486faadab130f479e11b287d95cf0eda9dbe25447991fe8354f4b3bd20848abf0004f07d410d0fd8924850a10a5a3a06256ddd6ab4720efe4a7e7a8cd91566992722cfcbc21d6fb2a0624f76750377880b8e03ed3096ddd6176f1a7f16be2e21cf4bf07d003c603979fa0eac3e2fc8871c79c78b0d1f0741a9dcafe2b3a1435db510893dc83dcb8ae3f70b4c19bc1573fc75094719d019068f7a7d3c0bf902518ddf72e3a4957ee28f76c53620abe5ae17f62aa8529b8f35fb424c7cb1d38be9f33497cc11431b75f12c8947eda9f69a6d97b2e86aad25d421bdf6154a4228f30453932ab0810e08092f9f936017e9ed29803756a1af1cf82d580834324e7ed1b3c430ed0c0a8121b0", + "01f8109973701d4ec5c056e2535e39a25459f8aa11" + }, + { /* i=3516 cDividendBits=2579 cDivisorBits=558 */ + "0413b312f8e3317bac70e1db754a40bd3a61718968fb394c68e2671b846ab26aa4d08863c63108b903e221a99fcda0c05b70c434828cc960c533ece0c1a078bc3ac9fa9d0736202f7359995e33b564939d489aa16eabc06bdad317bed046add6b06fe437cc3a8b72768a4d2b4b40e4b4c045aa879bd4c3e033e4d023f52049561ec704788794416c3bef50450ce6595e43dde95ea206356a69de7abfd8578c5b21ffe89f8e67a1be148f0c3c3d0f138fcf4897c7e64b72021e3d9ca6ec5fd6402ec6c62bc739885a014583421496566f4b0326c9d713a0f3c8697b6200bcb87fe9cf9d459a2cd08a1b3f3e7d72beddbb6450a273c26d348e8513c9d60143f1c4c32709e232670a5eaa727dac20d3e5021f9d279b750deaf0c4eb869c275e1fc6768d4f9f8ae59fadd86414871f97a77840aa1d313f5150243c455fe93750defb8462fb", + "28e038d9e4a253e73fe510a91564ceb13751c94d780856c2cee135b8815a0ef6a0b86d7a44edc59b2ecb92770bbac3347587fe1b2e69e0d92bb397ce0950c439941eb39c002c", + "19888c509a581d210c3f5f5ba3f9cfd0cb7240efc4bb0c8b177e4351823bf07e77e7d20505682e6c42b57f1b860efd165029df87cc126718adfd1fdad0befb74ca605c070a63015276c071c4405861642444ef3c4834dfcd65537acbf0552ea4904be14dfe83a294914a56ace9e1167aba46efcccf7cb86db816cc9ecc503f7237df8aab685c8f5248d492ab1582820079157b8ded3337feae8f1950f60f4833987b9e122a2bdea1cf3b345126235ad8401f8eea757d2b69db0f2edab7b90bffb42e612a9d132c46c5c19d5e4c6e8d21d81d469ddf602d8ed199429cb7a7d4e718ef566e5cf6e7e0c8eaf5def29636131167bbb4b51718703616485cd5", + "0e808c3d8cb145256c64cd7ec425139915f94b41b1d03d5b8096c1b550ac57601b363ce0594dd8e82b4313bfe4ec24e5f51ff604f53af45a970d7f5bc4ed8ce6d59ba6486e5f" + }, + { /* i=3517 cDividendBits=3805 cDivisorBits=1242 */ + "14f3d22ffd50b1d9dacd8bb5c0f85d12290c099d017bdecf49d171e38c3fd92835d73ba0d7406ec103026dba207c759d60269a15174aef937aacd6800603bbfeb88ff882d1ac15d3b1a9ee0b23c668f9636d73517ea1bc7adb41be44aa45d226b0c4e85e26e26a33d0e900a70f684048a8a3593d91754ed5fd15771b44a1d9d0ba1043cda536a8ee0cfb4a04a0bd71ea140824147fe3a08c5b43d0025eece39a794341c9e2b9e74d53b5358c7d20e1c98655772335da82a02683c0024421a8294b626c1287c9f74527c2cd457cb27d5b42cb5abd24d71ad0d4bc82dd47db6ff63c5b50711bfc243c9b504383fca44ad91511168eb9957f2bb13280363835a0ff2e5fa127b46270d285da9302a2e7b37613321b6b0034781e9df904337cf257912faab826ba39184ce514856fc2ebfc3db3f560aa39d3ad409d9f9be3022d4769816cf38d7767b98525938f5375ac8b6c8d5e260887e98e8469cb86fc32622dd36b3b7e2ac75a7e74136a65a8bab6c4a33449f0d4ef8659792ba7046a829622560b609793d9627ae4f50ae07214b26bccda5c72ff57ccb93a2b3989bfd153e72d6393aaa33742d77d7b3cd41dc9bd96c55a0aaaf40727d6057452ea44a57ab0f1f7b2726151bc9fbffde84454901d09ef51e0ed941f4302752b356924", + "01580915059fc34f96c287cad3ecc3f523e9899ba8ede3382a4c138f752ba6e1c3ff615806aa44e7f54c6ca8c3a14192993eb1070d74740ae4d9b7e41f4597cc0a434eb18bc2c708772dba27e65d95c36234b3a9741db548cad381422e851111e14958d17f374a75ace3b2d59163d7c3970635dc0c52c0a0b9a031edc100ad73b7935bda64bbf4b24629265b51c2d29b73e621f64ddad7f68205bc43", + "0f9744e74e06898d5b8e0fb0caa4cc58e597dc897e2434b8c81df5c5413777e417032ff5498fe04ca733f781a611159bc4fc29c84adca1446e8dd253f3743087ec9ae79d58f703ca530224922cfa19dee1193b4aa7b915039399d2b56c2ced04bdca9178c1c6c77dd0b22234ab054251e475616dedcabf1f5b083043d124e72ef813065d12d55bb2bb1e7f44117d1752d36fda54d2c39ccbbbf781fddeb41369f4f5d19378ddc687b7adebcee58088720f09fcb00ce6b8ca71f6ff797ac7a7f07fb849f0490c9456b0e71affac47108101a3c23a2a59d3250995bef01e66a2081eff651bcbacc4131bcc3509676e4ec8d24bc1a86e4ff81242be3d88e9a15c0c14ae0beef070be1a1f1f17406af9d1999be98a2062a9714427b70aabd7d016d81817812ffc535e64efc92f0c919b88d3b6a3ba993d15e39f04bbb43c45589b1728", + "ea688c925bc2828fd8ec6bba27cc311f391a35b8b8e66b66d73c0a7bc6499ed18bfa40a210ca0c8e4e476509113e0def0350bf259093e419eef18fb256ff1d6c58b84184c5760690aa64f73c1fe8e014c958ba9b9068aa49310229320cfadf58e3bd5449acb167286779f4dcf2bc67c8288c716586aab88f283a4d2ce536248642eb08cacf7a7e5c5f5496a56241db16a4f9d818effa0351d4f9ac" + }, + { /* i=3518 cDividendBits=926 cDivisorBits=61 */ + "3b78403bde893b0c8cd974cfbb010e932f4c9af49768f68eb292f10b4cde6ec8148ee676b21488cf54b166dee91bc292c6f40ec188386de25087f6b9fd3074b5530d56c1cd3f61ccd07e20e10eb13b1343295a01294b61534005be56f45dd85727bea38a1fa36688ac1ec31238d69986759676e7", + "117e79ed86d5c314", + "036640d089a3880248c3f2b043b7dd58e6a61449b92a1e7beb212c78ca31edf12b790e676e9f580f3200448ea1634df1be285a9c9d7be622867443850d22faeb51bb5759556c6520e5cbcc80d537adff32cfa5951619b753577ff71a7689f7849504375543522b274e5676df87", + "01f0f2a782b62b5b" + }, + { /* i=3519 cDividendBits=2207 cDivisorBits=1694 */ + "72f08467d491bb3b39f4088ea0d6905602c59950d70846829a6c43d7ccfaf4751e3264536a63f759385d24b797b7e370e5cd53d7262c307d7c5ad96dc58f320bb28d081d2b0e66d2c8ddab4434c3c450bc8792f59fd1501d9e5cd4b07d317dedac957dd20c364923975b97376d824d68e51621fd0e8be8d4d3e93725fe2fbe702a527b3cbd6edf65b422a9aedbb952a80a049ffbd30279dd21ebf3a2130cd677ae18e131816ffa79fb813a415a97fec4ed130ed662a1e840c11999e79a1d95a78852e1cf09f9758b78ac5469a31cb01b6c7ed21957a0fac2ea315e3adb9f03aa4d2aa6dcb6f7f491e3e85910fd35579cb1ea4c361b405db4f86024df7eddb887568e0fe37cd4f8e0820ee5efce4c3dd34a555aaa", + "1e27f760008f5271df2137bc916e6bb9e211c0dc4f611d6073a95ed2f9c674e6eb408d6c0a6c112c5a82c3b13aaa7dbd2b54e159620fb179ed6e39aa6de8068ba2253caaa4a9dc79dc2b2e279dcc2e617dc5b0f19bb3427f6a7f7ccb9ed7adbb18119a7ba5a0b5ff1c1f47efc24eb36c7efcef15000c14175cc96b0b1278f4aa950ea980cbec5892b07bebdb2399e847ba59afc4055fdc1c1a9dabd14739965406c1cba64c78977d22a2cf25d052f2b7be11878ed721f0f483cafc020794adb88453af726f417eee11d8c0e76453be2562483150", + "03cfbd52c13d0e5b1fa52b9895a297ff0d4e82c1b4558ab34c354b0e0a17712384dd5ff2fe000eafa028b88f0c8d909f83dc0b0f770f1d7d4bc7244c07cdc1fda4", + "176f3a254f8671e3d273b8a91d54eb9ff32d4dd819f9a7e9b9eec4bad46399d84aba2eeef01c5988232aae84527fd8fe6a4bf82d2ad8782c4c4f29cd2fcb8c0170d2353c60bc42a11d11eef647877f05da88416a1251b6b17b161c6ae413fd60d0011a587c72343e3aadd8983d856f9d3db91cd27a42bc83438dadecf4bb348b01992e08e6225358c2276b239509922af315f765933029768a59bbc3e862321ff6c7cb101a0b5c002f56d4d303649c42e530553879e90cf22066d01711f7bf784edf906784ad3df26a1532073dfb7aa4be09b36a" + }, + { /* i=3520 cDividendBits=3669 cDivisorBits=3328 */ + "1ea846180bb38aecde4966d2478dbcfcca127f5d3c7a06b6e6d2728e2bf3c11de038fa963180a3372eac5c09f422ecd57817552784c0101f42af084f4345f04b24492134902d90b5346f3cad2587f06c0c57d04297c00305f8351d6f9952ae96d50738f146c4a48512fcc328f7a5ed21913c4b7905139a0714f9384d7068210b2639f5be2f8cf5a253037bbec280f1e498f1c0f795ce114917ea5645e22fc39257cfd3719b5c0383120dea04c4c44cc459bd4d9f33c847395e15d4ad14068794f568d1e549b7c5b6a0c2a24b59b3383ee9549109b77137a91c591d36a8830777b3bf692b2d99bb1ce6881dc0babd6ee41112cd3b1b4ba0d67e3e32e153297512ed560e545a04617bb16e68bee601db10b3b26918703ba24a477105a32e0299037374115b2101766743a75143a13301bf7a1f1abc34fb867fda8795fd114b7c16041753098ad58115d9d88bdbdeac5e846a0f7af1e5b9936bce55e760fe1c07d8fb2c2a73d616baf9fb0997d067901b99d3d1f38f1844f070c864df5d2909ed50956a1dd6165e1b48b381f8c84ee8f8db0b576117326a9de479c7f0f6dee2bb153b7c3bf9d50a4675eee50ea0bbbd1525f6a498dc83bf96f92e2966cc3a73d3835d8b0217139c5030c5484d", + "e417e1a2f842bc3a07f797bb31e36657ec822ec253db254010fb8d055796ddd42ea51b59e574bacc0d788b5109d7f389ef53b0e3e0275f4cdde358f35665161e64b3eb7ac5c10efe1cda1d82d8007706d4bc39647016a0475e8eae1facec48cc1a340c89c1b86a7d35465eb87b71db1c81f87b425ac8c7b57bb479295196008b13b261e3e50196c05f0e4c3b6ed584318c55829f06769b4ee2e792c036c14cc3c28bf9ad78301ede2f2f3e2794e247b23c879b870e3543ee3d2026e0b995a5d69d2c4812c18aa49d77268000c01c9d682209c0ef9f132dabd743b3a6500c1fb8a8d9920db92bd0456b56bf104249007900597bc051d7d2229f9a9a7ab40e04b5b14ea6702840c35bfd70152e06cf5e97073319d5efa0ff071d4ecea57f4cadea6509e2957531a8dbe214238609028f396725be90aac41c2b0f71320f3d30874de9a199c498776ce133186c75e084e07fe8d007d54dd8a89430e3c198ceec6ebfa313ae23855118ee5456cecd8459745be1e180afbbd07989272da3e53ac03813c2e4a0da792fa9a957024eddb1a09881139bfd35d9a7b1368cd3725b1879d41b", + "22687e2dff1342b927cd69c673fba30fa1b7e79220f07206411420ccb1fea1937ef455fa8739bcb38a59b2", + "bea951b033f55e03484b9e7ba287b2359871a3e47196ff286e2ffbc23ff4a8f86e5ce10ee63807f640a9c1dcdefb7055bb155c7cf21624db9adb41603624c00943be4f569cc60f8a0faae433f4286edb38acf86416fad2a371c426ef2e5db9e15d948ab2266277eb905a882e90c2695f2ae88f361b8443f0fc89d899914d3803016153146a6e75852f52bb2f87a90dac23083045844c215d5d64a1994ab2e1aa515c9cf46dff938afe1e2cdd4a295ed8914e7795f8f3c80c8dfd24245ae01dd09dd65776493df5505dda0448828b78d1a45304827ab7a71bb94ecff11b283baaa2b475e492cd9c2c5cb8ce9dca6378d579fae6a2458de91699970e915f534b4e19edafa62d794aca9e23fcc4b0ea931ddfe914e0f007b1eecaeb0a4d246e438a1e8b19a866290c07499bb3ace959ed9916f6dfabf08585b7e7bb6ecf086f477c5867618661c7b31b3e8ed906335076dbf70f5c997277499c5e41e9bde3880351a1dfe30c0a387caf42db1d041c22519c1d04c9c5e262990eb30dd223ef30f619e2203699b86724470a47e195316fa1eb8ecb107f4bb24b7c002545a799c46a87" + }, + { /* i=3521 cDividendBits=3024 cDivisorBits=811 */ + "df6329b058e33d1191f6a26c3b39dcc71bd58a94556b62d16212eca6c163153b5d8274a75fbbda9e6f00b758e96e672eb7d8b4def349b6c54faef66f7b5b3bf7c69a98a07929aa1d3161c0aebc4e1d05cd72280a301eb71fd8f0cdf9359c7a4e1b09dffb3d5f3f737969dc9ba4918037d56ac526e27bd66965e96f6a121c9ef27d58ad34501f53e81e507be2a9a0545c43e2790e10f1f151f8dc15d8fb7d2b12778f6b644d813f8e05f3a9a7285d35e7b65bf1b954cc6f4c17c3a22a8e32df089f8f44eda593644ecd155d98aa69debcd0b3c37204c629cddfc646482defbf14f5963c7ae33d37996291098ba0300a69a5576b99d7d8fd9febe2164bef71223618b961464685965217057edb3476056e0835defaaaa2874bf9dfb4d9d0e7e949fbc409080e05bb09916a867a4e877584b691d984acba2c65bc89cc787ef861f3daae31418e61a6154ecd1f75209af308a8fc423258847847f82fdf7208c62aca10e85671bb042c698b87981b810ac3add1e3371f4140769dee07", + "0337fc76aec54701dee660d19900ed397fde988667cad28f90deb6d206ef74f334c93f05a17627d3eb76a1d00d5021b23dc8dffbbed6ab3752ac96d4da8aa21870d866e63bae3c140ff29f1cfcc28468c86b3500aae234eaa3ba857f2a5d86fc727e02f91578", + "45672ef39da679d673433526a2eaab70574f26f0d3d340a44c6eb93fe14d0955138b96955a543fc110a6129ff8e234fa63c36a85c6fbe78a4f87ba00f770657924a85cc99447c0bb33cff89abc769b36caed67f05c687b651feb1fc184dfb595b5472441dfcea97980f3e1f5598a21cb70fa172555b5fd4b189f00f68957186e703bb8074a74fc1123ddd9a083775559594f9756012cfba6325a91825936813c9420ad8a8600f8fc16311024ab65893c0973fdc556e1a1dccddf07a4d661e35baf19894a32da851d103b184f634c5829b96d76b067fe342f207f2b6b8ee86d61a37f93c92afa61a1378aef81f48c1c01d02ac8abcfe5f978c1dc3bc0419418768957d24d29858f8ae22fbbeb2e30c6d8430388f68e", + "01ea2edd303ca915a042eb1f0d07f69dea23ad5c8a2c177900311419c92bf6166f0f8084caa21e8c5c37f25a83d52478dd26ef441d2421e6184116cfb6d7c1d169871f1589b456fc2122458e0175f889dcc0f70c2e6211bd82f48159791d67fa4a83a612b577" + }, + { /* i=3522 cDividendBits=3125 cDivisorBits=2789 */ + "0100dcfe32e871b08f20ec5f827702ad775b5f39f11a3367af7a790a6dcfd22bb26dd55a057fef0caa77333a20dac7f1777bba962229e412f9552016c6bbf01dd5276ee0fea8ec87db3a1e7778e33d03478780356399c195ac37d7ffe0bde13b4de1e74d49790edc5319e32da9380587bfa861b57d282fa44efb9158297a6e6d80e77ba6ace999c773afa6ce16785b736929738e59c88c70048cc24e0dbba4dc7a6f4aade0070c7a4836e49e9de79a098ad7b2093e19e0d0f28a6f43d8daafb83a4bcda17741d2c1367568498d30f988e21c1e3eaee39c65dc26a45794e4e130f0207be4db229dd98276cf43153d85698227150b7b83060af7887118e5d714a1e90a86d979fc0703fa5f6d7d28512454e313b1d04187005c30a76c60cf5076029232b28533ed947d62e3143ade3168094b674a30bcd904d81bdbd474d9a69107b72bf7a1ffb20fd2a08cd48503cdcd005cbcbacc1e3ac9b7d6a64e73ea12e11437991b070e2364680b765470c98df8413a22d6e00be20f46cbd811b1b527356e6ba5864a0045af", + "14f2c6b852745b7e6056fdb04699a87e78f56e167e69a00467b62a5912dff9c197a716c4885141bce8ec9e2714f1d535aa3201c5afc455007cb4fd48529ad2c6da4a24d1c91d5e5fd8b0ebd1fd55823d8d4de66ba513e99dd2cb49f4a1ada3289c8b98c7bde318005ccb9bd49d9f60359d4fb40c5feac989acb2ccbedb93d32cd0bda40d648ce1eaf694829636ec182f19c0e5166281645ac452e38008b54430b3ce8c1c4f9df25944ccc7a1ddde770c6206a9929a0567a77bab3b2a94cd48151b1ce80d5a5e701089cd6b493f6094ca27a137f280f1cdba909e81c6cc71f66acb7a4d9a10e207ce3fa88907895d3fd4b653aee5c7d103ab65ddf05d3147c3788fe58803879c422020d11a64e738de79b29351b3e8e60a3d76a9c341f0e68f25b9251bbcf8fb5b2098701c29072e35edfd2c261c0fe6ae90a0d81c131904a01c580a5147d94f1c5076cb759e335e77afea9fa8630b7485310de6e75f4d", + "0c4301b270aec9ca96a897ab4bb029750a1c4bd088dd6ac31e59deb13561de56fccb5ede62755f770464", + "7774db4ad4483ad81e747447464cec69d9e07fa79ce5080f9f6778542a565d9b209d914349f799649c75416a5cfcc53fcafe8329bbd8def37348f6242f99d69c1140fd09fdcc9f1f28d7a97c41927bc162e1310dd1bfdd811f92455ba78dfbcdc5414255695052278a98ebf085b630e09f8cb7d4bd40496c50b697d28d921ab34302c56b5ecbdbb1b6f3400726b29b5255806deeb32ed60e92bbc374ae1aa51211d5bbbc64a4ccdf81865b0e267f4faf0a3a0a68fd15e13ed2dc93ab8d8e3579991aa4e5deb67f9e7aef30698f14b002304ff65bd2694f6bedc52f92194014a1063676a230652e35914840afa006ff1252d5fdf21dfe177b00a162fba10b86636c813fb86799148877b86085ab1cdcdb1ab5608871325b4229e12a000d4950e333765cce3660e2e13948f1477af79cf0da7cfa332d84f25057a25f40f7ad68b459218366d1d52a0522eb155609f14eace02d645ada7a0a609a56d79b" + }, + { /* i=3523 cDividendBits=3639 cDivisorBits=854 */ + "45afe0dd745b1dafbcecc9ebe48a093e9a98d030993ef120d431f1e38b1cb869a581cb606cacee030956e82bed20d361cbe54b1ca6644ce050b17c7bfb7408b5b8fbd16ed457180da4bf3b1483fdf6b8ce63635c246ce421d9151317a54c527a04025cc3222e0b9bf44082fa4f2e3df3cd08ee038419ca5fc2f0292a0f3b57d3edf06f0899bfa8d8a13b7da40c258d991975edbe75b766b11b531323a382ae011269340059db53deb47bd1769edc5ebd31c75e410f44f3f0f3c68882bf327dd2f4a9ea827eb7f2c779c8081e1be3543a2358be2b855fa52d7f22ae3dcb2a6654efff42abf234f85c708cbedfa8d0ef84872132c805417e103d92e890394525632db7a52007e5067789bfd3646efffbd2a7f5f7d9c7c786a60d3ece2bbe8bca4a5e9dae233aff710a96358b2a42156335b8937d1bdf041271cc78b703126a4edcb175a1a8a15e17f2db42aa834d090d7f778c0f8f8e523102db4ebcf42a2d6bf739868d6748f022914b45042ecdcf56932e5f5d679a0aa4a7e0a2fc96398f559b2d2715598aea9c84206560d77a078e337f018a998d2b24f499ee241f209da001b8f98853cbe0477a5c811c0f6e96cd6f0185b0fef5945a52b721e29a1e6929243e6c59579c3acd", + "1a785f2a9ce2ec0ddf9f8fb7bcbb8824803c06b8ffb1e92fb5f55b281b698a18d59e1fd3e67368eacfe9ebcd837010e4d94508dd03389bbb38ce2fbd408d0efc9df685713c483277940310495c2f8a37f1796ea2b4700b62b66b56ba0bda5beda406998628af37e4ba56a0", + "02a1f5f670fbac3d938b49e50832fa4451e8c592bd97493ba87880b8c27e06ebcdbda7086e947e69d0220967506c84a5790cb3af167e46fc6ef67dd5dd06304d1c2f4f1c4823942f00e2fd4015edbf00a0919732a180f02141a02da6244482d32af8b74b3b1908fb28bd4b368322a9a3e751aa4482ac65b1fbdb05440fcabb44bffbdbe4543e2060555aac47d204a3dd89f8eca833ad9779292969c1418456c13572b3c842bda38a1f44c5d366465138f3586a36ac220802181d3862cdb84d8cd6804981bbc4d1313e3e7411913db939be3702c9d0e2f56dae9349ea0663efcac29b86ce1d6311df414d6f40ed2f274a5ece16c116626b2163b59ef4a20c54e68bfe2e94588b640cdb264ca7050d53f5bdd4a5c0e3e0cd35bc0685d9b1c4b2e132f5360b7f3fefb3cd4cad665536c4f931de251837d443778623ab84df7e573d3a778681ac0732ce35fc920901d5dcd41f77780d488e98efe9f0d1a64a", + "110891034b1c8daf0f83a7c332b3c72c94e1b19747acd655dad11f009db10cac67d0226f260182267b71b71fc84297542fa685d63577754216dfedcedff6849bf63ff6a2c800651a15741b871992dbc91ff06dbbac6ecd342b25256a2c1d7754d5f8353454e2e9acf3708d" + }, + { /* i=3524 cDividendBits=376 cDivisorBits=9 */ + "aff326d0abf212dbe5ba74bb9b6ae20d50fa45109dd2525d4e1c35ab2a17a4d3c587f6c83f14fc3dccc569dc154294", + "0156", + "83b482db136bd838cfe3e599e79c5b5c4e946997aa88798935fa2b2aca2ca54c2e0ef19d609f6d779dc52ccea89d", + "d6" + }, + { /* i=3525 cDividendBits=1800 cDivisorBits=225 */ + "3506f82d37f7262dea7fd183d3f827da6f62a3f26d52a204bf43730329588bf4cb0fed8548c106cfcee6065b969e8a76ed72973755d50e46c115b05c9f419426aa18f610f3c5ada1eae1a29b004326704079bb4a8855cfe104d70aece2cb2749adeb3e72b357436a2261f60eddab84ee0d5cc47c08fe07492268edaef82c7ff452f4ab027b6ba79c958cd15865f47365ec12a20359b5f26fb215f3856d0b9e1a42e9f2dd01833cee96028296deeefcf3d0b413fe365c131ecc35e4d4ce7f920dcc449c6d901fd63465a1ee54bd98b799961bb1d177368616ff49d1a9f6a3a0ab89", + "06936256845b53e7cae3fffdc7d6fee99f15e60a38e1fc0e295ab4f9", + "08106886646701f81463cdc551e4bc5c402a886286bf26b4b17f04fa242b64b5ebbfef28448ac075027bf1b22e9065b61c98e598ed137e649df85d978e56c69d38dc8957ea544962b382338c3588c9bae2d3735293267c43f57bb8d6012155e57c0df8e32e82677da6baeb76cc8507ccfbb6f111b6ca859d5efe1b1d111d2d647ad386ade76a1f9040af4ca2fd980c77629c3cf49c1f4d81af5a599eddf89a632113db195f584720dde9382272b65d1739e3c0f62fc476bf9b62fc0cdd08763a2f01b26b11ea", + "0428e178ff9129d7faf294cb8a0761878d3ddbc47fd98d8e0a9fb6ef" + }, + { /* i=3526 cDividendBits=2169 cDivisorBits=517 */ + "01ad80536bf390d0c402ff8ca4e97e67161180c3305fcb9abc7a267ee8e16018e60393233c27989dfaa81e53eab436ae85e3a85d2430589ea059a10d52f33d02619382c5e7607805951a8b82a1737cd17d3d4a3603f303c1bf3e24fed525b53d23de8a11bc8968c020caf6df2dc77d84f878b23abcf2b61b999e9c99c5680eaddcf8a84069bf8be05436e0dbaa0e49036949d04df2c6d59109df7a3607d123c5f5f51652a6a744e9c409bded4f172ff7b04a13bad09313a48044b6c616597fd26c6027b0ad8f947f0392a7fb5969571a9cf9e2b94a263c33345b8cc963a16ab47ab53bfbab335ca158a13b4f0b781d3e0411787e08191a8af58b32abb2740147e1a0260d6ce353237603df75a7d8501c", + "106bf8211ddd53d2b750952817d594c1572d4ac897394f850d82cf02c4c392bebb98bfec0e40694771b907ce3eb2c2f92fb6a6b1e7f07af9e983f113e004aca55e", + "1a27874359e38ee43873bc25dd87259da2df5d49923bf2629f85c547ab7df362f05b2d8e7e6a663ab2777b8944dfee0133dd05ad8d2810593ce6a0371ea454273b62d4d1291f499475e76caaf940837da4b8e8c1a8a6a7144e305a5ef92d55bdce2657c57294d191bac57b94a75c42eb39879dd0737d3871c77c5b858488d771eed8ffbaaa8d39fd01f4078359639c9b2c6546250db3eb2345026c0350136d5a62329125008c6e7b95d429e28f6647fe13a1000a62752f650b2fc1f1215de28102cc1da22b805735f7df39df4d322b", + "1174ab20714acbe95dae4e61c4f890b275e8035f52c29bdedf0a9f60e1d488c9821a7c5351495b73e508607ed19733ccb569cc085301089ca600480287462d52" + }, + { /* i=3527 cDividendBits=2751 cDivisorBits=150 */ + "525c925caba1c75c22e56ddc4cf9697c8950cbb1ca735c5a980a7a76c9576884cfb6673ab33e7cb5a6e87b10b0522e53aa3b203161dac33b621e37665a13c7eb8ae364a85e544d74f9f1c1cdd96a5badc9aa36935494e3de8882a340cdb7184893df11ec35b05a1b018cdeaef66a4e8216bc00fc22466412af6378081ccd20187347f4fcef138f0a2ef1fddf8a9ebaa319959e2b4b415789d2c0bbde417360d3daf8f2988a9776731840d310384287f6e70755921d398c39eb109e5db95feb2d7a363003a61df2f4df6b2c8fab88b260705dfba3b1b953d82cb7c218f22ce62bf641a7fd961201663cb76eb0df064a91eea58786af7eb3ac1fa7a20fe67167b0f6448ecd84597dc4a75eea82dfcb4f5b9efa73380349add409762db699e48a8e21cef6a8310cf674b11d51b011503febf9ef2c037b29d6a05fa9d6981cb35e074b2d12317758941bc20bdbe2cc2036651b993f1cbe8c317d", + "316481b145d8efd433b33a82caeba40fc9b590", + "01aae089e0fda5ca28c35f750ea5a67e6d9ed84686772c521dbfd890a490cd2f0e60779a477d990afe4598e55f629ba18e6845e45f348fbb6ac2229b9ff5e314bfc5c418c2941c6ee5674955a2c86b6ce10dd5a2fabf2f8e5e735eccfa00b189c12d1369eaa2b15287cfade3789a2da28e9a97114b984044cc9782a62a5b5566be2ea3ba5c4bcf7d4a78ac1513874d32bfd7cb2e0e2b6f27c39a6b9ab5cfb2803a2498884d9d07ee29ec6c2fbd34b9085126b848886ba03da158d6a944132b404d08d928c31c119aa2705f5c11fd9e0337430ad8a87ac84fcd53f418e9bb44ef8829ef83dabdf02a9f26b55e021443cf6602aa548355b4a3ecabf476daa2458bdee6fac46f416962527b039052323b9140e4c85f2e67c284d70aac0fe166a66e3a8f13a20e40a7f53a26ec660f7a069016c5932289d870985a7a0bc470f090c4d1d13e943b84", + "0aac0612038efd4a56784e5cd529bb4672633d" + }, + { /* i=3528 cDividendBits=2314 cDivisorBits=2097 */ + "f4d64ecd240641e5b8fc5bfc07c15ee2b088f8e266eb6ab0bcbf7ee5de2db5d42f3e163f4f9c7a24facdfd54ed252769e96bd406df3a8df4cf744a501a423ab190ddbe4aa4c18d7bd65f365c2ae1f0d2208016ff6f182a0cb61c988ab209daec5497b1362b7721d04d45c0005f15028e3e8224fce12a4fab0a4a5e5e4e7bdc93d61ec27a7b064090ee9df410fcde5bc2cb4db600b303825350ee81bf002c865c573df38cce402faf1161aa7505481d3dba16e047bcda7032be13716e80d2e7d1cf55ee293ce3f9eb48de714543655f1f862b6f40504e5146aeea13be6b5b2616825d3b2ffd6ccae0e97e16d977b8a234d98eac79f086ba8a718b715f6932f35b722ffca14eca9db85f59c0a61ed7db8d468f263a0c848ab1dcdf8be299744bb1d5", + "018760558ab27826b7cb30ced12f045eba7a65f1fccb1a0f7a095aa65b1064488f2599b12eda4f3b8de9e94edf141f0786fa04fbd48b149ba600ff5001ae8226c0b5e8249c9c5560c2750a5afb78fdf16938e86e9eb5ea7e16f2f22c82a0308862b9ad15eb5b51d0c9e3a29e8aed74fb6375bbdd419e2875fa261ed5f0c4183c258efb5a46fd3b44e93e3835bd778e0b119d189522aca6b11ec3437fd50bfca9a997affce3dd9f6e8b37fc204f40b6592a5479d11a88b33ea51642dd397b1af733e57a02e27908ef2b5ddeed43b9905a5ea29a2a7eb0dabc31711ae0ffa36b6418dcba06124c564b815af02247e871610562a6a7baa0492bc8a45a962ad7d836add728512dbde3", + "a02600add519f99333a56e84d41f653fc104e5ec33d30b79cb3243", + "479df9fee6c5838b3ac3b35a09be82ac39f6b0a24ccfaf51df055cd10e0ab931ebff29e5ca3e5eeb4042c992c5aed3496396eea09b25c532002243f3c3817840738a5c36bc03d1800d681ede20182de2d4344ebc05f949d1e65eee07542ddefa5d3f875b911b690dca390ce20b8dc21211ddadec05b88c752d388c3b532de761113c082818f3737f405b4487b9291d87ff1b7164f5caea77f4ebfcbd48885dfe9eb5bd0610d1cd784371136a26723551655a6f9bdeed3237796cf3f13d14b2ec942ff996144c8beb93bf2af3cd5f9af9e0fed93959563948b1a80e947736d6d4296229db51c85d67b59998ceda1af410ff113d1dad450f3c99927b2e3a2fa7fd736a683ba96c" + }, + { /* i=3529 cDividendBits=511 cDivisorBits=126 */ + "142ba521b1146da3fe438244a5ea3eba6769abd3ca3155c1516dbe2301de750889166334d0b88f9a9be9c99e3c601bec2854b80869980347ac69c4ea813a5694", + "256930a20560d485d92f859f99cafa00", + "8a06709103999165ff20bb4a0873770fd70dd2d94359b2aa2e008d9a6e59b7b9b8c69cd07ce639a2d645951c066c916b", + "2073f62e8d87cb7a8638899bc9c9d894" + }, + { /* i=3530 cDividendBits=3405 cDivisorBits=1058 */ + "05d86e269ce6f8f887affbf0b5f793d4cdd9448b506e0ec1ea84d651b256b7d666e2c25c14a223e5581e85f19aa3be265405bf74e938798d202c115dcb09c9cbdfe4e20322e6d1daf39bd6041efcec6e008cea5a9fddaffd84911e6ce31496c251cedcbcbc94ffbe3c4a8d13ccdc14d5d25273733402a8da087faffe3d56dcde3e0a41b33f586d75245b31d7f9874672f4d1d2cddc1331ee1524f622ff03d2a33b101372d186fc831e28b795570ea518c570aa093d50850cbc0b24075f893e49dafcb150f63e23c3f311c65392716219f2ae9b0f8f97de95bdb19e2bb97f4f0f1f90b2a2afd909d45ac016789baac3af5594fab0f7d38dd70f237df90448d23c421e6310345084bdc8058458e91292f7e85edf565d62ac732d8bfe812d4f2874bd09add23f1832a914c55d3848969a1fdf217e6aa27d2469bef37a09bdfe2fad6b784fec3e89465d07196d110c06b06580f28c53d60979fa16fe1699dff29413648bb42dcf7146b1306c8b2450869d69a4438b494db4b251a941a3b370532492f462237bd9f5ee1017b06f436e15dc811143be92e782246a22876cc494d893dde3154363011b1396dafb", + "03989209ebdc49fe893ab428b719a790555a63d507738ff7974b224c5c6d7b35805251542cf642bfa7ded180e75a3ff34829204253ac784aac444cc0204583219e62bcad44430bafa91845ec44d548c30c46ea88ff459db6045f3aa556062953dd3e1549686ed054fb8390181715551cedbd939c8a49210602ed217a62f2a89359534b575e", + "01a023d40c9b5dd3f907ddd572bc2820e5fdaaecdcbb72ec4b579fa66bd32cdb7bb9bb3544b958bf1347d4750d4e1eb13090077fbcd86a3eeef0378c1d1b68546684cd0d9995e8c5b3af2ddb0166712aed9c54765fd12267589073f21469a5bb541d50aa859d16fb0b68dc715e35b5c5ee5a9f0ef43de6b4f137345eebe624b55c7c6a7c5f53c64334c2fc8e08ce3ae1c82b51e751735cb21621df021bc41fdb99e0b4f8a8fc5a3ea138e33aafd294068e9aeb5eacbc9e47743d11964b0fd0e49f0fb2ae4ff7022c3d152b1cba3863f9b9e926701e103bcb8c69a8ec1a9baf90d0e27309ae88e5ff0b6a47dfad13e4ecf66eb9bee4413924338273ab037323482119578d0d361e2530ff2f76291bd04a8f52fc14234e3d2e689311686cba02666a4ff2a41dec", + "035dea48bdeb4f52ce588a70e894add1331bcc91a17fe55164317816d3ec14f38bbfdf78c06d6b43e47112683dc27338cd65771a5e4a84a2adefe79f4935260922aafd725f0c220c8674894546150f488bf801b9c8ae9cca888fbc851583f955cb1a5a7b005c30b654952d7d1b3cafaddeaa1d8de1532b78641c4dad0a2f729575ed04aa53" + }, + { /* i=3531 cDividendBits=550 cDivisorBits=475 */ + "3fb2f8f2dbd471aa8e32050baac41f5e3e95900583a988f3fba610c605c340baa019d4d757492b539e77710a2f1cd94d08ca55560f01213140ba731070a2dcdc035850d690", + "011b85f6b24f04930426d940371935178166a16aa28c88c9a220edc78c1402722e41e63df0068d4619827b5e8f945f87d11fb0647a8e5ab0158d7bba", + "3983f51d88fdedc1b189", + "34769c8a75970ad8104e0ebe9fbe46f64eb8fd0c0cb4b49b6b7ffb91e2617955f52b513763a745c7981c73c2f1ba8ed4ef4490c0a642d983d40606" + }, + { /* i=3532 cDividendBits=3974 cDivisorBits=1786 */ + "1d0a8eb522e020e5386f65d19631d9b851c9fb128f26c5a3801c6921dbc61bde16500a7ec355d03eadcf854849d94fb53e0e1455e907c7d9ccff488853143b7c6fcf241d06274339587ad59ebeee4b1b2a50fef80102b6cfb33e4c1deafe54e639d15279878be28385f9b2b6751b4dd2dd09f0bb59bbc5eb74188fcc002caac550702ac75103bda60f296f8d14e9fd95ddc8c0384be2351aa67937c26f4458b674964ba72a358065e886bae9595d7ec40254f548e9aa4db2642e22b1b299c67984bfdec3ea865b74d68cf04718b2c23fc07e22afa8233f81ca54b6d713d55bc584c0cf40f47bf1ab54da00ebd205e8a4bbca924876ad90ae95ae30eaf3fd70118da37340e077b246ef8100d0a2b65d2098f17a7a1f8c5a25bd4b06164a88e173c0e2912f77facc4e1b955c7bfa193d32cf4b822c594cb1b2bd2c03f2324ee25e07eb93f52783f3b8b2723e837fc6f0841b162e16fb897f6ca1875becf076bd25558319aaefb7d12d29e11dca6a7d3486ca78ee6bdcab8cb961d793da9c04f86a5f32ac4409afbea5f45183eef7e256d3dd8bbfae7f74c1f81d65afc8033886ae57fecc6cfc733be26b9e5e701d4807e5d70933b2737513eee3c705dfc8e13fa5a1fc57eb66e41800a8d328d0c94eba76095277308e67c1fecbe6f3fb3b295b15573d1e258b7b6257826ebdb2f5246a9c71", + "029090619d88f498a895626fa964dd17b41310997dc9c14b705f69c486d5caf2146854795e3ca395e0bf9cdeddd66d03a75dbf10872d51f327d7e18804259d1c4cf85e94c8fb568b0a49503179c1894c2047ce5f7c6ed3f2faf43599923335de8ead7cf028c1da847c01270e136b331d84487fcc6fbff322c2d8ee6efbb9c684cce7bad3aa47ae7cd1e753554cd153d339c1788bace37218c4376a5626d8a003aa40eb932c9b2aba541aec9d7c899a2dd468758e2502295673d96a9af4f1f5ac257798b71a090b480efa0d660d4445d7df6cfd28d54c5e86c97099f0c84de5be", + "0b52cc6a768446412082d04925499790cf0293dd6a327cd26a3bbd4116b9f22ca3d4ed4086bb5242090a4e12004fae2496fdadd3b6d0ae5cd89bfeed50aab0eb667d07ae8f6b84446b895736bd7ea9d29dfeb30f71683e1ada02febc0a8b223a0ceed2f3c0993911444e4419a674902962e3708236b3ae3dd7b917d7c99f691c71bb9660acf1b02d29eab53ee6844f7f33cfbdfcc4fee697e492c8db75c3c0549457fa6c86db33754c07c28a2098366af446aa85fb88b22dfdcb986138226e0ed211ffa4f31a180b34ddc433d8e088f29883e3f6cd67319075395401309d606a6acd93d6a6fae7988d9abc4b067335c65b8b13a75f1eec3f22d9c89b248dc0c1d9d59713c9af232ef771a73d73036c270ff3", + "02559a659377d73b5bf49ae577199f73e87cdf2a4ddd8fa39776f3d8c12a3ab5365a2e7a24c6bab8a4a3bdb71648c58b4fff654678b7ad4f18ab6bf23b694b16b81a1d7efcf5ca88c127f8c5deff64702c7d564eba4373ea34e845da8491552a009efd7d44c5e67e5b8a3a81e03c4adcd953b1b2b0a405a61956c6e2619bc6f954b0f871b2256b1c0dbd5cbcfa36488f26c39e675389aca8837ad44152681f80f596e6834ba647afae9e90de1f3cbf2d0825d32a8506f73bc8f159c70ea1262651ba08ef4fb6752fff02baf71d1b7f655f1f7c9dbf22489090430ba64a116717" + }, + { /* i=3533 cDividendBits=2828 cDivisorBits=2272 */ + "037c211e4f41be8ff13ce9750ecead82374826e19ac96cba437ad37ed0d65af91f38751c32d0c60b2d0632a00e3171fad55ced4701064b855433db5f9147aedaa3721a55e818be9cc381454a50ab97f574de2a3ffc7df5136c833f8a43f21f3a38eda9de4063b09f8d5bdfec8302972b3d21f1744882347e7e1485c58593e787b1ee3861751540b2b396669a3dbacbc2e1d7697f529c188ad563bb824a780d6d9ccbf73d5dc0e9c4f5f0f6d3211293ef8437b1701486d71fbb3ec5ffc94e4b6e574ee1b7029421560a4924228467e508e6e76109cd67ec5601954077a45f315cb627c89d804b60bb092ccf925c0398bfd547132cefee47e0f456a0504557d5ae61862513af99dce121c30e9e555ed30c9c0b3619c44ec9a590337515ecf3acc3627a6e44a19060e690e3e01b9d65403dd1b0217b3b573e36e3354ebaef3b49a92f04bf8abdaa17b1f2cd5c70eab4be1fe65b2ff63095d0b446afa6d9cc6ed4d47921", + "117aae28197d120ee0593f53e966f9feb20797c9866053a7ff64ebd3c419fbbaa76cb1005a31310b54db511bde4b60dbddeabb85bff1b0c60de1edc38c0d3b3ae074310f72e4f20fd03e1201b5f213c4193610b7f19f41ce62e8ced53251a6d51c894f3b10f283f998907b0cd928296a7325ed9a662c29c775542b973dd455c74205d0fda7c3399a5fd4173ef24906e9e9435b857ea55d83bbbabfe4866916b31f2b802d6f1824f4d5f6064db1bb3fa8740d0fff71b65df3356ad3bc44200616c7418baa2e445d707f1eb5f1b652daff382ef9c64fd95d8436d1c54d86afe675f911e01e71b7de3040248aec70062298b2ab5aa0373f813dca9c9a5816e73dfea9b67559c71114d640738f21cee9c9bb28a3279a8434d60f81867fb4", + "330a17e2f40816e084ccfa8e9323b42c8db9f26d3ba378047bafc3e62c671049c4db54c6173671a032f129d293987d349057918e5b191da9940825e3bf1e46421ef146c4f9f0", + "06d7b828d4e2d9682849203c553e3b95901d865d5a458a6cf632523a2c08fc5b8256fb9f255173889e4c3effaa7c4816ea12f39d0b7e39f93e3ca8024de0effb0ef31bda866a04e5311c0f6a17f51076b0f502da7a7982c95f3fa9b3e4e723096136a02a8d3e26ea07c085f81236a590532a4de5cd89b1eed94e5928830666dc916e46e9597d8a50e158dc2b9e1f38d0a2a90e4ca3d4b7deb9aa317f0500dd9e1edd85185c62f0875c1e8e3c3690cc1d351bec1f0f3e8cf7c981046811625e95603fb4d19385822b21db30780d640085f9c98b37a32bc11084f0228648101c07d5e6ed6940c5086b54e8716b93cd8cfe941f88063b25a21382723e6df7297b4b4f6fd367a89c4054c889e8aae1b660f197e26bc958d4c69096b6ac61" + }, + { /* i=3534 cDividendBits=1933 cDivisorBits=1841 */ + "04c1a8aab24460acbefb6c7382f61d95b509a33566053eb4e328a2fa6f6e20dc05716f49a62f2c9b9bc9f9d6a5df1337b915146ae2f7d517fe51e13cad075b9a1883466121647fa104a2a0b4d89402347f04ea7c66c3a2e2204536b089ebeda5b129a39a60cb05771f807da8c8d6e0e1f2c09c7616b2cb7c0f2fc01dd07fba65edd9c87ca6b049de4a136d37b1b6ce602d17ca06c7fd2c117d6f4909b2a63a1ec386dccafcc67cddd4567290acb0669e6695d8b97fee312de5c4cb3490e4255b28827619b9f4c0325c2bd60d9bd12d557c42b5ce19268fecf6f074b49d02a24a21a4a945d7e4f17670cd7f1aa1c488785425", + "01ee68062dad67c453f4a238ba038ee10d476fc31a66ce02f05cd207c267900ed150d11d54ea282f228bee951e01775c08fd5e21c93b2441f9790039671612e8ce7329d7e2f5e1d77390a824ac4e5eef0e6d8eedef85e2c7f7ae1d41cafcb102c9febf4e8849f5b7e4fc3f760729f584472010773243ac5bba9900288a9797738763b61ad1e2c6e270bec581a76fd5d1974d02380b533a398ec97a305627778aaa2539a4e7b616d66f33fd7dd1cd50752ecee5db15c524ec00909326853dc07445e7c3ec2bc9383f386a6c8066283d3d84d73957a234fcfc5f1d5ed842908a1e59157b261b9453", + "02767eb0336ac2d2a5a83a76", + "0741a5a08d7d87747bb5e26ffb0391524c4141244b82f9c742f1a28d0428c30482108a4fee1b4116ea289e82f6fca2791e922afd64bc99bd2d7c55da84df1d76c9128fcc9ceb073633b43f381e008e6749ce4e515726497b1a0ac04890f4c8b1e26a7ef66437232877cbcc1032ba5a4c5d86b7e71ff20bfb0b265810418a787b31b595c531ca27e2706a6e8d9928244e5665bbdc24893a211f7ea0c317ca7c7b212f726c1fbe4d368abb83c28143ba782ac2d312c285a5750c5dc7d63955750e86c537b8e67a14722699326ded7f0e19a7a75b64a85698e54894aeac2606be677995e2af27e3" + }, + { /* i=3535 cDividendBits=1350 cDivisorBits=515 */ + "1496b85302e816eb0853ac895394eff196e5510bf6a6cc458a7584e099c8a0a5d3dd8b7325f193abdd9682c1d734054e06bfedc4698d8ee76bfb355c51d39163c05eb21f7d73f5e5f7be324840ed2a2638fa6e277c481a84b884ac200ec0241d43d0be0d7e9ad9adeda21a7732dfb3bb6ee43353614bcb311d084164153ad24bf33622a00bf901da3270e9a60068b70143d6c44ed40b23ae5b014741bb4a324d3dc3df65616bd8e387", + "04784de4fec1522ebe138013daab542eef57e0bc4311a0f99a9d6ef3ee73960de157e4fb870e5889fcb173d61c2ee7f69326f2624b3ae4ffa817b4e6b609e96986", + "049b25f04ca06ef5f58bdd0dcfaae5590053734b38413ca381687610a33ecf757bd920aa5cce1124f1a941a5c20b3e7934a400dc170ff06894e90b86c1c1c5e6f4cd3a13392be1756ff631e99127573081cc7a7246a0e57e1dd4551f10c940aa7bf4233a41e3d5a28b", + "7282823d88ac215261c496733594d3fe00ca1fcf927fbaadcf0d7ad88c7ab9b23a9fa79d9520be5536167b910c60a708f6bc431439efa68a7ee88f77b6d7cbc5" + }, + { /* i=3536 cDividendBits=3699 cDivisorBits=573 */ + "034b0ab595c914e3d99bf73392ef2e61e6c69f2a9a2f369d660419d0c85e3e15e7bf9437ebd2873d53ed93cd24ddcf5cdf827900b05a80e62f7bcb0e6f2d3728c5d33152e26943637b41244b9811b9cd574c21e4c6173c3a64126c59327909b049ff0f923cf24194727ea3d0968191e1f8fd6fd65e47e12d7ce1880c77f1452a2517b3a4d6003a0ba4af5238b94939baa70954097a368e1dd2126e73a317fb3f58b0fb155d63e100a69bc35b3bd4b328a1487a4b1b91c7c41062fc866353200e5de8c823afedb3fa6de6ab38e8e64a2ee76e6d5511eece64d93920989f6c1e40b815a648bca0effccb0077ad2cac751ab74512f0442135ebc488004730652e6f8b01ba03a892570f81ca74867b7029aa00862f50485a563921fec588d8ce2f1de8c4b16801633239f7b952fd75a77e7a33c527233d31348cefba47a02788470063f34047878c2e31d400201aa93b489d0110ba73d83590449222d85f4eafd04fd6be7500c4e97cae18de292ceb8970ff982b5402e928e4d2fb1983dfac276175ac00e4f90cc319c67dde020b304d3390c7ae7d917b108dffaabad50059b31335d9d8739ea660c121383c0a7995ee6063455d2a45eb6fa8ae3a5eca8b2cf58e4829e45d7180f96adafcfb97c6546e57", + "18e215977b2caefadb75dc8b2e8f3c080085ec52a29bbe9fbd596a9b5a67aa811517e92b8a7bc4b37a45763b3cb5b501d3c1551c2c08d0ceaea1fe7966b134835463d1ef81c1fbc2", + "21e14a453986f18d58fcd20ec3eeba69fc59cd824a899ddad182f424ce26bb61d2259d4ec4e2e55c4a4068b52cbc99ca90bf17a6b83566e26c030fdefd96176f800d697fe7759fb28f0d5709dabe2bdce591c670b0d1401168938389de81757592015f70a4df2401666a8d57d78e4a886207e5983ef037e3c7d15dd88523349f038adfce1d466709f2e36ceb9c35c1f76b99bc7aea0bd9480bb02b7d7f37bbf37d9796978fa6e0833708d527ec8694ac4c7ffce46af2777bc6c681e9a50119a609ba4a2a6a4e1f7072c97479b212477431f4e5acb2c96db42cd9203a6380b71078ac746c8c9f028ed5190574763d5d21b7d4673fe04e7f1bb9d0958a5a4ade4ec5b110ef066eb586a68d8b0b46e8727ade8684e1f28971e7164379860ab12778effe62a2a24d9e08267132ed77e1e9256c040adc64b1f56de3614a92fd1d2b10f6bba5948b5f5d7b3cc05f67cfef2bcb74a13d0eb186fd12a7bd60ae15a31d47fa412f2d7079cce0b91633744f101f94b59954ddc3e1967ab4be0d50bd5f76febab1126fb0f6c8", + "0cde4a35b1a476bce10c4ab8a695f99cb1515d50ee3e329b56fff442ae29cbd0b4f0c48a6381a4c0dc7eae717bb44d00946c906f1411188295c44e8c7ab94f5c2dafaa9fcb7b52c7" + }, + { /* i=3537 cDividendBits=21 cDivisorBits=18 */ + "1827d4", + "037fde", + "06", + "0328a0" + }, + { /* i=3538 cDividendBits=2894 cDivisorBits=2482 */ + "03614e8c6a2d5b9a35ccbc3f1e24db7ee09a0cd671c3856ec57f5af64f5a2cb71df2c5e96a930bb6533590ed93f66fd314b29d2eeb49ede39b9e000a11309beb37082f20d7c6da313d714cfb36a81532b539d31714637084cc4efb0c7477223912a0664b8986bc003afc12b12a21816c1e59f390cba11ef03106c2c6715699f24cebc1bc9b426be283ed4c328f438af8c4233e9cb9ea4d2e1ce934641bbf33c4c7f27c9d0f4af266e8ab6601d0c6e433c3b59344471c912c39ece63fcdb6496677a3b6ece1616dc3f18e7146d255bdc94d5286cd054856b3e7652e934c3ddc1972535fd66e228f080f56e29d78b768dcfed7a77afdd942ab4cfaf303a1e5d036c4b19cbdd2b91d8c26555c0288c93ddc2b7464d65071d7a063b694eaf9826aa339bfe6be69608188acfe37ad1f0f37590c04f2a3066dc7272d0696f5996a4ddc96f2575577a4e6ab0aac4f3f1e025621940451f1a555ca244f3aa27c093c67158dbba9bf3e2b0cb64490", + "030f93abde7c07d6bfe9892359eec08fbca334dc79020898dfe479fa93dae94d925a7472a992cf2194419388b53536b782cb18c912c218c36fd09560b1fc774d8c24a5c538cd7e91592036baf5d05264560a4d5aee5f5af3bfd5dd146363234e2c24ca7b614d60d61424dd8fe72669f24bbd4c499927a706cc02c141aa8b7fa9d64dd9b26a702a95793c3caad2dafa086ea564c350d1d1c46299e58ae5a59cc641fa5ff0073a7b2222b7ba4d8eaf1b638f7205005001d19a11fee8b6316d9837d44cede683fe2fa5f69d12b704cea000561e1f97499dbeb24276b3f1146407f47e38895d063ac07a1640756577285cec25812103a5feb8f16bd1b9a1c941c2f19a30a4b6ae2372ea678a43ddc1ead90bf4e37c5749f1b0fad2b17410618cdf0f3a9c7d1eea9588fbbbd3cd87f13adacb8afdba98a0eff2", + "011ab3a63d79b5654ea08ee9ee5b00b35b75074c8b231fe5ec31408c6dc526b4caa50feb58348b9f82239be39b90c349b9ec7e38", + "5384b7e88aade0ae1d2455b4dd7a5e697b188157d3d308163771aa90c894b70626c3b51d0154f943ea0642788de1af697cfc9ea0874ed488ca6ee6a105b2687697c640f5e644e984e35f6847c1a0716b7f2804614e6ba261474fd268cd483632ae29cef06c0e614ea833f02e26f8328242a0167ea03a057a7e5aa342e3b1359c2761153443751a24f185e8c9260c24ec52f28f791ae2b0fc6c3e8ec99e852ea3315b54af64d3429f2d04d90f07dcf88a2353831bee668fed103be3f74834b43ac6f64f83e2ff41028fe4bfcb4bbb58ab39b140a9f01d2352226ffee61659773e22603fc0495af6374783f891e1ee6ed76d073d7c5f70e3901dfbc2a32983139db1c6d2c9d622e5d76fc67d824b66eab3911e801e469b8e789638c5bfb44b66ded6fcd22b277b0d38d22f7934d6565f5b22755e50aba0" + }, + { /* i=3539 cDividendBits=1012 cDivisorBits=1000 */ + "06d746e0564a75703b5462f577794c6cfe926ff539c6dc8b6f04c268f9b6c087f7e49d6951651cfd7a27e079773b152d210ac752e8c4b72938afa127b368c2f3305edb2a4a9b4022fb3cd9c439cab46adbcce3dfd6159b9ba8366381de9aa534bd4c856a14362a9d9e874858350f951174dd97e6df9f03585d54c72bf27863", + "e69bcda09981a11190e68ff2212b3e5ec6b79c8c7270367adfa98f6d3f6b25d2d6502ab6a3638e2f878913afb044fa2d9490a9ab5921efff1938f4cff99b6b4bc1dd3b98ec30282bc3e01067d841d537c0f3c308a11daf510f0b70153fda8bbb8448d32070d5443909ab53e473c0817eb72b80c26516b37233e9127da3", + "0798", + "17bedabcc5111df00c2060cd6c0b5edd6da86f41d86db9f252cfd41d2ae0bed92ca4f67c60fdc13aa78bf918896156ea9cca7b97dd72bf8818a4a8194ebc6916b32db959b271eee56c47a538807fbc6ba8cecc8e223058ac24a6bd3dc19fa557fc66d5dd571f8d65db532640973a1a9ea58d1b6f5ef5b21a9547886a9b" + }, + { /* i=3540 cDividendBits=846 cDivisorBits=711 */ + "3fecec22490df628b5862221df889e50712f2bcad69fabcd53b07a0c22c4a6c4b61a30f89a932842c34f34ddb3d283e8619ca053089ffdb6ec936fe8663c4ae7e4bb83f527dbc5eed560cd99a14131db15ad30ceade84af42238b891610341ea1804b619414bcf3f6e9b", + "21abfd184931f1ba97ead661de04a713fc6a49562d34fa997ea2594d3308630ae097e1a4c32a0edce0c44fc7510fb80c6a25e4fb3e85f617c3caad56b7adf95c000f741b7eba06a8de2f1703d085c8559200378e07a6b55fb2", + "01e603233a8ab5ce33a75e6863ce0a16b490", + "15ce9f0ed6d14c2a95222dfa8d204259d5f3c284ef56606fcd5f61c60f6218f4453094b457e5ac6677c7a78cbff9490e750fad2dbb9d986025a76b2450dbb44d46f5d29ffae7e21c860ac1030a2defa7da7f8bbb3754a4727b" + }, + { /* i=3541 cDividendBits=1605 cDivisorBits=26 */ + "1173c51a1555f8788119ad01ac1e9b947d9bd3d41250da524aaa8fd9a0718ae151ca4911da5b3818a4de27937d1f32168b6803a3faaaf0462ddac87199a4a12dc28d02ec9cbfdb377980bc163fbde9fbfb245f383927b7f516f642d4a0e897750c04384d5174d6c33ad6391d8b9852613486823a28ebcfaea0414a9b5f966554affd01b3fb4dca9c8bf77fd5e5474ab64ac481e6d1b1ff9412f1a1474d607e3b39943e8f741899550b038150ed7fc865343cb755066e0da31d4edaf3be84b99967ede51c32d5d35be7", + "02e7db87", + "0601977458df204b2f7653a3e8d8068ad829ed62285e40e9f7d3f4eb18dda56ff27ca95d1b5add2e00a58065c533f79b2858c8534ed1af7d3c5b57adcc91643cc1e20ff32ad544f91c42e88d4607c117ac4bf88c1259a2d574a030ae8449864dffd0e19438bf44fba46a1386574cc397654072f9bc00c983e68e208a05a28e0e9f607531e93143b3bbf442c2a95c9963504098bee8db2ce3c74ac688cbdac6a8740380a64331c428ff7b762baa25f823ccec331076ab30caa0fc4ea1bd65183378fb9bc26af0", + "0241a757" + }, + { /* i=3542 cDividendBits=1185 cDivisorBits=19 */ + "01b01665b5ea40b4a29d4973dd96906147e1289adac3f4a5b525c1088686c06a24ee524fcbe7d797140755ba649a894793bc28b880ebdc8b958b034fed7116d53e2a4e4f60b75055e38fb33a055a5d74dcb5edb6e6ae990805bd858384be7d66ade0ae151ca0729833a4626bd81968700be2ba23b4468f4ecd578b2579d3682dffeea7b26723bd66b423558bd2b51167467a370917", + "01d284", + "ed1b8b442da68bf4296aa0e5f9660fbdf262ad9505023ba2d3f07b5867eb94b22251a4a443a64b71c96dcc3d23b6dc73668a5abbf46f3fd8c9bdafdc298387ec44625ca785754c9577021f45e4b62062e3f2e9d5363322f82637edb2176fb17d735c9ef560a539afbcda1e6be69aa95db2382b41e8252410e3e4558eac6914c67040b9264651eeabfd0ff6fc598487a864be", + "013b1f" + }, + { /* i=3543 cDividendBits=2256 cDivisorBits=288 */ + "97c0c034573d8539bb0d352082702367a0a4a6d7a68f85c42b005801fd97c0a467d32712c7e20ce65d42e5928051fa0ca68c3169bce0bfdbc858a0db78cc60830fefb68bd02af93459f926ac1631ad48a5c367512b803a5aa38fbca23089facfd249280a86fc2bd88f25d65381f5b73bc60c5f0845279777af4e09a0246896300a70291b8c991714108ec575cb12a8213b85273f521a686aebbf8e5fade962c59f823f2c546b30c17e96737614ee4cb700e6eedadfcb4c0e4322ea27a6f11bfaef50efe33d1d5cf11438d281b7f7ca3db092adfe503047cabbfd7a0022fc59ffb97db6ba183f3b31c5f0c39bb9443275b46622dcfb40cb1154b4418af446ec36c9aaf2626703899809b79af8720bfe6c674ddb732e7d2d47c0f4", + "3885f66bf5f173d864f59e6143db72bdc383ae8e3d8e2038d205bb31db9af514ecedc664", + "02af4e201ec1feca6432488967e8cf966ff09e7539ddbb270e16c1e5e63e79e5c9d3d16d3a0106903c605c6c3029df1b333716f732ec79b155422dbd8ce6d57e115b1d73d396d26c3bec44a377007413958eb73bb214bb7117bb310ce67f7abebae41b191837649124e2589d18c9fcdc461486e89ecc5214d15d71bbc678db6ff3b476cd1772e076d717fb64467b8502b1ce67103ba5630e5f8cafb9f18610044230d4b447a833b15cb0615ff92bce0eced230c941eb0154ae94320638a308984ef02fda8ba903c61efea1d1bc3caff16ee0d458cb79b78994cde95c1d2f476830b8c53adcbe4559b042c4b85456716f66919133792556", + "0b3a5259d95679ed306b0bde9b8b37a5eab6bd921ead83f6e40f4fcc65fd75aa8676a75c" + }, + { /* i=3544 cDividendBits=1617 cDivisorBits=1497 */ + "3280163a5a1cabc9c064eda0b94af0db9c248fa8cfbf2e34072698ea508c65d8d8f5d2e05f31d26e00648f2b2aec2fc2da398683bac603378a33e3968ddfdd4316ceff7d7d7e38e3a3632807fbe6c6472fb6ea76f38f48ef5e46773199c39e7eab08000eca3dec04396a5124c1b8730befbb4673ad0b2657a91db330cb38ac203c7df58a27ffbff26f6671976dd3bcd6c76f15ffa8687f0d9f5cd06d4449a33973570f151058ab70fa2a684a2ccefa765e6a0bd17968c05130856c5057f7c6f54070575848439449afde", + "c94c240bd2fd264e0b5cef862322c2108fdd7e26f93e7d0122c6fc54118ebf0aaeff9f2f6fed820d5267fd1f47b48f7050c4e3aae02b1f7ef727d74f53857b8eb76a371f9277d34ea153bd81f2590a5c18ea34cea7968a2d7d2dc971256237daa863f3c8e6f8115be72700d49de862444b1f4acc74822a88f490507b5984fd453b599cc0887317037317d5d832d94d3680261dd6316a385bc83141770696e638dd6fe3d4d1198da593afd378cb5002dd37f712f987c255abe06109", + "40394b5e309927f7a0c5c278c5c53a", + "73aa7a37242dc169d3bb23b470714d362d9779d9950401d8182aa2d4e26638c7395652eed197c620375f6d9aee177de6dd62d12d774f4750a8b0ac1d0f28b45757c058a88b851eb7fa26af9bc75d7a4c7b93d8c6bb34ec5477c6af81d387070c6fb0fd4ed3252656dc3b60603884e64d65f4c4e9c9730cf46b772da84ef0d19d0879e040c893c8fb5f196835b3de2c48876dbaf46770d1954fbc948a72c5ce3404b46fcc837a6e087cab9fa106e85617e8be2262366c9e14dac6d4" + }, + { /* i=3545 cDividendBits=1163 cDivisorBits=871 */ + "3ec2d4d787f77c497fffa897cb26194493a616c85340135c44fc1df51989b413f4234abbd64f1cbe38ba9855e2927e9cee2b11ace83b6daee3a70191f3688c047c9c16f68a8ef9ea6b0bc17596d2d0b50c158783d9e1ed3d5b0c07143f6299b45d9b41b6fdafff1fc4a7c41390cfee704578c1d094a8d80af7476908a84b65b5f46052136361a7ec604466f6feee17c7de", + "089127fba3e2b7c466b5d314b2c4fcb5ded662438acda4f343b2181b27762804a553af5b85b34c2213ba50dcbe13a7bfb9a89b101f9e4259286be410efac50d8e9f932d06eecd028fb457318306301300ddcdab23f91f3bb2ed2f787eee29fd8821e483b9b7d412acba5479719", + "07536dd6f1fb734abcd631ef987bc9a13a092c6da18e5184cc523de69e35fab3b02a998f18", + "049e66f251a1c4352ff22e4039264c40ad8f468a3d9f19be21a29390abf0c6b9a4c9f848a9021a4a5339994e863cad8d0083d9128b788115a3c45cc10b97dc97597e5cacbe3fc264327f69bcd45c813a0845506a43303be72c159e82faca8aa5c916662baab7474fd10a09a686" + }, + { /* i=3546 cDividendBits=1535 cDivisorBits=986 */ + "7f19649a260a0b3f22a3bb921a610ea38e516eb6eabe5820a549fc61d93f603fba3968fe68de10c93dcf29c30688da8de497c7232f6bf7d4215acc41ff28a8fe4dcfa2fc2afff4b50a85a816293de8a112a4cef7dd781e5d93f9e61204f55853fa6e9fd4b5dc4d5939676e0b69fafd4144de73d52d0aa8eeaa9435719f309548b759a53625633b15ee74f2b5e4c357021c595d3737db99bda280249880e7b235de67913a3ec9ed5ebfb69a6db598cd0ea0f3c8bfaf859e6a2a1ed8298d9374f8", + "01a19e28a76a840524a0a291ad30677d61ae279c88d15bc196dfa68ef3994489c04a237709a5a6efd6304013630b36c7441a59f46ef8c859c7c3f23349f6e44bab6b87be3089ab0563192794719e2822faafab191b234f6b4955630aed68add9fe99a8666514f09fc7ad080f7e05f146aa7b788a573b4bf2ecb0876e", + "4de971aa66c5adc0365cdd453196ae2c3db4a400b163f0ee5e262501cbb0c77fc06afc64bf2f9d54e845f4ea04948faa205fe605d8e8f04bc69816873e90c1d35483831789", + "eeb4e9499a4fc571f0ee50cb71021d38fb4bc2eb5ce309e4b67cf0660125779030692d4d714cba52db5f22c190253e9aae5ba655a3001328958404155dc50bb0f9a96a600f3029ce0381960e0fc0d6cf97e7e5a1026e6ecf74ed2e3241889a23049b07ff6216ca9cf21e61084e92b91e3a02a2d7a8d22a6fa6191a" + }, + { /* i=3547 cDividendBits=953 cDivisorBits=453 */ + "a203f354bea79ee51e2fd092f1cbfc9bf8394844923d8b92368296fdad0c514454e805dd4b1f63c715f676ca44f1f6d6c705537d33772424724eec83bd30f256bd11ce03c4beeee28b016e1833454c8c58084df1da6d59f8d8a58e406869469ec1c4e01d834433bede72b50952073a85220ca6587f68a3", + "09439bd16855c77adffc34aa2c581a2445f83a4501f52868e8295f103a8933c3590e701d0b78d4725d5e35706c6454df3c7fc3447a0a1e2c18", + "117d10561ed39bc1f3da23b1cf8221d170db217981f1dedd170ffeb9f5bfcbd259fffa08a2612f29beb00f0ea957cc8afa782c72191ec5c10d06b920ad03ae", + "061bfdb0ad90adc9bb494beb08d909478f207230febac7e773f288b3af753888bf53c0c177001082030279a989b8e47d6b82d10a5651412853" + }, + { /* i=3548 cDividendBits=1401 cDivisorBits=52 */ + "0135c13f6d75925b7955ebe7d9c97d66a19f03e265b750a80e9e33bbe17c80efa19d0c2ba89e35355a97e35738de6e21abf56c582bfa26b27923023918b448ea7e7ca95cdca0cfdaf3241695f8314e07657fa929e549e6d1643f9107a411a69bc016a60e768e41e0b153a55c76db70bc68bc3a0802cd3ab447c10f37f4e4914eb164985a833408eae6564301479b71679eda2e372b8d9fac8d39fb5a2357551b97bbfb787c5f33d1813ac764f1e3a31c", + "0fcf4cc37deb71", + "1397b695fc323c93df86bae6012d1e2c5934e1293e637e7071b3710bffd2c145a335a2e24cae19466e182a0cbd9f654d05dff5025cfe0189ad3b040a3dd652ad47a04610659866bea755720490f5c96f479cc2d5cee376d92fb54fa2a5321e344d70713607b619bbe9c27ec2b585369c29eab7c647b15a22658b20abd29a6f97bafc24f9c201e636db961f98ae759a8935e1466f6e5fe69a3f7592ba58567e946b881577080610ff3c", + "01acc155cae5a0" + }, + { /* i=3549 cDividendBits=388 cDivisorBits=13 */ + "0aea3697dc6d58592fe84edc71d0c62d5bed59f7cb7754c58ac714a85c4aa32313f0f72a1fdf84f3193073e1a492705acc", + "1ca6", + "6188da165acd660959ff8a978e18175d55fc4c81b116dafbd6a3a972270c0c1d75632c6798a9658b74abdf62aa01d3", + "17fa" + }, + { /* i=3550 cDividendBits=2883 cDivisorBits=2188 */ + "054888a567bf255e63927fb1c7dac9c7070ce9e092ca1fb6d7b5b7d51f00068bcc82bf1b9ec94b68c52e99ddea2ee1896ecba0a73f0cb2eec328615e30b43a62a33630fabf37c808112f00fab5dd935e2ad0147ecbb99c0b4141a2e3223992ffa56c1345a7cad81b0ebb1620e0d6fff7c716338ca602a5647a19ecc2d032c265dea5c4ff6c63332943193ab41231c07e4aeb6626b7e998aa8f162a4aad9300c51d2cea8083eb8ec0924f66c27cd0657bbf5f81d35e31b369b7fd16ba7e67a86d4cb8f93e73bd475bc9aee15bbcf899408159e421305a9e320e275d32d039630775c1c2c8a2c190c17a3115abd38a279352e540efad09c864a1ab8cbf9cb80d9abbb5bf8891b91829fbaf02f2186c442005186e35d9fdfba9a3c628770e534ed548014f54840787ea3256f6bbfd7b6a74539380f743c24e62997e317f86d0630429b1726409ee652c85769d998f76efed92f1756750d5ce35c487108f9e8096ae4ed94ceb501a30faee", + "0cfa04d6aa9d1015a0054aa969ba3af226744f960ca2e9355b0ea81f90da5cab3c1a72a5f123368f64b60e18bdc8f607563bae275d1159115a02e70aa7c947f9525a325b94255b432c9bac10c4c4baad8428457852b2694557aaf730444c93da3c04973f4e8d75536934321dfb47f6878a8ab77a6704b7f25b3d97ef16a5c169c0c5426813623c8d57b22e809e6920289c8f7807977635e9762caa5d1937bf2dde8d79695255ae93dcd5c7c939c342294fd1bb44209a2057ff7bff9e9c70c1b5b2abe838845a6c973c0f41e3ea234e5e3ee618754f0a76c9bca43b46e52e012df721633780a39c706e6e134e6bcb55a34b2db73bcca50efa5354b5961c0367787077a522ea46385df7466b7b9bfdc15382ef", + "683a7711619aba70c6cc885b12d29f0f3e0b5f987879c016ea3d6642847e79dc4e32059851fb2c132c46a337b27d9cb8404122b67f18697d2b529ed32715ab3a73490adb1df4ad056a156488204ea1e8b22630733aa2fd", + "0b6ef0dc605165b4992e8a21e0b6f79659614e00946832a22e14a12806faa997550669fadf88e1b6925363792d5ff88b952b14d25ea8799bda20ca3d6d73c790f4f7bb7e2e9aa5c0202a7049bd0d66a8db5097303fbd3ed15f889d71d33558bdd552badcb29f4c095a047b97b32dd93f8194995d4ed4b9b4ba4d1c811de156130c0476331f882bba999c2be52da3548115de03d536649eee7b9fbd1b35e0b7a0159552cb88df7033ba5f2e4fa85368b84959744928e8074ee4bef9e658173ecca9420de1bccc016b6a61533397e9b1b4cad1cd440dabdd45dbf5433638b82b7eaf9c8c8d125e55e1dacdaadbf576cbf7d394c5877a4a73bb4b2b9b64d693da83c4ec865e56dc61bead4ecad0d5a42aa756bb" + }, + { /* i=3551 cDividendBits=1089 cDivisorBits=301 */ + "7824babd11f7b8d84193760490888a8c292d99a643b1f497c8b194c8d159bacedb33dbe6916c3e22ea95fa87a35ace941edd642c27bc1d1073bcb4edb0dafe7c5e8c2029a0f6998489d0dc23ce07a16d53f8f2ec20481dd000670def4586f3fb070787cbbcb97f0179f67dfe3778191f7ec147a357602e5748276a8656af2f2b1516e7a19d34bf68", + "02f1cf5e80725845b358d25a143cd39700ef62615c95353855a3a2e384e4fa8ff7fbd4e4c68f", + "28cd3c14f62e0db4f64fefbb27b0faf3e3af8d56b5b4c8470b5e087191e5cc8c8edd4c1ed5b1b7a66b79aba0dd4415f80d07dd32d93e4bedd2de67f3714dad2dcdd6b805f0611980fbf3dd10fc1c6c9984a0d3a20cd3fbfb4b0972176dd72edd3c8967", + "0221e5b4863c30f1104b13ca33ba84c1e8832d14f5942d7cc4d9cf7526ebe430a68a6254df" + }, + { /* i=3552 cDividendBits=795 cDivisorBits=595 */ + "072aaf5ccfc9f2c35011298699ebce6f3394f9443f6d87ddc6015000a385ecc4ab25b24d2ea3b9c4710984fd1cebf7cf37d614a0ca9222f5de96dac55885afeae3d7f8fd59799dbbcd017df472b63dd827fb502c14efff4fb4a93345acc045ae5ec0cf49", + "04d949c0d97b7d0038451f4868769ebdd54892342bb54557c16705b7e2e53555206e8909c0ac65cc9b8cdf214857fa9208a9cd2b0c796c3851bf99869e7968b544a533ef0d5376e067a656", + "017a61706c2296fc7052b4206df92b10219cb8279f0ef3cc435d", + "02e800ba28d8613af2a1239ef6d19eeb50192e780745ab54be28b96d716dfd1766f590676432045c046e774c60fc01c8618add3955f3556d68062f489b918c7d3deb5e313f1e938a08e00b" + }, + { /* i=3553 cDividendBits=1349 cDivisorBits=715 */ + "02f2f5989f3adf83e5c743683a7033cdba2f2405a2ac48446485b7b83314e43fb111b78286cef04007721539bf21ed924f431e1819253f19083f7db0c3a9f08f3db6db700a605649df9ae2d02538c0786c5d267ecd4faa1e8d6fe68c3512bdf09fd37487ebe21a459ed6168c03612e5c9b6633d1f7c6fe90b0c85262d05432e35a82c4ea20ada678440a93bcc8df13c43150914b8d5bbb80d4d117c1541b81c1b5e2f9cf57b1a0c8cc", + "06a10e3bcca13f0133d9d4ef009389dec8478f783a319088f47b2262ffb6594c14470dad439f1f9219fb92160917014a31de2efb6d33265aa656320a06ae2f041612370c067f30197ace3cf9c87c4a736a06ca6f3ee26371d763", + "71e29f8c2e2db5160cc661cfd11a1e5c77e5fe6c5262c87731efbc8e059767e56118dd964d4203dff4dbb9d5e235c35d5b596098c160c261a362e616b764f61eda8b47fae25621d5a6980a56d37c77", + "02da4c83f03c5e9c3ee84714758e286c6f5080ba49841dae87449421719e11d8de5377872a0c0c1b8edd33e1b5ab492b218969a41d9a430586f782ad101a7f3574a813ca283f50af167c2cdb9bf0f03edc01814684e28ac8b5c7" + }, + { /* i=3554 cDividendBits=1427 cDivisorBits=987 */ + "015b5b01090328850ffcf1580b69bc9a445701d8409572896e8c755ba77834029bec6168adce9b8e60fcc43dd4e60de4e591a28e64e069d4a0f4f8a69471071beeedb473811558637c03d2fef5bccf40e49c84244a4f4ea6b8258c9be4a80b672af3b3eddc235ac76e099f248077f9b66acd7483f3d00d504f1b2a3b4fb6743c0059bf949a15e2978cbdd8721024fe016a3281ae95129a6aad1055415567900e70fa760a55b22cabc772535543446f755f3320", + "0226dbba765395d33682ec73051f427e24c9dcadf157496e8a00b1214d03a72a007e71c16456f9917c2114bd4b0b4429cd41a9198f67098a4d8d51499db3c58aca8b197c63104e737de3afb3b72299e53b9927077d5380f6c2f4f01652217165742bcd2939988267a1d19ef0c22fbe7eac896fdb06c1c1f6ab211097", + "a16d202a2b26c3f2c7661471703586fff126d2e6a384a85f078868f1bbc87eb81f5899e2eed84e57a08340caa9ffdeb36f338fe0a15230", + "3017ba36e05696e9d42cf28918f8f13072c200e90b6666038ce698e10c13e1c618d3e496929a3f909a9d048cd3a0100eb7416ce3959fcb5b898dafeba49a459a251511516acd4b04a5a2d9fb965761bcc419351f9b225af72cdac198b4487f31f670c638ba1335f1b6b74c5bbfb97bea27ecc23aaffbb638e4b8d0" + }, + { /* i=3555 cDividendBits=2943 cDivisorBits=932 */ + "5b86dd4f3828c091bec7ac5e8b48e1d1bf967a1b2b1e76f5d7051e5b2247794ce44f58efec1637e230ea53d69039571264760ff1725dc255575c306b6d10cd253e7bcebf12259c0939c4200f2047d7d8f6ed1c1ec8a79b0e1b40493f001245225c7e277274f5b6b2ec2c9e28813186c7da40cbb191bfc83670333ef18c5fb2ac8693557d3ab468db7be9f4ffc1ad1631763c80f7edc1b59dcfde9d4cefefbb15712a3c5effc358afad28cd73904c943fb565aeb1e367b15a33ce6c15e293a1fad55506d79b1df07051e08598e5b591622667ab9ff6ce8469722de9760675791de985aa29bdecc62e7b46b9b1f6781e168b745ce85184069863646a901ef11ee305d8c191e0df36f09596b491f5de382fdd1f929e253825fa6885afdc2ca53e2222acc77f701e96d1a9de07fa2f9505a893354c3ab2fe542fb296b9028b09b0c912dd9c3a4c9d38235247df9584f660d4da0eb32224b14b6bd170ed4f52340be062000e3097f97e30cb8bec49dd73de0b", + "d7790148647dcf3ef88d482bcbfd7ae9c2b1fc47c56c155ebeaeaa9dc20adf1b48ff4378586ba320459de9bfbd23b01da9ad8aaf5e4c35ba465d7802ceafd5462b76eeb9d27d6eda08f70f089cf60893ff1dfab22ba3c330c1c6188f01aa0328af11313cc65b70816c50aca61473ccec20362bc5", + "6cbddfdfbf098928ab50cf4084b3e1a9dd70fd7b1bb83ddbd2516ac08d00abaae53b2a07ddcb00060b29b8c997d9b6f3d8a961ad6b2a5ecba400ad83347254664d3fe8303a0dd4fbc25dd398e95476dfd0bbedd57399f7994062271902e4f132b60337876e33f40f8a11627b3859cc5a24f9d3a4093174ca0678650ad931cc38d27a371481de73e5a895183ed4b193072caa1c71f614f96db2dbb1e2710efe0e11a6fc8d4c8ace185c1b989813ada5860bd4f9a2bcb132c0fa4eb081b1a3c24f2f035223cf5167727691551b1ad8b5bee746b3e94f3aefcf4a466759ac09cef26ddbec2d842272f0261e93546d4c50fef7c3a6b7f7eeef45e74d46ea", + "12b21dec8efd19451c580c969ba8c7454bdcf2209ce69cdede521143ba340891016fdf871dbd0ef169f079b91a21a8851036cf461c20c4ae3fa7cddc26084a7ff569f58dc8433711b4644ada3c4dccd989ef85e2afde99175b44c60b35806d6e41a4ebdccb6abb593552b3eab5f6c2c2aeb6fdf9" + }, + { /* i=3556 cDividendBits=3364 cDivisorBits=1232 */ + "0e79cea0ed71201a6e85b0dbfe017a02d32c1939c2a6ea1c8f8864391ca0089d8207f9979bf4ebc66454a73004f2fd7be38e64fdf23c027424fa07280380870ebe54418094917b2b2b275f36f05eaca3f940cb2ce02a58b617afa6ef987ffd69d4b05128f44b12b28b9133b280e93b53ae29eed14fa9c8d415b0d8f47748592e5b34b5237a7d70126ff5627842a39f08f5e0c8408e71d8577ef176d00c183245b37af075c34a9d79407038212950224c7f627aa5333497cad510b841cd7f570b2d4960086b5619e2a302830c44f4c2e64007a7bdcef4b399d472822cd3eb0ea03b896a0e3581247d2c5d9d575f227c4be09305ef965e5b3116b5ceba63534f5020dc95bed2ad70d3d030d22b85862ccd5dd9d931e1ce54b14f086c0c5d1a12ac21c573d66146bf3fb34bf41cc3b6caf0f7980af22e220ada19167e8b9529a6b61849124e1cb018614523305861b5ae7439ccf19b963f299fdedfc7f04841762554e700074bec82087ec2d621439c4fdf11e6adeb5fe690997d7970bcb69985b08a18fb9f89b30431ec96d313b30f07286aed70933d2a070d7766e937180e56fba08dc8d425", + "8c58618aa87ee0a7c09e506ef971211cf81d1fccf9dd0570d39a5370ac5a2dfa1cdc1df7ebf3cae467347c839c93f91484ae04a3f1f90d23b95fa1d601cdae0e554311316eb6299eead8705dd2522e2efd7343e8e22ca268fc886e76f55a1c480122249e379f79ae1b933c480cf861f26f2b7c0e7a7fbd6f13bde702f603890ac15d100a9906c1114c1b56465ddb2da1844b80e83025b1bb064d", + "1a67a9ef6af4e20dbe08498dbf34e2a26cd97c4bfe4766afd9a87fe7543a5a8f988d81ab3553d1bbaf2e4cbc86eed531d89b7fcf2163f891456490b0224aaa7303b107ff082187ae4ad63c1b6ee88576943ec3df052ab4200d22ab30a0a132e257fe73cbf7810be90735d6fce80487e6f01da4379a78c2c6e32197303637a371c555d28b5f8f7a3bde890ae1cc19754e4bb31c67e078c132e2cfd5a143fc6fb676beffff3e0e9a2825f3ee88c9df3303a207d2a597746dcb026117f1df7cb3b3e333dd7729aa0229d52f9f31889d24315edc48e6298df3afef26548bf0d0d9781c6d6d42046be4b6eed148b10c8681d672971cbd77abac25351a9939e28b62a6d712d117828f8ed78ec741", + "816d7198cb0fe34ac119f1d961c28176a4c4d2b16dac5a40e6995bd883f367a3849230586234fd90b7ffe58b0bbe25d3506f43e6ba609d650fa659d512542e05f95530659c27f4fa08d529802a7ef2dbb3c904c3ec0c69a09c7eacfdd1a7a986291ecbb1a201b2be13206091105ba29f47c820e51003a9e017cfd2b6be52b109f49f14357c782101b504300c499ef5530ce64c6c4b27e1b05f98" + }, + { /* i=3557 cDividendBits=2944 cDivisorBits=2225 */ + "e8b5b14596dcc6aa2bc4ea0370578400b66f042236d90828a04af6a6afaf5ea4d34d6d366bfc2eab2ce5e596695fedd31bd72fa83b1f6718fe5840845d1536e263e59bc6bdbd039b2121996d6c408fb87c4e5b9f2d5fb234e4c4d48b6abbc55f65fd385f5ce2ef7ff01239c3981a97966eb1e21e63c89c77cfbac6304ee1dbe21d7425bd51ccfce3299ceabc36cd53b4a9a42c3a7fd978ecd89949599dcdf6ad80e7ea171dd709b4b7dcc640d93efece74177ccd988fbefc516c2f6afcf2e74ec165c4ec89cef037a2feca931ae193609460b6fb83bc64995ba9e9f699fcca1462847d255f9dfd3874f2617b0f5f1272fef83a17a6c72f7b5095faccfa593c807332fe2aa1de348aaa7354c92d4343230690402ceeebf0c5943326c78317e7dd376c0422eec9567b5cf2e58ebbe38a0ba2b3a933c19a5faea4425273676da22533cd312b3d4e992bdd01c717fcfcbdda64fa663a02a5549650b40a847d1abb6c3b5fd262ffc42adc134075f0df18f318", + "01bdf818503d57ed32c914e3f606fcce788f335260f51e916129a8715cd768958c6b0664b8bb38874d1f831956dc6714477ce429fde4463af1bf9cb31a6ee440655df86b86dc8eccaa0e51d957dadb0f93e8b80d083d4a9a3416dfd0e9a8b218faba33cb05b55bc0330bf1b4fb42ddb372ca128f8c8e661f949b4a11e4f42af77a65d2158af74ca0a2cdbbf2c8d0b9e4eddf72ab686c02056fcc290f1d38e40efc58abb910439a2a0771779247b3cec7c0bda967fb7d234522106ab3d1ee61f656f2f8368e35218cebcdea18812ec4e94e15025386e416eb4789b1a681fb99411be7fdd6df1f6570779b43a5b0d7f737201662a6658f07a5272b2682e850920992759f09af649de6c123100503c976bcde0396f8b10e6d", + "859522019b9d876d5873b1c0aa54b31ce7ff13d0b74046fb24a3887bbb21184ebe39243527fdcf925bfbf1f123eef9d765b1c0cfd60e028612650e559581942f486010019cf83535b222f643d57fdfe709827b6fe666073e30a7", + "0192861e272190c2956db95c8c2d69b46e4e1e5ad09878b0cb3921a56c0bf17078b1d928eeb83dca1d93ea57f47f44439274a5f23d2c898731ca2c95236ed906478a49bcc5e2fa6160996be4c36394dde39ec9fde30d2dec07fe9316422972e64fedd4e2fb8994bfc1c7a32588c6eca40dee006e09a17a62b0c9ae7d63e4efa602fcab45de42aedd90fdbbe65dab75228705144aeb88c05118f5ac2ca8ee2bac7216dfb88dc5f03b2b8c0894ff04a05a64bd11a93985a745bac18cacd735672384477423ef50771e0b8818aeefc4315a5ff76c23409ad68fe2da69a64a3ec7433632d21ca1da2130e3dc44208a861e5ebce9910bf6957321a8bb0e8e7f1a7dae0adadf3610573314f47fc5b0318a7b749e101ef77e19fd" + }, + { /* i=3558 cDividendBits=3399 cDivisorBits=1451 */ + "2463fc9f3911356453ee69a400a1bdc2fd75b8d4065cbd275314b190b8749d89ae8d05a499d77130a295556fb5a32a9df6b491eb8037ce9f05bd39472546890a570e86fab50ccf7e604b2c63d27c9570c845c9fc80c1376a7c1c0e143a147e78e8521ea7d9fae52b42cbc37e4ea4867c92e86246a13467278e1d36ea7fbc9e7e41209f1c7f1969088e15207d4cba0a955f8e334509c32e45da556badd191d55f8ffc5458e00e99868ad4a6b72bfb07b499afbd4da34f6849fbfed23e2fc2498c97f79b1d26ca42b534c8dadaf029ff82694d063eaf40a0d1f8a3501cffbf21986de77d2c6a3c7cbac8af521e698a228a01a02d5677bdf07d9e0a2fd9d7068b1b076bd3cbd4dbec7f749ec74a66d88339ddeb33ea91ae8f8f583f46c002ca73c4c86b22fac518209cc109c59ab7b8a8d87acfb97cf94f11b7932c4c6fe6995351278f21e94a4ca3a78a4ffa1633fdf94c62b7b4e725453417b7b4dfdb02d6a44f92f6a18abdf4c406e0b4648b86df30333abeacd19b58888ddb3c99a6de73ed250bf3e83e88b54e110abb71ed3496b19a7e7264b7dc0c52044bbb9cd9751c6ce29ec4289d84b2eaf7dd", + "04ac2af5226ac879c4fb6fcb71a84592fc94742634a187ab700933f61273c18454de081b846c05fcd092b12323659bd9b1f9b06087427a907a5c3afbf0f079ab91a03470c844914ac5eca4125f34cff8c66d41921a5c513d53d3bd3cd486ca11a8d3cc2285bdf04d23670d72732d0d42bd398d6c45ceff0049ac663bff6fe13d729b64b6f9401a3ffb51c18188f136a89e3ee3ed87ee834dfb1d81e655a6172f81d26cd34f26d10ca71e53780a28b579844d3cd34981", + "07c9c71390c1d9d4baf09491f4098934978b0e16e3f778b6ace8d458a36b84723c553a4b3a9c06f5720cf439f455c294316cf8651e7bea1e7ac7367db6ab965ecefd23e88229af723b5c18e4b8cbc6de4494811fdfaa6b9872b80174b37c4fd69c13e66377b93fa329f2993bcd3144435b27b3880baf2bf16b12f35230e685f7e2c5ab7acb557a984cb48bff72d42477a255ca49bb607b1cccda9ea005e52069db6daafda12c2cde60c6151f63dbf75c4cfa207c908f4a1c70264afd0f07da0748e5f6dfe74f53a245d56e21641d9277ccea4493d24fc05e9aa0274f2b1ca324a13e16794ee7aa2ec3ea151e57d34160248f8d35", + "03ca634fce2f407d3d7ac3e208fbaf7da619683e5ee3cfcdcd118e978e4d92626ef289018fab8e32a6b8e625fe08e91e037a65815c000d2961a7de31768f9bd0690163244789706d561b68cc4cf25e815bf05448b24628cd3c0795abad7b6654f38279b2492a6e2e7f93011bbef926eca958ccaec8465d39408d6c8e15b953686bd8cdd636f232b20d48c7bcb515061f81f868332fe6b9236dbdaff5f6c32d9c9a68d3ab9ccb033ec5ec34858b1a9f36ad4a88a1b328" + }, + { /* i=3559 cDividendBits=1536 cDivisorBits=784 */ + "ef5ac243a744abba676324d4fa50597cdfdda7df259389f05ea26a1b0126e49930309106d282f56ef9e12db7e449c070bfcc3e1c8dc8e3935d309f81ea12e29147db679630d40fb57f823193c01310b7d8dd21ca4117f08a882d72ef7e5b374f83d58ed30765bc2f6c766a256a5bd2d1c177c8663494313d2a5d4799072dce416da27e2fed685729682cccee7ebfe08707e5bcbebf095a01206e3365d1edff77cc38e48a2838a9a903fd14974f6270669a392ef339b4fc522ab2855b4a23201c", + "e0c7ffd27ddbed6d1b9f11af92f9569118fe1b46a84361ccbb9b690f897b9efdbd3fad20ddfc144f81ee627329bb618fd7221a87daf7609a2ea84769c6429c7c09752100ac4ef8b4014c10f0ed4e3d25dafd5e31acdd149502081ea06064aa4358a4", + "011098e7feb4455755b5592373c24a9094f5a8b918d744797e13de0f25af6ad2c9958645cc9a5efe58d076751ba17400cfc0a286bd46a66c1a993bdfdc03ef7fcf6054a1d41624469d2166f4183287f75fa252f46d042cc3278d579eb79edc", + "c704f8565680aad7d0c2fdfe24199e411f10302bc17139a8e5dc5218758ed71483efab1c47478afa638269338f28d7b60659e5300dbcff1eb793648237984ac649743221574cac960271e775ac7c247ed596600a8358a2481d5972a4d32dd251bb2c" + }, + { /* i=3560 cDividendBits=369 cDivisorBits=276 */ + "01e5abfe70515aaa5e58fde0c6ceb6624dc178779ebc411dc266bdf1ac706104018777989c7c8619fc1aa77ffc4dd9", + "074773628a15d9cd31c687ed36090ba723922533f76456e2e418359861009c766db894", + "42b8ac03590293e251f22588", + "03fd126152c0c88718186fa6e86d6208b8a76b78f46999b301163e98fa90a36a1cdb39" + }, + { /* i=3561 cDividendBits=2807 cDivisorBits=2757 */ + "0b00a4e0ff98efb0968b10bb70fd1449982826a19d263215cb9077d58269c61332226607430de42e9d441424835f41fee9be239e373db40ce72699b29ccac58af410c8a7767c0726d6054fb0affe6a1e0abd581833c1ec33f8c5923d3d287429c09a9d80aa3de0fed5ca48ec9294dd4cb9689a2a433dd037af34ff10f896d301ac7e8556d1bcf0c5fc2fa4430382dc01e3b0657e1a18205e77efdc18073fbd30f5e3148c07c485a3daf0e8401d62933ce42b67cb74583e6c93f344c567c3506cc52490c71017d19a03bb6a46a8652ffe6a501b073e8fb6ca6eb5dd91db6509b2686bf7a0d53631d622a3e6c4a1b0c87f8b2615f4c16571e340cd13d85058820a85ba505dec59b104998a4145674465093f632404ce73c051d9b91ead31c1500b35eb1d580150759410e3e328c480d44dcccca1225f41cc7e8c5218eaf5b99c3c750b7120a53bb7c25af333b513944a603bfa326c0d324d1f9834bcc76480cc", + "17c0b43e6008275c567b17754f36e5564a86fcb7255f9ec7d57db3fdc96256b7018ce300d50e63d8c9457ba47c9309690860667066c9af2a44309f907fe492003b51f00eefa3d04916ea37d847e848e665f48c26a1205e4d54d7de3486ddb2b3fffdd7c00f7f087fb3a37ecacb8bace376809497822dfebe94b400f3413eee8d461cebb1c7721389304feb9b32a14aadb4bddfbdf4f9b4c40c0c6321f3b923b45635cba9b23f4dad6ef06d3fd8fd3f5d7de359b85e5d9876e5d8659e96ce95d2e0631c728fec9fbf99bc6a868de551fd57144d7d554ca656db6fb293fdeb07e11da26f94f1105fe216df597da1dc8cb8c0829100991f3f2211fc7046f555ceb1aed280858f5740ade1307cd1c5e3ae8759041abaccdcca5117b9d7d0342eb630222d60e5852675a0ba46d3e94778f833d9599d5ac0860e53a8043b1cce9d92f930809f3d02292a86f71b2696e75eb0fdeac76154e2ea7b592e", + "7694f1523f33", + "0cb39392a874a9778265a391dbee385d15af7bd72414f0cefc0a505e2eef33b29c11bef5a3a0177bd06b9fc6f78806944b874b17c204d84fc876f2ab023f83820aa841b386aa650412d9a3baf11e45e519c14c76f2b85a02a5255ea57e828ac9fbdd4264c78b38234282124b638c1918dff0adb6caac8ec4de3b7240c37aa37b1c59792ca87fe6d4610f759c2849ecd22c54bbc177de49f75584bb3c1efa5165e43dfb76b52d7ebe071cc633f87f9e5e36c60bce0b329556040be4e0c38de3c37d3c9fad3db1748faa319258f195fd6eea3e783e9d1372992e8b7ff216854ac672b4f9e21e95a7fe16fdcf9f15a891f606af8d91d48b5377a68ceed7bef9fd3a1279887f47b718aec918be6302dccbae6254bd1772aca4a5051cc68ae0b6627eab5f558f921465a6b8b2022b58646164838027a0530643d0f6443d3482543d47bcf8601d96b2cff78cfecb026f8401ac1b397876c4d7236aa2" + }, + { /* i=3562 cDividendBits=1132 cDivisorBits=126 */ + "0cdbb6fbdcf98cb0580095bd1a89fcdeb0b5d3e60bf00b5c4acedefff37eaf9f46b06577152fbf0d8d3ad8b964e6774a573d35c19e2852b9efab8b8b536d7dddc4662d6376db341367f4b666ef3f7fb9cce7837aa1b17b474f441bc5c7ef70aa8d589e84d440d84bb881a0ae68e9e32c799250e3b3602f16f0b29013ec788fa933580e7e18390e0ba19d177c3024", + "068a15db071049d4967186212aea7ffd", + "01f75de613dce74364ce291da9289e4ec4a6b0f6e1350ef13d7ab46e9a149eb7aee07cae66342882c180075a6c6f9e454f50963996b9c142ab98b96c3aa878200841f3e6dc17c95465d358120b2f9401cab474cc5bedc94a5df84293836a6d9f34d6c902d7cb60f2e91468148ef6391a3f6a6d995a6603269f17d3281bbc84", + "059845aae1ab00644be3b9bcb8e565b0" + }, + { /* i=3563 cDividendBits=3440 cDivisorBits=2621 */ + "c558ee458d9c9df2fc95406621b1fcb343602e495e0ee12dd002c40ad301e0b4005d94fe5d05cd34c142cc48120b55b8735e47a084eae061c4437ad45125a4630b6919dad1b0d6f6210e9ae782c9656a3e8f0326b586f8fa48e5c70178f912abba81dd4f3ce309f074ad365445a5a9533ef34ad7331443c2ac9ca9b296d8d0b2f7db2b77f9fbe7d2bb7a7984295546d770fcff34aa3c955e1b5cf4d20fd57a86af4d4ab231863514fb1aa7e0e322078f74c0838b2e1e7b8bbbb666d03f4cad1510847c3bfa3c7f2c253b015eaf25362a1f35b4b94640ebffad371ecffe600feaef6b7d30cf60e1d8db7f65786fb762209d3e10d834452cf1519253ea5961035c47ef7fe420a73289b7c2046c3cd5a8b28881b831f70d1377f56fa767d0fc5a3b853482556e0c8fc128e6a0ff0a787ad8ec5f54fc235b80c3474464fe5877ac89394f826475263310243ac1de16248a0bf7bf74cba8ac16f8976b34211c12ab798084b74fc5c3d12b82200a19c4c64920bcb3d0346b59af2086a2ace56cbc64b3090d863d43248ed943343492b70d6a04c78eff677ac593e67201b0f37ee35e291b0ce42976e77dbf5bba2e323877", + "197eba07ff8127c54fbf36220542b09ed29de0d3f25331baacb1bb4ff87dbbe66902202e0dbe6c553272058c4ea15ca5b6b001a1a6ed163fe032136d07652833c941cab5c4682481dbb2f140ec4bd36ea3f89cb44e1bd58bd3dad8d1779985f7d341d068ec31e49f469b87c39c6bd8276348f69391c9f8e5fe270bfe22ae7ba9b501b08bfbec6d8e042fd0d3e40372666719e86a43547114a1558b03cdd360a10d03e83231d62780b7b955fd239104cb68a381b04b280c1a45acc4ed3b56c2a229947a655ca8e110da8cc317a1c69e90868730fc16e973a5a654d60ea17620ee8da755576e65fc52049527d9fd4038d0a728a604685b8381d35c352db0d9412475393d86fb3e58a2cde6aee799d69baaf6b797286aaea7994b2b321f383e8233fb75ebc27f53177bc26985f64e284a5f4bc618beaac827324f151b008c90632b0251aea37d7e87ae", + "07bd997832f82460b9a7b0056d8bbeaa6a0d880839a0c642327d048608523a0b8638bfc0b32746f717e2f981de75f3a1143fef1ea83c0c73d445b889bf20bd880a2ac9cc00ff30a247e66adf6270e32153410f21738cc462a32ba48cf67b263ab7ec1aad97366a", + "0fc11ae28226cd8c692ff7e2388148ce1cee8e0e81cd2eb3e5890abfa4a523959213c9667c3f6be87dadb12c9845226678e1cf0c3e68cae702fec4a5e155f1bdcf93ba7a38cc8cd50ee648b1d7e9c2a1610536a39dc7c446ad7a69a6ef5dde0166e92bee46b12a4e0800b668172b9da2969dadd20961e8a765cd40c29c8bbff1bc4d2cabf293de1cbb80ab09561e8cf3dda00882f95256c9734dbd8537dd87081c03a4cc683295c6977c4ac16553e64fa2bea3d90538a30b5ccc1179abfbf15303b357e18049fd4a4db084744ea80e070bc608cc1dc88264b6d7b24d2b9ba1b1e84a0b6b18603b953a9b0bd94794ed678199d753ddbb0139a6e0d006e36b8d1051b20f05b1cf5a4535a2a57c1d2319a59b64c6ad730b5292984c2e1ce8f4ce350f4a6faef428b8f94f8ad64ff8786bfac990938a06b34d5364a707b54cc131190188d890e98d566b" + }, + { /* i=3564 cDividendBits=545 cDivisorBits=495 */ + "55185bd373f210b3973f9578e8247d85e8f56924e66eb9fd29a9e7a721becf6f5a47d95106fafb81da788fa70d039dd64956c3b483ea387078075fe5f82003fc8aa4d5d7", + "0b4779c27ffd7098146c3d808d577c975597aa8eb780fadf612f3986584c07516820f6807a7edd285829567d7ddc30f586179a8e1a9768c2495fb74cd290", + "078b5fc95bbd30", + "6ec34f03a7c8f197e5cacd6ef780ea08a246a66e1cd8488b9d897b5d6012ec3c3a3e3c1d4b53d4b0cba69c9f26a1d43222df1f9c5929cecaa48b990ad7" + }, + { /* i=3565 cDividendBits=1372 cDivisorBits=953 */ + "0785b77a9c50ae054f4b04938200beced7bc7628c49573776c40d8d70fd16100197406205f32d4039546bb2d9416548ca938df3f72ba3ef3bc6aded58f9b457d76f1ac41e43bca35121ad369a315afe162b461c65b7865957b4fa10b6cd62376eddf165101961ce793c0b34c9c39065d1996c9b3848b73d489da36a22c108a2ef67f0022b5878e3f785136e17147221ec28ad245b62e60547a2259b0b59454bb40efb9b5495a519b91c3f002", + "5c5f46a455ac4f8261e354e890a301bfacab8bc87a19ba72de091532795afe672d1cfb88f9cf1dd13568a4b9d9fa9dde3c4422c06cbcb02dc13da2309670d62f0d85c2582cdd8088a401c3b3f880934b5f13d671fcf4f4508288ce935dcd195d0427d051b5716d2309b7b8fc01684f3ea259a29363844d", + "14d8ed26b28abd1c078934374df28001bea424c190d9a08d0ac05574b818654b3519f34697d650ea516e112e3b99f39e503e318d0c", + "0587fedac98bf0504b6cdff3cb2c493dfa97088d915724de0a323dd367c026d1f2aace43c0f6159ab82a0717f6b23c428df634d7d1eafacdf6c4f84ae2015992f72a52648f12ec4a653949077ecf57aca8571818cac58b4b9c7e3f5bcfdcbcd3b1c643fba0b9d006e39adbc3cbd2a951b764a7e07e5366" + }, + { /* i=3566 cDividendBits=1196 cDivisorBits=892 */ + "0a0c25c2305342506d6d462da0291e2ca4bf03e78c257b56cc95b69b2b2fff7961e8abe294d150749db02109c21cdbe2e7551ad7a9a4d8371f6589db5f2e3b4d945c40982e0995895fdfa459e74e3f3a20348105b663a819fdfaef1b6c8c74f781b110af3d1968f3c63c23c552a7093431a388f46817a752cb672942617916903b594cb40e68d48a832281d8e36dc5c18d8654737447", + "0aa2c86d0f003b10613aa9303885d483da5efc8fdeee1d40165b8899024c3d191694a1e6a702c8740d2ff16ea25b7cfc032ae55e48628ccb3658cd59cb9b756ef18b6f603909e9606c180d2b6587313ec39f40e657dff91b5b92191980150d856ff0d6c61348f8951f726bfa8998a138", + "f1d64834cf0bdac31975ff5a3420d227587aba00d3979c3143f7f5e4bc6a3b14ce2aa014562d", + "0a5b461ed92ee443c1996dd7d92aaf5e9f482ad5ae2239e5fd48101418c8798c78288caef70893bf912d7a79d0f3fbae401011363478e9c496936df9288ab7c8f2921ddf9dca769a5d38d935a1bd220978fcab2b95507f279a370f91b4c554fa51f4f92254cb0021e3a6c06346164d6f" + }, + { /* i=3567 cDividendBits=8 cDivisorBits=7 */ + "0e", + "03", + "04", + "02" + }, + { /* i=3568 cDividendBits=1887 cDivisorBits=1469 */ + "4f8de97ba2791a6bc58e3431611bb90267e4d0d8a005c8d1c68a75c77079ea5754ea8d6ace32aad75919876c82785749309429e134a74a9e2ab7164d64670bbe103ba23eee39db5c392e7809771d470a61ee48a3c0f494650556d8b2304905c4ddde521675cff15d1eb4d0041d42d42c464e16688223cac7289aaae45e5619c263d78c1bb7dfcf938a1968c8ab46f30e483be3eb383fe8a51bc0d1772d8d13704b72b933cc82454e33476fc04f5643790e09780099e7a6672d8da90eb57cd784b5db7fa8e88388de5fac238a5c9eba600a2f35fe65d5f8bf529bda4f6e1ff013d1e3da1da5f54edab1efa92b", + "166e4a91412d1d5d330dc7302ba1396f78887f8e0ab8b2f4924d682f9c9242e14679b560b55e3de8568486934ed699583d6acc8fa3198254f560c824e1b4d3d531f59be4bf51e078a593d71dbfcace5dd4603ae4c549f1a2d894caf359900d730f8c218cd2561fa044593eb26be0bf4cd087c0b2ca1a03889bad0c598966c042dd10b5f64d904cdb63ca3f043f06a2091d6d0c9e1005647d082c1299bcdafb2feb50624311e5e98bf1088301868c7a4648b65426b0e0570d", + "038bf16c0322f0dd912628b4c4ec1956796a1ddad27ee1dfd1dcbbefc7ffb10cf53ff480d9121f94dbb751e67c9456f1a72d4cdf73", + "0386441974b3ace153a404be035f7620551bc4ba2253eeb41c418eb34caa963235ef78ffcf3884d90d23a8e98af1e1d4c53ef5cefc6999ce2f2a2a9c922e286984be500a72d8ebab61fb259bb04474724ef312c747a4f9762218b69af89cf981f0df7e77606e5f9667bb150644aae88a63e613b6e04a8c90a04b1ce0d5dd9195295988425c1975faef3e4dd6f9d3ddeb3518c84d033dcc33d30b4bdc8e884571c5179f5cd3d91e82124383cd9238c88b0981d503b0783b54" + }, + { /* i=3569 cDividendBits=3280 cDivisorBits=819 */ + "c469d632a19add2b85015745f7fa842343852b8fb6cd2a4feb9b1222bdf3f5e64e35badc9f9b6a4bfa165292afe668c5eee9a326932951f650a003c7f54c74b9cc76bda398d9a3e387a18aec76766088be82362fa35ff2e31a0c4ac6a378a8cea5537406f271685b2538dc91d62b15a2cfd327af6a5870fadee51c07890d0f9f7b557aa0b496e04fd72a9c4e67d3beaeed9bc9244d59a31afe21021d93ce3624eee9a117d100dee8860cd89236677bd0e51c7f738c725171752337e20e59d03bc59f5a44ee4689e95c6f9636f754cbc1d9bda7d23d76829b7fd27ed10f46ea1a76945095b8e2926b20974597fe8435850c8e3a91bc4551e225854ef727e131655c3f426b3776389516a1d3189f4e25e97152e4c2b15bf249d66e2cbca4bfe5cd0008447cc76e8f3c9fe5bce56b507415c943a30c0e4bcbbcd4a37e7e56b1a537502a0f1f54e095ef85bc5270f3ea658f2ab09dc4f2821ac45383bf9af701909450b73b5c58137f744f8f1c6d8c487c9ab837a4210a444e76af6fef2ae78f6e9f94ab65f91ba9f6197190b08cc23191d1ecbfacb4fd4402b53b2a", + "07655b0c29aa03d0a87b1746b4d8fa00df1d33f4bc638de097b5eae3494293282cb14f366bacb362c36e108c8b93acfca5bb5bb676d17bffd3a40c9d205cd73b7885bcf69911b2bbdef9b5815aa364fb5ae3ee47f182f98ef2937ffe8ea818acfd66bf212924c1", + "1a8e9739ff8442f61fdd3211de1ffe755b25ea736e89c509481d9a19b4acf854a59a592afcce96c9e5df829d68515df921adc4d9d48b3654f12e0fbc5ecde8b339b6c3cec6c3aebad25d42e6be97a6a8df21efd3b251f3ff5c8275b51824af90981f0df6930d6ee36e15ec1594e4ecbaf670e0dc7e6e3d569863d007ba84bae0d5379b3d74154d478451d8381e4414735e3911cec8976e8c1f8501e0526d7445f931b36e46f7da3679fe9cf4dd6fdc5cba39c852c7b43cccb043b8d341f2d7c0c9b71532a782195d78851cafc712508cd1ad1e61bb50f9022114e124d800fe57f97be31cd1ce4822441f61d4ef90d28b67e99df7782df7ef9fd579d54b32623fd77afc13b15cdc632a1ae1ac4fe432d99e457c3168b5d8331b8a93e6a69e73adac5c9acb4eebc12b0fd67d0164ca61dec0d6dcd7", + "04a0729b1ff182906d830789ce59609ead5c1e6010d2394bbb2305e51f2ec70f82ad67ad3e7979cc6105d3e19d15b88f84fc02bc43870ff1bdfd15e7bc4900c4d5505d40a07f1a27e500a64ca5e71c99b85333e221d2862b0af5ae254bbe96a60dddec543b8113" + }, + { /* i=3570 cDividendBits=2156 cDivisorBits=763 */ + "01a3fd9234a0a7a1796cd5190dcea581c5900e980e9bbe0d3ef774026026b5cd23349764ab747404a0a4785ae59ecab8fe1354195e458b004adc9983f9c728bbffcfc88cafcaf96b07e89e481844b2d1e9b1b21db4d8b161c9a51a115b5746a0b4ccc9b05e868d16ea8334a516da74447553b54a3f07551a792cae28e29e97c55ca76d87b94678f97ba9981bd64801d2f9671a04088e22798093d8424a3ebac8a027b6ef51e7524fa91305b2a36c8c60b44473bffd102e8268b48a1747085cc4b92274fed51a49085708a9579613bc181802d380e56b8b00694f359783d4d9c15ac97423b6efbf85931035bba712168635a18efd8816c186fc1b52f161ed9fa8f4075346f27e96304da13dbe6ea0", + "02ef9698cbf4bddb290da45705305a565f82a870c5a97c474ca6bf06e2deeeeece6c4a1db9a1110aa050511914025095fc11b7560e3f10dd2e3552aea01b5f4cd4fcb25d0982ac393126cf26422fb0f2da4cdad03fbce83d247dd137dca2f486", + "8f0dc6fce44413d85aa9a12745d8cdbade3b5b9eb1dc7f71c6554a4d805820d40ee7eb24f49640e01433a88234b5355ecf0fdc1245297baeca95144459769a1ff73aea10613fb6f473ef8e54efe4bfb7802220070a6c5725ce70a30918ccec80e1e346902f54e99dec8a9d51fff46b6f571bbf8c40861bf1ce94d414fdb1420967f4a0ba1b0fe3254b210d3d367e09e939cdabca3ee5176daab2ab0e6bd36e947b014f2e0d72b9bdb047f976fd05", + "012d97307a3c0d3f2aa4459c8c2b55d0f4f3d1a4d9559a6235933ac2ad08eecb0f06c242dbb19a4ed595c9129ee0fc4b24c3800b3039410c676ccd768e8bf7f2d11138529621cef7060392e1bc306d1d39fd2a8999ea02e12c60de5fd7233a02" + }, + { /* i=3571 cDividendBits=1211 cDivisorBits=179 */ + "03b2dfa9a061c4ab328f20e2cc91a2ed3e1c6fa20640895ebf70586497ee0a4356c02291922f5fd2b269296f2c71b34ae7f20462ff6614beb22480af57cb78328bdb293b6ba13d4d87962c5576a2a1745b24085deabae4b34b0553b118019ea36cf8e6425978ff8383b07e06ae36c6fead6fe859abd6ccc7ad2d01e5e6b3b31b5587f1380f2241e054e3e7eadff87f7b278410272dddc2e3", + "056b82f3e9f37f7552ba7d62c26e190ace70ea67bd8990", + "aeb37535de873409527180fafb1ba060c6f73b6cdfb970a219762a41709bac08a9ca6e924afd93a6497f32d7829ed3b85560f3c11b9520b6a8074bdf8ee5573364228f8b20956fa46346db5fda6a1893e5ddb02793b8ba63c134302799f2aaeba49aac48d65740d3d611ca8d13e0d8f27a245757a5dceb82a7c499a80feb55d25a", + "010f9009c6346c977668321aa9bb4369cf15ff5d934643" + }, + { /* i=3572 cDividendBits=1634 cDivisorBits=724 */ + "84f1a9a465bd3827f25b37eb97f92af251e784498962245b6f7248fc6f3563991ef9e04d6c979a00251c1bb1d65031b3ad32e6ec8e1ceb80c09fef4108b500aacc58c9693631a966fe543523df0df687f5494e01b60b2f702adfb1d4c9b5ab298ad59124cbbff9d33fed18243b475a586518eccadfbb0979950b97e2ebb909bb84ac0c0ce4a6667cadd8c8838664f3e2ce5995e1fb1287aa61ffbd74aa73efa39d5c304278ec61f15b8b154a889d3a465091184a7bc08dc61d9e6775baaf72aaad99184c95f7dfbcdf150d8c", + "0f10cdde75ae917808d3c71bd838a59fc57adbc5af5ce3fad7b07871886bd32b609328dae884168209b05f78c5012c4b48869affbc2222b27582eee95c6e1807ce48da05e5d46185ea1a5524c503bbbd49e3d2c89aba1791975c7f", + "08d306706923ed65aacbb16c112c89a6228e4da598a9f5fda025625f2cecaad680c6840746979fe51d7e57ce4e59b491815e8d7e6497da6dbe86b340076e6e9653e3c2e875a63f811a7325cfd4f62b2686b26d5b44a2a00c4ff9d41314776ba0bc306d61b6aa24d84e7f74d9faeee09a3cca", + "047482f04d388af8a4ca3e9472a82e24b5a09710668652773f2c0ff0d3da9fe8c002945d6cd50023e8e9686f1a92b5df3d23393f97dba035efc3418eaccdd3575a8083cb1c148807d59a80dad3d5eb3e9d42be57fe78f5bf924d56" + }, + { /* i=3573 cDividendBits=3389 cDivisorBits=2842 */ + "0991ab44582f0c6a454de444ec92f1eb5419fbafab0d0fc9c2f0f1c52bc14eb1d9ea3fbc7961df4678fa1742af3d2bbea88a2429427fd57e7fdd6d850e246122a320158cec5d1f04cdbf5e68ed42614baf9d1a8243a454e5831443e8b09d2302ba61417c25e86789a45405687bc384c75043084d88908fa74f9038aa0de958bd7303553d150d7bf8ea1e53bafb219900d92a1820b1005d3ae3f739deb84349d9eccd1e2a2489953cfd21dff179d9036673b717e002d6cc7e8dd3279283ff5ee120db01dfe86c56408bed5a88431e65112629d9b778ae22f2287538e126bb93e62ecf5624497a086551418031a5f0405ba8aa2f14904e5ca13cfbaf0b6d6d5629ddfccc7662986f6cef523f73ff9f914773179e31aec5034bf8bd84014d363b59969e63ba71e25f19a8898a3d2d621b5edba1f64d9974bbee49d59be1d5d2370bb70bf11f1b6a50b8f76d7c31dae1d70586fd2eebd66fd4ef869590dff8a1bcd4bf29660ca0a13596fa92446a3b65379b5237ba28fe8c1d70b40b527fcc219ac970bf2ac6e994822bf41d8a205d5c0ebd64ed5ec77f43a9c0b93620df519c9c76e600bdb7290513f6", + "93808a3bf82f4a7be8fddcfd5534a534626979ddf2d78ef4459f242212ebd88d03ef9faf08b61d8b7fde299ecc87d60f129b1474df53564c50a83f4035b43b9e208f95dece6b97e6f230fe944011648e8994117ca2e5dc89e27c3f13fb3cf938c60736e067a2e1c523e9fd9fe465f1b9929261f508c301a77deb0567f3a697f84b4d74efe99984cb7c5907a0f2e44d0288ed80586e5c9e96aba5037ae98f6d79e8cf753e7c1e8f696c008e81e7ddc0f8a0d0c3138c6c4cb35d6618cd689e012228affb5f47f2954c6fe18df8621ad0fe2871cf183461440e8e149898bb40b6af2421e0f751a2ff9684174810cb0321b84f447047901c163995ed59781aefe5a062199255e6e45e9612c50db4c45b801000fb3f1ea6da70733be1a2fdf2bc8e32d4dbf3cda9682ec2246f8d43563bf07fadde189c6a03438e30a0c80d7fe50167711b0c4eac26dec481242f47eff8b9b69f036d66839f0c1115c73d0d7d89330ac966ac", + "109b9170f9a049cdfafb38d74acbe6502a63ddffa4a4c800edf730aabb3db8ab4ae80ce702c7cef4112df3fff3631045a26f9949c96868fdcf4eab6056285422e9ea732946", + "331234da514d62905e6be55bd4fd727173c5fe418c023d227457ac9c521e73abd0053264c005fcaabe66dc956ca15663ca5239f42521f98719ba8d8b61f0de86937186d680549f5c5d49fc3e7507bc4d6c0275c5f26b67ea379ad9d7010e447dba0a92b1d32ddca986f5deab8500711b3f24734a9d9371cc3fe493c01ad384f163580bb8966cbced575e99b0f32992d491d9e17cddab04ec9c0d88d6f93fffd38090da9d8810285597249fbe5f3f39b917d2b094806b70f7963ffb13e351de02a3d7fe1368ebe108a41c28971c936f754bd7c608265a2006bb81c8230028d82c311aa532018209684575f42bfe20378005ccad008f06eb77120ce5a0cef6b1aa081cff526f1f7850e1a102260b7ce93a85305b54af8850bc5ee30a4149aca32d1cb3795d77d626e0dce34655554d30daaba036d868c099ed8d58e12ca5ae522ecfe5ebe1c097b60220c713e65c12edd17e24a6a016d4ddc506e502af88d2299d3d74ee" + }, + { /* i=3574 cDividendBits=1070 cDivisorBits=166 */ + "19a1295a7232520cca62eb8c8c2856223e0b42831787b5e18af0d34cf1b8559abb25523d1d2ae8093ba08547e2798c248254eb2126a6b368265a91c07810e86653d8c946d56b6a4f12c786c56637373285f762351cfa42c7abfe05066bc0544094ccb29b07bfa74d40fc650b3166400833273e420d0bd7ff1f7bf65c2233d9bc60358fc4bea4", + "383a38fd271b8a8797b1f57c621353b1c90fc18d50", + "74b08f6d6c676e611d3af40c7f4f84aeb93da40f6a17d458ca6517b68ca48dc2dc4e5c5cdc6f927c4e748678be5a3d11cae07c2d00e9a527024b1d0502e6e55e03238b898be296c9e363c170f67a5bc443cd3e63d0dafba077be0e7c4096fc09db2f2e16c0ec3697f797ab12bf517fb02b", + "20063fdefe58e561d3fb53bdb94df02b2f6e6b0234" + }, + { /* i=3575 cDividendBits=376 cDivisorBits=156 */ + "9764e0b25119ddd80a5d20fed8ca020ee0a951eb038a11f5fee0fe40ec1a2267e73578c9afb774717f2975e691d4ec", + "085a24854aa6fa7a1646b00607eb25fd3f881b39", + "12205d3dad7a391d2248983056ed59dddc0ee1188d0f9268ab2299fb", + "04d9ea5df4f5a732344233c68301a3c593481309" + }, + { /* i=3576 cDividendBits=1442 cDivisorBits=1090 */ + "b5594dbbf621b7ce9a60bf65cadaf143243ed59bdda2154c4bf9617e445dbfdcd896eccad257bafc81d484e372ea102bfdbfbc553048b5e4314641d1e3edbf6795223a3e80462524ddbd06a750a995612f8d6907b1a39d5087c1d3b796018e5041091191d713d716ad692dedcdd21030701d692750d8fb2eda01e31c1a933f6684842ce904d03b8c65733316f471f4e415f9e20c703b2013eeeabe4db2e79b4ae8d263de67ef1c577a7e056db9785a2ce55459a6", + "01ab4e7393b036da6303a021f28d112a48a735d189dccd92a480001cc69b3b06038e3d2836346ee323c98934a19f94975205ca82159057e7da1688ae684b6e7a722dcdb0bcbea43c118fcaac59514d2052360ff0d9c1d8ddf5c00edca2ce2489b68da12ae5832c5fc25b4bb1701919676da4cf84cc5dca3b73e39a41c0714904b6b82c200d1d903cdf", + "6ca579dd1e1a7f0606f7a9157e90b82ed383b2527f2eb7337049138cf9a8235063db3ae1e4b0ff8414bb70af", + "012e46c55ed274b92c8cbaa9a6dfd5607abce6e248471b0de741261495fce4d16539bc0cda9c22c6102daf62e5dcf7fa07058d9b10b916627cb98f2ba0d096a7e61b289c773cb47ed6af05f464f793743e817a8fd6b71d9e533e019b577d4816b91c4cf10041a1248459fedc9434a699121688ce0c4099ba5dfadd7020c44c7aa0b513532cb2342d35" + }, + { /* i=3577 cDividendBits=3401 cDivisorBits=1422 */ + "01226fa4325f262637c2b1266ca89514b090c3530b54f602756f4485e1ef9a2d7eb4dcfa2bd0a8589f30c0f92986ff30ccd315142f79667d1e1df89206581d756dae22d1ddd9a745e3e99be7ab3feea22846e5b288080d6d163e84d6e2201af644a5128d6e8700b65181ecf839e58c09d9d6451e28254c0c8d1b3e36b107ec4679f77a81cf381d29f27e39b10e7941255734dc3870964350256081708b523ca44dfd34e04592e80cd81ce1ff83ab0ad42180362e4a222d90958195d92d73f5ede7884998da90da1870c8446ed0b4a9fa3e595b1e75c096de685bb6824709ddb10511f523b36c6d5a810f8bfbae4504a3ce339275e61f28d0ed3ee9776e4d5fff8a3a41bf57269f98d8231dbdf3b65a28b8522a1b8e6b6f4d2728b3f835d33ba659668466435caa3093906bd9163ff6735c93932ea97b0fc3c096fdd96ab8464d706b3c8858cce0554f8e676b0f9ed20f664def60e565546df930d93cb7e3b8cf43e8055b44996554fd1fa20163c604888f8dcc059cc569a7bfb9c00deaa98b84953fc41a251ca7a5536a026f151719f6c369317905aac0e121e537a48e59ab1843c4e7afac03a0f1bbca", + "349278480d874f2bb8f6dca80752a5930fc6ff7562e8939facc1ea943c8df1d4b9f3acea7113bf1e87840f2b0dd067af8b3c9b66c8db071ca51f59852345cdd7e0d7bf23dd1dee554332cdba1b1bf6f38ab5a3d8d968bb827dfa4f2ab69de2c158d10497dd988711ce3b4a4c85a56ad5885fc86ed778c461deff5d6a090bac204b2abca9019417308dbd344b49168a9285fe9166c1889d75a3d41fde60b6353aadb61b7d32637ebb1402cf40cf131d73c9df", + "0586473692c0854e9b49c241c596f4ba06ae19aa8a1c12caab0c82fc45e2bfc6344c66aa1cfeb866687a37392002eedb48a539f48664a93bd1504730f56202b93750fae688ebbf59019d8be0befdd56d8e303e4c1342b55aa2c3ada1e827079cdb5697d5693f3b13107d335b908889d21b061867987bf34874f9bebd92ce12dab20182a66d9bc6df1b21d8428cdd46292ef46e990e9420913cedef1929d8fac82a56d27425c32334d3264254a1635bb14ee26acb48ea712e81d6dab7034d202068e41475a4d4315381dfa4bbfb9a8674ba501caf15fd690f866ca65233ca3fee76615c89c5bfa321e579221471519dfa19b3fba6ce8d7814", + "2b93c8e3dfc4d662f100cd3e3e971df9493221cda26f0cd7aff02b4f2762c204f22ce0207264b500c7cc1f3d75b923236e33301c704cee9eef6aec495919ae07ae68d321d8570da366b0076c23ced650e9defffd9ce17cbbd85612848cc76a585f092a22debee68be07be0e71c7c2aa40a2795903f8108feecaf12303fd03371f687c0293cd58d5b4f8d403cedc411240ac42b565fc917c665b23c78ff10c4ca888706bce7921f0b435a586497e56b726e5e" + }, + { /* i=3578 cDividendBits=2545 cDivisorBits=1536 */ + "bbecf711de04adf80efe87c16985620fa74d51430c7ff687f661e24cd6845679f67f843216b8c4c729a433081c575174641617b8a93b311e2c1db4221417cd061bddf5a2fea6b3153e735061398fca3b69f5caef79ee532332234d6b108e75fbfaf32dc2c0afce2667328dae38c68289f7210175c9f75a644fd2a51a066dd07649d6c06c0da44a5d78b34e6b8d97417640c05fc2dd7651ea1a3b10e696b4ba8dea311b49bb1b5c2ca13ccf5dae3c07c1d6dc1524b8c9cdbf61302ab66c727d79b87dcee967778c0a903add034371d4564b330a2a66a9414a0aef84616a3296bc341efba1a3cfb6dc162740cb8354380f131d5085c2657496c1e500eae769936d80a280bb965455147c9145458c874639fc7916ebe1eb96c2615df6d6adebb35517a681b5ec8d9385a502eac7b4546e01acbf03b72b5319b64d739343ed33", + "f354e64f44cd2962d9e96c0196f77d7890181f7d825bb9af9d0050c4cdd3844ad52cd5f7a55b6fceef3fd1de6a6f730f530515329abcfdb7c4ab1eea09f6a5e06d1abffe02b6a9d9637317a4ad21cbbdecb1b837898c18496fb5a694e4b0c1a5df228f2819b1efad3f785a6d67df94ebc436998a0612bc8107cb1607907bf01a5aebfe5a974129286ea96aeff677afd8c6e34281c67effff3dd77eef15d2487163194f1e9a95b2aaad8515468673bc12a7c4f881d7e94e845eac597ae6e6c152", + "c5b59eaa0c1aa189bb59058663a8bbb10978eb28fc881e7ec480eaf410b51d02824871fbf30a585d5c519eb2745536fc17cb6eb8ad5105ebbd055b89a8dfdaf868c6bb8df438b0891a83d5051e2c965b584a059ffc654e4391d91d8f60aeb70ab01092737c73e374c37be2d0b6ddaa3dfaf2d239178c3d7487d0249bb895", + "b82060fd799978d9d1f2b38764f09947cc352eba17fcaf0661b35b5fb1906b016d8f50e8a28ec7f4b5a99aba6ab2ddcc53e9f681d924fda72be1f31cf9016f4ba1bc46a7d5eec04831b87d612a89d43e88a04f438f8711d6fd6d1fb8e8b48bffefed094c103f3cc342f56994dd5acff9805e7b22773bedfc32da959195b5940fe7100457f63715761851c54213cd857ce80a04da129c8a59eedfda46592e55df55793b93580492cbdd6e79108f026667c4bb1a5b8c478e353a9c516ebf5c7879" + }, + { /* i=3579 cDividendBits=1852 cDivisorBits=529 */ + "0e67b8c9274005f92facf8272c52cf39d4668d33852bdc74bc0a6fc5d11ed02341efacd2174e7c5be797f9eff53887489549071b8ca0b2e28443dbb52698f077c5c287f8768d6f09b3366569823e53849444bfe949494a6b2982bad753d65624f7535e55541cb37a1252662332f2668ca4732f47e24daf678ebc3b2bb2b28fcd45a28b436e4d54842793df813839eb4013eae0f1c9167d30baa89ca163500f85d52b80df75285e3ec733a6085bd2262c2315e9469450989366a9f01ffab75e6debe4a421821b1cbb5c88d8f43817a5df5af44c75bb45548349f799828c556140e5754f11d632aa05", + "1c02bf30f818959ae07b7cd28770889fc66382e3747022e2cd0ba3750a56e95a51af3f7a718b7cfa03a2723f1c8e5026b8abae9db848d92a3fad4da0b5ce7d01ad50", + "83a765f966cb16f680b5c479cb3a4cde9c7bd2df3ee67d6e7bc6112b68548f7e8ce24d58a49c87b9afe3c3438f4ea891a747e446b293010daf143c8432e98d1853413038872b2473b6e45e0d1d49cd3f9647dd411fa4b13888e3f04d13c6bed5ef46751423d266ff97331beae98b0bd573f4d406b3776f07792d507d30644cc1f675b60d9211c44e1cad580e2fb5c6388b14d6b46b785a15791c66086e132b084fb0b3bb588c", + "0114cfdc92f547137af40badf3be55d3de31b5886242e9ac369e8c1874c0218b7d00b163a5052af340a84ca91a5da157c681032f5d13f454c4a3b3b293c45c446245" + }, + { /* i=3580 cDividendBits=279 cDivisorBits=22 */ + "1ad1331aa6f9a859c588c3b4ae74efc7fd6e07700f08bb2193b558e54ca4d73648b057", + "14e83f", + "01485d7aa03abfcdb517045ad0bf1e4417785be0b0eb95acf34895b7b2ea2de637", + "0f30ce" + }, + { /* i=3581 cDividendBits=17 cDivisorBits=14 */ + "015900", + "5d", + "03b5", + "3f" + }, + { /* i=3582 cDividendBits=3638 cDivisorBits=918 */ + "15c794e2bfa78c2cb743e909c9c595a140b6e481c4202b484149a3c18c4a3d216d3c5ada04076a6021e9cce19bda89a947befe0d3ed0867826c3a45f0e7159a037eb24012fd8bde23dd3c85669310feaceb1a331125a580a6258ee9ac9a751a968382c35e0cb9ce79365365b32c052ebe4ba5dbdd7a8c05b34e1ab2024765f57a03026033a685299efade16d3e5c051cf10937a97426cd64a027a4c6f14694b30cf9ae03c9a47123af87352dc25944cee93fa8a06ed1b4219411bcd08068f49755c4c5fc115e71c621b29ae0d0b548aeb720839b40656d594d0f869331abcd14a2916d36b3efbecba81285f7bced5a3b1034e88a9bacd8c3228406d9273bf0b0a312eafea891b706331243f6bda14f26b7dda35aebcbff80033d38a35566d9b0bac6fcd7571206d2e81bce9bd13271c7ef69277c4069a5ef0aa39708cb1527c0128b3282977aeee091935f8feb631ac9f204f9ed6047ea56632b73a4793d4616a7e76d895a396fdcf974984818955e49496381c28b21455eae0ac4355b072c74ba0584e89141ba94d76cde594f582d6e3e0770c979ff71c88d66c87b958cf8b55eb40f10c300e8c170092103f1834195296c2d31c4a62cdef92a6d1d40877e54a103bce9df5fd5", + "27e6f746211f025d93187ef6d479591a4754a0334be2fe3f01a339d14a40f74a9c1f779db21d8e46048f645143de274dd59ec1823016565c1d8a6c0bd763887a1dfad5427cd4032c99f595aab240e84578ce20d049c3f99afe8f047c8ed13347cad15598d2d37c991f757468dcb3fd9881414f", + "8bbb2c55a207b6a3aab43172f130260a3bd03a58bfac9d3aee3566aada7ae063aff5c2b254c9179014a5d19bf6fd7c7cf33bc7aaddb1c7099ff184cd10d109eb0053ddd46fa92fb21f4395a0af59fbb6f94efec8c3369e5ad1588baa8841506acdebef684ac8a089a66efe18481a2410dc50ee3ffa5f38f8b011058b3cfd80a1c421516a0bead560070c7935865d1569a86f9f97ce67aa69d052fb7557f450022cabdfa9972905f7f9830b5336bf12ce552d70f68d7d06b5981d9c3c1445f7de808a43727cf849a1cb5c89dd78a102f2337be72aaea3a58ccf8cbaeea6e93746ba802f5e288832de0b87af45e550d053ceaed39e7ee67d34fcbbf4a47f0754e1c083212f22eb1aa8e1bb3a7b77cb1f25b7cbc1d5fb6bed396fcfaf2a15eac998c7a10dee5ccc3fae008bfb6385917f30fa13b8613095f3b140ad1c09c825503f2f391d8961228ee9268363974315966839b07f09", + "21177515d5140522b4e12311cc99e235b96d145595d37f6b7dc214a3cb4416c44320dc49e73a79b6720a743d48b3dae0ea4d647242d3aa82ee51394b6dedb17cb3f0d8f3ed95de705f562832379d2580f7a5eb2d2ee43cd30e7a6bc8d7b9ad7a99c431f8bda10f50bc4ae539046eaaf09de30e" + }, + { /* i=3583 cDividendBits=3194 cDivisorBits=1595 */ + "0388bc2d1f2f6efd0dca764f7ab19605d68b69f3fae7b5e9852280ed4b7a3f2e5bdad15ebf1b3060c13df3db56b69c701f4409fc64e7f42eb29176e990dab63278c87389a3c470e22455e28bfae488c0bc12711348194cd95ca96981b40a127d18997c309de56dcaa4c3bea5d8922dffab9904e9f4c9dd093f60811eeba03a0ed1c6097d38aa569f1d3649e7775645f7c5779885eff9d36629e6ec38bf916171c43a614b037075010f2d01eb4ca225ca1e013db8aa341750967e52735339c358633a7f7ff541579136a8f8c54896bfa46b8abb902ad1db425a8d2899ae9782bd326f1d61eb77fcb9ac456e154b2a53507c27980c0324b6327741245b0957530a4a7215b866b90fd6800d5e298d300460cb44d6578648eeb6b3367f6f0c1b9d83b39f5fa3736e585e7b7e839e384b61298bb33fad3c5cc643bf0d621f7731c74182c5a6b53d0c1e315a6a3679672fa8222ebc64038fecaee7f521c39914c9fd790b27cc474b6bcac9a7e5e4ea65bf1ce8f94395880a8213f1f901ef9bd8fba24ae8191ff2f352683ca8978748655bc935", + "0301744aebfcd6fe36fbef890677bffc2f91d7503273e85271d8b5ab3f4d598491c7c5aeadc0a38317a663b1665653d6433900e3ef1f5a8a1a30bb06d7d4f8f88a1f1c9a69f195035a2a9d9bb1f80debb4653568e20b86e886b15cbbf158825f144ce420e015bc3ea3d41a8c8180e1440576889d2fe71fdd453be47b9c97c64506e0f2b675c7094cfb12caa90d6178c5a186911a4100cb1f066c760d93cc52f9784904dfe3e9ebf2bacf2a5d92e7d4c4fd2755aa68b61047ae36d512f7f29cedb5bcf9628f1454eb", + "012d0224a3486fff9222dcd69905f4c39b444705ab673a1f56031c4da5471d52129a49417505b9ac2c8baf5c8c68a45870deb899407e58e6780b437359ec1cf0ca27831a135effb50d26cc897f5d9cfac15e7462b3f84b6d9d8a81ee609bbb28cbce70b8910885baa8f61990597ddf8226083337138dab7a5affb229201ee83a31ed036065e2d1713d93cac1cd49e70501a22e1407960c57ef2b4e80a162bed74e7ca5b1c9d22267a8fce1388664dc849f1f45610ccbda5e8167efdf0e7747b7fc727764767748ac48", + "014077656950603e709ba9075034c234535d65e3dca351288955ac11baebe6d98f0b4baa26e1f35f3639775336a9e2a22a041122a9db832febd0883e1575c7fefff17ec460537c0553f16faa06daaf64097bfb054ef875d7f14e1958a821ddeab09a081c045bd053bcdb2dd62b74ffd0fffb0584b27b3cd7fea5f264d8d2dc798ecf3d432d3b07df62e1cbabd4f16a96479b3437d7230d6013e0e57cc51d4757f73547fe61df68c4cec0069b55044e7a462251ff2dda828521c0b11f015f02499be089eb5f7e031d" + }, + { /* i=3584 cDividendBits=1815 cDivisorBits=394 */ + "23c1c43d05917845bf98c868f2ecfb9c7d2e7879cb87ad680e499b26f9e617b207e8fc1948380a2c28065d1def73b09ab12a6a5dc49ad341363372a88cc61d9dc947e0f2d47f3a5a0c3889dddf33ff238100d4387ac814005ddc0ea03a992187f3864038943b0fbb2288f04a53ba3401e456791f840f8766e138559a58ed31d7a7fc3603940780cdf796c7cab19760d29b3da3f9a6d4f2881ec294978a48120b4640f37434f778af79de3d4debe6e149760d33aaefc2180ddf4e1a4d578e03d5dfd2f81c0c692597b3d801d41f5758293a996198a0b1f43fb8fb4ce22ac1ea0ff33145", + "8353c0a35e51ff4028b164e99c29b3db76da6186c89ab1d2f6c6dc755f1e7ee0d0c8784aa3f70fb34f853f6c57597f63ab", + "45b3b6c27205d62851940ce361ccb1f6269d794f7a9ffc25d2a25a826c9d41f47b2b72e746d2563d7bf4a7e49a7177af95435b3aa70c3ce3d6316a71ab39ab6eda70afd3841c1d4c20c8f76f1966104b5f01817df1b68a01aeb1c44e6d5cd16c64b235d38ce8fbf45180c123990e4cb81d4595ede83cc735b34606390936098c46c0479c26583964a79e971e588c6b53b03b8681eeab7760b4c21dd9280fa0ad368e3993af8eb1aca508c896276c5189c47a", + "36242408fbd87d548d4c2b5ed2e4b9391ead34015c513be996787786dc6b149e99113cf21aabc3f6d40ccef2ea6f6bc5c7" + }, + { /* i=3585 cDividendBits=3730 cDivisorBits=2098 */ + "e41352822a39ad38e61d672bd32f36e69fbbf378a37893695d59e212c8daf616a6721b8debb20ba7454478549140a941b0726c90c0a01b7c87cad916b09057e3669f14e97a00e7242ab0de462688381775032f85876c61efa9e97fa44a400715f4a72acbacca8acf834b80f91aa396eaabc39de6b52ae75b92ce0d74de3f4893fa2b369e3f9e782c8ecaa9422e02c279e1801bff4e6e46bcaf6630116bb93ce75e0e4ac34fc3cd7c1983d2379f89062960e73ef37f2ef9aeab0ecde07851180c164b2fce6eaa8f47352ece139f30f53d9329430086d2eb1a2c895bd98abcda214da51327c100857ca29f5b1ec84420ded84a3fca511885e80315786d3cb07a7d3969b909e022dd3ee207529e69d70476d2d59ef117d842cfee43a7f1bfdbfc3aeee5e1bd25c9e9109c0b15d1402cc5bb30efd92f1b11bf40e764706f208f2fa9f9a9002b9461eb14e84e5086619cd003373a9f3ab7fe22f95abe86eaf1dec8973f9042ed12db32bf78232c255d4c189d6568b2899076d26c1c17ff405bc499c250b1f418f271c89149b0c187d76d1891715d6705039bf31c467fdc92cbf36cde4c515679b8470df61def1abe7280e89df31031215c4ebb33c6c89249a091c4f36dc3adc55ae413309f1532a7a9b087d5c399", + "03d201c3714e57a4b21c1c78000277c015629d2936131bc690fdbdee135b5867e7307a10fb436ad4fece8ed88d6661390b25dc4101a00a0d9349a15bdab8b436cf1336cace3ce7242ba73bc0d2655347a6d7fb74ed99ae99cd546d40435e6810c216a40e1b70f18e4e5d38e5a1ff26d3390a1b43cf709157e85d31bb8717219f9ebfed7cb79bec3ed0191cbc5bf75445be416457d7c662c80dd87fe98dd09f9f446e5258f18f8cce258413a16054a85a1f5ce2b2019dd08c78ad04ae048a23fc3cc4661b200901e8e0cb2381db407d84f2ce02cb432d0aec58019f260e91770138222e814311066714afa55db49b65f81f66427a324dfa59813506ca131967b9fed6bfee8807f2", + "3bb3480b3a9b7e18d0b2d53123894dfe0b4fe72625f0b836ae016b4192e466d1176a6ba436b914c97aed1c5c1ded320167607f9f46976b7f856b4247be1b7ed558ce779de9e3d333227607c44faaf7f102beaadd4ec4e3f06922aef14c418b30ab0a94e8efaeb5b998c94b0a064b885ea1e2a909ee3745daacef8ba73ea7749f9d84e3d05c6e5725046d53a00d53d3561fd9bd04f4fd3c8aa7a428e22f58ef7fbeaeb0fa1b2ddee0f123dcbc2c5010fa33d7f7e60a132aff31f4db2f17ede312356638464c9ee2326d9b162f", + "03263b741b50cee9d95224dc8240cab875c1e775b078d84907a8c4428335238f52eeed265a8a1d3318d8adb465a1a508cad4fc043ff2010eee3e7a136835c32edb53f352b402329321330f4ed71f9b11d5f62b82df2a6b803a70bdc634481ced4162399bd3faf83bfbc0ff9ec0f88c0bddb95a81186b860c36353efc2947b2ca9c8f1f6736f5bdf60f1379e7fd96dde7d9637ec099b99984b6e229ff2b9ca48a5651464ee4fe294dcc0aa605dd371db858ce7dbacb721d8ef15a7fe6e393c2dfb0c65fd99f2ca7b291c597b7d76d42ea875b18ec04f09e2832626751e3a4a25b5194d082e7d91971b3912c217c54b695c5f7e9b998541ef2c884e1b784d3c4fab334f132a7822b" + }, + { /* i=3586 cDividendBits=1192 cDivisorBits=152 */ + "25815d2efc976b0c0d23e0c14c098ffddbfe54498e7d705f58f5c224f5c90100d9be6bf3f175e41b734621abb6f3835d1930f86b44cd56b88241609d8ef09a36ed89052a955bf52f348d40f12a7707af20d99249980cf69f55af3efaaea32374f1b3f55170ad88a24b3ec794361ec540d7fd4f4c31cf465c3d1f460ee7ae7b50852735e021a44af761916fce00c0012982fc65ef1a", + "dd8ea11844e35374e760566f140f7f396b28ea", + "2b55f94f5f0bafcc68da9894e0522c00f509178634eb31cc146e7684f2732e7a014bdb8e29c7d2b87ec011cd9aa9e992ff039112f7c01961af43708acc108b3767a7e911e87463cd9634a46651c0969150dfcf5cbd46d5b38016b98dbe8e1567bab031cd6adfb5059cdc717a373b0476b670345bfd2d8547ac31de835f746e662849", + "38ae753aada59a9d9a5b49750490f40536b460" + }, + { /* i=3587 cDividendBits=558 cDivisorBits=522 */ + "35084c5a04f32c50dde6989f86dde890c2835c3e6b684a813ca7420813816bc616c14e65dacc7fee5d5a5794914aed7ee6d73c4708217d99c05ec4b7c9bfc664e1e34b2f6308", + "1ad6e8a20e3d277f267cca2afd152d00cfa3fd1020cf382574f60e687d5ba234df8afcd099f0a9c5586d64ddb2ba8ec28eefedd1a55a5cf4caa524f8f691f185bc", + "01f9d53f4b4a", + "0e884b1d6eddd8c66aaedaeecc993f9fecb5625cc0fde551d64bed58ca1da6070317b730ef19ef6fd47990f78b6112706109303ccccaec2325e337ff4a03eca6b0" + }, + { /* i=3588 cDividendBits=3825 cDivisorBits=461 */ + "01e3be4833de48b76ca98cef8b8755999dc4df629f4d234361febcb7cc57e27fc97dbd3f5a480cf3e703436749f222639f4554c213ccf714b258ffd1f4bf6298cc0f69fac13969da259e1e690e8a21ce1fc8cc024722523548e68c653b8b3e241620aaf6272475b51ba71af45c6cecdc5c1c522c46a2ef30cbad6bb8ff4b501bc8050a14365519d1ec1bfe26648c893195ff424ee6e5ae5ec6e46b01cfcbcbf01f2b80639b561d6335cdc4b93a9bb506a9fde2d43f280aeef562095121fa821bb0dac3e0b443495789b3eadcbfa1c7626bedc1bc3ec6adb81e49714dd4ec3ef3317536edc5af31f11d32ac0baee36649a6c7e018ad493177df1f4d79bca65d84f440b97088359dcf8c317aa84a17ce43a6ce9bf51ae846f68ea4a7650c8523c984524a76349b90217650f3a0002d65c45ec0ddd858941cad1827acb6a049a85c4988691c2a88d4f2ff4a06e5de5ad2e3b47ce1734c2d8b6347771ce2b0fdf1f4dcc3143f370aec52b482b079dfa6cd25afa1d5d87a36e3d34ba9cc3b2af4b0d3b89cc86cbdbe8d320fcb46b59a3ffa27fe885050909de69c3c1c1628d6e802dd403917cf967296c267e755d2f020113b3f7c7ebc89119f92762e2558e5dbfa8e993abd475ad907865bf9ee6f2bcce280e62b342c0dd376be077454320eeabf", + "0c0c58f3792dd2456da2d6e334bea6f605eb2c6ac75b0a0549086be8bca8735187195b09f7f1ab2b199b25335d0f5d87d45f141083421c64745b", + "28268b2fd957fe47b4a12b3ffb17019a4bb8f0c7571038ad8686cc3d06dd907123a56a8bcab97a5e7c3e431952626f500e88b8b1a840009502a7708478e269999da2f0aea11269bf7a6ec3090946c992b4e6342b14995c9ab06c541bcfac3a7631cc17dde17120813fcf989b2c47b9fe3055d40157474880d9ed7778d7819641e2417d15c72b7c30c09ea3010684ae25b30062222dfcfbb9d0e45829bb4da5207630091758ee810de6be27fea00bd79dafc6f7758cac5f706582f725127dcea7792c9cf68dae4599394df8dfb0ea359229a4fabd4664cac090e45e014190252c9ad1fa89cb7d4f87aa72f6862eea51a32366cc84bb1751ee852e85ad3e5a5f1c7ea27cff420a10c5df9c15285b22ebd9b580eabb9c3d3a53cfbaffdb1ba64aeb6f5f2bf563d16ace4eea685c6304cf3b20c1437afcfca21d5840b22a3bb4285a2a52b95d7d87d9240cd35a5f16e355d450899b51cb79cdbcf9115764260e532fa3e440787699d74f32a3b5250c55482d7ceaf61f1296eeea95c91f536e4142def283ab2b459c7daefebd44975ce78a94ae9a103996394ad6b260f70aa24a7020ec488b0c9a", + "872c4685d141a40e60d7773f1a579f6c7d62eeed61a0693b1a22f9d4966d5f1c0c9d247ebe8cff6301e16694ff1c7229c818191611a2c3a801" + }, + { /* i=3589 cDividendBits=3016 cDivisorBits=2357 */ + "4dc77d8e22a4bb7a1f84f31f68e6221ce38654845754cc86d47a5b79e2ec6aca6be9c7a48571f282f8bf2bddb8f04b49a4337d87aaaa31f1cb7c1f941f4782e30f90cb648a0a09847a1653d7a02ae0b935232c3bf30182ce27b8b1a5e9a02a26063a1e0dac65df434152f632f872be02f778e9ab5b98cc76cf10be8e9e010da6cc1b0e193c5555094a30cbd7ca3c761283ee7d64d9f7d02a50d2176fc98d79a5e6e21d7b7736be96f001cb0d3e2212c28c928b6610e45e4b8c1790f50f551c3e00bbabb82c3290452f1cb6d8900cd2c7e0dd3b4ef447167ad0b5894469a6205600cf7316b0ccd6933af641ae42fc265e4cf5d32d667e2f9976e156df282dd6169b3282e6c7a4672f40176216f316044cebb030b1547024a486451f262f71816e6604be25dfbd78e8b944680067817ee0fe7fe4e90b1207d7c98e89edfb809b9a8c92635a032492b07511b961596ee5fb3e23b9561b31bbbd71e12532a659b28813a2e08292a76d1befb8f3f2378b66b97b2a071ad54aa11401", + "0729ba6f9b5d7a5f56326accdfac1881ec1fb1f3ad1ad5e7349258d200edf777e3235277dea4d386c9022422ca1c0d8b43e9892030a2adbacbaef10f0be75e0af4f18acb8561b971f29d059f767517aa45e5975e9227ad2c0f6c04537e3508f97cb77394901728af004310d8676f94c4a7669c0cc720c996e48036c90d8b4c6087d55c0b9f63ba56a441fb047fd974f02c0852a71d9cfe42b0bc59084cb9ea30008750d3c71c94a4c234a9ed0c0f766efe88b2cea59f64c11cb6d97d7e8e8a18844c218a8fb8b627834a77be0df02f32c72c69577d7044cd24d8e506fae971a376cb02c8cc47b5eadae6895f85b79770073a73d2766453807e1e871f847b5092c2dc02738b0f5ea8edb42b5a07780370ae1a9ed98fbf80daaec1278fb317738146e11f6cadc434", + "0adbc4f17f7a38d2972c464f1e76c4f0e4000ae97e729dc7e3283745d2efd49fa8ef7a47c6bcedf491a5a8384174f973fefcbea455da7926dcbfa4cc09fcdeb161de0e263f1a9ce2d0523ec19650e2d5d4e355", + "0696a2b742aa213e19857e49d2cf092fabb5fff2fcbc3d2d9ce7b6ebeae3f9ceb2417990c78ac2a102bab218ff9105e40553aba3f7f3241fba682ca301d00f224f05b50c3ac5c7086e96dc38e655d653037ea2e594ca3c1c6f8fc4a53cb67a3eca0853cfb9dca87875c1995aafea1f58897ef531263a7a771754b8f6ccf18c4936feb44810152c787c92a20896e4916f040f2f7079631e0bb55fa0865593e03683cab3b5a2cfc14eeb4956a92c523e34537b9fd69bba43f2416e734c405e60bfbb1a86f95081a35de13d8973b240292994035e1fc9eaa66d480508d44ca488777547a093babddd3a0d272c363d329c9ae19d783c7d30cc37323e13d3fb1ac72765c49fe7ae154536b13d38808cd0e99ea7f2ac52f1a4bc17649ab6537a1175673d73fa60e4d2bd" + }, + { /* i=3590 cDividendBits=3001 cDivisorBits=1585 */ + "76be9beeb4ff3a204ad537705714cba56f396931850aa61a0f6117398f99c76d1915019c098a0336033636fecb9f03cf28a0eecc33b2d7bd6ba09cf5afbfcdf6e968a17b3d8c0500e10a3cc19e42be2fe4a518471c5563a6736cf7a4b26b5e22559230304c4d7667cdc276c75b7e2c0de52e29ede3ea4cbe9428de826d32fbfe940fe7a68421975a1a6189438971a5e957f38a0294ae01dec5d6f1edc6598e7c91052c5d047a58a0d72705169dc83edada58f64d48001ff0508e78a3ed7c418d0c8026127e3524db75b9d64b4408cde0b2dd6edfafc73264726a360aefe95ad1148cd7c6aa15569510ee13ea1a7926d86beea6d84c7aa59330064a3cebf21ea14bff69a0f4ca454c3f2bba4a451f61b2c7d6ce71a3b19405d26231e109c000d3040bf54c57db01cd59cc9e09fc8feb01931756c22cdfe0edd9c6eac72ce8384730c78a572d1ea8514746f1b1d8166ff2a28c69cfab9c96ffa75ed37b185b4ca4131a33e60fe97c4aa5e9e79ced76ca675bf853d67006d5", + "bf0101b3b663b039c3f7b90dcb780a88cbfd3884c0d8d272c3efda65655959433b18b7ee43307c721e2d1937f904bd3b02a1e655c3b959782995969453c4be575085935fa0dc4061e0a5ed5544ffadfd327a8d896198e0eb6e7c920bae6d414fbf6fc62ee825564b882b683a06fb3bdc6dea3c19fe6ae7f260679ef9662e13131380a590b7cb2164f2eff55424e53edee8848db456d8d725ad86c2e7f6d38f89fba89e818cc206386a15af5eb08e48d6ff047c4923257ca15294fc27ae3432bbf203e6900d9d", + "9f26d8c252e27fd03a663975316022c45a5d3d355b60079eb15d2969a47498e3a63d9a40fac5f75c0288acf27cb5f10009d1cee6a14ca4fcd67501124420a765abef59f2097caf180383f727f22e7025f05d0009ef7267358d73be226e8ebbca72c1a2eb9575f0b84a105c53d81de5052651e22da72f7e64b86a9f63d46da9d85184cff55c078aaa8afabcb61f99c2f6d1ac4cf523db10d718a4b10817b9fe04a4d23b19f114b828f7873761170bfac421", + "127e996ae5d3f1fa4b18f03e78901beb9ce78602ca50aef71b0f9e376c0fce3b55fbdadd474b670c2595c6c178ad00b1cdf6f32c8c18b44cb701865a39225eb9ae28dd881e457594033d9f9c322255e185bcae1f9534cf9a7a8f1581a68da653955551bb31abc7efa61548cd182eed9ee430c266358a8379f1df3854efa6e638ce2224c7f85fac65e19cc0bb529d29d4033426335647f499169ad13aa2ffeab8680d1ad8d797a4b6c82f15223c5cf3c8b88c8723fd6867a9934c865008f5714ab9eec9201198" + }, + { /* i=3591 cDividendBits=1977 cDivisorBits=1771 */ + "01d9e414695a0e166dda69f6a3fd14b4997856c5230d477894d42cad5721fe796bd6b8e597eda0864051c4d123f17416cfd10d4ad2bbafa9887b3d567e570ef1428429e251d76fd0b1bd5fba48abc6381765fe2c48ed23ca50364372c20c0371a03ba48947cb9e3651654457e50adfdea57237461b6f753a1d4fb54cafac5d44ee4ec91288836ee648d9c14d3a8291b4296486ec6a016ba6611c255cd8ff0fc00ea08cfcf495995e3d66318dec10bf47f1f7bc8d740b3efb2c10c16b83d36e2ba574defa5aa6c8a45b75325ef3ec4c5201de84d68cf995ad87ed16b46f1eb4645dd59784bc5481927c4f51b408273f8c6861131fb6562890", + "078d1822a2f42932ea3b2905fa125947542312a3edaac3eedcfe52f809fe5b49f69c025e14beafab8c18b2dd033343c5d64eac64b364d76658e9b0b41048195bb7c3dbdbdd8c92b7b9fff2f7ecaf355458f9a3af4c246228830311864cecb3e2aa079a5ee54d4ac857b8082d679534fa0be64e145100ec0c55c9b089871cf9bd205c742c4c9e4836dfb59a813ee04e5d633c0caa11ca001b81c8407b8f88337f54b42702432a6d7b6536b72dc17148789de51ae98e9e6a75ae6013886a7133d73d038cf221a5ccb73d3137ac00a2d70a8c7023ea4da2d2695612069fe656", + "3ec1e8a82c57dd61471b0a878a5113c3a159b1a6b5e8cd7bd553", + "0250c7b80398d93081d15f9809661ba5802340b2e89e6b48444e7438a1acc42f2698e205d6df47a7a8c7fdda80cabe6a9253448c3cf22e938cd75673f74cee5614c56f15ff0c988f986e78ee26aafb43da523c13a3cd64bd3beebb82714214ce571ab2905347d08eb6b6453a60bab385b818b2369a8feef2eeb3425af9c726166f01f73edc84b65cda8b54181c966837756a398bf7ecd3a8a50201468a16efc7fcea59cbe4ed293a3e574d38e3ef7c0a08562cd3629db6ddf7ece370d871a45b6dc9632d300f95a4ae79da71e1792c07710a9e53654be11e658dfc86ecae" + }, + { /* i=3592 cDividendBits=333 cDivisorBits=156 */ + "15922d3ebd672f25f629a3a3197ed8296739e9380737b2fd0f810ca32d0eea48c4fef89aa1251179a17e", + "0be6ac90ae1b2d4a5b293e88c1635ce7b2aa88a6", + "01d001b856d1ab45cae512e8f6549a2a75d448bd08ae3e", + "075ec5896bff98fa8db6f6657a4142b1101bb54a" + }, + { /* i=3593 cDividendBits=2582 cDivisorBits=1459 */ + "21b656c56a8424628c78447f494ebe54abbe9fee9efc6d15b4b491364e155879cc3792ff71554bea4c9bf603dc632003bd9320bbbe41c62326b7d64f437699e2995286cfc46fbcd24677bbc5765c1ebe819f4531a1fe0d8497284e2e21be549d397aad5c7512abf69a340c85e0a0d4f4e204a113c65f2b15e78ead202c07cbe6999bebacd367517ee99d4be1106309b25a02a253e12324bc95d3d58bac548c45ec0c8e8507ef06a25a596ea0cfc06b6944ab24099eef67ce1a07f148463d0447fffe4e813382a30bf625098d4690296da9cc97366161a65cf895ab54c3cd8cd89fc2f31e5fc2b813d68cd4b0309b2829e70f6927edc58dbd11200ca814f04982200778d33e3dc18c01daddd07520abe674d30890f10173d815853fbed456111507879f7e38ad054d859f2feb95a52463939850875595d6babca4eda8e34cd5f5adec1a", + "5afe15f159385b97ca73d3979952e27e5df5a4c84e98b412b496e00a0e4c1aa2673f75e749b4102ee741d09da254fe7d169b2d14a68f4808d1b2672dae3c086e31c832912f423490fb27f9ae280db64d8dd4b5c1a4ffa768ce3d695f8d0819ed919223c30b440c14d4826530890cb869f1556ee5e506bb8d9f2b5a2611306864356c0736e7bbc2ad5879d0a86c84dd0a5fab22cda7f9fa7cf24076cee5cf12f3cbc404ad3020858ad385d3ccc5a06af07cb01c3c2648", + "5ed8c03d19a6513d5d81679f8b57f0399ca4b60c5c847324984887e25f5b82826c11aabc74cd0358b6ff1d169514bd9e79b9f64d7e04a46b7b1a69b9aa5d69023f84c39dcf52c3723e61f5ef086bef57a56e1e4154b02beb15b112d73a6390c83ab4ec65d2df95a4a854af6e7bb1ed5fbf8981b752dcb8bd9141939daf977c4c8be4661db989035c207af136f9", + "25b7ba4de0918f990cead9239091db54873eff78800d351566438ecc5cc6c6b225b7919dd5b563da81610625151ef2ce36615f1b8aa44fd5a9867c1abc72e00282c13621dccccc013dde6035ed0f0f112857cac8b7f6ee1bae1ae1237afbbc5e5a033f9727752e15e6c662955583603d7f6e2ef459b92686d924c00ea37a37ba29fc68144c9d794eb46a17eb29e63db2fe87331970ceb5cc88f0056e2ac77ecdadb5c46a3329f7e84c63ef5c16237b4ef7b775518012" + }, + { /* i=3594 cDividendBits=3803 cDivisorBits=3647 */ + "04834fa6befeaa6a7bd944402df66834757b10e6a79054704e5670f3c022c9e3ad9fdebeb7da0e08579594c5fffc9441785da185f4c175cf3d5fab2a1fe2874f388443130501fdc172408f148a789d82d1f71b4c36205222b2b94d8aaa7ef4363c6525fc47d2c537d3c04b41dc66523f84099e6ee02b1b304d80bd6c32a49d2aba913c6c144e73ce59ab1a6c02f08c7ac906f95c160c337e1cd2e3494c0fdf0bcd31346b9d95ad35d75c11558cd7dc6c7457696e2f48512be4b325a1d6bda1825405bd63a5b25493ba1302af2a39e22c179615a6602bf26c06335b6c588048af03386b5caabf369d5e8cdd5c3bf2dbdc69b8dc07367d875ccbe9e62c82aed3b0442e46e44ff733ea4137bc2f76568caffcecaa3995262d3cf6ed02f3ba7418d55dd30f0b6ec980868e74b1fc80bc5cb89aa64c3372ce64ad3d9625e48225374e19cc55062846048168ed73660e06b9fda00f00f1675568a8774dec96393e38e1c1f2be9d37ee8091cdb921e6e26b81a374fd8a7349f7ec1224e3f658f547def197d9ecca498d577794d05f2d892c69a2cfc22ca55615ec9d86d17ab53f49916e73a9ae7259f4268e1778dd595a69d913ad3ff6cf769c438e4fa930fa8293e59c53b4f98f50c45780e545416c2849a8ab4eb8c8713c1ebb93523d6444", + "21de8a61f44f0a581a33c4400aec08df4e27c23ba81f792a28dfb56e186599b475966dc8bae6152b0bc698923aa96bf9b42f60b0b6a52eaac0e675730cf38bc5d796eb44464ed3142fab6e3f7edf8dc2311df00675b39ee4c972da11f62f0b83dfd90b47bbe896f7452dde8723df4350494446cda1814ddbf5e01e3bb509f1ef9b74bb4ae15837aeac90b783887d80cbd2df7845731c0e67fff61b3bbf033cac491641c25fb27513c3ac571277f42b869247702af868077414d805173756bd50035913b4f07b50a2b13f34b00da789bcea08d3a31e587b198468f16c5d2a343c68a95c6a2853136e76c320f70b97cc43a7314d0f4c7a44f2caea60d72b4b24e4b47090d0e371f98f46e8fcdd3d28b9ca59ff12ba8d45c22d9886debed0749cd6a666153a7367d60d0fe2e67fdce4108a65b41ee1180237026f2ede05f9fcfb6281f2dc90ad9ec48bfe5dc886e3f76e91cf65793b31d2c93aecb18736efe0e7c08361ca9d3e0fed4a5f0ab33e9c7a956b0289343c67afb28b89e29f30fdc65ae65cafa81e7f2b1d2552e426663a2c8dc02a0be7bb56a3c15d2361b0c69d52351d54e8e8fcffd11b3ae3d5d85020887fa9c82d64101e2ce279bbd362ddb8e2f20b39673d3a1c804774", + "221c61bf11dd83d0749dbe1d755265ce56b8d1d9", + "1573aea045b326518d9b83075a71896ee0ecde36d2584fdfc82be976e4d6fd845ce2914e858654b79995e3dcc973a885c59576e3cdbfc3906c9b098cecbdb65bd618c96432dd357f6680525ef3315143bb76174b2142325159faf32502a636886088d098db6beab22d8dd160cfaad1d56f44885a675ae9df2897d36b315b93e21bc363b489de0326b197f1be04717e0ebcc9d415c32403b9ee5edd77a8a18f949b74b921f46bfc221535d685ef2f8b310b01ebffbb5d8507e88462e348812c7e65459b6ecca1fb3aec965ad8c04528d1d56301ca5fcd6e74c17ac05c177269cbf6f2208a0234aec7d7bad606b78510fda2363bce237f382ea49757a3b8c96fc5cea0439b68334753cb9b6b13a4bf457d7b51fab19e49c2971f3a0d66f153c7e03f8993282ffe68c4ae0912e414b37bca76e8db698a6480363426c2c9bf6b044cc1362a0b916f5da7948d85bf69ba49d18f542c565bd5ce4979ee746ec6b5c3e6d367f0b511453f5d01bd40d06f4a56b95046c9a87da0b13b02ac1508d37b02faa6c2d8fab183c62720414a6f0b6af3655edc9fa19402417bc897d0a808e8163e01e403bac7c0dac1473e895f93b0b04a655fe75a461f4e4da859db96a7d15e6650b58c801bcb1ef0" + }, + { /* i=3595 cDividendBits=3906 cDivisorBits=1447 */ + "032b508d3ad9f30b8d528bf5d0a911b83cd465b7b8fa115c84ac2a1aa7ad5b7deb30a460729de35ebeb095557134330864076a663814a0413bacfd2de2880d3d802d877b5099d01cadb6fa8b6d90a713f43bfab0335b19a6ff9bbda2d3f5da44a3f2a95585fca405e8f74d6cbff4c3a70d1a9222c4ebcf40fa2dc4c66ef71eb1514d226f5ef0cc90e283974d5cf23cf88ffd9141b1d7bcf7c95f834bd859366657160e79a666a0767e7d430ce3577d0efbe8c87fc5f0202f72aba542fc760bb027f30315d2b73e19c75dbfc751b38f40eb967c5eefcc0179d9f856525365c4a4925f3f57f2a7ae781222989a73c867528e5633c99f89b3451f53740b6bf6f2364c87fdab3385918f498e91b9f1e4ba135fe5b13eea0e897ee24da24a6a4ae9eb6b9cc3bbcfcf9130b98865554fb17e3891e2f09920fd76e5442a3079316c3d680d0cd1f67522f8a5248e6998f2ff3afc928d7b43eee7fcac7c21be7cb938878fedb6b91501a0822840fb642dae40c053ca895f90bdb379e059c2eab80bbfb2314d591d9918e66265b55fd57c09dec9e8e6bea6e67cd0beb27013f34ed3a92d5b6b6be0042f4bddeb608e238001ca92ce3a3f99d080e9c7370e8c593c49d54968e34d8851d569c47adccc37d4dc106b8abea50c04d26df274e72e96ee5affb365f0e559fd28557c7651", + "13e0d3842073366c4f4d3b4a4adc994090585fe292fc4bc44b2ee50f816bfd13bbe1d7e0d7f4cf1096ddba1cd4912b1aeec134af0817df6a31291683106c51464dc81c56f3e7b3d693ef8368d2601d9a4bbcf4f7fcff7668cc12cc10d5dcd05bb08f92530b5c8b8a7de9a3b627783ab71d6f5780efacb22a9015b9b2188d9a2c921798c041eab96ea78781be3c5f9164404d6297844771041ec450e6927e6b4332e1d176d5947a6745a0a9a732abe4c7fea6af1b51", + "28d071ba96d8f464845e5a07ff63bd41c1ee46a15f7bae0c753549a5f04e7c014e7f29e1a6b8c9430059fd234bb7ee86ec96943256b8f90dbf3728c10d6dc7064f6ed404a6696a9b6f83e9731a6faf3f8b0c88e5b81807934273a477d9c4fbc68fea0fd56295b1f65fdb7b4b5b7236474583396c0e2fdb9de53958e94f965472d35b2d55701ac86acf611c090db1981b8075c4ae045332464fb94466dac4bd8865fc401e8c0dd38fb7ff7c73c76a26f701bbdadcb799d0d26cad59d0eded72b0976463feb4c93b19ccd94babc9d5a66dc80fffdfd56462d80a76d391ec426be7683b7330d144789bfcbfd91405af8c2d5465bd987d655c9fe6e4587e3861e7d0e07bca8455b0490039e895fa378f259e6ca0b0ffb7c78dcf5129f2b2bc0c1cc8a06be558fbc70e137c1112f24ec4db5678b635e7", + "0b415408c0e570812b6a1520299e3aaa925b1fc1d805b12d5fc60dc364dcd66cbeea1b87c8a81fba9599ca42a35386ae02321bcbdff6c5aafa8a72c3ed342faf05ee6f42420451f0bf0b3d8caf73394cff4849734e24cf1d2fdea5daaf84ae3e970c54f08fcbb48875ae0517589ca000d233a058596c1eca9725d37ac31d443ffbfb6bb0bcb9ad2008ae2d6b127fa71b52c0a7161d0330ba37ed2646f399b62ef1fba16588715172cb2edf12227c1fc05c493d0b3a" + }, + { /* i=3596 cDividendBits=1734 cDivisorBits=1079 */ + "097f07a2cfc0420749c8195d788e7145c44400e14ec3a10c7e97d8b0a97fd0dac9a5e94613c469f00363528ee9aa96e7be2847d272a3ca64203ea933f71ca6d686b59627824628ec53815bf4383767822ae6e08c4bb9f74e3fa569d0fc050ef48deba5db3eb15dab057af915caaef641d12f73367f9c7cc93fdb43c61732d4e7539b89bbbb1c86adc30d9bb1c6bfc33b97c34da66611f01cd03c7086e2c3dc2665eb5ef1091ba99805c7be902823a611c4469d3815fb8436fa18e3cfce318c4f86d54022ba393c8af99127af5f333e3f458e8cc55e5eee8ea5", + "192b00d5464444bbf4b0b620532b252019f9461a9d189478b664212e153de9179bcdb99b2279fcc848bdbd4d3dbd91d96af1f4d600e7bd3ae555f831887f7e785be9fcaf09a31156cce2e1c728b24cadd547b2ecc406a87e9c43afb52f906934667384eb4bd04dedf073e18e199f2fea2196f251e3415fb9315b545514a6f1028dc805139c9007", + "60979826be755ef276515be40c11a461c0b304fab4f5f497ce1c0c751030aaee798b6c18ffabbe14c08f5e24bda0845c720c0e4cd6b630f20c7bfc888f37f4b10fb7805e3c984e0e9402f7e061c01c1261bb", + "021d0852f1106b9c91f8fa89d7d90f7d3c648ca95e498985ed34be501ee41dcac2eb4af3806c4a7eebc260de37efa6e1c034ad4867db4c905a2f3869e5f177ae1afdb003e15fb35f9da9a3399158639ce47523d98538280afc113d5eb0c67aa25515a9e4c813ff0fd18845a943fc60b4e8b5e103697f9e7fe2ca11e650f7288a929037d480b288" + }, + { /* i=3597 cDividendBits=1389 cDivisorBits=148 */ + "1b9aafd46b9897eff9a5ec1a4499d373d82f06306923b9ff3a7debb460daf8400df0fef9d89f18336da765ec5507b1c1f47db3f08f43b7e04470030949b970db75ef6f0ac3cffe7206760e1eb55fbe6728e73a8f363f48432f75d60210475ea93390e64a0f18e788af7c526bc96c2103f5c1081e40c4cb5ce5320300945788cc1af70acc5f17d7e0b4338526494d404f1a3f04138a1f677790de41895e2ed0f828d116dabad3c3fb996fd277c063", + "03d697c8cbc2ef5a987c91e0f327cbbd5fef41", + "07311ed15f91890841ef7981adfeaed18932649a1d6e809ede505a99905bb7159e40c2c4f12d4596056e3be7c6ef88befa8525c69871aacd799a712ef3f65d6ad2371b18b3f72b15c80c8e5f417af9c3ce4a20dd68ab60c406cbbbec642d0540e22c54d32860a8a7253a4f71b063dadae5184fc12392e19ea98cd107e96e0116d69e6b617393f3662b3aee34b39a4ee35e91e402ac6a1af36be56eb5", + "0158379ae2ed5f37e705473e48b67f84b0a96e" + }, + { /* i=3598 cDividendBits=2300 cDivisorBits=446 */ + "467cebde42c131c4c4cf640fac45570beea22c163cc1e0f097591feb8397a5a3b7298b618c823b5c463c9f1007735f17fd03984df15248b5f6bb77b3f38086dd5815b99e594a33f8039e133588c6c252f3d3003bb76fa40c0bd871519afd8aa811619e2085bc743ba7cab7650eaa710dabc5177c3fbc2f46dfab058c66e1e9f86d2ef1ae87cc80cc1d528a6ffa7c166230978047f2e83fe5ada0f068f8c4ce96ceaeb91d1a79566ebfc73499a3f84aad9997ba1708747d84f7ceaf0e4fe9591ce045e08d6983febe14574e86e31e883c3ab264971cbd2be9d2e8cf2ca987b5cbd0dd19284b7d79338ad6282e59f4e2186e986edbb6e4afe824ef2c2e5e8afff377f17e1e58c17603761e1d46eacb13b4c4f1ad49597aa625d242a0b16efee5", + "17e2eee93c1d293bf561f189f6b62222ff9576d37c0f80e0af614f2884dae2b259e5d48674413df7b825bebf30a061b4a77a106b606bf545", + "02f37217b223e4897660e7e8aa1d8bdc29d202498a7e264a227414dbf7315404bb06e2bf8cf48537d72b347748b07c763219e953ea99a60a39177ca5e16694c18e66f785ef988085a3c35bf43f1998d9f526fdae44341f2d98c2ef40b150800741db2a3f02c055b45e0f6dd4756afffa9c6cf6556d0b6f3f7bbf9c7872b731b82d3a1f4d737d24e4026736c2e55ef251a089ee4807df6eecc03080379e85aef307f65488537599ad220282b606dacee1cc4df10b5a5e15cf0e3ac3431259acca1ec9a3c6945b4e30a7b5ad295dbbce7b7e839b8c0d78db7641c1b41e952f000aeb799cd897a39fbb", + "14ce0f23ee4b4bc42133484a0430f6b19e1025729d4563be6ecc7dd078b502e39dfa77c1df3847e40e9820f6688dba08cc0d82ad574dfa7e" + }, + { /* i=3599 cDividendBits=3383 cDivisorBits=1982 */ + "760b2c91f67800e79d18bc76b434e815c83f1e6f5ae78b44f2f80653d0d74608eec47736e3882fa6cb4cc3d0d9fc7d1264d4b1fe1f0850bccaebfdeb59f80a6929bc076c74476e70e426c60d4e1fa3e0596deab91ebf9148551e921887f22c37723cf6550bfbea89ad247fb107ae6693efe5e37aec581cc0cfcb1d5aa4eb4940d6a077761c04206a1ff3bbf35d4c9e94e1befd258c1e4e144556027f956fbcbcaf3bf4e81cbcce63485f3ffdb37f07a8dcbb7b8f7f4e7183d66e336e66fccec16b37e2d8131fdfda73fadcd977e99dedef4230c1ba2745815eaa614a147faca2867a56ba7f8ae6c62c29ba7de7d071ab8739df26d8638d445e738ad4caef716dddb82f0a961d567216241257648361da763dc01e7a679d0eac77cd1c501f492320fca990747c57b208764aa7402a10d809759f43ec5be6eb65b5b65f4492162b5a7c803b794020d6e3598f2ee3a63546f7ea33814226d36cc6151146259ee0f060d1018ca00d200733b335febff6bb591ec474cd188c24988c103716c2765fe19d24cd19faa3542d219ec5c88dbccd9b31abf840113a6aa2ae0be7d369c52d0dc598f9da94bc8a", + "2bd98bd3929bb469060760072e39befe188f0ad004d730332d8ba209d3ee6feddb3a318ce38d7f10c353e0d950c2c674e35a80232a9172df3b235d6112c0311f78c5b6152f0792850f5540396fe161660e0b71eb7f0dc80430f650c4d1229723e7ccb6c1ff1ffa83ff7563a399ef75151e880cf850441d590b2295a1ce8b385f2c5f83dbcf745277c937437f84d75e76a477bd50d3539c10496e8d258f83dbf50e9b77582074b46cdb55f0eb493d1a89b9a61d5f11db979d86389d7d2bbe8724a81298465441d9dbe6034b5952a2c8984b8ad25ecf70062ed4b4f55d1b0ecff819238abec2a26c5a95d7ca93c5eaf46e12ad946ed9459da8", + "02b126ef0fa49858dd1f0a787c9820110768b7e0e6541a207397a59c01c88f957ed4ec350b396fc581fbf566e14586d10038abd39c03439c136e58713308a56463a31bab55c37d48c2834fbd56809a036c066861d2730050977122ce110801a3470dd4732f54b2154e73a8feb1d06c5282c8965d224d48f86440e316b0e0de9ff6e00bc27a6aa21801598643200fe41ae172930dca1082d87a86d78c0690b2bd98d2c32fcd37fb7d12680ee7bc03e695", + "74fc81b2578f80cca78889d22057f199f85702612575e5a389ab36d1d035f94b56a04874a1bed3712c13ceee95649253f8b63682612396fb72fca8b6467b6ba6ce377a961c77dff76661c3a8e81c7a3c2848eec9c51f4830908063a4d360c218d465c3b7090bdc5eb6ba06818e8012f1596218dc86d516094fd9ae4fdd9d07358fd4d8fe95f59fd926e0d6d581c7711502322e9c435cdec7997280bfb316725f346c0f45a9def94e04320ee316522f02c13f8c458215fb38d6546cee32b6484ab9e62089d8de607eb259cf81fabd2519da44831dfcb21802f026ff9dfededc36b5cdbd39f7012836d1a352a6550efc5dd67f10a07309c2" + }, + { /* i=3600 cDividendBits=3046 cDivisorBits=2962 */ + "261458e31c4a13373dfe9d2305fdb3f36a97536457cb93711447e4baff49957fb4fa2ed24d5261a1959d7a2ce7fdf4d0f036c4bedbb34e708d66983a2c2f47838fa6860d97b0a04511b6d402825e14e52dee7e42518a6679193e8732fe75b3dc9d3a69be948469ed819f090c67f888009cb64bd3ddd413a9441072a0273647aff94f6cbab23ad5a066e13407f6eabd5d0b2962e5afa716082a9df33fec877756d881ab1d2b8b6919865c609a3db2720862b2e53b37243c0d9879497b258f6a4571d25254d4e80cb7ed9332e75c9bf291897bf6378364ce0b6316a5686ae745af32ed98070284a04ddf28441f50c857cc67272f146f247799cce2d991978f831972e84d8287f8d5ba79f02f1559fbf03ddcd4ecca5fcb71558061d2cf4a5ebb99fa95f91502b0b98c786ca500fec97d6e703e84819dfe9aa8acf2604808dd837cfc852fc6525f4afc8254e9702b117e37bb2fea44e84fa9fe5afb8fbe428b54d1b2f45730c37ba36af1d2679f43a3446424360867306bb986995c86199e", + "03c2ac0a96743cd3eb977a55927c909bf071b9a122cf41b36fdbdc23b42b035255c692317b9a958c9bdb3474e54eeb0652edd466d0f1a20f9325d45bdd55fc8ccc13349e3b906d44318a265be0e86ba30fee024713b161bab7eec0a9ba099b0d6454f1ebea1287a3589a859495468fb5a7620db27458d9b6595b54554e6a51274433bd4075064bc8572bd8f78b00a7a412ae44f08905a84f2581f91c0a778de1d04bdf789ea3d686595a0263a727daae771e57bda451647e2fd5dd8bcef53a6b1e74d88abe1f3d7d72df7698051c2e2ac44565406cc89131251c3be62c93a8b8419de7bdf43760ffaef8d748891c438c1587e91a06e88a3a075b94de164b0f60db1f62f042e38b6fb5b65b9bd4c2148375e8fb0f578ccb0410a4d9d707b3f3578146c147e2301718e67987222c38feafbcc38e6837d5c034dfceb53b5fe8e2a0c3853a18fd956d5124d0bbde74536589659cab7c11d1e0201f412e95e85493409ceb65696008232c5163e578a849fe9c311481", + "0a2058036564e7f3337a4f", + "026db716014f453dff6e7afb3a354beca2c0feea214efb2678de095d975ed9f2b05c5247af0a724fb9584b3703973f151972b25c7762aeb6603cbf9153a3a5e626950d0bed65fe491663f06b2b6f4a4bdcf8ec46f1b6a69ddf7f8bafd27e22a4978dd026e4b3a4653f5cbcdde2d9cb33cb5fa497943752a97b0ab69661b4419663be0de7a97301adbfc38ed168c2982e0734b23a8495f1025334f809074c4f57824181394461c9e87860be58b9d8373a8dd5a2184ad40d8e6b14aef527a39976bcea7dfa76762729a8f0fb34f4a57c53b0f121425453e88b4b52e3c7c86096535d3a47bc62f7f7d54fcfe09ba0d1e3103739f8878bbe08212bd6e0e37763f2e26fac70bbad1c75e9e3677aeb2a3e3602d9aa147cca543fe3a87c1c53ff286aac4f1802c71b1ce204844354fab314eef673d61fc21c6cbeda3453f005298e675d6f0bbb8d5d4e8560122336aa431d9d5508fcbce0af4b0ece3299d1acc6ac8b69ea3f070f3950b59c8cd767da5ac1f33ce84bcf" + }, + { /* i=3601 cDividendBits=3041 cDivisorBits=940 */ + "bfaf56bf76792947a8c694223f5173f9ea633b84ead8051be6b528156f687da3e169d67f3f94499d03b82b96c55309bad909c26b7defaa242dbde8d07d373e65cd62468390b7217420ed9d1ba35e84862533ec1605a9cc18108c2d3e81c9e7541f239a93c14c795d254beeda7b0e000a56405bbe14a3ef1735ca078ff1010bec1f5a4f71cb6c68ce244aaac6c40c6083a9f10ebb9c05b786693224190c54c95d17cd0cbc75876147185bdf2ae68b5dceaef0f2331bbc4258f3f362987a89ba5d3a491a1954eae00b1bf86878adc06030da7912d4566d8a901d7636e80f6509764cb0b38f9c12f34870770e180c61b1c7249e5d25668399da49d46d4558910181d39bcfea401865305b22a025c2be023751684995c2b8da3c144aadda4134c9f2ed37e8c765d48cd76a278926d11bb62999b72c0b5fe232d979cc42eb9a2b27b43ce0953bac3c85e7bffd7b7e004b3133561e9933f513df124db4bb2d493582f61a4ce48eb472d08b09a67db408636d9dbd9640a4be50e6c1ef1e88d0", + "098036b87cb06e3899c8f09bb843ea35abb97c4a73ab8453344c2b3ba608d05d067779abfd0d905f9039fe8d1ea62754d8b598ea3201891e1b18f0097c40f924585f5ba7e6236eae02fcbc5d27bb1edb69226131c02d2553fc528a4c21655cfdb2fd443060f0afa24d9b2a8802aa58948c83156666d3", + "142cf33c008f362b4bb650383d0758e1a0c39034e713e0c3343fbc39bf50385cc54df0dcb14fd26366da0ec49babad707dd700492a5ae6da644d2794d31486fa71e9af5504399db4a1e93e07279971c641062855358fb8000f262c0329ba4290ad4bbf4b72daf2475b910a1a21328f024c4745c5957ca7ff4a1b73391783ade8215a81fd50376ba6b44b0ae2b942e7210a5c864b24a9f8ee4908e29e7c1c25ab4183062e773a4dc021cca0961162bfea5adc4929b52ddf88f6838ec3a7e6e6161bc26498bdfbec9debf0e947d00978b20110da63ac493878a32588a26a54647e489d07f898faadbfd8e666397535db7c098ee0f28419b0404a3e5167c7cc1741f00edb1bf124ff", + "01496db73902a94cbc1d3975a0635ec9f592dcee4392757a2f8f08cc7078a2946774780ed3d13e7886303d42e69fdea3432c7532e9317366f9088e8984c7c680e826ea4fc328757b6f486f55ef3db072936697a75870485e9805406be66d791528a6fd737119eb7002ad82c7c577a2e40e6d2a0570a3" + }, + { /* i=3602 cDividendBits=2519 cDivisorBits=139 */ + "57f3b61ac5b3a8c2ef6dd5ee439f22b961bec813bc2dd565185bc5d1ebf18a6a03767eff63d9ee4d0dfc17543f2e8a7ee08a89d5e11e2b0b3bc07d21f9b3b75e1025525a435e2923e7c5ebee9ac1160eff5f58ae626089227f34e334cc0deef7b7041ec0c1011bd488a2e605ebd9de5f54a313cf3f6b078456d02fd9f7517aa24575d4e0f6297ecc80ec8a6b3b554cdd803c09828c58da002c1f2415ea5a4efc45b38f492287d84b58bb20f2544f2b8ca514f1143e2a450a538587a095b3119762260d56666aba79d4742de995a95ef33cd69dbe3b63cc61c546b9d622aafb04dd6dae6b4a9eebf16aca49fa577c8c4079a3a13bb395df30378b76721df37e690b644bdebf8d926f697318bb8d9f8762dff9c8205be30ac985d988a173ebe36d105ceb0150b9bae38d137b77fc112d64949607e4e2dac0ed6e17f4", + "047fdae56da65641252fd506603195ae9f3b", + "138c1ef97a979163248d6bc0253d27b2dbad657d0d000ca3c73ec49e5c6acff8c8e46889fa56f044a8656bd87befec87bf226a3a66b6621c23535856e0d120a0daff08846de9b428cf77cee7abed0ed38d0d3f7fcd4cad69784633b9b9321e2fd6d7572a3073e87cc4f0078facd413ef8f16c85fc0645df92ae454838f8dd1decd80ef6a6982d2d37b5727929a1845cfc820a3428bc9595ebdb6496434a7a34bf37943b6d3f41f1394c7a88cba3b4a26e5d6d0e51e9df435c7c3e59a68332fb473a7beb111e0469fff7341e907221264229b35d341e03445e08ef2fd1f44ab646e6d36fd5a549b15bef069b0f41fadd7f28b7e26c8ddfbc41d6d033d4195d711d1966cb7047f5cab2458701f58899f7e72f34d1ffbf61843fc451fe0ecc1d3fdc2e916fd7ec8527d183f", + "0377027b6acb215ec3feb30a132812b8606f" + }, + { /* i=3603 cDividendBits=1195 cDivisorBits=897 */ + "066668b0b1359fb5a8b41ece8224e4f9de04e13fba60c1b7da1645b161b3368a687e6a6ddfc0815d0e5d50a983e81bcdfeccc416b6a6abb3db1769fc88b19155c20b97ac014cd0bee19f057f1514ad557b74646ac367573bb6420d9d4ce55941e1224beb53477e7ca31e78a4b7aa446e6a7e955e6889e5f655bb69e660f9f0fd58251b39f6ec6ce46385f8302a340a861c6f9516f66c", + "a5ab706831ee07fecb378817752b096ea141aaab10be639daf12449a360ab90867f005e8bb79c3f3bae618678e828c2cc9a0d87d6f3c88e1d9dbe3108bad04b846f5150918d45978560f063dd0e7609d7e6e7b4e7b17ff0572858c12b4840c372bfdb406af031ea48147f2b73d83b461", + "09e3bda1eb45843c787ac04ff02ab8b6937b684c23b7d2186a244f5932726195a66e473f37d1", + "87b272f44130ea21c8ce46c7f6b082e7c9761e5b3f3200c105a36168d8a34a4e0006c5c2424b2dd74698eae4352ed41f712e59456f66e47f71be6e561b2b9ca5721dce8c98187b9a1a7c435937e5ed95568cb6a1e6b6c0177cdda18163be46f83d87442296daf247e9788480c5f0dc3b" + }, + { /* i=3604 cDividendBits=2893 cDivisorBits=1361 */ + "01616b5ea7f0bebd443f59d414f01f0b83deb1c9cd28670003b0574a6433337ab25cbf46d1f40b7a713731b58a43c472c966856b078c192346a76e459dcf4863e0ce4e9429ea1128148615e400250b5a8ce197704320c0cd4d56567bb1b74f35e9847f1a73809432d53f9dcd91026c4a5ba223cd0f1e85ae31c13e976839f20e7480dc0cc5e2c6276fd158a63a35b0f4160316df2b93e0abeed0ef813e4dac30c8be2df74626f2092e5231147d74e6fb6441bb23fac097e0eb3d881dba04f73f74774769198a0ee2e4a4dbdd7fd792c6cef41396d94b78a1365b1b4f7a694005f57c246348bd67449a728b62d2b18dea6059ab7cdd594003a647d0d73818d173045e49738bc1738deb9511594422c47115b004b1e0c8af2a7b4bf3c88edce05e2ecbdbd081ebb4ada0f778ead183efed4910f98052bf8ee5fb7a88e6509ffeb8a99df7de7f6cedca22f217af95925f0c833f9f1771bc20b0bbd2935c5c7274aa8299d0cfa6caef1ddd5f", + "d82bfa3f414a81acc8158145c67bca180ad496ad28afe4a63a9272c7c9b7527a89cb7685125382a67dc4d89c3969f4114d5f29a6dec4756fb8aa35bff0f84d337edff7a82a5f946a6b4a7c918a2895c52ae0243d25af67a920601d40abb676993d3feaf262998b26580aa405702c193a910a1aa9ed1f55e5d6f89651abd4e47f6a6d6012277cef8fc08318ba18a2384a7c5f2dc7970c95d75d0f49607158de163788a894591cb31d0147", + "01a288dab6af771658d9abce5355e1bbf400032215442bc59e5565715c96972a1a59d3e9c8d96f4bb713b786badc09fe579f3a8a18fc6f7d91194c7b3309291585d3d3010c5a5c20f35ac5bbe128cf55c284613453d4d96a183185fa9361d11f0316b33a719ed9a96ad3b007a5dd2c230f02cb8f81cebcf694d97d30e5272d2ba88be32e246f610b4c3043507b029e1ebabfc42853f09654a76ee9ded658e4f7bc63ac6987a89fe2ec7ab293485d95e76fe5ea0b9ce2ebbff0a2d940affbc7db", + "97380c2ab7216b8e8304822ac1db4fd0ff1ac65c67006aed5baec38ed08082d5643124fe1b1ccece66b2299a2f424a1da608810c794a52caaf181beccb8686b343b39549af2f6999ac377e67a6f8bed16a60cdf8c8961f6972f926d9eac78b32969455d4b390ba055ba39db334db43d8b1df2581ea05b77c1d89ee2222fc406b38874a48c3892bd2df5e6e5ac078de702dc51c37a0a95f88e49316c1514a7c10cdc18eca29f25fb294a2" + }, + { /* i=3605 cDividendBits=1433 cDivisorBits=901 */ + "181006281950dafea1f869ae6a956f7fbb110bc9243ca3c7a33ddc9d3f7bdb062a74983177eda1980f74987feae82357202b618a56c14d9d430e742454acb4303f93f90d50bbf476924a1ff5af88ee0cf4485b16d5032ca660a774c07b7a056a19a68c2e60235ae2d23f04eef8dc54b1996211211a387a051bd37d42b2ac1952b80497c44a11bac2a72917a50939e6006c6603e06dce2692c5011f42a4895fa55bd4af8d280470c315ede4d304f582c0efbd14", + "164b5412354ccd7d418168461d37a84be0bd05c9b534201f6d96e4aecc0f71bf81c5b16a0d4048837974694a50f179f95fff24d2e78562a353b0eaeb19fe9fd66a5d6942822ee54e7a8d4d0d77a07a33bf20f7443a057c51d6b7370aa5ec3f4c2146920c042422fe944916ccbeba7f6133", + "01144e346dae015c43e0187aa8859d493c3e35334ead36d75d6e32fbfbf6043f98a3ba9df82af283df3fe28f1caf6747693a3ad383511f6fe3a2e36dfc8d61a336ca5f", + "01e84fd9ae9fa00f5b95521b6f223e53f1742f848118ad00f815cb1fd035502acea263c70e437e6382aaadf6e02385feb6b90284764b744d481d3eb38b0469ad9c3a03220af9c42c521d85e343812787dbf4f46f757700c7743d89e08ea075ba3118fbd77056289b08dd051e7e0f366d27" + }, + { /* i=3606 cDividendBits=136 cDivisorBits=126 */ + "9a470e51b100b0f64a5d2bec204aa16ae8", + "0470d0287774612bea3f18256e7814bc", + "22bd", + "041f43f35add63c20b621fd1c939241c" + }, + { /* i=3607 cDividendBits=3394 cDivisorBits=3157 */ + "b6cdde8ab5d1a3b03a2a8eb0e02204aec01fbfff1f2c5e739ea774ee65186f2564b30e85458a483bfa49b9bfd1f9cd0e90a36c3fa47b54d74a55fb64d9da953b4b88db1ee06ffe6b68fc871ae3cd55d5c1f6ea3d4e8f5c156a311b28874be0e17a08422e2d7e901232c61fb4d06d688373a2eb199739165e296f06491e7f774ccb83133f974c8abccf570d76882314fbe3b31cea39e91efa32f4a84e5f818ab6883bab27b7b11cb92c97a89076509bba04226c58ab9970fd510b5b8a93956b4a05a47a7db2d0a04b87c43f3b92b49e15408907c088c88db83d0f4007fd218026bb4c794730b029bcc0f18fcafe9aa7819e8c0c7838331a1c2f87e4830db774e53624b291ba5655425f2d2bc6aa817649e7e970fe244e85100d8992146df24d72c43a68d91263872504502456d3c4b82c59b316ce457acac7c488c56720b0de21cceb49bbe6f6e822f87bf305086138f3a588b0a787b81bf3fa59bc5c2a8cbce2e0eb0338b29db309dd46f116f8ae6561a50ce4937d9dad4f6602209fa839e5086857fbdec650e544cb32735b81ff26a66a22c6567cfa7a4b33274c5d53491b5574d11a734a38a3e0", + "d2da93b48530695bdc6d2a52f5a51f1cf891d260b4ff81f090c7e50ebca9b08658c559b2cd158a7f14343288ca4ffa6c8756f2cbf61a8852d06d9c0198e43d1c2e11941e4350fe1fc87a5e0d89985ec766c63207d9531a294882119b8ea93cb286be8998c13ea537a9c794b89a46e27fcbd9f6e854f12296087541590c122b8de1f5b0dc3736516f496d598a2475a224fbe57df2e1157151a9a1e10ff4fc7382359b636ac8b0049beab346b6385830a2d3b64d39bb1047278d02c803b771169d91c633a5afe6388f73aea4d8d32179c8dac00d68c49bf8b9d5cf6f866a1a4e33983e7973b4f28b2a36151fb75ff3420836e6d435c4cdcadf1b8d5daf4580d103f1169ddff807839953a0315da1899e01e66ef339115d59ebd5d54b67c851e5f13cff5ca1f1d7f745499a3ce22593ceb5e259563d0ad87ef254d0df48ef5f6cee68c7b7b0ea57da4d66d9ac9f69627fceff78e41dbfb5b2a3a8e81c2fd9a32fb07936786f5b0c2f3bd7d950b6dbf0c38f94bec8a8f3d9995b4d9ecf1d8e9339b28faf32877a8242910fde", + "ddf1d25bb01695d2d89c26b8aaaa1e79f4a869afbd566bc8226cb946d6cb", + "a08d4ddcfd1595d3cbfdda5df33563046cbc22aad83f2221a01c7ae54833f0d0f1f9fba53067bf5cd154ad86b307da414737b837b089e1d91e544238346e509022f5334c3a078af1558278ac33c217ce0d562f2c4a9e15cfb64a006ffe490ff6e541241d51a0a2c0c7615ba74dab743f99b9ef19b5b4ff1b34475ce46e2c6b120886f28d389e68669da5267fc107920bd0a5c1f5a3f6a16fe6b363bca41775e8223dd74f4e090dc9b4ff5c92bc250650b5be9c88eb1e547bacda700e11f2ae646036dcbf655c635de5ee0cdcea723325ad6e735d986a4f8ab48a720de488c6dec0a5fcf01e3309d710f0d9785c78c89bb953e9182028e6a86cd7b62ab6fbd1ac79e1e62469d24cd5d67c55316ddd63a21b09e0f50c0d2185c332dff8b7089c00572352f02cac6621a8bd281e83bf2fc270dd2faf1705379b65c2d7b675efe6457c73753d9bdb179afd2b22d78abba216aea1073f620a4c91089a28f849a69044bf7c1225256da9b81c3a4c5e222aad83202b73741329b40712fcb59e08cb95f12541f882dbb979397ad6" + }, + { /* i=3608 cDividendBits=2208 cDivisorBits=1119 */ + "1b203b380f06b04e235aee81ad4230ab6677a7bc433976ea2c08781e6e40925cb88cae5d5338623cfcab6132a5b84954eb726edf46009c4dc5f4db7fc350f84493645f233c99570c7e6e912816dd2c969b58303b83bea41f6af0c9258ab8a340cce9a8c11386580e7d99958043123cc93a2df9b7f2800dac02888fdf53637935dcf8d59255506ec9b26b68492e28cd1d66ad119c972325d9ed70e7bb0c7c2bdbed6afd02d704ad5a51ef12fe7b057a2fd5531b8fd89140c9e6e52e90d7f0378dddefba1f275b099af975cb4906105c2b88d9b34d2d1983c0fdf2e4240e8a39baa42442a75f26d953d9b39986a1e59f685beac80288d61fc59c36f8f20016bc39a1e062c95f3ef4eff229c64333c1f613c79cadf3", + "1d05cdcbc724cf9fbf8a72f6e6e7c0d035efbb82447f2f34b2b5ce407053ae2b10c05fb2bb0480f23c70867984ed617d5f48b70e3ff79f8d02e18ca6243ec31ca190b27317004b35047d4a7497c886526f618198790c7dcbc5afa2f8bcd0816d8a9f15e4d9a775fc476a0aaa2e358f7e80cfbc897bba4cf9f7ddbd770ef52eaec786accb78a79210b4b69341", + "ef44ea2ab87d76e4781b30ec878e2875382829876defc4a05de161eb3308f0c584464e05a7f3ca89a651173fa39d19b7ef168aeda7412f2c5826910b16740797e946344c205f3b1b45e3114d0fe66b20a90327e42bdd2de3914c9e62984f2fcf190f3e20fe425c0172847be71eadf60f6df9c2d679909531edcaa215b2e0baf7f670e722a3d6710b", + "132147ecbc25ae56aa287709f0b8152ea184f3ea6eb3a3e7772db3f0e06917c2516c366891224b389a32146405345322a125dd11f4b96d74ebe46281c0f6f30fbc9cee40ddf764c5a0e20064784e7d8a822228c83e6bee7bcb05c3c4a61a941984d1fe4331d5f2794f5083d291dd2bd0d43b7ab36053738c377da071bcaa8c4baf26b2cdae7ec993f16ea928" + }, + { /* i=3609 cDividendBits=3852 cDivisorBits=784 */ + "071277162bd9b3e16d272eea4694a875355be6e577a35be84d9af78dfd3cb556efd92013b6e4c8f48e42eba124a32622e952d1bd0bf4cbf3e107b3bf0008e60524a0647f3bb303f83ffdc29819693ab68d41e53d6feacec8e3d4ac4146d638ae96976b22c002e98e79a8f25d60c056798d16068e3dabfb95059a1a807e5f665bc04d1d3bad5edc098c2b1711f88c162a5b9a79b179091aab146a2d47a823bbab90607e34f9a7a4e23ffb21aeded3e1bb4775969c16fc04a076fe7b37e0f83c91bbe086aafa6e5c562072e73007cf4af59b94a4c7bc32db41b52a563dd8796c6d7f6d5077edc9fb0d6982e2d618d82f1386b35904d1e85029498783cdd97478b7a4c3e4fdbbc166c862f31a7a26c656e9bbe0efec7907777f075c15c5c6338e7bf53689c55c0f2048c8f66aeabeaca5eefdbcaab6fded7e6cf04199c8308d204d454d43393ece06e85c14a55bb8ee83244bffff87bd19101ea1113c4b269f4900c953f48d5270633f76ab54eb871821b77875607896f12ea7d3e1af87008c82c50a7e9d2f67e3e9267f467acabae3d5eebcc70ea882339028213cb9a944d0f1d01b2a59c522d293e1d2e4aba2eda13fb170aa93b05ac597dae924d48c5c171c8b8637ec3eb6fa77b36fda97c940193490d007532ebd24a3c99800fcaef5b55777502f", + "7db1579ca0e825575c90881204f610d25df19d2a38ded49858dc9252d51fdeb0a4a5dd2362d3578e5a5d35f7130c0462a7132f1d71eb3429fe19f28c6b2f0493f4723a26db89b2db1e8603b699b0d4c94f00e6bde8021d39d0a7330b33299890a576", + "0e6765b81871cd78329a67d27c8f9763f4c38e78f13cdcb834da9dabca05558031418642817a6a2676558c377e958b7b0fa3b170b9c1b6b40a12dcdded1b7d8409869c3322fae5b2ab14b034bf7aa992d7748791d386105558be833f40f9dd448bdf76fb253aaf5bd5210e5f45c4c48936a7ad887a815a913ff89323ae4dcb2e3cd6523b7b46f29098bf9ceb33133bb3f6dd5d244b689c7325f34ee14dfd2f8bbdf335dbbe669cd5cb47f541470ab96c28015b204661a77bcc114ed512097f382cdfdce5d74be2fbdd9e77d0abcd9b4037ec913000116bc6b3f799d01f85ac12c98b19f80d2434b3cf02c2eeb1012f9b8e60cc3aa0bde67b9845a5fe5624cf2c06aeec5584a12214300741510361daa9821f07746e7753383c92800c39a65f5f5a3c1ccd32f143d219a1efdd103221dc3edb64de043470d25192973eaebc561fdeaa6278e8f27e405b0c16914ced45af77aa67de1488f86ac726cd2e0618f6ddd5a2fef8d144235b505851f04274a6a575288a6231d46a8f14647d7ffa01b7c0", + "4dd969e3db4431ef7e69741ab0d79a62421ea84eba00cf4778af8c5ade6d161506f196f3f65b06b0f11b6d1a120e531a890457bcfd26de74c3e2fe72ea7589dc408ced22c8e5db0174012701e1b05e292ed99b65e6668c0992a2b5ea4cc3a33dddaf" + }, + { /* i=3610 cDividendBits=3194 cDivisorBits=2744 */ + "0282d1455f76f865ad7707e63699746a2694c6b0ee68e93f991935ce25c2db4f686ef85dbba96df6b013a3c5ae74f9f5531273a384685e14e388981b62c4a553cba3615f8c40991c531c1fa91744dc4ca01f6b56b18097eb740ea1c071f8a7aff086514b868425fd18a628138282673d85982ac867d4b113288270d684ffbde1a46fb21d7edb567482a3695f44a97ec1d20aaeac43b39164d105dd1485650be252dc588e1f8020e85f218225d806db0498c38fdb97a623f2f61e88a4b8f64397e57d913a533c71078b1f881484ddf51c9247a30530dd87c99f6a88fe2b9d1119d5329dd8220de2af875048077e26790fd6b7199f8b0c2ae046f9c221f85f041896109da2a5cb4f9f6ff3f63bbe8ed1d0061122337740ef0b5377112569b35f2cc518d78ff87ac7738812079c93b4defed812ca12e0aad2cdefd470d8079151a3eba7c7eb9c88bdacfe1f91887dafb975964537114c9c4fb232072b4153bb844b7ce7d94265a7e1120a4671d9994a22deb0b3143681a092fe33d12de08ebf0c89fddb94aac00cc86373352efb669684ea", + "fde9edf8f49020a032015450bcf283025c25faae7318efba9d0d3977d94555d82e685b025219060dbe4ba754dca4c570ca78dfa3e985fa3496dcd7b3f6da3b4bfb872d01fedbe94099c3f20392c50bd546ee2355600e30be632efe60c683db2c73c0b5f9ad0df4fac0c7ac630936c61d780aca04611164983a218ea4e25894231fd38262e876564eece6fe43b873a4802d5f2ddabd476af48243c2958cbb2a4666c3ac940ced17d552b2be3c95922541f1519cb4a4a41fa1384b470c08d1cfd718e8dad9620f711012a6b23f8e4c7fdac04c1e19650b60ce67062cb71b663d1877e1069178d33995d548cb8004ca029eb0b07ed42a44eade52ec0ae7fcc132d17232a39f283237bf857a0eedcb529cf5789088982e1c2e342581dd695251575bce3b3bbf1cfaa8a87c18538ca9922f91e0405e54387661763e81f15626759e07ea92c46644cca36d7ca0c451fa559bfc016e6d4a0f8353", + "02881957e062da15f1a3940927a23c3d21343873267a51b3c73e9605b7f45d5e997fb26a7279812a29763a6106e96de8f0e597fa6bf7cd5964", + "f6c49830099075f6fe18da8fa0a2e121bdb8daeef8dda431adf812fd77cdda8a211580b22be3f525237846bf1ad255515a6ed9582272ce84f4d88d16f79823f998a9547f00a38c9efd317ed36aac2ca2e6d7c5cbe9813fb1396caa38d1c5bfb311c5af60b5d059754c129a076fe81d4f66b45b941f1001ff6c2fab41890713195dfca8d48c4e3fef317aee7d24c7c9f17692b8a1e25e6abcd92765da72c14f55845e0543932e098d3ec6f407a9f6f6e4d293bb43e8b707cedcd2a0b39abad9cb1cb648bd8513ed5d204e00d998291b888507715091976db4d16b318c4feefd4be5ef55abf6a84f39c348568ca359faefb26d375c801973f6ec8c81f30524dc28066b3fed44a9105a93da903e0b0381b1b14be93b2848563bd271d982684030d976cf7e1777049637045ca191e427b413a44e0abe7c47f894d61289b8f359af2152bccc6e525fad500690d8116626b6d398d5b8d5685d7e" + }, + { /* i=3611 cDividendBits=1087 cDivisorBits=1039 */ + "40eeec148f9ced545f7cf820cb06873fe47e1a0dcbd867df74a7d4428e2c518019b4e4cf9b475372718c10d98b6f5d4becba5a363d5caa99073cb63f202a6942d8fc94cd2a202db5e9bbcf6f6abe52b000f94288e2afda4435f092a32f407de1fd1bf1db6e4640e1e460b767860b5190b960dce70620b1a2b34265126f41ecad764c52e50f795fd9", + "185c350172bd70931da480f18fc9909c6ab3be3099faf2f0d3ec4d1f7a9d609193b29cbd1218d91d0fba3ae7be4c87808531681b4a3a1798bd8c09bd88afc1af31af2e6eebc440365b3415030b4181ce9218e9afdeb0b5264f97a1be4c4036a306fe9fecc0ce7b2feb83fcedebfb729c5944ea67ac6a051a5806ba0ae844b0a4d035", + "02aa617d64d753", + "05a411f96160719ffa6d208a0f448ecff166a919d6514890ef0d80425d760ae1d563f26b3dedf884b604c42e9b4b119d1c5e24ff2b5e2809fa512ec4ef61315e7d0aa42e9e66d1c789d5c0144c41014743f1c4dc6207e589476d92345c866aa2eef9bb4c697437d4d994fecea4e1067be9fa667352f66f68bbf5b57bc42529795baa" + }, + { /* i=3612 cDividendBits=1249 cDivisorBits=950 */ + "bc377b5a798e5c6a368a5bc3bdd5cc9d00dbb34f46769c9cff9eef8f1bfe9a2c1d4edfab201ddd13bea82041593fd684391bfb9d5299f51d5490af27ab6b80752cddecdb8aef32cf1771b6b2dc3902c8c99ba48381639f6079233d6fbc7ebbcd0086baadab13a28ac7e994673eb74e13c7e4277364d9d3ffaee58ab5ba0e581e42087d7d76a6ec0d6fbedec8a5f0fc6de12dd05c99d5b7b90e681397", + "209c30e2dd9342318be8ce15b78d5e0b58fb06ba6845b6905dfae76c748e39afdea642239d594ff75ded290e99897874d8c44d3b7ad06748086c485755d4de514689088fc9e52b98ac857c47bdd098fe74688ceeedef7b6d566f8e58764fd87574ed905f2d8143607ed400138fa31de4900f69adc6deb3", + "05c58febf26d46b389e7e356ad6f205a59ff867d9045eecc34fa93b55669cd3e5824cbd7aa37", + "040af27d803fcbb7c8f1b8490f69857b14ff0cb47a0467f93f66dc57d83c9fb98a5f23b39a3b3d3628ef98c742be4f3d5791a3df7a505c7645c879acfc2d34c4c691399d4a67908992030c9cd0bbb77dc398ced67abe54afb83830b1c87728bce165354daf487351f1686d40676b700339bcd5af765d22" + }, + { /* i=3613 cDividendBits=401 cDivisorBits=323 */ + "4e81d869e77f2ebdbd76528c2a2ca60a8c22bdb27d2fc902f249531b2574dd38c29feb7b063a100a42a00bf036f082f2030f", + "0678183ffb13b970e02db7991190c9b3bda7d45ab3951f95de8f4b7fa985be70fd2d0e6d884eff87d7", + "0c22bc4f1e6a2e6c5072", + "041df67851bf79f185b2dda88cd6258694fc1358d99c56b9990c0daa7d1cd3bf2b4e8328518a005551" + }, + { /* i=3614 cDividendBits=1319 cDivisorBits=1287 */ + "1d65ae6276385e2d7be90af69dd5f3cc9c51bfacf109b4d5646e0d79a4c21adf890d085a333e06461a4cc00bda667f06d4b087f51f4564c753f11213d93668a17a92085270b11a083630fd254e7be7660d5d5ea1bddac90f1e0a6d0d554469babd29269091d77ef321070a26f9bd62c29b0e6a39faba6d05d2e41aaabb32ce37cc2ed9683989c9b4d4d0f72beebf96b1dec1bd12d706213d3e6df914f821f132a1f34aa448", + "54a5981e7dfe2b47d79f7d8064ede22e723bf38a905739402492329478e5c6eb66e8051b0b6b4bad4e37aa31155e54f37d2be597adc72f29daec854a0495dfb4a55630ff3b04372cb05857c1b4a8273c5a17e0eb2e4d6bbe5f587797bcd2f6238d5a3359b10d7fb2dca4f9cec4c77d766d5199c710442b3bbbd9e3e9f761f493d6652d5140e1aa778be9fccb834a740ce0a862eb05b35dcc966cc7d973a371116b", + "58e8245d", + "15ba442a0d42fbdcfc3210a18cbbeab0abd1f478c1fdd626ec6c4d521ce5a65743cd2297b5bbde23806af9801dc8e73244d7b3840ec358ebd1e3e75fe81ee57e1de67a39d0c87ae2b46742bf7918c614fa806de95376b233b6e3fd423119a0602ab52256b339d3c427a6a70ea80a1005007764c79d56dbbddfec3e96af8722481c7886f4f26dff1e25a18eef1b7e4a331cfe52439df6695329b1c7f42f1bcc4469" + }, + { /* i=3615 cDividendBits=3913 cDivisorBits=56 */ + "01b9c33decc2df725de7dcbe2c78dbaa3c662abf64e5ec74356574fbec322e90e3c45088006f9c8cf1e1f270db301797ea8fec0aa0ad1593962a499e613ddc2a2f1a9f1b6b61564cfdbbfb6dbfc7499f05b3c626c6efce4d08dc91cc62aa9b6f6989334af64ccb0f8ff386ea18a51c602c46c24844b743307ec8e231c97a606a8e9ac910c1d8e470897a5db5bbe61e716c2a40b9bec3306aca62159927dfc3b556863fbaa4d0beb5e2cb22d30c433e77a5e35e776901cb828e31ba53719d5794358e5150da6a5690b20fef976bd4312c4b57d4a673d8db7c2bf6f1f0a959a43579ef18accc5b8174b0ef0f5dc6e1bc4a2e640c474c17efc5e59576a3c4e61beb34c4df3d955239796ede2c6f9aafa30d8f5c8c5f7fd6ddad29abaebf73e6c0ae113fe1e28c96d391d6d63412f0a4db906b53ab47cf4ed520391e84bf0db5663b13e47e8150e35ef75193211176d933198fd88226e16b526aba4a7fdb81feda13866d2e83d135ac5f28f363d88aee178baf0065d67a75a9b327c07e98859a42a942605b168d327df3a9466eadc00c6737cef52934440bb7f59661b36a0a25997b160d5cdf88f23cdca253e51b6bc3786a7e79759ce46b21a7e909011c4f06f0170bb7ee272730a4c0f7bb5ef1bce08e509b92b5496e953a2785fd949bc758a054b4b14b2a090dfa260f32", + "4ded754e20504d", + "05ab3c3c687473869c1b70258ae2e92c664966087f23c17e3f05a92311363ba53bf0cbc24fbeb8ce22e520d5861360cd3573142c5b1c4812ff04045b1e84162b56763adcff77e1c9fa702821cceb9cc1c2f70b7061805b1551ebc6b02d499b74739d0bb99e6a336ddb981407f47f7b6110fdceb28bd17d48dac86e9bc6f5dbe79c19727ae1fffe57dad347b26800c790319395b6bd3718f5782eb4d3e0c5de655d462b43e0ba75651561d1f9744d61d1ac5d7a97aed056e97a14b2798494af95ffb372244d842974bed6ce976a4fdbfb84938317849549a9cef9b91dba53ba57467cd0d6d10aef79d271fdb4a17a2070fc0db422d407e68012ed8ee7c72ee5971bbeac00096e19e93758dfd342f3de79de3d13d964249d75ad7e7f28536a29289321a54deffd956d98161c938538fbd6d3917e98cbeb23c47428a28f690bfe3977b52619162ca7cbbf72fe1dde94347a008f8bab781be54bf63d0a7f6ae57fef91f691395d22e1d4f50f7fe46e495038ee3bffd9578fc414348f771cad07726e81f2e06ba57cb05e33ff6a471d5c841f0c921c2d240f414bbfc08a8b48ed83dd7b36eab4731310e1736b3108e70aee34db33af83dad497b6038dea26336056c232584209e502b233bd74e00dfaecc9a0c1e8f3dac5d096dd8829f111d8e802925a3856", + "404ccc84a83d54" + }, + { /* i=3616 cDividendBits=1147 cDivisorBits=458 */ + "0311af10f59bd6958be678c509ac30ff68ae66ea3592dd32254d05236a328d1621a72c8e29d61a7402d7cd610200cc54265fd8253aa980692838d1a69e2526f9fbeec53868b47c227cf115371219692bacd02dae75ca561442de9c6a8ab780fc40992edb9489fb4ac1e018eaaef57f3ce11c21c3d2d8b6c10855d1d379db287fa7bcfe2a298009276b2e422cfdb1a422", + "02de13f19b40545c462d94ff3530a72dcf78bb90833cd066b70e19b53c6926f5e19e4b0f9ac158248a97a89b106807043f664387832f587ef141", + "0111ff347709270ec49a01141e571b86b3f672f8cb4fb113da80174fa443092d4e5fcdf63efbe8b9bcb28cde673d2e7fb4b3dfd0b434fb57a49a3b469fa4f70af2f79c570cc5ce57de0714fcd67abd4a40c0973dd112c1", + "e9f2613492717abe772b7eb27b16fefbc78b0b7fee551ab2c0744f0d0258c22ff84af64ece404dc33354cd7219027ed4a816fc7acbe5f63021" + }, + { /* i=3617 cDividendBits=3445 cDivisorBits=1172 */ + "103e29a718b9453bd9437a3d7a8170ddea2c4d4b83b0cfbd06ff74f607a8125599eb999defe689043c4f57bbbe0802adf135d3eb56153823f5bd507222fc3cef6065a13f39924d21b1703420ad60010100b28b4227b64e259e32fd81f2eadf4d589edf8c56a70d4aaa055b8f0264040f46973a2a7f1659b7e06da2bf31e892bd76f820b42de651e787b5b62d394d152e85e342cb158f3ebad12fabcc82184a75cccf14d1ca592acc0c06bbcca8b28860075be38c284b9ddfbd9ebea34a6316ffcdbc02a6b733219f92319154401bc83d7664cffe236b50edefce8ca358567828db947347365a3e9e0e2d45bc83da708ba90fe9f4d29c39066e8e53e6fbe4f1d754d80cfe9e27fc4cb35326472192787db559ad6e84918481cb0332cc3b1dda7dff6c2b310dcbcc393c9eeb01654a1222aef818fb2d547ceb582dd1f30cef48048f8b2d2fa697e8caa354e8af49727cbacbde3ab98c162c6650e429faaa8d4060fc572a290d78e3ffe2dbcaf4935fec51f392de49592d78395b99fe5af9813bb5aea0786a108aa3120de8129f544654f944faa312fe8b6244debaa7680298241fd42995abeb3cd1e18ac60d247af9d4", + "0e8033fe539ab93a9761874aa2a49e68611641258dce65ccf8c2e5659738ea43b7c64fc60d7cd6523db33ca02af7eee2fcab5311d595dbd0bbe8833eb356c54efe8bc7153916e3bc46e8f1ed1a7d67a12a05852eb03b84828f31f494575788e039a03dbbdc7b33d0a5b58d4353a2a5043b5d982377c22b0b4e10d4687e570283b1a6855c5c8419e9c4a31b3dd3595a0783d445", + "011ec1101efca25dca22da55de0118444b265a4fe54d92702e098750c17ee892925a2bb2f817d4783f69ec085d245ed5cb324b72a8ea6f1bf7352cc5a46ae370bf8cd113b5c7e7c37f254a5c89819aa6cdf62b663d61999dfa011fe39f87f563ea89f00236ae4eaef5957fb262dfc51b38a6bc1f020843b244ee9a16b4d20ff9f1e12f9cf59d8848122fad5f50489b58a6d9085dd99c8b5eb6681191d0add3bde29a4545876f9fdf7d897b67003fa7efd78336c52e293ec7f7a2e911bdda86c47f5c3d337d646ed96ff10058dc9591e6018fa6621caf643e486c31d275f91c6e54e62251f499cee3b92f243ae923743a008e75d2a69c08da0772ae1cbfb77d2e50b175228c80bb77294f80269ce830b5b3e67fdaf42fb2a3098eec636b", + "092649c92e02f1ce6fdeaa315d7cb5eb03e36ef9bcb6ae1c407e11849d870353919cf71c7b53abf373d3fe5cd0ab11b554389f9aa4f27f441ab7269c9aa7187f380a39939f63ca24c76d8028fa893fe5f891e4c8eadaeaf59b560b5c192d2b7dd97318c82b66c11bac707c1f1a04c07562c9e824133323e7c8c9e5300319ca2f865a8ed851465b534e54c688b829d10fae91fd" + }, + { /* i=3618 cDividendBits=2804 cDivisorBits=667 */ + "08fbd09bf2194faf5cd7f491abf74c5ab0dcfa93dd4bb28825c5beac14b3c40b95822235f9879d942df447dacbd10d4831c32bbcc89d9823b68c57047ae97a5ff37ca74d2a778475799dc281cd2fe19304bcf681aaf359171641ad44d7516e1d9f52a7fbf1ff0d8656ff015b75b7ed244847e19ab9422e9cceec2f6136c919d86e6a8e2f7aaef055ce10364070f21dd7f27b0f51aa0b4e3d64330eb5c7c4a24db8a46952640d0bef3fbf260d002efc4c3e19479d241c33720a9f4842ff7ee07daf31f11f084e76b5fe225b82076818e1e70ce7766ac4627ffa7151ca4de199f053ca6b22333013f3111b4ba16c5c819ca33c1d854dafb51cb333800174080845f1c07f91bd6abec1a0745b5a2743ad008305bff1524400eececb62b4eb53cd4a906a8ea0d39fe477905e62d15eafea58dcb805ca784c7f9ff7e0a9202bc9f8790b8568ab5d70c110cd7e17d2b5ac7ff0e296ac3d13c86419a66fe1afa1da6f", + "05e483d021dddfcbad55096d215236cf04fc0c41a7e037c62f101cf82bed7ae4aa2d0986b289a44c8e19e9ab95ea9e1a5d4b926efc2cfd64888b039f16d59ec008e8665b225052c9d94ff6b9e86b2982e68e2204", + "01864947274d86de4e217acd81244c7ca329b22ba4f7928e35e775b9d35bb81aa10cda33dd411e1a3c8b71aa94f52ef0f7eff3df4fef33e87741f00990bd184fcf58d1de842deff5de6a3af0dd3abf8fd767dce99c3dd3b447c740fd9595d892629a00722e82668c0b77ba945fad96d022df0ce33aac62f3987dfbad099b877f176e2dcbe61786d0dfcecfa8efdb6238696ee3699a40b00af26a542ad8903f177867c7cbab69e7580566e61ebbcc2bbc33bfb62d10098ec8ea7336e758605708180c61ec271fb7f202267bf5478db7a96f41b3590a399b37eee989bdb5ffd2c52fd06d61cb05b27edfaec06b9e5b9f2763b9c9ea5170e7ae124f58ed45002fe265da4a9182c50e4a87abee5a", + "b86138615db6fe277953176f448fee26f78e0b685596a9cfaeef1bebdca020e2c34ee235eed570a7e9ea0d0ca6d3971b8839226f357f93c47530934017e90acff35750acb53862fa0a451f6157237ba95e2d07" + }, + { /* i=3619 cDividendBits=3840 cDivisorBits=607 */ + "6038afed03c4e6d8f733a7428f6a9652d8301ce92d4b7cc9674f73c2fdd5ba2f3a64f993f2e19af9e1dcc07e5951a67abf6657c87dc034cedc071c753f09553314fa0bc6bbc89098e0315a8472c6e47bf9e5e8a9afe58d07a0ed418b604cb6fa8df532ec3948fbab0c55c97e8c351b27c6736eb7a3cb622188289ad4fd6625e48ace43617bda0534094cfba70694617759610b849b22cbf07b684966e07eb6e47ebb2bff203994b55e0425bfad343d01fb37b30b725bd63bb89fb00fe4997c973345d7110f8edecc93323083c1717f5940cbb2f393db673b3020ce1286d36ad4292821860528f7cc1e76234d43b4556a15cf47a4d5bee945ef9cf928868fe2e19be762b13dadfb75e7c143073e237aabeafbd340650514823a285c7fe6da6fad398d93f250fc102b4bca41f79d13ee722c79a401954a311be0769e18274dee6d3d5513c9a4b3962e9c3ada31f5455a3a75e2ca20313fe7bfe66d1c59c7b3114a992776e1f81b5063320a9281450d71468c487f1653518543f8077db7b5d90f06f1a77ac2a0346d48ae9356101115849e767f0ad4dad09690f97003cb8564a2f733edd909158afb7f49dc5fe095f409f95617c9dfc133d4500007b3d7fef69f18f4ec1176ec4c70a32d571e87d71d10882d7f5b9048e4b817c4ccd615b558b62e", + "518647c2d4335757df39b4bfd0e7d13fba25e1679c1112f5a860a56bea27f9956d94c167f17fe6377c8d6eea2ae986ad77329fba7fc6b160602ff696d71a66e0bfc4c0e57bb00c51e43d8795", + "012e268e5e5610aaf78ff67d073d733b6bf881cbe50c1c9362fc0460619fa1fe5ab17c172d56d015b1d6fbf7459b9a19940dfc5dbb5f9110fb556a53cc34dfeec677f88299a4f60f14c5e0faf1f220ee114928a640f589d87e76a499ca1e79f3fd068fdbba915cc4e2d1fbd2a58c9a87bdffa5dcf633651914f9882c4cc788bafcebbd9d22e9a4949cd94b8f779797b9bfcc19c63e551cec131415701ecfd43ec6aa1ee67066278c453a37d9615254f65c8f6d3337c13edea9bc6791d521042c10fd70cd692fd2a82a86a78cedf980c4df3b0ce3244eda8f64373811960dc0a43f6fed83c3b17d46129fc0453d95aae1960336e67a0587fde87ec300d57401263781ed621ce47bf0857a2ede3b9462e7d6508ec22558e26a4d2c5acd6c7355ffa27a670c5f312839826322e9824bc75735cc291bfd061dc04b0c21e9a7963bc7ada63b0ce1eab2eb8a995fae459ce5f645d364f844f0134a7073ec27bd027d2a709d23d0e3b939f44f8fd22ff7475b87d2e06f3a5164e65d4641987a8a0c884550276e5613ac36d59b66d4f0aca2af46e9ee27fbaf", + "0e9a59bdd4540663c8ce5558212917648890c538a87d2947c67bf391fbf4a876bd2e0b172bd233740c7e308d7ba26b5c0e491aa9ff3e2b44ae7c15d522029f94e975fec310c701492da6f053" + }, + { /* i=3620 cDividendBits=3079 cDivisorBits=2886 */ + "3bf8f5711df9cdba9b422f2bf119e1ae018fc8d1342096d53b1ddd7d62246c6887d79a21ededd36dbaf7b8c5eaff91aa571949126891ef7e3bd940fe58f41f31989c6159d09746b2b77f1b05d385159576fd283b1b2fcdd73a8b65776cfe8a2c37945268343cb5eec29f8ee093cc6893543ed8fff9825f4bfbc2a3fa6a10bb6eea09117d852218192733af8796886f248848ae0c75cf5800055bd7f5d7bf9c38db632d87be04284821c8ccf922bb59030369e6474892976e31b46d2aa4dce5390a8667025aca30d7d8c01c7095df3227cd9d884ae40f793b4593c7aa7404b0d38bb9aa520711d3a90a7c4a1826bcffc89afb7286f969dbb2de660b6c7cb71c8ff756908e5178b8a82a6fdd676184a7ef45e289eee8ad0780170e714e21b34fb3c4b9f42954d1de051634ca81ed256acf4d458a9aee6f54120f9531f198df0b1b4ecda5570780ac7d84760bfdfd5a775fbb1f13c8c9d9ebfbd2d4fca8163b5587cc86bf9e0dd7e5992abe433802ab2b7262d48bb2f538f7753ae611569129d9e3ac", + "2981f2f121c682a7a1f57462e0b983d7c4c24eef2e31d30a8a8d92406bfc432f7bd6d362165b6f9ede8a900c58533e2ba88f209d33c2f6bbf718d843fbd0dd0cc4083a320de2c169ab997872b5d1e31b3b90d284f134b7f07503f5fd23c149651c0aad32167449af564a66d11e56f8d40e772304b460a64793a1a49e91774d68604b40152a526fa23f1650c03317db800eb01f018e79b3dd1912afc08d4eecfd580da0257d408488b297605678fbbe1ddf6b4f70ee6844b303ad10f6c9706cf3b979e381a12f1758b449fc3ee64cd85551a1b073b13e821c78a7f51bc9c0a4209736c594989c174310d0f9040c526b485500efa23c02757db07179f37a577c3ac20f4f456917aaaefe9abb18323d5c37d21e107a13f61cbe84ec62f3500fe6f7cc007a3afe0f263f306eaf2fd7fd6b2847542d9fd7ca88086387dbce88831735a3937fb889735986d57e3193acaa36efdba4aa339e149984b87bcd3300b1dc304f38f1c15d1b260c9d", + "0171e20984a5bb321ebac8b5da9bd402c790f77255b5c666ab", + "1a04e45454b6749e85111530371a88fb09832a961692ae81b0013bab20a845ae8653af626baa7959bc19b900f9bbeda0c63db9ca388e9e703ed8eabdcf43b698ccfea5cf4e2a37c176a1ddd0071102cda9695b52eacff6cf390b537a42c8c674815a12d628300a04e8da7afb8da70310866dc9de941ebb865973d5578383884719c8e2c9862f84ef06bbe93fbc0fbbb985509f1a224a0d90c6d72ac72bd72f97ddf2d6d57e4ed76e200ed2c89b80344292fdea69155e54bd91b9060108c83ba90be008839415305ebd314d1165267bd6db9f66d50836b43b1b358268969a138ca19d4984d89b1d39ef3764aea0a89a77564613a8fd67571ca08b28d3aa563656cbed93efa05f13d3129b75b4be6b49598c3f4e2ce7ce76ea7586b29016241bac71abab4fc88a03833eed30da44a39bfb2621d9abd84f837a308e5e53fc4a6e19c1d748802c42c8c1230c2999fd9c73d6415c1869e077af8ded8dd28f0de6ee5c12b69a14151bfae8cd" + }, + { /* i=3621 cDividendBits=3304 cDivisorBits=550 */ + "09cfe0f86cefc3258070bb0a47f1bae959ba47b4fe1748579d74f7ab9313048ab7aace088c83f97e7e2e0c1d808bf644280516dbcb601f4aca89b0ca0463e0f2a0fa1f7fa9f54210136c7a6a0b499c6d638a84808bc0d9df7ba1c5b2e04f73a5832993a7ed02b6490c8cb6fe0b62e17a4c6291aeeeb2a0fd3bdfaee9f76c8092411b90069ed21278a5a5522503b430ecf281413423320464cb745f4c41805b1704804852939ad5359a5aeb7223aca023fbed2b6ae5b794f0377a043ffdaf81138663d8a652840bca16092a8aa506f888199dd3135f68088e9cb52fb1f13286d6f1aa235d0c944881f1d9b079d994e4e1294e5a9e5c6c54184f983317dfe161a1564c588a55055b3b219e9bd82c57c196376b54829b4c935a42c638444d4db0c2a8b48aa66e56774527a69f9a504cd03b6b34733d5056c363744d319376754f2c6e88585235d64831aab698ddcd47a7262c6fd98e2f68013c5f7f84d837e455cd01b80cab59ca2f944f3acda7a8399584837d89ce8078851cd6b29606084dd4be6dadc038a1c79a40c12f32b85ea4afb9db7c104fbca3977bb4634f184e", + "15ebdbaeae2d53a9fded543642e71429b85e36868c1d635552877e64d4d42a5e10ff75b634047b36e941f0a112c6611fb3571f5f5359a7a1c9bfb6b9535999b324bf0a3d89", + "72960b09266c645d11d3640fab459fcd8e88387e3cb5b0d7105dfd23dfbe23a565cdde13c090808816e3548e0708ec00bc42a500337feff3b45e21c7ec8e7132d1c8524c934fcf9efa8af274eb330b7e9c9981ac944154bb09c9bc02bbf3f1ebd8a5a86dc70a1579e5f5f445c81087fb1c574311f47831b86f5a6edd82e1d7bd3aef4eb9c4f0c087c3cb8eb9dbda2e7387384bd3ab54909da66e10ca4f2688173b0ca7c1e567b2853ed489e9565c4c04f6c5d69452f9f1297149df1c4fac4551412af6f66ac57f533a0cb0a62716002d8fb8cf3042ae35f3a5a2dfc231f1cfe5c3926c42674be14e7d47e324b3ba3675e21a767120b069555512b737ab2e9fde88fabb58845ab1c3b23cbd931d6fbe0dccc0f3e30e2e5759031d7fbea470208932acc30b3136c0668c5beccc37b7396ab8c639cfd7c0c697ed21be13c76c314a020d204e3d7040184484d19bae6461c1675c762ac0c8bf69", + "0aa262da9165291abdbfd6f0134be51724322449cc0d26cea05103981c5de7300d027942b6bd89bffe942f0ede1b7b783b0d693d0463617d2c741e6e7466a06a78912aa41d" + }, + { /* i=3622 cDividendBits=1506 cDivisorBits=1186 */ + "01715fdd4d10b68b0b39914c4100faf7e73f89d01ec4e72f275422ee7fc66e6da11b6776f4ae67e5c93c76329c5ab2eece5127f13164566168d4249767fb8eab62420c1d1ca5230fe1beb18649d312e1156f12960763eab6b14329b9201cd291f1d76a509889bdd7ce1b541c44f76dae1e5d07028803412cd539010023ce4154b49b6fe2a6dc696cdf97ecb42e7ee73eda46b7b792eee47e4a42061b3b1067328debae89aa6ade15163a99aac26988373fcd915e564dfc7eae2d515674", + "0168a0a336c74df2c25afc499cbe70358981d6624447569037c82147cfb2488497d0a5caa96dc2732c3cdabb2294128874f469eb97b54be2ae53e61679e048ba46eb42633dcc3a0cddd299e26e853f7622ecbce1c890e9ea8ff4690717b2af4a9460b3f3a329b2f58d25e32899a828e5f1ad13dc669686c212a9b37f80393a06dc6b4f7cd3b695af909dbde1bd27a9a18ec20bef4d", + "010635918709660d7211b659ce58c177f1306d77815507c5bc1b4a14f2c99c233810ef22aa4bf12a5a", + "7c0f07c6b89f1ef50e10b0fca925b555815515f5f902a9cf160ad25bba5886cfb85387132e6d67d1693ce78757d30d0d89fe6d741cd2c7325e18fe14d714ce3ae57117058d48132ecefe5e74497758c20e17f7e440d8e49ad6bc5bae057a394fe1010d0891e0ebf11c5f529f6f2957a21992631680522320f5007292edfc4f270240914b69d246964953e9caf301f72e295f9362" + }, + { /* i=3623 cDividendBits=1992 cDivisorBits=1157 */ + "a3b60f818da0c02c1fcac1d3b760be7efe0916f0a6151fe6e6584be7fb601ec8050411c3e91e369c23932d8f0be64cfa4c28f56a4feeb3c6b426a1f6ebdb34078487e9a4cb545715eb20a3ceacf6b6820a00dfcada3131fd6302f2d567db447f68f194a241dd1de898bc15e7242d555fdba93b25b02e545cde093e03619daf731736d787cd0590c9613c7cba61c703a549cb4700c93739d44c1d7f05698a9b015e829621e2b129d5490315f9e5a6a0f980fb496619579f222b0d8c37cb584ffb1d74b8e6d97f85d9fe1ed33755a8ead91a9ac67ddc8318c0c18d3ace7a865896458f05c2f504f733dd58ccc69cf37c1604f18568fd49b4c8dd", + "1427bb5af0e6acac3564656822eb9c2a28dd51cacc3384789cd02230581b8a2bc5c3c17afc35daacc095ce39d8f04d9d13d2851cbdbc415b5fbf2b5151242cdd09b35c3ac0fa3716288f40f9dad99a9d5110233e5676c381a3524b3893a50a73b765c2c38fac548211a33f50a69243c4739b440eccde2b9ed443f1d99a80718ad27ca629446baa92786df0514f85e248e8", + "081f5deb851419351101e8153cf925926a102bed5b87322d2014dc112abff51059dde36e4aa022f40863ceb41d09198303f9c73389064462f8f0fcd4704e448bc956a7461f3d581a4f291dbb2f0500c5fefe9d5efe71a13aa71b3fc5f3902cc5c18e8aa8997614fc37", + "059800324103ef4700e5330e822fcc17395540b40de1624d0fb2bea29a811b9efbed5a12391ccc7bcccf819f8f07ac5eb2779b39f812983fd59ef03c77a82166e1e8bf1fb9722cb284888738253e54cd9e82a554db65cfe5dd6da0be90a1806a7d03b0a7605b60b7a8daa0a42f1752a81ecd1baceb8234cf48f3f119be27c325870bd2dc3780e0bdf43fc7132c2432bf05" + }, + { /* i=3624 cDividendBits=1094 cDivisorBits=884 */ + "0b49e827b049f982bd8f979feae43c666cc7efa34b43c3913fc0c4a830661177e5d53bb1898c9b9ded2e56b9d50aa0391e2ce1be8caca9b9781e25db229686f1059dcb7a808143f992f5cb40a9097679056d51a6829041eb464212fe80487156b0f76e75c560f48b623320ff2e5877db113365fc4487ffacca0a0f677cbb455793bc4c7e723b6b1037", + "08aa156909216411d8fd5a71ba781638281d72feb808fc4183ca2fd6bb50880f3320d8ef07e6f9151b687a65c8f77c92e363c0e8a9033b1c69280ef872b2a5b12a8751e1daaefa6811ce1583cad9eb100f344e61bfe67054f602d9ef641b0d5d907f06907e1b8659da088413d639af", + "014d89d733f650d3618113608ff7ca9febc6e2bb248cdc05adb2ac", + "04c215e9380ed290e6789ce62a5c0480b6f2c153ad3305aa7fc57dd3eb1bb92496d75416ca85f24d0005a3bbff3d16c90c47048086668c69b27b8d4af0c5a3ad313ba38336f73a0a341ff7b5906ddf0af13b1baffa691e35a299269473d1f1965d0eddc4625b3848fd12a08d1da0a3" + }, + { /* i=3625 cDividendBits=3708 cDivisorBits=2865 */ + "0c1f2d81ea4fdf76ac413af215741d7471425ab58cc16b2582f58622a6b1946d573907aeb97fca439fa58abb3767ed52cb18f3e12f133f300bdbd3462325dc9137a541223351f001d75aba257756cdd2e1bbba12ea519cc4b1e7c12d3da9c26e46adb3770784ba879fe2ca88e83c705ca10f32b47e4b52154b59dc3748cdb349f29acb02e5ee63f5824cbd4da7bb7886a76d50ae9973dc27bda43c6605d4019467f6c1e452a42e36b254d56b1d46e9b979a40faddc457825ca4ae0351237b05fe70b8094365d3b158b3e455da2a3436041a6c375d947bfc64268ce7ffc700bfe60fd5b6e45889802fcdc2d40377d3385be3f5b7fbc103747b1d4ddad8720400884bdaf3bd3f47c64fdc1a635d65ee5334c2eb20d65c79163b1065205b08dd070e81d91e2da63e79936d5fefafb29499cd27ee9312c5b906d57c54777f26b948f67365e92ae46100ad65b51aeccc49e97a2116c3d17de55316206f7f858d780b3731ab988c3394968b00181bd2d416b20cedd7a4af10bd277424cc39e4b7cda8bd10fc5e543e8f81b925c1af5951495e31ac974b9177974252de404ec8858fdd830163c7b004a295750a25ca7cce843dad00ca1fd4162be39e2eafebbccea14416fb8bab00345cb560e7f96b8eccbb5d1", + "01771bbc244439b2a375c36dde14b630a7ac81fccd68ce3693ee3f422917962984b98315648b63260d75bf81c965e71d48192a7c6f2db9113ecbf8a1c399f898b91208da1f22cc64721b452c9a16aeec424c1e6a19f73c3660cb1d60e75d64bd34f80f8a54e2905339a3ae1fee8332e6ef96a2dc54cbc93066060d9ef6d4bccd95afd21fb5960d69e842c8fc4afe6ccbce2487d811e2322cb739721e4b82d90b38c87cf404a617f06f94ab2f544851c4a91f33dbea06481eee13f7dc8183306e90f27e6d150fb3c91f2ff23ea34c10f3ff681a5f0f2382c4ebcb03c6c150362620a848a1ce0d92e24335514d96e3bed7422dc51d35ecb1e130199de3a19d92ce997c15eaf78c73f27d9fec840839476950224d124a1740110cd8c274ffd1c4a21d1c0fd8959283a1722065ef72c32193542a9bda1ea8bc247cb8e695a235b33ae13423364189f54b40557a70ddeb8a86ffa6e0ad68c6a93f93b6422c4897937c7f555b070d0635", + "0845d2fcbb8566ee9e2a91912a8de44a4110a8c694db67fa1d5bfe621396fa19320342a92f85057d2b72df31edcddd1d471b30521ae6a078c7ca368884e83a81634f4fe93dc3386d3eec028120946729034b7878f943fa52dd16eeacfba3d970c40aae3b79b59b0b284d", + "2b998fff5daf020661aa430047641e5341b57b999474901032c377f4fd47b5691eacb8190099fc9283da18642386722b664b67a71cd62d9ff9513d65008be2d8057583be288df197278487a9192540a22f325dfdccb2d2354135ae944303a9eb73f19d194ac974a956d634167f4e26cac5b2a290ae515385d75ae027917e65ba03e6671424e49631b33d6d1636c0b5ef53df766fd337dd20aee2312287af0998a8b38a956d324cf023a98c6513fbbe1b9960467794831e5bbe3581e715e1e1a8152ff4eb2a8617d16264eaecb0ab6db8f2d644c29f7f40d12d3925b0b5326aa5520d85d95fc72a11e18ad9fcfafa951ae300c6fa2fd62edcfafeccd36904c3ca4eb1074a78747acc59781fe9205db37502d1e7a56890ec9d9be45f43b63e61cf3cfb15d6ad866a2d35aac078a581efea8f7e9ff352029ac8926d6679c30b7cfbd670e08cb8d1e2574e28d2bf764952ab65032ec90e27fa7786d3e6720a635653107369a18fe0" + }, + { /* i=3626 cDividendBits=116 cDivisorBits=108 */ + "031ac551bfcee510b7c845a8152f8e", + "0945aae1964c85cf67814b3887c9", + "55", + "06a394d8e77ca2da6a57ae5019d1" + }, + { /* i=3627 cDividendBits=2661 cDivisorBits=1549 */ + "12b0499f098ebe961ed627991209b1c7b1bcd79fd30f1dd15ff604a92280d14b935b3cd4b6033b2f7caaa132e815911d1539b73617efb010fd472e0fd1729b01ac65eee9519803ed69338d382601ce64efc4aa93af14a452acaf8031d856f204c1d88d297efd8370cc425b2b35920050d0da588a9830c6445e981dd557a4d64d81e527757e5887d78293ae480f7b0036d5cb37cd5a0d10e513db065b0a175913bc5784d57ddbf7e41cfe3916d593ec8c67a4200d2d704e5d0f0879761744a17bf0f2e5cdefc7995c349e5650cf7874aabcc155872121a4bc33b0784181063350075138c401602bf25b9ef3b53fd29945ac5d3ea993cac3ac56a9078226e44f8c7a9af52be19dcb23c172ae140facd1d6c4389ad654512778c28797a5c3ba2e84a6c8dda4c95ce3a9ef9acb2023e14df0185d626ad71ed4410886304c664a60811b51aa5e37959614ef7f63a340", + "13bd9e10ea768266c0524411a519262f3e770770ed5ec90430515cba29f97cbae3a7fade034be80d6f07550f65612d4631c5966c4698cb1e05572cf4dd7b76348a83b38034d692b6048131445d70cf8f2da3c5a2cebd3c5d8f372c8d795d99d410a29be46e0b7e917724366d2be3ea38358800870fd4aa8e47c1b17c92bf4526445c16185e9a9b82d7d5b7904a5baeaa979e35a23a9b080b2d12c0d426ab91d61f1e3d0829153b55b81ca87827d3d2702862380a95874d4364632d2fa316f9a8d80e", + "f25b4b2ae2c3a54c7f532bdcbe48d7141da936edb3558adce526bc6d2b3b5e3bd75cc632e4c8e21fd9215d0963ccbc2de848a50d115d9e79b8045c1b5310dc32f684e9c3426b7d1a7fd990ef89bed95ec78101ecc089d267c9d179ea5f22639051ba9a30ae2f42e6132938f52f3e8af23a1a9ea1e1ed4c74a5c85f2ddfe2288dcba494a2f2918a42b82b42", + "0856ea5b0b25b54e5b6cc26d69698ad0e16ef108f632307bae19a44531ee8f88755e1a7ede4672e4403a89731e945fa7766ee61518f77d482dce5854a164fadf1481eb5eef9e9d0d8b9da8960521c917420c5d5f4257b236a276035bd6d274ab8d278d715acec9b6518ac25523ba9994925498e42519b0b961949d03e872d0eb6648a654260940a053a0fcca96f2319366013cb428fc4c84767becdcdf2b715171587b885a5bed89b5da9d4baf4776a7c771e0c51456c59c698d7967ce78df8195a4" + }, + { /* i=3628 cDividendBits=1750 cDivisorBits=1154 */ + "08281458108b8b0c9598f296ce09525b449c06e8674a6287b07fef574008b900649050fe30f4aea1fb92805894964700d2f3d1ea16265e554b3605c2cfd03ec793c2981fa6ba959ec33dbebdc55f031ffd1a72cf8e6a8921660a465e060b114f4d95acbc26451ec1b5465768f03050d0723fa45292600bfbe66ec4ad6b93e3a40b73f1dd32876ac81c64e09208a84d69a338eb08b54c1ad9222972a6533901eaed27309a45112ce82b2b303af94a4bfd53da5dbe39ecd0980f7bda00ce2ffc1ff2b551be8940dfd2619a5e18726bf28c1d6ec8a93d4dba4bc45fd5", + "ffc194cb1b08b647ddade0606692a714368884b60dc1699776b0cc7f46a3229f17ef6b298c239582f1cce2f916d3a0185e5656fcaf465495ba748ce5c2ca74e28d103c857dc48a901404cd39679d6179c8e628e3e3f80c06900d06e50960c641b6d7120c76e188605ad8d529ec592fb6e4e9eb7e0be10aae9b641a1b0f97826d00b50cba831bec20042c2ddca724978c", + "082a11f3aee9c23311f7a4d76a8f0c8d5eda79b4cb4d3b9aba9f96cfadb2e980968a10a559b5692e59e88d90a87b957daef6a1155ef333b05e4dbbad057b42e70b40780eaca8978fbf8009", + "380c8765a17cb9c2383a860eace3873924d8d871b81c30525415798c753b6640df3e4e7471b668fa588fe8a8aec10fe3189c409b1952eeaae6ec4184ad9dab6f5ac36d21eb778c513a1511b6b58f444c0abe89085c38dcb943dbfc152834592808f251443c2ee677f90fa72760cb1be228a7a968788554717ad299948ed3f5587db398a9404023a7dfa9f4ddda410be9" + }, + { /* i=3629 cDividendBits=1163 cDivisorBits=835 */ + "01400dd59c00f020e02aa83dfd4c2e595feb344ce4928edd42df6b2e80d335eec11f8ee3ceb50eea6dde34181f877bd7fc3e0516c285f0577a07dd53214e0d2a4559468ffbe75059f58ff0bc8044ed80a31f9931d674f5097181f2d0f65bcaa12d28bee69241adefa666d9ae11d229abca66a0ecfbb06ee2ff81a49c4a71676d59d7cc8bae6547182d5745ae0d69782d8cb2", + "055a84dc484d2b5f9aa149b6563379f2301415eae4e7e4d3d01b5215a0dfb8e660a48feffde85044d02aab5a08954e9f621c8f004f8866c1dd7c3c4040ef82fbb0267243a147db084a9bb4f4afce35cfbd627c982c97f6c433d6026f2bf014325c898ebff7aa5910dd", + "3bc8775e0bdbc91056d61a321bbbea374dfa3b5d73b6cee128df3abb9e8f0fb3312d89023c1d1f6a22", + "0553ff9cafc8c0e6e55ba6719b1cfedff32b7c62aaf75a18545761415ddd73f4f7a43c0da2ddd19c8e3b3936f68317ef0144ab214dd2508493f5613b1774458926fdaaebe66f2478a52335afcbdd787703144a71b84ffe9f710544a38c818ad7c119ab9c7de39acd58" + }, + { /* i=3630 cDividendBits=2178 cDivisorBits=1579 */ + "7b58cb1572984bfd81c1ace2f0b1837e1402dc1068d6c7ebcf9871c5b099d2e053baf635f0fb35559284b4bb4f7c00f07dc3aea0fdd72ae5ad178cebead770987481b455470a1cada04410b0ed370250c024f549a9c5c88dacd14857eec1f168693a04162a100b6a160cdfeea1dd1d3dba8817c76cdf9fecd91ebe7964af17e9ab476b96faff7ad8dad5780d4316e4ac8ed4f1bc44a75f6529a8b360d398ee78e2bbd8c05206f2037e10583afda6541c632da91ed67651137e1dd41e84eee6d404cb2a1f091922e8bb2764a0ee0f8bc118a23e1e56d2c638a34a55db8641ace338a5308a2fef0019c7ef0fa1022586a74240742c3998d86fe9583c577fc9dcebff3b93e19881a5c4af419548539bbd17", + "04b0858d788dfc7839ab6705dffd19e4809458ad65a42af641e0fcba274718342ba695d6dd5402b2b91c190f17912f55e17e5c6acadfac0077a0c20a586c687b9b2e673d7efeae5ae22d985ec92771b148a6c8020db6553e8768894f2a38a7de6f4963b537644a8f7e221a77b22caecabf76498ce645f03fdc36537de20f8d387309c51148e4aa7766f7270eadf93b17899aa194d69a5fa3fb60a4acb1a941a1264fc3d29006926fc3bad1a0102ceafccfa04c63ad79e96c320be40fce71ed16982b7346ed36", + "1a4d748bb39c8b9e382e1aa5e7bda7bc651bac21a6fac97a2e85df828f2c879b041ea0e7ccbe6827ecdbeae60628dc3231ab6577959059230ab4f4f2d985ee48708f5c7d63787abc42da6e", + "04a4de22c62b8b38d6e1daafdbbcb034fe0dfd7bf8afd162288ebfe22832ff523e090560a5169190043757f8e03092ed6ec50a61059fb64596f95fa9e856e0a33d25cd3531ac45ce98265528bcec05a7d6bd610b0e23de0f584039a57bda5ec5834c1ff1a519170c1fda55c21bf9f78ded400c3a1369bbbb21d1580d9dd7e7481e0b91392cd54351508f599d5611d45304c41cc207f7672e8af0acbf723b6907205d94f58c0ece7679639aa6db714a35c758a983c1749bf21c74989fb2f1253b08399535d3e3" + }, + { /* i=3631 cDividendBits=3964 cDivisorBits=165 */ + "07da01aaa87fff3ace9543dfe23795825c70cb49faaae594aecc062651d55b906328247f2da06d0ca3b007b59224bef2b15d62025c6dea0334abe7f6a7dda003b4967a0899073c3522ddbeb152c10e491140b51925b54cdca6a327b20682d31695959b7b39d74f817891183201b37489a178aa315e7b4ab34ed472be4826ddeb8de151e692124c9eae4dad4e29a3f20974af2c4759f7fb8ac304a4389e8534e13e2e12662e23b03e22fa5dda34e425a8ee368e90865127371899775e191db140970af7743b7f2c8c01b7d1c47c8dba871cdc346a72cabbe35a54a9b308e312051decac1b8fefd9a317c191d401707739e2f85c9bae1db8c98ec62c5bc3d5ae1bcba5ee1ca0eeb4e02ec2a03071c9014d7c98399462b48d89de9f308d6c0e253a714a05068b889545ca3da85a73c99fe7b26442f86052ecf7f4ab0a832a2835c4f7d8ce0e5425e5b269de063ec70a50c49bbb152b459bcebbb50660c23430700f3ab3fe43c2dfd7f42c80c077e6dd6e13de8573d1c7157695d4100c002ffaa78eb3077cb7c92aa29dd9aeb39aa02bc9d31f6f138825a85e3ce352edd9313c4ce461c51d3bb79ca50b19c9c52cd0e4d94efb73815befc45ec446565d93556d7e52bf9a8d975e13e0c60874d80fa01f66bd9848edd6891e43393487358812ffd696648293f702fd0865cc3b92d191e099d6", + "60d5a3dd7888873d52c6a2909c7fbaa7e9bfd308", + "14c1d2f75b611fa968a01c287f2c8f03e36597a899c75e49b4e347d2b2a0b89d93976aae6ec827e4a6c285bf2661ef8da6abf9301782dcd572f9eadea6ed219d25de5dee3cff980c707ea33f5bd0924f7a29ef6ade1ad2fdd9e0a5d621de09f04575d915358f62636a554cadc24661fec539284153eae6a2beee701a1c4bf9201b0c859cab87ca893080b26db04d72af70810bb64adb7ed69ba2db78f98cb8d1d2f16dbdd834d19104b36eb92c682ec992b1f87f79c0641aff29f3365bf77e84e80d46889000de48c2edb9413acc7e5a9b69910bb1719e1aa49a373173fda5f9634492a0dd0995c04975622513784bd22af842d19d3350392df2f8f9115e9c9ff3f88e8a72ddc0c1dc2b7e88d369760fd0e3afea534ebb3f9a7b29b5c572811a614cdb3c3b004caf7d0ba5e98c1af28728b807677157966c3ce246baefe644b8d3c46cc11b3d36a4045fe9dbd8fe36d20c4f3d9e6eb319ac18baf25e3c5d0501ac113aafa5f31fe60453f949553908edc0614fd9f43699c6c5cb564eb0c4f9095245db4f2cf4d961e5c9046beb8ec98d9edcdc62f8dcb3f93ac7d8c644d835c0d94ba5d17b2272801f7fa25410f310707bca8fc2e81ba7348dad3fc9d41e1570bcadb0310582530be4208efb1b8dd350c819e5aa7bb987eec9dbde38", + "01fcde1c4dbacc8af234708676d9242747118016" + }, + { /* i=3632 cDividendBits=1641 cDivisorBits=1314 */ + "017d905c9847d8edc2eebe873ec9210044445a10d0d3fe7ac219d549a1c525c325d8e3885e7d8b6f87ae15c31cb822ee26745793ea7ec955b24970e1cd7e6c70a5b41dc7c7ae574d9b45e7836fab9163602eb7375ec656576c59c3b82ced35c49803cfd8bfd1c9c29075cfcb53621a05b1f0fc3e8299b48c7c9c660cfa5d4622f78d0277db10174fbab544ecb3c498ef447f20dd4736ea360953193d8b747204f800bc572a01ec70460592be3e54bdee5c5d8a28d681c0114863b7d24c88b17c7ebfb5f7001f2307f02dfe99fd98", + "0144c4bbfb666da05fc06e6ac993285d4a9154dd4ae5c6ad36a38c8e4444cbc238f631689b2d6f52d0d236d880cf007ad79c5391be19785506c7b4a321ceecbe2adf9c54f436f8acf434515d341773a83d84fda0ca878499fffae4302349cbc3a0ae5fac20aa69194a1664c7af004f6d705985430a5c0b7bcf47697f467f5767686076f024f5115d24f25ab5424f1c23b663e1df8b3ace07873cbe25c92f6ae0cc0fc4005d", + "012cc4eaa5785f457326e25061db149bce41b3c25d7fda7ee201e9e9a299e406e97a6c1ff0592594fdfb", + "10be6dbcf5fc1e4625f63ebb931e26d1d8192c109c7494207f3763b692cae6ff2ef7f98b2904b26010e34402f9d5e00a3311a8302115481e606be0f336075a21cf308e9bcf250df789cf2aa55590d5334394d42f4552f4bf5849475c775a30b8f88d2d62595dba59b51849522b5ac230522914a31d7d2ef67d9b50668dff41ebd2d68d31eda6f6663e9ac10180d4e7b3cabc070260ce6c7593d763cb0e151ad32e4db969" + }, + { /* i=3633 cDividendBits=3611 cDivisorBits=2646 */ + "07ef1efff22db8a72043a401b09244af08f40ef539fc1f71c95f3ca14cc85ee554e8eabea9d9bed03a1f51438e15d01fdcc675e11040d43090a972525b3d3f4c596d56750a47d44905d80d7a407aa72638eb71c8d00cc3da38deae1a5ea2adc08239f483a4470a91ec5328dc16afb9c3b0067efc49598d4dceff8685965781e9f006a494b63f38cc462e70fc50d56b30570ed2b308db4943b9d5126b99e27ab4c2928ca6d5f8dafeddd2be60981e820a78136c8bd9f2b0468b60c59da87d847e81633020993b2f36465f0a0c8fb27cc2990b66bb061f0f65d9c3da0e7a0e075d7407cccb48f74ad5fe2f7a6b027818111981866271034cb09d467728868acd890dc583f3d7499adb7e84155cf5e2b5f448925de8af45955d7bfbb938a9f6b0ef717ce129d43d2208eafa2e61de98af7c799ebe72222782eac276dba3829a3f33de206f76d4667350f164bc88d74761112b0ad6cdd76efc3f0926f275a2503cdf1eadad0b64572632daf3f3420b526c9ca4a66110e68404d582a8ce9435e7f56ff380ad27c9a3b4a185ad4876f052a315fd1f3c46b291d36f5ea0e54f48243799e7c8962f7009d4fb08ee2a1a972810bd45d0c72e65be6536d7f71a4a34bb0f11191bc3ad", + "26639d52e2b75485fac15055dd5b465fa11e71badc5dae9c274f4abc9d86e75fa3e9f9a323f46727832ba7a719375501a71b3aea304433ea3bd4466256a36ba77df892d0662705b06810b12f1b44593cffcc4af87fcd60eb2298dd799a3758443d615f19d980d8dfa1fa26b749cce871543630b8422e2348fba6699b583fa7fd338a4bfb33b132fcaef7c3874688c02e38fb8ea1935d79aa1a8378878408fabeaf9d32719a9d3128d12084bdfb31d175007470c0440fa88864ebd500d1ecba126d783f3ee6a5c74d26d297a8772df4796a1178dc703d64d8d86a306a6bd0c10b1f47ac86bbb3e68a9da273d3fbfb3b2c4866e6db8b49100f3820378d0a61142baba0523162ccb5efab8e04f18cd810408d50a6a2fbdfb7c1b0954c70918f63fbc990ce033bd984bfffa889c00d22a465071a29f4bd4d7d7d176270a6c2866d539ab84ba3657590909a63f3", + "34e8a52a3723eab7f214e0a62d058e04d9e2af60502a5d5067b1341935f7da84294896d7fafb8f725d7f75dfbd787dbb254e0ecad8dc88e4a0cfe39724558c213c7bba194be5bf4b19841f052c55f055c839b3e76e56b421a348b70979f460fb6dc17509241cdbde2d15043374b1491076280721a28a9249ca", + "22f092a2fb59f00c35dbff6612c636bdc4d0779ae718b660275b898bd8cfc4614eaea46662d939ea04bfa75227826ce947da314a5f29e4c1bae4798406332b024ea32ef1f3925f46f9c437abf0176ac0f7eb1776be676f78a5417759ba6f82348ebf243c4194f9aaf24ee0aab84fa3c13aad9d04ab014474a6e4f5f144fc6e3e3cd4ce3b530ff7060b661e804736f21565f11ef60b95f76061fc75beb95889c888ddde6cd1d1321890509cd7a238f6f518d3e9a544c3cbb3283e4158b77a8273941a202672ed0390837f914a45373eec8d24505e0901300aabeabfa4cd5742f6d95c1eaf006c10eb8c1bb822d560a857d606cda6f9beead341058c7070deaedac5a21f7aa9e1bf01359cb002b2a9eb9b3cf5bf418704a525895bb57735c8a6c7d7a905e875e2add856d731232d573a3076b6fdb80e23564816ae6a20407689c77fddce4185cd0efa329aef" + }, + { /* i=3634 cDividendBits=4068 cDivisorBits=224 */ + "032229ddf749f8074e53829a000632cb2eff9ae3cad526aed4006a3bfa3415cb0b95c421ec479526b670a7aa74f85a7a5232c59952582a5d4003a52d388ab2625b5c313dcba8f584a1dd8bc2cf31c82da2136e2e540d98be731e0623feaf935811d2248cdf4d5e5e0fef8c203ca9760f4bce100ce8a37562a9466ff5838a86c89d495f836e7d6fd8fa9a540d438a68af9f4e90dc3ade390df55d50b951943890651aa2e2a839e86ba89636795b2b1ef3547f16bb180965ad6c9a5a8bbb9fc8128977c2535c5c9874d8bf94e52119fedeff2308e5a3bffce369e133c3bfdab9ea496c1532aead401955dbef7e60892cef28657c97dbc28795955051be70457c019583db3df8c99b452bf751f60e27439ef96c27112eb0f4537e8cca98ba90635fd1564cd47dd40b893adce13a9547d89a4f38b7491ab3b89be524f1136a15c46538f7b59ed4dc7c948ec3c566da8d0e5df38d0db719fb640181acf1b77d6c87e8f461de2d442e4801927c59e29b445b03767434c49405566217ded5a02365a8e0deaa87a86ff5beb6859659bec7c8cf004436aff6b1c6b268d986050102f8beceb243f3b512a5b923d932d1ac69f4dc66a76ed67445b279490464c9ae04333aaa4e7b2ac94f97d8157aeda5cfb945892da4d201c8e177fec695e83e3e7dfb5418286be96bf6409c1ed6dc197623e236d3a26ecb2810e287d15a24a62a1d", + "82039074ed06b2deb21b7ad8ac7e1c0bbb3dd1613914b37b0b8239f1", + "062b79d9230971983f42158cf5d19757aa35eb55d9e993ee192f65bab38561ee7df238d051372694b8cbfaae4d6a5bb193a8d57d79313c6936275b41f876e487d85fd03fe8c67cf4b9067238b55b1338caf63adcf125a5aa5ac4e8f0c6a4437459bc3dd5d14176e74cc2e7e02b0650b7899280fe31046bdf3a0d836ea3e535f311d821123d97c55c2e33029f819b07ede536425233bfbc46415e9be8275eda5f219280b4be67d5bb1ddabc4905fa0781035e4e1fe1442c4bb9a85e0b822b597cc6eb106bf04919c6b1c220222a14f00ad5c036bb0c60309e66010e4361798f182afe1d75d7265808c5abaef9f8c8c3c6f48ba61e1069abafc86add9f87fb5e51cace216ed107bb8da73a82fc73e9687500b396cf4d08e6ccae5957149a233eb63af2cd1ee39775880516cdac70eae3e4f5f5b05cef05232b0e7ac8c75e83cfd609d03f22a01417e8e73787c641bc3bb1539da5dab31f6a9619c9c392392a0441984ba7645ea7667712cf6de3c5b1f3b28bc665c3fbf0ecec50b8909f054ffbf1e2638b22d5da68832774557e22acc94add2a73c2bf0108722e74d27754182d48fc5c134ee19b713218ca8848c10e629e795db41705d77d46b20f80fc617b8e889f70b1c49b9bffe522ab5287ea14117250298d03ee11a7f17d8d09b6314b9e71ae", + "7e87494b3b53c773745747582ee2fcf96e0d80879154d52978d1674f" + }, + { /* i=3635 cDividendBits=3300 cDivisorBits=1311 */ + "0c1d1f9459cb03bfdc13c0656735f2ac9d0b42631e78b37fbee18058eec256c8e6af15be372e0bc87c00316bebd655734bdd91a954c80c4f904247892dcace17e1adf55cf56949a3c32224f2c09461fa2e89ac3c51303f07a11bbd4769511bd45466ee643cf53c6932081b811a34baa2f6c0f083dd8e4e53639c4f379748391ed666624ec94165fc10c15cb97bf4239e34cab6e31628b5894fcc5580983b3c228319a33cb918d33a7d71c6428ff5def06d7e05349d2caa825c663b912bc55b8a816fa8cbd4f6b246c0fd9dc09dcfc38fc222482de8c9a07643d5b962729d0729dc33183450e9f00a293c8c063f749d90627b600eafa061b77e9a0b1f564a78b1267b7cb55d2abc63afcc24fd41f1b8c9134c7d3d3b937b3b818ae8ac71eb78cc5a2deefa6d0a4430049532a6d1ab7ba109f7907bd67c4764e0cc3e97dc93cebabf889481b2f86676913cf1e1241996b26e8771434d124cc64c17b98c53706988626046a8d8afc7c1fea47c973f9084e40fc7c371ad416daab1e0c66ec752a87ca34516b0ba203d1e48e0e4a861ae360338686dfd7f13df3d79ea45fd2b", + "48d3199044cc4553f6b91c36cabf36bfaed5d2fd4535388f3aab46a52a64cecf2bb31ad12dd6ed375d33ae6150f2be6282fca69f25549e2d77fbf8257325649d4d1c0870bcc76010e73a45d6f0b9c1b85046ca8b5e9e7baf37ac220696abb28f0f7ae66e7ce53b1588b4ec773ec075128ecb8156f45d0527b58c1860d06a34dd55f44dbd10240d32c0ef9b8203a284250a2cd2a8f3cfc64c13716c5aced1ebc23211aae1", + "2a955d38a578e9c62b6bceefe5ae7aa17184fee2296f18d277769b59e9e9d371eae91188812912b98c9bfeb3c83c3e442b4a8067d8b2814456502e21ed0b0e54d9723e12d4c1495bc8101c23e5195bb2cd70a0be9384b005a01d2207a606ce9098cea8c74dffa1a28477b59b7690ecb916d5ac3b7af04fba7eb9b25e24d2f44f48d0fa310b79ee168b239906729aec0c462a86ed015d96525f4ee3fe5b158e5df9e3cc33a326eab8b809e65db4abcb822a5173a71483f0ac90972a7e4bc8c3b7093adec92544a6a7ac9e8298e638502bddd5305f1372182a038b74b0a86e74c6ae5fb30397f110d98e26980690d70a7076ab031e6586772caa", + "1e1c26a2df16b87775deab2cd52062299c036893a70bdd2335f9d9f581788e5ecd48a131060cda106eb84aef40f08bf126904986dc90953ca48d42865a82749990f026b9bd7cfaf2810f66b3a427455fd3baa3f4de35a1d8b9bee2e90212385b12fbf82c2e8400af1732ff1cea4afc0b232b9dce19238e250882b54fd0f59ea728e7b99b6c69fb850818588e1cc3f04dfcb16b4b43dffebbfa280c1e4bd6ff7c6c94d7c1" + }, + { /* i=3636 cDividendBits=1560 cDivisorBits=181 */ + "d18a9d3350dee29344cf6467dca20279267e73c1891109c10d6b36b8004ea9587d69ad1f1b1a34db1b9d85b1a31ebf583c41604fcc7b494743f9b20d03a6be397747b98b1da454d1283fbc983cd4d1dc92cab1e157c66795b0c05fdc8ffb2ce5f6dc35dcc3721d556fd6439cef01a01d20d3ee71dbaae82b1e3ae2d1d060e0696368d58cb1fb2728ee9f80f84e3a9ca1ff83316c7f69b1d588ed75248f3fb9c13341246c5047c20cbc28038c9d4b026f156c54845d54ef622d931b528a7f4083867a2b", + "1e109ba2b7bbfaed7b87c9be781f771a9e31bd70d57d37", + "06f83a8f7e595dae51faa8b3654cb896c105bba018a66b0ac3f15d888ff1c5e67dd3809dfe3d447458d2e46dbd41b9618468a2003ab0efed9bca83894906d8cc92c93ce9dfd50f228a04d62490b2a8a52a281cf3b94fabbfbc0be3617b8963ff228a0bf2071b50bebb36c6fff010e347337b6ea8b93acd0d180295f3dcba9b14eec221a1e68314fd5f08517d17595e08128466f404eea8d319b533d55b9576abe06ea3cb7f2183a09c857165f1", + "32d655651693156e059a5315532d1f40889737dde664" + }, + { /* i=3637 cDividendBits=3393 cDivisorBits=2305 */ + "d33bf5811edfb88cc0c126e8178e34799f1e6c24d84cb1da1645cde8ea42372a49707155259dd56da68331e590e1132a084923d12340b14b0750477f0cfa4c00c98d9d46e796a32387e10a85a76b4b7ae1003e92f5800f6f8d1b6f0fbb42779ad7d650097d2235d455915dd31a9e261ee49022b79641d09131e41401d751e0bcfbd5a191223fa04d96487c1f71b62a739607aa13d4b87e80e9588972ad80e2d552932102b34f673ccc9a1b9f4666d7ed0476aa583ad4c0b3a175c8bfdaecd2a1b2a0b4ee2518b3593257e8400a735e0be4d6e0a276416fdacb20f19544d9932bada0bd5414ea1cfb6fe14d9c24965118599e6aad9465e430f2a24a77707bcfa17fa7021dcde33afab074b3c2b006c58c197d8812d7c08dcaddf3d7db5160bf562f4162294cc6b6e75d974d76b17313a9dd804bbecd1252869590b47ff2cc6755cfbe877cbf28b40c15dae43aeaab57d8b0b199f2d4ec0f16dcaa82351c44b9e272aaae29d31030be78bc9a448686e77de089eeea7c95dd18849bb57030912fac76ea06510501a6723056ec7ac6ebfdf6861237631134f165425cc631c5e8e7ae7ba6a077a46479c0", + "07d94a9adc90403c2cd2828a6ec6a566db4220676b8e09d171568683524683ecedc3bc5bf2d3cfc35d7e5888208929b0a84a707f5a12824b54ce8b8084da09a687a63e05d159c4386731ded7ec05aa3c78dd50ddaf13dbec72a7d8901ea57d2e2d34536a06c92571e972f9d6d204edc75d046215e9bef0f88538e4b6a8f21136d1478ff6182633f87a94408cbd0775508b13d2662f6e84f38c5acfa87c01fa8e84d5f0e6d28ed1ee42dd1eeb16bb756090fb2022ebff343d58d079d9eb0518f90ea66d8d72327b95977cd85c45dec1ba7b3805396c860ed1bb0de0417b11b937436e45ff5c1e2f629a4d60f5fe7898bdebb9ffb258b504c524b53b69d68aa28ecc800cc07f2c64a16ee7e8fe665c1cda324d92e9dc82fcbd6715150499ccf12d", + "1ae9b711c40ee2bb20f214368a396d7b0e257f707465e1ee2445a97581a086fb1f74831a2ca45e2f427eb707332757e21a146026a103a9474949dff90b84630b0147539f64b4d339bdec3dc18983c09908a61142acb98b1d133cdfc2d2f95f6365a37c11f0d1c3e291eb46c8497b627823fe66cd7c096c21e0404cdde4df09f19fa01d585d0615c8f3", + "05f8f9c6b759dbf900a30aaf09f89f6cb41ce2daf80903f6531d4274545b6b9b2a4c0506a50043ea1cf94574e6fadcf2f64be34a1b8469f7c22ede788a3101f4fb0b69c909210acebbf500db405018b04f1d9bda296940fc8f0d59feccd218ed41b65b058e119b1a44884ba18467b185109baa2240fb8ba1dbeccfbf82931922cdbad591b56712ed10434cbcc1616130cb52743b8577bf0fddea1547ad3671158c99a29df36a8af5145771a8aaf993091dacfc16a8db5f9c268bde34aa4f833b920f991574f5959ef86c97eb4d88b69dd93b07ed656284781b06b24059b6a4b00cfd00f916a31a157682e4ad6ae2060694f106a1e5bcdc8756419fe3ab708297ec9641dbce5c991733a26a27da48da80dd25b87bddb931b390c89421b3bf6409" + }, + { /* i=3638 cDividendBits=3337 cDivisorBits=1233 */ + "8f8f14f6fa3fa3330a0385645d66e53895d020439b127aa0a698b3ffa55aa9580deee2c194552042ab2cf955c8c400787f4df0fce21607b1720307d6d3ada8837300407d8bb711ab524b7a38fea4592a0f05e316605ce83bb5236b764a3277347b2166cb2cf9610dd62e64984e6669e1031ebe2d86f3cfec26109c4141fb48f049f19ddaa11691e7733df4cfebc5e2aaf1f8f945424d3ac234da967b6d4af3f0033d2defd8ee6c9ef87574c484b04b7ce00846743ad81730df41e2ba9d271e35f04aa9ad32287d0e27d37d7e978d7293afdbf6a06c9c69c08e0173fe4cd61a38fe6ed5f892f030bbfb543db3cab843bdca57020019014ef7442c48d2f5fa4e2cd4b94a8d6b9ed00d8fc34ade23c59d4fc94b080f8f6d7ca98960a0a1663efd9e8d6dda9e07bd9c23b38421bee6917857a2157886f89d92121b4455c63027291f0d2006885ad91e8bb15f17366312dbf636ec58e85e4dfbc4af78d84973a54b82e233ff9487229cff50264f4d9f5e7994950b96462098aefcdbff75a224a96df3fc802f2b8c8fcb645fe0782d6d20194d847deaf31769d72bd89c81dade24a45e68", + "0128861f26e92e90fdfe0f2c21fa5d477b2b531658c489dab7f52627db6d6c1d97a8976c0fac45a3588021886eda72a40b6418132fa5a232a135c161b64d038383a2a94f94a6b683133dfcc13bb3e5656ea2bdafb8dd067c9a97963127cb2e0b95250e80fc399c55581156b59a78c07c3aadf70b7df7c9972a82a9baa42eaf4626e0dc1e58d22ca8172a18570b7f6d0b6b310abdf730ce0555deab", + "7bf08f89681483cdd19eee2f07bef2fa4c4c03fdf8bb26b50f564e74c0feaf83b545b8d6b2647cf55f0d0427354e79fa8d1a15decc3127da2513bf22bf4fb7bb98c20a5f6466af539c3f1d2049d9b38a96e0562d32c2f5cd9b95495dfa3d382bf63b61cffdfec1f738b80ef7f092fe3761ef513fbda5aa9362e25b77bfe055658bf75a7088515423cae6ab2e9cb52b6e63443fa8eca9b27e93950538b48f988b62abe83320c8da290cbc9f33946dbac74d5ff9b308c3aca9367fc1bd0dba737e53373ff991dd54bbbc35408db600fab0c110464388c92381d9c6d0c0bdde55e3d9327d00956b99ae2a241215d385f85e79777ce5e8d47136f0298faa660abd77ad6c9f80c69341", + "78b142d29ba001e322e69aec48f74054ba8fa0140b076679d0e4b9c62532c42084bcb8bad59904d082b5ab7c2eacd4a0f0c15bf27ccbad868bd561a446077ac7e30b67700585e1f13a7c8bef6372c130950479e93ad065cfdde60d1d2ecb36952a5ee6bf2e062f9bf448ec0cf7e27dbb267f8a88a2c10f758847217766d3a45c26400d4a6fe245e223d48bfa48f7131f35752ce0a989c2b8a3fd" + }, + { /* i=3639 cDividendBits=1349 cDivisorBits=1031 */ + "065e94562425569ba7d89638ce214c8a573ddbccfcffa2335362661a25e6c121de97d8d858be3c95089fb28dfb4f70268bdbe3d6187ae88365fef37b9703e37f398aec975e6f1cec2ab3c513fc5a442002367d15e17ff31e27992e268dd288bdb8191a17d9104a01c9be9ce2d01b9924a0e40552b13cf10b6059047b1632fc5aaa44c0143ddab383235f587451ffcfba1b3bff9e02917fcb5ef4eede7a3f9b7a0206b061157c581c8a", + "2bdac4977dbf9e465d58f958d630c6ce85eff4645d5d7c99717f0c58be938aff94adc7b7aa82c607131a1b3f88de42151c779127285a053cada115b654119316086ae065bcfa6aa9ff1c579277f4dcd09d3d69119662dc5dd91e94100c6ea2f320b447193452a358bdddcaf9ddcfbbcc5a58f77387efce89f62a660541a6d6977d", + "252e7853e7915158a79f5f17d6552a13eae9796027cb780b8693ee572357457e5c57194174ac72f0", + "0c2cf234c318e36dd2125a38acf1f5aec0044a8b239cda02a463e53cca9d51b7902c68b169f1679b48edb96f7c71d1228cf7d05a466ac5b5aed1a2bdb92c527d6343b054fc12338aa9d65dfb462de9359cbcf2e90880cb59a06d9ca1fd76b8a05ec3cc528a9b2b1de5aae2726446b31674fb67295c9551fc90d83c36ae17b86d5a" + }, + { /* i=3640 cDividendBits=3438 cDivisorBits=2832 */ + "26c44102ba929f63d107b504e0a7c5cf01ca8d6d60763810319bb230bf075ef0055b6941a5148ca01ab25e561d2f7af7d5ead9e748bf70adfe82f956f73d49ead621bec4fa7d4d2c1f60605b1474d0e83bb4c1576163348b08787e742b26a782df3ce0a45ebd22ff2a77a308dcd23be8c4f9008337e0156801fd4f43f53da0ca8299445432a8348e15b3be562f4cf100ab469c6300dc4ee395cb77f7771a342c1c6d2fd4bf58405da275b6945ac03ca63266affa4971bafbfe5c00019a35c105f4a50b1a3e7da96e2b0707c7026c06e6bc6429c6f5d9a6a8bb6612ab1dbc69eb7546bfcd20339cc4a665cfb865ee65378f6b23256dcde14356973d32d4024002f5dfe0d5ace6d8beaa41f44465d06eb1795e6b66124c3d76d1c82e421eb738d9ff4ab766032be3746d6b66566676cc73d1f21f95974a81a4ef45bfe1b03eabdca8019903441278ccbc94e067176c93c5aa610b51f34ab72071ebc90bf8ff91ea518ae201f16539027bd4978d70f518f7613324f74f30bd23e46899ab9eea88823e7f2aed7a98613a30dfa688022c9c081c9c96d2c563a8844bbed125cee55cfa1581003e576f36f379a0b0021cea", + "ea2c34c5f340ccfa99a8b2203025b14748898280f47ea1d1874d72f3be32c4e8462098ed1b3d6f173cacbc6ace6134098f1e70364f1cdaf0eca3f3c5a320fdbeddb35c53405850d50e911b26d4b077080943a5c2c8e4f8775942c8d41c35b0b1285c968761cefbdd118b4c34606f0365f7ce3b92e4f0eeb1ace4d557c913566636e82e9c4f621a1f6f2583749cbaca833793534907326a0ea3816b94c6217ad83b639a6cff729ec7f03f58ffc9668a20da5e5797e3ed3b320f75ade85eed4bc876ab3b4bea62740054c3137a7321809fff139b3e653c81caadc3a47fa3ce28afc4456b272efbe9f293b5c8cd4788e8affd43a2a79bce8f596fc67c709351e6f74850e79c8ac32263eb24916577c0136f689e9a402f7c77747d45a8b0dfd58cf3f6130741c0356b7fab8b28b30f22817a943220a6ea8b230481048f2adf732f2a1a035db0f41d6fc7cecf5b431ce6939aca4d4c6274c11c4d80ca1778a7a5ea08b7ec", + "2a614c171a427e361608065cf1181f91e5e8895880563b438b227e99f0f9bf5af2c9e962f9eabe5422fa951fad0834a5e2db4b56a15dbcaeade56f13c2942f78d109cd03863123e59e2ab58d", + "05593e1d74b9d59b1074bb88e62435ba2088b996df4b22b1c8ddde26c5ced7dd8a62bd95463992c1afc0c25a571c2fd9ae545ff2fe6bf48fb23a6f57362f0bd5db3e91a70add15adfaf51060947e63d7af3633fb96aa5f65387e3cc8b10b755921ddd3632b58cd190fa0a2478e9fd747d91726f3720c7faf17e2b2d6df013b5906f2f57e7a42dd327bac0dada84085d5fd251e37ba530d37f400f497ccfd5e76844bcea0fb734e612dd876c4692f60adfd9a5f30e05e086bb4f826508b936b8ac9c950e5876d7eec9d76c52d5136526d37e6b47ab59468716fe59694ac3222045d75999dbc927dcd97119b5fe112b4ff5b511042137aa78da5a80f19df6ec66ac82c2f15738b09b3b6a0e4a85cce2a4237be28e8e768675fca9a54fe3ba03a9dccb7aeb0d68545c54e17fc50c77be58bd5f664bf946368a532a0bda703397d671b34ba1726c809bca8b80e3436aa15cd014b464a91a778110e25cc2f43b8ca72f3ee" + }, + { /* i=3641 cDividendBits=3054 cDivisorBits=3000 */ + "0fdd086c049836933ffdadecc8a44e7776624ccb72f32c8ed1cb136034991642178bb80c041bf7a536be3a1bb2f6f87cae8420cbbc81d952b04f3840efe7dd10f3fcb47b5a62a80a911bba3158b91be0edcc2d97751c1ca5d2e17eeff087979d112d72306e2d7631972296945af8b4ed63d4ecb6d1e8a6210e6846195cb1345cf22c47baeca01a0236c9df6101b480c61e0b22dcb7f3c887966e54259a834e9ab45a8ac52c74b3b69fa295ac00297a914cd84ae84e5a242e562ac87ff18e971eaee189993142c19a5df10179cd59a331ac0313ddd707d8483d7cead9ee6b6a1978c90a4444e97ee8a5080dc086f7ea25c111ecfedd85c89cf7a7ab1fc0cc1b7ed5b790dc2e1828911702ab651f810a9efd8cdf0d9eeb5225f809750b268ece0bc3c88e3297edd3f193b26d624a72afb1489a4f56c61146b2df6bac108789b96458ad84eb58d53a44b6187211e231867ed1fc3e42c2f8a7fd0ca65e7b59b40330dc9eea14029f685cb11b46aa06c3b1d817e6add2fb45e2b1d4fb66c82560", + "a76a99838df044839f9bb91283f96b5002fb8ed1c34e4d76ae9fcd55da2c55ec2b103b2a3b2bfe121c38ee09af7c993ef33b31ad1f726428c33dee8debe23aaee4036118e36dbcf3745410a9abfe1799d1e77ee2cd2e48ab2e9a1ad00382c41843068c39631c6484ee47271d68ce9945d61e09348b10d759d50328a14ba610d89f766319cf67d78af9164514624741bc0d2c284d41ed278c75b86f05c65f7ab8419ce32f22504bc8d54ef3910fb6e1cd28993459345a6bb1e28241c5ef6d471cc20cac16c105e7012a3efe3dcf454b7b83bb01c6c9c619c38dcca271e35afa463c6806bb1d8e49754fc9dded55314b6201173580664695aa6aa8deaefb4aea87620dc2f2403574f53a9ae8321df216cd45dd231fd02ae66899620ed3402ca3e35bfac902d149365944b3caf2296442fa38bafe26551ea161a51cc244d23e146eb844ba11f5ec1bbee8ec5fd86292b2d7540c0fefd5c8d75cb527b672840b518f04698c37242094c94cabb0844b42725bb03df584e753d6", + "1841cfe7ada7c4", + "357f219e7f853950cd7afe9ba762888e4ff4d3f84c8c610f5c1a68c06d756768297a87287a30cc5c3d5b3a8b6ea54175d5d83a232057c3523beffcb5813613f4b71150612477184bcff807b1018089a70d79c474c172d972290c9454c83cc3fa49f25f72e4fb255a896eb5777ab461860e57ff9b331383794ce54d445633b288269c4a703dc25a1cbd9c02686221d19075d1f3771239cb2ac588351939558274d67e0983399b7bfff24f9d14392d12e9e63b717dbf47912ca9210013bc877657b55187a8b165a219e703b1c057e912d2fd708fa96cf610fa19048455740310cc7ec9c9083a916e37c5fb579c7258beaaf82fd62edc2d88ae177573c1e2866022b9d2c3f48e625107be3e4a56a1eccdd92469c2b0470d23b96a541b3223c6cf9da15269bee1da792cf0b4cc7304b54584354de7e6b8cb7bac279d0a87d8e459cf00ceef016712087138ee4c2c6b24126589a9a18becce1a34aba21c32eb64e55e2f8e5ce26cc16bf208d25d81959df03e198e4afc5d5b88" + }, + { /* i=3642 cDividendBits=3532 cDivisorBits=1000 */ + "042019b303e71da8def375a7c632e92332408815ef8e180d7e2b9a244fdd0ef98204ae91472d4c8db157038ae76cf70d2b8c88e1524f76c51113b09bb79a1b8812c26ff6a4b8519fc35d1543a2c48796b57d1aa70d71effd55a0a6073bc4e91a4b011954109f7e5b6d0fb4ae2d56e991d83b2e40050c31e03d17d2783c1624aff7d2c898e455ab47259365f2326a74bc9ef0d5bd2be79b1f5cf78524f277868ebbfb294da6fbd3cfb1ace8fbba9aae87c01d9f98bcc2da61d7042d03ab4241eeb9e3106d90e8b5bca4454ba4d4cd822b517f5d166ae50c50c2f53878d4959fc321dabb2f3e53fd229bc71b2f0fb577d18e40947fec9b7b915d0d988feed1e7c0999b80adf9118f4ae99e82d509b896910f57d9af40b8ebff8983646f40dfd876f1c4a6a5cf7be3ee5adf29e002d92d2eff12a7f6c61bd7d3a1d0bac51dc90d542a54536e33ac2b3dbaaf3d72b8bdabc7944bf1744cc7a8b9bd712d98d4c6a23cdcc6614d1f59f33b6f8bef5494ffa895c2b3938753a5960489d2d2e36bdb2805c1fc81f9638e724f31e425dd4974f2a3b690448bf25ad85153f91ccaff71159eaa1ea87442abddd90b7227ee03485a341e9953af71952eefcb48", + "b2d633834565d1e692f3153d191180ca649b0fcd4feb3280ef7f970ee0c9cf62d2bf6c426eafa15265d4141bb547c91c0cee82af11169274ac7584fa35f66869cd5b2a44cd1931d5e069b50719b7b8111fca8efe830b162244af05b79f777c70cf7828d8fd21a9f83a4d417f211b63552971fe5b0b5bdf87f890396940", + "05e7c78fceb4d45b58ce7cc6df005963ed93ba91b59fd48f9fa0e8faa0244d986fb370e3e26275cd0a10493094ef873f88a01c4bd670526e0d16f3b119bad120626b7c99c83548cf463f50f77ef6d1b9180273e5d8c1a734e73ae51ee8212050ae031bbf2bb840ebe5673803eefb7469ace3dcc013cd39731063fee1df8a845469629c73549d5bb9d397f25d6f627dcd2ea59ac1cef6a6e6e3a042f36b898d3028d379c73ff994a0a5ad368e344fac6371f9a86ff622814c3a4a7a6e4b70a9607bd95444c8e070a3de064790c0372a4c13c0726e931225e4e5663e23b512964acd34d9dbaf5808543b697d15f4d3150a1aef31a68e35bf7d139fa3c67c22c24aee511ccc2dc40da39c48b25fbe9970a124adbaf702a9cfe79e2b8012d0362132515e821767136f8ebbb45adf01f668583f01037248601635332e99e91c", + "06830ee74c2d0cb6f0f0af302c0e974182ab861455ab20ed536a88440a67506d4ac0797b24d51ef431836ad9f6554fe080574036fe20bb4b4838da375222d58f6c442811fe5f689b62098c119ee459bf6657d1eb11f0e244c31b86053529ec7ae4095535336ff7a51c703d9fa78626302bd6542cee3d489c27c09d0848" + }, + { /* i=3643 cDividendBits=586 cDivisorBits=75 */ + "01d4806a7a58649a92d6d49ce2dcb0347c245bdfe780cff2fba75b9ca6f2a01d28074c9eea5460af8d78508b73aeb13442cb9f53d2e6358a084f7d2d135eae1fa6612162bb954f84bced", + "0477da97492d4368d538", + "68da58d2857899113fa809a3fdc33be4f584ef7fa367ee68dfc26781523bc488a25d49711c4854acd41b61b5c8f096c6b8592ab9bb9a63315b7c1bdd91aaf6bd", + "74b50618a97f0b8295" + }, + { /* i=3644 cDividendBits=1196 cDivisorBits=855 */ + "0d3758fd335cfd54349a9fbb3ea37bf2dd4a613f1df3d915eec0ab3344d66fc04ef1a2d21d2f8342645d95d340c495bbe6f21c23c2146fb17a0161606847ba433d62717e321ea2cf8487e2d10224df44b92fcc81cc915924f188afd1f1cf6353eb21101cf02eb789e1de0a6dfdca9237eb0e221ad6591acfd572ddfc12be417315df4ba60eca78c49c52dea98cc2b03a40a9f46aea24", + "0a9f86307c28f9d994cb0799721a696ef8a52eb4bd0ab735881a926a4b95497b1c228b34cf54f1c664fd7f790e31a59ca770ee6200663e90ad97b2e1384238474ff492a4a73fc1a018e83594978cf4e4825223b122d00117cc4968d9467e6b90aad25bd19f27936e8ca1db", + "013e7d09d5186420c797cb26a0b39b2758a17c531f932247bcf43082b19003403feab8c7abe2153ce63fc635", + "050410e9234b32da2079db3263202392aeebb716598aedf424a8c230fd0157125e3c23d804fafb16a892ebd6c041b1eda639c779278659de7e76bf120e3768eb0ebadb80a013b0b37dc4072672d3ad95253a5ca8943ce5c1781b13b6348c49144a47c5607d9348b53905cd" + }, + { /* i=3645 cDividendBits=3559 cDivisorBits=1561 */ + "212ab34cb027450ceb3957277a26c92e655f93bc441be5df9d07d45523b9229f386cfbaee2a6e4e8a057ad7f683d4e7534ab996f11e9b041388860eea9bf7c86c448566a5f0695504c47cac79ee16f07ae9ac23caeca740d8ba5c26b6607091f738e22c28b9b8b99efda7a238abf4e5c1de2e894738ecdd79b1e1bc2e16fe84c183197c41c10a7e7507048cdbb14f392da2ad68623cd13d28ce795ecdb3eb2d6024d26297c6a8c77d4b47c931b49071525388a43f6779ee7366aa04e8c6cccf5ba3afe2708575faadf9cc0548e156b6c0811f24be0555355809847612f127bf9c1da5b6f72a52e9b2cc19f5372fb5c2dd02b6ccc11c6c99c193e92aee489cba258cfe1a3fcb0d514b91b83b615c2c4a7355f1e970015dc2c5c7aecad375c1ef115d3b31c66f9819c16bb6673e797f39a0b32221294b7465d648f8c033a46f77ec2c997bdd472269284f43f97e30fde513d0f0ba610580553afb08ff6ad835e9762af533636a2aab9f5a381bc965133da0f8b74d4e2ff86232b2e63ac05fe9ff9e0b0a990c46d2903afe129b6bd1d2178e6ec46eeefc3c79f055aa32224ffb9f26acbd11d56492c1534a5db3e541d731dacd6a64571884b1cd8112642e4", + "d96aa756e9a4ba2485fa52d87077111a26d6f9f23cdbcefa9ff4ec5198a81e46b2c2bf99ba71649c3ce8ecdfd92e15d9f6bd7e20a292ebbb8bd80b5f549bc1b6ceac2fdbd281151bde6d92f07674a5d507296d0281243b576945def08471e74749cb9de15b054cdcec9678dbb74e193e2fbdcfc4307d3081a4b42aec3491b7b701f0deafb9b0c6c7f7e905e59e0599294cf5d7adcca27aa662317e4ce3d7f95d00eddbb2c9e57b72205e89fb93716678d5c83b793bc625da83dec9af7eb71535910254", + "270d7c17e3d95dada1a5019a735131c0a20451810a7ea45a2e0f0c3170220e041eed51312fc7f80cfaed8c49aa4c286c2aa732aab1e0d8ef3b7d1699855c1ed35a893e900ed07e483f897fe7ee5c684aa626d07c4f2b4535a09f7ffc22c90fbf2f047f45a21f91ce075fdcf7c03314b2b082537264ccb7f5f21d456d4384870ebd4982a4b50d3516c7862d3050e2426a8f146574b77458c561596e677d1c40ac8f8f551302cb53f0c450394be8ba4cc2396ee84e810ef594c4d0faa26438557d663f0d69b5ef4b49c190aace3a4f12e1e579400d32d5635c5a98c56c3518235c18bcc8b742c174fea27b43e313af3c31173dbd50f0e8d20c7ef4", + "a2aa01d248117714f8273f19bc0f6db0a108b091222c34a2d48bf8c6c91c69876be399745d3bc02cfb00acfd95976a260939273aff51de99ea0b4da546e1e3cc724a5f9c67b06b2eacf0769b02cfe49e21b5e1a32acd7ba161eac8fe179bcc4351c67850360f489179c1b06973664f5fe174cb73b64a90d7abcc4656e3644d3c19299f9c4a48f98f83cc7cba7f2cf8e9bf38973814f156a7fd52cb5279568615f3065b00e6e81c6cc43e64c45f40a35784c1c2faec3c732366c938ae9fd96e9fdab2d4" + }, + { /* i=3646 cDividendBits=65 cDivisorBits=46 */ + "0870d04fb08e00fa", + "01c4db758588", + "04c581", + "016594740f72" + }, + { /* i=3647 cDividendBits=2631 cDivisorBits=662 */ + "58844707116db9426c663dd14ccd5641ffcb71ed82f631bffdfaf8d855fccbbccb2f7d0a39812310a3f595ce3f10384cd8e14cb130f473838d20193e798918d7bfec6e654506fe70add539f3d8b2e18c82720b947677918322754320073fa4e5cb0b098dba950f3df41ac42032c82ee338c841be7c852f485a79f1aa32f47953942e306f3513e790ba34107a116311056f78a1aedd2469bc46dfa4937b8e5c079bd968db38d7660165a5b076432782a092cdece91e24686d443944d1a2af90cce17d17b23234b39118af064babda63cb2b444c1b56a3f898c16e4486ee9c4218ac3a53e881eb4afb511016f49b5cccab45a1cee59519c43a74f13005e9ee6714e5e1136fd684ede43a3345e024fbf88ca5de65c2435f9fa14b9be8626c63fb4af57a028a121825305017101e93e73cf5b786e88feaf39d7a3dcc54c1027dd639ae81251c2f1a70edb0", + "326b69c954192df721562a41f960a2b082415c80f0a4ec66793c54f6d67b19ea39a4a57f0015bbb85c6fe07b1caa1e9e64821b3caeea9ac94273f0c1f891ffb546c62e4b12cdb58a3a4b2ca458c2b548324065", + "01c16f1e079eeb2b01fcd3ecaf962fc2e4609b4e381a5a69d43cd23d53f21510c2dec8074dfaba66edaa2a7050c920ee463414c3936e5c764aeeffc04bc0d2c0bc800f32aaff7d5f538912f9c656cb984ab8047e8dacc53a5663d1287097c38c4fbb98220ac203e3d941f63f2c8ad0be06b6dcc4ba875f186c997925c5e53126dd86286968ac86a39025e5e080e54d04177f6e712d63bffb0e3ee79c83ce251da5c0f09579fc7969aaf77053f133cff936a6ec58691d1e1c02eed369318b81668ffb1e338fb7e67a5cb16d73ab7b3b8263e03e22a4d869a40164eb0cca22dbd1535d31f380fe28367770fc683303c5051b9716dc034678", + "0b39ab652a4a0d0c2216aeab35c35c717b2ac33df876fe20ebdd3814c225b07d5abeec2a6834c2acb74ffe444d4ad607558a9cca890f4995a160d2cd7c3ce500b1d370be76c7f2f3a59501842d21dbf8182058" + }, + { /* i=3648 cDividendBits=2684 cDivisorBits=1955 */ + "0720f258f5a654d1c812dd83e97d5adf50b07ba8100f2de7ca96855336ac8996df832cefa87d43152364389cd80888ce4186e33a3438f94ab2e4d2f633ad6b0252f588f603239ecf93b23956db1dda427d18f583be72911e2b5dcecbef9d0d031f6aaaf8feae9857cf3a0b37640bf49ed7714bf0021e2f67fa49bceb059a0b638777f30c17cfea08ae34f41bdcdc350be9a4ef372d9b335868dc53f30aae7acec7ce3fbb8501315c7c1c3bf1abade507a6380a7efc413cdeb1c7ea41e30ebfe0c13331c7127b1a1fb1593ab40993f4701134d4579ec8f3f0c13789d06cadf56625ff6c3ca1c22975b521b61197365cc45bc2f87819bf7808a983e563c72c770f822e016ec993d81a12e7fd838a8b9a9c644f23fdc5eef67ed5998883954db4cae57fe23b231a7b12fd39c370e0cb96e3799a7d0682921a6a1f2b0f4314d0c62acf6c0072941e6937b480411fbeff48a7", + "0694dd0c7bfe0b44a888f1619a4f3afe4c2b29b3550eddf7c86169e41273db5ad394805a14dc9e00ba0466b68a90754caa28b6bc6d7cd6e7f781f2249b149c9c3d8ffcd00d10dba40c915a273fca411ef4c7e70b5f2faee4624b59f72173ab7775082b77d7ddb42d74580e7bee90b6078989a7d2ac5761008a8497045ae272c2cc111ddfc43ba719e64bb63be21340763c1c44f2c1dc158e52c105077bc3ac6256fc00893494d8476026ff001aa8ced587c5da0c7ccc803c3af1ee7f3223e2e4d5b99388d0e84407a92d43978db3b519055d4e7bd70d75b89fb2a669593c8e3ad716708185027d79d7d76b4dce8e7a6ba027a2358c", + "011548ce1328e40dce9a9c4fee0ee30c01cb7f1b32026bc1cd86e896a26eef9fef6529121da046d5a8905ff64f43fd409181bf262fa554e797a0c4c8b673948c29a96bd4e0324b8f8658e455468acadfd822c8ce61876e3acc34131a", + "02bed215622edd4344a078484a7e375922440ae058c8a6360802347da5ff6e7946206e1197110c184046c4545546b9b2a05342c7633fe31b75042c4e395ba1204218e0ba4b193d66923967dcdbd9f8cdf707abdfff74c63fea2af11fb8ee2a9804ecceb0e41f6d986689c292fb3da0b80a72bacaaf20455743385c90241f807488bb521b94bbf39be047185eb63fbe2da99b5ea7840b826f320c47491842f93b1ecb2dade262781280c1d039cfae904a7f33238027b17de916fb91d54a47e603850206f8b5be3861203731586433d9c3c39782232292cbf7e1ed563f4c14dbdd06025b236ae82678de278aa83bb360d6943e1c746f" + }, + { /* i=3649 cDividendBits=1180 cDivisorBits=990 */ + "0980041e51d1acd758c4dca820931fcd577dea36c88a7ee083021b6926367b8a9f6bd9c7dcaf2d22a4035a8aea369eaa83dd362b949b0d791af6ef2c00bb07d6b883372ed074c81d25051ab113d993c7743f25ff39826a6697a1d7a96dfc8910aaed1592c940fa559a50a2df3fabe46b56d41204d99ad6a02aa8aba84ab7aa9308ff3a22f6297913706e6e2b013ae19f27849cf1", + "24821e5041f61d80d10383df3666560497c3576ff15309543815be9723c70bf8cd14245e26a5f9dbd262218ea656322c16b4e139f181246ddb6a110cdc3721ed1ce7a773563970033039960872f370e5ca86c992fd5dddc33368f97671bbd6be3ae15410d2d9c9890067578a290300d89598376d396392259361433c", + "429d8fc6d28384b70f97fce48b0294cdcde4effb7cc2b7a6", + "06f9e7303ef34c912b8687cac7ea9bff69037c56837e912cb5632b47a7c9404d3150d7c5dfdb59f617f34d8450d8913c7614332a541cf864e406529e71a8f9ae8bb9e21089cace01c96f7b1e3f59eae03a2dafb77b2910e455f8f63521780ae4a6c3bba0fa81192d3e3b300fd20e2f1ee2c2a5206dc284cd0beb2009" + }, + { /* i=3650 cDividendBits=3091 cDivisorBits=1116 */ + "026de5b6cc18c82a57bc4e4de58cd427ab33c23a7a27a8b14717a5cb2531f143d284c1e140cbf2fed59bd2d6c4400dce2e4caae05a2894728877df7b9ec367b84d7003e582ac4a4d98a18f840524b10a82ae9d273be7507c398ed3967e345852ade7f9f3c44ddef9cef5cae2bb9b08d042e808e8d0957fdc3ff5818b976467e70d332a328c054bc8a13a689407e91264bda28dbccfb2ba8e2bc337659188b860c5d003f844ee4d2ec44cd86062bc92ac15a77170ab710725f82f9371aed448addd0da979d6d60d46ebe30eaf94cc87e463808f33eeee4b75cdca8355dde993cfbe60543deda731dd9449aac3bf67943a498a97355182e04645ca3e7592f4cbe2593c2892aeabd401e9e7e80ef25058daa2a44d726db90b484623bf81cb50f82adef91100fe9481aa52c4449af9e015a87dd6a304b47a2a1edc33fadad113b487c78f87a8fd3c5c7871e7d9abfc42171dcf44e4e1211c451f6a53e14329c56e7b851404ed180f208056698ceab3d2c7cf3438e1283c5d0a5061078a918d26551fb21e4f", + "058cd48426759d7b588e9709420484b91d80982d26849039c464d68743dcdfbc73d7be0551fbbcd25597a3a918f76f78db25ec3509b483f48706fe394db53ac4b775c4d18103997613f2f715724f8753a1a96b0267978f92ce7513bfad64bdaa06177909c3cc047efe728f0c2a599c81326face9f456099ae155c78f481490f7c7988fd996e8ea3bb8321ef3", + "700d1b0f8581ec351b0147c6243aec3e037bf476289b264ec1d691ab76d8cd104a93499b911679c7271116372d173e488f803e04bf8eff03fd01d51315119ec2493a2db752cf4091b800addb2d14344f12bbee60bcf8595023a75df5e68c6c7666f0854d2a157e4a55143fb5024c2c24c77ff402a9c325d54e64dacdf2a37cb1e63cedd1235d5b12c4726adfdae765cf75d675671a091dfee1166b58af8a3c91a455a158b5a124e9b89614a726d90b14dbae9dc8b016858eb84eb2bec10330a9fbcdcdc06fb086f92085e42a963ff842bddba78cf878619fdf9a0a790d234897a3ef2de66d3e1d181b3a7b59d290db4018bce804247efd", + "053c2e1bce07f7c07345a5b118702640bc5e1dd66390efbdde058bcb73a29290b72fcc5a3ca5c8e92b83908bfcbf0274e943613cc61a8ff81cac1f06698760ac9b222212c06b984b6365f4f8d435fdf6d4f787166247218b74d2470fe8c118630d9af59ad72af5fad57905869ed64c846b28b7092aac03c756240d95d0d0bc7d017bd11b87df14e744c1ee28" + }, + { /* i=3651 cDividendBits=1184 cDivisorBits=850 */ + "6c135b570831b282147d496eda9d72e11e8b116710b94d6cb576a061ecbbfa20c2199a3569fca3ceb6af1b0a6f7c56f88675c4ab2bd75c4d42b5dc7d580eab2d44ca49cad9df5564fd3d35eb76c3a6870e6ff9af85982e35e5b4008a5ea4183d627c002c915c62da2c5f5e89235ed84ccee415a5e2131598bc3d1f6bcd9afcb02ebaa1846a98339a678b037a7b055ba561bb3223", + "01bce54324a86087e0f29b2aedf01a924b3f16195746bdb41bb293027ff899e5a24731539d656887124cb6ceb20aadfe4ac1428e1da0092ee472eecf97598005fb61946422808ed2f2eec8320e8a637886d8e1363801a7750bc762dd4d8acc91d66befe1d782b29b0ab7d6", + "3e303d0c0bf76ff5f84e7b7fb601dc8ff7d4398a43d42c7a5393586018560ac09ffd9864524fad8a24d9", + "0100e6ba10fec077ac007e5313577eee9a86dfcb01038d53e8f22568bd9bfd436221d1c6a7bb4295da157d19e2ee808df530f76891fb164b4f546c2155ab3ee28bd4f21c1d7f1a76c17dbfb8a6e6f577f8ee3df511dc0f349f7f98f0b85217653657466f1f5b65bc6f45bd" + }, + { /* i=3652 cDividendBits=3419 cDivisorBits=394 */ + "0636fde8c90a3569d53e08ca897a9289aa76f94f4bc501ecac023a73e9a582c105b928ebc57db95731424cfd1db821a67f4172221fc0d8a48d4ad04a2f317743bf685382f34d84793fa24c333284098eef3c935fb8cf38eddd759bece4468151182fae6084648e71fb8844099b3d5f5d90b0b5fa9a44838a3cb50029eeb1543dadb8ebcb3894eb839b4be75aad1f2e50a0a19de93ada54f2c902905a9e105416f338eeaa0d3c45090c180e5e39e61c1b1a4688610d73367b4931fbcda77ba45d9486305191d931ae299eb24d0633c70fc5601aacfb8bb6db99d27d7994c1ba3c071f4a4431567b3f7184ab7b994bc74a95817840d1c485aca86f4c4a67efb8899109007fa2c82f6334b4a6d82b9b501b33207c3b293370b067eaec5bbfb946686acfef039032b952ea09df438d6753ce545323571987d5b1e64fa03d21105e30c504e0f98d109ffd12a0a950e2e9ae525bac000472051918bd963eed0e67845c43ba6008333e7ca8ddb9f53f3ebfd48a6aaac665c627ad47489c3826bd7cbdc45d96c97df32b939061fb92e62f1df4620d745c7cf74caa638f25d6584053b7f481fb05210cf7509f19ae9290", + "02913ebff059eaed33b6aa5e9db6b700233a24f3f3e88911dce1968ad96fa59a54e073cf7a95c57ad34e01effc29d96f6df3", + "026bb2da88522443ebab0e5ce09eb19de88ceaf920c3978d42a5efe0e3a7363abe5ba01e81859b34909c902760b1201853b24388824718d62d267f05d4b40dd2300f1efe8e4d9b55880eb6d9983575c0977294a5a53b315cedd67909be91fceeacc8bf221422165218eb93e826c0d81f843f0a64fc39e32e7dddb6f9566ffd529455ef60c2c1bb3c17b176e92c97d5be0d1a4dd2d3340eab94d55ca4560b46ba235527c9032df8016c1082893c56f644da7a207e6f0c3057df3e41e89a81c7b09cef7e8726e329caa1ee9d072b22bdbfa16c8c791f4d473a621832e0bf05e6ba0ab8b560e81fc1f5d229a6160b1016405eee9a44cdce888c411eaf9b66956b6409490422a7ee502deb5d063b9db288b0e1b2cd6d2e6e1a37052cca9c3cd0e5451d6490a50228cef883b60fded5c7db669ebcd8af75986b9214daf34a74b4e3db6f454594a6d64ade745493086867f544688137e7e44f568ab7d4449e12bef6ce72951af697a43e79316b191463f16fcbe1b9a72c1f2733b5fff174", + "0103b16d7327e0e4145119f035ee3026b106a5318c619fb407312798c06a4ee1b6bd37e2864864f1ce401c0a5cd258a1fd74" + }, + { /* i=3653 cDividendBits=2461 cDivisorBits=1756 */ + "1564806ae47f9c35d25e105e5fa3d0f2adbb109c80030c1436308d67ce1159412350fe9bdf1632047631292ed8450114dc8673fab0b0ac5a98b4a059a9e8ae5daef399d8971381c7469a5ec98f212adc7545b731c014151cd8b17a04260bad22a8db9425c4f5e081e7029b3353a90b8d48bf394e6b5914c1fdba224a4405162734237b12893c4e3b4c9069c3451f5f7e90daf2510f69c20de05519602cf5e55829b14dfc84c5255cd87f981deefd06de854ba7cf0b4e986217e7d26c2da31c43b49489718986c091d6668ca624b45b293ba5a3776a95a37e1f100bb9c7617fb42826b16c791ff325b84f2ac5946933d9e71de857cacf59c06a7690b178958a5637c3503660a0ebf475d5824388e04a34e1bda7af106e961c1576e9f61345fc2ca4e50f14e15bd6cf973c6d7008ce3825b9a32cee", + "05d636bc9602fc459000705a3f93c086f6d16aeb6dc0cb3000c464dc51636150406efd9a37a1e94dc27740e2b25eae7b8fd956e88e61501e4efc1b0dbf5081fe2e6940acdb39c16b6928c82300f5a80ab892ef97fba27f805e11658f81dcb7992afcaa3c670ed6f434590dab13facd863c1b20e89ef960f4a8d557a39314b0f0e8746f529785dbed9b0bdecea72a96f29e80a96447b4b731d6ae0ea932e49bcb367c1d6e34657293786eef394203e836a36815ad4d67a60d1bc54014507069d25e80ad5d9d8bd067b561615ca0299f14af33e2ee675175f682d90972", + "03aa46901345d1595e99e6ed8432e61e32c6fbf22351da89742ab06dde5bf4a6c97998ca3f75e8b011639038e8ac3c6a621c1d8895b4240c7c933faf91e4943c05ac644b3140600904de6e2b521c68e7512e89547fc30b0ed5", + "6f7bf058f3b201f9a7d5975bd6101aaabd6d9af60b90307dadb2a858f379f09373cdf6d9505f0a53fb17c886becbda34e0d285c470f0fbf207db13354f59cd5fbc3cb6ad1253e29a0a476da162e7b6cf88b3d42b278989b2b23fe312e1e7d25d8d6db51383df14582965bdfce8df6b15c91fa82d951c7c86a51e62ae415988bfc7cd8facf4db221468de9d77fcac4389b73f9a13ff39907bece353f208f3f70b208a354883e6ad69b8b496c84758845d9fd178fd5fcfceae8e069764f8b939e8a1e9953fdb65ae3b0f052c2991bb2eaca6ccee1b898dcfbea41514" + }, + { /* i=3654 cDividendBits=455 cDivisorBits=108 */ + "2db918260f02da691df9f34ac392a503cbfbc34355a34de524ddfce5a9b39466df4469045b34a8d8672fab8560bad5fcbf164117ffb0dc6008", + "0df2b2617de68fb2c2f6aadb3d09", + "0347316f95f0f7d4eec716488a13bdae7828ffbbaa409a72e3ae895fc2ac3c63ed1269bfda664e4b2ea94e06", + "0742fb5f872662b58ed2fa2f33d2" + }, + { /* i=3655 cDividendBits=2160 cDivisorBits=1182 */ + "48b583d88e05b54e605396a4b632062a04943b9e7e50933a722fe514c71ac30ed617356044a3d6334d477d347ad7f748e7c60df2e3f661c431731b29670d8d25f1a0365b7f05dc80b27793db39b4d8c2ebb09c279a5034994d4d70498dfb2e0b6edf8d80d40b9e80a7c16b2d0acdc5a39096b9abdc0ecdcfaea2750569b75a2ef0160f701cd7068171e4c81f443dc1c0e521fd54ee0378d2d64c81fa67356044f6586945f019ee2305353cd33e1cc86a3a2cb340e6184eeb0dc55c0cf9afd89b55a797198a022cae917589d9ed9f40d4f823c07150792ce3741caf59f50a6671c6e98e78117c5fbed1cf540fd8bc97c4b2fdcb04acd237468b5dcdd02ac78e9f323db5467a944d13577180e2dcad", + "0a0d79bfdd7c9fa54ac03e5735ab61653917ff349751a0ff04e522542f0dd8e188c7b2af2eedfd9c4bc926d84116a3e9262f9edaa360610711f32aee2e605a575c5bd4da59b4e96355aeab23807a6d34df9a4c49d3931778704bcf14ffef969ad2fa30d22bd48affa1582fab30a42086a6a2cc65716d89250b6ba716a1e902b0f61c5c9d917e2ca6c914944c1631826e3399c615", + "073b9ad6c5feca144ed2ff5ff37aa283b1e490580178c547d6f4f3042a009ebaffa41469cba8cc60540c89a074ecbde835a68efbf6f0e8bf4f91c6bff9151d1fe0cd150bcebc21de90fef1700045d658f4e8d7ca72c8bf4ced35db701148f4d87b6212b0de9c9e69a5a03592bace9658523c9b069d121dcd52262d", + "0a054d0dc99c99a019e3efa96048cf00c7362112f0456a01df8773206004ae4363937ac994376540ec15a0bb3335f058fd93ed2652b428e06f7446b748ef84bc97ed5753845d9fd4f354c65eea7ded257f318a486aee3412d9f6addd1ece50f1d9a7b6fc0467402c7292a6a8d45490f3dca70c51c20c3b6266870046d7dd281c14d11815dd17a1a95babbbd4652a792857b9ecfc" + }, + { /* i=3656 cDividendBits=4022 cDivisorBits=3163 */ + "181db94ada439c70c95f2cdb0913bf836237b3abfd84ec715eb1bffefe15795e56088ee78c802f743da54319ccc8343a58c5aa8c1994d74456aaa2e193ca6ec11f4494285eef8079076550d064568c2e9632b555dc0fad80ca1440a03af17459dc431b7b57cdd4d3625049e1436b1275fd429cec03357fed6157f32a494f59becddd8b91410a4f206fdad946be517357dbc60eb471c9ef9be942f0dbdbfeba2900cd7e5d0e6ca296d3d88f14934972c8b76469c1f83d0049ceece0e1bb64f58df9c97f6d422b8d0461227370b2bbb23245a936f43ff83b431f9a8c5badabf99e8bc54a4702cfb7b6bb5769af6bb70ecc1b65919f76d7e5a64029350394d8017f0ed4f1b540f0fe91402d5ce8026fcf80aec0bf97f158995b3dd3773a609355124b69e71bf4d57553dc2403740564246ecf7ff3448c4590e3bdc90ab97a76391297a1da782b7a69c7d83d3d2f46af1c26e3200195daedf0e8f5eaaaa4857df2b4c239c3126f1c1e19d20effc7541d4e7f13d2f899b8691a6482376a94a84e339197ceff7f563acc2c373079d372afc7456c084e095ff305a6842019198ead6e34a23fa14cfabb09beedbf18290051228aba8843cb9f52d16924f55cdc5cf434e84440752c752ed1c914d270bc4e9fc6b047fb7b62e5797d5dcb983d5ac66a99086dd1f8e61333e12cebd4e69cf1c8bb3d8d9eede53f95da", + "d1c86847e371f4bceb06ba046ed6c59808594086a76018dcad0f042b4d9ba1423f70531a434344899f047ab67a24da89ebd4df77b2b99b0b6f68ce1d614a5e6746c2028d6584117b887666f8bb8c10ff29e4ef7ccd897e0e1784a36bc35cad276d356671cea850320f08a20cc9dbfed0acff6c7eb68b2715dc0acfc8f42ca8d21752f32701d7798cee098029c79af05af8ec0a3b92f66fce52953cdabc1ccf4f3833f9c95bc691a666d320d4a45fc30827979e40355eeb5c404616b4ebb9c25cf114581ae362de24f2971986371943582e59363a57ca4a6695f427541d6c2751a7eba7c3a6b1dd1c2db3aaedbab701529aa0fd9ef792a85c3d1f0deb28507c941f1c8f6c0a87c3391760eb2b75e8b68c6d744f01ebbb193d3d2e924296b302a7ebee3330d14d3851598d58fd11053d952129be1a7c91d85f5703beb95ecef799d99d417869006cf1bb4e99a4905625633fd26885eddf1065fd104dabac7e23e4ffe96f3ce4ebcbf1141942b11084d8d035d99a4f250af46627cf4f6b93df067c3ea1f65035d7e141c6c82e", + "1d6dda9e362e61ca7b48da1430bf24957b008e57e5d8f8a730d76febacd8ee11b91182d95cf740fd5aee815c479804e346e9441b0c5437893a6ba0f4f48ad172f7cba3c2fdcd3d4cd123d248f15da0a4b5e0a73d01385780b9bb9c4c7661f446529e6f0460e2e070b5115592", + "3751fc479ff48220e2420b150df2b99bdbaa3029e44f930bffbb9a72c9b71bc6b2902fc655b3f78c788a3a3368d0f5e46b726290e050d431f5d761de84400b8ebcbfa338bde3802dcb37940b96fd3543178cc937f4a18c04d2128053b1910c2e7f5710c47275cd35911dd4c1139588ee2a88f0391dd0494128302a0254716ff78893c1eec5e6fb79831ef52cb7a6a067fb1c5757a50e3e4d61b74b0ece0a8837a84426a1d4ce6433ff7a7fe9f9f9dbad4c83dd04cd9971d73dd17e608746e8b639a3400e0d919844b748a1a773ae7b461d5d78cfb349b1711bf905ef8f13c86024770688af713a4aa429e957b1e25208d6668345d1f05d153e1bf5c5257519012af2c673a197e67d9682097ef101dab11cffdb1341adc9eb953d1dd06b0033a540f4bc5c7642f6bdc1bc040f7be3c2d2dc94169d33b3ca702e799b09606d9d1801242437248c6d90cefa3b029b10dfab810421d8f0b80c6249814585609b8a67bc8a0d7cc9c7b733806f9ffb6d9c4cd3d54932233bcc5bc35fab3d537eac6b4b1c010955f7f7c3905c259e" + }, + { /* i=3657 cDividendBits=2088 cDivisorBits=571 */ + "8310fcccc7524b1c35e5edcccf0cc3b9be3e484d851596ee3f90afaa22d7c5e6e07022be79377e623127cfa8bd2e381da29989bb212f8616d77fedee35059780415122bc134a1d14c26a04af11af26d0210dfb1c52b908ca83a917b8ca9c5e82d422190f014ec5fbf847347e0d8e1aa20abe6690f91163d8de1a11fee52bdc6f58d36d9bdc294786a007e4ecf56be9368d33d3360979162442dc2fdbb2e83fc5ec61cf8cc3b36220b05ebffbc9a94f810b184982b5c6e967f7c395ef9dc3a051d4c66ee969f6a5b4290effaede208c173f6d3b05b8103ddb28ba0d70e31ffd23c09460db7597955981dbdb860d4981ad4fc33af590fdde8292629c1cfd030957f0680c9ca1", + "de50de770fb249d4106b2949b5a4f06bdb4695ef6406a616390b9cc1c7da304babaec341b61da8592977a9c45b3b87ed56b3bffe26cdc218221c690dd929c7cee3b431b7c5c7ea", + "96ecc156524f6826a70f3b715b32ccf7f0bfe0d248a437e65932c3eb45a0e4c42b590a965de0a557403f9a2cfd78fd73915d7369b50e21a8dcf734ba190da7556a416d9fc3d42b894f756af19b623f648cf937d114e765b3c46dac4085d90f933c62beea842bbb173cc97d1f8981292e1d42eb6ccbe3c02cff5117f32ff6101a82e1f35f5dbdd57fc26c8f308a3be18c390c321e1fb152f7898668638ec113a3e54f09775778f4a554beb4c727e5dcf3d86bb2d73929f4d625048059b015", + "0a68f703e8607ed59f143f7444695089c302f1aadd8607271c979baf44a01a7669b8067d7b89250eabcab3e89fe8126e0fb37c0f0898b2e6db44224a21496962b5a824db08566f" + }, + { /* i=3658 cDividendBits=1100 cDivisorBits=926 */ + "062a78cc78baa009e3f410e38f65e16cdf23b3193c68f6513e626bda28010a76282ac07d67ca666dd4421c72d07e136db983b43f97c6d267e548fe2fe15c594bf4ba4205bb34045d6269c709be30a60b2c04f5bcec4da7b7c5ffe313a9dea9d31023cc5163cfc8e4f9afda4e1fa0eb2a6a61e90ee3bd934da561b54c0feaba61f7f21e683d2fec4fb7a4", + "1f023b7ddc1de7d4047bff027169dc5669391bd553e1af206c2dde3533e41a5b12d99fa7569eb1d534277c23d8b38cae7fdc8ad5a0e379c6ac370b4a8891a0dfe74d5ff8f015af66da194175678df4a9ca0b78adfba60b9c43c2ec586ae03fda936201e87050e3584887060a59af673d8a632554", + "32e774f10929ae31f6115fdd4e31d74647ebd40e399b", + "0dce816b044b6ebf1ed3fcabca8a556a4b7f26b5479f828e1128fad6b40f535327b14344e4e8b656c076539720463d66256489350de6efe0d89c64e3e83378427c4eee0e090a103422caa63088dc375fdb71a873513b4df867b40f4bcaf89ee30d9792e281fec0ebdde22935ddeacaab746069c8" + }, + { /* i=3659 cDividendBits=4067 cDivisorBits=740 */ + "6fb83c87a5d02a48d5019258afd55579775cf5949543f14982bbdb0c1477e19e373eecbe41339a5312f11e6045622f1b99da0fdfa7f4e4c87d3c8bb1686b73635aa71cc4d3b214ec8c3beb5e629771ecac370ee9e92c8f98527623c1a248c5892f53aeb14be94ef24f3075f5a47a683f91bc9c03d32dbd79ea14fb11ea95c4016155915d51e16b64d46b6d1616272a7b0e2ccdc81921467d3802297a22529eae22f33171fb3be168020e81275fe654c9a8ff4636109cf56fe31a0a19c4b9f10688023e7bceee4a24f1bcc4a3b724c05bc04f4afe94ca4ea54ff8d28bf9db27643c85e15df464c40ebdd76f2d7980c98f94a922c06559ffb6805842688bb588ed43552b4f08c144ea72ec462a609cb1c534d34bee041d8a893eef2b4093eb23242f28dab1448a086fc8d86d73fb3cac03b2e3c787f253d34076671ede4794f6aebb1ac8b2ae63320991e33734dfb3b7c707ca9963de33faea7ee278be82554af37619afb869efe4a1593f267495fec94ece9018546c854ca07d5eb4eb9b609d963554e378dd9e89057c9787b196df8d18eb8a27eaeb706ef586763f0de76a737650b0961347e9e5351a2509bd36bbd7c0ef2fba5f9c8445a31d3a721bc7f57203b4a662593b642687724b10469d4161e6f4ca7c99dd5a90c4abdfda25d1c0c905cf24d45b41ed3c4ed71da27238ad0e32e7e07245e3c520f4f02a9f31", + "072362ba6f351d8bc2bf6b377c7f0c04b336cf1804496b268b0b4416d74b934df7cae28ea732ea08850814b56b52795e8ffd186ab929cfe97fcf7562ea7f7b0fdc59a8e397838656ad8a6ef0482915361912ce9b7cd453402003e6a73c", + "0fa6a19b61b8e307e5b3453966b37dc9f03b99a4af4505f1c0123f1d97e0ccc13866288228b76449c582f51a782d057db507795d127a940d462578d914429ace96ec90f6cb3e9e6c834cea11cd2959170a9e7d32a38c832d03ed7c761bbb59d5988b0ee75222e17292824976f8174326e78fc12493c8b53db743ea55d1ec91dd7d7c8e1e46458877b9260908e5d8c860e2acc1889930ff044cd0b7d725cc690a9c70a6f233bf5a3f9e3cebfbe3c4921419fd87bb622ff435e5e6ff0aecf985482d311c222477f7f3f9de593eace578accdaeb16641f002d67a1599907522918939834165bf98ce7a7f7e75a3e2d1441f156eed066f24fe16cb64ae1bf1d00c5bea8accbd556fbc43fe1214ab19406fa43fe4761246b6466d1cf7e24b7df7c49969894e79f442271bf3b74bfc861fdc1c3b8c3a52ea400d69f344e6ec897a717289e5c1b0e6b81fd11ff9947b43675ebb52208ea3ccd327fbccc42ecaba9ad07f958d2d61e2fc807b0854dc048eb4deddff6c72ea21028ce4df2e923958b67775650821f32025ceca97b4337641788029de58744b7ba3d14b2e6a222073017e89", + "071ac04cf1743b883cee0e0c0a3467a1d14dd822fb7660054a7f6a88a0c24e92cb77a018fac5073c3d46076b6d3379b8e75f1c40e890a86bcef8409e094654af05f19002d2bdda0cab77a9be4e28db93b7ceb9432e81e48d60b82f9815" + }, + { /* i=3660 cDividendBits=3000 cDivisorBits=1880 */ + "d76d3863cac3f083352f6b4783a50afa5ab00ce39e442c4b2cb16fd6fb7fb09043da2fe8aa328125d7e8ebb75b4b43ec885b9af0695d94676696d7a41e5c55a763526ecb141819d8a402b55aea5a955beeaf4a3bf6d4ef5b58d8a3cf1556f13beaa0ca97cedc08a9b49d79c0a03be691d4c86179529ce07cf2e5553da6bc094c06f0c2adc30aabe2a3d4b89a205a3519e55e52121593e450699a36a308ac4211c88584f5832eea5bee49d07d27cd114e5e97847174c1b25ce84cf9ab66282539ae734e87112f1a35f48d8c7bb150847aee3713f2d4d21c646f0463c4c481007b1c12f8a1f3d97c27603e2e8668ebf1f5601f51347e5d3226bd112a3fdd9aad96578001da010599a367b8f0acd479c9651f957a5fa00e4a264abdb445ab4fb037d6d26b3a21f1763b7d7445c649ff343cfe51874803e40cc781225c552d34e96555c7e99ff7b2b94a66bda3b76e850c6254c15764bd63953d4b4b4690698e7a9bd406547e84bc3e0c8fb01b4e9f09113f1e0061187d3e0b", + "89fb76204736b3b8b92fb4a0e99dd5b60c479876115cb66fc052d506213d325d17e03f9db521033d33050bd33ecb4aa8323f001fc0612ac4c600707776cf8238695e79b4d1aaef68445ef070e224200312ac5722a8b4a65cb16ae834ea4873daa5e7859410a8d5101a8b59e00892da5aa59c2bcbfba4c8819227173cdfdbd5c76ea65210cdb2c2152aeaf3b9efd873a08b57d1d899568240867ef9cfcbbf269b8a215857c29a08378275cc756001996c8793a4b24ee9331455972a51d2b28296be3bf7e3893d681880ac6a9623917c4154e0b517b78522abbb59eb05236de0f62a186d6cd9054e79969650", + "018faef1dda622fce9cde3656f6a5e6291a80e6aae307ab0d379b0661cfc18b53b953f6252d69a39021e7e9974ef96f2868280f72ca255bd1a433f5ff85dda524d07048d19928b191c88c208649f2c0ac64114bde752a7ca8b38e3d0a6ab31fa11991c144ade2ff92742a0ab6f4fe45307c31f432377551bdaa2ecbe44520c294ad16fbaa6d0ea638321a128f0", + "66e39d0cba9338e1937e89109d2a34676e5a7ada85cad7d75a90cec560a29d8773250e629bee5e409885986156c7e797d41c6888e13f2b89994eb90b7349b4137eebe6a073308e249c9f4a669711e62789a94394b058905ec74542645115ec606510e4a38a6202300afd8832853196246098f1ed5b74c4b92652ca72eeef8a5c36e27b9996ce868b07fb1217850d1f4158b10d877c2ee971daf6759515631ca8ad0a82aa078333cc7e43f73b36b485e530ff6ac7fe3035f08292c0f73cbede6c2357f5d9f1aa932019eb359292aa9452633ac68079c7a6d53a6cf08c4b43fc81517579fd7e07cabb83d30b" + }, + { /* i=3661 cDividendBits=2544 cDivisorBits=1107 */ + "8fa946f0396bf72db2d068cbfcbe147da1ce34d9445e26ec016be13be367cbbd158556d673d02c4b72e4917dfbb57b368d2269222664511ee51796aad10277fc2cbd1833b56cf636d6e8cf9b04db21833dce24d17bce92a5bce6a69b046b93b249363a33f4ded0eb3dfe1726dac09abb138a9624f086f2b80305e4c299fa156e04dc79388005b92ae4713c30875b5d4e361b073f0004f79d1922c10a01db17d165f5a0e9f54b84d4cc6a1f383fa4dade4b35cf13521d77ed30daaf4de6cfdd6ffbab04a8c45a253d7ee92cd1b593bd2a882828027648cb4a9a78772f0886263d342331f0fdcb16c77d375d5f85cb3ba6d166a6f0e64549b5f7b04cb94c0ebbec9a7cf80ec0606bb5d340550e4d11ea8b6d7d3b5f0a53aa22d8c56d6ab90eda796016012b12ce605b11672cc197a62363b932325963ee5f15691ed8020018", + "0371addc2d4173072223f22f48ab9104d388371bf81775e16599609a7de8c7be5ae5497f0570ed3337eaa7e1f26f30fca71ac1e1f8d8ccd6cd752a1baa4cc5d9fc9e99a97a8639ef44180bb935ce2bb71f34474d0e59ea8e2515711ed9b0c3dff08bb0056bdc564deabd5a7e872109b0d33b7619bfc532777923315e3e3673dbab4da49247b2c73ae843da", + "29b677f003e5d298807e415e2a99dfabc821cf8c0a188f20b55813cd000ea4bc930835ec18467a789f4bc8129982c2a39e47832447baa0af3c2591f1041fc062c6392d30c957f4ac491d39633cf6c01f65edecdc86a543c09d82d8a0fb72e5a92957b0695ad266434b1bd86562177c22a0823c80492f87a38976f2206743df166e232957664e501de0bdf56fdc82c299a7c965194e3565f6ff0b1e84bd2b419b3c1f0a52045cde1c1891920e8b9b905e914f7ea3", + "029fd98d81e316c05f9266dc3068125f8fa42708e77c4b4bce7b56d79dd63d7c8a12d830882ce4171f051e527174036b4afbada7be28d97df3e55751f54823ad9cce2d654165fecc1d43e03a451a10f8e7aabcc4b8e942e6d89ad1239adf9336add2d420629f99c581666168eba3b6b111b908a9162c4e476055c73852a005d30bac1433263f1e9a73804a" + }, + { /* i=3662 cDividendBits=1474 cDivisorBits=457 */ + "0151be7f9b00ab757aa918386f3cb3f678acb472492758b651d8fea272faabf9146321cdf74ec6553958cd42b7e726381221c7bf14513431b50edab3e36611e28fb083370b5794af747ee00be2f6a5c4afd7832701e703f25d17c618188ed3778f1f509e26202c5bb5bdf819bbc2a56f9e023784e0a9526f7b5a111c5c5491febe82c26ceb3828c649f1c305321bebab59bcfc796164340dbf32d351484d7851e346d6955efdd47e5aca9a51c7e80a24eeafeee3a8e9d33e33", + "d36dbffbe79f061e6b6b5c6e045da5130a5a99c292da6e9e2f06d3f9ad959ef49b1eb7db876066170e14da83e7bd0723b28bc325ca99e9e25d", + "0198f1a8ae1455784f9f4b2093322b1847f9c29639e8ba5e0d91983d7ee203d7af70f86de01f29d7e7e2e6f5802f7cc732e0798c9aaf3b578831364d8761c7c4bdda4b77ef8f06f244cb5a8ac997007ca3e11eb37026a03ae73a8187b614ff6f628d7df3d43fc8a026625506eef1d5aeb5658f3f07617c3e5047feadaae93236", + "ca50c87da85b7c20ab273fd84327b01128e2b4b3f9f3702cc47a511e4b6b828134e4c5421180ffda436ea0c532d70ebe823e56b3d2fba25495" + }, + { /* i=3663 cDividendBits=2487 cDivisorBits=2330 */ + "01b7f493cd69ad32595c55f5faa2fc7f5d3b5d49cc6165c737d94097f4a05ae9254c78fcdb7a1a8c369b03c5fe62b95c12ff9866247614b7d816b9ea50aac0423613d76ce8b8368d3d6cbe085639dac6c6868ee23b3eb9100786a27b3cf4b28fc8677e007c46242eec9b2add5fa2c144673655d3e59416a2355d7ecc8e1227cb41f37b0f480e3738b88956563080a41af4c850692f2aef60ba1ac26dd3de4a0efab89d2107daef2e43e05e52b844fa7cf9e566f05e51435ecc00bda8525d6cb2d8bdb1c782f7f502eba97734c1a2460f3c3b15ddaff22895ddf6beba3f4918e0526a6a71ebea659edc4841aaa3463b6863209c1bcca5b59866a044590635e8cadb2c7c24bd039ccf9265ee7952c95b3ade3c487aa852f5470438a329c04f69249ec662e8bced2281208c5389e48a5cf960e0cfa4f1cf8c", + "01e6041b2684128e192d947fbd5ed8d5cf7b1f7bd350d6703efc9deeb7a5b61db3e49dc40bb3ee3dc45bcd47797d654ac04e28d9d689b03484ec6f3935422763e9cf21ba6c6f47bfad9a2b38a5b37941a2121e6dc6eee2d2fcb9d83fbee13c89aebb4630412aee8e5087f24f605b3eb779994aa4df6e4588b2b1dffbe708a848d94df5601d16e4f7653c4b591c2baaf711e458b981c974f205b7a329c27e569a3ec5649bb66f7929ae64724481ec0f92bb87c201b884a9eb5d3aadd564062b6a6d466506040c48140c3fb69aff2067dc9a3e85414a3d0f42482c4b00a71561b2f24e75f3fc3ca7843479ab0be6ab4fa0b3a217d89007cc3f5ba351fc5ce1484f216c028e8e5f929db8eba0a1263cff944cefb55bc328153e5eaec7d2e55360264b0de0da", + "e7bd07847941d127dc4364039907191658090b", + "0154ed53e3d8347b7f5b8d8b8d59131eb01097782e1fe9781a7b4e3579258321151d1de3c5df5172f1606f21c67c3d80bf445c88396851bb1d2647bee5263b92f9f227c068975b874fd0ccd4fd0191649940aa68e070e494abeb03171c992ca962280d82a3798d42f1d1f2d36cfba72f93a95d80b0061f5f1d59345a0697c6f970c85307c4c60a61fb71b28fa46691958b0e49172691c1ec870819362c7898b114f5fd9fc492ff8dcc3e8643825a00b2bd5d62de5090d025183cdd929c9e29c970056da04257bea57b12a24546e60433c6c5b77f085bc481c8672d137f1658c5e7d543aa44288e94661150792a3c60196a283888b57a7f803a5fe75c14745fb1eecffbb783cb47f1b71ab9b84982e5aa02befcc4c748717b8801337033027d24e7817c2e" + }, + { /* i=3664 cDividendBits=3678 cDivisorBits=3616 */ + "04b3d9c2543a3c61a54b5e1eec1e396a269648449609fc582a282766129abd4194823ffc9f87d6ad28bfb8dc79d554f36607c9b5dd9ad9cd4f8d2d28275e64f877620a7cff96437840607f2cf7893abe4c1c3de1e3b3bc06508df68105c4b3ca9fbd0e3f7c3f72aa785b11bfb8c8ae4b9846f8202ed6d8abb1f8f09424bc45e8114c714a0da5ad1d9b141c43132ead974d775b146260c5d440d0ea32fbf5c62626873f27ba81e759e2d8eb38e627f6a28d2ab735644d364d2b5e11f528f2cbc0f9e6527f0ea3f492f0097eca65b21a19a3d4d1fb2ff14ec027c6012d40205c86dc8f2ab64e43c5ce3960eb7c8ce3b69e4a5ea64a1c441f94911e5dbe40e47504e0ca73e97a4a7a4ee4264cc61557a07f2186eaf9fa189b75e54556bb5de240b2b2938d250800bf33542b88b220ab65f10886058f8e02b141f25c93b609ecdf4e4ee8f7d51890cd0bd4afe04eb5edce32baeaf5c9f8ed2e77e98127488850042d9b7b8f7194e00d3a616e329d5d2937bf23ee80038bcf99ba400e6f4ea6b9df68305e7c07a26e33dec3e996989371a45bccebb8ce711795bcf9119d0ec112bfa17aa452a38a51594ef948eecc627444feede93be6076ba8856d8a2a1ef5ee7758f446ed9ba6460a9a1a98a213", + "62eacaa2db69b3b32d3691f5f4921388364dda9b2c12392af647f32d4268998638cac13873ac83c03c2528e050eba09d0854fd75933c3c4157c8159bd0a06bdb36bcd5159a415e09a6bd40c5aaf7d94ff264065d923cf59e3116c92965ce1aeccb351ef86f90b00f44ccd15ad91c16d08801822712c82d1ca2bef167a7a184ad76afc3611cb73a5ca5f8b804caf2eeb230796de292958f8e528216eecac310f71726b96e51a084bbdafa8ea4ef041aaa65dfda719de3a895e391a730f6fb71966e8003905eb32aa24e707ca88298b10d2fcd8519e7e2826508a2c66379e9ed2ffd8deaf1d2f9cdd860bdaa0c61b69a44af5a39e4212c76d8b732f5fed2df51e275709c0de00f600969b347847cca530d71d21b821ba48cece24ee9ac178a330d4ecc3cd7a12b8f205f862ff29dab4dffc1bee9ed2d88dceef17ef88c42df51e61fa097c05f2415399f67ca7d0e91a7b6ca242b8ef9258977914f384ec4c99ee4665f8994d0ed855de9f837993c25f6e36baa15ef644fe6843821f44aa6a277b392d75f9128d7cb1f7ab10351ec5ae35c5ee9a127cc2751f606dad83360688858ab8fc27db0e6aa127d0ece301dbba98922c197c4c8f0c468d0b2f58a0bd104d63233a777", + "0c2b983c2ca0274c", + "1a89718c875fc4d432224ad8290e7d201e354a9eb0570169fd85f561274a262e432ff316ed9c8cbd924f2402128ba94fcfee99c311b4280a196c710fc87a705e213fa728301538670738a4242897e23dea4722a6db709980e15d727a523cf4dca62ef1a9bce5174c55f3609ee23dccaed9e857860836219b5ce8306b65cf9bc81f90a5d886974e1b0cd9d1c9c68faec6cd29592edfd63029aff06ab00211e6e3b7df48142ee84fe0f2b21f6b0c5c57393f2f8a5c47ad1e230150251f4ede644d3ebca6d86f47ff40b75048f66dc36450898d0dbb6204e145da4862fd7ed7634c7067ad10966d660dd0793400f91814ee13415c16a4f60e5ccb2cc47380e9be9cbc99ebf92382ef3c02d45197bdaf98ee95ff66bb165df17f1850d241bb91cee189b14d36233867c2cf253607c482f4512145d87b34c2e3930216f68d360399d31419066cf05445d8e8b22a9a591d482037a2f08c231115bc7092abf21398d96411975300ebac86f402ed945f627c42d7a6ec78ed0d3f310ecb94146f95f8f41d63734861f5600ea85fc6e2cb8dbb012625aba7da6028c4606da9ee056907b05c21014c6643a5925d1c9cc83f463cfd5afbfb72ccf8adb2add13d86d25174d068365fc9bf" + }, + { /* i=3665 cDividendBits=3448 cDivisorBits=3034 */ + "5fcae575fb53eed0dc1c3ad238362f4f836a51a7766476d0fc3b844a770d2584583b5b40059e18c361fe5049b65eecf46d54b3bacf0264833d5aa339f07904e579824bb08adf3efe5c3ec30a28df23e1f28702a2e3c9bd1b8e5ae85cebcbc0e59962b25c146a1d974d5519fd4d941aade6eb2677b1b4646845166c670f7b81c82c302cc585d6b617be3dfa0b7673553b385a43c251cc503596b28db1a890235f91fb5749241d94d1fccde8bd8efc9ef54f591cbaf31c73b4c1473a1cc38382245df41b4c613df78834d15e7277046ee908e38c09d60d1dae5e476c084db5be85def14079811762151dfb44fa0fcbd6675915b6c64e697cd286c260a182f2bfd9397b5c7d4ee381ee1f8b7f5e6db09ad1a3d796fb660318ad6888f39e421c4b9454ff8973853cf2433c7d2bcc4632b0a2f38e7f00c5b9b679549b042f2fd414f68fadf0bc63cbdb44cb6a2a622b9acb128dfa99049f1159ce1a87c6a4cd1c9e8c385f008906383a70783cc32f9075b58d4bd23a351476235a4a88424adc382fc93bb75329c421e22a946c5fedf8c9b16f02917052ba7fdb395779272726d19f7a6f4a7b886f2a1305c27477baa1bf9f", + "0145b3526f54153682ebe35cfdbdd179523a323bed870013d4b40f268736c24634bedd60e4aa3c24ffd0347bd8c7ea956910699346bcb9159215c01e58ca5c504e73167bca248b5d2f2251ba1c82001b509733fe6d8896f2f14f8ba46c40718b21aa6da7f13aa5c2a27b4fe666cb91ec0e96463480dda1ae00279c3efdb5fb0f92e0e3ef72e7c68db04ffa24ab4a636b85bef5b475177d0f76913ee9efb505e94360167a8e90550a4af2ab48c87d121095477bdc79032c80a28fac213605bc81588fe67a4345b83f64c465e1597a7e74993351c0fb623097f2e868ef02f55709d4165ad6463d6c5271d6f2fb63916dd8c5dd70fbc890dea8fea78ffc3851adac7b2686140e477216fb252dfa4e9ac024bd21c5ce73a5fb803e1c6d953dbe184383e8bfcb755c7e7aec9d747c025425090ab8aae1125490fc9868f8e50a1825c0c9f1fbb43f4d10f994064dcccad83c9cf6ed4d537279a5db61473ea3d9f5bfacd798323c04e05674879b0d1916b2833756a9e1e5142a228020137d2d", + "4b4af4085915863064ec80c7957925e216bf62ac4bb67f55da812aa9fa58aeae2225def045d872876be5b9632b5d6b3ff809cbce", + "85f35e8e2e4fa0b03cdf1a8712f633e914bc773897a11ba66ec6617bf3c880d245339923399e13d63054ae34839e8c1f4b64df1233ab9f546d4657498a599434899fc9956c44ce0aa8c159713d06130bf84ae1a7dea8482ee9583fd1c4573a2ab45b49d414d40f0c8d6f54cb1ac75e6cc25478e2a782a1ab3c212470f790e00404991ecdf894cff3a914d44eeb7cd22ef83581ee973eb36a9b15d39de7e1e840491bee49b404434b1bc354e5024b3ccbddeea4e63fc376c147cc77ed67403592a4bdd2da8a3ff81ffbfccc563a70344ed592255ce453498f2fc259deda8fc32df84b68d5cc7b9be490ca03c58d4c891b16e7c3516b7169b443e31bc6a6f1d3705fce42f270f742eceabaee494eb3f641ac37bcb851bf5d47610a1b2ec7cd6523ddefb3cbe5eb512b922de6b3b32a915a1a185a942f4fe4f49af5cfb93a691e962ada91f5981252302d0af708b4a5ac3b371408c78f4f385a60ad423c36659ec5ae4814e0c37927f9beb80d8fc5a34e530b5065fa7478e8781b5669" + }, + { /* i=3666 cDividendBits=2739 cDivisorBits=1253 */ + "0182b33c6955828cbf77d5a45f817af63b59c1966bfb23343de80ca174d0639febe56dc5c84df662d986f84daa8b141f6d3461c1bf85a969df0a12fda9c20ffcb99699e4d6f9ad6655854fe946dc3008dbcc47a3cfd54143a6c0d2dcd69693fa8b0a89f06a3472a190adb29b11ad9f6a48bc6cebec18280b85e005ac3ef7bc3a6a03cb7aadd527f54afc7cf386042e5ce02ab7ee11512cc00817389f5222799d001f3cc77a8af4e78e5a1a752ff25dd5ca281f72b6eba8b92795d8e1887895d26df1ff1c728d7a3718dd7a2be1bbea325236977a5d9664b0f70fef23de23e0fbb34dcfcb7eb77302fbc09c83409e82c99774f94443d5db0bdb17efed3b8c6829701b3d15611a45dcae5c3ef738990da066a74b0320565f2e196dab0d12fdb87c709364af4469420d86c4f05d79e036746e2bb3ae7d4a56eb89e8923b6c814a1764607cb758466a7dcda59392ea8af26be73284b7e00f0b", + "1c25724f69195579a71416b93d5f76a8f9ba2d675305682a118f9350a64e262ad55a99cd2a52f142e8da3962312194663d0aae4158f23bcf8cc3b5e4b4753b5b4698aeadfa276853bbb888b00c3f314355a17d0171778e3bc505273ba46fa0478cfe97ae1d2f94c28effaa5a16b688f102230f69817d1b6a293acc1eb79762b4271182109f3e80b919e8059c062ae709944759c8e188efe7db02c4b44a", + "0dbd2b85aa36ea8d48baed9b87c449837e633eb6021aff94b301fdf8fc0ffcb0d8b4de2c6da390e8e488e60bdd6024b7c56ea5117edff77a2720a924d0718fbbef610328a4ce67ae5b0503e1215ff71cb7896e10cd64bc7d05a2c66f9298e7a25d884de333ebf77914f3600935c918c870e38ee3a5a0a97cd648a1852c389260447c084372ad5d1c9dd11e97a0e7ef9b0e6161fc6beca79fe48e254a2181d91e34a2d804d801ebe716b33df584a9f60c03da3216f28753af9244", + "0d78816abb6a4613a45fdc886f2539c7561953a0d6f1745f87740f160e68ea3105bdb4caaf2879f37cbd475974bd6c5018b073bae5550ded193490e9619289d0a651e243e287c3d3a912213730b449e0c854b31823313e6c94d387e379beb2584021f13efacd101e5708a24c92b83db623b7efafdef17a2c727906866fe183cbba2107cb2272c44cfad5369a01b8878fdb0ccad0875ed102d29037f763" + }, + { /* i=3667 cDividendBits=2913 cDivisorBits=17 */ + "7a9108c3b69021abe84e0a50d675306f2b1294112ae345b18fd25ae21470d443ea60155a4cd17422e380ab4f14fe81c70bfbbae06b663a66b17d5baa29c5bb3a322dcfeff0c0bcf8b597a25374e69ef0d3e23e6291334600a9d843f95388a45fa7e8328cdbe51c8abc4e2a299f2f69653319e6994c415c8bb24244debf4ecbe5a2fa19a6ef4d616d20f9f303c6064d0adef430a5109c4372737a22b6fbcde69dfba63c31d16a13bb7e181d4bf32479fd1c7168c630aec83b8afe5a395c4013e39ab3e6715ba0a37ce4662e63153dd786973be403ccfe7205d8dfb75d22e82603a9898515686b4f7320f6b3b7e5b7bd254866fe03b763c26d816053748e6a879601b0997ca7e5e18f8e876d3c540338f58f932176a55917a9245844303a8c64f9efc4add1c6cff60acbc1484551e8b574e7e07c9984451623b19f4804efb2d19011a0699759c3dd29e3ad75a0ec123bacec02382048df8e53df41f08027e752c8b635682f4a599db4dd842b68", + "83de", + "edf1b7fc68e4f866972320eef4bd77765ea140f014e4f0ada0bd7c376c38a27f064b7ae9f04495cf193a38528b8da7ef39b520d6d91572e8a3a8e8eadb150008255ab6461b4684885c83b9d599bc324c9f2596107aefb5fdbd2d5d16abb91d02ed2df5a1e78f4119f3e20bfe7a2614459bd29c4209bf5540093d154cc0f91168a0b91b9c5193cfa06563b6cdad447c63ab0983b380dfc4336951b1947f14e78d1042b477d40837e6a06f5d42973f2784937e0e93a3793310251da33850ee356250fd6509439a68b7dacc1a2bc019e6b8b1f75320a95ee9f243f9af90650308911112fb5abef98cc95c85cc957767f2544ccc0226cabf648d4dda80ebfba6b1e422e35c7a0fba1f92e8ce3f473d0a55fa24744f57a0f1644e79bb05df0bf83630be87b9e1dea9c314c2eee0f6afd955f4fcecc2065f416e36f244c42c968954f31afc1d3c93069377393c3d57681b447463d0701d6e1f61ee4f5641daf645e118734ef98c7a321fbc46d4", + "4390" + }, + { /* i=3668 cDividendBits=2907 cDivisorBits=2409 */ + "06c8fb1af70bf3ddcf04f05212a17bb01557e1d6a99029b326b56b750ae3fdf709cd37471934ce32da924bed21377fdbf42340326dd7ec30a06b4c8838c2af9ec3bb6371f6f196425dd94b7e1373583c778dfc1cca2150f1951cfe7f5fe965ec5bae63c9c9e8a8a997d239782a14f2505842beca7b97d49517ab0e28fc51beb9b8641ff9f9d0de27f54d3ba4f3714cdc62f454ef91953a84c90da253a0fa8059c48fa17bbdfff868bc8999b1670311e3cfec1b40f6411b9e13701d0123a481f2eb5130191b77e4d01c334809f742b2f50e905de4483202789e47e5c4845428487992057aec28008c78e0ce7cbf0b4312444f3c3f1d290bc87ebfb01903e7d5a7f60c189f5439e4eb99abf81e1cb552ecb93a9a3bb052f4557b28bcc4f6b9f6644476af211c14dd8e6359d40e3fd921085f009888b9564ad75f54ca4ebf4a9f8db94def465e0843e6defc19e3478a0b481de7aa24da652465a34b1d10f5237998a5748a5662a9a9ccd428fb81", + "454bc3e18ab2e2cfb0ea8bf4b9911fdfbbdfb27f032085bcfc9a9061bd8c1f63ed7afb0ad9b0d81210871752a01c2963fd10b12af0c8950c525453746ba24ab98e5e1bbf399045b0a22ddb7a750415364412ac66e8ff180f8732bce361adb1f3449b76dce517c7dc36143f8bb4158514407b7a1e3c065a6e1c9a586997605d14c4040d9e07cf3a9832cdaaad250e5cdbdbcb04fd2703022d1e0c7fffa6bf597cc5cd54e15e95cd234621bbe424868e506df8681b5355abad5462ffc6685e0ad516817b3d1138701e0f640e1708f6e31b9c67d7c24153f5192563fae5fce0638dca42c592a4c62e4ef6595fd9126c9ac79b0b65ecd8f246d76732fb0dad29abbc3b9c2391694d167392eed52b32cc405860bc53ad52bdbf22f8836cd0b0c41206157254e8e968338f392c280d92", + "1910ed53531d54a8738831260b34475da76e416992ca015dabe1c0974fa33fe59a76b8ae2b2af64352ee450c4ef6ae7a331f35ed5743922fc4fb40e8e5e202", + "430b996935414ff5e92f40ce2f18c69a39393ab3b9f0ad23f789cd2c62962542dc31a7921911999dfee7586fe9eb44120db70f80062b7e701ff908894fbfe592615434f214936a1734104690c3f8992cfaea74e14c4cd2cc850181abc220709acf79d92cde28c54123cad84420035fd6cb40fcecbea2098fa883d30ba3fa5b6a110eafcd2a76e9f7c5f61d395e18227d0b9e6c1eb787af5f243db86835c9bcfe368790895b03a32ba55155e73a9a9b5e189aa534390687c4a187d0b579f92ebd657fd67f68b083a3bfaaa5d0293d31c03d194a6500512fc113fdb065f4d77e4e4e0639acee68ef0bfdc5a0ce7dd2b2d06d2a848b6123c9aee8be73875979aeae78b432f361a642bd12cd3dbd90620d48a1b69e7948ed2f0508a624fd5bd42fba9cb9bec1989e8fbbbeac43fc5d" + }, + { /* i=3669 cDividendBits=3443 cDivisorBits=22 */ + "059ff90348d90980be53af4306abf5e95ec598ee9f697e5b2f1c2dc6c044567093121b5240f03f5160d630ac1a031f56a6e0d2ddf2f6e47ade448e306a0b85f388d5a82411ad2a05eab0ccce073c5c3f8411a91d73e7413dcc825f0df3e4f1fa4fd036cd0a01a7c9b664d262ed2f4708fe0ea31e975819fc57fdf7013892759d65a965de2c3474969488dd4bab31fe11eaa1d409e158dd3e8a1822bd3c0e8b84982a95bb5828a4629a9c0b17ad48dc9080601633e3cd7650f715bcec5459550c977d7675f9af787a2d64d0bf24b7c622b30c467928d716e58a22eb2e428f70fa81d2a4cdc2508980cb8d6d05a50c8cd9d7bee1b5ef2a543c6daccbf11ca66cbc85821e7d30c0bd4fe555a348991b9026097435777b1cda54888e9a49c4324a83004090e2c3b9915670fe7b9c762b445b2227708d7a0bc413eb22b6ca16e778575e4004be80272116c1c8207b94d5d7d35d0e09ff7a98ea235c0d5cbb50b4047988bfb38783cfda80b5de449276900db86d5175fcdd597b1562b01a60d2f5b74343103a958156e1bc643206514b1a552a2616a7b047c4cc327aa94e24b43741d6adc1df350f1bb6428907a12e854154", + "0ca2b3", + "71f64a19412d82c3ac28fec317142aece74c678e3fb9b0de502ab94d28018a7d02bf1f1447f5f26abb9267ea19d718a36f7fc146acc32e42910520eaa1201510793409dea8035e2a19c15e80688909511a46e7ecfb22cd377de86979997b9e8ba2014eda26e06261558d57f405ac04918ffa92ca8b5b8d0216eab469792b5ed68c6106acecf7348a464eb1d78999cb63b1b8a8e808c1b626ecc208ac3fcf77baee057c6621071177a3f80a3b101d276e2c7dca7bbe36cd8c38197718b4175ca2e2fe657d495eb02050eaf4fc500ebc6df99e3bce5e7fd3d78cff7e261a8096ec8cd7d018ffc45debe25ab248b2e07a2210dda375c73dbce4d10b107ea9dd2ad0b549e9b7acd41a909ab7e4edcbdb7a0787c0cb92304210a676e9c47f459abe4849c71bbfab57e89120d9f9abd26a17591e90b78361e968c8a8530b8f1af244130cb881f0455a7258a4fa8c4d0028960147a6769637e06bc52933d7cadeaff3b0f2c74de7a55a8c759a5ce76bdfac6f0c7b26762e9a1d3c3c48fb0a649631e3b0e8b0ac67eb471a414b126e246b9103f031d8cda153321c0ea5d7cd3e83216abb2455df267a34c8b7b3f14e1d", + "01490d" + }, + { /* i=3670 cDividendBits=949 cDivisorBits=924 */ + "02d1bd3706395ffd67cbb00e467076700e5faec715f1037f9387e63ce2a2560e5f583422c59f9c16127df8cf92d641c5d6ab212dd8bc0c0939ed5f531b36fd4bdcd2f702a316f352abe5c91f66d97836ac0607c86ea478bcaceabaef287f334cbbc4124f9025111bff6bd3a78d90a5d7e8e4b33bfb6446", + "058dd12a04f9a4440e096e4225c0b689548253706f9aa1c2a0c199aa992c5c3da0fc3b24b5ee062fba41c6f98e48bea7c9aef97bb07e63c5c4af9c43dac9dd90064943869d689739f2e1435599035a515331e54ff9abbeb419c72f49fcdb7db9633b4189103b7c1929f711cd26f63ff8793ce144", + "81f337", + "01d6e4d42e8dd4fd8741f04e6b2f3749de3a0d003abc06ef7f767fef8f3ae80d52f16516f20300c617d181ed14afcf780b1cca40deb5a7b1a1dafc03079b582316f77be9057403472ff50725a53d8071febea6c0fa0100327f31b0af46d1c730b88ec83c9fbdba1625325f807e13338ee2cf72aa" + }, + { /* i=3671 cDividendBits=554 cDivisorBits=501 */ + "01d9d80f049169544ac81ea34e138249bbf81addbb46e925bcba1d6124a752857bb6deb111a4908b3437ec5e7a1ef56f3a00555752aaba827fb1cf6dbbe6d57a72b9f24133d3", + "0c4ae69ab1db066e1112f183790169e96d66475e53b76ded45bffe765ce6fe823c179e06788dac6065db21a7679d8eb2dcc33d419e16987de2259a4cfb500c", + "268c120e1a34e4", + "0c0cc1bba9e46140832a7513110bccdc03c1a121bf4e8f0072f0efad761693ea484836d97343647f00e4441964ce7cfc513162844d073dcb51dceb8cf37923" + }, + { /* i=3672 cDividendBits=2509 cDivisorBits=2496 */ + "0dbe886e4553800a77cfa61297f63bb9cf2d46f0732a2253aaed65149f6dfc5ac976e18d356a9eba46394f84e70def35fc9fc1ed33a16fba6d592271a69dfe06cc4ba9a93bdb8a25b948fe3f59b1960e366ff51f1ff34f49bf91124577e8bcd9d91c2b401d28b58a94c7d0914026787400d58c2a45edbc128e818ca2592d3658edce8a2fa3308e33025161a950e7b7124c54329152598b08d60c12051f8568cd36229179708baa5904882b36de620917125948af683e9537178a41148fe971d18fe0f9600f62bfb07cf17ce0eb2f0a355bf730093888809ac5f017154d4fc6dc9f8f0c468875cb098d12f1702602c544b31955942e39cf4aa1c364c56c3cd45e08ddc894ae14c2e05293c0227a019ef092f1ff969f283c51383f7063b4b751f7b75811065eb795ec2afba5670ca8ac9a9306ab873f9620001f23", + "11481e27d2f91fd2b20b62428cacdf96ddf87fffa5dc644c0945048160f5c0406226fce0ea8a683da3fcdc954678ad21ebfe034c5adf89ecc842ff13aeb00e42e163c7dc861020a2d3e1781d12eae5e9519c37585935e2741837c1c3341458fe15a5f83522e066fcdd327907f3f4ad726f4d54b8a5c2c0b39e0effbde0b63d1308ca257c77c88ca60b90e5235e98e71f0317389a83a616c5120e20ad9b47da76c9110950746b1536a6f2b1182bf5589cdb0ace8e3b5ead7c6b6e25fbdde436caf6c99e24f77c9628e6c34c9c71d58233a5d3202d8c841957aa2209f7c5fbd64476967a73c0d8777c8d23a6bf231de02978ed6c6a7fd4b3f2d315a7f5fb36310332cff739048c7418906632fa7bb132ee3174c0bca22be9e32ad750496fc0a4de9dfa22289092e1748de458feeef428a8e15e349927a1e6d5", + "cb99", + "046aab3adcea5fb4365a18a3131b8bfe8fec3ada3e136e22204256382a07d5274db9b902b1591858ca7ab2f51fcc9d374a7faeefddc23c0852229854fb7f3d98d58aeac0a0a119f4923f8251035aca474edefd68438358fa624cdff27a1f2e169f3ca2beebc28440976d9bf2a5ae992eb4c438213bdef4d230dfef8167005575fda588d0efcf47e8925d52c0ee6a9357efcdf79c28b6f4f313a9eda1a09f73b3e3e813252c87007bf1bcdc143630bae8cd6f2c29060fbefdb421236ddcf9dee19a793b0b0b284f82b468136ab35b969aaa56dee2c58f1ca26ad5de3bc071469ad93d8f5be2ea5fb751e7ecee17a8d76bcab5ef35be79884110a3fc05b81d34a9813fb665aadf756468a162382ea6415edbf9d9d27d9b4c82190a7d35c518a7064d71c9d4b55bffcec55bb4d040705b6246845da00e3242d6" + }, + { /* i=3673 cDividendBits=2566 cDivisorBits=443 */ + "14f319557dca63ae44d43af1f031f30f6ae3448338fb5be487da2efd36fdb35a936f72fc49c9d24d9ed3ee9b2bed0fa4d5f721bb765d984838f61b44118e6d03b9cd9a8c46ce84beb92a5ddc276913da4c9bb8677a31dd468f91070f6c269053c2be27e48aa6cce7de1e5f243d1484f10ef5e84803b8fbb4af8906f48abbb94362af5e5f8f6391067918ef1a3961fb4b126c4ce1b2570290c478221ed1d0200ba1f56dbdb43e38f9a3d3af31a44c45d50bf8222e3b4cbfc57942fd1bd34598202784281cad79820605930656d3d931a218d74b8adcbe7a367e789a9968c681f056eda44d070a114655fe16d12728e463efa018073a50075f8b8aed5b0a168a8c092a0f30600d0373ee68070bc2556e0862dd6b896b7f5a8f4bbb19cf67fe4d377dbb341deb980a70b20ed85b237f6e862386023652fa4689724f07dd261cffee67", + "02fe17f513558f9f108d293555f3eb2ffd6a45596f7d8c3e66b50f6df1707803f90c478e124ff20ecf03a2b34e230e7fa48bdc883c981b72", + "070025f8c8c5ab33f3d2382164ff5b1c3f47ca0561049b3272b1013c2eda8fbbc87a457783b92990a6b00476a87ea22a9a658e66493d5b8299d85b28cdb50f8747d7c1af833f144120bc42aa52f00c482a3dea7e74a83ae08dd444bbfd50671a02b99916691e2f3637dfd87d4cd98e74f45cb273e7ee32759335b983593e78838633f98109318b0fddcc17b9b285be718539f6407786403c3e810dadaf6584b917cb29e046a6407171d6ba978a3a9b2d96f977afdccc69db4b7365b8605f1bb7691fd6c6d198fc93283dd1b9dc552aed1c41438847ad42c73c7c2baf9d334f5a1a0e7e75bbab51460277704375af81d2c03aeb1a0cddf565a5c861d02ff9df0a770024e0573e70eac537", + "02209f7c90c11eb6f7cbf9a4c292d8aba1100f8d4d9d57bf7e6e18bca1f5fd4845bcdb7c7916c6b6f3782929872a7d88bb52529914ff4ee9" + }, + { /* i=3674 cDividendBits=888 cDivisorBits=303 */ + "b040b1f0382cdaa1fe790d262accfbc146e133285e73778103bafead75aac9852be856df35495114c0eee08e5454f6364e79131eba1e48c6a57faa199e8b308edc56e30b7c4e1f2b346b4f85382e7538bd49f4a6a9887c0c4589cf7d29885056897d4acb2dfa48c68dc671a0a6c3aa", + "79d04a0a328df6cbaece15bf5a36c101170968e54f2adbeeaba5fa584613e3ae28a9087ed7be", + "01726858eaf62567a1e45148688aff2c416cdfa5d48d024336ef3d15f5f5f25e6dbd4fc942e4648d348411fd2e456095e024690dd16503f3b5f4f02a148bccd794dd024c27d0a79eb5c6", + "410fc677ad83ab76efab78dc036be5b0b76415884091554357685ad030e96be7974d46be90b6" + }, + { /* i=3675 cDividendBits=4086 cDivisorBits=2829 */ + "0b3e3584964d934478d2df3883f7169f1a334a8ff78b3f2e059b67df7a90412eae2aaee62d4ee0ea7ebd5824a54f6c56996b4103e0997e7969139803c1bd935d3552d411e301d6eac060142758f3b30fa89bfdf4e2be4df80b9d93a224e99f66114015152b580c9616c7f7726aa9e5829a48f2f2703f034bfe72315422e72803f6b0199e6fea6e377d906cc40706c38a1012ecadc0dbb35c06839b94851b5cf312bfc0279567c4c183c2a47a6345b18b3b759bdfdf94efbb8f5781a948c4f5394d4a5896628c8e37b55c170eda029a276c2ffabde3b414cfbd001cb60037d85bb03cd930152d208b05b02cf6d66d9396e3366956d1d157487fcd39066f2e39fe53b6efe932e48c65574256c4e682668e2fdd42f64fb16a27655ec88282a85523dc74b3122ea4bb8ab7d7e6961fe4d7bb2e7efcd764e3ce4df3dbfeefd6a09bb53560c7c64bfa756b13a8abc9c29b2139869715502db4c1bf9c585d6513745cb82ba0f63127beacc8075053cb39f7226f8514f1ae4cc495d592065ac29afc208f5a8c7c0ca3bb4b348449781a589967af76dcf32d0f370561e42ac0ca3fc21547691b31e2347ee7b1071072c9ac81f08b077ad1aa4c421b1e0df07f9ef1d2eaa237efe778ed3764000effb9403cde54df9c29a2b251f209ac137f4bbff1060d11d1ecb5956d8d93fc22095f40b7568fd2d81cd58a8cc93111e528a30c6df5b1", + "17efe8e629bd2455e972406397fc8c06a4defb6d1a6a0b924e2978206db3ca1f5bb8dcce77658defba39fff448015c3cd6e2ad9222bde01a4b45a3c32a580c37998dbc414608c8a64435cbf9dbdfe694e7ca6ad80295c7f4dbc56d37a0e34384f221b0bd156efbf8ba981ca572bef8cd6e2db3111a30890b6bc23ea15329385f3d3295d8af758a6068245d1b5cfe2881ae314022ca3e71427ec5dc29fe6dca870a1152583c8026711e83772aa393d37aecea9006dfed784d493edebcef2ef857d2a528415626ed9704801dbc7b3a105a25eb5994ab915ccfc5be713d7b909e9281315ea8eabc45d8127130e3266a0b06c730a092e79bcae597a7fce8e61f8a39e254bde5f36a7d071375d3deaacef6903e6fcc5d4cc58dfd0fa5d89376babfd927b9ded7d7f91ec8b2ca267cb92bb7f7f0f1c96e73eeb106bb2da775f456cb9cb3302f77dea4b7796de5034eacaffa26e550405d541beabcf7645e4f01192982382d", + "783d824429b3b37fc880ac34392cc37aa7fa8efdf7bf3e8a42023a077bed62f94d211ef5730da01356fae8c056955a84a62ce1248c1009f8ee63b69b121107a3d65b7a1307a9f767671bc7a3c40664af323ab0df881ad598af314752789b31cf0e9a379d14fb9a6c90397c7da66cecca5a4fc81b9226f8f76a5c6f00cdf30beb8449351e2490a711e779c1a2041ec1bfca16f26129f15537995998c026", + "0ba96bf0dab5bad4d9f4662aa1269e59f942f2a41d2e7c88a8c81ddc94477945efcf8ed3a895f780d8893ec10831acc8745fcf6efca4bd88f89342c103484f21c014ba01e10e671d72d13237f6cf6540cd310b9a7de32eb6eee53a35782b5527832f8a50303051b6208f568d06eca4dcbafb095603f9d6fb124cdd06eceb4f78a0eba730bee0ec1244651c0b7b0d1c328374eb784649bab08cc1d3f86d658e8a2ebf4ebed3094ea724967c7421efba487424369e498dbec6188089e58c84e02d1152a6972723286d017d1b8e6e626d5aa7582219e53dd97d4f5e0b9c80d04dff8c001ea1479886e1c0a908f599ef864624340c8f0d6b9d8c0f227a70a02ee6a3cd5d3e183c0a3b80da800287b1a955772bc6a81546bc487609c86e7a7a4fa9fd931771a8144a3d199d2adfa323311451d6e9ee26340f40720aef341b062da292f41392567b1ffb432eaae9d7bf4fac573518558478b9d702d7fc9e22f707393fdf03" + }, + { /* i=3676 cDividendBits=3292 cDivisorBits=2011 */ + "0511fbfa44c5bb7676aa4f5555b9fb8f29e4b1a9f965ba394dd91b63fd5e70d7307da49ad54013d8ecc5ee8973909f4f7027281449ba09027cf6a14cbefb92372da11218d7cc2aefa17c44d940503dc99e5f2e6d77e009dc2583edaf8173fac325844448a082e4209d64d43413328c7a55c9b81178be83ea61009b66eb9bdfcbab71b886bf495a8bdaf7a463e8adcce209700734920fce101a660d650308532f0e5e5fe74fbc3faf2b311020b827971d54129719a2078366088591d0b367c42d8a4d77ceb02c92cfadf81fcd95eff7af453b7032075c1241918574bac80056c70ed3cc37ad2af70e1c759ed5a381316e2ea97dd970e613d405abdf9283458b6dc09060c655f660b2dfbcb3a283688f4fe4e002a5d0725300139754ea30112e6cbd8a6d7f72595d6d220240de363ed66dd1534fd78a159177c4e9092bc162f8b7ecfef5c3be7052c1ce8c69a56d229eb8543b0a328b83a39d7c8f66ce8439385416823aab276c295c67106197132e2cc808aaadbebcdec9b67dddde512f1fee995fdff92c7d54649bd3581ffe2e3b5aea9a1bd2e37db489bddbd17849", + "0167b9de0722ce19178615f664054495b4ec25efd7204b569e33c70e3f2099acf68f70c602b75351e7bf9a0a728d52c039bf1d38c4c90b53311f00fd00995a47f1b29c694dea26d79c8d50b6d0b729572cb217c86f7d37c0c901f6823751ae7d3dfdaa46ef2916de20955553a325e0974704d62367125ed69cc985563381ca3f7ba74cfa5cd81074bbad25e95a4c3457db37445a09d23685a3d25a7ec118a62aace36483560e865964bb7d8bb2cf7a069cf5a5b9da030f993a1366ac0d2f74701518f99465f1d0b71192f8d6ffffdf256f4262143decb3ab41ae5c452890e8e4cf2c17f6330000881bcfd6b764ea4f8897b1ca93c96a904f17dab42d", + "039bb6c7b321e2efa0d7d709f3edde37fef215c7289ca707065b80cc242ed11f0a9db46a055fc7de492f814a71d9e6b0238d114a1389fb36a2eb5bd8b548eabdb76e5550074a8e2fb0e39400502d69d4b500ac988be488f8e3aa34f9e00614a12a8130bc9e0cce884448e71f34d6326aedd0b28145c3d76ce6c2d6a37a00e391c200dee4c50affce8bf09217d2aed926461bcceb62a8867bd3c7d0183cc3961ccc", + "11f9999b6cd917906f8a30aa11a507d33225891b77e0cd5bdb633259be5f10ba62c0038e926b1ed87b4bbbc96a3a3c9f5526274f6da51a78b75e612d337c745bc0cfcbf2453cd5a0918226f7d19487249483fd097aa05f863a72612746036e147692562b47497d26746db74f70e069ca91c7cc565256ea983e1ffbcfdd3b86f5d7b478a79bbf1a1ea85bef4c93953e83890b44f958c8ad88aaa6ef8be2c0d252bfc74468456d793411f92677c3ea5505cca46e72869c40f300609272c333d13b1d655e302c28da8d4f0c64542f1d1346efacd59d579d03aeeeaa84be6c081e363e38d2628cb11df7bb3ef2ebb9ab1e7d904a1c0fc6e02b1476f86d" + }, + { /* i=3677 cDividendBits=3313 cDivisorBits=2635 */ + "011b28ba00b0342746ea4755638488c07c7ba512cb8c587a688d4929233971f0e890aa052d62b374a23c7c444179cadc323eaccbb0833051d683f4f8fc226664b7a4c4a76df3fbc7eb36ac0112a8fda2ba3ed0bb008553a53019d8cb44677524eb7bb8184c3b83c3597e1fe0113ed3294e4090b088f52b1689558a0d6b574d8e378b8b1f4a1c67f652f88403e8507d4fbf9cc0f60a1ce1a54198bde5e0a4930bc4e0a31a6ffe6ab210d45b308730539e1257a973100bfd52a6109fcedd4f38cd78762d0e006c59a62f68801f6d9146bf2d3688d4a21c0100f6c4c35bc43e0a83c58e95d4c32ed4197925da8fd83053effef26f03cf524c4840992453245e86ad4bb8c967ef6e0e93ea26bb2391813d781f62aa8d46fcbeec443a95db32a391bab8ca9af05fe83afcabf11e01859a34cf4094d9b7db8c825f74e6653475d0ae67e8aa90346d0b64d5e0dd88a53b827936df551a7b3245a8bf37cbae85ff9cf8cca05d2b9e664f1ba9d13bcec2484fdfdba0b5cd4b6853779a8a9779aed0610279b9e184565f6e398706546b64ee437ce5ab979cc263dd6cdbd4567a9ff70031", + "6b942d618075dc26ec6f6d47c1f70a19515758b48a7f1c402bb593805ebed78184d169a64e3c274505b5b155c04dac8104acde710ebbfefb4f2ae1d9a893f3895f0640badbddf6935ccbaa418c8712f3003e637cd20ec28656f76707d06c376088e9fd8fe4beb46817022c6fe62f5ec921743c1fd99a3b2f48155f106c9dcd15d46247d949eea6e9d03c8064096d13d1fd944d02b13fa3547c38603acb53cd38888bf0060054022f181d160bd19e3963060f64066a34fa7c930005dd3abea4b3dc20e96705c3413038fc8c7601052681ab6e76bf2d206efdb9b58d5ac1c71555830c5d4c7af6278790da8bb7d2a3d8c07a9558a367ab0d5fa502ac32a377e2d51207e854f0f42e07e2cae61d0792877a0ed78e03fed3b8effc318e3fc73608d3b349363bd378b4d4f2e20663350b784e241ff3ce8358c30b7f5380f49391409e27672494b25a3368d2", + "02a1d1d7e6846e59cf6e7aefe9df279bbbc658f15e6539abc6f6f3f31ab253cd73aa8bf42687083f8dcf58ed7b8e086911f31b830e9eae3db8a12bf45081af5cf1b13a88d78e7cea9c3efef695a93bafaf8cf0c3dde9", + "6953f70a7372358857aa6f1097bd8e86b3d017c84b61269537e846ba17a0b6bdc9a526957608dc60905dc092b8bc36886465df7dac0b56b5dd364ff00b13703bd87ce04668b85444ff7b6e59f115bdcd57fa962e190edbbbc02fa40531c9f1893e08a81f0615570658bc6b120051da6d43975bad0f1f4196d0d9d88ddfe6da81cab63d4334cb5485fcf7028f041209e9a56d19915bb9cd73df3025e9c5e50fd3c018af6d8d77880ef96159b87330b367e30470c0940de3fa5e083996c02bb871640b0b63e0f09c78db6b0d53ddb0f110e46c77633cf6370abb1f9caa381dc7e000e3eca269a9edd887afbfca065056af2018d27a20a51c421e49d7f7566cc9d547b6ec690a07302b33490c195b1f0e9a1e741e598872158481387e1ca135565d5d736907ccd565b3a8e51c0070233622024e5107e575f0423d31920095a53adf1f686d40026db94f0f" + }, + { /* i=3678 cDividendBits=1988 cDivisorBits=1389 */ + "0d8b252fc7ca3125df4c999a9288e610529a35fc76194de671e72ed869d790652e69fea4d7315592c811541a6bf94fb47d3420316916e0eb3b5686b96ec410dbc6a61cc7c62df4552b9ca65ce87f18fc6e3e9f6bcf175ecb2589bca4d30cf4eb75f5d4d70835c364ac2e2e864f2c11dbe629e24cd73bf716fd6a02998c71738eed31a6abf2284935cf4294d84b4298db7fb19c67f72af236ff8a70ca5215def2aa7204a9794f4869c046314ba025d5fba54db980220798aa540bd17674d5d2e4ce7637c2324aa6b9b52339bee156d47a02c887602b204d2d698ae46f011e1b59a24a9bc7af6499ed943eb7315d7d65485b9e23e0c070e00ae9", + "0f1c8f4d7018541d704dac2eaef99cd20c8664d1c8f056a18dcaea4691482c3c727cdbf23f1deec826b5bf53f3f665f1a3bbce6cb7e4d354fd0c567f81d2c959b6182a65f7e71b864d56812d36c36fd0b849a00376191fc1b74e9b07decf65e5afca90756864976999da1707756a88db673ebc1a4ca3cd330e4e23dd8a80576f992bdaac84168676fff74ded75cd7d217f3f1ff23d508fe19b011d3971812b39822121dad7b2b66c2d05d3f2da34", + "e56fc4c2f7068618e617f7ec7e84deeb00eeb4f16bc16f00482d88b1165308a30ad760ee3a1815527f4cf500cc0d67902c9987448a73cea3d70cbee53b6163f260c6f4ca04d4dbd7ddeef5", + "0c4fc73735b79203adfac2511ee076d49ead60701b88aad986d2ca20a89e78ceedb4946fe79372c029195862361897c4e52e4db23c42b6609cc9e4f2f59bb913efccd6d04236cb7473e7da039942ea896e65a8f5866e77f59bd92a1f737d8b40996d59dc703d4ed6dcdd30bb928d4f1294a1d3750bfd44e870bb4f06a003899d08d99bb2bafae907ebfac0447cc5ed70e3653e3d6029617d607e3d400ff8f40a8c01910be67dd574b6bcc7b4df25" + }, + { /* i=3679 cDividendBits=3885 cDivisorBits=336 */ + "7d0255f38a6a67b963806022f16ac561b3a691ba91efb92923f34e2a7c7c94fa108c75831a32d4830877b255ac8abafc4c3983837d401ee77b8888717cd41262bf331a5db5d3e4912e0f47d6b1570ada3a3fd85922aa49f7b5ec1368bb995fbb5dfd5cf4153e36913837d209ae4dcbd51965ca0d6ea42f057d23277c6d0d6080ba06acca06e21d25f6acf5d397c63ebb4bb0a4d36318d4cc037f26e3e0896c9b9aa6a2e5aab63f9b51015f6a21216ba3e5d51996c112865ee19fd07b9049f59f715a865d744fdd680522abb0d62c4ecdfd61c5006bca2e38139dab34fee8bc11f333697a803c734bddc58bf696f7581a9a07cf45c53e29bbb38f767a7c0bbdcfe03a1d217f848be12e197e7867b496c7777bd7e3547c4905cf47a9264bedadc9f8ec7f41fa619b36ac92dc6b4557b4c2ca1484eb18c23b1825f3f151d9746e9d4db432708e87d67f9d1ead5dae46051ac7eb798fae0585a9daa392fd2e2ad8ab1f7632196fa33b56270545ffaf205cdf3a4999df9afa66d72cb9f0e8b3f06e8f6540c641fc17fdfbb6f588a3716dca823f3209a721191ab4915221112c44a240ab547fbf0d34eeaeab73b0ee5379372e368d77a3ff8cd4a7c626119355e38a42f525fc8565c01fa3c1bcd95203867e8089a99ec91cdb97ae3f089286ea6b42c98d5634d61b", + "e845e2a71cc758c961cb693804947c7e07b0783a04427fd9d508914720bb86faddf116cb733c96c38b8e", + "89c76b46388137e93f0a8693bb6f299e6e6761510d6b7b63e55f098d65633184bfcd3d8903d4b4639e1d289e74c042ffddb2d5c4a2fa7b5d3c4424fed8e297bde2e9a4e3ab4ac430f1b714edfa9767614768eb7a4fe5e7ecf359363d38177400b5dc5379f8749062e983edac1166b317f4ed9182f04b23518a77aba2136d1d4907b63c9d26d2be5c21b4c1bbfdfeaff5d7da9a02bf1005680cb4ba5baa129b29d5fe2a644a5168b2b02342fb13bdd1237d1a0bbb0e74118a0a64c333b6a6940eafb4c190ff2a07285da8b46c90275f47fad57c893c7b20479fa6b14228f43c5798588119978196a5db84dc95fdeebbd875347e2717cac70ed249cfcada29198c2e97a36ee5f036eb623c9500c709ed877f4dd961c08a5aebee20b0b6ba7bb04be93d478e43c78510c507e6589a655215a5ccef22f0b1abf447909f3684121bbbf7d13fcf97a5c264257772a10a7689675df98023925a8794875b939574260c58c376b17afae9a4f17055889bb1e302c91b7624eaf4b9960b1dc9ff605def8d901e7c09284721ce0079b7474d7f96457c3d1cfaa2cee39c2be1ac1d86965f526f71c027e90476f2104f098108ec00d90e5577b70c0757183d9b232e", + "a603f15f3f39690d068e3df0c04fb6420e20ab7c35ec3038aacbeb002baf9cfbf4863cb294172e035897" + }, + { /* i=3680 cDividendBits=1161 cDivisorBits=387 */ + "07f7fe379bdb67029eeeea0e07ef14f3178a0c913baac9581522473b96e785f6d72266639371657a54170c346cb0f937794aab3029b944b9c2893fbc968ad9743c0a694a7a32be77156439acd1470dce1a19ee7958d515b2d5b07d5a008200941d27810c50e3c28a074b7936ed8d07028a2a759ca3c8a05dae1bc0870551a6032665bffa6876b46216c0db45718d4c7805", + "5bb7c07b310fb532c3cc278cd2d8bf335d51b40e396497b22897b439ac0dba43f39e066bb1f2c353d5dbc8098674af8b", + "163df81c52f5edc295e1b95473ab56ba983b93a38456755c47fb5f10620753d27a6f9ac66412f5db06897b0b497c282fb60b684bc613e5f8579ca876bca975781b9af85d1504fffb3b0fcf7c714f368a1f39ccefa9535c9c06379a7b588f989811", + "2a2554918978afc896a60ed66025eac4a755cf601db65e9d98f4c4000aa82f36a5acc0d2cc6ec74437a830db77ca47ca" + }, + { /* i=3681 cDividendBits=1654 cDivisorBits=1235 */ + "32d69729c33c25f64037431539b9e8af6aee3ab3023469d2f01da4675fc9febebcecebda9a95e864aa6c9b9e28fcebead96625bbd1ebea7a9dd8bc67209a6999b57231c2a9f77b40811d6ab6c9603eebd7036420d371aa5dfac55ffa20ba87fe3665759ffecd3cff2e9ef90544821d9dc566489415c289a88269e4a0e10392103f54fd869f582062973507be86b08e34778201082231e6a92dc9b3cfadd8d4f2f6d000296cdf7d07fd2f4720d24fd8961d976d46766252cab8686845d70d5f1f3fe835379a8d8f4d6d45b279c280e1", + "f29d55a9b714894ef49dd5b26a9a0b449759c1068b1ad44b5785087cda79eae20cea35a6ccb5ce1d21e794fe5049b159c14518c4900fecd7fe7fa48281e47ae051acb547392f2064d622d9c88de42617446f0f05f056b6a19f28b3411a72ce2b77e0bafed6ccfa5c1be156d56f0832efce9425cf978c5fffe20640d70b72561c1438ab191d2268dc5e3c88b565245fc32341e35a9d905dd3e353", + "35a4a0006feba3f47d0879bef62a93e9dc6c34c8eaadc9b47db0fa0c47ef7a059e7411d4cf1c909244f480166106033a39b3b7e642", + "4a8ce1d28db9d79ab3de5701ccd26197d34fcec7e71ae03525d0e573776c9657c86521dccf51fd51c446112d87612dddea679b1a00d16db5b2fff3a0f4eb49d4c450313bc1795d485c295092d251b9b8705de466eb0b1c77bff83f8b17cda85c9a8d985db36e529a52b61b18e0b8e27927374ae0a88f82087170effe3a9b83a2f8a6697133a9f86b99a1a702fd4a057642b3310b4c486190537b" + }, + { /* i=3682 cDividendBits=838 cDivisorBits=157 */ + "074be72bddbcb8d2b00227fc897646909b3234ff71131ae932891e831f277526e3a2a1960d93c1e86af3f22aecd36e38fce090444071d58267528a9e2ba02ac467e35db8535ba78f722e9c700d2f9db4dec5e3d41425af30478c52f0e17eb81342d6cd0bb57d91ebb7", + "10645b279a9bc1c82f9556daff31b90d8e892c57", + "71f3b656158fb6706396f3de6acf46da77aa9d6fa5144e64c70356fdc3219e9ab810fd89ab090ecdbdb55d185187bd8324f9196d3f986295daa200b79c342da61aa9bb0246575bfdac708b4127d98498e5241a7639", + "074cbb7745b66b7c0dbeae78d71e81ffc9c0f258" + }, + { /* i=3683 cDividendBits=536 cDivisorBits=57 */ + "6ce291214484038d13587c6acefef1b51894edefbef8f9e9b678daca4cece7fa6db452d73d8ec87ca2e96e3c1745c2beb15542521e275a4a49286927d979201b764030", + "9a9ffcf472d4df", + "b445a91ec893fab8a2658c9de099b7abeaca875d06a2b713390efaeb155722d01149b2aca45d362dc3571f203462cabb29f9d5f7ad5ce3f5e01ca2d5", + "999bbaa4d204a5" + }, + { /* i=3684 cDividendBits=3294 cDivisorBits=262 */ + "391fbadf5fc0c37af8544ad26f64b85349b175bb5ebde3147ce9e2c602f93bb8902caef0bbb2bd52035c3807769d21dbb9323465e05d9840e808f4a78d4eac635eb9e7783679f6d664200132c04fa99a8729b2f66eb458650ac481f21d45571f33e9c1a30947dbe624376a441b9f84a6f9dab7dc9eba356b971879439cb405d97cf8821c7f63e684880829e38f999107f7061a40dd94bc45f34d8672a9e569806b3c670c1b87cd6e92fa156c7e90fd4aabf9f313538d050b87156e93086e1f336fe0dfdbb64d984696d318144deef2e5dd0d1cc70f288367fecc5b439a09042f3a9d1bc208ae82dff60899e98133478d197fc7d7439b613f463c28d7be87d36e9e82d303aedfbf15f7abe9e63dcb4d8aaf4c8cf78111fa60885b8526b48b03c8de6ef1555505e6c41f038735442957f2bbdbdd246bd4d89272b2060d6995945123ad3967f25326ecc66c1aa3ca036d344aef68f8a07e0fcbabeb4b69cde9a4ea21b95e14b9b843c9b5775eda65325781a2176208fa9f2f46aea413663a69c24fa28e98b770902efce20f3d52c190f4c6d186341d42dae479fcdf76a4", + "224aaa7138a3de57ccceb7c8e00fcd390463815948387fc366cf643609c31d8574", + "01aa73931a537fa858a20e69fbd4338decc8ff64508cbfd65108995fd25fc21eb1799a75dbd4b49275a6b59935fd8387a025493b7d73e490915d13b2649d070effdefddda8e0b2de038b62e13e13758dfdb6cf3e8e42053ec5f5f1a7e8a83784da2c87cb95ff7c9f7ff13733a76b7036c1a8089c57d65a6f506ec38c99e1cd218b908ebe0f6673f5b70f48d62b8ee897e4d8c4ef8d3a648bb74d24cbce3f48f8bd12fae2151ff684d7f9a073599bc02c115ec3818457454983a0aa4c8cc756007d9de03cee47dbbd61b4a7ad062aabd045948f6256ccf3c5d0d67d7e55dcba3ae1b3e2255107db05063b3f72a4c38944d89827016fe1baba3089e0c95cf2c63e2994d795b94e79600837024ced8ea197fbeecf803e6d37f112bb59e5be249b19ed9c6c98cf90c1bb531cea7024d5e0c0c5f388ef586b9eeb98e87e0d6e5d350621380ea779fa7c99a20afade995c099821e182108f2566e90c8eafed849c0533869d104b3a23a2581ee235846d79bbdc66b95c6bedf0d2f8d45c060e", + "03ccb3b44743ac87acb84cd9b310de8c63226e28adbcf183a55432b3de9a71724c" + }, + { /* i=3685 cDividendBits=3702 cDivisorBits=2997 */ + "1ef679abd9b952e64d98b593f02f6dc356029a85b8251368c79a3cecabc018c6b66d0f581609bb02d5e1da2ba7d98327987cf1cc15f0330fd1b9e41c6d857dc3af1016ce97bc6c3a49265aea3801be3de7bf9b9322da9d7339ea0c7f494a5c02d7a70c16948d6a607d32d29e57e115d8c9bcdaf10d553f703346034de19d39155387c7b1e8decc2ea48a656af0ad629114dfcd091df8a419c0c5f5ecadc4702f645dfdf80db8c361b8150e0e3a0b0a64fb1b583adac4742138f482a6b33d0757103175e5a0f9275abd5ac9f81df94055509fd77ed08384c2e1afcc0d8ae51437b7c7e252d8664373c777912ad329f2866085011bc14007e3342c37dd25556b1353aef918bbdbbc03102fb83f019eea81dc75311236737b0cf14e4ea3a11e700fd3afafdc90768950122ad582d1e304455f8a258092e67902bd1a0199a14ff5d236ec5f3621209929187cece4512a637134f17624dd154f268c978ba018db8d1dce710ae5c3e84ad6be8d660b35cf140fcc1070c61b6981f847db3d16562dc3525cfa3dcbd37b5991c2c5e0f2144c4091fc9f4599578e46a04e2ef8a96451cbbaf39c90cd76b17cd6d186e6ea930016de644d4290cf7ccda50b7d15960d2ca9c983f7518801ee74089c7184787b4270", + "10c5f7bbfe12b85f9b4e9e713da4f821328d4eb84e17f09b0aea4347269461294f2b86251a55bcd9702be23cdcdb1cf792fd51e4be3c9e9119ec6ceefb440ce642d09b2e1f5067cf0d77e6f66b9a37b8e128878e5f3c65b748bd98ef895d047cc07df2825fbebbc185c65fe12df7d6ec5d63c8281568f614a6c1cc5507d3101416fc3b1cc8f3f419124a85bfca93a0ee34900a8f579a5c304a02fab4fb77b16f2b33b1ea9c3ca8073b2c31fe9f971c352b0fc3990266e7122b0d32f30a7f71a578903f9ae13b7e0ea05dffe7478846ba257cca61fdc26eb262a4f6a6e071b0f598d6a8174d99336299d26dcc5a7c64eff80f0791f986f92224f6232d721c7752f927fb915690603a4d54032059126a075ed73b7493e30e9efff72fe08bc484eb6258d15fa755a7bb642feeaea59877343cbb01fb6d724df752e56b1730bc07ee2c849b865165842877633892eda48eac91d5008d29d16b637f9369394fb7e19fcfbbccc524f54e917dec10dd62cc8c201283f60089c09c", + "01d89091d1fd359c1803542ad35c2cdfb5db33dea458bd6f6dd3d9b6acba71b329695d4a3cdc0d6514eab08161f99b89bc6850b541c18c96bb6e9d323db60093fd537ce8422186cfb2f633dab46b93a5f1961cb44c877ba87c", + "104d047efcff6b70140fb80766c5516349005a474f713620088a899d51c4e38618226dae0fea6e74f36ff2c681375233b24b42941fa6f9a8e02a28f90bb67a33500501bf8cd790fbfadb0515c93757344941da30577e1b95c5de278cf527ef8b017e7153c67de50e84f536e187d50fb7bebc27ccf71d87219b184b22eb1e096a271199216e21b660719521bafe1bd150831407034e4720c4bbae0db05830529983caa5a5a231cc7abba55c15d3e276257d1ee92bb088ecba2c38a7a7adda5637bade3dd68299e41653bc4b585450f08eb5ccb7ea9a9e0a0adc4b006f1ea4fd4edd06ab8a950ff5bfc50a2e2e920fe6318f0a9a3c4e2fc28ab020003a691e3bdf2684b52d8424db27be5c09ca52433fb6301c25317615582d746c6606b94fd83d7f5b09e5a779bc24f03a7257114563ae73a51dad438490867d42a2a81bd5ac03df2725463b2f65a4378509486c556a7017669c22d02a35c863695809b86af47b3192ed4ef39803028f88ce13c5eedaba2d50f0006796e0" + }, + { /* i=3686 cDividendBits=3377 cDivisorBits=1454 */ + "d85c7f57a291ae057eb21f791f48b60df2763e3ecf53c984c19899db7bbc46e29e641b2abdefa7a46d4d4ef4a353896adb3087f528729a393c21e8240f18d9c83d0a0c903c82a1312c0e76b658b24c64cf948c279d2981c7edc37cb9844770483cfa46418f75e995ec58a9df3f0c18f524ea9aafccef4081d287fe471cac3970c0388cd86d343ecf4e44f05765e1394de4e685ed9b31676d7a3312ad8383e1d4a01e4e7122a2bf880f3d72d1cc1bef55b6eaf6a6225a7ded1013eb93aca038d8d1ba1c697b8fefdc472e33dbebbc00c33a3bf2b8721784d0e3cbd013352e23eb1416975e0bb39ebc3b2c887d30ceed8ec4630391e968d0849a070db30a38386dac2f7fff14e4e359b094f192f975c4d061a477d21e671913d100e3aed6ebec1198fa97aa97a7cbef8d18c04590d47c8da47122b0ac4b7281a7f460de4d3dbe4ab82f7923af3b57555055946ae3023fad1960f57a046b57f952a92277c2a274490f8cf56580e567e6330f3311b33ef7f6fac77dea1ee80f2ab33965bb8cf80bcc07419ee5e719f33e6857a261fc337f3743bc45e22c3363e29b807f34b467d8e32c86f8c9831d", + "1ff01a5c4228c7284c7e8b76caf6bdc4bda294d6b09feaf6bb89624b4a4830fb3ba33e4527578a5db4ed1a561262832f9c14d113fda72daa5b352ec542cb9d82aff249583b6f3c6f7e2c4e0304a5757412fe19111dc7b72fe2565abf4a94746a60489c30c368207d0fbc9face97e200fd2c755ad0d53a1e958ba5e67b4f7d480d72e3eea8928d4c66198da72bd19388b272e2d7637996aa758b54191225b4c5817e45b224c90c6b4d16a8e88af4935a33f42073b9d1c", + "06c64186e34aad2b1130c938d883d79a857a21cf6a2d07698bd8dac68a8308417bda72b98dfd8a8202d9c24d084331ceb48346a72a59aa7f473d4616a3b5752114aa117fb251365b48b4a4c46f5b49cca8cb1f69bfa190c6ecc5a814c886acc1233b79a1b205ce466dc283f3b8c8cb4b99c978d1c808c17684982c6ce1edb9d98be688a78988388e4f1ef598abb83b11a8a6977a96fa3f63f609531bc1404bce3b96382c211034c2f0509b856195264ef88be1af86c4d8118fcad43d6eb3c1fdf1a90799dde43437487d1dd8b4f22cbd2a0ebd55039ce86f23284fb65cbe6ffd17c34f46702bb608b77bc97eb6af2344c7", + "15190ef33e994cf6875bc83e19a1f6b0b0005ef6167c7d9256a5747709ed62e134c520d2cb82e2c4a27bb2f7bce9fe0ac4d5cf85dbd26252e26b6517645a77d558c2e1be86b7fc6c69185e077e59a7e405fc69f9b6477bc21252980e8b3628116e95fbde2a8943f95f6f815aa29543c27b45e5ad902d1db70a56803271585908d360d4271997cf1df15000ef5ee978838e568100a6d765bfd37e1466d7f98b0aee9388e036693b7c8fd613c718e0b6853ed2e4e2f259" + }, + { /* i=3687 cDividendBits=3145 cDivisorBits=1982 */ + "01b8296c067290ef43cd601d08097afb836b3fefaf8ef0513403157e062dd5b7dbbadbd08d11ce561dce93ec44186393c4025bf516a5328570e97731c4c917060dfe31b4624441ecf0c4cd63bc4a72dc4d315a39f69b4aa0a82d14999b25cc1de6b03d6591a756c36dcf25412eb7a8f06ea151ac7f7c108d1652e1dfd1ca8d323b2dbec4405d2f342e14a95099ab8400e504d24487180c726e104aa019766eabaf1765766eaa6bdbebcc03a76bfd57cde70ef16fc141ee047f895f41a067eaef7348b068b514dd1033f70afae1c21680bec0c08eb82e2a0fa44435960d6d331318a8e7abcd55e47fbb9b1f1eb356314671dbd50e881c18588f48c1a8ed7eee2a22c711ef18b2433abced925a93c2236884a89dba455fddc0cb2ce3c30ad7f7aeca5e5248d2f1f37809bde96cbd56b8e70646891081d6443ff3f8c9de706b61afe5a76b2cdb30a92d33e53844fb3efbc0f572cd74ecd559dfdf3bc9b05b78c51d89517967d124c3b97547663398265ee4fc9467cd3f2358f5046053c088735db23a6ce864dcccae02d991", + "4836c6ee78c05b0e38a0f10dd7a3620ae53fae1ad7c2f5fd474e314f9794cba8a4500a598994178460d48b8ed4f47e42d4d916a9109cc98a44c702ed7b28b7aa913110d5e581d5a20a77ded6baed58637480232b34badb49fa04a03f9a712608068a02e4d94db552bae2973cd07da211b1831abd3b2e5f8329e5078ac486666be82a6582442865590434d0ca918610c2bcc80bf895cae606427f6b83d29aceed3083be4e76e93a4e1a79f28ac175d75c6545050b906817749fc218c3b1441441bde43dbebfd262f2459f7fbb2c69b89de59037133fbb7a867cc7a4233a1adb6a0f1af86025b7dbe276b9d1f3396966c845f54c6987988e", + "061861eda0235da8ab20488205354ae3fbed4d9e36a5dbc4d3cebcbba68c36848997add461ec1986e37a4769592d5f01159ebef80ff0c80d37b6e0f580b1fe114d7694d698f9e50ce980e6c3fa2d326676e4a28bc7f7f227a27e54e4ad657e99765296af22dcd27a7679b7c2df2ae9e9737f6cb37a3922e4e0a251fc64330a30c9e1d3b2237a9384c59c5c51f64aee39f2aa8c", + "4361b720269184296279ab275c877ae8c059c53836e31528bdc520c9d6f6c38630ffbb8b090658f17d7c1bc19e509d1c8d22ed277245138648e4047a867f102238fd18ed7b4d2673abd9b79066dd6a66c1d968873756dfe04ccd834541601e4eac32b600447aed908cd11e3d6d4f9447c78a1015ef2d19e3b1652183c1260e45d3f7c27657945a68557bea6001d21500c696000b13dd67b3f38ff47e5688ec8b1377d74f35adb87e9f7b2a44f6e78e5e1d40a0e978390d85ae7d18fd7494a83a67f78c685e5204294bcefc2a7c6509ceb51d925110770b81ceac667df7163629b1b5f909b46201220362c73ad2a15432e625c518511fe9" + }, + { /* i=3688 cDividendBits=3479 cDivisorBits=2437 */ + "6dd511b78df4cebd75f3b8a4ac6c9d4891b6e90ec0da39794abc219d9f708e727ae752cc17a965963ff1a154206bcac12a5d08a0ea27e1d6e2030f0a4542ebc29c2696ab99bee8233fafae29c2039d78b2cf4125d7eed41537d99cb30a0c832b244569ce92ac80459ca0eec84757944c86befa079973d1ae82e9aa268d1275a016bfff0910d6576b53a12ff9a7879c53075a5df76cfed0db72a4de4aa61df45ce81e0adcb080ac542e45895d87d48d1ae0ded0da07eaf78c7676d79a0ec2dfe8a1c3d203f4f379cbc3dc126295d2ddb996652f983c6d6dc0578aa197bfea5ccdd99c69c14afa7cc54ff305c4aa390577cc32a458118510a5d72457770c8d908baaf8dadc7c3b353c2cdb18760cf8f7f4567d37f3c0bbf1a5343488d6626fa5cd438eab6ad947b60aafcbfdcffac070c60c61da19d497af1cb93bcd3a7e0c1c8a622f7411b0309bd81d187aef93f8d2648d4f297d32f0b5de68ef7369b3fe216c66e5a08eebf369e60b8bd8a923de397a2f8d1b6ab21273006663082c2f0dc96d4e5dd446c86a74f8b86c43bd5d9f8bf3bf1de1c288e04f44d5dae6c7b117a95c5ef7f438e8abf436d86c8fb9d2176b394fe46b", + "0dae5c5449fd1ddbc7844eb57cb11366c319522e2af32dece4cd4919397b2e1a3cd5a02b28a9d6a955655238dc98082419f3fbf9e843c2e78ff899a8dac36d7dcfb1079804f7a0d375936489fe4ece0a1630e1d3fcf8a26f05d1d7cfd3b34fab52be7f7613a7e8897caf39290ccbaea6a70fd426ce44be3bff461807c90b6fa63a8e716f068ae1a465a1ebfd26dcc1d5370f7688d9962359fc67e1a7c207c523f40ead6153b80c1cdf2b5a0a93a320b392017df99626ffcc8196b2c59d54133d5d79a4753b9dd5e38c7b08440bb43a17f8202075e3307a1740d5c88ff9c7c5977ca9b3baa2d6c28e9957e2517a60b73381193c23dddfd7ecd8a01dbcc520216592da50a2acd3a17bb2f31da4ef060fb3e77c602541ae023d40609b1358a0c61de3aff4d6fac28c6fd60dbe0ac414fd5a3d", + "08072d366eefb5c000c9318015fa5a740606c83516f8d00f0f51646c20f706f642020fc426ea4750d80639789ff351f039a92ed91ba59b4b6126fa49d3141b51deae76a38c64e5425d4e3eb3f7109111e189cad95c2ff0e791e8a9a0af2ff05824e0cd1fe714c5ae836c6c9bf7690498331f5492eddf977635d4c5153b3bfa70937131", + "049bfbb5c59ec11f105d60e5cd621069416a1a5ab8df5e21d43eca295b60cba1a043067338cbfa9a254b8681341da20ef30e67115acb575ceeaaf41952c70572bf578271c936f060b3b1a49267c0b3484a17abcc0894ae9f2456cd57d3560de4491838334660667e49b5eb802130dfaf556c327a20b35a279ffda822e7e5dcb2e9f6c65286496cf314827941339a36a39b73129f0798131206cb4db0f01fbc4b9a59ff14eb55c4345cf8824c0c31c72635848387b942a4c90db4727505b6c865e3399932a451ae0d41fedadabaf5118417d2b36410e003e85b801748ef2ab45ec1773e7d05655edda2a3095d6a87b0eabd46e84f663757b1814fbb0f5d82c4290fbdcd45d0761b2e7b665e12f5ab418a1539cd80d2f082412f6faa0507f29da86ba8b83953935f37a18da56717def5b1be" + }, + { /* i=3689 cDividendBits=50 cDivisorBits=28 */ + "038dc649de8f5c", + "030d11c6", + "012a2f10", + "024e18fc" + }, + { /* i=3690 cDividendBits=3702 cDivisorBits=3464 */ + "18dc85b42206ec37db1a2cedbfbb328c915d669c457ff6632de74c4d58c66eab98e6e88f2a5304e6b384bedfc6ed9b1dd932fc0dbba263ba4dc2bf39557927cb7cdcb5371dd66a78be9fc9753b486d9032a3b94e8386c1b436358d9c15dba213e848482c9674ec435dad385bc2a26a874c0e3b52fdde133be20a83eafe5fd18f593031b1f8de5956e5a02030987d5fd2c0a15cde5451c4c6e4df652570046153fca20f942022e3af145c982481d72a54f78e9f4843424277a2c7b6066f55d82a5f18cef5a95f21767942159f41bffe301b720cfbc256fe48f3ee069a9b76bf1231d1571c323284b47568ef7537b7013c645680b612d95d5b4ee92bd460ad1ae4a8259b4f40056cbf3bd62e0c4b54474625a676483148b4e0c07251ffabb2d60b8a082197fe852924fbc1f48b0af7d7105f4e9d9bdb4916c92350d518f687c794d66b1301a92708165f2630662ae29a133a04790aae6417c847315e2c8a0e81c6850ce879d5f9c5dff06a748034ee967b7ab308d3f46e6dfa0eda97c840fce40e0904119696d967a9cf0f4973a9112684d839e5d2f6a002cc389c9f01f31b087ef23bf4554ce9f93c6e951da0c2d9453172378187b3ed81980faf7ca48df2f9e8791ffdff46bdab735be691fe52e03c", + "a38e2bde98de19d1decb18b8fd86ac2dd6a34841418708ccf72c1fe97e37c51d11fb759892d6c2ee9dc4c3bd3be7ce043f3e2644a8f85c809709177eadc18dbefb5f115f22b7c22ca604d0f0d7f3d019ab0e2a14790126cfd54a5eba23bf8ab3235b12076199aff8e767c5728290767769878ab809a164b7ec1944f761fb492803e230494e655ddcfd4282c9b095c6cba94167789c4f37e447b3ceb341fe95ee4a9fecd679ddce82ec44befea526b6d56b53e8a1aa5987de6d0073a143229b41aed25f9125e7b7765a7e22cf46b259d54a1c54eec3349ce0179e400d7b0c5735b4c71a64a07752bb5b9fa0bbd70faf9311c63aaaadc48905cc29fbe66d895c9454822463954afe60a3e7d25feb085e7e899a0e0b4cd29ae20dddc75f4409129bf7b6f1af561e4058b81d7792228a39d157cd603f48339f4456b548c9767153219ac0153d46839bafba11a9926c0f9788c221ad5536b8cb6b787a531f1b0f2987ff5d6c008c60aaf63201ce608e39edc0716c00cdd343b54744df36786c855ced95c560dc3414094a7e42af6c29663bc823d568e8c6cce39c86627b49c016fbb679f14aa917ecf4cf3d7f66c71b4ec4aec7", + "26e9df80d8af588dd7e881d636aaa8365783317b7944c0b33fe62155d051", + "08079775f28f4f635448febf009a0cf5667f7f32f648a15f4a3d44c652b1baa1197854747bdc4f91c08a1841f0c892de59061af0edf169005d7fc24718d34432a2444a0fb5a0a2747b609856357a524d07b6922d9e40d94cd21831a764f0cd7d6636032aa365a47758b676cc302738633f192a158653211ef256aab9b9e46b2325a8ab50c57259360b32b0663358a430af066faf7dca46d8809db3b9da62ac5d1af2d8a62bdeca1bd5b4fbf1da8ffca70f89f4ca75bcc3a6d3ae7ec3c7a5546ce155b87287ed28267861ecaba086636070e237e53cae6db3b6f45ded3f1b9c5c3073aeb8711e6d040ec10f78f57bced655e49674c2cc69e663c3086ce74a24bd82a908976454cddd697a52f3083331cefd798af9f0ca482262c799f684cf12e05ddd40b04b06bdb186a0ed1569d3749c1689998cd99798413920504f3e7605dcd13c31f45e23c4a1c71bdf0943fedb99f9770d5352e6f71fd5e4c83f89960db83361804a41c6aed8aae78946953dd72d836a231c612bf2c166a2e32be83c85e669e095a3557e007c71920f22c35c7da667adf81d7420d5f909ebcee0a3ff77663895d91ad3f89df9855ffb354e9502e345" + }, + { /* i=3691 cDividendBits=2521 cDivisorBits=2345 */ + "01528a0aa1e6877510bd88c5953942aaab198b657b3c40e5bfe4e9f4cd7216f207e0388ad85a605ac8e0c5074bff103c6d39208ecaf1f05838c187f525b9aba50ec5e0bd31e0f3382b7dfa3d9d91e8fe3f5694ee68baad0e58f7f3da86dc06caab7e2624e4d730af4d6f6b8d3d5a4bf7e88f0eacb88828cfedeff2d7ccf0bfc222d0e87aaf6f25b375eda4e08908da527fa83ea346bb5df9e96bad49908fdfde4494726e0ca2153837cc633a1d8689c5fb1258c1331937e2ae1af5c6e6ff21ed89632bff664c6ab3aea3e8455892a990026721aaf8047b70947555e77dd5ebde1392e7b26aaef003c94ba53f0196851d14aba946e9a424cfb84a8ea11b42ccbcfba877c481b9ec6db33bda4eb45792a4cd92bda7857649a3a046c08b64bbb84738d5628773bc86562147f73f7401d2bb8ee8d71d3a352ec97b646abf", + "812993c89c4e3cbd4092cc76c6764a4fc918dccddfe2a551ae4db30ac1e21abdb4f90631c93d72565e9b3e5012c8222d3be30a8f97bf5a379bd7e96ae3e9390e2ebb575427a67e6b191a3d821527821b3092393548eb04ff4250a4575401fb6e46d797a435fccb113895abeab598d4328ecdf56c9c215a05c35ab554e0bd9af3f4b175aa17f114523edd08d491eec28c8f4a5f1aec19b86f6cba1f067222f95ebc1b4e70fcf0915daa2a59ce97c6d170415859d269fb3eb5b7c537f35d86d403a67c47f6e0635b618d85fbf0068c6307aee61e40c7086ea16d7438efb21540ce1553fb9a93d0883920cdf99548919a5ed9aea45d443f4fedac4a378f170dcc09444bc6e9636eda27fd4e9bcc11827e6b39d2b22895ec00c53412be4dfe48870f0fd9daf4e4", + "029efc297a5a28f1cbdfa3a358eebd04b4b237d83e0e12", + "699c5867d3d1241c83074131704dcab5489abb135891a179eaad3e7f9c5f300fd8bc49163d5af0260632d5f3e0fd60bbef8d83be46439685e7c3778c8159e4425038f1db3c1d54314e1deec604f90fd743858bab3d4b6c1f8404888a2448ceb835ad14179c3d329411563a042a7001df03d62ab736e7c6b3b9f497f53eb72b6907eb0350b2e07d4fbceadd873d4a995f16f272702ee1e39d00d46cee45bba5bbe45c2b8d0be25630b9f938f4f34fb4bc5cb224b75588eb564d8426684c5c9eef6cb4b5072939649765d04f3cec1816d313ab08ac5863f86c01cbebeb1e6f515912cba2af5e7915a9024e16482c0a48f75ecefbe772e37cf9dc6587d175a711d1cb55bac9a21632ea34381ca5bcb789860c1f92c5244e4aa3494fbf4ddbeb9a9b1e8162bab7" + }, + { /* i=3692 cDividendBits=2494 cDivisorBits=1351 */ + "014ec4d66de3bc544f228bd21580d7087c00ad499aa23c6dcf40d3461b1d83261afbbe7ea53621c967fdc444e872e9de096d68ae05fafaffc70eb9f8a55f8273fe4055d3efaefd7d80d9e940288f1c10f671706677219b42bbc7488b2c8595e5ea926311c9943400f0189b8b1d2eb00911c8718669384e448924280f4030482a7fb8cc7859a763a6c1a876ffe31491e026b32e26468c304feb7e2cf8fc13f7736c53e4a11b72cb723e0f79dd37dbe5d416039e826f1a84f9e9e06e5b12092caec152ff9d3750b7f9236fda2c3177fd9ac639629d9c9017f6554b82220934ecc5e68a5b9d33a863c82ed5a5be524edd6dad8abbce7646cb2c923295fc06e3b63995949669948d13b41c11e8082eea001e8e756c9bafcb3c28e68dbdcc44e0e937b11af86f6910e9691ca585127aaeb29172ea042eb1c1504f", + "5cefcec1e3c7fef6f7c6c0ce3eb51fab1844a187a0eab554e73902fbe61a3f811a6f2dfa8ddd5400fb2f2ce5e33e7b02f61757b132052447185706f88683ecf9715110d8ca4b27cf09e7af31b856e48a3d4ce301d1c7dbd44b0c1bf17ceaf506c9c2207ea8f1132e23468a70b69f09169f6ddddc44bbd4f998501e6b876601f84090190c94a99c7d3b266bf24ed207965edb1728d155640341ddaff97091127efb6fcb4aa93736ad8d", + "039a243cc1a79daea7d80ab992a2f50e1a915522ce25b5e7959bbbbf1ab2141c6b7e14e97f483a08e68e3c62f7b76fe4bf439e348ae0d2ed3b6bb3d2f4a06a909e09128901884a138cda8c1c30690ae06eb41b57883691065362e0ddf3ced05c69fec156cabad4fdb5b1809f978a9a73c0eb44b1e3e862ad27cb571754f0d5522cbcb6e9c465dc6cfbdfd712402121", + "4ae93b7502a2e986bb1f26cc1ab2db200097ffb328024b837a2ad2d4467a1acc589289523538d8da26be6021e27824034da305c6cfc7338c160ac5599fd7abc7142436744a01f4c04cab482edfa5d0a6d304e5f552ebf5b16d87c3014943267dbe6ed57ce5dacad8695915a61d5b21e26f3853f088fd29bcd8b2c124b0fdd42646a3d3d69fd4ddb3583ef511591afb5aeb1efd1f96e136bc42321a59ac2cd297769f8d59f63a15c422" + }, + { /* i=3693 cDividendBits=3032 cDivisorBits=2664 */ + "94288445ca29a62ecf14321c5754aa03536cb048d3df1659e2471db84fc867ee0b606ef9d16c749a6f70792434c631fe7e61633bfa4444647664f021bd6551a3f8d56b8290ac5a239101b2a16ac1aec1e26acc6cf880eaefe0c1edfd522fd6a4265991e9e496c1f28774998f4a6742da11e55cde27894934e47b8bb20427767479ed975dbcc1fc086c789cbe47bf334cb89f2f37da1f993ab292498b2b3bc35c2d66ec867ad19f7ac0b654082e13b793796142d2b10eb4617cf6a941ba16f655ff40a525348a5ae975fb4ff2e79fa7f0bc1a351e01d51d2f3dc34b2c3a50cb3911df68b8f975216089945093171823f5300b3d662341593017bf3a4db727f3fd538c7aa45dc20028d8949a916760caef96225ae7268871d6c3f1be7eb80b794edd1961f840afbe90d0bf442f62454323b46e6940e29150c2b2957b54b4f018f4e740db62ee428fb9f2ce167e75b4fb3f6ee28560fe08af40615737c47dc8c05efac04439ed43d2733b006fa1b2c00aeeef06ad626c20e3fa462c45", + "906e6cb1ccceda14b5f6baa09ea21b20cc3f0a86b084abb23ef30ee69e4c0a384dc1c147f4d3359f86e0ab2606f76fb00a5b74887f8698fb3d55871ac7e05293aef0f7c9aecd71db43b9e5aaf195db0b515d7b42cab2065960e4794be600e4fe7e2a8c7d6c496472f7a2c93ea58537ff5f3480b42430a563211c0336a9ca7f92bb91bc259787e4ebb0a5b5d99d986f329751bdd4d8c938e7a22802e715208091a89a5127d83a32ecf989adbd3c4b6e11801fd9ad4eec5d469f6336f686aaec6e3f54e41966154799065f614e6b8b4742118cc3b0fda388f11c24d9260c94345d6f322a797e28189c38bab60fe66b07febc5f20a466e75ad7ae98915bf64a74c75c6baaa507ebc2a23fdb8ad1b6d38f0be2d81c9f108c116fa8a887bf42fc8a46441c44221c98f58e2543621b1770d1dd72cd0e01666bdbd5caeec093b84cd661d5d50be19e426fe10ac92f4797", + "01069b191e89185ea2267b50ae4975b63016e99ff54bd9222bdf0eb7e6fe1bb26d17076fcc1617ca159cfdfd073668", + "41d87f1b2b45fa8d5a358a9c49e7fdd5a1e8d3e2d3ebe7ad473c130222a1668cee7136682b34f0586c0a8611f5adb053b2592e6c08ee615e85b6b1f9509aa4b14d4d705c0bfb2ec6a25ddb482c36be7e4b1e3f3e35243cd3ecaa1c50eb4e1d33f88a71c0dad95f2ee1487a4d204d479f3a0f9ab7f577fd44c75d7325c8ab5f46ce790cbf951692d17771a9e64bd2e3b7af76a854ac412d92bf1bbfd5dc4e5f949ab3558dc76d6c7dd53db13e5280a06a08fa96a3a503b11f63e71e02ed09c6994627b121d3bbcb66fa59751c64ab65a6ab075ecb7324c37fb785c967721671f6170ddc2fbaf5b42a8af9b068987f184bc6875ae02c9739f77940947a24e60c9fd756a94a25b5ee3db33832c8d00b59dec5af50f389114c0bbbc883baee28ca10aaab1e491aa84d5a64266522c9a183b69434fb8b959c6b01222de8f2ca34b3b330d67767b752a46fcc15d63ced" + }, + { /* i=3694 cDividendBits=3112 cDivisorBits=1750 */ + "ab474e7fc14ef369f5d9c0c9dd1ff7ffc04e40a44d57aae87cc29390dd2a7e680de44039a48888ae575daa9261c5066a4c33a5931fe2675ad370c21db96eff30cfefa4ba13f9fee0e92fa9e0be3d36d8c6dc8d2fe3d85fa67ccd2b83ec85cc532a7c480c10c2d2ed986564ce8e947de5cd892948d18c4ebc25672472704032f7dc78dba2ebd6c4a5a03553ab6b754a213503b50f3c087f0c569ed5d0d7689e3429a6200679484cac0c5972d97a7cb1672095178439be3f8244b912a2a58852052f7232d2f217e298b5a4d4fff02026df1b2f24162b4d63d08aac79b637e507a112d20694c0945b39742ec9d1500ea5b29a6ea486c1d5b7f08ebc77bb78ae41a78d3ec4f73060c02bc2803c649db9eb06475f40530155688eae56d8c560f3318077ec8966cfa646ae59f732527db6a40ea58a1803f96dbb7b8bc1e48a1f8d1ab76bf2b6513df3bc7351e77ea22f2bae40f56e8fbfc5244c9e9db5698245b206b39518aa6039de0d6da6f4edfdd57b53378fb65d4101d0834a9de9c54d7eeb30a319332cad03", + "2d7f3a5aad7a3a51c46cac58ceddf6f9ad84c3d5c5998ee4396a4dcfc1deda33b084e37c33ec24639ed8111df7a9811fdc3a23d90ec17ee49ce454e5a8e63d2e0c8a7760c1265bdb0e975135c1a25fecaba9ea27e4267a4fed2c3456d7ef63fb5ce118e5b5e88339b402bd1e47c0d6022a5f5265d4569d6d2d54dc8e159798ea3206114ce2bed4d9d5572ee2bb376688154a59c1dd08fa17d7a957a5d09d37bb17294f55c1a3549722acfb11a07063ae494397310924b37858069a2e31a0efca50205b29fc151532871c533b8212cc87cbb2d9331b8e2110f4b2c1", + "03c3bdaebfd6f52001771bd823cb2a88ff59456f58318d47b3da212f0b54365c05d6b898b06aa397aa5733e2df6c07ea77236506bebe03e82dfd12e498b04be5b9e1a226dd3924b0750199b68b1bb475ca6346b8b7842673188eaf21eeea7cea223f62cafc73b67e5d404ebf67104fc34e7adc8b885bef7ae9142e7e8088fb222992c763ef2aa47776b6317d5e9b3a801ab2c4abbf80efe5111cf2365dd9ac9b9fd25dd8f3ac419067eaa7", + "242c0a300e37e674fe5c75a3a8783dfec99fdbc578c8a65beccf451fd3dde76d4780591f3c46dee29785c2e2afcb159ab649aadf83ddb34eba14d928d58aad06edf5db47d78e6ff03d3a59b1108551e2817dcf22475c1e509474f5cff2c9a1c4d66e6858d3d5c76ea46dbba0380bbf183eb5991b5329ef0f6937cf7b1ff70a6c65b105dd855c849e779dbd1d753a90698246db4aecde52ab87d1160f2cf48df581a4c29f17e3fc11e679600c3ef29d80716f743e3e415ba69c2147a4e42f09e9427ac93741199e7d2cab59312d9c23eeb0ea0f60072c05fc80a71c" + }, + { /* i=3695 cDividendBits=775 cDivisorBits=358 */ + "7a5dc9542641ddcd6adf0a470ba4d7c52a04c7d0194bb550a39ccb274f0613af01d4c586d84fe592b11e6f2e07809a0c01ac1d37e833a900d4a3e3d5fa255e9b29975433ae35e179724ec5ee6072b9610463a9c4ff6ed10359e45d94c00d738baf", + "3645270d38d3994436fda86d7e143cb55e5b134cb50c8d7731800ca298de60a1485f0b792fde86cccbfad1b508", + "0241383e2f71d2758402d87dbdbcf1cb6bb79e6457a27e7e477688436180d9e9bea72b11c5cc95bab2a648c9562619cdb070595857", + "1ae216a4cd0ec4608835957f69a6907782fbb65d287ff73c3662b756726de976aae39a2d0041960d9a4a2c45f7" + }, + { /* i=3696 cDividendBits=1592 cDivisorBits=162 */ + "961172d830a9b541d76506985772d6100679740d4b565af983d3a8d4a4d7381bd29d9341c500a6eec6044ab72b643adf5fb291206b0b58add4a4a8e7604a1c54eb4dcd57945f1cd6919adce788e3899c83f9b6be31cfcc78b803c11254ff6326a94d15ec9ea91b12b9592c997322779b31b860c6ed21fdc81904ad2d39e12daa35caf9e47ffc7ecc38cdef621827fa9917132db7eabeac756b69ede2c113619ce9faf0415a4d6b62213aa9a3fc960c285f7f480b3d867cd9c4dde328ad05f85b3db60f44caafe4", + "016632df74dac739caf45da02eb2feddd844caa033", + "6b40744cc7dcc600cdbc7380788ecf8e8e06f8494bd2ea6e1758a0c467980a5bd4afcf5f7203568f5da83e34b0c0cca9251189a55d2b10ecd4f82bdd8ae251a830169ef2f4a6d5ca11df2ebbf2dcd79b6c1e17f3d64bdb9b37b81c5e1139425f0e600114e368fcae58a0f2a65e4810923d0545dd21545b1fe8efd9d00775379bf71fcf60b7cff9a39e46a1e5a57ce203e8bf62b0cde284c0f5e2a39eafee4e6634d34eca16ea905e9c511fd8ff5a38782ff66a", + "012ad9cf88e9b3049eb4fde82d562272f4c19658c6" + }, + { /* i=3697 cDividendBits=1620 cDivisorBits=1234 */ + "018151bcc0672c321731b636d3e12f6e8883926a76af07a4230238425853bcee833c657a9130bc683e4e8e5c91c42cf8ce24c87698167c563a6bef8dd4941bbab6ddc980cc27c11b84b4f9ce50c96539c069b2e7c782d35921b89da93f1c0547b6acb64c66f064c79f70bafdd80ff27a331a0635cae4c9dfd9a2fc4cb597faf99332019567f17a8258287f18ca313e37c13071d4468cf9ab74bccaaddc30dcd6614abed7bf8bf400c165c8acadcefdb0bbad8d1d7fa296813dcef74c6f9d09a07f78e8b0e0932e4e76a64d", + "dfa2d8345aeaf58e9573828df981f153c24604fcafeed9aedf67bc02f3637d1e5a1569c22e9b38d69dac84dc87fb3f1593aed93801b5e10771f71d4b53af6c3226659d5464966dabe8cf15e356a1c886726db5eb5f1b7e77055d80e972462d6336a5ca0d44867f6e9eb76c6e21151a5d3c535d573a3400de8298f63687c65695b0a7512f82ab507c24f7ca4ff518c7b98f404f9813bc8891869a", + "01b914d904e7fa47cc0e32c1e96efeac065325922ccb9cee9a8b3735f4556549b20834d6845e4e1616e8028b36798da47e", + "db61c7bd226ba0209c82e32e9b8ccb574b15528c500430021244f2c8dcfe69028bf3e2c48ce60994280427a720060925afd47f721ee1c100b0bb0fc01a7d9448dbec66e692872c8000b2e1143a9ee791b19604c69ecbf7efdc6f048c1ebeeab98c8e17f01d41cd9ff6473636094a4c2bae1b5ef8b1f9a8a4e08ba781ad95da348a1560e99971495545672344bc03fa53c3e6ac0211a3efc9be81" + }, + { /* i=3698 cDividendBits=3262 cDivisorBits=2085 */ + "27675987066306198a71f261caf8db49dbbfd774242fc76d5c67faa863fb972da5c668680459209b365dec706ee08e10701aedd2ee4db73480151282b859379a2be85355e54cab4347908bf946df5e21d9cbf9ae984ed44eda2396469be7104cc815c29293a7cec557990862e70636e858e95ec98de81a417cf4f75c85246af3d7fdad57d16265fa68d8fca60fe47925d73ae7849289af8c010248c27d9f4e40807c54ee6a73bee88bee255bd2667961d0a61935684adfe29a5e23591ba39e66b7470630467b170ef11f0191aee3bf14d1823e916df83156d603bcc4ea4dff078bdf73c11be4520e29293aeb38d93e239ccf2f8016991322c6119d358168d309eefe1a1aaa46c116ca7ae2f6fc2df501225da1d0561590df2c2e41d0ed5812d70a6b140e6acec6d5a338fb71cd32efd235b0089b30b9b466604351c35177293f3bb0f29695a9dc30ba9ffb43fb3fa6c2bad6be9c534fe2c7c0ee619e5c51a6acd804f85b597f358d2adf53eb7853bdae059ac86439f4f50e7f44c83618ee7aa3aace40df06ed883119dbe84c02cfa05142c9d990088a95cb", + "107c759a4934b50bfd1fa9ab523873a6c603ece9955615fa082bdfe1bbd4aa8abcba322db8ce59d2166bec05384c67223919a4e56038308eeeca80b47e689275f9780d40017342a54ded7d896c81e5ccd4c925f14491425bce84d1a9f8c1f12bdfd370c5935a182ad70dac3e16044cc59d82f553fc92f9bed58edc7707568f313de39aa86403efe80c320440988923422c881f2db41b75dbdf83c9371546689e1afd53173436989655f8bd2ecbbcb5e1fb3c28e34013bb6abce3c3e0c14a3cae8b0b05335007d5c05ae43a6b5ab02c805e96eeacf532c2ee81f87763b48b34be936c8c8d4b16571f51cfa5e0d765e4e3e052e89f2407c5e3a0782bdbdc4674e365719b1cbe", + "0263de0e2e8ceaa2be58516ef9e20784eaf0c9e8d8b86be9ce49189d57f19594ba20dce02d83d7fc53d8acccb58cd8db59ba23ac60c8e32f0a78d1599bba77b224b84f6744c2655422504edbe6ff869442633ccc59a53d60215472dbf16b25b7939ec70ba29be48ead46214ac408d9828c23e5a1c6d72ef03e9574306579fa54a640369615b916d002ecc4b3c79958a5fa010575", + "0946be22c891e4be9112cc3ed6712fe11bcffcd65d6af4799bed4db8a5a70e5585c02085c021cca585fd236f6de84041c77c927e882bcff1c4380079c6d7e0d179aea8ccd942309f163ff93cc029456c32f2303a216d321392a5a73cd5dcbb3dacd50c0611e1c096b15a54f3dacd3f52e1738931c51fcea5d8b7013861ede4e2affd4542ed1a55e5cbebbdf7420dd75f965d9ca15d89b0c8424fd3b49afe23508a7f8a8d1688f7584f942282ea8743a0adcb4a7d88d49d1fc2a7abaa375b87cb071abd0fc8caa555f40b3b1a9ca7778035dcad5e1c10a3f02dfe643c2e6005bec0e565533e5b98f24c3259b90de16dfca057749030c0afc068bbbdf169682d2ed86c58bcf5" + }, + { /* i=3699 cDividendBits=2095 cDivisorBits=60 */ + "59b031a56909e8836252e5097bbf54e55f7d1075de8a91ea9a9127d53348d7cb11a78459d8f5db331ca44b32edacf8f4cd6484a1cc143609576745c74cab0a22dfe6ca11533b55a0f424424291d4e1ae305123ff96d283a719fbddc063762db7c17c81105e9e657760422ec81f8e1232c0bcd82c44e8c43c6367ca4df33e80ac14ab8d88f40b8b73b5847af085e155773f1960fd8909f5d5775f7ec35e3886fe62af7fed0f9b46e4a834e706cce00cdd70c80f997fbf4ca932ae7f1cb5d7b943a26aa9f52921ff7cc32eb8666e37d8c9fa7e15b11fbf4d13b07aa26dc400d47cf28162b39c550a71ffe4abdf7f10b8da7a6236dad568cb71d1ff415404d4b2a3e701fd67a8b9", + "04b23259b2745566", + "13193982937334966919a063d01cf86c4662cf8144ecbf3ea745deb86a291950dc84fae77a4ad436d41a17894c99f1ef08eb75cb20c8b57a1caeb314e3e38c6df8b92102708900899d5c9f5a07141849acebe1c673dfae40b75957fecc07c17e89955dd2cd3575d0e9a12688874c93da94f5564a1876f372e6c5d8cf07b2f2d734a485197f019bf933a331d7b4523a39d80089611f727affc63eaef52ee3bf2e3ccc7e75bd34dbe66eea6449b70072768ae5c2ae078af7eabd6409608e674fc39969fe3d46760b75cb4bfd57502d53217f34c91852f45a92a532c9070cbc05adabcd94de9604c8138a6f668606c8afd09c7194b52c1e161d1a0c9c1c391411", + "042145b5e14c04f3" + }, + { /* i=3700 cDividendBits=2988 cDivisorBits=156 */ + "01927bd48b6ec6c45983b96a9a7ef9776e79a07ca10f1e32217e5c2458dc0324d51a0e46ee49c38b81bdb957bd36441c24cec888d4d0a28bbcba0290657c65f4e74b21f679624950531100d42ce391e0cfec4ff15b653d260d61983354334542e5914d58cf0e98e4d87682041b1f7d79672586499e835d24636c83ce2c15e02e60e2dc6928ca96566e81aa85eb66b444d1029bbb5ece77253f1da35f964886abd088eaafa967c2473908f5f757e770ba8a208debd0cc3025c06049f5ba3315859d770473626bb123045743ad5ea498031a8648aaf57cf3f914a9dd4a82d9bee8900c5bbb5060e595d723cc6a060aa9f6231b866af48d1bb6827f3f36bb71b15946705ccb88764ff66fe1556434e8612ee76485128bfb8cf5b362992f6209b632e6eeaa78c0d3f673a99065e29b8648a63ca53614d073a90736df3376c1d09f574b7395f58c90ce334241f512531e916f88f6af698c68a6e7218d103f27f1a14a8b4a3314d59cf8aa624089881be9dc79c56e013197f3", + "0ac27cfad1b9a716729d1e6bff3696b0ecf0c0d9", + "256811fc52b8b395a52af83ed1cb18f1051d089dfdde9aaeea252d1fc8c4dc67d7fcabfbf29f1a9f28e260a1130ce61da55748320d5da05ba38e8248d7d7b1af77078380de758695811b4e1b33f0f21b7a3f5da34dbdc04bd55027efde5d8ef8654140f9d7c9212d99e1cb728b43b913b4d7df06df81d51d77b2b31bedfe111d86114b225b7b4e5b0cc5268a177e8031c2e0123992e66b1c18f607a4ddfffc800f67eafa03a2ef621f93e2fba0cc12f361d5e236ecbc69960f1b1b33a977643d8c6831098be7fb314cd8601d82c1dc0b5a820bb3db1fc419f54edf182b4b7345d1328955e820c5ccb361ed648bc4789cbe0026a26ed8791aafee0ea5fa2d0798f9b511f2ce619a7bcc656c18429ecb6a935a51e620dedcb50cb5c14f8907ce430d46da7f93777fe225ca9fd6517b288f14b9b6e7bed8c5066052a9b757fb08f9b7e0c9ddd9efb424f9dc750ed4eebdb114162ae6393a1265631ee75127eaf2ae12e1", + "04acd339f6d9c1ffd999490ef58febfa9e8ad73a" + }, + { /* i=3701 cDividendBits=1809 cDivisorBits=1116 */ + "dbc8a2674db4035e9fd32c96db2082b524a7d710b79e7bc774bfec1c8af562d39acac5192d1e1ceb43a209bde6dc3cfa4c40c17baab5ed8f09966a7aea6ce1fe69588153836dc062b70a6db19f9104edf356dc9a663d3b9c4c0653e9c41900f2afbf18a0d7fa1d425827e8de9ebdabeda3cfab2d0d5bdabc22bea1d429503c6e124b58c61af345245a7add5ab5cf4cb617a689094ca21e543b1e9f0a97fdae2c3419a9c2e2f4d803013e107a828ef46cd7e52410498955b713b2cb3b434e52da9f9182ad433a25977259cd38ca8f23accde62dd17a97cc57fafd8c6a9334e48e4b58", + "0321425dce74f2634d440205fc546dcec4cadce264ebbfe2da3cce1286c8b2fc47748e9182a1f1d25fc46dda64c3761b718e944dd06f9abb2da4b8f1ded1d34200483bf3080af20b34c5e049aedba9b1b30907059436a6fa8004bf08cc4a922f6132e2a126d17abb0617d612b97e431b9c487aefd1ed71c1f6fe3d9141218bced7928f3dd19289121e411b42", + "4638631e909348d034ff9643b061d928700abb26c51ce17a3c2e66d044f83e2e2d3d3a65843f251af12a7409e00bb7cb11ca80eb3ed27e0f1e3e5aefa1385c2c03da0e605204d97bc665050d58916bbd07028ecd90adab", + "02b68040d4ce506caa6803a7742bfe0c6e9b420043094a185d94bd5e9683e3d8e72fc36c4ce610dfc16509ce8eddc53175a762f34969cfa09b96deeafb7065c5d8e22c660cedd915a89e534b0e4c3a9b60b06c53ef67606494b7e60a2448a212f58bf925f589a553e9f06d8a17d906763e383746301946bf3658bf4bbf6801b5ec87741b295afb9980857c42" + }, + { /* i=3702 cDividendBits=3905 cDivisorBits=1576 */ + "012534cac42e3406faa0d124a74c9753bba66ebf1372cf32e513c94b73c590b53699cf5a7d6746caeab848db12885003b7fc6139818635f851d3ef27fbfb558b820c51b9fa9aa4597289790efd5a701677a693d06d9c4d7b32bbbf8408cebc1522273912fc9eded0111753e5c7d6f124944fdcc6312d00fdd23d03d87bb08a41b36f2a1625886a5fc0ea76a892db1b4fa379de72be769acd4c9ac63f83b71d1c5ebf3611a6b6bdafbac2882f3594893c18bf93d2ab674e793cd13de97ac1b212c25dbcc8bdf55cd7a8a1a686a5f1280c82a92ad49754c216d291d6a7ace87d9c7550ff211eff16700b6a14a532675882936e6b7f40a7e5c368782b02b0847a6d1100f8c9a9a88466e5907b93702934e0809e6905102f409ae7ed16b419cdc61d60e4465c50e30a5308f2ad578bddb6ad64d7722b8186ec0c92a9153e1c84311b0e6a1e5afa88e980dafeebb1a0ef89e45a0a7d5b1c3f0a7ee3606cff8d9d3f4dc368373d9ac262bf2f738f2daf5b38dc4a83d0089f0b4382fc17f39b91d211392f5c6529239bcd41a4d6bd13b29c82f1a53b8f80d9b2f80c24a0f4fd672040c4eb8de61e935453724a19be8d175db347160e7f1fcdc7b26705af3c75b73d4d4b9575b4af6ff591b897c0090ff385868bb3b3f7bd741705f8c34fc9a4e02049059c90d76bd4812fee9a", + "48ad8612fc41a1d182cbc86706f09a3120e197f9cb7fc5050eae69b51def52d9fa1b6d6c72fc925d406f63720ce1ccabd7065b4914f2c6f80db4df4df4133dbf9b97fd29c432bdd7acc703910734a1628c8c76aa8e555b504a874e66845d43a9c21e800e5a606efe11e91f095d1d80c2b0130e178170ac8142f8de4bb9d48198eec81c7d4a43f3723609d494abce17234006c376c107e0219f2c05ff158b9d45e6beaba6b7c2870d99798891a091e82a7fb1da5a5db8306d14c7565bce06897fc3ec493174", + "0408c9be569d0d8405a80d331ca12d6d3b71bbb435871d6244e0157b42a4aca0bfbce5505b084c4db0d652991aaf26e2d9718d0037bf9a8b111c39e51c13d551042df19620e199bae27575cf2940bfe08c30a5d71faf0ae8be5a8799e4a29b7d21bfe27314ab4810a83a2e872dbd3f8e4b57251afa2e04908937919eb5ac37fbcf6eb5b9aed057e75ab9a5470ae391257fa3c36bed2034dc5044731cdb32a7b52473f97292b4abd7ddedb850a0d2f08c5c42b10dd1401bc363ee059259ec476a75a1cd3a22f4c24753d75dd11a05112b54a3065699cfa631be84dcca63a267ce6a8dc240d81910304ebdc1df0fa9ca2f48d0d6264689098901b8f0a0edad4d2eed2ff0731e54b5f6a604456a31221ffdb8ba0a0c913cbe413745ede0c8a08ba8d8988c60", + "34c32f4d7ab1b1ca7df311a88a5c00cdbac05bdadb79cf98f8b0ae7c39c8b5aae8d2fab8b9bb2e43b6ac37d66d89a00bc82ca620818ff314b7203e7062f203fc1a41a65279cb5c9a41cfc0cf678de3b94864f664898479368fffdf3487fce5ba736a0a20895b08e4d3028830b6057aa58c84a626b6674e3457e34b66763ac3fd3cdeae326a336a6690f2d165a48e88cc2b5aaac306e4584361815676ca94c77f184aa41c87cc55dfaf3d5ff0f9d0c38d276e50c8fb43694bd72d1a47956953dfd4a1d1f31a" + }, + { /* i=3703 cDividendBits=3391 cDivisorBits=1720 */ + "4a2ab1a0f36d2c9f46540081dc171652258c57606b753e019ba5c5c590c6bd8d33c56ec7fc5f4f5a5b13d4c13f8f4f9cbb10fc93c2d002ee560bbf79a242c8b0670eea57e217bea6d41febedb3613f0bd6487e2f4c560c8cf06ec8860a1cfed02c7df9107a781138069005f8080ea5542c61e9f79b077a9a996bd60a3ab5229d70c54429a561b742b78c5b23e7cac10155a517fa6aefd2eb13551e28c4467ea4ed51600bd8e4ec39538f8325086a7258bf0084d438a63c2ca71f448ff981ee3927d73560e0fe4efb76f01e05e3e1065599980ea02c2f7aafb36dff785f3656ab0595862668df2d143e8a67b0de26938c6d34519e68e001dd041e709e547d0fcbe512c45b5eb5ca5f4d031bc78a578f087b365cab9147ea3b05f2d2be4730ff9707bc049ec2f8e961020e9c4ba52cc4db111ab9031464d938dca985ea8b9eedf79b25d26d48024562b7e23c3444735dd1644b2f3f79d56c5bcf59872bcb7583a4dd6bb196881f8c138ba45f4d972f0e725e808c20b5705a00d93fc0ad713c07766f2ba437bacb3f26ad4c95a8f54550bc200064a3ccb1a53e24c0245ce0a486e7c9aba09797ea9069", + "8b75f2f46489f3886bdc4bcdde9ce0ec81a4f0f6dc44d7bbe8c827d2622f1adc4e40b6ed8f54d3e2405d2f2b6eda1a60621f8ce3a65894ebdab843958f181869740f9c98c161bf826fb7925b282940e72ad2c6687bcac672a991f50420443eaf35f2aac6760a0a1f3d589db80be019af98cc42433f09671f591416ddf1af002a0744ec449666821f5fb7b9350487a12293b8a05db54b8fba2c3edd19926b1f3ae5f837d1c23a8f27c691f512f15c9d5edcee1337c52a2dfd741644ccbabc8e06ab45a9c12c3c7a5061f8223729af1bb4268198a23cbf9e", + "8824c632e4e7b4e283486fbcc7e3a8a7d1cd22e6f6ea4d9df551782dbe442dcfdfbbf105a7ea847730003cd4cfd1985f045e9c7562633219c27286dfb6f2c8850c61fb0f6b5ecf6365e2a9a9a818b0c51064e0b6cc4f5d8d1113c1677b55632af9d2d84a4ef8aa0daba78c5337aa0fb33466e929a38f45b43c2d5ba7d19ae1e31583b6397a2877a10bdcb44e2ec0dce6bb572fc8c97d0566ae299b0ad582a4f1bfbe8b15c67b7e0928a35016d75ee931fcee06e8524b4f27ff14136d67ca9abe88786a42f2205b02e39d3bef2807489ff6", + "80e5760b96b2f530e739b06ab4b84eef772d557d46638400b1c14cddc674ba53e3824d3d8e43bd452cc7ffa7234c8f1df566ed1f83755e0898a0df30e27d5ec06b1fea61b2b040ed271d6517a65255869ff6a5a96ac018413ead9db80eba66634217843c150e2233bfb6345e59d49c5ac12d974db17971e4ab92e4aa2c74f571ad37b0a735064cb3aa9aa22504ad247524f67e244ab8d1efee4726d7a352093f1ccf9747dfddbb79c6c79dfbfbd613b4222f625e8b07e729f93e1ca34ef8da60b3c4eb8d0d5eb6d38f315333e6cb1703038e24c0174c95" + }, + { /* i=3704 cDividendBits=1662 cDivisorBits=923 */ + "30feff77889de96b6339df1ea0ce21f06c727538960cacc85797e8dab1b3fa95db14f32301d87ab47ecfebc37e1ecdb9de23936935306b02c4f55adbaf8490e0656b12b445abf8886a2659c6f547f93cd628c29863529c946297009452971f165353e854d01b8d122b1b05065b01007edafd379dd2f5805495f0ee7eddc4fbc078e3a04d58f3045d40039707dcf3632745154db6e9d3d902403c6cc6aee42d9a36631d63bd6dc36f1b3fdfc7af3c8900c37b1863388de05ed804c269f84e26eed29b49d698f615f735dbbfb9a3fdca53", + "0594cd19a11eab62b874151fe1e9bda08f10e9fa277578a657af521e6e6d46445382fca99f9b8d8e84c7bf3db95368271e8359ec705568db2c2ab4cff840288c4d1739f41bfb45c34c32f06da0d044873613b126646cf3237581317a704b870ffffeb75f304d5c8d1b225b294c8821dd1bf9ab84", + "08c75803c68eb1097da4bac6882502e90ab837fd5c7d20b48ed0e7c95e5fda4dbe4b8200f3b379b3477c0bb7f23fcec59256efe7113b3c6b5a49680f406cc8c4e77bf49ac8c245218b1883d3b9bcddc725ddbad3a68de43bdc3d0c0ab9", + "041302563f54d7eeb6ccb67e591fc26ffe8ec40d4d90c2c5cbf1d71e35e2042ee9dcffe4e4fbbcd621f87aa1b875d4153173cbfa979afdf8e1de03fa46ff3abd93d5b2d19abaa8cf8db94e54528985acf306d4250c3ae09c960e31a0287d18add36ac7aa522ff978f41b10cb457a04d62dadafef" + }, + { /* i=3705 cDividendBits=3254 cDivisorBits=2348 */ + "fcfd5bef4e9ca04c586199210874eef044c33919cbd1ca97ced27f092f2f589bbc263c87c969ce8af00619ab0ccc9fa3a54aa30d95ac2ba3eacfcd59bf6d30b844cb548095272b6f7f62c888d112fb0d765fc3d1f3e48d47249dac9232e780e458befae3ceb33c86367340cddb17040e477536f59c7f9a9b861592b9736a6beb30d008de0a9d35139e3eb3201d48e457afd4233b7f600a166fc42bea712cec5f44a46c213413b7fcf4c8f66fabad1f952443c57cbde1f446a97fd0ac88d8fd4ac36de272397eff378e5c2d201d24ed36a2263ae783274190a6fc0611bddc555f95deddcc92b03013512da88565ef4c465460265f78b52e813ebe265bbca20b4369add40a9f6ab23d2222029d45d1680c03dab436942a8b7acab0f4fc252cbd8c14f8574963cb0470f76663844e6171756e6968209512578556e07ba28b46c2657eccfa258694c28762f449527e78694aa982a2ea8190269f48568cea1eed070b3871dfae3428431d50c4f9ab558875818a94665ca7504a00546bbe1105886e6f804e000b69585488297322b1e42dabc712e2d63d87b8", + "6b26403779630bc504109ee62e63d7e3e5c83e30b50722e3841c76af9fc56eb2e4fae548f5e95779dd209aca537b3ba5372ab928c8109203194284e44d5e591a97e143a9867b5fe1d8add56e177d7544ce5241758be38cf8062c4d3c74d482e541393f1af8d86fa6801eb69203443877933248aca667650872d66141c5a0e7909bbdec10c6062929bdbfce542668ea48daa582814a24f0f2a8c01405467b4649a9d10c8741b6c9116d414f9e93c78758d7cb5f6a0015ab28bd840a4025106c73940c97af48544c3e33e6cf2e5c631bc5090014b0a11c24f49f816baf66e8251fd09d2e31577927a0a1a80dbef74907ac196d18e13ca17e10de335edbc103753b6f0d9fa1f887dc2b50c03c1617394f54ccc469756140ce38452d5f06e8830f2694d81db462", + "025c708e9b8fbeb0d6fadadc52d36fa6b20e1a79fd739610ba9763800c61ae79f7088c5e8a564aab7fafb749404266a49af3bb15875a5da8c25e48147ddd25ae2e223b30d7ef7a4157268cb8e2b7c4e93a5abf656a22fbab269ab8c233fdc1d1e58d3df9295bfc4c3fab94d9c53d5f61fc9f", + "321668051b4c6360c223b7cc7b0d054063b3cd72529a4f244e0bbe8ac2d5993494bb19f0c47b6f6b8e5eae7e538841380a87a95e13f32d004a37c4c834fc14334c44fee50186b1e356e60aaa7eb97201234ea99a282d66b13f44e429dac1953739f3300e04449f39d0b221b701a3ad8fb931f208860b0fdbb54e5765958eae18d8a943514cd6c733b435cd3c197bd3289f9343057105cc3a0f98ee80fbc3b4006a6ac3ef3636520747b8b4b538592ee9694ef49f862f6c081736db9d243d91154e1ab3fd5e831977d740b55b522c34958db4f51c562dfc54acc60935f6e12125cca5c3738cf50892ba1eaeda9f2c2bc4c3c682962d5a95e0060d52ae88a063f0b906546c6d8a7c5c568e336f7f8ded52886d0424c63fe19f052e66bbff96d54927a71806da" + }, + { /* i=3706 cDividendBits=1983 cDivisorBits=1429 */ + "12877aabb20c27241764f27abc08975e8dd73215ff81ef02ad3fdfff90342795b8bfde0a0ab0862e6ed7fc559cd79b498a0b6b62efa8209afeed5765a3ee4a3f4432185154014cb72afaaf67b38adbfb9d7f3d748ccae642cc612d1d336ce10e240eb948c3722353b861de3006bd3335b70a3393d49055eebbf1ff4539e67cf554d4922ad49e16963828f786e7eb17ba779bf9b54dd1809c49841b619743dead8eaab0804894cc56c4b3e3eabefc112bc40b946653dbe76f93a47ea71c1865a4f5ee1031aeee4febb6f078ba258f16d283f22d70877ec11d1592879d53e2f99257b33a5a763dc42e60b8a802822e07995dce6fa1adb2cbaa", + "151a8bcfe6b4c46264dbf49cfc6e2c0895251a3f0a0e1ad130c60055305ad427478d882e3a9523042e6b3597f74a519511d3a627f5e4f561261b369f0d7bc9263360215bf114a4feec473ede28dd49ca787a9276f1c71f8ae17b35ae55101efae05da3df2dbcf29bd5be2abfd0df439b64eb6611bebc3432b66cce196bd157ae626afac79e8e2492545a36889733f429bf062dbe273b5672579621029de882d12340131599167689b435f8fd9d0884984af1e3", + "e0c523437ae3cf27900bb2fdb062cd233e433806c3ec12fc806bb62c7a71ce12105425916b1b2abd399c155a60f5ff304992682a0ca5f4ef16125ccfe88382eda3202a0405", + "110d2f8d6c426c6de2f30ee89fa6b0ef80fc96b07aa61af91090ae287e24563805c45de6d80d40573e94f36871e97fc6a68dec9c8ce585516a7d345333a1ef1c267d18ee188497174b62b7c16c8584df004241051988840f70b60dd7777be0d5db78a62e595fbf5644238bf7fa6e7b3068671606f54fb61e584781e5c63966ea045fe4f2318fdefa0a41af7d5eeb3f46700f357ce4b2bf62c8c0190eb7745dd41e5c279d9b940b7c0b38f9a4e3ad987936863b" + }, + { /* i=3707 cDividendBits=3910 cDivisorBits=426 */ + "3cab020aeb1d5d4c0f5500a1b3a184861fbe8137b5806b276e5bdbc558e3d80a6ea63e01ae500c42d4ed4d495801bbcb13a951460db53b62ddeb2b18f946e261082d693cdf09508d68c3a4da64c2b3945cc2744ff6d8e78a95467c80006df68a1873fce5d6dcb9e31b3b0728b73dd53e9a00fdd9cfec48b447d2efa38147331adb1705a3a96cccfb1e173f03b19fcb602797aade63eeb64e5f789ae21ca3e9976f82c67c821f2e277f29d1a0fffba0b7b7ab62f2711b9450ff7457aa080143e3d76de4f272db41ac11b5eb5be4a42006fcc1ee6a3e742119dc835943948237fbbb8605e3adcc844fe8829666150f288ca4bb18f8bb5fbb718b971f73590e8f0629e3e891e690fd95e45e10efc8f7306a4eba763bd79e9230589f8e864d6de0edd6b64f6d8aaef08ed3bef1dda54bad4cc8dc246259dc195e5f0d5f0283dc0d75e201b06198fcfe96eeda8689c73b08898c4c6043c2357878aa8ab746f2bb3284206130c91f4a6d27edb9add33c8cc25d388ff89af7438d936c03850a0626e4cb9bf4b29a00d6ed151d8bfeb7a6b551156343740f2243a95ddfb67e76b1a401f5f7ba7a4eff8e2e64b3d502cb9c34bb8060abb75b5ae604092e1f1bf49303736b24e84927209b7ae6052bff3b685944430b8e10749b03693e3d56fd1d19a021028642673d6448d27278", + "02f63808a27250f90cad4dc38822fc0fb9b34835198f9ee02a40cf0613cf4a934071eb3efd8f8964fcce9dafbe0e62100c15a7cf0b50", + "147bc961443e4372539571567f41d660e8878dc30bfeee1b697b76cb72e764c69294759e3a9392802f54e98126dea9fb082fb352ee9e30aa7dd82e49d959f3c10fbacf6401f6a9b568728159e91860a8f64421ab6a5b0afa6ece93557109e37d87d676d89f2149d752ba8a450293e081aa0ecb6938351132a9451d78d5eed9503f8d63f4823ca5f02b22656892b17bc7cce242125449cc2b703093ce6ac56498d664f0ef8b0a00922af1755126faa5ed53bf45f56f91880459c8a39570051af898e1952e96fc1a81b87d15ac364ba80e97af97f9385348f179d445898ec69948030e304d424880c5a3f7d84d2e8c7d0bcad87f5e586cb643120d22492878b0f821d82346f22737257f32892529a9474bd323075c28ae9feac0757feeed557286b58c020cf468c0ad58304b0c5cdc312f1fb9617f43caca750682a1d14afc4fdffe84d39eb870b3b63476583b42a0559b60a714c7becddf3113a3377c1c3eb6c5b1249bbaffd445ec1e79291d02b399baf3db5a7a92fdeec323a237f70928f0bf6cfa07350855fc6fccc0774627fc7a34c5ddfafd4f17758e1ac16d5ebe89576fca6d717c938ce68a0164095fa9311e4bc3294b86", + "fc4d6b36c7733a47cf88bcf89849b208587f32057065eebf9b839ad73222cdb6f0acb33cfbf097d319b3ef7eb264e04bae0a521698" + }, + { /* i=3708 cDividendBits=3886 cDivisorBits=3050 */ + "30451f2206bb59e815ea3ef605389d0f877a647cdbd62e6e29aece34ea493c77c3c97a4b84767cc18f0fadca5c152bb6f735f855d644a6dd7536a12fc2c9db36c7b53afe2819fb4fe17aac84f986e79f03cfd7cc4bb457a26f5f601c1f3b6cf9dcfd58ad9c1669554bc54e8f0e10f5d5fefcbe9f686efc0ab8349eebdc910d1ca00bc0cb9c369ad4cfd19378b81bea0f28d68fb8c1e306037f79300115cb0585ef1d647361364ece9b2a9b751e3974e7fd24863eaeaded44a29beab63af9fff98573c55e239a2bfe4eb10cf8b7f0a794c62da66d20f8b16803be7a8c2c7b81d12d196b482a05b637f00c4ffac7e3442c72d2ea77b2718dfb27e363e6aa5f8f9d7ec2b273b087a6ed8413999d4f17e36ef111040ca2740cd3ecc1c8ea97e34208a24d7a4b7da41a3574ae93795f6e483e3c1ec161e0ac1db3bc6614cf232451ed6bdc0844451a9a8b6c2a4da601173da69392d59f7e7b96e7a930f39c5751aad98b0b04d569f493dc48e64d85fe095fab5985b2f3ccb8f2e4d4fe8188c8feda8af3bd73af627cc0c93bf245d8a825902cf63ce35593c37ebf199d20adef11fbda52eb5dd28e03a830e9132f042972958c04caf6c1cc21ead2e732d5ef8f09a6bde107bf1a56b6af4b6dc63ca97938f36f8ac233b22d1aa3464e286174031a25d45f1a8f0e7ee6", + "016f3b4ca3fcba27fd3df18aaeab56dac93d7d3a07e96510828a6ecba18503a89c6fe19e1bf239bbc2735b8c73ea1eefc58aa7f15c2a7aad0ab08d1a3fb2408cfc1597f793a155d26b0995cb2384fe55ec689aeae0ef609fd663419500d578e438a48c7aaec834970aa411285ab3f28f702716cf87819b01c8941c478459ea266a6b3e296f64456adc5fcf7fd61654597bd0b0b05317d379c98fa5d111a813c241489482bf77d6159144e5f84170a7127017366b20f38c422af81cd762e89fa5512af0b28a1f8c6b92e84af3dff263ac79499a6e676faa3dfe953d54ba979d075e7df3b0bc3f993fabaf76f946eb0a705cf6021c5849f743f2acd96f86b6abd6b5b7f062ae85818a9f22a2dd386ba37e1e8c75bb7aeb2b9861a45837e39f308d85cb12e561d28994198a6296fc2a194fd54a021e2d4d925b434feaf9cf158b0ffbcc53c1324afe63ae10f6c1254f14db40c91b5cd76fe42ed9284abe6af105d1d06dd2ba44411199f6ed206a4bdda747b6e602c9b1009ab823a68bbc6cb5", + "21a63e99f112376ca949e16f8955c7c1ca1e44c8e450e2f1adc46d5199b17acdbec4a3a115c04f2752442b1719219d450103603f3e5fe3b656ca3aab811ad75a5eac7a7a8df29c32c50a276ba65ec5441628bc62fb883624b2ac8b06caacac6a8e6ca9309c6f00e132", + "08047372ccc622122cd28a600fb0695fcaff679f8d237dd98a305f288e785a78a049a01c6322a16635c54b06fa44755a296cfe46cffb057184002864df3b400c43428c0cbbb0473644c5b79834fd5e4ff6e0ee2f3c303c7a8eddefc830bf19eb4c25774b042c3bffcd7fb3a4cf68e664e00dd10a8cad4587b8850639b1ed83f53015713bd4898384e5ec813e2b6a3c956bd37a763c98d0bbefe450293bfe7b427879eb0c30618306fec14f4293dd192c70a6f828a79b9d6eb6912d4778e05ca8da6565ca35694ce4c66159f9acfd8cfe35f34ef9e5c94faa3f73070b21a19e53d142c216ea8b5df16608d48ea6f5e69a7b9b197d58501d98d8d4e03e773aa3037a2ee8e9d8edd1a480eb9bf3e9b14c3ab3b16a25729af21f701885e4b1d5c4d9c8b60d9f22c3c2f11a158a3eb7b9f160144496101b39baffd3102648bb0c774e81cf04ac0bad4644185416274ea875282c37f95732b2ecc38cdff62eccc4430f8a93dd0b4a0832327f64424c055b5af05c867a2234454026542db62e8c" + }, + { /* i=3709 cDividendBits=3063 cDivisorBits=598 */ + "2cbb0c0949342be01de2b539e0fd2cfff52a9c446ebc14d5d149fdf5be75a13691b02c8ea3130bdcd0aac6a0bf39a03e42c934ba3b601b1a81cf1e5d8bc482e79fcf36cc1727f9b56ded9305d9e2a80fec1e9af30cf4048d2ce04698f11c79674226035f92eb7c66e72042cf874b81310f66c6ad4f1c25ca3c167c00c69b3fc24c0c8bb8c717b50b66e98d1d9f4b320588dca4dbeeaac929e5d9e3e50a24ef83b7c4058015907b73553aa99e4a1c741198b99a59498293f9935479c03c81a8705602f8157841a5958f2a8867739e0a8008923648a2c3e594e14b3bfc976f74dc858f497e797ac6addb95f77352963b2576822894b8d965444ed1cccfe0e3331a2ac16c1ef611c2b19883426a4c9f360b715714430fb74fe7fc11b237236a7cca44d2343aa7d9acb48499e41d1ccc753162e83bef77fc688a552a688aa691bcf64d652ae42d7f3318a5704a9e549a2b303e7d68201f0a239a1d1786f4e036240ac71d4f987c7741c36e190adce7615fcdfb719acc59df1bd52ada6f0c6994a3", + "30524a61c60a462f7d018728252a25b739fe3c1531f89e7f6062c19329dcb079f0941d1163391f819e99269f39070f233ab6e0dcdaf34605b60962b2e9ac2366bbd897a20a15f1a1ed7457", + "ecf9fb40352826b64b7f4fb751e1a2a0dc4233e3918897783082c206ff423f516749ca290a4708c25c7c8607856bd68240d7bd8fee0ce280da38b783e6477a0170196c7f6460828a188410286eb3967ff3603f59e2b62c647a6c08e957b086901215825b4738d9950e3fd1b6c11b431e9f0d0cf68c0abb101d4b40e14e88b3f0b621aebe4656b9af4bb476b01ebabd7c818cc9a2267bcf11edde4c9c7b25e069965886efd001543dd15021db432290bc3c9d986644682e03f79db934fe092b63269d94c0a6c004e6e6d4073af85c7271ce8c2a1a28890da01cc026f0d9e54b5f5615e809a7e0644abe35012f1af7c51f57846619f5f0d8e25d803576e2ee2559afebc1d13aeec2d13e9e72c0f02d83405f96fc9e58d1318d07a0bd996efe723884647dbefda5d83818d0ce23ee6a864f12b810a6", + "1279611e9a57a8dd3ff25e826ee3c4f20bd40b916ac0ce5e99f5fd4d53d018fbc727c068b96671aa04cfeffac621736312dafdf8813430a77e7fd7cc89c29731aacd2a0cffffee78a2b439" + }, + { /* i=3710 cDividendBits=1305 cDivisorBits=1213 */ + "01d08a70ee9ea62443bd0d993e6d0781668f4dc66ce57b97754ea2eccc99fb1defcbdeac808c416de25f72f10405991270936fab29c75acfd8b38083675e01ea9b330ea3b9b6df02e7ac51663dd8ca01bc24cf752b53534cd3e779184ffd2e7c996df591a45f79f61cd99831711d703b38acc892d6a2f6847295b5e22338e0bae6ddfb4716e9685b82498a6a11e71e25d5ae1a1595bfda3f23214a137fc11d297bb68d42", + "0db2326a3f9f8307f6dbdcff1459e33cba4c7b0173d94b10ec9f7a0a161a10e7e1a5f38351cd0ce8323fc2799faf682882967765437c89e55e8e8babba5cbde08516ea85c93f97a09905eb8dabd91939931aeb56d3db823a5c23ec41032602007acd617d9243349803edb4242fdb5b76aa47af720f401a76345b667e12b13aba41f8581926afa4a8fda3149180151685778201dd470d1f63", + "21eaf4187a4b0b77c161053e", + "0b45ff7f99944d027b8b69ee82466b28337de2a4c4702a4c8a8243690472051da8b5a96e0f7d870fefc98f65b1873e064ac9fcf173b5625c7a83aee5a7424a860988f747cd4df1552392d4bb8029b73c713badabad0244139dd327b9bcce1675187c7a396e01f78253c8176c82c36b94244c128c137c2cb5cfc535de624e03e8d2d5fbae11792a5c7df2b5e0cb132fc1855eae877d690448" + }, + { /* i=3711 cDividendBits=1867 cDivisorBits=1392 */ + "0314c77db1a5c05cc8c67c2843c01aba25569e9aacff9f9fe3dd4e17fc5c87a9bc7d27be976292a7185f33635198596ebb15a33c33e4806e59ea3f4ce34eaa5b9ec03dfc59744baa1b112593823907275f0c4319e1725fabf6d569fb78dea20f7329c0ca8aaae794a5f769226ad7be3219e4d11410ffe6b6534a2ce73e74f30380adbd5344d74055b3f00f8b30d6374ccba1e255dc2a8f954e5e714bf34ac5409fb23d9e7d8bdc10dd3507247e483158d1eb041144adc4b68d173cf3c85e4d3d9acee57f011ee59f049ced8526921545857c40ca03e0adf22078ad782e0dd967d6ab956589146fcca1b6", + "a41679ff96153684aac1753d89d16041b94600ba2ec1ff72ea32aaeaf4042aad36cb16795d31b6012590049bba8f5b5a003bbd0e85c340c8ef6f08a97793d1fc21d4fcaaff07ffcde68afcc95e196a3bf6dd2a54c3a8791e179fbc2c1af54dbb8457c9fc081e67db5294bf4aad195889afefefb792b26554194e93940d4a1f87b6726faed5f340244fb173b267e29a2573e023fa612e2d2dd822c98502112d6a93d82cb6d9ce4f1ed6abfda143d5", + "04ce9b3b297b89cdac20e55805a22e71c5e34d3a54e75fd0c546f2dcdc675efaa7108e630c9a8f37cc0cb0297e7cdb4e1841d8fcba8b241293e8e9cf", + "2965556e6400f8f143d15b03df7d2cad9429089d0c94f59b4a430ea6f59aaa3731329b3362a5384691b1fbbc7802754309f84229e1cae83ba3d2ea3206dbb49760ac4926b8c9205b866d65cdb5474a2cede5d38d4229d1755ab81b678feab415f9935d6db6b59c09648bab76bd7905f4764b793e8d4dcd8696478be30d6d8813e7657d41857bba636186f16a62f4c1174676e1c11ab0cac691ecf38603f55be2d5ed11d5e258220a3d17cba1eb7b" + }, + { /* i=3712 cDividendBits=543 cDivisorBits=310 */ + "25b9fb0cf3c82f89c13df478e8042287d47639e319809764d2fa94e79ad40b413465079a747e96f4717e52a11d530e923e5f9572b0e63216f43ba46405d53a99d0815b80", + "0bf617799304feb169cf2ab1a8821ae99213f2686a7c27659e0313ff1d4d5bc04b49b7ced83d4a", + "03276f9d37c7fc64e42ef136af8522d2b0165698604017865357448a4524", + "019c041b8dbaee5e6a3746be638f84cdb6de72baf5513d8973a7c13275f5c4fe418f01bfafcb18" + }, + { /* i=3713 cDividendBits=1822 cDivisorBits=1354 */ + "8e9514263bd48b395618a0cef0072b1919d77274c5ef6cb904dd3d40794054fcf0fc629a71b6c96602ea322ea2d5e8d6a829260d3922b90aeaa09fd6d9c0267d8a935f8f3d44f05651db23e54ab2bf98a91d5233019aca5da3076355ca2d134ad6eba08f169bf2758dbafa524a9d28b262347cd0662e0855b27b97e72258589cbab034e0b4ce31d4bea55234ec973f6529fc6ded555742f252b29d0b11c5def8f6ac45e6c2027d7caf026de9ae8b3b3678acaf9550ae539351cc67ed73aa79ab5d234e1ab8c478d9c8d6c24ed6236b0f96a3020cb6bbd1fb2ffbfa04dcbedf59e68ef4", + "01705385b9756456626ba8d0b390a5d9d760fbb5dfb137e810a0dbe84e8862a6130b112a40430cf623f7385c1f8e6dcf8d14c95cddedb5665db8ed0eb05819da0575ba11edd230a40d5bb442f835fa9b119ff6fc09fa5b5b8bec07c225f495930edf838b922fa2ea6fd515764baec2e557fab0b6d9ee16cabced1e44180771a4a65d8023d7172132164da004d82b67e935a4ed640d7843668803e9bbdf3e8427b1f8f489268186624cdd", + "63199011027889407b3b27b40cccb5dacf7437143c9a7da854ad12565aa0e7b2a3adf38beb3429a4a840e3daf5b905c4d4007b7f15a03d3bf9ef", + "4cc2ae4bc6a043477bcc94ec27a365d24fa675d807bb026a47759bdf2fbabe36638fdb30ef34904b0720dcff4e619ca4f1232db1db0f1a9028491d9cae5137bce07e80c32269fa04abb1721243e44e5ff9dda21a1a33e6633146487c752d7870bf69bb4a6c886c7d7c69ae11df8d5e9d72f93e8dc09753f3b94b7da6844b72a87f1a2e33131ad9d4a9241995fa4416e6949752ad887ef238cfcc669b67a9d20a3f371d4024e76ed7a1" + }, + { /* i=3714 cDividendBits=469 cDivisorBits=454 */ + "0f7e0be6a103fb9ee542f060158d8b137f287617c42955acec9d69e9afd409558109cdd67f517ba807d91d39cad2f3ec3a3ba6f6c1ad48da88333f", + "378f12666a8edc18029a65acbf1d60530f3727c6cdb9560cc3936a1ca5aa4a428570a936afa0ab157f14ad8ece7fa07918e364754b59a0e75a", + "4762", + "19072e4191e3fb591f12406b3c1d962456f267002ddc717ca90d1eea638ca09079c78dacb0b3935fbb2cbee2818f35f90f0dc4e094eac5accb" + }, + { /* i=3715 cDividendBits=1909 cDivisorBits=1331 */ + "0546b66ee735720826adbc859b51a35108c2c72b06313ebca0500aaa15b5f92ada03c43952c1e9f5021f95c21cac90b5a0a7d4b7550ded8480fd3d3412a193a83ec61f66fe8a8c59e4fab346790cfdda5a8bdf91dc1944f0c60ef0c3a95a96e721c1d3fb4be6849a538f84bf7318237e78cf0f2773cd86dd22ea708265aef610a414c4624377b53958b7907691a6ae67628bc587cd1c2efcf5edaaafb49534cde5f8e2fe2de2bd3b95cacc3335bb9d738274ea9867895940c524f398500836a871b20303b3abeaa450716b5c538e99898f23bd97397808cf9606aac8cb16c7496c191b3392ec6e0ade65f65d96c31d", + "0191534b45f2e387e64c8ee743ee3e2139d979a345e803386c537a34f312114ebd1d6fda46fdf44929d40258584cb7115d6b9f5023a78bdfb36927d2518c7491dfc677b9b840fd0da418453726a5746d05ab76199621e4e27f3bfc62ca669376640ffb4c4fe74b1068421e04ac3b0fc2d572ea54240fd43ef66d2d13cacadc8dd1fb753eaa77fc7ff5bcf4d9287d48617f2f307c42039ffc7a11a756651355c39ede2489e3c4bf", + "035d99eab6f6ae3907db3532e8c6380e83622d3e54ec22f75dbe537e42974793e215b84af2ea2fbd2f57d693ea5f6b3ed1f9532fb392b8477ca5e0979f9246639bd2e80cf5d990cb09", + "920f689618520cb27589782405a771f7a4e4ad71c359a0e1c424d63425d3ad82b33ae4fea0749f81d837c5eefae57f9462a00f6160770609eb87da19d9e66e81061a07f158351cb16d9286a8dcddef76d2de04f1a73aadf28926f80ca75c471de3c0e414c82ee61f47a3106e55f4652bdc1f1d71e9d4a3d3ae7a5845fa6ea55d179d901f9241cf33eef90e0f2c2e6ccdf387c502704dd5924a7530ba6ebea365bca655216366" + }, + { /* i=3716 cDividendBits=504 cDivisorBits=484 */ + "8773911f959f280e69bc208dffed9eabff3154cdd7aa596c1c56a72fe83f74640b1fe1f1c497b6169db913dfd55c8c3d5ddc60de04fd3b4bf6f0164be1fb14", + "03a0095b826486ae1063e0c7c6ef79c4368ad979be1072211ed1c1cc33bcbad0e2920a18e6f5092ad3e4823217b8aed8bbb14b6c739485e71b24d43c2b", + "255d4b", + "039cc0e9f8855a598dc2d184bdeb28d37a866e93325b301f69d17859bc0aae82fde461fab4c7bf2c2b6410603c4a478e14d9d1c30fbcdb0c14b5a1bb7b" + }, + { /* i=3717 cDividendBits=1154 cDivisorBits=103 */ + "5b9c6bedc28330c4924044f796ee02439773d75b722135ff26f6965a58996b363692fff9ee8283db1cee0389d36bde4c5935610f790cf7157a703aa6186521abbd4edc53aa96235ef93688651a9d11cca32c32c41ae3db948d7168295d917024eee9bb30c57f7e4bddf0c9053809c895b0d4b551aee1b1f54c921a7161421b83fe559367ceb2833daa2f97788b9ae530", + "1b0b492fb12dc58a0434af55c4", + "03633137ead2fe4340f30958ee79a5409a9d8f50cc95720c0319ae33bc888411b11b75cb7e6a3180ed3b82c1fd2e64bdeff59123d54a60dc0deecdf42f6e24c1e9a7e3ec15fe0067c82cfa98b611526215946daaffc184a04534f69953b8560e62bdf795feab08eb832640b0e99cdcc5a7855653854d1e14c60d8b173c130fadb4bc8ce3", + "038de82c568e5a7e69254aa864" + }, + { /* i=3718 cDividendBits=1308 cDivisorBits=1080 */ + "074defc05ff5b5db46c018b35e863da5af3c9f0a478b43ca7f09412f3014df95ca59878879772133c44ac9a838f887cff98ee93b0124e715fec9075a206036591c17ec931a14c95a58dd6d3412300362764beecee84a29df6fb2143f1bc397c654cb9490e3be1f61e10466ad5b38f7fbae5d78537c7abe5c7d685c0579a607917da254754650a07b488b2c36063d6b5f14e986b111fbe74ad80530494f6190319a8d4a15", + "d58805a7c3a60d368b0175e645c885bca1c1e86e8a7ea2545491e0d5f894c8ac87109ac4f4d64407e49a92c3f52d7c2e071665d2c702cd919e0a8553b24da53c70d962cf158bf57abb5b0a9036d212076c6be25d7bd2d75ad31166f333c1dcdba0c718011e9bc6ffa3d4c37366c09fe8d41e819d6cc01eb5377ebdf7ed6741a58af46d50d6fba1", + "08c1d7d4f5bdbda305bfdb49181d6a03f65ae072e16dfb0d51f284e666", + "d255a6a36215a90ebd9c0158f79a6570b33fab64895491cc7fc5458f18733b5e70a46a5a8320d860074140ba137cb742a5de8a5181462f306ae013a8bfe540337135722bac2448f2dc88fbdba4773c2e1ffe93fba05092b760e941a80d1e1f90098bf89abaf3b5c041f78f418082a3dc867391a44a6640133a7bfb4676d09260f942594dce61ef" + }, + { /* i=3719 cDividendBits=1516 cDivisorBits=1102 */ + "0db0908ad9fcd6efb543594adef381e37bafcbdbc897efb6776e6adc6982d36fc2bb9aa8cdc5c5db1dbf4a9756701c92da691e5d737dfe7e15339b370ed7378abb547e1fb62fd5450b9d6b90e8787fa9ba5cf7cadfb10ff525ca25daf1a4b0dcf6ad8b2bda33eb936b3bfc51801e453f13952473437a74accaa251f4e81fa63292a7eaa92c693a6fcb68091b16d29653d8742674483f893a24e61e8b32ec58b7578453360c9d5b5e53a2a1d65d0fbb62ea79144c61bdaa099638f68a7ddf", + "097d8259e9ddf0a94aec8d54242edb360a95903d6915d8e229730d060d917fd28d197360ff8274548aa367630c2188d752ac67dbbc1e566fc4034dfe0197e92421a587790dc743e599be0059cd26f4e8ef7eb7a1bc206b12c540b5411180e8fbe909f74349d6115d4f2034beb97f73994a41996288da2afa344e78648e0f1c3c81d65603419821821ba3", + "0171479da5391a243b05c67ae2773b8016e261337dd1737d3167acbb54938c0622ec5ee781818d426b3db50daec5fe1cac979cb140", + "051b6b7f7f9130493f939efe3c901198f519473fcae5198124d9b4f2384163b3683a9a8a49644d5e54112e016640cbcc5468dbecdf5af15650345a9914e4cbdcbeab0edae6e0138c6e6f1aece1633938496ef8c6b7ef62c4b1e3c3e72cb35a4efe187dd935e5520e87fa9be9cce349dbc1178fb5a140db6a4b041e15f4c994e240fc9b3c71eba493e21f" + }, + { /* i=3720 cDividendBits=1451 cDivisorBits=789 */ + "06fc971efc3ec5ca72dd46b7ce4447ec967fc7420940802ae0fa34be9b19eb86fdd5e22363d59194f1888b94170ca622072e13df6a4a64a3ba906e93888823a63224bd63b59ed089c2ea1a8db53eb10e44a0b52fa4147cf45c43070bf7ad968ba543762309fe89531540f166a16e4a8299bb94ca10f8194be7d4c4d63a383b2e7c537e8f9b99098cede7b1eac31b0392ece39184b4e26f3b59e945d7c71dc9765c157156dee57a5c9f33480f66f722878ec1b5a97a6f", + "1e7105f46614401006a4ed3eb4eb3d66bd69c4f6e588f4cede79a4c69c3ca192b6dc9088c0427a64b889feb98404afa6fcface902899496b76d850c1440312cf726bd243cf53804c5a014dba6bc14a9f2ea08747ad0998e76fe16130f214571fe3406b", + "3ac14802d4d0f0c00dd104ab85dc0e6f8d396d69023c4c41300b51822161d5fc01479353e485d749f6a58b99eed1b0238bbd0ac1708b511e921f85ebd9592abd82e551a8f7ca2ce0a176f8ac7312b7034e4371", + "168ec9abcbc8d2047e4e9a2d6f4ebc345cfee4ad36cafc46dcc79bd006be9c8d81a95865a373c2895b01f6eb852c590586ebb9f2038e331b2d3af8be2ba7996cf65cd5681d9fd220d5a54d6385e4402967040aca16b24c925354b65a62d37846e40a34" + }, + { /* i=3721 cDividendBits=3031 cDivisorBits=2938 */ + "648c3aface81b69af323d2bce412e7142071295397d03ff776d8853ee8983e721272dcd610f8006343f7cb8ae9f5134d30db46f563090ea958182bd2a025fe31ccb5795b31ad5830334540eb7ef2872032813abc2dc5661cf07e156332c70fa5f868269bf911ddfb88c9eed255c9e06233d1cce085f0a1b88b89cbeefa54d2e422cd9e04da7ff4a710ef00723ca652324cc96c759f9827687b5a91aca78d175fcb9f09181e6010ca777d9f5a842eb75086e0b889268037d4bf866c343a821160cfc74ad9701ff9a726b6c5bcf710fc29fada2280676615fa805b894ed5a9a8b84d9fd9d10f75d908bf53c803700b6e6e8b655a8c02eab6a794f917d674ebee6d84f74559e8648f49a6e1994c4dd2ce5f9859f30895a88c807810178c0d5b0861d3841842a37f678d3e954bd5a486958f0aca967af12b2837f9c23b7711368750211f53f5272cacffc54cc09ab9adcdbb466b46d0a7a04f54da8da17cc0ea7f155a4d914200ca861af72a30bb8ade1a3121609884ec7cb2c59de9ba", + "01acfb1aa7b8c856ea81f0bd44ff8ac6616091d4defde932ff5887b88c8de3d7891de3d029f9d278c122aa5fd2521a2cf49c32fbc7acc2226f498b22b52669020f2bb6aa9e55e121a5ff37dcf776cd224aa1baa72243a2342e08e8e2a3375727f4b02c0c670c23ac2f8cb19c384d4e0d4b19ac8538fd7439e6ea1f67936d5329341af31f07bbe817e672af032e78e484abe850d5ebdb0a371fd2382168c505335e2d54bbe363ada8f4051ef10a17c910c0a65346cdbb9365ab452d66fd367b2e59cdd1da0f704b66dc73ba861aa2b7838e49f9b4ce3ed45391597f99cd5f118e404244707fe0fc0b303e2f5b4eb0efb8a86afd9afcf26784e379c1d9b346f85c4760d99f2177566cb93c6a079c59354f924e0ace556ab2cf5865762318a122e44d2660b4ecc3c5eca0fb07d35b18a9cb6307104e486c7809e3508e16173ee7df413e1667c60658b6483933d93bcb932b639cdab0f9ffafa6601ca15925f58972d6d087d45d949c9ad9391575f7c52ad2", + "3c00d27f6aada523035cbc46", + "4d202548a77aaf90e118a720c0d8cd65e35677dc255924d8feb841224109ff1780efeb85bb2914df04adea4191ac472f7aa1f9af5ebd0dcc10d94276e7791c7478a734c4f44ed72925ccbd96a9bd8e699bdefcb7b5a79be468ce9d95370458a1c2d63e19ad3550943f9dc907e633e76df38151ad02740a563d2edf7781ffb59de147e2119785e6aa8f3ea231535d7d4a471e777742846669e4c63da92d666042a5d4dcb98fd577fa4e6b3740c09af80a8ec3f8b571d15f06fb831fabb43b444c9f80cd570b8260fa0dd880853ea2efdd87d3623862415df729c8d52329f5a6113e3ca99622f3bab2dfe3ceddc642a3b500afdcfc2eee6810d10420b271d9186ea4314eca7e970a041f753c9bd89d3f7b0cedd93936ad6937a1761f34852d6b13217d3271974dd23e6ae9130b5d371a5e35dc0af93f4306d80ae2b749646d8ca49f5cc6592c80fc821c19628a61b3a3c3e089232cc01ccba3aef1478bae49d6c9851f9ea8678cfd42c96d6a60c9fc4e" + }, + { /* i=3722 cDividendBits=741 cDivisorBits=166 */ + "1ccf44dee0a8aceca852c99a10ccc0f1c4345826602eca8b998b01034ae178f45156cc639ab2fa1b20ef1f67fe519ce054c00886d0f8726a5b3434ab89df9ced22e401966470f28ecb082ac4d30334503ac59630b2c8cf52f4d65203f4", + "2e29b5800b4d48d2b883dd5bdf30627a572d4a88de", + "9fc41ce268fe382e6b61aee7ac9beef4117d8dca6d69101b6b5db400f509cdc1c4b84a6f1f6f0c7831cd655e5a502aedccca5b328de296e1d1e8d3ba67c20624e54594c09aa9cdcb", + "0b46afa43a81dc3468b384f20ed117c585560fb5ea" + }, + { /* i=3723 cDividendBits=1693 cDivisorBits=158 */ + "15f126e1463e0cbf8212cdac72c27c3ebc0675089c659d9c1c31f55fcf9e99f6bd8ea1846791419830f2afd5f62ad34644b9772859342f37acafc45cf3b090440a254cebc10e1f8f7a838adba15f5403a833aa61d932094c68b1d5da7ef5254ca39cbf2e4d5c13dc9df9adad85622f8bdbbf4c93a16c3cd4048951203673745f54f09629ccb77a403ce7095e2968b0b133d3673c31b116bdb82c550d4ed31dc64396f337d4a3608145a31d5ceecdbe86b5b2d72b3206db9c3344355e5b618c951bc0c486295591acb3e266599446bb2443b34cf5", + "2ecc468c2702086c2dc7334de252797f359a3099", + "7807a55774272b23353d879983d606919b818efbadb12aa7a9358efb0d0921a8b94e3bbaba0593242d4c5ce2a8f6c61e0701428bf59e368ff2475c80002371da05d0017044e5a4ce2b448e62785b67d703d179ebbe90c9e5d84f01c1ef8f68c85648797576740fefd76e655cd4adec52c01ac53ad34b5b87c8e6e05ca46e3a2ec76be3e350d241d507a76f6a2e949566edda4b8af02f0bdbce23a5876ff57478dd28960a7c21c67d9fe70d5059d965a3c74a80e34bbabba368b8f861694677a7", + "12891fcdc2fe82d4b7f7dfd76fc1cf2c94b07a26" + }, + { /* i=3724 cDividendBits=2689 cDivisorBits=906 */ + "0148b8be4d3ff973da2f81ec3b3dc31ced51e4ba7e0f8638de14f84c97008b46cb1b93d39cf2a709c17a5b5f66d5d1cb71051e3f5111e66520e7d17f5c8299a5036410a0aad35e34989831d69b61471a5fa0d5391e53f2218f153d945e00e2325db0e96cd85fce0b3dd4c29374b6fe8e73847be247e617eeec2ef1f046f9d4edfe64dcba10a9441a001b7182c7d5ecf6a4a277bdd2d3de7bf85dd968576f58fd167368cf3d28bf63ed06e20368a9a46dc604b986d6ac3b7fb559403563b533749c089ec61d1514f786ea17d912ec9f70e841367184e5483727065d89c29396f87d8655e6bfc83c5f96b2b50340ca0c0bb1fa9d79f55dd60b5aa6a21771190040b0c01a9aa8e4b9eac654ce1f237c62d52bb42fa4e39a44b5ce29b358f043e8fa80f614d43a3f97f5d18f5a457f8ba1e2ed8cd15b5b2658103e35994dce0afa0ed6ad40d0b9a4095db01e41c2b62e53d3f5", + "01ad285c5fef1cc66382fb04da80eea4aed93a2a350f6b02de24c1aa879540d8a4c5519965fd82ff8647d0464c37fa217a2cac40aea9f605d3154a390985882a136bf7cd556581c06b9e78c87a7ca042f926717d56fedffe759d2b9f202ae2bad51d9ceb1916f1e623488c26b0275f1dbe0f", + "c41692cee5f500fe0f4911556cf53e571bc2972aae2b2b2c612ce26b24fd91a29bfd01a6ed559ab05912099bdcee2a94359523d2376b37648e22d603b9e5f69c44ecb673d1845fb3184524e3e7181719b89074e98dc8ecaead5c0477beefb17c34ed9a7b0fd8be79bbc388a6cf819bfd7ce85f1f3925f301327e84c88498d4ad74f130ef8192e3f72d99efc750ac8ce91f93afa2e4ac7666b3edf286b10e1e61b1f7ab18afda437fd5b3ac34156af41c507fc1d82528c4aa0f64adb305b1b71426e4d33a10a6c3c731086680910fd6984ff07a2d2f4e9283e6e739ec535e14", + "016148df3d78d216b8c6e096118ccdd89a5874620a3d2dfb594a2e73060f1d727e23a31efe443ae53115fe713949ad2b761e126be06631894825a343c14326a2e5e9d79beee51f1c25ed5777c759d1382c4f27ece598967afc5433a21fd675d327b4b59705ff8e247a7f1b816e84615a78c9" + }, + { /* i=3725 cDividendBits=2705 cDivisorBits=489 */ + "0157a2b8f1cdb5e1ba87a9fb40e06caa05fd4194df505079d82901ccb61a483c61435f4813ced97273b620b95acd0e586243b344d95d3eb1ceaeefa4cc4c378cf68980121bc976488687de4a918a1ca1256c22708ca0b371dc99f3e73c2bfc964a7ae6e64c259d1f7a8dfec5d6b8054d0a0b7ed485468ccbef59e9d98f14a1ce758ad0f1f5ae16bbc6254e0e490a56c45eeb6713f5d629664f2ec709c3bdfc28ba8495fcfd2c0c15faff5a5c935429bee233cdeba4e0465906da547275335420facc5649096d0e81fe07693a99d9db8b1fbe74143aeaa567c3676ffc34d667110053ff4f7c4b6f879a9fb7c8d65efcbd4ba0c960235c1f139b0bcdc43ef16b33d5d13967f24472eb3bf1e7559b7ca8c292a6d7098affcb4410943322cfbf3b215dbf88114dcbc669d37464fd9d63401a48fbe26dfb9f676126cfe231f8ab65cc1634799449e8eac29f7326e902348a4578ff20", + "01e03c1b0d84db54318c4eb424228e56c1ec046e966129f35b2e538a903a4368b8a42c861dc0fd09d8aac0c756ddc73ebc66320f03a5ed4a21e8bd0e16b9", + "b72ec7cc768be7e022ffc6af3ed91876a8f4f4ca194c6fd6c5d948fe5d9d0a919362adc4101d7601b439b523b1aec5e229e0fd2771e9d63fd4ec114b977227098fa3f12c9d343ea33a3f369e9c14657b45cbc44e76b50af1e24dca2f73e60ee7c31dd1046f8155b329681965e7a473676e6f70dc1280ffaf26e159efa8ea4ffb7535e6786dfe9483fffb729e76fbffffc7be6d429b4ac4d7078c314795269f2e58db92a641acc4252ccdac3774ff5b5e939d96994ec77f4f92e856752ba3ca0320a07cac54c53fb7c7c3a4aa66ac858f20cf9b8f815a75e4faef4d6aa0b27ec3f2e103e1397e1507b9cd50cd1c9c077386cbee161c5934b05b762d2ee212def543ee563b27dca80293ee41a9d1e0c78c7f821d5384", + "014bde48167bfc3a4f997e03c0d0c94955773bcb8d062344d74fd9b00f5f0979bec1247fd4fb97d131a58a786e44fc5e8b4fbc442d5376323f53b3e24cbc" + }, + { /* i=3726 cDividendBits=1055 cDivisorBits=106 */ + "0d6f1bae591edb84bf9f58f853e51004647af2eacaf1a41e80b3d763ac296708b691e19414acc2e00f1b83dd6fc99d266e6845a21ad0749907b90ab3e4b197a3ab4e1e3b94ddb43d017ec3ff2e3d7eb5490e5853654026ba03e4095dc4739b6b385211beae31257f5709380bc5439e19966b4079f6a61b038928a9c0c6e0a3f477e3a5d5", + "0334c5d69baa002c136cf3b5aaf6", + "0430a96f5f12f282d631cb442d4ab8109b23322651aac2730d32a2d4cb409904ff54282b2a2e026e6679b5fba5c8bde73420434bf90489c36b033685e655776d799ee3b019196f80e4f28fa87da32213a8331504311a1ac486c5d84f11c008ab8109ec1151651bfbf89382c3a638904e002a03a7ef5c04", + "b498faca7d1c54c8a849f291fd" + }, + { /* i=3727 cDividendBits=1100 cDivisorBits=622 */ + "0d5375c9dc5b2aa92f4814c6e1b40892c82e5e292d9817887de516efcf2476c53745bdca3caa05e627750ad5f15d115cff1ce6bd0e9b2fdc355f9d3e8e23cfa3d1c40d5f9cdde6ae2fca28fa8fafd8e6b1e03869bc0d16ceafa590b33c1906fa9da26792635da31a34aed76c71c8a833d4b4f41d8b8192e9a525df851fca6e8734fef4f4852c05021bea", + "20d7a998f11bdf79364f1031120ba1e81a78cb3e1aee7ba71e66e3682e4370fde8109794eaab59c156b651426a3123020c79794209e11e2a6f7f273eed54d643285b98cfcec6f2752e59dc01fc6b", + "67dfa145d50c609554dba1b86ab944c5e6258dce0334f0a89f6e2caa441957ca47f238138917b1cca36fa7f4be88885187798fc69abe8ca685d747cb", + "07f89206729760447f992dde4d816e4afe6958ebad9898e9a1d284f36ea32827a2f7393c339673c4908fa185e978afbfad5c89723d7d2d9dd5721e4cccaa86d44e11d6dce0d620aad8b56d904611" + }, + { /* i=3728 cDividendBits=4015 cDivisorBits=3426 */ + "0487ee82a19b2c35cfa4b36162562b99893b34b6c518d2f9eb5647cc26dc03d7f40714872e928c5ad69ad3e9fa7c86fde8da03c5e56d1ab03dbcbb7699745245bbfdbc2946f27d28868c341aa87254b3314769b6a19e9ff323fad79fa6c8cafb7d5c9c26c2818611106c9a8fb74b144834fd0d203121161794001876ccccbf156c44163e558184b3c972ea83ac8f08360c298c586ba89743cdb39a5ffe14bec21a498669e3f382211abe22384c06510d4f9871a67918691dd0b2b7baa1a95cfe2c6834ce21515354b78a6fa227e65cb79f5f1bc63d6689c38d0d4efe1e63a99c5d7aedd0135cc121c340ca181b93dddcb8527127f4f5f6c5734ea24ee0cf44063d8ce25bf044de6612480b98bf5237fd65d6d75fc763326bdbae707e55579e47d2194c41e179d4ac9ae3862e1244fa056b895d0e4654df938e8d41fac2026149860713a51c160e1193cc8a97d706422e724448fba69e75d0974d2ff606b31e26122004e1f0dc67f46dfa03e2c77b83109c0b11f6b4ddd9eb702353eff2f31b58936b95e093122dc4a732c2883b60d3781b7466593fec571d58eb89caf61ad0b5472092267f78bdc42d19832bcb26d2a7462d8da456f6901a75c2954576dd7985bf75fcfa0b034d4f452dfc254ac8730f3c1f9c9f2909e9a14ef56dfbd7fe8d94b7b117e4638e5a01d7bb948f350bb13c6985fde5c827", + "030a2619c110956869d2386dbf5f56872a52ad0915a2537302668a83a545635b563dabda633c650c74d85848554e11cb5ebb8ba17952a658aa188b46b7179f4787b69b2acaae4180a46bf31db8edc61b546c9dc103fdb1de6e5f10215de579b7928744754cebc9a25f758a422f5a8a5d212e8ea80d3b735ff0e57f17cf48b54ebdc64bb87c76d195c7a78a2ddff13b70f2cb140add83f4054959300f58cfbd1bb629525f1b5758d12414dc62e455cb025cecdd88deb037535f5281321a664781c0e233134db07ad9d92e0c8cab25a379b23ab2a51559201094a7f6f251bb8ac1c0ac6d455ebac88f8d3687a970d092bb065c4be2a29e47dd05a3d4b65f83b14a1d26a36329b5958a554dafd104be423486c4d663ea26afba10ba659c86a5aa5bcc58b912bc1b0c14942d2d5575b03ec014d40fa514f08e9e1f30eb015caa1604d63a90f6d3e77175da016ffef1e4c872d18698f87ffe3fe0e4bad10dd95626cc92cc9a55d3cfe78f028d41437cc980e535477f414e74a8ff9fe42571a196e148db5972c160b3c7e0bf72d582bbd4a793d84cf7d1bb787c6e412fda60f085513588217503d637f5b0f49a05eb32", + "017d99e6cb32953bd96c0f595b96cdf278823ba27a8ec63e66398a0382764a4f06d85080a88508f89152b8f56bf06514d13bbbab52a4848edd4fb730308523d726863c48cf50734779d3", + "01bfd35dc65f0850708b605c45bca4a8d11439413aba94813d42858edef9265b568c87d23b906bd76510e2784904269c6fad1848ff7a04f701bb18ea55e48d107059caeae6266d3c2c462a5097fbd79d8902364063d22280eefc130f5b62ab3d4b32119c856380ce05cb151984b634275ec43fe513c39411c8c3f909d870a7051108e30841e96a4bcb89cf9c4e4cbc6892d4bc5aa3ec1282e7e3ccbf8f6f532eb63add5e06ee5883ef953c24f080a31a05f2f6abb27c101c8e0449300e7607f60647a2e501aaa7c4096a86f7cbf9b7f1f77abf28cd6746bd00c5df55aa4c7f74fda24c2e3fe8c61b604f36baee1c51b3c1205b6f28a9196bcaaa7c2c526e8561826b016214ff47a169a4b1288e955fe2269fe59c7851eda19190e6e750c38674c45ac03637485bacc2e7ac4f2906f3eb2089585733fb85cd6428776a6918766783db801cd937a419c9a00a622d4a120940dce17fa3016c139d82ebb06fd38884c303f99dedbdf3940e6f3d5eee5ea2e2e4afccc3002fc47a43e1277dece1006aee01581a0ce4c922e1f89786212362539e8af0b324fa92ce7ac4ecaabaf00c21c649fd9575b2f9a5328dfc4bf1" + }, + { /* i=3729 cDividendBits=2899 cDivisorBits=2060 */ + "0303e01dd10d752faa9482d52dad7cef939b28090ce7c6e41aef26722c210e5b73044fe79dd6a2ea2684ac72aa07ca30dbbc055e68689324dde4678ee1bd284cbf8f4308c2017d2b9596cda1d9d5ba5aa62464362c15f1271366250b7adb85b6ef09b9af2ce83ee8380ef33e9f9be194f0601dd860f051a1a73e3b648c21dcc5b5febf97076f8a4608c2a77f27ec5541de87f7182beb31a54071f2816e15ab828f9d42701f46bfa512992be395959bf0c35f4afcd181959e0c122c8aadecd621c4148ebaa45a0983551eb7c1ab2c6f508ced92efdfb3bb84bb5bf52e2282e759451932d04d231f843b8e8052eff8551453396e8eb3c170cf9912d63b2a1623b645bec2eea4ec1230103218cd9c452e033ed8caed4368b35a56c161420b03208cc7fcd3a546e7bb507b3eb42509c796e67336bb6d7b51e7be5ef05a9ba1cf0962d86ca9f2d2a92c9ddf986f7f83b2050545e09de98cdd54e63d9aade5c11b4e56ca267b8c2ac0ef7bf6102f", + "010f2b6be1b87bcac3271f1caeb38311570b9b6f027c337f01416c57e9f71e7a8bdb66cea94cb5bf5c2baeddfca895433d41fc5d62164cd10af524c3474b85b3c58bcc10e4b9fb33b3cf29d16d0f548a570a8f994a30c15d9d4b2b8412a0001a846f11dd605554c4d3155024b8bba0f3cda2d1f1676dfa0babf86cca29c9967c2f7a245a06eba663074f543030aa42448f640cfeb2ead60f58701aaaf4637eb078aa8f1b3f9824686504e9b32dfafe03ff6f0d9c7d3bbb09285a7880293976fdebb6119351f6daf9e1ec299aa6a11f79a1488a2e6e591a83d34fbc5d0602798e149dae4cbd73a55bfaf9c549a9edaaeb26cb2ffe5876526a546f415ec8ad11e08e72", + "02d8b2158f1b2beb2932703a8b5242236f3cc3184fb95eeb1ac7d2bcdb700e7943fd678334b4aafab78d9eb1df5fdce370bb5f6bff1833912ac0d14de7eff779a57931d1cbfe5ff260c5571f1ff2cf963a4553ea587e40e72e5d1cadd970a68e61c88ce8a1567a00eb2b", + "8ec4022fd060c5b5c5e734c10ae3723b58011a604b55cedd6359db298641bcdfbf93b9bbb6a4b0975c47b734f6c55488ca718dcfdfea5dbda03c30186bbb74ca018cb0692eb2cc4bf52c2d10b755878b6308078754f192450e39745a84dc0eb720c6155fdcf3d482268b0207e446aa0a71b02d13bd81f8156f37bc0690821081e8e143d249ab720d44cdbb337240877fc2cbdacdd4df311be0a068ba1dbe2263f3d506729f512cee3f47f8ff132556f27b8ea44327fc495b3a0bebbd20057f68a1afc7f1cfffa9e49c714949506b6bf1fe441b563937d0eb9a8a4834529ae3695da8e2695c4bb7237af368b6c985312c36a072b69fccf4ec4d6a2d9c46047b7d09" + }, + { /* i=3730 cDividendBits=3124 cDivisorBits=2097 */ + "075b41708f5b53fadfca961e0693b4be5f943cbd84c6f6988ff617429c61fefcfb60b0d2ad9e8aaff3f91a6ae54c08b2e27a20ff5f20d36346d1778dba8fa4fd5b9f26b7bb73551e87263e9a0c4639c01424176c68e225fa12f1f7f9d397103539abaecef1d7a1aac05de56ec8eb67da39e422eb4514fac2ee49a4a01852777e8ea3ed70c850e8afb2b8af5fcccfa83e92a8202fdc4871d851dad142189fb5b310147fd7269cce2c8285ce2ceca5a185a85c2add42692d136759f29caa0aeba64086fce7f18d3720a2253ef2545144ed03888a880c5c668d031ee6d92a1a62f9736c896ba7881508d929125c795a3504afdae9fd8d415b67c1f254b4ce301213d58dbe7f4016819e4d051d313e9f4914e66b148a1bcc3b37fa8747a52f229c6f44a4c1820368e07f05a6cee8ab661be42b3b94a5663ec6323fe0cc647dd96e16d64e22cf94127e24bb6bfd91d949880ed07963677eede4cbfb5b1e26afd28bd6157f0c788a8630d38cb3bd3487e8acf459815386989f619ac4ac0ed05e88f278057725f3abeff9", + "01d1d557a8d2fee03ca0885bd914cbb1822f5202ad5216ebc7bab5a4278af19a48cbde08382540182327d46c77cfcc905754c430e5dd1806aa61bf08cf93bb3943cdc42cad969e9d419f490c46c4dbed9cd460f64de9ba55f667b9b1ac60e4a753aee8046f7a3675aa328731d481f717834cbff9e27b99c7861fc467b2ae92282c2c1ba4badeff6934e162739f70c97a37fb30374f2824e4d33780fc46021bc50c0f159e03c50e9b48cc4bc06e2a9a994aa0f8948a4f6309c16388ac23679595929a49a9027d1235878ce427fad03f882bce2edf906a0cd6a1c308d23dc45d29be7924e40b1a8d9e91825629f4165a61d2dbd6cb306237529c28e02ae2d3c6e47d853d24237e43", + "040af2c1e50803af40cb54d64a39a4a2900ca5b06c062311af56ce6aa89bd5ac3cbf93db39f07a75d2aaa5b1e09dd5a2bb0f4d7ee02960bf446ea3097d43d15444930a433585aa5ca594255ff4e799b8ddf3274d5282846272f87f31827c1808a697d9a1425f5ffaff4de68a40831b907306a5773ceecb70fc356d9589ea5ecb74", + "ac433be38ed276b6a6c3bee947f1cfec6dc1b683322c4eb6b76e13caeef4c51cb00e1dc757e875bc3cc576c7356de1e907719792da8813a01d31755aa22ba8344a2a873b22d26939dc2ef1efd0f97960a36a55739f6f1580eba73fa198e2aa709f3f327beeac34c652d4c958c936359b2caa500aa0cf4cea3b2c3b01aa656726cb687a00d8bf3a07dd37e450c1a3ce87c1981ced86e18a41c3a0d3cee43e60957b3890542ba930ad29049b36eea1e4970930cf0abf37884777a07da0a80310dfe1c01855d5ce17b01c43ec9aefb52615a93ef4afc2fa613b552910c9f9638c0978a049917bde65bbdc6f647afde7be6011c33d901089dc51a4ecb739ffccf5ff547cd3dd989d" + }, + { /* i=3731 cDividendBits=3722 cDivisorBits=2018 */ + "02a9266b384e37ad990bab46bcfd96da02244910141dd78fc9411aa9b4cd20e6c851b2bbc3af00a9f77efd60142d57d3ecea64e6f908205648b70e8f9783a54e4cce7625521e5688abe64db74433535748ba8b66ae0d99009309dc6748cd39ee7736bb158d34ac3ac09bd3bc9b9e9af8c8de7b61792eff1bd1e7935372c78920ccc75d1c59e0d09f6b0cc0d18c4532ea8677546538595a8fe91fe328e44bb4a00e077edea1938bfae9fc92db23c62ea0cf2979e155e3fa976f5711771540a12f0d029f7388be8f69351b6a776b9374bce73fea5dfe11d5bd8c771fd490cabd4745915439673583fc584bf6ae2b9569bd529006b62ac4380f0d1e7e9bea472925ab76e893a4cd6f6e120e4288825d121266335aab89722a42c544c1c16a0d43f9872a6f5bece670c2234fa550f3ad681dbb1b96f5c2bfebcbdc01a7cf994d4e34de1cd3525bc0c31bea8c6c1a2504a9f5def211affbe4f93d5ad7fdadf04032774e0912b4feca452eb4d3ac304eded6befdbea1689859023c4f2680ed5f665a06383859e5e4745873563c5ffa77e74a6dc7299a8ab6841761af85319e2d1dc625b9c205cf9632abbfb897fc95242b424a963bc12f8e436b598cb97b56b9d3f11153fe37efd2548b4a62e97a9579b7a4263075", + "01a215da6b802c68fbd1a231f3111e5a6f2ff1f8b6f0e87563155f1f8af8f40e2eceb0561f42c32f87c51baf4d2c8438172f3485620c053997ec35d2702cffc1fa0d8fbb46c426737dad4c1ffe3c694fab3f3beecdfd59c55e6b94c36c9fb60eece6ba029e17cbdab3c29f7b64b02c89b826641889b49dacbe74b16f9ab675b1ba35924aa343daa8b5e78c83b0350c8d4be705e60302aa2691975c984df578803567bac4f18458314d50eec6b1bd8386908be8dcd880d7283b8286e173f0d4081e67b90dca9a1287a139aa62f105f0ad09166d92bb49b35679f43589844d19ae7e8d69c91385e25f66b4210ca62acc11d38edc0022b5be71228a944d39", + "01a11418f01440270feae28f384a35dd837c4f858146105dc3376f23ad594b82d4cdd4884cdcdbae1b2352bd1d8f54e90efbf5d1a50b14ef9a5d7fb4f1444879dcfb59dc488f9fc8fc9f37c161e70de9ace3a61c52ef2c78ed78810b20353da8bcc8b796482a6f06ed4be3109980ccbdc80d5eca2707180ba448f6d5c03f5c72eb62c475fcd302cb1a8544dfc693f21a1d982eb1d303d3679559adf229c17d82a20cee635d0ef031b76d61ae573837a7bad06c2290fb5b9133233c423c1eee59d80636bd0e67e4e31b7b9358be3c34a2232a0b0dc39a", + "010f4b4fb55877195ba8dbebc68f7885b16c04026dc6ebe2d61321bd3de46375e68ce74e4c98a6fab19ba3c5e39f0032d133cb0215cb68f8107289fbc31db9289e73ac92d4b3e73a31ccf90cc2198721b50260366ae0764a9eed20dd5ae9c71146e82f9a2e3013286d20a305f94e68c7cced339c6756ca222fcfe8cf3717026795195794864604c35cd84f0c5005cdefca5aecfa1c2a256607ef78fdd1e226d92adccf5351eef6c10b506cc9757fb958869293cadc715ab52ec98dff92c198358a8080c921ab99876923501bc18cd99920436a1ea78c8d8359686dcb1c18c76b1e2a08904ce25f2e5d510c7df140bab8603de2f28e662d3c2df138512b" + }, + { /* i=3732 cDividendBits=2813 cDivisorBits=1990 */ + "1174a3ae1c7e7be76db067965766fd7a56cd09c724f80a6de7a4c2c4eb4f9bc8562f01b45bd5b892e30323d4743877a86adb9ac5d0f54a74e1685d47f1bd42b59c08015ca994cada6cb4a3a55da8a19fff7665c9e3255c8b2a9b94e0d510e3f681f162c45c8d230f607ae1a671e3ffd5a4538af2c911353c87b8af1fdfa162066e0a51ec1feb11eec81055709c5a965a931fad7870622adbfc617242231e273ab8667ee177f9f7fcf1b38c5d6b53d2883b1d850381fe28b2cc9d4003807bd7c2da13921758a041c6e050fa0aee6426d8024c7a65b0df9643a8af690d4b0ecf7af9fc8c942cb368d306ca3f890010679c78e0a483dc726e7b44f685b6fcda84553796b628f284648714909f89bdcbbb64233b6ad75b8f55a51eef2c164af8c4fabb0ef9d4e5d9c00fac96585f07240643021e44863b6e0c3a1be1dcbdc32cd903b6c5f7451ed0f4d6c4c792be9db82b467078dc3d1f2349792dedfcfa1e15a126", + "3dd0e65e052d80538b1abe5cef02ffa0210a2374b02ac517d9222a964c2d006cfde732023887d88d9abf20f492b6f44a28517cbe0fdb53bbbb1e07b5685de0f1f880256c7e5c580b0ba9587355c4bb5e1ebae26130dd988981744d3fa0a6be188819e6efb2713ae74c4bdc8c36376a0fc717b8c949c5cb68b31f745b17ad20838fb0ce3075904645beed0fbe930602f968b481c9767008aecfd2c6c259f7e26a2b9128fdeba870a3bdfded841feb5ae99ff2ca31a0bb0942efe49da981b1ec69235a4d5ce0360b230cd08e111c5c41812f2b7b0c4b9e1ace89869eb3a563320634a2338b458397ffdea5bacba0fe182868ae8d121e6da4bfb6", + "484a12a743de16d70ed626c464f4604cdf73e2c79d5ecaa4960cd8cce31fb65a00cb130e7bb87f12011d9cfa21e8ef1e1e2e690e5952079748d1176dcd4231bd743baf379c9793502038983322d7c03dc174e89697e32a265b63d3082a82a79d583e6f57312ab1", + "3ac3202d589862d27ee1d9b0cdfba935ffce0fdaa68c1edd4e0c30fdf7730fac455598ef4ee87581a048d07870211d148b82511d4185b2286c471c9f2275dc4b56df8947641d8a0e6b1de33ce46afe7dd9a635ab2d4cb1adaddb44bd869076023d30d06125876864492f33f9618160255b119f9185a25fd1da5258e4a1dabb220052de385c166d62d45e7570ed4d099b2cff406370040f7f6a394f9b7b5b6219bccc31a6f28cdb8fb17bb4ec3aa916ce37a1a52fc76643887268aa0ff69895e2a76df45632b79d1fa63537b8060109e1a3949c1667b0c314997c6d14123c34f415452876b71f928dc2bb2e9e0f1981629e94e84a59bbe33850" + }, + { /* i=3733 cDividendBits=172 cDivisorBits=61 */ + "013fbc9b626dc3efe323f6cb3636bd8582f61740af7e", + "1576fe56565f647f", + "0ee556854a14dbb8e75c30f2a269", + "06b64f3b7c7a1967" + }, + { /* i=3734 cDividendBits=1666 cDivisorBits=851 */ + "016d4d2dae2ed85419769dc0e1a2359842f29284705b0f8637dfcaeb316e24e34e28386d9cba569eb9454e936208a275daa2a6ce52337a71f3b7636b6ea48abecae91a9a967ba8c19b08de6c1dd6cebee95f191f6c019e99bf27f06695251d66ebb64f80eb4e1b4603b5d8febd2c797054b193d6c46eba63b7a56752dc2dccd6fd37eb3f567c1df7cbbb1faf577e913ea0e5c08c489d7b25505d536c15508766e25678194082d2de95fcd0f7a944c0c252113adb1e67e23f357851f2cda87c8f939500ec09c570637fee89e0a8c58ad0dd", + "03cbf725480182a6fb162f12e066e3143bef23c73be2b4b8158aa1c4254a3d01c3e69aea2190a51725054758c90aa38124a621d80c88529cb0363ed50eab598cffc8e3be548d9282866b1391f70ba67a6df8272d9d16215cbc6861b1f92bb008c1ceb3ae228729a77a6b6e", + "6036ea4c39d994e8c0461c90f11c018c15dc07191fba867c972af93f2698a69d41943ade47c3bd71d47832a5ae9acfb294699af400339f2188da0879a52993fd753d61c8a5af37dc6c6bc6f15388529f00aae323bf3c6fbf6a9452264da588f8abf796edd6d1", + "01118f5d368b37154b5fe0b87ec2c5ca385199e1f8d8e4a93ab60de47c1580ff1e82d92c882f546bab2c36cd9cf986837609cdbb9cfe2e6c2851c22c3312eb6bd7fe09ededf4b4fda8d4a8944c0e417aa2ce5868082b8bb6dde1c769419221e09426747e3acd3ccbf5280f" + }, + { /* i=3735 cDividendBits=3981 cDivisorBits=265 */ + "1b85d2ec2969ea6eaeb528b89435fb87d4169c40a00720bcaef73a7797dcf9441c95ecabee3492d78d12d09af7a9c0a6c83da992768dfd8fa305d8be95dfee67f9099727ec64610ed082ca3f63e1489128fdc16c05302721c7f53565602223594ed5230d4ad80054b707e1e133752a46d8bcf0b9c4a5e1d9f4a82b53e6561d4900f48bd6bacbb418001661983a9773125843d425607e512e101c47b394a25d33da068aac83037e4e6a8fcecfc634394c8af4154ab3ff29d152401d633c98323a66cf6e2dc2c673947c925cdea9229a9f54b6537516dd1d56ac6eb871127b688f71a40d8c472f97f48c64287752874d2ba4b839133eedf5612e383b72aaa24fe6580f0fdaca254a9a41bab68061283962529b597ed34f62974a79ad48f05d68f191a4a0dd53016ef1e5ad09c6e5d0940c387378e5ce7014c5af735c7ad8542f03ae314284811dea5737aa34536072a6aa3b06976c9ee9f7654992709b5c541137ee56073be3ded4a773023d0cb52dd8c2db5c40518c261382389dc0bcde0e89c1840825b7ffb8746f2175c2de5232c950b2b95c71b97b57c9c3e6b805c1fa5a19972623b8b8fcfb94933bab5f16aa954d1c7ebdc612b4fa8ee0348aa5a3f8d0f06566ec75590f7641d901dc9679ee7b55af42d070cb3e9c7103a335ca68c2bdfafeea3844554f53ed0e921d7244479d743f1f", + "013a4941b4c3ecdbccf68daad6d38551fa3f532d584a3017e792f1c8efca2aa032d0", + "166b22bef51df6f3f2e6d2f4941f5a366199080e861f9ccbfcfb491f8991805203d0909ae815f38e3dbf1928d6f8f0f3b567d0d5d3991798f96b9c47f36bf521cba7d1b7385bca0a18c7d00fab4c2cc2d8eedaa12335b873f9aafc1bf5964edea6a9fb8b98cb2a9edd1591cbed39ecac8477867f7325cc1644dff449dd3a593e13bda9141e682a297b47fa44a55921398ec3f2cc4e6e0ee8e4f99df17366366b4ff5f86a8acd4e4a871ccb6a0478e1fc46995d59a02ded0423c4baf3981ca975bca7c244d1744bf7b51188493bf1641cbe6c2b1aa8919bbb5e7783b936de722be4ef633d9331d6e96ace189921d138064fd3627c7ee22d339da4d2502da1bdc836a52d8edf57ddd1c54843a7d62c2c809fc573014b99417605fbf499e83e410cac7f20f818053249ab2fca969a7d58c858ee6fef5c8520f97716ac199579959e65bcac33c2f776c56899e7a1f430ea59e41e4c13a0308badbc4df85a450cee1cb57e95d10a21238615c3fbfcf12ece77b4a4a128a1b40d781e1e18d0d0d2e01ce3cc8095f640fa61300fc2896d4f0cd68ed64d1a1ba963659be3fd047c1e566ddca6be420d8c50d824a581afbd8a0729c81d259ba6f5786c572e53a17ecfb33fa274ade5f8ddba67f0a4264c90f2a01230", + "67d0b27169714758a0bc7a652947c8648e0313b5d95379100d5830ae37f9d8181f" + }, + { /* i=3736 cDividendBits=2980 cDivisorBits=1379 */ + "05c94308821c7fb25b6c2a0006dc76c8254fb1b913e82435316e79c5ee7a788b89787e10f9287efba99cced747c7f618c5729d57019bedd535340e255fa1ab17569e26d2326e204d85ea9ebe1848f0917bf4419ce5b5bcae744d8681bcc388a04b1162351246e1ad2a51dccb6fa6e794cce3d7ccf1ff25a54ba58c21b2abd31b1dad2b0fb6a86f5e8b174ed8537739dd7c7aea0d1adec5c2f62be083bda0c53220100aa216d60f6ec9bdd2ef10b87d082bb0dcbc068aa99135c76c332c843584373733e3c519a16ca302a98ba72cdb9d9207dbd8e5c97e9b0fcee13b1ab204b28e8b2cf6b1a9f93243dc359d70361da699c640b9524c1eb1bd7782e0b56fb34916abb7c1bad5885685c2b8a1bc2c2de3dae4d3b809bcd839574bcbd7375c019d0888ede231684f6e1ec8de54f94e395c9118490129e972c7e38fd5e12d7cf589a72e92731637d24acf37e1236c400ef210425dbae08f32c76b6de3d2eca7a1ecbe004eb6694f70de4e77f1414a655382eed0217444", + "0595c5ec63aedd4f884aed5e8215858fef20cea5be96ac85136153206fcce110fea74162d0f254eafc608ab47b8037e2c5914532194d87858ac173a121a99f3c9686c111e192348a9aa74307ab5f0b8b55dc651c421a9f01694e69459d1a73873a62491bde375ead2b0472ca5acf5aa1d4c67f3102f53fca083495b0a40216041bd04d406465e5558487c0b39bdcb9fb3d3e97d8e6c324caa66b3d0d7d6d41089df6bb72396d78dc70a2ac5c97", + "01093811d152413c74c4224ef2e6f4577cc43b6c14c01819155a35ca6587fa2c9b983c96378657f0567c78b5f862dc0c75cf7fe75418f092150fa372d3fa35ea2b14c67814a24def32a7c93e9d0ffe6bb6fd487a82da11efb21cb12e8d0a1fd581ce60261efb413c2046691cfecddb459ffde161c6a100c12beaf4519858b72772af25301cb95c6ee73d6b25eac528ff4e2162b57c72d0fed93c4ff5a28ec14af0b5c4508defe726523a1adf446aa7d372c0c0cfd98aebe4f1e9b8c4e0c791d16f4efefdd2fbe6726d", + "037f74d78eb968f1d1e7bb735aba9b9e54026419acd48308b5203b08181f16757959ba084f9cef0f1cdd43169b516536661a4713a7e97328ad25e054840f92c62aa0dba4f4ba4d304e01e12dc1607e388e41fb953e6f2e923702eafbca3e53973c5a91e796fb8b2a71c26b48d9f3f04867f7a8cefec55354e0cac3606dbfe63cdfc41ffd507d325586ac21da8cc49627d33202469b669da988ceb128c5e53c3705a829b481d14b2a078ed8c9f9" + }, + { /* i=3737 cDividendBits=4056 cDivisorBits=1946 */ + "dc9684617c3044a7d7d59cbf6fa9ce10a96afd0037259f7871a6a6cd0e812d6846e4116ff788432be7bc3c1b7280c3eb9a8c063aee3b7d9ad42d17dc0ef8d7c1ff96ff1121e3d10a59591fb563722a5fb3818bb9b868cd2f5b08e5bdd12a6f15e761e1304f427e86cb1177f2df2958a0c04c4355d734f655edc87a6cc4cd2b9afe0056c3e3c756be80f5083e777369612c40b9264e653b3e87182e9c4b9973790975e1789d1bb756e7a6cac9f4bbc9cb7be86ac5ba602af7463c0eb98ba384ccf7f943ee8efeb3e579e3d37862368171966efa46b530fb37c66539dfa8887c0a9ccbc0dd669a24554c556202325120295fb4338e7f6e02f8e4a7251c25ebcc1a7227cb7b5def9fdc9aa6800e74914f3f207fa2458a1840339b3dd0a7665c09e23411e721382ee09c779b709a633483a855cb2a4804ba95d87ef058024e8538e066437f33038274c39e10259de0d5290fad71a76fa309f88b0b61a9e85150b934fbc4d5608c64aad461738b83e384d35d98cad153fce77e4a3a5fe9d5c867f947e9501c7565c77b009809d8abfca47f0213fa8ed8f03bafda3c5cd5a30af637c0d31ab7079b741b7bc9ab48ec13d57de2e1c204c856cc0109cfdd7832084fea56717ad0978c93c02f10eb972aa84680e90c50d49c8459194e371b816132ee25406501f2599e963481c6ad3cf061e72fa7cde5b4d19448748404bf40", + "03acbf04322b925adfb99559b6401cd1784e7c7b9ce6a9e0f8d425b7be15bbbe0c3254cf10de59e26d8cb314cfe8475469dbbafed7cfe9dabf7d5d6696d65e45ab2f1693305fa28bf1b2e3cb2ba5d60917fd00f5ba9c40a0225327a11d8034961f37a51f4db3e9c5efd2e62a8857ced027a5574121c3d91d95a8ca51a8e254f6a647449cb67efb15da364df418f2b4175c2545eac9895b1e3992b8601e993bc41cbad0fcaed1880221209fae7d5a5eee435edee98ff3b597ec59ae5262afd6ab930abadfe395ae0c7a3f6380a9348b24c70fb1c075774b5562f9fdcfe4c8f1c5b892ed72d9fc88dd41993a902fd86bb1feffd661", + "3c0701ae1f800f879e63f653a1496cc73ec239a807bbb344bd8205d64283614b626f37f153bc0c104582abd641322a6fe5a16c6bee9f2acd571d2cd57c97bf3c062eef25fd370f9c6ea1468f2ea14ae73ec35e9926107e9ae3a14cd18302ffdfdbfd0727236f4bf3e744b09acbadd0a4459b2213f3a3caa8aa252907ca585bf479fbe5a8fd280f6a7e3dd57d2e1cd9257da5072ea6bbfb398ca04961a6cec6dda24e5785d18c8997aca915ef71def6f60e594a6aca6cc1a3d323ebe8b0aedde27050cc68cab9e6d0b1aed841a21b9652d3436de49db967c7466cb52f19a39ecc45127d93699c77c348705615025c50400ba365e48e9780df647e784c1d219c7b666da06ed455385f", + "0354af46ddcaba6f63a6cce289d0d02771ded8608466d184776f4371060e9182ac1bcc87ee07c4670c59eb0a308213ed801fde84c41180c585a3e85f2d4ea02d1d1546b750d21b124f14e65ca751e7c618cea53b92f66bb50b728fd939f82dfcf6dcdb380f9232cc95f93e96091ffd618897b5867f57d9cf5bb12e7ba58278f2936ce3bcbd41c5071742fe5dd5e5420be0f21e813d9c0d1b4e3c4ac30f50ed8877688994c751f7a2ec77abbfa2ff9e09f1d7e39a62e230386eedf1a519811deb4518a7ebf6a8196ae24d3db99e8f273aae5b9a795ca0e22e124f551ed8149e23b9bc1208d86afb774de15ee12a381b7669f9f941" + }, + { /* i=3738 cDividendBits=1791 cDivisorBits=121 */ + "6bd79617d281b4deca13749e6f354adc38dd652e9140a70487df51396248824019e97c739414058a040c0bd07db0eba541a401320c837b3f3d0aacea44cee7787e7779ee464616739561c5f8d4bddd923b35b07b49e59130e215e4fc695954ffeb12976f6fbf65fa7c14c8982d7e7edc9c28c4f85243da1ea513c8c7de60358750f4c0e150f0d6ce134c77d831c02b5dc1d1906f3aa4f098a0ba23ef188dcbe3826a5f23ea7a251df08e153610053a49142a265b0ff4c42aba7c7cf06063afc8b9dc6dc5924e52f5888bad24d5dc83114553108f848882705034d71b03d1c0a0", + "a318fe07e1013165ccca252699f451", + "a945334231e76772f4848241d78bf16675cf3a64ddbbf3e8ef80d37cf37b2471ae52cbcabda54c97ec4bcbf5e714f20c07c12cf3cdfb4826ea8cf3743536d4aa87d832d1eadfeef706faa0029454942bacf05906a91d79da0ecf07219589859fb299b72968f836a375b0e76387c05ce061c9b25f3310d8f2cce729b40224f3645f93cd69b7c44374653da05e5995239f2c907ad36579be697814074be999d00e17a3f3cc0fba9e4f5c666838fc150e7a10eea96242ff7eb35379e15d01291acabae3729b08c0e7bd29083e70d86e56450e", + "1c732d280408840d0d12a087568f32" + }, + { /* i=3739 cDividendBits=1723 cDivisorBits=159 */ + "073b10c6a5b9569ea6f5e93617b9795baa712a4d93b728a87a9f50f3e275200e4f620714352c881a5d039f743132c4766f548d738f78b675a5249b59880fd6f01e922da99865cb697f4439b2ed44ae8174f9a4919cd80a71587c5626169bdead5b001e3ebdc33676d8b66e739fbf75294e64c8bdf3a06e8da13b750dbb61b6dffc09b7fc22359d543f1113d61cde8a759354ea3a73e5f702beda13cc911d9a0495e3d19d7336ba0d723167594874a694cbcd31d54bd8ecdb1d6762ba6761a483dd9a4a3315f02a3358fa96ac56ecc96ab202a6b7774b1b59", + "3743f815e85a23ff4e7f8460f6d0d257efdd599a", + "217e7a0625d65fdda36ccee548086569ff2fbae9abb03d679c1ee7d715f4651af7834114a3df0285e4c9d6a353cefc1986581a5e8f3c0d9217bd4447af2cff9d42ff9a94b6e24ed7d5cddeeda857ab91e6726feec49dd90b03feea6a1d189482b27f2e2588eabd47f30fffef18c39d28492d1082c32184404c68691ca6ec03aa8f691ac22bfb6b10bddc965464605b86b04d2431d461a37fff3a8f0308940725cc4da315f4bfc12dddf89df8fa04881ab6a39009c2ea6dd76ad7e1891c9a863811167255", + "1c4db846ddbdecf44c73ba3cc28f210b53a9c737" + }, + { /* i=3740 cDividendBits=34 cDivisorBits=10 */ + "0282d6562c", + "01f9", + "0145dfba", + "42" + }, + { /* i=3741 cDividendBits=3509 cDivisorBits=2880 */ + "078024fdb3443f9c85980f6c6b958e2327ca86e9d82e89e164b6ce37719af5e4e8333fd22fd2b69245050d308830bf4e559b85268cc36e099e3c740504c8c2e3e9e1582756ba5e7d5f0e0cd5993c2e7d0d8629a1543bfdb21fc58f187f2172697202c13be4fa5c22e955e5dd8af3372d22f571d7d753d69d20253b0f071d25b8cb26fac7df79a0f81ec3e45c4b8ae24a74235f0ef67ea500d9f0ab2047e4df837293d3d02c515e3c1af4d35bf7226051e74ce5e581ff951183d226ddd30d3f5ad23e4ae141b605ef4081a39d77ece6826942832856567e09118a7a8a370d61ec471ba67cf10857eeec56fbd2014918e5a651aa821064787d1e327ec40c91840a450f7ba2f0b0039d7652e17a7ed8095645e9d9b8532de34a1ef3d82e3b4ff18d10dfb69b523e858de79106db064c162e3383daa6807483da15205e5dae193b74a2259fe2a235836e15c82f69abfeb6dd58bd47e6122191935aa7f7d4942f087ed68f7054c2f420528ac17c44aad4fd0d621e6c10fd7c5fd087071e6229ebaf49140a7598648d01e199f9688d467c1b93f477b322c0b839c831b54e0e9b8300d9966aebbc47babeb6451265f71f4594a81221e07c0d829a", + "75241bcf7025eed24db42199239d353a456737ea5784f0ab7d35231fc932c38481411f8018e63969c1a4a6a6ee96390a9da30d651e3e58d2249788e2cca4ab71f76f93dc908dc033aa003393d96324a412854698e503dc1b82bc14c2c9626a3a8c9eba1a9984b0f5792d97ee5275b05a2077b79f41e147ac482eb67055812e5bfc5a2e3512c2ff76c1e917c41df9672f51deaf4756fe546293d8a026ed3d5e152042c38576ea09e1d6e926c60f9a56ac0bf0cc2cf8109bfc4dbfce1913ef7b91373dfbba836f693077f7e74674a1df749cc205653c0e1eb8da5b0f278e1229cab6a0745d539ba0afe1fdb88bd66e1f6170327ca369105ea8e651fea4d14bdb2ee324b40a6e310493b93b36adc31f19c6932791b1014dafa34152e65d6e0d750563058fe43fefc464b7abd5ef018674da77dadc95c37906f8591446aeba7a28bd1180756cc3377402eb0dc3c00c5b236fc3957e73a3d8e1ea8581e3b50d8323c4f0f4493b05766440", + "106448710563f9b0fe5beba085dde913cf1a192c995afb55e3db2db2cf898474570b7b878cbffd443d4c25dbcef6c60dc1cad4db88682b68a5936fbe194095390e0afa030bc112de2f0a3af33afa3f", + "02723263d36a40b751698f8487853fe1b41855532d4accdf70287ef7b2a723fc391ac4fbac3fa596fbe6d287efd37d0a827e273075c6362972dc453609e3376151de6fc7bf735a92950f1121c1d4f9f98aa0f3d353dd37072ba3728146b3323fbe5382d1fd8c9959ef04931a1b4379db3371ce6a248de9622cad29c489010437599edf7bba2fd67551e41677402a9b6b2349253602dbe93c32fed820738b503b4cc7fbfdfecf35f3d123033ccd9d47d0c37506da8a79f37ef45aebb149173ea8df45c98f7a03e0cb537d0bbb31ba7eaaea75db8acd438562e0f19db8abaa9443780d58416d2375ad61b8f62b85e969e2d6135394696bc806761d0b1f2a86da583c1796506a5b6477b05288a3e1c8cce4079fd9522ef671df531e038ba591aa7ea1c57e8245caa15b8e92638c807a6f0bce5f2b17ebaaa540cd2dbe717fbe5171db63371343d00e90dfab831b496ec8d249b51167f595aaae62da23911225ce316a64a4890f8456da" + }, + { /* i=3742 cDividendBits=3994 cDivisorBits=368 */ + "d91c04d0fec9aa7a25b62f76571b97c63bfcaa4beb0e17444aad35e444bd594a9b98a7406a7529d7abd7572e3181d9e5b0ee1a5a26e636aba54b3cc493f95a64de872aebdfbd08240b11334c73eb48aec7d47f5a4ff81086ac50b1c515f0127f3e5dd1a80077078557e2ea9ab5407291defa9f2df52fe6a91678ba85121019bfd9566482bbc7372be8c3abcc3ff041716098c0c72aad9908df46ae8cf8a797d685ccfe174b13ab854dfd930e15bf5d04533c9caf31f85b316d4907a9b2d829b6ac7cba76974874004087651f9c735936157b296dfa9fddd7327ca255c9b8430e8fdbf4fdb8a8ade0b70c1933a485e0bc19fdb940641fbc406492fe4eef828727d4776674f62c6730a2cf610f5ac3f12ebc942bb715bbd2b0c827b92f64045d5e6e8ce34d7f9e78ca1318576b92fc053d51ed5e6d266912f4ffe842ea3a143cbd5ba71d9ece21c82bcadd1bff2850f773f809c6d6323f2fc50e90f4895ba0c1aa2b8de83e057a1fbe817148bfec27db3838dbf5e451a270f83da7d9e0e56f441d60c468067a7e4a31a406e01e8af537d4e74dd48918f3f157efd6146c7d625aff2ce62a98e53554af4e633c8dc23c57e0016eca9ba86ca1d703f40df0122012e0bc114cf2a4474c5d65568c7fdaac08b0ac6f35d6367315f173a5a779e55e6b828b444bde9f46ffd4a4326436df30b87420066f", + "98aa0c65de2d32c487e108a71a97034c889864f4d7642048c3c2487a17f722de86b7648686ec3c47df249132733f", + "016c1128120a6f08b6bf87bc4ec4d7f33d8e2c445f87d0b2f8e66b097b4e77507bef8f922fc86c2cf331e3024d8cc90ac068a49d39082925b5f079eedb77eb2009d001b278199849bb7200bb46fb85b4fd7d2858710c3f7a678578fa25a3e5cb539b153acda13ce25e1d853a2b53af808f7bcaf620512d4321f3747591700f197e30e5b987d1cc74c3b0bade1d996985127d66e89a4c33cf47c77999b5a7e30ea755e03bb8c7fdcda2696feb84e716dc88c8defbc5218979d9d10bdec1506db8e78524279f92e0aefd7cbc656fdc0af658c1e94ca54683802941c39277cd5c9a17c4958e07b53068498fdc1573194265ac8af84b6903115a3599444810bc993ccf3ae9c57c8efa5ed10872006b3e0cf682b9b1275aaef6a5c3a378b37f5fe3bc4ceb56377ac2147e14fb31208c8a190f55fb4a054dc2ef33e4c2e2fd71e0795a7d3f3dd674ae841b3003e1dfbd8971513a21a34497aeef7fa24d1220b761819c52b53809470d6705cb846689f7a38caa4fbfddc264a817835065c0bf05498766a337e81c5683cd620c4275d21e445cb0a8afbffc2d05dafe50a6775497d300bfe04469344aed774f3cb80784ee6e8a27da33c536d59be7b6037f137cefd276b16a60dc2508df", + "3ec3be5bb5a4456316cc1575b1c85e8485d813d88ddcf1b2f9f7d12a981c244daad2563dfd0eb908065f9978aa8e" + }, + { /* i=3743 cDividendBits=1485 cDivisorBits=978 */ + "19639006bc8093c0fe1c5e938296fe5e83133035e19f0615ae4d260e0252a0c1a202e46600353e995c012b40a9b2a69d10ffdeefffc023fe5ffc0056436d104475c94e64d18bafb7c808c891c84aa9d0251d92c205e82d278c4c25d881d4107dc96e8238e971d090675dfcadeb4ed06f202e67babcaa16fb77839fc9f9a4cb58d05343c06c1014dfdd1cefb1479a841ad0f67c2ecdabe3c314dd7c2ee40e875cc86bedb16c227326eddf29acb794ccd94d252f1cfba2ff177699", + "24b23c52b54a9a13ff9f44e20063e03c3b6fd8267562dfeb149a0198449776b2e0702af3264bef1f2283b8c96182f3e837fdae3f39aaffdbc4e869e4f0445ee71a8e2ede53b7ec456476cb044fc15bee1f4cdaac090111f7af2aa123d48c3cc6ff26df3a81250841ffacbbee6fa9d14f2221ada9fdf75da8c874", + "b11e33d81558fdabb843ddbe034b5d6f45136409aaffbbd0a7314d2d30eec6758fae0d0c9ba1b386cd419b83122309bc8aa785c30434e5e37de131bfa0a4ecb8", + "062c2784063de7f0163fa2d5e12fcf34e3e9d488b5ee6689e186dc89c64b2eace46d15e38c328f034feb0bcb4b29ee03729cf5d874ae85785e2acd1ae3b8a826d1ab57de3d5531e0e99c4a082214777dcd740e07b7494df455f111897a5fac17cd8d0de8b95144c76ed005c6b8dbd44526a5588d278b2aac7339" + }, + { /* i=3744 cDividendBits=388 cDivisorBits=136 */ + "2e28cbcba986969253c31d5790d3ecccc17fa4544666fc51fd1d7f795ad54b538c1fa32d4d5447697ad060e762ff86b7", + "feb956e58d2ebd7d951022349da800861c", + "2e63fdc5a0aee5217ce9508a6e0cfe9e8086451c81652a4330fb1aed364b58", + "5ddfd8f38452c2fecf0f1b61459f3917" + }, + { /* i=3745 cDividendBits=1302 cDivisorBits=773 */ + "086e17a279cf2c1e11cdfcf69b4f1758fa967dd558139038b6d0fe63f489acbaf52bc49e7fe7123428fdd2edc614dc396a905cf0f0a186bc87229d48f3eba804f0fe9ef4233424b3eb8acb5da40f1b96ae8a18abce5e3f3efd9c20ca8daa93b1529d5006489b61799b493c2addc5b2e759afc5db0874db8b28c4409677c6ad03a8cf15038bfb341abfe364d516022ef6004feea883db94867d4530890b3f6abed38e3f", + "082759ccd841a5c8b54299910317269194668ac54b4641f2184d66291f3841e3f4ae63767e4abc15e30cce0f5d70fd3243cfc1b65d0037b5c49327e61aea85d996a6b989f3cf38cb2bfe9d016dc517205358d2ff29b122f43ad1a325824caff394", + "0108ad0dae213926eb47316ac7c1eddb2ce308bc9839eb9364ab131c7d476664beb7129f84d72c12334f4ac7ed66331ede9fb5a47680582bce1d2b6a0d794edff0d1c7", + "057f4cb00b4f7bd4cf39e8544c71d696af2d74c220f0f79c7a8081eb887affcfea1101f62b98acb6b3f154263f935335180acb4aa222298d04a191695edc9571eddcbf668fa47aea5a9601ad825ba11e16620a7d44921f4e188863614b35716233" + }, + { /* i=3746 cDividendBits=718 cDivisorBits=331 */ + "119aae9e1225e2dd4f0d8da2f38ca6d039944ee8768d833eae55921e1f289d171a49407bece71795e504ac3295c1ba7c044495ffea83f37a55b99e33b739484929c6230c23bc8ea752b0dac6759aed777cf554169085e2a2ff6b", + "02cabc5503d1d73a24fe392e3f2b65dbb43ad269b967a831d5de08cbe1aea878e4e040be737ab03e8746", + "064e2d9333360c3e473544baa6c5894bf198ff1a58a306c471806dcf5c29403cd985965d38f9e95d13a238d77b52e7fd59", + "02156802edfef277147de64b9b7998aa6b411e51dcc8b10389e9eef2443290ccc0ba04a0524e550bca15" + }, + { /* i=3747 cDividendBits=3942 cDivisorBits=1937 */ + "0e99698ae502b0290f3bec446cddb5a0a2b13d1bd50b37deaa035fb242afa1334acc4841638f1e8bbd2feb3b4353d8cdd39fd021c66ed6520e23db33bcdce6b31137379d752ad55d72588da84810769f71dcd55f5650bd85397a57ce78d0559e9122d085cfdba209d5da4a20f29ef8d21df5050464f7e0c62844fad959846739fc65d84093635809e5a1efeb7a48508f18301f9a3b2eea439fd7edb057976806e7ac742d55b6057ac5be88c57dadafd80907f063970092c613814878b16fff6490db0437c839dbd822af11ee20c5e0094c0502369343beb637159ca7edb7aa18fe35ed6a348e9549426a0158d8f2ba1769b5b8267bb8018afc771e97ebcd3ca8e84b88cc9a9f07efa1f2f5473d9ef3156f8e36adabd85e2838839ae67df823e2f78ae7b1524db635595f6b1f70c7ed1f644495d0594b1854997ab2664ab1e19889c5b22ea6fa1a3302653894275a48c74651ba352b02d5e632d9c523c5b7c9f27ad65986378ca9022b03d866d16dce82ee016278381df6a5d513157c99d1680aaf12f3a53eaffeebce574bff10248d6a98501f76a2cfe129aec3b2f1e1bedeaddef9dafa0ddc605978c2698034dcf0a13edeeb54b6aaa379173cc11381779e639ba68e162349ddec6a5b71961df3efb91ccfd45aa319b6005c9dfeeb15d90b4d070a55b61d1a526c11573c7211", + "01c1a25f25863214335953733886e25695dd1c4c1770a0df0bdcc75916ac7bf35844000e66516e441573a4b704f925331ff5509b2ad4cbf1db32fb20c5ca7184823e25e72bcaeb9d78ceb352ce6d8fec9b6b99267e9543227f091696a4c17629d80fb77ceee809f53871a06b17c78ebbe6bf445bfe4fd4bb85d039238929607e86eebdc83138f8df55a6032e80d07ee7e884a428ff03b6e48eabdd4953fff593b78d62480c5738e2c27d4f996b56f6278e8eb0a7ef8fad35b90aa80ce4503a9ef6d1e2faff363941e01308ebb3a49e5fd2055006f2939643dfe9b707d4760c1f662745f12350ee4a4806a5e03ceed870d6e7bc", + "084fe6d9c3eca8d5dcb53a7c9a0f594ba046fd9a56d816e2fd98955d4213cfb4f1f8bc778748110d021408b5b7832fa6b9921ed63b98068c5e25e35df43811135495ed26d77d79bf724a13c69c2483c9fea8ec29467f926792f194d749bc71da5e30e5aefd20c39a6f4e0551dedb6b187e58aa63fccf55fbc67459f5a730189740328197b3141a8a507cbd256ec1213f3345ac6f702661b47eb79d47bc8acf371279b47449aea5f0bfe7e67e24db32d42f24996693b791a22de7fb60203ee9a69f46e2da50ad0edc40731ad96d6b5957dce2c716159c6467e64c80fc71edc18c2fd92d28789d38322a0cb6cf2f0e4170f7e3de5a4a1ca9e384dcef", + "29cdf7baf999bdbab49bf3f59d2417b6da6263fd806eba5fbc5d673b0873488efecd826694c249928fdba3843a4064694c3ed4e9685f6cf45457b4500cbea6e67d7a0583357d7eeb8f050e1761a914bfe53533ed4f13aca5c98306ce1d844e915305a01a3870eb629c26ed9a76aa79a3246e054dbc8285a5ff05df2b09167686cf5060c4b0207f96d1d47c88918e152c5f2f54d3be9505ac51bdf9f15a9e5e666b406811448a1fb1fa116578319ef6b84777e06ae152f65ac4f015b83a8934674ea96701fb2132e7940b67c7aab831712b99b96309ec3129cd499e8d9ff09852d1699a25f6dc33311f7e3cf525a01e84898d" + }, + { /* i=3748 cDividendBits=1279 cDivisorBits=506 */ + "5e753f1fcd95c8c0d552f62f4857097f6912751ccc3ac31dbebad4e9e4d8487994cde159f3effccd22b17c0feb1e1d8e6a4279c60b06ffc4cfe1ce523e8fa6d871653ab4afc8f82ba1a0a310fb4b9c3ae44d5b54f84820bd8518826a2042fad2db5b1c002dc8e10c1ac6d952ceb95b3a54606c30ddf13b3251075588a51d011e363a66e12d8a2f3a27d60924a74ae8c07ee47e40eb3ae15938e623ae93ae2524", + "4106d685c5574811c1af787574504af00afbca8b443ea68fb4b74cb4aab50ca0d382cdae6564d66fc3dd05c49ea9717e9072892167f7d03d84a8ee399d7975", + "0173ddca1510d9ec7b4cc65b479a560d0fd4ac2908366a8a1584c8cf8756c9024483fd9a863c2b7533b069937ed121df78d280a8326c44bcd91c721f1723eb095ef7afc89252fa44fc04e93ab44f1f4e1d2f26d96c360613963e6ff6fd76a5bb5760", + "048f34722410d1a11f777cfaf74db24b872928d87de7934f9a7662bc192a90cb22a6a027b13f420311726b175d236da9b66ba1c145d37f7f8aa28652e2d644" + }, + { /* i=3749 cDividendBits=1716 cDivisorBits=82 */ + "067ecc01c00b307e519a49dd018efd103a02bfa0cbaa13e862de74c91ddd004565558e2d2e12afbe6218b3ecdd2a2b6df2c8ca3ad5d9e1b8cf119449cea9a86758ec67a647048531cc582cfc2bf1b17b8640d6296fdf5d954a7d56d71cda997d74783cb86d4233f204ea87febc09a1ac9d876d21ddf572eb0b97675200655525882a8878af1d18b1ecd5960ed912bc8ca93e7fb1fbb1d713f2432eca050ceda37beea319a8ddde942ae5188457827406feed082b012ca915f7a155583422bfa483b9c79beac9152a3e65a519ef6da7e8d4d348164880e9", + "0364e8ef8d2a70a5222d23", + "01e9e58777b25132a20cdf087b5a5681fe7c683996d5f4d247e384ec74b9dd1df8c592c6c89535deb1eb71032971ba2dd2d02e9b3c5343177294b30a0d5d871873a02f8d6dd07f4d8ae23f036c0946e00ec0ec58af6aca9f448b4301b6f7c7499ce3fc2beafd969a354905839757f28ba6a1f545df6229f1f2b2f512fb10972009b753f5a117f6d894c8030d6262788df086bf62c7e8d4fbf4c31a34fbd5c1e930aeb5a7329eeadb9b66c1aa83c40dabdc230a7c79b3fc1d5982be5a2bc168f7b3b3218a70ff856abf86bbe77b", + "011fcccc9e1b729d913c18" + }, + { /* i=3750 cDividendBits=2092 cDivisorBits=1812 */ + "0d209e176b37f7dd5d4c4695f9a544bab1037980c4ef4735250377228797492794a1811bc4a4fa8f039b21bb53614cedea2bbd013b83d068c47ca3257275e6198b379412e33bf2686767189615a12f39e112c60f8373d0ddae2176e3b5e381b6a4a47b0d4aeb888ef35ad35d670654e548eb534182b5cb735d8f6eca992b93da5210f8ab96102aabce8696bc957e3a3cb27f8faabace586af7d7daf3879f479ffbb24ac64de1b90148a01580ad33acc2e71463dbd0588bf05c38cb264068cb717e34ca32a64f9a6343757cde3991f79f985401a8c4382ca935a914efe713f19ac21f2bc3914e79b0953a7a101747112cd76bffdec8c3e7aca2ae6ccfa96e5463fc53000b0742", + "058e2626c59cbe9df96f2f3eb928a259311c694e43fc49fef3c6ce8ac731c5faacb051566c20e8f70ca7746252272da7ec6e13cf26b14c1d2476b3f756be49847de2811a4fd508709c0fa148bbf0b7706544d3ac5611db024d8abe7d038beb3922bfab4a2a51e0900f352fd4d15e8c8280402105d67121960a6092200c43ff3b749bd91fd69c5ce01e2edaa8093d0901f01861f8618c78c3ae9ceafa6fc20be38ec408ffa1ed856a0bf32548f2ddc9f061e0cb0c02ace1d2154571fe9d5ba025ab9ed0471d2cd5b3fb60d2c70644c8573aa48e4378332dd6ef21cde58aa4085ae16c42", + "025cf139f7b087b6dd0b9f854f30d67d069448556c482d908b66f5419bd399d58e301dd6", + "0ee119efb161fcbe83771f32f9a055b0c2631b80ae841b7cf281af803df937ff2d442adde24f9fea7d929b37f34c2f96d4824a7b966855714b285079c88266f3ec2d78f69366adc28cb664ada630579510a3d8ebe7a3f2d600a7e0de63969671c7e7df81eba4c605d55d699e584f9649a25496d2cc9ee260e77ad828a27b6b31e9c771400185d1b7ee326abdec9f33ecf8ec090d4bb91c4139573aecae78ac45a493269060fbb9c0f0f0a7e612f5f3c3fab45dabac18b639131249e0e51948cbd5862a526a4918f8da071a362b4b35e49830b179a6853bb69ef5d24751d095f70e16" + }, + { /* i=3751 cDividendBits=1985 cDivisorBits=1017 */ + "56059e22f6abd9b1b4320b8b8655bec9e97c7afb242c25900a2ce0feec11fff98ce7bd777707dc6d7b9ed07980f98373d7f0039042bfdf3602da9a370fd4b5cee209f0064deaecc723e36a476687b812e0184239948db86b795d3d6f4c3e7ec6e68d803bb432ca9d9fff43229bda5c25fd9081aec59e280ca103473398acd90efce8269898984ac727c2a0ef606ab01781f747237326bdc8e2f448791a2fd0b0f6c8669f0c015e1da1c2604a4c1cf4dccb0a1c704713f8778ed9c36941b2cdb5e81b02044baf4c8f10a544b01b60cf7ed28afced53a71345e239e036a60292ca4e6b9f02574283413269e97bdc886fd29a41daa54ab0ab05", + "5157d720cf4da7be880c98125d0f550acb22ea6b2fec707b2aeddb120b03c13d6b6141e79f27f4db005ac4a0c16a8f9d2a64e42329e6a00c6681b1d8b72772d3f3c4054ce08ba8cb62e7fab63f6fae014abdb5bc6c948621b709227e4ca3d5987180ff07088065e03c82e68554ceccc3e17d7250b646452df0dca77979f4", + "010eb99978d7cf73713ccbfc06d531d672482432afb213723d4576a7c20eeab338bec8ca30d667deae820638391d48610b0481c2c8ba808e73d69663401c8de8c1d8a338e327f12586827962524e77141904ada3feb2332c7af2fa08fabcd6fc516acda6d1b6b6f2c863ca65a3d99672774093edcb90b963038715", + "11f6d6d2ad62fc5157e11ba3ce422ca8bfbd19912b92adb0ad9e04d2d5c15e2dc2b2487766520a5d450203ba5d2e69f3b458d92f6333ef9526605154c9a46ad1a3d63f8373c8995d12121b31d0f47e71b1168e401a7a8eb30dca6fe2c6bf5f43a3010cb3fe86598e58b7429c4c9ae57a5f0c9ed961e498406a50b48dfe01" + }, + { /* i=3752 cDividendBits=577 cDivisorBits=115 */ + "01a6e1751cd4cad46d8c35d817b94f4565101467fd3b37983d0cb6e5f2e2ecbbb9761905bd8290ee47ca46d2e8355495a5d9903d664baf42553b5cfe1d60ed8f9779f43a63b66868e2", + "03e2f741975505d3a39e6f7399ec0e", + "6cce21923ad696f04f45e72e6d40ab0caa66875ab675aa816ac3c9327b786b8ab14a111fe29c9f615ec173100aaa41f8c9e57139a967ca5acfc8", + "4563260cc33953bd04d5e75cabf2" + }, + { /* i=3753 cDividendBits=1557 cDivisorBits=1092 */ + "1799a39ec090f490a9dd0542a8efbf1daeb0e4b2d068b2f1c5b516f4928e5c8d7d73ef343b830a508c462330340b70d5976ad9aac41043d0e1800376a4b5c3646d0335ce6280d45b7fcf1d68937c4fd8af1140d67e1cb5b5099078f345360cdffcf59b9b17ca45bcf95eb0f43ee9f4c0f1dc720140b4e6ac71152e187087bc0047ecc19b2040f7b750325ca390bf5561ca4e94c81a0817570a0c76d29587ae2d0c4875b9b1eec821117689fa280d08671a45dd8d17c45a81f23a3f1d2fa96882d4a180", + "085a3c2cf6f5f7d9570d1223b4156513b42e252a12eaea141a8489bc82a99cf238d5edee5c4299c52d9407721fbe33ace715114f363cfaabf70622052a08a444f9a0f7aa740500a35ad6994688b8f57d116d48dbbfa1b9fc461ac243c329209637cf498b768090390e84d686da211d9083192c5da5d44dc1ff527d4651cfebe1de310471bd6240f0bc", + "02d355af02ff24bb65ac5419b6f28722deb59d4f8b5e67e93e4c6c47d6659b473797fa3e498cff5f4beda97143514ef8399fb57a218ba5c897c9e5", + "07d28d5bce5839f4db3147d074d60179aa5276fe3cc893e248c4637b88443297931930acdc5e453c1e20debf86ac12cfcb96554f00f3f88a7dbc8977ef0da0d9a73910111c3cde05a8ef7a22d515289893fea76eb912a7f1d2e471737884ae0bfe4310eaf35b4d4f59ba121deb0efd33423c73f2104482f0543c2761d90c189e1784a34b4dc2d5ad54" + }, + { /* i=3754 cDividendBits=1612 cDivisorBits=1321 */ + "0bd5e701c3cbdd0835bf73b9589d82db7116ca23094854a610b0c5fb912a4a0cb94acbc9b5bbec23bc4ba95474814fdb72fa8af5f5e8923451434b116a3eb18f7aed2eabd605a2f076b7629ae0c57214447ca438c4554d493c1d769329478e8dc6d7ae47e68f78b3b17410c7f77cb075fd850b26c8c68562853bd4aa4b1683c4470100ef8aa69eba3bce72d61d75c7e758c5fd788361deb76ec8d642a3d0f456198b35cc5b81b106a84a2f0492eef43a22f1abd399ce40f8d77c6ee98b7e17735a381da11ef65091a5c8", + "01093541e80a1d2047550e3b78f534119c45f3124f54ed34f773a1ad792555949bb348bcced9686a25b894334d5782409bcf9a0044470f6a719f7523e579278bb034703e62f83d4c575a8af3374a80d8abba19517ad3943f1cc59c40429857bef076ff3a696be7195a9a106f20c16c55e7881aff0762e2900e48d30b5a195024c6da1de9632c5b42ec7674fd8e092e741f72ef51e35e9dc4c51eb8e4b47fc7ecc9b47226b2e0", + "0b6cb43979e32c99fd06bbd6403f9f8c8ed08aca5e0442b5089450ef6f32d8246665d63e78", + "733a493bbbd3e97876fd97977d65a907560401a75110ad5d7cc1b24718597e9c47c4ba3a45a39edac4c2b6c1cff8c8e77e15dedd69713d906c9927cfb18e9f7d1d9e15ad5a5ea1abdc4cd9288661f38732a4a1b50971d76fb03677e547ecdead28783a8aa4fd1171d781a723142fe05ae5c96a7d6627e697f1e99a4c9ebf941ee0d09a32022f8fdcbfdb4fbff329d2b052aa6b052c3125296352cdf3b8a655688f87db8cc8" + }, + { /* i=3755 cDividendBits=2967 cDivisorBits=644 */ + "3c92e0ae585817186128b53b9ce32e35d477524bcec40a75830b11a0f73d9aad494f507429929ea4bdd3fd2cacf485a30cb30137d6875ee2b5f4b7f895ac32187097b0dd65e583bf681405f4b0e2adafb8fe713aa6b6a0367e3c295901ac60fe8dfc1fb74f7ca57065a0971e84b6f874a6b007307065fc43a23450a2af2f59e97cf812525bd9ea257ee74626faaed0da71818d92462726fa6efc69e3cbeb6de8638525d01f5e9015aa8a98e58aa105f84d2d7a00a25db87cb88931bb3929cec36006a2378e7a356ba4a46c5876f2401ec690cd44b1e2cc20e99646a79f32873a9cc0b6f755d34a7eb83963be3588e0e4edb2e9e57274a2261ee7ddb474a592c5af06e262598cd7c30f9e48295f45b50ea6776f898538d0af0865ad04baaf1cb5ee322cd1177ab5bcad8b53deb5cdefc27db873d9399b2aba32db0c7848b062bec2f845c2f06af0559556c963d64c19685dca8cbc38b535192f45688d6d0c863eee0145020231704b7b1b8cfcfb3a6794c16c89", + "08b42ef4562191b894fe30631cbc904d39d84c44731769aa284f319b8b85c3369b294e396529cc76dc0224297357cbe95560160d9f33ccbd34fd473ae9389d1c1d4d0ea45ac3a6ca1043555620b842d855", + "06f59cf1b7d49ac8e8a6a755d0f6d29e9e6c7e286a60e2fa2e2777739dd01cc7260721ab5831df9a43a4fc99ca7fe6d76ff4e7ab98d4ea5e561e3fa27e4368312e1c23c2cc2e1263320547719ac5616c42955a5c470a6c78aef0e808b7c0bc624a74fbc1b648ee357ae7a4a9020ae6911316aec8924c00bb03d197b12a780dfdc75c19d9cf39024367167126c55ea6c685a3782c8821873456c6589aec2272debef6103ed4f3bdfd1d07acf341269fd10341be72c6d5e12c1d2db1f76d7686f307bdb82ffb6394ee07507d5ac77bca3da75362565694550617f0e0fce3b92fe54a960dde7d606f8dba4f9313138fe65aaa9c0a4a4af431fc6e4c4c9b5bee06b8878cfe0b00f48995fc48521a14b53e98ab5bdc442d5fc27c88718e30dc00d0991ac180", + "012c9c8af1b66990eaa763ef0930db13ebd2a995fb3e2e8db001aa3401e2448aa7889254d2aa2553454c8b10436f891c049253a2801c47830920d1c7964728489d2ba606f4d02098c61f930ffc489b2d09" + }, + { /* i=3756 cDividendBits=1532 cDivisorBits=808 */ + "079c4bd8aad7856b8e4e2ce4f3e3ed144a7cce479d5107cc0db9b0d9d895347c06f87d8554e5e25d079a870adbb09778585a19c9f803fbc036c342deb2ce20ac14c3a4bb5fb55f06dc5f0090ff0c75ccc19189dadfb3dd82313c5fd812980670abc1e2fe1a1b09cd7e96a229df91f4363fc211ceda853c701b75be383299dcde76050c1d9a97b3a5468efdc5d1364913564685dd0be3811031fead3c0e69b7a8da9ed0d86fbc8825e431c41540291702348b6d07d6c0b211657172cdb561b068", + "4d05211fce2f5cd939edcc16033a9b95817f6a062e22b5ddcb50356c273890426ad4d857f751d5ccc61d0d6edfd1c42bc516e6c5346d39e2a5c530af9ca9426e119b45ec5ffd7ddadc7315eb85f31bd74c8b1ef6d63998df5ca053a28d383f47961ec3a37d", + "194bc4776c80397ab0d18893f5383a11a1f13c4a6bf82a82560fdb1f16985a446629b2a626037220a3c8c83f6f7a29d5441a7fe3174bf89ca2ae2c4a527af2811b960edb1be9942617e1c8dac1d9c5db03ff8234e0955a8cac6a3f", + "13182c68040cd7b1b59e14922d377ae15dcbd5fd9f3cfc42daee52c993bbcb59db2fa6b16282c62d145fe934c59fc2df73884dde17d471c90eaacbf4797388d97c6595baa120ab438a27043c14d69e9ba751dde7cefaa1dc3f3a0b16cf083bc852ed8eb2a5" + }, + { /* i=3757 cDividendBits=3847 cDivisorBits=1549 */ + "3aceacf2fe59cb5b075286f304c51a5156057bc5ab657b96a1475014b8013f6de8cbf8a2a298386539efe2673aeb4333a87530cd7d2728465d2bad82c473369c13fc8e6a786ec0dc9d40a3cb209db8b7d388a1c29519e6186190746f9296d27763695f39b1c3a06e39b83b64f4905760d48dbf9f61268dc484469d045bee6f5728cf7a246c327b40266ae986b7be3676edaa477504d8dd49529bc689fbfd53dab13c083840e152e1ea0733e01b2783a1e09e1edde32fcb473ec52f0f36fd5e37a95712dcccae4e0d37131fa4e18dafa440bc91072e63b8de6a2e63e82cd166dc1b5c94dafb33e26107a65bdb1a3b664d247f3ec8ad26c024f089a06d73684fc1f61b6fdde8ec73e2f89642268b07cb6f3313103f2cb41b6ba1540eb22e0bdda0232e6b1d45776d093aaae55d17d49142b894a55dc524517a44e28123e26630cc07f771fb2991c08f7df3ea92f194fbc023595441d80e89391d2fb30ab08a2fe3132742628adb831dfa721e6ad558157b6176ff18ef379efc0043bab0d92649509dc7b9db5c56188784f35b0a7ed9a80ddc1370634195bf1e5ff85e1c03a49adbdeedee4e6cf8d992784a43e6a67b898d5ab4b4193df7dbee4aff62dc3121a72fd2629dc212af733645449284d5fe26d4beda3788bf8a2ed82b344fed93f9a768f9", + "1194794032773845750fcdc66360a9767756aeb14bca3d3d5f41c5b1634d900fb8d78dc40c9feefb19a0a478ec6e17c3f9b1c45eb248438337bed0a2b737ed281b5a834aa650e0b54c6ac41820c5a1b6ae97396646942da7ae7fb2501ccbf1719a7366d7d9eb1b2b4447da73abcdd7f557af87c8305431d82068be22191b81796eade032a99b784f1af668292d867401b67a2ea61454738c8c14ad98e5da131f592322d7379d02d0635668387ad400aacb576ea8d9b7a16ba14c709fc8c21961d8fa", + "03585a87b4b8f18bf3c4991126c869c74ca65685247d3bcc8b1aad40959c59995c25dd583c9cac545cd701bb27f3299f568c06da91f2ebec99226446abce6aad598fe805c06f37656f13339e7e6d43d584b70c67a689175155cf2e5e2f15090904c9fbf70b23bcd850cb6ed853e0fb572deef3cbae9be429a5cf92a0ec7eb76834b9b84c1b53fc194f16619315f19aa1edf53e230be925b4aefe927633aa004fc1346dea1596edbe8c651e9750c5f73ba9ea09c2ac8ca92eddd5529244cea516dadff47ab6c7ade696071903c5c4a049778a46153b4b3c2039c9577cfcb4521356cbf836a661c17a4c456c912121f702b91d6a02f562c11f90647a2c2d7675495c98c6a0cb6053ecc0acb224fd8c788814f8afc7c943c6b1e7bb3817ea56732a", + "0a8ac8b5601345057583c71ddba31af9f412e4e8beb00b0d61d8c021a21804b877b9614b52942f6ba89d11eb53c34b5ce3302862da03e1080a8dfd2b25dcb799f9ae2bc46070c41c638a8f7b6331d38c3caec397cb0a11d16c417f099f1b1f253eff94d03cc88077c90535f1f12f828832c16989d6ff6550e57031eb84fbff0d380a4a293491eb35c05f98764c01fc7d2b2524f032623f60bacabf970e6e8f5622f238ae8d504c8568631f391b07bb33e8cb460218007b9572bf52a2a6ab732581f5" + }, + { /* i=3758 cDividendBits=1425 cDivisorBits=824 */ + "010e2403d1f97e8ae2c1249b80c4b4c3235f327a6945fe907ad8d514c95e1fa33ffc0f8bf1428dc33c72d55509ce7edc57f1a56ce16cf8864e7a403b0ebcc6b573b7954bd680cdfa8bc2b31402760d55bae2fb2b52b79b026a773101018030364e4a6573172eeccfe2f574c055bac07a89a82bebb08dbd1e2c3c438f16bb853b4c9cd2cb95fafe765382f7324b2902dbad57bd36d40ab64998bb3ccd12e8e0d6dde075f20e76b79dc07baacec648c3cc9a3e51", + "a9db059a32ff92e71e796ca3dabb9566ec0ec0b77db92cb80b075dbe470e66a152f0af632d30cef7d15696f13e3be5254e5d67b8854464aa2a90548417886fa225911b1b922ca9dc30c40a4ee8f2d5f95aee54dce2d99d2e6d85c2eed77685f49923d54412e61b", + "019725625aaece74f84f7db2d1de2dd7a2e04c6d81b70ec6772f5b5aee3565a951daa6ebeb9356f94a3b1c27be795a26201219a3a178cc1af9eaff83196dfabf67153edee19c655524bdc46a", + "25324fb92ed0068ac870f691471b8743563f11935193827f45bfc2764b4dedc49092f8de5f3b397fa01acfe29b968910b86fd0553f4bb6f87608f45d404abaaefde4f66ac362c12dcc66c4397c2f3663705c332ab2226da13663e7286483fdd365321076ab4b23" + }, + { /* i=3759 cDividendBits=278 cDivisorBits=85 */ + "139b63748b316b97657dcec9500fe4b2985777f1518137b9b2375729a6acaae281787a", + "08fd02839901f40a4c00a9", + "022e6f40b51f9cc85f0b5b4cb0d3f4ed50b6a922797abc52f6", + "02e54e6a4b16da9f26b414" + }, + { /* i=3760 cDividendBits=154 cDivisorBits=62 */ + "038cde51c50a4d84ef039135b2e809a1e0fe2409", + "09656092512e5233", + "60baafaf50fb86cb092ea690", + "075abf089d78d559" + }, + { /* i=3761 cDividendBits=1069 cDivisorBits=813 */ + "124b2424149ff2ef9ad709063412caed96bf12c784a12ea38c0efbd34ab6801c67d0daf166192b14e9452e61c8a4d5fd7a3bb8422277c712623ca236733263ae7b894079644d59f0caac0e0a9c08a79199d1ef064ca37477638ce34e00cc713f04d682ca2da5838d33ae416afb5a018305ed2a2712c4bcfc4da58be61550ba62bcbbd2812586", + "044e139cbbffa120d09cd87a0ed36ef7f0daeb7b23c5ea9fa8720d7217f38a65508cc52108d145870e8a90747019d0c8b81fcb0b50af2149d3784d5d211cf45f56ca8b7459517d5037f0f2cb0e8ac418ebc3a578b5f2ae9fd393b3d23b38ebb6e59f50ea9fbd", + "043fd74ce932771d51cfb53fba044fe8707fff6269dc72303f437c8b172fde35fa", + "03a35f4e0e6a1f44d377bc0e9e2736130af4dfdcd264bd70fe099c8af47590593bab3c45fe2deb55f30f2a9d9534546d8eeca40b64c168f4401e505c18e8c27804b1f4a05bde579566358f0f2118d8a3ee9bf10051ff4981638dbe62fef3cbdd4ba1016905f4" + }, + { /* i=3762 cDividendBits=2165 cDivisorBits=1345 */ + "056f90ed1e1714235c1932034cbd7d9e6a4e886468d6aeb89b3628c0016901da504b9c8ae5e3d6e69c65f4012016f1e9fe88a653ceefaaa7474fbada72283518d5a5c295bcc6d9619ae0ebf90045e496f0310ac047c6231e9856a64093902fd200893523a0924af71acb7b3d7d19f4e1ff53e006d3cee17c9005ef7bd4b666f8eb9cdd6efb33b1a956b16cf093bac3c27c4530df5563ba1f7b5f08086b2a26d75a077399b1d4bc0cb6109608ab2c675b193f7b90ca77c779a107f68c2fff9ca23315a0ec8d8d15e6655499f542c971bc7901b5a8ce43ec523044c354a88d8fd0d9a8fe6f2d8fafff61496cfbebcde9510848f23fea3a892711d291e34c31d217d9ba96ba5b69d02a87648508db9983", + "6652f2496b2d92497b1f852445bf4784a20c75e478eeb2f43a3d9ef524617ff1b4cb197c066fea6a2298203c6488aef49dc4f5bf47d595d223a24a1d5b66a53385192e52c2aad01e0097c0a2bfc21b63d3717ed589e6681e5d4227d5f12d25a724bff18ec3177f10fc2695b02265c3d6ac4d7a1db20e1cf5af2d38b10bd05e42dd2fb88033ea2a3d174576ba135c11ba806c10ec8835f6e22a8c92c81ea4a397eaf071fb2a8e56ae", + "0d997fb7b9d506cb9d16ea7c5400574465eef8ada6812a96580aa592c1370f323b23b0393c7712ac5c1f5ac75d56911148354f30a181299b00d2f2d2e888d9f4fd456c0bbb1e7841ccc9ed812fa8a5058f9914a979ff740d8760a68bc259a459e05743c65d311b", + "0453e74ef6fbe1228821fee7f98de4ff32614b3b7510c273f75d811a5a30aa5b0648b99034c08dc35afa86184dc1d7481d8ec448a4c0f8d462ec193059c91519e2e76d027d6ac60239b22585f39a679449c6d3f9908f40ade818b907ac2fa7f7601782c9232b5e2da12fd2881de770d2af15f18d057708affe4f8acad9479d3c9ab2a0ef925d155d6d81a5fe2d21b63db87fea610f76a2464b928933e35ed4f7d93bed983c0b2729" + }, + { /* i=3763 cDividendBits=385 cDivisorBits=61 */ + "e09d41aecd677f8c661373f5e42686280698f06e6ba4bc902e2e897fb0f7d21050325775a93f157984bbb2ae03760db0", + "066e2982b204e110", + "22ee34d53e3b44b6f5935c719ee3c68f5f8acd929967b034916f1ce6b3e247fd2d5117fa84f38e0aaa", + "05bdfa58948df910" + }, + { /* i=3764 cDividendBits=298 cDivisorBits=65 */ + "02b781763eff586857a60f36351c7569bff506372844c3642fc389980eacfb5bbd48c95ef6aa", + "01e11a8d4cada3faee", + "017215dcbe5eb100fb632ce4a0e7a8723b517765ce20a4437d3a1874ecb1", + "0119c03d718bd3101c" + }, + { /* i=3765 cDividendBits=3641 cDivisorBits=1961 */ + "b1959d32a8fb5bd04d1b0445f44bf1be72533e0d7110ad8c88a26dff789a3f3f8e61cfa13c601f5a60197fd37842c0913e3c69813c58121fa70dd1a9c5d8f4c6248e2fdc4a8850cfec2e81d3adff2071b5438b81c2bd013bf79d5ec1513d7b07bdcc2baef59fad8ac53b0e962e4998cfa43e573981dae68faa0c40de8f99d6d3395a04b73dfef8814f48775934e18aad9f0aaf150c01973d60e178450d184217b883199426c22cc2e33a8e5e991512550daa0a645200548666ef9481c8f45daaa3a8562eaa53c53c242da1fc9411d72e3434d036a4a65941ee3949b43f953bf8bb7bb472d8afeb393beea96ef06cd9ffab43fd488319c9383b908ce7d2e5f17a9df899dd46d282ab6055dcc9977dd46262bc185fc8de7d71732cfbec64a19af673099bfff63955328ca756cc9e84855131a02ec3b90c240f0bb5f4c8c2ec09d187462c492ec921ec35abde4eb870d5ba24fbef90a2eb86970899cccc433a9310489d04f88ed34a0d342de79ea6b9d82dbc68d12b0474ceb6a61a9d8ad9013c81f59d03e2ea26e342400b56f31787bb3096b5498c4162d380f0758d2ea8b18de34587908c797c3eed7c1e30d53ef6a9124827643bdcd4c3a20d8d3c350ca9bf460cf4ef1a482f72", + "f2af4275be565d83138739afec6289606d5fe340e06e5cfc9375d564f2ed183e1af30ba6d260c588ffc98bf7457d7179fcf8ce780f441cd3b5596ac4cc7202e1c694270514632251460f12f39c188c1ef018eaac59338d16fe72084eac606cdaa023fe2dcc2e68031d7cf0f8faab887c0760cd1a3d13c8078c13567dbe05aefc2d9633303a179604d7a877d5fcd69ce406be4e64dbd7d458771517d5c02a94b79b383e0d607b6f2dd021a627beef6693ad48be47c5145da5ecc64e2da9b04bc7d8079e2f44c63b674100055bf3b42992a84bd1907e5239ba1edcf758134b0ce2bb29f0617069aaed7b002f18c346a5626cd0beb99c", + "bb53f59a6827c4031a0d14f033633362c34b7cc7d30a0897768036b10b9a7d5dbc4ef09f0b4e2f8c83a1844963c37bd71c947274e28ddde92f06ab8adbd6096e77027eb8f23c693f9fe81c247cde78bab0afad3ca63e4f07170f6d95eb1cf8d7284af05a95f095054fdb0bcd184eaf8a827977764d9f3f0eae8a07982c93ba19f480a370451cb16a012863306814b9c4d6e44cd0c43e65c384d8c0940a1be9dc6d44d0828a9eea661fc25465ecbdb4bec3fc4212dc6a30a8ef7428844e2875a34b68ba23a7970dd8fb958430d764375de467", + "6138a838c6a0eab5cd49e2ec97ec2876bdf76399551215e049a172db0cb3881b9f40ad6274791c4830d3b74bc0af871b09da5ddc83b38584ddff83d66ff5af0b2300ee842e8a617b02c497d95168fb13295136d7fce336003e6fc9458e32ea00850805422fb02d67fd0a020d0c3a594e4617ed95af7cea67f83fba0d783952e190fdc9a61f0e280fe709ce024004dff12aa87debca7dc679917966bfdb54888cfb8e5c10a0cfe789bd835818d0596af2dea570b4f6a0bf7e76708b5040e71a33e4a98b2ac6e3a4ed64f45d87b61435b60caa791911e8afdb8fe1fcdea7274948289debdf611ebc096a280248f375d61d234e9091ae" + }, + { /* i=3766 cDividendBits=2275 cDivisorBits=1652 */ + "02c5655c4d3a64ed8a986c11ac33519ef241c9b2b85287c74d40c5e6411d988bb79e8cfca9b9c05624da9dc91bdbceaebee5ad5c49b1bbd8d40748e04a389a0067e70281766b6023ab0c7c74c8b266074216fb243c2c25a9c703b7d8158c6661c07fd7e816fb13f050a83fe2313f5561c22be2baa3df5581470292651e09012f5a582ba111e61c9c59a526d61812b7a63d116c92b6df4d0815ae36868ce22858c3b925c2c33a57fcdbfd3f21e87045275a806631bd18fc87db2a3835f9aafd1442eb0f2ee2f03c4b4114c4cdcdc3ee2ad140d1b5baf92bd248e40d98aad3426d398028fafc08ad20139d0a000f444bff90aab2e2fa0c467ded8046f3b505d7fc806ad83aeab35f7344d5e1d224891cac2a3eb5ac4c939bad695574db8f", + "0e6440c5ff3937e0b6ae815420ed2ae627e7d7494279b4382229da49379fe118d77e4f333f7850465841849bcabf4cce985e03ef0e7a83ee3f4f262d176a24673b2fac17f85d2e396b9a068d465450a3e58ecab88a222d5b15d83839ea822c9ceaab13af522932c9868008b48c33e525cb74836546389bf42144554e20487cb2225abb523fadf5470ee397528be56ddb6ec2a2a9d55805c87131f94877db9d6ee9e5f603d21129e3ff445ba856eff40695df4386c79ce9531d3571ddc1240cd2551d85287dc87b82e5c564d98db497", + "314ad528518fd3cb58f5f0f10b2dfb0b6f62cbe74b0d05251b96f18cc26af73ecba85e17abfaf7cea91039b7f615a818f8c287cdca108a6bc116d1dbe7466424fd6bbe022d7c5dc1e1503c0cea83", + "0d429b5603d33dee979eaabe34d95d1f38b2f6c4c51f4844a1ac2a0704a3110d5d7501a183cbe39c598caae6ed1c676eaf0ad1cc9b63ff21947d87d3fcbef362978a94f8b39f13d005e7849994658d548bb1215b737eadce5fbe37fe291a787d9a8db4fcc0c354ee245554d0dc063a2c4ad0d1ff70bf452a58d274dd1b6eac3bdf3330d09222d04a420deadffe76cdfecd174f7c72788e517da5cb6d90d73bf419ceebec5baf845e5d5919335b829beb7c870460e0eabb1628ccb7ef1d3c81c07a303521b35d1c2509ecca9fcb6c4a" + }, + { /* i=3767 cDividendBits=358 cDivisorBits=185 */ + "1d0250f9126a766a0a62fc0db7f6f1e8de6548ae46969ed3bc81e28e4cacaa42dccdca0c57b78812bfba00d192", + "0706302d6b55d1bff5e38965e88d789adc355bbc114037", + "0421405b53ad30e67cc5d241af2b7b77b185b2a8e14738", + "030366eae735568e21c10fcab321c1fa221efa4514848a" + }, + { /* i=3768 cDividendBits=1989 cDivisorBits=1723 */ + "012f1e187dfe350b87dbce6809177d862e328bd61ac7188fed2a2e3f83164cb40083984f6bdad6ad1bf298a5f8fd370eaf224c9cfb0b8ae1bc7205bf095823c5110f8c4b3dd5ae17762ac5812708a27eb7448a01bb139ca344c84a03b952c3d7fbaba5f883a04cd6e7a675f737838207ad96b53e7915da55646e307386b1a8c50ae05634bfdc4331a4d0cd71a0735de1aee8b8942f137d0011652661180b31da30a3b6a1560011b5dff8f7a6531a20971411cc64495efdecae0a2169b1f131d72a574924908e32e4f5241cd6347b117b0717aac44baa02f3e895c73eb54b281f63fb9dfe735845d1d27660d9b39f00d3717164d50f0be5a8dd", + "070fe850431f04a37e9615873c9c8635f6cf6570240cbaf632fee90c7c271b589b6399fa541d15cc5cf733e402eb927864115683e7326e55c9d5446fdca41bdabc0cc90bff25ab92b75a834dba35d40431a517b1a728d0e5bb4e8428e5bf22433bc80e545d346ce376cb7480217ef02aff94d4147e4b75a7a09afea5e018bc93c7b941778ee6cf2b2c817f666b624df8e6a3394c0d40756633b0399459178462b0cd83cd6b1eb77b66c493845f87c827da184fb8980df1767d2afab5d92456f4862362edfa9ed41a2b453b30ceaa47f60f4a3cbbc038437c", + "2aebe73e1dd9fdea8053348bd7f40b4bef04631013ed2a02743390e2de3873b185", + "0345d9e88690a6d5737e29e0266e517820832687cc0073103e862dafb1bd2ba8465f0489d54c9e2026b2896decc82bc8a3a3d10350b4a17055b7a6f29fb01dae6d1e0eb5e07e78af01bd534140fca634baa37037a76804c6ba68260d1b8b7e4675666b3367714611e6b1c05f0a2fec2919fe12ee818ed2099971939a908586c5bafbd6e15d94537a94e0a83d2e7b73cb6ec6f537dec4d27cb742c0283266589607ced67c70a2eff223ab27c2ac5a825919afb07605998ad6e7dcaef204e2d95a14a06c84dc2eced2b37ce0ff98a3e89ccb53d20bd74ddd71" + }, + { /* i=3769 cDividendBits=3294 cDivisorBits=1620 */ + "262cd96bd8691ab45ee6c3a75ff41a9dd406cd01d0456aba8553522b8ad34e00eea437c6b68451f3a79745b2da6948abaaab102dbf3de4277da45b144a9731495b77137c400f80adccda77bded1d2512ccb2a12b9deaa8254016da00686a2bd0e43ffecd39e5055afb96199fac7050e25c8c7e1a884a975a439b4e0cd93efc26db9e6290ca8105b7f681988499e2de027e3dd6025447a4ac46cb48704423172cba2457fcd758b8b66187d3d3c1f6aa1886f3d1d272b2ac25f701e96cb16ad37b528ce710b9c590e9e34c26e4e7fbca671234f80e6b7bc5fe2bee04a3bc3b53f36a0396051e3d9c2e6ea14f01f95270678926b7ee84dd152aa6c7a266bba4200f12f1769b615fea74d9c8650286217df896facfa07d562794f18683ea0941acb79e1935611fbf232dfc0cb1bcb5ba6399907d3442f061f382202343bd8830e6308dead7a5ecda4783989fecc57be9483fe408d3a20e13f3b49a46755a3838af310b6e0d74a42cfaff1212d60cb4adbb472b30703048a7bdaf8f0d0de4d65cf09994dea9161d610519ed844f7b29d95ceb3b2469e47b502498cded9ab6", + "06d27c7546f5faee3eb5d91a1d847dd7674aaf1a15a0979d7b003d052504a23362d328668332558d2f76005ccc5bfee540b6415d2cfc16625f61af68171fbeeec58145b548887520d4869b2dada33cb56c7c0d99faf32b0a97975e0a17090476114720ab237d1aaed6b635ee1008002353ce2d4da076549efe529d2da334a3f79d57824033026075cbe3d8d251cefcc7a23784103c20c1c5f8f269450c4073e35abc63ca8f999b3df15f0fa638bccec512d57fc45aadf950efa64fa7c6cd0e2c3bcde931a8d5b78c2156de", + "0598812bd7fb4360db0c2a553e7a299bb19ae1b1fbb4463d610db75baada5e5f7eb7bf30c5ce8b6faeb95a5ca9df435c3a9cdf6ff494c5ce6230ac14ab754f6ed337c40854548a17bce1e9c8ceb01a511773ab8823c28aaa977e27c4a672a00997519f070fc510aa28b03109b2230611c38b9a4ec9f30a6f0f86d170dc1cf7ac6e454d3b8ba2dd5c762916ae9b0a3b91b02da7b5feb627e00268559bbe2e6f52e367cddafe3c9d32c18b712c719c8a3b0914b261e568794bfd8a7b127fbb0b7118640f732416a89f6d796a0adb36071c1432", + "064c9f902e44beecbd4687e81b6d9c4cf796201f54f1ea1b8b46b65866a5c9b545e92f3f544350aa5fe2d7b6e0a6c9c14f92cd45f31f30d607156e702b1c728b2dc7e03333a1154396d8022c1308f29ddc2f2708e9d39546615bd82d988f9c5ef5986f4c8bb0e615a842dfde5d5f94bbdd9a926e8f7cf7f5fadd484955235f288255a1d9dacf11e5a827496245addad6ae8ca5723bf66022d75665bb8f9d0308fe805b011bb0d9c02dc10cc6655476a93dbbc42b3d22ade171de4ba53d328db23ff85ccdb795f342594b5a" + }, + { /* i=3770 cDividendBits=1170 cDivisorBits=240 */ + "031a21ec0b14b3260cc032e18c41978ad105662e49b005a7bd54c9026b047969622ad08ab84d81649cd7c701dce2e10f3613c804ba35ea89585f9dea3b45d4d9d724c976298e3cb73222bef0f0876bcc3b9c9801c7bc97405e2ab28dee236d6d5e31d7dacd5783041b0f2fb0fa9fec4950e91d5af24ad6530abe106815d3b6495b05c871c1b60d28a115833bb0f95ea6929996", + "a2ae8ac55cd0761c18c5df3b8b58d0851e4a989cae581d45764608ad1ab0", + "04e1aa7f994fb2fc131adb4248374b98d30377075a6d6b4fdb5a00c2d472ecf901ca9b7006bf6504689321e9789ef6ed7899a348900365534465e96f28ee5615836daabfc3b114a3c463e898132ace68e3ebc75648f5f07dfd1d1d676f09310ab9c10f3c7ff0f66c5822c8b96a9b1f36366ec33ddf", + "19091461ae36f75f64834ee2b2d593fa3d1cc21c4173dc7883d8e45c6a46" + }, + { /* i=3771 cDividendBits=1367 cDivisorBits=585 */ + "1dc152d6882f1b0c0eb293f03b8427238eb1a0bd9ae13c11299d38d2b096216b71de3cef5e6704e58dd265ac09c92b4b3b2bf259f916ff77e1442f07f865ca063cbbf3d8ae3e0b2b78d0e133d2992d51ad64f4046bf5bdbdb768cbe1ca2dddf5da0059635dfdb3b48b49f56e03874262ff0d22d12dc41660af33f46f74ec0d4d6bfee95f77a5e6b19ba804546e936aebee6828d7fe3f20de5fa6cfdba63b8a9917df672c843577d7491d04", + "01408312bb517b197f7c043dbf8e4fa1ea224db30e90ba7d7383db236b16aceac538f1d9682ea22a7375b69661d15b41c2c3d85db5a2c664544f901e5afc775e7974818bfcdf48eaefad", + "17c41fca779cc3e413baad70bddc58c2e25b9c2a08ba7a2d0b394b9d8df6c77c95af8c8c00235d550b5d166a6949471b0adbe1b85ad29c68882e14a1658eb1042572e47d2270ed77ff171586305f3922c15456256ba43383ef4368137f47385ec2a4", + "012e2675fad2cdfd81ec8a3f4d0cb443de29a2f3849c2153bdae28b37bcd7223be6a2ec1804892b1911023891b6eff5ca8b5e064806ac63d79c86d848d14112b96b18f5e8a7e3da07830" + }, + { /* i=3772 cDividendBits=1259 cDivisorBits=1035 */ + "076aa25698b717c16d2bd57dfa92289aee38572da257ce20b9a118e25ff52d785df69d21aaf7f7e56a05593d88c0e906163d35037551142dba8ac022700814926ac1d84bab6a23e61778f3c3a388fe11448258c75241e2cd107a74b20b2a148a4f4a06d91c6da0f3fddb240fc6d354a4235199e13dd69710bf780b064de7ff9e6946a88aeeab15b177fd0ba415e6b5eeb2993166ed1bf59f03b1b749cef0", + "01bbf44f4779d3e9aa61d032eb7af29921421d7957d0f37a029799ce488afc21fb37f23401af3a0bb19e04461dbac425561a49285edea47a1dd25f23f4598a2c4db011f095b1636302bf92cd99ee5ecafcab7a302be642f14aaa5a8199d5387ed42ff682f58018b81c46fdfce43630797c9d675676e5cb76ef5c27701bd538c039b6", + "0446d210f2be4049c608d0b2c2e274601e08b4a89275016c24b4736ed2", + "5cbb25817dca9961fd4970630cbbfe91f8dba37be394ed8e4334ac045544c1c9ce3c777847663984d416ea95cac04b057713eeadb526250045d2686c77492229f29a12bbe5bc3fb09bff895ac3e03a9a5eda83b117b3489419ae290195b596e3aec88381d7b5e480f5e9c218aae8f60f8d1c00bf0caf1d24c987ec03e0ac0c43a4" + }, + { /* i=3773 cDividendBits=2121 cDivisorBits=1739 */ + "015409a1d2a7733d33880b6ff1342d708d720792413f34d3a11e737d644453957d4443a4a310137c4691eeee80bd943687b34cc32cc96a6b3ded6e7f510a98558e54f724685e524f483db1b7cce59c303c859b2e7efd96f9d7af1a38c003b18a245c4fada42eb31f4d034e36f2af142732813782c51c15ae2672c502e401114a5c84a0d9c7862061147d4861cb7759cfef9a2af81bc0ba102ca5f1fd16aacdb74781aebf70f0486f129d46f9ee9837d128ecaba0be5f6a9910e502194fd581ad2e6b4ea9287147c5d5c92882af41a2007cb1f39adbd21d2b29cf676dc5f01a982e3c0afd409e3b5e74d24b81b006332da6e01b9f6dab6adf5eb4b7a8a5a9ae7bbdce4e7a49b0b29bbbc3", + "022fca55fcb4969f66e2795b9077250032e5aa8fd0df9b702e0ed7be5485b5add6fc0ba35eac99293b02d1b0d13403dc45d1b912ca87d4af9de1e8b72c2674973c6b6339bc10477410aefb0b2aa0fc813d015f3cd5936685529ea2a3738adb8ab6a1ce22a3840a7371e33cc1e521b43f49de8c625733d7be64576a61ace0506bf0dfc17daa71f7943f2650d6c43c41889f994fabd5844951016da59bad3de197a49c94d094c3ffbf1c2d8008444176404a789e8efeecfa9f5165dedba3d3936d3c5f45e9e916a2f6ff7adf924bfd10f993e0ac48bd4c9d7bb4de", + "9b8104f09e913e5e797e474c562b44ab17b2f2a107955c85dc95a54d97feb8437f1d6e9970ddd04419d930bef7ab98d7", + "014c1b7d0093c364abca26d8860d07000166794dcf4a248891f725debfb82bca7e6967300b86ec8d9d6ae5fad08d3086217979a8e0f5bf74053e36c03cb82a3e25bc746cd650c20cf13fd137ed08e0ec23f910a358e0b6345782d146dae20f7e23ea9f311da3f14b39741725cd30be554b3174231515dab8417133b876831d048f9feb748b9222c63a8c4cdef03b27a71f692c4c50d7aa03121e897bdccde2a26f3e0d87df624c15d4eb17587753dd6aca98703f880aff2670b88b92f2a56a64d4c173191fcec0ec3426c70f508da18208b4fcf666eefa090551" + }, + { /* i=3774 cDividendBits=3775 cDivisorBits=1660 */ + "109c2ae850da597686f67d6402d66e65e8d31b2c1909a8f938898783679efd831826788e6ffe95948ee7bc6487987df62c1de99f3c358bce0bea2c731a1dd97d54c8bc5a01a2ab8082f2c336f66e49bd2fe1a6b06264ef8dc8218b5375d9e2dad6ad06325a39442e281a5fe2d6be3665d58921dce7acf1c93541234e9389d259fec4231bfb8ed2f84471abd4467afce28c7c1c76fb57ce0b077047b4e11ae1c2f5fe6fb2b33aae1c71ef760583bcbc9219fc62ab9a2db2249a0f401add2d873303f3c4139199b156d97dd50c1cf9fd13cea14491adcce25b5dc426e15b081b3e007f21ab335bc133ae7b864c3fe797a8f913379d9f4ed7075c1dc5ecf18a6823ea20ff8233f27eef80302e92d5f854b9e3ad06e8ca6be2a49688dd7fa106588c1d3a199d36a12f3d9ac07aa78026d41b9bbae2feea8cd81fbbce15470c3116384704b92c1cede35746c51931319b52769b472ffd4f42221ffd2d967fd1b53595c54c7dd64514aa20e1a64510a992995dfe72e35140e8dad34b0799eb479e01c9ed04353e77053bec9f8fa219164b5bb4086e7663319e76708677d04b4fb80d0326e1f78458e1888a5d5fce6273b41c1fcf69b16f481e087a32de0d09c60fdc9b96d26480e873b13ebbd21e918243e0c1536a193dbddffaea", + "06fcd88a173c4cd82374afba72516efb5280208cbf5cd532d5ad3ebc074b542be2d431004035a367be20d51c38b9f2d881e16795dd61850b2741d0367ea1645920fb1ffa2d93f545f8557932561c70ac4b726304d95d6f4570ce77d6c88701b44389bcf30842f566097f3d7be08f00ed7d74dc9d3d0964066d4050c407b6e73db6a80c7636a01213fb556393b5bd88d19563604601ecba208e233f1d369c91f2a51db851e85bdc38ad57ee4c73cc50f3860b1ecce059ddc0b9332c9267a5cea9721bc9f1464aaafbaf5441b0e0e570f6", + "0260860a295924816ef59a328d6cd034185970771778a43e8f579339e7cca5f08617ee4235ee538fa56c3bc0fce33ba843e239923d8ed087965e89d17da3357cc909fe27735384ae3bc30f4016a3eb7f5bbf41ce8b1dcb5af80a5f0918dbd6b88b80c216c456e9904bb42b4e116b8b128340cdb9d7aef131cf7cc9d3009388ce3631f52d3f1681624403b8bc27b8402e82f10e80980743f1802b1a4f07943465f53582aaa1c5c4405b9fdc2bb71ff2903612096e16a691a0a84c77710662a9f0bce176540320c144fe00389549f1d0d13ea90ff2617ad78065f36aaec663f716fcd9e7af4203f7109caf29b09be10490741d58637707d237e2bac72182e3981cc4477d38de66982ef5", + "0771e4e6e066d8f65ab62c99e5a7dd3c1b487fda24430d921c2295df0711c4fb21d2434b42d7d9c25237c412da097a288a088dac93d9002ddd3b041fa7cc86a5cce257e9420bb91b6dfb073a2746359d66cc72274c463d3f88b02962967aefc75d6539e894acac7380cec617f14c20b360ba2f091e0a5960b29b82b6f47cea369e37fac8580045c8d6859b77b14e59224ffdbd96af9a95dfd2328f6a2b8ef67faee6cff84c4a4af546b005f884bcc453e3e30c286abe195fa6ff60c57032914b910242ed86d8e44f8cb9fc31eeab7c" + }, + { /* i=3775 cDividendBits=3226 cDivisorBits=2484 */ + "6eec6be418febefc5beed698f192081bcc0da48c23f84aa80b8a63bd8a710a9309e244966ac28a05008578f177a462d1a92d349782b56cd68dbc9fa88971ad1244f7125c949f0bdb06d8c00d26638180456daac246ce133bed2f24a44be4f4e261c864e211f563a09cb195e6c70dfd51e988d6ddc5555bd6089cbaa43b36f64f38a2492b2c4cfff13d29da68926717a5901f68deda5f4ddc620d68bf654de36d8bbc70a3f98b443760f10e8e55c2bb9cd58c5ae269c083b788ba9c8971a7b66d4656070667e11d58596068e94c1a8078282f210990c2b5fd0f96f0dd56fa66e20eec1ecb754cd4d88fa0e42ad638aba7b1996435bfd87967148223e45b12192741b53408231df6c8585c8db76c6ff0d1d5c13f1465d96a986cffd02c4a4a272519b0ca4121868fc99b3898167e11dd1eba369db2d48fe83ffabcacbd8d94d1a66f433a974343d3234fb7363bf5b618d7124af3b646bbe3bc3d3ba00138b8874171cb137096027373dc189cec94dad7ddf10315c35cfed21134faf73675d55949bfea0da2428b9d66db85b001585d5ff66c293a", + "0b2074a64d8396b89ab82699e1af435142094c5355a210ef67d57592b507c78e733bab1b07292aa64dd593cbef40b00cc7c6e0b9e733c95e75d0094dc258de6345377a2dea3d5847c28af65819d7cee22a8549a7da8fb130d1b18a083e539365506cdfee065923c78d8d61ad8942531c8baca5ab97abc09a7c6988a6d3f8d8c372d3f91a162858cda29ee153e5a46d58ca7227b7d7e6bb8a5d9da34a77e22ca5cd1febbe8b425cb714300e0e7cda0b465a74fe57d415e8af4a73c4efd1140f84cc395886c2e0e6dcd25c8403cd5308b7cd75ae6e4228febc750265cc2636fbbbd95cfedd9e4746cb374947d2da0ead0b62658352754ec9e57fc111587cdbe71c39e0c513a312de8f28a413133995657d555537d5eb8a32725bf2e8f869a2f657816ba26946930828feb3b0aa7fba8de11cd0f7a32ceaa4", + "09f814399f5f9310d254eadce33a4325239e3e9c549ac301dd7133002953379f5417d7859ef53ecb2d27078c23885190f2eace217c239adf499ee199f1c855d7610ea59f4329bdb3e5b397c24c7bd8d6b4d0f3a403f59444c4386ad33a", + "031d3b26500b87eb982d7e9fb54abbee4b84c2c99f9d62003830e6029acbb7c0b98b6aee0dcbfb5706400262be8ea90793b91b316cb49a8ec5c32e430e73a1def7093ab9990590d551d58dc9cf3bf593d43226cfc82b86da613e33792b1345cfb2762d21f75800f0666431d8910684d70bad35e44cb6db9ab06e8c77ab9e7e473e9df9cc82f591d53a4b8a86391691df46c9de32c20b8e31cd3f381ed5121616397aee408504033affaf937f6946ad468f3e3cbaa10a7ecdc13b788caa6b01cac8ab091e903b62fe9968ae59a05faf1387babbb6b85fb9ed03c9803a5101dbecd3be7f305b6a202af3b8c1c8302630709d3898641ab502ebd4896d512d212f1501fc20033cd9725d476c5a98f285c9d1b5bc708d5c4fefa2ccd09987b69db287c1fad6326c8fda8d3de543bdc0e5f816d25049f0f1d412" + }, + { /* i=3776 cDividendBits=133 cDivisorBits=106 */ + "1e1c6d4b7ed71034f09e9e2677bd10e345", + "03b3ed1538e7d7a47cdf1611cfd8", + "0821c346", + "0131444a1c2e4b13acdd98088635" + }, + { /* i=3777 cDividendBits=4085 cDivisorBits=883 */ + "1b4738a49efc814292119aabd6ff0003f0e6efdd83159e6e32e298dc63dfbcc9fed1c635c4ae33c37e29577e57b412ae966ff20108b590d81e3a386cc808220b460b2bbdf193fc719fef438bd512a2da69682c126d7a5139f610a165acc8cd00eb50247b9ac48404ca020d83091e0f2b78acd448de79d81fc8220053b657aab732cad3844974d798210938567afd011be90ced03ead970c940e8bddb6491075c0227d5266b05fa510d02796f48cf8486fae600a96a328ae32f90a059f9de18dc6dfe94ce889fd13484b41ff159fac558bbac1686ffcc9a9128e2b96c8ad58f60eb8432a733847a284a1530167b2defcd65dbb7fc2c6bda4631050386572841fb045b746b23d160396a4fb7f487c5348f44d01bf485b3b170aa1a8412c9adea7e9a8b93ba300a1af70ba15dc8161eac381ccee89279df63b3ea2f820c3af478d8fa7e20de34572fa26193f4527c6f3d12fba55c045198633071b2462f752379ea3a616cdcafe2cf728299bcc508033aa002bf4d3af06f56cdefd8f620f1c4ccbf0552a8ce0048147948d950839dee79ae002a5fba3ed6798986c3fe3e9fb7d2547f24f208486dbf341e5f71f05f1d53dd4ce27507427d84b9a6697be8ee0f1787058e48f65c5cc79b5583e05645ba454cfda6b0bb7007dad52dcadf7232065d29a74346ba9de44abed312833ffdc7ebaed36e772217c750df8baf98e13a7578", + "6e2ad41889071871824456c79893db4bda210a09b6a2be132dd423aead9b6ab880504c238fdfda96a46d25ad392f2acafbb1ddeccd2d7bdc408c388ae1dba5eef9919df70da8230a5b572a26a5a67e3ba2a06d5be0e586953720a84086ed3dd2ea82ca4e6a8b28ac1a1a9d092224", + "3f632e3522635d1b30cbce9050d3ac04934690eb4886feff696d408ce2568bc2ff01f4b3c4b74279a6354250557ce183260a7c2e72773f19483bf2a8f74f7db83d084d1926d65492081f8d9207f72806235996a97e877f3a930e98a60fbff8a3e55f758995231d9ca0e0def3e5dcc580214c9443c4f2df1ca3754239158e5f9550f47d5ad4faefa19f19a3aa9e5d2f4492fc202cf54dc13492a88dc48e003c0f235bfa60bed3467090ab32b9e469ea809c457cef0ee577f58d204d10bc3ba2da4a19343f77d4426efe6c4fcc817a62a307a424ac70bf5f1ee4e608abfd1741056dc3cc8a3e96c2507338fee39f07b4822e17201a716c588eda7322aff0e5d14b6b5d24cbcabea8713d99ee25d970352c0d4d4a54d53ee10bc9e2f02c69f98a11ec13a47498a4c4b7210e7e4ea1c134652bbb94a3c60e753e9009c41f8ceada68f2819cc0157f60381dde720a2e7ad7b3aad236f09232d93eccd43a87f92af14c836b89acb4aa016867a2066950f0a4a87db9c233df08f24cd88b6624323232c79883ce96f8a913335a51487c6b5963643f", + "351f6e80628e2b59e9f7f4164fd7b7ea5d9ef779b4aac2e8afdd660bc600316a9d252418372bbcf6d4813b3d5bde711aa4a70fa39ef92159cc86b5ec0e783d0c37cedf6992d25b32fc530b05c6a79a64645d6018408a5d3e9cfb36dd99d8ead7f8a0aec99b563ca14141f2b8fe9c" + }, + { /* i=3778 cDividendBits=964 cDivisorBits=943 */ + "07dfa85cad9cc61a941c3b21eea440eb837e70b60abd2be9a6e3ad663ca3e64edf62925fd21beb3c64a8dfcf08d7f639aa3d9b9f46e36995437761b5a016e590224259bd6fde4d2ed60a867b73919620a80230e68660c6962a467956ece6cd6418b83469337a71e8b6ee01a65a10406273b2ad5bdc9f1a410f", + "7348511e2c3bb95b222ff9dd38c9f156642b0037637135b886b45896e4b32b93a82ff3aaf97595c3dac3fd8f6059669cf4b7b2c60e420a69b2ae8587dac63066a88fb70126683b81a24a34d915da734f1fe1d89e8237d8d498aa6272f004b3508f6370781612bed5b1e0067389fcc1e90803fce0f2e6", + "117c08", + "581f86707be0e7a33bb6e86c4d91745dbcea4cc166d6e2aff3ab98827b5c554eb5f11cef8a2b95c6339212e018bec1f81fca6bee752313f0b978958583add3f3b53a0abd8b259ceff51e50b5f9b8f64720042f0a11466291804836a3b4be92a14ba454c17780a54b268dbc04c4273b3f624fa12541df" + }, + { /* i=3779 cDividendBits=2325 cDivisorBits=1795 */ + "0e90668d1a620172dd2a56e8689ec6cb9c492761c05186a1290a00f87e5c93a4b6720148dd7b9c718ad7bfe1f948218730a63675ecc717465da73815fa4e1e2fd5c0dd61f89975b4e7693c889066b4cfee6acd825b89593f0a4842c92d1355b9225c0041c06b2d6aadac445e021df0737fffe17f910932ba2c007ba2007b7109847c4eef939bd8a406ed32e4c95ffed711099696d21caf5f62cfe2e69e7d7fa1fcbd4e5004c295a98907c721f35b4a2ef463ee3ab910ff352b7b99ed8af4db6378904570bef556c9a1c2c3a8f33750fde6130341039852a70fef4eb17573bdd5392fb20b379fc93118a11d6b1bdb9380b086369653696ee1c43df4dd513eec398b6d9f45008a86935b22fa513b623fd8b422dc592e7a0a2b86d64ac3778b58d258d77d", + "01074ffcd39d0a11491b9dd3b0f480a1876986d32015999af19af6984f4a3673b307aa4c005078f93bf2bee24c3940c448a2d1ca7390cdfe58a38b9a4fdc06d2c68b501af3df6893fd6423d01c5512f919277713a8d4471d39e429e10dcafa157487a9146a0dc8508c053ab4d3e9fbdf9502555ab53feaa9d77fd7495101f0d4b4ca0ad2654818a2bfc4c1ac260c241259594df3f210bc4c39a3b5cf063e23d5b6b5a15d0baff54502e5e3ed8403eb02bebd16ee7afc1f10bcba4ac46907f2d648d6f87acbd42d09cbb734ecc5203e0413618161baa5760b887efff14f3330d058", + "0e28dbf1b20ed617390a46ebbd2d4869ab5668332bfceb0d12f42e1f3147ba2cabf296a8aecab4313f64e0ff788beac68870504fc4ea0ce80ce3ba6f85bdaaf1cddce1", + "c66ea512d457c8f163c91a398d8ab1b1f900f80b762f055e07a6f2e3b8965549525f8b0ef14add526a063522b0c3e5e01a943fd7d49ec5fbc6439475767fc9057747edbb0dd6b0959c80a1e4d0674540b27581342db32cf3f4bc3603b721c25b825ed779a2af32132505640880d9602932605d0fa6a9f969fcb53f66716feaf86b7b454c95798017b1bfd516bfdf96adadccbf855cb4af42a02e45e1695c132bdc860058792ce2f3ac04164ce504f820904eb8082564e562cce74908c49be19959489aeb0997a3fd4925e97668f54ada4b3ac6409235df09f794201532ee1a25" + }, + { /* i=3780 cDividendBits=1474 cDivisorBits=87 */ + "c093bf1ce6ea6d2388ab654552157503c31b8c89b8c36f05e35338222e57097048151000f56af7fff06c646971eeff88af16c42df125f32239e2f03964fbc1d920fdbc0f72f0b958705928b75a07f0b7296dff670477573e95e2c3b2caec0dca893d36066f4e7f5144288dd731bae4c75fa6aab0916bb0428ee28975cdc100c250fe8674f24d2d9073c1d5346bba658cf59cb45e5b8e85acdd9a95df54239e8504beb9c3f342e3ed7ff4609fa1c5d170f9d199d8b0ba60e4", + "1d5e779fb472e9c4d213e6", + "068ea1a22c3adff8e97452cebb4cfe4f25c263cf1a197b9c4c35c3b8539d91abaa9063cd5f0f6229a12d16fbf19fe21ad75f8c5ca95524e46c6dae41d816d720740fe381e6324d1fb83d66564cdc321295272709532e91356febdf883e43768522af974bb0e5938cf0f1b0d0c528065d6153794b1c79b2d3c96ce48e08c3ec7c666bbc16c6b34d17393554ab0ccf7152cb8525f1488d777075c8d0c04b4d91ec5dbcd50cd384075d041708543a02", + "14e1fd59c73635d71c1d18" + }, + { /* i=3781 cDividendBits=850 cDivisorBits=624 */ + "01f07102e6709f051320d4350d9e2eeb8185e6979c8b599c375a9606b22de500c389d1d8797451cb5359fb4ebd03c12ba7767692196c55612668f29033ebe5ab745fa3587a4c8bc26b62415b2db8ebbed18e5e556552d9c432a4b8da9e5819fa5c6569b398db3ea1962906", + "3e72f12666fc2e03f86c401d17b364aafa5ab924e3247c625e91e18b0c0a08d0c3c20fb8bdb96d2cd73d16a53c29261939b839e8b724f40cfb4783eb7da66eb0b569ac728659f9b5e383ce93f8bb", + "07f315c6e37874f0ef6450168dbb7e5b11c3bb4f6865912852618c412e", + "065a15ebb4d45ba08a5fe4c99e115dd943adfcce7709f32a622be9255b56c47f44e79690e6b90b4aeafd0e295bfc611c4525df70a334911c44ea2339bf309d7f37e75b6951c1559c940b0f93fc6c" + }, + { /* i=3782 cDividendBits=548 cDivisorBits=152 */ + "03a68ce8e39419c7f1e290b4867329ed64962433354b48f891da63910c51e570195f4481363d7c351ba11310907fe3bf97c9e5e18530d76e2ce94307500db97c9f8224cca7", + "a1b671d44222c395a38a6838a53a5caf820c24", + "05c771c3ddbe25069b74d2c46723820d02aa7534c5905534f87d3bd97686e65a38e036b09d94c13f30a9f673e6c8eea0d857", + "8ad79bc1c8cce0504e99a0be8e065914344c6b" + }, + { /* i=3783 cDividendBits=1117 cDivisorBits=463 */ + "11a9680c689bf3a2c1cd20f897c33710e3e1dea8f9fa8d6afbebc6054527161ec2226b18123a919e0b2d4b7cace74963138ed5a41b325108597e7c20484d615336b7484f22ff59efc4e661221f52b4865eaa3fc01cf0aaa71f0bec8aa862b24ed90e3218f45d8df6085bb94497baf240dfcd6fe22250838e7f4775240d6b4a6ba3c54e624192dd26e3dc3888", + "795c8e2c0a6792cb1e00643a70dc1ea7c60666aa54a3c13bb4530329dc25b2ae7c129ff64168562c3b39c6b5bce2c6aa03d1b0813eb05af16b50", + "254174043b2e0d55b89051cb00a4f111151b40eca87db70d5c099deaadbb9379d2e8c6cc0934eb6e895ce1d4deb7a14356b1f5ef008778e3018d895acbf8a48bca11b24574cd8815c671cd20cc0171a4f759", + "717a28e5ec2a5d268c45034114c81efa767ed029b9db8fff2626454c4a5dea9a9c01b84514443c966e9d64eedd699f47d321f993ebc14823b9b8" + }, + { /* i=3784 cDividendBits=1075 cDivisorBits=124 */ + "02d03b5a7162a090bb2b4627f839f1113d7ac22ababde2683387d81987266bb4abc0312c949aaee959d5d2625b910408282bce68753fdec37194c90e1cd6ee6dff7ca591025134271878208be9cebd366476bf41bd36f78d2fc8c66f6b5ffcb5b8b0846f233912672d60b354e236f5fac02c162971ca074dadffa136b3addcc898bb0d7c894b8e", + "0a7c4358c215373943afa51dd873514b", + "44b06279fb5f9074c9058ed7f0a43b042587cf3933a7015d174f3c13512c24f182da058763f08bb4688946ef60d8a19465522218e537a6ab63e1d5ab0ba74e46c4ecb03f27b3f49112ee8fad763b6b79b3e5249264cc504cdf25fad4aa4f90432e9cfc1da33cbbc4e3a4c560aeefb60196dbc307530c1c", + "08d35979eb24cfdb58b8dbe6ffcbe35a" + }, + { /* i=3785 cDividendBits=2799 cDivisorBits=2185 */ + "1ec462b0e3a7a22d153905488dfc43e97f37e8742f3c629450fc6ec345630ef7827381e5efe76afe6bcd3c216a56875b47ef188d554ee9473e69969c7e0ff23a6393a94eb7fa663256709951c9c9d8f67d5088f5afd90cb0d5a0e5646621868b8fce34671fc7e1f7dbc491bacd9861fad565b46857fc3a0c1cdf2482deeb0f1ee93247121e2a37629cf2b7932104868743b174479e39bad0e1ac4f2d74d4a5f8444d3f70b8d76d6f8f2e97c09f43e9bfa947fbf786b487cb072b82ed993a1d9c3d2781acfaab65b68ed37648acb21b00dbd95b51a59e47f3fda7049fe5efbab56dd35392f9a9b8799580c15c9ee7bd79712c88c8a447c245ba718526b0cc1baa10f35b057649cf229cf99c35455692dcc27e3d00d4d81e4acbf27b745e667554d4a82e77ea92283ffc7bcd84b9707fd325e490cdf3113b040c9e9bc715d470e7a1aa8b114d6d715aea87688fd1e145412b2816d1a6947c7f22debd712715", + "01077c1c9cdc75398af580bfa5a320aedb74e0a386846a215bb7fbfc0a33d90d424044da4eaa49f06a5732e82cb6771fb56dcaf38c0d45ea708974551809fd236ef5769b173628a63b4e585bb84ee6613c346d8ef9a58fd6dd73f00e472916a205a30aac329e824e76e9e8a55dd4b28c67aaf8c75219c055a4062538e0a5461938ac81cf021b6a94b74718969b2e7120f27c2e2b3433e9a08f36342bd26f1b7620256402c0c2721e34393b13527478d1cf9712e869b93626a6c1e8513b988600c0eaa8242382f57caf81d320b86510d75cbcac0b838fb44f53544c32fa24f603c14ea3c16956cab41d229b2908a79a9571ae68e0a87c60acc4d86e465fa2433303adac83e9f382aaff65ab3aad1f5a2ac5c4", + "1de4a41d458daf10a77aa89119dbb9570833d1a8ef06805732c4081aaf52bd83fdd06b32cf42571343e6a4ea6ea755c6b7773033b0b94efe438891d9545bc3a1afb19868393e7e83a3cc5835b1", + "2bdff4601ee4878e55be0e9d77ee64e1b9eb1eb837db38b4326c86cccc02d6eb67030bee6835e6a943ce5d9fd6dc2c335bc494d5077b839c51c9a45b1c06b11506ebcf53773d2c9d6021a00fde7a97b48051614fe88fabbb1d400da24729b6d57966baf874e3ab143e1ce1553dc6349c6301b60d8eb5414b165cdfe142bf057474aa4b08c652540234386eb94974e74af8c19a9fbb598c2b0aae1db95c24bb03735ca88e8346ee47c664447f0df2f5313062096c2ae33a72388af14bf437fb2987e5c3e96c426e344abd66cbe53dcb1690cba53a12093ca0a5598051ebff7efdadf9a7353415fcaee1ff0f6a2a378aaf167ec34efcf7aab4444bfc545ecdf4374fe76fd68c49dbbb04598da66e5f8cd691" + }, + { /* i=3786 cDividendBits=3611 cDivisorBits=2860 */ + "073c4a953330a05937b161f9f4e7ea82f404937bc0857406e0d329cb5f48197b87e9649b294cdb7ad095f64a75d43fc13b65132c552f56bf29bdbce9754e4f6d820cf6f9fb90771768c01095f27465542a863d8c1e5c9a219045695168e4dd622c8dca8f4b14afacf59e1f5465b2ab52079ee1ac11263da041fb7fdb2a2fc435bf01547b1c8bfa00f74e357ee284a08cf34373cb56af1a015e2ac1682643d8fc875dcdb2bf74b0e669971d224cc47bb6c20c309bec9e1f472f43c68d8e4ac3d1dfc76af0063b4e6ebcdeb6a477c69a5391a46ee03f0963ff553fc19309b750be2863c4283a36259c90229ef7113cec87509b52d201622dde82a4223b027f62740836818aae8a0ef42d0a627ad86479ce59aefe862915cda5f37d006b2b3b8900caccddd53b34191959a5793f5edb430f1306b894d1209ed487c06f8ef4b6be4b1e01075513ad160b00f6a19309577f9edca5ad049168c68b606d3ddaf177fc73bab63ea6a172b4edae56d59cbb27443083b7322daa5f5c2ebe25700c75753a628e9f3d466094fd781c2d28cd0d9e6bdd99a119a8221e151da0a2187b8824f2077d933b47e5d0bdca4957052d03a4747a773acf3c46f1f38bdb4db8e1fbf67fa9e061f3a6", + "01034afbad5f5370fe4100dae387146e12ebed42764a6582c29991dabc0cb809eca8f5270409e6f36792abb4de148e0543764d51a23b001d82be68fb584df61c81cfb0357df5e2a5e45dc517845d522119d3421b8fe99711c64a92d8c8d7209fe7e84ff1f8f40fd0a38479aff15a2c02dc1b384810f8d2787731b5413af9e9685e612d9783aee94f2992306b4c49df0cd0c1b2405d366c377a9f109d35374494cc1bd00f0f571e0a59f79171d3d4ef2c5c6cb4b5a6c718cc8a3cd3cc75207786a80e902e96518299246e20ab2462dc98946a5a3a64e5fb1a39aae2f877b62154f1a7e57e7a2eaaecdba534022abc88166f4cfe87ae51320edad16fc3d22d668d904d9dac8aadb0a890f93786d4b17311c30dd4d92b56108265ac876d43304f41787514cef230483803be293608cb221ed587cb8a00e030ec5c0c479a0779769d3f761510e3fc89c55755d2144074e3487b2b674b9d985321eeb4773fbe2994ac8efafdb15a0e", + "0724c4a097b261581c394aa10183bcf518e4d05e93ec27f3673a9207dcfa18ddb1f2d0371ac105f9281fd7128fd15cca421fe875774bad864abd50576788548368f63db0de217815a26f955ea901003e7e17edc42f9ebf4756188b784cf640", + "b4b79aac78e092e0d985075939ff74cd4d7df1209ff26e527476d6c56ab74eae2806e65fb2b877a947817b8ab84abed13869a272ad74d9f1ff6385c9785d4c3d47e4d0f3bcb8cc31f62bdcdc2cbe4fbac95943904212af58a64166f56583a892ea106549bac3b294c878f007128b63198eec45554fb01cd128eb267153bce3b409bb65d869bdc29e2fc31fd7f2cfce3500c390883b9504e72938aff9b0e126bf57e201799bd98bd478973e9684203166cf6cf4c969a1cbac71af2bc2ef0fe323c86c072ded64a7f98725503af44ba236a568ca5b45309d708d163ea091fbf667aa56b8184ce3d66121b55e32992e71647a0e4ce4ed3dc8a83eeddae0dcdf56088a8f0b8c43d3e5985cd1056e4dcc3561c2e7d05255c8754b395b4cbf25d73cd149b4ce9ea647dccd8da55ee85c49fa581e227aace971ca6ea808a58cc722127080cfd0095ab80de8e9495e8583999eaab495a470caef7e0c544f59cb4e638de8aabb59fc26" + }, + { /* i=3787 cDividendBits=861 cDivisorBits=695 */ + "0815f9e1545f7f4f444b2a04546a888e20fd247f2897f6c46a6d45d2df40c5fe7151b1811afe9526417141275ca034de0dda24936b4d94b4aa546cb14e257c0f97133e40646f06ae13cc4d6f6ffdf481d59b6843880fa5c3ab348e5e7ae522f9b9605522eea6c75689d6d931", + "33415de264b21bd31b859e2045baa0fd167514b1a10a3f730cca5a6b1749823a06a9a14bc63223ab877160272563a3633f6a12139db5588af812c3bde6d83a7d599ae351dd8da17f6b50a008042d04cd16ef8cc475fb14", + "2862b4be1136867fe7cf7376975ec81af37eeb2f9f", + "037b7359f05190f17bd72c64c994c74dc5595f641e7de51737155bb5662d75bb2b490328ee646efdf804218614f3470d3900cfa180022afb27b120b4b69a7037b85171f680e7117879153339a621cf316560f9881b3bc5" + }, + { /* i=3788 cDividendBits=3631 cDivisorBits=63 */ + "156b16216cf2e725481aaf5f8da762a4fc13302c7881fb8c11128e6e7796b6f54f4de03297a56ccb78d80972fa56b3c56cbe352ed979ee9c296fc9fefd0b61f1c80a3b6732a23d1ad30cdec4b09c217521500557bbb863d30946f5997b3e8440339bff31f09788e8c12a64a501e55ea9b1ef779a1e9c992c278fe9e3c3d079b0abf9bd015f3e0b73664ffc75ff16a7d60b681117a676c1eccb971ecfefaf73c310c74ea38db0425edd1c2a4f0db22abb84119368da8fbe32713442f3ae5934d357791d83fe8f5997a734a9f6fecbc73a825da4daefa831a4b31bed90c28f9578cd4f6a763f21bd1bea235aa3b25e1ed941aa2b9177208dca5f084f73e552e96d97a4c777bd3888c6dae48d667233f44372f9a77483b2136fa488366e587d3dc2c375bcee5e07d78fb47d517227f7d638fe40a186a02bae34ee59c8bf9f7abb860b830abfacf83aaa414789025e79f35459c649cc7d47b3991f00cb708072f228f551c30280b22d4a0ce82f8b63ed3d1850a402d3f0e71abeb8ed3124d262c1e811e07b34c60f8f4e682c3c259efbd3ff208a25da531bc046bedc6835781d56e962faf76bdc4b25fe57e539eccb737dc5b381613e86730d953ca724987d13c5a88ceeb1a3d1a8", + "2b0bbfc8190f8e04", + "7f60afef202c8857fd595addde0acb6c639832b85dcf04dd39eacf0b9886cedddc682419055eed02fa881382cbf8c369c1a207a91aec947f3bb6a835e93883e474890a0e92a7f937c7f8629d212d5f60a9d079157b657c420a36e92713db3a5c67a76115249f476b4abae2bdb1e6f79578158e9b5aeae0b1d282e67ffec29df2971fae01e2000b477a9e28c002b28d7c2c37119371e2a46b23022a32ff48ac9984962e860c53d9a775e8ea907de6bb184574a518ebb9b2ad9da0d24fc335620608bb65419126159dbb28f0e1259609c4c03e3b18e11eb75cf4c9c2847a7d4263940babe51cd7665f809b607674c4f055745b79a447f9c3da2eb7d0527c32aaeaf46c7165317f74e5a004a3b3bd5818e54073b7c00c1854f8199ba2fbf9921f97ef7e3636569b5eb77c4097143befdca7782d52d6e26bc2f08f037afeb99754d1e02dc756603eed825cac359b87ff80a49691cbabde4a0a8dd15332d486bc7f02ad18844115852540d43c8054acaf9f34ccfb291816c2e41a82e9714df55e06ad8e9b3bebfe052c3d547d5cda52e1d4425c8b2190ac6b6c50864ad705de823f05444471e605e66a954555ad5c76d6b7f9cbd3e23d97f88e70dcd2174520fb", + "276d6a608a8f13bc" + }, + { /* i=3789 cDividendBits=3652 cDivisorBits=2866 */ + "08007caa5196e30a597f4fb2b0165c6eae9b7f1e3efbc66c7fb15994a04633a5197a9b3d1975901393dcfb8be1d306dc7fd08805b3f1c15a0a002ce6d1c1ce6cfffe54dfe7575d381cea4f04e7f9a6d76743e5d6b17afc9cd338dd8135406371a8d6dc4ee8815cfa5d54bb2c08b06507013780c8134f11e6bd886fe1cd32a25a723ce959260b62749df8292950db775b6bdfc898d4a31449ce10ee37c9ddc081d0ef8ea48bb492456520e275dec594083521858254a06c5e6009983aa33651649ca0dd205b0dc29b4bd1f6af2847f7de4fb8fbad630a3f68967c070dd51938ca0e81954730e4d198a11f9a7021f8a2e6946951542a508961b818d0ac7b9cb75a36dca5ee9db25ce9d61c063d36cab100eabb224350b99c7594a202164bf622acbc50fa49b50543ec41620ee7f9b5396a7ed014ff239d1e241af2c0545af48f2c49fd6716178437c27a7ae7308c4a94e804b63e20b29cadf660ac2fd82e604b91c87862bb8b3a3cf35a4ba0202c48e9aea74578c53608e4dec011c735e93838d77d0c2b897e83b3f2238f02597a6453778ce1da4b7e02357a0ca2d024b69bc576ef35a3704e5fb9d4547c6d395f9bce583a2e9ac3b3f1c3e640ed2cf0b0ddc3aa763634d4d4aa3b55b9", + "02a3a66a2927ff824011ec2ee1e1c8b18deaccdefeb43a96bc2bd605b238c9158372e0fc3acb20e71c50d3c4856697f591a844ecf6a7c79a315c1cb21cc46192ed2f493d87df18846b1632ad4f0ece7db67ea529dc997baf1fe7a88362fbac4644bdb7ab40a141e8e5f1f99ef193c3df61699e4ccd64f963f1d5f710b775f750fa0525e040aaebbd566cec10b3ba34747013cb083bf0863bdd693f25258415c6a27fb13fa9244e993d0569ad2991cf3bd13bbf393807ec9a333ffffe389c750139e11a00772dbe2b03d1b624f6ff7900599e9c9db33ad380b27bc62dde85eac42c81a968f134bd002b009734d065949b6b3212a66a5eff7bbc5dbd957544b6adfc1e8f393bc1af8d3d3d16bd01faf63311d23fad1f64cf75f0faf3eafb6f4921a804935821d05674fb0d91b6d75bf9a6479e0a0332ce6760399169cca87c9393e35dab57ce969a6248c7e416c2167967035dee09a56fc8f9b86075b81bc8670488f91fc8b08155", + "03082901160b7e6ece4b4e66f2d21db37e216aef8683fb561620d3e628c26b838d3a9afca0d4c5e0683a05f1f07ed1e1babe319de0ba0c2b72a13605fbb6df3a091b367bb280c729975d5afe97eb3e3db4a84bbbed0624672dd3619d992a3e7e041733", + "015338074f62645d2a77dfcf4f6a76155c9fe227cbeed127dbc17269b97871a32fe2f7a92a6ba17119bd3a44668bab8cbf7453aae2b9f15ac75639ed81ef45af3e7c5779c6abcd23483cf2c164cefdd635ce0e227a2f8d01d13bbb4521faceee5f5c34cf15269c329fa049c6fe2f913f4251b2121f4ce12916810d4f03cb1c147ab8a386e13373ed3133ed111bd45b721e4b6b0044959b92a181323b8a60930310b8981f0539066b9e827e9691db7de4abdee9ba3864bf44e93fa37a0e7c1a5095b7df0837d10b98ab2d46ca8dac40182498e6cb76405df7e1426259f4cc215a7d5252f4d72d0c461c2e89855db58427866ba47f9c27c6dadcd20cd8a52bb141a17ed669b9e85df7d22c8bed3020175b15bcc767d39d0bbfd733b5be536639760366fb79bbe9d7bb8f6788489de234e0a06fab6e6b75921bb182561927376c1b3ac0eb022e28232a919ebf24c40499c08b650d11dc4029b14161d172d832237a7f1177f81eeeca" + }, + { /* i=3790 cDividendBits=976 cDivisorBits=200 */ + "a6dfcdd7b84b52ae7cdb20006d02a2c4b5d4374df9888932425f919d00af5ad9e85e1cde06f882592ec82acd3c918588a3a4d4a47f9f714262867fae34af0c8158c88ba6306090a8e282659d6b9789737cf5d612a8f07b6b08662ff569ae0759203a70ac864c74ce2bbc87c6499b1f13a83094fcb91ca4d191e3", + "1d961ad75aa424f3b2cbbe91d9af14f18de9c3674d0562ccae", + "05a3e7122bbdf0c8af9809ad81a4cb589d5e7b3cd73ad9a14364f8d4f6a17afd478d046afa0c91199d1783685872f1bb13886b6d6af0706bc296d28ee395a3cbdaa7b55e7bf393efece2383009931b4480ce1f94153943692bb4d3e2ec3beb202f58", + "196a0db6406c37404427f7ab871049d5414e36204e57874413" + }, + { /* i=3791 cDividendBits=1032 cDivisorBits=145 */ + "05b9fcb1bef0608b96f801db9c96a4fc0929dd18cac6b0012f026043c327f026fbfd1e949f65bb143fefd339076be8c8313aaae8682472ae0dce3f8bdf1f54b8dc9d982ec5e701e801456e9703cb60221a63e9b2f6d539c1406705fe23842fbe5507381b95eceadecb76f3d955552ef3078970f420467fe8e84ee817455b7ac828", + "a13f7de0acc3a88004f59bf34e04445b4a3c", + "09176cdab29e872459af6fcb4546b1715df655d7e1dc4db0f947a240902c311d2b1c8f22ce1858b72f4715a1fc4264a389765ffae36de386a1bdeeff7765cef6b832725454444fa8124fbf6b5896fad8c3bda3a9494fe95b286db0ea170cfcc22ba67cdf840a9f72b5ca9b8179bb8b", + "0a1d59ff682621d374ee411403233c53a594" + }, + { /* i=3792 cDividendBits=3434 cDivisorBits=2472 */ + "037c0d1751a7ef2642573b81031db6ca136be94f26e7f0d9f79aae6a3f0059ba2db8e8fe1fb5567577e7463b45530d782465f3701e68027c1cf48f0ab26e2c4744b2adedbc8643936030a4a94f13a6fc837e80c6ec0b0dd59f0b26aa794badc96db8120d8c572c509c80cf3b70ac699bb71618909fc6530d32e3c860f604f3164732ceb82097d9e6052d2f02f082c283a9dee2c3e423d6b63a23aafb25dd07a8dabe09401078a7ae5f62ec9b36c13d57f58c14ec857ff4bfedb6b56b2ebd919d5780d25101b72835e3db940a98285fcf1f79fcafd00d0453de96413d06fce1de4b8451c45c49ecdfb567b7f6246201bee98e27ced6a0a96f0519271fc4fd7b2864a43015095eb4168360aa42aa645a1fd1e3d75bde412ce5ffecd3b5ee03754ad3c0d8fdb7379b27c99eed0fbb68255861b5d241c212bcc990623da5af761d9e069dbd6e12cd3ede0cc6d8e3f204e745ba6039c6f7802a5a0900c3d6eb8c75aff860bbff983f1f45d6ada80124bd84419fe30664e51a7ce0696cdbafcf4f3cf0144caa38c53f3c09bc919fca60304017dbd5fef25bf614a08a935a2ce254d9fa6abdd437ffa502e0d173f8a364ce", + "da67a3ce8fdf996474164f8b175ca1f16d6d7371e00ce3f6d21e1431b4e86d0386f9b046c1922a6f4c79beaceaa064a47207b829ad502ffe0513d43b71deef5b0c9dfa253c33f5eb278c9eeb2e7cb49db8296f54dc1b290376a5366b946d4a48d422190c0d467429bf71374a418328a7882e7bee916edd4a8feec02a7af4e0de5315989aabec4615249731c70ae165a92c8732393cf83cdb6dd84691c4edafc4c74d64aa111e1282b02db73685beaae54282b219299b22f5dd71baf1d77d868f29fcce642072def05de16f8fdbd4a58d16676058ba2cb238aabeecf5d8d055fed13d4064e8a68b86c294aa25a52b70fbbbfb5917b037b901b30a41f893922e51fdbad61cfbab4010b64e308e68e883ae3b236fd072e12b08f62804561f5b3926a3939d0cf184c406e625bab8d2cb84d01a0f8d437d", + "04159ac1c37fb0ed1737d1c6a6274a1d1224d71eed7283e9f4291d780d5c2b99a1aefbae386c855d156f4a4391f21665a1ad516014eee5ec60b76d458b1470999541cfdd17d9360f54edc633ac41d1c2ee5d310e450b2cc95f1c6578e6cd328043f1c27e1e50e23b4ee6e31b6d9f12d8ef8d542c1d1ce7a041", + "96d6c2044265f43a9d3344e4197ceae120ad89f76de894a02dc603cb47e4af4919ed4332e056cdd0da40d38ebbc5c049ea6e003ba73c0acd437415564896c78cba1b3d90706cefdc72b0def0f1e25ae88e137cb560676426dee123e7a28061f357793370702cf9befda3307720ecf731d9a6f523955684168c11d5d1d600df48202539a5b90de4bbf6c843130a3c8c5cd03498f164f72d14bd155538a7cc8beb7948a4840633d337787416765e7defca2f91f4d1c0f334db5106bfad7e5333f8a71d3d516d3afe16aa15111d9743bb08a7f3f1dcffab98d4554a30c2845f95e690205115b1d3d1555c517edbbe72b68e0a4ce0ab3795e6e57a6ecee1b2ee040c1ff654be9fb5683fbb5d415abd86c649b12af11857a3bc6725b7d14f0b00d4eccfa20c34f28fbd3c711b47b778aa42141b29cc2211" + }, + { /* i=3793 cDividendBits=895 cDivisorBits=688 */ + "661e5bb80e3c15a4014539ffc8322ea22512ada7b65482733ca635b49298ef3b2b977646b413a50ce6d86da67ae2f8af9cb38534abf617f187e9ddbf5b7253cf4e141b544db226b31cd143b3932eb6b204ae7d95178194a32f5f5c02da10e511b3acd2491bf8d60b231e9acbff72f1fa", + "d131a2fe9c9d552e9e7407722b2bed8e32b9ec2ce502f4a622d8c581e08f6a853c87b377969f037e0544a78a5e51081e800bd033f27354d4133ba2586799afa72dcd2b8b8c67f25ca8518b208bf960d6fed91a0e6fc8", + "7cf795256a107a6a2c5627ec962de4f6b267bf7284b6f1e47686", + "23825e7a555291a31f75c9a7f43c8040b7da3c40f1fa5dc97d1dfee708ebcd4d3aed932d3e67092ed053eba68890e1d32a034e9025e56c1b10d6cb25e72abfe8f01fe6610e221d6fba8e9f0e70660743bedede3e3f4a" + }, + { /* i=3794 cDividendBits=2929 cDivisorBits=2398 */ + "500108c0182ee15e4b4cf66ffe988e996fc760832fe93f20a1ce74eb6ee08a2dbbbd5ab3110475880e771d2d6cc354b645c5d05697a85b0784b35c85b4ddf202278d669c306cb6436f3af6d2ba6718a6dc2cbf93aba3bd61c99071cecc0ff14c66256c6fbdfe8ad96582fe5cdeb1667025bed411f6a76b192108a40c4f556406fe6cbcb68438524a4b1e577d8b081dabbf58b3bae00defafe7a19ec1e772cf01782e86a5e1767d06d94d85784f690172905113a9379a6d2e400ee6022c70a58aedf91ff4f2dc700ce24fd6c25eee240e7798f7517ec7fe71a20b1f65464ec2774755ae2af001354287866ae8d37269a39699a0cf9d5b09b0f220d440b83ee78cbb921d6413f6cbbc543a2cb637e23c489f659ecf9854187bacfda8c852dea247e4611983e79ea384e4fd4d7885f050e6cc0de7d40b3e2b01a02e9b961c0795d7c3cf0a4326793e824636576ce4c145f24c7e28aa217f943d53fe36b398835b7cdafa18fb104c4a6bb58a0066ee0c", + "1fc61293cb75087ecd3594baf909eb15c52ae8a620c062727f491d5cf159984402875b3323003b5cc79e3e682163413bff6672d667d917115af49d87055d6ae65c8217555c064ac28c729b753f845efa637e0fb5b108c29ea7104e77d2ebdd9b99610dbd8b7ee715315a144da76395a6fb1c1b10ddd25e5abc26a550e731a371ddf22c3cf23a915cfb2645c01fbc0c7def6e620823efd39fc133e6b2347cc7ad6dc2488eb345fa1326c36f9ee51872640c4ab830c8d959eb4d123c010cb233c9e5ac41a3f19111b6039bee75238ae7995eb9b690d7e6a7badd1e19d32491a5a7cf9e6ddf1695cb58952fa759c46b4bbad5b999e17f59dd729f89adbc519496b36134025d7f9c2cd7864c16915033ab3e8cb3b1fe81364c115041922bfcdd52d7631deaea68d1868f4363f618", + "02849721b7c2f9fc9eea1125c334dfef2406d1e438bdbd789fc437e20087bcacea072b48f8316740b5fb36b1c5701e20d8b6ea92077bf8e85b0c76780124da7b8f68d5", + "17a6bdeb65eed4fbbf502e11c3e8630a4b800f9efa039ad8cf1d5032b3c831dd02453585c0abf2f3b77a35627996f83f4798de984215df7f64801e7ec8e5189ef8eb95c6ebe90229f2c67137f75a6c44baa20e3a92e2b46ff89d8aac4ee902b903d2131a5999517ff5ffc0acd303c4cdbcb59a72d16bd7b23e2ef10a43c70a953eda9cb88fd139b76bd63f84564e92b48866247952073f2431f21a4edbe594e56da1b9569fccee3ea8fe69ed8d3a22b65f31eb0b9cbd59ef600f5310e8c6c5c90605c9553739a9cbebb51716829ee536241ba25cc7c636783edfd9fd6416b6bd4714ed7c348176d8a0d90622f01b342169468d4a7d7c5016edc32ca9cc14457fe756f5f442f83c9561f7b719d7488700daa0d5d18f2b8b435798d0985a91d5ac3eb6beb44e31f07252d96c14" + }, + { /* i=3795 cDividendBits=2501 cDivisorBits=1766 */ + "0ce899d950bbc974689275e6c8a04a11313e0e64eac4a2424d4610922dafa0f0619816146ddba5803dde3c50164276f65aa44c16837fab2dddb66083d39ae5e34fc81b2b0e1dd04af46ffc5c759097d3c43a7f0165cb009ccfde7fb5267833129f7ab8cb70e198519c72fd9b4a006f1ea7669106dd9d2dbdbd3f866963a73dbb54e29bba80fd69f8b8d4b504b124247ffda4097aa1d72bbb2eb2e0cce49332044a60d683b8c6a6dd927d47b2a6b10253b160404eadc09d2be654c610156bf9d1dc7c347014c52b0b08f5c09668f29868c14ab0fbfaee3cb06ba79b3f9a7e51d38994dde6e908a16183d44da7546b946a36579b2fddd1d449cc3c92005ef82b966e8f3ad86d6464a3885db9d62ecfb222caf90e1e390a663dc610bc562f51880bea8faaa2726971d5496fac19984d0fd504b6ed690d1bd65292", + "3daa9dc41ab9154f5e2f5e841c582a0c9f963ee98cefba57f4bbc20f11fd5d1e30863dcb07b6f861c8befc6fc172c4909c140a0a72fb32bedcb5ccf01995487b32088122152a1457bdc1bbf930447c969be621e7c2348a985ba634554ec2a951aceaac221fe3cfb127a1e9b947acd071b0027d6a02a95c8e49f359231920500be240a7d78c469d8c8939b19e391c00e57e1089ba4992a83364e135ba2f9f6dc05438cd617ee4d0d0808f58129955a5347c5734e124fcd2e37e835eadd009334f9d189b72046e87daa2cc6e5056354d3c2b0e1955e34095e0c66734d9c4", + "35969a7f30c58a7b7c7f8ef52072ef81b35f8b99a74f6c5bf69335bb4346fbe9d90d169d3aef28914b49a03f3578da2f8131efae003709698b25ef824c7f8036cc948f5c4a58971ffe114c4b623074f10f160010afc2404167c7a264", + "1db4bfa28071d89f4ce85d2ad8d46c0cfc6ef44dbbc1285980949a5a79ffe545fe236375a932f2497e6a19087ef9adeb4910aef55b6b180345442d98908d86984ccd206b9755c0d1b3136d1efd6a2cd84627ba1cde460e2c419519e5d8c276e110c98d0a16d2dd3321854943e69d189d798bc4fc3b33aea8aa31ec94f095dab26e982494612a1cdd0271844930f9b02797b10067082362072ecb0caf9f5d6e8622523f36063b48d0e96b55bd8a3633a582e4205b69a0d7651059ebf58f1aa3bdfee1cb976e67affa367f6f91c6595f584e14e05817a8ff45c636073a02" + }, + { /* i=3796 cDividendBits=2808 cDivisorBits=984 */ + "cc0c5e334de2513b2dab702208e99b2c36d40cfc246ae64d3fd34a950676165700ca6cfbf8cf6fa4c8fce6a26d3c5a6a9f7878b459825c9256312f8c3e1636ad9129c89211f6537b0678ab40c00503e2ec82cb9ec17d69ad18f9e0945482c44ecf4f423c4c86b68551372cb0a86a687d4b899f0ba3cfa0ea94c0f91c725e4dd761952fde544a19b271ead744954ea334b28f942b7a310295de7f2b57305de9ce85fada5c445d05e4a079bbd171ae46f002bac8d40576446f4bd5e1b2c4a833a5f176a55c776348cf72569322c241a224f825ed049860662677aeb23affce39bdad9388eb85d44b4011ca7b24da618e9c9b463cf2c6c61b2cd6e75fffcd66948401d4da66897af10fcb42971dac8842fca4b89a4836ad43b76aebebb3eee7ed34bd33d1633840d8936c4235ae34818630a414ce9a4fdbf0cfd0d988e53ff2a8ea3c5154e49795ce588ea27c72f3b3cd281020cf1fad6acc85760a1273af94b2", + "5b73dac9df158ab58993f110f1649a3931b6794b62ef40a91f64688397aecede8fb805e9a908376884868bbb5f4616f9b4f1a2f2d656bd2417e5c7174e219d9dc772960ff62549d9dd090ccb40f57c98218a247174031ff5e454ccd2b8048e514a83f43f0abac08317efa4913d8a15b66e15def2450aea0256804f", + "023b2f782b8f6296bb1123354394c55aa80b4cbb243864c3034391e8a26cf18dd25c4ce003658c6882f67ec876345dcd62ddb22df4ae144bbe394fc5f0612d87c0f43e5ba42d9bd912fb1bd20562189a8725170af3f48722ee712233ff550e595e9fa497a05b93fd64781ef7caa599e2a6380f7073c6d9358bca407c0328fc1e4015e2092f745a9fd1ac5c44d1577ad9325e42c86180aae077bb3cf0f1ed8b84b3aee1d1892a0038e07e612daf4a0c665c42013292357b6e9d3ebda6f83ef9fdb1c2046606a902d2c7f59342422b35d7b2c8b33bd0a25b37f3e11bcf2de2d55cd6ed1333c5", + "2b7627bff2b44df972acee96cd9c95553501c5a92f556393562daf07f3553af8fa71ad42a193ea7e89dbb292fa14ffbe749a8a60cd8e33427a5c3e2bc08b691cb86164ba1880f3bad8382f059adc0fc58e59d5ca1c0d59bfac3b53e8a7e67935d859ced2fd2c1cb3d0887d0efafaea76144f2757791e48c2b21ae7" + }, + { /* i=3797 cDividendBits=543 cDivisorBits=456 */ + "779b7972e16fd020a595f9c00074d7f72a22831aec603ec192d011f0c0032f654a2b11750b13b78776215475b3d877a33a2e77fc0d81521194f7f2d11dd377a8f815e626", + "66e805e05835dbc48503716f143d565f9aae3e48f7ef7fd6428177bcfa75fa14bfc94884131d0c1efe5513d9243082f2dee790ece23b59e940", + "01298c095030ffe314c6c1a6", + "619b391003aa5c06be259ec5e90a6933020f4d4f8df14e0c6c96cbef16554dac9bfbdf51fb17bb932347d97a89790f2a60e395ccb44b6f66a6" + }, + { /* i=3798 cDividendBits=1089 cDivisorBits=940 */ + "c1b82b71e7f4b468f9a4ed913151f6c1b79d5fdb946661a51e8854d21b9f4a7c5cb112c23a2a8fcc22b97dbb14275aab52a20794772e1c0bb89bffa2b2c53a4ff128beec4e7ca4a6c43f23aa6e10d2775280c71a2529d00c293fade35f36600ff974fad5af9856fdaea25bcf73b2f4147b1bfcd8664c57c830c52c0e8433e61a476dc252dac63efe", + "0b5435ee06a096a899ec1e72399329f6a75d0b79be92b06e053721d9aa591ef8a4d1020d40b6eba8cf94854e68a736699f9e430a152fa48e7bc2e7fcaf05b824bbdd73a5b6e977f5c117b555443712e447694e6e60bc5379be844f2d1603735830a4dc3a0fbe3578adc2d4ab140aaa4b8d01b2334843", + "1119793a0ebbed26f95f3142d99839f591d3b5", + "074589caa01647cbeb9bc71972d9ca9b9f19cca8cda318aa789c56be562f2356a735027254068bb0b82408923cf6650cba4a99bdcc4fd2b5e0ae1e60d6fd4da7c4e32fd26a211912a24e336294250059f56bec7f368c665ac76ca861889979cc4d14905a6c81c59886f87afbce5a762bc8208b01ee9f" + }, + { /* i=3799 cDividendBits=757 cDivisorBits=581 */ + "02ecab8930ebf99615b7b3a04202ec06bd14114b795cc0f30c01324fa98521a500dc5196e4ea7d93183b8e830b254a8c783b7c8d4ec7a2388bf943367194500813a2f3ec16b93ddd4045795f724f0fb02e771fc695d3a9e55b969549b237e1", + "1e49c27bf0b8ee3fd53352fb0133cea42250be5de314fc7c4b1701f2a63498a9be717dfc67f8e41a8585ebe95283f59f9c369ea7c5d0f67304a29a7de15fa6b0ae77184a09258b0207", + "18b7e0a0a4aba16c6aa864f1ab8290f03f0856a3f45f", + "03aab6f27d0b15f247cb0145523269bbde8c14295a818cf72469821e602b4720ef98f173551837cf071df9c0f2e912c71add99b3d322de9b6405eab1af7c0753881df001ff38b8cb48" + }, + { /* i=3800 cDividendBits=2538 cDivisorBits=1939 */ + "f7732f93cb88f71e12f0ea4a8b37b09d0aecf5ab863eafa957c01dfc33c1ed1fdb666082c0a94b76d5a69f7e78a881bb83951dc9bd1d3f347c7c9f38ba0b3a5f0325db2c60dcf9300a14182b0c2409308084d17079fa2c6ca32b01abd1c350b86c5ef1cd05b05ec4c044ff245ff0bb29040fc8cbf2dc41984a537487b00f5e80970360b2433b490d807e59560254b0feb92c858213ced3ede345361f4111835a5c11d92bced2e4907c8f9ed0ca3a8557f0b64c99479ad5858954e90cebac19a8e78fe02fe621cf86b06598a807d4c3539351cedaca2c173be4b2ed7d88ee179d710cf394ea841a98ce8c465ee8c4c5a9c718866180525c12e1d83a87e5dcb89e7513e971ebad3bde3f299aa02725e96addeedbf9522f6aa55f4af512cce6e3b1c894777257ce3db37ba5289e39b2aba803342a2748982ee7195f00f129", + "063f24cb9c8af5018b7e633805eec650221a5e08fa802e2d5dbbe0207d62a65706d1774f44f853396f291f0df6e69d709def0725ad2b6db78015eb71ab28272b695025a9fa6f435a80fd4ad0722e5f04a1beaa7a9e572284b49e87cad5cb3f91ea31d7efe9a23fa46d52879e9260142d789df3fa50aadcff72ef361d0981d528b3a06f1315ceec9823f17b905a3c7c497bb8f7cf8b0bd0be3126f5f5bd7d167c8a62952002d3fefc118087fe3cfe455bac7f4595b068e38febf5829c507b3369deadec0277f07b7561494f8a9e56adae2a0f545e738700abf8f3fdd7e55b635cd6881b15295e3fd3187a16b651005163500afa", + "279cfa135c461403ebf3a6b84526f35db44ee91ea2d6dad2c6e93b57ca07b85161315e975e6b59e09c981358a8c6e34df2b5e0483aefe04e91010d5f9805159e1d01a357279a693f3cd36f", + "058c5a5dd95d824521fbcb76055bf4542630073188221992d84299d16fc27b7b6faff13adb33bac4465ad006192350f03585bb1426bcdfdc3ac3a0711b6dc0cc5aad6419fdd8791758dfcd764e29b4f9ef8bf11f71e3c6f5fe369290cc6eb48d44ae2cd3716ec049621f54a99f6341daec85eafa383c2ec349ea14e12c1ea024638845f5d905d68e6f098bf0d3237e62d2921c2175a673177e967e5efd3b8049a1de168b09a7f9577fc2361ccfd3173317fc143bbdcbf828044a718d736d3d2d0b0739b67d6e55655e3634f648dd8f30b512191dc942879e881d6bd0fe33c25d94524f55eeb091fed771e028c3d0f43da820c3" + }, + { /* i=3801 cDividendBits=759 cDivisorBits=175 */ + "2671633068cfa73ad7e08aada765b1ade0be7acf521bd997a683e53a141854f60c71981244023bfaa1a963e6e37336b31cb0831fb695f9a1e9da25be596b220247698474247f57a6ed9ea440bca23c470b1ae62b6d9df12150af9aa5f88386", + "729f5ee98bb43b7392d37fdc55424825e68ecff81512", + "55dbed7f9735982b5da41f07fa1b04c23331d86b0471708a4a959df992285d14caee445a58e65f2df6724385d7d81bd639a31f528aff6d26fd29217b3a6e59b99e87ea3af91ea89c9c", + "0837e0ec8b5ef67051a9c258f0afca1b0a10ce24b48e" + }, + { /* i=3802 cDividendBits=2752 cDivisorBits=2495 */ + "c533e25760dd2b294fb1496087ce16f5c4b208ccdc6280cac2dd2d432112f11d59394f15ebeb17340edfe024aabf14517605ca5a157e13c8c323611dbe1c4147dc220f078387dd68601fc095085518a8e88be8a36fb2171abc77017592da015c5d0889e73185ec511ddd8fdd77b048b449e6fd9b56b2f27e17489002de1b3a575f124826d81a5bfdc858d361fc5bbd4d278b9428ed30b2bf0836587acd8c4a3807a521e4aac60d1b3cfae505b25f153e06e2cb400f193a9838a690f97b411c0cd3a3aedcdbf6d4a40e58cca7eec417505d683beddb99f3803a8e77f2a6ff2a38c78f5945efe7e4a30629a0c28ac6703c8b32215af7676d5f1ec3e703c0cd5b964d592c17f1bbf7cdb85b78d2aa833e4c778426dd8baa45b6a035574c2f6b3ada287dac3828e3bab41eb20066e6f5d70b2a61a401c928cb169ef3b336ac8ace8f8779062f259899109ff00c43598e372250f5574f1f7dfa9a", + "4d515ebd5dad65d579ac2065c34e4d619a58d6f8830b24554ffb3752f0bd734054a12237e83518a99c1ca84eb953cdb0a9d43fad6acb74df7b8a2eed897b9687e113a672a7e84c545dabf97e7de098be2b459ba833b962fed4aea176ada13978882bc8af477c9f3811c62d18c657b357d1c86e48b9cae0efe9391c3802906a44cd8a3b39b5d9d25502475290eaa1a3109799d408e622ababd8db95068688ea90b6a5253d0ffe182ddcf94d5a13791d9e88fc81d7929a828551dbdc3cc9beb6f559bd04fa220df3d5ab3069d55c6dedcb6d4a52dc76f0cd214e5ae52bec7bde316595ada8803a32865beceb0e1a495621eb2f66fa922e5eb487f48e8396c7c0982263dd1aefadbe7945a356db4900168d506783e77d2e14fb847a46a1024e4f100e7fafa54be26685f2bc73c0c773875af6784a721524fa3f", + "028cf086fa90ad34fb1505e08cc2885cbcbba15dfeec611ac722bc1a2b0b0a1cac", + "469ab53cbfee38755cb7d2a5c7578a0291d8220a1120d1814612f33e832a41e4505848b47a3a53e3abd00463656b4c49c40622e0627dba0a501da3e6ff8f33d9a6f83a56ec1b3d6090130a43a1ad928408ef541087ed0be06ed8637c881352136f23410e546020e9a046175ab39b8e859f023a1b34041584f1c619ee936f2fe1bf2026d54ed7e1eee3e0c9f3f2a44e18c369574f5ee8ca73637e9c8078ba7c5bb4c27300223129620bf9626dbe095f901b7dc7ca927370945c84da863989a1a369d14b78d1a8f3635ebb3e744eede0c83acbb675ec390e937c351130bdecd5db5aef75f598b19cdd03801ac6511f40c9c333bf9ca63b51f73ee18b5bb25b3052f02e275eb8d11cb7abee8e95b323f2fdf8a7d90a291559c2854b78ebba3fc18afd5c5f0d4cc1e09666ddc003fb9a127d4dbcff9163d0f446" + }, + { /* i=3803 cDividendBits=1372 cDivisorBits=630 */ + "02749dfd97ef33783be7e38adacab7efb165d03aef7ef73f1b7c2a5ab708782b277b8a09baf372af28f1238c3d54402081d68d93e6d63c82a568a5d237827467f2ee33481c851ddbdbe073487d78fc8c920d3d0d5147fb3aed3e5aa2b106fa812cc317c950fa1910b5bd4c39a0e9b76606c3865d5ca5c1f485918a97f68bd240485f887458180015847d2eee778bf8bc8acbd3e8b8f96f1291fa804018f5f814d51e986ff65bf7536c7a9a4a", + "22708d90807810a9a5bc58f433fdb51f5676e173addf2870f3ae1c068ed177facedebdb323992f523d81f39cae249b774c85da88cc2c5aa9616f16bfabb196e4258623895e191c4a71bcd47597dcc3", + "1240b1a52f3a2b57d472c100ace09db947aa71757775e68e4532e230cb8fe712dd2e64beab7e7933998a8d5033b49d098955011519de550bf49f595bf4231fa42b6e660e9bf4590df6eda2d6f8271ffbab6de38e22a6f75b84f8ebcd02", + "14ec383756e327ab811900f26c7d530c500b17a561e3360a6662be822d1bcaa50900c44c8b04280abd68cb829eaad87d8de6b5bdd4d2600d9994379f7afe5017bb1c828aa4eb58146325af5681b9c4" + }, + { /* i=3804 cDividendBits=807 cDivisorBits=504 */ + "4f1664c8c54c9aff4b903acbdb702a933b95952671c29a21aa2e9703a523dc9382534dbfb5d1a582b7fc026a5dc62c28ff134c1356fba1af36d819792c6b56aed33cb70087a25d0725a29602b81798d9144251382f064621194fce8c5799cd6ea301bb53e6", + "d24cd053361d470053a741cc9263ba469c7cd63a918b80b370fab82e757e79a4b570636e8aced6425129f3a272df0b0d1817fdb6070adda211d1fe392f4341", + "60461a5d7d9d43f0939e69d604dd3f8bb55f32b1554e0bfffdfb6d6e049ef0984a418d371acf", + "1aae88e06a07b0376998f1796c83e607f064a8b54fa464b72828c6e9dadfc83d2ea927217c5e90eacbdef36dbaf43044b5c3ec143206df8deaa190b7b85857" + }, + { /* i=3805 cDividendBits=1116 cDivisorBits=94 */ + "04dae113a36b95ca15028aee6a797d7cf40b77e55dd66132bdf4e70752eb98ca505d182b63084baf6e8daad6ecaed50be154c356428fa15991a626e57fa01e9b3b2e04b270c129f12d88b38db52eedf75a7d0a21827cd8fef7001f91286bf3c1b34d8362b636f98c872eb545e7a880860c38259a629a7c39f72de75aad9eefbdd2f19d090d2a2f735131ea99", + "1bda08c27a22003bbd1409b6", + "2c9ff9904de7cad79a80e1d06b0312ae34d2178b219472627846a7b25cd105a08c7d982f2e56e1181151a6db00d1ef431c31829a56ec990d0419345121d5d4b917ff781bef4ba53a27fed950c31abcd6dc83eb502ead44dc34158cf7cf6881a8b7eb99e13a6eced6eb994ab6823e43360e1dadfaaa1a46a43fbe16cb3140e923", + "0f56cd4443605600f71df0b7" + }, + { /* i=3806 cDividendBits=3939 cDivisorBits=2826 */ + "04b99e1be3cdb1ba2d18b24a465a0c6ee0733abd3dc66ae0034c633d59c3590eaa9db1d2b859edbde5e0457ad53e5b429a8843743123489b52b9662d85a8dedde12ca46545e57bfa1716d0d62318b67ee8606de65c209eea0326f3934867fe9bf79149dd39fea65da36d4a75a2e679f9450753285157aed85d08f931044a2962344e0f0d1eb15da3621ac85d51f74e00e35abae9e651929e3cd1b04840eb37c50f611039b6b19dcfa8761b3019d4c4906ffa9ce5f1e968f94acff42132e9a1615d0fad8d4582c679cc712a7046814ef9819ac32cb78a0ea4f0886aede42ec4384e08c100434f6517c055a2ee810b43a74c8510a83fe00983cbd49e30c8ff473932dc1cfe18559d70a458464538ed582faefdbb1b93153ac2f44c9fe6a50737fa8b0927a6f4cb081d66c27a811276408b8cf7e3fc530991bdef1ad9cb622458aeb1f95c6a1a10da1b6aedd22e4f3c140ffadd2def717d7a487031c86760f0c960871812c56590fa5d86960c406dcd3d726cd4a8829ab3b16a19d88a633d93d8029776c4ea70f4e763bd5cbabb71e5e0a8cbb3dc5b791a9bd63c4dd4d7d5337d28b75268e110a2b9ba85a33c73b83f847cf8f12b4d73c2cdccc412528c0a4c527fd7ee2d915679375037fe43407461cfd4ad79f8f447562cd484521fc3911546e6f5928f697aa0bb3d7527b034c3", + "0306b93d3937698c079eca49a06fa2182c61a9fdcb53e27253c13776748de79627be35bb76b8bf5c60bcf8c68e48e5b22b7fe7b7eacb5013b7811e47c2dd7106dede427699ee2b9fceab8480a9819ac92443816e30c77dc228b3fa935ab1b29d1ce5c932207c58d4ac33040834e9e4f2cea5cc294ada991e917c49e6d7f3c43093a45cbae46f6bb8cbcbbe341acba1a9fd33a57b82796cd7c7651d56b85a1980de4ebd246c5485e5dddc72a6f3fd5d226224d57eee01aabc81f161e852b19aacf56dfe066fabc6062153dde5ade05f89f2edb261f89887fd6f5cae5718564c5daf2720b0e2019a0a37baeee1d14ca4ca8f2843642d23469965c6005137f8f9aecf4482f05da52e634efe001448f38fdce0c695e231fe994067557ec946df9dc4affd4b97445d7536171cb6229325d8bac9a2d6c7d473f453b09f0643b1319e57a96262c0496fdd6877fa890fda8d4955cf2f9bb26438a21ac39624b176cbe14af32c", + "018fb4e1c38b821d1e489000f4b5ade82817d6955e53a629e8600bf295c0f72bdac98b1d03a646ae1361f1e94718ba35f0e813be0e02b642a82de335d210f90197f8aa2c773cb1fc5cdb1f3453579516d4485ffba9a208c56b2ef0af718f7300d6281d9af5d7e4702470d47a66f45744d6a67b20ec89ec1f8c1f6523703399b9227cbb13e942d1f0fe967048", + "01ebde5137b34339cba64f86f67867bcaf2e250c11226405b23788fbec83168357d88cec2e3a060985e8f96150fc33bdd964a0f9b117be0326be0d421c9829497b0bef9a3e2b3434914b59a83addc6f628f4b28f4b8d09be7320585f9fb72ef0a21a54391149457d616e0b6c2860717d80b32504c042abaef15a555c8ea0c3c0c2ba0a1ab971f404a002e0704d8415ebdda04f939a58c0b9aac8d3afef14dc9c5990100823c431a5f54bc1317a327a7947c9b06eec689fffd7ce29238bd977c56c6ec864d98cd74293b1d435f0012db3de76d699e4f36d28b84b9ccdfe6431177a97b47486a425cce6abd4916d65d7a230f40730049a71bd382e734b7a4072001b0836c8649d9592740ef2b243a88138d117898a90a89e366cbc25f4cfff87b630f29202741924eff56346d4a0b37bbbdd966a8838c1a4bce89586094242c79ddd20c944bda5d8c4c560588af76ef25e94be2879a0ae209ad45da1b75d1cdc709063" + }, + { /* i=3807 cDividendBits=2161 cDivisorBits=1385 */ + "0187138e8807b1f27f7f5a7d09814ac06553ccf89729de3dfab36c748020283caae677e907496e9a38e02ef61e5407d1e8693fc71e0a01b9c38af1392d2d42d027cd32c64e8f89055125a74ef9fe2e03fbba57da1b19dfbecfd54c60347505ec66690123a08787e295367985de8ca374e14080f73a8ef2d6f8a37223084cdc7fece427e6d2d299970f9aa53f50089112fe07bd5b0a903b5ada22fc3dfadb338eb80708d4cc1227dfe18fcf7adc9a59b2ea5118c6b285c2d3316df6fe9aad0c4744df56300466657b9b999e80523c70b9964d66e04813218c3f528e7e21c002d7d6a7630b4a246905508f0886c58ef1eec9522e200d3c079605caf3dbbe7580575c37a61021673fb981cbddd413ff32", + "0e42c355df1c0d2c9e2b8d09de6e2114085fa367b04d17d3c899a82223b09d7d24ab861af98da700f6e2ecc64f279092275adfd60ad3291cf2f321ab78b95482395033852cf77ae8f96d66c363ee685bcee12f3b081b74466ffa1b36ab44e0d5fa3ad0326cdc3480d7843ad687415c6c37875ca519d1f534cb8f3200e99d78d781dc049eed8159e20041dbbdc5e45133e79875726dc79beecb2bb760701eeac84b582b86b8e3e90a563166e0a8", + "1b6c55f98638b85e3338e744029dcfa57cbaf87e3cb3c36338f95c3e1853586ef186322b096631e01b62974f13cf46cca50038428b369c8fa1b99f9aebd779f623e77fbef3ee894b17da13b7daad748f64c47dbddb787eeabf66b15e52b07d76c5d9", + "059bd4bf9e1eee97df10556c5aeb658f91bb94032bc39cb1339eabd59cc5c159bc6fb8476ec182b569d3abc05713984698c4b5cfa531a62b077dc6328c6771ec4e3a1823cc8fd533c5f36245386866dc3530a93dc41b036bb5eb37b0f73a501da4380dfe324d334443fb41d5201cbd098e922b5261d5b079122ce86d3bec560472e729517a8f72a830a4d284812d5925b76dfaed9305fa5d151ae1acbae1c7a9b2408e3e8dc9c9702c338e48ca" + }, + { /* i=3808 cDividendBits=1937 cDivisorBits=722 */ + "0186d2441294221819d76be65f302ee0feb215dc7ff0bff81aab4b41b0f43b6f9dcf3b1e08c26e53477b1fb79bd91030d24238c343e502169c37d736f865229056ba0ad4c2d60a08cfa496faebaee3c40fd54d63e50113758ae574bf81a9661d5873f0848d08efa132d98ab5202c90b2f9e0703ace5549e3af6667c9493b365553226067fe7550f808f82e13b4a4b9201817ead754cb8067441250ef4a14be314c29da4eae04610800c815f01448a3f918f2098679bac053f3df42872d072ed9746ae71b7114d152fb4070efce807985ee1e36c042d3152f96bfe3ea9308afec535c8fea1d8e8e38eb2c328011b7d8563b8653", + "0291bec2a0d5673cf2ea3e59b7bea5c8676603430bd71a980b60ef3146ab69b5acbefb4cb6849e860fb1b3b989b9e54e17abef0fae4e60349d68fadfed97f5003b30a5048f2d818c1a65a01f0e7c1100cbf97005646ba53fbbfa85", + "981c69ba41ef397f1723f5f94530b11a81a370d1a22c464a63c59a774d8051129967c70d97ea3a8446aa6ca170249be0d277c548d322632aba81ded5a2195e5ae7c4800a5956d8d697da1205620ea530ed52b500a888bef2408a3f9dd1cc83c5b17caa14250f8be0f511ef34b89cb01cafe4afa7f75931a0ca46eb862bcb155ec8f13dbbc89acb2238d64c54aeab1fb3089a68a5c7383514", + "024178f1e53c667415b0d4ba5da9c5bf40e50e4a60c997b31a056de4d6da9b73aa408dd519539600da1a2934cb4a2740bd7c3c497b24dbdf9533983fd8e03b217bed34112a0750e2212542d16aa5a3082d4060fb4e882840966aef" + }, + { /* i=3809 cDividendBits=787 cDivisorBits=362 */ + "07a68a04607e18bb0b666dc83296369a945d9f3a11fe7787a885211f70125edf9ef1852885556b28a5cdfc0c9bfc1141c0b4ead9bfe802c627a6be270e890b8901de88984f753d78a01c3aaf2e7e2373a32c07d0e406591d698780c8bf2ba7bab03a04", + "01581bdfe4751da243aab8938429b2d954da131be0d90d8b787e6c27d7621d3dfa489fd4092b89f63cec33d2ce81", + "05b10e6955faaf20f9053ed2cbaaaace9efc44b9097f1b59e9703a0aceaf5c6562668b8f8c09da11a4066b3540483d9785718fb2b3d0", + "01258a43e77de42952babe760b1a4d295a878e33c6dac4ea126a632e28521bff18034ebf6d6746788da294523e34" + }, + { /* i=3810 cDividendBits=2080 cDivisorBits=1607 */ + "ebff66305bdc04af3a461972c62642d78721b620bc5ac5042da0eade67483eb5d8ad8f6d9e373cb6b9c4fba3e61f0350d1d9af538d2031e3540da4a72fad707e24bf52387869609f8bf4f4ce6235e0f4eff630edadd534485ff1616a4b13f72dfe83c2eba25f7db3018ef4b6a08842e6408d06c1aab7d7df0984a4786caf0e0827d29f1bf14e8496e0ea913dcb84af9f3c9f2b7f87d3bc32233d1c22200174bb3d57141886690c2ec7eb8ea7f046eaa924fcd8c03984511b1ecdcef65f8330fe6da6d50d5d645ad2a9cb0104e9724a3438e3654e422071f53356eb30dcb1ba5f6fc06d351a23ee9a1537afe7d19e79c187208fe60e26b6f7d815b06d3c00c06d6443e806", + "62c84339bd41de66e1a71e6fa18dd6cb94fde0ba159c53ec45200168062e3bd6037d9347d50c6f51e79bde432b544c03aaf9c9e6662885e0c6c82ceaa957026071dda62df28d579bb1ad5dafa1b25248e25058edf724c64542ad8e8e572cd72a00d2686dd5a388337128ac01fe5440e7062f3090c5029ae34f0e7f8d561f363d3516d89bcbed97ab34166401c9d5d7050c4dd6b91bdf7dd9f9adb06e610f6f4560b51eab5c3ddf27d12d38e0de862f89a636cbe9703dbf2e4f7d3783f38fdf7dca8db37621d29ee724", + "02639a034a8b48db07589620d8c24851f91ec8b4fd0b7b0e6771151ee6c58016e8ec78cc82e2d0f8f799f0dcb66f76b244200e3d9e420f508715799a", + "584498381b2fb3e6696c884fc068de548fb2668390e7cd30ad7af1687d496b9494a6d64bb1c317e69d0afb835b1bde0df32c607772dd01baf9c21829a5f567c88eaa03bb68d4f12464d848d89f44ef4aa737896af3554f4520c0dc215cf637f2d9d55a765c7e67d085f89f351a570f4ec187ae477b18a6a567eb984d553e8ff96c46e87f6522a00dfa39656f212edefe085f83abdb44d64695ebf2b25b735693ddc5feed59bbe1aac8d4d4c332f76755743da3e16e2e83355ee39d3e22111fb378b3e2495aa378d85e" + }, + { /* i=3811 cDividendBits=2016 cDivisorBits=1668 */ + "20ea09d3878cb27e6b3d397a2c046d477020702744b7336d5f967607018f2f635d13d0f80b83d135740225374076fe677feba32ba3bc08ec10a7bbc4fe1af7d6ebfcd5b35473d1b881510e77da0dda4eca2fa757d7e53e01dc08c17e7de1b5e8f5ff259ebb69113593d9e78bd825dcd9dc4435a10923ed13269bca183dd817af615d11a87276868e6a2467c0a508c64325a02e7bc3efce7a8af8757c8dc16713bd00a1970add3672ba07fe9fab5ea202d756f261acd354b545ff5d5826f6c4b02dc723007d99b800dcae8d5be2ac82ff6cb6a6b57ab1b082df24ab82f2b4cd09e770a9365192adbc734c504debe0abe52d9179cbf1b16ac69740ccf0", + "071f39d7d4905f5bcbed90cc0d8eb24b6d5cdf6044e580905aaefd6bdd8977412d4b967662090b3d1a9d1f5fa2fd48cdc3b7c585f42d173bdf3a6550b8ebcbec98c6bf965b24ee37a5eb44522b018c6b68ada4bf36fa063e053eff4e92f40a2b99a08524dd2e774fda71b36fa1a89ef997d5fecfac4de951d0ecaedee2981558823c70361bebda1d47937c672d967d48dfda014a92a7de952469f2db2d31c5ae1f9c50fb473b0a45eefe28346a0f38a604a26f06c5c06a8d1370ae1e01570d901c5768999feb2bf89c157f673e3f5d501b", + "049f1a9c98ebe6bfd60f0f4716907e3f1d386cc0680638ed8d16cd07382b1e86cf0eb624037188a9be96f784", + "06ed6df307ee2e90c48559bde8ba83a89a723d8733af11719b8c43e06682005ca90ab4ff62c11841ba05057cdbc96edac906cd3ca16beb62944bd008ca252e4482334172012cede6564c1892be249621cdc5d8aad1fc1aadc1bf5d8f078034900fb0b1058ca34ab7693940d1e7cd055d1cedb31409e027ad55ab38d61f5fc3b53e7512536760d8875fa1383d66ba34de0e8229a719af15d3dd5e155a8637924c26abd2e91c36811bdde32ac612d75cf592decad9b33e42e480d28ca6238ecccb980180ec8956e4c99e29cf8396e9077204" + }, + { /* i=3812 cDividendBits=3375 cDivisorBits=2919 */ + "1bac052112a3cf058eca095cbb2539fac7e4d7fb8cd79a69fdfcfeeed9cd6496282bbb7ddbfe0cffaa19aaed9db62c84d772bac8e1f26446e50e26ecd328e451d1e25cfd594464e476c6d239b91745033f2dcf0721af5d9ce17fdc9a56e74684d08457b772df2dbbee589ac691f8511d1d846ab7ef56d9e0b79e284141d179a0c50335cac2deb522bb0fb189a4cdde16896d07ddc1c082416c4538bc37fcb6293af7f78920fd5168f484b704de21850e804f05ff58b95b1a4591b0470ade544a6b89d36f0d57a5ad7f743087194efbf34439dd4fbe0f99b4155c52225b5cf29625c1984b07a87d34eb2eb0f54774b9ee9c1e8ce798636efa808482907e8aad2025bd1476e68a8edb8b7f29e07c8acf0239b556e7570ca1acff2ce311338d7b317d2dd0c70fab8f48b36f22b9ab65a3329c121bd2b9ff266d7270afab98f288703c3dbc33cf74f3981f8d7897f362164246d95221354f4d01b290ad76b7b7c6718fdb96b0023b11bcd405f78df4daf39b60a0ca44138c1133ada07376d6daff739b8d88fd42baf8c5e799f2fb115e6a7a3322d247af114d8b817bc95fe12f476dd0ca309b5c49", + "0430ac012cb3ec4b2e3948efd1294dc4563eb6dd1ce50655bf64424ddd51e5411cb7277be627502aea7b248037d1e2839839d1c5574c29ef90b303a41f5a91cec4f2380887eba84860fdb405d64ac69b8556589be03d1ab21fec88aafc41fd2e73e0fe4f812e8a3326a4b7270ba86592e52d0b52c14e6450948fd1bfa0f8361709815302504cbcd43a4352894e69b2a926d8fbc4f574a6b6f98b752dd7da9ba126f6c502c7e2deea855e89b91ffe1a4a5f1721d5ba9fc4d8aeb83f169cc0a848d0fb043b8598532006200e46149e38781cf2d8687175a80e4761f3425023f6dd5b7d502956db5f4c98c30ad7c00b51e74045c5348cddc9dd4f8d50a98b645960dfb3198fcf9fa5b10492fb9af10ad6e0e62750fa8d749b8cbc6aa89dd639c38e700238544385622d9b69ccb4af9e36ed3f82df8d139ed0f5c4eadef112e0ee91594b2b618d083cdd8e7fa25dc613b2211be043b61a21362c935cab4a3217f611e35b06bb76695d98f719ad632a", + "069aa58a0d609f0fd9eab46d4953a20f22f19d1ce86a2f43c22f4d89fd24ad23eb2f7bc64047024b670ba693d9c112b2718fdbd1ffed3fc2be79", + "025fc0aab77a988768de7f7c3fc811ec0649d9d2c59eebcf3e199e38681e005744c7db82198a3aa64843d03aba04f03e8346388d52743d3c24a191c5f7779eebf59dd05b1aa821063a8fe705ddf0b736a33b60efa8f9dc49cc8e3228848e727932fc42343f5015101bdcdbc42d9bfa53ac44d32823befed1ff5a183877ff6e377a19fb52a003a3786814dbfa2ec292f915e4d82706520a915bc03bd8c61cd19520d55a32bc043f51d71b1dddae46b91db3419d3fbf20de831f8237945b873835e4ad0504c45d0c8f7c371c061653c29f2ace50651fb60e3a1187ea84099379f0720699a5f92590d3c721e8df2a13f20d7a1d1122bc67cc2e91f4020d86b22046f2eabd202770e5af5503d6443b9074e2baced71b9b7ee136f66ac03c85df9b0e6d9fe1bf5b8c07913bb3181e9a2b53cc5044ddc0dc92e3ff9b5449e3968e774b7ddfc5553641ab41888acca2b9c1feaa3f550613e42ac7d8795f9dae801c2f28d2bcd98a41e9805a41e23a516f" + }, + { /* i=3813 cDividendBits=3941 cDivisorBits=2263 */ + "064ae057a0ae4e2c2fd5998b7155510a549dd64e22d1e990a3821f6a550374ca2ea0f9819cf91fe9e3f9aec2dc35435dff589872b14bb32eecac15fd6437306bba96087a5133d835a29227b1e61a9687da8399d6229be277ddc05548e5beb4bc74452d9c6ef83930a60bef22dacd9eaa53c54a734aa6ec939dce0cacb37162f3ff88c75c1bead7eec6005a3539ed1abde9ebf7aef2ed9180083842ef2495a1f0e27afe54fc7bbb3a8537e6601f49828ad256d8638b2cf1fc0006a0b1255e069379d60de362dd3dd01405132c84698cf7a1c61030cf552e3b896b791396fae8a0a47fc18d3a91aa37931869fd5d671932e05463e00b43bca6d84c6fcfe50d9be11868e9fbca6e1852fbdcdb3a21efefdef8bcca3c35e8b53d13cea3ba254caeb5f7f18b10192eca014f6b690dda23080b064ea2c4d3c60364c976d18877924d7a6361623c02f032b44ec457cd4c5dbafa5c09404fb919eb93b520280d99eb386a2e09eaab38b8f744764009b26734f66c0ea64425cc6df4f6a8dc4c8375ee5f9ec9c65068c15a5fe7996e83f6b3510b29eca8ecba8f05769f80449f747540b9cb3381942849ba909d79760e039823dc9e8690f83fcb09f8428e82a05b0490986a996024e25fee9f9eede0684907098e6f06bdfda4cc6333a833ebeeb07e0e4361446e1f69548a53d45c46c30ed3", + "742c72731d756bec25fb37c87592e6f6dd6b181c2d7b89ea4088fe6bac2c157356657fa35140694b73f55c735e122abc364f79e7ef053c92d3d55f9df429de634f73c359242367532055fc76bb26b024b7b229d876a2a0f0123624b6415d752d9dbce097ccdeecc45be430e660bb92ecbe9bb2e9acf134571e4ed595b450a2c33a1a1920ccebf91e4694f48cb48a979bcfcfb50b0fc041ef7231b5bd50692fd1eab6f21c65a0ae3bbf66108caa181328a0697d10104bffce84f5d4725fb86d1876bd5322e79ca300a185a38a93d0cafd1101c68055837e26bfef73134c94270e85a2f68282af05dda47547eae30c27bf6050120c335eb017e9600578c17b9907c00051a84a40a3991a7d5703248f2974bc18f9270674f0480b3184", + "0dddb9747b5072938b55692828d59b07f03c91647bdecd159fe89cb3b21c486a19d17c48768f01b47f180b3a01b2e247385481a9e6a2b6becfc76467795750e5e410928d58d8978ec75812f9b31688907fffad8bdab4d7a45dec36adacdab889ecaca3556d00065c05ba9ff87ff3ce22e6e043b10b5f0d7fede5dffd48323d8879f6bd1c7cff528584097f5862ec9b754ee2bc5cc92d77b4d107366591f87393c9f65cc44d4d1840c82ef522ceedd63c734f7a8480b939673bf19116b8d823112c7065cfb55f23011cf93eb6132272cb9d9f", + "11f3e913e48a4a3156b8d14c02d5d9af625151cc1204908389a27a5f839dbb9504ab794d26632d49eea468420ee38f239a409bdb5f533a45a270a116635f259292c574b7730360a9a8947355d9234b241588b1efe56d32e332c8a66fb08a67e1806d8fbbd0fd4b87fcf25b39d09b18d6088fd7ff3d02d740a3720ab37c3af987a16afde7c743c2f93ca0fe1018a67374b54fa00466bf60f1a7caed54cc7e2a8170881ca53ac0e56fbc4b7f95329381d04f0c1b0525cf181abef8091217d2dbab1f61aa6f0091005f1b4623dcfaeedca169b0f8deb876ba12fe87f8f205079126e59c5b3182e5c45946bc92a3395b4174cd05b7c261d05dd853b3179f66587f3db83972ff53df620a0830c666ba0e5d496762db0afa5a7b9ec559d7" + }, + { /* i=3814 cDividendBits=3407 cDivisorBits=676 */ + "215d5f9f96cbb84c4bc0fd22b77b948281b8f32764575afd124d235a1dcfec15b38fa342d566e5e195b2003dd96ae09ee0bf38e3777ac2fa15dc318ba014e7049c5053be2332daaf6d8f34604a7c68ddb7cf0c7f946d70d16cf0164d8c10bfa6ff87d985aecfe4c9483f385f7485100e3a0abf17d4639f5165f0d3e555b2125a41ef5bf2eb6342672877ec48f7073538270ed07ff6bfd0f9c31b54e192aa0c8c0c5cc5819789b407edcfb5a56e78983d1e3d4612176909b3a391a16380996980e3ee4e23a552a08230a526167b7c2799bff2170d63a27f56c7f5abb4cf589c87cf88849081944d53f5876a52945ade4a71a9a32d635608a2944a56c7029c8452766dfe5c90795aea5908c281684ff99769eab1fc8a8822030e377d31b9b1c3dbef5e22be45247045396338907d9d1b77a176a6082bd5cac78f4d709c51b81962d5d50883aff1c6e7976f9682054658d5fe16f59b5be03322a62a90e404e0a5d3054b55e3170a75d9d0b3f4dbd0843753a3ae5a7bebfaf24f0771ca8c7d317aa5868dc277b9e51c4f51dc40030cfa9f6bf1fb55cde706fde4aab7d6cae9ba2728fe653567398712d3f540", + "090ed5bc5b995bf8bacfd694d7e7aad8a09879857704a3fd5664f251cf84c844bec203b259bb5621a230cf2873c19ccd46460a2eea4ad49af66e3fbd895975bed9c3de60ae0442c06daed14fbc3044923d610309e8", + "03aef84e525feae75b532d4eb7e67ff47c43db5f21b744a056399118349feff06ad62199ae865333eca024daf20ae3f810f9ee7f419cc13b12a20f60ca84245517aa757b463d66047d921db3ba28d14c93dae59ac4959ebfd5b3de01bda73fad68dffc07ecdce8717a04b999b1a50cfd8b0053dc7f2a4a354c734ec6fb6794c203346ff50bbbd550ef1199d2e9b140d16116bb703a85c31213c6b4956b88b768220954c5d576c3a9b7ded29071e6f273efab021cff8e42eeeb8034cb35a7b966dfa8a18b854688be70fc59ec4bd00f360913978969dea485ff15d28fe639408e129b2b571ef12e9d9252701b938aa0d782d2d72afe2973929dcfaa434ccd4de32f9558c237fe7d36959c95c556381448733c79d3e598b6cf358677e8d95755163c1a894bd4a09e7a50d02f05c5a10608a061e97b759742f79a61e5c147488614a4815a0ab173dd89e7289b0a8e78cd081e5b31265241", + "07f6808aae293af4827e30ef1b7e42e7d77dbc19b16d4b44ce94a7ad2162f09b43e3415300fef6b330ee951cd603ca7198e60f6800dcd1a67b856b802e251f340dc9a7d7d3f037f9ccef34350499fabe0d97722158" + }, + { /* i=3815 cDividendBits=3647 cDivisorBits=1695 */ + "281032d379619925b40d43b6c19d786c29b9a35f94c65030aa64636176ab1a4ca3977b941aee051d4516172b1df7ffdfb38138bad0f6fde68a89fcd0e80990f7b72b9f3445d5828dcbc80f0f67ba6dfa90b1a21b2fd3d6fd7d8fd74819542c2afc20b6b9fc99b6390f876594eee1a339d08b6097222ff446c73e3c874260b66abe5327840c5332fcca4ac8ff5729e69e3f20f0b0f0e953bdf12ef3c19a7610f1e363c1a84670b1d33f538c3945c77c77e207fa4b69d35937083e06f325de7a7a8b35ef1196dd3a789f74ff0c30a3ca983d560bb0a16dfc6149b86b2a916450e7895319748e528372e1b8e5477b3e16044fd783d60ec5de36fca0d96ded9c11dc33318f79b13070d3a3dfe143b5cf2448ab12e276d760f2e445d35ddbe15981d887eeeb3aae17ddd95184b61d63db760c5584f3babfa8d93b9e2d54dc9ba7fc96aacfaff12690645e1ab0a1b8f6656c234dd98644b854268e2fff3f0d2ef481bf190145e70d5b06f767061e63d0c628c48731d44fcb8f343879a4299a415f852c1e0aabfe8efd1ded96575f8d785e324784705e3349785cf3dc088a72fc9c01b87d94c8c01a7890682cda835e1caaf9c098f113808cb159d8c928310fb66234790239eeb36f9c99de", + "7f2f584a8a06497b416c1c810dbbf2f12c5a03e632906a1e6d8999b463cc9d278f8a162c3f89354b84067d93ebd5d632c6992cfcc92ccad42de202ff0923891db770c8d4ef0ab0d583bcdac48d96b15c5afccdc49996c649587ff2d0f75dd774542c559d0a5aabf9d3e610077f6ad6859459aa1b6da227ed6b1e33e0d16190b805cb9f58a93281d4e10c49a27dfb68574045a3dbb848977d91341bc7bad4b870690319222401d5c0ef93bb1830bb89bfafea9c51f0a4c0927e20311982fe0703caf8ff3e8946f96ca2f8b47162005ce3b764264c", + "50a3d9909595a5ad6401a48b4f0e6d0632c22ba31a4de8a29efcc2c821fbf943fba998804725da439c510c6c363900406ad800d0ed96faab61420b0e77ac52b8968ed2a9bf3b676ce50588f035ef8c51effec9022c190421a5b8ef932b3f17aa3e2b30cc5f7ffc718ee2e524eb4a1bd875751eeae5ae80f267cecec04a493681f30a1473ae98dd7731f33462b975d867263d923705cf992ed41585753238e7e8ca81cf99c2a2ea007bfa1c68ed0393541cea830e5afb976369dca676d299f9a276e57c26d1d19ba271e2062f3e6502d9feba91106319bb098183063e7884a8527fe7528b837bd139a6a48ddaf8b815dee80d5853", + "282550e2b84aaa3ae2233f5f9b5e1fd65b4e6d6f62a708750e24a25ee86ac4cc57a94fd9285bcfd0457a83d013c36ceaa999f59ee497313eb55c34231770a0e440c15ee8411bd76a115521f50f2fa9e2cabee549aa3cafe5f8eb973f469c72e9d224f7537baa0d4868bb02ce60f30bc8056d1dd6c5449ab7cb43f1c25286432edb07b0c01e0db3d32179fa1f60cd0507f7673e2562ed2ff8cb6bc475f84d95f6cdd13b56f405fbe303893ca63bcd3eaf48315cdad710f0354022b43b4f0507be0feb5032caf03936f0d1e2819fcd0521bb1e0f3a" + }, + { /* i=3816 cDividendBits=1007 cDivisorBits=105 */ + "3093709e1bea0a8ca8f1b61bcf19537e4ee0f04a23386a9666e38a4abe1e14123c260a9deb78fce8d3fce2979fe0bf7e0d3230129c79ceb6de572559e7b5f782f2cdb8f0cf90b98f9a4620aedd59e5e9a433a098e366dff1042786891a4f2d2a83e2f712fac58069dc61b0cd732bac9a1d60d508dd5c0e77af5ed897df8d", + "a94833d02f429560386945894f", + "4975bb49137048e4fa004ea3bdc8c09b3a407ec8c01992246aafd12e4410413faa1d7b3e2827bfa5d42f1b708c33570cc8905464eae2723e61780f60a976d81a2e21d779f88d3834ccffaacdb441b44b1bec79ac604698074b0e69ce74cec29f75c1dea482f90530a70b403a0932a67585", + "6184fde7119b715843e87c6e82" + }, + { /* i=3817 cDividendBits=392 cDivisorBits=291 */ + "85500f7540f6391f088e1fa0d92c36591922119d2c1887188624600f644a0d27aad12c749fa235912ed5339c0911186b73", + "02f1fd847c6579ec171ea360c45d91a45bf217d459af7ddaaeb9e5757a241831cd5f82ca87", + "2d43651e1d0f3f92510cb77f9a", + "02902ec9306e5dec3e6ad5285ec958346bddf497096fff3adc60e28d5f538b49679f709d3d" + }, + { /* i=3818 cDividendBits=3868 cDivisorBits=1101 */ + "0385e618dd6cb0f59260c43177fd27334d57747f4a50ff6d0230810c0125912fbd51079c458c42cfdce88eab465a3cdf8d6c8d16e53002d7e0a28ef3f35146f58a80ed672debd4e69a4ea976696d6b16e1fd493c5c619a7cd0fc2ccfeceafa71516a581f4d31b3971ec335e0acbb948697f1a826c5285760a8187485bdc754872b54b4ce862576c1e05e01b5af8d423eb37bd5f2217b59e48bfc712f9f36cbbdede98a3514b55b3038f551f460dfd7ea75f1fab6b67f0e500c4a3233e3213a093859e5b6632fefbff03bf3fc485a0055d59cd6a1a74bee4c2b69031b28c3cebf3d359e87f91327458be9f58eed47858e647cce99044dc0fa3eb4bcf3c0836ee68e16f73b629f70da21555645d2f2fd0a69c00aee09939d5e41e9b24c2cdd4eede06f37e0c34d137ba66fc70583c171c900e887be38c73c3f7875006fdb2672b5f71013c542c31b855f0829b8212650f9580dfbbdbd60e5045417242d998d82d917c393a873d489396f01425c700c14a50aac3e0332bfb197ff3e0e1073c7257794bb2fabc10871a7d53a754acbcd19410e1e9c5ca9614ef26fbb0f4f25bcda469ab8df57e8e789242f3f456811b124a64ba71b1a2bd2d02fb755c023c7baf19204b723aff900cbf400c71b449cee29d3126c6ae1e9c3dde44055c91f394fcacf52d962fa", + "04d3403a02b7cc4b5d4d614ca805c2a11434a276179caf891d144b2ba534e7f542bf8b3ccdbb1f9c0390d92918e312db8795e6da2d2a437ae802bfc35fc201c907b5b743beddf75a006c94c71549675c30878694eaabab1c910b4e996ca3103483ef22f1c87f7362e06935da148ad64a187c6ae85a3ca88f5766b351291219872d348da69ae6ab4f8f37", + "baea11d3374f1cac0a9466a2874348d5d40998f61a0556d7baf9c8aa3b9d978507d6387afde4af19a805b944e25fb5eb9ffd287d7f582c3b3d0355b2125dcbd708f771d2f4c83172ad6072e99188644c742b51da22e895a56ef4352dcb50a1440c5b9d650dac62c7951811c849423474b337fb63b2df8cee06a279861515cb020de2ccfd84d22273a5fd489ecd073c9094c14dbc886993c193355416ff152cf6ee46260462b9973faa88d4f97b815e11b227bdccdabf8cfa9f6bfaea7db5b00294415e268f0d5332b8d55c01282bfa6348392513aa8f61d02bb1e4619c6b8fc2ca996c9c34fd8e4845e96e8bf33d54b103a7851620820574a47fa0e258f63012dd6386dd11a55ea29fff5d420a87497294f1bbfb0c2075021a15beab42da45537486a09ad6932a90aa71960e187290bce2cf7b2f977c9dbba1764a5429d17c305d1aac1e4df4667a77bec4b6daa24814370917d01be8ab418da9", + "02cdb8fb975f0c7c523d230788446612c0c354c040758d08a5254abb11746d719e472b719c4d3da17918507a7e9846427a4ac0276841ad73ea34aadf3e9fe5c7e2a86a14f6ad534125ec4746edbcff0d7d56281e237e5d4ebf970d7eb7dce7c0f14a6aef38b248a214979b837857da14187f95db11ff3430938ba37a364d113dd915981e41784f7b8cab" + }, + { /* i=3819 cDividendBits=2989 cDivisorBits=1586 */ + "0d2e443d554e88ff8b8c6f5093906764736184eae854176c9bd2ec199faf555617395a75a60a50c6d4085c482329fa7de767833375c0bc7979588d7d484a2220759d00f7b258e6594bceb243c7538a06636a386324bec487791089e2513e52c4c6740b324e253cc6c81fb609a3d011a7521bf926a64b5ec282b3d930c6df24dd89c4fc0cde56eebe597debdcf51644811b7cd123aff051813634cc8234d2c8d61f587c6e76d5b4fa162258df1fb92d6b32e0f2e9804f5903c03f0b44ca2062f8dcdd437b8f6655b58d4515f31c4c96f2e77fcf37cc6506ec6920053d8dbb1ca25b41404eb1843bd20a424abca686aec5c0507ba4b15f8d08d34c109904dbb24e90730490397d6c0391d0eda1f9629494918ee5c47e8fd49c6127a5bba57b22d7f0de525db397a993f6ae67606ad588d9d0dec2f0836daca0f833cfb6c710c3e332da2194843a41ef1bb26739dce6842e3755b76b9200aec0a61ee506216079db725fdd032064ca5db0ee8c5299fafb7dcf4fffb7e566", + "021532783aeec2e862451aa608d634b596dce6f2fe7dae7172a4b63122250782e01f0fe2686be3ce04853b54cbf3cfc87341a1122d430e4e4a8f60a72f465ae00d9ffa086abd1d932f763685147cf4b5cd5dbf6fb65465762ada30f1989f1add5f4f2eb51f745a101dfe6397a4dc5dacc9a55c98962cd0029ecd0ee1d6ae8cbc1cd6752c9da554cc26bc06821f6c54cb18f5e12e276b99b56bc878e91eb52c5e874e2ed6e452c42d213fb6fd261e85dcef3f75f2b1d5573a6ea1d5bedef580032ffde313be42b1", + "06540fc708355b81c6a38d1fa3e427aee3c1d9859023600841d5ffa82f22f624642412ebe436bdd999341cf7d4928a155478998bc0e3039540b1113df757044bacd0468712db3563ed7cd69021e5b495d92ab96292939e3b2549c6c2b4f9dd828a3047ab849fde3d342421389fe92ec28ea6d40870706300bf8527c4a344af5a58043e094289ccc7fad1517e0fb9e7042efc0e4d7d9a72197426328f662fc25a5e4d494ffefe8113376055bb26258ba4", + "aa714151d35bc56a29319e7e625cbe0f18b3c3ff61ed46f4eef733316a35dd0b87d14ca8ba9eddf22f4ff03bd09f9bcc618692f99eebfc96535f7276e31f57d2f42f52ea16116e33f624c5e620f9f340cd79d859645dbd54a9357e7249d769d0e191bf69f840856b69429acc35a56e4cfbd7df4672af3f3028daf7b7c8ece3a992fcd9e1dbc6bbf406966b1fd3043c571c63e747b7ee1b1a666496c48435a3a3c0e1c6b96b04dc5c66671eca56b65bf40a359b2593a31ff84038581ef660d9a5496e220a1102" + }, + { /* i=3820 cDividendBits=1758 cDivisorBits=1164 */ + "1e3e06971782520a09e588c76726cdc70904decafe117315efd81ddfae0da8c41acede43e4f7de3508874d4fbeb386078d821a3e3d50470b905f3caf7906f90c7a9189128dadd94888dcf903063e3726548627a2282e5aaf9dd27ed15b9f8085814daf088b10626e2743e28cc887a77c2b6d5d7b8ff3354fda15d116c0ed76369c7672db40ec04abd761c7a89919bb4728ac45fdce8bc57211bf897d1d8bfba6095292160450d83ec44b5c60a0fb11a694c38c842b9a5fc58a6c4cf5a47597fe0270a7a295018ba07686bddb73247cf65e0aa68e4fe3bc3766c0eb6b", + "0ccad1be6e969055618daa52e7677b4394c1f9184453d1122d1ac7be83e12c87b70d1fd81386f64fb54c16dc8d1208c1542dd4a57ad6425aa924bbd84ec9b5d7cf8b3f9377ad3b6a1c5df2b4bed0a55000cd4ad4675439d27ab8c053e7725430c70bdfa61e28a6b9cec432e2e62083a32784663e5055e472ebaaccfb13fef954fd6e1b09b82395b3e084cb158789722d382b", + "025d362a82abc6e35dbbbf077dbc15418af82de42661c997da04128f536edf729d2ef4447d149fafa15678299dc17449592bd57d981b88a0bc8270377d3b53ae76eb74c7dfcd8d2f4da09d", + "01dd28568865db005f2a510a66e2c484dfa9c2120cd118912f4d2e2f0c454d3a790f2af83e67a87f89115c14e9d127d981f43789ceeffa385547132efa5653ae94810403222cd86b1df4fdd29280fc7be5e3f277c808c27e19c249823a88f21467a9147c1b4fc662df6ab49015954ef3daa27e88327333c5f723013a549bff281086cac48e51db6dad28db54b1f753fb990c" + }, + { /* i=3821 cDividendBits=3341 cDivisorBits=1109 */ + "15362113652365f157ed6f96ce48bf59a2ff1441eff7d56f7b66d08cc49bc5e8e68f9ce0e2106e14d48c794294bd55ded534c1387d836382b4c1984a176297df27660c907ae8fc9154ae217fde5772f7137b3cab9e5bad3e9aefc88334f7ac06ca81ca16bbb53629a20c752605384200e006cae41e74d976ec3482df9579f524ddf8faa727ba37cacfa68a4639c76ad8276e6427e07a8d0097750bc1cf78b75bd2bb9557db16f13a04cd4ebbc99f6b80c0415fdc2a1a523ce36dc0e226917e3307f1b41eeaf3006d352d84f03dba130f05f4e3087873be3efa3f0f7c8296a200751530c629abd4273aff0b15bef27ab56419a8d81f9b6f012ea3b6b4db6039af1dd80abc42d2726b57200662fbd152b4e3d6b3025b8fe85d54da34c005641a856efdae596654ff4fd8c43eec3be227ef8295b34f776b0e4c258871f695a516f628da18d3a6e677e126b1716d5f65a69caacd83302974e7aa1de9a83573aa2496192c8c2cb3783b59e5260a9d58e10c6612b5690e68970d5fab3372ebcec9472d0d8bd7a5c2e6aac11bcab9310afd58e68febd92fbff5aefab1435e6f2d0a013dcee8", + "054f79207dfc6944786128c68ed5767414adc9fdd2617da60c6374a4ce6f49ee658741dfbcd54245d1ebe593fafad39bfbd027f953197067509e63843c3ada7a88bf0f19e8b45239d85efd2cf326b5e2d2687745e7eb5de934d81e4a3ebf4d6cce0bdb3e050f99065f412512689bcf5636ed9fd1db4302010f2c674c104207d375dabb4fd2d810b0a3acac", + "03fe89c00c3acce8daf30b64cddb5f7e36aa0f01d61a082e0bb1aaf35a24ebafa36c74ef4049f6035df760cdd597c727c113c12a5935f94b65281d3a5009b371f400eb2ea8f65a2a3df41dc9a36d110aedebd83167395965704478016d290be81d100a4c84f03c012a49252f3dc1af1c0eae55468657697f57c98280e64dbef38c031a9e80be3b4371fede4b99bb89fb03160cfef5931bfbfe6d73bcfbcefd54dd478779f6e1e5140691625e2b447034f480502190bbab6fba65c6a22117ceaab48ab4679d8b40f7338e69a523ac524260a1fd94399553b236ab2166b38415107a4fcd0412fe2e9f4c6f7aad0bd39be8a378ac439608ebf1f2efcdd5352a7b7d9c58f78d91537c022451dcac6c4cd03a82ed0a3750d14c70", + "026fd2a023cf7b350baa3a8648ef28906cecf06e7e02bb1f9e69c986e7a5e20f73abb85860b6070b5c5c8b9d0b24e7183523dbaa5c450fb7100dd7e1eb79d195350bb201c6a3810134447a46fcdf8b31cb375db47a9d4d0a320ca294eec1e19de3cb7155fbc94a8263661051658e8c2df66ead36ffd1198a6db5a5ff9cf69c5a48be4bb21384c269f333a8" + }, + { /* i=3822 cDividendBits=2546 cDivisorBits=372 */ + "035ad2b0fc26ebf178b1150556a538b446276d238f439550d0ea9de60bfe221aa262bf12c38fc384ea89c75bedda53b35947990ad9e789c03322ac9a49ca9a00e58593287795caa4d9032a4850c2be39510a0e5c3dcb54e9b73d42b6490b79c88ede042f4845e19961a04f6b75bcb32b21562bb54d525c33d640fafcc1d11b697f1c764fe5f69bdc33b99e3ef3e61087b85b2f21d6d78f442de88444c39ee911dd82b0f71a964752b1ba76b2656798cc9b12ce4facd2bf5633b8f33f344f91db438039d64fa35bcb29c0865dbf8bc5d72861538f1e5af2eebcd96dbbb76bf6dc2ca81875f1aa4a235cd1f31644e5888739afa8fd81b7130a6519fdb2335a2510ccb4dd1123c6e5f64a1ec267b6e6ae9ad49e3c3961e68d7745575d15f9f9300b90b8a038346c708f5a0484c0f4ce6925db1754aba8df6bf3e8351d449efece", + "0817e970261950006277076b856f5707c1e75f6ee02ef3a2efdc03d1ff52d24cf6228c77b2ef9e6e995495733bfb59", + "6a1d29e619620467aae064dd13e8a253216073409e9ac1a6a2b3a9f95e1eed41b44b656ee80c5137735a52fea5ee12349ccc86e5c8cf7603b6b3d5d8d3c97f99c4e3c204eb8556f933baaed54cc4e98fd1d79c74b81cca652ef6ae111f4c36d3a266945e50e3d59cf14cf8e8ee8e0bde4dce8f76a1a3444932df9153593fcb1f2d5469c1f664c938151e9a95ee1c5f04b29d28c3e47969b3f566cfc7a0d390c07d1054e668d73cdabaedb8e84549bd4eeec75bc809bcd56f715672b19519dd32bd77e00d7454ddff356bbd446f7971170251ab87b1d31728d86ac0f278e60d963ee2d4ca1363ef3548ffce2e5eeb8ba9d803748c386b1e5d4f1ae9c8851cfd5995633e859a699511c6123421e1a2d3b3", + "06e1743ee558a7e64bd960c5d2dd04d0c0e1ce1f5cd99f01c6a8f533610dd467479e7e7a38bee9d114c44bfa31e493" + }, + { /* i=3823 cDividendBits=2432 cDivisorBits=376 */ + "068742c30ab92a6e9a10e93673687dcbcc3dabb3a9b52f29b00b182379332060852e4c5aa0e6be1037922c26055e09a3e060589bfddea470b4e76ff99e5c3f8ceb327192ba5006f2aef958a9f91910194bb8076407f0e235ee610800c9afb5b3302bb29a9b3af2ec5469600820b044c1fb45510e265e099d47a56fc129164591211eefa6ac3f28f8847ebaa6b2485a3a62a86b9944a5dbdd598cde6c91b8376e3f90403e7796e2a27722a3bc347f7ddedeb4eb2ff72cdb7d6862adaf29f76fec1334a6f61b9ac7e40c2c81163e9bd2af03705ebf6cf3cdc7b2d129874a9e7652d0b35fc894f8e01f912279975865add99997f891f2870798e587d8721117e9311184a33a3ecf8bd4d9e20bc58dbd95d6861c52c8f9e85bfd14b7abc5b3ca5a23c64c988ad4c00645f8ad905da9126015", + "91284627377b513939585451f34f033a48b51cf820114c5ed1bc9379006c1c2ae0a124ff770c47bbb55b37793428c1", + "0b83711d6b206c8c93c3670686262ac854f6b92d529889173de66b11c56aace77a1ec862611b5637f7fa1509259ba5087188a0d084418deff3bbb71d12bb2c5e09079e04f493f66413c14048b7a1b8f6acd7996e2eac818a74b9e0fd995a144814c248675801cbac1f4813935a4282517fd60d1522f143846047d86100cf62f4c33356d2b4c8591a192faeb1728089c1dfe095f8441914f963ff5fc42b14e4b0b73f6d6b2571bd7d42f50651e11333ce55de235099b82896fd85ab1e7e6cbbeef3b46c2388d8376f0353884d62769cdd0ab74da5c5e53d1939ab75ea55a20eaa0acad1f76dd3c4922f02a544e947acef5abe122f8cb8cf3c0feff2808a94377722", + "59779b5240249bcf38f1c444e5fee21121ff6f5feaeeeba5f32dff83e4589bbcff7b6892ab129ff242ffd9fbbc3f73" + }, + { /* i=3824 cDividendBits=855 cDivisorBits=691 */ + "534375c67da8b15e59d514220cc320e2c3c478759dcec9ea1d56a411dbb2e9a1ab36fda499f266e5367c5993d9fee9613fd86cdc6a90c469b1b2afe9505c2b539453def40b67f098bd03b3d68b9a649b5f0f12d984c4e625c4b0214e5a83c6f5ab9750e5e7e8f022b869b0", + "02fcab1b6df2623e0143f7ce40667111b5b1163b688bdf241043fc9b2bcbc7fd158beaa27d0f19beab44571faf705deba2fd66ffc7b7ee504e42a547c4c72605a50e8a72b87d359f0321aa58d99afe425cff679bc46ec3", + "1be01c2d418e44aec4a673b2e4b315d79833a49e77", + "01438eb0be75f627997543a3378fd1a13641044a5bea12c7f7886fb419e060f4d8d7c8f11ef5ab54ec6b63ad615f61a1ab0971b8383a056d29c2a0a9287719e780e7e01040c20de839399dfe0f8e237ffcc8f3b020930b" + }, + { /* i=3825 cDividendBits=1849 cDivisorBits=385 */ + "01aaf7f17bfb22ff806ec6dbf3608306360d7b55893265651011269b320f1f2c04cffd2cce8a3d690f7c26c2fbe48b0391b8bbf34dedf685a2381c972457a5b7398a1f47023a39c1f50df16209a41c674a2da7bcbd3e9751da33ce1d1baf85c665997f4aa166aa563501e58e4ceb99d03dbd87ad086326d6bb3056e90b14cd4106da22fd7fb815b81c8b3a2a50ddd134b73d178033521b5423c62f887db6f8dc5877213fe4fa96613ae6b6fe4928bf504163cd0d04b9d6ce194b365ea3de3dc2174599ac87a04c8cac2bb4b5502dc614afeecd7ef9671971cbb69b9cf056217819dde6af3682b5d5", + "01e931eef032178b3c35e9d21394befdce4e4f418978ca95fc737d558bfcce068787170055838da602502ff26ef6c20ad1", + "df6fb2cffa0f111ba8e3617f14033b762383ec6082e9a160b9057b295a138e096e86e7e28eb4c3322b8d59a4a2ee6d2a5a867de87cb1005f51503768791f326cc92082d73f53dad9d803b15fab26ce9ac4d8425451f2da09fbdef541a8e662bd7aa4bfcb332f6c2305a3bac4f5d0866308f5772600fc063a34849c7337bad140fdb1354be86c4d65cc56b833216948d4d46962c413090d2a751bd067a4350f35aaaf9f6759e67006eb2539e839390053479a2292e247fb", + "01439e8f58ecd161b79ec30ef07e1562d2ed6c36a5f18cec7bb8aa2ad4a47f6d93654c4da111b5c0de9cafc238b6c023ea" + }, + { /* i=3826 cDividendBits=1060 cDivisorBits=235 */ + "0e82307ec6da6a7f9a42dce42472b6ddc8cdb28ab24f9b5a62f0aca502e84de88d30630497c3e33f3cfb23f35ac71f9810fea2516e9d078561b3af7a61a39324562efe4bcfe0bd046cdeae4b9038d0416098c0c199d51a34ec2d4951d79dcf4ace509aa72855bc26409d929b368083cd2bfc1f88b2f8b9b001effc7e002df88c068ea1bee6", + "03c3ed02650c09c724d032cbd38a56733891a251a925b3318db6266b5c99", + "03da6aaae105a8ea042f20d09c974c35ba869bc56ee3a7fd3bea9000100187570ce7525a4176eea985a271bc56a785849b4a3ae485d339eae88b80d3b872ef026f8234f17077e04b7dc6267cf89fa2c182d007156b2120018f64b1fd5ceef3cebe9448a52055131b", + "d0418fe60d38948700345939d4af4d477b6fc1f570bc403120aaa29fc3" + }, + { /* i=3827 cDividendBits=1893 cDivisorBits=885 */ + "18cc911ef1eed70034d59152642aa63d7ddba33bda0f64e94146cbeec5433dd40d8b9a1eaa632563edcb2f2c34ef23335cc523acf0dc701adf82960c354686c2f01f6da7304fdcef3a5913834a24e4644493292ac30ce35740e3b1ba5a5754514b8bb91df131728c0bce1f865927a39e6f7fca27ab4cd67bfb19191195e7e45b6460afa605ec7b4b87b43b634c8f523d9e5c53a04fab4d60f62b3b127aa822cdf11fddbf027c51574823d783a6b57f97c81ddb11c9ae98a4848bd56709a3067038d934679c582d10fdf067122376f06e33821285dc2bf74565bcdfa8ff9ab0c9cda638e1727e08da15c8a807ab", + "121a3ab0ce332037f2708fbe5cbaa0a414c398bc600c6b487201c62fb85cbe44ac66b1dc3a1079755ba88c69f363591b25bab3c10fc243a607e85a32ccefd06a3f7c7c207589cc545d1ab388e17309edaf866f470a9ded3a0bb64606a9ebd16fd4d1678e7b22a482fe4dad478bc85b", + "015eb3b15580c4cd1cc14eb7035bca7979c2d822f37979f852a28e8afcc27067292da74f23a2fe7883a4048f55c40bee13396a9baf007a60fd6fc789c1ee67e2a75415376c311027ea7803a17aea71e44abf8afa05da1605fd8a1b0771883c1863bee8b2c2598ab6ea210765a38df62bf7153002c4f0a6b332219378e1e084", + "0f3bf57c642c3d794b688a14d02e410c0d428229c910a36e25a48d89cee788ec3511973897eac606dac3933d337105bf59122fa1ed0463196c2458d56510f7a89c1c1031d6234e8a216dd8a832cdbb49135736fcb53ce41fc8712ee73254baffa209daff5ed9f5133dff1bd54a18bf" + }, + { /* i=3828 cDividendBits=958 cDivisorBits=21 */ + "1855f921ae53d19d8b0a2a94bdcd7d5249795022ce7475189226d0bf422975ef32d1cb165d04cb4b790c85ae07a5fb5755d3fc80ea973b3f2ef5eadc6dd67b67f498bb573e7c7f9222c203a5ce1424d22ae1551ee4fe8e210f4884ab8e726bcbcb9ca0f3b5bf7f46c4daab1523486ad027accc04100b65f9", + "0cc9d5", + "01e7286c050a879d58dcd227696f846203e79a0a73e590b4c5156b1250de758bb96a5601c8963e98510e65e440d1ef506c3e6902b3b032cff7dc1324b8ec929eee6dffac4577a5818f0dafd966664d40fd1749f8d4d25c11664a7e4b47dd8e4f5755e0c0b3618de449fc2d12aa419aa67b0bafda0bb3", + "0c1f0a" + }, + { /* i=3829 cDividendBits=3703 cDivisorBits=309 */ + "1ecabac85e5c7e0a3403752c707af8186e16d1a7f64519755233cbefe96ff377e79862339a186ca6a6e3d08007bfb99b3822d52d4d8669d8f4851914afae1b86d78c6cd4fd3369773a2c1e2c39e1e32dab2272572e131b1138e288998836d975c263591091cb51bbbca4e279d93572189a41fa96d879e9a26f02f538d9f2d3d1b4f7fc9c0858ab7bb601507455da622717fc00c1d867856d111a68d723fba57ae675959958f48a4bef8582bfda9631872e96097a0f80239c4f312f832d7d8314502a70065ca9422ec0718b4dbbf4c55b05bb3b35ab2d2233a41a6b513bf4f82494ccd0fb3f050474e6408051a890b18edbacecd453ed7e2103137961f85790333620ee50a9853c37e9572374d94d0981c7f777c0c01479c311c329845a63d57414d2d2e50bb6ffbed9be315d96bfe6c26fe1fd596aaa0215eabe993e8d1d8486e51a61a0d5aa67ad700b310777dd9c0391483b86d0e9f904722cab89cbd55d3ca3e14ec75104e5bb7178c1e5bf597057c1bddd0b92786ae07c78e49895d23a27fac48fde0abae141376033fa96e49f0bd7a553e946fea21d498a3a6dfb8f0abc129c67b0e0c8683133c7521b9e2c97e7ebeaa58007f3957e6db62573bef2f8b7188b61877b286d44b30beda3219670", + "06f22726367bb214668a4c2b299e8715535cf1a877f2d5e69887e8dc77b4ea9fdb1958fb1a7dd8", + "046edfa31deadccc7776bfd32d52510f52d3cc393341876e1f9ded9d1fc25b7b9e6feee6d510d068c11e25b1cf69dc249f4d9d22478e6df2d9782173efb9bce248e93662935282526f09d75f38cef8e5ff17df95208ee743683891412c324912dea8ed4b073c6c4d67f44749e9a2ece361187c26922d8253f0a67cedda88b81e4b3630e45403ea396c6eff19cb710cb1da9eb1ddf0f9bfaeedc5e9a968dc7ea3f28e5ea01194206ce2ee9408582dafd4a7c58c9494a674a6b42839343edaeb235f9b2841c17d6667e130d2e20abffb8eb7fb5c1df8aa31c63ae305c2769b70f1270de8c6ec334ac773e822d4f1fb9ba2c2807998c67c27bdf44ee509bc705fcd6311fe2e0d16348f8d6fba04a1ffe2d022d43494f7b191e69d2a3a950d45dec47dcc51586bad080d35a267984d3065ababc42f6d9c39834be91a9cbe75981e54bde493fffdf749b1ee0e7c718ccf57a626dcdd76739a6fabb2f201c89d0b8d410bb09c27d4d2c85e83933c9bf3a1d39aff33938fbfca9c926775e12b938982e0dc2ea6e05c7fc4f08ef7858fb1ef2d6aa22761aed9d8da452f6848062ed50f9e7b26e670ec6d133000", + "03734b5490d3713730555be6d6ae1f96a6becd767f069875ea737c76bd684037e2ef2c5c811670" + }, + { /* i=3830 cDividendBits=1289 cDivisorBits=492 */ + "b558e45141e0ef6834ef729ff06d7a3ff16b174be88b9fcfc5b65417ac366feb054fd276e2b1ddc640ca0b78d2445a9f5935f6a3577086d134481cc0868640f0a33669e82d26f547581a9e7a52f2e9ff07ec7b4ace5793e60e5c028c346af0d9075915f40e5f57076bc0766e3603a7f93aca1c5c1cc8c22879508027cb2504b70f094ae7dc0e1483a7a1618781a7beedd05a79d9d2e1b2224dff94598a6f32a4a9", + "a74fea0fb383e46524fadbd5ad02405e0e1b031ba9a8f62b59b7adeb92d102406ccb25834dd806589cd4eb46dbd52a323736f3ce760a2c78a1d37f20b6", + "011579858cf3254567cf33e562f3a47c626d595a8024ad928a26bf67009d58d43ec3120de06bdb0ef573c4acfbefd041f5e2a71c7e902e4053a428711e34613159a7f572068745ad417fb297dccb22c95180c0c0569e013ddce603f4abcfac4df2b6f9f1a9", + "1652cc04f16659a0ed97969d37554fff7516fec4ee806b7ed699f1641e43afa01858a113119def5a0ea3cc3b0fe11d7ab11d0b47c2b9999ca6ed74b683" + }, + { /* i=3831 cDividendBits=1749 cDivisorBits=797 */ + "15a41e5057fe5bed6444c6e9bf8f70c39da705253adef03672322714f4580debec19049102eafc59aee75087505fb9bfae9c816a47c879afb27e30cc2ffcda3d7a1b49955298a35bb3f47c24c556f5bf3a38f4a73f105993f5f66c553222ee2a38667656b2c5497bcaf271c7e0376052313e91cbfde6fb515914cf3aaf9e0437622394ec20f43da147a4908e8ff5eb31d9a96ddd962a144483d1afaa0a2d3ff4fd455a238b03db92a4b568de28ec4c0efdbd52a1e4535767f927be905787e4b0b870c6511e8919c88600ae7c4515f47ac40557c229135bdcd72df8", + "05dbe297fabe3f4c4d85e5417fc0312f10e952b08de2d91abf2687eea45df870376534c600d12d9398ea1ae5c1dc1b3a3ab90bbca994e810b05c309e6d4e5fd5f290e57b80299bea82d85d5bfe0c10929036fbb3541653cd171248da8c2a2bf36e320237", + "03b196011e75c561beb97aba49a287916bb7d93b443107fc60da6de144434126d12812467abbeb036ea45ddd49075014d49a10f50f1b35b76f3796b0dabf8bef1d99bc833c682f56390ad155c3d3e94c0dcba8f50816f91c8daba7c64ed3ecf7c39801017ca182d59641a0e8f5aa49bea5a16fd8fa03d34f", + "019f694831eb6cf4c44877221e0a943b905c515e98af491b9111052095fb0ce6fe7988d7b2c283619b10247ab18e435fc1f3c7ad6f7c381a87c1905414c7faf992227098fb67ccd61803df4d3c7a7cb833d9f2f4acf50affc49b161600b60741e6f029ff" + }, + { /* i=3832 cDividendBits=2414 cDivisorBits=2276 */ + "11db81328073f396ad445ad7b48d4832bb610a389ebb46995d322cc67d4d793ddbf904607f475aec20a1ada98d97f6a13bd1c48c70305173e9076a69b428173b25a9839ea65b347f4d51549b1a535e47d53bf3435d57649ffee26e82063d7b37efeb3a57b0b0f52d3a105e0c8d50d731265fbb24425d0f9cf349fae07215ff32b3635ff897381617cf9eb60796f201324fde38022d51ee8712dc46d8a8ba6d74113e69f0e8058c6a26d30b835f1716b8e53f3e6324353ff19c3bc2ac5a1b9df10bbbae0a2178fca3def20dd524d094cab9ee1da5574e40e9888f79086e5594d6b4e327fff41509b9124aa1fb505f38cd8a71a59798d5b10552cc728a90975246d9bdb59a75691e5db81011de78e235eaf4d44b7dfd7e2c9d3c039c29889193fc19b6c1d56c8fabf89ab34853d8ea", + "0c88e9ebb2b7ab5d5b36b3be0d38b4dec22c3d613cbe08f3422519ab39c913689270d722499a782ab4151986b37b1bf8ec18eef0ef6839bcdf0cf836d543354093ae0e35e0c9584c0657dafda68a41dc63a5a5f3bf1fb57c8eeb1102ae7c54feab147c74b64cd4d6aca0c1b93b9296ba4fb852fcfe112ceafb32e087f2ce6ab5959559ec3a38154381d3d24da3772019e56f9735035f0aa0df0c44fd20257cb96334d6fb5ac736fe8b1279a4546b4f560ed2b53e6ec64aad4f4e3aa21bb3986e2eb36d17de1111b2c3325865bd6daf00fa442fc695db7419e398d0c824ddcb93b6ba2df7130695b9ac5173a520cd6a04ab25e556c6af45b09493089be92d70139867f6898c919172adcc66a2b678c08d4ab00005399511aa5cf4a374a4", + "016cb4584e32ce4b1e272b7d34695171605d", + "0a0b6502663a797a796c1bc67d08a8d18a4520cf2bc50f589de12b2c9593d394661faca6cd960dd0a25fc15a6db2170863fa725854fe2f3c0c8c12a07a4107ff8bfb9f42d5857bb7a061f7daffe55c8ae5ebce41090ce3131ea843f664197d5ce7b8588a8f2ce312be1184474bee2dabc2132ea76630fb8d7b9d56364d22611bb551887f6d0695c11591166ae17b0fbb54a2075f30a0d40c35c53013bac870bb65591d2d2fbb969bd8ba0595c89df7eb0330373a6291d040a53e8655c90d248b3e49c65dc336d0d131efa93f535eac9d298e87b7d9547cafbc860cfb9519819fb7fe3ddaf9ce7afb85c34d62a6348758a5168aaa730cd128101d66739f8482d40830a7dc47472246683039ce709b95ad2c3155e3d53d6affdebcd0f956" + }, + { /* i=3833 cDividendBits=182 cDivisorBits=74 */ + "589fbd62053f3d05bc413426acb335905e31f60e4adf", + "03339dccac22b0bf1e82", + "1bae5110cfb2661139f2584b57", + "01e91031db24867ad6b1" + }, + { /* i=3834 cDividendBits=3425 cDivisorBits=2593 */ + "612d1826c92105c915f32d5c1dfbd5e7771ea19da156233ddfdeddbf8a6a0c29526bc38c9d06cd79574d20b64f1689fc3c38442c720cdc6290e2f1ea163f5bdb4f69665148fbea94df80576b735caf82bfea5695e951e7c13a21a421a12c11789b1c446c4ea02f960f0a938a00521ce7e0ea4a695ed795b3bdfe018392580c73c1ea013901065555c2f3862113c6cbc2b396f49658595e17c9d58bd2326092c1450abdd123bf453295a9b1c613cc4524b885d0d0dd79e50a72dc6f2bd07bbe0ac9f87a4c884312d08c6e4286995336d3909c6c84979e1e038cb4a199aa81bce5a2b33a534200ca9927f5813bfa30d6c5435c8bb92ac8ce19046a08bb38b3f09ba3f01925de7ed385b6a07e5765a7cef5765ec2af62681c969dcb8b5fcf176908c0a146642c0d95cd56184dddfbebaad46aa11a592e9457e2a5bb96bbdcefb7951c9662414c4e872c2e31028876ebc29403694e9df3987dc17358b11341853bc2ea7bb9664164ed00647c4fa6e6012a0c8545cb9eb264d22a0c8727c715c56bc817da9d40d98f8e609421b52ccb1bc9d02daf1c6bfe0687a9929e461418620962a60037fecec5872a01283b1b", + "efdfe4cd9935e81f589c5d84e6c012737a9b2f6d4024e298fdb1031a50b5596ad2b92a9041d030628b86ca705e60c2d4c8f2370c25ce9bd69ee5da6e4cd65f216f84f230a1466b9527062e56b83c37ec03a78499df5cfb3384aa1e787fffc013a3656e5549e781ed94352d89edc84c2781b9b78c5e371c804f5684c6ec2f5ed0816204b7179c84d3ff7289ef71cacf7922f3be1e4e7be53626557796deaec8a37b4fb9b5457a10dfcc11179958911659e0a5028e7aa01b734e9ee0f21a016ac395c3b6f4863e2df5373cfc0baf3ac649b2855c11c5112e7463069ee26cec10dabe75a208c40299af3b815649f25c5934eca875c80ec2b8b9ca059a0290bb76e6a6f16280302875dd780467e2d34704cb4ebffaae72953aa27f8c0786e1f0456de1583f7caa6acc78b04fdb9bb0cf44a18ef8084a7f00faf7eee37d527771f2dcdd62e889", + "67b570e7f35130c67e58ac4351a890fb424c012382b84e7e4f0d535c6b0b763d001faa63a835c506443eb3f39cbae09e607ab36fd50a9a7fa5145c76e2271d0e73f04f7e748bcb1f4f60dfbc7332f3be973afb8da3b39b68099a088a797ed33c7fb585c21a13fea8", + "686f32a8a8c53eb79fa72933510e18bb1a38fdf1794b9338cc318a14548326ca623d1d61cd5d089b47b9d96c8d8532286f1e42e101e1114ebbe944302dd3effa848416c6000720ba30950a7cec7f933b9c417055317e07898922de1d0af23f923d204d475a150f413a24bc80ab6a9cfe85616520ad56bee6b27bfdad1dc992341380c87803be116c11fddff39f130c5137663a7a05a7db1ff1aa51aca8a5a7573a8b991aa3f6fe8f3691b6dc450242b52ed9167999c6bd614c1ab9eb28c1c9cb535531be6ccacca558e42714652552f3ec5b1cbb85aa9ebda4e5a708f8f60a52a7eff56e6d7ac4b44d5439fd72a3e7daa21bcd41a2817907cbed2277bae3d0a5985554d6a38920487d55f0e9ead27a46efbf3dc70e3cdee49f69e5ce64d7fa2c1292f5143d03a77e7b01db92f6d54afaab2bc1a541c767c4e054e973608623c9695cb333" + }, + { /* i=3835 cDividendBits=1515 cDivisorBits=1456 */ + "052f55842d20792281891db745a88d8ff0d3c88ec9ca0b4aae03c6da7433b92dc0deb8e4e9c0d38008de36a256044f349afcb51b10b1274afb4bd25a56e986e41715737f30332f615e281839c955abe73e1fb6721667c41d38361b83aaf0da0fdfe22c27948a35bcd3770fdf874ab4bb800f53faf65f8aeb57b44a130dad88e927c6e9599c6fb34bb34efccc6a9228c66f3c0cf7abc4568da8a09751a171e6234c520a2da5195a55694e92d0fa6c14863aa55e9badbb72907cda25d4fcf3", + "6f31d7ddc3f46bc07ac4cb502fbaa7f7851ea1dbbf3cc0ab44cb4d5a1c7b30a7001d0f6b745bda5bcfde6666fa9be6e64616e8e32924af7b21ac0a1ff01013623644a08fcd1d75e67f6e055b97da05d0ee1b4ced4d95de9eb5823d27542ad4b7a1f72111c5406d2cb18811ec62877d02a0f519207e64f651abe1964b09faa3c0d2e1f0852cd9756e79a1a400ccc05f01014d8ee16f405408dc215ea443c08b0f70af2c72dc0b8e0ed7072d3ca0b93f14c316d2734715", + "0befe0f2e57630ad", + "2a8f5738aae514d8bdd66d1d8107ee18a0bdbeebce51fc6e9206c198350568e81c2e78d392fd32f855710ab692ed3c1fa9029d556fb81bec8647b6dbba74e697883ae534735b477d5f3d1dbd06af412f531e6f503a70d816e6f8c5525f91938c36d5ee2112a468f4c8d1014287bb9b5babb72bdfb49fec5e65565daf968975f3c7561b4bd206468200c05fbe5ebe04f36decce1505986889b4c11fad9dd16541cc7ee7b6f7e9f0cdad84ba01dd3d8367ad65c3ec03c2" + }, + { /* i=3836 cDividendBits=2175 cDivisorBits=1674 */ + "64cfa667f45b15046ffaf504a204a1e0ed7198afa0ac420d04e5705203b6afa1ffda6e8c836c0d1ba406449e4d1640abd93d2719bd08a1a2c6bb69898bb2b806372625591e99f9c974dabdf3fa3e2d12a6c0bff82a0a9d75154c13cf23f1cf364c7214b272c56d97403e0a3d6d7d77b6603715ad5f5439c2073ba68d62d23ec95a011f407b8b4b7db95db2c65224af445fa40112a3c3d6c65579edb845547b48a1454b9179838bd42a700a73c41de35de009f87e13026e6335ef6832943e79111fbe525f402631056ea4a1ce0888c8536138dc8b1270590ace2257393f3ba199d02ad7d9239897f4cff7cf97eaa5e7ded8813e94c6944dff8ecaef9d7b9907e9401fb9f3e705f7dd28b20b9b33342815", + "01c85242254f6a2eb20c757d2c056e0f4247e71006adb79af093d591145c13b0e291e62862bcb6ddf2f830bbe0a0f99fd37cace8746f55df62144bf2bf53cc74c44f9f27348bf4e02deb403c1688be5bfd56e244a329f595876f0a35d7b2e7b0d5f20a899ef7b2e08232b09abee85ca8e16913211f8f0edc64f5e3162e52eb190606c29711b4e6ad308d6be6d27ddd1ff4122dbef32d6aec600b9e592b044a8f91059f72fee386afece37a8af6d620185967cc26018aa446d137e349223c0547abdfcfd83ca8d916d3a7881896f15a7a61a2", + "388e4d97acb82db121bd95398f8fc7475ce856f17997ddd58c81667817c3e68e78bf11b2412354e8d1afc24285e4ca5eba82e7d742a8b16b62c5cddaab35b8", + "01c14b7286087db0ac61a21fdb5b8b197b3556fe4e0f755bfb9921e4da68e3b7ec1e1a3fb1d6095d70072d794f232c8204eb11613156de3aea2659eb29cee822d9c3082de3488ad53a5ce282fd7f54c09bd88e16abe927c3014a620905f5cbc548e35a3f71f29d841746ebd6a81efc2c97b008a8c497879fdf31ab35e5256c6a8a8c4a017702ccdefcd4b38e56ece8df928e87bf43c7bffdd473de3fbb4d00d2001f2d76f6d4add47dba6832d135b02ba301973456ad4c56983cd81c54e2038540df4757b6cc707d1ac02e5c16c9a9d171a5" + }, + { /* i=3837 cDividendBits=3419 cDivisorBits=2386 */ + "01ae16b89e017a67d7bd9b9d718d0514f22ddb4ea74f6394cb2a4d43ab5cbc365ecf181cf33e0f1d971a80425007f0fd377e187fac33fae8e6c26458433c18df63067daf02f7d1a63bedb06d762717422a5e4b0d21d992d67a996e9f2f5d8da578104b0d813fa0d53b4d5d54e2a87d13953649406cdf41f1f63de93928a83ca81aa7eecc9e08a01a09d2fc98632626874610b9f6ae2569a9a30891d8b61b696ecf29afd495912d7135202f62ca3b739c1519e7527d2a260022afd79f7c80c3f69fb423fcb01d317f535838436601106d30990d5f8de77150925e423c4da610f3db6c0e36457921e16949f49d58baec4ff8685d12a44cd269b1a615d8f364531937833f82c557f4303dbf32a9b3d9f464ab9e6143ff655fc9a3fcce350056bd9a8e2641df20c398451f09ed7d8eee5ee3c8a28dcb3eac0bbd58b0d50d05e1a0a0979e035d0cc7191712bcae40184ae446d5b2a9935fd4143164df3b945746700f7ff58b15309909f34f825f03a7aee81c68ce91494c94729e00c22b8ba3d13d32d6ddbced75c0ecace6cee3f0239ebd545d1b2bf723f8e090c920e9d60e3ee8eed7b6c210807e44d59c4ca1b5", + "038776c960b1f358b923f82a25c1d445ba18125dfab995927b0f9d447db0d0ebffd446f7947d35532cf4a494ca4bda9e9affb6b9452a53cc551164409a5d1a84692abbf397e955fb2829f6ef5f53f1cb78a9f1b9bdfbb5dc97cb129404c347b01351b263be97e856b8004b769028b4cf319b3872a112ff982f17088b01ecec659e7f23710f06ebf04b65d746abbb568afbe74d3b43febe8f34b33e6813709c066a1865f7af85d6bebb4aab3765c1cf886aea86974537d6868ea27e0a436d046c8a416d6e8e2d8abee113f7416cf3f0dc4cfbff2fab3588b618080f84b13134095e60313db87cdade1c5bc56756b2939791d3dafcfda3d62e523a928efade4ccd0652bd25dd559e92436b5380f774b46d7b0e3a884f100a4cd924440c0f23271c99cec7da56eaa8b2c42e64", + "79de077ccb94f4c41dff2512f83358e21fe0e709eb718a7ccdb2f21a264e897d5867580cdda608747cf64e5ffa9bcf339b4383322befeef89f34025c75d831c7653498658d862e302d1beecf2f52fec7c460fa3375cd49a9789a19da1b4970d78337ca7450f290e3dbcdae963e4c977eb75bc2d55c6695d342d1fc025a40053041", + "01f7280ae1274d5cb1224ead1a67dd0100b9244ea4ca172080d609a9adc1050599c648677ef80c18d613c4447aeab4455e622f32f1fc68a0d36c0d617380001e4aea1e19df0e6463f6fa1ebcac6eb17f1b03c3077183a1cfab556b7e947704787c245aa659d35e8ed56df662a4070d203afd86c283ec384b1fd507d8ac61dff7fbe6f656b5832a1fdf531d241c93e20a43e16f6f261a39ff78491edd449dfd029a58f8473970726d2acec23eda8b6309258fbaf7c467cde1006a13e8ba079d4df03d052349f7e7d9e7c3fc4da576a862fdefadad7cef290adf532bc7f706c9c385f34ab5be6709d974ecaf899d1a95146695da1203e02a6e77402e12781161e59da2f4c071fb384aae92537122e76d0466184d05bc1afed8148370d31bdd65f3fc748b52ab6de587d61a51" + }, + { /* i=3838 cDividendBits=1071 cDivisorBits=33 */ + "420493f36c3c41fe0802bff1dda2706592bac6d77cf4a01320a327033e5263ef19c760bf89d485141fe2a49c0ef9f7a055130c3d0b65624ffe1f4861e2c37b690f701eb60aae8b1b4270a8cd07054c7472376248286cd9f400327687fdce35e37b634718639e41afb0bc9436eb7642ee3f0224958582e6d8da4d8ba3e32e407133288f2587d2", + "058b9cd5", + "0be7b237c10885b78edd891fedcb509459e50a5e764e493bf61b79816a2559a32973e33ffab9bb22bd1222aec943feb05c224ec79efa1f246cf82a4dde76e99a353d39bff03eaea392ef6808bd17c71af0ded6b34fa770df25f0c98f0849d08dfa4a14b18c370a5ed1838546c5163d973865ec41152890f6654e9f614da033755d6b85", + "af0629" + }, + { /* i=3839 cDividendBits=2771 cDivisorBits=2206 */ + "0232f984c6ee81104e0cb700cacccf753b7a653f5cc9353056c1a7143fc2595637df032440524b3c0ff02b07ab6efdcc720e16eacff3297bee5c73648b3c7412667c5348406db173ac6eca687827954fc7adb3e4197d3828e6c8b0cd00ce4307ce7d1e15d2539e79ce0ed62e85bc45bd579926429133b6533f3c5a266116ccb43f7d371f4644a0ef79451cb06e0a7aa67f6d30bdb58445cbbdfbf48888be0004bcf587d558a2515f56c206da0d2388d0047bb42733c8933f1648be47d903e613c3663f3709543be112aa18487d0784b69f6bec8294c8af880d9e68f8116a882cfe47729177d84c92fde21375f017f98cb254d6a70700c6eeaafd7774e0a6e52dbe128d8c08953f61232cdb7a8c4211df51011afdea0ee824a17a34e0291b9610b4578165c9f8acf0d50ebbef315bd7bcfa7819f0b8aa2a18386e38ebf97b65edc903cd04c9d4ba6e223fadb7494953393334562c3d924effc6bdfc", + "08edd1bb24a87013fa2da7ae3d1eb5b2e4ebbd340dea86681e2a3b43a7b3f2427b8a7a2a443dd31fe879abaf6ee746137a11c487db33907040b0e5897b2714cc7788d754a65d38db2f0de2b77c2e67c6fc00dd70ebf41e56e70998883893ba2e4aee29b85d4ac3015dab7f415cc5b95a66ce8b9c1b7b13caf9d795f3f0b6345bb1a6e9647ef7aecc6d193758390693e2d77d0cb3c8d82e43e700ad8fcc8a60c9f9ec029bb57eaaad7645934da019806321bb0c9d274c82ca141df9da9033dfcb9c2319c04a837dca6fd8748e7c8bcb548e1cea4328ba80909eeacc86baefe31d9096938d93fef1c72382597614b165a8dd78dad1c6af571a701f5e6384a35831a4bf509cec0aaef3a232c9a25f379ecaeae42776", + "3f0cde68db44b137a4ecde775ba4e2d01a7a4ad491986e040052e51b2d55f8d30ccddbb5e67788222cebec06fe58b69d0fa55c7d85bc433677ac6ee56a2cd01d66f0da380db25c", + "07ef51625a08edaa2164cfdbb0c1a034fad0e5dcc623a1e6a5b5935aa6febbd907ec201877de6902bd3cbe5ee6752681b3af61d23ef78c4ababb35dd6de1c27f191bdb05dcec829f7bd1166f94147f625c91be0e363ab765db2707d407d339270b0ef2e312e12725f35a173999c5b99512aec23047280d3a417d759331744fd8316e771d88d7f871ac58a1d4db3c352301221a2f706d9bd59cb5ba6d9a14764282a1729e2c154d6e55319959863d1bf22d4e61d78511921de0ca7c3b1320387a0f800fa550a721a7153c80ca00e0e4b52e49d16835409ed5a8e625ce98f965877d013dd2831390091e8800ee2017697074a573be81c64c7ea939f0b69b3ecadc28614c1a2b2a03e76bf79af5d1db595c215a8394" + }, + { /* i=3840 cDividendBits=3631 cDivisorBits=590 */ + "7d8a5251d75d274fdeeba3f49f9c04d79b2afccd45295c99d57181a6c5ef1a6cf2b7ce011af37204d6158425e8b0a2e9d9f72317098db38928458fdc36394ef19afbcae59fd4485c026b9356a63246ae25eee326710c41149dfd0f2e4f8bd5806b93ba7165c33ea7530b02ac1df1d22d08bfccf3f82c4d4af7773df2ed7f26f259b629757da1e69aa7abfa986746cde6b0104249a37ec6eb829bf54ce44db2c42169bdb60f076583783d5d2902e972619a5bb08f6f55ba512dc43a303563ef487be6f4c55a2d43b5367ba693b5335a0ed55c0dbadfb1ea370e70693da56413206253e5e10d41061d8eb3236d62645272839d8e31a9233fe15eeda71afed2725f129a174baff152531d0427b7971f217fd29d1fd94cdd87a7028aa89b8d26a6bd33df093e6772870b687e5359179f752c7d94c811fa48527fc8c50ab9777ce65b7f00281a10d2d3b24900723cb48ce8b28ff511c3ad216ab7d932c025aced6cbb7f1385eb6d18d42063e1e2206e55c69211d28679a8cb79966f2a87938d8290e24b42ab3dc6a5b71d15b39b273c761b307038a1d371f3dba40fce437498a9b16b0f6cc96b709ff7b33d27e5b56d47e3b83f91bdd216e02f3bac721e6950344bca2968cb920194", + "0db5044b538940ed63345b95d187b3f15097891baac5d9378422bc63278151d4e89ca4682fb4b970adaa2c952e6f639c3e9df02d76e4870733b9692b5c2ab0ef7b65eb31972732af2d41", + "0928a5f8f2ec6a05db9185b8b06e3b8d63031d8a43cefd604bdf47c7a294edd541f76ed47eec1a1ff4f5df5c6264b2fd0f71a32ab21609de78506417fbc6fb5abefc2078b33e6f8e9a3f4fb9eff870938eb446add818a6a2b90d3ba96ecfdf7956df1e7f6d50373c100d0388c46ea5e3066e46ad8bcd7069aee6583eb059cbd84287cedbd1b2e30ce668da3f8b62bb7b3babed88657ce6cf75d646e14b64957f95d6e6d95bf07ef48a8b71286f26d8a4fa93b9371a8bf742f7e19b9a35959f49beeefd938023a1393a344982c1f306ccabe0f60a28e2a0c81f7b416ce437db6bf600a5bded5257be4e8ffd5618018e0d8d145184e994b26bbd3f2da753aa7cfba36fbbdc333788c5c70df8ef0471e8b47200cc7bff45a32e1c75340bfe14854a1ffe69c0cdd7bf81aede723e5bb727974399dde8ed557ee5cd256d05d6128239bbbe0c4d0ae11991072d53282b3e02a7894e89d551a0517a25aaa24e2a7a0ed010ca236120567c14be6a570f60479400b85e952986ba1fba86cb2464ee", + "0c042ad446c3477dba149546ffe6b415e3ef396025902f196688d8ced0b2bfb77513f140a209f7d11931270ee92dc53f56c62a3ce740487965ed034ca120309b45496a7e5fa056e48b26" + }, + { /* i=3841 cDividendBits=1606 cDivisorBits=488 */ + "3b8e81bf4d8a7b8d2be77cc91da8cfb7711f001fc5862fe94e2a575cbc5c9831adbcb499a502154741fa21d0545ce80a388ff3ff1b98d65556572d24da467b3c60e9bc170f584a930dd2c60b3448d93331346ce61bcfe5cb788b27ddf3f9047c7358ea5834453e8ca75f9fd2d50dc35096c14873930e7548e2ac3c3ee45ac816e678dd532aa9006caf9b57205951d47da936e1f024d189e918e6d8ec524cb9ac33ef5be3df88bb38b378651703c14413afc0b3a0bdffd3330134048c1f86e7f507be8708859ea60592", + "b0823fca78aa5d4ef569f70a7161d8725fe3b092c085507bee60e6de4f91328b59659b454cf83005edd81db4aadc27f81f5bdcaa59525f02b07ae71661", + "5660d01688699c02901ae573eac25813ad468e32d6fea4a36057c250aff9d82b9d883c26636a47af154acc19e2e4a99fcfb5b9ad9eeb56eb0973339cc2a20214d2adfa9a37ac054b3865b6cd0b25c8bb3c544bb0588dba55591f8fe77eeb3033deb92995ba96047694c97d6f637d56813ef188b5be9fcaf6992799449329a0fe79c10518a748c9ecdce4d674", + "aa48216ae99153c9f0c64db9af48f1042822446fe7cd42398806c69d95b136d8d0248c4c94d2b4538555f3f3124daeb9b8ca6fbce4a08b725976d6cb9e" + }, + { /* i=3842 cDividendBits=1574 cDivisorBits=509 */ + "2a4270218579b704023b57c5f90b5dc8a89603447471651ff39b4f35ae0a63fc876c776fb5dac0505305ba5affaff93a531b8d929cbfc7685aad9331465214709ccb8aed094f3793e9bf9fab51b2aa0c09512b8d6191355554c03078165b8af95655265d788bf859ae8437549e9df3f6a36e440e2d820e3082aef0a9587d0b1c06a97619edd7fef86b7ba7997f33a1804f46de1909184e22dda333471a7ee4b058fbdc79cecb89ee6d3fb3706676bc68f17e6002cc4f98beb02e58ecb99491d4edb4aee9fa", + "fe73d021e23afbb552f59ec0cb3aa15950d646d884d0854b4ee83df291974fbe177d91ec483cf9310a492d64c042a03ab4e07e37244e17d94f981a6a4ad1b5", + "2a843ca27b90f8323e2da53b4f54ba2c71547e70fb3fb251a9ef19ffaacc2ab5317d3851b54e61808130ad1aeec8448872a1ba1144cf2e095c98c9c06b56e56a3a8fb81c637da8fc33c3bbd657489f3382c9e3dde4b0ab4ee2943fc10127b11c24a00c7c58544a2592598504dc5e74d6173061964d11c7b6212ff637b2f8886f7d732ced7ccb", + "8c6140a64c03eb07b520cdc745dc811b9e50c0b888a035ce6a0cf18383d39b0241fbdf507a066e693c5bbdf830a02cb8bec968072d84c3fc9193e0ed35f373" + }, + { /* i=3843 cDividendBits=1480 cDivisorBits=421 */ + "ffe7fce4022e7c860a3b184965bb83456a88376ce77822940c1ea8c6021591084b5924d2e55387556e95cdbbe1539abcbd94fb1e395d29406823ce5812f1a6d92ccb7c9fd10d7dac3ee7462dffabe466162fd8e532b0bc78d1adfb1ed21e31533bfdc1cb8fcc41582e3ccd75ad3edb61a73e53d220e093a2d3d0a84d2f8c4dc878c82132fc4c7bfa19a66d35cb4f856501a7465883aaa302fdba4acb5a75603947366199f14b3e142eb72b9f99d57d1a2a2e78c89b9f477390", + "1ff0c801bf93265f06af1bfcb4b18cef7ee13967450d0d8006a9d442f2235aa7f60402b30a31eae3c591da54650c9b9fafc4e29ce8", + "08030f5b3da66f9f49045c17b44b108369402af0a164ba649c05d98fac9c969fc6e6a88e545ef28b9ef420f5367b11145bfa448ad802d3af6b76ed46ea316282f6896a6c61beb3e068730cd99cd2b53f6788ce9039e0fcd06c36ce2d0fe51c36dacbc9666b630e9cba7e1bba7cd18d46cade8dd95c139cdfa2408ff81617a9d7c0e29c5a6b", + "1c2580d45dd2b570263371151cad51a0da33bda71689cf5bb22d93e997cc31e9f5f241202cb35cdb47043b47e04f78b0503c064e98" + }, + { /* i=3844 cDividendBits=1199 cDivisorBits=905 */ + "080bc9606e4b85fad560bce30a1e86730e118ccb5adbe9422efb6df833e9bb332611c8fecf0e22115ddf5e893f1ebf7941b247f9dc4889d6a2a9a9ad936ab65fbfd7691061baac6da3af4fa67f73f3547341e49caf1729a28725f26dee6af2e9af9be76717868c1f779ca7cb5e179ebd10428dc69047e84ba0124fb41d80dd5d589dcc43d8675adcc32fe5b379a75f0cd5015b421f02", + "049d8e817e5a069c110de7e5636a742b7ac6850261d6f56c6ec16f94c302dd03aac88fecc986f5d4a27f898d19e3f3f09879f7f3e7955f5b229e9db98bf1d017b5fdd79436df42f4c7e8f5c2310cf6feae99733d6689058caf00c2cd6c4464cc21708c05dafeed9e954eba2e5258300a61", + "01be47bcff248720e231770091c3a977e225e41884126d955f8c827b40bcdbfa087de337c651", + "3d71b33c70f62233f61ba2a91240a88082411b5ae0f6f408d144c22a3e88e558d1a3064b769abf6be23a0022db0a5fb93818fdf83dd03661e83cdc3f72e2503eea16089eb24ab9cd07c5e8a75aa02313190adee586b2e4b6f1c8cbf729d68b9fac8ec35408488874d0ead7db0e30d051" + }, + { /* i=3845 cDividendBits=451 cDivisorBits=322 */ + "07eff17bbd268a38b2d2b75f45cbacbd451a698e74962d5362b3c992b5c9d685c9e75b0d2ea3dcc10cd3eef23e6d65661457b161fab9684491", + "03dd8e9fb628acfd7c47fb51ab2e3eca1c9d10d0f3b01d69a4673556dc0a4877d7f7a273873624f11a", + "020daabdc191516e7922bdd3035538cfc8", + "a25396bbdeb75210d6b672174be87e1c49a0274d2b42f4f77c87527058fc396dd1756e202de7e241" + }, + { /* i=3846 cDividendBits=3905 cDivisorBits=3525 */ + "0142c452a73ee49b510fe162e618572ffea1fc65d66fd2c0b4ce12969f8389e5684361c2f835e25d9e6368e4e9bc848bd7c74c70c02a283e55cad4207bb68c76d89cd1ea2f95802cc34139fdfc894243b99bd4ef08e61a0d61d59914cc990d69ea562bbf4efb4401169469da8099baf30a6fa888f298e762ec3198350898ceada55776d8515309eb61d66dbf63dd1f080b83367b4c8008edf92c63065ec73eff629f57c88504c52f435b274ba9fddf0eca15d548a4bd9660fd7bb743f34c69bc24f168c011e71b1bbefc28f83386ecfcf890361f768c892ab1f6b220f5cd9d8e09130e400d495b3e4086c6eefea25e9a0753078b6924aca8f6925d4b0fccbcc5b1741222fd7c0300ad1f98eec646a25f363e1152babe6df706cfc82b0305a846fcf56af6ad4682c8178bb373ac80c73a53aafbb0e19836907cb9d33203f6a82523b82729bd866d8e5d2e63ba1a42b698330edbf4d01212bb52e47c00818390e49f636559c4f2688c697eb457ae7af7a4d52ae7e20525944835384213727ebc38c3a6fafb238106537a9b4a5ea1fc6bc57df676b7008f3d0672a4126a13015ab446f6ac7712b0baedcf04f5bdc412d3ae27a52ca5d225f158de295223093615aa7041e55e7366160411b3686d0bc15e25c75ee502f9d738e6e863c45870ccddd87257c66af2a76fa9ea", + "14fc31a0f1de782eae6ac8674df7b5c80dfb3573cf2480db19697f5564f2fba334f5d469c93b7bbcb5350f40a53231140200b948849212d223a1ceb944ac42b6bb460acd8a5c97269f53b5d4a7d64686b3e3bb6f03aa4aaed2be00fb3945b0c30f53bcfe7701f540cf76a9b82360dce35f9748b540ae27105957939bf1de49a88ed66f249c82672fb771efcc06d39861171cf32b23fa0ad98873a7f999ab0780d576cb0d6dbf22fbcee349a20254fa16be29aae47ec7ada839511d6a47836832ba5797aafa96f3c39464d0b5ae4548fd5a6c2a07af6fb1d071d6c8c31a42effec48fcc8f2d5a5a591cd6ad9307b1a3c1ec9e5c2da4f829a1811bbf636f16f4bb2cb757d56ac67500bcb14bf02542305370aeaca106def8db2018770e81f046c4f3e9d2218098b8e8b8648ff8d09538b8fcab7d2e7b992f019843211bd74afecab25d2349bcfc510234e6a42f9924aabc620fa7d8d023ea1d6cdbbe77244bfa3a9a1be0db16b43d4bbb8a79754580e0c56939fa9a2ac86cd984031e1fd4a81378af6279ab1fde0fce2c5952b5ed7772c8f4c22472c4b8a5b51c6899a48e79a06f7a25cd0f0ea1b656e6f09646e957726ffaf572c41e6ddff685", + "0f61783f771c5d1d0557c2c017c18e7b1db2d30c9eee4256c0ce5c4b4ddf4653db804e34bd133ea6cd6aefb27de569e2", + "10fd0be58c005618600f43cfe27866fa836373193823135529d282a783acbc354159e35eae50d151fc5435d4b05aa5724a3287e8228999d9cc29eb1e5c933850d0ecd58441438872117064af1207c8f28d9c51c1c9d366504fe64dba1fc781809bbb7f77d24f43c2feb3e4b9a02c518a9b72eb28df052bb1fc891c00bc466c9ff24af61b9901573da2b0b172ebbc955b374fdd6b7a9e0969b82ec86ea779d396c559ed069a5bb42567f0933ce624dd20f5ded2934837cb8cda57bbc62b21d364c299429992ff7c9cc9d3c84d5290b52aacf612e20a775b54f01ab532c96ca3281d991fda4ca398bd9988bed71502ce4491becbaa4ecb9ef2d6d5b90caee99ce543e6a1f98d105fa7d3096c56416d86aaa8900a82112eefb731687ddd832ca8aed32b89785a0104e294ac20fb7eafb87939613fe6c95b2ef8f93465b6279a2bc52d8d9c263ae129182e0e70028a3d9bdcd836ad18e95e293c8a1c7e33f83e3ca39f5dcfe847dcae421af8e40b278ccb0e4094fb7f97756176c62bcea152beecd4a91d3c8aa01baf165a36a37ba4ef30a65a5399dacd26a3abea3e3820a374d93f35b382754f75e69a39739c9b56994ac7ae3a3494d455a27b80" + }, + { /* i=3847 cDividendBits=3366 cDivisorBits=1845 */ + "26057fce304af9f6c1164fb1a0cfac56cee079746456146c65c58ee41ada306f6d70231ceae4b1fca432f543c131f4296462bed158899bcca2c9ab331084eea274ac892674a0ff2e13d3905899658e45976ed5f49dbecefebc27ab0de1238828a6ed061a9b3ef6d6dd34a9605e47b7fc07641f98cc641f973991f8144ee062d8ef8a2c3de4a09f8a58979500e7a8c6917ad0d692227d6ac4807cfc670a233b1bcf896ff6894813099b8d651eb4da1a9b4cff3a7de85847bde05ec67fdde6d39e7738c0fd3ddb44abff0eacb24be8f04dc24d5c5573c10fd19b8d57a1f1f7a1ac49cb0852495ebc841c9290fc39ee928fda8e56a92fa4c0ca33dce7fdb164e2222d9ffa13d9beab2965d33c5cd79baf206918fdc15f7a606dba0caa9ffdfa247986fc5f01b393ba2005a306b0aeb6a4fe2cfc21dcae23b729485993e9763aa770414cc15c70b777e08cbb0ba3074f87b4164a0fb6915d76c91e223598445637983419a9088132d7287e8c4f0281d937b603258b65a7e732b8e95cb81de6135101dba9cb1bff751b64ce4b84d100fc2856dfb36d81931ba52d6e66aab41213246d1e799e8ccc", + "173afd987e1927d8c45b2db9c044a10b1b345748942b5e65f0d5e36616b03d5e2a30ef3e454c00583b6b0e629611084cb0d7404b6580a5dfcbd5630a10d27e0941f71eaab409a52a6468d659bb0ef018ae803cf031464dcb6daea9a7b50ab38cd716e992b9e57aecf847cdad67151381b4b234af27890bbc1c4e5dd210091a177b758fdbfcbbe45edd238029cab21d32cea057619d519727142bc718bc80de24ff8124c8bb0f1621b489bb3bfa1b5f11eb555e33f23ed90bcd7a2c37e6c1fc8d1f60b56aa262b1c27aeecf5fd686586f2cd96919c5fb50c1925c2556893c38ee2cbd36479617f9", + "01a2ff6de1a1bf8b25f46da47ce30b3be4b5aa4aa7bd1ed4d01b7f4f694b4d7cf4c55c089ecd2f34698c84627f946616b0d4c44d54b7b5733874dcdbba138c169a90f8fc15ac4b54755d41bdbda833813db8b513d3cdfea7665cbd67c3b9a00b5c8a349662b41b2c4b7ceb7eecadd467bcbb250d4b631d4724ee78f347598a7db0a2aa0e3f53e30e78abe850fd1dd694bcd4a6a0058e83d34487d02583cd029e4441e4bb98f7fc4d46edf41bcabb8c408de6ffbb74efc7069ffb6623e0f728", + "12d449e884f26c76d75ad295cafca42f5764ae7defe794fc65fbc5d80247b568e85946b84094ab94aa8668a76bc343943a2c16fc90e58b340cfcb38dddd68fb1b469a9fe04d50fb37f015d52dceff5c552d82e95e1ae1663a83bebbfcb4e542dc1b9dac6bc7f93b338bb75f4c7849a5a879aa3688644e8d0bda461cbf7716eb3ce6fbe7048136b49d86e22f93666538f24f1eeef2678b56ccc9b8e98006637ee1cbae6508d74d664d989f42aa051c1c5bcb546b9c27a7d18d8975b6aecd202189a75b501cf96235051808bcd99c281bde11e1185e7e4d73c330ec8ea2028334d59a4bf74298ee4" + }, + { /* i=3848 cDividendBits=379 cDivisorBits=269 */ + "632b30607a0757413a7cb63b160d4554be22d9d7255ad94ee570803afb96cfb243afb263ac24b631383a6efb4218b5", + "0f097b445456d429f822cdca76ed66034f286b92cf547bbeb4f6cc81c7c7f12dd677", + "06984f82676d4bdbf9df3ec59a3a", + "e2e17112e0eab9146f10a1e2addd32f059e24690cbfad96d0d9f086d2ce848ebbf" + }, + { /* i=3849 cDividendBits=1113 cDivisorBits=5 */ + "01a13cb35c7ef8baa2a62a9b7931b3ce86ed3a72fd5516da73683389b66fc5f607bd4094931a168620e951a9527ba6dbdf4a2291e7cbe9ac8bb3211755d7d2dd8b334e81e814008eddb4a7f0ea3ba55573fa2b9c3a930d14f533eb2b1d6d38e1ada5842a5da4816ba24622114190a0b0324e5ec1a56b246bc542363851cc535f79b5aa15a019bccfa42f3496", + "0d", + "20185c90f613220c82ef95ce3ee6725925f0cdc4b7c6ae57a58dcf842ffb891449a28195296431b3c32daa9030e5735ff202a8c30faf836d3529ee1a4badc245c8dea7880189e39ae68312882bf90692c479822be3ed5061a1883e64b9a1e9f9aa453e55f8f6435b4078c6401ed148a1687d715b7e65435df166a1dee8552eba97d201a9da985ebddc3f1f", + "03" + }, + { /* i=3850 cDividendBits=3169 cDivisorBits=1644 */ + "312a218f07fa25889516baa8aa65b8ac4c23da0a5cd805b85f5261a73dbcc45a8ec2430e8f354664946929c3c3a498d84eb721e3f651262a6a01f5f7c021435c7f5ff6ba35d69de9d6f5e348b176edf69f8063946a8238eac2a033893428033c2be2e4838d9d02816cbeb245297ad08044a0a8f89dda05bf673cbaa5f9ff034093cbee17e60c599cbc6b17af27f3e93aca7ff912cf4e2cf8c258fb6b76b0fefb003c9a4907b8b50b075bc5ad915520f5795f5dd74365842744c80830353b97394c307a4f249cdc5459e19cbb1dc5b0aa8255e3c687ec6622d9b123222f5701dd022189911394ac6d1ebdc1993bc0349125d6353983b120a65c091fce238cd85e4e24d0ab44d71ad6d0f8ea89a470321fe775b02442e969e3038fbd63221b422a89f45e68c4102510aded1a9f9654b4be7b0e0134ed632e1551f6932c665f39d8e9f5111cc9bdff4335f2b0a6d1aa2a2357e255ed9c746cbc5707117e5bf8c697be53adab391ca2ac37b0dcb53b5c25aef9caec5a0e61d7f25bbdbe75fa4c8a13ee245ee1426eadd05250b180", + "053dd2f8367c457bd091dd5c8bd906ad247d707dcd85cc830d71e287050a30f481ab66c5de85592db61dcbda1536becbcea7867ee827ac9d86ba7b3dbfe50999a5eb5e1b4f9940b8b6e4a73ede85e7e3f5b9cce3fb7ef09e9ac2f942b3f3016f6e6fe25b075d6662eb5ee0bd02a91be066d3fcceea1d133607eedc9cde84e425478e8de6a40ad0651918613137a8493947a5efb23b4255cd349fb1fe11945653cb5e53176f1f01a2a9b2f002d8b9ae0c7c22c7de4fa8bf962d72b6e28fb4aea00b72c4af172f163235ac93d2a677", + "09613ef062444b18b055e47c2a8cfecbc741c6d94072dbb09b9a255ab4d1977e09f088550e956948281a9b0610780bc651558f85f1dc0eacb91df8900a7f682206d7163090213b0dd57f5631e4b8a74475a7a706c390665951cbf4c31480eb79d9d23874898b4ccd587fb977276189099c587fca4d1d93a182bf4332ddaf72ab1f0ef620b3d9eb82c5a167118f6799016fc5542407bbf3f4f526c10cf15d274911fee26e37735bcebf0b3aa18547a68a11f3a2f40533f45c78cd8c86b9fcaa", + "d31840a1e2e2b09d0231e75816ea121ab20a51c9ef912cd088bf302ace5d9ec36f7fb9afb79961f0d34e8d68b554edffdc153b8254f59a051b968fe38588341a8957e14a7869ca44b8039ef575028d403e364d919a8f0b7005351b4f928d99ef25b00a1be6abafb15112f85b20adf031a4598fb86dc464c8fc129b9dff0e0e25a9adadc8b76f64dd29e7f3e6b55aae44c29f5f7a15b7b76ff83f90b7f6398e7191bb5dcc85fb35ef532b91865c04a0819e822a3c779db328cb9da657682b76d83881ae63a4a6e1bd423692027a" + }, + { /* i=3851 cDividendBits=2652 cDivisorBits=489 */ + "044578941fdd5c274ee7fc46084e9e8275f9958c7cde58776f2c970558cd035f1a5778ccba96627ac9367ac120587a9940534ee46e344a1e76cbf5fe6754f4b4cbd5f00ae22436f0e2c8479f4ced8e616775460ac24155003e61eaf2f4a3821469c6d169b199cc889fd9e4311dd823af0a384b56678e58dfa03c85461d480ae643a7932d0236da8df9ed4e28f393e64a0a021f45bc78ef6c5d7d9bbcc82e0f9005536629d713bb8922726e876eaa67cd14a72a091635350ee2a1e2d3eb5e370fd39ae6690ed73b7e9c4b99be6291440effce397850ac5800a1fd5b1055a40f057550d5460921ef98be74c409e1e6845ab4ffe8088ee4039782fdc937c6c709f82350fa37c50eca23fbcc3322ff3969d564c4c7384a58121e91e05e4d1ae6ca9d3c981e1e04a6b56e203c5d5969fd2eb435b241c1b946f065ff0cebb01ac60b4b1fc0903a6aee7e30fa0bd68f", + "922d3e23b0f936b22f5481988e0f52b1b6a06e870deee1a63912874dd24990e3b9a7d08fd31c39f0f351a9515af5d04fa9c293f2cbe195155d2e0c6388", + "077b003f8f2831a8a5c3de5f5ec1579ea36306383b86df7b0f159ee746d713b773c140c9622ff62425065aa51a2897ed7a3077252f1efc26ed1037494100d300a7fe7b8f39ac2067888c5eaf0dbbba32b9dfbadfd74f28adc93d4fcc3db277dc31866cb37e8b0c17ab85c776d0f11e9f848886d301314c896425f71732037bd1a45d51f8e1f407e3ab1b597b64d9d4b367d17244b89c742f9b25678bf6a83d9a492335c669db7adf32e7cd54d00c183492a7d3dd174ae7f6ae8485b100235138456cbd9946b0309b0b65b706024c4a3df94c1d52acaddd9b3ddd4f4665642a9300fe0c0f2d356869fdb4aef2cb27b7f2ed755a5d38b7ccf755104da89ae26943907976bc10d4393372c0ed079518b5", + "52e0536f7f17fdb6152df7828699b6ccf3544cfcc49d50b0aa05a7d1867ed15e93b5be103409b57fa6e8a282d5d2519c427428fd25a0595e279bccb767" + }, + { /* i=3852 cDividendBits=2208 cDivisorBits=406 */ + "50725f8e55f6800e58ae85f1ca778034fff06542a59b5e2d6081d06b1359037d876c97142bce03f8050077621848dd1e23b2a81981dbb2d65fb5ba61840258382238279f146a3f9a51738c542758d8e671cab66364bc04722ad0a8ccd8c96ff83e9e38364b6653a104a728c59322913959bcacd48b814066f0da4d1bae1e13d304ab195e49505b566b1fa0f86d25e2cd907f226e757a73c58e4ec8c40c8dcc68c2a1c4af71d607c8fa6f5ec7424a5811896086da3487f00806333d3f366f9327878d6b21542aff23e2dca8ed3facd40770f539ffc7cd5c0a09a8d4c3d06103d59529f1700c765110e39aabe7a9ba03c2ccdd1037c80d99bbfed9196fb4713a66f78b9edb058232eaec01651414d3b2c24830777e", + "3380c9d94ae8ee84f2dfb536a2618b56ede4970d334d17b4bf98a90c9c7e6fa3e1c401f5aeaed694ccc65c27a32b975576367a", + "018fdde87fbbecdc7eacce8a1949c9a33651f436386ad6eb1e54f2ee37030adb6dd8a0132d51f6db31798f6666af5fb031293620c371b2505533270d4c1f457d09813b846b1431121b86891403d0a3f5b1a5c124b8c4811f2fa665c0710b937866f0d6cd7c3c24fda7a44254ae3f1f93fb756015c357229958ded53c216a58b260d15734500872d265803967cb0dc38484bf5e78a14702ba6686b485d01cc843700839bd4aa7cc4f7521b8378d3e950d9206f639188c2a1e13b1b42228e7049c91b8f4dfb868d3f93b6608e7bf5f351dff0a0de1831a7484f7565885b692c5fb21ac", + "2370ac8a403c90ba8734d46cbaa817cad84e748cea1d2f2601e02b18de0e118778d7b1a9a90453bbc4515532e756a954202386" + }, + { /* i=3853 cDividendBits=1403 cDivisorBits=1193 */ + "0739bcfc83d9d72b3b38df6bc5bd980f0238e5b11f08dd08e3c7d156f77461aa4a76ee50a454b1a49bbf798e005d18c0b359fc6669a37763691245514df59bbd436ee33beccb003d07c80b672c8eda66d505ffc3924f1e5d6d62bb7e3be8a6fd47cde4b0a321fba315bd5b27e4d7ef8e5178a4a2dae2dabbb42533806c164beb8a68ef0443349e4651e9c75bdb466293788adc693aa68b962fde2c7ad300bf2349e9d68a35cdb1128e4d796bfacdd1eb", + "80057538c8b7adb0143304b797c2872b048aee4f70b4925ba6e04eb21ce55887189fab3765c463d63b305c4fece4ebff1dd376800289dcc0617c1e5b9fb8b5a15e67d83998d773acd801ae85a49f69f3bf4fc12a4d3110be907947a13cb8ed19e5585f51c6b560253f8926e81bc440f7f8ecf49882906e19e04f226d57bbc492d627ba6e04023d436b86ad002f7f8ecd3808f8e80c", + "0e72dc4106ed6850bc61a79d66fb40ec24c8b046fe8ecaeea7789b", + "0196aacb86a742a75c02976c7812eaba9914eab39b16d43d103f8435f4dbfa733382e0ed249a9a73653f1ccef8f9f18eeb9ddc513ca2d066dfc03bba562311267470cd18169a7d5a21d45fd889a507fe4ff33fc4b7597891e7ea6a4711502ae82eaf77d7b4d8f085c360c1af6e97569f8ad82aef5111ea071497177eeedaeafc33ec67dc12fd1274ca2cbc75b8c1b9f0b7577fb2a7" + }, + { /* i=3854 cDividendBits=1104 cDivisorBits=230 */ + "f583230d8bc3a2cbc18fd91c44e8dad7df7f5050662ff12cc3ade0e0ee2e58b8b333e08db8a9ae774be42933ac9145ab4d1beeab59380027f1a83b62b86cc390b4ba6985703e6a2f48b116306fad8c504c1bcdc2b57c1b27e87ebe07c17c37cb1c008578c0f97914cdbbe1ac7aac66d35b47216c936d0daacc6fde30049ce4edeaedcf6359b7fbd15281", + "3d9b2a6b974b360f94f6cea90304e5e4763cac420acad477fafd920ff0", + "03fc359961023640b96da50b5e1d0334cc7083caf0c17ce71eec3378d05c4cecca70ddd1631db1fc39fc0523b05ac1fc16b4f648bea297cb9a574893c18b5e1f1e92fea8d67c4e6934f63a9671a65c127c95c9ae7e3012280d0121f3c08a974a6e659c6fad02d4ab593eb5f38173", + "07954e1e9c5aa72fb768c118039fde5342afd518c8b2bab727a85c39b1" + }, + { /* i=3855 cDividendBits=2530 cDivisorBits=2226 */ + "bb6632122d780e29b186b40c2c14188ab39cf01fbc092ffb0f94a39a07b2d3636488911d4b9b8ba5ed6facd214a9a609ac3fafa7ad90aa000bdd5b7c29e619e64c8a5e4f8a8a98c8f84f0e7b37734e6d3e74391ffc6631547cb54d2a37925a0d111b01c42c79b2ac7827f2efe47e10bd37d6803a79c48be646a934cd43992558d89d961fcbc7b836fbb9b9b9ff6ae88f0ba40a24a1365f97b99ffb02ec760755b11b202b4eb5f0cfa9d611aa80f92e12c5107b9f819e99d0fe4f295c390b4ca0fae3dcecee3c786f273b85c2a7caf246ec94ac7cfb210cb8e3671009e0b7aa4f15dc6f0d7bb6176929805b454236a7454835efe06c0115ff7bf87021317429c8dd547c9fdea9c25de7e0cef84c9f51f7a070b05e868f8276d9876362b03c80f0b5812f1fd4477e551982ea42d7497b5b292e0e7a18a0d7d4d942007c", + "03990147522ce9c499ac6ee0890b43886ac556250bfc56c00e9031991bce1d01a2fc3c7380c5343006270f8b3d36a57564feeb005947f2a5b83cff0c25a513687e6ad680c109949ab3804ca5c9b781ddcf9b1d0420d81ec90b087d99e9d593a6c3cc39bab757efb10e9abe82bcc0d00c5d991db3c5076b46dae6af87e1084554854b658ad7a3065730e139fa3942c6bb3ffc6ec1dcde7beaff33c4e958d224c3fd5083eee7bbcd1d7be6cd4086c7b5a4cc77b8e4356a292911d45f4f8c11ca24418bf7b22372ca028f67a659963fc27b640058c27aed37a81760642368d434815523fdec281b4b28400abb393b4a423b4fa1b49f52f8a1bc2fd597f1f87fe05cde3e3370f3286dab680d0f07921ad26abc1a0ded817f13", + "3416c650b5b4f08b0f974fa1f66e1dec02606ecda7ee74f2f292d30dd8d98352e7664c8353dd", + "01c494b771d66c3f4b9120a0471c24485a4a27e610a6376ae0768ee456e066dd7b8f4e0a6bccb19cf3f5a192783a676577daecd523b6ba5348c9b10b6516aeeed1dc828bb3fccb4424a1c4356f44780bdc5983e1dc53c5b1a9cc693de6ca89fd7881716ddcb8a988156860e4b8328263e70a2d4d392a67b49bd8c73752df3cdfdc50cc870e925bd89216c89810b36c6c12acf3a172598248b6db94e15cc8fdf3066e706323350d011bfa80d4d3bd9200cf0ddb7583bd28c38667409a520c917553aea06eace7b1c51df9a700d2fa27b632fd98612101b22a9a5ade228f974372c946b630659db9e07715fcc0a1d869c5babd5aef716b2d6fd604f130e9996c95df1403223969fb4806061da1962ec297d0143e298b2415" + }, + { /* i=3856 cDividendBits=2711 cDivisorBits=1313 */ + "604f71e0feff11a0b111d569ee9a21fd25805772f5efa7b35d67f8f21df96f14c5b09964caf7c1c27ca2fbc0b08fdfcd53f37a69c1a911a358b226a5d3d2c1087edb0c76ee3d9c6d4edb56537df68341c41738167ac4b3228e4904683e16460acab789a7c33917ddf35ec7ceb8e568a185e0998157a3ed6e4b3ff1033e289d444d159f25fd9d3c62580ec83962edaadfcd06e9e7bfa9a4946a0e6cc2975e2bd6a7dce65f3f5ca06f28cd6856d0831e9f918fbff6096b7249adee6403e6340a92484cffafeb8d6c788d9218264921878b10a3ca7d476662eed45fe0823c83caddc0699b85e4159cf8c29cd7581dfc388a67c478ec9c47cc415bf90b8e3406866a88dd3ba565f96e6f638c289dd299cb2805479641ff474d6646451268c6dd8efa25786b5fa5c13575b1e61f5f54f57e321e86e76d238c14079be961e7ef5daf19b98cd4953d6bc4d724db4eda503b6e00797e78", + "01c13450405c621491f95f2a0ba88171eee2ac85f8e79d8813bcec134ba8dea25c1eb46ed6e3e81ee3e55c5f13c095358ec4a95cb83f31dd0fc65eca2275c500e59659ede82ccf19136f0d8eee08c50eb458884f3bf9867eb6714e620cdb1a5fe427352eaef2518d0de68f30d070c01069eb877abf071544a5887a454b5576cf8931b4b072b3f254bdf5152596374e98c0bffa7a4fc4dd2d9dbe733c080cc695aac899326d", + "36e30d6dc3869891779cf4f7e46be4abb6e5f5cb5f88934569d7a9e844d18ca95d563e34305af6238b2029acfff630d467affbc9d20441c9ed920aeb0be526d2eb42e8d68f0006810fb40ea50e1cecf696d1dbabdcfe3addbf6b9a398543215b54a00ad3d778f1ad13d2afdda71de01c3501d51280ca91f9a8afa3e758ab459759cef291a7dcdf0a4ff202ce559e5625d9cc15c7956f794d220ea596b26b9b732a51ef4af47e4cfb32ecba6c08186f", + "1dbd34ce16adb81d12c6d79f33c930c87bc84fcc1ca049c6b6251c1c5d9c98fbc312777159114b21993c7960feb8da5eb3e44b1e1ff2e785e9a18ba9a03976595fdcb8aac9e7955bc079db3644b46b79401034337543c617a4eb6ee7940014536c0da3b7a623dae1058b9568f93aaa2742554ad28caa54ef0df0ef9cb7ebdd1fad8cb0fca37564ef2660a941d6f910a0252fe22bc06083a5a16cb58a46214e5119ea6935" + }, + { /* i=3857 cDividendBits=3512 cDivisorBits=3070 */ + "a0979dd941286a7d8c72e55fae95ff5825340a578b411f959a42fffec20528e5efdd2d4d9a6a14c26f3f786d714ddf8cec297c2dcc025dffe1c8ead9cf239b9e94c549a7b25f9b44446910a441d89756c438940b3c2e22f76c235be763301beb58fc7e41501a38392923e418c53ec5f6cb264f3213a07620bae33a8617b35da543552bf982e7805b3111f13091c1fb58667015924a92cd765e5e382098b7c66033621c98d0b3568d3ab7b59197315061ab8dc1df129e961c44d09fc55ef0aebc06ad8ef4efa4ee0356b2d6492d113b9dc1a95c40fb3c5a4cbc18a58a7f84beffc15803cb91d8e87a855ca091ceea0190530fa058f79b4abfdd6a6e5155e5b0819d5f8793943c13d86136bb8e4c0f8babc3337071285868383a1001c0129e1d263e14de438d8fff63e4b16b4172af5770bee4e83f3e8693912bd72e34ae402a3291d9ec03f1deb92df0199ee4e6f855b4cd93ab6d1c1b166a98c4d067159539816cef8d4dc0caa12f73be6ebfbad918721534b90cfdfe4bc5412e55fdf6695273b7e596f96477ac75e50a1e98e3cb3dd387b44f698e370eff26898d630289933bde8c3556614682df8ee27a0965d626f38c1621675d1257", + "050eda419d76515f5bedfb6e818ff1d668058ab8f01adc647505fc2141b37368a0e4d40fb956c1752ee220c93885de7554d10cae540051ad4758da0d3074f7ad19e6ebfc17cf0ea8b366f990c53de818fbef6527511d851eb5b2bab0768db0cd415eadf9dd57814a537d76d499650edc50bf7492d38650eb00428a798343aa86ef952880de250ff4f0217e3161ffa472ce7ba490f45543add83e9c1247cdc71b15659f04cd069cbea2a619f510f3c839a84450d8545e5fc525124ad3145e45a420ab98f6b62db739b211626dd86d572df78cb6392a5a4b470f1216426f9e3018d8c6d6f61483f1ca9b7e1298530790f50de11787696866ba5cd674e588cdad652854d7292d06d7025f27e8e08ffa02886047b30ccad922be91efa91ce2ed4176f722c9d47555779606adc0b5ba7ed999e470094df67078c46faa8b53fb308a196bdcff94f08b5704505bae75dc7acb48a293090b011192545186a43a995e4f47b4d151bdf4ce757b14f895f4c5f37e94739583376bb7e247d2b8325745a567c7", + "1fc0026a06195e18858eedd4b6c812a555c452fd0fe835e7247981f12fd67ce840286d4be02ef9bf7e19ca174d5fd51959f98455d3d91147", + "04795b6f068d0f8c8c083b2090c78ea4889283a5dcf42ca6be06959d3983ccb44be85426cc2cca7778f56a568baa74c7dde33fdc16be4c152fcc831c4fa45c5a47275a40505ff7ca570484d6cecf6cfe6f273f15698ce3fd1799ff7e962631f38beda700cba61e993219f9d0938e76cfbb4e46f8d9ff2063553ed0aef6c105c4dd0e9e3167cca905662721e06d73ce4d3ca30860ff578b7dd934d9d3d91d3a3bd00e411f6e76a5b944c04cc4800d5eee527c963cb062abbe44fc227b66bd8015e9d2e54b58bef2239739b84ce9360e257e28666ec3e578d77b7fe1d2393ee369dace53036b1b3724e7f1166dd3b12a87b0183eb14e1a4e22ec24027a56e7e18e8d3e7551af59bcd079338e8338102e2c57084f273ee722717f82d0d17f35ccfcf471378ecd0427cd1b2430a738a5e9adfab24999b38c23780b3ab52277593e9ca7c9545185bb5648173178bac8bf5046a67eba670a0772634fa755b2352efe14aa8d88a38faf56953157f802653e37f9b8614f78e840345423bfe57c1dea1326" + }, + { /* i=3858 cDividendBits=340 cDivisorBits=227 */ + "0b9e83feee6cb291ce2f353bc9b47fe3249f55b388397e91f671fddd1d7cdbff8f4e695471495e1802009d", + "0248c1a2d6ba9fc0c6661b1a8a0fe8320498dea9d3e91108fdb00e5584", + "051635ecb159c8c2c4b487ca8926ac", + "01f4a704fef7667470ddc4b47a15df93f5c94b1bc0cc3b2707c20af3ed" + }, + { /* i=3859 cDividendBits=800 cDivisorBits=445 */ + "c90bfe66485087333d51bd8755e5e2c0e2651c29cdab12c55febf3e4151dcbaf5a0d4acfa4105e5b8519db696378c20f9b8503394c11567be18d3326ff09df18182faf4ee39aa74af59d2b6332e9f8a7a659a49c9b77d35e82e4bd60fbe99ca98d570d2c", + "14e7d0bdb64f2551c621e553586978deb0ddbdfea22eefb71e6d5259de60d3bc547e7ba7b7c885b82f08c575913697b9f08d752932651dfe", + "099deea19b2d8386f2084473234b67ef854e59b8efbf9266b0ec83855ad34bfa2a6095ee3d6b6702ee06c84224", + "098eb3f85a8ab2b9197899abd812dbe159f0b80b38ac6d8411160df50ae32d3e32cb696ee8278675e4fb2a1f4c5125845102e80902f35974" + }, + { /* i=3860 cDividendBits=2612 cDivisorBits=646 */ + "069cd30581a804bb04ada6c84226689cff19e5852b4bb80a491eec6def34e83e1a76b242fb0898495c015bbdf4c88985b70f110788ace665be472a8841462a456091652dff86881d5e419ca1d7e958f23b44f576c00feb8c06521b4eef2453f15c0dc1a79cc6f12163a98c49a21ec901888c14586723f31fede995ac33286fd47a674c42d7120d98b3c5d2a5583aad8971c39622a74581cf7a637eef46ad906942410c5935961f5179c9d11a53058abb243fd855ca8342ecddf24ab5f5058bd36c7191c1fe7690acd2151ae6c31859af3c3ff6c267329fee88e95c959f6277050b65e0a0149dc47dbfe189b3a5ab8cb6a917df0fca8abcb8d0b13466e8a5efe780116816fb119912b966caa3d67f6c55a508908e90806a20c9acde4067bc4ba3602cc7c358af5f7ebd76a3a1b015b3a7506d901681f90f8975f4eb1dfb692523bb514862607c4c", + "1b80d8f8bdf0807daf7e833cf7683eb8c31d798ed33ec672e9cbc0d7e83fec981a060276438d6f378e873d71988300b819094c20eabdbb73131069de004824b880a25d744f419a3c09a1ff81ee80640365", + "3d8cc224a5e6a8256fe9933b32d7da041e47dc5d48a6151f16d8044072739509e970bfe6f213247acc4e2381ece4bbfdddfc8c0fffba8df17069a463cc562e7dfd8cca1e3e0465b3ed8f661f893e190c707482b4631c66625871da6b244c901330379af417a81248bd91cdc8415864b07dcc3d9b82cf3f21afbfd0bb98449aa11a9588412f8f1eb2cb67c5399959a4be455e9c0179ab5ea2d572a089adb5ac82b79075f2ab60609bb6ad51df55d78183b7577b59577d0e7554a425f169f188bffe51a0effe9459b13db07bb20792996f96f87b64dc072a2e977c10bcb4f24bb117db0913124d83f45899d5ec7cfece15fe16ae5a3025", + "0e56171b8b00be46b4dc70a19371380606127e9c67229dd0d755aaf0eefaf33d8b503fabd439d2223fbed99b2d8c6aca8d3183800e9566b1d28754258c5650fb74b26004d80e333435371433973bc70eb3" + }, + { /* i=3861 cDividendBits=3303 cDivisorBits=2906 */ + "659f75dee31aa9d23ceb89006940d270a65d4dde3f341bc426a8c3d0d3f09ee1dbef8aebc59bbb153514b4900585207e05f2895b577db36e4c6bb19af1d5a6c70e9cb10c0d97ed9a65c59754686aa3831a90b14dca42162d5e4899342b3c9b3c1f237295e31d94799fac54975c651f95af608e2b294b5265ac1dfbfe93e73a67b5fcbd796f52e6a71226bc04b8430e300e2a8dfe33f9276817441e3ca656e8cda2e654e5381bc4bcd193215e1cf096417cbd1b32be2962253b9e979310e87374971a737de5255e956b77d91f00da3354f761baf90b7d2fe2e5dd9acfa92f0284032cfe6c8fd4298a43b02902e3883720e0909a8de9ab28d4e609e450e19828cbf25bdeaab4162e6293c3768a6a589aed2d9c7529eae41db6f0eb3695e365eae69488bc666c7c3b761d799d30a75bc175e7257c712abd7a7243c5bcd47e89e06be01cb70c4f70a99a0919e4e293eb1f0466d29e296b6191abed0d1b4be2fe31dcbce5c5b635fd1febdb51b6dddd61b5329a14daf0a5eeda3da91a724d21bd9d4be19750acf7fee9e5b5ca419e59ce1f21609d2e748f4ffd0877e313f742", + "01421cec8f298202ff1100cb26a64afc6fe7bd6a3ee408a8fedd26d28c2b56f3bd77e462affdbda978e8268b8799c339240ad8946b760b9a23ca984e1de52181060ff372d6d5c7d189970f61ca96ae098db353d062d1dc1feb67b921071446b6f3f35e87332a28aef22de380137af8c66d761880b8dcc07926d594bd0a0248030be87342a8d4aa6c54a05790ac529b1130bab0eb79edc38b77d2c0134e1c1ce2ab062506854f67f657ca603d35822e182978d1084cae5c81af0b907208ad5de3bf49d5cd83164186e04335982dbb285899fe017ad8082808d3100a15aab63e5c8c022b48bed9552a6e99203038b7ce52492bd50651bf35b51d3292dbb37552fde72d52fbe001b2cb71e80833abe51302da112044c03353b0b8513af962bd49d4d55c46ae112f2399582358fbe0038541ab2f02d1d25217b97bd61e670cc61e628ada695eaf8d16c3f47d3b45550c25dc17c7dab2146d6272acb51ffd47d977e4d4a6124a650886bdb3ac9970", + "50c3d81aaa8371f785dd8fb546c2eba130fdbc989ad20658d14ca778801ad00944475156e98691856158f52cb57150799013", + "e972955523e5392def2b1bd7639306a3ed0ffed8675788f67789c516dd129f34ef109777676db4ea1b85dcfdf345037e022a77b30adfe5e5b81b9af5f89791719e390f7d2437de7f1a232474500f2ce50a4877098a7e15fdb7621dd032824e5efab3fdaada52f181a7fa4c3bbcd3883951ee315808a8f81e513d0b531bf3ef25657adbe3cc7ba450c26531443a3af1e94b2c341775a8e3062ef34bf7f93a22743839d517529b0ddcec09892948e27efa48ee8f3704987f6e1efe82f25d5ff82a1b96120a4af6f96fbb550b299c330eaa016737fcecdbdbeb70267d5b0d5ef93a4ff0f4df264bc2d14c613f05dd8b6818fedfe1a2c0efcc8014adafde314441306331dcaf25d3894d4ad6338686f3417e325b52be789a266e7665dee851edf52c1a2440d5aea0cfa4fe3762add23518dfc2500979ab507fb6cc53b41fba525c03c57e2085634d98d470fc4a89cb2ed5d640bda48fc6e70212ea6673cf485a62df95fc4a25d48c5af10593f2" + }, + { /* i=3862 cDividendBits=1425 cDivisorBits=519 */ + "f95f5461444d3b98dfb927b14f12be609d6dd3d72ad2df5122c772dc8dd9b02784de3578baa421cf6ccc3dad113f00a980fb5a0ed782629c538b5715cc7f1ce1c88005fb19f7176b6c75e50c8905de2be3acd32e09c2ee017ac4203913dcfc42ce65ff267b8c13ba56ac3b81619e652c4e66c05c913afd1ce49a624b4f975ad7bc8e50f5319a9064543dd4479b4bf860301897663b205c0ad4ffcd1ae1967675773948143455de62a655087e11fb9924339a", + "3e8bf82581c9c9bef7d4a2d471a03cf4828448b73e06c5101b7aa3ad2763f74fca567d310da37587e1ac554b96e3ca89dace4257b85654ec1119cf62c6798841a2", + "03fcaa6d5ff43baf3a9348788ce21337a58739b4505b0b972e50c2cc74d2491127e21856908223eb43a85dcc9784c097dbba030b6507ae02001877900ad2d2203bca16de022b02f7bbbf6ea06adac2d23912f00a1b8ef533aaa1f5a1d50546283bf25c8588080b6a5611494798d544e807b2", + "1c22240e14421d8d6acaf8560d5d642c31200524a6b25951577b5b4b817aac2b7cedc6427353a3622adc453e4661a27550adfdfc97757431fec32cd5f3dbcb22f6" + }, + { /* i=3863 cDividendBits=1276 cDivisorBits=899 */ + "09c0182a6e7d18ce35e0a010eab501e8fe18c292fc2713e75ee1b188c0c6b3d78d017c1afec24e480c71e5ce1968376092ba5a35bce54fbc95643099132ab0e3869cb2bf5b93ce3bd11173709feaeb3409b81cc2b098e33aa7aeed4c96f844ca9a955ef999fa08fcf6ece6ca21eefcc6d573e857ed21ed8951f1bc7dc7bc03c9387c090d31b0507d199cfca1403f777a69020ae8325351677e4dc64e61a2261d", + "05a7622debe8d70cd3e97e637d367d0106d00662871638a985029caccba32a3db48bf9fe1f7d41cfca13b100aa548b5a2462d0c72b92562ef57650773558fa7ad0004f80ea593dea435e50337422aa60fcd5f8b581a2c4aaf6a01ee451979de04578b07725dd08d2059eedc1b0be9ba014", + "01b97c8606fadf0e88b14da5b72257a11c260195c2833f969b25ac21472c02fa69ed2cf41938dee40bca46ecf5edf300", + "86a03d2a73447ead92658e1d14a9dbe1be96d45604d52ddceb304f9be59a74e916d30753870eb52f6b0bf4b9988f9fc4073aba2129a688d08e9a57565ab6e7e0b6f89307845bff4fd9d569cedb74d4020f7a4c16a2baa70d78b009a18ece40f50c2493ec5f126b85e76290aa522b2a1d" + }, + { /* i=3864 cDividendBits=2445 cDivisorBits=2111 */ + "194e3d77d83c4dc4efddfc118b98b3b32c0c25dd7f4e18752e8fecd0a94c3ad977022429fed26154b525b4594affac80cafc5e6bec4fc8b4801cc17b3b2931f5f313dd23ddceea6595e46b2653456bc3aca29d3ac4ecfea602c97a4631c40f6caef49e374c32ea6579da6c9312379f12ba0d40b6265fb0fadf1b8cc957df39ad4b7413cae02ffb22a0f9d860495d37ad8140df834028e3692d9b521ce2541019bc670fb0886c4450f899fe90c7fda12e5ec85165a983b892ba091333a8588081298c9b42e628c8532e23c5ff2536ef6e02192f7fb26252b4848cdf71116cac6dc4af2e309f6b9a31d3cc0cc8ce9a714e6559ba5595c41df0ff28c813c1b0688b999dbaa4e2b50db395761530829517a4b444037a2df806ffa0c9ca8789617c4e413f6fbaa9313ae70c7b03b2fcb6c5662e", + "7f96a66ff44dcc18e5feeb67076755706cdb137472d4612e126cd3b0b83bdc58180151f4065efa77c24e7338fe773d2af4b39c794ff8dd5115b951068841118c5bdcab261fc79f9d6a81488c9d4b7c946351c1522a21ffd86032a3a92798ea40802c86020822eb687c05507d6f66c3dfb130fae4a26290be4ed09560953c04a770cb41be4c43d09755769a294059e1fe80ec7748ac6d90559f5a97fd92a76849a37f35d619460dbe86ce005de9b9bf273af3bcb016146a829cb28230ddee54ccdb4332c583c6685b4fd30270b5112673f8abe8ef96e0942cf5596a7526bab1661c66fdf143c5c9f84e00a70d8605d41001979e6913895942ed54b1e74fa7a4918dbb80e9dc5592f9", + "32c6451b60ac6b3d9cdbb56a7d9e8321fc784cd5ff5dcedf3ac9fd8d15f42bd15b297fe627fbce1396", + "38b0fa21fcd7c9972999c76d6c153b5a16f775d0189dc204740638bf79ba0b18f96584bcdc3f6b4909d32db80a49eec9bad765de228e529a11e14ad76c3827d456c2ea15b3ea273a696de849a103f916b410fcf4a5c7086bb9cec839f81121817aa512b0f8def5be1bc8f7cf31035319d429e25b9d690a12a98a8156b42c62d0cb8391eefcfff881f539e846d7dc19dad8675b0b1229535ab9f74bcb84abf26cd76ce483a8c474f9a50f51cf1253179acbfbda26ffae9e37f1ae25d5ba0437bb95bd47669c6919a103b260c5d156aefafb8a1430ee40ed08ec4187f614db5e7c9e699aefe8bd5c68b3987a071b3e8ee7eb0e678e14d15bc745d625e347c67de13fc180b5db5acd48" + }, + { /* i=3865 cDividendBits=3018 cDivisorBits=359 */ + "0103408848429b55fa96c13cc18f12bb0c3338047c5fb31cddbeb22544f70f90ea1a0ab5693a1166861d00ca592cccc4a69a07e74be086cdfa24f88f49ba00ada977abbdaedb7b67a47938930a1269e0072f2af3addf7e051cb5dc3a7c4a68d380a5643caea6b51cf4849b6553fe027973a23a4701db4e996bed3ddd8817cc9b34fd6d6797b0898abbc2d340fe5a79d7db94b724bd3137390753e897d51da992318a97c74a72b58ebf4e04d79ca13eaca6afcca35dc74470c4d46bb8b48625be6b25d0dca2f201b90fb67149899202f6ad6067130c4b5ed0a0ef18b1b4ec0110ee177b207bc39d37c6527ae2006b12fb4f208b27e70df5cd39d84e3dbbb00f4d18b5dfa08281bd25106ebdcbd38d5bfaa09e10ccb0814c949a383bde8e5c636b53db2fb1d393a9c2ddbe97b5856d4631f34da426e9c8e46ea3b92a48134a012af8dd7409f10164965f5d58d94d01d0122788f69a1961b7cb3b8a3d229039cf79a7837e36d17a4fbbcb349686982b3fe68aaf7d42cd48fb34e8c1", + "15af488e231005dffb928d718ed609c169633ae107b096576fec21f3894dae1fe2456b13d4e876911fc20b8e18", + "0bf49d93d60d77aee179d85c151107a41f0d821ae37c69660d661af0f86dacc24b2d683bcc6ce62fe9a2236e14a36526eeaab20d2fbc60beb792539243b1176885d3e88fe0f01963f112998ada6a7eaa9ce727e7fcf290693707b63a7235137f48e36665932f42df0ed2ceda17fdfd8d51abfa05e46d611daaa73c44e84455d6dedbdc4ca238511ee6a3e20dae669e3e66d79bb7038f79c7fc345cb9e3c8b0cd741ad14310e3de298f8094a55c9544ce7f7397e52d7c9ea69f157e4d4a3f11860f218295e64937cb34110b7b7af140122bb25e7d92bc6c17da81f6d7eaeefdb9782368eae6f89a086870ecf47de9185a2c87623925ae151cd9040e3fc1ab38165cab191007de2c91739547ec13b3b0f473811d9aa6cbcf8500267dc1003a14936f288e434d01e8368e03b05f63525d74c5e5830a2aca6e023e4c1b85dd0b768d958e0840b2035faf602515559e", + "157196baa3e56b21ce5cc88e22bb60f76fbf36a1c6af16ba1d964ca0a32b08bda07021543279df68c541ed3df1" + }, + { /* i=3866 cDividendBits=3147 cDivisorBits=1761 */ + "045e357d4f48011d39684dc14caad7650b21b68017cdb32f62db2d9cb1d6231b3e962468675567b855fd74c5e3df520ab9992c438441a2ae6ed9f05c15a277c0d944ec7aa9f3b6cc54bb73f985a839fb09dfa8e2f917a9ce5526cad81c8449ce611b72eff1cf418ffc62f1b4def81ba41964676a846413b0b51f3177d8f15e7d41ec2d8bf9473592f7114e888bddcd2cd55ec73b28414f85dd4c9fb6471825c757c15141235d90449d81a4e9eb2968d5ca54a1cde48cf0dc60844b10ab18f609bff2a473f3429e750e1f7ee178ced3e1ac2374e657ed273340cccf3aa8d2996f3f272c1c5fb3685959c4b33baababee3cd204042989b94c38af8c8819988cef1dc37c621a6217132b0030361a10acfa0257ba590996e6c7b093728dcbc84626e8648599942a7c9a41cd107be381561d891fca42d5bf8cf5bc1d83bc846bf3d78dc0d2fb2a54c0a1ff8e5878943fa23e46aca1177d4ae012e1e040dc282b6718b2fe7a8fa48dadda77ba52942eddf6e5144c30904c864ebfa695ad22d19a596ad302b583894dbeb994e0b", + "e6de855579c0f824b17fcb113afd07112e500eb0d0e7f79fb633062259ed38b74da575f06d7c0e0e7af4ae46130e38844f72f08d5095163f5aefdae7e34f5b5ce85c64b38c99b95f2d5d89db334f9c28703c17ba8660b45129fcb0fb545f0ef9b0e30bfc949e2907a0e78b15ac4eb5522d5333483ef8ca222f8935b40fcfed8ba213b2d0b73b56f7e3af010c998114fa34f7ae704518f452847cfa964f2775e5f10713d2346a449baf1bc824cd293d364bc16ec759d2e3702b099c78db5e9886ec30551e73431be8fe75209aa1728e380cfcb3cf77bb61eeb6249ace", + "04d7eddff9d83fd2d73b349ccfc00ab1407ff5f4e0939f154fa9414092e66a7b83b3c5e844806a7708db58521cd70cb68c12d200ab2548a7a1b48c558efc43c2fc054613511df339e4d53508ea4ad0b9341b712821e810d28af3b7bdded13930f1b479785d1a81316e74b7bb6b7a37a1c49e0084756dae1268c98eb3456ae981e53fa59cbc8b547c91d2f1eb5893af8e61b11cce0c5e67aab529f608129eca06cb77cb2927fdfd99f0120b7cbebd", + "50b937d84b583b6243d1dbfd5a94a0ca051dc41f980e4eeb028635d4002da296bd19c4c323b9ebad43fd77bbacc7337125b2730eac7d3012a924cdd775229a5ee32d1ab75cc7273489b423e73f301fefff6a8dd106201f2d753fdc60c9160015d48ec8e9064056e6b5a9fff6224edb76f981e4cdd14fea46678279540db2539c6435a90591f75e539201acb2fd9c60a4884a15e27131b07c2071a4f967e94a74a763b8c17f93964bd6af6419d7b2f0bbb8d67f9dffa22ec94717ea1c594f27a4e0632480c58426a23a74556e444ecdd92c9b532af3ec4d9271e61ff5" + }, + { /* i=3867 cDividendBits=2738 cDivisorBits=1124 */ + "577152f59198ab620e279d08050571a6d2612f7588261cb6070ef73bb11b017d73c3fb81e1c9e6cabb7965168bf870c45377e0bd1e1d8802bf576acd237f69275cdb025c69b0fdc62bd999cc4fec08f7a22be6c646a21afc7a7b2b72891697aca7885909b0faed4aa3c33396663e04514e3edcfc78ffbd061a32918630d1e103ee0fbbf822db5a69bd694bc6e90b0f6095c93be4f1511d8ae3de368519d00312fbc103079b7476dfaf9b02bce08e68623e58b1a84cc5f7c536e49d5a2a14227f231026814a8a5377b53ee4d9ca53eadcfa6c64d104554bacd5ee981f415fa518de289b99511b66a4b77a73935a715cd45ef6b185e1e592ead142048c22debac700667dd93e0914047549085395452dcc1aa1cb39ea8b114e40dea5d1d7d1148bde397869eeaa3fc79d443811173a09ca7eef0e48954cb3c8ea58c6378d23fa6f7b60def167d6a1742d4e0711512da432fdf895e0f40e", + "048345a8009588195d0952db35c466043acc286f5135fcb9d698dbe94753f54abc0d514435763778ea4b0c66bc382fec4f3deb2d01a8b18e8f91585262a85471ee2b1f0363629bd290e845b9e455bb73e55ea684cc4bca7ae951d1384434fa4fcbb7f96453723c9e16fac0f21b356454f4608cb77e0b150955d4c48ff42476080a52aecd9e4df81389d1570c02", + "13606d53bb80f18c8923826601641f60c8cdc591c8ab90562ad25a752b9ad6c697a839543586b3b83e88d3f11d47688ff0553285870c2a359a509335f9fc8859450380b89e8b6b09946ecc815a03c958a07e0565a243fd6c9423e74a0cc8b75d4c39904a928c24605a9290e2457192b0ef1228bf03564baeef3abba1f1c4f377758113db3d2e8e9bccff21eef98f81c9171da3bebd5818be819054df01684fca0c8f9c8b73d598602ba251f0eef4a64e27a773cd468ef220faf9174eb07bda997c3dae2e3aab5b82fe57", + "0261183c85f449106511fc87ec8ca2267c25a7074a6c971a508f80fe9fe991308424cb3ad32bb10a9f0152c2eb4200add373994a26fdbbebaf3927981206de40d12768a29a92d0ef7d5984b389c05aa9c3bde82ff3e8ec0576f5dd1625ed91a2f9af369eab3e6e522bba0c3064158211c764f58d282364df31a9558006f50b7230689bb55505e1e39f445de360" + }, + { /* i=3868 cDividendBits=1483 cDivisorBits=580 */ + "07da9dd820045f94b9398deab1ffc84a72eac8be51065c6f38dc71da1ea58971b44b82f9eab8ed0ea23c9184c95a0593f9cd6f031154b580e2e37ea33e61b0621d0f3824639d0e6bfa94526e972a152f02a96eac25145edb300d5c77d2129477bfe742229402ea9c0a1f6b205be0a1a1bbc7fa958680ad1c4084e4b640dc097d6183dddef3ba7af2e0123f8c189574f3ced72c7c2e91b5ad48f778c90f0c8cfa0f4de837337b9c916fe33b5c9b43632603a60368b98681ec8a4f", + "0e53fceeb219033fc547cc2e0da32c2dfd2b6a710ce9120caea3dc34123ec92b66784f6a53d490e83d25e933fc522b26d45047b21329151ae78d8f879563fb3eb8be24df70ded9e338", + "8c53b7e0228c4778d1d3b36494cc7d0f9aa90c42f43f897c83c03270c0cbff0a053ae48169291fe71a42787ec5633cda88252cfe28d2b097cc5c125dceba8c645329d79a7cb501de67a9283d17333a7f2a489d2309595f098700cb499b41a8d9d0aedde8a683f42d1b65412e5696e35091", + "0391df350deae1c2e6b4c4c8a62589493fb065ee73c87dd5b86e65a853d1738aac32c31a227821b7be44fc122e5ff3865ac63048401060628473b7c4c99599d922b9cb39cce6d95797" + }, + { /* i=3869 cDividendBits=69 cDivisorBits=36 */ + "11c78e7ed4c534c200", + "0e1753d333", + "014302407c", + "0b8467b54c" + }, + { /* i=3870 cDividendBits=885 cDivisorBits=454 */ + "0f3df1eb42da7d239fd48fbbb965b978385a5c9e46c0e683aa52ed4f935a466717fc7b94acbb80838e68758cbc87a4bfed1487e0ccea4b124cb595099b0c825aa6741c9c898aaec5eef681c4bcaf199c215c974eda53b5fc56d0de80c23c617a859440d0b125441e8702be45f35348", + "06e082ce14661a973d2e19ee63ae8b2728d92aaf7f46182c65d1aae0db568db49351017a5dd1e908cd366efdac719815cdd992ba6eed9eb9f7", + "02376412dd50686d574fea31b7e32bce9093b2119b913809f815455d9d964f5e3af9fbf9055804b137fa035db3f587e2b0bf6c19487c68", + "05c6a01f7e2103daf38ae8c17a3b1ee9d698a7042ebb3e61f9cfba5a201b06afbfc58d077233b0045bf8b89f4b6dc8b324d0b078936eec22f0" + }, + { /* i=3871 cDividendBits=3521 cDivisorBits=93 */ + "01ae0f1169ff19ca7511890fbe5cc498b683d27f8a8519e3dd8aeca42be88ad49f46e1288d97bb6de7c0469512dd817234cd8c995ac1ded05f79d728ba547d84f41ca500db87042e397f90a7094fa7f5976830997c0c7909f3592031582797b1b66e0779dae4b2f8810157728dd80e6dc23aef357e15433c183654184b2ecd5b860eb484227b46bdcd1e165238002a09392f3fa69118357fc5d8fed898fd7dae45f17a15cf99b22fa4288faa9b5da72edd764d3417d05a2440de459278fff5462f51bad469ca45f87fcbbfaf94db60a9ff36e0478f491d40b94229e5bbfb4bd991e2afc5113176d5500672068406388760ee5e5de12be2078f3e294e0e94903ce65b16fc9b409088a20cd760e017c31c741f8590afd43f7b6762bed0f2a06818ed1c1cf5001aa92487415c5e27cb827259649db191616a7f82a71bc0009766e5d02a8ab43918e943f5fd87263f732fbc53d45a00fc0ece8633d1093802ea033215361d029e5dba38096bb5a06834f9130fa7186f5fa476b90e80266630d13fd45c5f17f96648f80961b976d02192972d0ad196db662efc89b99089aad36d52878d96e3ea61865241acd1a1adefc9c0763bf84ef62889860af8", + "1bd6d6fc30016a7165cd153d", + "0f72ace1cff3faa0bbd4eb11282722de3ee7d55a228253c77b31f93d06d7b4365cec30b04873a332c6fa575400a412baee86a8a746594fca4dc293f3206ac90845a922597be744188404fe6e2dad36aebf1369448b9b64aabc056ce256e2754041cceabf691ef3d1a4a6f2d4f07770560dad567dbbee4da3b2c532594842c6571dcf17b32071ad6bf923fe60935bf18d17dfb59d70df7d5dce87b824c970cccf601e7b4c0af223c429c08a8a5a01d6220283339f774d17384bdfcb8b80c8c24751cc28e7e8b85581d60cf014630efbd5ff50b2eb40e444963dc83c54e5e889461d7a22dde0c6844047458c06792b1c20815f0232d2aaae9f38815d1ade620c8c25799c27d9697c971d2eee7f21ce88a4b1a2365ea14f24d7887462284443269c6ec0080757c864ff90524987deac07adcd72ebd402ad12fb37822f1ed169d9e86b1cddf2f5c1b26d6d7a4859306cc9d5a57a38c6ac21eb169dd15f7e51ab82b1187cd4c1d468579ed880ed844f67078c0e606b0ed5699e324e83754332a5018efa19878670074a8baa3ba0b5bdae9ef514acc95d29b362e94f666cbfb1f3aeb34693e1849e59c4ac8f78d69a0f", + "08dceab60c266dcedabd1a65" + }, + { /* i=3872 cDividendBits=762 cDivisorBits=252 */ + "037e6608f21973476835dd649c42080c61d069a07489a2f21280772e8cfca4beec3187ddaccc1ba7110306d73b655ef753dce84c7a5bcea665ced2dec1ab998e4c0ee25115d3aa15df7244f7565980ec271f49f30158d943276e7311ab9ca23e", + "093de5819be62708b3facde9148a5482e84cb51d00debfccc42fa3842357cc4e", + "60c717b09e4060e79d484f2d02ee13998246d785164918602abf2ba91779813c38f6802ead4bda8b7d417c41518d0b7f8ba0b00f94c359802cf8f2418db317ac", + "072d8f21aa6f7c173762b94decaccad1b57e385fa421248ea6e3096438ba5bd6" + }, + { /* i=3873 cDividendBits=2585 cDivisorBits=671 */ + "c49e165b539f62492224027ccd9a8cdeb6b26df55b4f452a8417f9f81ca4b7aeb1ea4125d5ddd2ef1a6a4f185fea559c2576973e88226365ba512f094611f34ecf61d5c6b99b78143182038677a10132c422c0620ae93b588c380e1ea3641aa213236deda8b25c59009bcc6a5b4df37fea5c8d86baae26257811418a096df1115a3ebea6becc63fe7eb71d9461773ff4178d680e051da93c238714fccd4e63dc6d3996f597352fc0b6581c7c35fa33bd9698abd4b836c2c173d96209acda8c9125ef6d08439e7f414179f2b293e555787f91504b21beb833fc9cd98af8d011a5cd2a763eae895b28f5bdd15186669087632c8b3433c95eb143ece13a316e70ac5a7e1758aaf04c52610afa5f93b95f920b6dce5dd839366069d30ef3ea951f8466b0060c136b1089410147192f0347a9fe0ab5078066048d5a4b18419a20a3071a8cc5", + "6674de95e76af4a77a52de448d5482e207ffd906d7143bfd1117aa5a5dcd40810a0c2c130cfdc14b3a377952422d8176f41075d50a9771e0dc3604a296a29752039bdcb8f809a7803c3a80ce524dbf9aa8a89bd8", + "01eb45ccbf9f68580d71cfff1d0aa0b4b12966e635669430275ae52d74965559d35a5fa2740a753145fb06de9ad65e93a209f71e74b5eab7787fce5fda335fd3e0ceca971263c4a3ff19dde2c5dfbe691938a8f42d8e8fa86504cc1f284a3ac430ea6ca28a0e68695502f5b18c05aaa80f17b555cfbbea7df7dfbde26a4355a71e1154288bfeb4acf9e16d36aa4ba6d75a39f0016923468d55d29b8ec15c351c6ea9a1f7fbb3f1ca6f108f12464d0a661852b559b1484ecc211184d5129ee4ddedc27d092fa98671e08915a452f91928c0088b1986c599b06c61cde6f2bb878759b493a28d47a80ae75dd3a28b6b5b45", + "27252396a52ce0770604a140341008168ce69cf60b090b6eb74f95111d1c36fc4946f88c56b31a4585d086f07837ceb20aa1efbcc672ee9191c85d46af7c4ee8e99617e80706d61be79ca58027b3d03836fac38d" + }, + { /* i=3874 cDividendBits=4091 cDivisorBits=1991 */ + "05210cce302ea02f0f8dcb45696e56d41e791566ba0a39b3b1326b2d6ce5175dc2df1e9e75023c2ba4f0df65d6777faa33544259a26c9c0c527b9b2c122ab841f324c1375436bf2b662cbbd3aeccc71e79481c06f2679cef146b07cc4e32dd88a9a59e2a8cc58e4287f3f5b7a9343fec48511485b109a0f83665c4bc97f0a855772612dd180320de062259a280a3182155fc87cba7008f5e13bc1aca399461e6cebb6e2b2123c88e42623443190f3020b7e18c18d69bb519b94ec820a9bddc905daca10388a4edf8e3773432743b783305904daa48812f18cd516bffb639757c80de4901605fdd4adad8c218ed619a1d2f222e32cb74e9db89be8ed2dfbfa33049fc4b87b34d0c4564595d06bb51e0ae99954063186cde0cf37b848ad7112a50911e84275ae56cf7a26a91040b179adef52422310a2fee574868b8af2d581fd68bd5ca77a877dd15e5fd83d3cdb0f9f454dc83e608e1a184b251eca134634a9cbc35bb44204bfb2acbdcae2c4d1f334d0f81d4fec57cd22301e1173c7d98aef6798e6688eb58df09a2f3c8fb7f67ff1459196832f952ef5d00c0d2ae156f29e989f5425624b6fe9c47460049336317c33a2b82660aa0ee31c278d4755cf22974c237f487c9ecd1c90b20206942e4758a734de81e075838652139d4beafb79279749bfd53f29517232b1659af9c92b69f9bf1163bbd3fd110bedeef8156c0570a", + "46568ee30e8bb74323f4c8674e46d681c8189d7020836d1e05428de5e5b3cd5ff990c6698d384ab88dfb845d2014207bf43b034155980c8633b4556120dd7f66ced8e8ab4e09f3167c9cf4186b23dba2bf232a628e0a1466fb132243e00f8f546d6020f682ca74f6ae26475e6b3e17da7eb0b24624473d710827bef09fb0a741ffcd2042c4e24624bd6985cea42cd0915be532f930d5c640e25c43fc1a8ac22b6d09265e81b55f730dfe1e7a0f3411fec63ca0d34ed2717b22b3b696ab4f8dba8cc9bd78bd12cd2efcee51988fd9ffc73e5a0bad9eee45142ec772c1792ca619079e3ff8cdf0d6e975aa809233e16e5d82f4b54f331016b290", + "12aaed95f676a2ab1453d1dcd222f30bb7f38e242e64ec98f33e07d49cb1a8c90490c13c33977a9f960a16b7a58d37c3236e3b4576a577b222d6f49c75337475d83192f17b5e6b6846848e5e3fe4ffe6e998ba269ca9cc80781f4c577ac70fc5d07a39af8a7c74eaf42579508366e8c77607a7fa2c64ec962e44bcda9f5b9512b03e60c11864fe00677bf8164e017fd67a0eb29c761dd85a9a1f86eaf40aebbd1d6a60007f9509ffa0acea0da7d1194ad1917bc93fc145b2bf3bf06cd091ca1e0c5b90d6d09a9b17e65b81db42916b99c91cf6a842d6f0953ba357426d6ed2d0e0c4cdc9599b0218df6db3b3f1a36a3ab83c565c65a3f470f1ead9ca532810969f737cd6479ca1", + "43f0372576c32159546c2b1bdc1d88ba99f01e48e4c6ba00712cd5fa0f60419b54f50f7c4e96120e1fba70876373cad473ccf135eaf01d3da045c2173f829b1c44938186f1ac347bd8f4fad529b0d894db561207b9686a4d1c83c785bcb42a46738304804ac68bb3e3c008d94d8b53f1f8430bc5efe4a5cc89b50e1fa833573cb54e53a1eea53ab6d9cec689f6a23a24687e419e5843c8047e2ccf0b8375e8bce9bdddfb8c64f00d32982562a0ae114e38d02efee6bf7d73c56174a31456ad5fc151bc43416617781ce85ef602aacb5554aaa2b006925d2ee6d101c79b03311f2402bf7111805524af73fe5c0e256d8569715365467dba4a7a" + }, + { /* i=3875 cDividendBits=906 cDivisorBits=713 */ + "ecbc952a4682c51db29816219beec348cc3b5fce31d75910d71c0435e984757eeb6d18a3cea51a5bf8509cd627be7329aeee1db538bd8ff6066d7d63255b5bc408c13137e52c5a3a13381d95bbf9ce3b4bec3bf1ba9d0e050b899a6ef89eb6f05b63debec90a922f7bb97457c71e8184d8", + "01df51bca0e362461f8ac06f6ecb61798ed03ed346c426ed6d2358a307756df75075f37f5e4354434e93eb107fd6d577104bff4f7099312b588d7d0c752535f2b0e29bcb2f9fb04c3ceea804a62524a3a1064ac55a3cf56a40ef", + "7e7058f5ee479f641c7004f7794f39736269d87d25a682e6", + "68f1ce6ce368d06855ecfac125f08da1b2cd395b9190d75b159ad52da8077920b4c19f3c8011d7dfdf42748d6bd4ad5fd3cd6b3da2f07712dd0ea2320e3c97c7845d09d639306d582861539aad6d82193665a075670617d01e" + }, + { /* i=3876 cDividendBits=2167 cDivisorBits=855 */ + "145bc9696d990828cee04f947310fc2e6c396a528f1e29457ccec1abb79538c72c6178650d95382d685a260e89cb0173a72404d94d0baf42046ab02ef822894847d91b75edb3c20374702c063c397f234e7a9a921174d6999f53aa1b303a9287456b59cf12c03b6631eacc71d8edda7116aa7b9966626545986b15fbafa4fa0f57aead48d6cba8f61cc0e87f30d41f8cef02fed9deaa8da30d9cc21f69ac4cb8a804504a34cc8e9ec1d671fc404dd9f0a05c7a9e1177cd2ed0cf05448dc714562404b08d8dd123f3994bd7673ec2388f9c2a3b2d265293c9ed9cb9c36bb582aed3eba53e530f55b84d07671cf775499c142abe519df17846671103af19ffc6a57ec5f4a48d2ac32ce6388971d3a075", + "4889d82492405078a3c272a5f98859b3b5f399aaad38ac1c5a0e736fdb5ac63c35e1295e1cd1c36ffe3fca91d0a56c7a9241dadcf1df007e460f61f5b6191448874d46cd4ba406206cb27e0d145bf20cd0693cf74e10dc55f6ed4a2a42a693769648e38b5edf8f78d1f641", + "47d93e304d16833f9ec6f04ee964674108e84c480efb3673d39d4e55f1457655c4f0e64397fd2b378317e2586c4ba385028717bd323fbb5c9aa2466ea52a51f8f24f58dcc85e903069918dc850051e5a5acf3f7e347bc8419e2df32239c701d9b7dc8f9ae64f246c4e5d4f09686ca965a1c846f5c64f2547ea72e70a63473b275205c4f7a58fcd75361eee96fa355ec4bd1e0dbf21036c39560b92fce415b35d8f9a212d", + "2554ed47edd369fdca0abf69cdd557f72d200959a23cef50ec3a63aa1f33461050737c9247d18100d8c8ed39f5707271d00245e31f5cd71af722bb303ad3d0fbf79cc263d666e3285bb704c8ddfd979b83f889d630c450c6eaae2566f5d1444aee44b806d08e44b212f608" + }, + { /* i=3877 cDividendBits=3752 cDivisorBits=11 */ + "cd49c06942f2b07fc79355f7e74c5a9f182d242474cd737e04c772c1019bcfdb14656e31c7ef53f9817822224288da520125e53a9f8d0f502c68101fc5514e5a0b8de7731d70dc5258fbbcbb32b7e1bf957e30672adc754990f637c1dca9f4676009671ff757fa001bafeefb57069014f31b51b4c7ca8066228f3f2b2f5736d51317f64230778f6959e59bdc6635abce10ad4ed7fb008afe91b401712990592c95c5ceb3c7ae9d6f4a0e3389f6731fcd41ac158b73c1541592ccdc0925bc5032513b756f40f61a1be42b25dd5d1b059dd8bcd6206efd6ab9a54f4d670dba31cdc25c45db0452df82285f133318f5c8cbaa3db5896d60d62557b16a004559a10d217753c6927582dd93433ffb3b5813fa21f35f2ca22423e7e4ef749de4d2ea38e6120c7d1a0d048c684619478e6e0c5044354a9e379961ee17ff5ca60f570e3fcdcd3a4a3508c00fd028077f893b85b0f103cd4909008343d344114b54126abc73a360a11e05f2dbf1a7714c826d779ad45cb681343fae2980df01e8e7c75ab65a00a73d119a8302347070225714b83113de543d3a54de595eab9aef0ecd61cb0cdc24a08850c85d7fa1a5ae9f5c80815c12101c70298101c8bbed3e54544150eac4cd555fa1d1c79b5c47666ebb434d430b452ac6", + "05a0", + "247ee3a0ef7519b050fdbfa389d4af663d2fd8ea09631a3889620905de2713e2ae4aebc495525e92c1aef50066d9c06999cdd91b7d13636ef6d3ec1c675868f39046bd0ec6a7f9a83d5493547acb5b55426613fb95d78c515859487d7c8ffdf03e95952d814e37d28213e6380f78a225db931436e4f0ccdef513c6f69c53c57b36982bc7801541514e8f38272e9d73e05dfcad4e380018b5ca422263c31f59cf098f4131070df9dae557dba6bfb971be170d86acb3de1a537acf160d010508917a87b9dae3b9f94389463f9ed1f96d165f6b86c7302d0d48d36ecf2ec3dcd5a76c822e8d561a1c5b67e3641fd6ed1e0212e325f64c557b67598ba1111d6544741cb480abd5c53f165311a4f976a391c61169d807ef506167cdad6a10b136900a1d860d9915b2ab79ac2337b1b2ebbdec22e1a6dd8cba8e90ba4f87f002ba24aaa1be15bd8c45d27ff77e953e7ecc010303065d62513eab3f4200b91e75589b8236b0f4bbee94f7f9970cb36e501375f96454bfbbf28879fc0027a5513a4592f89888a643bedce41725c458339db409fd58dd91d1fefe056538a70a7a24c3cd1e68afab7d400e5c826655a04c8e1bd294271fa7d78b6816ef402168c1200efa8b8a72a1a8c70bb38432600cb17fc644da891311fc", + "0146" + }, + { /* i=3878 cDividendBits=738 cDivisorBits=126 */ + "02f494265edde09279e8c756091612c5779390d410c633e376b0fd171eadaf1876620be569e151c07a5a179cf0f263b1d4f5213e6b0f0e7cba2ce764f774bb980605d139f701b4fabcb043a6169725ecbefceae91fe3878d4883fb3d5a", + "2272e3786fbd7b76c77c460833237dff", + "15f66145a98706079a97e399cfba9148452f727aad2ff2315126cdc202521f9712bb450efaea9cf880ecb89b924aab71724fab9f0c612098054d6ba72498166692641a708cb3ffb4ad18e3c7c2", + "16911fa0d2bf29e0ed44fdb58b07891c" + }, + { /* i=3879 cDividendBits=1102 cDivisorBits=343 */ + "173969d39b4dbe98f6c8256905acbdae788e8ab5e1322dcee984c8aebea5311de3aa3b387f7aa9f78b0f28d11dee2c5dedcf304fb41d7e5740eed9e72894070a506590c0f4b2dba88e488441dfa8cee39f9a1e17d9c2f5d19a111154325985c6b72d70ae2c7826b120247fb1edc30c7d94a8d2359d31130f43cae6cec4bebfa58cfd95fe0eba78083497", + "0776f219b6050ca827b01a1be44bd036e04cf0e9ef1ac010a9a8daede1602ff27bf9237d4c654a7f395ff7", + "031c7a50f401f1bd8f51833753befa90b46275ab2cebe72726e8855435dc8137b063ee7ad9895e37ac17696aa6135546ad77c87436fbf2e56f106af420586ad08520fd0542427b8134328770739b471af8a2627a2446e196c21c470f441b2621", + "0705f39eca4cdd9c81020e7be10c855d8b3037d296909c347655e6d461bd026007597a94772839d2572bc0" + }, + { /* i=3880 cDividendBits=503 cDivisorBits=429 */ + "3a5edc2ff127d868dc4fb150f474094d1a8271b96a636fa0a03f944e49d5d655ff166a2f984adf277d1b4af0c349d9ad89eaef3a8b92ee1275dba856cc7986", + "189a4ed5f88fabdf2aa33bc148cb6b3ba5b21179093e4cd831eb6269b233d50683b23c2aa1793e5f050691b8ddab4ee549bae85c14d8", + "025f5d74920de6575627", + "15b290ff418a97bb5e7d877e285b047ac7f0310ed799998f3bf0f07b870e2779602e1ad79ab211768272a7aef0b3d10ae522dc5cbc9e" + }, + { /* i=3881 cDividendBits=757 cDivisorBits=546 */ + "01dac0aea0b71ca3778b96fd05c834876dac585d93a6a93ab0f2347c24e96de470398a68901a049504176710596cdd2d6ffa491fea28b470bbb4be968dc9b22512d8eaa3e69120ec9a4e9dd0c105bc53bcb0bdbbfcb5eec14cddfd604a4865", + "e0736a79acf46253e9ea7e06a3b6d3cc44e8716e576c9af308d5443728ba62663ef6dc968a2707a4b07f7727bb504fd4d5f8a381b103b58abf77bac5c1393983d8adaee0", + "021d7c10c75cba8d2f001e1dee0cc03a421a19dc7c537a343b9807", + "47250dd26ee62f698df46cea8360466b94fe061a279fd750b6a51e2b2699f726a45444c4e374db8c0f339aa67c63848de203d45ccc4d206ac287d58eae37d46e86158045" + }, + { /* i=3882 cDividendBits=2539 cDivisorBits=1950 */ + "0503203595860267b378861b646a38d242006a59a5843870da56252c3a854def92a4bc3d4d2ac328ac39f7c66e168ffda44db5b112d223527450560daf4d950ac8b9310756a0e76496d2e53a73a4b50db5fbded84dd555b0870fa51bcc658dd5eb8e6b829c640548b47ec5c8155fd7dd951e066dcf200d4722f24d69ad5eea1d3559d4b9ece3c2a08eaa0537d2519649daa76084dee5973f32ab4ec6dfc3c31ba6b09a97cd51863286cf46d43acc0977ade34adc02a68f382c9b25423232db643b6a890d7ae6c0ca3a05a75913bb20c38dd71a9e8a16418309b4d8e34584ad8b5de4ddf039825f4b0514cc262b234d5af1ecbcda6762f1431cdeb10c2c97c4b867bcb5461e44e0d06ce128c0f4fd1eb78970adefc05ef132fe274c4253ea0456118b8dd2f582fcbb8256f56ddb07dfb87994e3dae9dad0b03f8c3e78cb7f", + "17da7b53c646b63c85955de939db74b2a275dc53e3ca26ca5268fff07201dbd0a6ca00888f330746305f8ad457e086124c91e09df15234cb521e3b0dea9085ac357b0c99b521a2c2195d02c2216b5c8eab40353db60de650ec9be28376f3a11903ae7c60713282633a67fb4ea3d19c38e6145fe31f26f8c77e4a59def40d8a19ab60d8b61515fbf0901eb89a35a47901f5a3f04bb6b7fa1fa7c3c3e57d331f27dcb405243f565fd87eaadde62fb8a26637f51330305d2cc43d7382f848bfcd54e70d0e2164cf0583ace687b84c201826d96f609aa2552ef2ec1e0a02ddc7995806d328bb82aabd59bf4632f2c44872d43bb0dd2c", + "35cac431ed7fc6512ed77238ce183117d49a39753705d1a11dd5d8eb9a881b7910fbbe62047eb28da64f02141b142d2773d218d1c9308e19d92dc34dbc946d7d4e46db093e93a9af2264", + "0300b66c4713d1ba0c752c81529d997a7f7e8984724d72e7217a09b3ce006e98716f35c580db78a258fc2c707427e697643cbea8d8cd555fd19bf78d36a3410f1ad74dcd8288f4c7f619f5f7a66c9c6aec16423068f9aff220f76877cf73f581fc3b6703e97f6de4335eed36c22b566cad14138577d5ccb8a0bab611fd9398637056357b202e13d8895af1328775466d5478b286c5d3d5c5f9bf35c0e4cf5f9eef0ad21e741a9b26a4dc36e6468057d8423185c131d673bcc6e5ef30d7349b2fcdfc229df014a0ca8ea209b55ebe306a9d2207d1a7b8d24e190d1fbc9c68fedb923314698d68df97f7f724d863fafc8a32ee8e4f" + }, + { /* i=3883 cDividendBits=2154 cDivisorBits=1716 */ + "013048ec784f6136ec6db9eab11d6a78dff8e3c572269e70cf746c465a9ddcb9f143bdc78694a1526cd7835b89977269f5e23f25ecfa12aafee43c679301ed91eb97a8cec914341d7cf4500c8ce08f2738c2d8735f6a61621539a254308441e50a6de0e50a531d42bb05ecffbaf9ee23f79967d61cc662f6f8a90bb6a3dacd2644b0d9c3ec9e22c8dbb4f9b82b4708b2c2856408bca12746e5db4d5e9a0d7f66dabb30442f3467a56f09bce6545bbf48156b5debc47f4e9f33642e46811790988c873b6f266323fec6c37163928c9f67243451b4f59fb2aa9a0c8b593ac896aea98bf2757b7df620586f8f4c804293a9bfecd799127514b31ff778b14187fb10ba96a97772138b11713374deacd8", + "0e61953618c0a080475496589fbe539577dd8ec3e6e2947e4ce406a99458895929da4f0fd09c2b0b9546b142a933e774fb6681c6df3b1487bcd7121edb2316fe5685d1b0fcfe321365a45b9c23ce0f9d14895da7e6e54051dceac23c6345d5bfeaf690ab97b0004a4c24a6f553014d9eb1f327268d5453768e560b0385828977faadfcc940f3e22214ad97396aa843ffa98cebbb05f430d3a821f699e78a0dddec4240398cc432d20458dd4fc9cb43e779816f93a0e897a98ea06d9c08469a6304466101c9aa2b244652ad6ad7b07f96cf62530ef819bd", + "1528962d39c4d5ab5f97ea053e6b2efdc1a4f5bc41ae89935f0e192d88e094b0f8adac5da7f1551dca8b077f2d9ec76bf6f4d89772b221", + "04a0e1895bd3639715220e84145dea2f6398ff7fbb20df65a78ada428442ea1b219e32340a02aff1505fb9f84322539546c5ecb08b61b9fd99821561d753292c50c57f7ba25c5b3a8607d91a70de0b14f692bfd03481a4ba0c354961616dd4831ce44edbad317aa379e3baee2db293d3b1dcf573b51e37fd926e21f332a781563c11b40c341e2f94b3212ab4b66261378fec50882ab4f46f3d69e358a2a2d8ff2e2553e5ccc5b823d2f206380393b7f7c576f26f5e26b3b70d0dacf7d2e103611a7ab6084c4f26169ad4a9e86fa1fd4cab26f413d3f17b" + }, + { /* i=3884 cDividendBits=3739 cDivisorBits=2738 */ + "0477f81884fcd6013cd155e895d6b79fbd4e55e9d49ecd75438cccf256903ca636b9278f3495a2c11c94d604a3c12228922ac782ad6a705d88f076c2318dc8918fe18afcdf591c4c470d81691877f4001009b3f3ad2bef72228a52b3078743483b637481f56e4d86e6ca927c6af67e3dcffcae30164d3370b9cee08ca0c6b4760be7d210269c9c3c1d826cb32d4a93a6d30ceb6f0af6c929697fb433b26c7cf2d07092da1fa0f643b11883e8d934568f6cbce02ffe6b0a527783d048c1bb929f2cd810a1f19645b3c2b4c0f044a52cc3840e146d379e87f20f502e5852dd2673deb7e93813b5bb4169925ccd48b0c374dfe52d3181bae741df52aca5686bc5f3742b45d2d089f143db628e44c27cd48e5e2658912cd680a9aa34b98232d96f96a0ea249eae9bd1ef8ff9e95f59a2f9effd9b3c497964a6677a227087a7495eb0c1861a021db1a1ccaac69b06fb020bde9026294a823d5886ef704f5f095954d6847acc1ebdad8c04d4c028acdda35bdda644d702eccdf2a7ef1d17c79913a00b8a5eac1b3c7c177a43c188e4d890fa193447b63f8d32c939059a2b6abbb8d74b5bab8241a739c1a57f90233174018334c0e2219e61407652ddf1b5dc657a4387cd1be3a680afdebaf83191e99398e2ec6b25332d", + "02718da149d3f6edcc7292183a0758c0fcf5024ece6691a5ac2f0b5bdb7335ea751a064b5fb2a28f43f4c21eebbcdb1d19d47272734891e8537be26f531a63afffc99db557531952a017930fde61855c9d0f8c1ebcb50ba3a46bdba41e23f75515d6c7973fe3c40bc485dc3158921a62cf8df745497e9437df57f44b925a2cdfe5a0c5ed59b0424ddfddfd4bf33fc8e07992e3e2ea91023a893d86980f22b6dfd3933121a0b5e0ca65baad072f71eb606e2324d5218894c3a0e4987b18e4b7a4b84ce4abe2e266250449ea09744ceffcb9e86299bf8893b664ba2e6225aadc413df79029c605752cf3acbca4ad1692b831e0ec0d43eaebe284ada4920d0a7dddf563e827db23a90e4a6e0e598e59fe607d6abf789a235b5f9bb51aed4ab65d46d05577e98c830d211ade591eb1adcd63b3150921932e189bb41571d700edeb8474b68afbd38f35bfb0eb684321c5abf3866c1276986205", + "01d427c4e1162667786734bca7912e51b1b19f6f5001e11c15c1a4a4f1981ae23b7f238e5e97b78a48add65ab3d0a7fc54886d399048a06c51d42ed46dbd78c6c858ec18e77f512bb6213808b1e0f38708e85caafd8a482b71d3c74ac06485eca0ee7a83c465bb244fc5ffac5e5d39564fe7b5d0ea79fd4f247e49d85596", + "bc78ceeea94af261d291857ad01e6307b00b65ca3d77a02fd875ac093e049d3da75af4a527bc4b7b26be6672e4dbcf959f9b1c75567aa36c9ce8c277bff77fde16acd04323799797dad270de2c19022d7b20f0128ab6dc985c42c763c29a92118a8c44cbe1f6983284d7f8f22138aa8a7efe3bf1e81e2103e67c14320e20506723c96b9d096c45ed8bd23a079666bd3e1717474ba0d931e2ea79470e3a50b30f5aa7e007f7cac1673ed1392d8568e36b94582de2a4b368f24477f9d081b9a96d2794a18e427468dee8f336ff00029fc760eaa2b89c4f03e91d2eec594b8623f2f00aaa86946dc023f56330d3a921c43bcd5f1f4ce5e3326e79e87f345534835ccb5621b2bc318339361c4483d0fb4d9265e387839350fd699bbe012e5fdddf39dea738615dfc9e4977fc411399af69f08447e74020cf8af561414ef9bf17d366a9fda16261fb70fd8790b94cf70ad039f7be34181b3f" + }, + { /* i=3885 cDividendBits=2301 cDivisorBits=506 */ + "1113b33ca55e28d7c1c4e75cb1915b989d2172a52df5c136fa1d9013022482fa36a543fc6f361566c678467c6a5cd37a226c406584144d97f69fe991b0305dc4e724b6c771b21beb524c545e1988fe2170b18e095a40e832a3b4cb0574926f3f792b1027b96daea6adc2ef85cc2802b089c7d29c0700a6fee088a5fd748bc99fa6dd1d057c57d9a5a27472465c36461118f78caece7a719b933f2a3898c091fc2da0684feddcaa7744aa5b41813618484f219200c561bf491fc9b2de2a9a62dec26ccba7b5b180092e1abac3a3fd639816357f7eec8687137b673e6af29a22267eb79b4bb043e13743f2e03c32152d339233006240b5187dd253955a3a0888cbc6598ffb302ec80c606bd1d4eac14290f696eba9d1634b72e2eaf7c7564c5375", + "0114c16c6fc4294a867564d6931d66fe25c1dc45a491141e19a61eb92163debe0cdca110ab51c8a42153fac85a5b50365a7fcbfb6a1c93123ea417a048fd7978", + "0fcbd71143d536cf04ee67c3abb7d47d43b6edf486918e1559420d722ce25c88b8dcf93a96e85bdb4f45d715430cc94e3d3fa9d59e5dbe9c3d0e5293916be42a02e8c70e55fc1aed52e54c90751a5b3150b55e978cf9a09518667cdf2707f81c1ddbaf3a4495c447c0107203a3b51fa7a572ff2b0b21b0a47464120fb8f106f102f105a90ce6e21ab98dbeb83e70fa3c2d153326eabe87ccffabc16ff93275a587ca0149bf92b0916d5fd1eb588d33c1e16ba9c759630eeda8fe0347ce60c935ba0d62e4030238707f124e5c06b2a6cec9193216a7303ffef81f428ac9c54efa66", + "af6be9015699305994bfea82d62127bec558fab6116c1716998f8f6e3fd28d1eef1911e9ea9d31d4f5fbcd05f2e8c96f7083980c4651535806abb65e1ebda5" + }, + { /* i=3886 cDividendBits=1599 cDivisorBits=934 */ + "4988dc82d7a9f1ea237c54747d84ab38de99e49de29479d61b10fa8f95c6993b822ef85c9cfb8d23a103fee6ccaa7b1cc3e1f24f8ebab035686764b75bb601c2a705d5c9f5f05e27a4a09c7b1f3d1f227ee7574cdbc19b2a31415ecd5c7f006d96956f7ee3bec1648f0f838703c64614b59623ccfadecad98e7463a304e938104cc9f4f3a79286adf861cacb03d8462b0c2087abee91f97052a890b2cec9a7ca4c48cfc444142e93f0e249399e32c3aa38114c6282270491f2f4cee21317a5a916e911a844fd9421", + "13d823aa7b46bf0ea38c502b771de9650a4a19756ed233462f92f067f663591a78e24215aa274b92973b7d2aba4609e6ce4e71508cba1216a0a13026becd0fa73dc40d965062d78ad984af185c46bbd506eb8532eead13bef965bfc407fb683bedcbb89331235f3f71925260b167de131300a4620e", + "03b4a0dfcde132163de0841adc67a70fe226e2342e8ed99f116c21fe3d0600c3d2b8b5c6c679976a85582ba27bd249806e4b9ed1d406df1c2af9a490ff8940aa50db5a1b955c07d5abd0a4d20e1fdc34ad07aa2f", + "07c8f4ac37e59d0cf9b2a639111290e6f5f0f1cd2cc4d90509668603736e1c87e4bc7e8a56bd4501a8b67f137297f559d7d59ce13f5eb34e6b8a36fba1cd9c38b24758e0bb411d5171e3e766301dd509ac2030d38658bdd55fb404698c5327a3f8fb530eceb79e2354d3d77efd262ae523d950478f" + }, + { /* i=3887 cDividendBits=2917 cDivisorBits=2353 */ + "0ee601d6e44869ec4a6affef2a57030b09dfe27a5600b5a239aecb7d2f0398e603b3508725590f91c0e5ffb8104626dbc24f0c6e50a827dc6422cab1f2805ac493501dddd6238daac643be97ab6f6138e251aaf8a4f0bccf12a0b2ee719717c6d0a9be0caa4c6956b7b7be30ff23681103b5776061f933b3496b063828680d86338eeac311ed35ff8cfb7634186258f155938271c10de63f118c4ac5ceaf5855c2f952424ff5ab2d94ee9c779d0833dd09bad4bcf12154c7ee6c9c19ce2ac959a886eaa52bb5b661e1a2337e70946042c19a55e9f74fe5248fcecf24ae119815a26bc33fdd15bc886febaa2c238c4691152e4fc5fbe125b154ad316f09280e463615b87ad1db61997ea54d06e1f889d693815ce429e399563a5021ea3e289876cfe8e3800eb8eb292e628c0be5f78b653fb22f920a71d6d38434569edf71d9abafcf13677b2724fc64a92e6ad61a44b3e0b0dfd1047c14773bd0763e7001e436202b686486272e49c9a22b95ca", + "01040f17bc5d24baccf8f98f8d406dffa9ad9fa3bc1a26ddafb2d4b1ebfef8559162d1b0fab3d6a58e87315a2b14cc90f39e36edd81cff146b0d3b895b6467f882a2b28f4ff486412dba4435d3e32428ebf884714f0cb343fba26b86f8bd710e3bed703d7dd0c3dee20e3ff326d1e8335ca27e6e22b35606b9056354d91db3c96282850fdc73fe91e081c075ffb416ec5866c04724442591bf8a413d1688ff23284b80bfb5dd1d6118b95f5c23d5fd4ae1f5ab681e2da950591fa27f7831639087a31b02ff0f79c4e78e2595708f5a0ac0eab14e2c7d52e7a15a5aea59cfd4b8611db9dab27ab4142a9921da7b71f1a73822fad8a39e9cd6b0d5b8f697dd5eee2bd4c90f2c8c4406888aac05a4b069ebbe781a8b7fa1a9f77f6fc706649b379425be3e69e78c9e", + "0eaa7a934ce7ff0e71aec28258292b432b3d5e687de50f3531b83264ab36736c37a8e8392241d336686cbc8594f9c56d2eee6da1acc5764e940e75c71e0c7a67e7689e5335516c", + "3521a258c00c42bd5f7ddb9ad867195c33b8613bcfa0cd92433042f4bfcc179dbdbc66ede09d18184f31ffe616e934d8aeadb6bf9cb001a3433e4d939fa04fea6d729f20496d82f8ae0d59485f7b69a6b5a0ad5dd41fc92ed6c7b93201f11578a49fd875f9c64fa5a85c5c8c314c80104d6543a14d9b454737634a7689e1b70d3410c90397183487e56ac4f76a1ef707c38a2822775b3957d1a4d8bf19af8053d8c0f0cc4a899e485ae789d12655beedeaf6840206390612ff02083282035d4fdacc8539029765c5956d34ce8018a0c1529100260ffc1748bbeac97ab47ffceb8858467c5a21d78c0fd7fd5bf13bbc1034f2935667fc99861ac7aabb2090bd23813dec5ea2373d5d8f17e6d6a92ff48ec537c4d0cd8aaf2cff895159805a34334ee75a484522" + }, + { /* i=3888 cDividendBits=973 cDivisorBits=239 */ + "0733b209d3725e1bc1e248ff2dbf5fa020f93b1bfd1e9557e5b74fe9238840472be46d878171470f5c10f6c708ef4baad2db580964e42e9d1583dd07d83acf76167069a5aafaa2a488b892d38fe0ad5819eb602da972b70d496e6ba1f06e32d6643d98210557ab615a8321bcf169b67e9b49564093770e27880b", + "68f2874957c83d3fc18968d97d1358eea5417b3e666c28383176e4d1ffde", + "11915bece6485cd0deeab9bdb40ac8b24c9648f11d437b7b20c20bb8e7c863c43545bb89a1bb481e16382915cc2c5222525dc48c7b471d9d92fe78beb0583f9454d16066be5a14a7fc7e2b3f5ad3ef2f284e3f27e89c84ce53cfb1fb", + "5105bc1e5e84da4adbecb989a612b21693596edc31a1fd6f6748a3d72b61" + }, + { /* i=3889 cDividendBits=1830 cDivisorBits=361 */ + "30d0156f4ff47e1210abbfe67f890d99102bd2f379441dcd80c97a88d60378eb951a842c7a466509aab3b50a2d5c91569e8eb3143b5da3613f5c21d393a6d4bd594bd8ce898a28ea5082f7773422dd95fc6fb3169bdfe60a4aebcb0bfec0824a10d2d532007d602b18537e21b623ccbf3375a89af5f0ec78ca648ba71dbf7f88b02527515e02c4096b00e590c6c72ff497c561af6f18a441311502ef3a618fcdd3da9e7bd41ddae48994943ba9b1ae2f60fd13fba6563f600292c452220bb85121577918f449cc1787a128db5bdb3731a322e3e72029b2ac719826564873870e9e79105bad", + "018c219e639cc4ecb9f011b136a2cf23d9e60c0f1015d51f9bedf5973096d4910b3f70686c946b6c9b0f50bd2aee", + "1f8b99297628cbf055bed8236df4c2d2ff4aba777bdd5a57f187653c3ad75e06192c561e8daeb0b93f5194b3181bcfd45897c317b87263c9de5721663234aed4043bec00bc428d757574f3395965968f23eabcc18eb02ce47eedcd8c2890035b185470a1abb58c6425ca279ebab26e05ad28057e80f5ca435fdb5e883796bac2227089f467f56ca733b6f5279b99496b2d9065a9e2b63ae566fbb5976de4dc13496de0862d683cdd6e0aa220d5c5b996d3309659e81733ea", + "017d44eb512d1d01c477b6a267a5bc93f808cd495135ef301a81b6f9693446403a3608565cffb04634e47137b421" + }, + { /* i=3890 cDividendBits=2337 cDivisorBits=2220 */ + "0119c826048baf712099a3dfa366f2d650c6cdad6038b347dff4e491d9b21ea6c65cd87064a989a948591b6f569e764306db89a1f9cf6bba03cc8ad0f1e7b3442b9581bb109cc420c65271f9184596b25a0b317eca5d3b75faef4cd704f5af4cd846537ddf687729a7185b80a512c1a78b99aea682c6bdce6398fc3520eaaf5e52f12cf46334c3ee81d62726d2d880ca7650beeb4d1f555d30704d8a731f0b44d87747afc74d29f2f2906923072715d2e168ce0491d3404c8f959708af6f0ee03ee12d0c27ea52018d1e7695abb62813fcf6f78c05c7ee57d190194158637458a8a4ce4d5aee8fd308f13e1d746717089cab593fe10139ff3360aa4b889bc70fbc7f8ed5d2ae5ed6035518fccec69314e85b0ab39e45492f763a453a41f3b88007f57eefbd", + "08f86b4e9d0013201b29cae4557c9695a66c778ce47e5e291659ddf6dd416b2a13631b95dc96fda9ae5408cbabdd52352349bfafef9492625835d4b16b423bac3ba362141d358f5aee57ac13dbc29faf12d7da273fdfe49e12f6497ea85de7149345a6045102ee89e506f829ec5a3ac7864dcfd4ae4dc6be0cc4875543c5a2595e5004e5368c465afc9332299c0f1b28272b662b97d5dc500f2622bb027c36354b40237123950cb73347b2a81664c219297fb00001c0b1904760a1b80253a3dece56a56d9424fe8301eb2f229c30f8ca9dc6e37d0f604f8c66f0d65d6e0a3f4b1888c944d08faedb5aa0c85146cb9f102de6ed65d81b32390b2937227d392dbfd51c31e3044a12d4292cb57c529f503601ee37014edb", + "1f699637013ea0ad093c395ebc48bb", + "07e800b8096837e10c6ca319369c31ff63fe43fb2649c45249c0b8d8eb17f27251c5ac7b187ae4f70f89b7246dd4933d3fb915728c7869245373dc788ba0b5b728a415afa13e528549e664cd03ef1a05810b98838ce25d1bfe8354c7fa43db8544573fd4b6273705d8f0ee6bb853dd0e58ec88f0020bd31385932011de75fa3b14faf50cdfd3af2cdb1010553055c5a9a65bfe1f8a66cb1bdd7f1992af0f1d0df667a329d7dea23936693ba4b45845f269041aa7edc860c1fac9bfc61b0e36eb9e239846c4c9b3c3ddc8febf9001111894d08e297ae13ed4f1aef82b6e54d787fbffe369b03514cc536ea7a7d1ebf137181e13c921156a033e8c94a874f9c5d7afe1aabd53ac5dce212ce5f9edcff61e54e01688bdc4" + }, + { /* i=3891 cDividendBits=2076 cDivisorBits=295 */ + "03c6a66d0e7c3577a15e202119ce9e1b74a1626a6a8a77ab515631d5a965537df11524421522dee5665e32a702dd02aa4da24863963f273170e21ccd7e02703c94f6b91343c183ad381cbb9be465853fdf7940cac86f04498f3bc37d9f6fd6fb40dc928a4928f3d48a3e551eecb9d6544755c74cd5a484a6ab26ceab82b48cfe5886b633daa31a2c70e4d5c9c4822c1643fe110a738a5f83a25cf9044fb3bc1e205ebe45f89383aca8d39e0bfd40d6623aee0947d57c0e4b89a7703599bcb5baa20bf911763b19cb1507a1d75b9a797ae7d247cde426e94ff49fb5be01bcc40afa6532359f39b34ae89c06cad63a5ded1da0d79b16893c81a2ca95fcf760abb086cb5fff", + "6d7ec49fb2f3a4cd3b0958089cfbdb2ba7e7e88d9e4b05cbaadbcef5b979dc435d9e45256d", + "08d407b82a700508c8dc8290f82596bb6c047c2f4077eef344ad599911e5ef8e5b2d5dad7947f6f7c87b18ef00b65d50748236c4806a33853affe0e324e6adc18103c2f01392fc18dea718e48b6183bfa028ad379856e3941fe68a1dcbcb8c4aa43624f44a1823d3ffd58d7d84096a3a3f0215cddd36fbc2e62136f8cf5e3c1a6d9badfd5dfb375870db8f35207becad6737a1a113d416c254e686083f0c57623ad280b73fde2f8a097c66dc28b10cde9f173326308934135b0279d881c5055da9668b514e65c8f01c9d576b5398d62e82a681cdc1fcc6a6d0faf61072a856", + "3a8236858ad87fcbbc2e0089918a25eeacc92eeb6172184a3a57297422ee09648080774561" + }, + { /* i=3892 cDividendBits=2268 cDivisorBits=491 */ + "0dc9b5902b9216a02e3d8c991ca0abe1c994504bb72f10ae4741900377547be754bc9433cc9b433a49bf333e85a0ab02d35e0a1847782db3092b1c2adda140938c2e5a4d21031a8f5d60e48a16340549a94a0580bc703fa69ca5e2d2a68bd753fb519419d411d0838d141d09be0abfe6c7c8fc1dc561ac69fb0791a94f7ad4926532b9d0e9198e5cc53fc22e0dea3192e20c6c65dda1d2f1f1166857d5ef900f14d105e71e04534b6341dece15011ecec40a681bdb5e92d586d2143bc09089b7da21ed6ff81f8c44e4d323db223a1e5f6471a8aef60706214e4ac70fd4de08e4151715c6212c86cfaf0b306ba94988fc20a9b446174cbf2f08015fc81d215c0e859836e2c59e6234366b985e3024bbfa6d4cedbe7eaaff5e2f4775b9", + "05f1d85cef198cf3012acc3aa44434089167e4d65dff1b587ee9634d3dd3609866f48585af7014e11e2608f234e63f2c6d49854ebbbe8947734200cce31c", + "0251c1ae6762a58c5d46b56fa343083b04d4b2c9af8db6543582dfabedaf0ca483ccc14cb0bf619025080b5eec6a8eed83b3ca85df2c279d1b1aaaefbfa9a86474d81d418f82bb839e247811e250962e154e03600e6850be3d258ca5cc9b83745aa2de713279fad1f92eaac5650622353fcf4cec8ec5bef5bb4d437fd70ca6226b35f04ab47216d78424160bfef1272d3cebb9b710d8d9a7c371527d9e48bf0ba349bcb7b0f4075435f355df019e152934d0b2d7c22c04fe1633bbf1b9e05633d6b165effbe9d18d033718e5f91fd6f7954e168bdf42912510626efd718ed7", + "05e1d5ee62a261b32693a0d251bb11756120bd560e27edeaca7f90fa07ca67b181647af3e89bad57f28d47d799d3c958b4a83a350bf972137192f1df3135" + }, + { /* i=3893 cDividendBits=781 cDivisorBits=236 */ + "0c5f252196c2a5d221726381b657f74d2bed2cced79a5077a9959da5e7b89a79fc27f9ba913ddfa3e473a153e9bd93761239fb8f924c8af0e45612bf805814131b55e216f85c220965ab545a275ffc25c75b777e5680b00389b5a6d2c9beb1f952ce", + "0d3de932aba0a64d6f85c81afb43f8493e2fbc9521905bc6d763278f855d", + "ef2d57b2daefef60ea317f768fa313748f34ca27c21209f53ae876b9333956666b3f7c7c31bd46e66445fb4fa4c20c13e183af04a57f7af86caf907cc801df3a2175136c", + "0cb125d25afab020534e284a1e02f8e4e16f82b9b9a1cb7bc11f6a062892" + }, + { /* i=3894 cDividendBits=4094 cDivisorBits=3354 */ + "3402021d1ae97c59fd743445daf854248cda7431cbc293bc09bac68c187cc426a72aec97375762b4bd87cb6d3a0a2480a5346f2c5eebe81bb553dd7487ebe8fba2a95127e612b751d9281864db0e6a5d9e5cb5d0d18042e851ef1aa95f71186ff7d841a0720c114718f068cdfc7fe01ad71b78df8cb62c9056c339103d928864c65698f974bf42731ab270db41bef6e40791d243b2f519b57fab83fdcf7bc241041c5809b4273c3f50d3f9d5b368a15a0d63d9b275a04d711518610f02d19a6592a9581d17dc67a5de286260081c2fc1385589b350816ed242afd507a9076bf683f90c95e2e7c2f32e07671d73459cb1a070ee1b705045895e1e6270d73512b674be48149cffb0e97df0ca799fd4b43a5f2de69d31c201bbdac2a5b510da39d0de7d1fd3e6908539448b6a935022989bf721d5934178313408fdc3878496cf3c00040f2dc326154251d4f7289054839acb8f9c78cbbc229a961a781623d4116e951d5b431e945185934e5c738cdcd7ae873415e023cb83227aa282bbcc611ff6a01c2c2ee0cbd2f234f4b4268716c2e0f2dd142ea6a1c9156e1562e146e286fb69fb5c82183aeb77c46dda47e5be05f0cf504aa6b4a2c2a1c4ad864a6e4f0de08ccbc5b73fbd11d6df8ccac0be04ccd4b9745ddb49da70981a1866dba41b3e58441151f735a672a2237fdbbc5ffa7280d373a8dc8e9e4204f6d366686bfe2add", + "01b5178a0b5cc1ec37c657bcf9b0085d5e6373cf6806a6055b2da27df24bc1f782b57d496595a0e42c37642e00677b4b3fb61f235348d1c3b60e39a1752881398ed4d842cb136819a17a5670dd3c2ebac74d93fe08e011944f21ac6a28e61b51a9e720d7c29d386845bdff1f264ecd76638ecc1dc09dbdbd4b162ba5a1fb8395ae53b2a6b80ec774ec44a65ba9a4edce75396ed6e47e1847c7031cc274870852c708309c49f035cbbe8b214bbf86489f7af27f0dcf21cddc7cfb4ab0c5fb3e55b2e13615e5dfa595d783acf0583a83ead447b72338c1c93257514c06d7d56472514b949e946f1fc2d1030474bdb6ea1f309200b67283568f7a738577cda63601e7ffc5cfca7f323948b6a2466e5c5725efc2f44fc391510bed7960e45ccd51cd45890889fc605f76521e997bd8f07cc2cc64b5ee7b567dccdee7d7d1b9cdc0f330ff2c3ce209321b1dbd47ac71842ba231b27708bfae8a5c54b7aeff35df80bdd370af8fa31dd9a4767367abe64b95530cd9c3a6728afb23cb1e676c439bbb18f49f6359a67bff189a2241beb830d3cd69f2f268722f97b31d2a36eb485d7e0c2b251efa", + "1e75deaa97fd946552087197b628b164d6d341109ea57181ace65e706d211681e818626799f1f327a36be54a96ec07737627a5372b2ea70278816b276fa6f65b2b74406c7c84361e0baa9793cf6de90d396c0688785d5a77482b5bb7bf", + "774c6de383e804ce86ce20b966a9450ee581a20f1351b655bfc7b367e1c16172cb4b8756e0a4da948d427fabc357e08628b09c98ccdae17013e5f27fd92502412e778193f66b03fa67d540172534d8db4dc1ab9609e6c5f1ca87ea963c37bb92f42b511f9fde63327794c0e35dc6ee3df66c9247cabaa21cacd2cb8e2c089d1335bf7f7d27861ed3b347512d65e3f44d775aaf44ff484766f6a4d62a3753fdbdd2f0cacc38cfe6737c2809e394dcb9e9b9113066475902288e49186833074a9e7ceed26ea65557a5ecd0febde2ae7218a8da8b25bb1be920cb5331078702f8e70ab94246e8063188e9350df15096c35227a95371e2fe1188c17971987425a5b1bda0cf98ab059a1d41029da55c9b896668466b29789787d6d8e596996028102e61a16db660d9db6a04c3aabe438853ddd2d73d560400b0a90584adf9b32a75c31d07239af6c9206ab7c79aef40fbd5aa922940e29571c67c34442a04b463f3796cd50853e63693ba60849dfc0cf8d285b5a9b44f22f251a7b1a3fcc2a00ef23cf37723fb115ab01ccaba371f54201c68b997b42fdff272e484925f30aa29c6b1495857" + }, + { /* i=3895 cDividendBits=1930 cDivisorBits=168 */ + "02252a1d55fda882ceb794d317f478fa7723f408e5e4f767bb9e554805f5172dc93d86171752a0fa547effaf3cd9c2065837d25c808b95ac75d189d446a09a17b580ef8a90d3b93c6fca311385f7878054348fea68b352f40b73250f687f182d93972073a18265f2b4f0e21187b61cd008d33171794315ca8713986aad8f083df47c85358ae0fcbd552f8c123f91c1143b4ebcc31c570940aeec5a7061689184b16e261a56e90c52404456fa8022bc1b1b00271936448e4e8a857e98f0376aba54c5a9a68c123306398c988fef740b66d7b7ec0d92d1b9ed8980c767d011f87189f82c3479c866d278a580f58b50f375afba", + "5d6e5cec49795fa3f05b8bba1d0b838eb8787ca927", + "05e0b41ae4213bb84afb7a6e67d794b33793e6eab4360f04b169001b466c3427cd2a8f60ce14725a210520de9026afa36477ef2a40eed1326d1f279000bc4d86ee169edf9e96f12bce92cff4a38d93d2337ef35faf98c5039d5e868ddb54234ef36ad26e3bc941609357c6ecdeda3126622507ca899b27338bcae3b53fe0486e4adbbebef4f5e0ccecfe77efd0030e18aad73116956e3c8dd69464333a35a622922d9cd4e6a7b7b51d69526cba4d291edfa38995778741e353597fa6d7a4aeb0ffb23536e599a23c3b3b96037fe46336ed23b3634332e690070a72fc4f", + "0fab6846ea4d98c963aca89020ae6bd399351d18b1" + }, + { /* i=3896 cDividendBits=1305 cDivisorBits=724 */ + "01032ff901aae3d057a543d6a420e07845264916c507e41ae59368cb1762013397e41f3d2a976e385e3338907e4eeaa782b5376ba8c1653331c70c9f87d1f5df3b93202d510573f22402ceea64a069733e2a0901996f1e7f3a41151de071ef47904f821f79065fb82ad1c6a590c96f014eae346001ecef9bc694b9c3f0e50ed8d9142efad45144899e2a15ad213c16f28636032a0f1b683cb94f8c67cc159a837d128c51", + "0c8606a04dcc1952ce529958e60d54abfd95405d7b9ba7f6588267d899a081ffc8499d7ee2c5aefaa8fb6e81dea34295d001dea1131a5da71fd2ba47e410fd965317be085f92359fc648c0fd498618a1332ad445386d110f8312b7", + "14b22e4d876de446e49237d327422320b2261fa7e949cc197b527b26390ea253edc3d03b257bd19735e64c5ac03d94a9de2372366d13836179b40e7994dd496cf1f28cf6d30f1d6e9a", + "0349bfbe119883b3311b2d65e3269a57ce5ae710d231bbdef209d9da41ac462929e7473448b54879d75098080a691ba7e643688b7e42c196279d48d9f549fb16f5fe2126f65e98056df813ef27a87b363eed919756f2cefe73a83b" + }, + { /* i=3897 cDividendBits=2216 cDivisorBits=668 */ + "73c6c0aa366110555a76d5bf8c77d137a97a7286386357be055304d932d63061ebe0963cc3d0c855969cf2dc2975d7081c33696f9c8f545b2ce2cdb0381b7755bbbffe464d35ab382407809b637dc300353f88cc75c0bec0485658cad041f52a3321f9d3fa3653de5517dc4c3f0ac7908d513553dba79fb3cd38abd72097e88d20d365c2aad79d157178f478915579452a4dca958c485bfa0205c1b67e01c9a9a5ff5d79f496f60f8651610887cd8a116d23e58153ee47b057e7dc682065dfc8201f1163b1b191ab3e3d7d83be7fc03660941840a401660d7a3df1a701e4823aa862716f7c27be7d754f58bddd553c62c408a34a0bacc04897769556cff0ef773abd58813f595a0485ccf098f04e818bf2e6654154", + "0b7e7d11e3a7dfb5b79d440b33749d74e6ace1817045cfb0951ae2f59c8d660b09d572f62ecd88c10d89fd93b730fe792bff4ccfd456c5bb8349aa6d85901865740645061d3d50c7908879eec6e169e956f19f0a", + "0a129b4fe574b17a0e5c208f235901f72dc84eca133c59a78073da89f3760b4ce022f44995c0db1d497803be1da3223becb71051577cccd226ff6f991179381ffde27ad834297f798fe608312e70e76f96b91063068a9e28cc3b918ad2c6d4abffd6a4aa8198c736e7f8dc7f29cd004fa47bd8bc09c29e14dd31b3902f93f8c5e0e9197af23e92d47b0ff05b19cb83d18e04e90d69529ad23e55babb54fe967a7cf7b77e4038cbb2a5faa1960d285ef0dd921feece6a4a112134663d3dad612c82b2", + "3b8ef7c2ea8c2a28fc565526b918187c6dd720de70b6857eaa86464d97e8ecdb5044db4570407ddf3795af256d129dd5433f9afdc95504fef1824a5335bc4219b43bb38fd35948fdad36abba610f019fe99860" + }, + { /* i=3898 cDividendBits=2465 cDivisorBits=1722 */ + "0190af99919ab2c0ee9e81aa6e252930b54951d0c8ec9147964f3661a0273d53edd2c7181e62f0210a6df9fce807f8fa658df5d9dbdde26f1b31af6291f6c3cbf15c3651a75ca4bdbf223debb7fb167191c32d8f6088c85dbb55c7af4789485f1f1e852f2f6d6df11590426137c2ce11f030fc6a9eec40ff79bb16ac393faba316b1dc5cdab7cb615c8446a1c46dab088426551bae079f3863bcdf971954a0daf717cc708f23d6d1f9e415f608e4eb7d33601a0a6d16655aa9780c3bd579a0f73c48238eeaa51d0a4fea469ec1b6cea22d65b022f82ae18be704a6312485e4bc574ab7af1813448fe2c542aac203e97c426ae4b5a3becde590b9d2bf4ce87e09660875635876d697d95107837deb0e0bc31d9b33dd436b0144eb47e11177795db555afea701262f0706c3c8041c6e5299739ee4b57", + "01a998c2824b0d7c143d4858142ef725e736860f98a899458d806c66e208cd1e596e512ff22d6976ff39b5223f17d8ecfad17c4fcca068cd727dc08269399316384476c43e4f55fd51bf9d62f47be67dde13806a8c36078ef7fe991ce7efbab84ae02b685f80ca1b425151d2ab991dad042b987bc4c91b45b49ddc127b467a478c5e36a08c3d42474063e455a20d8dd792b388e5cfc911ab9eb9929f109e131acce843d541a521cdf3a5337c7c1224d9dc947322ff4e5bd105493c1793df3d809b9e75bdba102f078091fe45b59fd0659ad69a36568ba647", + "f10415b245ad1a2adca98f987fa8a657d17052451edcc61457918c33877bdad3eb62ab7a24324a9da4d6993d13a726181ae7c433ff7d8dc79445224fdd6c06e5570547c259f00736321bf88cc28617fd74d440fca48fee6881b9740437", + "65a1c2b5cc94397217db3ef4ee796e16cf7c171d055904e8e5fb05821472c29156571994fcfc4ca3c603f906ba0140b52a6e8cd16c190406595348df328d9ff7f45b5741f81cbca7a59557ed81c22ac9874d0cd1c7c271ece7cdbf22a6f5581c36fe3727823ef9d900239f5f9e29829bb065ce74c60d0cb388478833f666deeae9aff852eac923cf8b6777356ddefdaf26029aa84b972cf5445a1126bed03db953ac78175fe618b6b32abc90c7064c679bf860f5fed7163eee7253ecaef58f09e051b4f6841f9b4d8a3d10d82b3b966c496a58cc287616" + }, + { /* i=3899 cDividendBits=2529 cDivisorBits=2129 */ + "029be198c6266922dd8a5692113001d0eff3d89fb0b2bfe7c80d471694380c80fe5639bc50522f52cb5d1fdbc16928ebdb39969a38cd8fd0a07e8e0801f0ae2349ef44a54d43b5f544a5833ae1e095c93ceed519728d93ef681224c496fc4d2c83e38366a5f0db2ddbcad40e7ca9fd875840ae3ed361dedc9b5055d35d75a02feca00b15165795d0c04a7b878ee4907a370e92bf6c1981cd1c12cefba13a086506932511c88ed2a943f298f0067ac2d142e775a423b763b580393e30d0a70ef39e10c53b17634a4e7b45018c157da2e8c06f7fc38f5f857a9c0b57a18eb4acfa8b46cead3f82e36546f592e4c4ab065f9add13643083565a38cf7fd94d35ea313b11770a776691a85fa02883db209f41dc0eab25dfa11a9e9db6ddc93e581b5a84c1e8cc3ff0da1baa4565a4a9ccf39ba90ce1587b919890f8781864", + "bf107ddd0fe301c76a1ef42f5c37149e7823088198aa6037719345602a094812c1687e278242020bb7c11fb773485b3d8263f4ab9f2f2c1bed60a949dbf8beb74f7aaf917e9010f07ee5c2edb0df6941f92ebfe2569c345f6e95ce162d30bb36d90201ac4549d04968a4752e49da58086353959c6a1e933fe3c7dce76e3ae88de594cc0cf0bbe6b9a7c81120d2ed24c2b74fa912489712bba55319b1c6cc881405e8aceeab7bf6d87ad7cb53091af6868d472c15966e4611ea94bd51e1156c9c11ea3cc34d2fff4b87573d06fc4a3d36852a9d79c801e9e86308162309dbf8529c984b4a3655bf85c5f68246292a8d099e77dc542ee1dba8333fbd36bc50fa1185f61bce012c30b3371e", + "037ede6c709f5476f8cacafbfecf0de892720edfaa27f02523142955ccf12f3de64a7325a05103407a1387b94dab7d56f2b0", + "b9317339648c34e18bef9195a59341f2c5f0e1cafa327221104d6a9b197e3891f62c9c7ceb525764a777f22d42c9101e8b666257393a7a5faf84cd667ce6c718ff22182c29ad07a91ccfe6f79ede2785358e21e073aebdd661b7973bc654b15456d1c74cddec12fb2acd5c8b727678c06bc0df659026c8a03152c4a24299c7f73966c21f5cbdb6aef5c2c5ca5f3107068160c07fe720c50d3736121acd45a5b80c13f95d9c1f35b2ed7309d514cdec0e8aa5b029c2fc947a74824f0b2f39d10f9e3242dc8c417ffd52b327c305b1dc9cb0aa30b891f34968baf18f23d017ad7d57dbf6cacc000a96a64784140bb6329ca280c606cb08142581383960869229790a1d923d4efde913d7c4" + }, + { /* i=3900 cDividendBits=3037 cDivisorBits=2683 */ + "02864f92f5f67dbaad0f7fb8b0bdd406d85a108f89907a468813cbe0b95f163da81567f60df556c9de348fac88cd59c717ec970424cb1420d9e2eca0ec0ba70123e682c9f0ddd018fc77f05d0b0404395a6db920bf24b5fafc04f88368c228da1b9668e97f7d12dd543ab18820b125588c3543cc9b409f8bad20b171cf2d10b7e5ee0a577c39dae177776dc7b2818e3f8a7d6b50a8b9d97612cf9aca48f590f98e30c9784361d1b1512be83389e45b8e8297a0ed400f0e20f6c523581bfae453f2249de8c0bba8c219fddbae87c6f553f9fb39d0b2a04479725e2c713bca159aaa09377f0b3b6da3b2543e4054e9d597f7e1b3c5d974bf36a9f6dbf1302f38396a6319384099b2b0d992ba1402552a730d4bbecf8baf388c5ae0f1a926c14ded4c5c4cf8428c104c3feef5da8b4d8a5227e2ac154db752ba0bdec38341bcc7c66af81d7920128757c01c22670471c90c44871e7666fdf90a7145ae3abb314cd4f6c95a72440879e1315f904bb6b05a56e37a6a7817c1641042787015", + "0546d64f6eb63c42b5cb9f6af29530aab8f82beed2ba4f3972721a3fd47a86f1175c193cb376805bd98d658c960943eee7b3daef9873187660a935e0636c59c1aea704c8d46e7ef957667b661f8d4306f1c5705c9133e5328a37f1b6f1719160a7362e8b94897e75703a20d0f0d79b7f944359a7d017de77890bfb5bfd0f070d1521ce4f805d4c87f215353f51984824a3d4ca81a7e84aa784cff247f7cf4194a379e5b8a378a85f80c2fec3e5edf91f7bb52d857eb0a4331f780a86887ff1984fa2e8ab4b425db3d11bfc1a89120e53492c91d05e4d5eef191b7241b4f294c9024a930d67559fdab26819a34a41c54bfbb718ea16518a808ca3415de9ffc959f1e81fcc86a744dd0aee301d588a55f5a63dac7c0b56a09ff5811013f3b8f0e0d6b8b308decfda59f5c2857020025d19ecf8032e213afd4f77e6790abf40785eb030da8b6caea6013f8f9e4167846045", + "7a7bd5cbac589203c135d182fd237d1a1d868e62faf34b3c5a6bb14fb0722f62b4dc001e87e7c8aa0660d3b3", + "04253a24bc10eb8e5c8476bad15f7beb0b6237ced7696f3c52af9ee161111c7ff53defc1f01ab01e058b834b9ff55635f30c0cf177b07312b16c25555274c1f015b3beb5c111b7bce3ee52d0e9f885264a3132f684ce645416f8d6df294ae38319a4b6a9e048b88fb7747905ca7f502007acb1eec4fb207b7d6828bc31665eb34bf023eda3f617136290b0a229b7d325df20929a1e4a2fe6dcaba63b5c0cbe30d28a42f20160d968183111b38f6c25d0706f701bc8bcc6d0ddda761caaabe8100a72155879af799dbea9157b62d2eda96099f2d4c3595911042da2b0dee0e3465f54547859bb653a326c5d6cd40db891dce82f01a2e6c4c335a31f8442b8c135880eb3f203d2767ac732598ddd4efeb4175c2d1ac64b0aab95ca6d74849c2759142ab7ffa84cb64bf4d029dcf273841fa62ec404389b5ce21aa7d3b8b255bf7c495b5ed396276d08fb91124b0db040d6" + }, + { /* i=3901 cDividendBits=3081 cDivisorBits=3079 */ + "011c9636e0d4c7abea0e337a65c1f6500c20223c5e6efa2550e35aa2e69130b044228fd290fc04927b8c838c6c48323702180c4134ce5305151431b87438e5af19b36af48b1e6a5ae66f5a3d1c4b8b0db46bcc273d9971f9f9737bdf8a2be8cd065c7ca78011dab85e60ced1a38880535d7a88a70b8d7db2d46b959dd437c18a289d54dc02c1110cb8e56c4f0e5105bcd3cbb0891e74cdcdb1defdc32c11fb1b39647ee2320a4b820a9c1324e900511ce71eaf2c99e468b197f50b4c30b57397a6583f7ba7e25dff91c8834cc3891ff37829ec42666f36a21fbacb8a78f3445dbd2b50078d2d20a5ffd58e67770bd03edc3581afa8451bd121c3bb3c49b7a43720646f480f9c9ad6eb22b027695c09a795bb933df934ebbde2e9c4e0421b2642cd373572ea7a89b9cb6cabfde4ee01c7085aef2de6f4eed86b96ea98c0a35981aaa1f817165b226429da611f5a0883c63be3adac7eaf97ca90cb440754c425a7ec944f9ca27e9ee0a2cbc676a23af306ea5464ed04cbae37c025e9fa7c87193ee7a3", + "70d9218763340f15c2f830ce9d138f2c55c4150774796f2dbe1ad6e8a93ff487daa9c1ee748f8363eb244a3822e982bbdd763b4a886767c9bb3fdefca030ffe20d9ef1290371265fd856c7f0200fd954839426a68a2bf8c50dc0566f4daba769eb191b857223cdf2206f5f6f650e541bdd67632ecde2c572e3d386432633cf9fa9693ef132a47004dcd0f736f4394be48e1be65ed08c27b88f5a480c715ce27fcb00ff1747706ffbf004ab9d4001dd53c3724407bd0e778e087f3e79a7a0fe0c942a4536ec1f9fcd7f1c207c7cf2281f6cca44618a37354bbb99c75d60a695c6fd03fdde8d35713dfd897a523ecf0f58c35d01aac0b3ca13d73a024825ed7001df55d8e5b3295df136f453a902cf34b03ed21abf2fc838e05d973a2bbc1e963415301b5fd07087615c27820732c89bcaaaec4d93d4b375fba8a65da367d11b818a6c1203bfb2640e04c75b569244e3696fc15a2ee0a7fc44beb1fd0a09a7089c84d5c800cd719231691b83113383e3964e814e5b264394b900ae545a43e7f67919", + "02", + "3ae3f3d20e5f8dbe884318c887cf31b3749a124f860746f56724f5153eb0c7346d3c4eb412e58bb3b63af7fc025f318a5d1fca9fbd8435819db1fa7af883af55982d123917880e26beacad3c0b6b5b0b64a3d9f0851a086f57fb32ab90917e32864a70752d931c7a1ff012c4be63ab25bfb9e0adf1b827eea3ee914deb59eae94a825e205bc82caf2bca60a06893250aaf78bc60d3b57e40c04933132f415639ce7ce4037b6aa212bc09cdae804d623f97caa48a6a4bc27be40ccf3d66319b8d2feaf13a0a1ebff6ca4b0bca8f3ba3395057b9a35ac837884397fbbe31f7322f31480bd012b5c383da7b72d28e32202aaec7ac52c3b43cfa154737b96bc9571ca5c3964436481b08b4c78017566b3e353def087ad55b4c222e966beaa2e916650cd53c2ad9a8ab08b45cf9d688708f73051692bf4b87ec74459ddd79d3b74aa78d1ff30edbbd9c0dd0d268ace3f9ff69042af820ee47d2074de00d40b0d796b38aa40ca0e3bbbc3ff98f707fd3eb3fbdb762504e7f270e4e248d51c7ff4951f571" + }, + { /* i=3902 cDividendBits=2391 cDivisorBits=1907 */ + "6a4fdcbf776c61bc33c60ff84e4f4e2d85940dde65b3e1079e3123f1b0296856171c5adcf8c3a4f91a0f0e134094e31c8c527c427b168b03c44981e73111a8191fd931aff43cca4e58ad9a9e821c227c708721cec6a0d53c77692ab12e1154d7d2a4d4a4091c6a23ba9b4424a42e3e0de8eb711c314caf45f9da6442313bf2efb98752f6ff716213e51c0bfbc412e7694a7f3c878d3dc1ff1a1f142779d6aca0da86da8803c8ce23edcc5aeab3f2f5ca9ed1f49cf13c54487255cfd47fae3e9c3adc1c78d0b2b2523bf5130f6610737cf8d85bda9e4ba053ed0e94af88c1955061b0e662d01e5d0dfc7d62a323d93948103862c4abe5b366164d2a067ffff934a008550f1560238eed14cf0b3d003024590848acb1c9f69af24695c87d045123f9acc31d9e5835dae8022a", + "07be375a921df3b8ab7814dd25799c91a43899b51bea454a388593b21adf5d4de9db9ca7dedba4f6d7369fbc3b56ba386f4ba3b8a0c27b2f051852c1067379a2a9b7fd02838d9feb057256d00d46b401e37436db13f5dcfd6c2a055027522b570838d20165629fdbe4fc9d36907a7ee8127d10c67a848be06d7ef3beb5d8a4523ff106f1c0c0e2fdee7260ebc08ae6c40d302150f5088cd25d70e35c9766bac07eea1df8c4f61b09e423112d4acdf19bae358ae66673b67a2a98bc853b837632d94367b74d2a48cef8ed62e7843ded06338475eab4bea69a464c1df5b5089e1ba97746dca45629e3e9d2a23fac418e", + "0dbae2635d090e23ae83c7ad504725bbdd76937e9959670a07bc1bef67f71bdded65d5cc81a326211d9f624c374074e762fbc7aeeaa7ee60e232d20720", + "582ad2e8fd6944b927a44557b2cfcf2937093a8c7ddf775768239df63ef3f7cf3832b056bb11d1817b305675f7465fb207b98d2723c9adc48c11f7e952ded1fdef87c80e931ba200739fc0098414b90d9d63d4272f71ac62e364c6ca0a4871d1ca014e4b5fe64c33a76713ce6bdce3775dc71e93e0e5444677d8953c4ed353da3ea9ce7633de9500480faae689d3afcd74eb3c5f2de47aa12c1f5d5f64fdef475ccab7c72d9c15717ff7559c95b4edc99495407950926150ac7aa5e339f12b025b4e29a74edda3cb322c34b10b9c7e524caecaf03883f0b2843a2030087814ec746f2f0555875f6e94b8ad18ee6a" + }, + { /* i=3903 cDividendBits=4059 cDivisorBits=121 */ + "032bfc7a6dc331ed908175ddbdcc3acca17f6b2f971dbcd35e49ed04503302c170d8714aa07358b03280391673b178a4aaeeb4dfcf3094822137dc446ceb9e3918dd717896adaad80e4a77a1a9b7341e3e966944dc41b9cf96ea961c3d5f8671b22c429fb030c1d51213a9c32e298022716fd48116a53ca7fc3c2c8e1f46f77293ff3a14ac14165d299a629c9c7b891c23982b068ff89cb6a02551c1541bd997a7b833a1e0a2ef91530bc36cce5968b7e70ed0efe9d72ceb536af57e1532313649dd427a8a7880d0ac51bf6961871d4ad0cd6719a5ff1a242afb71e1958147d00c80cd2fb7aa42acd8c7d59e70023400baa017fd7033e9841ce2fb0f42998c6ea6ed6d9783bbd97a0dece12c426a9a0bec20eea9a94ce359a67e0132bf86cea26db51b2bcb12d5051fe067068d50bd34c6051191db788ca28ff03cdc3f839d65b12a89ee8ccd72bed4855879ac83e25545fe2f850450d83f22035135c49843d9fcaac48e2c36aee64a5fe6ef6681b8b794c84042a1a767738486bc5ec3ccb741cca997b8329dc67ab07beea37d008f28b19d95d8ddc0dd2d880d31ba9b0f598969743c21fa31a2240ddd812169e0598cb5dcc329578babbc2fa7cdf1ceab976279781808e2778673b045e6addc3b1023e6a6e4b48d9fdca3cd303d5dfe0e098911e217eb1034d150b41f312bbc7cee31c6a0779607f7404995a99cbe", + "0ff3783a9ad8c4a7234ea049aefe55", + "32e7a559685ab56ba70235a335e0c79ef042e724b8f45fe6c540a0b800d940779b53709e66cde1b55afe410ec52e1a8441e788e2b1d696c90ba365a2bac7a6f4c341a0ac5842bc263df93b2dafbea43f660725b6eb8b3574bf6b1c51d424e8294e8bad6e30c86ecab1285dbe8a896045c10907a29923acf18f8b718c3867333b10564791f5be2fe53cd0306e2588f3ce368949fc12c589d34bc470f0940f6ad72c36b8cfb186c4daf8487910796bde421a8a5683a06f0db083d79308ebb5c1d59bfef616edcf9661f5d15e3a476464447f508e8b20902de347acf06f07ea7d8b2e8c4de2a66229fe2cd6ccc41c98c7f14548863d67749c7b3b898e51be7fb275e82a7cd91b56291910603bcd644610ab15ec054c07189e59778dcc3cd1e2e4576a684d77db2e44c4a66f0e0f1efc8122cfa1ffaf39486504d3fa37ce337806a87977a766e5441d619e2e2bfbd679e7e29384b79982b2f2dbf5c56c80f232e8bb7a9041cf5761bc6509cd3c9ba6039f1b694da6e2db5a451b0a4edc8c2b368173ec9a74dbc77bc3708152e417542ff46768dba0a6a2f977f2453d6d1cdb5c2a0626f4cf142002b7e1f5837227d6db3b2048208d043e955642cb786718621826e20f4119e5bfc80f9bcc6fdffb738da2e15627393195f00631f02255decac24996c781e64824a846a7e71a0a6379", + "0c8f304e1cad3a0f1181aa84468791" + }, + { /* i=3904 cDividendBits=2726 cDivisorBits=15 */ + "1e66396c2435bb094f85e729e5671ff7d9f0672d88099b69d9de2c19d9ec64792ed2ef2c12016f98a4c9ba7eb7dfed8b68fc5aa75cdec3ae81e0e8f49e8d9b71febb7cb06d4e88572d94e514c38ccc7e379bd30f29a16145c010482fbee7adbe47edb1b13ee875a28e08d18686d912ee6f8a664780df926d223e3dd786ad36dda3c0b56b90e091665f7c3f441d404089f3442cfe68320d13cada303eb4d0afab13e057bd162861baeabf2700936c2966ccc83f568a82c0a9260d1eb9415ecf917683b762f25392db883cd252ddbebd698c0f9934bb0969f96639ad074c7a1277e05051563d651ec2fed47dfb9d0dacb772d9cd617d84a9a09ceffed28f6d9299798b8eda45432c03ebd62cf21cfc8ddbc1ab9728ce42e8935d3808cb124b9e90e6b2243caa1e2b10c27573a0e67cdf566b46526dfcc9466bde30060006afd72e9507bf3bb785b5c3d10a0e348dd2e0908e567babee", + "72a3", + "43e2ce9e80a5c47780f8c7530c67ce4fb1d7f40b8cc3533122fd83c7bc112be11c0da2c8ceed51f1559dad22c2c9e2ce97749764fa8dfe5d4d68b21043cf905c3edf566caf64bad80d82e6b35cd91b860bcf4809a5076ac7536c2922ed4931b74cd70f2e36fa487a2d747e8b200842a1b4f2f19c70dfe4c232bc7d5da6489e9a2bfd14d601621acd0b126885c15135843615de78b6a5a0d3f6c5c1dcad990bb983f107587f924fe0b0b09e6b22271c11cd5aef054830eceeaf542d3279c876db95c8a31d642ead38ad4005bf5763078aa7eb1327607b77d3525a5d2cd9a509d8f0b18be0f521c630f63e36b9dda9a108caac5d7dabcabb9b4eb59fd719c1831d2cd797c290923c6a8fb0b263fe78345f3cb3842c1fd00ff0c330d921481810449682effb340910614d7bc536a340f4b97be606aa178bdce58b4d164544ad2a7eee81fc8f82933ee6c5d7c535dd411fa94fcb9f", + "37b1" + }, + { /* i=3905 cDividendBits=2977 cDivisorBits=2467 */ + "01fdb8c907f2cce8d3a2e2ade3f07fb52d5a5d71e31c4da2454095cf677c6b13a05e3641a7100a8a846129a9ea250f310fd75a5f7cfad6566277449d40f68bdd1a1a40b78cbe4264c977c3692cb87df5f3890d4263bb99cc6213a72c17308a87e92bf63e54e84b2cc4a2fc12ee20cce3512e24ab9015b590feed3acd4fb5b4343b8970dad004a1560525665538e016fc348503e0b4ff8332e516da540a5afbd19a838ef8cf339e8b26336c3033225e7f251d4583f9ce78e3ea567f9d89e1cba15eeba163226744d73e482d048cbdad7c8a09bc2648263d3f248131a3cac260b65bd5c1b9b990bdc66fe1d00863cd4f2e34e6054e7bd10976dbf2979c80abd217fa1ce93cd05712aa27b5404c2d00229c6ce835cf496475077348a876fa73c5411f2cb16ace220d975b6631cc25baf8581a9718a24dc88937eef28bb31be177a9ef9d7d56b2c02cfecffd1aa8f7a173765cb2ffea654170826eaa04bbbcc5c28f4affea78982726724b083a5ac6bd319700d9aa698d", + "03ba7975b0d46611034837b686abddb8d0f4e3bce67d25f7dae7b0b426348e0b8e4e889c6f62ef89f86be2c01d4490742903c0d74242669852540895416632d17a355af2a916d1a13736033bed7816b4575d19f783e0cbd6d4c3ffa3a3c2bf4edd0e5e9c89c9590564f7f7750b8f3fba3e816dc5d231d3c52706e411f7f686847c27193feb88332e833e0af0ca11c802bec58ff339ef412b71391f5518543b91775326706411edbcdd033c0acf929fd3c074cedeb8e52d933da9f028d372a25b8fc5088ba7503b963b51dd4805a78419970cba604542e2aaa6575f8bdfd5b4e06c3237b4b38c100d56fa948bafb08f9705ae469dc932c7f241ca5ecb6d5191716cb73bda8c13e10ee810249d655f7989eef2301e05aae4b48a7b1f09313ff15d412959717502d899223153c24a3047199e1306cf17", + "88b673e8bf0c548083f1950e8c8c17a1dbf6bd745eb6e63a59bdca97857434e007b923a4a1b4f8e570719440dba335e1d28edaa978537b22221b34c07f868a52", + "039449661a28f0664905d828c2d2d3899115fc41415fa334e3efe319780d5bb69b1304e64ab31d0b9d3d7d6adbf3e27099c916c0b671767aedc0933075c1f39eb25572a0d27854f85ad49a468f8033bb40026cc5505f0faea5cb298156083a16c6bf917686875c75597ba73bd18abfcee80e9af49131c326e350beaa50c6da014e1c4f5d6b2ff7b27fc64966c9146bf7bd74d3fd5435af3f3dec58da5434f85c003a18068fab4a2b2f753367a877656aeb77725e1e5096aa8ee3761793898cd6da1a76a5bd61379473feb152ae9b8d182f943bb7dcae0f592d72b0c59626d3ab4fea03ae43f28e6634a2142306b16dd65ba6cf81921672bcb08ba6a0c1b13662022458aa9055eb0593ae4fe14eacd7196fd1e4e57a4930888c29dd35b3db5cce61c1081f65efcf4292824acc5d91d4d89046cfae2f" + }, + { /* i=3906 cDividendBits=3462 cDivisorBits=36 */ + "100ee2a81bf9991c6953177791d3d3cf68564a95ab2b6d4377214891198b644a1d247473b8a6513a56b4ba321c58b9a2a4eeb634229623a0ec469650f52b6805a69813467bee1616ce237a2b864bb969d3449ee6b2ac610b1664f29acfd8d1553af61c48c5d82b41ab6850d75163a22035ed57d9ec9962fd1670cd7ac1a5951e01fae31d75f8f0e058f4023b6cee5b406c16083c652bec2414c1e0e260cbdfd89c60cf4007e9f30511ada010f7abccea6cba374c48c025dad60579e174a830e36f6903f96e9591c38128ae4ae3d4dc522a5eee214661bbb1ef46b334869a3f4950920d1a9beac4a3e2f226809bed93cc8607b3fcb86a72231775ca10f62148c847c1fa56dc9c2a05697b8449ff7241f9fe5df5eff1d48a0b87534fda88d87b731219eed0a101823e753b328480a59b1387008e639f2f0e3bb1aea526c58c092cd6d8f361405b5c91fa1103d39eef10717de9510be5992f66e7bd704d76cb5c8ce8df306ac8078a56ff9302d2e82caa07c186c28a63614d6587564a2dd835bd1fdb8a762829357a8f60a7f20f83cd9954db45624dfc838dc9c3749bfa3198107381d58004bd9ded2d14465ab7340b64e68f", + "05a3293c07", + "02d939292709c82a0b6d45919073147f97ace3f1b7abee458aa28d98aa64d8f9a01ec1f00bdecc68dbcb04d7dc2de6f223f90f7b2c9aa5b4c3ba29752612668867a4efd3c05cfa6155ec51587befd71d0df386fa6eed9700086d5d83a1c55de2d18f7dc7a1b3b8e138f6d64600ec86240fa7c71c14bad16b8b451cb5b16543d52a9bceeb5b47c311e18ee099115ce23784fdc9df8651b260a20426f5a9d0fe3351c2ecbebf8540257dc81b0e998cded19caa78e9699f8764640805ed2ce5417e22859ca860059417ec91524d8f31c3448901b3564af3b01ecaabf20acec2423f6d629cfed283d2172ad322f3d26404eeb5a6533f9701419b42bcecd37531c25ca85c6d33d27089014d5d81e377660eccfbf80b73af6d76ba4a191c18ae809e1ea95b3dadfd8cc310323810bbee192fbd8e0ffabd714cc196b9efb8dea0e91eb2ce9de9c8acd0801f332762c24af8b1b707d4f1a5e3b74d8d44ffac51f8f464341e390492b109589639beea1bde67180fe7f6fde7400f0fe776e2d3f12f23753b5708f1665e612dc8f2b59dffa57f5a81817a8e994290118cbfee549e853544e628de7e0d00840dc211a07ef2d4", + "05070e92c3" + }, + { /* i=3907 cDividendBits=1529 cDivisorBits=112 */ + "0187ee6393d3ef81351aed978676444dfdfbe68565ae636315fd86dc2b140542e7c7480fab8d7a16a32bb00277cf3e50e315bd4d490e30841a459ad1333fb2de01a9e59ec9b2b8248ff3ffc849be30242db40b65e5f0c9dae1443e07327f2b79ca6c63795a6350c48d25e4b0a6b0cbb26465e9831de704ba087b76beb18e4df0bc144073f2284dee736f9c72653f47c749e952c257a839a6c7e82e75d0bf6240d4dbbd9472461b7136fa7e1a741947160438b53a79633676bd9cb6be4119a071", + "54c5ffe7bf06ab79c263b7668c37", + "049f8f2e8c1084e84ee0efc4b944758001ad284cd6ee3d3c00e843d05c0d7148cab3e6f3803f302de46ce9dc7f314599513158676d7a625f671358829027f0c243d05d082b95c99a5fc519537e0225dd15f727dd06fdd35db04122549f5f29b39e0547916796b2acb6e38e736c5fd6d574dd102c57d0450aef7ef770a8466af9dd48f2b7a99c55d77e781631657e18785749a500751572a128ec6f5cc3ea63ef0a728f22ebc2e65bd91c6b34314a2f10fe65", + "31722296cf04b625bc624a15bcbe" + }, + { /* i=3908 cDividendBits=1964 cDivisorBits=62 */ + "9083d0fe4e3c6f0cd997f5bf558b4dd4eb2cf77af3d0253b977d5ba577b89c60d7a22942a88f13d9503d01e78a0d3d5270faaae59786566e3e87c3782d0eff73d29229e1f10fdd3e21a1c48eefc63e98cd0288aa4ca5f69b5c8fd45f7fdd16a3db438d7719aa7e3066e6e241d4e6f0fcdfee636dfcfe7f7b99beda5d50d32e63b7c444ea79719d5878959e4795e67ed1fd3859d7c5300706a2ea8c684727ed85837380d061c1b63780bb1dc9e4f42c2784476f402677ac27a0bb55eee86639c7923577bce18becbba4d8be2360e05e34023f87e21b92734676756de98c18f489ef4442a5c7b6d90d8840231bc473f7dde04118de04", + "19ae3a22b952f4cb", + "05a09d64fbeed767b8be12234d5fb562666886e89aaf1a6fb4d6ef7efe43f69822ed31344d6aa05311444b753fd5e246adbaaff4b9b98fd77ce4d57ae503e7ed587d78140385868930dcbaace5d6e3341dff0d057f23cd841437b17319602f17f20a720cc729178305b95311ceccb6a754e1bf7e2e0a83dad0c59f8095223d3644d7142f2f856e3ab488537bbbb32a68b2f0c4a40e425d3183a417da86416173a69fce769575f5e3c0c87a7d0dcfa612d48c25900fafea26f8ef3781c5b6698a37c3c6467352eed78e1931a4517bf0f7981fca7ada44d79f64d58eb029e3a70db32b218204e55154e799c1686cd1", + "054d72c477a16049" + }, + { /* i=3909 cDividendBits=969 cDivisorBits=850 */ + "f11a156931358f592de19ebd0f0fa05ec0b09692643841afb69521cc06b3f4b5566b55c50dd73dd96cd42816a67ac53f5e378d9c89cc265315dceb8620895df44da6d2a27d1f235767a6d94ae01362cd4336c3130627402b6e3520aa4b0c9a5b9e4e1b2727a58fbdef85925503c4343e3e6f53df4bf8e0d057", + "03de85195da621f69fedd1f0d96ed322ee1283126890f14b3ed8ac55756f80cd50f2262a64bc7e7bd273a89b3cbfd81434bbdea8ef771cb570222eb42e51f768163c4dc9623b036ef8055220f3132fe1254b28d06132606ece4cf81371ad8a47b676f0ddee5159c91f6379", + "3e5014977ffd4f41f03511ba4c9639", + "02adff1631863f2b3df708c291d1a7d4e6bcfc1bd9b2570fa2b14c00a2abaa9e8365c2bc8c4481b54a72ab857df3621e2bc1c8ad73fd671b2a706882b129f5ebff7be3a4ebc9bfa9c8994e76872d44c472e5c04a6c5b585264a0d7738fc26da033cc1829b2fad55aaec466" + }, + { /* i=3910 cDividendBits=1211 cDivisorBits=71 */ + "012bed6eaab955d7939b7d1bafa98e882a88ec6b9b522bdef1f7ba15c22f17987c442b07e96266dd9f42e81f9cb9e7a2c19d659ddb92776f91cc49510798fc28cfc62c070716c1fd20761d150e0cba8bb9d720e8363fa549dbc371ef8bcc22be22cc52cbfe4f2916b520491883628c63d3e11a43e0a15d26cf42855eb0854c0d5af3793186e94c047e4d610294a0f356d766ce29c092307c", + "0c9169dd8fca7d92f6", + "17dd450394a2a6954d64feb993864ffc8bbb3a6801b0f8fdbb0c0ae34fe90ecc850350226190fd03ba8dade56af1a1af76fad7e96712bf7aab631c0edcbe5ec0dd67662a6c594b7bf7470ac7ef25dcf6abfdb04e750ecafc4aae345fbd557db5de803c9f6201fefa0362d2f947b0b7b04fe3c6e4035bd5a4c952acf5e0c4f79412801c1d79c0ee6e24ec6e3900e141", + "0bb7ac48423285aa06" + }, + { /* i=3911 cDividendBits=2714 cDivisorBits=2434 */ + "026fe32da4be8ecea397e5e799396dc1cb51c863d49f8b36bc97090b631c9b566de9880f598ed3934ad5871a0d97b14e43b4f4f47541ba2d92bff30b5e8de2ad12761261f24db4c12894029c9803115a67456802b0443eba3da8d764c3552f8905374d96dc6ba044db9a6c3c6529d1822e2acb33d90c3f74ffb02bb573788b0056927bcbfad6a7dc343365070b7b9ec2f9e3a1b0febd5978869314267407ec2f5f8a6e3dabb66d04792cbfb1a1332d64a811d05ebc459d679dc7b48f0dbee0a76ecd506623d4ea7c5b4681f87c86d65b26f461587f77cfa78996a702ddc03b6bf2e47a08c6ad4770c22add1108914806b3bed2622babddf6f7aba52fcb08fc645e24603582fd50ebd5bf4aff67cb0e4321e6c572efe8637f9928c213221d12773b31addb589d8d9158bf6ab21e77e5f5b8b2520d7f2fa9bbb136ddf65d1c8455c349c301159de016daea32d92b20be28dcffade2", + "01d110a3e3c61fb2a4372947fee821373f403120f56a4f8fcda658ed9c8dc8ef22fb0f02203cd71123f7522f1b106426f6800f8c207abec7e30d630569652dba8ca846090d1dd7eee10d0b97828ea9701b9c3a2f981b76b1aca7e599ddabf1d31c2fa89842c6d9eab7f24adb5286b19ef1c589afdcafbb2996b233c82cb192337b450a2333d9fc64c0c0a02021063a4120dde9eed6712758015d071dcc7290e9f70aa06a4ff0c973061318f931ac5372fc6f455fb741c989b599de074c9507c51874cb7b446182f907344be350cfb8229915df8616e9ca48a810b9f948337a503495c212bcd2624595c54cd6b64d20952b5bd0092a538063724512a65068e59fba068f3d58c2f4df9fb14d3cd5f3bd4759d045116d2b7188ea09f35a770ce12af32ba238919da40d941ef635f632e85c0a", + "01576ced44d119be38a7b12bee0110f639a6d13f7019beccab48e25e553620722040a9d0", + "47c1b00c8ef6bd52d8d5f791b82c03332d2dd79d732c871ddb3da0946f17e6583352b4117469ab1312aab08bc8ae27d718fe94297ef73aca7f2b175adbd5316376d7af76c92a0e2cf66fa3e51ef6a97e82d80533126a1158e5e99beaa628ec07889b6a2589a686c08c8de2e3b27c460f3e2af3b4a8c8ba871b48bba1011d58a51c8ba1b844ef33f9c14823040d887ef1366d28bc225e21323a600d9a4d9a6723407a2453a8c86b0839c05909e9677e895e9162a13f56127deecbce535abe868c0a09be81079af9ad803573d099e3836756b90efe4eb8451486868dde85850dbf5eb0d79f328eba93c6b93d73dfd119d0699f39644ac7af790a6b672852493adf18e80b250770b9859e8124111bf2fbc9998c7d25e4582c2cff98a344886ef1edb457922c7b268c84c2755c77d8f24bc2" + }, + { /* i=3912 cDividendBits=393 cDivisorBits=378 */ + "010e279e43fee3cbbec99f8b6d3b4c6b255ac63fb6c6b26986a088a10e39c9615d427d30024502d629827b918db9312ca674", + "772c80b0dc65d269447146a5a83bb07eaa8b71ee3c9b357959d51941448b000d6295caace75278e8ca0dec1fca7e59", + "024453", + "27459235a605126db6a4026fa3ec2751066115251e0d5aa9b3bf2a553c2deacada41d2dcfc7ce53a8412241c440b99" + }, + { /* i=3913 cDividendBits=2373 cDivisorBits=1938 */ + "1d0e6dc74a33d560c7649f3aac63caa700803761512a643100af0173a1a9d23395762d358f8eadd376d0990a6cd79bdce42f3d430087bd8079711c8e191d9f810460130b2067217e5c2c2238819f7363b92e9eeb969d113abb155871dd820d461ff691679bf89a21d5459e65b45cc43c85090a165ea1c97b0a4f7bbb6b029fe982106f7ed72499e509649a100609c93ca225218ae9cfbaf9f0b4981d7e7c5c0c60b1e8344a02929ddb0547026bf3409f3354cc101f8d0bbdc2937cdb99267e728e7eeb174452d90f25e7f445ab2e74f2163dd1b743eb51fd52446ec367db68bf1fb246a23f61080369bf5a5f6eaec429000aecb3dbb9a30192aa520140d4ca5f4c9fd72d27b05b8cc08a012345d53435bd9d87ee3bf5506aa8c3d1838a92351120360837d16d00f39b", + "037e05d8c10370830383e8ebf801fd53f9ec80859536e285cb25f77e6d472e188d1b2067c2c013815bc3546932decea83938c982fae5cbd7a48af9503cfa3c89ad365fb82205352ed33f0de9a545db18f398f56bc016b91f19a727d78d4b6117db6792adc5d1262f2616bd8f25bc14fe12dbfd9b1af72df1cb75e0781498badfbaaefeab2e29470f9504cf75f4b704e0ea03d6062b9ad3d46e60b9127be0cbaf308460dc85e3cd8e64a50bd850ff20a630bf3ac742f0b2673948922026621ac7f09552efba66011bb0f95b1a27c1c46b6dd7cb36ad75b9a84a6b9ee0f99612b364b4ec294dfab9883a69ec4e46bca6b1a9adce", + "0851f7293e690d55176b2c2c636e2ae41f20612bf6ea7b4fa4acc804b5f16f51cd5ee74f06961793f8bbca4c4d72cf927b29479c97632b", + "5b89246c01fad0825887460d40d1ca873c9d40d278c94cecfbba002a0e0c5d182c5ad7e2b9eb8619b90b52b1d3bcc8f8cbe243bfa0545d63a4f9cfd4eebd13ce303b9b958f27a92357569edf99e974e4240bfdf3a6b449f1a340fd66dd7f6e0c1a3e15449aef501f65603aa91e9654dfcf0dccf6f5a74ec8b178e7a913c0ff169b53eaa364b76e321931ef1d000ff198036119f4ebe80af58237ef66c7948fce89253900c49e8c9a50144f29850a6f2dca45651d7935e0f3f59fba94d80d78b46e1e05231a0551b616a78c979478a0010cf4510195e1c7266c877e7e0ebbea98e4471b7852f5398b319369bcadfbeac81801" + }, + { /* i=3914 cDividendBits=135 cDivisorBits=41 */ + "03f53611feb656a0d13953e45a3ea76049", + "c00aa8c7f9", + "0546a7c69a651bb6ec29902e", + "71d0f6618b" + }, + { /* i=3915 cDividendBits=2967 cDivisorBits=1005 */ + "1dda3f82c80709867236f447786d61305750a8185e9c7ab5193fa9cf29d04432ab5af2871c4468369795b1ea600999dd086131d8a87c5a22535535f93203cf15dfc3f48ac5d6347538361c4969b41375a2a744721721f9d2b54c5fb4b9f06f5eb101e93bca9485b09aeecf17a47a1a3df1b7a7ec4202a6aba73aaf0bbc9befc1229101d2cfab26b9f7335b4963404976a1991cf1f8d66c6bec1433bec33f90765a8c1f43eb668eebcf9ec36e908bba38977caf752b7c360cdc7928588e40643d805971d1807c16f783c6d98124b85713a05427dc38b580b811d9935aa5a8fe59839a1813743f24e5ee89e41bd7f9b24ff96bdef4470699a55d2167e618fb4002abac69f00d9e75a15e259827bee36f00688e35a756a7fb60f351e6704bf552e99dfd8c52704309aa9468ef0e48ffb6c63fbffa67239788e2cdd0b51e76237e412dc61a84e497a597c8c7b62d8e7d9419bed3eff7ab716003b5ab730027ef583779a12a5cef6c99f712a40028e3aee2e8b82434", + "028789e2cfedda7762cf2b7bd9fc5912665baf30fba498028b6b42c040547abfee7287f7d3c8e0e319a819e1f05b71365ac806c0f7f8eaa3cc0ac99494fc4a5e8cd0cf79f71aa1e6295fcb4272531accdf7712b8c8b33e8f3a53634004492262d83573e7c1daa0595f62143e670c4513642941ca63f2b636fa117075d5f2", + "0bcd4f9a0d95aa789086f73ceae42a9606f379663e47a95e2d21a03b6168e75a3dd8273fd07da50915798ad068d6aa46ca597ae827239b7cf01f193e71042a5977589e94838c03b0bf7784df82bb55b9ac0695572e650bca36e29b8b1673730474fd11e7c1f84dcb16d2752220ed9df6db312beaf87b1062bc865ada83d9172db93d30ecf2a83fe224d519598aa028a3f0dca0b5d71b595f8c08ca5d10dd68d3691546ffabfa9b55fbb65819e40a07632fe751f34b30362c160ee721d9eec0aa8ff0de6c0a15b4ec1a3cdd7239849d524e0acb5491b24906d4d3c35f7e7063d9361991536443030a5eaf13c46687edafa89fc59bd902", + "3ad6f7a2b862738669eb520197baf3806fce8324cc775b19e09c6b7cf530d4ae6211f5ed383d263560dd19a38c9925d9e0f60764615585f4be4de196edfa26452167315d55396f7b916e663f31cf0036fb33bdeb95bb89dcf696b25367205f1e97870ec0409a7549a58bfd671c347b7f1c3ea4850ed65e7c2261ec5650" + }, + { /* i=3916 cDividendBits=334 cDivisorBits=107 */ + "1d159672849cdbd92f6ab27f4846d23020ab9902f190c48b5a4c07821da1e1b3f09f0072f9b034c41aa9", + "050648a99609b04f1bf21921cef9", + "05c9d7c1ee1d22c662d8c12d8f00d2abf8f2bd42b043f67fb9ad1f918f", + "047b77fc0b9dbabf4050af7f7492" + }, + { /* i=3917 cDividendBits=2791 cDivisorBits=1425 */ + "0a0288f606faddacc52243250444b539cc294fb955b95bb93496180b1e4396725beb6e9ded719fffd4fa4b09c610e8f4fd4585cd0697ba683028e5e41f42a5de968944fb994bbbb0f73661e3cfb4970a9bf60a80efd9e32541a396b80840eaf70151418f8dc287f01a4a243d836bfa3b306565785c107a22178660d0f9b10de2bdaf881fad66c9d012a27628c76119897096e569573a74b1a52f52cc7860f5e8e7875d29c662db2bfe94d816f553acd1e81d9160f46e8ffe541c63ec5331e99b5fa02f976aaa004594c8f7769b52543eb6961828617d94e6124eb2ea8f99f3107983c713ce3e99693b3b355912ea44aba5c449c35ef81212b08520b8aec2583c1990d0009ebb4de9497877e6a6fdf0591df0d7b7b6a8ac07ba5c2a76557d8fb4018a665fe0563eeb952f7e5a6623563bf08cddc6556dec131f03010a3b78967d165d34b78ac1b91ae504d162246298e06081b297a0ec52fe32168bfa44", + "5158129ca3536b070210faaf3d172bc933ec950dd3d705cee15004d58f45fb3154338fe5054630a9d4967ce8892b140e101ab8711b9b32343ba8b3a0e534b9db5a22826dd5cba107df30d85941ad5e19461fa044c4b2a5663d3c1b765b4bd6f51734237ea8acab5c48ad9a7ab85955c958460e1018de60425c08814628083f8dd18e9d03cfde3531d7feb2d0f67c92cf819b365594a2e3652071584e7d4f4d61223f1911fdfb219efd69739ce5a04855fa20", + "1f809f77c12e774309e90db036f12debd47f9b0fd9407b027e73ea0defdf88ae73ae4a11bf53a771534c2f2e0edf98d5f94f4bdfff3ed085798c7eab920d07e0728a0390bb67772ca3d4e2183b2abc5fef70c41c23c992e7e3821d870f1895245c43b989e3688b72df9f288ce1f35b77152a7220459b760f5676f273b17a9126eb2616e52f4b8adc3343b3aabeb82b59b37847fbfef5a7f6eb074e8c4ad251df3f1c34abd29a2330b709ac", + "1169515611a32d5223873d4de0cb45b21b1d067de5a51c64a2d7319009fe363330a1ef7ebd799f3c8430aadd901c652e09bcf99eba1ab9a4b3edb33e88d91c23624bd922e7abdcd22117b4390f415416235f8b68cb6cdf14aa73868e13c9e93d45da9775a9e80e495d838f663f930b8f577c8d5dd3886d0fdedd08fa1da7be022c28215a4bef0ea99ac35b6c627988d94be7aa4e76aedd078abe52a47b4174db00fcb7c5939c42d3abf85d39cd3aaa1cccc4" + }, + { /* i=3918 cDividendBits=3517 cDivisorBits=2034 */ + "0ee1dc4a848bdb198d1a02f9928706e16e617e1fcee90206d5c13e1c92c27f66f3c6a784a217caae19b8e5870500d566581ee728521f5f05f0d88f91b6b736560ffa51383a40838cb5559353528d99151cccc0c10b8ab401bc0507e52eb3727e85604c82f2a6cefb6fec8fba9e6fca9db4ddda9bbc9b00aeb4e53bb24b39794e483ef401edab1b5fac9dad8698c7d1c4feb7778599a37a53aa51b8c9d2e760844b0ee90d250c4837a23c1444fefa9e9ae6792c944ec653fd1447d2b9ec42a3747742305673c834bbf43b93875efe8a4eb037d499e2c78b594570d674381b639b37eb1dc9e07a0764722807dcd4d8e55ff85415c7cc4ba689b308477fc5694521f0462265709cbdd43f9c442f2f745619b73d459136e7a8f321f2d630baa393e3d767edec787b59dfa873dbb1cbd4bdd9de2bcbb8683d8caf58724bc9775ab6431a69724c53671de5f8dd9827717035b99d2c44e3c4b78ceba6022ab01c3d28476a77f28bfc86e2e9bcc33805a9eca9e724a4c26ffd2b0674d6dc7dadbebdb199e31914daf38258ac56ef674c12c67fb498276d54de89ce1f9bbb800a8d56648693667c2c1a3775b47bc43bd829bd10c7244730bf39d4b55c", + "03d1a870619177670d53fcac2e2eb7250cf1b86f22b1c5a90c0985aa476f7fb991c6b82e13cb769b78ec5d30e2e598c0b67db099ecf4a702adcc3501c72e32f3a03859f518dcaa172bcc7bfa9f93bea538316eb62e2d80b23e36cb7d1f910d3b10aa266aee56606231db31be0301cd8192ac34a86e16d2ef9c95e9b1b1d6cdb02c93764f9695cd76d26b44885205cbebb08db16af29271ae5be6fca4bd51d7f319495b50bcbab1de5caed4293cf7b70809aaddb3580b8d48bc6d4bddd138aa32c0c44cbdc6e2ccd4c298bbb10fef84749afe7089e45923036e023c603a104080c7d8f4076b0d5e32f2bec14f81c10383b66903d1c1d80820bf0c3799154f1e", + "03e59ced4a242c7fbc965b2d87af3467f15ea368026ee074ecb022c0b0b51105b72a748a8dc76325d06b4e1cc2bc560c155cbb1e51097e9e4c02a3f43aeb0ba618aa45691d714ebeee6ef2279a13e106d270a2a90d4707b315ffea97f9918df5022b32f7b2dabc0d39e018c8b0c8cba5c71e58ce0a422aaf426fb25960be6192c566e563936d4b79e937a365f3348229606913dcb22955da72ec01aba428ea12058e208a13fa8046348c7a52a2734607c3f1cc33f7cb7b3b69c3", + "02ababbdc3478aa8a47b21ab8bf56cb4606f506233ebade0d51ab44a93a95552e49a935b4012f32df689c8e3fd18975e851dacc483a6e498bcc41c996820beeda2f29d4bb3ce306c31860aad28a9dbfc5773683e3d8e9e9fb913a5afc0e806bb0d14af42a78c45f84f1466b50500db2c637c9759481305be56debc55fccb08e1e46a36d368ff40839639da1d9279cb96708d594883a0a6863dc24b6f1258b5ba723c50fbd9abd29c6094394c9cfae4cb9c3a63f208a3e0ca053b23ce11f37958cc77359dabc81fb8519c05a975bb2b64aa9a11822765b7ca140e04d044dbaf9d782198c94e2eaab7fff976cbc7dc62a56fe4f47060b1eeb12ae0e53b3c2382" + }, + { /* i=3919 cDividendBits=4046 cDivisorBits=2070 */ + "21153bf858d0d09f87e15b6610d2e8a2c1ab56a69417c24e81dca19759207bbacbb741abc551170f14fe237521febd3deee8e6864f0718d04d505953937aba76298ccfe5c7879fc00d3ff7c412f6d403dc5cb00fb7cc6dfe6596cbc540fb1935ada90549577bed687e68003a45907dbf1728141fb00e1bef978fb5a666c87a6d2172e7ef50fff9e4157d141c12b4ae389b8381bbbda787c8612d98a45d8eb8a4c6e59fbe825a74def4f3a65ba16a35fe98299bb2f6257845b49e6ad19a4cdb72e8b9fe22b47c9154243a8ef465f65aba4c38796f926f8e8b4bdcd7809394bbbee274264c8dd45390d963c1928c4f9ab3b9565b5adb7017d9f97741b9ffbeb9fa953b1554ed14f1c8ecf6a3637ca48d8b4fb21511fce6bc65070dd4de9e5587980d6d9cde9d7936ae23c2abf8525fac90905795c4ba563bf9b5674ce4a84717fe6a4ad2210723c91586665edf6e1f75ddb26ccdfe9a86461fced855d2a5c7594a03aff98a477124ae9002ccef8adcd6aaa0140c90f12f360da42eb141f2403f8b30619f7fca4d834f8fadb7ada5cb95853022f531f406bdd49eade101aecacd3be454ed46e8204bb7249c41e5a9094e80538004d920fe448656b33ffa2a2e047263c5fab3a261aa4d39f0a48b6e16a5672b83b425ad236c69bfcc247fd57317caf82cf32e34eb961f11b166f9ef89452ddfc44c8b3cebc42ee8c8", + "1fa9f3eafd8552b399f032dd7a1f531d2a315c0a8c663e592abdc476db9ee4247dd1cac6ec4f3afe0e54edf21203f1886d6933cc8cd32e0b0ce77d00965e523ad41d13da71b609fcd89e390de581dfe2e9719909ea2e0dc22984db7015cdbc5178fd7f10f798757c38eed9c8f84b6b2f03e66256e8e2d16956e869389caf434b43950149e1fc510267f59143fc50bd34e020b11106b946ad6fd85ab1d518a5b47ad2eb203318e3077d6faf156e62fb434c93fb7cf8f5b5405cc78eaecac7e23a89aeff89a79201e8ce40d183edd664e5d469cf63e9c876f89a7753ac311db822c9dd4a72085d290bd3564f8afb3d5baac5a7be261e25033541caab2cb7217f481da1d3", + "010b791a363e548b071add78e33cdb929e1a8446756b23310776c8ecf61c74ba0e18d0484e1cd3e2a6437b40848096e86d718335f161b69771ec02a17786ad2f4bc2c404cd9ac09bba0f6c5a9c48f1ac5f2b46503df71df5ff4270d74ca07d417833009bab273b1ce58d96f968af690aef1d10fb76af53f7cf8250d296e0618d8aec3e768eb9b7da4c83c82db3d5b52da94f556d2d0e2838ebb857cc3f749f25d483068944b93fc985e39bedd88d15798d31498af784218e0a17bcd77de393740f4185184d0a8e42cc900bfd01edeccfa5046880e9e5bf67c7bad07e774a590764c4f14e6c1218df7353ac0a27a858a9bda0329da6caac15", + "19441ebd75eb23dbd7367b22601cf415ed8c67a4790f25e583b61baa819b48e510a2bb6184e935edade098828ad9d4a8d120ea51e03322c4b396c0413f0dcf2c2fd481fe3b09c6acec287a0aa807fe33f3892032c7c836cd9f1dffa929738c018e1641b3b7dbf35da43dad4663dcbd2ff1fd2cb91ad5b26880e5ab5f775b0d9ae71ef6135e0805d1927c479c714beea6348f67750a100b0b94989ebcbf27fcd9078421a76b2d17ca24064864afe0221dcda29f27fdd031af5b87ae99ee148179823e56e55ba7468597918614c785ce0c5ac7c5597408613acdfcf7d18754bf124a92b923ef7096a82cf44fc831c0ccaf059a665c6c641a8d3f7f07b12a664f6e88de79" + }, + { /* i=3920 cDividendBits=633 cDivisorBits=126 */ + "b7f837a7ee04935c78d4db812f13b444f7490b2d6f8a284fa157b18ea3bbd33341d951449dd4fb315b6eea426b5fb2a2c65b87a5271fd14e26f5701802a5898fc67f99e19668c7b2024e7daf5e8d21", + "0c12bb2f76988b68452805392edb372e", + "0f3ce64350261dceb2a5a3068b1efeaaa05f30acb33b3ca74626155d31ce34f189b0e5e96d52120ae553e6eb3d3c291a276894b9aefa81abf28e09bd69f36394", + "07117a23e63f4f466f0e6da293a1dc89" + }, + { /* i=3921 cDividendBits=253 cDivisorBits=157 */ + "0aa55df7f52b98e396ff35d38ae43e1f769213fd487c934b6e0650b9deeb6398", + "18edbbdd7f555d0d45006d230f0d28bd15e93e2d", + "6d53a34bad4a5be84560674b", + "08fb4502e9a221dd65dd5948557ae08229b21169" + }, + { /* i=3922 cDividendBits=2274 cDivisorBits=1411 */ + "5b165f89834931fea8a01d38565c4e9a04fbf87247312a1e6a052c6e6ba109cca91a7ef0f3245b02fd5dc253710a3d7a9e68fcb2c85bba18a1a6c38f3a52ace18f14f310c7272e4e21917f2721c5c96c26bad520208dfedfddcab29fc57d375190a93776c4b4785120c7d11c4793277064e8a13a2979a6dddf4defdc825e8d5b5f7534fc5e7cd5031863f8a6ad82285c0e05fc3a8511e58f8291479f02c7ad5bf7396d6a9c1e689acbca065b6430e3a2503463c9dfa0fbfbb213f50da68619311f64cf082e6a0665774568f29ade8db3e64cab654002b0ddc7a078e0d3a60799c1b7e9b43f98e98e8d3969b42e4011a7bb26b14d0e24655508ca7893d9d193fd43eedb635bfce7a919421e038f110cbb4091365dddea0662b4108e0a", + "064980cd3810df590284acb43deaa65c1ce96932aa9479be69ff102f60ebfd13eaa2c109f0692ac8122f693b87f95f0b3c58cd03cfa2203d344b8cdc9a3e2f81bcc77265731431f3533664de7b648557cdbb7a7c5ef1b46644afd03ee3b0a994b19850fd8e2c97758be2d014dfac54bc8f886c374e7d5617a717b76403130bbce1411fbc7c6710a41e4973843eeb7bcee8eb1dfb0774ffeb877c7373eaae10fe2e53385efea665d4eadeded4b12a56bff6", + "0e7ce929cd4edadd4bd76580a1920ee029878b634f7fdb1041138fd280da80cb3b7d6f889012df93b4c917eb0debaa9f2d11347e99e6c7308d7a4e16a93da0f61a1fcd9468116c6b431aa2e794edcc1e493095f4396630aebad8ff9e0d82c41e0309f65ffc27c2aad03cea9b", + "015c8abd51ea32a35d7c975dab3d5035be51100c19b9f335fcb1a68316abb82ad934e61b53aa9437f9e66f0fd83e32a56062e0f5aad7d93daa606be1c05a6cf228de37b0da60b144a3645e9278dcea6bfc70b015a8c1a423810ba261b59b67ef83c21b26d6fa22dcd9dc3bd8231d40e71fbdbc22788cdcf3f7d2d3e8f2c53e4baf4257766d54f12add640ff77c388b197ffa159f3e0d06c126f4912e0e067fc6bd6f38d4da52095b34311b00c1e86b7818" + }, + { /* i=3923 cDividendBits=632 cDivisorBits=539 */ + "1b840ed88ea8b9e359e6959e6eac5fe1685618b86003287a032a6f2b2c6ca4f59b371ab5454dadfbc3817ecb1a236a946b675b7a37ba301a02ba0cd20a44f581da224c7c5b51c616c2dbd06aedc6d6", + "07477905d4ad87095d5a3bd87d30315222f36d6f3bc1698000a5920e2d367e07cc328fdb0bc1517f6c6e4e588c1fb6d21490d3ed2462729a20783d856804af82aa7f4b35", + "03c7b2b008a9314cac8e07cd", + "04e629e67f1624eaac9c02b49aae3cd869552dc284f99d81e46c5deaafbf7cdc77ff34bf4ecf40fa660dec48f876dcdf13ff117262f531a6e7ec5b553c012ba5148a1a65" + }, + { /* i=3924 cDividendBits=1965 cDivisorBits=563 */ + "106360ee8e8f16d27e868acd5c28460f61c558d7973c78022a1160e534bda5d3321a770191288c38463fad427c0f332061e1567ea137d80a7e03e76f79157b52026f7a0c3e4a12bcfe88724881673656ce1fa47b1a9474c94066b722ebaf6f24ecf230243136494843772cbce2c3c5349f09c337953ef338c5d257c8d93a7a7a7307767f31e55ada1b2861f4cccd562d5205cd76bc89c55d2d4360c2ee6113191ca5dbdcd526cb531375874e84e61aba036b4b2de16f78d29f0237635659e35469ee69df4b6e0c71f95659bb80d5ad235ba6ac314f936e50c37435bd28cad92360b69e1174bd78bfdfbfa5119589b386655f5bed64cb", + "05ee9649ec6e1f3d9e87f5aaec7be1e2c4f4be18e64c4bad4bac463692c81307c42861ccab5c95d5279bfd9fcfcf56dda4be282680c202c27d0a1b52b0d8b49bdfc7c306fb04a0", + "02c33f5d4b279911942356ee6e78c88bdffb7f91ba0d5d200f45ee052f912944de123866676e57b29f352e6e62607912dfd3614cf3a3b3bdb732ad182b47a575ba60c1409f7c38881eac2dd0d674a1c094cf49d1d8e0cbc7993810731c7682d00148b153059c6f785614c793dacebaacbbb6d3e907fdac9e42cd1b9bb82f3b293c628b7df22ccf197b630aca520f845ec9c4f1315d57e4a7175c17462c773427cd3a3878793bd83bb7107afc49b7cf08", + "05af1f93beae114cbb5de52f32bcce7a2f0225dded914a5aa95c0b72be12fcc3624e83e639109ead7069aa8d80e1f2264c307be42fcbd3a130cf16927802bf4f4d15603cf7dfcb" + }, + { /* i=3925 cDividendBits=3727 cDivisorBits=1618 */ + "25ea820534598da9c15ea3ee0079f6d96960b84b4d11bff4fa6f7068faee88f93a0a4c2e9a3b3b32c7a5131f8483c57393bb71d8b547dcfa1f4c9f8b2e3375b74c08786cd2dd036fc1b84c3abde1f984faf473c31b9fda2cdb1cffce7281093160102a1671258ab1b917cb23d82f550a06266d4dbaf58ef2c4f4c48b5746466ed1d931da6626a531ed792c16797dd53b7b3d7a0eaf67dd2eac542963286a4b6eda3f7313b0754ad387a706fb9a4cd8dd0cef61f61137cdc01b4d2a24dbb8a5a353b39b1c1f29a60e505e58e730ba8d439802a1010a63a1443e9022a3079e251ed3f4e75993d50345fc2100cee988128fc16e768fa417cf76f7f1fbe09069cf8799ef5ab4f465efa2a9e7e782654dc7732c6d0b69fe6c6a45a8410a60f76e3a54c04c64bbe6740d65c8fcbfdbcdc74bfe6479ee9aac1b207ef999fc6cb3ff568c18c19ed70eaa7d75fe60cd0d11f6d8038a403de79656495dad346a5176f14be57b00cd99640e189ad9b7631dfd934be610effab248779af475fc2e571e7985727717f0de2ccd388aa1f0b31ed690128794e8c06f0efcf734004845c8ef4b14a94205f5bcc41c36546b841bbadf739dea7a422910fe0b97afc8b4d264806be6f48f7b93363e443f67ff18ecd6fef3aa61cc31", + "0190717cea352e4f26b9e644f3d06c60558da3461826d155a29e705029c41a8b5a12cca3e6915cd76b0e8b800f54e57392aef1b4d2d6311c78fb56e213707e5a3bbc298d21c49d50732e1af8df4a060a3b24ecf3c742551d6bd13563207b2ec6dad53b01b4638d5cabaf005b19ffd65aed38a249870bb5fe738691e2e407dbe9d8753061554bf3a377b7f52d2788cf7d3c8cb029ee3d17a554e375a13478b93210f1f7ee7e5a91c43712eb531a01dd5b91c6a0c1e8be9293d8fc870217f74c532530d33493707d1b55075f", + "183d49b0858e81e3ce9c645f22ccafa4f07fdac6b4a332cc9f4e63edacd9bc089ca6afc396021b1ac6858280ebee4e88efb1c73188c675a2fbd37a9b16e018ab059a03e4469aebb28c0bccb8c343c48efc7a9957b7198f8593e663fd2e423d6b8d56163549f6e4812192086a22db8ac74dcba8446752ce0be7dfd97bd78519598b888e8825c3674240b667d9a3ac2389f4682ded2caf96834cf83bbafc7ad147f559858ae4ae6041d7f6c0f50444802ba18180599c63c145815a4e4ddb68614fa5abc07d43a7812dd0f5dfa4cd269e882afd1f9eaa9253c10417dd3bfe06dee4159e686432d1025e20d8be8e909df0678813cb57b6cbc3c3e75e064a966bf987742c21d8e9224a5e", + "a5c9edbe204fb465174708e40ed49fc05fa349251cbb7d29c63c564b62232035033a5990b1f05368aa126d5417905ee335c2bd1d0bf02fa8f8ace959d166f20563b31588c49a6f613b6aa851bdc0a87e0e4d51396fdec1d3957c5ddd46935c57e2efbcc3252c50af2331f0593dd280fa0233f4e34ba059748c040ee98545c819047ebe6ffe008e2180e7f7d31727ca503386e59128a9c5751526f3f82b179f29f820b0c0344c98922954f125e696096c5c7b2febca9487cc5950bf369ba8003a493fdbac0af49b69a14f" + }, + { /* i=3926 cDividendBits=3462 cDivisorBits=1456 */ + "2a36e13c430f8bdc7ddef7e1753000a730c4adea561b783e9d6793e691441fdddc302a33f9ca0db56ff3e15978fcf28bdd8f7f4622fcd24912780f19239fff7e0cf57b2ccad3b38265c2613068b86c6ef6ee1becdf9271576f5490c4872eda7bef49ae6a330658a83728e7cc6f58b47d145fd5558fc13cbc591ff2fc4843e6f16d366ceba5e6bd79d9a85906516ab4493f83cfdbb7ec2131b318a5b2ee6a8a0e416d1c558ae8f38a18533f94a807950abf4caf73c044f72055b561e98db7a1439c5a4bf9f202fdfd7718fa266c7aa22d2ebe201416c7974ac523d5fc1c00af21c2ce7a438b985d80565ab48b86e413d8f4ebd227b0d804130ea51742c18c294376b16ee82cea8b813e41e5221b2684d2f6acdb1746787888a671738cfdc3616cf047fa3e411da24589629910e54f1a01befc8e9a634968ab2b270110e1ee2877b9a648bc23527f9de81db481a66d3d7b4ac7969919446d6fef1c149aa279b7f4eb8727caa6c802aa23db542256621a4ffcea21b222a6571e045f69f33b546a1ce3dc4ffa63551fa15116949dfd806f9d3207a24d2efc063988f8c8fbdc6bbd9c2a0f1aa2d31c011725d13adccfb88f0e66", + "c2c8c18279d2f0216b632795a1253bdcc18399bcb3ddd4716e8f694b39496bbcbed9b379ff6d8afca31007c4f140dbb8318db983c603636d04eea6fea49b84beea115dc56d06e6184ca4a4dcdd13463d214e3b9aa9c7cc029b86b56a50cc6065ea37b1d893730f8b6d749dcacb00b0a8afbba3934a54a60e2e735934b18caeaf9f356ba6eeaab97866ba0af7974af1f640afa78eac8295d20ede1556dcea3a3ee72017c7daf9e51dcdec554266ad4ce3de612bebfc5c", + "377b36274e96846c124947a6d58f500e061f74a34b72492bdd215e315332badc4a4b7f765cd4dc4a2c5e061fcd8bfe8b2076fac8a4d4db811027025f976d09ab12fa30a2305d06003d38a5188210ff09a61618755809f92fd62e27459a6f9875f470b62d7640e95c1b4e7d912f74b0e104b726367599be0227f5b2f0bcb05e2d4b6025d0f2b102bdac6b969a4a797b56c3a3d54761667abd49338f0309c44839043136b6bc3d418897ef1a26648649e9992d53a73bdc040754682278d92eccb5ec1539148c4b9a4bb6de1d3172f91b516f4ea497596b94b8b5fbb1cc4be894461053a9e7e57abab351147b12ab4553ba5a01889db8daf837522ae1", + "ad2bbd2b2dd39215b4d539dd5eafd3d8e89403d98781e4b4a8cc8fe974398dc6b02774b84017a3bbb859d00b712110b9817393d134b201088ea6b2ea3dc63ad405748934d334589b49fbaa9240aed36dca421720417b597b15e27515f671a413ad7884433a91a5c89e011c4b2f085c82afd5141ff0808dcf12ef620550e5f0f1676daf12e51c744a9b27e6140b203742d9e7f87e88bdecb42cad5624e92a399cad1d9e0523ef70a63554612ceea86f45e244cd47298a" + }, + { /* i=3927 cDividendBits=3644 cDivisorBits=3369 */ + "09c2a5b3a6221132de5bfe6738e4d457b8ee6269bed4a970e79d872416142b605921ab5fd40d5c1ed2172d28637d88ef9e8fd79869661fd3775aff74503fb3e9a4b39603335e30b0cd68445cbb22125ece958b3a6f472deb70f635bf57898eff3dbaf52f57f6665866bf58b7674746ed9f777b99a626e4905193ab2cf2c3bc47578f7cffeebe97edf2cad6afdd4461fb5d0eee7b7a77246e9668e3f4c98eb5cb43890ccf360ab6292b7b7d68b7cfb38d0c05ec587bd9684ba45e04955cedf0da0e95980ba08a6e05f762d8df37b88db0a02f688942a4c3dc6cdcdb6f4870b2fe8ae04f9072151206e88276141aa33052a3f9c52cd31ab0265d484fa92da671d298da2280b8de01e1760fe540561d4dd38ecdac85644964398b9820cb6d28b1841e901c5b693cea57f3d3109c30305495ae48364b5338b79a2c12651f4327b47dc861e011c1ae331887db81c902af64c96d3ccb2ba4be2339a157b4bc429bffdcf4ce9ed525553032b8ec49e1f00f0df308c4d3ba0a8259640c566d876b0fa8dabfb5242966e8f6ed300f2af6f0f6ced6af2da25cc5e3f397b52ba8933353735470a232ea50831ca79531d2d3a7e6ea33f335b2993a289a5578a2eb42a10706a1deac71ba7546c317", + "0118db8ee53a62365b3e1cf730ec2bf7d9eef8d75b4c028d4b939a1605c9b4c06c5da6f2b81141c93f776acae5410ec369c77191e239fa5430c23d7b80d087804ab2c5582ebde4e9f104bc932d173cb7bfe540985460fd360d890461eded29f8f285fc546656eda1e837d4c3705f8c9d8326b929eb943b0c5e0160b05e95ab83d7523b1b893e964a7049162537d10faf36fb4bff3ea99a226d458e1d2de91f8ed0a6a64a9a1c37ccd2ec505f4ab1924e26910bfb9904ba7d7d58c06590d65fa15f6e513377efe6e7625bbe2fcfae0aac674f89d7bde3fed5845ca2a637fe78ea4f85bb8254e1517369b7166e1a326b9e658041f7138ac3a5c25d130fecdb13769113661cebae56e9c8e18b1f103840b2a5ad91b8801425cb7d1f69835c3f60b9cb7260c139ce73710c660c0e66025a2312a31bfd01e2a2564c731791b4522006f40ea6128c9914af8f7f9746a3a8bea7f894504cb8655dca82ec7161509ad35d787e348552b6f598253c95a1910e065b46df060c78596356510ea3290e4ff3df9d17d4fe9b9fd337d0da605608406ace4e43708fc795774f208567f2b1b942ead1bb44759dc8", + "08e5805eb01776c8b96caa90f955da403cff5b2ce6fd24f270c95fdda87e6f7cbb754e", + "d35b3c4f2ceac7b9c77fc606a15f3cf10b45d386a6ce118dace73f2e264bf4ade31597f2d02cdd495a24640e03985a42833d9a52a83c7d0800fd2b5847ef6b3c157a30d5a9b16fe4e32a1f6836aec4745d40c04af4837df93cfa380462c39e679f886b12c5558c8a481d1d4d69e9188eab8c891ecea89d537bafc82a60c99ddf42e04fb027610cdef11a7979dd23b1bedbe09aff7d345cb21dc194a402146e65be8b3d2903c58c92fa0db588cfd77bea4451244b140a93aa257b2785564099d0cfa20dfed88c220055d6569727fef404c58fc7f370a2d423c2f9928860caafdda02c6b6ebc6a0f25bd43617ce3218c6d89497ebb5b8cfbbdabad0eab282838c2fdf9990f4bbd253e245280c8a695f87d1b8bd409eb65be81e05945c73a1bc33ed7d5fd93679887e76875d12a0762d91f00e463c90588d1b68f85bd056b04ea718686994a285cce8e5b2ac6aa9999ec869da52a48538e38ac008e9d98d6b7ebdbe1cff22b316ae634b829ba0709ae1f7486546945c37d7dd892f334c5c70228894ef0cb30baed214b109f982e21006ddfc8447e40da8332d656bf0c6dfa7a6a2052b73c4827" + }, + { /* i=3928 cDividendBits=2966 cDivisorBits=2560 */ + "023785751774a299bdf2e7f73219c520bc981801b3e2102065318522ce495bdade20b4d8c40ef421180086a2523129c4f8a8b54df7811cc2bf1b878793003e100216f53022a75d98341d2a855bdbefc40563c546466672d54a2d67867673eed07fbee767b006ee912f242a48ebd54e431b5f2d7ab5044de20494cbb4d12f686f92b1d37770c01ffd5e5812b94d2e1e2b6f5f75e3d8d6b59fe091770015a7dd3e17bb42f2696aa3983353c660cf8fa3488893fa60c848add787e0b03ee51e263362682393ac7c3733e0c8d4b6518d9a4efc3339f51950864ab195dcca6b201886c9590d93509e285f8498210b7212d8b90ad018e3c4a31725a04aac56ed8ad11cb822c34a751fe887d0d36c8bdd157b63a2301ffeddfde1eb24fdcb0f327cb5f10946ba6a59926860e6536850cb2b6c075925599c6ee7f6fa80e5d3e5493fe3fa8067144f6323a51b26c8195d7e36383305099cf08ebfcaca3a87063465a52554811c66353e3e45fd9c75c477cb6a29d32fa01a", + "8f7c8de9473ff361758a398f82f6c53f06f23916cd519c97a5a4330c5aaedd0ff6433102c3e0e1fb57ae3056a3186d1cb020a95ef12b3a2be08dfafb3702e6b20ed69cb3937ff70ff23b8828c06b89ed9f9ddf967c3da46a33b435cb87f3b3ba3cb4c304303a2451553278efd95050581940c95fbc78f5a2c0ad654c699a98d51af95fcb04ac6f942abb79de9df534b254f7404972d117c18acaf4a1e4a18cf90df68dfebee0bc35c2203f6aeb30d244f7ea47409645cc4a7f06527b001734c5ba5ed924d2ffe5bc4401930300dbd8b458a85c8de5d87d0082987300be10bfd25d7a9ace9549263cfbcd7dff8c66b3c7b3057e09c0d289d3136fe21934b5f8efcb1d602990b9ca709645e15793b878fbe2b8821620ef826fa316bd60b38c484f6f1020a07cb9e9b57fc666181729cc079aded347e11ae2fc1f235d76414a78ef", + "03f48984d0f06f2af60a399cc038c2bddd8b844f8b6cc73b4df22ce9dc1db086fbeb1e71b5720eefaa94539a857e52be91e3e7", + "3e3d9da494143b1c5c046c7b96bc942a06feeee66966161c7aea9abf211761b88f81a0bab961e46aec11af0caede29ac5d6914713b6b928cebe0895b930a29812be18a8ef5d2d51551c2653887ae3439b565e2907f272269181ebba83afb2e7ec1121fa15555dbd496d792d234980df88168251e545ebd56fa0a378f25881079d8dbb06a191d11e13e08063738246df6b48e1c551e3153adea8039ba6da70a09a05beda730e205059bc4a604ed573a6619ee6ac9ca07092d511edeba3ea31ba2aeaa78b994410e908143186c31f9423f7a09f654c4c60c666ca76e5f2007cfa49164fc2056197b2efd2093ac1453a3eb0438ee1901d9900ec4495bc4ffd689a147b80f7741e5f52cf5118e1297fa71dc21640ed13277bd31782fab4e8b20d4f750b80bd31bc90011c8e6beb1d10191ca301c8eeb9b59f45123069911fe619371" + }, + { /* i=3929 cDividendBits=1843 cDivisorBits=1240 */ + "020636ed29dcecda7f3aa1a08a1253a40d03463aecfa2ab8cce095b20e3a48cd969b3f9e4123320361a0468619c8f1849e06fd8a8854a5574f1fc992fb955ffdca917a3ea6c9e223979c6339c8304b4bc9de3e153c09b82a1b200bba9a75dd76312f38f440949db0e4a923ef20cf539e1d33fab51e040a2d33d9b60c54f83ba9529ee2a99f817f117dcd49a66b92ea939e423b6d9ed3875a7bbc96b24bbff28fcbb48b801cda87381088045bb35cd91860c84d8f079c296da26eafdc8c743146cf00979370fc46159d0732b662ebf9c2a9c23b8c1a9b3c36f7dc6f0150ddc5a30d7828c9c528a3", + "9001636686d9eb211002b68b772c73400522338e56b303ba20b368d74106d679a09d89b778a01744554dc08104707550c582908e1634d7c4bb0d28e27856f53c59f23b0b9062a6630b148ccd1ad84fb900b855af289271349fcfc4cfeba840bddc347235fcca513cb1cfcbae32c54efaa92908a77278a475c57a87954b7862e4700ce2e3730056c4bba10ed45d9d29e0a2eb3085d74ade552c08dc", + "03993c522eb129efe39ca7a428f6de95d6ec1f0ccdfdfc9ae9e653ed026d8dcb0819b66aa64b9e25caf420de73bccc1bc3e31a04cc72d850f88eb70f6ddb12e7bae6017ec40b57af8d097285", + "03e8c70ab930459ce4c9a2d450d32b8ef3451f418c0fe62318aa9022a3206cfcfcc508f15e89ef48b02d6b92650e638d5d4ec485470d8c2ac544819e3ede57df86fe6197726ddf278fffd6d3cd86bfa37d9851d5a5dca61a5b143600f1308dcbb8a2c7cfd0ad0d6c14bc748522642ba1286de8a2449d3b73a836fbe1d83d16dd45d39ad7639fec44570ae6b3d762dfc2c6744522917ee772369657" + }, + { /* i=3930 cDividendBits=1288 cDivisorBits=146 */ + "80d50a717e19e65ff745b34235794d1446f2c8eec24a571e463b816c9c43a96719a935ea5dfb03bf17b24744e27820e883762d92355933208953f4c8ef66d39daf722d6bdd9315d5828fc1fd0273857727d72d5b13f33feca2cb60852692e8a18a501ceea3f499695adcbdf46cacb495d3d74b2e82e44d7f1078aaa997043366457e048b4a6d85f6e0353bc1888af4eb61e150abf0851e283d6bc8d8683e04762f", + "47ef155828600a9bf750433127a94c2f4395", + "01ca7da58bb2d482e22609c723fc8ba0cc7b3f5f133d557b0370e6aa997d80681fa303603a0a1b1b9be12944cc3c54bc9368caaca6cc886b8b28c4f2118d4375dece2c625a41e3b67f4d86541b680fe2617afd7c64d4829245ad89b5cc5f7e2dbe1c46acf8e3a809b1e7ab76dd3fb1f0a4abbdf9e423d6fbcfadb4d5715bafd6f77ef7e84382e2210b12194ad74c167c", + "324f0251ecc7006199dfe695afff1414ec03" + }, + { /* i=3931 cDividendBits=639 cDivisorBits=572 */ + "3caaf649cad9eed4460a94aa4379fde599847a7e9f33e5eeec76891f5a8a97ba0bc59ad1a2a9d2113b8fb967408bbda986dec3281ddbd574a02106932e8502a1aeb1c839e2d19b58d3aa14ec5c2500b4", + "06d873b5bf6ac826a1eff4baa7f4406216f2dd47c1e666d8d34fcd9d77d5d290314cb4824d273aaf874ed1529c3eb8f2e29db1817e08b4948c30c1478d033caf114354dc0371f070", + "08dcc76cedcee5b5ee", + "02660405a25dddfcae6fbf3ad196a8b598ad45eb82ee28e43e4734dff45cafb22cb75c13eff5d72e98659951180a7ee0b30df0144a7b0c66559cc9c7ceba4d08cf8205db65084894" + }, + { /* i=3932 cDividendBits=720 cDivisorBits=636 */ + "03b68baeac7b452c965fec306cadf2257b28c7a2b29b6de7f40ffde924fdd1eb18853014f523920cb04b50449fde1c7230227c4ef175f970b9d91e20629b30f74fcb48e58ba8bd1b0df0fcf6b094cb45d0e2cde8df3c407642b1", + "0ee4e01d8763765f346f3c790abde51de781034a79e90885b289f4c860d88929d81db71787c44938312e03ac3867cb1b0270b164b9c9b44c30d412b185fad641abc8c28e00b0a4cbb3ba3abcdd0b8a7e", + "3fd20d66177ebd8bb115", + "0227ee5aeca07bb68fafbececad8ec907f67af52a8794968d23e040aaecc0a3a1a814aaea8505f916085eb42333a967bcd7f915429419273ef1bcccd258b821b231b9ef662963a9f8ff47261eb58c85b" + }, + { /* i=3933 cDividendBits=151 cDivisorBits=96 */ + "04758bfa5ebd630393f965b6e64f29b34627de", + "08f5e1019a5478b68c952718", + "7f65ee7858ae91", + "07c3cdcce25cce4e01f8b346" + }, + { /* i=3934 cDividendBits=89 cDivisorBits=22 */ + "01838ce81003272f4f45ef17", + "1ecc6e", + "0c95597c69f98f32e7", + "1bfbd5" + }, + { /* i=3935 cDividendBits=100 cDivisorBits=23 */ + "03be67ded00eb538b0846ab83d", + "057999", + "af0d33b28d9cb42cbce1", + "027cc4" + }, + { /* i=3936 cDividendBits=288 cDivisorBits=56 */ + "f41c2d585f1e5c73e7a20262492a8f47a9ad231870d0fbe573479c2bd3916c19f962a09e", + "18d2650d39468c", + "09d5a0938a0d2b41e26e37588c0b43069b5fd869af5e3d6dd5b32474c3c7", + "020ab669b025ca" + }, + { /* i=3937 cDividendBits=3797 cDivisorBits=1631 */ + "14a90a53b45676675a5e89975a3e07fdbf8def99fce10856511b92d92efb977f2f44db529c5893adb6c1e59a9c0a79b1ff23b1c5044d9307d4e0f9dcb435f0a0329e01a396661253f8cee958b9d39efeb5b88cf16de536722880b084499c9972ded1b1a71548d89487e190e47d22b09ba3c5cf92b7229a7954e3d497fa796c074c6edfd1b3c52eee6e1c8fac7a7cbf6a1156bfd3bc058c2fe113108432bbf658fa170c23adefd72b8024be667efd3513c30938dc3a5dcc182be3a275fdce0baf1b192771d16cb908aae482425cf5dbae002cad384d727bb4ab39361f885a4c46cc77326b2b0c826a7645b8fdce688c910121448ee6da8c4b231c123791d4c6fb9658fd9e70e2013a7e91f6d2ee59e937d8f3ad7bb228ba58b549a84cc58677f0623d67af01b4df328f1ad8a37beed3f92069965ded6fb681e79a14df12a14f16664326af53a65043d5def60026fd25e23f5780de8c4971acaae1686b724d28b7ce94859c34f9dc4951e27c897f3e6502d210decf2fc7fc3ddd4ce4120f95f2ce9b09724c12cbc266de36ed51e7c77e17f56dcc64e3565a7fe298c2614c2ad5b84f095aef9dca77a66a67ad3cb6937fc4e87e7752bca1c396197fb3153c79c65373dbbe3eec8063f7de74a9789547dd708f40d504e50c9d2f151f79", + "7da534d952be1a823e990958b95c5ae4415a2c1daaa1a4ac30bbc29c356b2eef12d3693194d130fed8da0ad5a8cddc30d6ddf2f9e826469694e58b3206a3cc80705e97364bb365afdce3bba461d89bab528cdd2953ad9747d95b07bda41b0fdd526f0d1d65f98688a5e4899a6e45126e26c789917abbe89a212b5fe6e7d7a641a1e3b31a24f49c5dd1f6c928b23d72058bea9a3592100f0b511b4a3e725fcfdb35384d8ca169559653f75ea491080119d615e0591e289ec3bea68039aa3526b7c6c38b182558caaeb5cf749e", + "2a1851d79cb8cae871b239a5271b72aec8638c4b9a0e70e7b51166155b239595e118977ecab3e3005587f0a0570d09d0ec8a4c967404f0625005fd483831466602f16ace5c6cc9e029b91f62e912b781f73fe10a30e2db8cb5fd906945bdd4049ca71f7f121653d54314443588cf04c6a5a6118c8a46464a8f615f311135281340d01632a254f6aea5f27e0079acd5ffec585940405597f0733fae96154b8bbc07740670d9d8b0638438d53823145d5e4af76d6546b34dd13d43c7036886656a205907cea93865c37d1744bb5142db1e76bac5e474b2e82bda31dcbd132f200f333334b8ae21a3a29757a62e344d6e0ec3830ebc38475cb41da3cccaf3960d47f916fdcdda5ff049cc305454978d8f", + "16e21f3cc68eb7058ea8e49ef70fcc8a274059dc7b1a407caf7aa5ae2a9ed0f72b8d3a8facda2e851922c1552667eb7804eeb69804d37a1e22b1cca32e25426939f529ed1eb4ba7c09cdf705e1af1d07e788a6313a1b325a5c14b63554d5774ce14d3da6a89c0600efc9d22b06aaca244b395a371bd2ef51789fc51eb06fbd89ae1656818a29f1472b659a6b97d3a3816c5ab9015e816f2c585a5a0b6847c8e7f2e5b2bf9409188ca922232bd350f6f7b43abb86a6aaf0ae28c674be264427d23eb4d4c8d61c6768bbc5f537" + }, + { /* i=3938 cDividendBits=243 cDivisorBits=197 */ + "043d9c850a3dcd26fc159d9342ceaa1d0858dc07aa2abf75c80fd0695055ba", + "13cddc335b03beff6f16e406f0b1236488a0fa4b4576390016", + "36d140b49255", + "0f01d6c5953db519ca54bd7a65f70c001f6ecc5e4416dec26c" + }, + { /* i=3939 cDividendBits=2764 cDivisorBits=1827 */ + "654ac6242834710c06a2db50ef7a7400ec73be399e1e0314d66674ddc1b50ccdca4cbfc13a5c3fb7637be98891ab9e03d9d7405e33d44466dafd67874f9911d4612c57c08ff325e6464782559ca6d2d1eeb9c78c028122c44b9de6e053777876a122a6f68c6816d48af4cd7a6475b73dcaac7f3442977e05f8aefaa94e141351696c9d31318c9a432e66f5961f6567da9b6919928e87d3524b8552297a68c5924e459d975e1aea94ab98b4939edcd5bf130fc994d0d8870ddb329ed8135689b24e83ca8b9546b66bd4b5947a35ff974ab7ec9ee61f203e25be0c3ae9687ab07e9cc97fb8187019c30f30ca1dac276d3e41335ca165ed6ca3204dbf029a0df6f5264ec71d12fd9e3596a2abc2313469d9e1eed77ac03eb1a088c8d6ca6daa1254e8ca1c7b77ae06ff11825f66fe77272e7e9a6480de771badc5cdab07508298b1b612861d64b7088bd7f1d466fcc8ee81eb4ce48a03c1953868", + "032551e5103ee27db0c7a73951ee7375bd8bbc468b5053953fae57d728c3b9c22073cb5525b2b0c8a42f6f7857a3e9b0f5c1f14dd5e3cc631c144aea2d7ab910d4ae86ec268c7bc5d44538db5480733ef7fef0a57cdb4cdbcf69d7c3f36fc1a14d1e189825a646d8ca75ef9ea838fcb71267375392a391bead7f8cc7c3ac6d1efaecc4c210c7e6969d45b42b9b83c38473848957d8d008b5ca930d71dda3c4c6b676b21b4e6e2e66f6c6da0dd3d2712ccbff4fc31370569df4e58360e0a5ca9b128e2ba7ca83c6575bf5aac8d555faaca6351d939630883397840c7754dcab57640f01fe5a", + "2033085395370bc857cbca95a79287fb31f9001200b2174b0dae49923122af59c9cc5e6d5778cd29ff066f749863a5b41438e858511bfafa93e5c94813d0e8ff5ed6a32ee3e8770d19c2377f3176e443a31ceb27f758094c88f25e610addb0410d969035716411372be2fd4593eccc3692fdc1cd33", + "2d9bbd25aa15b3d8f5fd1914c2aa06130bb32b09195a7c4cdef5a10511c0a38105ec948bd3563c156087bcb9bf90a8ccf35258fdaea29bf80c36f65de9c8e2681d3f60338c325ff5ce6dca305c2203495dab225d72a0fa464680a647648e093805f4e781d0ce480125b5abec411aa97fb62c3c560c531e539bbf9bb9b4ea05e804247895e924daf66635b557c57b8708ffbb1ab52af44d72c82c52bbb613bcbca73f4debb5ba287b62da32abb85ca60d57d175ed5aa153445e7db1c244f40cd60ed0265cda2d4ddf3421344f70c1c429e881fb3eb8485c8ccf7606c8ba00acdc77a77a7a" + }, + { /* i=3940 cDividendBits=3062 cDivisorBits=762 */ + "2c9ea1cb513d5aeee0532e5d8cb40eed6f709437f4dbf2e03705033f9341b55401cac5052fd8e01d57e43e46d8b022886e51975b33bcd104fd3677eda8e5e423e3c70b634d5910e92589bfa1033600efdd21c4bd9f4e26946097a006e8eb35c9b383b5ff0b4061a33f46919eb0f91df9daf73c6ca8933db9557e3d1ee8a693f4d72df010737ecccc3d38506ce02c02d454861e8ec48e8a6fd8fad88a6f8f8231f8ee54546545cf2a3f53e54a09f16c12415e4215332f5019a193984effc20d66566d7199fbd97fd369c5a70de80de35fc795c1f92cbb638edd537f652b57768e499db809fa5cdfec72447cfa9361583a851f5148bc7d34131f868ed235e3694ff1232a26a5ae37f2a8b949eabfbcc383184eac13b3959a4ae030f9f08c24a381013479ac9705075fdbf3701e893f2479afda817ed13d3381628405487ee0b7df06ea34b073091b590f47ae59d8ab4eeb2dba3653a63f56d500948face2afda8fc1252707c4ed9e860a7f2191d7104f827ab698cee989328cfff9cd004d3acb", + "03e2c6fbe234821ab39b91ec8d1764c158b29ab28394fdedbe382a154cd694189743883a97147e15b30ec7daeffb3513e727643aded84c029d3947e1b759d942bb00664789adb1866e8da2fb74981523c0a3c1b49b1de58e9588d142f38a6592", + "0b7b8bd4f5f4e956dcd700c32dc61ec53b35918ced1257d476afd216ad71470341ccbf7e161cabd16b6d0ecd667f61f80ba3a45170b53ee24cad0240eb13dcf0cdbb89666d3927be50fb496c1503c046cdb2ecebdb45898bc1670b5203bb81863ff13f4ff0c49d0fd9715deec2b135b862683a719bd1dea1180dd09d3593484c3e469775086b1cf340bc6c5d5a5feb4ca067c81ae18e02730bd11d890bde3c9174a3f5d185b27456f5b94d8041ca0da0cb9081574a7809cd38475dd791a7b343374178b3cf801c802373ae861250793fb9cc0eadf060f4211bde884c19367275b0bb06a66c689031941c69e5355fc93998b70b88b6dfc984ef7b15ffaf3b40cef7eb3d692ee6c4a586bc7983acdabe78dca7e70c6e7f7e970e956d98afd8d87e", + "2c64474308a3cec126bcbe59ee984d6537ae5ff96b7c9e86169d0c1b2909201486a9ede81d2b0d094ff5aaa1e87a2cd8cb6a6edd04858a57b1beeba771f896927780611f151fd99fed4a138796a0f53d6bf8c4b04eb4b08cb9ec77db4c0cef" + }, + { /* i=3941 cDividendBits=2825 cDivisorBits=2172 */ + "b6b91947cb561414c842b8a456b07c748b46a024648c142cdffbff4b895cda77e796546c9a7f17eb1f26265f11e1afa003adb9c21b1e04e314f40ff75027b92df261cb4a4e8f64f29a8e286844fd0fb9905f9981b5420e46df2b7bd27bd2b30b29a05f0ee407960a95156edc5795540f73e8e25863718f72f5ad20ce9b0b3d3fe35ba2fe6e68a26855644b830cfb056a8494ef5b6adb34dac8278904bd5dd529e5ca2dcf2963f6f8e82a463b9335c836d2d2689b1b85709e107e628e72238fc21dd11f67918957245cdd7dcdee575ae64911bcd0dd55a0d9efd826444e8cc8d623b89ba21b80bd2ca01c286308818e99f4bc2b287e7210039526a78ce75e4df7c62893098a054508b3df3808e3938ec3734b209aadc3e5acb0bc1b5e63c60d5bd1deb21f0da42537bbd87e1f24b490cc4551819a2729dbd39363b57fffbd64a14146d5a27c0b57d8229e96ac1339a90acb58fc786856b012b52e4128e289775227", + "0c7772003bf6132fffbc6f7aa9ff59eb5bcc5c7a78e9a8313cf13a40e1753849d72c64b3a7d574c438d3a7088f6d6258b29e6c57918548b450b4b0aa741996972051c27050c0c5997a523cd0cfb9058b32daff30f8ecab8875d11931664a9b35e5890e5ac7f99324958200f732e7e122f64929133241b4b73861ae26ab40d6181ec2ce7cc471c217c02f0be741b41e01eb21a736131ede12f3c0bfd89c90296585c837972ff9ddbba622edb320cd1036443de55298ef807bf101dff6d778cae5271c73b15387299f4710934a74fe58f2778507482ad28ca6efdcb463c2552ff29a36e0b149a73bc0367be76d788f9eba1bf261bb9c31e33db965e2628ad50f4301198a54377af5b7a2b9bb815b5f2e2b", + "0ea832e475598fa303801995d7bf1fedebcc5ce2852c4edf0308a7749751c30476106be201670a48a710280a2841bcc6135f6559eedaaf7bb89facb85164dcb8a197e8b20de745efedc41105d43797e2e9a6", + "0a3afe8750c81285f5e2d41f042666517bd972ff7dc76ec99f9c1f746ac81fdac2c50bec9ac466dfb64f8c6d5b109b091cd4b52b1765293421d3e7eabfd9a5559b78e217c2674b611de91a055f6e4649712bb89d22fc3cf8f5bf23790516cb7a85e7b112b385aaf9cfd0392bb0e87f2dfe7d5b8d12583b83dabb5d9c8c922b3c3d637b8e87a643ad6afa4d649180afc57964b334bb20171f262aacf51f33cc828fd0aea95e344009fc996f93a7b37fb371f2066fe5305990f2bcbb5f51233d4c8f59e31eef36c394740632765fb7990fc04c066ab3288b621d86b233d59deeb9d5e92ec5ef42eac857e8e92b022700a81fe38f694cb55647295a152fa39279850cd81fcb6caeb9a7938b815889c43f45" + }, + { /* i=3942 cDividendBits=1550 cDivisorBits=1486 */ + "34b728da29f2f49c6b94aa21611f291a1b964f2a1ce8f7a4a6c252fb520c414325fa5ddcec186dab3fadfc6fe47c96835ce902fc2f26e058f372e1cc3bcea5858fb2b814c19f99c215d491521de32935faa1a933ab0603caaaab1cb4f83d5e7eed2d9b266f4f106231ce6cc69f22fd5ceff730fdb506a0c6194fe535a6c50d6544d44a36dada2c55641a65a35644e2f405beb8f7bcb35d0d778c04fa80b18e6f88d9523e6191340366f6b6a898e0b37d5365f0391a5799a17239be4ac6127eac94bf", + "28ba29c07fb09a7548e2c91dcfeac7668705847cd08048bb987d931363c859ce9a3fbe1a6f82ec74ccdd50542d8bd18db40036811d6f5c0d17fffcd94e117e0a4ab3674551de631c4da13cd245938668031d32847fa0aac9640613d22decf8941d99315c106e87f909ab5e08915e4b4fb1cac243f5c97f4eff1ba5545e479451be2db472252dade91d4088294a8f320e094dc80fda33c9d3a64c6ccf33eda075770d4cc530ac13068b3d5c097c9212d8f428f6497f974931a042", + "014b5adea462bb2ab4", + "27c956974a07e844ded1003f41a4ebbe4ec807bc5dafb6ce19e3d8ce185c1e5d3acd774053f88bd6ca593d8d4d3180c064f97f7aca0ec29100e4aa7b9ed273f36b07d7fc05f2e2d2c764f3cf27f61f9d8a0c0b57f37f5944d7d3c157c9d391b0c5ad41cd56332a6ba3865cb69c0cc8f7d009fbdbed32dfc4fd7012b1b1b757e8afe5dce477cce4cfe938d9dca3f7b5b6a64c6b9629994d13a46c3699f46e46286546ce88b5293329e0a6bda32cf7be452e70cc2ee0cf8f471257" + }, + { /* i=3943 cDividendBits=451 cDivisorBits=59 */ + "05bdb81f1758d823139f62d4810a1841cb27b7a53e7f683774bb630e296c10e42ed441d662dee3276e8a5c04aaaefc9055408af69e94864a89", + "044d6f7f6359581a", + "015599133ccd6ed60d45d3536888f90242501b6817df33be80e0fc391eafc92ed83239f1afd4b4ddb105fc488ba8711b3e54", + "040fad6293211601" + }, + { /* i=3944 cDividendBits=1494 cDivisorBits=709 */ + "3e8f98d4c38dc02bd364798a06b7195e77fa0464bce2621ec99502fb925764b21dcc983e8509d81a68b416fcae5e7a268f46d4f5b91180fb50abfda3f589698756a549902b3e368d43f8afe5a22cd9509644cf7e7bce7c875212088727f7425a03fcdb3d7124839f0cc1f474704495b998031c17bd5b34a62f61da78b569502a7aab7d6af32b6ec088566e5e4bffb661c643db1cc7dbb9f4c9d71c74e102b2d73be674c222b418e4762178350915bcfbdfad7a31f003741fc60bbc", + "0cd87a3208976b21cc2ceb4fa91cda92d0d2c27d50a3c9143bc07a615555c4f4ad44c092c1afb3d1dca1ef9adae8f2d23542ab856dadb2ca141bab938394a8abcde0cf5245f3d8ea9277b39fdd1559db914b72e59326302fc6", + "04dec6848daf646e85a8ab0ec58df7c4684c41984c9b52dcc26aa06abff8f8ad96893067a64bb893d7590f032176d67e9660bdf4d026964e456fbf950fb30e6b21aeeef62052054b10fdc8a969c3f984608f85e6a73d68a812592dbc98fa20b8741605", + "0bda7307ceebdb6095addf7843c73ff75115ea2fbe77d58f3c25e16fa3dc7d465dd3170b67521b651128a65e00c22b1b91cb82e7ab4f873174937976cf6648ee1eab9eb8a6baa24c55a264c914273670e674999d60470218de" + }, + { /* i=3945 cDividendBits=3271 cDivisorBits=2707 */ + "4794f675d77e8a2262b3a09a07edc703677ccf7c24e047316dd4d1ef3d03ca5eb1e67e21b937fe8af576ae043a389a240ed098ef6cac852dfa2ea156c2388a36267816ffd305a409cb1b9341954003ea26ea23ae32c794cb9fd820412442bad38a8b549d7f2d630dc5351f6fcf2fe14e0a9939b7e8fe5628638ff741dc00e46b1cd4da6e5719d7b634d4a7a68f3ebfaaa1eb653b79f79d950f898f5a299b93aab548056ca36b1589a07bec656a4718e1f8e7d6da4766732dba976881bf4f7ffe084c75464c3b76ac29fb20731a62ca5fb8bc8b8df7d2e1d69fb9a7a95461eb100490eb1fd2c2e0c6c56e34d2c00c3ca7beddf251fe84cba062e7ae8672454803bc1947021d5035e19b8196f82e448dde5ea1ee3016d1ab5a1304c700afe14e3a65594913029b5036773303d48957c5c0e53ab92a3a69a5cf27a1c30fe8d7e369b46f0ab98c801904732cfc28666619d4b40fdcdc23bcb93b34a884522761098da656f43e62e2a125d6953345a92660663e2b622bd7b70004e74229616e8ec5e896be737018c58a17f2a6d93d5f2dbbbf33e1f26aed6542678b", + "03271d3316a13a5951850cb4c552650120530e71626fc175f810006e9edc9f3ab8ec7658b6515767c63f96a85efd134fbea1c1e001ac34f7e23e9fc64834e2660d593e37161a1970a94e925dfb4a12ad96be4d19749d48cabdebf03470b57de9b5cc2b7f46a8283cf9f701b3665e600e5f7c60d35a8d0fa13033aacc394a581055551d0dd520bc59302850815a777a02bba7b3802c1efe849733a442eaa801a756da6f70a2ccce1c5fc0a6acef66595897ece09e1db2627468e8eef6eb3a5cd5af856f81c607fd336ec8df6ec560005d547cde1438488795046e0eae92616ebd5df463b05a6c1fbf81fc9fafab2036df889add10a695ae2f7bb7fde08782872264f533e8df3ff886e15924294b22a26e37b42c3b06356e06a098a984c506dddb679e13c84a72bbdb7c0f90acec485373bc6cb7bb98a5f033704d6e31e1a97c7396c67bcb817a772485d462747e73e955e31b45", + "16b44d3edcd93b911be172dbd61538964fcdc788d1047b743bb5c70a4ab6c87927c5e8c57364c348784ecce561653425640507fae3ec292d9930ab16fba7ea03804d94a01cef56", + "01fd66d68350e996e78a71fcb7e20349c56f71674113a8832a651fb709b4aa6a8b260f1c3ad0a91e7ac712e46b21ce7b10668caeadbfc0d9809eef3cf3b747a08eedc7019b8b288aec43592ac6f9ec0e9c1be7441d0f58766c398c7ef6863708f8e9ceb2e5884aadb73247eaa481ae80b16b2c8f56d0c3af09771fd3558ecca6b28661900941c7666a10e227ace318019adbb9f5067562fb29bbdcbab2943713dd9fe363c0790201cc33cdaa8525007c419e239d7f84b6b3b6236f061ad895e17e5e45b7ba2cc71357b21fa74c5f0ad8f166c40022b994ec2906c6f15186b71a6386e1f3a0769b78f561f8a31b296e05905f02b46639d2bf383bfd3b1c910525aa6a15a897902ce8983bb13a41f95af7675ce1f1513086ac9698106135d36a48c2861f68662b43312c4505d68a692e762a1436a8d5690d1da9c89d501853adfd4c57ecc7e80ee9ce3df86bc60dc89568f5d35d" + }, + { /* i=3946 cDividendBits=2647 cDivisorBits=1415 */ + "41d7267fb50654162dbb575111a65baed3f4460055c10583410c1f9ea58bd75c6a47d40f2250c45e75704eb90a4bfd5feb221f60eab2e7cceadd85963c39c21078f8739de0b196f4219f7a704ed04d7600123afe605c59f0b58bfa6b72747a98e3209a01af654496721166df2d6d93e9def5f36f4773b4ce1d41cdfdedfb2980dca16df423cd468bb62f1d3579a7bcbb1b1ca1fe77caee8699c0bb47e1f1e60fb28a6df45558f09dc9a66b14816efa9b0c1385deabaac88355270cc1ee30f7967771c5140198424a0a51f2018ca61497504ea6a3543f543520c9145eed7b9536ccc9197dda2d9593ed99ca05beca455b3af629e152084b1ad95ba676487908300165b652589fba14319426f3ae2a34b976b4f4d56c4ad2a6966fbae568aab815cbad781aac2b622e9175582da7ea2357c373d3e8bf69b17f9e6d1c059924c8f69f720be684455b3d62ec40", + "1cb4f6f17e112599a05b9b17ed937bd61bf1ef23bc27716747779edfc84bdeb12e2c40b11ef4fbbfbc300c791e7477011a84ea3bc35973b56ab4d1d0ac21c98bc7f789129f1230febbd24df8e8c1ad8dfc8a4179dc84a5c40661814a905adcb99082982fa8fd27ae5555fe6824fc85a577772c68b12c34ee3f7464e17fc9bc5a87faaefa8d13d963da37d2372430e6217ad0405d05c61b1128efce960c327c3bfd77f7ca40e2b90696c44b67feb263c6d3", + "024b257dd54f700da4b3f42363b0dc89cf4206ad7d2aef2c9a430004128a4ced25282248eabdac88c7de854a48bb7b10be1861742d68accd852088ae1d35f6bc42ca7668dedc798292d79515bac12af5b3187a6ed6f2c99f33b0d47a5b010c6dac7714674811d44ab10c683754dc4dc3c71699dfd86f638bb8aec7572c0b9fa620cc21d860c7b74e4784ed5c9e844e0d494afa5f419d984b3d95a3", + "18bf4859201aeff4e9f8a3a377758c582419a8985283ccd6a7e3e14c28de6a41aca7ab63737f6236164873e3ba3cb4c8d4f5d2f3693994889fdb0e110ba137969ec39ef84155b565ce7e86fe6f060d042943118f52b6dffd66e00f227792566ce40069b4c2f4d464eae9017a2ab7bde3bcf152209090dfa91a746aa6bee287ba078f67d804bb2907a5d2f0374cfdbc21a2d673805eede9f51dfc7ded67006ac1e314aaadb8ff0c3590bc459f0d63db84e7" + }, + { /* i=3947 cDividendBits=2236 cDivisorBits=1960 */ + "0c44480ffde03c385ba48969a19e210bc6afafb29f22a527a97ddcbd8f61945fafdb97cfd1bc27ff6e898914fe3de07a01827752d42a625b1dcfe333cf896294dabf6d30f43b9832ae7e3e08590785dc5eef679831871960588c09e9a2a177cc172a459086aeffdbf7389a5e78e05b60c564e050265bd9a58987a66adb51009e8a53abee93f0224360164f17a3885a9429883eda4468b4cc0625f9180f55e3ea9482b29a4ed30b7c54c38e99128c20d9aebc780d3e7ab841c185351f235bfb3c970ea670b2ea01af98b43121c60f6e15f6dbc25634bd68b275f5516f00fc9ed20aafb256513469889257428b3b6d7b1608f22dd6cdd6fb2816003955268d7ba3edb3049fa0285cc5eb00e451c1ceff7c7a53680d76408ed2", + "9e0f2bb9783d8533fbfbea29a2531f47042e623756ea9346977923afed6a5e9896f17f5a027ec65815f6a47a1f4c3d16fe310532119812984f4b0514748a5a62f5a060dbc3e133d7622baa1ca2ca17dfb5e0685f4c7689b1cd08d527eff894f2c2df09bc8615e2010145c7f3bb94c874b53b28a64ffcc3a54dd9cf67df99ff4f5544681e19067dcf63517bfa3b2a9411d275d0d67fc6b73a1133ec71f43a90272d0e5795f35ee682b900e1abcd71f69fcbd4a9b5fbcde6ae3e15a5a3892f990e4157553aaa048010962cea7b68ff8ac5ab7bfd12a8e51abe3191f32697917f9328013c93bcda246198565db2dbce619b4f075624cc", + "13de24b410ae505f23a2d0134312c67615acf239fd661d68ed831d0f0849766f0d78db", + "6ad3df91625ac5f01b8455ec8bce9a25ce7786bfa3c4686b731bbd0d3789b777d472d425388ecce4d057723ce725d1f7d4f92064bfa499fbf718439a95b8e838d23532b2a91fd2485f25e39c3740871d0111c9b8c7c5a6531ed0ad942e3e43bd2f38f784b84916af8382ca7a3ad51239587c6cee7f401cd60d7d644850af23b8dc033028edb79c73dcc63a1719ac972c8760657cd8b48d1e0b7036d147901df80a91b245f8df4cd31136c1cb34c723a8cf1a8f04ca69e4bf10aebb1441639ee64ffb22bde952698c35b710de5ca2700c37b6470e4724a4976c402926ff94f48f1a0e732b8817176b5f438a31eef841a4a57bf3744e" + }, + { /* i=3948 cDividendBits=260 cDivisorBits=132 */ + "0240674d90f37c1d1f784e448a50c755a62a934e34cd2c4d59c6791697874f6160", + "0c36ddf2e44610a8529d385d73d1fdf469", + "2f30d72fbd20f93d00e9442ca674ebb1", + "531995ca0e77f9ece1ee6e2461c901c7" + }, + { /* i=3949 cDividendBits=3824 cDivisorBits=1688 */ + "810d6293b4b45fc3acdb83fa34fa689de6cf0f02cb42733c6054773ef4cb2bd898e1b67968c17c98c08df27b45c8ab263da82fce728e96ae1c53222d66cde1ccfab89055356acd9fa7a01bd2f5c8fb2168617c769b21cd0b61479db588557cdabdd0b74f1d6ea9e78927a61fb608a100ccc998e7d169c72cdc73caceb072897b907b9192f253c6cc5988543a84bdbb27edf7e1c4af515f65403770ce743b1a85066d21f3911d78a1259a2261203d03625d6bc6dcfb0099848952396806b1bae2afd6cdf5a4f629a75c622ace0bcaf9b404123280417028a76ebea1154864444b4ce36a62adbb05299ab16d56e7269f8f29ced5d8f845818922295204f8fb9b786517e2b51bf96926ed16964b90909d6429f966b9355c845b502314b62e051082fa342e654138373ef40ad06021ffbaf85452bffbcaa23addc734b8d35aeee7b977556babb2a89b33e514df013c782caf49ade40d30ae3d0869907c45bceb0ed97571e274954da4eb176051f82e3eb848fa2471e6cae5957e82c80fcf92f653709ad2e567ba2d41440a58f5d6a93dae01ca8c5c62b27783b84468d96d7fc74b5edaa551ba858c670eb53552acc36afa5dbb868499a07081ed9d3cacbe5a8833fb31d6684f6e8912bb7e49fca126ad267375ad7b91b48a33e27dc61edde2d9", + "80b466d9c6815799f757253df93fdeeb61282be95732b2ed46af409b53c6bfac377ff364a3165aa05bd6c96b4af338e18087b55bbe0f993295141b99bee4d960b95afc6f17600e85141ff463eb46e898b84b496833011d04802e7d134619e79904716de4e2e69b620e132efe26ec159505d2e57a39603fc04775ecc1922c5499472240ddc56263cc90e9d12d0c3c287fcd6c73cab20a82ae3536a2d137f8869e1a38afbda875aa5d0609706ad08d04c16c93c5f3f2480d30dc0ee5fa08f9d67a3213d1039057b059f294304fb54901ad15d4ac", + "0100b0fe0074392acad50187b998af2e575c65ca7613ffa768febe9391f0d9cee7e9493f8751ee432dddc774cd81640765f5790082d10c63c954970487e7436e4940101a515cdda2afe667ad21263f9afd5b972911fdfaeb2d7bdfe18d2a8a4dc225bd872b56109e70af5f54a2e9f9ce20e946e44361ef716e271549767413bac9048425d11f7fd2722f7ec84dc25ea8e3f85aede30688f023467865abaa8c18c248b099e6da89ce59f260e0c021eaf78721bd08670d52f1a6792354019af9ad01f13c4c643d67e5f35050b19c0525af80f864b4805448c3403a4f4a07586bccfad131322f2ac8dd60a64eb07ef9318d59583585696030f4e7536b5c15fdbff160d5801f76babc0ac36a7520", + "473b6c9b058e77a854796318c7e28455ccb9f84729e4e41fae9201dfe2e38ced6bca90da076c08071ec258e804511a0c5cf4ed50574b97986aff230b471084dc969f1a1534348154a2093ff6cb54c89b5191b80fce2018b490aef8e52a4663ac14f2ed68aa8371980e10bab604ad33fa8b5f26788c52c88e7cfc9fb69927979d03c301632afd359c2cc485f454d03f427b18c0ca2b629edd3e35d1a964d74e6eeb6c5a05cef82f3357f8b765491eab2002b6fd2465e28907d9509bdef59b079c62136550afb8d4d4045a814951aeb46eb8b159" + }, + { /* i=3950 cDividendBits=1609 cDivisorBits=427 */ + "ca75cdf32abe73ba74c6d3e70d9114846c320d9ed14c079c5c1aeb7d42e32b175765be21609efda2070388aa1ae816636a265a9df049d7eb2de2b8bbcce14167acba24249ff56b0a69ded45e02eb806925a562ea8dfa7fbca56f7899188ac68389b0dfc9f09e208154134d2b6021234e3994b122a91d249a80f7032235fdd4026af785fed395f288e8ce6272d5d0b5481fb8787b7252ecd135970b108606b66090ec493776745c4077bc67ca1bc3c101e12199ab136871ac48b8f0f23d83bff705d2e7ccaa062f7659", + "01fd73b3bdbf1089b7042d251e5e5f3dac47fd34fbd48133281c4f7b6bef25fc1b9e4d39c13416f96456e61b8e637c5f4e91f8bab6be", + "65bc843111af3777f113bc25c16c02c8f36008e8f2ed7c8df5308d913baf93a4be541f3a196986ee2353ac2ee7710e4107686b03af972bc74e03d63ba5562ce7cfb81eb5e4715f2bd753898fba8314d676b47f12fa28a684a63674ac9797192eef265b06c079f9fc4f3f65ed6439315e93effee8ad60bcb17d10bfa0a03a28bcad7fd28902341c1018b4ff775cd27c42b3767dd8", + "bb8e755c53fe1afa5d20bf00244932e2732909dd59b7e7ea66406411de3b45f5f6d3f1727e136bd416a9fafa375069e239e7d68009" + }, + { /* i=3951 cDividendBits=3037 cDivisorBits=688 */ + "0d136c480872713cd8b35c3e92d2aa01abcd30d5bc2b1bdd83dc4e1516c618227ebea4726e84242b3e8b4e4b1674b0977c6eed0e3252b619b37c2e05575fcb620682721729c3225174acc4708dfef886a20870ac21c840a7c383805ee28500f054e990b4fce1c08c4705d6d5977555967228c6d12e5868c3f1de026ff3c5ebc3251cf16006d77ed8e44c8976de34affe9c1ed3f80c812e1ba3c74e3fa87a8c4aedc8da0fb83bdc16992146fdcb46afee6ffdcec44189b5e5261d2f64ada70ffaafc48cabdd37083d1982729cba5444901d310104d8dc6b41b6fa862796cf3abdcaa628a2938a8197c939e5b1e9bf8c3bdafdfff0e93581dfcce5106865683a03dca2ab6a2da34cb9fa2879a10aef6f06cbe34787efdc2770f06f2f61a600863a2ed7223bf4ea4347627c7b80b50b40bfdf7731726e2fa7e17b608807c2660e4efae5dbdd606de03e5e632aa9cf7e5e90e2f3835cf2b7bdfe1b3c122fd6e136fe310c110cbb318ccb7865b77c958ff93667eb3bd2d2c8d960933687d6", + "93ce48c97e1b171fe6b6cc6cc59d8d3294ce51eae7eaf0dcacddcc38833b0ca7869c0b3ec9dc4078a5d3d40bfbcf9f12a0067870c5d67faea300a77c59c92e0cb7f7894d96590707c9ae5b01f4df3bd8314c862f341b", + "16a5bea4062e765e4266d7fec9e3bf9cdda8e15a0ffa2a9e6ee27847724a2f2d75e9ff66cf925b61085e4eb62eace11a52533b1356e8926689b8d28cc95a5fc04ac04c2767eb7e827656a6f019328ab66328bd0281ab0f742f8652d862259a585744df5a633b7892eb7a97fdf0a6d55bf6fa474293fe31b4d72f829741a576d44d761c162d7aa194e65ab761c0c90b074ee77be1bdc0c2defd05f15081080a9b78595ce346b6e406b0db75dd9ed5d89db3217abc3d5c6dc51e9d5bdc74dd2fb524a1b95f5c991740bb5eef413ec695cbc31f96127e2889da74c28c7cd3551b271587b6745b6c3570983f9e03a2e3acd87aa18d98a7ad88eb19c1a2097e912313af1ffa02d7e871aaf2cbd1d31569b37883e91397fbe698b8c4e834483d2f39ff6a113d1a7695", + "92cf33f2c9f1aced5f94e9755433135b374aa009ecf7655cbfdd1ba4b970e13f92e8d1f18e230fb8aa8c24939fb115d84657dece293bb8ea705477d1a986af4a5fdf4fd80294432b90f4d06e1762bae15dfbfdfac21f" + }, + { /* i=3952 cDividendBits=551 cDivisorBits=143 */ + "34dc058eede092d1ea8b795388f6c5acd478c0f6498909fafddc5aaff30ffca5a5d50998de116d4c24020065ff0e5c5bf299c8ac04d58d533dc8408564833e1221b28667fb", + "0cf1a9020867ce0e05865386ed279c99ccab", + "04156de8bf2c371ba7312747644d9c818bd6377b4d7764cbb93b8404302f7cf5e7ff997f5242dbfcdf6110c018d1193399ffca48", + "01340df5f47f443b90624fe1bbd63a70e9e3" + }, + { /* i=3953 cDividendBits=951 cDivisorBits=7 */ + "693205f297253f660a346ebd65dbad4c256bee50f10c38c0c19814f9321dc25ce881bb63dcc36d1265e98b922dcfcc7df12ac83ccc3c524eb364c7d21b6f1e7eba692641f5a61edd5620f6ca8db1daa01cad0aa7a21add71e6eaf179c0bb9cbb67ffd25994eaa0ebd93dabd2401ceb4b89ef07227fea3a", + "13", + "05895ea0fa7b393b43e7cfef055c676fcc13277d85f32b6875fa87d738884d9919b5fc63925b20b0204fa907b191ac726b02406efd468b119da6fd0b0eeae6a85aa737e886312a0ba637a13314ee69d2883f008f8f44c8495cfee449c6c68183206bc7b3df6aaa275c469d40f5e6931eec4ff2e6de4fb2", + "04" + }, + { /* i=3954 cDividendBits=3978 cDivisorBits=1928 */ + "010024501f0c382ce30d7e56ff3871d3fb77e8f98c9fbc09a32a80f6826efab84d92d2dfc27550469cf9040dbce5201b6975aecd737c1152e1d11907f722876226298c1639444532ffd77b2b80f4b45924ca4277b47a62270950d08bfd19c735491ca988b45944eb7764a837e6c1217636636eaa203377dc1c1883bbf76e33dfc77dfe15bb2b8cee9fa54167f9b15a51ddebdf45196912aaa2cb0af6150e51c44a2567925b94aa68edf30952655d774529b8f1f720b00824ad58c0e7bd27f4145706f169f00fa8f1825e81a6e76041254f64cdfbcf00491a84728f516231a76960264e32235ccbe24fb4121aa5159c93ee70525c1ac6cdc30b93f8e05bfc42680700ba68e66d434644b872bd28434f993e477cf5db1ef42238e937067c295522be2df264cfbc4e29b866f3c5c50a5b61c3db20801af4d38ff691b74c1d0da6181dd20c83f7ed45a6f02e6d43238125aabe678f1bd82a49fb380f6e5516cb401a0b8552e7ab47ae29debdd133e89563f1e90eaa732d78a0211afc07b04e23434f8167e1387c7fab90ffccb46a11ee2fa9315dc9edaeb4eb3dc1edd5430821fbc0856e6398ff33b9261fe6e150991604cafe95f5dc8a810b7d933dab80d7230721c7f80c643850d1587637c6c0f7db567a8308fc0663e4adb613d6f835f4a58f168c8365c057a895dd1f0b591cd598d4b325da", + "31d25a22738c8f317177726d9dadcfb402b0a37d6c2b37ac353f11a0a279801e857a4fed346b44deea5d2063e82a680c41ab8323f4a11b625c15a42f17e98939d72eba689ccbd87c3ae58f0e63420c843572d1b412aa62bb213279cda7e433e44a48df56569a28f8b255a332d474ed9154e24b9ffdcae84d048ace9aec57e13cde378949d7bc63eb077c864a9c9078675a7ede05b35fb6ab99ed99ea067f99f0e2180f34ce0b5f9d61de14dbad56b29247106a8ad02def218d962fcbf9ef79a1f33dce62831b34c0d2543e30b85b60982ed28bbb4bba8dc5d5c146d4d3f1835ac55fc7da15799205ff53587e3fe5c2c033", + "052423d2be7885e06cfbb71015af311a7e7811b31000f6a87efc8e8e4c43a8e171a9af32566315bdb0dc33797de8c18663a1fed477b4eb6a3d232da81dadb25b019a54250eed1128c23c5bd8113e42373e896859f4233314f896355a3d0907ff53989b1314ced800aa799d28e7abf4cd3f969596afbd294e4867d6985d8f94a152952acf7bb5b7bfc14d0537f6172ade7626f7ca6a70167697e237e3fdd51965f8520e2507e6096324aa49c4f6220a4ff1c6213ba225ba5857894b841a737e5e84f4aff3d47a2e81b4c3316297f7371af364cdd579048074d43af0694491b816b97dcf40ff7009686ba2d73360bd1d22e8ee4fb4d60f464f4d1062a3ae5f4f71d4", + "2d6e905fd7d35fb51f185a4748547ede739b92e7fa3398541406040ede6fd9c5e5dff169bcb44c956181ad074c89995dedc7f6d3e0c3409c00c1d85014b1fbdd48492387a8c062ed95454bc4f528751e2a75a616924045e9313f5c5f09a31dc93093f5a59025d11dff03f3ddb2c7fa0063252633b312535e1fc9bc60422787024522a54af2ea3fe8c6cb59594ae7a0e77afa7fae982a8c83305fe88f20820f3a1b28507d02a0e7ceae06747346bfc4ddddfa6b30c36e94b4761576fbd32fb659a57f7e69a0af115a57f7ae35b188aef1fe496b23b450ff758a2402dc8d24f104d35e090547c961b906a9d9cc2d5bd8789e" + }, + { /* i=3955 cDividendBits=1308 cDivisorBits=902 */ + "06f8f4ca4590cd087086aee30926fa319d98088b147e0a34b62f065d0343cb927d9a49298498b54e8599e6a03c7350894199e2695d64e2ba32bc1dbbe3c0e9449edb576e6b823641ae0aae1c37b3373d372b0b967c6f974aa30bb5c7bf9ae1f0f95a5bf09ce82240457156748c004e1c0d330489f1eb91bb32a03f185bdfd71cc4e9ae6efe2c693cc5c4b8a4491fa1460fc464690c758b6f518012101cfae6181d14985e", + "021ac97e926082fd3ad95c2bc8064e94761056714525341a011f4d4a06361b79d6a2ea7d44e30151faafdccffbe33f269b78d746a69cc4d31b193248236dd37765de202e58c42723d29ab3649ad1c801d70beaebd739f8defd1fd3b5c6e5038da3a3d96db88639c27b520d1b756eb2ee79", + "03501b3e99ba890eccf614c814a0865646097e876993d8a309bcea5f6eaf28541eb83937dcc536ced8a251f2e37ab526de0a8766", + "2bb334a16390b162a8584a9cafe8799afbb90cf6232f0f84adf20b4bf0dc95b7b01d4ab94232c6508e5a931d0d74a2eae1f18d9765b1f7d881ab5cfc74d1d39b0d3374ce74f2db1420d87487d419bcc1cbbf061aa0a8f05e4b6a4156369dee6b848fd876ea4dbd85b7dc972d674dc528" + }, + { /* i=3956 cDividendBits=1335 cDivisorBits=553 */ + "03b2ff40463c59d1bee88d603b84289994b8248dbd180687d2a87cbe065ab7b44dc4fd0efc7dc0be2207357b77e547b51f0c96eb5474f882f43c23b38ba48967e3004787b5edf5597eee584139a25bc2140f7570ae4840853628fa454d657040a56dd29379ba6470e86c91550f821a15c13eabd2ea3a259f959dcc7d71cf07dfdd87f54dc542e5c09f3103c33d1c82510366d66d36b5ed339d2154b845127ccaa7b17946398e2f", + "df98fc02acaded180148a03774036c3f96a8fa12eac7eade646a49bbf84a95848940ddbd3696630e3280c682ce2afb3cdf0af8641ed73ca00326dd311bb08b6d358b07969d", + "043c3aea249c7f38ec0b34d4d8ce26398a14d5de77a8af6b30d1b15366ea5399121a79bb97a4cf42348b9c4df7d6ec94917ace2fdb8554618cf8c59796b4c3295cb6c82b6b069193c1ed103952e9d4cbab9f9b25d4a5390a95d0d8eb7884a9ac047e", + "0d7d3f7ff0b6c2da76a34fa3fe8586790a0ee80c5755c2f711bc4fc58861a1bb9c0c6a23c72f229a46742a77a6d4d82b9bd9e83c3c0fd91486d3fb9ef106ef6e77e3a6f8e9" + }, + { /* i=3957 cDividendBits=1245 cDivisorBits=988 */ + "cccd2027da9a3ffbabeb789a50b179b80b501590f3d899c14631291e38a529e7a47e91f6b27e873b7b443307bcbdf90dfbd0b81dbf16bce034c8b47506977b1628a68ee9e893d665b741a31efdbe12a83987367a86de2919660ec2b71d8de35886e1afbfa1a43f103bf43a2e48b19445e395f6e51ddeb7b019d8c0226b229214c2298bb09261498a8933cd4258f0e16c437e97ee2b8d031b10363d", + "02e05d2c797b608775a4a1b7759b2ff809c584780e461c88355ceaada4c61f9becc3473be368e1ef4f9571a0ec6af2f7fb6a45a8490055548073b36a863953a04e023d494874a7e6ccaed2f2838a640833af8dfab74a834332b91ef09783a6b98eca9300e30c51cc4c4c64cd9e98d2dcb492823e8a98d6ebedb0989b", + "4733343cf8555cb1dbdd4fc07f9c6d8d85693cc4c585604dbcce183dd22587e8", + "01e7de236d9c414b8830fe1ff00a11476a717c2c2fad77b69cc90d41bf662b804abd0e09396cb04deb8cb7b9d822154bb3258005720bca2d5e97f4f3caf0a5f6aa569bc0fbe667eab9ac658e5b61797bccc9a93a7a004fa2f74c87f263383673d571831321d5bc9c4a8aebb236cdd7f58e3bc3234f2140375e252cc5" + }, + { /* i=3958 cDividendBits=669 cDivisorBits=611 */ + "146eb32c2a223aecd8fa29bfb0184deb363e031303a00737d4745446577223e9582d1ac93ea3476e8f8abdfbdb87396149f5edf5262e08dc3d64d04e2457227dd33de7cbb2467559652f0281b7e0015a70320f45", + "057518f519caba2355dcc248660ee7d27f627508e5caa31b9f006c80071fe1690b4313c7d0f6277bbca9c8acb89726ed62bfc4c228e5b14c919c9443dc29a791d48562dc02cff31e9275361815", + "03be753b1a2cab40", + "21a2679446fe556454ed750ed83520a28ff298c40baade7c92f7980642843fb4308bc8ed515fe57965570a55d34dcaa6d76453728bdd9e44b636ce6d7509e64c77d416415989bedcbafa0305" + }, + { /* i=3959 cDividendBits=3358 cDivisorBits=2750 */ + "0331913c55251d82bc6c02a03a093364f5eebff6db7bdf6827b2ded91c9cc5ba3cb6fbe62695877eaa48ef915466440025f15a3f1eec212b962ab889744d5d48ee4efb9c26a71353c4d91b832b3d56761acd25bd06f08811a0775dc01c00faf8a4834f37e228e1f2a1a6472b1899d8e189eb34c6e0ac25be126ac2a2a08c0c6a5c534ef00f261a4ea2472dd55b06c5f59b4912bcb9b4a6471bbc49044ea057f8f9f478789ae1b24cfdcd81cf464aded6ce3adc1101ee3e8fbfe46f36b753e051c6537f3d12d9558a5f8f2d23d979ab70c17053a7bda62c86f7660ab13317e4ff73d5b02ed445ebd444b3f373c3f60efbe0e3bd49cd6febde64c00ed5ce2b4eb703e3ad09a696e20cbe08eab08965538f57f84352335eac0556a0026ad874fc7a2f98767dbeb96fbe774a4a9740f2ba0599e9a9ca20338c7f09a1de490ac9cac48540ef63a63cc23098310d67a9458e9e288262ea7b75161db25a16bd8df04e8e5d2b61c6674c5bb7c7a466fdb9b332ec0d2a41088c89e9f21f26620ea4d771cee83a0523e7028607da0ea16eabfa22b0cb035741b7ae888d3756854f8281dae8808d029d", + "3af824a057eba158e9e2ae648bf0c149866ac98bd5bd93f9153f85e4637353e8f288b410e6eccb76860285d12322f6f638bf62d58fa5d3e8ca4ab169f5b47cf59cc8550cf646b05f32a58db710a04d64ac77f9564f5d67ab05b6859b09086b73a22a90928194877d40a22b9a81d03a9a48a931fa94749aa5ea82447c78ceac3b3964ba23b1322b15475d1074f6bd3aa81ce11913c5fa3d88e0d0ceac45852b11f4459c4ac3e2c685dfaf1e2097c73a8a2f3be46de7d66f02bf464d87febcae62ed19a5b7c0c03ff1294be3ba8237f04423e249d2620146c1cc06a8f6f40cedbdc4cbb98fb4a6287044914d63f9ba73c83a8f3348766d9d97f88741f74fcda1bba051e3aabe82b99052c4f04f2fcdbeb4e18428c4a4174fe25943778d6dc80ad8bae11b50d8d6a051352823188678bcddac8218109a5c5be74677f532ec1dedcb10bbd1538e5cab320d914844ddfb21acdf93a64cf6d458e5", + "0ddd41ce7f1e39c02dc430c61b83b381e699626956ac5dbc4925905da7b076d41b48a2280408c2e75613a6ca3e9b325f9b1a18f203a1c0945a404abfb705067a75b8606f046d5bcf70b56985", + "0713093c148f42f827656af701b4dafa6845f2fb68054ab9e587b8793b8502088ae8e6392e8243d96d2d59f54254d56f8215440606e138ac2e4687793afec36581431c855e8c27f6bb0eaf6469573deeeadd2d365fc48d6ec9abe401d57c6055c6872b2603c06e5e72f5f5151e421be745649e06850c2355a00b9115e4b12b561747d6baaf01da7be169979a74f16f6dca717ddc4a8c9622b0b4ad18b06079aec14b333691305a7bb4cbd69fec8a4a1a7c5762585f11825c28ddc4cfb8d1dc7af59bb06c8fdcddbbf54394b38c736fa9caef10322e2e019c191d5d42ffb06ef28ff3133b48a4fde9ba831c6dfe4f596870fd946cc636a2b30b04e409d08a7d79368e0102f69c89f977a990e416085afe3ee878f1f13d69d554e21d7ca8a884a793edcd511958c8abf0e8fbffc0a6c039da902c9946c4d5d7ade332267ddcba7d4c75534e3dd5905dff5b9564f5e1c9940c61307d21dbe6a4" + }, + { /* i=3960 cDividendBits=302 cDivisorBits=77 */ + "0f9f58c9b66eb689e03bb2943af4f4429ca2229cc0f9d0b53ebab6c3ed3dece78fe44acdb02e", + "082c288e1a15c9253f24", + "01e95de406b693d06c1666b141bf2653e5c78558026144b34cd15b58b9", + "065e8a8465874b62af2a" + }, + { /* i=3961 cDividendBits=3505 cDivisorBits=1637 */ + "f3763a2d71c2c037ddde49be6075dc3ae7c445e6d1a133690bfb89741d998daae7edc966fa8ef61e2fdbbe5355901b9d9a818c01351df4e8fe3d2b185951b7bf4e3c8d0203031c7e7b76189c96013fb952c09a40f57b489ae465b1ccaabee8a56bad2ad37b0bf909931b1bdd43d5332092fc7aa2cd3654dcc9fa04789909bae252025576125d723505be0cb2251e5d93f6c8b4b93395ba99725f670cb21ec6916105939e95409466254b91157d0928f1d610712534d3c74089db275e0fd56aa82d91853ba4deaa3bdf2c6d497870d4ea6440c607776a54f6516aaca2e2b8300285f93abc3ce51f6dc877bd460beffd1a27f31c9acf0c70f1af3d0190a7f98626b5bc23e3e72d310ba6e397c4c11c38eb034f0dfcf75874eba31abb0a66c97ea8ee66082a8eb00c6b564a94fa0c76a9b69fcf00e4d698f11cab1cc2d34b8f7faba6ab6b4f5f520d91dbbfb1926358cdb1e3cca3d0ad002e12702a6ef6801484b5c87abc623c04a37d08e3896a756da5f20bb0d551264764a69c386ee9c6e09c67066bb8e1163ed7fa6a70b09c28fb922629a5ea01b8c4e6824944ea33fd3c6f242941afdf04802cf1ce4009a748d7fbf1059d2f428df5", + "1e5fd93fdea1bc134529c400a2f76f0e1005e5e9c7e1d26f8754f5fca82c408218591d469a53ec69bf8c75103b6736561bd055f8e9c4022338f54fb8a8fff937e31d7abd84fac60b61b3819e0eec39a3f56b45709523f781afd41d8450b38b96703371fda6cc9a395bde065e1cad5d1f2e86f58c2962d47d9c885dcdcc3412d1df5c7b8f7dd581f53a0ee84d8475d5a5853241daf534361c08a12693bcf09f7c4b25a59c78230128a01a99ed0bd74b390c4aa1846cbd64db9af746a629d94303d96032378f7b585766a376de8b", + "0803eea4925344552885a2320f03d17e59ba5c10ae3cab4d7d402810fdac3aae1df368a22ded86eee89bcf8b6bafbefa2da3f07d3a80ca1a74d949b2f28e6c159a4bf731c8a1e17eb16d3c8767ed37a9e5f162dcaf6790057f1f69877d756fec9b840d234fadadc186b0b8e31f2542b38c8adfcce77d7237c3d2bbff83a11c897f57a1afe87eed3d5c237f65fb0b053ea2ead84826b1358d910500c49f5e39e773c42454bc26cd47a5f1b194ac042cbb63c604ff9ca75129f24f8489064eb13c41337b1089ba28f031993f16bab8bb9ddaaa4581f921a918b13318aa6689a583990cfe83d1b6489d7f9d", + "136311114af6d13ac4a6872377d344a0232891296798fa94baa36f95d111b4fcd8338c024cb113cd6ba40c4f1907c55a6f244179f977c0287e7938b4c1f3d307005e6cc07359bd54c0956a2428eefe0cdb7f49a8fb5c09d2bfa96b8db09a93a21d17734b32170a13a0e35588e0c36b49e72be00eb2cde58b4200a1b4b91e9fc56fc6f9c2ab5c6ba6f78b623c022cbb59c497b608e4a9a9fa634aed5c689e9593455438532387c9757febe6e23f12bf93623ddccbd9e8f946d3d13aca70e5dbe60127088353fe29204363b61db6" + }, + { /* i=3962 cDividendBits=226 cDivisorBits=58 */ + "02fde6f40aeec146974b921b9d93c1603a95f93a3c10d8132d15108e9a", + "03e1557092ffe8e2", + "c56304382aead28758be40f95c11137c7f2e5cd183", + "0261a2a0a1c3e0f4" + }, + { /* i=3963 cDividendBits=3659 cDivisorBits=2219 */ + "03f44744245e50bbf57f835cd433fdbf79141e640fe655ba1da9196ecc00f7832a2643a93590a5dc9f588adc72d3f0e244551d040139b46c54fa72bea3bd6f146108c4fa662248d00c6d80375c33af2a4f87552a16127d6afcc882db690d807520547b98be9c0af0f5c6cb019885461de6bf0894808aeda1a5f8ad16edbea94eeb363c55d7155cb8011ceecad1e5860007564f56195475d4c35212688b3b04b60ca68b92773e865ed1c8c6eade4314ae12ea1ae953ee9e97f1bc48c988d5dccc853d4007297078da728cf5d321586d22c404e5a78b9aa66fe2080f3f3c08e57f92808ab7af67530e4a678779d81ad06849193833ea3ca3a78ba09959e64f2daefda74876f91ab53d50a2850587203fbb4b2ca15aa76fae713b52b6982dc09e6296302f4da3f6a5ea744304a2f7207f8f828b601e03aebd10101b643bcc849e3100729e9dc90e82449b3080d2c0c0e188604b5cf0453c0510647c3ad96f18188cca8c70befd1a029e3a0857d3742dc6147e1ac059a77978ac88d8631d99b2b5f3c0edf8b1b18320f22a36dc3ff5f5bca16523c7dcae1a93e05fe465b91c63220da2711516f05105ff33688a989c3b474b8ce0042a5943b116e24842d8964fa2b4e244717b86f455e53478", + "01c20d4bff5bb71cb154dd5f521df86b26d264e123dcb0b7ddc53c70326aef2fb84b5ab48d2f0ce04f7cfad5fe23775516f7360495558dae6ec6e8ea87fabf31416fdf143d27042aead81d9334171c1e7eac93997d55792a9317b0f540075917a6b8f8330b8902f95923540f002593a588edc0d0d8b49c256651a8d93f352c081cd33cc1e374cadd769d4cb72255b3e20d25e26eb121895eb0c1a50f862f98ef232a01bd7da597d9497738388013105d8a73093b8d63ffd4ade107e7461b73c787f59d0491c827f808b0a3d0ba383f9db648818d52851dae28202a29b2473ccb58d0efb8c29634ed2597bf0608ee0b85d617f772e6ca5281004d22d4127ddb59c7883633e64ad70d2faf336351159633ee261f41865f", + "023fceb5e0d46f41844dda64300f05db8c99686fa9b686a8bf61489db0bca6ae78eb5bb5815d59a202f2ea8fd55d1c8ac5bf6d8f7fad719ac9fc6955f7f892731e2c11fa93c256e9f03a8642c81f33bc99aeaf9fc2a843519f746c364daccb313e1a3d382346ecfe15be8a59781461152a8f733f8d050ccc5d4e37eba31e4a677b4a33040b278d68e277eada54e9c59b338ce7ece5b88703714d0115385e57017feb5ecaa095b9c57bda2ff41fa1e654bcff8c5f4a", + "011e9336d2dbc673decc61fdc6ae952c040551524328a722ff2b4ad88b6a03078cfc68a07640ba7355c16da83d69a447eeabfe6678dd9fc281cffa8a5358d28d0b7645bc149d10a3e3c350457104d9a159438d5b74d21b4b6f5d95533bde9e376165b5b940745ddec6ec58ef1af36d3e71873191e5654ce95d5662165ac6e180920e7d6c32cf866dc29a2dc324a6ebd8ac361047348959a232481f32775cbbe1bc40c82a3990d1d3b421e3c2b17623cc4403716e05ba3d5ecd627268e632dd5fcaf347ffe41e60982538872030a98de498a3c95450b9d6e01ddfb939e7573684ad40e0dc6af9bbb46803c0b13ea2efad0daa8417a4e97060bfb19406401a4008e90aa36f0bf926832470fdda0e899e8d53e3df231c02" + }, + { /* i=3964 cDividendBits=3422 cDivisorBits=74 */ + "20bab991f6c2b92026491310264ec0495230e99f4189ba997ac8e9b766d565ab6915433a3be98599584466e727f5987a118e8a28e228c46fa2db2676ce2b3af94ee7b9232a3c16d127133c13e6f3e32dbb0817da2694cbd2763c81bf5a7db90bf00058b48a3a9412b16170b7892cc4d4cb74a04cf49e01cc0547df261cbeba4147cb90b4edb7c57276bc5ecd4cc266ec0614922fae5a98707b8e8d90df3ece88618dd9369d10bc6ba9c8c22cea54f87ccd7ecab9394d7e35a64ac813dfddf1d3982a54d2fe852c254f2f8e436cd3abc71859b862689078a1062a456b9ae433aa830ea92bcef9768ba63c9825fefad141c74b6f919d951943f9427b8686bfb39f67f1e413a7f700eb077b9d25ab005cd49963f7614ee6b6c0697c36a8c1489a1c4dfd44edb3747795eda5d647dd5ecf34cacffea94b1988d3e1f1780a3c0abfa55dff16bd1b4661adb38edfb104d721f63fc1e2056d60492124797a12bf918b765726e5e49be971f8204716036333861935e05d72fb7b5e67625c6cefb635f158c5615e57f2e4e5af33ffcfa016c5c35721f700dbb35f6255767bcfcf53bf785bc190599a5ed0fa6d7f2cf567", + "02e6b1fa2d7f6b6cab62", + "0b4811273c3d27ead54a926abb95aa695d0e0a549d305c1732ed178fd030b2d9dee3929ae4db7cface94f4afe147981ca4119d081904acae73fb5011fc5444974ff4a384a232058d3435c33715bd5a3dc80d92813bf92aad7319cd4793526d1a70beb366859368890eee5a23b377844bcad8c46fc2d8bcc34f6450f44a395847c78dca279cfd9aafca6dbf5135c3821eeb58c19801542f08deb04603f9eaec5ab187f4cf045fd7b96e82c83766faf52bce13393a2a0561354d779fdffd64a417084520554a0deffba967b38d7bf6be9513c3c51b87e1475dce87172736e8e67d9bc4da60cfe50fc138495b12cd0428c63d1e4c51d92f1cf00dc934820436fc4a3647f41093efe90a78e1710591cdf57fbc598f1377708251efd308bae1141fd06fccb326b6378d9979080a9db50c9ee4c8e8eab7c9133d4b3a8461b9672806b414c377a960b76d0260c1d91a939cbe69b0354bb26c89f1c3c25eaa62bb1d3a921d6314e9f7fe13ef984b36923a97cd8dce338fccc72c4c9651e8952a35c67110cc6c1bf1c2fe13147f7ab977e1a136a4bd840ec138a40d86670b5e7788231bf98f925f", + "01fb81693f249a5d7809" + }, + { /* i=3965 cDividendBits=3998 cDivisorBits=1270 */ + "057a7ce7fddef8dcb38d31ba39d72e27deff014c266cab698b6dc4e173d7311f29873f4a820f367abffcb42649dc3fc175c03bbe9e2489d992b422509e877708a241afd45d606299c6ebe8a42cf454a3a86daa6e45a061a1c0f1cfee633ab29aea5501f67b5ae4741cbef97250b8b8b21128355d63ab00ba501115ccb338bfeeaf4b2ca1cf6b5ae8e41b0a610a949133a3c481b1ba1bb623e69748173140dffa45757eb96bf4b21d4fac90b6cf828be66d0c7b49877b9fb9fa5d383470b7bacb4918f4f47608945aa80b02e4cecbb50f7b2c00841661abd5ab4001c7826fbce9b51998c520a2b3ebfc448de7ed35048c7b785c97818fceb0a9b4ce4c2699cdf12030558c38003e9ab666eef308206e13670f2db64a9b598afe6dd87d3d78ab8dca54ed5b16d712a44cd79b362da42a2552c12873a679475820f09892634a0a7b3045f0dfa7d24bc616060633141b88575bccc4c8f76787b8c9487d72eee866d30c6c3e62fcad60e54c69dae2cd640b35c80e4602b0ce0dec533d5228e2e0f3aa144aeb62ab897e2c75e8235355e873393005a53e721fb35e9a9c1e50615e107abfdbc157c4b99d88988c8a56ad139dad8691af8b6a4221aec1a80a81001576aaa6b67b7d88e5b5cc4a88baa641e6c75e27534307a6bad2a6b3085a7a59b82fe5232ef3df0773d4e448df873e363b387569169630", + "32ac105570ee3ec47545905b89131929cd387a72cad0750a7cfc8e7c6e48dc057381f9afe240db0517c4d54cef7ef7a39182b19e128d054d0e202395af69413ba87babc6d48d42d615fcaf74faefac335ec9d06aac4b7ee07225bed76d361eaf8d186e5b8d1d4f22a5a5fde35a887d84ad032328c459050b2327723845fa8a755773a5586a4268473599f67f3d99cc7c8314d578152264dc5b28c29ad1ef91", + "1bad7dd3d14b2305813feb54f16a1bf168323a8b1a6f725038ec6d601a3acd24a77c19cc1f5308db97a832504b46de3a88edbc7c8fd94036a8a440e40b9164b66fdeea1ef4dd55951a78e9b259a62f72d37988bdd309c0555cf2f24747313859d990e1fa2cf06497873d8dd380dffea6665714ded946bb4db91238fcd421d7757efa87870d2e75181001dda8c5a04174ffe6861f56e639ae7f78c550da4b3fa269239d5f7ab4719bc960bcc456808af383ca5fbe7601d7e8c0edaec46c31e805bb7fc14acfcd3152aa1389b628411b1182c83345b7560a83319e918b8481ea2e11c9af6d4feb59c36a8c55901145ec99e28d4a92eb510efa2b3dd60f1ce336d35613f2cd7ffd3154b7ee6d3f7f386d00d027ff543aa683f689784884aba1127a819e8c461c6239d7bacc73db8e7c66f8326e8fbd111f59fc2cc35bb45fea23ebafeb21f8fe52200db01ae252387cf9b73ab3df0c67", + "1f7daffb76a8678ad6eaca31bb5713c9806353e4dfd549cbca6c9727fb0892ff57713012ad84188bffdf7530d4489e5d34f1ca4f11bf072a1b11caba0e5df29191779dc8b6b3d63590cf8c545f3bac641f400b68e7caf52e9ff536af37198c11e55511d66fe4182da71fe8e33fda836162ea3a78ed4399222045f1ef6a44d19c7fce9e5b65e34dff4a0b2c5ad3bad41d775e9f2b16ccb54e051dab351566d9" + }, + { /* i=3966 cDividendBits=296 cDivisorBits=221 */ + "60e3e245750bdd27cf60c0c6b0c57882bd3b22da7c2ee8a074b7095118ef20ea8f858c2b39", + "0302dc4ed61f91fc05bd3c9b6bc2e5272448fc7bad85a4b1f6c6e753", + "202d47a14f62aba9b662", + "02e51e1185b6197acda1211c3d782917ccd08c088bd468647e279b73" + }, + { /* i=3967 cDividendBits=3180 cDivisorBits=1764 */ + "0a8489294b0616f15ef277a1202779fdc69d669fcbfe901d93ab5883db93de8b1051d539650cdbcec1438056b85873187321969cda87040f8cade4eac7a564e448f7b4bebbbce6bb88a0214e4421c2bee972daec5a699bfcd685bb884924eef9433dad641d6e3e6f0a8de7ef9c398448d2c98ca686b06e478d3226ecbff00d8e829d3eee9ccb7e14f8ac4ec0354560f1b92a5ec825923805985cd1ab47c9fc0f8d6343fac874e313f943ebdac39d45866ee3b9448a8c6cac97812c3c65f7e4a0960c4ecb9263d17812dc140691af1cf663017eeb07c6ef150fbf9179a97a047cb8084617f84b46a8636804da8a47208c3e9edb1984908605700ed6d432ff29d1d41da1e08c9831d2e5481e561642ed900b4eb4c9568e63daa1a1d1ec97a15c43629eee551fd4617ceadc3b587937bc599929046887ef59a181bf3c477a70773c9fb222d21df2b45d56c809f401007511969bf096199c9fd5b9dabb9d2c0f51bbbc463b826db2f2e36ddafb55002e0cd928ed92dacecaa91076be6e0dda37f0e27eafb546834fe1108d7be29d68be", + "0a92a1b7ce11f43d9419970352dbe8f6dbe489c2a5e5271976cf4e7d8413644bed57a3e26063f8a1324d80ecf9fcaafdff9d513c39a3cdf9902bc05173a2b7fedd1f0b26e595cfca763c769605139f32c76da61d510869d5dcb7b8299e445c125f2f2c016828dc38b938c5aef3eb7e7d89729a5568d00e387a06abe842546d9117434b463b0f3f81bae8c59b5d201d8d2fd6944baab5f4e41602eb3d68b4a165173d84387ccb4629b4cf4a608c8e96c9a660cf13977a5bb9c887f8cf4877bdd2bc2c8ecc517dd4c9e437fd1eab9bebcd9a70286edd1aecc932b2fd89b3", + "feaab194f039d25f104f7e81beaa8b045e2d0bb565f499decda44a1d4a1cdf1aa8c86c5922d2cbb52144b78d4c5085379ab4a439e82f610f076976cba4f2fa40ff4d6ea93117cf1dafc2da14a3c468a6d9cc2beb0735c7dc02dda730b27e4973fd8c3ab64bf79cf9373bbb803533d227f5925f5574a72d38cf0071654d3fc3998dbf7afbe35b2c7bbb2a720e0988294b74114a9d92811f3f2ea7f1b3cbb488e0bbb833d5c0ebe0cd3d239c87282d6c97be", + "b31e07df7783e94ca0607ad4b36f864b89fae7187eb70a1e8ee42e269d2fdb5fabf578b45690b1b4ebcd67412033391bb8768b84db2d113dc39907fe96e2504b8eba270184264b142c471fd41fca3309fef8a344ac88e59cb8d69290b29528a300b3c286e1e92fb9e401869eda3e1cc71a3b118cf13ad09b13d1dcad035b39960422aa1fe1ea706e9337fa25b4657fab49d7d136a59351436ca40cfda3aeb8c6b896abe89437695d7f59f59e3f72b57e8cd9ab85b1078e2f35e8965599ea9f64a6f65625aac8ba70f1769ee0b5f192e7e317c5c7627d5524efb4a0e4" + }, + { /* i=3968 cDividendBits=2617 cDivisorBits=886 */ + "a148d7d8e6976d4e0220f2c0e61f6153dccc2e30201e87d6d6309c356aeed3779951d7df159337bb9b303baa16724ff3421eb59dd3d4730c08f2624863bd304137c82e831e4feef19c959579b9816c375b7ba22381f47a5d17e237b27ad4d1aeefec7e908db8408de59e7286048c040edeb152e26e3e3db51b6efafdc27bb1fcbbbe174e08e52375a0a3950c630ff47212fe8b57d9aa76adf0750a2ea5a36745754335c659b72620da80b311a5d876c7f7a8c15accfab5b0b1e31d20723b8ec0d3a0a5700fec8974d18a5444eb2ad77e9d36233e593ebba41b4c3101ff4769c7b5fd95ec94c99406781b71cc87457862f4c24f3d5a6fff2ba40a0f685fb0385a85690228e83073c098fad8bea64e24957d50e1edc2ef659c10eee56d9d11e8de9acbf21de8d9eebbb3734d1e37a4e4904a7a6e211fa5f0369c8394b435fc46675001504b248303", + "30083a375796e51f9b3c6449b9a2b6deb038ee47120382de8d898c3f2a6a488cb5a730abbf91ddcc90f41aa8eac88139157e72df8bd06009264cec5dca821cb738ad201bd757add20f5f175dfabb821b273be1b9cbbbc9d0b61ba742c39ffa834476004fa41aacbbbd19060c1f8697", + "035b9bd2a6506c791f7af844063e8de7fc3a9112cfd4e218e36ee9f81f76eb4ec79dbe537cd5e5099d65654cae29cbbbd09456633dd7065a08c2abf70a3b6389a093590267d4a7a1da83a15db46e55f9128a43617de0bfed609704153c5d98433005e9356be18c273cc64baf73f80842288332ea2bf1224db3cb0055fb8265b66cd0f0bf5530230c0170fc08dad4034903445491e08dbc3475483d77d5be2832ee00fc05c8e8516acddfef84f55ede6b0996201b92d092b6657e5d6769b8d6df8a8297d616723ceb4b4b3072e5c25c71b91315e26c2d24e7ee", + "1a7e9440bbc6c8383b90d9512424892b0c4237cb300a3fe9131f4929c0abe4841295bf108526a07e5f75c6aa03c11b485cf259446c53ade1c6a8822fa496c9cec7b3567e4cc3b7665f3d9c51521a7d9adc3081e2b44850132a3d701fbbaf56330daa905a9089577571f3f51b2721a1" + }, + { /* i=3969 cDividendBits=700 cDivisorBits=97 */ + "042a112ab4d6bb5e8a8dbfcc632978e74965c4dd39fa094646508506534d842720432d80d08668f9915067ce88a2b4aa35e9063135fedd666cb8d908c719948314e9287210c3eebbd460d7f448cefb834fbe99a1564b328a", + "0117394958c3751ed0ff6d32d4", + "03d16642e45ee1c947d3ec74b7ca0b27f8639d4b4928519b88d2e6cf19ca38c8aaf91274e2bdb0d66893f905589eac01379b9f9fd2be7b0d25416c239fe215dd33af78628ee370e0ada7442d", + "afbf8ff6914005f6024cf346" + }, + { /* i=3970 cDividendBits=421 cDivisorBits=297 */ + "160842c1102684128fff441aee62a4efc1ffc8c6f557a560cb8ae8ddcec24b26975ed122a8996e6c703ecd8e9e488ec1a87d83c14b", + "017c482d57c643c3a23b31fd07dd78f0b1aafb4228bed2fbc5fab3e77c56a735b9c5f7f3d77c", + "0ed4effe03259789b27f6a9156e4d98b", + "7ea5d11bf1c058fc71a8f947798015b63aa6885c1c28b15cbe9be26a9e7772ef319805a4f7" + }, + { /* i=3971 cDividendBits=3809 cDivisorBits=2797 */ + "017082179add9636c61325044b74df1ed7439d270742dd5a58f81e1a4030c7204fdd7d6e45dd4f4156b8bc456cfb78e7e68976e7c8eafe9e7ad3fd654e789b398b21bb6955c2d9c618514291e558387f95029b7299860b894249b11c194eaee397c4d1134083b61f44f3e5ef24bf07d8470c0cb3f14b3ec2450d5f788481586755cea2498a056adb66d8b730e717452a2b64fd9e7539d2249151f628a99cd3eb827b44c8734310d3a32a12960fb4b344268d90ef6ac27e69da97619d267e29ad5111c85a62cc0b8078da9432f56277a359e359aebdc5c1e51bf423931f8cb9a5d2d6eaa8961a538f0111fb5b4ebb22aa520c860684c50c909e170dbe113ef424a43a80f097e78147072ff068540f3efc19be280b4b2c8089fda7a3040d7a62e9b0e699e07c878f59823ee873aba0c115c024a7ec96d4b84373d8242de4f56e1011b634d50e054385f8887f7c8c02152965cdf8449279a74233201599acec5717babc951247adeb727611a9a57798a0cd60a1b7ddc7e5e8f4660657b0d6f485e716bfb9db0d4e1bbd34a6be15f346a018b2be71a35caf246c131a4bd2fbf1e78626aa865ebfd7df21cdf0ef1f02b2e5eab3a98fa3b8f97f2de3dc3a6740e03325bd0069ee1306d97215c49911d1c0bdb26bf70ab2fa9849cc84dfe8546b", + "18607290c0d4e31fbaeb4463869810d24cbcf052c3ce170804d21e1806e98cd3b31001bd6787dd9bab2df8987d16a5370a62d0de0d7a83abd7f6207cb6b0b68fee362ea134f6f37021931b3a8954938cb22b1b2f4e8ae52463c187d3d6516f84147d4d9aef402d63af3934dacf50797d326c252c6889213e4085329a49b79f60d52ddf0b516a5e730514787f8333d5c15ebeda8848a8368f66aa6ac9e50090211569cdbbc133bdd1bc0c92f3d00f6718cdfef3989047b79c62ff00193e088b93d5fb6007fbd73143b82b59060b3adb1e8e9c582d2f481ab2558a4a0ce99e4de9a8aea2876609918aa5405466f2bf94090e3884444c27dd245e80785d2cdfc541df8b2bb433fa0d344bd69a578527cedced273de4849dfa833b2bc7a0ebe5891dc33770a02e63521900f65c8d0c06b84c89376bbc4a000445279caa74ccd7f94b313ee936de89e6551085990d33db648bb42f3b072f1ce15af7ebe5ade5e4", + "0f1e00cedc78280a13899354c843f1423671e2997c794491d033b5dec32ee8bc9e79ad6e69263299df07636347553f3286a6de45a0367527e9182428ebc36a00d038cf51bb506ec838b15cf9cd26516d1174d7ebb1fb29378f814a198d18e08cb85cd4dd5d5278830586536bd63e935e0032b93cc4b81252b246f5f85eccf0", + "10c031ac8a46eccc8ca39c97c44d1fd76ae85e2125fc89a3aae04ca436e1fa38394a7cb657ed098aeeb83094fe2d635d89746943caa6c011c75e9d7519fb6b2ddf2cafeced32fd7453bb6ca47a328ad3b7e39f06ca57ae90d63a7ed709c7830b7738df12654a949e8f38afff484c26ec88e3f58e56c8098694a714fe3ba7fab2e4b15b523575cb458c4365d2afddcb571e4d2e5ce8b1c93e29f33aeb533465c9b1266e0c1d98333b08a38e4cc14aa47490152c4251a108e86a7a9d0bfabfed836990ebf4214a11e7af76ca992c71980d4bae1dcccbbdd721f99f406ef99a4725ab320073144879a82d7055a09fafeecc5411368cc43106074fb80a5d792ff69798893607b56f6147f8892ad10920666a7f5712aa2fa1956b2252406ffdeb87ebe39385de823aa7c142caeef4d90eaecaa44fd4a2cc79aee8398e1ddf07e27165a61caa35bb384bef97cf7a4c6c4fca096f728c616e9a09813c93aff71eab" + }, + { /* i=3972 cDividendBits=3241 cDivisorBits=1172 */ + "0139e7ca26eb45045454d206f2fbfa790db67bd0ff4c9971ce1f541f14b2c4d9775de656dd0d598040cbaa9ae580aef3c8bd3c1b6c4866c6c048f477f61cf74308f895d20a9450c504a50d584341c66da664d881c273ad34361a93317a104f2b4bdd11fb83f0cffda905ebb2ac4966839ed80aeac02fe1ccb9f244fa63aa33df45eeed153f721fe407d38d7c699bbf21df28b867506569aeeb1830f935fa2b2f0183a2b4429b20f13d9a71dd373d94c87f39527988caa57d9fcf2b4a646fc91cbbb89c1aae47b602364dbc636154737390b2a4e202dbdbda62bf839b7116026a308f6b430d8e318d42b346c8eda0b8c0e25b5436f630f3f21716dbb071d04c58a953baac70515bcdd8c5396bcc22a03af5c69c5c745ebbaeb9dd6f37ed1cab46c33a4114d5a898aa7cdc63bcd56e65c917a0118e2dddc718b594040e98841a66fd9760e9e64610ddc712edb29d24ca344859655f85139abb93c9df7cb5730e3b3efc4f670aec37d35fd04b2eda54f9e680261ad1cb4e7c76266cdc1ec2ab6709b3ca319a396f4beb1a21cefd8d911f001cb30c20ba57", + "0d6c8fbc78d37f254f22983e9f13d2f60697113bcc19aaa96d1c2779297ef5d0efdc2f9cedd68861ed48ee2b37860ad9e1f996b383b07896e36a553965a2be5288f12670811358d0a7f28edde75e37c95e49f13e3e0f378558b2d53744a8462f88e1cf53b9ebacfb3ed15227b267ff6edf2e94b084f5b46dbfd00f284bd2e78aca68297b6fe4a49ffc1135f4db71a3c50de640", + "17623f4256d3c90196de85baa322d48f87842eaae1c07e74708d7842bd4b344d9150099d59dbdd187d5ef605b7c31555a53353947aafbda94ca3c9260a964850358ac3c9b5660c730a9232bb143680dd0ab2cc6912c171988b28d31534cc0d553f447d7808d5437ce14a63ab14ae7699f0f9a9833324d4877d6b623833767d72797a69f08f458d55f877f90120794b66968150537854bc7c10693e77afa90331ebdee3b574b64c2dbb3db6dbe3d4e21443b699708d02124f0563a9c41c80c7871654f4602a1e4d2b54e84256ce2141ce16ca32508ab0664665103aeb33b5804bf0d368751dd1dd14992328fb3040a75f1ef0f1b23b8b9e5e88abebe7c80e3c17a16f53", + "04f7609aa77a735c7322f92ec674092065cb8266101580c6fc9fa07dd224443e860ad643b59a39b2b2afca43b683e49084c5cf92f033de5874e30bdab1035dc28a34eb0347cf8623df31c1e60854aea971a14889479e3fc7d029a8c57c978c6946aafe98f85b8363e783ad315ce231961a4cd50e06725899017e8448ad12e42d215bbf2b6bade807e8ad26d3079dbb93895397" + }, + { /* i=3973 cDividendBits=764 cDivisorBits=365 */ + "094428040671f5b3f3e77ad0375972285f1709b6cdd100188fd077ac52ae73d47b3c54ceb48f60b6637e7c3ca61b462d08f476b0066c1f7541a11c51a9b1bd9065d000508c9e50bdcd97514960e77096695931f6eb7be4562a30431f7f0279f7", + "11539fb03b7af2bf008d74f4f1ca198a1f64d4e49529ab54510994e38d67e4d850b8b2eb9c02a1913001b5190664", + "88e86d4b0984abe27190aa4a8343401612a53ea4913f7726d353f5e27f9cf2b695d6d9cfffcb122ff474409dafcddca026ab", + "1102484653eed6431989b070aeecdf78b6b5b0cd226870505d672f0b13bc99b161630d43672d2ca5c5e3e1d85d2b" + }, + { /* i=3974 cDividendBits=1309 cDivisorBits=531 */ + "07cb9783d6a21f944b83f3079f2dc7dcf542e824f17d3ed3162e1740200ef3ec5def7f4e5c23e437df563ba68f873ebc413ec1158162a2529499e773dde811f0c940514164107c73d9b7d2860101e444d17a1e9ffec6368381288c19d1a16e87bc49b6352dcdf04269b7d1d600fe9239020249172494894228698ffb5a088a53cff5108dfb0a4113f57e677093d61b009e61734b406ab51b10cad58b0f8ca28a4bf23290", + "07e258cc591dea9f8c5175d72a57bf58de3cd74fce98524714571c59c04af40693c5a41674854de03f72ffdcd451988b30a7d43b6aac1ca5848c11dcc2e9abd928e9ef", + "fd1d2440cdcba5b63871021fbe0622893d770c0496b30aa180a7d027237708d2b9ab329c37afeaba3966971f1c5dbd0c3e57b1a8cfc9155aec99db2f6047d69db553e9245d98bbb0e930429419588c344564f0a96b478ea8627250bb0845da884b", + "0767d860c6db2c0ebc439e45b1af3fa016ddfa4eea8bd3aca4e0d8223db9be65fe5e282cb1f3f1b93455c9900fbff57cccfec00644989b36e5789e539709775028b18b" + }, + { /* i=3975 cDividendBits=3902 cDivisorBits=750 */ + "04e1c5db34e6fb93c69982e34bbc284dd6cd9fde23fbecb0a68004f5fe0a05963a04653e9e8673b3405c05c7c27749958cac7338a2bc7046f944ca686acd94d8687f695214e4dd47424ddc94b2390b8423a007497f343ec1bd7a02f0e8cd891905487fb339f2f0a7de3f0a249a54a461c81632c97e62481a2aac6bf147a7e4bf397863da2517c867b3d41c119963c9b773e56572cf9da5a5dcd1a5ae0a9cc0863668d0aa2b2f5a4a12e167f73048875a3a2edb9629d4bb602e23430eaf5505c079af9123f61e50a1a954624ff8dbcbbdb09891a7ffebba01108a7f8725ec6c89d9f9cd86bbb2e49bc7ef56542f413c694bfe389607fc3dfce63e3417ae9d1847346a6658e0fd797678a6b2552d9ddd6b6a21171ffb2b8b707e6bbbbe8e07ab173dabd493135e1ea7445c268fbcbd663f130ab787b8ba58068cdceff7c70d92588524fa93dc54de834829251c24020277e09775f88d32d99691679c05e46effec6aae1ba8b5d1891a24432eab2de8cf9b8efd351cdfed8920f4354403e19f7a19028a3a1ce3bf33782727341cdae6ba370177158f2507969110bad75ab3233c886d08a3ebb2f30056a4d9d0c9ef46fad41c6354ddf184b5988adab8880715f97d7431a9aa3a77506867e65e3e2407169cd3c224090b7408a1f78f295cae24be2e751218142bf3781c", + "2ee0c0af38eda2b7f9131673d969a25a3cd4c869e63af4bc6ed2a47c1f35ea461c0f4e7d218f2070c430dcf625f0b780a48888c4d88b5d3531ef70161d1ef3be6bd6cacabe3fb01347edbe41652ac70f5901eca238752613b9d7cced56d3", + "1aa8ff88ff91e0520949de9830219ad074fdd95b7c6b2fb9ef94ab31ed1cf717bd252ded8645cbd62ca8da454e36f57caf32046a5fdac0aaf51b16c81e657c933f4a5a69fbbb77dacd6e9729f9794ea4b84bb1a07fcc933b6fdba8820c71b8c3edd5478303dce31da59c4823c7d9a158e948a3497e7b849bb1d70ea1259a89d6f6f3285d4793a4578c718842b38c11e43f600603358971fb2f458442547bb07967e1e6bd06ca63a39a46eb16151a0ba5ab024b3f6289a5e34f8a8c741be3b143835653f0496042f587c0f4189ccc4363a8ffc20d79cc5cb626f14699508af1ac40250f49a066689c027036fbbe076f7aaab1ea7e6d49d525ce2437ccf75e56177f3f8d668d39307479252e25b365a0977bedbf0a68479db69b6503cd6f38fc50fe0c07f7edd8f25d11119dc41c7e3b860d82eec639ef338d272e7fee5c7bebbb72399461eb0781565f5fbe611bd46ac05e043f0ee8fda4a98c1f0e6ca4427dc49bd3920e585e64d2190c86d1cab39e9485886127726acee4387913564e5e1be7a131b14a1977b8be604c", + "2ae236b0e66ce3e06172bc9b37b34b0a73baa20965ba05ae1dd075e04ba850859218476b7a2d9d29a0a929bdc31b76467d482e72248166eca6b3a46adf61e5da0a3dc516f90af7e00d8f2b567fa2fa870eb9daaf7f8f4c4559873c549178" + }, + { /* i=3976 cDividendBits=637 cDivisorBits=168 */ + "19ea25f28565aa5f0018f35129338b30e9d94e0d4ef4dc40871260029478b96ed5e75b06ba41fd873aeace71688ba224bced6e8938172d2ffce7d5ec62bd4959dce01e21efb23b4e9b4cbd23c6e70c8e", + "556604adb3ef291cb4679bc8aaa0a5442f097558ea", + "4daf415a735a624f9774a706114938f41bc5880394e61e5db644b49d4353e106b6e84786a380a4caf12c2d6abec95942dda42c485a307d248db323", + "4f2dd3f4d01ffb3c90cfb423d1398e86b38dce4690" + }, + { /* i=3977 cDividendBits=339 cDivisorBits=148 */ + "028845ef590b8d2c0c5f352e7c9e35308b7ee47906f00de593b9ad2e38a9abbc1c82472f65e543fcebf6c3", + "0a396d7e6bd56e2b50ea9fbe2e7ede503100a7", + "3f67ac5a1638e95be0f836fd411e79c58fb98688a20977ce", + "072ab4f7f9e4c157d2d20b6263e03dfa50cf61" + }, + { /* i=3978 cDividendBits=1438 cDivisorBits=903 */ + "3a6669788c0a9a31ea8388cae2fc6f600d7c55ca727e1611546a5024e2ad0323acf4ae0eb38961356fd48b0e2713470ee321daa918fc8c3646ba0e388dc94963d21d153e9f853754ef509d3c62d2219ef673bae021fc245a7e4efdc9ac9cf39d4fd92567d94bfe7720ecacea0477421f069a5171f6cc06ceba276b6bddbcd92f981071de6ad6d54ac24e216f89a8fd1e1064246ea2dcb4880cfb292dae27aa2f9353f634ddbd5e966866602cf6e9b0abd36e0d4c", + "0ecf357943d8acd464eaeef87e2d1b8e11da255b85a73558234ed192e45d09fdb96fde4372c7ae775f46d6b6018f20289fab9f5a56957e8c5bf6993527e5f549278598b91a8b03dd198a9a10ee1c6a2ebc1b187dd63f5ddcdf80cf9cb2e7d8e9288b7bf8935c9b6e8b6668b7054988256c", + "03f18568b7cbb65e8de9fdcbbdfefc8be07cafa482ec8f83a5f8def69f3dfc891fce9770c75bff7c153dba096f60b3ef91d4e5d6b0875d25445643ae5df56c239153f22c", + "8104fbfb209e11499fd9de3c0186f59220a456810997a697a27bfff51c7d5b7713f2ec57567de5481aeab96bfc692d662280d84c957e153d4772ae8f6886f1172b54682afdc6f317772979f5521cf9ef96601cb50a66c4c6a4825b341fb464a4001d049ea3124cc080c79a262ea386bc" + }, + { /* i=3979 cDividendBits=2709 cDivisorBits=2696 */ + "1458610afb03c7bc986709e00a7e33e67f4f55ec27a4d4136c33f48f48838fa1331392fd667492ca9a9caab0b299fdea6c7b9237a56081b61b62466186659250b882bf44d89bbd40dc8647a736259790559557c49535ed068d88c1542161f0c6e5710f0a4c37346f293cbcdef533433bc41b8f614751fd47b233b42f7edbae4298f763a33c3ed079726b13f8c3d57ab3ee63303092c87b7e498e2d20b4dff59175a650eb4c3138f35581a6a278f4add27e2cf684093cd6342fdd36ecaea879f4dbef6bcf92325b89290d8446d9030781b3ea7af82bad0449199ac78b4a9adab041d6675d0249cfdb2634d07c7b48ad6e1c3957c4e6df82c129e5546e281278e773413417b8deda448408c441379243f196feab7cbe16a274ec69fc654d4622ef9087282525610e0bec64ebf363f3f32badecfc6a7b0b2a1372ce49ee67f606402865889d8b0207c4c0c4ed790dcb683a0497f0", + "2689a3f66ce626129a41134931d31dd92463079cf91f5b76a8716f8a33f42eb3eb7e57eb93e74948ca957894962cc9e48b3a37be2d80f78b2f6df11eb02512bd81092eb4ffec41ad21fb9bd6f22bc3efa5a6f6ac57fb34f3e12b7b02c25a25507512b15704108806b26a62d419a2273246ccc27a8b58e826f3c8f87dff846b19b848949ee15eac59dba650ca026982b61348a46419112d9c06caf1b48aef61556b8e3a614df0bbbf2d340e3cbe944b1847a349c82faa4ca9735db46ebb4476b64ca6f3b183c7d709481eb2a81b49821c7fb9319ee720116487167511466e2ad9c2c6262addd95fda0ec053d221561792a7093c6ec05455f4d367d1f19c12314848de60074887152d2e008e090fd2d8b950cd790b17ecb2f25c94413c9d0a7295f5e81b78295ed4d2ec65a5f8cf0ffefe914790174cc39a51f6d520053b70b0dc2ba2cca5c0d1745e3a336a13be2146ab6f", + "8726", + "1325b1023f7f224bd30b945a79d28ee3b6353ef8503045c321e6d89a14c1632efddf1e7da6d056f9c5ea715a14ccef23342e1526be06f6b641e88cf3dfee0155c04676c8298ccfe78d1fba8890bddfa7b4e7153b64d0159767016a7b8db7edc2d2bf1627e23f702826f67032f27e6f4f126dc9a56ba8b1dc89502a68ec2022f7c27d63d06f887a3fc4ae3e937b1c833104b762b4b3e43cd0258a9ecf19b4f740590551a5b435a64a7d66537030358acb385e8462f47f72dfacdd817793311a740084c95a697958a49f81adab36fb5c54dc500234cc5a8171e279cde64dbd0fccffd2bcef400aee0f33bc3a835438465ead8787027ce84c12334e94e7b63704191e71a08ada0c8c11a5455ae1ba5bb1e05227ecd342f48d9e0ffca77650f579974134b3b9e7bd1a6c3a568bd3c7539586aecece1a9ea951794268e4d6c641ccb43487c1b8f44fca172ce6e599a3051f9c76" + }, + { /* i=3980 cDividendBits=350 cDivisorBits=65 */ + "293342a1bedcfae4acf72121c52974ce3d0bf9c793c63047e041cc659281e3be376c77c5d1891bae8dbc5593", + "5ee9fa82eeb15fc3", + "6f1fd99a900fd58dd30498fca33bf1d612c481a1a1d17ad7baca8ff6264813ad5811dba9", + "0234b693d9c54cd8" + }, + { /* i=3981 cDividendBits=2001 cDivisorBits=1196 */ + "dc462a58feda896383ce382511218c4a3b8dff826f67e08c430234125b8d53bdd8ca43ea14c6177a6d95f830f085f257b572c4f396b9cb7c811e6b5f15e2c3424b56f06e07cf43564b05c35546972a75572a24b050957cf1a468b3d4d9632aa78593c1a39129d15a8929b2eca889970f42698e14721809ffea51c5bfc629c742f77dda53048d524cac9460a202965d35d73ff2300db302e20a153603678336726ff5baded3155a39d1f30da5836d1bf3eb57fe8bfe685ab3f135e6bd48ad9e0ff61bb57924c188530d92a93c3360e203cf91ba55c7073d7d7b54e47c65632a717c0f5a78fc513711bbed2d555268a79ea55d2879e59c32cf0e2b", + "0a53da91628e087510cf0a4ab3e4adb918edce3d5bc3e03678ee2eee11eee09e62bb0a969b69c117f1be3508559cdc7fe8200890a468dfeaa500ed53b53fccfe75cad977378fc919df0fd6c2daf7cef4585e6bc93a7aded7a98a73d26e5f31ee16b1593d9eca8dcd4b306077378e9b400d8b71826c1e051ad190cebd89f116f8e02d716fe91e3486fd5cae9d1f171d211b5d4145fa7a", + "15542aac31c911b98f5473f9e33eb2242cb5e036881c2020118d5350f3386e1bf6d9f95e761e377b025ebed065f9f927f5d53e676cbd4c486f25c6206baffb3622c457616266b548c8ba996dbde4b68e37fc26bea1c37b0b3416219604490904b3f3ed98be", + "0995b7e9181c0665c790a2e985cfb088143cdb11ff43ad9faf7738d5c8483bb4cb3bfdbc6d111428911b773ae7c2da40e18385e5d2dc4d19915f2aaf4e8ebb0291d99a7466c3feb5e674e549f2e710e93779cdcf939cc9993b0512cf790d6933d162754c63ae9c0092327f688ab09e7fcce57c1d7bdb3b6e52a8ccdc88415bfb48c758c689fe56eb455bcf723745b33b51cb8334b79f" + }, + { /* i=3982 cDividendBits=2271 cDivisorBits=1715 */ + "38ad2abafc85845c378c42e0ed2722378bb1c2b404700a853b17199fcff66eca3168ab3e18afea4624ff9bcfc643385fa29628cc46d65e8ed23599556cf29f49532f325e14b6e7a515ae98e86778818938178d33ee781361c4967c6ed032dc49429cc350ce65d8a6a96c45e5a0a35719d280577b2bbe5634343a79a8925aee1b90f6ed577e182bd2b08fc3c18897b51b0bc8113812d9d0f884d995ff10990abac7e318f24deee9696318d8d6d24f16f8b06b0a836c02387eda005586d389aa9dd9dbef5a8b2de639a63695cb6b6c570428914abcd0805db540b4046d069476bcb1f4a37d4425dbf097128aa86ef2706f846d3a4340db7b21d1443cce809111ce424d3dfc47333a84e2e305bb457f0fc1d867c063ce6de52906f9071f", + "e3835429ff025fd9d4d6948857b5ba437c19ffb0cc3c30468d54d9d2593e9618eb3e2faed6dceb25b6e537292452661a327900ccd8eae909a8f0218efe650e639a8934b8da39e34437ca3b37b20ecc1352ec3b3873f9f1c9241485192d2e9bb84390b08dab55b1b38d5d3dc99b92fe3b571f6b5b1b511786eab3fbbf432a218018d80d76bb947574c2da86b3cfb673985c9e05a75696eb97dedbce4d7fd9fbd5ee040ec8d73c08e141d126b7f1aab7962b3cfa6f131c9ccc8ad1184856a185859f8e3767002afaa2590dcb86e2dbd7bc71cdd4b41d63", + "3fc5dd9e1ab5560e16d25406da411ccc1c4f8c37e28e8c027c16ecbe4bfe0818256814cf566dafde90d40e896f84e7cb5622f343b3916c0b7cb6a58c7f250df4b39159935f07", + "d3bcb07ecb95717b536f4aa7b469537a63dee745fd283e3fbed55ceb3512c4deba2dd381fd4c28363892089309ab99e2e56e507f74fc47f9ed9301273c4c39b499747c133e733af6b832d73945937b5f96817606a42c43ef73afb1972d204f7282a3243ae45f80a5700863aaae525b016c52ecdef5a3841c634bd27cf72a902098a2fc3a721d53e6d3bb2440fe1031230b7fa02f64067e6addcd66af520f98420dae1953380ae53838756a6936839981a0ce14898371a8d9eb3ca3062ed4d74684ad8105e56132ec85adac3ef3c39dfac6e2144b7c6a" + }, + { /* i=3983 cDividendBits=2963 cDivisorBits=976 */ + "03f2f8fb406bbe9200df54eec2a5db40aeaa17fc9bddb974e899ea81cde30df8332207a1619a8667246efcaf143a17f8d1c6384bad543bec7b527ce315e97c32ddbbd37554235e67002ed8bf8ad792960ff49a2a11a8fb9174daa7abc20a7379ce5cae11340f0fb5ce91da87aa44c831a0537e5a320f941e56dbca0e204801bb945c6a791c7d5aae38a586fcab52c725fc2c72ce03f6d86bf30c21726b9570a767c0dbb091f0e75052ca840aef9fbb77de842d82c50ca3f56ecd46a4c6e35096e0ea9d425c086a42a8edafa4ee2eb6edf2f843af4ea70db02e407c207ca6a3d4778a841ab422b4948cf601c52e43c9be6429c7bea02de9f0fd2d40605f976b7d2c184d2372e64dc791e5770ec5fa67076d95915dc8cb126a40afee59a2d3b67192447ba738fe7c0718e8d043b4f24f3c39a6940a295a77647f72c1fe7651017b2b51545420fa6bcbae02a5ceb42a2940617065e50e97005b9dc367c9553204cd9e92d76d02338f952e39ea178c999803983bec", + "cd098a09838b39760f0d437f35ae0496d2784aa971399c6df5f8bac552094074e00cd70329c62969d2226212b097facc577e351e16427e3e8d0443f58aca57c0e2e1ddb1174c21fed16236a141c75822ce578259256e422e069b5c36c8d453d5875372c95e44f0fd4a4b3250716b83dfea54caa43ea9d25f8919", + "04ee40deb9b569a1a7c6cf5ca2e87e4793aa40ad800dbdfcc7f923572fb84b4ad8339a2446431797fdeb18c8c2236f20397b3288136375f026d0a2d852f06937c2248ee0ee65ed83d9914d1e40419356063d28d0c4450d96971b4fbc811eb6b72475d2a2b98a021287f710b326bec5d112e462383a64deefb92710d9aae4de6f5830d440222754e4732389ffb44c6c9cc9399debb462e967cd4891529789dc923d3d2a0167120ef1f70c75e63a06ccf247a2aa559bdbb00e5be3124141134b203f5b292d9ebeafb5d1126ae2fe79785a71546e4250bba750e8cee3165b1499cf66a9d0653cc38b52191db07d1688aff1c9826999db2f7d30d0", + "bc376e23ea545debf91f77a81987b3ef974c08adbfc02960923f6c34f7c3691f3314dcf7aeeca6f154940d8cb131c1042b2faf288b820657dd505a85daf71aaa255c3606ce51e86dbe4f7b190a8a5da451804bdb92480105d387f9bffa7dbb509a10f2e72d030f20f2b3f0401a9de519c0e1e1e35bf6a40f279c" + }, + { /* i=3984 cDividendBits=1164 cDivisorBits=741 */ + "0c3ebfc51ee7d952a5f17a7a3b2ad7cd18c19b98f2f64cdaebc97c6106c2586f04c67871535c7fbee415fd69f00e11463ece4f67e0bcafd69cb6bf1adb339f29276171668502f81ad26f48a7aea07523157035a0e57114e13d16b75068b37912ceca609fb82ecd9c3414227bf7f9fb088fe1da33a6df756a95637437aa4c66dd9e39abe964f87890cee18331452a9842d9d5", + "043624386f9fc97655cb4a7c04ae12afd74890414685df753de4116dc82eba05f4d9f20cb89ae0a479317cfd6d9b692483159d1f3a2ffc7e36106ba7d000552238ed9c8abc2eeaa8e68663ad9dfcd18fcc17e885bb74e586cb0f77beb6", + "02e8552012d0317cf3d2735c5dd8c04c1a6d30b5a3e6ebcdfd8d9988854cf148f112e072ca220e7e9cbe060d53c06aa1ca3ade368d6d", + "02fea52bbe126141cfbe9753d5ad2535d69a569964f6a3f6f6f0a2158a1ffa1556620eedb5704b54b3b80f0b01baa0885c8803bc408bfbcb4b4346fc3519c661f9c0cd4bf5b5196e49c74f691cb5035512a1a2cd6381e71d4fffd86857" + }, + { /* i=3985 cDividendBits=3005 cDivisorBits=1457 */ + "0b2046245bcd43086cb91f28eb9fdd2597a7c00308626732fa034b494950f371660e2d1aa3e0e312246212509a6cab27dbd071500fdc2cebb0792cdd8de8c7a01db6141a4e0cd1b55e909a596f15042b16b8811ecfa06270383f1e2f6eebf7bfa05af16a697870bc212092cf1373e763f8b88ac95996f1d4db8acf0128e113fe284bb10d3a527ff2aa144741e2a2fe44580d828b97611ce33723c2957d5640e34f8126b05c546a319d1b7e9902c489e443b7d57d5f7b5597d99dd14ddb434e7c29f7305abb7a35cf918ba1026726c58adff4fc540105cce3830c3ae2768b5449f10b7e80525f9b8946b378fb07917c4c533bde07179e3c6eb8cc20586fa2be728f50f7cdfc2345a0c0ae1243b05b9b841c534d3469283c9813f9e5bee7b3e52866f2074f8e651abd2cb6238a534f086c81642852a4754f760945ea6b1a9ad4b2eaa59f0f42f7549105ab80ac564de2dd28af42fddf03bc69c6e09a4638b895ac2f517e7cc1cde16bfe2505296901e7cefe0f5fa499cb6a47", + "01258335bd97d0edff1126ca297d472ef2503126e9e0251bf5cafd850fb161783dabb06581e88fd49f25e2c43ed40eb407d339f6cb4c96689b5122e9e51e982cc3803c5deec94b3d4293d4f73bb6f1869b2f4f511bfa5bd3e5402b92dd26c392f23a620abeea5736de9bb84656dfc8f6141b0ff8a51d9161e3176c2e0981a8510085d7bc4991f95c052676ddb683d701dea3a5108ea20ae6090f57057dd9299c5be6df617af64186a10c029df4a7f48e659f985f2ee2fc", + "09b43faa9db15e0ab4e7d6ef37b4f49468cad45e0f7d9765451e4040048c493814f6e2e3caa0d8b915aa8f1b34e7a984501ea2506e789a70a4e1a0ca9d8b452a667160f3883ac21701080fd6141818a6404f20d8447e3e75560e9fdeae7238c15552c0283ec63376b3605148fb8332bd82d30dfb8c26f8e84edea61ee753125cc7df254b1281223e6bea0cb2a48b74787da283b4cd266901e56f93c74ecdbbc8dfc7e6b68477d4bfeb33290a4d958e032fe6576f2be19dafa85f88f9924b012b8ee0", + "09b351ebe34450f74f2f4078ccbf615b4df583b7719c292994d7e278081ade6f7c2da3fa80e1ca2358944e5fdc087e2ce7ba34e108e7b345a7eb2f3be1cd6a5d512761e394271f8f1f28c5120cbf85b97db3d4fdf4e1b12f5409a23aa4991201172cede19992f591da48bd8ffe350efed9a557aef1294b6f14981c1532070af0c0d6e4dfa9d034c1afa2ee4e0c6dba2c873da9f31902d6c86eba135b8c56b1a623cd89c972f012f28944aaf339835859d1ee328905c7" + }, + { /* i=3986 cDividendBits=60 cDivisorBits=33 */ + "063662140f56f40c", + "01b23b7887", + "03a99ab3", + "832177a7" + }, + { /* i=3987 cDividendBits=123 cDivisorBits=89 */ + "17663a085b43bf7ac7bfbd1c8021cb", + "01317b7aa3cc00d63ca2a599", + "139bec76", + "4df9a381c314529a3bc145" + }, + { /* i=3988 cDividendBits=3958 cDivisorBits=3504 */ + "329b1781cdb6233e2edc35bb431f64ffc82bb913c4df7d7073fc42ba568c0633b958ed70800bb6edf4f12a9731ca8418801fb99d5babe40edcd2b9eaab0349a3bcc6b4ab5ad984c9cd26fcb81e974327a34569a6032918657894955b0a0139598f118ba64f1aa1a5f053fd05ae8a5c141dae877827f477e089f3de802d657ee9b7c4d04f78c8aace073c0c00c20361aa90815ae9da1f10e9b61780999c947ddba755a9030f1b560887deecb24966da162b159cb0315aca50b71d8bb56281a5051847a1f6f1a203240796a1b785ece05b0a1bdffc27f838db98dd9d0a3526fb2ce7163e97d2441ddaeb68f63252d254951c9b771d8f77c5dc7682e6dfbca5e1381458224744886c7141c9d49caf3703b93a8d179fbccbee01ee7737382c1f7afaf54f7dbcdf0b3dd5219e9ba1ec1fc0647b2851407481a127fdf468e3825be685a866590d6d59b6688ee2c16e260ef1885ddf08f923699db0a07e3388fe237b95175f8bfc4e0bdb7edd2368da3ba6d5dcfa7e7b416ef91cf70ff6054940bcd6c9a7a8fc9f85bdfcebeee9543059b6ba10542e09d9f2d22cb80dcd1d5fc1355deda650f321ebc670ef26854571f16a72e6ed6f4956c4383956aded0f870153f4091ff82f85f137ac55a36dd8bc3413f0b65a8f0b5ccb6c1a34dfb0a0a9e70de3bd858fdfdd637d73f960cfd16c860087", + "064b6aa55124393900c065a8101b921617ce87934b980be1f0cafd5bcd5474d92e941b7be87bf49bd4340592ad482823bf075a491a6e01c80aeb7dd74d42347c76640eec6213611f13db23169bfe566be688c8ac23329c044b9596a3c832ee5fbca7ac7e64dca8c382332e451dece1065d1d7c605148b45ad0ff95d1679b38f18330dfc7e284facfdca069419151bd45668156a20aa4f7d21aae603264123d5fbf6cf9ee62c51c042e598761bd9c013f6f4c1bce4afc8f73c124cacf21776eb54f5cec2eba07d4e1d6e71d3d1133fbe55f305e4c3cc36fcefde134f29aafe082bd66d64147e5126647f224a9ef8cc68bd319447f55a35f7f1bbfc66b9f61d1e885c88fb5eb269182ef7e53feece3013ad60ebca405d0d40335f7210020d7c96d175f7aba1485c1873423a9c662a9aa1fabf3c2cf05d3b221b1b83f4b114fbc53385ae05deb8ec8df3c4902298feeb53c3d25d8d7555c2e502547f8d9da288d9a5828823652a1f8bef44c31a794135d5e5834420c7f8c2f64a577a7727ac602fbb0d36e581cd607ef39d7573d139bb28b525aabcef7957ec9fec4fbd85cfb48a4ca27be54158a13c4256a88b55e8eecd5b014d33c78ef", + "080a211270415328811dc18f391804845efd6b25270a65fbb359f7cd931b52a15739e2a7ce020e86bea4cd2d7019ab3c05517f8d2e2baa98a5da", + "04200630e9c9bcd65e896b14b52f8d2a3e46e37730f9a8e4f3b22d84cb61c462c9c60fe57c8d87fcd962183e9d547437ae801900488cdfd70b926140d731b480425fd236e331ad675d5f6834c7725d704d6f24efdf32313bac2eda596e7c2bc0b00ae4ceb1e82be2c96d3bb5bd8f0a5b033c9db90d681a0a674dc8c590fb6ab0a24b23ad10614f438c2efdf18fb5c1a6ff270ebf66023b7789e37b917e4853b28c24dc8aa547b25978a679acf67c8344e8f0259f6b3b066bf1a4aeebfed9de90c0824395ea9eb58add0600377e66ad2732676bc6324775ee43afb2c91ce885ff905c74960b898f0a5a3d774779c923670bb38610f1bb5cd3b7086368d9f4911c5a2db5da25bce51ba33ef06dd6893186c4b8748f872e89d529445105ba4ffc5679e13d398cfa3427535d101177370c9214ee39fdb09cd2219b3e3fd8ed5b2390131bacc6009ed2cc8148db67a8d74ec13f143c33aa06ea3de34ed1a6a6085a33e75054c7a3145967a4b5a377fc3e836810d4deb87ed1776aa1258db76545c7d25e9c06055b77f9290832c820a52b5cad3f0eb74f0422d44c6dbcfa1d9c18a9bf701aa2e55a6af7d002f0ff8dbae9aac19b940d2cfa01" + }, + { /* i=3989 cDividendBits=1429 cDivisorBits=633 */ + "02ba534f2f631e631b3aaba351fd6d2a7a81cda9b89fd902c1e01260ff193b7512eb59656f0df9f363ead5018abd14128339160ccfdf4d8d6b95d10c5d304f81050381e1e4b7a598241b8f101603c2b369dd2b91b3fcdce73fdf8bfaae6454617380d77335c72244aa5ee0145d563fc6edf57b4727c8fe59ce66a524ad40c96a29191ad98740a8c60754406f1807c4994bdb97e0b4a1308745f694abe750bf751e92cebc27bc998a8b829aef2e00e5cf902d83", + "011233d7cd90dae63b79439240c90ca6051cbab2e38bbdb16b8e8baf401a76cedac96ff124139f1868363c71fe97370a445c84311a5a860f232f481d59c2a9d99f48dfa7d279373622a588ba9c531ea0", + "028bf7d9e43fc881b9c5511ad92f41d8881268be369ed1d2e24b2d489cb2dd45780ca77a1b80d0588a406ca13c5cfd475605e445702a65edaef0cd77bfccc4e669bb810f27dcb218622b15fd1f61adc476ba94398d82375150576c6f3ec6cdf5e5b423be", + "c03328c3f6af575305eede8f8abf7d7709617b5455a8bc3474c0b9acb5ecd96876707364942b888b424fcdaff441b1fc7e6e2406a2e765e9c406a60626e08639e11fa598899722eac24f0fc42f92c3" + }, + { /* i=3990 cDividendBits=834 cDivisorBits=373 */ + "020688abef45524f245c307824504fb12dc7c63da8f4d952684826c1141f7b5cda73bbd1ec3be26361971c0d8ddd69a0c68ab8682fa4de5b9252d3e8df49d9dcf6123241bb1dddddadda582fd3a9a825d8714ec8146498e7c2ff733bc882da3dfd4fc96121cc93887c", + "1a89efeae044ab88169585e63b4676fdce471c9ba83cb9cea6ef5ce2db54da0c18a9a4db44edf16e569a0c552f4c58", + "1389e7f75a3caf419957a620ce94dda08f41de5be271d38925a9da2fa0e77093fbb865bb97669f5746627e3915fb8c1798321d85ec2b15c97157", + "13c3ac4fe49952a2d51d462d79ade529ddd51aeba2b5dac6b348416e826be0ab9853596fb20d9814a4df28cfb5be94" + }, + { /* i=3991 cDividendBits=2405 cDivisorBits=447 */ + "055ffeadd07efd51a6ae179937138abd52701f8834673fabf05fbdc86e7c1ac9814153df2df54eeae01d4737564fb0d3e6e82884356a858af18a2a600e082260a3939a04f9a243d471e44efdb1cb6fd643381fc76222d685aaaee1ff4e73b4514ea58f69c7ba8704ba99a50be77033ab90108266ffed27d8a18208f41a79ec9f61061071db93deb359ffc0a8dfd327b05c41fd5103145b858ac7c664dc10b26e7fc706310309239fb43ad1e141116861613f1a61f51404d0282810cdd4f3fd396700ea3f1b9b1ec2430e9d39c19f1a4d594e98aa3c5b8aa41cae7256766ed4460cd1243d0ce5fdf652775c7e88766f7fbd2352a97e5d3660caf0cf69cd9a2eba40e31802d001b016bf1026dafa7d92235535c315ebf18c63a979f2c3f13d1a276856e71e03e36fed055271461a", + "6f6f1c41ee3d81000b629373f6229eeddc80ac39355eb81f47f58326c138915d758428c509afd9ff5b0e1d249bb88b3625a8cb0fc6b67a75", + "0c591af055dab538b9b5e869c8c4b4fb69060206cd03fa6d78b5426de0aa805acdb72a22a8bfc8d6488035e30f7a4889b65f25bc90890c53343db7b5579843e641f6b3282dd43eb120661310c65ed102167d7fba4e1c2f02b960c96e88d529b5120240509c6841c596c2725fea3e8d934586ef2294f81b2dfbbb743e47a2b8f63334572e10bb1fc1f56ece46f52245994c6881eff8d3a00fbf54ffae3310e12d44a31faeab57d7456cf20d533025244c44051ce3da922ac09c99ca0feb5eade32de35fc32fb01bb941d0d26ae84c73c404d3d8239d7c1a18b22d8465112be8d965bfde210114087483f331059498e3661218b609e8", + "43262c2d08c00da45eb64ada6c746ded998bdf154d2333d8a9b47d8f02147e3511577d38326ed3b4c121d76a69b54324401dbd4ccb962f12" + }, + { /* i=3992 cDividendBits=189 cDivisorBits=54 */ + "05f4095724ff47f3db14b831c8304a6d3703ec9e65d782de", + "2c403e567563ac", + "2270d5ca1d0d35b7e648b60956997f71da", + "281ec8b68db666" + }, + { /* i=3993 cDividendBits=1085 cDivisorBits=507 */ + "16ad5794cbe127e7e49571e89df2567f59a847c010a6426e7f4e515ae0c245647c1b9fde53b1c373c136a3172796f289240f0190ce06d73d979ceb6d57c328d74c76c5bfbc3dfdcec84970269b8e25db5e83141efeed6256b4034ee631540a242c776b268d5e0e31ef48f1fe7aa9efe01f7ff7a98fdc3be4a922c41b88345ece123af89d18f0e2b0", + "b7a6878a1b3b8ba5fafb8a0f198e09c17280008e0e16b45af4a4c1a161c91cadff58e58b0bce373312e2324a14c878b6b97cd3232993a04c4f7582008da84a", + "1f9c5e5b115df41be73855db0b1431bcfe0d3e1199566f696c2f4f6b9b3fb4c4c615a526f2ea82daf00ad3f32ed8a72497862063831b0abf27540ca15a8c0b34b84fdc614e1f39520f", + "a3d8aff4f92bc74e5b2dc9e4f443ad7e64e2637ba55feeeca3c0e9093d1c12e33b43722d0edcb0bca1b2bb15aec45bcb2114598abe855ef066da5a4242525a" + }, + { /* i=3994 cDividendBits=2026 cDivisorBits=1407 */ + "02d5cab500347f520d27a4a95b2a9085379c96cdbc56c44740500179d1a7f933e6333b32b80bbe2fbf2cd222e31c49c30add63c1020969707f8305c6481aa1c62aa168aab9cc951f9a0280e434489a56cdb1d82489464e6b0b436cc758da031c4e44e0c3f1917d5959d5d4483b30454ae88981b56b48ae211562eeba621bfb7098192931a824e9b6e9ed11e2b7b5faa6aadc554dbe3c132dd845d6692fbb3dab1a0753f7c61c116f069885431cc1970a85ee51c15f0090c94c6e86b1dc60dac6849350f0c2f69c8a9f3118f4d044dff4513540acb829dccbaef9b473f15f6f61b43691a9ee767c280663bcfd475839e41a28e1da38fe99788b4322a7a07c", + "53dd974e99479960096f4472b6e3cc902f43fb4e0f8c5edc9055749c7a3c26413c58e454021b706690469964dcab9bf921d0a63ae58a19c5236af67da33657983d919f376628fb4bcd32f390aa1191d77aba97d28c681897ccceba5c2793d004e14f1d6f5e8563d82d25cc490b2e571bc0e0696b9534b3ff51d83a80ab4b0547bfd68b2637b03584041722cb6f19b8d7f455e36e5e5ef7ba71258589f22edf5f1f279b95d63a47ee199f164be5a1b625", + "08a77b65dee3dd325de032547e52bd078ad51ec3e6c6aada230c66352cf827721f993dbb2291f4bdb1c0ef51fc0764275d8c880ed169ddb34c6047c5104834743d5a44820bcffb3ebd547c8b1b7b", + "09afd469a160147bdf6349ca73c05e59272501fd57a4de2ef5dd0af431582a0aed16b38b59c2a89bfd6768b012ad540f94bfa07bf9e57a69c9d6a92d357e949abf78acba5de89b724f140ca9109e9041c40f29c892556c6aee2179faf9beaeb0c51aa9c02237a19a0955af10f931c1ca9b080ffd6e6a3735a09967eb13f1a2922121fc8409ee7bab5a72afd48cfb66804b850c4b0dc414bcc4b7e48bf76e191b7c29b7e8cc02319b83bfbb67eda835b5" + }, + { /* i=3995 cDividendBits=444 cDivisorBits=326 */ + "0cbf5e1da4a62fe0f41b66b13d9ec40fd60efd29a8bee3ad2ff9628b01e3aad80053ad43f5ddcddeeea35e48533bad5ee99a9bc9bdb80c68", + "3b35330d4e02fa6d5cb363d3a7b01ce2a8dcd28bda24220aabc77ce2d191bbf2c9cd9c3bf6e6b6537d", + "371dffa005883e8224d7394ca74338", + "22c03410d115765da9533dcb0e811cd8b38ba4beb92b28eb9fd4ccc5f6aae9dfa5eae2abd6fb711210" + }, + { /* i=3996 cDividendBits=3726 cDivisorBits=1571 */ + "23fb49251697c1f82775faa9f6ede68a8d14ce5ec13a86f0ffa967ef25268b2ea5dbbf0917e57a699c1041601bfaed3ddc4dcdf8e370ef24d1e118fc826e42f7454a926782382bd6238fdc6c059f7e30adde6084c9e24803dc0104fb51b630b01170a4ff6d1caef9be4c5ad1d07127c87b748d8e7d99f475c219946c205549b3c626d8f627cfa09a72ac1f8226959c1a066aead06ce049f2cf4e3d13f912dda54f700332a98d4c8f4b4d2e57aa2fc9ade243c1d5c0f6610d5e8706491a736ffc528fbc9e6fc7c63d2c5bed911100bbaa1c2b7f6eae52b81407c9fa1f768dffa4fa3805e71c7a9357afd8c7a450c62eb82d9d1ab3f5b4fcefff7903a5aa6682e32ba04be4645d614f0a29172c2310bb60333dc45269a2aa5747870a076db8305b10edaf2d9fc214048102ed4ac4fd58dca969026dbfa73c576e11c51e050820ab0d8da734effb172d61e9cc9b856a5701a7a18f6fbcdd6b86c93260e097be9714fdaa11b4f4b5fbe0edf9a16155b26fe1f6f145cd5cac9e978c12b66cbedc059b6b097d8bd2d622d6ae6b3a34ba80bec8e05df52d1c3d0e4b27b947385d1660e92457d5e3444d0dfad97cd82efdc89d6e943ac98d9e7d6bd57981a1bafbf8b7b3e3386cdd2488a748e9e7b07bdfb00054182e", + "04d96d35986c7c8c20ce2ba27991833ff97b807c6ca4e64ac62a70611ecad1819e2f4233ee524688a1147d45857f417c50d4f962a5112ee4fbe8dba659e12244cea6747ce2c11941547ef8074824d68ebeef93fac931c37ee9c4f58a1fd1b970fba1401d84c70102a04a4cdacc457fd8240d5bc502442d1bd343db97ca9a97ff530a4af5896cebc90b216af0e92ec25b41fe0ec267e63e7eced6aebf7da10d38f1e8dff56d0fba3ab0a19e2e4c2fa20a9c9ae4141e7314ed54f731d4543630c877337e65bb", + "076b7fdc19e01629f725e5a4ded5ed266c6f558c66262ca989700dac4c5a3932effbcb968f2d8e836816045657e0d3df476e8283a875cab9b9b7fea322ed435bf15309248c1eb40889c66bed160f82f3f001244c831adcc7113187f8ddb6c8f680c6527fd7f2afab390c8b6774ddc93dfb3df701254b0ea3f5a70ef2501ced2b81958ca36ff7478ddd657e0b36c8644ef8f1f342e39e491ceb6209dc064810e1d137843a73ac6f4b78629db38c3c28d1f234d249095bb153f8ef3e1cd5e1d306bfa63894a726b546220bb6e1cd52109b8c0198a4170cc2a9bc657823a84906457285cf1b2c3d07b9fc4299c646cababf1a6ab13a5a9348cc3704d556ca07e10fd28d51d3f024cc3d33178537b239", + "34a9855647f4b5a83a6d9ff3fe4ce31432b24aff3511a8c7726ac6a7d96427c238304eb5f999337208005420c840f35cf825c8d87455c3734b8e5ebc39a76950656cdf4d9788acf13ada3cf503be81d15d6ef33ceef53d1823211b34a0305ab482ac4b766837e558ccb35c3c98164f4996e067394d044440178c7e4abee92b952dec7325b37286b567d64f8ae6aff169ca60447b74e1c44673c02196b4d3f97615b2b8cad3db25d2a9b2e34867939a6e527c3b909f1dc7968046ba65a4b13b88a4466b8b" + }, + { /* i=3997 cDividendBits=2102 cDivisorBits=659 */ + "2f1a1ea0fe754c502b6ddba211990a58c4e55771a6bbcc3033939d3761ebb31c2a22f608b087d4214ca79515c8c2b9701c1b908e48b1d296987ea916e6044974061acb17d4f2180b13e058dfa00714e8d84ba8dc12734789d60e93a72d7276c715a36d1a26f02bc9cdc7f36d4866ba20dc3bedc2bb3e1b3141d837fd368124332bc85e2e678bd9ffaedc3dd3419034925ba0054739dd9c929f2b0cc2edb98b98695348e77528ac5d83dc5d803389fd05cae446eff2ca257385192642b9869488bc455a4b11e679d0375ce767b1e4f774336e31a7b75f54ca65d71aace3beeb961b2b4fee3bc2a2d60fe3cd0b4e44395a9d6a58b185e70dafd31cffd7deaea931074ebaa0da028e", + "01973fcbbfdd393f428fec565097868a6d511fb0026e8ee6ac0b47ad6bc05feeab408777d05d2f30aa0ea59a558458114722f8f3dedc7b1c55e121de8c9cc755edc40fbc5d8c0e7ae8b0808cae3dac632cd22f", + "1d9bd3ca9bde1bb3c7f421f0ad344528245182e8296db09fb8e9bb8453e9adc0c036a9df3b3b41c77ba6d6089eb30cfebb1862b0883f092d8526699446aca04fc8b6f330f18793bc19ae9c60eb93a24d4caf224d2853dfaa83ab039a105cbff2d81aa75d97eb5c02999945f74a749bec7f362e9936e9c200cd5472c10f5c4734f34c44991e9c0eb5275df4cbfd54b9c12629223aa1655c9147427b0f30d8be3b607c663a51525818ec8ab2625d47a13a071c422288", + "0cd75b84f27fa238502cf4e84062c31c5c21ded54610393ce519fa766cdf28487bc5061e868f3c1a916354f6cf4666faae5da71a80981b1134eab50d759c84bf39ef36b9363a7e339f477893c825a9021b96" + }, + { /* i=3998 cDividendBits=3452 cDivisorBits=2318 */ + "09716cad1c104528ec264c9ec00fa961563968258a896894958a82d5521f7486c77a38b28931076b84abb01a1565d911f95ce7078b1117791ef97b5d6792bc3f3eb4cfbe2d3a2f1a7e0f5f659a1162b2a882ff44496a3024f65b680d74b77aa793f780c138e82ec92d5a0ec8f7b9418bdf22ef1cac599fd6474a258d1000f644f9c434e4ecad257f1585a87258e935de22c2220a831ce47fbcb728ff7b6b99d49f01496aa16617b3508356fde9836efb8eb9e07538a1fa6cca6ebbf721e4d2f33ad80ee60949ec41e55cc444ee0521486e524d18b835a99f4f947d0f3c984f6373dc531a804b04c797f605b0e69b290d2f9b939e92517aa011ebbd72584b0359cbea10b6599d702f248f3a592247f4b5ac66769a67ac9d16a8752ea855a63a41c42b84c6ae859541920b55668f814d8b70f3bf741aefa6402c98a9d4ebdcc5e98e9fb525f6f413b97b2322face96369ab37a9db174547b6e85c454019b74d355ddfc5b615377155d2ecf384c02e90aae113e3054db500339f3e0b9061d41e535e64dc4cce7455230e28999549a6d34504c9d3f94932fff9256312b4f95883a15540315db279a7e113ef8abf28b91bfff", + "17e935db32f0d00fe9940d564d244f3b6cafafbb6b8e79e56e6bc9288ed6ba6129891a5cda8008ee8f98a061b98f4b69460f9183116908cff6c7e8ffe1b0c18bbff366539e75ef05b36090d4a1bbe96bf7f6329ff4047f5606b30624f94b478c9c7ef0f98f92c896dc7b655599036211c85d28651a09db84b6476bf156e607241fcd0fe1b953eca7ba00b0d139fac546b88a01597bbd59f8b43701f56e5e2c523d83393de7ce3442e2e82d7e4cb417ee8ea9cde85803ec7980bbfa7e01dc91c1d02edbeb1d33cabe720f470f160dd13d09bd751ab99f6d8c05907e19f957e6d1250d3531e7b837d6deddbd7b9d34662f6d5d18c3d7847efb2903cacfbb27cabc706cef2071d3bcb64c1171497f64042aeedd06b439e3058e8f38e2f52e147e5eb6bb", + "6519dd2094fb9a0d619817c8d283e9d25364828ac438a02d8aacd07bae06e43d8e6073d6a42e0b2111781e305eb05cfbedef371cdf1fc3ba5c88caa6c522e08f2e4cd4427e482e165d71ca14c15dcf3496f494a56b833c95aadea3f72a63bf4590a82657f631fa7e805f0cf9bf8121ce54de012a479e5a16817bdd6a548b05c139452ba7d0dbe554fd40e145b8c4", + "1435a3f3bbb1dc17f8a8672862e2791c4421bb803e9a22c734f2b9f41e3fd413a490f34cc81b53b1824d2f2fe95696c3169f5aeacad7fd2461b3d130edd226e96cef43d2f4b078cce5532e22feb971e93ece3239c68516ce37a6addac261ae8737b5153c37d9743825a43f473fdc48f678231b92a9599afe4cde44cbc98ea4944a72f803db8a3c9c5c9e544fe64c58254d64c6220b3a329113efc05ce53038a1bce54ce3b8f04def9c7b86c89e9b7a0238eb89de01f2a7b79d9b686d9f232a372fa5151515bee7910c38ed21354ae1d33f255c2e4bc7371e24e7ea18a3a89bd85d13b5e12e4242dd15166f7b038a31b12214c8002d208608e47698178921e47e25bd89d9cb76aa1a99a33d10c0a2c5276f86ef80ad77a9a0114864eadd8c1c5070d3" + }, + { /* i=3999 cDividendBits=505 cDivisorBits=246 */ + "01916f852ed34cbb462a2f524c0dd94be5d221a84920fc270d4e39160387f9f0378cd878cd682768895808c09141f84c960cd2b8864d505dc05fd9db06e8e641", + "2de75ad4bfd22baf76039d673e00f4410ab4e6e09bcb9629ada632698096bb", + "08bec30a8f5c2d091c372dbdce0d42e937bdb626b49731ca6299c6a8b3ff7c33e3", + "02479dd36e9efe95c4c92e87d8c4bfac2357765bdcb7a3fc5122f49447fd70" + }, + { /* i=4000 cDividendBits=3705 cDivisorBits=3445 */ + "019373e23b18c2af3b6dfc36e814d77184319f218829be5b1265487b6e2320736d2bac22c8f127f67e28da7ed8a854725e1089d1be1f536a234f2265e82aff1c222d2982571b0e240062be85cce1786dc98c96961b65b59cffe3a4d100fe36791b45e73f836db7358c7d4b5d271622fc1b1f9e75813994aae8b63da58400540536b018bd216625ea40e58c0157f491ba0bb696f4d1a017eea1cfe744fccc7e5476eadf8e2b930e0a8474c61b943b4bd55a688b237bb7334844557234eaf00523d4186233945029853b4a743a4d5c5b08b14228c06a1481d28f982e7c7a4a0431f4c00a2010320b6cf4f782cebd4c4a22aa7af7a05c94e4bc8b070948b82d0c7d45fa2ce486178b9a83fd7e1bf75dabdd7e510163249c2a01b1dc1aea877cb9f33c1fe3bc5e731a87e9854f5f6f6e816ad371fd775e7b426b6f54b87cb35bffd343c6d1330ff8d55d0d15b7f3cc6300ff1c9ddd75fc55469a662fb34e79ece6b61fc7a732a4e72d6b509648609451b86a69e325d7581ba77d7edd907636b20a6ab9737aa0b2fb64109f5a07eab5da1403c6d293e2ae677464384ad5c9aa97b1d02264f6f91ee510bbd4c446f709ae89782343f87158c0a51c7a19b30d6021d2a21cb91416403f55688fd69b4ea367c821", + "1893b72d08e9f131da30528cb45f4f3f4aeb59c665785102718a315eb7071e787052f2081d0c26d976ff05c45ebcb00a2c4248c5cba028ba7668669c1e512eb43f5a059156a5bee796ef63576b6c8429ea43cc94f1cb50196ceef41389eca3d4264d0a87a73449629f942e76853989d79c4e66ae2925d546f4d1e4584ac28f4a6d1cf5e2c60efa7655f4677c8e8adaf9dc6318537061dfdf5567b556307f8c945f537a11b29f7a4cacba02085f3cdbaf313f5277f82d33cf87fcb74ad19808523782bcdb9a7b411894a0caa9e6b850b86dbfbb2f17db8c08f4ebb8b201042d57ec9af1d97040a9a389be43d06a695a03bbb97b707ae58fa11e9999a387da504c6b29d6b506d82fda2f0a0bf4a283677834642fd34414b3ff5d41477d2e23b4f44896c5228f6b33e11118bb00edd394afeb82d669984dcc0d540c631f7ec86ebc704fd5c84cef364cde82f1a992838f993e8ef20dceb155ecb4cb9a6e09596ed105b685ff6d6122ba1ca2faa625363586b18dc5e7536b7e0b5967dbdf3082f34d3d609b9d992a54fc787a444d27d7b0bd8949a3f5afd3644f699002553fe5a35998a06b4ee69cc263c688204da5d2fd", + "106a7568c7a2c0c5dee035256f7f2721ddb7afc29cf8dd7c6afe0f043061057658", + "07a2c1068888cb0649d3a5f5ecd83fb3a7718ba83bcc98584eaa101dcd127595432e67b3dfbbe710300275043692cecf4babc05f9114fbd8023764c0ff780c30cc30c90a7a2188c3dc7960a94f01716c49fd7e4b0d81db38d09174d2e3798c444b16f476bf25dfbeb1ecf0e52092211be40060d2580c0362e95ed84c4a567b5a2ad865d0e45cce195eccdb76e38f942bb30ee0d7e957de51e09b2e2f8f8aef160db6fe5bd3ec24b9782f5e33f99707be50d7f9a90d943637607dc1f6b63b900e8dcd56b0c8ee207395ac2a32bf18db190c0f426edf4d54a17ab53c0a295f9cdacafbcdd2a2939a530bd14d5d3f4c3937afe958a359477a9bbb3800cc97b1361631d1d2eb93dee3db03336fac3935ae24e12cc71b1569acc58cc34f9afa461090abc50c32d7a9f7ea7e78dbfcc6024ecb89cbdb1aae05489f43d93a4146bf7eb4291e1b9a9bb3bf07013b0ec8196c3d0f5477713b127c9c1fa4e2d613a8624fcdc1d36fcaee079d6d58987b213459b785dbfcf903eb458666339999567354f0bc11e8e61d5dec80e940323c3e2574642b81afe93486e3edb4653f58b5f97cd25d1c4f85918fa80e51950fca8735a329" + }, + { /* i=4001 cDividendBits=3220 cDivisorBits=2657 */ + "0a310e1069842981eff92e13db3356721b3a11a940c9a78a0aabdc7428ad4ad3ea11a9096dd55a37030c015faf079e2cb1851600535037695fe1d33b622606c09e1866d275adf297b06fe4db4e81734fcf3b76559b37bb6b92b3400bb99219f2c6922420176b02ce120bab5360b1ed68a2ba292015e130a2b7bcb0a1030d46e47b0ae4431b6b641b07d5ec93379397ee5861e6e2faa8703762c2fb2935ac92fb271c6dd046ad60197b4a25e0e30ceb721774787351f3276fb4c7324e0ef5d74ba1b2987e2c79d9cae0a1e1aac821a3717a42ac0bcea9e26dae6348010517e8829b2cb10e9c2b6b90b3185dd4bc26932ece313732f0913793c4e520c1cd27df9c7ba1f1ef4dde96d17c055194da8e26a80a77dd15d6eedee77fb7389b37fb883e1822a476c26b5664bc997f97d417f523ea1031a840b3649ee3aa3c20eae3f037c19d0fbf3df906e724e0d53adda6ab0b48ccae79832034f58d60e1a8b4b279808b5ef8347b05b3946c19884b4fe42886c7f55e05a1eeb8a59c681168d7799b9cd4298770e73d7e6a347d8b631f9cb3c34f5450", + "a72e5744e863d9599c2572844c16d27759fa8111cef355a45948824ce75be8a7833faf0eb859a90ebdd116163e6888e7259dff54925fdbb5f174cf59532be4e100cf9a3364d584efd3392d93a458bb4a3a4335cd30f00cbedde8469f8d11ecd20b98006cf7b35787f06fbc2ec01878588003b2247465ed09973298bf849b443f5e694fbcbb7f69436efb440b73027bdf24cfde69d96e9ba0248d91234e39fe79676585e4df57854d64443165b2278e71d480e7ded6c7c7db95d2470fda5151fe5610995dc1a574c29a693ffea1f87f0d71ab462aae20ce2f65f7574646b2c6ea28b27ffa8d0e3e4006dda97f12e588893eaf13e32851aba18153834247d7e734d9da9eba3c40b48f80a624ebf4dd2dae8a7431981fb905287fdb7cf632b519a0732e7127e7e5d16391c3b4db3957497ce29db22c5be0aa4e5cfe427a92bcc3dc3099a0e624b559ab53ac1f24", + "0f9b2dc621ae99c6eacfd447a719bcda2ca7274034d79e56edac46bcdd478f41441dc8ce1a05de14e71738a981403e06d78c99f870abd8510f621868b60fa581dbc3baf6158ce7", + "0a576f98f82ee173375113f92ecc6d6abd1e12c4aa032c6fdbdb217d80dfe704856492755d0c9adc63c784b801bd2c571cb436bdf9af54c900b9857065576dbc247216640296ad1a71c0c5fb10f430a4ba7d0fd8464ca90a2d8330cf43b411db4e30a5346a7e54f1a6d84ba140f77877273973fad931571bfee77b7270f2640c6e0ec62be7d6e1bc11c542ea1f42bdc06c1f79517da63c556bc24048b3cc0c09913704847a8f5512592b05d4d05c378c3ca37c9223d567dfe8d4e09f56f30aca512c7841504fb27ab54b19708cca8048b1dae2a393c1ba23aa7656f63052d9645ec334d80ae9af7b27ace66769e91040d918cdd9a8308a73940740602899e975e90b3931b5424d3c59486d644e2aa28fb86033c1c72bf427afc9ce48704181b97c5fc3c2d7b681ac92d4406d43a7fd5d6561555619701ae1e6310f3b9d0989ca904905676a69b225fc038ad4" + }, + { /* i=4002 cDividendBits=1695 cDivisorBits=596 */ + "3a28ac96e0fc11aeee05faf48013666e96f339c5cad7fcc05e905df8abf4c0c01c1c0d069aa20c976beb58c4354b99a7cf4c40c0e290d9f1884c411973791f85b738514fb68c16d68ad3f59216cd3e915118645a4386df39624ebd2c7cc83adee58ef929e8bb351fa9d9a822758159b73290121db9bde48ca207260a50521e32d2d230eb6b768e42379fa705612e4e7fcbc8b7b411b21641c26764defe746512fd7a7f2758c33ee9e5a57a3df3614af4b46e85a7f30cfeb7d8b811c776d148919495b4851c21bd2b62af930a4c712a9702cbc8b5", + "0e20eb30d6f6290cc413e6fc133eb821dce5cac17ac751ce1e45e02987fbefd2d1d45c2aea16602538d96f6b8efc629435ed023124801927971cd989aa1f1047f194b9a8d2c6bbc29d768c", + "041dcc357a637283fab7bef5d84980bd7f675329e6947733e3ca70cf9f57aead1cfc5222145309c60920728be05b2ae09ad81ace61fad90f6b1549be63399bf688d820084b48faedcfb6932ec6a21173e50cfcf0aeced1303f428163f5269a1a7c4ed81d1f171dbbbed43f046e14a69fdef06405737450b82d9f511bde5985fff7917a3f96aa50b7d16a", + "093e736bcfaf43389b906a016e84e4a07046159d30bef16e47f833dad679520f5876b3061e85d4082a597de415f149222ee4d87c8acceaec3d0c1504eb1d810f5fb94d2f67826261bc66bd" + }, + { /* i=4003 cDividendBits=777 cDivisorBits=746 */ + "6670871030c5b70efc37e429132056e3d0cc318d174387a88dbc20a8d8fcdbdb4d0104752e540eb4a6bd50ff8c5eed55cd2c1ef1bc5d3d37141fd2523a2101fd0ba76f6ca96e71a1d5a27faebdd0748ce595222bb3913b51bb8aa117659677d5f3", + "03281ac02bcc61d29567a069ef120d01bdb19dce6f332d015d513099e7a503aa662676d66500d52dd2d83c1f726cce81779b09d3e8c4a10bdb57a06e97ca9be803c8bfbc0e32c8a24015f754d62358cd2a737c93208191f429e836721e05", + "2073afd3", + "020c2257fa629196e088d7dd718d7892172fbac0a254a3aa2c9d09122e78cd9bc94e5848654bf6c375cb5118b1d85ac679f143001f2dcbb0bdadc89656c6c1786fe11ed8cdedd22d22af5a2b5a96a28fe233844bde3e7b9e16c497a4acd4" + }, + { /* i=4004 cDividendBits=3469 cDivisorBits=1952 */ + "16a7e6b9380cec3027a8644aa90cbc382ffb62f8017543c7116a46cc98ce9339312d9ccb339ea83f8f3684148dd23021ae8d77124ff1d25beb4c797e0789ef6d07a964e5cc7ebcaa1c87ca8af0cc4e8336b20dd15950b39af9168152081a0a54d00ec2a11461a4e99c56b45069d4bc6a200793ca530c02a068d69cc07b1d28a43ca18823678397ad72be652666e58ecafc743a090b6ca8ca15b36ca7afd656b602700afbf74a96053ff7d26f46ec5b61ec6ff146ce4f270976c295054bef582ecd7a9b85bcc3828dc1f05e0efd87412dd2ea8d855bc4f3ddfad3d2c106851914871ba21bc09e8c4659f0219a8bd051852a283e65c875b0e17932fbb8b040032f1f4606c7f79b996a14240cb8157a6ddcf89f93262a4d7dbacfa87447f7b07280d8c061880a423a18ea8a0639e6781592080f5bd863e7c1320cadedbb721b1c07fec17ced7ecb7621e819baceb2046ccaad88511422c214256b871227f1aef8d4a66e38266e91af7f88a8ef1b4522d7b71d196088706f7dd072706313b68befe7f4d66e60e725b4030117a81c60c8efc34317ec72fcc4abf2fe6f6b22275aa3f424d6390c6ba3b64645830daec9b48d98be9e", + "d42620e6d15752e81b87ff6d00684cdc223fcbfd2b6527de4825088dc07009aa62c22afefd4a398642bebd98aa72761e93f2d5399474589633e2e90aee4619ffb843967a104538d6ccf3c7d369fb7c9dac3e9d8170501444aa775fa982d3d6efbbb832195ba329b2d27aba0a79e8dca832b2af78db87c7676926843ae50e91370409027ff80a8fdbe776adb9b1ceb2d47366da6e65ddb575cca5b2c00aefbf30e6b70d7c576fee1bfc6c1831a9684e93c0c9981257f7a19f15c97cd174c0f83fa78023778494fb44b9fce00589ce927a0540d58fbb4b910972768a060b6089a55db87e2e819f5de449423ecc24993f76ab44b427", + "1b56bcc818b6eff5968770de2f3f6d05f5f3379ffb241d4519b43535cbd6d5658a812e64e366d0e47c34ea2c7d8455e7be05e5190789cdff0ec8325e66f7ccc6325ed41bad6fece38b546e18bf5e4889b4be9f28d25bc6247c522992acde9986cb88b58ac700d68aadb031019ec98353fad9c6db45d8ef80836ee89548701bc1b1e1ec0daa827e64bab5380277538757d08ba6a473d41561453fd49673fee8bb63443fd973c1fe7634aebb77318868286373cfdf80d476b3b3f0f24a221b", + "4c61e28dbafdd8bbedcd83beae250df191a0a2640e54ffab5745c0ca75a5c505084654e51747f7421c61e251135650d1e974175e25eb7eaaa5c5ce261b5423a2a2de754aa8597c4143cafd958f027885d32d553290170100a147c2c5a7cb52949d68a2f01faff2dbb9eadbf8883a56f77da3367fd1ff4e4f19e2c50a23360567a52bc4ac4215bb58ef88a411b829f614e38bbb95ee122aff0da0a190fbdc32b2022bd8edc8a2a34c507232941042a59f19a61aff90d333ea20b19aac6fa9689a4810c9961ffaeae82614bb43756325b3b01fb32d7b53cc8fc3346c6a04e5444c3a050509c4c7e9fede6e8172c53db7b86c269081" + }, + { /* i=4005 cDividendBits=759 cDivisorBits=669 */ + "0a11742ebe97a30fe1a879e162564f17586e9e06e23eab16456f5013b4915f34b0cdbca0c4b84051b4b0981519e0fc3d749f28ff7dc72a5dcd8de938083e49cfa0931daa1bcdcc31ef8ec44ab4bb2f67a3187ded66ea1e9df4972ef1a9426c", + "030a97b4337c53b39a8caa8e4f6eb51a53b3ec6a246a98269133ba272d26341def31ccdc326de0a5c7d53f857628f400b4023709b912b331797c9454aca7bbdd65efa324066598fb47cd5c5f65d88217151467b3", + "034f76739b88b33165af9ab4", + "02371f5b67a294f7814aa541ddaa2940d732ee075a20351455ffd2b1d3f6e2db989c5cf58a05a545d82431efcee869cc718008a58b6408794c714d9ab6ee9d328313febbf13cdcef2e69da40f4dcc4265691aa90" + }, + { /* i=4006 cDividendBits=388 cDivisorBits=183 */ + "0badec173f56eda9df3cd922cfd6b2b146f58f1eb5a9bf018aa6ef41b13984311f3aa0477b1acc5a64b4c13eb18fddbc3f", + "193e816a847e25641d19f9d847e527d7ad2901ef3d8dea", + "7670ad54113f12035667c481152e0064f4a06f8e6f1adbdd8f1c", + "015bd0c856b678c643c6852db796232afe9d8951da80a7" + }, + { /* i=4007 cDividendBits=709 cDivisorBits=3 */ + "13a0efbc890d60c8f7fd6ed71be5d38ea5c99aca5bf4a5effce992fc456098509d12618e375190962fe2f2288fe0b12b76db40ea679cf562044411cfb0a2f522faa4b84e4732518b4fe4872616f3bf52fe940761a6a783f110", + "05", + "03ecfcbf4e9c468e97ff7c916bfac3e9545b855babfdbac998fb83cc0de01e7685d079e93e4383513cc6fd3b4ff9bd08b15f0cfbae52977a00da69f65686fdd3cbba8b42db0a104f0ffa816e04972643cc840179ee2180c9d0", + "00" + }, + { /* i=4008 cDividendBits=1675 cDivisorBits=1150 */ + "05eef3807dcec2fac8ee824d24173da7bcc52ee2d881fc2843a714ceef50ac11bf05dc3f0696024c14f0d61c25a7c89913b896c032b0d30c0052a0ef63b1dab4345af0177602d3f6cf6ec7b5410b5a0bbc087f5002821707733b6b980a5eadc2f050ed55b4e327c4450e18cfec0d1590de5fabcfbfeca9fd2548b365955fee6b60c9e582a5548a9bcabed4acbf8f89b58476761a0f16dc21a93d657613e3fcf330a9c4e5e56e815975e0de9b9b12bb1574d47ca16cbeebedf892102ad4b8fd5a17f4c96ba895f14e6a53d1006814ba37a1f8", + "0798d58cd7c46dd424ec7134ad2a7f050891cb06ba2c911de21be25324b29013f70b2230d24949d9df42230b759f40095792df48bc5f0773e6499364f5652f3b77837975b8e7a09981874cf0dd0ae27c360823a4a05222192b38b918fe03f64cbc1f278ff734115a273e6952d6f47d38e8ea910ea5389d6355ca738c4b22724e5332e526eb1553b9e3902946f986d59c", + "c7f0d187cda1c6d9ec69f675a249a6aada1b21e21e5bb05894cfb308687bec564a68595f8a89e5a0ff908ea86fb129495b1a7719a9daabcd503d615ce5b79defba3b", + "075dd05861a5de9f5a9205f01eaebf6eb026509158ae18412d8520c140ad1cdc712fad97b9f9d52139c9a47c346b2b6077cb48046135ab561a5f89984a6665d31f8ebeacb2b57c034c7b9b5596db87a5035c6e1439952b2e00801de23dd04bd822816ecd971420ef417b20ee04d09a7e351adaaf2e3b1ffcbaeb070cc1a3020391b0b245e49ec9bbb3f76f07284d0f04" + }, + { /* i=4009 cDividendBits=1376 cDivisorBits=820 */ + "260bd9861ee84e503775df17da1e2bc4b3d4769f8cd57717e711f786afc925c3c4062d0a804804e394e574719786c5694181887d1ba72692507d807aaea0db3dab0634c8007f6cc46602368ce220c753ac6777cb4fc5a565be8e3f34f1325e2fdd8b7893d779548f3c11c7c5c1830b38487ceccf49f0c92e3bb5b4aa6b2073c5e166741a143ecc480ec536e41132f21639836dfccbda34deb0f36e9ce4a77e07691749707960564e254a50e1", + "01031631126e84e317edf6d9859afcb131e70e0058da9b9f0a7d36d323db74ea5371c94d2ebee80f6374f8887c84c2959e1dfc63ab77b9914943efe5a73582154e66557a75c7729db13ae821771af27b3495f31bec5d7e5b5509da0c3bc28a8ef872824f9d32be", + "2597cfd5fcdea5dbc00e3547fd531903ffb02c7991a69ccb40b02c6a96eb8dfe307fd19baeb9dd860506568191f73430eced7a4d507d5d91d4dfd7169a208f355aee82da7896", + "871c029f53986b3061cbe35248c6ba4072d60048caf787ac3bc4c9c6ace1b73c3945fe68e89a6ebe7fd8fb350600bb636f96a1baf9c7f2e05bc0aabed1fc79d9130759f5155ec5d783fb70dba48ee0711d773fee1ac0703dad8eff1a3bbda368905c1d99858d" + }, + { /* i=4010 cDividendBits=3584 cDivisorBits=3084 */ + "d534f5d4909a2f7e114733ffec2bbc613e29506d653fb8103802aa7d1e6a512d3a8c0320ad4be000405bf2c661659c28bf2585f1a21b6abbf4399c2e55635fe455687004285ebdde710b5042d6ce330de9f9b5b5dfc017e72b4ed3a77531cd94628b91b591d9a1637750a7be627f415e61ec45654fc412385e6e32fa9ca4f7f7deaabd81d941d7cca3fa7e0d03f1d7ed0cb02438137dc0494cb90d108de5fcb726d60f0b8f9153853bb1e0c79fed6f8fe9cbe2d19110b6b6b7d4774a57a6290400074a627a292d5b60bbffc820c1bb92f0c20b29e4a88d21641632265968e445293a75078ac2ecaef69c2f5d251275b6538c5023591cf1d600e1ae0267c0e4346f5b83e655e87a58ca867b7e94de9b7466e6ac56e52ee623b07647e498a223d6a4e7d9867e36de8da331e3ef700f94fa09362d254322e80627e4f3660f2ef2b59956b10ab80fd935fc71348e0a55224ce30ee93776de001ef3bcf4f0a099d19ab26bc01830db25be0e2f6972d8f558480d8ee981d6d3594976165b66e092ae1c03105cb1ef522f3d2f80debaf44af91624307643f1801a72526572f3b3c46ae6cbe6159c24c6b57290f48c7e7cbda7c6fa0374d10668d95f9246b380dc1f14f5", + "07a6103b4d788ecc46b04e27373828a7bea6932aadbebb608c0903df127b89be4e891fbc839de4de44257ba10be02280dd645bb730a098d08f035a932399930c50f87ca7a282124ede72a50ea06e793bca6a4e7ab281993c0002d69622a34cc299093abd8ea39a1bc06ba952f7e93e3d7a64bd035fbf94207fec40a01132add408ac1074c56e7d94155d02f5db5c385a45587aa6748b54b98203ee7204fe1fc05b041f8d9ba3a24354f2703eb92db678218a25b965a124dd5f8529cdd71f94fb14dfde4dade1e18d130aa81b3d367078391c1936dd5fb90e1fcc0cb83ad564dd41f03ed00fa8e5d7f0a5f5218e1314bc495b1581eefe0905fc09887c610328792b31c068ec7df8628751c8d085f8b7a1887a3515cf41fefaaaea75fe195b9803ad6fc389a9cf314f7925429bec250701771928a264774ea33809a0195866936c8583eb638233f84139d6ee607d841078e18634b686c8f5ba51a18575fc1b343dc68afb3c949661bff8bcd71efe7de024c315e31af2864dbe0a025624eb81151f8918", + "1bdffe167075ac4e8a174deff37da3f96c14513be778b9efd510c676c5ddec8955b17d24f23bf33ded6f0732d97e5c7e8de139eb6ddb0f6a0bebca291c3d3a", + "011cc299cc68faff71ad1e36d06265e472dae2cbc6acc44c7532bf39194cc0cf985619d97990bb843cd893b36ce8d8b212d8bd58370d98c1c993f9d50d3cf709c53107e7b8db06c8b86a5563e459a1746b51dbac6c8a2dbf68545eef379bb92533b04bdb8d0945600945b82d16b1199b6f5c87557f5e771e1d37d594fb4bcff110f73218230c1514534107ebdf2f7466090bb521238e9785bd43524839d6f4f7b92b446d50717dffd9db7329f1779cb58f7c41d23f472d62322caf845f9a5d6e725e233e0c1587e36f6a9705a0ba3b285ec257c5a577ae94002db09918adbe2403d313a3bc0fddc145bee9630223c69d8b4b8d4b09d96528fb322e12b443e6ed8d63aee79ebc10d19e93c33f574de6c8b2148c47bef83b705e4f18960dbe477562177c364e57a25d31951a474872d5379a7a6e1f18c2f78647a7703da51a22e0913147e4f7f7adef6c748ea3ba4213c38025502c6ad13594131a5370a315fbec7a0cd4885031087b8c75a0ea9c11b7af1fc0bc5ac0339bf5d6ca618804e1b8af4d85" + }, + { /* i=4011 cDividendBits=3800 cDivisorBits=363 */ + "56df49627bdf505a300a418157dabb672be0f542df1662b1f77d83b79fc4c8a0f943b98e0a04223f8496c4aaf687d1d1df48a49a11e8eb83fc82be64ea737964d6692ae867089a05674457421754676932610d3efc5d1a6a7b6be9f8386fc8cd396ccf212eb1106f906eb96401d822cbb2a9af7997fd0f943c838344a8dd2b720846bb4a7494d80205b369f264cff197a7857ea0f35e8995618bed03fece8f706637f789d774dcab5d6bf54d9c9a5e09a724e8effc63b183fade713b4229d598171e72c863e4bd970f941a065e9ea869345b8f820940197b85c5f45d9a9aa8d26f586991159c6eb5dabaea6c1d9b1359707ef19dba8b87d69ae47f9d56ab52ecd75dc637c94f2681e7dd2eba76e6331c38130523cba873c6ea0219561f8a9a9dcd97e15aa0c066fb9e694d2c1610dc813970ba5e13d4651eb0fa25a855103a3b549e918dbf84a2a29ed19f438011dbe8d2f35a2686418847862b6c020956c03f47b743eb6be4da018346f36807fd5e39e5cee4acdc9a66793fee1920d14bf5915a86f58f0203d41379d2b06255a1c31634a044c5b3e75d8bcea5d2be40881c0b3027d7d7f400c3f7fed57f7f3685429337fd2a80d779fb882a259b2612d494875de8a5376018d42b50c4b1a2331c6396d41ec01b165e4e330f960e", + "06dbe52e18c72769b93b37fbac04199cd1d26e9afe28ef0d95354fe166bd3072c4eed3f0fc199c59af79ab89731d", + "0caa5e0adecdccc9a2f38e36c4e53c2f4dedb70a7055ab0fa84783a7cbdbe237da17ddd1b46bf3f9ab8c6cd85da19edce072d828e34dc8b071a332bc8b5e38baead62fbe0b0ef9cacfa4c3c51bfd51c7381a303cfac9247c72daef9d5096545447496909cdc3de243ab0b822041abeca2047d5bff87364d38e6819213718785eefab55fa638627e3c855cfc600a4525efa14c91d72ac595765012db509efc8e092e2910437aca30316d374b14c8ce9657b55c8c059b06d3ad9c3299279d847563982cfb288dc9e0912bb69d0f06a38829c5d637afa30178f6403170be19d95a85a2dc65c556b1ac223ff03757ce03cd8edf2e5a2febaee1b28575372ca054530eb69fcd2a1275213ce55ae620b682c06d26f7adcf0473fe8ef606d062bd0a69adac866ef2f85210175d055d6225e48ef7d7e531ff3c07bc683f77289e5c1db67d345a532adc8f89e93f2a6dd486f10afa3645b23c551ed070a8f388d105bb3be04d2bdc194eaa103662014246f4e1ba911463be6f16a841c3b5ecf4ee083ab7cfb8abc0e6f347bd62efa5ab5fdd9c0fe86ccb5a7d6fac06519f1240dd355ca21052124ca45e3f52a7587b32bd4cc", + "044324f411183df48308bffa4aa19d5994a387ce1bc38b67c528539351b73c8fb0b125fd541cc712e66d1154d6f2" + }, + { /* i=4012 cDividendBits=2111 cDivisorBits=840 */ + "75f1dfe68f83c5737562a9b81e8ae69a51961f35f42105d5072d739994cbd2ecb9e00fd2223f86882e4abc120cf42b42626db85923ba044ba89e05a9c0d4e7352a8bd0165362c1b545fede3698c00ab53fc43371a3a7f9ecc715d076d3601c2118c8c499f3af3ea3a4666c15b9e9cf7ae7557f68ec0dc44ee36ecb3d95f56afa96b9082b4018e9516f3a6dc0a28bc407a9669133c25a16fba6f5f3a6f4c963af9337d3fcdbe5a8370e3a32636c8f2f83f6cbaccaf72b81955785c3d144c43971712e6dde60c33c3197faeff21da5490d7395466362cc593fc511d674f4c035563619980e869b7eb54761c1a05d5a473f9824793b9f90a6ef63e3897183d1bcd41e382413f19018", + "3980d0a0308849b6e10d29cc902e04d16a6b3d99f0269c4c109a31f7d5bbc21fe5fa3d2b3c2eace516780b537a9a21ad364138bb41502c88e55c6d581f04b12d90c8c6db4fdd4014e7da83fadf039fe3a71f22cbd911329d1944e679dd465c84801b963ee33a059092", + "020d14f05d6b3ce109bbff15605d5bf7a55c549a912bcc4f6e51fc0448c5b3aac93ca63a56d9d9c75c42926d0de8ef0c7916560b268e93293e765440f8a8340fc4e704d1d1f91405be8456272ed59f88ea762e78b1203751b469b4ad8b9e163bf7052b5314589cfad95099d56cea0bac92c96749939997ed9e6c38c906a2e0aa578abb4063f2a8a99da3897b8a6a50de5668a1752169f096cf475797a2c46a", + "0f271759821cb75c1fa4b713b92ce6938d49a3322e9b6f98d7db39e124762abed91480757b976434d00eda0b1191464cec8fa77c2f39423ff4c278d924d373653e3e0804c6a7a7dcde34366fcc55609d8303665812e549f0af2b739b62fcdacf00d7b39638308feba4" + }, + { /* i=4013 cDividendBits=2951 cDivisorBits=1693 */ + "517cdf44092a961fba8c64626a8e0b198fab0c2f686e0e29d2a71992ab2fb93f3478918a776b682fd4bb91b6a0ae08430f97b3d88038b305f4fcf785673ea3ec135d928e292630a4e2b054a352ccec7d9922c4195d2d47333924ec8f5cfeb292ae5b6937cbf4f04762f257db717193fa2cd5a7c15ea397a898667be042962032a85b6fe506cc2dcc8606e3e5846df29f44a8c49a0dc69ac3caa5532a1dbee7fc364e88308ab10d11524f6fa7deca1b7a7c7923d4b4abadebe2f441c212ce65e2e402e1b7c761965e88b92270cba730e42e2b2f05840e10128c4056a9dbb716d3c7a70bdff394b2c35ed8a46b965d181ed300810061f15323212e3be6c4999e8a4c866dd1a9ee803a0c0575ff29fbc8674558996deb048ed9ad7620e973aa1a44c83e4caaf454fe88523d4c012d801958fc3942bae46372bcb89231fd9619f3b6045d108366692d8afd33b599c30ed20875fbab1e4838c0b63fbc48af6bea96109b34a073e7d90c261706e8c3210589e64a", + "0b183979fdd68440bb90edb8daa6f4645ceaefe8cf41b71faece174b3a2f978e159b560f681d3e633b5c46e044a250300f894f42f5841b616ab29a49f9a2ebd423c343a1d00c4b0060e783a5ff2fbb5bff21d5ccbe65d9ca82626a4820dc9c8947fa13ec639b7678c613489ecacc1a24f8ef8bd383a780d242e48e3da55fae29997e3f11043d7c0de55793f6a49560e43cac8812cc22efb9e80742edc3d3dbb9f9a4cb9cf1cd85a5c34b06f294373c8cf0721d9b7e46b81a8bdc0d9f13269bcbcd439e3e62bac6d19f57ab64c521e767557f4732", + "0758449b78959f3a8e1e60b898360993602253e0cb889bf162a92255c20f38ea4e328a8c49061e11eeebfe94a29c3032e9ba77c7dec5208d11caf0d3acad6659f9d446415380bad4728ea2090dfa446238b4316bf6f74064f5425dc211a8cfabd3d62d13f423efb94d9cf4df92c6c4bc5fe89290fa17d8110034a02a03177949164b8b161ae972917cb0ef2b2a86b0ed4c0448f57d023164eaa2052eeb33", + "0210cafde30a5426de5705c46072f41075fb8f98520bae5711755b1bb41961f1402ebe2eed3e045a399a2b172d5a6f926df4c3c2c48ecc2fe54ae935bb01b638db4d4f4b304b8a220ef07376a3ff8012c2efffc6d32f1bba115bd8ee881f96a532f12b3dcd7f9a690a59e0bc658f7b15cb2629a63d5ba8607066658e37d54a018c7e123fc4f1cabe76a27f6f7d86c4d4ff4fd6f1436982747ce28abf3db613705f21bc82fc289365f0e1f0cb685ec1dc6f3511b5a2ea90350b8bcc2f4401fbf432c6473b07482b1beffacc2a3558332861d7d154" + }, + { /* i=4014 cDividendBits=3780 cDivisorBits=1489 */ + "0f49884d8fc22b9cb8f0f69d5efe7119f51eb0b6aab6a7c30e0b1e93046d18c4054f862c63999df6fb3880b2410a5fa43298389ef00566fea0d316202144169554d7e0961a94cfd2b715ffa264af3e394fd21e3092d151846308456cd71a18e965649f9f32e7b46bfd8ed861eacd1e781c3e219d6d2b2702fea5e058a99dabf99f1d8ed1c9bee42376471cc155bd7a3be149bbf46c2507df64b5a173498b0c6501110d8885eb5683aabdcde85e3302fa939295298452120361aeee7788e56d988a56dd2b3448a18e8f0484eee49b317b8390c926899423bfa65ade0a7cdcf3435f1a1058d1e0c78a06a010be385cc62af54ed671b85b7f1310c31c7b8622cf3749c6918301b0bf644f19589332ef4205d5881ce63efb36905596270eeddaa664a3bf75f0c566261e50f7c026a0eca67ce3b526d87e99091b55f2c65eedef6fd6c7fc0ced6bba60ce02306d854cee9b262d8ada8b08e6f38ad2ac9fef88fa0774ac9f78b626748f269bce02b6599facd4e9c14ea24e93e5ca89ba122374b83dbdd4e66202bdd55cf3e483bf77ce31dda3a762fb157256ea2fb99304fa4c2c518499e80e6e4683e973b34a607e6ba1d33c9d728183f222d393f17b063aba36823c15ffe395404fb530ee9e25ef1f90724ec1efe8b2e8af7890d1", + "014cc83ad94aeff6adef674bcbd9ebb41407dbea631d7919e33d8b1b8c94d532eb576dd79e387f2ec927d8697e405712a2e49cac3ff25d0c59ad7292e7d27d4446b809c3b90738497d7a26b502710902f393e61d64e37fbbf9420d0c0498f8e8e8da07f5c0569e293cf0a3095055d23f62c0cc3bf6bd94bf40196b37b08b26059dd6178a9c0e573f5f98e777c4d9fced809b0248793b60f650eac6bf9473f69b315a9b07d1bbfa427ac289afc9eabb3d7bfffc9e9847c3a04d5006", + "0bc29230cc724741037b7946adf56197b5e2f9adbefc79bf51cc3a12c309e1d1e411cfa0b1aaa0136ae7051a42cdf2e896400f2140b9861493f5c395e59e5c12cb408cc85dc64c017a942f209bab09c92c86d1431b221f88bb1c32aa8e9eea2ed95be0a5a0805329c647929f2f775c2f2ccbb313d20f1f5140d2205b2f51ee8c6077f651ea9acd378fdd1de91e41ac92f7f574be4019fe278948c84992605500864bc4e03c0deaac5185e9453c5a8bce3e5759e37914df7f343a1b6c776c48615337f350c5c9ffc7892a5e53a56e57df2d704b2a81ea4e1797cea0b0e648f0d46723c73f97f96ee6b65f8666d0cf43039bcae451b485a373ddedb3d25ca4ee478243de335929d770cb27c1cdb21394433637235938bfeada9e8bcb6259b6aa", + "011ad7b6157b72965ccd8ed346259df0fffb49826b7adbfaee3b2b54c8e04fb197ea5103e6b13720db078bb8857fe75df04165d19c284f59b260bcc74ad0506b6a563ae57866c97b9f4b0784533b89b7dffa5b3bc07aeec6fe1e9c366da9f8af0c225ae5ba2d310eb6a4454a474d7435dfd01ae8055b595718327370d67d68e899149214dcac1f08408b4d7ef7705d5442d2de8e8da947045800f4579a87dbfb9b6b8eac1c3f80113dabaf95f9a878c0ecc453ededecc4272728d5" + }, + { /* i=4015 cDividendBits=1583 cDivisorBits=206 */ + "3a4d3700ec1dd31a78c706378de473274e4a058ca54f5095416ebd3064dc1db673ec9a7a779ae9d9ed471b589206866ddf6eb2563a41bde2536972afca1e1ce31f21098316e3390f35146289451a7a99b03bd4ec2bfb5069a2b0aa048ed467d8e2f48d3d101fd5d17c5e808f450bc980c09a65ee5903ddf135974bcbcf82ee3d7e7ff0454ea696b71d14f5cb0dbb21d0db88d15d5d639805714efc3a5f12a7386054ae51afb9efd1969bd9f14981be587081de762d635ccecdbaaefa7f026f5f70dda9c7d723", + "1d72c49b5be0af83f7c81338e37b3fdf7dc5507cad8742d90ac2", + "01fad3d7a00e0bd113200fa218478c6ff8bc72a62223ed2e86946b02af18441096204b31cc4ee43473178f8170a18f5e13e6b989db8826ffab78464203e495e59d57dc189c6ea7d281f7cac3207089e9917727748f4fc878c82c2d7acb6852c09b8cac01a61c1ee1cf68e4134946114126995fa28a17ded8f57a03feb62de6c46a2da9bc973cb3a737ca259fd989ccf5eec0439f4588839b784daaa6924a20c8cf2e772161bf6a189450c0a17c", + "1c0f799b9cc05776f443666447ab0b7475366eb2f40217629f2b" + }, + { /* i=4016 cDividendBits=3015 cDivisorBits=1302 */ + "1b22193ebd293331e26d8ddbc2d9aa6d3253c0800366320440732f4c0854f75fc9295f5cb7521d3098c84ba854e1dda2046104030590d1ae53bb8ce4ef196dcdfc3530f85047a694d508ca0639ef4d95e5f371a0893ebf76506eaeddbab36ea680b15678409b563c3e6f7b6561fb0f6d25a72dda4f95ea36fbcb11a83d93f49f4fec5221d8edf02ccb061386f3fdcda05718992bfc4f588482711e67862c62f3f97adb13b9eca6dca53cb271d29ce3827c17fad351bd95abefe4dd2eb910067e63c2de5c9f2915ab9c4d2becc4d0f7470bd23045acc681ef50ff0d40300280b65e0849e7b8e2f299755547f40364550f1f9a98be9617f312c81ae28534fcbafb596db2127bc8613bd2733024e2c29be535134d58340d382ea8a8279e2008b1221342d1b73b0878f2d1f3f050a83aab799cce345c80cff18414a1116dc1bfe00736a03f64e8393030e4e84d59fcf189934680424fcb63f80febf63ca7d21c71e87513e1e656723dc6bf5a15b2c3c6e3c71e70f146c50ca81240", + "22b02f07807ecdd8a48508fa3cfa8df6fadf1661ce33ca13d148b6468229a2cf2e640368817dd31756349c9e6112fd8c1fedba31ae4ec56a476b86fa303f6f989134fde4d5cd1de1a87ef6b9712c780e0a5c33653b5740ecce2c26872e5416192dc7a8a739144a297541a98e2ba6698ecf0c1371e0501f59a74b0dcf4eff41d372a5c4309ddd6de1c2d039017a3c3b2b8f7d0271971d76b5e6a3553a4f15c1b83e6de5", + "c83e66184799280b03932333e871540c2a053c09eb1ccf9ebcea9f3f8a83f07dff609a4ba2ee3ee01a6fb037a3ec9c583da7e9c341c9951ac3070d1170ded3e4505d79abcbb63ed6a4295971c1ed1d8e024edb317b1e4fd1e148b875809ea96d3c09fd99b1481c7a258d8ced7c9a1ecf3ed846285bb8e70aead04659fe2738d093aad68e01a0eb4956ca12c6d04bfedac18d208461bcf9ac363a656478516c622d62600ddd8f71972ab1c41834f023920ba9f8e8530860e3613fc4bfb1db2ced6142d28742235ee08dedd0e335e1dcf6211395a52a24", + "1e93152797aa642c1ad5a9b1a09687fd126a31e1038af5361159befc8405c978e3421abb1fb72c953b6abda3736f7b45eb4e558c0a1a09e5d76db776cc1c13c22bcb70adc9f1fbd4996c9d7d5443028bb25f50a450c0d92a7a931f5e3bb77aa05798bbbdd595502522396a040e65008fecfbd1413614a766b0764c57ad3dc7d81aababe6229d4bec9beffd42b2c1c20bfff11491404deb34f2ef1a5f4dac1ac8400c0c" + }, + { /* i=4017 cDividendBits=1668 cDivisorBits=941 */ + "088975a1705ab1ae608e2d2354a61fc9b5824981bc4e5e5d0bc1e0bcc81fdd1fe15476b0de6bcc3eadc053f1d7a2634f12cc6bb5fca7b2e98be93586cc53b2c3d5eadc0f500936ce965315da1839a22dc7b1e8975e2b58d2e5cf330b5a65735567e8d20fefbeebe88b4164d66aadcd397c9d7b5f52f3aef0cccd9abf278cbee2a6bb077fac8ea180c5724a95614fd70414cada1f085425ad4843d1674360b7a5c17a0d42def33860938a808f129e1846d998d6eff2809b25a53908c3de390364123b5c1bf685da6eb549e7f838a0adb5b6", + "140fea8191cc6c57a13715d37f5244fb15a9069eb13fc9050d454a1bd286ea4d70171c8ea2daba50128e98fa9a6d389edd278f00ee69f45e779f1b145e5350e6e554087ebba061c8774a36b6a891d051e786c019578dabaeac8a9f9407e68b090e53d9c179da5a5905613df21e71d3e3431962037deb", + "6cef30fd6863c36b169e6b5e75ebc7357442c401a204a98252ed022bfc2ee97319529667c9dcb312101e1496a1ee41eb3e61955f6ec9df11774418be58e5d56e9c93c5a2476db0106f90e55c80c93d59c0744a7441ef2f840264b7", + "030e2acd09175da10deefbb76f95fc424c97bacb0fa71dbc17d846b1bb329c3c564e6446390a06e834b84d754de0fc76ffb13f582e35bb7acb8825e09cfbf1df94590cdf8a53b3e1b0f0c6d6deb744cd31a292e2c0e648e88652ea32d1209db6aaadc646dd5c15ba2db312330028b9a302b10b28e6b9" + }, + { /* i=4018 cDividendBits=3628 cDivisorBits=1372 */ + "0ffc513e842a42810a3bf05e77dc326c5cd8bd82b6bb2b8005df58991d885b3a7e68ef2767b611eccd251c5b36d4dbec125ecc6a4bb3dc88418c47731de6ceedebf2631dccfa708d84ce0846c820b070d965fee4031c5e4533be543289270de25112920c0ff543626575fcb9d718ee066ff9e2b18b52a7c11590595db9b2678f5983b03b5a1b83b4db6f36cbeb41ff04d6ed8e5e1ad520e1eecaecf0d6ef6d160f4af3ffa0189945c69e3bf8db12f8c7df1f0e3db134194e7fe133df359da46ed1c677f21b3de79887a4ef34bc9992c63a181562b08fd359fd83534476faa1fbf26f7e904ecf9bf7a4af13789872ce6071bd92295d933bb5cc05cf04264d28ee19d5d7aacf076c10576eff2366e4ff8da4a77e8fda1f8b2afebee6c5116120636b15e9cfe741c566aac2fff17ab6472199bb40349715b7468feccd9bb3571e0a7e5f1373360a2a737e381b9f7eedaeea9b550672982b9d2d90896cf16558f2f836e5760496d3d200f86edb14c94b63a4bc5b845abc528cca017c9cad8b43735417a74ac7cebb3dde15d37b80a138a9580284e5e2667ace4e09167157e18cbc1a3add22fc9c1380f3d457f314d624600cf8e43e0ce11b21e8d153a16781e6aa2a8d68915b2959", + "0d61869ea3d2207c063177f6bdbd503fc1a6a5baaae01f2e7e7c4d6bfb4f89230f00dd0515dd05881a6a6d0f7772de7f9e5b2187aedb1947729347088285cafbef4e9c2836198bda4ec66447ad2c4bbc53d54622ca73e4a9b25e0a431aae0133ee218cfc3b396321f76b803910a12b7da2b6818914e1ed61544b9059fb34b8a0bc9a4012ac09525715ae3125df988226c6fa0e7cdfe6fc79057e1181e281aae2eca9c768f04130851541ccc4", + "0131d4d43e7c99b03ff1de00661962e9a24b3ad5d492aa89a681c5165de7ae20b0169beffd11aac746af05275c385638eb23d27d5516a3da9411511af10afe260f09781c8fbaeb761c9f76ced2f1fda29bd0afef42cc22e653c7c6dda84688a48877f1039295929efdb95e4252226e7a23fc324e6d6d132c9ef84f33023a075868ebcd64259090ace6c049e4e9b5e458583b5e5e85eb974c6d66d974db396c843b8489b8ceb87f91b735900dd67006cba127f36dd31995df35c56ed46dcf43ef7ac4d805838887d6c723b24cc47beabf3ed51a54e4c11fc0576f3e5a34efd49e36b8d3d69e57b2a0551ec45548c375544ff7a51ce0507fdc69ee0900bc3436fb4837d257bf2ff85b224e189752b223d2a9e56d81204d6b173e0f61", + "0b3ded9da6062584dd74f07420bca5b94faf67c0e33e6a81a5298e244522d85c0101cef9d28031ff5ef5bcd664ae6a88c2204747f6645549a96b92bdb3c1e5a5a88cdba0a3b0afa4607347f8ea5e667b01d45f144601389e5b33019100aa911cdb0c853575747f15c940633c7ab41cf117838b9723b1ffe364c3255440b77c5d4a96b07f22a8ae37a3ed3f2bc4a85cd27657c9bf5db1f7a2feccc07c7ad06ad543a01f0910e3c57b74f51715" + }, + { /* i=4019 cDividendBits=3971 cDivisorBits=2053 */ + "9bcc12b06641d9958265e3e26a5578a5de9bf039bb003c105687c9caef4199850a97974aa6a76f8fb23f7dd91f331d2bca3a73cc0be55c4250257d61e4af94febd3814a8b580084d3849215d402299434960767bca4eda6eb5842e2e632fc28f93a664cb4b156b14975f535325edb1d4d66bec271392d358775b8c72dc2617d06a06b6b97692c02ab16593f1d53404f427961b720f7dc1a8f40cdd388d28dbbaba6f9d28c050da9d5c63a217a98e1cffebd931999e4b8ce70ab06ef326fe2f17c917a999eb3daaa0e4db8b4390e9c22e05c9eca8909ac7b9f8a02c0b7fcb0dcc3bcb618a745224460b0f4bb0dc9475e682a03c34f5bad91b95a3303edf701bfe84131ce9e6742136c0799a958a57b8a5b375cbdb4a7c732dc6d29652fd64c09310ff8d5124521a04f99d3ec479ecd7880022b1b2c9b8695869e1f9ba2453a4e864f3d4429c07b21e77bb80bbc443dc0d7b4a011aaa32b8bd586e7a64183ab3b0e28e47480a0c35744f7ccf1b0b72f6936151611f2bc96fea6353c921264a9fea456124a7326bd1b673bdaca24d894c22c22a55a7859d20442ebb02b153523773a575eabedbe76e35cab1a164dbddbcf1c99f49d4ff713f233e682c752de4404d9d8fd783758f2070b623ad7d05d59752a71dc909bf65d9e7708441fa6b5db53aa0006cfb88f7c3f3c4ad829fcb7ba3ee", + "1fe649a74d4b35d049f736196727a93849f301af1174e3c27ed236365a29519d00d04d7847a6e76b73f14301322b0cb6f14c8f56b60327ba7623cdc48b1b16a8840ef7511152a729967887a302c18e8bcac4e3a7f0f68fa91ed3ba0eac9e199dfa3a553561aec84d10a4f771d7cb9f0994e3f1b53cb40587cf01421aa9149e42cb49e01c37c0988eac4c98f12cabd3d65deb641ab1961eefb74aef05a004f10694c8f74e03b2c64e14ec269bc78fb8c15ec66b0d40c7738272f4850c04b3c4d513a8822d937ac8238382afe9d1369481d770ace3ee52cde9af8c1f6d65290e30cd33d796ecf19ea23ddb821bd448002c36d46dce4e28e0e8d52150c2677f4f8f93", + "04e24d36767f1f22f31ccf3d2797141d241add7c017ae62c22bb65872aee8ee0e448bfc4082fefc604894f5f665e8ad7c7f28257418260523b32880967eed9163a658f6d2bf6f78f9d34402afbe6d4721bdeb8ff9f0b3a7e92ea81fc550c837df060468f3bacdaa78178d85ce6086e427840fc5b1863773e74f3f7ffdc0676cf63e8b7b4ea9fe3aaeb9487f3716ab98f3c4f030964d657f059e986b0fa4619f2b246cfc8b02a43f85ba7a1166cb5b8dab2be9cee33586bf83318118d7395a8c8b401ff0402bbf7e138f73536686f1f08c365a8e9ec5d7414cb5ce662da6a9c1a25044f5947a2c8075ff8ed552df42c75", + "09e38af1022767cfd803ff952e7c60b5cd484dead6a1465e51dd254f5d1d083949a5c583ef2a078ccea919b86ea3ea9b5e031113bf50f4a4de9872a882d6151f38ab3274d032ce0a1db8b4d22d1bdf78423e9a8704bea0ed096fa4a921c9bba7e3ab711397c052af8ba408051c643e4b944c7d82216e9f1d9d76b56da050505d101e2a9cfe4d842920513ab9d2b36fd30b610915af88f4e3b1a24b6e3b9e4f7ce0404a6d2a62b0a564bc79f65090f99984ace76ca4cfca8aad2fbc726e412316e293d4aa0069df38c4c3f8763e114edbac0e9dde48aeb1099e0a52a4e03bef510f8ee2a806e744524f2df83f90d50fda95d2764363fc7fc8129c96c8904055c1bf" + }, + { /* i=4020 cDividendBits=3404 cDivisorBits=730 */ + "08a8bac63a6f5d87d4867e5026c167738ac2f9a198ba207dc149fa9c7dcf361244345498a46aa583c3b334c7419057e3e1b9582ea86ad6f11f1b2fe2740448ea536ba83fe5f8715d79f2ac7fb06683ad985eaea1106155728b291ddcfcfe4e0566ebefa013a6a7d00904dd26bba7914c8380bd6821f46f5c359057bfb379bce5cfe2229e33d9b0f6e72902b725c9b743e4805b3952c499812aa4753f7febb411184de83a85c4426f00394a7d7373ee230fbac80f55171cafd41d80d1106c67d1d0f5524b869c1f10a7b50e3a62735ccb98e46fe6b87abab4d24803ad6881361de48a5709132724e5c072c4489e2763529d3c91b2c7e591a2874bf0f81721d94ad401dd4a9d5569878c1ba9edf4bc9ceecb16ca0338131cae3041003834be3a76a47d8b0d696a2988f057d16f455d3f318a676b27a7468abe63b36eb89fc084ed3ee96ea4c67389d6c7cedbd542cf30ca2dc1b760d941c39e05d82f9887ef223d3cfb8e0da44be8d471a382c30078323c5f85fa4df85ff8962ff9312751f3c01760ad507480cf1294e9a96a55150f93d2dbc6f7656221e9420c463fff6b10de7074f72c3c42f8c68ba5a0", + "037640dc7f06041df070f1751d7434c9387f3291faaf43ff03e00ced7de1b213a1ac377e0df67bb0fbb2793dfcdca23dd5321bf915dd72c04b19aaaee9594b7c652aa6c4e33d671b1a78052f892a162e66a01ded11f8bfe6fa8f060b", + "0280510f27a9a7ad0df1100b4ce5daa0f6bcbc63ab0da25746f374739731cbe1fbccd0c4a48d94409ad2e5b57d8484dd2719c474d0a9d83266de5e5d6f4c786f2cd03923116ff3310fc4c2c4f37d2dde405b1e7eed67d0320980a514eaeb217cda09faa0b5b7c9470b58729ab5fa0a4d5c6658a9e247ccda2e38bd9de6c36e75eff49f169be95237f471a8ca0d0512ad452895f5e371eab74c707407c7e5cf19b5a69cd1bd9d6f2ca4ef3d27705a35fb2cb107917728ef3764a69041412d288e5d7a7946566aeb2b958024150ee98ded15a2d1ea27900ae614101579f3bb3fa6049342d75dd7209a506df830aa7eee15110981883ab72680d50189e9cbe2e73ff3ac690858435c85f4b8d2ea0d3542d70da84ab71e4de28e2ef04a350b44270a5226c740ee3d2e9fd7670d8815bfea7dfc6b9c889cbd2a4eec057d3e7ea4e7de0658d72c50d674e183d94a20262b92", + "02eb9e597121b17959d05a9b7ae7ef800dac8c0e77d6b05d0a9b27d0d250dbccb698788f019759e9c889e81285e73834dce47c21203f40962c90d973d23f2ac307929671c33fad0a492b6caac4f6850e3d60b1315c6fe0fd95545a5a" + }, + { /* i=4021 cDividendBits=1862 cDivisorBits=438 */ + "0f8964509cd6e32e736dd9ffe30cc13f7fc27a69a0b2428f06b72ce9b7ecb9f1217ba421622e56c7f5852d35e0932824421052ddd5968e595fceb80983b1282b899437fa132df2263c2f52e8d7386962f2a1696928e0d28b0d35516925b19df9fb506d10cd47ae23c84d92efe7850b6fd0a26b3e8310199f2595c2b197d2f53e6194d45321e8feccfa679b7c147fa2aecfa1407de30e5d88f3602498ccbfdff91b436f877f2b584ffd077bba4f5487533cfe2e5e91082f5935ce02b8fe77625520739639474ecbe8e005b15590d17cc61508f8080ded521893305af1b83d1a9246ee3a060820a43776", + "1cbccd62162424bf0cb97929d4b65b76e0b3fece3f1d2fdc73d23f32de15c2f0497324f922d0a2e74c2d5c51b2aa16baa46b99ed35e051", + "8a67797b8281dcf419574417038855e52682eed010eb985c7bbe39575171d1876103bf6b501aefef09786eb2202f9e40c746b03c4eb290759036d084df36ba23ef5a47ffe76da4975c3528e4acfeb55be5c29917c83f7cd2164fb285fb3e121d5628604c2f83c258a1720cc08f8f429be6f401c30ef23114037ff2d8fa92fea721e46c3921062d931672bc4b56da7418f1a942dc92f4fba5fab5c0e9ca6f58b89b966bf409cca430b3c7cd7e1b06da058393", + "04455eddac1b5705f98a04d9fc1692cbe214edc6954b162e20c1351901c7e0f06b967a9314c822cd5c24654542f423edf52849fd55f5f3" + }, + { /* i=4022 cDividendBits=2713 cDivisorBits=2421 */ + "fcf822e64d16a77076ef25c77cfe897588a739fb2da97ad2d8e4cfdae766fc6370cdadbb3f619f57b0e903e2390e32627231f2880ad087ea93f8b06c51504b5d4b1830e8e06bc2c5eafd1060ed9da1cce6df3aa7f7795a0ce96ee339310a9b024689949ec955143619a7bade0e8c3558d9b1098fadb57a6aef7b7c38801c21c4ca45be6b284e39fbdc72e71c18a87d1172240687e9b29e01121e2de93d24ea0bd0c0b643270ef64b47bb5b635c2c4152bd10b384e6eb222e917a066bf3d83bce46b712d28fe27b76cffc5f0dcebae77667544f36a23ac3d72508d089ebe089e0d186008dfd4adfcea2e4f68a51e120140dc7a01bfc82338a6d21267bd6f04e6a57ca44ed7498e1b57b7dac50e4ca8aa2f33f7864438f00ad4c39faab52f6e2ff11909cdb099bf9a4e38efa22ce54c5ffa8bf4ad4dc5c1c543733614b9d562a6f38df656026865220fdd30e4a31caeb169541c7", + "018749c866f1d6a5c2d7ef48de733b7b4110a6586ffb7b206db357ef457406fcc204e9fae90baaaaa5b130b55f0a424ce32a61c1503a534eab79f6e38e6a279d190d94c730f03aa8c477ef44a638595b351fd6a6243fa5d14862a45e71fbc863f24c067e338685b928a43c2d57f7a93129132a8fc8582b036c04b3b2ac04abee7871568411616303babb472e7c1ae14f77d3f80ce7cb0f0d76bf216373cf7478f92b274fb647f80b9b7a5fe5b420d61385fdac67a6a65625fda973f3b7123cd19a5e427ee89f84ee3e54114d4495e37c6bebcc1e14c5d0825c420a45b6e617dc02afda99135b5a4334c614abe50879a5da155086f67498585a3fd7ca919ce65ed0070688ee937bddf989a57ed51a2a8e7ef630295fe6873e86a4ea022d2d49fca8cfb0e9da2b779600f0d072df538a", + "a58144679ca48c446a6d29da47fce4d47a1a1a05d424d3d90944a1a76e8c7a3f596d30bc50", + "0150ec186d68941d265fc6b2264e1498932e33e5923610a1b1f56d688c271e4e212032257dd30c146d4fb150fcb74b7b06334268bd9a8b092fdffd363799ae90669d3bcc5ec40ae494389df1648661d08af66bfdf454250c62b27fb5aad5bec27b6533dd9e673ace98d8c1c7dbd0802fba290e863626acfd526769068c9a44b9f442c4f9906f0c7189a744e02e503fd606d39c8ca8dfb9a63f836b5e4ac01ccac76dc0295e5b6e36e19cd780bcea79d42580ae0b5ec8021af10c200676fd6c0932e01549277130bb50a1001fdda9a5cf7558cb03907a6240453d7f08995e812a6406377f1bd43aa9fe2115594806e185246eb7f10e08c8682544c70b07c807ad559b0a31ac9ce89186eff3296a464c11e4c6658fe717d580ee5aa3b5883d40960d7c41629b14aaa417d3ffc391cea7" + }, + { /* i=4023 cDividendBits=2614 cDivisorBits=1270 */ + "256bcd5cefbaafe1468021943eb5fcab1fd4d6f3cb231b842bbed40eeb45d296cedc3dfe21dff68408754bd40adaa7324a1ff68178d1be8497bb67b2cf288a111beed1c09763442c82a15f40b75b122e8f3a357bf76cc9ce6646cd2e32d042299f514c147b3a0a6c0a77f444da0415e18184aecfa956a83f56864870c627349b451cd69094f184dce217963a99ddd61ae67668daf754e5db977d92e609048d4bab0bfa4cc5ec037293f21318f8bc532084bdfe4c1ee83d1f00f0470ab16fc65da8ca2824a38bccb39c4b95f8366d20d6a1ae8e1cc58f28f5e3d1a37ae62b7e171a358ca2e7fe295a18a167a30d628526e4edf1db331d60cd51546cd1a97c9c2eb0d3336fff29a1cc5e895192de4eb894eeb7f690727eaa12c1d9cbaec46059c88de57625a5708eb1541802c4ca7e91bb1f5a6129ce7ab21ed24966640532c1503f71bb0c88af23", + "01bb5f3f52d437774642ef3626db3778606960fb90e46cbade8f9a1e0072f856ef05163c6da79782ff9760557bccd1545f52fa28ff36c4a324ae81e3f42a0a9f3b1de09fefe33074aa786b5fd6b67c85c550512cc36e880af4b84c35df2295453e46919ecf8547e803cdce7d0b164960c597622b8ea8c57a59caa5d46af4c5ce3a18de7c1fae2ec99e7e85000d71a05d917939fc295cd97cd535ba9fb5415c", + "159b4ff7f00a377112a7b96ab1cc27a424410fc63026a68bc4213f3353282ac053f620891d4a0e98b5029e03c17d5b5ab9d94cbcb887ef0d097720ebc29a0fa1755bf00f4138486bfd52c6d085d647722fdeb193c5a43508140982e8574c7da612a8ecbbff870852bc8e001f665eb5a444ff76780ac15ba7718a514948e25895daccc059b3784b96282942dad22f71647425e18498db8468cd73c1a03004285d50b76caa92017d8b9e", + "66ba1bf016f1839b1094aa181cbfd17b11e688e4b26bae0645348baf0c3eb30358008d006d002c0320f37fa136343d8c17e3b09e36783b750f9c549f3c6f9115be1f38dd866073c4b6ff0f7de74dc5b1ef625ec49703f1804221a6eff79df74fa0d1b1951a3b0a0d2e7ebab28b6027a6654113c279cf0159eb7a7994dcc48d29216c26fd6115ae137efe7f3c501b6faf1ceadb75a6ffc025e49aca41645b" + }, + { /* i=4024 cDividendBits=1679 cDivisorBits=811 */ + "1f50f30eeca3aa9e74c23cac112f78e01c07dbed30fe95555c93ed6d0fab7c402bf9ac5157a0fff2701e00605c383b5f35feb7d622fc9c1d82f966e40fea4e2efee26b6f9d302e083dad05b9f8240b07637b345631667624a61ff076289a1324ce475493b6a41fd18c97ead0a2fdc80e0193fa0d22fad1ab80d5c4b9e1e302822d1a7b4d15f9f53e80f8574b2d44ff7ef7fd7756bfe96058068d2fa8fba4e2563be3af8ab1b76b7fe174dc4da97053c8cf026add3309d1a0be4d29a97ee39ae99e519f5bd928105ea8092a423d51b88ff6f1", + "061bdda129077153097b6ebce5ec86706ac3ff0aa7e8108e0075a9b8aec900c5b8a7e1ad54d5eab0d4c79564d7d3d7e258627db5fff8aab7d20ebb696ad79d299d9d8cc5788a5e42618fd96bff9e2fbd4fc2a8759b1c81b4a880a16999708b0c787b4a7ffa3d", + "052059937a9ef732a44807c67574314f095bdf9d3cd30622420b8c9a812195b96d636aa176089b644eceeb59fa7b76c7e4b7f8fda35a90a56bca37facde121be219be475a25517c4865fda652bfc570e366d22664d617d09afb3a7261751094602374f8b667a26886a76f5a522", + "0877c8e5746b7f1818c52b44b380ef5d73f638ceaecb00c0ecb5000e8aee020a5314312d2795a844bd08d8f1b3bc274658307dabfe1212560a2edff8c6326565887e712b0379a954363afba6497cda97625889b6fe8b09703480fca8d079a176d8bce669d7" + }, + { /* i=4025 cDividendBits=120 cDivisorBits=70 */ + "64c9343c7ff6f840b05055121ea5f2", + "3f8327b204d352eba8", + "01963d44a4c2cb", + "33fb967f9d112877ba" + }, + { /* i=4026 cDividendBits=3143 cDivisorBits=1784 */ + "44d89c78e9a837992c921236a202f2e0a464c53608357d76be57aa1f7d571a1a2ea51bcf75f0ce1664ee3ca94a6fb327354673ef8cad0b17cb77de179a588714ac71ed0614c8ed41958fe245c18c7638a9b5cd6e3e839f0b5e596c0279e2745aaea5cc4c6ea8dd977db105feab215cce556d8b69e946c5d25b043e9b47065efaf3830fea7483d3ecc54b03ce29b46be21fe2c4d00b30ba1568bf809dcbe8261255f20093e12c6211f3af0d71ec9162f324dccb57c54b07e5796bcee61eb590e2d81d010586934eab62c560d8431393a8407162d55ba1286bc4bc256b224402b8b716c4d3bbd91d69a2a7e8f712cfc6cce636177b7eb1cc0812f6b8b07dc7d956181d1177b40e829d3f945a1804bdbdd555bb671310469f4e91309c0e6db67811ba2bd3bb34cdc5022b090b4012a2e53dddabbe34c31e6037c08e2656461bc730d72378d515f5887c1a77263aecbb4f802d56fede953f242e75f03fce57f2530325454644f1ad0982c6c95e8ad3192b3e6b5b891062b7a414fc4f275dc3520bca908fbb0bf87f9329d4", + "4317e61f6b542a3b4fa80bd6cb140d441fac81506ed97bf58bb3c05186bbd97eafca1bb3c0ed3b61439463c6ce0b4aa7b6c35ac4b920b3cb6a1a713427ff9f6accb75aa504cfa6b5720d378bec0f371e634112472c9d5241e2f098b5e527242d5be24261d918818820bcc3a02d5f5f791e40ac477e964058925000ee5a79bc92a3923b015afb281ce410b455426597b11e3eb2110773dd36eb16bbe5cf090e79b6f63b6d584277bcdc341154e27eca90813fb67eba525d6a9a9702da6bfca6cc345b85c54c50d26e0afa837b09e7ea702c8ceba40b889094c43365c3dcbc63", + "0106b018e61b580a7194f202ca4de8250b7a6e825639aefea3a6de14f8d3f5c5074e9f270c0d8f5c1f823715146b3efde231e10502bb96bd89cc3ad9f830859093c355b201186ab40037a00fabb3cf398bace3c3d52561cdcab527e4d2991a0951594215c8ec4727b3f8cd9a83f498d8d2b0b86bc8a6ae85b4d74a07767fa0d61fbf046f7e795574c65e1d9e7d783e7c3653cd248c04ef11d58911bbf18af4a059d2fa7cb7e3fb1a6e603f", + "31c99f996752769083994427f038c9f457227c01e4898f90f2f5ee64f921c87e30d40c3dab68d1e0fb4079c17524e5f731ecbe77e5749a7e563d7294bcd657388d3904c9ab443b56f926f35f89064744359398325f8ce5c477c1527067821a4c4efe8a0935f8c6239cdf2422ec0fd945be7720b86f46b892378deb6f75508e890cc841dac0d14081980052554144cc077fc5409ac53127fabc8b1d59e90bc25555f932bb96200ea86896ea2f6aa0289f7520f57b6ad091abbde7ff37b2e5e9d70fa49983765230a64da82eaa9a20c0c1eb88b8adaf5f7f91502a6e8511ad77" + }, + { /* i=4027 cDividendBits=1385 cDivisorBits=1271 */ + "0150420fe0d62042050a200751e2a52b687bf42971b59764e1a0ab17a423aeddb104bec769814012379d41fd3f1098c6c1dc060b8640406b506160f7bc998bfb48edd768e5271c12dafab5ce9a998c2b3b72162524c0a2e4592e6cf0253345a8c34fd8918a8c65b4679c0d68401de26c0871d0885175909da046ec8e61cbcdf22e762e215477427fcfbf5fd3b3e1b74dfe42bed06966a8c9da26b5e45efc4f368a5b2a3c7cf52652525e0a6ff1aa", + "607db321f7d12e65fa22fd9240ee0bfa2c60903e4a1fb9680a90dbc9ed1874feda14661338b15d5712b4971df58135e963bcb4ee45add7d9e4616fc860e53da883e544d8b64710009d5171eb73708bab5fc7a0f06ef95e3713d6a7d14a3c83281cd8e4fe77180d25686a7423b54b8d7afb451f2322edb87bf903d4b767cdb08622f84a26699c3c8db4e17a7e1359cb744b081b063bd77985dfd38eddbb77ec", + "037c200a9d00cf8cbf7b5b4338038b", + "343a43e0c956abb9a27653395476c0b5e2d6bfaed94518fd3c8d726e9d766acd425de61bbe3e461eade68586931bf61f416b6a75394bdb3f8e6cb2d751fa986306e541a99f01ad4ca30f9e20ecb84d623e9bacc223720b45488acd48ecf9ec586765c4850eb3a3a90bdecd3f6b8cc8c5fa391d8d4647b50816d954e2f2db78d73f759f31bfd8ad7df6cb315bfb9747bf9ada3cfb376f79bdb130e9739e1086" + }, + { /* i=4028 cDividendBits=3241 cDivisorBits=2690 */ + "328c73cf60bd41a186fdcaababf37b383111140212609cc1480e8e6bfa5e90b2991487ebaa0fb0bf0fc0d8bbdd7949238f3ccc8553dac57dc78b5166ea74b5036f4c1f5515bcbb1e64b653905b060cea13b5ce106390b52b7491eb6619980a6d32fd472f9c73bb97f93664ea9e4719c92079fcbe4167523bad5e127e4bcc4b0f7a710822e33f7ad27949cfdf4e0aad95d2928336331bd86432823a7c40b4b2af95f3b0ad363e9b00e30e7caa70147a711a757a5eb62ef2ce85e0b402385929542999077da77c545b0cf087480b8197608cb60a1d437d804e6abe41dac38a4105f28ce469049bf74defe743c66f13f3694de38a1239f18df75025dbb974fce78ce85db40bd90d65443cf3f58c04fb8cd97ed583bfdef32d97d77c78679467becbefc26348d8c19d1452e972cd92e40ec358ee5336d0710c6bd8278214d3e7758a19487ae9a0f4300ef3ccc75338817d9f99baa4e4441d5f09a9b15a3b5a97eaf3fbd79cf042c59e54f16af3c487c0cc612feed264501b70cc34dc91c9ee9630f8bd9021e86c4e8a388a2fd1dab1938799ad067a51cd", + "03328e9aed47ee7d2dd03515c1bbcde17b8289df46aea69efc99ec4fa58c18185f0e91bbd92b7b260d7028acc6fcaf8414b7347f5e02854c203c2b68df9e77658623b56a2564c2fa6b5de1431e9374ebab4c011491b739fa2f4dc00fbc03cc4e1fc5c81f53f1503a1f5e67b755f535fff1e64c060c47695fd618ba4383854d4ff88bd5a9370d431641b12e61b41562f98f7be3ac9f6e2891ee5be2ba0843dc0fbccaac25c1f8cae4ee52e7d2e4f3fb6cb7021ae58134168facc59309009bfe7b42e94adc2fe81d3b4340be32a7e46580fa31e14456583b8db696abaa87e8a29992cdbf9f3a849eadec6f975589736ae78a0611159d9c6764ec665959e4af8046584c27a8c6ab044efefa3cbde675b4942f49f44292158cfff7c96d2a393a94a17a31118f6850206caeecd2c4363a2cdc4e454d7141a69e936c8d785232c750d513389fad9b2b324009f04bba379b24f9e5", + "0fcf11554bb10efb98409a62de110577998577e6fcaa9d464879136a13025d6abc1de6e390369512741697c0beacdb171667a48c29ea8e540ddc5d689eb6fec469e1483c04", + "0328aab6d986c960eea35d4615c1db097e87818cd3146a8c09d2e97ab6dd64e2f4bb92c8c08191cd8e2216c9e44d8aed6cd11a79d8d3141fc95726764a6371ad4e89d8821f1ee72266d15e602885952cbf04a620d6d45eb4f6c487ca24ba3806b486720626116510b38ef6f72db8716e1771b90af7dd737612bccfeca8404de6cdb0fe6a4dc7bbb0aedabcf34906a103fe00566f4a6dc07306ddc4a2c8261eaf2cd28c88d2fb49cb07061c57397202e5d1bc4c5285a1952a9a423dbe02fa0448e60c09a4dba0afed565a3dd0f0298dc1d9383bdf3d8038d2cf2751142088b8f4951ad420c4ed23ad9251fb20f10de2374aeab861a9e40d86dda283770f6b4219008597a3418dca4a149ba0b06bdf192f8ed67d0fe5d20893a6057d5f0b84baee787b67d9c4d3b6e652390c54fdab2c24a5e3d3de3fbe7b12b456223d4c4ba577a08b9934d5cd65f2fb2300b37c61ecbe39" + }, + { /* i=4029 cDividendBits=1095 cDivisorBits=712 */ + "787c15a48a75b009941ed1fc6b0670f435573e7b1830ab1557d6008d5ec30ce7fc44a44e483eb4cb416eb1f64dd1e6e74c867c07754853a38fb44643ddefa6a3107c305ee36026cb14f8d069c49906b3f8a92e7dbf24b01973a29572bc2681ab36b5bd3a726f33c9aa805ff122482dadd8e3a81f99b415539353eed117d3a5cfd28f7c93654bf15d48", + "d9aa67d1891ac1ab471b98ade7074d225a510b31dce3ed760a5b3a9641919339ef6cf291368fe77d8fd261bcb8f07858c5375e3efce5b5f69082cbc4b87168fb806f9dd94b10d05664ab1cf60cfd10f4e4b6d70020decbf94c", + "8db436dc284f64dc3cafe6e94f11d5ec83b2f4903e9fd714dc5cc2ee54c406af7ae13263d28d284ef0eb279ec922d7aa", + "d4a2c4a4a23eadebab1ff354a8d8e3e2db0b47c56169571eb44dbe88e66d5bd841171f6def3fea223ef295b38938a7c34c2ceb1a8b8b053c486f51f6b7911580b0d5ed88715dd5c938d6bbbcd67e0f586312acb3b84206fcd0" + }, + { /* i=4030 cDividendBits=492 cDivisorBits=201 */ + "08971322cd27e51d5f95d364cc4f1519cf908b867ebd58dd1333b3d5a663cf47a10e45fb731171fa107dfd1870ad931499a7527906973f370da8c86f2a72", + "01eb66bda34852b758945bafc83eb4d5f4b2b1e7a700e6633391", + "0479a0c62cbb0af3560fb59b30e77a23c29676aea9eeb4160cd6bb079a2a9f02c1a047134a", + "01855db7c15183513fed82673a3ca167a454775dce3de5b77f88" + }, + { /* i=4031 cDividendBits=1498 cDivisorBits=827 */ + "0319603c168f345f5dbd02b0ae6663b88a1e8e02a768714ab6966d2b70cdd5bd1f46ab523de355fc4862c235ed460525924a61508733a833fd084153c822869f5852463aaabdd034f4e98099bb04655360d681c3c4bb8e896490276dd7808419c70a8dd12ad619d81e13e4801a7f31eab370236b060586bc697cb188e6d3f666e6d7f13a97d2c442b420d3672eedabf794e801726e606d6a5355b45a0fb2870f99a3ad6dbccb65218b1739b989d28371ba1767db6c2466eb1a4fe321", + "0210187900a570053c12bb8fb3e94d92100a001bf221f1e5c0abd723926cebe0e8bb1e45b296568c60fa1ced88bb233f85a02e131ac37bdae12c709ef7cdb1c9b2509f2f447cac4d709df471c7bb527f8874edf8d5049f9a63062979167343aef237f59800038f2b", + "018098f4586e00ac23f35b8949f75e6123dd6d4d4b3d2866bb3a4d0a0cc93bb3808a0304be16e9e0fc0f4b8513df07edc9e62a09e92c757ca4e1d00981ab423bfb6a6747803178b20b3a9aafd03212c22869628452", + "a4cfffc507e226be5a629de0fda18dca6a81788fd5144254690b7a57933396ab85150eefdc4627de796adec961d821717e989fcd84abc0f43c068682504ae1bd610bd16f0bdec5b6517c2226c211e731a5b7347a0f517244577e77eac6dddc7550f06bd1e3db5b" + }, + { /* i=4032 cDividendBits=1044 cDivisorBits=742 */ + "0cf56a6fc4521413b8f6a2379610abdf11ef8ad722864b92a1768094abcfcdbc5780e4632ec250e5de92d2760e65599ac09414c070ebfb125a7f918316aa16f4901fcc14cc51f0bcd063f64c2be59c94077245c05617dd195b2ce18aa5325d0b57ba3b2f2df9a0c50e85cfd80868b3a9bcfa855bafe66dac8804ee192888e1b9dfe311", + "311f369d9ac19042a0ccda16b955e5115dbd87d743f195503dd8dcda575946f35d5207069b4bc0ad9dfe3da13f73a4491ad54f91e4a2fe75565da722a9c3341f4e16c17c4725b9e103b677192342e05b2b233860a7f3e5d47b7623a1f4", + "4388c8f58f93dc926caa99f8fe3bc1a515ef871fa5af52c02b728a6dff33e90ef830889ad56e", + "210a5daee98dc0a7e106f9fa99be79c78f20a130c69793f72b5ec10a33485b624116f18679e03f02acab6c02480034a4fb47a235b5cd57cfeb6e8eae0989c7bf95b12b77d104e06b9c2ed8a70b0fa16d3160c248230ea9c55044084839" + }, + { /* i=4033 cDividendBits=3448 cDivisorBits=3357 */ + "6768f206776ff693037e38c5344bf64773e8c53f41668742e167f1be2c39ac08dd409897cc6698492cfe52e6880355ce5ea077b86764f9b6ea730dca8999fbaf5ebfbb3591549565edf2ad598c51cc927e71df7ec47f94d486fc7dacc7fee0d2682d7d8efbe5ebad852917ac81f979882e6b1cbe036241bd37edfc699b45986e17375ae0ce6e8fbf29a9e51ef65a95bd2641501b84f91b59be797bc388efcd882ab0ea16aa4deb820986e384f55c703fdc2f43c05f812104bfecb6351af6b34db8e56bf4438ed76043caf07ab0e760af48afb2500036b8da39b7603f25e8c92ff60fac40a1881e851fea6f7db264a2de15e7389a18c19e38894c11d93e122e68e0008e5072f420bd9fee819eadee2b39a733388cb71c8527f89bbbbb5aa41971aa01ac98b985870be484649932a7deb1c2f6c3119d2abb3db5be8cb23bded465f883698919021a0e489822e077da0912f99e6edafe1f65a46107e8c923666e0cbd9322e6b62d0121029c1fa9d4925298c6ceefd4ebdea7e3a6f307d23138e5043a9d92aa4f987b74939a3be6738ac7e81c2b56b4db055e40e199f6bb6ec63d4121d829cb96a69eba5dbb645dffa8d6", + "1124b1f8ef612ebf08f0c853e04b742356d19c22a0f71fe2f0f3d730d3e9ba82b678dccbb0110c3a005885628cf248a1bcf702615b91fbfd57616175aa7d80b4f638e26c6f10f307aeacd7f8a79b5154bd106efb065974f0ea7165c2bb9c9cd2e7d180294bca1538d540f9e5191986f28a4c6838515a06adbce1aca929c9a3c420d87923515f450307195e3568e725518acee44203e66d2cbaaa70018be2d0583cefd2fc02df05c710c7cf4d703f5752683a083e2fb1feef4cc932ac3b58da8b0c3796a88ab589b86a1f39a601734ecee97d35478091e10bf6ffa3623ecfcf9f45ee656ecf75db2e3a790647c9b36b2b029ec6db3961a68b25c07394ff914489cbf7b760dbb2dae8e1e87066898ff565a72863ce79ae437056659f85bfc3e35593cc668331158b8e9ba198f0e49d842b53fbe00abaa9104839bc7c813df93b1e08b0bf27682ad7c8c600c8744b1bad9d0d3bb86f2ee610e1538363205a4705da1fecb3b42a3500f04874f406b3447ce27388024bfdaf7464eef59928a56ba1cb5b05316f59116a09183d3b7d53a2f09c8c7fbe1971a3efaa0116554b6c595a4ac9b4acbb", + "0608362b236c6433f000bd7b", + "0ebf25cd8e487a151437e8c96627357df5126d19fd860ceb22392a29e58508e2024ff33103be46a9225f0cc50e5bb3162152ebaf61321021046638768c9e96b6b1353dc5a03b08de50ab583dba7f6c15d7cff6c4ebbeeec8fc11009d1a62b10e711f7ed887470dae8b41cab973780ba11f6dc4a3fb08849b236e486be74ae863b7c994afa48aef452d5fa86256bb5f2ea26e671275235a5e5f15532276eb196c51f8654247d4e41de6ccb16785a5eb9bbaab46c904b1d530e082b365effcc00198d0eefde3fe4578cd973d82b01bf1ec9863195d770f5be6e2465836f65cb75b9e8eb70f5e40361e364bd8196a595fedf19f1fcf86602a177adb8a91955620a136d9caa587ff2ec9a7ab9a07211cfc80d687a0a8dff40abf1f008a331864fd2877c0bfc526feb607e7af5a212a883df7fbff452a53ef794c163b18c3555e3cc0e25b7f82642d0b94704e0849b209360b5d4d7a3bc6d436d54ba92120a132c664af214fd62b198d2e55195795c4b908fcfef08817f1c1ff26d468559b7770a437a3351f7224aee9a60e63a3e54cd4d1eeb562949f62e362857f7bc2cd64514b5ac0aa9bfd" + }, + { /* i=4034 cDividendBits=1287 cDivisorBits=966 */ + "626c291ca8d31d8e3dac45f4dac7a0d16a18c7d204bf14e1ccf182e605df8a4c027781d91696dc9df8d281db205295d3edc3db6aa9a6796efce0c4f249e444a256ddfb16802736f0888eacb26d0d6aff823942119d2a0fe1baea49212c86a5a5fa403e63d81fc6377543c3767b119be627d4447b54fe569f2eb52df4e225eb560b87912f3e985a74908b61b4813fa60130798640ebce1ef0c55d2b2fc8e94f7eb1", + "1ef72b150b17a1e3b83e6607442f80bb2e2603e41f29209115b535ee781ae02ac6d667cd0ed8f772e82ae2af7cd3bff7af114c54b925c8a556e4e0e3f4bf28e140d893aeaf6cceb5cbe0e549c495b6ac0590320e29eeb14490b9473fb9930271a67ba8bdac85965a71268205670c2b6aead61dbab1383ee01f", + "032daf5565c9a8e9a07070b109e7ac7747bfe8f85146915561b8e0ca0d56dd235f0e1a2f84c116840c", + "15f3b5cb76562a4d9895657db9ccf64d5c22295c94dfaa4e40a9ba019023fe1e197c758ff885a9b6f38afcda0ed84183a887e5d8210e224e27e4c357d00427c87959e64d3f200f7a68041eeb959393de79b367e76dfbd19d2aa786adcf0618b07fcd4e629c288b3920726e7140bcefab345829911f3923013d" + }, + { /* i=4035 cDividendBits=1959 cDivisorBits=151 */ + "792f25a17a98b854a9b4b42d236c4bfb9f5bc7eb20d1668d14ee4c90041a161978323f70f51c3f8638d2ce6365979daa9aa385d1f95d4cb5dc0c2ab93a171760997114f0db40bd97063737f59bf98e8b7f04a995017371c4f30409a29ea38de60ccf4cc2603462d60b87d8743e97de094948cf9c45c08b1ae982eb9f2271ebe48751b1d45bf6bd7f5ceb2f069f30632793e1bc8e47c6bb8f4187f7e5319b6b2b157d9d296175644bc6b3ff81037f66dfe932bee5a2470fc70395750c2a6f59a7c96227130761d9cd1ca1fbf226e6228b16368508686fa195a3226ade0ddbe9e6d648608653da877dee6bc5bd6e2572f6d85f175c31", + "6c4d928abd3c8c27b865d4a32ea9ca3d9f6f7e", + "011e729a85b127310275453035c7d6509eb0b769b5ef4c716930ac63f23f09812f378244679e264d918378aca2682bbe271f3ea266fa255fa2912c35e07b2695c463897f53885e0560341de79acfe9c17d62b9c2532dc6b98e4ff80808dd952c06531f62f0d114ea66815437c4c0b9b1f105f7d6995893353bec22c9128d222ebe35d4f6fd0841d07eaa73b9367c27b86837a7688171a18854ac9f8f36ca841e6420df6bbfbfd1ec0fddd4315c74577318b225f7615e73fa371ca71f4e2e1ac34045c6bb49daa121e966a5c88f0a27378689621b573c23985027d0e94bc9975c235349", + "586112e8a554924162cb41b7cd90029540b743" + }, + { /* i=4036 cDividendBits=2038 cDivisorBits=591 */ + "e0d0e3fd86c429ff8e9940b0657875ad8345a73e5496aacf58f73b2cd7b593df6a98d58c302d2c74a01a872ac9ff087802afb709fcd806ebf0f42de17669746100b5ba761e48519cfb399191fa905b5da1ac7fd292e53f63aa5deef02a8bb60ac45d216ad860f93813aa880ca65c2db18bbd9b0a28c7638ebd33376e6db7afdba0a0d6694b43f4ef9d546c14c1f6aa835be17d619fd8d46016dc7237f2a3cf40895925513c159b784e5e13521bba95b1bb7812ddb06820f630e583ca337e21f27a7a11a11277eae5f48478ffd1302114e52b2708a7915807de79b709e596f1bd4ee953a6acb283ab81cba1b34ef50db05c4ec6eb1c4e45e0d54876a096c0", + "2b5f9304e1102c0fc8b44b0624485237ad8e68f7e8a41a7e6c925863e58bb663969154ef637673edf97315395892c8f5ce7ad2de605c9d90dfe4a75311f1c7d7f99f861a415f02109fe8", + "052eeb2db3fcf83ed31c6f010e1f05c8901d050474f555ce06efbca04c1065eb554b198f0112c38e66f44a84123a8e9568799b6f62e67bf40bb5e7cc53606e206a801beff95f77bc283a8299a36b1c7755ebc0e13561f501b56ccfc1717fb178287cd9c77ef4dc1a73b411aaf5e449726746710ad10ef483539714a009164b186163ff1351a42d38510f2d54aea03fa585e80544288815a89ed01a464142f15531f89e8cdc4e07a041d32d102cfa1fa09d8f726517", + "0f320e94680e7724f24a0789ea8509e0d4c24b37ac65a7c21838b65692ea191399c3a7f00d606ecdd9622bfc3e0a1d6c2020cf3860475b7f5b042d98366045f86c411a0933eceabbb0e8" + }, + { /* i=4037 cDividendBits=1129 cDivisorBits=977 */ + "01e9ca4bb918e74c16c673d57d8ee0708951a69f26fcbe81d12f8a6b1c9f6c84dec89e6f6f4774a0d8c8ffc811bf536f99e20850f024ca1851b29009b9747c6d997a486b203bc1b3285fd2aa4a0f9ea6e4343e91c4ee53d0b7923bac60bfb21455ada352e52427e8845c9b9b5024f45e1c38740bf95a951a80361459580b0ebe0cf8f62d2d274d2124471e154f57", + "0123a39ef73717a0e2ae4b2fea0d96761cde5b20609910d8db7db9e96577068d1e6e95f6f1c3fee0d0f16e4111042c2e85819e48d87bbf9e49d3eb500d6d7d3e9b3bf2d520c9daa920a6e6a8d871d0d847fb8993afdaaf6303f1eeb64ed31a74c8ac9817584df075ba68298251cd454f8aeaa1c6bb22d312e764f7", + "01adefba993358b2d542ce873e7230a1c94f0f91", + "403dd68fb237b1e9245a04a626bf043a2d6ac2c47fd9c47f391aa24fc4b52787935975290416dc3a1d3be3631c91cb62172c468378cee41ce18039f4a2eaed68ef565027ed5d02c27a66daaa45fc077b66e0f7e7ba4c4f2163eb5284cf697d25241bd2441addde9cadae8b59ab43ef0b9abf3eaab998c2e1a670" + }, + { /* i=4038 cDividendBits=833 cDivisorBits=765 */ + "5a1cb431695d613ae05389e462d65dae5cac44e173ad76f70a3c9ba1ae4ac7c4695e80753861b4d12bfcae9f6f8d6344050838c1f1e63559f28c7909bdf85a03e1b06b425077bd98f7cfef3fdecaadd9bfaff18ce48f5921ed8e743820b0ebabda7e1c1e2d440c2d", + "1e7d099f62a12aa97323b752de7cd8a9de8be7d89d5ae25dc6bd38b666eeebdfc79b2964698bf53bf3ee80c7bbc3a21153a4cef8de826f2be22a80b0e2e03739155952ff69753905501b23ce39000fc1ab8da27a0294e2ffa9b3eacd96080e2a", + "02f4a35554ab3b139b", + "0254737a99bd8c765675195049b459cee9b26eee0c114a06fd234f066d0732c9e4715619832c11d29a9195efec3305866fddb5ecc643b7b059cadcf6ad461f9327eb7e50886c795a8acfcf6a4c6523ebc7bc3c04607597be5b7222686ba85abf" + }, + { /* i=4039 cDividendBits=3797 cDivisorBits=2670 */ + "03e4d4beb8400ba2e0e69650baf056be192eafa842be822f8f1c723b660f91e801f698f1516b856e61857e42f3ec77848ec94de933078b286bfb1cbf57c806c9fe5bdde059001b94b9ff08977b4fcb80546a81c69c18e8fe9081a05490598084e1dc365259cc91897d63f596b76d90dcff7525638d68393a1a183af3b87c99a9704f32131c16eab5d3c965f4090011e7504dfbfaffab6ef2f2bfd109464f712731eb8e82102bb6623fc945490163eaaca6163bbdc7aa4ef48aba67cb5ebdd84426deb26e067c5d2880937692771cede5cfd53cbe3e94ba83461c5033c08bc74a166cccd57c3f786d984a90c9922e4f6d1312a16d231759236abfadb35b7824f0bd10e472293b36605fd5b2d1fd60fb1afbb435c53104500ddde7e0ae587f0d6e59374db8d92420a8e8771d0202f6d7f105e7a92889fa5fed1a3812331d3fda3b6895cc85753357e71b8f63cc01f07e30fe3d488b8856e270d9240183b545c4eed08ecf6caf317a2e6635990f8e19ce6a2082f27e7737f7a2130e2047277c6988d2011d3cb9d94708c98725f5d41264f1bd8b6ec24922b0c9da47a519f53351294e53dd31ecfe6fb6c2523f0b81fa20c4e78d4b53fcfa6ad7d93c0b14b67ba31224adff564e0b2983cd7eb471e03c60423652675954882cfd45dff4", + "101706f951e84cf135db9daf8b609dc94e4decfa7f8ec7919b7abc09e12ed8e559f79bddb223dcc382fb4da4c6cc394516f90d2ea0dbd5880b602ee43adfee084bfedd6e31ab5d573b4107548feda4fa1b973724d756bf1cf040aa259dd1ff70f4e47d91e37a9a0e405aed9144f859b04cce9635bae6e2932e83b2096487bf5cf66af3677a04e6f6bbc69e21ee2b7302d2402c8cef56b3ecd279a69e85b0a4088c3837f024c91a94a575430de3f9a0924087017591a19043b9732fac5e705bbe46ccbf265510c09e694fc2aa87b456e32d1f8095f00d99dbd44160ed7ba4efa3374ef46fc1e5f2745aa075d58c284586e05a42f87edc8ced7f2cd3379843bc8ad95e43ebb00c17bf3a31d0e2d0bb028816d459d0647d6d60c3ec29766266703869528f588a8d946dcd988b76ee5bd3f62563495a7e76c874f268d480321c02bb6b17a0eff243a505f77fc1483357", + "3df421f9bbccf4cc1c8471f9a6b70c492eb49c848e3185bfe125f63460fa1dc39ae4fcd9e3d28aefdc833a2a290b440ead5eba666ff13341e11f25bc0d5914861ecbf18307438c86e7e0272c4b064d9cd49582b1f5271f376c66c28bb7e1eabee764b1c72bf597b76adefdc8f05c562bc81f75314657077d27f62b7a2587c1752e63909cdf4d80ddf679ce1daa", + "08264c8ea102446ff190c94cb65e6a5fc608874f313554448fba076fe93031fe6dae1d5114dac9bed1de8d5ab63eb83f90ef703429585dc8a957a06da5c7bb67940bcd5e084d67868c40ec811ac7481cdf26d7808ec4e3a11cee06c7553ee6ace3c2b341ffdc1a40d56fbc3e8790db1e06f3d45b25f7910f4a706017c64e42852ef7619cdf57ec5c816577feb4bc7eeeda124e49fccbca27c5599ce6a4fc16a227e29d5a29cab211a6054e92d9b5355bae985108e4007812ce47367dfaef72bb8b01b2d909a9fe6d5395ee6d39fb7984d639c9c44fcc81458a377faf2679cc280737eb1dd9ead6c6d889cbe322169bbc0cc5cc7f7af7f545d6a244101ab4811fd3bf37c1cc659454449d5fe2bef78957e7c6a0399e763e04a455b7308d4a1bb60ec6fd8a85a798c7c1c78cf639f991d4896313c078b772c2b83e7df064f47660f2ce7e78f40ea4f89b7a0680ed2e" + }, + { /* i=4040 cDividendBits=3932 cDivisorBits=2789 */ + "0655c33a333180ffb070b909f736279dfcd48af4c664bdb25c4f845f997c7abbaac5220875f11ab948e77532bd6f8911cf107b46a94790f11cee05513baa25b7b8ef0f301ee0ce411b04313b163581f1239614752643878b6ee199a464eab092bb1df2cd8228960d53930bd3842ea679c53f99e077730bed6b5a8e026ba01c8b494eca89aa298e54b36ac506ead2d2a4df0b82c58126da68189b8677605af7dee8334ab0b86ee37bf283f6d22c4dbc5c32d8a4516097ccb31110fa6f3dce516e64899dc7dd16e016e1612f55f1f27ab1d4a8b52fcc04d214c53cc06f4fec5f6ca0054624e6dfe87b1d6f189f2d940876916a81f573107a720c52bda7199b5b353a4abc3c87a4aefe2c1f9840b98a2bb032e01ad3015a2f82ecc5c1312cd8ba7faadd91b26144e750ab1717da738d4e648f9531d69ef146446250663309297bf7761597ba07ebc62c7c24fba5b4d4192c8b7c3bb2d4ad8556a27be2bb418bbc550b0aca700e3c26419f072db4cd370befb2342e86725e5328c3c532c6e853e67fedba27fce7d0ab108f8db8813677327f347d50d6f9974aa2ad324ac20bee5070ce0d7f2130029209d2bc3d8aef30eda2383292208c50f23437efbf31d70e1f3084aecffb68aa8adee919f5809038b1e7b863cbf0cc84d41572218c7fea6cbdce5954d81ac333dbedc339b64d", + "081ef419be363846af6dfba9e3aea89f90f2a95702d73ad2585827baec08651439a6bc72a5c65e877c2fb98f82c3f0cbf4d1aec02190d97a67421d8b0c4867b3d0efbfddf7197c9d351f81bfadb7ecae8383466985b41d33fdadc871a7fcfab25f95d31c1506903491a0fa0600c700274ee6182440a381753c32e0f89ee3b77d2d9704a9d7a2f0dd76586a84a5e3b8ea0f4afd0096b6ba3fc05971a0851054ed7d6a0ba5b9e585c7d214ae9d09f8b37f762318ba8dfcad810144e44501982df721583968194b7f2e5279ec784cfa6f7dc055c93c037297be074202d3e79364c5c9b72eda62b4d8d79f44e0a3de17433c45324b5e5000b778abf8e4ef37fcb417f5be361d3525fe884de3cf47735edde21fcc8dd0338732bfbccfb8f407ba028019743339c7a2df26be47229ab5c04466b99077f5f809188b9b93d36ccdbb307e4a04d1c5ca9751e8605b2d825f8e4a031e95f5d4b127537d47ff3f5e7c", + "c7b3b7e8b675a8bf9daf2ae0bf567862720aa60614b01a4a9ffc0db37b15a29f925d0192b0aecd06ab87ff4c66eb30b4279ea301f433098ea6fb34f67151561fee10f34d7606092b8da8cde485d777fd42974da794dbf396cf09e5309b051ee29a73ab1c30d99e6e58343a13c49e88e5c60174abaaedc14fddb4816c66f816087453a664ec0f751bd7d27f29cce6ab", + "0537840371aa9070656057b39553d31b6b829514d3edfa9fbfcc4446a71a07e49d324f4f8f4fd9f88e689af9de5cba2cf1ac44cd5d73d52d9d7a0eec6696d45a5db02a52e146e5e8d13aad99a5ab3be4c7790fb7536cde63e8855fb16986137cfe55154713f8ffb2319abcea9bea11885d552d754e60e6bb4f7c013d832a9095149064463dedcc30f73f944735d10cf5353a545e8afee740a0ebabf82110f7d696a7d6374d12919fdf81986cb59ff3932e6db689838c18f3bbe0845f907bdcbe25c38ee57ecc02a4ac5455a2f08dbfa0fc004a2ce3ecaf64522ffcf15dffc60a9659d96dc7ff048a0ae07b01ac825b4d40104bf6ba89e699cc889102c25406d9720f75a7b758b43a8cff9e7ba59fe30b919974fa01527580f0ded9a55e3b2da850c00ccf23f8e4076985c589716c0431e943f265888da68a8720b25828da9e562bd46af31fc8e3b42639a7f25665f2a19dbd2e30e3148a595e2e323179" + }, + { /* i=4041 cDividendBits=3271 cDivisorBits=3175 */ + "78aada4c4841917a8721de6784d23302e395ec933c4989e4f30649753a42b356be2db46909a9e772da1dd1c993949d5aedc410cc2d4e5cbbbf34146c2d4339124444598b4337957b6ea1896cf6d5dac1ca57442c98bad8c4204734a686b74bc4c905d6fe40a4de30afda16955e3b394c4566e2b25db76719e51d917f7b89a87615b6c05193934b7af75482f8e5df585587594a8462c5e8d8acf914da9314af3d54be61293063d00d4343ab13e78d546f7b064084c1758f1d654a1c4666618c9c4a9719c0ea3c45d5d22758f7dc7bec2c3c8b681c7ed156ad6715a0fa0e0e1609d3404a2857580b1b5dff3c66ea2a5cd6423b5e9da6804bb8d4549eec2226014953bcc2ed5c0c97a16289bf247b0efb80ad96058a09b1f54bbe5978930f39f852d5cfb5826b81bd53db1309491eb7120ec0005e55fbce5fe3f887dca5f583ad67351ae57d7b845944ca016f1d9c10134d27aa74ae723a44114f2e670e4da6501ce1183bc016e47577727aa70214795116b388518abfd2b6e6adf6eef043e170fe35c8a9ec5e0f9f0ecd8c3cbca4beebd25fc58e0d2b34ce519a", + "5d7fe17aa9766a7ef6c2e1a1aeeadf8bf138ead899d3919acb70387b8cb7583b11a0872f85b9ff2fea5cdf87c27f164a1e15be31573d20e92fbfe521492c8acc2711adb2ababd4084143365073946582e1370c11cd15052fb7d1f07c695a45ca9b74c8625e63faf4cf89d733f1872f7b00f314ee52b6f02c8b44de3d813800eb013e0bf0ce2a2917081c3cce41c7cd413b3daa867eef68daf4e501185f5d7639d76ad7150bb37d3e52f3f81c98d01b56a6a0cb041248d86863923bd16541406b0036fbb91c25f81a9ebf1fde5eb3f9750d2d143b46243ec20b0eaf7c36141d209e476af65294180d902e0d7757dfda76c67ad00ed65dcdc1cb5c939cae9239437f8bbd45212d295ca4506362caa51a2844eb715129edbd4e56b4602217a50249293dd2db49dea56656f3a09a2c555ba3f21d8e95a0039972481a92b0281c7f34973eb44e56837d35d6c4540904a5289a7959a0891eb1f6e7ceee252d5c0ba6cb781a05ba494f8af10ac22b1a250a8a5eb971997ba60dbe123986a5414d0e957025f51d8f1dbc76a89fb662c107", + "014a6295bb52b1f0ec5102f740", + "2cd6ccd4d7f4ffa850a9edf84dbccdeb6bce86de3db46db584e1c87890dae55ceecc88cc9c385498a2f41ef5f5cafc7d36006ffec24ccb18a433691258bf49765dd16fa8f2aa1379a74f610a094c794cd869376a4df498408d0681a2f610d1244ab52f7bf5e556a658b3bc14f5432233e18ca27658131f9092fa9e2a014e29708d0bbe06a3f3d437cb83d57058f3214a44e6f67b9c1396da7b5c1d6d84fd3743935b56bcdd73a6b0bcff2e7c95c61679d9102e26ddc393fbbcdf0d74282384168f4b8b341ba18115c7d8079238ceb0ac3f879755f233acb9c801c8b6f66d8fb99afba15b668aced81a915a5a1c0cbde1e3b45b773c87e1472b8c764f7cd2bcba02c493dfee17ea73661d82f6c748c38384504608ca17871b28cd76f6c6e0ea05a0331fe952efc748dc13ef127b9f8f6a808a8bcfc4d5ce6876af3c5b99c82e58510d8b1b6b46d04c20902b337428a7af47dd3a44cf8ded0d7696e528034a2d0e756c3dc9e168a0d857bcc1a27750e478ee21e517333d102ef973361e8b84676e8b12195860e5659df79ad24eda" + }, + { /* i=4042 cDividendBits=1309 cDivisorBits=528 */ + "02cfec902932bc6f0fa855e0e95ca630ab81669e6440b79392fe68a806a736514d8e597c0cbd5f330eff4c8f4cf933611a8742660709cabe971e995d2f012104fafd0ce3801e7c7925f1f702ad129a5ad4376138335ac7c8696d6da00f25386c32d2aedb9b2bf2338587192ef02a3f42ad03b7076aabcb4f10f38d8c5ca0fd2f5e5323a2bc5320b572464159a86f07f30cc54530a81de1f793a0e5d9f2a6cab01c463bf1", + "f2b9673b9030bc6daca0478b6e9f558e93014b84e49b567ffd673012c91b7581a381edf1fc6a42c8043672f57842508233cd92c66870eaeba5468e5c9ab8438b704f", + "02f74cdb6e0e50e005703353c9d3a5f35755b2afe30d96a76ec2804518bded22d3e89b5e055417318a1659c6170d5f9072020d99bd93d70ae73aa4acb4ba5e69d8884566012d8f3ccfdaaba81b61ee7404ec0de1f294705f2f52b427a7b4268983d9", + "e399b374148a548022772a42c054446bca4e52b8a9cbc18a6a0540fde904d7e1991bf14e7162aaa1f4f687cd2f195383812327a0c50cd335f688a0010117ac549bfa" + }, + { /* i=4043 cDividendBits=2981 cDivisorBits=2845 */ + "0719ca2a3fd0f458db1f59c46f6547fdbccda60a27ceef2be66b23cdc4870a674556cfc3f51fbcddf125f431ade94113fe384c1d9f9fc039c407ebffb8d87ffbc44bdc010ab55e8d9252d30569547aa14339ecd622670c4bbadef6f3aa90e018f07d12dfe0e7efbdc774a3197b10d9f3ff099b6d45db72e6b0f5319f1cb5bc04e542b9f7505a764792f53a515b9577056666b1a6245dfa4bdb4fdc0114a295287d3543bcf177be071c4f6c35946aecd678331e6e3ad6165edf64e2e698f5dcae884588e0d32b9989786901e3ad961e7e8cc28a22dfb3753780692e475fd74ebd6ae32814338b0e39d8afd3dd39145950fb39613a32076ef8673312cf9f3aec1de1340d3ac428545876f734e70d56f383ede8757a8cba082316fcd9b330029331604d83a0b7e50412809110baf6c014744913eb9addda8bc04a000340e5a0c3b6731ebe4420310778dac69adf1012d1d896a6a509d0b1c7a7ea6be0fad894e368e485960c4aaab2962d7ef3fca3f9f37e33d6694e78", + "032034d82156a153530c95cd727af182998877d540427ceff877d2b35c99150f8862a5612f913ce66a5df973e7ecfd4839546682c5fcf22f7a63a924706590e67d8e6810c3b7e4c74edcf8e5423d69adf0fa6f315a834d138ea1956a425e9b0ef601c6be8b12cf6e9a3eccb78011a92b5fcc99486168e4a21da9a5dfbf82a453ac6c7e7583babd4f6753a13bd765416a20813657451f2f28b02843282012183fbe1fc8e0a54ea5e80567adb16e537f5d546453e83864d3e064fb06cdf4129b06a1e1d32bb776dfb363fa0f2a219c16b47351a95f1b39bbd7cf6cb1bf6342daa4c27c0c3eb9a62777a910ca540f2da3f7af89e4413f46d2aad2ccbb4f21150dfe5166af0856a981bc0b47e6266dd54a90a7eedb699452de6bfe153a010d249a01d1535e043f7e7d8fbf581bfcae9bf3da17241a813dde1d3deb93549d90acab161e20fb083553c3dbabe90ff7739f6dfdefba89b4ea0a9033b4b8387a6eda36eacefbf261", + "02458aeb38077d77bb0c0145a4044a70f458", + "8deebb84da018cd3de026188d5c02c42847f237fb540b9e1d857f2c0b8766fda4ddbf5168abdc3fe84f7e67d93e7296f56d6a0b14d6f5178cb28a4813b9fcef997827be1fa83f23abc2a698a27a3545f973a855689b7f0905e7f9e7b6fe250dcce47f0f7bc46f5a7fdc2bb12a7a19e9a69abe1c872bf9b7ab5d581d3c87b5a3c6ae60832e0323374d9188105291f008658d0fdda19f4cff6feef47d752292ebc806e16ffa9fb96a91469106a16d7177e0d08c7247607485b89662191944f5bf766378fca8132746c38b88113e9b4827d51f590a60a3371d683362844d17b94170aade93eaed10a998fc32b0e43cd9492f481b9f587b5e1023593dab3c36556689d038bcd0c5ef5a54c5f407e04e24af1a7f58bb4b3a08e3d20d0aaca08a05c55067dd8211c66f6b77d815e7f62b5aa67b033e3dfd042e76201c3d21908b99e00328b249e247fbe2502098ca727c075b36317873cc231f4ab8d07e2a3ae806678598920" + }, + { /* i=4044 cDividendBits=3184 cDivisorBits=3121 */ + "172450c607bd2434b1cf769b2c3c81f424dd8ae1af9c08851dcac5fd2d3f3cc8816dfa27052db34ea41d86d7f21eeeb0010f707f6fa45deead40242dc42f944192624a44e135b2df56e25552ae3c96b7ac6adff34acee2533677c1c7daa818f52464a7cdd26da59c3d2f71b210e257024423f86026d0a12484c20b072d5853f6b47cc4315d72d40249caa1489714088f25a78dfbcd6ba9ad2c3363e4bb6ca754065d2ccae656a2ebb83f1525591d7efbe2c4fccd9378c1d3b0855ec9e71883a2c676c0bc468176469666f37c5b665601e632bc2853a5460686df13483429aacf4d87a8c141eaf91f266b4e9f82b2aad3a78aa7e6b519128e657d9f5a58651aaff5c6c6481897f17dec67fc043be43376bbc3778b5cdfb262ca5ed4a4adfafbb7b474f0e51b9957a674e8aa925169a040a08dce1fbdbf3e4adc0e24b50d630acd24eeb6ddab1e3673bfbf45099a13cc97a57f4a198dbbd80f909eb90c41570501f6c95936b594c209faf98e7fc99beca8f48c32cded80b1e39b945454213c3cf72336615c1a105488910488b8ab51", + "3b700c9f7fdd5080bb3c33da6ea1d5622e5bed291c261b5d8ffff8429c47f1238365c50e11188114a3aeb62b0afae655bc32d8909cc58be8a38c258afff9d0de5103107d15a0ce53e4fdbd125e184c8039aa12df0d078a81ad129e3c874e179baac57377df567a02a98410ad6beef312969a89bb1e6c5d3b11955d5d78c3781f9b4d6025cc26c9719947d46e1bfcbb08a28126009cf0cf34a50ab014c6a34787cc4c32d8afcc421ef6bb6d69356ae351d30f2978d215e911944aa5854b29d71354016fe3d24b5a9d524797a561c7962fd07ca5a5a5dcab11008d196a082291c71a34e3b5e1ec786dfd9182c9dafd850a12629f3ec73066729a7b84ce8657ab7a76805118df6e085eaee9ad0b9b64983fdd6840b4cbb05bc3886778fe33acff0b6da5bfb594327bb5b19e99311d363f89265590bfccb37f1ab5965dfaffaecd701a49d0b42784120d916e8f0ae1987876e90c1cd5409f68ac81526fe51e8a28e367780b860f04a49bb59713f43cb9dd2de6efa0cc0fcae9a6367b4d0570d015f31f826cf695a8", + "63ac364e86eac0e0", + "1c444f7e47b612933f8416fd506a9d07203defe18ceeff25321cae8ef97fb93dc59be11a0d8073bc860e04f6bd83aaf7d0d6b43367257a5149af4cb978896ba607bd9c343650e74fc88f10414f1493346e3a0fb9ef029d42a8df1fdb2e49d37b23e964a51787ebf21440a58232fbaa48631b377667b34cf411edbbb9e4f0204809a823d81c7d5fc381154a5bc2951d15dfb5eaf2f7a0c6f33be7519de33e44b2dcf389a9c6d1073426786150f665e16377bfbeaeb8268b69433cbe103d84a808ca50c113a4e767a1bd3a08b69a2cff4ee76223c54c35ed9e8da3e42f45e877310a6fd480eef74076f5ceccdf65cf5f2bdf04d84fe73b74a5a801ab09abfcf1d95312230ea8a4307a9f44b7f882bdb9418e8740c8f8e41732142dbef8a3dad137bd4f29041b7918c174ccb20e7991732f7a7d0ef0e661234d09889328e9057efd0ade752f6c099bc9358fe6480c410fe03b14fefc9a825242e8cbffea871e56e856ea578f24e3c50b9bebdd015602192026a9666417e7e9e5b4f849ce5287fa5778418527b851" + }, + { /* i=4045 cDividendBits=3230 cDivisorBits=420 */ + "305b186eea201cb1827d252bcec41e27f82f90a862a5aae6d7734c73c719c382dfdcbdb796001364659eb36a65769e70739413aeb480f2f4d2718e08ba1a5d13d0daf45db60e96de4053bfacc65f5928b72da2e7fa6b5d687981631e5a8d5b9d6e7c25ca753138c07463c5b97d898e04a42b39d20dc6396df8cc91ade80f4611c4daed78e9be1f3aca3b3d21bb059324984f1063a16cf1582e25a7e4da4f1c4a7e519bde18c535fcdf99c4682ed1ba4d531daa4f6ba717b1f05525d4363080e9b1b281ad00224f9df4a37ce9cfa7a9f2ac1809e232a2e66d74b0a915870cfef07dfa3fd38fe561d23e010373b971c6e31522a2de3019bd2d2680a0ccbdf764aaae608f1a8d11da052b9f258e7d52961fc3d0c633c1e57e335176bc6c0d3dd15e8e19c2e357abd0017948756e8865811d3ee4280a37ba28ff1f213080b1b2f8bd7f59b1431c01ddf6fada67be0d8dec5c0a7a180f82f458bfbd64480705e4ab857f15354aca9d479169462adb172a19abe63955ab2ebcf1db4095455530208e0f40e1205ce9e775bef4d0d15350fa654fcec2d674", + "0aee6ac81d5f7c3d0d936b649f4cb832de504ea679ba6ac9830860eeb254b32302240f981a022adc59022edb776a0fc7285ca4c81a", + "046c71758af7e710d0453496b1feec50ecde86f1fe93326a50c3c16043603805e36df94eb9554ed0c1cf3f4677aa552565b8c7cc97ba84ead78b9bdda24dca61255deb89b3451991d215b6c77c231825a3f68864de0abf26578bb6d7be855de5bc2427baffb804d1203a2e0edc659d94db75b3db5056805d769f77ba8cc3d966a3f563a3ee60ee8065c277f85df9e443b224c70e271fcc5ef7834faa92aaed3cfa4f645bbeb29451d5cc95c26baeb73ee63d1dfc3ef4550996fd72eaf1979d8463726d8d005ae4aac4497c744a0789717d129adb2df0d77208b650659d6ce94cafffc3b6431c83ccfce09a957ea8cf11ebb976265efa585baf3229f990ce1109f6091578fdf5286688d9b45258ce16ca1dc0341d9014b26f5a1545e3812dc8e6fc74bae1ff246abb9b30f21bf733de0de496a776138dec536f890947033636f2be2d340bf1a5d1e45431b9ab0bd656c31c0e07fcb7eb856c69d64784ada99257", + "05b048b7aa5330572ff715b519141046e253300c24b4ca82b7d146542d45444b35dcac331a7494c815d7c49bf51d95ca58ad7a019e" + }, + { /* i=4046 cDividendBits=3810 cDivisorBits=1379 */ + "012a064a638378af74e495dc212350bb00cc9a9820b13c9b8a266d4de87cb09c89ae9cbdd86bb235288e64187883f65519c2bae03a64e5999d6e9b99141198334d3e7f0b54701c73533a58d2e0fc365ee1fe0176730e4a07df3890f6bb1987c379782c3c79f04cec696a54fcd951d4f052718cbda9ec4871dc630eb0572de4796749e1e714712b08d91dfba50be6ac5c52a6280d4d0b1e5f94f6ed2bbd80a412e39211858f52f002f627ae6058a443635cc51c165f38834602f0b3c231f9c0da485f2876369106c853b53a43e6f478515cf2663bf5eefe212515d7fc821499e3e3db27448d2474ecd90ba8a8ddf5b08b9879cf67f1b2774b8e07d77f4927d88c3f88e79c6789c22b0ced931658178ff34bce7749f0948a21dbc9dd89c73da955e3dedbea8d00b4fea0e9ad3ee85c4cc63e035828a934f98efecf7191d37679402b69a536dd5151b700fab0ff4ac32b22d4d12abbd85a5fed662fce7db3bc503b44665450f3185adf8bffa487295e89cabf6ef67b9303f099c26f1ff996acfd7a09fe563fbe76aef5cc9254deb7a74f46cd245695d0ec4bd7c8da453dd0ef1ae7f52cad8a126ccbad7a9a6871f16ea93713683436433855fe47a141e5e0d7acf7d0722c121f97341ef4681d90ab007dabf68eb9c8e4d086db5fb2bce863", + "0707789a81622720116dec89099fee890407e98ae6debd71b2198c9368db679c8d87f9c233df9b023830c81510ec4bca16640ee074fc0afb4afd41b21d1c9c567e837747a9a79e3716f85bbafea89943d6464ff20223559efa8694b46b3290fec321507c4c366ec0ebd6c0fa91717e2f6de24df20b8177cc03442ddd478cce0fa612291288eb3576e4bb3ee31593b34a9e88faeb220ad0b257ccdd2ed865284cb3dda67d6a17bcffd566628d11", + "2a65eec8c3893d57f809182ac0a6c15c7aa56bf25844d7c55b46e86afeff6d11418c0f0fd56c28dcfcbe1c390fca95fb8ab54e7e5fb22b93fb54b9a4bfffd13d48593042a807f4030c03b89d81c5f4539cee30e1b777dd0b7cf95ffa70e2eb1f7c71e3ebb251966609bf605b4caa0fe2b69c2ae21081b63bf21f776683706a5dd4185d2731348b0016bba67c99f7c23ee8615c65438b9ac85151a00b14299474c5c0adad1d284dd846cf42f98181cdff89bdd0fdac8735c17452c0a10f9ea0b82668421c946054a1ae0215373934fdffcaf2785db34d33caab3a362d58cc0e04ff0615f72d78527cac3d9b13f7bb18467100ff0ac6cf827d8c42cc1a8e7861fbca8718e5e0b8d568d276d0360e614070162025d3e68f2b39ec0258e9d39ac60907a16ba990f5db3b35204cbb011bab19", + "03ffa44a9aa7e9499ba3d167efa1d89bc7e42f22bb2eb205ed67dfe39a3e06df9e3580c17637116afb2614b26771494c858c2816bbaddf99b4d5d95397e0372f8708b9c28b7d823fc17c58862c11855ca9f805076969164dc7fcbdc827b46449829e5872319b8efad31019a6e8f8586a9c5f6d333cba95da6f235a8339e46311547546d113bbe369a4db63538dc2207a6e43e9df4151267a85e2600bcd7082a27ffadef1063c480dc7ed17c6ba" + }, + { /* i=4047 cDividendBits=2027 cDivisorBits=407 */ + "0374e005f41ab8a28362a2c5d64611d54733ea0149f0b8811e368e337d0b4a229225966160d4ee09c3c2505d09e0278648ad6ca36da4f8a4bf3d324cf43b241243458be73409b3da667f3fa08f02032a82804278bdb7eceeac8b3871d20d47b0d3899764d531b14f7f00f1ebc6f5c8ab0ae105702f95b43f4cbdd38ac8ab2987cfdec6ccb73d262e69c18969f184816564948e51f57cdf601f51e4f3cdf4ca971a99edba926ebbb276c523c07ae35f902a5b683945f5cd546f33bd5fcf40e2e3949ce6aa86f7062e2a4b8e18c96d11af1d2b04aee8253d5666d592b4c9ee88f8e4e01825cd5a169599c85aedbdbe6cbc824020bea0e7e35cbeceaad43ce0", + "2364aee637914093627e6d535686206a5541316a7b61d25c1b835e4f6e4a71f891ecc1a2fcefc06f4608796fcde41637ae6148", + "19004f27111e1abac4349580d53316a825ad2cffe52e775213287d5f50e336fe1a0637f4bc1c626f49ff4e4b357692cc450b57b89dceecf8018e9adbfea0a46c161f8f8b16a5596e5736c5cfe23dc00b8c99685d77769336f6d21b7a01b8768fd37fc213f0c5893c26b4c51d7112e164c930678b49611b97611cd9ccf01d205dd98f069801499e3e44462a801aeff4ed2b94fec681efbcf232284d2a9eadb7ec9c9c8ce377bbc120ccc0cd0f99dec4ae94a69b01b1cde9505dc691a92cbb32a1f6a6a16e458ac6cebffd6c", + "03b1e16ea54555b513cde49c0ee7e088df51d3d14572b68859b52eb7d53dc0d617d9d9353791719734c0bef6fca55552670a80" + }, + { /* i=4048 cDividendBits=2294 cDivisorBits=139 */ + "360acf379aff01d946b0f2b933521cb3ce9503e5a0d5f9624c999630ff133df0521a4dd5da2062fdf2ed931ac0b86681c3e6dadac82a30577c5bf4ecc265351577648f2a1be5e581d68faa677ea2f4a473353aada395011c797a5aa12fc459a023b5cef05efac763934f84a3d8665cf8a05be44dd84771a01dbf4f187dec135a36ddb021aaea06a09b3c38d7a960fd7ca6b8de605fc1887131ad09ba59e5dff09fd33966c26d852e9eda13300f19f2041878f489c88a7870c477e71885e83ce3b3209086608eedff1b1effa7614d969ba71043efec2081c728c539a9d406178a29b2b69565adbed1a95372facaf52ea037b924901d3aa458586ee0b7e13201928ff4e58e903f1af2ea8fb5caf6e64c55de3d72ef1d4f0b322fc2bb884fe184", + "055f71b2810abd1dae239bafc17f14d2395b", + "0a0ef550377e404ae9f2a709551babcc96e1d0a23d1dc8c02b5e3ab3964f0a27d95b9afa9f54c6c048b64a3fb3ea925e9ccf39bbc19440422dccc405a834bdb89df0c26ac418390dc1456e9202958257a8e0e35ee1a8f7f6b05188b18b5154fc28e122b4da79f5378a8ec1ff5c75dea2c59bf7c1e53388713d46ee6adcbbcb8aeec83b26686d047e7981e7a29816b25c5d0b0f47c6681957dde721f809ae07eeaca893f9ea8955431050381fbd22c0ff10b0dce8832ef0745616fc71e01595a4ffbc7ceb194dacc232d49e8d449ead2d45f7ce34330e3a80576578f9f490ae24bddbc33292a3fae6053ab779b00138119b02d88b1099d40ea9c5659ae26250c6048f0c91cc4982b0bf1b2d532e08", + "03c25ecef978a5f1ef6afd893b2e83eebcac" + }, + { /* i=4049 cDividendBits=1822 cDivisorBits=1717 */ + "1dbcdc434c381fff2eb85a24fb73f5535a0278064ee0abae9350ccab3051d48fa1a77ed157325145239f0b6b0de4de9d9248199cf301ba3d7c157ff466e440efb8e79bb0e5016f9bfd7550e05a5e5f45ae1fa61faa6cb1adaaf1527405e28261dda7a28c81b20f325b878e0127d97420fd51813e5471042868a613548356ace448982434cf82896a4f672a94a62643418fd77da4a648f1caf554aa1b08af579c95b0e9fe72bf0423eefbc99dae24197f8219b9871bfdad56a1c849292fae6c9820bdac50355a106899c1fa6905daef97d3310af34b624e35d58ec5880f11a19199b40aa5", + "078c6b0a22f5ccf7a322ffbd18cf5e0502a0213f409a2644d3f4ddb2012ddb5f305b4e8491399fac3f2bfec76188a335198b91aac00ab8f21e5a31d34828ab125765aa1708cb37ff58cc7545323a77f29d4de212c9a931760a7c4b7dc4f646842265b1af90ffc56e5752f2657a9a75de3a83f3669586b87402b2508aaf67bfbb76a8ccd8ed6d733f90f983bd104c8803ae0064cca713392599b490952aef5eee4763399bd1aebc9b213e430c475e8435a0d0f659ccc5ed9765560cfe6c7677751f80fa5be93cea0c7b7a9e2d6a288d339f710c3db8c9c3", + "03f0866fb99445cda3afa52bb9aa", + "01c8c1bea39f2c1da6b858399832d1709015c24316bf8282fea3b878f782acf3b98b0d9f21aaab41f3945a92b9ec88e50807c75d7a71594a8a1cd77b2e74e1d971f5a8a4520ab38c46db3759387381ef11076317670fb3c3623d562304aa78434da2f6a89ccc9396c4f1baf2e1a5b91d8fa2e8a712110105178d364d60bf86c1572ff63d90680ba95e1229f7c046cb9a7e907bc83695293f9d6e64357c40b020c13f0f6e602ee1e15b702fd328e11982e6bf362bbac95237724960ba93c14a0512871b72d0ce4e8978749dbb2b800eb3b82974806f2427" + }, + { /* i=4050 cDividendBits=1912 cDivisorBits=57 */ + "5fe4abd5ee3074a0bd0613d7d5def8858023c742176ea05cdac24646aca18e7cbcd2d0312f571b4d022d787fbb12cc5f5a4ca3e6cca45ad6f8ed817a8bc528f16940cb7c1321953b1bb98980a9b44ae871ad6359826f8e0d08bb5bdc8e66c2828fa87e36a61321b10bfc96f4d91b0cb260245b91acfc798a72c783987654e7ddb60941ac4613a3bec10cbd0ac3129fabdd8b4311ad2400e2f983bcea17716e413a2da52c22be4e326be3f775d30c05929b2570865bce34056c64d563f1d7d812b51da87d2e7ca3bcdcef4a3d38e3c62f460c694eb4baf738e6324907a0f4a562b4d16fa33bce2a0f87ff1c9f74a757", + "33c8fb4cef5a13", + "01da0c8fef6eb96f1efde48c908d070c13dbbf87cc1dc0bcb538d5ee4b86048d9a188f35e3dea093c754fe521e3c70ae4a40424790e9ad1c031a41d2fee4922ca24e754ed3659d8329732ac14b80e563b870db5ba5ed06ab4fba1e64daa18f21bf1c1698efc4aed4330e6eeb09c36786b2f21c96f49dd4f5308fe3151a733ea4f71eff0a70f0188c2786b1e1c3b97aa88a5f9ea5eec0bf18d2c1b7354e7be73d8caaf90664dd61fd27e5e84dbc7e3b78dc1eccb95bb758ed25e071be80a2577cd160b20f735180385385988a674afc3d25ba73df1431fcc83bbde6183b2fab84db8c8fc110a86497a2", + "1480e91a707251" + }, + { /* i=4051 cDividendBits=1201 cDivisorBits=1196 */ + "0172ff61516bca308a600b2f199b8fb401d0f434b67852bbbc88fd5587dae98a0d945a100428d2aa802ded2185d3027490aab0f8355e164c5af54b134beb22daf2968c6a976a51eb619ac87163a4d2a4a8396e9a190d8ce3faae6f3fa8f7f910efb4f9d1cd62e67d3dfe619141679f5ff226cbf83c8dd2e6d096b0878f2eb19c5e42d245f22a6bfdfb4fa724482d99e8b0b9541064cdef", + "a33c3815b58fe953ee7986fd98cccfbf1c516c2eac1f4115323509a350d4766a140bf7e9457dc381c0c459bf76544f1116c6338a13490f085d1ecd8e3b90013d17256ae9e747d9d02f868e5f995ab4b68e0cfeef894c03a0084cf28ad3fe56e575757e066f5f62c248112b0fcb4363dbd5274c6a04560f353674151c6c600c470b5679bbbe8911330083b22cc2062ea045483b5f2e", + "0245", + "87b60826ba93fee3d15fbc0fc6e08515af6a308bafcd076e0af6a83477594ed4dae65fbe1c3dcab36f81d64b751d1ee201253d00517d3cf9f42ac81df50822f1047ef2906bda0c1eec1044adc7c885e90b1b836af35fc07b989d33e4d8d5b8f1662ac8c823021b10d29a868f4f6e503c09c7cff1fb964cd21b13a5acbba081061703ab12fee9f28f7c40e89941e0defc1721a5ca89" + }, + { /* i=4052 cDividendBits=2225 cDivisorBits=1500 */ + "dc0e289068c14e5ce86821840a41a0cce8fcd29f91bd2246932d998b21d1f8c8e947c6ba2a0d64297da94d186d5bf38d4736585fe71e394913dd649e570d6d22a0b44ef4accae5eb67a9c05a5ef814e47a0353ba642ba48b389472b7011e8e90466cbba7c2ecdb66412eeba6119e96c34d2459ce96ed30d647ec9e1b5705d76501bc3c0865bca8a195229a1100030658718a9ff181a0a1f74dbffb1865db9f196482653058a6c153d58be2f5c87e7e147bac629206118bc72c07ce905fbf31b9815382b7fec70cd38c85a2f46213b2b1ee7a6e448e4a6592b76b3b45d52e2e2c4b2a84298cbc68d7fbe47b10982b1e28cd453ec251232b75ccb5c025e901c987c3aa100470012eb0f2b8c4486fe3d0e0bc86f7ea6348", + "0a5a3940076f048601a9193a1c2ac29b90f2555c7961880d5d2e34cde43ec25a45a348f9847b72643adac6a4684a3630a25236b625e4b8c952d1a12c47a6a3473698c71b8f7783d2f4e865dc0658b9c5bc62fdba420a00f46b75c37484d02990e49858006f772cc2045e6fb31eb17e0f28ff6bdd219869a5afb0aa620d2eda1b241556415c7f8286fc9215fc3a68996b6c4d9a70a854ec970a44700fe61d1337d14d9f4bb0924860aaef00c65b4ea4f3453e35cf9d3f83530e5b3514", + "1541a210d681a628378b46cc83e52ab49d3424ff69c2e221ebd877e2f66f4d2218f8ed412c677be91ae6abad8dde7d726c924cf9e10bde4bb7f7eb5457ee4cab262f6a7727d95bbad0af205de64468b88bb4a6e05a85d57b767b3c", + "04bcfc55a1bbb569a882be3ae55014c191d1003f305a21aac73deefa5ced3acd34bdfe6046ee6a5670372a3d37efa407a400bc263a5996247caf55618aad1f86661ae851d5aca9fe3353ab7b1bda1f0997e7bc7a77a70bcef1f9f10f565e8585b7c965d9bfa8237fa057106e49cc69419bb32410cfbd0ea75ce50e89cc3fc0f851df462f7ef63da6221e5c0e2045a242af61b6093aa569cd648e5a9dac56aa82354b7a89d3c17f2407b40474ee3f537bc871534384380efab4d15698" + }, + { /* i=4053 cDividendBits=2390 cDivisorBits=1086 */ + "3e838cefab6fa71424cb0a4cd8e75c5f1b60c448d01a4508d24fea3c2eb0ac8ebfd43d841827c42236b8f16f790ebbde36033ce93e7220514ec2b633a26dc861bb6d91c3ad7efbcc71de2324f36f3d4e0e714627f89d397cc2e2f3da359ba7fc923eb2aa41c844a28e6e0cc24b837908016b77d63892d0d04b15da008e2d25b62904b2f9a83ad464da7083fcf5728b821acb432e3544679ef65e812321f5c53893eb186270bfac5e470e8ca08c9c1c6323825afd7ab414a11d5fbf8ceaff04c0933da889f3f010739036a3e1655407d9e6919e5bb9bcc2163bba7359fbe4019fd51fd3d2273962c0823f2bd8dc2b735d2eeea0fa99daa04d64bdc55688708ac173ac30f85000209b370d6f358c14991b5af7feee84de64d9449b741e6a03e569553d655f556a895894fe01", + "215d25af4b6a79c99bc28aef2147032d93ccd0f75f89a2e9acbe98b07941b6ebc4c64c29a83dd18eed52b8ca9b4e0d81eada870f7c678d854357829c16e63a05461dfa8931588ea1f9bd6835d9c24458a4de0f7e6a530125dcf1390ff0820277054527e62f122a913641e9bcc2c3f4f4ce05dca7855d483bd808ffd3c1b0720ba5869f688f695fb5", + "01dfaad3892e1e62852035608cece750d2800b75a6b2ab69ff5c2df2732968f8a9c47cf3391b7a5e2b5779a3daa20bc0d2be5c0315e1f35627495625fd6af401b5b8c8848c13e495c7c0f0473ea5493cd45da64232fdd0f6a458f282f285816256430500eb3a67d4de7536932daee544d2ff219636ae2150c17b88d238bb50ccbde68e967dcd5a170845c7c6b33c6ad984af887357751f49edb0fdeb380a51abbb041930", + "14f75af3880ef50ac785c2582222fd49cf8ad7db67af2803ef5f6f648ca12b3ef66febaca83e6a6131593d16c178ebe1c669b39938bd61a6c385bfa0c195771d6c13b3eb2ae33a903c07c1032b93ecf0ce0f8edcb90b55868b92ac899696ae49d1d5097060890b049952753f4aded172a66ec35f0253f7f78d35a68e2972d813da64e77774a65f11" + }, + { /* i=4054 cDividendBits=2239 cDivisorBits=226 */ + "784a600439585bc568a3a8affd2a68085377a8cce042e987b63625b7f50be87cc351c9a4125ebdb0217a53d3a8ca035ac4241ff17abd1ef0d7b6e73ccc70959be1bf7cd09e7f132a1eedbb1f23273b51539b632d34353723647f2f085f4683e08ef281febb97d5c9da5bec0820c1531f1c499ddf1a64060cb50342fc21b8d68294ed95bff8bc13eef152e17c1e53080c101f66cbc5eb9c218ba5e69a246925785b6cd541c9a590b37933dcfe8d8ff209f7bb5f2dc834a1d0e0ab24cb6bc5f0a3a4d8b562519a88543248cda9fa2e15d69c809812dc2656e4dd4f6ec4d17e9eeeddf37d532917e9ba27c99e9295a250d9476c245855a0ec12dfc53f9c6a03da997539d6455e6245a454d11f85087ece99749c6152045c31be", + "01cba38983c71f66731a5eac01b0ec6b6a73fd4775a24e5109ecdd08a7", + "42ff34b97f56b022c207694b02fa2989973e8bc5ddb02bfd5cc82347539c03e029f5e9d909130b0f63c9a74967a84a4d23c0cc78d8cce82095ab4a0f807c86f70692198802b5ba7f567546d9f84e80f63d0463349f17efee1241fa9b9e0156e94d6a805deac0fe6cda0836407541e892fef9fcf5ac38fe77d509cd417217b3af6e3a63d8b60c07daa9272a6ad8880890a3203b11894129c0ab72d3999a194e46e17037b249cab56bd23f62ae3dc604043d65a8466d3667c3303f623bb810b025a1683533a0d762ff01875223cac5f2932fc14d4acbc2fe354d65c9c4892b8d797631b26b144d62e051c99aec3676431602074cbfea356148093e0eb1", + "01c83b8141c594ff74e765ede359c01da97cee3dc42b47f5b3319e1447" + }, + { /* i=4055 cDividendBits=3240 cDivisorBits=2095 */ + "8388a2990032dc9ad547fc060360a1f98a696fd3ca7aa5c2c8446ee1fb14fd89496f8882478b3e4175e274271ee0699d1de5503b0bee0cc87087c53da898f0ff652a8659a3c67c95bbcb2bfe4e726340031256be7a18b24d03d26f3ebb90505d8f3897a60c59a9f18e2f67cb76d97599178812b8cfe8177365c92057a88ecdc5234d2ba89a9c6b8e1d223db91f45f10994b199fd790fa2c116cc973cb90b4e701c255571d14a0aff072524315d75f37b42585a473a0c5c66b2af71ab97b221b05c607614852e7383d2fb2ac365d700cbe14daa0c09d4a5eea8ff7d6aa5fd0a7befcd2171f6a741d7722e5e34c461cae8793247c3ba3095593648b512ecb7e5d9164ec6559ce5d1dce82fc6555b18222a26cd648094db0429037e7825a480dfb8e90cff8eea11fa1e94441b10c5f621322db093acb56ad37121a97ede8124285b1c894e3a8134b75036f0a719f9be92f603a7daf55a8aaaebb195ef772986d74b968507292f06134e02d411acac94a8e9578faa3533b473e92643dbe5bf592553b5b7a41fd5c90527fd5d824a4934dfbb70b508a9df", + "3d15c5f8d49cbd2b81128064c34678ef1d3b7ee3c3f12c1ff4915cc3bf75c2a8d43db844e4fa148ff9a9215bd0150a2392ead0e1cf9545d95a2a3fbd7332583cc2c6f8eac7b567075ee21fca8933c63222ec42759f504a930f4545438537a1d337358f50dad5e4c8d42b8c457e2023142dd9c46d6e61b65bcf92061ea0e3a80a3de291e512f620ddf39aaff4de671e898983130086a3c6e84046c45fb6d04eb46282235e70abf70a726d90f45d01757c956c2f9e82c285af5edb94f53bf187600dae8159d6e06a63e902c78c3c9d7ae81c9ecec8921e5499211598ef06e06767c4bb7582961951a0f889261f44c2858a9995636d5aa1f75a9b2e39d546a6cdbc6ea56f337dd2", + "02273de7c78928f0ddba8e7a6574c9d7e3b38a545c266a0f347296e1be5042a97172b39fba4a0bd45cba5d0d63021ede1628ffbc51515479e5d571187a8e941f152e20ba1af4b7db69599e3074d799bd46f7199946669c55abf27552e6133638e03f13f2afc6f4fabe3c8303c3ca7a294158e825f4a6123b5df3107d2f8da5fae09f0363a202007f3b96d5eb6b4abfc6", + "1d6e4b7bd72b181737f8a329c719c4053d754256733c578822c9059cfc6b722a733ec5d8e1f7a7e043255ea1c53fbe442e999cccbbbb0382148891fc1218e6fe06214936c9dbabaf9f87d6a7dc956f21dbb7a71e801e1006dde8b13c02a7fdcde9c1f07676afd675f95e83888971a7a7434343878e7aa3a6cad8b687067b3ba072d41c8d299dfdf64c49e817431b53058afc2db9330353722d4187617d4a81a9d3089f904e071fa34004547e9f5827e6258d91e0ff48d85bf011d9fe3eaf29f043a3fd9a31ed3ef9c5ae5ceb6d56cd1404accb80bca92c990582fe7c2755fb14b26b3c43d3c6e7b741d409f32f2d56e094d99ef8e37d30f3b464bad94e535247d54623a1ab73" + }, + { /* i=4056 cDividendBits=787 cDivisorBits=727 */ + "022916baf0e1c65748c48996f4c3a80c1810280898e7407b2687c657da8aae2b3000defc964534c3f4ad468a85afc823bff1e1d6edcdfe089cec316c442a7717e233997c5425704d67b175100e713f0912add499d5d292424e696c0decb619eb1485ec", + "41e17fe48126c3c098a92d891021e06a6583289d450c1a38e2d64bc1eeab03b4f3ae75f7999236231d6935ad4e5a2fd9cc0a38da4420b70e93ae358b08e2ac06364d72b171ba6a56d84cec9e2a25a6d15e695764ec1f16aa1bd0ba", + "0865319c22327835", + "3e80e86b93b32888e90890648387333651867e93037307b2ee9f77a4170b6aaec745c6554d10c8b9265395ad9db676140823690b5495ec7bdc7fa4191a72786f3d29666aff6dcab2c3ec33a4be48c2ced04ce84029f02c31271f6a" + }, + { /* i=4057 cDividendBits=1347 cDivisorBits=355 */ + "058e0ec5409547d79a42e7297a17dc1a3c3bab44479841ab8b2103f4fddf69fd24545563b87030d31a1d2ed2a01e2c55797030cb705552d6a5f5efc45a4f2ad987e789995851420f2fcb74f99ca61d7d125d4573e3b506cf44cba68bdaacb4f903cc61a48670e166ea4d452f963a59cb06caf74db3cd3540875732b2d90b2aa83862b5558b77987a00b99f1944aa3ce2d9d141c5df79d142e1a185590e90bf753c18a96ba0006c9433", + "ae07d7d1f0418dde0a7c6a41b94cb610e4c72666093720f18646d44d1e4003f28332b83613377dc44736c0d9", + "082bdac059f1fe63d8b9f8c5a66e2fad680b11106f8e75451dd03e6334d7d8159d021618261cfaf6d35ecf51b7f89361d1763eae7104c94bed693e9ce86d7e57167f4573fef243e4ccfe4c0da7969e3278cb7441e0439c55c9ed3516ec30d87453ddd2453cf0e8659d12aef7392de59120334f1c56fcb7298e66c20096", + "02b170961920849d454b624f44bc5fa2e38c860d06742efe837460fa7968956b3b9c543c96a738ebabe5950d" + }, + { /* i=4058 cDividendBits=1640 cDivisorBits=38 */ + "fe6036976d539903f0e3f0c826600b6fbfd83cbc45fe35f281045b3271503556910d99629eec54a47e8ed831196cc52848d7ea9009d728292226230da56c88923152cf38cd1e79158298d8fe725c36acc8416ae7c8d3138d9b2127e310a922d833a1b1ebfbf825c2a9f1138b7fad20fe0217c241d1839986118f2d37853067937c012d815f59ff5bb723a464523fe31b5269feb0708e5159f6a7bb21185c13ff857d300d3e97a7d2a2224b44c408b5f148f8da24a77647950efe0b9a5dd9a7e990e5410d035f2cc422530af233", + "165f586d60", + "0b5ebbb483ae1cc2b1ed5d3828786f61e4fbb649f5c9e81795510a3b9ad89bb7f9d8098299b940cb820ee4cb5b9d57560b725edbfdb7b4b38bf08691b38e1deecafe7c6f8d6761114db6d76fe737ccaffbeb0a9666405d7da40193152881a2390a4bdbc0450e66554f2617ae37f06fe4e01c7181421db17dfe6a3b4751eb050ef90d60ec046c28c1e923857c1562f381123fda40e0ae95453e705e5c53113f2a587173f9ea9f513d97a6fa4991089cd693a7ab082f4a7d322df983e2e1408e1752bf91829689999070", + "1520751833" + }, + { /* i=4059 cDividendBits=3690 cDivisorBits=3234 */ + "eff875feae56da8d89dd5807244d232a9b8d4f5fce8ac3f9c03e09639641d6402fc1980d852a6d250c1b8b670a591bd58991ecf2ea1bc15f0a0a0f86ba18d66448d1e43770139f31972226f0d7ff1e1a7672aa52b8929bc2c60bb959a774fad0b47e8abf4b8b1038c49114e7eadc7393ff26b7f045cdc903ad27cbbde06df9803e71536d687cb332a98da1baa8dbc45d64e58258c7d0acc585c5b73628dd3f02b0e1e1c8011784600f64e17522709f4310e9b3764801d5d85b5929724ea315848a5849abd7a59c740ceaa7b28736eb2898cbe90a83c79c57c913934e71cad8fefc6cd50dc9b9c89395e6405dc99f39dd46ec528bfdd2e24ed6ce2edfb25fb2d07b54439864fe30eedcedee6c16bb32a88cf4f82327c8d4217ec5c428937df95a2eedd94473f94def66bec9a3f8821365fc9fe07fd43c1ac900068b81fd0e633b922a45d06cce6fd822052212d2748dc465ab23f8c934e193041bfd1e780c9e0de5a1a9d5f0f3337d5d017880c34a5dd6ef4ed9fe820a691e486283fcb6fb8215dbc50cbffa131e6d3b8a2adef5438a0aad692a08f46dc8dd847f982513cca0211fad49fe7b3456af0a9f62917cb51fddd574d0dfb0fdda5187d74ee222d76055c4f04eafad26b7fcd2235c6964", + "014facaf370662e97e1d8d7b813fed2b36df77468019d880a0d7f9d2e681e2d479b8ff253a5ee7e9c435051f1720fc0144ce2cf20ee0a91f73ba57bd2c9b37362e6144009bc7507fba128e217e0d271228e2b234b96ffaaf41b4d393683230967c7fd8be85125d7c03bb496c8260d58c233506c1315bb45e5de58bb5fc919297126dd434c4b776fa14d894df653903e3ab0227bf47412a45b39be28a8a8e6379d71e437e9e0983e8bb709e1f5aa14d8326397378626fdc88da849398bc99cd52f508c7fef2a24a40f5307d84e5a13b8bc3da5260921441df8a9da6c32360ec8cd6cfccb5117d8dab38a4fa68cb4de852d5b321a3792c2487381e68682529135a72d4aea7157fd63590a93a81e00cd5ac8978040eb14723a5ae0c143b6eab58c90ea3ab667d41b7d5296568d0e04232d30f36d08a0f87fcf37e1e6d2e79d67659ce72a704c8dfb4730c10c104d476d80fda1a7fd1ee1409682d777748954ec32f660b07907c418ef8deb6a298cfcaf516fd6be2dde00308319e8ca7e4d0c4c92251ed66cc95bd75f1ed67ceeb1dba104e6dea4cd16f", + "b7031090857edf89c0a25cbe5c80615156c9fdb83031f1bc1c4a8f62acfdb856c5f875e5a4915f70f9b21b7785cb43c9ad0a11fe0f6065aaae", + "98652d51c9567488c2e141949c68e726cab84875c719a9866bbfaeed8848b3fc5e42f5f33fb9dbb0f8b374609713d2f1e3fa1c004582c7ec410db9f774c8f28bc5d09b59f3787e84325b2a5da926d2d2a9e77f83e8f0c3c92e3bee700b70a03496cc3e50116672734cc21573ffb8fd59291b474924e8801731ff481f1b0045eba09420fe66b4eec8284c5fad15a577956e40fd687dd051118cd04ee53c4c8a7ad0fe3ffff5cae5ade4744815a2df7d0f753fa44c1d9089d11e44df275f45386c6cace21d13872be1d5890bf17c521e6015f728e8ab45819dca0c6e8d520b50c1f7dd7554f2c851749d2482a96bbbc56f2fe9bfe1a63e5dbc2e7dc6bafd4789ff3336c54feb2eb7a862aa014f69493d3504f8ee8401c028f3373b4ea642eceb25e1010f1150409185fe50c8831ae958412763fccf088fe89cc048d2458322eb7735674abb0e58c2d41047224ee98888b1439e529a59b677cc91ce960be154fc84be426e2dab5faca8b70e64037648cca993f5be9fcae120c2ecf345f6bd49448120f5a01d2e307e150068b8dd81a80a2c9f4759f2" + }, + { /* i=4060 cDividendBits=3115 cDivisorBits=2083 */ + "023a411858e88cfcfa5f1058d510316190bc14239f31bb327f8ca62a7caffd17e9ff812f41fc253d30c980beb8266c98ec6820906366da1139a444567cc537d3ee21fd5cdb5a2690bdba6b59c395398ca1922a82b773547ef7402ba9809c64d2d0cf1fa1553b1bbd18a442164b693a0e1964e324c6a8febc28d8464989083b4252351b4332b5d918c12db55cab729b62f0a12fe2b19c14e0ca0e6d87336e4231530987025001da083e8bf3955768b0c896f820d8eabd13d3a57f2a82dff24b2a16c7ff50dac2d10c67513d89ff0c31b7623379384f49d0d609c86b79406dee0e4e7bc477e3fc1e8b327a551435c3624c8f8327e66193e7b85a55d6b2a0c0983b5aa8221712f51ce7a0ab47650a77203f190cc7eaf96a57da5a3b91ef054930165a25f9e772684d231e092649d35167f0f37f74c128c86418415b92ca788f1830b58008a53d13fee2d4fd2c2a6b8d4400406b6325d61512faab6b2099c5b6b6a968df80c8a0e4dd521f7d5d3c03b1e889c45ce1f971744ac882cff60e2430ded477062078dfcc", + "041a76fed90b0af71cedde61a2a10dcc32d6e2a781fa9b04c623c633543b9129e84f169bd5a128bd4927c99aa39f466c0bbd15b4d7c94fe8072715c53f6551f56a61857be23c84341966f73b797073f5f0cfcd0c838aab22f342e96336edd09d7d2c2be3cf602927f52f5ca3920307951290735a8155dc012f78107182405adcdd3362b7bf4f39c69c6f8dc90b99ddcb0603e8dc69346cd60b09dfbc0cd8f0b0a0b6378b04b0b61dfa9ad8799428ce3269e455ee2205d94c3d23787ad49913e77283f7906ff0bbcb89b1a005c5e9f0594fd985fbed827c0683ba14f4a43f0d9500129e234d1ee46844f6d63afd884acd6980a16e12802abfa46acdf0cbbb80151ff9cfc40f", + "8af8ce95747d9f77858c7d02cb9f7b68e5fe3e3bae1a4cb2646148f532b4b9e388a8d69f8c284ba46fccd3ccb1b0ddeefaad77853dd2e4d1f68cc589890680ebb17cd58ddba62c218930056a196609d56696cbb838ca426191dfef0c8fe64e52fecde2aea86113c4292ed9d3ad8fab149a399d001477156bf0456f1c3dc1aebde2", + "0255cb25e436933b0a17284fc9c930708d18a23ceb0e27134c9419350bb042642421380eb61d8c87523da61f1b91e847c4d9d8f99ed6cab61642fde92554a6ab0a37824fb54bca17fc78da00c0885e8fc108a11182e10324474d44bfff5f7e02c258143f8f600f7a2ed2becd3b2fb79c175db1cc1b3dd488fae9779c6bbe0350c5c3c1d2317978bb29139aeba88128e6ea734ea19a0a34e6521b97a554e58996ec0da7f5774919cebae8dc22d39df00d2be93b881535caec4938baccbfa4b31373328e2bb5826993fce320f8e49b638fb28db67e3f17fca1c965b2354f2759b0dbc489866860e1c1ead2672898e9aedff885a0c19e11eb0c45cfa839fd03a36bc3a21cb78e" + }, + { /* i=4061 cDividendBits=2746 cDivisorBits=1378 */ + "012502bbc8b2468d6bb66f2f04268b9a083ceb1ea5ea2261425bff87479aa86d624795a68525653d2ca331313e4ef231f47c48550468e40a40782b5148ee5a08036ebb62e285ec01f335106b5a7f5b418f50001c45f87d41b75fc4f595d459ee833aa039fe5f2e6798f1fd9ae650f4f0d0e389b8c85176d83311eebd3440b996a4299306c5410562a0c86d3c82bea554d54b7c7ad301c425aab757f4d4ee3c9da9f4aded6f8c6c41a76bccf1c0764b51dd145376b1565e8d2a14dc2ede9a63a251f3e6704e1ffb1a40aef771167050c8c7bbd16329ee0c3b08ebc5321bbad6184635f3f9f1919b5feb9d663545c6cf5708ba3ac89b509d65d1c988e43271d3a96bf2128f67ee3a5c585d0907d6d0f2d2e6915be48af68c22c4fb602edd4c826fb8bcdba5094a6d7388735d23ded68fe8abd4d4d02f47b4b2160a34e0d6b0b1a3cb1c29f27e8df9bfa85821cbaac1463927c2cd8b1c175234", + "0128e6320eef00f6f8a5c7068aa1f47550bcf703debebec0ffbfe4cc00b632c42ea00f383055281720fde373538843f8ed2964038f0b0247e335094e43ae101e15e95a9fd2bad36af473cef3b9ba613c1ee0397b5908a421358a647cd823057625897bade207790d57e196bfb3870a7b31c75857fe66db5542e178b629bfce0402c0916a8eb20d2f9c6dcc4b60ce0b5ac6cd4a3aea7849b0c7bf50fcf8265626185d64e349232096c06c018187", + "fca5aad84f401f5d875d8a736bd606ba6d600be516051c34dfe3671dea6ed383b9358d2d391081b8a86ebf30f5999c92e4f5a73a21eea4f04aea66913975332de8eda6d04495924f32aecb604f5cf49f765c31cd8c3d04ca1ac562095a5bf009fa7f2ac8c18c6a6fbf186e4563364f7c916a36f54c6a5b4a34ecd15f38bda6453a4d38f574a956288e52683dc0d014039966f1942d2b461d1169aa60e326331c1137449e80106a19551e32", + "6e0efee25e41c743b3f301ce8f974dfea2c0635521fdcea6e10d814e7c7b30e183694aa9684c3a68a1ba0c32d94280e499c3c92c0d0254812ead9eb9d948b3f104f8db12ec04c895107406182d62db6436dcf93bc58926cb9f523667cc15091bdd6dfac31405c8049e1948afc9671fba945b051a6d23ec48a8b8840685c0a19c5260d5d91095f9857299896a16cfcc2b20efd71201c4a41c96a9c944adbf0d1ae5b8ad4cbb12bb41a5cb33d6" + }, + { /* i=4062 cDividendBits=2282 cDivisorBits=1855 */ + "02e081c2dcb3491d36112d2176b0ab1c27f12384a738313a5f6501fd3f60ea52ed01c3e0b0a7de0e557ca7a5bae1c4759c0668725046fcac810924d2110ce0405ff3c83eefc38b78d497138a25d0d4a4a9fd6bebb1226498682979ea39ff5365d016ec991fc6482a563ba1590c29ae2c2bd7e79fc5213dc886477e21bf4655a59735c061e0cd5f5f25b79f6f01ddf86a10ebcf3b114a001e9d2028a67e01f6a3acb6ba568ec0b847356eec0c02f7509c9add05c589aa0ce8b232f1a7389be4aad7fd75a2cccb853a5b33bd155aaef90721702b06b35c99440c7b7b3363b0a5158382271039c1493247770c4dabf8b55f0bc9af8edd2f8102ddb59881e35e8faba34bf509058f48cceaa04b84aba53038a11452a8e85901ee17a2fe5424ae", + "39485f681d938937787fd78f810859cac135c3fbdb06cba65feabfacc50f4098cd6173e11d1f18549b58d48db16db7244d3ea79494314c2c6d55dce34322cc669245ef1c584387a5bf8483f0809449a899c7f910d507c6a8641997a23616949b8600c008566e1f11357753c5b55615a3d18ddc513ecabcde8360b9313893fe0dd29bce01ed0c69dc0fbe3c4ea9c3727fbd2d7b16efb428533ce033dc4084cd1f3f3abf263f40f977a8c23a56855b017a7f183f0294d861ebc266f65fa7d27e7963f86c9e759777bdb0ffb8463e9e633cd758ed6feafd8896bfc49d302ff3b961651dfe34bc95fcdc", + "0cdb7ed0e6179cdc9dbcf3f79929e7503f1c73b0bc052741db5344a334eea56d717371e879cb3bb693ea78b0c4d139d1fd1480ff8cfb", + "15c29b3cae8b01140ac099bf9c01c169af3242c300e0611c5515836880d9cf5adb7ac353317caeb296c828ddbcede25a6a9b2111b9c9be25e519c0e66ec71d81c66a71f45345f1ea1a18973f6c4b7569bc805211b32a581875da36349b01081b976569b5d4ff8e1669843a463f2c39eef2dd245b93d8fcef0d49cafa67ff916a83e7c9211b1d2752602d76646c0584775d6d76fcf98faf2a728b6a646bc8c4321f62128dacf313af069b7afb87ab2fd813f8f9e94fb6b4b33e073d1fac4989f5e9711de325f97927ffcd3c4e4b2a5c6ae15727e66209658d59c33c5715d4f4b87f74fdc731d8e8fa" + }, + { /* i=4063 cDividendBits=2067 cDivisorBits=683 */ + "050ab11b9c7200f72685dadd5060c52333c316dce0abb075ba2b5431d20de9cc8f89bea52516e08e24683a8191aa0957d840bb2429e72f39b422e86db26540cd0b99ee2101cef1f568d660e3532ca1ef6fde525d7ce9cfc3506038a60e55e772f0884f751adfaa45af6aa33cba48460f7d281284aef4a840b4224c5d802c95efec1ae84feb1fd784cc127e70e34587db90c9039bece0e2b9b86654ce965921bb99568db7325477e888dafa3a50d23857bdf7dc1669ad38e901bbee5fd7be20d0c2a43471454375136d422e43cb2c49cbec6eabf4dc1c1930ab8b7769f5a97d1746fb182b8c65e81e16aa7ea925329829468c9a6be734918f55bda5cf786114146b5e00", + "04659ffefd28b7d62be18ed655109af20a98e9f43a35e3a58ecadbe938e3b510ec194433c68942c79707ae069ccab661b6483f14f3afbf9a79f2cd2f6be31e221270db3e592e3da85b55995c1a1c4848e1d87cf7b0c2", + "01258a806371291e5bd8dfcd987242a484414d3c6a3595848989ec9fe96a1303358d92ecfa2db3999d43fe61bb434d9278f5e8874542e058aa9899e9e94eec5229333d2615941e73033a1fcd4be8a5c87550d5f8d412435ad18ba2c24a2d68f33facbbe03e6cbc745aef2bfd174e190e2feb4011fa21f59cfa631f3820ee37e666a7b6759b7c502bb31a3458f3b98f78fb5d2370d33474815e577b8e418687941c098b5e11aabb59ebb5d84c1bc2", + "0175515d4c03080389bbadc06816857100db1d600fa70b4e53605dd1b9c76b11e58d12c4f02ccad784e9dcbba729d9238314cdd63d327401c35812ec7ec7de3e0132d338646a9837c5afac8bf88fbee14001177af4fc" + }, + { /* i=4064 cDividendBits=1418 cDivisorBits=310 */ + "be55a97070587ee166029c0dd5ed5cdaca12445ac77ee72e17641338d5040224d4b5913487b88e94bf45583414067ef3ec2b18809e983bd8b34d815b3dc1f67afd2c1676ae6cf85edcf6b90f7252f63fce405a63287e72a84fa580cc40b7d9a98f6340ed2d15adffe10febd1225bc54970d6c344f9c00320a7bccc9b8dba9b3a92f476213cf334ebb4d7d0838bebe8b56dab5802b451f3b248704ae892f0f073ee6b20e0b396e8d5debf05bbdf2de4d7a5", + "10fc6ce4822411ea73e5575586905e1d749594b64ab5647807fe5c773779bf855cfacc1c4dcd07", + "0b3492537fe9b9bc9adf11ff30065685cd7872975ce9d890a3119fdd8a676d43250103d9c2842c9678cb5acdbd1d0f53674a9745c74f29961545373e36ecdf9a4cd5f3bf7e5f0ddf338631b7d7c2e33f5fff9679b0e6e239ddd4dcd77917c4a37591958ab9304d06a1249d3c8fb0ba51a6e66171c0494fd8c88e096b6c8eb63f089155d0ebeee59b17ac14", + "1060ac789fd0c469a0a04e1db217c470d12b8d44e31ffd87e01794b4f106e032257185096f1f19" + }, + { /* i=4065 cDividendBits=3369 cDivisorBits=1697 */ + "1f7673e3dea4abcc414e3a13b33ab1abb235e3de1cfb72d558a4b7aced786ef7280917e11cd4523f9e1c1b50f52b4300f8cbcc8108ec4a70798f08137048807ea30ed95d949d333d158725be4738ac92f9d526efb783084d92d1862b85f05b02c26c6e5ff075c2c28087842ebe3720cccdb702ca3112597c2726119d20eecd4886290a2c1801ec8eb54451813f8c3fba689c1e1668161e6a8e909b3e6ae752c50eefb41b784720273da38216abbf6cefd3574f97d472d5da50c248755a8cb3a5aa2bac10e95ca1cdae56cdf980c7a3f99d6916fda6199700d81cd2c9acbae580bab6f3110d39a48704b3422473076513e8f102d5a93626dda52d02e94e2c9c2a8e9ebd005f0d25b3d9bc86ebe049701026597eeae271387fe8fe539dca9eb6d996507e455ad08948f72296cc40b3e8ed0b131f3ba2357461d0dc92327df9521d453afc7156617133c35c4e0aa7b4acf8b31b0cd294955d907758657354dde35ecdd9d47bc15daf3a16a1fcc8f5eea30787ff3c4dec66d46f1c38cdb02d5c113f2b0b702462c49d58ed7456dc6c978b61f99452feda87b3fa3dfa7e82d551a62c9f24ad5552", + "58dcbb953294704089b0e9b832af80e900e32af7474c93a68ca51b304a17cf12c81a63aad6bb9901de294d1e27c589c466a7d0833e286429740e2f77802e006d89285e4c857ced137a1ecc9413d35adde127e4c11926adb1c5609f973a76fe0ac113cd904b114e94bc4098ff90580465b7d7b6036fd4c858e8bcd58a239be3b7d19e325d28ea62f43cb6c644896a83185eed92adbe9f74faee659cd80532ad84841fd347d94de8ff2d5ca0771549746ad246ac8555040abb4dd9877254327a806303da2a162affdf7fccad5d9d359e93ab5bd03c", + "5aa3c7ed5e32adf8982643761f312b70287730b52c271340ad091bfb1df4bf3488fbd39123cfc50b04cb632e2123d5fd1dd702de5f651f67674a816453e1dab58502b65d51a6c0bc2fa1e4975d722bdcf396f268fe870192e5fb265063cb0d226425d5666f102dc15bec3d374a8c93df2198a608ff6354f00c2d00ea5ebc2f64abd2b61a85be12d7ac711db99e4c52f44281954c720e0cb9b36ea3ac541d70bca19aaf29c9871ff63cd09cd79c9d997ef2114dc0ea1ff2a8c35501818ec116f61ae84290b765a90ba17f85f0739d821f08", + "2d7f2cebed34f6db99ff4538ebb9c8d145602308011254629e31c2fab67420c9f55dc0b6f11318a23d6b837c1ff30a4ee01fffc784213e6e9a0053fb0a4a48bead9f9bc9f4fca3670144da63073782360b76244cfeb5545029e7bb376eeabd9448e534eb9a305e65b946592b81e34e75b169f782b735b12a6d8fe110d1a3c9f089365a04b56ee83203abfaeaede2ad676ddb03f6119c02c02f9cea2fede052203c30ec1ab30d490bf487ce5532f92eea93fe87aba790e117ca4aa1ac2fda02fac7a27186808a8cab5d5f40aad20e37f9211f8f72" + }, + { /* i=4066 cDividendBits=3462 cDivisorBits=1870 */ + "2b915cb35e0599a4af2eef5f265803c36f157f98c6e4a3de85d3eaa85e25634334518dce3deb77eb1e8104c9619ae4b0829188a15177bb1e7d5e5bb5f922aebeb4b28da84a45b848eff7c8715769eea92a5a405a33097ebc32f0272e683e4e1536428596cacd80d1782f4ff9c67af64e6ff49453c669c10be287bff7c8a0ad7599611d669554e46f88b16262d30df6a8bc1027028ba9df0b9daf8f0c0c2d1aa60f96ace45186977761ae50f781663ef47a5410fd70175abc114c31bdea471c309cc4b6b20f1378861b99009005eecb3217755a14dc076617e3c516cdbed97beae84780c4244e5cc556ceba85f5658a946fe3d5e18e435359bd9f75987b0a698872801bf3c29cec297bd145ba0981d052af6733dd821b6a40a12d9116a8e9ef0ca768664fb8a35cb9107c1db9dcb7a84da61a6b64fb8651aaf7da2d71a119678e75649508381108ceba0092a44763e6477d096325e4e3497dcea0ca80c9a758996f4707bed4397c8b3c40656a274bd3f296d7fa52e59b82143bee40f79c3699fdfd49934be35fc1d4476759110a0f0662e8887ce4ba9c0c1b3e9a16855ac1eb453743eb95dcd4a60b76a1a489e30851a37f", + "0dbe19a539942e1315681a7c5033abad99052ab07eaf1b32f0d940b2f8561b6b0a7733a7ce112968ecadc89a09a51231db6ab3e9bb1ae4d84be460f53e031b4c51efefc26bbaefe9e87ce6651bc648226870752d5f35e289e35648861e8915170379b0d73acb8faf0f55c1fa4ef05e1beca479595eec877b4ab578479a459a2e1bd4fea567b510f8aeb08b87f3a6115f9619b3b9b69bfdb39ccce64df3cf167e9a12278c755b5f72573aa7a4eb7d8c3df87cbd2a7c11948ee57b4ae17660b68d7205323b26d2e7f80813283303304c574d97ccba2c7368895aff53cf5d3c7090d7ccb922d3bb3ea9d47c", + "032b9775de42c29532afefc891e8cf576928a13acf03e93cea2230cd646b297253759e19817cc21cfcc715980be8be489efa1afef87477cf071536f54d2b98723dcef8d2ba2c5f8497888f4b3d9ddd9c0012caf8947ddcb87aa13b254d30b70cc5da2d175eace4dc70c8a694723384592952ea658037722f21c03d8a8376998a7d3e7c690783989784bb939ee5a57f6a90791ee1bc6d882b8a7805cd613e52d93e32a42c0402eda45c3e4851ab75af42ce4e9e660fb398085bb77849ee908f9c51c0e60155ebfcca", + "0ba3d436727efcc8141ac4e0e2746ffe2e5b2b73111368f1722a131505a0fa74593f5c09699a16fcaed5fcbc01065fe9bdf06afe31ab9ddc7e230ae94096959cc9fdc69894cf14c766ea2ab70dc75786792c1e26d009a8cee2dea9293173bf20c86e26ace34a6af7f7839f61b4e2be629d6c6d768682c73d79abfff9713a138469284009e01d26eb84e53eecfed73d5f6bdf00e36b1b9a513968f3c65b2d443888c10b9ce995fc7c8f1ca174ae86fef8738f955990534cda8e1fdb055db229ba35f5c0da021ac635a5276a96c8ed9ea5170f76c685f92faa78794257faf771f931364e7b00852f51e9a7" + }, + { /* i=4067 cDividendBits=3981 cDivisorBits=2488 */ + "12fe98417378a3a3857d8fc44cba38c069c88ae477103acad5446e321e9e11ac02d263d442d43ab4818fa34aaf44d1abf60edf81a03f34e962a0aedafd009fe4f15c9a2a73442146b94baa339b1c33675e838f754f9acf6664d602cd7f82996e2f1abd792f8b990878d6f4ee84d82b3982d972750ef519f74eda77dcdc9f4e2f7df76885a40d4eb0d569b3ecc9c1c0a1301aac01d49047a114d6090a105c650b50d9c027cc47bfbbabc6320d39fabf731b6aa31973dc9e27491590747157bddc1781be94b5bdf8f17a0c2f257c70c80791f6bf3e8b4cf47b084e8b81ecb6f10a260ac30ed13e53ebd4ea9806e19592bb733f69bd6922a8453168816a213a4d1d6a23f9b3490b4f58f719ea3633526af843d3b18ab6b3bb1532f38a14810ecfa426acae5fea61c746c443656e3deb139d3b74d9c541f6f9f2f96dcee9b07e4a26955a3515040cdf27c8479eaefb38027afd8e54af51ea73690dda211d1847173c299bb4ca7edb1fd2ec3493b6045356a607ddcdf43d9332c4ce2ab8d6826c622a8b5520eeba3c63486b4b41d0830b4aa63c5eee82ee27626670e0fe1e1f294824d3c8452a5381e037b85204942a598a1b111e49cd2da7cb6b3d7e1f4b91f3ab0737cacaeee9eb7d84e2c455c0969c391eeb32c70fba2ebe2d5bf66364464b0e5ef6e37f2511b4a3cd159ece32a38ba127017d", + "e3c8da1576e949ccd9a530c46b76cfb44f77eb1ebe07b2be96a60763809edc465ad6478144982a6fb1fa2152bd38fc9263efe193a3c8284b866e0a06fd6503001a0cb2a52d5eee83cfe18acb20ca4021202b1ed2e068c0be601f56e7a1a8c2db3025cf0715130cb317dd60865248575ecef4d66c2e6876aadacb8b98f410cfc0c5769fffe5be535ed8fcc35567bfa2f0b8b5ca3c0f8c719482b50102c96cb0ef01d5848b82dc15b965c03bfc7361260a3c2678a6b2aac8dd4c9375b803db9254c52964a11a9ee4d611c0afb58f07603c3c7ca5e42252e2adea53d9af5c7a8106a6d1e7889f22c413e57f0aac3e6893ee4cedea3551888cef66d3fa951d0147ca51f6bbc9abbacc39796b49d43a999bd00a13747cc72dfac847d7a80d63aef5807494b19c287f197469989d6fb57bfcc2a69df0b7228038", + "1558eb4073ae6594c02a95f374efdc626cf0064a2d1e0c3c817ed686923e3ab1c3e4729de3217d9562a691bb85ea3013291f559186ee937f02eb025ce542065b960b75725a5d1ab958ccdd095cc91e53e448d1124cc899e6e96037cdc4b00f8ebece3c13450b29a8059ba596aaeed9dba0d83d8c369132794535bd202f54a6e5d94cf34f5394cc8fae19d882c2b77e7e6c2db8d10fe26eb768d260288d818c0297829eeaae35f8084744062f52c11b06d54f4c1a153bad9585a309", + "05074be038489106674f7085c103e4f59cecb089cfe36b3f5a0a2e51f97cc0537cd8a0fd017d5cccee8e1eb2e90a08bd4b3bbf23746209ab297efc8c65705fc092c200d4d63285531f25529959b0019ec1ed61b88133c925e8600a35c3bd4722ac06df6ebd907b07fe13fe2b25461b22feac1f201d8bdcb1df3f17a4fbc560248c30c2bfdb3d57bb91c884625be7939c0f547b96af486b5863a6270cf74ea14ad8559ebe9c0fcf20bf953f99a55d2189d6acf82a8fe16649db4cb7eb88636e2c0f307c811784cbbc05460f255fb286509eec86c4bd69d0c2d50d1d5aa808f9ebe6f3f6f89bc18924d47eb776ce0c6ea9541c426e0bdb7e97a9cd5676e81ffffe99e06cf520dbc306fce32bbc6817c021ab822cb500316ba28d702f0e457d7491243f687878a7c527b4c49e461e99f3ccab0a150434d785" + }, + { /* i=4068 cDividendBits=2755 cDivisorBits=1673 */ + "031553fffd23e5d4d58fcc138e5db973c86f9634bf6f864dbf4da1210250b4fdb58eb6ced3064b0493946e4fb64c062d856553618a30b32cb3610f7bcea6a056f0971babf7bd3da3cb64e9d5f6b3f8636ad775376ec4e006c007154ff49fb38d1288c0fb4da54ddf14962bbcf2d30dae9265e5d7f1243beb36d0309c6e5d31bd5bcd689ed311ebc6bb3003db6ed82e131659da3057606ce3883934acae61ca1c5bd0f481bcd3035cc6d8a29d59186a8a006cf8dcece89fcd244eb6df9a66607df6c19af13045b90c7a26e73e3bc2956a177185e5c6d3ca84545988d6d34cc4ac5ffb1e21f25b14ab0e087b9cd4de0e85867f907bd48a4bef6e73420d7109a71e3f939cb99e25faa583aef1e4e3af68f91ad8104f86ed88c2ec0e9f5ca907a82c51ed9731b38d166650d280a4ab9dd68886797ace26aae48fa117eae5fc49a2abab5a5a1177b545f2d002a7d212a98ca6b8bc1ec7b5faa22948", + "d9947bba30e699db2924b681c06a0989060a053c9cb02279487dcf2ed44d2759f979ec30151608fbdf2e4f7952104fa6180110aae7f2c9631a9f981e125d8684bbbe70f9758e7cec9e18a51a40ef241d020bcd94fee6f3ffb6ba512da8cda5640a01f43aa1ce16ecfe2f4617eac49f2af6a83ce495805b15f1e532c96a66f73ebe7907235f55febeb9b0110781ea6766abc47df03ac0fbed96fa253417624d6459765f75a5e2b209dc2540191dfc469cc6fb55f34523d7bb8982468e1b2538b4d1b758f2b5ae31ee1da6ac09bb7383eefa", + "03a0b4e585663dcc808a2bdb7a7dc664f4bfea21a23fb0ce5cdab0a6783f27fdc674f87952e18e95edf46e294d4bec032e1d361945f30dc3b0d5b91fef624aee571eae28af60aca5eb6ac1464f774712c0b71a048263fb48ed253e81335f490d5fda45fa0374425f633010eb64f2a8cc8eb7dc50ad91cf5cd229e6d8801548d39c0c8721aac66a0b", + "0f7b827697ef3f1787fe7400b282549b641a212c9b65d6db6faa06ee954d02f15b32b7475caa110dfbe8287240c75e024e548add704798bebb053c117e71ca932b1c1e52b026890fb2376e66381f0d291631920eabcc0b5f3b3e472d81d06d0d4e02018c004430a317782abac91385abed061647f6d79a4a6fc02d7011a1a9e0d6c7762d2694036a46fdcbf301c8a9bb96c90bf07b0dd909dd64dafcd28b5696b0d5c2b4bba647b9dec0198d3d7217e147e3fc0f9212e320554631a1dae3101bf14872de72d53ec9f7524225dc89a7608a" + }, + { /* i=4069 cDividendBits=2438 cDivisorBits=409 */ + "250b7e62abedf3858a5682f0d18ac8bd7687e096a2d9db48a05b9a2a089b3b5bb2a031e38df4284666c25828ccf3c45f467d3df44c1bda068283aa14e34e953d97bac66d9f8b727e3bc7d6589a4635a7ef3f6974f85d2e647c7c415f3d8d38b88f1077bf9b89f04da0f7e2944bb94d70fdc0d94940951a44130b49be5b1f30a92b50ef6ed266c9a2aa19ead1ede3bf16341fa5868fd7fa21dbf1b761966090fe73e4198f0f14f3aab95a8ef53199838f5dc645e6e72239f76d2c7775a3cfd12e3ccf9cb7d9535471885572aaf42be92033914dbbca97976fd4a23200727368506d7119413b80aeb52ef20538d0a647d59d6e751cbd0e781fdb2498e490b85f3b47c03d694bc8ca09a75e57676247117a10be50dd31cc49d4a36b5bdd82fdf070e3bd93ad4daf9b6b6bc90f8c70439cd544", + "d26ed7487e7fd8cae8023ca37a550548367a1b55162b31741dd20896d942f5eb4d81f47aacf47e668c7d1ff2a943bbf23c21ee", + "2d110b2ba30793739fcbd0ee3cd15cc3d24332d29dd35f047b54a779004f05cd9639b0d5292007557efd08ff4702f6274367afe241ddcf82a9472a3f58d0bf73803007dedb4c4533b653cec90ecd6d4d27364e4f67f1aa745c986d322cf0cad863ecb248cf8fbadedd655fa47a282fe6d13a892e75f6e031632bc11d61909705edc2d3ca256c38f0063cf8992d060d71d5d2d2f9b22ac066e2bd7e2842822127a6fe62cd9e10e2dba00d69c20c4e331c507cfbc5cd903fcbdf11828aefb4b620b8d1518e77efe86493b9e6fef0c05b446e100c64a3de60c29cc156c399d55b83ba29b613cec40cabe48404a5bffd478105fd87bd92f02a8441c26bd04158", + "03e9fb7f5f3fec9c32b9e411afedc91ddaeca107b2dd1d5dbd19e04efd57ab40fc09c43521414f2b9b065b6cd273edaef3bd74" + }, + { /* i=4070 cDividendBits=1061 cDivisorBits=901 */ + "0284120175a252d2720b9d4510f7b413c181bac535260daa3f5220b916aeadcc6667c0fe542d3ee156451976f463b862fd2749e725f63a02fbbc3727458089385a66aa3c76586ab22e91c5afced9a8f0bd7cbd3515940fd87529d977ef4518d2d6cc27137d662a90c6c2c154e1488d0ada567d6af8354b3cd6624952bf2662cb4b09d40a2f", + "0972da0a215f2ee944275f00cf64d2f2810bc0e4842a3fdb68d8076562272ca90acbb9a08be387858bce129aa2985897ba32341b9c0895d4b4a4162e224086b039d13d8afc1e11e592e8ff03dbe7eacd19fb9fd6ff2977898c7734c19f4b94ca50792a1d43a3f5f1f32b0b67b96703da45", + "442a57f2e49ae78964eee3215acacedaf6f033e9", + "0953ae7a8db8b916ece28c272ec0511da7bad7a3db53d8d2141ac3f18f63e73b053c1f9cf91be9a9a692ebd3e433774c17152cdb4cdd717a8dd27cf32f06fe12651d764100c0e116f0bef2c81906fbdb5e488dc7cfc5e456dd72b699ff2536b9924b7346593b06e009fd2bc7e99426a262" + }, + { /* i=4071 cDividendBits=200 cDivisorBits=91 */ + "40b79c8b24011fec68321e05bbfdbc651475353c15ec84485e", + "04b849cd8878afc3b8f01a12", + "0db62de61d89cc5504eafc167dfb", + "f8b39d2855fb2266d3eeb8" + }, + { /* i=4072 cDividendBits=4091 cDivisorBits=210 */ + "06ca0068336e43e896167d069ce61fbab3c5b2e262762742ef4df02485ff4321c462ea972a315f570e6c265b19c305fdecfc14cdce931a7aa272ea976abecbbadf646985af22ad520b881ff4c375d6a0203fc049966038875bb8612c51ad7c7934a3bf24a4a0fc2c2f9f832425fd1c70d6d6043aa13d500180000fa8d45f6718189e92a69b8a47698b18242f954d98e7e851bcdaa89dd00f65519cb07a270afef559612917df56fea9eb96f0dad45ef75966a463d6ba4d47076213e9714604b8affd78ed3147517861b22526e002b263eb2a6880594bd8097742bd8684c9667d9c9206259b2e00c2b8cc816bf3c5acb03b326be1b8d6ba90393eec1c78f7b70ae3f31f4723c06440a42c35b21c02b3cd4bd971ca09ab03c0f282cff9356520a15f0bfdebd244a8e1f4512437897fcd6b92147683c6d5dd213048415c67c52addcf4f55a873bc5a14e684c2507f163d9926c96734cd5b3c76ebb17ff462034f8e01e13e3ae8cc587dc239dadde05b54b199a48843a6c468f0b092594c090a15d9d286a61670c60ebd66435345be869104ba4c17c1fe590cdb564a0cbc6b8f68d830c3c70ce39652d0b5f49fe5165cf85b807f560853faa411e0116dea72d100f919d984fa24217786012ffe261355cfefe909ea78adc80b2002d640536a8841aad0c06e9fd345cc797db4549875f01be67859c83c40b6998fe092aaa9529a6cc7", + "021391b42ffe3361753a17a2fcc61ef21544423097e98aa340dd58", + "0345026b5d0c4b68db1f80eee4f88051d34e65895380ec6f3355ce6c77ac9be859c884a920ed05b51aa9e411ce63b69f187a5be729534d101da2a27d749739102a60ed08487e29c445aecb65bb8be4cc8617124583365866d960a8d1707f2584219f788cec8a81ff397742664adb27e30cd20cf6d39af4a9f01e21f46c4b9a36a46fb59b1bf4e33c976067772446f38a447bf9c05af2b6dc053a22fd621f2146e99ff5216fc5501c9065c81d61e2386394a1206fa4029fb66b5f41a033b1e69216c77767ff7a2ad7c5de96ae5ceb16d4c0bf422c77d2c21424b963b9b8c55a215fb816d9d90baa492e96532e0c7def6171e1293da9aa71aa416d29042ed972a4725441378c77eaaa53f6f03f21ff95f5688e81a39f823a1ef8e2c275932d9f462e92aa4dd1e8314ab7970601d789a9d2bb3dc648d52c4f6c00da2b0c55225936d08a9b6338c998596fcedf94230cf4dfbd35abc01b7a90631fd6e3b6ed0efcd2fcd8236290da17d6e8a06d21b55046d8379c799c5a5e05568330d8fad8b1a33279f7f2e8560f853d93b470093fc8ab8d4a2886825476b9f3cac2d53201a6e267a2b9b65fa83ece45f77860b149b537f8661cfd242cb53329de5b9d6a5e3413f86d2a21e1f78d425a8b91498d7acfb3cdbda2670bb9e5a74a65c7c4a5d2bbfac184c2cbc03860", + "97cc8786ca7616e4fac3be4d76eb0778db685c74c61b1fdc2bc7" + }, + { /* i=4073 cDividendBits=2423 cDivisorBits=381 */ + "65c144ed99619599fd2144a269132d0860bf1fa8abb7f84424d28992b6171cd76bf2781efda77bcfef23c800f0786f9c61658601d5a8d241819887365242f808d6748815f7d4b9fc297782b6a9d4e53eede8127aa0d5c47cabcb89b25c76c3245bb00b99470ac9329a252974438cbf05cd048dfdb11315b80accba46e6dd7e4d840394405bd349b3f1bcf9123a76a3cf01f18c68f59899fec854bfed61609731f715073d0c2720a00a3a85c8bcb3cf6c4ca0815f482a00272b86d89170f74905357c37276553250a36d6cc3675987df21d567dee4870fe0fce51401346cf7d2d40dc0dae97c4f919d4a8928849a9e0a03dfb00eed2ec984074b4dd47f51b9c2ff3aaa265adca5f89bd937b0f2dcbaf1a74e62b1accb517d441b256f89b81bb0046e6f3549374aa9822e313ea28c800", + "07aa773017159c57a23c0deeaa7065436db465e315b377dab73baf40c96f6d614a686618de8d2fe407ec6c5899f9ccae", + "0d461434b252bdfc61f2f56f7338035a7d1ca32ed8ff2a3052134ee059c1dcad7673153aaeb7fdaf7bd4b1bd30e5c251047a41412a649dbcb662e0ea33cc37ed68a77af552e26d1ae27bebb45e7206ddf6b74a3caa00309e5f39f6fce4c29b0bb8d008423eb145cb1197f7e7c4f2233b6e0343c5de18fc84a2241055e46906425c38ebb1c4dc440efce7b538274fc6b026df1d68a08abbb483fbd9dae89e128f8a27feb22991663b5c4e62a9810a02d6bd320ace258571075e0bac91675215e5907cee56a147e1abfbe9ba7f4fa902172c3864658e246071e8a6d72f1377cb5a96141395571fc895cb9ce4445fc84ddd1e849ac07e81ec583e86da270dfae378", + "05d6f8c55d8ec4a558ca7f60b36ff2519691429312efcc3adc4eed794ef949f997def5a4c4a73f9c7a77212a84a68c70" + }, + { /* i=4074 cDividendBits=3425 cDivisorBits=939 */ + "a820c8604ff86c6eabe9e901b61941cf0e78d0dfc306edcedad5785f840ec890f2a0e68721368f4db0253e2fef0a48249b9a86ce7405fb7e036149565add5958502b5c36237bbdb7abb8af69241ab71ee283374a23b88653306a25bf3b3341fe4a07a6cba7efa73df0db5185885c32e23202b8bae98e613c631cf69320b10580050249f96065def91482edbaffed61b89f4ccc94fe7b7c950f854c8a203e2c44e826a941132445b25fc5d46c5a371baa6952eea413eb9ceccc46df2ff5c31127de9275ed24c6068822e81b4ea1fd7b301cad8fedb86bb4b30862efe40d3c6ac47f86402cee9f5c3b467912278896ac6b773cb7c1dd47fb473716ec31c75ad5ceda1e45bdbcd78a92d487d054ad5c8d6956b1192c9e2c218ac3ccff8ba20de9da2b286fb7be9eac59cd33762d3563fd0c8937ef82b1c7630a48b8388dbe0a022ef950cfc4ba26e0326fb7ab984b81162a92c70bc2608499cefc2acbea24ad6c6bb28c3565609d42972c569d38be2dd0b6429fc4b8f546e70f3a4272aa6190e16a35952a788cd7db7ed49f5b773b98bb59a02ceafd99181c8446d7fc624ca5039bef08aa7c6262550900f6fcb2", + "02f084a77db2918ff83734e0b0f5dcbf2f31e506899a49504d238273c9177341213df136910b78a7b8f45873aa9b4be6fb477f7f780013ca061dfa036c6aa73fc32c731e7d7e6d3f87cad20b31d51c488af958ac5bdaa33697f7adb69a9a75ba9a51f6d41e22187cc11f5a2e34f2e43a66048ae3b3f8", + "393217884ffe191d0edb6a05921541d55db484958373ab98b324b5df50a9a18e1aff0a307a84a4540c5f901f9270fc7761565248b9354204881c19ac5b8b50c9fa535ea7f378b358556efde861e0586a1e8abc0e96200ba92dbf791c4ac8f9299c6172955aa8ff46ed8600f1438099bde992fbf79f1df77d458fae60ff181142143fcb258ca04b6d3dff098ea949eca9f4ccca12d23981a77978e20921882ee3a5ccf3ef2ac0facd23d82c96876f840a375c46ebaefd81f7456640016c322d3ebffab1c930db8dbe1091943596d955f1786895f5dc9f71e7a59735ac0666f0bca70a15a17636aeafe71e19ad8425cfb992c4fe0eebae1db5197fe7f70dd55513e856206be3c97aaf3f3d0d6e2e86848a8e6409abe2f5304e0d9fad278115bee035308f960c72686da519812227a74e57aa2e2aa6e6fc99", + "0208e7598c4a6514c3e6f3883ee00d5629aaf8a41408a09c95967b8c729c9a6ad741f735f6b940f5b4d6f9621e138ed1397d874a844b164c167aba51cc4ba6bb3c80cfe054fbb49a4ee869e26256d78c68489797a8e197bda036ff9c6c24e9d533698699a23c9fbda8650a64396766885da358e84d7a" + }, + { /* i=4075 cDividendBits=3161 cDivisorBits=2984 */ + "01e22f1556c0f62af286325b81fa5f4af3d531717f56ec04f60cb850ecebbe752a4c6724c72a1678cf1938b9b91aa8d4310b738bb6be8637d47fdb2c46577617d29c97877c34e9671f889571a3f7046a84f1968ca241d2fae58a93cc7b0b897a5a5e956450076f272866296c82b24da0369c528b45b6c5f8204eebee5a45bab738182f2d8aa5993c905f896d79170ec3256e15fa1cb4e7655e359eb69545fd66ac9fec532f16318066117a81f8ddd1fddfe96ce5d24e4cec571c8032f98c8e051a1ee60039e795c1bd6f2db2ee00e8ba585985d1fe65653589ca74990cdd84c7364f5fbe76c04f2bddcb07cecbfc0e1374d02a8d79646fabd637afa2bc3037050ca06595a93854ea5ada62144f65dbc68a2bbada6d5b2e6fc66c9d88570fbbd0b81d212358b519b915c9ea7dd552311ddf1a3c0ec197282bda4458dbde5d68d1e7415ecd25b11d1e4a45ef5c96305749d955491fc02dacec773d65ae51a14f324946627317e8e2f6257ebd03f29bb60eac17bd5a3a79b0ac0518f5d2dce6f4b338475a2c0fd0122a99e0f382", + "8397c3ac34dfe6bc7d2f5e86be286993a13a5ce78b51209e9d28df188fb2667d99e20b2646a3125b358abd2da292187c899fc193833dd8b6f60bd0d8ce99926384c96d7f3e32b27e97e42aeb0e5a76c672e66e0a79336d9bebd9cb3b9a42beb13a47fedda744cff7dd40506f85220a2b28c20a9104b7dce81dd269fc52cf93fc58e924b4bb7cf97eaa53a15025217d9403364039f27d85d633f1ae2171280166efafef389d3dd94f64af86b9276dbd45b9f95992e12876c8078b902f5c6bbc75bb5f31fabab7c74b5a3c34085d8a5d1b7e85a8a1301215f63a58f009331efd1be378c22f10631ab236f0cf43047b2f7cc7710efaba346fd5cabe14280d01ad67ad499d66ffd63b075c57c48a0c9ddacc9752a38807e4137b06896fa3677325ac8f4a2c9b090c0656debdc6af2e8787aec912d14357882f52499ce1db12ae7ba30ecf38e1dbfeb93c185ad7291569aae5796c6629eb240a0c0e0e9abe49e2734bc8e181154b8e54365fbcbc34e45be1f67b655fc7ef", + "03aa09bebd364745d61ec37c582f773dec772252b83261", + "189fc202453a9afadc3a494455c7f542efcc4f34060eedf2bc888bb91745f9dfad24a093d5e2b84d96b0d2bf1e81182ba90f22e28772f307d69cacf8b22bd268b99907bbb2f91b10410c5771e4e9ad7b13884a8dca7e904f1e797df8e52876f748fc0a03848a358525520db4121d8a0ef202793adf85d32c651fcf26c0295e83a1fa79f8ce1c09b86c3a025413a41d22412c00dd289c24ee08344f1d74f7494f5afca5e03548b4205888640e995a4eb26080a18bca64015f2d90a29b19a5333977224e96f57445f171e4d83c868aee9df0a4bc5cbd710d2dbd438632d6d14a104f06f41542fd44b0ae050010d866c4d160eee6e6d98991b18e046b31574a8083dd3e571d8f6e8872d9aae4fa1707905af0c0dc42e1f00902b327fb4d28f3f81aaae4af414ecfa3aedcbca46e93ed9eb3dcc342221e6d9f254c291e893885bc6a3e714a98407878a6b420b946736ef8b00fb968f063be74b44558bca0fd05265f82b5931eb353203879b73019ca2de761fc39c183f3" + }, + { /* i=4076 cDividendBits=1111 cDivisorBits=225 */ + "0d860aa4c9e3d404edef5d03c0a286d3d8e7e96a09570ad7ce878d6049d9279431ab5c644291add0e4989967f6671ec054e441cac28df27811934f5131bf9b04d8a054ed7c93a45facb2e431b87f7dbe3d923aaf3686b10be51d02044a9a12ac2f0c65b11a40b96972e8b74123bbc0a5095cda2d115f07a6c252870f1fda9edcb6d55af351d6d4d4af789c", + "adccfe043e46b9d5a7a7c136fae88bda29d931306fbe3e6fafb8008f", + "13eb6af51ef2583d23ba5ce3e73c00c0d6a25a21371eb74fe490dcea8a54028acebcf058ef79234d2b2fa45bb308860a1c4d9c0251ad5f7bf2f0337fd2b8e285f944e2527370e3c090500439d4dd78b2497407f7e58053def5814206e7333d692ae458c0f03d9bab23c21b5a8676f3", + "4f78d7eb41bdadf65e5afe0167cd5431259ce049ad57003aa7eb06df" + }, + { /* i=4077 cDividendBits=3940 cDivisorBits=2975 */ + "0131df87d8dac300a3b00ef0c7fb5f6e6af510309ea874df1ab2d257b641eb52c8856a3d54caf4b9a910f08c43878f689f42ba17f0a208a551ab31db342b4dbdd5730ed5017d1970571587441ac1f801f41dd03758091052bfa2bec6e222c6c74259de3a236cb2907aad7ebf895ea7aa7a346e1477003c6554936a0fde7687b1243406b0c38ac9af4bdb3a72bd4b7b77bdf090322dfeb1247d28106ca3b9f899c57b430188b9c30c6a786f24f012c22de3e697bd790fe739177c2384bb9e4d15aadc75aee82b8cd5dc0b698eabb8ccaca33ecd8b0841b8716211f6b012807204e1edf8b9ab9a150bbe72961042841606ab30b2797dbc5a97274565df88c398f6402f42660c25848b78157941955fc38c6638c6f352b0ffbcf5ef22e08b7160c078641f29770ceb12258277cddcc835ef429d4233996d54ec23eae160520b2c2751470e1facdd5c2df915935e338423e74dd45e19dc32af9f9462087d5a4d5139239664a90aa671dec0818fb293760ec8ddbe2bb5c089d6353244848b3c8f63a52d918737c6e051aa6dc6d5e8b15b9fecf1d1ccafc751968bc6788e117256fccbaf0d7ae639e3cb58a73e4610a18d86c29041c756e44a00e4f8c7afb97cf85e7321836ef663d174c6197dd67d92c092fc9f81fcd8af89fed98feb747f6e56737135a776138d849643a97dc98ee8", + "47e11588e4ff9de1442a58b18b655084d5fb8a87d144c29d6bd51fbfc3d704bb8fda9fbc7980c27784bb4325afc49e41ac844f60f684fc68d4c684d1a614bee677b5808446751a924d5d181a7e889233bdbcaef92c8d2b8a6f5ccc3b7fe8ba08711216095ffb714aae8286fcfcdca38e134d527bdd8bfb0e3eb2841fada478e285456dba027b31b9ff2e2bdd4fe0512d464dd17ceb3e39639a5a1053ff1b146a3862b04d9ca37a5bb96360ce61309ec727c15f29065c85370d2d82e02c27db840624f5a4e71d7e4b1d0e5d2f92776e61852f80ad7621a7b6744cd9ac18fc74a9ca66e89492d5202f2ecab2253b3fced8e2a9d7c050aca68a00a98761d0a84e97d77ba8ef087dea44c4c287b40d763e5e9117cd33ebcaa7751badf4d398fe33a22a7e3c6676d2963d6d813da9a7e072f1114a9d08a016a47c7541a15f9cd5a9aa8ae2cfb2f90386ff2a319e2de57d71674ad5ccf107aefbe50fbfc429e55d6aa0aa13352fba94a06d0d1064c856980b28d3c40ce1", + "0441605152b6fb2dd9360f7910ca849a35f71c6a221af3e00879c2a4dc62ac66da5e1ce05f6ea984e747b34bfc50a20dbd1a738b23aed806c35917a5e66a8c3107f6535e0f34c8606c90e62dc6165bffb7ab487885283c5636b2f0d4ebaf5391f60b477d7d9ebb3c689524c0b40bb22028997928f9f019d3b3", + "124eb7dbcf3148500acfb5ed0206846f34094fbd41f201c08411d137ac3152b035cc593a4ab4f5c9ba6ca44de6bc2a6e3c721e3f63040f319eacd6138e29382e644961e49fe64cbcf417a5712f67709c0785fd121ebbd3ef5d1cf717b203b53981375ccef8ac1043ef737be0360d78065a15f8772154ed68900155fce2b5ef2df9e94ea71e3ebba8eb84cd16c2e537d569cd39bf17b2f7ba562d22ff270fdd124bb46bb1c3c477d3200694047657567f528b0a1de55e35c195b681d2b3f31bc5a2022a964aa4057e652120762f840d68a575cca3f1d227f6ea6dfbbd213ed26c12f4445e8e23360d82802d5842ae1286b8dbd1a83d80f33cd3a4613f756267b3cdf3ab9ce036ba56f5bf4e11ee74fb6a2d36a247916308a668422ceaa9d4da2606dd840f213a8987b6f1d74dc16c8538609a0884897eed5d613238778c26af080a741e9e0d0a56a70f771c461a6193a68c02aca6c592be39e38fc8fc49ebd5463f2881f1157b4b427901da791e82a681a31e1a95" + }, + { /* i=4078 cDividendBits=3491 cDivisorBits=2917 */ + "013a07290ab63b84450dd157e2cd3e288f1727c339e993e70d92546989f74b1bdef896190b83c938ac0ea1307b7af5aec441475677028fdca0270741e77385621563306ee7a2e631b4a99c9c0d05a97f8b0001e3b96914b4ca797b72fab98b8530bdbabf4d9d871a9d6fa19a6cdd23de970216b25f65ae632f18c808f1610570c830809e94da708739ca5a1362137f527806c0c82544230eea06482ea0077da3ee0f3a7c57d113ef4be2c598679dd8780c9d4ddc6c82ca3cad749c290c55b79f203dc16edab386baddc0adc1dacf5a7f4937d50627befc1bea26de4845359d672169a8e09fc2911e2ab3b0e409ef122e64b218331c7487544fba38912541b715dc7f92977e5757b6517b6b3050c6c1e256383303e86f524bca54e9599880786a0d7970636e87f8bb562f74364c01d430dd6a5f3a0cc664a7b840a4d2b494ee14f818c2707693a7e98db7ab5c27cdd5c3e1efc17391d5938168c85759e3b111703cfd712f288a01048bb51119ecc1e9fcd3405a5a48f1b1257494c015b20345495fcd6b3bca79e65e1dc99ce8083917d93c5a60c77ec5363ed1e43b62db6a5f711ce652aa157580fc40d176ddc14e8943c42be03b73", + "04e8b176d0da0b2df568c211a5914f419f104f765856bb55e8d67a20e727a8d6096f7a7d58fa69c6faa7e6bb9649988fe7e1a6b3daec69761e7c36e6c9b2e00972000e5b033f897773a42a5e285cf56c352de3c072491393d3ea60ac595121cfe0db81c3766bca5b419401fb016c6b260f1a7b0430c1e58a64ee1463909ceaef3413fbebe6d49dec9dbabe6f13f5de8f8ed326b3de3a47dfcd372d9b69bc843dbf173c5089a93c6056a353ce9456e5f6eaf80dfd614b6774c35df345b7cd1e51f3ec44454ba1436c70a6a898d71b0cd7eec00406b57e1b5b963e2e56ab623aebd1176c59263a416172a3f52d553e5c92b2c4cd9d78cb31b0033b6152da89bb4bd078ee11efacf69a8465191e1288da4fa3683c4c5164ad5a3cc45ef5f7d6e07b073652bad0e0c8bf240ae68df45261037179e0d3f820310b50830dbcef0efe43a3ff382b38c713a1b682c33bb25320ecda28b0222caf9b7baf51e9a8c7483b6c8b49f48309ba5115dcc0492ff7", + "3ff86bbd0cbeeac77e1b38e3c0e911826f4dca0458be8e3177c071f3cc94277315358d5a15c842b60ca15945accd78b23efa7ff6ff67ef447a0ff97bbb28b68c17573be7fc641db9", + "04ac724a4918f820b6c5f45912ead67ec85eb8fd4f21cf298d0874aae4194b0779b2ca75ea612c264ddf7f7f2d95b06793282d4ab9472773fbb2d7a93c51ead90cc7e4124ff57463437f44ca3658be917100d1290f04cd61a43716fc5a13e3d834936128be50d5c14a5043ad2453956b1b6d28ecaa2ca6e5d8ba888789a06a0dd146208f55f6792395ad19c54a6b3223c6fa35d82a1a13da5c400cb3a4b4fc7bb47e93bc2375943734e69817b0d6b972a784098f2e60077b1f10bc4fe29cc3c165b11794720e9eb8a62eee4c67d80625f788ace88d9ae2578e8d9311e722bbfe263cfab7fee3348cbc80c039e77b90b318b79e9c9a03077927ff5aebeac87684675fc9a552ab0ef6de7e66355c6b33a2d40dc4acf5a56219ece10aef3fc6951de8d84a2aec9ef5cd4bf732ab1d1297e850263f95f0fa536fc0c01feba2e7381ff13ca257c7a56436dc150737ae2411ed013ef131b73a8bc2d665e4a3f6390c67e6bb7f1ca7c4ea18c60c1196f4" + }, + { /* i=4079 cDividendBits=1077 cDivisorBits=154 */ + "0fd4a785a19b693fd6344f61002c0acbfebb545212dd1b80ee96c8e8f8074fb20742064e81f6996ad31594b1589b2f50c7ca50d4d804602acf01358cc69e5a214561c58467beff5bdbb4097feec95d86f153311ba709768003af0d827518d3d7d004f51d4496ba499d351bd121716f685ceadef6b305ef2b1173ff4cd0a99b6a8833b225115032", + "016c746a1de04351236a7e9233121900e055f8fd", + "0b1ea981fd668c247287aa6ae8f0ae0b2bcc9ce8c797fbfbea8b64359ae2409ae8dcd06474d2f325867fc6f8453d043f525de34a796a8e5c0624043e4b0e8a628adad714a20c071a7754e172774e16ed7bc40e5872e2cda7fa3f381136e284bb753d2a29dfeb7f11bf1aaeee97e7a2ab174d7edf", + "1a221f42f505d6234ea03a43c25f4aca87e5cf" + }, + { /* i=4080 cDividendBits=753 cDivisorBits=329 */ + "0177808df613a5e31655c7f5bbd6d1c4efe9661c4a21d1952c6007f776d68421a2a01243b058477f4a1d553ad510bbc83a122645d7f2c9103ecc1afeeed79f54e7d9de4145b58497e1828473249631c942e9d1b33760dfb54abde1ca804852", + "01cc29a4bc0c7bf3404b4f50a7f4a0fd0a456bc86609ea1dd0c3fbb75bd371e91d1629a28d5c809174a7", + "d0e6b7fa138ad7c464e5d048058a0858a3008243cb699d6940317a903793b54b888bea749bbeb776cc7df82123164f33fd1779b342", + "01235e90c403804218df97f3e710754615b7ad58733cab753c1ccc1edf2f9d7450bdccbe39dccc807044" + }, + { /* i=4081 cDividendBits=2479 cDivisorBits=1017 */ + "0c2fb085aa6a5df2b7adbafbaf27dbe878b5d887ea3e113a7dc20b2af726d0302ff0ba6847635914bb04496fe07f08244205bc7c59e2dda869553ecd9907c76c9b80cd8cff5c328bbf609e9898e55f88afb683c5e11b847c2166a44319daf7f27020bd099d66d80e4f697149cb9af50481701f97c6ca0c8975b1b0beed9caac06dc02c2ec7079537b4d6fbe12598fee6228bae9069a65d4de86620dfb7c07173a753f334e7ddc57939194b4c935ee7ab145c4c1df0f9246eb71fa1850fa80faa64431f2613726cce8723e1bd959b5bab67677abc18822681202c8c154df9b31c7a8ca9272e043d1164c9c991aee32edd08bfea4cfacbcb5d3df4388dfd48552f205a0fb01651cf54f212242b05829466f0b402c48d5552542d6546eb869e0958c4dce8319240064c3f86b33628fd547ac6eef7fa9b6b", + "3a4865bcf49df2904c690f31beac3cd4f86ec15c58e2313dea87abce4eb7a3db8ae205bb2b99b923935727622eb846cd6623c1412cf5ccb513b2893633b3e888f04321eb96902308bad527cf89d032f94baa57f7125cdf065664077e361694e72d00eee677e7bde4b388a7a4a8bf0efde89f6123a450a06c4487df45036c06", + "3586d9b3c14984cf1ea72404ad0859bdc75c0bd3da773b2f4ab889f6b53a1b67d18aeac21b90ea6e2456f6ad17ef34fec21397f6812cadb2ce68667b6595172fa9432f7000f4400f48bdfad04ccedf3f4bda90ca53e4585d1542cb5a6405cfe77d7b12da7acb9ad3bb348e7462c6fcd63eb8593d12280a62abdf93aa89c1d56e24a61bcca928932b41346223531b634c2e42ecc5ad4c6b5da328879cae642a2a88d4d5cbabf85157e5dc3d0df39a0b74e01a711e26ca31", + "08bf76b895282e2f77533cdfd207f014b81666975ddb262f0a6b0a303235d26b55d2a4ef575ffa772a7a594a13cd1319b9e03d9fc45b8b05169b6f7ef1e9b10ba80d6ab8c7d725b9bb1e0703bea9ea4dd34c4010448454f49e3877f5f7eea3807e45f092916724649f1060b6cc01dced23265bc82233ff2630a8ed52323245" + }, + { /* i=4082 cDividendBits=1734 cDivisorBits=935 */ + "3362f2d5452458778e069df5517df3e81fe4be63366a5c0ca5448d608428e2c13832e9754a11a6fbc16ebf57b323a92a391ebb7aee7fb84defd77eb636e045496f5382730d46555bfb8feaa1a0cfa9fa08cd75ba74fc79ba983e2c8d1fca29118ec3edba3dd5747025ee362308c5d0b0f2840c4c280d75f78cee2105d6e8d9baeaedaf8dd7cb96f91a5cbe7dd19b33ca3c5edacf5ffe4e6d69193df45c18b70dcd796f174f8c6447e0b21083b76e7c6baab1b540c1d2cb2559173906021e6c9fbb9a329f9d9230918c25954b8998acdaadccc9bec6ce51da77", + "38a54cafa44fb851d4052e1006d8438dc9648e1a9769ab87514ff6e3cd6b16340f408f7c14cc31e7572ce24955dad2a37f430e348698c99bd20a3b6f2d56cfcf303d69d30ab1568e900e75650fcfef53e464e30be07a9f316b7c95940a3d0e6adbf454b09dffbba45cc6da6eea73b5e5b87414e680", + "e83b690754e14eb1bf2d460c97e4e93a8fdac5ea56fb0010f65890fb4bd759fd7f51464596604b4075d468dbe826af03df2e7d3c7c575f794075b051ec0c6ffcdb17001e2433a508e65964944635bed1e7c0cec3fe9c7ee9026f3795d73e8f9b0f0f32dd", + "037d895862b2954fb759f9d55022e8fbbd23a6ad4f6c95f78a82ddbf952d769ef347e7e29c8ba989762115e41d49cbd4e46a507e29713c0c7ee345cc7b7ccde181838da8840158a67db67741d4f36d723d98072a1c81ce6d810d9ec4d71e300c381251df569ba74e13d21f6ce4d4df51a381c1ddf7" + }, + { /* i=4083 cDividendBits=2309 cDivisorBits=2025 */ + "100773b4e186b90e31bb5394a003a34587292a03fca56898b024b5d7118a97be925928eebf3fe170c4a4df97d18c87f861f3f4a76b883f38469ffbf3d7cb4421e1cfe4cb07465278e8e54024e61dccd2e780d7d12148fbfea93a4f6a82f5354ff1ebd32a5e2d13cfdabd82fd2cdffb19ce49c5cea8f664e4e98e05a7e624874d282e6af54a92ce7e7394b0fc419df45d90abcc3d9289ed878bf1bab9035efdd93c4bab8d9ce31e7ddd6d29a3d4b85770e2f933b7278802eccc55a631318b277edd081c6463af2e77cac4c1f1c804f633bcf76c5479b5041bf97f6b55e93f746e978c1af07515fef3cf28f5ccb28048c28f026eb1be12ee8be5768e5df9bbe51967687eb78e9fb60355725ab5c6a7754ccdaf5e1352477855f77d4e78e1b8855ee2", + "012fc246d372a6649e1e021180d73cb760468bae70bca0c11e83c33a7930e5d7d18da556d4ec9c20ad281ef7c6759aa57c66f4df8f9c9a03a38175ded29b83539ec0dad4d4b221b36b5b1c288a8f47fe68502caecaaf1fb91728d67523d25af39944e4e649d8d47ab2430002732618c6af80bf71e86b14c8d2c2b74b1f70f0da18d9fc11b014d6ead9b96540a626fa7d1d2dea1e0484470e4cdb268ba3d9c8df24b1c3bda863f551b264fa2e02daccc10d8462534937d495d8eed107349be5ef67f15f4713e66c47922e5239f3134305079a88bebf2bd5ca5fc2081db05407ab8ddb6b84b697169ccc26b69a6af2077e7ecec5994aead3089aee7d7c6459", + "0d824804aa8dfa30519a464531be585c3f048972e0117fde96217fa794fb72d367eb7153", + "acb63b70943cad9ddc308647483c5819377159787a262b0531d2d280c88885b3ad6577fc75f4be68c507d071a26892317c34940496da51c76df998460c291224dc193ed0e8948432858a5f1850cc8ebbc82e1697f5183de1d3fce77c3c5f388bc6b03679f1a8b1876313f8fb4a42f5a5fcc05efa271ff9f6a3427ded1ba1de63c9ece9f87a39d147244c8a1ebcc837be54ebe8d6716628fc78c1f973841236dd794d1a51e6594da60ce448e2fa8ea486314af0d389d986c9cd606bef0918e4f7fdbea771f345e13192c1c6b66f2a38424e5c3e2edd3c3bfd6f1a1d46e3cec46372112c516dd20cd3aaffc34a52c3cfcdd4175dbef66e3d634034328d07" + }, + { /* i=4084 cDividendBits=809 cDivisorBits=121 */ + "01978ce3ad9833b9f586a5c8a078ba8cdd7e651b1365ddc5b234c4b08cd6204d20f0eb6b99e7f22bd40fcd88eeafb45198d0afd13b5c60204bc818e8ab3abbce984b27d6db290ad344feb1df3dd2f4ce98a5ad071673868e901401f7b18a7d3744df0755ce65", + "0171687dd991aa2482144cc3bfc0f875", + "011a6ebb366aeb9a0f4ad2c790f300b0e665e1b902abbcc1f0cf78712a190eb6f2f6f82dad4446c4b82ef7a59a5f91d474836316f66e028cabd9848d2509f04c7a2bebe69939d4854b85e0a90d2d245fc8590837d879d6", + "db2d7167deb7b9b9c9e2bfc0decf97" + }, + { /* i=4085 cDividendBits=641 cDivisorBits=357 */ + "01d6c383efdd01f028a41fd8ebb1316016dab92d313b19b6619acb56dc54e9766bc40fea5db6208458626c6c74d1ef434475d4da5de7c88778f8a4d3ce126680577dae90d8ca961d00e1ff898d59fc6d83", + "0664cbc3cef0383e1ba6c21d4cab3398204c70b6b6721a06b886f8d603d9803dd18a06bcbd6d5089f54ae3a3ab", + "49a100c646081481b3a3304685e9d6b8c2b3ddd0c5447af25ade63dc5fff0a7b6b3a97ab", + "0526298f50930aa489d724669fd82ec837d42cde1b95a376a8313cfa70cc5021ff21bb28dd37da456380a63d4a" + }, + { /* i=4086 cDividendBits=367 cDivisorBits=361 */ + "2efb5d1f153025b2a9de359e6e47c2d265efe472fc8a8913f8e0ac56ab134c70be74faa65538dd2117c8e5b0d129", + "01b74f28dcdfa687d681e9b33fc9128a1a4d18a577aac749a33a01842a14e36a36e03e9d61a01a05384f862c8fec", + "1b", + "a603cfc999955f0a2a8fb6b412ce419fce4aff5d87844fc1c283663adf503cf4ce600d09561e942765befda345" + }, + { /* i=4087 cDividendBits=1449 cDivisorBits=933 */ + "55d785477ea2b95b8cf55fa29f68780d09ab73cdda5022eb7c7b8d605382bd15c623c668b9a5595dcfc3cf209eb5af7b56840a42e258f0301b36d3f1e8c08b78047d805a9d4b3eb731b9289a7d3274c2de47e12afb0fa0505df8b5a4019882a9f0bec4d828a7fb38a66e229f5a7580b9b29ad5af6c93277eb95c65a82ad022176dbb93bd5c4bc30fa94da552587a73e88f819a53578b70866f52802ff49a8b5dbcaa8abd20afd2a49950aa341b1fe73976133b03b7", + "0792b070d2821aa90f3b7e6b236fe16e69bedd115778a988e9970fc4aac08e6a158222a701e77dfa74fe38a9edf261c5ab854fa005418c61f149587dc4e7a3dd9d6342a32bbd6a96e38491305c127c2ec31755e5d848c333bac8e262a95a6176c4329476cb1fc6ac5c9873a813c61444ccc71c5026", + "0b55d2ba7c2db91e611039b9617b29f3775d1705247f6446cbfae90f262dad53edb0209169e425f93de666ca209930864a134ad04e2bfe430110e114f82224e3d9", + "05de62f8bd8131b6ab6a73cdfc306746f637db2eb1de414ca1e13ee4a2ef95bcbe1e080fc90891e44a2fbd87340b03836181da54b67e704705130e11b6cce4848ae4f72428643b9645ac6e26268bb327f9d8a17d1306b597c2c8cd7d507ceaa0b9e917d14cf7f06f8d7046f9bd7562f3e2dfd16181" + }, + { /* i=4088 cDividendBits=3327 cDivisorBits=860 */ + "592355d29369e00143837f2ac762f2eb93809c1be9424900eb0bbdbf5f339c6625dca9b45ad8f86bf7433c8555de90a95c89f82d650e7be4c84ff7dce27739241ef70a71a4b9939d5da831b1b61f15553d012617fd2949340ca5d0c01f70c9c495ea96c297bbdba2fba22e192b11bb085523702fadece938199b77603c90cf1276717a5cf8d3869e38dcaa5fe588bb8b82699384662db84a7e674b948e21be7af8147c928635614e4d67f95a4fd7190c516118c229b4de2327f1b29f61696a18c1b39cf841221f9af3f89c6271b9c7928be61a213fbcd8205e807023269b2225afd8ffe0d67ded4a9ba8b232d369182d5cf095f307dd7740d3ed01ce420d8b93b01461c9bff59c0470c04672b340ee45263dbb4af7fe1468cf598a20fe32ea306788339e2b8905cc7acfd27d77b7ecef707ed2a39a5acc7e7f8b51976953b8af8b0f83e3f88ec9dd0a30fd2acca4fab72e4890fc6020a2f18d63f5b10e264e7f5694c808b60614b0fc5d0e367675d45cbf7e841e5232e908e829ba4c774a660c0f8d8993ff9ee83dc667abf8918ec2531a79efe945423d022d213d7cf9209545", + "0c4518f9e47ed0e3e4b560db93ada0dc4384d17ef7a74b42bf6ca6788f11c1b04122c07431fd39884244be01e377e192d6ee586de4eedcc352419aeada61d8e7d384cdd2123896e4094c9d8a2d233464945f4a5a64cf5dd3534cdf2e49f977bbd39ba6300333163e5e29507e", + "0743c7a17e571d9cb9de04b9a2ccaa8101e9f98a65832e2065479e7fbe26b01c75b278a681af00682a1f2bd5d36422e7c285d02917fd5e0f9450d4eece7c38108705244ddda23f3d7de0c790c431e71f9485cdfd721023cb377aa183463089634b153fd5f6354d1cec16f41d20c172785ed66ad2bdb7d60900b0131bde35cf75cceeaacc11233ccb951e3a1f92cf69269af695accdd997b8e282955fb7c61cf80f3bbd9dbdfae7f2f5da6b77646753130164a26574da161d758cd2e64965d4faa844dec37423deddd862ff158bfef66cbc315a411702c3d315ad45e45c7e5bbd0d41e880a06cd687e5c1091d7b173016fcb592814752a45e19b8602395878440a661986a86d2a6dc71accffa8235963b5c552818f0b56559499b7a923113c39d07b463b7e33f34ea46406603d73cd69dc9a06ef50c", + "0138e49c7b025114e0cf53d6296b0834018a2d85839b59ca81dbc674bf9df4d69ba001f16aa41cfa75f135568f4bc77030ce2fc554ac747e16c12bdeb97709b847589173afb2f899a63a82bbab69fc54ce96c8906e1a7c3021b0b6b1a93258bec87c01e782aac175af04395d" + }, + { /* i=4089 cDividendBits=1539 cDivisorBits=1465 */ + "07d5167f4321d31237bf206785a8c698b592e82dc34e2a951bfdb0e3a9c050979e00d6ab98e85d9f1005366ea8830feca4db7b9f811805ab4541903665d01f3dfcbf1b8d37f842381a8884a4f5419d5e654a71b923bc1b969f087f74544318fde3d820d1dcdd8c6e9fb453caa799827a5210df67ea06b61b2fb73a84674faada657525b9218c9ead1bd4700c98d81c30feecf467d4ae65f35f033c843da31eb9d06f91716bc443e2e1037632d202a6416a5796a5ee251fce8dfe3439a536c56d80", + "01ff2f5f2b390bfe929a37d8c45f686f571f35920883da5f6fb6395328ff77b7e8273eaa817019a490bcebe48dc07383ce92ebc95003042dbed651aa90f620471c287675c138a69db3ec75680ea5a26c11f7c29cc4df1f90bf9def3546a7916a4612c0b2a4cbd7fcd6bcb5740c09d711a84f74e53326c80c6f4f53e901bf7e6b3a8e3c22410ded18803c9d7af1906ac9b1a6676c388ef68e1c4802887e3022ca280108995d97185aaa7deed16407a33e9fbb7e106494be3f", + "03ec2469d93f83af7eb3", + "251e698cf2c044b0991492e010cc6565405c5bd60374e8620b0bb7d6be3da51c08f7c5819a5af85ee98ac6a71e54bf78ce85b47b71578cbd886965da3d1052f807999dba12db364eb79c303a4c1028e32f0cbb67f2000682e64eea9773c429acae707a3fd0d5b185de992126d7454bec4c7e83ab269111a8e0529831725b97cf78b0dfaf1e81701d05a028426ef901b03451b155cee9fc32296664bfa2ebadade44e7fc07605cc70f0c4cd16ab7e56bbaceb2463106573" + }, + { /* i=4090 cDividendBits=2479 cDivisorBits=1747 */ + "31c87eb9460942064069bb4b596e6f751a1199a9c84fcc8836f3a15ad4ce764191cbe9f5bf35cff9f208fb4c34ec347a4423cdb90585cdf8015b4acdd89bc56e9c5914c1c34b37b0b7680892cd6caf521d867dc2162703efba0a6a8f58e0fe976e397c223715137cf4474e5d70e8af67ec463ef6dd4ba1309633ce53e8f92ad6ea90bcb6e9707756f265d83ed3a2bdc8acc6c5ff7cec2505dede35015d99370a1b417c27d6544c01a1ea74be5b35553b8c2da249d19c5f59a8af41a7ead20600da3431f91528babaf800fbf4f50588de62fb68cdc957f45372649ec3a0c3dbb4039e4d07ea5981b62f4bae5a932a7e4c2b53d059719d958ad90e75462721a01ab5f9cb5cbacea112d935099b6d5d9b5a14e3aa7e6e4dfec6539b894ead7ad8a5dca9d07521429a84d1d160c179e1f6715625bb0ad579", + "01e39b4d4c61f6cd8e02989b46bb610a2200713b9c89b4d1c1bab31e12c499a87156e43430fb0c478560c0f29b37a20a8e841556146ea5a7afb92bcba668a3d67098046ca05403002abfe8ca30344ff026354fa69cb49334ac4156ad0a63e54fefd46222fdb603d0b67412c8f6be26c9ebe91a4dbbec6dfe783756490c0c355eece437b4ad272b4c79fd0c7da4d32c4ccc2127b7862e091bfb3b4bca0c9b64f434943ee417c8c5dd00fe381f8f03af06528748b00b484469a96213fd70fe9fc2dfa815a5106b812b8c809b470d80c11ea16137c6883ec03ccb5571", + "1a5a5f6df3ba5ff8402dd777aea190906f9cf6ac934e0d88efd8dc3a1d45871663c73a599d9069d92077341511abc1f658cfa5beb62185d378de1eb8a4a22f1b625d56d32b2f2e181b10a7bfc8425528d090a646f901c9de2c4ffe7b", + "67ada5d26fb981375f33c54f66ec482a8d7ccc05fb3642375d4efa8d4927db7bd6d8e35df6bdbcdc5a7628cecad374bd194c733f4a327938435035c79ac4631b9d40f3c7655229428a6f992931e53caca7bc4b8b54e5fc6cc0855f624f8e0558dd17b7e9c878f8c0bc62d720e343ce69e424c7b5db12cad09eb90757a0840196b84cce32aa93a364888fd7ac1d86ed3263e9d7648546b9b37ceb6d2dcfe0998b9808eea1c75ffb90b6c149e7bef8ca0575e5568f575eac795f615460c45a6fe7613fa05cb495a555e8d5cc13ace03e8ebe096017ed09fcb3aa2e" + }, + { /* i=4091 cDividendBits=949 cDivisorBits=680 */ + "0fbb6e88d2756b2cdf53466eed442b8d9634a76d4b7950f346910340ea4e2a4ac2694d6cc7b952f66bceebce68d884e192fa892293416a65d46604762be0572501611765e793bc9974ca125a9fabe433cb57be4421c6f7356a0f4a6fd686dc193bfa9b0b9968792b2c1e1f4f48087e45379ccc0b0be933", + "38f0a5a52652c6c0f9c4213fa96aba91913bdcde104bcc8d29c3febd1f8e803adfa47b79d41412f8cb82bcdab583d1030b094f1e8d5d583282f2a20ab32083c782f98fb3859d1cf154c29fd40ee0ec6da14f54fd5b", + "46bb2a83360e4107cbe0c02076e3b696bb8fab9997ef0a5681f7df408458fc2915cb", + "04331d4372624f122e80a007ccdd6cf5a86e7fa5ec891bacae34b2f5a7eeac9e4355225b63f7944db52f8cfe733e91b58b71ae5b458464fc6907e5a35a8fe1a48e973f529d26834ee312e1de5c78371116024b8b0a" + }, + { /* i=4092 cDividendBits=3580 cDivisorBits=1366 */ + "02bb37d7b2a37daee184139e8eb52792e1e2a7acd5f4f1996455ecfa59232cdbb68796b92262044dcf8b22f56761b7116747e3e1920918dc10ab71c7e804977202416023264054af9a2317cde6c3b393c73ea67353b793f6f2ca7016a64d602883c147606a7ac7bc012605eeceb1cff7176ded21e79758ea9e2d8145ffeea1412a6f8d7b15566094983eac4c00a25ca732d6e3ca7f3593aa75db05eaaf3aadb179de85855781ffe9a8b0e1e2e1bb6d2182dfe516945f77d0d16aff311d15f11f8cae3a054ca3361e8280caccbff464bd033d5ecb3ca4a37475c3ba618bce3566a3f86439e7908f24b96cc8fbf1b3ed63f8800c6e8d9a548b71bf38e08815ef5baafcaa321b18aa1b5931dad63c72246c316c998d702939ff0dd0e2dae24442cfce426e2881d7431f32bf52e61a9e75da7e9eb1225760ba14e0aeaf5afa59af1971190bc16a639c1c87f62971f359e4caa070abb85e61cece9e1c3164f6f51aec452f61a27c2a1bc3ff6cdfe6659557c93cece3827906c172f974d9ff5214f44eaaedbf778aac290eeeb98e27be97aa5a0762b8653b5876377ca8e19b20b3cd4f13ad2c983e8f7148c912a772c2a4fe7be16cc9ead87c84c9061e886e7d1a7898", + "3fe27564feb31e209151e965e9ce15d6d1a6c8e50cd764dec9165ed6a26a6e57bc033ff02c5ea2b713e0efb6998cbe96b3e6446a58f0b76cc3be4d408ae02df89e60d1187b7e10bb6da7ade2ec2ba0f947771f5b863149232045840a5415eae5e430a8f7f0bc9d745ad7e9da076baa3fab0d8ee2f06a5bc3d1cd6436bfaa770f972baea0ba48719372df48325ae5053701b600b4f68cdfe9ae26a8892187fae279e7bd37bb9df35e9f4cf9", + "0af1ecb233cfddd65363140c506bd3f766761c82d145eea92fd3053c5b043ff03db65f8db015c7e8fc2baaceef8a0d9ad5347f5596e502fd24c4c75d4638a0e831ec2790005eb12346934e089903b437e8871cff54150f706d78cd5b2da1f1514e8d2d44148b2f94f81c1318f527ecfc15a95b44963d013d8e5f9d0b1681850b750df4895cacac49687d425051be26ba384e32d8efc8102396c9a76b4ad396798e30bbe239cb13ad8dcaf3360888caaf6915ffec321c127f9d13c1b0be03e185f2485481d9fc101d0340f5da793f7f94fa72abe8770159f474150688e612d8c48cb88de1cc4eaa43fd16235dee16d8828a0140b4b6cac0377ffb6ac99a93b8477b8cd7bef470ceb9449b911e9ab20865a7f6c86906", + "3b6a4f204f1f9fd8f1086fcf3e465b692437c87bcdc645187b2ebe3dc3950b9cb9efaded80e80859e9b6d715abdbaf11d5de0b1c9d0148f800c899ae61cb592f06527fad2bec8ad2104107ec5c0e343dc5b292833230a2155955d06f39569e05c376d5098a1f179a8e1439959962e1b34e5ab0b1539756bb2882164be1017ae03acdd31af6f068e707dac900f0a5cdad759495bbaefa5dc6b980fe7dcca1a52f3563c163cf8f10864489c2" + }, + { /* i=4093 cDividendBits=1081 cDivisorBits=472 */ + "0192db0fc1b0a554928906d81f5a82e0530c11e6978198f9fe19e168cc9e205b0ee5f359a311e545b8991e5e141eeb6ecd31d041a987bb46352384b42d99508a7f2cf8fdcc3fde74a8e431d8bfdce639ad385f8192be008041aabb3420540e2aeaacb4e9ff71660fc0fe91e1c80e09c756c5647ea89b59f67a2d68070290fab9a0f9297f13817cad", + "44c2e73c0af1d41a78a6da93cea969badd957fe1f7a871ceb9c3905e27461185df2f1c317b0058d0941e4f7fc39a063ea54bce756bfe74e0448bc0", + "05dbd73bdf59954631ce9eedf382358bdf6a05609e9d76457004849552c27c2bbe7ad621e81e05b90bb49d3fc705b4afba3696c80b56af154bc7586ffe93753b6514bcc2cff497a620ee3ac086", + "3be962c248fc3ce63c4c8f4441d272dcfea44c82cd741f2cd964ccf15fdee061a1b1fa9ca2ee6623e2bfe08198ee3505b9bda4f32fceaa1d50562d" + }, + { /* i=4094 cDividendBits=3491 cDivisorBits=1324 */ + "04f6191360de139608418d9b420f63782edbb9d82a5f67cc671616239cb940a496abc754ae1fda5507d13cce7901bbd1e3e057306562117ee43df3cddafbea74ed835f6f4b2a7322f648d65dece696c6bcbcc1c7f994240899c755b39c868cbb15172e9d4f997a5278929b7b02fe51e336a2508daf4f18d43c080c7d821cfbb5928031a08a1fcbe5c9c1221330afecf3df8d4a39c534db87e3361751db49178a6602d4f0dcd666e5b5cac679863638612d5fd02d696c8335da4286cbe10ace84eabd8be690bbc2b384828c2848a7575be48a9f206e287c7747ebddb4b4e178a5f16a787b39b11fbe5432ea23c8f5b611ba34fbd021f7d1b68ec6eb49a8856b636bb94f4012d9c2957f251bbde76c58ce59635b209aabbbf529624849439b480e1d7b69bd1dc3ce5e85007afb553c0081a503eff7379404ecce772dd0a8f63417559914f8f85ab57ff5622751b2f310c29b446641533d600e553f4024f2bc768851299026d5ba4b30d9ba61e6a9aff31dc4c1bbf6f8eea38bf572f3e47807a38984a1a6dd039007fefcf6abdf2b316f138f991e2aab96b904814e6fe63e5bd21d4d1dc1128bbbb2bc81a4542dcfa77a1ef5bda4185d", + "089ad5840f8f9269779ff90a632ebb58b9ebd17eea9a57278f01a46d07eb12b5ea54a253f28f78d0053b7935ad85f2068ddee6f54e1b29c71405bd1414e86223d8f71c1ae875acdad6011134ef470444f831820b80f5b04fef90dea26e43bacd3e5bc4e610a4785f55f808975f6c13e18ae5cd344e946091815fae5caffbb9439d644eb36be71548fca32aded83d408c1385d00632b7323adf5c90c153d482401efcfa978630", + "939a6306bb20a9f21bf83ee55b581f1d711716d0bef7abc150d4104200509754b6bfe1dc41950c1b18549a7ce8af426473df78ec5c164164b88ea74036f5598671fb5f0881b56c164525cb6914cdb6b1c4f42f7b7a68b06b631fb47123c798f249d85e1200957c9e6f35dd05f759e8b983898c3d735803ab1c7396e8735300b15c9ad22e8b3f09b61fb21c505bfcff6ad42bde8634cc6749cd277a9c7108a1ad3c246b5af3ca7cc5d4f33a32d26d70d9729f9f76c3ecfcfc46dd82246a9aa8e904a420eeffe0b9214c54693034e8580ce0ae1df29f9caa22df309e9d40480eee7071edea28ffe0a5afb6a23419fe3a4c84211b3a0a81be6c19fc3019ea5acb84782aba6996d5a78835060d4d5495ad", + "07124af84d9464fb3edf2489ab28e51d96ec10f0588ae7b564e6147d233c69a780641bf0502ac217398c579bdba95858d988405e3a1d1f338660585d4557512faa83a0d3bd8e12993d15c93bd431818810c3ac36d40d801409c991b5757ff0762a91d1d8a4eb3afaca55fbb4c4e3f1f5df94ada4ee94e87db6ec1dd8f269f59040381da0c15ebd4d41356268b43550b6de93d30fc8e070caf33e15e176577ef332a1bc6479ed" + }, + { /* i=4095 cDividendBits=2700 cDivisorBits=1769 */ + "0f0384b45d0d1360e71eb456181a7079e1a1200e7ebb886902a7980badea18c1590b941cd59896b9082878af413039faf2e82752004e9523a611ef23b7bd66ec6a28770011bef513314d840c13bde6b27f572cf34ae1fd613b69be773885d886ce440c07802e103be0ae780e318cf010faff5b326ff6d1c8b5a32e670a9f260f9e9302b906f29f194b8c1cdc7ae366e64cd5ead8a4064135003ca9f69a046fd1f5af7d60befa5a91c94e532a2d5bbdce93573cc12c747edb0855ee3e12663c44bb24c4ec250fd6de56947a4c566e2d9668ed77a16fee8f2cf7f5eef25bf125e387e77e7a8bfb4cbd2f3a68ef88fedb9b90c59bdfbfc25bbfecfd5c6d57b91a07574c98eec1bfcc24958dd95d77913ebf63778c38a5f746e83853e0577d8ac68952cdbf14b9dc5ce1bb6912ddb5c50b52a4896839beb5c8fb0928cc38720ec3afcfafe8b02e822aec8438eebece54dad959bc", + "5ad1f104933a2899c5dd4ed31187a4e6707114f9e1a922ec0bcdf1eded4aa06da69a7b5ddb595cffb81d8d937f6a357de0876a7237bc795876aeb30be060f6da2b4104f0405f6da959b9043777f13227aacf81bec90665402fc2fc6d94ba302ec7a858f1f06c0b490550ad363fcfa17c3d92cec09ffd12f974ac22becbe9ffdbd7ba8dfe7b27e61fed5279751f4401f1b5c0003ff4ea8ca8e90c00826c5b6503bdd1e7f3762f7d7a3ece7ebf882c66364de5c226721ceb3fe6ca9a38db3e7073037b927ad3a212eb149da3283ae2e632d57b48ea05cab05c1df70a54a5", + "2a51f47cbcf71f9d2954065bd4d399dce0970a99846a3cfa0e79012da59685b4c6eae335c2d751deecda0b425fb70d647bc2ff113d6fb6938421eebb0d69b8a0346c546e0fd8e8751580342ea39e7fdb73843e108fccec90e81535f2cca773873687f41b5964cdc15654042459b21a2fa4bef7aac8", + "45ee57ae1c401904fa5e3190bb0fd4d900cae5cfcbd9f0074e6bd6280589777c6013aca16404433d00b79e2ed229eae2c9e77689bff84d8d5b51f8769b1897efede87c244c7fb5983ee175a016db11cfbff4679554c8fdfc87957ad7c733f58c77c51926e4a69e59796c2bd2369c2f9cd9877583878e64d9a28eff66af91e89ca90729a97db03d51e76cd986370aa6dd55f172d7fb659595a8aeffd622bd7561a23fdcf8ff97399bff1674b9f49c207875db211e844fc6e25d53af212b92136b0848c22ca77e4888adab40172493351f691ec0f7c0de9d6660dd5ea6d4" + }, + { /* i=4096 cDividendBits=327 cDivisorBits=102 */ + "4f3debc873e69a0cce9a2aad6576f13f9f958cd3df5afa224d94a5467a189edf1eaf8bfb32effb1986", + "1935741d0ed9c7b954e267d68e", + "0324b73bf2678eb54fca891f88ad5a0503284eb4af87236f37b528d70c", + "033419f376e2718ba531bbc8de" + }, + { /* i=4097 cDividendBits=2131 cDivisorBits=2013 */ + "068c1f91731ba4550ec06102bb3f2b8244eb4bd03ea4802a097d389b79e3d87506988207e75281e483e69732dc7c301c14f4ff063e1afc434453865cf9ac8448b53baa27ba52fdf3f0be6fb2f79b8c324d26273501f398186aa7c2e2d8e70c93a4a1ca683222bce8ef334f8607382ea0e27b0ab77e5b9534c751ddf7968d3559a874743b1ed873cc26321f44ad8de7660ce2b7d569cb5a07ac4d8896a18e58301a5e6e44d56eb6fe7e633fed766d01bf367ce360032a378da68c8f6d6966a4457d1b4889b89500ff83789a47e8359ae8fe7a3ff05e3ad465950be7a881a69d1666ba22bb6ab567483606a5ed8ba712986fb9ad9348036aec497450a04250d4080e5aa2e206923889951821", + "16fe8b16dd47871b3fa15565397288ba0811b1b70696ced95ecb1985973fe6c6b2fe6c15a5eda0d2dca34e93527389aa0bd3359f089fbb4b88d8f87b7fd1189ceed674668f7b4e5b8d9f7b6843fd449bd3ab76a78b4d40f7dbf38b0e6a362ea951df58ec85eed7fb63e68924f1b30868215afe6c3716a3231eb9c8a76b34ef8ddbde9a91417eed1545ba50f4b67da8a0352f722d66554c93bd70aa88094bbaefd7223538a80cd4ef51aacbf3c9f6e2cc6e0ed44f1e8e7d6844bdd2f9a87dbb48a3b5c0cb087e1193d6ea8621aa8120c3293ce53f921b00721b21923bad00c9f429ea086c941475614af380784f28fd42e71f42f65c2917a1223ebdb3", + "48e4990b47bf9ad9dd8fc2fd72e9cd", + "08fcca9e11c1d1d06ee40f2828232bae39e19c25d3dd032854b3ef832dd561620aa057982f4fa727dc8e004151c49ab317def616c5aabd8f45e4ad9c67d690da4fb5c7cc35a6235d85b17969297ae146a16fd48a46a6aa1528667ed4e910061ffca69e3ef43275a8f8d961694cd23d450c8e18384e4f4c361a2793ccb16dcf01c713e980b05015b12f35a7b27deb3ce46cf5654e4c4b6f76743bdbd6e17d70e37854b02eb3473dc7ebc8460b7dba85a5f02e247470142a67bffc43822b713a3e80f40f008578ec37bd66d97ec4376a326dc7224608e4582f7d48e2f0c2c3e443e917dfd41fb3bb541962520182869f1ab6e586f16bf9fdf4a1f944ca" + }, + { /* i=4098 cDividendBits=1684 cDivisorBits=895 */ + "975ec424e5f907514a209f89d3111dc3e971cbeb2bbcd329899e0fd5d6f866f7f725100361bfbc287597839c74eaff3b0d1b54197cf3bbf839cdbb72cdcf9d3812ccd3f26de6358f62e200ac67cfb3169ae932a644d2b80d7b59943d044406e9d163394b01bca2724a0d6495606f3dedcb96c610d78c073ded5987b1411e28c1458b7a6f81ceb85bd6f11c8ab7e9c93e238dae012006b1a9d9c2fdca0784428e1fadc5c704ba548fc5682b6075aebd6a0754e62b0a7a0732b305700f80bd49747213c13210740106cdea8830f871da33acbc", + "13bccc18a1b287618e5e96d07ebd46b77d8e144474ab6a4264bb10fa6acd19f010116d333e0733411a2d7d00b6037d6af4b41083fe6e42ec7c2371a3f0e6fd7f0b083a947641ad86f57bdb69536cbdcf88cc6c648c43cda2506a7f19a3c62e2ae8aaef92ee73916c571e9234301c451b", + "07ab4eca8ced268bf766de1be3df39dfb2237d99f4de35e7b217601883fd79b3b35dcda751a4ecee7246ab09ea26c04a363ee90cf2fc39a4633b310bf2f9fc9814080e800997a8b3a3504a73904c72d1195e6e04c4a17150b6116468be25e481f94700", + "12d089c5556cbc590e3be1733a7d40897b17511e06f0a8400245ee1fe1274c1f297bd301c2e9b81f9104cd6a358a841fc21da5ec269680e682b720a2e863b09fd7ffdd61be001fa7bcc0f4b9bcd447b7791faf35a63f166659e0bfd30786d73d9b88cb45f3f3e14f5b6f01bc30c62fbc" + }, + { /* i=4099 cDividendBits=2287 cDivisorBits=2203 */ + "0d17881441221b36c3fd959485206d134df29c8e46005551366321e77161b8ad0ebd45e51a174ce6871cade2f5bc2459a7f4d1fbda240084163df448acf98f2e6214697f9360bd5c07f124fa2cd89216b486261704b63fc30f9264216eeb3dc91fa9e30701bbf91881c11c8fa5af6df6fbd764d27f8ffcb91f33bcdaf8e65a189a5a99854f39924a388b9a580fff0bca5f75b517087f0ab547d00b7adbdf552a4ee6c496be0cd9c5ac0e5424089feb8fce3571654ca3dcc2c4ab5ee13e1e0d8bf0bb7d30511d8a0f5eefc2d602eeb50e21a45c381a7e5de7b5fc48df8de6f64861d617107d12501e59b4f531fe9b7b4a83a6df645211d813c8457384909c0dd431f262fb34cda8288a7d9c55794e636be7d98a4aad2c2aa8aa24277bf77e", + "066f84f8985382221baefdb30d3e04e7d0b3b1c2662c2de4b0aa33a4fd1a3e05d9a2be4cdfd2c7ef9e36c70b4c278ec5a090df2089f109446923b22536fd79991719e6b3c635b43d9977640c8d4c9d0a3c98cac1a05ef487548b458668cad653fa7d5d398f5f11a6f5b49a2fffbaf8b4350ed661e47e36955124556f89ddf043fd372d24d3d01935203912b7e03b3be624d803c96b6b7c43572a2b06083de49ee56134a8e60c181e9c441389cae5bd1ec803a0987ace086b56e09abae425abc523dc2cceb2b6fa42fb83b3c326fed4a7e472942f817456537b1637ebce7a4562097b59440455cd1b3a6b454942686e7c556ec3f33c973fd66a7c4219f3cb6bf325f6a8603dc1feab567209f68ead35b67cc496ec", + "0208c7336bfd955f3e2110", + "01657d75ef51f064f77713e90cc88128cfb462d61f2f892d784a38f5689a602557abd5fd6c6a7cddec59e8db06162db4e4cd8c9545f5d764e1d7e05eeba1c505ebc9ab0aa853338c2e7e4b839410435afc3782ae61538a6ace3ae2cb87053af07878170fe71b248dbea1e19127b817a4190750741fab24104cfc14d275ba79060682e8e1ecc0c929368d0d5a02dad47bb8cc5953f60cd9c34b48f6e9666437bf409885b08e9c95c9de988afae01013ac2a2668fea2f299b515e2fa55b280bad2c0780577fc1b2be283d801dabb8fc5fadfc392aa2c1dd8eb03eddbe886a57aeed41d03d80dda809d37485b5a75640195cc20bdc1733c4f800be9af7e59f62787ddaba09038729bc930d0d248313289ace2961cbe" + }, + { /* i=4100 cDividendBits=2503 cDivisorBits=2199 */ + "4274934bd4ea8da6bc85f4fb64f98c4d2ab5f4c0ed924a7c46187429990f618691bcab0d691919fcd8abc8022b933e1250ec4370b5ff75d8153bdd926834aa579d1ce09074078c586705cc1928f22c7202585be784226d1fc7bc0cf63adc5ab14a4d9fe1b0a06c69068201a62cdf77c714561e85b471e18d28f97e0cbd8a7ddd7d7ac44d9f1206e90ca55718d5a38e3378b7780a6d6192c664589d86f69a6bd4ffd77e1c1dd490b8a9261ba09bb24f1242228f13df191b5027b77e449d5bd199aa931f5058a843d81a99a5edab325ca6376ebdf66b6a94c1a9064a767da835458f3a63af5b1f1aa856bb53f0c29145f5237fd1abeaf8f458e60a693cde8bbd6827822ab367964227d6bfe2c8a0a1e517af41d3a49814776e6b85ee2b918fc7258b22206986e5b51d34597b956e00aacbd1bfafec7328d804b2", + "6fb6d2c2adcc46f46da218ae6156a76c47e4f4c0ca44f413a64af4edbae5aed454dc6819cec501a1c6a59657f8fbb72bfd80cc51ee1688b53c31133a60c9c5d2890395c67f63d147b058e5a557e152a03be76c8f325f258f432f1dee0dab79bc20c4464287cdddc969cbc4a02655f4174d3f50958a63839850708556cccce826556f84a161ae779bffa7f94b671b468ed8527979d49e8ace6856a52eab8ed38ca676f4bc7184c46af2d4c631cb73c6129479e809ff3d34310fde589a2eff197c94297853aba6d001adc66406a58a0fb598fc9de3fbb72c137d609f17ce8e6f50644f5bf2567a2cff3bcaa4e3ceef0941df07a390551b8abf65b8cb3c4e4920da5792ef3cd2c26568f53aa787396676417d012a", + "9849629798d389af5895d64b7cb8e99ff02c8c55f1540b7b942055381a32926f1a0b4c962e34", + "6c52fc4f95c6a1f6fb1239df463af233a015da5a8873ca641314734ef890e5b1e63dca33a99981122774c909a262c27b7808934c2cfd4ecf8ee2a2f263da11a50a9001c1c555a0f238fe72e7d8747676a22f3b1ac113e9c99e5ca4c5ace2e9534ad174249c830a332305de40af14c8df094e45f96674208ee692a6503c97ac9ffb03864e548c67ba28632f3dffda383cb18e80a7dfdaf681a37b1f24924731edd24f203ed3b0e3d16912c2b9779e125fff0f15b37d8cb2f346fbf1cd5170ff0fc38bff0d92b02d4c0fae4af45186e2716d5aeabc1875646ab4292738de2f398eefffcfbd42b200ab238cf591622b8dc07225631d6e33fcb2e4e5438a11a37ac427031cfc3363e251cae9a3db2f10443ea23c2a" + }, + { /* i=4101 cDividendBits=2949 cDivisorBits=1287 */ + "06ba8760f3689b1fc90c29ae7af41de10be4d855470a7bf5e1728c0308fa8fdefb79fb1994141b7b2aeb1aff6aebd5a4e90459f5d120c9a83e10dcd931a40cc78adab9f9cafe16f1236123d0510035e42da2d0b1f6b91438ce47b243be965f9cd7898fa0203976056d8b40fd04dbe292f8ed65ef450ff099dfb215c7fe9eb100bd79b29d78993e2927d0bb432f93fb0fac4b394610a9b8a0a2609c86f61dd5af2a106216d45c3807a3b2b44eee98d4da8590ce306fab07fc710dacdd7c6fd22f150212133ac330818c6a494ab2996b4d49f3b7b00f13d0232b6e9b794347dedb3240da48dd40475cb8abb4167efeac6c6afdab851f96df8df83232019c4cc887f3773ac3766c922b4b23199874ee2fa46de04f2867e6a37a03a1d2ae0fa73df23c207e31e9b615edfd1faea23798f9ab1bc3544faae0f999ae5c28e2fdeab22c4e934bcdf331e96d37ac8fe6757c824d16a952b2a8abe5c20da21b8bbec5c24330f8d2203a78fa6afd3f3a4ad93a172092", + "21ffaa92db4ca5a7a8a4bd4ee01bc7ca9800732e38f6fedf723871ebfcbe275747c642836b0c7b88469563ce5f1aa6879d9275408b32a73c4c0efddfc011e63effcd88d9b27b3a417aa6e813f63896ff0ba7ae11fc1d5bd92bc99000e58835e70cdb1df2e94d18ea88580249197510e04fcb6e3bee318682d328dea444365da835fb875434d970086e66fdaa9bc5dfed2b7955b2221004b7f1ab378f7037176bab", + "32aa20440db7699dbafe59731cc7bcb2aba9d9ac9c473cd850ed36b2316c5a1cc20872f244bfc68f70ebf8b442ef9c419069a62ca6bfce2a113eb2c60ee212c4f580c445f8596cc1f17cbbbb60425a2e8004b91b6e0aded8f41653903701021ffce985c6d5563392eb47f00217b85a1880925535c617215ce02e71034d854362c20e181717a65c2a433546e59d2d037e712d0797228782dc577a8e67497707e61c2672f0dd71d7575ac252dc3e4f9ca4098bc00d2868c669716a14a6b6492ab6dd7f7b470832ae10720614ff8571d8cb", + "21683adb6b3ee861e22f2a84141372f16582dedae17190a55556817882dedbccb228f348338793999b4a0c995372bb41f1c629509500baf37d5b3e1c0a45b68d845457d64cc57e5bceb75debc45a7059056bee10073830ae95051d7a3ca3b2bb263f6ec7185ba56482e0559a2058baff775170a9da1c14c22d2926c11ed136aeb33b229e7922d69398c53dfbcc922414395190fff415a6e2949b3dc6c66a3177f9" + }, + { /* i=4102 cDividendBits=1740 cDivisorBits=1686 */ + "0c751c904dc02e2f6df094729fe8484d82a6e9c297d876d8edd12c30c59afbe6d04672f39138178ac0e267d96c1fe901bc6a554c3cdaf286ea9d2b8e3389b43b55c7cd1d7650bc84f28bcbccc7c9a4b83f03ae9e1bb2df349d39816f900dbb746903336a30a48c57f73fa0906d4aa2ecffcf87925a61cc462a5797ff70eb53b08cceb9e3f262e4231b4572483200524f4830505f3ed11d77f7750bd837100d7058483711ad4598f6194400c3e0ead87d67939867066be70924b069896bd6283acd0896082316956066195283b89c42fd1b3fe35aac7fc001bc95", + "205e70525c16c22b63668b4dbdd194343f1ebe23b91edcfa518bdd7ae0904aeee909cdc4b1cb2af4713c9b8519d46f2b9f5bef1394ce16f6e0a5da469d55b038c082d9e348ef7afa7b022829bf2c0b60d594febd8d1278859d14aec28e03dca5e6316ed3b1ec6441fcd0d0e3bcf50864d6eda395526788b78a829b1516c49e0e2b89d317e5732d1c68fbaeffd68612cd13179c5b6be7e3731b5cd547246b3ede473bb0c3097003b1e117ebdd41196c8da804c5e19f14083d3ca54d05f866df91958753609fd8f3e223a84d4f58b5dc44624523", + "628620af6526fb", + "0fa0a9bd15ed00ff5b16562d954d8795129216ea9dc108b9861903e3712de74cf2003d9ce9109ebaa89d0821322c9096a88d9defc9bde4abfc3b34fcd8e295ae76961f0d1d89f8581a7c0947c07ffcb228f3e73320ede4a72fdd93db109c4b5e839c84567e4a0e0ddd9c08b3cfa8c902d2e0513561f68f72a0db64baf17c30ad2279cbd424992c5ce4d95736ee3f90551fab562c8b7fdfb34c4c73d8e027ee80f7e7f870e14d83e3efeb6047e2b1adc7c3126d5ee3ace6184784e92c0ae29575d49a212fa154a606b3766825dc8cf9e995c144" + }, + { /* i=4103 cDividendBits=2552 cDivisorBits=1032 */ + "7f4b463dfa98ef5a52f603c85a9e9c2aa2c376c0104034ab77ac9992d2ad3fef7edb8573addd4a3e2ddc8948a1314966acd59e9ee8c2765c50a35baa2210f35bf733fa40a85e2f73ec6736a21d0d58484f7213625d8a7d36d6903e00232d247dcdfc1c32a0f093a95a8c6122b05546a3ca1bc64c049452334b86f6eba9ed1cd0c035c9e75f44947699916b023207572f5dde27c3ae20b8d4ac355194a986720bc4773fa47663fd3962cece2df43e543998c7384096f1845bd9eed270f4853079aa83f3699b1aeadb9f312bf0578960c606d3f2188e30da8e901d4ee71d0b033c0cb580dda25c00bab5e4db43e50cc9b898d834caa3567648763198cd4eb1a565e16570a103b1d89ee57e7e94f027e2d343c58eb8b2a11cca45874cb5fec964a8a9199094baa339fbf641dedfc71acf178f35866b03cbd603f538d652041ffc", + "f123c36f7e8d550b06c4bc9e59604c688455d822cb2b009671c9dddc9aef946fcf142f186af948f563d662a38eda36b6d9bb2d59c0a27eee99b132bf584f00f7c069b9fea3894502327db8e21c76056a11f6be7d2dbb3313f9a033dc4af2d01288d0336c46bbd1c77bb432b23edcae9e395e87df752f68abc8982dc121ceebd9ee", + "8723795586281f46f3ce392da2f81cb2d23a8e95161fd1d216a319c2dbbf48982ba4ae31de82208bb239a7318fb77bde636a88e6a67f0a6652782a8174b9cdfd6c89fab5c1116794913468c29896b377301cceb136f445a12db0d5ff25b38cc57d550f44fb2da2cefd2d90fb4681b91835ec1d6a6b5e8f1bc4cec6aed93cd02d14734be1dc213d7c7d5495e494d817b0588ab49aafad83ba327418eb98c9969f517b5137de996047c6bbe922ceedc3f90e5cf7fefd6553cf6564a58cb9ef", + "53f48ccdd057ce2d22c06528dc8a24e1263ca097ca7864f2268549703703817264a1f260a314e95147689132417842ede073ce488ab6fce8b65bbd3d8ae8ad3bdaab8a62d3959bc030af04f40038ba18c8f0533d0d4661724f0f12128ff1912a3150e9357b4dc2bbd21b9b442b1a004550241a943f134efdfb354348541f2eacca" + }, + { /* i=4104 cDividendBits=320 cDivisorBits=230 */ + "ee0477403671554f6b52bea332d3d0cd42837e5491e326a3a07b4065cc023c45c5f5c94c21e24825", + "07acd9a90fd18a200d54182ebb15dcff77aa72cc33072afb8636dab177", + "1f02e1695ca588a0e612e3ce", + "05732161c37d52f20bc62558e8317c9c2d793ab84a02f5e776ae2cf563" + }, + { /* i=4105 cDividendBits=3820 cDivisorBits=9 */ + "03c4790d3b372530b9d7a8f53753fd59fe84d54e97d48f48305d7a8f3b9cf09bbbda29e0a64c9fbb990c7abf5a1ee6a587faf2bae4dfade05b8ab539251805fd7a04c9a096ec09d4e9d604895e6b61779537deabd1af3dddf36ad061dd6887705a057e1804210fd162ab486fda84b5bdd381bffe70c2ffd07a0c88716e17ed0b3087aed32ae0d83e57d69e685cbf2e749f1c9c36cff77575dcae718d8eeaa052ccc1e2f8bd158ff730af90548923b0a2c4ba72a165b6a709ee1c8ade65c6a426bd1fb87ec2d971f359c37c057c94d2d73a671aaa58f9c5d9a39b7a3f8ac12a65a013a7a5bdcee7af375741bb67d9c4b60beae502582e7614d1514dd4181c3be3584e19fe775bb7180d938ef469b0a3c41fe9df7d1705435a2c0326bb4289e00cec9bc153a7bbb8a2f81d29946a32e65762796e506a0212c6e1b87aea5f64551cea2aa31de810dd5f2121c5a7dfb214d8d419b2f385e19da1f16f1c3a558ef3ded7bd02c33c543c39b946cdb12e483f0ec06e189ed9d97ecbefcc6267b0984e828f4ecebdbbf7b03750782623cb5d54e3de97fd73bd4bcbf70c87f4463d268d1d21b9798f9796a40f063b2695dda2b80de74918af16de67b256fb189cbf63a7cf9a3e4c63a2321857e3d270324ed53e6ac0fe2fd3d41acb7f0c1d223872c8", + "38", + "113904cec58e60debf4796aa217ff3e48b83cf1e23cbb393263d9dfc7e3b275a362e764c1ccbfec74defe7fd09b1d53ddb569ec41647ad2634c33c72f2b6f6cfe4a82c02b1ede3cd5189394f667d2b473c6d1e7f2c45ad1b34316f763d4b8fb876f489925c04da989e7cb8dac25eac88592c9242037b6cdd9ba702068991f27c4b90d60e7adf4a41918bf8b88369f8f08e39a58cdb46ab3f5e8b2babb1e76f315ee40d95a987246a032293cb977e95313a2fc2e1d0f9d708d2cb9f66638c12fa3bfeb91ee874520f5134801914f17ab3542079e629081abe59a22ed955bc2f876e10b53ed168b56a218ee358b62ca7d27f9f849d00d464f173bcd1806e37ed33dcd2bff8fd10fbdbabc71fcb07b9c812db088ff2b26133e55b7c1ec5c276495fa75a4f3547ec709fdbf30738c0e8af465474416f9b77314407dd9f9d21caa9a8c0c2e9ad4971aad772e38791b5773abaa507c4593f7519bfbd69a59cf4d6a3fab5a931335ceeca2c738cd0e0d393696801f74bfabf4ffa7fb5ef78b5706f1dc28f1f1ed11223258f26b789c833f3cd3642b6cfc7f3a3a4695ddb381c8542851775990722b4f9c969410e673f62e7dbad45e070d743f8b578690e275ed8a2ff22c11ccaec0a0993daece6932f1f3c8b0c96d323c85be8348dee3c0a269f", + "00" + }, + { /* i=4106 cDividendBits=1697 cDivisorBits=1247 */ + "34b167f1f82f124d90dae2540ce84c81b299b5a45864c294ce15618f8f07c2c52967fc881b6a1919c29440b1845e1c50912f4371dadb28843a84c2edbc05506ab04ddd8d22a253400906074756a62f11febc6af1146a5814bc41d43875ebd233270ebd6702a17c7020e61e9299b4b93bd755775a5de1d904abe397fa1f27b59149a13938729b09b46cc98af11ed479fca1919a23742393dfb389d1d9d7ae14291cb25ede34a46b4fa4b7c574811574fca98591d78d3bc9f09d49f067651724ac182dfd7f4ec0409e55aa4c4578c5df1deadcc366", + "3c4d370fd686870c0f8a38eb986cc1e73c9ffb604382dbed3c4677861fe2623ecd0cb9994484938ed6c59c7069357638fc1a766440afe77173949a7db000ac0caf701a2b368407370c666720dabbf31ba3442259ffd637feb1fa48af1c43261f3c685440025f7ff424a53e5b1d593e04691664149afd8ba27c44f244bdb68ddbf17a4b1ea732ada4d379e990353b9567a55c22ccc128c99624b71e0a", + "dfb2eabc1a98b22903a00e5ab26c99cc0d516fe77e10d47cbc3cf4d5cf723fc1edfe2945396714f3d067c8714c6321be89a139ef39a03c27", + "190fba0075385078ed0fc6dcc4c447b5e819c91ea6b17c26b029b8a9f7858001bbde81b4daac642b4f0b584e34a2e717687abb55e643bee35d672bbc8695112533ce522e1c6d97b0ea32f4e7e088f59c4de093abf7202760a429d9ae331a6ed331c5827e7316f5fde537e4b6845bb5e6c2eb114d4f924906b2c8639f61d625a0dae9ade1be9829c047ff0c60cb9c58ba39cee66bc55cfb2a67acd7e0" + }, + { /* i=4107 cDividendBits=1102 cDivisorBits=931 */ + "3e169dee35ceffe9739c0d7940919c268c172b0f019262b5f181036d7a9ac29d3f32e107d2045f223d8499ab55ac6b35c8c38e0821a6d17eead8921643ec1dc9ad3f70e6c8a103df0ed425cb788c495c363aab87fc0fdabd0fac1eef209994b77c4993fd0db43f18aecb29f688c2ad020beef171b6b3d5ece1098c5bfc3f1de704d05691482827091b1e", + "010ecc090451772edf4d7a71f1dfa7fbfa961344fc841f6e8f41149e5aeec2fcfccd3946d2be120a958a9e63c442c164772ffcabff05bb8ccece08b379ff52f596133c8aa8b69eef8974a1002d768da090a755066af0dcff80bd4b3e09f691c04d5f7daeaefbae0211c9535658772b4c87f8cec22c", + "3ab21898fdb1ae2bfff0f29000f32e0b3b6a6e53944c", + "8dd90eecae122336ba5b8213baac6fd79de1c6d8a39896a5fc2d4d1be0163000597ff17296ff45079d2438712f524e952a5d96e8dd341e7f8e7ac3787f64921f0f961fb769ff9d794a6653196f57e5a29a59ac1d77a7ac48e9b63323f3f84ca23402bc4f502f0c93213ad18cc438e742e522060e" + }, + { /* i=4108 cDividendBits=1536 cDivisorBits=1140 */ + "0499d79e88f363c08ce3ad69914ecf1842f16b8568dc444ac12ff1b663a39335a99e4d0edf8f6fdab3cb00bec88758b5e177c66c14691bcfd61fb680ef2fbe6b5988940d47c3e8dbaa85eda479079b7aa2cbc50d27bfe738d117733d80e159a5dbdeb13bfe05e1496cf3aa9b248ef82421a19949880877ed46a7330b2e8d4eff8a1da85c5f88aa3aa71785cdcb8ef352128e3cd47d26926a5d4f5adc1b5a24eeb0adfc5aac62f13ea2b32e8b38676f2b76c06171a3ed1ee38762d52d9819e4a9", + "0f35b8fd56b8bfdcfa07e08b571c641313ee5fa19d5bfbedd008c9a3945bee1984688db031a34e3277325b4cb0b9b9a35c840ab6fffc35598cfaf2c9837ffa515fecabc7a5d148c1d12265151b047edc6adfbc944ebb0de7c38493948a79c356f7917b80104128b9c0877fd58538007b094c5051f0f7af3342670f1a4167f62b889718900a65a9d3ae15bc9cc6146a", + "4d707dccd903d34e0d2bf1d3630505f50fe76f476299e793a010e09813b35edb6e07a619d4176e81ee97e7f3808f85bbc8", + "0a33b57763224bdff1fa7e3cda29e937c7b42343530646ff36009189f4dcdc32483b46fddeff0f891dbb13d0e9f8eecc0721b68a9beaaf15eea8baf3e1677a8fbe4e0bbbb6418bee3278a0f5ba1b9474c2e0c308b7efd139c22f6e10a62b0d3ecb28b89ab3b4b481459443183bf255ff55bfa4182783f21bec46e4170cdff88cf55c0505bdd48efce027fe9b5e83d9" + }, + { /* i=4109 cDividendBits=1677 cDivisorBits=1464 */ + "308766d397049896f66f74ec35e80a155a6d322b220f8218f16a0e8c70ec61fd3605d5b54414275eaf1f3146f554aa3a713c5bb33bede7006537aae672bd91afb78cfc54c8208bf351ca942e808ec8e76e0efffb4e1c530118ed57b8e82a60651869abfe176afab1c6fcff48d70c1deb73dd26e0d8c435999f19c6e3204669739621160403732cc6daa2ccacd1f56750876d4959a1c4eba42fa59651f442ccf5d7ac43eda49199d3f807ad744f1380a80c5f572a28556c3be7619f97bd68e826c8b18a94b0e2fe5a56d49a71a2f39df357", + "5a74bceec98efbc332020ffbd4412a295b8d324c7a446e3cca5d1ef92336541cb008dcd9b9ae0eef58a390fe7f6d85112286697259787981516997da69e9b58f8f16153b944fa9bf4f8a621aec2572180d944d9c7739ba5090394a105a9027b54a097ba67e393c52971370ba3f02157d22217836582b8647d5f701626b00c9a5b09e9c31bbf39389cb30551f0ada385f318c07c88053aaae1b25cf73c4d7340996cff0d995f2433f278f810e0b8f0cd6bf1bb77d1b61f9", + "895787f9244aec0a6caafa0079dbaecf202d603d82125043c9a6", + "1e7e0e17c624f0d3c285d4a79e6b65238d32da73d850393138e983aa045ebdb9ae9bc9d2ecaa0ccb273745ab56d42330271551dad5504e91218f636a98808eb90cd5e3216596d20fb8f0df3fab3780cf153c1897997f1ced9350a2c071002e99413e6825fb0171579de2e5828b65bc7fac19666d050becb30920b3352e5c18c3078f0057aacba2bd90c26b01bfcc34c8cdc1c79807214b6e1701e630deb980c744db2c82317d3123d069bad12a094283cac522dfc4eae1" + }, + { /* i=4110 cDividendBits=1951 cDivisorBits=17 */ + "0a766e7fabab6f9150d788b632d40c24b40435d058e1b16ec9b49cbcd67d08e3d779af96cafa906f8463f48197869e38e23dde75dd17fb3907b8d8494a3869878c4eab5a8349219c7bf588e81471dffd010a47837e780325e488b7df1ec14e6569de2d8909b80299e6029e9dc5aad5a86038a9c0bdfe8c60f28b056343c182c76467e321bbbdd4f4c2051bae820045443c7d46addf66f2c07395bb3910b1a201c4e6e53a85026998f58d2fe955af55f02c408e2133d95badfcd36688c64ce83803dd3ddbfe0ded6ab00c1ec945e1e7e3c9d82ba8ebb7a78acf6d51c38017464544d148c925f04665d214d6cf0419b9d4246f629e", + "6a06", + "19433c30edf12b4459f01f9941c74259b756bbd93974c2e38cf97fbc0032ca247a40c6357cebcd1035285ab641d24b9397a028592910f380c7bcc5b44d45131aceec3e597b9ff601bc2e2fe080712eb27fa755f515122862e38a973dc45d79402c59b159126e135f4315d99c305164d48f11a775e5fdf75e8cdd82e37e9be0e8242452ca5e2f650f6e44e32e5452d2e62474f15c4b71f1b49dd49b2543307132ff4aa7cc48fcdd64e10e476e4647b356deb5f12f36ecd9ab324428e7678d3c281a621beb14a2e20d04352f30b481a173ef66c90efe7801c3108e53258effd05cb4462e3a1e5f8c7533865af3a52b1ef4ee5b", + "1e7c" + }, + { /* i=4111 cDividendBits=3694 cDivisorBits=424 */ + "0d0cd87d7c62ec198c318aad55b4028ce66ec1c506e8d490738fbd53f3d8f764ae6f2f7bf1d3ff586c77cd9a8f79f6b23db0fbf590652dcdcea424bb0863caabb837f50a939a9da8e31341d9c162aeebc969998c44b2531d67ccc122f44f425ce5a719767fba7b051a02825e95b58d58695b361c87952a02253f0457c37b695b1e8a7670aca529566ce6716229d751b4cd2a5e7e2ef239c057ce43b1c3f2ddb9cd8c36d5cd5b0aadb8d158f084cb19b14af76f1814dc512f2bd12214e97e8d4332c75dfbfed733413c577994bae2223147a12fb4e7516f3eaaa2aa2c3be5950632738c6182a857d369db86ed3bfd8304e33b66354072388c77d84d3f2eb6cf90f1f40902a66f51a65efa020e5239c25f070c00eb9254b7226fc9479202f6179176d54c951578d11544a282f8c44eab96468e91e24876ca09f0f72976761fd7a639dc6669f6cf84d71a4b264dc05a4dc9eec1f8c817a67dcfd402943a9df3c88ccb04b40fa51c6da5921ffde0053583000c6c6b44707abb8e2bb4f907eb427e8908b331b982060cf5b71c5180a41aad64c5dfb1f5dbb05f296c40fac8cef7206b9e0d30be9e9b0fb9ebb81659b3bdacd1812c7914763bacf5de9ab6134d7d452e47c977a851230c1c5e794eac6bac", + "673aaa65367c68ae37ae1d609803ba9ba2fa6551ebac72bbb02a8aa4d988a188f87dccf047aa8f13517d2abcdc68bb6b09f72b204b", + "205d072388b5e55ea7a4dfadc2967b2c47af4a99997febc76d4822ae944f333d951bad4811f563273027dea6e982f098ab929999cdd7b7d3cd7773131a5c701f23961368769c033629ad451b35ba7ea07fad362d0c65d24bb130e26fa0e198bba18dd8a0bb655bc5745a95b6d61831afa7d992c3cc6fab9e1403b8cca22f7ccd9d7f8340ca3973d947ec5febf9b1b7707954793258f8d340b53c339bd7b61fe2f081b639364f7c1f6a7d6af1abae1109fbe52494539647c88aa2b989de4db09570530f0ff01a7ccdaf715950b9473152bde9fb133f811d8f2516cd03b87dfe10f710c486d96963cb8360ccfc2ad391431ec6308d9e233201270e1e69872c6fe4a540a3f15d45bc593fbe8ebd76e78e89dbd67fe26b4247cbb0da98c54e65c589cbdb657da3962f5db800648677e4dbdd4cf72fab855c412d3fa0bca97b89072089c092cf234530c823c55494009e62fba6d3acd9bbc1001a6714c16032ff400a677e61a81a3c5c2d80793ddd90df795ce2e613a39185d59bd5374d61c7d5c12a760e9cdc1f90b6e95bb0a8b426c1a283eacb12c063bc32ec83", + "5b6874fc58cae26911d4acc4d57b5b63b60e6bdc370e5160eccea875315e24aca9f7e823814f8ab974ccdc0d29c7e5b95faf2fc14b" + }, + { /* i=4112 cDividendBits=3481 cDivisorBits=613 */ + "0135afff8b0fab0128f5d9fda0ac9fb568664e6f160f1989c35f47a61a05e2e1d7bce44a68fe8afc87c5415dc1dcac64c04cac54a4f69a0b9b37b86e6c1416f0a574f120802008b48fce18f044376405d504ab18a3bd81cdbf1f5bb936605fed11deeb8f59b94270a2b7878c2b18d9443ab064a6cb14857ef7854519ab4a331b171c06738335e8a9cce1ad725cfb511e4e08e9d5fca5a1c0ea8357732db6114cda1f31c6ab6feb4fd15ebd64a8d15dc1d38022adbf0472beb019b82f4df9aae8ce348f3365687b4d1792c4b555d104d9e22daf59d6321573b5ab8f8058113302cf2a0987cd166edfe1453b33fb917b643b6e8d6c54fd0d72f8f5ef2ed9d688c10aafe5d9721a456555be739b02380b6122e6ca9629feb84f0ab0e3c982dba80fcf740cdcbfc76f7a77c465f8f9475864da7f909120f4f4210bdab74c35f5e232e221533175282c25e2d24b01b25a96062e5ed6bea788438547b8aa63ed9de958bae76e7f2f200a949c3bdf80280e6dc4df2bd396533b3cb3c757edd98b33016b5ae8e2f11d03ef4c85b8a175a1e28e7eff41e79102e58773321009cc95b1a2766aefe53347bbf365ce243a6bab20bc583fdf0bd9", + "181ab3bed1420107d309d883fbc8552fca9f5b932c408f3b89614a2065df55f4c983d9c5a5b4f89af49299fe9c8026a3397a708433e1eed622318ee6d9121ab57313de6c029dafeb90fd799ce4", + "0cd909f76eb029f2bac08c0f42601a61e64f6fe2c50bcfed95b475eaf45085f44d785ff2a14e25cc4699ef426d45e3703b3f763f95fe4dda3be4c4a781ba27a2a30786a5757598a87a0cf872adb7c49506d11e93d1863f70077f9266802ee99168b9edb70f1c974ac86ad7512354f9d251cfc18a8ecf88661b98631dabaf7f2fdecec4bbfa139f49a63c270398b175dfc0c71eabe124749f79c9d2be680e6262d5591c74077006cf35d9e74c078dbc51edabd9b03830a54914bfdc373b98f6bd871c9c45f27b64b85bfbc91f5849810e0ba337d5d0c47858f9051d6c3ae6aa706c8e7ac6c1c61a89228df3e069ba782104dca3aa04fdab6fb89e88dab9df2b6c4570be9751fbbe0171b272e4a93c652cf899371638a6e24d8d9e96a94ea8fd9e44e397f8d05c28e63c6372a0a64be859cbb436bf9b2fdfe2e64295c5edb5f76b8bf1928174ad45c0c130005b2877f15bec4ebd2a0e73274ff59ff086839be35a1e7315bfc47c9b", + "0d90722c774f55c79f1bc2102bfca00fdb601008c9e00cf26c693723bafacce86357110de1f6d7c1833935b6d9d382eca1097a518c2b7885b4d9889fc107151998d4a580ac7c36c8e9a4ae9dcd" + }, + { /* i=4113 cDividendBits=1332 cDivisorBits=582 */ + "0d5cef8b2a28718cca0e2960a375c143881b1a688283fe7e5df5dd1d073dfc9d786cdc99e2998869e148e97ae65d7fad2d9af626319e4c93c56e37c54f26ba7c0f31e3b2ef877fc63470f11e8ff11a7ca11f1fc802c5cc61415e84bafca96bb23999c9a85941aae918e833322f3d0c4d005cf599778eb87d422dbb9efa4b1fe0ab35ee68f2aee5b97885bb4c4cad9b1eca7d2123d2903f9ad54fc57ea0da107afe9961b30119b9", + "07774c5a24ccf93eeb408589f43bb234d5e876a221fe57db43bc6cae8759019e059094411b80e19d5044e6bf71dc485446b500298c46094c91b77e6ff9864476c6f8972861895513d5", + "01ca338f46031a7ad9925cca207a8ed336f3ac6be2dd47e517404a91079c2b3b9a15d2c56d1ffc2a2ea0ab90d5f6adb75a21c0f8f39566146b98e56edc9126b459b07a021e342fc8b57566d68e88e8f73431cc2cd19f78377ce09f3f6432c2", + "06b2b6f95f480d77f161b16cae8b2299e0accd6039317622831e743efe3b890a3a60d457c384129a9e00b928b162b7cedf8badf9db5b35836cba5ed7dfd196dcafb04bac3cd874784f" + }, + { /* i=4114 cDividendBits=1006 cDivisorBits=830 */ + "088893cdf422c1402bc91506186a3d3c8e3b974b505dfd3b9d5a8802919a63bd14615becdd8cd8df61e0e6dd18692639641d094e5ba18f2bd0c178a6fef9b4fa421fc7d8665a68f22be0d483364377e16e86c162346dfea249bbd46142148072530e2f0c09070782d01c9b64fab6b60e4171b4ffb53a1a48491be5b7f228", + "306f33eeb64961131edaa3622457af65ac3221d696b05f6a719f92f6a2c1857a12ef1f1e343c06520fba1183290a625ea6be00e3119c26d7d6e08d8a441a6b4ce06cdc575bd83de0967efc000886ea0d584a3a40dab46e291c3c984ee42038b268b1e95ca8ce802c", + "2d1a9602f60bab230e030a022d81475ac314891cfaa0", + "0a73ae7506f211c17d66bc5d26fee370c8544433a70fe1124dae5cfaaa117d6a34467ee11e07f242e3777b57d7fb22e62caf76a8587d3b7c1e3745ddf647d48d9cae5729385ae35a449f0faa40366545192392549f58087592d62d0976f8a1ff117d71bb2aacdea8" + }, + { /* i=4115 cDividendBits=337 cDivisorBits=275 */ + "dd419eff6093d30a1087b926fc808b2283dd762f1c828304cb20900b72b069d095a41645bb3ff58b7313", + "036411b983c53c3d1690f05b8f4346edc4214b74d9e8c551c76da917ba9b2967dda611", + "414007cddcad0f61", + "e90bdb17256a81507802b631f859c262a6725b384a04e9c41928a7f3655cc85787a2" + }, + { /* i=4116 cDividendBits=1944 cDivisorBits=958 */ + "3ec2203bf2367809c3734d500c55528d69bdd81d92a23620cfcd202963af729c7ee9b5156d4685680e791e123371f718fb0c17a115997e6b2d5ea2054f08700b97e67c14c3a221feff7914760fada93a61cbcdd297c85cb85bf20bf5ac4d4d3171b3bd3c5a6d5eefa8b40fe4af1a8a62d5ed7d05af56e9d63450d5a782b673b3f20e62316a570f528f49cab333d0a11a84955642272f7c7fda294e35443d3f7771a2e0f977f06b1dc531ed566edf3c294e9faed0a4d9cb8933fc6a64edd5896ea4f493c208d6e835e8fa72055f55f6b82305036d2b458cb91321daa081ebcfd1f023586f80cc3050f8f213c5352f90d22f4c76", + "1e0ac3ffc74178412ef82aa34b407e06cfd7f4cb56dc6178bd5a2f23e0a40380a072b6200a7a52a6f9f9d9237115ab5f6fc0f976482d6a8d2b356dfbae357f2b598b9f99f8ba952aa656412b893ca5b5c110b4b3e8ac4b8797d25c731ae2896f6b178f4e2dbf2ecd69da7e458f6cf4a415e157fd7099652c", + "0216c9b26f0f5db27df880ab174d602e991029c09f1d52c485341eaf24489a3857fadacff440d1daa4c28510c716a1d7bf41770800ee7f49e7775a73d1688aaf2617b14a6fea8ebb953749768bbb393ec8d7295cdba3f5922be1369036ce346029b2c96338d5a358d4ea5201687cdbb2b87bfa80c0c2ba5cfd10d238", + "096de66332bb08731502d6b476d8909936b3d419a777c32242dc879fdc1d234aa54c2e981c70bb9cc3a96c823429fb435d4f8952c83d4cc05e762c538ec23d24c0c91df69e2de1d7c8dede85c49bf90ec6d26af6aa4d93ae4abd461fd7a1bd17f8bb500ec01725d5698de96a6d84112d93a3135f8ce312d6" + }, + { /* i=4117 cDividendBits=100 cDivisorBits=79 */ + "0c77a1038f11c7b23517bdb326", + "37ca808ae5fca8c56599", + "3934f4", + "1583216b972883e4c952" + }, + { /* i=4118 cDividendBits=2471 cDivisorBits=1311 */ + "1781b21bf9d2c884ae28c604694bb827bef04b38f4cd80062292e2dbaa4306b27ba11ad60ce3964c3dee4a2bfea1de4550a89644c1f20c7b0533e8e892c1874055b25f24dee6725429521a4650cc2d20f154731c69d2adc3b1e45c1e5a526d3927786714652e71e6f6d21b3b78866169d8457070b39d8a456e48a626a6d8951e6bd68af9fc1440e69e3b84dc4bf6a203008cdf57cace046d65416f32d9d713f42b77191c33dbaeef34d373da5f24315e03677087fab706a3bf1842b4926202a9ad1a764a88b4fd53dee2fa1f59a9f4e840e3854a37610fc8965c010c253ef0053fa89b8daa9c66696bb9d24c9527017fb657c6539954ca78da5c46f047acbb99090bdf6a5fb7c2a8d188699e8f04147fc0ec479e7ea966ec77635cf523c4358fcace524a9ef07cb2cc8677d3a0cf350bde673df8d8", + "24846827045ac828dbeef1182fc4780a4686b7d756bd3a7cb45c6cdc4d954d1169f2e92cfcc5c08790345825cb483449236fec38e9d522d7dbc82469a8c0d186d9b37290d86949183c2268b33ca47e458153eb803c997bdc53b3f51f6e02b0163c0b7b676958b8bd8d84b9b1157f552419c10493304fc401e6605a5c75b44019c95a55f1e3126fde56c8c882e260e3138550cbe5d64f7f6dec6531a51b631bb460689daa", + "a4ca6885401cef0baa190b88e5dc07caf022b0e5b46131a636c8235f7f1d3900c6b918a6facd3bedfd447b84d14a086d1a5beae23b76c3c5b65d4c80d34555e3fde188d6ee5e52d6341c096404d406697ff9ebed572f1f21ffcf7af5f09760610c5ac3af6913717f22f621f665aeffffc684d126e3bfbc0b854c74a8bb2db6a5cd4d5a80b5b9add56516060fb98ad2f0cb", + "1e81d425e245a2d2034b31fbd96b34fa17a7b51bb32c24dff183edf21a727f1813cc0c9aeb674df564d77ba15e232390e9904edf05f0d303c1d7da7a5dc275ed80337424b3ef845e56e2ae9511b21f1c168677121e17e4b2fe41804c83e4ebedb1e997d70f4a171f0636e6e98419c5e6fc10bc84c9a7414e00072f3a2c54ebdb1a137ff4235e4609ff04d3ebb8ffcce66209a9a031d62f683f624ab91ce298cae705930a" + }, + { /* i=4119 cDividendBits=2849 cDivisorBits=554 */ + "012b075be9cb26d4fc669a48ac71ca623a76a3aa621a58b3899e9fe816831e818b76051f64a722bf0f4a044e11589ea34c64dc6e3f1ba8bf714b5fa79c9e009be3412bf921ef27a29a96ba446d9807fa8668d944b590bfd5c8ed7e429ab0cff5b94f64949c83821a99480cfae93b4214501b4b05a8c668a3c880d8bfb65e06aa61a0f21a2ed9aff762c0ec92c9a8138ab1253188d58e0a4884983eeb6a3f126406b0d5b0578b2b685f91430615b683c9a3857ffd7acfdb0cd8bacd5c3f6578a747647c6c47b58558c7c01494e90bbf6b6bac1948a550c081d30f1e70d15f13712ed3014be7a31b56c41a91fe3e4a52a32ec1fba4a900dc355ca04511024c69ab62f450179a5fec439d005d864abb61db0e2bcb4fb001d0327d1fb99e7654b9d87acef726e67a48efb5c3e7d9af506fa4854b1a61bb0a95acac353c7892ef4d0a33d8b7ef3c423b39d4a63499b6250eb4b8c252a98aacab4e09202feaaa6430990a90e01b7e", + "025a0dd58b4a6b2131117d2e7777e81887556af2a7316e6a3e0c6ce8ee487523df499ab85a3accfd58b75de197863074451e0bc8f29cf35cf92c8d7604f469f76d90f65b75e7", + "7f267ada4dd14f852d3f2fb5cf305cb866024dfac892636e7ba3fe46bbe497e88e5f447062216902791e1cba22ad3db87f93d50191c641fd97661997fd16e6703c35648fa44e5663feff90f2edff1a6aae484159b10a8322d54bbab3fb74ac705b46f615975dfb28089669a141248eaf4533bd8517ea23a8d2201f27b7e16d5ed9f69336a406aa517c035e6d84e945c1eca9d186172d965355d6f484de48400801223adefa23e88d740ac0fcf6b0f4709e33a978f8bf3ab049ab3df438e4dc2f459bbd32e2e5cbc3a4d016d65410ea57e0c9997f62c0c86e6d8012a86fd32a69320e1b5dcb66127a1be382ebf559f7f541bee6d994a6b41f7b5fe56cc77a00c573fdf73d0a97d49ecdda9683fdfe460d18e918f145a74ac8ff74eb66b91881", + "010ead7fca570bba11bb78ebf1ff375f3ba42d5db191b033d438d5b1e71b7960d1029e7ee8c30275b2f1b08d45c2f2940111ac7fff97208a1fb4ea26756b5bd76bc69bcd0a17" + }, + { /* i=4120 cDividendBits=2623 cDivisorBits=2094 */ + "77a13d1ca732bdcb33c6eaea64eaa9018cc24f823bab3c13ce5b710fae145959500731e295371e747ec48227a971d9c16a6ecacaa52a1be5871ae52c10b7c1d39e4dc36d1087d00402e7faad2cdfe31c64397f6c9cb66cc74d4675583aa62ef8fda11f2086fe8237c765d7cf7f74144505f7d7ba77fe50122a296908a88096d785b5e6ec346c5c96990ba9c8092c3b5a5d15f63b51afb16b702006d1344299b17635514cfa86cba0f6e1fa484aeb79309af971ff2f9cb109de3de9cc1e1820befae54ee7d69b74c49761aa7ea6d56d22a57cb42b817fe87647b9f379c0086665bfc4d868669c9665fbb786d44ef3371d605a7466a86bcb3353112ae671263665724f2a229eecbfcf7f10e221a166794c89f8bb7abfd1615d7611faa16c8a6d95fba9f5e898daf7c2d1f6ffcdbbc373ddccc37c9c7f64014d92b4dcc68b48dfe6e570f530a01ca5ef", + "35da3fb6101318816a9cb21d96c63b01aec70c2767a0c11998c29d4a27660939b0576e2b0e0a2bb8671b0ad2760ce30a0f2867d08840c3e05e99ee147a009704ff730482d67254abf31a5eedb98e46d7d2ba4abe8c639cef943e5031c37588510cc153287244ee84e0e899ff902dc3bea2410cc5be0f379d91571467ee2e7d6a192ba4fefefd5c3edfef95e14301972aa767171f36e8764c429d86323121790e038bdf2417296e13554fc2876c49cbd1116b669af6bff1cf412a61d75263a668e740af7478a1128ec2522e575ff67d8d3b27dbc5a07c24cd8dc12afcffea1a129aa9b0a4f6d627ea6603aa4d0cebaf67c279426702c24588c58268222339c93369eb4d0a4c7c", + "0238afe21546f6053864ec3bdf17a8cc2a0fc79c3d7523d56f60d0f90427c78952d9806097d32c7b9ce8973512445b15d9e57eb0fdca8e5afff69be381c81608b67e58", + "31bf2cb01d327184dd0d872e4f880fe421a44b87ffaa7c396d78e2dfc34d2d658dc7f289601481d9e59f2373f187c1320603882683166bb2ba1b514ea07507888f16e1f87d036ff5862cb0b332d0e09692560c736325d4aecc0f573b74ea430c6a83ebee99bfd03ccf36972d950931e59c89416efaf621267ebb09cc575c9185a19cda708274c91dc1d99944a351262b188b8ec4f86ec28a1b19d1159d3452219ab0b1abee7b50c07551747d400b4015a07724a485c974cb9b7816ecc9b6f45ac7a1bff5a384e8e71c9520c05ee3186105bf1d9e80643933bf1383ba0e79d0c861e047a5f3aeae56417fcb3a4af2ebbc5b2ff0369503198baaea4c8b53a69cd23204d2c5534f" + }, + { /* i=4121 cDividendBits=3514 cDivisorBits=159 */ + "bd1fbac6bb43eee8647b76703d5a1576e76f6686c2d43cc010570376515e06594e55a9969cd7f77674b93d3d056204727e04b88f1d35411e9f8529b271d99f615e35cf2b37bf85f33af2c0c35a75a50c1e99c03099db08ff565c86e1d6abce2a86e4f160e4e64aa57493ef807c5882172eda3265feadb39554f4d439be1a89e3d0df7e57dba9bd1bfa2760d9815af7f90d78a35e20fdd5cb3db5766612545f972355deede3316d3c1fb2bd21978ff5d78523a62a12678c842ff67e0842b7825273b17e96aaf374329e22cbcc082bfd22c00157aabf1bdc1b8ecacf9720f7cea80cc7c8251af46f85f3b2559f3aaa42f6124740ace31b0e54d4672618c01a1eb5503b89d67927f25f31cf14debdf09da8f9a24ce5e66cb793464b7ee8d400c608dc0c8cde1de88f8c971da1062b051a1aa9485026e095a6c04de954b56aa7f4ec8fae466ca2521bb55307ea22e90d63898f43dfc01d98011d47ddffaaf133e7ae93e8eb345122ef7d126ca22d60b99936a34d37d34e0f9f1f9962e93d5dd6b87f012ca2be1f6aba8641a04d7205a687540f3081e73c8aa7c5fdc499e60d9dc46fe09584e1ec5908d3e64dc021f2e364701418d4a217e00e", + "7fc42375315934e2edb8eeb3ee75cf3783a07cc8", + "017af0ad65fcd5c55e8b0d8215b0adbe48b88d7add67dfecc2a9d5755398d731da2324fdfc056c5864eb05241c2bd0889782a22a36c82af0508af4d04ca8aae6937c273fe056f811ce203b9f6b4a5258335a0a61eb003272372ec856a3dcad6b884b20d34ff7d76dbf015f31dc6e18e4052aaf4208b953e4a17f1227f87edf677acab468caf58a41ad5c6188b9c8ff59b022a9ff0879b4ab63731668acd24589cd487bb50d39806d85464d266d208396db226faa11e42345ba4fd6ecf117af4a5fd2335df5622d70ce13da43843359aa5bba16c85e42a4559e8d8e03d284f3720409039a3848fcf45e6cfb4f0ebf8ae59580a17f664ece8f24b0a4fe3c4fed6399a2deca7d2282add80a9f1873069531c843b9e1200793135c9e2b904083804e38b755a65eb78f0ad97bf90a2bdfffa0ac0c9df4698dcb4235294612f0632291e3fbbaab751a213345a908831a429c7eca379d1a7928a03712618062e2e0dba06a5d54f6e0c5cedce6db20feb94934479671808b96ca1e631165e3ad8aca39f3102fda7ae0b72b0d7d714805dbc48ba37b08f58647fdec51df8e147a5443f9bd996f3dc5", + "4de1fe479de1de494ecf56e9471bc3ed77243226" + }, + { /* i=4122 cDividendBits=2634 cDivisorBits=921 */ + "f9504851a250788692e076a3888e216945eb70bc2657bc282f638f94204a4170d8f432cd17656817dbb55265a649631cd1892e900f138296faeb741e7bde3e41497f22e62716e07d90695eaa145998fad1c44f8316f6beb1da8fcfa006d84455581dcd5def055316ac66a255c95d40a8e9884f8a5c85ad70061149df0c87d1538441a324e47bd65be44a4567831e5e395088b9cedf6a8fb83543a63d3a78f2c0d7695586b120577d78cba8f2cbddc9401151f807f76011e23339381711ade461ca9558e36cdcd69f71e77e9f41d9e5e798c3d5a28278135bbc520f03af5d923bf9762d7ce310825b0cb7f0b5caf4decfbff43b54042ce23c3e6efb19d2c1af35f4a2789602ede3b35a4109ccfdbc6e9e5aee45252bf2fca3d032bf7924d362f4dff11bcc1a33dbb21f66b7035aaa2ab33af6cfb780984dce7d72ef3405a0c6bf5a145d860c78d1fe0e", + "01c5f22f5541f6db6d52de58dfe07372f63bf2131f7ff8329eaab0e3503b3063d9d031d006ab23429f0ebee13f24415ccbea185da338cd87c066ef7930a3ef2e17cadef1191b4a052bf882d7315fa5d712a69eb23f225e6fd5e7d48fb46891c735fad97320470d468826aae75c056dcca875a730", + "8c994d15ec65171b0b2008a86f03f22539fb637c4a25464526108eeb40b564ec894dee9bbdec9a2779ffcb16473aec38bae0003b0b86db2c6d1c7cae84026d6020e962f9a6227610b34663c0ba414962eb8946987a00be1efc2ed0c53b3dff289a4e1a83b53fbcaf7479e13f530b414f0010c564918b94f2dcf8fb58e69178da6949f81de49fbf2a80958aa3875e93539b3aabf8a971a5b412313c14eb8176d62a3a80326a99d7a58c5570f1d4615e49fbd05828f6f50588291c72f26029559c08a67b09cabb0f98f3d28747482b24bf65b89b844e40", + "0155611d171fb5a11a544e6117379077b452484b71c9defac15c05a9439407570c77b59f9dc0151284cf074cf07f5cff90baaeaa01fe5330b4eec4727c1415415a09693fc49a373d6a35c5cf52cf752883f49c4d1a7c8b1d4f46ea52e6170a18fb7ce740b672c47a8e535147e7b1842a3db7920e" + }, + { /* i=4123 cDividendBits=3387 cDivisorBits=3018 */ + "02a4380600122966ffce60299380f806abb38726b9e73a75542f5689a857a54bb5e563c410c1c0e460a1155bcce6da8ddd32169ae5ece0e534d325df2cc96a496874152e2a2dc2f2189a9da516bf81685d767809b30b4bad6cf61513cd81f2785cca324b024b850446a831e67cd0355e81da101d568ed84aeaf224938d839a93ab1be61534963b84f9d711882a79c84a9aaf273902c7a5de10ba32aae93630f1758e37ba6f083a8be07de5f0fe458da0a720c4a995a212a4433e8c392df5ce56de94c59c8880d5520ae2c858de60693bebba3f182068af164fc2416aab5cbb2eb9dfa6b997d7ab5e38fa8744b67a4ec100931c0f361dc3680b73c8a9e186e44da5c1e6e61da24f0c2bd8a715f535de32b4e877908ffff7ab8f216bc419e9acefa0894bf79d76b0942d2299943bd7a8eb91f7d2a8b584d7a0129fe714c508f77346339f498d96256edc5dd3c0218e5d1461ca95415b64bb20812ef19d1bfe25b55992f3451fda58c5a7061a9055ba1518473667772add6f0107062124e7cca4d093cce14abbda3bf5a8b8cc553dd79031fb20c743e9086a4d1a71b1c5c93f27e7faad5b20f479d5dd", + "a0c43738597ada0336163f03d3f8676ca7231f33840352e601871f6fdadd633691e98395229a3b9c159b9d3570e58e5a6a52f4d18bafbd156d7b1575aa1effe9f182e587d8c514c9c2b9bef662491648d29fd90d29db07c816199ee81105ae16cecefc0141441b1814dd51125af1c382c91c895faf4d8cb3b19d442211c034a568d1a54e7dc76796bc4a535a77272746b15edd007eee31398f1175e289047c5efa9464df6d905b462afc35df2982a0c280935656951a9e56495649076a6d449d24c76b4c871a520eb01ae4e2fe1d7b6e0341f8ab75e4c73f4bd2233726134162631fdd44c13310a7d533deffc8b57e6d044b5af99dae35ba759d638d6fb9e9ef10d292d180df90a421cacdde34a62b1da34109d742e189486a27ca11bebf076ab1a42894357b0aa90969451501684d39a3f826c482d0f25626c749af5f882c2f293c2632fae8000176f8433824b298f7eabf208fa191fb7c7a42f5fbb30222b70f8e62d32cb71c8f9cea3d3cdf9693d2b8b7570ab881ba1c7b", + "0434cab73eb9af232899b14a06580c74a8d9a5722c616fd905196ec7a06563f1ca6e837d0614718230fc49913b2799", + "1d8abb53118ae1c787ba0a4eb0c4f291833319906cc0acd333ce98cff2aeae1398bf69cdb92e784bcafee80e4b8d8850f442c8e7c5306a5ab3d7be3c472759a4cb0c941e75fe62e860277b496f5b90a09388a57ca428ea4a16ef78002e3b37784d26e06b258822c355578857adc8e257d510594a5959121eaca80a981037a2a2ba7ca29355d82df3cde1f0459e3d25b882be5bf25c5d527b0ee92f5d320e8ddd19bda3d64a00dd413ed8580c608ae2dd345cd36164af53929b552703934a655cbd85cef377fa375fc1ee21dc6e4bb08575184733ad0fcb13615247c715f627dd7fb5812daaa4d97acdec42259086317716d1f608e438dd00e045036f1d93866a2143de3c9742f3f17ebc2b8413ae2592db9c45f3cf5ff4995886eceaaddac8ffedf1463cd3a5c69922c25fe6edd74f56fb2bd2b6979344a119096d55f73ec4e7c72414017e4973fb11bc9f3867becbd826789ac75182877a23b0a423549615321f45b2264495f72303a7fad614e346d37b2bda53fed68f135a" + }, + { /* i=4124 cDividendBits=3411 cDivisorBits=2726 */ + "07ff0a04cc728db90eeaeeae2b384207aa67b8d56d8e3b840ea58ece2dec64829cf3ce423fa618fba8a2b065390b5944fd94ad7f6aa3d6203cff084c17fd76d221daf1161283cb90c660d0fcd3750d5df64de9455652573226fc29a7900b578d36b5aa5a012cb0df1f8f0e7f97ac918ecf450860d69bb4a8a67345af24720f2f23bbf54bd22590c76749b187771bc97cafe3ff69db5513539306eac117f60151d6164676539fdba06104a546d7c293c29588470a0133ca1b363c45e36ae3437e07a2bdffe9cfc0d47e1ae2262de68abd18dd8fa69ebf775b277449f0fa9459f6a7fd567e95e71118c74e6f6d70c274d8d1d6f77694e14dd29adbe4750f471789e94ecfb13c398fcd20577d837f338d7e671bd27180b29b7c309194a55b3134860ad9a032978e4997f9a75091d61a4f44e9b7520aea9e25bc7a965dd0149db8d1b2fc260517cc42bfec382150f80a9519acd84e2b1d28426c5419d2f166fad3c83a576221e48f95fdc6d3e86ea5a8fbf8e1cfd6d304168ad05f029b2c401e6306ec454698c5d41def402327b75d5d1d741758aab3fbbc4603a95dcd50ff86d75a5659812b1ffb7628905e55", + "0fe043481efb9ba490396f66263470d93ebb28987614729bbb182af28c27441ea8b54f721e61c3041be6d58d68b4e9c820f74da1d9dabb9c6c46b528d3d030746e378dc7a41f647797a47c1000cc4bab0ae0642bb69f9d9497f25226fd43c499bf96fe86bb5097ec6ba731e1b8c2ae633c027299c3f4b58510b7078fb589a30d40d85517060e3cc2f7db909d94d14736e7a4ade77ec703f7e2cf665539fb74fffda7e17c103e96b69605f60f628fab5920339173da33e7e2f8bc82604c41bc7ea441d30b9ff1247e208fda5bdb3288df06e4b1edbfa4d2fe31e4fff90d1b8845471b0d5be7b2bb27eae30e4d2bfbb81ef1976d5ac7d33a55aeda68f7ecc5b67b7d5e61d9827d6c31190e7e5fdc0c3062483f421368dde699507ff88885ee4d3e10719e6b6a43078cfe3b09cb6067a6bd5c29bca2f64024eda063979f7224e9a69a9db22a88fefe6e3bf6a03c63ef1cca9dbfd91ca7", + "80f062deb31f472ec7f0cebd4609f9bfb52b3e9bc01462617306c59d4ee116cd4bb094b9237e79615f45c59d4de8556fc816d95c4985df9706882d0b937af8e3c008f3af479da3ddc681fe059defb198561eb60af5e4", + "0a5eb9144984a8e1be04b537ee8d06bb44211194753a347997d3734abf9396e1f8926608852f0929af47d7a27946c08052346f617977bcdbb1fa6e32d8d371ea8dfb2ff0f82cf816e1a53fc2df1332aedd63d4d4db1548e54a71ecd4714d3174ac16a4e4e298c694cfeffb6a683aae5096c3fecfd1ce9ca3ad31382e6796024148f98f24f47baccbba4ce492de57562e4edac6d1557472577725aacbfb50b7cb500e74e77942131331ce6cf243ac49b5d0245fa6d97b818f68fa164a19ab4f6db2106e536376da4797e123e5315ed1b5c5c5b4c08c3d57e4e20709e0a065c942b88a451ea8cc02096ebd72eca3336070a96856cda12eb4c6d86c287525795a37ce66a9255fa5860741150f62f3f76c3281763b081293baccb07dcb4369b5e3b7bbf4fb1c29fc10573bc77a89c90cd4dd8f541d7d1d57ecf16ab1371528de58e038ca077c2c1131363d5da82fecb1cb3ff0aa410699" + }, + { /* i=4125 cDividendBits=2329 cDivisorBits=43 */ + "01cc7aaab693ad809492470a2bac505becc255868a5e57696d27c6ec093dbed283d2dd54f8995f7658033e652437551a80f94e997e6fcbf544c215b10cf5a82f58154aff217b2d99ca9dcc23ea6efb96c38fae62c1d529b0620d112071af6824cf87eb2e7881ce06c4817caa72792667ce9cee3efd1d58a2dec4a498389cce3f971d6f4287639a0c112c94bcc1d307bb1dee9588b9d3e2c665077b7ca44dcc3712e8c01156b77648903634174a6b61068c918f175a0f1ab014ce259101b155a2a3ae9c49f3c828788cf6dc2a4f43200d968a4a72585292c96d38cab53917260ed252e8f010ce9ee739492fc394fc094bf873fd7157b59d059bae170703bdf932b37d730f3ae08e828b56179ed91e2f60f3132294f72654b3e6c06eb0365654781c86e040", + "079151b21ac9", + "3cd92d49992fad42613b16be7feb14ef1937fbd8ad4a53bf89a039d02e2bb7d83bdc308d9567797caaf45ff019b86bc95a196bad3167387343487d32d4d3937cff4960dd34fd6ec8cb1ecc008db9c00fd592e48f2a99da7a2597801f5571b5260bcd06e97dd2d31f311d4500c4941cf1b6a42aec7266ecf962d116986a65c8e9924c8df54b491afd6e5e4b1a139a76aea7cf73b4e7992fee86d81057e0eaacb1cb0051ddf3b1cc10c8f7df839a4836430836ce070b50638ef6f71e0e2521d48778d8f93681e0c8be99dc31a6cffaa0044d4df8b6035c9ae60a141b138c1df29bd7682e20737436ef772e388489eaa6ebd55623ea02b076255938ddf55f501f4eb54d4cac29d6c6bf98771fcdafcd1d33a8754662491a0976296c604e4f70", + "92df192150" + }, + { /* i=4126 cDividendBits=2030 cDivisorBits=1603 */ + "227cc4ec550b7e84c1313321e758bf2f89e5360d2cd5a867991f98cb57b6edc005040399abc72747f279e63f38fce83ac19ccf74e4e0ee498becfb4149e02b83405225a5a54696719659be1284625546235617553f0af09dcc99d23188351d7b61d66d4fa94140dab05c42dd948994e0654a01c02e20f37fe6ca1b121eb86c5f35b3c6fb54f676873407968b7d09d879bfaece12d2e5c4287834fddb7bd8a2a29b1eabc3694dfbe26d58806a6095356fd184c2a55120f4a922c29b5c64e1f7c7599d10313d51d07e4c265190e3311aedea45f79be60797b00c050724fc7efce25cb793e058ded4b9efc165eb18315a2c30ca99b38986e541e0cb8e92e303", + "05d29bc5d66730449b352dab69e48b792611722871d74403dabce88083431521d2b88b017bb54ee64ffee841af1eb023d736c3a7d74491d3548ee95c6b108eed42e5415eeedfe83570d4c204f12ed1250987b80e6837e5b15e0113d9de3ea8a01d0a14be64ae536686eb272226d25cc767e0f08a4f2547012f0fe64975c5dbf19e323c97017a45c9338988abe5ad718e3cbf61df156c3e18e59f7e2c3c9ea9ba8dcd7debc0129bd9370035f52c9eab4a0277c1f717a5703f0da9be224683d9ad9d02815ffa2ae2e51d", + "05ec451e5c30db0bd857feb615418b75844d6ce62fe219b7be3b5709c14880993bfb29402753cf4ae937a97e2d84d8184d710df19fa7", + "03454cb9670fa81ef04a40c34929bf9cca152a95c15e93bc2591ebeb03ae34ca4f823cc72b35139db8929191119b7fa502a4939d22f35cb4d5008c13708f8bf189125aee6867b029b7d3db5d8efdd8ceaa0b0a2821d8dc3fe296d3e340b67577d974119cd7b9cc8475e8b44f36b68f9e837e42ebb4add1112855715ddbd2565c675dd5ef8c41fa64b945f4fa0e5abb50e0c2ac7a06f99413efd62c4a0a9199927c6e91d3a17f6b02b588dea6cdd31234c5e2788513d26805fa6ef4a04df8c78703b9c723ed7ef56a18" + }, + { /* i=4127 cDividendBits=3170 cDivisorBits=2897 */ + "037e031332b277920c8e9fef632c538f23413f3d970d365b042cda3af4592a70360d6027cfd6d0b265f5d0975ef97ca62216cf835aced806e08d2f38485f75775744107323d87312688b072c9f0c0b48aef6a2276c31fc8bce1654fe7f0fc81c3f98a04d15e6fa1644f3334c234fb8f4edd2299d193072a47bebe89e29a6c3b8bd011bd19d2f14b4713c5e9fdd27291169354d164899fb9407fe351c314054759dedfd954f07545224c7ec4bcb7ee1b98ec8a6be72d6e71c162cf8682cb5536739e13fed81676773568c512aa1b99609e911a4bdf2240f6f30a0351e881bdcfef900bd1e5c487152095a8338ebc6c032800920c540e52e83c95f425f00187a7393651ae89547e1677f201300885b3cf9a473e8a96f918151e15a47b85751eca637f8308ba8d30e0b01aca8af155c194df8ad898bdbe1b3ad2deea5b50aa45062a99bde5a4d8d9df7606d51724e9ed8b3d0f333e1a5e4b0bca7814a3963dc6fffbf00a714e7694fec520ef1d8e414e622dfebf9e03ca5a1466a7cd20979b8d1bb2ed898f16da82cf7e3921ed6cb", + "c94b35e1baeb2786376807bb52002f44c088bbf3c6dc104678632239ddf0f55a596907cfc9dbb3bdef5d091b114f05de117eb881150a3d5ae4aa3e66e58a1f6c88c69667ab0d447f28f5c3e4ce260692ff4d8d72026ddae963f27e35d490d09fdc4eab9e0d02849b9866152c245caddca2ed6849cc025ab3fccdd99b415d72ff37eb5741655eff3056766eb2e4c2c11dbcc5699f18c06825a08aed4aab4edd398618e59e565a76cac3d5eb8fd15b7e13874fe8f890e64f5c4a20bc5dd0bde14ef00cb5d8dad254e858634a40478c7889cd249c09b55d229668376c32a16f8b89ab484fb7fd44e5cbb8ab8fa972fc706bdbbf8e9bb4a00babc6d7e0bebf23f55f62ad4726070391ffea90d4c0da15462fec6f60e013a08ad2b26533866417c4fc44058a2829919289c9b09c2af50555b1f0e8c55a9172f863c56b6e2999af97e0c9937664d0f9baf72da6f6ce553166b2f77c5d3afaf219ee2e66c930f0b62086d3d542a15a15f003fb27", + "0470faf501cef0138f86ae1dbdfe7fe26d61c28bee7c4ec40ee6f8fff7843933ebe95d", + "43a96690bfa0aa13694f4f95db35453618081eeadfc7c2d78fbeccecafb9e5098cefbe108d2ca9430775db1b0d4c66b1a7eea197d6b994bc6f069c6ec2f9ed1bb9f81d28dd6d3666b2b4f43c4ff4007d4f25dee7d7bd87bbb59ce0d732525dbfad619a47b56e807945be1ff79c614ece2e905c6d03fe27a92f937d5e41542aaf2ac16210559d875c6a4282ffb24d0fc2560073cb7446fa8d29c9591e059005e19ba4e617ad4f04d3b19682af092f089d4fa9cb75a262b52820216436c1000e6ef521b8bd61cce9ff1b446e15518c0977596280fc6ed69ac287c00162f4c3992c2f3e900bb2e3d4d1bb0d6f1e80503b1f9fbd4242678368bf2b5e0a9bd5faeec04505c9f154785df1e68cd1c8f6117b16a118471f443e72c298034606f9c11ef4cae349c82686dd3814af611f47d225d6d649803f2dcc49bc3a5427bccd32fb9b843c18416b1bd584901733410eea8ba050d71f9882a4219487e74d9418e9e28552cfdd9920186f491aa0" + }, + { /* i=4128 cDividendBits=392 cDivisorBits=39 */ + "03e6a13faffb756f4c2a33a51e43dcd91b23b48b0f5c107efe252d4075057295be5d501743b4000b6c2bfe9eb5c6270bb6", + "7b924ca274", + "0814d642f85d746b7c17f02517cf00e791bc4ce11d0bda2b0277d2700395346d5206da51befcfa9d1e40429c", + "5aa8922506" + }, + { /* i=4129 cDividendBits=2221 cDivisorBits=998 */ + "05958c4811c8746a739923d782256615c8f7e33dea7123a717364cedbb4d8626cd54839e9e888c60b18b30729c450524d2dda8e8289f8ef06d2310c557cda17b50f29bd91250b5e257debece4c95c102645d8d7d282a0c0dac631ac551684c1e783f1e05173e2a796c35b26a066e7c284903d8a6dca3fc38797affc0c21e2744af816994e2c01a790dd54a22d5e6677c16a97e9576e1c7420d0802b83ced8925ac7da155a4742ec37d1f708bfbd19719e20035af440f8d53031277207b6f924dd52c2c82038ff16280c5cf61ab3c32f743636d11bb3ded0bb2b3c17f7cbd0d1d61963cc784ada62be084294c403a2e881369fec2eb434eeda88b225c4c4c5b79cc7a0b962d1616cc6a0e134dbfcd79b15b0f5d20657e", + "13baff99fc959136a886c9c930f1c5b1e72257737b973e7f17de0b303a47b0cb836237c9a0905fa776004908139f6ca9d422522fc1c100ae3b901b1c52e163382e01f10a91eac1dac20992b91f35430b928daff240d631aa05fcb3cbaeb67c7f02f4a11c85eda8c961b8e386a509435ecdf25933973be2977a176ae545", + "48742f7caeb282eb357d688889e945ac091a4df5cb1e4f660294fc61d575242e978406db7265bf6d514d518df1f32e8b678b97e6c29a7551ff4387d0fa1c158cdebc4af3cfa6cd6bf2daccd3f986a6ee339aa1f75c7f6d67e0617a2d8a86aba504e1e504b2a2facb435ef41b05cbd7801802250c78e9a92d8d4f4acdb16d091aa05125836fe8a715e79df73f42170322cb07f82a22ac938c08", + "09c4c2e766fac861b91bab1d405e79f0f8a869fab9430d42439056935e47576dad0b299a66bd5ae95b49f045288bdd7298e35c169fc5979053ce4ea25e90c43a451ef69232308bf8df5267a1806dbec1f44f9ec907d3200b18b515db3514013916f1dfa327b95b09f57257b128046a8f129f5713d80946d0da29c87f56" + }, + { /* i=4130 cDividendBits=629 cDivisorBits=598 */ + "07ba7b03cdcfb74133fca851d2b1f3b7c1664c54ef43a99acba4250f8debb55a13149fdd53058b8f23149eeed83b75b3c2ade54fc50cb359c4062e464dc08f285194a7f15e6730d176b46c39655c7c", + "0a11e2ca992d098cd0a902536854bdd49c7e0c6c12663412ae46a8df1594144f87705930dd82bead8bff4d4686bb7e57e86de94c13579fd2660f59e32dbcbcb19b9e6be5fd55ca7d620b6b", + "c479b005", + "821e63ec3aa373987e5ef7f3edf2809b182cab4195d030f47a779e5bf084ceded16887ed38f27611a13b5834a6fb3b26be9cc984d96aec56427f99801304ff54768a93d47d2f0d0e9365" + }, + { /* i=4131 cDividendBits=1482 cDivisorBits=1350 */ + "0174f94ca4d2d1a80a404a051f515e67f41153bae81fd73ee4c5a2e1cf119192bb4bd8c6323d985f12ac86179e0b30f4e0016157f5115a1ad319334763e94f1ebdcd51e27c818b87ab63e17660588f220a64a05f45a80ca436c57199ba4dd9d2281b18329de72b4c2479464edf4b2b082d2ffcc342fe9fdc214240b1025128b22906ed818e21d8fb945e2aa9e58ee3413705a3aca357703652fe0057aa681040210a40335e191ef5240f6152feead5307b9df8a0b4eba63bdedf", + "3baffe137f3a9da59aa0887afd4e3648e239da13434ec2079dcde38d8393d227fbded83784a6f4ef5690697ab48412c8d1771f88f1cd1bc967f4a8f3d704e5f0cd2d074157f7a4b48ca65604247824ef6dddb0804155d7f300ab0288f06ece6ed5f781a30d1431b54f61c39222e83064618a002a43ac37b0cc4c3b85af053bfae96c0f0cb91d46602ae6ee6f78cd5f729b7ff3307a940660f74f7a73fdc4991be2b1567ebc4c97b718", + "063faffe90b739e03b8805823b156f7810", + "16cfc80b8c8e6a046b16cddf7844a1ba212438736a82f114ca7e973a677a7b35f323da974d8a0b2b883621ebd7ae7ef0840febb446694171f79e6bf29fb11414412d7d64aba1490b65d29be27ddb37bf799f3145ad41fd4630856f8b16a1a257b8bebc144263aeafac97b043c06db8292ce881bfa41ae9dfe15f434ba4bea470ad1c71ec6d2f8908379be511ce5c57377f5a0a8a3b1660ab18cf23c05475885e5dec797aea63852d5f" + }, + { /* i=4132 cDividendBits=1865 cDivisorBits=620 */ + "014e54fa488c18dbb6785d32080d3ea3546c58ea8b1714b73a830fd43f14a2f8951566e82b77df2766d35ed3a35935b2dc4689bc43539490aa0b14b50b63e64fb81ab00accde10912ed4880670d89135bb9ed3b8a3fe8ff236dec1b1e8e7cd32976e41a8738b1708dbc55049799420da188d77cf05923347f6ef20e0858c5eb07852f4f384fd4a6619491e6713008ea731ecde3bbf8f12c84a223968f20446074243bf640195f5d608fbb23e1e8349befa16d2e295e9b9d4224388f4dd529f97026512495e2e72bb6679ae4625d1887ac2dd0d32ede44334c5c1e5962994d463835dbf8184e6c3eaaa9d", + "0a164464a92e58d945683c9cd5e731313a65dd0b0cfba68446a246969626d7844b206220b80752174285654d1f04d6b35d0c7bf5a40de888276c411875ba1add9314d51a7eaf2acda30634c0793c", + "212517ef1fe66bacd52014769da7a3f743fc757eb508b1d36f5fa9496be5c4bd19c35c81e9e7fda2a5a87de1f4bb02b4296846f3caf0d36a6e0c63f95c419e1f6a816996ae877e9288ae54e2f578096b84748e1a74646c7d9a138e349b7d7db9b3fa1fb17eaf0557b82f0ec5c3c40e20068c95910df8c7587cc027224cae9acdb948291f670d01c5cd1dca534a8c09102bbf75804175bb3363be4ee0", + "0947ac3e58c3447205c085f0361759350ab00f142b07db8f9ac6bad90d346be67675f16c6b97e5f2feaf6880ea12dbfa55ff3f48d8e5c446ecc194185f5bb65c054cd55af8de7f926ab5c8084e1d" + }, + { /* i=4133 cDividendBits=1872 cDivisorBits=1569 */ + "d2b6c0cc674887bb2ffc5b85c51f63412af75a2189dae3eb83d5dd35180537be2f1cffde4566b268493bb79c4531111c1b1e522c6a3fdda2ba01c3d4fafd568c0723400e3c17dc4784290bcdab78337b3e0755b2ae64d93577b8ac7b1f60d4bc44d5f1407b1f129c7882730ffbc023235c4c9651884b0823f9ce82cd30a2b1b42f1524a4e2782d8b2c7106ce3761e826c7670c110400654755c15f4388e1b9066409b1738292db6ba7b4926660eeef8e57a02901bf246c86edcb2ea2118915587a394edaceb012423fa6f83a14aaddfb36f2ab224503c068a2d4c6b82ac016c55584aea2cb0c40d3ebfa", + "97905fef485c268723c1840ac6a355ae9a2428f5b9576195b992f7a19ee2197943a5fdc0883e8d13b6034d197ef8b106f113606165d98588c9aaa7ca69f59ff5c0fc961721ba21fd6ee43cc040344d0fb2c0e50676978d1429aadc9f441aa5556c2ff2bc4d9540c1c3c3cb3248fd0eafe153a02fc0146609a19935e3b7bfa0514f1dc67b4f834ebeff911bf1c2ad26a3252643ab78a6b9f93b92e4b419131faf21bc77ee5b8f1d690046af4c4d8a9991345ed63bc53adf7532c1d382550bc29c2f71fd33", + "0163e852a2d32178c981278cb67e6140a1964b651176cd82a3127a7c29df0bbefc45a90f5a363f", + "6463bc84d89a262faac11ce79a190e34eaa757e2a2042e462b96dffe21571c0b44a94aa0fda0ade129730d81531f35db4658fbaf220a63b1608fdaa9b75f559d2a74c81810abc1409cbd06dc8bbb3e19cab0843ed6e078f44b28e7c0459d331baef3d2593bacf1dfc993ec27d37913ed77252622a8f3440f5564f62d7ac72e56ffcf6bceaea75335879b766f4e5170ea1604aae8e97df6ad5579b0edd9913a7fc7e224ea9a5c45669409a67abcf4b16df155924e3fea927253da05c0904db306876fda6d" + }, + { /* i=4134 cDividendBits=3650 cDivisorBits=222 */ + "02ab644cbea74ca33105d089fdb9748acd4e5f6f6d9b81688aa94b2298fce4d56bd7699ecdfddb1bb167332f253e9c20d795129f5f8be359bca4781c3e72323cbf47cbd497712b537c2ed5b8cd887aded03112a5b2d8548d6c91b56b604e338eb4562fb0347d9cba55c34dd6b03dbb216fd28173e32cc6c46c5e7af0574de699a68d5e4850f4e64e8925c4fa6fca3a24c101a1e82c8aa41a6836b1698fc249a4c3f17cbb6f14db536f1aa1e08156bfb8b3eed6ea88791c855bd81acbe7ae23f6d68ecb3916094102cc299e480002cdc992ee047d6ee646cb832267922872169450beacebdeff2d92b0c0351a8dcbeb7b18ce23a87e0a8f5c1674d6a0bbf00715a3d295dd853e68419662d3cd4f91238121e87cb2ffd44aa6219008c9bb1d3ddc86c4d4ce33e087f5cc3bf7f60a3aa13c940b7b31c5222ca850ac6f474f9a9ebaa6240e3a989790916c28873b370d07e4e2700deb04487c5b235a9895a0c8509c852177b91eae87eb61d42536d39c14acd18a08133ad299562c1603f882225a9b87ab324857781ded41d7c68d058b42dd485c9a9dac851a1c4f806f0752c882772266986c695b06676097a5274480e7a6e99df44523913aa91ecc7affcfd66778df7f93ffef6c7f997e", + "344aa7bb8b9242c5e2227ac1498dbf5a8229aec4269617c5b0971a81", + "0d11a0b2502461d6449f1dbc534cbf4776fd3b0a693ae10bb7431acd79e8f84f573ea626e0baeb5cc16aeca6733380c33b0e68657511a2212d59d1fe9b5c8f72c86c11e22eb29b40e8f4ff68dc88ce44d7f5a42872959a5a4200eda869c34bc97957c0714f5dcf623b3be5a4f4c328df8187cd145ec6e3f4cc6abf577be4a96b86250ff19e780b3ad60f2805a5c90a34b2fae6d84739728c73c2f945913afe39cea9c34748e97599aeb3a8e2b097655b7506194202a2db12f841b15de2a934950a0497a7a473c5ec8902f97319ce6a1544f78a5bc7d00b33c649290b65d87cdfe33f9cb9890146280102a1aea39feb0ea58319dfc01cbf723c8e02c5e1f67a6ee0332794267cbfeec4a0ea05bbe1e6cd2363dcca0808add9107e6167d045d5fb25658586605352e66af3bf88efc5d31e46f8312ebeaed5b97fc93d8cf47fb44d5b354a4eb00f51f7c7e813ff20e50825a60eaa81e1a473ab06ca80759f0cf2e9cc7995e142e3cb29bd0f9c847bf922d4a2b5f6db687439e1c4a8e50df73342ec4feda4a2741c207b6eb58d6856410f98893ac32e2d5eb292c4c1d6055f48c283397e25fb990e56d9ab9be9e381", + "1c2257a8863de82f670bbf9b66bc97aea5201ec4a24875fd3971db7d" + }, + { /* i=4135 cDividendBits=611 cDivisorBits=440 */ + "01908a4d424ef96148a7053fc11a662a045f8bd877c2695244a3403e933fe7330d50d6d37d77ffa1238a617d6e86cc481bc1cedfc0e4797e4708449e3601ac8c2950334c276976f6233261c435", + "9664e5f039c8a904272419af29d8cc94f3648fc61da79e89c933f43c8b5f1cead01cf8e4123e80c4f8e3e8de064619d8ad2173de6616ec", + "02a9cc1670f865614707830a749e5db08ba1c8d6e06e", + "01983641a06b5ea53e1c7ab1251c9e8cc4093de8977fe56725d12dd40ed8feaf5e336b9aca346b8dc83847152b26cc8a4afa14c52d6acd" + }, + { /* i=4136 cDividendBits=3026 cDivisorBits=1452 */ + "032c9e1bc5139a169d97819c59f5422f3521ed3c12417cbf7ee5bbcff194205734ff2655a2526be83f7a4c547585a5babd36a7147e58e2e6b6f69608ab8a83cf52024a31deabcb0aa390c5193e931ff0301bde176413411fb4c5301621c813a1c602b91c91c9fd82aa0e4b45867d2ce852a2c59c5c535b1b06daaadd051100922c19514c7055d364725b281a7c202b6ba769d7e9e37352539958edd1dc39366c317cb8e8ae314711771b87d9585664d60f64b30621d6ea4316def792de80a3ebee80e03e9bbfcde4896c7f09e265295c167ce21ac67e2a2f52d937679e4a9214c3b761d3220364a344cf265895b121994513d98b468fcea73ff441b5424dc70b1aaa3780c2bff54da3cada3860fdefc9a6a4904016231e6c6622fc640bba4d120d5b9071f727eae6a89104e37a1911cf9d5f8f5a07b0e19b4198086976fde56425f5a72abc61b0f608519c0e6713f1b7aa5aeb6c2d4d744ddc132a8cf5ea0bf3ab7637c3b6a1b62cff21fb3b55ff9340328a45494e472482580abb", + "01966b4febd9aa9ccd9a8b409a8875d2c1d4b0d452c0a59bda24efe90e9cbc9f37efe898a082cac8b56165c8ba951da64f64e0993a6d17210923d600b880363ff820a84ec4c5d06b579850705e1efe2bae34ade81e256bc1ecf41b9d05cb1e3adc472aa4bd8f09559e606fbfe1606959e1d24602baa959a885d3fd0f06c97042b46538b67ec18a0f90fac212827561f07eb2ab45d9e4863189c8ac9c189cb15bacd593090fcc452bf3b102b8c05d54ba6aeb5ab2f630", + "01ffdc66af052fba50418da1dc412d627f9c8a86498fd4eac97a95e0f928c41159d82aaadb925ede3a18b1a12ea7b1888c8ae3b42cb64bab3584d1fca830e08430794ba0fab5c9126a912a6a5c26d793b19ef86108c80137cbc1de1909f8cd97f0810ce28735ce82ff0450d30c71703e66870f92f50d3eb115041f87c695414e3b21c963882e2cf6a38bb0637471fa790e747a5de79efb49adb7207695d0524d89f801c9882c2a97e0fa6ae43134f8f31b5e30fbe13dd064be854903f2949c807e58ea8709db", + "0154e11f7963fe159122d6c4b5547ac9a8ac152722423a79f5117edcb27051283674a201b7ca9e42338393eedad426267620c272e657cde18b977f688795d9f1b95b10b703eb1d1c2b24d9c8467ccd6ec9c41866fa5d5d8eae33e86e7496d56dc6d75c8e3d360880c16f42271bc02f42b95d179ff62872682cb29bb5a145d3dd5c62278c7b0802ee3f8934e818dd5094d6d01e4dadb30a30fa962880a41956ef22d72ab4736798f10d9abc51eb9e225ddfb5ed47bfab" + }, + { /* i=4137 cDividendBits=3456 cDivisorBits=1222 */ + "98813de22ad642cfe729d798d691e492943b5fb89c4c752b54c75b8c6ed39f83df6edbdff21fddc5f170d9168403727368d6678b270bf36fde52778002142b476b52e17db5eaba2ff5e8ccf1dddf06ffab43d3512a8f5e3f738d06ee2385336c2e12c2cdcb1f93c5a53b123abaa1e989540c34435b905bac386be1f5262aa5a0c2e82250e3ef6462770a0f560ccc8e2f5a07ea0f0336c4859a51f9f5add8528cb36abb942d726a691703f46bdc81bae5e4163e86ecfc7db6180a40480a807633ba97e2868401ab1c6cdea69afebbc8c9eedf09f7935e3692db74b1537867c247841b0ab54e2a3362c2e4ceb21d4d74d3ccdb1f026d9533cb560d24c25612fe26408742a1135c2e36278d7e285ba0995cf80b62c4ef42f5c6edd4a21f48ff4780d611da9fb6e919403a8f0bc957341273b54f7ae0c19a16f1a5abbb2d0ad3786c668cf664ad165ad2f220a7b0540941d4820429e08ef4dd5753016ff4c4607a9050a50af0f6cd4ae515c7844c0da637a1969deacce3cc8094218001fe7b5230846015aa0698b89aacff274737b28a81ea3efa379384b4d62e5ec14f6a91a8cab018b845314b40c956095860cc23e5f345", + "161b440f045d4878d33d46e3c134850306ac4c4b7693188160a97aa65eb057b0bde5f8809085de5e5f9af3c7bba60088d0213b02bfb568c8a861d4dc96f66738ecb7975c0e84379934bab158f64cfec309341c08b28ab691037f6a9ee3f960e266f9ac81c6e44a61fae8272d7bdf0330a4340bd04e498bf3597c19a03539a687f8f203662c339fb69ee775835c0de7e3031f2fbf724aa46685", + "06e60d5111411b127f7010f49461faae06c2cc0e74e677c5d66608b1cfd7b3c48e1492c7147d2efe41f044a0c4bf3d46072d3de8160f91d24ce1dba8a9593b3cf49b5325abb659504d48344625a8bb97d1e86f96a7e576a0dd581de7f5ddad5d7b6ecd67b1fcba490708648bd4fc60a963c61cd9d3b49e672e9a98b728dfd211ba05656341cbe9cb1bd478db708e5712722ed4cef320ca72779300cae995608cf8fc3087d734eadd8133d1bb6c85aa7c4dae9c767432265525694a7e3f23d8f66cd1056b6e1330c65447ded8fe43a4d4acf7fb00c409bc05879f153f81b1c6fe30bd05d1526b232d581c88ed16756bccce509e5715e6255a237b60f1369367e2740b658f1253dc88c977e7771ee97b8a002c5373294ceed5", + "065aa046ab06a7a6763ef0ecec585e4ea9530e83e1a3d467a489f08fd7944499d4f848355f618968c833a869da9f49e28eab9075cdad52de4f6f3531c239c0db7028de5724c7516ac09bceb8d2ee72747c172760c221e7d34eb640c9f824cb9ea9e7ff367501836214a563255b470442c086929e7ee339d271350076b50530616ce1a556a115bcd2098fb6cacfbb400b6a1acc2b567551009c" + }, + { /* i=4138 cDividendBits=1916 cDivisorBits=1215 */ + "0e4819c08c75ba5b418e3fa4130a01d02dab79c87fe594dd53b44156496fe494703cbe2ec4db6c7a07a5d75f5a9a1d18d357151c296052e419cf518d1fbf1b940802ad162d87dcfc10dc1dcd79aeaf6f10ff0f883888f69ddd77f2c9156364d7b45b2f3860232a0f5b4c4a1bc603cfec0189dfd8c352d9dd8b85e8e555868014a977212ad105862874a863f35bf62544067bb8ba7b33f026c3592ca98ea14f5e58b6f1cc3c68da8491cb8def68573961bfcb4e906a57c72492eba21484448adb60334a751b9bcf1456532ba25146435347a4596aea7fde8e9defc80f00eaf9472303341cbfe3bd8e664c88536af6aa86", + "02ab5a24a92fe2dec8e608c670baa26c0f88a37ece58dbbc467df26941bd13c31dedb6cdb411375aa90b5e33de52c4bb60788f3e6751d2d9dad68be3641626c908492822253190341e5b4d81b2e21c68bf7b56198a9fe72d3f3d13f8d7e1817c1758f98c8db33dd6af1a089f4409f8b9129040a52aefa216baa11df6ab80861c17eddf122bf3b2af197aa05467a990f351a5557cb63b52d7", + "0559a997582956cba0b441e54c1fa78f1a449d8925f9a49ebb5fd2ac0bce1dfc20b866821244f368ea2694abc737a2798030261ae1bf269a0d46ca567e7e99781d3d781b9d8623bdd837c2ffa9e62433a1f32fc033f107d893", + "fd239d0efceb0d5b121e860a56baf66276d1a0fb1faad3dbb3884f540cace05ea98995a537d9beb8ee58102973d81e8593c84170369c322004fe54d8f68f67ee0ec60b5aeefed5238aa7058e397a36285a4e354e36561b727228a3144dac099bb240dd0085ff0ea4f30130310244ac2b5e77b045759fb8da584ae75bce3e27231711744537794f14e0c8708cbb10b12fd8a2840e1fb111" + }, + { /* i=4139 cDividendBits=678 cDivisorBits=341 */ + "0695287aa848b453f1d228984c52654e40febca9cb69265fb727eff1c6bc429794547c61df8966605ba77c14d028767620b2feeeba2c5e1f76aac422dd5c8b966042c7a4fc6b57c186544536b9fe3617dd412afa3d", + "04f343942213998b4b38d7cfb1de0ec127cc6bc1128b6b94b38661c5fb926cd7dc06bc9542ebcdf5ef100c", + "01546b3646453ad8921718443a54b09969fa26267888a32be85d68f9b69cdf6d3f2b42d3a84e738517a95f", + "0149059b84e4cb97c25ff9ae3654a41458c3f5a36cb1d1a791fe70dee8465fd4a0c6077f4775df7ec819c9" + }, + { /* i=4140 cDividendBits=773 cDivisorBits=271 */ + "17fcd68d28a7035601b4204fbcfd9c27207b2fb6833ef4ba6f300f92065d1951da56281f09dcb170d84e87759f99e9ec974a6c4f71df5c805698878942020fa07312eba4f6fabe34de5473927f1dd90fff8a89493088b0127235f121cf41b1bf36", + "1087df9548d24a481843fe250a4a33dde443b6244944bd7818186174f6ac53a6d8d6", + "01737ac5e3b126521be9c02db5f0105b5be49327af085ded0649c7cb9e157a060849eba7530b92ec361f15488ad1acb63f8c341b0c6f9748e41016fd2f5692a5", + "0e4a8fc0c196b06a9eff7b9dea3614d9b11f08b289b319c7cb5707b971ae0d99f148" + }, + { /* i=4141 cDividendBits=1966 cDivisorBits=341 */ + "084f375fd46d33a8836a42a3c79f43ecb16c4de861b826286d64d5cd21c2e4f98ba551ceb53c64331629f4b346d16446fe57fbb7fa760bc76199d7664fb0544abce43d4ffe421db30389dcf430d013eb420a8f52f8fd4684980e0266323bb5cf518d96f05467ed4abf491ec1472b0b32edeaf35aefb5415e8a3929a14b6fcfabcef8d8a027987a3d8e2284fc4d1aaa54a2c4ae8ceb0942b18f65be9026b9073b940e6d6e697fa7dc8aa23d9bcbace812605b2fb076196152e1aef366b355e3abaa7de56b60e335812032505a563818da51f11d3cf38fe2f83f5edf0684addfd4d534122b34c8fffc2e11bec3ac84ce46335f5d7c5e3a", + "0abc51f537bff8285274e796ea3734c20941159268a03d23a3544f78c3767abd375567893e1554f6309cdb", + "c62541fa92a623b39e86c041ae6fa3af19c255afa1ad0b1175f1aff02b650ac583cf72960b1d5a28bd2742c409b5670edc558ad17fc34c2fa357741146f0b1b702c5785ecd237fe5186146bef5d361a3ca90b8936b299f66feec26ae888f2f4425ba9f08566edd94d873c8a3becb92a32e8cde805d5c0a427d652e7b407ace9509c6624db1dba2fc5dc6c9c3a93d192f5da7651a9f3bfa2b6e721c1a1c864fc7fb4c787574791069ab79f13f6f003f30def1e4b12c597d3d5e208089d5b24e43f8b2aa8245e3e39ac1ce50", + "01357f1f99e5ac84f932a0c6f664ee908133a94b6a2dae5c502760a5ebded238bf2043df560a8450f81fca" + }, + { /* i=4142 cDividendBits=1318 cDivisorBits=404 */ + "151107dff1582a5451a33c76fb9e2da859889d05ba5f949f57264fdb463538170531e2c3b05b5e4d7baa758154a81ae20953942043648ae162dfd5e7fb154024c87cc2ad94d888f44e787f09ba1de66aca14ed787c96eceecfa84af0230b12618eb727f37ae71bfed48b6cd6d8c12ea064cce1775d53371f76ca12cb5f5981f9d2235beb4b19720835972a734ef70470cc7d4801176c2fb5641584eefe8ca751d2bd8e7a2f", + "06622ff6f1ceef374157b882ba61c357347a47a22b8b6df88d4a82706633f80bb6d503d428d9b9fca02bb7820a149fa5052ee5", + "034cd5521197b5ed8468c13a85379c1b08a13bf4e2dd0a5c4a6fa569bb51ff4f076bc6a2146af2ab8d944955b788187b93a62bfe9bf5acb629f4f90f1b6e8eb136ac08b8f6f0f9cfba9e5c0e5edea92943c935d875afab5cf2a12b993bcc0a12add1b49d1e7aa05ed542718c51564843ff279e", + "04685f3d1a5c63fa78416c8f325cedae187482eb985a46f3e4f8d18b0819f435e2c3ae55e6edb21ebe9bc834696b4f751ba5d9" + }, + { /* i=4143 cDividendBits=2527 cDivisorBits=2524 */ + "4832425a29adc25a121ac5f29d8617ee4a8595a955082566a959ea46935b924125220fceea4661262842ec842e1a2536bcf58baef68dc49e6c9daaea5eb9881c10e7470574be36663788fda1fe7469deaf5c7000542cd413d05616010055193f5507fb1cefa497d45a23b301fff4cac2b61c4c289df876365ee8deb1aae75b7326f45e379f65885c124d69d3a31884c60ad84b0721d7ab1280461b77c3f71b3f269a16da0108d8f7bcdfd0f778521a3cfa9f4948a91fded34977f74bf4fdb3215ae97036b0c4466499fc2d547716834cc7f1e0e456d10c181d9bbf09d9496eff17cf0228fbf91cd7d9bb188a4802a1dbfa3b8f6b53dd2e13043d66130a1d08388d1afdf4b5e98f58ff835dbaee5c22cf95bb4bac5e5c844072fba613089469417e992d6f56d08833856e579d7f99a9b28b01f20dabe7a2faca1225b6", + "0513cc187d7079202f7cd9403ad95c23ac791403926957c08469c8363acedf216fe0954bf38acad0d75ab5a147945b6633659537fa00179537f03be377dab9e2aa0ca3ac5135af37360b6fbb24b10bc2f1e16a630f023c48bfa8782c038532944b5d68e865351ba23ea60f86127f615a0e1c25f306183559141b3c84484390e08c61776de0f641175136aa89e91fd4feda9b20e98db9686713d5a60a744ddb8da7cad94d94e4fc7473bedfeb30e809a61ec2756500c823be677081e759618fbd1c62e976c44a63ab801ab4b8fcae713109bfd9abc68f7a4cb8d69a2a0fa0629fa92fbd4ea74e1ef5f0198fc73184edff4496e0791341e13665f174d86c70a698c2ee481c5d05e2d8e349d28c8e3f83a5730ff19d79ddf6762fdb5673761f86e4105ad671212df3286f844e59dea8f033fcd5c874d2aa3209edad0625", + "0e", + "011d19034d8722977946e46f65a30dfadbe67d77534558df6b90f74f5c0b5e6d06d9e5a798af49ba614cfdb243fd259fed67629f4a8c7a755d7a6479d0c35db6c436539903cea16142e8e165fcc5c53575089e95820d8819551f8398cf0c552335ec3e6766bd14f4ed0ed9acfcfd77d5f09238de48a58b57456b8f75b7356f2b799fd63551edf915a1501648e35aded6165c7e4161b3f56f6a9706e567b5197ff982349bdc830a99686f921acba193274bfcddc29e2dea69a150dca511a7d6c9cd80abb7f4b2d30398864b36a58c529e3f73f97f7af85be601df50bcfe840a43d732a7dbd5b36b64b8553ba592bd9de639fb48cc4642dd197109023d1bf3ebdde4130c679f97277c9179da0b26e2efc34adc150fb43909c9d4fcebc292db08c899a1733f864d3bfd6c320eb3525c86dab750fbaa2698e66fca9bcfb0" + }, + { /* i=4144 cDividendBits=3232 cDivisorBits=1938 */ + "c9efe2539715fa99f216d32f3840d679afee1e57b5db2eb463f6d423e9a8c051145bd4f4da414c430687594c1c6fd1d8888b417434afca02d84a72d54fdc22d92a2097b5729f1feef10b957af55e4a802a3bc18fdaadc4ffaa376e2e111f2acb2cbe4db4494cb1970ac843a2fec7de814f52562fb91f890eed384dc07404dbb5e369b8fcba489bd8fddaac2dd9277dc73ef212fa9a8381f29bf9d84c4c14efac16288d25f0be28ed32583b37a24ec5d9920b11624e6258255cf90e7933f6fc1fb4c8942aab1d46811868a83585c382a6cff8eed9ecb067345a8d8d231e890f7b506f47e4fddd60243f53a9c3397a5cec987f4fa87387621a8fb40a3cb0441152d44f236d46faff3bdacb0778c1d461d80b3aea5cd436714523911fbff44a4ca33670ce9b73a1f8c75a03bd39f9146875ad374795ca5978b22e3dcbdcba40498f2feb11a6c120b0840707279c629fbd507cbb77a9eb2a5a9c1fd5bae14a8db8a670bab11887422e103ba712d2ba4f4837040cf7d5411af06fc389f78308e39721a1ccb2c9657c0ecfb1c0cbfb51c15e7c281f16b5", + "03b62e752ce9f234543efd7be136d07c4b584a4d3f8503dbb1d45036e40bca0dd7aaab6e12e20e2d615546b9a2b4942f4376ad412ae7b504ed7371f82a6d5910b62049347484da4e3cf9509d0b41c61525bc74754d4ffe3591b787fbe13b5e3b5a700d76f34fde3a18cfcd6e14fd34831d37991b51ab8af228a3818156a0fb8b75e226d38380149b7082118c789b3e3d85c33b3f8f27ece8fd850f1a0efb484260ee66b231a8aaa853422b8e25a2551e1224831bd751436f352389ad65bf609f793b71fc3a5019b999b63a8f786bb8d5e855a7509640d1fc9e8978f959b1d398f4fdf85296f2bed9c9c4f7ce2c41cade31348e", + "3668050c498f20188ee6c628630b914f4a90b977786c2f89756a69f781592436e799a7b7bb0c308c5fbaedf319275b4305be94da6c979c146b7733df8404244e8c693a3481d6ca3d55775f7fc2b44576e6f5da36b5b794d8a9dff2389014ee80be79cf155ed9c9b009d9e610aacd74844e1bef3ce8704aee86115eab243ddb999e70397cf1f2b45315c2d22318e6f650ae976a477841431582fe8f4b0e5b5613257a", + "85a09895ba1c9dafb17908243978b19d7bb79c9e1715ff7c34db6c1d9690d2512146ac38379d3513e83d42491d951e997c60d82178dad0fa1e60a58b46665fd54cc0d80bcaf4d8b8146cfa6a198e38ce62b8334b4fa6c65009c870a17d2d08bc014d7c756fa82fd1e5663ece018968cbfa257695d38ee1cf22c8d238d1da77a92189d66003921c8b5e3f56a4686580439bafa9725081c2299da3587f849c5786b5ff4fc2eece7af0dd6575e5e4fd9ac43b4c7e36d47cd6219c5d6e89aba1c16c03ef32130468e6ba6bb0d578ee71d181cabcf8ab2c50570e8f0265dd2dcd70b29fa0213fd832a770a0c63e7d39e88d898509" + }, + { /* i=4145 cDividendBits=3714 cDivisorBits=73 */ + "023544dddd2261521482ebec5bd6aeff03aeebceb16954ad1ee0e37171a976f72974b6a11677bba4fb220ad01dd6199ea0f8c0ad4a725ba07fc9dc71e658b083bb51cae116189c4b0fa7ac309199dd7dc486a772533b63ccdd3152579f2ed5b1e3ed35ef533e7ee6fc5e63ea13f25c0a951bddeb677ceec77b4b66fba67be0ed7ce72bea2003a551677e9ee111c78a0e259588cbfde972d2436113e48eb21936edf123206bb6313b60174fbff55ab4d11b9ca83d5b1efca904d19f166ebcca208eb5f2110abd71818de0d36d4d975f11e3c4a73f57a1a77b76a69d2420cd4101a16e25ee330f6d8d99b81e5692f40ad9eb7f42257608332ab51052092c8dc173ad1117a393fd60f75f64265d3c4b7c804271fa174d3126b8be5ff0212f92a48bcd205441c212066e8d893d55ab690a6eecac5a920cc9c6fa17843dfdb2ad72c3cb146939d50847c98667b3beaf52c9e1a574733bfc87f90adabd490b45919b3914ae726d2bfb2e137221536fa08b957e8c9e4ed9b804e6a4bba24883b3cf5bf3ea40a6aa54bf39b25c4a5eac57d5222e522eb78567d8916936fac732718fe99f74edcc0a752bd9c0394ef48ed2a8e16ca90fd7c21172ad3682587fe17b3432a215b6c55d25088e330ae7249d19d25605ba", + "2f65bc7a9fd44fe99a", + "0bed18c019c5241acdc2165f8e6ce2f7a0a5475282ff5b3a2e1e897fb159871089551e9e57b7ea50650917485ceb3001da08125a96aaa101f3747a78e372c05707acc54d7c6207dcb34b2bb3da8f6980ab863e8660441eed5aa552bde6ee19ef8bdb592225a4e57eeb81112a0ca2c7f12df7f4a607b903f63ba23e9408ada00d6f97199b0546c7b048c3a6028405656a94df0ca761acac8289028ca951e06fb5ae90df14e8b0a201566cd8a0bbb43262f039c32c529f2e5e48dae70f8a3df3e6ce82b523af066dd343dff814191138d9ab81fcf9bad429298b0e52b42ca3223f9a28f71ae589e0fe07dd83ec2bf618dacd5888534c65d30458833e190bf84313409efb916dd89221d7f7c50c732e765328ef0eb9e34dae001ed83eb9ad41a699512ec48f78200dfef4a4120ae947e222a725713313a99784e9c0209a780c548415cc7b54fac98789632a4025dd7b852233c33eb4f429fb27de97ba3ea2eed4fd20e8856bf1f81b0421787218bcdeb4c7e54d7a71a4eea0fd71d7bb7e5b655118d73ae62f139301d19da02406979b71a459d558b8249e3b4b7f7eb0defc095234046dd3295d65837aa87f1064931bf14e9cd805d83bd86892d705979db6ee38db43f1ad608efd6026", + "0b70a6a7750dad98de" + }, + { /* i=4146 cDividendBits=1071 cDivisorBits=1040 */ + "0ab8868ff08fda64e37be534f7fde2c697a8138053f13153c0c29bff4b5258375b122e56b690aeaf8f681b73d6714777b3d8d80ab07f3208bb42e3c2883b95571f70c1a184f98188c2f8005c401c566ec273288d6f5b5fb3cc7c033a6b9c0d89862b004b2125bb206234640727b59cd221486b0ae79355af3f551362dfa4ce5c961b5345c002", + "7b7fabba163bccb39b7aa48eb3457a8bc2b46b6c0644e8560085bafd2fade37f198fdc5b99ba77810a7be2ceb845f4e9a1cf942af566f37b5a7df2e10577e5dea4de0161f2c7a85f59228b513c25542e3c525fa523788585106e05522b2b2d6cd4a999271819484590d0bf6771b4a4f6ffa9648a5403e77986cbd90d0425c3895564", + "16391dcd", + "5a872af44c0e7851aaf60f31de49411fc5b49dcdce11353955945dcce68e8db202cb9821a2eacfdb24ae326e9b2863abead530fcbdfef7d0624a1413d8a5ac1d9f5e16ac0c1f8e3ef568f905a68b00224fbdd22293cee7db8de6295498f05f2129361f4026d673fd090fc7b4a7f8daeeb6851ca28b576ac264905a41a5cc945c0aee" + }, + { /* i=4147 cDividendBits=3120 cDivisorBits=3119 */ + "dd0c65f32b0b75f4335c3d4184556056e4f8d6aaef7a3860ffa50bdff0f6791bd548f7005dd911163eaa656c4e4b5db17593728f65265736824c4e6df365740afc2e313fed5b34e846dde7bc841526d6a363976110c807c067dc478f30848cd213930176d780ddccf273acb5f2d00478637074e2f112ddab41c8307c66d31bcf892e94389b68429f0c64fc61153100fad555c8301119aad54de698d172d86f7df0f54ccd27bca1618749df5a41e2261cce6b15bb1a921bbd93a139a6fefffd431e6622c700ccdf1dcb6b7dcdb720db4705c6cd4de90154f019a3c49e049504d816783c729c00d9b8f7d9ede025ece80d6eef0bf5ae34aaf67f1fd6a29ad357b437e3042f7e850492d7d5d4f799a7dc8028cc97cc5e801f2b5d5a4bf7d38b740373c48b4951d68ae069736d18402eb41b79712df27328b848b04c9b992ce83a7dfe15255f90b32c150b71a2bce9eb67b5e35d8a7e31d8089f95ee716a7bb4242f0b1370ce3af29e25f10a28f897df3b231d7bca37ebfda3676285b20294acef956abaccec5014", + "27c753eab689f0e1aae29e81f1b8f74ba88b69a5c9a1123afa76501511765fc679133577e26ee870c3dacbcace6ab42c4bedcef0188be1df65b12a237f38d82abc9463ff91011c11875b02cece22bdfbcd5659bc2a74b8b2107eb8252ae83064acd72a6c22aef0d7b588261df4cd265f722c8a762f3a18a4e738cc17b006ef1febfbf51059a865033473af522cc92eb1e0af28a011ec37fc6f7ce8f1405fa78a24de8b3583219177f6d3bf808ddbd205a07307c220da978ef6aebe2b00725c8b3fcbb1678c24c49006d1a5f70dfafc702c9f031c3709e5e75be97fa9536dc00cbac072d2c231efb8e29614890345c0b6e465f24f4065dec3d89d5532ce3feb5dd0be0d73fae1d0f00d1aa1a60d0b967132535baa0e3395a8a7697efbc5b4e249deb6e2b60b2c25de70f9bce9195f91893c96de6152e547cd2d980f3f2c75ae9352d6f4b561331898d6988368781a80770a6d20fe1cf8b71d54415767b5e2f6ae4b15dfd974a532cf598ea9c2dd51e49f8c058f588684a1ea257afb2e6e1dd694cd795a5734c4", + "05", + "1627c25d9a59c18bdcef24b7cbb88bdc9a3fc66dff54dd3a1b557b7699a69a3b77e8eba8f1ae86e26b646a764635d8d3f9ee67deea6aedd985d67bbc77493b354d483d421855a890a216d9b27d6770eba0b3d6b43c806c461562aed559fb9adab35f2d5a2a16299666caee202ace449b2891c09404f06272bdac3405f6b0702fed42cae6db1e498f06228fc63543178171e9fd0fb77c92e720760c1b30fa29cb389c94c19814ca09b52721d77c970c00ac2beef0764d25f2c23782cffcc42e8adf6babc14415084da9533ffa7139ed1626abbdc0d5cfd76b4e14464f6370449870b5fe54d1072b1c8aeb87331590247af8f150696c375123440d2ca49393bedf242cc0eb981befe29650acb9586dec4a2d2bcd7a177e32e0184ad10cf70308921a321dbb19f9cd883492bc8ac150dc6d4a7ed60bd4ae5146cc544f5d4e9bd19d5fe25dd4aab3b118da7711b29166e562af3be587a0fc750cf0a7bc63ee4552c793a6118ef3b8a0193140d82a4545c405615ffd7d4b6679d4a71eca1a6e17bead675c09384840" + }, + { /* i=4148 cDividendBits=883 cDivisorBits=504 */ + "044fd3684e3b25394a2bbf17c4ee54fe28fc40740dcb8d9fd00cee318116a3d3e7d5192977321f1541af9a1958ad1de7ae14d662dbd15a563ea6a0c56fe9bdfbfcbee66b2b8f56e2a19e0b309bfa2d38a33eb2e9bfc8befc0affeb8d9d67d8d3261434112de29172ee0e6e0877da72", + "9c03b7f9f1f05d936812e3c528a5143d11912c21454d82a0a0e8aa60351e880b019b8c329083fe7cd4bd87c5dfb39de33d89255f8aeee1df0c29bfe7259607", + "07133ce0b5a181a26c01b2ef769e24c9a07af1074bcb72c295e98146881f48a03aa1fd21ae4133f9c6c17da70df122c2", + "10355be5bb9c46259d6c37fdc14cd88e4289f50d88bf5af394748a5e42173288ec232fca4329e4d58e5dcffac829d031b22a6e5934abf918b821bc48783b24" + }, + { /* i=4149 cDividendBits=1276 cDivisorBits=29 */ + "0a7e119ca201985e3b282edb7e041e3c749a44cfd3c15268cfd4d9d5eb92aa1b6635c18b58e4f4f88adf93c982c87ef56c19bc66e6078a245668b5b992db296874d798d3acef071398c481f7273ae132e9c95f62933559778ab7afe9008e17d0db260edbb262ea43346520f2c261d61f6d6fed695ed00a3868a3f33c3a3b0eb7b0a269deff06eb33eb3db34d5e3194e26649840c9bea6c138e2b355d85998126", + "0d2af953", + "cbfc93d03e9a959e1ee87dbf26c6281eca78040f69aae45fd043d9f8e6ec89aeb019e00680c270b4cf9f9e2749fd5c4bfa72a4a119a2b6c08fe389ff4e40275364a1f2f965fec90e404d034bf7f110de3672e31229b58e3ce2c7c157dedffc07a0478506bf1142f5cbafcace066efd37ff6b79d93765c91c908eb06ec88dbaa15c37abd3da68af58ef63dd54d12792d8b2ada78f649fcea91f80c059", + "2a934b" + }, + { /* i=4150 cDividendBits=624 cDivisorBits=507 */ + "688a2e01e6eb99faf1a5a47ca7809f01a4e1340a67d40f6d68dbcbdcf394d79d1d1d61e5122e3aef0b164b0b67a5274a0586409d03facd77f61c861585dc4d7ee9928f59127d58d7bfa6b58e3ae5", + "049e13d9739b71ace1722c7614a57c968c4af58c30d06fd8aa85adba2fffcb0e68f477bc1a47c3789a1aa329e72c874f4d0ee1faba232baefa85f88947c04fa1", + "16a3d3f3747cff0f8ac12306d0b2a0", + "a1d927205bc97f5cb50da246c37e8080c8e3157c2f48868f8ceee2e8a6a6471dea9a2ce2c9e648ba20101389b82893c00e3b585ff8b0b14ff6e3d4ad2e8445" + }, + { /* i=4151 cDividendBits=348 cDivisorBits=141 */ + "0b1a8715332740e615129ea73e6ecb0d79346fd3ec37520252bef16664fbbe509b678b9db05179306d15b110", + "0b65929fcd86668ee288ef4ca0c65fcf8646", + "f96a4c9b0128b9ff3fc8f4acdb14e8da9f14cc072003f27c2447", + "02425a92eaa6e1647971a0ab146d75bd9ba6" + }, + { /* i=4152 cDividendBits=194 cDivisorBits=135 */ + "a62827d5707bba81424a8d1acea10e93e624578cb825cfbf", + "61e19dabc47a723709afc2b4743d1aa5e5", + "01b2919704da94f3", + "556221f157a648a1cca326d78776eff360" + }, + { /* i=4153 cDividendBits=2712 cDivisorBits=2372 */ + "97ce51033a2e2bf78f6f9be8febff54f2c203754f1ec392ce71cdd9d34a060968229d59e48ee1f55d78891bc8fb0acf5cf75acb19c0cb303dd760139869650fc7f55ee3afb1a623b75b10664aae8b875512c2fbc55eb4b730d693e959e8a7a198bc9a52818fcbd37a911c2621b3210101f5845b67dc2685f4ad1965ec1b6b4d5a4b35056516cd81ff0e6e948555e1536b2e61352172e5a535d130ab8214a8c121202717c0ffd286976acff255449a03101994c2dd9f26e2e58fabe3cf89b2231a8a809033d2ea2be9a8aff511b853ea801b7ebf643327ab8d90d84658d3ef9ce5a232484c74e3ba9abb5cbaebacd5a050ab5b4a2fed7ae0b2e74b60898732d6ee80eb7f259a68926267bc24e617df82deefdbb0a3e1da63828dd83e6a6e7cd3d284d3aa5da8dfa218f5839d1aa9163a8317074a1435a46694550176ba5dfa4f0e2647de415c3df47bf6ac2c1c2e3b5917744da", + "0731a768f13dc9ce7dbead22a5abb7c78676cb83eed6ab9f8017048dd7f93146bc78af4658ae64171e685bdf6c4ee2dff44739032c909bf5418609b5802a5f9d974b7ba4713b3ea2bce7b30da939d749688dc316ff8a97baf480fd7d39636a85f5c1510852beabb7687fdf45a5507ee3193204013757d6d7ae8f3daa8e99c7ab247cfd601766361170065a029234568d2bf0bfc5d9c59561c6f32bf46f2384e24ad676d966e2c21e072ef76885f666f081e7db27b0e53f2ae6920b1ef3ed8286af3aca87adc9ed31c0865e44344745d1f3c8128d84fd6e153972f71e2fb05289c73d410f88b18a4b6e0228e67642dbc9987782f24d5594cf1f7db2234dfbe52d4cb48b68ab8f26b58eaaa9f3bcad0faf65ba4a119cf867d623af72f4ba049b31df5eedf56ee0f73dbf", + "151a133d129e0085d718e3fce5782bdab57d6ac90802c26816efd304367820338d20593f4f3064b51c97b3", + "018ce46b4c25957872a257bbc6d2797c8e9460d2f59f574857617cb7da71c442ba37a59b85bf40be21cb8e1799d0f3d23c182cc92caab7d8aece9bf2cfb1b750d42f5b984284c2cb36af8ae3c95f1c85ec897b4c1188d34104f7013d9bee2d40e5630d8c775adf911516795859a9a8ab715b6e0bb88d11cdb340d70980f01a51026baa3c976b19aa318bdaca6ffe21c7318fcbd83b16e0f244d82154f211f4d7580286ce0a1f785234fb72c8ce9f629b2ccba173df2fa19fc1f4ca743cbfd22add8b638455b5d69e24aae7cd8e23f33d62b007907a219f7da86f16c70912bdf16d555158dd30d825732b80aa1abc784f972ec610ec96b0ba776f17b17a1ebd8010acdf2c0d6c125bb34aa257d62a2f7697ce764778f006ed6bd20de0f23bd7e4a37d53882da3476f4d" + }, + { /* i=4154 cDividendBits=1870 cDivisorBits=1295 */ + "312a9e50033500a2d18dd184dde9b8199cb10ad3ed3a2e014aa5cd7bbd9c5038342a2edaef1f9aab6546e5e7980dbe65261c0fc3008eb08d4fb6ee1025dc7c87669e66d555b701825f5edf433f021eee90c3455318317af2b122b3872f5b5e1607e5209aa5019e323751d3a45677556df1778c1d91b667f4c3bfbeab535e119de143375a6bcc1220a2323df88d191a91b0ca1f3be34f2b4516f854393fc2ca21e8038e1edf0b2b6a4eec2257f19e236ff7bc5793abc215b7069695e5365a24952e082ce6baee218c12bfcda26bfb7550aa0dcfa0baf32548d041273e3e8a9e9f0320131114a71838ac03", + "6a088b65620ffd4cdd21d3d2254834752946d7dbe97a085d98e6250894986ce122b4989609e8bc34d52f26e89f1948bbce70b2fb7ab628bbc40d3f13dad285f5c531a87950fbaf3d257056b44dcc40aedea58669200df6d4c9ce2137aca278b7f70321525b627f9f70950c8a1a7d0b6c541542a1962894e0a53e827523b64ac2bc5de7fc2b5f184cb56fd660d7f993269577a810afc41bc9e8826df7aab35dd75687", + "76b44d624272fa19109c3cba4475fb99238280e733146ce6c496553360512c957a80fea0f14ceb148f41ebaed7e0bcb42347341a2e43fdab0a4c5e4647f9ef5f5b411ec9d16ab131", + "0a4d008bc99e0214cffed25829b004e39e0911fe7516fc9a428baee6921e3bd7318a85749094e9a8ecd22fa3849cbee1055a599c66dee2b6e5840d89e0bf1efc32aaa4a1302ad6a0ff661eb7b7b2bba4db1575c5361b00c1c0e6f41089be2114a85cba4dc98c96b2ac881564ae6eb742a12c6b037d9247ff2a8875a5bc2690127b4babfb41000d8ab0b117308b143e12b94e3028d5fa031208dbcc43f9a33447c52c" + }, + { /* i=4155 cDividendBits=3869 cDivisorBits=3401 */ + "0275e61990112637aa74a1a3dd471065c95964f478a1fddf5f7071bb687e09d96b328eedaab97eb477c13eaf010847d74cc3ee30d07a87faa47a5a64314b64f8f5999366d0c3ada1c2ad054e8586089bac58a2f45574442e2981cfaf0b899924b9111a24f47537b9dd22e069d34bdb37dfab1e13b83950d3ca8b06651de4a48c49df4a867b4122a1f3c75f8d082a8cad3c82faad47d73a61a5e52dd9e00613535dcb96e8c4a9c903ba38e80ca3c3a130fda3b5e3986bfa8ad4bdd843ab3b5bf227faf051431b3cb5829b8624043adb3738a2228dc187bdb9382a01faaa6fc5d9a1e7d1a2e7645a8fb507163285b8d47defac6a0aa96d5f2bda44a1f279e96581ba65e9bbe761c0d4e9699445d126d872531432fa11227801c677a401b94817a8ae17484a4e1319903443b874f2711340c7420afc0d0d64978645d278602958a9bc956958808defe89ede6a9382b8dd5b507adef55e2e9eb645813e915db4928075364bf7e4f5d96d361ce9907968445bf4d76bd961bb396baee029b0e79bc22ea751eb1492c8f1a2a93161e511eee5590967cb54c4bb14bdc73ceb9bf1d36eede20127f2e5c2dbacf41d1427390bd9687bbedaeb8290e01090dded4d5b1f0c7ff6ecebed5ad9bcb6d77ff2716884066d2131a14c9641ecf4d73f69702ea5e9d591f49aa2", + "092fa3a86215a82236a8c7861b48d2266d94cd474d527ed9179361ebbcea6f4e6c70fec2bbcb5ec7aed19e6f7579d8f096d5811e570650a156ac52f4499942186b5749446fe4dab4ef9103ccb0f3d366a2fd8e99adf48ebfeccb4bfbad1ed28a26ec253b0ac567609133042afc7fdd26deb7a7381e9a15be94d5b94ddb249e4a23ed7eaffc79913c285a58a0f5fffe8480f846e5c56ef832331f1526f7bd33e810357f48e0705aa6b94e728df1b421841b1ffeb0e77a54c9363e80a2237d09de1b9595cac98de7acc261de7ee74500f36236ecfaf856c0caec3aacbf43c3cf25956dd3b67c6563f857f630fc37a9d8a8f77101ba5533c21e4f6ea139754f61599240b7cc6fc9bc3bda3118c8b04bc0c3db64c531a3e9d856d1655e74e9e4b8fa0215b86bbc0c1922463128e153a5e7dcf0258ad6eb33ec24caae0e1a002684f8cd914e16d923d630fc7cf2a4504946140d6a59da13189593c422dc22c7643661d6dc6c17e486eb2a62d16c5ad3491af8285401f94035c618de99fc3a6a4d23b42392e66f2d5f170827fe97d2f07dd993a0d03c220cf93e87ccba2a86591a1523054527e30a8bf41767", + "449228a8c72fce9ddb610d132f926f36dbe05e63728f2f6cfd77b83e6a046d486dbc9f303642379650249c49e03c5bc55f5811f698cc8da2e77632", + "02f00f1d7c853bfe5482985e23baa5ea48bbfec95d4b6fea3cacea6133c2ea23dafbd79cb144fc05a30b1d2991ba76cde3ecf643beff7006082e5e167689d79a77c0841f684ed3bb0d638516c8b50db4068f103ff49b16a750f80e96b382c52da9cf31c1cf3c48f37a0dc185dca9004ff80339648a54938d7fce8dcd5a02707d1df277a8a3df72d5cb99418aa0e12fde76b2659fa4b8daa2ec87ebf6fa9623a41c2e8a1a3960362e1a2e2834c4d07f9e3bad7a3332fa07ff06a42ff022fffa22d852df4cbd6c29e1af405e7a9796288a6a865ce41f368314fe1fa36f0054c785842a52f6058d5f9565f8225f07c763c024af469eeb1ed6364fdda4f5a212ba270df45af59276ee96c10664e11370dfee1bf089f397c1ba50fe207d10ad34b07a0a7a0cca311c4bc546414e973f74137639f0007003d5467b0047de941449ef0bd29a48609f8ad26e3c641495819d880f6eb6fcfa29298fd323eb8962235ba2ce490e87b4186c7342856962d0c843f921502fb214a50f123dc52ff069e784d3cce737249035ccf7f210b2c87e2597592634b69b578ecc0790d7774de46b1b576e4647e0fd786d8d8e84" + }, + { /* i=4156 cDividendBits=1886 cDivisorBits=1196 */ + "0a9491a430861bb5b8ffc958a5e6ecc13367efad78a3e6f4d011a7735cdad39801c87b759122b7aa036ac1586a5b55caf06fb69434e939b0f889bc2361c963f53f487a8b33f7dcfcb2887c2348ffc626ac23980ad5b59e00c6607676b28796cf0bd4be53e45ac55e0338a6c9623ec83dfc403ee9f2bce8f39d49ab72d8e2120a06d0ae75b2bcf27d730ff66c9d3dcb9dc98b10d1a936af4469538c854c4c724ca061ee2180227d2a8b9c790767f82b7faa909ba002d2de58e53adcc63ff61d5dca73c43d6cfc6ee67950950b76edd46604761ac556c21637fb51e250fdfcdcd7801f23e64ed2603d1a5f2c63", + "036286f7eab1d1ebcf7ca02b11c17141951ef6186f9c6dd51e2176210e4cd5b2112376f594dd3c5fabd8ed755a0cca7ed14fa5b3426bcd49287b62a0162a281a67ec96fcf3bdf2f0097337e4e68af176c6f33822ec4a2dcf70318ea67e550ed6593ef66d51f1a369d6a006794b99e23a72f06bdbe3bda472d0332c88fb2bc9a6e6a384ec64838ecdafdfd3f3f66185569de37ddafc1c", + "032032c642daa17c03e5bb1877cfdaf385bc641ebed014c71fb64815890e0e818da2ed220ccc5dd16ba081c0505c04c8c0d9124601a7c4021a9a61f6be5dfa2943ce51cd87d705cfcf959ae912c419b869c20c18a23abd", + "cdf27819b57ee2f06f803a762cfd4590989bd9957ead150d0c7fc864077d32ac155409dd028b6f7481f4650de3d1d4b733a4ab878d1472fdffdc3535ec249db79fd61e6ea157f689260a60f156115b548cbf24199f8a92bef33e2e036710cd54a5e94191a5f3d05ccabfb43a1675629795cce3408aadd80bdc3a9b096ad8bf2e54392679f291cc34315f1fc7489f8b0f3f68dcb3b7" + }, + { /* i=4157 cDividendBits=2300 cDivisorBits=1747 */ + "051542db363779ac20953cb1b2c7ae76f00369899e9874a9040621120567c4f43a8e173e767a8297e771ebf2177ef970f658e706dbf51ae7f89bbf74e64c5ba6c5630841a16840245d997e6008db4b259b98d71dff0a4d733e6f3a0bb6260cc7887dcd988d1c7866e30f73497dbc4ce109cb3675e30bc84ba778d8eb76cfce63f453b0c7a2bb33959eee5e243cdbca8ece96d19ac2e3fa79d6608e7e62ccccc34502923d2afdb4abca936b3d70f83380c16447f8ca87bf9c3e39ce98f72a263ed600c42035229abe3793f3688f87cb977013caed04921a1c9fc788f74449e62abc8fb1a0057cfc592021c3de25cd40a4a6d547c4a43ced6da854781a7f02f95c95c18a139d7e5d3634a83937814774000a7ea64adf914235f6f1ac4e3af1099a", + "042b31d3c045c0c4c62f72358934d6195f1223d18d69adbce4acc64a9a11572778aa411cf000e54ca84e9a6ec2457212968579e392f56fc82adb7b773b91d741cb4b9e3c9854f36a54a61f261f29b500e519802a28eec09ed16ede0e6ed0e581ff7e4070af63fab928574a8201d886e61d73300c133ce9ae5a2299a0e005aaaee25fd2bb7faef1a1f8fce303a7ce1efd746786c4ee8a8d904a8d612963cfe1c69b8820f15e58af96bfb5aabce4b8b16fa87368fe4e7610589be1d8d1d035b2f354edb7bdbd9091287c64beb12c9c0d9ce416d1b46789d27e017e24", + "013825eeaac8f448ec498aafbff3ce83e665a0268a8247f1a0e3b2b9191b32e13b0ddc4f4b739050a949f45da76db2fc5c340cc6b18941ff0fa7bee4f461572d9d52a1468722", + "015e3200c9ee26e6b5b0c4e68121c3375032d9f3cb8f17b1601b37810ec05326e7b9ce7cfaf5ade23f987f599d9560ed6859161eae0aefb9a17095348d0ee17c72c234c332704a2ea025f58ff8b9397323463823f31268ed2dc87e8707a5efd80cc0e7ef4d4420f34cbc7223aa3ff3326264848ef9db3f5726c7076ab63ad483a29779100227f9fe1e8bb75e45a3cf4167c5312967d2318a23c3f15823788d58df856aa439f95fa42b46064733b1e8654466e9dfc24d22b84934262a8fce5424a1f5c91837fd2ee26204163fda01e45b1331c3a78b7da193614cd2" + }, + { /* i=4158 cDividendBits=881 cDivisorBits=59 */ + "5ca73bc952b4aeb22248ebdbf2ef5a538e402b6b3cc08437c26a1b6fc9caad10cb8201138362985bfed686ef04b532324e026a0cd0d52b42d17c29d97278e23d96f539145d31cf593a23f925734708faa8014639eb6504f3bbb1eae24d1e10bff5e64d300944797adafe0cf1b148", + "064ddd23b7d12eba", + "0eb279d5f8d10b6f0731ead989a2de45080e259e766f074499af57f04c01dcd18789155c444211608f52d61fcf8e8834ba85ccda6d55edc711d4af4ba4c1134fd363f5a1306a25436290d54658e90881f834072672e279876baaa183fd13d877c7d24ef62fe0cc", + "0316ceb63937b510" + }, + { /* i=4159 cDividendBits=2007 cDivisorBits=739 */ + "6a19b7e8fb4f18524a9df9641414181312c931629608fa2be064af3c7223f8dbf47651bb69f43004cbd83157d062382ef2dcd38604b1f3c69715511a5ea1ede91039d7d26bded2d059c8c6655c61d192ef38402009aa96295759dc20087ab60d0d3b2885a028bd529d689d9a8b54ec7a252776fdd636cef98e87a1f88a947bd0af8ca08d26900eb0ab23bc57f6f383c518c2c4281db95a5b1db249a1c1d266c5afaaf43d87006c3ae15a4a2d00b0e3af7b2f80c0ad5ab55bb720097ce21adf585991ad81669a391a772c475d55cd8b6b8e48c041a98edcea680e1ee2f1f6e704ea430a87befb763fa88dbaba8c5bc0799ad0b791c5ffe07fa21ef7", + "04e9dd15f2222d29a21cf7d11d70ce78f2aa9a301a65a9a419dbaf80e02a1a64b87797c8e2b90a2072a35f09cf99e77a7c6b5593c77bdbb714efc54766630200444e94efc64500e615b5c5c44af306056a6ac910996286650282a343e4", + "1597f1b899e2982f6b7db4736a6550217b04f53c7a32487fdc0e8357377aed86f4ecc8c4f9e2360634a7e594707055a5131092dc3a2f32dd1ddff2a51850375bcc4f74fdfee42073b9094310c843a7ab1f7a5c6fbcd8edbcfe5a12f897ab9f9c709e4668dd74e54e8520759562ddedb2535d4ce36deab82268751d1de0cee04c8f704db76dc03718e8c188d2306793a182035d13450e928bd52323fd4c3afa", + "01c0f68392412eb39a6fdeb92ae92a64fb67cf454763e3d0ceffdec1a2c5eb5eb2f54977740c13482f0764436e617ea4575aff1b6572a66e4ef3afd45995eb23b3a4ae13c2e80b03e9ca0da053e301f3fc381a19f0f87c331773202a4f" + }, + { /* i=4160 cDividendBits=3732 cDivisorBits=2216 */ + "0c31931753d689f34f7f3b6965f3dd1543a5909146f966d1d009491751491d4cb767ff8b42647d3d193497c1950d884d45e6fbd68bb3b21f03a762da560cfaa127001b62a4e3e0dd4dec13a1e14363ea138cf43d3bd4c51d8ff1ce98b793a4eeb68417e88dfdd8b4494dc3f69f3fceb25401e8185829921ba5718f3288f60d1a58e04aa6aa6fe8d432036f89aee09987ca162325b8ed4fa499290b717e223e278fbe0ac866c0b333c638c0c01e8641bdad10b3b14a2267559849d2145f7fbf233fd38725ee07708971db2f67697edf0839df52dca59de6296d86bd6502ad5403dbbd7b6b730e5871c3ea79d3b0fdf97e592b4d9d610e9d5183a12b5d32feac2370d06aef6e401ce14b3abb4d873c171c426ca94e402a3ede6c7eb3d599c620e28a7aeac7f8abff5c4e72a81b238a244b8d2b5454db212b5b344e5e4f9ceae1be0d4c85ddd2ec7bfb7c53e83dda565c8dd953fb6693507afaa91aab03344b74fb6daf97685a4e50e5c8daec6ee6e284a845244af7a01465ed518f4db8031ac5b58982f747d3ebb8f0309035bcf70946abf147f5ef42b3c938b8803bf12a40ecedc5af0082930dd75b3bb82027c9a45abd5024c4fc43dbcdc0f84b89bd0fedd79f102e64989f7d3274c1a2f0df70423b6ac57a14", + "22aa5ae4d64f07a115bcf1f22b2aa87bb6ef2d73a4c7318ddac6976cdfd8824d47ee47754b83d9ed990c6a6dbe9afda515b75c59f886e3148b3995f88a027c7cea29aa93109da63478f641368720789cb90e9ac54aa7f9162caf43e5821171d397265daf1ec494cea63eea7f4e4c7347d65b0a8acf5691e083cfbf5439a61f4b7e1bda3c4a09cca147382db5879d6d222a748179ca66cb12899e7d06ad4fb9403b4105278ac0ed8c4ffcf5d5f699c1bf3ebec5ad61a04d7fa812605152376cc833d701f544722e42d975706bea445c06c57a91481d46998c9a7c19751703fe6d970fbfc4cc4066164d12256f2c5bce85cf7b22d6325d1ab53b115961c718a775de0e629ca67b14cb10bad8d7efefb1f75005b89e80", + "5a0c6fe3185f674c0d03ef64b6226ed1d1f478b64b1323c3495d1d1880111a9d02a734b6bf7c86f79d368b3329a3a556edff41f6ee657ff758c76946003f138df2fafb6ecbaf68a37e43b70b28e4e6ccfae2e752e7852c6c9c7fa19b665a2ec9e8fe7753d887a3c5bdbf2035e444fd92db21f294012bfe7de05d18609a1434eec5b22b5d8bf1745245f8034fa682499d3fcc42f5c223cdbe82f831be89c4e35b84fab7dda3ed9660eaf0cf00db65d4af3e170d6b1777fc9f131f714dc10a", + "0c580ddafc8e1eaf18d694adf9550d23ce794b5b168a581c5b83ec56b9cd9bc273fc3fdad5224eb49c2e7022eb95c4c6dfe760b3809a3ba11bda19ae74ed360b6007b0820915a9c589b7c76d4992d9d3b5d60562e58f4ac8f8cf595325b7dedfa84e9cb03bc4fb177759776745ccef9e5d5fe093f935c73404c432c2e3d51485d1bbc6acf1e81f9c6bdbfcfe84b7cc4164ea622da8a20be2a9a245fea2730ff89199e69a817f8ac2ca8e87d23df4ffbf790794ca6ea6856237f3db8072079ed350dad5278b044be775ce233bb844cd38dffc8f3c7342dc9c09548cc0d6482dfe116148e30b10109c8091ce8f5ed4e67900bba5e422a4a3ff6e873b7f9154572b8da3636d8634cbdae336b84edccad25cccd590c914" + }, + { /* i=4161 cDividendBits=649 cDivisorBits=97 */ + "0184a2794d36ed2ecbcca4a0f4ab06cb7ef7999bfbcae0e21631cdabecdb2c5df577accbb5bbc8cb4ac680494844fb389daef08390acd85d9c03ba994646e93fc9aae0cdbad414e2cac568b42bf7a59c7039", + "01f2f3ea094a9de3409c11f698", + "c76608d1e8d2021f3afced22c2461c27e5ade8531e8a79f1fe8d3aab6273a51a6f9c07efc35faacc35389b6d68c809185885cd4a232f3b666b9f7a1cdd7560f6ef3760a2eb", + "01321caf0afd780245e212e2b1" + }, + { /* i=4162 cDividendBits=413 cDivisorBits=106 */ + "0f9ecdb8d7bfce9a47c432ecdfd9f6e4367f761f6fd3c01a221308489ba0bacb043ef6e39399c95c24aead57db0c61e3d9a3cba4", + "0154567bde516f118295d2a7c4ce", + "0bbfe00f319724d7c84eecad7f8fea3e3ef259e121ade733e0751d1c3430aa014aedea2300bbcf", + "d5adc21a7b359acfa9cd392f12" + }, + { /* i=4163 cDividendBits=2515 cDivisorBits=425 */ + "05ce185be92745ddfcfb8a48f522be026aa6ca9df0c15a8d6dd0f2d2959c01a76f682329b0532d0f1dcfe4e01c5a193b1fe08ed0b819ef19abcbe09a8207874f502ac0e629947086399fbc813daee0cdfe6cf172623803263db5781b152bcd422a50157d76a8b796a1aca8b580e74edb81b7649d3022f4af313d6d53035b4081655a8e6ffe49283b67fe90db25ea7739db50236ff8451098944b3b45ceed5c293e9e7db8f092542119f5b503f27cae9c150c04529e630681681e60ed0ba6adf6f2b71c3ca3ae15c1d6a1dbf168905292d08d739a377eafbb57697247f49c922ce3f316f636efc71a70b61264702b7a72df017613d4578ccfbfe5bf13fbcf0b2f23316091d4bfd32d635825bd66ad5afdd60694174b9e80b2655b5c3b49fb6c4624ec39da0d807e7f7d4dc22412336d9919f532f52a52658dcc2823", + "01e334d1a71e4ca60c466090d15acc381a57aa1322cb6185f282ec20555cc40b31d7c71e4798f49fe9f48fcb13e71367555ba015ecb0", + "0313532b0e10de4964f5c42e25acffd2b426d6dcf1af0526b86509244be9c623664b308c57948f9a7708dd13ab95095a03bca32b85dd026a99e9e50acd9c911ddb0ceb6baaf4735697782bccd04e9947685ed74fb7414ede5434e6926f4ce12ddfe226b1651ec286f0775964c740d460637ce8d382b1e02333613254adb32520248553b022931cef2ae393d9209fe33f2fa98c5d6367ffdaecbae07061d722405a465f7027c335bf8d59773419df4807b95b9573d868c81dfa41a97d1aa353e0ae6c2149bcfa3af5033be6ea45a0240bf03e8e80b340c9c7b27731e6f5f803db8bb4dd6ca79681ed87a20dc6c4669ba19f8d26feac88093505a76b87e5ec4c59d8975c660b98", + "274f95cbf5ab33427c123df8e42b604375ec776dbc71db9ff251ac1f24ddd1a349b630cebd8e124d117186e40f9947ee82017c0fa3" + }, + { /* i=4164 cDividendBits=933 cDivisorBits=831 */ + "16315851b619dabf228aaa9b9717346486307f1262030686cc141def7cdb4284230b906c75e6521d46bfd112a278a5bf13597cc281329e4a7b6ea3ec66f6450628093582dc9d54cddc9a9dc775927da39ff46eff3b73b2655bbd6b7e190e3c5b402b925197aef7aedc0e0e5c30b5af6a9ffd69491d", + "494011625934287a5eb65afde7154065b1ff79349ab531440297142e73ff8347ea15bb94366f7ac0fb56bd11a2f2fa3c36dc88948fcaf61e4498ef9990c953d004282a9559595dfd5b504ed25835283a35fe84d28ccc976fb1615c0f6ae217dfaeeb71a44f799f59", + "4d8f8cda046ef4ffaf1dcb6953", + "2e3e55466e9363dfd9172985262821214d021b6c927b1a4f1474a841a4ee41e2e6724c64563fb0edd3d13fde49735e7cde97f045013759ee9dc7e6a08fc7480b925a0f07c639eed1cb0915c65c55bbdad2e4efef71df332049541a1cb699db151abfcc6be60c1e42" + }, + { /* i=4165 cDividendBits=3204 cDivisorBits=1013 */ + "0b619d7b1b22190ef9b1281ed475d05d2c3a997c0f4dc7ca4614cc559f7d0e9b13e646ae786cf06f76aadadb124a81e671094b4dd316f771cfb7cdf12722ce97a645323e8701b7d80896172735625576feeffa8e02d6d9eac8337977714322448f91ea48965089380101f9f545a81d7f75265c6cff55f26a54c3aaa4d2ba221cef0a2f793077b6c00c9bba0e3b1c143933107ad5a87d920c6fe28868d2f50c8a5cf47d0313aede90873f57bb384f8cdbd77472e30bc318fa8cd8b786e6e6a267fd5ab5d302c388d4cf5bc58f1f5a145455f4f3372ce857f86b259df68dd8c95ae22cc9b10fb2ec3509116d686f937277bd84b95f802f1088b7c7e12bb08fc8d00dc540bfa97a90d5da9207e0dd541dab8448781b53c74a3e006a4b3293eef17d766869ee1d176bd1ad0d91d4e41352f2723846b913bac405e3336518403668f8267b1e4983b92a3f9d470063d28649f5034b73fafec6a7bc657f7366e523f88f2308678e237e3190bb8f5e6f7fd8f3e31e05785bce4ac197e6df6ca6b60ed9e409fbeef8e525bcd63ff3631e240c3453b1", + "0d9196db5b5503c24cd15cfe9b9dfe73546f1bc9996c3a33cd8ead1a4e72a3df45569bf38f3ee13fed9dc3bfd31278526414ad87935af333d437e6822c1f8212e7ade8268c17735b139e9e0024e24b07ac45b4230f631cc6c239affd4f3abe7ce066abdfe49f43f90bbfdb808d92acee800102ad9236d0dc1be33afb8edd14", + "d6bb007b69ac0dc08431c878b55c022d2774f0af91ddc59d5cbcb0153dff839d4e81c87230cf3bb414cb15013920458b742939b5f3c1b057017ada89e3ee1038381bba7261c6c4046611d0d17f69485de82eaff66619e2dfd2f1e7977e7317bf9b00452b18c2b245ebd942cd590c91b2ad7bfd39c0812b54e1eb89bc383f2ad8804bec53bc54f6ada78ba00a8a67f94207fe8267d6db193546ce9a2739a028168f46215baa04693c721a1c44174321d0eeaf0b05f81582af5ceecee89d248a604e3d4a0bf660ed947c77f281216bc7cc067f12c4b46f9991aac36d6fe150c769305eaf616838cc574c32d93fa6f205267de8541c45a9d4877a731d95535be61645ed3943a30048586da17e019358ef48e0cb", + "08de1a78ed87fb791485ef3cebae4b3f899ab01574c14726a5d271cc1b77b633983c4802037a647244e2ca205bcab2781920be0d3d1b0bfd8f6826cd105e51845f2e252283dfda94631c35a11914c6ca920bd921413d77a7f47a3c2152381905798dd4dacfbc21040acc4c033bfc45288bbcf8eaa1d860d1deb6cdb6d984d5" + }, + { /* i=4166 cDividendBits=2684 cDivisorBits=1042 */ + "02f60cfd72c0ad16e3afe6a6036ddab7620a0c4834df079bf62d8e2501d9b2d5846f399ef04494e57004312900320025937c2cbb32f68d9894991848c479f1ac742247c997db027f7f1d1633728c417148d565a33debd9c039aec54a40a70b9124446c229991d915e7d9fe38627110eaec24a81fd8ff9fc6f283f7f1a151f56ba204c5f497d59e3779c01db96919addc19565e69ae5d8c7a7bafce078977acfbc225864c35b82efbe086c4c9b570c8dbebf942f452a5daf7ebec2128629f794f84c0a6a6717a0d7d27802b5a7f1724270c9f3d284887d4ad4095b64262ccb7800a685cf07362d6a60b186d4f7b3047c67d0947b775a9f5a5c4dccf1c2c68257026d8001ee8c6e967944a78df5724f849b247af303d645bff5e01a3f84ab9e1d4fa4d7cbe1724d6c47582b424ed2e7c27d3aaf00d222c5728d4fed0fb6dce4d38c553d99f963918e6f016198335655a19", + "0189709b0cb0a19b9629d6004d5a75eb35a3bc56d4bb7df1451f1f26bb0a5522364e348b1fe1a982e70b64c87e4eea1957febd5dadc137338da05ea89b6dfd26224284a8b9b271caf7232672378d9513dfa0eb95c114809305481a114d88feb593eef4daf87a65f7ca32321233882f8d5bdd60d726303abd4c9321d80e28b2f35d4f5d", + "01ed3de701252fca83ee9a9d9630df6286bd9decf1bd14860ba124438ac66cde55e2e2f009eebfcde78953f640bc921c7d36e40f1a39e9a0f70eae458a74c508e4bbb989669192db603a1eb306cd72ba5299aa71b05f3477874e16d8440c2fee6b5e23bbcbeb4bfc342f50c555ee039bebec8af8a6cf76d54d93f6ff2a79591b22a3f465f67a4237f5c36da5f4af7f3d63ab9f2f767a8e523d9b95e067c563c8bcc7d5e06c4cedd39f095fb49ce3f7303c2240539d9422a66264cf76da6e8ba961728da98b270db0101dd61495ed", + "016f16a964397d35f8ae316a5ed7cdb0134f92e77499c19681dd8c6e574a5bc984c13b1e87370a9b728e2140268eed74240658164654ee96016ad42ff90121eb50c8189463a2d3663c8a12ea83c26c66c04fc3b369d3ae89a456b43484e2f936afa25f6a6140876e37bb3641b416fb56b752a8bd832cd3333509dc38677307a78dc000" + }, + { /* i=4167 cDividendBits=3107 cDivisorBits=2337 */ + "05fa0c534bc746a38a349fbc3411e3bfa685e1d81d3cf6776b3fd2a31a165be5452fc4a4ab4b958227b602f0f6f09e58d0d11aebe9d1c3ed5cbdcfd93f250e76aecc9150e845f5ce7f086707cd8728a7bef990d87372cc39bae1d0d91d3835edb8694ba5683472ba7ecdf882c26904b12c9e0f8dbf030eb0a00110fc33adc37560fe2c317261c802d009321ba634901b25cf99c29d3a1304fd6348f86f7ef48e252483746f312c2b3ee7396de9bf7a64b9f3517d74c80b15ba2a48a27e03ed62ea621e155b82877aa4cd99edffe0f32992bf3484241219758e2ef12eb10fdcfdba9213b8740c09503f4fc1135be5ffb2885fda37fc20686e2f0a8d687fa624a05b34db2f37ab43ac36bfb9203c62a4308ba26b1256366d309584e7ba9412d4d736b6ca3654b5c78eaac590859b6400b0c635b5447c01d83c6069c95a902856d71e8443b582401f65f82a335acebe67b2b6631e0c8779f3d11afdbbcbdb10c498f78dd1c4594cbbddd25b8d52f74b8f98a58a4e7661737c6a0d263587fa9184ecd03776da99", + "01ba9f0873ecb823237c52c304c72f5c5f2fae3b5249c10667d5c4e99758942fd1c3333e12dfd75ca3cd261f9203371f6e43128ae6d17eb951abfeb55bbc3f9ab6b36d8556fd74cfc07797b423a5a2b838c95b9c595932f005a37b899fc562b3e707e7916363d80a846bd6220c527fd3dcd01a586386b8dff921399504e8744fa72fa46ede25bb3961bbf866b90ba4e95b7dbdf2fa680388785064e23f5abdb4082a2b3ce3092f5b59b833999878854ad11ccd45a5a935834a9a67b44fdb75fb0a14a72fad870ed4752de266d20fb34696c8e674f4d728f1d92b857d4418e81f31d9e9a3a44c9e9fd42232442f2266a7485c8bcfa4e1e407349014e8ea8524a4094258bd86253488d8075e82d928d85ffebc8ce1a90dcd4426a076c6162858854b8d0a1919", + "0374f01ea969f4ecb44209e0dad9c2602d420cfc486aaf54ee28ae48ee80620bfb620074ec6c8b6a8888125ac3c239596c3376bbbf5052cad7ecd15110202ac79524070a3c3f70da8ffebe07b85658a7eff27746006627faabec1bffc464310ff2", + "01aca4e8d442e4937e4a3e1491a9188705b25bd4c9de786d2a66c134e9f4d82590fc7e0ef02995d385f4c12afb5f75287640f4afec977bcce4b511817932afa706ca73b7c8cbf1d7378e9f6d4280f33b2176e2deed04a280485757a7dece14a2ae5a4c3262e904095050826b7e9277368d07def07f44cf17876fba06320f612f1628b9ac142300c641e173d8c72f66f32ae15eeee3c574d8a41e8aed505d246bf082f70fafe62cb6745850519c8ed651c6885ecac0d416b8fb6e2bacc6da1f850b740e35cb13c40c33a47be2dec5d0651dbb1ca1c6f9bb95a56afcfe908ac31fe7868f95fe0d871bfb3d6698cf87ac3afda2f1b9f92abfa42c72105bd6f68965964c95c20880bd5793fc898dbd25411ee6ef98772ee51bdcea4db9016c7b1b6f40baa9a9f7" + }, + { /* i=4168 cDividendBits=1146 cDivisorBits=123 */ + "f523949a2dc23b60683a54969856f1fd290693f5a3427568284e1aa7fd2128f5634a3c105afca5527ea3f759fcdddd210e18a31c1649e20db85b7cdd3cc028b7f89b92deaddcb1b99681240be406fee55d2c72ccc2a8aea20370d68ac7ed398e71acfcaa6443dd391ac336353f175e6fe47d9e7535d389d01c7913f250a152fcc072263df3e0136343a8e5da326ac8", + "05830b0fdae06e38ebedf3b1929800f8", + "2c797f4c1f4f91d69fa357f9d0ed56cdc0801f5a44f7dcf7ee03490c4bb11a305438d415d6a0303b40abf6e10fedc9e5e31804942d5b6f38af6afd96415ddeab733e9af68ccf096a89ea940a0ebc78df3210e26f05655e281aab1478bb76df60e08721efb822bd08def7738c9bb2300fdaeb2b48e164dc089fedcaff85cc9935", + "0144bdee2b78456ffdeca3dc0a85ff70" + }, + { /* i=4169 cDividendBits=2892 cDivisorBits=1235 */ + "0303399d324bd8569bcf8063f2070b7fee3f03351a2bfee1bae2b654bde461ba538f3a47fb3a0307a3d1d1be00ba0e7ba0ea1a0a964010d26bfbcf82bfa9c608f3cf1443fc24e5f89465db74065762a95adcdc51672833166fef439c3f8002925ef97db853fdabe0e7f7f1fab8ccf50333b773ddf1e41cc8a25c707f793975d00b040ec60b02bac3934beb3bd150ca35d483220c7ef46b1215316acf1b62c18a7c61984c39e1e4f509e6b576ee4161c93c056a9c9ad41b8cabbd125b14b71012dcc0ac04525a8b9e4c59d0cc52b4260a4abcd658d05895e5e246c80846b38a9a7a7c7df735fc05f5b92be244fcac6afc109f10a4fdd2e6c6bf2453fee10bc1f0c29d898b59911b9823984523a520f2d3021c2c3c045127b65a475b13b5c3c940acc391da52233b87a17d167d12d0558f5e562678e98e511e5aae13c4510a9555bbd28f57ea8d8f99d099d9152053a65d2e6f61d73050b793cfbf2e6795aa8c0d5df11ee1f4f0b5240fe6", + "011d2f69430868012a5f3901f1a2fb90bd73cfc675235c7cfd0c7e15296568b441e2435e748bfa594796f0e8ecb1bae203c4fa4a305c11a9073e251bf9c3a2f14955c54b7b500fdd85462adc4d1a4652a245617831d63e1ed0d258eaece7392c36aa91dc462a0ff4ffa29b82cfbc5d3ab9c3dab47ea5251df3e326365e3daf6810dba86d18423f83670672a6f7db91186e3d125cf35f3338049044", + "02b44cb5da6cff8a2b94366518def55c86249ed975d48ff3d0991d05dc8f60fcbabbfb5379603ae78543fa7d1ef7045bc3cf095262889234d9f130b59c570dc60b99a980dee784a06d023279cdab36553e2c1fae00da77cf33e90fa4962f218854ba04cb21888394f04c7e6508694ee2a59cd67cf13c1ebc59cefc1e1d595d90a89ed4d57479e2bf791232c85b78212fd0eb276cb6739896d492eecb9dd485a2b50aed323eab3cc1eecdd6db01421514b223f2ce2cdb2e1fa1b18209811b4c9418a48e9874d92020219b5dfe9cee23d1", + "8f06628d8f2a50676313c0dce29d1e3db48e47f8ff6fd1bebac7a651ab8377fe0e5f84fffc22c3f8c66a1c753256eda688084ed0d841cf73a99f2da653ba82d2e87772855af13cd5dca46c138e286341eb0ef6f571df55621b17a8e2410fe01face929f04dbd296a75a8476bc1bb602411093d4ebccb3d350b41fb9dcc83706c50125e0746960674340a452c748902752cf0e45087d7ca78fc62" + }, + { /* i=4170 cDividendBits=3656 cDivisorBits=631 */ + "cfc6c6d14313dc5426f85c689e6a69578530af55ea3b61a4bb40631efe2b0df2bf69204758a0be0eda3ed976f8dbd40e3b6553d41f1ff664e894617c4c9e1ac180b290e6f26d394fc7cf86dfd990e46665dc779b0611b4d8ee81139a524710d5794cd32825faeea93059c15a3add52cf49796eddbd3b0d5bddd209832915254664d84e72e03492127b42b4520fc54050c9947a8a6cc474a77ccaaed4c91f1ce63313319594445048c0c7fc3c8402db1e26399af8a16720b2b29f4af2caa28dbc5be57338f0fd10da0ddd6132df6f3749bb53b0f705468f4452d4d5bab0c9cb4a560c7acb1b230ed777c19964d8e1d4a02f092bf4f938bcde93d45ce9f503fd951cde1fa1c0faea8a27475d3c43db11cbbcbc326f89c8103c9efbc9b9becf3dfc29fee0e5b36dd22094a7ff4d934ba7e985ee937f012e57abec9092b4df567465b47a5853d6d7d0c39bd40fc73a629a9745b69aeda18975b2531937699cbbc0717a08e5d3e4a510cdff7adf1ac03200f5de422bf158b8dc5bbfe340d47b41852ac98a403fba1c3e332593d5f1af92479218293d75746e8abecece99b115e224746f9f5dcf01714f5759b2f486402bbc55b31a9a314f54fbbbcc4eb3ce33a547298327d3f2e097933fa1", + "2f1f23e56c17f9f8dcaed38f02d4daea3d1f392b028c72dd6aca5c071e856a65359de457e5f2e6ada7ee7f35f85a3a06c3cbaeea096e383969396dac16c33d6f4c496429d11ef2a6c3e85e127ba1ea", + "0468cc14d5af3bc22573db89d20713e2543ca2f4f60a5f952f20dad35d1cee64e045e04c400f3cf9b16cd9ec158273c28b6c2a24098b053bb77de8cc631b5e9f7ac404b9790de62b2ec741ea795de40a1359f3f8a174f9f90af94607489454dca35db61b9053f3c6a3e4a069234377c4364cc6da8199ffc4d8c22fd823f07f4e1dda372e926e98095220574e747ddfaf31f53b3cc4364fe4be5d5b5b5fbdff479de331039d0bcd5f155a997ac098e6adab51ac9869effd6f928fcb5c74e7cfcb7116379749278425685cba4b88b0299b10e5d959bc73817e955ddae48b07b1e1adfa5b04d9087ce5aba4b3381b1aa1ada3af549163c8d2b8bc61ea31de6e28746d145e360d975b0afccfa961f1b501e7245cf51c007f552f0da8c3ef59faf9f42fd836ebd7f5d2f7c879794aaff5186529bc1d1bf066403b17d4b9032af6ba965fc239b2eb6cd9d49b65971ea0cd9bd8b9e256fa54981ed9c34604b6bc96df9485fc8585852cbcf30d44a42517e7b3cc350a6095d58bc7767cbdb0", + "0a0989332b3b7ca24aa3ac9bb42646af0797c87396538ddfd3b81c2f0b9b104f40fd285bcc55a3dc84b078ff28fefcf588369f6c562bd13f7edefe88aca2ee9ba4a540d2a3c28d8bc9e32452b22cc1" + }, + { /* i=4171 cDividendBits=2884 cDivisorBits=2365 */ + "04fc7fd876f2bb156b6b555f5534da6a909c1567fa5a1386529439b1a8232ac77c8c4508e13e96f4ce2ad86094ba6bb1160d7fcb017552fa1b1e90522c3d0aca8a14d64287d73419bba60d717cbf80d76eed06b1735f103eb41f62d293e902c25d141ed94a1e7516dba435bb5472b634dbedec7d6daf8c0d058dbc3debad75f99a3951be8ed25258eaa9a464807e01b5e02d1a23f54cc3609b191bb19382d96a1a9a71798278a3222f6c4bd231a7dd17f5008a64431082811a73af3d6cb3bdb084371deb206fe2ea076227cd8cc0143706448bab3ffa4e78e61911b9d832288a6e3c8c5ccdce44c7ac9c6588c00b9667a59ad9d61acfa396cdf9d2361f98a846fdd6da72c69aa702ee4cc20a67e8c14b6b4fb887863bd0a33208ea42cf31ba1c4fe3e0d5447628becadab57ef9dac68f96e7dbba26966c69026eac06d7e525990b1dc59fe3f49c6b58f2f0d60326e9555fcf4768b4ab4354424733483ac57641fe3fb66f2de5aa5715", + "8e1d175ab870ae1d75922a8fbaa16fa6b51ffcab547bdf18c1c60919ba7807624c792dc5599fbe664f1c153800fe5e1e026661b58632d47ced9c4ca4529a544c3c2265f41f8506d03a796797fadb04cf51742f6d83bbc1a0b4598263050f20d3dda340d15c54e03345e46e12bdf845bbb8bd4a501977cbf8b250a89af600fbd0f7b592d047efe31f2adea7140efc2e1d12fc1980952d8741ba82f2b641cf1f3023c513ef0b9026dfd8945280bc0f64178d09b8fec507e6528aea0d615446298a6b6ee1aec423f3104b7414a8a17e7bc228872a4fb5f3fae5ea098f11df030860c68148be87157a16ffc1362cc16a554c1d3847745f68675ee91f210d2566819db91a44f6bb0f1dcb60e991ebca4b984a273aab756d0ad775656ca6b1ece0a0743b4ecbc0fd4af0", + "08fb745b0ef9423b6bd4216b47d69a93cf37fd0fe4fd89ff86bfe5fe187aaaf3f3573d156dcfc0cc9d3c90628348bc080f27b4c636a8aa8936b60d4b29badeb00069", + "1c72e7c89be54c4608159ca5ce3ecab9b82c08c1610c22858957c6b810d2a74d1a1aaad4187ee49ee2254b26804f1488f5b82cae3269f3841485405ca717a3c2bf707848bab5bb90798b73d3a193e0af0940ce75159edbb74e7fe4120c3311e13ffedac88c15822abaaf8f70cb00072eb8075956077164ae6af599a9241205b7140ff895d657b995f371e4460c628b24e195d04647c58f241865a5ac1d8a2de690e69a8172973c0fc8bd2034576f3bb226f75442f9e7399a2b99911f9fc288af33dc5adf59dc9a06cb0f3b7a0730da13dbb046f37ec79c86d10d276cea130c661b7a498e65f59b36cb5b214557471e524407b7a81a1895b372b2a1f75eed15a2ca27076dee6ff40817b9475e81fe56a32e7893527ec4494d12ba42baac997dc899e61c18c69aa5" + }, + { /* i=4172 cDividendBits=4057 cDivisorBits=1223 */ + "db2c3c7c2d842a4cad6a4bb418172d9f1e46079dff8f134943544fa8a04e78555af6d660c21ce7039349b05d58e624ce265d8646cfc73ba98dc79ca4c8a4f98fb9eaaffe3e629b892cf986defda04320770dc1dc38b03fed853cfd7d6ded2841353ffc6ed29571e44eddb165e03c19f063c72a74e08640f8b2950dacef8f1eec2043b7ac4dcf0f5cab5fedc990a5c146466245fb353cfe4d1b0799378c9c5b3be9ff1b688febc8055b03b18879ad1ea9d8b54cffa910628479312715f95eafc20660ce861fe63723961b246b206842d09899c437a54b7f9ece302a8faf6b50992fbe002b7165223d2eb0f430c57776b4b6d2a07a09985c19996783f90acc881b2a6c22b023026b9a869b0e92de35127bf209491560353c5de19259193e9d2e769098e057c4d57406ab0924debc512170e55a15ec8792ad0b12d8c7e5a68955e0c44cbf9c7976307e294902ba8baf08c717a82e521ed95001b42f17a96e1881ca88ef2fa8866105f3d5ab7ee51712488826729452a01a89ab8834aa537519a8d076160174b6623b288c4283807987856439edb73cf23eba0a46cae368af59c7222c63a08975455089340e22c5b0e428fd4c8b242b637d9801b055826cefc14b81318fccdc979a93439fa539d270b0f83d19b6bf3e0d2e9838097bc4018cebdf86209bebf12156ca14fae476aa5df1d34c6b67df6913e6e8eb5576de", + "3ec6f0dfab88a64da57952ec16a856af34bab4deac1c80f5639968235fe3874b4790b245e872b2c5ba5399c10aa94b18af507487b6952ad041ea69a976d3c2d43b08ba816c101afc481fbefb6f3acf4be8be62030e21550373d6e7f6f0f46280ef4302998a6cfa4ee83f7dd5528e74034dc9308d891100c15c30619f0552d45c206f378a6c861a6dc14323669d1359d5a84d1a16339888cac5", + "037dc4dbf203383944aad300ee97baac0a7ec64af36e8e735a2fac7965d800aebee4481b15ce680e860ccb7ed588b2caf0ad9307f7785394de6b6a32e092552e2a47ce78b533a0354425f3a4ea7c181501ed75c2e2a86e15f9578b8dcc9cd58b3f94c0a318ab3190fd6aaedf610bc9d2058c1e724f46cd045130407285f54e09c5dfcc846a57076e4e9355ee32046fcb72daa847863952d4a8dfcd6cf5c3382b0d1dbc56a499dad1efe0b0d43df71c342b0e968ad17d92c3048836b452a8279a944527eb9bdc1f47300e5396707ba1d3f9c9f234011b37b4c3341ee6845314e159272ebfed8e8b762f02bea1d249de5658f676ed8393543bc03feaebc234dff871137a815d368972b26d2a8906645cf9b8880b0b9b2412f955cfcd6e94bbf513cdcaaa5f4eba1a188b23a861093894082388142ed3a72520dacfd5292dd0082a0e51604cb052abb6d00f866aebeb1dfdb52ae891d651fe4a2fd4420eea95f199b6fbb7", + "1f6eafd6bcce0ab7e5c1caef8618cfdf693c3136607eb58d65ae5655cd11e58034ce1c16ee2e057fe4b35da470027e2ea77ca2480b503ce588fac7bf72868729bf0654429efde11e0b74111beaf1f8967a5c23f776628f544e4525282ae8914110436d059c9148147b65324fa15e17f02d3888b2c45de5ac74b737ffe2f091f65b5eb4c89c0d07db6bf2ff9fd33da5ffe2c3f3b293ddaf5d0b" + }, + { /* i=4173 cDividendBits=2582 cDivisorBits=2328 */ + "1479dcf580fe32d095fb67c784f1923e67af9fec331b47eff2f778e8e5b91b9e2c4d0a173ada6afbb6cc0f1f8a8c1c48f4f01ecda9acd5d5bb9fc6370876533367a98b2d2238fb2c4ae7947195d9c41294e76901a6c266051f121d0ef4366d4374e46516f4080bb49e56d1425e8c45f82839548d5d9fcafaa37604bd820cb4045caac5317ca1a91e78d866f6de6442b8f76cdfe2d87d3498fe4824d36e3ccc8f1f84e53ebe409b6a18930da7d381ab518b624f19778e9f5f9a906f32edc72361f09e4ea7a6417dced1211b1db00dafd627a61e6aae0bb1de2b4f5058772b7a65c85efe973de0e3166003b87c549492c075e65e6926ab29ff210722c492a9d3f16c38e39473116749a41160bedc444e7fa6e17be2dea080c53ffc0cc0d4cf4d6cf35165588569d17ab3b5e6ca1a4834488e4374ad12d1eb32942d351ec24b631650403e", + "1a8b6f1f8e062462ac4a959cdd723783a5b19b5af0ae620004db5e4c02f69d6c3ce9ef815b13cea751b8fa812624b3b44796653cb9ffde7a70ff4511257d34dd6cb8da32eb1beb1f441c381d58a21f8b0eafcacc6a3d292c3a6c9db9bf0d0b3d15dd861285aed1e35d85bde871088dc8dcd5de789434ff58d1380a20c08b46d69ab3443bffd6f74eecbfee98cf137f9d10d4e3beb2faafb4368aa85a2027264c4694e8ea5d02a3f4faeb7fbfed78fef9010e6cb1832d0ef36b256c64298da5ed452a0c21e40991a16c5026f329095a09c0eac486d93595485a32254d00d34621ecf32aebf715907629b6d8b0a8ca9f9f290a8898ec11a8a72de274585c40881a7e3f8d99bf5b20fafd9048fd66687740714ca95f5f462ad3d9ffc19f2b9cfc73cec04b", + "c5792bcd34b4af4b8f848b2baecca0b375febc30c958df725a2a746106c95ad6", + "0ad592289a0fa50b0ec187ebbfc64d7c22aedd333936203998820a0cd89cb6b7bf19003dd1e8eee2d6eac4fa3467f99d4d2fe95cec24ecb709ad2af7447981e7d4ae7b622441f28ee87bea0443b8162bbf6386ebd88059462d98b6018d36263f888e6df0940343220b1a6f42c4b5e9b62449d8bea2688787c347b05a01cd83bf0a14a2813ae9d0c80672b3a8cc6e9bd8b9b67db123c91a56064e6e23d399640b4a071787ae6933345017254da378a51f8c674c6e7ceda0216ddcacf960f2c1fff003e901343c33846477a4aeb1f479829fdbb11661ef490d3060fc41a598e2974b6a5b6e154e30b9745f764e486e6c6ea07d2593b2408ca81fa4bbc359978a4e24e6e82298f51d676cc648fe2de9e3f37e10059cae7b3be087ca6b1367b161dafe238c" + }, + { /* i=4174 cDividendBits=3704 cDivisorBits=1095 */ + "175e4e882e1c5e477c9a14c6f67f4800385b7295fbc0ef0f0ed5ca475473f117033336314a73f1bc7efe806b5d034396c5b461df797cc6573a693bb636ab9cc9a79008be2db87edd667f6741cc4d717c0de6b014ce6585fd2e2031a7bd0f61b8d906008f4d0a9df74a955f45c8cf9ffb11f7dcd669dc6f970279cfeda320e5f208be9800775c48713c3202e9a45f9a7c99bd7ae20160edf11b61bcbeedd8bf0196e99cc95534395eee0244285cc639dbbffb654b60bf4176b1125f1ca95d05f9e4e88898765e7b10a876f59f39c04ca77c789e5e0f4da2b5b34228453f8ba6ec9b2d90c30901a7809a2ca38093629b3f77a28250a6470c6674179db985111c973f2addc11f894838d8ba0d702382e79beeb44f2acee556ec8c6e4f181592283c4a73448a987af1107e6b674e1882577d1c7bd96e7cf480367576e2f3ef01d7ec492ceb9f59c2cd0140ebbe0d162e40f078c376626f72b59cfed184940b96bac60a245376f66d1ccb883711dad28c54d6cccf6596c3449f906967b276cea69d21d3b2169fabf30952729dfc4b73065555a168eae244c779d98c68efd250250cf35e54c1c1672af87d6cdc57fa5cdbefedc3a5892f781bd0c5739659ac5c75543029c961b21312747710e0cf0d29bb87", + "73ca6e7e5f86c481b07e48b81cc27222769e22b51122dc0aa9211cdf370602600ca7a90567cdf0078b308e2372e8f0ad581a0815825bb12282ca3d3049bdde0c3dcd2e0d12d8f73f5a30d519f7c765af1cb184a1510137929c083521c8f5dddde7b116d63bc19c8da70d7a563a1b4cea3242ff209d47e01fc751b88ad1d4cc09552a522bbaa87bfd25", + "33aa30d7f1f108d96f50009e1271cf959e2150e35acd3703290716d7e5039b70e4a620c6effc0414fb5265d6782825e7c83736a20f5ad3513104ee00cda9edce90750783286ee8436c97cc06775e2568024398f0f3618fe7d41814dfdae030184a959de967ee567a1fd5570a17b1c559ba1366175a37f3f4a10ff75664af539c1f01ba20ca4bd4159000e55f453bd4619992768bcec18187b62b7a40e3781428acad023732c5af1a2a3aeb95e5ebdb98b89ef9f334eb1a2d1df2754f94972c65e9102b2527518177073f3b097031af506909c0b9dcc8e2a6148bd470bda055764fe5c012bf10e6499bc4dd65a3152b2ff18bf95c02820f18d050ed7ba2bcb3dcb1a9938b1996a1cfaeee3a92754d6ff60238e1059dcf8e61b163bc4e12cf2f790ab55fcfb54cb773b9f374dc44bc9372ac5ceb10f78714126a9ffe2f4debca11c2e0c3fb23c0", + "1d0600703a66391d94f21214d2f5568fcb08c15f858c48d77efd55ad110d0a81bb427e14e4ea046db6237ef5468d1b964f65e1ec7f4aeb4e5e8d793343b64fd3648a05a5ee6efc79b703e4e23198d991a4f8799cc017cad35099030b7146f12b8952196e0cae856e3f8d05199eda3ebc33121bb01bd7a06a209ed9c9448be718f80b5362035a48d0c7" + }, + { /* i=4175 cDividendBits=656 cDivisorBits=213 */ + "7d8d46cdfbaa400bd7a79158c09b35d5a135db47cc1a0ccfe0d7ce6123388894a2a5c673c78a7a9fd51eebef6e781fbd7ab6a9f12ebaaa587e6bda221407680d72b573c70a919587b4b4f93f0e0c63bcea9a", + "0fce7c89443de3d6de7229a1f76a2f260ed5685624feec06f4de1c", + "07f16901f30f3f7b73304a2075448277daf38f18cede2937bdfe1f567232723ef978fba45acb56e5c04697fd44210380a579268ecfa22b47", + "040bc75d915da2d644238f1f8bfb5ed0d6a1e97726f35622cc9cd6" + }, + { /* i=4176 cDividendBits=2496 cDivisorBits=2400 */ + "53bcc4992bf1f523a406d437036945d72108e5cf79d487423a4c25117dafd2ac019c15bd2f5781db8a9dbfd04cbb6aee9cf23f4f10b148dec975566b1a94d9f3156756b4f3b8b1d96416ede074338d95fc61464f56b3cf9be21c15d6cbd05413bc4891420103ac6a6fcdaf74da3bfe6aea385e1653faeb357b5739a37b48c39473250ce75ddc1e8facfeceddc51b3060b64e60c349a1a19ed6a64f5fd3517e9d77362321abe966da3f48bbcc59fb2ddd34aa1557b6ff4344dd2ad42871d76765525a4ff9cdfb0ad28d27c8257bdbced245294bcebaf26e93703872f3531cb78a88a116702f3967b65a3cc07610b237b92eb130baa7dbe6767d33baacbd0b710b11e06dced55c95d53f5181e5673d4a0c31534bfd9a56c5914b62d51d9e0f7f7a1a0a1e727f6ed3330149b56fea142c971ec310293aff0806", + "d82f6c49e36497233acb1e2824df5a86a582c479e087910729689eb2fab8a78f9c11f29170896373d0892a53fc22634d1de17bfbe8fee297072131a1ccefab5db36f0e8c3b2e820df3fb1926065eb355e756fc55a80eb7183d3e615f94eb49bbf93881b347e4a4b6b761e5477410b1a9e9b0945dea1b23a29ed15f9548f4b2871b4d8b9bc00e5ab0a72d8e3347e2c50126deb9cff116028394d57828992352910e655c4c4dd2ce48117cea15f25df7681edaf1d6e74cbf051d21e9c008eeb58fc427ce38fe157a97b83f9b09f0d32dbfa197312e28dd1d5728dc4533d8e58865893d9d1f5b6074028e8c1c62f2028733ed2616bd064a67dafd78486741a2cb27ad99d08e84e05f1fa9d82aca1c0ea890b1f00f57deb2567eb1bcf370fef4a83445c59ff68d61555801413909", + "6328c4f0d2e52d6b09cebd74", + "9e206af4ff5ab340fa8cdafb6d6cf5f2595f3d0c9a4c2be90a06213e06f2b975425413dc0424d70355bd2a9b7727d10f4602439f1c78c4bbe5467907059826ed363ad3b72ae6a04199b270b6fae55b88d674876f7e25ac5538ba386045098c60bd516ae7f09777f36a873366722e202ac791a16ce8a36fe49d9f315755ab275ed75283eb824d2e9c2e17e9fef0f33f39ae49422a326c59de6addd8b2c9d0f146b81a857e07b834466fbba9797dccf1e45cadd80e18ebc1680ba083ab6e1c8871ab5fea8c8da2b4767e80e82ffd0a7be9c72fa4cc361d976eb85c1cbb30da2a02394467e254f9fe870664573d58716a9700c8741733a76357bdd27b7bea4a5cefba37447acc138facbc5dab45d357b5978fc3995fade34f2b9f6ed944fca87ce5c46859990973b21b4c178af2" + }, + { /* i=4177 cDividendBits=1664 cDivisorBits=1122 */ + "b7bd1f6e2f83e1ad89904d5708b8b7fcce8dabbce9ecdb604c39e163e567e47e9715745aad6c3cf2ad7719e2c71ac0233a58595383c395a9eda1cecfe9a7f2729097dc5e701ad6bb5ff85ef652e73b4b4f5be6d4144652e2f17d17fac2078e5082c982d013dfa994aa3625e442b83b616a5c564c3bc6612aa2df86a06d56db2e11a4c000f50ea3a90ee5c9f004a8a2e9f8a39864c29a530d0ddeb83f76c6c25f930dbef610dd789dd5bb1afc871fe32bb6efe2e0d22db940d770ef9f74574fc3535355789e7b542395839b610710ad", + "020a734fcd69cf1858c036e42edefb6be87d8c90fc5c1a8a71a817a3ca1b72942c9f209f97e5412eec1b41cd527209c11ed39ed31537118d728bc0908401e602d8bec1bf21fb8ba44ffeee6caf0438d1cb750293550d3bf85590fbae1e443236617b7d618dba23619cb958e060af01d3ebc62167e77d7fce370a7b1b63836a095610feb52bfdc6d7c6c8b79a4d", + "5a08203a571ec887f5859e01133d8f40d99cce11953c9a8a6de9b089cc92b550e4c8183d7144acc05adb3139edc90f845ae112398a30ee2fe327e72e8d418c913be0f8", + "0129f2776eae04609e239a6b4cf5fd03e004ca51d49007105632e217d8a75a29239541a6d147a2e46998f942956fe0a2ffd10da98a92a6e0a806acd9f11f82796509f6358cf5da20ee6fca27e21c34bcadaf77d75cda5b4596d38c69b2f122deb202ec90198273f9fd37cfcc4242cc6922240e79e57b89f199963f1a7ea64d785095ed629bc6a75b961b673615" + }, + { /* i=4178 cDividendBits=888 cDivisorBits=151 */ + "7fb9c816f49b47ae83593ab6d295a3c479286c88135a693d1449640e766bea32df53cecce5c5f36994b3ccda55bdb1fc28411f6097b738612bbfb9ec32f92a552abcae46d6ab57305147bbe5b657ca0c0fa059aa56b16ba8ba3c63faa97b745b09e020be3d6fed620728606182d2fa", + "696489af311f3f86c4a59429ba4f90cc88205f", + "01363f3e3bb283dc1898d364aecb76b9be63dfb63741949ed84843ee150dfbd0d40187edc6a9cb61bc40fa77a7948c5fe124b304fcfd24fbbf7755e46da3e0e0aabf06053fff5640026e5540e6ae84f60e62910fee2aa6f9d587e7748f", + "5c9e8effbd59cbb38d3edd57096bde2414b1e9" + }, + { /* i=4179 cDividendBits=1810 cDivisorBits=1042 */ + "0355e5d42f5a4ffe05b44a9cb8b79431331d5695e88c0ac3c037a0ec6c7ba181d99c21fd4b25686f74e52747f02ef2227919986904a0c4b2f8d34203512cec0e20919f1d1f1c894baa48f7ccfdee55c86a72f764d2f223af801a6ceb1397fd3f7c4e7e64e0b59d0bfec616b5541fb01bed265952a78d7cd99f0cb1606b5b4676cc4bfb0b0fdbdd247bd9ba1ac6dc440a90958c7daa59f14937f846b15eb29fc3e501bbb393deddd99b6f541852ee2f60e250b445c2632c51d98c337cf85eecc4ea886e276b823d11eb70b7674c1fd1fc37e5ed97a690d030ad4f5bfc8c5789b561a5ea", + "017d7b210921f4491d63ff80ada9a85cad7b0ed3a39153302f26004c25409ef7b51826ac136e2d5f2da96d757d1521ad770b5cc76bdbbd64c032fc4a3d97333ac0762c5177a1048eaf9b84ae59d62944cbc7233efeaf503d1e6013c1ad4e29e22a79c0e5b1c3c388866a63e30aa4cb6f6581520cee126e2456fe37d0ea01dda940bf27", + "023d0631e5e33f09a6c5e6c614d43132de59f0d55c179d4a1377254418dedfbf2afc99faa638ee3cd8385a4304ddaeba1c5f27e462220e9200a1d0412aff177a3298c427641d4496f363b528ad1e81a530478604065e3f42aaffde90dc9da61698", + "6a7f6fa8d76d4c395aaa7661fdfdedf40afcfb0411b8f72b4fb2b9ace7ba31236eaf106bb3be12410b783e0410b7b57a314a2c06b0dcda14774cfdf563eb74c9917121612d972130d07d5469205491f7a919b0f120c81a23f9dce86a618a1ee6815e7c5b800a26410206044eb2db3dcc2267fa4136d709060b3c32ed84a6c838ccc2" + }, + { /* i=4180 cDividendBits=1480 cDivisorBits=419 */ + "f5077cd09a25de43481ce173a29040e82a68d27fb60df06faf395e74d23f341c7362d053eadefa6a69098c41dbb1cf6440a58c5231ede66690d75af3e4a99f2b19a3135e9684f00bfce454987170306859ccf6127a599f07cef2b3f336d731f4ddb97dd414f0cebb7183caaac38712622096a27aea0e1d2ea39d7a609ab210f3104fc88feca2959e45d9d29322b825515d040061275cb037d4a07f5ef2c0d0ef85b0b7031477a131c65ec493d6009eef0fa41733054e19669a", + "07b3cbee8d2536c29eca7314454096a3de0e1af7e5de54f91f9fbd44d23ff8aae629d1333e1e9a8155cbb3c71452e7039579772a51", + "1fcff64aff4a5170fb9594bf512bac4732b0288d05c604765d8b302ef524e5b78dbbf45c97ea0618436f45c1dbbde101a5427298803816c775f3b96b1623249b76239721e84b8ea98ab480323e2d3befe391101e5ab4a8dfd9f0d915c701168184f8bbc7a0597b381fdbc29d9017c90b58fc2bec0fd573ad35b38d7ae7d329c123156683d9", + "01569ce114ab6e5790e29e174e038f3685fb7147df81131a56aa789944fc70d429f23cce004e65b7ecbdd02a027abfa622dc2914f1" + }, + { /* i=4181 cDividendBits=2665 cDivisorBits=1469 */ + "012c5eea44583d24b795aa9f411a47ba249236e61e16bd160f86aa6ad72caaec6ab18c16ac801b4a41b3f2740f0eb985d7288bd7fb7d7bcc4d93ab3d446dc1f02a63585088dc37c7aafbd04d899c40dd3e982059599b1161fa68e292a69eb39fd6d13f42422a41fbaef23ffa551d7a3ba94f63f4a86dff5205ed38be56fc6effefe851ac805184070a555b31bf9841e7b1c4e7b8997fc257b4ebac37c2cdfb251ccfd86038981f6856b12e4c5eca4ff9ee7098cb31d8e3dc1991f9beea3dfebaae37e10051fec2dbceacdec1f15b70368c107d9cda87256e3a13f9b424a9d0cb11ae84d2e11202b1cb8629fb25cd28f94316df6dcf9476c43378a087ee6e4606d8c8b5128f319e461f8a7e0dd9a85e718e34955bd86bbee4f15daed6ba290723833b76dcc889df13c1ea3234dda32f63a277ad3f23ea8c1affeb6e7e4dd2560bc278295883008f63711fe2588526", + "1aeed4919ef7fb560f84dccaa126ec2252bb5ec155f038114fb5b0d7639566e019ce398d0c2853b0396231d35c23f28c2372bbead73c83612fb5c16b7c50668babdf42270de4843e8f5840c362301b6887f59b241902771da826c4531bf0331d522aecf498f2e22999d8bb86f6b6b06f2ae124435932892e5880645b5d26daac9fae2be09e95c12761bb2e07164cac88c205617e171a0c5d8d08fbc7a0d6ba3cbd665d727e7244460267f21853b242bb2c8e11c64c801fda", + "0b270d47455baa489b3045c3398f41037a5b427ad36008a4d81d9366ab6724bdc7c6e4eee257503a8c1e40a1318312dd4577510bc00f7396ed1f77f663d652407cbda5a39c9d10433c2b99bcee3ce74f3c3e6ce391288bdb399c258ef3a26e55a8abc1cf14bdf31deb31a8ea39a02ddec8d85979d0591a03597c00b9265206ab7530810e59e2c3b5d768b313f00d9a202dbb2f2a39e6", + "0ade98c10ef42a078011afac869688606a2e2ea05b3301f6fe33051a07e367b2a6476ec33f5b6131f1e74e9dbbd5102711f995f4c88c60bb9cc89548c3110a917890ea8beb1440405bd49c9d87eb599020507ce5ed4adebbb25221f7a369ae7b57f4590abd19512fd35613319647cef3ea4d63764469d28cead0c2446444da10030aad5cb0417470a76f639239be0aa861afa08159b08740c07d0e7e0ac728683729dacd80f2389ec03b9957233004cd0cc5a8d260605d4a" + }, + { /* i=4182 cDividendBits=719 cDivisorBits=220 */ + "5a6342fa98636aa6005b0e8dddf686fd9fd42520ebcf74a7a9b00ae9729ae9ad12e3077d246e1ef7b6703479657379ec6bb2e8ede34d5df58a230ef58fe067d31f670812f12f4ae1e9c8d991531270838942f9462000378539c7", + "0c1bb9e51d52f2d98877bec18b9660d746f3d6930466dcdbfb0d4b73", + "07770622ede387b1bce40d38d2b45562c2ce7b6520664b554c531e823f5ee027a150911aa2728a18f29f0a9df74a64506f95ac8788f958bd73c0a16d6bb4dc", + "032d2582becd0ccd05d2c78c9f563bf43d37dbf33c235b6d9efa86f3" + }, + { /* i=4183 cDividendBits=966 cDivisorBits=786 */ + "07ea27e9df5acc6c3eab7e8187ff476a0d2499d0181a80349e9e46f32089b2cb0a024d154df6df9bb3d0750c8b58eaa7ed118609814a57bfd0c50e462e245155c9a6cb674143c58e82415c1d31b0156c1ede08243b98256aedefe3bc4d6de6c02c84391791af880e6c20b768cbb7e1b767688c5dcb4f2305ca", + "0277f71acb201b1f795e8a6e2b9ceb5b1738083a707966729b51630782cdb6aa30a505753b67cab3d679e82bc350b3a3eeecc16ccc0e728d035ba2bf938d01c7981c08d5ff7a9d962e7d82ea5ca7339548fd2080040e493585bdfc9ca23ce32c16af9b", + "0334c439dedf476578be31539712629885ab519d4582dc", + "01fe2602f9490e927187b67bcb4d345eede93bee603c332972e570fc68e0906c37301935e06dbb588ceec0f13dbf3e0c523ccf7db2234fb8bd8da6534a248ce5c355d5323a5a42f3c34223518dac55de37502aa9f2a918eca8f1fd50eec95382b06696" + }, + { /* i=4184 cDividendBits=2312 cDivisorBits=1892 */ + "7fe044045ab871d5949e9c1bf65f65ee422459865f58054cb6294ae21d3a511a4c64371b92afbf3388ad565cc9887a89d30ef879eabf12527102e8177779eb49e89629d24144205c92ab8dfaed29c2d3619c7f365dcbe7e0947676b5023019867ac03eaef46f4045b93e51a4d97472200e7c81206c53247d55cc60dc365794cdbadd6af9ba03d89bc8fa72baef7580d19fe9fda91f53863e6f918b3d44e4b287ea94ba53e8b3297c4757b0ad70ae6f055ea3957ea92038cba88b9667ff0fcbc7abf9584ceccab03df6648d4878c89a9d45cd230e2026d9daee2a1d59f08fd0b89a26a00a9261d7b74206c5c9d76671c3dbe627fd7a7cc5deec8e2d2e3e0f4a0ab147f70d845dc4060aff68485744b0a2c7871ac647b381ed2b58f92e1931e55c69", + "0413f769c712fd301ecc496860aa4834db69d958ab72c40347123edc920cdb2f3bfa42ac535943280c95a61b23c45e7f088c8002fc1af95228adb180eee65c65545be2c0f0a960f87d4317cb643d6f4abdf98de929d8afb17258cdd21d975bfadf2f1c9345ea248f0a226ffd835c6fdeb479952a3f780c9c16990f39c29111cb5a0b7bc32bde354415bdb9f3902fc9d9f673b0fc0277022b239c605ed4cde436c5bfdacce27395c1d5d0c20ad6b88fa28d551b81803c098ae9ca9b54edee475c42ec06a56c94ba05fee4f347ab5068ba9cbdd6dd7b11d3e92ac8fd26e77182307d79a40ee42e92aae774735e59", + "1f5b8a9cc32964d960b1cd19045dfc429497d3a95b876199e5768933cd7ee471dd4c9882cc69b438a3232da09023c61fe5784954e3", + "03f07cace45d927b0f75adc3f1616662f9494aad1861078891aad29ee03b1ad7c9cd22348f64eebcbb2f6d4f01ad023be03d54d83e008dae939d70eb1765304dcf685f115bbf49616370a6f05c61895f2aa1509d23f7b497c8cc4822373a221146690f27b44b1d96eb12c56568db0015eca01b29559d02cea29969e426eac3d1573de86f60ef179ef4f5be44a234593d9b93802de0e76aeee9651560e1fb7ac66ad44cc5860312fe96865714c6ceb63bb354f8ecb1d59da23c61b6dc2b5657dd88f2539087106639c4f631477ff5f17bbd2a4b2b08923d6ed50134775e58f269f630e960486acb3aea75427f7e" + }, + { /* i=4185 cDividendBits=2554 cDivisorBits=65 */ + "6054dbc6f91392b53176bce419817a4f70e02355b792bc34d38d27c11bdb7f8d6620224611ce89929dc206fa3f4ce3dd8b975a9939fc3bb7e2a17bc59ce4d38a30ecc2330fed9eb28f390a7d2ff16cd2277e85cd3658d480b06787112a08eed1554c06608cb77e893364b51e4142e1d954cb2a47c2969646a563ea50ab0d801ccd5242b44ff558018acfb3672585ffb4c09602e34b28465d60eb89a5a781910c3fb59d85ca5d3d16e180af34ac306808a9f5f2503d4e9efb59568077dcfaaa3f5aaa4196185e43af4e3cf4fde8bac4b38acb6f478b398518797df71f10646cad669ee266597da8dd959cf79995d05e2471d350772bea96cf49fe02620b16b323d223ba6d7d2bac64722c5d33c095f8aa58c722c20a77623e5d79f08bcf9e7d0289b55cfe738870b70a4df3fdbf5eaead16ffa834608b37c9586a29c1680d2d", + "62eaf3f7a0158519", + "f94e7e898971126862f9e65b351eb38e6d5c3d84008b94e750e0f6cd4785b704d965fbf75fe34630e3756b5239d91e0f0717693dcd20d789933b1594dd9e4ab180e569e8f4d64f3565993fc73fe2aa9f9907821eb44551f13b576f0dd4a320ccba6e4256c3531f8f3e5d657b898d0479866b66d90f4abf418e6b99607bd3cb40cf28de15c875d0bc9d20ce12ee933920967540f9b7b586a3e2620d6e21a26e96539787b8491f81da3257b6d4158fa66c033a46ad379fa1dcdf16498e78ad5cbc79b4b4e21261d1791183086490170a412be165349832eecf7feb7494d77a913c101506eea9f8b87f07a802474bd791945e88dc95cd5c1b502fcbf11191bffb8c2809dadc11c55817539853f4c14eca00a214f5c9f903cb908173bb9d68bd2666a69be0b30d9a5173f2d5b2102e402f844f72a926b2fb16", + "4dd228b3a4ad1a07" + }, + { /* i=4186 cDividendBits=2820 cDivisorBits=1148 */ + "08e6bebbfb3b29365e081db999ffe81023c3e29eb401d47af50ce8468a3443edbce4de72e1c0f7a831dd8f1386258370dc192c1f4d1f2e826fb3100a9817cad8bfcc4b5fe070055d37092ff30a173e86a9837322cb4d46e17cabf0bfa04db3819a79e4a5cd1e1364d3ec202b09f5a3ccc7676a0026345889ce43b22708ae7c8ee05cbe92c61f27125dabb1d26cf809507d3b8007eb834bc0748ea3ab3e50438346cdee3572664ef9a084ddda0ab048d074993b950ca5d1dc03a71a1d250367dd4f8597ca07d0199ada6c81248df9a92e833acb142ba2be76f6564267f5149d88f424fa74231de1632919bcc6bb4452795cc07d7f077419b8f7343f5d01af928c4b854742de52db5769aa68b48c374d6648af5d62252a5a62099f98971b221cc74a4ecad394306400496102759fde5d7b9f2b7ea29f5fbbe533906e54d3426280e4caf5ce484d48111a2f35f6cfd783a51ad1bfe89287bbaa283be077ef7a7e3a70", + "03a5e96846fe2e4f90314ba63029839ba73f832ccd942e3e4a73d3146744a6f43b87e108c5dddfab17ddfb0c88ba67741a50128ee677ab034cf173defd5c113e52338e3f2665bf5d34e74727bc7c4a0e1344598b72a151162d17e22d36deb99ad5fd0d9a899e9c4624c75f1bdfc826e106caa08079f6b1318cff3f4b3eaead77323db1f278e76ffaba3ab51b46b48fa2", + "0270a3de1608bef7c820c73c14255c48b416a41815ffb80bdf8067faa15c88a09f93b55613f2bd3e947c551d04e84b01c0b0df566ea9b588a6b9c85ce956c8d85ef06aec8dbfaa45f3a9c6779243655f3781f12b47a3634ad05c214e28fba07f04eac8a3f5bb1b5a26fc116abd1e9f607010da8ff142ef4b82766e1f5e0cd76d40eb297b24c31c9031c2b7c49d958893f20e4af1ce707531ad977d26e5d9f633a77ca2a228e2a8536978e1904ac0f8c3af809018f2ab06c84cb62f91d31d0ee26e3633eebd69c668b2e837e3152a25868741", + "b218e0773366a70700c174a8d99ab822853cb0bfbb136c8663f87313a2e4567e72542513848824d9ee89a3c15797f82cf2ddf384428ca47867390902c93bed261df54276fcc3c7a1b958e6056ff6b11061579df1425f47c2ae3c862aac6ce7f70e2a9725b083637f3d4019bbc1d936eff04b54aedb7e1d2901425e00c99aaefbc174c5d794cd54abea23dfb61b544e" + }, + { /* i=4187 cDividendBits=2001 cDivisorBits=1645 */ + "506b42e371b38fa4880d19f0829a2ae536335d5e02bba4d47ed5bf5b4aedfc7902058d6a4d2f619bc271e6313e4e1b415997cd17b4cb07587397edae6015c6706e21b11e24641a53244f402037c14c672153431354f6235c2ced8348811e6ae60b1ee0e0140b907f99b5cd661f9c3e300498061379eab4e80fa0315b4defb86fc5c5496443e56370aa457f305d4ae927c31af767f5d6952e7d9370d6a3134ccbb654203ef937444c775773700729ec95a5daba66fa58ff864264447e82b561c595f7a484690402b18377f2857d74d8d5503ada3d1bb80fc2ab0e5d698269772937c58d2f470d9d67a1323802c65aeef83d260524ed5e58268f2b", + "0efb1565ba7a5436310d46daf6cdbeb68d7605dcd07089be2f2f482f400dce3c28c27f9de65c740d35f3117e26eb54eb4b50015a95943b2c9bf21918184769529452a9029598aa4db18d5ed5ad0c5b8250471fe494997e8c7b3b38deff0fc328a15b2426b13520ec9196713d4ddcff128df6cb96d47e2b044fc973b71914cc5a27dd90cfb803395ae6008f7ec1d87fe6884439158744dfae31eff1761e34dc9b474956e002771a9ac0795a6a8867a9421dd592dfece413c41746cee6554863a70ebbbc99122f99b9cd7a81afcdf0", + "055e3e5977341a01378d75f85f10161d22b13b8606862219fc6622a898f5f70affcb2e1b72c8b3873ed0bbc382", + "01a34813747eb44a4ac6c0f315e76b73ad0ad8c0d00fe6a0faa7f8a8fffde55f1208dc39158fa970126a5e3de610eafee9e548bc5a307c6bf2bbff5a73f3316aee4726138edd18ca8fd6d4e4df4e73583b06f87b140219f9fa4fdaebba3eae814cd21c2962758169b43a213213df37bcf35ef86c63c5a455cdb7b5e1ae33b2c44f84ad9e09fcb08fd063852a34f54cc6a14c91dc7bfd9f99a07415d701f1012b86fa440312663aa23f5490cd945689db30fb2e7af62d4934a64b696eef53368d5c8b663f13752e6d418124b22b4b" + }, + { /* i=4188 cDividendBits=1017 cDivisorBits=38 */ + "802342d00fcf943c1555d4415bb5a9b7dfe828b207b31bac4f73ebb57133a884900e33069d9c5cf15137e2cfa0127ac198764aa44535f5613b038fe61b13d5a7611d07056a9fdf624425f1bef9f1b3e9ac835472fdf765804ba5c4785f3465683dbccd369bff5db67e7db26a7d5b1e23c712c336cc9baefa89d426a179402b", + "11957b3cd0", + "074986e5804439f3d48e54bdfff034b8a31a33b1504216ec696145dad43e169688f510f115b587a2c71bb0eb16fc9ef7d4242e146f51676076d4d2c009b2794b539424beb6aff2fac2468cbe972e3e21caffda08c71c4c0cb3ff75eac318f5798a68f51d0d27fd16af1c1322e3dcf58c22ca01d3fed10658a3af70", + "06c48c752b" + }, + { /* i=4189 cDividendBits=1122 cDivisorBits=950 */ + "529449172c212b31d609bcc876f14ce7bf4a73e163d3621c208142b1d49d4ac5a8cd41e413cc703581e1dfeda57fa289fbce675e34ce548432b17fb2c103f56a2da69511e06154739a402d4ad3100a5c899b27ebbe53039955512e883651fb156a71b2300476d84e252d84a3fcb37b9fc8d5598cb03b9135834197811a93c1e94c8e19934055a380c67e48b3", + "3ce610b920acbf436b269d5ca751ed19b3e59d34ce286436591450216c11d206006a29d4462e6d57bf5897b9ba6f0b32173428316fdff97d11a7ba612c498f251fd26807d1710f4f6b518bed33bbdba29f5eccfddd2a03aa85df666fe3d5754c615019b300f3d183dbb5c6ef03c4d623e7583eea62c769", + "015b2379c674601cc5d4291e6d321bbcf49bb9914da1", + "2b310b5e9937dd685e083c62424dd8784ec3cca923ea7a4b9c6c4e2077771c317fd3f9b3c044cb36f4eb087d24160904926f87f7fa2d3ef237abf0cd71a31340dd85249d6835699ad24a633b6d8bbe22f78ac626ba11c80d4e8ffc3e2603e6a82789668d808f7fb1fa33e6e822c8b90f4d42ced4eb4aaa" + }, + { /* i=4190 cDividendBits=798 cDivisorBits=783 */ + "17ac75079155f63e595c57a5c3667c431354af39a571c8166a8bf6c209fc32acbb6c088117e42a8dcc15d3c748a1844b3675b88e72b1bd9b5aaabdee9c6882f2ab1ac870ecc01866ef83359795f700b8194220f6c3a4fdd243f5bd008bbb6c5a02105ef0", + "012fe3a6b1c705845f63bbd488493d725494c9dee419af2d74badc539b8de6208ebeb5068d1680aa055ed99938e8ec67a3458dab67481fb0b0d46cfa5f2f5f97f44b9df4940d8ffefa144329a5cf33d85f8e4195b05bfd45749ea415fe0b75bfc9d4", + "13f167", + "13da22aa266ee621ebff27247671a999c6aa1fd3777a7fbbf4235ff285e5c9a1de9ec3aac192953965441ecc5569e5097b6c25efa424578749ff8c859e065f952a22f6127666fe881f0cbc617c73afe4e05e90a33952744b11f7dfaea81a2996a4" + }, + { /* i=4191 cDividendBits=285 cDivisorBits=79 */ + "0bfe62b194453dde062454e32ae066da28b6ae27a716477b9dbf298c8fb0e31906853311", + "6c71d6f362bc81ee8896", + "1c501b67599016c4ea4bfc0bfd6085038e4d43f5cbc292e06119", + "2eaddbd6a32be539066b" + }, + { /* i=4192 cDividendBits=2474 cDivisorBits=1612 */ + "029f52de0655c6cc4e8a9942d4d79317ce64980167aa2a9ef95da5e1aefae2771ad58f2342474b83b2548315e7c465ada41c97a1035b58d2e811375ea59ed27f3f172cb5b13e84d5c74cfc2a320933e85e687e2f17520da185902e5039a3ca93f0c14b09ecbae168a8c25df2fd8d255942448445f97a3037982dd8bb5331789de2a4104b02d188cb6135fac791a98229ef3ad5c691d1bd3b744bb092f30e063a5fc6b0814600595e5f86fba21ea9307ccc68ba3fa2ff39cf20e410fbba011984a18bb00011faed7917ecac8c11798bd602ac6267919ea3fcfc2cd009beb32680e473efb7defb179d5c13bdfc4833102d2dc6ce890ff4da73451b1fe3e20c2ff4bb35d41622634179921a5019f1c76882ef9c98228083a642a717ad99610ff64f927ee3257029e22ff09beba60de167d5f92cd5ec76e6", + "01d70fdbece48e034225cc890a1fc78ee8d8f826fecbfa9f8867ac0f9167cc6e26a3785c9ae42bc9b2a398ea94c3edaa45daf1e4102173e0c12d29e8a708bfe575ff5fd80e2eabb32136c030fc40ac6794601a5ce9947da1598f6956fb8b1efb8def05fbc3f19c0866c3638944d9a1dad670a377f9842054bf74bef012aab749814f4d4a56b5f8e15d8e3bc8b8e51cc45c802afe4ba81835c7f635161ddde6243f214499096111fa792940d425c4c77ae5cf346007e343f81293dfec728620e7b3dbc12b462eac15b386", + "016cd534c826ee42a47aebd09f205490a2d75ef053bb5e1cfadd09e3b3f61bdff89d3d4fce490e1fe3dd31ad6ef56d09a84ba1d6196991975e4b3e91b80cbd373e0300c8f1bb69372efe96700ce1685de65f68ad78ad104632e679187a1355dca7ea9888534c632540f0bd8cfc", + "406a36aaee5989dd48b431c46d60029c49d20c9f965d02258917edebfe8174a873027415198352df3717b48a7cc596c59de69bb5791a9304fff231d4732d91e9f26d00346fa6113bc8596da519199f0be3d0e32e93d19b718568ed8c06ef406aec737ab8007640d94aed67bf8c9e1d930d639da9d065e59c7fb27ac718572a4a444d01c5820e5f90e2b85933e3b3a5ac42f572de58209104ee19efbb430d401ab56eb0852d4e9478287b2fed5017c08b091bc95c4d0758b37cef6e3c8711ccf880a7e0b94c687476fe" + }, + { /* i=4193 cDividendBits=1834 cDivisorBits=1499 */ + "018eb7fbac0c8ebb5891ab149a2e72227222f99180eb55e7cddb47c17a699d69509e29a2f55381762ecbfae2ca34fee1b7207c73574345150a8245ded88408cb5b44fe8d351361ddb5c1d63022a3b436e5fd92ff2100d3203bcc27ca0e73599385d7b403b4926124bea2d0413735d1b12b6d2d566f0dbd79ac357bb94dcb6b5bc709f276ec0de0c13b9b8deb2d23cd0f56ff53d209b6603439c0e92ca07679d4d5d87b3e8a0aa8a18e544123f68a4770e6f58c91395e70d35a08101babe25e7704a3443491f3d51f4874a640bf28373fd36501f021c16924432d8cf3a992fd14126b94caadf0", + "071ee8bc7f17dae319623ad31db51d6840cc3a182c1a153450a4da642368444471ef04d0be4684d81af1e6d73f97b1760136a1c56e46b7085cbb939c9d934116eadcf809c7e486f052c3f8e76dccaa698c5c2b5aadf6765b2dea2bda461ac83a10892f41131cbacab92ff1a5af992b06bd0fca5638f03d2496e4ac88799b5e3cf2ebbf4a115b7445d6355e5212c64d3c492b5927204209711190307a7fc592941c58fc4de8679ce156bee240ca74f5bac4b76b818a41e23446912fc3", + "37fe771ff42661b308a4c512c85ca4663d6b2a65f23ec29e14432ce63cf32454a3d925189c758926f37a", + "042090bbff0398ddd625a00145c6f583f30d53b0bdec3bc1c4e63b03c61a83792a2cde356b8e62b37079b95506c9d4d8c92207fba98e50d5e6f0a0d1711b281172ccf3a2954df935d297dbc412fc671e6f3a469fa696f95d1c98a55f40278729b058a1e5aa2897a641773afe7dbd91859b2badc1d97255bad5121c9552030134345b2cf8696648dd4ae475f6058b3cae1d7a1a285eeb3075bc30b6a3559df3df0e1add7369bd1941677fcbc2d88851a9f6c234119fb2d24ab151d202" + }, + { /* i=4194 cDividendBits=1176 cDivisorBits=489 */ + "bc0e7726fd6622120a8e8af080cda9c1013c238bf07243d2d7d6dc4c47072a49e97102083861eebeb752f22cb918f8f11ec5b92293cdef3ca4ce38ec8d3ce1bdbaab81d6214800b418e8399967dc7fac1a19f2eaa76d5caa5fc2d3acb83989c0fea1667c78174a98c4645006b3a7d1c6e7a648c597bc5dd6bbb4b46855a6a036147cd086c6120b51920e0c6073c9c618fcccb7", + "01535b0e03036fcff888f87d84ba7238440f13b3d4737ce4fd7c087f608262e25f456529414e405dd3fb596dc612680ccaac2f2bcd3cb2a3af1ad1e53ecd", + "8ddd4484ce1e6404e8d628cf2efc0bc8c9f5d56acf35c59df9a68a1238d05108255c1c75d8932757e9e792b481bdd71920f4ed645a7197909465430487b3b07a2ba9604fa4f8705f9f26828ff6db8c1fd2ffe82af13a", + "548e727a90b9b273f5b1e8d219c1d6f847eeb7c96c51e249f574dfdfd06f5ebf7be19109b1ed79e934551004be94145fd899e4d835ef36f560a54b9545" + }, + { /* i=4195 cDividendBits=193 cDivisorBits=148 */ + "bc397b0a174c5d4160a12d4396ed9b92de375b53c98ce280", + "0e112ec43ece270cd4e009ce8977b7e1efd028", + "0d6165d2a3bb", + "072dd6d95bd359c91559c1ee27f82585065d48" + }, + { /* i=4196 cDividendBits=2538 cDivisorBits=1890 */ + "1e4a561223ff22c7c695d3467cf07241fb9ac393360964ed747212bb664399a24ca2003c7b40e10d64aab1e9b4579a5e3ff9d9608b2b8d0bbccf91d29fd7c355f39f0ab5003b4aae7c1f9511d9492b79d6b0d24d602a05228bbcf52407960ac6aaf9e75a5e9e97d42f6feeb3c4a9b28464be5cc281d4cb18f293b6ade2509f8ea2f74e378eacbe9bf77e1c0893c52c2924e3d3a80e0299dee96d867eaf1b08029f47f6524a3c5319d125dc316cc05c3f5a0a1aa3dc4ac430a68ce20a6da9deb95d4a5e6f52d189c1f309f2aea4193f8da27e749afcc0a9cf7e0def5eea5e7829f30966ea952a79f41e4c69e173cb3d8a7566ad05455c3b6322a21f7381ef5d8f696886ee61b99371745a21525523b734c73deba37604e0db1be7fe9bb62108bb8995b71bf2f17f06663be00b643a3b111bbcf54afeeb9b5ea0a24bd40f", + "0336e4078c1366354b0795716d6bd999446a739b9b5c93cc48bf282b36d74edd655a85a7e05c552a7f3ad80e11a128b3beb043d8ced2ca3dec1e2431a2eb5e957b044966c28807159e855312a8ab5ddd52c390a3f4807000dafd51bc07f8b650adb500cd3eaa20cba840c8c523051615f180ab6ee07c841996986b4c500e63b141ef13e25de6dc5a5f8438ddaf990af665bcc27a2a14a5dc0142b00852f50656c2d76f1e7ed58c91ac7e042500735d955b163092aa0608931579a9d48dc620f5a2dc12ec8089b0d1a132dc2e53d0e12b63e2df83c5154d9d64f66dd2585404f23dfaf2e91b1a2bc4f175fe7132", + "096c5c95aa1ad1182abcdbc33cc16574a1ac0c95669fb83f3d0b06e8d1815ba581b56382be992214d10cf6a609de3d3e8708e7e2112793f94459cee9de99faa62680a86ce9a27714c6edc4e280a958b988", + "02080645aedd1d18f51574c5b42bd3cd7d5c46dc02fa3a019cde1b07b2d34b87f46e216699f619a935dd100ba05d9536777f7faa785db905a912c6ae9c7c2902bbb7227855cd0a14bbddb6c3c2a9fb60a8647c996644549188fe07562d7b5e2604e108e4240ba7e965ee7183fd6941b1e4c79ac4ed9b11485348b30062fad1430ff801e59f26240dd1396e5c009aed582b2d727814d70e3aeeb27cd50e832b9cecfcc409c86a32388b753c109178bc6ec9934c4f14ba6b18b2e3cd1e70b4a9e6650a5b11444ef89dbf3bf4da9e839519769e0cdb18ea052ef658f8334b520dc1906920fd74b5b3fae428228f7f" + }, + { /* i=4197 cDividendBits=2932 cDivisorBits=1449 */ + "08f63c85eea07d4527c048b1df25fab6c259771a28ea8669202f1caf9628742ee55a91979c658cc32ea31704c5570f5e5b5dcb0d170271410981693816621a30dc86ea01a27a097bdded9cdaad4a46d0eee2d259133d947b3121dce78e0bed70ec58e47bc33c5f38d0d18f4739566e819cc9f046eb791942ffcccd517ac13d551380dbd6ed4b37199f69b8115b14cbb76fbba2841d62fc37d825c9cc5abb53a2f37e5f0180b9560b16de93631be106f8255f628caf7c65ace5c842abc5e2606ece48c004283959b1a3cae4b759da2c6f68f8e11ddef5e732890d92209ee4790317c2eefe16d56ed7d6c9ed7a504b16547312ae377a44ab5b6ce9079d56c9ab761c15be2b0cbb4f9c01d4c5951159f5b3a903a20e2814872a30515c0dcf38d718d0557d28fce2c5a423c90a1e4e80415e0d0580cb12446d58297335ef45938d689c64d193a90588d8a59dc8479f99de96585e402699420c6871eaddd5b69ecf479f76159e2af439906ae8891d90cbc9", + "01f20f38daba4cc5c09c1d1c9edcc851964820ef01469c93cf1a35ef10ac596cd5b3f0b73e693c62ff4a98b0c447a1b61e1f090a7438a552bb499b50dac82223d32505145c32d99ef294010d7f9e0c5496d9a1cdfb202cdf96321b24250d77b3a16fa6bac518680d1563c65e655c5067b048f3edab67e140db7de98588a993e385b7506424f0f4ea2dd9256b3ee2afef3d739aff4e2923ac32a3f0f86624a85c064f170389df6fc2a2d7bdc59f6136aefeb3d8c13e59", + "049b39c84dfd4b2426e6fb206cbb4d39a79edb8e3f274c03b50f131818e5833fcd26c4f365e747db13450c7b37f3bee53cb4b0f1a0f9c6ec9e62d857bec45c7112601448811c0ca41245ec737bcfa1bb0c21d0554aa3fe90537c180a17f4d28ea815698f2e1605294dcf9bd45eb89ee82d5c4a92f84a9bafb077145753731bd26c1cd342c294ab2d03bd240f9cf324577ebf3e9966cbb14b91c1feb64eb22eeb9e899f68f57e0b330194f81f2916488ef6496b0e73941987fe9b", + "6d8d96854245b3ec0a8321ad56e2255f2e6578053d826ee45012450bb873215d785bad0d2c6f097d5f9dc38322fa8a5c019dcb8c67c03222cf677e762b442a19c94a79809c1dfa8587c8103990a887e2e2d2b009f391ee6e61e4edfe8ade33273648ace73c84a5f7377f5386a984394bf9312957b635909e8ac839071772258d481924a280a4922fdd1ba402f6501f38e801591ee7618f1af507b3d69bf4134a8ede25854dc223d8a6a75f1b9a38260d2292c4bde6" + }, + { /* i=4198 cDividendBits=318 cDivisorBits=288 */ + "07f13433ed9da19716f3f67849f150990372aa1939bad3cdb4961092f102d7a679e1fdad4199d5c3", + "dd0278a287436d7851b8e62251fcc252f2db13fc4364638c927fb94922782f7221883bdd", + "09331a06", + "c02bfac30869656c8a843747cab99a246ef0c88c27f7c7710d6afad2ff54d159f04cfc95" + }, + { /* i=4199 cDividendBits=2941 cDivisorBits=1058 */ + "107522491f507b0839981f6bf7e7a05cab452f71527b79747a44b821a7bb295cd1cfae8e1c6b0d75d2a83756470d11700e9d34075e70a4164bf01d9deaf1788bcade3964535e5eb7ec6a16e9563357c86ae226632ad7ac8447b12e3a05b23772c55cc122b970aaccc5633f25ca9d27003ac297425534ff92efd419a22cbaef714006b8dd2d4a653778c5239eff99d92d70a877c3d4d8e56aade1cd7e8278770a022ccb5e05180dba61ef1d6147e780b6238883ef2882ae0f437a5076f4ed0aed93a6b41e411c49c83fba2c054ad97d116ce2c1c611fc8316340863aab2e262a913f90f67ebea42b852385dcc6288e53a7892873a823b422a1d83d8098ca79e01a1ba0350d83e6636d9bd58e213728f216dde0e104026dc9320445a54eb55cee970b09f8890aedca28a27ec0d9f96ee1a41df5ef72472edd00dfe317f6469d0c913ed79e5b58c3d46054e09ccdb40b626dd82d15d3150c2851a23971b17d633b8857b736116ead89f93786517209d0147", + "01646afcbab3f3b278fcce21bd1960ecdb4eacbf313dccc5d021b5866a9179c8c3751895e55dcd7877696c0855c4e2de219536290c665ce57522a799f83c6bd53c26fc1b784a6c3fbd07add860b3e3201329a59b55cf76c10a4e5d9ad8e2c913d9d8822cf257b3ba63add17c03e0b716db60e3cbcfbc142ad450cba90cfda6232aaa98ebf6", + "0bd21decc883ecda921624e385ceb901039cacf999f122ccb142419f7b580ce92d6e0ab144804997674e072c0ff21f27128d89096258841339475218a35e439e9bab6424a9dedb91e28ec32931e2b59d82af5fe8288cf20f847c24b41b67eb856d389587aea95153e0a9d226b23a9081505424bc69f6ef0d0704e9c842ec2400114539ca028364f5fbcfa255b67743606dfc0243a68d8271b0c255c8a144a391bf2944bf379c10899596d37a7d00720c00e37be47734c715c8fa8247ec2d5c27a622d8f4938c9b619e6e5f8eff3e6689bdc16e685099ce9d7a13e4b1eb6cb626942181ba05f361c49aa4e12d", + "1eea4f3d690654ac5bb97ee12588cd83465141eca258a9898675ec512fa9f910e1ee9a68999419ff5d1684e4f620387a2600ef69763bd16f1b0ecad44e205e24b046e9823b26e144d04f917fbf48e78ef97e7956d054b9286834e657cc923b2fa0d66a9ecfeed09074c4becb17295add95c8029b369e4fd4c48ddd036f67906596c05109" + }, + { /* i=4200 cDividendBits=3531 cDivisorBits=893 */ + "017b2ca9e4fd1b4c12565876a69c2039743caaccab5d391c8d3e3957740547971a7b997674abc54fc65aa154a92e38388734f0f8c0a507ecd8316ff8918a9c7befdded28791351225998fa9d88580527404a52b9a431332e8096b5a554d04336923efc90aad8b7a9ff27121c5b1d0ba30cc335380a44c956bb5f6418b96c8463c1573a4af584b08af29f83cfb3103b5113ecc2972c26bc0e65b5d5f6569f408b75108ae5615f4304887c730cacf11ff6256c291bc009d8fd6e68b1a3b1b27b4fca506db9e2a9b4195ac30d0f921341190b7113036cae0d5e5dfafaaa2870bc7085d1030bd533ecd74e8948815cae4f9b20f3b72bc3422d556aa15c617eb0a16158fb4ff28ff503597d7aea446e226b6c9bf5f55528834f04750059c3bbde458fec0007588b035fc269aec9fd8af22b5bc8e6ebebc54a60f1fe194744d3bf46013dc53457a37b02e14abf4c7fd3c1d583af65c661b7a5a722176e7e2406e28fa332938c971475fd628c853bf73c8d223e65da770fc2906f0da5f4971711727e914cabac5ec31097bbd189640cf253199dddebf75943b85c4978b1df722b8c9ea2269b0bdf829ead9d7ba92854f794f4cd96a35d2785f48bbd7437", + "1a68654d353f42e921983107f06cb93cfb9c9197536fb20b2feed1416473ee6e67d54779eb5d010a15fa6c276abb91cbb96f47a8985303058f4e47ce832bffe66006c63c2ed30773f960090e8d220dd2df693263f5bec257b64595841c69f6d5a6381bb25dac79b2b1cfa9a92603192f", + "0e5bc205558d3baf2491e0c1abd09e87d413edc899996f91ca2674adce165575b1d0aad98601ae5b8b280db7e2cb725977b49e88cec85a88d490de53e2c990bee8957235dc9c59e5d3016b01eae68d2653094fdbf33035f03344a2376569845bfa7aba29082069f650d0099e314d2d23d624c61650e49c5c09bee1b2207b5607e0977c872d1d78637dc2cd6448ffa54646e458a428f499f683c9dfadfd2c40f489fd2832d925fe4e73c6324308973100285970d661dd05bad9a8b0436e10fa66461ad59669a5f6a2037f141456311b93b8618b57338bc9c0ba48d3812b0510b15f38da203b30f91474a99acf946bbc81d3f21151240f27ad50d02e875ba0e59e4a2cc2eb73fb46a1ecdfc90f349131d68ed2045e320bfe34d8638f906c2b0df96910a5a0177663eda74874574844452e481a4d1233cf65bb0e95b9ae1823e27949d53fbff449b8bfc0c9", + "0ebd81218b84983ef9b88659beb85b4138ecc3f1faaac558cbab366a5d02b27b75e048d694e909797d967558054bbe3f019598be0c25cbce4d349821b40919429d2fd87e48fb99edf319cb8af73bae8aac6700271faa0b59f1455a6bc6ffec099471da4f11880404b362e2d2ce5a6e50" + }, + { /* i=4201 cDividendBits=70 cDivisorBits=37 */ + "2cd5d55e79ff80c7b2", + "17123e77e7", + "01f17ea7b2", + "021527b814" + }, + { /* i=4202 cDividendBits=1883 cDivisorBits=1622 */ + "036e9f3202fda392020f442f22240717c30fec4538efc5d8479970dbfe6a2386f341c6472dfb82e132aea7f08feff3cbd330dae1f663a366c57d92559aa2c7ccf186af6c76cdeb91eb54a4993caaed2f0df78b6ad99579f70e7666515c4b700940220f8680d99b83c921247368dc2f9b5d135c728ac94eaa48d98287cbb4c52b7e4b01126631eb43e16a3c48f1f161e2fdad1b43595c3141b88189ce199b7e54cd39acf309c0107c28a65f6d4589514f83e7c9c9c1155149dcd86d9e387d2888f3aeab9137b168483fe572e541e1a586110f782c2d80b568ebac36806e6477e98fab96ccafcc06a783386ca0", + "18098fd70794487fc43739b225a03acab3311b9b7b2888b721ef1a561257827dbd00ebf14488989b911a8bb23834b7420c9e61d6a2734f99e9dd2b3a33498843ea9f51d7bc0a52a942446422383bb562f082d537d3ab8505259b36c42ed2af1b2f1317ebb08e067abd73aca30d824a87991b648ef823fc2d416bb1f93aae3e56065586f221ecf1fafaccd453b5c473fb6c1e3aafc2bba912bc65f287ccc1211393fb68602bf1416826d1cb36b07675f9511b731bf272103f2bef551e90b78e5d298df1cc03fb917896efe4", + "248d675205e88dac87e9682b696b94069c7acdefe78244f0bf816a6f27491878e3", + "04e549120412dd2f873a1f47ba7660bd84db25330f8902a25e7d44b51a17d9f9104b883e1a42d594cd0931815fe94a6a59b976a99886046d0f8de4e8e9367e8a0fb4b47cf1eb92aca9370c3314d2279aa804e91a8c7c20860a6aa4ef0e3ddbd635e2c6957325b75e2821ce053aa6783e0f816ae1a9446f2c232ad44dd4e49cfeb3a3bbb6fe40f09f155d55bab5626b8357b179ef449b3051bab95d1e243467e86efa59f4752344ee01d0bdd41b97cd911f548708b3fe77e7921d85bbe25daff6aeffb6cfe703d8538ed574" + }, + { /* i=4203 cDividendBits=1364 cDivisorBits=282 */ + "06dbd1e4831f6bc92cbdd011666a03a94428a507caed93c0ce8b262692e2eb08767fcfb6dc3dc599ac9a0429f27c57fc1d4c827b7394430172d40cfc2fe515a9e072921d3ddbe624f7f84868433a47983e88c4cfbfbdf46bb751ffd02d21ce2c46013caf9313d634115ef55ccf8ac908767e14ced3989879b751e3953d723f07c3502c466056e182f4e58596cc451468ddae445a9a06d5db1818ee2bc863ea41a6daaad246d5a693d5202a", + "d1c197741b989729fd92ef5a5b38070208aac58cfccfa96e90f026d7e7fa778fe99b62", + "085eea6bc9b5f4b075751e6580e6b46ab963247f48dc057623576816e90df45249089d60bcd1f202ee8fa501b4b054e57c06b79c0c3b5bc495d59093b550cc03b5b67d7dff473b42dee21fcbd108144df37fa3c6953e97d0537d3b5248b651ea58e646744e02603601d5100f2ad2ac8dbdb9a151c4cc85d6097a2fef6bbab06d2c01bd4905f95a7c", + "cf74e16ce7f0014a83b93be11eb4eb64e909f87428e3dd4e4266bbc70a47f1b1bb68b2" + }, + { /* i=4204 cDividendBits=3794 cDivisorBits=333 */ + "bd1dd2138d48d890d380e5efab9ccc0857fa082f86790352807c3206d0ed472a91d68eaadaa8f179041a01a3691f06881dbf4f4b61f3d77cf1a7bd6d41054a019c767099c41265d06b4e9370d2c3755ebe2b044a2ef85c813a1fdbce7bed0428d39c1f7a077703309686b4bc8a375167d20b29232a4f9f0313a05b586cd225d81273e64bcf06c6e3306f3bff8a188d79aeaa228c07b8ca6172b35604b2cae9d7eb1cfc2686023a94724145603c31f55fce8a254c848a56c1f93ea48e8d6fd9f5b860b06567f6ca42f21a7edffebb0a530d50fe59089f2c73345666b6c5be25794d57b49fd5675ab6c47945f4a3595e38a9a4f8bf076c42a94aac597e63d2df014c76e3fa6a752cc3e9e59874d30a5e3332cb68250ae144674c728181eb94e70803d89ba4ab522913d296399d0a3b222d9385df6f8db9a38a56652eff556408381c6455a753500fcd6dae734bfde109d5a265d71bf62730526075ac83ce02f39e871954353b7f0a848f3d7ac0588e47b4fe9f96b55b6c4e594a0d7ee49dd9b29e2775f743ceed25aa0bd6533c6c1ef6ef86f5c230e36243fd507753c7ff437f5a8f1babe5969e5bc4263343aa88de847e077b3407a3a5f21a796699eb49c651b4204938142d46c1ffc4e0c1cece58606b376a5e746980b226e48f", + "136a46a726c72433fe2aaafdc67d584aeeb0cc2408741f6304cd5932d1b41d3def0d4471ce3056561a1b", + "09bd9c94af38b52c9157259c669cb973080cb852b41f24f9feb696e1edc811017af2d699160716f49d010dd465ee3b036a1b82ec69256141fa83248da510c466ac32ad6515584f5729cc4181a3b3161a03a8f2db828265fa395f3a01e1e44fcccb8a3e88cc3676b60def67b91441160b0cefc95967245203137d55209b46c557b08f19f240409a4b31bbc5df70fbc2706ef95c658b4730fc1e0e50dbcd682c09369efb4f9ac4dc75ae30bc84c491b276a5c55a9da74c65e017cf49d4673028f7f0b7573ce2a39e59531e3f3c6b9fcc11c0c3efc166a032baf642e4448450540084ad61d998dc7d972ec9fef590dd8782628228ed3b5448e213088d9a5efd6430375c0dd0687651c1be21ae458c59a0ce36290f0eed0caed9c8e653913085c52089db3e24584d478415ae9d21d5bff4c4d830e3cf0ba0ad2f94db92da92b141160bbd04abdbf4a82888b12d77b43a116cf45802e55ba9df133b33449018297a4d80a22c58f97e5579079ea706f8bc7bb7f15620556c02aad876112414ab5aa9a785742d28e590f6a6841298d0ce70637c9d202db6c2e8e11c44125608d012915a130e32fead55e3f2bf828e91fbec1a8cc3", + "05c690b632141b60323b80eb6f79cb87927f8e1aa275b150eebdb736bef1512ed9c8e252e32f4d8c3dfe" + }, + { /* i=4205 cDividendBits=1408 cDivisorBits=703 */ + "cc44cfd5989bb6eae13d7c7986315993035b5a8b9c215fb5951aab3e55f795408bc6df9ec8974a4b872d07b16f1d0a9ce468ec72d92c7254753992cba865d3ca3213313b4b9bba9dfc1558fda2d48a8f89dbe4889f2cbd82bb3e321fd8a8728350f6da51d60a22da5f80280c7998d3830775ebe22347d9db7374001a13d1dc2ccb792ac42451dc1510ed807ed0abe868147b8ecdd53a0a6a3eb7ef3fead6f53bcd1bf984e32cef5021fdc56e341244c0", + "21939ad536287d7fef2a0f7cdcafdd549ffc105379409e5282b5bc99e1667f1ed91d76a99c89b0b7a19dedd5111396ccea356f4624bd8a798633be1b11bf94b1402fa169b14424b2333be1b38cb3ccb5b95df2139f103b", + "06156b4f9cd854d56581f3a3843bb85f8f21f6bbc36271499c81fe0c4e270d1a2b24959f165006f1d2c9b45e73ef7978ff75ed708ee7ec986dec9d70c206e204a58db69fcb5614b847743779a53020641cb6fe8f20cc14267448", + "09662328323f4ca3e97beb496ba84a8ab7814cf99ebf1c9d1cf964854e773a3086b51a4b9933844445ab79810ccf0af5f9160ea748c4777d34239b5ed009dd9e9bc461fce6b396c28a09ad3e7e41480c15028f9738f828" + }, + { /* i=4206 cDividendBits=3136 cDivisorBits=327 */ + "70e811012245daf61ea0ecd6a87645b2ceaf2f24eb8445081b253fb369105a087a1a8055e48e93f6b090af43d4cecbf4ae9b0d836cf3f5f4673567d0455dfc8146b1eb6f1bfd184df91c0d525546977854cc5f327fb0ce42def6648ebb4a1f3b453546a2db258bccd03e91a66992871cebc875266f483d28566b719f6108788e1a75d3c17a2f62edcf24a51bdfe9d82db3f5643ea8a11c88df601de0c140ce8da60c9996d31783fd3428c1d2e70bfb294e49940b17dc63354f8afcd6cee1c62604ee103677a6b521ecb52f6e016cc9dc8a5ba5543b106feb8ebd9a89ca6db87e24035fbf07ccd5e463dcc27747f1e35ad67ed093ad8eee51952d165c93e599ab53a7d7bd243dcda59d62c048b8d4b56b620e43b7a0fe5ea68267c8bd74b42f30084515a0327b766f2415152b96d2564884f7d87218d0b5faf095248e6ef5545dc53e2fcee8c7665477de014b167a0514193e7366cdec02bf83ad07ca67e1f7af21e92ad21bdfb253363bb0bc545fe2c184f44dda670d184d51056c46979286319e97721cbc5f0264", + "795e6265225899b2d4ff519ac09745a433cd5f5a33b599d796191fe9dd53243dffd68abca98ee81651", + "ee26a381873e837e45e7f21f150a480efa6711ebcefb39a11eafc94b3e005b3bdc0dff387ec541e47bde1850f80d95768175e5f34222d3540a1902e3e805585dc4a7b898be00f96f7a53c34a9c8613c4df75aebc2dc18addb8a6a37fada99e5c332d49f3405993df1f58d8b5ad680dae87fc5b0a072d77cd8dd14c9a54fe35940762c69318c9ea4d7ec543b655045e20ffcc69d15e7d9abaeaa78836846688972565326a405f58cb75cf072b8a9b2613ce2dc48cc8425760e67b87e7f5248907319fcb01302e7f8e1d42dc79cba8c00ed213f5f3021eee88d603bd92648d7625557d36759c4c0782f220c841eb1580921556760b0437b834618822da84c79a536cf83b5a471cd34dd419e73f5e4c591251e37d60f00619db18bf5b8c0677646f0775b37d226d253f4f76bfc9c1cacb5e01e8c664850ba340928adbffe4618ad91dda409834f0143478c557964f936375fcf035acd343b94a4daca7a138a8ef", + "02cc429e8eb9560b59f1cd0e0d57b8b0b4807900310ff44c5b73ace6dff8442c221688d663305504c5" + }, + { /* i=4207 cDividendBits=1604 cDivisorBits=1409 */ + "043187e159b05d0b37ba3cec9de96c9d37b78957227254f3d5c6fb9276d32865677eebc978efbab12342d64c0c0b3775e37bfba2b41ba7c53598b44ac3b55a5a78ff356956df2a672e61488dcf2b0d861bfc412c3fae50b64dae954e3f28dd30f64b61ee8d893a0c8b8160b27fbab6b1e8416204c7d3fcb5dbc1f6e555944d3f845f1a3478c67ae3d160cf5bb4a96679e47882be841a61b485b1ddedfad0b91d7f24a759dea2a9b6dc234b0d99687788ea475fb996dc030748f78f58f42c5f6547fcc812ed22c37849", + "231bb3cad5a4826b64e8c6b1a3b8bdd495d853af899112e0226599c50b50a4148a992d865be5c2e06ebb36b08977f7422eaf39d1be51ffcc9356772460a5424a5280fd37efa65c8d31295851f87b054909a1793a5a01693520c6a000369a51920dde9619928ea769783c55c00f3c5ddc4a807aa2f346af740f032404a246e608b41a4cc6161608fa1475a5f569ee569c8019f2cdd64e96dc3ac857ba314e6516bfd7884992c4d266cdff87dad4a93e71", + "1e93e8a2225fc6189dc716ec7cd2375aa423dbf52b70ad155c", + "0b9ed29f5c333d7031fc84618fbc6d70c4f99dccdcc536103fbe3eb903e8d85b6d2d13b8cec2f1ed74dcec5be7532a2a2f0b20487a43a46f2565d33c0f3ada70aba59c4cb78ad493bfbded16b749b195eacd8bf05c1050259ed8c9c374ca1456100eebbae44b20eb3739817ea110350ad973c7495aac149f4d973577000421d999c9b55c91baf16587ac0f0b5797c901cc48052861a440c6d9b4dde4e64c0f1541493f8efbea4e53e407e92b3174c2ad" + }, + { /* i=4208 cDividendBits=29 cDivisorBits=1 */ + "11a27f89", + "01", + "11a27f89", + "00" + }, + { /* i=4209 cDividendBits=2138 cDivisorBits=1811 */ + "aac9282146b81dccad3cfb672a5caae20600e2be59861252abe23aaba1afc51b3359530f163c758b419bd82a710c19b40f87aa597eaabb46d16ff1d81d4d2d5cfd0d97707963099775ed4d5247d764c8ad6eff1d8d975f4643b08357300839a72f6bbbedaff6c520135f4e0d2911c30658ebeda66e9b6efd90df7be40bf8d9b4e2bf89c05c09863c2a932ecc4ff31827e36b41c0fd020fbc7b583cc34543aed08fae9f137e0139a4cdf6f16d0ab0f44fdf6e506daa4e61ead70229e70dfadf8982bdeb3357ba13eabbd08bb3ecb0d556213279be1511af852b4c458e9c61065fd631e7785b0b660c104f653b22e5efba35bae861bdf5cf39820a058eed860b6551d88356f535b782e47af3", + "021ae84879f5b0b374596097e023fd39a28915cc9765bf8c72f020d8ae8844ab092f2715670eac69361b7021bd6a44e93f994f72a5cfd301d51ebb8230e1b8cfe83a7b4916998ebca0aa28b68653bfd23dfd40836dea16c3a125b4ffed11074ebbbe47d2f11668eebded1f9726ac41203639d660621720ea34cfb285be459863d33ca10dedf21eeed5ebdf8637baaf3cf4009b35ffd4537882af9d0c104e6b242b5f7469d011e52c5bc267e928e66d8f6c034c1db9f5876d729abab9efbf39cf86edcb3e72da854117b47cff3338e6b55afbcf2f4179589e9269d19d8f27977b06b663", + "51211765e22ab7580857668211be96fbb4d4794f79731ef24d2ab0bf07cce024112c59b985262ea641", + "8db1840e255f5d5850a1c5b8f2fd4c4bf6960493701da75d34ebb57c0d85785e37cf250285b1c285e78fc81ea03b4d483f1975826edf460033435f38e41021188a28c8b7b38ccf78303407944d8a11aeeca08560085d7c850d4cd35b4ce6ffe2407a345e2614c673abf50549c0dcacb7d6f852f687bf26c798c84e9505e22e63788d14776cc1390c27b92a9154c3479f4f479053a91b3eacdc1f39055d7d2d6383fdfb4245d8b339ca3c3049594beffcbd8dab8db99dbd7efa500910b7390f63d89d67c6e68d87b756211b17424ec3b97f242faf68165cf67fa9b7bf87c47421f9d0" + }, + { /* i=4210 cDividendBits=1217 cDivisorBits=1151 */ + "0109499baa483cb18563c6f9ed8700398a4aa27360b5c1acc146d6d6989e7899f8d608b99ae8540ec09583f70a2283eef30f6f08f41ab6e8be88742cee4e95d05e50a7e5aa25f6114ac935d9891bdef5070dbdad73726aac8fa13a85aac4e90ba694130bb0ab04f507367bb7828e5e77834ac5b9776e28398f9b63530edfeacafc14f2d00873be488b8aefd737aa1e91aef20a2f4d0f7b6afe", + "66648c2f7e4de887b616adcbaf5826ff8a1af5ad4ee4c4722f06a65af97627a8e4f361e03dfee91b3b162b5c8076060a4ffb56d135cda77339863305740728a6e7acbe25cedbc20b160c9e29be2b406d9a5e7ab8ec2838129804db8b05eac8834b61020ebb31f590de1bcf926fcf10f7bc670bf57f595d94e299d83dfeee5890b6add61d0d201d6b4ec806b5a2a1852a", + "02974404bf32c40499", + "5412d247667b9027e63e568e3587f02e08eb26bd33474d8a948071683ed3b71588a541edcba70a4b22906d925cc5ddb7398f173e89bd2bd3f9813baffe62812ba29bd5f88c39480ae771fab8365b78c6f19c899793c34f1607bf5d5bd931888b55d0ad0c0eebd4add475e23ad792d0126f3c9d202befb285579accb22bae69b005ef8283be2492071dd044322eb62ce4" + }, + { /* i=4211 cDividendBits=2847 cDivisorBits=1708 */ + "6fafbc2c4a05d90185a21fe3ed5bc6010407418a08a79583457e9eb6cead1ae6982d4f36800947db6cc94eda4e9df5b97aef543ec84bd4684428d18aefa3b36e223109fa34f9afcfb36576b45a02c39454d19c6c445817c7c2afef23c46836f0bef34fc27ccc06dee3b0b3156e7aa27de36af08f0b3cea02194727a4ba36ed720cbc5868be45c4e57a93df9ec331c8488fcb71192bf45b4d3722b83c7e33650328d59316cc30315e32e57bf4c40c7da7bc09438e489c855fba0d15c6400c811bf7dcdb6873421e67aadf67cb1e2d40ca08431a61222b3ee380b48153e360df0f31694cfb127cc5469d986a1e55d937fe615249147370c18473141101310aa731e2c1302f5a7b98f3929169a8e02fc1d632b713f93211ed77493f261f0d8d9001f467868de6964871d013b953b41ef39325bdf3333f1b45aa99ead958f50e855db763d0eb272535a8be3cf1f0a4d0524c33698d2ab71347b813774bb3908ce4484907c691", + "0b5b5551024e98c7fe280cd8df177e045b662f8f6224d5a4f9630cd7adfffb2a3da48d8a2c21af4538fe3a9fd32d54d8c4fe1db4da18a6404c2008275935f61a674c1fe24d98ada1e0d5efee257f6307a50bd2a843d32040c98fd029d6bce4ac40a1a26865af165f82d915d0486e7328140747a619c6d3dd6ed8b87d9f72dc39e7fd37f8418f010a9eba9a40a2cc256ee5a94f91ad900cd5bc3b1b2c18e6655cae8a9128c4bfbc9071c48b08bca78f0ee8a1b35c7b1013f3f131069d2961e95b80411bb9d5c97af78276fb43d689f14352c2fc2fed17", + "09d598027a8857e5f8998378ca76d4421ddbbc3691827c78ae7ffacdcaa2f51613f0fa8f8a43c154ac7800c3bc06ca4d7b03402eccb06fc0dd4813d344feadd5ac0ef6f02ff3f795fadd0af6a7a4fe0a056bda3f49ab9d97f1308942411a2de38d6ccb9ce5f83e4ab064d91f55f9f98de3dbe8b7fc504dfcac6a80eb5830bced935e80de3f173573316e791fa0df47", + "0589b566c1c5227ccdb10e0f0d371f15d5557e8a53936960efa3d1c41326acabe74f417f23e04d245714be9e9864cb11e05042da03bb2e8d8563c4fa4ac7b0194bf10a28a09f77b32ec3b833f7fd9c803daf372183493a9c0f0b3fcec5d0f337e23baaa5041c68d67af67845fbea6ffac37f129750b40fb8520f57aac21a377989733a48c38422c9fb873bf76ba7e13f4e5bfdd119634e2927431f079405d3d6b078962397820ddc4e1c69be62366173526bf04032029a25a636591d374b41b19f20009b6b8c89aed59d4d76d7382a73b8fda0d5fc30" + }, + { /* i=4212 cDividendBits=321 cDivisorBits=7 */ + "01b1bc8e064b32eb7681f4689c5b99b3a1c62a451254dc9db1db1bfc2dc74454de434ed395f1894dbb", + "5c", + "04b6eb486a8e776dcf535a2e38a5d836a0c33df7d9f7447f268e379c52dc919e3df2f19aac5d518a", + "23" + }, + { /* i=4213 cDividendBits=72 cDivisorBits=26 */ + "b8e3c4fd135805de3e", + "02bfbddd", + "4341def834a9", + "c8a359" + }, + { /* i=4214 cDividendBits=458 cDivisorBits=86 */ + "63bd908c0398a3fe5d44bba544e75e31a9216b41d68f7f960e9a8e83aacd01fb98dc50268b5e2db6d1069532ff759539f964112ed5ccb4bad1", + "177f472053318f9fc546a6", + "043eaa4496d70acf9d871250a310e9d3a9e07b6cd842dfb6c228a0e26f2e9da9fd75fbfd609012403ab4cb1f126bb1", + "10012d7bab05b1cf1b800b" + }, + { /* i=4215 cDividendBits=3956 cDivisorBits=934 */ + "020867ad31d4e848b32b6b4572c2cc611a226248f443514bc208840c89ab00526bd780cd6edbe7dc2f4f0f1b719e9476fb69d1c29cfdefbcf1eb9f6309cea37205566eb6497b9db57866643440eb24796731edbeef559be5d832dda7f52f97398f7ae097f1d66f78aa11bbb9ee8ef29f46f652afd7df4b9e1b7df687a5d2b26ad6eb561ebcab976aa0965eeebcfcad685a2b96138f066e6503651393f595e1af8748c91021e30e8e4a2ea54f279775b60908297e1f6fb3306d70b95bb54ace3b31ff9561ed3b0f19a543ce27c59a9a54981576fe3c52b29a20615dee18f1c89ab9f1c5359a4f4901f59ff70bc57344567a21cab790296932a424f18e8a5ce30d7fed44660c3918316b6a30bec1bc6b810f5604b703f5a8583cb9d24f53d6c5f516089f18aa89dc980bb5b9006d5ec6ba90cc72e9ac5315f74370e770cda4f603e54fb2039372a5154eaefb53b2da7e25c1ea53cd099cced96ee86a48fee1d7d54c03fb19ddb36f7c5b8233815bd9920b2ad5b9cdc5c8481c3db4625052fd2762ea2b2a8b2f64b575048bec9ae089c357fc5c40bc129841c790e2969fdf79674aa8353fcd018e4e7cd63775eaeee97dd60658182674dfbc824d23c212edb276791582ddbebc620f2d30eb32feac7bde0e5bb7a6f03a369b6b50d588a9d1cbc4fa5730b1ec5b05b432d9591aaec83ee2", + "091fbb67447b892e0820a08321d84620b27833adbb3ae38f7b593c4d5b875153d9195e9e10d1799afa3a82c337e039260b4478fa577ebe89f0a58c0bb0547d073000402dd50f25fd49ce94bd8a8788b948de6960f0812e5ca785de74ac860f16e9bea6006a721600ba76014d12e15f12d9a9e81abb", + "390987a4f6e023e228f03bece6552db7b1d36644a07a387075b629e99ee074b1be89e3b2a18118b393aae3014acae65f36bd8ec24612719114c83b1eb4f773c664e44a0fa162361d61c3bd60aa62f2fce0076533ae5c3a1f53cf21aa459cea70f7a5fc5766d827df652e66c7bef129720f05c1aa7669bdd4b35d753e2cbd24f44b29043d20d5d2e4bb9d4c330e976fbaed6fff300bd6daee50487deb6f074db8fcaf199a953fe8f4105e53f2f53a2225e94e5af9400198f1feb814cfb32d4d1a04146c54e759494efffe434423ef23e30912cd734893a8eec40cdad044152495bead6d6f2cbc8fc3eff477b9e38bd6e9fcd2665327b12ed99dfebc03d839d423d7cd5e2cd773d15251bda20ea597d54ee046aaab1563736fc187a9c1cd62a35d51c4e0923c8b0b5cfc76b79fa1a3b613971d2d6581e4c3df0e1c1457f7fd1a21a2e0331fc8b1abc897bdbe2a6a79e866bbc8ee5a8bead58ad1bca09b1c409d63be2af3f7f202f4d8ef9c836558c8b76f0a4ba297863cdbcd3a45", + "05aaa64e83b45864606277e1c63e0de8e92c54dc57197468735c20cc14f6d72ec2c963acb1f28575c88226ad9dd9833de781b20e53e69d61474c1843664e9dff660c58ccb1672cfe22b68e8a39d464062eadce4621cf335ab1efa121fe4913dda27783f64920db5114657194bd329c3061ec6bac7b" + }, + { /* i=4216 cDividendBits=998 cDivisorBits=762 */ + "0785ab5cfaa43f3d5dd9a629e42cd017d626452cab95d7ece0a438134e0eacb0dd7724d6c29c5a985a70d3dbb6b178a78f03ea3cb0d5efb13b1b5b84415565a0898d3a543844428ed9fe575a0fa2af037783b1c8c9b772bf47f6f056e8b64bde3e9f223af0c168683d8398b359d0fb83e726a7d3739693d759e9a3649e", + "a09b3730bcb521114c6b1738cbd5f776bb7ab65ca4dd7a217d47cd70298b8167e39edf06af9d3af16221b9c32c5b08dd7b6689bf13617c1cb20fe9bc3502e93dfd455e50115de9c794d232a1064e8088e8c7865214effdcb765cffa2c252f2", + "0bfd708695cb18c470b24abe36fd879e1d339e478e13e9797014850522bf", + "743b02146094d8bf59619608eda5e4172a83891c857735b600a44f630fb33e7aa3d977fe43ebc28b213d23238c25f522afc6b24019a3423c2079b6ab11ccc67b3c8732158d2777b466960ab8a4bd358093efb60d0d4df73e83033652e95e10" + }, + { /* i=4217 cDividendBits=937 cDivisorBits=327 */ + "6bd908f2f08bddb7f8354cc0c938944bed703379ded15ec0f240daf4470b07def89dcdf2a11f7fe27c5a47a1b66e9d8306b168c32a9f9da13bca23041e782c4e4848c91f738d7101c570788df7441c03a1a1a0ba76abe0dd3e29a2dc9f16bd3b98f27654bdf4f21a721786ca71f3ad34b2808d413d", + "06250da2acb969de7380161f3046f605ea8bde844e236fabfd2641f3c7520cf0b6cfac1a8ffe5e3c34", + "118d1e0c40059abf13bd6bdf457d2fb89a16a9c0f6d6cba537c478efce81be91fa019b749ceb0d07c1b44fecfdb60da66f14aa9ee5bc8ef0d86f6931f3086de0959584f88603c95db0fa697f83", + "01b32a5122d110abd2eb6718c6a10f62cdc2d33fe0a65ee7771349441cd83b6406cc7a8aa11d22a6a1" + }, + { /* i=4218 cDividendBits=1014 cDivisorBits=160 */ + "22fe50a39ab73ae4ab519eb080d636a136acc4fe1dcc09fddc283e2774d0de27718ff8cc28436e4601a52777c6dd92a43557cb9c00c4ab7f495e510cfaff2d497cab9935383dd1d0c307ec6115bc83e7a915fd5ccb34c3730c9badeb852f422e26cc8bfeafb2f5fe6ae4321f737dc49474a68981d62a3e01c8c1332be1eba3", + "aa747cc0cdf7c6e4269e757f65e66b308f6ff9dd", + "348e281395e07b310b779db9f4f168547ab9c66494972f984c3c805a80c88918e361f5981bbd2136397be96dba2067d199b0a4469547b47e278d8dd2d1d4db9f4f565e79d4f3d2746c846a998084a77b0f7a6215078ec65782955c2c8f6864c057c659c2d19c9e57af27e0", + "3c275800aed8b81935677a53bc1992ffb1c39f43" + }, + { /* i=4219 cDividendBits=1829 cDivisorBits=1476 */ + "167a37d96dd690b25852431caecbf310a0b698545006ec72c8d86e06539319abc4a16e23b7ae5050e874defc54fef05b8a8c5da9b55eb3bb54b078000623f685d1d0d6039d0c9109357852564af38b693f36c91c77331bed670aa03d64ece417986935a95a8d304cd002bfffc70ec1a1c9a991db43868a6d071c840eb66e6647e2d19a65c8e5f6a9ab7e89a0f17c8ac6a3f37282e668fba2a86bf6ec4eeea65bc23ecce434a1609fa96c74fff60a98f75416fe362094bd9a01c63a6e914590c97c42f475854ed83cd172f878ef7a6f5407b2389c25b9f00af6822b73e2e3759fb9dd7dd56d", + "0c93f871ceb6dc338099113e9fb96cd0d7fff846ae49b0043cfd4fc3af72781b6b63b36afcde954ce2930088bf3e377cfca28f0b3e5cbe09aed38fb0e0a6dc9fa475af44620fadeca9613f4ce3a838d399571abc2dcf2af4aef6d1ce5822eb15170fb3d6d3606407cf81f9390cf15292ab41f797a4475babd3ee26bea01abc35d8e65b903cacbb4c3a5c2b1e2bd79f04330cd98cbcd510ecfac4f30c7b423006c6db04b066b8abd44df9f5ec725edffcff17b87ca381162293", + "01c97b7f09edd8584cc39b813855f36a249dcc5b93f76c2d48d0920f510d408c30d6c3ae96648714ee38a71728", + "019e1923581eb0c902deded787ffcf6e845f816a9ed5e3703f75931df1f8ba68743a696c4449986129d84fe167708c880af79c4db0ff4b7d8f34aca5f1bd5f7e9ebf99443ca6396537184d5349e2c81eb2dcd58ecd1995fa21612d8fbb780476b9e30dffe18b73867feaf6d5713d89fd4406c2ee28abe7acdb209ef108fbdea17627f3c8d1745686d26f3d429cf11057d2470f01bc14b3bba4bddff939bcb4a1f617a8eb9200e2a54f380a5b41c180a1e123bcc7e9ff083975" + }, + { /* i=4220 cDividendBits=1825 cDivisorBits=1595 */ + "01a17d6e033c35705af39394049b240b4689f72c41211b8a54842a7bb2d6d11a21daa07e119bc720cb4c4daf3704a9489f52f7bc9ff3fd2b5788ccd44055a934ec5a87697acdf67ec3ff8542cf1d85fb0acee3fa1977bbae81b71099a9be80c8d44083575e55c9635ded39f28e613cc0cb4be14344b09824e85a1a04a2b642674a950087e7a1e78f2c4228cf94576eb2662513ad7109a7c20be13c281a3d6946f08021e57a152e410579d5dfa364e935622b522bd3c5e2d5ababe9fe59b78e16b456fe09badb04c5f9ec8f24b4c2ad3fd7d3e3ee603f71e83de02ac7eb69432c0925148968", + "033aca1da73280c5c20f58156c37609e01ff9913a4f53c905b8eabd60c33584439ddc36e647644160f122a9be7be23e56687da7e87c94c4b80add2ab866be78725a3548ada5fec7d930838ecfbe0d61f3896223a5eb75d85060542aa661d86cad921903c12cb34029f2ea38fc18f1012112e3d0680cd2059eb3b2a7cb4738f5d987aa561bf0820b3ef894d690167f58cd3478595d4f665480b4c61393ab8f16955536d39d65813b6a23091d5b8d31ee1a8b95ab174c24281db84ecd3d8f778c1620b45c3e1bf099e", + "81449bdcfe6ca4e4a07721e5c5aee3790c2f7327f44ae0ac42b10512c6", + "02eca7bb4cd2640d395c1da0fbae112deeb64c20dc76f2cd9da8fab9659fb412f63cc4104448190112a90639b6688379c35c35236bb1654237d7aa4e06ff97276064b341183684411f3140903b55b9aeabf6b6f47e2529ec4b5b16321e02a7a92a3da571e79e675f0d421388abff9ef357bc4b2afef4a198aa05b3dae4454ae9d5f14a6d021ffebebf108e39f6b2b0533c7586951d778f9097be2283804ab56e134adf70a228e5dbf391a503b98a9d185de20837f36e1dccfcef70f87cc07f4b59c44f8bae8ffd34" + }, + { /* i=4221 cDividendBits=792 cDivisorBits=120 */ + "3bad24667fc3265ad770615a8a63da8de2015ef0c4791af22ed6fd1d806405fc1056e22d08122f1fb6977c0c590e9065648a00889b1e60b16585f87d5f439cbfafe2665b3058f5d38e8d84c8757bd3156a58df92c405217de1a1a5c3183fb5a95266e1", + "6c7b10e5d7c57e0d23d41dc7aeedb9", + "8cd402f0597acdbefd7a10df4214c0ce8eefb30e69741e41b6f1d4433d2ffaf105f3863a40bad86867c46669525f948f09b1af62355d0b080888cabd5984a67f651d133b0ad8d29804a4b53eb1cc68b5e28749f2", + "2c19cb9343ebd9621346b4559cecff" + }, + { /* i=4222 cDividendBits=3976 cDivisorBits=181 */ + "e5453e229a46921c7360c8b917e9a16b721cf1794786ef2d1d5ad9d7528be841f66d6a7f4fad706b481b04c99c382124cf12b325c4f8e29f66a28cf6e092ea064b055d767f4a493ce658244be556b7cad7c4a4d7a5c47fdccbaa7c62a860891240efc178c01d1287bc935694963afe085562f99c0483af4fa4c833c0fd8d41dd024a07a5c0966ddd0044fe0f3b0fcaaf3a198bd7ed5b316fe118f9ed4f47a6b16088df36dde592b84d693134c3cc9339d47be0de2c638720cc3901d1c790c76a43915aff4acf1ff33cf5a035307df93304d6ea0a0308d98e50f500952eeb41d0e039757cba8bb7b98a6bf88d4958543c516b240b0e3676acac5dfe379af9c6496d2f95e4e911c48e8b99412f21da8e4746523510e5ae7529d29377d0037054f6fefd70bbd808c0bbc4824113a2805c21ef1438c2201a8f29655e64baa849d8633830d677fb9b3e75b40a5b62072019ac5d9f9bf29bf85e198a300fa8294f97ce0374075420ea1713ef493cdef682d080239ee22f493e41e5b7ca04d2c0261f9efb735cc765bffa9b88938e806a3c5575985671911a03ffeca4c7747b7cd21b77867798512593d5284ae072eee9c1f59a3d95d406f3abe55baf128332427f4435477b12a8c9ec59d1f2c4966f792b7b638a68602fbf0e43e3a9eba7b6ce41be4dee0aa08ae6d0cd0d9fa011b3d24434f0ec", + "065cfbcad106c4c01aad1731dc7a5e0f16ad7a4d48af8a", + "2407d4e668e393329e0d38ab012d418f27a157f3f7f38226e32fe177066d6b2b50435d9d7810195a19be47115c76013f669d42cb4501231811c54731b46897f656cc0467bcb8fd8c3d1e0c292d166429d74bd8b93dfe5a144dedb4da713d41a443d749136d6347136c8337e1203abd706ede4948ea0a757286c13dc5dec18034aa49a6607e526617f849ad3daa2d6e69cc051bb81c10cfdc4d65634f8c59c87c30216e627aed7f95e6c6ae3a1ee8ab48e5b1f4f42d0fba49ea641335aa1c00b540b1e7cb97bcf95118fbe1e54ff4ae3ee771a664dd608299e8f445c885abc6f0678724542982d73c87769c44d8855970f01eb33f9f293cf340b4c2557971a25518d193a9141283d5228548b971df5c4fd94fe0e4099169e3381250ce883f773bb83a90ab288a1b235aa92cb49416eb70b1edcefa11c9f56b704553b595f0cce88644a5caf454c86e0697f2b59d100d914ffe8ac3fc48a570ce01ab092a76e250eface4b0abe8fad167950291ae3cb8c650fc31b0307b19e3f19729ef66ae4fa95c32ef1ed9ff91622fb68c3ec68d52afaf1e8849a013411b919a403c0d2cd75759ce1d30442b5a4cf52af5334dd79c9c9b14f2ae45a2ffcdabd8ee56f9d9e1b1e246b490016ded6c78ecd2da7ab9af1509864ee2d75f19a76ee312", + "03c92ad6f9920cc0dbba823b1ea6095b8b1478ee253b38" + }, + { /* i=4223 cDividendBits=1161 cDivisorBits=390 */ + "933201d5f648ded2ff23b4a8bf5c31e7065ec4f7d15d633b820cf6bbc4f2be726e1436c963a3318bbbf95c922dfe6268b073593b27ed891d30327c0337f467d4e6a169efeb1853305c9f2c7addc0217a447c3bc42c0303245496489196d0588e3e9192dfd6f4d2d336a351c37cc59593020bacf8ec0c4f4b609eeb610cdebde6fbacd3436aee54251f8e721044bf1f1a89", + "3df73e24292a692a2d2055eb14f8f0a214384f0747e52b27d6c58d896b470cd18508cc8117baebeb03f1fd2d2c12a95087", + "02601c1dc770e7a6bf4ec8caf40bcaddc02a40f3eb52ac8cd6b8ac7f6119c691c70527b8b06f5a706fe28f2c7a8a3157fa9546f1be0e48d13c1d919582fb5ddef125bca81c3150e20dc87ea3fb1f20196d2936ff1c9be2e00b28e517453a91cc80", + "144099387fc6018494ab8027dab6d25260e7156721ae219fd529111b2fed4bfb289a0cfc2c6b7a3348df0997d44bd44309" + }, + { /* i=4224 cDividendBits=1728 cDivisorBits=931 */ + "51e9e39961aa9e81fdb740abaa6866ef5333413024bb150ab9a4a0e04d0261a75e549052eec8475a36d466d838da6c34c7bf4bee11f037d116ed00782be2a5b8bb55766fe33b0b978ff46c9ba31a790bddaf9cb2709281fe87c4aacfdc6d0714349dc6d9c6a162fb5daa662d50c7561dca4e0812ffbe83ff0fba2d0a39311c564290f32cd3d7439733f02a32ebfa2f296504a6414528ca8c7065d37fab69afee66fd71dcd0cc8cf3d9df82abd4e383df79627d1992a70540e4005c3f433d2fac798f3e0a217541f7fda24d7536126227388eb87b1d63b887", + "0399fd0f1b2b315af722f8809817edab74942edf898de7aeccbde467e5f138f06327d349fd4124ec58b81f9e4b852f882375856f558f8f78073c4dea8d5188b19c946c0f934a0fde98e16efc87ebe4ca6dd3aaa9131946fc71e2a88edbcc03f2687fef71267a89f1d9a29a88f916711cce7fcfcd14", + "16be83bed8eba5b16f120b9e294502140daddacf127e3677d78f8d93a3ebe55a1780f3d3f795fb59ec4e6c47f24d9790d63d89e62eddef3ff2000a08c55e92b81d699c94744ddc483466168ebfa23d15929a528c42a9e9d6dd34ce88b9984a4abc71e3c5", + "73def10fd4db056bc689ba991dc854709727a27d1d6692c61ea4aa70025b342c43a9331623d1919d66e4c32a70f6ab43a22f99714c1ec82f2d059cfdfa18fc4a80ece6987ad091fc9bb8958e0fb70a9d74ee29e8ab7b00c04059f9c26cdb55da33afaf61370dd4021dca04a50ebc5d2149ce2c23" + }, + { /* i=4225 cDividendBits=2235 cDivisorBits=1663 */ + "04085dc6acca27751b5c95445a81114627216e70c73a722ad889d2589658f9489276c99e875143e548f64178c40096732b36f7529f1407fd0849d8684be5e924349d576c64b20309f4b6f9ef71d9aed1f463660338611cc1ed776f6377fb72635ee02ab48d2c733b8637fecea36d31118a26590e15eac8e5758664ced50cefed29bff783b9d145bab3d969253fcc9e525cfa60506c26ddef88b37d0314343a84177cc60f6089831bc4a05f964f546d1e79c91b4099d41bed0806b76e4ceacdd276f1ace19f2bdfa9cf118d5074a2d48d7bc436ffb40bb6240a93ff67a372ca5d03fec6f011732de6cc81ca74be125fb5602c842f9f1b019a2c62fadbe25501d915c0eedec544299e6e322318f44a3e263bdef7922c5673a0", + "5f4d2084edd24dd2d60e8cffedf33aa593f90ca5bf7888607bbaf0e33e5b5601c776beb93c1baedd3a8bbaa4743a608cd0d7bf737a81606ed9473649b7189b9e847a8ceaa453c7eb2bc7b233eff4299a7c4987f6361eff5074a3b9bed9c1a4a8405607737bcc588f8cd6949412199e82a61ddbeb4c098f601ccd127799b94408176712a2f2593d42ee7c1f14b0168042c5ecbac4b1b8fd2f99f919ae672ce6a2e7c1b613599ddb2767c30fea2ab5cb24abfa93026e2575a8988f8cff92b0161800237bb5bbc4729215f8a6d068eae777", + "0ad529308c4c8daea61471e1681dccc750618818b831c0401db5dda0880a7dfaa8cb40831295c75771e346c8d6710bf5f08563d4cb27421a564b5232508f4ab3a9cb3ef9a86ef226", + "3c8a0eb85e2df949d9e1f8b71c58d39c538a3021029afad12f5675d88151586cdb0297ba2973a56c17434b04bdc572bc604c3bf54c8a4b0351530a7b042f53611e61de03f64b4106e7dac5b72e0fe1c86a9f13ac2ea369700a31c3a4683c0f19a34eb14e4822fe935d6c0104e03ca429e655ba8ae915b95000b0446e09e7feaabc43808f7938beab7c0fb5ffcecb5dd8f001f0cfd9098abbfd71f01832685e068d540a29ba6603589bd6aca35249def33a8e315daf5df455b43fe87d1b647058e055c479153a47fa6df6ffdffd8799f6" + }, + { /* i=4226 cDividendBits=2179 cDivisorBits=1315 */ + "06f9d1cb9fd958688d0c23a7bc38fe8a43b74ba52b34efa20ee5632f98412dae7653a81acca3ba0a28304cfc1134153f5b212e8c2fce1f503d28be558c8f1a9faab044cd42e9e486d930259d712dd7dccc9780d18521dcb9d59ce3a074b3b8590b0738c9c0a49679553ea5e639c580d19338134b091ed34de1e6beff855f62c44dedf9e9ec4d58499db7cbd5458bfe41388368cba16cd58da9703e37fee4d3ec0caeb90488aae879a4f07799fd7062b28158cf78a1f5ba0def13d1bc20f8e18d0b5c1b1a8fa854e02a469cac0ee7246b22c2b0e505d320fbf1c1908ac6b4fd40af32b043cade06a0a37c01fb6e74f277084c6fcfd9520ba2c3a6b20bde8799aa3668cad62d1dafa55633040c140e4f8439", + "03e177c3a46dc2a7187477adbb5c05d958388780ba899c9835f68089475656c12e3229aeb0b8e51189b2b225810ec99a5548a90de6bf47dea276501bbacb507c90cc5aae49c068b8262d471ebc2504e03b58102503b4046970f27523bbe01390dd3011fefd23da6b7db58e51dd5192b3fe9366ab4537fb4dcc3bc97ecdccbd85f72091e0acb07a58a62f1e69280a23efe6e7c872a03de0ab3366b89f07e4d0f84e2f750164", + "01cc2cfd6e228ab63a153e80900ee2048edb590ddb68ea7442cc6f71d7d993ee238af3a1b7a2aed9ccf38c56438a7dad5cce481495c043cd41c67fdcf4762405ee9ae42790e3779b24873a1ea39f2f120ed5af5c4bc58b0cc3de222d7a0dcfdae5d31eb89254eb1fe18f86b47e", + "030f42a895910a9f0aa3ae90548e4982d4c9e48739cb1016628a84b76a0ed6237ff2801a675ca4dbf7e411295700de574d3cdae86b1ab709a4439d68e8471514f00d400dcbfb3593786300b732fc44e16ad7700b90d80f4552387e267ab070585a57eb90a1d4b6399520005bc50795a78b0e4c06f4d6eae6059a5b46046b93a42a6a3ecd8cca9e0caa0c7feda0d9d3a8ae7e697287eb11fc385786fe1f08565450d7668501" + }, + { /* i=4227 cDividendBits=3723 cDivisorBits=2798 */ + "18fb9802d9de5613a65aeaa18c31c594ec55cb43e2c65f5b0f176aef6028a0a39a5a1e2eb6a9824971def9186a1004f9d652022997813c9f0b19a272e0d9e89f5961a7657d293a31b0a889dd42df9cfc44f746be774fb535895731ae9daba2cffdc3648a3f1e15a4400ada70f750353bde6dc8f11a0c2d9426a54bf9c7a4fe67749689b4f116af42f49b024dbd223c395fa5fe1d94a2e52b43c341e2674400a27d0d341a683426378dae0dbe9868374867446d601c0231b1a4052a7f9230c1bb01ce531c893a25a132de564470e0326d95bf41eb375bd5b1ef45461d3b4442c16052d0cea46687e66ead3328027ff9e072dc60f5dba86ff01dcf3891ac003d2bfa100b56069f22250e2caef6ea31e28f00a0757005c2c04a2553111db6fa741494b2624adb084d63939a2e40643c6bb18100d0762aac125efed5bf3b25403b1eb94efee5d7ac7fcdaaa06994ca4d3fe00a085f941497a0c5c0c1adad15d2d41402b4f013a3966048f04b14e681c40b426bd950e52385c6b9fba39bb182279857bcfc30782eb2939102a9bebce9a516616e868e19586dded5efefeba34ab9f9b2266fc0127e3fa68f182899a4ea31c3a28e68527c771139f1b8ae2d7c40ecdd1ef7227349be9ccf4bff026f9c2ac4aa2e05", + "0cc0c78b5c7d1f580aa5f44a7f625b8aaceb97fbbe4f24224e311a93080eaad5eea9de82b3efe473b7a603b01799366b4b65cc8a48895839d0e364bf11d0ff7c68022f40b075901235416d1601621fc81c5eb67251ea14ac279fd3a1ba22e5c06cae167626da1a661570f4d46b4153c870266c98483408de4dff49c2d11e7716bd61f5b4a577478966f96c0a8b20692517cd34a1eaf63bc43a24ec3e713018e615cf48254ab9fd1f2673b7cd212cc7908a9fba189fc1042ca55c76aa806dab42e00d319e1772aca2678785f1682f0eba1116d93c022dbb954aae4281b76bfd26ae58f887202cecf12b0b71ffc1fe811e6dd9f1821ff34f5405e082a5bd1ec7732b36689a2630bb5c4936ade1e292e2ed169cadce1d9ed3de9478d468f1397dc093a3e9bf82297c6497826c919c6ca15741e3280320ba154e52076b9a60dfecd4ba759aafb5a483e84666bde03b60ffd0d0fd449c3f92adf8db84bdc8c0f8", + "01f57ed50a22704e85a0c31e878c84bb5b080e1f8ee59f57d1f5f67888370405651acd67c218bf6ca85f4e10b558e45b286d460016524bee798b16d63cc65eba66bf6c086023c81612061cfb85da134081f406ab8fd07628be7487b2e57d560ee7cfc1418c7580506bd390baf069912ae3bb8b86", + "062cef94c7f8fa6bdac2a61030bfb456a338d077b4ed84a2b0aab928e624d21fea012aadaa2aca29d1184c90198591f72d4c71b38a5f7c5cec3c93e79b149a3b9565e2baad44de7e13fa0674aabdce09b7909c4abc6100af437db343c3480b65b1cb4126e1443e62952ef1de21279ff412d6926b53e0c01e8dc278df1a5fadb1c623ba59baa5030112a260c058e1a8cc26763981c6bc889f4b98a3f6edcb9fa392134962196bf631d1b3c7bcdf03e2cf847485fd808e8e7ba7613a490ed301831cc7b39fa3459aea4045410ee51577cffc17e2506ddda9c1ddb05bed17019ea95aed0c16947d602d803a5b91d73dd60b1cd0a57126687e40b3ea4c683eca53c740bebf350609169981b53ba25ab6ba3bd79499fd0a83d0b188856debbfaf2e6f9d8832cfd9e48d26cfad7b58ad4202a1e50ac2a0a22618d1fc9b258e5cfba05f2f18714c0c965043b02d7cdd6b6cf857bf1fdcc0ad9d46c7dc328fa68435" + }, + { /* i=4228 cDividendBits=2346 cDivisorBits=820 */ + "01d90df258dcefbf7ae3ac3a59622b90febaa4f55c5a0622886998c712e804ec79e04dd8e6d27fab0b0438730ac0d70c999747d7466667cf1a8ace7ed3b018fc9cea7474f6147feef4f1b6cbd99f404fe159c5a6adbb6393b1cf1022869657403eac0eafee2bacb9c85dcf66e9d7810aeb8b2c26eef6d9c4c95a7a3c34393707887ca4fbbbd180a13dccfd6d16280333c638e7e76acaacdf6b83316c084b7612f2944b39b8c09738332893f21e60e66a4b88a26c0803c98cf94daec55630707974946efa5a17fcc9b2569a797e22740637e49aed0a02f6555830c9f2961f13f1575741f78eeba9b3c7bdd3010a5d0a1457ccfbc2b6370626287ca14811e1c5827ced6e8b7a6fbe6c4d577c7b1671d8069fae421555834270033a43b5ce3473acecb8b95aeb3e", + "0bbd8a6f58001e4de11e2761c1d4f0cde9bb69cf8093fb7aa1e81322db9ab297f9abcb47080834df2007d94c8f91ea00e581b264de911341cfcd96b2cd7cf724bda56708104f9206abd95f0e7fd8deba97d9d3b9aad0484147db5a8076a4a3b36d9f072d494b76", + "284afb5947fd4763e0d4204c18346b8c3fc2523db4df074dd8f547550549d93cc2ff0e3afb2bfa6fcb660987538f7ff63d01bea5614b5e831413413f6f7c15eff7d9c2134513be588d3ce976b793b34b203056e12939529bf788a61de9772d82968b483cc639878224ca12704a2248afa53959aa1bf3d9e12746565d9b1222be08d9f1f02ed5fcb976b3673953e3cd5a38b24c2bc9f849c9eb4e4302013e665d420ad6bf199e2573eb666c168c32ae60efa306ab8e3eadf043f8298d2d76f9", + "07c2974146b07f75172740f0837cb3e87226ae8d434fb21eedb53209c3fc2817d519f386af52e78ae8cb4f3279381c11377a4fb978c9d0b583fe30362a790ab8307bf2b253fb102855fd0728e111b72a16dbf851d9ae4eee7724fd359cbbb9dcd23585a28a2178" + }, + { /* i=4229 cDividendBits=1177 cDivisorBits=1095 */ + "01f4f88717e89eeb0f000a7ce8a7c4b25b82304322d30d07ce8bb80b048e48fb982bf10ef4452eaa7d83216b80d23ca5783acb14eac2b2537675469224a36a5ad51e94ca4cedefa8ed5a6100dfa9a427cd403ac0bb06cfd088e52c938f13c4fa152570c02d4e35843851f78773a0a8ca7c251cb9c0ec0fa31306d26cb19440eb5dc7fe4b140062c7698f1df7795bc1f62818c576", + "7bb069d6b381aaef867eeecb96471daab7e2ffcf216b3d12b308782aa38dd07926dfcbbe2e152a126858ad0d8a83a99aee230e29a6bc97a34769e5b939e7dcdfcb230664b79cef9748c36b785da95ffc8a32c675d15e8449d4f7e3385a62cfa95a5b1951bd1ba7447509b48cc5ffd0991d4df1c5822faa9908c6a689aceb368127f7abcf45b1138dcf", + "040cdca3dcf5a038f3abe4", + "1975a5823c39f55aa484667896179d5578f00cfda5c34a273d079fd6f957fc39d83564d639d44ba7326055998e9a094d9c00d692cec655382a1dbdd29a16702a0b101fe1da67d00be7a2d5a3f1d10e9039d9b2749c35495dd30bd227f77d98f771bb415a82a0b8f2e36865b9b313d35b12fcefeddd1d1abab0a7f4b48a268e467f152c81a77f78341a" + }, + { /* i=4230 cDividendBits=231 cDivisorBits=222 */ + "4c565456f9e68008e123f634876ced3e296fbbfa03eda6656701d93b52", + "0626448f20c0d4df6cb6fed4529bea51458169b5e2d57017ca123a61", + "0c69", + "056b82bc6d6e4024f8f5bb923bfe5391dcb317c7e2da4e2c45a2bd89" + }, + { /* i=4231 cDividendBits=2957 cDivisorBits=1370 */ + "14550a92b8d84cf2729d7010389847c93b217d53f6d7a5e60697b64853852f99f33b5c109ef608e1760a09ba91b76faeb0342e777d7706c319d6e2dff0a94a930c6d11f53ae63d06f3c8f7851ca75e1d8b1b4e098625437d00bc364a327acf03331c57d57b43fd549f76328dfaa229f27feae3e6e9643727781591e220ec93f67d74e7e7ad6cf2e3606a507f6fdcc014abf260bb2458628b872e0a72a62544d153102f45bd0f59d43390a43253cada9ca606317659a9f5edefc12344775144e05c40c03d82beb6032bcb5be48bbb1610020bd3d92c2b8a309051d9a977fca193d9b1cf477446b7cb58b04ea298636043bee733a006ac341aabe8a57bf157d1d4cbfbbb46ac615c115c71522f730d5bd74815ab1d5e005ad23a58eedd4f4a702a81a0db8ec314cd1bb215ae7d54e8844b9f953befcc5f0cb93f2af7316d8a5cd300033f0deffb49286ae78ac82f7cc84a9260aeacec2117e83e55f0a6f2a65631060ee8b9a509a844930ad1444406051eb77a", + "27bb0f541d716b1544e559a5fd1cd57216bcee7c3920f24eb6661d9039738b5c514d7e30c9175ec00e06c74681751e31e27ecc69052a2afd00ee28f1d0ce38d1e1178e2a44ce0806a07d15b94f94a22668949d3da41815b8526521940ddb629b57233d783266d81107ec8e6206d892bfa06affdd06c1d28d96e2cbde35dc70ba5255aa0d669e9e81204a2171f668ea108edf5c0bfd39d1869a222e7085f1fe29b6883bc3927b7e29964356", + "83020e9cc330ff75f68b92b1411a22b31b3b6229a3bee2f0830fd140bd5d793bcba5bd73fd6da122a5dd88fdad98fb7d5473cb7f625005998d4e1214166afe070881f4940a48c6cb564c14027342e47ad6ec2cd089bf8644c5dd8de26ac7b88a219cc8516bd154ae3600eb2f677b317e0302dfef7a8eaa125c3fa813ad95fedc829c87796cd6f07f59d0fa5c8ca48c0b573cd7e18512d609204a391d3af426840ba2d3bfee9b372041b3df6c9da7d0a65c0abef4c2cbe35d43b177a036b721dab0ff593e7bd61e", + "1fd5d8c1ecf3dbfcc9c5f3e6dac3d9ddcd569a5e4c7a9e96904632cba3d23edb07a49693792f2b08e9e38e0dfba3bf803f85794186b4bb1a0f49d1c1b09b2f29018a1b171e9eeb675f8903084511c406f57d2b8809e9c6fe3cd1c41137eb6841dee00102db0f21a6ae37ff4a17798b95e1e6c5e527bfe590cb75bd4e4ebfea26c7754d793de20207446e0794f15ff0cc29241abd3507b261f42e24240cee7c492ee63ee5bde2125ae6ef66" + }, + { /* i=4232 cDividendBits=1158 cDivisorBits=1140 */ + "3f5a17be57f3abcc426ff4e260d20446165031b06a947542c81c0f2a404b4a8d3210f2369a8337b5a97b12080d991df7a494e569d952f8ac0d9d8e271076b019919a05ce62082b33fecacc0c7980ae5ca10a66c623f03cd952e743e0a401f1a8ede2cf546d7a3114bd2e76e74ea525203229ef0311cfe421706a118a65a9dbfd445ce748e9b78e7232f2a9e1ef54057772", + "0e15d7b73eda76b352de6fc9a1c7bc858c0735be399e55cc45c64e633eb1d27e89b6c33a31d9cf76eb9444a68ddd5115cf2bd125619540f8cb157019509f2a132b03d4962b7e10c75650dd815908e8844bf3e38def0aa922d7430743c769c78cb371f68e22b8caf65cda9559a7facc7fea2baac69ec0fa3c66ccd9bb330d56cfd5efed4c72bfdbeefc95c62e1b93e8", + "047f6a", + "0dd2227b69a6da998c2c88f3fef5966fcc11e4c1b5f1d3d0909d9451d3851c7f34c71e4847be150de5fac8cc50c303171bee2e1a81c08d841444d47fb005f743fd692e4e5b90cf2b7aa832a2c34188c567aec56a53fba4a3c475e45cc7aab2d31e9b4882f80707b13ee75d44f9d46758a41b57cc8324413479c7939dbf26df6c9605f0236d29a058add4923e9a2162" + }, + { /* i=4233 cDividendBits=2722 cDivisorBits=2714 */ + "7677f012adb2dd2b657525518349fa01cec0d2e323e874f06dee3f1b1760d00bf3fd02b1a82f8109cf4a0d9a682dd793f3f6ad114945942fd689e4bf593062d3ccc6a852886e114e281666d94ad3e6da526cc6a42da6d9146a2a0f4e98854c2c28a59873da8f270b5cfbccfa7e68499b6685886fd6d7b7f7eec8b6585827dce46c85f715b9c0001f15fcdf8bdbd6361c1f52d22035167f3f50452e79b0f6b249d68c709996ee0cb20cf7ee37cee4339f5fd05b0b9d4667bd2baff604d44648f4503144eaf59145018577d1aac1e752fc0be974198297acfc1c3777a993037c8bfa9b7a8efdd1cca26e9757449108605b962b81944d585ee05c2feaf270a67af4576140cee1314f918d9f19d016d978caa9e4497c0b4391dbd90e58c8edafebfb18ba88d0c74b5021c0824868a254e21a96383a40e0a1d46d1625f9c7b8b1e04fa6cac8d31196bfb2e21d2cc21f128414d568c521", + "02e0a1897cbf0e5f630414ff57947baea97a1c4bada5fd062d325064a5aac5e96e18abb5e95216a8dd3b24bd3afc01422e22e6785ecf08b7d284080a0662dc4df207fcf32929b902a57c8a535df156de683fd622f4c93e78723ef48afac6fa365012b099a6bdc8727c6eda595b4dc2ef3c78341f71266a12004911e1c986224aad3e7393b6f58c361277aca66ce9966b76cb0a3b92f7f46b05cb091af7aecf209f52e21c21eb33320a05d52d0e6e36eb353bccc3ee57779cc244714b8ed5602b54a3eadae697655e2ac48d076e050101dafce2b7532bf5b1313814b60e319fa233a86b81f606619b7fe85e9126f291fc5fd728588a269ef5f27681f8d57cb484432986dc54099d1249bc6ef37e08aca63c407a27b7698b84e30fcab5d35e24e4bc85d87ba627bfccb139524f72b8783d9f30e79c2bbb312f5b4a2589cfbbb54107d5e0c9b49f3ae136e0fdc493270b5cac982535", + "29", + "7e110db3198fe489cdc86c7c822b08aa324ac45452eef330df5efc8f071da95209828f4a09dffe60d12b4bf5d1a3fa905fc3ca1a1d2ebf1f649b24535b1a58097f2560f0bf6fe1a7243f7f3f2cfd3ba0337b0af96bd7ca1e14e50c6ea7397955a74fd8262a0cb56f3ad4aadef4114ab7452f66b7b0bb15e314d92f11ac5eeead85746d6c6c8b7620d238e46a6d1ee618ce2e95ab605a1b62c0b92805f7861052463a182842d9ae7208ca007f3d67f3d93c8faa71443fa20eb9d0eaf419e203c1f0a7dc075208ecabfd3b7a231a29aff96924bd308d539b3a3c26814d10eb91b4a242be96cc2abaf2603205542efef03cb60b662d28e97c87351a183fad91c595baa7856ba727a3be7154d0e775d22b0390b91fab5c39937b86e1aa139c0358e74add032aed98595e5419af42c9a03c1763223ddfa6f3d77745f6b573a1d8e56589c885241651a1181488468dd1b23d310acfa4" + }, + { /* i=4234 cDividendBits=1791 cDivisorBits=924 */ + "2aef0799472c04ed8eef06f607deb5cb4e8e2586e6fd8e12ff132177f162fcba1a7b9d5298b4698b976e3a1e5c4cda0eb11dd3c918f618d14e2d3d64223e7c3bfcf9053ae9c8bd4f86781d777a29d2aff70e8f3b6929b2b38001964ada3fbc4aeb9729a2517e316f456fade70c5a196cbd29b939fce3ef250ffc5282a3cb692a8002e56d0c11890fe7dbd17f01722175cea1076737bef62039e669a7183505bba9ca36b8764eeb55d862a8bfabb38c8a1a8350222da3160d93eccaf0e17b3a2ead4f54c8f2772750c7cc4f57e013c1b5bf65bd51a5407d69e2f65f11fbf5fdfe", + "02d9d40c14c302f7ac828a8716ea1a938192be3228e52c427cd80e3c3deff9bc5b818080f20122bb3bb4c085a1b4de398469cc5595f89071a57f99087ead25adde8cab053f4817b592342dacd928450ada4eab52c4c1dbbed642dcc92d4fb66ab09e4a64629e88bae301f0016077cad642ebbbc3", + "0f0f4b941acc6ecf1ed504e9a335092256054680ced156c88cc81de82eb7377e4c79e6cb94384eabe3e3950006a06169fb4db6ac497fefed8c4c283b93655d9a8836f02a9dd2d79b2e86581be352aa92412e682c66db7bbdc0f2025d9d873d46b446a7ca5064f113de1f3e28b6", + "01e0ce63cd500942b17ca86fb066a7b2bb5937c79ff8a4bbe1002ba77d9b7e51343c8a51fc584759ad4ea766c36d24dcb2e9a58ef249276231df8ec97c7e05c2fb743b2e560e81efa5161d5cd09b04cdf15f79661e5a4aa7b0a0485c85c6cbf498d2f79af9fd5f19bd8b59d00e2ca35b7cce095c" + }, + { /* i=4235 cDividendBits=1650 cDivisorBits=949 */ + "038dfaf1132db104fdc2339d0168e4d8c4bdffca354094d050b1c3147b5e0bd619f9751b087ae60c1f611cf1242707269088d03242863649bdff1058cc20ec48bd2b6a727a01a7d9e427a628035e3a81bb33cb6fe6d5abbe822505808e400c0a5f387301121c85f072b8814d7cb4fd67ddb149ea1d792d9a018e06d3c0143f479b51febfb8d57f3563263582c4afefe0e8281c0431ff3388d482e3cb35fe05d8defdfd1088d6a627d5eadda83d6e667ea53ce1ffe300de8334fe8b17e3dc429683240a514df22c75e10bd4780baa2d", + "11b587ca48cd7115c38657ebc7f51bdc2dcf47c2761d83079b076c645a15dd2762e09f52e83712b1fd752ac2e167e494e540e8d181baf07c528fc926930ca654a71c0329ba89dda501259e4222b42128f7782bc1d4a5ba43f6d3831f9df8d70525abe42ae8bcf87adff715ed8b101544c27835e6b7ba7c", + "336287d9c6d4b695a8cbbb631281521d5e52120802918f208e858b417b6ed531f9f7e22fa7f3ee66e13a50f7b2078492870b65a159f269e485933f26cd2574d8c6dfe52fd5edd5d05d11117df0d94e24bff5f58976c2b17b", + "11a701009a36ec4cdd33d6070f45725e799811583b5eca35915b61066f2e3642a9b3c22cb1844368c86acb5032cdd275e951673d24403baaf17671e3621571224cbf31f5b4c7cb084b93a27561a4c5d66cc60660cd91a2765638e69495862a36d074c85a6a3c533d32db7d1ff3f693bbab05dd1bdd5499" + }, + { /* i=4236 cDividendBits=1468 cDivisorBits=1173 */ + "092e168df32639ed5b7be8192eefd55971f82616227d24275d8984578dc4ad2f67ff1a38c2dab7a3d7643b19e808e9a7c75730cc42337b129c0d5f2797fd8014bc29152e67f1c59fb3e529d51a4a687d706097b46cdfe2a14954c7cd6d5fad6835b316008a8a1d87cb5530bcff41515489f254d3de9e571b8dd105455e2dcf5c79a40cdd610be6ece531e27825b36913e55848073c940415ab965db6923980605d0452d4caad8e4acc37be8dd9b32b3adda6bba83c8eac30", + "0e8ab96a3ab9527e446c579d570fc57878724d1592c23c69d1bdb17b7a73fa79651d80889740d748d36b15b50d986f36ac6b10796c98f80d0750ec7f0e665fbaafe4e06d50107f4fb10cf3e09995336f07655d0048f1663a7b50b4f84fb728e853c36086f402690f20cbd04f14177291727b813a907b35e5574c52423546c6f787a8ddc9560e1b1d8b13f075fa065acc4258c7", + "a19baf35a602da1dce6d90ff6a437c942c265a1e420ec8f485521e2aafbe7a44bbe9d49563", + "0e0592b73b1eae37e5f24c44c9380b8877327d720a12aec3a6ff2a405bc6bf15e5f6c7b4f08795b27fe3dcef02cb7128710be81985d604ea13e70f37ed1f36c2771fa5c638a93a2fd57b7efa0bc93160f4013969fc7c06adf1a5f8acbcc6099f658226b3746811c712667c0c60a68b7322d1de818f99610c5ef90f6b2adfa38bb80d95e7c30284705e8f9cfc482e8cfd6e843b" + }, + { /* i=4237 cDividendBits=2959 cDivisorBits=2010 */ + "61207610a19f89c7d4fc9ba88a1e7e142ab382bec38f63c02b9118210417645a6907e025603707cc495b29cc8d85a63fc262997b9cc3eb8a01798071c695aca1dabcedcc9f5ed3529a34332da337661b995392171cc5e306412f553659eccb7830da6e93fc8c43ad1f4e1401ecb4fe0303309320b71085648839e498f717842a9886336d7faa2320bcf0835f4c41e34984b5fcd3f49436571300662ccc945ab6f9573022b02d144d61c2ff359fcf13439e08fabde2a3a33a5395659a0228ca66aa566b50516ed1f6104210261ff4e3ca9e4148c523e71fafcabe0aa8c6d16483de8ee3a755ebdd4d2ed7655a96aa4cc029067a6c86d23fb1d64e336268052fb84afa5772fb88a5272445090e48c8097fd3644d92e3a85f611a9ef8c40df5607739744e0ff4f3a4a87f04785bba0bc50c4b819858b5e2fa04d853375d5c0dd59fe1461bb3532057e884de0a04f16a86e4545b16e6d8a3f70066872b52a9369d4c988157ddcfbac6b586f249e087514b7c1bf4", + "02138ac094e56ae083c7f5dae6c51555286c1d0fc7bc3509e40e90250eecf75e11c427ada0bccbcd69963cd2cee335d377f5083fb2c3c8fbe74a319f53167261aa40d66df4f5c6c3b35391eeda0ce888780844c06a4afa55480204c00a178d5f2f5c789cb933bc8278ce15e8d204ddefd0d404f6ae81df15f22d279e7de9bb699fa7b08224250cf1750b11799e3d0d7e105abf81e80e5f4bc96666238e1e64d6cef78fd4495190325d19b48f42d579e2b1df0d5be9fe043ce41f8211f892eb3e969535ab227bccca170ecc62a18777da5020db69d474f478472db9b2d6f277f9af9960101628c1eae8ec506354af88bd6c228156378c37c5bdee6b4c", + "2ec729b58c02f142d323fd02994a0a86f6389ebc082a1919329a59f1932c142d27d5c66a2d3b776788ca8639065a5355ab43f7483affb995559c579d9074c9757c4590693a5d13ac57a5a98bb232717ecee06768f896c918eda5c39f30b64de0aff947d4e49c13d1e23dfe961b48d1f8b38a78a70bc35d", + "d662a35d5c60ab5fd1d45f524d81c18e1754835281f373c35b6c1359cd05eedd3a42abd1c6362a49678810d57b4c9202f85d3b8364d4de6db42296275006a10aa005b6b0e828694eaff1bdb7eb8764ac99066c8374e88cd7c3076fe185243ba4fbcc62395ceae5fc61612d0029481b1a65c4cd6703f2b5e1523c77cbac1fa9f83537b0cdffe836476381222fdaab1b6da96b62679ff9f33d669af1dbbbbd6d337c485f5483a052c5dfe126cf2afcadd650fbd935a1541a04d7fcd9bcb5b30895b77f2187761e54a2207aea76b13b7772322fe368c406e14a92c5fca1ba434d28a24ed6134fca2c14836e039ebf77fc42d28721b551aff17fe03d58" + }, + { /* i=4238 cDividendBits=2647 cDivisorBits=404 */ + "26927075a926e30bf58c8058738c5176647a768b87f0ab5d24275a153ec8328d6681186e81025fd378d2bf7749455487610ced78e08d86311e697c2466c435c6877169b3fb8a1c39f9392c369c5078f40a21930e156539adf5ea765684c60cfb90b8aa78825a756dc5dcb9e353892f031686d7556f2b89163cfe6455be5d09e8f86376efe4d8c594f561fe1229bdd55b75a9d3079f8086d9d00d3f98a14a5f750fb12d5dc9532dc3273d81a27cb58f51cb92074a367ffadcc71870cb441d79e3c66b1547051ee4f6a76465393dd8af8b70f6538ea66bffab131a713581c9e4db67d9a7e417fac3be9941720b96ad38dc4ccf497dd277467b8cb88b7edd920c54aa7e12b50e63da7876ceb662bb3244a271fb52d01b9ae39a5a7b46fecf5a4e50184724bb22a70839f097e38af6bec68c920f7edfb23cc333c0bac1e8ce05c7ff88f9fb33afba7ee1b85724", + "0f04e4172d054954041ea26a92ada435ea3b153708a3b6d469840e2a66b685ceb6a84dc9c461a42d6db44d2d15a1bd8915d4a8", + "02917563bc47ed47fbd25ca91f480e51317091cf56320cb3a2bb44126cd52a340f1370b762f164fb75a723f76680f7b69cc3decd5916f23e80c445c476a05df407b775bf5bcd6ef91c0a56639867897ada3ae332fa08c894f6c6b3e56677e19a1f802ba8e71dd3f48ebcd8fc18eccf59b88e2594dc7490a5cbd85e0f1fd9a6446fcf55ad3e486d1ba3cbc4aaf6e397dfb13aea4334908e78a815c736c77f3f83d8ba33bd5c5f30824450d01cfe981c2f6ad46bf40df4393da620073571eb461cfb1381286277bac92250ba0b7293642f3f7b7b92c55646d0b170a6eea5b619c828c76c14de8c5269717d5d434a33f39a10d1c6ecbff4cbd08527e2464123a92122e167ae21d9c6a1af65eb79831d0748a0ccf845263280912a", + "35e08ca34173dcc8b74b20c062a626a443338c6a39b8ca92d9d5d37e23ae65c1bc7d181f8ced465076af8bad2f5de2b04b94" + }, + { /* i=4239 cDividendBits=3465 cDivisorBits=581 */ + "d564f2869a64e5700612ba8a7193c7a6a33be8cf57dfd8d53410d9012f19c8f762a394c7931e6a75ca656ebd191f786280199f0029f23e765e420d41437ec30e882a0bfacf0cf757ec6bfe977c23d1f4dc749b7d90a194f58cd95a7303f4f7e1965d8878d12f2e730ab94e912586bd44f748d6430a9fc37b717667bfe80a9c008b2e5a12477f9ec720d503e6ca587d5478f06424ed3b3cf50f4f5cbe323dfd813776398378c8a7872c2f0e90462089e65fdc611b64989c19a826f5cc3c477d11a3db37a59b589c03935aedc52c56ea64c4380eaa6ad573ed85c3370bf3a5b16bbad7a64c977d6eecb7822ef6758cbc56564cd5ddb1203e16961e5058d19bea208327da5f6e19f87ba8ee21ba2f6840891684d629dc5d0993fe2da48d447f0fa617acadfb26d552370079f1db18775c16f72705831610e4a6f4adf6e767d0f1e95d574fb5ddd5c2a819b426eaaab8305e3c3070b7f3a655222ee5c36e04eefc81f7afa433d7504386dde959f0a0924d590c9e334addb73b9bf8821b571fbb326bed074a1143598a6e984ca98b7d980d6c1827518d26c63559ac56e1b665d48f5d85054d0fdb6651d4d951ca51f2ffa66ca9", + "0a8c7843ed3df5a13910e1b9478e6cb239c8faa69b2909f7de7a63c6c6f69ed0eb4f937146d247b300301e114bb3599986bc0c10d888bbec02479faacb32bde5a15c00322d58effeeb", + "143abb82245185efa1e9cc22b3b72fac8d0471f7e3f176159acb566837da1b968fb312717a4933e0238f33f6c0095265a6dc40699a3689a63e3461cfeb00d866a53fab8dd820e56c5ec7f0eb4b7ad2548c270f4e92bb1179a541f48acf3880e183377228b4eaa3a48c2d0ba8b62813e7fb9ffdd064eca04aa802165340fe9b9cd1ecd9e8e2b2b18b3a4925c08d6065c8e0c554e74d912f20bd702e5358a6776e8599806eb3570b86924910c05d828d7842ce29c106a0e139970a16baee10a674bb22a34ef7ebb42351258535d4c4658b99442c31762fba1444c8ca4efe13aa439b8c38a37641cee95efbe22a0ce9a8f62797061f9b5989d6babf18d8d1fec1c105850efe02f38796258cd91add10d57c563e0ba5d508e474b15482027e7a2d8957d6a2fd63cb533507ae020aec634e9a67437be95881cd206c3165c9515033f8c4998ae5d24e5e39788d7dc6c6a955f58e944e9ff4136748ea0d3d520839e58a71ee4a86a0434ce7e9", + "04ecd17f5d1776df1eac36f23c3e1cebc75dea4183cae3051b87f43b50e003a0c678a9fbafe7353c382cb308b7e16052435e5cd7726d95dec5578ce932358cbcc9453c2f954f6d5bc6" + }, + { /* i=4240 cDividendBits=3986 cDivisorBits=1525 */ + "02865c53995c544cdd1ac403800ffb65fc5b00121c5bbb6784e0618ca50a33cf398edf2b574b1ece6ff552f2f724304c0e89ab5a2c26dfa4f26513bce18cb9aeff5c813a580b46a7196d2c8fb52c3001f6dac08c225c62dfc76484db1c215e34a4ae2f0b48d613d076741610ee9a966bbdb6fc06f852f04ed0c1f029dd3ff089eaf98ee3c31cf4ee51357217408fe495acd3695d26d7607046c6c55cefb8171e761c2b7eb8f5f6a598c058c0befd7a31a8d3a1cf26f5aa854e770fac7b418ed2e826f9baa6598470e92382187f0eaacb21b24a54e735bc6a52dc7ed44db03b04fd7f5e799207d74990e076d713e58e89220fe449415ef54c40bfa48aefb56e01f41e9f8387b379fcbc5364d2851343035f4135b60e0636081658732d2170400392fd1ee633099edb879af0798cfbef6e2a3a8b47c4c7a24b8ff9781442a0df8624c6da4a971d3f4503ca84b4775b37583d85c760327a6c65a9b7c1ccf4ac90e329e735c0170fa1573daf3482644ed7ca1630fd5fd2a4dbcee3d37f57ee3d0cf80fa0e034b722efbea8c9000bd9d6d987d357c1892fcad98bcb357881f1f23f482be46869aa71c1444e310d3852a34612f64c805996bbb565fb6433c440c917411691ba8e093c3456e0f4d8be13cfb45239a403af02a1b4b4fb394f9a97e3142ee5a2094d50513cff44bb9dc8c58d8f0729de66", + "06b0f44ed8512378b2e316966c15494c658a555e3080c0a5b89a5a44e7264d127821eaec0def519dd3cd806e9d6df0b4954e4a5840df710734235e2c58b78c6e28e7c63bcdb23ee1eac7b37a07a776f08680e140c5d4dfa1748887579c356166ccca50e79fd89f09b47445d10f92edd3d0cf54761f0015448a327b77ac0b776b4442ebeac397d9641bf718d41b7b40641a214f909f705c8321af0969b19f141a5336ae62b4879be3ce4572d649b3b260fc55ec44c2572868c55f7fa1a655b0", + "60992477f8fa4acbb3519cb3591254284db14eaa57af3796e695d3e7df1ffbca549bb9a4266e83fc24b9a2b0b33848dbba68fba982e3bbbc7bb7d32853f6f28b6766dcd47837867344ee06a02d4ff44d0f285d034459b9eee60e750eea3b8b1e638d1ea250fbf28ddd0f282b03cca697a5fea3d15c562f5332d2106f7857acbdd4b2a5b6b617b619215d86eee35b79b7d7574f293b6dbeb69e9f0c430d06af9ced76c6e8c64631e83b39964a2b6346f15f5946fd7529d6f7c2b8e428a3538c4d4523269711b83d28340bc867912732e73aa16cc765ac63eb1f7f9697a4ad0bce6f36f2aeb36e44bc2949e60759bb5ac2970a60106dd6f96d831f715bc5c7e7dff90a641255d6d5d493218a649d12ad3bb98be7eefafe69d77aa4e3e6db277af4e85b1d28556369ed5f14fe02b6f9a26b554432b5", + "0691074b994eaf293e618242b3fbfb30026b74dfe95a246ba63076f1914062eb36cfcf52e63eb136b46e7eaac1917798f1e3f4ecc570b3a08d880372c3c853380ecda6df56a543863be48bd45ef68b8c3551c593df4d36e2907d3fc3e89f8b830ff2408adbc2af27b1ddaac1fed363fe915b86b16fcffadc0e2aca70d47e9ea48b63b1c475a60cc81f994e4a8f9990481a050f090464eca787c52c6f896bffee21f8a66fac131d9194388a135bb24d06e927063c4264ba1f0fbf8d0d12e8f6" + }, + { /* i=4241 cDividendBits=168 cDivisorBits=87 */ + "1f27ac92427bd58215a38e9464de23c6df2696eda3", + "32b0a54b226cbca18114c3", + "9d57934ea72bfb0f4f0a", + "2f398f5c3299fd99b6f105" + }, + { /* i=4242 cDividendBits=1627 cDivisorBits=892 */ + "05212cd81109f6c58e14613ed989053bc119fffb0072cf48047c12999905d3c3b2b9251eb0c6eed82000587380335b437a391924da33e91a81256cd3a92af6c22a1bee997d854413b10ad2382ddc047e98189af01aa8af002ad4c604cfe6bdecbcf3d83644e1007fdcde24bb06483e5a279e11d22c07bd750c915a31645c7eeba797f04c891c1884a16e5fb776977f6f8454916a90b18ed6bd94091cef5b96b99a15cb7c0b3d666a6f2659fc0eab1ab7597be203ceb91e3f0ccd02516cd45d4a83631b3eafa49dc20be18090", + "0378e24854471b4227dabaf24994589b8a5c3b75fd2ab56baf73556706d2e95bdfa9acc2ea18a5c1c255e1aa282daeab8f2576259bbce58709e027da7e71b07e70cd5bb2bae4560391ccff9924c966321f7726bd802681de60401f190447608e37c57369050169affd8ee76571fc8243", + "017a325219eacaada12b39d3b3139326f042fdab8a799c68103a8aa532415fe20af114e3dc2e87b96fa09e59a913c6ea58237c80eab41f445b159589c4e4e31520deb905ca2c4525c6caf0fb29a19a7e48d362809f7d32ffab485bbe58", + "32063680c5d7fddd8500912480c9737bcef576a939e7b0b740c00e1d359e7eb2d37b0b766f70ab9906c885deb1a54560b352941620e503bfe130d7df9be7bf11b64878941287b83a6a75ba4ba7f9a203ac3025df408cb15539b7f7bbb61dacda7c8f5b188f41d7dc277f234e95ff88" + }, + { /* i=4243 cDividendBits=1684 cDivisorBits=535 */ + "0904eca7971a8e3fa38821c9c521e6c6405dda3ae54ec333e26c470463e96befe78a4008c4542a9238b3da57a96f182da87987ff261c45a3d1ef6f1cd60d63a5a8c598cd356f84b2909ad9176bd84987eb9c377ba11d68a2e73c9750ee3395d9454a2a22b3a9df711003e37cb1d2b327696d9e5477d8f1cae6ed012e806ed5e2b98429677d3f80df15a4a44d6cbff2d39593ee456596e640c1a846bbb7cc9400f33d9a3426dc1c9bf739b9d15912300e81592d32f5759444bc9ec8c46bada662715d2100aefa10b36232b0ef2ab93d6cd0320f", + "06ece8e8b6f9e09002f55acae5daf17e1370ff3bdc68c8970e22850353642aceb21f6f612c567453d11670f2cdd907e6bc335be74ea30cefbe3a204aea7f8c0ef23b2f", + "014d65e60533a6850655ce99d7df9b915c3888e488aae960366a8ab6ec146fdf1f2f59224c0a4948ad330c03de361331707034f21328259f1d347d9605ee8427c95acda0bc3f2f0cb195b08f9622e3aabcc15611be2ecc1fe5af069087019ceb7007ad1d99694ca181a9c958b3a79dcde15122b08a405bb9eb9fdc0bb85882f468fe55cd288fe3d565f4caf62e880bda89", + "0197def3feea036e6c2952e4c26938cda933f1c2342a3568d343f026218dd0984e5b6916dd72e3302657a6e6d7c1df17f23e6b42e1f2a6a5f32a29509e1243a3c37fe8" + }, + { /* i=4244 cDividendBits=2115 cDivisorBits=1781 */ + "c7ad5efb903b7de88b121cbe27c4838b445872312d60c6979c6df2aa0bdd1cf98f2b0c182600e9c1c7ce017bd7f8e7a9e6fa320cc5eac433c452cf0a5baeeb51d1304bdf284980f5c47aeeaffb55cc2492bdefc90831a191e27e24b217d15f742e3f416a6ad5721bd32c908252eb6735387b56e3bda1cfff11af3d052e29ce60e91ce9f6987af24ddd808e012c82210691f0c26ebddb3d05cf192d66200e43b312c9d5489cf7ab28b2bc005fd56a753262ce3816653373d22fe9006242ad9af556f5c01562d1156ab1dad027b5243ada89c0b71dded507bb0116dc36ba6c041e3930fd18f6abcf1fa38968c897978313dd60ef49f657d7345c061bf6656f4c349cefdbfcda413d42", + "172da6e5cff262f58f560e1bdfe9f8725215b87be079e56a583eb637a32c4c0ba6fabdf863fecb9da4aa4cf67e947a7142261ed0e880c2aaaf29817abeb67731ffc7dc84904427f561316d3e4d98ffb5d0db5658690e0ce9c7937aa25ea27a737477056c1d385cd86637951746f564763563999111e250060150602a39b113c6c7112496c2d28967b58689749e1cfa1343f2aa9a4d3cfd42d566b86028a943143f398f9fd700b7c51266efa75fdee630acdf7c8a4c686b9c9d1ed3bb197e5ba73126b79b8dacc57b73f3689d3038a8c730f9511e023577b1d9996e410ae5ad", + "089d6525ef765f5d3513bd5e2335161643af78a5250d84917a0b6ec35a1d2f3930b2d6fa44eafdc4340e", + "08c2fc92fc4ac3e7b90a2b276ec920c4ddff355bf7d07c3d19c07a6bcc6a3c20814a9d7c0c63b1055fdc5d3233b9a93c31d3d7b62d41dc80fd9cda57fca020960f148b468c20aa627e6d08d02be01af919e5d189676c513a8aaa9c74b85236bd595b836ba2617cdddf24d595f3044b8148236507e9abe1ec5a013d8708cd072e65e15d5add901fb9af87a747fb98e196779dd1ff72589d4d021252fc2511e7129e0b0257bd3fde5c2a02ed97fd00fb80528d5db615441e0b1ee41ebd1f4460d172298b42e17b0e61f94415b1881caed4d7ea718b308d51ff439d49438d89cc" + }, + { /* i=4245 cDividendBits=622 cDivisorBits=458 */ + "23f414cde3f9898400d2cfdc6bb1d4a29f0d42393ceb6bef921bccde5352225070ee0a8701c32d496d38aaa5e10e16ba30a31dc997af058fdd04a3a637f448fbbaf6818be61b934c17280695ca66", + "03c5fce9687ed1a435ae85cfe5a23cbfa75b12b83453add606d88f4dae04420f0f0b9ceccb734d891fcf311767d7b81e119120ab4fa0bfe506c8", + "098735101ad74acf9fb7178b6df71e86c115db8bc7", + "02571981ea928f0006467c5ef479f814475f94145da4f34eba49240999c87c7774844ad5ed2b96592b28f6088171c1d1534c8afc29be4bc6ecee" + }, + { /* i=4246 cDividendBits=2645 cDivisorBits=1587 */ + "08c10286185ac7c5c985087546bcfc69efa42c8b269b31ae9f1b21292f5f9c60d5e0420165c457bb0309877176415149388146250a0a37e3517b3f3f2dc2a38ac32f449bcd3ad406701d7c44e989420ad478297ccdcba7ed6508c14dd83e9cb847fac0a7c79ca4c380d18a3e9af5af45937783fc0f88aa3f1b5e98a70947105c1fbaff6ae0ce42fcc6bfa42289653dbb5f7caa52a80d6fa90c3deb9d9967f64ba064a498aa9c6f6015b3bca5fbb939208c4713454794e262b53206ffaf31b09ffaa052aa6035a92ff78e62ebc20fabef75df43ac9e847188aa753d63812639b639c5d64957eb6b589e0c8179a55ac084dbdb0b248f3cd1bb51fe9d38c879fb1ce6370d4d933a608b45c535d2b246cb4a9b0a1fa3011694ec4c3fa2559f5106ac2ee86fcf1ba9d4fb5c473392b5a0ab95540438229d911d95a3f1a1f38167c42fc640e132df999637dea03d", + "05fe3ada2b9bec9217caf6f5e45bd041797529ee57c0a4a475dec1e5c37051cf06e4d22f83766a2a7c11a10975601de822528ea9181e761d5fdb375c9d88577382dc4f8ebbaf64fb4abf18162dec70c75ffe648cc0490ece0118713eb8d4266c20cc38dfc46c0f1e72f7376c043b9e86d1a28e42d93e5446c26ebd5189e0cbdebc6ea51591f93eb0990f375e9974ec8cbf2e5d922f33fbcdec63e996b078673676ad9a7295e0c26a295e33ed3b1e6bd2eb92e39c701e6c3a7f0b27e2bef7ab95d7b1cf617a1350", + "0175eebccd07cb07d48478aa12740848a213a78fbbefa15ef71c528ee85993227a8e129f854f42516cb9aee3ed55a98818f9900ef4661d73212a37bb8e80f0b4293b556c943d5e445f5c2a07a3bf02e77e49405d4b7118927d12f52745c8a1f62ff7f912da212c140899c002d04c18d5abd74219520e8584ba03cf413377dc16f7218c9c89", + "d9ca30ea1d330d0c9290249fd8432d0d3499280b5c8b53bf83303f3abd44e6ddfb35e6f21e9b4b94671dece8236ff859dc6e3fc4602fe684b21180863afd30b9141209d6a7107ca3cf50720ec32a74c67cfc7ce061805061994a23d0eb334bbaef239c3e46311a2b45b98ea34be4761a7c839da1c90897bd1b0424f22a4ddd9edf41429cd68ffdf01efab95a18c58f329fb242310b74284469c435fe3ab81f6f5f4ac9fe5386a8f11e615125586907a9f34d6aa57d2e32de28509fab589345eb84c4ca058a6d" + }, + { /* i=4247 cDividendBits=799 cDivisorBits=673 */ + "255f6db89d94cad50bad191375893d0b7432918a86342d2e03e719b9591833b414b58137f286ccd1184084cde43299246485727dacde864e9384c8374299ef71a2174f20503d53b7ca51a6d79ea5e0f39e81c1b8a60f4266c5451b1bab29a74bd1d4a08c", + "1a87caa37a2f30aaecbd47184c80373df4c86cab30044fe9b5c9def8093f2df6c863c1d75cc464f06b84a3b1bf22c8677afb71979214fb2a2a7441f1d62ab451e99c2085a07d662397cd88cd9523920e609673", + "01689ef0c469695e11acf26961909dd6424c", + "0474d6d7ba4de5e7f6ed4c8c22499d78ad4bbc3f2f94ddd90f59d95523ee785c271c2ff4ca14e27e78056515d77a71248a747a1983de03fe282e0b881e1845dd35a5191b72d8e20fcc3a4cc64cfb885b3c5068" + }, + { /* i=4248 cDividendBits=2412 cDivisorBits=88 */ + "05e7258524ec753d61b9d4cfcfe18146d2e7c8a2ffd736fe491d2fcceeabc156fbfb12e5ccb7c101f305a2dbfbfad2efa336bfcbc352c0ca69bf0e89dea3afe32d2fa52f81080d02f25ed528234aa8536add23ff1f835bf3d824dbe6e84d7f8330be2d67f713358c9e2bf9af7db292bd27ccdb7eebb8aaec7f77f9b84c641e9b676efe89cd8a95e0436db112a20b4bfa588a688bd21f5774561de60630c1b131f47f3dc119c2d45dd478f6558958428e3c01a3ac19412981c7e66ba5baba6063c74606e8d264de9e9ff7c3929ef1c0a209f5c1b1971c5fad5d2aab83c69ef4355686852bf1ad868b65d125cf2c9d0e5b17061342f5ad3f01b6ace51a62a27474485ffe1fd8d573566d133ac2d0bfc21c71d5a83254428fe4a22b4261232d573115fb09a4ab280d87621b08ddc621", + "1a1a4130f04ff659938db1", + "39e48598795916cb857771b2a3cfe7ec62f3ce74e192cdad9a4110c1bb4ff68ae03826f4a5b5e1420ed95f90dcae31b02174435d0d71c407a59ce3a059187bd62a051f86f14c53eb81db91139dbb4f9a5777925305bcec84f3582bef7fc1da6e10dc8df05e1448eba8cdf124bfba663687f444a45306f6dc4dd963a7f6595e5d48d2202f2c58de6337dc046f284df0c716265a84d241b39f116874cfd9585e63e7e0af5492184a3ea3902533a23332cc3c96fbdb6c06747e3eecd868d45ccdfe4cc0d54b9827d7a4fa9451289dbec12369af64ac508855538d22247c28645b9f9e322f3e86172a8b19836d9c17b67a822b2c1fc6317e1e4e07bfea905e3830eabcfbcd7f197764171f6cdf81ab8c6a0816c21885b1de24735f1b09eeb71470c7caf9c4", + "0fa5a8b098595b8a6a219d" + }, + { /* i=4249 cDividendBits=2286 cDivisorBits=1412 */ + "20016bcee948056a566c881360524ba3232a1fed5d6b27b970487bb436fd4cdbaf78bece8464dbd6766b18d5346779bb99a0cfeec970c84d4ba800c3a5e81edcc984a04731f296bdf69dca154cf1e9ba61b7d122ae596c7517b91d372e14fe7897ffba0f9bca87a1e26ee61ebf2711d8978c0a8f19b75819ed2a1116419556f6b4740632230ed0ea7dd0e049382778f4ae8727fdedb145afdacc7cbc7f658ec25974c27879d865b6869d9a573d7a99dedcb0da892f510522cbaed0da4f17321de81f4904412a5e2466e4280a4c343f31752f14f11a08a76b3203fd336241b8af0b6120c959351c5cb5b165b5ed665ba9d5619eeeded3b060705ea5c39f8342464b9f5a757886b66047d588b24fdc7311f6e27ba8bd656919d15fc6640023", + "08e7af40012d9ee16d2b12000e5c05794adf52619ecd5bc7d37e343804b623841c5279238691f06498ef011928ee9c00954d05fe12d0b0f43b8e2a277d988e0d08acc9ddb23e1a9c76d48fa534d2a73e332adf3ec6ba3bfae831e3fca5c907992647dbb0b9afc2144dd466d9000847781608e5a0d8512ef382e575839b965aa8e2c272912569ea83ee9efe95975993e006764ea65c9cdf75ed542be6a96a47b970cbdece42b4510f5fd9a8b6bab8acf24e", + "0398172227a499a3b91649814e147d652351c4293daa9903bced20a22fd4dfc018818ac953cf2c055c3ab29372111ca6fb0b95c42156ebb9fd3aff161f6a2cf91cd07aa6b4b38571a2880229a2021ea45e4cbe4c55b5e7f804b8f70602e7d57e0eb9f7f78727ed93f9b904acad02", + "02895a89d228ac4c469b91ececcb535f9f5158dcde272cc0b8a3e5bae5205120cdd65c6b5b38f49df82ad62cab2c4567e3e7a7988970575ec8c2e082c1e879cf138925f126427808fd75f2240954f53c68de6dc7158b76851e6c041047d57cb296eb00719847202a1d8367e2d00b46519a408ea22d5cad678c9a4e5d7844256b671399f9eb16796921542f47c45724a73a6606af3c790ac8b89855d9875ec8ad4d49349eeee79c1a45fc8274c370e36587" + }, + { /* i=4250 cDividendBits=2114 cDivisorBits=861 */ + "03c5571cc1afaffd361a17b4ac1995aadf32337f75f0e8eceaf827460f468f3ea600fdb99a5e3bc55972b8d571308f183732f31b0533f11e97ee3ff39f74fb96b3c4a16beea0c87901904af5674e722e7ecdddc63f6f1666ec40bf35755a268cd7cd357457bdff5bffdcd47f9682f474568b990468ec5f9d4bb756a88d6a25a599eef0074c61025c2eb0b3e877b089d205f05431715b336fda39eac1517f91c92e10c22eb035b556c72dd7c16842658632044958cf99e8178267c53399cd77298d722c8dbc9ca604873c61d2e3bda55901180c628dbf1b505d693e5e3385d548bf002129874d305805ce9abdce8d950df718ce5c3a0962f1a3be93404a79118bb1e1b12f7af221dc08", + "1c578583b0d417de6cb33a05709c31280fb3abb53ce37a5a6f21caaa44dcd1640139d2ba8062a2485768659b6df702c15993317f77d236ceb4bbabf158291a0a90c3988a9aa7570dd19f679baba2560af7f59f25dc973b2e9ad141301ee90770294fdb0027954d53374d0753", + "220f80bad0feab6abc3fdd20033d1945be68a4b9363f35c982b0a8d05a7b8ed07c1412bc9b7bf16ecd64ed22ec06714b7fb04e0d45597372a342cd14a0e4796139de6e6839ef2cf9df91292945333eaa40eab497f697665b6ebfe33ee994027be9899f7f915566d3ea1fa61c24ac501dca9a916506c6fa9c64bfed161ed34045dfbb0ea94421aca1a9b1b194b476d2db4dd470705c0405a2942f8cb33c", + "1275d4f9c0f95327adacc2af4bde41218c4f5b651fa84b612af9ec111aa4f71ba294fac3cd2a19340fd4a307a2124d3da00400b562cba5015e074f491dd3a0f08e7eb0e0a9fb4a8f8b5c51db4b51784f932523a968b9304cb68ed1fd1f40a12578ef75957d2ebbdae1911b94" + }, + { /* i=4251 cDividendBits=1024 cDivisorBits=627 */ + "9e555ab2d9a484c0f9f2f171c4a10c88206d14a232a0b73663a04bd8c900a3a34f6ed9f229ae7535f444a481113cddef658c97a471f52b594f2a2b68a2a82d90a385a1dd650d1061e8d963a9154ba2c4a03a8ce37e20752d4748a08974357e43ebadcb3bd0dd1cd8faea431a10509a98d6b68be704920720adf37134e2a04e1d", + "05184250e21af3bca9593f06645e1bf5ca38641ef795312a66138a7cfe7cbcc73bc79fd37dfb70cd8d727dc53536032c3a55dc78302bafba118f3f43135154afb6e585943b724519cf38c01f12930e", + "1f13e349ee7942b7596c9603d3d9becd3da9a66532c5358e58fa6e8ad7d372390e569db51ce13a8e4139645f3c522088f853", + "0464b624d4dd09ead37155748ac7cb768bb1dfd0268e93ba3fce06942aaf628d473e09e6fe34770a561fe33e2b1749bb553b45bb90ef7593582cd4706741d1fa8f9649b55022440e3ab614f1b51093" + }, + { /* i=4252 cDividendBits=274 cDivisorBits=194 */ + "01a217a5870ebfd2f774400bc6088e6ff0449bdba2a2aba2c7db01196d882ddf129b69", + "2dced4cabb6e59700eaf4050b755d4cb0cea7ec6767c3470", + "092087de08aaa8ffa19fdd", + "1c84a19a50cca39adc5a1e3fdbf04998e395cd69e6d7c6b9" + }, + { /* i=4253 cDividendBits=2675 cDivisorBits=1878 */ + "07d70ecace3c522a70e05ada4f32c05ae8a676180ef5e01484db90d186389405d453b9d1ea2743a1e29b109adb95389695aeb2d07f1f9db4b74172fe22249d9fa8362e354ee247d94e998fcb75dfe810665775fb933f53528bc436f167b361f094f144189bac2eaa05e4050831f30f39101386209b37c0db6faae9efcece67654ae9d4d4ed6539bc2c9b0dcdb801ee96dea43a024739540b8975742659cb8bbe96df63d7f32e0e077ddb43465b0e2af31608bac4081066c2f06f8f53c14a8c3c6402845184b719a1b6ceab80c3803be503d024f7a9245e24738179097461a500fe230d340ec2a8c5dcea7e0dd7ed22558f12bc721b78d78837253f43f577bbf53ec4c08848ba5213fc028cc51d699b9dbc812b6b91634a3107a746a9497f21dce8498662f5ad22646d2a504780a1fd86867c87bc65fca3b408c875d8902272cf96a6a25d0d28c84fb453734c287d06", + "2ebad8f972223fa9a88a20df2dd639ba94fc5a5ed17d082939a941dc8ebe54a83688b0f1bcfb64ab67080b6c0622c6df891a1f02099c7c0dd4113fa331ce52faeb7a85c67dde45d1c3531ef72a6430284a6b755a71c7aca31e39717de6fbf5a27a5b7fd89f5666f3f22cdd258f4bd54f3189934d7d280d1cc5ca1e307c43a783aea82aabe8be9b4d21b9ce8a78ee1a7159e06a55aa21afcd2cd17dbc54cf725c2008cc77940a6b4e24ea2fd74cd2ee43cd0f2e1dc907c6e2b87970bd71f0291353af2f97f07faa3f5c054bec61e3e520ac2070e406e623e5d8fb7b094e6677fbc2482592591cb39b92b1bb", + "2af340d6d1cb258bae71b15042743b39220f12154e13c46aa05232c695a4b323588642dd037a847d00a92522b6fdf67d949b11a390ece4c463bba7f0e808830ad7359b5aacadd0b60dd43d8f9b8afbf7ffce40efe7ce66731ddf475217ee35a45f06d076", + "1790504cd388224788329f863d80fb5ef1f75a8ea47970cbd028d412cde38031238f1499d7c071bc5741d0d9332e9b72ef8796aed390ed3247018ab72ec8f1c16a4bc04567cb139927db1247ab1e173b072352254cd322bb2a13bba214809212dff8d218e4fb1882c7ef7d052be002d9480a3977b10ce7ee73f7220599a5b8ae842bd8cd2a46aa2ee161ec014e5ead32e43d89dc96cb594038f998454ff5cb52787d879882c4f353aec32480944ae4d67c28c0a77e67318995265f029b663d82c2a3c1ad309624e66122018163b33e1d625f6458188d5f927e250de8b5620e4987b34d0ebe8211d6c0a0d4" + }, + { /* i=4254 cDividendBits=2774 cDivisorBits=554 */ + "2c5dabc2baada7edd664daead4714da4418f7e88361c07b325b097802dc812ac0ee780900bc1c56f55764fec0db259a10e33a82a0df7973ba386a58bdad00d8d4336d8edee5cdca8f3948867b34061a9ae0f8f4c541c379f219c511dd61e0ccb7f90728a130720c8b39b61e6c248e3f728537f156e0af43b2212927d803c9884953c7d922cb58847c72b7f1db82150c1d83cc23bbd6bc0ad07ee2adf2a86ea1a59a18397f4956ba05439b26e2390cf2b956234ca40c1d341eb63ad031359c8236db234849cfc12f8508f5fd3244d84ab06959d854d98de98c8461fb1836c9605c2a69632947cccbdd0e8a4060952c987f58e219f299a266230fc23dc87224ce4463385662b10b947e40f5d3a416230b4d3376e179fec4f68a6cc503061d9ae94a58c1452e0ff4c8cb3801df1ef27c953f0115427b3de037b2ca9386a88fe44ab9b5a09ee205fae0ce852e28b69bf958ac272b4c96b9f1f7f1a6bf1", + "038d8de77f4314ef538d26a18ffdad1c1863b529804abfce38bfcc10272fc9b7e3e04f074a1bc84cf69a68ab1936f7628e72d43b36fd5a259a673a4b9ea188b9150b756b5470", + "0c7cb0cdc3ec342dcbf31a200b2de92d8b76275e692027815116e0439b7c4aea9f1112971f4a59d50a16e10e4d6b3f8e825bebd4376d7ba846ebf95ef92788bcad9638242a4989c138d1bd4678cd334b5c0b7924fbcb30162840c0a529f7b166bc0546cf54a48742b7ab881fa707b45e8f56079bfea34ab35fadd873b5931c30de68f97a3d64cb3215a084c17bb6d38fca2b6509eb17b01160a10ecbc9e00032d6f715fa56d53844cc491e2ef0f4f10560e727b88e662f1b9dcf703f29f7cad6239fa0bd94256e6957d9e51555733812415007529da9d00b4665f12159ee3fa974bdf5ee79ec98d9b13dbb969e4f6f07bdce24cebcbf0c1431f35fa57df82f953ce9d79874ed4a9dc081af128c7bc640e3b3bb8cdf57", + "015b8bb9e208028a68ad401b099bd03f7811d8d84286c477e2a18197f6a0f2d5cc543a6539033a31c80b5b26716bf640652afc55c5e6dad33356a94acc0a363b85421bd329e1" + }, + { /* i=4255 cDividendBits=3025 cDivisorBits=1256 */ + "014ae27f5e71944aef9104e9cd3db24c25b6411c73336994867c12bdb64d6387979d77783d646993c0daa009cb8b6e85e0bb6b28fb2cff9511c27bd80c2ff48753059046dedda7d01c3b2735c2da7fe29cbef600524a095729792fa04555c99982e74849e038a45a23d0e16e700ee721a4e2d8f07ce6dc25f86f81a53b472fa122b31dd906cdecfba8fb1b95fa9daa193bc718d470c2854a8a635234031053b475a7695c4ae3579e8c4fc873fbf940281ec010b1827c7ce447684c67e3802f0e857133751ce10d082aa8c12643c57dd7e5dbe6e652eb6b1dcf451bf0043461c26c1ce4a12234244bd0a3acf7cc90020efdc5c8b1287838c4ca5e49a88df552772c619fbf417a90f36b716795fa7ed325b280cece8058286d41fb4a4ecd1c2bca19c201367f12eb0e9b75adf07cd90f9f4c089871628feb80a228ee57cb9ddc1c86d8e6c5dcc71153e7aee48ba5bae213360a766fa69086e3afdc576bc6472660b8d0df081c7239e53e194f06789a95b16c4cab33df44bc37238ba7", + "187aa3fa5a82708a72f94d759e1b1eb18c7689e9bbd443cd4111186fb0eb47ad125de395441306e90afd66213fcb41122a827857d2f88962ff6168183cf1191a4d616c7757ed0f7eeddcc9f2deb927710e57f203759b5273605f98f7552b7d12d58d2199bfabc50e972bf16b81d576b45aff71ebb9bc1758d1470b5dd77ab8c62868252ee849c1c3dbd1b82b75673d27d9ada4ef4f85306116dcb47d6b", + "0d845d6e58ce3cc5153cf56044fa581aa0da8a9b64e0452a5af91d4c4ca714f308bb975242f7dd4e78c9270fb98db0f02e9ee64fa210a7e3f32c1469260aa5bc28ba5e954801ff60e56a4c7baaf2cc62702b32990247b68557e76a295ef81c1d18a18340a5267c388911bcf34ddcd2ba18f65dfc76b0df29bc3c1f127d2899da073fef53c9880266d5453a7ebeb44113a85f9ad70992e0bd05c10d7f595ea05f6061ee5bfadba8a9aba00f8a04a672a72af20831b02993a5f125198c8b1a19ad5de54f7d766bfd6c009546aefdb55fc9a90f16da19830f17374aa3dc4c7d", + "16e10dd4806474cedad18d0cd303656dee81f8e3d23e0191ab29de250db19d0352264bd6f3317460ab85db1a9de0af1688633fd51fa44c40a8cc728340716c7f7e13ffaa549297edba16515245f1b99a555ecc78f0250dd54b4d9117bcddfc793de5cd5a89a0c2c914171bb736a90902aff8d4196117bea1454086356a8568a2e60258fbe0ff86143f6fd08b260a0ddcff2225918fb3853e27f4d28a68" + }, + { /* i=4256 cDividendBits=2615 cDivisorBits=1627 */ + "3ff34b77d25a136c6e128c747f319fda4688a005481d2695b1cd30da05c135ebb2aeb7895890adc0844c2b8079b03cb2f6e277aa692e230038ac2afdc7f13003939c4cd90c11f512f95bc34ec23596ab7a85c2f7410382cc5c90a243f02a0728419012fbeca6b3e06a7970ad36e6d299428fada3bfd585808d36385f82e5bdb8ccfac12a32000dc8f0587cc433db1fad30e74d597a7804c15e7915bfba904cde04e4e2889a4eead914d1df97c833cf30a9d668d4eef43ed9085ede1b5d31244d535fdf8166925c0c6ae87923c9021938dd6c25b093967c832aaf230dcbd944fa68565d2ee6087653b0f1c86cff43c6df8111c31e3e8cedaf1b6d28ecd34c1bfe6868ba3f266306c45c38575e6aa010a84cbf9ac7d0559f047b76830e8297cf4b2cf5a34e5f338ddd71997205ec20177324c1c2f0ccf27e452c04f59d3200046c53ed2df8841dc0", + "8fe8d0a426568d460cc6b3daafad035ff399c5998c6c77652a14a9f65d855d232405d4d6228f3495ee5a05e460ba29970cb49273045d9c49069d45ac9270f90a22bca74478bf177cad98e2b25ab0fa7a72d6364b273065d7fb75082dddf063cde5a7ae35c207195ea6a56d6f15ff0f31bb0a6dce9cf2932a7385dd262bfacba4dd1e0b70eb54c14dbbbe375230c1fa726c74a16eb7b443282e0db11efda27bffe2acffed76e753cb78659514b6ca572dfa17a6116fc414623186605babb5e45cec998f59b3a566e1bbe3bb", + "71c2d724de7c07fda8f622c9c7737496212e95384e80a641cc5d70be2083e0a512ce6faddb9ed6d864013c4eac51052e708efca67172cb132a71785f372d7082608f4fc5d415689b0e313ceeab362c1d13c5bcf7be9bc8de0e6a49f7fa790dfd5671c957467c9ab649d23fc480c93d591dc6c826a9b7876b024c65b8", + "5024dbf370254a9646b57bdee4ffacec8760244fcb5d0a04353e2adb9672da660c73040b09fb309247dafa34d87f484b783f9d7807a572af279c083f7c6efc35a190e0efabbba5bba84b31c63172b7b39c02b10fcb5f2b1c6604eda4abe5938d1d56f77e74fad8eaa45db6d14bd04dee2e28864a341b7179b2bdbc5aed128fda81ac86e45a1e3a602d4d8cabf0df4a397853083f87e85a2cb14fe6f03b2c9bc3fecb51524ceee426213f263ef7edbf5cc3682f888566ff63a8a18f0a78b922c5fc5a857e582c74871ba858" + }, + { /* i=4257 cDividendBits=3840 cDivisorBits=1975 */ + "2bf53a528b67e85b8ea8ffc6a79be3af2460808684289620ce9e824322d08f3934a5fd92c7aabcbe11e3ea8df9dd33b71d92bd8df23de3e80aff5f399b3d5f5243518b638395c0b8940e960151d6d222ddc0f7f44f2ec63415bbd06ea1d6d0d5e4146360a68c51fee1f85c5e1d7316167a95f2d65f9c5011d2316c9b041f9dc165d4452852c4797173ae99e8c2e4f7b420de1513a015c5ef076a20370b96038cff4ee45f7d0819e9c9cde22bceb1e608e1ec5353154dbc198f8dfa893afd31d489bd64bb3bcbb35fe5350ca912582b6f7ef3249633f87c06cd277d6e97249c6cc0c54dff5d4276a55a3ce387a86425f7be6403cc16e78a8183978a2ce277ed31d737fa9f6bb26761b499c2eb7526aa2664a566af7ff497bd8992937ccf7504fa33ba4e4477c05d329ac0620b06e832a2890a0a78f195d7530c28cb4b69df74835a9b8b718549f7326a7e1327715930ad950cd847f40b23664c3a48eeaf73ca9ccbd333cadd7b9dc4e6a255b9b74580018beef31129532fec85e8d9d97eed0120090679d75a897472899e9eb243c2f176f430e445dafc69f423f4c70823c95c219ed96dafe879608e6ffab74e7893e13af3fb4d82309ee7f3e26fcb8d217034c457595bf65d0d1846df430524c39b48f3c7ca829122b58f3830ff6b9ca14654e7", + "3d219cb7854b8c9a2daec1763bb540ca0e870966acd9e7faaa9b0524da3328bdfbc92d3bc6269edd43f8eca1ca402150975412df8c8d93a5abb0ea3c03be3754e8f63597dc809a25c30d7d78385c3778630d20f3224051deb02657115047e51e10c07b6cb134deea60ebf378dcf910a460041ce84ae8fb80f6c5a6df60267b30dca91005afdda74aff452b39041f8ddff18e5b565e9bd351f535e9d7479a1f3a1a466677c75d861bfe0a775957fa6ff2419f27c9cc050f4e862aefc2951b36606243953d47982f30ae544083ccbb31ba547c44d8292fc079481979fcd466f8d7c30894e9c7bba02519900abb3f9f5a93932eb44bd62fa8", + "b8153a50453f10ebc8e6687080d8940df7b94ee3b57baa6cd3ab4b5406a86d05f9e390bc373c35874a2e6231ffed10c4ec279196679ce854444051508258b2bef4620d1224c4d838fbce9f640eef598b373a567b2da565ee08801327a79f6f746b63bf019e8abd1e231297b4e8b7b805e64d192593e18bfaabf9831075e03eef56d29d899d0ffb0a207005b4efa7b91ac071b4a36da219841563229b65df20341a7290df52075cc2a736c37ede9ce3c926e1cd2230a8dcc6003b188d11558336942bc21376134ce096eea5cea425b3ef22814cf7e4a429a9865e1449f24c9fd242b069c9865ce56fdf", + "242132df5a4169f230af7f73119288d1ec33a78ef9827b97d4dae73e7e6de9a58367fa20a69682b1fb9b31b8d7edab602f01aebd130f5cce6c2fc0c3373034fbd3adbae05a8d54b5d5da59ec37e8cab77f2ed3c237d5138c7618926018d778b358099cdccccdf0dbbaf123f284ae0e84b154b63e742c91023e623898a4a9eb08ce9f8e12bb05b0f51c7d08fa741dd261e68da586aa582bef5d7da8c96d2fbd85a40be460de6568713e5f2e81812f66b242122ff64318fd4628488bbeb25f7f04502d24645308da512aabd52f470e909ad3bbdcd1b87df1e896fced6b0ee6a07b92cd0e2d03f28695353068b2ae1b0b5690e603b1c0f98f" + }, + { /* i=4258 cDividendBits=1845 cDivisorBits=548 */ + "7e44be2bc2039217c9c5fbb1d4af5344f4d7a44f2fe3f09ffc9fe9046d43bb6e6d6d71b226e9d3bf6f60c6941ffe07fedd026eb3ac8eb495e5ffbdd945dad810e9f3a6e210ac69424e756525d7dde3730cd62d5bb30647c9424610303f86c370e470dbf85e75ce4c2db7f212cbae9924d63ba3a0b1895dbf2a5fe730090fe1c6f8f60e887a9e740a75ecc74ffb910ee47ce3654088a2e062a30e69131c2636316c41dde685b56679ef8fb7475f2fed9b3f730d4046fe47afda448639547fdc841690e9f312c9b9dc37fd6784819df2f309b24d637bbe28408e6ee48b37740bb2ee02349a50fc", + "9bac8489dda38f1e557932c1b5bc7aa68f5a95aade65f5326c723449551c85df548a84436710c64707d3c3728b6936ba0c6117f341b0d1ef369ecd9e85fd7720e2b4719d", + "cfa4d9dc957014c0007ba2d9ab6c11cb4f6dbd85dc6e141236a0953879b50ef73ff51b8fbf15862313f048867f80389abfba7db65f3978d57c8955a29da8e9b224dc92bbe34ccfa399c63851c371ac524eaf1e5971b1aabd2b916b916966e29fb6c56c07e60464700b008ba78ab1052ae19179bb1ff1e7071a17508927a3e153619b98fbfa9ef98feaec00a402aa0df41a3b08a83c6c0151035cfacbe73139612dc4", + "4db719c5e1e53751cbeaf6bcfb7ac22b5fb3c26f5cdcadc55d8d0d938cc4ef5d85d6e9d2c3dcf58747f8352a424ea9472c4b0d0d061f2fe8dd9596a5d1357342e8fdbbc8" + }, + { /* i=4259 cDividendBits=1078 cDivisorBits=816 */ + "0a9a5f965749b00e50436925800544247ba1c499b892d17c7332758bce4bcc20d36133ed40a737ca3ea00476d141be3895b7696a56072c55fe8f44c81d8206083868ca635820d4493684e1c19996e3a59012ce0dc8d8948415cce859756cebbe782b02a2d2fad8997d5dcb70648a756df47bad411c72c32ce82088c0ffcecc0a9fc6af17c30016", + "d45acb6baced56a64c7f7629a66b0e23fe738fe2ff0f138369d555802f6d17873f0ec27d6cff677ff123ad0b14fb3f4d8fe707c09442b0dc59955c350e832b1059ef5cf55e32ae4ff7265195fc97968f9479252fa11d309a482a2de55c2d2c94415fb0508d8d", + "0cc842727b2f9c4763bc683b10ea0bef7d53446a3670bdc7d6c998963242a33ad5", + "341841d881e157cf95079a4fc5bd7d7ffa55568d752f3beec82b21ce9248f54327319e29fd9af234d44080e019b56e4ceeadf02e3e6a39dbf7c8281839a96bbb68792662e164b539530dcdbc514df302c6ffa4a9dc23e84824c08c0b9206adaf68cca9e447c5" + }, + { /* i=4260 cDividendBits=2333 cDivisorBits=2227 */ + "1d11c7c811900d665773671d9dcb68c8c13d8af184c52820fe60d2d5d77a1797e7bb2ab2391657ab2264143dc008398c673b35a02022ec5d8c345115c2babfa96c674e5191ac5137f6ec4308446348e71f56ca4dd218f98462eac0a818bc673e06ad691d58ea499108ab4d89f601e2982b1c6f728100ea72f5fcbe51314ec92f04549fe6566949f3059450fea2feeac1cd4b73e0b4405c3cfdf3d37baa6092b2389ccb2ea92db0c17535b00cf419a7f55b99aa7d67250eb4cec56907629562001259e2b7cadc414666315da708fe086a66e9a6baf805e331319163941a4955a68136744a1b83419ffe78a0bb05ca4585be00af6f65573afd3b34779aeb6c118bfc6372bdd8819544669b0d3b000181daa4918ffd5ba896d99fdb2a062859e869c075cca3", + "077cef5f934592a6974be68a904ee9795c6ec71cf2f494fa6975ad48c3a54b380ed8cbacf5deca5e8b2b1ddaace00e219d7167a964f3cccf1de20a376b657382dec83f7e2e9ee69d919f4fd33a3474ccf6cd88fc6d645a0e46df53472fd0fc19c2d6a35aaf0273482f9970742060ca86eae76cb02fcef64822da031aa9e9f5ff513cd45947e8873ed9d86d7d3b1c8952405365c268f14de604d66ebe1c79a8ba4be8adc1a9a4e3739a87a0727096aa8dfdcb716964f269333b1c33e796a22b0018fbcf259df9f7ef919f5bbc8804973efd15c7afcae1e7044b4b5711aa0c04d2e6a5f605e81b54b2e99367f18fce38fe7cf9172384e73125b8b3a9b55ea9ea19a9af0d198617d7cd905a90456f6ef14c8af1d70ea0bf76", + "03e1d2e819e79f03238c05bd864e", + "8b268af2d8a60864aeef69befa0611e8bd765b64e8b8c8f98d439baba45dac7a1d818f513aa4da023d3311cee41bd9a3c7d0cdfd0a22f6eb0f081c3e2df6a2380e2d421fa11bf34ca127934ac76a4c522e2d25a8ca9b5bd43686b178429fcafe6c311c7a9c4a47bfb93b0d9774acd447f1a22e141c5bcfa5ba040a56fccd2f339080a03fafeec270be37b630c289dff925e0053d5dbf5f845dfddd75087424a560cb4e9e03163a57cacf9b1b6c40cc2dfd7c21b1559afca2c21ccac0d3f486482d2e2200875ba34b349c8ed9ccaf0169e2076463bcb10f5edbf0c9a9279cb6c9608ec2bd6864d9459477433d1f2928e92369183ecef91484cab3074bcb36ecaac30b1df262fe26832dec0dd9e03fd9e6e0487f25b2af" + }, + { /* i=4261 cDividendBits=3789 cDivisorBits=881 */ + "063d2031dc3e3f7dce80f9331f48c19da5647406373d851c89277f6920e1adb2d86f959b088a2d18edeff07c065bd9dd91c7c9b41e4ca3382216d9c71cb6edafd3d0db33e89df7bc161ea57ad32919f63429648653ce654d3d7886e6c9ca53aab952b7640f6f699552f437a2ec165e37a1587c7b20b7c7bc6eb2cca8e31f73dc64276c6ef4d59f3c2d3ab1659fa77b1c06998f473e7bb52d41c55061aa300785a00642f9de8801a56da9664db3f1a5edcdbe960ec36594c61cac07f75bcc133df161b2c4189d55bf7678c214c8bdc44f98d616b3e08c5e32ae439b264c60ca8f828006e572150c875077c1406147799d8abd4fe85fcabca1bb3b66f8c8ba2e10ec6f51786c8340d6500ef759b7ba56207bd4ede4309dadf6546bf73a8ef04cabf7f99d96290aad5f55a3f1e7b80ba200277d9ec6ed49b507ae79d1dba9b75ce5efa0165cd39e2d52b2ac6871dc28552daa97719d6a7e6c7577a99799904f377750af6008b3bb435a4aed052eac9030b74c717ae01a982cc6dee4288075c22e31521fc867921fe6a3f8cbcaaab379257eab5f478d2891cb04601337cd21ca8184d856d5621e63d25819ea7985e90e1e2dcee885a410eecbe6a85e5cd6fa0df3c66a0fbf40edebefd3eb6742f6a27185a41a80057b2b333abb2274", + "90874b827dd7c17bffb6cb0dc985fe7a7383a3c4b94904e8fb0306fda3acedbef3afa2dbf61373d44291893b2b53834158078c44a945b1daf3d29823a587304a977beb3223810a072bf7c72c38ea3269ed6e1f9e1a0b5aff799c29f171bb75435c1980b50f7d1f5df60b25c2dc04", + "0b0cf3be09f8b6839512066d49dc0cf426bf890a7a241c7edbf475b88665fb534ed4c8fa5476a83f04a6cf57158c57aaac5dbf3973733353321d36ea030ef4746a7ee893392d7392f98041433eb446d89041bf4a7cb522f6a50ef50703e552326c488e75421813be0f93623088abfea6b9d4cda4cc676403652a62dff751b24377f4b8f2b1c39bb773b5f7188590d0b33368a88a6e32d17a890d4ad8e23617be8962943530eadcdfa0ca2a41000849afa09f7ecc5edaddb48d0a5127c9d230dab2846a4354a25af276db336858151c175f28242e639d26a20992d870dfd034faa6ec7847c44abbb99b2bed0f9fef98758421a513a7ab40a3ac51b16120561a5a83c0c3652f56d1803e4b0d3b967ff933f7ec99cd847525e3bf9052c711961246a411b8566ac5e269e25cdd21dbb1c67b19659f7c19fcdee75ba818b98ce34a0351e1568f46964cd91d6c3733d8d75938255bef8963b4bc7cc52d17c9c0991ebf6753965980bd3927fb065271", + "1a70a9f62f2711c9974b160bedd090593e33fbbda84d34251319a173805abb6f45e26a1889653748dae3c3330824004bcfab66f2a72b101d5058d354d986451e2b2cab38f7d94add033c5e8b6b7db6e54179581ac96fb44cf15c14e93f911fa6946880e8386acf48a54a1126bcb0" + }, + { /* i=4262 cDividendBits=611 cDivisorBits=54 */ + "07db3cf8786ca5eb5241ef9d18d965cfc498b888b111dee10ebf2e6f57e106b0a9ee229c4fb11f4cf52ece277b8734e98c4678a9621e579bff5ce248e8ec8b1f6f8f594e64af61ae38bdefaf69", + "2b0329519b1097", + "2ec271fa912f95563e6200ee573a5ad9cf01c67ab116fa4b745a6db7d4c97f3bfa5cea021a3c74708f2261fcbc37bff667e4f7ed51444772bcb45471d8f07c07729064281aca", + "0c17af064d4243" + }, + { /* i=4263 cDividendBits=2396 cDivisorBits=74 */ + "0b99b8ae54871bb0604beff1079dafe5c303f0446d3dc352e45b2acde9acfb9913444273bf4f002005cc2042204e1443fa9be5b6970d0e99a733e769f46ab6b682338441b794a0bbd4b0861488191520e6f9386e295e47d62e61512e889952c58e1f40adb074cbc19160ce84374652af68f8ec30feb3c0ccfa77addd06fa80464dee4aab1394c57e7310ab05aa79d1afe06d669afe1775f31f17a87779fb7c25307591c42baf64aaf9cd4e9cb49dfe56ada199444c1159f7b488215ca3562fbe2c4d0b3a0375e6090878b6f61ca53c2462883238be6386814ac8dbb92c316bb45786458bdc92e51a6c389012555e8a59a29c5acb0087cff4e997bd3df683c0ece04648d57bb6748c308847bb271fa25a691d734d39884d9532a24d98ea35390ca6daa30de46986a1f2fba3bf", + "028900e783ef7ab6b4b8", + "049368be811abde424e61d220af79a1191ddfd4be8573721cf0aeb1bbfb65996394ddabdac19aaade6066c8d5a136feec8d934192a7181d42f6cef99c176788f05147827cd6698c2637640493e35a02181aa0930a074d6dd934ebf33ac8a46dd0427a0ae52308047307c495b8d2e4bbc49cefed14a4a6e60ded6a4b682fffc588cba938064ee91b713ad288cdec72238564f3a90c06b1bb5a0a6cc5174ebb50209ad1d5b52800a5315a55b7d89a79546e46026939981c7d305e8b7d0b42119e9ad7a65765fc4dd2e606c63aa5bc29de98ce8c7180ce6f5b0217d737a2f6fa3e979ba70f53c09f6616c13adce6f2a1fb0c9418ec6e4c468281ef5b88937170ba647c31865d795cca88ee9274f127783d37e6a3dedb3a7257f3e96f8e3fe05ad88fc3da4", + "13172b5cc627c005df" + }, + { /* i=4264 cDividendBits=247 cDivisorBits=239 */ + "59d93b062b1978160907eb92b14d19f5cf45f9015ce5d9a3ea975670fa5788", + "38f42c8bcc6a97525e35180a6d50f95d797f0ec0cbf842860a0b6db22c05", + "0193", + "30d8e6184dabdf5eba56ba4736a167a902f4c7dbce08eae8c758c17f0ba9" + }, + { /* i=4265 cDividendBits=1596 cDivisorBits=195 */ + "050298d6e25923266bb210a275c171803288d7d8cffbe890271504a300a9270d41f8216a807af844c6ffbfc68eb6acaceb7245be9aed6758990d114848595b05afaa6753dc6289330e3bb977fbd2ccda424ab9ab2cd9347a439a0a81fb4909030027409c9143ec39912e45355e4c2051ae4d3724a236b6e12f413058df12b749093c3a7487a222fcf2452be273789f549272df2c9b5a03f5d73fa468e917d096ad123bab917a0e51a625e6a940effd8812aaa988351683d687f60fb0c96a02074d122125eec324df", + "07275b739618cf3fa665ed4b98c5c560d38f243c3c3d0f79d4", + "b34a5a1c5a8c8e7949e0d51d902e358ca8241b67770d40113463b819a6ed107adf4f675ab8c85be0016232a2fd1997b616498d9440f195ae69d453ed3b9707f6067292b355bbd043549da77a0f714b55e036947a4530cec616f7dedcc43f23c14aedcab616affa8881db5374cef0781e16fe0e82b5b31bed0c4646156e8af40eb40498dc0d23b30377c112fc3d9fe68b724b5842b9edd6d481790038ff44358b8ec6af34200d546a0b97d5323f461c", + "055dcf806ce9d00bc95a2271feec03d842330a9bdea295d9af" + }, + { /* i=4266 cDividendBits=1266 cDivisorBits=578 */ + "0361b80b384c94d4a596040da8458d1e219703286ae8f3b731cc6da6feb1a61e98361009a99dde650b6daca6380cfa627ab477f29a10d58e4b9fae30427d65aa572c4f0290fe8c4289cebcb4edf6b58216a2fb2b2527896e18d1d526be3ff3aed8c891739e905548fc623300c7acf5d5f19e84f1d98900163d0b0089e560c5f51e7d3c679ba4cab34c71f60035123a2802401eda3712d99181b79dedc8db57", + "5923d82d0f32884e3e331f6fa77d0e6667fe9c8bf4cebd0d8ca99b97c0066322bcca7b8e4cef5f7c5d1345369149da608df9afa46ad0a9781a950f8110201b312a7f1604e89bdf00", + "09b63f1198a47bac8cd2f5d2025428ec563cf60aa3c8c2e5ea0671b1bb5634defdf3d60decf81741a730ba7eab40a347da14aef8dbe41d4bfbb27dd1d06b7d498a01f9807e60f4c0e2c48f141260e52e64f9a1f3482916", + "28db5ea3c7694c871e7465bb270887d91372fdd1a5f85ca711a8b723ac8a6510082958ca6f7873008ee6e60bc5f2f59f4a379e0f7e766a778f5e3dbffad24de1b3f36a6d41acb157" + }, + { /* i=4267 cDividendBits=1952 cDivisorBits=602 */ + "e99c3bdad87636044da82ac8f569a7f3910880b87203f60bd2508783fb0adb32e91cc9c86abfa82dad38e0fa95987060667ab9d789e8e0d46a83d249953cc41b6c241d14ae35d9743fe935b686dc7e3cc22805aad7798e47ef5296f0da65dd42ea9b635ee1ab8e4ed4d825ce5a3d0f5162b377331d5ea2a4266c889d46e282cdf5908de73123bced22ec8158bfc2b0a10f423b0be1c036e9e484c3d8df3e3fc658b57625c5b0b8bfff4a3eaec1d52d0e60a41387e475f9db3da0160a573a94c31c06f7df8ba281f4a8601349eaba5e8da6a80233a4d235b62417ed24a105be0b00dc40065fe4529f90d85465dbc7456cf135f4a4", + "01ce21b0ab8412d31d7dd9c1f33156ad756995fb790e4e0ab3dd9b219fd8fd61b57deab9a0296d6fbe8c6bf416b972123f7c2116cdddc2e33db93aafb0cb8e929662837c429da05501df1d68", + "8168d70384a6823e294b070ac885f2fa1706e198c8b252b7854975975661af04471494ac1159bfb6b8a816de8094b692d42cc61cac614b25b6dad1b3ee68abe692e4ccca57ccb6821e2519ad90f17ddf5f7f93eeed107caab76fe1a79da08b7a979d97b331608cb38e199a69029f00a8c3afa93d65ea63163ae9330a2bb4f267b0c4037230332f7c796f5730eaa6c3b792123dc9870747f88dfc944d58bd89d6a42e0fb82a6330fa6a", + "01cb6bc70f8a659f17a4960ad7d64ff37992e5b2ce653e6dba4782dbef320254d25f7c1006cf0811906885a17f59d83d60ece535dd974f86f4bdc6c55244d88d4400b60f5370a9218c9c3794" + }, + { /* i=4268 cDividendBits=576 cDivisorBits=265 */ + "260e81770cc1506bdb9633ef5389914736433d3d7280674ae81dafa1e3e71ce14c67474664c83729edb60f5d59cb53e1b711f38d84879a8d142faee19d0267b3848d00f48b4de552", + "017122e42447ef8bf081ed469dcd4f08352e1d6bb11071ebe7bc36f21ceac04fa32a", + "1a648863aa50988ff67a5649afc123be66e3a1f3deedcd34eec220d23ee930f7c3ec5e2fe69b78", + "a0fc5599b2915349d64b9cf7e5d8e54bf7b733cd303766d4ed40af488ce072fba2" + }, + { /* i=4269 cDividendBits=3161 cDivisorBits=1683 */ + "e143e49ee68eb3aa6838840e4467178181162615aa99027eaca4c2adf713f4f0f7d670ed0a311273a799bb49c95d22e0b1c42858a3502101c56cadff4fc0e86f57e4e5bc91cef274ec2478c6be6aa1ef24cb6f9ed4675629b17530a666681c175e7f5c8146a04fc877b26601b94917c793107fdf5263d5e5f0e2fc823d12b81ad47926ba42a5bf6c04015e42da244e23dc5425f448abbdfdf2edc4119478a9fccfc8e782d33258f4ed65425606f7738857527e89af48128ed3826a038a1752fdbe71868176378f07d49aef0cabf7d3fe26604c633272b27f3053034106bdc33caf074894c2b1a0e153cbf564e5441e80fcb686cc3b017a2348bf29ad8c25a81f103b04d14a10105d71afc2fc8cef47f00b87860d3d08a23356b3de3edb362f2303e85f632d944a67de14d85f5c71bcbc34fcbc47b991a67010f1feb398260e19a290014086d755cdc9f5708e67ce0fefc6de587a34068cf7f28d3076457c70a11814dda10825858cc524f8336c8e3dec5152ff2e3c3975003f56792fd2515a5f2ec5e9a21c8b1bdab722e8", + "018b7f58f6afa93e3a6dcf0601c40ae08c30c4f51dbbf9715b24d84a8d4c55aebf21226c3070704945cdb0124b5208b13388ebcbf64b8a6f404bbf87cdf2fe7aef1a4e15a12eada00723c4b961157ded4e142067e5ac5114dd73b99ca641be6192f4b1476389780ad6efcc54ac0a407942c4877b14c36cf9f7826e37bb529fa293fb21c6300e0781472f65afc9eb3d7e40bcacf776e664197e48439357ede346f0f54a6a6a221d48f86f4c2108aa762d28d3661a00f25ecc34117593161a559f3f888429fb072adf4969aed0d0dc5e26fe513f", + "91cfa00c122346e97256b965313fe6f0c8d16423175b450dcc16de4014be7df6a7d58c97ba6f871476198ba753a06026ef90517f18a45dc152411531eb53ff967459cf225dbabb50e1d6f1c0766bab31cd3bf51c81f30979c613460817ab65e4220f3de9c8242d423c61002d09436ddb39dcd642c3c7854983d1a7d427ffccf124f6b5ab01bab482ccb1249e08a70e973abe0c9d899dbee61945d8d04276deb26b25f1223a40b9ec30b777fe04dfc14263ebdaa4bfa65cce46", + "0168bd363d1da843fb0dfd2142ecacb0551a6eae88ccb0add9887fcfcb2aba79f1132ca9712a305a61edfe06b51caa1223716a3a3d00ff5cb4a354f0c1e728444f05e7c6e1832d8d09099eb75caebd9e342f5fbe6b7e0012d7924aa584ca098d117ad826cb6cb395eb251fbc9e35590e9131a18ac74b77c837423a107749b816134d4d8d26198bb813f2a3c071adf343979c998497f581fc8c317bb38c62c759ca2e981499528e7d5f75d8b024b8248098ec474533d2a4ae6275874aebc2a549f40d00bec96bbd7212ac63301c9fe77f2839ae" + }, + { /* i=4270 cDividendBits=1912 cDivisorBits=1676 */ + "96cbf8104349fb5699b3b84d10e359b73fe8a58d413b4e83f123391f893c315d68f8034316fddb11bf0114ee559ab251722e545a1c28b442120389298083aa782326f7bcabbbae2db4930ef766f0cd422133624693c61fea41f00ef88beeccc4478faef058891cfe7075f19a1f2357ee4959971c8482b59ed00d05222c866f938a1f8d38989c9cc14817155cc69467ab5e1be4a52c20f5f62582999f0cee58d84c6623522c7da486d2f33b7fd62a87e04b28299b4cabec6f8ce918a3734994afde522f5e60200b63501ddff876e4d07a8612893bb1732abf01f49c2db57a5a36b683bf060f75de1ddb8bbb5d39ad3a", + "0fac4b65878737f52842383407d12d3ae5eedb9b662af550bbde2a7850a857b877a47761a9b1b9eb36bd3d10efb319853193b91466fdc0c0f5ea19c5af886ef5594574a061241654066bbec104a7f309db077d0f5ffe7b379c6ee50da9d2210827136c33a9f3509c1455c0e2c7e2488cee7d5612e3e33352355d810f39c6e4f5e5fb416f84e71032d469143d03115a1e18c3ca6f913362a2954c5b758cb78603f0fc58bf19fe42e5c625a0f902ee3c311d2f10368f077bb91e0ef6a4b9f05e6402571ea1b4883c553cf67676a1a7adde9063", + "099f155a5ccde72f433fef961b7662a0002b2f4828a07dce93d6ff2a1320", + "038f2b983502a28a3d41d3a4c40101221e0a02847c876589f6bcf613cac4458484c5673a0a81963117501e95a0d8b183070f655f20c560ee3c0e151cf001d50b621cc5a4669c561a585cb239fd097f2eec694040460a9456e38b47ec723afaa11035d4f458693d5008ab55ba03b07c94a8b7a190b104323044dc75f82a5106662d6e04e557caabd8e4e18882f3c16722077ed89cfa1e563b25893bf21da5ab2cc4d7e0eb9b366beff39ad888a74d5ad15e6b7fcf239f21fadeebf5bd72c45a53952e1c7b0c62521e3b4d49b520c5cf7247da" + }, + { /* i=4271 cDividendBits=90 cDivisorBits=14 */ + "017cb5726654fb19f0a5264c", + "01a4", + "e80d1287844147e322d5", + "d8" + }, + { /* i=4272 cDividendBits=223 cDivisorBits=137 */ + "0fe306844272c2cb69eb51e443a87e2770d350861f3a54a3e7fb966e", + "ada86ae3f70e82c4156e6754ed556d5080", + "176b7539aedcbc94e96e9e", + "99b7bfae4e0738d7482f1ade6bf16ce76e" + }, + { /* i=4273 cDividendBits=3411 cDivisorBits=1689 */ + "02c3821b357d729980fa9bb3ae9e7f45ec28165f6aed121abdac0dfe095f717728f110e861d7f0d2cd8e97e009b643dddda35fffa3fca3b42e60d0a207e600b937f4fa50115121f11d2a5a6721254b03358120a566171fe8f8751a85d493b6a57749c37a961f5c4edc84b8cc79e715069268a196b25e20d66f4c1293b22a75fdce11a4bf2757a57e044cc736dffc86d45a51af014e72951525208ed843a351791814e6d302f836e736f24e94dafd32b4c3bc454fed8d8e79dca7cec31e4b7bd2bb1f3159bb75eb88715c4dc0a83579d23c69482706b95b282d040968021eeef658f891d084e88b612c01c44cf56a6228788ddd045daeb3c8b0fc4a6f909ff6b0c8f4d5d731df4996a785e89551d2711fbac77be9aa7a3aa6f54ec1beef6de8864c666ee5f90c337260188e6e5a1cf4153ee282e25680aa5efe79693f2dbd69ee50c17a58f94d454160ab71a27ea29e27a0ff3f44d0286c0836b7d262f1b374ef186bb672e309611d3f25b7273a5b1e6817ad1a6673c55e779ee987f599a84833c831fc6c0258f41055b7cb5814298661035de288fb9446084b8499b56836681bc82859662bde66919a9c8a", + "01b83080b2715319ff35e19654d8a51bc7f3c2c590c1edd0eceb82e6bb4ce385b98bb095e430ecbf533d7ab350e61f25c07729bd9a89218293d6879d8a00d719fc50b571babe931989c228812c1fac6a1f1866d768aed8f07eb00420e29682376bddb74c13ce356de88156b4af37154392260fd5ccb987e3466307d643b7a509cf0d4f174dfeaaa60245f17a0d66ec461407b9ca0ab6ec8912cc0f775c97077bb4373254fd3badb3cc6c374ccee51325b503a883f0280b4c5057090d5c3edb0c1fbae99ad5f0e4a8e3ffbcceecd0a3f9e73addc1", + "019b76c708218e763b8a2a602931372f3bb00f65273648455418d45a504391a6ccbdd19cc60b719c8996faee750950d21ef0d870ab873138b76f17f2dd60ca6c84d076015ec0bce4d776ed352b97a6149e34abe5440e66da6734eb84e49fc21d01b5fc249777f3f76e2a4969653f6ec74df9500bf5a2fc13d47a8fbc3ab65dc99d4c08d6a20c19dd428e06565765baad14725fbd6e720d89ba9f447fcb199923f444681b6fce1b6dea11dd5e30a56576af8d288faf3d9c223b8d16e6f1793e452e458c7ad39b4a4bc649814f5d1b1289f996211653f1ca44", + "1f6d3e5f3fd0e4bb672de2d802ae0a5576564ab79070d5a0b47809d04ae28fbf6055450861162d859fef22bda1684507df71655a1f4771cdeb4cf0b455f4cd59c8f80113fa37b3be4d24fad526292251b22bd48547858db33f8983cb7c8a35845be1fbefa2eeb5c231a190799b5092508fd0e9aea26d00117c30921261e15ebe6854f379af7e987f993ba3255af10e122811101bb9465e5ce514d4b3af14cc3eca2da0ab5f952df18a3dd719467f48ae236c676c474ca05b50424f322100f1defae8e850b0474c236fda315b676baa5d4c6b46" + }, + { /* i=4274 cDividendBits=572 cDivisorBits=51 */ + "0b4aabc8681f5a3ae26ef355aba8db5ced2b6967655bbd146291b47ca1e2badf2ed31db9f7ea24a0795619cf24f6248ee8a378dc2d1ddd3030af7cfb5bfedd6d27eeb881e480e822", + "071cd3efcf621f", + "01966a3e307303a94db30ee863546616120a8e9697a19166fce8461bc688261a2a3b108303ff5c6a21277ca6cf478ba1af11233a0fbe17ac724fd16f63a7621ce5a1", + "04643bf6ea77a3" + }, + { /* i=4275 cDividendBits=1868 cDivisorBits=902 */ + "0296287ad8c368ddc7e6d190f555cd857fc146a7912aff62780d69140760099bb40b20447f2bdbb1fe6cf97dbd5e7c1cf9f9f9b7fc7a4bf7b4ffee2770b138aca3bc61fe8e104a93a46515af3137308fc67ab167ee0130a1b2d500ee4c11f91a8fe51a0a0510ed0628eebd3a93ef213699e0aca60033a55f118393f7c33eb132edb527f83cfc72b52d5ad69bb684b247dbe22aaef84e0a8bf510fdbd6e5ebc54446bc69d93e15f8bb5596f64af97c74e62f6fe36acffe430e16c623ce7b06305f269334dc9dd35929d65c0c3198afd48ecee3339313a4b74df96597bb3cfaa74d74e5447ea55d07a199d", + "04ed2400d221c1de77f787e6032e958faaf95fbd0c1e24617d78371ec30fc5a37b3b9898c654b44af730e817b2ba5393306a26da44af60059da2e70817efe3622fbd6c9b3c18ee1eab18454a46a49b1bdef7d56b515355ef5a0f1a91bfd81338b43f13a250f5ea2d43b88faf5d1ab63ab8", + "86697b24f8e2dc2310403b2f3f0f571dab8a8fedbe8dd2ec7ca76d4d2f9001547e80b5ea440ba071ce4dfffb159f25edf75cfd5eb9b27b3ec6016d4d11e2898eda8dd3aee79ec6d9d9a8597026eb1afba0208a589055c1f2dec2a9bfe4a877e50f6aee88313ed41126a3f55c882e5679a440c1be739e04c977", + "030c28ddfd80fc7b88e994eb4df67de4e9065aff05f4e078dd0dc741c0eabe61ff3bed8e6303573c9507006479ad5aad2646f612d53583e926d03cef7d224da94752db6108027d49d2e18bed1a22d56050540413f4e78888f71556f69e7654f87bf5de4424eb37e7da00b37856d6ca5615" + }, + { /* i=4276 cDividendBits=2388 cDivisorBits=1459 */ + "0fea4b60e21eb4723a054e671fe9de7608ab4cab9716efee04d3cfae09c851df18a7aa63004102ab53cc8c6aec73885ce53976ef8485bd5f4df1868a387b27154dfc2f0acd7d0c70c8ef0e541e596d3e645744f4294dcdebf0402b0f4565aa7ac266068af144a243c84d7506b971c8de80f4dd74fa386899cb2b7f38e77ae790b1a05ff5e7214e2477b55b2055a1d4d6c239530a807f9a1ec6fee6f5ac9afa4d1fee9d21cd9b73abf5eed17bd4bb43cdd04ae10a4b1d0f33a7bfcc9acf8a71a68dec3ed4be78f4113e6b7aee7d726a175ef199eb03bf7a525e2765a6df3ed66bee3b7759f4753646694d13711338c3dd684c0e16866955ea4cf422c49c20372326e655abf85f6d43f0c2792f7f65f84a9fceec6e7ca4dbecdfaa39cc258c78fbe5157df9e4103ee2838f03", + "023c1ea9c2b28ea750d9b5280c126d7c26c2aebaa12c36e8d4864288dd252f991d8c032075579d5e49c8e619a52d5f6ac5e36f893a496c6a9db5c8a685ccc0eb02ed1ec3b21311caee0b96df258c350dc0ac8c5b57c8f5fc10d557c960ecb5d6723092b5b1f2d8dd8977aa8646ca929a05e6ee06522e29f35cc09e9a45efd6d7f1753b90f248232078c1c6d9e7dae075305732cbb0c6b78d5b55f4f673119815ff0ac9e52143abb49e64d62cd0f1b4cad0fb7130a15e60", + "071f14256923493e319f5333555d7db7a3e16d923ad1e3c26048fb97351321ac1e52ed05f974a6ee732342025c7ef8d82245a8503e6572479f1a15b0d2338b354dcf3617d01dc56ba59e46ec78a8712db5943b24d3c43970bf77e2e57146d3e50109ab162399e8759684bd70b699ae1df7acf2bab6", + "e3b1955c3afd856e0d0ad9fc0c350c8d255e7dbab5065c02bfb9765ebc95a3c1b6e0bb1c22850eb751fbb2f1de5ea5a756807480ba0c1c90ae50ca380cda5fc6c61bb267df9219d073868b445a73164f33c669293ded09c8b1a900318fbdb02c82c060b7bd90b7d078849347946c31bb97b379aa186c6fcacaa111ae6b487e4e9230321c5077be68cc4cfe445a5443ce7e45673d95c2bdfe9b2f6c21aa258c887db1082197ba12b87f35188ebd0e7c51bddd5a78b6c3" + }, + { /* i=4277 cDividendBits=3615 cDivisorBits=2214 */ + "39450c87a30d15a997e856959ea08a6ffd489b2985fd54c9b7038b013bbbf4fa2a75ca73204f892683702cbf282a3b336c206c4e6333e85e1c36a67d81d66000d06488c6ce135dde1c5154e08e7638ed1c34d0b04ffd171bae504dbcc8fc11984ebe700d20c8869cd9f7603cc8bec5d8f8691bfeb67bb149032db8e3ef27cf0e4cdeb56b00bbb459447a23f875c2f42f0690e14c97db77f62ddd89323217d983e158c679737cf06abbd7b5d983e670df59e059629090b6434876a4e250cc6b5753521ade7943c743308a5ede1cc537e123a34778fa87c6cfdaa5819d5b82f2a092a51a2212f2eda9be666848591714c8c9d4867c15e7e27d620e2d0fb4d52005e706a49f626badd8ec6de9804813e53aa874023ba26d71603c29a68731c26bce08e67e7584afd842cb8cf008c29a26c9d7da1a6db4d0dcd879cc26af947ce4bc17ccbd06ac7bb6c62cb306b9a946d0096fc02a66e14a46a9aeadfef3e19a78b7bb3e6894dc9b53770a2a2139a72f8dbd7ff1dd18a3cb26dc9623acf98e4c557d8be1e76f761d92f687e61deb1479153be7ee8e0d0abea9a9b427b0d16114a72c7a833aa5f18669fc2bb11df29a1bcfba2df223edc7fde9aac30e9277f3762e5c5ae6a2aa", + "3dd24a9fb2302d0c823e09a3966d3aa3d01bcb9a3324e34dbc3fe6a8c86490693fdd5f9eff613e1a916b0f49f329ace9c31a20be5c671347c2b24dfc32cc3a3e851fbc9bfe34a1c78bd7347a9d04d62872c10071515b393f4244dc28477d9442776c500d00afde8dd287dfc5a5cdc6afe9110c25f36ea485275b6148fb4d51071c400155ffe67fa00fc89c878a8a9a184ea4fe7bf11dbdf2014632bc77c9615142f35480b3c9814ac4d8ab21ba43d5127bd471351b78e3218d423bdf829f7df9d6a54d86139aaa2b8ffa38cc274c2669773f7e31057a40dec127a22b0cbd8bd70e36b54af025cedab1cb3d8ce4d5ba289fbda0211272789dffac75169ad2a11277b48b27f1d5b628e37baa1063c1af36db8040d4ec", + "ed26c7b73a2d2a7f2129bdcd431dfcf9b693b2f3525a0e349474840afebeadc4b3ed3a7337ddeaf59d6ef8cf3e0677be447529999bff45f20267b7717032facbdade36b2ff2bd898aa5f0b6f4ed03cce679c74e2e8d0ea249cf9bfde8481c20e8202c80e61670e01d04f62dbbed45670ace5746fd7b1086b0ab063201f3353b1838d30c13f51dda815c3689ea5a6af19c9bed47eb7e9cf207c181aa79d6a9584b75df1e888d9cae4c3b9ff6739d714", + "0759acb8839fda5fa42b41ee4d9a353d08992aef24ae5d1717cde945d9c249bbed4ac2cf49ee44b57c446fbdaac1cb0ec948c63c412e298a6e9f4c2c72b5c6d929482499199aaa6d98286822982ee9a3df8d6b22db48d0434b05417dbcc56ae635d44095f69a893fbeacf4ae4edcb3a8b1b48d6113cc183eb3e275f025f931d189b96b05db5b3644d4eaba6266abd3b162ceaaed6362bd434a36dd28bff5d855f3f17ce5b3ee3a4b107419e43afdff1e7ff5825b6e1b8f0d9ab0fd6e884785a8f5210c08c61c4c11ba1230e6a8a4cefbc10c45edbc4cd3cea72e99a5829cf53e2be9550f3689066e7a059054f857cee6c2a6381bb844ee9acec289a3d043502e5e7e20f207759a4b6e8441225d290345518677cc3a" + }, + { /* i=4278 cDividendBits=3855 cDivisorBits=2805 */ + "7ef2b5c06fdaaca6dfbabac0e12b19aaa9132aa423470cd2fb86acab712f24da87d10b176c0daa67cbaca7ef89231952382b63977ac903d9bd97b4d169ae2e4282d99073766922095dbd9afa052452f5a7be35d11184672a479333196f1c155151cfbb54d9166e49dd22a9d3aa2e9a179ad54033f8d7c6db03f030dab1fa8f91e011d86980547aac8f87e378ed55cb41aa033a67608e892ccb3016779948d3671b17f69eb38eeb76b9b01bdd1c1f0f883bf06495e47fd93798cb7df28acd1667586909a009bf300b10a77d1c255bfbb24fdf8caf1a66139b1b75f39afd89471dc979f07dd51e57bd0da596b7cf6e4435dd8863dd5bfac9e5908887dc6d55459aa4e5cc530f83ed14f3a58b3211def6e76a3c657c2cb52c5fd720055986597d251ff7ffea0260e5463aa3a6a301ee8b3d665b6e6e5cd7dc44362fd733a16447cbe45b36fdfe1c0168c29af8122bace37ddf3995dd0055ab0c095699f019854a450ea10f4f089a298b68d25d6416335f0283a1cc3a2d63fa79d85899cdf7e26ab844f8b176be45eeaaba6e0435bbacb59d3884efe9b3982fbb513f82a2ebdb8cb2ff4ca46da76e6df56612cae4a8d19cedba80ee3957fcf1062071ba434fbca827eaa71077b95c396105b36c7847f58eab32fe6d51c3220f6cd8a1995fcc7fa9938ccd", + "da785a1ebf79ab3d10c82b7a9294a1ef4e7f832569b04a96d64e6ef976c0ca52701cecbdea0ecb8e35571bc977eee5fbe2a9cc1d10ce99f93afe7f9d102f57a0018027249e8a8b5cb86991cf8d7e69458f44b96c4eea849dee90864db5e3c8a6a4ecf3ff55d18f041f8fa1d5481db194ccb549dc6b5b9bee3c70087d3ba13c7bea85877e90598d19ec8954fc480d72dd303e589058daff3f120eae056ed899df14994c56b765d12df0a6aa4c03f986758692577731719bbd81b858dc9d0df50b11c9b468a1e0750bbb93037a658ecd399480fff8de9774632ae15c04b5a87972c129ec4c512f0fdee1ebb80f15c4fe69253c98e58596a18fd234566f317de5dc17ec711226d50356edc1e8d6d908235359c1c2bc9ea46682d8a431a2d2eba3d50f04796773fa15384d5a0be5a5225f09560f73e0d59c22090667704d1a6043030fae03c6c98d726ffc15ffc9d226c034d77bf789487852a7b4c0b63d0302", + "94c17fa08cabc3bd8a8eaf13adc779bc95c9c425d16443f55d6c6b317089beac2bc0c4fe60a7fe5c06c7a17bc6c82dc0741aae3365937252f31bc09b2800cd161a7230541df8b16471630a1012d93e0e79c622a35fbcb7f45c66edeaf3a2dd72de4ce76dfe0b472722d3a391be982d2bf22de8dc43b47d9852c94eefdfc80d6b92b99fde", + "7368264f58e3cb27aae69cb9455fbb9edd37f85aeca09362b1e36c79e7c813cda3c46d55c275a28f460a6531255ffe55bdadb0daa26148492fe9e3b3f6fc4f584791db11ac2ada65fef1a9f4f81de6744530489ca6c1f232271cb76be04745b166643836241c76d719ed1d84831b0472f26e6b1d429292fa0eefcaf15925d7ad99383d65b946b9f05e9491e053381c8593ace1939770a70d6453dbd01afe80ed2710826377791c07c8081d4e5b5e56bd46b6caf26ded739d957802dc6f64bfe8b32b7ed96ac121921e4de4daf58536c9beb1bf29310e323f80cb15d67ba1919322029bce40b6915438b26f80b8eec636d04dc5c72157eab804a0fd00d9b28141689edfaa76aae5e911dd62c12fc5413165f37fdc1755cfbde778e7704e48ec681d9411f78abf92554a0720a17317faf9e27c7e624bd9612c580da586b4a9bab247b0cd0e527b5b7f7583e344aa441969cde4443f9eb7df43828d6b5ab311" + }, + { /* i=4279 cDividendBits=1142 cDivisorBits=506 */ + "301f93022269d8a6c93fcb1bbf2739c2350a4f27cf60cfe18630071c05ec22a38155d76393496f8597b3a8f99b4ddf0f2c77d073a9f423449b3738b86d7fd4c8d7575601caf98f11f3aa08f0a4f9c2a4bd09f16dc530cffada0c85c31e5c72d474b54d9c221729b96e93d7c8938b3af8d71595656194fc079c266ed4afa06c630c7bd39132e7f4e8b5ec7e35230350", + "02f6eb393b002be39a2ac8f8d0e3af127a1ded131f7ddf01e9ce2a621cb5b2302cc080eafcb5ea2b3dc54eeb6381b52a6c0aab786df53d8d900920b2795fda9d", + "103ba9bf409b09426d2a6903fd68e5b4c8c1be561f2e8e6d6c16ddc846d85d0fff7c78354834d35147b75e82769f288b596804ed1516d3d185422c21572cbff6bbc8e5774728b197c17965f0d94dd61d", + "a6fc3e325cf703506ba1e802c73c402359afffaf3c6ff6fc8324a8da8dae72074a2b48937d6806ef07a61ceeabd99465109f0a62c0561f8b75607c7e4f0187" + }, + { /* i=4280 cDividendBits=4030 cDivisorBits=1911 */ + "353fc883fc8a065ad2fcf6323b1960da65fc4315754230e130146bfb9e3734743e25def97498b4188796a53de6e4915a174ff9b64dde369364237e532ea1c5746adcd42c8901324e773b96547f5de4e193fe49103e88f5982c26c47d08421d8a4b961711831d91405c391d973061daa341f18468cb91f756d6ebbc427540c3a0e3b90c0ae4289e59b395400a0088f5083870f8e1036046ab9a4b79028e7c9f22f40d70ae112c2d3c15e9e85f177ddd2e032bddd135bc25b7c89ac0efb8eebf6e98201efd05763264fa088aad36a9f1252208f1bf3f6b919094af489c24224d9d51c373900976124114e6681b1149bbd9329c15fbe24ad3be2bf8ff464ef2df3443fadef3d2b1e9e508070aa25f52826ac7aaf878a3dc345d97b89890b1ed111fd7cd9cbf24b261b400f602cb07a2ac15b36842bd3effb2f5f0b3ec8922a84b96750d22567d10ba97db7a0073696e9bc1dbcaa85c6aee84a56e05687971ab36a9855b00cf5ca20d4c7c4c0ac55ad83428691ee05b22fcecaae423e98e1d543432d8fe2dbf473e90eddcd323513a1fde92b422226d97169341417f9a3fc42b0800eb9b3efcae1d8c42733f9f31d5cd2e57a1f3218e69c65ee42b954a5717b19a5529c375f20e8d8728483684bd81f2d2f79f65d2c8901ddc4d035e5f8c95244c1045e9cc7654817b5862f5003735be0ba033f8ab9ec32838f4", + "63eeeafc495005134bad47fa3f94580bbcfcb58284e815493d8ecd4bc84b2ff8c6bddca1048e48c0066ab62856999442410076d80347dfa92df7c7333b97a79329b25b356cf1f839de54b8fdb2f6cb5d13d3e3d68b47691688866f455d91a691275ee20bf5256316111ebcad37dce8873622a3ac87e9ed62571ff0f8accf99fc33ccaabd28cdfc6cac97d577b04d43391bf76aa9d8bc82603e0a0436e8dce06a5494f91b60dafece3b75d6a1c8497414caa43255e6358c3d12f472f6714fd75ff8b339c45d94d55643e10cff30f1bcb1cabaa2e185507cd65165e6dd29882bf8f5e5a959d33298fa7579438a16c491", + "8868aaa8a9c0ce714778f030724f1a03decbacc730f654774262b5804146da97ab714d7f1e78c521909744b7f2817624cae4a554ad8b32155b48fa491ac6c207295a855f9cfcc17553bbb33cb20997b87f6ac8341fcd9d7b3566cb49c1ea4bc23127872eba8757f741a1707e5f3403e560981e530e2bff04fb8e48fa7ad271a17ab522af73d19e9f23d236ac4f087a347590280cdacbdab3fb1702f8a3ebcd62cd0cc143825c3cfd399dcf3f1660ba489e8152c304ea17bdcaffef6f6508b94213a92ccaf604553a567cf7469bf00ceedcb70469e23decfdba34368fdaa13fba61deb1cad813afbc93716064ab9a748cb9b295f9d8fa796ce4fd97e1b680a8d4fd897321d632f3e3ff", + "3af4b9abd86f84905872d2f5813ce1a569113108c798cdee1c17022fda9fedb767573e2cebd0cf393c1e4acac7f9bff6a13c2c4d5b7433277c74065335d819b105e90ae7ed6b5eb68f5f640a66696506f883302132371e955eea947a02292b399f7a81e3da32ec84d798be1efa8b690da7b7db425147a9a12e5744afe7864529933c4885c15a5ec55a5d2086cfb99996e7a9325bd94ee50df766a33ceab189667b9192bd1c966df48d50caa23baa21c8daaa4f041d134fcd0ad3057b821567bd6511946da6e3712771c075c2f3636d6215312ba4832bdc7fe5b602b354c3e2c9e432469addadfbfdd775af1e8ad985" + }, + { /* i=4281 cDividendBits=660 cDivisorBits=73 */ + "093a1472e171e33dd6d26e3445b37b2c865f277bb9a12ae7edaf95e2a7041210ea2445026ccaff9cfbfe0ba8df1cfd53653da8d75ce51f4a464855f30c8b22d7d8a867d0c235b4fde5540f8d813f419daf3ebf", + "db4a5f938b39c33f06", + "0ac57ea48f55566e2b622c4abb0aa21e33bdc8cf1880d34141a611e96711636b1ec348f545cae19dfb9b8f6d909360d16dabdfb328b2b3862fef95ec41fec75d22c1d42c1bb6fb6457a0", + "62fd1f4848a8e4d0ff" + }, + { /* i=4282 cDividendBits=2141 cDivisorBits=520 */ + "0a09d27606eaa54e94ed624c1b705582ae4b8ca36dd27cca7e956feac38c4cc23dbee38e40961cb637a28968e980165dbd85831de7d19d82f5ac437df1881aa3935b95d22ae42207d464398cf87c9cc237312cf2061ff0d1526499635379cbc8122cd071609c25400c937b09639c2f865a687e98a9d9e15ef3ed654395df662fae39d3fc7f0bd7512f5b2c5eedd59be612b102a6c67b1bacd45f3033f9329179dc9e67f694e0cba9f487c9b80185a86381e6a651c9509e6a00789b19828c92d013e0983745cef43f46cc6554ef85ac65ee6a2c61f39e12a78aecd6c9358462dc6baa667ae79ffc2428ef64d412cd62e4a5bcdad7c6545a6e96645af3a1152930f84e00f8da625e67c2de5c90", + "fcc272eba5e9fca50451378d0cce3db1922b3fc42b10fed84ebcde912516564cae8b3de1ca68bc79ded7f4bbecd4211efe456e2140f762333620ce3e43e500916e", + "0a2ac48ee6da2f1277795165c9f3feabe616d5e5365cebac393d33f2a153013ce369e173f7e1eea89aa12d929baec22846600c4409e3a5d48cc3022bc6e17b6697f87bed4f893f2c69df7ea7805355f011298e38e38938f00460c4f7d7edf13b289ebd1fe38af103877a75c58c620db859cc1657f4ec12571ef62128f25208d0516cf1557c3d929ecf6b0451f8611356a4cfd7a88a40cd807e6a86f58c018d338bd1715ac96fc621fdd0106bc03e33cba9999962a5d040cefb73ca205b631a149abe36f54022d79840ce12", + "78dbd8f58085c21ff0340de9b0672daf554b8d1385621005adb3afcf556d939b231c9ff26c7eeb42721a99ab15012a649e2766f9795255c446ac8b057b884d9ed4" + }, + { /* i=4283 cDividendBits=3469 cDivisorBits=225 */ + "0956e83cb0f83be8c40f6ab3cc533c5196b43160d8ae1e6c31a13bc7dcfab01d4178dcfc9e88bb6fc05a4627974fbeb244841459ddb9193d7af3e95d4c38a6edc39330ff6b0cf68419881ca056e9103f47b696380dde4aeec9e06612c2940e3a6530130fab51e5ec4d51f3e9faa7b987303ee7236eadd933cab9293f9b17713aefa8776358e9d32be53d423fca91249654a9e627e0b16980e714269b831e9ea05bd3d3c573af762b0bf6fe02c22774b4eb4f3370f619f7e5460e01697446c627acbcaeba697cb59427908e11faf8a621ca6beb4f43147abfa7e5bf1b5a567d7825403f60ba0880704d175898f6569b593a0120f7f7b29f14b040611a04c897aa5d2a96f41363233fa160d9ffe636b0bc745550277f93d9e0ae4ab99ed353eb01725ae0b688b1603fb8457d2b5c779e38a900ebfae63d0e551113af2b99b9a78616d499f53715850e8b1691ddc05d2f4be9cf4d1d2bdd910c45f48a750b54e8649e0810ec954f409c4f546156862bcbdd62eadc0c6b3386af964194358ec9a9f63952232b6d02cc4409826d1b8ddc2539e6c89cd311167f921d2b656150e7a0a9515250c1122efd5559f4f4f01d8377475aac", + "83e35d711ef729d6b4850ad46bcb800df8a4c40f0e0ed9ff189d4171", + "1220d7eef42d6c7258647cff00a1b419b73fad4d7e26253a7f4d551fbe193fdc7b3516fa5355c39ceccea5294241672d3de524e208e6fbc8cca5a45f4f6e2c5b427eb87c64057a8f43b8fcc6a1952e47ceb777265b285e6055ba3898e32d971968927aeff5057c94d66f33dcd542a6f4c87e32793e75c2632b9ee9a279a748745465e266ffd1e4e28f2df475ae06ae9167b6c66ff4dbefcfe09a1bc44515b122500512ca8b658973dcf67163d8c87dbeee3f3d3157ec8d6933ce328c49a540f5cd4f1d356e2d707a91a6f3e08a38f9feaf12def11cbd25dc4626d5a62bff51e43e63d62539244870b2d83dbecfb43f92206cbb537f2488c985c4e04f4f21896de9f22a5c6b09fe3470f3cde7e35be5ff23c9f6594dfbd76c5f6fdf904b04905cb660cfcbc299f8201e53f117d7a1d4c4cc9c70b35ee718e805f990b890bc1b3b4457804d3aa5380bf3ee187ab7bd30427404b62e548b42fb91e4b7d5b81e32417bb50e9b021d4d899ca7ca3183ff95f1a8b7546a3799ab288de19b28633d4b09aae5859c5d8227275231a4629ed3621baee3f97971de", + "5c7e88922c43f89bcfc4b987187ed19e56316ef02e7b0c40dd9cb9ae" + }, + { /* i=4284 cDividendBits=763 cDivisorBits=29 */ + "06525cff65f3405e2e035401ba6ad97f845cdfeac5b58daa71cb8de275deabb6e7f09be1f49a57a53c880ad2a82a0706b2e668059a42ec2f30d3ee84596066924410c13ea165c868a822cfc51f712ead9a49210960b12e7f7f60bd2f8ccf9727", + "1439dba5", + "500393d7a85978b678f977d548019a90e45f656b60b09eeea49d9b982a3d8a4333a0233150aceacd39dce4ac899eb01a0ef6c622feed09d878ad35ac1350a8b66823a1ff72d05b8d279c8d68b67125650b27b9e403c602cd6e482b1b", + "0668b5c0" + }, + { /* i=4285 cDividendBits=6 cDivisorBits=3 */ + "05", + "06", + "00", + "05" + }, + { /* i=4286 cDividendBits=2159 cDivisorBits=1193 */ + "18ae3b615122192302022ce0c445b97a540c8d6e8bbde61f2163b6e1b7374169988b4f6aed694bf10edf3b9d57d0dbfee56322d4c091a3576510aca4a6b0d76c37b87747ef8fac9c54c29b236005c064f022a83a97591e2c32629ebcf2090729476ff1a52ed6b74d42eda4548861905265957d5e6a027aa1e20ab355aca26c2f1c9f506f1798b84308b0efeced17ad3c764f6c3b4f67dda09d806fc81fa92ee723e0a48468f3e96d442f737aff3bed07613453b2597270d9ae52d9089a89d2d2b12e45e39d2cd2397f6bc399533d7632a5e708b6e23169fffc1cd47c85af6969fd8ffa75eb3361fc8c4d52cf348a36baf196222ae1b7a564acabb0c00755981fb7be432b2e4cd854bca43768a847", + "010d0ed5588dce2b17c85bc156f3c39de149b61ebdcd78275d2b1d272e2bfc09bf2d4a8e0bfdcd820e68b8fc274727887ef5a0d294fe822fce7bbb3813fabdffac129208e877d0841ae3a9f2206651c9c4c2c56a07f6f25ba774e0a96c1a871d18d2f7e27197bdda70cd68f0c97f235999712263c16d9b0088f852d9a30358b901c8d4a0b8fcfb7f3f1beed1be75e36d2ec8869b383a", + "177b9850eb85c0f1d954078b0f804ab9a7b22562c87cc465eaf6cdfd7d6920fbf6341970fcaff3b10cafafa2b5879119fd6a834e3f46fa083e5a89e30a4cd5740b4f1f6477446b48f8dd6709042048e5f6bab0884d0200215cfdf930ab7e1ccf539b25c06ee7783b343b6fd3a873239ca87b120bf5b89fbd0a", + "24dd184c891ed4dbc33f367a783c65f34aed705573bbc8f496bd0bc1757f97599b98442a36653e77e403eb366289582feb70488b4f3517bf428e08a924fa8560d3e4c29aeb281ae1bf1b7d320a471966b79a8cce028d826373e573859c0fb7c49bcfd8007f1eaeb185fc2627a9e8ae71c4046f0621a9d76d8fd104fa3057033fabe6f754a7acb0064269594daadb30651ac0cfa403" + }, + { /* i=4287 cDividendBits=3852 cDivisorBits=3646 */ + "0f4b9fa3fa61c571db5f52dd19dde3c0b2f08134716e816e5885a8f2ffd193633f46608cb73fdd4c1f7dafde0837d0d4e22d45ccacd0d697dfd4c24c3b3725faa9554c3865a898ab521fdd525c25d5f9a7052f25f6af2120c44e61acd591de935fee1503ce5334474f148f88639ec9f3b34432f22ffd38e9927abac17d8a468682e730bdf157effbc453296d0fd13b5228c296b4266b1939c05ed13d922b3b488a4d28cc89454f2cc223e9fd5403bf4a9f5bc6aef665306e032d1b506d79c60f6b21e19c9b56834cc37f57a4aef1fe73a08bda309335655fe2641ca2bd4f900c7716b707a207d3c616bb535c64274e46a649b3193d36aa80cd2279375c008b51ea02ecb8817630cf6a5ebd836ade3f96739c24b46ce08069bf2e65005b2439b0d9e66a1ff3ff4c63b2d9c39118f2a63fa646aa7e94d7471605e315a93fe0f0a0bf3fbf7721870b23b1381e13dab186b70bcc044ccb2b345a64165bca823d88d048527b61e60b8dcb05a98fce033ca4ca93cb7c81769261409c9a58b3ba0c14d9dc15f1cf99d87cb33ab2634f5baf4f0ea35e9939d9fd88549fd09a98bd1e57a05f9068e05b72fc471f3b142b4eff8bff337f29377b5f4b4a2e021ccf0118fbda0e9ff54ccba8ecb0ca5bb2122a8c6509f31066fd84d3c91248634b771125172a1643", + "22bc7c6ad4cd265fd4a688798728eff008a63a97a86855ee0c1d20d71d5caf75ba97c8da5bc995ecde325a977438e81386f506f9942f8897b0b31164b348703a5eb2e99cd13b8c944dcaa55438f067f4091e7fad08717a159db9444851b49717f4949d0a9786cb810d3e581f7f80b858e5b48761e8cbf43d31dba3b5071cb0d5b250aa24cd2df8d78b982b96f25db31189c5a78910506bd98eef29f17eadb01ac7c675bd4230a8014268dc721631fef6409ed41816c5fe920589266b485f29bc80ae04fbe1286d07ee475a4f4c4a57148499caf3f868aff288713d1f3104cd5f67336fdbc7347e011441465528ae01686b8317074ac2d4508215eae17425bdd7ac47416da60ec1abe509be209ce1b02c2b51bb6dffc922ee4a48f5ff57d04a90561ecef4684014ff72d04812b027390fc93fa380a863d3547e4048f47dd0a6062d2889f31ee73858d8fe9a7bdf61ca2700f6790017b0560f085995e737c6f5f360d6a803540ef9a93b1ad7c013028997bcc59fbd9e7d3f623c9c0cc53d2d064f0b795226a1f3ef5f535db59caa70e7a8caa1c0ac52c7b8a5ccb9adfcae8fa45efe4981b7805efba805455c92a04f99bb0f822e8a34e1a324a4762a8226cbc2ad68d4fd7f4dddbbf7", + "70b96e87267b6437c28edb0dd78c4b1c9896e9003cfff4ae61ae", + "0a5e710d9d0c91df036ad582cf201e7a9df65ee70605cbbe91220109c90ea65745d34ab64d667c48a1702cca0cb485d06ddbc02614c219f64cb2fdc233fc6e9314fdd1b8b4e0be15474f2973d6f25aa33e4a3ef476830844b86ab7ab0983c1b294b86bdec5ebee120c6bc4a276fc4dfde5638f22ff4c7cbc4f9b21e99ddf4ddebbde048c7632d46413516b3e9599785033b4197130dd848e67e8e3f9a08e7c16471d2fdbd90c2ef148263b7fb8b21f69bbd864608eda3f922c3d7f59f9f0946f062dfa7f0a285c8858e258bb9500651e1f85050f7e73e740e8c30f7aa3de4febce805c924aa9b2314cf9cec58c65b0fe7532413222f200f39804fc9aea6e372b39f1b930a7dc42800cfe6054b161d208f2228fa5d4e12fcaf66bb4f078ae17e3d99d26253b00dd32d36a710a0af7f161498628784b5a6f8cf69b5634661312289444150af150a3a487c297ff54288f25d90e7821427bdc55b36e977098a95f777ce09f271fd33f99c1dfe6dc82a18d50335cde1329bf13aaf44e903dd641c1ce953cbbf62f27bac51a27eebee8763e5293addac1b352888761400535cf53ec7a20c5d24d99d85a4710b74652ea87d97a59bc5c74489bf1981c687c5f330c0c8f5cfb2536f859bd61" + }, + { /* i=4288 cDividendBits=2587 cDivisorBits=948 */ + "0726900516bdf0e219413d1233d8eb55f8db51240bcd1185a5f9432e35e8da0329b8f928945bd7d09978abb89812beeecacb8584f1cd57add87bd5e065dbc546db7468d012f2b6e678b247fa318d3c86b827892b21807c89f2acca2847378a865aaf69abd76c6c31dba6eb130bea056bf2caf339c30a75262890bc3731d79652633e00732d54a79b01ff5234e65d4bcd5cf277ac61300335a020f0085d164325b13978b8bb0a836139c5da5e3b60a756c7c6db58fa90369bdbc4876d41d89ede3345e9abeeabd5ff93855a00f9e5c5d80c1829e5fcc5d30701b36247a357966a09e500f6b0a5b029530789b7025830c28ced680ddd09990f986a1c72199a4096b98f932562e92005bf97238ad913b367b4f6e62556a36c39caf7de7d9127549a9a9785363d60c1f8ca3316a88f52e8365528915aaece3c8157002d2869ad71a10a8a7637", + "084fd087a4dd9a09dc1b09a2744710c7daa6f2c8198a5de8a187c9a616521031ba8a852ac8b7c045ffdebead96d43444c3edc426e276be4699d9e1ad83704b3034fe11d07c65da7bea5459a5f2934ed27a163ad75714f45f8434bc3e88b69376d34ace3c0de24373183b2fcb1c3d25602a4bd6c0577d78", + "dc3cbc1fc71d5a34370c162f73e062572310eee0ea61bfc29bd4776b279bb58c6585d061da4ce9d03f7f3eeef05b534a840566ae9ec6bffbf97ab812d3bc4679243eaeb9c0357bc8b69dfb8cf10da822bffd0cbb306262d77a5acc79e2ec35db87699953d4f8cf843e68242fd546a0c37c5abd91a4be4a867b9ae5a097c10cc5e1e28ab5ab858afc62848ac13caf7acecf3a1edec47df281b366fa1c0e0b89296a106dde098c8db7d53098ad9c268bef8db6b99ddceaabaf7fb4e19e741bb5119154ced1757c3224f295ca5d44", + "048eca600cff5852f9f9af4e75a79c31c37b64d5b2c454e8d68bd68ffbd369e2b77cdb318ba6991f93ea382419bda6b13e59ac128a2533d828eae8547fe2611dd76d788bbeb0a87d47f7a52d0f2600f423c9d4bf0a32c01d9be1de697f759bc00ff70aecfef3cbacde9e95c515b604e9b41c3652088a57" + }, + { /* i=4289 cDividendBits=3753 cDivisorBits=1023 */ + "b0e581cf991ad45ef05c6726176aa47a1cff574353c4282a187c4b870e24b976f5feb669d5962b8c31764f9caab161d1a1a4a9884ee97bc598382c0fe77724f536ab426d9c511a131b6608a90063e76e33dea3682fd0b0f144ab2f236dfb873b743f88bfca04763788ca9b3235ce0654dbfc44d83b0266257bd09bb94ee308e0bdf868f228e5201b3b87735140568c1a66fc2334cd276e0a680fd8580882a50bb3b4353919f66f97ef98844ce9667cc47c8e8df579a67704c04834a557e08be16425cfcb479016d1f220c7074b9428076cc5b26c0fbad5e171b9ee4cafbb50266512396863a9c3684d3b3d23c94b8df07225f0dadd672809306487fbf6686957ce31bb39036d76243de2b621249f1da465892ece0fee2ac6af0c1b0a6cb7322d9a9529c2236798222a794023dcb00dc978c9a6963541d291e625a624f5d56111c74bef68155674f993a7b1587e5422ef8180f8f5410b8c2fdeb011d8c0b1c99306f8ab5b82a4a9fbe02e2f1b06e537dfc7bb6e527587d3f237011b86b4efb32b300b115f089e387610ef87354b8bd388a9703e3d503e7b9d4d21ccebdf3c1aee36f9ea28091f9de43931a6e6599fbd286f110dccb95f9e534997372a66637e29a71af51eb9acfc7ea0b99e623ec4f05fb84be71c8c", + "642291e2b3295d181d97efcf63be35d4db59c3d17416c62b6340858397fc48bb703f0f013e2137d271a1010e05f95e017387252bd6d3bc02b4328f191d8d9ddd9a47f200a93c12ce145e1984c920667f32fa5d621aa4514079611f6000f1bbfab50d73c441fca4ce91b43711258d188885f98873dd504159b724efb7ca85a9c0", + "01c43e8ecea1650c42582600522c5147a24b313c072474f6f954e7f93daa4b80ff81d45e7a6ce307086967a97f59d03eb08078e224ad226a67ee0b1983815a016ce56c9e63d5d3b8a372676d8ca830b33b32582f077190c24d2cc692e18b20cc406439ad8279f697bdc714bdede973f3c2eb70c503b7b392bd4998707c5aacf1d1250c9811ed648905ccbd9a72b56c7ed18f7574c33425aedea734d61a74b3707ff1c4457ca4980608728d82e44f0d4545913d38054ffc6695f01276fabd91121f88b64d8755e22215749161837dbd971d5b574a577729e0cfae8831949cad9760134e702896f6d8c28d1f6ee8b89e06c61d0910678acb4502fcb58abf977744de0e1e2233710406fdab1c7f3b56293956ac890b9ad2d7b7a8052cd62acc402ccf99410b5290c390982989f0dc4ad6a46c62bc1f4d7eeaa8f5fe27e6f572d4ce1c3d3f5a64c1d0cd4f4b6e9d1263bbca9a1affd174de", + "2957882a744b44904d3ec15bc578f8c53f2e6ca9dc4870816c024d2fefc5607327d990434dcdc806961eb4c26a0670bbad2a98f14cd15efb62d214857be1aaa207764180ed63eaa8cebd6748756198789d8c1d57b484af6b52c2e6b9b70c0733fc56307bae21ee756dc0241a8a9cc3bed584b23d2c72414f4350fddc4552e80c" + }, + { /* i=4290 cDividendBits=3872 cDivisorBits=437 */ + "714b02807091c9b56e20ddbae7a221c197cdc64b8534dbddc4cc2203abd8ded77531ad834acf02d3042a94bc9f1bd307f8f197a010a0c381e5231ed6de413bfa2a65e4874bc40d61245b70cbdc68a247f19f510ff28ea3a501c5720a506aa7aae31a05721f5f155d1d05c14b0c817f8b4f30606519691926a2e8ade4f600aee63069dc1026ac59f8300075a967aeefb4f2e2660bed8c52c6413946868735fa983bfcc60ae82fbbc6276c47c160f9d5a480230f31801a217f32dbaed1816330a0aa027017ec01b864b4fe1ab25adb24a640af842b20c88f6c83a037b85eecc9edcdaafbdf586d6b46590e48494b674d039323a2681b0883b4da9a3db137185148955e6ca1e91cb8605bcb586a64c9a337080a407c24bc32b0d60179d0bac0f8e9622bdcced27d37415c57501207ad733a2babbc1b72f183ed4f1c770b9edcdd88175e3188ecb70d760084732373c37382ff929180b57125d96fc7b6ba43a61d4af01f7136c3fece96d6fa9e38bdd07bb9b1dd3fee92b3c8e446a4751e412cd1fc8450de5f76e94f034b32510fa7297ba85eb9a8a0cc5c56da3d17aa6a83a1931ed56cfe9f5be69bf30eec199e956ba506029ae0f025ca9f151accdab65954042f25d3d71499fc4540ec81a4ec533e0b88e7d8de39acb272657cc66c86f689d2ce9b9d522e", + "0c8d61e4a75ee1f16863be3391f32f9c091d2117e89d9b21b18c631a517f62e52c333c46883f6e60a256e7676305b4efba3950a7ed4eb4", + "090693f46aa6963b97320c5a71f5e0905e3fab19c94c9082484b8711d3742c8e8f53412d365609fd2a1d0f536383571f48dfa0650e942e53234c113a232cf7e5b644d878bc585e6b215205d81cae34a5bc03039dd049a18f70943d61bf4dc04c89e65738611ba2b30621c856121ff8c72b2de648d08120c116a75e34277353327b7f088d1c95bd05d9234d5159cb367bc3c0f6f4dacac9294de108f895f574289cc7270a482634f05ddfb8624aa64571e846bc94eac693be6f9dcf5fad48b0713b394b7ea52b23645f72690a08124a56b8d2f0440720552da6147b03b34916f0d66d2e2e785adb9b6effe49565689e6cc82e290edcf461a6d70cb3b7a7633c63eaf778e82e48084e2db6bf0984b4097fb3d54e50bac6f37a608a117c1ef3f84c3cdf500705275ef5d362b30650846696ffaa3ef3862c591236620b033c12ff9b5f989e353e87e920210b07b0239f190783219ec26a25ace6ba127bc2d03de18ea6f9c4c9895d43163662c520a4f1279b7dd34e502d56812122a41ef67e052b61988c76ac667e1e383b925bc520c9ab3fb45bcc84fbc6fd7f5934d17990f2b4ae65c211b95eda5b9e8b92ba535b0a", + "019d4d79f80677cd0f7f1babd20ac40d1508984b6649da90486406b61697823b763a22143cdae315917c39182e435309906e2f65024326" + }, + { /* i=4291 cDividendBits=880 cDivisorBits=166 */ + "089cea90ab587748d5569537228f21611a2da469d2ba7e4b012ed5fad035142d5669678cf551fde571c00f8a555a228824f6088fed00dc4dadf4a4a25a0913a8975a517ddf9595655fae71071cebbbe38a9c4777e090799d1ec54a8a006acaef2cdb75ca7ec3e0e25fd2bf59c8f8", + "394b120d2e44cd2196a20915fa4d7345c75a5617e8", + "267c18adf446d8daa16626e53da91a0d1ef70e392ad4967ea2e08f91a041b4cae8438721e7a1d256d148fbe669473410abd3dff57738603575c0b4bd39fd1db694ce9c7724cbfeb1ab91a11b0681dd93a87b6dfa1c03e5e783", + "30bf77b65d1bfd260df3f4b571df00c9a0bb313540" + }, + { /* i=4292 cDividendBits=3688 cDivisorBits=1108 */ + "a46eaa45cd25525bdb435f20cbfec281fa0f860646e3410c37284429607b99f32e290fc57e1326060d0ffe1df36ddac0c3c438713ba543c13cad463e6b54a2c29c4374d226a843cf3532afea29a56ac9684fa4860d0880d91774ab8e7607fe81ec2a569b9b1b4e945e41cd09bbfcd8df481bce51086b9dd65eec0de23cacd63543dacab9e402ea09d5267f576dd39787a4208305a66479b6ea4fd7d21ecf67b80aff9a0ae6cd9e1efea42e4000f12cc6d4dc73ffbf98b5d9f5b85d897193b6e673fb66d280dc93bbeef7655b168f5fe1c0b2556550e0eff3013e780b6a0f7cdb9a148e8255043d6aba3cfdc228639fcd306e507675b7fb718cafd409d36c36bd2f27a75cfd4ca7912f462f4d71bd29d05615b2a1ee3ebea3eadd242a64ed611e81b3a4640cc6bfaa5998d867acbd4749a5562dc3c9a673e21c167dc9e90a7a8b0b44000d294116cc8873f829e25faf8d6c1e89025157cb2cda488f371d99572a18b3028ed34bc1cd59db1f75f32b4f57f84422fdaca8c99276c61c4d75fef05fc3e0b1f77059894fac86ef5b4dd73fe152e1a09802d0fcfab4c167e85e8eb4c12206208875f8a2bdfd3040cb037cc72a29c988d266d6050692f308aff7150dab26aba3f74da429f24102a12435", + "0cbcb489eae2cc02edf0a7038474a394095cd274748c5779b9488f0cfecd841af6fc006d9107cfb87bfcbf8fbe3f38abe426227b434c8c49ed237782027568309fd5917852b107ea367e1f95336d28589ae2ada09fdaef663c22a4f86b264aaeab718c33781119259d3a3000716cd3c50fafa54dd37e5847d74471c0d38e4435c65470637c08e7ac4ded3e", + "0ce8e0dea4972ae50c65bd67955a59f9105e3ce18a759368a05e5bb397e2c21dcde1f64ab842c2ded576b7f195836aab356fda99825ce523e5993a1275bdcc113beb00aa02ad34491de9220d4dbc20170047a14c426f247b9c88c74921e39a1074d3682a33c9aaa18007576a0fc149b147e5c9cc8d416634566bab973782bbbf785908c3a9083223f8881d29afe9d982456cdd79c1f410be9ae13e49feb914ecdf713db5235d4296293289f1682a7e7ff82296263636d43a00ff5afd30745ca274973c15ea722324117e77b25b970f0ccde9bc50241ec10792a45cbddab8b9ec33b8f9a17c59314fcfff1d1c9764db814e95231a9d34b1596c0ef6a932918a6d68ef5e5373ae0495a2dbdb14ff1b7a79b9568e8ac3024884ec2ba9dd593d3344ab2a91776681a6e73f93265700049d0f1a4a88157a4bda13360e27837954a5560df838", + "01ecd5c3cff345ab3f05de68547666268d5e9747453aa5f333bdb277275c8f972845ce38960e1a123f6ea7450198683d332fcafb9dc91c8920cc146ccba25277b046458525b2b0cc368c5ee334c1dff03ebb290aa2544dbef6c8f2f9a9d98a86232c8e8ff1d4e1fe0d063c5f422e8f03b898e4d6c4f382df528d7ff168f8dffedd4a83f4616209f39b2ea5" + }, + { /* i=4293 cDividendBits=2744 cDivisorBits=317 */ + "d4990344ece354b4ec3f897d136cc69a0ac079244efa6dd49be2b28bdb34789ef2d4476f29ba21a9e3d1311414a417f2d0e0b996c0157e1c3193b990ee18c18612936c1f8123643a02df31a8ca17ea4fb4034d4951d3e3e705cb83261060a851d57f628d7d00cb6388f4a686cb5dee6830236e3bc55052b8fa6892f0d3b4e5822455f401836b1c3637fb85833fb5a270f1aaef0ae65bceb461658bd0cf54d2c36e18e7ffff907977ab17809aa2b7cc68cf74e0e078ba2fece62ea3e33348469236a71a078768b2c64d21ee2ba5192fe89c24b9ca1cac329ed5e8e741558b4850653ec64fccbf31c277be3aa1eb0a7ca8f88943ac0603adc8a5f97dcf6dc81d7abb452c47b4591c945781429ba15f926b4648a99385202f71c1c9b87024344d439d55df6c816592820b41a014565ec562ff5c60739ff524454699539eb4be31b2ac291f42e2c2ff94c1efe5108a97f718c3a6b9ca6ab33c", + "0d98698cf436c434f32cee09f8a6682a2e064182a3fe569daa7f60d08d268e781d86ac839def78b9", + "0fa3346e11aaecb5dc19979e8fa3ee595525225523bad0f979c2b3baa093a60a19fa7d40d4d0094bcd1b9ca300cf4486c2e7ea16d6d0683604a447b64864be04fa4a7733fdf0743f4c2cb794eb25b32cda8fd366f38100589160778cba3a957b6c7327256e95bcdfbf685c32445838ed67cd00c87e8a36767e4843ee5ea0c6fc3e4ab698e38ceca2c4cfa4f05205ce0d4bdfa219114d16218cde7dfad5e8e0eb164de658b59d7f56b0389e94aba16414f4e0b3f275c5213ada553675bd6d60ec6bbc6ab0714bbf6209e61038a716691c2b6e35182d84dbe238040468c99ca646c3e0301f66c00d7a5870d4fe7145f46ed970896235f990d3f83d6e27fc6bb6f6798f829867f5e3dff9f946f4fcb6f7390ec2d0c4d0501ab80002291e36c0b487ca78b6dc7f331e2c41c6bb6a41a3eff5", + "0a5c4c301ba0af64b46e875053cb020bbeddbcb663d091d089218bd349d1275d2e7d2f963bbc732f" + }, + { /* i=4294 cDividendBits=1319 cDivisorBits=1183 */ + "5d3b23d20e5a39e2657f4ef4adefee917c7dff5891d630586fee0604d36fc1516cc9aaa3e1cadb39f8053edab7992b3c137d381a43e11783b203129a7a977170f9e863222e39b66f12ac7bedb53b90bc94054bff6a12cc294f48ee221ac6c1882a2d507281e552d2010f5b87c4ea9783265b040db859ccc94bb3f3cb1f880949752d6c84f0a7a3befa10a0a5b0c2dfd5375af09fd7368cfbe7bb09bed7f4e04313717fb27e", + "0501d6a5aa8dc3b230d95b71ac021acb304c6d99be4d54b1ffdbfe0f3ede74e6724e8f63a7587083517c6c5ab26928e7ad1945c2ba74cdfb2e74a340a2d9dedb6f927c37ce73e3b92d18b5c5d9ede687ea2afed7d5e50984fcef96d790d495835f5140497cde498e1755f116c703513203c7c03cb1d68e5fc6a8838718aed8e8ac6ce214b5e25ea24bfce08eda6a03d301b1839a", + "129e94eccdff62a43e2bea5d2aec8b8b20ff", + "9bbba6ee831c84d071c0a3f78bc602ddb3890a1fece50371e33bb09d00327e04b16a85c5b557c630fdbe6894e5fdbbb60a68f2a5c873cd822f8ea73273618685b7316cca1f0062861ef26af83da718b8681e232ad9f1c2a2eaa747f73168145363998acf94c847c9961f74a70097f6631563ea4d9d5120250dd39427048a3c67a0b662c49ef9a06503a2293d202fdf7e9c5c18" + }, + { /* i=4295 cDividendBits=1096 cDivisorBits=348 */ + "7b28c33a32f8bf3d931152c029de91f4ab36a95bbec6773a13bd3c074645999341c0ba3f1c148ee69774ea37f5c1afcb7cde9fa581f9de37294aa0d8f17129d75a7600858a06422b826a5e68efbd9cfb421acbc2c7b7310f6e3d79cedbbe763126be3377b76ae4aa811719b3809e657f8070d682a9b418fcea1fc2320e64f7f8d267f95941a706c62a", + "08d276545e9fad395f4018115180e1b7c8cb362b2b5375253233a7d7f0d671c19c8f534c594dce8a03b84827", + "0df5d4d6fd2c3dd52dc2ef5414bdbb51428b53fbe02b8a28419a6e16cfa1155bb6ce1eaef0a4753f3fb7bb57c91a9e6a3fb7ba6f59c47e91f75b4d95ba4c51c2c0ac387275e06073d32e8fa29668540a4b18f720daca3b33a391a44b57f3", + "062be85b50c490d18af4d2d3a00e790cbf014a865e7d0c5ba1f4dd407f7642222c60bb3c77058caf5f280825" + }, + { /* i=4296 cDividendBits=1185 cDivisorBits=84 */ + "012814cecf3307e2bf1e15ac74145bef1d0c07877a969b48eea5ef260f09cb57a4e1c6e9f1a22a8eaecf4fb2b6bc623db952633d1688cb1f30a2d4743d62632b90761334487a8cf48b3114fca9751fce479b10727b979fe5847b7be7c4e757aff557b843a2152d780e54398ba6c2e8e87898a2a19324e487c2a957cbc00537d75ea3ca132c52891cedc82230b6188c8bd8900a4ff9", + "08a3a55052be6ce8bcd70d", + "22458c96d75f24013acbee43ceded4ed7fcc8599d58c6d05ea1e61651e3b9367cc24d62892991e6903bd87074f7c8c5cb97598a920bff872512fd0a4786f1c8fb2e2b59e033ce5b64514c2a5a7512d9bf32f11845f5c1954408e3fbe74bd5f4397199effeb56d4c2f797b5b7f97b9b147f8e16e70cd44ae3c77b33c5d3f5e91720c4836af9ef069d692b", + "01b68cac72511ad324dbca" + }, + { /* i=4297 cDividendBits=3983 cDivisorBits=108 */ + "7b6e079bdfa323c0378ef970d3543cabf444d501f01bb10de35846c02e0b0e6ec975be3a98b0cf42599568311241504ec96b1352e70263e76cec3d3c53c3378b8d1c185afd5697b01cf4728afad8ad0c063d0b9fd779dd213f2281d645a2ec3f2afde09ed4c5d447f7bc0dcd73aef772aa7625b2a9e18154a79cc806db9eff165b15a7c8b049adc0e763e95303e863cbfdc9cd381e6ee708d265bcf766cbe0eb607969fafc033fb5b02563e7f17dbaf2e339d81eca936ed2d904bcf1a934888eaa4b7cda0cab4d38543bc3553928a764b4536576fdee4d9eff71a6d14ff964c7abad747b529d364424f3558830b3cff98558d6179930c04cd47b778ad8a430c10166b085889fc17b1e982608d355c8ef6cd978cbd3d937882aaefb28ae0e1f3b30b055cab28f7fec72a3bec5e25ff11e73928326e532ab8cdafbfd91aac7c3e3d0f515cfcafc98d6663e50346ac41f5fe1be83ed1280e8c6c6e934d1bd5159d56ab7e03554bcaabffe2921cd412ebc04afdcc0037104d62ef5d02bceaa53f6ce25f887d252b2283a89afa27c46ea4f15ff012f1c2d81512c1ad1186914f7da6f1382312e7ecbfa5e1d845da6d5a16c951394f6e11f73504a86bf01cc1a4b57d78668d54b4145ad3a6e1d6b65d044cf444e974e3585c2724deb3e0a3992f87e3d3e170e40cf5b2ad77aaa04c2569c4e6c9da4", + "0de7b0dc34db90bbbe81599400cc", + "08e06a4a6240f56acc87d6bde3f69e2ebc4203b6359c04f3917dad1e26f536ca63406468dedcf7ae84351c0989f14e39244ada523c0cd61b330bc766233d5421b73b98ce28f2a89536ecc210382d99bcdc8486056f416aed8ce44b68fa8e5f4b96105db01a8c2609a5b92fe8b15975f74ab974ee63c85e0fd54fb7eec85503547c59cbee63597cad4f62558b881198e20ac2196c4948f79c020c6119470042b7579f30146f7d3c551c1091e0e5a039da39bcabd0807de0bd481400f83667dc81a47650adad05d26323aad107386a93c3cf0a24bf5faedf7ad732b6a3693f09afa6f6ca4f5c9eed6f112cd8e4921b4f6592d16e19547a960920e605f8cc459c48b4dc312d22bf3cefe3304caab85768b254d0e5cab71dc2983ea6cd9b399fca3ac8a674cefca2e67e7b32393e5d3189d71c0702e450eb9d85ba27a1ba389ec597a72b88505df399b9eadb59b3c929b5f3813425368ab1e69b19c9705a2587bc135226a48589382f5596c63e2d5b55543144e28fae6f6fef1f1c13d08b892e3e8772a506b60c79397de51f07b66152476083f8401120405e51ca258d705e8dd14cd3ebe75f81454aff5f76ba23776149c5f2f96b645e723ed0c30427bb8aea3560b9c47b2fd479882424b4f056ae3824809ab2ca902029cdce638fee72e14037f79239fb9a8a", + "060e5cadf4406a2dc45cc82577ac" + }, + { /* i=4298 cDividendBits=1744 cDivisorBits=1437 */ + "a6683003c796a2afa11716e269127c7412ea4cd1ffac43f423fda484b5cb12b7c4b273e573b65bebfc831b1f8ed3aac92618727816db7af88f60f110bf951e240e6039ae551cb4f7cf53198fbc0a3a7c5f754679935883deeba679a45ad23574e7457f2f93f80878b97cdfd81b6ae500151f2653cfee8299a499d9ac7c038b1721e4425a74a2c1b2b9a7009636aef74401759bfc054cbf24d23116e88d1daeb50fc60b4f46a8abfaa355fd71b9481432e73dcee40f23644c6f63742576662c9238b02876f6e5a7994025d16eda049f5969e7fb47cec5294d5ee5", + "1ddb22ce8a5564495a94a6047fe0818c9a3319b5fac30941a0839cbda6dd90ffd13697f7e2f734fe88b7fa4fa71d5b6ec0b517cd7d94767121e29804a00689160fb1095324f6cd1dfe7a6b02e215e032b8a23c722cda411eae68882cc813118c0dbecba72a623b832723fc8a44c05b630e427cf8eba97774b2dbc4633856e921322f53fd2fd8e55e99350b4145734a7e03f1b438a5c565f36df11750734d90b3c21211c1a1e84eea5422af6f7469e28241c0a5d9", + "0592daebfcd1eb0c93ab09bb8f4a72af0313a58e76df5254a913718579025e61126833e5cebb29", + "16ae5d0a2ce518b0dc3b6749e1d0813f94819ed69e4f07a7cf546c9904136fcf14eb4562372e2cec28ed8d4f7ea1f44a619ab7129f3b1a7f3eec9a8c63ff5eb334911ef62418ac7ad592e839d473ffe174f6f903e5636a3787cf5b0689502fe8e4db18ac8989183f7407d845da132ad9e1cc201678a5145f62124f2377dc06b47c0cb637b14a2302d11cbd52f5018aa6773903f2cfa91f76512c6e1ca0107561b6d0278657a81d12ad094177f537f24556af4c24" + }, + { /* i=4299 cDividendBits=1009 cDivisorBits=159 */ + "285e55ecb623aa7c700409a06543b881a1cede3bf88c34d5122ba8b1390b3cd24a7b31b3743a5e5788bd3d043f5d943e1e000962a184068eaac0eb7dc252205f8a48e3a9cced6fb7f59120b198b13d82891d28f30ef20d43724fd0df43b527fbce2658c75ff6e9eb6d0e8d563ad9c333e659dd4efdb75770492f52e86f8d", + "0713db64104230d5656d6c0ffe9e2951203a2443", + "05b42761276d20a65ad18973972bba5a0591442b38100640f8c6885d5a6c4d57a5b9a13c6c7728d0b650829de1126b222d03b545f10c34350e5ca9f9eb19d50a14c2e2fb38ee8e2254d69455c36b2bfde7bf3785bfbc76187a983adf762d78412744fa346b0f8a0fe88357", + "02338deb252eb122cfa88d8422aaa530d4dfd3c8" + }, + { /* i=4300 cDividendBits=1501 cDivisorBits=1152 */ + "05f70a6b46af33908040c31f9dda3781b477ddd6fc2aabd089e58ad6d691d682fc1f9e0f5663261f3c941c883e6af7995253f17ecde0065d6b03f7f3e16c44d6be12c11a53c876edc0fb041095c1404c6e46698481faabcef53dafea28be0a3ffe4ee0ed3a1f359668c784a293aae965ff3f4c110699ea2584492b5486b6d3cfdc6a5f67a19a5b90131398e072709fdbd4cbd9ad1fb615b3ff16b3e0420bc5a525deeb803a6c55f9980e772ce00a5c346edf722abd2a9fa2d748450e", + "42db7b0f8143b75cbb6755b446ef4e8077bbdd2c2141ba484e2f59c9c99c07e784567c0453a0abfc228abc8ece3dcce6efb87b1ea2524f89722bc53f44fb5d3d9c22f7f0ac413ee7625d774a23bfcccff3b0732acbd3aa55710f1461d6c887eab7a392f3257041cc0d176e07c415a4c2cfd6faf0536f25f45e7e25b43e3e6a22caa6247de26b3717c575eeaa864151e2", + "16d71cc586c55a308e07e37fbe5d2ccd5c059fd2049a18074053f252d95b6ea4b145f91a3ed8f86a7a9ee1a3", + "0bbf3324498f1ccebfe7353646c5014d75d25543c7a8fbc55c97cb4b15b31bcc9fb36974de6689cccfd3e946b45483a1fe78264e5a50f8b5fea60198b751308bdc2178ccc4a08450ad7f8960f6d1d8729a181b6544236a58ba21b1831e88567ab5fb2df0f96af535c4674ee2d68a3f3abc2d3a3b2e7f47f19345f9fdf642627bb4ab9f4786c926641a06f425b53d8028" + }, + { /* i=4301 cDividendBits=3137 cDivisorBits=1887 */ + "877f073e142b3e9d60dda3f9eeb4fa3a74251d5bfc53fa9c63325917d25757dba715b8da02aa59eb274ca4530dca5636c4e2c59fd0c7c40782cb5a3c7f4a6e9faffa16d4ad8d14ab111435f430dbb20393d2c48014040427cc3beab0a0827818da49dc24ef8a99c4951386284815aa71a21d7b61bda95afe8a2827895b03ad4af516857f61262522f7ab63ffed98e851f28f6e5de9820682e8a452f979c9e01f9995b285be8e5464cb365aba988ef6745f2ed432b227d379d6c41607061517e36243ee849078519e37741bfe32aa268e840a83963db8c76e8b90a5190b94afda0f8cf02387e67127607af9142af7854cec0a413fdc19ec35c7747ef4a2428b5cb8ab644f21f4829ab496252279a3d5883a7ff8a57735c1632c4da8b95d50c4444e696128327829646b80543cbb66f889c482cd56a6d8094bd9a492d84b7a495ca7cd9e5d654e7035956d178f3e21d3470e9740248ecc8fc813541bcca02b1ace7b21149848a85c58116545af251b100955b5241079a8c9150f0a47006cccc036e7bd0d7f61dfdf12", + "636fbffa04647d5c4c49434446b4fea343e7d9509f3617a6774dcd29656b155f0e1fae3f8fc1e21b6c0230c2113fffb7f885ce59c2d38b98a0dcf73c616aa895367c98df8a60eab42ab1ad10c6b05f203d689c5f9d27e443bda7fad8a4ebc2579b93a6a25062dc76da1cd99198dad8e21f9c0e072d7c78f6e1f4aefd06613c932985f17ed90169adfad00e1a6c44e4bbc8ab6c57e529042493a231402e35740a45a7cafc120c7b6f862c92a54b70e3e96c2a4bbd864cf2359ba37abb77e89dcefb6f05232b08b6543641678b58b81c056bd71965d496403af79cbc75e0cec76c45b06effba14eea32397765b", + "015cd5fd0f8d57cb1865aea2197d773ae4361d169375a729572ad9319ecfd66401e30775d6065dc5cc95c970b3bbb486ac4f1be815b555fba71bfa6f115da3437f7bd47f91dae1f6c264f716586903e5b3f5defcb109536efc8bd6e720873356f7420e358c79ac71db81728ca8dc10b25dbe66cf5b3267dfb0a9a469d902f301277938b852ad772a5011271d6ad6c83f57aad6b925c645b1b3b6fee5f0", + "17be9dd1c70e4a6f640e210ea2660d90a7a29564e16b7aa37eda17c7830ff3ec5e1ed2d4280dc16919fe256a3058955eb6e148192d8902227daa14658f185553f2d5f40a51fbb44a0d38968d7e128420fcf1aeca546bd17b46eb0b2eab80c742d6da47a79e352f4c3d6c8bb608dff19fa71a51deb293d2197e49b2b6aa6027103658327c2a9ede70d0b63cf9c1d173dc42dfb0ead97b7b2b021d98076ed3d2278aacb63fdfdea489ddb0d9398a481fcd29656c2331574d9736cba4530f1728ad4025c25463ea8fd2e52ec10beb6122d775cf88834bef914257b7c6b052aec913477529651536baaa66b782c2" + }, + { /* i=4302 cDividendBits=2874 cDivisorBits=349 */ + "4ed8885df41291efee6d78cf20bd445858c497725de45d085d3392a38caba382778290f028679caf64dbc14d1ae1dfce0c8381607321b2689f7177e9f4af9c0c59aaea2bcae0a47d7765b7be9e4411196e71defe92760b2d31389bc4754786f2909478aa1497c683aa92fe4dd541bf9c973ee758048c68acfe14a9b6887034d299d6317bf90ad6d9b23a6ad98a0302c2c582d21854bfd63edc0af86737266dee885ce82d381a807e3f144e7a25e90f5b364a88a535ead2e4cd0b5cc77fced1f027d604b78ad44f4b1b66e6d89770e9e1593e224b7b8a7c9d0662232864eb7373657bc20230b6febf5a2db0dedd375a7175619d1ad85cbbac4081206c99870cc90d525ffa80f34df131bbfae3909085e27142e53d951dbf8edfbc2ed79203f3946d3568867e776077f161126638eaf0d077220f8fcb88d557feeb8f49e76b88a55ea769ae5ce409f478dfa0791a04a2a87d38c498666f5e6314a33f5a98baa9f977cd7163b9ba22", + "1372504adafa8cb40a3f932ca52cf6a5c8b421c311e88b8ee382f33a94ef75e688009d31c1a93f4258bb2d8a", + "040df32f8a98f8ad8adbe9b8b23d9f5f2adaead1a3e5c9f43cd9a609a592b989e2074add8e92803d1f51cf1edc1e2c2dc3c2275e6665ecc1d3e0c89b6d2d43b521bca5dc9373e317be12776a8b99201921f770749bc310d9ab744d784565f1847e70f7c310ed500f4a31cbbae7ed91c5a213f4367c5921408f2c596020377638f2f50dac6c9c0275e99edf78f1d660f978ddb010c624016ca2ab5ef0341699f3d66e9b835c28e693a4b3fa96a75e49dbdde2e3491d6b3f1f5f8b82ae9fc9b9a563a32185353907afc7cd2f5f5789a42f192e2a5c7f46983d431aeda2a0773c23b07e7e3d6506816f14dd3738a34057f563b1ad98e444832f6d576979f154d4949c3ffe88bdb0a55d4d35bfc141cadb322a4dc550bdba5f9e555ff999cb9fcd6f07f9c196d440fdd954c7c50cb0ce32efbf8b8f7d4fe60a2ccdd0c69d", + "0186f9b67882e94e30e2e1b239e60073dfd97a2fc3b2e4abc0cc230b97379b3321d1b1b8b6d97ddbb1961080" + }, + { /* i=4303 cDividendBits=2898 cDivisorBits=785 */ + "0234ca22898f0eacad7a83c8cc54ed5e36065fbb5cb68d2f42b1c204d869d138d4df57f4115fba4a75b73f842452450eaa05598501bbc438f4e06afbcf038ad8e942ba1fb1a30658a468054edf6060cc55a8ac0e4acfc1fb5cbb9514b205df10190abfbe32b688aa011e59539e6de83e4967035771b84557a781b105a535346b878422ba75441760ad14e80258d6380005c1583a072d1e36621c768de152213338e1f43ed9fef69cf1e2016c88d5276519252c54250632ac93ac25a79e456550b9563121c92de25019e90e52496e3046e00c91e627a71db5e786f85c18f6f0ba1393cb69a5759d77546d66652ba170177fe925a74c1f38ba69d26fb4d9238585df020755fa63f10bb1db08fca9d9bbcea133622c1a2c436b8ce35ecc2613a217146d695e10971e92415110221d9c5bb7490ce50cd5dfce696cd1f997b6a26366a4dd518f37e801f273c14f6e40fbd82703d756aa7acbe29f64d6cf01c1f996a1b66323da1e604bd83730a8", + "01410002de3ec5c80048d72770ee8ee5f0873a67ae0d94be1d109e13691dd0ba39f44810bfe228f63cdea7b78ee3d0da630cb7abb64f66c378c918d27dd280aa3e52e9c38fbd78ef2916ef0d44128eed433dbced07a0d3f5bcdceabb0b34c6429fb553", + "01c26c8d8ce6c63701f357f8921db60daa70bc27ed3a2585f77ab6a636d4d0bae9077897f12adcde793b43396af6ecbcbd5b4b10634a4da95c6cc2fce9ecfd53065f83e7773fb0d305b8a832049886741f84499acc84fbf55eb3939a49cc375a1f14c6374bbb9df1e9828ca62f443b7522bfafbdbaf3889e9bb9b2155d702a55f874e78b02d556c7143ca6172c28cedf4aeffd5b0496d60c8658a494441624d3ce4355fece6c59f1fba309544ce4f717d269bccae78faed44c061b81aa2bf8f7440f4076a6a622aff4e2dfcc56a86c730750b6156fb7b58ef747aa7c792fb71c138c827c65d0601832195e91b5bfc7220d7cc08f10e2d983912675c9742292be1a32fa13c821553776", + "d218cab375544e7ab485bf27ea64bdec6032199af041cfc00e517b7066d7c6d012afd2388939ef11d621dd3625e86212b2e7d58df7bc764ccd5281c3d98418e450f5e5b2abf82fa82d35bbafee86ec7f23fe4908760838b75c96f5e9ed59eb15c766" + }, + { /* i=4304 cDividendBits=1352 cDivisorBits=959 */ + "501de0eba6fabf96862caafca98c9f9bfaf538137f87c856ed833da58e8d3b0f2b73f95e2146e577cf0e8ef1362d713e6a339c65da0b068a23af78b1ab2991c0dab2fcafaa5c9452e65fe2f3fd9c49598adb59d2623dac366855e4c4bf4dd9fedf7fd28e5cd1b5963c7b203fbc24465b93b2e2ef71774c03fd1bd0ce906f88e32ae14bb787e10542d63ec0fc4495d1d8eef86b00b3d4dc6735bb47c4c0a11af32ed20ad3a5da9e8a7b", + "6a74485b7ecfc0381055e507d1cceefa38123c722b73151618da6684651e048dc4d7a383415d0d92bbf2d36cb0f90cb510ee4291a2de7d04f567e48ed5ba98667c345c3a24c5b3ed3ec3a2c1f43140fadd2955922a236cbe476c61eae79072fbe4ed1c2af19ec9a53f29ce4aa585aa6bca690740e5fb3bf3", + "c0a9f03580cd2e0e5f6083f2981d36a67ad463dee96691ac1ef521b73b5e6515f3114cac140e7a9a52686b335d21944280", + "5c15fbe65f3cbbcac6d1469bb5035d690a96b68965671b18ceda8229327efae9d47dee45680d023edaef015e179c6aeea3385c0a6db2dd516d9345c63ec2e0e983e95a5c5ce113372dd5614358a0ae5f8c1987f50abbaf096904a59e87a61372261f7111366c2bcafc5a260e7a6e41db9ab6efa81c0feafb" + }, + { /* i=4305 cDividendBits=2403 cDivisorBits=1965 */ + "071bd207ab3b20e5a23b764243f60c9ffc45d5ee07c5746e161a97e0cc4929d19e27fc87ae43abd37c9ee7fb64ee614bc30dc636ff4a2514e1a3e6b4723fb6fbcfc954bd06fd8b5c510f5564d9a630c9789b17c27ce6ae968221f36986cdf065b995a2ba1181311f0f5ae7b96a935981a3f76e9f9de173c3fc329ce8595a64c4fdd9f0b25bd0c128bdbf2bc3204065a3eb509dd2abd1e62d7e61aec78b12dc3d4ca78dfbd231d23b4348dc5db1e9b76195d889f4b97be3a5685a603e3cf7f95aac948afeb92cfd51882306ebcf04eba39602a00823e2482a24232e23ff28a997ee2ed75cd3209de047e1aa0fb6000eea72a4bdc3404bbc859845afc2b6b6192d392b999393889b19b84228c5d729a2bb565800ef0ac910f12858abb53d545de993e7b0b8801912a33626d87197", + "0521901c953d2f06777c8e4f322cf22451daa3b84f7dfb72c6c2d3d36f2087659f2d41ac587e1d82c131fea32371039e40dcd9a68e2a69a81394cc11170c12e5cbf946a43d16dd8016c26727e6bec66d23f76abe4b31dedd9c44322640ae7a563487af0f784bad82a71824feea9db54623f3c5f21f558a5216d5e6e5993407cf57e08075204565e70ab9a6865c6f6e7b28b4139ababa0349ddb62f9c0fbc1ef17b6664d3962ea38348f92d4e207b4596b1e3a1b3680e9df438b59b9e1b03c8ffa50a61668a8c4d9cc06b1f1fe54964b0411125ebb11fe0e92614e9d5e6d6a75cd8d479034b16d12e59d0a5101414038530d49a3b32e4", + "0162aa17156cc1134c40be971078ca9f4b0162fb4ea1c6a373ffd2434686b2fe7ba07d6a824a3c95ee99d2b1948d414a29ab1a4f5fbeaf6b", + "024bf94018a518263f5827cbe02f94c4fa316684206907f4c3f21704f237b60a25fa3088ec464f14c12e423e357aefc704a385bcdd7169c4b0581f3b5b8660e63a9d61c1d1a006909d30e1b7c2cac1269f7cd8de6a89e5c86b9358b9f040aa494b7502ae62b16d50c782e67e2c5968eed3b02849452d9fa47acc46aeac4b1fb95aa4ff170371e3a201d325fa7b29a79f78b6c490149bf7b0694e0351c63938ee47b35edebf2e0b7310aae4155538943e395d60453618fc75880d9213e9e9e81ed53b88d5a390d89045782a52ec141d86acd0235e3b05e5a016f8a7ede9946313b9068f7c46b1b773df8bdbb2d7e2534398bcd718504b" + }, + { /* i=4306 cDividendBits=4010 cDivisorBits=1610 */ + "0341ed8d5cb923c9d1c78217a94e8fd4c3293e85d4c5745f51fcd40e0e63905dc034d7bb7c54336c6054240d49691b4673053b170cac3282fc424ea23d1f4f7d5bb1111962a0e9f04aaf93a4c6d5bdc40b90c6697fb12aac81a4e0a3a2cd802e5b1a02ed23c55f6608fea3cf7a8b9df3549383ebc2179fa876eda2939d5e9431f4eb1589e205498a249b54a5eda41835257b7fec1b8fdcb59090a4f20040f4070fae2f1026f398991ae3fcca88593cd229ecac331749c93ffbf9af37f55386b9c511f2f328a4c934c9d66bbd46f8052e2846f34b8aaf90a0c5b4d7cab92d7e666f9cf2390037cb5a5e3f83998b8156ef45135cd838a89f9396472764e0bb7aa35bbdc46ad6f75bf2bf2cb5695ab338d6325a4b28205bac630ff92d4848288541501ae79671e491bd2e60883ef2bf8b302c4eab08fba282601f593a8d4f81a56a07acbf1f3947054d25234436ed98ab893315a25643d80dda5fd4867bc26b3a0d8b64d3c6748c9e64ac7e1cf1b182ddca59dc9c4a289d49aea4084a7b57a7159dfe090952ed47b2a49ca03aa09891a69d4c5255bf06d77360a8f52fd0d501c950f5cfc18c4f2d0f38867cda9403c38559e438d1b23d5f0d98d41ddbc4e48fe9eb2c6ea1bcf95da3096f4b535509ec14b77e5c0102715ee4c0a6dbca762665304a1bf80ebf2bc0a8661e7e4cee64950398206d94c1c88d", + "02ea4378e0353c34d66fd4e642a7d595b5fc704fce161d033d6d02ed97a05f0490f016031a54c718863ad8ea6af7c002afa95dabbf9c5a6eb495d109d1193a89d4fdf9b796d0fcb2f05f8d1c3f754139dc61ecb5fee2dab58ed09e54ab32435b4f7b96c87b227416f24441072e2a5561ab3d8aeba28e3f7fb7c5240cca8a1be135513387f6b2be1ac307d7f9a17ef651040394a76f892158704087de88ec6c4bfc7c52cb95297a96ecc574e3ef52513b26de4ddb5d36caa4cd1b8a59f84be026bb6140bbb088cd94143d", + "011e12956be077f89cee9b3799feaed17e0063ea99e530287e06b5b719cbc17e41ca23b1189610fa99ebdec88dee09be992694971f037b7c7b14b48f9b5e266433ba728108d06f312095ea85fabb3eb4c5e002fc7fb466b9b1411b6f311806d71664aa18c24e09de31d8fe73751dca629c6e1035528e8f49c7105e72c6ac8061db49fdc750582f9b3509bb72de0b1fcba8eeb05b325c8564926cc405241a14171732c7cd45bfffa573dd145863a50c88e4295d49304bb096521ef9cca8c3a8fbf77370b5f57d1a6f2aa09e706439a546513386ebfe385f74c65dd837668bf617dcb829c7e85f061cf8ee0070eed46c78d4c7836dcc561c2e069a051675fd2fade27756ffd626bd6c0481fc3cfc1c1c9beb3d4dce03deaf51c25de949bac1ab0787902261d03f496c69d6916891", + "01d0774c8cb8456071f16e4db965b9a4316d746f2015c2c4555636f6d61340ca7c7f346e6e83191b544467048cc39f00fc834e767cc18d569b9d3fb1cfd7df26f3ce145c914445992abd86d4c59dfcc67df231534d2eceb5493fc3190983a04c3792a61d9407b28b75480bc8061c70c69492f69e6d0cd4e48b6eae5d1f40a1f536e91d682aeaba267097cf918e9c071c61d0b329997e4ea2616f8ec2d5b121102296eae6a9b714840f60ec7d543b5684584442d6195f1186c68ef60894734b8772b62d904c9d871c8a00" + }, + { /* i=4307 cDividendBits=1122 cDivisorBits=42 */ + "b63c6ce2abd7edad1e641d6015c981e936f7802af6b246e8ff168ed3a2e5544ca9e7cfc03cfb59e5f9c7d6303567e42ec8f124e371046a316ea2863659cffa52887156bb31ff3332671644384e113e7b2877659fb5533922f2d7d05fea577b790d17b511cff3240963994dbf842618f11bf4f526bc91083b0f90bee2b2825c8fc7271e79ca8631ad478751df", + "021e562aa81d", + "56056b174b2b6fa05d9b7b3ad7edf8e61c6ef2c96f12e6cc5a04cfe9b207a612919633ad26633eb6b4419c22f3fd4e2360870e75a4a20435e0c40b2ae6b55331dd7a9faba9d5a2de577dc953ce226bd4517b0ddf189de7007a81ef894b76e142f96bfd5b05fd7eccf865b11a074f2cdf143f5ba98f7136caf9c917969bc392cc16ea7bedd47609", + "01ff85860ada" + }, + { /* i=4308 cDividendBits=1575 cDivisorBits=272 */ + "0b8a21536bc478dca8f92808f6901dd5b8388570195b454976f84a4af2bbcf86a3f0f3c95875ecb2ab845c2ebe4d3d7aab665d4f55723ac8f06866f75b8502ce9bfe1767e4d0399a6eaecd0136347f1e0765970eece42d803dad92311b3956e16d8d47dc676dd92c39d1983c7d279b573417829017180709a35a74d2647420040b69460945b8bce91ae8fde08bdef6423e4fea7ae2c95d8da679e1ba6831d79da3c4aada5e1081e999ba2f1a386a938b6e61d883d7311c617d8e7e1de57c4a2a4d0af711ea", + "92245dd2f26c6c904e9d4cff8b9801aa193b1cb0729ecc873dbd590b4c8432cb9b75", + "1436cf459ed1702b648751839f17303cc5bdba8cd47a6a2ea0328ab1aede61c3295fd03b104b10e35b890bd3d0a4f3a5de9a52094650f412eb2f445581665d0fb2f003852b030d2410620ef5203f5e1215276fbd052e4c3a41ca87f083438db8eb18649b120d41e360c67f18f812b086ca2dda108a3ec4dcff023ffc27f5f503c448091fe3d7e268eedf5ec2a209e00d24de5c0d7c76d69712b7f1cfe4cd9fd9c8a5c2", + "3ef0d510a6253bea5a21533e2499c6f1e07155e43ee9f4abe65c3bec74deb110da40" + }, + { /* i=4309 cDividendBits=725 cDivisorBits=515 */ + "0f3dcb2d846521f59bb3ac707838b131ab6e652cd0c793c60eb291433bb981a2fae710a4db567f8d38761000d49524786c6f6636a6cedcb82060f2eb2cd931de8271e19b25a9d73ac06a76072ac3a27d596c7c1a08eb4f8196497a", + "152db5aff58daf4689189c702cd8caa937f4b1249aff914faef05ba75f3d643dd62f61f712d5800ee71bcd098a82c68a3d68aa30563f4f64df9370227ba19071", + "b83bb5fc16ebf0e40a2e4fdd7f370d778c0d2ee27922f3820142b2", + "0f825922d4edc90e1df2bf50617403abf264e0348e7aae2a770d3c1a64e30b1b575e55a035c00c37975a3fa102d4bc101206a9637a7bb0d9d8bd6b37f191b8e8" + }, + { /* i=4310 cDividendBits=3201 cDivisorBits=1588 */ + "74b8f2c80e531733c20e655881892b2f1666ec0e7b14afb0b36313b69d635915b8ddbd82e10c9e1f2f07bff62137d2a4df31f959ed04535382239efff0f774e96494ace292fb1e94dcf2444bafebe35da434dbabca36974a6a7ef7d01ce1fea85ae44c580bb9bb1adbfa8416c07e87205aadfc05a0372327341d64a94934b48f25dff8ce166980933086ba3c51bb32a2cdfb163c1db3ba3e1d33d03523f4df48e5851658d4c51f2ee73030bdb8ff16a0e19fc4c4cf6b53c7f31f6b6e4625d347dd104143e106b67c568d6e9972a5891c931e84dfe5b5874f96513e316d87106d1e17751c5713e2c8cd2870b8ab304c8797969b9f799810e48e3c4f6d05c9b5b368afbddf48f956626b57aa32b769b680adfa0c76e523bd6aeafcea762e4664f44d477a68c98b7647590f7ed5563be19d538fa726b513de9a5eb1f63299205cf13dc458c9a29a1a1680e050a828e143e72fffbac09f8ad8ecc02fe1053d704ee0b2068c625a7cccd8c0a5799f2f2dd913becc15f28d3b4d34d7d84bdcc641f30b3c7b540a5a60291f4a2ebf4bddb4f49b", + "0f1fad38dc1269b68224c92657cde759a72aae4888602b5dcd1cd950040193fdc00a179a379715814c1de76a85049d5ca393fb857027db68d85e23f9d1ffd0b06299103eb1ec359d5bc4f9881dbf9235255e0b066d49f6859b11c2fdc6cadc2e833874ffd0881e5335f4fdada16f6253c288a8ac4ade637faa7676898e1f07fea016694663f488e8fa3c8a42a5a964ecc482e265b8133b4be8a78ca9815521396734d17afe595a503d71519aef67e2c7ea33af68e8af20788513118087e8026d0f20bf12056445", + "07b7c3cfb75ccecfe5ab2acf9d1acc29354e2d046565b0e9091fb557f595b6225bfde1b32f4afe448c3e9279e7a7ebd4ce2450d4a7a09f31191921b0b9c7afd0e3af918c16a951ccf54b445da6f0cb69ba10f8c0527ebe05e2a672e987c65c9281951d5eba35cce874d44e16f3db1aa86374dc24bd74f8e0463709f81ae65c912a609b4d656904f8aeebee7fd35f0c34bb475928d11f800041554b1215eefbc8fcb2405a9b2277eed4e89327b0b84b53cb83acd46e6eae129645d1ae23ffd49d95a30e0620eb61bd3d13", + "038d2f8dd339abfd2ad657d2629460d578f696ae764c04b29dfdb200751d0a76040064e18bec76b82608ba062e78eee8366b4b3101153e3b5cdc7fbd9c6f4525d9b8def5f7739b862fc84ffac387f1f97d6b6436787602b27fb4d96615622337f3df8876b42aa8fc7ba5ef7920f02fb1679d0d32aade1430a9eaf62a25a9dee3e375e7b4edf1e206b5c23fd152e2d486a07ff8d089047f1f88e1b27cf786c35721a5753d4aff45212e3c927604cb33c2c810a72015481c98e2cda4c156732fad43c5821279127c" + }, + { /* i=4311 cDividendBits=3708 cDivisorBits=762 */ + "0610d9429eba2c34680d83d33893f07a6710a6169e13f9020d4fbb85eeb6fa72300301e3e67c67581b9379834ebe41bc33a696c6bf1c7bf387ee578689265273cea79f61b22fc18f1e7ce98c2765239e009e995f33ae7bf770283149a61a50c2e8865aad2c143e9abb2a12eff14f915e822140148d86deacbe1b9a3b0597ee38fd6b540835b8e14b67309602252f9e0ce840557bc493490933cc0bb0aca0fc967b74b10d01dfabe91a31d6665526254f38cfa6e36c33855f278c7afc6822cd18b6b88d4089d4bf890fba815aef48c845ea1b6aa4e273a02fe54bbf685c31c58f34bb0e999d4400395e11b78a3a246804e4093552d747cd0420af0135e69271b249d8552cf57d0dc15d518ee24994d0e41ec21770189489e6cdc8396edf57c9021670ec6f9c66c601997d145f302bc3ccbb2de35c9fc0ef4f8ea65e813c2af62042582469958e88db48754781514f4f48629d3e722d7a3defc34efba5ca9e01980ad47c225d833e5ac59e8941a15f7b6bec592f5f4c748a2e5322461293934bf2e4b1d30607d6118f79b7b7c18a2b05c11c473a874472512336a8b39c6fea5ae23686d7921dcc7565963e010c3aa64300948854ad32673a2625cb0173fbd46d95e7ec4bc953009dd3805b94da30651608", + "033fa9790c50d506aea6f26fe1bef60ab499cecc8b173ab75d1d18194a3e221fd1eef729bb1d12b6ef615e5ede06e0f3c5331352e1fbf46e53912c5069d2967bbf05c49d6e2c31cc8d5ca402d5e11410db616b9c7c860d938622886be3f02200", + "01ddfe6804df5396e23862080f17a115af412a698789dd25df3069d66ef5d6f89e4990c52868a9c19d5d0c9d094e3b21f7861199305977c7794e9072df2204ecc007f1bf46895e6eece5c6603e2a55396eb3dba5409fe4ac1a97e65fd72e9471f1ca0c7a23040404c8cb92edd3427245222962e5914bda48d5eb3d17746af9fea45c331bf16675810929db7fb39a43e8d47b9432976a56c8c84a430a181fcee5ea88031fb15d44a6b39fe6a1ef8de90e9c172d2ae6f29cb23288ff22c9acdc0f79643cbda1fdb9f3d36898e8ee5a99135e5ed4f7c448dc31151664c94b509eb5287df41c6fa29643f7063d1cba3831d02976dd5aa1556351770373fbab5535300bc1e2ab76a0087bb22a5e828d998bd2ea08de2d95ae0a2a662333ca41d3a704b5428652973fac04bbc88df20b7df13a3a5dafe25ace0e6890d980b8536f035f8301b432739445e3891a31c4ead8a2f09f149bd13b1152009130e6f43bf9fb0be3ab918b058d1d4f65ba7656f5e750204b", + "01a48437e3c8f0a29721bc4d30aebac765bd426f5f009d4ca1c44cd362262c1c64a37e81261cd43babd4f71025ba78bb26611a46fa75ce6b79e0d1be56dd21374388d441882eab0805234f51f5fea1306cb7001d99715dbb6a8ead07c4cb2008" + }, + { /* i=4312 cDividendBits=3665 cDivisorBits=2957 */ + "7dbcfec82d1cfad9104d6e4bd311189634db8d235fedbd6f51f8ae06c05a745bdf3743dd36d993ef89066070045d0ef2bbb410218f450971efce20b22bc0b9feec132790613b93d8291b82f9b033cfc119fe58ef4f8d681ab45b5e46d4057baf8b5437881d2c230ecf62a3aee857230ed0e36a38bbca34c832eeb0480def038f01fbcfbf8ed41a3b7171882059cd8ee121e052db20f80fb944970a4806505e628d1fc2e056ccf9bab5e64ccfa5e1881d46091eb49416f19028cd1d4394e6230529bf6698f9cc17d722f8c835b30c6cd559c947cb7e58af84dc371f819936d13e86ff6fce79726df9f89b97f47468772168ea4be5c95166ff928b1975708fea564c55fce8001f2993fda54e9bc28445c93a202bc14aabc363dce0e087534b7e4ca4cd8b4d321661a6c3a4f50181bc3a521c22ad04d5b4ba44ebd80f8fd4d46be861b44d34e35c5dd53b5fc32611b4d9ee75f15e54627699a0632d917e41dcc78244b3b5911d3bf6b3477a066eaeeb4ff400664579861bf43722ccb86d4febfbbe11eb931061a3b7453b4feb4e348e19066378a1ac65b1c60d3364649809f75f4079e66473c83101fecaf48bff50f47658c23705c72162fb110c694cdbeb7002a15f96966e30a9557d63a0", + "14830d2910addd1d66e63cc62d83dfda405519cd586da0c005d6a74a4a6eb6f9244a4a0e01cea42cf14fba46282e331dfc3c4b20e7ce09e933a49513fbfcc7249ff5c541cc58c6528af3eea8b3981c18a34d39c076aa0bfc36ca941f237cfac444b2abb0ced356fe877833f50060f2bfa973f3c9e5993e973a0320ea150930cefb59f080c0741fd00a9ad920fb17c0047bf4cfeb9684dd9635cf519ddb85735561cd93a46359999196ea2f06661de4a0b279d5f1dd71ddd8de32178f2ffb2a8306a3c37752c772a86db9acbfb4b9898d688981f32b2a58db7e854584d52631b0dad43e4e85122bc1f88b33596d552b6ad5541ce9b9c79ee05f9d6fa10c9cb81b358708bb3922d505bb61ab71780a86e947632adda9de1d0b9a00e8f4278666be099d7b9e730244385ed1cc7671f66dbef2511bd5be8833e00d648f69cde9831bab9e1387ab82d4461376f1279e79c34eee61d0fb9ac35cc7a468197e33236077d9203752eb03a2fa04a63a6b6e9c07018c52", + "0621484e302ee2ba29e8291d899b0c9150dbc14324e00915734d485c2966b9536ee9552c6b09f08d97d2f36868b99a5b3e92b6f664d05dc1a25a392a78b9fc266b06ed1938e615cfcdec31b12df8d75ab258cf423272888389", + "0550f70bd8e15bf8a4bed599a06344b7d0d05bb9ea78bdc3e50542c5ddf7da4e786df37756ce98197a5287aa7e5d164804feeb2852ed8f83dba2b07183f87b2a6d912c686fd8e5372348c13285dca00ef278620d7fa846a126926a437d7277d4af2b1af72c6b45a78a3e5491cd9743b865f1e668b7ac86d9326ecd26e2d91e3434b048df3d08bd8c7eb8810d8034160ac0fa7974f205007b24bde4928321366ca7b07c38caa93a7bcfb89c08fea2b91878273b7810f0346759fca5df9b70ed84f2b68a70b83708f4031ad24b7fd6968a86c8df7fee0374954e51f121315c0097d3e6000c377f04df490ebb036551d97c4af3d5cb894537d645dfc39f621d838394bb15ccdbad7c2d8dd3d3059358db14125580e2eb8714fefdecfa3ce2610ee3062f0fcaba94ef722ed921ddb56100b9132c793d6362e958bb1fd96c1f2b906ca665e3ddeb2050d5bb3008c5b5adc3647eb843f32f107e99a358ec4cf3271c88ea9469cbef2e7ac8869fb08b3240bb4b55be" + }, + { /* i=4313 cDividendBits=3051 cDivisorBits=2533 */ + "046e1d5004c8e96f84bd7c8e8850cb2e330dc7f16f44cabd30aec7502f0b5bdf885f0f64057d0a92cb0d553517147ff7c9ab22b89f52f2657dbfa8fbdec0f6fae9fb5368fc2c234944ab7073259dee75209a9c923936bddf34a52f915209731cfda09872440f083ff6d2d1e3f6becf77178e5b12184976e14f0f93e341ff6d836de8d645461a795ac6b0f4709e12b6f004bee4dc98f3a97e696c80f2b92a9b442b8dbcf13cbee52769e3c4ff2955af672f99aa6c1ef2cc7a6a130cc84a6efb2752750e169e93e21dda57429026f3e8ae3775859880e6c593639904ef8acebfc9b021e034ec575a0b3266f413e9c2b8cff6dd398bcebd10f25d35f8d95ceb111a7e9721d3a07694bfea499d1f8b2953a4af8f54b585d2fb9bfb247dbb6cc19340e7d3bf51cb6cac9760fd16a991f9bf37412e02e98f986a012f98ff14ab60cc0659cc533d20515d342d433268a09e0ab2b7f97cbfe6966fd694eaad7d47de1364db77b6737189a1531f58c18ab93f4daf2fb9255a3e28a01808520a25418d", + "1842565b89a5bafda4edf2db7b33c06b566c9598e24e2d775bd577a37c6230b4532af7a7548665a6c894263a2007a6ebb067b64d6461c4432057f8d9724ff953064e3a5b27ecf2ab2525ece793585365bb0445ca8dcd4bbe88416b7d883ad8dd538a348e51502aa618a93b76ffa502a37f2030203036956c9679c12b39658408f6d87235dbbc6903c76473d4e37e269a6e76d7f4f22054057bb504db48ed2eb28e4e05a211845341e4cc9f9e09edd38747e8de172a968050918aaabcb03bf2a163455b25d5f0a8ffb709dd8bef0b7a176d170cde212cd875ee0e875e1bf9f4374b8d0c410e98a30ad34f505905c4dfb1ac726d2024b09a71ca145e962bcc906fdde86ca381d38ee6f2f32254453ff9dddf54999451c6d342a42a98a61807816ed4299e11c92dbeb37db0ba1ded993e7f4fa1fcacdeb4b0acb5a50025f4", + "2ec00071fe7e32a539b3687af68cb17df9b51ec1042cc35b50dae18b84d9ba47d8b946c3ce8b6e5babc97f922dce2a12fba8f2d9cd1c06f72efd243bd59c3cc4c3", + "101ab8cffdeeb15c4aa2936cb1552e37e036979d7b9307017ca6bc045857b34ad3aae46448b4809997492078604783ddb05298f720d75dc3062d769450eda419b955c938701d63882dd1b65fe1bb26239117fab952f18d5013c79cb7999c57e08beba38b06d8418d2b061c09c45ae030306c8b8b7618be686fa32f93ccfa374dd0aad1934fe4ccf4813aa1e9d60fc1954e848e8f87e3ce15298036027a7c36cf3752ca618d0b48b7d5218359534806a37008b059ee5903699f8e25d1fbf65a0f6fca21175fc220bf5b201e48f50262ee44aa6f35d8a9ce35bdb3c74f742f807c034cd34d050d4030a7aebce3817788c3be71fa5a326771b109a9a85071c96d213e1baa29e651968753b91928a743a3c1a92d15eba874cfcb4084f35ad536a632f9665b6ae895972162be4506c0d6a1bb9fd872e3fdc1fbd473a8c988b1" + }, + { /* i=4314 cDividendBits=2360 cDivisorBits=401 */ + "9017cc95eaf45b3efbaaa215e7a7f865adef51d1284ecfd1f012d231da35ae405c16113dfa6146062fa3de804f01e5db368335536552d26bb908f3d04203491b68a93b058f99bcd7a8a403891b9b76cbc34a715421d6be3b5d8565aa36d0a76f471c61f8818c10c14ea128b0326a8ab6f97a0f4166f2b70ad619c146378619b8977f23409a3311feceae8301a81368f8a656307732cfdaf8b8923b6fb18327a0cbe00b6921e5304ecd30992f21fa7ed331364030e79b86ddfd4df60c653fb14b925277f7e47d90a0969251edee432af5b21884b91f3aa4a46af1587cbe23f41e481f7d8c5981c5a3fa2b4702e51be58463815caecba11c32a8d2fd5fa24078ca21f8a5e3d9bd916e32e50370c2a9b6bb8df1f9f5dd51bb3b385d894146393b880cb0d494e57ed3", + "01a0d15f6b5e0075f257e2b204ebf13b1f00f9c97fc8b3e1646d97e534d5c49f37378b0311b5da070283285181a1fa56c1ec16", + "587fa48c5dd0896d4061461e3b0b3be90b0bccf30fb08c4feb19610ff49f41cc97202d77f128c63215f45702612cb50c61657fcfd4e9fdef184a8ca4baf15baaa31baba293d4e53b32f08a14c1b8706be2af54900186cc5266bd281bc02bbc6111b08034b67adabf8767b7f55f92e931be31cbab45339acd2865c34786d4d4fce0b523d4d39c1cbe3cc25b4f16d1bd0cbf4169f112e25de40698ae041bd2a708e31530a81c8ea01b8078a5a507e740f47eb537c33deb192532b1af839380aa1fb47a2613474d5e338e264103fafc0e52e2e886eb9d9df20a1a326763b896cd5a5aad8aafc953d57a57b17249f45b75c6c53e9d2b45", + "dd689c3f10441c9aa66445bd99d76bf09057b5a1b4adbc8366f8214e7aa275f6eae527ca2cfd68dc92ae5a7b1ebf827b2ae5" + }, + { /* i=4315 cDividendBits=719 cDivisorBits=101 */ + "3ed81dde78389748a2c2bbd163342e2da168212a0844a3fc33fc5df88cc9b6927439095a067c0632bceb85e8cac4306b00f1f13b98ec969ade407d217bd91627eba98a1c1d346696b9ab73f0bbf58ce64ce89a2bbffb038e49dd", + "12617df3c0eec67dcf14d7f3f5", + "036b44226e595f1d2673cdc71ecac569210eb2fd40037a44a2c90f7510ae1bd4239f9b39f255e6173156f79a62a2d3e7cada782e84d9d963a50e3f23ad198808e896fd69085193daec6cd2ef1e35", + "7acbe76447450c92a8871224" + }, + { /* i=4316 cDividendBits=1670 cDivisorBits=387 */ + "0cb6308d644a86a96ec0ef30949eab195e3ce1fcacb0564aea375313b0cd94bfd88ebca5d0562b24b5315c3a44c63ea496453c87414d6f541090e0d3b72c900289013bc80dbdab35b2b7dc9f9a2a3a67221f847ea3899e588b2885e31a45c4d6685fbd6d60f360881ef9216dac6395dadb9ef8f2c526eabf013327770f59af38fbf6eacd8174d59661cd8146ad22915ea196446794e3df16808dd4612497096e1ba80790c4a4746f9c1b9dfd7a91a75156d06625de358527d59f8c91086bcbfe02304327da30fdb5486e0a98dad9a91c4c", + "0668eb3d2caa2441bb2aeb87c85fb1b14099c5d5f0740ed752e20fee4bebad80bbb1d24873720b09764b89277229815110", + "01fbafc5936da8017a3a4478eba286e8582a6919d062803cc1bae2e47c308d29eae76def267b2a07e111e007161146542ebeb56d12a96154e262975285e405957f79ffe5c3adc5300233e0cc8cb44f304db7e3a16ffaba7462bef4fe798c59ffbbaa6f5f8d333c711c82ce28a4081599248553c7b82ae78078af1e6b0fb2fb5b05bd02d92df8f0c9b636942c525081c5c491bc5286c8343899c77ebe5c1717f065", + "0355666f4e17961fa2991585191ddbf4c7e6f27ffafd55adce7b5ba001d31298d922358c86371028e00473a740853520fc" + }, + { /* i=4317 cDividendBits=1468 cDivisorBits=1432 */ + "06914c6501b12b49fe36e825029ed1ed5a8b6ed30d05c59191a3a6077960b46dd71bc974011c7c6a96a5cd08cbc5f6a61c9979f9f928860b18604dd8944ba352c6e6146778f998a5a3f33ad4c88f93ab0751b4f7b2703188dd078704592c639f3397609d4a841a997c760bd872beec0d382ac4766a2c7a0f7882aadc5e4cc2ea90046e86fc958bb6d38f770d0d44d0a206d974fa577016269806aedc23aff8ee1e23e64157334254b576b2a12e882c1074381a3120004a34", + "0916903026f895ece621fee6ce380e7fcd24b437140918da52fd1578004401a3685000766f85c96054f1f4dd61d0b34921defe2e63d007e1083e58d24eecc19c7892648a1d862d734c4d8971247d4447ecc4789dc4afe0a20d9ceea64a9c19e32549672d2f0bccc7c367af84f5daa72d18c42388af3bf7c9fd3da59c9d4ce85f62d205bdef61b8e20997c4cd314d2661e519f31166202904f6567fe054efbac6184eb69faac13429277ebd8b77f12510a78a0d", + "b8ffcd3000", + "0615ae032a6c5dd7007f417faca67f18906145d9e9971c9d0270cc404d3842cb9c4fe6b74b61f1168056107fb5485385dac58933fb9a1b7943c9b311f2286e38384bc983b4a5172908d2612a55407c6e7de8cde9f748e1e35ff6992988bae4454f3b83a7d5847a619a7d4a1793aa4311d7b546979fe5c1fd0f54f6757a172e0a5bb02f1023275c34640a3e6878029bfb31bc9744267898119071d0cbd575fb146d34b7711686ce3cda2705f850b50d36b4da34" + }, + { /* i=4318 cDividendBits=22 cDivisorBits=12 */ + "3a898f", + "0f1b", + "03e0", + "ef" + }, + { /* i=4319 cDividendBits=2725 cDivisorBits=1614 */ + "1e7268f43fbd2f1967f6325856cdd123fc2e482cf45ae33fdb8a749e42b57fdbc5390200fe19276c7a941c4610d2425b7bfbf3d0e5d9674c406e05d7edf84afb96141e1ddd1cea0a8790254df92a1ad185896e19ba3ed53f3de15508ab5e7171c7bea9b46802114e766062d7e7722c3d12a599164e8fe86bcc814886c21594b93d658705d4df405ac33bd2ef4ac0d2c8354ebeb6853b7827b869a1dcf1566b129bc21c52f3962e01ca47eccb24b25884a4fdb5eaee344f54201b01ff1ba73f21f3bd671f52a76af23bcaba18e6cd14df5d8c0cb3cb3fb419dad3b32b953531377e92237cd7a86b6d55c0e3bd9d9519bab9260c306f4bd3bc66c954c0493aab0643d59ab09e4c8b23413d7747c58394231742f34b2fd0a20ed7ff5c3d77c59d0512f61ceeff3b16aea9f9614279572aa7342f0eb70e43a6c64ce1adb18bcf8023afb33d51409d7ec79349ee67dc0913076d75bcb709", + "38ccc5568e5aecf26d8095e6d68303284872656e796e1fe8833b8f15eb06fc088ec11a2492271871eaa9862fec69e8043e23aed7bc46bc946f913ada6ab13dcd595d42bdf98e6e5bc52d0db088419e34e557b845b1b10a1004a4f6d61e1853e989e0d399118a2197e20be3cbf939b123ffc76a48e1ddda23633eeac43e862024abebcd626a2daaaa668b39a0621433c1c2b4addbd5bc03ac2e97b2fb467504e992a4b00a681b0d13b099c6441c883e2555c0377bcee5c4c7d84a09a8d7980a808f532dc1409561b3c561", + "8939ce370b3f04a54fc35976987da2b41b992bcd024c891c306c264a1caf95fbef4c893329a25bc1e91db03672f5eade7a4649e8befc20df2ba507a7b5e3f85474e8d04265a455f4077ec8b33d13a4837b6d36a6dded79c0105373438abeab04dd4ad042dd238b16861bfc21c4af00092730cf90626104781e4a15de1b15337bab33ea4bc2672df70f2643", + "2b469170517733e33f4061ed75bf2d19311542bb88a06111f5506237d2cd22926d851c33d79118ece4da77bd8e5fc6b0f6e9aed3be053646d27e582c72724a82f07f4b67a778d25b0094b9872b383eac68048336d0f25608737e81f8ebeec33228c8d24a3e186ac1c4a78c23386214eb97c691d58f3bfadf4a864d4d5a741e0f02f5617f5e23c40666c9f875cdde32dc7424e93d5792036afd952ecb88ee44704d424f006e0d135e8545cef2e3dd2454d02f1eb5fad10f66030cc31678c1bbc5815ef65e0dce0cb4a8a6" + }, + { /* i=4320 cDividendBits=2749 cDivisorBits=1351 */ + "02d58bfa19f758c241ef0cebc6ac94c288d086beedf79d8bc16983ee8d4d627142c62ecf78108627b36ded1e96e627d515e13c3b20a130c7c72fff813ed7148b3bc727d56339e5cfe13d3ee7dff9be34b858223af2ddbcd2cc6f77c92e4a3e16ff27097e6eb50a829c76cbaa4d6e96e4e203e81931cc313ef9c33776a042af4379cc6d561e7bf973aabaf5d7f8dc83c1ebd6b7c5cce11f7328ad21f2d5c7086347d62ae6168bbed7b23fb180ad5855891b642375d3d5be968e8ce06c517e65d52adefd0d592cc4b39fd67557396a5ba9c223ee0b1979e4407514785383817e68e951a31b0f8b1a3192ffe5e3e40119eae9676469b1507df1ff5d3de2bd4a2f851454a896f62907fcce09e7fb19e9727439b42c6017f53b17ad19cfc2481a2bf225d7d4257f58191e6a5e0e22f95f44f9c3f88af19a5d21fe566d31a761211006fc089c71c1affe4dd3ed13e7c8fe9f735b436a25b13be7cb", + "63a85be45a31394f4ce5b820cf5695e7115d596124f7110c9a911e6aaa16ee9fc652d7254d6f9fb1c2c2a39a71f02cea2ed297a0e77f00916ebbc1cfd7d0110018fb36a46cd8dd14252f61b589b855f46fea2bcd13aee467942f009e10226e91d6ec9e6e5f6b47fc324d063ba318e4ea49d76840861da2759e8562f6f7d5217e94997161b1f8210029939eb36efda20e0c442e8369a677c65b537cbd0df1b5fb1a884b5f9fe7df2d3a", + "0747c7c714331a34da3b9ef170ddb549a7b40ccd39f737d45174195ad9799c33dd975a47e3cf644c9a2cf2978c7f47b81496be55aa05bd9194691466e5c2f8ffa1ab50d468b5905ba8f51c60af40e7e473a79cb461f030fc1f144b2ff237f271c146c5b4e8c794904fb40b3fb80e6931be682420a8d6263ffae4314f4cc64c192f0350693aaf0bb6178a715662ffa793ff1ffc818daf879a0a79a22874a0a1915cddf4b7af5527a3438ede651114aa", + "187f6bb9987aa2b04620d5626031c782241f8b61880417f827ea54927e3f9e50dbb5c69b7edb10b0cb55e7da39074102ebc7656915bb8dc4064bf67ee66776cbfe383c12a6d6f3bc9ac2c1b49265f97876688b0a4ef0665e75ca95be76169db533b67e8bd4e249423d51df122036c807a59a2b7fe9ae84a672092efb7d4056dc07cc3b34ad9b4da6d04aa7f09c5db59c20b3751fae0f4cd6882f5094dd4470751fe2d694e264a55747" + }, + { /* i=4321 cDividendBits=2546 cDivisorBits=376 */ + "02375fff9d32ca37c4b4b11d6c32fe5fcd01e79a713539a66f3ed03a9e882a45cf932716215e864391eaba8e4518516b6e3fe086378b7ac15d799bb032e7825002fe3a0fd7e2796a4f1326c99af8b43f2ba37e30b108809dc1f9278feec232b3adb01b967bbe91d83467e6db2ddb9bb874bb744f31cfc4d98dc88598e77655f4083464292be713a7f8b9d85ecdcdf5fbddcde27339165139c4b8d1f0070de81226726ed339f2844039c8441ac04ee739be02abf78c5361e8d0cde51b1771d27aa0f47dbb946fdd8c5fd2e2e71b8afccc2de6461f073e05f0f15cc5c10338d5afe6ec3eac9c3eebcdecedc5dde28883253bfea49f8e52a64b44ad69939b82fa83acbcf60bfebf12d7020e49a04c210da3a32566adf6e3fec911c7f4f72c54a90a47ecf73cb77ef7a6b4788ba35a7b08e81f2e6faf806855392b50c1f4646e0c", + "6b3b3c216c0b4d08dbd8779da67bbd458d8f54ba47ee4c59cb7a1ae1b670f0ca194a7560f0b8ef6fdeda7eb7ffeff7", + "054a875decd2b62aa8a1a689334c6b9fb75d69d585b804bf5a980aa1afd878fe0eb015f1d197668359b4a8d8a92feecb6c5fe6efb225e0606deb01679c1cbaf52bd119cfdc44cef4d6b4e463cd4811758e1146ae6f486fd09a82691fb0597e04db5601aa75b7c4475c6c059a8da720e7c16e556c62f7ee6e47a18a9949447fc823830bf85785ce3745d8bf772d53aa7f65bb67aac9a7aab73cf726571e7e4a545f57e661f7891341b1b36f944cd72dc83074853981e48685cb793ae0c83324137738a886a6c556813e5cea56d73e5a5e5c4eb28e6b6bf0ad63a21806fed2585de38491997928a8e7f38eba4b3f6e50c26d4a225bf1ffacbca257bf8d8147dc1bc647e539fbc6b037036af4238197d366", + "0e031c899818ed7d32789b2337a77eddd53e592ed07ed3763dd56515901e6a694e2a70ff35e29fe2d815f5aff13ca2" + }, + { /* i=4322 cDividendBits=99 cDivisorBits=90 */ + "07aa80c7d6a30c5b3e4f5dfb06", + "030bf4c7cc0e1756906169a4", + "0284", + "6d01394f99a57b1a503a76" + }, + { /* i=4323 cDividendBits=792 cDivisorBits=760 */ + "6d917dd33cf7588e7a4868b06e7d5a0ec672c3cf0c545bde088c228686f8967793baa31de21d61b6f91b8c70c9f0c5c200cd4721e7221f44e886788a1c220e09c9781e7421991cf8e31d204db378b512bf1748e7d0b6f5f200dc19a8e628b83306a29e", + "b22017acd4016c025fba0cf54057c5f687015c6ac7f594856d53a96a989e7e8bb75d23cb614cb39ee8d1a097fad11156ddb6a723348aded98f93002ad21fe56964f90c92d49d94ab83b73789af051dbdf6f1cdaa0d51d7a5e1e861ac847526", + "9d78735a", + "1c0422a7387165b1b7d6a261bd4e4e2d2aa68f4cf7e66d63b8e36687b83750041248c964a82e523c490a410581d236dff81cc0862a8ff08c4270b3f269df0d96d02c6dcc79c0b4e49e3c2768797071b6ae6fd48fbce95c07807bf2d4056142" + }, + { /* i=4324 cDividendBits=3447 cDivisorBits=1535 */ + "1305e00f0040897961b4776a56742290fb118d0babdb13afdc2cd6e82ae94111864ac1967a7ddf0c06371ef8996f25558347d2baf28d1ce344f93fb3865cd82f5a444b06006b72bbccafca5d0c45b5068beb2f095fb6b85f38f2d01a17055150929c0e9658071faaa15f932e26f531f9bcdcb7cc62a75e5b2e04211cd82a56669b0f247a8c8a98f5277368ac7fdd00f8de9e99500440fdb8eb5550ad1de285fbe1b31251f392d4a19aeea2fd18070af050eb5b7169d2cea808092ef3384585fdfbf48b36f6049792781d6d1a08478bf5b505b7d8ff15218b80e6f47f7e64a1f5548e41b8ef905888a0639c6fd5cc9b627ecaefe75a2c9a526374b412e8492c166a27e72eb898ae57c9b1e481f73374b4e2f9095ebfa0d46f3490f32a24ee40b01f881974c10d426ef0f286973c9705e9ee698543dcab1cfd2fc68987c5ad82e95f10b8c638a63acdc9821c78d366b74a46c2c81d639fde03bcb4baede5d4ff9261a9cd010751c9695d4e447e7c763e6cffe757c8d1dcc6d23b8791db68cbd24fcfe5604f7d6b6f39ff74b36756c0126124a103d173145d4b23b0a8166268332bccf1a49304002401c0d52bd910c0e4", + "39677ac7c08eedb7006a2159bf2b1231a8f9d2c21950cb0a254238da3eaaf46d75d393228ae9bb75762add6ea0a03e98d38c8b39c4f239b44677473b46ebbc6736a98f2ed904cb1fa69297f90c1c90cd1e5c94af697024367f5af36bfcdcf35f7e0cae95ffd74c50be65cc7ba5ee130a62a78838fc1c07ac462e73bd7885ae9b91afa3ef3b5d53a7dc0d3be70058b4327afa85d23ece233ae5dc4e735bb5b92a82fd9a42fe28616b1db33bee536374983d34a5dcf3938a817846fc87fcf5f2c8", + "54d5b562b8d53c9fa46db2f6c6d20f138d357900e96fdae105481892869ede4b03bc87688d4d687a439bd5d41b2ac92f893867cedd9cce6a3afe3ae6c20d0fe7b6db0518c43b448d9ea6f754f59507b2928874e3157e67731cc5b91e1da4181e0b0a4b16cca550a987c2de457b9ca3cc72b7d0a0b2264edf06cb34744633ba22aba30e260558d94bd7132ca027bd50d0ed580195dc728da8d58c25ef9b02d92ef57e6916185568bced5e09725357aa26f62004a09dc280f3159b92c5bb2ea0831218f403dadb7c9734f58d41600775566bf9c63148a76c0f3f25ec3c79edd1826b9d15ddad260035aecc19caad13ac", + "2e58f2ab38e998ef52668fc09f89f7c47c0ff960bf6cfbefe519564ffd3167c007813fe2c89561f218721c6a47b04e6f56b068bb426d97957fdd49de3020576a8940e5fa0cb85fb9cc3bd6e0b9d612da9c73e88dfd830f843b44d809004c514434f96444321cb46263f3eccb2d33af8cac63278017537f038f90bd801a20bfaa79bcc78dd14203d5aa210e24c6e878477011a11dc100ee66c7e7205a57a55ddc4154ca51d8f8741e36d8dbe93bd99ccb3180e958df0b78b3da64f8b8c1a4ca84" + }, + { /* i=4325 cDividendBits=2797 cDivisorBits=244 */ + "0f73385d1ea135abcaba94c31933a4d8a01d4ca3c0c51c7d647e10e1080ee9f5b1533a396a38a557894840e37abcf2c0b1fdd5a229ce6ef21855af584ca1d8e131376d65ff5751d45f7f7f73c2c13c2d0c7465a55ebac08ee78d32c4644518b96e718b716d46b53c64dd9b7a584c1b719bffe3611be0d712d632d85ad8faff9024a06790aceb74f8bb9fd5061287dabe1e9f28e4ba3b2e1097aec5befd7bd6b986ba1790c86863c9dee4ae52a0e8a96ec5411aaf1b83e5013f86cfabcd43c18167d5322c34f11526d57299410753a0698bddea53b6003b3c32bfe28ec0371ce418c58094f79cef868dc7c37345eb2caaf707030b307a7b6ee73927037e6ff3b6454b2ed4da5765d46dedb95f15822cb32ea7d31dcf192facde3fe1dd350088febb84de03748def39f5504bf7ecbe35a9b406fd6749d67998c5b008c03b2217ea6a2908873d2ed030d957b48f2bc274cbaf927028595ec35a5e80e903a5e4", + "0107621239ae867515710e3014d0fd477f6ece4401075c027eb77533130adb", + "0f045930f2c6b201625e0dc39ac7efe980cddd0a506673b321117f310807be0095056aa95fdd1edeeec6850d71d7d67f7a6cd554b7aef6e498ecdcb285df2d68bad641b427d8130bbd3a79e1af22651e2f63abcede8c857186afae61159b94452f8bfe6dd25f822c3e7dc5be3931b441efba4695414d26996bab59bc68b62c4d3c8a92f7174feb8e3fb22b0db640f6d9f274b2443d86702b7a54c684ae45e04a3925ece80b7e7a7bef299c4424034ba08f30f8399406c2cc3f7a515f2d3d5967eced15482f3e8e2ad374c49b6ad0e77baa732e8eee1701287fc86b4c9c52c22d49fa9c864d39f5dce315dc3a06ab3a2089504dca126cb6a929a2bb47e2144bc1f67c8254b831530ee7b7ba9ae9ec031613c0a5bc916b57e33c12d5de52039ae306348eaff277d363a8cd7b171cc007c5e1b3bbab82b4c871b1bee6d99b619a78", + "7639f9f27eb3028903bb0149fe0f0f328f2f06781e1c03d4076acd93d13c" + }, + { /* i=4326 cDividendBits=1639 cDivisorBits=507 */ + "6bd715eeff6b12e5ea256833a438e7f34ed0e582d97e15c7c16f727658665ce8e79d95899d42164c17da2d1d4aced1eb51f73850a42e0e904e5c88a89c9ce7b885c2e973fd0526e6b5f4dd38cecd4adb0408cda705ee3a3f8949006a20e2bbe3f5e3548a1e7338ae285e8c85bedf14adc23f2b379e57944f3afe1ed73b7d5e1408102b1edd8e54f43f2ae28978291743d230556ccae6e909e8effb122cc9484bdfe4dd1958c1b9ba4acf3d2cd2d2b7e42cf1705de72ff6964df30eda13ead665411fde24fb158272da042e5806", + "07dd1dfb0986c27c56d89830c20bd3fb637af1a5cfd60bfc0191a1891fe6419731ff83a257fd7d6f635f7d34ecc733671213b9a5218eba5df2ca8cfd99ac4910", + "0db6ae951f809648840281fb8bcabea9aa90908399ca53e16b0f03b2c1ca18a1bb2b8098da6a74fc07fa3b85166c70045cbee864e1aa588904c4652f44f6bbde2423962aa3f3ed7d5f2e3aeca033d61ee903ec892921cf84a3aa5f73751b6f6cd941c7af72b9db063b9de7018547cc49dab831519ca034ae506bd2f8ccd207fe2651e9cecb48c7037b27ceae313d", + "070c9c89d7c91598b36b281ff0f6c2271a7047a01aa26e8234af37919c2c42e36ff14ea7a6e65f162d9e9a8eb289fe10934e5b3040aa743714b168ade344df36" + }, + { /* i=4327 cDividendBits=3450 cDivisorBits=1621 */ + "564e2e49116b499f479dc2feb19b9f5aa71c0e484a91cc999156154c798e7406a513866f778849e8481a4acd53d3f006bde11886bdfdf3ee77343b20692401cc7c8fea4c672f734f21ed21fa37abc9e738728da72648ec1b514a765bb7a519556c889b5f9e7622d5f9c11fe417a22f2b2f1f2eb5692719c96e7bcfb2044530cb46c6ea3becf499f688c6e8943279367d3c88b7d0fb9e3f0539fd25eecb3ebc07d2995cc389b8f94f8deb52689670b532e83553df2a3d3ddb85106a1db3685ecdade559bd78e20c4c4ab36f4c2ff65faff198374d2c0b3cba0c413b43d9fa48d1c24be6675ef2565c2a3581ea13f23352bf2a51236f8ac1e1d78b5f9772c36b6af4f093fa706b1fc979208ddcc106967a56e8442fd18c9b411cae5053545ea8fdd631e4c0980d11a933bb49acd6fefe8b320df35e13c6865a6c230bdee93a6159dc1398e4821700d411f274efcacca8156162fd005d2b42c16dde78c6aaa514f3fd62fad06fb4eab32e8a85da9c27596123a99f5a5d718ab76844cba942e9306fec01a29fd1aa0d78779f4909e96ab38785742da020b3db4eaa4decd6267f57626b0a660c2f18f0b371c70a56700bbd", + "072164c003a7c185f7fbaf3165ca9fa42dedbe1958858c4c836eca3f2cb29d0b96409cca5d5fbcfd1032f9b8ee1b188645fcf4aee25b8b34cac449644943c5d2d1b52042cd6010e530f4170e05568ce0528462ec10f74a8c2ba2f4ceaaddaf3fa80b09e0be8a69ca00a7cbdb1b7fb6af8699fd2f85ae26ee8f63d024d4c9db8438de8f1d6f127f6fc5ca203805aea0a05ae15c796e0a822b9f1aadc34b9b5263e3d73c382ce9ad5e2c4948573ce851bffa1e5b10487cacb786b7459f60932d0afdfa79a070a19473967182", + "0c1a92004583f5f2340cc5f389bab6fe57bddc75887952f7d4d1cb64619fa2810f08689534c0948e446b66d6babfa766f55d141f85448761d867d836ccf2d4709d619a5203ada589c96d341834352264b2b04e6fc1fdb5df218df803508b76338fbfeefae0201f2214497b0cfc234136b2ac3eac601d707c355c38e0405cbb220d9773b231845bfb5388cc8aad76d179da7e96b050ad4e8305e0ad6eb22cfbcc7e7baf4b733c81b39a8f64f18d578379f04a9571ce04037f0cf0110ff3f04a7062dae9b99b562e95b312fa4d3cc67f1d1cc9b32f4512596468434bc9187a79bba684c9bf1c", + "01cc9f6965c83746c3d3ad5dbaa3eb0ad7689a851742d24917bf592e1f81d5be307fce1b5575d7b46743f0b011e91995ceb5904f8494208cd32777962e607030940f70525acd14cf5e68e77c19dc35f491697ddad02927dc8197596719843b33e4c41220c6e05afc3131f26c8c9586a7d63cb5bad4151acb7a06354f090335ff1481110d20e352432dc7d5fce9c410781fcb67d9265ce23c96d284d6cb0705e705d82c4b37e677ca71f752a9abcf12f1c9186b4cbc7c4ce12eb1031f98242350ada81a4280749e4c39a385" + }, + { /* i=4328 cDividendBits=1462 cDivisorBits=1055 */ + "348f14acb5bb98bb9b845b5d6fece865d0e75c0cdebca0368d423aedfe1aed7e81d78e120386b6e63c923911c10bf0e92ce213ad62e0b09d3f7cb90262fd7da14302d1daceca8f7509e59a69ed258f89bff542d23ab9005a35c339c7479c88dd62a63a667f2f4cbfb80b943bdf68336ebe6c5222dd12b785248f4bff1a4164d0c39a33072e12b0db3101dc829c2d4eacaed6aabbac63bdda2be192617b0ff0fe288c0ae3fdf15bd00bb23716e5bfdb117f3ce96e26c3be", + "04153e9ceff2018ad605b0e55d262642ce7ceed081f7df821fc99701667ab9efd27920197235af106ccc16f48b5a586e8074a039111f00027141dc2030ac1da0cb3773d96f92daa5b4b67a022ff0fb82fc98a51fe72ff099177bcc14dce3cd50e7a4dc302a098524df6fddc27304616ca55daccb2c321dc1eaab3dca02187c86aa32fe95", + "0cdf66cfa4e215b4bc37d2c892d95e2d0f8ab909fb6e049d82031888c410292b0d0eb756b1dab44c1bca5187ebe5c62dab496ce2", + "ac092faf7ab5a06a932796ab43eaf3d041240c848afc888aee9545e7b5e9a7a4c1b3816cc6bcf22a3d3afb963907b60e8ab12a11a9adbae098e08de600f33dee83a82618c1bee0d033cc05b41491cb48560ee7c0c920bd8d29107a02e6063ae700bd2a16769f8d0b3694ef9a0fedff2350a8e5b9229062525286468f1ae7708a3e2834" + }, + { /* i=4329 cDividendBits=2730 cDivisorBits=1526 */ + "024b2c6ed7f718f89144e8aa43ddaf8215f7ffd9c61ff39e004ff1e2279d197ccc23f0085eaf58246299dd2f44ca66e3083e11fd40b16f0fd675ab2637baafbb252739fd3e4c20e56a363d753be2fecc24c9de23f0b69fa897990fdd4f34ebc16cc3bf738fb0526a2abf575366ce79d5f0e16d53a7d614afae58abbbe5138a3f6dd8960c301f58e22d68ebc549e6cb43d402f4ac1a3978918b39c6639091b646d5affe2fca1d7773d07e46a46862e6c823470e7bb6c52febd3d374f15ecfac20b04ea0270bb6d4343eb2223017d15e1a64a56457cc46fcfae2580e3cdf8d0b3c7250b85e3d85fdd9bb3dd5e7f3efccfac37b7bed9e2d6b3d8c37062c8f73073570cadd3a77cd5efe3ac7f9afe045cd219d3c262cde41bdf59668d3bb9a5802793686a76ba8c1352e7618ddee33ec76c7aaa19852f966a95facc0c26b9abd363e6dfcffa735f704717430762b2938b77ad5e69989bda6", + "2c19f21c2951272251322e37b3560daf9081356452a5f11ad0338b2b8738b817e41fdcd7e5967532100e616414ab2ec6efeec3b169ef32072f5f45b5de1fb4105d622b06eecd98bd0aacd2f89e3f6b82dbe8ae38737a698d9874620db3e720aba3e40247dec40dc42b5ecbf500161fb3d4c59de634e56b951a9b1a051b8a0166ab1ca5e7ff96c522115d15addf8b421d17cd8d6a7539fae23b9b947f983ad5c7f932df1b22d1708f0ea985141b7ea3ddbe5b98355cf6ecd92a94b34593af3a", + "0d506e779c94a9c1119bf81641633dbc5c29f6cfa023c3f7008266b54946f5517ab897f047d1b01c4de8a6ce3154b8128fab6c1670a9e391ccf45131aa130a26931d445fb2897037ef7ae7535f9652aaecc486cfc5fd1a0c1935938b920fc8f067502c7d8b768e94bd73f62955fee068e9037acd591ddb056004b5b4d2927fc4b72a615786b11f111e078bbf661193d86c06dc864880d1", + "018f051d25e3b6ae7b471464a19353b40e5e3db2805afe7bc98076c875626be3655a5f4e77e722f04be343f67d3ddfc478ec926b6bb4383a429823fdf09037ffa43e361090482d0047433dc1e87ea0be38fc01642134225dc7bf5e57b9255fe64f2d380da0b172189789497deb7ad077ffb8950a21b3465ca2286b186b795c7f2e613eaba8078d163f773a1db30b3517001294fd64fddac9e7a84402509d8c0d2df9282f6446462cdcfc65115ee9ab9738ad27858f5b505b08fba7500aaf4c" + }, + { /* i=4330 cDividendBits=911 cDivisorBits=446 */ + "1776594544f126d96ff301d5757503d2167737d9d2d71fa5d225a4d50ad43443293c5e2ffbc12d7a5960f8bd12015c5112e09c045a52edc44f41dcbe367bbc962ee97ce99d03784338363b74cebce9f1b64ce49a2377173fa8b9f36256f27551a24cec39fb4f439bf68180eee70fb59ebdb4", + "11cb55a73695eedf27ccc519935b3a6dc181c66574f782f9b846d86aa050bbd6fd7b8f5daca81973fcbdba05c9d45b1d1708786874261ded", + "01518b3b27fcdd82b104bae6be4778a3130286adc10538c0679f76f3fa5bbd166ed226c042614d04f3178c56b6c7c89123eb05f5962c64f99768de", + "72d653dd058e356d7201e9efc67eacff20dde455ff03f80088ef3fd0955283c4e05b189a85f0e5a36734eb5fe5a47132300b20549d822e" + }, + { /* i=4331 cDividendBits=963 cDivisorBits=913 */ + "0164fec55e80636d0dcbfbdaeadddf55a517865d19878148e54d780c158e47916028b0cb06d08336b667822f78a68e33b61a889374e35f2492e675bf0e527dbdf0314839c18cf28a846e80869122b79ffb3f042c4c459dd427cf4d5102461bf3e339afd347e72af489b339627040706129848b0a9725905037", + "e591e2401c1ffef36ad45367b6bf996e2692cfc3ecfb9c9b1040c019862af52b35ba1819bfa71308e6400c4748156d1c155944f58486b69ef52c436af4d5ff18222d445c8fe8dc943aae246562cf310be4173f369c3ade6c7a669c4424315932e0c6ccf94206a11a36cf202b54e5e2b9e00e", + "018e187f0fe355", + "66eaf77f5563b7aa3df40a674b11bd4087d01f09f5cd4b4e794b6885ff44564a75b5d5fbb64733d6cefb13bd87c70d9f321b73ddee7cce9a6d14062ead9cada69c4a92f68ff39815ea40998a58b4b7af845c89616497915d4000da997000a49be1549aeffc3a2afcc72b292abddcf95a8191" + }, + { /* i=4332 cDividendBits=231 cDivisorBits=189 */ + "601a59197e73259aa0068ffc082efc50db63d3c5a8718473d137e5ab20", + "0710de11cc4c9d796b5934f2711e1615fe4d81bbabc64fc3", + "0d99d9066732", + "200ea6ff6549837196f5821c13e25fbc9ae83fb780a20a" + }, + { /* i=4333 cDividendBits=179 cDivisorBits=121 */ + "01d82bd136d222e9bfce7f0f301d74df6644c8130dbca6", + "01935b02222677d45203eb6f6ef49f22", + "012bacf69eb3017c", + "fd80c41ce8c6e7e57d79711f2b862e" + }, + { /* i=4334 cDividendBits=2499 cDivisorBits=1199 */ + "032fb09e5dea9a46b82119549361cc4b9eca73236effe6087a23da1b8dc7ba9b15a6fa74893e8d8a28c83e266c7476ee96e5de620db410952ce1a4be5543cbc6f145adb2c95a8ceb2c29eac059191cfecc1693252efca9cce2bd7341aefa7caf018a5b897603ce57ba6ca2e40ecfb5d6146618f8feb65c0c4ebf19c2e54a1b83e9a1c211507eacf4b692f9b759ce1271f2743c4bfa9c650e0418316356e76423ed31e1bbc06a96ad8da97ec80f4ab65d17dced31bdeb281c8db55c93601c5c5d62a226ec403884839d30e0d3c7b4b67d094015a4c5f9f6f74912abc91c600c36777c3a2b2db07b3899e6b861948694e02af2c806bc85c2a423cce34d05b560959dd4f1ace39fa6c83df7c2a9db1555344e32f66250d1b17105c4b5d469baa247fde78b49b52566b99f4f22facabb8ef2a1dfec253db61c1009", + "2ef87b95ff0410be538c45f4bf5f09eea145deeb6a7da165d607c02b8d0679fc7982cdbd21b427cc2bc4aa69d081514cd72f451430932ba225f589ffa42e271d289bc0dfdca4c36a99014dccb493905f1d2267a0b931f0f7d377c471039bf4484e141a9430c9e85d4863f8a10b33b9afade63ffa877d1cadd80098210b1ea3060647bcf89e53df2bfd1fd07e0686f14f1594286d9f5e", + "115daf2f22d1a10722e3d3ff922a00a6eb7ced46f3709972db782d71e35cc56c68799cb5e2844b7ad308bf68185d203c7290049212392f6cf0e2be03e8b32d5c060936d7b7b531c746ae913cb82cc00f616b4d4edcfbe86a7d84857d55e060544e7b6941b2f52dbe1075d13038c2cda1c2bd6e3f7dd766e0d0cb81696c97f9093e2616ccf8437696024b892122908967f4b87d665e72e044f426eefadc9afd887d31aa", + "0445b4c780cc1b6b6565184cfc0eee257710950705b06e07c83eb4af24ef0c82de18b455a9de63b302fd5c4e4f1e9225ea645123c7614137ddb5fdd71cf61537d24b77809424ebf80646b5a7262e4e3cd15ab82bc42c60f5f901a1d1b4bce1eb506bf4da930dec9c131e70251fe7b3db4e1fab3b23be9283f398aae103ab2b8260666af6ca0bc700cd63466d94c898776f0720e93d9d" + }, + { /* i=4335 cDividendBits=1585 cDivisorBits=1577 */ + "df1ba8369b15c0e1a6416842e4e052c1c89683634c3648187e0fa82cf97ff2881eeba3d6af839fe18ee96e357804368233941329a1d0f26228cfff5c63d5c904633540fd44b689fe509e16fb6a85d2e879bb755c266e05550691f0694fd902a2006c3febe3ba52cc741e0c80d3d5f997f6faa6269bc1385fe2012bde42138871e4cb78a735db7301f1904a0a497b3f49e09c3dedb2a07494d3259afbd78ea68e612933058f8f6feff2157ee073dcf57b25e81d6b64d0bc3cba56feb7fae6cff680ea7f20a2aa", + "3c23792905769fa573ba7ba91407dc955d683211a5c5ead46a9f74b44f9724775fd51347bdbcfb89ceef2726aedf84a52ec4e69580a0ad1c3ed4af1450b3f300257bdf5f81da791fc068f411d9fc60bf7da84e27374f65850756522e9216dc6b4e126a6c6ee84949e94ad52448cb0c62c4ae4ce2797ed94315437f761eda4318d405c60a599ef66defc18803487a1896c6d3bf7eff7c7e03bdde094baae13a4a36b263c2203584561f2c41601d463cc5f28a84b80c726a488af493ccd4c94163f536c61ddb", + "03b5", + "2c281189d50311503f1bd91d9f2e0c155341c7e0af98930ece8c8c8e74a85998aac35dbd260f6bb2cce21311c19fc9dd3428616bfd50a873e5925614aab534d8410df03857a6fb9c5906353d7140429cea8ba4c664b1fee25ef1c2ac4a43883801fb67ec973b1d764ba46151fd44add3e083230f5dfcfa342df45d61b46db6dad21182d7a12b7c67c7dcd61dcea222f18d490be987f570f44d82865719b9794465e736ee290c5cb08670872757963159cc9f6d1eac983dcf3a56d1aa18c08ef4e672b3f5d3" + }, + { /* i=4336 cDividendBits=387 cDivisorBits=362 */ + "0730cac5639b71d72c99592dd8bd6d244ae00d0065003aab0770d7a8105ecda2e8d1e9ae85941ec84f77bd99f502fdc247", + "016189ae5b3d8149f9a36b8013c0a8c965f015fe09cd4443aad76533ed3ce4a6ca51f17020d1cd4dbb40d0be66fd", + "0534ef3e", + "0107c0049dac5313d0815b89462793e8bdec81867880d33a9e3c00e8a0dd0845f2daa8b2be61dfda9eb0d6569e01" + }, + { /* i=4337 cDividendBits=1732 cDivisorBits=348 */ + "0592726b2fdea1372402e068f801ec039f5806fbb35321c42b815d5cfa96ce2a30b5729f5f8cb7e21c80207d75eea7b3601c39584b9fd366d86d2c41ebf1cfa56c242552c4f1799f4142b47bca219b5c88830539a946e851b1a8d82ddfe77df977df59e5ea83027a872de333ffa177e529e715303ebec7d92f2ca19ec41b5e78636c9a845646298466ef5e6c8d7fdee2e7cc4051ac4ae364cea8b07fe4f1c1e13b8c077d6dcda34fe450adc0bfb98d682e80e2d18c563a14b4119fc30cdad0a587411af7d77a24aa2272496d8637db7b8030a585a3bea5c4ee", + "0a29fb4ae0cf3ddbc41bc55566a01c261cff3a179be60bb3d51be85c72f0f22b15b426a1779acc7321286859", + "8c57dbc793ec88e0f497f3590c61d1b8d9e3c987426e79e9904999aecfd04b2897bb9f2fd2a583accef1cf180ce000ab029440e04e883553636f5a69dac027a3bbe1161bcad3ff2cea1b7cf7c2453d3594ed061abd2616abf9aa068c31c8ab515874cae1b710a4e635c540c25bb3e809f744748503678413d0a5eaed074b9664a92254133d8298b79716c9d66e92fe7805e9a2568d944645f6d01e177af533e66d97be96eb1b14095a0b1df2d4", + "039ca148df7fb90933ffd07d697669d51a18322384eb720db25e7d3caa820e15f854f0e615e4129a7176393a" + }, + { /* i=4338 cDividendBits=3374 cDivisorBits=2913 */ + "09b087375811f629b7b683666f1f2e0bba7f87901176af4eeb2dbc6ef6e357c140455b5c69a97988895aaf7296097298a1636dd7291d90ab656b8b6b91716d93388fc193add764f24e055b1f5ae4ea197034a6eaba753fc176740bb142efb3356fbeca41ccbf7b096aaf23635beec08900a4f056b8f2e16bb40509ca8849854a4e12f5ceb5ce1ddea92882a3bfd34be76ee17a14166d4d69f430f2b94a346fb681a3d485e754d70e57223eb9e644d76f9d4a970bf9984bc16bb23704ea09fcd4f288e11af75dc24d30bbc3f2f6b27912ed06050587fc49d883b5ad058a753ebb0e9567039213f960e1adac1b65435c21bf851278150ad5a6dab7ca7d020b7a945f13a4df823e26f471a89ca8fa8bced87b45cffa358c101fafd8624b5f32bcd73a602580b5d32a05d5334a90bea2fa9e6db7e3e3bf988008be05776deab09354defd3501a2a9602e3c427cd42de94ccbfc7ae3e5e345bac8a641918fd127c6dd01f5377118182e31ff5aabaa14f84f34f5836057e2b18918371a07fefa0b8568fd78ebafccbe21e1a458006fb7624e96f8d5001e535856cce6a541104fd7d40d434c8b42f784", + "01fe5b519ec9827b44507c9df6d63bdf99f1ce08315bf81d36f5cf26215e9b3183eb6de340215e8a98ac6d7e8527dedf147eefffcadac3c8beced8d99a5cc18ed69bf37a9408c7d4adf359e499bde30f9b1c4ff104bdbff8c993087792150555b547c6f2c76fa1639e8ecbf1bef47ca1d9121dc152c6fa726d930f30fe40e6a42d4a52c94de1b875bb156c995783b0dd24ec54dab117c48b3ec214c7705a29131f5c31dc5af3a664768c5262392732a15541068f6d675afc96192db61e3955be2c9e60ed53b9431496bc4b495abc976755faf2fd38f9c3951f618b933bc62d3b751c7d42523593001baa2ccf8c1f8a59c5cf9675144a84e53860fe4009f8a2a00a206b4cc64066fa347bfb672be60ebbd83b59aba39c45bfc0bac007a98a584fd2ef74bf6627a5c15dc2dfb5239d7affc8dec1f5093fe67134779ee0f0d87404a2b1cda49eff9697c46e4f3e37077976f0be2016f41783f0332407c45509529c2705301403f3534dfb8b0275cf", + "04dc41f18ad4de215c4418f8d61b210693b2eb319a0751d35ff9f582a1c90cb30f58586e7ce009271f3b5803d62b4f0a03c4da17d0cc801fdf52", + "011a9a610921dbe7aff3c3c930658f3870f241f8c1e95b898305657c0922573a13178f128f576b13795707d2185fe3b6b2b7f8abc7e90297a5319123501e0e93c75e5455ad4e8a279965af35dc5aa5fdfdd68167563b351a19fce3cf56b6619fb38cdfd4d59759178085430aea3fa2e744476dec8c4e8a5b1253649ab885742a2d2ec69bc551048fbc5baebc9055241bcad83abc01c20f3ecdc7ebf460f74ed4101f9c54b0452727a0099d48536fd471a57378998748e0adcf388909173ad8511aab70fe683198ee83a7cf786675fdaeea19275c365848113ff4266922ca4ac08897fcbeb63521f35348dea2454caf3eda4cbc4807c30542599f86afccd8637d9a568d32898f81e6c2bdcaef4f56e00166130180e25189166ed17555bfc755e729088408fd44045d8e6b39b5cf0fd69c66cbf98b79fbd4a657f10335b1ee92078b03124544d6b9d319460b292d4d7a75185a7e22ceb7e242ef9b73bc59ba1f989e94049d1e7a32097b1bc8ea36" + }, + { /* i=4339 cDividendBits=3118 cDivisorBits=2013 */ + "14184f609d2c05a1cefb0369c1aa5f66b861a97917f71ed7cf8b4be02345835c4ff6744d08a9b1b5a327ec209d272cd2cc6f14f235309a39fdfb0aa20eaf4d1d195317c605ae3a4f95d789df8c269f348f026edeba57402b9efc7ce8bed1493a4965e48bc19f58761c84a313ca5d4f17973bbe47cc349d550b813c64ff4eee34fdba8365350b385780df0e8b97863a6bde7f61103ab2c74691f5f28259c261753a86ee1e679c7ae1a604b47de4c2d18584d8bcc7277afa7716795e4930800c4a47198e0cfe91f995bc6e4d7bace2c4bf962822ea41f7aebbd2472ba9a6d15b609d6f9c9ade42f42f1257ff16d67a3766816fc73a088775f049ee5f7777eff788e6e9ee5ef3571086be928f38db341dd1a2a9e340c9d87a0f972593b57591146725d3dc9d8d5f26fdfe4da49e7dc01dda45b64e45b44e3131e9a4eb0798452a33ef78e02d27971e87b5a9614c8f9fded27130ec035cc64a94d17fbb12d22c38d520648830324dbece8d6d341e98da88e42b7c09f05bd7191d327e95cbff980c22536d3ae779ca", + "13c51d9a4660d344d64f49b45e5ef95fb2e2913e8954f387d808f0d5b97ebcef9e61b5c5c68020f38cd5639199cc163f037bca4d645e1d36aad8faf0fdfc5d69ae44b3da2318d9c7074ead517e9486b7a9eaaac98c0c0b6dd319c35e33adc9cc47fd6a79260bde4065ff199c7cec5712d00d7592a3bdb8731f81ab0c4e526ab05111602de2432d187a97dfc443259ce5782104c7a49a8cee85d3e5b34bdd5a164257361b5a2a4614a8c3cf61dbd3e9c79cfd9b140a0e3ece960c866b706ea08b1fa6eebec67a6f7d50032fe1389fa020b4ef2ef4e8244394f8619d981b6a6f55a7c38d92f71b9b4ffd0b454c40dd22ed3672b5498729a6914dcc94ad", + "010435474270fbefa351ce7d4a14d1c178ecf7e2ff981546edc44e6ab1bf123c9ae6d9d53f66ad886f02ee1b5a53611387cee63aae35d0ca04a4edaec7e3ad95b4f7b3338e1379a9f40a26f7da556a1de4740b5f85813fc464b6cf062834cbee3ac2cf7a685a63cf18b537f4b6e3a1799ee539a28cc21458db8bd121c50bfe7e358b98db17728ff11c09d8", + "10972e841b5b9ef2a32bcab215f265509890b1a3e3ddb88169a0d7c2d2b0e07bcdca4b0d8e8b5a016a10359b5e616f7bfdd2aa2c9cf6a598a0f309d7727b5bb671732de777e9bd4bf7f39b2664d7fe8ac3832c4b7b0e28524212954e642d7da826dbd5adccb92bc6e59883a20189bccf4f0a04d6029a4808d10bef468990ac36bf37e92ab117ada38b05f09f47746037da049af0c0e25d768c1876182a8773de3ad6c7d2c7419692d6c6ea273718acdb2a56292e54ac1d64d3431544db0afd079000b7658dbab1b5f882c7923d0ae34509d8331611f4e5d5036eec93d26f9c598ec1fe5e2625333a9b42a90337041f070b4a7f579df97c1d4523f2d2" + }, + { /* i=4340 cDividendBits=3455 cDivisorBits=2442 */ + "072bbc040dafec730d557eeb60a815fae730727df5d4fe6ba60c42dc5e277a71382a84770814e2d2994682ebcf88817640c526ce5b56738014e7958abdca1e1c133547f56ca451acfcba397822958f49ec0a9d90548124450acc6e88b5b13ca26bc858d69b2e0ca32e684ae1c2f97191aa59e8c2a667a9d4c8295a8a55bdc2b0d170b0f965d8765bb41f2d1f87f363e124f6da53f97d8c8bb3c6348a791347e566bb0b3af0fef8823019b7be3cc3f671514c58e08ac7fddee0af22683c1411996e6dd5784a40b02871e09f59f8dea951383384e28e174ecbdab15a20b66e4f1e16721722f92e2d77746981cbbc255070cd4b41f0c148659cf5dd77abebfe1f840c444156e8080da6ec301396a1fa70df6e4014c741a3e428fa03246180fa54a44e3e310cbd91bd218d4ba4585404657d18d14e4ed7ba618e65a228cab2534899d273f8e532fa0528912520d7d0e512e7101150a76d0dbc12b1948dbc3d1347e9f629adfde2694e46f8b48a4f91ffdfd3b95e238dddf4383f0cd9d5001dc45790b66d256354ebfca9f13a9eadff16e1a03c5623335377c92fdcc6f61e0118f4601c6fa9191731938c43be821f4d8b7419", + "cedd12afb6aff0fec26e9460f09b1aa38b07d60f3535d118ddc7a8d0a3c60db3b3c8604146005656cf294911809416557882e2268b6385e6d407bb5520c3e9f5158fe30d71233eba3734343e4fc32bce5002c4c0ea8de8ba6772020d2e2c28451acf2b9c61b05a8264076848248a45889ced772fc350b077280453bf064d705be284518f40c6f00115248bdd3734e61730c99948638ec1c14674d28547f0cfb2cb4dbae4d2265688ef1f2c025fe1c5bf4f6add9cbd8ffcb0aa179b98b20211be38c75e524a167faa2486ecd319bb2d061181c87e02e14851dc9440c5b27487794a7086f4b70a8181e542560be6d97e010fc7c7b224f571e5e636e3bec12974904bfc0dc61df9e891314b6d26d3be2b8d2873b05c5419167ff452354949870c6a7ffbca78ab334b273319b450128b090e10", + "08dfc710a0598bffb3ea82dc9c72fd10a6fc7a71746e600d242d37fe4d17a72f19d0b67af0ed7da0ff0ef1c7f9c43c117e7c850c3ff604b034831a6942f5d7e77b2225fe34d2cf71fa37c73c13caf59195d2c0a7c431f0255b713e6ba6bec60fce73e90058a6395a1c0329a299894d99b6cf163d248b9f3cd5bffeb66667d4", + "7eea30c05ab57ee15dc6dda4318cd6e0626bba3a35f2838e5c654941c879e7291a9b66379517710b2be320a8ae892d681035cee763330337e6772cc62f8ee9a142be76b04ecafe9f601fc03a1f66ff09a0205c5cdf4caf1b3be71ce50d76a7d1ab8749e19b76f15859daa5b8f31a38cbe4d2e261cc858764cdc8219dd6f0fc2eaafe0214e8ebc4343ec00b38df8c12f357580f12a069b3119342fd0be45f663d2891497525adcf596e6dad46c41b26bd62640cb23d4aea589b769ebf248c9f0cc499cdaf66db960cd7fa3a916545d2d637573ce9f5ff6ad136e229397179e59c626189ad5f27443fac75f7262fa24aca86765db8573f8ffee2c01afb885704600b0e69de323995da6b50513c304a1597fce623d5832690054ffba4eb78c5f9a6f86873a9315d619d38302f03588b035ed9" + }, + { /* i=4341 cDividendBits=3347 cDivisorBits=155 */ + "034b1b5d832211222388522d424c008fb8c037e2dc57a57318add9dc21cf85d4893d09a78203f9a3a1de2e2176df6912ccb3b43d4113b86129cd7df93a986cca16dee3b47eeb5a5cc4923c506f85deee7c631e11a2f3c95f830f501b0b3c684e7a1af8ef1ee02ff44ec1dd3f10d9712210a9b551b0208cc72a75e7d0a86bb3e4c18b2d8636d7f82f19fe473717e0f18733918a4971453217a9ccc72f74ac65061194e51867723f8f1a345496ad4816caca222c71d3423c557f323ac9cb128ebdf5f3be44cab555cf193eae656d56bbe3d0a6319e0028fa7031ecbf71f48ff34461b5a9ebf4c4b4941ef00ac1a369ca241bb71c1779e018d5612988bd9901cf73cb27abeef6e6a9c5039f1f232ffb3aab56d08e5f49516447e5140353f587e3aa4d912f6f3c5af0548e5224d845baec71794bc6e6659089a645f9283c607a4792eb423ff7de9b651900e9fbd238cfb42a22bef5661409b739b117147f6dd43c0329b90bcaf7dd6c81480cd46e02d0d854ceb4f197f58e68c27fd41c22a943b74514e30f157694e09cacb029e1da54e67441271d8416aa0d404e084ba03a5c9d0b97a4af", + "07c9fc1bfbf3c24d2c2e49720ca097af87620141", + "6c3e44a437e1f94c115d0aebf1a25b1a306639acdf4b3afbd137fb95d8cca262107a6d908236a38742425596f3af704de4923ec381a36b511b5ff9b204acb142921343444b6419f83f878de26f609133a9e9281d7d027609f39ba442b3b5398144626710a7e5815345769f46c80651529cd13f67c3f20ba3eb35751f259f4a18a34c52ad73c313eafad22b128fc3a0e382481a1eeb384f7ac0d4e6d52392c9ecbe7a2ed2722032a4ed43cd5066b3ebcdfe461d6e00079710a6a1aae0a160aa361259e8b19204571ec1c9d59dfb4433db3bc6316cb65b29c286ec811cab644d075d04bdbb01a01b65bf64e5cbc70c97f3803e15ae9abd798541658bd43aa6fc441dc10852552babb14170f6356ab4fa2a56d591958bcbf231794bcbed8bfd03021bae2a41f7eb680743de550de7d7dd8e04bfaa6a03096b90d6d61db3b5b399039047dd06b7b73ed84811f9d5ea1423ba2dcd1bc4c6e32283f36a90ee573da60859d3303d2c1e011379c1ba6e224daf3ce96621406e00af3f245ba77b307eb86b92efab96be6d5e7602e0c6c257e504", + "017d168df220ec84ef159942c560da3c93d97aab" + }, + { /* i=4342 cDividendBits=610 cDivisorBits=318 */ + "014ba238cbabaef378f347a88815133140ea86393c1267f304bc564d8ec740de37c13bc72ea259b6b570df55ad7b5c10064fc3d1fd28d217cca3b5165dfd197836e9639191bfea6a7726a5f1b8", + "32607edf603031932a94f7db946343e1c4d3702c2f5c77a926182f2ac699e6c669f04ac780956db5", + "0695427e38ebed223f2ad4d03343cf35a3d744da57f5ed5edbebb1468a5fbdee504b4f2a03", + "2c5198580bff6280f5c6408f11ab226fd371c3a36463ad27079e4fd011255d504b46cb373f0af699" + }, + { /* i=4343 cDividendBits=1932 cDivisorBits=595 */ + "01bd853608683962d995b0944f7c01eca763a091e2511c39356ecd2b360f94adb34eb5d447806e53bd99351ca13d53c7e6e958a87c264b2e8670eb5c262a0014f114911021fda594e4ec531a545a88c695059755271b24381075a72c0e235a9384824608f17e5b1d3143bda51f8f20fa5ab14ec95d7056d6ee925b4413978e01f97e5d3cb7e5ae2eccb363e546889e766a429d205dcce84b5a102655849218f15e5b494ddb77923cc48385366d1647192004725c01ed516b3c0034bc53331c239c37385f152925f04687cef5cd9f566b237d12ea83296f1dfba3a9fd0aa1f0cbfc69ddc78464199c10d8678f2b5dd9529835", + "a0a81193e1d25f2e755d3160a77137a1a8d67cab0a46f110ab1ddd5ea9300b149dc441ba091f82d8002a2422e044d5d4ee75a4a1c998a4232574c4df51c38f89fc2860f814f4cae767", + "02c5eb6adf451c110606ac20a46515be62b4f4fe143ea4d3d187796d7581ac49eae5ae2ef78d2ba9b6f85aa55c740dfc193e7f70a791d5111f5f8a6a3355fd76acdd82d48f3510a7463764c3f16fb4aa24c3aa5966b32e11a3190c6ab2ae6f0eaf621a9e6232026e025859543f501b865ec3e900578b96aae3bdc9df96c3fec5bb6fe8ef7c1204106b5e86eae2dfa852efc6f8f6dc984b7ab53740897bc4885ed17f43f1f01da2f307", + "9972379b72eddf3c1a9442eb15014985e55a208ea373e139c2149ffccd5c432d6842ae37f7a1ae22bd18d3813dc06d50302f26ea6e65f9b869f42470c201d8a211b968b24173f17f64" + }, + { /* i=4344 cDividendBits=1865 cDivisorBits=905 */ + "e8421e2552238bc469d19be08f979eb361cc3a00eccc9e52449c363cc1c506ee4962c0a264a8b57450acfc16a3dba8be6a340693c8892137ed5c32cc236ea63fa7943cc4df0d637b6f124f41c282bd20d8181ab28e2aaba52c615ae089e4f416ba4813eb15e97cc6d6aa14efa3d585762753fe178a19f72cfffe942668d0d90a7a9ee59c3fffaf2b20638370cfac76674d8fe768c7f80297f627139cab69953ab64b91c7bd4454fb83e3ae4e492dd886cbf0809daa440e7ef18eb8e36ebed9e51d4ca03686d911639889d44048a33e504447d27f9e0d45a80ca01bc4dfba7bc09b9f8f79dfaff00da5", + "018674d79579171ba8285b48831432235b79741282ac350c78a6e273fd16faa4f01fbef0119e71e817bdbecffd6e14ba5c4447fabb5874059dbc985ce3d0aef7b779aff6bd6179d8573acd880af8e097465a71c12f986d425e0835f8aeed67a00317a8c54e250088cec106b5ad5785c069e0", + "98474be1e6be228a447d2b37a3fcf6ca598d7d1bd5097d42bb678612a8623c3ee7418e905a9c22bc00db3f53dcfa813e9dec721d91c1d4b9688522208063a694dff215016bb18aeaebf2f7942cd272ba8fa9efa6d77bf4c3942847045d2c57ba23d7115fe69aa4ed2967890c9c21a0d3fada5d1d19766e76", + "a2c8607d6926b90c643895a4af0fac31459dd4fae401d1136b697782582733c90f8c1826df7d4607c65392d82a3ba676a212140eac0d4f80de43dffec98bbbaa2f86f2654d6e4235a53efa8c83f900d17b205f22ce141aa557484c529ec473ea7c9f45a97e0e9e2db50eec28a7ae810065" + }, + { /* i=4345 cDividendBits=2093 cDivisorBits=571 */ + "1e0fd5af4ae0d4a223e74330d3c006a926eadeb54bab53b478b01ff62c278b12a3d3fe88fee24386bf0568b5b41e1031a427c5ddec0ac19bbb6a4cdeb4b7cce07bf2117f99b162b5bdd83b03f7f13956db4ce50d40bc4cd8da3fd74ff42db9f3b63b4b1b1612f1739c2d67691174f1332b8dee53a996e2d675efdced40479370dea657e7f4bef265c93516edf9c9d16f4b5e75a1ad716893c073ee93f729413838c783eeacf579647a402ba38e03feef793d6e189d0dc27080f69f257e81fede8be9cd15d056058385154965c3b86db7df5ae78e90e37de1c36e78c51560b4a685ead043db1d3c2adac556762d5cc7f6b7b6d0144971c791b3bea99286614e31cd96fcc53617", + "06da2212346ae18e91ee99e202b2a8722e5ac9c8c947b0b707c32fe97b4fc64e76abc1700ed14c296245131998eaef55b8daa2643bb7d29a1f991f9742fe78da8dbc88058dd45cc2", + "04632359b88eba90a834192190de88b6698515ab7d96d45d08e9192109836af1b75b7f840e30432782f082c391dc4c88a08cc291cb1bceb0ace0710957c0e74d2b428647394edaa5823793fd452b748883620a2994e82dfb47567c4a600aab6e0ed343aa9fd5b6b3b71135aeb7e1e5d27879fa36cb476f7351e078a94545650319e2cd8fb7acf067943bc96df1c89814d1dc633da4fa7746866a13c5ee522df831b6ea0692a265f6b0c6eae974ae908099688c21efa47a416d3fa62d77e8cc", + "0178458ea6c8424ba75875655bd907ff870b6746456644fb0d3f3c8315ec506e8f9f941cb9a554681f12d9b0f16617cd28a9bfdec60d7b133dd17fbc31e9c44b510b3ad04b4d7b7f" + }, + { /* i=4346 cDividendBits=368 cDivisorBits=142 */ + "8ef33a4429e86d0056729adc9723df37e3985f9f3ddd1cd6e707b57ef7ee2ea501b95aac2d8ef720e12df5aef2b0", + "2df0368ca1024d4a5294ce86e672c3b85ddb", + "031c9dca7a08649fba19d052ccf42783aa26914bcb40cd5265f62a0ab4", + "24bcdfe546e7c2b5b38d3632e9004c7466b4" + }, + { /* i=4347 cDividendBits=2206 cDivisorBits=549 */ + "22ac77a41b360eda8d6f921495ff372f3e35059b93eda12a7969e34158a9660ffc22de62df7a54981f21f9400ce348846a2599f96678a6e45be96c5dc299822fa09b44d262be049f770857607583e051a96b7c5ef8ad3faf8d63c64b0ac77f691863d54719e0ed120a5d5ba93e968cf70715f339ec9c8f1b78f6c0e1c5fdf12f0e576e19a695975f00f58f6a31b62edbd986c3b256ac5e57c97ea3fd889987c8ddb286edaa7fbda37e1fed5742140f77d752b7fbc6f421e377eb3bcb4caaac550adad81997c9d853cba81220a4e670d1ee419abd3074ffa7f4672ae787b2d59be8c9cf66f95e95b2fbe667a37f989368093a89c94a93912975db7444ac9d475d221d519c403263bcb5f08dd37506e5f39568a1ae", + "166c36dc3b642476066290da4b58d059e0f4e48fae0708eba5aec64462e122f5a804c8d58a85827261b43f8079ab915bd3a2d08f2afded1993be22897556882218353bed90", + "018bde9625d6b22de7ba6e79d3972355628aece669d78a0ddf5bf8ede30d7b012f05d0ee9f44e60983dcd08e61033c91e11115119613b22e83635e4f06c3e82ada2d0d77e93c7525bc093f97cefce9552d9d6d6436f5c0d355ec69692981633008147e40ee71884d73d00467036320065af1743abfc6ca5a30a0f83d5ae764b4ed1fa5a86db7b00a394732616279b6b0a43902b665ce5b0745afdb23c6bf1fafc2b148233c18d23bc58fe89eacfdfb898adedd5cdcb93ba82faeba3016ccb61267f6bc86edda5cebe86714c37d0e25b2", + "0fe6efc26e38da438d76b73e8f6d22d2cbd566918644109f7aea7f061d2d7b9b32d5f13f9700202b391566177e8b11cd5e66c00a57d1ba06057c0966739dfb50769a87a38e" + }, + { /* i=4348 cDividendBits=1816 cDivisorBits=306 */ + "7d0c6155db034fc73e19a47c0867d223fe15a3778ff1e7522888b179adf02b98a0ef05a4227d12c3e9f808103a72fe870e5563fe30f7afa3e25560afbf7d5a1140e40bfc8e633f248c3c12958303934b3a89ef70cccebeca216a960de50fc6987cb8013631627478cac3f687d5f13b0e5ec22c2fcf80bbd74890dec6df789ef240db7de5f428edf2a39f1cfff19fedf2bee172ee3034fe72a9baa37dfb1490f7a13627a0174762447c58be780d436c0ba828ffe928ab08cb3661a27437a09cae1ec76451dd68bc8ee90118cfa69f70e24e25e8118bfb8ca437e91296d0624a7e8a3911", + "02afc114fb65a0a9067c5561e0145f1cb4a9acfba05953d00836cabfaa466137f9905f543a8873", + "2e8bd70b9680d31eebb2c0576217850a722a23ce12d352596cd3d4bba62417ada3c9a8c1f2241bdab02af35d590b2ef22573d21d24293bc4601334f7682cb7be9eb77ff3b3c774a8a13644cc37d3d0bc44e8700b9fcf638f15679e5a17109b217d8ffe91e1bc76c2e75efb80da3ee5ce584ba4ad5e6aaa9dbdbfa23b496af52366955b80be05a3d8a3ecbcf5031d6fb422f243301ba2037a4a14814c8673c16983a59bb67c8573e6482b0278039189347db60610d55e3d0f32d1be8453", + "0215667d4c20bc81a51e1979351d8f903703da511d20e6cff4574b71199c50291cbba6d8daafc8" + }, + { /* i=4349 cDividendBits=1739 cDivisorBits=534 */ + "43238b3bdf94f593cdb71bc36d9a4296ddc48418e06257153e6e7a27a883fb445ad674ab3d47005c15f891afa3a6a7f197deb916aa519a398e197e8a68adfeb5594321ba5aadfdbc88a188da07e38ec2d834bf63dacef779ba56b5d6f129fdc5ae5644071bcde392da7f36b6bfb939fb9574d0835a99cb1bc01c875bef67b2bd373c6eeea72ffe35505edecdf4e4f0375bd9a39873a3aa67ad8ec2b14179e318bfa989b3809fa3647b50dc59cf309fc5cf72ae39ec6711dc2e16a5fa37facc73bf1c5add35342a450af319fdc4cb0504e19632b34a41837a35", + "2b06f038fd39fc269d4a28f7638f49a44c48e1b85a5dd5a0610e9c7f929eff61130659a1bd57714fda84fe132cd1c80300eaaa1fdc8058a0749042c1ea2636679c67df", + "018f75631549b9354cbb316b869cbf1c02517edb3910c5bb2367bcb7b1fd1c0705c25b411a10fe01d5221e7d10c504c3de42311ad1ef3650fdc4f8ba36e44a458154e74547a455600c414c7856c47b613eee8b4ad232a311d884624807ee7bc9c1f4f1f83f6ef9ae5a38b36d2344ce1f7a0a30dc79d8befac5176c529362c81846552c842043a30fdfc307678307215c2c4a66c8582453", + "6c18c3bee0b3e3b89e74ec9fdeba0fb35a220593e80c4db21a24c1016070f860e284ea9373ec3455c4b56f3e1bd69fdf8def7b07604c0f74d10aa9970150be8a70e8" + }, + { /* i=4350 cDividendBits=2977 cDivisorBits=1916 */ + "44d42abf5815488f079056058780cbf70bbbef03e6adf790fedd90cb4f3873687625f15727d5979fe522782f08f69a1328ce55ff0ede4bda84f09218022d44beba5ba0eae5e3e2afea2e7e78524ffd592ec94214308712cbe5f3ed39c1c1889f976f8b686f7b6b5f86f6619a89a9615506b7b9bd7bba9e553f7f1a0a4b738286c14617af0d89f7877d4c6dbd399ccd00ccf8a1fe9f2f44abf7abc83c0c5c70ff2b9bb8e5571609e75884e54442ce56765244aea454040598878021b415590aa96adbf11c3a540d589dcb78ab72dd71ef5138ea392c0c4c19c257ea853779831bc368863a9dda05f467b69b9f3112b005bfdec9aa2cbbca2ed5970e78952ce98543a4f2d44f5c8e77a3b42288db6ce2a82789ec6351db6938d254a7660d289dadd0c4d83de06f5518c091b889abbe5851b5659139102ba81facde41edb1186496fdc7245b9c3c9d348fc3361ca50dbcd4e41f6cbcc58ec6001979d85c91189c7ca31aef8eba0678417ed30fad8a6c5d794d8e1ae9", + "06deb09d306103de5dd0fd8a07554a99ca0dd71e2c94c14d4c6ebd0e3bd1e22ca291fe1ec91830b43c26b1718878ca5983988db66d3cb850d8279487807f8bac58359d9470e666da004e7d9744be35020d7bb29661f080b6edcbf9fe51cf8b298fea0d319e0b5c06a7fed918374242fb59e89781f5089d54995323f3b4e62f87e2ce8ad73d6a604d5b097504271b7f9884407cff066a9cb6ee52c5fc7d9d92f6407cce9c12440a41bec2fa8998ef9d1d236ce3b7e51ac90ee5a0d6b5325d21768b45d217a1d99b095f304deabe723e7e3fb9250f3c17a0c333b153442cf4e1a7abd2a45a0c7afd90a837a510432ed76d", + "0a04d7b3b8de95d68c90aa7a04a1591979e39c007f504d8d7095435ddff788249f3ee4cfc1a49264d74176476e427f29116635915a22e28c7ff17678af5c6dd96749a0bff47037e3ede2ee0a04d0d037f35fb72505b6a53a74f73a7d91286661550cd89ff49da8c787cec4253769b32ebcec86b4914628221932f9d2a087d6976e125b204f", + "04aae0f3a4191009a4f829586629804abee4434be051b2eef7e17e86cad17eff496eb09b5b384728f358e633cc3d66d035ecf03f1005bafec9a5f56e0c39db655db454a934cb832e955ef35882824163dda47fa9b05cb2650da2fe0ff22a71623490fff9e03a30ed526a3bfee326fb8a2d06f2d9dbb6da8caa79d1f97be5f99522a58dd9cb30b63f5de101d24264eed9e48ca8e5a312d647c51dbd89edc4f73a6c056d5697b1fe0d147feb1588941f893cc8181f3c27f83cfc50b9d5786069f89e97575d480cca3bff370d82fcf809d877e4f3e70086cd7b0058553055958e15b535a7dd109e961fcbcd5c6c796d0046" + }, + { /* i=4351 cDividendBits=2570 cDivisorBits=713 */ + "03886ce9d193e990537862635b06d467efb3296c703ca8b694434ea8a7f750a2a4fa2f8418813f9762f6327303538745b79fac52c4de0e53191a2a7466bd44ec2e9987ff09aeb23fb467e47e15f0685e553189c8c242622cbc68d97445b62166b59125a65c45bd8e7de834c99889c59c434ead691c9c2722472257c74a3ba458559f38fd18761a481f2681e0740663fd34b20352f25496a01ff8fa2d1d9c7d41fd5dcf72670f02842d9a7a8598bd678372cb67973f520c6a397a12255951fc7f0e9af2c41232df04761aa178dc38bff1c357454f349edca7a09b00f47deade7d8047815cd101ca15874c81f704676c8a76ddf4eb63e0084dc1978bc9748651433ce45b0f2cee68497c9efaf8a6c3adb6e30c3f9393379ca579da8bad72e2bffacbe54defa74d7972f20c0650f38d588a37c1bf4342c2645a3c77de51d28aec03d760", + "01348c8a38f2da02e9ec48741ec894d67da3e29564367dd18b9ee55b18b68a1c9761d1b2214e3ca8477e05e32af53f9f18b71425a5ee7bfa765ffcd0248bb5110188a62e54fd67725031e535c2ab3337454a4d7cd1afeb6fbaf6", + "02ee6489b47bf498e0dff3424cad85d5601ccb870bd1fe86d85a9d349d69cd145b219837c5f8225d503f4047ed53f18639d4dd644af3bcd86d472e46fbe0e97e9158e4ebe53d5163bcfd20d8dec402d58921e2b94d59ed05254039149e61ce18721b8e8df06ced7fbbb32d3f26428cc883dea6229782cf781cb74eb41200aa9e90a34d175d0679703be738e8813add715ffd125dd5173d6983e442d070a54c77adb4d3041a9aaf0bd35e35107eba926c61e786717e1699757213b1db75e81af52c3a3f56730301318a1d2978b050a5a14b46a0699fa65a4a0a349b76780479ac0c299b0ce6a082039d", + "168dcadcd07455f0f1c054cb7424572f890b6aa836e59082636cb225521c5a89e5bbef7fbb7c645a1956f387624a21834194251f27f2bb231850aa6894b57714e208c099e02fbfe3b0d9b397c5ca2a625717bd454a88614c82" + }, + { /* i=4352 cDividendBits=3812 cDivisorBits=812 */ + "01e13efc24ef88d8fdf3a2ff114ac22d9950773647683f154cd4a08ac1d0ed7d0da1123822ed587d03e871fe65071ace2d89748cbbb2627ec0e4460ffdc5270ad2bef62eab6e1c814a327839cafa6ee345a886f82afbf72ffaa5038eadd09c37100b16bc958c308ff7c75b25a56b519e5e0c547bbe12118093b4f3e8d07cc13a4fd3e2a67f121486d24c148a9392967bf33b512f4b9e13715644ba50601df0ea1547bec0ba38f3f1a1bff7898e2decba9d8ce71cab4d11a44496108008a1abea7427b24fcb2690ddbea190231f8bc58ee9a37d027aecaa084c0c62f8dc167d3cd9a7b441ff2a8f9333ac74942546993f885066d1f0bdc00b47976cdd9052dc3799fd6abd7272333ad7fb3a4ae0b6a150c55d4aadf97d9027ab1d15ae63d72a459e3232edf85a40fa563441df2f90d4d7c1d56f9aed893cfc740153de510d3be469c8aad2c7f775766b6982a46a3066d563dfc6014fc3351b9d072c211386c385b7bd8fb3b66ad0ba34f235dc3bcf1ea2b602505c27f64cba83c6bba9f016c8b013014495f4b03c256687008892db97d89fb76f449e7d82307b9372de3b76bb5b7058e6e661ece99221d35498cde379d7aefe92107f2a35889fc30c72e854fd77609557c5abb28a374d76e790d231fdfc6cacff2fe3239bcf8c1e777e7c", + "0b4894f7847e5605311ba045fffe574c446d8779e4d6e56eeea0cb0164139f28de446fecec38bedf95128d8bafe421e3b612ccdd20fb2765f00910e57136669bbf2f1e39adac0d733a50ff939230c9eedc5991ed89c4dea7aca561887023c8efe14d0d2a762d", + "2aa67c55d6410b4b696ede45abe09c0540d2edd693c502b90df01c2abf6242a99e42b3eb09b51d28a791757b6849279f4bff294124ded48f401d763d35f697d566f88ba413130d1b4abe99365681b2595ff581df01b42063b450dced973e461206ad1d99c3749c4f13a8ddcbf9717b6fa44989363fa4e1a709b9c1e6676bc7da9b669089ddc1b18ec51430dc682c51825660e22a816c86085651206497e6c1fc29ddec063a87577e72effc74464f822b527232baf40aad39fea9bb14e3beaad461df0ea75e4e2164939f8c336edefd1976443da245630f014201ac522d105f071e82defcd33668366745490d3a6f3ac8f7fa05944e4e3dfb84bd9f7ccadc20eceef082acafbd2a453a5ec94b059fee4db1e79c896b1ec4d2549c6f70b1359381bac2ad6c4986ce45ad27fa006f228e7f297750b7cf675eecf2b22c7ea4a299c0b672b1766923e158be4c75fd836748ae6fdc8afc2921b89ddd1ac2c7e1caae5a4109e2b4ca77044bf12354f1c2b171b50fd8b25e79d35c", + "056dd8fd193ce78760d4cb217329e59c998f7da64790d349883e48c190671b611fe1f10a65e48c87b10b71dc58e7288bdc7eb986dd49351e134300792b782f2809b28a2b3c670e8b453e8c11b6c41303fb3e3538d25a75e849db259399b6b59462410288ef50" + }, + { /* i=4353 cDividendBits=3155 cDivisorBits=2585 */ + "076dda87da021c6406264110993758326c80d1736db0aa259676d61f19cf752a768392da2d059e37cc90213ee8c3aeac59aaf503f851a27dfb41eed6c72907f1c7d14d62d67f2d49804ed03d755418acfb37947bae681ed84637ad0d40707edbf15c942ffe9d4be9b88f7612d92af02e2fea46b4a70b72d58be89b28f5052ddf40b44e76d39a3bfac341f5da59aac56c898850df317ea5cc9ac059b33f18796c51ec92fd901f5c010e3ba18381d0057b605d12be38287b89c137e82845e34a30d52eaef22a033e2dded3dd6723d193658219b8054334fbdd002d848393b955f118dda1302d9425552b6be0c972ca71d58c5b60936e4fcdadc9c9eb4441e0a349f4665150f1914d725292964ed6450e9d60156206c50b71422ce6080d2b071e7c271294f119e983ab90db4adff623a7f0ceea3d80e74b53c54a2339e5815a829e4566d91659f912fcc98195c10169841f45f7cd7c8d096fe58be48bbb821e1c589abf793223c8f14cbd193c8479df5de4a57b3ce757abcc12e91b62b490d3de309f9ba4935f991dc02199df", + "0106c3b493835a23aa2be45bfdc1c305443120670c6b0791a7fbb1d927fa2165dc5dfdc0cfd87af8617308091fe78f64e0a9c5916f6cf45ea3ebfbb9c12980402bf8f35070bdb232c0060182a41ac43822a5ca57a156f26cf91f487b2fdb40a217711d820e5cd942cdbbbe849df1268cd267f874ac9ebecf099cae316210edad45fe1a4b7479a2a272eabc153af0e6d1653bba98f0852409b3f8405f65b54c11cba179924a5d87a9562660a29071c699f1b829f487ca3e9e3f9b63270cc5f76644679f978f757351b110dd1c6992474ac929dfa617651c5dca9e365060716552116f7f990d3955015a4e9a97dbbbd4738bfdd51ca3a2fb067382e525563d3c708c9f9b1c8d993cc5e36f2c2b7385ed9ed8f1bee3f3e6ef6fba8b4fbc562105bcea814bade68d7cf414a525fdf4ef71e6e24a1d28fbc4b732c175a268503d2eed590ee927", + "073ce4ae950f6e8d3141b96480de5a26502500d4123c172f082e14ece997c94a564bd901340dfe6f0e128b50846af99e91385f3cf000ae167f31e845a46666b9c5641da7dac5d993", + "0370f4a44612c662b62c7bbe07e513dac5f2404e9ff25d08385f486507c8c0931bd6b4a702ef1af610bcaa8abc48ec65237a879f8a2c827a87665f7ff3c5060f3faa41e060855bc42b75179bf13f684c2b60905eab49de0e77c59bca61f7541b55e2f88034aa3d54fb8918d5c1a58b242dcd66b335f96ff20a9d00b472c91477c2e6f28315d8cf856c19f4e7fd9217db12a8b49ea0c69db4544973d3cdb9bce8375e2b409e0e7408b1c6f163e488e8c077a7333ef3ba95293e57afd984991f25c43a1027811b6e2fb0e12df39676aaed5abf21074ca1601b48d9796bb4d26f409a1c0f6db8163d2c12902b125c59fc0004aaae3695b2c647f9bc9dfe4fb4d0a01862e309a3b33f75af168982168b16e20ce8b7277146d29f1beea5c11e7ae813a6feea25288fb677ae92922d5c645176db2fc15893abf1261f4a56899ab7e057eca97a" + }, + { /* i=4354 cDividendBits=2703 cDivisorBits=166 */ + "57c6beb3f4ba6cfde38a6ef2c194288ff3f5e38f73250c50ad42f75328086187d2e001624398c7b50a76c76e10040206f565d42b0670a783af6c8aefa5e8a52e7e16ff5e422a541f619e21b4667ef4ab2d7127bee04c3d8079c599854984832a0944fa98276482b34ef12ceb4be2c5da002b0c7dfd36739a7e8c272f9902f85a9a76ed459f42092fbb381e06750c0e856492d338bb06344a72cc9a7843c9dc228882877736b6b8b566336b3af0e349ad49d962f926ca64da39c36a1d4f38f9718c4f2d45331994822c8ef8efa6a471ef67d0de6f4a26496d7ee9e8e330a36419b9245d0533b7a098e2096c0e2ed59377a1678878366d5916d580ebd221be4601279b682fb96f2331b471083d3807270db857ad21d1b36591aee7558bc772a9812ccfef8c0e6c0d11763e12dc9dad18f5a1b84ce6d199040fa60ffc3e36dcfa2aef17f46d7264043a0fa64003098146542a77", + "3c6571cb364846709f0e156bea4e870473d845a857", + "01740e210e41c84e181fc85f018c5020606dd27840947f9b16524b19922109969283cd90fda7a017309b4eecb2fac8bcc0f876c165d9d0cb1c4a935d0a064e6eef395ea28b1288fc0ba7ca535df841afc34d96f745562f0a553842fadbe11d273f2835672e917f47962dd9b86f57aa783af0b9d3359fa2ce7b86e3b7c0dca973411d540d4ad6381a136c424cb430dd345d5e1813ef2140d4727c7b2a4efdac0aa9782a437c0c50984ed9c58e1d30b00cdfec9085c80900e3804e2d970820a778230c567d8a99a777b50ed5e647aa6dfe0ece11a88e33bd715f06dd323f10c12bc3b46abeae6e33a1745fe3e239fbef67373fab526d4d99b17fdebcc88942f5f512a8f4ba41c5a4758ebbd5b83bfbf78cda74979d85a1ba3e0ee57f7e8734336fb22aa9a7789d137c77a426e6157b36307c00f43e10028696c520964313d2", + "257ab3823571ea5a21a4c9d826f4a860aea8ec9e19" + }, + { /* i=4355 cDividendBits=1468 cDivisorBits=1101 */ + "044bf1244fa070d257d12625b0bda354cbdf49dcc1e6f90cac6230caf0e2fd1687ae3a5f4709361d058aea179025be5ffa70ce1234f87364735d55f6916e13238a53ef08dbeec9528dc27845e9344a21c961f0fb190a0bcfe6222ab752f32f51b805ff0bf3e292798c44d0fe795347ca0e407149e2cfad562109749d01935109ebad129b65dffc13c3ac883bc949653550713eb85a7c8bacbfa3b96ea319c221f2a6a512345a5922cf17ed75fb3ccfc0b4a32cf0e9467ac6", + "12c2b7b5928737a4437f2d5c8e1fa7455caf729d2b67e3f982b9de91ef2912b38737a65ce5dc70855a9f7bf71d4e52bbad228779413231b42b9216982f5465b5a5ce59ba28dd7a70ad6c7cc4d84bd8e16b48e184e8299f25357a1a61eb1117bd8b14c9461044acb1d9474758f9d1d8130f808ca4e8bca57d320fed9122db1d669168ea08c6869c67e0f1", + "3aa1605a50614707a315acb60ef11747fb86193dcf7a9857b43ef86bee7ac47eba87f030479891d162b6863d1fc9", + "07c22b80c1711e52f697f9e3e151e54a2b24c0ede099d013c2a06eb312f0b24ea2b22f5b1a465fcef6561a08c0b4cf5d50251af7a0c450508e253bf5eff431ad11b07a3df341b5f705f0a0f21f3bcda0f407ab3e2700ec6484a7a576a793781d396aa103eead91786981a313b5ec1501603529e19ca2223df91d688d1cc40e9efb26040c2e7ac80cae8d" + }, + { /* i=4356 cDividendBits=3717 cDivisorBits=3397 */ + "128bbd1c2b729b2cd438c25d01f3ee39e15f3c24c00d291cc41f5ddd3f30058239e5239fd2ba4ee6595585bb19514aaf82ac6dfe0a329d37bf269839de4756e142b5d726898f393e7d72908f3e3afd107e3434c03b6610358d24a54ac536abf18a7177153e3cc05a0b69db0ba790f3ac79797ae496569407d45e182f150e451a6d3867f88c95d4b2d0536b12e9e8e559582726c58a6c804e832f33da4826c00bc8ef23ca2d29dc114460c77115f6a6b8e210943d06867a7eab2d901bf9445a369596d8a1df7a9701f732b495b9e8a1f2b9024cd1b0edc45c2cb5fe0f6f12404225aaed6182ef936407ef0770e5f099204e1c7e9bfd9375b70695fe2b3f2d59cf210337edfb0b234acac14de1619619098b02282653ee18996f33f46385a4d5cb8ca0b7566fdab1ee79502eac7841f1a14df7e78d79827e08019bbd40da15e9b346aaf333113da3e2db3bdf354a80ddad807a035529ddb12ef17e191409c3e005e34cd88328872fb1b4f9a6a3b9d1f56c80ba96d1aa7f09294ec334427262eb835f9d0315689f4ce7b2c89266ca883424571050360d53da1dcdcbe1bdfebb26b96b3cee625bf832b3e20abf83e12764aac549be594e76fb0a84917a2720eca3c277c39a078032f4fd436dbd49c4228c3a9a", + "09b821a8252cf3458c1b7048c41306bf49333c3866160a995f6d726b0623ce52785ea3fc347a8b0f3f53c6f7d7d0d59abf9361ea18436e7496cc1a2588002fbc515d80a27c9733b84480237bfd64d2f7f1aef69d059daea4c826df3d3bd45a5442e871cec69bbcd23cf0dee2c7b0cb70006b5f033f23539ac45b0f4c6f28d7975648930068f002bf418042328606614050eea8f0ad267633258fa0f080307f1d309dfabdd9766e786a49d1920fdaf9d0bb2cc3399443967d761a1a02d7559ab88c426d6c6fe30446654146ff0e21f1c4e669fb2c8431bc657408a2e6a2d1cb6487f314c434eff58bf75e0ac00126a59eeca71b7aa36eec6745b5f26b51e8ee50e1509130f269dd97303c30959a3f6ca5d038c1e971557d31585dcfdf903fa17db46d5232036c098b833307bd66217054cb88f74431ed20e926a4b3fb47c105f035c3afcf4fd34e45f1baafe0c0a315eabbbed97da0cc9c900fc40829cc90778f8d1a648f6c5b034849dffddc120307cceb585e6c99c6878321cb13691abc63fdf4009b8f46a871c1b747e3a9e20d66311b3dffb40652f7160ca351884dc273a603a865084dc46bf690", + "01e87ccc7970debcb9dfba8899218141e56e1c28f351ec62f84f8ccb905e8b5b4a473221d3190d3665", + "05d91b9b7160ff4b85acdb2cafcde18a51a8aeddd76cb54159daa52c6ad78ef93c6802cfbe53480581741f64308fd4fa76c561d7867816788ff154fc4557bc9e97cd539c8b66857f2285f60f63a825eecd571e3e81ba846eb672c9ace25772135b4b5e8d999104142b9f329626f1126d1745484eeff70d16eb30018936eec7f5c8448b6c5171dc495e440c36b7be013c20a5ecb480a10dc366498a884e1db150ccf14e9214f449a7187865ceec78858c59f74c94dbb75a3974f88d3194139760ca33e90b10b988e7406961a19999256424ef7e100440128545ae9d37a02582c170ac5bbead15abb0f99343bad319ae221b4a71424c8d12ee28d5bc9df1f75632308213515188d94632029fdafd803d6cf789a58303e9052bd126372268b85cf3faccb1e3806ba3c7a0e2df51d60bf7d7d8a6ccce0d92233511fa674359f052df6993b675bb7e81bad295935c95b4240fdd400f5f274f87eb8b9ba9d79bf442df2b7ac5ef57628e3a5e52327d4915f7f1265ff71039010f7797ea52b7f77bc14717dfe54fd1a450eb0a81aa6e274800928f61fbe7b8c17ad7d6f81b408162a1aad8c21a4e6748a193ca" + }, + { /* i=4357 cDividendBits=53 cDivisorBits=24 */ + "1565691a1a282c", + "8b4c71", + "275244bc", + "4e0130" + }, + { /* i=4358 cDividendBits=1175 cDivisorBits=82 */ + "4be07a7d06fc7b367defe734f396693ef7f44285d01731fd96d3c012eb0a7470a2d465273667a9e647dfee4619bd0c47201e16204b1701ea739fcab338958bd422c468d3780f23a4612d446bde299e3c0d54012534f3cf9ac690fb66978fedf0b668a508efd97b08244f7b2660eeda5d16337ba5a1573b8e72daf38c345bd301e9c0e577b758066b6bfb6263e164836de56548", + "028ba253864d8c84814a8f", + "1dcf125fcda8b4aab75b756e37f06508808b68909d763c6ea44cc6b50f4ae7d7a5eb767ee84dbfb1176770cc694797157bba8fb47b1d716554d46dd92d7fc1fd92c9138ea7b79c5fa25f3c6dc3c18eb3eceaf614ec0cd477573182779dc7167d9730b663d7b4e7301ba40341b17ca81c6e7ba5dce659ffb5bf26a122ab68be5bdd17b6859092cfa540", + "01ad328b01537a20e39688" + }, + { /* i=4359 cDividendBits=1550 cDivisorBits=1168 */ + "19665c43c67c33431b0918817574bc90c75ee592a91614362ea642d80e98b4f74c14806bda89c1894087efb1c09d79ef8aada60d8b082a9d234915a98eb62608a531ac266737e5c981f9c99ecd6cb09e88be506467e3fa6927ba26b1fde15e005819735393bdf23076edfa768ca97743b8a027029de30ef58eb7c54426ff2f32582f9072f0dc3e7555abd5483496b6283e0dec49a5ced361a5c0b6aa8c3135f353c4f3b05c8e20ff989649019d6fa98144b9e82deb2f46b127ddfcc5ccccbb314da0", + "573a8d44b8144f04cd1181a880855a7cba7b16a7fe117366d477fa816b0ebb8c6067f442f3ce4adcef3382bfa9d65c06ba3029ea08ef547379fbd39f463a47510c417b0978c457f5a1a8387dcdc89d39ed37a5cb9cfe820d6b8c2d60120c98fe3842aa3c44b3c2b6e27cfeef5ec5860a27a7e742bf15fab98d080541b2af4f03cb73068ef3cd90f157ee4163c8472e0da5e5", + "4a8b36b299efac3e5563898e1bc822041ddf566378baf2a9a0ac127bac73c137da648028839eaef90f4ec1d8f8636dca", + "28626a90bebce8671ce1fe8797354ba7831ade67fcb98ff95b151655bec6401254bb8d0adafffb541b0a6d8e4fa375e25ffb64bce3b051bd2616ec7e61b4187599a347a28612fd65897a0c5f27aa05bbeeaadafd3615594c14bb39fd4a17d8dc8473f8da253c26db1d601c9240fc43b8670ced7f658050eb158a7914709339dc1518281a91a81965e4066343cfd1953ae5ee" + }, + { /* i=4360 cDividendBits=2792 cDivisorBits=2779 */ + "cb334e56d877219b4ed2fc5795995ffe03bcda9922c162774cc6e4fc7a432003134ece9a2a362245de078b1c27558f241d19473094cb96368ae1b74f0cd8102f8daff95e83369fe5499d3ce33d1db938ae19d3e8d44b2b013b4cb38d05925789c6964a45ae12307bfd6ec0accba67fd6f4b4f3a4518d0c4f55f42b5ba5cf6d7e868c84866033c281e23ce45e504078f50e238bff46c3dcb46747ccf0ce6b71d8b767ceb9974cb390137d0081401608428433c94a3b335c8a424e7a6dd2441245f0588cabcf96fecc9e2426fc631529637bb269687972896be0e432356edf4e326c55fadb9f93de3625af2e8fa26911d62120e6c08de134c038c438800cdeb71e5d07db568340d3316b5231ff0da884060973fb93640cf19f10031b843d3b63faf8e0c6c563341ad73d87679c3ebf56eb3412963284653f8d6b1e4bb1071b9c09469487269a69c03f7720887dd1de6a350b360ae80932c634730bb4045d", + "07b752ed76a4d715cabf1a6c1f03ad2e07109dc4d23a8593909dbd2b9ce1b32001c520ccc12f3bd74255d22a864645a222ab77154442b5bbd7918c4c80e680958c1c5574de5ff9d57e79c84dcfd31b5b5b823a2b5e828adbe73d1c9e300e787c41299410fe7a974a6ef066658751b91beb7d9712a4f0d41cac22bddde001135959fb7b1e07610a9c1f8f69f38af7813a5706a0683633afba445b0387c7cbe20efd375579fc63bff639685ba36c4a3331c105b6cb2c7f9c707a2bcd04709b1e5d7359e46caaa304c422a22704c71a7a55e7cf9dec6910ded76cb02c9e678ddb4c247a894b9d0a25079d55e94e0e4bca82009ee8d758fc1da540dfdafffc5a5de5fbdd853c18988330cfa2ab153e5226c467afde397cbb88830ca38b9639255638fb3800368d352379e725edbbea93069171148145a682955ae45541abef0b31b1e001b2926a4e308aa42d6b8087c1b00534de152f3e04922dd465e233", + "1a55", + "0503aff3548dfa7b18d99688ed90d103b450396f0263209dbd4ebf103ffe4944b305ea8f455f8aa849b402659d278dc22c407d965afacb478623f48ea2784dab49e3201fa162428e40757a4babd9dc0d7dae30d4a7b890bb5080fb9e254ce9e6ba726231201eb1022e885d576b908ac4c2e89660538af8554559c83a531afeb8218398a7e57620d731837455f92b1fd8920e272b84da709d5738fa6e5fca4405b5c0f4745e15d17dd40b7afd983235648852f640771a2c814b1ce7e91f7bb331ea80ca6660624bfa2c598b9448f20b6aa46ff64ed94d8d4fe92b4e5214eea66fc759979167bd24a3b7f62b43f75664e6c87d9203ba7c1fc37da6c96ce72c956be7c5ff0f98dcad1fdbcf08ab9f4d344b2a04f3a296cffc4434a0e98e773c9089c72928eeebdbae49edaa9706eddaf76d71a6337ad8b8bb0ca5516ca999d8787707d3fd312cdc0cc20088be5b1f3a3bf21a27130d246903a92ce6bb6e" + }, + { /* i=4361 cDividendBits=336 cDivisorBits=208 */ + "7a1f471bb19084b401c5091956de5c155fcf19d67e23458f9665289e66580c42df9e0ef76506a84c0401", + "9fd13ca0d7cda52d54e4f42cdbe241f8330c6da5321c65fd9c63", + "c39e6afbae0d7ea8d86a2ff0898f52f4", + "08b8fe906bee4fbb08de10ac020faf68d246fc8e0e1ee02e3fa5" + }, + { /* i=4362 cDividendBits=1181 cDivisorBits=422 */ + "0f5dddb785be981f5e7df4c2607aea6e18b832184006da7b85d42e0f81102f9b1cdb415276f78b7dffeb86eaf62a7febbf2054f02977b25b99cf2c024a6fde667fd54803b2ecb5b1b3e4c30115ee91ec00150f9f7a5550b6503915184c31e7ca3f35e7154ef4f86b9818cd92fb500dd48719be1a6b49f3811ffec8f290e7d68b0ddfab2132c4afbd8add01ffb7a7f9d4b36a0a09", + "18585e8be7bc4835da8d98dcb6f809434ae3a18845c616f9a2fbdfe5d4f42b141df8d1fe7f34008e54738697ea6dd3c7b0de09ca67", + "a196441c029fe65aa837e523dc9743f8a438f18d238ba73b2391040fb0bfb054554c26edee7902981287fd2925fa3726d034f09e6f9f7ce174c5fce4324e592bd653c992b3048db215a06172bad9fbde94119cc012b9531d93f6c5901ec3a8", + "040ea613b8d0f875611c5b7cfebae527f15c8006a694726fe02e95832ce74d875c9fe1d2b1ce9bc8df444f74f045c4f25edfbec171" + }, + { /* i=4363 cDividendBits=2620 cDivisorBits=742 */ + "021fadccfe32e42ffcc46c50cc12926f43cae22497d0e2ec74a5796c365f393677693c8512d20847313d19417573a1e94205fb595c6cc6b6ba01bec1d2b58f75668f166052ddecd812737d84f4361ebffe87de2acf6fdbcc3420ff3e36639f5aade31796a3cb2f26605c00ab9192612aef7258c13eb3e0a7c2d7a75f11e101ea507f392c5ab8a400a5307bfff0edddd9bd289400da94da3d81460fbd0dc97539c0da0a3601e489a52115fdf811b25c842e5fb7fc6e381f896976371d641be67da6ca5f6f7f4dc21217caa346f0947e163a43096f676ed116de9e2f2ff2684690260704313512776ec8c91c1a4d3132901a5655bd78aed536cba318af8a29eaebcbbf283e4c06b5b3c8c8240f73357016bcc705eff490ced28108693012a4610c85561f3a7b1e7831a533da69926aac1f4a7584571cd07656f593197e85c04b0194819563b8fb964d", + "2c02713a78c9f77271e1fc431953f96407f90f97c08f60955c5642c212488551a24b2aa05cc910b698663f172896a6431775616844e26cb1434518a398d10c4bdb313ff5f2746feb40f77a279a894d6bfabb958bd34f56aa2c8f02948d", + "0c5a897af599645f61f66826cd43994d8b615d7c7cdc9a2d94be308b3a133cea12b968c352b0b2b56c8f4d7c179aae5d9a02f5cfc5a8e9d7bd8c8fb3b1eb950a71e2a8f84e8fdbd23ebf553d355594e118feba61592ca677e1ef423470e34cbdb19a8ed2e4a67562b41d42c6499244a4ae90e1c97527a53885d544c786ccf434aaf618b769599ba3cec02812189298b04a4eae70ce9256e2500d12fa27998a9094142d2159ae06c81878ebdbc2863adfec14356d904aca248b21f639722fc08576d5e91657e163137014a2d7516ffaec9fa95e4bd67c58dc30285f540001de2d37732595b2dab4ae1f6e0a", + "20dc289cb8ddfdb2c7fe71a9e63d85e3a9a5788b622dd3f55dc656794ff7aac3e1545405942c263904bc5e66bd8e91d9f8438d2c6cce07a45a6661857d26d537b7418198bded6e9764e7f631284b77c1e201d92cc13e0c32c733fa32cb" + }, + { /* i=4364 cDividendBits=2549 cDivisorBits=2343 */ + "02a7acb6e8677651c3acad625ec308931c3c2de17a65cd08b77bddb17453add68bab568a52089a0c278eea616940e318de90452f0e002a84eef41849ac00d9c1685b41c71516500144cc2b937eaa68f9fda52c037e105d690dd3050fca164cec58cb1832fe9fc52cb9ff969c0befbcd2b7af6b040e46e5b53ccec922ca8c53e3730d550bc90c21286ec2b661c5ec3bc782f2eb2d067f21becd1260a2eec767252865f6f1d5856870636d042eabbc5b743ec1cde53391b951e69f0b1152c3885bc66da7df08cc3012c5be18cd555832829a3cad394ad08172f4eb42b844624e13d3354ae38e71a915f58a981f8b71f26f28d76266651b769e35325e7010cbc153d912f9ef1a56635f5d811a9da8fd2bb58b196c44272a4f7ba0bb96c6f6ff997bb631cbc378ccf517784a908c812d04ac430c1152594d05df7187e17d379a6b", + "65ee1886aba4dcf72667f02ef436ecbf5c015ba006db411bbd8d0979eff9506f9869a216a70542c76351916b17e7576c0a53ec1fee974e729f574f305a53c1e766759cfa8cd93ca6b682d64ada6efe534083971b0f300723634a31222ced17688f0324b17228ed03a79a029470b9cdeb3e3852d0869be21a78840d7330c65c463fae595cf216e8ff419ad4859788f7952b21ac633bf88216d414a5eab6cd09ec17b9f88e6daa5c92d4d0996f529219839ff983d7f429f4dbd5194cf2d3de6c7c29968158799ee06ec15fe5d3bd5429c580199caacad2bcb0125155c86255c9ae60bcc42647092b5a88fe78498d354bb287128439ace15219326150821efaac533b4a84c0b6871bc003e5ecc96ce871fa3155774fa0cc3bf15e820cc80769e58fb90697b895", + "06ab05459da77b13d8e652732b157e65cbc56544a5e42d9d10f5", + "325787b3d284e59bc0f1ba85b82625ce97e195d462f019121523a2080a7231e28cb49fc8052eb7575734be72460b6fddee68c04d5655fa0ab89c8be0932370cda5f4bb4e4846d26cdeae6026499e2d86b0280cd67c9c1fa39508843acf67f3cddc98ec8664b33bbc78ea376d2cc979ffca9293bacf344d4d485b3d771f0d81084e0323dffe40eeb4213c23cf659b8589420efc7b60878d9af87451740244e41fc4c31742b2b14f8055c1be91f939aef6d5e8af689e6e6465b04336e02513df9c54fbf8d50a9a97c6eed5ead4774c79833a4f5b142c2f689517da06eb39df237ff2888600fd0f261c37b870640b5766724c6dc3cb6cc7e4bd82d772f585ecf0122e44ec228552c0e2a22b494cc4e52277002fa61a73bdaebf6a17b60b70097547324e19a3d2" + }, + { /* i=4365 cDividendBits=1193 cDivisorBits=300 */ + "01e6b376fcb4f481a4d65a84df13c89580b4789d75e2c9e721f1d8a7f374b33f164896b040b030382c692f624c14722acefd42c78b8279c7d17ff0ec640d3a3b6813c7b1cbdc6762cb6989892705cbd7c209da182d0ba1c5dd2953abf51beb9bd6681f8784c7e77ac79c21d81a9d1fcea793ae37c30d52df5da7d58637bafe91ecfd5ec24909e6748c8819d8971476da29ce9b7f868d", + "0a4adc1c07ed5b7a3580820b9290ccc17ad9035b85412b0832a695c162fca926ff2b69732446", + "2f498df4d7c760e2d2cd8898102967ba299f1264f86362b54d1f4256fddcecd9716ae8bf98ccaddccf6e70fd2131b5b3eb3f10bca68681d49548678d518bfb99d3e33f44fb2dc948c722c403afae11d6f0162aead53febfab01d3f905c7da7f0ac71e15dc8ddbcf956222f51af2eb399", + "061ef86f6f404d899f519adf50c3ca131b432e238680a54da81c9895a1b3bcda517eb4bde6b7" + }, + { /* i=4366 cDividendBits=92 cDivisorBits=50 */ + "066d351a336c3a5d7cb66bbf", + "018301f1c829b1", + "044047febb08", + "1e474362d337" + }, + { /* i=4367 cDividendBits=349 cDivisorBits=169 */ + "e97d97bf3fbb6e701a5b6d9c9652d2923f483b9c36cde15a439be18a5e1a83f9062eb6b103648191f56d18", + "01b8de3e5310be37a05bfc322aaf9122e9c3653bfcb1", + "8794e187ecdbe4ce739cf98c9babdaba1539145ae884", + "0158152594e91ad0bae00a6ca44ffbdfb8c557ccb9d4" + }, + { /* i=4368 cDividendBits=1140 cDivisorBits=867 */ + "01d1357fbb684b46c9238fca7480f639c63d4bd390ca62f858a5d52e0dba2035d18a8b5972f1a6a283299dc5b14fa82fc31ff1b27f504cd51b3999adc923a48114450060e0adf9b34b71c0b461f04eeb671486c75fda14150dfdc7a4091a14915e6c97b95f6cec048217891d735a7269c023f70f4606b391196580be0a4437faf46b49dfb5decb67155f62eeda472b", + "0772c91ca0484649f5914ee9b6d52ce9194205638b490bdf27c8ed12caaa54bd8df6e91fa1dbf815ae3550e9bb2af6053ccc0cb12639a9edd29979d2c6eab0264f3ba1b0bc42b3a9bf23c233aff02c2f3a4c4c560c5576f27bf3bba4d1b9f3c435bf03157f8207db6d45278e7f", + "3e752dc42bb45ac5f3a196c4c8b5636b573aa3b48366b677208bbc3c5be7c8f1796c", + "01b33a372dc6ee9e45fa9f0a21c722aae01cc91429d1fc206cc21a1da83db8f508fbdc7f88b281b007c855a7ecdac95e901c20e32e9d66303e0a95323fb4eec4ab141159c9bf2af40a902ede0eb9c6e3534db6ee15a4f216fa19dbadca5c1f351a28d0a3a9c50c6c70b2412297" + }, + { /* i=4369 cDividendBits=1038 cDivisorBits=340 */ + "1fa14649483773a65b9205abbcca297eacb2f2b1f1b5a158f2d2fcbe0ee1e833c14083091b8da5bc7fb9f9df54ea57c9314f58d01fe8283e8868d57e0f05e792d9e7ca4fa5e3bc1798c6de96954d2ff7dab73a20ad8e298dbdf883fbdbea6bab8b28c7ecdbde665106b079c0013388110951b49afa89c79f1fcc38a7022a85af6b4f", + "0677f6f83a9a3edbc0daf2c4d1c021d7e5f836f87150a2a1392aa79d3bdbf8ba20c0a37d9baedc7cd29733", + "04e3c77d1bb7a3987ebb2b2c27ea5c0f9e6cb975cf9798ab3fc6a47de6333fe5fc400805adc0073f5ee8630fb4bcf6523b2795dffbb57404f664a29b201418b89fb6eb772a3f96224afa84e43f333d513cf64cc79b6b3f10", + "0393e2d143079b2e39be14b4dac30792d8da529e3793e4e8306324adfd67ceaae66855ad8f7774d1ff6b1f" + }, + { /* i=4370 cDividendBits=2702 cDivisorBits=2538 */ + "26df0eaa32048340dc4ef85fd0011c2f4abb7998133795926afe0a2d39cbbb173264ef8ce2a8907681abb3bebeefb8b312e38759c1bf22336a2cb7d6d467730bcd1c38be53fcff6d25cfd2d0430dcad31ffa72255ef4c7f0cf54d34019667946d2d03107cd45510a7d219efde7ff4fb605a7705584bb9049e4acb517b62ead675cf8b8ea26f9f6315809aed0d8be956a66978da31f3052cb9c39eb59a4bb055c81a906c8b667368eaeba7408fe830f52c17cb383f99cdf6c350d6178152fce63a512947690b739cec3a5a2cc16f90b8d03f1a3ed06fabbdf76001fa784c38d27f8c460eb3b213e915aa198897d0028cb473a18cfc409e9f0dc78f08a6196c037d1698c9ab1f0f542e6c6fc58719ff6f90926b630446d3df12663f78859ee6ffd68ba3971d8693398ad6408084baa6db91d5b5dfd78985c7b0fb36c0bc85d6f91a3d079e260b33ff652a9f1c88c9d31276436", + "01e8904b8b6d1e5b0c356391942588ac20476281f16836a1d5ff2e8a1c68528c60b98753fee2b1b4eac609586ab1632aae536a3dbf7c65d944b53cfb2b3b43f0f9a07ffd3928be7ae48841a42e41b0d30428af269736ca9fb1b610bd0c5e9fe2b76690d44c04d37557c20bed9a365a0f7458929ee93161c992001af9f91adc89337831a0c3338cc0adbaa63a0241f2c5fa7eeb05782dccfaa89fea08612543c5513c9affd8a39afab8052edfd487a8e12f49753dee4d25c3e5cb0170ae184a23930f969a6ee5b8d9434a3423c33e8c4850ed004b18aba9ac6e9c3b567860cc3b9247167afa4d901936ed456b0d398a5c3fe8e0eaf3eb7a4b4e03811d72c53d96188308b57ff59bc557426022296bbeb4dcca337fd81d0499dc6f5a0b8b67eb23f1acd2709802afbe84853070bf42246ccecf3733dccb2c1c7956cec2a77a", + "145e3448715fcaa30e44f4e55b0aebbd1c3b720d8f", + "0163a88327a3e3f7a23e20df453ed4cce4dc5becee12adb000c1b836607b7f11c200258c952473388d135c557609024b1ddbbaae04447b9d68ddf46070e291f21d06f0901e76cba88a1ee0850d758736c1fb0499be08dee87ffbbed96d69efae2761d2f6fa16f9d39673bd8241953c60800022990b5f18157ad5186bdd42eededd81f57cab6e386d1025abb3b79388de3cc16512ccfdd65b58da11504dc8b563481f6a2164a383452f05cc8dac479a31118f9b4c0e3ae01b3d9247de270289981168d8e8c4ed7d1013a4caeb2385b0fab7ac557ca66bc608beff76bb8d256e8c541a4d96916c66b18ff7e89d2dc46a1023379cf4cd9307fd60cd62e7c21a06f1039ae099343d9196e2ee1734910d6059c7b5aee36b1e85e901958d862c6a62f88643e926d34fee5864493aea7b3546d3a6005b64098cfd7b0a001d96a510" + }, + { /* i=4371 cDividendBits=2389 cDivisorBits=755 */ + "1d83cf1e497b6ba4bf73ef03b2834d1e0ac9442b084183e6b35f94c941ef3567d1a0c54d3fb66a238109daa6c8d2ea5989961411a0ebe9b64997939d4807ada57074dc4c926a243241ba0a45a1e7dfc45bf9270898ad1b48a8ae1d878d26b5af96b8815d76db590c880e190b6cfd476301135ea072a9e9ca0a94bd1b45064d5e1aa34f28fddbc5adfc8cbdfc0218f399f1d2617716d0250033338fec3956c5b9197121a754a019931a8318c0b3ab37fd52d1c452a5441ba4e76424bcf927579e125bfbedb8c7e08b3c3917f597636df309640f6cfc32353901244f9bd08432fe8f9f8fbdb8638ddfb7d3eb6993a3bd52ffcbc7eda155023cd5de306bac266a79ba1efb9b7812660b414f5eff5099c625098997231ff37cbc84900e5cdd7230c66a63e3a400f844a0f5bdaf", + "06bc8df41f2dcd3f815434c67b983a911db4e333282567be7a4a4cd6018291116066c2e1a5e8c6fe366b7d5e8a2bd7418b2f9603e649a523d40613bdcfc09cffca97ceb8d3d71bba668e8b2cdb46e9eb49c57bf040479a4242c50f8e08e5b3", + "04619d9370ecd5f0e0f1df7904dd6b6fb0c9a601cebe55a4ab23be5dddfd3f4feb44589ba1e360ef8563155d524455959259bf75b255d5575b2b6fd739dabb2de704487a56bd3466dbb42d1097dda476480be18f5819c2b7f53478a170b7c242c5e9d50c493f5de91083fb7c81aad1e788ca8a2d307db90dc393544aed62b7795c4e23958b481fbc47b4732b91d1717989481b4981397546377d6be061178fa6117181cae440bb044534fa01fb74f88b67ccaa0c65e110d4ee38674c65a7a8979a27300306c9c26f5aa7cae282", + "039c9a35b6d4241f42e74a9f09457e725705cc72f59fe3325a7cc449b1cc8d9de2db3c48a6324dc7ea819982b3e2dae59aee1853a21e50e430eb32aed84f7ff6fe8854298adad954306a3ce106fb78823bff1254ede17b00d3ec2fa16b12c9" + }, + { /* i=4372 cDividendBits=1266 cDivisorBits=1254 */ + "02eee5a2a489b881476a204d0c2ee4bd15a32d9e1edb3ceaeafaf43acada954d1b4b7b8aeb7a70122c57f89709334b7eaa22519925f5f785a76fe61749e05e3646d746b0a645f536614dfacf8d5cbe8fffb79de5be0b0815c857a9e206e5de9105086940221b81f7a1108c114f8fd1c2ec57fa826fbe36ca2bc37b0a650e8397be35bb66d806e5a81fc35f31d6f11e5eb451b97553437288d985820e034486", + "13fda93b3569eec3b05f6a736577d56b8553b5486e48eae46e485bd83c1bb2a52796275b45e09a47824d0ac7ba12629ab23b31be239fef71354f968d96f8c18134b3e38e24cb4dffe7a011b7fb8828f0b8298be444b02f829da1ff01dd76d13ac48ac8ca95481b08da8ce52634364637b9eb447a983cd93fb405643ca89646d6617dd1acda8d98ac4d46659c228f33c7cfba54fb6179eff4751f5c43e1", + "258f", + "117b8dbe92d29f9cd09de80ee4f4544e9aa86375183cb170e4893c6101027251aafabe64f14fa8910cff25bdb2f939f63457e199f3938a7e9ddfb9f7154a830cd650fe8e055fd2e175d6103c8f9656a2bd789b9b32cd5d9932894fd8fcf4a6cc90b4b15eb2c83f881a3ec9accf4ba5581f31774261669c29248aa2ce9f69305e16d0bce2597ef059082f83bb1de4e6aec21785c15fbd7b0a8d33a9d4d7" + }, + { /* i=4373 cDividendBits=913 cDivisorBits=437 */ + "85a2e1c45c21a3fc83058b5f09ce23dea6d02f5066270062c7708b0722055b27a59bc708a20d9661ab3e3c6bda5c99a05a55d708b55e68d38f0aaad5bcb58538ba520a21b0ceae72bad4b3bcbf52601f56237abb4ac2e8e007022ec41e218590ee3bdfc180f0da2eaabc12877f0be011b7de", + "03cd9687564c98b047da39aa100ead162558306d193d7375eeb2f9ff0d3f20ed61dd246721e789054cf89c39e25f0ab346a6b7eb857775", + "232393b1201912569abd10ed9f35fb4568f2b2a85fbdc346255649daf34b2b7f9b2ddbdca3323875af0a2f69d0a6ec652979ede09393a83c01909a09", + "016e8fa67975150d43201144d7c62f3afc901f56d9dfc7be0bfeee95ea6f37b3e64dff7f97fb181369b21d91d646d8348536efa7b422c1" + }, + { /* i=4374 cDividendBits=3457 cDivisorBits=2612 */ + "032e89e2a202ddd54706b275bd30ceda77448e36d25a3ac01d952b05ac7c133ee4297268e5765ec0af6adebfe79362a00d42265b1a8e481916b681efe303911d40a3904c49a8739f548828290148d4404cb1dbc36c89cd10d398abb023f4eb4407e9de87d0720ff9e1100a97143b4aa38fe569f9e08915d02cdc805c97af30cc8d786dacbaf8ae0f26af466466fb73ed28c6933ef3a09df33a9e8239a199424896669ef10f080e04fc174dd2399aee46ec77ba26a85631acbf07414c417b5fade80aac290facae94acb33a7cd96f1d9f4764d6abd220986fcc5c71bf816d95f4e244d68b3378fc84eca642bbef1d67f756522a594b688d5f80a252907651937a9989d442845ae93d1a6373e1a2c56054fa37008fcca7e9536a49a77e40d6fc56254369b45000f78d3891aa3c642b78c6bf67dbf93fa38c64ac44a45ba56dc3262bb43811416d981d0b8be5fa88b4c9f81e5253b9c55647f0dacbbf4b90915e8d0c59cfa378c2cf2030de85413a0308e510de706d93721894dd9b074e3930041557486a0a3201e062077f698649ae13e231f9fa77c369e0fbd8041fa812f2c925965b5e00eb037297dc7e7b3e0bfccacd", + "b1f0455139b685738f0f50b0c73164d013b34bab90736a9f20979e3eb7fe0dd66855cfc773a98a74964c654f1700e1a36a0793cf9d207afef2aaaa786a5be368333cb7be3d8ec4a2f4ed918d5797c3d0ef1f8261532e731f1869e99476bbab949461708b5f151ed7591a0c0dfdaaa4f4e72112c9f4c9302d3a4051cc8897f017f63ab75ba1479dc8e0d873b3b7b2804f678512960edc79d5ba9596c1bac51a5825d475078a3b43b7e136b4b835676d8a4828c5e1433d59da2f7c6c3b03e8ed15e5ee40432570791ed0bc1edf925e233b1dc56607e851a5f0c62f90a90e8b95c582dec4942c25f87948028df94bfb1f1e1429bcafc98fd8da08db63d9cd873ba2e0a01aa2250290b8a5a0cfdf0f1b715a13ce23097fde10a252aa09c8e555d032e6f45791668bb529ace0490c880e453b4a4a29aaa5e4f364786219151179db66513e8a9ba8bd", + "0493e032d1e37751236f5d0d0d92543bc6b03d7a084d881cea12660227d6b13742cd7649ca3aadebd21a8bbad78e988167a6e51c5bbfbb07f073cb81be396aca7a3572e79dba9dc05263525cc56735b4908d13aef5069936dea515804a8c031cf68ac6d1c2ded596525f", + "5fc65439c0d853972bffd7fd8d6082b208ba25bb09d06866139483a4fc76203e250f83e210eec26e7f9a00b6f79bfaf432a092427a29a09b3be55843982dc2fef1893b600b316959aac113224ed276c13de4d1f393a0f6a8f66f113fb21b23c863e80af405a693eeb44e2da98fc8691d2f900787d61a6ce244f24735be2494c4e4bd309b2ad03c03ce29ca6b24bd039c199145fe10837ab2278ce8144814f213735b6363dff607676a38c81ba4da3dc78da9ac2408dfba74ac9d767c47164a51bf2eecead8ada65bd0830ca1324ae8bc41b8e9de3dd7b96f3bf4940461eacca33170824a9319c07ab99b49f9d5f9c53f6f87a6334bb622f4b8a5d486462b26d7169ef6f8b6b67d18c9e792d779ce31570c93bbe63708d6032950b5a454b4362f3587ed74f26fb9d1a12edc887665c2d5e5a69a5438fad061801ac45c43ccee5f0422a06ea2aa" + }, + { /* i=4375 cDividendBits=2635 cDivisorBits=2509 */ + "05f1f13c1f245fd89700328c1b44258e5f76771f11930e5827f53dfc121b812d02d5197c2ca735afd6f9e7f72e990db320094221bf70e74b076f63dbd78b9c9d118af40ce39877dc071404e0f6e10ac822366f9c8958368c6ed95cc0a2705587f79ff690c7a047eb1184d506784fa644235715f125a21af6afe71d18960c04abae28b256a19feeafac2d215057b7ed13ec209d7320affcd9e54c89f812f0662a6de27c7db056ee4076a78f6d024b249f8d9c7a792c64ce37f8a3535e421628af36563bb56cf770c13d637c948de1700cd8583725a74bdba2f346591ed7725c6592f8d638c503837a4a3d82abfd8991a6ea8c18fc7594ab1b8c03f39abb6068dea2e728be4731beab38d25b8143875c6d0fa1a169df8518e53ad17e7de8ad986244920fa31eaeeecd75868ad916c6504a83c2ea538ada6c78c2bf7c62c0ac0e87eb258149bcea045a06ff", + "195201ef2695f5b397e21ee2b479b5b7c0557977e443564e6b4c375d58741cef7be761a1c9b172b20d1f6567b695790d570752f07df5c6b2e1515fcc03efdeb6bb18f86eda2abbaf626d6b930242f4d6b13c05a10edb4abce903a59795e2baa62d5b3de073b2a7f7a18390e49b810684dd225f3a68cb9a7c338811305f72b39c6206712a0ca7daf66feefc58f6d7df27afa74161b7c86b71e4367c1fd1baf8e9d1094d8232c39398f48440b4f88c3ffc70237887fdc2eb65144bdd00550babd80a26997c859648eadef05b825876c190d6b5a492b26da20139ebd52734ca357b811fb5aef750c07ef4668f7c5dad67b4954226979733af3da5ab567076df702fa3e782e75724ee2326283558f6dea28ca9aeb85db218a950fd25d4027e4f4a9ae7b277f998fdb38502f4514d19560718e01da55ae741a93fcf70", + "3c1b84c5fa71f6f65598f88fd29e35d9", + "15580bd2d05638aa6d8153f984ed5bd2e1fb9e2f6c76a565be6cd60bad8f29432422977d66866226f94c9f68ca8a841039e924f57a2b1e52b4d366f7cea6e0c7fd27c8cb75e2748427d145d500c49e7473c69f78b185cc6d352e9f8b287d04a9faa8730701befe711cdb1c947db5294166def3a010c6c1b2fc815581ccec9e331186f536d4ae5a4d882409c357f20f4e98b1b3ed628ac376d2c3f4d23a7f8111b6bf0b4954137fed4591dc3e5b57927a76535e69c1288a45da72f51132b4d87b54ba197f01a22bde5922ee2c4deb7609751a5e584c6c2033e2dc6407cded3e98755210387236d34bb7fad208c146e334b1563b2cfb61c0974d3bb0f24fd43b94802903d8b7ea4d016d16845f4dac667feec778a81a3c7ba48c1005cc3aa3578d28d3b718498043f70dd8b4a3afe9d106c1f337e4f11b7031010f" + }, + { /* i=4376 cDividendBits=3924 cDivisorBits=136 */ + "76ad2ec0dad68461b7612cb15e81ee4bede7edb8e613046291f4343230715cb7c0b04cf0fd156a5da49edd6c1af0791120cfecea5c337f33a0c88c84ece798cec1e8c1d527bbb47a927401e7066b51c4702ae74a5b5c2972c20ea20802214a4cc4377503581f62cd5c3a91ffc1ab603cec2ee60e1571f2375d6ced51546929733d78d9a35858dec99e621d8342f83fc00a14007d4248a56a8228249b58783ed7f641d8e112ba916eea9d2a228d0203976e8b879f465c104a3fc1b29f0734948106e8e35f77dc80f4fd4b989dd29d2eb361dd3453c541d676b6e9fec793034ed52ec3282355cd7934453e47eff97123e2090bbfd9167d354237cb489954117788dff643b8cde3a1d7a3940ed88971d5563c98bac50c47c543f7a0545d6166b4f389ef613f01fc00523a95a3ade98abbfb636bd6d29af487c95beaf7eae92dfa6a33901897d03eb47e0669d1356ced6fab79bc0c7140a2925a53f08378ec024e79c77807951a265d0ce91c07334f25fdb05dd285d835303defb67db119647d06904459fcc6914523c262dd2883bb491186ba1ca0b2c7560aadc4d1c0af0c75ef2ea4ed21d282f197bc8616e43af5f2779679497157de958032d08268cdb1560703240385a525d0e57f5aa9ef2f831e0923585c1dd1cbdef2f5a0d59d41a1d57e0aed8445263fbc28cb4ace", + "387d4bf9153368d1fb327c2313dab542b8", + "0219d2105710d0c686522af3f52e337c2e049caf7293bf344899535e17b88f09f9742d917f434c905f7b04464a93c813803a1717f860a9c63112e0a7bf2f1af5e2cc9afee38a621781d1e4e131f6b02fac568b1480416e4737c5ca2ba3247aa3fc223108f775f066786e97a8e25c222a333ff7a874246461caadb1fc037d25714c5d5060ad1434799027eac50446da55d8ff5712d6b8910d169fc5f6a59ad28436cb096c990811539b451f1d959645165507d5cff3a2abbc7def6dfb57b09a495e449972024f6913696e4a7af3ada0b94964c0856adfac821f692e99f08596ead43c6cf42b110c8a3630f2a22f8de9f176e5dad6dcb77ab23be04970dbc92c34d79cbee8fdf02efa26dd0dc9745594a8fb7f174afe03fecda882f81640c09317339ab0f6020d882e1053fae030ccc919a4e1f611b7f640adac20c62c45d72faf18eabed865a317362ea0714090c7b5b7754785fbb6f783d6109d8f58fd375058634a3f3ab466ecb35929a12875e692ca3d35089fc7f80236fac0671e3b32e86952f2061cba21c74ebce6aecf4e9747e1ec97a2f295aabef49afe29a3aa5575baa1561edeb541294aa39bc30a07665c8c21b9928c8932398fb538ee13cc71939e2a2eed23afb880e730000d818f14f610665af60e95eae5c3e536", + "e0d4ed44bea6e747393e45f777b89ffe" + }, + { /* i=4377 cDividendBits=3295 cDivisorBits=954 */ + "3e7c2c7ae4b8293b10323a7c65fb13e0442be44439c40c6059465e45fe3bb44f0a09d4cff185a2c3a2274e30227cb5d7c3fd327513c7bf4aadabc175471199da71209338e0c0e9053c34d9f0277190fbf7498f59beb728d51d95f300e48af0dfcffc12a202c176a335553e17e1de55baed9584e6b09bf8547c5c6ad7abbdffe40c78d0b972cfe42bc763efdb7fdcd21ec7ca3c95d21cd813d1c919454e37df3d628450e3141a67f4f7ebda3a39ee3da6d91aca988206451700f315ea17693348064f8a6df1f8a60e4e268c08bf906f251f60be034e61c153d3c65e5b7d3ed3354e9cc1c26e40688016abeae923f2bb749865d6e923f6420b4ef05b66e6f1bf2610762d5942df915aed89b238f17309a968bccab96d3a7f6bbb91ac919a485dc80875c82cf5798f16550a5cd54e36bb2e37d6f6d7936097a712fefd7c3727a912d890528b46107107e4b818d0b1642e0170e68086e5d4d9717180d521932cb5cfb19271bd1252b55a9f7846274857e17073ad2b66248aa6d4556846b74efde3ba9eede7fa3621aefb0e27e811615935429d993b825b69e84b53454818", + "468d96bdc71431dcb5b1825204edce66d0f69b961e60f53f4703540288ddc44a2328b20917c7702cace5fb79413dc11cf75311b7b3e1c90aa162f0c5fc13dc7c5add0336959fbb36b07ad833433802627b0fe67c52161cbd3ea9f417579610ee9be7c3a258e21dd0400acf415d9f7ee1ecb553488408ee", + "e2b9b2194ce015d928544ab5951022ff91131a520767a0bad4e47fc6025c02a5eeb1b56d0b5b0a31f03abe7e460d3b09e98ff05bdc88a2f9303dd28cd75c981965e49870e890d1f45e53e0a11f4a13a673ffc8c981b8ae61dec6152478f80515c0f3abc10a91ac635d056720194b8207172bba8c2f3d0ba1fa1b4926f9e0fcddc7ed4f0901470fc6cecb78a50d8d9874bcc0d5cb9367a4887dada62d2f9b6ef35f30d25f3d3838ccb11844ed6de48dba51b7680b7a33b8c131d87c4834eaa5fd2e2289f6c68bfb20c1002a614a0b264debfe02cc16d57c58365fcea6ae3540aa1aed477dd1ad52af40e60b16a6c8fbd50a0c29cf5d5811c8f93cac70a29f04edbeb69d72d465f4b285c2ac2134e640352afe06c85281c727ecc167dcaf40bb0d8c943a2205", + "27caad2f05a13a0f1b299bb76b80c7e9fc1bd955272e9d4be12b743c299093995f9b537721508302d5ebcbe4bffb311db8ae40e463e51c9686a2ed55b824b1a8bc7517987a9d812d15aadb27357a97cc1f3d46375e9afdefbd232bb139a4df67fb7883cf85c31e5e8bed7f81ea39f6e46792cdc1957f72" + }, + { /* i=4378 cDividendBits=1144 cDivisorBits=860 */ + "118bc6afa5ec2eec40c9ca6211fb2fc6d50ab238c6fefda7ec348e4fa4366b0c2a2887a7f0ab99c0993af9e48e3e62ef2d50be1c0286198109c880421f41d391e3dc591b85aeb5587736177ffd23188a23fbb2487f55766c1fe3240adb8f637377767311c36586e49b0fc00da6f4d8b6a07bcce48afccf19c30d037c0212bd432990fbe0d62c53fc391f0be3d68639", + "0dafe819f711ba065bd46b607970ce32370ab595ee75c63d8f79cd278c42e8d5f27c59089c8457c0c61656fe4410f72000f347bc737976b73ca6115e7812fadadcd3364bc5291ca77909fb1dd586887cdbdf19b183eafe8304275769231fd7e25517998c2a41e976fd858019", + "01482ccf17656bae6c3314ef8179cd0633a38302fc2e943565a8c18e291be5f92e82c89f", + "70b619bc2b040d5d9640f520161700d779be33a39b6f1bdda22e1bee690eb34280c8b156665d7dddb890d959e1ddf8d18f73e7a5fbe4b5c6fb0d3f55304cf77c8d30d499cae7598800fea165495890f963d9d4cfc8fb74646b6c3e2bc63d6c7d5074dac8d677f397266eb2" + }, + { /* i=4379 cDividendBits=3804 cDivisorBits=3603 */ + "be3d6ccbfeb9e2567b243cd2c4802238b2030e86701ed0630594c6b4d5f2bd78a9283308cc70d4873b0066cfe8b0eca1b94baa79fa23cce2ded1c7dfdd6e7a9dd8843a4078ec7807e32ed194c83a6d0555d91c3698cbdab665cd25addee147e168bcf16dc4f0ce1009693298164a10e5882a8a5c97eb5b892d56d261fe964beb52e6d357ac1bcda42719c04f479785d3d47763ceb10a5c913321af038971f5d5a241d526426db5fa1421f7df7699365a3c1cbb9fd12b8b19e35eddb7cd1b52ab23fcef8905825284da9434ec260dbe25c2d867a8efa31b4b60ea77ef58430ebf1a916cd4d4895fd18440d94a5e1667c9a3fd83b0e7d73c2d1e456d5778d7828a2c61b5fa4cae442d2fdce27195b8765a46e0996eb8d521db3e6a9e95306190c1d27528621b03016cc550be7c2a5d937882f6532f4838368d62d67cd1ef5262e96be53f166d74f8ae597bc11e9d4c80454970e9c3fe7934dd486ea473ae343ce2f42ca95b0f15378d7591265e7a9ab3fdb1dc07fec5844cd41d15f963bade542c6f9a706cf53e2dda17bdbeeb70cd681da8b647f7150bbe787da3968ccade80af3c93f62ac8269a9a50059bf7b8e41a3fb23ccf58046cb6e2832e15f4cf0d60017d8f9e5ddc0c944eb4252aa1512f08aae3b33ad3174ad2eac7a3cc", + "03efebf59654831dee3c8db7c0d764f6ecd5f8271b389487d6faec97ec73921e1244a57dfb09f38a03c4eabd8ecd5668841a4f0681551370843ddcb57786f6efd68e74bfdfd790f56d672d1ff86430d66b67f743860db2383d325c0b8be76d36289f4bfa4718b8c55389e7f674e0e86793a83aae9fe2b0796262b6707b0fd488203a6dd4f3de3e4ac4e2f482bfe708bb12ae43ec4244127e0afaee7d2829b75cab5db89444ae818f43d3fdb9c7a53e6f5c159dbcb2d76519dd1f1ab7562bbd91135cd0a15b55a8b195e3f52ac1e58f26efd113269c33d2b4ba9bd20868118d3dc00348aaffa75b175e4bd2d676208d76873046c08527d7de56f9763db94d01693bb409df44e26b7019236fd6bb769b0af65239709624d46dbd52eeb24208674d16f67bb7959902832b9f17c81f79765fd2ea8dbf8a00a2907b42d4b7cfec398c29ba685babb150afe147760b9d45039fca3e29a55194e18aaf230fc8bcda5c5a5ccd6edbf06707798c4ad16c09caa9c53a0112d50ae664c5c2d951d37804ea457a28c7963ba0abb4cada931647075a6d7b07ba9f1ea719cb39436390c08caa2a15daa201180c406d57fda0cac755d55814f231e3109899db8ee24b1f1a5baf38520776", + "30519397061ff6cd86ce0376f93157c8a668ac52d3a5116aa5", + "010a03e7079acdcc2d879b17bee78383e2f91dd1a124ef65ba2779c399025c89f906731f75e67dbce4a657934939e86f0068732cd7f146849d1f735257416d1714a0651b50d1675e811412342cf221fca395f118bfdf0821a1f66a149a7f636b550afb8e5af6f7e561c547b20a487c8b002fec5a4915edc118dc79890ac38033eaef565ff2d5a78ddf2f5a3695f55f66cf23ff1479baedf3e18a0ae2bc517b6819655ee2db03347a19f1d41db180c13185f31520dfd2e48bd42c8f61209a604ec841873eea050529b9537b508e71e3a2be42cb2f8f77ecdd39e2d534c5ac7b26f71cb138e60e3321bd10e844a7454232b50e3d75c0b15283dde0e29f6915b7d6d7169406bd05dca52a1635482d9cae9930f5395baa11b7d3c52a66da45db02363896d04e46f5adcde4d06e84e62228b4077690f98f8efd0e1518c23179856d7aedd9586a76461c2f91731fc7700be339a87c53e83e582db9a496bbe8ec8246546cb19a6b43c8ad4332a01e3b79e9a1673788061f12aa2aac2464b005b4637ad7dc63277a751148799d2daf889716409cad2e316d11bce2f3f044f2b5aba8e31d24d6200040810309d4a72690519424bea0f0d3bab06f14f53dcdf831ec170e19fbf8be" + }, + { /* i=4380 cDividendBits=2360 cDivisorBits=1296 */ + "e71b7b62b4310d7d4954374b77b1d71c837b646af892108a838dab5299dfbb27b2a086205d49061a2a95e039a54d454611619de0b82a866d1e3446f1d37c041a7b2d64683f30fc7a179db5cb0eba897b2f816105c424fcf6ea39a4c655909f3306a3a665e4b450b67cd1209dc23ee45738ff0db4c5e9c76120efadab51c5b9c894ff180fdf26d8712560c473164b5e6e7a29ae3fa523fe8daa93bc932513db44cf7cd819f35cba4ca7991c4358e285fbb7e35ad37bf6139037d73fe819529bdf46a5e6b6b0e1aa19f6a7885cdabe3ccde54c814e86a8ffa4d194ff740f5df9db42a7ec5d317a2fb703ffcf2efe1a0643ddb93d9804b5a201cf87c0f0abbfda4a06f87f4cb5a585d43e7706c0c9caebeab0dbbfb83765ec4ad026c0e43e9af21f9fd8ee82e45c7a", + "d649e842c321e7805f869a2d54dc1728064d2767d455be9d5d54dbfd85e7b8921afacf0bbcf1f020a6822cfafeb868d7471ccfa34b7509b4b74ecc80b36bd391e1f10893402d69cf30eb528f5a543cd4ff45a4b9772015ba3f796bba4cc8ee54c1de922548bd2a6467e5da3790327c64bfb0573ff455be885709e6c79ba30006abf80d934bc3770b5dd62c929ef5e4746e6faee6a6f2a722ac0a4552fbf6ae98ec00", + "011417a7a805bc3812f6eda74324e57794955d6dc83c87e246dd90a728886e302fcc5a00705b4f79a9c654a13bb81883f2bc399426e4f98c175e166a5fa6dc2c93206d4352e0a941a307f311f9a4dd0f2b49d7a85b3a4ee69a23de90d94952b87a22a1273033c05463c7c26d2ccb942d943eafd8da9f0cb52e167b65d5114efbc34eebc51c09", + "2b9f9e389f861d4d8e0f4a1c8a3ecfec3a9749a07dd4503ea01e1a92f93a731b0e8368c26764ef65d5570a0d4b3ce2abff9616f253e390197df12f3487ac6476db205565d53c9748a906aacc2006d84fc4261a726d850514171371e6e3f18dddd70dd4047b3ca8b90890ab3625f6de0647eaa78f4afa9656035500744e1e78026f7666095538e80673bbd9178749b8827a8ba1932ee3ede1c8da32af5dd809b4107a" + }, + { /* i=4381 cDividendBits=945 cDivisorBits=426 */ + "0fd05fb027e31ccd37d12cb028a68676e1221ccd3d11b4e1008082cafcde22858122c836352f169f4ba3e0e7aa54720a5fc10dbd7d0ab18e97dd388faff8108002221ba37b3ceab415dd38c6d6f38c5d09dd957ff1402ed7c79c9d81f7c2498812fdd9eee066fea3d638617ca17b093cc60590f31389", + "9ffcb6daea0375a46b00811060af6a5f9ea48034f395eab02e025cc55842131f5985e45a9e4265772ad855f7c0e672d7a1b36c2560", + "194deaee11c406c0f85614f661d1427fbb0ac90ef66a3d2b1838d22a51c9218a21398eff84557091891952ef58c803321fb19034b49100fe79e22eddcee8103e9b", + "071d2a0bdbf5c927fc72479f96b71343c88e6e1bab609a94f6397bf238e124596a9565f45cdaf6cdb3b751b077783be1c8676b3269" + }, + { /* i=4382 cDividendBits=3503 cDivisorBits=2978 */ + "1e4b3c5ef9d2c8533a2bc99fd410109b0bf88823970b5f1a232789e7fb16e0aa301e8bf3c9a638080b0708d540c50cc31c2701ed90fe889cb1d8972edc4a05a352c4b3dad79bcf7638fe7d011fa636ad1ee744b9c0da4d53dc0b451d3de2ee8c17074e25dd1559a9516cfb2dcf446dd75fc095e32c80ff4ee5c4b7a0977339d594c17044205451b0cdd8516b0b2e7153cf6e9e6a08128ca961accd85cba2df9de61996268d7b4896d01858579d1684e097c74ebadf54b8b69aa981f21408a6d7c11669d3321e979c506892146326494cd8bc1e178c75e85d1e1b91eb0d2b99cecca5f98815867ddf78c77e66e41fadd5d42e395ecaa76a6a474366c6ab40ecad92c5840706d8df28e5ba40130be2c0430414f96fd1bf1baef927b99fefdc73ac94dccdfd52f3e43618f683fb804e7d9a28871a88cd2f828f0ab710007ff1e9a319e29e54cc092e7034055f25a105e08ac99f3dadfabd654cf476cd29bffe0e1f312f34ab788a5e07c9934a6729b61a4999f66e6d23a5d54a660bfd3523af10cf1ee279430e14a1966844d7109aaee1fba46a45432d4e92676ab6d24f74ccf0103b9f2712112a13aae9dc007b461329c027f8db039c4b", + "02a2fc141b6dd1dedce8952e4d386016ac20fce64d4b5b59ad77bc0e085a7bdfdca4910f8418346fa6b23005acfd856317b2aedb6f6b135aabfd35b951f6abe436d863421d6c57935dc79a321c9176ab1d6187cacf695525e666186b58dc9ac1e94ef084995d00665501eae69257ad9f859088098d3a48f820ab7e3e14f6f9f83b8c2564fcd51ef46afb13112a1d6f951d13d0dce0c756f516163e21c1b826c0ddbab020f11f08d9bbb5d651dd43fb0362fe40fa942f955c83754775d30f8f6198a28252665bdbd8389e5c502117ce14adbd281cb1164c1b173b341c5b2aab829c53582186a63546ee80ca034fc6b8769be3278c151d7640cd72f3cabff778e5e93a4d3cce88991ffe8863f8ff0670d4cb445acab449f46b19861bdf02ef3a6f39131206466022b6e690f37dba48b5e938028e3a755ed77711ce1a3e99342aa4e0fd298fee6faff32a090907aa063a32dc61be790756433763cc774cf3cd6debb8d9bd27b6d68fb7047860c3b216d027bd48235c9e", + "0b7d4fce64c1d1222cd2ed356ff66cb6979863e95c38f09c427ffb9a48ebaacc529afaa72d1e953d161f530ffcf6279e0927ea1b94d5b8d3ac3fb7c8ed41498ad5bb", + "6f6fd0551a3d2d1e5b07ee8c48e59c5dbd8fcf5efd31087c3a7ebf58f34acef18e0048b5a740af4a24437e40ef602b3f39ced179e68803da2de2797eed4fd646e902ffffeec2e961b42701661b32b03a8e7553de8c6980c5d51c8bd0b49907ec654245c8b6505a40368d86ee44a26834bd325b4b600b324695889518e868a6da51273217ce10df280d950098d9a5623b99440658afcc433d94aee42c9efad063a9015d1d9086be93d61aaf8ba66853eabdf17798cd540146f304620cb11fe8f13eb6bb8f2990562602f0a45a679d95be8b9c535355d4d81df86248f2b0366fcffc94ec74863ee21e2b0f18241024d2b400ba6691f10baf794936e83c4063caed43cad1660c4fbec7b6aa68cb80955b41bd8339e09401e8217e7e69cf53636fd218df63a0702573d5eaabe216cb51db24849ffb00055815edbe35d54b78ad6212f1b4aded5b9ca5ce91a507013a57418d37caaac1fb2544092f60607fa0bdcdcd89f0256c93149be1053995e78ddee118c1f37ee1" + }, + { /* i=4383 cDividendBits=3282 cDivisorBits=415 */ + "7e38c73176452b50f5fda4c696acf6a62a9a478d5ca1f5039aebee411340b50fde3a840045926f4d2c3c6dda5197cc0e0dae296e1975af9217f14b09eb456be0600400f5da5b42628c7737d06820cac3b08767168a902eee7add55da8ccde6f9b7ac6aaea354b6ed006a78f821bcdf8f8ba33bfe60a150e37fa99cf9cafbab2f690ca05ac6abca790726e0b600d017c01e281336a3272e3dd0a25c06666d63b1b1e99e3b5b67a91a2a0d489771e044a2c3af80f0244f3843d90ecaeec9c2a19a33620bce3f47706396ad520a53f11c76a6b12870b3df01480cdc62daf59b3d34d3ae7e39da57b04a8baf07f5ad4a520498166dfaad60bf69105f5947b9f988426c438ca68868ce4c47c939f4bfa92c3d07a33ddbdd2d5cd7650ed22f437e1fa214258ed5a801e955ed10d3c204199d30cbd97cddf9a79b31456e3086de8bd21ca18de2c4f6e4b5e2c464efa58b0565306825e1a91daf1ca1bcc51c176ec85729763630812a72c6ff2d658d65b37e2ca7a39dab249822975e8265a70a778e18f430c0c898ad0af1e99018079aefb44a6f41e33ee1e54bc06504f7", + "40c6a35c743f4829dfcba4cb9f5f511234050c50b829e4691df70c442e09aba5a690842c8040aaa33417eead8bb2070770c21d63", + "01f2d6dac532e3d8cad25a9e667a17cb84792f38d3b10cef651ff346a836d9b2f5a5d35142a3e46729008b2e83135ab6a66dbb5c4666d3667aa351f431c8ded468ab4f50cb8f265611693fc04f6c513a842131d3a1901fdc9eb776364365b30042d59c24be8128d24124fc322c84a9d10fcb46dad6625768625ff3b370ed35e2e73dc08e30c0b027055afc12e6fe1a985c9147a211c87dbc02da318854a3b7875725a2a63691c74b41bf5f74a8668140eb844b72b03fc920f3666451529759fc69695a84465e932bb7c920f81c220f7d4d2d5982dc30df72e8248b1df5de6aeba5ae2e2969b83087ad4e8468ebdd4750cc152140f60070e4d7dcb7720e56fa3f49e205f29709df57eaa1279cd7ec49c9ed15b948177f899868b2d150e7a9cfc4fac16b528158094344a64633b9d1a0cf7c59347a656f9cb2d9276df9bb58be56cffb0624ca13f503431740de0a46d6ccbaba699cd56b746b9cdab08982fd79c7c98578ec64a4bd", + "10b72abb45a7433938c326a8b65b2de20f9d9ae225d0cbe6088ac10afffa7f1bc9983bcd05ae8df9f6a0dd21b919bc3e6795e6e0" + }, + { /* i=4384 cDividendBits=1627 cDivisorBits=931 */ + "0445e1d9b7cac4c757471f994714bff13074eb87f1b7d4e0024ceba60aed4eafbaa51059261bd24a4e99d121887197a40fe8eebf3dcae38c95a578404fe453917f6a459ac1137bb07d66991bf64bf1ea3cd551395d228da5502fe08e7aa302d8744903e9c39f33412d6aa4cb99d3545b294a5ef69f7df42839b9f182e2e95f957d07cf97ab7d6735a2aa5de2e51430a218b35e7d4804825a5470f574f4093387f9dda908552323149eff66fcb26ce34092c52caa9c7f27f9353ea3719143035db4c7a01135b394dba79b5c66", + "01e495c3cb90eec952e2af71bfe757d58293da7bf45ef4901fcc46b2fc6c0070356543e0a937349c4cc4ee7b18b383cf6feec1a7064d1b6dddd792f577c0f4aa7ceaee0cf56aeb02e534543cda83c9bceb4e1b1f8026efdadfc492daf98da74eface0f6ee945f9a058aa52a0cf7670281cc721f57f", + "0241e24332ad3987fdfeb8df5685b4754241ad349bdc1bf5753fd089622fa5cce13a3c52e77fb0f73236191a1fdbd075c710c9bc2d0418ba5cb8132142fe6be4e061848ab25d32f244391a7aab069340fb8a012c9df5adfa", + "01ade1cfaeae7cfd05403776abbb07c7bd27ba723e56da1cc825c48c71aca01893c9c683a1be548954851d1855cdfc5ea01219491352ffe21084c6fed005035e7b4d8de2c1a53eab006461a6b26ec9b09e21f25b9cf629556cc8007eb8176b0d6bd1bf97ef17dec539e69b4e028024de4c67ffcb60" + }, + { /* i=4385 cDividendBits=197 cDivisorBits=155 */ + "09dfe93bbee4b922bb7872599447d05496d98d2ba531ae0b62", + "d6ae50a696d51bfe57588d817d73e8a2ea407f", + "0bc6739ae7e7", + "8c1196cd96fb7b94c9d79780ae169af6b53fc9" + }, + { /* i=4386 cDividendBits=965 cDivisorBits=643 */ + "0a8dd1e4fd8b0bc96434e40dbe368bb9937cae096ee7890992bc3e78d720d1cf422fff86018496dbab9431a053c2179b9ac3a4f68dc55dce0d2c67c3de4abff1f8d69f923153647d7f2303d73631f9523d730b83ae2614045726917e32386234e0a32ae5156fa0e295706393c679ba048500b6d340cca702c4", + "0469640ac0ef033b7eb07a44ee484ad8f6e5e440fb9f704b834dddd36436c85668614bd088695706428e15baa54ed25149d6c1ce5ca72e2498c033f1ad9ae9371c72b432422cb91f7b928eb66046db41d3", + "02646c83b69a0dc09eacd191069f2e0b7423a59ed8a606fd935f486d635ee848894fe9fdc2c66d7b82", + "016e7375fe4bdbc91b2c3c1f1ef4add29ff2cd499524c249e2d9fa629123a6d06ff02cc106a08a572a8603025595ad356e89120596e3000614115814a5f8cbbd92a0c5edef51acccc17c91cb273fd8349e" + }, + { /* i=4387 cDividendBits=1009 cDivisorBits=603 */ + "019a17da393cb3ceaa5d837c68fca3bc74e5d323c7c99cf780ed43653f166e169917386467653cb2eb1a3f34386ca804b6ed5d88a19fdff92108d887be9bf14e838af3d2f7177cc7b0b589136ad151a6bab4457c8fa22b769e91fa38fb42c99b9415f4fc8fc44cf1be6b6e91f9ecfd4a0e3c3c40ace46d8933ba6208f77026", + "05b2446c5d02dae863b8b1ff7aa5c0b53e703c546310280aac5ce0c7e02aea15b3d56e28e0c750d259e323605d9841751630be57b1ae0b0692136213a489de5b4965bcd4c391f13779b4fc31", + "47fe000ca059f4912d4777d011de2e8cec0301feeea86478b6487a090d85172d11430d2004dcde6cf69117b8fbea641d2055f3", + "01f9c588bdf596b63eafa94cd41a592878882eadf02dc314a529659b4e4a215654e2c4a5424e31a5a3bd5315c1f2e0bf400a50164016d377031ebfa2e348110b771a44ee8b9952fb574fc8a3" + }, + { /* i=4388 cDividendBits=441 cDivisorBits=355 */ + "01a20bdd310c73d57a7cef7803a27f6f88e84e20b350e3f9a8c708e2808b084b6fd9a7f709d91c763466b3f5417870a1bffe30ee974705f1", + "03c44fe8076949ce391f853c58436713125459412b0cb31f478e4660987401c15b5e276f4e9ea48ac13da48364", + "6efb037d6b0aa5cd292c7f", + "08119016f5a42886ed452caa731a53db08e8977a9cdcd51ef1cba535462c60367a15e0d9e63df0749d10a755" + }, + { /* i=4389 cDividendBits=2151 cDivisorBits=705 */ + "666ec19c12f609dc2573f7b76a19f5beb30fedbee50efa4803d8fede800e5085bf12c105bcba2eae482628a3ed7f9958d9883e4c9ab002cebc13d6d3f8a1941297e4d238385bf29cfeed0c19ab24577b3dfb01218ace6a4fe146e10eabb1ead6844ec808ec6cbde9bf952500000796444b267b9b3ae6b1e0d44496bf7d2ba4400c0450ac11df10cd9691e529a1f7d9ad451fc9b31c5c333f088462a138506c2af34b4e7861c221184b91648d4154dbc1d754e3ea439d371741e6cfdec5ebe1444511f0657900f828f6a4bebb25826dbf3895e286f1963d709257a8a0c98e8a0a6e9f6dbd9d034d75f67b43a41cba09757a5b425758419938943615999edfd18eef0303e55b1e30ab8891e5e93b", + "1a30499162a7a9cb1c05767ac42a71136f04b3d068e56edc22be4563e0a16c89c6fe90d20a879eec93874414dfa051ddff113e70f309f9707cfbd5b056b9bee0c30ec86d230f425687139e7105d4f9952041f639b542e85e", + "03e94daa521ed71fcffb6b4a5bfc14d90a1b7a9f5a25787f8326660321e2b628efced8607496bc4d16db9181f55039408303d88f0a3435a5227ac19cdcfdb8cb499719dd901505367e159e00fbe7f9fcbd5f5eeca4843f0946d0f7f959ba12c6862f2386fff82986392e9ce0daf770cfcd81797f10abcb1fa323a4a9132a52801a6df7a367bc22f78babad12bedf1352ffbdde10c9d4863ab1dd6b97d1cfa41ccb7bdd8cf4d4c0b3378ffd6a5faeea2556049ad41892", + "172b5d7f938acc3b8255ecc675ea54ff39135a57597e31c1c8291a616bbde2cdc6714c5883328b8c76d73680ca72d4a5fdbc5561e84a1520c8548f22799645140aa0ec5c6db7a058ca32c24f2edac5c919f744f7f21c939f" + }, + { /* i=4390 cDividendBits=152 cDivisorBits=18 */ + "8e7e22f44b7462c14b9f30590fad3b10c13f81", + "768f", + "0133ae242fe779ad192c9aa07c8f663ecf8d", + "51be" + }, + { /* i=4391 cDividendBits=1583 cDivisorBits=288 */ + "72a51277a8d20bf6a483a7e691eedbc6d942a37e45a8bfc9db7d02a4af6cc212a1b72b4c278e2e056bf989ade577c90a4291d4c96eecec56a456b0b52335f3ca8fdeca28053c77a8cf8866b0550f56c57a5109dc9db6bd0735c440634ffc19be72083e5eeb03c9c6f2e54e2064cf482e64fea77450125140e31b4788ae4ecf643929318dec578dfcb80b38f32dafc558772cd285b351f1afc9ec386e2926cce63c955669b767da8ef2dae32e603dd47f66767ffe5ee85d652a0317b87a94e547895fb9816189", + "1b44091d875da3c7be2de5fcfcf8e3abf68cda0581a27de8f7f5d5c7c46f70a4746e04ea", + "0434684ff2afecf3212ce44e425d86e4f2dcbfcea74b92fea3632cc6091499d2cd42f2a96d94bfdfd0b5a231d12fcf8af28138c724237d3c74a546107b5dad8b5442d76527d16c70c64e79d8d99212047dfedba38e3a995c3f47d2f2ee9a316f234c0b68854b6ffcdcb8e67c1edf296d4f1c026639bf00e307e7b28ec192bda6ba3f314799f63503eda6c0664d16d2af937e8338a41fc873a0c196a3bfcc2097583e31", + "1322ce0169e3971b8925921c1c9f7c77739c06cfe67e9f794f69945cb33525bb14d1c4bf" + }, + { /* i=4392 cDividendBits=818 cDivisorBits=299 */ + "ad2e5c63a7874f8cf0ed5f443eaeb7c359dc322d76c396018ea981be22dc6cf951ae102946acccb878f632becee69500a19bb1c94c0212de9ce906d493c7bb17c2de87811a745b5067a96e4143480b41d8f44d26e9234c3ba6c0b9b936dacae87744acaca4ab", + "0389f89522da1665bca7175a71383595629e8fa221d5275aa38b5c15d4bc1c30303c91e0a61c", + "30ef8c89501c86be89fc7efc4f951d75d300eba0dc2dbb4f3314577918e451a8a58ae654341519f6374ac9b73cedd1fe1ed610868f11a753437694ff0ca11037ca", + "0282df95116c4bcc680fc1d5638bd741f825768c1da7cba5897e69d3d71a8ad050504ff98e93" + }, + { /* i=4393 cDividendBits=2794 cDivisorBits=807 */ + "6cf6230496a437b2e0dfaceef6b425e75e4716addc3354bba75518dbefbf3da95544fe5a8b5c3015c5e0d04f5a142e2b6a04c3fe4e1eb0cdbea7e3864001c89d93a5f162bc2b34cf47b15ff504727b2f9fba518c8c70a6e1b68dffb23bdb12529c8af01d80fbb64c96a5f81e4eeec33c70240ad77af3aabcd56f5ec61eb81f37ec63e01705b1e763dcf079c1fd4b59dab7586a92125072180860fcf49d5130fc7f802bb72b060c3507dabb6f467a7b543d1d890e472123ad69c6063d82d991f0e2e74e6b87e80fd3caa98b15f51dc879ca55957ec8ba424da03b39d833c30eb36c23e91fbdc3dd7e32c08e87fc623dcd387454e22782eb6d50c0c80eebb55daa9bc08edae3dc2fc376fd8eb97a2d3236c7099841d12102272052944a042cae053a0c683b7b31eb8c44038ef881861b94f7889a352ee49e3a995483693c1e9ec21501db6d195443f834ff9a6e8de82dadf0bcebb86ef15b95676c29d32b", + "66a115298080eeb50595e96ffa40fea15c130df9fea7710582d453a2002b6d76d9cc629c7a6b44fb64fb8cecf573a2f9d36397c3f81af3f2af37e5a3897c5350140faadffd59ee87c14bdc4f6eb2d340291a5e4635eb903f0eabd9e64c29ab3ae36cb612eb", + "010fcb955f1576c18846ed85db8b24661ba064e1a30d18763f980f18e5e073ec0fc568868fee0a7f7a64eded7add7728dd408871832002fb6c4801c155e2ac1149e3dadf3e50899baa13e5cdba283c92e391fd0404ceb7deb85cd2145ecc7c9ac4901c964a6858ff9f6d9ab84df1f11996e662b68e8de18a43c0def04867b37be19beb27c56fa1393bbd3e2cbc7fc5f3f8f6ab2d04d93936162fee7f9ad84429604673d31ef41010869a3761e5da947cb9847b64269720595d1115ddbdf913028242849e6903f507da900af6ec647720c0b8eb7caed12c4e9fc5c43d7e28dab825bebea904289ee732b6f2e8c776d529a93890edb47ae7b477", + "3628c87fa2ce157e60dd63f9a57589cc8c8438fec9f897df743ee92976f814b104a2da346dcc22949480d9587d1389c76f6f788310552afe86ce816b1a5a30abedfcdd4ae594ce4cae8c7b2bee7404eb3ba520aaf41ba67527dbbedbea9c9c93b4ce2ccbee" + }, + { /* i=4394 cDividendBits=3946 cDivisorBits=1465 */ + "01c55c87a53a9e98aa5ef6466762faddfb9648c70b11aba4c30e95e2db64c6c24e64283d7f9b84d1fb8704b8fea8483645eca3841ebcb40e9390d2bfece2a0c4504ed0b112fc59fa5ce8b3ba6eee3c379921663503dc046555bd1b15e25461f29c7185f37c16c729c85698230484b5a4a38e24d0974bc20eac0a2d5be25abd1cd65fa1b8e31a255a85e21d103e9bc7809531c6b4c834d422bf5782be2b538e7cbe19296afc22ce2de738948679e129c2f902db1d9e7965c42b1d0c0e6d8b99f96d45bbc4c2d0a3188ff75cd68820dc44e3677771acdaad73b6b7c981794a6133b3969b83fff136c1eabc993b77c356c44f4ff9deba57fe7974ab63d12f7d43ab061e08c8cae521b71967211a12dc75155d57e777627ba56972d9f3b04e41005e756a693f5d9acd57b46d2ff190c9a3cd5ecd08c623e0b16811cf3cd311f2c2acf7a1dfb059993cde3f3cac434fb7296ffdf2baa015c4471ca223e7874bbfff6a27c75852e758044ae4daca2207072964cd706b6ee0fef4dffaf77af42c8dc8dfa7335e137b0c61281337ba150bcd1c1a1608e95831c79ac270a3b61e4e3e1646a14c24a940932ba57541c6bc4b817547396e7a636c62cc2b1fe10fb49956c2c523a5aef4e3ade090bc1a8c6eebe64ad90ff2b9b7eb638a4ea8092c9b6288353935d0755aa5881564fd81c613efb9", + "01235edf831ab22a2622b3b341abeab2e21b1846338058b51d4de0c18dd4bcb67f22bc7924bb0f7183690b617b4a4065f9cb978d8d44bd35119ac529a21d2e062b982f9f670a19b9eae64cca04a1b263ca8d97616b3acd9fa612d91004103cf1a7a0e5d1f135d28e977eb35abcc0a1202d133143f697495d7aa1d7ae48336ce0448c59b9f001f6aee47ef879843e02a78157006d5410459df429f35675144c8d212c85257bfa65125223bea94ba18292ce5e107298356fc0", + "018e537edd9ec2f9b515c76a07530cc8b4f198313091b82fbfbe9f4c69cf6a2ef5affc1086632e646010f603a73ba1fd7c4cd0455eb5517f6727a7dd9d596458ae188b73a130f860562d52654064017908a70603da64909809e34f2b6ee9b78e28ffe58a6102cd4bba2a915f216d4e773027a3d96ede3597d567230d7d1e3e78ad9680614f91c9e2240bc9033899ef1cdcab4be2b9f8279026f567896414f99a0082d60231bcbf3844c39a148c76e860ee328248c852bb52aed7c2d1169184c68ff898be45b479c865f625d4ecb642d1d7cf7a905ebda12b0308ca5b8e51ff9321d9399142c0a879c33643edc11e9e7933ade4dfa0fa7dfecb15adc34c192606aebe9ba3949b0950646080ae0f9e9e072a0512ade4ba3cb910c7606c1eb9f9b0c786d459d43650e388bb6e3e436d91a7ed1a980406ec5b", + "10549d180edc53a5a5ebff74ad6fd2189772df2243560b634ca19f448f644609a8c5ef9dc115c73574ee10a2613f00e1a484ee04d383ff09975da295a61131d7297b79db65ecb9b309f14b29bd32ff93b369e5a00f5d00a15aa43515fb953e75f30f1f32f3150c56d6c807a03c7b375c6ec74c8b5490ad0487a60d1db707cab2c1b7065691a36f79ae3783eacfe9cd769968d522aba05596ff2a8796987cc217f45ee511079c0def2f10e28ce75e0553e73f74c9903679" + }, + { /* i=4395 cDividendBits=262 cDivisorBits=211 */ + "12a9794563d7c5b2728f2584e85cb256cc7b684b554ae61c56e96bf63f1de29e06", + "07351effddcd1559b9df0369c62e25785ba87881684a36fbbc7bfd", + "0296d8df51e9ba", + "04782defe4c93fbbe8444a70b9f87e45346efdc7c24d110c0a4334" + }, + { /* i=4396 cDividendBits=3626 cDivisorBits=343 */ + "2fd0dbdb58417193212a4b4c2d37a5a95ae37f55d6e0c3654184c0f7d10c8687a6093ba617402668bcc32d144517049e26bc082db47ab7b3845aec5e8b09882bf91073ab332dc7a876f4265a692bf8ca06af4a4f065244b53e4b3d1b73d5eefa4b48ab50d1a97894b398821153334888d33819bb28173adabed83b1d59e06e1e565ccadfcce3797cdb8b7e859e82cb26a103cacc1cd583ae1432617e0636ff182007f4576ab6d6990d3188d84eb771531ef98408c5fa418feb0442be0bdd5510201fa2b50f66e132bfaa0cf84ceb95b5a6f0a22b0ab5f18a1dcee92dbfc83a0458a2ea37ed2eb99f8a5dc461c5234679b616becb150a6aec67df7e02aace93af6a5603097d6763cb4cbda0a535ef3d5e9f2f2dfa096c9e1c5e1e9236fa8fa90cd3c27b782a70a8b06acc76859d2be23b9689e3c03c4b01b0ec4ad76e70f2457b81a44829baca9b4b96b0652e2429028c84f1f8b19f2d114f66ba82ab2b8658c6b6966ab4b8f68ea82d2e191ebabdf1d9395cd3a699d79ff284c51926b1c89e1dcab179b9372a3e63115aa5ffdd761430425edd13dc0ee3bd398c1571141f23203a7f1b7c0684741f311167fbea360888df63ab6cbb49127ff7c11804d73d3c65b2c88d3bfd", + "65cf8a0be6c17e97aa42ef422c999dd092d5ad6b4c0e842ee35e06fb4057c7132cbdb10aa6132791cfb8b6", + "783b473345af8fcd7b7a2dd661aa5dad49a505240f98da4d3f2023f307171db95c191e51caabe434cd4237cba42885ec7e784084e77e0fa9e0ece9e182f6e19d9cb02e381b6853be40feeb02768d3c36e5c97b7e57936af7cc16e4432e0058af70e55b41849e9e769fdaa3f545d79b3d8d3b0b89c7e8967d1161b3f1eef98e151be9ddab7405e2dabd1cca84eb7e83b6168e57e07ca5ac893f409e8a567ccb697f42dab85271b3397c876d32369dcd4df5051b3565865fe7d57876241c4fe94dcd7e3b164f3359866235f63cfa7467eabf87f286f128dd770932afa3b2477ecdb2533518d8f7f46f49e2263df87db1192e79bac9dc76655cb4a923167109b4a75272de62bf83e3a7ec22fdb6aba0e9997c88323044a603d7fc5a4c412376e6d91903b6588209bd888f8769ac269d424df95d871da3f827ac9b48ca2bcf2d7f92e2806fd9520dbbad4200a74abfae2aae949e822d28d0823649b0ab8bc20dd24ae98df5cafbd8695d9c87a5d2d18938e25907b01e6c114c6c271616a1ff776a530204c3b166c34eb64911f711334baba16349ce5f815592c6e249", + "36f48124c656c305821a43d632756404528698a3f98b8c4f05e684efd4004849ef115a1f9eb8422a7ce417" + }, + { /* i=4397 cDividendBits=1244 cDivisorBits=381 */ + "0195edc51a60f6f36bbabf07a5fac85889cd3c23863cf3a0c85f6e2ac3912df75270565f6be3113486630e4e891685c770168abf94f4c49e0d5c5118fccb0d19658e374733507da87e71d240e06a2b30710c91ebf0d85dc28c3e26173b781ceb25553d3b6f3cd248d5cc280049c7306d1a0dace5a45fa65881e1f900835efe33761fe8a36a72effb0a32db5a030d1461c2f7273ef2a84ad568c68738", + "1344f5050a8266013ea643750613c7be903eb3eb73a6185557d9441cf515b98b52419c63df743a7a4402ab7917dcb950", + "1510e6a508427ba6d14efa5f222d4474ae65ff8f33fc7be13ece13c1002c296583ce5af49a9f902bab4b2ce45bf601c5b97fb58bbacf66f96558ba8a37b0a7d1afd93c282707692a13ca18e65ba8d3b1956af57449bb6b365604e9252988b6dc8ee54b58b1d0033696291114", + "0b920030f369a6808184ee7d49e456b12d16eac91c866e39071b9626ec011a52b66823f22562487d8af4acfb5569bcf8" + }, + { /* i=4398 cDividendBits=1523 cDivisorBits=1106 */ + "03c8f31d88e1642bfbce0fdd01fb8a7ea706fea8bddd9b4b9e46f41260bb221a08f29e9c2f52f7b3f45153c97eca4f16d13c977ba06a5dbdc92b67b517fc3e283affde14cb3ab74c1e70ca23516107fbabec746f2b604c40e76a793f6534443c9546049bbb42a481694795b544e9b9c6007f2ad7f4d60d0b27bf09855e5eaca8f622f71da2d587eb34b26daa9af43a2d2e4d477f035a858db91a473f7c67c1a9db80461d3c49d999ff3e82aee38c3eeae5ea1fc9fc2a4c89a6f1d3b731d3bd", + "3c0ea2344c86153c1d6f38e4446d941135c73679ce30a2dd2dec0006874171d7f9f757f76462dda3d0f5994056ba00196289d4624f9e1569d4182e2442d9f6701123f7d8b55394cecf22319fa5528dc9d5d88c9d3f0f693d8dc61e6a8eb79d3b40afc15eb33e4922580bb5f00d1b48dd0977610eeebcdb3f564a733043baa7c589073ef02fbde1c0dff0", + "1022401596e5b95ac2c1f82e4171898f515dc77ba0f613a040f0e07d99fadbb3ad685accd648b14e6e2cbe25b1b6d618a7331a5ecd", + "33cc71ad270cb7033cc562ca594c8fa070cb5cbaf989042b451ea0efcf41cc58309a777251c67bf3f4981ee55963eafa4bd950b66e2220420ab7ea8b7f139ddae745752dcae5915bfd4706254e575ebebf753a194820a4f7f8ec9d5de376c46f945a25bdfd3c80d045f0e6e43e47a1d8fe202c96717180ab7ffcd3bfcea9a6fb3b1318160e1d8f24608d" + }, + { /* i=4399 cDividendBits=3968 cDivisorBits=3406 */ + "7f83433ae31440af42b8818cf1deec1b6cac8b6a85c578f46b9aac2f8cd8d018968fcd7bcff796b2820d8c5f104875963658f440827277be544e89edbbcfdc925bb17ecd30a42db1bf598b7a58fbfac15b1dadadf663e287f72abc4e047e574b603e3f52b6e939a91390a6bbd19cf15a1a3bb6116a2e9f624a4fbbae8d53c66687d836025b70e5bfc77102b949a952097a0ef5e7791551b4fd55d804e1786d9f8c4248eef60373777f336a0d378631f3490614f963ff1e0b1378a6e6ac5a599940a4a43202e98f1f5d98a4f9f516e427b068164bf7c1050c00df9a2792d3935b961c6db0fd899011a6cb68af978068bd085531b9449d2336e2f0a8ba564b03248072d89635d7b2a5523a319113a5ee0c3585994cabb924ec19129b50d02539064b4e17e2619e84cac3c3a8c67559d7391018e19d566983bef2720cca51482d42682131b10d1e3e557b9d644a5259a2cbb8ae031535fdcbc85e37d776b4dcbc24e2cc4df44504c348b4f7caa25907ec78dbb2a86484658311104b865c0c624110f76e9eba159863113a2fbbaefaeb710fe207ead3d0881486fc68c8dd08b2f133d6910c46a1233951ce580d6930e97b4366669d8eca8a0aaffcd062bd2179e3cd887a4aca371e37914779ffe547e8b63671eb9cc40a7db1c697700b0db58f51c6f1e72087f322bcc9766af4c169319eae", + "1aaabe68e9f62edf73651dbeef9a34b9c8f3512aa3dfb008f766b44751219cdf3f0b3778983aa5a6695b9be591c37824e6e0939b35116e828c0b77852e642554913ff0e36b4859e5ea6473bb81b5b7f3f8eadbfea65512038c9eee152ec81ab79652b2fe728d88c3b651c2064863bcd9d5e1725785c988f55debf0b074278594deea663dd6a8343eb79232529b651aebe8b39d631aa43076b343ef10dd2614121bbc6dba28058c496d86b4675f534a41aa8ee3fb238e3dd0b395a453afdf7c91ba68ecb8e629f2d04a943e930189853b63c9c14148d006d839fa50a280c329500975310428237baab2a7976892cdd67553484de89d2f3757317cd6844351d6df083f88aa7daf13b992f8c2d0d6884972caeb2e6f78224fc734da04bd5de0100708465d576910120500015e7dcd2fb15cd64e43541b1eec6aa3faf967da84545ba2e3ed5556051fe52606c84fa1bdedf37a8a359b7bbad6c3a556846670c68077b07cbfeeb065f3e7a7a40af33145c8599c3c57b941dad850c0d0df3cb9fadb0173bbd12848bd00b3c46053c0d0f520848ccc125ee8a5e348a795323520e7f3ad95eb88e78e0cb508369b", + "04c81bc7eacc7b60b28fe2d6115382485e78bd8f07f281f80f6f36975f5e7082bc0387b1eb7a24c26bd8e3df3582db09b6e07392ba7e22ab1fb3236fece470895f4df924a00036", + "5ee4f8fedffe9a97a5e15894d6c181abaafe8b52178e9d305844c31d1dfe616a5b1830a85d63602c5a76d3b63fa3b54ecbcd573ac794f939173fb87ea124687c3e9aee0cf1b3335271627a076e9df015642fef6779fb6e762a6cc45ec05d02b9a0bf3b82721db9b4abb0466adef68ef9c8af1c970cf0b948c245def36e9d2d3ffe4d1ee26ad2a73b9fa0a85b6494816cca48a3243f0964eca268c04ef673bbb305f5d8017532554f79473d439fd893a4de75d1d3919f16d02fe0215d8c88f5735e9332ec559845fd31654ddb8fdb25311b74e57bc43605bee9108961819e894dc0e2570f5653294891eca66a59b3c578f2ff389be1fc9607ad6a4166792d3580c8073f439f6340825e9c3486a52f96158f3cb527fa062fdba02ca828b0be4c293179ae113723742f2cb50b6f9ef3e6c9e78ca95d8349a4cfede909dad45aea1e188bc6f4093aedee50038b2a3352034aa9df4e03fad3dbc78351742f869328b478133ea7c067c3e22b83cc24578cc3247f0147bd3a52adca833e874ef05ed5cfc2aadcf7f99d1ffc99cfdafb07bcd563754716f2a0dfe1cb8408c1549457657c83403df5804c9619fc" + }, + { /* i=4400 cDividendBits=762 cDivisorBits=410 */ + "01cd25d2046bb1e5c40c2a17c9383186d6b5b41aeb4b4c33f06c3eee260f39d86fb600ac54d5550c60b20d96c1d38adf0c5821873774f8e4b71e4bada5e446f35e8cb91bfd6bfc49bc728ec689cdb9deff359f765a4a0996be7f95acb02fc6ad", + "01ad11c11257a9cabd99544335ef89335ea3d99cf551fcde7f575780d59f7d025fd5904b86fe43b906a769f5209542c76cc8b864", + "011323a5fa83ffff4853e47226796b5989258b7adbe230377ef8bcc68b00907885623beaf12642863ead00e9d2", + "4b9ee06b2e830ae37c0cabdec997766f453b005f010ea5d05ee7f2f7a3a4de31daafc9b155453b5f48c1399adaa73f2fb580a5" + }, + { /* i=4401 cDividendBits=2663 cDivisorBits=1401 */ + "3de29583302bbcbb014f5baaea09528fa45069815b895a5e85e9174344f26fe1123a9704c7233f9202256c34a12f1effe2a177ea6c39301a345d368b01da1697632e6cd1e83b214b2b52b8cb4b9398505accab87b7e9ea71ad888ef26b24bcc845a31d0860c357cd1fb20d50a9fabdf9e974ddc29ceda9dda8da73784aaf937592f040cc20eb92df3b97ca985d7400e0eea058595a565e39879215723756a600af288d65bdf29831971e1910e21a8b735c756adcaa2a77f70642ce6d24a00f022cd3e7d7203e1cd3814c15a2085dc957fdfea3dc85b58660502505061a1de882b9b9b847dd65ae4d94481f60b2f27c51983cb36589bb8228b6fbee08a3add6f5d942a3138ed95ac0a7b2d2cbcf78967492bf0d034417a35e9d667aea3975ca9f5ef6c833af3c9c1990117f996394a3754d3a3bca69d8c436c953fcbf41796bf87718d9f80df2fe4118a5d29cda", + "015247b4f30bfdf784d6a4d71357b6ec816417dca445d91df1fee317b889b8fd0ba8d6dc7c42fac86d0f80cfcae61712fa25990da336e51ac7f8df7f9c71d87e98ee8b3c4347492ff927892a1d5aae42a50039b03cea42d48b9b871ecc36dc68110ba184d4aa73bc379d91311b4716599b6e6a3786911f044c587d8b4bc42829a5e1fcabc2587836c4f74cb97adf582eafec5ae7afa9ad4122851bd5c2a4f9e0a4d633f7e32aaec4a35486a4d68b5a9b", + "2ed52e6ac2ef47f4e18f3563c5d13cd85739f05a0fee446d8f54e0a9b93c531ff02db6fec42e2f94fb62074053acc76bb7e6b9693a585da83a0a894d31565b2d543b99fde3ab2c5bae350365af16ab1f21b0dbb17bb8f374eb1d2d99605b40ae2dc028129cc6d0905608899a7e34b0f660c24b91b1fee966227766e4b3fa6ea8af7f591b4d250c3ced179bf7e93c1ddf03ebd7189a0e0f7f08244a9f9026", + "b9119c42612b1689dabfc2daa8754e4500bdd80de5e49e7874ca20d50e0e41217403a7300e2cad89fed7973ff998fbb1c27fd737305d053dd0700b089636e82f644a72c80b8e1dc99299524dc3875c4a250d8e9862273614fac261dc39569d786665842db95b904c1cb8e0667ec9206d9b6a7c2dd880ed00f3701762695419fe94041aaf66e52804cdd6a92262604645cc8eb36c03480ded287c626cec14ee2dec06c2aec4a8c553fd6d6855e6f9d8" + }, + { /* i=4402 cDividendBits=2504 cDivisorBits=2449 */ + "54637dda0c491a2fc81ad6e676b26c9864ae0c5d7ba921d0074e6fe1452f14aa08399af569c57a2e9e4c52f4981f7cdd6f6304d3eed2ff9d0c7077d2731c048af011893abc472909fc2e7ef0f50dbcab16981bf1841ad66675b557091e61639c401aaacb4678aa14ea3c84b0563a00c1e4223643604a39670c86685bbd973f880c138b60d814710efc318ec3046b01bd1204ab2c0b95a38a33caa95312061097bd9106406e43a28bd3e0026db5fde3f49214a04026c7c0f0ab3d566a525fa20a072212a01117f1bc0dabb243a05903d273b1622065f1f7491a90832e5a55f5396d1f4dff67d4585b18c16d7fa600c337f2fb813634f122035c8b0598354ca041e625370cff98af9c7cfa43ed47e52755bde8bde44fe8f89ab569e9a6349321e62cdca3844caa7d6205cd5cb373567cab1de81c6fb86d84c319", + "74668bf866ee9c8f052407f3729059ff3ad4c3a83997f42a369a9cbdf094610360981b40759f742c1cbbbe13d8647a43ddbc039924695bbe82f875bb8de62a47a9cc20d17208a36bfa10c6391b31207030f73fae093e2326a94bc945532603bd1a8e513c5be7b6df460aefdec2eddea25d46c1be5ff65794eb4a0aebd17a3725b1468b2b6173b2527ad837f0c21eafa017e87efa721b0efbba5b72b2ed29ab34e82d86fe0769700d2dc50d6da7b39d0d7faa58e99d5e6e28122d71bf994085de57b048144b65f902cd639306116ef579043b12a6f7fb2b9265133afea8ca97a48b36cfd1f49c3af1a0cbd7294d71983c660cb688d1beb0f0426e746e2f82dede7b8db1fbbbc5c70b3ee1efb7bfb43ea688e1349290560193bd513534a26c3a24171c9ecf69ecff1909078f6b84db5cde6106", + "b998998adf2edf", + "33840d25acf0a168449a8de9c4a005e01fa71c2e4117afbb66523714aa0bf5654b832c6adc8000f07c1cfa546e9e3b095f7aae1dadb2aaf521079b3667d83e97942179ced538658081c21b659b6bae33361c1c9bbad6f280db42b1934289944f69cf2e11a37168521f73425d7d8c9c2d22305d5174b4be3a053862882def75e28a9396dd0fb3084235ff17c52e149fed3b351b2ac102eef240f8ed952b2ff6fb949079b141979963803ba2e11c77f070032c0f56c268646d06c3f2ece70980816366acd3b7b44582fb17e974dae559bce764e5d2b42b38e54d39cc4fd66cb79a7a45ce87216135151611d8b7b86cd399a1970acd8d6f3ec890d867d47b43ef714a0f715468630320392eade6a6770758a181b725a31789e4532f5a02e9645c3c969450e79b1e1e7dca890494f758d2252adf" + }, + { /* i=4403 cDividendBits=2413 cDivisorBits=584 */ + "06fb85461a6e13e91f1e209bef21687ac4047f8e9613d1b046c6e363985cfa8c3948301e3650584395ee1b0695cda7b5b7221a99782c90f5ee54a30ccbee507b5a15ff8122ac4a657bacf550e7f132f1cb1da7118d8acdaf51459eceea37eb43fb849adf4fe05b64ae7399433332c6ce34c6145cbc15a45f0b083e39d5b6fefa90c1630f505cec205eb7280f71e56b8959a187a91d2bfcf606f31965e43fe0128721135f81ece28f52da12ee25cfb62add6f1154f3a473ae0fbd3eb64a28d10c489c174932772ab7fd36a11a51ad14a221610b5e2d889ee0c0d0f3546125041e3449d762e19f870cdba7d25c75eed1340b8531929358f86ac53404c315bb9efb0f5115f830316fcd14fdf33f457a63cf3a2f52f48cc8f84d49a4f7f3fb5c14c8f005b0d1ad896b6f0faf3cc5b675", + "7d4a6881c0f803b315ed57cc9755512631cc5b415fb0486fd030996bbd1bad56c18d16bc735c635901e6968d3c69b37b961e502cf7a4c6dd8def182aac9411871e25124e115b0d2400", + "0e44597b5ea8ccb9b37be40e16072a9e18eb4d0756ca7072216f16413130f7db19d8b14d5a8cb579c114490ffe642c5b215ef8829804d0f9a6ce3a75265bbae61a3f1d574da9bba83a3097388bc1bab26c507273e59a847a5d75e2a7d1daaaed8c4ef0b01019676baa1198b8c7031d37d32213808e5a290ded703a58344d6962b0eeffc0bb9471bd8314d6c41177b802ec27c64299c7ed07043e9d84dfe22a32bacdd61da45c495c8f52b00855ef359c00b0fe154b7babb2ac0ef78d3a7dafd31a620efa7471020dc8bb8fe6c8896d78937a0d5f0d9a67a76493d48f45458e8d6aedd5e6bd", + "6fa7b9891ec32fdf17f48f486411971688d38e7927175d4310cab820641405e589c2b0dff6cb6cae99990ac5a982aa2f7723446bb9e82e5b0e14ba29b830af6a24acc700ce41ba2275" + }, + { /* i=4404 cDividendBits=1800 cDivisorBits=89 */ + "bc4dd82438f14e93d5cf3031c3c566ad9c52370bf73f49667bfb1aea9defd31d22bc0cdfb2749417f0e5e8f87e3367033cd405d06125713fbc144e5fd6eb240bdf452ef77aabb17a0989f9133362c188b6fd491b1c517911086874cc5fb38480aa2fb916ead4cd64408d0808f8db40f2317a502abb80f6eaef2ad6cad374c69e1f25e5510a6b5e2ebdb681c7419c098d2ea3e7af2c7d968357a21f34242f503059e05fe6a9dbd00a94f30e67ec31b3522df822eb29e42e2ef3b89bffaa419360a713f7fc0c066c9cbbca0f208574da774fafc348c1416918c590b8bae67efb9454", + "014a70dd547c003abaad968d", + "91e2279ea65e8ddd28ede3ff12f1355f6516b8acd1ede5893d59d1168b6530f01c8a0c286d5bf6196501be7329ed943aec6374ce137a822c38b21229b379e0147401491557574a3382e0a42e0cb6807858091b77cb23b1220ddeffe04a926cb77c20ab35293e27e97053abb764129353da82207b984b067844d5dbd0ed0c6ff4ce2a3fa1e268c1d74f96c92ee9d92ae1876ec231c9264c224ce9eaf30c5108f072fa2f9df1201351a308a0c84d3c2d9e8538e9c9101429556afbba332add70f574cbf7199a6448d1909ba06567bbe24da7e36e6ccb0c", + "2cc3056a31542afefab6b8" + }, + { /* i=4405 cDividendBits=573 cDivisorBits=427 */ + "169c22e1be955921bc0433cf67367db886f58b9562bdaa14733db296fbaa73a35ae9e2becf9f269224f18ddd44c00fb8cf284bc693339a653babac211221a6a3fda558350a8fb2b2", + "04661c45629053936edbd09ba9d612a9e0e2c0dea60db39c09e13a9306f30c8edfc4fb2b7118c799231d05cb062efa3d6a405a9e903e", + "0523d2e2e8a75fba7e8041ce94bef0349b4c6f", + "01273c1b8179bf2f8e9e739b3a5bac89ff3f7ba930f26d515aa4c0f5af8561ed6645cf2be951c34a655f46890e24ee8cd9f8bf72bfd0" + }, + { /* i=4406 cDividendBits=3333 cDivisorBits=2986 */ + "053ac25f3c13363cb589e6937ce15536a90dd01990998055bb2ec7b98812519d12ca57cabb59cfa76b4a0989d4fcf2c60305f96816a34e4d7a1f8cbc1d324c6d5b54c7a9849877c67cc00a8f212474fd4adb60e6dfcd8b0f82f96b4fa2111403b6b0ad5171dbf205a49be61bf54ffdd79c411320d6d064164681acf1b2f6f33f5c2868759791b9c5e3f0fefe1c76bf324d6fb9a096115b6c5577bd5bfe9224e55b85148d9c56f93ab5ac69f39ce88f54212426b1665ee3095cde3b61f65bfd6867b8f691958c8b28163fc54deffadc8f67eb2e759bf1b59008d2ad5b7db98e6c9448cbc30365ffe99a8663b95560b463275304c51579c28f05fb8c60af014c04606b27b2ba6e8a2685457a7d5037c071c5b2e15841d116a5aeac2e787a8fc7addda0d3c3e8f092767d2db2b876a43dec6bc0f147bfb713073f93240d82f231ab3f0d6e30cc2b984e7e2d9f9beded817986724364496fca70cfc4607ff43c0e07dce514483fc6bbcbc3cb2452a3f456c82c95cbd3664da33ab893427fa0f45ad17e36d904911232e2dc4099a6d33522dffab7e12b2286ba559d0900c859f4235415", + "03b7fcdabd3f73e93bb9f57e88bdf3066a8624741c02404fe9983df95b84d3b6228ecae141b04091838de607ccf669cb9e29fd6744b0436453c10aea6b797915601ce91d8c2808cd8ebb1739cd04f81bb3fbde768e8f304f8dcb9ff2bc5f0d5a51320602cd6529da987181da167800c27f1deb4575945877ef83aa46394f45b8b1622b70b27176a97e4539dd4bf92228d73dfb0d3c51511a732003d2bc8d8eb126d2712e285461a79b08dccc0d875ccd0c98a7238a2791172c429b0c994e33a0f9fd7e1563916d65d818ced63a1ec8a677d0897cf3f0fee48cd768c9e97d3c751009b63f94572f7aac9ea9aca5ee3d4571431c2f54126a078343e391234c074d1bfec5abc0a33b86fb72ce801af2cb8e7e94642d6f80dd3eafebb9c21df264ed728af9ad0f6e4ae809aa9e162e150e8d2e3275c49a834592aebaad9d099842a9fe0b6febd8edddc4793d30e513b1f2cdb282cead6f9180008013579062dd7565731e44fa26dc51d07d5a11b71ed30bc81c2b6c415e72", + "016801d3ce7044221ac5e3d3b2e093a115a5becf02e489a3b0d457964c9759fb4af1ac463593a57541f789f9", + "014e2eed72244b292a197acfc53424cb8f3a842cff9924fe140bdbba8bf757714e759b62f1ef511ce0c5480a37605ce16edf8738c0b45782bbd242ba9ba345d83e5baa72547c9a5f93e4885ff3b81c3983820b01b028073f557d92336ff9099b1c8b1c36911f4484ea877e3649f5459b036bfd81deee79f2a3a64b0cd22a01717a5974ee0cf2f432402c04a041e9790653848af8d7b81629479b056aa70a5cc7435c5f3e1a334d8dbc319a6f01b2ddf21d15af0b187c56644243d14e82171aba9bc2c6a275c54afd87d6f8eab8db7bb94e493bdaf64bca7fcd77a9c70384b22b37a0a59ab48f6ec91750ebd5f4a565b0f427c8ce3a6d916656d4e3bd15b2d00236ff1a9b2c32d9dec6f8628864bdff9a6a1813d60573864cbd66ede3ff1daa905ee8294c3ed632107260e2e3e5c628dc0bb439ad17700252c24be165fc215fb299b89a63dc7be7497abafd8a7c9732d26d6dbda956fac2da73b97f1c7fb8f77c2904a6cba70b13703a880ee441ecd6b275079b057533" + }, + { /* i=4407 cDividendBits=601 cDivisorBits=102 */ + "42685a0257a3054942c4040c50786d9fac24278fcce740e9c2cd848b58b95fb6b17aa641aecade0cd25e9e36c57f6d18183eba5d35b1927de86bcff7b80e810b251b0b3b3ad3894f320854", + "2143e50e0d7d8e69f08c06ccaa", + "01ff0e10040455c01ce5cdca5a72d8da84e445eeb90018cb75e326c980a5e75ca6dbd9c5e862d445de86b70fa809e637295b32c934fade124176f1a5cc269a", + "068879aafd39fe64ad6741ae10" + }, + { /* i=4408 cDividendBits=369 cDivisorBits=343 */ + "012c945bd75361a0efbd1d55b98be07a64c01790bf7dd0a55e73533f74a0d6fb24e68aef50b313ca1dcdad03b4e961", + "1c3328d2d8f244bf195062e22ed324892f93d906682a0a16392d79e1f672ac6dbf725a9ed8e247acbe0e82", + "0aa8ae36", + "17f1a005ed82f934051e4ef3ab7e24c98c85ae8355e8cb17ac4755d1c60379138844d392c891dacc717df5" + }, + { /* i=4409 cDividendBits=790 cDivisorBits=518 */ + "3006f802851960a015940e8d5865c7dc9b517557030e600ea74243a5a24240e02f5ddcb519573a4df5e595e7127a4efa7e6e3f8a22f427e2f984d84d117904377dad8f8933b72f6d004a3ee065f36828b7425697fd143d708159ff0dc04b8a15f4b1b7", + "06e16ad9b17d13c3838bf350defbb29662c796ba72efff7cabd621811a734f6c0065d0fdc0155e1f28f866bfa06dcd54bfdbe06c17f02922ba9df7f107398c37d5", + "06faeb874362fc5f0cfb093b0dd7efc5f3ba180d1c3210dbd9ebfadb061dfaffe7d897", + "0518c9fee1ecaa0e62691e9db7698404e986033413fb4a9082936bfbdb2db86a82db2a8c3b7a138e41783824bcd1fb3bc53f43bdd135a05830620bc79348f10b14" + }, + { /* i=4410 cDividendBits=13 cDivisorBits=1 */ + "1453", + "01", + "1453", + "00" + }, + { /* i=4411 cDividendBits=511 cDivisorBits=22 */ + "47d9eb87c4b7fe3e66677484255307518b940fac973f4a1ea89c5c7cc0f3c96076d82b3196f7075e4bec533e60ab458b04304ee24476ef9b354c8eed7ae22eab", + "0a4196", + "070171e0810a78f0a4c1c594c2ac52262c010097f73e29e7d3050b2b6b218cb30e543d08a9ae3c96d96ec790f6b576ce1b720707542dfe4f0382d40b0b0f", + "04e4e1" + }, + { /* i=4412 cDividendBits=1853 cDivisorBits=928 */ + "172bd8a1caeedc52425475179936431071ff8a77d24b76b53cb82fb1dee8acda3a2db245ca176fb2aad1f4f8b83520286d9dafd02e34197c485b6365b3a1167646cfc7a1c0b081cbaa78fd0f329b845ab8e44362f0ddeb84880b80772309f17ea707fa988cf74b6d27c757fce6780410ebda422e6e11d89f7bcc53f2976862b2d183f07d6d1fc2e2c3ac7ede42f33687450424d521e5304c0554640d0a94d29c46f051f861b9ff1e84baeab8a685b4e0ef8db14a2aa788e7916fab47ae719ad76098d3280d8f24ff6a2bc230a11d970bd5eae076f99849dfa055774a6575cb6564cbf458df6f2e2c", + "b2ecc95e45262b0d9098e8211664084b89e51a08820c485d7eb7b80ffda3a381a7124f63286d3d70f3a16f7456a1f848c7ace6f9395368ee588d610bd2e38ed149f0d94634d2f913ca82739fbd9dc95c9892eefd48d5c362c4c8d0cc458a7180418aa9f645956ff91e5c1b823a2b52c83f147979", + "212717c0b5ac6668f9a1cc99032abd74da8b27e0935afba9d94f80775efcb8a514e04a6f90ccddcf619b9f570e9427bad67cae3793e609af831e04077ee50d9a92e5bb16e0d348c1e1d2e7818e534fe1e0229cc5a6e1a1898ff2f736e0fd7c6b2dcbde4609324eee93cbf076359e26771bf6b5dc", + "149d1ad6c9e639b7a5aad34fd6acc86fe554559564840c0f94fa409719b0b9ed6d1126da179cb8af68d8fb20b5ad34e6807263cd9767664f7930c5c1905449461978306833ccec373791244d4692eedc56749da8dd890153ef5a8c98e2a20d9a1484b695a791c35ceb3ccefcb8bb07edb2ae3d30" + }, + { /* i=4413 cDividendBits=843 cDivisorBits=83 */ + "0186fa5d8ef0c6252ab7c3d5deebe0dde9e02ba57b8f4d802456c36e597a8746c859ee068433fefaac1afbadc8c532d00a589cee54c20a69ef0aa5ecb051a1081315678516c0b2791e5f5a687b8005a52bef9c2963b665b1d94e1867be3803e156fc4f6d695d1978d35a", + "06f1529055b7ef40cf2499", + "3850b45c5511407b9a8bb3469d73ee99e6fa00c7cb0829a234c1cef30b1089f4ae94c3839204cbd5557682ba5633c607d50e684b104a3a965dc15a052809ba987e0f61c897118bff943a1cd9ca19818c154b3673b43e179ecc09ef6e247419", + "064463529f5ef00524ec69" + }, + { /* i=4414 cDividendBits=3785 cDivisorBits=2155 */ + "0675801399b209ce81cda0af1f49167c66d24019d8c1c8306e99add977d2e74404f525b71a0dc8b8e96e854fdb17b9d0b7420fa122521ac002679842895d6eee0ad14dd647bd7113e08387a08b12454b9ce07b7943b423346190df571eb7e6017631251ff43e6bd85ee37b8937f51fd4f3925f88f9a9e0a217aeacd75f32ba979bd47c4ba19ac017ea1d823f39d8b1fbc606e9f53d4033b6584f6330a51d48ced8e15fb3e6814c829ccd5f4eb5e3555a911cebd5108074a0f889c12d36a686f5eb6d6675f56a853dbc7fa82a70b32b775ae7742d07b20f4f0001bcd061320f727af69f64c476d4d56a42d19dde8a3accd192be1a657ba97ca9ba6274f6ba115e8a05777c7752b3298866aafab02bfdc3869b77477061c97728f332844af8e2a6a41402f20783c26d03e81bcde307a4c9bdad9000f00b93f38f2f8fa2ca63354817e33807c6ce255cf9f536d47038396fb4b9cff55a160dbd21c6034ffdcc8982af5b5a6ebf42a01c244549655ec43eeec779d1a93b6edd4f3927f18556404ffe7b6d6fef9b07f2b1d762a32460c12dd689ead244402441f27b87278a0c7e6f045b5b4ab077b6c865aff7803df8e644b14fa5cf4d1799c0e11d2ebc0f9d6740b84a7e40659ca256db54ddfddb46dcf2ab7c11074e754f5434bd", + "0742b581bf61d84be3026cb4e811d0875baf1009665efe08b842b96746ea85a3d9e7ccd941c0efc93631606ebd75b5800d9bd7522ca1c4f7b905b5f5f051103045cc2c3691705756b0f919f28f870988a6816a94baa615735adfa565c385b74469cccb3d106334eeb47c51a9c4b1aba5696d5053ac65daf0c71a67b77b08f6ffca3be33ce174a496c6c4f085397c3741f00a3c79f55ec2b7cf4cce5b72401a3eca35650b6cf5abdea37baef5bc87550d72efea2a47207935a8ef67d59c8372696757c2fd34d39e3b7e91e06c4a8d3ddfcbe73f39243c8124a08bf50bffda69f4d93765cbd2f0aafe239616e70c87cbe67b926f2dc47a11091d5c1a208a24191cec5d5c9b983dc08d9bfa96d03228", + "e3bc920776d45a1b2bb1177526aae722e4d699741bed38e461440433fbc85aa9c7bb2ee86b7288233211bfa2e424e641a55c54a70993b27c8699caf7459538043e3203786a7d69d6318e1259146c751e95092b8dc6c716e8150dc999ba7d9f1942f57d6c0cc8854b6c7318f9752ebc886541871dfc286c0a98efe3317730b8a7f7f9791f9eed75744b42b2e3ee474711efd2f9e461d3f9dcbbcb28be7cc34233f9772b1237e7207f33afce77216e217f1c93dbe68e2e1cbb1831782b7429fd4f551c19b285a34964b386de", + "0141e1e3f6581e18d2548d6dac06dc8058b5c2048522036e7bb763521975f550d5c1ffcd9308debbbcad535547bea5f4e802e11eb69f03430d181b804779eefb0f82dc3b2445949a2fef8b1cbfbf0626d527c7e0c1bbbd1c15736d6a46f0d9cb8939bb8a709f75d06e18a2a67eb54abb1969f223d2f430dca315b70250bc2c42e9ebb49022d58fdfbbc91a6ba9ddf5e19ea550016f9299dbe1ad8f346f171af7238d4c2c41d5caecbab46b563c66cc0a2cb8a888b54e644b74e1593d6d5a4a8e0605c2fdde7d3a9979f243b0beb08de725bac3d7768e919a9b471b96f36550fe4154258c1780d38eb86de28b8b7dbf0af3fc0846108b0053ccb61599267c73ea503cb216f3c5935e53a2da8fc60d" + }, + { /* i=4415 cDividendBits=41 cDivisorBits=22 */ + "01298ec96c1e", + "3e0ef2", + "04cb78", + "1084ae" + }, + { /* i=4416 cDividendBits=2620 cDivisorBits=1428 */ + "7972722e16fc90798ed91647336bf71802ee8207fc382760c258ab686bff5cc8620b27dc6e03b9ef0ef174a36809d1f4417efcf3f6a3bba3c51a1e59067e7b9065b13102374a9b6428f1ef06327170cb1951385c7187e48003e93ce519858d8f611161fb8a311f66dba4c86aba1720429943f2129fd52cf9d1be195b942d734d90c62b2c1b5d056f66c519b288acad8b90e4cb29c89f04ae39a3a0090bcbe3cf4ccf709ccdbf2c2159f290600458826cc99778bbb6eebe0b5dc301c6eb676a6759e01a8ec52798c6ee97a557b45bac8e91938d283a684114be23a7ebb35ade7776462a8bae067192a88d37a0b9b175092d361d0ee38b3124a4a5fab7b6ea968c5d7e6ff07450b3ae9a835e7d7593b44bf5769008084e7086368a0cd07e5d435ed6f74a75264adcc3f7cffc3a0584a405074296cebfc51f0485e952df75c2f4a497b834543c30d5", + "0b3af62ba5dffc35dd89f61b92d79901f21618d32dea439c5c0a411bcda62810a928a41f480d86421fa29063dafb9defaaf7324f876abba5d040d18ebb900494094d72ae0048300d0cbadbc3ffb7c0cd518937678baccf579f83f4dbddc6a17a49313160f06cac0962d982e36d59e2cea0c8651e4769816b7b6bb1cfd7bfddaea0f2af37af39aa302c46b04018e187bcd5ac99e46f9b2d71525744f81cbaf5e20359005270955e1ea2716a53971575a5cc5c86", + "0ad0703cc4aba10eb8baf279cefd0a28330881c7c9361862e2b1c97bc4cd3f841fa3997a61814ace8113f142ee78515a10d2cf46e6fb81cb422a5663bc0271994a993316c0d84b4c24ddb52f4f30cb8a1eb1ac6131d8ac537a102fe095ebb860979b4248b7d4cbd406dea59001fbbc72266b133a575798f26544b98941fa51195af64a67abea3d1019313987030195652d588c23b0", + "05f29c2363ec250a6bf32c0b79ceeafea825e3dbc47cc2162023f62d0aa1d26ced77009746c933fc8dcca84a703df1c73a0315255580ea0d1ac0cc08f0f110ecffe6a21ed985ab58573ad2f3fb73d53ebffa6f7611379c75014f78e7fdf46129cefc3d4afd3a849d268d869c9fa8c29c67dd99b4c431fad7c53f628052f4807fa677cbe12e78b8cb9b98870e1f988b4613e597b9fbf533614c937aab9489c89a9c7f64907fe5ced1395e753209d488bdce42b5" + }, + { /* i=4417 cDividendBits=2254 cDivisorBits=1714 */ + "255b00915353bb162b821c0f0fc8b7ea32c12fb39f327db5a02960ed6ca3d1405e7e4b83a1472175470d9859f4bba4fe3df74bafc433a057d0a29eb78b87a8e968ebc94a266c812034aa9b8c98e5ceea218797b447c8c0382c6e44f738825936bb3dc7c551011f9812737d499ed242e27b0c1ea9a9f28f7a654d9f46fc40752ae2aa453726ab033e9bff21ad60ff1530b6ffd5ac8227ca73fed895fc8c6124556fbee43e89ef6a0e33e25a6c56305222e3809dc928b0750f9218e23441ee99f2ad42ee3032fa0f8aa571f189df9cd0bba0d661f7f611187b897dccbc6d394625d39246f910a9d689cafaf6a9d1c6fe0d73a5d889563046795fdde1effd85a5f2e31d61a2ccbf2dfdda97b858636e627c66f9fa72d24f5580cb8f", + "012665cddbb99c57442504bd10bffd7eb1d9b7b4562bbb2a5463a28a23cd892bc6d40a8ff0a828ea65343164794a3f1db253ee56cee61a01f569b2ab64d5a6152775ca63021a3d86f5ddb1430dd81d074343cc11e10d2a5567d6462c828616534e0088e1e2218820c6db6e7444b470ffc99afea27170bcc60b69f9ba84c890e87ce4fb5ed350ae5f1e5697a46dcd8fad9f4fe5d2932f289cd83528e08468c8923259b88561df970287aea8de0f40da854425e6c89d6a338da083870851f3114c77fb078ce3dd7f0384c4608581c98af7fe355a2b047f55", + "207bb847fb9e6941c4ad5e245a9a0dad4b08c3c8ae05be2c88e210d18d4f9ece43c61cf0e6452637f808ac02cc5abd51e25c30eeef45c10fd627630938fa5be0ae2d73fd", + "01197e7ae2d6d165d64720e085946ab0da6d7015a85aa0f6905523c3a8dcd0b227bbd4169acf2488306e91eace975013cfd55e9c72d685ee0c1b191abe414ae8be19559062077024daa97ebb4ab8789861e086932f1b15a27b0a09e6995fcddedda02d332e505c31583b9b41a2448b26c783fd4c380319b2483b42f6ff8c7ba07062172832d6f0a43ce50855da0beaab86c4cbff5989c665b163c3d98f3cffc421d898869ad5bac867c17632d07e2999839307dbdec2a76cc814d76f880d7a0ecd72df04f8cdfc309b21ae5e7c57dcd9f55729a4eac58e" + }, + { /* i=4418 cDividendBits=2101 cDivisorBits=309 */ + "0750652bf2c45d050fcd5ee90c22f4a4b3a8ced025e4ff138ef9b504342d168dc518acdda5bf76be56862739aac2fa00622d16354b5b2f232c407569cbc79c3d2b8d8b798281a00107d9162456980fc70246508d3ddeca09cad72579b25ec4485790b579dd83266160cc1580a63432524ef72a63af5f485433e6c53f86afdd0895e54df07d23690682dd5b0c85111f6eeda2b042bec13767c71cdd4baac608c4bda0624eca67f0bfabff3881440f1fe0656bbf4aea45c41bdd9880425ed31e2258c9a17e4c9ac44bfe8ee85a30201edd7bc2007e9a76212a2be1809074771686d40ecc2551231b0d931d9cd6c74fcbaf5671e1968a615ddc8fbc34c7b9ccfe8ae1d626ab0d68c1", + "1e50a14b82ac5a6dd02ebd00665b03389fb6607cf384466b8562e03a64fe8ea0d77f81fc9dd804", + "3dc3c4ef8195bd7b52aa69b56185151d1e25edd3504adb5d35f5e3bca409c55608297679e3fb623f9d957b0943d2d9f92b76cec21ef33fe9f567ff6def51fc3ac1f6e0e0a8f2ab1839457a8bda1ca8140206c141b1ab70c10dd914903007bdf6207f67471a1aa435aec83989e2f168fe8be4c8e325de5edb25880b482da275103af2c4c90d6d231313025c615eba5b263719ae12d34ccc8c1486e8a4c8df685646cf71bb1c25c588fdfc434e0518402fb870d9c84e623f35394bb11b579476ef4c0f635a4194e0dfdecfbc7118936b4510bc118439a3a553a1fedbf32f265895", + "0f2adbc19cd0378c57369f611be0a1cfdc19f0f3581990b1e66149bf4f6a0a655bfec594554e6d" + }, + { /* i=4419 cDividendBits=1157 cDivisorBits=117 */ + "1d12a14f926ae5bec6a0b06c0a0537961834a04c1a4d2ee957cc78f4c85e8000c75041cd67a6d6a8ceef11e7365910bde7c5727b44c6d1846da96cee2f890bee5c07dcd5c6e31a758800deb33ac6c43fa6ef26cfbbbe6dae3efa8bf6f951e5915e253c82932e9759719e217c847c2b41efb1aa55ace8eefd6d638083ac67d63ac9de9684294fc6ea92436241b8494f0fec", + "0b5334fcaa29771034eeb6d774abf6", + "02912f2e4e0a37453507ac3f9beaeea406b472f51cd108c2a5428ff1dfd99a29592febddad52460f332f6470a54d856a86f4e8d6f3c8e18bdf5f90409a9a76b0402afcf5e9464f849dcb894cb85ee278737987238e9340e99c6a7a2546b9f1ccdb86e2320a3244bd58b560ae32b2c802d1e876bbfa2fc2e3eb9ad9d87111231e6f5632", + "02868eb0568486b65e45419f16d5e0" + }, + { /* i=4420 cDividendBits=983 cDivisorBits=621 */ + "09d90d977e41990344fa0748d31dd961cb7508d2f7e531a3a3409eb4b327df7c31941afc3b50a79456f0acf0b15f8c4491e762757e73e8a3b1c61c371908b55d88334a526e7c2625c6c7ea2a4c2906124cb28b9837ea1f29c9cb7b4d07ea9c49c66537e571a2b9d16582d50c45e68ac5baa2fdb4c5c12cb83eb08c", + "04c9f526dc27e32e89d20f3308e1112dc07a03794614fffc68e6248a382a28412327866e41e6784d3eaa41655cc47a11f57e2247c1f97056f44827db5163b1b3c788f0249d3bc971ce839400bb8d", + "020e6fe69b516794b19087859229c72bffebe8dcf4ad405a26a43b08b730620dbfb8ee1ccb3e3817fdc29a0e9a5d", + "01b9f5912f266adeab357decdf6c212a4400ecdb1d5b6da1048aa3617fb2e1aefcbe131939656805562cf5c865b846d14530a3bd60d067ab97b099f14b234f7a6bf07388d96a0a6491a06f71bc53" + }, + { /* i=4421 cDividendBits=1852 cDivisorBits=500 */ + "65bbeb2bcd8b6b5f8f520d0ca8eeb203260a0b9476357846e611d2a5a2068d4c4d246ea7d0add0a326df7ebd7eb101ff7dde1b6236fc97137cba65c6f02a850d78293312915a57471f3ef8539e763051bbdcaee86d08aac55022e12761d5a0b6e8fae90046a33d1a6078536c0291ab30bf57a0c68594f2c0dab06ddaee396f1b4dced7836ef4bd74cc1abe89a7d2bdab66fa88787cf0d9dd7b7f49203c01d9d69f228ba659e642c66dac41116e387faa85727af5adb7530b6a43ba2c0e98ccd6809a502cbdbbd54c7560816963b90a563c54bdae65561082dcdbddad720cfcf3ea3dfe24cc4b2e", + "038de13aa7b72a23b17bf1bea2d2de60f1e81421658fe615c788da4792557e070eaed91debbc1f88fcb6565ff0a82379f5ebeb1ce1d12c799052e950fce783", + "1c9f9bd5740a4f31e08cb93e50c556fdc7ec16d32ef114f4541e17184f4114f0ef67c0e38c01ee92897bcaa9a30f4a0fd7700c5cccc532b74502609ae06aab9c168c3fb0fe2fbda7b3b273117c5ace7eb0210644a21392c9d8f5f9dc93c947249c7b40ed7a904cdcc3619a3c00590416c26d1c44851bb9729416daff71430497acd3d76a4f7aa159b1633d4c6b0168b526e28a0aaa5459608239c2e6a91599b5ad91eb048b4e59c7ba", + "7c5b880594de15b8c6a64a94626e2385a2760e7412f586e64cc8e1437d2b61dae30db799a77a135b9766dd810ea67c3a904db5adeff9e19fabed4e8a4100" + }, + { /* i=4422 cDividendBits=3362 cDivisorBits=21 */ + "01b486143547d35a970f5c2c6199c4048f5558ddbb82a9e66d24667f820be051fbcbff8970b8a281415da8acfc6827d91397d98cc11785924a998a09a166f9596c1777b47446db932ee0734058e1c921a298340379eaebf32efb87513fe69100079f52f0aeea6c74a5f41c7c38213102b58efb7672047913c946a4428fa3bb38c4187bb73cd455f72d549814f88562f10ab80e5b5b425df0dc5211595ff5a31ac47a12a605e2322d98042c1b7c5af7e6479a3b397cdf7282c488a8b6110618a98fd25f5394e79ac07a61193bd25357302230f5c3765158fa37c4227de4481b5a53a1713f2505c75d85c786827a20b85555cb009b4241d954831e1f50e7ed3bfc45deccd44e0c73172b3a9faf40a9fa85b2efc9ac4523bf38f10ed405ab5014ddc7c34e3462aea0fccac876191bb45f3ab0de01819d9be71123ddedcd8f401ce584ef5aafd86e3db90aead96c8acb2b38d518416ab7c7bb6f4c701547d413ee9417cb4dfa38ea2f914835b5bfb048d9f657528630d62d581a7550208852f6f0983ea44e305b0d2fd94f24e639819bd080ff39095726a04b2555ba8518b51f6c19d836a023aa", + "02f346", + "93f5b309f174c0d1a93533d25f05c6b0a888929c7499f1df1c9d8ee4dd83d08278242c9acb8c5308b376e14e98cedb3726937f4bb5ae960ec5d9532481dcaea64275d6b64631a248bb5be549a454d5c3b191f500a7136ac3e99b71d792b09e98ab6d8aedaa5cdcd2c21cf59737e4c81abbbc3aa6d128fd24fa6a658aa35f773d331d692dcc65bf5b8d3e8ba746bf19b29648fd6c26ec6f498aaab3447905172f2d7e8b806b837c5162a47efc254e3944227337f0efea9b8130f083a98b45075a77e8729d2eaa363ad8ab91179df7dc2e1bec6093ce221d763cf77669c2037e42d5556abc781d564b56196b535670cf00109bfed9335af81419fb5322a6be037f76518a01765a70b897f4845f196c04cd59bb36f4d946cd56182be15f2c7022f6e9e39a5440f694fa406f60db746cf9dc3e50db8d3fd72de093559f133e56c0865f25dd3e07372f1d82ceb7c893447a1a5931839ef4392fb1cefddb854603e07a34db8ed0250d0861a00c33a892bc784e219f5cfe8f000027c36466b1f94fd3624703502c7658a9e5c917d0ddec0a28c354faf2f4e03da753108c91e49cf5e3b97445", + "02d9cc" + }, + { /* i=4423 cDividendBits=421 cDivisorBits=345 */ + "06570486f0f27e7b925d4079aac7b86400f73e6e6adc3510983b2ead6e11d069da258362a36192ec4ca8f1ac4fecfa4384283a3a29", + "018d288deda01b6c3b2768b08be5278f2ebfcd9b7704d230f010dac3499d32f2a57de09e88cc0426752b7414", + "041629c8cf4db8787737", + "5e47a8552d42eabfd993bed7b51a0745061665c0f64befb8df5b47d494e14e17c5d47ad86b40f8ff8efddd" + }, + { /* i=4424 cDividendBits=3975 cDivisorBits=3785 */ + "0ad56c54d1b89e1e1bbf40001f6591bde8c13eb09fbdeb6008d7dbba69050c2c1d872bd9d608ca1a8356d54efdc0eb3a390897c194e0cc82db26e39e8e24631457f46cadb6ef280d830f847d201571dec5d59277c8b472516a98fce54894fcd939ccd8cf09f12b2b1d78c850a832d5de3343792affa8c17c4ad6159c96b72fe6f170bb02be1b367ff1a69c88146354d2301e6370296b2ef64986b9ac1ac6684a491a44bfdebae4a03fa0da5a8363daecff2ad9bb5216f1e96d80f37d711255cc83f2b97327f41ade3e5836f19a2046e0a2c230e28e64b1d9782dff33d936d12607e6692e68f44cdff95d9ec624b67d673ff02b555362b133cb4722ac2c2f8b4e56aa1a2c89a886a536a7490d6feb4ba51097ef6af9089bf0ab30d9e03ffe0a33cd8ee433fac68a9aa81807bed87cc7f729f88cb6c3da2c2a6dc46d09c631adbbba7f500145a6959697dcafd939dd813127eaf8bf8e3aa98149168293cc3c2f4b5ae6410470f10ed0b5bf02ec310f1f19ec4014a336631772dc7796a28f3e0dd5d6cb8e2adf8238a07890f18f54421b74ec7b19745f722aed56f01dc5b6102714aac8f31f4515a1dbc5bae434cfa7e18b98983a00d674880dc2d0cf5e102dfd97b7daed7763fd002808ea2ff9bad0e6bd52ff7fef748b47da6589bdf73df9c246f2ba5ec6279a29ad2669983d2688a2bf85", + "e4aefe70dbbec0bf67a604215d837efde6ef1f42b7f63efc9cc42bfda175de1dac64c0afe9f5114492907b56171cd632dd273d31dbc691fa98d30211ff1d5dc88afaba62f13101e949119a631fc8022ccad90a2bda400bea16b710777396a4b83ab68b6ed2a96bf3ecf1ce292334a7288fcfce2620aa461050f0991276918f505d61b15615aec07a9d19a38cae72b221a146380162829ff4de259e1ddfa6401841fa18f25a7588fdc9e2480a7948d8cf180451eca2d3f1249b0f3632af389e3a57f43060892a7d590a61d5b0908921d92d18507576bab2ede10f8a14d0db32ef3012afa06a6002e4c11e66df767fd6bc7fd685b150dba33ec7ac9f1d361e16963d16ffbf2788b66ec58c704de655fdf298a7dae0441e506dc07d78ea2eda2ca3e04e2755791815fb95ca168d06bd966ea568f892f112a68de53106350309bae4e882b8c95e5581521ab3c10c4ee9f5a411ee40d76255a739ff5e8cd3ab4f7175b67ef031325e65f0e21d416b056444e6bce74f1841b15d1615138f292d40f01b9f3993ab93ab58073a543742c9c1042320288d58247f1a79071416c3d3287c6a4366e1a6fb31d6e7a77f7f6fbd59ee996efafa54d4782a7af1103a4a61f66c3672a7e7344afc230c32ff66757c93d3a4011e8cb22f0c765264", + "0c20b5f1cc7efb95843d1c0f7507fb0585875c2a40f80684", + "0262130798c5bcfbd6e13f6097d060879a32aa14bc624168fd7e81430930ec7e6dfa7d69e37da091bfbdbdadbd76fa0af84028024c4ff73be7b3841a51c10b129b128e4cc175a040502b8bc02cc563d14d9efcb7e7a384f255f26cd3fe7544772e4d26da76366031a2928096fc5f065d5b25389b4a89df5934e468006f45783f7e34ebe5ef9647392e9d76f659ae6f199b40caed2f72b8c9d20ee63f8ad76fb16fed60baeaa070d9d3a39ee179fd1658f98e59e4ee1b0593fbff1e63ece620e67fe3c7b5c671ec9f53f21ed865ca908d0a62758213bba3c16aa3f69b52c1b3c69732cb122481990c45e016c86c2d5f892e6977525e89ff9d3991f331385dca6b5c8a6b2081fbc57fd29950cc2b97ade852de8108c10a9e017e5cd96dcb70429b3de07a03048aabdee2ce37311d56a01e9029af82c32041898d2706c87bfbfe719235d0666672eb14f8990a8f84bda930f421154ed051379907a8d53ba02c97f5519c706c2bab200c37c5f5ff098dee824f78b5a8ad1559f744ace87de8785e79b1bc4de9c3af7639300fcf1ea1b5c0e5ea58a45cb15963ead666f06598095d962ebbb4c04e187ebe6079eeffec0356307fae59ad798d0822d1142abe7529983496e491b0e36374cc6782d0d99c113d79a9046c26f884d1ebf5" + }, + { /* i=4425 cDividendBits=1091 cDivisorBits=381 */ + "e535fe012e2cc4c741ccde044937075858d67bb6e2dd78efee03133be966f97302f57bc253bda93f73fc58c65344a82b2bbbd171ce254c4d3a76cc5c5faa6cff152c076f1b4ac8d160184e89fc2cfa56d74e54d2c60890a457adc0c952c926fcda2203b0ee423db3d1428a79b61587a4860debe957c49fba140599c7c75b92cd2bb3934671f9c03c", + "0f9ef1036f878ed64a39c9b51a942f5440217964e8a9830f5c54e483d6073f9dc9a56b94f538e303a48b3cea07a36f77", + "0eac62b4f1cb90e5d120294fe1985aa7ff1929fecfb6af0422d807ddcd708af481dc1e216a42d5f25174eae747b4fd9f39017064dab9b108bca7d2312b7e96c900b614281470996fc2e4c333a975140e9ecf291213536c3217", + "091d2040a5d1eb15274e5c7338ccc44653c30fc66c4c1738a90a7cc40a53939a1732ec60f17c40307c0f8ad63b517e8b" + }, + { /* i=4426 cDividendBits=201 cDivisorBits=83 */ + "01faa7bafd5d6ca77a8187ccfecd47899ac4847c1abb756b9d43", + "0363d86a2fd1857dfc9a55", + "9574735fedb2665d0597ee29d5d18e", + "022e67da2000ea53959d1d" + }, + { /* i=4427 cDividendBits=1741 cDivisorBits=1020 */ + "1428526db362c1b9d13b9801aef7be3c9c77d2233298e82a0cfbe98998117e0ee684fd38c46d3117f20c46f1ee42795d13c1b7862a0d03ffac41bd114684547c84350c63daae2a1262a013a6a1afac05cd0d939e6ef05324696c615af0a22017cf4229fceb99f16482928dfee2376aba282eca3c90fd652078efd696982fe0cfeafcf96d5a2be96a5e075c72ce89c14890219f84c77e19bd209b86af5ec2660ac45352eeea44a841393c89e6f19971dd493ef24e7e4838d2a4f5c1ca5e7faf00e7334a24365abfeaea52c948eabace3851a997fe6b92d751bcd0", + "1f2c502cfa1c90c191d36bb0adc1f83d649195203415819c97f5ce38ec517823e03139d4a92636a7b19afc0f8030ec7661c42561a1b4e8eaa56950ba9732f802f46973b93cc3c4164171adb19c73334de3b001392132d8d017013736e0f61424d9d127682d3c5eb4c66cdc8415c082adbd52bfca46d2463f0555e8e876dd56", + "a589a48f082d45bdfde1779322ae4f5c0bab2976770ee36fdbfbec2da141ba87dd07562e16b0a25072df221d77abb9472a0f9f096e5c68eaecb7e3acd935323beb6b585c5609b3f2ea7f747d8ed82c8905a212ac42fd9a32f5023a", + "038f8505655d3202348b85afea9cd7f55d0765b4fa53210e275368eb0ea6570950476bcc7917aec38cbe365ae0f31d8b67c1ee14073e8b06f89b50138a89162a3e6ccc37a189f6343f98855d2691217d7e5df58a2691d630f6e83c92c92387f918f2d3ae5afe13864519cab6f36d25123e522dbc8c231e68644e449f5aeb54" + }, + { /* i=4428 cDividendBits=2283 cDivisorBits=100 */ + "0502a2af25311e71c087d20d4b14932798eef25a871b67a316728be732299ce4a3c39a50b94232072bfb20611a3cb6621dae8d6ac7686a6f61aae22fd7749c96208fd150a629c396d1ea0fb79a63e5b1b40b1cfe653889e4dba16a14f4482068957ac7114318c5016035474d0968969e44772dd17c7371d4311b14cd0aa1c300819d63a8d246fcfe68ce365ff3c05c9f5451acc83842f2e840ef4c974b13860f25abcc8047f6b7afc58eb25a13f7d8f6b41fc84f1808b9551dd836e98eb963aef47ee09c98bdaa34b426518b64a003c3571ff21cf9163bbcd451d3f1a09edd2b6f1cb0f9b91ac177352e7de35e9e59f3cabf35c95ccdf31278d8c3243e6e7084fc46e0852668394c4f5d50784e0e901ad33656bed8d3fe3ab0211de7abf6", + "08ad7ae243e797a163eae95bc3", + "93cf18fd7e22fdfb4b5f2cbceaca6e3c83674106f0309b44ae5edd934a015e6b54400445b5f0f3b432417a3071041ab4eac64e7c63294f2ed3495d2b7ba140998609e5ce2344e71eb719e1aaeb7c7de6e8282509b162cfb2ab394f4a917b1053580d96c3709769a56e63b7793fb813e278d195c82a0f5c5bf961bbfa628f8befc1341cddc4d4a547c1f7dd5f324e67710ad5da5fb7cd6ec500d54cb270a3fac60de5d54285039dd8f3c064eb893a8aa1e4ee98aeb67930535e03099ee372cb653728fbb26e9d64d96097aa69d213a3eaefaf4ca907f852130d0e0e42f7409fecdc65565710c95ce2999c913e8864e5d09061af5dda05a12fd6b33bd82728cf708f4da24e0816601d14105a2bda8f6f2fff", + "0550333c37fd547afa910f77b9" + }, + { /* i=4429 cDividendBits=2564 cDivisorBits=233 */ + "08109bb395928757b737fd083d080b086776d8717b339cc4c2e3a11ce180feeb8acd50d62f28ff1f988633f3a92948d4b22048332cfcd4d4a4d63138036ddd0910193a9164f51a70b3da30c7ffce38d262a4c43c0cecf7adfd22d6cabb5767a665fc845b5978d8fafed4211dcd811b1075c908528065416cd66484f6e3ef275b2b8ef1786c58ad77c9dd0dd7b9c1d84f3d445d03206043a0ceffc7d5f2ef9f97bc6ece875e5f7d7265bec2b224eee262fbce2fc8da7436ab1201ae0faab0b54ad81a297a58a0363da90f9e8f81c51fc2665706cb28bef29fce9a98876977794233adde7b41e294f6904da1718231d7786f249b5eeec8eb4cdcdb6c1d626bf076a2cebf53f39963053c3a08bf9744568a4997dfcb8578a114082d19699021a5d514a45b4b9410c61434cf1f409a31bb27a616e0918d2fb829841cff14b15ceb9836", + "80bf88827be64e6a143521f252d483696ecdb932929e2ecfb9106ab4fa", + "1009388aa748fa8073f7e6f44d14c40d0efa7c9aebb05d69b3daa636bc1aa2585bad11bd6a314887fbab4784b33ba381eaf7cc36c301e601c95d412ae07143a30d4a092602955fc1d3ca39af5153400389818c9c3c475d3c8341d2aad34c49758d868588433695243f8560c140c956d1033c8aae3a4b660c913bf0e0337a4d27c028020ff7f4e5ad123591369d5809a79ab3edee184124d925ab94f8f8358480a74d8be89ab8f4438161846d6549f43a2421f6bb6b68ab9c0674a0b9bf008ea6b2407b73d886d43a25d3b73ceb20615bb5af6102f90bd7f3b78bcb8d125b924dd85621b49c1afb8dbc41ddadf27d4e20c3e191b46c55bcf410bc042ac815e06af9f0a11950f20d500d322df1f3ae02a01d044367f13b9192463c3caacee0c226e93c442d", + "0331f7c3cd98c2c880a48be62ffc8dfa6e370590c4ec8a1ff72d7f6044" + }, + { /* i=4430 cDividendBits=2642 cDivisorBits=2420 */ + "02d6e9148e8755de2e7b9ed611f80b34edb0ce49bee95fc000ddb136b9ddb1ec1e5f1c2477ed65ab6dbe93329325cb5d01d72315f665d0019ff64c187c09b2cc3beb763acc7309b9cc377bb885a26caa9d9d0540e6c3cc02eed2c6f410980dece3f3016398b6c52fbad1ccc853d3abfdc3e774e6146d31a1f6a6efb0a52ae918c2343e6fede217c429e8c8ee632ead8ab3f4fcad41b5d8a24de0cdc38e0217315a2ec3b1801255bcee340ca65d0507c6f2c45593bf38d1c1e1c2fae810d85c7847a7d5b0d24eebe09c51b0370633fa11c2dc3a81fc743a383216712678008a0b1384a95ab054f9fa6ab96867f51cf104f3a84adfa055f565b7329e87be41ea50d2014b3ab8dbaec4127c8d04185babce338fed3f290abfc6e555da5c123d42103991a9061ff4dee57c27411059d2809b6b2aab5964504e11ae593d3853a9a588387a528b9b19b41456bdf1", + "0773f404902d607bc9fb8dd0c5e8cba0f27420533be25ee8f71cc70388119dec0c921b7c8e05dd547a7b57ff2a0576beaa5465ac43b3a220d96350e07ee549514b5946fc9cd75d0b90171b8b878302ee689d864092372396b3970d059e5ef342e79641377dce4e3408fa8b74c2c4e0e3cc9531d5fe3af5e5aee614bfc12baa5981c1c724675bfb689db9d0e9082b7195d6c3599b7e91ad7da944109c2555a12cc618ac4f999634f039d98d4ff1dd931d69528fabceb4b5834ce97b8ff5f9214041c4b4c95e224516f777ccffb2f2d95b45925760c0e85541f7a32e1862f56454508f6d9192d17723662a60d5c3566e519ca20574d53e92b47595636eae118354cbfd1adecb4d555170825e53dbc6ff238d393959ec18a59420009de9e487c305ff39dfedaf2c51bec4d4eb5002fe05", + "61888a179b20eab7d85b90bd330d00234d79911635ecd1a6ebbf6ac6", + "012ad52121d5f2c0cb8c397ec86e9ef9cf553b132cdb04e690bd4d31d596b75df682e51feb1501d595ad3f5b71bc1d77584a13770f5fa660f1051af6c44d5a6b5f3427ca9f87e330d505e9a81c349f784405cde9e31c8df02419ca7c9055a25d9be314da389a6aab96f9b978890fbabd27fef86fa3a60f6e9077cd14d5dd9f5843a33012ee383941fe9b3c43e4e502292938bd7bc99a49753b5ea5817e42201c7e5b5903c3a7f2f04be9acc5015717ed93e4bd8ab8e4280757d1df3b4ee23a2b29074d82b6d051273115bf85bb82cdce232f08f3c7461385e9d760638cc187697fc0e6dc4f9284931f2ac54032ba930d70fc4b9b8b3d0e20a52d9ce41025e6baef3f58c86c1df5f841d3eaff377cde3cc42407fa6391e906761048087780ae1d9cec5385d21e1d1842beead81d3413" + }, + { /* i=4431 cDividendBits=569 cDivisorBits=207 */ + "29c77ba7d50eb6f35c6feaa0b45e0c3692fffbcf280230e730826ebdfe1f80fd786e213d232bda9572fb191cce4af4a880ab88b2dc298d0e482875b90977a02b3621e6502b7894", + "28112530e5bb1e3c960814c32d5579cd8eeedc9f330a601ab3db", + "010af0ac1da37292587385a4cc8e2facb426ab5fddbf52dda5f983dd6e16385ad2f25130f6b73d69313f01acd388", + "251ef94becfc08293d2b11dd12d11398776bb3669ca38d9a6b3c" + }, + { /* i=4432 cDividendBits=3036 cDivisorBits=2570 */ + "05c28001f1e63f5532820b27fb709a33ad80a51f11020fd137c15db89bdad5bc9b777454fea126f058a63e80ff84d3ec0679f9b60449ce856d82727a67f60aaf139fa1e9f9e1cc654d6886eb52018664eabde9e7da5096b2b0efc550f0c784c1d2afc2f9cd6385a65dcaaa862c58af42568fb7f35a8f19b74974a7e45bbeb93206965403e65516194541e11e7ceca20150c62c242386187a7aeaaa4ea170ddee0290e449b1fc30c21762c284ab9e52bcb20ca12bb9fce39ce4cb97b1057097960aaff2379c8980718ff9c862bc59fbda38c17211c83450b6b546512803acb4a0b0210a8f787845b970b20076f2195dbf91b035ad9fd3afc231f492d4b85aa6bdc6aeb6a8b60c8235ea8a0bd1b17197361350a4c59e99a764e6b87e8eb679ad55de99caccc78c6b5b05b2e1d4db286d1b119ce283272076dfd4cbb20d701b4325a2df2cec5958eb6ad8321fd9220b247420fc885da0576aae36c36b3a8a2a42e7fb3435f80e55a12ddb018ed6a00fe5bfe1770b2be423581ce8af849c", + "598e9680c2ed6a7ea94db615dacf067cba0e4e9d9f564950f12335bd118579505f7eccf2c7f2d706a0033c2432a2a60df3f3b5ef8f3cb8649488af3be614eb6b3743e5a1b153fbe66c931a937b24507577c4cbccf4f820e6ee6fab5f981a5051982ec0e5e9983e4c36a46b72a317a56466c017cf2fdd7441ce4f1eca504d1cac5ee763692ec69a9d5b43aeb96026ac576eb43eb1ad75c8fd767a143bca9a3a96dbb26bafa4bfe0e12d82a042dd1e277569df86aae491ce444ec3de30739f5718f6b930d480b0b00e9e46ab958280272434775ef77f6eeaf09cc2a35e5caa6d4f313a6aa198ae5a422ce7e955e4f72b5a2e3ef807c38b6e3da6225439341cfcea997868dbe5dc9ab23fd7375205b5b1d8118297bb49381c7b95c24d81d695150cdb6148f573112746df3ec4ebc0205b49a96524b0a69434c33fbb15481cee53158f", + "1076e178a3a5f27ed9879be90661abf9a13eb4d190f1c93a45d4eb57b79b92f99012361456a4e6e9f0b0bbc3605ab959ab1eac1952aa4e20ef1a1e", + "25740b6ae2fe93364091800df9283342a02c2a0fdd43fc5e8bd7838b3ff923af8258bc5394379b3919576f395d66a72cfb1c759ba6947d063621737b48cb78433b3221656ddf5fe2607cc8425e9cae6be0e030ff7833fbe47eb10f654b8ae0d05d82ce04ffcce3db0cfcfca00953301f739ae62741aa59c85ca314fb413b8fe94d1e5558ca80864f0f78b770eb406c0a29cfb41d4bacf9c95d53d13af08f06559c633ace0c58e12fc3cccef8b4058b2cd35d4c37dea62bdf3fe7fc1d77612f87a79556a4c5861d023fc7330134863435539f64417ac83d4c2d92618c87e702741429d320abab62e2b367fe66bc976a07ee14debc999b9bbb9702444bb698341545e1165c088e69937eecc763e615318d2fc6014663cfa47f9b15f75f0be81289f4fc6182d7f8b1ffe4680ef20b26169f7b7b2fbb4cdec97df235158aaf8a4177da" + }, + { /* i=4433 cDividendBits=2773 cDivisorBits=1214 */ + "03057f08637e77a87e30e03ef250955cc170410c3fae2c9732d24842be36cf9e52780d02dbb1cbdf0aa1d3ffbfab19d7d96a116b373a9e795db1a933d980e977e3dfc56fff171445627d4bf3860d1715b91cdd3829db8c273b19fd28e07cbe08a499ba5e4e02f1dbf39d27350a65e56d0e0fe729a730322dd352071718fa5c0400bca8699a006e4becce75bf55a035af1a1ab8803e81e1f3fff2aa695f62dd75ec7aecc63359a3f8e5fd6d657b127449b2f32b9e4c5de44fce9503d83e8b01cb60893ebf6a4d72e37c901359ad81468d14ccd8234e74cf6033a1861cc2d51e7161263a94769c0f6908ef0082e36a6fd88a593f8c2ec49afbaeb3be9352cf24efe6441c276684557e1e4a016e85287f7f1fcf3e03b25dc21890c80e1087c268d4fcc135fdcb9546456b10af344c8c120e14a92864f42c0c9460d02c38275354681450d47af0703244323e9017ae67027f753413e747d0136b122166", + "3a89dabc274f10d8895e0cd1d4ea599d31db1a53ef5ed6903ad5a0eae12b7dfa52412c8bd58cf513e6b003b7fd66c180f143cb0b892fb844ccebb6507cd0842de1dc91d726369ef6d1040c5ab343e26ee776ff02aceab4f92ade2b0e8d4b332621d9bf970a117003b582ab5dce3ce55016f6a75675895e1e09425693cce521a26344df613353e037229079e084f2a3c60704504122a756ab", + "0d36a582826c7edc2c0459e6c1a2a09c11134be42b4168b18476c241174138a7e123a3fdf8a3e2f37e7aa35c11e23d1a80875bcebd8bf556d29d070bdeff65da0026a62b77d232dc976c1af16307ccd9b896ae828291721c35c247bbe8dea8bdaa38e384aa1e80424d507b1d324c19eb8001e950006af35d8dba37862e63fbedb144b42542ff614527fa8733a03bf921b712e4f555925ea80e06c4814a026bd904d06526b5f9ea635f1c2ea995e1d3727bbfc1ad038b76ad00a95ebee553b12ece2904", + "0b2b1ef21842c9341655c51cbc277f9e3036bb6f4b7b6721fbaec84293bb7daecda10d02f89edb4b6a2ae2eff604dc895611a09ed528acacbcc7b47b3f3116b2b379d9a103b8853e3bd870985b37cb4cf51b3b6e448a624df7bcbe6aaea7d89c49186f4154c94ccae6e0ee35bfab7e48b3c6c3b9f1c1ea47e45a495516d39b1be85403802ecd843415f5b1bc0e2dfee529f4cf0c9bf963ba" + }, + { /* i=4434 cDividendBits=1679 cDivisorBits=367 */ + "3870dfd8e78838f3152ef0345a694efbc4a880a4dd3329d58caa9126987ec3db84bb813a09f124d04b7c054280a1b8cd26ce71550c87c055bb69d20c3234b22d38998164a52cd8e6f0123fec318b0339c04cfbcc0c716b177ac1f709631819ccdf7405fff57218e0f27f9ff381c4bd441fb7e33a25c0b126a939b95da5a5f1f60fe2f34c1c8af79d425ce0b9a762aff1d6306b7c1b02442e20a826a8062f3ef8c91cd692f69f2927591a6b1a429101b794510c44fcd8530aac4714343e3131867607dcae1696ae5afbe519b31ae49a3d3f73", + "402951395f7f0d54e1b164e593149a631c3b2c488a404a3bfe097518dfee330c4240f57ecb4cfefc3b2f7d1656e4", + "e1321d7b6d1716e4b7e92dbed43a9c9ce838aeab61a29ca96fa4250ed6c6bf9b912e40992d3d720fabeafbeade36a91b7f96fd99a3e791e6c4cc0d87f531ae712809065374b5855d4a190bd1d2c97bcc949387d16fc09766cbd94d59a3670cfed47e9e60ce7e80217dd221f7419a2ac6ed5b4c1e879a12549691ab983051f89fca9e66a3f81cdc8ed5db2b69b1a302e394120ba8d63e5afce18c62b9a5bbe0f90b062be3", + "3dcedbc8e0b2624555c2f7978cfa75edeb9e9939797677118076943e90dbc8349a6c367d009b914ebdc0197de747" + }, + { /* i=4435 cDividendBits=2617 cDivisorBits=331 */ + "0664fb06262f207a48a0300a66a61540ad235644e64cc62d79642b063f88dcca3b3dfdc89d87468e0953cde2be17fa87d6f07d2b637ec2b0aa4cbf3f683a5a44e9fd663cb1552ac8d68137244e49e132330959d93e846ef31d7eaaf8d1256f1077c9a511b7bb3d6da152b29827c503c1e0a26f47acf18e68a0b594d29e1365a904e4777df0860b63e00bc58a2f25e3a4a100218d49d87bbc059130d5c0d6127f7028a37aa01df734183b7641efeb59a59eba09a1874313f8c1f7562f73f8a4eb2681d2aaa68a57fd864618c43d88ea047dae6929c87b233423c4a5a5d1fd84f64c0dd5b9b315b2fa005b56c442637d861ab1e095780b89486d66f515b251682e08062d46491ef218aa44ff264431b2279f1dbd0f075bb9741ddcc9618a1e8722aef61e7ae66370d14989f6a8c6951d2f1f0f35e8e7ca1eea72ea7fec4520f301fcd6ddd5da4fd3", + "019d41fc619aa355d0ffa790c4635990d114359bd9d2070f37e307a6db958da97b70fe9c29a2cd377ad3", + "03f60ea7cc42514fcf7c82f897c0e3ff301685c32d51dcdb7ee1408a85e0549b7070ebf429e03a44ba79645d51fa3c368837927881e94dd60c3da5ce8424f269840985ed90c6b9e753ec64b120d786e338034c50bdb3cff79231c3e9f1c29a9da3d36f10f5f37a00b62fd75dd1ea2d019f648104922ccaa50d746311cc529d26162acb79bd4533dfa1413ba3a1f122d358359641a4b4694b4b4404746ccb02b608a29646c25bcebb429a15d29a30f6ff76beb6b9b5835670818dc5921594c1e7468e7cb98e78e9ed6caf794381c7bb8d6785446896cdf7c1df966369d67266a24220eb299f66dbdd30dea99763962b7a67e644a0f43a64a060c44547e4249af84411d836d09fb683a5d520880d517939cca07a9804f437059b6a86ebcf8d", + "0466b73961c2f01fe9756f2111f77a430361e86d07fbb8278fff3ed1b8aee43472c4fc3bacc04a0c9c" + }, + { /* i=4436 cDividendBits=2807 cDivisorBits=126 */ + "56c3fd784938bd3c2da3d85a8726f1386d45dfb2dfe91f218d2fa284fdc14e89cbf9c6c9634cbb279c5146c3191d238f908c84449a0c5478656a25fa1fea0bfe0d4454480357b72acb40879faf9d7795b441643e9ad5ad0f6d1c148d3ecda3d44ab6f9976da9728f7864f00c09d128059f81c3b89bb2ae33cbaa035ce66482abf471e9a2783beed5f6ee19fad73a4f70ef231b28101497f49b104a43ef0a2c25818ab1e374171fda51b5cca168692697626bc5a6d3eff11ef92621ec81eeaa5c1a0f42b0f78b3fc8b1cd3da84b52ca53ccbee3f638a79c8e460285a5e0a402036b1470406311bf8ae0b0d8d2eaf284c6c93daf3daf5ee14b2cdf11a95ed0970026fd83662e2236efa491fe2e7fcedb55ca9aa30c993704d069257efa7553294c13c66b20e8e7601c627771ec1864ca6796e31bb934ec529d7163a1b1cc73cd98ed83eec8e00d9a1cb6c8bc7b7b1ac7a1c7170d528037ecce0d382a881503aa", + "0463f767fddeabb67557f9701e8abfd8", + "13c31c1538a229171ccc879174684e100d74a50d323125fa114a1e8bf627b85a5843a8ce6b3fc11d0c3d8ad588df5f75c32160bac22a303fa8651dafc2dfedf0b4e01b104f94907f502d7a5f3fef917954ac45cc73008c9c525871da71cc4f570ab0b0524862ddb18a9a67dc63dd9b9c7411a143f7f2570465f2af36fcaec7a2a08e7ac5d86a7f33a7f5a6d172b9c76215738ad629a81a1ead61b7ff0f22000c97f176abe32c84d31dbc472424c5c3ca7ea50a15a4c3a2fccbbcaff0e29c83d9d0f313ca85806882bafd84201751a922e03ba198ac8bf69fb94ff59ab552741c252d3c49822109329c30768493c11873528e1ae8bcf3bd0c4706af5553c9e608caffd788a6a86179336405edcb718bb5379174fb207d75c3b357c791e0eb33f3665a3b2868e7cedaaceeddd1933879e95d5ee8c4965f630b27117b9068ae7db0d6f995bfd033e19de232a15fe3f1cae8", + "027e236f2447203c0d8ae0923c9eb7ea" + }, + { /* i=4437 cDividendBits=2914 cDivisorBits=1666 */ + "72493e17f5eac9f7f26454ce865b585ab8df3c64d327560d238ed51026eda78a95eff7ea89f0a246fae18639b51be17ac7b1c5b315ab4f136a96bffe7a40e542afa47d3947f87056f75289fa2adcdb958c6bfea36881eae79c178a088cf2fe048cf4c24a8ab8f5dec6cf487185b14e8d0288e70f124274f70048000bbb0f249750f7027fcfe4751ea9570f1ad59a619db481ad91664977faa3c5c12d16406fc711cfa3281be22900c0ab09e796c2114c5802187abf1e53685d0534a459d9fb7ffa83793f7e78b8cd45c3f158fc933f5c70b1667a52a3291c6a30128f00989d315fd3d6eb087f32014f04671dcfb9eea39bc110fcb7745728fdd11eaa8c962b4ce0e37f7353a2e1d983ebc71b6eb17a588b05dc183f71834942381601b7a6e331f8519b909253dd55c8bb7577d9624a8e1e22200aebe274da3e30a857f027e461dbda1f87ec7059cf53e8146aa55285afb7d01c8fc49fd523f2c75f20563fff7bc3b77106d7241355450c07c0", + "d8298d2c60de2a96e6bfa5c1cc7f1a45fa89992f54980ae33679a665226390bac48b41c08bd1386b2524cb0259485823f9bf718ab862b7ee96d81314c779f92e6d6a8a8a3a5b1835ad8b84a0614bf3c16cf0fd89366a71c035438e852d637863e1090cba092fca17298e589299d936cc62790548a689e71e3e9a6215d744c214318c70cd0d5c3e59b255902208eb91be222ba830dadd873fb6d1cf2319564dec541896cd6f6a50a5fa9943d5c4bb50636b6d498b7ffd33c68ccb9b68ac3361c7405e778a4f651ab5d4263c1e26ba69a0", + "875936b739f0ea2aec2b2d9c368d3dab6b592f88daffac07e05aa0ec8332dea5222a9c111489f49f0735e15a31faf6df13ad998a5b8b53e793f868d1b24bd6f81d37fd1d07c79d206ad1f3222be42d7eea1c22a93a5190334c5ec74f94716721141a2a6e909b049e9012e9e16b309fb6755a5eb4b2237f9930302355f6e10447291e934f7eca55c695baa8cf18ade09bdd604034b78a99d030f6730b", + "4db2aba77bcbfe35c72c05c8757a8866df7e87233181d61ca6cd3713a73b3d4506bf823d8ad4e29fa9eacb79b6a9b5abde4850e320b737c2b4c47cbfe985b6dfa3a981fac63c5fbf8ad2daae44c06681d7084188208c058a6c7b5ceed138e41ef870e8222de6c9246bb11384d692c8a003241a11271c9556b5dd87858edfc0838e8f62e37e295bbdbd637ed8f1a03bb502f6cf3e24bebf2ed5969e974e94e21233a7033cedd1ffc74bb44334c9c64474593239671797568d2a6f4743d0fef36edaf742d3c9aa20c2ef6b55b45dd69de0" + }, + { /* i=4438 cDividendBits=2088 cDivisorBits=79 */ + "b56a616a6fb3479dac82f2ac0c059f7c50a44ed6d37831849ad57d00b1ff3f95d172db19c7fda447634364d03b98f5411fb1419286ac653ed03e3a5079b30c2ad917c056de13903f8c519011e1c29b571ac44962a79cb2b76764cf51cdbb94eca7b39da21e97cb1a535db48437c087b9bb364246537fc87fa27d54e6405b04b4e218730cf6dba34ad529f2139fc53db350517cf92e38bcf17394bc04b7773bfbc9ffba529ff38cacfafe202271509d00749c2e898e42fba1d1dca2cc0b02e50907702be26af55ab14b733c6106cca28c110ebc4d8802f6515701a728dde94fb0dd6bf4aa383dc36e2cc2f763da8f8a36f6faad0a744fbcfc0c1ea2ea684f5dec42a48209a3", + "478e3b22d3f4c32c5a69", + "02890a06f17c3279ee96028f389032e3d243fa2164f88a2904f3d6390e481985872c1be623b4174a40f3737a714c1fe956b61b7448d368f12d1d67722e0a92bd691e7824c621ac1181a767269fc29eda0ec401ddb6f8110d052fb226a74bbdda197f0fb23f53e3fd80cded0f9518438a9ef5d12efbd1e256a562a2c3ccfc68d06674573447312096889158a37892e755e1079d2ccd0bb996a407463ddaa020ca50b76519c4cfbee6d7314bf610b4aac380b2bd61e8a569f3ba9f9decc98be305d0609f1a533650cee8d10be2f0234f128c66dc9efb141795a9a49585b7ed243272a0fab2e4b5ef2f6bf9bd99cacc670e519b8c5a74ab2178374ed0f4", + "123f4ede1f3c79c88d8f" + }, + { /* i=4439 cDividendBits=208 cDivisorBits=45 */ + "bf756f0cff7fc9683955af8120a56ca66b1b90201d2f61f3dc53", + "1ea12c4b7e19", + "06403300d3d53086cf5d2cc865575fa066e5a1081f", + "1d0bfe25cf4c" + }, + { /* i=4440 cDividendBits=361 cDivisorBits=180 */ + "d92caf76abd8bf40808f13ca9dab3b780760461d8474406cf3a71beffce3cc60a8706a0bbd1562a3bab449b8c3", + "0c3a2ad4f5a4d65bf6bf22d742b6d9383726b920df8dfc", + "11c2f63e24357ba88069970c6d5a05c6e8140b63cf9982", + "02f778b8daf4866b34c858e5b3656836c18292242402cb" + }, + { /* i=4441 cDividendBits=287 cDivisorBits=105 */ + "121ccb2641dfd640d073d009740cdfcbea5748631a91ac777afddf7552c6877dd59df7bf", + "01a1ffa8094ece06425b16840021", + "0b17c491c68cc7b604b2f0d712d9ff14f3123d41bc93fc", + "e5cec291abb81d8110665ee443" + }, + { /* i=4442 cDividendBits=3611 cDivisorBits=599 */ + "02caf3c8de140ead382f56abece1a429780d6ad332c58b82cd7ccde6a5c38382c90778eea144106801724467ac6ec5c42832da5bef3114aa2d254a931bb65b52565abd6dd06491085d8797d42111e7eb582536189af74863de1de7efcd1c4fe0e7ef0797c3ce06748af01933c5df4173e5085458a656dec717e4f216a9673adeb956289eee690dbb6b15e9fd929880082df32c1fb207752222ad952728cf2861096e13780317f2b748de0a89fb94c880b706b9edac306c0e2b11e76d5950de387fdb9dcc08bfdd1399788de4c3145ecee8abdccf27c227cb5d5b3d81990f9def9cb2e9d23abcf0f4fa658532a5cd2aa420502386a6b35d5cd073cf08880b3f3f8388fd6da437abb299d20027185389035384a8c8493fad66dba7729109557ae1482ef7561a2872fc038fea0ea8e5c40b7805ac554fca65937044d1aff0204df2e00ed322d37946e63af07f4b2a2972eb1d6d077c491a823662b854b4aef9f194e339e65ebba07da00f3e4f958fb1c163d5e8a0757e9eb42ecd04d514a6afbd2c658540a291994bc61fa9d3e22d8be444ad0ab6d3c85896dc5425368efc05d3a8733ae8c13afee73bd75293778283a38a003d5420772e925375c860fc87b8399dbe03b217", + "191dbb90a84fc2eac37ce23746d2a0372686f42ddaf1216d2e1c477855269f8d752cc0c1467d969319194dd9518889eab90e7075b9f7a5704ed66bbd48bdf610f502c06257c24b2bc2ac87", + "1c7741ba9aec7c5c5ca5e8715f3427104f5050001709f2d830108537f27f091de876f429247c0bccf86f638aafcf699a5403e96e16f374d7b719506802859dca4f863ae26246f7cd0369b3353a13a65971870c1ca3904defc7dc38eb1e8345ca600d857233ea28e9d00c4e97de94daf152505eecdb5dcd56c16295f4fa950b91e9d905acb4d8979dd677decd58ce21830091f640f072a114d1ba2f1a078386ac4440bb21254109730d06febf6016fcd5ee84ba05dcacdb840d04d649c0bee16b56ad3b6eb00360e8b239bcac29ce9f5b90d2e8803597b3b790e7237004fdee4e4ac2458a17701a761a771f289f9a107e2d232bea9980bf52a343b1b0f100d51cbc844fb7894fd2eac39d373657d9c213dc709655de81a55617c9acffff4bc9559b7d7f4aed440128416336347678c292c22fcc1098d9d00c110add8605a3c84eae7b342143f590bd15e56481830346bbbefe96395637b3fea41484946b4db2d117ddfa1c55168f3adb3f052e6577fc4383e8c31e74b1959a89", + "06698548c95e084a240e94e3392f48debf101f92d370b5800d945b43d2c1846d8333b81aa5b407da3c15dbef2818035e6cfed4c744fe35e075f9288b7d644c7bed098ba59af64c757927d8" + }, + { /* i=4443 cDividendBits=2041 cDivisorBits=283 */ + "0ab05313f51080b204a0a8c93b618172811857f716549414652cf0079fccfd9f13a49f63b1a6d960017ba6c418950bbaa7b829149821906b17b2aab7601c8d4f2f8923f8407a35a1189330612bf2df63840dfb3fa8a5f59fec57780930c5ec1d654a0c5d14f316805364548a5246dbf0bf474d2445cee188bdc89a8d1ad2d8ad4976a2c315d4877aee216a40a793db963575b724fd88e8528ea31af1afe5dc8c20ca6c3ceee90d6ce1e9f7fa6a2a186d35821118086e5ae2341726a06f2a29e94505e8b5c2d92395007ce122aff4646f8da4669f21dc62688ef97d4b90f8548b4b1187859a3548f1d52cd84fd7248c238c4720b38473f9ef42b4bf88c0d5da", + "04cfc14d9d055ea7218edbb0e5786b679ce73431c38385c66b621009df18f3ed9d1e2cad", + "0238b330f6bb5c377b82f1267393551189970a7239ac99dc8048901b6ee631bc6bd67d015092b1fe1732dff52307d2aee7fdcc7e42d2fb5f8e5bda38733d108947112e112a8848d79af028aa7dec84a2ef366acd0d9e3d3b6f7065fde839d914d0b278fb4bafc5f9872bf2744d7335877cb31a2dfd3606a01490d794bb297b5e8798999c3679cf841930323bc9d70ec1b4570972131e41d64b4e9eb8b9e4b43ee6cbd28f79b55a730eca055d0b0c5fd34be4faff2029509a6de484a6325077657e91d998b27d3134d72173cec31da7f5f1711dc76e7fd43503961448", + "3a86bc743e0f7e4998e7164c68a4ae870499f206cc48d939d8a556830c9b9fc868c132" + }, + { /* i=4444 cDividendBits=3148 cDivisorBits=111 */ + "079c9a883ef77ff8b9cd7fc5b2f24b6a268753e61306a475f780f3960e4ad41d0ee244dc2f32c0bf65998e9305e2fb919618927b13685ee160ad5a7d38755edb5b31f0fc0c38971bb2918d266922b960d9ffffee45f57e7704eb2dd4b58824c7b9d2c18ccba3fb453cc4ba8b5004d203eab92a4faf5709e70dcbbae50057d70104827e2d67d9ea27da6cfc7f952936497a1696b8b72be0fc8000fcb75c42b291b684f54f4062634a3ab8180185d9b654f324b7bca8199bcfb8fc04f21e1718689540fd92abb783ef663c43b043c6c80ac177e0e09c760158168ab2533c716cfff407e467dfc5378ed8264f7cbbbd7666a40a1b22d34daa7937fde26d04984fcd1bf1252405564c1c3e713d25f8ff6dfed657aa43efddde1f5d476be8e6fd633038b7808c1e12379e69d97a9c928f699fb1574088283e925f33765f9957d88b7d333da65befb8b308054ac05a90be16ab4d13adfef1d30323dceba6e5f2a1c16cec6c830ca42d45de15ca323291776f142491909f4b2daf9cbff3dd859b3750d57f9e36b73451823041ba", + "6f76245e835a02c506f8ca4e0917", + "117b783e4798d0a689830625c94c398405e90b50842e85b521c550502fb1c791a73ff44f305173226b06fae273a56dac60eb24647d19c4b3cc11f26e3aa5fb62a4ecdfbacec87b1cc79289258a8b410368acf0884cc9517a1ec99f83ecda902c6f3b40126761b6f687c4f76ab204dba17383c2a1a62fa82e72a6b0d3ef6d480dbaba3391325345cb96def29320124c7d3a4967c0d67c92d39d71f782580e8241eeebf188a212fe1aa7f1e053fd791b3d7b1246384cb154e54a7de57e71acd8e1465cbbaf18fcd3f92d09b5267e84da949817a9b01d0dbf49f8a2837dbf3a6cf4556436bb2665af6a928a474a400977208e5da3d88f017cf92435ad06f745501deb56924d5ab29d81d2aa66b2c57627f987f224c976e56ec97c220adb0e6dc52319abd0ff117b8b72c3610b7334d1d6bbb49be4d23b55d293570c830ff7079ec7f98f2b633a9e98ce494ecbd738a890436210c6b394a2ba8e0644ffffba3a687eea55e9db7f3d4fec08c8b8fd526b4b2c8cf70694f6acfa181c5442c4", + "19ff9969f33a6aa97eed008d5e1e" + }, + { /* i=4445 cDividendBits=3864 cDivisorBits=3407 */ + "ca763a16d8125c28628013050b8dabc2afe9c200bd0fb666bcf85dffbbcde3d906968696be03119abc0eabfb76d3b83976e703c6bbade473d689c25ae201ca4659fa1d500e858528fb12ebf6f15eab3733156a15188bcaac227b5c6c77a8963094e9977a365e4fb0f8f549d51dfca128b0bfd151b58acbecbf842e1b52297c7617d7a7205210d9be380fd3c60b5f776954cc8aab8777fcf65c3b5fb5c8b8aa339531aca00f1f438544ef0a33c39cd27ce8fe371182b35775bf27d31266d3af75c9018bace6748227f6b75e37083571d9b6c645b1c8295925772f98998b4c81d5cd03ded4045d53a1da261af5ffeccfe3fb5aeab9f5bba75d9a2799e9df1d6d27092ea083be7ea1e10fe09a25e5bbeb2b95d90b36cb213c43fad66236b5a25ec3f5d6371e74a0ff24b86bf54d042e2dac237dcdd1dc9613042aa77dcd376e5a89a149c10995ed0b44917c95e1f409306ab6316c36ea36268a7e7d24f8c8623ec764f69666fbedcd5e296197c627dbca2a80cc80a90a2366439a1537cc8084c319ded43c647eef28e16f8917df5233ee2b342a27fbd35f7729f727a1d0cf2bb7c11e72b98daea98668c7f8620a6f36d070fdf731e2b0c610113f10eac7ba54d9d6032fc1233681f8a9a1c5223b1c93c25d11b4781b455c0e6b5cd9e5dcd8b2313e037d32", + "1369ca94df4215038d144d9579278ffc82c525adf2e2ead6aa41c99289838a5283ca10975de76c4c19f54a600d4b03f93e584786319eb0d739e68e40677e30b1297c386abffe051af381ffcc23d0eb4286cbf7d9aff018969894450a1000a01b28aeb277ccf7c41e45e697987d1e3eaf38097d699dbf2e752b30902db3bd86d8cf8203af9144e65d290998ebe9eed9f480be1adf3bd5a904745c3c3f96939ca464876e91f7b53b4a921f7ae590dc6ae2f126a40eecc28ad5dd71726032e660691331400f88e73e55931904f3ed732da94a62a6e0c332102fcded9c6e87f74c53eaf4e376ebacf14d352235769d4aa155c79a9bd95f99ee497f45647e9826166fec10a8867e7ba263b55ef874036a5d0040562cbb1629e203dd7e07e49f10b1168ab7f276d562600a9c809bde0c1880b12f78b35b3ea5ffdece411a88ead7b3bf141a7d5024ac5b5221c3eb1dafc01d0e8a618c111c559200f041a997f01c6264318caa1efbfe6b41d921f40945443a5d26e945e5ffc56a546be83141c467fcc7cba21c6c23bd4f7badab68cce678ca2f769ae9d1b90852b5ae7d24afc26c454954ba5c31b227385ac1ef", + "0a6dd68b9062a4b29e5073f0ada0c5d94ebcbdd1458b71651940d4aabab6904b291332fee78df6d612942bb9acc20dc7726fd06fb12a3cd7b478", + "01d99f743c9c94451bfc7072730571b40ebae2c41fe53f8d9c962680fd30468bf47fd79b1ce70a75677322d54022e691fe9495667a8c9b7669d9db6b1ea6808be0ec95086107165d9f33ef442607d3f61d96a13de79668b118e8d0275e8762333fd41893f8b5165b30a41a2efaf7a31cd942fb5148ff6523ced65ead827185fe2b902bbca9541ae6917111dc9c5c4713b2a0fb6495d42ec1286786d5aecc06e0ef82e663e7c00b00df309d4fc30bcc8a3ec4b2143e0e48af8c9ce9e2d8047c7e8b0599cb295770933ff755f75a05b2b0e69e8086032291dd1e7b4647469f410feff9395ea1ef5b2737430823c0a609fc68446ee69037f56c87ca81940214bbcfa0ed3f361e147018d0650156a8ab2e17df23566582dfc47cc9e9a4d673425aee998012f374c0dbbb6a6e9780c21d6249689defde65150618c06f8c7f828d7dc1a1be3172fba28156ce8816968d7b74fc7641851680ccd48cab6497c3977d5d755937b2a9713d1edb0a6e2d7a0265543d2546f51f019d757096a95efb01b805bb69713be0972c14b3ffe9332878d7c5051a83be5f0b89cfe25f12e2a9f1e934abfc469e88f24c1f63892a" + }, + { /* i=4446 cDividendBits=2221 cDivisorBits=189 */ + "1e634960e146b0836119e6b1723cc54ec087aa8be473a69bf8301094b4f1e795e37a590ca5c1b6b12579710a81d66eb086be300de803dc7279a04de336cd63894df81b397b024df557a17498f990340514ccd7eb9446d2a1d45571b282e6f377cf519076e5eb323d6dbd776ccb866a93882cf871c9b49f62f15869250b746c8e3bdea571b21e5157f25ad27eda712f2617778f70c4cd69346605c2907cdc98020525de86e521c7a766170be46624e06f93b212369bfd9249893d772c19489918a4f98e3e9204310259ebbe2ca7d9502541a567407e73dcce3a24861d60ba80ea3b2dd0994cc65239ec245506ab716ab94d9fd01d3741874fd30bd0e1429a590462f658374b375d0b088e0e5db39b5f6119411ab2ec1f", + "1730fa87b68723486eba8e5597dbceaa0394333677731fdd", + "014f7085a8295adc9d70c7091d53c7a6b053fac9f9b697b3dab667ea1e5b9160afe95f6ae3461c1c90615e7eacbdf17f71dd15566811aec5174e2c2d0cbe3ba007da9062726d52fe55865825eea0f4180e946565276432c95415c8ba53a20c4fbdf98d11e05e58acfaf2b8a340f35fdb86a4fc1fc63746c3a76893c29dbad1319da099cdadb41f50b40800f4592cf480d6c8d55c617993bd881db2c0183b9683185283b3f13e0ef810bf8a374668d27873a6c040e2c84263855b85fcaf7ad92e97e21204fbe1eae8b6d587c978da1d66e7acfe0dc590ac4d5eb59b85420e2caafe00c9ca46be1c5c539ac8bca1939ec1106aa81583c3d1c76ea376197389fa", + "15a26d541525b0e5097102a1aedd5c4365cca271f2f1894d" + }, + { /* i=4447 cDividendBits=3792 cDivisorBits=707 */ + "f765d052f8bc7795a3b9e453014afce03117d68dfd36a093416db121795517c8fe88548b71dd7eb17ea91850cefdbdf7b69cbd95f14e1b30e81e4d5f3721e1b9d0d73bfe6984da125cba0325a6fbb3ec9c356fb883428369fe897a61ed50da009ae6e2fd67b34a60257f5de1d35050e4cd9d707fdbeea8c3fb7322c50ab04bc6a5d89e3e05f809607b78cfcbc67185e79e5b88b52948fa0354938e3640e8bcc76493a1bb77376a4a1d7c142d2b8e24cb876a0ad909bb4e5490e2266efd119c09dbbb616e3ac381100a883c2bb827d594750316beeb6c76d0362dc71cf72b0142b0e5fd4420d312d539ea889bbe9454f9d0ebc67f0a2020c7e3b9a96dc6a2645cf2d7d745083e0deb13906e93b7f707d410aacd1058398fc29b973a09704bf3e55be7dd934246ec6265c3a95ce05a82f73a4db3eabb4bc056165fcec062b04441a651e8737c6bf71b19f5856bd709714789e8898fafc610149001bd78b084edc79f02e08eab05a978bdcc82325dc8d959f7177fbe1b9e2621947ab077917589a8754cc2f31a95a6004e459461a0e5c62cf8e032bf0012edb41a2cd0ccff5d14056a5ee53b6b58550740b2af42ac18c5165e20fe15b5eba00f8b9056683b8dd325b2ed457e11fc4732208fd9276e202fe11b4bbe231eeffe2c7bdf", + "020d39efdedc48f90c3c8d2cae77a57ea27dd7c05684fd3a450de94f77cc6f09453e5b144a7a96fa02415a9ed3a543a4969e67f622d542ddedf61702c00f5dc9ca21d6507096acc7a5e7c993b31fd9451f3f04e1daeedbc521", + "7895777eb5316fe87f072964cb98e821bfb1567ce22f446c7c73e42b769696265a6ae8b1993bcbe23b157a42ab3e0912beeb453a4524a4d5f878a5a592f660c3954f03a9ac720326bb2ca3febc81bc70c8f0f240f0abc5ccde7062a3da97c71f8092f78ebeb0b379a42b1e7b3eab80922e8865a7cb06515b20c3c442c11284ab5ea3eb7ac830eb10fb22c9ca60560622046651ee632dddbec767d739da9d8a004400560189d99f8a172376ba514c79e050b334b34d8ab9b2a32b40f72cba84f644cb3fce65d80d65797f6b3a5ea7a2a3312d9a0af9390eb583d3d1ee7ab8658ff51942f48560f5b7e97e07b87fc4ca339411aac8364ee4908c6ab28f5f44e37042ef6018c20c3998252c16c4feb291ffc7a70db3509ccc0c8595123ef143de2b00cca27e698a43565fd4429d5fae26873ca4ed1fbb6cda1bcbc86e57de5b4d6f2de5e6d5025a908187836f27410aea810a2695b1fc06fca055cce419adcdb40c0552b4979e6102192a09ea851d121db1a655ecad4fd87cdd42661841479d6faeafaf", + "01dbe322996bea4e18e029b8ac8e0efd7ab032bf75398337a58e427feb11416de5bc93fd43d2d537d7646cc75506ba62a5f2caa28c4daf96e6c7241add08b3878a3a342bd4aed2375ee4230c577f0d02aa4d3360e82ec12b50" + }, + { /* i=4448 cDividendBits=122 cDivisorBits=121 */ + "025147c4edccb08f789f1e41ab01f7be", + "010a987fced059c35ee885fc401306e5", + "02", + "3c16c5502bfd08bace12492adbe9f4" + }, + { /* i=4449 cDividendBits=3788 cDivisorBits=1720 */ + "0db14ff0dabb3db0a45fbdfa08721584c4176f1fc5764378d8945ec80bd1acab25dd8ab20846811a452909cb50c40d78d4493faa5e1a08a36817c7c4ebe76b7e2f48dfc88610f66f02fcc3ddc112bc7b7e32592bf7875f6fff663443c80111367f24f8c9ac567dd990dab849eb14583077f52d20f580cdf424a070e6b42f40245592996408762edeed3673cb6b45aa02d5088354cb2e616fc32a0517865edb0e11f90a5c5107b445ed79e6edbc0c49c449a28fb0c900721093eb9c3656b516fd2491c48f6664662f9a6c7238039dad47be4fa98805e6a32d96e32550915c6184fb04e1d1566e99debf558ca9f7585ae5a112b1117df7a804ba8f752eb33a6291ba14352a4b15079cfa4317495a5ee10012449449fd8fa9668c388b83ee234d3948c21e968ffca3c488edcb6eb42e78ba6ac385b6ab4a172db1f32f75fdc4fb4594e2f054410614e717de25befbeff91a2e766f7219637612fec1368259431e6c3dbdc9f06b343d5ac8b3bee4f47e5f602f286588909ea150960dbd66722b5dcb58cd98b23c840dfc6d45f9019cdc7d8ac1ca35d543ddbf77b5ef4e25a2946e150f0f8f03a5d16b6785fbe072522de7eaa0c4040564ec15212396dca91822a5d3d312b0968b398432d1015dfa236d880db6919e27ef4deacfead5", + "2658492031a166eb627007f3958730e5c7501265138f18c33eb9193ab68d12519805c473f0f4f7ff6174987a97e323dc9b58cd87a0f1ec11738f5b9172ee2a0b8ceb6c08be75bf913e3291df796064292a430cacce40d1f55d760b8ab0f67aaa8644f4d602caf25425689d911a55c3f6638632078fce506730e8d0882bdf1371a33a3aee41565a83a16bee1a9a1725dad3821719c2eee0067e6405864791e896092caaf3fb2526c07a9098cd9ef4e7b3b07d0a6d997d7285358505a4131f6c209a9e1c74c722d3ac0be101aefbdf9662a33a1bc5212ab7", + "5b6a596712cb9901bbd047453159d2c9973780847b0d2174c26c2e08b6ca26b57b7e8431fa346e6ddff0a37a58ac59e19232201a42e0b15a213a3c14527cfa50caaff8295190ebedfee21881ecc3ebafcb13447aff0519ad2d026e46c29131619525dcc8eb682ac456c19f93ca21567d212bf38d420568e20f42071034567c9a459c8020abc56e4d1d68f29f7e2f415c863136f00b658a14716824de9d4ed9e59c6ff51672fa72fbc852b54099e323d04fea52fe069fc83b65378a7a4a1129da3ac9f9db6ab84c4f3247751e763f741af0dac596cbbfdb746d51055f18434c72a7586d140fff7bcbfac88fbb29ee6a5b55f6b40a7bb40697a6f552e7d234edd6732ede", + "2231796fa0638652795134de4cb1f8356cd69d3333770b594080a0b60544d77a9807992205fe6cddd1b502fe969d1a1d97f59af0243b1d260a22fb850b3d9afc2824eb1fed81c6f22267dcf7cfb4af54e50fd53eb15d63b456d658499953c4e2aa31c3eb13eb21c9681d473e7f180493e00fa0a9a22ccd3f32a0fd50071409f138091a1086a824c87e53874a8ecf84ef61874cba0777d5d843e3c6a36d2b699cb3adbfc10365c1cafc5be6ccbede370e2e50fc36c79fc4bcdb3afeac33f064780e3c9982285569cd559056a7b4266a07678ec6d82afe23" + }, + { /* i=4450 cDividendBits=2404 cDivisorBits=2360 */ + "0721211f3c7508e97d5740e43365f4b5e6691c2aecc57f34206fda36cf5dfaedbe7f9e41a69998395b07799d784367f64d79127d991a64e4e941864633ab48565612c748ce9b7799b95e0e74560c669834d4935073ae00bbb7c35a09aff864c66c5d91ca5c44d69dd034165cfd0c2d2534decd8bf5508153a6424e6d05ad67ae3f76c5190a0188057121b4fbbb1bf1b548d4c8de9a93743ef5dc664f6e197b32a1a7698e8a791b5f18daefc62b57e5fd8b22985e527da2f01d85a5443dd2bf074d52c8aa01adba66d6b12dd3d5086087d3a0114935832c05829b551a43449e776c480d670fdce80eccd6d2c7a41d9db27c8c4c23c9f9324eb110f121aac1301f63f84887e48ced0c0b305fecdb83e3e745a126cc2afe6aa89d0de7dd717f6285a6856782bd01d029e9e32a0c90", + "cbe767bd7ed24c0f8e32dab8c80e375b78d53d958ae2f069ee9300d2eadf4c3f921ae04d76a7b03a2acf56947bfd00126878b0dd312accac156eb1aa52851418147938fc28a92aad438b41a2041390b0a75249bb3f7f5c520233bf201bc68468bc3b95bfc4807fe3f7c0cedbb3dd60372e6d2a4af54f2ec14bf067df9c319010f180275c05ac5203dcaef887b841927667397491ce43e8326a0d30625316f62a397f51f68921ef1694a157873ff502107052c24e119b098e7e7f65bf3429748c1290091357ef7e14243cbf43fa2fa652ab4932e68612517e4806b5300d6217ec606d1cdaf6e0dcf69ef7b981b79002dc5266f8330e9426ec64428ca046e3b0766d653dba776b09b151c41045005f9d0240808d568d34cb1662468f758365ad1de42cb07e78343e", + "08f37005c744", + "1b9f76d43c487d6532d2a1b7755f552616140221750a41ff1f05ed44d2fd093ec09ec84a99b412c99c4920f07a13a1c5977fa5e31b714128117315cc430a585f7b7ad83aa72cb52b908b5407c6939719fa586be017c94f803c1b5823ee7ee44728b263eb927d6578ae020e72709e5a1d5e0b4acd849b1906afd3d20649149486f6f8fb7802faeecd21f4c1936df24cea6490efb6275cb8ea8252b1eca7b4ffea2c58816d758e4efbc0d73eb0b697b787f6391eadde6c2c83aa8c7ba6063191263cf7971c1551b94e1580fc9147b6e0b316eadc060fe19f4df12fab586c791bcdbf0246a399fa9d2bb5102fa0b5cfe9e09ccca3ba797a00d98d583ecf32ad1c57af60cba0f11b7865ea005e4c6ea558570ab776191c14765d508ee2f0059606cdf482aab569fa18" + }, + { /* i=4451 cDividendBits=2619 cDivisorBits=50 */ + "200a81e6d9d223c065c049d3bb2dd80f904953d07fc8592e46230ed5a07eb1f4cdd4169dd3555bed1deed4db3edec51ecd592b4b22890e39b3f92a8acc9a18e804c2c2dd77fe569e58cf29ce491d8f66068fc35d3579dfb12b7a57273e7af580389f1107f512f1eafdf825473d1bc6eb8fb08e55f5514a691e3f181cc912f98db0425c2c1d3d148675c686425315eac51c890140a7b1469fa0b1fd1f290067a2745222ba636014c561927dda0bc53101bc2bdea7ccfef7affb94396458f7d5c2ad637f3f3d252123e32b2aa384c29f70456ea1ff971b7641e215c5a1d6a8e92f5b3bde1374cc46666b8fe8ed57659aea7c024206e0104c7359b2bd80cd57a52dbcfdb48a6e8339ca0432de29cf0ef80ce5abaae52957085732aae0c3e23bb8e20f6e7de79ca0d99fd0519e14de0c3bc0860e4ee92f9cbb077221efce7a68a610eef7befc38a4b9", + "031337f6c9d23b", + "0a6b6b45bafe717d7c181c04e294afa85c923b2a9c3560e83aa221acf642902c858ed17e330e36f5d66ba74b85a1798d342d13bcea491646a8433ad0f2b1a0475cefa619633d382c0d59b42f6e0692e0e158361894be76accd48b25e966e3118b69ee4c8bf8a83cd2edeb543eb18753c1c6f0cbc4b396d43fc3e3d3016477b1e6aac00c4a9b25f74b6f048cbc315655e8d81ac1b0331efea211ce455df40d5514fb4c73eeaa3a766eb39057059c40ba6344f74cdfd5d3de8fce9b8bdffa895b8dfc572d0d3ae1f71cc9c50661224266c3f41b6e49f007f15543522ddf8702defe67882b4ef86c81eff8a5a74b3e287dccd7b469ba3cb2ecc713694bcabc36e149e130ff1c8545580e993c914bc5955bccb6650c52cc7f52ae43faf49e1ae9a31c0acb863fdaa948a57c2c86a0bfe2c95aa31a7dbce3ab2c07a566ad2925cffdbac", + "0187cae901ec15" + }, + { /* i=4452 cDividendBits=3821 cDivisorBits=1329 */ + "0f519325a9cf5e8b521b78f6887de41a56d90d3bc531b7f8e6bf1f7972f1646fa70c8114ea9503e533804b1eb8a53e74d322ba7ef78b339711176740fe3a750f71231194d4fea36894fc94c9a89ce4de9877427982dd6bd5e1051f8481805ae8490474e4825419e9b70a2a46928741d8d05b2164c025e81b07984d531ad12ec9e730a39e55c7fd2754d430bab56635bbe1fa82fb4915d8ad8db8b1cfc49ccd4b9ede350ba0bb4f388f4a1a2513a0ff5aa199667839f55f8c9ff9bf193da2646ff1a4acf0d25de54a91edbbd6197280603bfa51b3e87f073feeac6c6ac82f4005e36201a400f0735f8cbce9b1b9f70cfc26adb00b7e2947b7df8a1d75c1e83d6c69a74da3a87cd198e171f6203214176212cf6a20b81df27ea5f91d1f17651080dd1769f1f0a54d2120ec9af154e50bb6e3c99d9bab7ae0043d8250692ba21f20bfde476320074d57a29604b2beb7e63dd7991623df5005bf1eafbf7f0341656588ff1d9e871d0361570ff3ae8cfa3487cbf15549dd2f1a0e91520ab333154d6bcca52f57350ca747d14518970355c973bfe119707be2486e13331f54f05ee71ba92e422520452b75c293142b92d9d3ae7abfeadac2695a39b935d13ea8ac0c59302299fff04789a0f57a8a215034523d5671144a7bede8e2fb4de9a3e14e", + "01e80ab52562e08ede620a596f65020cf99c96bd27facc31b02ee8183b963977ceac3d447255a385e73bfce2aec8bd75d2cdb488ea204a7799cd6e63331708ed3e8494869a853eebbbe9da63819f3d43a8086a0a5d9e41fa55d3ccdd48b91a944ff410328febbbccf1fe16789ec198228ffb097c23720d3d765faca9702019c946c39a397205704a91eee8969cb40bedd3b17aa45109945c4914e113c4a8e1e642cfda092f0447", + "08090b12b56c8f9359d81c0fa71efd4318a1171517462e4edd886c133c9a36a250b85004257fffb6cbf3799ef10162a8ca0da9503ee7beac2902b371a8c0037f310ac864598fdb65075fce8ce8e769e4868782c1903a7dcff633cf98f9b8ad4e0ac406ed76fb6df10e1d8b8adf38722adc6af7339ceea3e50f60ca4d333ce54ccc9ddb175bc2c8755d97f08580ccf85cb224b2bb19e6bc3f12928eee7b1fad78df29d503200e54c493829f815c14b60e0d4daa63ea0d20bf68c084ef7fe1835ce16164e9cc429555f7ebd461c6e291981380d8d238f557f4f873d23b9cd2b01cd1f2032b0ad856d888ae8ab063b44d7f945b1848b84da72825e095692333c553ead607e4ffe3eb3b6e551264b320b16b6cb3c311f23a37b2023888eb890d34cb285047e710247b40d1bbda8b87aee1352a397473619dad1d", + "a6a428b387415e420a949cb4d126275b08fc7de1cc615f313deefb8b57a5b80f0828aa5ac44489f771d6eda0c840dd0b9c0546cfbaedcea72f1eecca4071d22ad997c06655b129635c7ccaa9b23e579609db87f0530d29e4fe3e6b7db5e715c490839e39c1da15e417b208fe1081213a6729f062ad45120a3abeb102fa82689d738b14624230bd1a69254bec3970b93bd44164ec98c7f9cb4a387018f3068eca8d0c92e16a43" + }, + { /* i=4453 cDividendBits=222 cDivisorBits=50 */ + "20eae1f0e48d0ad3c8a864ec880d831d1f7d7de81e011c91eea5464a", + "0167dac25867d7", + "176adf4ee8647d16c5a376a89d633cdcb28be3522dfb", + "50c9efd8ab7d" + }, + { /* i=4454 cDividendBits=3387 cDivisorBits=1844 */ + "03db0e7f4e8fdf666b2f6db85cce3a13b1cc9b01c9bfeb50fc01d26129a2759b84709db1066734a755dbf5cdc604921917c69aa51388b0973dd98cd54949719102c1844b81e829feb77edd3df9d61f7ffda6006210b1f686f97330b326cc91ec4955a5601636946325b19db339adb07e9ddb0def78321da3d5a620eed4363579adf5c02f6dbdb322bbd0a58f30bcff747e63fd9f2ee275355935ed51ac71bbe95d6c4ff39d124215b934e0d181aab52c134adf10442f75584f97ac27dc2de57f72972c3f2b2619bfc77f0baed373f592bbf90bd9f5790e1040c70bb0ed5ee348009660b8144bbb301c812e4a77a66984ef6ec9972bf8bbd971f889e1ae449030381b06d4a2a64672cc0f3f9d683e4ec3dda374edc364ffdab8a71ff2d650f7b3224051fec7d0817283ca29889d950195c7e6065bcf6b5a0ba676e0bd4c6a5398e11b3a595c1b587737d0beb9684f2295ae6520c0b7e85e469b58224e69944cfccc29ffd2fb68486add937ef9f917496264e9a4ddaf99b3d6cf9b9341ce77d54be58cecee4624f0ba02d166432616fd09c2ed4d715c7197cf18217e903b80f2251e8178493199cbea", + "0b5493bb9c84b0483d38497b5551e08c4c66d67602c2ff774886e51693cccbaa1e5aaa650317fcbd57970462f74bc7ffa550bd85956ee695e570cb3fe14450344280e66e2b13ff36d77944a57b7b249ba7cc4a5bc0abea4fbec9de4c51a387b7e543fc88d94f17def20dc28ea7a67a3cf8894a01c714b67ed4de83db913e35211fd5daa036ad9a16b586aeb5e35bb9e553fca707dba40612bd11f946cd2cf3129261807e159162b2b230f05c277682e051002d3b9d4c52a742c68c0669370f28eff1ad817ddcbf78ad9bace8afb0ae7e5dfe73626dcf0a754650378400e0fc8dc8af3b17076176", + "571dae349370030cc6496c880dab52665d97a6fc819a9bb2776e00ed15cf31cbd00883b8ac1e391a2ee2a238eface7fce0bbd6da5d8d5ad4b7622a5784b46f3fc597197e4f6d334a4a9ba32a15559a6531b44470a4f6ee59e7e8437b387e9a4861c2c552a809ad64c99fab51ea5c796e1e98c38ac71adee37f62d1bc8adfd4a4f658df0fbee78a931a4af2e354272d825f0c0db2e9598300c21fac98c6a631a52cbc563cde32c69feb433fabe994dcc68075dc29edfe521df260d4afdac90c1ddc", + "08020669bc6f4be08001d5bfa92fe8bc82ed7ad0598085a284cd159b5984a859d856856afe0cef27ef4805d24b280f1bba906b33f3354dfd34f8b9b6d9f7f5406d8e304b6fb992d616e142f5f153e3b2533e67620659688d727a9380c4d9760b8e0433ee3d045ca0c78f3aadc8ec1b203c94874bdb20d881eab6069e08f52193ae79544546bef92dccc87975cb1b202445280fd79d878c45631da2a5b5ccae2d458b38d8f4050e62375db36def72701a1656733ea56f32c9cba5c0cb6f523765295a2d878b06d3dc8053a0f3ff2e8b652350978357336c4153518bc108d2c950b6a78b59afac82" + }, + { /* i=4455 cDividendBits=2171 cDivisorBits=618 */ + "0262864724f5b0c562edcb93eab31c2968dbe10f46f5ed14485e7c4c8be0703d71a9ceeec96ee1c1a63defbd9678daac06acf59b7edfe0844a19bc8afca4c0bdd0375869abf31787aabe84a727ed03d52a46e02c610eac89c7de2e6a231880cf2547183fb910578a79a4839a26ac0455f125e1afcb1d18f479c3af9983911595dbd66188286e719bb2e1cabbed101e4617eda1cfd8ebb046c590bc9b4771ea57f7e1601cdfd65461aebca274cd91c8e96352510e5dc2a1c9db4166f1f8daed76d0f73567cc68b23e47990c0308fc5c09c1f0e40cfd1562a6e86546a0d431693650717484f30300dcfe5025a242ec0e6c04150cf43031e9317f2c40b88f4144f07c28b30f9b7887e4fd61bb015d57cb11", + "031277878858604401892780a2696182cfde7f62bb0d5de95869b0f80efd6b3e082d06bd448bfd9845f385962f04fdf7388da089e64edd18db3c611aec178b1f16cfdd44cbd087cbc0ddc9a80f9f", + "c6bac8fdc7f2165d39d58a27f89e8ab6ffa71317f31e1027d1ee39f1f8b9c9d53e51ccc631870a9010abee0a23634fcc2d94f4d28888b0ca76b481ffb76fb8eb3ffded541ab55f0b59f6a0e397429285763f936ea9697748e50fca998bd204b0a58332745672f7e0ab81b7b96a5aa389ddb0fc54e9284d1eba2f34e738be9bcfd894c5318f383551ce033754e343610dbd9eb0bc324784961d91895f923683f94d4bb16d76d848e96c22f7d65793f813e8b94b11f601d620529f0d120b4d695cf6ee", + "348352f63cc64c45abd188febb50a2a6d44f6af8a55b4d6c55c0c37404a286ebce70b706891bb95fd558c3b736a3983767dbbca9336f032021f9b5fda05e057a28a45a67779ece5e678ff27b3f" + }, + { /* i=4456 cDividendBits=3558 cDivisorBits=2988 */ + "01da9646706f4b042c548fbc6b478afa1836aea7e8b80509651b14c9d8c78621a2f1f6034be70905d9361280944200c680958559e715c9d482d15fa669d3c2e78a0b4f5d78e01b82b0168394168e867ae3a37c3a7ac130c49f27035cebd628f76627ee53b971da465ed5af1ef1221c3c40c5b3b2203f06e5e20c7e0c19af165ec541dedf378ea668a3e9b7a85493a5b4dfe678fab6ecec75562420a6bccc2ddbc7f9f26a1a10b171e41d02a93247363f7a7cdb359da662b54e048a18c715f7e1fdcd08c9f1a7a1bc2b1e4090020112a3ad5b01d7433e2bfa9507e606ff4dbe9d465145fb2ca54a9cedd68f10daaaea3c7606f7499de9b4bc00da05e5d77f913c68503ddea295f365e12002559530ab33b348cb5bf6f53f5a75309187e0cd63c6b92a7d8bcae2bc408edf961764bd3f536ec380825d3a3af0ebaf91087d1d2ea421110b5ece7b8a5aabb0cb01b4effbf6765212b4fae414854de33ce27d6383f906dda97e3e36b2b294d811858f5af731c1cd883e5f3cefd15d3b6dbc9d0ed51a62273064c819bcd9fede970878e718b7421b1cc6e25f02133413318184c5319c2126623c61ca534b53a9c2975b508c60f2d50a8c235656101a84e7fe49", + "02356fd5b46e80c84590f06ccbe377f8d7ebcc94b029dc51d3eef7a7f232ceba2303e5d0db42f5ac052c76051dfcd946d43ff0bb62a7298d2652b40ebeaa02b7750a68fa4067b584ed5c5b7187201006549f07bd46af079dd4909d8aef4b05337caf58468139c08f6fb9d5334460342f14251d0eb5192876bc8378ea0b14c2976f5a31a53a3e899a494bf250467fd26376d6f3b1647e4e7841cd8cb502a389117ea5de3a24972cf1d68f821a2b4984565bb395d9efc5998cb428769d8814a90b198db7eb83959991242cfa79a2360d12e6f6904be2f27ce4ce818706a5a36b2a07cf73a4cafacd8699e9fe41e4494a1bd99858d741b8642d51690e1401f25df4c483f51d1d0a3637772f69407669e17cb6681c4c2d4284d3ff9a40cbd45229f0cba18b6afd5d0f03bd9a88f777297a632bfb1588328fec4731a1e56d82540f6c555bd0765368d05676a394dd1f68188afe6e995b8e71e018abdba6cf19eb832d1f8d77bd50f9dd05ee7703f0ebf4726327a563e5f3d3", + "d6de33fb46bb33a0a076d964aee31d6cd35c5e27dbbf9566dab1e1e843486c3e94578109980704b717b7697be0d8b69ee73e904e378b217b5ec1ad3aa055937444d240d0316de7", + "01a56bfdd7915bda84696addb0e9548f84ecdbd55c0da482bf53738dd62ec4fa18b89f0500e0b3888f309ac217dda0c5ff4f4f800a986863a1be5365da2ec6e0941094fcc6c35f5b758ca61b6e7d8a1a26db9c0fcb147d3514230c733fc1767bbf68995b6b89e11c9fa61dc2ad5436f2a3009c6321e1edc6389e93fda666141dd6d1d2d4fcc5e078863d3bc225aa0bd1c7de8bebab4bae844153de373cdac244d8b0dc991694889806e744480ef67e9383e3004b9a8ae9f1f658ef0ceb6ed17e76a450b49dcae6195bd719405a3b2ed9f7c5dca910e5f5ace17639f6abba958359771a684b7a150f9dddacec13272e915a3f0ad7b83c73885358b8bb2661983409a3b47c203265b0d795aacb4900f8477f075e09ea2c497e5baebd4d474ceab9cfc364286f30e48c32df212eb3b57157e88f4357e9a6c41107cae1b9afb7efda501408c176507e9fee7dc5aa6d63151bd22d636d4a5e3535817cf4f28620602eabbe822e4bd55055231c9a11b6a5f39cde755c3523e4" + }, + { /* i=4457 cDividendBits=3275 cDivisorBits=2202 */ + "01604b5df5f549181bae7194ea5370022bd46af91462ed12d4eca98b2e5320ab5636434f90e8775ea9f6f001e363237e903221ab653997710be2e24fa850ce959ce476720b841aeb9d3939e184a97e403c614dc7ca25819071a4b1a96c797f89ada7c29db6c3d0ccabb04643630555407d60f74b8ee703dc746448b37dca7191b83902232fd39193ae4a35e01a8ab8944850578c96f8c703b1e67a96c9313305fb0432340f395dd16a5b76bcd3f6a755ab27a9007a8f12ec191ab9fee3ee0db593707017a37b0cc8f48b9c60717689ec58767fa1c75dbf2bad614a6a45f2b38062d2637c44b88455d72becfab2233eda09758021af7edba83896eecb6174fb38da0090c92afc630969ff58841cb335d81297df180e8f72e7a25f187510856b9e66ea10e73e4a189610b909fbffe317c22a4483ebd1843f0531d8b0675443bfb5b13ba5e00d76c38bc4dd1834858ab838cb14499eb34f25debde99f18aacf274ae12f309e1a68118ae4bdc9c9347ac81218a0fe8e89876437077b787080f3f68535b76df858330b9a17f58690343c7518ccfb32cae3dad2763d1c", + "01dfdef652fce53eb772042d29e1de543300f06442b776ce91a05d4148cf9abfcf7d57ec12997a9fc0e270c1bd443a415b69f9f63fabbd256341a34c2504be23260e868812a954c12f44eed50b6eb5c00d5b59c3cdc65765c27268243c146eaa39482bfbbce08c464967ae934ac7f4f3b72a3534ad4b5e68cf7a209529d9692d8d722e2efad238335272db0d279f63ba6e17b7cee0fcb79d1bafa1a8e61ad3dd60113be0d5d9190e38e9d76f69489e08c89bdfbd9c224df163ca7fc49d95ed0e2c6efe1560385f7e1a7eba362f37687d57c913caa1aa0505953adfe028503acc85edfd3b963bb440e82ae20da79720695f477f60660147162ef1e01d6ea48cf5eeaf4555c82e47f61d5312cb780258b0c593d055", + "bbf0dd64ca317b8d9aa76979a1db9fe8ffea98ff99d3b37ed6417a4ae9b90774dc206e5c00637c0f58a61ea96468037ddcc022dd67d175f47ae0d586f62691cc53779ab84546477a88ef4fb7a7dcb99592b664e00b0dfe74abbb3bff35245f3c9ee1903c0552c4b10582b6c5e2924498f5acd3d9c572daf9a6ea56940e154968a25f4188729c", + "018b221a111de89c7e6ef7cf4b638484f3ce54526020d5249361c13c2a3751726c05c2160d6e04a49b88ef0b72227549ca117c7799b9bb74abbd3613c07a2f825141100434cebcaf94fe9966c852b1fbfcaf543a442c034c33e0bb2e35985f9a4c31e3f62841cf55d05f66bfac4bce1e4a5eccb6ace73fecdff4049a7471b1bebc223e4fbbfae5bd4d1ddd809be2a29b9e8c79d06d320011d4ca7c755a73684e2cad5fe29ce8fddb53539ec9c546ca9322252f38c23154b8ef613d970d52cddc2f2a314d315ddb3c7173b8ac57828a39b0bcc2d7b01160d182ad57dadf18289b293b39677dbdc56908b9bb6e34b625bc67c86e82204611f1dda900d63895dee060a3bb8e02078f2933bb75ba4a92882f57756f50" + }, + { /* i=4458 cDividendBits=859 cDivisorBits=160 */ + "01c1cddc60dd9aab895140c10ce52b77f3a73e9a5854de8c4aa75dfde707cfaea9f15b0b9584e8916bf0d37c3b958cbd1d65401c73310d2cc6fa444775272a3347f9401fb073f28b5228f640e216a449ddfc8a3e698eeded58a1ed4d55395eda842e5ebfaadebca0d1aa6df4", + "69b780c8e5ea4860c5fbfebec6e19e61091baa78", + "04413abccc337268c1e476a467fb46c826d8f4a81b4b4bd1de2c0210458e9044be03262b8e39d5591dca132a423a42efa24f04935f7745657524a793d9d6b4e7801c0c5ff4949e164839824ccb0e069f91379ae7dbb734af", + "14b3391824af5ba8ba0db2193404928e755885ec" + }, + { /* i=4459 cDividendBits=2403 cDivisorBits=1666 */ + "07139c888a31c581fc3bdc1598f80e01507a59b63503d842dba64ec27b6db79a669e70b2cef3e9de64ed1a3572270e9c275cf341b142d42fac495f1c84e5aa55e323ac636ab846045099da6d0f7b26b0b98aa9d29567536e76ffce0861cdc09dcdb2d7393acd8f7f283ae969f089afd113301b1906b731f8dd94ec5f05b14543762a5d016d37a0e24b93e2e811ac700fbf146ef86e6c396db849f068b799c3b4e7cef475935be25ff2483188dc9fce3151211f1b47ae25bb52a42e4a1ba6a4b2dc8306e7e6bc39af611a9f2d21515348b64ba16d804b2a48f8548f941b03bc31a685c5f1d979ab0454dce5a19afd815d2bb081d57b22395d0d6968c8f6fb506026a89a185eadf3a00658d2f98a68fe2f742a0770c52c682a5bb4a08f0b31a8e8314e53a8f29a61a726e4005961", + "02685e944b5dd2a28996c448fc53566406455076ddc51412c5f68c9712812a8fb5597a67134e2e05e58f6f7717e28ef47bcae978fa16c53b4228f3e8212a6c3e89a7a3dedcac749780f5e97bb3d79aeb0c6dcb973966c43d40d0c21f4f832cfb9365ce6cd218705db0e746d50c194f26c49d81e1d1cd692528cf24f977b3f2430141cce38b8ed7173d9a253a169324c19f6a7644cb551260c84c47863c39fb7546934217cb6e6b762cf5ca643a4e8e8ab6c0acdcdce6fa870a5768ac6d1097b6f84aa9cbf9f7b97c1f655e7866d58c0a27", + "02f06d1c83cb4a37b0e02f5c9025c1c83f948f7a2b231d2e17f145808818dc359928bcd4a0db739a4b6b012cc64a933292fd4cd3e24130456ad0bb8392cd20cc121afcfee5e6f6a9f53a56ca2eccadb0b792b40276e4159dbea0a7d5ff", + "01b9e030a17ac6b9930db5a7878aa00809904bb0d0da940ce872d6609fe14fd82e4afe9a6ee60c127a10a9d0b41b15cf99057e4c5824ddda60ae1cd727554fd79ba13f3f63ba3f1c3e835205109617cb1c17315ea2fd15f67ff27b2eb38303a2448c638e853bdd2eef1438949b6ad938c806b88d6a1d1fe777ed3e5f1f418c2bfa8becb0564fbb1ad036b2ad9b6ccae60393abeff1a9c1b6c091591e3be39f0392313ae6c42dc62eaaa8bae3efd917e367e4e47e336e09998d858ddbfdd7c7ccb9dc40ffdb15d313a94530e065a99ec988" + }, + { /* i=4460 cDividendBits=3070 cDivisorBits=1770 */ + "2791c35d2cdcb9d431f50a03586c5ca78217cb4e43b5a57b3254c47febe56394f1980f10d2893f5b75a46b4e4ce7b132fd48349f953c80c1ec6bf1847e6089269258aad16a052aed5f1a402121d2f0b94fad2f997c94750657035697e06388b539410d64c2c22661680e9c176d07bfd917ec1a04323622f903426c464f31e60ed083a33e388d6fce33959ce2995648997dcaa575bd4a28a901b9f53179f378101908494ad194960e12f03becc4e4aea171f71207c3f05b7ca5bdbc5443b04d31ec1b4097876ed69937b93a825070e7a7397c4d98d3da69cecf023e1f963ad7b8e65e68877c9e7944c1d2afe1e0b68252b059ff65c504805899b2dc13a0f10d13ce9b5647029146243b529bb44b2c7fb6126329aa47a4f3a76579271540de91c5d2b493229a5ddb4c901d178ba9d9ceac8f52ab6db9e581db33a78b4e50bba0069c51bbe2712d22510fa4361c4da3214025adeaf475cf518b1f0bf11342f8153a57c82777ef8f1db68ee25375a0bef7cb2d483451c70a4596ef3a60c488d6d0cd", + "03d72e356636649bf84dd9e9d6d5834d8f41ebb6ea2cd4bad240524551790a35519cda36c8d72ae24dcb98997ed7caf94557da716ddf3c743a4dc124d9b035ec6e0a71d329eac3191998f50619bce2d3f269d1a8cdb42eb2faf98615676fde1b29f4f29bca311c2b0b85d8270c75571a40d05a6b1052dfc205b6fd46781fc073e0f29cc29aaba2e32983ecd7819fcfce18f8c158730194daa919853c1bb99283c09673305504b0e02cf850f27a1dbdde02a1624cbf5d4a05bfe5c0ae6cd1b9269b8dec477be923c1fa1b3ba1b5a2a5f2fd65d1927e274852388d011a2b94", + "0a4d95092c145799cc59982ccb6c9586ef78a74c0e174f8dcfa646f11b44f129037612591f9a11d3c2f71b221a8c818bb3fdbd227aef92e75f559f1a92e6bc53308f6d7ead5af926e50b28df4a0c430b981a9ad075f25afef3acba7ee009ac0065851ff1d6edff0b4bbb40acf6bd4b1d6bf1567c89eddabc4bd7bdb38cea1e22669fd104d99ef1dc0931e04d3e5fa65576a97348f16631e52342a456cb6ea319f93721", + "0205d9af8095cb7084e0256d696a78e0ea2714ab85cbe2135db4584a312f0169482a0e4adb3bbb220272974b820319b44b28aca9e5ec0296aaee6514e858fbfa9d28d021a58aa55a9d148c967eebb8cd6bfbace5501bfa40977b187ca77ff0c7070f2ba4414532ca9e111822c3d95c1fa8fad91928a51c1dc1b2b015e5ce890291b22d69f50311a0b9b5339f0302247e410f6e71ea2ca4cc91a050487ae9ca9213041e6100f4ef561b76f9340ae292e776146ae4626b04b3d9a7cbe33c906a03bf6f000e08901a7a8816863aea36dedfe4935bb6dd08f379d368ee2666b9" + }, + { /* i=4461 cDividendBits=2432 cDivisorBits=1067 */ + "2a97b236710f4c2a46f79a1e863da9d45fb3305418c4654b0da9c7474041ede9bc287f4681ae54be08265e4615053fe1f2b1cc70f5fcf89e021e51650d4329fc964679d10d85166f9c795da0f662f30a4eb246ea60b15e10f5daa6a696d06a10f042defa7b3b1f15f92ad929e32a8445a8492cb721ba238828e1ed216022cf27cb7d19c26392ca3ee55f06100cf5bd9cdcce28819ba8693e85a499c96b72fd6fe46999acf3798e63e714bb5aacfcc9c26ad552f97c41dfab3e800b15e739caaef5ebc73be83313bd1de62fe746eec510ea61a94dc582170dcc0e1e6534c5c1d85ea8a77afca6af33aa5298061984f6a2aae8a9bbafbfc51068e780a1756a3829d26cfcec2eb65a57abf5ab7181949fd4f956d0f7614201916715fdda5471067a9ac80d743e5c57f7893d0150ae1ce76a", + "05a806e5a27ff83801d38de2dbf2b9ad1e9ce1207c81f4ea8c412f7f07332a2ede41466a48d0948c567f80ac4467eb0f05d121933bd761e7243f86d05ae8b76e4476853ca3df96113a2c6b6362b7bf0719ff2dc5309165e89712c3ca633d69e05caddfc099c3b6efa11ebeb42f16a0a06840fe5a50230cd706cc11fd6b95b1a187da1385fe1a", + "0787b07dba45dcf0610be04491b1d02aa2841ad628bcf657fb694347f63fe6f489faf49b57cfe739daca63987967634708d4340ace428f5126ff22acdab70727178511c772a3d3b004d21a5eb513632f5eba77ee983622cae5a877da973c6bcbed71646b80bf48cc3b6a0219af2e7597348d6c2947ed069768c4061214e23c332b72865c7c2efd79845d38c59bb66bfbfcb2813f1aeaf530f8054758be8946c3b3150ddb8011021254d6cc", + "0262a630d993291ddc9e0f9d7ee76d20f9ea720c25edbd8071277f8b7a0c78bfa7a62e1c3a8fb4af469fe4e1389ebe68bf8bf73b9c7aa153ba04dc0160b1bd42a1d9d0316ba65595525207166db0a645b9e2e00c6f7effaa4d4997883f491b44dbf20f8cc14e7d5beb304f953698e1f2f0f5351bc59046f9a51a2e05ddf1b41ae92de864aeb2" + }, + { /* i=4462 cDividendBits=3794 cDivisorBits=267 */ + "03a92ec24efe3fe9ec2b5c7148bbc70a31b624b319bf3dac49975e8f876f1e0e9a9eb63a7e4fc0e805e3f6f43351b50ea5a9a796ecac2de8f9fac4aecae9d6021fb5ba10f0273cacc3f527de4c62cbe1dfbef2aeb965fe30ca794c4363a20fa50eadf8ad70db29241e8e9d34b5c92c2fdf16e78d29564432463fc1c86ad13de6f59bf9471dfd27e813eb16285de79635b72459c39fa8c7ff367d9ae7c884a9c9382e530e5906454b5010dcc7df02b6103dc8c0a53c71547a12f10cd6ad1f21d1f45558047b3921ac9c140313aa7f9b7f7f73e9d1a156741975903e9973aeb005d84b84d2b48ec64c533682c3d74de5a25f3b59e4bdfdf1e880b3690071a9d3fe1c85d9e58690c5d167c81e2719dad2c0e3d328e24b40fe918393da2a25f55a162c1f6ee99b2515640e7999550f73eb5c40c36e230298a2b11c55a0cfbd486d0a4b40468357ed34e4137b59de544516dd5a9df58f993934432362e32ff6f1335d226b7b566cc1357e0a280be5456611e975059be38a6df52944cf1240640dae68dc8939d02d9e26d3bc3aec41a216d2c0b784cc7005ea89125cb65772aca4c14af9418381462e69d424a22e8a54e96a83cd12d443e71bcac6b9d553167365478555bac2067d613c56e2aa792c4904e0a302950120c4180185cc0119", + "04dc01d42f2c3a86719983522f433a6d70ab23677c22331cc4ad0da31a2edc711a0d", + "c0dc10cabb3b540aaef2ce1ba38895991c32bea653f310b9c166309a9a641eebae347d26fea38d5f07257f2956a697015609eac02df2c5be5ff119beb1ada4b20f4329cf5f5dc60664b663f7fa2539684b04537135805debc67ee589aa0388adc5eca23c94eb9e933f9f017d2b3e30c47e24a63ea66836546b0413c2cd9526926c6c69318606467da682f8dd651257d15d3feff8f18f622b8ff360217911a9616cea333de8502c4b4ba07788b36846027fa37cd87daac6ad0bd1c1d5bbb7a8d4dbb27838d4ced2ec15e4fd0dedb3559cd468bf9267bd1da53b56f3fbd2fc875fb2ffe22200edf41f8ffaa795eef230cb6b3d74036bbd6d9c1c3f5139211ed486513667498176e74d07fa4feb6d14816cd164e7c10d46201c60a8ef695df0fbea369e8376e2945eb97e5f74e04f9f762c9262018f654a670c1ea33faf9568c67b89d86453076a3d1ea3fea21fda19cba27c08ee5ba7028472753ff6370509b8a9ca3c7b83e18c06409ee577423c8d67696054779e1431e1f1196c8ee3a5e16561e43f81f1030b726b0d3f504c7869719f472554d1291615acfadbf12beefd7b7addcd3923e3b4e9d89f7d9e68e6185b4258043f7f3116ac8850", + "04a09f409b67213f85bb3b792f4b7704c13dc4641d1a40b16cceaeafc088ede0f509" + }, + { /* i=4463 cDividendBits=630 cDivisorBits=507 */ + "24fdef1a5fef043fbfafcba649e53fd768f5a04980cbe6f22e6cdf3c5ed99b4fff90df0fd1fc16c64607e54a54bbe1a38d2bbcf75cb54a33f8b278cf5e799b2d44d20a6c4a603f1dfc73dd7150b7a8", + "026295fdba2a51da4254296ea5b87bd5770f2ee3ec9ba5fe493d4b01b8b3f2dba12e01c798f71892a959a64461f075a6361c057142d1b3034cf8a05a5a82ecd7", + "0f82742a9f0b91207f7533b97a6d6cea", + "4bbd372f3a20d8d5b1655b1f609c0a48f42cd33e6c34588dac8ac5ed8dcee231e0cbe6b04bb458006b58874cf28008976a6e44a37083f22469d81b2c2e8722" + }, + { /* i=4464 cDividendBits=3255 cDivisorBits=659 */ + "4674505a997aebef6173ce888ae909910e416c37925e377f634f0bc96cb05e9f622aa487f015397275330bbab3cce0876f4fb4dd56b3a7ae46f41a62e355536b59bf11b5d7ae44df55a05dc60aacf3cd9f58c7ee3f459bbb9e4a0d562872144b56cbb9d06ab8b282972617ff858dbdb9710d82110e3bba227bfc1c341bc181292b9a034240904a276e648accd3d678d38fa5f558116a96dd3f660d353c6ced420e616f0d4282f294342b2a9699e573ad3e80f6ed8739f744119808d683ce9a5d9ed289075fdb16bbce32b294187fd5f856f1e0cdae97c16370311b02b9e5c9127cdebe012cd9a88843509618b510d9cb192b66796dcb9490c001bb7938b6838327bbae6aedb26bae8d2f7b05f1f2cf3843f7cda836dafde777d129f5905d582c061bd37a6a2c179412d836d57c3343975828acd83840177974d3ba7260d27af6bf2a8849f869632c7bf6f9ca671ba90b0d04c55c33f44bd20f8a71513c9d320f38ceb6efae8b1aaa49b16634485182a9f33245da059e2ce48424e4f5895cef23cca37357440476ced222559c6517c049abd489584fb3fb", + "04bb053e3ad25f267cb34071dde3c92a24ce744fb06ec5e360660cf4075bef17100b42c1b0726ebb8027c38c4b1a689ceaaebd1cb385b84b41399885a51820896ce9b1df7a294a3453a3c3e2a3b0e5a11691d0", + "0ee4bb5a4aae9bd5ca57ba0dac2d409088b259cbcc7f76e35d1440812eb220959e9bc779f444abc5d52062da44ff2b9f0cc52d387096ef0ab84c7f6a31d8dcab4ca77694e1ac50de5236ba53c4f45ec0664545af8c3271d60f46311048db68ec9261fa989d570aa899e7e5cd1a88b0e68105d03920ba2b5fec0f981bfdc07cdfa63d6cc8d2771dcccab36f88c1c2575d640abe5b5c2a2f838eff5a6332a30d86f35a44c979e8f791c7599868ac3cfb197dc8e1a660e012874311a024929b4ef0ecbc73345cf02b728611666bd7dfa1ecc928f6e0b244051b5d2fdd90d1a9b0b04ac02b350edd271c433616e0a6785fdb756670c387b803cce2b8aec58c56b2649c35cbb9e8c9771858745c67a5374ac6c74773ef0af658be8810b801449a31c3f2ca8ddbdf1d4785a8096b7abe2bdd027a3e4bd94e2f51353e325e5c75b87de453d8b89271", + "01f1fa8ce2fb9cca680a017c82f7c5e94709fecba97a71c112799e84d82f93d322f4e15ea1188b4896be0f543289e0780e6f68b0780eb6eb7436c83873449c3019e9c4c5b83b083d70f150f8d26f9e10b0b72b" + }, + { /* i=4465 cDividendBits=1475 cDivisorBits=612 */ + "04810bec1c472bd47deea105772616edde3fe70477d5dc9f9041d841100773aa9161163e9131a4c5c4e69388892bc36f06ac96d3de18828d0cff4807bbd24cbe2d21b58b88a2fa097de7e7dcef198c9f0236e69ee03f0c6c8ea28427876aa8b219fa25ac0fcc9239cd4838dd1603fb12c12cede942f7cf077a80deef65215d30e92d19bfb47aa717289ce3b553da6fcdfe7588ce5187475455a4d05e1a356c7a9310b954c067029f07aacb91b003a4de654e185632057afe49", + "040596206dc30a394898c6f42271be29a43a385400da1fc5c4db116b10fa0b51629ea2ff5b9d83fbc80b16259f29f48b3385c7f53c83010129eec9cfa9010dda5714b08d43c95f45a4231ffe12", + "011eb29391ae202a1fab50c589971dd761380b8c1f8ced7bd41b986987f3cc1829898b2902eb2e9765f7e7700c4615547383f51f1cc29f997d03686ea5c5863cca4c13dae533329248d244df60180dd87ab7e039cb6d2d7f3999a57ca19d1a2fbabe4600539593d218cba96470", + "0193076c79f1cb515b735687aa32b84359df1b196f991db068355e36efe8ae092c614d390ee0e12869498c0c9bb08907ad8356ac44f6dafed0318187dae06e9b8b36bdc3acf43f9c63285ace69" + }, + { /* i=4466 cDividendBits=2880 cDivisorBits=2023 */ + "23f1b4b6b5f11c264069311dc00f057b1e29901fb3c448db5bae469089708edc02336c5e13b383c75c0ed82d8fd61aa38c5ffde63f3911a2e7ee65e7f36425ec44aa590dcc6c21a54096d1a663a8f02f838501df760d8feb2d1af13b74c1a9045cc9243976ba508cbc24420bb0351a3118caa1bcd715efd8a09c4b8f9dfe0513976019229782d1e21b55e36f915332b56e18e2d607a6e922a86e7fa0e77be92ed3a0c6a5bc4d3c9e7f032606cbf1b50becc2ed81a5fcfd27ee1a7f20839dcac8f7a2b9ec1b86d93a562c6ee97eaaffb244d4ab2156d7a64dd99e69be909b3301d0c0e105eceb136d0b420281b3a93fa19c83b3fe3f616bfc01451b26b675044ed193bbf4df569313b920371cedcef374459c80a6d1afe0d4fd823f8daa39f3b372a54bce151a36755193fb185b7424d9ef75fd74b8be838eabe4fce6502c2ea2a14aa83fdb9f439338f3b59cec3ee5795c21707e50edb2c56f0c62634717ac05a6324e8b6cf29d9a", + "1c80e63715b1fc8bc70962febd102053ca6e7f89347739d1ee67991c0fbd25a7413db2329dfd97a5d10df3829aed52ab1c923103c0ffb07491232cda83ad98b0370f560e35715e9f96bd41e5cf2c7c26dba4be2d85a53b2c7d1b38b663471b032ac78f4c9ae22e5abc18c916caece36ef59fb99fcc2269229a417b525763edc09fb722a42fa5613bd307b4b2c35a8eedb745bf6b8fe35670464c395299c0031d6266f5ec7c4e3d6a8375da24c5db22181e5630e301c4261af9abb565398bcee06355d65a67a176769895f59a8251ab62960ad6868bca295e8ef87c510fcf4228f64cf4b10c694360e59b6b5c742057505789fc86368e00b21f1299fc60", + "0142d3bbc147073f4472ba90149a7ef57c9c10a0c0648db47572fd3754b4421e756b1ac7f39b80b8f85976a5a194285599d0014a1f7164a1e763afe61af19e8c968395404f116b38a3b10cd1b7f34b7e050cbc396897df52a1539e567700bba9f92d14c7abb48cbb146c83bb", + "0d072323d16207e7e024e84714a9e74a30cb7186d077dcbc04f0e7f3e753d2eaa7774e4e1b2224feb1f9db5ca413742f183f8bd38e2d69c678e1bffb2ba7621cc04e5faee29e4035268ac6dc6ce3e74aef24d3f5ff001e5434ec5f70f2061d09537dc036be123403ba7ac1d11709f82eff810f1911b0595d19dcf45a3b10df17c48cd9aee12bae3abf5e3c89d1cd9a0a9abb144ec04751c07610107c2f1950d4fc511ec6566d3e43c779dacd4f7843310edc76053ae470d54b0ff1a692bdc91e48e1d462fd4b4a3d13a1864d93e09d22e7bdd1ed5bba91b6a50aec31584ad6c1b29fe8b538d4d8cf899ae8e321555b1c500b5c07f39dfa908611d2237a" + }, + { /* i=4467 cDividendBits=3543 cDivisorBits=1283 */ + "7f30b25b4e08a83ca5ee574fa45d86e1133215d7ba1428cddc11098667041df3eef3678bcfc4a3741f86c0ff1e0fab5d48a129e1bbab952d3f0c7bd39a82407cbe30b72b415670a79d396d6e7d3b8c836d9e133e3d53062180e50629702276927bb9a2534b422d10d4c2bef5eeded237a39f54437f0d0836d19b0644c4f1e7a4aeaff2d3e976bc746a0bdca3059f8d90395a609ac424aee503193b571f02147a60769b270f1b24f4bcf492b118a661257c9a9e1c40f6e33c5c25086092196833ed9e2e865ef2c8724515078cb070ea58ebe2ed7440ed903457361e8ea7feea112377e5cd8046cc7a3efd7d6a6c0b1987d597d43ebd1ac52eac99fb34f52b9111937f57e9650920a28416a5d0eb14eea81b1f6e8eed7c88c2d85ef819554927ac5388ad87b87df615a6de2c67076557805a38e0cccb76ac68e5ad3ef6fd091e6050470525876b65d90445990a43369827da6a01170ab169aefa0c554f6f7ad6a1c6f654db958c676dc8910f9239a13bb5498931982367529098812af5a61ebecc3d4be923264f43e26142ca74670150e4b2463faba1ade38c10004ea921322e1596523b73597583fc8239447cdc7c48fdbf8e07d489e0a386290637", + "03f49483b8c35874f605bfb2be475afa8e97dd2c385cba1364a33a996e651381b3a520e7658f28ce3aa342980367c2a7ec405028d54f6594f23828868db54373ce3ffcfa0e863a14bbf4c466216c9f453b018fd3972cc9e637d015d501577c76bf68075f9dd7aa2f5357d6dc5e56c1adccb2e9400a8be909943133b82f0e9db5f80c3097b561c71e6f142e3b1c42900970c2ff48b124757c9615cce8ffdb0947c2", + "2027fa9c85d35a3de9633b0acd3829625e64cdf7996c3bd421fc3b32344be1822409205ea6566ba104e6a11b434ec2f479d54d905d284195792c76d574e0822888f1c50f1e2060aad7c2d97b448f7acbe3154c93556d08b1d003052da795f82a032d43ae6586a5a6bbaffa130781a80ca3a686dc7ba87e8f96c9ab1e795da926d5b5284207a47995ae4621cdc9c7349957e86d483ed132f70645b829793ecf27cf2c3b533291359a7c0a22aad7476fb4d827f712589c3ab9ef4680379b230cf4ef22a07cc43464bee84980149f8b0c496448d4d99a5bc529b25b1839991e34edf673239b98b05336ad07df6dab587997304d23c3abf012a80abc9d77fd9b7f5820610dc5dd3a172c14f4bc85a349725df23792e4ea29a0963c294d", + "0256811af7a9d90d227b147adf4ad69626466f32b59e352904f5aaa9c56f8ea887a5face1d1846072f32c7d417e13f79b3a564590fc15046a5559a5f8cb0697ac03264bc9bd299091a06c7e9d2938f8d11e8492e6e066c484e341ad03a2e0986b66ecbb882cad9321fad73d877dc2e2c109055baf95bbf536bd1079cd58aecc111f1f3f2a99cb3653c29ac3d5e3e13531ca417fb4f8e132fd32ca92021aa685edd" + }, + { /* i=4468 cDividendBits=3623 cDivisorBits=2122 */ + "0f388fe41add2e42545b316a75e72eb5c4477424198de1c642744fdaaf163fb16b6737d42921610b83a01af793aa7e9457d35115386d56f6c6c59c37c2390467c08cbd12230ccd4417a7b712b39cf5f7ae155a4811531c4e2aa31eb6061c1266082b1db99c3f62231f58112685cf236619323bab4c204aafe365c8539a609449a13a9f60d637f11923cd532876ad961668758e43e53475a4bcc0564e65670b843a74ad079f1924b6ec22dd9c2bd0f9bf421ed894371988fe1a1c33be3947a7500c162aaa6c3ad97b5492c18b3df093bad416fe2c85b15d6b9f35a63bcb5535252d4721df7ab2f1e900412f7ff93be1cace6dd00395427ddfa90d7592ba34a78c2eeb477a1e2d4c2f65119546db4e8a4ece0acc79dfc6b3ca73856baa7b81797368df1a812109c5c96b4b6d10ef76e8cb16837e4649356a5accbbbb2825fea7b127863a5ede2513b7cccb797e181f473b74dacc6735bba9907e162afb69a969465b847ebf26475f3e4effeb5a485ecb4a158315246375787a2cd45139877921ac5078ad25c79a4c4c3bd67e79b8d1138a87bc0bbf5f56772b7da9455ab630906affd33dee1a1c27b1c3469db5afa9a5c7da7d537c5661a6368f116fc26c736ebd32eb91f89c", + "03aaac1ba9fe94cc9910e1b89a77b209a59c2d69a11da382f0b09c3c7c0d5a2d38d4523bbd0a128855c830f52cd954068d7b01e8242713e0a01e8a096d885c2b6b450aa34f3af4f99fb6dde703116ec0f008f496ad05020cd9df334d402f57c8dcf6ea4642c9e4df8c2c535d33a7844a8ee216dbd95f3005e7ad3cca9069fc532a1b8c8af07b87ca13ee74f8fdba6ce159c4cc4942e914f3b562763b31b6d2b3ea7ec474c246fb3aa07afc91017e3cf29ab8e0d014e44e9d46b6d640ccaa547731efb226a23a8dd3b44e5dd05f7eb6e4a3ef128474edef67a96642c2f7858910cc0dc7da0dd0c1bd7ddf4f4237725394ab91cf80dfe6fa038eed4dc51d9aaa113e405112b3bee754b1b8", + "0426b13f5ddd3c226148ee9289aaf71a7b3cf2fefd57e1de0cff41c8007b98fc615a923cba05cc83c2b61fccf991b2e148c6c7e8f2e647e6fa4920a8378a26c42b0cea02a745e06fd90a4b5d31b7c24973683a83c78332df47b9f040614c37cc6470884f538720a130ea854ee910b22540b9ea40a9106bafe41a64247b929cb49408525ceacf0564031accb67c3678ceb81b68f02de42b868283dc4f27c57f4ebe06ba29d4db3b846bc01169878f67fcb9ab940d3198c2608eff996c", + "01544985070fb0cb48b7ce39346041a2d80d00e649187e77347eff9290f381d1dccb8250a2283447559cfdfcc7ebdfb5a120f5a08e33dee88762c696e66a5037e6a7a3e2c6ad231f4b0d38c633a22036236095c3efab857677bf8f66ca616736b150b06d0782f248f4063dae386c414f1b4591204313992c870e7ba3530d32e1bde7c789ea0ced8df440131d5830dc7f405dd72808077e88c5b7fe19fe3cffd7a5e0b62d786f9804c013defd058bd10c33635904d288acad992677abd0f47e29f4f2a4fad459aff747e2181d55852bfca963ce38b1b17d8aa6e70297f0c24105c01da641ca04bd4af1f3d9a45f80532f49126cbb4e5a64d737ee52d853561a1de3f676f453769f5806fc" + }, + { /* i=4469 cDividendBits=3104 cDivisorBits=1697 */ + "052ce3d58224cd4f8c7ad481c96f1e33d7a52b12888858267828762eaaa157397f2acf3bf9993f6c4dd4cd951a5ea65686c93250271547cd2f2d083ff5dfbcef52f507947f5361d87b04f6d08b6467a5c7e7c2f97f27a9fa2080a910afdc1a1c012935c692bbcea49063e2056a8615c0df84d6bf4f9622d1bb2770969cce1e652fd10c193f5c5e486041493a70f08f0cd390a40e1acba77c2e6e448e951643e6d27ed256e961808b695635b06c1230c590454885d455943ed226323fae746f18fad1f1eb22c331d67fdebe1e83b5181e2692d62b69d63d8112b92d4823de5259b00011163c9352d3863e9ca83271d18e5095c06f68798ad118b65fdfabd5de37ee82673e60ec0f99e170d6573ae60688c01fa56e2510c431160d7dd52460ca54f7ba5855c851fc1743bb53972b61dc6d34b1f6b0ce50d618d366fcf839643dd96334254f7939134754b05c99e91779421da7115b36fe14414024e3abc793011659bd9c4e5dca51eedef7c51bf3c0e1256f8761d302b95f8aa877afde2426283afd4d87a9", + "01f02e0ecfffd838329b2f51c50580d722fcb28e46bb5ddd8dee0ca418d356541b5853cb9aecf2cb16ec30bbd0927e00e367b9fd1bdbf87a3c70d9270ef30adbb0cef59bf6090a0730e7d94795480da066bbae5eb2f4bafef458bcd4e375cce3cbd9cd5d6299743bc4599872bcebea9556fc79008f3e1df8a0b7aef777b92f6b6307b9c28e7ae5a9fa18400cf297c156a9160f4d80a2a6dabc466f3285935992320c82853279f66ab1f4ffa89bbdb2165dbd1437c1f7b4123b73c9e1a2a7ac950a0d8ef5c801096273cc297c89219a1e5c6eddf3b8", + "02ab90f499390c78ebec19842ddc2c4a2707cc5b7245040cb45c68dc026e1cb150b91c2d3653e5b475ef69f8b6e1dd5571dfc22d005e51d4ee5b8ad0868df0dccd2c491626792d10ea97231a297c936197e840df6bf6f97179901c49d75764f9e1bb464a7b3252cf3697a4bf99ed6d4085087aea99d40ce9efe291ca35fc90ced4cc838f327970ef6c8fe317a3dca7fef842a370b7e390b65b7c27679b4dc934d1ebec5195ef56f8b54e43973655a40f", + "01802feb9f716fbb5ae9fe009b5b7b597f4ef4b37c8ba07d66d829e3db7c8fdb748dd5ed96ab4f806bf62232c22d885481993b1aafdf595a92ed0a78c7a14633b55ca452ceb17f9c165fc77d082c8955f4380b46f991335f9004ea5f2ce8ce91f465fe828de2178f1bd3fe4afa84783f43fbd8629b8a4007fabbce0cd4fbdc469eebe989d86410c7da6ae79d53dbc2942c5fbebaaa0a880c604bf720db84141f1f07be1405a1d63211ee57f9e7b0611be45460a9444e1926c69e0390d3dbaab30ffba10fe588d970be7d90270006d39f2792125fe1" + }, + { /* i=4470 cDividendBits=1126 cDivisorBits=313 */ + "210f429d9fe5b13b2319ac49de7c8ecaa8a76432219d16b679d0a05f394b60120739ea3d8280a436803349c00fa95da78154435639507f0492ef72f534618163ff08f7bf7b21f25db67963975830acd61eb708649ded6432dd3bb4c6c35cbe9dd3900ccdb138c55250d39b1401e3ac4d991dbccc8a2ac4df096abc12140bc41ef0a8044bfa59d3c04fd00127c5", + "01032327f9f3dfd03c7c602b8432386e1282e615d001503f12cd677522b29fb9761320ade6c5e34c", + "20a8cc0bfbed654350d40165fda22779faff7be805be7d06227a5f3fd9fb392c73bc8349ae6c4e9c1e5156188af75b3d88d2ae58a74d98868ddbce7880714af51e1b01516fa2ea154180ac1300c0eccd8795407ed9cb01067c606c5cbd15819d18a8088ee3de", + "3fbc70f6a830c0096d088b919ed81a2ceadc185c09ae8db2c6ea660f037dedbecebb21c3b1a7dd" + }, + { /* i=4471 cDividendBits=2907 cDivisorBits=1607 */ + "0486a605958a470b7bf342e40cc1c716991f8050b4f009920ff97fe9a8ffd1aae8873dabc42982766a2de3741097d978442d612f9011e1bb0c38e0052ebf5977cc25f5310d05936dd4f603948ddb9a5ca6c1164a391e3d35e1d2b488ec2a91bd7c3e71d4582cfc6e8d8e0507b54beba0204657c4e1a4ce708835d2d35c4055fa24dde33564b8b65a4756c3d4157a89b9ae25e4a5987cd5acecd408844bc9c4c500106ff8fcc7b443da7ac344a8506353a2c481d27885dbd1c87935061818470da0cb66a85066b7b16184b30771f209280c6e46a7d443a6721d5a3155ddd9f63222f6ed1c25787adba211fb02de6b2e3f32afe783dd35921e05d02b8011783ce560aeccdb5008dc0576b872c16f226dfa9a80b0e4d0d8e9fe9e6cfc93f387308bc22628661965313f80998292ab7b7b5229b3f9c8da38560057fc8ccc9979b1bf4599636a9706e82a24f17ec8911b2a0773a1412174e6f009c674544be31fe7f08fcf38b58045b55f78cac9b0", + "67d2618936341af91e06670e9ba43b4a5eedd406ccbdd5108ab3ab9c3c60135b601e2850ba3989c60d0d1dfaae8898d0ca1890eecc183661ea648fa83d1ab8e57cfa3547b9b9330d83039981fea96a020c300f4affff3428e0e660e25d50d045bf00ef1a4a300fd73d7080ca43e16b2f8cb1d1d416e658706e79539cea2e1e9cca7b9a43a2d904c36792017be1ec7264744138efd36aebb34da6847557e562257acdb5d3da3cc1d01c338f2636616698d1e461fa7233d2ccc428b4e5d80d6f478e1fe9eec20d96823a", + "0b28f4024a60b1583a8a9007e05b7703a2c3947f48cc79ceb876cc1040c1bab5931850e827beddec37c412c3dce4f8a476247601881856b2f9aafb85f4a8f8f1e42d2da67dde56bbc56951c7aa41bba7c7455301ac7f3061bcf9792712047821ec16763d500e42de24cc06edfbef0821f5d2301a83e4e82fb72d35a73000ed4b40e2caa5caeebf8dbd16ff28f9d5155a23269e518e960ceece2f34d1f358929e8b1c19", + "0769e1f4516da04d6c9afcc9eaacaf1ea1d28a50f37b21f5495a390eec74c0bb982edfa47081edf966d2769133fa3ebbc48919287ffac34e16444e12178822c3d22a950880a4722c4c483a7ee37469ff93b93b61b6050a57cc10df7be57a27d2506a9dfc34b884abdd27978bb39562347c2589fc06c59c13aacd67077667e8e4b544c807239117059ad32d9d5b3d3ee22df8f29bf4ac963ad490a13d527c54ddcb623dab5312f2a3648ebc363242589a9f4b4d5e2b41e2583dbd06d6f8ba513ba7f0e7b0c32d5bba06" + }, + { /* i=4472 cDividendBits=3142 cDivisorBits=2228 */ + "3734afb436202fdbff6dd3eadf921f2093ddf2e7fb97faf0e27e5c217a2ebc662b125f2ac147c61a9a95696f273dc31b59ad13c1430d1fb33d19c254f047eab1d1a17965cb45461db607535d916dd4f51c27640bd0f5d4fa1c8be2d3870b911368255a18526728ec36f03499304cc7ddc8287e4a9684821a4bd707d2dfb689bf26285bc844d78216b212261d76cc5b42500b483ecd2a694c1a9a31b35696793487ea319f6ff45a8ec650ad048f05989d301cc0289b9309a2b7cc59e4653cd0be6a131caf94e535e3dfa4827ba28c8155aee619f5d09b28a15c6277584a976386a736f6e8921f7b96d8346a4cc96a09f8dc9e324f7bd5d5698f08a82a8cebfe851ded71b26d057422d7675b1cdde6e974ea128e2dc4b299ece6dabde662179940f651f6b5b76963b66585c1a75e7ea41d2e82050ba05d29c7bad05fb9b22d4c5fc1d81b65dac4bce80d7211b6712f3654919305efaeb45281ad574e8b07e286211ec47143275ed5f9d153044b99c2ffccb6276d950896cd19cd2e493193eabc676949621dc666709ee0", + "025d794d84822b79e748a14bfd8691827856bfe28738820b6f9b4725c0123ac79a718dc683db7a0116647009153a6efe9b2ff320afff86f56d14b302974e6569bb665e3b41ac24212dde0f4474a2b660cd781850436d4e57063fc062b32bb311b45b46d49d6741d72c7f007dc7c7f9c41be9221349bc757cd835e9e64ed3dc2bd168cf017fb6943acaf82233ef41d98fb17576361877d2c49816a0ad2365336576d06b1965a1cb81006a944a024005f34b16ff10b47a3d1039bdd312d6bad204e64ca8d107ef0b4253fbb779cda1e2f8a4f3adc79736d603c93cf35684fcffd61ea04abaf9412bbdfb36271d9f50b283b90e3c783ecb162e12e4344b20484ab6da5126350c8292aa3431640bfac9085f6a65f4895cc656", + "17576e923976c31b9558f1043f1d7ef0d31943d77774508510639417dd4fe1d2b5e988db501562f19a6e3f6a4ffec05e182dc27b6652e7ce65ea7a34e378bb665facf400e9c4533bdfe1c84ce0e758b70da459dd5863ab5add32dc5535c6bd2fea5315c4a6646bc629c199b3e9a7847521ff1b", + "014769b717203f9674b6512eaf31703f58e4044ff39cd81ea28ca79b314d8784c0cc48504446438db009d5772d0430a38eba4e1bc2c9493dc8f6ea89e370c2af8274c83116af4e2c0699fc473454d4d62e64a7f305c8f2bbb597429bc80cce2eca655a23d282d7312b840be13874287e03d2e953bd0b8a0ee030a1603139dd3bc31efb6366f778bb62799ac0aecb4cb8991d29a696f34d0f389c6b639b1ffb96215402cdae004247fc350ce6ef2236587bc6c400ac725104e2126a293d4646c8858eb2a8ab6467e155f0c4dc01be0a0badb5d9c4dece7e291af1b434ee98d5188d93cf6ab3aba1e902c59d498e3d666f23fe019a467427a18c2a330f89069147805c93d9050781bd8b4549669e93f556cf4e35a10209ce" + }, + { /* i=4473 cDividendBits=1110 cDivisorBits=78 */ + "2a3982c021a1d4095a1c602d4e2986828e63b7d560372a3230b35709095a3e3c81ab77e65ee4a873c77295a20a57371ce54a959ff04415d29b0d38ac7dbbd482319250d9edc05ba8865eef5fdf2091693700993929e572d33831b6798b1995c71f1d61f07c02ea640d5f18b5a7992371b74134c1043c84dffa37c927f93af59ff2f278358c88fc48393c60", + "30bf25e63e9eb39a2f3e", + "ddbfaa3fd51eaa2ca756cf5191450cbb13afc71e693712ac6e8ee56fe16d651ce5f54acf67ab13fa797dfbd890153ccb617c32e74cf8eca4f6c5d9dd3d40cb784bc1679757a64b3f2d5566ecbd78d40396313b8b3d8111f8c7f88a9a86d0e87c1ef10ab661ba1de56bbdca382c29052a7e462e10389db69dfe03c1c124708bf2af", + "0f88602c589cfa8054fe" + }, + { /* i=4474 cDividendBits=3037 cDivisorBits=794 */ + "015dc48a17a12367d924724ca508ddbe9fba81fdd4585022ecc3d89e3f7821257472cfbf0da635e9f9f4d85dd26761f3a614f784c4d5c9cb8b21f1bbcee8f96aa1b8fad3541d323c7570c40d717d6119d92e85480885d3ac2fe843b1c7ca305989bee63fcf78a66dd94fe0bae9f750d11d5217f78b66b86aec71c3ccf3aa04d84189eddf74bfe98734f5dcb9c6701d1491e647c784fc1a1a28e6f70bb9ef6f20f554bc7c7a7527a3fe2ec393d3d3b699cbc2d4cdf69b4a1093cfba5d671bef6be4c992f61bf9eaaf942a8fca094d6f81ccc434f4f25223114f0d56668234eafc58f6f76bf88c1f5fd910a2f80c4bde3f9c29af984ec8bfc9c1a5fc2aa3cf27491494811cdd61c454d44238c18ee293363bdb950c589789f04874b676d601155edbca4eabd60779953301c2a6c679796bf4f405f5d36c548f9d0be6c4ced52d1e9eb01cbe58a71a80a61a41a9bc7088d9d8e8d8a3dd39c5b8e6a0e6bab3f50a1cf99712f93aaeb35e9e13b71da4a45c40fbb07e3eb9d2001cf32356d6", + "01a20dedd921aa45b866a942396995a9b6324505228d9fa8f31e312fdbe49f519ebfb6a24ee79b19534414f714b4575592401074bbc6ba1e435210af8596e3651331f65fa2c8a48be3eed1cd3f5974069392313b5415f1a68f914c1ed81aab2d6fbbefc8", + "d62f167aa1158155fed949626b9db6961dd600a9982ed4697d386a51daa34664df5554f57642b023deaff4037ecfbdcf40c6aff6d559f21a9860db3640ac72c7a00e0853ce7dd57d8f26a7e90fb7e32204d3ed3d678f81488cc44ebe3b041985aaca95853f61a9db7d990288ce23d17d4f638b8c858bfee31f278d784ae97d9743c1a36c3d5aa7ed0ee881c47ecb7991b600738c945a11a901343b257f291456f7e84068255ab6914becd1dc1e1a055247651f6ade8ccf41802fc1af4cfc242a3646710bccdb8fdcf8be48a96e770feb88a03495416efde6f4dec450dfad3857b45684db923edff4a354a299b5cb1bd6971ab2ecfd38edf8fdcdc61b45d70467224f1b84f74c527e41666e2d6b0f759f5c219d432c6c2858", + "016efc911ad625b67108abffb61669cade552a3b2033d5af055a0c52b442f8b4d72abfc750c6efb13a389bac0f69df386cb724d01fba069049570c9c6469f42e0485e9e6d0be63adfccd905308ef82f626150bd603222df345b0d02bf6833531a4b1aa16" + }, + { /* i=4475 cDividendBits=1343 cDivisorBits=684 */ + "7c9e9d8e8d63335d69f0f6fee9db9dd25a83d78d41402bb2b7c4c44b0ef5036bb39fd1640179b746a727097a3872b3c374766d5c09b907aff16ca5a47b0cd7b2e37e58507a4239e5ca16fbc3849e99bbfbf2a60e8a2268d73bb19ea773f0d2e291158558171a449b3aebf849cb470cfabe721e7227dcdf9899957a45f030b6f09329f18a62234cc077556a6e24e9a6722e26d33b3387e4f483b5bac4fa4a6aa52e3f101dcae8cf9e", + "0df6f4b3f0d78d90cd58aa638589722b1e8aff64a40c4998a182f0d92b063ed89b6b24085ba5ba0279fe6e346c761291d42964a3163596175476fb68e44cec20730e84e6b5b43398269f7fabe6d98b7eeef751e4336c", + "08ec85ef2d051457eb23f8e09e24df282c303f8f6ac076900cd9fdf37451c76b0f97ef97fd633d2d4cbd3f83162eb7ab43e66461f4c351938b001bad0ca7e9d965abfb46256c6b758887d21a9d9206e7b40fe0", + "0d9926ec05315f9a28917eb1323ed37872fd4ccdf9ff66152df6e422e965f2a41f62a478a7357968e36241e74e73d65ae40ed24e06d583ff993e52b4a51b41a2bb1d2397ed7bdc0d7ad80c92def8ec7a2e8728487d1e" + }, + { /* i=4476 cDividendBits=2130 cDivisorBits=604 */ + "013bfb8d9eada285fac06267886ed2797ee0e75febd801345935eec79294ac0cb34a0baf0af9d6ef8fa13aecc339c30edd9c1b8b2c1bfbf1f5c98ffa14802bd56aecbdf4c36a3fe3ef742276607d447c682c2c439883c19908da30bc7df92b34adeb1dbac231881292daeee7e2c81231bfc63771c2056c1073c51dda05cf9dd31e6613164b356c9e1303bdba96f71e61006d4ddeb5373b8d2db75d0609d1e345c282657a0e1344f71ae01f15cd6b30cb11ae829d08b41cf90df4a6101b385f7078c2efd585ca63ba1c23966ebe4b05e314e81dc6405e9376aa4ea3fdc482e9884765d32b29e684708ac7926d9f3d0b977f82b3684ec83346f6a5bdc28a0a57cf504c48ecd214b7acdff6fc", + "060f78e28bba5d6683118e6af769144b26ba000f5f32a5887eab6e440d9777ffa86f4fc8c3d906b5e27ae145e56204353ff1b1584e52e8e96c357ac765488a933e3f838e4f3a1e3625606c47", + "342379c92bd6cfa7fb75f4cdbe304583f32062921d787ea5fc5077d2056f9021d0d2037af65629c55388ced8bcd1b9d4feab6a7c17332945a16e89fd57ec290ff5d1363ee6ad393e64dae90b564de5e2243079ec9f2c9409cc5ef5ca9a8d486c0882dd4b633a2c10a00a3c4a0d10a3f4c041437bc911ea9055154baf71895ef451cbc4edc36578dc5c2c3f3fdbf80b096c7ad4e22542cbf322968111167c5b9f2f502eb044be22e5f70536f75ae48737ddc0a5851681e84d96d0ad511e1b71", + "05a3f187420f68fac4b231736918228e41a28e1b4f32953e8badca8cd8f5755a6652284146a39a8ae7c8b4b9916d7c549670d2cfa4b484ce58016860115082d3c9d2545fc0124955da92aea5" + }, + { /* i=4477 cDividendBits=3021 cDivisorBits=1592 */ + "0da118d2e3586a13cb53492d22be1713200f3bce03155239d63dbf58f7cdb68d38c61a3f4f90eea1e21a7302946307d75be0c965991628bf451d0481e4ef691dfc342e672c3871eafa3820b4d01e4d4005ff69028bba4bfae69af2229b42e20d7f33620390c272376ee9e5edd3e4b3bfa1b19a68dd8fb22808f8e9d85487655c09da0f75873dccfdc56286b0caa863abadcaf7ed8ef42f1335ef9e0981bafe0db955e8ef50de1e08db683975dd9c77491f8f80ccabcb517f36fdbd634c3bf7e0a7db07d40890b6bda7ae72653c5f0ca86bd0bf5d09a64fc26f99c95bf9f8d697e5f9f8aef87a4651ac38c1bf7fa5a72f70e23512da20639f28e2513609996eaf36b7fc4e4bd21be6e753c9919b59d9faf179fa5ef9dac8b125417f7cf3f1283aa263f894a32b8846f240f27f1840c857b9e377ac8e2121fac5ef13d19dffbb1c5a62bbd446640058ae310d6129ee3e98235a8e2af037787e43d55e73a1a705a20dec715a74f6f966911e4be06b581dad54e661c8b9937fa97c4d", + "ab2275b23854224d97f5d5ade0929896d881927a6cfa2dd9af15c88223d7d7be07762a06e3dcca2e5fc50f606aa3c18fcfd49fe8b6b64974f90ffa6f8ea94916052f9e3223c59b3e45f8d83247bb0501b5e747982353c0b54056a845f808e0cb453c100379c954238846ce5f148e68b2f17e87178848a03722538948d6b58c55f622884aa88a6ec02ce5a2f942f98e7c26d2e0dd07d6bac687a20cb4dc3abe29209e3d615553abcceaf68d4aee797d4d2bad476346b624b6627b540521a3b7a746fcc9e4bd0bc0", + "146355b801c2b2be46272c044fbcddc565ed872e7387a3d547a6264a61cfa27bba78f8cc24b81cbe676da4210660e0657bdeccbd9343be62a26a9dfee05ba23fb3b363434370aff8c3d16c02e84e816d5f1e79db2b9dc7a1e366113f7c5108a4bebf5b4118200e836d971c47370ff471f4b5267d0204c722ef0fc550f560691bbf95678d56f06cdc7efe8d59b2b8bb43f7bebcd60972db298ffb41de5459ad8876d4c6ff567761753ad62b0cf585956e6ce92a", + "6f7c059cc79aedf64f30cfebc091bc290d0418121e11fc1d71320a6c3db5a2281bfe84fa773d5983c71ee59698681b5a61b748c3fd5707bb359974c6ab1f45cdba2e6b361bf6fff32b3c788e4869a0fb9e2a63f9d929c1c558b52f31df708a182d6a99049119c047d409cccbd14e9aaf3f4009de7d054882ce19d6b2ed06265632c5314e94c96992e9878273a211b9bd9fdef84e0072cbffdf8c55dd572da9cbf54a5f325add374853e1e69c5b147d48627a192008db492077d1b12e20fae256b72db673f3cecd" + }, + { /* i=4478 cDividendBits=3391 cDivisorBits=1570 */ + "35830c74c262fb6b8654a1bebcaa775debd23d78338c16be8700df023a9750da614eaeabb25d323aa7987e7ce0711db81e23597354491ea237b1cb36bb1b3e6ae6986f46a02fdcd7b704db05d5b704e6a8076de2220533823e4b412d87da6be5731c7a5d5e171cc4c746cfa1544f34d148d5df80c05d92d6252f1c64629c7e615006f287dfa8246ce1fee78d4806a385f05c24316142a2552a064314cfdaf01e4872803ad224f6c02f88508e6f098d6488cb8bf0002149962e22d3e2c633d95ef5f2b7c3d8c82e4cfbdcebf25a0bfa5fb14e9ed942df79b57bd7bb2271397d19804211ab0c9b1756b35b7b45fc4bbe3115cac07425ad84449cac1f91614adb109f6830723e49fc41d654643434e07dbdff1c6a07bbb909a6117cedefc2b0f9f1d9f8c3fb8e72dfb746502737631ba9f5c112502c5553ee84212627b41a7fa160e9613a626ffb41e167543990c41c3bba2879514c692784779782ee7d7b7e158be2fdfc7f42edca1a23ed0e748a7f9fce34c205830ca0233e537c2370fd7f8a96dbee4c2f1ce88d984fdbd664b08af4b84ff33b38179c80a7a0cf089a5c1d338929eced158c83d483", + "b429764c9e433f4b6fc09742b5b513d9feb0d6441ffdd05ebe1e9e6066d5f11fe60797543d6e732ee6c50587ccbd6c1cfb3a9840ab64e06186d8def89142f6e44ddfd9ddca71c7b655d06fc2367bac355251df5748d4b2583b76261e3147dbec52b88b1243b0c08c04b0bee855a454e4efefbac17fbae1e59660c65633b706d0e72a52afa1d55363f868706d0fdf8cf85d68238176a185116cf2959dadda45b884b5baa8105b277cfbee3d2acf8e5bbb82d8419b782e27158e1b08fca6b6dc6187def505", + "4c09939af2bff80052e1e76ad73cff5e48aef392f405f04dc0d513add014fe6d8478a7ce9537daef1631975889cb56ac76fc3d2c0f27d0c59015f2c930e1bdfc245e14c062f5f91a2d91a4ec819971c2c0520da031971cd56ea792dd6d7ba4a9a32fcf0c47df1a229d81900883b4ba5ad703f558ae012f98a0cc464a50a17ed0cb08f1b1d479016b73c746d919f204f5f785c14b5c8a76908a69cd27d79b5cd03fe1740578724c0fdf934203918b916d095149d31986a2a357656da51bac203389e673f865d7d484f56215211629c63ab9c3990ed963356751b4bd2239b6a1a7ff13db32", + "49676eaa8844d6783e752d2758e06d77c14e0385835bd287b2e933d8c8dc7d4e2bfcb7f1bb76a18fd8723a3dec77eb41fb069b854744142a922cd75332829628946e94058c42e130905728254d5b0ec84bb904e9a7fe7f2138c20aaeed494b0d9a2d608723c7833d0023dced78643a3813a0972cacabc044c4ac0de257a0a3b0f1b2229b66a5cc62c246a6dcd181b21d95d48b7dd24af34ac333f82d8a3e8b812e72a48c0c1bf349541aacf162ec2ddbf0331cf82d4284907bd537ad81024bee1cfdb289" + }, + { /* i=4479 cDividendBits=1347 cDivisorBits=1215 */ + "066af84263ea06895a9813d94156f15263453e7df8ff053810a5a7d7f176643fd4846a5928eb86439d2088dc18521e936644916eff441cc24afa54ec563635e9e9322014f075e475bce1dcbcfaa1d113fc9b65c666aede540c23e10da2941d26acc342d6e5dbe38c0923779e9b474ec4af29b948314dca2757c1b1bd05be6200a62a1d32658b425cb0234f1df02b0dd0abc7f0de6b878939b2965eb6b1a7eb0b5f7d07278283f9c871", + "028fa9ce832dac0643c6c9651081c39168ea9562d9d489ebd1b6c55677fa671f7d8018db36818d4a151f879ca9fd23d10e84edc19a8b917ce434b86cc770a2ba9f3a59fb6d70182de7a29461bf954f7be4e8d820dfd6d78a4229980cbe86256233a9f526fc0e929dea9c0b95ac39aeb3d3e7a858afc5e9d3164cdeccdd783ff27df057ff5f649e72bceff072d4c2c522c59ac262af622bd4", + "02817cf91fba83db13d0e386723579cc2154", + "0140cdaa700f6fce8098de408d48e1d2bb8b857bf93fb96cfa29f52eedc450bf3c7928dd981b5f021a41da3e3069df709b319b51e1e0b58c8bb2b032049c26a05de453746518e243340f935007eb644f09ef79d5ef58c75e5a750a70867388cda2ab4c7ee117287d7c524d4240a7c4dfe2ee5e3bb7869d4a412d67a806285b7e18d60e00075e6e4e83de66ff5d56e04233d802af2f2d12e1" + }, + { /* i=4480 cDividendBits=152 cDivisorBits=139 */ + "291c4df5da8cfc92a7b3bdea174127b0b18515", + "0479589621b8da23514605e58f2c8bb50412", + "0930", + "01701284baa86e2d0067bd03d7e4219c1fb5" + }, + { /* i=4481 cDividendBits=2315 cDivisorBits=1251 */ + "023258d30a476236db58901cc31095506272a044ef8022eedf3fbe3741b2922531ab4ad0f94b8a59e4c9130d3901218d23de58f263cbf5e59a6cfbc225c03784c62459666c315bd56ee4d0d79c3233f9218c245ed793e8404a7a8916c14e0812960594eabd3e640c772b96aeb7e2ad0615654ccc4b61015550a7e04867a40171ed9b7085d1728346f0519f7e0262c5cfb6925f4b257c4d22a56830682dd1a8a95f33e46975471ded1d91bfdcb647ea78e2ec6d29d9d10101f6336410e22304cb0062dc33499b789c2e41bea086eade82a5f6a712316e06c0bb7bde45d08282ac492809fcb2cc577f9b36dfe9c75dda111b59912179442f5b715fbd924d62f284522d0d36089a6b6fefaed45b51cc2772799b90040cb26d46ce043ccadd1b5cee3f5d", + "03590ed46e6691e489b09880460254297c13af9f25d2910295aeb52484149ff1d2b1bfface228ce225e03d067cca74108ddac9d316a514f30fb260fa6fd56a5e0420056adabb4933a42279d5b0c5a8e734a98106b40063b0babcb7e7217690c9bedb85511a1cf80cc2910c38a380855638fe502e26aa64efc80786c1199a3ec45ae7d58d7b57bd4cece6ebe6f92950e5825318e0c4abe55ebbeb327749", + "a7f88f671ad9c2534a52c5106dd3404c3b71285dd77037e5d8cb6187bb1b99f153066470ad8256db8479df6230a015dc5521e0e7900ac48e0af3d2b823ba65da104642c7a22f4ed0e9a8eacbbfc9e702a68b84d1b37486e494553fd80be3708237e5e873965aa60456ac4549e1f812b33e0e2d6564a3b09f823bacf489eb480f086045ad05", + "029c717d8e18a33c69b03ff82e70c3686710f6fa753ceb7f896a9cfc625e92ec6fa88806adeb1578aea429714368d91aef8ad190b33181d5a213ad6bdc92f6f4352e65ab1db58f1ea357380149e870491f3a114906d7fc6651f2051334ee51e64f7832ae70b0fa49624f1855869e4c0fdea14404f77f324f52f2d9c7dc7b360590a9c2df741e0905e58504f3fbb595f21ac3344d400158b2e123a895f0" + }, + { /* i=4482 cDividendBits=2404 cDivisorBits=89 */ + "1e45b72296287db142521befbb5ffe2bd8d16e51da8596706d6e51253267e37cbdb50885ffd9c79a13be7fa419e2a524801d0391501d6720079b1447117fd2c03ddc8710fe297cae18e111208aa4b1d2ed482a7a69a6d64ce69ca6e419846242ffd34e5e1dd71ff98bc8637c4d1fbd5c2be0b70a5b228fdb2cec5939156b00695601777dbcf01425fd3cbad9b54af14280c1b21eaa1803a0296f0fbb6d952f46f847441198f8a0ba50ea025c778837ea61fcea0a9674b35e84951f6c61faf8c74b8acd6a89763ed7386bfe53df9d445c5d456c24a14737ea7dbc0ebe601fe93739dc06cea031b6034de8adc7f5af95120aef893e3e83504d2f6999b69c133b77705da271a6bc1254052fbcc877fc36dbbec7422a84d00e2bf5bb876aff6a6207cad9f49eeef1c3769fa56ed0", + "01c0cde0e3b0421ed10a4b00", + "1144793823bb46a2629dd0ed448ac334bf3fbc07cbe332224969ecc7e82b4ef6cb05fd32f191890e6dd584d6bf5ce3ee202a8b76d9914feb69b61e7c8c85782a384717477918ddd9bc313cffb0c87d6914631e3c14830891b57d4dd3b92aafbf73e2a7c0decbcf4d85ee09e9c8b11b3af2ebf67f60832a9de5f215b37a5556a1c26616dd1b527481bcd9f4a930c7e4c231887cb31b6452b572d0c41a65a5ae835e200f2f4683f1c68b319620ba8b3863dbec49440ddaec94825a8f505932eed009679cb72932cc99ce7f5b3e5a9d545643d772c0d15fe591469d5804b1b2076c0050b5ae61f4bc2f4c208aeb6fae03dc05a9be90367488b888447d8738d0a6b014e4932f9ea9984991b9e851e4f470fe3c75a73f059db2eae8ee1e334b3de3d86d", + "01bc1b1a3703d2f76dfb7fd0" + }, + { /* i=4483 cDividendBits=2994 cDivisorBits=297 */ + "8bf81eee84eff7b8e8bc4ad790578c70e0445b6dc62a40a4bd4df65b45b36d8a3da2a97e993d9b849499b52cc92e3cf2f14ffcfe6fc68fba0a658632c204a2139447753c56382942849fb3a30567abc49636f095ea0dd1148f4345561ea65bb99229dcdf8cf2995f30b40cd06e4a701d3aba9011f049ae86389450aebba7f67674a4ce6c16541aa956b3a1fb53840f59bfc48e1fbd8673b148a24ed06f08d2a33f27d04e5181167af167fdef66c7923f2bff270322e0678c88ffeeebd6ab64ece8bc575445f02fe663122cfccb8853d0266bf9436a17b540320e0ded9ccf823ef768e8eeb273c783f90d1a41f5889522b2b4554fff9146560e00f11347cf75abb0c3805a9ea914e37efbdc818d7a139861e7a7c3eaa4ce22491d3534ab4cec2a462baa310ad54f99117d16ab6ebe2a4da97b7601e03ad062df1c8d5c545c6a5733aa1e8250e2ac247bd06c3a10d9856a52fbda47bf4bae52b3660b500bce2e4601e058ff1b1001910ec3e3631c7c04ea84d70dd4ae64", + "8637dab029178dcda37f39958f34d781b3d6b5e22af4e0adb699aa1ba9bf0796aedf5e56fc", + "010af81dbd644772511b1fa72381367506d1d88f4ce168f48e815e5013efdb1cb3603fc75d80bac3ecb3b36de8c1f42423e9d015b8d12777a0b707d2e6fc7dc503119c3d8f3cff5081b9f0bfdcabf057de65fd4b7b7dd1935ce53ffe07e640dd478f0d7c56fe7881a0dcc96654073a11d08fb92ec4e49b9ca1b1148504a1ec749c49888ba77697d8be7fef45edaf1de9ea9611d91f7d3d55af5cd5d1e7b6025ccfe6f1f3ed1f7103e2095b829b27af4a0d95f0d379c1b6e18a0e07bbcc877207b3b02c123e1bf48801068af891e48bc42788c473b168aa5cdccfa012c4344e635a72394bd306084f2a4d912f1d46b9ac4a8f8691e8abea67cc13e6f87e4d348d330b328b23930df2d41bd66dacac9ce5831dc2341f5f7aa4788818ef1b768b28937949e47b2ad9d0b7a42c8064ddabd427787e041f01168d813c83fc7e2b39677d769891af4d79555128e551cd67dd41c347", + "4ac0373ef5f4635d59178e8e7a03e4e3b8caf009490fa7924e5955089fac7492c29c6c9a80" + }, + { /* i=4484 cDividendBits=3658 cDivisorBits=1197 */ + "0140de0594cd0bc9dc3ccbc385524a40722584de4d7c355549ecc59aeef37fc37796e23d8032b859fb3851678bb4d516d06afe4211d8cf055c1becc755c68a04515c2fbd07e80de81b0f630d8dc107b20964fd51bb6cd23906d82e6199eb6efb05bfba9270123c542195a251786da52a360f94135caf446fc7dcf3368814284c32317745cf88a86552bcc4b3adbaf8e5cab5d3f78853f873e47f51316f5e33005812aa6442b158f629402a34388ab61587edbfda291180325f095e833e86c0e6676a366663c85304225be6d6aaec5e809f80c1e91e491d5f84d080b5f900c9e17078370b5aa2bedb88dc42c3d04e0fe8e43cbe85839cccdb7f94ae47aac1b84bc4bacf16deeac8cb1925109393079af38cfda411695dc0b3de8ed9431657c6a2e8b22d5d3f80c35e2718ddbb6d5caca997afe6edd16742e2ae4c6aecffd108454c5075a43ba7f5dfc021d20053caec984acffd12879454ab3e9edef1c053afbd36f61f33dbe0785c7b599324d6a78dce5afdec0f5233ffc71bef96deb1dc68edc72a953e4769157a1c14586c049497a9c696f92a2b967e8a7b3dd1155a355361733465954868d9ebb75cbee9027abf45be0717fb456f843e372c38714d3c7a06bdeec3849bcd866b5cfb", + "13b6224817e3427606e99999078f3c0f665b29c9c82598268c6100d2d460da72cc378e30fdf8936bd7828c8b8712e21afad00f6ad58a6c382b592c031b1daee61d663a7905d1f10b0d0eef57b97a985cde85955efe029e298a98cbf3a74e8a354b4db68f0293c33a214aff08ac909fe4e4df9798653bd63e71dce515341049c2a9aea0b3696113ba81e48289e92a85ca87caf9a3b71c", + "104738b2433333e67a8f88acfbff7f0675e7f5311ac7db359acd240368124ed6de78fa1e2fcee0078fdd254f2da34c0f7203e9e1a9e82d25dd52d9c4cd65091500a97554a3860c52ba86131d100685d9a74539e74dfa1974336c1c9d33e077cef5a86be6ecc741c7a66b06e0dcf13db74db09a32464a5d368531f567d6f74d7c0250ce412f74681f9a81d7b93ae322069518a004d7c6186748a2aad37dae032a7d043d1903eea990b0bc55d1d18addcafcecbefb560bf6c1378dc2e28b12665e8dfa54799d72ecac61bf1ba442ebbfb3de41d638d63d5657f916acbc805da19a66f8d9b3f6a66cb688c94dfb6e6664c49395cf3291563ec9d709c97897c7b2232c0406ed8f3d73a719dfd25386f3a1621f43bcc286d27325a665d3208cf8084471e94c64b0215ce4f3c32350759ad6d74f6fe5f1", + "0f1aa031f30b5ed500bfd12f3cdcbd3baced25039d478c61ecd6e398570b7373f778e709c20b13741c11cabdbdf3427531c95aac1ab13102025254987385173b343c8978582da715dd1db247ae502309cdb97fe5c7122fb5beb64441317458517f10c7375fc8fd32c955d5e0414bb11f0166cb12d7169041b15579799d6608a89ead4b6d1a74bb3126216d91ec6da9ee4067075bef9f" + }, + { /* i=4485 cDividendBits=3230 cDivisorBits=1571 */ + "0a68f2889e6ed69eafe7cb45e749399ba446ca1063c3eb85303b09ed3aeb6a7c37253b486a445cc0f7cadb9d3603a278ac7c9fcb1dedc3e8ca86151e1afcbc47d1d2cd13f64c3b2eb59a022780f71075fae786fd28f414e66e96d07a2f4f3bc3bf1bb0168ccdcf4532d44e464bca2a9b2de9108785ea8ca34922195ce5d29f1a37926898a3f249b0e0eafa9911e0ebe07498aded4bacc43f982c238fa52be45bd387958627b85abcd22a8bae384223cc357057ac76016d946ad9f05a252b65aba67abe8d3562624d8eda7c5797864ce2c1f5fd66357679a0f8c9412729bf58b65c6d70ba4048d2c1f7db9824198a7d711560a42fd84a5eaf882a8f1ede997820d87363727eab80f47392ebf1c65e65dc6381e03b34d2b6c311af79ee1b04775037bd035c7e93e744ea778550a05ba5914eb64b82c82063965875962a3f60fefa85a61f4111f8cfe77823934adf659490df3fe8a10a8ec89edc6ee1bffc0e50206b0bc4970884a8eba3955a39bf430a663ac543b89a12ebe11554eb82cc1c504d78a9a0dd209def48b9612078a3f3d33b28f7fd89", + "0645b33d42afcf4766a5443a9f895ffce7230253ffc68ca4e9252228b74ebc777d80e80fe281d04a9f4317fb8944ee8ac26fad906fbe04c9219ac661bbd2867fbf048f143cae65049b0c20f6a0e938e8a3a00b56b51da93b62e7d83692920b0fb321873257d2cf05fc631463d5b6bb7a931e8d2fd99684e04899f9a70aaf6b0fc49235fe453d9e1f1230a1206c1a1f82ca8446eeb17c608648348f28212b140d5d120cc21195d9022a7820e77cd4d1c5a18022472be889bee48113c5bf5aaef8dfe96972b9", + "01a8e0bf0d048afec2a839973f0811145fc14865e0695bfd4b4ed19dda7a180f5456199f6fe8aca4474eab322b98a56525f8a050864a6e4882a183b8add5d97ddfbfa20491836b70a7524fb68a68af3ddc91d2519fb500081d18011b020733f5cfafa07685ab5fd03c57914d1accfb883481ee964ebe3f0994fa0b560edf82bb5799233b6ea54039dd9856d90e271f4ef90a27737789aa316ac4a70c73c6a0152d652f5946ed03b8309ed020c2f279e4888ddd4b95d0e89a554e6ff3678b9a46232c29ed4beb9647501d96220740d978", + "02e231e38bf58afc55db84cd739903fa8b92f9ba79d165a2f30d8ce62009990169fbf30cb179df1d609d8f4f8b461a481cd150fbb79db0e53b02528ea79ccdda2ece2a4924e2373ec51465b3b2c02a92cc8cbaa035148584314d89b357d819efc79156d5da22ce8412fd67ddc2fccd785b5a2480391485ffbf2facde1fae58a611312f4c88c3fb67b017c5f2d9b5733affb5183e9a55958dc99bfa49e3620a6f4cf81c345ec4e286bad1d21d606256e09b6a732cb0bf0065b90682e9bfe16e7e59a00b65d1" + }, + { /* i=4486 cDividendBits=3740 cDivisorBits=3015 */ + "0aa801b91d22a234395e6f82e4b58dd8039f7b5862799eb30e272ea97fc6b5a44fe7b0e221c93752efb9bb7d82833017f92e315d621d15c679ec4467dcb5e6ae156d64b45cc2a56a380a70fdbd9608ece1099a1343520dfaa43a7eed78310a21bac68d979a0ff5bdf588c6605bbc658b36a055d1c84b357239976c806a028c45178db4fc5f510a29a9b042037631d50bf0c4e95ade713f8dded022568614aff403c31f81b494241492eb1538e10a53aec5731d0d2471c08b607f469f901ce203a9da31c87b78ee9723245b9378ed64e7217f8c385e47234b8c01c556c5202a45ec8753ca55dfcff3af81a927efd96bbee04ac57212e7b67afc37689917baa0206b7959c46519c3fb7c9a8e47677d584fe5c0d220fa4a69432e5d1139248a018d87b24da1c8aa9d09044be82a9914793b7207f35eecf2b6a7191ddc397f4d8252e613523b74412edc997d75d80e7d4c99e63e980ff8294737868b5c1afa6af945d32ed6aff15c305beea823ffabd4a39e3b9b0090a5914a968f7174f2c3464ea127c68838ae7574b62bebdcf14030aa8d5219d4d024b5c6f513dffac957fc06cb28850f59109f21bf37a9c4c1831814a7d65faa805307194ee296ec2e21acaf4387acd9b4249e9714f6dd23a4cd925bd9b67c6a12", + "7450d8624895ff2a18f24d369838ad1b10564a084211d0b1082caf1107daca127270601223354cd6ce75b407230f0eef85ddfa43685fcd15d0695eec554244b349e3c21fc51528e615857b42d747d410fb7543955ace1eb6eb54b317e9d606ff57b9fbd758eab2ce9447306da00fca7df644e2ee56b94f3a6829141a337d8d552d93f68446981bd4fd7430b61517aad84166ee05e7b02d17b14f21d4eee6397638e2f8183b018e9b1f1594b1be5038f6bc6ceec816c0e1414255cf6005816050e54d69014d56616a92f5912e6198c9aeac8505bbed9415b3986ff040e3401c9f10537a5735bc882610dcce230d1e9223356e6a6bd518050d8ba90bfb594fb6967ed4dd8aa795ce2462309274cf25efd0ff079820a4f442b47eb6673726d50230dc1cef9595d5a9d7630225633e98af507ff69cf2afebf0b72a442c1ec2b8ba72a4e46fd12e5438c830c8104b29f9d4089e5642cb6b0c19f593033831a2d19c60f18252d9d52de92573cd31c9be235ef028d56a9321e8113e7e", + "1774153cc0511d9ca21948d6fccc7ffd49bc516627e8e8274104a951ed63eacef683e7124f9188a8730ab9a460a4a373e0edbef4ac3ef0ed062950a72b3d87489ab42a5e88e68316e1a250a1f6ab7e14f49f0314d010c17877340a", + "50938c3090663c1e9eb0c1c16065d50fac79aed75af749f4745185d11f9e36fbbcc33d6ea1bb1992e860d11eff0293f4367ec821d08ad9b7eae07af2419f1d2c4fcc70f16dc0edb79e0801a664d034b81006b8d5f36e4cd92781c99b7645c24da02f7f2b8753aa377c9628db1b0973334d48d6ad14c5895f911f5301a8f6c4f79790a23b06304eedde3d4067f5a6dd2cf4f0c5ddc23d0078859774d9aa578a38434e0c4932edb1843fa158128fbb7e18c8d05f00ec4635449fbc04876038745e03dd7452d5032585097724c94c90683c0f4ee156e99e41079e5b67b2735fd087cc1ab0a3fcb8cbbfbe07c613d8a4f7b98880cec53a7ab85fe4e2366d4567ecbd363d153f9c6a301a3738b0dd24009f95985f268b4f6b5bb17131493e9600c642c04ea07796ddae881092df4ed76a8b4215de9d8de7ca7c056ede6b0191ccd4b2fb992ba3efabffcfd73f14d19ef3073359f441e3f026a7abff1cc77c74498eee7589cdecd682bdeb4793e890afef055dc0e0b2c716088c6126" + }, + { /* i=4487 cDividendBits=3746 cDivisorBits=1416 */ + "02c5c945133acedc1267bcd1167851cb552c3156cbb0304b29edf557c62e9b5181d8b6d79dc5ae210f1f8ac2f2d8056ca60edc48eb80694448cde6a864c8b71ccc25023b2fbc1895da8ffa0e5404ad3b1323e47d96d427ed816da88f07d26f44c341c9af18d69a110e242b166b530e5b592313780f0cb4ea39033d0fb491326a74014d2681f50dcd329c002fcc7d0e524b2712b3a8dfead1b2de25b42f1f0828c12af7e49d4946e0f8560301481743ed5f1463fc8f2919e418a1ddac662bcff35287192ff342818dea0e8020bb47de0f183c5db7601b463a58436ef5a84f3b21d7dd9c91dea7574eb4d806444152a4e1eec3bb67be0ec45b08c8b48b1bda1ca17c273221dce4713d41adc9d74eb631711eb59e64c653bef5696b227223f70961c234fc5c7a882312a144d3da2c097515ea150036b99182c716d6c2bd6da348988b363437ff028b1b74d6d39c934efdb10179e149530e47977d2db1a725b2af58ba20f3415db699ad36bfbe2c7ab843ca64d00abdbad27149ef511c2aca23a62664a8678bb9fd17249906748286742b00f47030536681bd4a01707f33f6e328b0712fc3f99f5428b39b8c97c69202135318d2c536ba4c9420c0e219c337a487dedad24921d384ffb21738441bd1eec96522ce2f3b58", + "fdb0447d542121cde184135d719bd0f677681cf7e52b5c6b83d1487611755b614d515cb0c593c6ce9a966202ad6078a3bc191bc3fd72a98ac2b09bcd228bb0d4c1d5abc0b104077191cf96cccfc8ff9cbbc8a785cf845b2e342ec5027e6c540981f397c18e0fb5c4865bb69cef608463316d0f24f8d870ce7f326ce713723cd317e3610a1c65e5e6e5043312c659a7f700aa34ed1476b368aa865e83a48dff5ba32402647208150da3c25bbf612461bcc0", + "02cc40db6ec9aaa91eaac3750fbfadae8fccc8b2214d6e3f9a3c7d79786ac7900f447f082a17658a99219abfa55a2897764070a25305dbd2233a42c6302a597e075a126d57d556824d95f14636b6b3d756ac9af78dc62295f17b9df6afaf3e2b956ed50cc08dd86a90ce5792925c19637d8ad27bd078105bbcd1f0ac84b8d2f7a58cb16043d4e8f8f03ccc8c1bbc5ce1543a1008f7486e9fd5372961901a090b0ffab929a4c5358e5744aa12fd9944ebc6eb085acade724128311061ff050e5f1c57ed853d4fa1fcd7a4e9d88cca33b5cd38f1ae54730a5611d88bdda287f820aabc4e6cfecc1e4b6f23002950c19153ece87b65a23bd94a1117b8e7593a097ae93849596824d71dbf08ac6d367dd1c7f61f4b3e557e4d1f0998ffb65efbfe3adaeb1bb6", + "f78e0d041513f6de52d7d9b781f89117350dee100c5d6c878add1f158b844cd3f30a43b79288cffb65b496bed86ab368409bf32eecc45f9e149843656c8e645a8d3f27d008470eb2dd7c7b45c9b9f0414d12e63ed15c889a5b103d59ed643d50b5517880be93e33e025fa6de4b4c400894ff310d555133e049d543381658553ba00613d38810e12d9b9c5987c659026f8c2ed5e94d5bfd1ab5a62922ca0d46f99a10fd9fd6dd40daf6e58d3348dd8acad8" + }, + { /* i=4488 cDividendBits=2006 cDivisorBits=1866 */ + "097515b4f493138af1b15061997a1cb3600f1c677e25ba4ed17aea2968b973a5cad5114f9e5d1275e05bad0f46332a06034ad59c7cd7738927fefcc022e55dd9d8373d633844b662d4a80b445e90eb003547681456dc2a2e9ff7731fc41db28e9e892f3373e82033069d1168854293d082b9273c8b3ab4b39b4a8d30b4e6ec2405598f6da982449d04584cc8675635a47797de1aeb920eeacdfba05b5dacbb8b4e0431bcc0d1e1321d7f79bbe8b89b0876644af049e3975e99e6c728042f74797f371238c5c792480adc84673ddb88d07de4a29dcb07fa409d6fc633cfe822d9dace062309e540e7238d2c0c7276cc11438281ff2e77fb57049126", + "0144830a4046df9d404c41d38e9e624335a6a394868790346a0d8b70ca48c344fc361c87ba30088af38c49d17d8a4531dcea097d440b379b31c38cfd91a8c301e5bd7a37ec60855e41111975ba155364a3b089e15ebefb56a84b9935b053dfe16fae164d4235dc9324bc8d4afc32515d1d710b5b46e9beeccd0827811f01f851fe24a916f5b5e9c149ca0ae0c5f2dd2d7d2608d23d5c952faa560d5609bfa78c0589ff0ef27e0f21094216a80da1a989203473f99258f03a9ca747180198bbce68f9a3874dc2b95a606c62fcf43b48ae0eba2add54b519910c7fa2503bfb67580a3405c0b83689fcaea4", + "0775f03e0e21a7b33a8247c59db4aeb14409", + "b561ab53f71e801089b6a09c7c2ebca01b44e70ea4821ac5a8c0f531fd27cb3e1f60e8989cf2509a0d163cbd3bec0042a66aafc1d691eb7aadf38c11c7bc2655f64b03e960899036155972135debcac2271c690e1f1da00739e96da3763c8198595e08e182b31c7f06734e614477567fcbc4b7c587cf70cac90ba1152373b9db94c77e38111ca90031711226bd9c2a3bae1a31ac251bb7cbe996642f3d4bf3e7e294def02eb5adbef0eab16becd3af982cbaaf17ba868517a0e718ee0b4c02fda52595f2da9cb362dcfd6d2a570a6b01b068ba4e425eee1a81203fa07f194e498f4e00fbb1275add62" + }, + { /* i=4489 cDividendBits=3397 cDivisorBits=230 */ + "0725daa72d2ece1e165e369466e6100b7e01f798d89dceb231c7f80a09cd49ad20535ea7e61e71685472626e476f660380e4af8c6930e48f8f1f2bac818e0cc44f99ad9b61613987f5b1c4840311a87654e8b70973278f372745481eef8dd8f8fab8011cbca6a22986395edf3e080d934bca1d8ef52bc4b4ba793ef3beb361fbbd51ed3996fcc2e7684c14406acb23c0644d604c595789d05f1c4415bef675ebf799fde88f972e31ab9be5014a16aa2f20500953ce213334088679003c52a4a8394b04edab7b710dddcf4210c7a50e5d45811c2c843cc84dcc292a50d57b0b811cd588f90fe452972b8e96e1c1e6132b2079f4def4224326a1f2fb40cbf88b6ee2729c252752af055b3f54135fa97f06cf62557d825ed5ab699304675ed7a37fafb4b0ae22d754ababa9ba8a4c5264bce2ab9695f54c81664c6b84a6ae2a3fa5ba942a2ea486f7d8a40fc4397822356c364c897fcfe60a10ac0bb57071d4babc1f11811be00d78e9d4f7d0f07364a87e30b4cc5e0c8bce986679a7eedc2aa2cbf5caee3af9568c086a1d937c726aeebffc7e0df0a171d80bb8436d145f98b9c963f7f63d87ed1b6efd", + "275689e93833b87a656dbf0a848535eefe2e331a5fc73d7ef0675f4d", + "2e84222b6179104c2714188554b77302e317a5c9e6c24ae35c8678e1aabeea2a40e0a8ed9ac182e26c671882a1a10583faf70b953d1cff7c779c6dfae625af2e70d52848cd05d5f855f03c24cff14df51ef5454d0eedcd7c4ab47dadd8f968dbbabb5b17cd64ae20e7df677f7564fdb6c41aba66948963349c2f30718816f285171c3f641b3f3be1a9659e9fa0dc350a370f02c66e4e43ef8eeeb66a51c2a2de63a46f340d6ea8412076f5e8b31b3592b95479f5bf24876afbef9b3167ebe2e728f2d65225bdab308bef425f82e43371af78a733217b16840921630cef31ca4779ddaa20c3c830acca9e75487fb8a63a25f87784e17d4b7fe86fc0e18bc6acae925d6f7c477006308d61efaacf91a78944c2e5dfcaed1f77997df4d90882d7559fd9efd5215f36817ed85fa2bba6f78b9c7c4cdffdd7086d315439f3ce78fa8078ee42e4aa1971ab7b1bd58b67fa1d812965359b43db47a9b57d021b1bea3bf68bc1393f7d473aa584a027df262cf092c7a9cf4648ebaaa3f0db842091b2904d47438beb3c34fc612f328c148c", + "069ac21240cbe97d5ae0ed44821ea3f55a266ef4d7f05c0c39054ce1" + }, + { /* i=4490 cDividendBits=2871 cDivisorBits=1111 */ + "635534f0d21b0b5b04366e8842d5c3906126fd8a26467aea8de3ca9a944bc3bfd062f5d9e98239740999db655be429ab2a29f71f6f02233d63b13a30e62629122c2bf8479ec2a5b702e2c6004b554f8970a78468cd2baa6d99ce7760ad6cabefdc7bb8c387d6965ecea7aebd3416b1685f48879648e307650813e157e8f40a830f30e149d3978b1d8085657066be786c4a160b0c54b29ad6d42604299cee17b06addbafd02e0a157a42450356695096be5350756bb74d53f796439ffa79e2bef337782c59712e95225b8772206afb797e70479df6b6a3557091d98e8cd626e43e042d2dda4d4f516b4dd1bc0daecfceefcb6cba146b66122dee6a576ed5c1f2d98b79cad9cb43159a1762900ed467b454ac9de145bdf0eaca4c9f968fc8cb9a47291e6f61f8ed91613c55ced78134991eed8cbeb847fd011fdbec597c46854e00f98793146c0793fe8133c5d9dcc2a58b21cfe3febf780f58ecfeac5349fb27b6b14869b8ff648", + "75498135d15333710d1752c60a2537a13b70fae9aee7c01c228418d6de0a690331c115bff0182d42ac1a5cd5dbbdbab227801a221ffc5d6c26ad8cd13d35c97c1ef2a65b9d64e2d3c1206020b286329f33d53641129f8f90e4feb6e5e991c0b1fdfdd4477df34a79a9221d9e36b5fe5661f3def49e8d65e1f191f50d5878cc39f19a9ab28e4689e7823bbd", + "d8cfc350a2c82595c5c2cb929d59a6ff3aa65b49d04ce43834f15373081347774fffe0be5d429b8668bcb9bdc667908790fccbc136b92d48a261efaa0a81405cc1bfedcbee8ad3b1ea32ffe2f53d13c409c75f700bea4f5616b9b37ed99497e9c5099b6f0e8d76c70a88e8135734065e3929e12511dcb33cb4705c9d33d9ab4147900f16e9ec949f38fa881ef21a4e487b717d3f1a001bed5fef272f1c80421a9c4c72238d531ce398023893ce035c15df97e5b553659f26b89e85186b10ac2436cada56653c093d46c53fac33d94f745782c9f6ca22bbbb8503b6f9", + "2f888a31d5dcfecec6ea11db45948a19e6b03341706bc1f7a491115be4379561ed6eddc234592c2a20658e02f83c7cd5e99d4dacdda289d61651bc8bb4c721dd89654084fed42a80083ffc82ffb95244758d2f4e0c547b62999feaa30d82dd05b50ecfe66c15d791968ac2ffaf5938e593712adb445ebe5efc8100cbcfbc93a33eb013e11f5c2ef3347d73" + }, + { /* i=4491 cDividendBits=1397 cDivisorBits=892 */ + "12dcd262739395c950244a44af7d55540e864a09c68add9b07db7380df550074c787002a00ed6fcc1d925fb6ae9e24de51f81e45a74969ecce226d2b8c57aced4610dd7499e337e5d086a892e46881c909910569710be04eca8ff87e09b91d2612320c73cac68b80f2c46117f8ebfc84dbd61b1455172f1483f306c367ad532954051afa268b418b98f75bfacbfee7c84ff6ea5f98131a8f3ee9c574b53297c18e5ba1da3e62701c44f725ad75b6ef", + "0c62cfbaeae9bf34db2c6e5b7b049ad6170ce0ac713cd41943dff94ce9155de873ddb9f971d4e973c5e4b2d4032a52476647e8dbc49d32941984fae012a821db2d4e9ea7e0902de3136442bbdb3ab92eca1cb7cffa6652e0f5fdc265c85fdfd6624050daf65e03f5a3764283c1d036d1", + "0185dca18bc85242165400cadb1be0bddd4258324cefb29a0371f18ecf6dc41fbe0c6babd9f0f6f4284337282a23260031d63222ca8699e3b3b5f0f2ff64ee8b", + "0b9a539a9104380af3007309a360ac8bac96830d73268d12949d98e1dfdb57d8fe908a73484499167450967497f711c2fcea5aa34a8fc377cf6276f7adc0a7c0ff7d866c7fd11bc4e32beb2c5c31da0c36ad3f534339b077f1aec7443c539d31b26324cb0020ae86e0b57dea45cda574" + }, + { /* i=4492 cDividendBits=4091 cDivisorBits=3821 */ + "07c587250279014446c18e30533c92f3b189e8859ccb973fda171190b379b8c71c76a23e2419f02728d4e29978ea200a162048206e7d5125c3fdb1dbe2610d3fadc418310b311ebee8df8f15a1f01f30bdb1138475e3a77da694ffa7ce30ee0b6d4929e02e9374972d57860bf998f9288609be4ca3492be0c731f9751f7c4ed69bd5eb71af30c37e7db92c887fb139ff8afa331447035dd3ae720ccfa1a0a6e8d5d880e3b56bb88de10fea846c1fd99e5245c4bbf7a0c4aa64f6f998692070e53bdfa83a324cbf4609eac2d009ccb6a5a2f8367b5467a6877df0d4c0884fa33ad95f01be8a3aa40751f1366872dc61f3cfe4bcb298a46d4ee1596eeb03b5196a50e6a30ae0287ba4c1ed18445cbf34e46528ae0e0bbf2bd0b0938bd02e01ff2b436d04e950cbd4958162c488fdfa88d9b1e44e079c8a4b09e9b877072f84cc0f4aa2a81fb36befcb9071157cf51be6765e8f2f2428e664392b53f982ff5453431dffbb9035b0cfb6ca1fdf2b41b7e818c07c83b00ede3f1709ba0c05adbbbcd2be32f56f6e8ec647aaeed90ce68d8e90268be5f9119dc678f66cd15b4f4e6974e9b6660d4ac6cb514ce3f85fded3781a274c51bf12b19ff5edee9cc13efc9f6ecc4d9a86e93d11c967d7812b77f8c54e6d3e481a483639a2498faea1964ff7e39c4ec3bbeadd1f7eae81c80c61157b4511d682cf4baec7c22482234af9d9dc96", + "019ac95624c85f4606cef44bcff6b6c5c65535c77dd5c6faa6480b2d9f94e9cf713d3e08230e5b25e054a1e48397f30ab613a3a8723ad080f0a6d285244da0498fff879ee220bb52cfa7b6ba93798211fa99d6abe2813c75c39fd5f14c5f3540835654bd901a7d25ff831e6670068cfd5b769a613332d6ade823818a6b003150a6d946168dac95203b1044820146a62705dfd5c1283c07c26290279a6061036ad7e471f329f59f5467a00b1e5a292716db0ac4e0b7c3d534ca7824845efeffd28ca4edb23d26f33a53a5c28ffab9ec0f9167ce1e484656a4d95d41b21978a2d5766c61aa63697af1afb3d94fb76c7f96a7b2da488e63b081c8bb36b5a58f84a88780f6f43b0f9b713dddc1ef59292abe3eac43ac090000574176bbb1b9b6694d626e471ae6642cfc3c9db972594204cb4b9706128f83188970e5209ace23926bd7dafff0c10e1ba8d26214813b64c1d23d6e11f67e05d82e949ddeb3d0f6b91ce2c09dabd6680ea2661db4e5b9b18a9684958ea4b48a437136e1eb34f221f47eed9e1088340f2ca53cdd89e6d6ca53af85c33514fd33e1b1558e30e490cb615f0a44f7a6d2b997190a5b4c023874ab6229e4d1c2952f1364e2c747014e48d804754c30b034ecbd72c87d53e13726c390e1ca08e17f8a0103014186267c40", + "04d7dd0d42982f16a5b4c00ce274212cdc1c1c65bc5f0956e6d12eecd5a012ea95091b", + "bf5ee5d173cdf8dd9c6c769adb15f18a72e553b571229f5ca7bfd9b2381d0401fe07a7fea25ab4f8820c60eb3effbbdff21c5e3c86af82bc7a8d24397a8052e2960bd5d7f8d40bce9c31e05d8b778fdb46fb78f5b5eb2fab60aa5e71f47ab0bf67a90345f7760c0167e68eb2531cbdb54959a0d99f7be7399084438ff56fd96405be5663db8294c723bf60caca99c14f28e00286255476de1c268aea6cdec65888deb00481e0b6e633f4252512c0675516a986f5cca16841d3ceb2f50c1fd8552ce61540d358693f8e47a55d7fc2edd0640ad6b088c8439c0df1c8626c17947fa05b45af6841c08b3d8dedbfa98590deaca404924b828418ad0198ea151aafef5b51b8e3d323e7cef494c2c32dd8534bc41a63941db8a0d710af85a0121bfcd972b8f3916c183cd51944a3dca1facf6373acf4afa2755e1333c7e78735d04ac0f87d4218c4e8370ee9fbaaf68952608c16e69c0dc2a9a9f04b0792bd7d1fe2a5b227345bddce8b23e99cdb253d9ee8428b9868f5a0546ea736cb6878e850335144b5b32bbeeac8fbd36cd42a4438a57c2b2cde6f74b1a9abb280bc67e30f9532bd455fd2dc8610836c05bfc87ca4e6646de95005c8e8a3ff96fb2160c22a03eef36ac12955ae6d124b7117798717a02e8200216dc170c6b531a82c81d6" + }, + { /* i=4493 cDividendBits=756 cDivisorBits=313 */ + "0762999fda2615130f588c68fc573145845ed2c78f41f8e8edb05d28bddda90ed61f7f1b34a19f7e8e1a2e86d2b5665d5a36704795a18d7376b41a97fc39e34173d31feb49de6e113b087d26cfd6c3eef93be50e16cd3cc77f4a88e84515e5", + "27bee044965426eba32b70e4679830bda476f6329bda1514a47ca71fd58bf9de792e3bc5c9d344", + "2f9149052d39ef3123e719bf7793af384f040633fba3f813bbb4739efe4c57204d4e80b808847f54c9f68f7af53c522bcc622b45483ef32a", + "2699d065f499abbe8c00e13807d09c8042f4df3c1f1827723adbeed7ab6158f8b5f05b9726e0bd" + }, + { /* i=4494 cDividendBits=2989 cDivisorBits=2036 */ + "02c2c0957c19c62035726962aa27ead0676e2f3d95d091f0c52a29482353f43cc5a3ab7cb07aaa411ce48fa2827a1d522919da3a626f26eefe03ec92f31983c58f7b44ca22f0d4f0dd23067118d71fb041d5b054571efedce9c70b2adc53108b6eb23059917d503d26aea2ffe01f993e1e566dcafd134755c965df29cc9b62dcd9e9e95a998edc052a07ba3e20bb1211b2b997cfc605c54a26b1d4061063056cb320cdd2abc43910f313fcd6ea8070485789ff32e7b4932819471554108bb51c4dcdc3948e7e93fcdae1d4950daea30fbabe3ada03e9df4e07efe1b8ed2bf0d511bacb37186f86a7681b5df4c9bf5f3e22c7fed196f038c78d39198457130d04f4e0040d78be6f1bf26230e3c89acc39eab9b6c2d02b590089ef15921f83ef59423526c7d6713a36ccf39b9e21ddfb396a8b50048b9e9955aa4fb34aa2d89eab8d6276cb9c67a82c0a131432f8ac9bd79fb0d42cdeee00248b5eefee95d26c21e7ed129b5cc34bdd8960ff1494a6b4d4aae342b5c224", + "0996ddce7a5d0a0aa0fd58963289817b5513b5d440722be8766644085a74d136d375be321cfb43c04b621ab3e14a46ffa6e477847a7e332839ff7d333f3f89bbd52621d9bcedbd38b01c97522aba843ada780bd58ae84ebb191db8f36348c669a885c135939dd9129381899010ebed9269c6393e14271056b1ec0a50fa57abedc7d3c62eafd0e686d7de008675b2bdc5be2915b2c4fd6f6b4501faf15677f373070f39c414f77b0753cd7f5fa567ec029870f6bcb94a7fcb33268d7a77951992f60b5fb6d9e267500af968a0f11849a9bb5e9f83fe9c34c62ded70d92b004b63457499c0a358a8bcba02ffbe6839d4f507279e226683bf223f644b6f7ab5c2", + "49b3b6c1c5af7e4fcff4bd6c80043ad4a831f60b3b573b34758f85c76d45f34edbdb05de7c3979b9dab7d34765cd2ee88c64ca3d975aed2f47c4be46b2232696f2b18d9aeb995dd8c40f5cc6715f15740eabbaf977a61eece06dff23daec0363178eaf54d40c83469445f5d9b4f07fd87ef651f1fc0003", + "0429edc41209b519ae720e69ae720ef122ac37ec57d575fa21ed238f9ce214bc8c12fec6f8f4460a1e410a79c268b2a26216f52a1ee2c9d638c94902ee3bcd2caadd9c0469998e2a25eb039eac8324caefdf33e42592ab5afcdaae2d44beda412248d393b946d5841115794b4958bd4679c7fa2ac57ea57f31ea3db525d6e39a205efde1d0b487ecf72326b7b9670913db92433d053d457ffd7034b0576b76e881da3c50b966318b876debe2dc188355e8b4652e90350243e368be02d9adadae4b7432ad9152bbd2c5d02bd0cd7e50a9f0b2b7b343c026b6897c2389efd353385058f2330fc43fe000b8b7d6570b8c4721e46d9e2ff99a39ea4db8674da0de" + }, + { /* i=4495 cDividendBits=8 cDivisorBits=5 */ + "97", + "17", + "06", + "0d" + }, + { /* i=4496 cDividendBits=447 cDivisorBits=57 */ + "41fbbae623834e5e876a3955792c2c27b3508a14f014d60466498d3d9bfd1aaacd3f450332db072f20b54e389491436555d9201576f92017", + "3d946b79dae24b", + "01124e7714b0ea2f154b3e8a7b63959d83b5c74013808bf115ec0f1d446502832049edfaf238f706d3d933d505750f658a65", + "24d819b90a6a80" + }, + { /* i=4497 cDividendBits=57 cDivisorBits=49 */ + "3f722291f8fd11", + "2a773cd05cdf", + "017e", + "1435d30e684f" + }, + { /* i=4498 cDividendBits=3038 cDivisorBits=306 */ + "1c84d184c9c64eb10927df1da1d34870523aa0099ee795b839fd7c0b8eee305a2a606822c3aa0791089cc675c3de800d07ec81b580356b0da2f5060d0160b6468a3b2632eee179c4a5c53d9fe21f5f6957feaf9b46c4b2cc27fd99dcc43faf15be11a9c14bece2a983f7a89138d8003652d92dea26db1b195a94aa573bcb7cf12b49f564f20b80b69365f10949ff8a7ef445278600131400648c85a6a5a300c1d76f1a947486edf156b29a386dc687acb64d545524f881710f451bfab44686b940594f3bb2648ba35e53634a86a5ff5c570200c65f35c1c41f4102d57f1069cf689dfcdba429c6bde5e2f9f323b40fc715cf6a68455912cdf3597ba6ebe861940cdbea215e5895f1a2956ce6d4275f6ba9c4831c8e2a88eb5081e89b6ee2b9b4288229347a1df9924691a898a730dc63d398fdf831e16c6d7e2dfa7b1b9b2f2a642a700d851cc62d8af2ed65e429437fe4f48f94021f027051719c8fb807e847a331dddb54576e3497644d62ad882408bb7434c1fbbb23cf82fe74be", + "02262483c0fef453f00f55a10716a1db846e3deed7579a19dcef5640312e3fc53be97ab246064b", + "0d45516d513c3e94b51738dec9c1952ad78ef1e58b122197e433c3453203fe5783f5701585940412103040d93d45d6bed219d845464eca152081b7196b43513944fa5313a3c8d12d05c7ac2e89412b7f713cb8cb00f8f56b8598337bbca1caef935b02775359cc90ec078cb0eb4735119c2d98192a21e6f77dd092b2209c597574b66bd6d36edd6a2bfbeb574e5e573cbb4829b48605ca53a426c2da9b86a6f80254d691994fc24657c7d00420c7fbafda4d6e6ced5fd51a96ae15b2fbebfee04de0be91557c6a42ea37dfb3fba875eb6f02f43bc233c215e0e37aaaf31a30b707e505e595cb175303bdb29d901ef5d46cafa8e9cf760e309c7b3a8dfd090954f11090ca0f024243fd391e6517b795c108dd19360ce4b3f1b51c1e4356d7ccaa3e69338596847b4baabd017c1c84d1b75be6c99a2506a19093f3df3c53dd65fea871d22cb8c131b05761353ceac61088b7efc3ec39d2", + "015c3af09b876757380eecfa07f0e0ec20c6cae2783fdad3c3ca7d5a236adda0fa1f19c0029838" + }, + { /* i=4499 cDividendBits=2153 cDivisorBits=836 */ + "01f1e05e71a2db5676b390ead1622e9d6f52dc8d9c1e4311322edef9e77d175f42e154638d90ddc0f14b236df74a0d8a46721268957c69441656f0ea2d998f9ef79a7b189d6afaa75e73f6908cff08a0032f14f946a89323994b47bfc5c80ce4c6a79a9d1eb44f22ddbfeca765bc914848ddef4d4072e1a7839aa478cc11c994dcfdc2aeed65083809ee138cede99967c453aba0ea441bf091794b23e6f5b24ad24141d5ea81dafd151dde53c6ef0b8e4d730a2df3aa4843e3c07599f8494cc8a459bc959b6aa80da66c0b96ef7ca57c1b30dcac7be4520d6f8ce91f74a3e701932e70949f042a107e1c792d237d6a87fe48bc263d40a80ad0ea2877f03b46975dddb6b203da03f18f6b84cc2dc1", + "063fa7a79978da93b1899c88144f1d1550be1f9fbba3ad9c1fedb9cfde912d48376e78a94e801145a72937a452d3dc052038e94ded1cfa41ced1f0c3ed7097db776b5b100d603131be3137adf303c182dcddf65b2f7eec2568eaa80c2b03b3565db779d5c8e3f4d410", + "4fad6b219905cdb6e7fbe6ddbee29c4d1ff3fb408f1ea27231eba45219d15ef100e1cc47d115f016e3a5241db9e3b9c0b39a5228c1746f4eda9cdf1e56c1c93f611cbdae86436fb47264c5706424eb09e3049c1f9ab26bf5b24ed79f3e3ae734a96348db69f0a0e9a3f08b6066d7636964f136ab85d41adeb07659a1a813b0905d168c5efd6a2e453e0c46a91fb7d019ae1bc32569b467631cc220edf715ec0d835d8b2ca8", + "02ced655fe8dacbee08fd44db057e563bcd7272f96e132f9f891dabee988b013fb108d5acf8de5e88157d4b6503682b8f2be041a2e441d87cbcf391006756e3e7c56385a7bcf37fa3dae42c42fa1258179deba8c30872dc8f3e55d1433a6fb1916b88db13ee2fe4341" + }, + { /* i=4500 cDividendBits=3342 cDivisorBits=700 */ + "0725a7a40a988bca162d9ddd22fa8b5e7c9d514f8aed5904955c9a3f17af64bb935ca1fe64f01b0e8860c40a97249f131df9680446805febdf413b7d068dd9c3adf58cbfd1ff0364516b85f5e9d50be516d70b139c4771b00b823533c81d903ac3a032c3bd960d30c71af74ce077bc2997c22d67ad8b839649fc7594c8257dbb25cd86892f904824411e52fea2326ec8bc6f9ed4e6cf53a4d07cca6c21a559837e6ea5c36c3cc86832e25ad6bec954acd8e607d365f54a6aa994b48611e5beb9c00e5790fac9ab9a9d9900e9d46b8f6728c939c8747b27b088ab849acba5f5f643aacc709fbd3cd5836d72174fc580c067c16471f8e8a217a3ff5abebc187c9661fa2c34a7c922865804e5de435eadcd2d20e7f4cd938a762e6f2a22d8f8e0844bbbd4ae37ffeda367406f8a58d3e951d84ade39d5a045cc34b47652ececd5450f805c9ea7468d7997bc5d28d7b8a7a33faf8e248bf0b60bda25969dfee3c14ebce3cbe9d53e23b627c7ca912b63186b3beafb13506083ebed9601786cf47ae3bb71b95f20cd05a8f2aab47ef5ceb81d1f1d1e1dd82633b3efd57a9f9cc1bb7178ea", + "0f00f4f8930787cfa08bdf8f3de868ea09bcd69b73004c964a36eaf2e7c23b2c84008986cefb674356ff6e3652c8be47229b0b520090770cd6091d96b11e1fd71417cb2df9faadaf9d3b67a71a1255c92e5322ead00410ec", + "79f25471b00b00eb086ad8fc3092828906fbc232a54986f158312f6d1aaef196d812f08bd5401c572b8fd4879b38a104a85f9aa96120a169d96bb7507d9b68d4c2b07981a9ed528aeebad365179b623b9ba3c9a47f8ec763b12b534aa41f920dc746f0e09991deb9bb2da69b0ffe54b7294ce1ef3951ba67eaef6bfc61cbc040f5f07a25af8701873ecda3a4315a30bf523ce7bd9c25b1d396958db538853c0daa7ec8ffd3d8fe09144685b17073ec295999e96fcc2ae775a9323a7309d6c3f216680c33b9a38b01fc8689e06eb7f2c05abc45ca4971736756aec6b2a94689bc8f0fd1ae14fecd9b8321c7aac7f5508fe2ae541ef660cfc6bcfb18efb189927f4a99009a0a7b4db3ac0432e7dcb72de07e8ac0ae04927a9cf9099be66489aa58455c717805f54885af68cd8e1fb32e5fb870b424e2a6fec5db4207c59db93e52462cfadbe5d4451845ef", + "03e069e696ff441b61d3447c07dfb283c192f841381b12d918f2f93b22bc382d53c47cd4308d6cee0a9c7b0a1b2533708cf83fedaf997345203c5a9acc54e976839a896837d1f415ac680ad44d198c396a1f01173cf61096" + }, + { /* i=4501 cDividendBits=3008 cDivisorBits=16 */ + "5e480ca751100d359eeaa38e51a6f5d9a9052831e6263385bb5a0735f52f16b7a0117985d3d12880c309cc559d3196590b10751f52006fccf612983cdf0e1766be36097194f35ead0412190111bbab6b6eb4e0b37df655f4cbdc82924987cb0c8c37b9e9e1bcfbcf509bb6350d5120d0f8eb9bef3b946275e5fc9867993bcdba6a875fdd2f233b63c2b6b9ba6a3e5871620219e6be218e79c432a8498e9e9b5d0f88746dc689bed70cada08f7dcb008b0fd3724a5ff112a5588fcf3d0e179be148f55b4771f40a4bf8daed7962b92c2c85cbf57245959e9bc3128ddc84f2da826a27fef5eaf8967849f1b487203a671781cffcc1f8902ebcfc106ab3725f2d4b82f824adb136658a22842ff9f04abba51dcc7eea2b43b9487ab72991d125e4779d3b688286c1cd8eaede729849840d9817fabfe3a05da42a517a380360ffd824ae656d1a69dfc642394860457f07d7a7a07e192fc1a6b1acfd5b8926f6380e2ca4ff3bc4492a6171e6ba50f7b48d7d04dff8e225e1e8a5cb", + "7887", + "c840f40e1d0e5af6b93105c4db64d4a561b8cc4066ccc7899d667397781f737b26aad8618959057515f5cc30eda2b67d7521787926a4647febf9edbccdd89e3a3eec7d4bc00260e638e258d5cee5785767b5bb72703e2d287ef245feab29aad42f9f2cbe7a389985075f9f885eb9f90e275fabb28972fd7c365db54ee7bae28210efe0c7c8129cf54fae4e86694e889836e8d7b5500947a43cfcca9f5f187212fef77750c2074ee756ca5d88e36cf363a6fc8f2847e49bed0dfa88ca7e8628d08ee226716f384bf7475e7d1c9af64d6a0627eb824c86f6440b129796923b2d720674767ec8c5c8e50282f214324c8a16cc5a13bf0e8782b9b37d5cfebbd15960cec25e3ffa9c3e2d899aed63bd375cb1916824423c72df5f5425f24244b27c776b372fcd7a73b01b564cab047c0e26ae48afd38f10e5d32216674352ef7f08dbc1169e3dcb47a1092dbe683cdb99ae1b558005b4cb5433c7dba7e592fb1d14fcf69c20eca2efe862e35ec000f78ece5139e505118391", + "4c54" + }, + { /* i=4502 cDividendBits=2695 cDivisorBits=72 */ + "39404615027a335f7892f5c63869a506c3893e52adcdf26c71b5f1a3aefc1debe4e8f32399db626ea47eb237dea6daa8af7f665323e1394542330191f6aeabc6435390865b48ccb6d02d9cdfbc45de7c61f501568b31d85ae23d6a53330ac53723b2a55f5758fd788cc252caa459ec440474a3f022fd56dd8c7e236af345446ab1e7c680d33ed438a3110bb9df98d6f8aa368d431b44f1ddd2e493a2249475aed82aba037deb5725d046cfaf66a466c4c83ce5cc11f69b6f34369e1fbbc5ca24fc34a75f482cd73c98a9f239c0c03701f0fd5a166792a98af2a2c1bf237d39a949fdba83f1f6dd307a8d64aebb30b645f9b326453a02b9a69e95cbab7ec70607462615aba24f239b0c811ff54e0ddef0affed7c9f5185a8703f8745f1736d87531ac3dc9b7c4e9b72648f9c24211ec66eb7187658ad1d9ae5eeea86bd6104371c379fd65787246c48d5acfd511a604929c", + "838b1772f915cb1ae0", + "6f6af7c8ee8e2b2a7ef076e84c85d8baad978d1c91b30e90b765f37ce574c9b222a40258401fd9804f7798607a7f8cce9139be0cee8ee1d53c1f4a64145fe7771c0a637be151958cac6c72218f1a89c51e19526bc23f4239c0eb91eab846002a0568b933bd279d4f14b2a285b1474cbcefc684257de88d4b2f2423c0a528d3831cf3e8ea6da9755f1117c5fdd47fc37e1075eb68f6e0b0a2025db92518928271fa153ad816591c64952883bcda6d443e439f1a9867192b1cb669b3e4ce4e7b73cce9a3b9a11abd5a617d3c8e3735857ff2dfa4f3b2d2e333bc1fdf6ab7b2820fbd3a24b98e0759a0dca95f82db4b138b7c880c1072fb572ec339c3a84c69f7c71e83167930d8c8b56fa7cfbd4b33322ef45ef3bebd94ed2c64885744064a416513d000357e45db2d541b2462b817f88ed7f95ab65287db95fda7a3acc0f8616bec3e62591483db8c", + "1d9951c24cba54401c" + }, + { /* i=4503 cDividendBits=3769 cDivisorBits=3122 */ + "d2ec7ea4680c10538c102edda76b98de11cf5013e0681294baee42dddf5a81b4ce2975c1d87f031ce959d59241871c7a7153bfa74d250f8b33c00f0817010ee060e10c8c9c0901242aa0bbf8ea3e4c3ee37f8f4744382cd4472b5952d385969fe2a39a85a89a0790456e9825137acfeb5b7aae02dff76a9769aa4733aab8e3d5a94afda44a62d1b4ff26129be7a41909b726b527ba18ecc521d9a051f613702556182eae7207de22c7af6f0bdb8a897350b1bf1f6d17d8c0cbd8176c75b901a36207b5b0b825e819e74cffc3f4b1e2f52dfea8ddb37ddadcd686775cd15e93c45abfdf8f4788fe2cc6700a71205dc27f8ad139c3be79a6f4d79b06a65886a37282b021dd18cb004df9afa915998971224124e2fc6ab56689209983dd525c167416057ffa113c4042fe2e5a3fae6c05dd94f8520d1da04d89255aec384b433db6597daa05e62bb77e4581fd50e3134450795e48330d186cbe27b5f7c561409e429387a3c19563b7f5a2264b2d9471890214c6c9ac18fd7f3326bc8d671c71f833f4364d56eff49028706f9e2cc5b40936a84f8007418c9ba6c511fb94727221414e238b2b9b187ca682346d7927dad0ad0bde5a03c429f82ea35da89bbb49b347429c7bf104457a348f2d8aadf5fbb9d383af610d3073f3", + "02201fc75c19e717752a9a5b78ab956dde0619b9c3a17bc77a24144231c006d54a94033df94bb60ccecf412b2fa2ca010577d30106b9be06b1ec563d0d82021a9fa4912bc8851ef42e90d8ec52c53ff0322fe98b56da53b57d49aa8b2b0668e5796a1d1013f8c9e811daf90fbf209b760f16284747ee03c32e7bed10b9ab23b35672ea10fadc4e3124953a43120d5b7fef387d5c20eece4c6c88b0a1428a3008119b356847c0c66576f866558b40d5224a3578b699167204e210e14031a4744904c2b193ec202d9f52d192b3eaa51c088ed687a8035fd87991a921d51f437a3e1659b5358590844b8295e2ea86149d6e3144b0c46e2b7c031ef6e02e73e3db4735df6165f0af50561d13d2bcd85c9564df861a3eb3aafdc722f7ca8902fce73f3d3e472357cdd75d2c99d1726269940bf818945f58f7241637ebeeeb65c30e8224149c14037a44cb843d6e01565ad056150f198a9d9e48517466ac52bd837345f39ce57b2940291a83368effbc194be067a7f95139cf724417d35e07a5ef69a8d9038dd5371403", + "633c51707303c227c0e1db58bd1ebc1a9f019065d40548c241753cd5b97caff2e50008cbf5162344a18425a960be5ded3e9dc9b7a6c552ad7af369a7e9c261b92588ee5b692229428a08a23616f4e62174", + "0118d0efa7c589fa38bf8824d015c9d47b689785d1e7230065251ce9e1be305f92bd2ec9c9252fd0c3bee34983024b69471e8b9767d65df3cddd194ae8513310acee32677af5119f45a0310681f0135d169aa29ab22e5f8af2c13d98c20c1edee0d11bc5c0a7d1c88d4b01370f0e6ef43f7f790227f80cfb4945e636e96da9d0087ae20734959447471da5c5b208fa5ac7661b9f1dd8900c32db47e90527bd62d49cc122a4b60dc2ee9601f582058dfd27705a57f17aca6a18f7ecefc4a5b83feb0a1beef28a619a5a91a5dbf5e4876727d110fdb5d141742dddaac274bd9c3cacbf0c0c55bb7d63f19f0198f400afaff6dfaf0da9c9f0e8cc1ab7c2c4c1aec76418475ca0e2d38feea4ee9d3366247d043a8813fbb1d54c24a308dd9999e92034278cee952b0cd15ae6b2937ac7400d0e6c4b6d8a75dc4671bb8124cfba0217c45b1b6bf16ae898a6fc1ea71439b4fd2c92f93f6db7b8f358843397afb531183022dfaac0d6161580ffa5900a37598ae3582305a90cecb06b8a674fe6e876443861cf7ff4ff97" + }, + { /* i=4504 cDividendBits=2062 cDivisorBits=988 */ + "3529e5e3d5682938d49d2864f02009c79eef2ff22411230879ef67e8d2e6fb812ddc312261845c8555b0813763816684a85eeeb1b72addf5589673c8b9525d6b5a4e35fcf34d7be0179d05f4bf788e32522ba9e355c874f29dd67120d3f8372c68e9db14f4373978dbcb4a4c0b07749c23087039fae71f2b7bb60e250bb0c1fed5e19a5d72933fe8c851e5e7236af1df44226aa50d769e485f7e0d79224e3f419dd0ef2889187bb3881fce2a879813614b36f9e9f037f6680be541b6e31e60fc139db9a6a1881c65fc4933aea14fe021f23b56dd490eb9cd1a99d793ae69defe8b37f61225a96e9b8310726f002088439a5433a95399c22e17ede9cabe387b361e64", + "08e9125a8c9ffa2a33a8c327ede04ccda41e7a53022946a986836155377d86e305d4a8c775754854ab3f6d0981c1e85b4a8dbcfc1076042354b5d6296d296e6aec20e3993189c8a79f757eb16fb933e5a60572941cfda837c3c4976146c5089d9fc8bbedb6cac9122be4ac4792a057b88fa99e3a2f9b8b9b49605f50", + "05f76934352a8a4661e65064a6e856855a26fae31a3664617007f353e513a54a4b771d1be1fda80ad5514ce41548848f100c8765fc433e566702a0146138b92de4796590e8a821379d9cbcc540376b37361d418e3bbf1c082a1daa3d07a391801171779339447649f101a42beaa31bea78d6f8cf4865740b233a53027da260ae7896c85a008e05", + "01a3517f128a822b2194672cf2e609d2eb7d06230a521338cfbcb3ad67fa2ada202a58d6c736dc38add1e0735a239e56f03290c9b31452c0017695962062ca41fab18fea55ac3366014f70df8708c4317fbacd647f1a282890060f944c34768bc616aedf3de139297b20e0dc6aa8a21f6cdcb90943e1a97a7775e1d4" + }, + { /* i=4505 cDividendBits=1594 cDivisorBits=939 */ + "668c167d87e02deee12ba4bee69c4b11abafa99dcb8d8057758f1ad4d9772f572fbae6b45dfd835ca2884b7cb83fcf1955051034e779bb4b948af7c0272a07af1e64403a0e6aa6a91f29280c3a8c08910888b332f96f296168ebc2a63a5722a4b5b5f720412ae23f3ac57ba1e3cc26f3bd317a2b556a0aa3332e13e5c0950ab189c3b0ecb436c2da4665725825c5894ea5e52223bb7f34f4d1416df43e675e7e4dfee1d33a7e5e806bcf8920277c6fff25ebf282bcb668c5fabeb6bbcf120f2ed1d6d8279f19e1", + "0317f029c744d4bf964b86a32f9e63a2a630d49fb16bc93392fa332404b2e4705befd6e9b2273eeac10b57dd6948fe629f6c3c6f2e5d3c1afb3bcc7646c3d795667beb8034a10836e8af7fed8eefe838530005bef62fb63161100e4a8dccc8839bb68e36df736f5117dba53d671a98d1c5abb05b63ec", + "21262faa88d349e17a79101367ac86371f39f796c8a285717764f7d88c5e91fc42792151dd531340844c7d74f9223eebf1f6668187843fd92ebd3e2fdba37ba8bccb3fb75bce35b72e93253c1b9d5e654bef", + "02299def684f7a8f3f9ff326ce1f0e62843431a0f8af8efad2cfd9eddcea144e0dfeabda62f99ce8e1f7336a81f7c0107568c0b43ade3647d87ce7e19b1290b2d2a943b5e1b289ce7a514ea3275cd5a9940355d8e3405b0b1f06d0d0f2ff3c6382e0d0a85555011e91cc114f0ad7b3acb068a7eaac8d" + }, + { /* i=4506 cDividendBits=772 cDivisorBits=269 */ + "039bd615a79d9542ba3628834af8a5156d842a316f9971647ab91bc27db51c0cdb0cd85662cee606af4b93eeb5e55c1e42db74bc847b3f51ea86410964e4e2e08834eb65a4e98a017bbbf1c13ee65e8bbfcda2dd8574aa06db08e23a860236ef5f", + "17a2da161dd8b23d324826c90442aaf29334849b6729590d4244243e449246b009d5", + "2715f3b61ab32e1f1f38eba23f674346c062e5fde3ecc7caa0fcf4e68a3aea3c3f4fa08b657cc8100612ce6141a000391a2bc9da6dc93b735928b2feda9395", + "0a5b9d9ad1f76906cc421bb7d758df9e5a7260aba4026a4efddce694590812b9e766" + }, + { /* i=4507 cDividendBits=2461 cDivisorBits=473 */ + "18683f66e81e42bf7d232410432dd3202c3554510b8f1d71ffaedca86949892f13960f32081e2630950f3645cb667d701ace30e06c6f69a43704105be833ff75f8ad25c5679d9ae1d18449b4b66763ff1de27b9cad2c7872109c6681e40bc8ab624aac4fdc86ce3e30fdbe2d8dc9393fafa947ff52d6b7e3869861796b0da6943a349d5ddebad527d2a4922ef2a6e44c495dd9b840bf74ed99ac8fe353577772b815dba0d368623a212120d97810d2b6680f508a7dc91feae77f412f7e648e82a46574ccb66ea502c79bdf470e3e227038dc2c947cb681eecbf5cead5efe45576354861f9a998236076b594f34d80cc5c43066c43426f6c5b4377cee94ee705d27333a95d12c647bdf0d0a4d5bdd0fa4058f463b9d536974f86051e3c9a55961bb708115aa872459d82f2e54bdd1a69becb2edf2", + "86bc01d998feae49d46773eff729c76418a7d633b7ff3d772e91e28ee87432e44b1eae9c00f83b931e855c4c93980b6ca00fdbcb4ce72fee075ab7", + "2e5fe2ad2df79fc2c7c31d7428f50ccd6bbe52391d9d0d35ff84e9a8c8f75584c397c5e9606900d6440a5785dfd646e08b34229ae798a5bb6a7c5aee9aa810717fa4cf75ee27ea85a4cc33683333874cd171a2b22bbaa769c91bfbee30cc9b780a18f199d184e731a0906342ba4f577f7570885a3f9355bcf3c3be51d3e445e9be9dc04d0083416e01276ce2de9abfc64ab97935c685556ebb68cadfd0ab5a15e737592471168aed9fb5ad7fee41a06e0e878b8c5d1da632d2d7f880d1b23a391d3cd02e2a46c8bbd75ec33fc5210f7977221dc9e90ee9ea67e307ed1b98848e662ff1eb07b2f890a86704c648d791cba6362123ab28cf783d", + "79e70917d97cb2d33724011f3e3ae5c246db5f9f76982f36c2c53bb144fdd7981bf37d5f8ad023d19b0ae4f83dacde4a66d20c8745dd40d0738857" + }, + { /* i=4508 cDividendBits=2436 cDivisorBits=1353 */ + "0b86a0c2db4bb7bf10ac802a6abeb16b5a040c8278e1b93c72b09c84096270bffd18278f1e47109b900dd29049c91f1874c69fecc299260a5f7d77fce1eb7e5bfd0233657f4448ff0a58aaafc1c0b036723a136944fe700c20ea0bed07bf2237d071318449b98a800f8c93717193426fd4bcb29f69d9b6f0fdb93d431f4d7bd3104e2b2c9b7377e3fc32cb0591e14f3b441aebc0b7f64a0ea90d3f1df440442aaefad8ff24e8e5882b9c1bd8c5a0e3149d8a453fe29d236f2d737abd3bd8292f94c1c582a5e883b4d04e3cd49803d738aac0b5a0bd043836b310917089f7451dcb363d155917fd905a0a8f395972d0e56a64b0498fc70033d8c4149b449b8bec5a6c7401f6ce68a64d416c15f984bb5654d4706c89654384f5fee811f9ecf94c1bb3ef596a3cee952e71e9366346e63c51", + "01e4316fb679776a94c357641d2233535f367015edfef8291265794383545d28c459b016dce17d59c4e9f26f256d5eb386c1cf03e3f000ea7caa0cdd1e8f3e8a7097940761365418f2507bfe873997db0a653cd1c7cc15e02b5b348de1c779bdf408db81827b7f210279137a401b7cbcd191647818d97399f1c98f663ee7ce380df73ec9003ac9458f0816784eb396132c75e4d68940161259a4a96b0520853b1eff65c0bf288ebc431b", + "06180a50752032c85ae354516272e9eb529e2ca8035dc295d00f689a8a6d2d6c7378b60b162b429286f99c3b66f081623e6b65b914cad191791d667d871cffec0c4fe04af4156c7c6fd839a8371db21cca8ea9780e197cdf131a0c2ac8d18286630f2dfebec218c2e0e777e7a9e72d7c76eb5b656f0fdd2de94016e6eb6913ac32cd3ae60126211e", + "af411ab6770a5e69047b19bf1e95e083ef733ce5fe5a6b61c5e504a8268d8fb995a454326032c7687dc07b8ad120959b46ec7d774ba6fd3a9efb1eef64af46f58ff303f0295b027a62daceb9dba7e81348bf5cd18d0962c2dd7b3998f961b9280d237707ac3393be702e925d91afc7306c90fa24b671ac567c830904f63752a2c9efaea737391f5bf2c54bfd6ecbcb2a88e97ad7941b59f8fe4ad84a6b235213ff3d2340c5372de427" + }, + { /* i=4509 cDividendBits=671 cDivisorBits=300 */ + "52c960275d05db07d676b3d55831cc2ce5da65031ac6dce11aa557a87c8656443cf5ae7ee793a8e960a8e2f7e92152dca9870f09f00989ca95c175213f8c65ea09c9ffcdca5dad233975d0959549bbbdf611b72f", + "0a1b1df56fd8de018c3ddfedb495ad74a5f2a7c37cb265b14c3a0b653bc46bdc49a3b42bd093", + "08311fa3ca8efb039aa918583fd94d174414ce283c199fed26d906c727a85c00b6fb965641ff34401a6fec271420a0", + "07dcf52ffa16de6073c4e7119e17e45c1db28e788ce5dbbb58bfeb48026bea687a313020fb4f" + }, + { /* i=4510 cDividendBits=2460 cDivisorBits=1093 */ + "149e400e4ffb7f174be363c48f71a4fd9094439ea76fbd51f87868ff84cafff1f86904a4215c13a3a686c32d0979c8d2feb765ad0539730230013357c637212034acb780c0b0f39bab6d124dff8d1bf4d1f342e101d8914f2048edf6dcb477bd579ebabb3722c089bf33f2d6ec3cf13d8a7fdaf4434f1bedb08ba6d9929e3d6bb5f05e9bea3309b57191845bdda83384ef00050a30541ff2f4b6b44a991985ed3f6fc46b9123a4fdb23a0141130b312df94b9e2a44159b1cb1af41b5ad985aeb25f9debb7a2a0437b9f2636417eaaeb8cf41e65036205e510b0e762e8b33825fac49c30853e47201fe72c5585e5316a9c9070a2c28973e65fcd0e54cc26ebd0c20124d10fa6c7a4b4dbdf430b94f25f4338aa4c889825d930d191336212c58510a8a199840acc7b5380bb39a1f8a86ab2b4b3f", + "d10391d2b7dc14b75af8285bf28b5a8fb843b5cbccb14726f7c6ad8cf9c118b2ee141501c68ec66710c1db8df5e7c512b0e762f4c8f296763245012a44e8db587e7b15cc2156175ea4140c7744010cf74a841d9e93b2e26249e863eff7092fcdc40ed75017dec0ce5fb996bf71128aa73e2b21158a5a7c5a7a876b436296ebcff0c4683c09cdc5b7", + "1940cb38e3bb3ffdd07e5a3d3adfacc6339503c73d94f462a3958b7c502b90f4d17123e91795c9e3a1285e2604c1065d3241d97abe75d000a6868a248fa9cb416816beddd5fdb192e93295dc909f3986e9332182fd74f9167e42c66c1c78c9009ff7a57bffce50ad8c6d198ec5dd90f50e282ea619ee6aaa274e41f3147d0d409ec0cc135dc1a2b2b5a7e1058e4bc4082896515de971c052dc3ab0c89883c2c17b7692465ab325578bc191", + "ccb3635739c29a2f578b9e46753a4fb5bed936b06ff3466d59547f59665da415e3bb8aba9b73ec11331a88a541fda3d496fbdbdf60011b749209da4151de44001a6e7668ddc119a2f4f12b7dd3a211c87eb2f0ab5f30db8a7550486d744c6d24490245bd5f6e1e71f10993f53eebd8bbfb2e6cd76dd805cb24e407e1c9c15e09500a73c270325798" + }, + { /* i=4511 cDividendBits=1755 cDivisorBits=505 */ + "040be76347ace9bcaaadfb7833d1d3448a5a17fd541ab849b03a5b652f3015ccad055a6d400c2fbc89bb3647584a5bc58c717d974fe950327e5078b1a989a80a746b01c5f9733865a197ac375615537d61bb98c2a6a655e92fe8c4a62a8b88314df828990e7aa74da2520630399696f72f86bd246ef215d9ad0ebc09cec082d9ed58ab8f21ed00a2b8b4a9b5e3890f5e772b35c2985838ab02c6113358c512fc0b6431f22211881160bb1ddb9d63b52cde92e0f8ad7400f8fa9e45a68ce5fd88cc693e1bb75c721ce1c5d16f4181b2f8f163c2fd00f002e81a69dff4", + "9d85464c4840cc5c4235e9e0dd66f34cbe0a62f68e03f8d9a6c7b78f1d5076d6e2a8349e43be1a1ed348e2ad0f3a94bf656216c894953994c31b75b764850f", + "069388dbecfc856d25ae2f1c541a0a43f18a3347ff1232f4c1a512497ba344405bbc4de84a5652656fed282e5c4e588ed7e509b074fae6cec2a41c1fd7f26cd839edb83c56d95ab399912be6439c80bf0b5e550dee25a65fa668a73d3cfde05be7d2cb6b3075625d3e60feefebb2081fcec23492a6fe5b6eb7189cdd51fdea3f13776dbf950337efc3568138d8adc2ca036a367e11f9d00bd389b667d9", + "04212534e505db7759953f1da27ffdc11e7afaf2632921313b9a3eccc90328ab22af2bc7ed563cadfdb281341a9719766eb2d37f833dedb5eae24d95020d3d" + }, + { /* i=4512 cDividendBits=1646 cDivisorBits=1078 */ + "29f3385f084d3573b5ac4c29cd967d2aeb47d37410484670621fc23a88d16616fa1ca99f6547a08883a0144506aa9d886dd3f21c4302769a378b1baf0b15a258cd98fb6083c40cd00c9c089e69d71c02ad6cc7ac849b755a8500a36274f881755f0f88f58822494db68993193faf6a74650349c71a00608a2ab95191b69a33c0cb41c0b457222202c72cc5c2123a7c0b46dec071cfefce25046599e82ba90ffb741ca37ac6f9ed39c27792d3ecf66c8536f9b6954c0d997b3641320b7cac1ed51ce3428526b86b6750e7d46fc7a1", + "08c5e671f4a88ef3f6224af4a7ab974b51e002bfeb3731e07759ea2c58a12cbd324775b0afc024f4365c5a04063edf3a5e8081301add5889fcf5b81b3a5257d035ebb37bbfd91fd62dc82890f6b0a09acfd2f749349b6b6608340c880d830ef9500c6dcac619ef618b8c8bd4bf9222b5deec0234f05cf543504dad7bbdfab053b4e97532f8784b", + "04c81d78b8279cdcf3d93ee930fa2fceb25aeeb56a20350a770eb8a50e8b293636992b9f267762494101e574951a389859d098d7c9f6f5760cc9c52e75656b8e70b91a88212d1245", + "03c71fe13886c5e4ea2adbd8b415c64e74b6ef13ce108e1befa213909f6f1ad49cb7af1b3031751f81a10d6b313995f1f90e5f85505467ad1aac1cd125f5e8fb0b7768f739576091a8da1e06ae34b4b30d8051bc4027228661986dd100065baa98d926624e2033a96af8a28671d34087d880fdc39a168fee4887df10659c2fefa3a3b4ced3156a" + }, + { /* i=4513 cDividendBits=1438 cDivisorBits=988 */ + "391e6b49fd23a4200f66c301e017cf758307a8c6e834bde509c8c8f6d8672c0fd4e402d9a5068ff3cf7cf0f2d522df857a648ff2752389ad8cdcdd7e9cf362b27a5b15c318378ac1cc5198c27f10a296b5b9c51e356094de6a07a7e0d3042b5c144407a676b36e864499c0e99d8bfcd20e6d6d14986f8c7ffefde70174090952668318577de103f154b44c06b387e5ba70ea8785416e9505dc9c423881064116d629280d0c05e303135a0eb091654d68f74f2a05", + "03f5001bc4f564990d9e615601ce58ff7b3b67da570f2699c81a294cac62747d607d2679c2593e28b77d6f96f34f9dba34ff812e77fe567499095854aeccd54cbf7b66ff522d15e2ddb05755a88bb4e8bfef75f0e1cce95b8044d187a1833c43aa1c01526c28525cacf557fb96f60da49a3cf8dad7f5edc008a5e3c9", + "0e6f4c80ab17d55a888d95cd1986350e41fe03c113e5c8c35c54b0720486c2bd5917fa3c298d0c0344e8ad1b850a0f9d0b71fa1ffd7427b641", + "b5b37b6b20c458c4640838599fadb26a00922f9ac39d24d6ffab466b4616c969aaace914d324b3b1c9e5d1e8e0804239e788325c95019e89bc62f42c13c2cd92983bd6cb976297ea4cfe21c521202c01b4a1396087e290a48276e80e1f21bd990006da9d08947f83d4874a1371de6007f70160daef785f0da06dfc" + }, + { /* i=4514 cDividendBits=2243 cDivisorBits=204 */ + "05b7ce19908d4e8d213aa208707a458cd8f1c98c576f28ac9ebeb9d915df742c7a5ce877101cb6c5e91f7117295b6c852564facb5d346818a602e9ab94bb29464ec4a61d390f467ec59bdc972e43224502f45d675fa5ee1afa9f112c10b3e9880a70717494eb116f69c5437cb7e28d5fc320300ad8df2a47dad63f7c2cdcd5796f9fe6bd294e087881e3301639f6f3d29461b89b592c2515f9a2acea6aa68108bcbde65b198e1d2d677bf82d7681c355ab6ae88daa6ed7f49344a0828d13420f07f6eda75f8abda79d85500aa74ec80e89d482aa36d60d6598ef24ad3f498fc54cf7ae33434303e5ced750d7bf1d4fbacd88ee7ce575803e886f6bdcfc90320141f2986365ee38edabbc30ca394f71ce76f1ffe4f7ef617ac2", + "0fe7f41145aa2342cd51a2e9d3cc3016a5924038e1be8d04b64d", + "5c0731049c2cf1dbfaf3656925403009c2041be94083f0db222b656e8a03d521106d4ce9c94fd24aab6e3c906858cee4b97d6e929ba3075924dbc745facec5a25b85c0608c269ad6ce2ad849de672971208fa397df161284452a60efe89d549a28e939b1549ae31e59f68a2c31ef0758d0de41b1fe0dadd4e3f6102c5678b072711f64f33e4d2e8029c352aa9aed53b4ede7ae0625bc87d4b3d5f63c79ab58bc80a55cc4f0baea4366cd5bbebd472611c4db09ab9a6f770eec71f657b2c5ac5c979148560542b334e7fbbc6cc720d81457a11671f0f97e0c5f12338974d3d9bba400d8fcf4e0161aa31b950e908c768983667cbedd12f1781e80523ea50894", + "05ec178cb317c84ff4df27f40092441bfe886868818c1d54ae3e" + }, + { /* i=4515 cDividendBits=2112 cDivisorBits=786 */ + "ae3fb5d33cada549ee6aa237e56ecd2952aa275ad32e98f9367835f387a7c0abcd6603bd9cb999dffb3e1e99325faa2338eaf39c16e7a834ea6f022bc318cb76b9a4095f1dbf315776809f64b15c22e59bef1ecb71b62185b6c03ae2adfebaaa0f738a688ff493df586e3e73f9e1fa7b361da8a66dc024d7cb7f63a83ef7a1fc3767d038bb7a995556fb938e8dba898f122d333e1491474f922a65fe36b5da58aff84d635d5552378bf05ff39529749792a1037b366ec4324624805dd7c7a9f19ea829030aeaa805e7818682416666ae5261fddee4bba91b84074842142cf5ee063d69f7ae858cabece050cc2e3643b3e6cdf6d8af2c4fc670361bbe7216e6194cd207ff4643ea28", + "02e6a41272c87a3f9354e2d9d42564ef998f6ad52698f432d30d544a5d9fc49f65981f913c3c7f13b60e69e056397876936d5fb1322c45d84b6288ff102d675ce410ffe723cbf8913ee27b867a3de180477022933fec050eb03db4b7b2d86c8efeee40", + "3c10fab1835b937c125b0c07d50e2c4c1275924d473dc9c27bd9c4d4e53d8201c3d245551069a7afb362900808cde835a2322a878144f3961267a9feb88f814698134dd9458975a4ec47babff20fbbf3516cb58e86f44295c0fc36a66385cadc5dcb6508ae14d0b498f1ac814cc7e38d7a42c6fff6ee5539bb02480295a425b9482c7bff0049d86e88729c0eb6155ba402203e7f799994829ab9ff76f1f7a5f8780f9c66aeb6", + "029759a7a9bd94ee2da727f95188e8d02c662cf9b9701ae8d2ec8c188d96fa9d6a0087499853e7c851e85c3004c25297d7da4123ea6549e3afa4c9a445b62ae88ef49bbcc1163659e86c1f78fe055b7e8b9de646d58975bee37df4d390191e699708a8" + }, + { /* i=4516 cDividendBits=4067 cDivisorBits=227 */ + "049eeaffd0d712eada0f1cc1f2e9e295ced894eee850de9bfec160c56046375c324935fe8e81c883d831e88af58add512963e059b0e0f8f7c298016c475690f1dca0c07ab18f0a89b0c696a2c4ec41cb9f2dbe6a7c8feaad6c9bdc2fa6e64694668092c8e8663c410d383717ec5610e2e5e4d2af7387e4b39e168f3330382e9479703d3d12ed53bed9d916d7f3dadd8960fe7210960757a7168f0b39ba0c4f8d95af794549d29aa15e9aae9c55a5b6dda03c21e4788daa82ac27af3ed2f898b8013d33d363aeb6f60c7827a46c904756360bc9eec85510e64357ce019f563329281dff7982a1e2292dcf579e058e8cccc9c927ef0127bd38d9cad5e52c8f2357f0e29261aa4411829ce80c0b1e4b34f04c3663a085b63846bc1048ac2a08cf0252acad33f08c8fd0663c843efae3672aa5da2ca8ca590dc9e0276d11479bec1bdccaa9e8d6182fc8db5a1a357f4af1f6ef7a67b3d5a04e85b03fcf8476907471a719d33cfd4d586a3dfcaba92e7b327a26e9535b4cafc73edd41208895db285ca6d43196499dc9bd930e302294720f4f1b5eb2a42fdc5e1902d390ab7a82ab386340da0d19eea221cbbc5f56d26ded0c2024dadcbed4f70bb1cfccf97c8b1cf3b1215d1d833fdeebf8309f622ca928dd269c750013d593d1ea7e6d2a306fce0359cb22bf89ce3e5aa42b9db3100a86758a87c08060674e961c8a4dfed7", + "02c8ec0560cecea9213028a7fc20a1b4303994432a5b79e23234d03fdc", + "01a8c4cf9ffc9d0b8834e14ea0af7894f07a6264d14403d59694b687bdd9147d252e1dfad0c90385a6065fdfeeae94864e11f862a8a3926b4d0922d2221471a4f8d428be5c6068368fcdebbd745422cc0a2ba599dda70adea8fe2998d43119a981c0843225fc461734722364c19db73fa2b736279a70fc7a4a9c33298fa401bee336200088025fb8f4646c67be6f9710f4a418437ff5de19a3449ab608f7bc881f1618b40eb179fe570ac29437a2f2d2062f5d21de36f35859739b6c3dccd628e8df07b7c60cce9cff352110ed4f28eb30e62821b85e60d6abc8d5439df3d612b1f04067b745f6e57f8db23b4aa87fef0147d7f31118345292cd8976f706b6af62f5aaeb754164af2e33b1e3336a9fa9e7c8728b74e01381989b55dd3c91608c236116b9a2aecf92daa1567dc2376c94618058152a719b4ee7cc535ee613a651f4109fa90c83cc84e0ab466579fabdb6b70035212bb1ecc93dc428417914c0d86ba84415a69251c5590b9e3fc26ed1894519bd3d6208311115a2e641d1b054e3325c6a79f1bd4d86e127c1e0370e709e984aaf0b5ee1999acc85dbca35e3fa149e0955a13e02afe9e6184cc13dd4237ff6f0f5a33e52450472fbb55cabc83ebe52e166d8b8fd223cd10ae161e67206c38bf79e934aea5c4a9652aa6c207d761085", + "018196aa65c1363cf6f91733f8ecd8acfc60e009d126da1c0e3ab7118b" + }, + { /* i=4517 cDividendBits=3043 cDivisorBits=1805 */ + "05dcc8b8c8b0e159995c21f882b96b576707b8cbed49b9511f4c74dde7a4b5c206974cb2e963641a5ad76881607ee3d6c43d34844f72aa87db71dd280fbe3a2a8d7db5d79791fab959bc6dd0fe1b0e1c8b526d9499490eea7ae06900c3a52c948af9e1695f748ee76e5bbfe6cac07fb4fd0c9f9f3c0a01882737cc8cd365843a95cd066d079706a934a092ff9d76471e4a6659c6d28f994a92106101bce491a511246ea6d081e7d055e395e9af1a40b891adb9424abfcf4ce20a528acfd31f106c870ca23b6537539e74e9b98d8132fb1c645d6a2aeccb3dc8b92d5191c30a14d6a3153e9bd88d53c367a7e1e8c2fc4cb6b2466f2217ff9a8901ba91ae2f2c81ceff4138f3be7d49a5f9969d5a6f81ecb4b3942ff1af5c9c75804ba0bde64c92e69ca69aa061c12db36a9ef1d181bc7754f019f21ce697098f540f049a392427670edb4f63f7e1926034b61854b0d9837e231af9bebb7f194053db82ad2103614a59617579bb39348cb75fd1749dfd3415038835bba0a35c0d02852946", + "1bb117068e434bd0aa65bdabe00926dfcf558a01bd8e9a7ba844590603f5754ac54057b50a96612a4cb561df1dbf335dc1aa11e496db3dc8703685ccb4071ff5c626ad03ccbfbb2d75c0858937942bd7656af11f6c46512ba639485d0eec9a78bf960daa348d6867538fe9a4d2f5c8a31d01bc1307ae927708798255c3e60834d2966d0c5bd97f8f1013bbbc47920c881cbeeb3b274846e5e00ba92f3870f6905de14a755f218b6bf7026106d4a258ea62d31895e58ecec26b3ae1fecb62e904c569561b67a8283cdd15e9b4f29793eb1c583a2f34a2b0c445be0e079d799566ba08", + "363230c89ab10a67da3f7dbd55e0f9813b72527f9d84d8bec1f66c66e44dba99ae3ae60634bd092824834cd480511460bb2716039f3f21ef6d536e2a4b94c768ded27f384f1bf472dd3d11497e021f8d8c78537e49d0038b48cecfda9492859252aab6634c1a342b558e49b98af5d0d80fb6ad69070a8a10ae3b12913c44209963651800232c3ecff6839c3fd67e2f9423c31a7dceeffe8b1ae600", + "0a61c512313f950bdf33c6e2ba44c3fa0af93006ad7cdf88b7fa98a386a60e37657d805f6ec9d021bf83e2ac3e7b78aa193ed48a83e6b3feec15c9a621491b9b96aa902fcbf5248467d3b0da80af6d33a21bb939da1cfb25fe4ac826f35e5a2715dcf8f3c0fdd5b47b20bbd08b5f348f783c5e6451b7a29bfec9fb7599929c4b329d889707259e3676ff96208f2ecf7b55cfa3a60a85a6e59f47685b5405d672c1318d0c801ad8813000564e014565aa58c0674562a214c8140cf907a7453021f826e11228c0fd402a0d7898e2fb833544e976bb5c90cd5cc66d08a620717a91f946" + }, + { /* i=4518 cDividendBits=3546 cDivisorBits=3427 */ + "032f9b5ed6e266096d2833aeecab31aeceab4a290b9ce445434054cb218f7e3174f342c59a2e04753b41d01ed39f7ca1d3ca4958acf498e413900a4a61732e1b27950418fb72d9bfa52b2bcaf6a919c3340689660bc3760eb229bb317520305aea6bed70d733221896475428dbe6eb20970ea24408a77604df352c0cf7fa8a166f7785ab82d79a3e84670ee275865272195f418566f47cacc60c6bf3f434b4b5638b524e27833e26cee79d1ecf972e42b76b9ebcc072f0650b799594ac057b360956e2aa5cd1db046832601ea5080eeb089f0effdb3e7b236f27c39bbc572f4a010fdfe1e4f055ce8ac8780f0a91591c1efad1855a866af86aea7d2e91b8f533193e027ca82a47b210e60dd3f6de0d32950f38e5f3c35827e66cd2f3bc306b528ccd6b1b45627813b411928a5fe09b11860b3940e40ee7b140b228ed168a5a751ed1a24dfe3519536d90b0f158af9be4eedd6e0fc9dce3f39ad9d95ee7539aaca9877b175d6ec38ed2cf2f47e5529189735e5c0ac34582e85a459945741ca5044940040f38e7b6402225be136ef5bdba2ceabd9214815b2f51d3833ff8057b11adfa58d1736cd3be55a1be8a7d9a41f23bbf8f176d6c0048601fcf2f", + "017f59a1d952056b487c392776d1da703138d8c15cc09fd1d88dcca7eea7c6efc7509c484b56dbab2f546a62d411fbe0c30c8001d936ed209fe024a12f59b0963c5a8290d8557b4ba64927debf0656e1229b90c510b59e78fd19f089a2d075034e6425cba0d6d3e0c52293d286ee79d79d29121be6d025e11781bf0f21ab5a07db7773f9182c9ac90b586dd8c0b6b4c09a84488cae2d24ddd8a68373bd3af0978bfb691bbb2da3ba16bb43f1ebc9d9eee41a2d509ad1e4252cd1cb878d2d1fd9f8e707005ff19cc47be8af4e171d9874347b4a6b7c8fa2a5f51cd7c2b63a2e43c186ce79f07be9db9411b3b677bded49146fd2668c8f9a05c8e6c35f1cf08b6024bbf3ae6a6381641f44f516977d353e40f126d48a7bf0d5334073dd69db3f7b55adefa17b39421a10dbf2513ecbf00c1e7b03a9fa71fd9b3c874f1179c807a7b38ee3a66c1baa6644fff540fab5ee52fcc8b8fa053e7e24af925533330e77617aadd4a0d4679c83a0d818cc71adeeb874912f3cbe9fec6aa0a990433f01bac78edd1893281b6cfdcd8a04e9ac9e73639431fb8c2aa01332b1fbf8c2e94fc5b4f3f55d83c8adc8293f5ee05b94", + "0220a8e31c4e3ec293fd396a98226a7e", + "d3ef49bfb4a46560c0a966f2e9faad74c00bcb8c09da401c5c8e1cbcc48830ebf89376a3952c8a70561a77058dc2384182bc01833486601c940d0dadbfb49aeee8ae26fb35943266df643860069d90f99a655b5f76ff5074c495757f24f4385e230fa7be3071817a5c93121464aa656dca6a345390f3e48f439eebd5449e653c1126eb654d744272350c7f07987cb5c66a42a2170e7b78405116da55670f5a1dce4a12786b3b1f384ce168293fd6d87973bf7d47085c80eae6ac011708ed463acb15779c76ee7333752572a08811b84285b8087bf5fad3dbe65e935aef884d96d4b36824fa5c1126823526e9fa836c89a1370fc7eb326a13e640a57613888c9d9b33eeb3489fb1adf66485e4a92c322b26e4b7599a4b6e11acc4daca51d939ba1b6a7c9217ba3de78a6a3c2055912d16d90ff9779252f77276d5f4d480f4a2004ecbf0191a548ec1357edfa968f6d7cfe598444b589898254c04fd29de948ccbd4d54cd642408d0b507608bcbad40dbc8aa286f23c3bbaa92487a29c4684f691a76eb8729515867a94f5ca648c55660d0899791eda49f4d722d6b45cf433c1b616daa6742e85c65abe1f7457" + }, + { /* i=4519 cDividendBits=608 cDivisorBits=364 */ + "f3939bc8c47f832b1ee115638028896335434f4e2f271cabca035ead4039b9faa3143f924ea6eff0dd640359454d6eb4e46788e76aa12581417c0304d1bfd4ee3c50b3aa58bcb472f1e4a3d5", + "0162a4a88104829740f3101dd299c326d92f387c0744c1feda37068d01ecf637aa6ba7f6e7bd3e5344eb39f2b97e", + "afd389c9cee5513c9ea33ff6f3512ab4f5723000483680ed1169199abe4cca", + "358b47dbb60e34aa1ead504380a5b2c8fc59eaef2bba35bd1092d6f94853d5775ba32738fe9cfaac99b1c8de69" + }, + { /* i=4520 cDividendBits=2767 cDivisorBits=2076 */ + "1730dc2c47faf1293d78a1c882c8e007aa212f241f52e82cbddc90fcff59c83a3b9dd88e8fb8386feb280299f3061e17940c92b7891193fc4dbc0e8a830a74e8e45b93c27787514f5ef529295f3629bd509c2cb59b17596a58922067dce679ca47bbae62570384913936afb479b9b980bc2b3535906727b7cdaa127712f82ecac66d8ae4afc59d2204d0669fdb28d48f10f196d9c9a858df07d20f329bb9cf2d7552b04e473ca450f3fb76e6b46298753ef9bdcfb09e8121e151f0c22fb0c994150a7654efe8adc9edec2545e2dcbfd2215c0c8da1a44dafc577c8ac3bc55a19ada94aef3faad353424a23f89b7ed73410b518431dbff7dd29fe19049aa37015e14431f936e8fbfe85a02cd7180eea162e5dcdf56138c4ed3647495786b89aa886c6461cb81924f140af0df1c54a17853a1c7e32852db793e907c48269b30ffe089935567f9cae2358d75ea00627b0f8475c1cfe36694fd00d65", + "0d53d9d5e99f09353e601ebc96213c578a03fe83b01d1790a9dcb3fa204e5a91d4cd49b8fd05b2f061112691012b5059f06c322d182cf815a3538eb3bc2c8b0e6957c8207285764252ce63bebd3f096d3bcac63a2152303c618f02000ee82b939a1b160237b088f00f04888d957c66f5770dd8ab4a8210a146a43693b2665b1cbc0a6820233845bb75b3286131397d89ff290556f203e830808ecca061b9bbc8952dd8d728ffef201c77c01d4b358d5ed82912947b09c17f6a2d8d1d7ea2aac8b00f97716283dbacca5129c36ac6598c4ac1d929680455d7856d9ba07aaaaad12b0541de301b6225e067428db9f2d3adc60b101be4ad24e19ea53e473a60c28b7de8eea2", + "01bd753d4af92ab3458c43e744eade84da096cdaa133367abf0fdfff43bcb458734cff4abd222e63d279867f156334f520a544fe51c656a118ba370a745fd4d92719086855cdf58e7cc08fd7f4dad18274578b33db2f18", + "0d213982db40150101caa26e321a01e9109bcf8c07b8956a3e012d3741c11742a92f72a390619d5266de932364a5e5969ec8f005ebfa024a1606947d1a7917d2f15461743ec8894fc5363b76c2172caaad887ac20ecb606deb89b690d2379c66da74518b3094111fd46010d3ea02fb1f4b4b1fbaf2626e3112245bcd571c83c1e47b0a661c26845aee8099f208f525ed2fac06d9912e6ad2c14addc42f4138969a32b16ec571c427caaa9225f653b19762b047b001c186696b4f445ccb059f3c3e755319579d3e4f0f84dac3475dbb52c32b610fe2acefaf734fec5b016c2bf442d8a221682ab10fab6bfca9c34b5f202e5b1acbd847d9efcae5feeabccf9f735393f035" + }, + { /* i=4521 cDividendBits=3401 cDivisorBits=2903 */ + "01f7b2fbed48e134fc43ffc5a7c842d5040e1a7d670e7aeb89e3a8b0d1b7d5191fc199395c12f1fe47f15794ba51a82b8a8fd4c263d8643bdffd266aa10a104688a8c7c5fc4b81a48271b77a9b51a70b2228cbb16c46a42b643dab3904729f7211d91edf11ded459358bc474b68d2b9e47c824c6c88bae801318f88eb3bb83cd99334289e82e97ff96d8e946c4656aea65ae749c9d3f9be17b852ae5fa0c54f1eb187f350a6deb3fa3c7ebd8a6487560dfba0f8e7516c9d950895893fa10753643ac1620d9efc5b0ffc23de1a6de5cd0d842d02ea890e796503889a34321bc9403ab2490b94dc6ccc372e6a81b333be4cf8e9aa86a0bebca3281be8021522970001b1caac9355c1fb7749b36303e64ce79c21fc11a72ab7dce144ecc1b30d236a495fce25c3ed26293589144d1785929d8e955c9378aac3ce09599056e0632e623f79541378cadbdfd5630926de8419f96c39ef7868abc345447a606675eef6936c350600b8201c1ee9a00e955cef3365f9096b958f54ced492c2b59ed24d87dce0847a8f070a96e3ec93a39425a4a6107f760b507a3721f297cb51b237285bdcfeb37462258f9e922ac", + "76b6a4a8e686f3998f1a04a25ec1f29b23251753dc87804b662e798d35351a3740cc9f35e80ccd7a8af4d7540727d623174cd7cbc9972e5f3c07096cad0f59f73c8597251def771bb812565d7013e1468bbc16188d1a3eea6fbff5aafd97933d0ce6de87afa44c837f29fdb4167fbe1623b193c5a028183fc7a7c21f8c7d7eb8248312d336098e21a6769697fec015359aff620989f89a0da3f6dede1e307f202244641dff0ef9ad0789a94c8687dcb1b8d9bb54f92058ed61d6b64b2b5680b761c0a369944afac53f315fe2d69da73a6b144b7a7836e43fa80de78101f9b49c60a26e94ba2586aaec267ca62855150f33f195e633c003c3e0f45d6b9921d534d111a10bb1e0203db5dbadce7016a544088fda2092699bebdcc1e7b5ab97ae8775dcb71f951abcbc0c2ab5bed2785a29fdaba41015a78e1c493a8e1c1c62895488937c677e228ae672cf4b28032ec76e63818bab58fae10dbf1ea30811650b8db20f16b4bf0f43ca52ebd1", + "043e34232be7b18d1872a4e2a520da29d9d7b45727847b843bdf7978014fd51e4e9714b01624f3ffb224032301281ba55d4bff741bcc16a4369330f171f6d4", + "45543746f0fb05acd1b79b115ce7e93f9260b9ca4be07e921d52f07b289994853e9b94ed762dc7b1f2e18862ee32f7de3aaaa9bf80816a87f667aa41d9fdac280963f95556af1a1c24ed60bed51608b08fcf2f67efd553c77d84b904cae4d99d3a78ea44b6f5f8499a2cb6736d35537657a1bf6ac09f5911dac9448eee29b481665084d32e210965f5d0d5bd5f53e6da686867ab92329a8c7f916b5dd6f061fb72775d1281f88c06afe86cff32c4d1942dfc885971553da7ac385900fc73662676a960ff1b04306e6e25272359db2a1f0516ae6c5cc5d071a2d0076783fe741a92fad1c09c56497c7f1f8f9d8ce4939f574e1a5bb8eb103b306ec7eb52a3d2b926802af6370fcb825f4113641bf0f5c0bed626b3fc95aa5c25e8a63c32191bca6b7a7bace152f2b1c745601216e14117ff40bf6cc411f6cac790035a87d4af594ee1022df854bbe8aa185b4658a168ae8aca03d8ca532232831627fa756cf4c105735032f2c0ffe6620398" + }, + { /* i=4522 cDividendBits=3121 cDivisorBits=121 */ + "010be5c70d1929f510718e27eb12696bb8d186a32890cf75c87ece2d7538919f4ffcec2b46462acc33f9a1e1b908e054a36d188bd94c086315d83b1b7eb1723c0982443ef9f4ccdf90ce26707c4a8cecf44d52aecde0f34bed0beb188fcdcf850e4554102b3de4ddf6be40a442798efa0e95faa1105f2a00de2a28bbcdb5c643552a42c320161ddd0ae87880fb88e884ef980dbea4dbd0db5ad92a4208a5922d814e8cd11d1e128e5361d1ce7a27fd99307e6fb48460b110b77dc7dcad14ead3555d5c318c20fbaf4014aa6609481ef72661b4339a4cb9ac010342b96d71b0c62c52dacd11732b23ec06b4eabc1eafdc9a4b0b7d3b166df0262253380b3680ca881fc687028cd4ec86210ea2726582b3fe5943b43b94b11de1bc7523c204798e07a9a28af106869f58d0e1203ee36910259931e451223b2e4722d8d18be5122f5d419d807c5a1fd7d27b047673a52ff208d313a4a3ac0189c6f7de8f97485975eeb0b29515deab180e39bdc474f8591c7d8bd2d10d643ef93ef76e922d723c7b8d0f3163518545", + "01c3a61f42dfdef8422663deac8ebdb4", + "97d8f884434ee1c97ed37c6df943d40943d815612615fc6760dd7b14bd3f42ebe74b9291cfc2c55fdb68d039cf1ada186fd69ab7f4613baf03c62742fe4f82f71a5e56f52c68ab5507d94d360787792c2bc5d89b4d0687437db24576573203b7e6e60317eb20073e4700645f21dc0aafbeb781da0ba9d4d5854b17bfc0664d14264a3e8fc09cbe0f7c2ecbdf2f7e5cba3c7314dd09bffcd6aff8dbfec2c2ec04ee66fb3fe751c8a16a3edd6595f4679551f41fd68a4681b5babdb870b4fb0e7dbbe8a3ed4e51b75b3f3a509fa08831c5b4c6f3fd579bf780be5ff9d340056ca4e5e2ab78ea3d42b8e910775d33fb8e20c573bad118a048c28adbd2563d52e8c2d3d99a08ddb99b2b62e2c8ead481d9d531ce1811b4c28e1b6d4ab3f20a79df468e5a036fa68cd45f3f682049599545fe3a19cbc478bcdf4bb11339c4d527351524b86198263eb3a77a99cb77aa232c2e229989ec67626e2908d7e7ea1b91639aab4f5205a5169bc458568206b723e900c2fc771ac16b63", + "01338235351a082077106867b21feca9" + }, + { /* i=4523 cDividendBits=2333 cDivisorBits=515 */ + "1e3d28bc8822d5d9d3ef7e5240537bd134e77caed102ec576b0c6c68960199a3ab6ceb301abc7f73daa7bce308ab7d3d250268867cb85092a89034d0f7373c4cc51d43eae9e37b3f1d20839b1b4c672fa2f4f985a6eaf2b8ce708908b14de33bf810d7927987e3cb5be4c9a2495870f64a7b93b5d6df4e8e338f2ace54029806d93cd7f6a7a937462a98659a7f06c817f49ec84891a8975c2ba280756accd126bbbcebbf02b97165230950355c12bdd340403fddd0a996f5b4ff20c86926617e6363ab704c18464f40c626e7ddde5267c76e9d69fa712aeb428fb64901eab00da12f6934eb3363f233c45419faa8af572119d121a07dfae29a07da8809d19aa55d447253373c5d4789474f73949bde54bc690d6f2dea6058aebbce4b116c7112c276e991", + "04848e7ba7509e8887829a69f232c7f98e1c8c662719e2657d06e78e56256bdfbb47e18b79508234eb7af1c2fc6a87b8aaa86358fb65372aee948d94ab2813b7bb", + "06b17aeb56bb8a36167bbb775ce458bc9ceb877ccaf2b355dd664f0cb328b8a7daa6c954d4caf11478263b1422ddaa06e73f8cfb93ccb0f960de6940274596e76a6ccfec84311ad94806820c9dc3d39c8059cf7838b33ed987fd3e739d613de77c35487137000ca8851360e8beb8ebc490072be1f76f178578f172a90c2e1fae2839d6b45525e9f80e23e75fe380feb610b275b9f6ad837efae63f8e88f0a96be8e3b6cec373cbac54a26ac41f540a8549fa297352f1dc96cfce5e9b5e0bb2fbcccd5c208e2d3e9c2fbe94f282d3c6ffe041b516f8dd86159cde248d5cbe3023934ee099", + "0229c3b5e6b49acf160f280adc9387554199686a50922035c30181297fe103a30ab640e26b3eb443af6c9abbe3c9ddf93f07f54aca01ad16a414a01ca331f07ace" + }, + { /* i=4524 cDividendBits=25 cDivisorBits=7 */ + "011d2767", + "66", + "02cbae", + "13" + }, + { /* i=4525 cDividendBits=3174 cDivisorBits=2392 */ + "03ff7b90bddf2312711f0b8dd89eeabde71a008528079ae08df7d53b0cc81887ad4ed4538ee7d0eca70062eac7ec4532ed593a71a3147dbdf71577cb21a3deba462b630db0e6d26a7f83c3cbf6f2277c106718e3508462338c33f9db927fd741cbab9a8e3d3d633ece2e737fb847dfb155f43efffc25848e3de1e399492dba2bfd477de528b3f97439f8025abf82d046a252671590426873dcc0a23137b990c93fd71114375de81eab0bc034a5bd08e8e23595dc8c3798479d62f27e1ed82bf5d75585a43395855042f3a66cc650571e8f409439b747140ca8e9c66677cc579336526684cd3850864bc005d55fe072e0434dee55c98f348a2f7f8ec16f54d981f2737bbaf73416b9d9aa0203fb6fc729ce10ef763b7bfd09dc02b25059417db9f5d969a64589e414880674dd2b63fe457d947167df096c9722c87065a14fde69185fd3c37f7ae4e5a0bebe40dfa53b0e8c7b042e5031cc9d01f41b9fad32d21f344979784b28cff9b352010089935666a25e788364a3c2aba6f3192b1c0569aa73bde8f6d6351795b5c1873996", + "1179cec3e6fc07bae3407fcbbea6bd207af425861b866e10731527595c4957e1aef6803e7f0356a79a2c67c1a8de653d23c065cde7853c822926dc3fd1b6fbbd4df1a946f162b7b1da009b94b1de1a501005098a12adc22980271f53034eeda19727a4dd257ca25b8826053c4f1ceaa81de180a36f0737a7f19c952449d06c1bbf649051c46d11f0d65834e14b1960ccf8f4879c02d2b96ab4e1bad8b5227d3a028946279b9fe25a88942946d5858a73f32f37c69996a4f9648cf26e1611fef4f6f4d639653cfabd35180b38fc8676eb9f69544a8e7cf1a2af4803bc2d8e0c736fab9a7dfec2fb4b37aeb182b36a173db8aca3ea55ee27dcd3e66f812492bac62432aaafe595e7f8fe57d4853aa265b4ff16ce74ccce7eb532e06909b238f365f0a7cfbf9fe3be2693422c", + "3a90d00fdecfe490ce4bd0c1215a29ed56d2dc497df7a231487d82a99fb6af725a096dee3a0ab10beeef599bb3f8f6e7e21e0030841c380c204c72f9dab5eed3923a789c305bc95a01fa2b72289903cc879680467fc327d80b75addb1fd2147bd231", + "07af3753dfa1515be04ba20e2f94dca297a2ee11abd48a5a801061c99741a378b26dba54f24551a1c8dfb7da9ed06dc3df2c9816265e1584c828c05c332069e2c0c7672dc21a8310c8e80dbe3cb96d03f30c43754640f6c2428775d2621c19538bbc4dc13d5c5319ddf0896e5b2233b4cb663c1fdb73ce5af6fd1d77fc41c01e269fbd0c404e49f6760f961cc0564839cff0f0a06876422bea510499edb6427f88058302cb97be53aa107c1986e668a78d58d5d3d0e5ad10202a0c9206cbcac8731e79c756738381d42cdaaf96054f0801c18da7c469a179e7c486bbda483e54af49572dd6c0c16b17628b66b24525a4c3b95d3c8a2b4a8966d18fbcea936e3ff36705161a8a7ead81ec444e96df605b18d21f2821a22d74ded0cac4840ec995a85ecf45d75ca757eb772a" + }, + { /* i=4526 cDividendBits=1501 cDivisorBits=1207 */ + "1cae1ee47cf79071de940be7d4e44848a1aad3d37e6a596961c0bcd3775a3ead3c0948b2cb08f3d700156f94fcaee416cde4050237809f341b8f7f747617d703dd469f42911cb0b6c9ba636c7746910a0519bb7f20ce4713f0f0faf7f94738bedad0063dc5d7122e201eabce89f0cccdce8c333ad181180978aff8cc1d63b3680155bbdaf9c46a98e4384e63f062fd3707a96a79beefeb1a36036a91f2965d8aac671012f550ed562502c76051cbf16f73f18c51356899996082d58a", + "7dd3466b654ebba1c89f42b2e94c493eee5a49c6d5b7c35ea7604e506af8e4cef517ffe0a46a716cc92cb0d712642759c4f2ba6b93b271bc09841223e06165aa707ae810fe5f317e993003c8b801cae1c3252b12fec86bb801d5d182ffef6d6688fcfe58bc1de43a8962617fe34c9194c48cc9199585e8458121f807fa45752364fc6d45295f44f5560912619ab107b464d1c8f4308fcc", + "3a5a097c0d1d7e7a0ffd7c0cea5629ac9ecb97e6af46818f24c193992d890e164f3ca0dd95", + "5743909c99983be89ece18d45c81ffe9aea6409c3327a9c5b8502f5ffadc702abd0c74f161d7f5c83d1d1266d281751fd4820246cd3a9bbd5027fc4302be3c2772a8dd93ebd69c6ccd2178d84ca85f4a3494423e8cbf9ab0135692f9fb3a5db2c1983c284f7b0b0301c5358285a61d23c5949bfe3918aa616874eb56d194e4d7bebeb679fcd22a6c137164fd8eef74664c1cd3a49c07ce" + }, + { /* i=4527 cDividendBits=3324 cDivisorBits=2671 */ + "0a813287f91cf1717688cc4283cc364c65482963e9bbd948aab8298478351334ee20d08d63a33616dababe6e169953c7ee40d4378893f5b49c6e1cb880f90a08197d46c42ac4395d8a9223168de7c941718a129e2ecf3af8e288631a6aa22ac4ad8af8a578f637652ce434d1a474e7b6b39a7d0ec546741acecc4045a8f20a19d3cefe4c0d3e966aed5154c1c40e245f4c5cec1b19b6a399b547774d2fa25cd9240fa03ec8daaf3f899fb4b256233cc8e68b65d7f0b758d38cc2f20616d09e92e5a78fe03fd843b1423193ade4e0a6f9e5b2b97de6fb21d45364f1c916c1af33cf467335e09be2d6a7020638f996942c4c702504bdee09caa374eb058f6a3703bb4e1f6721e8f5e59e455c97fec946f4ce8df2d6de9833679c84bf73296ed96f472e821d8a9900f9d2667d41450e3604d6d6c6af26563f0f25a2795afa9ce8e5c5e9e0ff4569913094dc85c687f8101d7b37171569d2c5114681df685a7b176e892346224706438a061a8933b989e2860340fcb6fa8e529d3d3cb79d508ac6c546f66efe0c8b39983f2ffd19d003c5a1f1a03b9deefabd1fdf9b817b2917a672", + "671f1ad9ec5d82b0efd5c915630ff19d2a9a050c4a4510e42cd180584b1244c98496b2d43ea3ab6f2d18ddda41a8507d3a52e645cd8d13b00c29c61623751a144ecd6ad71bc469a0d30925182523f14d7edafa382a7ebb55ca0faf3955bf6fc05d70260ad9f43139b5fe0c5cb6210b019fc9b9b707ef4d6eb0c3eea6d44e7f0aee7fbed49bb7c8bb310f549d550ee2474a927e8f1c3bb693edd0fc72e589252f9bdcc016f04dcb9762543a177f6d2de329526cae8173e2e259ed210bf6e595133dfc03c727d0b1c63935de623a666ea845971e8113bb25199b9f5a263dea79521ceece37ac28c25292f222ce78e95df4a9ffb497bfef4aadffb2a98351039b8f01793a8efb47f01b2f7838b77f815d52b25645d7f2d42201e9b8f8b5cebdefb610e6a90ebec522de237b16c600a6aee021028b7a27b8d8353a1ea0755ffaed9bbc64f0bfef6c2ad18e2003c2bad7", + "1a13f4841220ad4837e0fddbab6a44be7a5bf54f3441f6ea3be5df3ed7b6a4c9c863cd5660ef9dcf570749a313f1d16b89587809baa425a782fbfefe08d83d387180e79b2a204b06beb909ff5d52c9c2987a", + "1b2bc27c156841b2df46cc9983cf7de56db1276ba10107214fef1b4e77c4d3e9f632dc8a8554b30cf0af97bf4456f3a218ce8622a7c9029ac463eee2f5c09b64f0ecc8c0a00166ea989ac9f6e8c8457ac1a5266b6ac13110cebc154c7af6e224a9302e5d375ab5fcfd4b53e53acea46aaf082802579904c21dc17eb7b5f0d9f43ea5d5d38cd65818226de8266e92a759428991f5428348d8955954a8abadf7cd0f4f276b9d6c74549ce26bc002b820a28bfbee83303e6be2935315809b8554907c7ca1fe20cdcefa2546e501f552815d0e2fa8e80b81f095e64505b838bf80f46371c2f1f54e2c629836bdee05b865fc2662df420e9c7101a8e8c2357cf3be294912b0260bddfb9d5f6f47a8670964273256ff4479ec4b18aa4ac803c2e882b2e6f8647c9a6506be8a619a6c356dffebfb47c9fe5caa08cfe359aa671a865b612317b98e183a96bb11db596cf3fc" + }, + { /* i=4528 cDividendBits=3383 cDivisorBits=3171 */ + "78cc2542dc7d5c72873d38fab0b58fdd535169880b16fa717c97a886fa3bd5d5864e5e03c3e6507a7842a339596f4b5c03fbd28099159a94d643f1a111aa57f96097d1aeb4af4f28cb800ece54ce5ff41ecff516da6af55c9a1b00fbc70811b2b446ba77a5eb74c7f2a450268b078b2384addcba8d282004f753942449ef142ec178b2a22005649d18cc788683676d188786f8aff30e571b158eb8dff6aefce0d212f1fff232640d6279ad229aec29c113f0a3beef07a7def5071c34167ea8334aba1f36c8271ac4762d8a10e0c3f9b00460f37508bd9152d8daa8676064bef24d6c77d8ee8550881578e464110a3ab8a30d45f750f4812777018ed7b4bcd22a92319adf0ad1c7b24fd2ee64364e78c990cd35d85d18ecc836702bf1ea3792619227ef1914f130300928a2625e4493534e48343f1fd614f80c231e5b8902778c4d5a5fc6f4866c9ff21e6665031bf903a0bc81d3057c209dc891d779db36229567e64f3cbaac0f9309952c6405ee822f8a209b8664c414dfb39e806a37abddd4c013626967f618660d9675bd988d2ffa6d417bfe48167e7bfd06cb7c0c58eb8f29d09fec594372", + "04c7e56e77afedce0b6153992e410d58e5158b33b685b2db32d683702f611730b29aa9c43f22a67b351ea06635bd6f74f985e892bf08dc9761c9a91046412cfb461456cd25f3ae31d31f0250c8bbb2555a303548d672a47e5c7b3fd783b87ef515260f6307549011d2ff394f378d0b93f12b5328ae857a7bf79db2a27e7757b8d862a8cfa556b828869f8068de8a4447e56630bfca3a3fd391dad4a962d6d69dbb188433b7a6a5a01b7f5c96f413e08bb5d3841b1d2f5ae16a4a16ddd49c087638101c2eafbeaa91d9c0933b0141d5ef61ae5f954eb6de4958b8f9e8a643a268d31fc7251d5d1ecc5aa89e88609d64ac6701df9614f57142f6c43894751eacabc91d53fc0b92dd0f4b4c0a628f9777232d40f069490cef7ebd09a45805480fa565658ceb653926e4bd155ee03ba56b89b8903ad5a21a7a0fca8a5a66a72a9a8fd437d11a928aa6eb5fb97a6b953c52cd1e3a3b89126c3c2d03b9e30549ffdbdbef772a51b60ec07186a32292810790f252eb975c94387a91a8eee59678e1cb1f947a3e40d3a5161e03b9679cb0", + "194457f6294fde1bbc0e70a64cc27542194db6974a76f80d94fec6", + "e3862ee217861f50e65d3b263cac971a9e9d79cb418713ea915ccb0c7a7aa7fe02da141a26cdbedd05733d50d38ee62b21e2f63f56a8a781207944940ce21606e506273d8417f27c2512341964d1547b1f031468feef6cff156f28279a13bbdc8e183b9773e3f03e9cff85c82dbea4922e594b7bc3fa46450ab25d674a44c219c15dfc342b875f07f6c2c21a29f1c2fe649382376414e6ab48b38e0f1050302edafd9e5604301fe8e7cbcf4f978013d51be711b0d4b1707a1dae2a2decc786f9a0ceceea21e45701c76099300a714e0bf9a2e121108eec522156d75cf263b5e273e52f4f365ab8b98915230f11e8840d8b4a8d6e6ef0b5170e5ef62f433490955220d8203b090dad6baf70c1f36e4c5229cfc9eee61b7cae1b2611617f410eec044e477eb5c9bf753de59e5653c45f50e3a36bb31926a2a0eb59f8d6af14cd6b3ea126746ff86b2151677871f72e7979d29f9189b14b1bf3299665ff4ea9ebf24a4d908b580188f6dfe2fb2096f39365c90a41117c0891e8c06350ef038110cc4c29d18dea3c8a6e32ff7352" + }, + { /* i=4529 cDividendBits=817 cDivisorBits=222 */ + "7ca1b8cc0b74ce911a7d2a6aa1ba8afeaf601273af084a516a88c59891663975b51d56f6d1a8232bf7dd4ee7c0824346dae9c24d2602d9ec66998025ff04372facf5970b63ba9eaedf7e14b87860e04b671a5d9209e254d07759c77f8484b51a82b756662ad3", + "231026fc2751101fb0d59d3f8996ed6de110a054b0234d260cfc8579", + "038df3a0e6bb179460c26e86da29135c2b40c3c50a9d423a60abbcd16af03e51a2cdb58123838aad2b5870c623e693de8da5631ae3abd1c2b92edee8b23e57568eb770981c80ee62a1a5bf", + "1be389bbdb35bfe7e32f4047bd1c500b93cb0765ad67008ea0de988c" + }, + { /* i=4530 cDividendBits=3253 cDivisorBits=2620 */ + "0eaa76d4c2c9c77f0bc5022e0cf36d77322f59994c9e0a4ed8dca8ba0a43bb4a71f3fe629d23ea123a6bb69944ca190900f8569b1b2368d4301263be60faa50c0143f767bc540bf67685bc59b17b0ade444875d8cd835ac6d0c275401efe0595ec166886153a40387662dc0656ebfe8cea47a584eed2a75677869a44b1f47d9cfab89bf20ec6f5878ff1103acd60d297c8018e059d0c2a00aaf0ba2cf42934aa6a0720f729bda45e5675c96ac29835450552021a6f71506f0089ab1dda2f8f9fec8de0da897572a1c587e263ab635b4869646857e78fa22d259a1c33507a4536c7bb09cb846f6856c0cef82a5417c98e7457428477c7eb186b3eb76033a26e1c8cce98c807648ea4a730c3cc8cd4900f3c346f2e5cc0146edec6046ce72eca89b038ff52d55482f87263ed8756118c691b52ce06f5a7e0221fd69bf184fc5ab936cbe6150fb6f7cfe489cdba088ec47ed71380a1b3c77c9c1f39760a9741a2b0302baa00d0f7a1b32fad59e46fcfb05266ff04013e262216a245a5239cf862ae2c9ac142652c194983c1d27a73dc41ed61b7cdb897ae85", + "05cda9907a53e29c6948bd84881efef733fa182483a3d7ae0a4be67401d9cfe60407dca9176b2833a8bef9361b54bd983969b900353fce3585b22a68038019fde0eeb5358e5b3d944c86eaaef2fef17fbc1d9a798f331f3217f2a60fabb0e1d4ae99a7b622217f0acfe6e7cbe4160435575f0b458d2d656ae6fbdbc4bc26f1c89cf5f0b21a3355f27a81b72f5399a78b75516d401faffbe7f7a4ce03c10fc9cd2f241009b7a363fb7d3a99a8d713f4c31c6732df623b840a13b9c1bb1ef6acc9830f88df65aec2acb428a7052a77441e1d0fcab0919f6edd7ec16bebedfa936f82f56691813e4066b161e5cffac797d90850e1cdbcc81017989d6f6038e031a2928d1c7b792c8964a480c73fe371f0851bbc3cef6fa1ac4f9eb8c9dab53c812c5ae0ec793ce94a64096b671c854e7018f80a6ffe02eec01cfcbbb13708a5aa8a624bedb5f0e84e51", + "0286f2176a5e214e3ca4ae9582238034d44e0c234c10e7c43ee1a147464c7718dca9c1eecf61f913c23a73c54ec9a4e2597e9a7e5bee2a03b65952f6c71a7fa1e4219ee0e3b6b2de0e58f7cd85276463", + "28a475391f3f62140dfba53899e6a8dce6b767fcf5bbd108ff3f818c529a31f233950986986d3c7518b1db9cc8266266670df37c14c7706cdcdc916c3aded02b7fc195925c59f056d5bd55fd238653c65ee0fc70cf9875382c9738af864068267ef1cec664d7c7be29d8c9a2e004bfcada4d99424ce132df7c37b18d0aba8f3a53621f751295d5ab8e57e6b38b7f889ba814a52dca64f68fce96c5de7927edfd610df4c755c64e574ce09de7f9306bc60194e2259aece57234d02638370f9dc3d55540d29c32d17e6ec7620fc85c0d66d38e9afbfb7c656b7cf02f9a40ab0085d06a696b8d063c08ad431d046d3db6a7b187ad6d535c2dc3a14f9333efea7f97681b7c0ee3193d9b44572a273ab3faef55e4ccd55419a682983e5f0bd2bb3c1f77a571adac8e30bc9f061050708c65098fb5b14380802dea89e3cef840c7c41cda7665ccd2c132" + }, + { /* i=4531 cDividendBits=710 cDivisorBits=307 */ + "2766b2c7442e4ea7fff71d968c1a3576f47511fb22234317e5996793fb67e19a550f55224b6d321a01dc4e63ea51c442300b305abdfa9ca5aa5daeeef7ad399bd4a35de9c7b48222a2b8f442dc15dc027e3d39a1ee92966fbe", + "c6a04bc4080bd0c02254af65add15e4e4b1d767ccd2e10eec2be3b46ab63c1d4d333eee742ff", + "32c846904b7efe064527d1338e21faff5fe0032112e6d84826d7ba5703276db4fe6eb68f9bc9dea6f8f9781643b791a47d7fad", + "0fc725e577ae894c72deffe52db84038649f23116ba774dd705b88f321b1319a1b0b538ea86b" + }, + { /* i=4532 cDividendBits=1852 cDivisorBits=691 */ + "0585c6ecb35f1b963e6cf7f4792b5b98906ad91ea8268119b504f0b4afa9e970e6d02e0c69b11ba489c74f9b2f4baff41ba6a89dae460883a060cf6f39c13626407dc33d18d2fcc690593689de1ed2498e6e62f09b8beba4ac22bdfd3177d066df21ac228e92f12fae9faaa80b26770c3b7f715d14320302fa4ee5fdd1aa2622e545595a45d2b122b1bae035fd8a0c0a8e93cd925dcf676ad3792b837001bbd808381751403e7d93b908965a95365f4b39e79920b85c5b9e5bd604234cfb6616f42b0ec09984ccb06dc5b64a802a1c2f03815b1aae9d44bfe8f4c61777d12c9ad2b7f98c1ff69ac1", + "061509ff7223a08729940bfa3a5b3dd0e8c0ffb5fd76980ac5dba2d71d27fbb7b54e4ee7a04951d9933dc7bc07bb5249256ae523569b90b4835b9f261f982f5ffc9ab58336c5973d2cce56348dc4e9bc6fa016af114ef0", + "e87214d6f4989e9ad02bd2f2d3f7a28f0a193d388ef358000ba54dbc0acc91aa73c112d1d993dee7ed22f24979b78fc6492c231b0c622076fefb377ddcd1e683a4329aa228606aef98d3eed962ccd3d16e44ebd4eb33b6278af385cabee055b350cd08b64d7d693562a0e2e3b00d7c46449531e41db907ce5854c3ad736216a7a013787e9b0fe961975df0b9e11839d924", + "04eefa0cc41bcfa7eff87206ae26f0cc23545f3d63fbf1b86b3186612bd19c60d2e64b51f4bdeacc52c3b23aa8b8b2e0ceaa18ffff5fb86bf329102ebfc2916ea23dd5f7a8f20055e93593d009ed3a5d99d0c4c22e1101" + }, + { /* i=4533 cDividendBits=2766 cDivisorBits=1862 */ + "3a804d97241b42ff1465a8f2cf5a2d0dd62ea04fa7dced1721d3b8ac2f5480ca8a0599a66cc53869b2db8367b759c1523c5b2290249e709132adb8548911f9816885697a6c9d5c05fe75d66d5766bd9dee616a8b9b76bce289433b59895c433b6eb51707cdf04a5b3afb3847f7b463e56624309ef52522abdada74452c3f2a17a808b409d9a7802352d65ee8c425a93bedec4736c2c2e1aa37336cc980eae193b739c0bdddc3289d7f43104c24a531150371f02fd22b34aa7673ddfdf739c43b5c859152a34d57c4b4596c8394f62c0614b7543022a47e5193b90defd6e9eac20dac7683bb28c6eb63ecaf458d821d6a334ad54dda1c5d57995c907004203af1866bec920e987925f647b6482db46d17aeb03e5fc446c8ba6a116ffb291c82e0083bfb3189b828f927f89d3686f34782a8cffd7a81cb498aa94fd7e1fb5ce622aa8b8a6de86d34252ed238812499e1ada0aab1cc26c8068142d4", + "317ef7548e9f3bf06c347dade3a7055be034fe068223394c909f5ad212e63edabc42f9474e1806399cb00a69ad417af64e737ae53d6d02b32c9233e51da25b23fc9e9c099a955fb92997529cfc13673985e262d6526349cfb93f2926e50cc584d20058638590f2e949db672b3ec48fe8caaf286ebb17bc42b59048c50b6cd1a39a6eff7178e95c84e609bdff06ed3024e794444dab1790856dada40c5b48bce2fb8d50ffad77eafdcc12a9665743c225bc72f7fe969a4f45fdcd7dcce5f8c0e56698f03100303bc0be09018e3d5e0ca68690f2b9839934ac7f617ff22f03a354e4638eb5cfd100735b", + "012e938604b449092447d536176b1e33752aa25251aef0491a07f5bc9182fd6aed92c2e02a5101b5ec1846e6a5281e13cb11e5b3e983ff931601d03d4778ffabc767ec4a7fc28d2096cbb5725c7ff7ef42cec382fe545a5a356035eb10db439c587920ffdc7819d5655c3c8b257950b7354a", + "1a07b5e75ffe42227fb09bca7f16cf9083f86a25e6540df2df51f68e3682809ad89e9cd4adbf38f63a54e740ffa446dc7a88a57063d107674465eee96c3990cdb276e7f7b8d4577fe6d2fab6e32ba46b5e3463e93f72dc25606f6e35bdbe4c436972fd4fe9b29aa189c6e91d662054a6e6a6d69025b90460ca911d6e343c8501a651ca968f899625f5aa44b21db66264500f633bd8d9372622c8324be4dead228f68913f9ae44d1a0bead6139b9e6b04881542784712fe7c3a8565f4ba8202e6b43a4b29e10648ab33aca22d60de97e9fa7830562eae4b7f967f7f9418b2931fc9a5bd5a0e9e711386" + }, + { /* i=4534 cDividendBits=2844 cDivisorBits=2523 */ + "08551074e670029001acf4f42824ff04925602441607fb118e8f76a09055f778458db826e7bc3cad2a2ea951352e58ada7184cc1c9ae135491b151b7616edb8a4953f14fdf6aa7285d4feec7f048636daac510ee2a4c21488ad2aaa9d76a115714ff9b446b0d1ddfcb79dec5459d5be3cbde5def1ab1d52882e35def51bd272a71c7cb3d9cfcc9aa3f07f49c9b1c1a52046ca3e5238e8772d9aa17852a63894e73adfc077f7b73ee7c217c400fe1537d1a3bab98320fca378af50fcbb3dee865fc544bdc8863dc4c8a62049e916380392edae9e0c038884bd6354880affa6b971d30a1634a02b1c3ab5a237c7245bab0a17f58c747836fb48c573d5c14cb86502152f0823c25609baf83361520d9188f4761f63125a02ba878cb514ba405e6fd32afd96786753638a01546ff27c4e55434978105d02702877fa9a2de5171ae43cbaf30db11c2c5bee72abb2a333666691fbe83f612aae70b95f93972626ea3db6c2b0e93", + "04343eb2d0552a9dd2e6160dd831c9ad6cdaad06db6462968d7e222322e48d7fed47fa6ffbdac5420c1c25c639bb78e2b418376f473dbd385be8a1c092e365586ed8be222c4db83355d35fc807e074afdb23420fccd7f804d7ecb8a7122eafa05a0e8808a028c6ec63a403a5b3e7b9c5f90abedca9e89a7d56ae934b83670b2b64ef6879074e8b8322088162c625fba81dba933f7de062c3d14602d8c1255f16af22283637793c1d7f5a7a8380fe7bffcac6333853e1ec8dea74112a51245883b906ab7370899e7b4bca1530cd7f87c00a362504f97ee77c621465dd18351c15a7df40c3b8647768aa4bcaeb239769ba977932968e7be79933d91dbf61845923301036b5a2620504e63de671fed2db8a49cdaeab53f29e85c2cc38da14f1a7dfcb35d039b29f88c324ebbee799921ff57c82b6b986d9de5610f85bf4", + "01fb611dbc259b4dfb90060628b03198df39d3a2494290ed676fe246328ab03f7b85f4b5da817cc8d2", + "023a27410660b111afac4042a4a70aabfc4db12ebd8f0f7f2475d71137d2996dd607948b63b381879803186d3249a0015aec5f6d92e7ca59cf7643a0dfa3d96c6cb390b5c27a6fee3b47b509276fea44ff0d8a584784cacb89a62cc32f700d3b04e7d42432d442dc9e2b1ea7899f2f1f589cb3af078db961c88350f9a6f99cfb52ad23f1e344d7793e8f622a5eb4e3a1d5b77c45cbcc5dc499d28bc8f62bf1399dd4cc6ab7753f0b311d59de7d97946629a4a6619c080931139e85e116210479507a6c7052790e8e1cb862ef4198590a9d7c944c6defada7092d6f641fab03b1a1c08a55776e0b61bf9d819c3c1df6e7e4163550f64c4c07878c2a73b7d5d7b54ff41a048f986706e707249bc7637b1bc35567a4a3da8a52ec9bb62da50bcd0c145b6032dd005f49e0f278cee704ff01cee4ab5308b3d394fa69006b" + }, + { /* i=4535 cDividendBits=1640 cDivisorBits=953 */ + "fd0619ced7b307c8e9c277e90a2d03f6b46cfe9e09eb228f3ec2a1e60a5c0cc1c1e163bef6f7d6ea0d0306270fc9cc443ea6ad9d5ba443a8f4ad8977c1fa18d019ba464d7a41c0c899e3ef1f4b8511701ce33f611dd4179a98ac86098c5045e1b55f24350d6032f0bd2bc264fc4841c0541e47b4b6bcfb734d770f294bcc86cc0c9c76d05572c18e756a58db10fc1239375db9482ce36e69c02208e9a8a1a8d4ba2d52401e744b6361f23dd82a2269e2939d2bd1cb9ebb0bf4586910e9e8062a098317519d2070a1e83fcf43e5", + "effe11573f041d27f37e09a045253009ddbc0e462402cdc681e2107c479fb89d7724c49cfa199af6226c4cc30c9eefd14a3fed317890d4dbf1c3ed1b9f70cde4d2ddcdeec869f2d4362a93081a6d5e8da4d9581ac798d17dfe3bba3fefdb377096c78d2b4e6626997db6579dd14239b93fe4a36199d9f3", + "010de68c14f40641ce662d3c6470ffe1e9c4bae15b084b1ce5dce7d2b1a52722406bdf2171d3d2c0ae1c4ee0b88994756ce11e9b22b8d4a1a91bf073fd2129b2018d98fddadcdac421bc1e58406ce47bfb8d5981dbde3c", + "9158d3754cc95606b6b4e918746222df23ca52c5707967bcf7afc2ac8adcccd5f70c803c64f3a49921c86c06edb490257b84a8b0ce7d24f9067a4b23d1bd09085c1b1b93f487bc64a9958fef0ff4a4c395273c143a6dc5f5cf9521c873781d06596c76625fe26128f6021d32f05a064375bb0e0ede74f1" + }, + { /* i=4536 cDividendBits=331 cDivisorBits=303 */ + "04cecf7d123460ee3f1c2277de86374a3e11ab8ee5eba471348a899737bfbbac9460d00fc51e1184ce22", + "7f107798c96e85b7ef63f20d959929f29bb40f65f121ca4b483fea036975246fcc9aba1d1b0e", + "09afbf74", + "14fc9c28a31c26aee218c057fa0ce2d3e4ad9521cc4c11a7b426f1168e7e956f5e4d089319ca" + }, + { /* i=4537 cDividendBits=2696 cDivisorBits=578 */ + "fac3c4219c8439cf45d64ed1e38999fbcd4b3b723af993d28369bb30a882e8d6af432d3c57fdf58316d9160d8abe1ebf68865c84873937d40c0a6c29376c51a88e00f0b066840e7774188d8f4fa5b8b952c456e15fced7d010389aaa2676baf3a570e264b41337c6f74153b6a963e5e3d1fccf33c6ba5d4a8ada7752b05f1fe3403a7199d242f2d21584120f8a8824481d7130b0c0356a1e2ab22bd9aa0e206c64581e73e2d2aa1f70147eee7a3afe56b1df355687864d02ed6fb0added256295a6ceeeddb1456110fa252160c7979ee1f075f5c579df18b81bfb694bee93dae578ea53018a06e72a1664b21442bc89a41469bdbd75fac33d606cd05a3a170437b330dd40a7ea669f8817fdfd3fbddd7d7f4ea70978247f2dbc53ee6bf8482dfab71c5d6d0951643f69b2e79d9a26bfbf25293bac58254a1d4650ad46ee8d8e541cef6e8b41c4ff03534d42ae18747ffc5", + "02a72912581041bfd52dd19ab3ed55e8196837795134edcb1d348641e05bd62ccafb92036b726a5e656293d8404e9d349233f08d5811998bc2a2debe610d22d5a1931d7678cff83c25", + "5e85b18efd6cedb8b8dcc283d69a3856aab0f23e41000f3f235daffab6aaf1d798cecb89fe91671de7f5b685bbaf82eb0404d665690851751ff6e28d99c0710bcc7a46f09c54bf3a5226b5e872656ecec76e7f39850aa491fdb9aeae0a90ca18286837d35d0755c0f4a8bd519a58e961508fd1bb3004af4022f8f6eb90e84b5eb28d959125d8200e0dba1d51eb91e7249bc58d8903d161b9a7ada839de6285cdfe0d3b197fffb5326740c5155966fd7cd59481b8fd955f7c84ace7afe3eddee70b8e9ddd2d8e0b387615807eb1ea1de34b05fc35b7910035bfd7676cab39a9f3e04c7cd1b4818edae97f184226bae4cc85729a6faafa2e8e322f5bc00906c5365cb8e15c0b678838bf", + "01b3c42d5f78466e380f7fac3868005c37df22a3c9df0810ce6fa969000108651456f23e3acb09766760dbf4967fef1f489b48a701702df525a8dc241511b11086da461b963943082a" + }, + { /* i=4538 cDividendBits=2173 cDivisorBits=185 */ + "4b1c5a18180093cb7f9be9204b42803dce9894d1c19fe1f5125515e9de465508974c7d54e403e57fb3e2273c13c7c8c02f04a163948c754717a953cb48ab5883571dbc154f087960564e178c32d6cd8d4e3c57a1914397a8a905cc432c5a8de3eced92b7050d4f2e5f107e4dfa5f9e3c4d7efb479b6369261d03cd523fc771b9fcbb91d0557470df3dee5e99848d84f51075c676660a45c687296087fa2ff8ca5c95626b0d8259845e2d3f308892ceb470802c6391610754a8def0f91343cde14763b864486d24a57f8bb1769925868b10962df90f0219912c43dd28bd224ebd34ee9a9af97257682ef0bf4dfd444e0bbcf943e3c97c37426b88b0d86708a49d9abe8abac10bf124a888dbc9cd836c", + "0181cbbc538911c04979acf73e51bc4bc95aebc0b695ec33", + "31d73b04a296970cd37a2a9734b60e929e3a9b1271050aef26f8203f4c620ea75a9b22f2f01c88a3d07c247ea938690075e799ed629a6e3f21b735fd8c745b6a59539e53052d1b509bc9d29b8998b8d2fb4edc804cb68e4483edd903007e15ac60fe22060d72e1fe54915ca26172f2f37e9edfd6426207db982204f3db681b26c229ce4d1f4a78686c38653a9fbe9ae41a582658bb6f5b0060b28b2a0cd71544f057d6feddc2f6b26ed64cfca60a0a80e45c46b25e0b3e7375bb67b609fb3972af3cf398b2a6ad51b14b6f95ff934b924e089490d494afe30b2c792fa697a34fbe19fe4b6e7aa183f2b529e80d67c618b78f1a433a43da60", + "19d069e0400af9aaa49c493a22937e704945024718824c" + }, + { /* i=4539 cDividendBits=3857 cDivisorBits=495 */ + "0176fa65a02057ef4901686126ed33e284b53cf1c64f38b9820e3365f19f53bf70086df2f08ec01d49143e942e68d78d0bf7cdd293ccb8a34101266f7fcec020a76bb6f5c29fe205a95c8b275f81133c673ab663d9a1b1864cdebc0e8f093f9d175cee3b42024a57b923b1d7a0df69b312bb5df2ce109ed4adc1ac93f0792cfa31465312d9ae0c03e7a39656055a3d88190bb4d9137dd68079a8ac9369b2901673a6a0bba203639f37d1a369bc56831affd1aa8c043fccf6df32a82230aa6f93f62e9556d4eb407c98fedc9f9524bb08e41db2dcda78f0c9a52565cb2a5cb95bc75adeb08ba2d028f02ed7c6dc47e153469df94d67d05a74de1d66fdf3d9de711613e2bc9eec031ae7576af4185600cf0a9b97e8dc40f2ac97403e50633eef5441ed8f26db9a8fdd5dd3add8d46169fb51fcc209d615bebb03fde76c0ff8848392d3be8741e56db7e7098195956c10c4cfe69791cb95a53f74fe254a18c6e3bcab1207dbe6c7b9712f0f6f571c093fa9320411bd1e10e41781f3654173fe4df17de97e28667a5b42f3a7e115a117eca3917ecaa68d72c25ce167a0cf73f55d81d905c304dd3f87eae82ef187907880ee915fc29d0ed4a1b88765d2ca7c2cdb6a954f478d381d313df134b494dd9f2c7753753b83efd2888d346063bdbb50f4aa5ae9e6", + "3d28dc97a48eafd32809887d33d2f3ffba7bee781fc3de9643483e64bb147217209c39a893f0d2eb4832945ab9c0cd8f6c96d7adc990b536681a0938258f", + "062192551a921f731d03509cb5cbde12929d6d12114d58d0a3f9e617d6baa7348adc1633692aaad759a9a870f55c2a5249b44bfe1596115b32c59a371a636646e431d14320e208ede86a196ee6154ccd627162a2b8982920848d3463a8411cf62ff9b853b7c20537e1c63d9b868633afbad26e577861020cfdaa980c51def451aadf6d05d3bfe425c77959c2f9eb8775f646f610c17f890912b174d6ab8a2b4d65ffbfec0ed3e4292507b4e1769d1a13250dad643f3646a0310c9e8f5e83be7b057fde9311b9ff946fbc76188fb47c4804ed795a5006100bf6e6bf9869afeca567885c50e84048a53ca4e69115a1cbe2141e081ec4add13f0800e54c9452d929067c3c78614e222df2c326d32bdfd26ccfe9875c6de2c4ccefbde6b8d012db3731a4a3515ea5a0a969eeb5f136fcc36e8ca9b5c37c84d6649804612c2e1d3ff1f4dbada245defb57c3964b5e7bb43f24fe3cf4404c9a73faf6e89725e2c9d0984a355100d71d1f2ebdbc06511c7fb7594b8ab547b608988876f359c989323c79e65cce79e5317b3f8d87ceaa11aded302c17445ab5165d3309d70ce17e6132ce1265a0cdde", + "2d12f757d564ac1da2b521ad1c3b7569212831513cf5236b3062e45a19743d22723ac4d40b4bc8f144bf8c3280839e405bafd1a176e2582d9107d136d4e4" + }, + { /* i=4540 cDividendBits=187 cDivisorBits=44 */ + "051381d24e1c062e65f928c96248039f6e698e51e065683e", + "044769b61893", + "012fb27a8626fd6440c3b94b2fbbc91c3d72ed", + "03a2fcd83227" + }, + { /* i=4541 cDividendBits=2409 cDivisorBits=951 */ + "01494a0beba7e0b21e41e3b9da670aa1c2065883c1918e07ae717f12135c482062ed62fafdff77512497c98788277b92817b64d54e920ab8a4ed394d6fd38b638b651cdecc1c89fa5fe845c0b9c78601c45921b3310f8c7471cb36d917eceee83d3f30965cd494ae50a50bc69c501dccd8a2599cbd3e8db0664af7b088b4ceace65b5ac26d8ca99a42b8b5949b76ca0433b22a2280b841855e990fd9311629a2181b534fede56252b99d93c913d8ca1524fabecbf0bd1dba8de32696891df40dc9b4b41ad043b98c70ab2524ea860d1bc8cf00f311f946ee0a3e91f111d59310f8c58ade12c9c9390c8ae069baa57271c68bfc0f7838c83db3cb4e0173722870eb781b9e2290c2e1aaeae5e6b307829942e7ccba04c25c49612266e1fca8484841d72deee06125eea11695cabad3", + "08b7a30f162c8240352da8448a98309985b8b942c79a1496f3ebbe549d84e326637b2637e8b9287227f8570b146a2eebbd98dc656c57dcd632d3d7f11805e2951fd0e9491453c196947b66d8ae2d56783f1b85f7b1b416327bb974821e053d97c3ed91877eb0e414377e04d1211ff14d26ea8fbd162546", + "25c62a840a10b58b51ce978225653efbbce2c74ea6343022eb596b5fa393588cf0c6a2c6c2f7066045daedb1a130246a3499b194ab9898de68d131e1143f3eb9331b4f0281b162197f99f94e0175694c2c03da4e3c48c695ff17597bc6c79109203daaaa9f99ae8f52e263d2bc736e40298a160ac2617deb7370d90d24f6baec99e3b3afd2e66340af5792e6b24752ce707218697e747c990c4111c8a59deed3cabe5c2becbb92c208af2d703c3e6066806c4545bf9f93", + "02b010bebba1aaad45b01149c11ff3d129bcb96a2e6791c2da73d87a3abdb359719a36ee476a300a2dad5ab22de5555a71b3e4d56580d77cc585e711744f8ecbf412b33a955e5ac2ed4d68b35015a6d1f0bfe9f3d24af9cb47c57316de3c9387fbab009cf8daa6a00445dc40da73f518000aac93b2d9a1" + }, + { /* i=4542 cDividendBits=2294 cDivisorBits=2029 */ + "39adc796d0f6f2af4d8a5638401bcffb5d056ca2493ea2190d0f4e0fd94a29353be9899cc1f44458264a68c32f92e44e5ca113354307e1b14ee2f76373e603f67a1c0358339b1e1f418246c28b4c5ad217c70ed5a750304575e0dbd953b3ceea7164fedff2f091b67e4be9e96df56e9bbe088ac42a7ca4ff4fd4283f80ca7ad699022419df42b051df2172ce2990ecbea0b0d18e69b7ac67b85b4e16bc0e088191c6f7f8d61610570094c4b28dd63165a36734d6708d50383f5121ef9db5d5bf4088c5d9b6b30be60721323b226215b635d983ab4b3eefa45c6bf4e94004cd3183972ea26dd9ba58b69803949e0b94f1183679fca212d485807d02d8e5092321bf4938dba7edd67223e5544450a17de2369775941b75be13bbaeca7145e4fe", + "1c3cab72c21b01ee0040e2484f29146a24001de311279770b95e1514089f364dd970c6b2c9cf38e14307ae9c0c986d85d6d947ae9faaf3b0443045e99b99b42439db5d93d127da08dd64ee6e9fdcb2995ea4dae3279321a222ad39e593667c9750c481a2858dbbaae4362e2157b3581ed55d23ae5648157155f41aad5edaddd60df449a330a34f399c3c7d3c730993af13411c410cdc86203ba40d1d24bcd6868c65c0d4c39f31368d23674a44e9178f84d15bd8930f68f794e7387818cf71b7da891062b3427688da97b4d77fe9c77438064a4f1e886a15d5424e8d400132c1dec663613bb38653e5fd21c6980bda91e74fe61b8430646515dd4ce7e98b", + "020aec5b413fbb80cc3a16e92cf88594549d2f0e35b34edcd17cd94a5bf71b6101ab", + "13632f73d7c209792dd715342b8f500e1dee532df83b000c95cf2fa1e860da27c9e56ac6246a20029a25f96d14b78e5f7541b68a3cdb2bc3b0d3378a0f5b712a842addd5a06a394cab3c09635253c0c1fa42d5b624b4b5cd0e10d3ae751926e0cd53a14f30eef509db6f19e6958f70946fbd3f8088b8005db3c362badb458a20c674ef53b0cc45885487b5fba969e0cb0d047ad02d71e1a0b2e6cf70da7fff295ee43a00848f936d4b0ea85b00f0687bf8c7fda08e0fae998707df349ce4bfba180a1a1be61137596518d6f0855d958de2b1604f8648495d3f90809f9aab927c8f8f23e7c2d55402c2c8044e0ebfc32524103b5f183b0634df0d03c85a25" + }, + { /* i=4543 cDividendBits=3225 cDivisorBits=2885 */ + "e9f496be60fa8332ba386a17f56319e19f96d47d5c4dfd59c14d0c6fe860e099d67a32b303bd672fe8ae99433a20bbd1aad1f751ff8307b8b8cbd847e7633a89c5335e85a5e8b583d68821126bdbf152cffa5f284d7113f2f5eee40810bb0e4e24dd0698cd6973e322d206e22f57e228ca2e5561f60d3d23af931e3eca7261864a0040e4bc47a38fdcf2e0b0c60cde86988157f77ef8f68167ef5c1c8296ce55c427625672f77996a979779e13c7780d578249c93d318254163bfbc384a2eedd364781fc8159e8f915c93de8232833b40d9a85f81eeb90700b54089b840e2f0976bf8ad5b528b36e3c053ef25b6bc29444e5df1f5b7f68d6902b509fd48602aa56f0011d0099c6d2b7d96d9570ccb2b07129009fa34be87fca46a187c37a6e0b2d3569f20e8cc65dd23b25783b4796a17d2f37c91bb249543b9c6d0c726e67930c2510f8668e357c9e68e239ef52dac0a1de08585f2d9e16f296f419202e40344b4a5545d2e54de17bc5e745152e7ee8dcff77c0b478ef72659d4ffa27feb191369c6a99d8f4fe6ffa20b02c8b73ef71a25037", + "149ff3960e1ed498dbbd3ddf9a64f23d3b52b812892e2e672e03e583dbb59aa44ab9f5b83cf05caaddcbd6cdd7e9c075837890bbf745f8714fb7c05107a24708a254ffcac325dfdb2744eb4d0647130e1843d5f8a38e9edf01b4cf9fd0f7dbd967fa9b24c9fc1f41ad19748c1a5ac77d16c36d2f37fd97f163d15006f42aba3a267d82b4f42bafd23902d73e3d9f15c889c207bb679134b8b7ad29d9ccaf1b612f66fb15a7b210884a0372dcf485dc7be7d859e7b21d320e4f45adc40343ef9ecbf06c14cdf49aa9f9c22b482097acaffed6e770b370776d602ff77c37474e89cd7199252c68d919e29b2bc0d8a31f0b642ce24e3ddf5470d4fddbbc25692341e5c6077e2a3d14a125be42eb31a9cac17803c5480fa6c33e4ca3c789433568c3fa1308b24d64a8af45b4f2d346054d5e57852f2ce26f4008770157dea3fb16b827712b689d72b507be09c47c9950bf03d201ad1fc1ffbb1b13830981d6ae5d706d71f7b92d94eb49f6", + "0b57e8e65adcc90102304025420ffb242c063c3be8764eef0d9005906bd41f4cb03c7c7f70cff258fd9a0f", + "0d5fb7dacb3315c3c4a86315c997b4cd067733b464f1b8fe666b2f023dbdeed1509f68283acb355b9ce438c85bead0ad800025c766d20977d35b0dc55e75f2b7cee9b313dcaee4ead4f7111dfc24eb5527080808a6fe3a3b212c44d17e737c7e05a15acad02076ea1b412b3deff458e60eea357f106bbfc8379855597eaaf975c94bc06fe6977dc7c95bdd28d02b797ebca8508fb02c0e7db8052f017a3f12e4d0c0d427e68b727293496a1027b39279b7d06a6032f7016be394d5953801f10b531c0777e4d2f09f094831fc9fe2e7ffd18e95e8551fd06ff714abb81fc50239031c61239afb32a9e5e178ae6fe0227d220194ca2ee8be146c38bba47b65277a25f2f2422c861b88732aae75c0b193214b614f64c07ed2984b502a4e9c9d9219649e454f19015795cbc1cc585bb8475015e0c846f1d851a22038c66efdc46b63122942a5e8479f3e1e12c821346e49386c463c80e1e3b0f63af2ebf22f735fa5f35f8b4c2d853cfecd" + }, + { /* i=4544 cDividendBits=4082 cDivisorBits=1539 */ + "0377567365adcb4d1b7269f7176182eae3a476b25ac12e6a07b66f469588c9b8e55408e18a36fb1c92229ada1de14e22becd3477714c4053a9b65d38ae9cb048adf03afb871c3b1ed89bf8e784ee47a659d2e7ab238ab802f5ca600dde9051e21e22f96b55711b0d5d2a5697628b0067045c31aafbbd20891c9e270afa25e3f1d83b5701ffa6287a872426cdb61d9e28eb7eacb68cb670d3293e3069e5480834ed1d68c73b7c8f2288e2e41dd32c17cd68d48849e011e3d5ba26b1b71e96480f423d07c7cdcdcf3ceac127a9390452b0ce81ead7e025d11484b16e28eb83cd7414d691d4e2a159aab191228ccbfa3bf6df6401b2634966fb7f052c580aaad01697a860b37286f682dd5b1a22cb6b0f3c04c9a422bab7a7f7d75e5435ab6ef61340d8ef7245591631c52157becfaa1cc40de0750cefb28d2e13bb7c52e4cb775ec3a62d7b101641b6ec82e2a6c1caa4a50dc0da9a0a491602a9394313b5bd06df264e7e1b64c9c4824e4cffc24d560488d97ea54c22db1b2f08cf76908361a40e86707ef5c355b122d2b3de359317fd6b9915cfdfe34fe19a2cdbad5752b3ef28172026986cfaa6415e08fd2f7013cf85678f969d109460320eed30311051b440da139ab1086ffb542df1d80131ee4963b9c7842949f40828ecd09f9e57ab0c004fd90666aa80d3982226088a5fda5df1d5cbc7180b19dc04feb4c303ad01c8", + "0682e39e6023c5ef53499a65ac79488dff0ad818516ff82492865f7bc5d0cd9476b3315f167073e181adca97b221d85263eb10a224fdc7d866f3483e171d65be0dd2e71ea8734f15043862a90fd64f8eaf4c02b0584b82ab4d5fb7a7dceea48268e83768fc62f1467c7f5eb136e124ed5a41a69b25381e0d4094002dd570735b30613527b4838dd65f250211ab33b8dbfa318176722e675f6603718664f4df284b1f7b6a0905da61fef81e65a898d0371ba483a81f6112fc6c823cf6c84152f06b", + "8846e19c88ee6c214609b2d676165fe407675d36eccc9b484dc2ae966ab7f98b5d6c8a3f2973a45bff3bc40ce198421880540931a9d1ea60b7a2e08c03077724f6cafed59c7ef40eec7630cc62e60a01276af7c6502168484e80dbdfef17683b976c89f7b75507b2c4e3067fe49a1ad40baa8551500bdd9bea399880d3a2872dccf16e6417696ad1538de52b7acf4c7403b4b1445142d105660807098f0c0318289b030ef3667a11a63180567f51f7863f3c0ba90098c10e63d831ed5a968bc9c5d39b9ae7076ae2fae3242dc3a9984501469fcb58565165c925498a543f58ed855e6681f97870e71665992ad8eed62ea5ad237e8bbc25fb917d0f735ca787f30d9815c88c79ebf56171cd69dd5079a6608c4c17bc6b35f102e2746a1de32c9e2ca7734d086ba8e4b42df26bc0d5ac91d1b896409e4bf652233dff146364", + "0191d18b3ad5c8b389696d9e44fe5bbc117c3b61af75860a2419f878a5b471efc487167779ccbac0fe1a7fa5cecfba0848372efdbecc16644c4d84ee5501d400a6a73eb965e44d88d6fb8939f7534bb6ba96f57c995edd0f922370b94e8ceaf711760396b7612cae89202298c11de12bec2e9c0ae46ef16bcde523b6241b1f4ce79dce557c5a06a3fc769099ddf71ec80c396e1b4c826041721f3a8d5ea2a41cc0a12d0dd98fcde37c3e894b588a8fdffdfb4b3b3b0d305af015203ad20ef1b6fc" + }, + { /* i=4545 cDividendBits=3733 cDivisorBits=862 */ + "1163a18ce898da48682e1a4614940708a362da581807621c02e0becb512cfab80f0e18a3945c7d19c8516eaf46b71fd5f5bc8cdf6996fd97e9253cbad0a1e5800fddba1494a905ebf7da0dd2f21a8697776595e701dcc7e0887c8eed28be775a503e5f3436dd4c8a62f8ab500abb2afe4385fbeec8a5c085ef23057250dc5c89291bbd03a2697f1181e0a3775f43b5145367f1c8a9ef7432f9af5b45a5d21d74b2cce498e49efc53233a5f57f0bab71870f4d393ede4207996453baf640cf669ae0e27c0eaf69125606e93d8a842e0ba5b1af74e2566c9e2b7977afe3e2cbfe6f58725a97d9dcd78b601825669702428b64dafc8a14fac791cebc42e3cc2239fc5bf1d06fea461798b3fd0430ce10f43a3aafbb434c2c36fc03b178db851d263c68735f0f515b8cff5bf24cbeef7cee0f295c2ef32c297fd20179c1d2f00c36a5d623719a5a5f163a55e5874088aabfb648a91109d9bb3b6cc9736203882f40eae964173c93544c88e178dc13ef6a35636069fc4dc4a21d98b5c5c57270134ec9556acb43f2f5f6dd7902fa0918a05a0e1a4de9595c4cf3c888fe19ef238ec1ebe218155f01500b93837fd4639c379a2712f30e1373befde2d33de77f49bef17c2997a0bd6119791a60263449e4837ae701acb", + "23b60f64fe66cad0076b274e99b123ca99e9f73b4f4a284d8e27fb298e88c6822901554ef1722635d0c3c60aeddf75fccb11cb8bb6182beb92529525c844cd2849c22fb14a2d80772a7d6b2e89dff7a81366fa96ec9e0a4d9471f84fd56dfbc62cf64587253323947b15d1e1", + "7ca812c22b5454e3ccaeebede7cbf85d7bbff3ab601f07bec45427d4aa6f0a1e255eec854b54548cccc7220b422fd8066ce45ca4e3ccb5ff78bf426f0c1b383b8578044311a017395579bb352c037ee5adc232bced2010737f83d01a939f8c76bde782be416ca8c65cb19e81cbc6b9e889c4c54a54d094b9d344c127622c1d42c08d68c7f6dc2afce19ed3ea69527878b326a5b7325b289e556a542de61a1ff7b8bea788f02e8d7d13f6781ad52f827a14dfa80a5e96f896676d162a107d1917e1d9cae154a1c147b2740bc58ed4131b44d9ebeeeb066af7607db96f1fb9cd0f28b61be0fff05c3d59f222f91fa2e9fd306f4280e57dbbd9db2e56093135ba782f99d8693c34a7085e7e0cb3e2a253139a5f24742051808fe2e5b705399136115c10fcc3baa0b62c0d9b892da7644c5f7308ebbb5e54ec05e35dfb9f366be9fcb099e9e4910e47783eb04185f9cefa2e60555ac8f2e3b656bfc0004b3fd510f969379d0279f3f7", + "1135f087db46e3c93a324281233a386c2c24edabf96921ed43c27286d5499653ed8eca90169e1fc010e206ed7ce38ced250fabf32197e72b15c704e23b4db13899ac668e566422aa2a0012c060ad60ddfe8c7b04bb590a5fe99c5c9b0c71fcc145e1e893c09a9c2e40d107b4" + }, + { /* i=4546 cDividendBits=1788 cDivisorBits=988 */ + "037dda3926646ff375b3d21d763efde26cc8ba5d7aead429b4600bbcaddd90db3eeef34f479e0e5b88f687394d163b73e9089a76f3cab46d2503b3da02dc0340a1c821c1c89d1f5df4ee83f9c604bedfc0cb645c67b139f07a5a70c1517f5e41c27116a497c65ab193227d4e8c86e9d04e5757d0ac5f1a0b68fb9636cc54af217fd7e588049aa507df3129f7b6305fd55ac17b2097ea31151081108e27f66b64561381850a99a9a6a0ea7050e8564b83304bd6c0f95054270534d1f1ba286da2b70173223c1d2c9e02275d19a32ed78746d21b6ecd59cafc1156876fc58745fe", + "56e77a0b1a60c02351ac757f6f8f6dca063dbd220a6acb1c903b2b6faa5947edcb57fdcecb732a95ecd4feac29f49c131bd70a4d86d2d88df561f7c314ee9e6362827644cd48d569ce4551424e30d2a2ffab6bd6e445a359cee8d6afb6635e47e2f82a676a2c45a1efec456e89b22a327000b94a7f5db2f0493885", + "0a4915f15639a707b4a2ea348dc241356f47722d2ee09770af3bf85ed15d3f7de78f3ff6bbdab57044ed9e2f1bc695fe1fe590bb83cd6476fcf217f3511ea65bbf399c4770cd32783b7d2b8cde45832327fef1aaa12dea746f8ad1093ceca9f32b03007e6f", + "249b1862602f0f5323fea5133ceca1dee34cfcadc3696b47be4fd2e80c34648d74c0af21941f8210c18bdc92c8200dd56919556d92c47b951c98ad3d489b232d45e307ffe0a1b5438249eb678fb7dd948ce40b7c5046851a0ced31fe6e88fc91fe34e8cd769fd979fdd5d8b3a582b4adda2620326e3b94fcf64e53" + }, + { /* i=4547 cDividendBits=689 cDivisorBits=500 */ + "013305e7aebb5e37dacd97cdcaf15093bf9615b0f2b3e047462a40327e0f76e58c04b03c679b0cb03175cea990e6011f262c7c392fafa25d28ab547513e26a45f9f6dce2e31f3814de3298c9cf16b1f0d2f7072f6dfee9", + "0938492bbda26d7f186a70d7891b4540982a8bae2c51757a2b799cf8a45329b6271ee33d2918501ec18b813027c17e18e0692ad521b2aee658efe87ae2551a", + "214cd78c396ae0ed9d69116b5f5935e672174e018ba09c7d", + "03353e8fb4dea766077c88dc6f0c259872375fe0819ea4a8c1939f48149e21be776a25daf870c2ede1a531466e813adfef4596f80790236f0834dcf4ce9937" + }, + { /* i=4548 cDividendBits=3485 cDivisorBits=413 */ + "1c672714c87b59df245e590b81fc4f3a63d976a0eb3c8831f0e238859db17d56d8bb45236179668263919896a88dcf7403c7ed7fc7f07a1bc818790ceaf930d30d65fd3b4e5d813df048d8fd8a4ae1f64ee65ae91a02cc58f5ad940c6109247349470db239de41257e3a327a4ffd33b2b3b8039b1e06dc01d179a676cc327e3b176d5cbd6124de17d6ac7bab7817a02097046d1fa6e6387c3d9394000c8c3b7668e5d3b1a3d73b792f9c09960a84bfc750a58af1a9c70d2a6cd5149e2f305af2774c1c310fa69f877c397654a5918163a037b5faf17cad02c709ad8cde20b50a193e35821e06988687256f2b9aab978963382c3ff2c35c41790cc2fd6be213ab294c7ddcb6da5928bb899eb27df0ed2c51fb328b0816733c866e5a3337e143a3bdd91f6504e7843db69bcc0a645b56e1390e9ce6c3dd8bad4ab4de874d2019d9c37627eb1b17fa6081a0289f84719c8d877f17f1849b8f5a8337de136e3dc6bb27ae8aa9ae72ecc51ff8858e982f118f9c836f0ae53b7cbe6045cf8aa3619099f61071340fa748447423c06cf1cbbce544612de89fcaaec3c7b6754a475e134ac9596d537355e03f44d8964df279afc5a08f9fca", + "1b1809a24e52e59673288d3bcb293973a128f2fe6faf4f4d4f33899280181ab0b82ad4a1285145578cdf8d5ccb89bc1681a12c50", + "010c5e6015e5a6c83e7afd78f65ba6e0c46af50837996f71fbcf19bee394f6240718b0d38b0b4c196375654f236f8fe5def2abb69b038513c006dfe8c1e66b7e26f23493e98b2c876125e0eb58c8d371d3970d72474764f9d46120cec29822469a470917a08028def46023a42b6abc9dc89313bbefe65c330a2b79580bc17c0069cd47f07430c60c2fed1f100a1fd77e97d751f3b5c112428867f3906bf3c53dc67487d14b37e283bbd91ac22dcaccb46912ccffe7cbc9f2fa64943fc66c2306296396fc3804104de1fc3b142976641b397eb8ed1a5734467a1fa3cd032cafe703c8349d97330f73ad5e296a4c3d3f2ee540ff0efbcad0292446d34ed41e99fe7c366be0209d6ed4342d2f18c77c09dcfe70189b004eee40f805e1252e53aa5027716183100f0092d51eadfd5240818e6f8e1c89ee5d6cd2bea0bf8d7a1c2e2dc46a8b2721c69eaeac30338450ba8fb7c612e776d73350112763b46d31cbc77aa379800619fad8cd1e574bb848585ee18cba4306b4a3c9087305b4e2402c15960a", + "10ecd3be2a384b49b1c84e87ebd0bba3c4975439558407aac5817e32e5424ce67b021caf58f832131140bb9995191d19bdbd04aa" + }, + { /* i=4549 cDividendBits=2527 cDivisorBits=2226 */ + "50ab2e7775b862cf45ac684f1192e9b1a20bb0e5d509a6ee405a5687b3d92e314441d19348c0047ba40f860efc5cf26ec2ba8e694cc11418d1d011a11bfebba3cdaedaef88e53c15e60fa234820a9a6319694af12d4d7222f724beeb8b7ce8a86d7faa2d7191ff4a42b99e7e2cee5c2cd048e529cc58eb430d2f06e64e7b58dfa2ff631ba62dfe0f6da94a2b3b5fbb54542f2d70727959f3a47e1c3e9cdcb0c10499b1b4e25b113f753d6f7b21cbb216c1b3e4210393dfd4921fa4d289ce019c3cd1e1d3031a3337cf1f48690f4bea5459109a06e5d2a5ed1346129e8cc0aa6ecde3d202382eb315f6f58bb85f3edbde47dc9ab5a73d34923d29ce12c4d376b96bda3cb9e3b23c08da2964c792c3e4b13490fcd4b0d2518435a8130b8cf3390097247e64127651d2babd760c3e173fa2d6166238e5ff2b4ba0277b6d", + "89bdea113205d41db6c266f8eb56be0aafe0e4cdb0b0edfde9da8ba7f62f695a86b77632a5d729c88bb877a90f2c0815df52e1f4f7dce4e78f763be725090e066329f2d80804a435cba8c50553a1476e0af2c99bfe83603616777dfc20876b3b86ddc0df029b0568c6f6025479f67c53deb40b409f1d59574833d3e2b2cfd36a505d96458d3dd7f520c90370de267a82e8608b3840530201868ae01157e6763f7de1242764123862656949471c7285f15a5feed6e55d6fe6f512baf8c80cac97c50009416484219be77e273a70bdaeb43b2a5d3a5f5810c7fe71501f626694fedae463368004a6d89efa11ccbfd61259ecf19a912a29ede94bd57829db9cb612bb3e24d34ed0fb10dfbb7a7c7e70e418454769117fee", + "95ed3c3dc9ca2619e5a217907759dc6ed118ca00e3a93e3fe0a1f99887edff4950361b355baa", + "2aef4848b6c675f81eaf843340c478873831d70762e6a62080adec50abb476ad4643da36acc6b7a5e197ee68acc00414969894ab91aa88b84b98022ad37f70d422517f54ec668ab0035e5a5849ce6d6bb33b3ae8b2b562c609fe9ece343fb0c79113b9765bc25e8bed4bec2c7175497acf883972ddd75e4db515b1583e1bb9b9759de433b64592f80650df086b8a7ab71e09f0fe3157a4a13faeae19b253ea2618e6d910f25f0a40c779f01715ba710af26fba395091114fda9571a9bd5bf8397ae4436643b33eccbfa299983f9a33a5bf6aa989365a3d4fc0548f8597eaa7ca5e07b5337169b2285d562476f8d64df7962d1c0661a71d3323d7fb97dea1b71d5d3d650017d21c577872a0463e30bed9d2350bc8ed61" + }, + { /* i=4550 cDividendBits=1053 cDivisorBits=22 */ + "15003c08882f2c14c4801bf6812424a4a04389edc37538af9557c6d793aa8a48c4a144d1ac18e06ed025f847c47160df20b27b4d082c9b56a6772f8e0017bc6b97dc6ee1040382d1eed8124c759971061149d0816676adbfc103aceea189b1e1832817175b3f48dd7c5d860736dd6678dad92cc8e2b4b6471e16afd6a671a7ead5b3c4ca", + "33e42f", + "679b09b1dcd7004196c7ace62f22a64c13f4f181060fbc86784ffd8ce9fc5d2f65efd5587e10d4536dbe4e820b1737fff34079912fed426921564e25ebc7b11a199aca6124d72a4a1e752504edfdde03a706f430670538271396dcbb73c4a31ec7c16a3381e2a182ac559273cd02c5986891e03450130829ed2bf6aa214f15eae4", + "0e94ee" + }, + { /* i=4551 cDividendBits=1374 cDivisorBits=459 */ + "09d8b2fdefb9688793498579c80463407672f5830cc3c757ececa83a4bf370d846e1f4dbcfc11b5b5c1074084ce7f21d624c1dc5c63caa0c87dbf31f69cd8405f7c689b3ba1c9ec73d430de03bf81dd2adddbceda062ca61ccebe0524a88619c5a172ea83948be0e25094c4aded31dd924ab9d210e33f6540dc088b53f0d094e38c25a20e9238b91b8c09fb301ad8c1a86546d54759a1d1794f77470b0dfb7038575829b52544730abb15b62", + "07bd3471c5bb6282d2aaf85e1513c59cc6f86c25f6116ab8e1dc5ea00dd6671870e75e78acd3944f7580009722aadd7b60ea7df67b58c554573b", + "0145b5db96d800816e9bd23bbe77ca29e2ee225c79c1ba728530e1266c57fdd2020c0bfe60bcc6f6cdeffc622cc7fd84e4edfa4d9ac1fbfc592afed33197d7a4a696f55c61931b4dec0f78ff30a8cccafdc380b27e224907ac4dcaf649868d0b9ff148888fe1f7d19de9c068e882289231762a", + "04b6f579bf26026c6564e004325905819cfaca85d392dc1b6644d9eb82eba0e7d30eb01ae165565f1c9afa3ccddee93a465a1f8fa98f135ad9b4" + }, + { /* i=4552 cDividendBits=1174 cDivisorBits=22 */ + "030f05692878e234334a51ad29f8cf2beab3f3c491e7a10bb322b68212e010f62460f125ba6a7a8de58a3558bca95a71aaef1b22edd9ca6fc0a536f35b6a7e021d944f3e8d0d744e631b1d46b257d8dfccb4179219eb44f25122341e124b93b33698b46d693244842d1d96cda3a7b8c39ef10f76be5263796bb0fc997331f64ad3f7685cba9b6ccd620c716c5979aa7372957b", + "03bf58", + "d0f2cf1129a39b9e3e71c65ab45b131daa831c6e04387bf0201426366322abf8dcde6cb7efc8828740caa1860b04b69a56810a903572894fab10db4fd2e68280dbf75bf7d77e538b2e85480b195e45c710ba478f2afe2d1942e0004932079bc9d270aca0a985453c69edf3adc07737f64fa7657e1d1b5a7fc14973a405c2af9fcabd2d08937b16f9e684741292a0b6a4", + "03711b" + }, + { /* i=4553 cDividendBits=2981 cDivisorBits=698 */ + "1e8a622809d2a3362053d7c726adafab0f65967812534697234791b5f8b2aca8572a1018cfa3e98e2d2d5a16630a4621f7e7702f9157283b9f28deadd0dd1451bf24425c82c7ef5cd3136988ae4ed892c37fa14a120f4cc77c6259076e7ecd1533ded5450da1c0e131251b27f8f7cfb859af1c4fa970d684aed1b254d26668a1a2545b1dbcdea8d600f8c3fd77a74655a75e2eb18c78fde9ef19f0496c3558f93a14af40c9616129482b4bf092776f3df5b46ed13bc4d9ffaf727fb31ed93cd1dd2d0e91409be8fc033f3cc74db344e228babf6a7408dd0ce6ea3dd3f86df3095667ec71c3421c7d37685a15f1cb378624236a4f3ff91f9114bf9c927c47340e4f503fd5d6fca0224dff0ee692e815a48cf6374af8a060a12811fc4f5d00a979cf2748ef53887839d01f9eafc46529af095cf1f9daec9675acfae20c17d5fa2899fd8d8e50b98c87659bbbd6bc254e63b52d5779902ae6e504d8a03e01df6382af1b780f4f5ceceb88e62f8d231b96545af0373a6f", + "02b4780c929ce903ed899593bb49c27606aa7684d0c52012019e80b5f4304c42da0e19a4951b96fa57dcea130395b4576c2797ea23a16c9f0b7b9090d6b5768bf2784d4eddb26f23bf21c42617870fc36b8401d24cafaeaf", + "0b4a6427a27ac797db9612ebd429a1f29c9529a0ac3621359e721970d06604f93f87a24805234c2de557980a507bc9937cb781d068bb323bb431577c00be0e591393b32e2b37c7a66335da1fd569893a01e41b0349c960a307b062ee69eae88421b82dbf9cf6b92be81394f643eac1de20ff711163b22310aefbff273c42d9c3fa8596407cfa518b9a7fd35b715b6bfb0486db45ef60bc268d14028277360eae8fd80657fe1d37424230716e58d8ea800cd156193fbd896928ee0c18daa3cf77108ae792def7ba3af23946f484611dd958db1f15a5f27de3b6acf76c272604247b1865dc3d6fd8b8f1e279c5f1c001c4897328d2ebf617cde3b4f887af4e816a9befe84c0f00a4fb50f1945f0853643c1262d6365ab750beee27d683f167", + "013bad71163f16e4340bde973e37753083e6360c6ca4ae666c34640dfd3cec0cda852c503abaf0372ce083f7cf23887afded6af347e5c4c3950d4e22d89d4e384a8ea5d6d56781ff15a29f21f75dded07ffe35f704883306" + }, + { /* i=4554 cDividendBits=2432 cDivisorBits=1094 */ + "8543cd824d6f8ea68fc64452d164edd6ddbe3081962cf0ac5426eb6032e9f320db39d02d355c3bd0c555a8facb633f9ebbbcbccc2b763deb74a1cb92deafae42718f3ba246cf32774df53423da071850d05878ab0183f9a5fc60fe07112d547e02e9f68a5a42a69d44f30821d91d00ffed8d5394d00f9a16a0d50b8eae973b9bc429c218647b6bdc79f1c7c257200d85ab6d5127d01fad727be9dd9060c67d54f221ee9251fc62603795da7c1a34dddbdc772a8ebe47cd87b40dfc11b736b0e0751f10b9e498dd5757b55044004f3707bedddc87bea0ee353f2c4e50fe70decc2e2f2e605963ef641bb8b946ddf9e3ba88d89cb76a9eccf3e3aa23ae120baec160a159daf815b6d6a88ec89d39c29b733c0e334ed17c289a33ae2e9d5a0bb4f4ae313eb2a3d6c6a19dbfe3a9af4ec43f", + "1587a1709d8f98148b44a219fee6556fa2c1f2213fd44534f7ef36ce68790f5db5a1d42ec060ef13d2c52b7b47dbc4752222cc00a98e764ee7eb209cb3229191c546b61269cb4936a39f88c29c3a41f1c9145d59a726effa57df6ba64ab93fe56a6adb450302f7e9f12e28a9fe83f7718a18ce26f1803a02679fce625380449d0f6f3e767d697db0d5", + "063095ae4b712b76512dfdc767f1099e585953814d5f7073f368e0fc806e7ae71a50867efb2e5462ff42f000ff9855538f92d110e6e7e8b10315471c00f0ea4cc5eae33ff0aaeebf91fcc1f42be56665163e33089719df08673f9246450d630c23f1311c13008b07973281006589b4c8660cefe6c4b1d43d98f6edfe968c24015ce5b583a87a6d585976443c70003a8e80eddc4316d426f826901a8a983ee0d2d8721dd88d8990e7", + "0eca7bf259692deebc50326ed0a896d34801bd9653691cd6b32540371239d2d3391ffe47ea5834e09f06ace7ae624c3e4eaffe060ec6bac256d4d2b797f9b61f155ca5edc70a0b8c5c67279aeb8ed607fa4fd2294c4abafdb7588c7b4464358ed86d626002e34a224bb1a6b13343d5aa2f24c40fab9160b7ce07728a1f6ba5cac5e79569c7d86f640c" + }, + { /* i=4555 cDividendBits=2374 cDivisorBits=1876 */ + "2b9759459b5a9da41325df658442e1b68c75e55207a8e2fab14e7683a27f4bba9788834e8745e034b5211760920e438b04b0d42c2aaf067e345345fd5d8193f21a835c0f6e2f8e01b8e9e7055e2465e4ebfd71ba1db1c34454917d877d871fd2fd509c559d2f6209a70241997fd4d5a456c30bb6177a95751d223a8cdcbf476dce61fa3ceb87806318a0aa0cfb1d43b243cc9b1d1df1cff1fb386e1de4ac7a8a5971fbdd10fe152971ba1d35497cf06c695b634cc1584dcf579d53edb87113d5eb2697d70844ec9fb4278b7190e30d8ec39d5c0837b9174ca133ee4e5ef87321043905a2839d8da178cc1c25d18228e73c3baf425e88ac19b4b5a09e7dc7bb427a831f4794c32a6b5633010b051da99b69da897cc8a70fb44c08bc4b6f3a5adfb78af12ad00e987329", + "01e76372d495d28e60b85d13fa3c96a7b2c8b55979ae99143007d1a8758dbbcf69ad3ffbfbc458e641215ba677950bf1075ee52ce39cca4b0f1883cf46b4421d488b8021b129a46c5d1bced063ac2e2a172c6008ca325daa9ab3befd0df7645650ce83f6845f1a9622f7a26ac5c5e953b7f18040ff333db51a6d02cd269e56639a45082a66ee92767875c2c248e0d7691a947172b6107c643b7cfddd961778bb2bdc4ec3965bf1663ebc5b75452e4d2d05dac1a55f6b8c8e41f39ca6502f026340c205c7ecf6afcad4f62bc0ec22335d921e05b62c58286ba5a994462e17abb46ab62e588df8b6245cd0f5", + "16e56e02911258c263705e45596d149f3bbf7496716a5c48b76ee1f0be7bf2a02962e4449a297305da2b98d0619eef559823fe21cf9e2c97513b144ee06c82", + "01867f02e743786a6a93b8432331c904a2e41076154572e17ee24fc3a07ecbe888b2dc48639fbb8355b088e9b29eb422eab84fbcd05153d26ff0d236d044ee3c6753af1a6e124baedb1bbf3273459786dfe7ab85b776bcca18531b71536c595430006833f4e07a01fd5240fb25b7ee9d6ca727982f6c42ccf0b4d0f19c802ac63874203bfcf3df2689b0927bd48ad78187b9083fd7c1f693df1fb2f40cdf0bcf0eba3f9ec72c8d9c5d6e042c0b6015ac9d6529c57364d3ee72117c40e80aa64d948ff8b507efd8a8233a3f12f3906b0a52745c1b8bab699e42f13ea3e96ec63742477ab38a23f4f2eefabf" + }, + { /* i=4556 cDividendBits=952 cDivisorBits=509 */ + "5018f1accdde2f5d88d7636184bf7006a7fc0d64ea60bc3d21e53ed5fcd5a083bc594618776402818ea9ec8b6b7c5f39c9c657985cdab585f65bd7a68be94672c38ba1588cbdd0868c4f69e06adf529ccc1929c99dd76aad87555d8959375519eea5f0707e9b6d0dba51d1fea892a0bde1f7c987c67634", + "0799260f68457ba9d81e627e60f6ea2220f563c2b93ebf418f9e5c8465f738b853f4e2c1830596279a883225a37bcc44efc2b2b22ac03068a545162d6e614d87", + "0a8aa51c8b9e3d5549abad6847b532e7ba9c4a8c4674128879a8304c3d4c099fc15b93968222354d83c1c2004604d2b7241664edf4d998f8", + "0127b528ae6fa67ac081686d86f04d61df81c7606ddfadfbf02268fc6c94b3f8a7e9dc2b7b3cdef5fa15ab2e2b3da128842ca28d8f31fe7aac1ab1e2700c336c" + }, + { /* i=4557 cDividendBits=2436 cDivisorBits=891 */ + "0df1aaace0416ba2c26e6ead11895259168ad0dfb3e265e02874f9a092d89dd6986e1f86a61792a1472f847b9e2e6a542f5db38a2b3b78d101ef8cb1c9f3b03b396949c7db15dbd22773be4c06cc50e8d4c3d587a04cd58448303969a659996cd9a517cdbcdcdad7d2d2e6bb2de1c0ac86e84a6a243c55d8df158ed5b1b4c8f5909349252400ae1f3e66c6b27b8500ea469b3a105a744ef4cac30c604b8c42989a22634ef7e2ac6fff78749f7175a7acfbd6f6bab69a2377d877b3911ce01c06fbb43589bcafb4e5395a7cf41a62057116e9bd09d9aba2ba3230d6784bc2f4aea96fd3568bb82ed7d63f529155c41f0f9e28368b0baa0cd1a99d560801922a34a997eb18e2180b109b69ea5fbe44205d85f2b4d132dff414f66d05cce95611c44e60f68cb75bf719092c80777313da1d10", + "01da4415a2a9a7eb1e73d291c5fa3faa5fc2bcbc11dbf6a38e41ec07474c8ec9d7d35eec3ec8e060c2365e9abbbe7451336d82b3886867dd633166afec25f0e09cb781c566e2ef2f6d334f8b6a3ad6daf3e2003293d60bd52e08456c2dcfd988936c18f13c524823500a60e77aa2e399", + "0786d712d9cf5f8a531e66be254478b26b75580b6d1d1aa191c1190c9909f8e907bea3a143b5b4ab2cb4474dd852c83530a676748276f71aa2dad7d76274512ff77c2ddf85ab50980f1353d5c4b746e6253ad90af9f512dcf4b9c37b90a6f8b2d75c7c27c7caee7d40014832090a7e65add4c050429e822e6b6d380504dc56fb1a0212e538ad979ba0b7f8b386f6da35568945face30287b19042c78f3bf5b7775f21880727cba6f15cd2662b6afb3fac45516d8377df9f0785253b725343e506992", + "01d93f5fb837c33b2629196bee4b16be94cde1584206465126b98b098cc90f8443dd1ea68724b9e91a08b5be34cf893b24b1b5179574c60186f6aad1601aeff58461535b3d1f352e2153db16064647788429514e33437597532d8573c7bdaf37062f4f363562b55f2b72240825ca8ece" + }, + { /* i=4558 cDividendBits=2900 cDivisorBits=2236 */ + "22eeb945ab1fa19f8a58fb98d402fb8724e70331b2b17cb63a5c6f991eb7387cb82ce7cdbc8dc18446291ccc648e2b7172c82fba16c0228dbf18deee6ee4df8183656fa4a1b027c28d38cea651d2ecd87ca6144ee31cd6510353a8e2385dc43113b6748b1ed16c0c2f9ce3ccfe09ee85cc3cd1cb377c25d7fcd8dfa1c98f1da3572c60f2cc6f2d3e73524b9fc8af877290e1a713570babc9f6201c9102dcc8179060ba34c8695fbc15a88d1e207ca54c1b2b52ad489e4f706160951bdf64a232626402f98f091af332e4153f5be79fdb38a34540062878fa129dedce4c32cb2fdbb8435cd46aab3d8b709ac46b1a97195dd6a48ab72cea6baf05dbd212b367041722bd0e60233d535862c1419c4675d1aac165e28d8cdcbf955e9b8aab8f5fd1c35cf999277172c102a51c599aca044648098a5b274e1dc79bbbc0ae76a997a7e35fbdf7fc3716ed2b72347c22f54e846277f51e7910500de0f2d54539a863d0bc2d0ad05e8dbf506c50", + "0a09732fc7843332a3a92ea1568398e6c89c3fec0c43a141145b9dc7b9a09982c3f0311a21eed65b384f9ca662eca82ac7aa2632a0b470402bed2a346fb34d683cda2cd3b3caa3cc84009457f94e92b8a618e0b4aeaf5d034e7f6aea184e0023bbb1b544e74aaa7eb139d239a2d3213ade44be8bc94bf47a9294694d5420a35b11af34407271495b7b61917c6ad6a66b5c433bbcd71459e4f45b2468082d275f969d8f7a578472ff69f25ddabe26e3a28df04c898fce2afbeb7e21d7452eb95d5980cbea14974a74f4e8ca5f8f64f834b3ca99783d7ba4cce44737b4097e4443b5bef26aafa573ca830af6e1a89825c369fa52a90855e1f5f55d6ff5019590e5ff6cd70077bb33246e36cafe3c9df88e44369f6c7e69b4f2", + "037afbc0a6b5d1391582311fee2ff959c5de2b814ede761818d11779b7444f64e2db92f80ae342067627fcdda73e717d6c7e1207bb040142a8ed0fc875c9f6f5c49ef2f4de4d09be01d2dc4ecf46569e6a0555", + "08c6ba934b2d06f3c806718ab14b61ae43d3c26bd9e423dea04a37fd9ba92ef3b132e3016b155a696c270e6066541b18883836f7b2a4c6df0028b9196855a7410c63a41ec2a7c822d79aab8c941c8b7b05f2aa87995f5b3a7fa5e2f15a4f4235b65c8f8ae5eb85f06ec8042223aa8625cd5e04119e4172bf6e3ce6365b90be64b139ecdb00b30b6dce94f1af3dc15aee6430fc6fd7397bf3c201439a14ffa786ca86d01c239ea248557bf36642f84567ea16eca88826df884aac0399a1a567c94252343f80dbb2a45267fc122771307eae0ca748d8ac9ff5d9682f8b42fc195ab1adf91d504087fe5b380c7d7b8804538d706d489471bf1b40348f293b775180982a479807acbdcaef9cf5e7f918cf01eff3c6516d7a9df6" + }, + { /* i=4559 cDividendBits=1670 cDivisorBits=2 */ + "07e677426dd4d1114aa047f5de2df2033f4f1b910f6adb3f1f52dfcf2f4e0e15555f70657b40215600e4b7f03199faf21b08cf4fc80187d9c971a75bf12ff60224623638cea51c8aaa1921d1787c42f379f629a4d9cc1585e24a2af876a7653aded21910e1a96345870f90f9d382cddd114acadd043d0a64aef1dcdbc9e971eeb07ea037e36761029fa8f77fb82608048c2867d4ec651bc6b7a389a1779282c34edfa1821c3f2360505b234b5c71f58e10c1bc57173140dd50370aae2b9e7000ab54513ec7425c43ed2cc44650c01606cc", + "01", + "07e677426dd4d1114aa047f5de2df2033f4f1b910f6adb3f1f52dfcf2f4e0e15555f70657b40215600e4b7f03199faf21b08cf4fc80187d9c971a75bf12ff60224623638cea51c8aaa1921d1787c42f379f629a4d9cc1585e24a2af876a7653aded21910e1a96345870f90f9d382cddd114acadd043d0a64aef1dcdbc9e971eeb07ea037e36761029fa8f77fb82608048c2867d4ec651bc6b7a389a1779282c34edfa1821c3f2360505b234b5c71f58e10c1bc57173140dd50370aae2b9e7000ab54513ec7425c43ed2cc44650c01606cc", + "00" + }, + { /* i=4560 cDividendBits=1651 cDivisorBits=528 */ + "0340719daad96e771fee4dc76381c09ace74be81f9f62f99a8ed9d0afa695e9eab108483933e0758a9e5544899ddd8195b2ce08b2526bdc1fdc4262ed77a25243c978086ae86511f33d2b83ced0ff9bb4470515b2dc6b8f7261d542266c65b0a2d0a6fd1f6837d0a992bb1c63c1c836c7a256de0f05c1fa8c54c72ce8c45f1845a913bf14dadfd0e3aeada7eda385b62f7d44af354a5185e78e77ff324dcdc279776868bf7a0f6ddf0e7b99fd1522cc55e7999a60586130d775303d94ca73830e194a4c7dde1c710dccdd2cb990aca", + "f3bd66893a6bce1acbcda7aad152bb6b5bf384db35297cb376242c65063c4337486e5845501526a9ce91f2e90a7018050915e43f3bfb930c519d2ba31627cadde9f5", + "036a50dcffc8f0a51f49d92dea5ac4b13b5364f1a0459287b70a1d8bc11d7b4b88ca95d87238b3a73f7d1f1d31bb185831968154180d7320e85fbbc05f378c453a5d123e0d88909600445ee57d1fa0d648b6dad7bfe93307d023f11c22ababbc7d479b27b0cba08f808b5183bfe942cfc0c2a2ff8164e30191e6dda5d138accd6c357df65322a57823ae6fcc20", + "14dfbebcc150eec5ec01d139bc7fc459186f7e9076e6cbdff3fa10222f3664bfb6416d818d24a0f472420fb44c90db0a0da9ebf08c3569d07983e8c3b374a231902a" + }, + { /* i=4561 cDividendBits=666 cDivisorBits=607 */ + "84b7b5226a93fdde9536cea1176fcb32cd32f64b1e3db0d641811ba2d8327ab06e68ff48b158a6a1eb8e975cd7f3dda21dfe95019eaf5b93b9f009d1858e6bbf16b299a97f2a0bfe2b34427ad15cf9d66c14ab", + "7a7a7c0fd0230ff6dabdc52b6b0066382f6008d2d4733e2d827b9430b97e96ee7defc2041b9f5f69db2844d48f6513cfc9e02cc5b1186915ef97e246acd736a881a46b499b99fe2c67d36453", + "011566c8d9c30d2f", + "6876dbbf61985fb20d5771ec513b5b48a872c4dd50f26dcd9bc6ec57d35043b8bf70bd910d745db80212f427d7c654d3a9eb0122e39cf1c7db205d60a61df036c7f11a4cf2dfb8a5444b726e" + }, + { /* i=4562 cDividendBits=2076 cDivisorBits=1569 */ + "042c6f11f5d9aec6d0377b757fed67eabad221c07ea6994370c22f41d352c2f5b0ddb72d075692b1c6ebeee21c25c67a22873af9ade9d84852e8f01c0095a12715e7ce0f3a07761f57f73ef1b5e07ad1d3769da8d49ca7e68ec99bb0c5f33e300793550064ae50a063371d09a1f1d3a0c7cd01518fd24942946e66b5ae9e56d2a2b852ef0814e17189935575fe1cdc691b05626b4eeb6724059626c7df4d7d23c2c5ac40331616792e60276f4a8d07999cc0e9dc7ec615f9d35de31b07b763a9b4f1bb3ec8c93b96b7df2e8de626f3d9620c7c37ec75bda7a49fbb061a645a9bc23636efbef4f5419ad9c8e54bb372cf187fc36ae3239232ca06619769924806c66f2260", + "0f7654378ddd15cb34af9831072aa720734302a3ce574c1e68b93536b48b010b9aef62c7e325912e9c5fe2937b75ac8eb987c03209211ba17d47d91041e341bea4116bd77b82226baf5ae44f789d13015585a8e4a9f64a90b55ea554824f6211f7eea5e9d6a9868720584dedd8bcc855b90da8500d2a99f5e34549e1a32a6a8998bebae9889439e00191f6b478d330ebe2775d62afaf9d2a0940a0fb7e0bc072cd5a57afc4ed8441488dff2c1f67699221a60cb48fb78abcdada31279f908c90b6318a66", + "45198165961be927dc494f3cf7676f1a9b3acf3db8ffa696b88cb32f06c6ee9fe6a2db18292c55c5c0c481d577a109b50368bf93e4e8bcf1b9ab0940f09cc37a", + "01a0b58d6f5100cc30c3ac67e99f6b6f515eb48a76b06cab8ad05509382c3bb8aa9ae3e8c2addef8c048c325067cf85abee5a3eb41f73ac90c25b8e40b792ef9ab804fee16e0d4b836ab75e58eb26b83bf6ca0f0d05f720a961b5fb1e3be2b8c8f259fbf702a1dd8c9b563e3e330724de5aa19f9aa45b7f108f858fe64976ed3dc25fd2bea9045d25a600bd0dab8819d45f1762add6c84412e6579f84c9898747a160515996b3f9724479778836a971ca47ce63e80d18c0a94bf19967e3d68d8403f7bc4" + }, + { /* i=4563 cDividendBits=1698 cDivisorBits=1264 */ + "01f9739b35bc6d919d41f44033a727b6a5e403e386acf12a71259aeb0de95aeb5275db21406cdb7504e5ffdcda9058ccf178201dc16c321f79f7046f9439698f960d40a4f1360df563a4bd28da510656901fdc56ed8f494fbe01fc589d28b69c6956091c5f6fa6296d5b4e3789a237f06d39cb279274c9b967611a5dae77c7d999a101c9387e5914d8008102797c26285e733bd334cab7284779f0373a2ecd56de3e75a9f8879d33c8fdf32138d1d6974a00ad5bfef883da3fc88deda215d298d62f4e6c67dae9b3f35a40f257aed08db2661029aa", + "eba4bd6e1b618f4ca0950e40d82d693cb09a954ff7ee2d74cd6f49588c1be015f3f3ab3efcbfc1cd1479c9ddcdbaf272710b3f54261853cc40b8d2f258f3c8f504c7965d4c3baa6dd22f529eaf8a168c248fe51bfcefc4fe406f84663be42fc76b3b414dd6a687b69acf4683c6c0ca68bf316ff2893303ef707c672fc457c971ee2b20bbb0933aaff648048b2ed1125f70d51837f793d23dfc538b3add97", + "02251dad12463901a9617419c4a2297f416ff9e8a610844850edf188a4ec76277798c84c9f12905c94a382040f5afd6b38735a380ee760", + "5ac8cb5c81fd373d2d39f4f341af3278b38fd5a5268943334c79e79000abd2599195d209f7a98bead148d83c6350e03930ae7841f17b5629131d4e2ca0daf0bbbdcad912e235686d7b0f75182d884a4eea371b0faa8015b98981129fc145f6d126568b1a7d1b99cb0a3b8ad9479f092b3d66e05db8f5e635b3361512f41a208a8c00627e39329dca5b480b3113c03eefb56d624148f8db9751f4ebc7d00a" + }, + { /* i=4564 cDividendBits=3521 cDivisorBits=766 */ + "0188da032be785c5fee3bb5599c5d1ae1cc39b4cc1681602308a79b0f7af96e8627b43a16db831677f1a0a0512c4df9ed4cba9205e565f40204fe3254f768a1a2a7147767bcfdd71dcda1953549b7833cce68550d5356cd5ade77b4f9aea4692e7ea1bb871a1620bc0473bf0c1a65693768caf07acd24c43feb5066b96320941256826bc8050c47a73b450384f44d3d2c1ebf103566913d3d440614fa03f4f5b5cff5e2fec93591ef0535462db2abadc47f05b6532f41fce65c169a5c7233f9a5813b60e4671c7a5f0a15d7ca069c137008bf76c262431fd2f05940ca6237d2ab97ff5a1618acc21edd4768abf27f2d3b6beec47d9e9b7283c56a4561091f19fdba8ee115ee2e4cb99bc05a9e38dc50f6979779a3e36685bdc12272a5a79eba739c8b6781dad4be0aeb5b5c2e8bc3ef57bdbbf1649d77f1e98e1915f7f1adaea7b1034ad581b38cd7dcc57664936d8f84328205d0e125e577c69c54835dc931b01140fe73c7dd147ef80c99b46790df4f6c00bea5da2f3163ee8e8540deea410457bc91469d55c34fccca23fc997a828ced1018fa5506fee82ebcebde6283f8a27ad4c3603ae1e8605354bc60ab83cf08af6cf1d1cb3e00431", + "2c6a126ccb7107f461677dc3355ae8a8f9e426c83224916409f1fe9883665d2e14ce674e2bf82c8057bff5f6b21c34b4e73e6bdd5b800f7f547d776bc947844997fbd3c8d2cd833d99a43245c70ab95e487b05350606eff4f00aaced37c7bc2d", + "08d85bde0704867a8c53ce0dbc6f3acd4fd9cdc62f26dc4d34faeb8b56812edcb27629524206ab9b3ae60a0bca38033085f91d03329ca1a53f593246f4683569be03e596551be68b687852a4f21f28aec5f3574644a06ce5cabb9efa2b72258874ddc0581bcd3ec63ccf331516297d1eb035a62f11b0e0c295bf1657099f3ce626971f93ef6639fc32920b490781285f5483d40be992e76b305807f03212b1573203cd1a4b7cb1110ff18291b55321221840e2fb861680a18a3638f8e6528c53ca18318abbd6b6e9431689a811c0e4afbb05e1922115c44bcabf2e86ce5fc7954370b86056d8c178b50295451827fb5f7a3605f4927616c74aedee2bc9d7a37da17be129e5f98e8fe4b4564117089bc746a63020504da264fba9137216bdeaa5afc0f5399f39165d47920397c3b41468fae7162094b94562c62eca038200e490f6be00a8213aaaa6006188d59be4a141cfeca80f4889c84b1e", + "230c24611ca1bbee931f3096b347cbfb6a2d5554d5c82a9cbc6d22b8253bc1c93d70fca1f4e6d723a57a4d6b9b16634d9caf4875799a6a400e95232d6a3c23f38e9be17a635968268fc0ceb5b61489a20ad9986be37df5b54afc52918e2ec7eb" + }, + { /* i=4565 cDividendBits=3455 cDivisorBits=3402 */ + "108c5bfa271ded8902064b4b8c597fb79fe0e334616c0d064c4f7e6ace4fe06dd5a4d2103faf622c8f35efe366968deb80a90cd99e3091bd6fbf1072113d49cb7ce24480e0bf127bacb4bf1a1f21925e51f1918d5b7834a169f75e81e1674e137bef3e9281dbb2672283c4d4bcf6aed255f5855d58862fccbbdcb7954d16f72a8976d8e38983bbd7891b058b3af419d7c2e805c5a140adb3c5ffc9f1b7fecebd45339e345f7a86976acb9ded2c5e17dc0b44c9d25ca2bb7504d605b30aadf38be3286fc750263f8f619a6f5f68509170daa8034e8805aa88f1e2e3631dc49dfbf56634b2e3874f53e37954b8126d8689ac93bc3317d3388e12be4e4ab7b3bd26a2e729f1e818f68971a88537e1b22648dd03b1e910cae5ea4494d51b205fec105b43d2febe80205f57c6ad53a3bc2858913fa61a8e08a8ce610c0d76242b02149fd1d8f0d9c49c0dd7a78a6dfd2579f47c045b50880f07be16306b18e9f32b822b3b6086d1c5d3f0fc13ddb61aadfbe7250773949f4c576a56b737c73b3199093463316683b81b19ce7e5d20f02d9d657bd1559a143be8d29570e28cbb834488e9b46d46203df5b131bf4bf7747c65d9", + "02185ff288c1f2213072f47df8c201348213fb7c37f785af6c9bbbbd831481f0c8920c6202b5d3a83e554dc7b3fb901f125d2c6c233d0cd113d199536344405710757f44a275251b4e5a87a30c411164eb352339940357615a72e6146f4ddad1fbc7d2bb96e2a5386c19f3cd292fdd070e7097b839a4137f339695bd4806fd48c1b9e110d909fe43867b6af5b8ccc9343d929825adb1e74f227b3aebf392840c40be69309ef322df00920b27550c756bd5588567bdaf4f6d378e6168343031cca66ca7de3507ce71b3b10ade221737724ca1656670a9298481d9f926615db28f2c21f29ab44b19adfd89af4e0e39d1d05097105dadaa23d000c63f32e28fb41cf343cc96a22652b34b9a067817d022777a1e8bced751cbc701f8c6ed989ca5695ec80cadb1ec6d23017d674f5850080573b1d2dfba9b415de4b63b5cce6dd84cd3a7c14e89137843c7d421b71b7a52591a17ef03cc498cd9964e9005876460d1a31ec81b7cc19d3b9bd7527e6f937b13eaf63f028c4e66ed69f5cf7028ac0a853c71e41ef73494c1331072f9fb2d2f91eeb1af2adece8f5bfe32794682e03f5c88bc7dc78266d2da0f5b", + "07e5ec05bb1a36", + "85397f0d7a96b9a6661efe237be647c9dec8dfe7ad3b5492cb2c749557dbd958e8231e1b3f33f521f4451029812df6396ec44f077ee77cde4e2fe6f09cfb98ca881fb204e64a959bda2f8c5ead903782fcd6d79fc0d1b9db1d9ae84bc600cf56993f69984b481451e295b833d5057ad6c48a62d02050fb228519b87c9d175d48b92251df7ca16037a55a8a318153f3565487c5f0af403a271fa1abc5b67384c3b0ca0718811bb1770ec944318e19d86819ebcdcf8c6506ffe92b31f3685beea14393361d2ff0a2b1f030f6f07ee769b974322f864b1c7fe2beaa173ccfd05c3a099735d45845b6e8b64712a87d39abd2a2d37f6420a031f2ef3e8524cf2acd5a0c1aaddc39f3db68f9da564bf80f9da1d7f55391f688c0f397639929d21485a9fe7a335a94e53ede9d358b6f7bb0b317a45415dc62cda49aefd4122dd555331d9b9d8e93f7ff3692a0fb813e94423574e806f8f0fe5ba1ebc020156c11e05c14d789dd5590a3fb5cf7d09e0a63fe2066a19c46990f8842e2bd73b603a2a0b58da3964e82f4d69b078a8fbb624f7884a0b51782965006d8939243b8d989d04f3d8246f18262d674eaa7" + }, + { /* i=4566 cDividendBits=4066 cDivisorBits=2758 */ + "01bb527be89805d39a63c01cc62a5bada72c946c70dda631cd013f4b0fd267b849df4cc7335ebfa18efb8938ef76f2776cde50415afc9f16c48a60dc96d8d47237fdf7a63eb03936be91262c4a2bf87ae62923eca217caf5b2d25a0bd6b927cfbaca321d27dac7a7aa680a305a386d14a61420b5201be8e41516cf81b47df440beebc053e8f12c30e8bfb469551e2c3ddc7336f5ea748ed6357fb30c4cce9fbf3f7c311e2e1dd6335e702ac82593329513930e72c1fc8dfeec3cec36c51a8169a8755621e2935d0e85b94e7481cd3806670fd50bee16f491008daef913518d515192e115a2113725e51f25bc03790425f53c775a9c93a88280caf07cce1ea3f61df4fe92749372a324aafca764c2d67ace523915003e2ca8cf8c19ff067768d8bb473930d629c48e89921aecf470f058a575b74d4e4c850f6d8aefe3c4c52e68727c15d91df7fede865b934e99a914d12e91883addb13e152fdb47dca3c3de1338c9a66956ce4b3ae57aac38d85aa4998548d581a7b76867749551e4fbc2f100c771017c6308096a5f31fe320acb1b4664e9e8d6dbf387e06af9d8dc046581f5cc4f36ec066b50eb3477d6b93c15c63ba374d9b86d777025864ddae01775176b314964c1899203f4da256caba0d07559a2ecd7a3e3998ecf353e586e24bb5862c655140d05008eb3c2c653a5fcba95c928b8cd85228e43f42003bd42cd", + "02b2cb072b647ce2da5d83a012a67db9e37e177841e48f25356d44b6175e22a42beeaa8248e76896b53acf18fda87f19ac275c5b1dd66af649f086a24b434cf08eaa9fd439f9f4c122b33c243e86ee43878cc80fa5ec55010b516964c285762dd21d140cbd8c0f7081d745665c293f54f26ac76841f3f276f2307923c712969900202cedaae35870b984e7573551f7e9a4218992d07ebad3ba720aedea3055819ca5816658c072235d6766d0e2c6d2b0b7a9a43e47ea3a99e181205a4f47e2c416ac5fe9fda0197b2fc15c7baf762e309fe94572fe5a5618f118647f635861945d2bbbb394fed383be3385011bc4a1097d2a86a4310099853568870d20b83c779298c4ae668465cb5a285439d068b4d1073f7f0e05f72a78ae3d3b2b7574997ab4461cfc3a4413a498d276e1836d39da1427a75e38598d16ddb1db3ddb45834524fd1065c059cf62be424a0dfc2cd4b8d3c6c8c8cbc17e5e16", + "a44a45e73f5c2522d4ed2d3a3e96149e32b25495619f1cef0dde82e9e614cee8bb822e7e71baf867e1236aedfcd0d2fb0201e444bf7d0c1545e7fe5cec72a8258187d80f04f761ba3ef361a3b95a971178b8e149e79e328b7bfc8f84e076abb3b27b6685b0d354c4437d4eda5cfcf730cc5b4a1530c0fe66919fc465055f8082dad5230380dc25403714b691b3388a9cd07ce10948a68a3bd1cb2f04ef8341923d1752bd", + "01e37bc226c7287d7d7e9a512fc667dd1ab2d16fce4df0e1cc6ea6926dcd3822863f98ad7e5258233927d3ddd0c9a62be524eff0fe19d75c14593484311275ed5c9646f7349ced9d9932a4acb03ef14a8a72c22fc634d09234f5a9f7f6dfc23db4650bd6995fdee34165aff9cbfdb86c7e3c1d7613c357bf662f8e81990062fc215f1ed10698dfce72e04b79a27cc16cceb176b86d012955bb1c2e2cea0041498a37976a606555548e0c2baaa6d3272838ae11d9c0d49498a7441fad8e7509461d90bb22f889b7ecc588476e597a836b606f6be439d1759da144005f0ad375fdd27c168f27660064ebf132c830550b45e9c26e46d721e54266127471c1391f78b00ae82f9fed1f8876746db6a2cbf25cb4d3cc6da576dc4bd544d6987a91b494917401e1e1b566addf03d547ba0c93bd38cfd8b961514b7dd6e8dbdbf6192da5b6a26b35dd8db0934d663ded374d0fc70bc515b465fd54c08f" + }, + { /* i=4567 cDividendBits=2291 cDivisorBits=852 */ + "0685f6a0b814124dc71e353a2c13bfbcd5ea3d47b9e6c861b0337283f46508f0815a1a43dd6fadaeaf520f46ce37de5c6b21c7edda05a0e436255f59105bbdf23a25de27746f7f23ef6f29907d9f389e9aaf29315fff4d6ed4c376cd410450bd146a59458e6b90e241d76024226933add909fc69bdb5de206d77354d1a951853f87978e1d8cbf0737ed9f9d67333d63b9d3ab49748898a2dc4f7bf5cc4239da0332ea2da8b972b2d52b2cd2026c148516eddeed61c8571b58ceeb0d9cd3c3037c93a4edf15c26935641534f432f6e6b791e5f735d03434f1dd06c9759bc0b79a0bff829fca4401eedc8345414a3d001c5b5774fca6f9f4a4a99254ad2c0819cebd76fccfd41a99088bbd38014a1fce38f78c2aeafa8a44ac9e55e7b2221cc5", + "0f121c63184f72eb5cd9e97f473e20727f8b37a875eebefae0126f77603b6fb1e3551245f61db7a9542f4b1ecafea1ada24c32bda77163fba19673bb38bde878b9d6c508b149129c5ff8ce3649f3a16686709c05f8cbb0e1a75829bd0d23567e5ed75ad195ef3841c036f3", + "6eceeb6055a58efcbb4cc40e3d3acd220d0dbcb19712c4ad356dc2563f21c9bde31520c346ea2e1c22026b0a91ab5496690a4da24c90d86a8e74b2985f6a6903ab10ca80a9ffbf78e6f6bfcf7a6b1692dfc27538de25f131abafebb2caf9bc3e22af305c53217888eb8d47658144d36639ed1e19dd7a3499c4760fbdef24a16594fb9c68a78b63ad11a92333a365ae827a53b5c16d810493c91a009a9944d3c4a53e08cfa5c5ea9d54357a5d32c5049ae2256538", + "0720c67f6d47165156eb92bf9c2796f9140037e9c4445349c33c6631b067825f3c2cbf7df52c9970ee0cd7f579593699a99ee4b72c2d2c8b9c8541babec124462ca3ebdf16804a0d673015a99aa7c3044604aa97359c117d57531cc10cf3ee75ba411021c7c4300349389d" + }, + { /* i=4568 cDividendBits=1973 cDivisorBits=350 */ + "162e487926b1954160d65ea411643e777923d8b7703c8a9addf628481758387dff37da4474b793eacebd8d8f69bbb6a8bb5184cb6029bbc5d628b351876e5622e6f749736797b292e6e0d4fbfd99b0ea99ef70602f4b600feb20da24c3a2e5e58ff42ab021175bae9797f07111192d65f71f66b30e398ca33b5a8d8ab80b2777b18dca24a36510bd59da98fb1795402a186d54bc26de3cbbd074bf3ae5b674d9eb507d0d44ba093713c1b0be86f9b755a52acebf4d6a043b358010e7822590b2740308354347f2973663e8f671ea3e0470620c069355f9a57c1a47bc3a07d7df001fb9b7796d6150cba5f7c527158705c5ddd108d371a5", + "358790ddab36f5e71fa49814bf123807ef73ae7b4f5a0d6370eef9e92c954524557d24d9e61b76d990cbc7d3", + "6a13d941868830478ae56e724d28a6a8186b6f60651818be8498161482b75b4db17582e2f9ad365a8d1c2cc0eb115aed850821084df95bb9540965d88f9d9551d36825d629cddc07f6e00b954a293f7ae9ea64c93614eb412ad40f249c89578b3623eaffc3865684698eea12f52f142304387379284d48cb54c82eed2a9a339f28ca166d7fac6be07277541362f2d2c09135ba9d9a4a6c30dda6b96bb1cdd79d9d82567a983aa142b24d578bf9dcfd27c7ef2c026535ce5f9d33f4f9a88dbe5e63dc4640ce0a7afdef7c7f", + "2f0f1afb771b736c4bbfc9d2106fa037b9a74764e7b08dcb3920bed53d2d57eec355b8e714a77a7669f41bf8" + }, + { /* i=4569 cDividendBits=3890 cDivisorBits=2384 */ + "01f30e3bdda5097a99d7a44a748a8b6f1d47936cecc0784b2c86983de12516c3f0a7b8ff68246b97d9e42ad4811675c87067d12f3ef0bc3d39df6006eda5e611c665e2ec129c18d9d88235b16c4abcb1f5234c861df8160b5fd2868edd3e6178c3188b8be02b859477da6a376714d8b159b51db8aa165b7198221cc88efd61c365c77a9eade7229fbe5df8b0e72f26b68e69ae19f42e7abcbf455260af15e63d072c167bee748b7736975e8d8cfd31dbecac1c1c56d4b26b1356ad24d1c000bbfd1cc563ffd04cfeaf5753d4f0725ae5c7170b1fbb28cada69ad8c49cec2f3f5b220e188a53bf24adb5dc9126d709713a3e5f608fce7ae4f01f87f11b4dc7a356df6a7659adcf5815d4854aa662070ea685a2918dd351f9900917c4a024a029a9bc743f512d36362355ee459566ad57113bb810015579a3beed87583b44f27fb76fbad1b9e9cc3e80b88c1b5bcdb78e774eb85fb557a4dab5899e671e41c9e62d9ef00b2b45032385aef4a419ee4f16887e33851eb5185ce3de24bc6eeedd464c6960a4a86d6c73a57a17cb56c56af10418951fcfa6d3446697a0d3022d0255b9d17076bf90b34eccf4d5431e1c9e9a548ee0dbcef751b369e0bb765d3c68ad55e0eeee56d06fabe5d109f4af1e0259b9b2c597a1ee4b9836a4294b971c14748cc078fe9981290", + "72c3195046576e440ab026fa6b9e67e2b2a03c2218d01ae24dd10a4b7bf141eb479e097a58cbb6468f930a8b18afbec91fba8072093ce04a2f2a71ef63de6394747759c517e203b34b9cb3a06782949144bd8b7667af15f0725cfbdfdc292cc5c11caee925f416c341e095b11559bf7d95cd53b685a74e8e85f2322104d4fd2e763278f99993f1a16a58bdcad0e8404e714074b50ea0f5838cc616ab817c206fdeea4f1d2e211798f8bff29663be17674c82854f1717f347c18456e47f8e14af41da0e5f8c29654a0b33c13a3069fabe5f2045e2a22d04b0016011eb7038cb41e098752e2fd2e982f586b7ab163012d49033da6f185a586e16c35f76daceb58960bd59a855c9dbe3ef5321a9b513cdb25fcc7b5f9928904304412c4b9822f672ac80335dcf005a0c1a4b", + "04593e7bf065f57d864b26beb1e383a40f4d59353214a76c2ce0213e0cd814d94f7e64595728b7a93deeedbefed8300a0d4da2c316723aec3f70dd70a469eab6db20967ba53cafdf23bd5dddc2c06543c0b3cbf821e1575b50067197e60b0e4bc5700dc400914964776c7a97e06bf5e1bcedfcf728963000f4bf01377e07f6c6ecabcb851b456b12684a06f2dbc9911ab5cf1b27c58689c72b86e3b93e86c1bcda8007a13e2d530ffcfbad7dee9ec9dd5b8ffbb78771aaca05cbcda7bd", + "383abd82f20529b65ea705f8beacb166a183225a4c2ae0d57a391b72f6a652d5bcd7dc3e9dd3033b92b8077029f014e54b5e4914ffd2a27e655d1eae201f990c2f8ece920bad90d828cae83e0249ec41ceee4a219925d8a8d077d09a58fd8a5317c86cf687228239eb63a94db6d0c03b873c2622b632fd858e3fde2f951b8109d922774f6faeb5ec18cfb55625b2b40dbb602f7f6147191061afb734b7e2b5feec1924550cc9e2a3128b62ded7cbd13df032284f6a611b13fdf99ab6dc9120e1cfbe63fc05dbd9e26bd18f79107ca0a6efba9f6c2cce20240e091788bb66d1f35e6d0bfc14c4042d0b15e441ab1c1c30ce9cd98003aa41346171ccc0836a89e362c6b3a52600308f347d06e4cfc9e74a71ebf38defdd982f7dd9d0cd3fe9b8ff4f9a4007938e0272bc31" + }, + { /* i=4570 cDividendBits=1324 cDivisorBits=1195 */ + "07df3af3da3fc9099725855ca35d7a27ba4a5dcb05e51b687ee2165d167d7a1a86bee4f7e8e6810cbc50855b1a08d5f7406169e404a50a0a317dcd9422bc19a5b36cf9073a8a2d1eba288abfdac080fa4ca0876a996516067698051a1ff07559e06ae9c2b134f8aa9758ed2dce1f234ceab7a5abf23153c796919d6eca7c11be0dfedaf70cbae4d4eec0c901727ee908f19fc8d51490314987c16893ff27da7c18e9df1fb115", + "06cb319c3faf8582d61646029fc534144f61ca56fb716752531ef9353ab9f3b5b7772767090a6bf4c227bf17b166d5745aafb62c67db2151496afdb02e73f82f1d3d8181d43577a6aea7f093d2d63254c7ceef41ee0d7362cb7f4ed4b5956a724622a428ea9918f7e0aa95c7a63d2bd230340bada66fa4a9fe88631e91bfaecde18e79852ce1826a80c0f3225521f878fd4c1623cfe1", + "0128a18f380703b463a2af9655791d89d9", + "04402b891032367428398ee168ee99eed0243ca1ca44b9598fcd901c694ef61011d4742ffd0385cac3e6bfc4eb605d5e2a0a0d8cbc88ade67ead9934bdb9fdac90ee4d3a521aa02016ba49236a1db07ef95f161963c1f843e807446c3db9e54a4cf330cf95e6546783e919da78945be0dbd33636899b71fe9ad7dafc94dc9cae3374b5713bbe60beecc7375d3eaf01c9608d0b08125c" + }, + { /* i=4571 cDividendBits=1161 cDivisorBits=403 */ + "016c9edca9c3c9475361966d9057b3445d2ef27a5a124983a05a9594dd9ebd8ba1455feb402b9b897e3d7c7aa3e9e531faaa8af433a8a9046fde5310c811a1f3353084667edb24b6852bef0322f2c3dcbeec72fd3bc1bffc5e473e05da949a0d818cd5fd59a068783255cb155821c3215d6012ccd32e5cee8a4bb5aed363f70e271bd6dbe8fc535d73e585809b4c3c5d9554", + "02ad1d91d655ea30b407616c1718ad80eec7bc89efc9bdb7ad5362b292c8f6378a0097755ecf8ece5739aa1fd9c60478cf34a6", + "883e7556b6969ddaff26fab80c3edcc426b628e534432a3ab8f19162123ad9e5e73d0a25d129b6c93e53a0b7ed76db7dd080ff8e2a56da096f3d2c76fc6bcd3458e88380554c809ebe78dcd6e5f795911febf54baca36ec48d425415c2b35b", + "025bdce22add75d28e8ab1216b13e6541c1c83a01842a071cbbe980a09944f760c40a9b0851f2d66f35f805957786ce519cc52" + }, + { /* i=4572 cDividendBits=2050 cDivisorBits=1586 */ + "925675c2a3b8c77829fd737ac2f777ca356f8e354f6f39434f1585b0984ed10d8a9b19ba809265ea53effab496de6fefe5cea997f3ca77e50a08cbba7b1c79b6e2903c00a5b3682badc3feb86f48e8d6685d9108a44631e9e0a787444c0d90b8153fec1321c09f6f05250b23a95bb07a992e7b7876d78d5d9fb2d04a6ea2b588bf0d558b352eb737508b162100d273ac3aba978d045096a54b35332f85b054b6db94363a2cc3ddbdf47ec50b5eb5d7e311f1f9a8bcf418fc512a52fa59c68f751d9de42884ccf51e4d21cb335776b9916e2f917a489110c558a5f6a340c4d07b1c39a24951709e8742db3bcf677834fd57cec495819b917efdca471241c270c6", + "02e53123a6753c1bf188ffea6837d015e453fcd572bd84f0692c22b3b2485593e0d1e5b458cbad2831a63c2c6ae6120c2e28c7416df616d7687367b3cafa8616bef655bb60b026bb9cbbd1b394a0f89f1b809c2a4f6698f46bacc277d6aeb886fdb772717920b19d514f17c1c2b7678a3816504e0fbdfeaf36765ca7555f747b6c42be1e098a0e93c67ee543b30c7d6ce88d671f840c023581f8b27af4d1566f31c022632b5f06922cd39042e9282a50d35856b916b978642449444d9d52ac5931a9c4ced230f2", + "328b24ff31e716137510169fdc0344cb4cc4a7b257847683cdea424712a87df01654d2cd822c32ff6745fb96914eed0ddf3536f9817197f1bdad", + "028c06f1eddb990ef250564959f9fdba8752e20e22316851ca55cce9e25eb4b8c37ff8fcd9310dddb99d57028474b7a5d1f5b4983c2138ef8a01e9dee94fe64d7348a5c7547ef4c99411f71fa26f72ce303fcbaa1ef542ad42d994857bc21c5b1c6d8a5d97af1b280e863f06d7dfb63940c0670206fd46f09dbcb5c76000d5e5ceada775c90e9849a93c25fa6b5f56daf702258753b4a8ea3a6076fb3973392c0c8b8a2fa3c2bf6266b980b3ef17e24f88f0c4d455170cbe5dbb7df16ea55347cc04d07dc2b33c" + }, + { /* i=4573 cDividendBits=2228 cDivisorBits=1885 */ + "0362cc882793ec42f3ef5d1811f5fabdb806e67857318ca8fa1adbc7a14ae11476528a1b62d7a10ef37d2fde81478040eef1cbb3f190cd05a51e79e4d975b042949ce57f58413697ea675d0908df261eb146476768ae785dbc44268df8e79a5a8a8a8baa825cbf8c8c95f147ab73c5b4ceb978fd2c58daf0be8b545ba0e0d29cf701d551bf741c5b8c5cc6f0462ac52ab80fe11a2313039dfc2ef7120dbde716e1ba4021d189024555c3e6c3cb8c9ca772e4401718131451749c865f5ce099bbdeb4ec075d00a70dc89db87eac062a4b0a31eb3c6b7eb2e63ca3d2b338eaed58ad696a10f2bb5e2c15d6e036ba853636dc335bf51e2fbffc768ed2fea98604a86cd08327500572362559851499a13b1ddce3e635894248", + "1d338401b0772a168926717d347c46b04914cc300a8a410f50401bb3f03cf6ff01d7e684ec1ed9f6ec2f86805305184632baa28ad10872a24f50cd1cd0a2ffecc17fe9da60a3a9967b46d77409fabb64ccb0c23b9fe44193efe920e44ae47a5230c41b50a126dcc654ac3bebdc4f7045402b2e2a609a333aba372c7ddcb1cc9c1e647edaefe30e4b66f3bce7499a175263587411b96060f6f5afa781a9b37394504ac1af7e403ebb349599d3c1e8a0b7812e6d83afcdcc659b6417ddd7e5160353e0877f3d3d6a09e8b132b10f96ac269ca75ff56e53bf6fd79c2c20a96e7c5267978c059592261d67d368f9", + "1daf032ce436628acb556e8ec4ca6c9b71d7ad4795c60934cab230c45d7efca2723fcbb77545a8ef949482", + "08f69af5d02e321cf1c8095ba5c9b36837ef8a75f1b3f316955e7921e9ab461277fb379220a0a7ea63687f7904f56ce63ca948a5064f07e86592ba26a074a3a63ab6d1603d62383a2a6085edb28219a985d12142e3484983db57339e66e4d33c6022ca5a960dc5662bd360a7cb2b7bd09bbf8981e4d6f8892d94420a7642bb1a7dcc52612ffb1e502ce4a8892118f5299200103153f63226283af97c573e370b59bc5d3f24a946b0f825dec38fa2c3072ee8474b34a3b175088f9b5631de56ea611b938c04b535e76b4993970772be49a5cfef533c00de32f40845447dd99ce109a0597517d923501c89ffd6" + }, + { /* i=4574 cDividendBits=2922 cDivisorBits=2185 */ + "01974b425be1891362588c6bb4ace5d4cc1122b817bbc970d7104fb5c96026924d709223754463f14fe9cf8375ef5e35f5e077d9f6d356a8c3646df45ab2632734ae62f0426a6325cb39212f0ce1ceeb1c05701e267f991bc34719098c6a370c52a41ec04160091602a34effe06210bcde83a6bf9a42ad932d6222d6fb550389bcbeefd9f78120b02b22c3ecd549cd7a15e8a2c160af562ca6ca10384e6a5e5d294473958da6cb6445765e5a4aa7ae1585cae42bd3c0b2069852e4f533f90311c6d78aad0127611e1d809d2b8786f34e4dcb45f560bbc63024614f4e05623e07b068a448151a01f03e5e85215e6bbe7866b1872cf29c34430642a5cdcb3e7d1b10fb65c3322c263c49cdd9f539038b59ece70fce6a1cd6279133345eb3310ecda5985d0698638527fd0023ade0ab53b6be2dc68d6e11b64e9f85197d00ce8d1f51576ea2d5e9414307f52b569e644763df85e3b9d155ee061014d075d158eca05ec783b898b78fb1df625370faec", + "014b152fc59d06920d4349a70e28be43b7a340aeb2ffe3fa2d79ddded4c1056294b9e8584fd48e5237f576348bc954f3d0b6d4c3f9e946e4a199a5032a7018b5b3ab458f04f720a909480944ac4ca1c10b641d27eacd80b9889ab22b942c76ac601bf2013980931438758ea53e5db57a3756b3ffaa02b0556b130ebdb40a17c30adf6fc9e4a3d9715b9c60d7aae96e17aa0150c5058f4d1587e1e2959c03352600ebc972ecc1305c30a59d0fc45b13404815bae3fe44a574d5e0b4dc9fbadba05181fa60fdd20a12d1481e329c1733c49a7f23fc8670d0163e20e05c4e4e1b16af51446b9887bdd4a669716f9573b8186d1f29e9c668a7449bec9df7c4d4bfab4c6ac1855f9efcedc617a5c4dc3f4bd829f0", + "013aed96e4c2f2fcc892155579e69f74a1832f72bbfd4668caa9a947e1c9d0a74c197f18e690ee0b6deba0c3cffb8922727429e7374c3fbd98d8743bb17d7a3c8126c0c9ad6530efb4a14d91cabeb7d7168388181fb82d2f832fccc31b", + "f2096143731888e7c1454080be6528dfb789a75b60579bde155a155f5b9b8c4c5f66c30d66103a23a2c353f215c4b8c5c895ec3387fdf06e0c8785477315181f606c96e10df14a00c1bb28a9a8583286964cccb5700c92887fe807f6a78fc392ce21205bf1603eda239791869bc8d3589d3edd2545ccd418c8e4e636b7faeb103fde42bf94d111ed08ae668c66d44b7fe4f82099087f648fa92e4af3e5941c420cfdc54416bb2c9d351f68965667d4d68baab2a5da6a6dc8c7f0b94c0d6957c0c78b42d72f78882503eed77773883c808fcace1b0a1b9f7c3b1756a6dc21f87e367639e8eaa4b3073537201b6f83ad87804c28553397443a9835fc83a4f0597d058af6f45dce0dd920a04cc82b3072be9c" + }, + { /* i=4575 cDividendBits=2629 cDivisorBits=496 */ + "18f1a6d8d820c7f68102d613d53847d3fe9d128a0d8fa5f5ba4ae99a6d6b2b74adfecca0969a8569fa97e78afb2f4d01a6e2b185b9b38c0a7e3b204c900bf66c07a23707c7ded68a9c209b5615fed8ef56a30372ec040d538307532f126b438fce7ac8750e29e7aa73494d77c6fc36fe801190287191e5184dcabaedf4b105fb7ea1ec756f618d4a8e8765257f0aa3014b35331593c50ec2e0fc129c13fc11375b8147fc62dbebac2c4a971124d3c8f6beee0f044a7fe7202840bc87301d83614556876d697764eb3f435f71602c1c40c6872429a1245e195a3b2d86dfe968f79a58ba13248647a5dc80bcd9ec1fb0b67f956e87a1cade508d56cea6b3b7a3e8f005653db8efdab0d79eedd9c3aa991904ee7f15e225f95065c1831d598ac2d55b3b995cddfdca8dc7e6440c9eee30f2364472c88d66885f6652307d2c5527f588597f301038732695", + "6ba21c1a0ced6f6a4a7e75a5b44cc7243a44ad0dedf6d82a079a16aef61aa38b27fb27b29e7c57ed75ff81476a271db8efa02eabb328ab8435bc7b203fc0", + "3b53efc65372c4e70c37e17a9f9bb60627c7069ece382f2a5d8f282a636af1d878cd937f7558f6462a37115e0ed64dae9fd164d85f567c5dcae14f644805e3e939bd297360f7647cd56b3125c330f78dd6cd369041d4ecc965c1fa09e8c129199c4c527fff928569b6fadda4adc4e8aa3e2ae05752ca319a779e25b7503349d43c9e6ba32b0e96f89c6d8144f734647b39d4e7ca7d4ee2343e3893192ca42207ce0099bd41030013fcb07276b3482a043d438472d89fad26aeb8a6402e90676b5575b587905fc728e7adc04a773d1390d5b91af629d8bc11e21de3821c931a8b3f9661f7c0d44617fbf68c1b93d54f75e805fc8a4bd47e9167003307124816c3a7c97356cef2471a6da611", + "171b9d58d4fe80e8ed5f31118f018aa6c47156029fb7865e725458f80bab43a860f1b4f89a6e67d877993926875a2fbb57ace88edb94c66885407d386ad5" + }, + { /* i=4576 cDividendBits=2659 cDivisorBits=1205 */ + "06493f4e4ad954dd738531298e1abf11eebb1e6e17d74648f709df2bf1072b3f8a0f93efe0c3849793e4f4bdcea8a39169885bcf9b7850ab9ed432c5baa5e6e210f24859a75512af4eb6e9eea9e28393770a77d4e83c7dae6c76886f64538c4b8e322148b033d4c19b0290f6fc787d0c83f34a668d5ff48c2b4c5140e3afcad55c3e9f87e5eaff6811297cfe0b8442f541f82eb9b6ebe4149a773fed16bd40e39cab8efaf49d8bdde9644ac36c9a87c9f188b6666e54c3c0437a7e7c52c77267564e53b0dcfb6fbc947ac6cacb8ef339e8f959539530f1496c5c3a5c352a677772ece66e32e7e42e1619c2a6f8309bc8bf6730985b4904d277648795dc1bf284400ef3cc6d6224ad38b2ed6b1dac5d45b7861c73800de41cfa536fda3de291e91123789567d06070e0557b4de2075ed5613f9768e4573bf61053bd35aad2add28f7087bf700e2c0a6b3097f76b", + "0dd9f529bd76dbccd822d4cf46c403900b044ede096e3ab53203597e90e33d9bd61a5bc6d67459a074d843bb3f4c147a5fbde94d509dc596ab4d1fc678199903e6ccfa439f26235d65def77d9512c4873d40cc326017a21a07925820981d53e54ac68227febc2de9b2be1568813376dba30491a694c4bde0bc4a035c720d03a3b23be57ce95f3b0a80f5dc80a7d4a0de1605e5bf20e3cc", + "742dee7aedc6a29420612beb38a3e1cbcc886c2fbb5692a1a6d488a674f5d6f6844fa256344e5732a0a6cc04bbfef55bbf71dfdb272a247aa714978c349345b26dc0c78c6b8428f31aba6f90b58aa9c31916b45b19b9153e62ec6f5dfd74bfac914a379250e6ebb7b49cfc75b694f9c5fd3d93df6a56c61bec1cac1828564737aaeb69f77dcf80e29e98ff5a8f2a5ca14ea8a93e96df1d2d19b18b475a89c5edca5e41d07c8321548516803da578a4114a1bc25a63df", + "84495340696eb043e1340dc7770ecd18d4412580689132d47b405253b7d092474960d52f39f5e548a63d5583ee5590a440cbdb9ae1ced35adb1ada2936e100783c8a499c8cef8c08648efff62e22411cb6a6df4b6e11cc2b04e0ec1b13ba7d63eb67a79a404d1ef8f99e5483d5934ac3678ffed2f9ef1eb4c0409dea4acdfe96caeacd2ec961e094cb0a5fad7dfd6c3bf1ab4d21a4b7" + }, + { /* i=4577 cDividendBits=523 cDivisorBits=277 */ + "04466afae678aa5d1b75a1f98ca66139194ce08369ae79e66ac2d925a2fa3de741b637c3ce3d6ca6d00af585d94707008258077977593c05f4337d9e8150f40b0a14", + "186135d4c254c06d46eee5bd4e5b449c075e70ef695cb05295f573ff9761f8c782adaa", + "2ce3f712f83a39d54368bd7877efe0e28573f50903377a480c77d50702e9d0", + "018f34da572cdb59776c950df0e6e3f513b1165929964ecd0942bec6a0d361e87a35f4" + }, + { /* i=4578 cDividendBits=3987 cDivisorBits=3706 */ + "04bd69e77ecbd13983b552ee42b2797d908ed1184bd1dbb63e5357710fa7771e7883e22a864d14434dce4950d154c4bd328a15bc99831c82a816bd6c97728dedbbb6643b5f9f7fd1710ff5d052b3c1abf108c90f7796bab7b98596fa498dd4798d46fe167a435e30a8341236dabd6153ff9ec5066185be1fcb633ffeb6566e410dff42821f1e90951696009aec68b183f50c6ee334c714ab5aabe6ae06bdf1eb4967134a4d42071717d840005cc431fb242d48233e12bad475b9fe70e236d50f69a4b397c824aeea1bdda6052be21e6cc7d548b225732c29ce4c634b741de13c89418b5de12bdeb755002122f456b6d6cef9766ff483e80a069c9a3d2e246c7818900bd900e844a5126cea0457bf7cdfb64d59dbf291136f030c5e82f924dc46bc9b216d01823d4d57d890ef4bbe6d6198052d91c8f18920fba9ea4222b0700038748cdb352f0abc5781826afd6e0ba136cd2c095c0b84ffa23068f2b93f4091eaad262c4a8545fcc6c440320ce7953dd238abf332548a7a3d646bb7a1892dc0bf32fb167ecf0ef7aa84a6742c12b4546c7a688d0f38a920fd07dda93beae35443dca18da9009833e61ba034693275283aa70dfbf16ac137dd6abf740a1ee4cd6879cb0a9351cc053bd25e2a1a7218714e95578f88cd87f4e2c797dc1741d312972d2a480a6d6fb4350a37ee89c319f27054d5", + "2d3148f8042420666b3392352423e345690f55083cceb67482a0cef73b578d2d5444e8aa5c7674d28f4b48700fa2aa05084a776ababb366cd0f23b0d381048fdec6b9f7459e693bba941a617377fc51b1fc7c134b9fea2073533a531e21c016e5d265229db8dc11bb38b88356e2bfed922a9f3972e2147fb8d97fc6382841c8e8771074983cde04d6d830eca666a0dfc08bc7dd28b6ff6759ffa569dd780867464b5f5119004ac8b3983ca78de886d7f441c344863ac96243b8ad8fe9eb2049e995f0070cfc236c2e2e9e28b7a9210e92cedecd16f22697addf8ba75887baecd9190f6ec581bafa03caa66e4823660f80f39532c6da12ddeb64d5c823ec3db931834616390137a6c19b08ed47456344aeb3a0e6cea7aa911f4dc5600e4c807939ad47e5873d080a8cdcca357c9b9846c7109db032d7b05ab7817691f17aa093640d86c0de2c20720416106beee27d046e53f5191d61692259ce3ca92455aa13b21039833c08e0909f6cc15c82764ac80be0500f4ba05dad10076e49cef40f87fe79b75a803bc18ebfe446a4f124c786b23db67240203062d4ccbd55bcdf00ad6a600bf6e48803eabc9018240f65b542e4bb49ecc77aa3d8aa52d79d7ee7ebcf046c1081678e785bc18c7030cafc9db", + "1ad991acfd356608c81ddedf9d6d76aff4f332a6fdbfa2dee829dfd051d7efcd0a2c0df2", + "271c520096d48b4409a6ecfeb59e0ad23a6235de98a31768bd47cd530a4c5fa5b38d0ec5638f07895938dbed55a14dc9a835a13241b7590ce992e7afdf56f674e0fd4c2c3462b186e4a6e3bae4210e1f64854dc1450b16ad80427e5d85d7149114b5b74043aa2f831bd514964c4d92ea2a1bb542fa683290c1c28cdc49f3a4522f1e6d1b3ec462b3b92a989c823ca4b211c5c4b92e9c0dd851be14b081df559f6ad6e8728e23f254281437e78f8b0331590b1b5bfb3722efd8bb7f67be458d03748f96ec19a706b640bc1ffb353d0cd9785bb465a7110b7ffcee0f7a8787ebed613e72d899f92fb9a677c4ac52c4389d9131561ae4feed892ec1eb6315451d5ceac306b8774c2ce5771a5c1df4fd3a6ff81e41698f3d8d5a211384f23e3d33d8bd4c941a812612a051f855c765e7dde09e7a4fb5897112037acfa4be5362912f8a2a4ea854fbc2b792d0f1ea133f09640cb99032e2f7ac3ba67e3cfe268ad75d25c8a5693d305e9118f302661a25a67609f1e0b27530c97e02f10e7a5b6745ca0b67b57e27d40be4437d13937fc8377bbda744ba7ae9dcd698a673b0bbed26396ceb64af85eb3e841f5ef6cf02a5f9efb5607a9a3bb850758c24b47dbee73f1a3d90d235dfd37c71d8551ac75f64cf" + }, + { /* i=4579 cDividendBits=86 cDivisorBits=41 */ + "1b1c333949bcd56bafa177", + "7729d9b048", + "3a3db229a1e3", + "421c43099f" + }, + { /* i=4580 cDividendBits=1960 cDivisorBits=337 */ + "803b9416f25efe7509f3f37edc8b20a16f8f38a7a50c54f204fe4b05145962fab84e9e60f23d904a261fac7bf9977268756bd01bdf3477d39c0f269e99a17d5d1521326621b6c3a2ea87f7643f30d70994de955015e180c18be283a5782a465f3844ba003d51ae6fb782034a3c8cda2afe773896839b743cac79c255cee19842911c0d99f43fcb503c0c2351d23f317cd0f4e56cdb772db0aa015034fcd7931d8f63fdab56a9b4e6ce434bd77e80df393414dca3ff97f54abcd541bc25e25ace13be89e1134dcefa6a4b2b068b648d1bf50adc7dea8bb1be8465643ff6e043dbcccd1167483de8cca11b7282025f2c67feb75ff5ef", + "d3eae44d276f8a41158790c9168aac0e24df66dd0f4ea9beb7ccbd530fba4eb4c786426c98aaf7ba8d00", + "9ae845ebf4b5170b337d4674f1c4a9f6ff51eb593ffc27e517805237a35a0c577b339938110b18baae6fee0e6b3a4e5fb1eae6f0340e86e1bc597913fd60daacbc75d3dbd2ee9a3aef0ca3c7a8f7c61698abaf29eee505202e860b47ede1fd6b637b7fddcedc9bc4a03643cd2da1f07b178587ba9af334b17b76fba5fe0476f8214a3c3d8d688defc6b9678bafe857fa0a67674f5f62eec0c6988a5465e133cc6f0ff702f7cb899390b615141e4097be7a087da47cab6b6a41303023cc525cff568713b787d2b272f15035", + "2f7c634e1a03aa751b22dabcb923d1e7049938dd3d5ec09293312dbbfebc93817efa31570bc664b0c4ef" + }, + { /* i=4581 cDividendBits=2394 cDivisorBits=1337 */ + "022d58cc6d936c958f37b946bcb002f4b48f48aed0c632ba439771e21e4cf132f9bf2eafd3653491bbe993c11ad7718bd92509e9275242c84bdb4b098b6c4f76edca1628faf330f1f26981b5d51d3024035be1c2db80fa3eefcd058e52b68a472246356c608a13b1799dc351a64ab960d33f5921a3645563a0e9f75728d89246401cb3c78d1e0144317d8d96dc300ea17ba02fd236f29ea09e681f365ad2d6767adaf765c36db87a0da457b9c1c7d3bb32ecce5bcc84235722a5fd6995604821dcd839775cfe3b33278c9cd7c0d245f1901c8693261d8c8d98f687d85ad942e0cb86d7151a8e75b72c324409ddf52a9866aa5da93801e9ab4e80eae04d9191c5a7b57ec04f0f9b8116be63e6f6b08b1a91f70732d71f8de6f8773530dad44dc58158481d57ebf4fc7e0cdb67", + "01935ac6488172fd91aaeada2b281a0310924c031ed026337475ceeefe785e8c0e77e8c13dcb7bf9599be6c6bd45c92896398b30f28e07a965eca1bdda49c467c63b5438ff69b9cda4842091bb45614cca00d07fc8ad36f98846954a39201ff07cb819b9fc6b3f68aa1f789c5c19b485c8aeb9aacfa12b34c671c7b27bb36d11fb2965fcf992c529e11c453d351bab0ccbd7a04be36b3d8a42198f19372c1f1ccf1430559305d7e1", + "0161bc437fb6a1425cc633d72358471c173a69ec0d754d2b491782fdd006e78099f2547ae44dacc01f8702660601bf4b795fe91033652bf5b175a37709ef93a083ea5b0f8eb01b96f8bbddcd997083f14280d63cbbf56472cac2ab82d424e955ee4e78e4e9e1d461027f42c154bc2d0835efc804c981c7e4bb82a591ed623613603cdbe733", + "011bd5a342654ca8392082272e6b7c9486633768556cf68618e0b92cfcc2c00223fcd08c0b7cd274d9dd0c611dca4e51456f0abc1f4d8d726c00e78114a8fe60cd0d2c5004b3445a816b666eba889fedb8513d8b256886a6821c15e2e571203025822cfbf54a0520a81f81d9242589285b02808ff1c88b061417553344ab43d67d6e33cd079a7195353c773d43e1f59a3b28cef464d1fbe0329642bf681b2ebe3af2504d849bd294" + }, + { /* i=4582 cDividendBits=2532 cDivisorBits=1585 */ + "0f3a7589d7251493ad1aeec84bcc61b94a94afdf18f7a7f03e174092770ff5471f893fa91c731cac46ff66ba3ba6673a54cada41ab0100b0453bf94b2ce164871e420c0b0f2491d21aa615598961aebc783c6d1ca7e0779fd5d556e58b87e7c20eb54e2e42aaf842a78a8a6bdbc82267a134b0a7ad606dfd48d2dc1cd4414b632c2673e929d9c04429939d361aca0db445e0e46f29b9d901998e42a7de7837c4501d30d00bfcede8c2e99b039e3b4d0c880034a9a9122838111f16518ddb2110203bb6927866b458fdcc222289ee7d602db173eef78d7531471485a983aee7a4fb41838347faf3d67ac18c255dddb8b792776caaa24c59bc5bf7e9fb99f7149eb4a71d2a682eb1197ab75d116a85818e8e675767f9adf62b1cafef52decf5d6c95ab3066ca4f353515870f14bac6a53ea4246b7aa44b598e6a5457c1cb", + "0152e51c4e35a0ab93483847512def281befbb7e6735cc756b9b1353463ca5693e0983c1730bc37efca3c8e617e4fa543155194ff66d21fc27f7c7225419707fca22b6605d52f6f86ce2976d17ec0f60b25866faeca1fac8cd5072e7f267d71830ed8e4092c63334c134a494b9557453ab003228ddd405149cd434b87de16f94032ae1312d7cb0bc5ff8026c3bf2e802ded1486779aa3fbe7e0a7aff581ea3344e35709043d0011a50cfbf327680e48368364845b61d0929db99242045ae529a370f56bf61ae68", + "0b80e1affa378c0e4d769b5440d03d5ef59fa7b5a0c3a071539dbdba1c298c8145d7b41d6a3a9ebb9db7fd151a29dcc388fd524be49224d06346df23e445a590a039104369af7041778f6b373918fe4c25a5b24bdddd145a0e7156bf57f01bedb930e2c864e713dec6abeede810492d1bf98fa55585a70", + "0bfec06b52441667c2da8a880ad31d76dc2eb144ba8eb96dbce0d3cbc5190d48a8c523a622b7e8844929c4e8e2fbfdccd9593beef3efa6afe4628e730abfcc77fd9f5d7d9616ab6df038591897a9728649bb45c8515b2315d8c04f93b0b7b5b77c12da978134a14d0a43fc56c818ca9775855d1510b0ddaed9d2657793702bd0df8673fe1208523ce7616c7d90ed5f942fceae8885156f8c9e4d4f0a79d037e4ebb34ef9e5e787ceb82b1aaf0169e35b809c08e2ff5c37732934df5dc45777f70f21c68ae44b" + }, + { /* i=4583 cDividendBits=3683 cDivisorBits=1075 */ + "06af0ff377cadcea456c456d44187bb582d6edfad683ca0933abf8c13b5a8199c3da9d8f404796c960c6ac30e77694c6d2fc6c60385a3a4c8dd9d42c57762ba7b922e960fa9a1039ad31ff37ce696d62b0f3dad4a169a4ed1ee3e0b4dcc2b0915c27e53967e90edde8920a9ee5f0bc060c7e065e2179617b6ee698e3f487611b8f7f71731fcf8a534510dff481a26697498c3649d52889fb8a28251520b17d6e2a22fa79ae6f2e521ce9103eaee9dafec8cbc5dd806796dddd07c52f7b33c6bc8bb30f8b226ef47e2d9c4fbe0ff477ec5df9ed5666dd3e350495b0f3fdd0380725d95f28f86c8648273988be09125a8294e14b4370a669158a050f2c96e674df02b8215ba4b6ff874d1f2d863ea5ef764bc4f652cd4318a2bda9b838505f02f4356075b3f9b714ebd6201da77870ab2d8564cfc3143d8b5a13d8d7a26f121e08f3e2b8c215c1aa2f5d76b25f66a14cd544246e325b075439bede8f98c72a7b91137ee1e0b55b42a8a0f4de5a97219bfd971ed77e3ba12aa69c217c6f0d07919310cfff0a17bc1ed15f8c6542deb82636d539ebbf051941e2a8444730d2f374077a27152abb5b0dc7f7399c2085b8d9a4abf5f25fe91d99eab8821960071df39046a7ef612140621765e9b66877", + "0664fce9cd18db602b950c4165e813590fba674de9e3a74e34ebeaf713a7127adc8f5d599f819dbb865362bf503f1de56e8fe3702826371877f02afa825b100f0596960cf810b861e397a677d10dc0ca3ab6fc14809fb682082fe92e975ade94bc6fd19725ccf42bd13f0543978b80e2b7277fd313a97beed34325d7a3c353df9409d4ea256cf4", + "010b9587cea6d304b41a0c46d2f55acd4aa6b6c9bdc4c6c8e57cbb98bdc35742b6908ffc5dfa20c02ec9da52dba455b5fa1fb56c1ed03cd0a01dccb13bfe50cc947d363d714f0f85bc7caac4dd7f10230d9a184ecf581a2330411fdc11ee842250ebd8ebd2ad939ed013d670c8397be5962d2bf46a408cc39f5dd5012e7a4cbd1ff06bcacf2d88ae0dce7a9f451560b94c3f605ccc2ba38eab6a57e77075eb50882eaf256e89bf5569830f4a72682a28600e95754b8b73f930c444fc223421d27718c73487132efb74eba57cfb0b5e7e569e751df2cb343e3762a84516f8f13ba64d1faff3f911020341df2f00cf83745bb42bdb422623dddf33f59a5503e54c8c7b674318217c49f432fdfb1aeedf32bb60ed91e755650b065d2c4aa5d302a86a7390ad8f418fbbe3bf3d46d41bfef910d65fb3ee6621a8df5156d1d4762d47d9902f47aa23ec", + "0238e5a0c5adeb7f44a2d965ea0033fe6a0f7ebaa45fc1b68abc635d1731f1f85d6d8cfec501f791be21d48f4661f0d521bd54e45bb1c67205a0180e75a72e5d02669856cc26c7a0c396e2c10c661a3a125c5d08e72e348762227f2945373d3183959af2d0951d66a2a6d0f0f2c9ae19bd9b735cf7b76467692058f59145944140cc3ceb489b87" + }, + { /* i=4584 cDividendBits=1896 cDivisorBits=1151 */ + "3eb9f61630657c08e1f8fe04095985e074de59e9bee4dff21662a23e8d7cb3074929661c39a91d226bcfe341d125783648a633c2a22525dec7ad545f843b4134c82c2c52b5385714577b4049ee4674177f7072f4c5f9e5b227fe68a455f2245762479cbc2f355622225e9c3d1004c4d1bbd6ecdb7dbce645399cc6dd5c5e1470e4bc1687ec902abac8f9ad07d5aa348a5e2e1fc73a12b2387c107718747d79f7de6c9184c63eb8dbbc6b6a27ea2adfcbcee49858a82c2204adc3cbd413f751b26268dcdc4083930b89ba0a1ed8add527d07f490de6d6cf2b21545c48364cc5a64ca4e0ec8e65df528159c784d6", + "534990e174c2a4c16807cc3e00a9dc31f2903430b69444fcee29dd9082bd28c6689436303d12db43fce274b075209a5969fa7d18b7bcaad4007a1aec498e65febfdf0726bffcbdaa23b599213650ef130482f92eb332a5b6e29460259bafa7de47d653f5c0d951a2c7fa45d4619c51781e2a285e9591d450f338d5354981cc6aece8824bc0e5d4c845139e29b547cb2f", + "c0cd4847e3dddb05acc56c94ce13bd529c9515c474913669d2989b725d2c32c951d0af68ba06b02c5e5ec99a5cd6e94167ee8141865a1c95d559088730c994708cc47b169dbca06e4938e69aafd1b6430eec3cb4c70ee340df9443a546", + "0b037887704d104cf3eb9881f43c50c24aa915fd91f2020200bbc6a3dae0799e31f606f4f8c593aefcaa59320c0f3ffe3e7a1fbc8765c210df16576d5cb3900ce096f87891d773aac43e2a570db46e192aa37cbea99e650e2e89c850acac8dc086249269eb9d4548769d3f4fadba05b4ac4560c85b775460b8a9eeceb0cc46071c3dbcbb585360bdc2d6801028e3aafc" + }, + { /* i=4585 cDividendBits=1198 cDivisorBits=1024 */ + "2ad5179add45046f238cbfb6ccde4db40887d8e253ed2d28854e40c4ee2959702758327f15d3db4741a05686124a63efc8cda7de8fea8c8f4a34ed3c6b1f5bbc76e978bff6b6e94acd331eb8ced1b07d8f70f02ad4a3c50b19eecbfeab3bfc19d8a0bd94ecc6169139bcc5fafa7e664c9ca6d9a4f2e7a0f0b626f4fc7731bbd0ebd8deae4942508238681c29e4cd9b7d381b4e282d7a", + "0630414fbbafd9b1c3d7db0211f463204423f7774acc2bfad090484ee473c2eb3958941683477d99c467441aea7ef9e1d9d545cb1c5ba6dfd4b0a518037b0168aa0d9f12f06755d769121aedd830f8d19ee057ffc2d200510401f71e2d6da2af0b5504ed508ee817f3fe8d4619ba3708506ffdc45a5a43328ed24ed5eb68c9e1", + "06ebd9c9cfcdb3908a578aa9838f432f093dc85a2b5095", + "051d2e4191b984a0a765219552afdbf5553d8236e4934b1c1f810293d8f074c95c9e79e762bbd19982f570bf98f6651b73a9f5acf214d42b8775408b916d66e3e4d1ec4a5711d67e7acd641a3aa2e16106ecefdc43a069ace2fce30d3f601ac23d552bf65f0d5087485c4e3a81e5dc74c96a040987c475da05dfc5ad88495d85" + }, + { /* i=4586 cDividendBits=311 cDivisorBits=165 */ + "1efb19df43b074ebfa06560056851cbfe7d111d30bb0478a38839ebabbc80fa1d061fc196c6a25", + "092ecacb78a82c3c247c6f042c345d964f4d04bfca", + "035fb15045e6be3933270c397e2a2dd9094d59", + "01aa2aeab92edd3327bef7b4281545b000ecfbfaeb" + }, + { /* i=4587 cDividendBits=557 cDivisorBits=162 */ + "0bea264bfaa895e37d92fa9bab467980bb504e3a704190fc58fa2ee5036049fbf29e4b71765976c9bc82e903f90a4595cf0e17d917bb78e3bdfde4f51dda2e1f9997dc299c2b", + "6d95ca4e0524c0cab2e21ab7bc7fc8041883bee5", + "1bd5678edf9afaa6255cabc20725dbd34905f50f50c8a7fbfc36375a33cd83be63bfa953bb1be0d27800007cf396e09959e9", + "44fb09109ac0f793641527392f11fa64480640be" + }, + { /* i=4588 cDividendBits=2474 cDivisorBits=395 */ + "03178af49f20d1effa68fbe0313787ee653a87d8c71cdbee97fcf98bd6ab7ffd0459e8a35056a7dd4c32a85c7566d83b494fb2565c3049340dd05847fa61fb1598226d97e418eed299fa22e4fefc72768913c83d25555ec2cdd1e9e644f70bb71c51a2ab37d864f6195c3e9fa885c4be094d25570ee2ca619085f6b66d5226b2460841e9ae3ef00dc1f110cebb4403adf11b61d148969f143a266a4a66e0ac81f6be6b214cb9c5181a139861a7d0b41539638553575141443ab008b7dafe868e5bdef6c0a6dc2d2b64612ca5db8fa7ce55ecc7e95be950ce62afeefb647bbc6c2ebc86b10baaebbde82dc56bfff23536a631e91983349dbdc6fbc1f42a9b96b290eed522636d689c741d494d2f52610d58fa13cd45c491bd2924ee7e1d8dd1962a2324224da7e31c5e01f4ed1531152c19d3aea5a2d5", + "02aab223ce76f63f32ec8c4c3d863677c24abaf289599abab02c5d1ced2044264e21d2eeb2dfab7258a4e70b41d3652df895", + "0128d0dbebd5802fdfd6800f33d5a0e80c2b44da90524aa6f8274741b0952d9b37e2a13a1dc5fd971d6a5034db1d111ced4ed797a58c16e002776fe32340d4fe9dd26f4d4c7cf515d9c03edaa503af1c867e976ea9945fb8a3886d262181f51eddf02d563c4652da54afdace92bf4fd700321cb8a3eb1d2def5d4b51ad5729fede42f97586a9fdf1a8015f8fe8ef2efcd93b687d5fe31879e5616000e62766fdea99b8359ee534f43017393ec6025829fb80f852ad30d317efee3aa60e2a3cd18dfcbfce16466b8111427df24c9fa4a100203306f96ff0f96e84f129c3db2061066e8fb125311721f13fbdd5801d13878a1a1f9eed925e1a554ea4633dae50dbcf6c1830f0", + "024486450e39b36744aca4de29f03db0dae004f6abd682fd4b5422c3da8cd29ed6148404e4a4ab63dd21eb6268030af8a725" + }, + { /* i=4589 cDividendBits=2178 cDivisorBits=2112 */ + "03be5a2b11d988f3726fdec213ff8ed86b53f02bb496635c1c53cb6bc70d857254b17297e70673d7cad78c60593cc7ec744e5ddecbd5d284466c87f6c245f1f9bd639c39e0fe6c77d58e93c06f2cc071e8d9138732b15f7830ccc6c264945e0437c2b6686ab8359bfd6d9536122eb721163fdf964f5cdfefe92925a5d5ace9a8c3d9d41f1fee2a5a06de5087761b674cf6130b1206292cc210452e7583e5bb54381bbdbe4f80bb8f1e6e77c9141db6cb9f13519ea7b9eb8d25f7c608529d958e55fa3d6e791ca1fa5acab23993a4d5f8afee841a86749c853c517f642fb97f65e3b2a44d4705779733e942caf77465a9556bb4e13a58b4c0fcc47beb1376f17c5a7104786dacf75fe15db4e92b335a99e1", + "9d2ce953d2506b42553ae14c6806bb4b3b93f9da7d45aab489f124e4a16f0ae453d6b7d0ae4efdcdb24b58d048edf8767b12759203bc55788dd1c85daf8dc454a22f44ce47255b29b419314af83beff31fe7afb1f76ebad3adeca74849c0f996e7cd56d214ead34ca539e756f16adb7f471dd6a153166c573c7f616b25c9a707eae66ce3b8648f8205bdfb6e82a17b4923aaa409efc7656c9c8cc247604dd3f3711f7d5db3eee35853b52e2cf4e4d1bd038b949ea9bdc0cf5c79cec1bf714dc49ebfdebd7825266c1d81b1d4aecf3c404c165c95cb656d489fe68b382854eb6bfbccce1d44cbff8e0893efa099049d6a2891127bee80f1422ab7884d191e3a41c339d14c1f99c73f", + "0618eb5654595da874", + "23262536bbf22c31e23da92cccf31f57205555266f40e7036833e8eca3ef2e3f70bb28b41f8bc5a172a2ec1de1c1555a7d47f142307d6aeee8851d8866afca8ea0b19b5226ea1c5457e671501e20b932ca8ecbb1b2942b75058f9f7099b5a79549bb29d95ab20a2ee94cf6686726357a73caeddf9fc796957c2593deedc3bd3e240f0eb14a263e320f826a769ec14597760ff4a1d81ce4cc9f7fc41260ad34ae2865e3e9d787fda147cb89895af67797916eda3954b50dc33f3f278ccecaec2c27d50decbf79b17dcf16ead3b9f72052c46c1172201bee5cf3e87da1f72ea4b42534591610c0f0b666d4205daaaf34d02246bc8f847489cab526bc21f18c7448a04aa221ae07f955" + }, + { /* i=4590 cDividendBits=1322 cDivisorBits=603 */ + "010c1b39431565d7323c5370cba66cce120c40630c6bbf45ad742b4d22468b9930bb1eefdd7d178e21c81ea16c09d6d22e08f2fd254a704995379d727e043ed5a5ad86d2b5742b25f59ea6cfad6bd0b68ceccc64d34ed8f3cb59b5b18481d3493f8476a6c8d87e607a446f9ea8c713349c9e87e884ff41ede9653b402f9a293a5448eaf0ff826b453b9b33ff8c5239d105c2d14a861a030faed12c14f8a61494091eca5c652f", + "07f975eba1f6a7cdd7b26e9d23bea790f11d7084627754b667cccd19bc1d3eae09f6f4269edd7e7e28cd0bbe12d3e5ad767682424bb0d6a58002684e4845ccf9126bf51b4ba619747a417cb8", + "219ee29cb5acee5d1b9a0506e9ad04dd2d5616b96672c8bc7887fee6e207605c24bc668d09bc56e29993f68feff5c346e9888cf3a5e7b3f3990125cc1b3c900d0a767598b8d9d4240aa8533c1c63d579a4d9b7abd53e99845f22", + "07dbd11a5340662d62e5dd9f534b2b9eb1f5c9df0cc486db675e459a22e6620159eb1f92a8cffef9bb9da2ff210068adb6d5ca4bfb7a3ee09ea9922da2edd91d8d84dd4bb868f469f9818cbf" + }, + { /* i=4591 cDividendBits=1431 cDivisorBits=511 */ + "555f0eea4be0321296a07c1753800d8be81e3948b99f00e11f566d54446267949238618baf2f8e10b2d26904e491430284062ee49f51369cf7046dff7477714b1c95445e6959422a84d52379f3b8aa214bb8cc06a9deb998e7e4ecf61747e461035fcc499c363054de991c5355bda04d0622dda9ddeda102086cdae46e7076cbd2b4594301f07d6665e7de5c964ed58962adbe75bfc3b77d835ad7514478544d2b7a8f312a665cb550d724aaaea303c92d61a1", + "017906b41674717bce552f09863ce908dde6a7ed1eaacc0c0044d94b34dc2a11105cb45ccb2d026626338691617b249c6e51e5d45d375bac464c5a6b6e81750e", + "39f78a12f64b9ea53d0e64b646a2f96901f099ebbcb38591bcfdf9b45be46bec6629bfb4795570a40142c085cad6ff2c2c9a688a19b65dd340769f9f2fead63404e4fc44bcd2f4d22f41cd6c04ea081c93b7aa51ab867bf760351f4e165e5ea21b5132a74941801f212b20d56c9c4f3febd8f0a6", + "c87e0ca2f61758904ae3ab7fa6336bc7b8b3610c141dc58705a306904b22584eca82ed801d205d37095747d66b60ef8e69f3e9ff1cfba535ce15a025ae5a8d" + }, + { /* i=4592 cDividendBits=3020 cDivisorBits=1630 */ + "0a4667e0e7258f32f0f845a0b99e714595c5e166f296dd4a515b3281ed821ee5935d15de759444a7e9e4f9df246854757adde93c51df03dddab8a716ae14f0029cef46ad4947ed6ec8e590116d12ab26bfb7e9a12445a4b8c72544b2990d7543342cb09e01df6c1616c431fc2de84d87db50ce6e49ea4c8aa26370e9da57f37639f55e05cc976e9c910daa8dddaccb29f3ae4197363aceebf343377d41a8b1beff0a0e0c497181cc786e65103e4482a2c43ce27e3f022864adf86493e647e2fcec7a696d47a78e911a6f5f1865382006882733e930d3ac325bf1077a4bf9f6d1c82d09b8ef4a4b936e2934e491765e7f491f0e7f07f08267a9cb2210b3560edaaea8dce51d84c70ff69ff137febebd0f5d2b5b72a195d41d4cda262cc37eb87ac4e9db0e01c09f56f9c23bfe5fc004a09c2fd58b80ae0f2569d88d01edf39630600e832269719a40d07bf8bbb2be3efac7913967a1befa2dae441d39b2e958fd74ea727c9d869fc4ec1e44a357376dadb2b8c56c67983b7a60d8", + "0eab1edfe77b2d8bf78af54bde9a4faae3c6577f75874041f49f345f13f0715a7758f624298ba77db3777ff58e77b1429c36e5b595210b16a29bbc159776e909d25d7ff4bd867c2385ce7293e98e490fe18023d933e6005b339f62bc0bbd995bb726f2314e84c8bfdcc320d0b597c0cd870c22a9f2a680dd8abeb640946abd326a6bdc9284bde9e5d4e392e84bc8c0b0e547c5c0568110f9b16076328ce4c40e262c0b3c0b04d80c09b64df9d33943b9dcb635493c99acb7273a32f3180dfb78c62af74db223f407063188de", + "b352fcaeac44740c94000425655f8bba3382a3b162a8599581d378c852f53407e34cb24db2504c579f28a667e2667c0f2f32a97671840297edd9e9a424388769d334eb0bf1eb045c67284cead05b7e71d9a5be1595db76d06ad6982552c85f9f61401c33e83767ec4c75513da2578915de8eb7d82dbb91f3d310f85acbecbf15acf7cdad643bdac88619940be50b7e1eab09884e4f538075d5a66d920a14e341967ed741b5c529b466e3edfc35e9", + "a0a508b4d62659f6907a8ca846db0f5c2a2bcfeab8e56712053d7e7958e6bd9aebf027c6e9e8ae599b080fbe759f84441a1730a1115d4539dfd719234062076abb057f07ed4a1a9f6b93193e5478e7bb7adec453196ef060da9102796d81bd6a98733d543dbb33774fb6c34d917209d0a56dba725012330c26cc252599ec72d7a737050d069d3ad52f739f0181859278db2153de8de8773c7343dc6329eb794664397388faea6c4c8c5103fa7a0d38a8a923a7d3bbbaf1c1668642eb93fb36d2ad218974fb13991686d8ca" + }, + { /* i=4593 cDividendBits=2216 cDivisorBits=1030 */ + "5c3c3dcdf11bf3baaff5a0fc17fd290a151dbefabd2f0fb4c1242121693f7afea9253411c87e31acac687d42f32ca826a0022b415f566825ea7cb5a0c23152b8ac58f56c1ff926c426336e484e0d585e12fd187a5836af5cc964d8fa7d52034b57e3ea7bfaa73f126ed4c712162ce3f3906f3ba812c4452b3034f6e0e2d04c4d30f6412023a457663de065a116de8b9d4b4d6a636bcd5314a2839a9acf2ef79589d0c1d65bb0e2907caa826babd372386d5c5bc14e8d444b3b480c538f255431bd4433712603ad70ec1583b17d00897fcc94046344e9321f060e968a07f9b531772c6425da9bd620a265dcbe5a05c041b254b5dee237187ea8a4cd601d955a20be459fabcfd0f96cd7e2157ba9593dd535077be937", + "0e079a1cb7bc26107ff8af879554bec12a5980382691a294d41fe01b844ddc8fc6d8a1def5cdb2b3c7b9350b5102f5ed49c1f1ddb57917e1734705d406f1c398a28762210a286a11179554f7e393e779c87e7deb567add7eb5cc87e83d87ec9a680d29ba1be81138469d32f624552a32aca363f09e34e9ca9c6ed8d0a6442a6dc9", + "069304d22da40b8ce9a35fccafedc69ba43eb379fb12205c8b4e3d7c525d5d4df4088872cffdbfbd0639aaea574774bf00028a7455e6a98d727263254a6e2308357efd649983b20507fecd2bbfc102f13bd2cdcc744a7b504840dce2995998a400e174d34ce89d2520e3ce86ebcb0817b378ecbea4efdd134232485ca29cd369a1e63e4a9d3c37b8864869c1989f3f6118bdbf2dbe", + "06a8436b57c49e46fd481c177c9ce44c691cf5aee8612f8d010831a8e1803570bab33e514fc96a8638f55511daed84dab1f0f1e94ba3f3f48c1dfc97ca9db7d445d01622545dc001f44e0d737fddde3ce8a5c0cd7e04ecade018f8f290b5c23c1b1b8c10922011cf5988e1100b0d22e04b9aaaade4ad5c6de1383b1d45acbb1909" + }, + { /* i=4594 cDividendBits=3539 cDivisorBits=1422 */ + "9c73704bcd1dd4fc0464cf7e072c25693fbe18b229a2494f526070591b26fa6db15ef6a6a9c6389500c6565541756945a58e5fe5dc9b55774b4a0d61d6689af27872422c48f16ccbc014709116b27d9ed892fcd0a07de9c5f051a32ea8f95b141c89778fddc4fcb2cce4b5b8b87cf8db9df8dea20229378a7ba5a9978911c839e60ab3600590c1543fbb3a9ce8dd2151b6355c544098b5b5fe098e7645ebb72e06458ff57aaea52e5e8ebb4296d2477e489be060ae5ae3e69768065cf7212c16a7693798822e9d000df0fde3086aafa8066b582ab62a7ef054b031b1315dac80eeff131f78790425e4d7a1be399df21be6f83bc7254c56efa17ce558188489880d53458b12975456f4a9c1c465ce80107f39e2c4b438fdeea8a5b030c2ddc91eb651c8ba9e9f6b1130c8cc640033398825ab5b7c727df6f54f7e7ba17a78580ef61a152a53b1c290247579e0b411b1ea7b3c6624534057921f7afe6a13113e37780a07a84f7d20b4c405cb8ad193a93b64eeb92873a03025539e55fcc3c7c9b25cf69b095caf28d09e2ae22522c9530f01305aeddec817bb275584baea819e94cfe0cb83978713ab7140d66d7f8c6549eb91b9e7d585a3c63784", + "0b1e792a7a1a831e8670397b92ce3cf21e70e8df61c733ebeb9cc3b543bfa5839cd1cf86b47d80bd82dd660a2d5dd703dc0d6d7e33c76c09b63e095f51c7e8e9b9e95c0f6c8c572bf143a571dfaccbe4b7cf53236efe5382f0632e67be5fa9ac2a47f70f02bc0cacca5011dd658be80edb4d1d9eab3d26c41268afbd1ff0fc0959893d6a264aff5583e2c16d3e6bec048b9cb6bd33bfb397ee249d799190f9dfce379d6bfb9b5f6eaee7c12f9ee5a7912fe7", + "0e120f6b7a09d0ebde30c90f33db4a44bc09118daa3ae30717b25151b524cd0115dc636652cfc5374b7e74b87fbb356b8512e11331699e55d1145ff9beafb5057697ab2f291845c41db188781bb86c302385ff4f556af93d282c0557166900a011cdc6796a8c340e6de3b6287a9b4b32d5e239b20a8d031be04b69863c2f605d7402e32a02322a8165bd0fcb01be9d4b0ec71e87e75c430790857744760d6086182c652e2faed34108ed9bcd25b09f81687d3712c6208a00e9d94d2ef44b682c3cfbb421798f2bce20af1635ce07a33e1866dad15f251493a31f96f60c5c9bf5f18c2f31d159cca2a4e4482d16d7548f405dfe59e1fb34a7d2dc74b9bfc38a782485db12f4b88ffcb4", + "0297739040ffbcb8d093c5247d9122994a59143c85da7b89a197f42293a60bc9c1a3a6a8a0a0147f524d6d3c39dc1d7d8aa1850164ff65a06f3908cca3915486211d85a419a87603e7707d802747081f9578ad477017a3d83661ee1a2e25f60c75677215bbb19ad27b1723b1d201b625bb56ec467357464e7d590c66cb6f17a24838e724f5ecd0d6d0514ebc2f01150ef9f5e8ed8467f8da5d8229497fe7e5a96def9fcc2f1cf182466547ec30651c802518" + }, + { /* i=4595 cDividendBits=3518 cDivisorBits=2231 */ + "0551675c2ad54f89cdd5d8553a858f44cc71f9f83c5d12d2e245b990879a58feedf4c81dbee6c7e2c31c0567bc7e959c830114ce6b3d451fe527b37f55f6b26b4a831596656c20b35780a8c9c462e0543c9d51c1661faedcff05915324113b17ed0e74a72b274c7e31766663ed4713f8532a77107615356053c3530ad06804a51891b92bae56027b00a130ca99393105151804109fa168c117bc0d22d55017dca1d23032d403245ead90a0587dbc3c7f240c345402186ce3aa4e61b369d62d75b182b1badfa1dfc098aa483569f789106bf36fe2d9c081877f7a84ee4dab97b587f5785c656db13d1388a27efa536eb320ca6c5ce975d13a15d05b287f6e2522ccc0834ced6b4c089e1b3d40670ebea72fd8e27b1e40451d778b05fdb92c238b8c4d9af7a90cfb1e9f8edf1af06527a20b577ad64f7923a90bcd291e86f05b39f2450be0ac825cec66542bd0e4ea7a342089bf1be508bcc60dd03c1c7f7723858352c5e7c6a2b4d167f7f01fe3d4918e95e28e2e4d6a7843ab9915a7de75ce7a41e384167747e1d73856e47f02e4f319478ab32c99d9a8bd776b7eecb41160f253e465b9a5a34c2d1169003526fcc839fbb87ded6264c87a", + "1e4ca83fc8d808d88bcf4b9e1f9bd122b6eab98a93b2d30f95e214d91c98d7cbe258171404ca8e2d15ba408c0fe31b7e47b008cd00110c6e360ad1811784be73338883fe89334c9dc9a822275c626504c80e57b0678c93b8cb68d05723798ef274e083a2b338683e1aea1476d565a766d75f24542359b513721763dfce169671ef25c965156cd2df1711b2626502e3dea23e22f1961614fa49a597a93bd3e54a91415dfc21923448666aa0a8153d4319ba418f324a8f4aa87113f5f0094b0ba35f0a905da72699571b5dbed58db8d457951c60eaca1ce2098d05c23bdcc046ceb03ab9453d362220760bd8785ed6ec7e5e69584a0b3966b102f67eee22add39d4f237a584672b91e55120865a6ddb4a97135c7dafdc63b", + "2cee80368d425bcca509ed7832f48ec065a9bf5a98d517ae79d4eb1088407fbd4d55a84780cd86b28745d61428870ae7dd19a71df6ffac25fd6bd28366bfd4413f40bcff2887d533d0027d66c16c984fff1cb9b49ab434b5519a39a495bdd9d01ec500167ce763e0c426158e42c6ec2e2e4fc91c031a58c72af90386137355fa4f3e57cbd79110d60039f5d736a9784103771049b5903a12245645acd9614fb009", + "0230d5b5416fced66554cc4ecfee291098e7890e1894aaf61d89fc555c38cc3fcd42ec88b31cf9cb4adc2d9949429ce8e91029303ca60c7d356212d4b61852497dd9e1cec6876359392d6c759353213913d8aae9c41071da5d7c3ed425d1743d0a31ef5c14ae0329731c7ff8fe492ddc71a4467205af3527564e7c7d73f1f9cbcc00b92d043940a3b454962700d0bf120ccd3659e0753169560e229b52c2a45cc5fef25cb374005c332b1b2606b4fd3badb3a9dee262a890067ca0acb48fd87521dfbed7fdf785999bcef6d2cce0ddcb91e7668235d454bc0573082a6a0e6f3e9933c6b0795a0ba674c0eac24c0e6fa8a87fe1495671aebbb118bfc7945a296b5b4d0feb1b1930a31706beec386e3c7ce9cae8affb4067" + }, + { /* i=4596 cDividendBits=2662 cDivisorBits=2172 */ + "391b7cdba726fdaa6e55140817b475a2a6de50087a897278591e35c30164277d409629ac31060276ed9e288362d096804c6b97f4d1320c01f0edc9676dfaa7f7f6d37e4ceeb30f24b173cbaa496511e056259892c3a90bc663df56b142dda1267e13ff4b4751e81f15c62939c03becc60f63e7bd936ad3c889cf393cc388ba908b5c4f8d7d54ca8a977f4fc4c4249e2caa7060d4500ad636a49fb3b4a63012fb859590eed7904b25790150d7a922a76b453ccbd454e262c04f0913d90db67a4c599acbf13dfc42af14c2028c990033db049712233fa5bf12c03d02b739aaf63ee9dbf3004c61bc7812006460088efd63bf23c1c502a4641bcd1206006de506f374ef3c8756710ab0bcbe10e9395dcb8a46eebf38232f2fd564b0ab2d8a51455ec1ff5d0e8ff99a055e803eebf6b4e52f4f4b8c023af60b8acb738f2e36117e38c440818071176d1091f48152cb", + "01d5908eb8d0a16f8837ae592f4e3e0ea7f114ac7aa1a823099a5f183251208d5542ad9c61fbe04dfb732f38a18a84f05f129959d97b586bf4148efc8734e0d7c2bc8e61cb9786025397b6b006fde60fe8c745ea8fdb5494dcdda6fec2f387e8d5ad5594adc9165869b94d7f314adcdd8509990db1f0e66af3835d0357f76ec4e840d542f83f28602f06f68177ef7f13f7ca978444ea79e19c727d0d3d14d3c6c3af4edba25db1bb5e38d483ecd46016f14ad6adc64c50a1ba2c4c39ded30d29e2e1669b1aa82f93f80abcb54c560e8afe80b94c6de07b0d300cc729398a0351edbe7af994a2a3a476ad2dfc3015de165ea7379585f076d15c1ec20031b1e850c4a5a1ac923e834a534ffafeb1d1ac9d", + "1f2256582fd0d4dda7f6d69179549ee8810d08e5f5db67bd27e7ade6fce9b5fede40f3264a31d05ac55efde0aac842ff78ecffb1c2745235bc97b9260d02", + "24bba811f06525c06fbab907353f18f863a460d762a7ac461539afd2c379481f474e1ea1fc2bd1933c47eb09961e5bdbd4db1a27c2ab9797482dec29ec59fde4276b1b022645c0df5a0746f9ca2e20d948a19fa58792fcda0791f7d6b0d454c1bfe918ea29989ee15cccd50df7129f133f9b2ed329393e681f5fb09b80e68141a482a8439f7e58f3499b13a5701157716776a2bd5385b59f4514b3f6fcc82d5d209f4d7873ce9a8c2eb01d5ac2e1b7d517d3f582b9a495b76e9d3de18723161e39cb1684d291dcefcb4363700419163d98ffdc5f420e73c9ba1709bca6cbc415aaa5fec81dc8313cc086ff010795997bc0cc745eb03a9006bdd61c0657d4b30710280d1c8e47b82cce2414d6cc0091" + }, + { /* i=4597 cDividendBits=3027 cDivisorBits=1546 */ + "04577c721107d9941016dbc0ca4ac6c3c689ecc11bacdb0c4ee716ab70677533a9ce419fe308202fe353cad60385cc477a0473552e3c1f7faaa9018fda64744ffe2672e5668e117696eef8ed01f67648fa961b3582db24219d15dc58f4689c4f2ab838922db1f07664fc3271f23c57df63c2b3fb4fca5c29cbf02d01681cad4f0fbae3112e2865a81b0817060c0f120790db20ae4e0069efb34f75fd53456c45a4e7a6756d668ba424f0bf786906feae8947190320369414d84936daee5ae3bb2b2dc3f0adbac6f1f920150cccd7851482ac9d0218a836015d65ea10642bd17a575740a8209c81f6ae729d0bd1ad3c9512851fbe3ef0470e58571f12f225722a368ee37129ee0ca7aacf5308521a271c65080d4adc77566de0aca809223f6e6afd933b558b366dca36758df07573e3c9fdad91e045ec897304650abb512c3ae68563133a91beb0d1faed5ca1a7b1036349f714a276826803c0b19af6dd19ba0a409e271e1f8135b16f1e34de4e33ae21a212c74a9cfd0c2142a98a", + "01a2fb4f8e9e2abbf5fbcb5a98c2c8736350efbc7168eef78c4e3a32590a031a3bcc0571dbb1acd2273e070efb6cd6ab4d0bd998873f1a2f775918afdc37afa055b55a233157b07a76255f94d1f44796459ca7f783785c142c2c22602a161c2dc87124528c277b04af7b85f519521635320444632e545d9e27e565ba618f3a12da2383c030d6237b4bfa57d5ba70ec05a363eec1fcd885efd673c02b4a75fb2ec5e0d19bcff9740ebe79c4ba28111180929850e66e5912eae960006bf85a4e534514", + "02a71fb36781bb67158f09b9edc6bdfc79bc8fdbf050e8c3304f8f1239514eee0adf636291bf87e2b91024d664326e1663471d1551050bebe2bd8627ed5775ca0ee4079ca191977033e725b550136a7d5219b37eb744ea6b3b60b3c6f6d833d41edf307555110c0ec66aa5f17ce8dd7bc1868213630f7ede138d28d1a90ca7e2882b563787dfefa429e7272a607dd99431cd2644afa9d7ab5f9a8d305e29048bf1b3fd2b120347c3e6746a6671f9b8ed6b0c5748a11f50eddaf9", + "35409c1b51197e166cb0f3ddad3ba026959288325cb5d2edb730670f9d660b448b6643b478db6d1a0a83ee250c269a928b445ed056b9125b9461079e0ba160154afafd942dbce5c9570814f1503635a441016f3164e1e7db15f506c9ecddc7e813c03e0ae96054a28d8598294fdeeda053154e43e693ec4b11b754dd7e24b820f3490fe06df808d94eb8bf034c89ded9e185d302f062d7052be72fdfe82259388d71283fa5af9d8aa72ce75d67d5a5f1e5f340e1b456d46772b7e00c69d5ed7116" + }, + { /* i=4598 cDividendBits=3147 cDivisorBits=1725 */ + "02d635e616e622bc8c4b2c9ca97910dd7bf66c9797f59d6905ff07d0bd8d32c42c90e88d16da9f8087134de29a94ca97aa8e18603f821f2ed1ba372bfc9a9d498074c72f935fa0092d0b87e08ed15d9ab9885426cbfeba55abbede46d8361aa9db7c913d6dd9bc001aa55ea92c365bb2039fa03ad6c1589e24d10e8a873e155def663f5bf233f7dff88eeb4325cfb09f16fd6ce99e4f37f4214089f615e497854c010c22f031d602235aec375ea70e45516f56615003921b766d37c4c654e798e2029c11994e4f2a89f25e81fa11823e47bdd38223eea523adc06fe81f666c9c87aebb1f2f5210bb4464b7ccfa54ab6a9ed37775ac101bef33ab5136332747f3cf8993c3cbaac25478deadcfc6a2b68477f46fdbf8b42f24ea4a05e9bb4e2163ec0778f7e348c11f4a04e583cae4fffab3e48afce9070e813b2f45b5402f86cc342d43a6da0e0344a4561d284dddaaeb8318f6254cd528c13f103be3f34af1e6d9e22d034e9db0805bdfacfed08bb3e9b032c25365d59bc4f3e6ea06bce5013e22da3c0e6e36d63b2efa", + "1450d9aa8bd899125f102360effaa6d7634adf813046df02df5f5875f3cec742a5a97ce70f4df8ac3ee11e933d696f0cb2c8bd24522729259a21768a1cd0c49ced47261c17f413cea7d8d80753514a8c570d52c4eb47cfde5d141b1ff62369066e41ab1e823af66a8f56dc181f8d64fcab0ba81027582e848323b2e4212faff6bc6d1b0d26b2674c49320e80062a954916c74a7214190475365c24aa79049594d0428c6f0ca955d1b178cca5bf1a11573110d6e5a3038233f80242982958bbeddf8c32958fde415f244f4cabe915291b256b5ab8de4ef30f", + "23befdb4746b1f971e1fb31276e6c5608d4ae866bd205014f4af32fb4a4584bb49912fc9d65595f5f21f3eee804ee7e79420640dc247b7816f5e0635e68954a165cb613f370b343e1d386d3327709d88e04e3ad8444ed7ee7b564dbaeba9b4f43d7da701dee92606e2b3fbe0deced48aea52efd79aef94a470f5c89cd41217f6ec47360c60af787aa6148f8e4dadae774907515b868aa83a622f36d6071ba8b947cefc676f59a4d89284222c23b7a40d566f", + "0f243ce66493b698f843775747ff41ed60a8883aff6d3e1cbef41bfca7a44d886352ab46fadc281286a81259daf1d230cc73524e3ae9148c4f80f8850a54eb172fedf7b00dfcd461e3cc1283728f2a29925ead6f161fc847ca71d4d9c9831fff89b788c533c9b9c27e2e5c38b8328c070884249f4bb3cf993fe562f445afc4a3bcc58c9d843400d1d4ef79ed34b3683ca54bb9b0a59e526bc82a39ee8ea8a0cf0656bb4b00fc375d0a50de60b98a87d4438550e35ef72cf00c0efe0dc5737c6f4b53a638d8ca30a8c01732fa707ad0cf6dfb52eef895c179" + }, + { /* i=4599 cDividendBits=2990 cDivisorBits=907 */ + "2db9049cbe8876706d26cf5bc5f6d4443a1e6b5d0064839ab1420b7f40f92d58453b6c0502cc5ee3b280fbfb70c96127f702bf5ea231ebee03c30ea4da48bdfb6ef5954eed16631df4e34704ebffc16b7a9f7143e0736445db0593cb7b12d7768af1dbd66ac08e26b6a73ff5e9520cdc7e810d9c36ccb8b86da2a2b6d645e0ba0263bd035a39ac4d4d2ebb51aa9ed080b25680c287f92c3caff06564d1357df8245ed25a8d17e0559e517700bdd4229ddb7bfce3d447f14d7f01b6d12c98ac973482eac34ed4131bda6357bf9ba9c1c92d2fb1ef33000d259430eef430dc9bc445e47884e49868ca3dbdb57d8ac7bf05af635e66eac23ff26f0b368bae9931c8e42e5af7dfdf92dafb9bc9e327a2f019a39729f6c40dcad812df7df00493df32a993f31635995d780655368c8850c9f23ffe2983ff27f706e3a870975c74cc5917271e74d1dc7aefeb94aed3b311a432bcbc66f46bf806fe3a63f142cd4d763dc05dd9a0655fa9c3636eaa65e1fdda5338a41d5404f2", + "04656d737e116a2641744d5cc1ff5be78c35205c7d32f039a1061c28978efd359189ee074e8a731c0eeddddd5ec295305e8178ce35506cbfda4b66fab895892edb96a28b4e8a50997d1330ac025fbb4a2f1b3e28eadebd262a0f5c51694223dd7a729ff5e0fa0e149ac1b969d6dca4aa6424", + "0a6687aef16b384143ccfd464680ba795fd6768b4594c254ac2d56297e4d8fc3b00750bd23308213c73ed7d5589514b23ed29db8faa426f8eb7a2fc70b75b080c032db32263de664262696ff4938f905c819deac56a2ed3f2ecf608af5b1540e5d33d1a7df34d26cad999cc1ebf041a96115610246d4d28f0a4c328e13fefc048783af39f5f5fdbe7e26a9955e2b55b36eb6f28a04dea9e6fa61c96d1ef12053c81d7188e87c0a1bdcc2a0d5497091a5d7fa863a56845870a0f7ade27f18c3aa03f9bc715562f1d0ec63e207cc03daf534c99fabd269f4e95aaaa0f814d7129f246ecfaa38eff5780f0f705f87b834f07f7d878b702f63d86b0f94d78108f8f4c3718b0329", + "01d8811edcc2e64205fa17e013e65d83c6d8d2a40298d96c342407c0d8c40c6c937193ec8ab09e150ac81c185c8d89c8f6674a713c5ecbf58a8e6f175abe8645543e6fc3b6dec8e70f77b4c78e24c5614d9e097dd71cd775f760f9f173e5e844b356e6793f4a652cee21e442033b7b518f2e" + }, + { /* i=4600 cDividendBits=1216 cDivisorBits=343 */ + "ec36f4d11000cb96cddc5080b879484e0ba6c1fece056ae73ee9ca253426c90465a61020b24c12f6e63a89d4762354208bc751281d1a90e85921527a34d27687962bd9f1d4f47174cc8c7c1cb306f609c605d90ce1be0d929cda76cd9f084cad826899790fd63eb358019ceeb7056b8ce9e041ac571d7b07341932aaa85407d4158f78f9c3a217baeafb86d5ac0074a54c0a538fe3df4489", + "7f644b375bfbd0345d9d030741d69674d5ce5b0d45787aa4e6314f0739c6645020c66700acdc86cd9f0f38", + "01daaf5865d1d72fece70342e70cae598951a82bdcc941fcdf519c5063e799fff4e9253054645f5aabf3d69804bcd6c97e5a29d72bbbf8f81e5f6ea52a271e311d958b41e360294d46b0fa50fdce114e2cc4d6991365f50255fc08f27d2452136845d9d172dfe761d2f89b996485", + "0cbefb428f9ee66880582b33cfdd6779f0fe2074a865326bcc3857ae84ed08ce793afd083c38adedd27c71" + }, + { /* i=4601 cDividendBits=1214 cDivisorBits=689 */ + "0c74825cda7a3c6e518a74e5b08aa356d7127f2a33b81490870f55c2a193cb3f0ed3698f8120330e4070598db4f490df5fbdac83eb83954711468e8276240b13d7e4e3b0df412b28514459404a0e1335e7b80a738e0b184f035a8eba4ad6771e796a86cb9f30358ff5cd76083172e2a8baa0a16ff0d07070181f7bfa54914dd3f0ab1e7f64e651a09aee44845ed5740bd5ea75c7bda121c9", + "01d52bfb4723046f560c372d26d7fbbb0f25f7b8a27e4b2e597b9c4633a023c84f772e04c83be8b9a17975c1e07aab268c757238f1ad940d980853e12d79715a06b5d02731e3e8a43517ff61611ca873d6365ea25d5ed3", + "06cbc91f51a4dffe8a88bdf077e8970c52da0df5385003579673596591b73f76c949e42ef92765392c2461c30f716055f4a02d388abfcf932dfd4a1c3b1a42c32f1e", + "014bdf97cb31638df25e0629f9486bae72a808ffa43cd2eec913fdc40e8907a6d9f88fc726587625f205d6ca24483257263967bd5c59bd1c1323f50e500e5324a5415a381792653778719e7f56d2abbf78b4e1f18e480f" + }, + { /* i=4602 cDividendBits=1053 cDivisorBits=1016 */ + "1909359692bbfca227a9b9f72488a938b8c57968d9e424e2629f7aecff5cc82415788c54fa8e16dfc061416c102f5518a9bcd9813b908a4c211f4046bc9a294f41408884b7f9144da1c2a1de651707e8440db9a52844c0820a11f818693b3f2069ae94c6572b2fd98f8233ee3e7c69ff7f2642ad079139da8071f868476764066ca0c1b2", + "9f67d8a2941d90419bf08576ef7185e5d64bfcabc8b4903a74f4a1a4a76055c7eb12ec2092be301935591577f17f2cd86ba9a804a7f9aedbe8fa922683a61ec9cd8c13a5c42294da1820be2d26ca286cb431b9fe6cdf4664c4707b0b1ea9a8c301396436e57710e339efeb5626921ac75e77eecb47a24bd6864fddf40e28b7", + "2834f85ad7", + "516881596f5df88525256091e200a3b52c19a433b684ff3cf1f161f8981b8a0d2f1aceda397108bc2ad91be6fb3dbe698a57c967cd91adb1de54efe95a0f1161bfb33ca59bf67157d9775bac020dc0ce942008bec89c2d067603582ffea2fb9ae05c44815de33b5af90fd6743112e7ed3fb6a072326c474db89e3cdd243a01" + }, + { /* i=4603 cDividendBits=2246 cDivisorBits=1140 */ + "3661cb0f35fca866f4d2d259cc6ffc85b631001da87812d1abf90fb35828ae79dbcf152034296805d37d30f7a8ca04c60757a76d4b0c94ee683335cece5f54850cef14c6ca774eea4363c5ca0ab4c6b8b7e6b6c58695a6d4fac0d9785607880cb11bf9a68f79de9afe3a24b5ba2a9ef1957b1c8e06dec3d8c484d37693e56682df2489e4279186e03f1c7d4e23a83b89374a48ae7c5d3bfb133e7f8ad74f527f1b1464600de833ed421bbc8aa316d41f482477375ffe33327c0b5af95638e3b07a73e2e525b9f18fc30a719a8f1b1e9549615a6a2a4adb271d2a73eae6035123ff37695ed5074382c3fcf019bf030892c127751d5c4a85f31fb8fb7b56536fb194b0492915c73bba675c2358749155be475a15cd5bd7dc517b", + "023099058f4b7f025f2155b5b7bd2b6bd55f83fe031934811aa64d827ce5532214fe2c8a0f0dd150c8e9d9d67e648df7a109aba7d29b67a27852b77ec9ca6baa9aedb04046248e631c80355fd7f95917b837a81816fe765bd1e5d88252aacedf362a24e0b5c67372868b4324f3849a3e2c5197956a360219003378ff06ac106b40cb3141e165214a10aa93750cffa0", + "18d5765fb91939cc478253191294c7c9f12cc73443179b64c9b305b8e5e751b175b339d1e1836f915c7384f0a1e96638dd083f8f57fb2c53ff71786e6a0b9d5c3e9756f48fabe831a7bfe0a059a65ef85a6f853079cdac6b9e66fe16b4b42a7ffa4406ad0e1f9a76422f351d7564deead5e6bae126d6543328694cfca7a2271894f8251bb0b9eb0a400bcb", + "01371ea726c016dd1526190059d122174343f79e6d7fd804402b4ddcb3d3ac6b091041f0fe0be96dda2c05105038974850c9a246b910c04d878cdc0509ce3b43c12a24820853c3fb402ff3177b1f0e78fe53e6b8a2139282eea7db08a95643852bc34fd4b4f6f682e364959cdda2d93ad4288a7ae2e230d7d89e8ad2c9d6dace75ad2ce8bd04e60a71274a4f91bd9b" + }, + { /* i=4604 cDividendBits=414 cDivisorBits=391 */ + "3552a235533b2c650597f0b3fd46ef0955c18d66e4e372f0a071b4f2cd53f7918e9aa2985e8251af3ddc3ff8f85739a74b5bf291", + "0151bb108b5dfa8f9965b514b0dd90110d2d6879934e868bc9c10b5950a7e7341077ed172dbc05f31a37d5a29cea927816", + "286b2f53", + "ca9bcaca8ffc6a607c39a322dd504d2128db24af83aae265324de5d256768f851fe3e3dd7b9de68528fbc3bab8a0f96f" + }, + { /* i=4605 cDividendBits=413 cDivisorBits=182 */ + "085e32cfaebcfc474e7f68b22ce68855c56b8b254c5da25214adf7b9bf33f873ff895b7329f801f3fcfafb6ee4098ba5360d48ca", + "37992d4812182a61ec568a32569477a67c057ffbf9e717", + "2687a7337c47f27fee5b8fc8d87f3cf4e379137b9aa66e5fc736974d09", + "16fb0109ae3339f7a538b1e6af42c7ac7b585407313dfb" + }, + { /* i=4606 cDividendBits=534 cDivisorBits=226 */ + "34a306482d9554f1bfce34c2646d696edcc4f1f8b3d42c586a38269d7f3fe653c82e7865636ac7c11b26b39e855d5012002b7d1a82b019f512f80fe0453dbae85449f6", + "011eaaab362b700eba098c95e3638866e23feffee52671ee13e5f1696c", + "2f01828b3811ab0e221e9cae6dcdf89a4377420fe29ed2166ef89ea0f9cec137d2ddfeb475e020", + "5df9db6c3eae064b5f379a403a9b6c6ba01ba6f558cf676dcf8c9c76" + }, + { /* i=4607 cDividendBits=2977 cDivisorBits=1770 */ + "bc1151f60f61a4c1536716b80a833a28848be82bfe46bbff8e407db8d0f6a50b9174299ccae561a5c7ef5a87aa758fcd031a7473511c9207069b0cba495b09ab9b742e4165f1b52b50f4a1f28dba86857f02b42f7d38df13d1bacb355918f9d36000b0862a854eb445800cbd2b0678d5511783c09d43f68e0a2ba16beda50ad9e650ea0cf25e06c3a28fee23bb0160707ad32b2486b766c57abca8628df5bd48db92315ce8914d7fbd2faf1d68a30aa09db76ab68b7d1f37f49f39981b07a24a7400495a40689883e56256d423e3615cbaa56f8a097b7f7e5bf5e486167eee20b45f11314517a85d49aad568f7fdd41cb27893e78742be0a302c6eebeaf3506654d67e27406bb137462a9c4da705c062b36b98a004a368c189833220b63ed7266d73545365fed3958777385c7834fc7ce8d73f911aef6de47835c17229c43563fb5e5f4559627ab34bb765b56981875a900c9fa017fcf0b0062f8d80c8d8fc2053752bbe64e2b20cb9c729c6ea4ecce255dd9135", + "7950d9b11571398940d2348e8cbdae0d2e1f068c4788f7119bc0c7fa6e3edd8cd762f82127609bc466f8d94a16217aa76b86e4a63a49a2e4fcdc2dc8a35b5c9af6e5da5a091697e797ca51e2597b3f2796a59547dacb913d3f80d0ff946c074002049a254b7d3ec45cb1dfa38cb3513acdd2e1c9d568231ee996c9be23f189757c26e883b1334863d36e3d1513a1bd9930ad0bca9db1b4bbe046a58048778087cfd45abdf5d0acf258ddc09c878d1faf0e17a048ef7af6f0f86518e161ba4d6d1b578d60cc8437246b024716f872bf50ff17e91dc1949c78cf6f990dfa", + "018cdbff72bb8ce2bb2244d3a05f43af734b4f83e368ef8d74686225eed7995352d70fe1f849fb1d2bb5c670617832f3c5b019bcee6bcc26f0d335c1997a1e47e27e3f9d1c5891400819c3f343fd06f3962e4d59d277add008cd9821d36390ede208c47f60c01b598531dfc607ae0955b221595c32900ceb7f7dcc97368e4e3fb72b3f4cde8d60b82039d2b657b8288811b2eacf9b1c9fb8", + "1855ad811ddf26a4aac95fea5e30045c2dc37538958ed823a7fe1be6bdc9ef2a021dc36475154fc69794d9f4d1ed9c205ddad20adfbba2be1369f99be5deb5b3d958389a913384423480a119c37915c3663eee46a3f4959a7d4aeb47474bdf0a62bc38528aa00acce1c014d7e6201f8c75983c49f1b49e6cc91b0dcd42db910b6eaad869904296185f638e63e3abf87091fe6c11223ff202792f2d319efab44522f76df94506cc0f0132530c9dfaeb3f1ca910be77089a0844d44d716aa8460574c7d3851ddb6982f5703252a2d790b9051dd1022da63070202ad53f85" + }, + { /* i=4608 cDividendBits=2537 cDivisorBits=2482 */ + "0160938953f56470d8ba4a93934824a60c372f90d2adb6da9855232ce73d8b88e231386b9fa35f618a72c553f15d9657f2328887dd6775523f48b4a069c6b795f608729482e7907fb3c065b00c7f93401215831a6d8632998b494ac9d8f522e37b54f90d5595eb94dfeca5dea642dd61f1b79645d60886f919ce765dac8d7402cd5d3d0f65fd4bd868ad9d34f419acb6c65acfbd6361ca45a26afac9424cc86d8ea47d6f0a7767ed06199794e800aabe6f42ed83816d8b7d817945f55b13fa92076f1d681443e17aa93065bd2cb07b302ef4e2d088df96b430abfa08c2b7a01402aa558c56571df3769c5eb99c528b9f3fcdf3bec654ca4b5db859b8271282cb248b0fee39a9343f8ba075789481b31e83522e2a1d79a1b5e596e222b91dfd6256846c79e5f5bf886f47b2077134f520f3360280bb2a72e2a75f5a40e816", + "01a4d63a67d71aa55fe9b0591508511823106399c84e2dc0c01fc91fb14f6dfd359ea1dcd035cb2e35a30d73eeebb383e9018665220a6a287d397f6849cc07e4936024a7d3198c82497aa45fbd008fc2ab5941d4424e2acc6aa8981fd1ddbdb80c8317893bfb5f933fc99408e84aaf8943bc498ea0f77fa2f6dbf6c247f54c378254c3608081cf9f98a0974deafa3d8b5096f5ae0db31a7039208ce06cf7401019838ce5c38717f10944c87bbc6477704155dc281920df05363625d1eae45e8621a94be385025c03eab033f8b684a119d0ebde740492ecc73fba8a09e9aa9f4288a2171bebc5090217e38549db71be001242e949f179a3c1c166759c66633ff043f26be99964f23046a97dbbfcbdffc9d0c7a33bbf41f380709d235c960f1062f5da1aa2f8b406b0a87428e5ac734ac59ca4dc03c2f126", + "d679f06f2504c7", + "0166afe7268ec871e3565958056795a6482d0e3ecae65bfe2a73ab4f1b817c339d699905a2e21ec86e8cc6b47940352d51cc74d006352a867e1e98ff87190e51ee5450a1219a1898512c3a9e2215cc1393506b6a5c10e2da690bca9adc3b835cf5d54c8ed46ade8194327b07a95012f85197c6a097716aeda9491d17a283156bbc8dc4cc9a5a6b1de44824d397ae3785b1227fb226ec634744d5acb2bf758ca2e01e072cb6fb8a40e3c90b98b0eacd72a10bf67c62f14a21ee42a21869528c93515718538fe9ed762e3fe78e14588ff67e6523f743020690893f7bcf5a22857e111c4c26ce9adfd2e3fb94a821a7777c81e9cdce5fca9915b18b89cde15676a8c8ad3688413cc787494f03f6b5789950c54e665723d51006a298b58679bbac14a8796fdd4e997a46336d789576c4d4e99bf4ed0d74db8c" + }, + { /* i=4609 cDividendBits=143 cDivisorBits=62 */ + "0855b36b8fb6856a55008233011f101e212c", + "31a8937817da4ce0", + "2af7ad17fd4165afd27b", + "18334f6b9a0b718c" + }, + { /* i=4610 cDividendBits=1246 cDivisorBits=662 */ + "0cac9cf18bcb5886e224d939ec21d8e20c2c99437ee34516974ed8ec9fb354a9d083df6a662105b0b065eb65024e3d8612196cc3c05c2a4050d2309146c778acbf9f59976aa051baa13024e00abd85b17e478af3d5dca41ba0d291d43282c177c0152b6aef9e19d85b6e51b219f5d96e620f51b2d76dae8f30249b59a199101b4ed43e42c5890ce723ea9b8ff6cee10f442b5d63640b5bce1c82e6f0", + "3ba9f03699618721e29d7b5c4151ccc81c7212be6292d400fe358a0432bbdbd67ac6471cf6b9599b62d9f89847434e620f07367356bd63d992d1b79c9eece817280496a95d99fb277da014d4893617afe8aff8", + "3661af6a96f18d13d8eb39725951f335fd9fb04b9fa266ec3b51ea72239626cdd525528b3b61ef4c71e3333c0bf83a507915509be5e7468be74f7252bd66c6d2d34e336ac9a3b3b915", + "3466049ceff99f5c2a27c1c4288830b34fb74ddfe6df80e8fe3f11fdb6b7fd5133fd91426c0af9b2bc6886c67f318d0438dd436d9f1c601a827200686b4b814e621c3e48ce8dfa96e582e4d02acc4794da3f98" + }, + { /* i=4611 cDividendBits=2981 cDivisorBits=2430 */ + "0bf5b34b4740fb00340bc480bdb6724091a956db05570aebb2e54bcde5ac2830bdbf6c2d50ecf3453e8434ae1ce71fb373bf4383edb794765986b6f31581aa1e730f7dd836d461d024c0a860a63bbbd8bbd93f1aaee3223e7768a98a66cbb816043facc8651d094a1df4e539b4616ff8f5900754e64e4b5e42dedf791b15cb43ebda4f871f4bd03de0dd53017b44ebb4af73774b4a692336fd281a08ab97585fa48cb54dfc5a1c84bbacc63a8edf2ed4f8382afca1cd16e85b648557bbd307386cc2fe19a526220c49d2af3f3d006370d8a77d4fdcdd3fdb06be2843f5eb9ccb1fcda611afa4f022b78c3d699d6d3d38f0459485371712153c0654f52f7a0e01ea443f3ecb21624841cffd376902556fd70ef5726569726b6bc44a11c05e4a137103f281c71850f0ed410a9731fcf0a4914a672f64cb3b5c89231146d219729a7aada969435b18554f243ab35d3636ce48bcaa6348b0d440b9b04f7d2bb756ee3fa06bdbc6430144b27da4044ad47acff33cfb208c", + "12727e2e6e6a81d8abf9dc41a9b98ad278e57a03e7935555701848a47e4ca3eba9336dee9c99f2e0dee379c4badfaf3ba9080b933a871e32124002c2cf2ae94c8c385eedc9da8d49da61d39ecff16a0516e82e92e88122352c69dd79d6666c20c9aa64a3953fbe25c6c2bd4af8a524342253902b8a1c3c17358f3ac91a74e6c457d5efa5b948f8eb7d9e6c281f6ddd1b178d7c5360bc05465e9d1d476502f210f97e44bcca67b2e74f71d427720cf7f7b8a8830456e65ac65b365550c8f805a72428c440ce6c7e5df184b501fdc82024db99b9f85bd50fbc57135b2d74130f80c6f1df7505b4ecd9d806f876216d8713ff8e7557a2a4326f937beaca5bfa56b1f1d8efb78ed9717214a209eb19b59aee7d8464f2544205f8cc0757acf866464278bfc83b82ee4977a80886137fd3f707", + "a5f87d9b8d2ceaebc4c43331b8db84cd245ee75284c88b77607237e85dfe1b8d2a5791dc843ead2b07a58001c7f08d4ffa22029bda87bd1c73ad387ad0a9dc980c8252876b", + "10fc99a01cc5c03af0a7129516c912915c09f87196708debe1b06d6b3c65e692bca59e5b70836541fa3ec4967ad67ea264117473d564c3d7a8741e8490389aafb176e86fb52900f6c30c068a704a2d45d855cfedfcc6f3e4ab11d0590191bb731f957eebf45f7067397a5a904b88e3aedaee2f417cc952c15b60af1b660e7044a803256fd65c77cacaba446acd989feb08522ccdb0149b84f329988b9a58963781697a719b52b64b7ba7b701660eef4199928ab18a6648ff516b9745788c8f4cc08a141943444cf37c4dbaca0b3a6a705a45ccd4afadc7f0e17f1d1b2ca2058b4bdd14ee24445b546b3a8c886caa7f7b684c7b4a928e45ed14ae85b30911eba5bb9df1d2657cf2fec8376ed336a82388035c25195950c58885b78ac31bc97b2ac8478fb823045e1e7f6e2bb959e02f9f" + }, + { /* i=4612 cDividendBits=1510 cDivisorBits=1076 */ + "19bb54bedddebea8eb5a56452684c7b781c3094bc0d1020f10005065769238120b299abc989e57ab7b2992c009b7824423fdad187ca82d53d148c4d54a08852c66ad9abf746202036e172c73e474440df68292a42e886b096cc622d5d979d6696f46a1703f8c728b871a95a862071bd8e0f18cbdb145717be3009542738ad212a3d3e9fba0a229535d5c0ac23b06c07f3fdfa9b7b8d3574114ee97909fa4fc77343942510b71cfde6485566d10dea5e16a71b9272e202f7e82d0be8c7b", + "0c855bf29e53a68665500ee9965bf0d064dffcc56ddc97546bedc534d8b8b1e216002a234be0aa9a925fd19a89f5983adb441381f38a2400ac6b65d96f062566e10d747c600b6d562772901bdb24a5dee2ce7b451c7945dceef0a063d5f23cd91c369cf19ee4622929ed016c6a2796c69243938618a5ee66bac8739f0c1e49426c80b2d9c47854", + "020e1afb057df547be4aa53665f8993b67217367d8b6b872207b163826d3662eb6a3038be41eb1e8c16ea9e63ad7cc8b418596ca0c5d79", + "063b4ff2e8643713878aa96d036c0d29ce97e86fef7b3c1d9f451c278c77c9ad57c767356dc064595a63969aa2134d1a7db5d6e60c8aa039658de0924f99468252bde34d95e53c8ecc4efe6d5d9ff6ca289450e24ffb38c534eba3ee9ce80e849a305538436b7ec2e0f5111928b99dd074ea0ed6a26ffaf3ab622c4b67c3b252f84f7d973b28c7" + }, + { /* i=4613 cDividendBits=3172 cDivisorBits=2688 */ + "03bf23d61b533a91b7d730feff194f379dc17079051e6cb0a3b4a09deef3637dd7a582296809a50d46872b0e1f4df82e9472a89e984f9de82c4432fa6822cb27ab7570e7362552f333c27e7e9b7a0175d8c3ce0793fe737a4468524bdc614e06008ce6dae263a6ac323dae4ff53e3b9b76c56411b42705587bc8c69273436533990db061b77f855d1cf0cfa82074702ec8a31ac4a92e32e40b11f53523b4cffd6854f2e28e645fd26b4bc83c53b7858f2b79321ed1b2c6a073367d47dd6b50ed26b9048b7d76501682c998a699dfbe9b9d665b4958e420d60cc6b6304ba31b6ce1007fd975c92d00b245b43fe49a6e8b7b4c04d251ef8623b6caec50fd17f1af2918f9be0e9419fd6f4016734c4baea51f2cb6437ecd982a0b873b9fb85b0c07bd9e41c233b628cc4ddf243dc65aa425b098e6a436876c7dda3befbb88da428d73bf3e9a58faf28ae7088ef88b2225c451147ea77b4e3796bef2898986da0b7cb9e12b1c9aeea5d5a7bd5c1dd45097a0cae3d7d23d589d3ac34342f6bc690823af9ef4f1bc572c7304e13d2d0b", + "d83610e9aa38b1519200a3e5e39996bb3abda3a3ccedfc7b6c8489457ff95df85aa5d840e9b49948138b1329f1c5b6b29ac2ce8c25d1070aa44122293b3a3f365c7c627a636dffccce3651cc5de012ca105017943b3cde6fcafe36dcaaffcfa092a66ab82730dc161d24cafa401df1a5ffee00233f4e340b74cb63384803efd5252713c892c234a5f865a13322613588e0050045ad17387f72d7632020436b2faadbc8992616589c558058d6b9402431c7ebbf48eda2c5d26092d20f8e89a862fe3b0136ce88f5c9bfdc976ed105ce05257354c60c4a110e3b8e425ddfe59ae727056895b93e6d2dbcb94819406d5e91c21a08610001019567c280280c347a7fbcbd8df4ade80937643e3e4f4dccffcd481193638b2d98a6a7942251242431f12c257b788e2ea811e33dc262135122c2263555a0169a71fa5d76d7b166f3818c0ef1029ce64f4e97f7954726f76cd250", + "046fa5eac3662b3603a44d1bbbeaad9284a1986ff1b42076b265c6fdf8a6abe0fa8b34111284fab2a9a8ceed74b156d54119c76c24d5e068c31dac187a", + "1aca1412e0728612195ef3fdfa8031e8cd1f204685b12c40c6670b27d02c953ed16449e9b41ae060ea4b2306d265d14597227740174e6849fe95e840fba20208aa5055e6d7c0119ddc5126839a760a6c8dad25fe2c6e25213ca9d423c4efa5a40c86de9d348b095302f01091f3a453d0167a3d1d567b4d44aa3f90ea489bcf04fb4b2a918c72f9a357fd00b96876e5675288db495302096bd7db1f7d50073c305b1505c57619241b149e34cebd559665416712443b64e53d515028c7e7362b679df70516d7cdd742491543d900b730a8b1f0748ee7a5d52c02bef9aeda16478f95eec0e6e67fdd1df073694e1b10e5c01010c0a82c1943210aeff3e6f9ddf3bddcf5f785d13d400c62cd08310c808cd585a7edc626278ca6b1768f6e56cc6f5e27048ffb472c2fb4cd810d73d7fb8419ad4872414632750a802876e20e731cb71129a6ac7eda9817dfd29f6065e972eb" + }, + { /* i=4614 cDividendBits=1374 cDivisorBits=144 */ + "2e068d3e78f87110072a55a1356153cdd50cdaf7c202aae54b53eab7064fffc4bcd33faae356f2e5c832ccab42e6e3b1ee124c2bf6de91e9fce681e4a70e91902f288a3e289b8396ab2af2c5fae4897c0c509b055cbc128a54aa257b34e18910b388a544890ad9625a0c027b0e250ad6b4cd4ed5982cce9902decec0075e64938e20c444924550ef3be3a38e1ce8e099abadb1a268e2b41348c8b00052497253282179b832d0ebad1c0c6773", + "fc1c36016908d170746a4ec24ad07552e186", + "2ebc58297de448394f7350499188048f0e85d1d8ef4c13d9213d3b200b42fec5fff8d06fe521d31c41cf0777f89954a1af160339e2870340aa549da1f5a6b68cfd31523ffa52c11993dcca7833108edcb70a5cd084d5e793b7f58ea3de5fc757148d642851d331b5a1fd992e68293bbae71bab24fc5f97ce0474fc012a79d2fb3101c387ac5d743b6c6acb2e97f7b431ded4c6452ec88667f44e", + "4ed7befd434d6be4b240d2a295417cedf89f" + }, + { /* i=4615 cDividendBits=3752 cDivisorBits=3268 */ + "7b456f0e4f7c925ef71e266252a6cc32efa4cd56145b0dbc5268666e287c3200e863fe0f5cfc8d59c9501e11d225450bde8242abc3fead12229fb0d18791b3ef9c3c99bf98c8e431dd1405989eaedc8bffe787bc65ef106c8d638bd7ad92d44a29afa323e14d0acb2f3d141c0642d9b54bb36153366e1d346297fb8057adfaf9154e86c2c3493149cfa70f46498c809b4aa85f5d1c74e35d0b3671288f33903a47f6e388ce9a73acbf00bce025a9dd78346fb61e3f519093fcbf5a5018bc12450129d209e1657f1c623754061dd6736f8e614a6778ad65f175aa88ece46cd487bc8ba56bfccbcc9dddb6f96c777644104cdc278a099f14eb19d5bb9cf8a3f5afca05e5b5e57fd4ab03c0ce95783f77f4a8a83da51ff41da78701d4fb684750ec049b2ff0c304040b0d6e2b30800e9d713f718dd684b5a13938e79d72a86a34983a8ece99afe3f90c5d732e42384f779c6e6c8e4ae183113e999d6719bd58bb0fc547223010e14661611d421a2b18e70d1ef616b39289d92db577123a8f1403de1a1e7b3656a1677ec392727d2d83b7e566d2fbc90e6477c49c0a5168dfbd03006552d52b796a7edac07a5861c3aa13a4e5da8e514fa5532bf6008ad32135567818547aaa867c49605c7e2ae7b256d3696d9fd3a8d9", + "0601678f03ff81b32c53a97f488c7864407db00929eb52a9de1838b723ec3c3a89128a8183e98ca2ed759b476ab6cce06eade90b554601229fd503b60778d937d0ad0e38d48a870367acf16ac206eda967d250193aea793c0d48ec8d33bc180eb6f7c8a75cfee8c1db94f2bef9ad9426d71cdda22c707cedf43b3ded125357e4265a73a3a7e41c82ac45eea44561911642e737fc9ec3c94c1b4f0fd621a501e8ec992e7a16baa318bca26188da535d1e51e95c4b8fe5b48c0983caea47fff1aabfef798dc95c4691afea72c984d6951fd89ae1d49dc3756a402a51a5922ca01a10a4a8429c89d1197b7ed5f1468505e54cd1263984c3d86f72a8fa33688cbd6d2e1f1b013581b1969c6b754be509aa8ec1c51107c5074214cf01766677f0e7e675cdd0bf8507acc0d081e8cc45825b5c954d524cbc12e9012c4e8283148c1fd970f8ae45250d64a637845d1451fb86b6346d33eb561b88ee0c3088f7d446af1fb3bf2ad7b2dafbdff17b2766bead8a19a7e4290bab5f3f77bf814b307d90cdc02ecd27545cb21c349984b2dfe3a9decccbb6015a3b44dd0973", + "1486c46edfb3aa3403d89315ae6144368ca4343995ae292a14a356f645224d11b69e2099630bdd1a62f973898da82129d28ebd6dc49df812a5d49b61d3", + "01f53559c7819e22b533675e3a1f28b166007577a934617e66e8df75e8ae9166832df2718ad2c0c1f432b018eedcb8a896f7ad04665ddc0794061688ae0361f64a8b03088b66fa429b05741b4f29c23b56c0c5abed28ec8d2a1543f80d5398bf93e6783f0b78d6d79d43e9077011a9d42324c99c3f2b564ddc8865b9cc64ecc4cbd3e4f86386da170c78946bf5f4d6eb73b900451dabcc2abade89aedb0b0f6060b221355117c1dd6c62fd52b60378ef6f757b01a000dd47c77eedaef2c1368974e5b513f4c972c695521a040a1432ca3accf819c8b3c321a846dbb29414294d02056da5a1bc0cf9f22afce38df3e22c32f7cecc743a2a98a1a1ec6e34f963bff0d2d2242310879fbae3d1df71e8931d2399e61ea07b8d4352f99ad34cd8fce70d7e5704f40a33cc5668dc17c52b5917b9ced3f6aecaeb510d0dfbf6dc75b4c3cd0a1d8ebab230cac93dfb9b93d0e641e04fc2921de020714dbbf1a4d8c2137630d475c925d037e65b83a1307f7f1e9dfe46bc26e1c9e196ad10bbfc13cc165593fa03b554c3b74fb1c578d1a699d8cf467e12aab5286f4c10" + }, + { /* i=4616 cDividendBits=773 cDivisorBits=247 */ + "2c5b45859772185ff62b40f35def0a53a48f355a7a8d6d1e68c6b8bf81094253b4cd829bed4a23fbf83b4d0d1d37dd8d3c42730588e54937f3ed98e5f9c3c14ec75dad5897f616f91e7f5a28ed477ebc468f6d94a1b53a0c4ac72f1d7a9eefdd", + "4adb7b73e926a43f02b8f532349fd4282459a354b2b5da55d5cd5ef446ff7c", + "97b12fb7340da3c977d6f04347380d5e7d6710c587983bc76548ce26eb7b117f0c7f6d76c141c7a58238e9d6e6a8dcc5c0992eeca51d9aea2bbabc0e8551428ab7", + "316f31674cebaac7eeca316fed3dfe2ddbde6505e8a2512e8b3bfe7c2d7639" + }, + { /* i=4617 cDividendBits=83 cDivisorBits=10 */ + "0275fa2280a2dba337d17c", + "2b", + "0ea68fafa48815a7feeb", + "03" + }, + { /* i=4618 cDividendBits=2127 cDivisorBits=1587 */ + "10a50401550e28fde86bcf6c7d6f11a9a5dbae1c886fcaa0858f7d166d4449be6e83964170acd117534d8fb5894085a17107ff885cb9a355111f2de394e12f98b4fadcc525163c1159ba4777a128d1969345fe1e0d74919d5e42ba7948c1fcd7791841c30cc329486058e6ffe211a923209c5310f8a97e5b3a6cba4f8bb05a4be6477997d63b5ccf45ec3926d839c507834ea5d1a032d6f4d79ddcb470fd23feb4de3bcc97a5eb718d595da6d59f4a93c8446bd9d4db76ff507f6d53a29eb39dec42e5b01b97120c02ce0de57635d9e564c366fff92f5403b6f58b11b057055017675de0bc9167752d40326601d95e57f86e4eafbe196796514ea79ba5b99cc74644243bbf1337bf36", + "062afdd52619f98db89d6cd13153810db400cd2ab7fc5da6f0c4687489a0a277df38cbf9d70eb0f759d294f967fc0f994fc4e683725fa8cd887287853f0372129834f6eacfc063419ece0abd676dcd26b7cbc137bd6503f3abe50bb49ec33e5f0935bf7264ab124d23715371ba71ba68ea554e87eee96048f55a2002dc62fcac4f7e85779ab16e16f5c707456b8156c47ae095870efdddd2f2fd8330cee028d7995947edefa35a39155861b98ec13f8930268d322a6e1783cd123448be5d0dd87a32db09ea1eb9", + "02b2d55631684a6c59f82f2f52a807604a0efc7f6c6f1a306f923991cc41c6710f28f64b7c9505095ab5f710377c868dd3d1182cf294ba973c24ffc330a6cacb496baa", + "059057f62f3fdb162ba5092fd4c24d99df0ea85f23dae52e5234ee8171ba6ed5ea1fce59cde9e289d709a9cb04770fe37bc45ebe7c99662cfd9e18db00c225aa9960de7d45d458843b2c8a185127cd9ae9816eba1ca348adc7b79f802ca8b410fe0a307710cd2d462e88a93a9fd877963b5184c8e3a369ef31847fa5a53222815c94e91c72b088870edaaf371d66e3dd4f9f162c4b44737236cc5f3eb9421b6e1ce1a63e50560b2c8a83f2056204b3bdf69aa4a80ffb03426dbe84c8ca9895ee123b0c2d27055c" + }, + { /* i=4619 cDividendBits=584 cDivisorBits=8 */ + "ab7be858681e82bf34f73de13794f3546e2644ab2aaa368cb84181e25c40fed26ea1a1210aaf3a30434666106b9e7ad5235187ccf1908778270d64bf0afbb36a6e8f76a1fbb7306ea9", + "60", + "01c94a6b966afc075337e8a5033ee288e125bb61c871c5e6cc960405064b57fcdbd1af0302c7289b2b5e11102bc9a69ce308d96a22842c13eb12ce61fd729f33c67c293c5a9f3dd67c", + "29" + }, + { /* i=4620 cDividendBits=214 cDivisorBits=100 */ + "0b1eedb1c9cf2ebc78eea31fc593da365fb3cade4a3ee6b0c6e598", + "09410045a0fe45a092ba3dac4a", + "0133a5601465f106a1ec972b2fdea8", + "0407fe1428b3623c31ed4fa908" + }, + { /* i=4621 cDividendBits=3035 cDivisorBits=1086 */ + "02234963f4432b267cb6f7879fd7692b4a22afff74e89dea76775135fa997aef4809b213dfd032024d082458a8e82042d35a22d37a7893099af6a842b402a00bd5ee6ee01f2c51bd3cd1d3df017add2bf365d72e29fc2e65a6ad3ea802f3820292fca8b45a2ff8174d9c82c3f3c622d9f72ef07550a4b77e1a7c20d5cd6f991c780bd192a99d897610f3bf1d6f8f2ab4f08de55fd85ca53567c210a8b17ccfded5cad7b74cd5ca73d7eaaaf29c26744d290db04642b109ff41b8eba6163202672b3ce3824ee59d54492e6d038531c6e853d89b92917a8143ae845c5922339318cffe1b69dcff9b29485b96a22c70e89e632037686aa458dbb3fa3a10135db2fbca4fdae58a77db4522fcb984f7f853925cb60de14b6dde5697051ce9b5a0ea7be9862a49d151acb840dceb0331c62d15f924a1a618e763c9fc0548bace3097cb3a2e0bd9fb4222394eaf6c6c4279c86166129a3ee2db9074de1609d0129bceaccefd3f1bb7d73aa064eb01ac2c6c82409b998ad3e050fc38979bea64", + "3c89b05ad39efc652d4d4d891a6b9268b4b34ce16f910df5c212149fc9561ebfe9546e2690ddd26e1194829580edaf783846c61908435c37f6b94625411d9cca67cd80b8aad08f2f1549f19f4ca49ef9b72b1ef3854b3273e859542d79b07632350c1a81ddad749d5669e61ffb7cd4cb6e2d093db8ed2b6f7b20110828a74a3bba84e67494b369ef", + "090a58024a5434ac03a4000dd0517403bc8cab77a3d982aa91a9cbce5bcec5433b5f7aaa54e309ac308a05d0ca22c2e8d269d08d37410db3bcf656f0a0a100e3e1937ec62160f6cec0631236a0334e779d20f1fd435a4fbe5d41fede2ee5d7cfdb0bdd1711c8951dc89165480a37f6369f49d911a4315ed5e12134cf31f2967f210d1e40bc63f4908165cc3da223c2b96c51b08c3d56bb2849220b4f1496de9bbd611d40ddd25492d5f999575004964a00e8b22dca74c3e8c0d19175ac0d760f0887a1c83f2ac987ac44e4cdc1a00ea492bbe5cd2437a596a83afcd3dfb11c7db6415b41a7698111295880d7e98ee43e8104794f", + "01d203392d9359567631b02aa4005519bd7fc69864e88aea43a3660a65583f2141ea50ab3a3f27e9fc49a8361023d006bfdbca29195cffb6a94d35bd0b2857c826ca63674387b802ee7b1abdc7c510d8abf6d4b6044825b2dc2e45f934a0752529ebb0d89672a91d3a3721d553cfc298f088023bfa441562a349b6acf9b8a1b4104184e4d07042a3" + }, + { /* i=4622 cDividendBits=807 cDivisorBits=737 */ + "0927ce1ccc2dcd2059c5f54636503c0554dd0068c563b51a2ff072d79b261c2a33fa87dc0a9860f68d3d36bdae455112aa1e0b35ab1d59e4448e2e492a5198dec2eb152dcb8b7ca3b020540eb1feb4d70082f23df2a3da1ea63e63041d4e6d039e358aab2b", + "e0e5dc99d22b1c0286c22067435909d79b270dc385724719327b8560c1c216db4ecaf94927b76953cdf20f72264189f16b0e0fdc8e9f44379ced5d51230e4af6130b148d9af32d8c9340dbc2b52ab326f8b13d8eacd76e0f6e62e04f", + "0a6bf0a891b8850939", + "89f94f9bbdd34c30ff303222d64fe66399d7772daa05bbbe4569492876e22094ca98b289d668649d98885a499d8f4c86d46b52152117b92aba39d4cedc5b2f4c7ab36c1eca34b244bb3ff88871d96317e4b09d8641f6a7f6d698f294" + }, + { /* i=4623 cDividendBits=1046 cDivisorBits=798 */ + "239ccb278e34893fa0a74ff1e8940f3873a6e84db2210a8c4d1c15a67bb0bdd59b6f8868ed2de70ccdd11944ff5c223b96d0d174a2c9872a6a585a383c0982b8827094943a66b695266c97dade473df70f2bebab147f4cee2749852bae9762c82375cc0d07c65a180119278659bce76af06ca554061bdeca5af82bd38855afb32f4d7b", + "05bbabd493f32a39b5f646ffac2dd6fe260eb7a6731243f2a2137aefef10683c44afdc3b592d1869c3c3c688f5e3ce273b50cc0c8652dd4a5c76363f1448881782a1a3bc1b6f8c5e7d44707e301eeb079f2f8ed6785fad821344ce8945a315edd5d83dcf", + "063634a9f3718285b526c04324963ff0744bb8306b7127f22ea666f966cc9528", + "6f8d3f540671e8f227013968336c6a9bf24a7995bc054dee24c60ad60001df5d039c0a1f7733b55291ace2e137cfd02e38237c9dcd0113ecb72ca2fff388b971c24055494b4dc0645e358b407e2232c6272687ce875ebfe40bc0f45b6051c6b2782a23" + }, + { /* i=4624 cDividendBits=1485 cDivisorBits=847 */ + "14850fe3c74d49320596366d7ae3e709c2603dec40cff4d3a0e6fd2eef6a810ddc4c08289f6467039f26fb042f47c99e8ea6607dfcd990afe801335a4f6bfe0224c0f95385ef29a7202fc90fdaa5a8ee625d150075fa84522e3bec79c377aed2ba1c51ad17ca685071deb2d02dc7e216b94e0e13e53499e2cd415f64388356a3d7ab74d905baf280c358691f67fd156dddf9ccc792da1a3b21d875b13a097354674cb18d9e2ff5700d1d8c6d53b7a701ffd894a9f36009f6425c", + "5d68097089d5c464f110981ee0c4b9fd7b11de679bd4c1a89d324aab12e5f69dfaa99d629734acbb9ec0450eab13a7b25d514416cd21afbb6cb7653092784065a18e89916e0ed307c54e363ffd984425be16fedbece6ca754cf4558689776fb7f84f3d3f568f3fcce34b", + "383d20fbe3e3c59f20410507a4aae24e741750efb913cb3ba19907bb81b9cc75d34729fd0e67aff0354c6ed26fe7cb22a3ac5d81c92d8d63d7235fea7c552e38899534f81cccd6c9d9e2d2ccbf475ef6", + "4b91e877a9b64b91de5d75aad6a3261261a84b94a7667def018317d5bd9170dc4376ea1938d44dfddbd111f6667cebccdbf48c9dacaf45886f0918b3efa1b859f894a20d39d00be46a214686d7e3791df658781e752bbbe455f3e0811d5f75b7692570c0f71f80d14e4a" + }, + { /* i=4625 cDividendBits=3262 cDivisorBits=463 */ + "35a967563093632a6283543adb917ef6b7d8e4150a080d4b211c9f5cfbdb71de6ee4e84c7129f46d8c5995d9d44690fed3a2ce3c62e439f1481b09f111df2e9b0cf2435c483554907253740e44d25cca98d7eec593a637407d95c5973ed45def186969f8df05a76fd42e99a2144cdeb365918e78fdfeb5118f4391bf256c9f74e4e8cc365e25e8a4619c5afa1cbffd164d7a14dcaf04ee1083d7ab3200aa2f44284350101e9ff7eddec04c56b15970ad73900a4ca2e946b6304754e31fd08d1737b8670eadf6ced692c5e03fad35effd7cb0753ec428fe3d3feb5c712915ab742df0957092093a97649d3e24836b7d6d72a27947c07c67736c17b6d1811cd53f602ebb5ce1f10c9ce274fa212824c598e8591627f293c8cdf2565aadcb6beab3d1be73c28eabe9a5a1b15a6fdaad4c9714542c3dd95e1677ad9ce97daf3ea571cd9150934e2a587d4d4361d7436880503a797875afefed7efdff933f428848256b625b8e7422bb16dd78f6870b28c28a942821927617bded7078728a30912d3d22208de53a534569dff800e3ee0fa99418cd0c1f20e17e29", + "10be76a51547e44c862ee0c1932daec0411e28ee087437a91d74d2fbabe3955bd92aa9babbe04929e38d0c92be50bcb0adacbff96613470b74bf", + "03346fff9ca1db8f5b94b350a58d89939c095638e2059d3ba5b1e61e8ea641265d001a5c016257680a59f15032e1bf8b1dbd8156ac9f6b7bb9228249698d78f01a9aea493d221752811949e4ddcd732016736d0ca31e76515d203c7ee240f75801ebd490627a7cbcc3ffd72bc95b01261ffb248857a870d5885ee54722a42321b5e1ecd026cfd94d92d8c1801deda60e462c98123916b316d67567c6a854292511234a68b5bf6da393f9ef661b74bbc711b2372e83830dd33ea3f5562aea06504759b09baa45e5264fcbf6a59b693cc6667c8ccb2187ac0377be13dcd7549c5803028ae6026d4c456159c008b792782c1ff8971366c71a82b33e7463a8a39c6ec369f8771a135ba7e122079838667cba06be236257c7e3f447ea0be0de4ced1bdc8e6fb529704a9e502617b80aeca735169260b6a298a6f631a5d2c24665c84792e166ff890f97ae86ff08f0020da46e89c39d45381416c90d6a1f310a518c", + "04bfc2c0cda787f0fed1742e5e9b0f2a2a8d6149b718e4cd68fb20304c3f7a5f9158f78e07a07b167d64de7b125b22e1e3ac4855ef2d883736b5" + }, + { /* i=4626 cDividendBits=3996 cDivisorBits=1015 */ + "070b2a4f542512c9cad5217e07cdd0503f37ad4ab54d0c9d415d1c5fdfeb5900221811ff087560bb30e568dde47d46c12b0dc6d7e31245ab75f3fca6a80754641253d5d28e5c9757416a21d7b2f8594c334aaa6ae1aeecb1c8529a3cc639a649ec872bca0f8d913c89e0d43267bddd79b67560134b1feaa12ac9c65a7bbf811a518d248599487ea3028a588b76fa221fc5019d8ad559c73632e25fa0b90f1a445c461faa8191372072e2d318eadd825d6f012100c1f473c56c22ee8058390fe5bc34231e64eabf1598be719da6c7dd6a8c2e2bb195816b2c64496c574d9695044f39ac0a303b20867ba34e86b5b118aa9a8c5d4c26bd1b1f394c9b8555ad89dbe321b5bab816646ac1138fb07f715299f9dd1a35d052c0bcfd127cf51f5a4b68b4e9e03abe1fcdfb662c756ce0041e95295bdbe7fb44d9a406d4b82efbfd8284a652320431691ad6a014c36943bccc6f5e293db951857e5a17ccd2799537a0bb5953bebd0a0f5644b46b99ecc8c2c8d90dd73d12e53cba7c89db2395cac702e1f904bedf3469365df790d741cd993c6f4971bd9e6c324563c1796c332ca9f6b2f3fc24d6e255da3ea52e8a65fae271073a8575834a7c7a79c8d699ade9d7f9736b76dc2789745326cf98d8d56b3a94afc9f931edc75f002a19ac0efbf3249f4ff3d39c3e17d6a8609fb0744dd3624d6d64ea063c", + "6d457c075096ad46eeeabbb051b5b0744603e71327ff8aba1431b8cd33e39afd240e8315c4a6192ee470dd41d7e131af781f28122dfd31aba20b97ae2ad0fd12d1896266bc5263a33aa89b2e7f5c2dae7559a8421f4c56b1a8ca07cad94bf3e4d8b95f46bedfdc9181829d69cdc1cda7fbed82065254b7615e38d2eb6be267", + "10807005c20e4042d5df70dda1d047efee068476689f4b3b374907baaf23922f5ba573adbcba19de22c418ce2fcc715ee6a34936628807740757141410a7583ab80ccf3be36e2185d9cba6d44a4bf51223e03aa587762656a0f649249812e7cd2ce445b0172a4efe7c2d382aa7bfe03da47a860782c0c258f48369fbb33502463cf7549b3bc7efb9d09c9ee6b9e7352967942c83ec40ec8f6c903a4132f6a1b9606da33c4a6ad5398d7aad5ebf474b7e014e841d657b94755d57dc91477cef049551fe4ed24548ea330c0897ee9a44da45f1c2f159715900bc334ee58f11ccc3ae20e46ae945030fcb27e4820d5368be1e4762cce3b5a2b95ba45a1ddc605e58a30ec26a6f7f5e35bae875f95c8fa3f6bcd714250fc27c5109189b1a055d2becc721939a524c626a538e8dbda6737bd1b24ce7e5e285d721557b4b8365a5330610d52c6a09ef7153d312960678ce29421845e5045e56a8997341e6f1ca19b27bc87697b40628c6faf141c36eed26a5a8cbd40af355", + "5ad59920b32cd676ca92d2da99938c40934f7eb3974bf6c2e437059b34b3df8e6d3973c759adc854bc0c39e914e4e75d98d07a3bd260a23746799cd0330c9e3498010d065b6f8a27c93046d2d5f648bcc7b474da92ee8c859fe0a59a6f5435058395da7b6cad259413696c697194b67f024e50a158027a73908cae2a1509" + }, + { /* i=4627 cDividendBits=762 cDivisorBits=580 */ + "012db1633722be7d02f1486a522eb5dd3c60c331c2f539244f8af428e0888044b799770728ea5ca38d0a9d9760775cedbb4254ae29fc47b2c5ba60ff65df34ca9ab41c29786ead546557d7424a784d5ffd0ed4f7ed23e98878d4db4eb08482bd", + "0c14f1c1fdafd8d61e7f133cf40c3156ce6c78899395db9cc59f559fbd29da0644996359bc230fdc3f3360a9a1c5900b09fb8cf3948ed3ae5ca790d497150a68b604e2562b444412c2", + "18f8884e61a63a2d8a02fa6bb9bda366ebb41ee4b3f353", + "0a405aa0ecd5fa0febf0e7226aead1990761eacdf338654ff93a50b89a2bdbfc4987ff40cde4b49cc2a9c6cca93cf11454ba27b5478c26941593512b2c7a55b652e159e2710afe47d7" + }, + { /* i=4628 cDividendBits=772 cDivisorBits=687 */ + "03bca60fc10742a080a3a3913f1f2b4f2eb729ddc939466a80703ec77ca9b4f3ec2b9c799d957cb4d4cf67d5344f3e58d5e8c19fddbdfa20c74966efe117010cce8d9d740dc869dcfd59a8d02161e164ea5447462b996a388d594f2b359dbc6281", + "3cda6d32717e35b37d7e39e35b9a09d9228ce066c6981b4283fa7e426b049560d9bd3fa48ac993215844b52e80a92615315489f6b5a2f05e2fb04dcadcaa651ca8bc851a4a9ae5b775616978ec4179a3cf00ecfda149", + "0fb8789b57057885fa2c9a", + "0a91b131cc83c0bbaad4402ff5c5298f5739416412c54c7bbedb99dcc599fb5120566087a483d31a43ca6204155a9b15289efe9937c921e23a8bff1c81ea6995e758220c5487bffef7e8ab34b99d555040390726d097" + }, + { /* i=4629 cDividendBits=1316 cDivisorBits=41 */ + "0535cdc4da9c28e70f7d48f00964d163bf101b3088deea7a52969eea357474ca0a8b851e1b1d9de84601acd3f56d45f2352fd749a5a64a8e2ac3edd2ca9d759bee779b1e5fb85a49ab923312ab117fc8c04862bb9d2264858bfbd317e6b8232fbc18cff1e40b47345ae9e30156aa570d7e5c501ca2114f2b1fabd5545db1643bac8f558826a2a85b1ebe2de933d8c13faa50a1263430d56ed5481a1d0356893b1be4be3765", + "358b81757f", + "18e8f4d036e7b6a2ff1dfb30b3401ecde581b172f11679d796fbfb5accef4f2a505ef3aef69aefe05c8b786408a8d1fdc1de1c3e4cd0284a517b72deb2938149f24af8324cb174c07deec19b765b9c07f9ec3c420e41d6f817236fe14ee34b163acdcba7a509c1a795c0294620403be367242603fb7624d7d55ab5d62dbee52160c8a881392ffa5f6c86f2259a11183dedc9ab745949fb5999ebb72b628031b7", + "170635ea9c" + }, + { /* i=4630 cDividendBits=2210 cDivisorBits=554 */ + "03f9421d4ae8b787d6a980ca2fd8a461488d166c770ff5704ddfd5659c0ba8196c2f1ff293d79fd91e49aa7324cac39a290dca5c7956a2dc52621ed79fe1f8280f521e9f95e78987dd8f3efd786b5724abf9ee0066689a9f4be74633c7d6cdd59ac6ba39c829a36bc66e9eabea0751a96e0a0d53a051428b04e729305ad130fd48ffb79f4eefa9f3d364f5724c909db4d76cfecb85d559f54f2ba0689104c7b87b4f1d6c63303d6e1abb0a8fd0ba35e8bc0fe1928985bde7baf0fae2c1e7c441e82d6959d95e301d3942859876590f8e978db39706e6cb06079502ffac0bfc0091e7fcab8698b287efa0215bc742fef14494d895cac1bd3f85e90a5e9c3dca9631300141d1060913d141ba481b3ef82993fe0cc39e", + "016fefcb77bf6faf12b73ec03e5ace0f6154640876076a5d1e22aa99a62edc664acbacdd4ccccc692a05b1d17b1ed9e69eb2e18df2f7c21977a8e7735db078248cd9970f0501", + "02c3c7985a3626502e86de95749b0d1617ff98d1c4500d3dc37bd12274c33c9753859b3c3993a240a62b3292431ccf5f2cedb019dd411d58517ae317b6b59786e4c5b5c8bd9bb550a641b555a4ee0a9ac968fbaf57f37d625d5b46a9e4d5e6fbf134d2a68db3d7ee5c9057fde6109b318a11b1617fddf9247e40a7441a6ce15514774d5fb8bd4cf1ebcd164bdd6c76becbaef11d8e0a650b7f99eb03ea691b3bf6570a142d48af5658d7b3579f4888beac947259ba789e7a6c146d531bcbec06700ad3d5499af40666a9a965cbee1e34", + "02d59aa3a2bac6f1be84976d6fcead384d05b75d279568285261a790d1350a395d6058b55c03579e0b48f7862aedb81db8656a9e1daad026485406e702db13125a1a7ba16a" + }, + { /* i=4631 cDividendBits=2145 cDivisorBits=771 */ + "dcf34dcc46f632a4368d41214b1bb21d3ea8d20fc447e914a7d51cd515d918712327cd311d6ffbb2ecbd2afa567cf382932d6ce18325af092b875526d4adf8d43d72c40ab9205313281f636e4b92b12da63674ca7522dd6959b78f7571d8545f46a4fc493c1eaeedc0fd8125f03d7f2e50ab9fec2f6711f1be4613b406c2d4458ac4a2330f67d7bdbc96366fa59f85d19e34ffc0f4ef44c441b35f90be9c586ed2467bdab7a90a1d6009a0f2bafd213e7e1b6c85f36662a59ac42b8a5b2d2571736d9adc8fbd02fe3651cb841ca386232d7a41a1ce21a4dc03cf7e29f1b9e729ed54b541034a69fe20854d6ef3c00af39dc9d223c309797a4104210a86b35e9bdc46fc5b46afd4572990111d", + "01250f33ac4ba52d7c51051cdeb7ee3255e25da6b33752a4b8f20a042c5747477464539ac9b4b0120f68b75bd13c6f2848ce43ae77244f2f0043e3250fb10adc8d00d2fcf0aaaeb36761b9790cd2d2e99b9eb6bf9c226309c7ffbaee9ddb16eaa9", + "c1027bccffa354f732175a44981f621a4b130b6b90aff5b427cd7e6160b66b71e359f01ba88914aad06f28cdb95ee9df855f41936de76a0def188493daeef2ddc1eb3c19f8a633ff527e0cb085c86565e725a13c658851f8ab668591e6c7b50a57347b1c30025c8eb15f87b17102f95583e7d7ff2489b7428b01d530cc94e8d0e170eff53f54ab2bc557d79164b41736d3de5b5e3c1caf519680032ba39e537d82bdcf0ff0ca08c4e7f588c5", + "b1d4bac1bcf40f487a74b2e4a35b1ebce6e0b6dd138d6eb5fe3cb21ce013b697897fc28fe77a80dc05c30cbafbd077779f5a8976045d238a5814ace365d50867ec5acd095329778a124fd69aa039698218dc8a419d5167b251130c685186b510" + }, + { /* i=4632 cDividendBits=3469 cDivisorBits=1926 */ + "152d1b58deb3089b984959b33791495fdd9d67dfa2eb84124516632f795e387074554341b1d064d12e41f309e3639761fb045e4de0eae14093757cbdb408a6c9ee2f5246502827cba0ec2640f16958866f3e675b3fb36d5701b7379b9a192418c4d7a0d1d38db2d4b779aefce128f323df49a41075864c277a1a426d8b70d317c2133b5563db267f68f9fc5a5a57b495732a3b9be9da81e1791ba569aed6b722f21136cd7d3bf866b0fcf2e253c937dea3bbb8a83675fa8cc8552f79e9e9c9cf64a710e87c4778e7a6a9d29c9fef8cc988a7a99b2d38e019421bd65ba5e8977415511a2167f219679777b3b12469189b4ae7c73726facf99cf4eaed48c4d881418d2d62d46745c67ea47607bef06207b654e37089ab6b485ac6b4f2763f3388aeca56fe08d01706080b325e5f144cfa904ecd0509abd054dd282bdd6c7add11afd17ad64b581c08f8db7bf1bf7ddc9770419203e7aa98f6df249b919f44d5777345d66a8d7036caadff4f7b384314ace7cef059903814662188a895dc0c66b825b71fa0378eb0c58e08c45ccd108fe7b0a5f4ae91306dd5e259bbac984cba260b4f342fc927387fb0925b32a0db4efbc1f0e", + "1dbc31991ece26d507dfef8a9af4e07658e57cd4b2581def02767480a976663a22f78fcd05f45f414adcc57e8615cf3be67a3653a24cda373366c53428c017ca2ec2545846dddab73654eb63cf4d699aa53620878a9c764a4202901eff1f8653ef9ab9bdff89d6400a57a0e6a1031f3c46b2204e80d864edb7f036e18b25b2a337ddee9f5e9dfc658eed35116e80c16c10c7834d904adc2bbc19263c957841f6a7bb739616e89a589b2cd173a4435b7df7f7cf8dac1079a4b5d55cd7f6589ae3febf183ad785b410e49070761da9cd49051f3c75fc88fff5281b16b5be3e71e127ecd976f68e83abc74b85c87060af5114", + "b6502d6b04eaaf5a8f0c04a1c604e80e10a3fd88dddf0e6a642a305155da5321947d4513b8df1592a944b0fc981c4b03fc5ab3c7de94f85c2be69541f3139a91df6a03050e95062103aae6e985fd188e520cc3de19b3648eaaff60ce57911282acfd409ad7931fb5cca5f41ad2adb3ae46f7bab6fdd19323ec367e5b7d844030a8f961d17c1ad83a30b89be7632cf168438da20ef2a8892a1ee77e8075d6a7bff119ef8609c3bcccf0cb0c2fb49e7c79e3ecb6d30c4c36a8f641efeab61cf9c249", + "0dc9fbb2e22291c7ba95bbf118b60e766c54ba1da1e327919bd163c6c586193262b86b1e9fe7170b62d16ac8009e3c126182815b209461e09e219b59754970a29f4f5be690511ec99220f3af91bb3630c63c2baa465dfaf3c7c37b8541d20c24df860002ea72d5c8340e6d26a559011db6ca6cdba8bc63ac0dc9f507676c7902eb406a641b030852b03f72a2ab087fad2320841c39acccee7bfff3063015d9a80e4ddd11454bc8f6bf2afdb3c091c6bc7370b04491aa85fa75b2599c55d0ef423dab4564f0eb7f4cccc8274d80b5cc7da343795d2e978062ef418c41a776246f947acaef599777e649c5d198c875d8d85a" + }, + { /* i=4633 cDividendBits=388 cDivisorBits=143 */ + "0998e1bbf5fbdcaae9654bdc3c21b2084c743c9812d9509d68030aa699882d5beb4b476bb6353b067d7ea77c7b34bf724e", + "0e5608978510e4c7dce4c356f591773ec794", + "ab60adcb5dc8494e745e226eb75194fc289350998131655ee84b471f95e90f", + "0ad19f56f563ee72bd19aef0fbabff480ca2" + }, + { /* i=4634 cDividendBits=2208 cDivisorBits=676 */ + "3257b84c74371539eaeac9bf583479d07d37ead984ac93cef6537e322160cb7a65a0d9512509e752a3f3cd512b3da12d1cfbd5c8a5e1f1f9a098ae50425e9aa0b2abc1095601f535b3e2d8d413bfa30268eb61f8fe05250c2a9a3bd46f883ec8cad9765d81a753cd366669be407d0597a157846d8cb9211336ff6ad8f45666f620bf6bad2e11963d5cdfb556e854d7dce142af2c50b494cc8f9a0faca1d33481cbd1874b5c0376334bc7e97f429d4f8f58a20268b1e42356411f6e7009aeb607cb8bbe1ef3808b2d4298270e79772907e51cca9038abb739fe3430e4022983a31dcb16436e9b6a59e21f6a0bf1cd476650169161b842fc107f0cab680021a9c7f4ba63f8852f07ad493b8051b28a19642fe25aeb", + "0dcd6f9b75fe02e38ca5d1ed16855f8a8886c7fb255dc844ae9ffd78b3eb919f99da4c0ee583df0cb6c6f63d154d8ab88826487fd1297f4be0bbd94add2a963cb81227436cdbcbfcb7fb06c92fc5480a38e8f98a21", + "03a5b9835e74d43728ee5698b146061c8dd1bf5a897ed586bdb851190a9c6407c363013ac4c2810cbe57bab71bfb228617630df2eef5c7736c4fae26af09a5e2f009a06dab7391db8463d2d2a8fb60bb4d0ce44ecf8f5675f741e933c9d0d1c28da2534138000c8272f242dd188cdb7e7826c0f52a585062db1ead08c9a786ef8395c764989e361cdd2f7cb92c6f3b3d4d6299ae669e1e6d460c68df43528c5e67f34bfece563ecc7b676238bc22bd01a243f96f9eb289d2922cacd2415b6175", + "0b9a9ee6fe79a9c97e219c4ad6009efa8dc85ed59f3cebc215db6cbfe8e29e58328f7962ce3d5d1155493f63f61c12d1e5df8973b590452974fa56af9b4139aa7183c5a87b8a7ce79ad4a61594d22e3542adc4b8d6" + }, + { /* i=4635 cDividendBits=2943 cDivisorBits=2603 */ + "2a5d9901d20e14a2c88ed8123f812f1a38142cfe934a0e86fedb1b4dbdae8b6b5d7bf1e5804898690aba852a3cc328b6a907863d1b86fd0ce10194fed6051c265c61b93076741148e54b98b681eda41033cadf0ad92e5c5172f6e4ff15067f1cde66cdbc2670ebcd38ba1e86ebbe55070437551ac96796c411cf82b794a32247090cf524fb028b10b077ee3bd3add92030e7b6902b77c462e70b2c8e41a030202c2dd210b8772da27f77d50e10e87944c51b1d0dad26cdfb2665c2400371f737efa20a06fb5836857e5dba8fda3d2e5ed590079b40c65f2525ebadf504a8dcf755c2a0f1c94d58ac6e5d10978188ef93787e32f84ec786fa86181e48d4476931d1d08c4cd882f0846bfdbac8cf0f3c19f8cfd041bd0742a38f2fe2204d85a12e96b0e7a70eabc2cdeba8a428bea5407b9aa6b7fe7f3724a8f6ec64d1b9f006549ee12638902b5322034d9aed27229ba157c44d6e2b4b8ae9a56771c0309f56f9932276cdf9ca9559d1b988f029989ea5", + "04ae284b38bf8fe4924f59b68b2fcf35cf76959faccd3db645d4ddb97ca015d203e311a4f51ca7f0289bd20e6bfc097b3b4748ebd7eb8a3739cee0fd2f4a9ae74bb270a5b8194b77b4979fbf828de961d9783bba81b61c799e0f3f88f0e94ebbb4f0b04dd1dfce8ea761a8243014a4108ffbfd16125d13445dbae73302df51d47c2d7be0c6df63e6685d7271ec7fb413f89372366a952635e0e9508ba72c75a03c017cbca9db23048cf738a6208f9c022d40ff2ea4e64e248e9a048fef7c833926285d135aad2c751eb84608e29cfb72eee8ee169f23da2c88ec39ec6a964f51c5af2079ac3e65f8e13afc0b3f6fe0171cb500580f3d4c729a9b718bf5bbaa2c0f796ab3060f19e680c0c7ef8baec2489e29363b29711e4594a095bd3bf1316960423e224edead3291d45eaf57044da8f7972f400cdf2b65be4aad241bc21eee09e13fb29532", + "090d4923caa74dd48f38b0037cf6697f4aec12fcd68a38eed173ccd91fe043380ce867d0e46dc34fd2db83", + "0129c3ae184d94cbe82233a45320cc9e71950e9a4d05f08a1662d0935c43e0522c20b3ce322a8b895c45348c35acedee61a0e77ae7dff98398f74c3f22a578cb2ff2a15dda6f1c122274d19cbc54c41067528bca747627006a625f11d549147de8f32569d36630d616983b742f55cc7c381d60eb49cbfde4f553b709bbfa696b4b224881f7a64b3c06c42f23a826508f8282be26ad19a27c5d56a31edac47261a2efce50fc1d4c60f4509ca06ff9affa52ec2f66912c8dc797d191cbf313dc0f0e273daf3aec18a0987f941f49afbe4a0b4deb2514408807082961ba670817fd0f6bbf6d7e5b062744bd66b518ba8b1dfa87e8780c6d5bacc3a3cf137de531aff59972445427362a8c5a3806cc6229563b4844696f6f9b171ebb401161b828f30113ce8694bcd315127aebb7e0a49e7e2c6b54c0d31332b153c6af7ce227aef27d8ffa90800f" + }, + { /* i=4636 cDividendBits=2876 cDivisorBits=944 */ + "0bdf1a9e29d5831dbf9b597e44e45f6c3f2ef81995c7baacbd72c8f3beeb53a6ea879061a96d9d8c7d05401cb8e07f0495b269bd36988cae1e6741add4516a16bf80541c2d1fba0f66efc406a51d3fff2898f169d714638cb884eba52369bea71355959efc3a7dffd9f5fdc0338420b1c616a84ccef41d33af12457288e9396fee8dc878ed3fdf5b46d7e499724806ae215a6e98847d948bf6a5358c329e1d5b92228724e92c09f42d265ff50e93bd5081e8ba9bef63176a006fa60c73a08eaa5061e8f2bd5f976af038de4799824c304d48837af6479231cf9181d5b42631f6d3aa52c011fc43f7c3df7b715f566ad0ab394fcb285927144274f0f753bf692044da6ac50f185aee9253e3bde71adfdbc6b25ad69db4ad614cb3c2de47c2f883536347cb162620b99e82e9e0ea5a90e978efa88eb79966d8cc3259a41fc2f9ad92dc2e6787008c60eedda7a29f71e945054575226b1a2f579b21ce172a031024ed9b859cfa6d2b2f", + "f9a99c447466e660c5072cec24c04136925d73ee0866957f5861b34f7ded9fc6f9f8cb6cbae77728b718afd508f6b47baff3d292aa055958649f64a85b48686653bb97001cafa2d880d8663c37597075c793cca6895f2d25954bd403d172ade386e479ee228c834949458872d16e198f7d82e0cde4a0", + "0c2c3fb7e8abab61caa3eee6f75a0253ea3193b1817db87700d0bc471c19956a2873a80c666abf6e09e0d2b633e1e5522273cf173051d76546a703af106108e8a5ba00de47144e2b50b7ef11e9e68c4eb2732b37277ec080edc1c4c348e6f443e077b5a0818419a40864c8547980104f51a2928451cec0ff3124cec7bf5adab824e0eca243bf2262370ba87139358eb18993e59e72ff5d2ef4c501f2170499a7c8a6cb9613c9039a4e255356ec4933c63b4cb83654941e96eede001abdad87ec68692a783ec504eeb52416824eb8ead402dc0d7fb30bf81a9b6beb947dfa86d3b364f31367dc2e003912c97427e90b9c91a4", + "01b5e770c969bd952a99e79efc3afc4c5f9f8303cd78807af7646f8f52f218f2e5e2cb95bd1853b33bb906fa5261cbe4159d8f5e571f423608bdab4f3452f5cae4ea5a2cc1246ad95c26c3f88558563bf821846668cf794735b3a45c72dc8efa94f4bad634eb30d9f4ca35bb65e1fa74b086268814af" + }, + { /* i=4637 cDividendBits=3837 cDivisorBits=2104 */ + "0bc37c218599ba49efeb4af1eb4f28a1a3393e17ba99780fa5c76458dc9f1bae5e153ca8e2f8a62a5ca1bf130b59d856302d10fd570cd3d57d650238079812e22cd9972b2e7f09321785c7f31f754b6634f63899514863b441fac72801fbf527a179e5f4b929c4c43c8057c4c09a152d2cff530c7afa5af6679fb84ff836a3a411a89b180eeb7cb3a258ed5af6d9fb144917825d0f5d4527acd407f93bd5b6b349fd48e0f3777b6861776ef1cc1fbc7754e568c06c44a05c9974b0c660751b278069d241fed2ec32f440601fba6a6b251bffcb8d331cedb816bc54470111a93f2f2e2176519f471615bbc7f8bcbbddcc56686d6d3fd7fdb15f1e213cd4216a1009cca53551efa84fb1cc0d57fa7eabbc536343dce9852e8fb824f6c05e944c6c54580a3a96a5a1836af4c11c116f964f8c4a0438b86117228be908724fb60181524ec498eed639e94e7b36ccdd2e3f04be03fc9b57f5fc398a48a5f69d928d993b17655f7a1880656d5b38e26361d551a82ed7333d071a49475425ddaa59d9bfa4f94e9aa04317851366cf6b596217a7bd9f2cab92bd9176f36d62f0ab6ea7070f52153651a7b04016d1d989c583a55d5d7594e5c03e9b9601eac86278ea904b1cc2fdfc6747eaf25c32b2cfc4ce07465814b683186e9d63a3c6ef1b18c2389a", + "0458b06c23c315270fb190e8dfc734ebc4ae83fc028c9d8e607e160c2f99e3ec9d3d05d55b9f7bb95188ac2332092490146ea704d7c5a10570b471bbf5f940bfff062a64d0766218f7464a9fd7611fa3f23137316ac0b1fd5afe93254c49d7cd4cb128f412c2485904cfd2dc8f363973f59cd5a2af8b7f19ada3fd7f7281706aaeaa7d3fff96e06731dbf6f41335f6aac4fa54b01b01cf8691e653d56a431c5115ae4a8332509aaab38540cd88912c18614dcbcb42b7a4c4c8d68c1996f2f3435de95db9301f6f05105c894120db0aa801e524d4320f595f6a99acbe6d8122f62e44c1f8e327c183361c818e815ca68195f05d2a1a3ab13f0015193aaefc3c22faeb0426a9a20c", + "02b4dcb1fbb45bb8a0f8110abf7918c8d0288e008f1eae364cbb4c4ecbdf80108e30fe801633781c98b59db073da8d7314c812ff3e531cd2a7cee897333316d95c9c0378a097ea754c7e73d3687a40000167fbf1335fb51cd27a90d298b69d0c3d87d918c5106302f0809170598e695171c233545aab402253c5f9b2a010db02c168af014a2258dad822ff2569d33c616ce0d3c6e5fa128ea9c0cb71ad001d8dd07e477e408a47aef39985f0f54d3ffc4bc4b610bba0741c45bd2b51e624f0d795d9fd10466f7b0df15f2ea2ca4920ea2326c38ff376bfc0ec16", + "e0ba22004fa9e65c63661e291814e3aacfe6a2416692df172abe6e765e9faf9a1d2fed3945104b7d74dff6fc365c4d2d865de4407973f09383ecebcc5f9966bcc78bca9b2823528d4d95f22c55c59e70c117f6987c0b0369fc5c5ad9a70b08de8f10cf803d695779455d5b1af3a280de7786c26a1083a351f174ea8a1c8c0b75e4a9975f8415e0c734616c217170f49ae4795941d6634792c467de35455285f5baf8e1ed2c7db310849ac47faefd35a1d479e1b197f414483e7dcd5b14649d4fc53d64efe28a713be32f96da4d0cf1904e6bef2e65531a1d0943302b736c1f0e4ed8e20e44acd63e6460b6daa3bad252a14a692adbe6f0c3621466da48db75e34472e7cb3b92" + }, + { /* i=4638 cDividendBits=1009 cDivisorBits=877 */ + "19d25e7a6997fea53f915a8997cc8c575e6f93e0b954ea65d15bc1a3a9cbb6c4093d02d08f3279ee7e4d4bdcd23e05bfef2226e0c942d2f18912457f705b4d4db9ce09b829d57e8a9eb7db2f2d71ed1de4dcebc4e8d09e556d49a8304bc868fad3566c63ddb15af8dafcf35a567f01f3e6e61863cbc9c1df730086c99507", + "1f99becff8a612259bac5487bb94a240a939c9f0ce1fcc8d104d8fee0625ed2d3189251849db0c09c82cbd88f02aacbd26d5beaa902fcbaeb71b7c44095bfd7651885418c2179dcfbbfa22a0d7abf4e6b07d59576d0e15634cff493e502fbe72bc7ca2de3e2df3e0f5559f58fc95", + "d12f6507913c0bb05c4931e94de626b4", + "15cddd68f9350110e04ecbf790a523683afa59144a8d8448d8bb82e6467981b0f2fb9a9f5aea03e1ab64eba9226a074f6e354a3bdc6d118cec22fb5cdb0b3bc84255a14a3d68ffdff91c7c5e35999874ca9f89b651654c9f5c1778c1d709677222302dea545c1499e69c87dbde43" + }, + { /* i=4639 cDividendBits=2794 cDivisorBits=1475 */ + "d123a96d7d05c793ae041c5c66a953da41ccea586346cd123f8483ed77aca4b4eb613d69821c2d7e71a5802cdf68101c2661be3beebd508fe00d8ffd97e9185fd370fd7a9da81c24c29e38f3a48d1c456df442b451d6e9afbe57615ffcd1501758ec73f279111ba6ad66456401d52dddc0aa85503805f4a80100badad06b203925f07c48b68841e845cf3e2decda743e88def43c1b1cfb53b74b8218307a0b80bfa45aa4355868d2134da91c97ddbfd542db920e7d6e032b6a6abbc69623a526da45afebe29282d7ef8e246bccd53d24630eb1aaed8647c93fedbd28949a8376ad5484e901abdb2b0296a6b472cb2ba466d66338db2b54f13d0c1d4ae9a923eb46cc1697dcd3d9edcbb3a3dc433b33c0437b1f0852fcdab42bb90b9768b2d1e3750eaf3767a090b58db68c080ed417d1ddf1ec9903f6743c8a80dbbb005e14cc52fb68bc698e62d116f829517fec36fca62f7c41fc46992daf4866001e", + "05ec26b4753569011e9c504f9f58558a451836d3fc0fbe6d2a16e346c70ced71b92189b474feca245ae47e481b1e8b0cb793f7e840713668bcd8b4f3f2064b55c0c13f8e3b79febb0bd2cc06fabceef28d995f8c24a78fe6dcb2eb754ab027b5eeaab3eebc55613d6a72a9183638397fb8e8d106f10e7fedbf36625518bbb711d84d533f89866dc0aee537baa343359b675eda9aaa0e3556dbd612f63c9be83fa3f38aa119740576ff936c8643f2483a9c8d95c0f9cc8916d8", + "235018c36eb67796f1fc3a62a9ffdb4385eee3491ebfb77b6fd6a46258a1b956531a99d3ab2a8fd15e9617d5dd922c394474c9bd3ab3058c74f6b7aeeda2552938d60c960bf7914f482722752e60f73f42809193077b553d265f3663b12786b153aa330e13bc6bc9d3ec85d7373fb5bb02c037420282b61d8d86355f588f86afec6b0156636cda05f6c965094751e02800317539e91f0c14bed0928e8ab28f3d17f1a92f21", + "05287a805d919e3553c47ae7f8c68374b394917060492797bf91630cd55a091854ee64410b342367347b8776025f502bcf4c5cd9d236ac830434018c700cdf5956355109f0935df411f3cd785736e1a1ea5596b3368236814538dfab3dd87ebeb38b0044e7afc4b50150b73c17e343034d2382a5fd5ec3c07917c87fdcaea8bc87fdfa0d606dd1919866bb2c841414d9a3931146258052ad219104d1b9fb92e4dae9651568a9e61638ac3607bfe7d3f433fbfdd68552f06646" + }, + { /* i=4640 cDividendBits=3725 cDivisorBits=101 */ + "1c98ba048e926e3eca51e8fcfd61ff5ef7951302a8aba64596c104491ecdfbec529684ea03fff7fd8d7dff719dc76cfba9bdbfdb5f09fa4160e0fe5f3f150cf93396e9ef25835593b493df7170a557a4c562c27be1324c2fdcc72c0d5b01008d0564974b1d5bbcd43148b1dac4d4bc40f225590c572bba757cca376a22ae336f1d84fd176d4bfc2458f5c55628496a2668ebf95752b651d7c02b7747a683af8402884ef306e1881a6ffafa15eebb583abfc8452feb384e6cbc47536060d11bd44b99be2ab70e4c121fc6610b6fbce936062100791aadb237ed2b9449d93aa4a7f1fd9db8ee60a1f6ad485ab081428daa12e5576e284424df68fe41cb21ef439aa1a487863210f03ec2bdd4032b641c0701380e6187d467a812f299e44f7f2617eaa12b5675187e43b2a13cde3707a93a64995eb308f464d41c0851356af1479ee4bea9b676bc826be52deac7ed8216442234b4a8f19e2c09378f087ea8ccde8990f4c4fa904739124036c2f98618571d1640210ba7879b66e7c3f73d48898c97f42f57a3e30629acdf56c581a276616f0c52f9a990251b2edde32336a06abd6c98c1f4926b83194f346bccbfdd5a575ef2c0f7e307283ce8f02801d068d3c54b84550b7586e982d496aa5a76b915f8a99565", + "1189248190d46f37656a128776", + "01a179ab43ce6d3e1f9f15d8013dd3c9a425f0902ff64b2432df1f96d63cc44006d9a099c5de2906f500573b428fef5cea2ec65a4da8aa4146f7af2f2c323f57600c29ae0b6a55371e471d4688d25d79b56bae000ce3bb438ab60688937bcfcd54c87236c66f8441c7ed82df04a9fc825dfbc7cc8bcb7b41b62fbf51ba7d2b21e9fbe6c3055afe14003e4f2733fed20c73c3205598433b89286d52f35ae275c2e74d042b52909a10f9e911aa418c2f1d7d7f5a64fbf0fce72c60e9260ec945c9ffcf48891643492079e6e53c03973fba68891df72b81f66d50871e8ec906ff2072d7bdfc3bbb35e963aa037709a15d3b58478acb3c4d92cac252ef5f11547a9a700fccd3f73d9ade000fd90c3e7108454776b40d8cd2aeeb61b450ba4be1a40d85c51c0003e0b2a1266b9683e716a33dbebc286459b49811d1d9cdaf439b0ea8c0aede1bb788fe74f960bf052ead2454a23a2d5020072fb5bf09a27adb30a0ae873a5c49991ab9657b532cc356d566e8440e49d1a293aea9fffa35ed24bd17a7fc9cd9228c5aeab471a4e45d390f0cf7ccbf29e58420dc13497a8a1ad3274f3093455dc522ebd2c4b71a06fa16ded7092c7d284a0b32eca5117a11f8ebe37d69968ccd48cbfc", + "0f6f8bb00436b0e1ed45d1ab3d" + }, + { /* i=4641 cDividendBits=1133 cDivisorBits=474 */ + "1a8769a7b2a5a172825dcea2687648f4b21b4e75e032565fba5ed020a733eed34d114b264beb2dc5d12a85ea5510ebc29d06880e87c73e198afc7807be09464bdf7d5bc42311e796f98157f7cac828576c381d656f371588b4a5f6b5f8403899e601c19290b1488332dfa0403670f2e1a2434be5d33632a31d77a6c5e7f36d911f03caad77ccad9a69c0c0053a4e", + "01d92ebcf380daebc1981503af3a8a23da6fef4573ddd743216e5376c9103a49457a6edf6119cc22ac3246b668ba84bccaa8c763419baa09c45a78b9", + "0e5a45bb626ca46f7831aaa1156b3126ea2475e323f7b8afbcc952aec0a6d0f5da07f68864811848c5f959531e895f9c7f5b08b1efb68f171dd67f1764172ddee1ba4ed3b3e732745a6f073c073b0269004a85", + "01d7367ea9beaf5a916198322f41c92e32dced8728132d0da7d915b5aa6c14d3bbb7e2bef950923e0c7a1eca19763a84cfe5ac5e8b748ff5b51f0831" + }, + { /* i=4642 cDividendBits=2954 cDivisorBits=1628 */ + "01158821f993a0c3085b4714160e83497d02f7aa5a4ef6946e29802241d86b40e1063c5d515208afbd8aca4b88409424ccdd13d6e7c0f7be7a045afe63b50e44f8fb6d6680169922dd8030dac473e5ab9d01a8b60aad84beede25934c9bbd784250b790cf721471493ea1d9fbdb18714da365537ceb0465ecd2ba7def8a1770c45e798f4656d8e824130f556ce7c3e67cde629ed63597d8cf562b15cc239f8189ae7eb87093e25dea4f194debb38a9b3297a6362a91455ff06d35cb9cf33b922b2819d5284030a1d4362521e2df9e18894e3ca983ec630b6d8dc94e965c30ea71a144d30be62825cc8ee3dab47e55dbb05515b76f000d298e5eaa0bf42d0b0b93353158fa8439b7909250772ff4b7c97af3610dd3a8e1632c7991da53b3a02597ac4cba6a854f360f82cdc3c4d7177f94833894f54381ff71b90035fe6ea1de2ce77ef354c9563004eb9eb4952adcaccacc68047dfa0a8d110d9cf3fe1600869ff40042038621cc6334f12fc0bbc6f2bfb90", + "0f556f98b9df541d2a06763e1331d6c26711af9b350b31092028f6135412df58a540fa572a7f0dbd35a25c993f91696994fb0c81d55567bb299ed3878f9dad7a456f368b5e4ac666b1f0aaa9b0c79ddf41844ef2bbfa425c989de254e57d8966e6d538e5fdd90c593063de61c3adce90ec81f6eb7f235c9495fd7111ee403fd40c36f7db1bdeeb7ccdb8ab7c51391a1cb179e70ac4e50954b8cd6208b36c3eaad301f4446b2499cf57fda2cf01863a0b0175d3380126f46a9fcc7fcb13d1f7db76b931ebf431f6b8ae1072f6", + "121973e90bb664320b0344513515eff40ca9b8ad67ac9efcc886ebdd6d49de4452a48c7798a00d479f413e7711db727847bd9fedcb0fd5e33bd10be49daf6eee8bec73056743128d161152d9afdcaa224a69c3d51e6be7ec604d9e606ab14afdc406fc152d889a86f4f94e4703faac5adb48f421b981fcadf633711e207577abbb9e4fadc85b214cee77a43f4d48c516d7fa2f309726c7aea87859512566bdbff2ada122c638", + "04cb5528d0541aee7273a83ff4b254c2294dcbfead0ac33e64d0ff2834c9443e1aa155cdc5d54a16ca124734b1f63eccaebcc468b43109c477d0cfade079aeb8444608c936a9fea875fc629a3acaf410f911179bbcd97cdfa29bc923a13e1e5225ec47426d1a5727e763efb8aed3b17ae9797e98a56fd43fad506957de334f7549c64015c2e596815f191655dd4588817812eed1c637c3bb9ac5066490f8c222a71a2187d7b5780cd6e1e84d6b5c735cc468cc99f6a169a4b9b84a6a0f230a9c93713f8387e789fba7fc91c0" + }, + { /* i=4643 cDividendBits=2579 cDivisorBits=1963 */ + "0319f977d0b5f10ed3e7227c450fa57eba48794cae46cde1c91e1c57a5a0e9087b9629b02379ddcfb5f96c363e2bb78ebc13994ed3a6d4aa831fcaa11b2f80e1ce76b90f45ee9a960dec5a2796a221955da12e6ee004a74ac4b4e094b6351fcb3eb875a7592be1a74252b8871ea6b9753e71548dceb01c6ead773f2dde3962e2452056f481c4232691e66ce35a4882c7c2efcbb570f19de025e945b10960b0ea38f0c4769bc6c648a7312c8dbe19a8816c17e90e92d7f8ba63b11828a28f212fb6a334241f7b7cea70487d77476db4adc71f61d8396b7e84b1d2dacc9b5291da79335020ddeeb19e3c62c11130705c824a1a7b6a2c542fcc792a607f60f42033da92c587b36ff249e8872abc2bd4e2becb6b1ad1d8e937c4862da1ac117e62348a929713a035fb593efc00d1020e853e2d863888aaecb6edc4265ee21d76459d454455", + "c9b92aa628417dbd26ba517d48fa807e25c3e4143cd86e31c85cb4d07e8ef9f2bb5306156b35eeb69b6373385a5acf4baf33edca4b3e1c30102b2dcea1939047399346c9234f2dab7f3f1d2ee9dc32dff17716b8a4bf2e3993c91b8d480602a89b3b99296f366de4b38b18a43acd64697dfd5349afa3e454230a072686496220d96f2623113183807950137346c9e2feabcb20e53eb3cc53500969a46f0fe502217075332b4f8e757ecae3cd61ce881bf68f5544a6d226878d1a98aad727544dbe4be0907cd006cc7fd2416cde10769d0412ca458b3afc93f5451be8392f6045c76e572112edb59bcfb05acee37340cf3b65a84491", + "03ef9af33b42997aaa50b381f599930c758d9c50e50e2e4b0f0ccc20fe61e13f6ad660d3455203f2b14e9fdf1010b918830b15a5f1fc8e7337b83b300b9a3f045a7fd9240dbb6db3ec6a98c15905", + "37641e144e73a1e24c05bdafa6cc8070df897d5ec1851af838b99714b09a34c62bb603ee1635b79bf3742d498a1723cac03e34edd0d46d1b73fff096f849eba91bc86cc50d3f0e606c3f5d0fa06904dff49dfe662040276e81130318efcdf3faa6653458bc53ecd38c27fc9f0f17197e050bdec09bdaf07991994aedac3def33fa78fdc77c0e85a0839b45cebad37e4ec82dc8f78256598399ff7535ed729152ffcf1d6320ffb06ab16c5632d498162be0385a00696ad7a768e3d98675b5054a9342459b51c6a1414ab77448d9f1ddaee5c01a99f021a8212596904da5a7c0c8cb999851ea6afdf6cce0adece0b465272957d48480" + }, + { /* i=4644 cDividendBits=1306 cDivisorBits=459 */ + "2ff87fcd27baa76b45ed2494e4e013d798e807e34955ae1eef1061c2f814fd1439118f59399835e896418da515d01d44156ce2df613aeb693eaf4dcae96d041a98cfd3b337707eb090ad09c72dec39544b5c71b1dc9877365711965a47aa7a753ee7beee944573fcbabe29029caed7438ea64dc9de08436eb08def4d42ae81ed904409c3b8291bff563c68c53c84a9771b992002513f51192903b672322bfbf1af2a75", + "07d7c1d27f2ea2a2bbb792c7562975f7950df2da802af624f0e862a34550ffac76be2af935edf586ab6d5f25d20932f7b56a196b88e0d7d572f4", + "061dd4aaf63d19d6a766ca9d380be2a81f4a6135c7f7136b5849aabe6ecdb44594673eab7c80d0740084cd3d80c1742648652b4141c2170ced54ef9b1cd48df22be90a99704e296cdff61c53579f1b1ee2a9736d0e16d6634f85a305e81d5a393c6ffa7de55dd0ca5fc3", + "061309edb8a02f38d8d87506ddecf6b34eecae28c24a7fc8560d44d7f2a2e333d4a3f43a871df528e6bcc239d56c2ce44e5dbb32b6285fe80e99" + }, + { /* i=4645 cDividendBits=1024 cDivisorBits=985 */ + "ae89f191dfe8b6cb79f2c1db8bbd1a54293bbd48dc3b375b874f7f910e3baf4aa6beed151504da2b1e606079a68847cdbbab9b5c035f6411418ca4f8caa6d60e7b22695f4d6df875e4447dfa24bd4fb22f56de2589c94df850b9c78c11aeafba58d9769fd4b1ffed666532ad255c0f00324204bf498a7d0fc96545d76f831321", + "01df84ca454bb96b0684d09030b84964deb0bca3360b8d5e70bf152ef9386670814b5e0c9d858bfd6f3b3859b938997101c6418805d1dec237f683a81429192dd4033d61f9f6a338d8114695ff1117660812c332417aec12be095c0e44de87038ea504d3040b6096f5c6359747a3ccb450d0a14d044d91eebfdef9b2", + "5d2e49cbaa", + "8a69bbf0b144e2d156988fb8ac3a2114d5af1d3cee8d16a4e0f41d085e1bdf25f99f93bfea9e5e5917fb9525d82a2f61adb7b2388ca09c1511d8901189034607269fe012beaacb387b30af5012d64ed1ca4f64a301d6039e2f91a2326be7917d412e26bd082e6e45b948bc9a6df777c92d1f6e339a8e0905af1ced" + }, + { /* i=4646 cDividendBits=1125 cDivisorBits=622 */ + "1f8a588e5bb7c283da998140d215552590c58791f689ed839c05bc05b2f4128989955ec23a3c33fbd4dd0dbdce6654164c428c634557a90ad300a06ea2b35dfe3e393ca924eef8ec91cf9ccd117fd40c5d1851f58ee6e211d4b603ac9c7c90963f8b4e1702fb71637201aa8005c061ff24ef4b54873117ae1136367d7334db34c278c53177477cb94eac041db0", + "195fa49776ed63da3c203c6ac18751e72152d674bd88eef5719b6b42e87fcb4c6601a699c95d4ba4b0fc0d7911db2708ee278cd808b4038b36905f48d8826a003bd0bb8dd623081de376040d8902", + "013e37e38da9b7e3be3cb9e3de9f30954f5cf2c7ec16ac0bc197045c15fd801a11f931183bb2af13ba9d61e10814faf3c701615b2766e166ae5053c063025be8", + "0ae526e840a0ca04c25ba56bd4ce4da3d61c43fe36a9b813af57436ee21c6d8346d3b8c431b0aa07c87cbe62070af0eb94e81e4e8a5cc8a2b078fbcf70a0b8c12e99624b62a947dbf75358083de0" + }, + { /* i=4647 cDividendBits=3295 cDivisorBits=631 */ + "252fc5ec2fbaa6a70becf6e1c7cb02df7bac0bc155bffe8948a2ef2183ef060f8f05d7247a83f6ba98c14542b9581f6eb8ef042084f9d4db7cc2e0cef75c418956a5a4610ce25105bb37ebae0fd0a64ad21ee032fa5f3b69d8359c0ee3ea7f9c4cf6d33dfa32f71d70ee4d68bbc81414f41af31420b78f2317874498470e0007bb4beac530f8ec9ca25892b4df2d6565cbe723c7da624e39ff93c5370b64c72236c61043ffe25e6f67682f24c1e89235c81ca99c36450332273c9313bd2e60245e0af7fc2297b108b4dfbf5baa6418e7cc758c9487891a7d1226ab1b083f310c002ea9bbe6229e5929f36b5c51fa428957f01c63fa93d55e784fa77726e1b7b7b73e4f42de6559606c0b685595ca5396a6f1a797574505fcb1d6480ad7d4f22b967280a9f66f92b7ab7c389a2a8d33f51e3bf1bc424b48a861b84b73585ece19bca081711e519bbe75e7c797ccdca19fade86001cc45a361a2da91a406f7949da6dbfb0b4efded9ae5aec5f5826f74afc9d42121d66d9948d93a20868f6d84eb8653e5b9870acf8fce78528e5d1af5bd2791c0ca5733bc5987203a6f", + "0120814b1d671d4edf49245f4006b08292800336a12bd9f8cc83e52683c3c576378840460266e8f349f205df07d24aa5bfa844cda1dcb4a94ecc969855573f7953dbef910dea7529559f08885091c9", + "20ff35037ae1ff15b7eea3d15e87d415164adb89cfe3fa8dfcfaff4dc2c9415bfbd350d57cc6621dd418db8f6c3b8a8787d8370bd4697a62938e575d30eb6d9cf4cdfb4fff134e8917a7996b4a085b86126cbbe4ee64326974642bd2c667ffb463eb7052b797f86781bc31bb31d99d7e73b79222876beac57dc53edf94d7c35a3fd19f1a179e3f87ed0ef37aba6334d19eb9faef431a32e67ce3c548af7d5b8ae6c031ea02f27dfeef5bfc47174b19a1e0b52c2b939ca6f599b449e04254e6af0dbbad8163f582f43a7a40ee87cd1516d3287a0aa2719d402b5f9c1cb5bbb5dfcbe0e7613428c1696c6e6362f7d2c0caad58614c45db37fee506e53e1d49bd4eab18e7162f509ec699e069710f0c374aace16db4c7132d82d1ed90e6cfa09571e2df2252c1ec1202801efd41ebf3779ca649cf3c448459a70ea90f7f83be351953cfa81fd630205a44aa5035252b", + "da660c736a0dc25903c665437a5b2e48175d6b53d580ab192decafdd14ff5963d51d1125677dddd4240c5ad3864f50766847d115d0f5eea70886c9213edefee6951dfcb7e59a2194307ffde8b0ac" + }, + { /* i=4648 cDividendBits=325 cDivisorBits=23 */ + "c8220d755cb1ffc7bb6e4866746fc826330474a1c4f3283a4e84af9d6291f0df61024321b470758c", + "6be5cd", + "01dad6de868fdd6f3df89e872eda5f83357589956203f1fa49528d752966331fd27a9b9aee14", + "0beb88" + }, + { /* i=4649 cDividendBits=465 cDivisorBits=30 */ + "4189df256f5cc7eca9916f190bc02bf7d327a5ad5044917ef4e5bc1aa64a890a747cc94df99b5e1c78d4e9f65895866ff9f49c7bcb7992db950b", + "39d98276", + "01220685e938ddf4581d25862c1f148d25ce693293aa54d33bcdde4a6ade199a06d1b1c120fe59c877f6d4b82ed478200879dd296cb0cc", + "0e7f03" + }, + { /* i=4650 cDividendBits=2287 cDivisorBits=724 */ + "4a345281da6d6c505e4450e4871a1552eda13dfd9781582b0f4f698e36b877cf26c090c414cc8b71c49630e53764af1e8a73f8b279a3197dcc20fb3a081223fb5e9db1145a63e8c7c8e2bab50a57d61e47f7a886334c5053bd506e2d815e55f46448ad81f7cfce2f2a17a800367dc9f8b9f8bd4fea4358afe964b103346a9cc94999fb6a45fe5ed4b365733f9e4ba26b6e7389bc1bf193a07279d3b6f0178fe4b95af1a521e40338f5e16e006c52414b79fc42fd4e207c7abd1e93cade7ec28befacf3b04447a768ce5a4fc047384c6fba3e52e506f61e648f3775228f6c098ac6e6e58a7c47223133a86f1e83dc92aa6378e2e666d322ffa1484dd55e889f6d38a275dab90d1e98667c28bf5b7894743139df7f399b9ea4fde1a687847e", + "0136ec96cceb16cf1ffa88471d469d8ddd3cf77ce1309b1771992b908ec676480b70d0e37b55491bc5e5c14ad0503b89a8b9762c891c9d3948854b628e914b5031827be02d77ffe2569de61284f6bcdf28b547afd886c55cd8fd96", + "3d18a849cb2dfe5e577248b0fc74d63c8352b43d6c7fa0bd49e613f2998374c4a8090e9a9cee827c132cdb34e9671e4780c3bf7b3c9979a7b3cf1235e1fac08e9862d60d5cc88d9d9e755c0b61bca521566a9bd0bcfcc3c65ad61002095d35693b50d9d292454ac0acb8f4b0c18f40e21116aa25124af430a010bc541c2a59e49fb771cd7b013beb37d3d63704582540bcac22f3da35ca66476ae79d07f14ea0db1541ab5bcb1a9ecaf31bade79fa836ee7aff1b4ba5627b5e379153162dab68cbc18fa0", + "b48a599846f3d184114ce3abc2dd95923a0bf6ab7e8ee76b83792b7df11ae492268ef3046de3856bde80f99114663db0d751f0d99692cc3dd3d1ec1e3baabddada89cc31bc59e93816b7ecca8a7adb6fe1b387b53c0d492c3cbe" + }, + { /* i=4651 cDividendBits=2243 cDivisorBits=1247 */ + "028977a0a2a68e4d84b41bca6e974d59fea7bc14cff2a9dfe10f0162b1bdac07ff7eaa264540bf3ecc716e5fc9067e7f3845602c099ae403c781dd773b3f53b1e908d7eefd8e329a642d66f1fc1e094e4e9757fd54ca2ca9a6ea03b936bb89b413f2b13f3fb0366d9fed6eaffa07136dbe7f334d4b8520f0dabdac4cc0d3bf3c188f0534d18f7154fd2f932ee0750873f5f560c0cad1a31937ad0022ad6edd119669c77255b9cb3a6930389cfcd6a5b7e4f9e8da79812f20e5e590fc27a0738cfb3a1d8b426a6d5546490467871f82292209bdb3ad2b71b13640655c3f44a9343788238f2fbdfe13cd6ef5246990160c2a5fcfa40fa150a0105026dc7222d293e7bead20742aa5423814d06acf863c012aec0567e460e15457", + "7dedff4ccd7c89f544908a2d7f59977c1410406316283db4cb8c0b2cd57c9d995f9da935631c48abe9af1cdaf7609778c2c4a9e723ead25ac6bcc032575df14c16452fe8a8aabab72f7714113b6bb3fc837bde56638fa1c66f9f6d0561dd536e400de7e03e125539185422b6c0427f98cea9b7200e1f7cee777947c87349e1969c69d9d28633dba59b987c8e2accb2ce992d3e12028eb88174349ccf", + "05284a1b56e18593b964016a9a75f3120de66a17a0971c0f02a753b3c393b0e5a390aa526e65a7fad8af7039d329200d26b232e43ff4761e851a928855e51f66a38bdc7c58bf04538f636c6693283e58906af30721f8615db975ddcf2f9612155576bfe776fc0c2746d0fbc3233c567581527fb04dbe29ba8ff90226a1", + "5a1a542acfe554e1a76e4fa3e92f659f2c469843f81ca3889d781025b2d9aecd262d32955b59c1c84e7204c3c6d5b5a5bcc3d83e70ae16f0cbf409f22aec1847562d1e2fc3e5045535d0efedb84a6da52942921b0af23840eea70adff83c63b88b21c6d1a3f86600cc7b4b6a2513b8bf7dcf50b732f678b9c1bfce8b0351d90d6a4b00a7355e2dd857e3a1c801d8623c7fdc3312e35d14aaebe5fc28" + }, + { /* i=4652 cDividendBits=1314 cDivisorBits=232 */ + "6310a584683215bac102f21f2ea30ea68fa7dda53024c23656fc35b24a888c950928ac963c5993d5dde548e61459035b1f1df738055927b5315a24e718c188587aed7f1d4bda32e8914e82cfa3e868cafdf3fea15fb9da01c3e9baf2d0e747471f8d56d930ea57d5bfd64714a12e23d37d29364fc541c32c3133524be63325e2cccf4052d0eb1956df204ab6876f8ac564383e44cb2950cd81975dd3279eebc85566573c", + "49ef972d6d49c2cd838b2c7b9e11ae45c2e3c2ff9800311e3a425b5b88", + "01570230ca569c308fb38ba81dd03b1d3c01e107cd03e6e4591874e35b76f823471d0c887ff4a43cfcb66a448884e31c91c5fb1a0541d1c6af0a2da7953f1a07f222e6c8ca4e2940b38cfc5b6963b1c3f9847faed5ceb5ff994039f06f2bde1f94273669bec71632f35de5d725d817c3aac0e944c4c12e5a26c03b584ae28c29803eb3a32836348c", + "07e5053c0673ddcaddbe1d086b2bb1f07c0d7e3b694bdae946ee28a8dc" + }, + { /* i=4653 cDividendBits=2765 cDivisorBits=1566 */ + "0797f11d5a235882f16238b7c7443330fd9a28a782470a35b03c40e13e64df7cb82a40c3204646b6358fab882d441cd982a1fecb8ab08bbc7fafaab1ff486de893f83b3ca5817ab808b2c03dc7d09e235d3c2a9bcf1062649c83a273aa94fae3844a100eb6cd4ccc3e33af8ffb32819d3bddffd19d8bb66eae81b5aacfe15c09dbd1cc1a93f33a46ea098a0ebae5aab3f06f9d6075e18518de2cb6ebb067ff0050c507823a3e931a087a1640f7896bf99aef9f166efcb0e1c478411ca5a73f087c72ee5d01b6ee67fa247780b224ba7d80847641b8d12319effcb276a943b2a68810940200ed258541852c5c49481147f95236e43de2f136b7e17dcc2573ccf4915b7fd3c485db4c128b319ec9e63252de499ad67c61787c8614f8cdd30dc44a03fc1c59658094c90c7c3c52b8b62d7b5db8fe02ceeb1a593761ca1620b9f073207964cc86fdb2664bf1fd6d303d7116fafba36637429d837bbc", + "1e206251dc446bc0fb5b0aec56a28bbb27eeeb26673150ca1afb3636b8671695df0b34a9396a001630f9448e62d6b90fc24b78d42f61c14c3f740f87b1b3f1d308de3bf7da3512c56c9a880b1d4a6a2fbf9bd361dc8dd72021c5a13e3f91658b1277f37d967068ef7a2670a4ea1986a4479ff4cf435fdf1d8419e12abe68ac0a21dbb703d05021b8d39cb53825eaf36e6ce99eec8d53d21ca3a1926ddc5c6de9cf2b92c501982b2a231ad110e7008cb4adae3de99af00cb178b1d20e8806a50ff279d632", + "4086a66992091234629ea67a9788bd0301d1f6875bf597fbc03692fca81cf7ae83226fda90ca208f620c672d273f38c7567b76fce37babeaed0ed0bf6f13880c74d0a475166fdb1586b2477e6d3d18549e4ab4a0e69160c847a1cce70afa1c6dca08273ea0d738f5585ce2954ebbb1c53d56a2229023ac25b0faeaaea9c010d2c14005fbd3b33e6bddb7c2b723e9bce841b53bbfc6d0", + "1a4e2b4d19c6ef951482694c7b73a69b45de77a895f32d300e9177887b1a2c01b71788c2902904a16ebfa684280a21434a11d4f2e7795b929a854e619f388f9db3bc073de9d109d0842461cd928b27f2e019a28472c07c8af3992138b7dedc85981e81d95fa37c5b5d86854a0c7a13141a976cc5544cb49533cd64aa873bc360ce707ece5d1f1dff3c0dd9773cd53665ff66e571293bf1877b637f22f302fac10b21756cb00bf9777cd06e1c6940ff2d581a599a9b8cddbd41e84ae7f1b6a425098cc71c" + }, + { /* i=4654 cDividendBits=1062 cDivisorBits=242 */ + "582fc9e2d6babd12d660312b5fa26338dd513725fc7ff3e146b44cbd11b058702adbff6bc000dfc8016c4e8080655f03e7ff373b2ad18019fb5a1a307993a488e3d219443e8b190671554883b27aba5898b6b862dd24608444fc6733e1e421b656144a52a75294c228079360c3730d1ad6ef68ed8eddf6e4e62a791ec0f30e3fcaaaf76e", + "d21642218423ee4251a7bdaae7db59aa4c891bd4aa895279e85ccde6cc3c", + "6b759250510b9517334891ccf0a798f06dfd41c868c88565fea3e81c02ac84fd53d62e04bae7cdc97d6488d9c0d779893e34f560d0982adca349ce9a016d60a363b64b467c9801baea13ae8fcb8941972536369980df3e06dd9dbcbe95f8a33442cccfc72a6e", + "161d8fb67b834ec32e3b203fdf865984d6fa906156d9610e173a2d595da6" + }, + { /* i=4655 cDividendBits=2254 cDivisorBits=2021 */ + "2a325d150d96c5cef396297563c502b7b961cc396d5e08c18894560cdfd6f7b61da991bd2054168c520250adc83e0356c9efb360fe18b8eb20bc7dd118284a021287ec12999196ea8afc15ba84b9ea8ea1772e06e25d5088c1147c5b1f6a434d97f35ffd07c1aeff9625c8b9e26bae61585099f9e1dfb0e4c071497be4c637cbe65cb74c23759f88dfb87b7d7cdc2c2f37ef58cb7044fc1b4c46a2130f2cec1f9ef708c30087765bd25b1b03ab6b4711e3a787cd8a8c8bfd409a54b121b225c3afc407ba4231c810af356a58da13c40e51630a726a6eb6273ee9f3bf4c87233234c1809672ea7f6a3e4f5f7c4cb304f75119a4cc8837efa87c155fb287b7659accc3e80acc363ecc23ca6d67b45917eb65c6febc4648c3383f9e", + "10f6acd94ea69f85a39a5bba83d4690c89e17884b2ce615bcf7601525b0050da20d73976644fa9f5bed6fb37cbd0e64acd6d74d6761e6cf2723e4362d8f1c44dc3030dff0f3060316e983c853233d6034936abcfdc00f193c1cf9fd1a7622df29503fdaaa9305bc9bd59abf2331fe4b82d0ec83fe2e6a650a7e58e4a6e529c87621548a76a43d36635431e65a4691cb2dee323ca9a1a70ad1c0035ec32cd0018bd896f360f82ec4fd34e0f1ac909c54f1189e8e70817a74ed557e7babb8ecff5a47999de16615a87f7f8103d8110cd65e62fbfb38c77785401ba47676974c87285dd19292ba03675e9a3936f7e6d5c1c3f4cd1f3fff524c204b0b9796d", + "027ccc2ea7c4e9968d021868efc15fd8fb0221e7f555bcbb5588a4da79d8", + "0761cf6d9c0d2a6cccbf0d5c0e06865577a65bfd09b91aa6a50f2abe2d551cb45edba8b214e934676f834f3d139285ddb0e5ab7ca850eb1cdc4ddb02c30253f3f5f3f6a73b01312501b7cd11b0911c8cab2a409ad6f3bdc8f5ad6e3694d214b592a9a9d7f39faba2059b1d40bae871a95ffb5f0a3a71d761b5e824127f49d65fbbf3f3dd5724c56a75661b4f3af4b4ec60b0e6f36b327e7636b2db842f3e2b4e64ed4f81c1fb9f3dbf4f3e26294157d28e4986ce5a9b590a7e2afcf0cc5aef3c1828c9e3988d6295d5d9e004bf3bca94f379fab953a4b6b36940e30b6fe6a91f42197f156e0da3e45ddcb29364e74c4144e121ad5558565828c18346a6" + }, + { /* i=4656 cDividendBits=3938 cDivisorBits=2438 */ + "01c6c9b36fe46a88fcaadd7c1f7e3027e520e321fc20b0e4ba7621fee08f4000f495b33986b49bc706a017d694aa70c509ee801dc305c6bde3f1ca44db5e1e00d50fb1f0a56af9e7b124670c3dff0d5fa7a1ee2dbdebef51710ab67449b90a610a2948de310d85e9b2c270518885316c0f3c8f457e5554e2c39d6a926dfa839be986fad2d65a683011f5a3bdc6f806566b74eb08684fb871621deb72c5fcac2f8180c14e30036f86960bd1bbb9edf454e49a798dc6452ada125d58efed973d1be152969c51d9fd0c23e63d130b5dfee8896630e7c81924053a8f51d4051ec5f09a7591b3313b2579dfd913daa229d36f75adf31b0018c55ec33ffe985fc99abeca02753907950cacdb241a4f1cdd67044543d87f6f09e101b07e0136df7bbd27d079891151204c7febe165c5ab3afaa8acbc90f121269db8018adeac29282dcd2acec8f8da4078cfb5a36d2e2417364f4153164eea4f88313f779031501b68c78dc76125add5bad43f350507fe552d04fcc0781a7601419d917f083186dd391ebdaeaa5a08a1698ae19244323f7d35d2396224f14e9d701e73d0d233bf989e3c6099dd128f62dd329d9f3bd99e9e0f5cc317ce130cadb9f0f48b3d1ebdb09dfa7db6d424004655265af32142b013e55299e52f257509479bb7b4f21910eee436525ae7a6853e527492a37be1f8", + "2eb17dcf3d69a77fa1f5699921650f147ea0344f002c43e05f0b800a63b43983ceca179211273c2ddceb364bec2a95a8a17ffc7046ec32b227723ca4d7248ed36c59f482431ea0ebe0c1a05a2b914e665077595f601471ef47b1842d2a8787bf84746027e7fbfb2385ddb6706793f3c750e9a73551689d514013e58a316b0428f85c069ef5f51e756a61c3d777f7229bf7ba3c2d0231bc55638f38bee338de2ade52c86a200998e3e392dc413102c21120145fee1badb160e70572f2c360839c56eb17dea5da5cad5c87bd7312a4138c0728115e917f7d8946500b2fa9791638a66d0569861a52fac93d0c2c6ac870159dbe1752a2c951cc76bf64af512bc3ae1edee493167c4e9b404c14996fc6812e3a96dfafb82bb658b84acfe4632a37a24d6f2a37f0b235b987d0a1e641efd569fb", + "09bd697b30870ec5db60cea867d04366a3e55e85e91a0e5462e6d8c15e7c1bda2f796924e075e3866ef7a81c621b15faabd912a665d565fb313220529ba8da136cb2e811ac35ae668520e3e78a889fd2f70ff3d92c88d44fe3a9231b7ccff2d33a8dc209716056da9b5931c761506c606ff533967e4296d1ce59de9f7bc00072c032bbd373e9c0046bdf56c05caf9e2244cb1691c29a11eedb1bbda290c007ec8cb2372aa8a1d575a670c23058755d5e6421efc61e56706eb8a0a3ef", + "1fe6a456e3f59f2e5be7176ac8c7e79a6fd1b6e28da975b9ae2929708b03a1819d9a8fc87533407a76c31a7ef2f4597bab962febae885f89b12af9b25f4332e29a3bbf39d598cc4fcfa767ca9b3a12cc2de1be4f3985ce680c7e06b8878f4194eec1b5e838f4a83530d391a6d55df09145c36608f91ad12e7fc1e69d2471669bcad73ca2e4886b2d8d12e1e2105aaad6d27c8bfb8f590a7a76a6ee8b3c920637aaaa705df8835573cfdd177a1a25f36dbab89acf7972d513d42603b7e3d644311e27a52b7ef33fc49ac3c972b502bdfc423ab72e126c2a7eb28c25ef4b8cee72b17cb1a8ce0976d44c3917eaf3c3540dd6f30089aacf3907b4e042184fada2d21d237e0008d9ab3362a03fddddf0a3e2c3e22f03e3bfd4c522d147d4866f6df536b90e823a31db89b1a395dde633e31fa3" + }, + { /* i=4657 cDividendBits=199 cDivisorBits=57 */ + "322f18e26f8ed0e7d687513014e70f9b8241d93ee1ac6d086a", + "01c6fe88e2051b87", + "1c3c590ac534384a46fb9f60cf059d0b9728", + "012431705e971a52" + }, + { /* i=4658 cDividendBits=2012 cDivisorBits=1850 */ + "01a18b41bc89973d945c316c0f68e954498dd3231dd9e276679bf52a7a1392df11e3be2c75e564d626dffe386927110b6a2d8f43cc18dc577f33abc78b07e8475911d39740b859e9c5719763a71782f8fafa5c1f89af1c14e1efd97d7e3093b1870a99d5f0ee4fe6f57d5a93ab34c236418a10d09c956bc4d622c4b4e5fcf5d26c727bb0df9369c4641d5951af3fba21146ca1fffc8f742a884808a99f4f3bbf88483cb014091b57bd467ed51f1ab6d5671f0663c9030b3391d743bd61a4d1933559a2364a3620df4d6fb345a3dfe68bd662305fd76337c44feeb11f77c698da4249a4353226846960989791867b9f0ff257f5fe6ebd00750da92d32", + "7d1e383938da548b31ea0fcb0eeb1c3783356f99cd95376c88add42a71d49ab91cc678e916d801ea36841a5eb2665fd9bfe7d977721d7b67d2c6a1c15de01e75a1770b80f2b95db4b13cca8c2077c46243eef9ab79e615ed4b22022356c63595eb8daf05a80fdc99866fac9e7073e909b68ec26bfc691d39482725d80e59d9cc054b611e91b2a7d50ed2da0144645dcea92c7c8acc5492b6cf2051dc39b8b7653f70cbf0240c18b3926f7d8823f9e2863d9d1fcac9d998a730879fc322f459813ca628298400eaad398ba6e0d7dd1a7beac680d9063aa8f60ef8448c886cbc1769e960ae44435c", + "035652c159bba5980b6f3aa6ad6b912e7beef08547", + "19d64ee47625dff7999c787452a7f0be3aa5b18f8da727fe9d793c60dcdf2cb3ba2754d47c1d7a9f5537e1e6aa6cd198949124bd084d4ff9bea198687eb8369d5e68e401f3cc58d76cfec401c04279dd333ffbe51824bcefa020680cbd40621bf667398aad7653a06dafbf9112a9bb1eed9680ffe1698604d986e72626ca539e571444d97c0d98fbc61950d34ab5c0d98874ec9407af0d89c51ca1ffabc7862094232619c579efb2f4e23b77e7fc6e1dccbf98d2a5920d99b44a3b29b73d538eabb122e7b380fb3cff56ad087d9addfdde831d9aafa7d4da6dfefa3ad6c0a5a3745048937bb2ae" + }, + { /* i=4659 cDividendBits=3103 cDivisorBits=1966 */ + "514f1c31f7e9b681493e1b275f968f78eb555d86e1064b28d76d61602c5a414cbdec34251f9cbaeaf319dca9a6a22e1b656e0403439af15c0476c30128bd5e8020efffbf835ed0f059b4818ec14ad10b08509de213709d1958d08803340ed449d2562d09e1c1855ac80c173a0c30a01300a5f055c2c390ec60998b3875f7f4e1d03f8f5a759f653e587c313f72b5d92c20e3f532c1a1c709e6fee44c5f35c461dd9df66808fced9841a7f00f90eea8dd6b93fd18c333ce934c2acc81c026f2f3ecbce3f21222ddf6028afcdd5d6aa30484d462a44d28f282a7e9ebc51bfbaddf041daefca343b5d00c30959819e1548b6a5327112d7904e113a3c03629ad5d69f4fb10545186f7b8bd3f1556bbe2379f4e7b078cb666353509b75695a6340f59169dafec62e8f064e0da85c2900315c5c78ca2649a4a01cdf1453656c0eec32fb03141f0367f3d9c00cdefc51df1ef85e68e604f498bca88a4915e1d7c29dbcfa47150bf5170e81892fa750ecf418e7241b9959ed48fe6bd266f134b254807251438db54", + "2f666490cc7b9717d34be4b07745a603ba5f7746e9e80b7cfea06a520a3b35d58c9178d7587110428c4b65fda43bb6fb816e56254493298749f5aed4649abb53179225875a51e9d0d70d721782f9805b22def715ecc0e1a321770e0211a92e74f23609efbe97c2f339ccb671e5c2892de5b57d2c6bc65a2151dbba980527d6a0ebea547e84fa41a320aeb9ba85209e2b5d4204d8eae4514f7e298e34a3631d2d1a6f12571a75e64805a272d4e18e6a9c88a233a1010be2c3a07dc63d919b8aa3414444fc1582000df053b7f9f5f38c731a124899ade02e634b90ff3ae6bef0c35661948c5dfeda4417119e5ee9b895cd89e378f1b76c", + "01b7233a03da9aae2b168f580d62bca0ee642647cb928002e302260da94d28cdaf5c4220de4e34ef8066058f17c2d6e3dff2f8d9871da0e9008b865a1af9dce0b49b247f9bb55c48215e6df6156950f41ec8cbab6715ccc45ca96ccd92733a52523bb36cdb15504965fe8daf2f2605f3908c7fb1383e5b1d5b43f6a0af011fbebc986c85dbfe620791171719021309", + "2c4dc7c1f99a361d9de16e0d633a7eee78714afee3444823048800c2d63542d16d5334057a85fb6a6b08b2c0cbff95e54d28b70fdcfb8c6e000406da3e6da515b42e0899d459daf95c5b8dac0a9fc9fe08d80084feecf9d0314802f48a764483739e7d79ee74974fe154598f9f37b30054da8a0729ad024d565abeaddc296bfb4ccd554323f0b18515c0bbfad4b41b4bc8ef79110f9edd13914a88bb03f77bae635df87aafb76eb24b1649a77c1c25856f1554b2254ca6a65ea7bc4cb5b101514e78f325ac3f4cbfa80e411a5b3df8d081599ca41cd4d414d5fbfc7b2d62624adbbd47d56c74339031da4ac39b0ae7dd90aae8446488" + }, + { /* i=4660 cDividendBits=3532 cDivisorBits=3063 */ + "024d7dd2a778265c2debe9dbfcf5062fe6604f817a608b6b9515b5dfa5afda33e323e9068fd9a4d5271962c03be2d9fbe0dca5c004b82113fe731de8e438e9dff11838d4a10490ea0ab8906588905e1cc5f71f847f87f4022f4fa62ca6b42f31a426d78728bb3a6a652a96a917f99a2db33a87a0fd22d5cb789586d6f112eb02b5be7842ce0218584e0cf513c01b5311a891b3837526e69fe497041d80b98dc97f99660ea3382a0037ee8504505b94c2402775d7995e2a98e39a1bcd1cbe51eaf037892abc1ac3490847d19a6a3d9248c02b3fc7f8e19d8a21d32ff4d2ce0c0f7e0d97b8417da56e7775b4422bc775a40f8bd04ee770ab92abd02fbedb10665e3ad919e5e3a4c1cdfbac31de706427c0941609f728de01f3ac5a559d201729439632352bad5e7e542d2495f4079ffa677c13a758a4b1c2199efcffc2587e387850326ac13b68917f36374e976289a2024d3aff792242193c76afaf76d92c5f3e0faeeef3b9377691db3507966b59589dbd5a0bca188cb718e201f965a0e5d46c50c443df1d6948318d6e74ee4737e40415c80d676496cce053649ad94003615ba9b706cbef2677d2e9158b1331171a5a8068beb03dd00c087aa9", + "10d6355a90009dbd88f281152f72f73ec9844cf79328a0ccb859e2696a07f777ad23e0c4c9b26c57ef9899dbf248f5352f6a26955e892ed4e88949e143276d5428d88c34e9044dfb56a838ca2ab36bd42ed73a98606860a1a153228773b99ec4917648988d76f66b899c8e6869eb7e3eac40c87b86ed8594129963c184ce9d7ca80de1366e50aeb1373d98db460890d59abf2c4a6e8dca3ec528bda9f1f832fe0017de57e87b2fca5bae63012b6991f3170d40a8ab7368b7aa5f835e5b33d56454bffdf7c5debacc95ddd10a09dd22785e5e618f862f0518a94b27b593e1726f1b084137a36d1f871c23ffc9fbcd35da883622e7c93932206731a80763863e161f934d4e9f313dc3ce01a2ee0699cdb88a9abe2a358bb4545b4bda8001dc66fb6db60b4ce1b41c43858ae0e85510fc050ead311221543d07aa40a19ac6f356146d2fe51313a2692f6996947e838a6aa894841700acff9ec264b30ccc9e443e631e2dda0a2cc61227bcb1152d99f9335ef7452470267820de9fce45f45f1a45", + "23031eaf89653be46d7f5017122159bf5e22350666791cafb4809f54eb41f9958e48f4834588c4948b6ec8fb31a901ebacbfde58c32ef8a6c97156", + "0f6879aa99d00fb8534a4ce583b21efb743c78d93201c3475c896c3651ae5a539d24a79a4a4c2fc26ec90e234c09dc5af534b654bb35ce74d11aa733c78fd99938704f9144d8e4c2fc2cc0fffb296fd3cf0911c1c7560052b13f56f84fabf6398ee518c1ae071f5d9dc9d268cb1c619857e03e8ae6cb5cc455a19fec1f89ca15d534e9abd07974710cfe7856582dc8966d9602a7f72cdda440aa33a4f362121acf7f0e73762915855ff29dd004f5c2a365f525d42c068fe4d004efd19c241e70bd7460bc5addd4ecc52969108d33174dd2f5f6835269246931358f8192870a8d17a4ffd53ead1bc6a214095b7a0dbe0dc9f3786e9aeb1796dafd155422ac116e997854f14b7a153e3935cda52aec09a38f4334e66304db1252130a8418d02bba0856f6bf0cbb255014515a0a0c9158b35479c2ed3577bc3230f946fa847d80a1078d08ea302f885b77b3014a85164972b694971e9dcb379445c7cc7af9ac4b9fe32e2040637f8673c08cd860a44a17b502e07f66a4b9e28c28aee59b50327b" + }, + { /* i=4661 cDividendBits=2379 cDivisorBits=1337 */ + "02fbca9368c4d742ac169e7e63439a982b36ecd8c43a717c7282df943bd9375574762afc60d646b5f5d8dc1e24d250b1630cfe0fdb4b31a3e547f19f973f8d20c79cc5df2b111328fc376a942e7caacac5633a28826dca841c4f42a5e30747bdc5d368f9907818392cfd2e7156ba20f959465825fc2728bc8cdc5306dbb96afdd79350606ab3e9f2bef43c350c75f31c921063bfcdc25de8eaeaae7d5963f27185a2fd77e43ca4201ddfde4f28f26001864055ddbf2d568ef329e2f87af3faad0e44e5ee6a01fb897273f2d94aefa41475fa4d9681f70076f7bddfb02aa5004c011c812f40734d678c0b1e518033d23695fa6d07ae203fae227586c236b657eeabd2adf604378f23880ee4511bd16e91f1f93c7d92b0498fa24e67345eafb7bb82c5914dae04f8e4d581", + "660421fdd95fadbae44f95bb9d91d49126a042702806f4eb5350901ef021db1544d8f5ecd7cdd872203c1de3ee9996b7553395fda9268caaceccff493668ef7010fd1930771ffbd8142bb0b3cb0d1ccb1c8f37e508681268fbafb7e80225710bc8b4c663b041de9576d1d8c23ab6fecd73a00bd43de739ec2c17ffae186e883508b769296c59d5912afcd9ff3b00645f7d872d448cc2d3515166d7b83288265834ba068dc255bf", + "077ca9bf67bf8b4c1adeee58f7656b1b32c31a642308c8f8806fe73b8f5c643dd88b2fd19aa8574cdd90dbd3fae20c596804c491511db52ecb3d73b7e9838a932c1fd9697385b55d4b934f77be3e659bdc9762aba8430ac7935001f2cbb5f7b2cf022fbeddf2fc5258a3f8cf859064c834f98128d76d2e5804b3d152d3d602ca18f89c", + "2b123a86cd285d565a72282ced1101cbd0dcaf282d765581528c6cc565a076ef0d6214333779eceb54a33f1416858372993efbcc52564bc1003da55928b0ba4c75d58213deab2264ab6610cc6a8f3de01da7605daed6fb8392b18e655a1271806b7b5aa39c3ba7137c91b0df6ed317b9e2ffabb39ac9ab5d1b04fd20254346693ec275b9ac0b2c31c5ffa121182a193f79c38deed51de9d78cab3db286f319b6de0153937f8d1d" + }, + { /* i=4662 cDividendBits=1447 cDivisorBits=764 */ + "6afd21b442db6c2369bcc53994fab6e976a158528dc5286c14628a3cf112f697bedd6937d2c824b5f1664361374528337cf99ab7387f7f23a214c155f74af244906c1f14018ba84e4f5e89823a4c1729347dfa37c0784e8bd3dcd69a59b359de747452fa984b5bfa033888ae3f861a97e4f4ae6adc58cda696899e2c7498f43fcd7186891cf2e2b8b7eb5d50f52d755230d612fc323fd0a971c276febabd1fc07c1d92f35fc21a01fe52543c8487c7ea878787dfb0", + "0c835c5bd209e3b7fb69969458382a24bfba379f65c4cf6c9e196bcaf4df0324c4db6def4387229f899493064bd60290967a23602e03c3de6c7a34584427563cba895eff7b2d12882da6356314e292d0b526503fdaa11a34a2f187760d73aa34", + "088cd4ec26e117838c194e3c593137841b3a56d9a0a7e4c65eab85704301dcd40604b01118f75b1d3f7de2a222e6f2e04f14deb38ff59119c95519c842fc93b266dce74ef5a2e482d0c764de96827faa5deaceac5142", + "0687eeca9503c3ab703d187426a1190300487dc43901a9479e3cfd02ef0ce565d8da6421bf8f77e3b73c5f00c606777fbe71a22b9db3e9fdc538d86f5cc1b924dae43f93dc8343bf6e841ff6758b88a9b92d1f164d6912a9f46c0fa243eb8a48" + }, + { /* i=4663 cDividendBits=3918 cDivisorBits=1736 */ + "1c4eff678b8d32d96b183292edc2469544763bc12c52431865aba1322afc59666300715e85c36a0fc57d1e036e3aee0e9df63f4eb3ac2def71654846930357a035dea298dfe916f47bcb52c7e975d124ce1f720bf04ab7abee0680817eff44200f97e69a6cd9dfe0ff12dfb51dfc898964788feaecf2e70ac84111d4251472a43db8a6e707c539f0cad6bd59ab8672e781a7289b60ea8d8d9c9ab10db08001917bc634192a89f2cee54e836f94a1a1634649368af6f2dd40cc964ddf1c5f6aa2a5d5fac09510f75290a22d2fbb38fdf61b9607b1eb5696570467305756b1811066dbb01a515742767dedd0f75f78ded41430d383da8debd926f89f237618d779ccd1e418a0ce6a8f53818075f1a979351c34270deb6b1c4355017a1e89d9f36920b739f364fd4ee697164fcfeb95b2ec2ad8eab4a33ac677467fdb66f2eab9745c03d3ee89396937973c5392bcb84e66eb970794bbe9027513f82218cf5e8b7001a341404092e2c17d209014bce154ba3251900cf730b91b57e8dd5307a9918155a4d24ffe03160d29e85f09c0c9acf9d14dc1222f2cca220f8abb3126231cf3de01d2d93691d8c7ee08f70f623a89bbd64c99f51e9cc6c695e4dc9f203a0f351b787b003aaf78252753b3384648e8da6ead0c0b54aaeb8cd8fc0bd8b6518f3058e91ce5745f19a4056a", + "92609be07f344cfef0f63eac1fd809b05af9e23ea748a4858009f1b02c4a30f396571e08650219b7ed504ac4f3dc073644b8c0fbf238f09e7ef4042cbd0a6c15b2137c9d977875c7287f16f5d063605b8ff47b48a1638e4d1a00eeef9b57f0cae11a6d6e3e36029cd2d16f665ff735d24ff7514e610bdc0249c4c6d02ca31031c9e35550064b92eaeffc6755e37d356becd10a35159d12cc642f97b3e1aed86300dab796d091c0b7d26dad8bc04495dd08aa2584be0155c07f3ad8f7bafaca9d4fdd3f440bd1884b870067868e4f40fb3433d189ff20c09dbe", + "31824dd7bef2244329433fc696782e2f2e02c89cff5fdc16da0b68032384686bff5c164e22a2aa39aa4fd10d03a953d5cd811bd8a45729596ab484318cc21216899326db28f382dde7fc6a6fe018108676cd6dbfb9ddd97b2511c0896e641dc0bf6ab215a904843040b44dc8e4702f1b1ccb721b0d8d17328f92d41df9c9ef82afe2208087ed8a2df0c9156a7fe0db96fe83b92f59402ca192597bd3926283a9792f19cb1d2c57f30fb14adc24afad54442edb218a7c5335195b4ae764e87ffc1bbc54583a3b93fbe43b4cae0b5cc2dcacb7506374d800bfca00541f99fe61eda707a0b5630a86184ee5bb69e05a81fe2d002c74eec06deab97f168226859e99cf75c4f79973f6e4a40271dfdcb67aea48", + "287069523fd7f23c5f2b3b0a8bffeda69e6fb943029b35b6ff30d63c62f5c113ca6988ea84323122ce9593d48d9256b89637ca1279091b0e783a69a471c51555732b888f98ca893ed237a7212298eba9d78e63d019fef46cc4a017221952d86ffef241366df406280922ab2d575c7e70c14fd8fb9575f94e93ff758f43c2a08553af11e47e130fb7fe35c180a141414cd253127dae6d8a7f28d1bb87c505ef3a3b54cd48b308fadab0dc6f77cdabeb6618ea3f3939017555a15e39b17a0568965bb329aa69d92d2273f1a9bc9a9df74024d126d37592bbfbfa" + }, + { /* i=4664 cDividendBits=3753 cDivisorBits=316 */ + "670f6bd288208348ea12e80bf81363f8fa8aea148bc271f0f098ef842ab1dd88551fc0e6270b4ce1f390d5dc8d0092c3c8ee84ece31fe141f85cc6471bee89950a9f15f03aa4fa26d27971ac026f5f55aa41eb41b20f3d44b6d2e8108e68a3a4685d647ff66bcb15dc330dbf6aa84fcfbcf771e4027f79d7a83c75f4f3227c685383ca76f537473598089b2d66c1fd8db98763e33ca185f51149a88b02103128e2b9610cbd4111bf418f355f7f22b20f95b3dd180157d261b9c8d87cba01bd2c251e2844e746bd986ef0b97b8b5258e5c369d87f3f16f18612471486e1438bccf6f326b57d9ae810fcce4b1a6d9f644304b91971cfba5b484b140cdd00bdac54ea27b6fa706a0c86c27d72bde34ac3d569475cd0962ed9ab4c3e17c1c0d0da13488634aea0cc2c992978b12578c52d741bc49571e3f1ec98ec399d6f4b41788e74350dfdab5a30d6124634f865b37a68137d02ba1905663d0685dd644e152f42b441ff2e8e7bcc4515b5ef800dd2c0ae09c62aa3d3d6c1c7755a3421e92c1d59463fb81a54c4b028ecda5f1354eadbdde5383848e280dd426e040d92ebab710f9d81f2961fa6c35aae02241a25508acefd6f7485ef6906b2c3904b92b6326877113ed71da627459ff7b007d7a354e62fc6931952c7", + "06a5e49b40362464cf480acf8e3ce8707011539952b2ed686a675fa63d8c5d87f74cc053e973860d", + "0f809d1a50b04058895e64f218367380eab7109426727e4f8712bb411fb8ebf6921e8b117851b3ec9995d129511572a5d08fcf0a2311bf00b08d5df87d10ac978b229b16bd518c38e1a105bfb894f8cba0e31cf930235f9adae17b96ef145c109c988cbad7c8b9724eec39bae13b68c928204da2ddd307f284a2bd247c607915af55daa3ffd4fd9519e14ea7378c509f9398f8b0e008818f000ab018852d3ef96f2d07f8122f9aeb179c6972b25ea5eb8243bf4470d0ed2ace4696614afff01fed30f3845e0e02981c48bd0e6eab062ecce1756f0fa0b19290afd6f193418226ff783c42e6e70ce4d2a1e69b74e1aebad14e85e20503cf336237f1d9ffdaaaa307717625896be8ab410f049368ca815f04ce14f60d731237e4833a09245f9656f88078d39e235be86fba2b2ede8e79c84d32952fb1d18e9cfbc2cc84a3a4f9ab42013593180163f903be9132fdb253b0fb434928ac97f468901e7e992fc0675eaee1987a2e535c2a2f3d6611f4eb8afa68fc9c871bff55ddb78265851e4a50c5911823d8844f3198b8ad6d7be03b47561fde59448d6008ab7d9130a87a49ff2520918bcaa2d566fced76a00a10d9", + "015b4849cb69385d8a0421a6d5ccbcb1491d3c2a8c4fc05fa870699d221380fa427cc4c51b49e1c2" + }, + { /* i=4665 cDividendBits=2096 cDivisorBits=2086 */ + "347f9e0ae91311a57722769e39fafee3d18a72c5e72453c198d2ae7b3fed41dd121b45595327bb4651dbc6b22e4fb98bfde6e929426e81e006db32b8fbbbd108e6f3248d8ab46949f1a47e15360a6a2c30a02a1266d3b16552fffd20ebbdb0d86cea2b6071ba6dd8e59b0b1f2a3eb6bf734258c82e371439a372c8a72f8aee1e57334eb0628c94162a688cdf8b364a71e13652f459aeba0e7ec2f56fee3a34a880a4c757e3c15cb973456d36b1462da01eeb5cd6b9d52bf2e08d4809202e748af95613e6e5167bf7d336f0b2acb984a77cfd72a79a564e36c0f8f55e0d3e7f78becdfa59a5ab0688e264114d71c5f66a38e605d261a0f0eddbed1fecae702c411b21290aaf87", + "38b303a9ca952c42f77b6a1a9c626c971ea825e97d081745f975c5823bc2996cebb4cb098b5c303d7c378846f8530eb2591e622a8de8a5d798a2e6f39abbcd944c5a6857e938ce1e67a02b22029e09cf0f0ad9a24183f385422a07264795a72e0fc7e0aaf25145e4446ece77b2390e9f00dd8eb92b5fb6543cf5f9dcf0969732266b5cf2dafb59e8ca9365aca92dc3cc21d3c455f046cd35bf41e8cef9bf3888f5957d16c868009634c1e1e49ae0850c0dc8d54d4e4352e54c17b7f6a4537df70e379931d5a6d7ab5190af359ba5d9790c96db6076eaba1069c0defbdd96c6c6bfe4d9e1ccc514f5c5b6656bfca59d0e4f0783c36f1db7949efbc2428a6a45e2dd6a8951f8", + "ed", + "01e3a6b886f7ab780535639733e05bea28c7acbe63d635d0e0a6a1ae9a19d33be4e5617d23629d65dc5d887a6ad4f0e165c847dd0e20576e8c62e9757bf3b69c4371f427cad277cbb53626b99e1b177fb31e97302c88f2f4bf14827b782512c84e20622f653024924075fa5a3fe4363f753ba6c10f786da7031055a4cf8424e9a1e9a38dd1e1d9a6de17beb296ec2de5e54630ca3d2e13bcb2f0e851042d51b5496289cc39142e646def160de45273f6286f5e2860d834991b52b9ca0d28ed412c9b13c24b064e38b3fe7e0ba0fa526c55c98f4c3efff58f1166eee119e972bf271ca39b1892215a5a356878e0a403f9bc10d673c26df944be0d15144bc98e142587e9ccef" + }, + { /* i=4666 cDividendBits=2110 cDivisorBits=1511 */ + "3cb85ce2e80ce11321cc17c5456219440784f86ba087b1117e6195790c05dc481e30097cc18d348e2ae3fe26e7f6c408754ad407f69a84da09d2ec4c5259f7ebeb18f37826f1bb55140ce1f744c6922ef65d5c0991188a94305015ce52041d3a4ab43389b56bf13f754a52dc4c64dd9319321241b9b4408c47c450eabffb59a2fbbd247f698805500c8c5943d05b8456028a75ab736172ad0027bcbcd7b9e6ecac4c098e88c84add85eed3aa833c0204e28f20621565adab9f4197074d523f642b1e835a2ff4f0540686a5eff640995f667aca03b8472aa0c930bbd6148dae1e992875da0a807e9d68970d9478a90d77feb2c26192b33779825f43154141e46b108063a8a616b2af", + "151980bc7812872defca94bb916431595f86eb9d6ecdd8a65381f7188a5d91ec21bf51ca2a8f9e785aac98cfcbc99bc0eb6dafeb2702f6b8165aa8476a9844602317d39cc9d38642c269799a0523928c0b7083b6b65c17440cf6d8ebf761fbceee5bb76b49bf4ab2e2c45441d90aa8a575683cbff853fe05fc169a41e6292d644554844a49f95b53b926a8d22e2542bc303214b75dfe4f359c49f3cb63da1087bb257b691da2e7c734acecce82a5eb45841119f4d2674179ca2ecb50dc", + "02e0b681146d1080e8f01bb3707cde7b3561bc2cf76c4125e70ce3a352487dea185392d2cb4a6b647e11523a137b34bd25595d24d739538729c11da50a541c9a75644448f3d173841211c32d", + "09eab743c31d671e88c162f12849989b1b93ab830200f643ad6256533da05894485ce16bc7585645335ad28d14e8e75909e6fa4327e2ebd525b9e1fa5d5250ae33a8929cab6469b216c081c3304adca547c2f7543036fc304e02bf4e01c3cff7ba39976d74f286e613974916e99d863daf25687afd3338109bf39f292d874bc9c50c3ca543d001f62e122dfb11d397c5cbb33570eec45ba5d2f0955408d74347207477559ad7b16b82852f5a003c796af5206d21fb6ebd0cd9b725e803" + }, + { /* i=4667 cDividendBits=174 cDivisorBits=107 */ + "17b5d3feaf738b73c1a392bbb36b24b548c878397f5f", + "01aa01230d66b98990af3c9226cc", + "0e3f8ee693456e75df", + "012e4ad8123770312f0e418677ab" + }, + { /* i=4668 cDividendBits=2006 cDivisorBits=1540 */ + "0ce9b5d0b8c4482d367388fef5495d73bf56721e8bf33fb17e80c42c0dedef36a553585ce757aa2e71645ca47058222e1d157e279eff6825343b02017ffe4e90ab96819377db3b2a21b5e11f0327463829cf9119ac775dd1121fe58eace6353b2077aa0c377827a16bc216982dae019c26a42666f4deac0310a2049eb225cd348f984c05991a4d29707dc0b81455e057f426f193052572fc6a50567d7833306e648848e3ff736240aadba3f93e3eb04a39dce966fab8d60b7e64b8faa77fae588d451a065bdc2385ff09302a5bf3de999fd3f92f7b748b1466d6a5f9bbea28e5e80149c87066fa10835a47cc6aae0725ac98cc21021164af86288e", + "0403f2397b5f85a2656ec56beab8f5f1af2567c19b8d4e09c3daaabee7dd8aed8381513a7ed07b91b454e68e321e4fd80c9f69e032eca4a3b243ab41cb78672b973650fed4f20b953806cd07ed0321e7860f843080ffdc6ead83c37d62cfcb4156bbf52533270f45a0d27f4046e697d1f60a1e2d1604030a416949cbc2f8cb8ebf87efcb07da28ca3c2ad609549900e0a03bd06e52cfb9d0dd1b4c50d7c1b6f98f87e22f81812eb9c1a03dbd228bfdb8428330a3c6fec39d0735e1b05b4fe4f8db", + "0337414615fe570bdb80fb27cff1eca3155c5dd62b50a8e37241f26acbf51338d2cb31df56e4c769bef6acbe293f1a3e8ce572dc9ab3f2c46effb8", + "02124e02bdfd242d1206f3d19ec565664a75bae7904b4329adce9c1887f7f5bd3675d06e981371fe2de95f1e6e81b4c902a78c6a19603be1ccf3d749221990862e7d6a9671b5d86a616ac33bfa6819058ba0664844ffbc93aa129f51778c52e771150a838f3cb78e8510dabfc32a9a503d33f315bc11aa59018b4802d063e82fc1881291fa6450a548210003ffd34dd72ed6c5ac195e3123ffe41bb0f9a2bb45ca40af1e7cb732a46ca005cd14c01f76a5c34a22475bb97da35f86583d94f72626" + }, + { /* i=4669 cDividendBits=87 cDivisorBits=15 */ + "78403c63a36d5227b89a36", + "28cb", + "02f2a5487aa776940245", + "057f" + }, + { /* i=4670 cDividendBits=642 cDivisorBits=410 */ + "3b830ce4ae7cca23ed4d2c4bbac42264817803e4c70d66479ada4986ba663046363664eedd790a72366dee9a9da7709c2d7fb25bc5af916a381aab7545ae928c5039cdbf301f3fe81ddf914b6300610f", + "0375e5af613c4eb56f2a72515aca81919eb652a38ad7dfc24d751b98e5f3b0d37b8ba57e4610dc374d96088697f00f5f89eaa0f5", + "113283042bf82484bdef57843241984c879e96d5cdfb10aa6b282d807c", + "02d25502f12ede1d4f91ef4e4b2bca3af9c975bc853759e40e62868cb1736d602a7ae7e77f3e8ef553af54f5224c7a43b1ceea63" + }, + { /* i=4671 cDividendBits=3398 cDivisorBits=128 */ + "0e30e567d591c2c07cee5477e0631852d7e55930703fd492d17c64c9a87b0d34b5b60610aa0a9b5764b6e509c9468bee85a2074dbc0d3a8182f0d6200c214db86ffb0cd42d1f3999281fb6490f51ac9fa89d8d599022eb36d70a6383a0663ec7fd4182c518085c43567b3d4524feac78391f1b7de7fbd791c3945e52d2df87eb9f6ecbed8af7e5a720357612fbd855e3c9fca4724e4c7d57131657820d9b1b95e07162b68f68a7c3f31f352b68a3c515fbc18347a9578703ce84e9327e7add0e7c1db74e059db5bf6a24f5e348e3a6c31ff3765b1d9f7d1cb339b59ab7cbe169350a8b619a98cfc8fd6c6ae7ad791b4059ac01b6c7cfa1a97ace4fe9eb495864e5a13657c39c85d19cf4924961353b53ad813377590bfd0054c6b6d80c0152f4643d30bdba22a257482a7059344651b0b220b8b667b113202396996fe38fc419dc38cf6b8180ba6814f5eb744777aa672030b8198103f900953806c68b17d5f4a7a4068c8c32ad2815be82dde28af3d57401f54b9e1befee2d6c9352eae5019b178fed7e1a7f3eef5d4f230ee9e724afad0e45c069ce3c03e37fe4a6ee72f08ad396151844f729a616", + "2210de846833df3e10f0b77caace3dae", + "6aa4a8cdd2e60763e979106377d3d05f79913d838707d9edaf90bdf5b57c78d3ad7ba917c6ccbd90630d1278e8137af48a05b903c4bb1ae8476dfa03ed200efce4aff0b10faf398625bd2c283023f313cd392ab39db0fff84e7853a402ac6ba66a8b4d41ac9457c3157d367cbb1d3f26abfe510e76b5c9fe743f903014ff97c9fb559a1b35b00c06e06259f303aa3a71c0689fa6eccefc7a856e505b487fd14b732828bdfb5a0e74bff968bd5d57180b6f689466397c49cac069900855e5c2f5c901924dab10aaad0b16a7f44a4e5737ba7ca11c678fe9ffafa2a9caee7231f2e6f6fea9ea53feac5a096fe092a1aed5bf8ac8a6d6591cbf1288c635b55e6a34b21775b1f0e71ab0a601343c5b7286a6cc5105b6cfa60d70324d899cf5d5d732fce03ce22f04ac79441300fb8f2aaea2d3b8e968c1b1ef54553b69497160c179dc5121f80bac47258c641b7a536cc45409b35acaed989a1d6760ce63024a356cb9931249f9cdfde81fe390b4d2b38b99120585f35b82b330a54e5f2c159a326aaa4ef5c86419982e27fc146a31792cf8c3fa920d8ce3431f3f", + "2138639770422a8db862b21486666644" + }, + { /* i=4672 cDividendBits=1220 cDivisorBits=739 */ + "067091cb42af99da5fdbe595dbfab892730d44cb312ff48e7f75415cdab5cda81d9451efdacc8abba7ccf07c93d117219e2d7d6f8b6bef0c2c844d5d18d5b7532b7f1b6eb3cb2f2ad8189a5abfbd1a00ffd6bf797048c0ffd3bad8d70e0a95022eb7278454811782b82b569162f18416bf4081c7251fddf36c42510d46a46b6d115805af8ca2bc63689bff466a58a0ebc1e6ccc79a59f57b71", + "032f2d990afafc4bd1c99669f63fd3f639188dfc6abc11f14e4bf2428507ed6991b8113ce94a714e2a81e119350f4064738245d1e367dc59989c3632cc95719f9d27be678700524448d9f1fdddb516d5228a20fedb2dc6e314c6f9c975", + "0205b84031a7561877e0c9edee42d9a23a215e3a8635ceab48870071e789ea4a30b0aa557b00adc81d4c07d9fce499f6b93b007c9fc1301abf99219273", + "4d03da08e0b52a306e5f8edaf6101145b15277127e08a2538f3b0c7ee824d0382d46fa7f82adf4e05be1ca664dc96b22cbd2c3bfe19d07b7735e7f13db7913e6775191689ca1af3e823c6259b4abb09f7fc4b6be6a96cbe59dc641e2" + }, + { /* i=4673 cDividendBits=3611 cDivisorBits=2067 */ + "013e1daedcd1c00f76a74276e0da401e8ba2915aa3507fc9e3afe3a538738adc9a75507fc1b9ebebcb1600e7a62189885cccf7d28e8b50438b8b8611a00eb5343efc5503a80211238d1a96110bdda51acaae6382178542c22e4dc3f7fbf6be2b956c205f7c917f58e22ee1ec48dea2aab767f45043306d601f02f0f8293229bcb006d2b6048b20b17821f49e5bc18c6be9400ed78937a9b5d9d712dad4514da2ce5855eda1b38c486d2d25f6e7524785bee7cf74077b6808440f593de3c4ae9f45ff23fdbd81b88dfbc1b52dd4046cc0d96fd588ba7742d3aefef9c2372b6c750df74d7b4c4ef508c4639d4feb933cbdc563eb61ef0cc1b48303fff0a3e68713038a2421ab5ff356139d01b594dc94104d365bd12075e98e249640a1a1d806a94e916ddfe56bb7cbae518a572be289465bb4bf591b918bf14bd9e2240b591f55b0495023b17b4f98afe5e60a3b6190f103ba6780bddf9d28af64f054fb4d899eab1af5ebfe283749aee42f9eee3e024a07dcd7d82246a243d431f27ca05ef4cca62a13f5bfbde3da42a6b7698888d7682c020fe61ab78644af4aaabd3cf7fa1038cec7ee618cafddc71dde5cf1d67959426eae23b5cff0b087ca6a636d2a5ea3cb9cefe2", + "047aca7eee3a5324846325941830339d82f5ba1f248cc6499e8d7e3c38a0b6425f13a2c66df88ddb23bd86c995b33299304758dc844a8be424c6452c988ab2630df44955b30eb16d5a88db38a7e2839393882091adc5a315558cdb6ce8f2f4fc9e23eed3e788087b54e078d42fcfeef0a63bc7c7a2dac3ada0812d51a214213b4e412ab2f2b981a50418dbe6693a06964fbf49c2ee9fd47b109e8844b2874d343d95c71d42455399f7359fdbebe7ef6319331b7aaad772ad2d5a2fcc61775cb953f0ab747fc6fe9ccb6baa66871c5161849c1f53d988d15e0b9bcd1266c3ca07006c80e8d98fcd1893b67dee1ab7e9a84ca721661944939474f9ca1381867204bc6f3d", + "4703770bdc58dea260887d427517cb1e8c79e315d1f9c38547ff8242d411ce78537bfc85e7f73a3a640fed2c59176f032d117ccc30e23000fe86469f7bbc4d4c65c587db483fad8bca3bbcc0adf42f680a65d556b2e5c638a31e208047221c549b9798b47822211ba47e3d68b80f1ac433830fa01b4fafa0c5ad08d51c8da8f168cb8db45be5b7e64d3156773dded343bf0eeb15e3b2c1b75381b3e17190f4a12defb9fafeff3201b20ca7c3c2413c45a173f984909e750cbd80fbbfb3061794c8", + "023a3ff76545dc6ede4c7cbe2e07c0e7d6afcd5211ea566a63d2839255bd8cfa0ce885ee7987d71b274c0fc14655d13ff8cfa289b23c84289a722d1642fd907bca73a70e6ea00db52cda85a5238a1576bbe9d68fa58f70a5f592271d70db787d37df5bacfe9a10fb817d46d742316a066a5bb47631a63436090a1d99eb3b32717512166658240cc8083bace295580064d8233e5feb441788ace9962368bf1cc9602c3b8f0d99b30c94742ec4d35de50c64e29ea35d96dbe376add1c2f229057d146610dc7dcd4548bc2dc4c81ed23710975e4af91b7082903fcc9020572078006478131244f9bf34ec1fae4fd0d1d85a501e21fa008fa5d222bbc9165548a2bb9bc43a" + }, + { /* i=4674 cDividendBits=448 cDivisorBits=228 */ + "8e36fae76dc6c7d1b9aa6b3ded2eb8613fd2660e1d7aa1e81b95e34122d7608f82702d2c7e817126f98b4ece2a9a6727ac141c8a00a8be97", + "0a433103f7b8459e2d4fc3220892d1954427dd2bfbaf6c22b60745a25c", + "0ddb95f110c3d2b068f43b9d42d415707622f08e60f253a64951def8", + "02269832b4247903b0bdeaf25a8dbbdf3fe5505ff6cbca5de7f74bad77" + }, + { /* i=4675 cDividendBits=3708 cDivisorBits=2946 */ + "0d2621682aa92559dc6a15c2ce14ca62227db63696d4952deeb711fe519ce290344a6e814272f366aa54582e92b2995d2f0b395933f3af350db09a4b4dc5b6e94e881c982ea98ccf68adda1b40d48fcccff84cab9a93758d53e39a3703d7b480a7454793f2293f1f7a4aab68c863fc33a0503ddd52d8d787c0a8c5f8df249235b7c2a2b404927d92853732301bc6dbe3b97b11017eab8108ffd0117c3ddd193f2c8954c57ea8e77ae9b0895af1b191d67497f15e8889a5ccbaa79c0a7cc8f12e936b600d794b985f280a878bfc41d8ee03c3cd6e982ab5186ce09e8cdbbf5aca1478e97242e11b31949a3f2772ee49976b86e3189160aad12b222701072a49e01eb780ec905ef42bfdf8f4e408931d222428605b5c6426b4914e5f20d7f00ba48bc6adbde7290b94d78a0c71a4cbebf8b92105ac61217b69e6681973ca0cb996e27ec9553a66a714d150838e25141ca93ef0b8579cda9928b73cc0deeb6793be82c87285e4f890c95bde6fe07a2f442aacfc924464bba10d14b7153b473935aad324a432c3f228c1e0d088e3e4239e650c97abaaa1f8684b02448a972ead2a0a591fbc8de7b7b8c62dc7ed3328b174546d3b5d9a0b8e164c2b30e7a0f58bf7be8d943381ce50446e863bbf61af9ffb27", + "029e25e2254f94d30bb1afd524aa34fc9d9a9f38b015a695979e34d30ffba39e77f133c7d7e0095eb6fb488182d96789454fc6dc5e90ca2860a10036d572380088b3c0920053b4b9cd42b743c08ea65b5b0c18226fa8fb878f70e655a2aaa992c7773f6fe26649f9130b963a78db0f60078ebd8207a3816bcc0b8a0fdf5bb67245015a5862b505f3476fe12af6efcb42672f8bf0f4ce95d0dd96675a5ff21dffc5f5dd5e62f783be6d7f9219d32517c7ea4247dee81b9a1ea9027e908940d2c0b82ccef32b049e130d146d2fc6950a7d0fe37198cdd8a3b9c9409686c35825ab5b098198467b6d7bd3cc3fb4523e0939dfc5b208879f9d84fc5515eb6a016faa1b92d938d55ce2859f4f8fbf84d94ef2c1edc098344067bf90e2223707513a5f9e3d05b21bf65847888183d68230b6b5aa8f528fff6df510e1c376221068e86abc8de6ef1f2dbf03e300c771e7fce5711987f145d10562a1a6f06b2068d727e74730cf0bc1e15d4f41ada8234bd28bd7dc", + "0505e118b9adeeb27ce6ecf5ee26e6db50cebf70bad464b3a36a800f1b2c950dce3714eb6229967d3e68fc45a5322d0064b1bccd99009ac47848997574262fcf55ca23860bdd91d6599c0c216a256cde96d6f52b6b197cc989871600a81d3bbf", + "023e6069987f2d1de36399240fe80ab4baae8585014852628dfb2880ac34e62ecdee0330f710477224d5c9708879e100b3501d1fbb6659ffff98a467d55c4e06cfffdbe8da7c4f2272051199688e6aa4399e273dce37385957f5043b8964165b7cc7eb5b8ef4081a990176d79b8a8fcd0fc5e121f8a264c9974f94a82610812edf892a37128c1c7cc3c269dc85f89ce5835de3a289ebef5f1746496a4bfe80c9b18bfc624c1c9c2f8a8d08f3933066c4f2a279e5bf6496d9dccb70f1555d78c867c4a987815829b7f4036ed0fe67be234c9229e6cdb501fa13373ffbcfe4e72a3ace1a9d8449a0e4178fd7d459f50b1a311d09b4f016cccdc3e1e6a2dd0a54cf1c6ab0f34cc1e89e7d7e269c91636b0150fab7e60569e7ffed37013d83fcfb0e76c5eea3b46d5651aa40cf5aed4db2163f68b387d49879877b7fd8049fd80e0ba88cc1c77350b4362038f1358ab1951f7d33dd3c490d627153b693453d58f771f869a886815b7e8e1ade5368c98a9e3a03" + }, + { /* i=4676 cDividendBits=193 cDivisorBits=162 */ + "bfe06f99618c693ab5146377e4a1e38106e052a3fe988978", + "22bec5673f077a63e5a739a50a49e616bc94eaa9", + "0585bba70d", + "19c6b7ded74f3f421730e572ba891a790f815fe3" + }, + { /* i=4677 cDividendBits=1447 cDivisorBits=353 */ + "415398791e7b63aa76febc2cb66d8592967e0da7262355d91564161d4596dc63c66de76c4633eb4f0330ed93912228dd3b625443ebc1b9452ba393c0a7604be61a42e1f9d09402d41a2255b91d87fada87c337f1fd1f4b523ac8070fa3e610545673f36d90fb277175ccedac9984bccb13e1873be5bf8f3e4f29e5dff07435884c9ea54dce74ef68e825ca6a974c86a4650a10b9fe701d4eb28778552615a13d9b4598ef581d7fe3b3fa5f6bae521d2ad59f56402e", + "df6c1b1fe87fe1327a85d97dd3dbd8bc81fb200e97567ae6501ba7a9e0802139f80665d294c3170a925098fb", + "4ada19dd6ab5334828c0ad9a9687c5fad54e3ed24142e731c0d30634ac619ef887eab44ed863745ef528b76f34bbfea393a2ede078e3c8944346605f681f19f765f55153a3bc16d368eab06e05e3dad0b871a948928fc1975fd9ed00be15d55dbf471d9bfe9161454be247cbd91a1850cf9e6e804d427a9f63b52b750818bfffb9c87f6347d5e1949e", + "0f6de94b2db785594bfb39ac6fd5f02924ccb8681e5fe7add1d3dbb12bec44c66b3c29abf052aefc6d8bb944" + }, + { /* i=4678 cDividendBits=1568 cDivisorBits=337 */ + "80ec0d3b8bcfc6ea21b62551cc6377808b26e5402a27185189558d3c8811037a04fd0c0d95ddd135efd490b3f29ebdd68c6e8ea9ce2470854cd6fe16af12a1a15fc9bf87204efca328fed33b397f7bf363f938a21ad2f4dee5c4fd6e04ae35f2011677fa9cbc38ed2f60b4f91406deb37c811cfa7f8651353c003f4861de0ca9645a59a0b70af26db882db1f2b2246a0ef653891df168131b08a3a506e206e804cdd2ac7855832d342bb322b9a7eafc0b896d3316f6e48ceab90b10043235171ec6f0014", + "018d140e1fa61ed68a57dfcd914676c42c7503411a5585552bd055388e0061a41d12002ff4175787548a64", + "531e02c63b11bdca08ec9b317da6514f9ca87d5a95de726735d28e07b3f5b6d7c98094a622775c86a55dba7d33f5c8b0855f1a7643d80fd8af58e8596317860c0ddd0a5bc5d22d60def5808c67a2791ce820a4ba16902c89172ef7df9cb7a97f2f77835324dab739d3727e1e46391087e2be15f2f837209221b32a519a75187ef1e94cc93bbb7e1a7a68a39d529921b8ed1c2fe503586e1b41bc", + "0122f37a77ec1f30b3a242519d0db8eb7caea2feb5795cd41e08332d3705251175244555709c0c82a9faa4" + }, + { /* i=4679 cDividendBits=1189 cDivisorBits=1028 */ + "18cabbcb2bf53901d8da58f924fdcae2fafb14a3619d688464115c7c82642bf2f775cda931c2c88b2a283719dccd00c71f23449a8f3c3f14fe8893978343508918b62d4870754813198ad2ed9cd642cb4f51d6dcb6ab1b31a07c7007eff2649fd343b81f58cbe6de51c5e4c2c773b08dafaff7c390f84d7748fe55c11d2b2c675a3dadc11c1287c0b359120d2d132fd7b190397f39", + "0b68eada7075596f616822c5e42e795a347af5bb21ccc295e89182da2a69a6ae5bedd30149d5c095274a7b00424ff66ad31f6dc250dab5115547f4623c719156feec3d201c72ac4cb47d16714a21a26ad19c47852a2ddf43f33072d5a51e89ce81ff7136101c5e736bfe85c1e3ea011a734147c4c63f1302f4b3e62516ce81578b", + "022c404e5b48efebdcfaba2ab242fe5c821414c2c9", + "0a3f913ee02a54615ec39f33b70837350c9c9189bd248734fef220e3b1a45812fc1e80a43b769949d3948d6641b419c5c1eb5d0171aa1a125cb0c467b91252f06d0edc8549b4617d2ed2ebe30cd9ad10dca420dd624972444e3df365d42abdb751019f660eb70a9034faa5b2e1b9c42d289a21a10d2c60507eb268cac3b5786d16" + }, + { /* i=4680 cDividendBits=1103 cDivisorBits=828 */ + "1d0dcce02f74b072c25ca37c49e2d1e05c99b86db0fecae9285f3405c6f2751113749e52f64a087613ef84cfba4aeaee19850ef33ec8725bd37993b693140cb9d8c3e65a513cf7e8c2cedcfcde4415dd59fd9ee50696fb73870349e243aab055aaeabaa407e901b4c223c8c1bbeb07ea4bb91ced8b8421225c42a35ea4388ff28e9e5d256e7c9f7270c8", + "01e51a982949dabcd406779bc174b052bbc86b69d6530e1848d66886b996bc4ef610750c778fac51fd03324f1bb2352f765a869889d72d10863718e1e8f1a6beeccd5267e51a4d167da7e2c1fd91e2d2bc74e83624ad5b779fd7d68538cff471105334e9248fc5a7", + "0f551749cde61026c8d328482aa2622a392ff148350e0995d32293f6002930ab661d40", + "011b5ba3283e91b365ff6c8358aebd4ab6f662c9b33846fbc4533bf31dc8841fc415d16bb81abbc4103b4dcb54448a0bc5a502fa98e27493dd81504a332f65713635cfdc3275d3f99c6ba61d4521f882d920403b05d314c064913c8b43a7769caf6c626fe4931c08" + }, + { /* i=4681 cDividendBits=3667 cDivisorBits=2881 */ + "077f1b4b4a8efad1954b8459aafb9fbffff66ca563b72fa7e26d02340d4923f49a262f8949cd3635adc3a6eaa0fbc1680a645a2178baccfdfebc5e877d547b77e70d92fb72ddd857283e41145d2dc60df1837b4de673efb15a3ab5519e20336ce273c9f0317b871daa8133747777c6576e315a4c196a12c3f89c53535837b7dba7c5ad5cb4f906b998b000af702a6687c083ab92b74c7fe1a63eb486b18e222fbd096fdc38c7456c54054f2714b3c310c4d64dc07cf7037272b0f6f621490e91040d8d3c5e6ec15ddca7f5f8b149d2c1e63ec75f85029e4e4419a656288a5acba7e205b7879e4a7f7d705b51a82f253e0829fa21e63ffa5be4812c89a8f4ed26aacf2fb2af4f4c93bb0dcd7a5fbe44807ab056817cbf94686e5b50153bf3dff7fd4c9981de720774c46a08486257d19dae4ff2ed04c47f0ec80db40b440a5c04cc043fdfb83479cdeca9252e7d294493368228357b46cdaaab8df3e9666dea187320c127fb3683b3a4c927df3191867e7509d534b0df557d4b8a34dbede051140fd6451e568b9816561f6ce8bed672f152f0071f37adf79bdacfaef72f6fa83c6ee313601fd7073b94096458e8aabeb2a47fd10c80ae3ebe3afa4d7e60f5c315f4145bd7e73e4bdbcc99b7", + "01cd9a3f4b9d0e9eb5618101d5ba7b9e679199714de4a51d831224a7609830a8470c6887ec5c1b52c711f80576fe46721a4b70af66ff6629ecac4e56927ea05a5cb08442d4e0e2603e81693ffb9bbd2b4b6cf138a63acf6e72a47fc5c9df19cbb766c987e00981d7ba73c2bc3053c9dff6425a101dec2f64b40871477cc932bab01eb77d334687d1d6d78ff5eb80294afb504a51c12f5b43195d27c66af7db638d26853b0ad5fd5ce8ab20880be0f971fe96428800a19db660c7ecf0dc5397670109c62695fd29de00ce345c0116cf9ed10cd696c3e45b68924471a09e7952ca49d28d232e583efc4c7b95a1c6b4d137b3e157ef369f731473b8edeca9b653cc6663795dd8982fdecf19a1710c995df33da43d26b4b431d5b96a4529e9eabcb445d92e6c8955e772135a86b5368f8a1691750ff767b80940c73a00d0cfc967a09188fa07886f4cfc1e2b576cce48e234068cd602286fc74d1740bfa666484ecd5a84ca6bba7f6d1a66", + "042851154dfb1004fd993de807b87bda7b3f96caa07c06a30558aab8b45f39e09a352dd6db215b5770a770967fe67183695af525bed987bc69a07df20f4c71243910bc1c7859e11c59a85c4e2a07173eb167bdc4407ac6fc7a9436258b2a9f499a055f", + "7529aabe6f4181669a32a4c3a7e32adef6d083e978d9bf0beb5e4c978e88b4d67b3807c6de2741ddf37dea243cbb5caa868236375e3041e4bc3a155b5ae5202c89ee15f73fe44ff741f89b4ae61af37fcbe24a52c351b315dc993917d79c689c7c6054596ee28bde6ae89fd11f930de997d62c0ea2d926fc0d8b1cc4496a510e167f296945bbdfc45ee964908e58c4fb93f9f4966405b41a16d09e984a883397eb23c57619e7d7895ecfd408731792d5e955ac186416a042a374c628b3ff28fc889b85e867c7eb14fc51c258e1a240e6cadf00bf43c203bfcc6a330ad133bd1b70e2e3ac56ea47080c537d1206cb6dccf46f98310b513d533d164e28877f8df0fa6580c25e2e4814b9ca10844ed7b5b8f2eadb8cd0bee01e99a3ba69bb6a55a12f54182d9adcbca72a48af11bc9fd5f7c1f1cf8c5a8c186590587c75cab9e778a88b4d457152a75568c8be4509378f5de6eacd99fa053aacd520cc114b6b806081adba16796fcfdd" + }, + { /* i=4682 cDividendBits=1487 cDivisorBits=371 */ + "3380c309553dc735fbc776e2401c1c20d4dbd391da8f31a160b1233902c28102041716a17253be72267408fbbd3c445d6ccb94f79e5097d653a21fcc1dea1b26c897e7509ffe0e2cc1dc45a71f0ed239d181177aa05d0c6e6132c12e6b8aac35c0a2066cc32a21eba49ed50aa2034bc2595694dbae5733912c25499e250692f6666f057b20a618f9f39d142647dc2f86e64b18f8ce1476bd1a7d0134a141521f81052c6ba734270c5a1977ea63b12d630eb6a168def589d2df0d", + "71f7bc08214dcd6384b4de6e8086bedbaf249545ccdc9eb7b97f33002dabced6e39db9b214c1d813fe8b0ba0e659", + "73b04632eb9c4610de4caa1699763b96197ec281c5f2d53ef021ddd10b27e3112a85aaa0902f40d50ad875a2584de3f47bfa18aab19d024790e60848514cc0ad24f39659c3d1a82e24bc306960754d7990017b426089902ee1dabb158bcf33aa6fa13ca3c84ef55da6897302ab625e2ee086d6d6e58018b1cdfc24f064470ceb0ae813c08c8fb27f6f708807", + "33e95a95e3dfd270f1de0d426a0f2a03380fc57c22a10439d07f23f42de99cd6876125a17ed77610088e601d4a9e" + }, + { /* i=4683 cDividendBits=2598 cDivisorBits=2038 */ + "28a744fcb60e60b3dfa875a45cf495f7138906af7be415309f710a74b7da825fec46e2e4b1ecb3bb1ca90109bcef168bed8d8b047cd6b214e203a946e9a49e92b33cd219c29e61497a02520a0b198a46a01cd2fee4abe62c0411ae44a2377c2d6782b6e64f0e5d2bbfa2423b26bbccad2768b6669cc14a74fa75741425caa715e55a89329881a6441516e01f38b27680f9cee5ec1923a3a7d12be2bc01e59166a9ce7091231acda2efe9b85c1e14463a846aa69008b7c1d2ed1ab4b6195a978c60df69cf67aaa042216abd27f226bf5ddeef3a65774a5bdf245e8e9467ccb16b856e4c155f9ecb3ad96bafa089bc29b807d41693888721cdcc1ef4fc582cdc8ff1d97244e1fbdfc1043dd961a4b48f6e06ecb4186991c7e7bf186603ce9d9501c884d7531780446935117a067871ec4009a9a44a054e4c1660970b1279914f305a51e36039", + "0232eca880e435a008f5c7ae9a4dd36538c50b947e0f196f84eb3ac378cdb6c3d390b5d0d389b23c4bd021106fa48e490a0687964166597ad3c2a63cc8b8f29d1cfecc1a035484f5d9994d771a5af73c391b702c1716111aab133e599112b7b2e27d17fb3dc39f49650af258e717dd3f1e8c1cf4dbe4448cc5930ff2f084a70e4793ab7c030bf00f8f7b040b79c0db8c53ca58592f04904ad0f44d76d673308d2f0b0599bfbf85f63446bdc434cc6e573ae350f50e8110ca86e05a020196be9b360ce8dcfe66ab2408e1344a6220c31f25e62a5583978fba17ce148ee5124f185a0ec910d9840cca683c7105eb366f87f85b1d4b69ba5598deccf10d194512", + "127ce48645dd9a2f450d98ea29ed5c663c8077edeaff567869067a7a27d31e9c4d15846a25bf049cbc982274a1743e8f9ab7e820e0c911fb5da80115bc593c499e58a8e826550d", + "016d7c67d0c275264de032267bc800c7dd954ac7a28756c24d278075547e155865df0f725841d414f5c1f0ced6127a964064b055c85a1d4242328e18eeca993efff5fa6a50e8c827502f34a36abd0c7971bd4977387a8f33fdb0f95b609b5946904ece48b6f68fde4f31482f8b8ccde0d90c0b69e889f13c61b7a618a8453e2b57ee93ca0bc33e21c86a5d2795e9a452de5506fc245522ca833e518c1b31f08411d95376529dbfc5fb18a712a793174b305ee8ad13b2bc8547da48ef4a4fd45a452b4c55d57294f4142c2392498766a72e23751914bedaac8112d1a491ded85b9508b8425dcf401e1d60fe9f8f76f6ae5a86463c3c7e5de8dc629ab2ffe44f" + }, + { /* i=4684 cDividendBits=552 cDivisorBits=258 */ + "f3cee24ce6c2167f1ff0aa4c4915d3d74bd15ef99a85d32d24026b3a972c292d0c17ae786f2b7ee0ff83167d88c5dd58da1ab101c31a692c668435b76f062bfafe3aab6a81", + "036793e1604602f209af4db9997d5e5be1afb870553f3bf4961a22a74136889d1a", + "479c83c940fb40dc217665b6f798a6b3d2299ce96319f6ca5a2d36fec4eb9f95ebc259da4c", + "031bd598db8060326b6f4bb6b50e7b6bdcf807dc61fe77173f2c76f5c7624aa2c9" + }, + { /* i=4685 cDividendBits=3157 cDivisorBits=1932 */ + "137392d6aa05a58d76fd1b06ed190a662b42924d687abdab365aa1b47b0c3664fd70e179004ed44495b263d37c01d151f76ef0edce4226afadcea8c61561df1ee9a7c7d9d8d110cc9e6a2e0f9c34a57c4d443f67549ebb8ccf82884578c24aef79df9a807f8cdc5b52a5b55773c7f242f9da79339fb6fb0290174d4628e5cbad8e5cb6b7eae58d6c23ac8cb14735703444e8663848ca317eeedba3b67631d8629ba47eb9d1897108b011c99d4df94966914948e2329195e4eb2f088aaa446e07cf3a4f3a42468708a8a16605c1c970427e56fa9205e62df928e4bf8c1a4945fb4652becb54ec1348823f9518ec0bdfdc849f6b20ab936fc13e115929a80aec693ac5aa96909706bb89e348d2c4bc1a97057ab33ded1090a2adeec941f256507b1edccc26cc38ddbdaaa366d44c41bf4830b2ea99a32172ce1959e8c90aa591bed33feda81316999d2d6faa628a1d114e882aa0585654634425cd45f00b982c957632a409885ceb4547310ba0065778c05cc89401ac2643d48b8bce108b44b32b2ec200ce676e8404a8f4", + "024fdb2e4c0355e9aede818bae44692fc6a8ae6c82090fe0110533e41e24da7e37ea5dbd1d9f4e39712b65217fd2a95abc76e71531288fe232cc6c96931f9aa6c128322345934372b4b0c400bf62faef1ac1e774911741616c9e8b9772842680f7266ca5d4aa3794d1b05bac28e56b706a69bcb0330f4b5fe507a5575ca5866e8706eef08b64b7060196da2a9cc9c0ca57827e60cf16ea477a805064c1c86d0c9196ed789252493b15ec885ed9df4c46f5799cb0c56eb1c6035c1b1f2b2d65154f8f6c61174c51368d5c6be8c27e8ec53e5539205d7c063ceb7b6a608603e7dc5cd99396b5cd53a981f00fe47d14c1202efc", + "0869da3659922760eb0e9115a9129ccdc2417f85df922a3be77d29cab9fcb7a8349c8bbd5effb82993d9eedff998b845ad3ec186dfcdbdf81c9d1d41189dffad4ebe3a7b3a44505560fc9927aea65d9b237efed16d5623245f2a3e50da490f456d2f87c00193f02a8ab7e47b9e580b68c2f3b842c620ebaf03e632a09284e208a2acb3c3807cfb3994b2fadb01ecd7edc6895e6c07e76d5293", + "fe852011a17c942819bb49bcbc6a4305762d875d0eb4998892d2c6788aedc4169b39917328d5fb7c446791272acc54e448c6b218392b02e409ea503f7e02ac9e21ff2a9edf97e9a79b4033f6c6216b4e88e1df7f6d3e131cbeaca608208afa57e10c9c57b4b048671d6dcb50da4d35f6e33503073257c363e375c91a3b5fdfdb319fccd848cb40f64f5fbed21f6a9283b5d82d4273336ac670edad2b989334a45c1ec85155469c861352c1512cf028f2db5edc9c9e04da39dd0eff32abaeb788b7e0f21794cdd1f0bacb29043c4949d170c4369e524c0958fc5e07e9d44d7f74c2b9de47de9ea3c8c1bc3410a9ea30f640" + }, + { /* i=4686 cDividendBits=931 cDivisorBits=205 */ + "069423eaae05772189f60942f497e600ed5d68a9fcc4afbd916c640c729ab1dbbe082d7e15ca0f1fa61f5de618dc4e10bcd9df3a3382ccd09a66ab557b890d788c9d3f54391c79ba1e563df50de46f357b500ce05655de5f6be6dd0968a5523833394bdb2e8df21ccbcc0e5dcfad8181d734fcdcb9", + "156843eaf07b0475bbf6f1f27baa5a71a4bbdfc4f2cc91403440", + "4eabde279be4daa596224e3272b226da046fdb931f07ae3034cefaf26706bee53ef296020018435a9cc1333b53f05becc392ff9a510b9ef26d9fc111d20f5534efe3345beb03aa959b87a5b2fc8bae93c5ed1817a814663a5d6e73", + "01453c85cf439ef1846b1de0d8d7a6e4c4060cd167dee371e3f9" + }, + { /* i=4687 cDividendBits=447 cDivisorBits=197 */ + "1fe1af0308c2a31452064c12a33e8f024b492abed6e3a14be92b252edaf9a69c9d94b26022b1a8cbe1f89e940460fa9d360334fe56e2b288", + "0d5cadfd7c43de9652a623ded004310405afc2a990a85d635d", + "0262cfc8e49d7e7f7a347eef4d0cbcc69e431d5edd5d3471217effb6527b34d9", + "08b4e67b5e82ebd07c288e9fdf1f9850e043fd015c1fdb94b3" + }, + { /* i=4688 cDividendBits=2717 cDivisorBits=2462 */ + "0e70ec6b54b1e59e99871c9d45e2e9fe8305257b1ee0df7ceac5ddb32a5abfba5c92b0a8c98782917ef147a272b01b8e3e289a52d05906088d38c4197f4128fe94222817cba3c44cabea8ee5f516f6a1551272f44b191a66a90c8ed1a069c5e322f97338b939fa462ffbbb4f7d35df0a616b291c9e2d4aa35110bd9ec9a0d845fb42ed49fe20d52699dac5c9e97b2a6f230d9e31d383ce3ce2a8922584b28375ab5cf2468fc535386a542a0d9201e106eb66dde893e160428936842f8816c01019b7b13bf4ae975dd3be5592629d79b6ae0147a63a2e5f3bb8318af8a41a9e7154cef5a2094ec2b8cab6a353316e9c2f08d84f8d10dbb8102b6b31ae00e666b5ea0b8f422c1492dcb0fcd68b33baecb039cf9da0adfe4e8c24f7f1d1f41ca3fb5706c6dc497e5c09577f0648952611a0d5a4eddb75c90808b57b9b61a2c3cb2c36d0231a07b2e39215a5a70c4e82de65b87f4275", + "28906a9ac2f31800134af3958499fda4ea8a4b07b4bb72d92b1a15537ad496668cdfbfe7a0d8e89589ec60ce4474dd913dd348905b0a48c24c4d5b21185e66af7ad04bd442667713de3d4ee5a5844c6ea433efe28624977282d5cabd3f82d4b73b15db16fe11964d04172b466d0871ca0682411c253aa9692a5343eaf9eb42a67a28c4ed8266b1e1859f121b12ae46f4173bcf74b56a4dd107a8a7586f1a283771fc4b8a5a709d300635dbe18b39f7831a22083513ad944144e99f6bb0ff9a95d26a5056df8f79a8e67da61c54f12da6882f55d2d80e2bba2e29f13d7bb1e732b7c31c1de5d11188a9a2d3c8c6fbb5db01864faac20778eb9d594f5cc0124a2ae43cf67e585a3566838eaf0336de2824e9057d52b2cf4c3feb8d27c5115d95c9a8a263d537947929f05c3135f80c7870a3933a2b", + "5b234408b997a4285639514ecb73bc526704fdfed636a2325cee12614542c15a", + "03b9baa480998994bb3a1ff106c4f8469e205e3fb81c98cb178cc9ed12b162eab5d5c7e65a726e289a2dcd65c134df077851ce67cea146eccb9a2a23553c41fdfe381ab695024c11d588edc118ae5fe736cd0615b3e2ae0f2f2f662ec1a19b2869659179f3ff8a8cb15ff3321c229705b7b30d229949c455dfab9921a1fb2146ce80b5486c7b978fdb953bcc451c65e077ae4bd146b30677cbd958cce26c29751ddd69a532f5c56ffe92d0b37f168f11b01290115bfd91a17a20db2f4db4f7c996aa8cc28624096f7948a3c760cb69d1985c75b43d9eecf539a70b05464c48012098f7109e3a89fbfde1b795629cfd07b656ed728b02c91519641b6a0ed1e3cb6f55d406108ee52e8e2eac7e439d3956f33c4a83dd01b89f8c62f0e7e4f6204deb4f2a676676bcf633083e086d58b08ca1cc6457" + }, + { /* i=4689 cDividendBits=2663 cDivisorBits=1068 */ + "0a2be370a5ce3e5d49f7940cee2106706d0233e0bc153aa9bd5b5556b7b94fab27ebcae7d0a2fc87bb7f35dd8d835a31996537f6e71d111b454217d6221c7266f8613166981f0965099e8f47dfed84db69b5a4976eafaabdd0d875e2480a072cd51208dbad71296af5ac97ad2e0f9dd35d68cdeed63b69580c3261d6099ade987fbcd88ba69d18ae44f334e06169e36d4a1475b54f8fdf7c66c9f3f14c11fd9428c12de5a49483690242efe0e37e65e346756a27aa0a441eae04f46d2cd13a65bd59527b1cee4a440a82e830fdca587471a7cd2d4a7a107cf2bdf29b2c1e7f4ed1419a838fce834ae6e77fdc834fbc403bc0378177bf841a21a45449d6d211c0c98d2a858e9f869f23184688ea90bbc3ff0a9a8a73658ab512097471f846387084c89432397e670023f4b1e7ec5ae6ce4d2505876906c12b765902133f063e20a94e5704cdc3c9888696f054cd", + "1471c4632505becdc304e24889d423c601f773ef580809e369dac76553467d3b0d822dd65f36bf0fb01ae5306a643ca658b85a867ba1afb1a0d62473bcac03cd0531c9f0710803a6f3cf02388117f8efd59a6124e3e2f2aec0de452e847a9fb522fd601dbf513f0b6cbd6d74c55f43ecef082b116935148c894d013de1f61bf6cae2ac6d75", + "7f5d472ca7ce534f7b5de3bb42b061b598655b509318403dd01f04d71f77ce4485bf32b5b06a2b793828efb6a1edbb517c6a2e3968cbbab5a30890a9c4699e4c32d2deea40e2241fd0b16afe7e018bd2e87313b3ef5905fce67b6a53ce55a0a68c1e42d20bad178b6d4eb90c1c393ab6e71a69796ae43b67975500ad6c10c1604f8afb6cf3aa7bf1ed64ea1bbedeea7cbfcfcf2cce8fd3d7d6d9b922e8fd09af1aeb4274e310b855a4c078891e551ffbdd21e8e402229099317f26173d9209bb02ed8bb520f59a7b", + "13b6712990c04323805983d0ee73be8017b566e91fc29301d99f363af328a7056b667ed87c94b958bdfedb848f6d46fbe23411e0dfa2ccbc84e9dc342935f4f666fa0ac9ecc45e81bdb2b5c689319742ff30d7cadd9a3229881a59e966ade04bea01193b638a32fcb0bb08935fcee2c4dcf708b241d19aaf22e59a691a02ba814393465b96" + }, + { /* i=4690 cDividendBits=1673 cDivisorBits=1164 */ + "01f6f5eafea4828c61c67b1a9b9b797edf7d2bfee1683595c48002ecd2bd66edd15ee00995a566aae599e1d3f68b562772967fa72da6239d9318929d8db4db437a73af1ad678c8ef929af03ff79dacc952d136d4006a3cb41021519403bd7fc734a2d664a463578e715008a7fb3893a93f7ec687a83066c500d95eda212b801090f64fccbcadbbb052f4deccf8c42f2822f8c7900f2c09f6c0a1d857619832a63ddd0aca24221ee8f033b340e903afe234c2c2b1b755c5ec1a42209545add4f54f97aba05eedb9a4ff88526f6dcbf95c56c0", + "0f56260f75c2e9a0f23416ffda26e3c4331e4915e90b894ccb6e0b3d04cdebbf35c360551d0832bb1f2362efab0446952be0cfbbe279402349abd7a29613516812bc90f82f0f973bc4f784ba972d3cf501077677b68fac624303655004e8eec1a3bb4e6e47267df94dfa7611e7dce2fa7dd593aa69232851a93525a61c121ef00dfbbce84fd648500923c2fd71c8a7a8e84c", + "20cb82fc9f206a2297cad577c78b637db920de2bb158aac2ba729c5f2f855ba021c644e9f1767bafeaab5a49c464476dab1549c0484a58a1b3e43bac4410681f", + "02185b3ec95a49258d033f1d9ec01af2d8cccf0cbca762110ef9cd286076afce6698c79e149d810ea8ceac6b6f2c4d14e7b0fac52bf94e9968abe1246473a84c1319ba9676fa07bc6fde3d291830854b6c785e03d9c3688ea1c3285e8487a4fb4b5be45929e93491d26c55b28b8841552a8b0640753ee708c03f047639d0b1bca2dd869236f04bb784cfbbbc331058c9558c" + }, + { /* i=4691 cDividendBits=2069 cDivisorBits=1742 */ + "1a99a0eb13db30ce3a15db46618d908e80a0de851aa9de78b38fcc49284bba54ebd4a7c889a029fc534400c22a18ed64427d5e7e6d06e53bf67ed6ab802b286c851e18ed408828b0eda3507638cc3ea5516a680f17f45541a44467d24c321c92df93216ab5a3916bab07452f6f3c3ae60f81da916d6a8a52d7ce435b856eb0eeedb874fa7ad9036d2f1fdc96cf8338745a8c551016ead5b8db7b09eea3902f5228bd2a063635fb0f9e5a076443ae723f08c8652d1373faaf8070437f07434523098bc30712d7648ea83c5cca4ec2a4626d08f0ac45b6c79488a50e07fecea9c43196fb75ebe7522bb11228f3cf18421d6763cab4d8e611eb03645ab56f71809aa1a9fe", + "21b6f5befbbacca368e2a619269ee05f433118d872b3b0d2808cf78a665c31bd01a6140c00cc6fce843743d8a604689c3e6ba3e1089082416ba897a1c68a2f2f7cc505a08b1e01548d9df62550907ddcb8602a8f7eb9f37dcd37aa965a6ec18d3cc47e3887efd2ba1c2248e1a54207006105fe87e490349242e4e8a2e5329438c57f8d7ca773f8be739c2eeae26ef3827a2464b1bf6c3771dfe87730ec08c08cdf351a980fc2fe6582a24a92480f99a26b77368786b0133284ac85fe3af76e7fd87cfb922d1e114d31cf1197161d4f3d249fb45dc6c647b90913", + "c9fa64f812b77427daba534c0d26c364b7766ff6ecdae5115bc533247923a0bdf26088d9d66450c401", + "0c4d0a6045e1d163375e34b59ad34c2503c7b3920d804ddec4f62771db0aba11d9b03688126515f39faab5152c3fd59e2845a2813c77d40a251ea04f4712c1602f88ac3765a72df357207a80b9c71fc0d69fdacab4fd8d515cbc3dcc5c181d819ff7ac2e393e1f9b898fc43cac3e90d6c159ce219a18e75c95bdf51163355ef10ccdd2eeb07959f87a5dd1cfe63ada0465f42296597d37832db8525000531ae7a658a0b593a4cf84734cabe62d8b8016daf75bbd54c773f37ee132d393d062e88e1e55b4b4d18266b574c2ed5fde11c3a579e3707990660614eb" + }, + { /* i=4692 cDividendBits=3277 cDivisorBits=2993 */ + "0778079f1dbc80f70acb505f1a8b199f7602e4ec109a5ee9e59734967a41d275b706c24b676022eb1a4becd5f314a7422cf0e82c3cfbea68bb33082e93dbad08f89181f4ebe7892677929ae3f825abf1cffb1c063255d6799c526d9e8086e6173f9e0f904b2e8d2e3aacc28873449b4859445b0b67ebf9bc54fdd77b6162a4ff5d036fa54dbc8997152de8efcc25877104e61a72be05c268c649a712aea620e04629128f679c14d3fc54f4ba90ac1fb6564b0381d8ef4bc70dd001b7e38631a9e6f4918eb74a663729b70ab04ffbc006db309bd8f45bcad442d742fc43c166e1d44e32497a7e98f7df4835d903fced5dd52162bafa4d4fe2fd39194c6a350e557b70c59bb0bb170f77b7cedd7af030799d9c43c8f8b2fb2e63661ec02c10b4c0663b66db71658a4f8ce1d6a507dfedeb97e1f130162064be6fed7dfee70e35157a07ed79eeda18c85bd1cda4296a7f1f4cf463a4439f25ad4b8015f301b13a3458fee11b934da9378099c1c71f78eb3eeba857db4ce0da60515079b1f58de9a92d03131638da0d7943b405c6b06376007a895e01c18fabf5e5b7", + "01b6f1aa4e31b419b05269857c61826691a6cc0031ae759690f5c8fd2304b8397ad5cb843e92bfd9fd5622c49a412c3a8d0fdbb386f59d5198de945ff8b075f82a19e5aa3d0e70a07a1a32bda4bf853d46fde282bd943d4bfe0854287b86bfbd7bae8b74695db5ac4299ad039c5a136f33f086703451aa47cea0eae75fce09a3c15c12268a8fd377c94bcd410cd0b2d4ce3e7c56515e3420381cda1a1b2c277e5d4762915dce2ad6a96d462968097807852059d3cb6c4487a37e22f8e53be12507474d2e98c77f4fa2e3fb95c433720ff48ef086b8f2d76b5c0259a03784c70c56219a80e6e5a1eca2bff69f5386ffd9e9eedeadd1828b06c803af037fdaba54411484c17014fc4f8e37128b383b36a84bfe4903927b4bcbe9f63123d0ab32b886100e7a261b321977aa1f4fe77ffe0bbf7d41aa23a9689b4c00c35cb9c596233766eab0b4e0d3832ba3713eb733616263d8a8c5a47c1931f212e01b9b0efd76dcb4e94dff4655523e84d501eb41e226828f7d41cc37df", + "045b2146b03534dc992ccfd88ff51c2db7d0247b7f8aebbb400275b2e90175ef7bd36e8b", + "e8a4701c24329f4beeab3439eeb7d9d8fdedffbb764179dddd7376bf4b3e0200dfa65d95c797fabe3ea711c4ce6d1d8d9f05b8044f6062acd84f538efac9766f13d4a4d386fe77ad54f025e8adcdf9a7c56058e9bda0c7df9510e0f34c86f77eb27c62b18337a70988478f606c7bf7fdc930030609ddf80dbe030e25eaad94f382c6edcbe94c8f20d3e8b804e673524c999b0d77deba3a112a26ee70989820e8f5fd6e34de1721e089e251c6f518a225f783451f5d28b69b2ad729fcaebff1ac47788ba616bf2173f3c9a43351d5114426059fafedf6158447e9fcf845e4657fcbd836b97f7bebabf71fb523d99be69fdc9c7ecb383161f2c8b6697f32e252ef4be82391bd6c7a90947d9a7a23915b650fb9328ee0db0c2e8075af405946b990d8691fb72c4a512324201d10f8ecfe07e8cacd8bca8a720ecb7c628322937d8b34f640764b2b0fa0976bc8fc28cce7f2315995a7e0b7785f74b7ae76f6cb0948eb2ccaa7357b1e2078e2e9eff5edf68b97ec0044bda2" + }, + { /* i=4693 cDividendBits=2656 cDivisorBits=1670 */ + "0fac69fcd0695450236ff3afcf5f3e648bb44b65325b605ea792c3cc07b8e120903a4eb7cc89746c247dad7cce87579883680377773266694c7c42156978d13bdeab27bd9dce4ccbf00734b2ca49efb1553df2864f7a131b96e14c8fdc54fc275c673878d395be5a65b4518ad9486f3a3644e80647021c6d6792f10ba23cb00e158cbc52f2e2cd05dd7b8abe685f08f2f3f2eefff22d974bf370a25919d7c0304661432e8c9a63cdc6b698ed44bd0b918c43df1cd1e4f08381bf3e4f67a16b4b423a364c3a73cf5d766a3ee400523bb3e0e8c84b49d9b8630be16fc0ef32035f6e47f76bfd44433f0dc27184bd2ce5b0634f901946382eb14305404c09772d6b8c358e5296e4a95b0191e16234a474129f5db7dfc51ac34609c02d43a026613825267d0f59b3386e0c3f041e4f96018a2cabbbf6b03295144adb72d96abe86b851677237f133ffc71e8f34c4", + "1901cb3d5e36b0db403d6f4d1419b311f4d86c78cb77205851231170cc16674c424ab57741438a2015dd16a3f97ca8e9b77c2dfcedb1df8608e08d35b2fbe1a5add192ae2320baa6baa43468a5d174b3ac55c31040b3ee44286d7ada93abee48041d67ecab5e5a8d0513473d0683698ad8e1b3ac7985708ecfb1b6b2269d75560cae4edf2fb67bf80f74889f04d119c5257841104c82f9964a071f9de95fb54b4a257b83ade1e8349416eaeea6063312f3c7b70014a8be4e097451a2a4a08ce69dfdd630a1b153e3981df50d101d6c0579", + "a0739b29b45aac06a95ac6948b35d9187f273786025fbe9660ea136ea1c649e4e776f09ee8befc267a739f7acae9d834169320ae5e2f4ab29b5bdf09d36d566b5eabcc35c9b812110a24cea61359b5c98f15a90d1ff8c7bd0da4f7c2ef9a5b57d0bd41d7b27fe28d2f50f82b67068f35736782be55e3ad8d3a8fbe", + "0e8e31bc6306525518f7af7264f0d585f060ab2de6d78e84906056d6f849f928ebd0974fed9602646b40a25695df85bfd9f6c7751ec4e5e43ced898887659ea2921dc764008d18172ac3a92761d613b03d8ca4e1466ec0b0b7f0d432a70ed7c859d165fc4a0a0938275bc2c7f38f3c87e138036b89ee5017b16a8899b1d9276dfd79de6c1031b5795d7e12978f75111fd6b09ef5574d80cc70671e56dd7a840af17cfd1f07fd562a5f59d15cee62771a3489df49f1829b17128f819a03a8cc6ed41be2a19bc1434784b32626200eea8df6" + }, + { /* i=4694 cDividendBits=794 cDivisorBits=503 */ + "01072d5a3f2def38e8c8e675672d98176a2cac76343974b290d1ca7beeea8da8cac25d565e29ca983343e1b5cb4583bad847e23f78b86d256d0ee7fce59213b6b3fde6c545ee42011e02dab563f9a48e56a0939d2714aaca21fe7602a97ed43a31ddd148", + "730f2265f32cb6530bfeaf59ea46b6016460b722f674ec1dc027742a828d51a67010bfd511a84a957cd265f1cedbd2d36ef1e88a3a330ebeb1fe00875f6bb9", + "02498de166425d39b054502f5f18571e7313edeb594c3151e0d29c3f9d30261f54a7b72c8f", + "4f43ec9ecfb99c4259ae141fe6d14e4c836ad3bc334cb2cb31fa1c19b01b78a150675c30f20e3e7fea70965a1ffa7c74e11c38f761fdadfae9167a7ccdd8f1" + }, + { /* i=4695 cDividendBits=1067 cDivisorBits=22 */ + "06423db4d42617719ef59d33f519d231c033826efab2aedbecbe7c44bcdd8704254c5e393b2071fcde3726351475d8598d44fdaa7be4d49b2b58a7f329f256df8b5dc36c190346c2134fa410c2b1f138a9e3490f9bdb721703e01dba4c46045a97ee2d8855da1888e209e03d0b6a965e7359d012742a9ffaa9173770ab7df7e7859d1c0756f2", + "15a336", + "4a0c934200bf4ef3c434085d5442d9ab57a5517ca064cd5469deb865c51f1415f4cd9a7fdcf15208ea799651eebd95adcf9436f68a0b588af620139d5ccfdad3bba60d8b89dc366d57e2f41214b623230242949db7e894d1aa7dfa8897d5adfcd254728d3a1c1cf9f12bd4d2c6ed4cf8849de261a1884aaf0ac844e253927a0b2dbe7b", + "01d800" + }, + { /* i=4696 cDividendBits=645 cDivisorBits=221 */ + "0a237d071d95ccdbfa82694bca5505a8cb2c8683c7e79eafeb827399db275d59508ad282ab3e3ec0451a01371d8cfd031e4ae0fe0d3463775cc34e781df93451d8eb0a8e17c97bf4646f0274ac2a99aac8", + "15ab3076744cbe2977f9daca2f083f2336aa338ce2bd83dfcb2b9ddf", + "77c7cde3f633e017f886f2b11616e1fb8b3d28186ad272b653e12fd7acb81cfefca6d03a73310839719de977e4399e8459fd203ff7", + "06c852900e8c8069c4ee84cc8c2ebe830a724c6628bdc5bf48ca779f" + }, + { /* i=4697 cDividendBits=3583 cDivisorBits=364 */ + "03e4885b5bf7dea0ec25d0e6a6d689c6486be5dcea68dc34eb3204ac966b35c19d7b6e65f340f2e93932552526ace5527059ed42df6d00ba44e610027e1fec02811dcbb5c196403fbedb87bc9db4d42409c2c1cb54ced0a0bdaf50f6a59c3c4e0c0852ddc0630cd590a9dd52354ce3595d5926f25a33cbfdc328595114d6a55a98a13ae84b2c774562ff8ed86cb5b58b45f064aa72cfee00f2baf9c7e2c0c9c1446ed6ebd93b0567b9d53b99800e06c1debc7e59032501a0daeec83e27d26623d9df9369ed9b55d017e7f0ae7f0517aeb97856fb0c3a0c5aa5edc36535575debbe3ecfa51f2a20e18b0c00f04f2577bfd4fff8f887637c9916c3783a08371973948884cf6c1c9cf3fa456a81b3fd167202c88d6a69fc7360828d9d5c0035799af7506fadd2ea7dc97fc0ed4b92de73bcf1808e4be4cccdc641ed354d0965220a6b77d9693b41d437ce832aa779e29523b5cab370efc9901ebaac5196e5a829f6395e7bd6fa242c7e946e93af466b42d0def5b3bf9677e4467b8638801c3fa4240182c3e69ece9ef252366b6f82058a8ed7e402440110bf60b31085e9f7107d09fd89b48448c6daa059e18821130aedd04f0e61882b35091c33ea66e18fe4f7ad", + "0ec90e9eb29f0063c5e92498628bb6e8425dec4377ea7d66d2b68fd0ae9410b48dadba7b299f486525e5e5d7ffd0", + "43665de06399eb9a8b2aca771ff36cd1c13aba8d4ac9af14ab3d5da425ee3257d3ed3d925eac4a3c527b1fce7642020695886e26fba4a133e0248fda1c82f71126a588032afa704083fdbcba6b64c6c57de17e59758fef8b84dac1d8d77c905e1e4c1e7a2b4684fd9f58390f3ce6d062fa22587c233e9973f23a7203a524669290400b5806fa690f5b7cf72ecfc65722b796e07d7b98b5c68e5b42fc2788fd00560ed0dedffadeeacfd800797a82b3c524eb98b5ecb5b7e0518daf7b11a872c1833484a0142403966c8e41cbfd34a6d06d633bb08d3e7f42b58c909465ccd3423850f0f6a8cac9f268c7d03e2ed6a5ebeb6d44b26bfd019ca00a50b1d798b6f17cd9166b6987816f31845f88fbc3f1d365c09e12b2952c5b984bc16d7724901a679f99376ff4625ce29e3eb100e443dc2047a09035931c8670af1b41b0bd10b8e69e3dad1c197ba381d0646e26b0fb7dee58946ad86209396f005af1f9c06a017d7603383036bff4bdad3a5c4e8f57d48c4696fb84a5cbeb08604bcc83d620905f36e1ab6e99e421ac3a3e4c13459ccfc868", + "029757d826393d21fee6a12ea15a58fab0189385bbbcf0451d82535eb54cd621ea4d1920fabbbb4e8950d71a8b2d" + }, + { /* i=4698 cDividendBits=2365 cDivisorBits=1230 */ + "050a22e8cb3ea8c7806223236b752c3337606f288eda3014606b2f3126fe88954414aa2b53c4e0e09f2a4d03e7fc3ea8eaa5ede5a006cb6dc3000427bba97447d06f00fe0677bedcee3ed49c8c5919eba166653c0565b738caa45368cd144df7d05f883a08a37087f792e71b62425d3b14e0bb9b6868b3da0c8d7c3d94e44adeaf6912294c575607957640be9eab5297666020621b05ce8fc95e8977d7a5d5b97157fc45ef791d9b9671467fe9698c9b5c07837832a16c79eed0d0931e88210d0ef5cc8b678af79b8d3384df50a9bc429f973e1a0db47ef9babb8f46ffc5557c8c79fa3a2fce048fae93e683e9d579072a5ffcc08dbe65dd8a4157e8f8b591c85a5cc2f7cffd277a1ecbff602d39e886018d5f613b1b10983bf7e94d69a7734b12bdc7834f8b7524", + "1355448ebedba00665adf7b339080172f6e4b4e6ed94605558ca8a9fe9b9f361ab17aed3811151018e38e7529e0074c1daae3a7d628ddfcac402cc238a127132932f733e02aabd3312e1fe24971f3fe04c6b1af037b9e2f52ec02e26a0549335843c7f00fa2e8bb788d3c99c7c1425664f25a4547fe2f66714cd0842e130670655eb2e682292f8c553ce47a08724cf6450e2ec8a101053a7b540", + "42bb694169ea48f14c948eb22b15170cf0d18e549af1a823383c7b4269e8f76738e77ca24846580d79525464b3139c82cd12bf216a31151b93a1af69212b0248e187c58a4eeaea59cc6215a278e86a5ec8a4e8bfea96383eef7afb395cbc023d64a2aa4cbac7050519c5f9b58e61270ca8cc7c3f1213d4289d715f147c0914ff1c6c38923ab17983ed15003cc904", + "0ff592e1fb6889b31e5db82fd83765c45ecb2577638b6dbaff4921cf039cec310023d6cd5225ab14f4db9c2f2058da09fd4a0a49711713f06f22f9397af7b49020e13945e2d23f2b62e63a22912ef3c2f8533ff0cfd819aa79b202400d7697e148469213de38024221afd8adfffde9aa1a6c1385bcb4a17a28ec6007c4530f52fac58e5ae9d295657eaf22a79c0116c8402516d6fc04d89d6024" + }, + { /* i=4699 cDividendBits=1843 cDivisorBits=1682 */ + "042626dd9e4462306321904f871e3b604614f4a851b33b2dfca6b83600870adf1e27c8968f4d17d3cf1b2d16701311fb8b29f2f909332332d5051d46da275fdcf80582b3999f852b6cde40d6a4d0c1bed7bf1d7ffd04e50a7d935498cc78224bfc8b26a6a0a6881c630d65e538454ac93559732ca1ba7124962271b872adadea9b52a09a09c2fbbca097270ca9898c410e3a6b7a4d7971a35e0abb818c6cea0056d9b5489709934d5d5ad6abfce38524eef94ee1a5516177945a9aa514ec34430fab956df7e1d938c95bad9fe17507bf995730491f0706e15e89f54f45eeefb2e235c9cde7ccdc", + "338b660d88c3d2ccaa4df2aafbe06b4457e5f950a5fbfc05d06df7275da3be620c987cf66fdf57fd585356833fa4028d80e54c6e4240fd85ce0fb91e3f16f3bcc6bb84b4622e3240020cbbfc070ee94f3eca36b1c33629c582375392b48fa36cb51cb9d1d6c7630e08f9bbf6ac7c27da02438581f619dffe6967b730db74931bd11be0f81e7e5f9b0088a55eb74bce69025311fe04aa140c0c008b56f35b6b78b38bff24ec600d108c237c1c6c54413cfbd2b12cba49147ef1bdd4fa3d60557e999c1b7cfc33434e6718cc0a86da49a9e784", + "149b43016dee50c0988f9323c26cbc70a31966ca6d", + "01761153bc7e8a41fb5d4887c629cb4a2cb615306a537813057b762cae4bf0360941090fc4ca2efbf44c8a228d19a038880bf3de4bc6e42a7dcefcb3ef96a6ac9f5cb137daeabc64a6172aec511ef1c0457dba3643e7f760e1b3c7b88ee995a15a871a18c8be12773a57ea0c81d351210d58d72df9efb9f6ed203596b82d7c0c501c4cb88bae630e1b18f3482423cb68239ff3bdfd8dabb7659d031eef3af98b3314397fde70215fa26741a120bc3a9056fbec799380231f4126b8474e67138f5bd51129c048ea728352866b725e3d4a11a8" + }, + { /* i=4700 cDividendBits=3939 cDivisorBits=2639 */ + "04dedcc3ac66938e9d3b39678f835b4134aa5b5cc1a301cff8b5ec8345e9497e3d95188091075f1ea410b4b9c21db8d98e3fefdb891eba3143152d9e2ddbea998cd7a955eee026f272371002d66ca32fe252e69c3fa095056d75ba5d47a0441a56f93efb15b6d80213f1ea07f463ded0ed2c9c04d937ce7a4d7b8398ebcb8cba8ecc3be611b0fda28e6d63ee3566b4f78f7c0d6eadb81f998ae847ebd1d6e63e38bfc9ef607eaaabc62af0898418c6ff111981b138b0be81affeaed320bec6ab38b7805f81809e9e4ecd0c15294c93c00c222a714172bfb3837ae1f59f78f3bbb3d240fe21d0efda6b230c4d3a1cc42e6aebd30ff6a16f7d98dd8dcc0760e8155550c211a91a96e62a4edb58053b93f586dfb19e691f70dd7d70f122963f2f10159e95675b7daa31644f11a56a050a027ce41f9154b7d90054dd589060d071f9bede86b3c57f73b2030b0647323e47ccd2faa326088a7a9e5b9d6ecce7bdd74224f98024bf6778aaf2e64ae624f70a64e5422d782e1c4709e8bd1e704d438e3c9c1884051b9aee58da440c9f176348b61dca4675ef07d56f2cb7aeb4aa8d2964b17b3fd8277924f27b4a99be7fafc566d81c9b44f8ce5cf364073034c5d2adea1eda2cc5c50371ec54449b79882fcbe8b5f373601a76edc142ce6ef4b29c512829766e69b501417a6923b916f7", + "2442b032bd0c885e0df23126e30185910a54f8b4b58b962550fbf4c8c176b2318a24a3413b388ead8e6a1c57ecf1f728551d5f02e484c8d05ccd87f5c3cbb64f43197b4a389762432736c3268d1659a6f3565249773ce7493dd3295947e986ad3d0e033fe50698f75fa6c68c616efab2ef11de157ce3caa2b3164227f84ae48ca2c5a889a9ae3fc612eb6c412dae0bbdfab7edd5cb8a0dec33816e73608d76e31df7ef7089f8b4f695dffea5ef3a240e5ca1607195108c934694117a6dcbecf8cd3cf652d051b379fa70c564cba49ad808c3c6c2890c8eda36815260e4052656122db119a29d54093e819a18a63e9b9b3057c19f1906607db08c2988660c277fee4140b9dc3a3253b103ed52d4c24fd1df6efbdca54ad82e4576220a4f72b7a55760fad68fb2a3521ed86c685ce0c55bd37ec5268cb12daadd1e698e8e5663b5ebc4bbd30d3f2189ab0c", + "2262e0bf8cc732aa9c8f6b836835ec784a3d473195c1bdf5d04f595f940dae55e5fd1cf0b93846a031815950a94607450e4307dd32ccc9051b439157996fc7ccc36f8332baf8e7f921a4884e34e6032ad0f3a302cec1123db4b0fe838444989fbed2901cd6dffd70962fec08b1efab40268c6dc4701c84b99ee9bbc98da942e565a82afd4e777945657a6a1b17f0fb552fad16c409b86e22b8b06790e5be0e943d9576", + "0709fb2b6f4e345724f77acf9aaa962f4ae379f52799398999035e067e99f1b51b9d6192f45ea340b5e5942039aaec1a9bd9178219db44fcf838df2b785f427551f304cc7c5f4b5db95eadd5e68f77c6dffe6ec0955e7ad137e88d562b697c115d600e2b7d44583a143db8a95afe3db7d3959141125bcb55f239407345e7a7f8980f409b4f230ed215ff46c08dee8020e0ee865adcdbdfadfbc5cef4db092132d147daf6003a89314db68fa7e54083b3895d7985bf90b72b79d24edfbf6d733255ad7d11c3631bd09d1b39bdc186cf11a1d15d6d13aa0e8fdda9d6081cd2a8f38e44b0846dc2ac1277f739a9f30b270255c165a3b7c1e0c80faf01826761fa779005668a366cec35d142e1832da29eb1c3386204c9aa4db5f4dfe5fa1651490de2569b7fff9fe34997141aa16a62f94cf307797dd47a438abd1af39873f8c19160392b9ec971dbda436f" + }, + { /* i=4701 cDividendBits=1258 cDivisorBits=1001 */ + "02ef2af5f32eccc166c8a6513224d20f2f17cdf85863e5a32a6f8ee4886470486b34bc0df5ed164b123912386b4612dd0f752e50a2c3e8973a002f3252f0109b3aaa098ae1f0c49f3f2e020534e9093feeab336c5c1aa375983b351417819f623e44e2c983d944e1c05179b02c177bf481e0f5697d787cd791190a0e7fe27605ecd433fc5fcb692372d2de815c61f681d6040c3e877a5c531a770bb055f5", + "01bf2ef99bb7b373cdd6b460b6dcd67cc37287c1e23ac5e2198f369de23c293b08caefd1880b569ae81ee7745e35cb9233e63708f23822bf49cd6ea9e7c7e16d38f095df836dcb6e8caefe499aa2caf38af7dfc2428fe9b5086a71670a540de7199966e92e1287008d29a1fd4907d17a095261ec3d7413c5261a86005200", + "01ae05c1ef7c519cb60561a0dc0d99f426e923ebe7e46c4a1520e245be75aedb60", + "01626dd1036bd54fb773999d0c57a7cb4378c53b08337c1baf1d6f9d5210b53aa3357fd019d509cdd161e15d909e79d2d8ab67d00d00c42fb9a722e5cc8e537b5bd7f854d8ea8983937655be7f461fcc09c78e9e5fb262254084af40a7c09da55408b570d7a1f83398f1588dff4e2ee4be54f7aa264957300a30c96b95f5" + }, + { /* i=4702 cDividendBits=693 cDivisorBits=220 */ + "13f5ed4966c5b3d73044ec12872f59fee20a7263111d788fb8cb1aa20005ab6b114798edfbe5a4600893eb09efb26159f09b9b79ba388d67fa3cbbfd0dc39711383c3ffccac750c2775258515a973c403ad46518cb6393", + "0124f12b066651e146cbd05c55d5e8ec448293ea825103ddf3d4feb7", + "1171876ed0b7c5375f2466b021fe02569b7f40f656a7ebb245ece3136f499fd41e8af2bb68c6dc18fb9c727309aea87c661716305e4f7f0c8778b961", + "5b1596d8a1dfb932c74f15822b13342e540940934ba058e23ca13c" + }, + { /* i=4703 cDividendBits=3650 cDivisorBits=2667 */ + "03f59ea6505debbce6003f62ff591bc36e19c9684e33ab3dff6407b09dfc92522ada26b834f2766241ac42b7bdebc2fecd6125c4d8e17eb5ee7bf8d81dd7a29060c93b7f8725189e53d231dd3bc82cd18155481858138909edf863a6129882f931a6b559e38b6577862671aa03248febdf3096f6dffa2bdf15ecf81762586bb86438e986fe1a4384c12f8036e63edc2902a107b64d2a769f2dbadd8d965f4b3d0b1021a3a935b88c20f298e739ecf7fbab8d1655b03cd188f36232c119796c9dc224994ae2a82506457534d6b959c2b871cbfbb0c283b2731760391371539da6fcfcdfea0eebede8c81eb5bef356ebbd9c7ad6780bf990517683ddd55e32ddcf57f29b889655bbbfc4fe5d493200670e7ac78b0b9b163c40d2745be5c8465c53ce786d3064cadc47900cab23b1cca995b883235ec8af666f95f52999c7e82ee205bb06e78b2ffd3c888b97d44868d79938c4ecc15b0e2a054761372d09cc9ab55649f9773e9535b126d043da8bbd4806e89e10751ad4c8a2e8d84f1b681d2ff2a05dd8b618cbd856754f5893e03822b7d8ec4980bb79c963cc5e9b6fd1fb040e26eb3ecd958d8de43ca783943d69c25368c1869dcf4d64eaaa45be678ba33f4564a638e334cdabb213", + "02fe497bb38fe4a13d06643b40dc67a66956f6b559986a7eb6dd8ac1c785fd07f62be0d7c299d983461eaeb48d475209a305ea0d0907f9348207db05dc20b778cf36953eaf39f8d99ffc253ff135a38618ca1cd8bb1ba5ca46ae91efc480ce102a3d47fceb0f4fe64572fd230e5cc4e0bed12d3b75ae0074be4dae749408ceb3c6761a3c654fa95fd17145fce7da9e1822dc3d3cb3e50a206114b9366082fbdc921a9106a93409bff35fdcee824882f8488e28e5c488253e73d442a892dbc3834330dbd4359af3db2f4b4caf83aa59116d1b80c5b208b009274be93e46c060200e0d554814531b07048450f0224796c1a53075eb7d7ae8d5efc4d7e2996880df32b973bd95df4d1d8f6409db43a72d928028d57cda9591f68f92ab2fa5a6fcfb83efe80df23fdf18fbefa39436cb61242a07569e30ba310a52e1c765cfc5bc8912628d9a3602b9f321b38bcaff83", + "0152a0e6de7b39796185ab3f5e4d6fb5042cc024cc17019f0653a02a1aa4baf8a71e15ceabd48e6f33f29fba53e0a4ebc1c674df2dce4d36136453432c95b62e9f7de247d57627b5f2d0a81c3ff2112ad539e89b8238532a397f122a80549a70756a781566d6b35f2b2691b318c5ada978372d43eef7ba61484ba69b", + "a3e803b7437b10989f1efbae09d8c23a99c0fa1e2034e4811847f0b19d3659ee29235b7272dd35fcf81ab631f75fff72925a784cb1504baa17233d5ad050bfa7b67f6b24f3b1816920a52f58b7199226d1347615ed64bf395c6ac6a63dad6bf0e5c4625b4197245bc92b89ae6ec924757f3d915f7c125e95421578a438eef638df4da80be47238a48128884fbfaa040f1554c09ca6b4e1f7870d9e567d5dbf39ba04fdc00342dfbca47f08791251c8b773733c8972bc97893e5c0e6bc6366b6954cfaae5bbab2ec5dcbf72a0b268278ff7af8828c9049e03c099bcc772108a7b50a8543ddeb22584c6be73b89730b105b0e0672506abe2e26a3641c238c9ca0b89ef9ed2091dca57178cdd11ec7a284fb9d01c4ac7cfdf331db16bf918ab8b751b74f44082dea4c23e7f1a438ac80f24a610565ead2b7e7d0f25c5f7ef9bcdd73432c3382a424903e0d4b30bc2" + }, + { /* i=4704 cDividendBits=1080 cDivisorBits=834 */ + "9ca5c611a6282536ef444b76d55673adbb99056a42c3b0b0a1af735b9665981aa6787ea7dd9aab79439cb87cec8e47442c5ab09e3322cbebd244ac1480f597bbc8d0c7ab273dbc18798c3aca29376194ca36e00025ec7cea5feeaeb141be40ad2b3d112f3f13311ac80e42e480f268535406b40d3ed6f26fbb1b229ae07139ffc26a97447feac6", + "03042c8da0404d840f437e8aafac0dce7d5399332b3ed881ad8ba6558bb063555cee99bc29b90f8539a61d84448c705f63f740ef2a712e1317878e46f92c91d455c184c1b3c051a350fc7dbbd776248c215bf83838b01006013d52b9b30909d1a12544e9f74158d042", + "33ef00160c3c7991509d85b39b7dce92017b913e493d1a988fe55a639dbef1", + "02bd49ff94f6205f2d18006f5a7b34fe4ff34dfc5b75dfbdf151e3e57ea219743ea379017c08c9bfb3b7a56264b8587ad005229946bc107c4b64a80af4d5b668cb2752a1c5176767b19c19b018a7c6558feb53d66a41ef4f8180e9fe8f82e971c5b8f1f91d96d8e0a4" + }, + { /* i=4705 cDividendBits=1356 cDivisorBits=1011 */ + "0e4521ce97fa828f7aaa4c0a3e8605e40cf85a1c7ecc2255596a5d6289b3370b40279dc5655ec8272f8dc28a38fe29f6fda016a893a2a3ce0bae4f7beec61e4702fab26c6babc870c7832bc2a9278300ef6690c16fbea8709d50bcf953a06f7c58ac1f4f8f3a94796861e88060f5efe10eb47b251d8d7f463ed8a546941c13e6c80f7800361e8dd4e6a82de805d8a03eee1dc104a8db82072838ddd247e2017e022d984ae76758b0804a", + "07e82e3ac1cfa2550a3b39017b90f820b6793fdebc803460f3bfe87527160b0b404c029dbfe9f89a790211a252e68375b6a02b04d46306e9795fa4dae0df7733efb542ba7325c43c402482a99544e538da99ef9ae6e7b2fbe88c51138df4f6c3a1e6dec38aea48f2aa11596563839fa560cfc22e7c56fe6a21cf3459a26998", + "01ce03d78219a2c617d9240ddd47541d247b8b96d9e645a1ff9372d41184c471cbbfefb65bbb4a001da47f36", + "059a7248040c61b081b8c13ac34dd4fbe686d50c189f3e8f7c2530ae1ac08e704ebad59cd06a4768ffc26351835eeea2b963f03e9709d11cc687559b1ab6d73550441cd02dd91be2fa2893c65609c21073217068117c8f61f1ee300a8c015feeefaf842013f63ff34e1b692767f4e85c6d576b8fa64e95a71f77e300abd23a" + }, + { /* i=4706 cDividendBits=649 cDivisorBits=307 */ + "01a358e6b500cbb3f14dd9ecc17f79bc776cf11c394d6e3525272677f9f64cee7c284fbcc27fa7b912468e2afa455f8ed83b6f1c436533f5082a7110d3edac425f96d1f435a106850b56f3125ae354d5f6ab", + "0169ac8f3b1dfe98140368f64295ff1aabe0be09c3d98222630fea15184d1a2f76c3554cfa45e5", + "0128d27dab3836cfaadbf1f8be82e45dc1e81dfbed339a9fd6ca219e955d2024196b637adf5df35405b7b41b", + "014f666377d8d9a3de35f05d3ef8d12138900530e370a27a1f643b77a8587f72108e5acd989384" + }, + { /* i=4707 cDividendBits=2545 cDivisorBits=1003 */ + "8d1c0f0c210330748f60011e5ccb448e94daa4c026c0bdd792068a958ac1aced5fbc99c9308463ddc9dfd06328d0a886627233cfd32bf02968566b4ea38975156ea25a0b893fca472f952b83b30ea0574b2927f953cc056f3ea7affef7f0e6b57557db4f052fb9ceb092ea8debc579efe84f9089d406bf77d9b7faa60744ffda9663c1684917d8ea6ab219bbcd94bf48129e889fc4a170bf006a2fe985e2cf89c586a3d7d5363b8384fc91d73e28fac7102b425d61db3cf849613758d994d681c261d3b93005687318a3ff6e2cb59fd164f57b31a1c7f9d943fe3e6a1ec3a46a82c77e35160d242b3096a6c2776c0db063184ecbbc783e05774fa78ffd739a86764ef60442c531b28e0b65fa86f43a1247f1762624adcad191b00cec91116a72e55c9897920e842191e49ba01755e11608443560d524518681e849bea3f6", + "04412bd016eb093923676732e4d7c894cea05870527f67321df7d28c9977f4ccbd794a377590902f2327c30289531f33c663ba3bd533f572c70ecb33dee050900d05d41e187ef1166a3a4cbdc362abee2b25a8db03d66e5616bd5654feb25839e0d806bd9a23ab1d69dcf07a993382ab3fdce2afd9e00bc06a28a467cbea", + "212aa398cf2d18c3507baaba4b765bae8e03f2c79af60068a779385576b09e523fc958e107eea0f8f16e35baa5b07ccf5355e610ad8f738d46ac36ede9893060ba997c3f9b3a323a3c3c2a5dfca6bc2c4807122caf1b78ca97df3f6912483b7ff7ca9feaf37ebf058bb56259bfde3271019daa16ebbe34f0d4898bb3060528a10b2ef306b52d02dfbef3fbf801c57675fb5977fc613f53e4656a5c48c7543b9a8ee8dcf9d974b228a5c96861d9eb8cc35b4019c7594c28f61fcfe1b8cb07d206f7", + "02eedf8b5f41a6f93ae17291e6a032a13a03aeb41a9564a23b30900c5b28078ebcc8a7e69a0479446d3657e6bca7187900fe52b733fa9ca2b0be8c9ca20860ead5ebef100afb882c91d868283eb27852d123060dcc72832775dd5856ea0a826fd1994a9076a9a43ea25630f47f4e54968e8cc0e0181cdf048a908edd6930" + }, + { /* i=4708 cDividendBits=3245 cDivisorBits=1148 */ + "23100ccb40199b18f55a0faa4e423694a1ffc79a6375d82de3b2d5c042d6524f7d1b07a9e60adac8233cfbbb2d9e63f89345725a0f1a8858937f574c232b258a0637c7477e2fff6e551f6894e7f1ac069dcf1f535a35708c36dbe7ce2d4095562fd54d3f09094df8ad2286d79a590a657bd02098eaaf3832bc3c270da6c55d3e6236bf71e7b3610488ad03fa993488677f0cc29249eb162ec299429abd30106f887fe9bbdea20b4133d57ed8cba72d022de182524858ce12593181ee7173a30bd6448d8ae7eb84867ae50db9187021426a28a8396557e364bdf71474d47fa9263c9dea75e800fb60809eae5c506f31fa8612e04968d22148931fb52c52791c135611de05cae76f796ba45f316af38422e18f1bb3e9c48880a0317bb67d6d15c4b0933eccfdc73784b0c48f1626fa228b3dcaf0c7ca0f9edc8900c8a8db12b6e50baaea3637ad8f21c87f246bbfa4fe469d2ee6f2cb071258ffe1802e9c6fb780106b35f881d4c0d8cd89a704dcd444945af654a9529a1e0f205148bc88f7f12b002f97f3691ebb26bb887cc9823d91dd5025ccd738", + "0ee59b23fe674dcb93015546a65a967ff2928b9f020bcbc9dbe23cb911e77705dadaeb10ff8fdc4d630d352886e9c568131e9b849ef6ca3b2182612071c53477578404232089d99a40187923ea1cf9415d37cb048c28f92c9565126aca7f8cdad5ec89981e397f16001c0d36aab6168fd6bf5c55456aada46266cb76db186b57d16fdd5806cf3868654cfc30a8e3dde0", + "025a8b7d7cc2ed9f753f80110a7ad642768fd2747526a87286cdfd9b5d8155c76e41cc50b206fde2f706ff110ad633bd08a83539205fad9c78c9db4807eda06bac5fae6ab15d81cd3d74b4f60dd2060bfd399093bdc1725edb71e4ccb8fc1ed9ead29bcd5b57bf749b21f1bd0e22ef067746a9dbbe6c802c73c83d44341158af3f01b80eaf075fc6ecc948e8e30da7058c7bf035a0dfde17a160f25bef8db9a270b0bf61dc443ac4beb024cc8c59f2c80b5a1bb3b0a297d2e176762dae3b46be281b47864f522cceee50024d4e84ae6b690798d9d5b2f7805719e8abd4676bf4bdd182e4cbd907cf22e617e4793e9ca02d3973db9dfeaa5d4cad4422bed76184e70fb6ca94a8", + "04136bfc34be502fad600b96ff03d3ad309110626c0e89aaf39042b37ec1de17a1198142c33458a94acb2de4101302f0d3d45b0b2522f7ea67902e82e70991513a785efe3459de6ed9f5f9b74241e8291cdd2347953d05c1eeaa4c2236bd09f0d86a7f34aa89ef83b2823a3d8b731748b80ffed8baa803bda264e431bae3b414fa6b16d9bb8b0d75e0b9d813413dbc38" + }, + { /* i=4709 cDividendBits=1670 cDivisorBits=428 */ + "1403340806d947757fe9f75aa0cf48398524b6e0e686a27f80d35681c99557003276bfd367b12cd9bd01a8f33742fb990e2cee6550450059ff9a62b3535a92e5c303cb5bc4c4b6ae956802c2b2708191aacfcc37f96b10b03080dcb9e5e5cad5a8b07db291dfb000d9b285357a866031c6d012ee7a994bf9a289296eb2995309a76e336a94d63c1b0454ed683ee35e904b44ac2208a5dd1d09298f96ca069e99872d99b6cb6b8be6aa5c9eea2f859e48163cd3ea4471a9ee1d13861b1bfd384598baeae705885eaa306a1c2853bd9174da", + "042a6bd0c1a5d556b67e226da7548732a4d13d8ba5736d0f44e7ed8304cc421cd36b6a047dfcba18f068b533514967f5913dd25e75c3", + "04cdda12f82da3c6fdbaf3bb5c97808cdf3dcee1760ff80d96aec00396e9b77cedb721787818cbd6b473aa46ddf755eafe0876bcac36a7a594b92da5e1102f01c4a3c921b53436e253f6729d870c18dadcbd7e37d98a18eb312440678a34124dd6ccf93251754eebcb33a6448c52bcddc80a55463207d8b3527b4f78f3d3bcd2c742c7c6bf4fb7d39c09a324575628dc5bb8be57134a32ed8ab7256d", + "028014bba5b0133018b2eed50524c7242ac11aa3b5762ec730c400042ad8442bea1516c456118a27a73ef367a66fca25f91137ef21d3" + }, + { /* i=4710 cDividendBits=3632 cDivisorBits=1551 */ + "03d842b0239b3b6554afb83f75ae8d9b7c153c8277c4c090a2b33f251ff4752b76e46156ddea4f4f3ec8d93d97b7fe43083857c85640861f956da18bb4d85ecfbdb676a17003502844db2fe78f73a2085f5cb767527a183321c3f60cd9d530de94517c586ddd990fd411a9338e3cdc1d8e8885444ab26bf47fb76d905a388d4f14d6b0837d2f6adcd5d687426d3b1a9b8e64b6d0a5ece0c4270b6e15ec0a5354f2b628dc6e363dde4e004ff356191708523a5bd0edbc4944bb2fc9470fdb6d10e5125ae51b17332cdb573585f4d7d9edb05435b043dd66a18190478da6a8ce481378fd677383e8e13ae34135ab5a8b19c875dadb70398dc9e55fa40acc9802e8fedb1634eceb561223eeeb757d87c2556a289615f32612766b5dec285bf4654f54afaa6d572491e1f9e8bb89690cbb7c143775b2b0da3ab572313f861a9bbdf1d9039325913abdf70fa9e892317dc7e7af0f8aadd4cb6c5958e9bac2ad575c91d1162bcd31f5accb34436dac136a071c4328c73a13b52f572e76376451ddf85b8ffc5a92bba26bacd6f6955b66e904e7b5e697195a444d0e04832c4c318c5e0e03d79fe245a463c6dc22fa6b0238b307032239c044d21feb47190a516f21a4c73acbc0d1bb97", + "7c228e77750ba29755323ad0db50459caad6f9021ed3353bba946c6ead1b9697f68e9f1b893d0bd3d0514bf785b1e59e28d54fde359a1e8fbd37bd5c92aa133dacebfe72385b9731c75d0c42a2868c5436fef630a90aaf6c8cf6ec3dd1339a1c4c0d30834d93b88bcd109ca0cb8e70c2cea5664e4a53b114f35a0eb7d5a431923cbcaa2d4767a0346508581a3007f65c5481446b103f4264fc5a37481b46f93c22fd15805e952e9d52a04abfb28e552966c29527803c23b41db8186ae890cf004c87", + "07edcfe0dd72665bcac232b53960d2fdf0298a7aff9c46fab77689075ec4fc6976aa835750d61f2509b40c3afc77fec196d969f2bcc76ce303892222b103c6089a404e9ad472b7097b4be06d37b25015bdf33ec307f41e32c2c9d61f718c57415fe0056b38e200fb3c7c40f4488e1778108e0a8245d1ed102d3e16379a032dea62c73cebc458b8729f969870f92e7609b935930fb1888c3ce12b514fcb8d638d4e70c6b9ce7cabcf1e80f50248ff3ef2f8698a9b064be6e10a1704f64eed52520d6fc798c83238ac58e77d563c6115fda0d1ff74dc468ef42c8d7b28acec97ed7e5a2accab3e2def6df135e1250826b5df5295becd906ec7338b15eff6d3177c6ebabe6e", + "508a0eb0903ad0e984a2be6efad27f3eca01429c6cd69e9c58cc5161184a35101e4198256412624451106613ef8a618fd302bac4e0c324d44f72e8d346333f461f2e246b02ca8082d98d8dfe77168effb57b42ddcbd997b113d82daae46b9240ea6899ae9187482d1d4f753314e2cf5d69cbaa358b7cee8a4d2e34bc9815e4bf3670ed5e29f92650c8b8b6a5c469e2c6ee6975133a3cab380b537d6b187998b5800fe7fa47da2b3b35cc18e2c32cd205def2f2d176a353d045bd83c91972f9cea795" + }, + { /* i=4711 cDividendBits=2032 cDivisorBits=1207 */ + "2862c36929b5c3d866f563ae10ded7c68510aef1635ddf113eba892b45bd82ece06dde01c671de0a800d19363026a595f3cbc0660061ce66a89389da7bb2d24064f0876cd383203f79eecd515f9c11950db466f6e61c3dc6a012c368e1d0c2c570b40c023add366dce0364db7c5a2731fd5421c4d85955ad19501453e67fded812726f325a1ed54139fe3f1ecc0322b1413610859c33cd43e448eb7c7ad60e7bad0bbd0dd7e9edee79bc28b7a2bff7c2bf2d224108cc4280022078972bf34adaf9328b7130cf5a92d390820f5515cb0ba1230c1e583436ff4135f3500a4fe63bfb704ca57d3acaa25b1b379133503dd0580a0a3e3698ea69c96687ec91e2", + "189fdcacbb53cef18feaa8d8f5dc3e5db177c0c6e22841d8d5a6ce4976899e1e0c258398a7257173ede1c64500aa6e01bdded6b52ff827a98be2691e0d0bd36fa0024505bde52d6b6a8d9728073ddac1713e40fbfabd9fb358a5232be60f6512f7d3c5fa6648bc6de125f1d7bb2664f6820f6b8139c23bf1d0e7195c20c7da6353711fcf1cfe1bdbd0a5da840100e6276e6c496f467fc2", + "01a3db81a785a95f7ae8a7b6463b1751b7a6fb6f8f29fac983fdbb03b4fccc8139e4ab7d022624ae37290911c93ba42d9143356d978ee7d89eecbc5655d66aed1d5f795b9e8f9bb1adfaab5fb423e68e6336cbdde67e1393db3fd4c21f9173d74d56071f828b0898", + "0c765adebdcc3196ba870303ffc22fa16b4c75b7cf112780638db90753ecddb530e842a33a50a478cbeb9760cca5f5ce09eec9a793c9f34e8e5bd9e3ab270e412a41a5ce19bc604ec67d335083467b52e42645326670e59765de6ff77b79a5b4663e1912ec1fdf013a97891fa711f3d4f70de2a712da6d0608e0cf0634527240283ad8a84c43359753067a07acd9ca4ae233ac5fbca6b2" + }, + { /* i=4712 cDividendBits=2331 cDivisorBits=441 */ + "028cb0f246a4ffd591170a3ddf460b5374385a4d56e29ee49670eb19c0051e3d21d64df8ba44a72b4e0be76b1c5d25576349fdd84ffbe85a1fe6cf5a1842f3f4946a47a4d399acdc52499e855ad05e3a231b89a7b3caf5abc9eb42f67667d8d641c9561ceaaae90a6f5f2654945bcb9a95ef391d79b02cb351e0d3586cd7925add61447b2bd1bb572366957840d29cddf99bd58b201861a192189cdfbe9b1001f967b7fe4bb3f229ecbc15e8416501a33b9fe567bb4123ccf520e20f186460b4701e4f8194f7209046e778a5ec8aa7201e82cc56b3edd823c8114009f4de17c5542973abe28eeb1650bb2fe3e179aa4bae2d80d708ea47b6359aba2e5519bd8df7501378aeb7391ba01157fe6b01909cd9be04c9e0cce0398cf11f9fccfb20f9c131c995", + "1f0bc8bdd79f368d1ae3217b6693a7c887b00984979936bd0d27d103b259069f444cf01ca8f8c9c6240a7918318f904171076b6f9f665d", + "1505f96dd637b0133cb3e1f23b77cc7795d64a8f8e9be00486dda5d38a55f3fe9e70cd88d9943edac50db64deec7d3f0f19e79680676584a2600c23589259de7d400c0533d46ce85267e1454cb78964b3a9a9e4005ce3bb2eb07df71e7ff73fff3ef288b1084785dd7f8b7b709bab24cd11d6fd996100b3d478ee7252aef40a1e56fb7d8248f450cdda047c47caa86a0c1958bb0dddc681c928f2964dfd9e4d74b2f413f789ce069335378765398be874f414bba60fe6337cc5350924a806a77a6850d3d1db10cf0b39289bfb19e042bf3580760a6a551a96d3f4f80f6b1e70f3af5c02e1bcc68162efcbbd228", + "1d150af19c2599245369c2207afa9531d5c41df8b9b03290af4d9506c008356979eea1e7e8b702b99f9995f423d9803aa801b63c62810d" + }, + { /* i=4713 cDividendBits=2483 cDivisorBits=194 */ + "0272c7878e86ee0fa7c9375a56e7cbeaa8ab4300518a28cd78f00703ff6eec070acfcc2859fd2f9d7dfea31256b64f075a116c0819897054d521fc3083504324d9f4a9080aef5fc3b0505b3557dc3747daf0fd7040585b495e423c170ed3bc52e00b2fe181862aab3b9b472a0a99982ce9bf38e32a9d417ec282864b1e157acfbad4e1fef5db0f4577d9cb1c6d072c2c92a7d4941b331c3592cf40a08b4b36606ec93151aa4403fb0de946a4d2335a0b1913f782b132fdf707b84aab2b04797e8fc35310f6e25d8055fe7d17e68890fbcecc6cc9c27ed9cbff48920d0ae5aecedb424a22e4e43b0c34b7819403b2c3905c72ace17a36d153aa929bef6c00d296357cef9d1365ca6b49ba075190da02ea6d7096ba5f185f0734b5526a1f0e8252913ad8c167b7b24b425a106b127dbf7194ebf3cf86ea79", + "028ed2a49383ca4ce681c5b87a54a92ddd0f5ed28e40de0a1d", + "f5095bbbec3a3e1f475b7d9c6d60f62528f20c16e8f76cae083dd77fd7fa9e01b4ad2bc5070fef234b28b1a3bc81a3de891da524d5a357677c5f38ba1e304026950aa1d1b287e52b9ed08241b3b5e8b6f4e3c92a9ef883d4a287e251c48bf72b2001e3cbc46715d82c37cceefd03c76dfb86d4532bd7504df6e7af24c342db1a1e9fc9896bacc104ef8629acb4f2db81bbbb43f05a0c7b480c42216882e3d502d26d1d8e3369b0637d3186172ae6f6e03a62c8d82b152d0b6acfbeb0165cf85f664fe630cdf6a5860c98d598c1c1210423e5dde90753bf25c9d81486d773fbf994272aaf2d9de5d757ad87cd7876792e142ab832a76989fc35541c07ccfe842c5122f863cacbb25ce7e336e9040e84ba748bf3445dd9717607af8ada7ef3", + "1150646ef98d5743f8f29ed4c3021bb0526867a3b5170af2" + }, + { /* i=4714 cDividendBits=1039 cDivisorBits=398 */ + "0f473b09956024207df00f3d3f799b58e71452873f1798df2c01b5aa458cd212369a9c2bc6eadda3b8e4648608e76f20d0b64affdba1b88fcba82f5440ce4ec11d6dd2a6ddf91978f21829cfde1c041af09b933324097e69a4c00310641098e6319935a2445593598f84118277a56b040cdfc5dabe4f91b34246e8f0fd164af3d567", + "2c3a046a7900d715ef13a80a56daadbe0a393542bef74867b866e1c086de78460aa66cd4824a95c2bbced22845b377afa815", + "586fa42dbca0e243cf53c70f4de018bddd25449f51ce2302fb573a28a3d04e04defac73bcda3af78993504237291a3a0deeb8aac5b18eaffab774634db9a3f89b8c07e4c809a70104ff07405b430d2c9", + "12a992180373a2a71cc00caa0ed469f02a708138b17405e3e5a925ba171a268390b682be7d47957ea2569f0f4b77f237a2ea" + }, + { /* i=4715 cDividendBits=1979 cDivisorBits=49 */ + "0239282bb64bd3dab65aa828b0bb7c04b515c284f069601651181029218a24288aa3d037ac48f78a95da09ef516abbea7ccd261137063fafc45bd5c770d087e3da6fff6915f9d878c0b2b3c468ffdd2c487eb09c623b244e732dbd60437281d72c1025a938c841c5eefb319e94bcb425286692e82b7ab0b78c3f69e05f4ad724442db83b1a1732fd6e5d4afd6edaeba7b7e2d2e8344d4a4558b96a30c47d908165378edcd36f9b52882d73f603a80241cae8579e33c00cded8b3fc1a66d28646fd032798bbd3c5c6df779e0c1475005998ad7f3cab70b168803e03d29316166d70c66681773a81b94852bfbf96c8d897e338022c314bed92", + "6cc8987548c1", + "053b651a393ce17105f0d43534abf621e115e2326a5cb9af1bd37e38de069137db2a3f6ea3da74ec5667d2c936d717390be72c2bbf14e40ed58bed083c52921f03a4296c56119e0db24c5144fecb686a38964336fce6923ca13c46d5acaf0ac0fe35a051ed3be64c20f4d7cf6d001d0ac648f8dc24b7cfde1a172c67dd69f9f6ef03522c8d3f523326bd2387d96c76df049582f5c43a8e8d72962a8d9a50430953a635d94ea08ce4b30966395efc339a5b220fe29bc300c61251a2d31b174c402d75d3771f4158b31d67daf814ffa0f7f59ca9f0af23b340f69734c377f84e4ece82d8b63fb67c4c035c087a8b23c55a1e44", + "036adac3fc4e" + }, + { /* i=4716 cDividendBits=1475 cDivisorBits=533 */ + "02fc23bc0908147e9068a32814b427c7fb3d732c9a29b1907af7fe940dfda38d8f8ce1f55eb6ba9c8c4b5cda99337cdb51bf935ea7557e9044a88022fa84028c77d0d0bfd60166c4f73b45dc729592def040ae48535c4abeaa7ceca5390b5eaa754c50ea22af926ffa7d0e220ea41b272e4dd9da2481a6579394b827c61f49fee4e27acebb45a1021c4fd7ff8525ff4c0c66a23618664601cfcf5ad65b84b80d0bce8e8064ca49bb676c61f66cd929f1ccbc5d74ec5273a915", + "164e1eec8d1185bc7ade158444d101a06e6b3507cf9072a12c38f7d3c7f6ab472b2ac06dd597c035a6548454a8c62fccd5547c213557a1eff9a83516ea98c007bdc5ba", + "224228050aee5891f07884b437739caea8c621c38463d747ef6bce1f29f1561433baa5d01da5079e46004103f6b20fa2063aac63cc108f75e7537f4a85e5b2a5f9ae09d31b2c6497e9149d40b8c055059350ca7a830b5c0dd44f5cb7973a703e619e91c5b5fb805190aad14fba64584774a24090b8b7", + "0a5f382383802057f5b92a61fd8aef4f07b2ac4218e046851ecc74a062d7eff1f408051e309d72236f0c3f08ec4b0e24e8dbf8eb149702056d91f224a70a34ab0da11f" + }, + { /* i=4717 cDividendBits=2048 cDivisorBits=1166 */ + "69f3d60e0296d66b81bad469924137128c6e8e15b4339348a7db58d9fd4a066c6c261ccf28c06b4eb816deec7ad6814baacd6885c79dd624a18f42a315eb6e4e9014aa3707402993603d0de2d659eed55a9eecfcb329d6e65f5fba31e18448b8cb8ab16bfe0a44309140b3c9da4974b44ded763434543481f3b59453f7734cdd4a95eacd1edf371673d9478852abbb030ef58de96ba61cb671064d555cf63eed2239c4570cc37af3f2a25a036531df362e40e93ef231b8eec194c941d46ed52f6c01e197c20f06da79190d85cd575816a0fa72129362d560536d465447cf9c328cd19c1759e06810c5c86d303126ffa179405779575f2304899bc0b3483b0879", + "08ee0dfb51fc6ed83458151d1544bdb7adc230df57a05edf8a717e467ef99b342166fb5a0f8f20b3c984698afb48c442a9aea94478b1225f0f5784361c5da6f2b7dce76de3e89f4ea5eb5a638c994b1b90d95d468efbfded89e15a5c94598e22cd587e003e33060a8c9184da2614339af43e10c369075249469f32bf9f9b515d144556967304028fe51cffc17487bc7fefe8", + "0bdd6ada569010e3529f9f614a75966ca56e2407551eb7e1c753795659275c69111c4003c6f72fb1ac5c4bf4a7e860ef81318b9fd0012c7422e570b6bb837cbf440fc6341b815c2cda1653625ef3fcdc7cf0d25d0c165e778b6bc2b5499e6bdc5a7dacb5b78f5e19d72d8023b1df48", + "05e8b9697a5388ae384675951c0e45191d10a89a4c851a290fc77b113fa3d149e87e92d26576a5a7c67b554ee5359df3979e09a5ffe8366117b228dbc58eed3c8bff30628159b9a5a0e18f4e5cc38590f906ae77a5b75bdb9afda57d70b6062d98413a3e3793f1affc1cd8a25a06877c634299a9fc2e1d988e30e3e4c2c34cd0ddbb16fa6ee7afdb8b5215162f113adc7739" + }, + { /* i=4718 cDividendBits=2107 cDivisorBits=43 */ + "01f1a0a269869714a1d3df0265d0f9f8259594fb8f5484dd365ebec3fa89b8da9b520d17b44bcc6ba86dd688985ebed81b0436f65229409f560cac532001e5b38bcc5f0b02f7eb005e1a5f11aa40114068fbb17e044613120cfc0ca9cfe52eb955e2b2bbcea92cbcda39289ae05fd16d225a9969625083b5835d33ff1fda613fa7c53495e44dc8107a9fdb79241dc13c5fee3f59d1711e6c396a8926c81c6a2197a9a8cff21f1b68da6c5495c7009b9eb5f711a0f866eba78e24496633d08f21b3d5b880c01715eb9d440e85605e05e78f37b7265f42da28fb5d02b315c0992f9447a3498d84c137f8da75d6298a63cc21fb2e73b4235cac48c09f32356d78a38c7e594c62981ca6", + "017f55eccdcd", + "014c539c91e9c2eb683acc66803391a56f3e4d4acc0b626218752ac3983caf72e134fd9745dbab078b4d6133bb338848ddeb40061abfe4a7e8382776debc59977820f02d0eb856c5038a027f00f4bd6e924e8a8fa449b1e83e5b6a88867e6e5e517706d1ea06cdfd1db2d6070080bbf8abc9a96549d6e246e1f05630f7253b5de95d7015078d3de727dfd05bf8352045b2f4c379c0d6c4b7cfa0d7a40f39e87a9e754925bc0e4b3366430f26af863ce8bd7bdfb20ecae28c471f0fe3ee64b7980b0f83eea4648c860764428c1a43e3b49102f0ff4816e262a2549a32138ad78e8bf74872801324d27264b31738791a6a36404019dcf38d159216dfb2db953502e57e06", + "01251f5f63d8" + }, + { /* i=4719 cDividendBits=930 cDivisorBits=468 */ + "d5861cac93d054a6cfc6ef096424411bd339b689febc36d086ad7f44aac4065b54a175ee3b6526227232a9dc008111375c1c5de46761930e16a7562490289451fcf26bb78a3e33f6b08aa44ea77ed20b394a89cf314d187aed1d65539709e4ec75c63c3de8e13be35c48df55997823c5f5a870ed", + "08e7e4cc19bbd66bd0581035c42aed269a2bcc66a2dba3c0216e67732fc04d6f2822e9d270fdd2695b6c1549d5aba1ca1fcfb504142aaefbb358cc", + "17f9c94e4665aa39f4b2c3acf93ab9f0e1397c2552bb52ac103a5476fa2cec74900d822c817f4ceeecc46920c24eab3e0883bd9274c63588a40c", + "085be508c68e9580ad4e1cabbe60d22bddd88870f077ae089f5051f28d2c1d52bb1ea439f0c9fe705d2b73bc8cf9bcb034c21064d113e1dbfd975d" + }, + { /* i=4720 cDividendBits=548 cDivisorBits=384 */ + "024a1fd10cbf91c88d1cc1652c3b25b1703422fcb5ac4206d72a3ed949709b3b250ed1f8bc17e7e9f3f5ee24f0b2a0543544158ee35148d6b5e2c706804f6ef5d2ad6b973f", + "5b1c44660f5f3731031d287b273440ac3e9fe964f48ded2395d9a4dced2ccb2a7027a4913ea9b6c5cddfad92d804fade", + "066ee0f8c2b8bc8d1b1816b831f5fea7df513c2d34", + "368e12bf93d18057b3769fcb5bafdb070213bcf2649a43aa81822b29c05fe87ceae9623399d36f6f3d775618e2479c27" + }, + { /* i=4721 cDividendBits=2780 cDivisorBits=1601 */ + "06d6af179178f9e477561db37122079f9ed94daefc52f9431eb7974251b29337f4904439ea134cf06fabbf92563148df8a6be219fb60d52d3d6016483f77daf949540716d69d27110ac11bf1fd7a781657240348a0a9af539cab570594a90abccfda89644fd8bf4679bfd825517bd9c9434118b1f2dc8e1d4aaefcfa3437b8b63cac086101acb811b4f03d3e2b37a3dddfeb5e25486131afae653696435d3bcd04720d5d1acb97971e4890f0b607f2eb7f10cc8e8650b20c270fd0591829d4b228f5609bb53e91645e168652f2e57e0a48780b839817adea594fbb5dba90be5369bfb2b58b09e550a7dc693412d3f6c39985180b05967f6f6d4c33b828a8d1d3f917e7b05152a3f3b1bd21f1654136742f385091734f7c37f0dcf477f191f05a61e54574a42905615f9b8fde2e5e129b1a9acf4c705e46d8cf9579c3723b57fd987c5ed09a49168f11e3de9b247c177ef3115f51330079afea514746", + "016b7894023aec505529a224fd3f3750d17feef07536d37b738d6864af75626128cda0be07c298c22483146cc4b36e5fb3f7d74c9ff781ce021718e3dd1deada67575fa7b7af1fe360263996906310e93a42417b5da3be09ae9129bb4fa8011b2a3b16cec9be6047862e64064981ae13769fd15338d6aa1adae74d8dab86ad3b37e7088e1943feb557f554290f4916b8deb99b5197f88c1d0665d928ec9e8d00bfca2a1dfad4aceac0a676cbf87ee8e2d7ec3446e81656d22557314af1a6be4aed1704fd6814f35130", + "04d10acda7335a2fc17f9b9829fd19c0ddb520df5c90ddca182886d84afed6f8f1ed1883cc47b6d6a11c39d462f0808a1992ae3bebd162981d0059f4d511c61ff82f34524cf59d4910408a58ba3e0cc9e7374b9e9fedb876ef43cd98680d945e1d76ed2ff8713c26442ceed09da0d610864b7554b7b16ba83d0ed97f7d3510bfc1574bb0980c1a4f9c89d01bd5d54f1a6c1b7ba9", + "8a7db3182d474f945bdbd6d53f04e6c22375d40cb060628ee820c74eb97935044de4f7ceb868789460032035d4516c13192b44e8c90b7e0ec481b16acc67399a6bb7817f7e2b69a73b39d730e4cbba68aeca5fca9eb186da84ffa6a834aa3df6c5c25b95047aab90af002f6b53a01d8e71ad8a0473af13c63ab0dea5a2d88631c1ecffcb13e06ba6dc4441d84e111603029cf95efa59e99d272a64b43c8856d6db32fc01f2cec779aa334845c71559c88cffd5abae1ff5ebc7c4dc7f98ad2a36446f431f5d9e9e96" + }, + { /* i=4722 cDividendBits=1532 cDivisorBits=174 */ + "09bce3e1f4e0e8b3f5f3d00c3236dca52c3b7fdc9b46953a364ff0d93652874bdeb4eac9464750233b9e7597aaa520b1ca76dac984ea3acfc19e77daa71d1332a72df2d7fb5f4e7e6327cc2c811cc558530037739bacba3d976b2f16001be8bdd87413303bc7c4db95fb04c308dd57725085d7ca3406767a485b17f25c2b16ab625f7d3af0f11e4dcc91d3748417cff304e1be26c0a71227ee246c3ccea56303ce5ee4d2cec65efb4555ac1f3c1957d4d952500736e4e93a928950dfa4bb2568", + "35c9f4e85e84f56b1223fac67b05c947fbb36c44cc03", + "2e58876b283e332f096db33e5fb993c80b722a83e4e565f6de2b4118711600b617a50e8896c00ee035cc3d8d37e96a014a77a2e36ea0505c186484ea5921aab86aab01a5ef5e5d67e21b543b94448ba76d09f87101786e3c4b312e1d3d32aab3be8e91bb4d61fe858ca50f2f57fbd9fb2067f7b4967f74efcd478ce5ff9dbe88af1718c9afff7a96b6c894dadf37ce45b1d4350b50588fab4981f35961751e838aa1f670a22d841bf222", + "08b5915810e0f7ebb961ee9892bb06c89fb82a6c3702" + }, + { /* i=4723 cDividendBits=620 cDivisorBits=590 */ + "0221f69488dc8c8997d47fad31c63c3096fc00c6c641c4393b874e84ae562391e4c1f6540a8d24b4d82d3d74d473c8c69eacf57dc4689ba57cf621f76101aa79085a2e0e638fed342ed00729eab8", + "068c98cda8936233c9c0d87bceb0c46425a1f25d1db6c9d61150a652014f15d218336c7263116a2bf68ea3a3a1d91f4e46bb39606c15cf0a3e7414a8a11f9feb8cf6cc13070a00d7ecb6", + "535cfe86", + "041825d30a39aee64f887d1bf768cf3d1aeb92df610be4613d349ad9c85cb7b44acea2db4cfb317f6326375cd8e6c97419c8fdf88c3184396ae8622079c6160a39c77464436545df6f74" + }, + { /* i=4724 cDividendBits=2264 cDivisorBits=1662 */ + "80be8b45e3f9d4548a51fdc7a91839b43fdd57adfc6bceb03ade1ee46646c59b7e254a8c9b7b8753364a404e676c2b3cef0ac9e3c2c4782b4d4d7ed3998c9c954f5397ce328426a2b489646ca3d15209f6c9554b9ed001d016b5a84afef8861559c6a5b3c5604c80546a18ae5737be4cc8f746e2e2f8396022cf8c624be79fac5e91f5ea24504eca63f9517ffe340e8ae85d29c49ef83996240912715806e248eac5e22598a548d4c0820be21343d1f572a58f1789b372b82e022c1327964d53722d312a516d1984bf43fbe0413c0be0e5f577e352ff910cb8e1ae33bd20dd6fb9db374005520d92bd461e0c2f7edef67f8c8b0c9da8d2aff2392d8d5268a5bfc7563af4db7115bca542ab55c426b42f608319e818a4c94238fc93", + "12fa5584b8bcb24506be3737f143a9bcd5b90593440e2bf82676ab92d4ec3c2b88bcd642d06478690ef0c149feebae78dd6f94737782ac9e51a9e3ef2d85519037baad91ea482a1bb723bd3f2a71e8a765c785bc493550944f8ac4bb60d6fd82ddd13ce4c161b49bf22dadb587b01a39a4195b1e6dc2016d5da338c3f53d4246bba5217e397fa840da5e6f583612c4acc17447c79fb54bfa8cfa9411319724f4e6d9f9c91b6c3066ace63f66317fc274260693395b5cd3c104551b1c943699d14d2e4c95f16caa194cc8f11b020fccb7", + "06c8aee80be217297ecb97db381459117a8177e364d5b54f8a79a27d2b9dd2db480412d667c61dbceb0a83b6a1bbb7be9621837b53808087ffb217328683f5469a22979a778391a2f4a5e2a4", + "078d91c12deb92c78b5e6ebef6df9fcb0829df7ada8d55b629bae93425e10f9cab3b369d20e519f3ae0544162766000dd286d6b5d93dc88e1c3f6ffdd4780c2f8e4a5ef4455a6e3a94c959ac9fb76054b2140f2f5087451264015f764ff29a2766d61c42b0cee42f0bdac32073ae058d0b017d11c104ba224dbf3072256c2ba80f19486aadd774af287aabadcfa23cacfbcedd74e29a00100d7ad6547c4b094467cc60d379f136ce16db5ed0478c782de3ecd462920a020bef5115049837c6ba66310232ac0bd5331a8cc18e9f6d4957" + }, + { /* i=4725 cDividendBits=2648 cDivisorBits=311 */ + "cd35a2e097578370784ab5fc20105200ca00d0714042a877634da9bade00311c45d26b69b7020dcffa937bb75df03cef70c9c74fc8c60099bb2bb54d504fe6f33a5500014acbc2ed5a7d02d2534507bd36dc0227c897f543a40200b62804b34be27deb9d7c683e0e6b4496f081d3b5f149b28a5f466158695a508c0481e117ed92d48890832ddb1e98821cbb5cbb0be6e4a29f45c76b4ff8c3cb1d5b8a43ca6246413cf09f65b9511c50a3c160d7ffd4ebbac7726eae6b70122cbb098346ee6c66232412b4499353f95b6b80ac9804c64c653ec0fd0763d6c4c752234e8427898e0b2aff5eb44230eb64a828d01e5dbbc12e9bf7ffab941ef4e8c30fbd5dfbd51dc6603d634e095ab1f1e952e05a6e0972c7a11c562674b8e4b62abca1116495dbc26c8f3f95d156316e29aadb7edcc60f3b1f1f9f7782f84f063f524f080af0f39c508a42d60e2ffbb8ae", + "0bc8d9f2d5d42cc46a33656fe7034b589e43d5a4bf106f39da288ebd712f010fae6a8577bb75bc", + "1169d482f5a412e62ca27b22fed8b2c6d0ab617ba713350909897ab3158816273ed57be692fdb8120765e4c6b7023c26f126fc56f2f95713a6e7d601fb4f0c8c9585f340650410487f3bce0a1b09be15110f49ca9d73c427f877c2b2cb50da078caedbc291405aa22b821397915c252815115e3c8f6d5561a3f1d79d8a1befd83922bdca731609bfa0dbf3ab5b0c21ecb29a4912b871a8d63775294028dbc2aa2f8b4a2445e5cf5b6e196bda5cdd0a898ef284cd03f7ee7cb9f7e3e3012c8821caad8418e7c8dba92884ec5f88e99abab3e1bb7e8a4af078ce9bd7939f8ed8209632911061460d4041bd095ffab6f41f452415039d89d34ec519a0461b3f4644d8d72d2ac49ae93b08644e6ff4912586ff78407fbd09362d8d9769c96d301bc29b32230e4f", + "08c3ed566a8859e489772a772cb363ddf21aa579ce1a1b1b2f5c5e6206af0a4f6dedde2bfe1baa" + }, + { /* i=4726 cDividendBits=1551 cDivisorBits=961 */ + "31923945ef4c635f2b2aaef772315fae4e4c71c5fb4f00662abaaafbdeac4194d28f63dd12d8e7a89bb44443649530b657649d658c8af543ae324f4ab3a244eff9688f2ecce158312d5e9d694ef52391d5915987b6a8604fcde02f5784e4e3d8380d3abfc90e66fb0b1d1791e425d656f7b4d5dd16760e986348a552a7fc7e1c8d77d830b8a58738c97a1af6e16e1ff7de9b0ff6db70bca37c5a704f103071d0e686a8f8ab4c6bbf691b0ea3cdafce7ff69b6ce289b0ff8b7c4aaf0a44b72399c437", + "724488f59897ec3b1abff793bc1c1de6370d9d3a6fc54f6bde0027e37049d38028c14b95eec8b444a7aa6ebafafa06dbb33a01143d7dd03e872b223f9e74f8248e1806515e8cae385a229f07f6e11edc561edadc6fb9fdecc750d3b26c1f6557cc0affbc1a6edde0ff638b71187408c67e7c2cd7bf10c738", + "6f0e942d8e35fb1d8c13582d40e731f2208030f57fa825fabf4e748365337c50b8ae620d63e7bd2279d009c4fae9c558d43d43b8f210635b37dbf1629206d1c1f440bc8c2ccd33a67872", + "079e7c96aae58596d40c8ec229190e74b07bbf7dff1bee1c39dc31f567320160ea146ca92482803d4fe1b07e92d7eef36fdaff913d23c94f3e723c6065b8d8d2f10f15ad81bf609fa5259aa1bb308be4895b800827044fa306cd22e383121799e23f58a57a92f6660b3fc1b2391ccc132275c6aada6ecd47" + }, + { /* i=4727 cDividendBits=533 cDivisorBits=64 */ + "0c3079c2b0568553f9e915523e4df95b3489efb4012b9b53f116df22ffec5a07507f0c4f41d24b02d6b7fcc629d9804074bfcb5176bc9f613284b157629bb20ab340c1", + "dd8a64771cd0d747", + "0e15d9248b17aff2b955c8dff0457c4cb4415ae11775553c23d455a60e4bda96ce7ae62b59fbccb150b4e75df924f10a1393ebcd7e5bc5dd8219ea", + "41885278b1ba8adb" + }, + { /* i=4728 cDividendBits=2394 cDivisorBits=1639 */ + "032c9c88a71732d6fd9e225de719fd5dba17053884a0fe42f2dcba4ffdb32d65e81519fe5261a4107bdc8585ac08335781ac91ec557c9bf2481d2a157ab3a5c53c8dc7fd0e4ff544a5ddf0def259b6377ab2794299c7f0dd9c7a70fc24aceee1f20173ad2f436153bad89956d7d1ba35f99dce0514de63a2a6526022e89b0e5638e6ae71ce69c56c4abff56ba2aadd99e91cb32fb8dc43eb8ba671bd78633ea457ab58779e25749b283def9b6679b442ad8c26f6307d0e00f3ea303fcfe1e00e00a7e721af9423a360d40e5d8d601371a434ce678a9f153051c791583624b24e768cefe2a44d5cf323c835a9c6e81b6ece510b486900dc84e3aac2ad5e35fb0f258d681a64c38488287df259c3c2811a0174a165643bb00a33f7b991646cd53774e8f97ebc5f14ef37ddde2f", + "5fba923b6890bfcf9209cc86fec8dc60f1a0f7aabf197add517e0263829f8b43046ca59897e342373f5dd7735611e1457bead3c0f407c7ebabc6ed4b9c4ced32503ba707e1efaa15875929ba6f42cac28274a530429c8445836c336358da25694a17ae09a174ec78f9fb4bf2a5f1ff2c0c6654ccc5310790a7d0bf7e53302706662649678a9f6fdfa501dc5223fd0c7c973030faf9b10f1c4806651078572add48dd3785eb3ee249adf8b6bc66de1ab72ae2331293b4daa485f66c9fcf436e3ed88f0eee7d843a7e5b28a6b6f9", + "087d1a6176636c42897afff97709c61c5df0b84dd1662c56f41a1c05cc997694f4278c88aafee73059e82d217b346e09e53bd1f2b928e36e9f74523ce34465c7161bb93b31179baab33539867d97d3d6570540fedaa8a9ef551aec4f646783", + "1ccc9dc21a861b03d6fe0fdb11c7f9950fc19fbd5ae19559d628201bfab615db1996181a16c4d98fefa021913795bfa43f4c75587dcd0b705dffe8538c94adb96496eed12ec142d69be995c3f2909c8ba3d36bba2d1bcaf8c92e373ce19de0e03fbe889551ca47a02d5c82dd7cc47bd73bf6daa610032e8e5272c8386fface6abae17aad3b9e7d5da6b139d738b542b4be4dd012d7d3dfd4411ffde9803fcbd480b36f499907494f5ee9d88704276ce763d821a0b2780ba902e16b25e5e9810f445754a6806c7f73cc06ac0dc4" + }, + { /* i=4729 cDividendBits=1640 cDivisorBits=1201 */ + "29af4ab90c9121e304363b7351ef6362d3f8f3f47f6640a50ee2b73f7b33c23ef6e64cda9012cb1da6583022ccb6e4f2fff39535cdfffacabc7463be96363bba48778e4344ead9df0f5ac3c08fe91c9d196b806476f20c819e0b670a092470c6176cda3bb4678855ff3c86eec51023af71f3934efd6f23ee0055d1bb9fcfc5ad95350ebf7c0db9699037e089990256a060d0af9248e32fd9646e0d53f17a5cf74cdb667fdbab45ab6908d9536bed82615b56de312e0d296df960ef7fc77ecbad800375ee011ead4e89bf37319f", + "016c9efff609a19ccf285d127a82bc72bcde959f64b841d17632a261a5c05d5572e5d2d951d3a0c2ac05f54628596bb5bee2947930a8ac69972fa1c5af4b42cfc4d6f14e3e6e4a5ea14022c9cd375f5ad29aa9d4a5bf00c27d9a2645e939e909197311fa15e6f90611c1e714099a205de745164aad30a3edb1e4dd93f929a5929586b2efad939eb12d1538d4d34e39f0742c29d00edbe6", + "1d444cdff57986bb5bba51c54a4b7873fa596834b579a5b05a2366cd5a80817e56eb312089bf23ac966b9d18172a3db302b73050efb528", + "cb3f32794ef04296a4da312180ab121f49b09762fd9bc57ca66e96c847488e6b560622e9f809435fad9988fbbf1443183d439c110b6f25126951474d0047b319d5205b9360f772a399496d26df7ceccd75e68c9a37cd55c5bdd7bda201417bcfea54e8959e438698ad16b3be6cf15f1a4a9a4c9e139cb435ddcd57b2dc4b3827bbcfa6eef584db14ccc92d76a26ff178502f8fb137af" + }, + { /* i=4730 cDividendBits=3480 cDivisorBits=2996 */ + "b1651cd468edb321565333054bb8e201d2ae7b3fdb2b906574c690f6aef2f0a3055ba6b269812c427cd7b573f274847690868d1dd6c3cb33580d0ee0d0f9d713fc57562b982d29c78db5bb92cd1143e071e400c66a8ad5f5c17072f11f66d6af613492ca504babd88407a91477f8e4d3b60f2637f06e4e4857ed84d53f22b058b391aa4f65806a44b09f4eb4999fbc1bc2ad373b10ca87ebf08977db7363cf0077782d2395b2d5cb9b095849dcf529ab8410be57fba0cf1fab915712b45fa8575d8368c16e2abca00a10e648b8b1a214ebc724b0c3b9ebafb3d972d8c720a8446cd0295a59b18e73fea2e4b5c87f084710019524ef05d7dfa1ce516f62152d77b47c04a63f1bd96253cc8e4ef22800f45ba7998da776ea92fb38d7e3977d19c6c23b48784719e0418cb9c01c3cc19ab78ea12f3553b8b79bd6aeade57e363160c9f526ef2ca4f8242397046feea3842e9965f37750b20cd039c47e19c627ea3f4970c1c353de2be6466eae39c01c66bf0f48baff1116209defc28b6ddf3c108b406bfe9169d29c99cf0fbbaba374d7c29d6eb98413706efb489074661ea8063fd0dd952eb025a8628803c07951b73f50248a6b", + "08991041f4eea41ee5951ec0cbce078d8d27054ea9049645b066090a9d71c8c1623a0e4c2c43ab57f9684550a2a8ae6a18f4d982df6a3589da9acf5d6b869ed4ca33aa742a05122b56ca7d78651a76837caf6216af4e222e4f625ec984dac395f65987e3e3d001f81df011cc09c28cbc74f33f203360cdfa7334ae7e1a358bb29f76cdcf049815390156c2ecfd59b145f03f25e2095f639a7e2fce47b5e6d9a74ee69cd6f41f6577dce262c396e0d34889ff24fd691e7fcac3d0a484870f3afb8c78157670fb6f0a6f3d30559fdf32a9fa2a3a51d2c390bc62e271d569851936e1f63c43e523131a9e94b0ef73b103ce951708dd7fc1a6901e716d7a150f5ac485dc45ea9ed8dbebae3320bd16473857e54d87d1e1233458116dd6f1bf28970a9fa4b5a4b7108934d39a0283a0f51f420df87573208735aec6a1795fa746cffd6e798750b11d8aa4597af4699f666af386a6453be8a53d56b668f5733f66a8c71383109cc1c517ca2a4809de31820d8b5de28bbe73505a", + "14a1e1b0617a1ff0eccb06949d803144b10506e1be4eb8f3fe2f844ced71022878adef87cf7a324c0086dcdc8f00330a2ea4d58750d00a9bdc50d989f8", + "06119ecc7f7661ed3fa395b20384a9ce6115d91373037c5559ce0f8e999ff6f7dcfff9d31d207750c1e6e62b2869876e71083f95aef2df5c6c0d14153b698185900e686e46ba00b3d55f24c0c1fe8d3ff58cd8cd3285056de3f4a245ddd80d14dbebd391c240cc79b4583fa1c441ef39997e0f97c7f5e99adbf9bbde691ffb27194ff1656fd82c83404e8e8d08459ac748067edcbed3171bde69ad82645bfe490fa3f38748caeed404dab1e3c6e62ee602d3cd06774b96c01b5c76de9822701eefece88d8e43feb5c5ad7e2997393f5cdc5ae9499184e2aedf988403f491bda3667e04f2da64162ab458ad0cc98b4b853818d9b4994acf2e58fb9c7a236dfb31d0960d0a549d3f4c3f19a649acca687120153846e5f826efaed0e19b4e2be25f8e39db88dd2c8433dced30afbe9f11540784fc67ab67abb3f5217dd92480f370dfd783fa99eeabe22b9eef3f7122c1cbeca471543bd66bc895100f8761659b1030fbf01c709c9cbd72cc2153994d59c3e572bfde24893b" + }, + { /* i=4731 cDividendBits=2221 cDivisorBits=2095 */ + "1ba74d3702f3fa49a60e2482f4a4b5ef8e2775f812c3dfa82ef067dc38bb103d21bd551dae381f3478e270baf84037743df1322508af84ecb69a102923eff18edec43965390ebeff238d8aa758d71a790b88e38e03f23c7a11dfc091557c07791b1c1289e5a3a892aba74ccbd43bba4edc283ca9a5f19ccef63ef81eb586b637f9aeb410e7034cae233e155b6500ec164ba74729270829115ca44d070ad759930ffdae6bb3daae0d34c27ce5b22da2ce125d830a1aa38390f36bae5c3d3975832af735d73d49bc2b0539fd5cf3e59358f9bdd40f715a2b08a8db73dacb42483bf84a781a60621b87555d46acb5da0b63e4b0e8711826e32f6526cf5160da276638babbebb60c6784624f6e061ebdfb081c6546646dd1", + "222ddbd89c1e8236f05e0fec80ccd232fb55a7be674a8f7ef3af7f32aa38b70ffb626a3a6de5271ca2a1a512cd50367dfb627e8960286f8bf4e812377628d28e470cc77e26874dc99c2cc917f16c3cecb298c060ff92b84f90fa4a7a5011b5eb048a442a5ff8ec0ec106566b52152683e322cc1ac465332bc204b7b4b85500bab84d557db530d60c6538115462e81dc21b5259aa346b2f925448c6f24749184c0cca62fa07cc09210c7e475f2119e74ccfcb0b64be88958fce2f8af9d01ddb26bb660790c4f6cfd2ef4210fb7686af1b8523b857ba41c51794216cbfe4ae24ccef6e40b99d9e385ba8352b80a540c6cb51cc9b9834d13d966243eaa910e796dd42b919f8bd1d", + "cf1f9c8189e152d470512941b504d20a", + "1d9eab400d1eaf6f6ff6becd58561f39580e1489c171579fb8d20d5c1e7ab956ce6645e323b2be3c52dbe10e40ffb753eede744f57ca392e36b13e14c123dfd397c2e8813523741e069369dffb16b0dc5f5a6761bee364f64d317fd2cfc56637084159871047452bb59333104dcb261decda2e69d49d0b19e487fd1b40699db773c4dd6719afd3ae257b06cd6d5ae2eda238055f17b2f7f3bbb5c7e71a5d821734931d99eefb51ad7acfbfc12cd15b44dc6d4e1aadbf3b97e2d10216f3706888da812a27243b82e96b2180e8c119e176e3f04de02330ece0e7c1e28b132b857dee24c0d53f0f1dbdb92e452d2bf90f154363a07ccc643bdd425cd26c29b1b6c7bae6c21740af" + }, + { /* i=4732 cDividendBits=310 cDivisorBits=241 */ + "09d5dcf3f9aa80ec4088b385c3aebe27dfb2beb49152462e345da3a27400deeb839370c8d48bf4", + "5cdfb9d3f538693d976c0fd3c71e71cf608c2cacd00cc0b0965ca5598d0b", + "1b1c4cdc2c9eeeeed5", + "1c02992b9936b2bec964425b61dcbf076dfb6cdcb1f400bfa67009f7f7cd" + }, + { /* i=4733 cDividendBits=343 cDivisorBits=313 */ + "371dfb1460f47be456518aa7548b2974a938d3642443995c94e6f0424a82894a6f3507264219a538cf620f", + "f34a33e61284d50d2249bd94f10c7c7a69177f7be4cabfa1d30aa1fe1e525729ba48b7eefe2d21", + "39ff2035", + "cfcef531c17837fc028c6855f2bed71ee01cad7cf4ca73b7542eb276c03904d62c6675abacea3a" + }, + { /* i=4734 cDividendBits=4043 cDivisorBits=2963 */ + "03693f7838091680642ed50ae5debca2067012921eef4774941b66de961c94aa0a93a3a35ab7f8cc3171c84f74fe35e87256584df63b5bfb1c4e8751c479c18b1f76366b3d02e5c7a39db427708de0153b728fa23fa2431fde39e79840084fc03cc7c988c88559b7a600101dd2dd88700433eeb92d05d6e31a52d2b41f4c7600415b1800b78c5347d1e6a3c35b41a3846c04dea6eabd578a8f942b0675dc1666ceff00199b16ea6e0d90d0ad043300d1c82d627744fce80bd65ff391347b7416ada483c2f15d1421087be2c6a611571a03856a922135058b296bb47ab806b2a553a2e314195c3cde5b0e1a2bd14e19fb05d613d446cd59ea8b99a6b4246fade6ea9f3411cc766a3674ffb5f71863af1b32e14986c1437a5a158f8f1158dbc8cd08b53189ff61483e681a0efcdde3c9c7785bf43535d4e15e500dc24c01efa4e81479ee2e07b6a93495794594a9dfe952c46d706b5339acd4cc7514bb5392ca3a021692a0a39b560ebf00b6ee057d8f0dd9c0a36ad74d4157854f6c88c25fa160d22e39bb8d247d7fd144ff98401f30dad135acfb43eef4149728adafd27275ac43573c7b02df3d8a1bf941c5845643639784c2748a7e86ae124070349288e4c245115009a15f5323054c25ac042e98261f42aab334d545cd0f2c28f742a6f8db340372dcb20a887a0c9511c066b24c98648af68181c4149b9be2", + "025556492dccd916d01ac39096ddbff066edc84881b426a4f8acdf4dd31c75d9fd5c1f0741c6b80db0a42fc5536fce58a21f84de65045a10969a9f7df3c73eea7dacfa4deddd117b5fb618b8e74a47d02f967f73334443396cafb87e76b819b67a8632e146b3977a98c7e9a6beede028c5fc0e7fbe287b90ecc388531e89429213a022efaced7d13026b3530a9bd102fcfb44594deed184e1949899499f23e1d33c30c287e412de73ae4119517bc9cb941b5cac09074b8f1c5e730a52601e0dbcf34981093a43159e1f98801c15f5430559fd00f6b68390a94f4b2f08abfd3d642b1e35273e0742545acab88ae282bf84bc6a0d0d57727f9bb02b9907fed3502281f1d75a55e0d4e4b9aded43a9a9d0b7faf6f9d0642f3b17f2eab3329ef3d9b74c07ee5f2741e8dea0a8c3dd81c0285fc0304ddcb0b00db507d4ac15ca5a6347e1e71634414abcf528b2f9093d89de1d9340ded6d9f9115179f4db1df874f2b46dd54979f92ec55d2d829af38feaffa912186", + "01763f2d081ed9ebeb71ca50364c2b5fb39b28fa802ea80667ec0b52f33156fd1cf1108ac950212f9a6f30a020a13ff796ca25d341044d5ee39d042673b7aa45cbf4c8a42aa83d17b613e30e3bde8c0a17131bb1117f868a8c6c07ec75db98fd9400db536344a0a6ba7e024885aa8ab71b63fd49b81456bb0a0ae24b15978c49812c3bbf5534ca56", + "0205d84d36e4839bd0a9f2c9130fedf7869dcd548723c55e10472aee7f2eac087b9447f6c06c672c6daa17de34c66dda687c1d50fb5a3cbca10163ec62f8090afc3a4ea44d23de9daa2f390e79a9b237680f87e571c99ffaea3f963e52b9545e3be282471531c36feb13fa9653a6347a5ea32419acc2aef9c9dcba915629c2d7a142bff009b99e276acc4476a0c2c92c91b788188ef28e759473487fa178488efe83cca0132c884853ab3c8ac12584054c87fcf452790cc856ee3bc92420d5f9c27b3d5820321f1111a307a05bab737d269f9a81f8972c85c0ba081779ec6c4999eaa7e9c148bd4a8bcc7086619db5ab10d50221e54acf01ddb2c10b855c83f8eed9affeb2e7c7e458844407be701e391663a705ac287e459a4d351c6b31b66d157e480b536449816e775076a32f4dd288714bcd83bccf7b6194a2e46412fd49e3b53d8e493342d66470d11aca9f8e86d0076099896997eb51027dd9fd0e06e578af363fe2b78a7210c00b486a1c59162e9cde" + }, + { /* i=4735 cDividendBits=87 cDivisorBits=25 */ + "733b305648bd644576f43e", + "d86789", + "8850a96710234089", + "0a4bed" + }, + { /* i=4736 cDividendBits=3992 cDivisorBits=2502 */ + "2b7ffedaa6bef45f1320a2c58ccfad33122e141cfd30a1ea556b0234b6d18b4dba474bc141fa2cf5fd24d160382bf82c14819e2c8300efd4664502d7aeb33f271b79959bd791a8060a005047994db3fcd70ad35729ad1539c8376daa95812c50e6ebb00f71a6ade3b0a66c2018cad61dae6e88909d6fced38bfe88d59493f73846ba174c62ddc5c538df292264aaf567be0bfdd3f359d5c0278df11aa46213b636008c18621f4a5606fd56db66a9c0f42739f19b8bf13f4f9860020e65d9c0c5e7fd9a2c966d98434526511ba875dbff98248dc293a2f327b6c99dc9ff5373e00b85232be59edd6c5f84247292599faa5a2407944664a2ba2cc3fd9f4d0083b4fe990f1e15f96575486a85378d285302c265fa00f75cdf640de9e41b628f2f844cb1f5fa13a625421709222e1a8a74311f180c69cb43a50ec403a77d9507d7500f7484e2b0e10e4eef89ea8b101df809217d31db25e94ddbd33605e92b7fe5ff0234be7b9d807da9a112da525b45a7161a982aa59a51fed3f7742b1fa90fc327a03d5429fbebe04e06ecd4fe72141208bbeda1f4fba79845018665ca071946ac2573ad6a74422cdf6556dc717f8566f7a0a60205dbb1224f530199d7a5a7846ba90ada490077a9f567c80233141f8851163670755575d4e1c9cfef96a50863a666e0fd40657ad383183fe979968fe68f818d32", + "2a1cfdcefbd840f6bf35fb4db6f312baacf08179b459727db14b4b70b3040546d2598ae007534e7c11f54d8dc5eb4d52faf09952ffccc1d7005a176509cf3dcca2090920b0d566568c1b5196509ca5a7c6812b9f4ee5ab97a5dd82235b43c094e7191e6669b86649b3632dcab916305c64ae091f19ee56fba9617c01722462d68e77fb1115235dffd349923058efcabae0a532c9f56152d100929c42f39e74788705010ec179529d143497a30ecfcf35081e2bf39ae5cfd4bc347f0e08383720b5f7035ac87e45892c6cd9c1971e2d4cc4d685dd22d79ec1aeb4e93a1763f98ae3c8b6753b08a0ff456f627cd38b9695a90f5631dd5f24a1e2658e98347a19168db0a2f5af3db63b5a38ce7ef71d065e033ccd1e064621ad58c8347f8a9163597c6a82452ef89d8f2dc8992038b6a5681dfe791a4009da87e4", + "01086e03fe1a76bc6d5a683cc4b04640fde8261e42b4ae55edf3c372dd45f43398067ff77116393d979e7bfb329d98b5c96e5b409b0b54912c9411453988db667ec9817c91d4cefd3a69baf4b74e7d1eaf977f7ad2cd087393cc04413a7640f7e190dd2a5fbb4ac91093ca34c70fc7d8a3f57cb6cb20f6243acf2f1b2b4e14367b44806e7440ea988f4e0fb77cba7be469832bebf712e5120ce88d56377d55c95fd8fc9a27863fb21c5f96a78eab8fe0048b655add98d52b891032", + "1ad1962aee6884bb162dacf19ee932fd5c58883abf37b7d9ff076bd4d29903dad704003a1639dbb7e3471144be98f61b00211afb32945c68b08c6eb603a8d72f9d9355efff21cafb158b6278e3ffed89078e679eb662d6dc9f3af789a0105fabfcd517cc32f48cfb88e8ac4114687d3bcabf616ea7c30e420087514959f6e945d9021676c876bd0d47eb3ab862f74810ebcf1145fd87485af86dd1c82136587cf16faf2864124c7460353776e0ef86a7d8db68d229befe3bcc58067308782d1b71733a5414e9b30666aa62ff832fec583d9f623d231a9216b88a201587993eefc3a1acc9021fc126b65b0edf9dc63027661ab5b47f56dc7220a39b6583434861b4b364999a90dc10f3abff8d3978781da1d9483ec5cd5942c80a42a4fd6fb563c6446f5ba5f94fac71f1aeb835c4d3e86afb08034cf550c2aa" + }, + { /* i=4737 cDividendBits=3323 cDivisorBits=2753 */ + "015fba06912ed384d2675fc869799e151bc25ed0253329ee0450444e5051c2672ca89900b742d8f695dd5399bf932590e21dc7cf320ada39027cdc0af4fd61606c218b21902c3d8a03d11b7498f60a73ea78c65f7a55520cf4d762e70f338d956b1704f389b3f87c99fed585a14b460b26bb6f5e9530445f2c82bb4e22c093b3ef5e06eb4a8d2082248941dec5bc405bfad7a1b280900a98fee14f87ab5812e1a31ce5450e7cb7694caca0cbe83ea61343fae497f75f14ae4f1c0e19c0a96a4633a6dfdc0b1b4a9c032605d62ec6f143ab46a037927c9f56ead0e2109a21b42e24febc2f6598036d7d64bf5066fbcb1791d8fe0830520517a652a7fd80d05c2e83235539027bf69dbdf52bf851746c2bf50ae48f2e0632871f45252078e53e4fc7f2f9f16ccee470ca836ac0564a8710aa361f41db5b6d48499d9d9f7a52641c499dd1911ef8c9ff5f0488daa5052fc5338366d1e52a856cda4a6d20c6beb9e33844a0f8d4c08c71b07080d131eef60639f8f90f12e7c80ff16544d72b1fda829fcb871a6ac861efac9cb79784ae86f4b0d23008c368d24f6b59ed4dd714d5b2", + "018d213b7c87d3204b75ef6f2ed793b4ae467dbe98cf9ceb0dbb8eea07d9250688d0540177a05c6a26750bfb82b37a4548cbc5e17d5841daaa82734f38ed01075b305fc5aa2578c4ea1d9eea9c4b533693f369cdc7806212e2549e1c3ea827e766defb341044cc412b535031f87682b315e384c72f9259de1c9707c114884a9e447c77cec04c397a644b81d77976392c30196b079086098952dec4ac8eb56b54d89ad40e37bc4b62d70d1144b84b33b14ff02cfb55e4fed3c1e59205aa4dabed46e29ea39628076f6fcf6daa9d3b48449b930855f0e789e6a32d65814cfb15c32ad21e82e3c9e5b5a29d0da7313d377c76a04785578f211a1c055e9d74619c05db57100c0d4852722e7ede92f094fad62774683a39597e67ec1ecce08fe5e256d5ce594c784aec379ac467282379eecc52a6086ed6b6d8df2ab3b96ddb547a48d468858a52bd9a02a22f137118545b3117a265e375b1579b60", + "e2bb627bd05a07e4e9fb5c45fc26cf39fd828f12684702a8461e616c367ec9ef739f53178bb72de28d83141c4090b548437b13192a8ea61072e46bdd23f807e993a80618e306e9", + "63dff0873347e085e20947a6c90c374e9d29192b79efa6c44956b97aa96ae0dd3039ec8c3a313903b6278ce6de4a0a180db6767cdcae09d2104d7db73dcf83ed71838ee85079883e1d619e374b3b05f01b2e3c123fa6f1a18130b49b0463a34638bbf9739b116e6ef5aba1c41ca2aae14ed69ebe2f751b102bda47d90fa91c988b7e1b58cf6837d110f2f05ec7084f49b2f70514709622fbe499ab548c4680cc8f5dbf6adfb2f5b718645294b476e7acc6e7467be9189a41caf27bbeeaef5d8e514519eb34cd03cffadf88fc58c1b27a84a3291c5a56af36cb4e368140d6db43fef8fff212665816b5c5b98bcf38fa0560bb6dbf514071d5e1b48361023cb3db330c1287af08ae2e0b2a1e243e6076a9ea805a4f717b19e37652221a989fb8bf978e6f88ff5a24608091fb211fa38280a8fb9b632c25f9875ef1e4466e25d87f6978d78b5deaf80d1e302289dd63a5d6412809879a942b52" + }, + { /* i=4738 cDividendBits=50 cDivisorBits=2 */ + "03a9596b1e3ddd", + "02", + "01d4acb58f1eee", + "01" + }, + { /* i=4739 cDividendBits=977 cDivisorBits=125 */ + "01d27517a38a9dd7fe8d7cc5ead951d57a1e3c0e65dbc4ffd0eae4a34637b277c96b1efb13ce78c23a88c81892e3fd3aa25a07aba65be709d452b5eac2024296f48df2239a28d2c677ef10074adacebc3898410200bf29c9a71e4b6953bbef5be8cab23db45272fc771728c6e8a18ddaf28a9806eaaa392205c25e", + "15229e39b319b7169e4c95cca3710c68", + "1611f49f9d9187d89b0c4e8442ed1056de536a2959fd412bc79a3f78672cae41bab9538853a029e393956dd6e22e6de271db4c5aa196a7356235cfb8821151adfc6edb7a05b7a373e512002dd303c3a4a2eb06807523ce96dcb816eb0ba7d7ec8d1429afd9bc1e8775d69e", + "03bf3f1cd6ae2156253200e63e592a2e" + }, + { /* i=4740 cDividendBits=2283 cDivisorBits=609 */ + "704bc27facd7718290bd81a66881358edf2a57edc640ae4774d5cb0dcc160b9a5c086cab0e7e1e793491ee601775de996f15e8244f96a869dc2596c9664ef3d24b19d9d1936331be0564033ab059e8a8a7a174c72f66b6a3ea7f79f4ceafd70fb0d15588b22ddc4ae871d674886441ff373aa91f2b1a34ac11edcc2b8ef0297209a80e9378fc10947f5f93354b8b40d8f60ec488cf07861aa27cb87cd9ce163c12d03d04ad645c9e4d17a72db787d5e784324d5849bb848b0344b04982fa482e9ec1eccf82f94830e56fe0ac12ad7f6da7467ad002198b72f86f5ab573ffdb7a3f276fad7158540f1d6831ab15de9ff46b7ed6c60ab8cd11044bdd7e5386a98a3475f533bc7079ce488dcc3bba3919564137c0cf2308fb4f606036fd68", + "01bbdb8e3b1f897f01501b7bda7ea5407cb0198ba1c3a43d75ed3419b503860a33542728f15c323774ee9e60c2e45908def7aa11696d92192164ad170099d6670f27de24d1bc1f114e9e860aa0", + "40c499e7bb33418d5cc9d59a0ee2dc59e5f691073df17101bf011f9556964b69b27c3c611c61d83fcfb7f7cf320b29dfebbb259a224b2905701bedc721d52b83cfc93264840d97f68c0547785975fc8e9dbf4b6e18466dd725e731475ccf9252773556c94ddcfabe02e9c2a0dd56bb2cb36cb6e8308d852b26b867cf04a5f1e7606838992eb5617c7e0e562ab357e4a40a676b6d02b7d0ece55b2f80cf51a3fcc033ebe3cab18adf023ad8cbe0d7a29a73e18e2152bb570a8206bf198298b6cc6352658cefdbc6909e63a53ea33e58feaa", + "9c524ce63245e51e21c437b1b9195194db0d781c5cf6b3db7da1b071638dfbce6d9da22ff209f89fee5655555588d789998aaa06850ab34dfba0a4f53fe840b4b0a471a22cb7575bb5a92f28" + }, + { /* i=4741 cDividendBits=992 cDivisorBits=376 */ + "fa2873c9f5aaeb96ff1b6656be3994bdb0187692cb39fe0e28f5ad5492e327b62a7cbfd82c16ad07050afe86758319ae82313c778a28fd9a4e2cc4b67f07400c731754f2eea601f6b7d2de828250c70b0e8f5c3fe295eca5ffae323116505472d84cb99f5300a7f541c12024369034702dd1c04175d70dd278c6002a", + "8bf95d4844e8c213b68e2f1aee9747c459b5e101fcb21b43bb07622d2ab09c18f3ef96281473b48a9a209bbdf4f67d", + "01c98439f3d7a9c06c45c95cf2d862682fdaf1dc448897bd4fd68f9efa51137f88417c5c3f04abfb7dedf7f2ce118efc7abd45e99fb9493a5528bcfb4ff388ac0efd4d0354f4551055612bdc6188", + "11c3a5056568ff981d8619800d8ddf5b6e29b949cfad9454a099bcd0143f5335d4004404d2a68506626dd3ead1b0c2" + }, + { /* i=4742 cDividendBits=3501 cDivisorBits=3278 */ + "13b6a7bcad19bd6b8a4bde4f589980b113fd8c0d35c4879e88ac8b12e67ac262190358c897e2622496da4e3ab528ec9d3db1c51bb3625e9c874a78355b2496812ecbe82b146f232fe0f5416c63fe7c23989e38d809f1585f2b2896eabe4f3d4d26c978d146b21b06420acdac4ee4e7aeced0559840eba5d9caf49a6eef21ea93ee783f1a0911855b1c61ed564d17fdb53e4720883e447142ecaba215ed153ef046db55957e5da8e25bbc758e4435f2dba30e70265aebe19111db6445b8431bfd8b855a02cf1441dc31ad41129056e348a3cca8080c2e12a1515e5142eb22993402ce2c84f5580a0c4069f36d7973aef8ea0ef2415a81e2a4fdefd0e267bf87eef34013c250c4d96de66468f7a568e0625134a5281d8130930154ded7415b84dfad40eabb472bac04af2dab5c5b2e00a938819a38f576ba36f96ce739663c54d46cb388559472cd6bc9bb4bf8036f5b0609abb43786f2e845bbade5f3a414d2084fdfb37d8b1e602cebc0cd32de6acea0fc8c07e94d66698cb7083e013bf50c77b50614514e5013f972d1e46bf90a42772eb6e96268c44bc3965be357f87614ccf9fad0b5349f744a5cc4505a207798f7d8cbb1f794d4", + "2ab74b26d27f93e536fdc176b074f665f5d561c65b1bc2063c514274e3c34801ab0a6651aa4bd0165ee6729d062579ef1b47486583727f2e3a5e9c2e944228c7a5ed127e98176b98a9d7bdde85998e1ae7d72243dd17497e80212d9853353b14352ba8060a0839f2a6bcb0c36192523fe1380252b8528a6484a577bde7e5cb984259d7657c0f3fd6cd583d76a80ba6c7cd904ac16b12398ab02ca370e5264a7770c6b81375b4c856f053ec83f8810f7569efb11c832df541b0d97843ec04e8d8ce48802c2496a52ddbeca97a96168dfab96033f6df48b280e85352f5e04e115ebf4e2c3d7f13fbb3a61ad5e2ca18fd712e7a5a0e1bdba2c911e88b53a2503f9525888a1fca6319c161320d4ead89481d626e917097c67e4d1af0d54722cfc8883cf3b89df8340a33be3b18f666c5d8e6616ebab90eba2764ec8715178d2e9ad69ae4d38a93a8d6bf2e4ac7f859a6b893021c7bf02ae389b35c29bfc66b1855030c19f17b14e7ad76927cfe0dc487cbbcfd654556f2c36e4e84ef2766138aed8e9f4d265432fa2d0cd3893444f3be5733d3c659dff5dede6dd234", + "7624f7a3fe18f42e285634dfb706778467e7e01941af687bad27c8b0", + "1331e1756f27aec488b2614cc19e7303a18da043aabe0b2830058a17798521e797d2443050f7f71ffdf325dff12251087a820a535452769fd396200fb76ee4d4d332f4101324bff9e5ee27550321690ab92ca37f9a073bca868d3022cfdac5938a83cc51dbea2e09772e0d380cb6ee569d06db684873d85b44674a0ddda23844e5248c5e14227c3d3595029f86f9261167b46adec5b426900ba98f125f892730c3dd0e93ba201a94954a3756233bb0e02342969b1e4d6b9ef3c01c9a1949fff41b913f7b4ee3ea33b9175dea1c4ad9061a46fc5439affeb40142b51c7437ed5239c8d4387ffa0f30814de7d61e94f723fdabeb46b1f64b8463e651010b3c4b1158bb58f1c8b4ddbe95d4f01fdec549447f146e993b37521b2c1148159eb321e75ae60f7cd72ba405be0acb9c59b20690d5bbaf9520d8a3cf35b61e5b830e29948bfd0825438af196ba7828817ff085b2907268434838721875f392e78d4cee74bea8c06d1f1fc36d1ae9ce30f86a12c9adaaf0381a0d37900f153beaea2fbca901cee8d82e60b4a99bb0b206ab8f536ce4a563ef7908d0527114" + }, + { /* i=4743 cDividendBits=1569 cDivisorBits=446 */ + "39b79341afcdcf07521594f80939ab116ed3c3761c6feb758464e67c9af246ef9b7602383998216bf7cf5105a406561892d372879348a45e2748638929310b2ee103e164745d48721ce6a8138578b3e2da673b1e2b81944cbe881ef4fedb2b7540dd9b5bc609d15959b1d643e2981e36c035bed133edecd890a29bb750fdb3a11395bf7d956e8cc42d2cb4797ece8ecb285d18d1f9263a7d712d28b4c097cb9833a68d95de9cf71387988bb8b206fb7e3700456c6bcf7b7d61bf3341fdc62b111b4be3bc", + "3f7741b57335507a7ab37918151a5444a5e84b1ddfdade8b32f6f074987a0c1584297fc05b67a32d05e4c1a93424e8ae165bd86ddbc9302e", + "e8cfbaab4dc090aff02b56a079c48275437c104b7d806390e07cc8527a827ea2b814a7b7f7692be889d3c81f6853191f310c145ee362b4a802547a3b5df3898d3cfad01306f0ef759bde5c7d8c6855313a4217f1fd95f083d8a937a39adeab0f6e3420977b1f140d1ae06a356f6742f2645858d8d8f970d427710f71eb7579c5bbd73a20019b4a26937a7bd7", + "3ee49a04ebd0a74496d21b9c9ea06d10f3ed3d3ff8b8f38218f873f13c1383d82c0aad91346418270ce46e498be28fabba72e6d47b42531a" + }, + { /* i=4744 cDividendBits=1939 cDivisorBits=1059 */ + "07eb9076365b754fbe86f53fad88f5076991ea5a202815c9f8f097fa85ca45849180110111075b091f1b89aa423d6c3367a82f91fbb5a02c6809de3305a5e5ddca9ff237bcc17d3030793daca5a4b6d4d649413c2fa925151f5d34796e651e7e438625b8e8a91563f3967449a6422e7f9b18cb22ecb265fa2d8faf1e89d5db20ac90a6a6a20568ae48bdb7aec574060922bbee7c009a736c27c43a53fb7499b70e928425e69eda37e968a5954fcf20f6a8ed1e2ea8750fc8a6423d9be0c969c84422a1a2f933c8e887e7fef57a3cde6ace59ce2d86fc4b7dd48a2b8e337fae9102bc1eea10dd4cf0b1f4c01ed76edd4cd3af83", + "06996f4bf9e286ae37429e2002bbd9ec7802bad56a8486e455cf78704a7209ff9bb02644362a2e914858fe33686172718a789ffb3162f61a467ff3a6971255894e8ccd8cdcfd4aba2bcb187fa2419f44174590d291eed0996dcc806a7e080286da3111ba5322bbf743cecff69c651cd92cbc41bcf6c6b8b07cc3c1d33783b1192b9261d891", + "01333c9c619840a3230c5419ed880cda1a8987cf92f9e825dee1393561d1c9f11d756c996a066679534e5a7f09b0e32c514e4790a7958f9750f622b1e606887853aff4cf7940d558ae4ad437f58b4fb80a6489b638ede80fb37cf8c7d2432fba7de1cc45bcbb52f51a06fdc0bf7536", + "c0b8cbe313b36fae5eed124930dea155fe55ceef919cfba0b26184f8a9bbe4fc0cf5cab5d85bb3dce184cd72e8256c8ca3d1bd8dcb728a737346e85972cc18ec0c21f38b7f9d0d31cc84e3cc33b8c59f000514def352f98aef352ec2e5f833187e87ba593125dab5a5a5f74fb79810def0d74e6c3bb081ceccf042b5382f2f0b6006bbed" + }, + { /* i=4745 cDividendBits=2758 cDivisorBits=672 */ + "3d8884cb2a24cc58e8ba4fcc4add3d2bdc3a1df3c38e6ba4627a020bd25c8fee02ccc0b8dc6213d9f41a5129e9b7806e60816037f70ebfd9b8fdce568d40bdefccf041c78b1eba52a5fb67d36866f3c14e72e154d23124bd8ec9073f8c19109e4e3fd0ab7badcfeed568a827e7b08f4110ba221b5281bac4374accad99455c6a292ef5c5c8b9670ff872ae6b468f1bdf683b08e5000f4857e8c687786006d5354be6c7ac1d701144187e428d6e28fd2571505cdffc3d9d49c6d7f2c14d59c70ce92ce1a35a519eb73a541532a2229114ac11347ba85d4c9ec8383be4a297e609babdd62d7b5a15d867fa3fcdaa11a63ab6accc1d55695c7215bb8a8fb92ce81abfc639f1a6df07364838889e628cb14fc0e8b14a8b0a6546bc8e8090dac5c61de588de97257c5a8a40481065e709872d61b56d612e07a38d15162f5eab1ce95f169c3755fc79da947ac57acc81913b467305434fd644aa8afc", + "760e41673521d35b2d1b4637378713b9bfe94bec409d30b2c8e38134669f843cf6ba8575f560f03ae43ad23e4c8c675dff6930252b03bd32e47a197205b82940845518e4c5228c4a2acf8af1282804696c10eb35", + "856ed60123b3cc70d7ce3f1845e9da4a273f4b39aa48b864c49692ebfddb9faf4c5c7b7ad541a51e951d9e455c3e88b156d3c0c7bdb7b806b9fba9a3a1c962e12c30a6fc8a0e60f4e4644a3409c15601325940f5659dc6dd7bf98ca383173d57d168a16a18d9d1de08507c40f7de56666efe13364d31c33dcd3b8c9d392588c9ec831dc4d51a996d08c7923ae0404b4205e1e24b0076dffd51a8a137a91d7ba29e5f2ba709912e76164935c1b67a1975a9a70c57fb3a56ddff36cf3dc6b60ba7a9e685af8e106f29225150d1ad7985492bd23a2d5c8a2ebb932749fa76a9b798af5fa2987b5c630b60655cfdf851efd254af721b1eb4ef38aebe3c2c2231354a80ee9f930d", + "43ec394fda40a11bee0f9b418264b00fa57c3e34d37e4c5d1f4de5bbdcef6078a5dfd3d7911abac04e6bdc156bca27c2ce466ac79135be5a272e938ac998a4c255c5357f055657a242e7f5ad7d54c7c0b4d42a4b" + }, + { /* i=4746 cDividendBits=403 cDivisorBits=19 */ + "052a0817dc5465cbe6ef5087c0d0867a3983329951a275b9d9947f40572964dd85a5beabca83d0e00c8e1b1b23d66b0e57b9e4", + "07ed6f", + "a6c40ab4e39b74a4f33b0e66e6a0cd3774ba1990c974402694185b113e91f226d10dc18611c00dd9b6a86d068186bc9d", + "0398d1" + }, + { /* i=4747 cDividendBits=1627 cDivisorBits=156 */ + "5d293a25e4200f4813fc163c141aefcc28c8bfefa6fd8094acb2bcb186e4c8f900c889d4466a10e4f9f4d46ff0888c3f160e23d9697b21ccd66391148c9938e26564ca9d303ac8eac5d83bb97e0bb1cca13048e626fef383cb33731bcebca986bd1a1bd5215c63822559965a455af80e49ebfd8127e6c83b4eb2271901fc6a2b8325cf73a16116912ef1ab0b75eb0bb08b0dfed1d2a8f6e6becf601af03cf5c606f2453121126ae2ee3db4df32b13ceab889ea3277b6c1114c72c30c157688d2b6d014fff5873ff6f5eca3", + "0b8f531fa5f4d574f1688dba045cef50dc77f47c", + "080f1b464012de1353db7e0663af0f124653d7f47f155fa87a87e74851d6e5ed4f5c1c934bacf9a74bd300c99df99aed9df5482a08d28dad3ab6d4a3aeedafa38da76879a2bde3fba856e30d5f90de281fd757f1d8ca27ac9e3cd82b2218fb1539c7d47d85f774d88585b39c5842ca85385827d6b524aeecdc3aab76238a93e133d7146a558f2a8587a4a4bfc2f3c3d20da534838b6838e9ae1292791d713ad3d4f2ad04a5e878a86b8b01fe0d9129cb92bdbefc29850e56", + "020d0c95887ea7c3b4746131e640437d76df02fb" + }, + { /* i=4748 cDividendBits=2904 cDivisorBits=2316 */ + "ff5c6bf082553c3a1845a78992491aebadd1f0eae289b5172818a22f131928063b311a425c6bdf90ac2584207c1b3dae27291680e1a5040c8b24a867db1afec7b94e8aa34b30ea76d849571259325fa81ec3307f8cf439e32779fcabada65fd531f4fdd8236052f139567a4cd1ed2bb548bd4c5c8e47ee3eb812998d1df461c38ba19b35ddf2cd100383f695ace03edbd7ff1e294ac134615db06010250094dba2dfb813bb8b29773ca9c3680358c2ba2d0194788c791ea1792d4d2a2695f165580d4b8765582c656d123142228d2c41ee4e338e0b89a128d6e27521a18cb750593ada178f198e0a19cc6f6f3ae0a75d31a085d31ef095ab0fad4851e058b15e581d0cf3b3d7d7ca543b0339aabb1eadc72471505a6d5cb1d4a0498da146739098fed3c2c113ae1bca1ea103077728714b22e751e8e55bcf85c557f8a7b3bf9dc999a5ef2c21fd90dbe5704c4eced4edc79dfaa608890f8fe59f1ca24a2ec1b013f6740918d4385e02643c", + "03c6abf755b264a2581d1bf68618bc41faf152f2188d14434ab8a5fd3d31012d521bae98bc1c93a3fe2d994cac9683383795811ade59229ddf83d3d9eb86ad4d28db6d05b56a1f13af424181752fbb07019313cab9f5a31548033a400e0b67c703a10a441e08f26d4fb34a9063c7ba4fea14002140785c0e28e54126898b2402a50a146b3bb8d22a1f18e1df20409a63f9fba5adb0fe9b156fbab9bb85994fee75213e52e9de17302e4ab25441533bf7b2211fb78cb9e4dc895df5561b4d5d735ec5f11f8c53f29c8a125cfbcebbcc52e38065646c281029694628d56b2673b9fec505a4590fd5c3971d534428ab482f561793327e4128d3cc85c9c1f6260bc5ce3b6cb26bf1a7dd96430a78f024a463754470eb44ef826ca4923295709b0532024c", + "43a054685c2d49313200a1f6694bc46841919066869c6a95141cca3aac10a7ce0b906c78bbf709db18d70444d7d4f20a3ecd20aeede7da07aff0eddc6e3465cb097ea05445b0fcea45e6", + "0203aabdaa74ff49a741901612720f24ed1c5d23f8c40e4108dcdad65f9a3bdc5da2cb9ec6834a5ca257a0625584e35d3d85874d6b8a109118b4fe24d5f25bebea74f0bbad76d9ff79de1f4210259cc6af9851a2a249ed2ad26f1df6666a5bbb6d284172cd92f57d6e47ba96b645ccfd88a91266203d2a661922b7d519f8c29f8bbbbc244a4760127b5f5d3b13a88fbc9e4153bcedff91485adbbbf8b3e9768b987742a0346d40a20c41fe65ed942b690cb6682d499066d9ddb4445bc44c581dc0f217c770bd12c87383a1dec28aae29cd590da66cfa66fc69ab4414c4fa553ea348af45ed81c91d3218c9f7f24bb2f0fedc18d163bfff781374dd673b401b5d100370c04f4a7ffcc44a51d32d475756cd3830712412df8565cc7abbd6524efdd7f4" + }, + { /* i=4749 cDividendBits=401 cDivisorBits=126 */ + "01adf448c0748f33e680126ba2d2b3fa2cfe345d9207cdc2f4ed8d6a6eb360e0e11f6db232401b6a70ada579001d36c8c50c5d", + "2ad71f3defb7386c36487b41dff54798", + "0a0944b9cc1b033979ae4b1df28e2737a7056119dc4cb3b5d7dbab63568874d1f33773", + "1d19156d752c97801e59915b6dec3b15" + }, + { /* i=4750 cDividendBits=3330 cDivisorBits=435 */ + "016cdb6551a176933a37c109f4d79af72d242739599e92fa87585994bf02d9f6b67ff11b4f23aa071b8eef2cd42c4c7949ce0ae4af8f8e870e3f78c0feaf5b132d2efc77846e3c69f79b2127a85dd9f92176c5b4d458f571c1466b05170ac72a61c3d20ce3c631048364f7856ab55959ec58c9dd5f6e6b366f8bc2d4558cf935607c29a82946174c5985462869bcaaf76555c936fb73e16c47d842098709bbc75dc8de291fd4df5200d0c2839bd6c1450e09edbfbaab2d836604e6008bea49fbbac0bd77b317adb9506ec6d77163d41480f3383ce488d5d720beca83016abf9da57ca2846982f05e30c42b4c3ef48e34e42910d33d171895bdcfb74d62c8b549337151cc5fc0911bb80cbfa4e57a004a835ad0c8a03963303bbb072efad4e2180ff25d3f4064d52620f575eb9a73813a433d1e16da05f965a09469220b584260be881a45937d0549055eaf8a441e5f3432a25c96c4136c2ee7d1d3500b95d3a7f3d88c467b78716f1976af69307778d01e85426734548da9b4882aa552ac9be2efb1958306e4cd15d8fcc9bbbec49305b89b6db47befc72cd804bdbaa2aa97a752", + "0689703076a7dd44ff6982d7813517f4b603cabc590efd14f683bf5b9394a24ffef8c3c3e6014235e9995b33471467efa9be55586b703a", + "37d0b516b54ad8ee2a28b6c07f0f2f1d6dfbff8d981765da0477c9044b6e079ff14267e5a4408f6c5778309fea6752d743aded7f107f973964448e2b10d7d951ef460ce5c3274cb9acc28b862f492bae0709f042094599478a239ddf696e377e2e4d66987fdf28b13ed8113a2854f5dc50cecd5ec539c4567f7cbf1399dc27f25bd16c31a81a6afd3ab46f12d888f4d3060a84deef8856314de5956e7df3c8e098dc8ec179c602036c979ec947fff318b79b50943eda4b6da43a94c95eb6e7755c53adeb30ac91599fd96649ef314322c2b4f1b282f73f2f7c81386ef8b10377c1b79e172eb93a2479605e3ebfcb902a984fb6ffa9d8ff9d09063081a3f63d6a16bd24b4f3f85c407292526534a26941cd44af79fc4193e4cd85e72b80d883cc140bf00befbc99869ca8601bda6a3175aac6f152eeadb30b8a1a81d859aabd61e63985ba717a8abaa80e33705758d310e5c238fd6c0dbe8d6b13bea193ba67721324585e28e075bd8f8d", + "05f8f48e45c8b973e36236a126166bbb0e4f36a914ff6e9030bdf1fd21677c870eafe9813943245ed8f5f53fb2ffbd5fab94e096e87160" + }, + { /* i=4751 cDividendBits=1835 cDivisorBits=1405 */ + "03a3d8b3dbcf131ca582e45fe366c17dcef1ed8a3d16dd27cd7bc75ad5acd97b38db7d54d0048d89776e05e12d59f1c253c766c93d6a9956a0772990e81fd7d550018204c1e78c6ef335ecaca0c5fd7e9adb069d69cb772595d6d8bf96a5d33ecdf78ce62ffae2a647f7100946fa9adbf0ed54319f28031cfd693091f332174277432f39a79ea601d1f8f7f5b900b44ad03241aae94b40212b4e08dec061bf859b0d1b0678082ddf9046a07241d71b74b98493b7bc6a421cd46194a406dfc725986c5fcfee5cfe6077984709e1833455cce47350f73f690a2b233b3da7f4c4794439b2e4eff7", + "038f1f7939b815c7ca56a2a8d64cb0a3f17b39ecb03d75b4b0f9ccfa08d4aae3d4e635841bed4b01119a9fcf98871562dcdf66a7ecac1acbe3785ca322c3ccb442ad1f3b78561c8827845de217104bbaa13648e0c7078b77dfbd8744d2cfd6519d45a8d8cf9295a5e5931eb885213ef4f17da3673510da471afc76966d34d7f4def6572dc10a20d77a4fe21e71fd4389a99dfc3cffe5b6f7b43202755d51eba75e93abe1973d307ee2d3389bcb6667bb", + "0105d29edff614120d085ddb62dd75c885a56cf26cb575881bbf9bcd2c9a04c920b25ef5cee2c2ea5e81126a8bf69df412f0d1fbb646f7", + "01122cf1c5521c857d3b7422590abf2c5e4dfdba56dad8a1d537b22bd501aa3eb9344b56cbfde1eeb03d7bc0496967334cacc3b21308bc971439aaf326aa491c1fa34acfa1ddc405947831aa03d7505816af45790b6ea69be2c868804b9f5132f7e1cc272be84ec69367252a4ac07db347f2be3589f30ae971e0d0dc2328e6fc335a95cf89c1825727a1fe3882ff7263f9790b9e01dd3a852e1565daa44f466bf77a85531efd533593030a1d5ac7b88a" + }, + { /* i=4752 cDividendBits=1812 cDivisorBits=827 */ + "0753d2b65a61e057e3f5e6c6c2ed1f71ca7fed20c11e11fc91823b70a3fc9821bc441f35cb2618033b1eb7166fa9330616dc5332117b3987ec62255f3c79b759990ba1a422ac7d4f4c8377ab1a3e893f8400e76b26699caaa7ea2031a0f98eb0785c880edc2050d9de92baafd185f6ac030f6bd5900c4996229d96cd09655c131d44942c7b468eb819eea62065358c888052e6168e0765c5d1987db6484dfc110f5ef5d1c9afe6e383f0908ab8fb402825a914234f668629ef9f1cc3f7e03dc9f8d2655a4bea483b5b919aa4e453cc7ee76299b549eb4b3b209040ec0a50a1d9e375b5", + "f63563e4fde8bf8781df4288b766b5c69c15a20baf67efc9313c7206e6f76b8e8fa74cc231e5340c4e32f0978fe917f40dc0df5fa0b7e1627957db72ed9e3e506f52f3befae6bb9279fe28d3c77d53bda4db9d668e53c8c39b8670cfd7a54ad7b476289d0d9693", + "079e6c2a8a80f59eb6dc4b2a8908f814951061d9ecc9d569a670b1634ba88584b116805d345476b567a8bc5e02249ad1860a48b08fb4f1e5386852c597ebeb51f7105e0729e1f745e3f06af66a864eff09a6ac3fa48bab6155b3410e196d881344536894ed5acd43405efd7480dfbb9c42dad2ab3fec5147080febd8", + "5c2db1867ef118ad8072c9b0fc94fc14db35788f6dbaaf19a30eda59c4a95100094f1fa8ad9eb77442136a246420f79197eec99608b3d84a6b4785398141de9ba6b051ea11ddb76f7ca6ccd58eb03c5c0366960e19a086517e9a22dd0434193a186fec729678ad" + }, + { /* i=4753 cDividendBits=1279 cDivisorBits=831 */ + "22d92b56ab2bd2fb84792b2a0f01409a666aa77431d9859fd1b5ad7e9b6bb5b26fdf4e619a012e6ac130ab1a5eaa1a2e204fe7e9005c0eec51c2a753244deb05616ac08e33cb7a9751926e4f12d0ec4cd175a140dc70062ab21fa220a7c4ef235712299d26a9d9dbe3b8c645559f437e4de6ecb3b5a0e2c6d3bd7a2e248fbbe691e4e65fa2888987ab553c1514a503f02d7d806437ee58e4dfde32fbc0b69347", + "0682cc673935ae72b529b4e9c2eede6b840ec5f382331eb77436d96bc4aa521e000cc9c888b431f5246102b6a7849cd263fc37ce453b916e67ccf471399e54ef078063a29e03a8b4b5a24c2ffa103d67317cecba44016e6437582cd442ad18c1a3413dc961489d86", + "055a2eea4da86606bc094cabf44bffa64320816dc916131913a939121c8c2ad63f3a1d8b5f2156fc30e37a21903cb8f8828271d862d2563adc", + "013e9e44ab490989668584e7c393d952c1ba6d231594388b293c2e48108d1cae9b3b902c7fa3e071842283ee4c129199206a869055ff0434cf646160145b0c7a3c70b745b702db8db1c96423f2b24bf1900e0e6df84b3c4df07d28601668a6a1c17ddcf8db9ad81f" + }, + { /* i=4754 cDividendBits=3017 cDivisorBits=2283 */ + "cb1dac169d716b5f151142d9ac86a5d5474fbf7a76a93442458937b76f425094077f22a5b22957112687bf79ce1d5a14a0dfd16281b8d092c40146d8fa2b2a4f3fda2f6b7d02fb497f104282e08453b4bf90788be969a8555f395e503f9800c83468dcd7e5f26711bbc8cb5f9d86abcac149f7a5574f5c740774ccad45cb030b99f75d991ad539598139474322f2bda6c2a8602f7bb395dfb6baf002676d4dfbdc313343112d730b613b0f3a6ed1a3497894eb646785e6b5f7466af0e3fbe5c3be167761e493514978611ad635516826816aa972fec8167d7e5e49f49e7ddaf12795b653fde19b701b0060baf3a3a5e0827ff71991f74e1e956dd283c06bf87feeaada10f00456a3e3b7a0271a06c1bc63823e2784f8cca44979805322b5bca0f3a832a206682c05876577dbc9d62de4c613347e981e976013e4289780a82d82e0758ee2c68ca2dddd596f96c3f9efd1b9cbc6e4d67024a49706eacb89c23bf62e89997c50c76c9c63823a3d55ba8a90531ed44e916ea12540", + "04250e82868acdfcaecb2310154fb7dcbd93b32a248bcd82426067bffafdafac372a3d014ddbd3bead1716559f370146f5d2928a2c7f6a0d65e649f82f650dbe4e50db8ecd6aeeadb0b139ddcd1b5de0779e5a0b16962451168b9e80c27e42dad0de23eb39eef501e0d7f439fe0887e4ec0b95771f6806efa6498bf4afa7845b336114d0f4e55c04647c0bfea846fef0e90e4c3e446ba805f1c256281e7e9227c2731ea2db9d9f03aa335f27a3a5624a45a341e5ee3cc34629e5d9dd45a2f6249240e04bb31e2eedbdec2d0a01a729389aed5cf39cafc3e46af44efa6c29843fa9fbaf98b0bce15acd98f2f86468a0f40a273da347d130c63d767f61ff67115c61cf841a875f89319f9370cfa99384bd1c6bb102760259a1409b649dede0", + "31016c19a16076b2c39e02d8ce07e15d41ff910a94b8ac0de43b385cc46b432c18f54a9e6103cf840806115b615f7241882e8965790757e670a05699ff65ccb6596648c17414ecbfc6b81c32f98a2d08cd555a85484daf120feaf99c", + "2d99b3435b81c57861460b0caf0b7d4f16bb51b22183e2b30fa564867c92902ebe9b65763528ebdec5c7c603a242323b95a014d8fd2dc3f9cbee5608d1055d2d508bc7bde7736a33b6bf6ddc08bd4bf455cf6dee0605acfcd470788dc54e07cef9e1df65083d9009b2352314e6a5edb48949e27306d45dfa8fc2092df235a80a04f12b94cca19a1da1fa91e9c918d1c2bbf049a5f5af5090cb80eee540b315df60b51388c6f319d5774f472989fe2a4e7f93bf1b4061056bb433d4c1216a408dca53208872582ef8afeb6a41a0a0f54f33b2bd79ce00c185754a87daf2aa7d86d8573315b08275b2a7a5fe91ffbe48b8bc96ed0fbb9b0635dd8c45b26c529d058e2f421fe749d6fbf0cd35a98cf49f233da444350beab3b7f6f34550c0" + }, + { /* i=4755 cDividendBits=3091 cDivisorBits=2147 */ + "021f00e04c1d5b34768bf71eeac99d3e7c0dec912f7951c13edab83149b4ce615df54d9f866e74a2f43ac1d4a3ad3f6e8fe63976f38acf87d3a3f42e80cb133790d711915c0b7b1f62d8c6f9ee53a0595d6ba5c8895dd0cb5757fe7d649d979f1c7371d270be259cc8a252cb3c286bda2dd132f090d85fcde1322897fe5aeb5169b7c8568a04b3726a4de23516145b3176a88198b9e74b6470f518fba3052048518bc23485e7e7911c0abd03dfd51b409df63badc5fdb2da6b6d49b457ce814e0fd92f64da435b5e6454c0dcca5d3711cef3015583b2b63067e9eb027aa5958e1573a2d63027875b27e3543c1b3fddb2e600a4df3d39625c9090896133334ed93fcbf1fb6320c8e61355b16adcc207940d241162d7bc78cac6daee7c479e7a8d3d3f31756cadfedba0f8edd906cf0dea219fd15488f140a63ea5cc49059a3cef760c5c829548affec6db27b83b90289624c8e28b46712f4d4b760f601cd39a6c560725a4e544cf957e029e432da6b1e264118aef512bc2539b5ac527d3c808b2115fe1", + "0574c2dc64974c8f647114b6dabf6f66d7190eb36fbbf526aaa5d13714d8f9faffd1ce380d22d5f36a23e14cc48872473bc1e4957f86211f2e8f6f9cf19be98804356ba81e9468231e9e1f08991959fa41426ef729de1020ebc2ba95371ff43335fec22466baa05b9e8ca077bf5252144bb3f52760b1a787f8371cdb0962146877a1b754c1e776f8e54c2b1187c8a410c520ce2f9a205359e3f227105dbd552c7e28a644be20d5e6b6e00e39ea4ca4a8034ab12bc8f06c35d854e5b1f1dae3fcb2f8d5a7f7360a632237c117d11f908f00977d4721afad251931db448f222b790da6edbefb0bcdcffc0b0257c5cea92c99ac83814aa7f91da3111895a4475c515425ebc49e0253ec32f02f8836", + "6385b50d00867842d747574cfbb5ec37f185bb2085d28feb7bd369fa2f5da4bbf3f5fcdf8d0786e163779262b729899b08f4ca6defa228be2e957677c03a9e8b52d37d0581647bbf30ffd43dd2e64b04988fccf2b1e751f033451b729aee2f10d4eb7eb2005608c1e4033943a8af9505a6f8f4858fe1", + "055baec640ecba3ac689cc042faf5356dafe14f09f9f9e0fdcf5f5bcbafb0f08e50b0bf566366ae9e9d488ea20cd67a3bf8a15ee52b9e01d5937be4250ba904b38b33d250cd35de8d8deb0b321059ee19b961872152a1fd58f5419e3f1fc12fbabca9a843538141abded1758369d6d3610b33e40450b92e20b05016b4778a647337f949d7ff9ff9f1c80974869e6405ff46a7207993eaeaabf9930b106d35af928fa5bae23e0cdd6852d692378eaf944bc19bea08cec3538878c2dc626e19b960394adc1ae6771103d4ef7bde8935941c9928233ff0795ce5545c4ca1235ea9e2e4e1f3803e97ee9736447a60c97430eeaa6c6d949466a6fa08d1a8cd36ac96b308efc54a7604fac43cf267e6b" + }, + { /* i=4756 cDividendBits=566 cDivisorBits=306 */ + "064ce03312593ef038065821fef30cedc5b2b4035d8324924f5c7fe4785716b1815ab71307322c206ae2a1fe5a2c9ece1da3e6cc3bb34695adf780f90f35c4f59558eaec160871", + "028494f99aafe2408b25d0532aad13f274a8f3dadbee3fccff0370c8dcb1822beccba69a3fb544", + "028090787158de98db42c9db57771cf5de944173c07041f6704859e9ed40c25d64", + "aa3c9da80f7e59e700dc00130610e2ff30eea1234653eb17db2cf489bc18deafc04128d185e1" + }, + { /* i=4757 cDividendBits=3431 cDivisorBits=3010 */ + "392b77f7264da32aeb32dbdc79a9561794752b7df8952d9ee60d2483d3f5e821a5e3aaabe531c33e70def14425af29625b1b7cc4ebca535d3eb3cc3e621a67f442095c1570f6d7c9bbbbb27793f02b27565669f683098040112d36fd2b81f171153bb6f687bdb9f00a8a1dad25688dab0ab408c6779df170c23395f169e0f91841cc1359ad26b7de5a7bcfc5ed65f021185668115522b7997c0186312a98a91aed93a63b4ee8a14b7616b581b8a3350c85011b9d18103a30c968635a18f6d5da9c52ab49c36e1bed9d105082f08f41c17e1a66e47fd72a5fdf3afb71e5759d2bbb55b5aedb086049902ae2ace3ee6ff98857a857aef96535eabf5e23a91082630774d6e30ab30031b2a93e1a61337e9a6d883d3bd1d94674c32d62985bdc38b90ddee59ca00fda51d313963e47112a2dc28f49e5768cca2902af69cee3052dc15ec87f7dc8e413b12914bb8e11c2d6ea7e0c85f436ec9deaab6c73b31acc68339b3b734a2387fe660205e85cf661158503bc33f87a9f4fe8d6b7df575184c96bca97de0476d546a89c92c88d28d52a0cb1962c0a84c88e0439557f1cca33c72d3ad8cf4eea1aa7dbee13c2918a", + "024f23cd908b7d64e7b7dbf13b4287e1b941fbaaf04c3f43439f58240e8afe6a8070dafe72358dbb4094196c053160751e2abe6111cc9f909bb8e3c8b26e763f12964e6cc683410589872ac77394b0fd3a7dea583a3ad97bc16e413aa4f3b7d55556e697a47693011a1b96b4167fb494b30812f1471e91f96d8c1bcabc8462291a085d97da51a6271a4e09d09069a0811a55133218f60f12c506f61ea972093ea7b4ab142363d8786c3045480dfe6dd97cedccec8e251ce5dea7f8dbe52b8e626ee276bde65daf4b4559f9b47cc1edc7363c78b5dcb4fe4ae16e45dded5bb9e405980044bb603cd6244072a6320f208e21fd2f6773dd3cee10139aad227515a8c3215c37165034514270acdf0dd12288b1e6157db502cc66a1c35e7ea4bf33ec7a876c79ed6c43ac95e36f3b43600a4731dc09bbb9d360733f32d6bb0096fce9a8a673564bd0894be98907bfd1781e0b6ec7412a8152191a8855fe6775e02f6b90b9dd28dea62187b03d9d0b374b412e5b526cbc0eacce3fc0", + "18c20f6683d082a081e0329c454f7b521d2feeadc149eb767d2ccf892fcc30ee1726b8db6746f6bd7195848cbb72b9e96f6ee6c9a6", + "bf266833d64edef3b1eddf501ffd1f107bc35c6b88197d2e2fa0382e38a7afecf09561c9f3375226249febb6cef26a7fd1d6f424328bcacf1814f730b148d4cbf939f8f8a5927971d87c631b33f230cfc231fd3ab20144ee0425e9bd6f92a9c652b451f3c24d531497ccd3a8dc730a7e196f81c0a99b5500fdc7cb375ebaff98156f32321fa5fd8d5b4e85e87252118f62cb84609d139e9778c1f2fafb32e3d9298b38b51fa1e7722f9f26d06df23706478eb0c012f532b850d3d78e726b5acdf227c01d7e896409e5954faf92069fcbba7bd8429e0338daf54a0ca7ea93c4081b7b43bdad2057cbef27a78bca5ed7de1686c329f63780a3eaa81683807abf44463b472b0ce82fc6bac9a1693bedf8938f07a2265a6fd219a98e88e99e376d67cef0ec504ea7cb3c60c7483d05e7dea2e4d5f88677a48f88f6cd349e1e9d3ed841c9b5a79ff37262e0ecc44bb7d8b349360146df19a9f701485f92605050ccd9acbb141bece587c47ff33c72334b9527cddb1fca4f777b0a" + }, + { /* i=4758 cDividendBits=69 cDivisorBits=18 */ + "1c46a6fba2eceff1ed", + "0143e0", + "1659a2e9e08588", + "82ed" + }, + { /* i=4759 cDividendBits=1674 cDivisorBits=327 */ + "017af7f58eb2af706db85b749ba2978821aea58ffd3275019ec25a86acc3d35356866954a12315b6fdad121f2940eeb3885bf4ea98cab10eefbd8631a2f704a26052b012877febaa8c117fa729811074890579904bd091cb4d688ced0cc59d4640e9387c1c2f67930d927a8ac52d773bb629ef60947adce67ef1f17cba8a2ef03f8dfae459b5b8789671cd7f63cbe08767e497b5144ae3d5ecbb7157292afc63eafd179dd3175c75e7273b8d8d41f50d7ea80467c9ab28eda3bf5e01592a3e128661bc5457517b72b4cc966a16b16e62bbcf", + "149c0279e8d9642336f70d946357d30657579ec7c61fcd3421792ed3b0e07847f43ef62b84c2b279a4", + "12635c949646c77d84e882f02da17d3b614a96ef302b40de61dcbd361e1b555b084f506b78a05dee998460ae3832ec1c8f9d95b502e210e1833bc77d17272d3ac4068e139dac87c9c8a025d338bcc83ef08b27bef87be2f2685d1be0ee92cf154bc461f9fe5af115759a48a3416c7e57a4a2a43b6ec97f1bbba9c6239c75244e2593aaea8dfc022ec17f04b612ba5d61956c829032298efa02442482bbb180c381371ef08916cd1e20", + "0aafaebef87288e573ae05f26523c0eb3984f34e218516ace8465e5f20597762c19bbaff24ad7e4f4f" + }, + { /* i=4760 cDividendBits=496 cDivisorBits=60 */ + "c4b641dc5237838249dbc285360e5c3cf3fa77abdd484135517712214379742a9440b23965ea78190b2101bfc0ea3e9ceb035ecc903cb3ba60b0aa8c9fcf", + "0fbee027eefd7376", + "0c7e3dd649063b15da44872fde4693e40501eaf80f50d349f5dee9aee120d31938440ba8814875eb837c9350f6128ae48179745562499f", + "0fbd08e894094385" + }, + { /* i=4761 cDividendBits=1764 cDivisorBits=1756 */ + "061c35b852cded8937e9cb7a23c40a87399f2e65fe3c656f01ae646b7a4806ca66f7126123b34f4718eebe45f0361f10ac24287ccef16cc754acddcd12edc1dbf47ece8e5edbdec64b5db0c6dfc509688ac529bdbd902f0d35a93e944a0279ef63a4d7fe52085ba0f2cd23931bc7d8bbd06c75e5f2926798b0e9a6ea3b3c57774d11ba7e9626f00994134dc4090251b06aea45f6346bb95e24d1faca152215d5eccfe56200a3acd463dd3753d7be0ba27019d2a258e59dcc1b98f351e75c8db7227dbd5da0c0829a17bd94d1bf1480a5db5168cd4e028b210ab0ea03a2", + "06b4f9c31cdfe13d2515f60137cc7326fad312116336dc7afe93158b144a4a87f0b1704233e6bf48d166564aa0732875d838926a67ccbc5734701659ff2c7adbbf55d0c8432c4ed3e1646be4ebb63a08a3bdcdfd0db02730e365aa454d133052b0ff7b4289b220702d442ee63398b4a464fc8e81fb98e1b539005ced3da0114773d8d8ea7cd6c2a724da78197175e4a6244fa64198f6a4dc94fb72522890cc7ffdb3c81cd4c1d99379fb991d7d5c4ff6f352e2636a8678c4fefe209652baab40c5d5e65cdd32d3ffbc45dfa87f1d6723df42a9bbae40816191391d8c", + "e9", + "017e65bd8629889128ce9307faf5b8bf5512f42aef76c30ffa85cfe4d068f4ace59334e2764b2dd25899bc042d4f3d6a58ab39f678155bf5f2d97529ae4609f359b38819b88b0773394a93853c2e96adbd69426c1adb61b6b1b69b36dc02f4208c50cec2b53c1ad99a14e396d1dc5230829831a494422ac00852564e25a7bd44a15d112a8778df73887674e0be049533ddc7a480333d5161391fbd4e364bb56ee7443fc2ff3dcd29d738f800a506daaca36295dcf139e0cf83a7a91610a7d92e6e0eb31b6d3fa65561fc416362bdc6351dbc517c69d55f3d83ee1f36" + }, + { /* i=4762 cDividendBits=3751 cDivisorBits=3545 */ + "35d37594449a58c5e2c5dcb0c6581c03001ff604557bb4395f258a18a55770e501476423375fbe320f5989eea5d00973febfaa6802cf40cfafa5878593126f938f115a5331975c68fac2d48282e88abcaec84bd9319818d56c1a6dd640575cdc99f962552e82f119ead2843cb7fc94f84b75bf9333e915305302a32c55ff0e87fb50bc6263991642cb980ff473c57f4971c9219e7b4dd83b4304b12c0f6f9b181a7fecceb1df0e802e12392a5c529f4cf1386adf10630149956ac9177525091fd8d994b12c96902bdb7f31828422706f0211e3b9bde417f9ac6db67b5414cd6f58306fc4ebfa9363d86b8edfcafef7e3a044209f19cadddb9f9c2827bcb6abe3ad71233b01d51b1d901409c5463e8381c417e6b8002eaf6ddd27840979bd466130781cae03b60249a2a83cb9214ea85044ac78624095b774dd719c848528f5825219d5db9ca10a39334eac9ebbf137b2005068281830aca3a0e91640466d648893bf1514299817aee115cd7870abb19359d52b6ddcc65d3a30b88db7938d206e87007d076e68bac752d042ac71bdf42e034c4df92294074051a97ea86a764c5c9aea9245af490969f99986b1952a32cb5dc0d4971e32c898019a36b495054c79e832364e49a457fcd97a5cabc7518ca70e735baa35", + "0117a1106b5a896ac9bcdad816debbe6cdc3cc57a05380958c37cd5573d13d8fd73985a36c7fd8c7c970e6c906819d21b026bde98ffd5c78032db263cdafbeba7d304ee9e1682097fa552e5a085cb42f3228c7973513d49b501a52c74cc05fc205faef803a247f45a06268214167308c40e8fd891667ffc6b4721366670f7038a29ef4c0383407c28a893cd94c68328c86a908e8e8773d4372a7dd3200ba9337e7cfb80259ca5dffe1af4fd3afe19667d1c1aaf4968ef5e46a409a4a8ccb86ae4f5541146e33be0a0b5f5a2ba21665a858af27fac6e827f77f9fe0d2a9666e65ee2e9a398a42a9e705937c972e5bb7c290c24102dea002912d8e057a83ce4a3952b670bb15209ad0a5e5b3c1b49abd5815840ad51b7eb5fc2f3677a9105c012970b1c666f640484074bf51f6bd65e5edc4a4427cfaa3e76641b99d5bd47e96337dedbdc03532bd0c4a9b399b6d85759ec0a1401c33e795b5bd6b80462102843bee56be19fd653245db833ad8fe1cbf424ae3a78236639d5aa38eb71ae8c38430d3a9f0ea0eb9e71502eb5994926a4775eb790f1cd3e366d73e655e92b556df999ffc26aeb85ff523daea3983953292a8154e68dc8281edf4e5288ebb", + "3147121892b4580d27ae08942ce32a8336a6cdf00ab71108d845", + "ca72bc8c1ff6002eebc1e480c478a3b6954eb71937a4ca78c521a938bf1dc5cff2448796c948a5518cc7ced8cd323648b80c90107b2658897574bb598845d237d6b4b1c4cea5806c403df22e86de00bd5155ca0f6c07d6c19fdbdb85f9c5186c7e3f91d5b0ea032f1c70918d82eeec792ca94524d2319d3a82e9036a59a599e0a6f27d75c00afce6f24d2e5586aaa18d5f63141b84d6f88be6dcffb6fe6a4da5762ee4f768e4323ace4218ce15cf1b518a7cd33898e2acc537569df0c7b403b8e708fd8fdae80bf95b21db3e12818c36c58db91c3e266de7e411df3470590fee8420553aaf33541667db6c6a42e7daca6c8a5653cfbb0b29c9a7409941a8152dac7ec36ad2b589d963d4e81bf43f4b2dbf431f0a15bca244aa4bb500c9922b7a923b15112d467a9c4a0207fa67b10e1b5db8c1ccd15b71c2cd73107e8a442a8b33a08717eb6d0086cd7ca35b66b9c738869b2cf6c3606f423b9075e6ae8ae01c52f57cee1fa230336e3de1abe16d24bf463251b806f8b6b4cc44db1fe06d6bba5af1299baf7e0946b846321aa666bcc7886ab47defbc90f7ccd11825a151402c130c08ebdbca5b6124a48f52f537f13ad3aac6dd00b246962769ce" + }, + { /* i=4763 cDividendBits=147 cDivisorBits=96 */ + "0189b2276f2c5835a140302dee754edaaf6393", + "1fa72dfc1ed1641c2822fa9a", + "0c70171c206cec", + "1b4b8be92ec18ecced77659b" + }, + { /* i=4764 cDividendBits=3999 cDivisorBits=3826 */ + "44f635a08b15d0408794a292459b7a816b58a89440bc39399ece1de23ac1c536052c4fc2b1f1b495d32144332485afd9bfd3da95dba0a58bae858dcf7317d7cc4f4ddc273854b10e99fa7ec794f408befda12ac6c62f6000917a065313db54ea37f74e149973d12d5748b1379c0696443e6d48480ecd7463e7b32b28a2b92d020c1cc4a79c82e8f2980e10bde4e7b373fc38a11595f183f963c8879d5d8da62d7bbb4ca1f3593bcc0f349ffd7b781be359294f3a266403d7d8ccbb234deda32dfe1ac6a6bf3c5daa6346a8357407f2e08a115cd3d92095ac44d3e3ee161a5559b5c6f066066502774c715663567791f62aff0b90f8f545d459a4fb35f696e3894ad3b9484ce55fd2daf0d51324979f32cae7d830852cf8f21ec27e0e8afcbd2c94a6489e87ffede220f3566c8007ab75c6ec06f4f2c438a2a9df1afcdae7020a36d143087d5ae40b5ec30944b3613a3e1f627c935bba17e65f9d2936f744f269177058692e9c7552c9317d59c37f895ff2ed278a16715031a1b0220abc90d94e4e6d6058b3e9aeac1374c5a49a4b9f839dab9d02e608a89fa30b418e357fa198cec23b701a3b386f71db4ea9eccd7cc8ddb00ec1f28aa7ef4cafa5343c55f2b2a7db391e098d21dbdc1bd13795466d26213129f7e3b921b7549576ea558fe083a02527d51ac2ef513c43d4c71ecc0c0ac0b20a5a", + "01aa0e69d37617c5a0531fc341177465d6cda3c5403c86ac02fe22679e3c5a4742262a7679dcf21e9b63e7f57d88ecbe580a680df7ab02f2bbfc639fd6961bc539933f0d7d6d30d91975aa369765b2aeadec2016eb94d45473396b32563000ef97b1c2394f359369050803d23c1ec7f7c0de00ed73eba01aca7b9335f3d94da9733a182503f22462f8e8078615e27c18dea036c088dbb1609d01fd17bf77b27f227895d8056dba6040225d53b13562e4dfa5e88a1bd8b8a573da2ba27284cc208acfd198dad23432345ea54825d1bb5d1a93db0fe0cdbe15a42acb987961bac2163d9c42662050765d592f385f4da75bbd1fe202f25c82a0e26083ea9ef5ad1dabf330c960295172605afebf87f03749a571b26f1c50a27b56778ff9afe448608504fbfb21421343524e0e842325b809f592ddd0e2c45ab5737169ee7e1d22051a1130073deef456ecdc6a3787722fe00758b33eb095557765c3a28fdf9b281e105b720606c9fc9b9b91e65c125d68937260452ed17730920e58a0eacd7bbb08033c469b3d3ccb1c6f027e35acda4b02621a662b065bf03a0210d08473d4ca704a64d9b41aa154cf0fadfabdd0f14878898ba1688c67ad8cfff88f17144f9ff74839526215fc705fb66e4d476c7d546b2f7a7089ac3042f23e2afa78c2723c", + "296fb35057b73f5042dfb6c300d65d82c177f2e92e51", + "018d443acb6456d00f59fb690ba9473b07132bd46c7b90b9255e6fdb007b98dfc87fb8bfc69fbc896e9d292335cee05640d028b2d1d889155a388eead1c46b0cc9ca24323be8588768f28133cb71624de5b1abd7b0ab8c9f9aa51f7b540eee36b629d818e64da8acacd8b445fd96abf78824758d1b497d37334cfab7be792b6eed8b26ad15aa7213fbc68a2fbb4848a4cfeb7eaf7d1175f87c10864f351f9e6588ade8aaaeaa0f817d45aa8a6fb1aa751cc7c04a7368de3e8ac405304a84d5edfd11f507aabdb22fd8189a3ae6b0d4bcb483076cbc2b027495fe1b8d7fd7d0c28dc2776f021a555ab33c5c07e37dcf19fe47c743c0a334af234b1f833ef061a07d1ed0236193f68078c0c66d55f3c1ad7cb60d0ae0650a3898135573b90f4da6d26c98c965e69701ad27483a09a5a77dd121c82587fa57f4ce5d145809dbccdd9b1ebc5ed5b7238ab7eb22d4dfaecfddb1f1c51e5d96ea60dc3b50e59217cdef5a880d7d1c0e96f4232bb76afcfd9143be228ca01b072d594d476e55b1120f64d58234d1d157356a2911d77990e5e79d45860c7d5f6a31fb4f74d53addacb361cf8b49dfd747efe4c16f784a1aa8c2f89389d1c0dd3067082b5a0fca1499065c687f2eac9035dd69d2544f5ea6f4df1a8d43ba9d9304fce04d623cea091d5e" + }, + { /* i=4765 cDividendBits=1918 cDivisorBits=999 */ + "3cedaf46377c02ecc079f206fda788ceaa32d433d9b2a1d44d9c1a78d467bc552f06f2a6477f83e35a441c2cf4a6083d27a2823cc1557a7e3a9124fb626f6c17a6af7aec4b63afe929b0a4c498c1241560ce8a54b308378c3a8ad7f38c91d4e0e33396334f43733c5c606d9180bd9ca3151122d3c24ba8fbb4beec0bd59dc24b2afcf29be8e292605d57d70276cbaa7b1d37d8831120136a4685ce42d37c37fd2349d9f3dba86132564e7a377d5344eb0b1c5b103f4f6aacbca107064fb566737b4d8b582aea89bda1d5e6ce5d2bbef8dbcb00704871d3bdb1746e7b811911e97e4f35dacd7cac331f386fc15b0e6f23", + "0ece16b5acb8c35806b1aab4d2e925a527e53f4e72dba0e0094eab9a2394f489031b9acc093e192c90d561fe98f49b10fa85beb543868a86a88acae226abf1b0a61c49499f274b6c60b89b7259f886597a972637fed7ff150844e3f1df6e6196603a38d77f8f177c1613003f9b5293e678619f86597cd3328dabd1b296", + "041d8a0d4925a31e205363525a3982746b89a7ebdaf6071dfe15b0124e5a695ec98b1a4cc6966003d3c283926afd4262a700b594509966ec55e7b9f0275c7ce920241e218b3277b04c85156c694b5f70f56bba919abe544bd513bc0568f63529311c15a2831a189b21f0135e8f740aa84ea7b11a", + "07c028af7fd09527d5436aa88f115e84e5f9d470e84e9f85307246483afb78b35e66e45c8a32e306ba7b0115303ad0709df9aa0545bee7d187a168aef7fc9aa1375c3be483a60f2ec2df146c319b2a88f7035b055267dd03d0084423f4a852d4abc752a8715d0dec3c9541cf10e93eb4630f5cf8179e7d50ecb76e95e7" + }, + { /* i=4766 cDividendBits=2521 cDivisorBits=2375 */ + "f958b534a8fac64b1c16daad667f6b8287a99ed5eb95106770482d185e31fb9bdb5ede3c851aaeb163c1ac47c0e26d5c3f67ac1772e237038b9ce91c32d7bd792328968590f73f3790048c0116148c2ae1aaa04af37eab550c6e7cf95901c50ae38239773f7cdfd7495c4fc552235910c15959881e03f1cbf62f5a60322a1ce6d0202d3f1108bcf80a652eb03680c2acf59d5c23e22b0f2d57918db4bf9eb32136085b7b80b1230cf7fc3bddefc14c20120fffe5d6d1ed7cde11cf6965a5dfa6f86a389baee02b40fd28a09b17e99523d0719ffe04162ac88f9dd199117df62fae3db1741b5b0c6e194f0031707742b5b425001a81c34d8d9d8334356ab26b1654682d5b10a6f175d2ca8f938aae985a56c261b2e6798deef3e195213bffa8dfc03e08acedf71b9b09f560c756beeb0e57f1f5cd72069f2050c9fe", + "10449e397980b926d1aff7f6c2c22494995328d666e90fa48540003770a5014673f4f6c1b132e79037bff4eb7cf17f2f8c7cefd2c6eb21190cf1682924bb1e17239062c66547fe8b452835f6166320790fec0db3d1ab7e3606fac206d06f91114156007245b8cef0860f60265ace476656c9fe24b50aa829f52f8388e9b0daaba90f0bd69e270d1cded38b4a3709069abb6526077d9691c30371b26b7fb63058e26d36a0d0103c5648bd929c8d8af5b8167f654459f07a75f8cf4e11929ad5d074a53b69afe7341fa127d750f1ac97378e5ba841df39ef7fd6632bdc6e03edd0eb14f30c1cb791aa34407c7212aeec7e9327a37b4c1bb2dddf9ef81b0738994738b71b193ce2a5571dc3ada1b83df846d5aec8a8b275ce8124b9da6b884562e937b894518a76bf3471", + "0f53cf8e7c675b8798e9c9ae78ad5de426a7ea", + "09aeae8cdf01619ef6720ffe2c1a4259695e9487a98f5baada9b2a4cd0cc5df199b8f2309676d5827a2cfe9e703f430f1e00a6ea31131a0f438447f50597b39e818a4673fb532cfffb07a20091a15d167d38ffc1a4b55906ba0f44579434cfc43bd677cece2ec69bf4d9bd6dd48e65d6a8676ce8077f1ac929e1f59def4ba2b165a4ee27fc3d8ee3eb79fd58259589089627f15c362ac2e33a91ffa70d056ef4ec10453804279f3397fdd4a820e649933df4a1c14fef66acc150f3d58b655fa6c5ec2e0d7ad7f852e8b8670cd67f4215f9fba2627b56f96397ebf5416e145ced2c94acccc8b38445e9a5cab2c065edd4fbe7117fb4437b0fea9577bdc1f02c0791a9ae9d164c01cc61bf946e9c04d7a30a4e83096226f5fb384519f7a2419516702b7fd5746d8f23b4" + }, + { /* i=4767 cDividendBits=858 cDivisorBits=539 */ + "023fdcf74bba95aa23040d1d229372582335d4affea2237bc12d5fb2e3089ecf6402d7d5715685f89218699118892d9b16db82576ceeb3d0b217af52c68d58ec34aec21b79eb1022fb7247c4038add268f45d4dfd15ec36ec9bccea84c735a3b2a4e20481b7c72f02464f564", + "01ab9f37ff92abdbcbba46f418201c78c03b5f4f934012860bf36d3bd99ec6df64907801bbec32d95823835c51a9692f48b5b34b11cef03e518482450def090dc2f7432e", + "0158befb5d2bbde5a9ce95b3d234ac1da8dd5ea969b94aa51ba3058dbb5d869ac25440d779e02d00e9", + "c7d0a19c7df852db92397459e79d5ee49fd68b704d7e6a86e683a2548a46fa133a85919681704e2e1ffefc1e434f128f031bf0fdcf82042a80a987171f326ca242d086" + }, + { /* i=4768 cDividendBits=784 cDivisorBits=603 */ + "89eb2099e1bcaacbb3901465bfc53088fbcb377c1bdd367baf4223d9e2bcd64ec15c45daed3735419f99b4c8cf137b8524f7874d8bf6e9b68599e3aa4cd2694119a6c153938b71716d7fcf982691fd77a4de488c7a055dff376b30e2cea28c62b039", + "049723137947001cdc6f978aa327dc0ecf95a379c8f7fd2a1ad24603bd6f0a10b30483563b961143b336a34fa3dd78f2f23a799153264ea7e9950fa4c41cb16eb73405f069a8344e9c144709", + "1e0b8cb0297cab07ba0e87a05b70e554dbd6636ab2d530", + "0486a8ee4077e8663da76df51c6ffe4d2f3333cb2ec73cc8ff0fe6e4f75de47029c9f5ba578be46bdb2d619a088a29dc882d65a22137f77c67859787055307e4aebd5d3d7a9eae0a4b38e189" + }, + { /* i=4769 cDividendBits=1751 cDivisorBits=408 */ + "08aeb8e6260f811d1ed84f60245d9d43ad94333a6fa2865a683259621cb9ef33947930b2f79fe03a4327e3e19544e7ca1e9e2efbc57c30ae040a35a2c92295e800f0b096569c676570e2f56eba0d58872cc6d3c40f127a86c48847363ff3fb7808c692ca0569c1053d5233b9d62cd88a9a6fac88e872820664dae60e72078417ec40848de93d6d388122e7be4038da9e23c6769c3d263488c9388230ac63df8f507977affa5f01fb35402c12d998fab8fee32bff3885e25badccf1d27537d91cd5107e2876fdf5a49c44b2e5093b2e7a1ce04bf5682e29d6a8cb77", + "35eb69d8eb68521a960efb4171e8fdcf20c57aa2c4e60275b39803b63b94fc7edfcabd48e1e4bbcab868ee7a528ef27b129f6d", + "293910c3431106eaaddc7c041aeaddca39be22836bc1ec56d6fe03ebc0c835a998a53513d23dffb88d19cd713df1712f863333344655acaef3e34b2d9fb40fc33902f52f6486d5725688df3042501d1912a992681837c627c0f38be649ed588dde9057a374a05988e854a2ba3dc0729e362bb3f6d10de74cde61cc3ee812d16fd5cf996c8677c9a6f92c7a442961a58813410868b48b501f0f21c09ca8e3a243d77852cf18f86a86", + "0d0edb402f4b0b328cc47c66c7d20913aa73bb158393d16a4a42b386c410dbe077abf8851a0dcb19a9adccc75828280b4e3669" + }, + { /* i=4770 cDividendBits=2086 cDivisorBits=1158 */ + "ec9c37d14dd4d1528c5bf549fa9d9149bd0b5d7d99b566b9f3fc7c5cf4d93ab31a19476b4b89b5e729033733ea9f6443030744b59392ada560ddd65edddf4f5c13e3be02464c85e41ec07eb484fc5f7553b0b65e8e5ecc49c7021dbbaaed6bff35906aafc53b3688b18f4a0fea921edb8fd5bf1424ad2e9bea92011298abf855b072df0843ff0ff39a5c1f95d2bf00455fcd4fdf9e0c9cb03b980664e7efb904107eb2fccfe69400316b42e6e3e78c811783b3c01000fe61e2431d1d67aab441d9524cced768a61bdb0823eb6322a22b115c9a3c1cdd044ea89b9dbc225fa3d1f74adef05e7dcedefb5b0a8389f5820370f84ae49dd582ab813cd94114be662048df7a1a", + "157d060e5e1c19a741bb59dd3c5e10b53ebceae55b77009717ad8cf0d88add6866364863fee34c6f7fecdcdd9dd1df1f2b069992375f8b20e9d57e0049edd1e3e9bf06a270291918baef84e8d2eab59fedb22f8aef0df59c49d1aa0f3be0241e7554c0cb22a4a5ad9e96945e9132f3210577e7d822ed7feea006820c9ea214b1a2a6b5605f1b238a2548bff91a44bb0548", + "0b02d6374a28f3ac2c88595e843a9eb440cff1f74ee87996f916032a33bfb902d9da567cb0826b493193fac98b941ff53b51ea056a396386a121907b360118cfb4507a845e8e897a91a232c0f507723213f1024ddbd8e248ee262c1cbabe3cd598d1064061916cdd35015becfafdcc6cdd1c1952", + "0fda4d534e7c3d39c584e6f8df404d26a1ec1c57fec32053eed2fa19be6eaaa5f78623cb3edf8c5727c29a0706d0ea925dff421fffc67e48527001db581a3cbc72e1bd88bf104ec0225dc6d2dabe6e2086a7a63430ab54d53b08ecade90305436f2fe243bbd2f3867b9c45e5f19257ecf4d48873a5cadde3773e8095f74d01298aee357117c55739f38c74789c4593c10a" + }, + { /* i=4771 cDividendBits=1207 cDivisorBits=490 */ + "364f18566532a580e6d5894955e554325f0e49d354da56d15b423f89d43c9fd56ce7f8a74d3709c0afbcd2aa149f4ec27a4ddb79dbf51320284d99aaeef23f89fe36e9e6b694ad2cffdec1272e13c91bdf82fa60396eef49fee67ac5084f8b2bb2ec7ef0bbc7429b55d1639db2628312bec6fa59eb226df099fc5cf674d8cb371c992c78576aa4ad9311d28dad6f4199836ef862344514", + "015374d3190fcd48cc93838d387d426aec8685b417c567c37cab7f75eb9f6f663b874543eeefdce4bdd316f42aac3e6055b08c3e8871202585977fdbcce2", + "28f4fa616dac2d5fd0d1e70c69c190fdda31f988fdc36ca17b8e8cccc488d7cdb357a5f96337f1c787fb8367ecb5fd171eb2cc070352d52069ea2d5c7f8ed2271f867d4f050941ed5a5317b8651fe73bc2066d7dfb80a309634e", + "61b67974b1c1808d585d87c73e03d6a7a98044cef8c39a697af120abd02456ae18a2663491cc089e99ea7b8f0753526a1880c1ac026e8cab2f530e7238" + }, + { /* i=4772 cDividendBits=41 cDivisorBits=9 */ + "018e69d06130", + "014d", + "013249a8a6", + "0142" + }, + { /* i=4773 cDividendBits=2091 cDivisorBits=814 */ + "065272210f445137b7e78c52657778d3d8378e5a3be1c51eb0911ff7493cd100c802fa66404f5d72451e6e3bcc52fa441a5d7d62b3f8c485c8af604abd015e01da50d29f8c7310392a55a210e58ea57268d0d4f34226ba195d3300d3a50b6d1142c7bbc795711998e7ae04824031568a9fbc4c43ac8606d1dfe6c82d943134ad641fc69d2c0af8dc24fba056b7017fcb7a0c82e6d4c4d7a9c4c9cf6f4a9c6575a0c3d76bac58a3efff8494a3320477f9520414f1ea8186d49d07af274a06780b4af44b61d835b33dfa3107969ce22b1cad65f2a1c2ec7a3c00e5c0e7b85492a2139ae89d81c19354baeba7ed624e0b6aca9e06dd0c3fe80dae0761310579e3eeb03a027c02f8", + "32c322b94ff8059d8ae1c509d8d3d377faa845aa772cd3ab10a42c3ceed712f56ed4aaaff879a2f6142e049b1d197af5d09ab56f248c6e9a68dd3e96b1f7a41440370e34ff8de2fa51716e90a53eac5f50731837b696357bf6d3abcfd54f7448920543631d7e", + "1fe2034f10f51beb897ec9d13db6d2f0bb238ea2dfa5ea7dfec16fa9b401ef4dfcbefb8a49ee32d8a948eb11bdc28f16395b0e46719782dfafac8920e2ab73625c12d35fcb942fa2f6a90ade2bd02d25819f222c421aa67f62dac37674536544fd73838366df89f834dea00bd74aa6a4697674e9ac08b52db344823c4078f0db32dc3d3b1f3091347e379a0954424e9683536e013b2aebfe45c666ab93c8a428", + "15013497b305cfbd6c9b049948ac0d19e73bc1f49a80c657dd3685897390c2e108cc4dbebc0246b7adb6371380cb698f4a04e7015efc540570de6da29b7c9a2c9a06213bc4af6b74843a53bf67502231fde6b655c1aebb926f82733ee108dad509b397aaaf48" + }, + { /* i=4774 cDividendBits=2128 cDivisorBits=519 */ + "f134c08718ebb65d6355a32a103a4497f3fd6c32cc7470c31de78e502bb303a2945eec0805d4cead8b09e8dcbea33fcf3f0e4486dd7d1c1b1aaf9e5b873842735f78b9609f274fe7f99ff07f0e641f1c982db5ca78db239d2215b01421eeb62609042a3d4b6a9d3bdb6db73d8bfe7860ec3aca7987e9ff32f9bf5111a8478f7f8a55bc3461e50bf9a4a8b82fb85d52e649278e318263f778cbfecf7cb69654738b0456263301fa3a0076c25198a1164f44d9954ace5bfb24a4d0f5e7fac95835936e1565781c77a251068c61c513183439a4ec84b8db2e86ae56dbf0f8377f7ebaa3367b3fd9f469c0a09cca22b6fb1c99a8c34bfb729dbf08b00edec5f9f9be0acd0c7b7a1a6d0cc359", + "277fa013bbc596cdabc288928c0e5aa5df2bbba019917f9b19ceb36f8f6ea042dcfee6daad4e957e788b017d33ccc09432513b9eb2c62b2f82dce9b97ebaffbc5e", + "061b514600713b99a25763aa0da0b9dac1721079e7511bd071c421b6c79936f453bec57293bf594aef827e7d52bd5c55c81440ed39b89b39ec3a52ab84bc6cc3ac2807ef2644c3a88a85213342852820f44f35826d9c4409f6876ad74f2683c51620a59c403ebcc94c7bf985072d36b3e0a59a9bae809c5c0d6a8f86dfd56c81e246e8e29d09d0ee014fd2eca51a5e4fb00d3d9a6e789f9b0159ee7b1cd08c3c1f124c53fdfcc7d54fa8360eea5e8f2cb81fa9f31a73c2e44be3fc0eea54729a557bc490892fd2881bd2", + "0d7960e34573dcaa9f3f38478a3bca06070258f4f13f30e0bf2a3df839d49f287f46586de6aefc5a3cc7790ec3361243bf0bf5c33954f79a3f8fd5eec8e076543d" + }, + { /* i=4775 cDividendBits=1930 cDivisorBits=55 */ + "0153d8b5fcbd764d9bddbb6dd53483204dff49fc978fd05116719a1a1ed6470c25616224756b9140979903900e9a3de7b2d96a8b1651bfd58019adbd3231addb4fd03179d550d4ebca8966cdb83a6bd69302c68fa256347a3568af975ed08ac8f3967105d9dc4039993517d48591fbf6f6d1b4c981856037c9efab4f171eb8c14858ac469655542f7d48505c514d5f34cdb6a5b8d67724fc13d1e1b8960ac422abd9c4b171358d587eb8fff507fb457687fe509116c5f1b17b62c880d6b7e021200743013df5a9d1a10ac16100bfc49292fb199e978077e67a6e15f9ccf6b339950be3374b113ec95aac89bf9db7ca2070cc", + "78262126756e37", + "02d41b6f3fcdb2a8520cd1888e89539fa4e7682db3596e37e9f8a2fde7aa348de921b589b6f2706d7581a68805fd84ca536be609ee0b701ee624ca1459d8478dbc367c0dcc934cff56f761246be446f578fc00e71cc8c434db5636822799279121043c26ea22aa10313f3d600ef4c15f359d89d0344829f3cc145c899071ffcd28833e46e9f6ed6938cdc66803553eaef7d1a17b670cfc72cbb8d739439b24fb466d2cd7e24b60dca104b87aa4774b8d35852603a4b17cc897d7e30d866545905cfad9f7ba6adb3fb7703a8d807764093962f0193caa0de78843b67863c67e6dbeda00f8b9da1859d4ea2b", + "481146991ca78f" + }, + { /* i=4776 cDividendBits=22 cDivisorBits=6 */ + "0b1aee", + "06", + "01d9d2", + "02" + }, + { /* i=4777 cDividendBits=3398 cDivisorBits=1502 */ + "13c57a3c6b29d24361ff9150a57751af7a6e6198b252e9bfea55766bb5441595939a825ac2e34376963027e342ef0ac65c2a2a6bc82cea107818c8e74afc08705fb4629913198b1ab0f0aec3c7833e73ad19499adcc58b73972f3df113533fca197c1c8571af8dde992e7a8fe2a827636f0d363d4aa7df24742af1571c8e12081bf167c2635b4be7956d88a2625cfe0918e6b7a914e5626ac2518d6ad7a1d18dc30f8e4118ccf944b231c085a5abef726f1b8c02cffa0294ec055035663ba46d6d7caf650db8a233182e97eefb0ade9ba2a66708ca9beaf78f4584492e5be859e805027e25476738b4ae5d160e3e21f5d4bc6a5a8400109f07673f32ab53e55835e13a79f2b7ade8ab398e208bed231b3fc09f2077d621af69726cc1eb609b521a54fe1abd0cb32c5a1f62b209179240c865a5ecfddb8544942d517b49601d6f1f421fb1d1170c3e941436c5504a50dd59da408e3abcf5de08be827ad02d25fff571b3e0622b213012d28f48775584647a36aeeb188fe3532ada4012b29ee7fb2d02490b4b2805195d32f2de4afd6c96cad104c9026566dc7c13da53a20bff03d356e4f3e2b6923f05", + "21875d9cd9d9948243d926b8a9753f2cab222c118123b99d61df6b27a42c04b0449fe9515b1b9f20e910e78005826efbb69a1616188fedb48be8b3b7c71987832af679e82060df537b367995acf65b9f2e0d75a0b91cb65e7321127d5819f37dc4ce77e5e3757367150850eae8709e1401f57b2150fc81c571db059ae0ef996bcafd5e25645dc6262ac2c58f754de15cb0b74926144b621c750a6e570023e0e3226ba0bfad06d33b7a72fc66d9daa01589dfadba920ef04ee6bb2f04", + "96f58fd082c9c7001176791af01b96f741f64f07fa5cde31033dd51c8566b544c16bf4a1dbe2bf56729710ae0db96a8b44c7f9c32f8761f12ea7f3eaf5ec6e35f5d235d7e8776f29c7f4b6432d899754698c25e11aa3437575252e180250bfff28c21258e544666659b686f7d9b0df24a9e72bd9ec132a3b2cb70d19269696d0fc3d4922ddbecd05942d8690fc7d2d9ebb2465c1d0b0bec051aeecccf2b6e19c17b2c27ccaa0f01cf9c7d2e88469232187b492bf15a2821e3ee74ac32682f269b69778f9e660a5682b145d8d7bf658127e9c71e8ef3bba67629103ee9e67809095ecf9684fe021ace91715dcde", + "03a544760a0b2d5954c621349828673e945ef75a0e937e4090b86f5bce8bc2aa91ed2aa41a615ec7b172e88e7101c6c62de44f6cdf9d56f67fb0d21c75f18a87124b8431fffbe2eb0ee073f37c88ca45a14f7efde93356e91ff28abf3c7c63a6e3ac882df0c4c229058868fe68143e5e634d158c7ee359f07885e7c9486c01df22170547d22da29783910cda7e121060fb299fb36f2e8e9387d9754fc2553d61e7c9d32222565903d9a883037a4d688e986e4f5cb6c087f58c84098d" + }, + { /* i=4778 cDividendBits=3745 cDivisorBits=1130 */ + "014fc040dab353e7f21f48c99a02b4f9c63a60a96c83e42e79ec735a841f6bec809a8f0fd72c272a4add62ee2d6fc45b0d9af0565ac57493ada3d6b72eb244d1f3edb218853acf397419ca63e36d390ccd431fe2d2b9e6fd63ae617246ed280f2f6b97a813f98b51da805177fc05f8a7a3a987c86880e3f4d83df5d422b28cf8e14fe596149dd400560f859dfa6ec0036f35291370d3302208232571de08100bba92fd25bc75a3817b3c2fd35b1abad0ff810049b5580415d73881d466b149cc6aa1244ad0ad78f75e06070f1f0bbc47cb058cd8a93280dd497c0afaa92974b8cc0ac785384ad2fef633cc64df9f794c295d37639670eb58b7cc84567139ff7486d246832c9b6ba2c93b41a7fba1ae2b95ab80903eafcc547e4c66988a57d0d0b375ff38ada9f64990dd028708692f1bb79e1e0f30d34eb0ce3b107aca5d07d816e3d1cf7003d334f2ee007843ceb4b866f45079639d9e881c2dbaeac384832bc3f40d85fefd1a15213b4a697dc63d7f47cb2591abaf50b032ce17ea315961a9cb2ac45f5f93d87f872206fc81d9ffb659cbfa51bdbaee5582e3b023dcce64ee0fbdcf9a5f3292c2b848b14cc5e428eacc02db4bc116ce24536973e4853fd54b4cace788b1c09604a1d3002e7ddb54b2ddf48e8633", + "012fd9432696cc79a52d02af7f94b2ede948af186fe31f4741a507ca245c5dcea36c65452b78ca82ab7e58ce000d9623c95f3be236d60588a3840258fe49f8d8b15d6be2aab63e94babbb8cac270d60d8d1eb71607c9804edb88eaf616b5358ff6099796de8131f6c10e7cce0f85ee0b6347633b849f51b5dc6a21cd8eb06818956ed91d02f6dc94757fca54f5cf", + "011ae0e423550af9f2dab944b2d06e9a0487c90f5ecee0b741ee91be930ee726963a95cf3cc361f107d6500100888d08005f61804ed42414b8ff8468957e3f4c439c838a0ef68dd2bcf84fac85abccc2cf3e268d9baa3c8752533a523841aabc98d0c07388e94e2e08caa166f3a5d27e909502c67a78466fa441d261af79ca109a8206ceeac1f1de9abd44060943802d9a206cdae21056ed3ca874172e2e7184558d9705169c59f308ca16b44a2c84b7e02643ecb2dfcd85abfa6e195d33412674f517e936a0539909be99efa1cf926081aa07df493732a9d4d1030711df75dc90af4ffdc18e3cb113fd3654a5bea4790a5e3fe67cf449946f5ac5a9333f1ce233c2a1dee868b17254f4549faff320451edff12b7b8f4ab90b1e8cf521aa0317523be394a786a34b900c1553ad8d5272401d73c812f954f114fc328ffc2773bb074eed74cac82736", + "010148521b7ea623a017513dca0093eab76df919f6374698ef7fa509007e7a931ee181a156fa9ae18ca5ad88f6a23997262bee05e5f81b5c5564065e286f1c258f15f76ad842d5db2a76f202e04e89b24abbd7fd3a1471c72e81ec45c2c13401bdb8e160364663507f2e22e32b676c4348997f1fb58cdcab223b21f0070eae7b84e0a3fb6a15307e50f4f5782389" + }, + { /* i=4779 cDividendBits=1772 cDivisorBits=558 */ + "0326cb608b7a295633e16ca35c4b34b2e68ad2cedb4e2e6b636528cf10700df1f1574b6162b6f54b6b7860d704ada1da67ee31961435f980bc8ad24f2555f38a8ed3c24213db10289003ae7d428757e4d9b21fa2c096ec6fd0e97a4e8500c76fedf58afc358b4a7bd30f0c43cd2902c7ee99e4c5448f7956dd39b06f605f562c981cd338e11dcf3944b84478ac5dbda15c44d46958e7edf550725b061b0d32ef4b5cd2dbfcf898f7733fc36e93c8009d5bd0cf8ca757d4309f124e836370c2bae421e4cc6565a15b603c4100b7ccb1c7ff8bd2ce14b721253c9e8a767324", + "087f5a5d6eb539a7b645af1bbca1f90bb5971179a986e7a45fb26325081bdbf0d384ab16c6e405e51c43796616fd448733a9ce2968631d77a29a3b9f69e906c4f3e8d7812bbb", + "5ef1fa3634f7c40a5291276adb212a916f2b570b9d09b39f70f4860abf3291be39c46c190e8c89aa495b55c0f1bb2c4ab819a118f5f645062ffbb3b4583df6b6850d10aa3c1ec106b26243ae7e59616892033353646d5431cdeea07d66891a5b6524596856993e4078d832c42c82584703bd23d4207aefd312410aa97a40835242c3020121382d343e3ede5835b64a2b865720a37568d201", + "010b1f2d0d0069d89750c6bf109504fb7236fcfe5286bb185da9c05a1697882da691f8e2784557b777b2c49b31fc7007b46ab2431ca862316279416f175fedf27a66821de169" + }, + { /* i=4780 cDividendBits=2263 cDivisorBits=1308 */ + "07042719cd9adff8b89c08aaec94e5fdcbb317f2b937f9c999448c5cd3098e60b33a48851f763b4a96dfe575f1fecfb249e9b4a81fcdba6b1267540a9443f72765d10973005b0f04e1001c8bc1260653344d09a15728c0a03b97e39d0ffafc87fd78b6e4b041f2b3f05584d7931754f5d4f276ec344d84c9316fa3ee12a1ad91250f688c528f35cd127a22aa24a079fe41e565feea442dd0dc67d3d7f4932d16ce4fe2e505811ba14e402a48d4b6e4a4abeb19b029c1afb8ca6f5d6df53ce4d15cf1a47095300f1859f9bbb7fe920597110a15806d93a9d4e3fe1bb6844d7ec8b4c52913f812052adbb58725ff8a91ccda72a0758eeec45a9047dc9c896da78dffb6ed5a77933aa2f04e366b9b6f1baf8f055290fceba64b1bf1bb", + "0feddc96e14b82cfa46afdf7c0059b39d7b736c44125a15d86e0af2447b45eb78897dd66ecf0c1017129e883889e3d497f354cb46acb2bd37a4adbd9ff528cd81f9a38eac20ab0e186aaded24d9174fa0731955c57d7efc3adb91e9368a89cf412933c8ace41017c5d9eef36b70486c246dddbd3e711429680b1204598878a4731c192611f7d366cfb91fdc746dc1352d3877bad13595daba3432f00167682a83f0c7ec3", + "70c245b915b91c7d0b6b8a2b1bb9c705fe4cb6df20af179ac8196a93a598a62b5811a947de7ddef71af4d00e768677a03459d17b3b12d6a217239043803af6deb1b023c0917e2a6bb15d33d821feff6843a9f71c645738e3325f160ce6bee8cc21c5abaf647b80d1a65a7000a5b0163b91492420663cf9", + "058e8c90a269ec3e63daa6782205d7dadfbe42258f2326f00b8d6a1a4edc0a77b6d97dcdedce8cf5432c8dd302854605e678a31d10799619ed71dfcaaf354d608e2f6ac9433f546314c544a84ef07703d06fb2d20a442fdf94818176a378beb05675541caaaafc45064d841cd8ae725a919f5d300356d9cf424cf4713401a76a653feb1768ae211632812a4ab9ba97a2fada72be20ee6e6df5b29fbbaed349fb288cf210" + }, + { /* i=4781 cDividendBits=912 cDivisorBits=592 */ + "bf85a7e98908932339f97ec4c875854a6090f5ea4a44b3381046cff596350a514c2a676d5e6c88e83f1b2c065b44318e19733390525c49c0163ecfad5f9abbf41f5be25b54842e14fff8e3dd657d35cbffe7a3bb666253880e92574d008f48f7069ffc6dbc29eaa06e5bbacae363a0e0d6fd", + "87d0563f0f201b9665156dba60a06f904bf6d440b192ad12016cf24ee3dd4b16582968777364992fef3d1d0d64242d6ae1ae59e1bb51f58cee8a87df04aee2b597798c577b31f1252339", + "016901a3012cba803fd5a4c353b6c27b514a0d6df359ef57b95497ef979e9b97efa0bbc04c9eb41fec", + "86f0d06ce2df2e3b3c3842752a7ad3051187495d41f1e65f673a73d24a74a0391d44da1278dcf741fe6824be8e45a7b742dd45be7bd9b76be5fdf48b0c5e624681b98433965fe14c7771" + }, + { /* i=4782 cDividendBits=2518 cDivisorBits=679 */ + "2bbda47def726d28522f1c88820542071597e36db1d97cbda1bdf0fb2c704f3401efacbb5a0243bfe4c1f917ce56c4606ffd0a6ab3b4a3fa3932779f4d3d283ed40d175e365cce42a501ff5647449770437aae6c11ee728513294a3a2a8ef7259f597f45912a730d08151c9884481f62e0ad75334bd959f3835d3d01b9888fddfeceabab15ac6c5727eaa4fadbe641bc47c9bb694cade25edb726a625e672dc825230330f88ad8d6be1fe7886e290efef6f633dd1ac0eab4c684508c51d6da7a9b317df0b91c405b137d6bc5929cd9e64503714106d4a0f28655179f8567526110b1fc6b1f43159656fb074a509515c4915b80081a86d9380135216a84224b39481ee4247129b0879f1ac7d7d36bbab5baa68c5027c9da81f1d2d4efe7b444236a6dca33ddd35959d671e9b7ceafc24a04a3c2601192c11007aa48", + "5043bb51794061ac972171519a7f9ac4c5e6195a3a1b7d93513cadc2ff31814d0d1547cd28100ba86f792e3846dd091c5fda8da447240c0a19ebeda3506438f1d91b2dc281801470e78458fb80b1df1fa9f395c31a", + "8b82575b14bd3b654c2e3d7d62471b0df50faff43efcb273fe629e44bbfbf84e824bf167cf9fb355f912e0cad30b2d04e16e32b8a4c2b16c3899a5b6af8a166200bfbfff4f4e1ea9299cddd882ffceb53606b63de2b9f6ac6f33997d98a60ca07ba5bd4a8a0e591da76c0c0e07166c228a7baad92822d909365c869cd32d96f5b481957dcb997930c99477ca097d15fedeaaa7c8f76ad4327e788151bb85b5cca420bb4798c7edda1ed2df5101c760ee2bf510ed81ccaf909d1d9fbb0364922bca6136792c7491f9c8d23e5f0dfa926f43d4b6407cf6fea89d8b83a6306bba91b1379cfe0d3d", + "1e35fa33ade20081cb099cd16d3dcea15b642066926349d038cd8e3180a913469562e53a7fbb8999837f7400882f11bf4cda6672452f7f30dfce5c5fd02380908f3542568e86a20c89aadb380267708fd1fea3db16" + }, + { /* i=4783 cDividendBits=1658 cDivisorBits=59 */ + "02d23b9969999357321f11b8f2dd53287e983d73e1c9ad32f8ecf416facb44e6f086a07f6aa113c00db5f6316ef994ce8d87916ef22e542737dab0b859d82452d45698b295dae44effe95c1f6eacd53022b9450e6e855c3442dc0cb95dbc0e84460cfd8155c902c639493709d999aaa17fb3352571423b849a0a8ae9711173c7775676ccddc10734443153522e4b391f5861f145ef6099be59438cf5634657fb99cd5d29fefb914e3c524a9fd331657fa0620b678ff01bf2e19e88776d47766fd9db3cdecafdfe0807a675c44719d9ab", + "064bd485aa5cffab", + "72b5880e07517eb06ab7003160caa846a2818aede88741e4642db290393d37294932494da1236516bd3e85a4e38a0f10619a3fd54b6cacfd1ad488be9c2ccf40d72ebfe4d70c25fa14081915b401f3776578438f7d9fa8112e20ad4d72c4910cc30a3970fc5d318c17d4a992d10d547c4ea3df45f64cdc2be4939cb2ace90fe1de3ff67a8aa7c62f4880d9750f49c104fa5022d432ce3c7f697a01676dc26877b6052d4f9b2140b5ab6f56c012ad72e9bc90036dc38712e5721d2c7125d6bf003fe9d65bcf74b063", + "7a284b56e16a8a" + }, + { /* i=4784 cDividendBits=2687 cDivisorBits=1855 */ + "55957eb38383e23d052cc4da4117dab5ce20d345277b2f42e5e2487970e803b406337ab87d316962114ea319eac2f2a19249508afc0e05c96a88c78921950c85e17049805962d1d55ee2fc577da44ea7f049bf343af7b86058db1af024eebc3e34aeb91fb5e8f53e9738334fbdbad9103f964a7e9fdf5a68e6259c0a3b3f0accc5b1212c27b942549e5268647ec12d678ecf093a5e516fc47468c7fa2ec3cad0c16e573efb856c42e84f4db16e12783af7007e2e9af0300d5f94ca094ecb2779fba201f00003c365a1a3b5cdb8a3c7a626db13c6967b5c34055f53d9c9459481f3b438b2e62fa4f83f3d08a33439a84c75dc0308498559e028ca9f5fb6200cd79fe190b68caea3e96621eaa456c201999a12c537e41b6bedd5f2cec9a4ae4c8180185d98f0b01dae11189cbe959d2aaf719b0bc8c901b0f750373ba1d5ac157384ba1ddb1b4ff03ceb7f42eca94dba1c", + "5f95d8e6e378eae4adb5e9a255b26e292a074dbefbc926271c07ec78b069dcefefffaaeb770510f8ac0768a6d91803c8ced40f92212337d0f6e8b6d25b70bede77b6a5515ee0aee0bd6f79e8d08c695aec59d53b19b099e13bb0337b7cefde6934435b2e53c72bde7a12db31b5e68d2aa7e9604ff6dbfc61dd8b8117f54616cbf598855f5f28dd1d4045b11c1657c6a35f06f50c566529de0c032234c1f3b8991246fe9fa09142291e60960b1d4d4a072f9557f3c850104b48ad6e968b9625e0142d561f02c436e92df552c92e5b07370084141994a07fd971b5201f52854ec391d79d3fc10883ed", + "e536c65e9ccec3e4f4c2a7789529efc510fb1e623fa1445e9b155d052cca9a34df648a623e1a8f3c758515e4163d103fe9e18ce2e9a625ad1b3eebc5ffb36c7aafe6a4d7b424eaddb09be5f85ff3a1334fe7dc364b93d17d5ee4c54300b92b473a838f08056b7dd8", + "06195543f7d12242d085f726e6c953a7056f90d82697f6d40c8249c084768d30e13b9237fe29c88ef1eecf6fd7dddc7ef828b919688de6542a60f5949963c5021d46d0934429646ff144761368df12020b3cfa8a2a0c5cdba6e7d8d115d7e16db00746e152cd37516f76e12830a42030a0d5253bc322cf2844fa4afe5c913f3c2b7d8984eb4ecafe2d67062436c9096de8ba6c6bb688b73ee3ab0cbbc8fb0a74c5109453ad75cdd9a4938a33caa12e75d8c1eb53fbc64c3ab8b50c611b8974ec301f7760a57f741282e5b0cf2d595ec2c18f334bf8cec9768c1eb70d6f0f30069f231855dca4b124" + }, + { /* i=4785 cDividendBits=2348 cDivisorBits=1690 */ + "02456dd9c9a2f29956a6297a1217f66bcd224573c05916ddeefac29b4ebaa5f0bedf05e5599c709c836f27ba63b4c354806a53ca712df41f653db6e2f8a7594c46f142a4c6e2fbb4ff5869b5e919643851f8faed4b715f9778a8deda2fe64ef42fe1407137001e5c864a79e9ef15f1cb1a4551be2e8d7d55d00eda29cd039644e0c85b53bea38a5e2453ca341a2b143beac136b0f60078cae6ed05448bd05bfe41163c7f5f677065ff90a46b57717338282cc81fa964e69fccbc25545d93c48fc7013769f83197ba6b9599dff965163ff8d166ff9ce2a7aaa2d727b77a972304529a9f126ac355d337812f47785734f3c70a339c17dd7a88b9862775b0f78631891bad30244a1f687c8ac5f6132bb5ce38a1f3a6fb1961920bed152f3ecb98993734809518bb", + "02428fceec8fd3b2d03d84277e7d784b7c41f2e4b9f0a6c80b101ba0c733edddc872d73b604761bff92ce2de39ede860f216052305d10f715c80ea0e4de70c314c318484f0a6c2abeee1a9f2aae2ec2d4d49f326f46e954ac56ba3a404142b7e7d3dbd61460447fbb479edbaf7d50aefcbd06ebe87b9232e5282947fe1f958e5666b29b98fe3dc60b88da5d3059185967a17cc4d5262e48d7f6a8a1f63a0268dd9cbafa5e5d16e8173964b7a439fa6b52b01a7d77006c22c6979e7dcfa33dc9ae4005561c54fd85f402c87e19d86a156c361ae55", + "010144cbeb05963b5427ad36254f80403a73334e00e46a8a7fabc6e461dfe56c9ad233e0162b94787b7771352bac9dd29f13f3ae5b426046b2b8c631a830a9ca5d42d912da249374d1dc69085363cb84cead5f", + "ab373fb1600976b1eb23ed9def5c15e06990bf080e3c6300c85ec7726b23e98d092b7aeebe3aad2dc5485588829358dc4b7d382b1ca2a5eecd71b8644403430f6aa0177d412e6ca71f1c4dc8430b0e9afa5144d4cb28e31b3d3efffd91cdcae54d7f9b2d63593549e7235e85806854ef427650950ea2bddcd5c3f7b9064129444d5fefb853f30cf18540219c571e1c6b308b7b00a16d8f69ac1900c176c536b9ca172e0ff9761aa523e1a0ee3bf317e64e5f2c9162c385d954b48b715b5162b1afa8e90fd3efc19465bcc0b59d0313e01ff630" + }, + { /* i=4786 cDividendBits=1087 cDivisorBits=536 */ + "35aebacfa38aa576cdb51c9ce1fbeb9e12de9422cc6145691e16e157c94b6b821f04b0269d885f37bc4009e0dff8b2c56bed02cbfccf6d6a6d2a57a462f251815381e75d5958a9f5df83accc680f698ace898b7163723a4c3d2f33e26e63ad498487af2ef76a1d319ed7f8179037155f23cb9106d4d91789b3d4c9fc0dddd75aa5c61fad0567027d", + "c755ebe2719db0328b78564bbdd9acbb76b3dd1e17ecd14f161dd5e26af2947aa474febda983c6f39918a475c0084d7485065521012e8a87e3876cc0d08dd080f6d494", + "44f152894b5203dd436a98161b018bc559629cea35ba169fcd1c0fb2b3c147f24af6b8fab8f0c50471284bee2b04a6896fb97bea4e307884417e333c1dd31584cd43f6a67a", + "a89a561118cf5bda5442c73760134c9cafb3e042524ddac258208855c49ad35d5e2b957a9eadf652d0312b2570b3b959e547045600050a14db0e49b6e845587fb5bbf5" + }, + { /* i=4787 cDividendBits=3419 cDivisorBits=1153 */ + "023f904ad425848081bd9e0a45c379038b02ff2bb3d9eef70713db06bd7a589f698a1a72e69da1526dacc976437e884b8195f9e936aaff18963e382112a10b93d1e8b5183cf65570b5e2f2be0bb5d2368880dd31f41af26b6c3f65064c55c3755aceb39e4279c6da44e7dfc8330f80b4d764adebb9bb90e4c310c74fd5331de87db4a6c8c2d9e355d47d7a0c6d7deff9e9d79ab152a488cea665b57cf84bd88ddd1dc44e15e02ecec75583dddf1db59b3a4b8e2f02c46bb3f530898c621a3619525ccee359b73334b1f6a5a53fa624a69357b02b2efbd93fd34d7f8c2d85fb7508ce5cb159aa1f322ef8a0373727308681858cec4a535968f85a217dfc8e3f557b053cb271089aebeddeffe8bda7dfc4a3228ca182a684826bcecbb77ac3b9bedbce58af5a99b635970ca029da9bece6f4fd36aa68f1a3670b0cd03dfae7c92ddd7a20df1ee5c1432dd1c6202ccd9715e2bf46c5087466c53e73f0aa03651d366d6822af64c0ae71ff4d8e2ee457b165ba1b4c4421096d64ecac4a5c8417dfe7746703586d5cd337d1355e6e23da66bb91e93b6819bcf7b2e494f4da569fe671ffc57ad3043fb21cd6c11a4b", + "0108dc21b49a97406f6209fd81beb36cf4ca522581eba156740185b1e35ee8bec1bd10377d14ca4ae9397264165267f38c5ee3ebdc33a664d86e26069f7ec2869cdbe5b1754364dc23e41c2b62c55591e07f9ec96eb01b070e1ea348dc9de849c549fc9347e50ca4fc959b1b27fc010173650b886c9ac5ab0c241705c475ae802c111fdb6ea56f0239e0459078f9b6b4b1", + "022c4f71c1a0a2f1c17fd30b230bdf5b2fe7ec53bc8c40a7b63c583e7817396e5b70af5a191c4218d8fc4c0555ca9f5a11811938294bb8c57cc3babd8e79e010b620f4aa40b72acf133f5991881451c0b7220730b4544313763856434f7c024fd0f200859306bbaaa551b5df6f31e7976913e8f7dfaa623a2b73b974df1f7e8ed5ff901f4cd7d95c2e9d0d8b4acf70d2f4188ad99f04556d0614d0b5f5bc8d838ceda24226adae4cdef5598fb33b754ec9bd12aee62db63e9541209e302830674d093d7734dae8f7521f770f02ce570ef831cdb203f8b0cc14fe75a0c2ee875220e9591638cd325c63b4db8394ab685df15e38a6663433c45025578402a14c70454edf8bd20ebed0d8a5f304bf5b638b39220462c1799a515b59b7ea", + "d2213ab803f8c297318a5173f869365bde9e8dc5e7f97224ce81b2c2688991b37ca25df793e2a8ad488bc4cb9ab6093e0bd981c303545b5e45e4d382f31e5f9286653d75b0beef618f766f88d5f112d2ccaf885ebf60a5acbe94d5ef0e7f06a2cf781c2593577a67bf117d06d3880a34e9534f2b69126385f211223af962f8bbe3ebafd2ed3c2e3a4b65c0463e0c6981" + }, + { /* i=4788 cDividendBits=3717 cDivisorBits=3275 */ + "085b92bad79894a4b223d8f477bb33630e43111390f731e38b71d761b0d6d8ca66c85b79fbcbabcb0ce70202ef60ee5e599ab35a0541d792b9fd307d13ee2a3beaa36521437dfa0396d452a9cdcb5fed021f61b25f079b4ce707158196c055490589ca498004c075146c49f116fa9e8d737afd6b0f2d7a1466a40eccc8552bcd9b25186328ee8470b33f7083cec6aef63c21fb439180ea3bdecbf8b1b0b612fb7c24ef87f2cb539636a5036dd0c15b3fcf4f85b02050a2646af4eac30c999d7868d805a3ecfae46af4c4ac6c305e5008d9a30987b25c564e7a5fcb5e463d5fc2539b2543914fc763b33b46c6ee832b0fe1c6be25f4d3c8471013c4ff9a5b24cce73feeb5b68eeeaa663987f92752e0ff24ec102b0a3e637fdcb2ed75aa0a9c5d38681b0cd7bd2f748b43a30843c063bd4c79a47dd9c8eb8a4019b27f32a217039ceb613d4ed851a759dde10fbc2c5604dbe5013e812720246ae1006b0be9cd828d7f76e96ea114d54b6c0ff4de1bcff2bd0940fa928fe3888a5904c63d6559ab3d33b44df480cbbfe2f6e9a41a839e1727f4b87f76a7e22bae6485f4195bcb4732ce299e86f912174582b3e58ea80cff3f0dfdd24da81201d89f92e40fc826233ae504c77422c13c61cd1d0fa2580038e6", + "04f83ceece1c3b0e796de34fa07e55c5955760e1dbce88cba7bbde4bfd5f4044a850266880933e6819ef5a8e2c1f327313946ad8306704b159de766f8e4fb44ddaa5de161031a90cfc912e1a0cd86e3177afd59acbc2133482a4df34ebbdc94a97f5814c276ffaa95f0e69d6730f08531ddff28aab158327b7d9ed7e3a109efd691ca3216f82467f18d4a26a14517cab822047720915a9a91bac8d851fcb587a7b2426caeca69c7bef2155675894bd857a01d7d9ec599b7c485893c05db2dd688898894f476e0f96d46097aaa96f952cfdf8eb221ea735bf7d3826143a565e332170e0b0ab319986cf9c6e4020442fef1ebf4b38a36f44358fba4afa9227755460fd52fb34dba60b97f32c1d91e95378f6b28309bd68455cce574ee3291e238b36430d2437d102c0ac7f62681ee4bd884e9f25e2781c515b4f5720152a30146ac3149299fb260f6d9532d74da7b647589cd3ebbc641a81740a6edd2c804137900c774beec579b752be2ad20312398db88c1cbcb3af266aa34f16b8ea6fce96c1703b290f6d21b5ac6ffebe4f36d70b18e58c4cf21152742466c6", + "01ae867dedf8c2c3dbd93262247cda286badf17a233e58eb04d723cae76a1fd349efc9c50ff52fde915b2c31c7e862bbb287fc463cf26275", + "04ab612bb391f202f73007efa727a1a927f82963e9bf9b98693dae70bb2f414dfc1309b43579ace8b1ca19c1131f2efcd08efe7625a05d8a72d67257ba291c89db223db3bc56adf6ce8f3ccc36ea41e513a10344379d687ba370fb44c52fdec98635ae571f125682b92ed30e4113075e445b57f9724491f7da3b4dac66b0d76ea79f3edebec742c02cdfdfabf2e2b1bddc57b411b6d4ce4e0b8d92f691eab4d39a067e8db053d753f923bfc2d9d0fa510543a9adf6f9f40c8c34733a168a60d9ad05a924fae180923438b368dea63d6d809143bfb04a6a327707899499852a5df4e8f47f76b117ff97310c3217c996adf06921b2db250b165ed2517996f70da1b868b0e66bcb956ce8264c999ccde6c2a6eef3d02048251de8f56fa65f62d941ae020d83b0368b66da80a98db892215da0b13e5aa775ed445313c7ac6a832c52b2932e20ab02c57f0f052e89ef73dfe509314bcc701f034130725e02a93358a9a82f1cff28af37ca2f97528ab57a02be5c028416d1ed16089bb3d1bc4c085c8ad42eabd4d6a26deff8605f34d55109fdd0c0cf263fd9c4d97468" + }, + { /* i=4789 cDividendBits=1512 cDivisorBits=463 */ + "d392ee70e9549b14e922af37e7348db59bccacf46f886bd79fb15a345fd829e6604427c50ccf7ed985dcddd3cf6a5b2525bdbbce43bcae5ab09d023665d224b4c16b2f4059f9a234ea272364e9ce01a724eb69696a859d364445584e3a98bcbfb97a1c722a13ea1c0595b0680dc9f63fe5071b342f00358a34a9231a46bfba463cf18a6936d422f241f7ad0f294afecfbe94ccce7db38ce90a80289c6d64cb9096ce7ddb4a1830c860d932886a1655c68ff8bb1429eadef7054b474b78", + "5b7de155189921325b62c55734d534760972e67d4ef432477e017aa317578749fae8ac67233997d83ac6a56e711e55136751572f597c499aaba0", + "024fff88b0a6910dc9d0e91c4937d45198af0eaef83991c8a9b2182a5e3783df3090690cec812f6a559f92bcdfb778b1098c64c53d5ceb966270aa37e6459e244e098426fabd638deb189710258a7332bcf86ccf6955f6907e41f8bc154c44c4a6f915fe7c4bb4acaba3340666a20882d35f16e228c7580c3ff799e2d3241ac6d37e92f3", + "3830c4e064cdd487cfb93a69992997e08954d99c0ef4f8850cd632f97028116587e9d52f298a146e4fe1d4345fae9b25e01c067e70bbded52298" + }, + { /* i=4790 cDividendBits=259 cDivisorBits=243 */ + "48fa987a737ec33d9c88bb4ce53b663c4371d6d1ac398321046f1609d5602c34", + "03e29085421522c954d201eaafedbcc9063b30edd2810ef06bbe63bfd50335", + "12c8", + "036e33b261cde85b80874d2d12649cc66a27df12b1a28d9cdf549efcbbf0cc" + }, + { /* i=4791 cDividendBits=2106 cDivisorBits=1168 */ + "01a4b051e7755e3f6ff056c2ae5fef2d6370c63097a497be1a81d39f9d598e3455b14722ca815d2d1a6c611d22e9802e8a090fa6498ec20fe4545e601e3f72e96f9195df44716dc5bb071392fde6ee216fbf1de1f270747eb8d1d01d5107d97bf35344e4db2acc6a2c6d28c50ab7e3b7cb3c36256ceac44cbcaec21866726e58893c8c38fcffc677563a21c0d77a673b578ffbf46057f2ce3f329687153fe0666a1cb1ad23cb9580a5494d656aab48e94c429babeae788f1e9e4ad45ce786c41a969c3c663ac2479dce281ee38f91b7a16007ada562d377a2a7d5e112198e4e8ec1bd1a72c0ace5a564c35c709194bf4358ef74ef8b5e8d81dc440a4e78095ccaf5f76f680624187", + "ca38be77062a388ae39f2bf580f3314a0bdd15c2b04290e823e71b3828551125f7a345acb17dd26d32a8a3224a20127397582bb44f5be9eacff8c83124eeb3a8ec1fe525014e7035751f417125e17f39781080d94bef4c35886e01be8312fea81a98c709413fc26e57b4773bf42629c653b0afadc24ce1ba49267a09e4b972353dbf398ecaa53202f628ca9906642b8464cd", + "021490d25e385f036be3a8e2b7df59edc63fb8d209f27d58782b44ee264c1c1328c934ee99fa2a304bf674f8130c6d438e18abf3086bd954e76e9940b5c0c9d31be4c2dcacf9584909e583a5e4440c24705ef2367d2d8071301e3f9f626fc4163f731f36020a00d79c9277406b8720c20fa8fc6335fe", + "8f8654cf5e5031caa31cb8b1e987ce2f7a5fd524b2a9f85d437feaa8fb372eb0d48870a9386fee1fdec08c030f5ffb94c9ca6afd9e6a0274d89d4fca1408087d5a72060a594f1e53961d23610544e44d1159a8e739bea08ca4efd9283714e1c67be1a934e655e45aef0715657f63e0f0889bf9b712f9f79125bb6dc3b4fe1127e2e1b7ae12a4420c7d979581119c22e0cd21" + }, + { /* i=4792 cDividendBits=59 cDivisorBits=13 */ + "03e67dca17da65dd", + "1779", + "2a89da837743", + "0232" + }, + { /* i=4793 cDividendBits=734 cDivisorBits=139 */ + "0acaf93e6ce656394a460aec3eb54bee31851a095cd612f26a0711478483a7059c61ac0524d86943812e96743d188ac5f3f068439ee5d22e6d23930a840eaf80939813509b8f8ec48890f89def2e9a884d028228a547cd92ccd96575", + "1a2eeeca1a610c21baffdf81f293cfb3e0", + "69862e4f437999245875b546772e4cf1061a0a5b65ac08a566d5ef47f185ab47c4c3d4d5b91489267ebe1feb688d2201ae613b5bda4b0c86b15783df5f5b1201a282b0509d4db956636241", + "18fd6c0d28b84a7b49c4bea5c5f2a0f995" + }, + { /* i=4794 cDividendBits=3821 cDivisorBits=2495 */ + "1fe1187d3626b3a9d62f91ea88856829e9889634082c9c99a2f1e276b2856d132b9e743023d670629ead0907eae057de8c364d7ea90bfc5ad8a7ce9cea762c669a4d52d0f7e26b67947cc30057b7e7a6af1c7c3eb00618aff2efcf0d24511e9f91f86c1beab8d405f9121baf74979ac0531f3dc1f220d931fa21123bf3788dd80cf9ccc523816c27eb9d3117227a5534848054592fb66bacd7aa7ba6bd6c43de6711fb43034667e446e9ffa7a3c98c85e4d2e2fe14dbfc09b148b55cf8d1a1401d3a949003298b0e99e35486e159b2d261f79a2f72eb39b27013f5e29e0b0ac39bdb200d2ee4a6b1bc3f198a30c3a9c28fa3d92b0493662556599fce4e86abef2d6ece4b4728e61dd12209bb814357d4875fd16ff134bd0502d895ff83dffbb440a9e926b60d909d8610ad643cbfa5d48ad4a7bb7c0cd6eba69521f3f90cbbb23de689c8397cdba47d47a6cc7676bcbccb4915bb6174c8b5c5d4de1aac0ea5e32db29e0e8be3667f022754dd01bdab344c2ac1a632531b768a5afb6ac19b9e41564d1464adb01a7125990131f060eaab6b5cb08657b096de93514ce860432385ab6e64a4f505792aa5150064030e7e301fba810f73587c8d5b59ed5ec646456867fea4bba8f799a5875071bc8ae9864006ddeb0d275e919bb4e84690f1f9", + "31dbc795e8e29ddf36b4de24ca9a55e976d7a8581bb0cef863fddaad1cd17799534df82475cc3b9f5ef7916014b72b367f3fa07ef4f0bd1b6960d250208119ccd97b6d8695621a59be640d0caa30257359f28f5c95db19af1d99e1cd37b2d192a4f88bacad1bbd272aa662072de6196b51ddb4dc8da713cff0160af87c606cf5b2d90b70ade2b1f08762b81eedc48813f535310b675cccd1ab4fb5c368b190dcf84f8b61ca1fdea995ab010f38561037b0e4dc66456224392ea535d58c416d12768aac84a7199d20cfc6ea8ac858d33c864511b6bdb8d15e443b5a18f03327914b92020fc5092276bc62621d6ee04dc4581f7c8ad3c2cdf2aaffa010ec386ba135729cc8e414aa3f76e020695d72b7926c74f149cdc3c726ce18c0d7bc35d4d7c510061330b31bd028eba6da3dc398bfca8a90dc7df89501", + "a3af626ccec1eef3340d2fe5180b16cd74af54efa8a4291748533adda7dd27c00b5937c4268a810a2d74c66f1989090386f3a5d627c10f2d81c8705142604b62d1a61e06ea79e78a935d9503eb03ac7255d11e19274e1d34d64749ab0ad3b0dbbc377bf6b2d23423bf00be731f5a2a9218389a1d1058891e2c45195f9722d8fbcb3a8443b56e161738e412b753144a2377ec34dd054ee4b404b85288bca71f42c7d9a52a0c41", + "1372fae885eef75616769635493f959bf8b4c0469a75da40ccd24598b1a126a3581726a49f5ab6ba0a839662a31b8d8c221a707c2533d0f74a9086dbeb7208ca560142f54c79f406e33ecfcebf906cc0187ff8143e45d303431fc7383a98e0d71a333387ee0968c15f9438ae702678efaf82d2a9d27cb29858ead04cac5bb2ed5e9188360441ea0c8b89ee7806c8ef9b39082390b3841a21589690263b0b37f897e764b0c4ffb64569634744bae7f54d1a37049c99ceeea2cee2ce7ea1a856520818e53e405a329ec282cd5876f2d18d7e08e1dc4a3f25bfb7458482fa23cec945435da34972c7e36544de476b97da26d95cbf3159f8bff37c76b4ad5b7ba45d915396c069d7e49da7e4236f8f3a807781368a12853f93a6caae8d0b43c0f875fef37b2e151901e57d8295e1bcf0227837789f598c4d10b8" + }, + { /* i=4795 cDividendBits=3029 cDivisorBits=2636 */ + "1902d8fb9100bea83b7f6a27dffd762f2e4c6c6d2225a52bc35f19703fed96b6a5d41a2377f26ee05e0d512d47ae5d6b2098b634a88070830ee5041ad656cc9c0682a58ed8cf56fcf4c636c47bcc3a21eadf1279880e69219cc20498edfcf63253a770d071862f0680cb07a20aafe232073878152676c543f634782b7c9ce9696ca84b618563c06cf0269b919cd42368421181dc8f9b58598ce7ecb1dacd13da90c810ffb2fc6928ed8f2287fb12e7fa4fa1e516daf5eaa9dfc69235cfa4e69aed5cda4f2ebc2b6d7baaf25e363aa374a36778bfdd3a391a58074119dc5f5d3d60b9034cd63e5b7a3cf40f47f574b3737947ca0a088c0cff14d204cd07daba3d6b4358202abf93a6c0d4f592a3d60bcf89467f5907e2af2d41d16271530da0a0ea8242612fc72e8f03c11ebef589586218a8b678ae240b166a4e6229de42227f09f7ffaa4e4e46e618440fa661a876c47e609dc392e2e45407a3905016d268c4110c09e8cb1a4b1647a5b5dc178153b901744cbac709b5865ee40f", + "0cf0004a12eb64fef9e7b284ad95d8fd0fa9f792c69bc8ac44ca3245293a053ea78297476e8b34f2709b39918b689c4aa2d7b1783160aab4b96976b57400e69d6d10abbd8d0f107a1779610cc311d28ae1cc1b849f180cbcc8717724939fd9bda363563d51f9b90fb3b1eb62199300ae4d12232a77844283d9ed380dbe074e81ea19e5b1984e573446fbcc46c2f268fed4aa433439d3170bf5e3f7750a87cce91c4a1748de2fc71724d22806dbb4677543858f639abc1e3f069b01d86c195db1cd7ec38ff6857dadd3e0a1d2107818e34f0e1593ba1544f60f89f9c6d87a4d63617bf43187b479cca515298c52b44e8044580f58adbcc0d23748e5280a9e2270bf4e11647d8b9ece3f7572f9f6c192044fe3fdeee36ea38215be683218ad25c408f46cc3bd3a50977fecdb61a528fd38664b7252da7da5c4d391155483272209ef40d04c6a8c729a40a9", + "01eee7eab1e297639372a3784e4bf5cf0aa7422379bc5e8571292e05034e39b2bc83251dc14339330fee992be084a5c6520b", + "0cb705007f1e4ec7b7d8f95d06fabd6afa6bd050bd2fcd0807d068bb3b08d9f2de553c74086659c8c03456e4aaa896d7e3d9478e6d9021a57f47704e2c1f0e75335fbe4984f4e2347ffe7b46c54334a725c5fc6cbd463276011df218c2fa05d11ccef94d1837a26796e694bd202c897447285ba337d62704817e0443339761c269fa449c31031534f61fd527fe8818812d8b14a79ab0ae085e4178af7e3119cbb1f82e9d2a5255944c5bc656fe2730c853fe68de751f2b696a8f376dfe84a5fbdd50057eb9c5d175749231ea6c5d3bacf3c6562e3e5f89a3741cac2933926869df57f8609caaac0918f99001a38a67f6418b16d699ac27b051e130667928be46e40382de6e36d14008be48cff23696d7e1b6f53db86e94614a4e60c932c4553f2adfc5ca5fbb46152242b80c6706a83b4f53a0dd8d4b14919c42615a13030efac4a6715f32d84151facc" + }, + { /* i=4796 cDividendBits=2991 cDivisorBits=2419 */ + "5af67c0b6960a15859c2274900c96558aa96677b1b6e73c80c09d3999ab7efd80de6638cdf4c318292ae3423b4cf70ac33fc9f8101f27a30eb8a1eeb98b954c80c456f26b8d37af29c95e6c1f863ca6a4c9724ce351460495e9c7e6a121f9ca5414bf244d0187b396ac772235535c9279a9d748ec03e7c06d98565e6bb0f0a294de1d59ab6800fa1a52d70513fa091966a33f08b30381f47ad650709e4a06c52bf3580b18c80ea276a8d3717e36107c1008a23f3a93d41f4aa0ab068711a1dc970ecaa1c105506f328532ce9f194cb878a7a37d0df278eb7d2f9645db072b24edfafa4985907055a67809697b63c9f76b042cd0b99fc436fe069459d21f8a800d14d456e6ec0c5130a8f9f46648a472339f33454095ff3785f7fbcc14319644c19ddea1f191be8f082510100d84d956dd8526bb953c2f99477c562f3ec5d2c937495f8c18118e7d0d7144d18845adc9eee8733c945c27f744a2ab2a449ba912c62acfa32bb634f2aa4dc90df11da40744e1bd8bea4be", + "07c6403d833d716fdba421beb6a296590376d42a3f63f33b360fb4e191abaa6e62b55221533687aec702653e9ea4afcd92ee7b8f8df8d81442c28719e5ec8cec9f8f0aaad0cfdec7381c86098cd98084f7457b4c2a1c47e42b4724b68c13ca0b80b3964e1e66dd948e504222c47521549c925a5583912d6984a528be6559f52fa869f5669d5d20fc14c47511649afc32b47017f096fc670bbb9fef3597435fdb9a7210a254c1854d103a96ab7e62b700dbca3fbca304eb13a1e66207bcc2e059fcbf6f05b07216a3b4f65e3eeab414d0dec37b6812f7275604591c6b10d5fab58c572292bd9c93f52279a8af18a42781c97d73bec424b1c15235d35545018bc24b7363f74a2e2c8cd42c0b7be4ed2913b1833e0681334ad5330be760e0b1ac42b444edec3eaf41bd98322240a3677a", + "0bb345437540f3a330a28441b8d4261e918a3514ba7128d9ed5aa7aad4937deb7ee246aa91c42d70f0e826f2376c62782f1cb8a9f7cc7c214c6b8f590e36230441cfbb5b9e7b0b17", + "077d75251c440fbc9adc0259bc4cbb80323dce4c0633ce6addc585a262b26d154a585012a4c35be2dfebf6b97016444d08d1f71c1a7763140b05dcc8e0dfee66ee7ac0aa4625caccb982a8f0ba22b3dbc2d0acd6c0d2056d068d6d12b1bc1d2250a450cd142a9f32f498bbf3e04ba5d8ecdc1f380e09d0b05ab92a798715da52a8f3ca62a85f82b3075052fbab624fb2fe756fa692b4c8e5edfedcda553f3a5f6898871911d81e16832b843aa649b3b4d5f9011c4c2701eac4b7f7d9d55a04b632283f8fe8abffe4ba910806aa86d2097aad80d5f9c9f74e42ffd33c910099b4a0f55c1be9f77cc78f349ea39abd0bb367fb2696532b1d7799304a69518d84f7cebcdf6b89346524e1dd71fe71864bb88d600ce0230f8d9347497cdea4410200b19a7b36d7940876f4858301001ac8" + }, + { /* i=4797 cDividendBits=3450 cDivisorBits=1539 */ + "017685d70a33d2ce97252146cb715243b5385a8aee2e68ea7c314db4722e5ff3152e5d38d3e85f984a02591f54f98e07dadfb250465cf40a7a0eb5144a8858b6570fb7aae64450ab766db66b034c513daaf9d4de362cf05fe49b746e68f498f7eb3074859009ad5c01560baed0709edb97618190a19d38cf677ed95d0c0971e03e65ad5553b0c208cdcebb40853c6c61bd2a67b3350cba2ac7baec587e8c5a2992bb8a79a66207d0c507e24fca388061ac87cec59903d82f65a079ebf04728744802255ad27e9fe35defcc57ac85ee7605de1b3ad62815218e63912e25392c574b464e331bc633a9e3ac845da31f6848d1e4aa431af85445e123559d398d84c3b9decda044b38871a3a08328a23208d0d69076df8d1dc91e09b943947001bef1899f78c44a3610676627e02580221e99fd4bf4f02d377234ca1dc9502c5ea4fdc9bb9c7a145620e77c1c3f131da62de967f349ce0e97f51c52b178788c5f52b0e551f00f0bca6aa4b883876c40a631156499bea70936f1e0d5cecd5ad00488efa7bacf514f490f34c8049c1cf84d579bd89c2b1b58af408b4d4c8c8a0f6c57e7519caa1f0a202393f16512d04002c96f", + "04452300b1c55e2b2d03ddef011140b300e53e832f777fd7e9d9f9d5cd88dfe0ea3e422e77b09c8abc87b6975e2278c3df530c95013536d0d99a86dcec984c708f6e21f4c5724bed95e16f136beeeb1b55fdb1d3c1889a4f577f50cc955cf68b585708813da55ce73ce4c4c4ef739197bce8d15b818a9e364f0154c34094c33c8cb3238669d7c5b6dee7898fefb3921b83e46f26fa956444881088da41691db2645192ca511693bb135d917c4a2e5cd5592e666763cf555552b562a4e49da7538e", + "57b57baa2211f87bc17ca6b39bc17dc3bab3a9365465703aa4932d00b186ac22a668c2a57a781225f9d628f4d63220bc6c21ed9d6c006dc780c60a5f53ac94b03ac07b8621702257f138c4b3507b3bda8c7e41b04e0c645e6891ea5d3a1f4ffb1fe3dcd93a834f4764fbd9942c0bac87fde9a4811395dac9251417c0d2d0a88943035ed8e5e8d9236039ea074705b92ed78a37083d5b22aabd10d0ec8767a11ab37ef5826b768f400809eb3a6cd62dae26a64e9898d4d65877cb48c91bb78e9ac14e9e83fe423b3b8566b10130ecb37dd6547ceed78228840fbf22d337c1522b10e7a95caa1daf539e9afceb9d7002", + "0397010e7678f8fcd3cc472164ae7d285f029403f705d4676b23abe996cdbd350b9e6e65d954a5bf65d56ff269613515e160ee1c8f9714dfa4fa47da740a4a60515fe4af99ad5697e8b9d09d0d05948faba1e21b7f7cd7c53a64e19d38b0aaa11fb99dd5f2fb4cabdfbfd895333157723dc67931622313f9640eb620375b27eda3b2bee04238c5871ebbb3348fbb4b8abb465de074791905f815020f5950e82b4a034b56362e0f6c565d9ac6880c5d3be2428b4b13cf3ee565ecf0cef438100253" + }, + { /* i=4798 cDividendBits=3808 cDivisorBits=2673 */ + "3cfbf132931a875bffdbe07d02a7c26dd4fcd4098937502b47819cff22fbd430e06ab6d33098946647a1936405f8dae1e3fed0733448f6d40caa8913f0bbfbdb4ddca4bfe66c5d2e4c567045be9dfeba5e7a75f856337b5725b32cedc1b1e0fe68e6267cf1be1c6354fb5c1fa463e88956a31944169b259b456516187e1561627a931ebab1619e561066c67ef1c9a7d2c050a2d398507e46b803487c55a5ec9a6cb7849ad5e20041de54aee603b46b2cd5534f213dce1ffd016b22fc69bac743b4d9f88645b17da2c9787f9e8b9c967776522a7386347254492a975c831e733eb9d36d49a09e98efad639a07b77fe70461b8773c673ec3901558eb6a2bacd06dfba075e57682bdd22f5551ceddb55984c6e534d02c5632889a9d2439ddcb4a35dade21e34129c63052a43cce8b9336f2d1161ba26a725f93ef45a77cf2a99f415247eafd4bcafeab0e296055530719f6f867ff4370d01da59fa54cb71ab8c58e5ce59d4afb1b0741d0ab00ab93a5cb85183e79981892c520817dea096fe651b1eeccfa4dbdb83258d7b3577369f82e76a12f6d4c4239809f858447b0b32d91b0be2c833e7b2a562365ea1a0c34a640928ea87a5a44c855ee3cdad61fcebff176e5eda26545d1d0ca616bc77296eeeae96a8f570fa6026b3ec6bdaa50", + "2c67f342bf1cd3d2426acd1d61c71269ac2829752ed9d94dae20f42fbfd6ed6c3915e372adf8210539ffd220a3dfd74f87386eff65ae144ff32743f68c31f0c67c69603948cc9e5104abccd63272b2aba538bf2f81af225c606b1cb7f5c6ec5111b294f51eee43150a473a7fe94b8c1ae9055bcbf01bf7ad967dbd9d0168095d770f046e011c60b3644e092a43fd90b19ed95d5c523768f4ab6163d31e8ed98b8c1d91108a058c24e77de9ed371dcc63300cf0d816bf3492115f25ec3df4643f36356a84018e4f2a8791ae53eccd7f06d49731825541713af081d9875565c1a291ae0c769e598c1e5e244b512975ca69c057d4d975f0b7d2a1c6e07af1ada9240f352ef42a0e79afa15e8e9e918b331d4828b431492c5df7f2e7a32460254352c24ff3467ffffce02a45ced3b90b8ccba4ef34093d18050ed44cf6efcb654e4f23f926a492dce869d8cef2460dee", + "015f9286c9457f27dc922ebf78ed3f4911c3abd0b38a818b5fda85b911c30d2b04f017252b48299b2930e6c7db946241c44fc1ffe7fe2f07132d51f4a75d1cca8017fdfc615099e8e8508cdea1436f5099e77d2d3502bce9bf4b170d46aab9f815c0daa4f1563b945a04aca9f0e9ffdfe3724bad432f6ded6af90ba84699fde50fee3aa75543c2cb5590310d030968", + "023fd988cdc9064b08b8196abd0dd8e49423fa488be01cede0de20dc0cf0b4d6d252e8f9788dd10736cc6cf5bba6c6e1c6219dbab99fa5a364ab9c980bb4472f24b8e3ae9ec8dcc5c9c88a2f08f094906631e854fdbf54cb6a6457746cbd031badd6783f96ea9815398cac99fbce90ce19c9e38d2514a48ba206ebedd0dbe8563969b154929b13ba7ec678a277356c2d4f4cb1e585cbc46446f8eeff713fdfe46af472625ff208c5ffbf8f4c362d5a2e34593ad4ec9dc51bb6e14ed70fdd365ba463bb04349a1168c4fc6e23305a7889148937333a07faa88e86e62e38f4a19ef1791383c568181fa97f0e296adadd20aee862b56da6914a3942771538ba5c6fa28b652fc1593ab12748c82d16393232ca1b018b285a610d3fb5c28b4144cfc60a0944111444cfab3dbc4ca55cda218729d66238f75715fd3ffbaccb928b77663c5d1059115754642092a400a3a0" + }, + { /* i=4799 cDividendBits=3560 cDivisorBits=2386 */ + "b0612296424353b0f4c1244b1b2f088c1161030fe9365363d2e078fb63dab51c1c3dddfae09db9eba78f072ef06c41eefc5bb6bb3fe3889db1624edaa8b6328ad2ef31d8e7e4a9bf6b76a1d1e78d4e1e3f2e690c67426fc426549ed6cd5c38593cd39b179a9cc627cd31f3fa93d3bb433f8a3a8d4a0ebece89eefe20483648cffbfe35bb606d1f9538d6f398fde4c92a50fbba6480f832d44dbce97c0a391b2b639d66cf1a5ef2851b62336cc9e3b68092eb2c7bc57c713aab5934b401f9546b2adabce991b69b781b09966e6e2fea1fc08fe5b71b21f8a6e6023371053d6416e0668f73b192f749206d9f34797f664462c4083ec8a554de792a5bc75b715e3efd0d6efb56fab9a5e27795fe3d7196f36fc2d2d56d4b12f739619cea9d3f94541f4ac3cb2c92773b5368e958dc33fd4148795b72260c5df2c8fee106a207d4e90e00c6e0919b9daf5a6023fa2d6785cb6fef8ab3558ebaf6682a7511c7cfb15f2e5098b36616c4eefc55b77e3e0748e8c6057b226c7312723e90ea63fcff5d530700347223d055b15919ca88f6be98ebfcafff3919562a42db725d164ae3664455cdbccebef5d14e0dfc5d3e8f39942e19356a0294ca6aa5e99a827007", + "662142e6cdee988cfa204eeff2807072a533703f7c25b5391b6fa99a918e875784a05f0b4ca29e71c64bcbfbfb76df3b2f7c89588b0df55877ad186303eb63a40069aa6327cc9bd81b798e608d5400f3821533db2218d00373303d525c2914f029777b514d09e23b5b975f2866dc717da3a4185790ac606a7532da27650f06a66caca2f7240a7c1808fc962d3a8188d614e0ae087ca20024b2ecdcc3c2082c00803d6078d2addba17806ce60a86852c3670e060812a40979af922b32e403783b38d7e221e32b95608da3d81b8ebd32127385eeb5388a56cef43aeb2b17ce02cff88a23273a3b17546ffec595bb3a59c4c64f30cc7d033bf0b7e5fd95a1932c6fb616aad39001247dac893f97471cefe92f46898bdff8facc09babde50d811217c1279d67c208b1aae976", + "01ba1d5881b67e35429ffd36d3af9a9a1191757ee0bcc2e0bf001d3742f18d762dfd3d9cb0e119fba21f7fe94a82dfa26b9fc36ec257dc69a355926ab162aa0c9d4c8710ea25fd516e103356b93adeaf2525c9435abed6ee671928750f50708e936587b2bae53ede752e7bb11d2ec953053ced23d35f3fab6b8abe7e0f11c3f22cc1bee43655ae1e1448aacf611a6efe94112d99", + "270b4fb87093fe6ed97fa191eafd8e2a745043b224c14a61a771b1f3d2447b3e66b34c31272ddc65a5789039e44dfe0d7807ff37ceed526c7d7dae3641579f0989674946173c5978118492f45a6b023f255be13b003ae02804d80c48ec0d935ed6ba5410289205e552ab8627531d541350f5ff107de9b44da936e0d1b125562d393885c5f4c9580c4c158111dacef4f60d8567e828eb140921ad02f1c37ce80dd6bc4a21b302aa3463ed2e303f5ffedad6d247a106b46ff69331a8a42c284ace0594d6a8da9d61adb88e2c84654c230e237a0f2bfddf0115b8f933ea53d07c1fb55ddbfcf15677dc4077db565b905f655c395c0c035674a777f506374934a215fac66ea24d3275f21e11a8906941b9b9627646b8a67116b9d05a5815f762b1b0f9f86d213516a77d2a81" + }, + { /* i=4800 cDividendBits=409 cDivisorBits=372 */ + "4682a95f91ca5cb2f4e1f7fcb30a7e66b920d9f4c6478bed677e4f7b2b28c9f0426c5b3a95c297cb56680827fc832f5def3fb0", + "0b08ad9c6114c754f85fdd1e3ef4c756f4d250874a29d28a53158c7bba3761ba4ce6fe92dddf8480f67c06b983caec", + "0663ed806e", + "0373fda6a253a3522a34be305f2bd929cfbc8855458f23536ccd753c3b22b8fc5e35d28eec7e4dbb016385a15c0e48" + }, + { /* i=4801 cDividendBits=2356 cDivisorBits=2048 */ + "018f599824407ff3dde61c7b90e6ea5c418a537870cc1384935e4a7266de683864de3e1eb858b2cffb8618862fa749b22005ee0036d3bdc0e0c10c2c944a906a569a93c18585622b68d94da03f7b0499c7155d47eb3ab96a35c752e81538361236d7d825885cc16ce1ae34eb37c8c3eaade4b1e01d5f48723286ccbde8c71729a6e3f86e0f85648549f6b31fa76b8d1222e37b0b89d6f2ab296de79bdb36091ec85f35435826d8f3ec47d6cef3e876523368ce4a57f958210714c03ab9c313d1c3eaf8c357b815468cbf5bf0c3457d3304d6d2a0c6f7fc020afa47e359aa10cead73c24e635f86c2b10a04bd7fe0ab9199fec7fc7dac44fe764e8033f02649cfbb6796f2af3dc29dc0a4f5979c719b600d989b4f90974b58f3ef98d909399222e6542d23e87030", + "024ec28fe11882e6f12f88dd92b43f3c33c7817b104901621ec82bb250b17a3a04c5722893feafab2c0c2709b856c738e43052d86b51895c1156cffb3dbee72b7ac2d3b02151c6e2d1bed51fe93d56cc8bf991a5df723f8bd3f61b2638d1d0ce465c27a41e278a5b7052ba5430adf4db1f03b163bed8fa5a306619e8c72c1751a6bfc1fcea565f674fd60b0c353cc2e61cf0e766907bdaebf49e1745ee1a0b47e6efe0bff4f4e65887f0042e477b5638c67f4c496f668428fd041cfcbcdd8b114a8fbe999b8ce63bc5ec280354cc1acd4d23e6e200f0c181650dd7523b005563e97a26f57bfd09f02dc542eb152d4602db1a6a79f6d1b699517a16a2fda7416a", + "ad0dea73436c4f41607d2830e374361118b6293f10e289701e0b5e7d411161a34f837b832980fd", + "018228d1c05183fa7b2491266cde33da08805b013e50f122f899dfded9ef12fd28190693e030d4b7fa19b868c8bffaf4828daed12605a1501c12aa13c2846b689638c50a3fbbf15f2ee02e2625347b60cadc153ce0013893a8972ab3e0459b38c41a812d3dc36e887eda9d5ddc59e707ecf124a37cd8aca30edfcd844baef6e4b67cd65e0285526702d4a53fb60fc8b7b390e5d5b07ef542a10043b063acb7c9858ffc20ff8b9c7db9c01c223867446a070ad6f20c289b3ee707fe38b8b915541059c9c0ceceb30978f03bedec5765acd07da796a379858dce0583783a2ae9467137930cd1d1c401a400dd796536a11296bbc43f648db4a2667994141cedca6e" + }, + { /* i=4802 cDividendBits=555 cDivisorBits=454 */ + "02c66b54ccb1aef2486692a8ea33ae216339c1b96f81f5cbe7c508c496a470c34126e33c37bfa29070d571fc24a1eab1351738a0feab8dbfc6e5b5c6528dc56aa43373e753d6", + "1092e3d357493f36483a87067a4b45287662dc885cf9edbe1eb98604ea5914c777b507cafa2eec0558cfcac42e46eb20042ac0573e306a34b1", + "2add3099067cdaff14707d8b6f", + "01ccc5cfc2a4d71e7113d18989305aa61d290cb2b385f8f3045cd10376e96c1db9dde55b0fc635f74859a43fb83432b340d0978435a0d16017" + }, + { /* i=4803 cDividendBits=1717 cDivisorBits=215 */ + "01e17360fc0d578a497555e84f7a49b64868e35da266fbc4c7aab06474747e0b3ef3862a8b4c27ccd3d3b3fd2db60d44c0ab2753998bc749f55f0146c225f8e76ff39a6d8018012bda7d7424bb5050a60a3ee9490be76202005cee46622d97e92cad53c98a126bccc44e955bc729b8e1e42ffc22748db63252d6ec3ed8a9fed974a318a0506ebe5f4a9d3e2b8a1df9089e48697813e0abfea8a431ee3d37414eda93af52f37fd7ee687b5fa20075dae099c8d1af1d033fa87660c7f70f5c05cdd4dfe8f9ad9296a557f09ca4190cf0b46d609786d3bb56", + "37ccb998419bf81cb7ff2ad36bd22e876513bab129870e7c8aa016", + "08a0d152ffbfb4924e289f061cf6c0e7920074b226ede2848fc0892ff8436ebc875a924ccb3062b516105fca0ace0fa0d10f295d24bc23e64f6d8dda07a74c13a32d762a5121f89c5bee5d440730666495d2814aebfed5efff394e2d2fe661edfcc0e85eeec1f52d71fc4a070f916a57f6f32a52acea732306a1198cce399d1efd0e3767afa5318d4d7b423a347000f05c457b3a17cb27e9ba584f1e0b0e36289d63d11a089a2a7e198f8158d44174e505b39f5d5e308791bc5c8254", + "044d7384bb2ae7a2fc21de9eb558e1195b65f6927cdec09424081e" + }, + { /* i=4804 cDividendBits=1887 cDivisorBits=1304 */ + "4a5135c612a77a9832330d216f6d6a3faa02151215337f5c2902856ca56a40d42cdf48be94d3072a173a740a3ee52b3509377150fab3ce25663d34b9c88483a8bc08ff9bde449968076ba6104086e343e80da9a177e82b9c5fc3cdd6706f896dbb1e8d1be719235852bf1e98d35b2e86de2be535411c9d11d29cbdbc509cab62a9553d49bf4317d72cc4e8b86caf26ac3d878e68d4515d3ad4f92d4c90c0db3db8f9349c673ebd84dcfdbdc4581c9b8a480785cd58d5b8c9d0f1b3c1e0405e4addc4a18a0fe0d1e578aa9460540ba84bff0d57b6327d7a2ca5e16d1f31e805d042077e467e331f41e11aefce", + "e7139b129fa05610726b1191ef277122a9ab73e0022213c5e2baaf7fd52cb5e30b77e5ae1a846d339c372d67454a3eb90fee1d2347fab72c3134e7deb0dd5514a943afb1c3538cfc453c83da2844f2e2696dd34fc70190a93c1b2e7e87b8edd6dd819ec8f5df396dfd2eb48c6f9e2804291f49da15aded17ee07f1e5298c8ce967798154068f85772a7a8f5a61f2083f8ad53c6c9ca7095f0c1c20a8c65a627d043fae", + "52553a43c663e00ac4a7bdb4d50c17b7a86317a334bc08f455a35b3f16ffebc07f718b46480a8b838de4f8b42a5e20ee6b6629c752a2e4764ebc21f52a8e487938d9cb7863c17a58a0", + "3dcfb1b498f535928b472d49d640ae76c366ba39334d46ec2b11864f5734d71aaa2403c1451e9e813cfbe8c88a620cee751cf0f7c78ab96be9d4bbc1ebadf7b092563684c2f714c87dad613a25b02ba042c4f98876e508be8f22050131f2493b5005b39f56be9274ca33e6d4cfcfe4b4b4e883f14fd950a84e9885970fac034570e7c2099617383590c8fe325363e84a57e3d8156702f67ae0b0142c80ce67c1a3530e" + }, + { /* i=4805 cDividendBits=1757 cDivisorBits=1097 */ + "107cdf1ec29cc65718d46e26b3a5355e8e9da5001f906c9a571f74ab0f88379322915744cd55812f7bcc782c531bc26cbc3c14bfbe2acbf46b66eec41d04745f0924686e5050a204cb685c716a774f41a7a26ab60c374da0618c5727969d230e8394e5a0c0f3b2e4c71dfc206fb75423dc8ae72d11f8929f01b5ce8ff3914cc9f046c9c687e29eb9161341829f9ee45266a9594df462efe89379f702aebdb3d8b72f340bfe5e741b290ab2bf4f46e34e2274f611c11dbf1481593b54e46eef643e2d8f39e9787215b7b30cfbec04f50ae40d373d8d9a9db0583c3ff3", + "d5762f455db6842b002c153692765fa38870daa0d71389f057f83c5d58ae2602ae05051704bb7bd3931e11bc39a7ff0801e4f9ba44a7ce4d0c2b8353ca3ed70315c8ce2e6f7f8a215af57f8f5a4d38b2cbe75e8373515eaaf34227c9ed3c5419f3907b8f1759c0eb5514f39d9c268d2ecd815848fbf7256d6e35c8f4dd2f3dd63afe905cd373c7f703", + "13c6003e6c65445ac2b337d73f23e3e824820cb3bb66f5fbda7b871fd666fdd41bbe52d9a6bca9448a4891572af095c055177630055b6b03b8ba33ee6bbf1c1d837804786be54247acbc4ab04abcc5190c4b99", + "4595a36ea1220e4510d90a7215904208032b3854eb0d1deade12b5eecf77fd76ec296d8f5f3e6b91c19b044d79ade85ce41578244047e905c3a22179ee66f9ba87d4c2befe977dca70f4dcc786900dd30c0579686124bddf25d0744cb6f9e127a4d0969ff16593167cb71a97fa5202f1fef9b00454022e62bb965fcf8482819955b4c3f296b137be28" + }, + { /* i=4806 cDividendBits=3572 cDivisorBits=182 */ + "045e179be4ffc12761ff9bbd427427e4128b825b66e1f15379a996346d6c4dafa37a70296ae7fb90e5f2e6086c45a4b57ef015b4a71d65c73496066af5a7b6f62ad17aada5de6d155e4f762d996d7361ab854b7f2e5796f067d973ec4b3ea34f77650ade45bfeae4bbd426a88f0dea5a18a67a94ae43b7d83d2013db840c0212de6da18d6657c5c105a7c5c59ace3f5f4d90fe747497da8a9f77be933a2b7d022d7717142189afa0a6c8a7d242ce6bf5ca6530a5881cb8e2377b2355c113de3760db1b4c17c6c3b82573e3b16a235f2c5dddf34b802e3e27951dca05b1a96fca901b64648737f12826da8248b1e1bb514435fd34bf5d304b0ad04b60d165df52af0a91f53aa88fc0861b92220932f4d1d14247cc5e451a6ddaf6aa51c8180d92679dbc18bf0fd29b5659f6ffbe02151bd24ca35715f75e582e1052d34b23532a35c6bba1cfae458f90007ee3c451cdc322dabd3d9f79d983765208e0a34df81a388a27ef84a45e305d80dbe7c2e473b9491618eaa387d96d8c1424b3350eb9c71f6922d4bb5ae4d9f19c09c813dd5f40af1a37f1f55ba88158604262fc638f1f5cfb45c053b44b8ee140230bb558d51a9224f8831d31b1afa39362116a4123", + "3c04acf4ce2a82686942ae70940dc8a0d2b95bd01224a4", + "12a11339d81ba66b3b5639af50558334d659a3aefbab4680460a602bd9e21a937b5b9e96b61c1cdae801471e35f753732da3535f4ff0a76c14447d6d449bdf336c714875ec6554146d8e5b767d9bc893fac7089542b35f829efd542596c232ae167799aff08418ad7ce224918b2dad6297fc63ed9ccb07e16216c8ce994e07e2d2798201246afd7113df24c4ab5df0a5e68292e73a4801b5b39e1a053af24b55ba9c03da1640b51991dda117defdba8f812a8ee779e6bd9647d0f3ef653ef403b1085ff9ca9da25aa948021140c0243c452fd58b9a9af076279b19221c89f553f0a6e45196d9b6d090d55b0ba35ae4249b97c8a00b259fc0710cf6f5e6dc6ca07321e20ee15fd67906c51218b6c03c27aaa5b853b5a256ac8d955f9a553bed6136f302eaf3ab822117e8e42f0f500ea4c3f26be00bb17a1adda0ac018809a97baf56e8701630e208e14f6888f6868f0547b213b259e6861bcc9e171deb6ee35b782fc1ee41e258d1287a8a0852f901faea04955c89d9e364e771f94dd9467c344c7fd454a92cb315d069214a7973df1b6d3e3bec0b449216cae1d91c1d8dce28a859ac99c062c0ff", + "0e762e15fde9b8a70f000b5349fae5b90abc6f2d14c1c7" + }, + { /* i=4807 cDividendBits=86 cDivisorBits=25 */ + "03ab7029977b1fd83c9e68", + "015cdf25", + "02b15ab08598734d", + "17e147" + }, + { /* i=4808 cDividendBits=1870 cDivisorBits=459 */ + "2e88e705e3c9399f939e22fd09b80301d1821485ff9c5f37b52778050517e8868404a2fec53f946daeb09e5f7b781d794a27f790a565edbd8f67cafbfc2e7f3da1e454620215ecbbe04c27e29db39e36ab309083c9f4c8dd9cda8f4005f04a7d4a54399a4d2573d0a77312fe498dde80a76c3d4fd4ffea82b0c8885c1c8307dd64f09abddeb6cbab0d0901b539b42e63c14aa3956e5affbfc44c030cd55c4518497410b29841bc0d66164a79edaa888d360395b479ac1489638686a7b8783783ae58eb56baa894b4fe4aa8fe59c34359abce4d967e613cda72fa26ef294cde45b20fb681bb9445c37f87", + "05209c2e34522ce95d5318581df5dcd6995231479b4e820deb99cc2cd622de000778eb6488ad75c3869390b6766a9d12e84ca9565e9cb285b8eb", + "0913636da6aed1d64bebb67a5bfc9294fe9b037bcca59deeade00b32b0a5d86523cd9ec4a6719a0078c956fda8c91d58a9c74834d4c46c3a3d3aa00c41d61b4de7982bd05d3962ab32c324dd5ff0acd923f64bce88e0c6e84ad78ac74fbdfd9ed3c45ca7f0c2cf1f8e0ccc34c6e3e70104369432ad45868463ce1e7837accf18df07d2c6731e76556a55c849bfcc7e82ebcea9abe68123c0ac0d222150ee46b90d32a374af3f50f6c857a82a7c554ea7ed", + "05010f11dc925b2ef900ef5072bc35f44384d70fec4efcd511e6361da9041cc5cc116ecd72b5de0690314ce03095c32eee831e7b011565bc00f8" + }, + { /* i=4809 cDividendBits=264 cDivisorBits=24 */ + "492076ad946a519273612bcf34d6f868ee3049d4fbcc0dbde52720d736fdf93a87", + "584075", + "d42027d42653b7a3b8c928ebc09497fd2716bde90dc9008e3b2c9927663e", + "180031" + }, + { /* i=4810 cDividendBits=3911 cDivisorBits=1810 */ + "5a6159993f8a075c225877830bf71e8df7b55dfb8893fd8a37fe5c7091813d1dc8bf9471f18102e1001aa55fe8bf9547409d27327f62efbdad32312b90dd42be450cf3d84840f79b977370af797dd0dde06735d45b94d4de86deee500ab60b6ad145904b8cf5ea6bc6c173f9a1d60624d7bf4c4a008ab24758fdc42c207c256c3c55ff899733c2e4281f2e83a84bac82a6dc979c2b0ab31698b38046ec8754925f43bb4101b0cfea3f04c0f3286d7b2eedad88464c524265f77cb6fb25f562d75e8ff1795fc339d8d49fa79e86f3ec34e4484fe736207861bdf621a59c6b5d3c5e0c393e9a4e1cb387b3aa1f9336c88aed4bcbe6afcc9e3f580222858552c88fcb69da00b32465b930f83da6d3bcdc7b44cc0979bc216cd611adf6709ab12ec59cf13d5284f3b070094207ba13b2f4a3fd51c05849a421012e8cfa445cf236ce3f2cd7bc1e66fe1a05f0f3da9d59fd666263889040e9e2f7dae74bb2d81ae2d963a304a24b7594059d0486b1db8db548023e94ba9da70208edba29201d24e83b86201077ed0357ad2c2809cca31e3eaa2062d2d8948b26549daab66e9af36b44b42a9e96f7e84f1ef937949aae2f63c8a0fc0cf8933b58904d682b2c83e36e7177a993cf084535cee8ce296b8217f1242f8f64a4c7a9a5cad947bef6f8d04e0e213c3ec4b6c451a17e", + "01e0aca77689cde5c14fe014e48f0a15f0b9b14ec4070845fec5980149fbb65a6329fd58fc79f5431316953a91bf810af253952448dd1f5bf40f95ad2dfa5f5a1f95121ed20773cf2c19b6269e6588e7dc997381a7b0438e2a4083f6a8c7fc52159d172ae476650a036acbda72d798bc7c62e8bf2326c87ca8bf2873538c968e58fbb2d44217b24cc2b5460121220b5eb9c70694d98bc51d9c0d2969e5e5e55d35762329366c66414ceaa70b6fc6d44d5decf60ce0cdb633667bfb2eacf40da24fe7f13900aae0600143925158bf9ad37b1920a490ed8371f33b9cb2b16000f3d4306d", + "30229b2015d39244d87b7a305435ee31bfb4d3f51d808e93b10bdcfaba6a9d42934fc101fd6f85a178ae790576346655110165f26dd1b26f70e67c6ce2db8e9b9371cec3e7acd8239962ccf4a849c6bd6de00ed5c1abdee73498a797903e26e7723a8b6a8de2ac3bde5bcc2356caf7d8d69822a5ae42b2e3ba9460396e0e471948f908e6656eb4bec6770b7f42a2e0fbd4dc40d5d601d268d6c47ea02c1cb1fefb980ece4e329be4178ec9eb3736df5d3c81da24a34177aa1a7d0a6941867b2d397fd014b53e9f6c4b3a21b3226423e52162bb2ee73615f37eca1b57065a2459e0d1fe7efd6326707dc511d7836c80cd8601e3a643ede14385cd2f74ff555ab3dcaceaa4011fa7", + "dc0caf959b68d5583b62eb0119237f12fa5fbe8857738b140832ddc904d94fc406b1bfb99406a4fce48c926c386731a9abc5a5cefd82dd55a1dfe9393f3ba16a0f0eae9a0b4f81b3be35b2c3920ce02b6e17a22f844d640898ed1949d1676ade4c18f3efffebe1952c8c106f7662fdd2ff979c0db0a54984b698d89073d606af5a84d37c584d49b2def3e15e3bd54141f95c590bfbebf4c9bae7ad903e3873f6ef12ad1665581375528ac9d2593f62bb6a77e81c9f94b72443e33628fbda6133ed6e473eac29d94a1566e736f9edb2181ebcb8e836d3ed2258d9ee8aa414fe9bd763" + }, + { /* i=4811 cDividendBits=2977 cDivisorBits=1668 */ + "018a4bed6e204dc734f83aa2d1f3a9dfaf169ee9493f4c1c66f8a3325286d99aebfb3ffbcaed73ed932c1ddcf2ab835bad9d98fe7c05ce0fbccd985945d3eedfd2f08ed49d569a9a1649d0bdb06ab618f475ac73733eb23ce50c3f8c4bf2422323c6d08307380846ecacb4d16f7e85797754e40af87087828b343520c24bb282794597220bd234b30cdcd180aaf2c22de812fec329a0355b11404eb175a1481e3f35ab72a551627e6541ea512b0bb93c4fb4b1bb605ba97ef294c2e22509861288d59195a30cfde7359f9c5babf0d3b6ad0352842fa6f659535a6656d98031cb77c19406347e4c71452fb5d7e3769fcb36aa24b4688ee0b2b84f6622caa85e0601d3b46344f3c84b10eb47e667489baf145d3addc63425d8ebc3b26995356a5764440293381e3c11b5db12bbfa2dd71643764da0a7c391d15e1485455ec910af734c35573749a64247c2d2b348b236ac5282c9ccbdc5495c4628c0ddf791fbe542dcafc288b7bf14d3d63680a3bd2023aaeb753248", + "0ba77986239053afaf3885bec876d43a991edca091f0d55bd9267173aef9a093ec177d3377e7c244792aca6364ae60b81f01d30e6c80de00e1b942f633625c8d82ae4c68d49832b14c4cd33ffbbf3872b1342213ebbe7d4b8a0e0f525c3c33fe9ec46b1aac22a1b3f8817800de868497969249f92706cde4b11c0f4587d38c7607eda26d7eb45e36d856465c983ee4747b0b1fc2bb2cc971f29a9bcfe5d8af18f385c5c8c575124df3fcbeefd851e1bd7658f54c54ea30f541a7edb1ace6bcc6825a123f86e31a8453f4504e049fe491ae", + "21d54019722ebf3eb03c604fcbff7ba02049b0b70850fe97543d28930ac0e5ea77ffdb020d8339b70e4865758aafc345122e74032e2ebb466af29b141bcfec3bfd597ffc712fb8e4fb916837537565495effe1a14ca2d8ddc4d9a727006d78a9625823c397a9d47aacea4c22ffe13be1d1e473cd037641ef117888ba553e061c6c1ef1b6fc44801ec0a419666eb956b1f05e5edc3cc4701336e7b1848eae8b5837f09bbd", + "0819e5cbe676343bee28c73a3e9b55560bcd60ceb12bf49fd81363f40a885955ec9c5898758420ccf3c61378f1573a5d1dd85092658c70cc8c0be37049b5527719949a0c77115a3500fa8509bf17615b6ee679712de4039f4f374c0db3531a7bf28238614360f50b0a307e09803ebaf0b41908e58fc3597849c42a86acb2d9c8f82105c180c7539762435ad5fca1cf58fb277cdca074a81b25250fa915e7c0ac030b56c765bf63b4b1fac0631aa2a0e2367030cd2ec625ca21d3b1ed22a7c736ce9ad9604034ee776601fa2e0c86614ad2" + }, + { /* i=4812 cDividendBits=1279 cDivisorBits=648 */ + "361d3071380857b658432b08dadaa3683085561b8cdaae36864b229d745c4ee06cd62d73bd510e1d2b74820e0619e6098b90588d10873afa6ea821730a3fee85b92b06f786de9db6e2c0f6c362125df013feaf9128f5d6dc281c479e67e0f70512ebf16e06955168c30f1e8ce0f738bad4132ac13c67173b3a896c24cf14379fd34a0766937a77598a86c34b31b3e87bf0c5022e7c77ccfcae94847a7e642ecf", + "4d45b458f45b248a023e69ebaf72bdd26730f05a9413e2e5d48e34e63e897e250d09b31378c93d01ca84e8468abd36102e20cd52ce7e53dd6257e9d936b6a4efdc5fee0c74fadcd5038aa168de08272d86", + "b347109738b5153c488aa748d0c90328b70d6834ff1394a729953482a5a9c6758b851b3af58188cd530ac406b6f27efff83858a34a84db5960fffc87f1d8c694442a543886044b289d4fe1c1bc3ff0", + "42cabd68c9fc6b284a4697d478d8770748bf37303a7cfb7ea80fc26e827721b00e227c0e1f348546fabb4a93e10e1a98d5e19a56b31b6c3768cf7e8dad1af53aeefffe53220de77ee57a96ad73c10d872f" + }, + { /* i=4813 cDividendBits=3661 cDivisorBits=3353 */ + "09dc5e280f26f7fbf89e06fd7503e2360907282962ff1846b5d1d4da5766f18aca42f655b8def0ba9c797fe9ee43c80e7a02c922343f2ec9be299f1a1adf14210abdb1d563ebda343a099a6fbc9d1b9dcaa506be74215a5a3bba97f64083a8c7f4197769f744413d5fa6cd310aad836c4a671c9668d0dd20def471f9dfadcf60e1fd8849386e328837bd896ec9d89c048d29e2e8a6a9dbb746bb72c2d437600c6e295b2c0961ea731fe85b387ea98bbfc3de41235873ed67f4089c1811579bf0cb4a08357e6d3731205913b95424490e9adcc059f8d67b630e3e1b06e415eda096156d45f746117dec2f73903db6cce2e9cb23ea8da974f7dae011bffa06f4b3025c92dabca7aad297bfe54cc886beaadda74bb79b5c9537966c4348a070aa52eb34b9270bb6d7400e094fa82581839217b756e71c41fc835d789ab9ecf8d3e3d4101d88824e848474e8b6b9bb6ee53902b8873d6621d0bb66068ffb0f50e88aeea385677a7e224216ae7054290dd373542c7eef86819ddcd6c97fb69ee73869ace3903c9ef2f61b079af12e3fe6b3e352fbd2bee2efa5604f99df93e39f877a069ce06ed299d7edef6fbb527e6b01bd8ffa3960df75958696765a248db347d8de9f082d65f80ad29765", + "4f78b4c712c790e23f67929d23a3f7e6b24a6b853baeaaab03e52e0f26029b68c71e4a146dbe75e26d5f1d3aee417b3152e1ac500be8cb17d6a4e4793313a1f3fad1a5403eadc55d6c47eee410657a68b9f9ff2d994a813dbda4e7efef6109e00201bf1f55a36ce78ad6108cc5924bb81175189809dff4d763de9b0520b0c63ca5ef725ed3373df4fab8cf196d47f3042b68cbae0ee93d4a1fa7d11c82b4f31830c3303e8e7c6422f8fe1f0f74ff1101e5f536b51bf293d6cd907c00f2e5dfcba896f29937beab0833199eadeed94c97f256bac8305221546cf72cb30f8e35bd287a86708e332e433b2e61650d8eb1ff5d41c77a53df1c2f6be878d471aeeae65cc5feb1d9fecf18b5448e294b7771d24a97f74073419af4681ae1898b0d1ad15d3e79d6350beff240a358f9cdffded05e5c85b43cf986f5db29a90d9bf3b54b9c84f28ca999a24c6b65de5e29d7633ec9dc6b5851a9febd650c7539c6ff392ad90371e16fe5e1cc5afc1432fe630eb85d3533c9b72b46056a2d81eeda12b5a8f8557323ebac2cde32d20fae273924ba99935ae7a2c638765353cd8c385f9b3a7acf2e", + "1fc3b234944247d61a1bd5d130dd218446ced2c9d1c5f7769ee279078abbbb800b8cd44a450f4c", + "2f30a26a0ab11596a384f891b6b18118184e78d452052cf176d52f21dd08f4314e17c2785b13de8b49d385472d0a63a4481eda97cc9a3442b31f25d1d36e11a4b140a638e84513d2ee7fd2ce3d1cf59647f2db2a910162966518a07196fcfd8992d1ef7dd9145d9909821c1541c01fc53c1cc8e358822df0a4ba4f827eed36a923e77e82364242a245d07de7e796e43b80022b4b523baaef21e342420ab868ebc9f920f1cb6689a334ee84cc658616b023706bcd2799cadf54b1486a255921feadd8a396dd61c5f4797bfb15a2fed7c1291bc89bc55274dd87e87bfaca82824923eaf9b098ba829665c6ae488ab7ed9126303e5766c4a5d2773afe19f7d237494be12d3e1bb68e3ff7423a0c195b84ed62ef2b84ac66013863f9ea1eee9454fdca5754cc6dd93fd91444a9b016ee818d2590dfb6c11322999929b53e658a21ce6d82d5fb0a00fe7915c23e30e1d31cbf9254c197bdb7b3ddc1074377f6406f428349eb815390669c66afead55ba09ad86cabd2104a067ea91b1426348280171d08e5e07d26387bd8d09e44ae2f7471b80b8a88d95fc17a3a8aef8df81dee6058d363bd" + }, + { /* i=4814 cDividendBits=139 cDivisorBits=118 */ + "027c6cbe360ceb13cd1242b3c39c82215543", + "1772a8b5affd63734c314a8017e243", + "1b2460", + "0853ac4ff5a2871c574b24404a1023" + }, + { /* i=4815 cDividendBits=871 cDivisorBits=635 */ + "336d02fe77b9755deafba3b8353be48a481e00317ad9faf15b8861ef760ac8042b5f075e607ee236a15c007a5c5d5ee4bb5bb821deae472f3a7e3db49af9b5794cac3aa82f5f842b4be249f36184a66e9aba81efd33ccad0d7bbc5b39a1fec7c4214496bd7bfae1661eed97e26", + "4559c7969975a42f3a69f621ec203fb2345b2d3ffd7d424239dcdbb2eeb813382bc2bdc118107a4808fba067aadbd7ef908deb4b9c144b2980b6816947788eee72a829b9d24241b27d70b784e62df5", + "bdd519a065978a47ff363478c4206b50907d04f470509d954e68ff64f5c0", + "25f03cb629a8fe6e5ac4656a5e8ea8163902fb17d23125d00c3c565b73e4a43b83419dfdc66c793f9bd9cb973fbc744289e271b5dbdd80fc8f0a459bed2641cefa9f8e6a8d68b4df8c6754f9878d66" + }, + { /* i=4816 cDividendBits=1316 cDivisorBits=719 */ + "06083987196e85f1d8c7934b1c00a4d7d3459fc1a7ba764af313c70b133904b875a95cff5070d2cd4e78eab52f359ffbd2163b904100089181e3a6c8aa3e6247a81705c6efd820bf5e0fb6e76cff8c73967e1284271751a8daa517ea5445722171e75477390f865e7aa5f93834b1b2ef9962ac9a12f1f75e124b1a4293062a07228642bfaf1a58b71ef1c9bf3cde25173a0a662458b8e0e3a044a3615916e8c21b2b30f953", + "535d496daa21dc6a58487a6085329d4826ad7380f89904916faf1f54cf69aff7e206b4ea40d7e215320d3bcde67ac503016716d332dd69734509f8949f94f1ee469793605b9681329bd2c094c3ed6fd6ec1c0b50ed2fec38a60c", + "128617238950af070767b1cde9091405ccc2f4ac500739fedfe8868393438db6113771d92ddede9dbcb20964bfab719c322b77d1585298550f436dff9bbc05596827d2d16c04faffc8b373", + "02b8fa8e9702520c3158651c95e5b29cc2af87ac57f7c889327dbf43f2a903be01759ca3be960e6f3da15fa60923fbc9d42b3b144219f7d1b45c4742c295cb45340a48c3dedbc974a54c3315f50cd15eef8ef6fe6208c443fdef" + }, + { /* i=4817 cDividendBits=4074 cDivisorBits=1361 */ + "02f82a6920da8c26596771fecf1627b0989f3d8ac854761141f5e74c5370e26c87016789c64ae0f6e0ef9b0ad500252ddb21cc0354c09350a45472467bdbb15638d38df13f66ca1e903a62eb7fded90c8d612f0894aebfa90ad46b84d9f72f8ae08bc65b49dcab7f8f506563d3213d030b63078c2988db22ea7512b2c4621b19cd41cdcb5cc18cbb1cde6069958bde58211c90d07f884650da125b4481a8c3ed8ae67357017ce4470b05c676ebe11248e635bb7bc1e3e857b8d0f57f5a78d57511f91a67b16dbd3d116d58d05342fea0987968d20a6031ac824c61e6c1547e8fd330cd1eac8e6af8e07b4fbf4b5301c51bb7cd9ade34436e0713097009219edcc40af61f9f6aeb6a0e657176182c44ddb5d5b37e023318033f2fcfd0163056a81e3eaeaae9397a66e03d0610ca4c1a31f59d1d4a5a439c1d66aabff5721798d071d06c76a0c4cc2729885c515cb3f1c068e584a7c094b82e5c863f0bcab9b3d3a2c224d7252471deac76f13bc9db4136198bd693c4e628431d929c4fe792074061aea3a7478ee48f5aa67adc854af6e37bf0d2c80f25d831d061771c50a95f4b9178af93073267a5654f3196a922b7995f414a33157e5ea87615107e1dda2af0ef668a5ef1f5ac9a15860eda7fb136499385d52b062925239405f604105fcd80415690f2297e3217468be5197aaa2b15c5ee949117963fae57659cb41e6f", + "0162786e13db11259edbd542726607c5ca128eb0ab747b78b5d9f7370598791bd8e3bb588f8c4b6b53819b5a6923f8fb1415b9176780262e0f255043bd7559a22423ea82cddcafd83fe5e6b9a8d6c492350dd96961309b70a593aa292de7de439637068d1b9c02e667a94d737b5c605fb97698d587f2736ba64df0470e6e6c8bca42a98ec9d6c4502dd53265c651de77f13310343636b76bc485f52fdd2ca342c079c20bc6efeef8b1f43e", + "0224fea8ffbb9009788931f0c49ff2bc45278547afb09b872dbd669d7de40332a508ddb4f3bddc5dc78d3afbd3af2d76ec1493106fc3922b066ceb516d627544bfaf94fe8448b48d0fd325b7f15dab67db88ec8443db093cc452d94ee5d9abcccfcadeee35aeb173fefabd14e4f3fb6d8dd3bfa486f6d3b14da50e604b84b51fe0d4cb9818ecc1e7fe0b6b82d56bb25c624c9162d63a10c9765270dd50412827daae8a9f928e44643ba29a91d73cfbe2b6c8b2f6a483dad2196e689b93f43d957fd7f5d58f2d9e9d1f691f87583ff031949f88721341846db4f32330f3706c9aa15669b929ec6d86309ba9e5d52ad64264ca659d1cef6c5dec261d9d97ab8b105c84f5b87778222dc4a0510c3773bd9b32890528c216b4b35680f04f66d4920d85dcd574839fc95676dae54d6de0c17efc8346f9ab9d0d00c36344c21febe6932f58d24c0f7f0d1a6cb24f1234fd6bd5df94cd69", + "974a8befa5d9939d339f70c9ae1ed6ebf08022314c4168d56e483031e5a1a5630fc3007405138982b69724c9dbad4968501bd0203217fb71f5dd571ee2d93131f4d6432cded854eaf6bbf8393ac43ab76c86352750f63d19273d18a82af691308849b86d86f27454b7728d7be9c4be1ae540b476ef2a8a3100a9ddffa7318a9c680452119881229ca043e1115db342cb8e72a9ac1127a82f2e9bb58c72d7a730e9eef5bca501e5494b01" + }, + { /* i=4818 cDividendBits=33 cDivisorBits=32 */ + "66537e0a", + "6023fbf5", + "01", + "062f8215" + }, + { /* i=4819 cDividendBits=3223 cDivisorBits=1138 */ + "76017f111ea94fce2a48417bbd69d82ae1994526162f71bb07100c2ce92aad73ea0a4d19f37ebac49df198d5d009cfdedb2eda9fe0a3a9a948a6a694a21a138758dc29032a649584e48f385bf20409c4ac4b3e5ce3d42b040ce439b45f75e5ab469447198f3482872aa86f72c547977973a4ef5211728840016625f504143f16ddabf12192c61f36d7edd9b73b8164ee327a7b134bcd0cb376e621ad7c327b2d01e437e6e48b773714e43f03157feb92b6b74972a1587bf4a7e3b72f86fe211b29f8e45d2e86988a6c704326d0ca8dc422dbcc062e7402edf18b4bd0df728e787fad70ff32dfee77db979bfaf7162ea18dbf129caa79d861bb41538e572ee6e300ea3c1c55c470ded142ba476300f7d0b8c03fb01ac7a885c9a771f5f62e89a67e353675ff22f4de56c6e766470bd9fcb45e2eb32f339c0db667e0e80c2b32fcef154693a230eff1e9e733faca6c4e2d473cd4b6fb4f5551540828e6b18af3563e122e0ddead64a7d500e7558dcfb4c3a6b2151be51edacc17f5f10f8f2612551aff54674f5e98e277f43f436725c5dd72abaa", + "02c99e9f2b2f813d6fa2ab25e19c935b972b93ac751263842db723f089d359834f7020b41c15980da4c3adeb9a2675308209bf471326e822bad2f7848dec0c24b392c4d273bd2ca7c00ae29a25813082669c89a7ca31d2f805e457d3869b6c2388849b04fd5a9a71f1d6f6fa8b942f415728cc9e6ca0b13f72fac5a792ac9248b64250fb14090b6dced18073ce930c", + "2a5530881ea45544facdbb9885d454cb6670d548c3c0c37cbfb9360924288886535e123619394de40c6e187e59e41e11b98e1ca2a2302fc2d874014cfa9a9a261138c25251cc6074dcbffc86f7c5089d6bbe29ad7a0c3813417244dcfc0f16d4ed1bc9d8500b1a59a53a8ab33b87446066d98d860d3d2621af378393fbcc39393650b224d0e32a15c53bd3e4dfa2ec180a13dcccf43fecdc197b8d7a672fee8cef5641a1dd5527585d69a25a7095bcc27805db639607f84e08f7482803fbe7c1fa27785ec52f386226ea782b967c9125146ac72f516ad4b6178fcee31158359a748ca691b6d8b651ae2f1372469b0b1ba32740edbec954deef9d4cd9ddc21af911976329df", + "01d4a7391d47ab0b57030a1c95497f9d07d120c3bc47916c78e0b49f86415233e77f231f900d006dc5dcb0f53daf3d483d9ee352a7c7ed320347d992f2321a22075972bbfb132ed81478c368fb2edcf1264be2d7c24944ca214197f166174e59f9d61f60f2eaf360099105024c68d1055c7efe02bfc68c488e44a0f72769dbb7699ea98e8684350ebf02e9f54fa836" + }, + { /* i=4820 cDividendBits=3113 cDivisorBits=2336 */ + "18bcb5d42c23424fb6cb182e31b6b6bd5a7e7820467e6cd637c1d7dc73827ce094ee5203bbf1bf9c21db0d06fd415022d29091620773f16eaf0a839ce30b12f47c70a82eb95e027fc355ed3167bee60572be4997ae5bd68aa4ca11bbf2a359345b01740a898c715f5a8882ae6fe54c2de1dbc5d3e05ffe5b27d832d8f2a0f50775b7051af1e68011d2822a17970755b63205724fef737fbae276f308a281f403bc71c7ffaed6b012043fc5da8e2ece9c406dab83d1b5c63ccc2dcab6f2e93d063d8be6c162bf0b5d6f75d61ee2af593c117a6aa2acfd91b98e20fa4d1bc4e1d5698b07b371d25d8e0de3c9c03ec23b9818117e3d63f331f1e02cd814072fd16518660f4667bcc3e7941544b6afff49414102d3e7034b850bf3c4b5ad0e019f973ebbfbaf483ec10b26cb9984e89402d81f5a72e79d71886f803ae3a56e8dedd0c0649a446cb67dea76929327ecbac4d31597537a34cb8d37f915da153706b42da9592ce4b7fa9f70735d08288004c9839d163b0b96bbb6013fb5553f5048d252f4bdf4de94", + "216fd38f819c2194f6def4d9e8cb11917ded004c60522ed986a9213ea4b3f9048fafe6e0105ee9e7eaef925248a9ee6b7683f8ce9a8ba59d16b90dee4916f2cdda291a7d7c2d15ae20aa9ad4d335776224f1ce584dd0c1fdf5db5fbf585f27f8a69ce5435b76960f1fe2631953116c094356ac93d367f8627d7f2ca5a021e5d9cce6a632e35e92565375a783842793d6926046e772f43e0a116ba11d9c49d359fdf265c8b6d3e1de17164c12c06f2ca1287ac7fb11d4b3edd000e76625df7aebf0de15aaf8e4ec4950873bcfa39f3fab78bb1ff68fbfe63315bb36517282d7689a16745e6b7cc4f68f425b814fd32b43652a58b2b25e4b0be65f4988313711434e1de2ef1f0ee6dc2db504a24b2ab93ad3dde6582a78870cbe611e87cd6e2cf6909ff1a0", + "bd64afc079bd6193add7567b3e9d9baf03d173b0ec783ba865f5aedf10105fff4312e52383fe194a546e01d4b0ea4f2ba627b9f955353c6ce9aff21668589954328f84686b1a18b1e40bcb57b761d6f6dd601d2a08da13fc20516225a00714ebd9", + "1c7e14de91bb82cbe88e245482ba6a089862813fccbfda40660e75f550a6a4c4154b923c365dcced1cf83ebaa3ee87aca2a9621ff9e96566f0652d582a2a8ab7c8ce25884652747d132a3ade7c2ae946c055305b40717262d5c79b1e3cd61245580397f9810e8f1488435f8eae8bb9201e756bfd62676228e0648de371796d98614ca81a88015baf1181c8c8a03584a8e0289a40145aad395fdaa4384509d9ab1f705ac862d13890932903a62a0b5f9910f385d037390bdc382af7392158dac32e82535a8b18a1805b7bf364e49e2bb54ec7557f6c2b22a9ea1d3b6d961b1137097d88f7d7f631046542fd37559819640318a69451280712115ff9c2e33d157ee2da8065745857e336cc508de6e3598f2e77437df2050579d4883b1920cd0f1713132df4" + }, + { /* i=4821 cDividendBits=1454 cDivisorBits=1313 */ + "198bc725b34ecef567d9d616657e11e35a16d02e88942c4afa92cb88092450f8967ae9cf69a1b9a5e7046d45b7f0b6d1a752386dbcbd4217e0d308a47fc227198d2bb75ee264e65412233150cb4e6c4672f3e707ade2ea6d0537a18f03af6a6b26217e5c4eda1860ecdeda7f9a29d788afccd528a3ee01632b13678a8a3fe55e766956e9701c015994d6d73ea7a3b3f1a3203f9e2f05e90202dad8c7e1caa571db646cb3f52be258098b2cbcf4eeaf60cb9d173007ea", + "01e09620e582cc18f56a38e30554d23f33d6018f6e9c3848c4a32ead8fe1576f09e83482acb791fdc7a35406d1dedfb53ba570483dfa7336350a2beb2adbb4d4ea26713c1923c4264e0c9690d4bb0eff85f0dfefe8c05658457193abb746064566341698c4f298a14283a29039f594e194920f2468353e04585b37dbcb7139a6fd63d7c135fb58e61d96be8c3965348c6df91937f2551b12c8f4f71d13f12403b0ff648708", + "0d9ba01cec5d1e0b19ee93f4bd9b46a3e921", + "a58fa80f2ce1a948d51d6ed4a8bccc38474ae8416b327336b8b93c4d5b717ba482e650000ac3a8c1e1f6693010f68adc616c013fa38aa643276affd6f0c64a0abc207808870d493a9c69854f3b838cb2c6edac22f6a5a37838c085fdf3629ef585ee81b802faa10a8c8f08cdec7fc40f49b5951c7cb08b7a7ddcaeaad7cd76842ed5791d1111ef77b2663172f97f164aa29e7a4d9d016c4bfae94c6feda97593823c57e2" + }, + { /* i=4822 cDividendBits=898 cDivisorBits=650 */ + "032a88280f3b47ebfacb42bd6758d185abe30693fc101b41f89f6df44b9ed7fd75d491be1e1735dcda6029926383c78dee4da0f7c1a1035f6b99629a59d0a133fc25a0f415a6195f09f0beeffc574571fe03b763cb01b3ac61e2766745b36d0b918fc5b742fbeb3dab34598ebd60e9a238", + "03e3dadf958e7c7d9319bad48e56c76cb7983e726b870763e91bb28eb8e923109d4f61fb0689a9c55c0a2b06e15b93c34a2401a3cabec8c6e9d49434acd51a888b55657caaf4dfae443ffb7ec2324adc57f2", + "d05c1cb9743aba8a12be1f5e54dbac69041f17c822ea1f1c800ba6941f9872", + "03e09b2858bca3166528e3a9980888ca18c3e4ecf21070fb044d96d3110f00390456ad64a6fc64a6257c73a7bd4fd3a97e6f7291ac5606f97125ccf3f1a0993f477bfb19f6b34f90a74ee7925772a844c874" + }, + { /* i=4823 cDividendBits=1427 cDivisorBits=1344 */ + "01f7d8888ebfba8bf4b443ea3ec22a7e5953439cb86e4dbc9c49f74e5848ba01a5cae90995ea9ff864028381e32742ea905690f6c55da701bae0225a2a7d000f32f86e72505fcb4ae4662a474a2129f10d572f72001d305a513e2952df3ef1db9b630cfb6ce3d38314dda6b1406b8103ce77b71bca9f97b40b8348869750d9080623c8fa21dc90424cebb9873c944f57cbabde7addb2e56aa78950543e5425910c70bdca9847281cf935d9f3f8ca1111209834", + "efae50837df9267ef2435d3a4794dad944136bce01bddec4e06e8d496a3d8c6a8d1ead487fb1dc3b143f1451b7548cdead63de23ae5dc5d01cb3d8145c71c9b41fa66b696f4683ed4256d4f332b97904b8030f9e847fa606f17d3293866e459ca1ee2a8e5670acc927823ef60fc018cca9d871c7110faee23a52064c1b2571c440b3d746fd3bd4f637bfbb34ca49bc0d4eaa8fadda50c4d1f02bb9c63ddbcd898e7a6da2a2c324d3", + "021a26aa5632acd93ff9dc", + "0da061756a980c23aabda7d494d685874909b33268cb5211e407c261073d8748fa06968ffda9ef40715af89d86611d24f647ff588a9dca1745684e7645efd714aa357b7e44569a7f95185421e7ddce14b3f71ecebb86b6505dc3033a126851dc75f904db875d3046fa06cf2a70cc00dcc1a2cc9bbbc185735e63ee83c5008a03c3c189c092cb0a41d14cdc9944c42b6b9272693dee0a0f09c7e013ee3dcb5a9aa1f1f5fc77aeb7e0" + }, + { /* i=4824 cDividendBits=1079 cDivisorBits=572 */ + "0e7574122fd5e19f02132adf466202d2e421cf9b6cc456f07bee4182f67f9b3b4785dc7486408b3305598abe36a9df8aa89c9e7fea5f6a626fe6abc7bc7c3550c00d56aee4ac9d27c3ca086622f857320a34579a9faedf497730076272f715cba77d16113382784b3108a5e441a951507ab546ce678c4453a1db12d15f620df82c5ba95db6903d", + "08502e59e01389111c2268e118f87574ac8a54752ad9e29e73195f9ab3b88b8b5fe99ec69438f8ca9c51f229c670fe9c69627bd25331995978daba2804b6549cbea46404491bc8bf", + "01bd3fef3432d14fadc503231e0f38e7a83d58288c780e9b2952a993b2307f2b709c360c0e3fc1b5565a0cb2db6647f5e64a4d91d32edf6998765cf0beb8a03e", + "05cd4ac7082e38208196c3da5614aca99b540f70e36b39b3dd4938fca38ce99d6dbe140110ff524f34c2157c1d1ab4c7c0439cb62a12d5448c5bf7e46f26acec864772e8403c91fb" + }, + { /* i=4825 cDividendBits=2076 cDivisorBits=1546 */ + "0f1e8e3048a12a139b318fd27b9b350fdd60a9c05c75afff1aa4c8a2b52f6a1d76dfa7dd35b1e309cc9f4fec3df95591a95f9898a2a59e255fb85ba124822801825a13fb3d129409a4dece54f6f788237f39bf0e90a8a1fa24cb5e267f8c9069002cbc03c6c77095394918513da14502562c4ce950cc1e9ca763da544ec7f3429458a1223c5fb42bab3463dd0027c9e3efe88e58cd44cbbe9574365d0910b2025cfa5a263c2894812bb08e3583af53fab2fbc2f17a7ca5c0f37b5075d79b0afedce475471408ba2ddc8cfb58e909579333147602e8e4395f2c55cf2a655a3f55710573deb3c182ae172f47c743bc90b4071f4001002b6c38160bf5e149d8ee958cde661d", + "03dd911ffcf4daee30a7722f60a693ab7d60c646c79bc32a0db167511f8928b9c3d31a6562d6989a761a53212588799dd816b6c88168b253db0e59801f622d8022018b4814545a80e0f505a784cfdebbfdcb1400d99f8d90ef44513e362b6e69b65b621e3559d49add8b41d0332ea8523bb34bd6655f1a90b53b0169977ab1396150a647937712db22ae61de879dc7efd0ecc7bead52c0e8ddb737020b93d72b69401baf092cd3b9a4657960df1fa72c0e808d4c5523a3b79d2d3928de893bf67f73", + "03e94f176446ea02314e0bf7aca30faea09abee7eda6489b0c9794c60d0496628e4e2ea3ea949263241851ea72f38d78783ac4eca51467dd0ecd4879cb6dcd0cfa3f9a", + "049ee2da496c1309a61f5bc8a2d2382331ae5a6dd6d29d433c47f590a0b4b35db04d18f109ce0788200b282df812a20c0d1a763f917d0f81789a18f736d8c50bfe1c45e5ef0f13091b324b3ee03ac9793edbe1a0f7bca519e5d35fd9e3fb9a77fc40252d9bd116ef6814066b4932bbd7d0d2fd0d2386a7f84815cf449851cd03f1ffce6c6ed53ffde1dbf3064a30a61d5ffd29af0950662340ce0f91f3289f35d49d846dc4ae56d5f0199a0aa72b7ac2131ec35d47cbbfeacab3d2277cf6ea6def" + }, + { /* i=4826 cDividendBits=3129 cDivisorBits=2711 */ + "014937dc76890abb996c55b56d389cebbcc65d6152f9098b25ca97547bb107a345d95386ab92659c57629373f24693c831a8601190fd6a54f5798d016c707817d8b0b4521cff97e9a8059bb2b156ced01f4255059bc770ff28e4f4142d8a23af2cddd463d0b16d35a60a8e7448943d373d2ec92ff4256a3c38ae74c401f559bf06ed0f5178392e1bd279a9639a12689991cf98bb06f9ba1ff90f54bd56389663304ad2cc68d82efc5c2cc8b9f31671f8aaf300a8ed2f9e4ddc3665d283c29110ff0e57d1fead78a71b9790c81a5f655324e3633e5f7e7e03fcf3db2e49aacbe048133b71bad83025b6439d6092a8f0d1fcd3404bc7cc689816aee7f58e42711927ff0fa92b98468272c216619f927fa9366f97a9be75b3662c7399ef3eb686e8c6ae73b9b4e046216cc740245d7d7f65654c2cc5ce69be724473d5ab3a3f7fd53014544aa899c64dc1cbd4118c634a739b1adea9c145f5650be8634c4cfeedf92189f0533973036e9d149e3e1268f2902725bf9a3dff9133b88b3a1af8d8c068901dc9fc39d0c627", + "6ccb0e9aba8668637764e56dad84e7e20bd06d4fe749b5382ccd27bdf7bb2f9f5de19eb08e85faa682feb7b694bb02f803216790512460192768236aec2147a4ddd0f81aa834910664b13e96f7756b7cee0b8fafd80a9115b3d901d04a70011af35c6a1529d86a033f168687a20b5b1715300de6839de1f8f307375f4d289928699256f67c3faa9175057c6c695ad7116b03312380d5843b1710e557f405093605e8e60f84caafc2e405cf1ce597d1f3157034c8c13b7309bbb38eae7c397260d1fbaedc2857d0d009ebcb9b606df7cf2d59da6321a9ce9d75ed31de5f005266291a9514db723a5943c5d88fb9b86732dd166f67a2974f9581684590bbd43087db6dc971c573b9a001a51968332fd89db6359f080e1ea87b98fec9fb9101b5a2a68f9ba1d2ef6861261eebee21781f58032cc2716bc60920811707fd361ad6edcfef0248c87dc9f7c0fae0c5c73aafd723fafd", + "0306adf74670c16622f3d56b1328aca051c88a8706d73f2b578f9b31eeab9e77d1e8a28b508ffd88b2dc6fdb3eaff18d285cd0c007", + "48682830332aaad32100ac14edf322da05681b55844c1ca1d0dfe714452275b4339bf481530892e914136b8398aa7829f5c7062db091750caac6812ef9a0b10cbf2bd8a6c5c99b8669a2d7b6c412e8402bf4a83d9a758902da7e736077be2011db7b459e3c4ba26141be7378948edf106230554862000d6a6fcd10ceac8eeee0054f0c42091170c79f3a961696d4c0f4b7d88efe62f59b02e2d7ecd7f38a85cec176517833b1708234b7c675667a16ac0e742e8a9fc1ab6ad315f6537b5c91f6c4ec640a149a7f250194931afa6dce774287b493c7b493dd24d5bc8e28818765c82dfb701c0d902344e6104df397dc130493e353e3bef807be7e4c527654bde7db9d0f2418ec32c18fe6e64f9e1dc8646bee4f99ce862c5f7c987acd6e402f046a30a7584551482d8b6abb9f0f3da6b398384f8fe93e674b8d11da141e81a3ffdf526ec679833ea085a646316e01db8207293c" + }, + { /* i=4827 cDividendBits=2183 cDivisorBits=1597 */ + "2bc10257f03aa1c0baded80e785a1ec62b6dbd759fb3de23972edf1d5024fb004441bed143bebfa595bca795f0df073aadfc211427f8378fa813c954b8243a59e75a76c3fb6003d282ef7d2087c2d3dfa50f46de9b2f99cea7204ef4d589dc30f334882e86d2ff47a2c6679c958934e2e761602366cfc3ae1b36a3eb5e56269fe06089b9017b7324b2544c0a656c304771934fb371fdbd46db0e0f494f3b613dd90ffe8a9710b68e645aba6463e6640af482feddacb8513d6f8eb0bb09d91f5ea3d620aa81018e5771055e51454cd6eb9637f52d922119f705ecdcc8349ec89fa4a24174af28fd8438a08b702020367c5d9de6ec2b29c53aa8d87f90c8990d59e73e5148cbcf3c1eec157174dda7a1c9c7", + "85161ddd62f2756038afa929b59b01d4240d7bffa17ed22eff56e5ab76b6ec585d98dcdbb8caf127f61198438192da8448820e0f06a9682d1d5524230195b6b9333d37416c567e2bb9d34913a47362ae25cab1e4e58d72180ba139e4752bc1abdec530918077200170c32eb633fdeea57695249e3660333662ba4e366e293bc7bfdc8accf21aa4f3679e1162d99267b847d8867dda4635060b504187f2f8497b576be2c72883084a7f4b829761b650ba7be8f9c1545857f8d21ac4e200c8a5acf9ce4ebf44a8ae", + "5429d7715f245f02df6d91cfeb105fd4bd1d31dfe37df4774a740212f11de0e8d9525946ae2b5d645bde35dce815d8b132fb670fde241d57c9b52621dd1e63b0c679129519362706829f", + "310ff6b437e42b120313feaf6c4433593c0665fe48443d01bf1b4f522323cb9c67b109d8162c989c4caf14911e2915c4a11f7f4b726be442d2964df71b74e89afe92d9a329a62d16a306f37c13c5dff4710cb89270f1f10b0c5551d471b0f8a7d07ffe7d308c3fc4690b86e9a813d9c139d8efc6caf1af87c04c2eec06a16bb411b7e41d63292f644dd245dcb342be1003d9cf4fa0bc1e7b3111c3e6cd37458e6dfaacf2c797fa97a202424ca0c505e68a39b4f7081cddb0ff1270d6f5978b804fd0d18840a9b5" + }, + { /* i=4828 cDividendBits=1727 cDivisorBits=602 */ + "0816dacb9216657502f86de5f96d25ea29501c28ff96b3b42f7f24a8fea0b46162c009d9aefb7fdad7286190f14a97cf4a69f61cb80251ce706c27f7119452b68d401cdaf5619c31255d56de65e74740071e3409f884d36206d599173e6e4ddf0cc59416fb6bf05f68d37d7efa174473b9c9dfb35a515a8731dfd4e5a5cd998ea3309b469b82240c24bd2c3ad275a8a0d1873fb92b51798dfc927bc3344a9f851209076ff0d5b029b1306ffa4efbd0ba41322242046849574c9ab5eb9c4e3454ddb2ee790de2bef934d7e549d1c8fd305547f697dcc4abc1", + "86ca1fbbd642cb65fa36d538004fc1dbd94801c44fddb1f6d782b13513db1747a8178c1a4b18fae555135f1563a42191d8265f0b586d7e9808922269020298ff2fdf89b952c70f353bfeb9", + "0f5d15db47c1c8fd71ade854b24cb0d931669d24b9f8d70a5576727b9181a10e06e3b8dd18eb0fabe8a401511dc944bfff456f6fcda41c4afed844f59abbb77bfa00a1cbda01407ab0c82632ab16e65c0263209e64a5d0dd5892f7a6700328a52b7d5c571c7cf94e869e6b3a9b370f006ccfdb5d582fb6d1a72fd8f334cb006e285a58239fcf171d77b4fddf5f", + "2cfbcfb2d46e6b7460ca1822443559034168ff88e3c579b681386b073d9cb9d0a2a74b88cbe1f9c9c1605965aefb66e373f9fa3f92070508b624b5dd014e8517c2a9840456b03007c8fe1a" + }, + { /* i=4829 cDividendBits=3967 cDivisorBits=1446 */ + "4d51da5343394a918653edf4571882790e7c944c1280a5e0ba89d8247145235fb03cc885b7ffcfafb027974ffde01868c75b7cbf6e05f5c2a1df8700386cacf983e49250e2d8c9eb490c637ecab1b34c13c182d6eca2a68deb9dffe6c0659c3e8761c1a98b7edbd6939bc8e2523d2ca6c6ff9413d98abdcce41decb20f523825c2412ffcdc1ce38641ba40407fc4c0dbae19ea9bccb832d849e60e4d2ad0b9d9fed0923c8df9df1a7faef77fc0274cdea4af4ae94caa966966cd640e9da0446639d2accb79dfaa0d4d46e78a6e5feb7a2eef8ecd20becd58cfbf7c884371421abb01a6c9ff29baeb565f0172b527d62893848c8d93872660d6abb84328303cc74f9bf8c68cf590673a2947f56c5565d71972f4ae499bdec1b66968901ec04f0634a65e48ce14e7129d238a906fa03a0e50791430d8279eef1ee5553e1934df6468ee35d35b094bcafeb9ecb1b1f18bb42ff83b79861e6515df8c0e909b06eb7b2f21dd7f814942b40bf620b125ada5e5d3c521e06e9668e96bf9d2b48d1dc9d87996ae462e65b84366776d3e0a6b67defd625e70ebc359b5b4738f07ee8258e7a8f8a91b8c9f8ba81e8908ea7a8428818aaa765b2dc0e7ebe80866f5ab4ac66a3a5b3d8753ab2c2ae7df923ecbfe08d58f10b497a9bc310f29abe1c9145005401abdb6f4ac6ac36497b84fc4554f11f4", + "2302587cdb06e9a32afc533d7c6646c1a8e3ee99c5defa76c7ee75b2c8956ee93f7bd4c3b57dd02dc34c5a20e4f4d97ff8c2b1750313d8957a7fd26f45ba5b1308d1f99894a69be4ad2ff92afb38756bec233f26035aa01377cae7a6d074b8c40be9b6882279a018a0999e3ca2bcd83b300e642d8415f0a35e68bbbe1b8f709cf969c11d68f63b880df66e2a75106871d6e3d4f5f391c066758f7a44cc9ee3ad13e961577011afb5ccff501d5188d2e8deed59b7bf", + "02356400d50f5cfae655df3c5200906c6b975c290eae13a0f76d34ef1265708b089aa091168171c96436c98f02c22ea84b50454d9762cd2dbddff3dfc815c95f6ea4b6b2245bdcb7a0d81093b5876557d492de2115c7b61e33ef6fa1c718c0bc4fd9a9716517338376b8de99907eb308a8b6518330174cdbd41ad9e47953183f741ad6ac77343d8982a81699d399a259b699f0c2e7ce8b2b1b508c5465b3268ad526d9c1264578317b068f5c246805f48ddecd527cad6bbabae8f01cdcb17abacfb0925236b4f95c95af49bcc1a64929f78c7bbf3625aa62cb30c67816ffd7d8a3c45d7aeae34b43f2ee7d7fb52e571f45bb674522d34621cc686cbb279e284b6f0cc4a7f2ded314c39f5034e226c1bc2572c3d0c083d0185d26e2f92b7920a6c1d4d79ffcbab0b8674f8bb124c8bba2705eff2d2b0fb883972026b1", + "16d90e7f50c84e2078867c39a0b778372be07f1e4757588c62c634ea73c13d6842f19e280fb999488da04c78dfa55fb2e1b0f98cc7a2b2e7013c2e2e0f981f8cd956b3a580365f7c2c4caa67ba3704fd63fe2f0075a0c8b15a4bc742f98442b6da5816dbcf1daeb7f3fcc9876f0adc1c4bc50e6334f8a4058273cb37e8747a7340b76b08b46864ac37c6a488b2b4548596582c68e3181203b0463bbe474b14702e652c678830462daaae9cf59f4b4b51114820ace5" + }, + { /* i=4830 cDividendBits=3557 cDivisorBits=3554 */ + "1fcad91dc4919c6ea2fecfa5a9283605c179317d9fd0a2dbd96f5476e861bab26bbbfb1958ab8e77d5a164d410d941f2c35e37628ae585c025d65a30033b19416262177bb859ad77a9531259dfdf3397d0db36f62bffb0034688d4731c6639032b1d58418a9cc3b3e92ac742b7222ce25422b14ec07b8b786922a8559bfac878de8b3c2a26d18bce770d6dffe068c9f841953f064b664f6c698a74c70800956a1f6be9f60bef953fa13234319f2a96d461a85b7ea4d17c586ac5a1fd8a9e35ba7ccb86d81c955f5c05eeeca8b3a818f8c572cdf2f9d9bd7591604abf9cbd00726931eaf28ed4c63e49fe1f1784b9e7a6e841f110dd9dd2d4a31350f6eb175d17a5612fa7cab2091bfb0d0d4409c891b7074786b5b725a59ff61741351c32e521ee8b0c46a647cb71ff101efadf50ae40d90850e2dbd1d058a4ac82be6b0374a8b0cf7a5fb4cfd99662d188e77a33c2136c7098312d62034bbb6b22f57e883f05e376e3b0a1dc1687e95175d24a2bb12911fbdda7de5e0b39c072173fab9fea97ac471e625263333d46b9d6ff16f39e5b7530e259d34af77d2978e40ec93f9b2b4a0737334025ec92125c6e3005c4a3fdb59ed4a6558962ceb475144b82", + "037a6f7b9387499d8a1648529abd5fd03fdad0a0b17da2181ac023425348b657435708a672ab21f23f04ced36a7717752320a718926955612bb552fffb310a11705a611819687fb6fd7bd717abcdabbdace37d8e8f51a82a425c5981bcc82a8c77102cf602c1cde6cca9b4be702b9604229737adbe0f4f33f710ab2adffa6e2448e75023a79053b67c0ce79d8c717f7328634784745d2a419542fb7b378ccdf18ce8d16cc8b5e077a1125d3d0f27cafb425af5b65245c08ca0e55b30b91be1455b9755314272699cc380c68db7a96bb485bcc40a5da20984af5ced96c86d6c2313f0fff5f6945b76c55a87fc5e9995f4115b19cee3edf09f0c1bf434a55571a550e7edb02063713fe335c49acee3af7ee010e474ff8e2da23a947dba9d4425a872f37ef5ab2af93f87b20fa542099b908514235de804beec7ac50bc8910b9961d774ca3f7d9862cfab6ee1db7729d1885f41a90e063a5da6621b031668ec3d80fb491960872ea9a1e0bf265ab3aba731cb01dfbb2b0d2ad83c5b722e59193ddaf6b9292e2b228ae9b0b20f905055cecd351aa8e2bf7a780e97b778f5657ab8dbbbfa2b10590a8956bd11cabca6c857ae6ae0805f70ccc43fba87b8a8fe", + "09", + "7cedc594d005e4c83644be387fd7b382c7dbd76265f002e8ae1721fad351a10dacad3f50a75cf39e761f6552a96ed487385785653185559c766f302e81bea46f34ada2d3ad3008bff88284d5a429ecbcdbccf32220c686f149aee3795cba12fb8bc39b71cc8696b7336c90c599e6bd1cd1bc3311f1c2a4b98ca3d3bc2ce9324e696ae942be9a641a994975f06b4eebd617bb5e341fd31e2a2f9d72140d57ec2b3c8d22fd8ab10af78ced0c16c473ff0c75b815c05db766c2b56d4708a34a4a4479881cc68fa8d92667f1ad3eb34fa011cfe995af2767cb671bf07290e43336b5b8eb4ce39d8f1159cf57383153a2124c0e08cada405d3d3617bb1d1b165e47cd39d476a7330ddcfe2923d2c3c7664126af7e98bb260aebe6ded5a594cd9235e3fb95a3a1c5083639cd922b8cfa362c2b531295b3a71a0853bf18b1519b10381db45e244a7460495beb983049bb64481321a6b2f554b8724878072bce3a157d0de4ff4be1381fd702991ca1f922d068eeeb00135ae7899fa13b139e89bcbde4ffc4abc2ce2c510610774aec43ef59249740f26117fcbef9d405a36e37ef1b71ae3bb3a01ec718856cbc4d8e28b98edbf3ba514b5e567c9125af965a94" + }, + { /* i=4831 cDividendBits=1302 cDivisorBits=942 */ + "32e430675bde4e8769bb7e71eb599200cf7ffe743e0fb5fdb3b3efb066a4fd060247bf9063f7e7dddfa8927105c8157807a1a59b7c95b26e1562ab6c355acb8b694cda8d9efdc89f35f0ad18abdaf2635af62092f13d9b7316066a291947667092e4d3c37d8ce2c8331f6b1bd7f776dd6423b8512169ac8262bedb924d812bb330853781ea408565f5b60e75a36a5e927a8ff57d7f7572dbef8f40a143337a2f900f31", + "195849de1851673d36259bfabf309f857887860b1499a37f5af4fb5c1db9a0a89bcd571d2c1c655382bc8020e3f749cdafdd01039dc25f6b45f6de37cf01e7b5435cb83a4eafe4a00e43e86b0bc1ada90dfd1afc67a60c61fdd9a8c2f6730ff5aa1f028c0e51cebd8f985396e89c9ef3e7080c265fb0", + "02020950ae33f07ca83780b5bfc3cb8dd714f0075d3c66761901f8581758e4c3b02d4fad3b9c47260fadd5203aad", + "11f88b1cb9b2853897d00b7bdf24612dec7bb91bd38034be101620c9a1e7b062c281bafe76e77237561250074ea6d1b1011918a7ecfde695f654f045be3d6c61a65274584434fdfcd549c18f709833722aa36a0d89efe3112d949feff93b94b44168d9a0c10001acc6a1551f290ce750d3efe1f38541" + }, + { /* i=4832 cDividendBits=2080 cDivisorBits=1566 */ + "7cc0d142f417bb1a0721a1b68c9080d24778abf30d5fe1fd5390f11e7f5a72962d16d009e39c0eb437001fdf27776c996851b35ee6d6936d7c9116cf94a5fb9a1b48d7510cb9d1948d51d53ef5d9f50fb4b280ce9ceb4f764fc4131b694c83b3a63c15b14ab1e385d687837701e7e079478cfb152fd3c5c93148ead0a1dfc3f0b6b4980121894754bfe5c92a22917f75620195228b57f913c906274dbf8eb60d1d96b771f3037f97917c715cf4887d4eb122333571d1545f7a2f00695e5ea4c72e3c7cd5e92acceb77079d714ed175d4592e3179e444d6c70a5a2e4372193515dd90cf43b6d1ac10f738a4c3c5085d4bb40c60c16cbb17702265031e329c74842d054984", + "149e6012649cc5c0ea3752b79298ffabe93034eb61864681c874159664e146f886f3f59047fa0bd2ff68291b4454c90f8d30f24e27a5b27ab8479a18ef99ef25d655ecd718c2774d0f926e159314ff849a1c79a9c9945c5e3bc6bfa9e986386b0da1e1b1cae03531754370295f34dbcfee64ad70384bd10cd7df05268060b4757cdde0f8503f29d6ecd3c834079837a4b75c157aac1220a0d2d5b534d300ddf40ba8ae0e2fc4f2aa156431bd884e9dd914ba35bb7502e282b074f262463ff31974c342f8", + "060cedaa2cf40b79fe92010ec8159ab438cc27678851c3289bd2aee01ae294d042d101e0afa45077485df875d6161b40ffdfd94ea668db93ee6013038df9e479c1", + "145cb836046ca61d701e1066e779c7d8e73e7b012ed875fd94c792da2a5e7a64767105e2c9f762376b930f1c4d22c0fa882c28501affd8d84c6421141367291679c51525e961e8257bb5e63fe705cd0868c19e82374c34b325f18c13a43f1486c56819e9d807103e29c30c56da69eee297b2bbe19da441d5ede8eb2b3d0218e6264ffc04d97afcf4561182790457840d7033e610b2c780d3b4ebff9f7675efa4160fbb02341ad66bacd5e86b34fb3a5052a5fe7b4014f9f69eeb4fdc2b84717ffe48948c" + }, + { /* i=4833 cDividendBits=3333 cDivisorBits=304 */ + "065d66b4f680471df0584555df64c64285fb9535a06e7f7551c788eb5517e5e502e94745746bb1f3e64e1ed2e4f5dbb9b1a1359aca0d054e62e3d238267324a49e5cb685c0bb332c95617747cf39358b32118fc5e3d979058935f7e4fe7a38c81bf8221dae7adad0c39881f596959fa472a319a211856713b6f564442643b6e2d520825861e143a25bb8d40cc5727ca307e8143b3a260681074a5a5666366f4c31c913fb5e7c861f4bca0718d0bbd318ffde9f33df76934957935ddb24769993f6c5b3bf4de95dd63a9ae80872cf0d99e5020f20868aa842e4d3a12a60cf74cea3232fe5f134a6cda8e3b9476d6d790d214933909e0dfe9612eb0f3ee802fcc19cffd1f9dfc1bd2ecb8440f4a114053368fb9d2b5a318587c38b921ba58699a060402937ea8b2224e888df84df836cf67bda3797b6fcf63212ec9b73edeb8d51f1737a4bc1fdef8f36c92454ac34dc4a9550fe20176a3b79d232629f411934ec44dc93db79465c796706599c41d5e51ac691dfceacf40770a9caf7e2fbbe47435eed340d8380c043ae2c2180fec701a1bdc5a464e24f48fa9783fe7930659a8a55", + "35ae9f2285dc2b26647a8ff6649f3cddaafffba30afcc84ce3ba457ac24f3bed6a47d8e7f667", + "1e5a4f7c641551bd4fbca090143d604fb6926c93ba5e6543a04475d36a558e7351949a26dea3139a3e2d7cd8e1ecfd6c2326c1a4efbf93cc0964ade038749820bdb5c5d56258c83aa0de495e1b015893835cb5a88eed93d5b0e8807774c240df6bf86bcf51b6e9d07adaf845cb747e2f108a937a37ba32a1eb486c67e10fc6c8e80ca7c57f041f7ae6d7370f57ee9ea16902fbf93a2eedcd4fea6196423477ca8f094b431454148f297dcfc398cdff1bb6da0d01d467e9c1de503966faac8b539734ef9faf154b9f38b04b60e249fdec9097b55860627c0f66970a4d3dde89e724a763ecf08d06d911a7f492b76b3cdc1b6aa2629c04cee5589bfac59b316f4be72707afdd2f5b438647ced340697181d587aa4797bf9625b5913f5378df04628a5ba0c1e888c44fe79d102ff1218b60a34b07a5cb05d2fcdd958fff1bfe657bd29e88124dd6fcf2245ce46cb82d4b81c99647f74f8b15ee398a3450b32a674e5ab55209ce6a2122b2b3ecab0453e7870c53915cd822a2b2b7deb2", + "1381e2285379cbb5d0f0e8d5be3d0d4f0b3fd8d017a873dc68deac171d090c2752cfab02e4b7" + }, + { /* i=4834 cDividendBits=3873 cDivisorBits=3596 */ + "1c70fe7bca800975340293c5e26337b4ad121a04c351f62538b5d600800ea29fa1d2014a146a5959fcda712637f112675d4539426c4681ef984e6a7ed2031eb2632bc82dc447fadb42a52dbd1f5e7384c778a5563ad92469c01ebcf6431e80f8a721b48c0fd7aa9cb8f85b4755da13df8325258cccbf2152c82e87fb6eb8ad918fca346d6ef9b9a33dc118ab53d58a7bb6e3c2d6942b6db85d8769517ff86629a3e9feb6fa60f69336b2a344d9cdcac72ece6bb1c04f43709c3f8f25e351e1fcfb1aa8aa3f02495d8f4eda3e0561ae434946f0c53e6fccfedb369a118be10f92b54eb35bb7bc377a9724b5184fa1fbe0238d6585583e95b2d4ad523a012ea79696340d1ef4430abd65a262a700efc1ae18c1e55a4c18e99c5c971643a132c726ecee3fa22f3b5fbb9e137be70a947f32aa60256f652469bdab02eba179cd82e0bf0ffff1c6d8d30e996dad3305767bd91c9602b62310130a7adeb0890e00ebcecac350da72281ffc77f9506c0c094bde668fecb8c16520b1c5e87a2372ff2aa489386f0d2b45f0feb6a2c5f7c35e0b861783812549191ee3b172cb8bc0873b2513735245917ada4aedd087c73d80114dafefe66a24956b5ed98231afabb20037afc1129ce8f6b782893d192fecc28861627c51a12e988ab215fdfd672e87ef06d336f3c7", + "058cbb48f6c5141419e8f312183d48a8e71384a3ef4f8ec125fbeeb37f2067ea4b5fd074aa03a4a2f5ae7448d29222db174fd651dfd52d23ba50b923096cbde68e68a2495debda1a73b955c858aa1cf1723b997827ed9a1ec2dadfc564ba24830636d4050a5c06bef130907445a891d6fa944a8603795bb80b4471c4db42e83d81391ce3476c5a8f64a6bb70c4f90dcdd35a15f96734efdb54aee9c94acab5ab1ad55340a47228cfe8d4e5bb22cad6f821292a45a73e3977fab1416a23d45a364a0f8124012abc3a54f25463c2e471a2b55c2524d8fd6979f928f1bdb7c6e18d0635806f08f2403a5fe85c231ad695c7078413508f712f8a63e251f452942976cfdfb29508387648e48cc7ea416d5928a305c2e67846181ab7a8f34ec047f5c8fb4938a052e0988b5d0bd330586c33a84ffbf3b615dd7b1a9567c41cf5cf5f14cac27cf8dea7b5d6c46528eafa3286ae17109e043f0de0d0516481bc3a54e408837f3cf80f46384a36b41ec77392a28719802b635b1b6c0a86a263bef67aee1ed92089b02796b6d2186fac6f77f4c1f9f4da5d5410bf4612544197112d9acbc145fa740aa5ea9697d397a9bbd6111d8d08b226822d4f69f7f58646a4fb1929dde51c", + "051ff43969dd8b82852db898a2125c26bab5af2bd83be4087d5a295f71ba4f02f305fa", + "0112e9b307b481367305c2995849b1cc7df7ee53d9af23abb36e7dd3997855dac54010bac0ffe4b18a78226211a6736a01ba5f4906acc410cf632879d7398d8be0783c591416efe12855133260166e65801f53f587f632881c8db4c5f38830fa11e4d6d432428b45c66608a90e1cd6ac16bf25f15d9822a1c95b3832097fc3ca2e84b6d03c179290c955ed3467042bc86322c159e7d9e4016a0554f2342f1d3df5a1ad1ccf13b94d0ff91febe4aff173dc98382a2006b06138fd8da68ea9d41b74520466f92f052060e62be8b3a5add7451a932e424d9a18ff9a43237f4f0beead17565d68bf73de9828354cfdebeb91dde4928428d85591ca0a7a195bb338078de3798fc9e7c271ba81e15a2539868339d49164b4c8e124ee4106440986f76e8393153ee86d40386274d3649e28d9ef8440e211c22208f9c7b06a087cd4efa5b4dd1fcaadf7c32d3fd166f4c8fef301ed75a7aadbe9ea91a4c5f83cfb74082dea47cd72b095f5ccf2a4564d741d789baedba35682144dcbca927fd40edd9e041a11715e341396e28806e2fb9bd141c30d17c368140a5c5a6e99d20a83dd97ffaa770a63662d8954fe767c10dddaced2ae4430a28ad3594a1eb1c400b593e977aa6f" + }, + { /* i=4835 cDividendBits=1959 cDivisorBits=1617 */ + "0622c7121b4d92b3634a7ed64f9abc0961fdd1912e49fd7d384e2572b15e0a4c1e7effd68bd8aa470848db9e787b7fbf75cf00ce2696310aff575861a533a0e06ca4c8077722d09cf5618d2d464a2b4b2eea2466c69bfc28749f50c299d1c18f21de77a479fcdc7110a83518bb721d909e79b2ad8b4a475181d87c7fb54fdb9474b74c6e100be3d5c33f09e9522953cfe96f802fdcbb8ec42cf9d2607e539f4802c2c97c7f7fe4033341e95d6b8b00a7307075d1ab1ba9aaba59309eebf0dc7712e8ebd8d094ff808244bbe1b99747bac41cbfaa585c37333391ddbf418caabe656d2db8aff6dc5f15fb104056a6063df1abfbdf81", + "cb1f42f42e08b85361182e8e749ecba7dad607400148775132416306417a85e08042403e1c19e92687a6fabb9c5aad598092bbfcf812e44fd33a43e4c80b01c2b9f0bbe7759606f09a09f4ea2e842114bb4b1727612e8fdc35400722b3554e0e45f66f4940ed15316c362a96965e792da2cbed9fe18f88a46be5b25998cedd43f927a409839376e89ce651be37f1ba8b8c476bb480c8acd47c3a60ed1c6edd4b54001395837d477b2cf8aecc3af5876aa4049d2bed6b2a05e31706b3c33948c5441a053bfcb4ef0bc34f", + "07bbb0f48a72e681e46accbe664d38423ed8dcb5f9403e637a67523ded4aeb5d1f5554f897c9a8603e70d3", + "95cdf329fb63504da2a160dfb7ad064e037cf63b69aab85ace23214e2ac4f9ea6528dca1ebf633b4493333253b10908f98fe5da84e8bb817cb2225adbc0bee97590efbafc411b4f2c2c34cf020f60ab7507ea98cd205e13bb12e2cea98de00d738786bf8f8276bb0281c390c368b74fbef6e0896fc265b5dabebf8dcf86d03e0e4c7f85008f5cfbcb8c39750e716e3a1ccdf096b0190e8e2647c0f648a0e072300532386e9e167f3d9e07441b74d0bdf69885e47976f2e612eb4930c24b4e20f5cd131e54b4c92b55564" + }, + { /* i=4836 cDividendBits=2191 cDivisorBits=1703 */ + "10453fd42ea9fff127a0e25a27c801396023049e0eb088108b0019e3f0c6e282b339667b2bc546656bf4ad78bc85724d84feee3cf43808398492dedb8cae2008516408664f14fb830a13c54a32cd97e8be3ee0b3c2d86f1eb03f9d428d34dbc6fbba58d1601d55433e6d5b4bf101632a617f525be9f20bef833047bc8e09133ea0abe2235aac3cebcc123e9c503b62cbafc4cc436de9c5c2575691fb7afb403f6f9a59be842028d625eb8e37ccccff5da6143b6ea8dfdbdde00f82fe0b94117f88589a2ff29a257270b09f424adbebf6817ce54b21d21436970587c1de8af3663335e81dadf77c2b965ccb31c4b830d505a17c2c5c9532f5552210d5ffc99ac153e7ba367e6031e0391e0bb6a2120092e92a", + "2947e5098b69df79d1d8569ad64c8f3abf651b1c5388177633e1306fff9b28521dd599ecda8920b1472d0337788d508b71aff20a16eb84d6c3f8ffc6fc8559a8d1e901638bf55f2bed596a2854efb80b8dd3e343bbf7c1e89b826ec305571a209c646da914fe97d977c1c544baf98be5c8b7f0c177e24505e175e0bb055ed2920168c2bcc895076ca125bed34c47ad2b32b1970eda299d7a630c3b3469749e0610680371b1af3ea949cdb9bc3096c3739729b5110c2c4f33510cd500325b2bcae378abbf63feae7e3d94b2dc03cc3ad4091678d587", + "64e67a9769e0d69f41d351598f63f19f75caa07d332f84aa6bc9574b6338c032a93f7f59092f18b061741c115c80f133058e0c5b005fe6b0c6d6ac9fd7", + "14a6986510c681c18b909f161e4a8fd0dbd8cc475f4adaf4542918d12f9067a8775743aa6f1bb194cdf956a45008c5251781f160527b836421089a1e02a65362bfc1a436c74470243a31d53af51e37f399aa00a68f4f35b7f72d212dd21dae3326101d7f610c637a193a07ba9c5f57f860b2934f96a27648f5c4b673db642b5a66da3f2b4ebe9afe180e9bfa2d8871e55f6b88b74fe18f1b6abc3bfaca3f956c48413b59ac584bb17b8875cfdf508666be2e44a8abff5659854c2f8368b2accc0ab414c71f308854991aba6e07892cd762c3c4bbc9" + }, + { /* i=4837 cDividendBits=363 cDivisorBits=332 */ + "029c8ebb05d6a706024e3d81c8c06644da2fd0d6c816e2fa0a54c5f6c6fc56d90df55366203cbcf1674df300a565", + "02e85805136353b559397b9a79508a063a0af523b22821b3af796f2c45ec3f445574a28d45ef2ca36047", + "e5ef5f07", + "01bd69143f67ef346f93645e3807bd9d5620b6461401b91d8587428947c81f856046a0e7ea8cb485aa74" + }, + { /* i=4838 cDividendBits=3823 cDivisorBits=2 */ + "53ab5ff152323e5015f388543c1d18f4cdb3f3d61ca3ed5758e84e2e707a5daac009f8c7b3273e54eb4f96d115bc2747b28c56d259a6dd30e7fb981fd2e432a945ec0050f9e5be52a075f23ea21f3a87aaba8a093a80a1189975b5fb65395baf2bd6e1c364c94b6f0c3fab2eae8e1eccbf50fda9e1713517e2e426fd0436ceb170637ba9feace9b6417911dd7c5a078280bab42cf00cff2885efca0625bdefbf7c9aa2fae4b6de7661b79aa51fc4547847ce68bba9bacc36499e4b0ab871735a444cf8a5f6909e3be73fcaf80cac1fb3a055ab8a798671866eefb57af3f9025a3c65cf02bce20d479b4208270714efd397e52ecff8c7e136b2343cf3ec992c2c48eddc25e34cbbedd5cb183a809b00838c85395b305c8a5f99fd1e7a90ce31943450d9fa618346acb7835b00f1bdfb175c6783ea0be9a929978cee675d50573022633ba4e7e4c8b011d62ec40c5259d8ccb0ba7e6811842c09ac4709538d1b7a04f4d7ae35e6f97eb7c5b21042486e267182f60278d88af56c4ca80cb5396c8742d7381b85e91ba73116bce6fba9bf38cd8a7a3b61415c0ef315a6329be4803477e978eed2fb6c25402c9322799c078f7a1ad749f05d2698129eb9c039850eb633718d88a2d49fbe8763dbefdad37ade0fff37bb45bb494002f09c3e54d2", + "01", + "53ab5ff152323e5015f388543c1d18f4cdb3f3d61ca3ed5758e84e2e707a5daac009f8c7b3273e54eb4f96d115bc2747b28c56d259a6dd30e7fb981fd2e432a945ec0050f9e5be52a075f23ea21f3a87aaba8a093a80a1189975b5fb65395baf2bd6e1c364c94b6f0c3fab2eae8e1eccbf50fda9e1713517e2e426fd0436ceb170637ba9feace9b6417911dd7c5a078280bab42cf00cff2885efca0625bdefbf7c9aa2fae4b6de7661b79aa51fc4547847ce68bba9bacc36499e4b0ab871735a444cf8a5f6909e3be73fcaf80cac1fb3a055ab8a798671866eefb57af3f9025a3c65cf02bce20d479b4208270714efd397e52ecff8c7e136b2343cf3ec992c2c48eddc25e34cbbedd5cb183a809b00838c85395b305c8a5f99fd1e7a90ce31943450d9fa618346acb7835b00f1bdfb175c6783ea0be9a929978cee675d50573022633ba4e7e4c8b011d62ec40c5259d8ccb0ba7e6811842c09ac4709538d1b7a04f4d7ae35e6f97eb7c5b21042486e267182f60278d88af56c4ca80cb5396c8742d7381b85e91ba73116bce6fba9bf38cd8a7a3b61415c0ef315a6329be4803477e978eed2fb6c25402c9322799c078f7a1ad749f05d2698129eb9c039850eb633718d88a2d49fbe8763dbefdad37ade0fff37bb45bb494002f09c3e54d2", + "00" + }, + { /* i=4839 cDividendBits=3014 cDivisorBits=81 */ + "1d8a8a91832c0fdadbd76e38c7afc87d2162cfa60b77a00c7f1f33349b80e4ec9c8dc8fb4b218dc0c0767a42984afdd29a2b0a3303a1f30f21e8065e3e132271b6d81fc1c51aacd4a521c3f0690d060d27ce1cd88f780de511c3520401c4ea055898137a423d9d0ecf2d8f8ae707076d8d7186617d3eafea87676b5ee8ba8ac74389248af65b6eb3fbab35b9b0fb06dc12f87b32a52e9fdd83923cb89b9e43f635c2cc36bcdd120ff7d05d3353632fe41b4166b4aa97c4014b308f5bb1b0e90b115e52f5cd4670614946e9907c4032b7c80f8f9b41e0b02dadc176238ddde55735062983b2009b5b1e49f124702c2ae2e23e7b33a4b0a2c58b08ff717adb2e5056da390dd14d2e53434bdae1835dd3ff87c6609a7f1aff71c48b0b30f9110d5f1d3ae8034119d8f9d583efacb431282e4d28ac2e7457f313f480013a71fdba28f4f2c8a2904be1d75210d6919f6adf58503ed77e8fd9ac252482671cfec08a01ae42befe6f2f8591244b7ea7527837e3a05429c20c99df1087", + "0138b6a1aa2a98d0897823", + "182f018a7c50c05bdb891bd269418ae0d14423082cbfe61b99c30f0be3077466daac6e5be7a6c64e1c365baf021eb6add69b063962452e7ff161fab961075ca8842faa1670317f23f5951b08f4fc0e8ae51c0e773231f4675173c0c580563851a71cd635a03cfb6555afcc0c1c8b1b9c898f9a89da7866c66f625e4902648434706f1b113eafcd60a445f25f73de9011442164122fbed24be7d14de216f04f79e444cc922340114bdf580315a0e53513b866288f2af15a9c9041c2ac3d8f193e5a9170f224370f1e28979b417e56c743c81c0afc439e06baeb56bb7a9f7c036f29c2d45551254160d7d6e30c685c847bd635a1d0387b069c302fc18129b41f9711d1df23670239013011b0f8449746b8de318484fd361cb23ade92d3f1bbb6d86ea377c132cd7f0bb353b7770dc57b9ae4aaf639dc4e13bf36dfdb45d65a21c64e4a2c4e18ea07fbf281854b99bc0d71c29dbe59c77c849fdf11338afd0c7cbdc3559a2c90ad005a50932794a21ae6", + "5197f1d320cc06039315" + }, + { /* i=4840 cDividendBits=2320 cDivisorBits=275 */ + "e9f4cf55d41ef3077d5f9deaec50e21b8c26533c894a28c9ebea3aa832fb462231f1cca0e938f0fde0bff7ba3f151b8f7a5de93e762c4002ed6a45d613686f6be91669d25cd8484f15a21ed035dd8184d5f495e3ab54bd52923130c49b3e67f299f614649a34d8f79e84fe8197b9084b188444ee1ff99b7282fad836fc3aa101cbed3488d29dd133d84a4a08b46ef58796c719de187cda8a3c2b5c8621f4813f88e0aede37caab2bbd30da56ab15b31b0bce37fbaade4aec08a97a791aace5739c7cc87d3f9202ff5940b8147c0e99dc71b8f17b0e36e3bccbd0d3d6cbfcbcdd1de76d4f8ada45d6f83c6f94f9cd9ca3c780c826e88a2ab88e60245c01a3c25769e4aa3c04db50b1c98845190610662e1f2f9a25ab3d804624c74fbd0bdfd7d9a46a", + "02778c5acd3389cf5211b747fee6db9b72afad6726ddf4b65fde00725fd29347849fc9", + "5ed5bb5c2e162e66de54618b31d8702dd2827c3e7542a1339a08c4b6adad5371ea12525987e2e30c0be49c2c68914b2d21e7b5dc01fc886308b6b76b40d9e9f4b94dac99b2cb418784e74769db18acc0e24b7b342a8e80bc67ab9f908175c7481f0abaacdc60c55bc860a48e71bd44610b7a95be67096319fe5bc6458bf1a85ce73ca96974ada85f3f8fa4929265303844da87c8737055eabc6313e6e646e0aa4d08c46b19e0e886b6c986f8143054243b141f9313359f836fc768bd03d1818f649b21ed2ce4133014a75c07c7ad8b165d05b0881033043ef0dc2a62d24f4ce684c37d9accf02df97f7b585e0e886f12c053bf9c75495b52ad797618a4254e36", + "b65360d7b58534360d52e66aea1bfc27e8967dde89b2057d9344032cd3a47d23b204" + }, + { /* i=4841 cDividendBits=3317 cDivisorBits=1686 */ + "17f7050d594f3dc34e9438aeb163ad836bc5a033be2f034ac069a74e7e8afa036b467b498fec6c4fe9a6fb1b006052e54809ff07ebf10a7ce390ccb9c87088fbbfb57cad97b9253ecbc88450ffd1d801502879cd72ddd3d1560ce492fddbda7c23166a16322fb5efd98a9132b86ba0326692d0cc5d0d180470c42c2eabd5af2c2203658c08c8d9bd1efd65a4972bf852fa6582b3f55a24c69249c5eeb583a9708b99da5dcdf6c4efef9699d167d87a8c94bdf3797532492b639707f7b1522b28feee0c715cad732ec1cd9931e80a70b10d8419ea8dd806d35b6354178145e224764b4368678103bb8b40411b8e90ae7c6541e0e4bf7552ef6ffc9dd7f3296836d97193bd067a79d2fc9803190c25191febe11726dc8741b7c04fb9c024e0aba4b083dca13125a5817f6952bbd230690e8b0ec1b5224b9b2c0059b906758b33841dd497a0a42b2e71261e48ff797525d4d68ab040010c2f6d68673c1724c9c873b25b9036b7b44f51a2e9b84deb364585a9c1bd3df5e632037a07a9a82277aa794a8ab20f66c05432b337b9218e6876b11cf4058034dd6c4e12649107007bec", + "1d801c69c5f4bdf4f54ff375cf54305fd6c1b2d3939d38604244a326965a5d34d740b619ba57e7307bb9d7c5426cf0008499c673ef6c625257469aac93afe7cc03d993449a20468d50bdf82c1d634a2a74b0180cfb3118e15c81c618139dff1590a9177daa04f20ae7a4bab88b1fba85784b8f1effc9d4c26efb7c7334c4a4461c2a88020e8535e9a6cbe2dcae4ee6efcb38a813d710ef266a8b95c34e3e9f2c5484b3111e348c7ff5bfae86dfce024e35ed62a9cd627c97221779673eddecf1af2e13bb98ba1e907e60c2db286d8f4aa0fd4e", + "cff6b5fb21e14e92e4c1db2d4361c4eb7380eb6890598c9006cc8d87e67e9af967089a218fa0a1c1d1fee607da65c50d3e016803471e3427fba9abf2c371e2f5c38d789aa1fabc0d3f12aebc1a30df52dc71983e8c8f6ed47f1bebb4d2ae613c1a8bbbc864b80d9fb71c5a397fa7429c8e1396fa62291f2bfd1c0ce25660268c4ea91315bb481747547839479edd40682435385acaf8e0a725f6cbd6f093c5f5a57ce01438d8f85950ed7ae56cef4c8df677b9c159adec43d9295a6bd2773237d6c7ed8f8d351f1981c1dd4a", + "096cfed13e03ec367a24b6363d7c94973ccc449b9e5486875419d976efb2017530146c1104ef2d59fc43aba72f387f9c80759d19e3d0d67a229cee779d7f2c38f71f84ea03262046666785222cf33cf4eadf4ea22c2e9e1c72654e8ad1cadb1d9a201f1db7304cd257e7c3a27fb06b0b2c1143b2e974b9e2c4a704e43a6479578a7d015b0a5cd2aef7e808579e86d1182e5b6dce5b39a58e5ee705ea06a66e198fd7876a7f982cd8fbd8596ec7c759588b2e799db265496e1da31f20df4b2f6ec7179b203a5d59c1c134c510a0741733fced60" + }, + { /* i=4842 cDividendBits=3342 cDivisorBits=2980 */ + "33f6fa7b819a2ba54035ac526168cff8db2f6cdf4fa088f9997ce5e957086a2e658758c6ac475db5a9d64ec1c1551aeb7f61d1e7053a587b72d315737c4deacaa9db5d2a4fea34cf012edc43b4815f00d205a69cbc884ec54ac274521d92ecfc445df7ef8becfde2b7b554438a2dbfde5521628d727589014bbcf2c0d598781f0c21921ad0a94a4baea81e38f3b1edc53ddec7411f09f97dd61b41c16b19ed25922b1a6cd82e3cefdeb800f20b6047efb3a8afd62de0a5535dfbd5ff7edadff137ed3058489bb85dd2026ded4b83a2aa745c336143677c8771712bb54f40b52ed09f25e2f8f75dc9048320d6119a13e1c6501cf2bb8848aad0e99b1c1032fb95214d47b6226a543affc9dc18f8c03d285f796570a4592629809b37287b68f3539f31565792ea17647ebf50c5afeb6f6bb5dfee0e6f7abfe46435d3ec4bf7c5483770ce3d571708f46236cfcca0604019eb6db6b8753ec2c3ec6713c59a7b9c3ae6cb8f1002ca3b2d0e08df4961faafdb281480c71da5684bdd9e01c4502dce8ba7b3c986c3cd95411a1aac74712186309dc322d792036095d50d6148cd44e00589cc", + "05e9757f2ad9ebede1eb6b5180bb7398521516595de7c5bb3779a4639f3fe8968165bd59f4f3cc97d2493365c005ea10cb7e9618b553aac68efbad9051689adfebd09671557d7ae5a96f6224bbabec270444ee2d64063916123a46dc5b27f46d6b5b4de662eb096edb55a3700e25a6e21341dd55a57922a80049cb422e3c00b385f56627fad1cba1e1a5e06fc419fc9f395d6f798eda8176678ae21fb40de09c265fa16bd61a296080e6697284f5b47ba21d348c311375f4de74ad94f9693d4a38d1dbe84b5e95073cd5363893a97db407166bb70d2394e38786a8744549af46f2fe8634c5a614d5d21f82e0c0d9bdff3faa30a0e959eb5e77d79846e09ae1730bb87e5274e31580354cc9f27949c2d5988aa0c1e33a8fd869ad50f9f9e5a4cc2b61198323e48240d244dcfee5207eedb838b28b296c10c2bdc4bf6c173c1ba805f7fa91fc90bd7b37ee96962534c577db688d60a1bd25a731a5a5e7f94955f68b7f347bb0d204022a1e93fe75a49bb81b650de3ec", + "08ca2f53c57ce33afdfde0e44573f0e05976c7d097dc5da20afb409a2c5c27124291dedf36cdeb46463a3ddef079", + "039744512698fec855319648b928058d9b82791fa7d40b809e9c2b4c884cb79f2182008dff7a12988ebc0ca165b3df302862737829e12a8b56267b27dd676e8dd83cd58febee4e13918ebf989633f9c65ec8f07b2995c1bea05a796bbb170c23972a75acc1c5efcddf54ac582f26d0774a831646f946d1f7db74664d4e7f7431bf936727a3d51ae759359b14c1b67da415f435d516f32b3674c64a35d1b4485ca4af7e1aab5c9ede4849ed022f01644a419c57c16b63446d470a33a1bbfb9baf65a07b0b2d2e3b649d47ebc31fab95259af3e9d08d6ae2f977b171f076688da90355fa6e0c111b73d9f8e230b4a9d791cce97652a93da2090362a7dd9680e4ef3475aed31b77890c3cf21b7a474858c70aa16c23f56d67876dd3ae4eb207dba5495d64d7d0c9bc2040485195f398ce8eb70350088b460b14982a52871c2ff89f18ae87b08afc908748d1e82e43b3d37c0c9d023cdb7ecb847c814de54b3db1aa9e2c6d0a09a479488b122e895fc03efcc2341f8f40" + }, + { /* i=4843 cDividendBits=2200 cDivisorBits=1034 */ + "104f153f25a20e120d388a0ae27701c009ae0b8498d013db959c7317c9a53c48aff91d66672059bdc5bd0d55e7f81959de118bcc39edc89e1155d1fd4a7cecd48df9e968e0e9e981eb6183ad73fcfe73c898ebe8d4f4d4613a0eaf8c23338fa74e0c3f6d9d4fccd7eec2b369ba35d785395ea7ea5bc3d08d7325faf1df529c8663eb31d2951e58c251c8da52303b263943cb82b953289c737c8bc5adc9ed207b26a12949e2726cd0db18ac17dc5b38b83bba3fa8461b8e294a6340f4c398a24e2265bae1e52e0315e835e77e7a27e0290e04a4fbb7fb477b384763d336d70805fa407848f76c0e1358276b059d9e99a61c7e0d6b89dca43f0eb8b6cad8ea5bdd1331292c965c5644c727809b4927ef97bab1ed", + "026d1481a3537a57800fcd01a9f79015af4e805a989c069674053cd8a79f741b4354022085f13033809bdfd0b51e24370da8062ef9ccd2bfcaeade9150cf7910202870d69f04e858dba3feda9c35c60ebf6a34b766470292b0b914a93d7222c4e82f511242b2e0e5fc0615bfeb55d28f190c0c1d19f4fb89f10eb77f5623dac46467", + "06b8e840f1680f5888fc650c95632f767abd6468581ae8744a04b9b1ce73006b85d30b1a31f16e6e65068c38ee884e0025629e8ec5116c521f4368023ea96b7b8678809b6eaa8e642d551f14e21aa5ae2a3292a098f92ba29592d9c2c7bf0e5b3779ae9fbb6bc8f3cbfd6bd60e9d9b9c81d2d7c61d1e88848db7001ac9753edf66b1a84e895b6ac88da65a76b8c77c2fa26f", + "01ceb0f59e4c5158dde7635eb3864feb2db615946813d24098b7b59d7f102ec9a4941d2325cdbaf1882ab5bbf70fc61d6a67c4d4b4ae35b7e8b4b1cb2fd78e95f55749f7ab988375b1559241540df403f757fadf3b87e39596d042600f90610b9bc4c0412ec5f55e50952ea17cba97686346cc69202ef063812d93b5bf322220fb44" + }, + { /* i=4844 cDividendBits=3925 cDivisorBits=3222 */ + "08d72b753d6e136ac4f11cca6e6574d200d189ec73d5866fdf56ff1bf1f8c9c98dab4378a754a0efef6e9e6cc3eda90330c6500d0f505788f54f2770b043c758054b3fa7de1af1664d6bac435e2f3ebbea63730e0e518190eddd8f0d56fd043493d18da1a26259b51e9b1524ddfcf65de2f658a760dcc2a10882187eaa942aa85f3869abe348122badf2ad2cf30cfd0d3dd143cf5ad916ce33f63929dabe1413990841b9259271281255240ee47930d539e7a4541fbe57b8e6a44c556ee8ebe8cd8487cc16ab386766f3a279ee2aa4551ef3c9d4e1a4201199fee57f688fe0deead3421ebb6262cb16b5236f614a9a2e6293cd354264e242f802290cd856ddc64ff0ddcfa8fcc7f0eee1a112446b7a6ccc3efb1120efb148043232c14867718eb0ba80ca48f9c6c077c4b1917b52d4e7264429165f7a77a4bd49e3db44980f45a8d31495917403ac1761ce74d83d3f6c1586eae9de2e38e2c49cb60d045441b685ba827f23cc0158f6f5b5db5347743e71c1f417645fd4171e4d00a7d09b56d549ba16187bd3b28e45d4ca1d1aea9524ca921a2f11d550ca123ca1e1d519aa8c42cae5a58d5ff3324ca21c72dd9511c1f5b86296a6771ad8cb28deffeb7dd2a0c23edb0d4348ecafb9b916267230bfe70c2d6b0f98b40081e1eab7214874feb7fb01c39cf08f3c3b6d894a", + "0247102cbd7f1f425108e17ea0f1e229f10b7247076c4e71cdff0248d02399e4267e16adda83fd6006d821d2f7628562b31ec3a5e96f88c90cff6713e130df597551149581502c065f8d35c75513a3bf4bbac97bfc43e4065b65ab5c90cfe829c856751b51cf2f2eabb035bc0f143255392a55b963dc94935a4acfa3638fe3844c092add72462b3864470c74eedcda35366c163d145f8774e08bfc7a37d78d6ca7736b37f2f88d8f1472258221fdef0625bef40b61e9eecdfbfa2fcc73ebb9bde413cd1e474125943e6cafdf99456d515856d15ea1371010eea6f1153b3e732d894c48a3dacf25e73a5345ba7b0e465751e489dd3d51e2b4f9dd3690dc5b53df3d304bda439d44d88813af382e3e0d7de6e031b49b07323c5c52d076467a90fdac52faba948decab0266ee65b51044f35944a88e8f7c88dff50120a2208290f6b64cef9adddaa6a9284acf4b594269dc9d7d5007e18e08d8df96e88b354643cca03021d705c08e7ac229e83bb177da8c4d5bb0301ed939d032fc06b704a6952e86081794ee9121ed5b38c0dd699d78669a7426", + "03e1ab1c0d7ec06ff3113bf0f0d3e526e88c116782e140a429b5eeba8ae57896b0cbc3809cfbf0eb317cba7a48b4f4182a9b3e94f456c27b57d0ed68cac7da5480c105eab594a4b6ca22d7f09661d1b4963662fa2b8f080269", + "01f33fffcfb729525ac45611339f981b3314f4cc565139955b11d925bfa488c2ddcfde8c7ee55d75c0ccfc7857963833c465b59c27f38aa6a386799acdd913b25cffdda222dc7268e2115cfc77b8949948b97e2a83275a8ff2ab5aed4dcd715684edccc99b8bf44c303a2163abf0e94dc59cf6101cfc289afe52766015fa4a0af87b57a518f4985eae40b67ffceb942fdcb606878395ee731a23c3023e5ee2dd6c904db39ad935dd833aee6cb35fe45a93304b7359a6cb8e560471367764289703916b2f49cac3c4962b653acd6bc3cbdc8ee0e9349e164a27c50bfa34204e70c078dda22b8f662ea38c796e0f5421a8e54f29b2d2efebceeb27df34af2a6d258752b25f17e6455e3457c60bee7fd0e9bc0a58aae65d20271823ffadc82cad955a5bfcfda0cdbd7927f759082ad1de58eff2b5bc95e5cc78e0d0befb8bd4f553f7ff692e144d78babf1e27b34f86cda53b88f1ae1e745b2156213a870c1b82643c432f0f90bd5ebeff2f562e20bf33b2c77e18f9b4479d3eabe6e67f86278b7c4dbf86a54a7b5831f8a55a4065edf615fb99b4" + }, + { /* i=4845 cDividendBits=2817 cDivisorBits=452 */ + "01e1743ffd9fc714411c0f1afe3c7adee4e53c6bf400db3c6492dc275ba5441c332cbc09c9e8a3f53b19c11436ad68a3a2987d1b3a1c03786406ebf3e99365fa6dd2b416df45ff5c86fd301f15fc2b89573dac2248fa343e13ab8f9e1c9b533d63a49e11e9e02eedd37c03b2ce9e65a20a0433b87243a0e8fc0826c020c38c997fc2522260c27a72101654ac9069dd54ba0ae43168fb3b23d32d6ed575776e2c8a459243b1482b990ab216fffd1126c309832867e33adb46ac7828687ef7930e94ecb35e2495ce0f00231f0a5fde82451d4886848a121533a657bb94980f0f0176ed802d1cadb7489477da6de46e469aed8e93218db88018cfae0831606deaab0f680b9137e959f8b1b3d8dece62e387b3e47e6eb8ef632f4fdcbb556415c8299623fd852aeaf97a76f0c581ab6c8e33ecbb97eba8107f9099f2e55676255e02f279060839380d40d0d3dd836e206dcd9578e1cac86eb67132526d1bc66cd0e75e", + "06008afed30051242a6aff6979519ea72834f30e4e01e82914ef406830773675140d017684fe804ac00a388efeb54897dfd9b3604e81b36ce0", + "5036c86f84970e1d7cf1f028a984ad730ce8de7a5717026817aeead99cc60e38aa6b30ac210f3560c3d1e4416229b6d593de7b45fbb6b118a247c937bffcd1b16546df9297422c285dc5ee5c86a05dcc6ae373d0556049a0b6634cbea773e9fb88971af6ebef38262964821ec367b24e2fd7c755bdee1ba6ed569ca1096b45e5741743d1f72051221f1c5dd715eba4ec989dcf262550b4f3db00f1aa29d82954d65b482d024f391d800725ff933f9ff5f569699a2ce0073adb98daed03f8f2c1e427cc0e3155d04ede78af2179b28595ddb4b7c81154ee36e6134e23dcae12b32038f62bc1308c6f24dd6fbdc8d4129b68907b33fbb27977eae32672aa2c6b4bfca936688751b834a7075d1e006c0d8972e7e4fe54d645d31d2c18396ca4ca31d926e53e50c3591b", + "05dded6eb8aa087c0c85424380fe99b725cb85e80f956f2a64a751af3329839f96069d78974fbc670a445797cdc2c63c5728990c756f6a8bbe" + }, + { /* i=4846 cDividendBits=3800 cDivisorBits=1069 */ + "c476b4e78b5808f829e08d8a61ed1753b154435b4b37e20d7eb9ded7bbae63969d72d6b30e4a4386682481a29a935f517fc78d16cbebb2c58650ce04e76a708b684cb5b166528b8267033f09c11ec342cfaa67a3c42558ed71db119c68c38b59c1a3b4ca6e4dd2d9a7b48964760e1addafd6c8fd230957e8eb4bb771dd3b36828c2249a82dc5f1fc56ddf4574eb13c0ff5c2c70547759c82010c28122236fe5bcecea18b40af5b645ac97452ba8fc1fc327469e32ecdbaf4d8394fc37e709cd8cffcc648025e3fbd5db73d97c4949990c32750c8e0330f5e8d4a3d461b7af26bc1bc70f017ef4d61606575f79236377d170316c96c39d1267dbf69dd206063069334005bae708e32f7786588ae701906834207418058a115eeee97a223605c881615eed9c9eb5cbc2ea573ddac27ef22a473e060b500d7034ed0e8930285157d8f83737a74a626dcd75c8aa0c6df3d136a7b541a89ee239c1aa4fddcf5e5da4958edd239d40c5ccd0a2fa78a9f1c9b011a09f6761ba6d7be381e8854f5613a6cb073b1894d94f2a610a79064d720f88d26c2db1631cbdaf9c3c659af2825d3fb5394ee0e23d4d19af4d3c8e22572af9fc2a78f048a58f813afcdf3ee1e3d9f3af402ab8038b87a9744f7f239158db7cfa50ecc700896e745f84177", + "055f9bcb74c36e023267af8c3ca3f17f8c045e87325d1d1f7322babc626abf131928d28446e114668855125d92ce8b97c7ab1ca137812043f5f5a91c29c449196f768f2dd17ccfab63bdb39d0a76854b8cc7b12229eb2e564a57aa0246e57cc0dbd416400708b809c24f3ae082cbbab14fc815b79d2abe76345be02f93b35a5dee433a49fe17", + "248fd139be59e9a5b0b964926747d5dbf968136857d3721699d30bd63051272ced6517c44bc753a15549924ab107da79d9948aa76958bdc9d9bf8f0d2cb64f780fccff7fd0e9ee40a60a5f30a986bbfcf4f403cfbead41595f9f043d440e632217b5d1cd2ddeb0cd97090ee2d4d545358439e8004adfcbb2e81792d48d696331fafed50c984187fc994d168a36d86910c89e97c45839437776122180b363e8129fb2246bcb7dd42a73ebef99de3350e9dfe7df1cbbc1515873ded0244628d31e077c072a073b6dc5452c4e4eb087cb8e7521abd0ce6b35bcd0ef23a9e76c6143798c2a45899edca5d1253f9303caf5bb6443022b37a6fe08ac588d6bffc980cbc5c49684cda94063d6d2580488961f957afa9b6014a64f3f53b490c2fbc5f83d17868f487979b4c742b64866ecef4960f5e906aa6ea8160bf3cbc6de74dc0eb963991b37ac8015b96290d0bd661741501137f2fb71eb", + "0d3769539fb202e54304e5b464c57d5bc2248445aba0eaf1149abb234e3a9799629dcca0f87d38311cfbfa4cb306ccbb40349cfdac604b5f6b07de97717eefb7bc51b56e97920abd0e40dae8e806b2a719a3c1660214f8f321ee077d2e29fb8b535a85ca69ec55413859e9282c7b658db96adba4404f8f587d7ad242ec2ea9fbc73c56db5a" + }, + { /* i=4847 cDividendBits=816 cDivisorBits=35 */ + "fe2e9661928cde1da913eb302e9095e849d12bc33e852437bba38fa0d04acd3006d3075fe2d6edfe9c9adc6e5b3a739a75546b19af6108f2644739d7f25f92017ae2bc3f9da94ed6bca2d6ca7961bf8269241bee92d2720a8046dee3db510ddb362ce724c57e", + "03f10878aa", + "407cf18f00bb17552f4072cbbc6844c46a1aeca7a5cbca6a816b9ecb580c810336890b438244f18646e42bde3e770aa930755925bb1cbf1edff07b85dfacbaf41c245a46cdc30ab9ce57d45833f3c35a75f1ddc08ea68e9d1ca5d5de9d4cd108ef3a", + "02d342b8fa" + }, + { /* i=4848 cDividendBits=1211 cDivisorBits=448 */ + "022f7352cceccbd50064ab3ecd2fd3881d9769506605081e6c4d216d6fbde44b04290c122638610b7a7d505581cc507c242b9e86e088295675c19b2c7f1e73030d8a6901a9ab623268853381bc8156091439e5f201daa5bd7f1ed1c7ea71361584796f51e0cab9a439e6569624a99e86772ba3b08c8636aaf40a053c1a9a2e550797dc22cb694bbf165f45778f71290cebd3c05ced097553", + "54cf4a5be2b4517f242eb9f915e362a7198e9478753921e84dbb44582ba12a295d52c537b89bd9544009cd5092fe6ac9abc0d4acd63db891", + "0698b6a05c77beb3095de3ab42392bf729101d5bbeb11bc33e98de794ad84d4ccdb47e87a8f5ac7c63f74a94e38a4ba3ef54d233e31a68a369606ad02abc25202bfca495758a50efd74f464ffee40993e4502b9939afd10c6cea2a9f1caeaabe", + "2f7105005e5a80a94fd2ac5723cfff7f97aad2b46776d282f49027e602cdf3c057d1fdedf0a5e2c062daf5135d1fce6adf6b579ea01c2fb5" + }, + { /* i=4849 cDividendBits=3937 cDivisorBits=522 */ + "01836af7d04653466547edccd9526796bf0fcdd7280bf5545df830e06fd0e31ce58cf36daaa49ec4594553835ac39388f3f807bf91d9270919bb44c920f1ad1f5c48db5e11bd69ec75233c29a6cd35bf8b253f6155de6a0417ccfca1792255752b5a9275d247a48e067d33f51427501bb840d4839b90f257696804af4cd8cea1b2bc6f1dc9c37347cf89790b242da78dd6b01215a1c7a037097c9cd73355d181cec291a51fe35a46ed5b1d5069087f12664709bb3057c743cb3bd2586ea96fe4b472b1ecad1f6ebc8835d6623ddbc279ed9a49710ea5a0aa2838b88b8486ff8122ed54a66aa4f062e90b341a5d498f6d404049a6740d3eae4977168edc4a78c6e4e4dca3d5dd1cd86091ac39c87cd02c9b2aeaa41e8f34916c66f360b3d692e3eaa296753248bf0cf769f052331ef99bdb3cfe792e33c4929c1ba0397a4fe0efefbb29cf43d8096499b531edfa7f14175f31748188ea0fc44107bfd4b4b1716af16d97eb075009ccebca00d33338b04c2a3eec4a399ba1d2b70e544f6b261379abe4fe1a827081c19ff46070199353b44cc3bdae185ef19e7a093886cc1728cf4cfb3ed6dd70bfadf87195e6484500c4d8d9e1a10da3735cc31d19286004eb5dadf4dd1311825a8577ebf0e6bb0a1e2c66fcc96ff4077643e698fb381a221e91e4bc847bad6c58ee278aff0658", + "0215dbddc19be68dfe85dda36dc7c353de57789ae0fc5b7c8622efd133caedece7d98084fdc1140a13d2987b72867a90ae0802da75cc12d3bbb9a062535bf4d9893f", + "b9c70adc4a976d7a171c5b08f212b2139a58dae88f6bf8599aff4e8907a81379b7ee9ccdedb0a520cf69d81b6f0cde1c3ded92db9d50eec4edbcee4cfa408adf0c30cfaa3d6d5dafe85e2606c9f6be547f5663819dcd5245192ccdad65a68610ba63680b6a8d06bf56fd60c05ac0ffad15b7cc91a9b864207a11a31e9ec6a5a504ce9457eeb53fe62a26bcbc64f11452fcb766353c4755a4153819b0d16bf0184845861f8f972db822d8859501c4674144568433428e52fb5626284902c01ca74b3c733b188601db4fc9bea097dd9afb8001c3a9a251f110ecff3bd518fdacc04b56b3ce4eb8416b583b3dbedb885b917d07ac2cce6e3439ec74fed14f5eba46423c6d685c0be860c5bd075d073ac447f5f53252dd97de16171a5e80e5d0cafc3a57028c6963161f357bff5b18553ac9cb57ab4be95a138fedcd3d591033ee3f5e2480c736f13b0de8e567002467c34b7b910ecc777dc958e4cb2f275041ca05145ace2791a9148aa778e9370f91266db39fec9a914fa58adcb7c1bae4ac2ea981910154f128ce5df167342ef1fffaf35404d3ce98b7662dc0a6a361d17cee692ff03b4badc84ad6bc4daf", + "017940adbd8bc6932232b2d4050a30c94d0e308187bc9923db0807717599f67f4d0f65ada9f8d35f55c978756151ddd139e52f2da7f14a21850c312bbcf447be4147" + }, + { /* i=4850 cDividendBits=1872 cDivisorBits=27 */ + "90b7b88b30153a771e08e86886a7155e1000e59e018288de23f0d2e4dfde4056d6a7d34bdbe28c451cc4829930acc2db3a6d031c01a189712303b0cf3569d15ce959c06dc86f84e42dc5b98b88bb7e471dac90de1223079ec9de2ac257560136b3991e5a10abe48caa2b86ba55b23f42112950424a97c8b9617e0cb7cc6893fdb1b372c7cd1175a12fe12144048e9e8f7b5b66379355983db23c5efd19685cef8f3e2e7a8d2284d34d76e1fe0983dbe800731ae3795a6f0cfded77e2bb657e18ff6d7723ef2686b019b1712d9fe5e64d8e830c64b60607fa76e66ae7ee89fe39d5f429fa44fdd81b6c15", + "07290a", + "14360a1db81034c4ca8edf9308ecf80e04ac29be6950a4c2ed30f5a99696e2df749b7b367978c7a75bca383dde8468b3c39535f2db91859f57ada2fd2f475cf4963f63d9fedf1e54c61ad02a5fadd843b089618dcb031622e7a12fb075a835b84c4fa05d8baa0787624e2ab0e7ab40be27a0704972e72e76ee6196434e9947a59fce2b658c838ea9c65ab19c6eaca9cd8f9e35139f6ef15293e7391d97027067cad0b0db7f96e8ce72ff5b3399fa1cca12cad736c1bda454fe8c6ef2822771106bedbd38a3890707a83531744b9b4bde906284c139bf2a638d56daebf119eaf0de6ae85e93f17bf9", + "02b35b" + }, + { /* i=4851 cDividendBits=343 cDivisorBits=144 */ + "533cb77ae8cb90b130c67a5fedddeebdef1c9a2a6769517d035b623003a561fdef3141dc1d8d132ad90f70", + "b7c0c6699ab2c4bee47a12f844bae9d6ba1f", + "73f6c1cc103086050ae80137aea49cffc9ecb67960795fcb88", + "1de473e85d2037294c8cfb4d1b11f2ae99f8" + }, + { /* i=4852 cDividendBits=2383 cDivisorBits=855 */ + "5d0b3c78b922d3921f30e4c3fdd69296c6398fddbf36f06200dcd92c2f50aaa0ba8f9be9924743c30402e3ef7e67f9f2fe0b5af928a66dad5035af29c441e73c1cde7550aa24334a591b3a17dc93de7a57262384ab423a8a71aa337758f93831998e13ada0ee151f0c0ad12599bdbb4d58f37714cd9cfad5a8378533da57f72fb8d3e1d54e03bda2d58402913afdb94e124d214a0e103d2b22b3d31c30246a8ef4389142d336fd8ae3e6cdb736adbc033109e8d3d179c57a89944b008765b8db14229a41c3a1c03b697a290621d5ba0d03f83857e05166dd5ba7e015d318c9384edb58cdbbfa7105aecacc18f6a404c4a6a98617d7069269e7e250ae4f42888dac667b960339e94c779da1a69bc524e1af48b1949a42984f2e51eebca66e77ba8d243b94936bfd43206d", + "0c16310f299233273c3d861b9e006e6eced856fef314cf47e84c8fab44d885576540b80f5cbed3ccdc53f00ad831b6dce87e2bee863b5907847aa7ef14b8a0c30c31f22d408321b83df0efdbd5c223ae3f5eed6b25219841f93093b9c8274507ef6f3af51de9f2506cc4f1", + "07b2b3489ed6b66718c346ef6270a9f4d279afae941e2cd33c8c46e62ad7a751285a6dbf17b93fdfc08cf3d19a7a411cb0b947f6506870112b741b100b426f9f641c472308058e991f16c811eea122cf2dc4edf711425f83ab3ef70896a43f326101110c7a05a59ee7625aab72aa9c3d006bb2c460e6dfa0a2085278d6f7030db81d795e3ebc223a1c10b28389afa366e23f12dc7c428d730ca14b3866453799c6fd0e024509055fbf096708bfd51c08fdada4b12da4668f64e3af92f2c0a823", + "d6c30bac2562e6289dac32e6eb79067faf2a5391e4d9fe83f6464eb9f33b41d546d681d8de2749332f7d771a07ce2b57f015ca494cc19e57b3d05cc8946a81e58ab5a49f07ea91129b974d44784628eb099c4bcdf10ea878a5ccc12f7ca3f72fa27692d75e5216660b7a" + }, + { /* i=4853 cDividendBits=1985 cDivisorBits=709 */ + "184f1c2fb408dc7be4ffebdbbef6aad6c7195023caacf2e5a76cead9d0f0759b1fb8e4c3afe784c5f05e65ea744ffe10963e153ea4585e542893ebe4e4aabc7b60a92d7e4fd3bc11b520d4f169bae5d292be2201aa95888b4c4e73641e94b516f7df4ee20c2fe7b7382ebf848a9b7045e36a41807f6d8d328fdbe4f7dcbd9348249846c4dd355c98a105cb88ef3a4e4f40b525b3a0e21601ebcd4b1dc5cf3e183e0572cf04221364523125dbdad66d2273eafc3c1da22aff33e945137fcc5b2edb446afa9a19991591df5ead22373906923d2329a69988cab245312d61c321a4c1ac588a0167656c1643208f65245ec7bd25f2d89fced4a7", + "0912d51e2c79f2819c210c7f898a3c4fc38eb8008fda7c9e48226106b9613677b26e7b4d59ae5607c8193fa60ebe513d610e23fa46ae8d914e9741c3e8a2077d65552e4b0fc52007329c4f2334c3c8c961463ce1ec4bb2947a", + "02add9c48a1fd6262c9aa3bd46db71d08908190fc46d57dfce12cdaf16dae143e6ee6fcc168374faea8b8d250c05b7d76bffe7836c4a1b948f3a84d0467abed0def24307d2f65516787eb9f144304b21065e482959a92b6f22b1949fa603952fdf8a5219df41e907d1cd0164b39f337c37436d618e1bbd3d3eb4d565508936a6c4748de8e7f987b48ead8041f3144c00bd0730a696199854a43228edbc972357", + "034c54d2c4cf9c7e0a7e090033beea17de0c8aa9f79fcfcde8a689a421685468a63453366e09a72edc590ad269902bf504b21afd4daddae0d158921dd34ae87a473331798e567eb5caf1c90bdc4b7012ae9e3f8ce04fdbb131" + }, + { /* i=4854 cDividendBits=3284 cDivisorBits=1948 */ + "050bbe2e567ec00cefceef7d5c9da2b6345f424656c8dfcaa73fba0260cb0f3a8e4705baffa4fdc2da7d7e52d67520edd887c4625a9454cdc1fe67c98ab7eca6cec85e46a76b14bd92d26c26c5d6390cfcd5d65071589410f93bf55411d98085db4a5343a20fcce862b92819b95aef86d284d98131f01cf9e0d81834eed5fdeed983461c051ec339f33e437a431b1faa4b475baa739c60ba1f67e926338e7ecfac9ce5b370b7a70e663866a4a17e93c9e47cecba10f3fdf8c68a16fc6f1101f526803977a24dca0bc65aa17ccb55e6b1b8caf54ec059579aba8673506c6198dec4ddf3f77967c28e74205e2c3ff705fdd99847f2f6c02a6dc7581f91b4f791a810748646454774bc155e5ca351c7f64f552581b32e9ef0dd772727c492acd381446ad13cbb479e02da9ea945d8da1567b158caed42b39034fac1a33ff599521e6e3efe2629080ef452d4217c7c342b59cee742a472d5251fdaa8a120009e54fab4fdd8d4ca09ebd93996305032c902515ecf669a4fc53e8565c0689555c271885516d50dc965eedb89e921209d88382493f1526f0beb5475d731ef", + "066678e90d670ec4b460faf3fc783987fd6843fbc5ddff82d1d5987ccf1120ab9ad92ec8169c8297e834b9d9a908a44e73fd33b2a2c0cb0e89f198a21851e77b4716e3c49c25e19a3e6b18fb8643274e1442857eb66ca71d8c43b2adad62d437ecab1ccd358ba8e3369ffd2ad4b4318fc47e0ac9d9c6e69abe7204068b17d75041dd352b4470cccad0fcf1edea78377ad708ca547bc8d79a3369491437cecfa3fd24cbf1b0ee06694157dcc465ddf6c61d1db50ac0092630f1e29d67be25f9ea65865d2f0adc5b82a96d46e93cf84417bf7758365f648f3cdc3a8f01d3efec34fd2b3bdf6465dcb9f21a9c9dc18c8de25ce8d1fd", + "c9d36f82b0eb7e7f20e312dfa68ffd70a708777b3a3ead7af4b68c7dd80b7f8a5a2411907f7a7391b04a8bd37d4ee320959695769a7aad89fe10c58eca4dc7df25d27a34dd33bc81bd1939f71c6ed7184e255d73b4b19a528b4d65c0491e6270306f6b055d48f00bbaafe9710b4af0465252b3efe3dfefd829a66c460bc10be78e2e3717ba71fe3220b99e2f95df5ab4a8b3fe77c5c925990ee0a4db1540e90dd35a0338f70e4a", + "0632d4edfdc1871b752893117952a2242e5d8296ebcebd553211e8767e68870bf5ffe4345e873eb971521fb369ef9765fa1cdeb6d4a906d57f6e2c84cdd220be22d60872affd5eb2c2ee06f70a6d726a54e2e36cfe0e788cda41a132bbc7e3c0af6838ab99b846058d578e55c71f2ecb1167ed13115631e6c553bd8dbe863238cb660ddef6a4796441b311e18f26f1847ab53fb8e5869d3e4ce3e81ed22fb7960b04704becdfee15724b986d719dd18b85203d8b0b8e98ea5d4fee1f6c6928d022f74e164ea2f2e6fabe470be265fa31d3e897114d95ee30b78abdcfa7a029960fb718551754c44789cc895785d98c47ebf3a8cd" + }, + { /* i=4855 cDividendBits=2253 cDivisorBits=626 */ + "1570b86cbc934dd67a0a0930828ff509a4e599f344d6a252fbf736228eb3c52968af5f4e94c86c8b529c395d8badb3dc5b94eb8a2ee6995533ae3cf5d8aefa7fd1773e0f8ac7aea35e976fa67e9d89a210bc57f64cff9fd867a88c4d4780ea7878cfbe9e6dce3ff68ac682582efdd6c454b369f696a2e870b5a3d99cfef4cdaa13c455686be44462ec25f6372b8c4a3d321b65177a0c11f697f85531ba2e5c81ba9318efa5bdc17683c931a86173fc5c01699b6470e01acc5e34dd6bf1e7c833f0b99863eca4fe6e0b5b2dabb6daa47dd90ee5b801349126e988038ca72a020c10b6923cfcbea31171c33cbe7ddf03d41e3bf29a18f44909cb137bc03c8cd52c9596ae5465b6f2c87a80c100a3f3654765ea2fc54eea4d20fd6c", + "0123e93f1828bd694afaa755eb8305366dbe494962f30659927a4698279342475b32b8066675f1a67649f0ec812cb6abdec0d7204b3490269c46109009002f8616683d5c69043a0cc49c73ea9ade9c", + "12cd7e77e4caf07fd2bb4d8169424f10af43cb781f89e7438e9470913059528110c2b21df970e4c99a227b807e1317b4ecaec3ae4042e871fae7e9b7699ab72d6f9c6083e3aeddd720c44538c64f3cb6297b0c2561fbe53043168a6121eeb61da5a8bd6019d61f26785806beb101856874c17d361888aaf29d7f3eacc27a089d0b16c626bf6bd93e34775f76e3987edd2eb58d9e166150581145ffd8e2b5e758e5de3193f6ab79a839707843c990f05c49159f2f4e00dc6ac6bccddc206d2082dff6393619885a0e00ef8921", + "c01a5f909910b50767de0c5040eb93f2243c7a9a6d6dd83a396fee4a0d82f14363918aab62874c5fda7495ececd9f67769207742985b2680f6d460ab7354b5c6c4834ee61c4e7ce0104e5a64cf50" + }, + { /* i=4856 cDividendBits=2443 cDivisorBits=631 */ + "012fa283b0d71d5cb6851d5e5c721c6534ec871e865b4a1c2d8058c0002fa154f90ecea01f9e6ac53695b01868153cb8fc9118e86c242076a2ec971e8241054cea9773025c837bd61ac46656340ad407a3826eb2944402dd1c14a39acaad6899494a3c932d8198323e939426ff6ea61b761ff863faf6554c981f4a4429f0801c7d443b2a2f49773ad3190b423aa01f0bedbac9fdeeaee45b7a1c54ba6f07349223355d6af183087118b086f80cd6b9d40d184ba1ca774efbaf9cefcd845757af2e0d552247d364665dccb68fce8326fa238f220425e300d38968868190c32d4db01149a4a369300857d2854156e5ea5be6bf6b0ea74201863a102cf3edf570ad6835475aa5ca715609f9d2db87611c6c99c417a80b5c3032a74b20090660e6eeac7c675d52ab773d68c79ffbb7cf5ae72d14", + "21ee17ae54f699b08b63dccd2610cd98fcf886f0e7a1356f266b5c49fa5eb38cc1e097a13d86548710094179760dd338be88ac24b6f879a208f152b3934bad3675d37e910032735ff369be338d4ced", + "08f2e7a61b647a7a33e4619718f001278bfe4a9a4d67384e2b2ac7723a34f1eb0bb63b84937a3e022e9cc79db90c8b32b6bf0206c7f8e19f765e0d882bfd4abbaa214cd7dc1a76a506efcb4bfec59bbe30b3bf2ed7689a4e56aaeaded9c4e1bf7c514ee14f059d460f15d6a1a54a461da47108fe0156e9511b74e494899e6f55594e19ed40e12d57f22ad2ec76e7ea93d19e0aa239de495bf85fbd7c6cbb4aa268708769c8d864642501807adb527e83a703c65e2b0c4270172815b6969d02f2827b9b5d7afc97040776674c092363239db7ce9fecccd9bd61336534a31f62a6d73ab3", + "0ab94d4057a304c79bde8dedcc58600979e75f209a469bf89e2a4fad5fc4a57cde9c07126d8d18aee2dc1e4cc7158874c1165ac751dbb964b472001392f69098d182a7121ef83847599edc02a1b15d" + }, + { /* i=4857 cDividendBits=3549 cDivisorBits=2406 */ + "115a3a5236fcdbe55f12e00e18b071273615a05481a8117c3228786afe89daf0825f11c7720a9fb91056d5436da4e691fe802990b28bd5d7f3c2f6b335136ea4c4cf0941dfe6d5fbcfda35d7452eea50252600063114180367bd6944f8b76a66d872c70f80a49f1d4daad235fc06dc3130089c12069624ca1ad34e30b33602dc49dc4f207c773bbda98dd960309cc978f08c03fc9752047af6d781d6fc8d620df695ffe8f2ef94a4c712546777d84f9e52918936382e9b2cc758583cec10ef11102ad2f2c30a140be29591c99a7b104f9fbea012d075805e13e21182ee4ad7f742d498255548d14ef7326dec73448e55b09c0a03af78a2be54aa6a5cec731fd08425f5d64cfd1e9320e26bea440983c1ded6966b47d8e0556fd24b6879c34e2069de3e3ce017aa053a201bd0b7e2b57a7082fdd43f06ab577178a0ed12cebd64537668de6d1ccd3c508c1a6bfb8bfe9261c30c18b8c3d7348e62dfb1502d75e12b536b7e0943ba072c385e77204b3f64d826d6de4d271ed8e9c91515419ea6270cc758d43cf15098bbc7a3fe28b3a0df6aaf5fbc38f851e913e8f355e0c074023f4a7bcc0eaa06c8c033cb73bf2c7d7f093bb53d1b95c6360c11fbc2", + "12f61367cad40f7cf254666c09e3dac0d2a98b70332f86b4eafef4e8356d571392eb43fa6c077469b19b38ebd222abea37466c3711a2c5efb8e65cbf4aaa20cb1fbf98868429df02ea90f261ec6c7db19bcf1c7135eb183c582fd59d42458f34a9104b930ea62754cee9bf416588ac69c92eda68dd50bce5535e570318375e26bd9c42003ca2215189e47410396b9ce7049a10cfa11925501513ae443d5161cb0035865367b24ef3518e81ad829952bd40d96cd13e164eba6f48c7733ff072432610c0e0cf513f7d65d87db69ed1092cf4a550c826784a6fdf3880aa08e0d4bcb69535a59bc067cc55b174840d3bf52759683e579aa47f0b442ee899cdad1c05c69293f6131226508a4008b473b433cfa0bf296b362776f1d572ab0fe88aee368c942ffb53a27134d561ce5da0", + "ea478b8bb85ea3da8ea59e1f9c36a0e5253d5720884e1931cb9c245003b25d462304492469abcfc54704da1418e19a12a7df4971fba4d1eb793ec64b73894feb54854feda302a43d11d43193eaac21ad6dbcce5e98b1cea778bdcef9b15a9c0c0f27e67fce15412e13b936cf6c67d1e55fb945a279b71d04624ea6101194dcee87def645aa4929e0499a960c9cab1b", + "01556dad9263bcc649cf0d0eec5878a53246b64b16c8682d45f197ca5262bfa6b104ac81d26199c69387d99438e4c80bfb8c43d75fffe7610fc111f8eeecccbfb1857cc7a3c773b06077c2ba79d4a4026eef50c7deae5798e0eae0cab03d52017e8de88bc7fc9fa38ceccb9671b8396d3b7bccdf21d29170c8ab441bfc3501cf8061eaf5a32ed34ad536cbf321a42c293c7f055e7d45d6a96bfcd8cf5f281c2d79f7474824e9c8477f1ae21749752ce92e1534ee16a62f4285185249681dfb08f48225831e93d7dc96a2cd33a4a78f5f4905bf4f8f321e1cc783979169e8b7c29b29facace7a5333d9b0142c02af7b814641d2d1fc03bffe210f13a3270453d9101d30c9242b7b8493d82baf55693ae7cdba48607fd8930f8c98587fefa495bc576b2ca43102e0497b55443be2" + }, + { /* i=4858 cDividendBits=2957 cDivisorBits=922 */ + "1b5f71dbd6fddf76b02f7120cacb25d6e5a4bb281beb311b4237110fb543f9904dd27132809542155b921f4631a21f2965496dedd09c739bd25e30f360d1b465af79047ba108c7b5a3f49c2f5368d693d7990d006129a8513fb54ab2a40567a9bbb4c337d9a2d9e2f6427071e86abc322b2f07377e1bb116e333e34a22f6835f0b442fcc5a7ccc5e69edad7f9603f1e718375c485943dbaad788f6d7ce60ac0e44496acc42a337ebaafa84930d4273983f57da4b03044c2bc6d3a373bb09bfc217ac515a4d38ac2a2f731725739402ec3113ed786ebc16df24cb5b71f00ea3857ef82681a374c481c3cfb0201da723d7f3b5f3e279625301628c1b5bac5474dc6debfec9b12044167a5d8be3d47ad6a9df8719dff25eb09b62d9668ab3cafd4e6abf822ab5ad444a6a4d6de05aa599e67b4caedc7fd1e9c1119505866ab3f4c54737fdfe1a89f8c299e6f4d668ea55f5294a5c7f2caffddc8b1ec339e39421183e49274bdf68cac0fc5e02580a16e0ffc39c", + "02f3bc0feb3cf36bfc5487f21edbef587e02142cca911003d6d3c4746dce513077f24e3cbe21324f0803d0c7048a4c2ae1b561bb6cfe0ef18918b948218d84bffbfe96288a5c429909921fb2b5d92d6aacc58a3a60a04a5400f3ce002998a860f3e8792ce337e1319cbd22c0f2d45d9f06f8c122", + "0945b97fd549aef0ab3acf64a708a8b39611fd648e5a4de2c3fa6c86101aad0f70732d19607e7fd15a073762b60297de9d6e570b2c61d9f30267421dd408ed5bf64cb92317aa920c6a7691bb79c5e663542845b61afebc4d552ecada62e52845ae9018c5d9d802eab5c337e13fb457cd69426961803ecba73b619cca3f8988ad6cef3009f557bc7e482c6f2f6a7648217cf63b2b4207111854d78efc2832299f18c03cd46cb42e6a68d355dd5d5b798c830b400fbda88167036fc0431eb7bbc90f0ace11e60a03edec5436efb3a9a257673fd4cdc53e1bf0c9c6d76cb19b79c07c7bfa1a42fcae5045a096382e5c7033e6f9ef8ceadc756b2ffd5f8fa151df", + "64d7d71bc5c7f89cc5bc254b9767b7130f4c382535957bae8b47714239b498b2af6059dcd9d54fd6cab01a1fcd01dd19875dabaa28f4895d5fbdafe4a83eb6e47c38e9c2fb47235389aea23f65f0358eaaab659122c1bb9784ed65b3fed77b18c6878650d69e1f0ad4acc47b668f69a4d1c4fe" + }, + { /* i=4859 cDividendBits=1104 cDivisorBits=244 */ + "66dba5dd30ab7b056110a739659400fe2ff86bb8c4516d86225b0a97e3b7cbb17ec89eafaef52e0f1bfb7237746f31f852cad111c76477558d5227a7a26df76e246d6998786ddfa0d1bb0269bc941b78e2a4c9376510aeca4938296c4e5060eec926c247c02072e19d182bce27f998ce90ea847fcc7ee9c1e7a6c906594f79c0052c7eb33493056b9263", + "0810af2d66149bae0120db97785aa5d617857f5146b506a0f132b8a99fe648", + "0cc0dbc0fd6d03e69c83a9bcd72fde444232dcff3fa97223399f6b2fe70bcb37c091720b74eea2b03cfd7b2a9545086abd7a2e2eea71b829060e3425b4e20aec7a436a16b0155ac562770778d380299b33e5cc28b69da4098445750c6125e61b28ac035e39c21f60542ba779", + "01546a910e043b3dfd80dafc43f476619345fc1c3b07387485bc383b86c25b" + }, + { /* i=4860 cDividendBits=1144 cDivisorBits=679 */ + "a568b2119503355c0e83341a4df9850c2f9af7697ba6f7666f920f4547447739e10c793d211e1ebce2222f50c9aec48c7c99bb02c1745c7ce311ce93dc1dd8c099c1d7d94dbfc3bc423b149a5782a889321df4dbe339a82accc21ae14247153e96ecd6157a39cd98c98068cf41d1a397e7f39137da2cfa29001dcb6f4d42927b994f3a2cba58612775bdb2603ecd6f", + "2d011bd13b0d31a52b6bae9713d3880de1a3d146d6acd090b5173c8cc08d90e07afb2d629edb18a01d625425edcbcc7f96d97b98d5b19a43de9a1719e22dd1dce17598a1f31fb0304ed90865145aee84c8c773c569", + "03ace71655fdd917d012a16c8f5a737185b00c4f602a08793e94a865065c3626eb32ddbf62e5b8bc02b153d329e42637b1278e1174449baf86f3bb", + "082ceb5d3c8dd67330484d1eb90cf77f4940879ecb415aaa9ea417adbb00a7c169608404701d65e9fb55c8fb3bfae60d2fa47ed03d0633301d21bdf667590bf3e59ac9486d863159f49d094038a1a33496ae54eebc" + }, + { /* i=4861 cDividendBits=840 cDivisorBits=220 */ + "082a58f54df5e0ef848f456cc7de37c4982541e777a726323d66519d0257ef03fca5f50c2bf3a4d484eca403181425cc5b9bb368e23a812e2df820882d93916b8a1c05e87bcc080f29ee2ac3f3a114a8a5e1b9f13442d7038c44b85fce2460b11a1cdb069d60971846", + "0c782040d353096cdbb155bc29a88250116e0a78450ba4857daa7df0", + "a7a3eab22568facaea6b8b04ca8c097b21454862c83bc975b712ac4bcf973c471bea68ce1ac4981c87359c3eb3158d0b7ed9d803f15387d0c2c83cd265aa3c64221427b5abb44d2a086d5eaa99", + "04dec78843bb9752591d455f316ed68ac3bebb1d56f201a89ff073d6" + }, + { /* i=4862 cDividendBits=1469 cDivisorBits=967 */ + "15847a06bd8b357df09d82071f3bcf7015b447c892eb641308a7c3e76509a67fe4e30e3198471fdb303e6d0523b4e9a24b38ab453469c7bfb214c9e94e9dc95a5bd2de4b91b888589f8775d71029d0961190122cd6de0f5f6220013837aac3766ed5f0c84ece0dbc483da9bcbbf88587abfa8838f5c11f76e211b517c20d3a9291e85947b6efa16ec9452986e1b67b71381912153900347427153deceb4a580cbaa6cb287d3256482114af670211b1812aeb5bcde74e9dad", + "6b987c03f7727033a6f37534eef4e279e9bef02daab781cd4d148ef58a9e420f7fc19548b15891862062652ad1791d52bdc39dcc93bafeff3dba9823962769a149a9f712591fe9754d8d92e3fbc136ce9eb7d4f41ed2ff868275221d11e39abd204fecfa98d6d37d9aab180546e00b846b31d99a8ebaf97c52", + "3332333eb20ed3aacdb2b07687f4e9c309068b0f25afbf516864a59f44ffb94280cdb0d9aa64c7caefc9a7e2fe96898309cc24377ec15fcfe8c7593c8f3c0a", + "256eab86206d2df095429c4319244c94d339c79ffd50931ddb1a2e1ea81e5fcefa9e1953e22262eac13523722d0b3d2baa780bff2482b7f7f6afa7ce144d92e0873e6d7ca89944a1ac9922e4a4ed0b404daccb3ace100a8b7f8ffbb1d82ac9c5fc81525ddef9672a2b02af1c7f3905bbd785f4fd66769e8a79" + }, + { /* i=4863 cDividendBits=3906 cDivisorBits=3377 */ + "0119f24078f6d6f25923b13710cc2204da06e470e4b149bf0c26b5eb563a708a41d5ebbcf38cf8ccd0ff6259109cbab61aaac8a915fc03ebd9eeb3ce0aacfb446f237adee8413c83993bde634acc3161f14fc1a13b0597403eb6d4d8cccaf93f00f09e29f5292ba8d9a553748f12c8d01944ccfe129f8598220eaf05040cb542b30971f4700d93f487d63bdd9b65ea8a8cfd06e155d28d913469587ea5148c03b8a7057c9400f743f287e9aafb6e2865437fdc0c4c01358e820d901816dac9c4115fd75cbdfaa087735fe0a0d49c5aeac2400760bc1d03ad44885b837203e830e018c79136d27752be89038ecd3e8a5ba62e8a03439b4dcb60dc9ced2753ce04d0594cb56180e655d19c1f46015c850d23a307734026b646460cc5c5f3a29197602ba9fed002019ff5a77061991bdad38f29f590de469f1f929653b922bfca19336cfc2851f47438cd311090ae5ea0549cf57a7f333dc0ad7a5478821831b347d0e34ec9a22938abe251e142946a4099bb83fdad8958122552cfb35eae083559ac5233e9247d64a13dcdf10b4d0b568dd5c660592ea82bbe4ac5eeb473e115e3f5e07bc702557b7af4cf614e23236cfcc2d9951debcfbe4b7424fef80603b0f4d330d3c6ee787e21a30830cf77b6fc8c72b684193f9d19354f629d53da739fe5475a8bddc405b2aca3", + "0138ea68aa9f165403c02917215c47eee13e085222dfc662cf4d23932bc5e0cdb72b31e5e92158a7a9a82dd870806ef1253d65448029118473206d91627338c85305473e4ad1a89f13110866f0769d7f626c5864bfd97bbf10d3a8f3adbe87b8d64823bb2babfa901c1cf498a6c2bac61281b6ea745d46937cb5a154697ab5486725c5d606cdcd21d3ba6aa1616ea8879d4a008cf210c6dd1f4490f5c54dcd864b2b55d1ad4bb239a67995d137989f1b50045c724da3fa4b682fa2e26a475608da391fda578fc534f1efe496a0e3a9f27d3b9c72245bed099193e4ad4609c621103c282c5486b48d3b66cca1db2f136b8f55143565c5e8fe6a82b9f0bb314147d037dffe2d2464872aa9eeb39cd524845ae2d72893d3590a642af8a93dbc0736dbb7432c0f4f5c49af4b3253e5913feb70517c8f86a2491cbb722adfa9f04bc394034abe149451f48c0c8a3b24521c7c4c6c7f9314c5d10e1871c0f1307b38150d2ca865277afb95d45c99f8ecbf06bec0ed526c3d0a83d50c006c70a5619f8d90cf8e0b5e3ac263a53524ffed850c48ad1b94eaf0111fbe33103ba02f3a0e7c7a95a7a1d9da6a", + "e6a9e18b87cf5b911ba18b424ecff07fbe2ffc2591f6682f399a73693f1c1170f2d94653b5a5a2bca365aebcb0d7ec982e71561564c61dab39cb68020d4f5725cc8d", + "b94aa575cedad898dc3de1f51866ab8ee11e7669e300fcfd71f285ee47b4516ee3c4a6f818e7a51977db7c69b6710cf2cdecd7890f55c607e4e0dd3dff2d2a35521669a60838ea52b329a5b79aeef86584ab7853cbbdd77396249992f900e231fa62491ee5deed657a7ae38e3f9f5800a8aa2534f17bc21f7b42e2d2aca02c14cd3e2a3bd6434ce52c84c1bb0f633a027de56e05f131958ead6286442c476664a04d5ce714d58f9b65541b5a542d3f94d25376e86be476b141a3ad152d64dc294cd9622b07fdf0d1aefd1b095e6244b22fcdff6e18a4c34953ac249ab14bcfab057cefb196c62e803b33d4de9e232f72eaedafe64c3fe3c1023dafd8dac8ad5fcca0e7c4d71872e641ccaee5ba5ad63124ae5f2e149ab77b6b78f85d4fec2c07442249b36ad2698a03e5ac67a67658d748fb9ea052793b51e499fb0cce71253b8a3284579742da51855c5bce14e54489b7060137b937e05e2056a6c24fe76e722120787e7c3f5a840440d2075708889ad849c77bce0f9f78c4e5949787c513d8510825c69ea1a5c105843953b44c265cb3044ffcb7ed64f3200d9e467717bb64a509af56e841" + }, + { /* i=4864 cDividendBits=4010 cDivisorBits=1064 */ + "01fd84d2e7bc117fe1c3ca0b9808011f12203024936f0227aacde228f8fc0b5b48b407ee086338bcf1f5cbadf3a1c4e1ff67dc8f1394392c3e39342444e49ddbd7abf9d76920a95c87037d72e6e5a60ab9067c09beeca199172f6c4a3a6f3f64511da00f320d90d05691857f8f86b62a54c8606edec67fc93f885dce40e7cca469b1d5d3a9c2661da497cecafc770498995e287eba4b7792d6f484166afc1934cdc6fc824fa25b7a513ba8599172a3267b67c426df07ff0e1d724d1ec413c3eb7219d446e324f3731e91473768add243dced2637c239247c613a4843b50ed753c7ebc2f7aa564d62f956f50fdaf4878c85b4d5dde2773a2fd0ccce403cfbdf765f63e5e5cf7aac51a5735650bfc62de0e360a521b98526983276ed77e3d290c3105d2ad17a546c9ae5ebd6cc4591c735885993223e84ef8a4ef8b034f272e3afc0253da27f7e929f27130697022cfb2f936b4542278b0c94313d095517434c7c22278a081fae97af89b66d3459c0fcc292b7f56de5d6d9e7c739df93fb57659f976617b3430af5521abd148455364f06bb1a7aff184a9b17df4508a99f69a866632cd7ee3f0252ba95747d8873ccd52263e76c49018be675c5d5a5a16b72b9c819199287adf17b5153f566eb4ec4c971ff076b5385d78a616749810dd7bbabe1ea6afe9aafda6d59c7e2804ee96dbf44174f4daf6cd4", + "fb0fc5861b45ee10bb629d690f4ae722a59754c084446e1acf69469eded1662df973be6a47c080e54efbe0d305120aa398001ff643e70b6cee6562ab0327a29659af85ae5f1d6a5d8a0b7d5d17b558c0076e7400d93074df3fb0709ebc1b6347f883edfb88c0f2d85c1962c6c7c89a5cd1bd0a118e72f108e8010cee45dce3094292a4de64", + "02078a8587cd8316da2f5c1192dbe31a4dc96fb730c2b1b5dcbda4817fc90c4f44d78db0b04a226e0b290e231060ac474849a8a3c5570e583bc8bb5d1072ca3b25bf416c170d1df41510172f18bcb6a1de79dbb952cce30e1fc0e5e94d62a93ab7ca9713ff174ac1a63291e67d3aff4d84fb4883ad1d71d186bcae0a79a594ec2ab81885f54d9ab6a27d28a57eca12a6e79b848c45058f7b4d92c3883c7399f1989269205dadcf44bb99ed7b1d7c8d54145d6216d2874c5d9de591070774a0c21651a053c198be97dfcc0d8db64f812bee46164f76521eb7a5aa18b98b3a5223af6f657a68ac493a525fcb12c2d3fa6f90636a6c7a39b10b9c634c2b2d83e7540ef663459899fa96ab45759bd2aa9cdb848e01779bad5949351064a2bd10ed8462f913b5d6fc9e233e1c8d08a7afee9b21329e4e19164d8344a1e7aee28bba4cba08b9685cb304bc5208fc8c7c76ecc96d46badb5ab1a58ede24cc26f04013bae2becf9027b0a1cf6185268a4b49d1981f", + "5ae385eb982d31567b54b69b6f1d7f61c8d744c0be3e145a10ad0f6ba1c6389ba9df96a138c80b652a004f7e526fb1abb190ebdb5838947ac140d898cfb067e42fe3eec276ee7f4d6d3536a28048620bbbacd1728d1e0f4d7943adccf704da460248e8632d75a5e1787acf7b3bb10d8280f71c4d48088927ffb27c5b5dda14a5dd94091eb8" + }, + { /* i=4865 cDividendBits=1179 cDivisorBits=607 */ + "05f97da7f06c84ff3de0808feba8dcdb746fc571df9e9ef04a415c8eb3716f2a2ae2064a889180f4d0c8b1efb651f05577e0b90179a69f8e6a1bf0c1139282ff4a7bb334f717264b205fc01d539b6e291513767dba43b208d80cdb95b4188d551a4b9f2ce7d5827d744e6ac4c8f3b1f54fa6d7536d2890f6647782e49769a64cfb4d5845fa060ed2708864da6c395f779a905836", + "333c32a06dc0de10316ad65d5718b38da9116d5b08cf9a93809a3f2e77b5d4c95e433d54e0ec6eb26ede12ba5e5f96a8f48bb20ff8ba2158a0cafd058ba95b0335a88ca38598de435a485f0f", + "1dda3541e8e3c74d1fce1bbe620e8c32a9861831461ab10dfe7cbb526be78885d7b6730232c1d44c4b298914013ba886233a68e40241a203f94af4ed1f75e68839a28e6034e7708e", + "036030493682452a98376e74f64036ff5c3ab06beaaba2e125bfb02d30646e26a2ca897e6dd5fa17c134008bcd0c8da37765e1e1d62601c7a8657f35ef7993e407c74f58b4b77c5f0a4c0de4" + }, + { /* i=4866 cDividendBits=3804 cDivisorBits=129 */ + "07fa186f87054c8813186094bee05e0c7d60e732ce32963f6404109c38fe574a5c19dc306c05cc6340b170fbaf04b3e9cd69aa7c3ff0750b1e71e238a88b25dfe3bbdf2cc607772297222e1545dc5c13878de5684214c38093ce7cb68a1dee278341d22c027cd04802fedcb584918954dbdaeae9c85172fcca56b09c0f16301e55d67f1b59cc2ad8c77569c332433e99be498a9726c01a5b36aa886e3ebf87e175ff103d9172727b8abe93b1e6109a05c33cc50ec59730ed3e5361ce04a38f093e38a085363fb0ec1217e2cc5b0847dc8fbc8e1bb591ba702f527114e2fc3d51a0a11d50bb5cb8cc483eaf7b01fecf11191e1b618faa2f54cb18600dd2a9501b0c95fc413558b5bead6a599400e4da3751e4a9717c6e799e3d6124f04c473a996d3cedf534b826cb35c93d63bc39b346692312db152afab25c4e4bb5367653e41afdbd307c06cd0e2048ece6e929825279dcbab8659771b81d5960d37a273ad1fb9c0dcb4294cc318b77d4ba561ab6ef8113dcb28e81143271beb19ed825fe05c3ce279506d60ac2968bcde2c1131ea67d5d16b4f50b50e71c60f337eec9a05c22fffa261b0a419350460715b0c5e7dbbd6f60daaad60e8d74069dd0b40059b910df33159dc066dcbad593eaa1f23fe0a8fc034658879c47a33ce710", + "b45e2282a0eb4d62720d6a704069d16b", + "0b52647d06d71cd97ac2658c64bdadba6b5fa0cbe90dbf20938e4be224a7123a13fe36224becd46b5e76bd1748cd441ddcfae80762d7290bab30694e4ae9fcf68e116ba0142c97e39cb9cdb72d879ba2034d25e2e078a3379cf84a02112d1125f00dea1b9596d4aa114f7d9d17d184986e439a086420ca04fe84c4a648de8ea80cb5bd794837a2f6c29b7360c47388e54710222be3f23979eb76b5c47508885cca9127162395e15f291dc411ad7018a4bff2623882b1f34842dd679ef6878a57b556c62809bb3c2a4464ef96ccc5e2f9ccb426514c96e58046f49f943b471157542a42a5ac654f78166b8364211401e9f798786605400778aa02fc14b2606a91b0eeb9fe6049d7877b960e402665665d11cf019aa4e7a1d63bfc434b23a1d6e205beb8d7c27197763107462221ccd28561f5d11c38cc044a86520cd69dde402315340c5783c820111d2629ccc6f80533f398798b6f44b8b4a17ae74de39aff8ff63a46aa42da545345077fdf1bf6d5b99353ab57f4f4e60195c2a676158a2c8c1e963aeb44d4b8650ccd2fdf967acfa10feb16c0dbbe9a93b98a2a1e48a62b611125afc55f45f880d050ed3d00280530fbf83f4e58c8bcd390f5a3a1023d0f48195cd8c177e48a273fda50cb", + "0b56d822430d03de57e1a730d3c46737" + }, + { /* i=4867 cDividendBits=2107 cDivisorBits=27 */ + "0346686c7b47d72dfd9171af837a72ccd4d7792788e668cc5be6e8cb8851935eee234b02f156828e36ba4cfb84d29443ec9791c97514026ff64345fc4ceb4747451db6acf22713d56afd3084ed90ccaa4f1098394d4b77cb1c03cb4d31398c886eac99425f8f149ab54ca169e085086283da2bff0322e6875c2afe0132a10493da0c7d97e7a9c0c4a560b8f30219ac21ad380d24145324b91826b653cc2ee7b5d56c5422ec1dd2ac2b8e984db9443187f9435b6d9128d6c4642cc30dc3c3e79419729ea57f0f517263190dbe38211e39ad377022c8092a2d983b770435261323b3586de3781a4fcc9c9e4ac979772bb6dd3bcfd40e25e2eb5d4b7d2981192b3427e83c6085c6d44f", + "0215b27a", + "01922954188c94c3bfe94a748131ff437d7c6cf343a47a179320d7199c196038a4b19ba1e74f7fc80900d26de61fcb66f31187cf551b63d29cb2a5bf998e43cf2a26452734529e3c87338dcdef17bbe730e0fcdff1257fa9c5f231437dc0934f5c5b86c662a6285fcbdd0c471540103156da2f803e1e105741a96d76cc8a6a143c3df08adf15d562666ec294611dfca32b675177b0677ad0a29bb92efc4892806cb2745ac3bfdc7302a8134b81f4669f87a726366ff4fa45f1b89b606be9635c9898ec1d085557f5b350d35fee1510dddafa740ec243bfe03fd109bac0700a56fd90e3cf0516a1352ff071b6e882cd8c8a1d3435b6f48281ba4ed4155c4d3cc387714af431", + "3f62f5" + }, + { /* i=4868 cDividendBits=3335 cDivisorBits=977 */ + "2b80ab2f737ff300e52d35b42b0708c07d538efed8f7f9c6921d26a8df81a790898305beea5bb06ca07bbfb43a81e7c2cf4c41b4e3ac3477914ee1a3063a5905e16e385e701c9bdf5aea45e86a6ba6f22afb1a56b9a9c208cb561a413ea4971b612c74830ac5f4aaf3f424de88373ddcbeb0564a8cacb55e4b42ca630bb8b612099b6ee3add6d671c3be0006fe3294b77f5094fa2779392843ebe4edd40e6297e72d251c1e65a8d54e029b98ca8325b333d8767ec5caaab8c9acf57f4c5da3cda126b4f5769eccfbdfeae2a07b96f32a92801fab46614a7198d918a297e964fd3c97d8f097a8edda87902638d089b45567035f4b976340ea292aa4d4fab4674735cf8a4bbe4a3a5a3f715710b328d1baf4a8ae37112076f7bc7f0ce2428880a06b9b140c3874cc4fa9c848f55d201cca34db46e131052632030f175787aa3be8be6d287659869a93a3bd4e7b869bd7be1ed1216ada17d17b2429f7810969815845c04073a0da9ac7b758a7de9aca9c1e3db795026328db2de170e956633daa18019d0abd32b229ef8ae1ec67d9381a10006d4f707ca4981ba644035eb96bfed1d7", + "f560c36b1237bc9be12adb3b33d4e09ff567f630e7736bbb1ac9104c8bddd9ef7d97d85d98a8f0543e0046ebecd22e4a86efcf8ed4f996e001803fbb383348e5efb35252a062cbbc47b3204dae2c683f362043657646e1721d10b2e3f8ea456c7f4076319232a5536c5ac628ca0a20d496bc1983803f8a0b3d09", + "2d62c1d5bd53e7a86165ac3644c5b0e80f2342bdc354993d36bfddf69158554183109b4443c5d429f9686ad724c56e44bba6f2c3b8a791f573c10bf9525701ba60c09b23f66e2145bbc4106c0cc379bc03ba99959bd93ffdbe2afd5ea25da5d3e8137450936050547d674204ce14f427602f810c315c4f78c0e314f9c4a47871cf37bd03cae59aabd2402a6737b9c5a836347fbb034feb4b94aa8a7bafc96bc71ab5b35ea669cb8e35e17e6fab6948573bc167a130b90cc9a357435182568588f4c4aa5c726080860c7e9a1cf5f24253d277976f2ecba419db82aae932299c41fd87d4a83612ccde2022cdb8bf7ba70e56605f84eef8837fafe27ccf2073f316730df0d4bfcaed446fdce6a511a55e4783bd49a64d9ef0ed8a19a78ff59734d2a85ecdc1273573", + "0222bd1963e77f80237ba2c6720002729c3666d394ef85140d8a1e34c2f84facbf20ae0234a6943704207d7576c2b32021151818bcda6f4ad076beba0e9caec6a9c697ab225c11669922c65428e78b3a1daa82430b6029946294c498ee9f4dce5f74557ae155cce94fa99e7d4e90ffc4e14f0851ebaafff089cc" + }, + { /* i=4869 cDividendBits=2402 cDivisorBits=1932 */ + "014cd3f99770efc55b1df74cecdd09115126287d096e7915e01c00427a7f2718d637e0d15949c26be2866b1375aa3273c4d16dcfef8bbf3533891daf574c8707f5f2cb13c12ae0646f8a24cf5e6c783922ac694257704ce66f6d15dc1ef10294f5baca5a6a7e594b841e81ecbff6fe2fb5e21bf5de10a76953d585400bc6dd5fe065a5d0271e428a7cdeb35757f35800e90b3f2ec941f4bf9d29dd2431851c283afadac119f85d1afc77df768850d901e23a9dd82e9cfdfb9ba56432d355d9572223627832782b5dc88f985e6cc7905a821d56e9a8bb06819f0afafd6111c041c35128dffdeefa01ca3f36417064c1d031a3fe23ce70adec40de37337d264a6f7681fd036413d8a08b4f185f6abd69aa2caccfc82d14068d789602b83e79c953f02c2d772e274831deb37503a1", + "032d7793ac93c60140214d49e6fd133d81c82fbc856b07411066035e806e28f21230243836294ef93ef7c8b5dbbb5fca7b51a43986d3acf572bd8e78c42834f9400d93ae9137edfea41fa824dbc9512bec964a17033fcdc6e4ee65f66ec0084ac5b70410a3bf5da3f66e543e022f7764d38123b97675ac8e96606499f11ca82486e1ef226207c439776a1f536707d1523559d59325a13098ce677c4e3583e9af73d47974e3a101b420e1e9d3399994ce211552fcc5f582f3006453c8f8846a0289d30c8b25afbd311999502cdf60e198d6c21f6c5d4afa3081a77d12008875dfd8bb3da3b777f51a0f0f7aeb08492eeea722", + "68bde3f1c7330e05247aaa09fafa2afedfdaaa1125d50c545dd4866fe7f9942bea4e74f9cfa9315cc6e3bf2a8b3172dc5c4b6ed7c5d2f1f230635a", + "a91f012ea612a5d5489fd7fb2e314f554e82a94ad56835c50414137cc2194624d6370d566f01e8c1e3bc9f546b5bd03dcf90f5a6630789b918fbaccf96b9a80008ac88aca6fb5ceec76b30537c09ed03a75c5c6346b0e91bf87f5d3ab6c6636ffaa2cbbab700f6685db3113fab877b68ed1e2b611ee18b2a20304d1429b3c25db19dc44529169f4115a74a8e1e0d5f5bc0917da05b75062215ed50e4495d7158c09cb459b596f1e5728a183f39f6ed064b10bb1ad74000beae57e092530c8fff8f1c5663ad1070f6cc9cb5a3f73e96b1d8efd5a7d777eb6767878653bbab4bd5918a4818e5bf92cd48316d593e6e8c1bad" + }, + { /* i=4870 cDividendBits=2284 cDivisorBits=919 */ + "0b6784949b83d7d5f07ef24a82d29f01024abb08b0bc81863e6e548d3183ce47a48848d12914dbcd180f030c08db68c2a6db85e537767e0aa2f60c97f7e2665e351c9f3e948f049b24e61027fe018e833d278bc34eed13cb8929109931f477c808f17055228025c571a9885ffc01cf9058396d7b05934cd16ab84f5b1a6f2a3e892a16d0a0fd8cc61355dfc2e53662a87bc9337dde86a2c76761022da37e868129f2022d5602fbba357f294059b400e455438fddfd6f9fb504ee012c51c0cbcd6153f378a3105cadffa76754d28cdd8123da3d544c40cf948992bd61e71c1ca2c6b3fc340a212e9366bf4224ae5ece160094af99f193a1da041232dcce342775369b2f6391cefc16d14f0ef5c24cf9a680a088416163195982d48b44858a", + "0c963fec4f3ea11f1ab463a45abf1d6f947452afaf096a3bab3dd7055d3d7b5dbc44bb9a476c945514836ac6d8f23559d238f144fddaddaa3f9e3321c0a262e4b1bda970512c16fccff0478f73260a7f81d12e5ba310070080ee094169477b97bd50ff324fac3845976088f388005a5694c67a", + "e7f2dd04e195c167678fb2aad333411fdb66e5423e2b792a3dc2cd379e9120be765dfe5a0102d52d794f3fe1caf95350f9a0175f6c88c23fa243af041f2b41110436288ed445cd962f35575ebfe076cf560395b9afbe3acad85d9e790cde913a21a6ea53f70978a32cde70b6f8ab04b97f07ef5299f9ecd1bd0c9ce22e524972cdc587698e1439660e629d4f46973d997440225c62b19ab38c087b8895095dcec81fea9683f55bce356319", + "099ada8cce85c2e6698df8d957f33315758416fd98f2eea287f581d6861a643f5328b3bfc03e8cc218cb0598ca98ba64b163ac3ee25acc84c88a987f332690ef7698015d1315536a2ca81dc75e553b4f5f9a855ec9f3e0af6e509d22c06d8990b3d27f01030053c7d7e17abf4b96a54ab9f5a0" + }, + { /* i=4871 cDividendBits=78 cDivisorBits=28 */ + "02774c7892a69cfe4176", + "09f0fae7", + "3f80a091c9ff", + "041df65d" + }, + { /* i=4872 cDividendBits=418 cDivisorBits=81 */ + "039daeb85eb891a4f51473b4fd9b14d83905682429dd5a227026f3f53be0c40c2404b14a021716fee6550e5dcc71305f6e9df759f7", + "0148297e8f434950ba8103", + "02d220865e7f7a053fbe2aa72e6e024009ea4e49c2f619eada622d2e3228044b86f3da7bfdf7135475f0fc", + "bf8edccdd7c95b0e8b03" + }, + { /* i=4873 cDividendBits=881 cDivisorBits=263 */ + "0178398c7d6bccb738e69dd9cedc7d75e0e6494030ad56d5495445fcab05e6c826fae808f71cc0e8e6ef33da83a768b96d0c29245a837d318945b9a555d2247e521691507f44853f24866947f8a5265142b18e25c16ca1dd09867ccb4049d74cf07a2137ecdbb30acf4f7781f9f38c", + "66db5a2905054c528260a4c61460f067a1a031819919b488825cdd59b88c92f975", + "03a8626ab3750f4b777ed230e014486828512252de3fe7bc999b9353b95db897323e82bed1c6af3a7af2e5176bbeb9767cc66b7e89c72e4bcfb402df69645a6922736f7f567647db357f68a32ba9", + "5266db27915cfa1547b3f837c4c7893b3ba4a589458f3ec4267059e40ea78d9e4f" + }, + { /* i=4874 cDividendBits=676 cDivisorBits=544 */ + "087434f474968a8d37e293bce1e8a4652f204645dfa8614a2f9914d6e96516ba0763b360f2179aab79a61c964139d035bdd8dd8b247ae3fb825a8c3017dacada60d89dcb744167ad5e59d1e5450af866c27390a89c", + "8035f7783fbb730b6ac2c5daa5007c54ce1ee9507f61dec0f3c96fd9799a06ea4593183f2646f8e0762f3df58a1be3c8c5890761918cd2f374cdbadf67572bd9517eb28b", + "10e14bfcd63ba241f4ea127135123c83ce", + "5d91ea3f6e4481553a6f882daf6389e0ce0a4d885cb94fe01a3609ee164911bea9bb9ec1f8c0f05e4196597d0fe45ed61359395464b56fea1dcad78c50e895286babdbc2" + }, + { /* i=4875 cDividendBits=622 cDivisorBits=148 */ + "0368ab6b6246b80454431129302d171115f50c4fce23071cc207c9506031cb287a726ed7e5fa3953f5cb89a11d5511cf29d173beecfa91d8f6fa5f28464896f293ec23ac6fdb7ffb4e26db64b9a9", + "025ecb14aa7c5a9f5646c15f6a099eb21431de", + "01702ba96a98f9694b52e920e3e2efa0c5a5ff9b03f9d1641494a50111eaef730ecd07a2ed9ed408ad73bc2c613e926e00ca6316613fd401deb95e16", + "022cf9fb5cd494ccb16032fc37f76b95eaec95" + }, + { /* i=4876 cDividendBits=1506 cDivisorBits=1415 */ + "035c266b75a17859af220c18d3cb672bead4339655c0e7ce5212a202a70f94ab186e78bbd1103f4cdc2d30582d0741c57563d5a05314fdefe2a60b7fe3d0305e1d6930b8b66d0df3556ef01a70baef90fc35c60191b0b514111f4a058f4be785a64710cee89200c5e144b42be1a471a75a5fe8fbcc45ac29877e93d427d69b945a8039b96fb85b2c4cc8a5c4be618491082efef856f1a9dfb503243aa597c17ec765fbaf2704ab38f1ccec3481cb0c42ed64e0968271c8a15eaf176141", + "36fd4981ab95671bf652f948a9eb5e017da02343fa5f2c637467438b782ec36bb18015ca5da4468381300c125f6eb214330a86d8875e0fd9fe596f0a60eb7fbc985a675c5fa1f3ba19da9a085b585964f7a5422042390392f1f478d57d6d74358a51645fb6a317fe74a4ed49bd9f0e7e8c855c7d83fbadb6099f6d570a93bf516b94e5adfc5a9b863c81b52cfa92667a74cdf078c19e5df45fdd6fa9e6fcd3df0e805b4b9cd8e64080c9797a0c46d77383", + "0fa46111b02398bc14ba40f7", + "1fd5f28af11358da1fdb1d1644f199215b1297f497fa251acccdb72ef699c1fa4d38d35e4e4a968cf7958cde9463ab454d8cb896affde7be55001ed7725f8bbf28a095044aeb64edea7647cae6cebf102024c26fe74db5602352dfcd3f1e4dc6ebfeb2f9c43671fdb61069f80003e6d3c6ab2f091f4a775b8824cdfdc65a94b8b694731b5588853e54588f5aff1dd49f7b1d7a90214d9b4a5047b6ac4b8aa118874350dade673a3f703ee4e40c4f282ddc" + }, + { /* i=4877 cDividendBits=3038 cDivisorBits=565 */ + "2f79f623ee75c9549ed05300c84398285714d630fe0f2ac6b1538ec85c60d9935e3fa17dd50cedcee7ef1029341d44c7344fed6f8394e48fc39e8ca83a577462d07057a789f6d67cbad4704dee9087a97b60ff4ffca9ccaa9b019658e43ef2f7f53f374600965dc794a293ba34d696838e6b1f05424895be4a85324ff053215a88fb374ebffd1ff37bbe0eeee3aa7484ac651fc846c2b2c7abcd35c58d150d2e47e9d0157f42ade7af66db7d7152e4bb485c0deaf4aca2f84b6914442d9106217eab437e2de2a6edc43013fc39c688a122438c3029e34b48ee148202d7399fee497e2e2dc948b71830c3cc11a2bc5a43c09fb54a3d7e40a15c5c4ed356b12e99bbe39923c91e2f2c88eebe4d893fe8e23d290401c0ce4ac554a04570a3ce8f1db2a514d86a007efc446132a157ec59625a1e7f2003b647ee95a9f9c0383cb0137f4ececc550ec02623009e95aa525e4c81da886dc114a89f465b1988ed7842f3a0c9790c8c1528143cf5d2556c54ffe3cce8399eb9b561fbf4f7a7d8", + "09a6ce823754918e0ed6209a8f0862ca5afb13029e5575f07177694d1364017483088252265ec781c2b64f050bc86f4335944899dbd3282aa73d672512efdb904b94655b90382a", + "04eb45445e8882e8cdc997458a5a6c7f42f3c3848ccff7d9839bd3060d5fa630f9c45a54e3f22327d30902b36566e3075affb6c59cf5dd81efbd90b9672f8a91808542e926d16bbd979a9a22fb94ae1db98db44832da55f7ab2c20755c9a181ec508ee2daaa1ce8e9afb517528a2362ca714d5ecf5bc8f7d6baa8d9b5078adb686201e47c53eb89ef71bd44720c0eb99c1aaed8f28a1dae17398acc044a78e55409454ba4ab302bfeccbe9f5a89e3a90f7c53fdd5510620e7745203b19c42518bb98e8d38515cda5d87b89dc832b85a23937e846b83c159703a7545eed294ba43a88b1fe03a244b0a9628f27a8cc4bbaab9130f22a98b4c61da025e07866bcdb93439f20c5f81057ffc0f93833f23576f049a4236510df4427039187ac517a3f1afb6df4c0d8800796bafc0a1f291dda00130f43d8d8", + "06b845f262100cb7f980f15e9d807752ab5bc491ac2f8e8b4590b3d5f4b796556f0eff8c2f6c59be233f26d96981a41c1863cdc1e8c8b5ef841c58accbfdb70c5e120ddae6d468" + }, + { /* i=4878 cDividendBits=1335 cDivisorBits=410 */ + "59812b659838baf1a825ea122190cc2beaf6647b6a06fa274c660576ffb87115ecae9abcc9ac6f623def4201e227e891727479ac08d9be52fec105790e5414703621dae73eeccdffbb9fc98be9cd1b1e7fe0249a22cc5f073722120ef24872d6c1469956bacf223a98070368e32cec2e0fabdb97414a888b0f0fb4c31105b508acae77f01904e55f67f2830a76a63d716e756b67c639e26b0d7394b3fb1fa007147de24c301dc2", + "012198d52c28834b0b669b23a0e6d22ee066ae31f7875d4611a70ac3a745c25c5505e324240627d6eb554047a07f4a3546a2e21c", + "4f1ef1f331519671019336968b34ba9abf4afb182d6d0ee67b8594dd547860033ac856f19022b1ce9ef2e78bb451fd9a23334fe5dfd2dc4e48964416ff9912935b63e7a0b0bc69b852ea5343498ff02dcac9505d418e6a8f13b92cc08d7427077ec2a2c86089ee9800686387f8087558a1608341", + "ae88d9a7847cf5e53d1819597fda434264981d70a73db3b5aefb10774fa5425ac82ddae0ba9e24cd2afc68e42df04d9ca060a6" + }, + { /* i=4879 cDividendBits=1732 cDivisorBits=1653 */ + "0b30ae1a1996055f6585e31049d2cb7635998ed66e3044fdc88a974479a85f10514881b5a1ff1e0e5d3fa41bb0596fcfa728be3b2e25f8b75fdb2f5e08aec3a650ad73ede5e36fec5e48526588648ed3ed7c753f9fa9c7432d567fe31336fc7c63de39d3b0cd1997f6c096fa960aac24469b0bb5124b5c743a9e5fd6aac5e01bad9c465c78d0d20cedb6d96be921536d8d7ae806a5f0ce22bcd8f845e349df5c29feb70525d4382eb71d09989a6826f9e96eaf4a42af3199e27fee0a6790114e3bc37ab23b4fc14c1cfa6b77c150ec849bd6de0962cbcf2dd7", + "16ed7c92eef3e552bed3ca017dd47d63fe377fd831fc68ec348d9e077dbe8873e13ba1aa2d9b24ee108988cc5cda0fdd6c0402e484b436cad93e553a25975409f074e2bc6f64be894b58cbbcb9f2074ff9d0eefbaf0cf5d97fbab5a37b4a9dcc5c00f43f2cb5906ecf64b66a320fb6728d5974f75083767b2d789bd557a7f272a194074c80f97c009f723c0f4fa091f160d163320841fbec41240271698090519f6bde833ce4af56e74b0d864fc901ddb36af61cea6904b33bfe526261d8f0d88a1fcc0d0ae29a9e2d152ddcc2a3d6", + "7cf1b4c5501c61277139", + "10db4888b55507b313516cb69bcb4c11db9f9eefcc23152caf2bc72de865cd579831351b2f1eecf8409575ed89cdbb4f01753c1810531c5a81eef1803c683b8c7ae75ad77c15a07fb9f0179091b99e2fe207940f2c319b0fc1d3e71e77f71404d321b5f0a5647efca879ab6c49fff01afceb17e1bd4e47134828ec9a32fe3ae310749a287fbf40ee8c6acdfd3c27c6f4a67b64806ab387627a46e57c51a83b550cc751e4f0c2833287af2fcb197153108df99de015da5c0883204891393489f7b2880376545b0699ade697ae8d3d31" + }, + { /* i=4880 cDividendBits=2412 cDivisorBits=604 */ + "0b553eea2a1ad2f64d5b1ed7d4a51009c1b60b512f5cf24d0c0b1cd8ae14159d6cdfb5f10c7c78033ff4041d4f6712b1f14aef884227b65ec64e52017cc7ba971014848878e21ecaf114e731c9a59c64c0177b235605257fb96a1c9b83bbeb1b150b314756782837b843b6cccab360101ede7d377d01520e28f388ac5f8a348707e071b905f7f2e920a26a3d9651c589f1885ee0aa8607858b6368557e77a9932a244f97d7956617dbebc68301cde7cd4577d0b05764d3a8b3762ba9330f5d698814d6409c33e5d2a0699e45cf0d83b38e509e0f161e9e0d6cd1d18389a31a32883d34171c01660aa2cfd207c71e41ff729efe055fbd8a0ccafa9ff3af2e3d2d0c18cf696603673249b89605cf1900a59c6b7aaaf3076f8c3fa603e20be90e6c9cef1378956db867653641662561", + "0531aa8a42c85bcfc3eca998a96c5b80ca790b92522b2f7f45ff5b11106809cd5bd1282e0cdd520f71b88697c7add8329653fcdb922e5c33bc54a3c617cf9882e0c8d8ebf43cafac69c3e742", + "022e935260c00d3779d0aaa45e381491d5ac547be80f3db26a72943b90d439a70a22b5001467e531d2989f58d38096ab428d9315112c9cf7c500083dfba8554aa3cf46a61a0f8a3260f9740b7e747fd7f599d7630dd8930553766bb696acee601a269f1d7ddeb589ce74747f23e5c9d5df6eb14dcc6b83fb2659acb6340197956d499feb1ff1337b6d00de256d2d0efbab30c900c1c1bb6a73eb980b3bd40570465f72388d2473f8b5eb23854e3ac36bc3d1688d640334c4417d438053d8887075600753f0bec9b5e94d44d4f6c3e1131c5cd6b8b2b7d9870a542b6c676aea9057f34d", + "019d6aa28ab42d7ed82525618ce25bc459698447d46f6af89f6fd691c3070d2da587a88430a4d5204c8eecfb87c5f630700be94cb1d438dd97ec2d384b4f905fb2048f5349ef0bf8c587f087" + }, + { /* i=4881 cDividendBits=4093 cDivisorBits=2592 */ + "07ccb8bfe4eb777000459892941e1cc9f4ba5b1e6b694bb2414df8e1d120f2ecbb5b5915e13b0035861f594c4986f43605cb48de29d4ef8cb2d47bbc88b6490cee6e220d7b1243545c4693e70a515e4e4e404fab334ff5ecaf7711d1e6218727d8c621a2a7aba9d581ae65179914592c0dfeee472458ad1882e23f66ce627c815f1d2f76c3342c41d87ab5c98b73186ef1aaa3ed7de8e18fe4705f462d03c8c4a980098d0cce28794a13a312aee18e33c0ed8278613781f3d81bb354a6763e752841c5af58241c72c5c4ccaa4740b21545578fbdec5be33ddbe827ae3265737ac7def7d932b2a41ae1adb3a71db3f986391184c4c1549ce56098fe114351487a53ce29b0d0faa2eb34016c210bba4c92fb98a6baa781583a6d6e0980eaf3d4887cea2b094e8eaf244d859d482eabcc96fc2013a2467691b9c420dfd5795a6af356ae47cb4862474e7a5752b5ee3fcb962d45329def4421fe988bc716d7ad86d6464b8f3d3ee2ce7145e8122122d400606792458bc2b7726f8c84dd1f2b50d68b9cfe01c1dfb1db91abec6c1244152b175203276fc3a68677e29cd5d21f37c54f4535a5089059181fd0592c58566c68a9a9c37cb00f56835b4e039cde3555ddf5c85f6f91a502d502c40376a1e5f4c58d60a1233a84e6d046ddcf33667b36b81d2b8b25d9202b01d15605a5749b5c21d7c137abd3b2b9828a354acb98f9be864e", + "ea2135d977bad516183863a1d85c306c9b0e9235c88c7c2bbfe8c6fe2728dce12a0bc505d6dd30b1e58f36066c1f17d789871cffbc72fd1ab301b6475b9f8fc17bece26d3d9dfc4a664476acb80a30ee655ed794d96ad6dd0a2beda779d745c13ce6a6ee66a467ff1b0a084ac9e0f295861a08156ce1ec7896a92e92880fe61833a8fefba18970533d97978fa75386f620d58e1e3a92786a1fddd87b9e66ff6c390094f7450a446812af93c9e3a2cfa60efe434c820ae8b3b7ea81684d6184911f6a1eb3f610fdb64d4fbc6bc82f0259d87fbe86775004875f2bc394f1887e34b2cc58a36a10b464c68c1617257fab34e1553de838ca338553a85eab56d50fd9a1563bb63aa391aba2279af1850be67ac51f62276e40b75be4509330219c0d87360391728517ec5444b35934a446b573aa448d361ad86072b7cb26e79414dd5e84ae17ed", + "08873cbe29ccb98da6d545bf095bb3c8390076439b1581274c11c8169571119041f3d95a1b8cff277000932643b3661eca80fa28d6e5ff8b4093031b0d6fc145c6b1652a753e63b2ea060ac94d0161d2426ef24f7bb02390e78039483b457311a77cc7a1b964ea7e5fbc1b21b10011412f040b8df3a0ddd344796c8845b5957902dbd21fa5f1e81017e5a3f784c5dca42123cbda42be18bc5e05c33a69bf9fc27a991a6a681412e9aa07361e7af26e6830cdc663de76c7ddce67f80c", + "6b5b6d69c6a24615254051d303c56c4b067e8c17a1f38b988b3b48bce64eb55f800403cd7e804a5ebb8ce5a9b6fb0dcb92d0d9e8dd81284c96e3b668fad15a4c848d351495f939d12ccbf457e5b8ab337fdaf8cfc2b628a0b81754795e524404163bda388094ab0b23967bd09658bf47a25d883c4c6788844373ec65cb703c09b8583b67d1483d291ae80d559b94a6beefd1453f008cb356f8bc98342ffabcf3dd612b6d09b666c215cc4da21128744f5bfe880249465a7fc9e85b9b07be84c619785913c752c3d80fca03bcf9d42b6c50e5fbafefac7a2f2dace4abb74bc8c11694f43ad958c04389311f34aa5fd929848592a257877174a5a00ba179fff8ccddb9a0f2d8d02ad4b49f4d60feea5c41336e3f0bbf44a7e6c484ae8d0137039d5aa6613975778a7c55c3498678655b1608fb79e3c2ea7c64a9d8b65281ef7ebcc40ccf32" + }, + { /* i=4882 cDividendBits=249 cDivisorBits=32 */ + "01194b4228840d4ff7dd3032581af3845fbbcbf4dea4017e41e549624fb6437f", + "c1a10449", + "0173e7405416d743fb012bf97e3e7f765d7c6d6ab77daa00130bb6a5", + "6fbf9a72" + }, + { /* i=4883 cDividendBits=3284 cDivisorBits=472 */ + "06e0ea6348e7dad096ffdfcf7fa9968fd18964ef8d9f12606ba6055fa5f5d8580abc8e3cdc0948f1d284f5da7cbd27e8ed7532ba7e7fa95e40b1bbf79716b615f00890abe1d0f7078326adb585ccccd6b5126b2eac8b0667db4cdef07a3c5987fb239c9433b4a72de0f44451a7ba309b3c6913dfdff8b319c7b2fe44900378a78683e0753ddaa4d0364de566c36d6bf6e8c9510d5df33b43cdbedf0d2bfc720adec04483599514066a00d2f002cc7673be7f89556e10da6fc8dfa8f2a041c6a7c3a7d28037f2b4234de5dc8f656355cef33f81544a405baa9678a29480135b2b071f87d467279601ed040442afd937b2e5fb64ce6b63bda43d40bb0c1f447ccea3df2bfee8ac6d211549aced90a421a200d3355789f61e1be6e9e5967bc17e0355782a840015c6c6aec992bf4c5091946da3f59502d53b08fbe73e0e5c4091b4fddad9d086c34880e06b13c092c80c6112ca39bb1cc2f03b73625b1647acb326c70d9e346383d255fac08f4c634a61eb250eb2b588d59e81eb54bc3a0043c16a544d4db4274d640c17091d2fa7e94945405148d738c2c55d1072e1", + "6eb91106dd71b347d7d3cf5bc1b7f961936d8fbe12cddf333beda8c8783b1ab94d54539ec931b2801237a27b4664f33bfdc7af2d484d4eaac24db9", + "0fe75fb649a1b9ead9df2232b145b0b4bd118260b2689b589d8a5cbba44cbb9c88c3ed638c6463c01646da9a9f10910c55e18328e141ec578210258de714e85486f5b0ac8bec67531cf4138a2ca6e6aea19467c61cb63f9abdf0b155982278007eb12aa31658f70ded45f0f07fc38d6620bc9919a6da29ca7687e67599f073fb4e7d97ea3f9625a763b7dcb8e60e9ed6f1bcff93deb4fa6429f48828a2b0867e560f06df4486a6af4628210e37aea1baca60b96fb37a8ae4152491b0d31108610619617b10606c4f98c0cd951563dff0292caf0e0861cdafc97e4b78874c2f78379f8db4cc65c996e2f376e0ece6655a9c24c9e1e621396ec71125bf3f98202620d7870221925d42c04d162ed02d946e24c2b446362126ee067a8cb0866677817019eba038ff22ac18b1fb4d82bb7cf9e838d14bf952918f5989e2a28eae269e62baa4f0c98288b95eaff2412ec0a91f23e2832d40b93a55a5a5d677565299dd", + "11ca9f099f6d3c7cf9ff0de950790e6822a9027dc306dc1e6a3b9893b3e3838be456fc720424424009c973b4321432d7b0bbcc36824275c79dc92c" + }, + { /* i=4884 cDividendBits=3857 cDivisorBits=927 */ + "018220f12dc1986939718b76995dce04e9a830a7c38469fc31ea23c6b1f0228079a2c0e35009de063c6ffd17cb933e9849f0237d0e6c38989a9a07ede5c453a02a69d9232336da450f0dac2b00a25628446da86d4f1d91b10ad5de3a2de092254377c4e977e80620fed6f286d58de788cd9754d98201df720a5d71acf9b8e4cde88f459fed5b545f7d4efea758454b9815a69d54c58b8fa90071aca5b33b7ef9e0c8beb284d4a39673add3fde4fe9fadcb8f91c0d800bf32c1dc678652522ccebfbb3f4ba32a6eaba2375c2577e662e87b8dea0a561310973cdc88914043c1f86294ce1172d57e94a1d8f593f124db3cf903f04fc31d945b3dd10a9199afee5f2d4a4286963c9dc98a84c52fff99ae63e62acf2334917ffa670ec89104c0bcd1e00983211d6ac4cb90c8c0fc9fc4dc3fdc679d94fade9dd7514d0492eb8d2379979b1d95dd190c27fecd5624b8484c8fc20f525e280c43f75937757cd571ef2f9039dcdf318615183c7728aa209750c8332de56402105019cdecde1392b6bb8546cc76782a7e1d61260b55b26c66596c1098e79efdf4a0562703d864de208592c9e6b9516626b72fd46027dba1bfd53eccfa1ef645e832a372bf74007028722fda5968be38ab74ea979ef9f17db03cff02de38261f969e66d58e91e473caaa141f9528", + "313725e31253c98d4a9b882c42e41419367d91c037835e670d807eca39e0f24994968577ac3c4693fa3239338a47b0a1a339a1786cd479ba212d1771ba85963a715abf9934a6585a4dbbbdbfa8b1b4fbd98589eb25ae5ab91271158129a616dd9fce5cbefea3cec1fda55f6da35190593d8a9776", + "07d87eca21d07417b580eafcba04039cfd9814a48b929a238399cc7ae21ccd22f29e1513152bdc1232c94373c6b176842ed76957fb902bd8b105637def42a3f317e8cee6a700f446a7a7042f43f9444b9d40e971ea0d7225dd10db8f2903656bd5bc19b76b53328b7cf42a7b16284bd0402cb9ef4b7cb8b2ca9b96052a96344b5c6082be4a9f25d2ae1ddf8478331abedfcdb56878b0fc63169667ff6b23cca1c3d2867e7c05c0cbd07ad4f5ed18a00307d4efccf41761eada8369d4ed6a106ceb50ec1dca8e1a46f0e91d483ece1b6e50054aa719bcaf7f4eb052c6d12e3fadc76d902a324afe59f6280704a4637cc87ce5cb4359e5d1a971e0a64ddcdcaa16000c160c1f27487de0fbe4a6fd3df366d923a895a4ecdadddc8660370b6068418d8e044e7c5261b88256bd43a633ef701cf0b603f918b6bcef4fa85755a12eca6c24ec65c79751a4b7e4441301a5c5fd5ba1b004430a218846e14b7448f3bdcb8a115cec7acb09c4f58803e99a992f", + "0df39caa8d4dc557549c3ab0ba0ee0b8012ccd0945a0d27a1b446719df51a9164528c4b12c36707ed19528029d3926c1bbb78ed32a551cdb3cdc8533e87b372c4e3b24c47ca208513e83c0fa3e1c37e589e259ae01cf4e89f5ea75d85d8d3901f20c8e807241476e107706e6757e54e4702c407e" + }, + { /* i=4885 cDividendBits=3737 cDivisorBits=2866 */ + "4bee91c007433478a1d46352dc59657676554ac65d22fb97a29c1f698082a140e3c73a94c4346a0a04864bd3ce5f4c4c4b9648dea27d2e4f47df407898bb47701e55146c2fb23bd2678b947452649e9b235098ba9420d28431ef1db7b80e40fb646ebf190ea5dc87251959a3b2e4c089a4d93fe9caef90896580a0f3c1be562d95a7fd335fed9d06efccb67398c384368f3e0f6c38a218b9a8d97734fcdfdebc232572b5953f02a931de99144a63bd3ae82be179235b1eb94b924f1272096e7446daabc71c31dd0923ba4fc8986bb7f67f2d521ed765ef45a56758e603d837f8044186e1e6f7b9581ce901e84cfe278bdddf5387a8af52e7555df71ebcebf8ca5400ad2c8080049f5afa5c24a115a7ea78d92da56cf7d0a6f541bb1b08e294768cd6a00dab0ebb96195b923cc7bc70951ddc916ce66146433ab8740e1974674fe66c8f5ed9736f9c1348cdd7715fc096a368f3f858778d490ae3e68fd61abf69dbf7d4aae99dbcee771b224f83f4bd8ec1f5c3940d894a73dccdf61efa21fcc034592e3e9bc5a6dd4daddc4c1d308c225aa7baac64b9aaa30734544a4b5b5fe67f269bf82a9c0967e401f6f2ffeeb12df8a02abe1b6958e38486900f5ccc8d52a1d62b381516a9457b61d44f2531bff7de4db6", + "02629eab33208f9f6e82a14c63746da99581ed63a9df386977e67f00cadd13fb61d33225d362adb4c10f7afa5e4404a335a2f772bcc14b1ae55c9a0c0f31fb7765fb50914a404ed0edf31ede67a004c73da07fc26d1e891ff9177fb5691c0484369adc73c0e1afebfb51793b8232aff7ac7f9f72fd6dff87169940551107489259e5b0278f919637816deafa9d058cf06f33c138786321376f18fc47925b47e398ad725197fef34706485df315e30e070c3269c45dc946bba0b33f284976024e93c271100a3fc40a35986b8d4a480f2c7456ea607881330d374f9f44ceb8478e8d81b77aa0e4c0010c01c3d1fe6f02dfb57c1f2fb03db2399a61c411098ac9b4521ed6c5717f9c3efc204c56a53dee0c5c122b8661cd977a15904af3f9110f96153a69f4d11409625309cb0fe3fe38e40da49d627f15e6a8a1e85e2e2ae43c1581997a7382b62630ffbf98ffa362ffbba5c98f83a19b2d6f0df879dd6a8b6115723451471a9d15", + "1fd58b9c0f919edd4fdac7724de2ab68be3675ee0947ae340b8c509026a1e70c6960be9e607620c0f6e8318deda49570f551da0d9228badcfe84564d1ce65cdc637edf84066ccffc4e6b7faf46dd65748ebd883c31cfef37846699c78e3f57b5db2348960ed68c42b03fa52ef4", + "b1813ad15eba563fced08f4f8fb3cd28bf3a89c0f6b68c5e995c18f0ef7b1a3e32437f87216c473679448eb62a76f560e75908e9194bc19672367656409b9de05cf64944583660918d8816abf6fcf9978ae37c68b1cfd45179e92bfb707e5ce9cb2ecddb44db1e6c4013a00b5039ad1f446f28f08651cb0746590f5b04a3ebf403778a18b9bb4eba306aafe0ca3ccf7fcf55d1c0263c948f18c537e21e8a0cb67223e9fe48da752197228b66b89679295c8dbc0ea4560328cc893155ea28018ce27c4cc6c3a7cd1e33cedc9b527d4c5d86eba6f10c9a5d607ad662d2230cf3294f0fd65aa04a3c37ae3d8adee8837d9a543b14054d51ac12478cf766ac04aef27d148aba4e11fb5b9bb4379f36d5532aeba3731c8fc22d8137828210198e2e39c45de4d69250404a36219c77e135326394e551397b21f69005bb9074d5fd871b33044a4128302dbb48248bb0f27d0a94918ba7becfcf896f094116be36bc6bbaf04200bdcfb2" + }, + { /* i=4886 cDividendBits=1030 cDivisorBits=202 */ + "39e0087d72ec3fa062b1dd9081d15d34818eec7904e80ef10853cf43abc5742d74c0c04f40a23add5568711bc0cd29b33d74e92aa4a7b87e44cdb4eb6d64b40e25f625308f3f4bb6c9a6a6a5f979727a77d61c30f5488a944f423eff60e687b4b623e5cb1c6765b85a6cb4369b306eaf8338c50305940703ab677fa7e1bd0236d6", + "0229a2bcd15d7e1caa4494da085d2b904c51bf4fb41aa938667e", + "1ac2e73197c714bb215f67af85ef78f19f97702375cebef451179ab74d7e1f2337fe24c80009ff8bad409b924bb82f3afbc759fbbaf222f4db6469f6570320a6f515b71a810a80baaa40bd4347c29fe3fe6067725c432798e7485f679cc2c4797c779f45541d3214", + "014d9eddb8d63c9d377b563ddba6347f44166d1ed1c48c4f98fe" + }, + { /* i=4887 cDividendBits=2533 cDivisorBits=1163 */ + "1a4e2d82172814ba71d69f675495913b7a69024b26968c793cfa5cbb9d5fb590226e0d1cb4d7e497373de07456578c51b3902a5d8b983675a127a7801875229c800b993b333020cc9780ac9ee044f46bc156c6ce63f060ef3ec2d91c18f28f3df638e0e62146fadac86d8431fb3a89c36d8c73768b5c9af8be5397a62cb951534fe112ea8ff50b9e49b56129297b6d58b1a92efa8226bb1a215c7be30ea8e1ff491f34f55d54f3dd5b5bbb4216009eec3d49164e3b13c3209e7e3dbbde535c6911c469729e29d80c2d7aef0a2e0e668baf5124f694a814231411ee39c88536fa09a0a1931465d4f0f9ed2091e4e650a46462b418722eba509816cf2342bf95763b7b92feaf4c0ece878cadf22653a6725333f31debf12ba8355d794496fffe51560901b483fa25e02d083147b6a37e0f76c4d5326bfeb84304be1d84b1", + "063e2af0082f1289d56a5a12ab52fdd445a4a6dc8e35568273880fe961abc0976ebf132e2657d9b777b2ef630ef3d0d042d36ee5fad18b09453069b744f81f6eca15e08ad37247d36603d5c506ada47c815f023c121956a89d68a707574dcd872c5a132a4e34a24026208ae8cf486e2f8e881d3245fe1bfdbc5767839868de60b9ffdb73a38688b128c9b25f7932e47f640a", + "0436b4288c83d9b26f80de7e1be1d9ecdd386e91c12364d41f8481c7d4e898d8a0225a7bcdb701dd2287bbef9860ca6c1e4f27499e8744c0cd4649e6985eb3e33e8bf339ea5b118db0658591725b93e063e93a09466232d4c7554275e183367ed56e8b0241f65133a2b88a2c57ed6fe818a33152f8f45f15a99cc1dc4c731c40487002669cd50191b27372852abc7040357c673a2cfcadbe5c37deb9b2e6a4aeb6a0fb0c6f90e67043eb55b4", + "057967260499dbc24c96632fb2542ad48d436003eab83b537ce2f499bb7e166fdd55fba729575450e05e6d233ebcd69a2078a6e31e84325d7db9749c334a83225ac1fb9764e866a6909a36be0f7ee6288ef52f44b5a15cde9a062253f16b41cdaf42769985d1d351214cdafd6658460713c2c9fafc2d57cdb97db11c7cf34766df9a9a726b784d38cff545974cde5525dba9" + }, + { /* i=4888 cDividendBits=1334 cDivisorBits=1021 */ + "2815d873fd3caa7351dc1134e67d6773a67ae284ed3e5757062ae7d22ebaac6fed703c6cb4950c64a8d9e089701251a3f31e9d0de471bd78dea1fecc075328acba6b588feb86dc72986688f774ec83453a700546e680e6286cebfd124ef7db5a5a317de1a76c853143d8839705c97cbca7b14d3d7f9b37f3967a1e5530643c6e0ced13c0edf92df96af8703df4cb6cfa6f88f833d5194df8a56925e3fc2700e79bf713cd210b9d", + "02ed900cf85b00d9043588ff9955aa1fb4fa80d0c172a933490402719a44128f0087b4c4360e3cbd13fe78afabbae634a3099eaabfc05a50783db5f17276f857e9b92ea2c41dd7add75d55633d8f2d14a4369c675dc459e1fa8feee0f3ae8552512d5bff3c92e4c543c35b4d2af5c257657a8081790f0d7f28acb6dccbe8b3e3", + "0db0c0e23d201c1702f4091d94d5b2e6559d850e63e5fb76fae86e5f540c05cdf795bfcdb02cb081", + "8104e45912a7a7f95ee147735430f2243b863dff9cef638c8c0b21f72201e3e04160325bbffaa37088d2de8715c9dd5bd719584b7487e95c688ad6c79c0a670232e1a1724ee50ea1755b8b815c59e3535f579d8e8479fe20148daa62b1db9089f82699deca8fd3d371e1eea53fced9793489b726d057d5d10b942f162e563a" + }, + { /* i=4889 cDividendBits=1055 cDivisorBits=61 */ + "33025424c1724748a2ebd8865e8cdbf311a96897e56045beca214198c0292f29d1db16ecdc628a1282aad191d1c48ea230f58a1ba76b5ca37b5aa5b32f211d28f89e9635f98ea888fe23db87652c268d65559c7cf1ff7935425554c52a177765c3bd429bd66f675cd34f7056bf69b0e4e761afef731a9040ae4261bfc19151a8bbdce77f", + "0613e4c1c8177a67", + "08648f985d34dfae5ea64134c26a26ed321839656168d484b87e24c00682ec13cc2779863dd61aac65772e15f26532ae9732e824074df21b7fc9d53e1329be31ac94002158ce93c45927f3f6507149b66a06a8eecd66126af9c6fcfdbbb15fc13a00457aa9b24fb1bc2adc9c46c009765eb21bc1f1c57ca43baa3ca037", + "03506071fc2d3b5e" + }, + { /* i=4890 cDividendBits=2727 cDivisorBits=281 */ + "55fc342213cc48dff851b153ad2b328a5b1a447754a4959f94edaa51da29af8c702cd481f877f9289714f8128043424812e647633ba43f7dfbda655f29382c00b15820a0461d8ed347069814a8b55e705c74c2009e4dd2c28be6180dcd4b75680d87bf7466fb43fc10907d43ea07696f24ddea280d7bb2df2993e5f39f9d7138c3020f6f5f1f931a7bb38b9f8da0911695e8a64edd82e0ad804b4c795fa60bfc44eaef8791483b8b5ced0dd8d659c610d3e4339c641b7ef2ab1a299feec234ee2e989619d76aa98a35d41ed6d08b12c7421a1fc9f35e935a02e7720f2c9b2ec01f311ea331cd82bfaeace8a4905c8a9909dff43dee8ad5456c91eaf38f134546edd12985374cc959d780c795adf54a0e303d1ae39fbd352afa223211a7da2e419ea0b481f9ca0973dd287c925912eaa3dbd970c681a91514fe4e513220408a09624fff9eaaca0879c29829491e5342024201126982", + "014928cf291c7904dcbf6d087ca56a6a26e439c6c400ccc42db95acec6bf44da89f4d6c6", + "42dfbde7aee5a32688b935e72f86fd27b198a596da84642990f26349a2556ad205bb48fceb407b51b7d8ce9c0c065f5513589f9e5cd602af3385f5c139089a2c6d5b57f3267b19d1002ca5f96df8701d7290ee51b0dca1164581fecd012b69d7fe47fce77793dffdd158c850172a9902ab1d5c53361a48383280db47dd6b27d9e5228a253fc1d66531b80c1202107da0be33c322cc3013ce5344eb2b1afe359939f7482b02d2b5cb675858bd63e234bc8bd04516e28d373b9e873ed52d66418a2743f85b780fefff166a083e2ebaf9f7af2d3b99c798da8b060542dbea9fba5bfac680ae30ccb52c06ce26ca58549736a6e50dd689cedb84b68bdbad58fb8cfad9365129ce4206c60ac0d885c6e4dc960a55f9ae1c71144ab14bed44426ef3de34c74d8fd9902048e2a04db8115ef5254b3c", + "a8356558094d14731efa2c879809b4ab6ff6ba4ad68aec22550627c52a93fc6826111a" + }, + { /* i=4891 cDividendBits=621 cDivisorBits=263 */ + "a66fa305c7d6698b4077a575382263dad6c1324e6f1146da1c423f8acda8288e5dea5522a34f2181922f258c0d4ab2faf3a9400663609cd8362dccca1d537891ecace7d055a96a12872c264832", + "54af43fd914c3898d8f3cb1baf19054a55ef515572ac421eb6d2f6ab901ec6c0c3", + "01f7220f94e9deb3141ba23ef8213eba8e0ed963d78184176bfb3b90b0e5bc5f126b7c2777acb5ad0c2746f1a2", + "4eb848ab4b8e4468b0e57d838a029bbdb146ebe364ffbbf538044252802c96b9cc" + }, + { /* i=4892 cDividendBits=448 cDivisorBits=24 */ + "0c7fee6e971c75fe12c668d598665a6c51dc9edcee12f721abe1274877fb09b65af4628ecb3ccf9bc1236ca87c69fc606fc8351d6c4730ac", + "d1f8b4", + "0f3d65f48c455c13ba165fed8b6d551882301963d8302ca73f092d68262aaaec1fe1f54631f29c1fc10b213f061aa6e8bb5d29cbda", + "6eab64" + }, + { /* i=4893 cDividendBits=1066 cDivisorBits=460 */ + "01aaab6c16b29bd384c548f7fa8706f9c37635a2c27e9512100be720d35f44ce2c51f90231d4199f8ff6977ffc45baefe8a5d7a6fbe1631d61e0b9d6d43558cc0bc58b19d030afbaba6b768cc1908d9d44439834dffd43df0f5cbc4b79dd53d5c555d90595e9a766b8e745bf14ae12cfd2add4c188d4829b3c4abddf3d717bdca98e430c9964", + "06740b2daf85e7f1a2c3878458876f1e3712dedc313f49f3bf65c762057997cca8877996eb7a785a59b54ee78156d179bd85bd45735ca9c3fe9f", + "421dd60189c11348cd7a9182eb11d46d3ca2811fb6444d4e81fdb07ff1ed17ac04d5890336a572b4a444fa61f0300e65886a9bc31f149c421fedf03d9a74aa852c86ec6be2921a6da3caf197", + "045bbd351f6862f2e8d110725477c8a1db30bb962088d448704f661cfbe31ca1abb53f0ae0106d03e64a29f2d15664b99a68aa18129b7747ba9b" + }, + { /* i=4894 cDividendBits=2665 cDivisorBits=1383 */ + "01e71ce870c11849db6746b2b7799d9268157668bc72bf7b490983aacab0542dbe5ae1ab8195b1b750ca23e5f313075d36392b7469cc114d3d854033fe46974ee3182396a5ce2d7da6dd12b4fdbb7d5d5ba55346ab9516951cd73eb2552500b870c3bcae39bbf1daf47a4c112b06e95c5a0354d5bb2ab97a1e04d72382b5c885d167926793b41bf9da3032ae4ad8dcd0b5e3eed6a2e33e4f52a05693340d5a3fb93a1c5eeaec1cd2925e09a4ef417a61952d7adc1992d2008cd7528905e5dd1d7974d258261c052e688212ecd6bc618f4bf57296303031de52ca68666a6cdfb549599ae97198737fa19b48d57a4559221e6c83ae81a623061efe61a8697305d82e27ef7687362df2802229f1a3fe5a9ab8038705d6c42d98ae29347735f999bf7c982654ffa6419bdfd836f085dbf89a377b820eb2bb97fd858261724ab85447717d0548aed3709995e4c86b44b5", + "30b13ad09cbda1ed7e4fd7c87538c755023685af55e6bcada1d92313d481651d83bd8ab15fbd9d7c6f59576d086e01ff02f03868c45cb9a035f6fbaa10b7a4f94e9abf7c3546fde1bb60914e87deb2e85aa48e6c8cc6886ee3f0d857a678b3015c439cc4f7886db0b0dfe17d2f603f0df41f2b6c13094cd9635ffdd483f2c6e95f2dd62db695fbd68eff6506c81d451443792f1a3826ba4cb38c47ee7f9ce78b8b420d6834b0094fdb0a296a36", + "0a00ff91ead0149651c9a0e4fa08275b51bb0c1203382092bc7ef1ead75a4650fcaec52b3721282e08d9409cbef8cf79550c5a0bda6142d1dba3ce19a2262ff7c07dfcc9fe5406deaa22051c056dd5b8fa6118e7e641f53fbbb8ca591a31d1849dbe305018187fd185741244c1a32b11eb910e8f644208a6bd1e50a5dcdd75ad6feaa2613a30507576dec5ed6439071be97afdf6e589e719f315c7495afab9b93d", + "2d62bf71eaa4fb82dc0a5f0cb49da97335806305a8b6b5e4b35dacfeb6c656ee42cdce695f665e25b379fa30a8bc097024d324d899a5c95b526d0b87d09d83f2608e51005a598e1db0b5d51adb53449da8fa7fbb638ddca0e4364c39be9013078af2c2ca4eea8eb847746e4bcbb7aa6638d8503774bae794335d7f7b1557106fd6ce4fc23f8ee24de9a6ea1ebe01debf6914c28cd13155d20f693c92d289190b2fd23d8c46c6a2bdb8f1c5efd7" + }, + { /* i=4895 cDividendBits=444 cDivisorBits=178 */ + "0e5152cc603a71ac4f3d3f0346a132a3cdf8ed7e99b7fc43cf4ff62bd3d98d9a31e058cdaa996e6da0aef73199f2f01b90f4c2d4a66dd56b", + "0376a3236da3c686a5f0b5abd4581177837a4a88f16414", + "04224b3cae3f505a64673eb72927170956ce17385619aae27f394beb35ff49588294", + "01c5e3185209b471057917f081b34b4da579c2cb2dd1db" + }, + { /* i=4896 cDividendBits=2010 cDivisorBits=1463 */ + "02dae7c16f93f3a0688bb897021896b4e345f93d940b21410e374f7c3d9910b3cc5e44c05e98b9f1edcbafe6d3e119a0547875c6576f111c900e6c67c69cd9d8e80e41bb326031e717f60855ffbf1f2265fd46383d35311817dbfcd10abddc7e49b46d73ebdcc508ce43807b290844b7b516cfbc927f63f5f8a4c43442a433c729ee16f686fc8e37749a08b8fac486b816b6d597c36aa8c17b1576c282bc216c4dc1aa2c72ab115f5499879d9173693c45be988efd8d55272728d28e92de26e8a37d045747502fb92894f9597af460a3e086bd9905a31e43c500396bf8c9f004028d4490a2ab11dcc7c86a44d573522f80cc5a68cce0e343ddd06d19", + "1c6d23556b53276472992d0001bbc1a9663bbbcf4859615f70af03e9d0036c4936ba96105125f5e17b51fef6f4e47ab3355c7dd30e728645459d1aad0b74220e2b189df63752d31a3df674f8d4dd3b05f80ec05a59c9e61ca722c05c6a9c985dcfd128c6e027872887fa3fe0ade9968d084870d2e7c360dac2d873da7ba2765b47beae4fb72521d5a85f5f454f994074af7b02faeea3d37de02d966a9b7abb041e311f9941e89175124e1ca9f9b3ecdf304ba6a83c31b3", + "19b6577d09a5ce30020e7b6324c63ac44998e73b91b11e6a289364a2084fc58827739633f7d36df9124f46a96c81dc06e53fa21aa54a1f6378e4b8edc9cb85efc55007e707", + "18c09d1abcd92e31ae1e1395c3778d4b7e168a5bd8c5e308eb42228d5c39a1dccc1f8cc8037d6822f49144c4c144e4473030981f495021227e366598699a8018821823634904e8a200910edde87ffcedc5df2af7e8fd7b0bef7dbe06548ae54189f9ba05e945b5e70c388bdabddf06b90146549f07d5b4b7f0e5d704dc0c878e4aef5f6bbd6348dc51a66c755d18a161df9b6baf09d41da7dce7b9eeb27af0ee7f59f43864cfb123b40e3556aed20a8c72aafaa76d8c34" + }, + { /* i=4897 cDividendBits=2560 cDivisorBits=1241 */ + "11bd1fe87a72ee48f20bb82e122997167a7e17b51824728dcf52c5698f56cca483402865685b69afdcaecdad615ac7c2053dbcf3614ccd5299bc8dc1a238b97a40f2cf54f2debac27c718b068e1c0e780ce008d01bc2ab2e733d7623ae0e6b6aac99420562a039b8da1a9a314c8171ee92d92af4511a4154ec04fa49f1498ee1894ddfec2306a1bf6fc5089f018d0ab9224aad069f3145b0cc07972199b16a5447106e745f92cc7d2e9d6068077a2a5fb28de7bedc420ebe1a4e92dfc1053e898a8ddde0c4ea78115e11a53c6ed703fb86d1c0887773b6379ad3d655189419b467d6a13b642f3717f40fe76eb080e75ba2f731352e4fb72c071d1ebcfc248f8e357f3fe1443e5c02320cc009d1a93f1eabfdfb961ee9092cb1d28c3ce0cf98371b47ebbaaa5b384a8c1e826b2a539c8c16daba5dbf5bf7485255f1cb2d360c2d", + "01b388928f7a9291a2d09c18ee0201047f1a4b8998be8c8b2f26caaf961d9a6c1c65c9b5ef8ac0eb6f34ac1d429bf6efcb6ee91dccc4fa016c1f9cf14013d0884c26d3ac5dd9d76a7f66f11530e3c24dee75fce7bcc27d026735542c658e3c3b20b7c1f41a0d363901f00defd1977065fb2f065c213b31ccbea1339b8b32bd7177bb6cc53b9fea6379f0b431a6a30b0ec91b1a1f34f6052ffdf54513", + "0a6d345511e67e808a0bc0cd281ae3467693f3df8fccf5d3cc090d0b1b672b612244180f3f3b10ec9fad0c9b5f8cbce34325862ca8a686df45a2a5d1259dcdc15be8a38c3d404aec4c734279a32563c96e7cb77aa8adda30bd9f75f19c887ce0d419cc83ccef09c095881488c0a2b7ab3a79166035690524433084f1cf261bc8e3da97edf85cbf71f4f28a8db4eab954dac08cf1e4423ea6d33e15d705e099d227f82c4d1c", + "1529532893f8bdbde3efa25f7b2c80b57782370ebda04ed1950416cd5a39522e717131cbdd75ca4fdb00ab07caa16b5bdefaeb16e4a77e4c11cc114f0d622d5fb440a758da2e20f0f3727f47d8e61586dd952fb7323b113654f672d65ae28847e5be549ef8596f4eab3fb80a2ad752e70e61e1586d8ff3f658fc7a932cb46a88f839a31a16f8e4602c79181fa1dbcaafe06e985a3694315957c719" + }, + { /* i=4898 cDividendBits=1052 cDivisorBits=789 */ + "0d9313fc5f7853cb138cfbf71b53d035d19762998252e2dd2ef3e639ba619baa2192775b22f718c779e7941ec7478e30bb8f92084725a6d45dcb6f768e4d62444b2dc772a404a6dc332d7325eafdd350ae7c92fa9926b3053ef4bcc55f252b2a78554d5722ecdd7e8f7b1180ff7a6744fb4726023a917e7f4efb6e89d96ef786c85c5098", + "08a1a980429049ca08b399e6eb36e365437f0a3645d26b2686a100601b7ee8e1d335430371282606ab178ad285d330995135c9b47fcfabbfb79c18ddbae4631ae4a1091de4b27f295e0a8e32429e1d046b5c08bd5801bcc58519af4ff32f41ddae1493", + "01929ac2c0795835534007fbe64adbc6d0bf70781ae5e1869bb1851b3d023f679e72", + "01a7ecf875fdb031eb1e5969ec334b38552668818698ed42e0bc71d757731db594848c71a5a5b9d7a08ccbbc409767601c4e2d904d7b0664fbeea0d3763505782fff0bcb4b0b597a0770bb1be9b4737fd3a4574fc750934f9baaa12e270d202bff6d22" + }, + { /* i=4899 cDividendBits=114 cDivisorBits=23 */ + "7edb86b106e1d39a0e50bc39abee", + "30a079", + "029bda0e9f0dab3b5045eb2b", + "22a49b" + }, + { /* i=4900 cDividendBits=1955 cDivisorBits=435 */ + "03162d268c6ffb17d03194e2a6e45462cbaae38831b3aa846cb57591820741f6740d33133ca41396d3eb932f2c320aa133cb7252913a6e9a7a0004ab41d7ec2e79c9928abb2624d146c52ebcf7412bdbc8a63288be2ed84b0fdf21265a891129bb3c139d59a066647c26bdc43d6c7d0d08516297a5ee927421e9ff05fd46ab2d67f95e37577f344bab80fb8ddf61678500582a3fea9fb786822559e7d2376c40622b416a0f9e6c3d0458a790eec2932a957e443178293813652a35a65045b5ac9f00d76d3a13e0db4897e5c7119dc4602cc4e96752a7af50b4fbe401c904176dca0390addf04d1d94a1e7400cc9d59a7ed09978d08", + "0259c6d996661afed92436ac896213117675a7c7b37973d76c2cf807fae91d266cec211794a27702863ea05b5e3ab5b907e9bd42d836aa", + "01502580fe76bf8041b60817d15b11b0d4e9e60cffb8d3f591781d228965d609fb3f9de0845941cdff164fb9b4fdf2db6f242fd3a28268a744fbffc6a566e04c6659d384c508d45f0189e0cd77ba9e8c7af97685a20dd567331e5121a90a6876e7ff00d56cf72875245b5c9220afe08b41917b388da3832d986a1e6a6dd11643005eaa56b5e48311eebec4070e627e695e3924750a630dde23536e91b56ae0fcea3a5a12b9864f5f616ab5ba4b08bab438c3a3cf3be6315a4480bb9a0bc85b", + "0214ab3b155b5f50a5f1d851b03fe7cd71f5bc8a34396bb04d58e1ed0fe4c6a7a18f0f71b68d259322b57355e01dd68b28d712beb94e9a" + }, + { /* i=4901 cDividendBits=3555 cDivisorBits=3374 */ + "052f889fc8d7dc4172181daf8ec43dde26c5b08c5508a03b196f41e2dc19b77e43f1d68ffd383851e8cfd3b6698d715f7db4340673cc5be43ffecc35dcba14536e734370fc9ec45cbff212ae1b88c5877e4701baeec7bdf4dd8c1b008703ea9867c3807fe3de4fda45ea82fbd575032929150d327d0559d84aaa8b393ea673191faa1253a66dcebddb8b2d307162ea46e6df4b7b9e453e7ce7cbf9ecd16222c92d6b30622faca4fc71677395be7985c1b18077126435ae7ba809dfc30c041c6ff84b694ef13895b6450b4d2115d56ac6a6ca2e8a03e7d3a0c5955e1bcb60d9113c072b2c45ad1ca80e60ea776df09a2596aa491fed734d3ff32b9a311545315126e111563dd69f51628ad31eb4f57f024a35aaab75ebd9307243e0f602853bcc85196dd4081dad02d3d50313416864410bc0b8077392d94005eb3413edc2da2010efe98c58b997533abcf319e6e822b6890616dc4bbdc29b5f4831eeab23f9354646bb31fa745f89f32bbf6c69e8a1d12ca7200442a6681d955aca4a582f91420de9b53be1e06cf80ea7f4afbc067c0920726491cf7bc569d68932672ab7e36236d68e119eaee6681cd75057334e593cb128b7af5178ec7cf47e7263c6", + "10de65448efa3229b1220e6c7f613c4782943f1e1fe27d04377f9fab8d5c5061d402b751442f9cf18381636d97236c7721697ce315cdb80157fbf4637c38f712f183b44f1459d7dfef993c3282e5a63e435cac2e6573edc9286e457965b39fbd4f5620bd3bca24071ed1334328c06279de4734fbe9e684dfb5411bd3f9bbaca1f38ee2df7dc071c1dc71874cb09ade98882e04fbd208c9b9ed1f0a1db3244605641b0577799cd80b851361cf37946b4d4135c5ec1f7bc51423b3778db867ec7a22f354a23b0ae2072031b7944b041597e2bbe25f6658aa9172aa686b802466819fd8a61ec2bc1198612b6cec707c1322652546902ace947cf8e42327b3de1eefc09b9de8dbd857ecfee96ceabb2d4443403d1d19f4305e9a62b6d161ef9a1d477713bba441b6f8a17d0772593e0e7e23133e0a879f8ecdf0d3972f4680beb1b8aea6f684388d9cdf52c81397e087a94a7207ef549dfdc947f9c3d8a05ca16b4e6351fcb79a859352a9d3ceddefa2c7d6f22137097716a1601e628f2a06641a36697cec9de9201b7e9b7b211e25090349b45ca34aeec7c5a58ecaed9796452550ba656ee79a77", + "4eb2a8faf25c821cf7f0c5761c3d6ee2dce3fb76b8d4ce", + "6a1fd3825f672b31a6c86a1d8eed61a20dec20dc46e4e3ee248c1d2bea16cca1ad4d732e221a216ff9cde82c2b9d7771170b49386d344a01803a8e3e8c144ce13b8e322d1c1fd86b0f589fe84bf9601dde5ff3c82758d828d7836cffbcd90b44c193854f2fa7ef9848f420b3cebea900047f23fa8c00f694d6f1f35048fecf0cf2111c60e928b82aa6e3ec80fbd1b83f8b9e71ff1cf3b15b1c5dfaad3c314d9b8b94eab7b81581ac40c7729fed40b3ae07836da35b3df86afbe0836f1831c798cafb67cca602fec96bbc3721dd55b54a9ebb015adbca9e8321fe646bc98e45f830dd07359d87cb6d71729af0db6307bb6182a3eb004fb0d8162d66761d277139f6238f1ecfe4f3bee7c5b9f40ad17d868771fc2da5d37a8c88a2202a0db78d5d9eba7ea8a1271afe4f111e096402085e99017211a48da3d7c61107e77a9ad0bdecddd2e3f3028f3490c581d59af34d248cd7ff70631d60dfc9b9f9dc8a65b092d11034e7bc28b80101ec7d0957ae9cb886d920ce153a9ef2a611917b7be0dbafbf1373db93953c75e67b4d03266cfe4997995208388219157f128c4682f644102694a18c04" + }, + { /* i=4902 cDividendBits=1171 cDivisorBits=742 */ + "05d8587e9235fed0a45af4f048de5384df774a4e0541aca2496f0af0bfdc8546ef2c51986ffda450962a988739c66a1a164a7441095f7d5147117f54369c1d0c054230e23c68b762d04bbdcd272c50273afbd154ec128c62dd5579df148d3180c6c33c05ad8a4b92a88dd10bd75eec2c246fa20ab11c2ed0f251ad60b45b63e753d71e00bd8aa8e7b84d0c925c6be5e2e6ac34", + "12fc9fa4f884d6d3ad3dabd3eb8f87e29ce7b250534022ca37e2611ae5d1e90f9fe9a4992e7584914396d8c16e02c4ef9771a40e96c390063775645864467a7c7a4c36359b8059477969b90ac6f48134215a987ef4db32ecbd5a84535c", + "4ecf4b463947f85c15d6959c7cb8b08f14fb7aa6a563b0e33808e5f126141832992b3370794380c387be9e8be13da8d2c55ac1367b75", + "0306b7468b20ffad70d82a8ce9d7b9d12b7996f17805803e9b4d52783cb4f543fc8e3fdc9d7475c796eca052e77f96c0fec34701c166c327b6a9cd4f03f7356d1bf65b58a2d04011251f5b13b8262849db398f3f33d30549c3fef75f28" + }, + { /* i=4903 cDividendBits=2694 cDivisorBits=962 */ + "38583c7276dfa841ddffe6820839c1ee40cba27ccc0f1e8784bc358dda7f34c03430536087d0e21d64fcb70f84d9f67cdbc65b1484f6af06e0ebca4fae608bcfa4488d76c8fbe8e5a44413e26b844a1f83a87d3456bc17135b13c5a0177e62b709ef5f6d6686b23978dfe90b7bf553bd8332bb5662cfddd051290d565566ea22a7ba4f740af265ce48011be36d53dfe8bcf053c619bcf87c28fcb8184bb10f323e8546d5e728ce6747dcb1f11ff95e04b2fe17b5b527dd265e82d977fde4f09a0cb96a51c48505b471b8600b39562eeca72c76d0851553732e016568dba9e8c8e8d68eb338d2d1c9fa59fdc27cf0493db8ea917c7e0c2f9956925326716699e6970326f758c01f6085015d2189b8a59687aac697fee21bbd45a582b6f559c8d8db969ec8fc48e0974d6807130f3e1265d52dfe932ed442c1099e540827b122c192ba951bbcb1fc20548c14852efd1933e3", + "03a9743a2a8c15cb947ff3c2935a595490557ae79f1303ace243fe5a1baa0bab9a019402814d18f7454f351ed3e42b77e7d5107f774730674c1808262e2d5b89887a6fb9489383ace0f6c4d04130dd4b56b10fbb588ade7314995a941ec67610d4d4952f8c266434e9530b7a93659e84c83564f403709ec74e", + "0f62f8a6e1becab553b51f9ea57a3cb4c7c47a67d0aa6bb6378333824f0cde543f332c31d9c522e58b46df8b23c9e29e6571185fc2792c8e5f4d24e648bfb8c4af0ebf989371661e3701dde80cc337a4548e5ee25f01cbc57c69182145ea0a94b51ff15e89b182a1cc60edf7e5320e3cf4431c535ca6f288eec6fd685f38c1ad05079af8c2e31af30605d088da4334857b9a843145c9006d0998967cd728402f028a38642bdea7b7e7c0ec23ddb8746fe0c6e0b8687a206e2f23521980a35924fba68d3da456844a64f87fba6cac99eb5f2995e0483bd9bf6f", + "0280d7621dd7b691a86540d73b45f731a70355cd8e49aef9460b73b011de067c81548f103c9e4662cc2df66b7a4b080338e20fcf343312da8b360b95d7493990df2b91ef6f0c1095f02d61a544ddf12d6c1fc17b65545bbbe98dde9b2d7f530bbb07a536a816f56261b54617cdacbb791557eeca34c66f9711" + }, + { /* i=4904 cDividendBits=1829 cDivisorBits=733 */ + "0b5b141b7f7456f67287aff44c62c20938af89c534450aa93a03fe32cb671c1a8192144c70f28c5661ca479cd302eacd0a4da556782c41d106120f89af6efb76f83b1b4b6eca2d7adea23048d21c7789e36c262825a52bbbbf615595664ee1fae20528a9262748e5be87e9ff85cc79a86197709098cfa43ea9ef80a81b95a9f0dd797a33770915fc00c2a444008d0b66105e4157c80fbda6801f49b1bc928b8d3bda733e38e03502b12e48bd5d0e3cda488fcd9c3082de546a38b184eeb6c162901f79e5d20193a0b5fac7720fdcb05ee627133819802f3e94b23ee502cc91d53be7ef96ae", + "1f930d0d2dfb77ade350950b9ef52300969c43bfab7f2919ecd2e567bb4972837608ff30db5e2f1ca52f45aaabc3aefbfffffce67317170f112da6659c14817514d7c7c55db58793c1a11ee790c5d5ef57469934a9edc3543b859c19", + "5c1218f3b3f596be21971f5d629321b50d03f03f142d60c3021e31b59524ff499d842a3ce108d3e903349a17d47647edf41492b669b6ae6e2311818cf1fdb226e0325e55b9426700d093eddef8fbc8473077eca3fba977ecc9ca7cbc22f325bf8f152d3a8a335070e4507bec719ea89e42fb576abadc3b3e68c271e4c2b42244bc74dba8065230d1ff", + "046c5ae5652decaf27b1fc88b8430d1724c0909639eaa1222a3487156e2f844d1a5c82ac351a8f74e2f5c23774c3e1acf79a8da391f6f94ea7d3e1f24263ac14ce45c898a8cc6ee746f0daeca28b48d6bcd9ae3fe0737a1942b8b0c7" + }, + { /* i=4905 cDividendBits=1295 cDivisorBits=1007 */ + "3212cab405fd67065c66100c9ca359a12aaafee7f0dd6e2763a3bc11c2209c03d9854bbd0552f69c3afbce6736684a8bef5c52fc8db512b1ec9e195270ff7741416ccc3957657eb6fa179f87a0cde165f0289681eb2ff1be33ab7618de3bafd591b1110540c03a0932c5f59e805325438c82b279c43ce4eaef6feb2e7c303914da8f291c0ecf9a66b26765be205807e349cc7a07c3d77552b6566d73b9dc046d54f0", + "5793d79165488dfbda00af82d38b8a58da5ac8b3d00b54a4d698bdfa1919eed40eceb6f5989ffc824e3217b3661d787f641985c943084e833d0952918569387a07e742f9b85f2467728b3283326eb8c9e7e74561c271a46f6083d2a3de207e2e6960baf16950b7c105c9a0129296b4e2255b5dca04774f458cadf588ce7d", + "925eee2a63e45ba8d0a598f32acceeab4aba7adb52a1079488d07f882fc8abd49e652584", + "35ef394d80b8aba600d935e8b70666f191c0740527eceb082b74ecf24a42c09dc7c0681915c0450ffe522dd7519b020fbb52aa0459551259e218037e5d02729fba63ae7ef28b6d44e54f65b11b672d5df42e5d7a6d50ad07f96207775384060013c1eeb338df37d97c58c33e325c772d837511499dd4a6353ebe06b9cb7c" + }, + { /* i=4906 cDividendBits=2040 cDivisorBits=1533 */ + "29dbd074470663d71484169f916cd56ac81fec233e995de6bfea9b1512c95b2518031d336e0e191b6e433d05116b36eb4c87b21756244ddea5a54aa2cd321aea3f643d6495e9a9a851e5b6b11166458afd7f49aa042e67027147c0df8f257e6fbc3648e46876c66775ea93606fd7e93c391b18d09ea58734150ca4657ebb293419052d715ffa382cd7fd4c18b8173049f3174977f86b95b9b68dd8ac1b526e67fe029d1283d8cbdc0e555ed4df044e5f654828e84b0551f8aba6a57750314358467a7fb35b1552c2f557a09a3e37af964344b750cbd825e2838d623802e20662419b37982a21a0866a6717560d6a25a3325a1d230aa72fc27a4174d5f4fd06", + "10ab6d76df7e8e11bb53b2a61815964b1197b936b094ac5b2323a676cf64d2600123843e3bf211a417f1a0c9b2b2e39072b0820d9d2ec4d6bef368c1f84bb9437a1ec17597ef8424a55cfd423f9d7b00ad46f266a5d5e7ee3c468ee8e50da8a4a7f0d3b9caaf02f0c2360fe1328df938e766d48f11fa979e41091c2da38f66a7536044b4fc7c235654028ff4324381056ca92519d11a374e95bd58ba21feb5a4d1aff7d9579f7631fc757e21e10d718584465593fb8cbc510533a2e8e055c287", + "0282d58ee65aa15f213495dbe350c43fa97614b6242af2352a58bb4f85866209e527b57704e82309b74d4d2232e7e76a1a02bbc760e242bc35ca1c77cf85e71e", + "0e418d70c1bcd193ca37509b5686e3b159da3e3b16e36ed9e33630545c849210b2ed692bbe5827eac809ef3b07ae1ec6bc52f11708b822e9a701dcc3d2461b2878a26302bbd2645eeb697ad4da8bff174d742ae1e8e6899c27b22f3da22a08b46bc00c58f260a2a8adb3fa5b0a4033702a8e32d0eb6354ef563a7ebbf8418dbb32b8c5301e6e5308c45279d55780c8474a4fb2de639292c42b2839bc9a283ee84a78a0e356eedf7580350b3e0bd6bd5451fa673e47fe64928360f222f03d6034" + }, + { /* i=4907 cDividendBits=1584 cDivisorBits=63 */ + "b74a16fbb76e46ef513d629eb1761993704fa37fcb4717feb33062178f839ca09caec1103a5302c8fb931b05981d6ae9f358e160f409c31ce7bae8855b4647077393355838be03009ae8072cdbbe03297742ac174e36f9f9f882de75063288fd3e5ea9f9bb283cb40f5177568c19b5cd53122527f94ee017c02a8fc5e8b1336c5188127a3c42fed4900c55f556ee4c17170b6e97749b425580d0cfbfba0440691c680544b291d87c996fbfc173b56f92614b2bcf3653398e6a30864d8ebe8da480d383ab8a46", + "75c9371bb4359394", + "018e5e0770d1d8a0db32bd92c79eb69ac7200e8132be3a179c12d9b695d65d36dca0905edcabbd797491b6b81abf46a02d6a0210bc15733cf90f8907c0462c3fe58c51f0ec6998098c17e45abecbdefa40f73dad4b8a6df041230c060dc54c9e8ce083de9fb2afe619f34502392a0deab4f1d8ac99c36dcd9fc37f957df559927d8de0c2cdfe7f4c671e4f41b9e45d840f0df1e1f950e8c566af534249f1bb6840cb417586611560f47853c59be0e2016cfa13c72654340eef9c497a78510f", + "0b2b3b894b76109a" + }, + { /* i=4908 cDividendBits=628 cDivisorBits=365 */ + "08ea8bf1818937ccdf709a265b0efc417e31b5958c6142ed14d9dc6c2c81157c911772690e806870e4f8c8baa82b9c194f59b14593ce2b3ebb84a9ed0c885cdebdfc1c1c093effd370ce92cd877830", + "062206d8f4a63e1c53dbc4ef3af7c8b534ff2c2a710faddef6d8129350347049146075b94e2ba41eb3657ee679b4", + "01742dfaf27ee7b11cad9ebf89c5bbc28f1927a9d8e321fda6609d2d3a7266fab0bb", + "059f132605ab827854bae966e44001f8ddeb919a692dae165ebf34c10fa4c74e9c26a7b4be3ab127407815b8d1b4" + }, + { /* i=4909 cDividendBits=3958 cDivisorBits=110 */ + "25e862714625acc05f7d5a89b530d200d57af158fa2aa8cd3586457c41a13b203c08db6d347330c5f792d459625e2c10d32401d8c14bbd086061239ce316b220f331d19612d7b6dc15a40087c6ce5cc5f3fb4200ce853b061ca088d9e3c8269c31497463bc11224f03b7af1034f663b1ae4b413cb2de463b8aedaba5fc08787b28b40f90d01f20552912c086b74329bf8cb542ce98909647395adeeba2c24a6b0925b3decb38661e22d4e5ffa9bac8dbdcb278263c8944d8ba2bb00dbe262f7fb4365137704a438ac9623cbd9eb8fff65467a7240f57d581cad01dd34f4ecdb7b9e2137ed0cdd50ab3ab549b261e97271adc618b6c1c78bfbc93457613bf3a1d3e8d2beb1e38a12603ff82475c0f0972131d931e62673e1c6852020adebc2d41a8657542dcef2c570be283742067658a14aa12ca74fa2fdb159e900ce8ed549cf4281938291c65dd3f0f224d6069dae5720578590086c8a91ffa8af053a48b0cd8513565b55773b93efe38ad6e438f15159775ffe5e2c193e397c2105e5bd5fa250d9e7fc07096bb3623b08b1be3e5827dd2c625cb63a049ffb6eaefd26f547111647e1069bd1f59107f07526f7a2e2ae552a73ed2fc244a84812af9ec0b14fefd10f4aa8606c59c8a35212e781f9a7282b0bae265bddc6a6f4674e29e7ad7b3a77954376fe232b4cff156bc66c8a1", + "156ac53e4e94ec1cdc027041e46c", + "01c51d4b88362023d499cefe3a2c871f8e84faa76688d86b1c67b34aff9707709061b2737f893e55edf0810133dd412ca20fb91d8cba647df8a73b59230e918d544c3234ac9c410cc8d84ebfaaf01290a6f65a491e3143a03533c720839f7be17929335b0079844d80b5c6f39cb23df889768e6afda89950290784c7d0a603ce66a5570b8057c1ff0e2ee0548112807c4aa825b5bef2b653386adc96f30fa269cd1adbb53d3a27f78d7bf1979568973ae2786a8f21144176c5b193785d7902cfd2d6401a0e3571b22f017fb7527709f1633eed3835f87731724a722bab79c535cb81dca09a3c2fa5188dd366fd93de496da28b21f6b3dc603d31a181e599604f4ce7dfab8990d301c4734c83e12583bf801badde37ffa09a70379fb88f166727675f43ce2fac9b48b3912a0424dd2c73104c535160fa3523e642a48d4f3a912a265e55eed780c666e33df30b062ed741c150fd0730580788a538c847046100846edf7830aef8ab7308d0ce855087720e465ff9597ac04850c1bdb9be306d53f146e1102e31c0a631b7409403f19b220f513c2c1d1b7351243e603acd5d463120687d8cea403cd7a296a4bbe185676eeaa4fad0b5f941a060313732a38e73ebae320c21bd6dbdef5a8e768449163da786e91e21c976bb0419725e450b745b0e7af3f9", + "0d03f49620a6fd0966203d051795" + }, + { /* i=4910 cDividendBits=1976 cDivisorBits=1567 */ + "f4a51e6ebd8382cc0195aad7a44952b6b981b1051ea87d4a2814ac37fb9317de76a4d490c944fca8d7afe9affbaca0ccebb2562d85b683408f971ca6fe19f006b6a33ce4ec7c2cca8d05ccc6ccb62e45daa89f7090ba66973a733c7aeef82ab2a261ecbf5e6a04f4aea2639e7d507a11241d0c541272c7383ceb22f2ccf0951293b1239d4290708e4233e8ec4d41635a09f1c05bf840370fa37e5cbda6c8bcf6e6255f278770f1de12ae17bb9421e50071223237d8a90b5059d274b941763dee3430b6c206b8521b10c7b968ee18b23e79a0b41d0396b39725afe4cc44e9d9942a3b16d4f637352f1fd87b3ee4adb308db969d5b1f7cae", + "1ccb56f8882734662b6fb02002db4369467695b986f3fc0a94e53e03450b86321691597f8868e572e5dfa4a5b38f4d5211d64e9835723845ce9a2581b64b5e8bc251c8f35a559e80bd2b58c75bde04e4e70cebca3db46193a3444599b0244b65f32d8f14c0a376ba6354a511bbfbcd3e7030f3f88fa685cda51433ed79411350a96561f4faa4282f11065bc92207148d19e8290438bc57f2926f977bcab07209247223da8568cb393e7d9397c343f557e48e1a53bae0b792fdafcefbf52c48d767488334", + "087f0d8ffa9fbec2eb0aca96ac804c656e37e62a7960964e33d221b2cd055fcc0a5a0b5896e11259a9d4759979c01b1b864bcaae", + "02adc5c0a55a8eb6acc41252727dcc8704107fd218aa6adbc65846e78211b7530f05185e62dbb9830037ced362b02f099b37cc612b76a16910a224c90cc8cc98b1960126017f6ee8da2c2d00889976bd32c0619b430eaab38956947c9b7a7bb0a330dda6237a75de05d2a50293405a1bf09f9b5998202e508845acfc447d47e747731c2b9032d10eac9517e96ecb84eadbbef5601b49be7ef70eec1e1bd965ac9a1bb729e4982be8258d333fc2535dbf2eaa74f06bffdfcabfd6dbccd6a0934e48134756" + }, + { /* i=4911 cDividendBits=1110 cDivisorBits=1032 */ + "1ceca4ffb89cec9d7d6baffce63a2fe3ed797b31c9de3f245caa09847007b523041fbca083eedf4943c76415d6d8099b0538e128f79ee726fcb780d3a43a56d1ba481a5698fd1b9476e50fde49305d167c8c7fcec85003ee7fa09124ce001cdbf7b2a01b6817aa8830fbf234567f2366cd57d5e5ce4f18ebc69ddd3d0ec98ff5addeaa44e6d8e5ac2c9f3c", + "1567703c873d51a8526beed8fc0cbe72b5e4ab4f3926495ff84b6da9529ecbdabcd303076dcda88f36a0fc9dea55c9d51c7cf9f3fdda2152efcc97ee69332a2b0ffa47dd1e0fe7e0ef153acf955d9756aab97d2cf28f4b8954679a41523e935dce3c7df0c454d63caa60a95d2491aaf543bf9afd8a782b31ff448bcb0b31c4d000", + "0159f2236a8f16e8d5d914", + "07159931c86f03e0bf78359796641b0e7eaec378a2199272b99027bea57a40243c1ed63727866f69bb734874c406a2340c7c0695ec76352d1b754dc863aee9b3a122fed24aff07a1c75fc35ae29db1c8c39914ad63c4763452bb97f111c743a2fc7a7ca147b87fff2b500a2bb7659611ff336e111c282e059afe59d994e47c5f3c" + }, + { /* i=4912 cDividendBits=1910 cDivisorBits=1209 */ + "23a7bc1b61dac2a59b2bfc4fc02a89b8f46f76dfb3adbbec84b0d57eaacacc110db1f974fddadad0c2e05056ee8b7ba7c1db04dd925dd55b1e9d096bfea5e6ce48339726d2126d776b78d2a9a6eed0fc4ed4ccf90ac76d240d02d51e9b383ed3e296935da398d3dd21e51f467f1bf855dfcfeaebd0f65b3eb547e75ab4a5e9cd775486a16cb0452d119917c90ce3ccd85bfbc087e370199a2260f18da5ee032055656a7d700a498b26ccacf97388c45ec3b34ff68a23c47b1bc946fa085a510a56fe7ea39199860fda0bc951dcd637b45b6c46722a7f357f7d64caf2a1e36c6bb719cf1440716b588f994ef451a2a8", + "01f694d2481a07052ffe9e464c41eaf152bc1c5d947f8679d31395c6eadd0469e101e3bfc714280f58d7f5133ce99bccb39b96d0fe3438b36477b4463b50d46b54d28392c2e004f95a4498e394f4d0c5491eb57331c105497af68d129bf5f0104f1d9ad96001dec9ee2525a85bae2f72188d4aed01fd022c8319c8cdc5f788a2bbc01652a448df910203f92ab0ca58fceed6f2d5f3d47f85", + "1229659cd864d396d7446405d1e9fb6d8dc5f072f386cb699e1aeaf2e12dc5cdd0e09e433043deb7ba0751b1885227af8b823e16a1d895e18b0f10af847f6f7bb9b6b53cc6606243c87598a932e23c0ecdf3c0e1e98ceb45", + "0128cfa1f1873b8722adee1253f6715212125e071744751b0e7a242a2083f99a265a1e644c014d12b02ba351a7655fc805223f982b4f602e609c164a5f71b6e7cfa7e0acac0a856386281bb6b06301b7b3a9737921234eb5e3ff960edc80ce90d227f1fea5420dbe26f8f6debcfddbb3f9e3b95c2354f4492ca47843d63b6e22c98697c4bea3df8606c6d14927025e6ae6212aa561402ccf" + }, + { /* i=4913 cDividendBits=1206 cDivisorBits=831 */ + "1fdd87d6297af5d8f23175622533a0640bc33e0ac12bdd91d0fe6bc671528375c862932e888005b4e695a4f5d5ce491df8e43a65ef4e3d3307d9f42ecca05669903c928c1ce8d7909fd3dcab5655cbbcb23203347414e9d9c93266a0cd5b0c9271abd703a1fea8ca591bd167e08cd3792205b424a707833c111726d76264fe94f1216c9ebf1b7c13ecac0aa482543eb00f6f60cbb962d7", + "6c19812f62e28f5765cb1ac1a092e8c6b1d4f9bf1d84a6e826b49300fe02a9e2be8398992514d63c921b1c40bca2c454b614248102cf9d6bfc3f50078609e0e47c4207897f9579dd7ddb604b6ca14933c47a0979155c45fd375908198c8b733576f79d57d805a49e", + "4b768c468976b06cadd9a68b3bc8295dec366e18beb13d3c096d33e8f598376555ad2558173bc1f8e7249e6e097ab1", + "1c2019264f1b0901038a509da5c0c9e6fdd88c21206561f6aa64b60d235903226f8cdc3c1921407b99ea0e82156949bcf83d62bbf6ed25bb0e9661d86bf128535ef5b102043797854aee2d6cd39385f1eb311090208e1df1e4d8677667503cfe6dc2f23f11d14599" + }, + { /* i=4914 cDividendBits=555 cDivisorBits=553 */ + "6c99dc955d65d5187d06bac8234758aa3be417d77ceefea2b82f824557368df3fddb23133a8195717625d27e2b7f12ef5ecb69f930df6903af8a7c32d8890720cadd2c8435", + "011609f697c0e05621711a6f9624027f602db304d5d3f5f10994a9125bf75df94086590b3f8c6ab6617a60d8b1758ada122c08c13d938a47bc4dfdd1487acee960c1f14ef89d", + "00", + "6c99dc955d65d5187d06bac8234758aa3be417d77ceefea2b82f824557368df3fddb23133a8195717625d27e2b7f12ef5ecb69f930df6903af8a7c32d8890720cadd2c8435" + }, + { /* i=4915 cDividendBits=1167 cDivisorBits=599 */ + "72fe323c47f1497262678be74a80618fb50d8807c314154d5029106320cc3814dae2388d2b3d76cb182680c5111d70a3e7807669549836d8653c31dbd294dcb613c0543e19c0084af3fcac23bc0423031b6938b3f7163a8ed6eee32bb506b3b272fc8d484cbbec87fb35599fb720bdd1911eb899f2d645c256e91996c2c857c1df3f32f48c91a50221802024258fa34cce64", + "2dd305f9de992eaeb16680e6b5a4edcad5fbcbcbc8e7d4f64b07f5a3b769446390b7a82abc5b36ea82cf5f610e96f88a1d78888d7c0dea83d193c9bfca7ba4ac0c2d321a4d1496e7569127", + "02826a15a148dbe15c67b94fb6a786eb561db3915e2d26f0c67559f1673e1d96ff3aaacdb35d58906946d70c20c59dfa4bf4e0733360449bc17f5f1251a3ffa3ee0f0b613b100958", + "1a8b1c9399f4da8cc80ab8e22d9cd79ea7d4f636d42092a56a02af734facbdf95009a79cbe1e10eb52dac8aa6193393ad17917eff714d63727755758f36da8a37fd5d22bd9adea030089fc" + }, + { /* i=4916 cDividendBits=2124 cDivisorBits=663 */ + "01d3a75b5647f880d6ab861627f26aff1163d753621b220dbaaf8a291243d875de1fac3f63b3c21e774ac552ee48f428a2e5460b77c4bc40e182a1ff25465f518ede09a81ae065c0f9d97760a63dcbea85f9d5e518dc2ceec4a22537cce0c6b01a366c7bfaa6ab0a67669d11b140d10870eed0f31eec44e8ee57744a207ffd6f60dac589e0221c4431a66adab53948642cd1ed7c9dd5749bb50b919c1c8faf455384dc18ccbece803a011a2b4cb3b9477927720d5e9f87f14d39c75eee6ec8ad28b6bcda28f55afa938100740cc8b5d42e2e900fbe3060add821fa986351bb01937fade5561c41062afc7d7ac273336b84d969788293133f886054a40c5155ad974e690fb3b10ee811bf", + "667856a808a0eafa2293f9dd5a461b952606fa6cf47a5ffa5558d208993ccb1a0ffb0fb3f9c8ae3ec9c02fc05c16e9fc492bb989d49f45face234d9b28905d29ff11d656045387867a6ec0c48818da8e077d96", + "049055b8e6bee49c8dd719a356aedc65ea03c3d01fdc6123bf14268a8eef5287c74888762afd180987b866138e605c3c4bce06e05b0119f3a2dc87c9a6ac9dab15582bb81241e6b0898d239f7fc659c19e0df94757660ede30699cfe3a7392446c06240e8fddf8ef4ab92459fb992e705a89390c3befb365f12292174a186334451a281396ee3c7d57010a3d0b10dc3c5abeb906685753a0782c17b332e179a37fde6ba10b6715167da9fddab7f531fe429cae1f318506", + "0baeb9382cf8782e8cb64fca463af5645adf538b6b3401b2b05f802a8d1084ba46603541ac04121f58ea6e594fd55c710b27680d2300f975df06c36323ca1d7a58b54292f3b39966cf084791a2b72fa2c6323b" + }, + { /* i=4917 cDividendBits=2390 cDivisorBits=2231 */ + "3972ce3c33fa4038c45f63869274d96aca8fd6f1bc8ccbbdccc068283786f4ad18294a3902d540bcc049c44934e2983788d2d4e970fc04a116bb0c26ecf6183299deea67158808f371cb10f3228db6839931e9edba60bc6aee24da6397bf673c3d4f9f1266f90433f0342bde6269e01ef67bd3fc2ce145d1e6e9405b5f580451facdc7165754856b9e864aa465e7a396b56ace6675ac84ebbac046292c834a4780d6dd2e2b5748fbdfaabf83e82412d4ae4cd100d7b1e2d74def686bf349052e10f1457a23c24417bef0b2b65c80032ded24ec2268a5585278d3e8313249e9c538f89a9059f0d471f2b850e1027247b8a2016ccc40c6eef8cfa9851c365e69f93c4beb6043312b04106e3025cfc7ba8a1139ef9aad2570969b24db9bec44d7f99d1e902692ade2815a3b1d", + "1819b59c1031f7a9ca004a7a216b076dc57b1b0e15f5294a48c00bcb4002b466b94d9dbc0a7d8e2d1f5d73c91f5664c7ac050205f075b6a053b415c48dae8a34a2a7779e51797c10866f38364291e3f06854ae8199b3dc515110ca6f92d0619a9e25c5376ca9df2870915bd5761c5485f2a54ebf0a6cd154c910180d6dcdde4a5b8f2b7b2bd54ea841301d2b571577e1d03e61a50a839d33730988db18082be2b02b0dc03631964efca8cfecde5da4eab9e7ecaacf51a1171cbd6f25d1db72d09f652e2f44cc07a33863567379f8ba7a49cd544602ea2718caa907123198590959ce1854e7b61f7cf9d2e40fa25d38085f0010923d06916b063b913e2031766828a92ca059ee9884649bb22b0c8b3418070d2013dc81f6", + "02623ae62b7005df8cb789bb39fe82497cc55d0e04", + "10d4e847f55889948e91b393d9d30daabc07c3c16368ba4274a9abbb8a5c10d9bcc7fe1e1dd6c883368586c42cfe8c93407b395c2ec388c3b6abf9d8b134f2af1e4454a0c471247af40a80b6bee8f1c8b39a222096422af9ed844190ba079d82fcf6a25c8f6d25d616868c70e2de25fec90aa7787c45428f7bc693311cd9694d8ee8b64602a115c53ec63f030c4d764f68268bf583a272eeb5fde523e892aa7641cc7a027dd3cbd047a81b94970becee31498013d216bf2e441eb015b0c05fa6ac2e7c9c65fe31befc179d8625905fa8ba09e9316a0d8046cd5beacb03da48705d9a657181465c6609f846455e13b5db1f40663febedbea9ed6e092e3c1c97bd4da8ff57e0422d00cb593feb8eeee05d04b8069e6ebf45" + }, + { /* i=4918 cDividendBits=3937 cDivisorBits=3733 */ + "01cb089485292950c9fd7a2f42e938f07d4767b71cbe3b11299b439adf13388174db590644acb2c90771bd76b422dfe4de78bdc26163d2dc8cda989cbd00b67a08967eeaff18f0bbca1e50b8eb0b009acb2a2f5172f70924d6faa41ea6b0cda5c0b6a41c6d372ccd031054bfe161dbf382cb9b335affa2a156250c68d028960798e13394c96a5838f6a9da1b34addde204f8a63cbbea3fff23fb145ee54b0f032d0c76ebb7716ca39d33734419b6eb55ba63c9f79ebc4a21079023388b9b3aedd7979cdd903c83a768d869fb4520dbff1d208a95bd56202f0703ccbeeeb1ae1a535e467d7605a01b5f58d9e6a2723ae71f3ccea5c2682da3da4a495280db46b7227d0c160e11e0b666c4a3fbaa1b6881733c914880c6e6d8cf5541a921e7364211c7a2bbfcbac3f3f017807f46fb36e3a5b3ae95d54d787031bb03906975b4ff994884476859c5f7f2b7b54d7007321c41cc7f1b66260317ed30080aa45d5b9ddf9a169b74d8d3460dff6014880e970eb4bd71fe205a5cecad427b0a69b57e24511c51b0c2ff342c292a9aa45ec0031f3275efbe7dae9bbc95f9110d307c10d97ec8389f66bffd0c46f3efddbaeb3eb9eaa1377f865d11a6c9dee145623ac0ae041a7aca26314ee7709ceea0b9c684fad738595ccc307a58820f8b26eb0b32795fa95206e2f1f8a28737876a11", + "0dbd68dd946428d2297379e3f8f556e84b87812f43b43704fe154d154b8236084c97ecdb12936d2b159e20383bff7448a36cacf2398b47cbaa7cf13a55f1ca874e5bd6be0dd1517483ce48b37895e4130e649a97b08fea7c237f0a6ca9379cd77035ca00589c7e59d9e95c47a3a5426082166e825c99de62dc31a5c1f4f10c70534e94b9219a0f4e05925eec6471fa35ec60b7103e6053ab2cd05abe6a9759e1ad2f8939af416831443af3143249ffc916f3e8cb3d6b095c88163d27dbd9f778cf3f0e4768c673b5808e9684bbc5b8a2665b6604b2a900dc1d5f9b491ed6a5d52f7e242fd0982bb9e69f6d16f7dbf27840ddf16b8039956d548ec406e95b3babba62ec69a780cf00cb5c123138f29b97b7445c17c833f7b674f1965405635306097b2bc2493d88a387424baaca3c69b4935781cdeb312f751d602a15da118cdac98a8a4ac9dde2cb148c3aa0183f93703a296fcdad337c86030450465e331172587de886a978da48230d52ba262dc2b9ff590d0820bc3c5a137b3e5a0f40484a5befeecb657ee703f63885b7b66244c77f64eda15e6b844f7e1b3ca0e2315771a96b7938f4a0997a634f3c996cf8cbf564d1e601ff5d3e6d6f2d5c2f6c6e467469cd59fde4c424c55188aab427806d77c0a5a9", + "2168a9d2d4a42dbfd799cfc7266bc56189257e213bbdb9aa2fc3", + "01ccc7bd7d90f875b124cb5781c1051742297ab3492ae94c7c945425c158b0cdf6e601a2a9697f7da50fe702587b8ccdcc601adb9a10432201f98e878c3ae87ceb19e32831ebb03c5c1091bf57f3db7009ced90582f8444b9808c7ad1fa9a26e08c9147e8a7a5ad4166b7552bb3cd917337c3948fa376e3bc57a9b0add0adc89934ccf6ce41a30cae4dbbac72c3058c2164196dac109d28f9e5081ba65553f9e2b328bbfba807b8c7e9892f9127bf350600c45046f6f3b282da165bb63dbf499a418a23bb4bfa6f7955ced868e748825e551f08fef280508168d04555a4ac80f03f046b0145fc98326b24c28a6e73a0bb46d606499bc739b45949a65298c8d400c99a426bb135dec80061a882533815af313671338d862e2f59e24b22eed8fc4fd446b9c1525be717112afd6ac5f9c1a50a58341659ea6b0b0558f34704656ed5bd36a615669f1528df7c55e1c7e66187a4a75dba2844c84fe21767164b2f35d22dc6c463090dd7f096b618e7277c223b55c5f90478c185078fc68e5a304477734ac2c42ce352d12371e04ecd8a0fec805f39aba7859c948b02ea31d5f8e0ed1cba20002378e1fd6968091eb96cc540d836ec0611ed7d46dcda4dbb8c2041888f6f19491005d5c823ab887bae0b7be7e253356" + }, + { /* i=4919 cDividendBits=4020 cDivisorBits=2330 */ + "0473f4cd086405b761f72da457976019f888b818f4ecdf11a647a7c1c13139c165f2173d0b41088038c238cd30c39dc44575864e9e7b3dccc3d13d7bed543ada727b01d2a6275af55a6f5a72a570fe313668bd9319c7f67745381589f0570b7141797d884549c1f8f64d449f86b9774d778659cad32493db2e852ec209dbeb0c9e363fa2a88228009de1ddefd307c7b29ba307f27ea79323eb88f3b9ff1d6a23224860886a1c1bc21dc4f12a752e398e933ab332d019db024e8c2f1e3e0692bf33337e622eccb30a129201bc462e38c7dd5a0a8edb2e32ed5e708f1bbd34a897f8d3e97dccded463aca44257711520a8e9a531d5c6336b7c137044a69bd688a6c93f43c42e822b60b1f674f24c40855c60979dc3fd6ce0f4d8c655736313eccd708d9eeeb40d35d3523a02015eaa27a36665dcc8d0fb4db9e93bd4a033951743c1e987bfccf0abf617789974d770f1173a15c8540c5597050119459b9a221a66b52a43ab750a74001b72088c2bc4286fe91107fb5b71349998fca4d892b53d0e92c317928c539794a68640cbece7a3f72ac8a88857cafd4b3929d396bc1bf8ef0ce160f5bf63d06e9177c80226753aaaee74ed7d82eba55f942d401fa1f6f43c8a60f576817c44828e32a0bfdd19f0e2ecd4de1b63308bac8172ec193e3807fab935d3a3b275989c41a8d5ec26ed077700f20f54283203", + "014beeefce378bdf68ac24d5aa38aa863d25c45d89c7f7ad94827c00b2ecc2292e1a906640cdfaa60b8db46a3efb0576e68b683b6d4c1c9b2fe4c85899faf4c1dbc79399312ddbc5085971d6a97aebeef168bf1fc8f5470463eac75c449ef25889006a53ca6573db285f8fa37748e95a0ed2553ded5cba2b9e5d098ef4008d950195506de0c29cb15b1e08599725b3db4e7f658791e768dd00e0905a8b4d523a9a2966605f134def32e620e21c68f44788b416da8b6ff844132a86e080b4fd1dbdbf510e0a2e6ba0c83a77594d792786306ff503ebf8f5107fd05099554eaf9b33d679a40fec854ac9e09672ffe2b74f105e248328c77ff87611786981485bd195a58e5d8414f47836f96717708df5f2fa6aa3bfb0ef451f9d29e2cfee989972fc37e040", + "036f2dcda425c05757cc3b7851d232acdc540ed7f471e0cbf52b4caf876904c536fb7ca5a037e86e782c49886af0c89c65ba5bf93695688706f1088740b823baeab766c65f2abf5b7926db9d4cc1b7869b7c34de393cd57f3c1fabed9bc0923dfb591300fc7f0247655a2c903ae7a25ab201330d714d75e8535eda932534950fb29282cb133d52494991cd5cde7e6f4886d913e193cf0216c9d09123681d54294e266f0b3eb2a919936c8581cdfc2379d367da34644a8b653a2d5edb49f29e7a15a53136bf92305ddec4204d238d60b901f3d7b3", + "72f2bb1bf4798be8c8e80b4efe06625b989f7590c247985f64cbedc17373635e5d5c42e5825d31a50ce5dbf4869743cf8488988abb9223831770a3ad5650d437e67cbeba3ee4f94a45e28b3a6d41f592dcc85f107db668b94ce68892f0c9631e856f75c649f4840e69ad422e2cf5252d926071bdad3aac222c187ba5cfa6e66bdc6618d2dbfc5509e2ddfacac2cf9fa1b2fc4d3932d6fd6fae0e811b04ca77b31b5bbb0a8c0ff1eaa9e97967fc464292fb036175d85bd6d1d512905910cdcf30cf20ca8aa88477107b83d501b36c2245255d0029046f1a77cd3894206d3fca2f342a22b787fa79b4f78a99382ce5e930ce58244ca5e55354c5895cb76debc2cc5280766a8cbc253e81de5b98b41380104061b3ca20b7b7d2999c71e29365abef00a543" + }, + { /* i=4920 cDividendBits=2590 cDivisorBits=205 */ + "3aa6bd580ca09b19087a1ea195b0272744e1ac1c68da7916de41a9846314791b72477d4e4b44f21f36fa9231a7d7e5aa4059651855f1c0f07640bb1276354ec8a47563a7cc7224c3431424b549fd04cf79f032f0ac39a6423ee9dd9f1155fb50ac1ae12e3ff3b85c283b79017d33ba37543fef2cb072655defac4fbcf308250d454026921db6a35da8a9f36f7e16b5c6389a4e8437374bd272d88390038700d6714661d3072f39cbe219cfe92b7a0c7e675b9aa1aa0c13c38bb43b86bb3105566af9d3295eadfcce118ee04685c170abfd3ef657b43c692c527b78fefd0f81da6c18f1b68cccbd1ffd4955b2646ff2aad750399b222d25289ac592bf0f4125397e5d90306365ba850410b324a9388b02fce708a755f7f52e48a5e11499e8b2763eaea7f27f74926692ed1e2c554b92f0c81879e362df4389fb3e873d374999d69327aedc", + "1744dce9451002319450058c33c45d3cf4072505478cb06973fa", + "0285449f148fd48c873882ae61afa9fc626fa0d1a2a0c5b1df3006d81a914cf8443d07f81d9567b6999bc7c529fd1002c8d90884e69a0daaca22394ae4228cf968fe16ebc8dee4ab4e09946bb1c39aba561118212d9372d8be8d3a9e7c3e4f81f90d02c4127bfdc8a06c3d82d8799eee6bc306f77c1f0944a5594ae13a9086c5111c51c2aee70d38dddfcf5693d552c2bab7ce9ae40314e78884dadbdafe6cbb9a4edd558358b949a84204e47f02084ad52db5169d922fa7abbabd0d91c7c3160f254434c25af6282136ea384f88292a82a12fd7af3f63c0e285a9aabe7d209fb58a89dd2151dfedd6db05e0c8d4c9d270f2c58b75e249196527ab7a735bfe1d262bfd2a2d25228e2288d42939b44fca49776d9e6ae42ed8546932029d47dcc791539aac17171df4cf9054", + "0b80b84fb81296bdf29a1e749f8c031534084d943b50502b00d4" + }, + { /* i=4921 cDividendBits=3756 cDivisorBits=2498 */ + "0d5e21414171b0ac09c0e92a8bb1efeaa7c05ad1ef403ad7dadc6a5305a3c94e9ec700bb99f9aabfe94f718384fbcebf6a1d204ec9a0f66097ed2a538fcc99f0901060130ef390ca4de64f94a0fb3ca3aaa37413a408f89c54f20a62ae1ebb705e71e1e0e8d3f6452a933074b16fdb3400df7ff9bf6c64a7aa25dbe4e0a04d3c46c913d9f43d88be4b98d250f059f73e0da196d829c7301cbb67c8dbbd3f3e0d97330b8d1f0bfe6cb0981af0dbabbaa96f91d72a368ea7a0904a74dd1923878dee142588640cb587087cfc69b3e422aaaa6c6ff648f5d1f420abc66c41017a0ef1832a5629a9f3ccc9c5d94d1066f5177ae6c42732bb49bb03a72148fbc8f72deb75342a74fd2dc2a65cf5fbb440c2ef87d26e9a2b392dd51561ed0637901cc23cb4d3dbbcc4b283cfadd46b3ae6e69c069ddd5507e5a9ef9b1ab84785a0633ba45ff342e7241573bfa41176eab212311a2977a5f59cf84895b233c8f081e1c7c9c02917d0cdc23a49ce38f75f1413d596c3b85c351ba2e470f02955bca8d5c4bb335e0bd5f93081d62b44a4adfabfda3ca04101b7434d65e6c6088626490f50386eb1021fc3c8a1b28f3742935ffaf210dac588084db9f6fead82e650fd9f9bae439eba7a99f2b59a6290610533516429796d75c691", + "03d15a903ba72a135910ef6083e6c2420b5d4aa64ede949d6e802c7d22dd2ea96e0663ce77a715297e4802f57cbb5ce8f5f6498c85ea7b41fd790bfed89025e2fa325c2d509ca4f7cf410cf631390f574976339352936c84d6d9dd99c242d1c10482de4c99f3308419853d515c01c1461fc26bc5979f3d9ef7ae8a5b0050b8c7159deaffe0018e7f99ce43c3d8d2dfb54d7006e12f101e4b9e88cf02d920a5e5328430060fc34e5d1d18b5892adf4187541cc59988d9b47ef756e35dfbefbc4216159470603627fc29ccfa1d458945863e3ea3daffcba961aaf1283fda7499e1c95c307f1b4db0e78b75ac79178af8ac909eba20d039074e907d0a5354721a14ef8412e605175b428fd38072cc657021876204d1c2e541cf13064d49d774b4e4068974ae6febd754ab6ab6a137f8a6eddc41bf457e8bf8496b", + "03805d526356a0663fce90700fbcd8fd0dc5d05f57b629971d95ef5e95b9490d269e10b04fa96385b04a1b8a2365be2b9c53dc12f3c6c37071a24b836d54a8e74c0a5775d454be7c2366721e60dcdbd97cd610c6fcfda3d162c04d8da0d52a103ffb9c5b29180d41f5a4c4b1792aa1580394ba7a6eec3cf520b0fc7588c0716a162753842797864b944b2501ff8d032f8898c695272cdb41a8677f5a95d5", + "0340de05058468914903bc1a4c2bdb1d6a0f8dc928b8637552238725699f53f3a361e4ca939f4389cbde20501aa4afce7ffb32dd1d95fd2749580c36cf1ae0d28317b9ebb4180d6ce03c66f1a501aca4e05864fc5dcd2d3b1138036cdb4ba9eb405afb28f3047a658b4096e7ce1a1391697afd08f97c7a4e69adc9293837e77f905be7514fa47abef789d6fa02556a38185d664ae61763c7211321fa6b60eb85572b056b53e32a7e777514fce4d8266e48dec851666f73e42747109f2801a4cc214a94944214705e28f4ad68469306c0e15be822391e476d2718d6d87fc9426f3d9a2ed3da1af6c96b28e4f3c2076836b249cbd598c68cb340b725581c7ecb0ed7758f95604f30ab4f92f01d93c445e09f5aabcecaf5d6a36c367559a099825bbcef470690a33dda4b8104eeb9616d0bf1a5a08bf49087698a" + }, + { /* i=4922 cDividendBits=1281 cDivisorBits=977 */ + "0144274658da6c0d254aa118167d0d1a24bcb65541238fe296f8b11fbf01a03cf722e37d1fb3b14c0dbd0bfa4e53e14419c205d8bf400e74d176e25f4ac927d0a1dbecf073fbaa526868f1495accda4a3be0a75270bdc12dbaa1f82312fd870615cf42e86c01a18f40c99a7483d420cba9d5afca2991e1e5685852bbc21bd5a2fff7eb785a979925c7e0b4c11c8beee02b8354be82e6eb1d9d8703fa59da03f3e5", + "ec44aab18ad7cb9dab50fdaf2353a6db30cb5877233646ed6c7c9afd117b97acdf90f37885ca94704315ab55650ea17893f8966309954a7f36d8e6a3e2869f93af1a5a5acb19c11de5330a65cb95dfb3d165cb0f04d6ae1a8ad4e62171344a837cb2d6d3e52cc9a62fed3f3061b5ebd054890e491d607a71933f", + "015f3990215de51a8c21bcaf6e49b98404f1ab4d2564f68f5ad171c8372b0d32077e4f393094a2", + "413f1bcfffc0229381b2afc1d542eb86fc398d95697aa155d9d5ffb9cfe9c3d7c1b6f54a8595a93db3b2af0c823b8ba4aebb7b7a9896639e5e692b0a8c52a9656bb5e39c2ca4a11378dc1d438008bf2dbdfb7119d599b40cbf96fa2bd2fb3fe9f060ddd4d663dbbc1bfaeba5c266adb94946362aeafd12345a07" + }, + { /* i=4923 cDividendBits=1713 cDivisorBits=801 */ + "0567323abb734818713b2f64ffcc82d44b2bfc1fb4e38382a43f4d263e6e8d6dabe72842d446c4b5fbdac5b7f0c455d9aa951a17ffd6d18f149b644cb06d505633b0facc362b9b542790e4494dbb1e907f15e25f3bd25eca12b48020f4f732dc9866039be04b2d0b9f60bffd12206f599184585fb0266265d4f79c346da4807d3df4185874b741478135bc9883687f14ab015a8bda1149469f285098c46cc0b0baff126e2d58991e99c531e1f1e364ec13120a9d66c18e3a3a215cfb40b4422033f20f3991c7c31f6270415af4a564546e9abef26c56", + "3d9c403f1b615a31f54392072b61038359455ff07fceeb1193e596928f63c07de059c63c7b48f0975c289ede29efa239bd7a340884f61c11457d41e27cb3b33e51e16fa65fcca332a9f00ed480ed9ffab7a32f6b360185dfba5f4ba519e82c2767eb312b", + "167361b7d6dce51ee4b5c425869822afc284b7866825185666cc0d0746411cd55950c54d183ea807357562845f62afdd7306b31524bdd075a4ba73845e94949228eef65082dfc35c267683a4a54e1e0453f49344bdc509dadd1324217637686190e410e2cad118456b37f8b266579ce412ed", + "32309bf58b9e2e0ec98877d76b7df7d83996db404016413da3f6476a27bf5a7fc4cb4242a252fd9783c22f41f222ea80f4d9ce4351498a1fdbe85597255804c4792e558a966bf5879e52a28f650ef769c158fec687952698efbf6c17e07211c60274e187" + }, + { /* i=4924 cDividendBits=1940 cDivisorBits=1656 */ + "cc7bb186f76a6a7089eec8f8b90a64904d6df8078b2b760d98f3501eb3e333077bb0524715cbfe137279bc2b8d10a10e29fe0ea57a2618b02c46aefe36c4189cdd89d548b7872ab7ced62e07d1e5f9fcf32bcc28082c61635e84f3d041fde8abff74d7e7fa1bb66dbe99a0a052d740cb9c01adb3d4ba4264064edd7db986b803bec153e3d2b0bd415ff264d12b3c002c662ce42e574a07f84b79bb5ac8871c7fc32f09013dc2c7954f0cda2e89b193f053ded0f93b746ac20cd0fb1c2395cf57a5f3bb1bb18cf4ffd83e07f4bbd0c60e9af645ace459306e5f828dbfc19afff36d7ca4041e6ea237b8646d89abd3f3071f9f", + "7c100de0fff6874e488db78517e79f5a398eb92be7981e962cf94e172726806e65027f2bf889439bcf879377098116f18c941d4e825d0819e3431e19411118733222504da28f4cce52ee0134f937854e0da3316dff5a95ca578b66b6f3d90832658beb4e88a054377c388685feb65aaf9d1dc1056ad543b58de08fe3f5b92fa62fe9ae8dc14ac294608d1e6e9c9693b9ae569d10e7c0a41366c7834bd0ab6c9511a22d0578820158f194858cd21a01a25f140c0098f24eab28d06b2a430c61933c37b75b968cb201a5f4ad578f86ab", + "01a5f20746f593fb71bd1bdde6e773c213677198d7cf30977b65e31815d815defe251b63", + "77c60dac9b375f2e13ff999ee7cd0a319a4458f2600a4de808b126e533e0caa26de9be14cb98167a3da45b986a1b3e3232ea649225db9b012cb4435250e89841c20c253f2dba83e52308fb15e4b7685ca0512aca8a7beb0c4ed52f5347780df62aff26c9601ef046e8e7a2039cc62f6074c7884e161d7156fd1a320e6e71539dfbc2494bcde3b941282fa2c9b32fe04e90e7808ba178c58bd9ea90a81a350d69709c1666e3aa9aaf25effb1c60e4f5562e114b5e2960bdb1c26a5f76b2509f17e65cd3e90954f293d4e5e8d29b027e" + }, + { /* i=4925 cDividendBits=3219 cDivisorBits=70 */ + "0502dee24277de1af1721e148f70ecac50a13a2d8652f52a19cdb3a015fcfb48a47a84244fae6738fefdcc4870b22ca57915c5d2149c5455699f1623e1f18b0f5f915a5076ff061864712f8703f4841394f820acc4ff20cc88040d10e0522554ebe2d050d70e8a4bc9339e275708751fde555e4398ec7dc388a850b3df4c73edbe46deb9fff8e2f04d4aae008cb6a9a5d0214f60a5fa81533c2f7e54b5f0790e66b00ecf0d8cbe1bf48bdb2f1d97246b497091c8aa75df3d4063741fdee0d1cd986742fc9a56c52840fc8bfdaa78bcd6aa62f061eca0a1a8ccbd6e5c07a2871ccd91c05fd62d830bbf032db6dbe249c7fe8c43158635eaeba226a04660b321f1bb2fd153286bd72b139c94e90de584d2dbe5aa1cbe15d1e43f00cefece7a07aa1613bf580dbb5c257c13f67dceea7d1146819b444031f7b33fdbe702b201abfa16d2becca3787352aa11ce87c3cbb33f49581d089d919f3e0aaf78aa8cc2eba460e2a66e970519b3688b86743f0ee9453c36dae05fe5e56c8851c3c15b707428b0b34f8500f9594d6b46ad0344805ae31fc80c", + "24435535f6c59c8806", + "236077e6577681fada0283bfac8e05e435567cee75df3726f1b316fc408fc5ddff9c4c5d212d011830e374405df5df03fc1139a650d41507a2c198bb4a8834be83a8561650bae245304c6294fde2a7e34a02df1571f3c2983113fbb63f2bfcb502d1f941da9ec460e723b95880d31e2f94b2f0e53eb6f7887ee7bb5af07a814e8ef4f29cc269f6b133e0c1a99d2178f795fa6d63554423c6452068d5526ef567014faa8356319493177676e3e5c0c84c1c91afcfc4bdeeec61a0d216567323cb19050d1555872e624e638f9eb5dc732add855e2121497fc5ed98f90ee3f3fc834c5cca9973cab535404dce66b028199daea1d490ab2e89c015f39d58cf9149340b1a6dd61cee22d1251319e37ece672cd18cfd73b9a10158acf75a98ab3502c8792c6a5ac64a9ddd60ec7f619d5d90b9d256adeeacffbe7cc8069497fb01f2ecdb999210763e9820806e7d9c3a201808883cdc1b101b1a9a4d882eaf003e51ece573b909894429a31ce52ee6999455a561b28cfe37c86e6bd9e04bfcc86405f27832aca4fbf4dea2a415", + "0cc2c6a9c91e58c78e" + }, + { /* i=4926 cDividendBits=2790 cDivisorBits=2245 */ + "eefd698b3519e5329e750de81719622e700990114c8add0975a18dbd5f31d761b5d63cfb3825ed1750e9da0b887273c53430a3d3168a0025fa7093a8deba58401c0379b198a859b2143d43d8141f2699a3f5c6ec8ffabfc6e45d1229f6b8990ce828183e9626b942b5e5e657d64149a343f63ceab501c20e8b976e9ab584b03a80cd4ecce8c5d1a64e48b22ef8727741c90fcc1747afbdc19fdb9f681dda61f4591799d4f23ce648b639c8efe0ad1ab545b664bdb9d927b5068addda7efc2d0f5e950db3be4be1d57df41c28c7d4664a7eb96d679c4ef63f7a1c83af183b2db5cbede4ec4db3e5eac6245292413335546b7ede2542a096c191c5c6cb8d98bfd8679072334b93463d8f1ec2b4a6544fba8d2a218f7e3948acf87d80fd183006790f5cb23b3e8a26c3a9ac0933f132fbc62b06e029bc1ea98eac152c000bb373cb92b582423f35ed6dbc50cd758b57bea3d89402ba5da3b3dc0716be22", + "0f9b1f08c1da428bb11b19a86e70a1595775ab4c905bec4eeda91ea7be31815c6da77c71766443a11b3ef20fca5699951e2a7dd62cbb98b8f3123b29aee62d0280cdca39e28eab99004ed1ea58b5b7a648a6c74f1dc6c8d75fb278394a70ba2dab3bcd06d62966cf44d30914433553209d5cc17bf16d723c298fb568bbd3470eda404ef494f07508b1ebfc9c54c7e7537b7c9aef172d4ab95bf17c54fb8f412400ddcd7fb66905ed49d60ce5f3da47df53c8f3c39b497524ba09d283d9053d464c116c0acc8b34b2eb5c13d0d4ddf8f4496cfe7988b8e4ef1c9d562467da5bd69a70882966fa0e44c18f55a96745b92b8459c15aa2d3cbbb318383ccece93a510d8f135644f7736276503f7e12058e483f9db104646f4118f2", + "0f50645e2150ba97af32da2992a7cb7a2cd651276820ccf659737c7ba8dd8c9a2f5bb59f3f785f819de1f9102c07c6c142b4fa89f300491e9f051778ab60bf43d878c5c3", + "0adcfeded10917e2949c3a5c3b05860c75d86b8bfecf8c98e68d0385e5e79644723f9886e1ac17a3517033691ae2d40109accee60b35e37c5785af3ce2a354f255f4287a93ad2fa94d6eaee2f014e54421560de2927a24613a03df01f5c231f36159fd7cafb32767e357b5cfa0b1798cc6fb1dbdf7e1e379de6aad882305a72bf35d5fbac7fb6555a683facd353826006ff249009e5fda87c2fd93c6decabdc64612abc5d275cc540ceeb36da10066f2dd7bc31478b48a36534f42411e2a11d17c6c6993f11173ce406d61e2f0051015709b4b5e1def2cdd9d8377a371021075ab6e0f308fc4ca4a5bc7b86b6d69c2bdb7184f4858486216969f3bd55f06aed42ea03000382503c61e7652d32ab6aa066f8a12e8d84ede83cc" + }, + { /* i=4927 cDividendBits=2483 cDivisorBits=2206 */ + "07c9772112f1c53d8883861ccd57f98694373e0b1d322d072c38cd8d5f31f28016001b81c9c59aa70dc6c5a501115c1f133803c90426fcff3e6655d1ed0b4b15834edb33639a1887c54671f0afc9e68b63c67edc85a2996752a545cc7ce70089002dc0ae85923266a1ad26273667d963c140482c367b7f2e047cc51af404d69deeb331aa3b7c062b747e24e5c8635153fc87fc5a2e7443069b79b6fa374d63bf2623dfe2eed2e42607674bc1bbb5381cd0bad8891fab24eb3b563ce2c94de84b00e7caa71e0015f337a934e9cfa4f9fbdf6e0d124b39e9d36a11d0daab94b9a5ff6099eece9fb7ae7319a6e4efab92e15c3d2f976d28f6ab393f37a68994778015ad0fbde53c53131a9d54c4630bb8eace1a97aa1e1ecca88431cb5df131619aa44a40437dc3fa313bc02d481121de5f0a3b47987bcf0e", + "3ba4b8013f706f2e15ccd04be6629a4d54877fcad27474e4029cd84f51756fde91b670baeeaf634dd711a5c1c5270681758ac52320d52d4d66ed350644013286a9273dcf8e1f8839e720bd4a4f193b87aa3017682a05487199997744152c743d34898d32c8ff6b33254ba557e183b2a2ca8713a9980a865c835c55f1aca8b561bc27978f0e12382819b69d7e9f7e9069d194caf3221bd54f619f3d7cf77b050eb9078883c59b6ddf77bb4037a9d824f152615e5b4dd3731235b615ee5596dfd692810bc6952793f94105cb1a2702aa0a6694768cef74890b0bd2aa21c3a66dbca810cda22fc538cf55715bb36012ca224cfd1682180d2b7bc1d909743c52398ee78c86016a7f78bcb3d2eb2a8ebbe66a28adb622", + "216c4ce96e488141953ab5c03a82425b998f88b4a355071a5b37c46ac397e1354f7868", + "392b36d356a6cfb6f7e3171905c0e087a7632c19096d8668f04aca5d3495be676efa02a8cc74b16f60b56e08b3e7dfd0468240bdfdab58ea5c1a5e2ed2ca1b3b76fcd302a9879a2241d352a4b9a4af668211dc91bd8a7d57f4a48f129336a6b8edf937c7dd5dd04696bbe548a7c2537e996e7535e137dead7e6b0a525fc9eae855cfebbaeab73cc69271a07dc51fe972c49b2ac570d1ee31719d0fe184fd6f21cdbedf05db2a5a7ef5315fc1eb203da48cdc8ee86fcada243a40d6c8de4f93875a910af49c5e9db5b6d4d1d4502e4129b035b8661b181f91af8a9a6e1865a25973f905c218cfacfc15603cdc2e3d3a344cb95b8b05f7646580b43c45d6e5fbc6a6d7529ca3ae2e20917ce7ec328336e3660be13e" + }, + { /* i=4928 cDividendBits=2671 cDivisorBits=465 */ + "325333b670349d9bfee01aa701f785cd78fb743e5e90b64e1008fbc368b2f8233e4080cad146fc6454980dcab527aaea93a031148f1c6be22d321a4780628fa4cfcde71d59056ba40582c4fa5085555de799ed96560c8cf01becc14934d0d0d46477c898382b6d291a494ec0cb67c187c414a97667a4347bd5e7732ec88f45a533e3a90508f165ccd59815d96c8876e84773ab92684b08b689176a28c4f994b8a0d5d6c70360438c2e1fa2d83efacc44fe6e20a3578e60e334f739d0a04ad55149e5c16adf78ef4ffc2ca39929f3ffb5231f332c08fdb8f7ea10df0308b0cc54658e8e4316584379ca7abcba963cc0e3d6f8f5acf4467bb86519158fa9bcab2ec12b5d3900deb24a033045b961136576b6f32e04071df94257e40a2b653caa95d8bcf4c61ac6bfb2cac30a4efb7e088735faedabf546da67958263a58df26d855dde2762d4540304795fc6f8cdb0", + "0ae3b85808465f57e6e3ce90648c8388336db5c27a2d530562d2b198a96dfa8bdd0abff7517ea87047364d4f63d4d9e343341a1af9cd8a8c17d9", + "049f14d4cb5a9bef3718a5f88f527f1165c54329db985b1afc19aa59231ac26e93280245eea96fc15f9d32d8d21322b217b32f47aa8b0c4df24de50436870cb911b7e81f1f300cbf1a4564580d62cb8ee2532f003c3ed4df536acd6eece00171792fc94dcf374c883fd3d51af2a859b3e32a1829d2d964c9c2c68a818a22b8228ea85e4745ea6d28d02ca6771d0b078a3087ea39fa613136efc4f9e80d137fae0907e727267f69e84243d12b2adefe4b6c935ebdc154b629c0aa1ada48625b2b20ca64e71bc5a5848b0688df4ac10dc2ae4e0739e1e7fd74006e4f3d945e8c7c96fa12461bfa90a4543d70d63162423f1dc4c5532c51efecb7da7e3decb74725947ea1a5a413c97fa5acfe49442e7d115080f845da", + "012ec73154bfd70be561fdc152001d31d5ffc0b0493c2341895fe04d23a24df1dcb851865d3d4fba1a237f53a40f22a008208201398c6f0701e6" + }, + { /* i=4929 cDividendBits=1049 cDivisorBits=33 */ + "135a5c8504b706775274bac035460abf2daede19650dff531cc48f1b6e4324b38279b9094463e127ebda53ab75ed9dc1850f9dabecf8fc1f4585b01ec50d7c48d017e0343cb3d923db8d9e0185de9b28ac244d621f9b54d565471155264b4f9e3ffd300c66a32a29f91dd46518fbfca4da2a8e92b9afeab39e7afd479f8b2f556efe1d", + "a989618a", + "1d39137378da4ca74a8a0b49bd87b51ac44a4e0e9ff50eacf4b602a5514e1cbe6965009d511303b8d601265e1d64cc68a88ab787430f042f407633742e72ed24d6739ad88fa1422a4b9e3ae3a8c9e0dcf0aa88139e7a4b6161f8957c702e4493c3637960149c7a6d25d167414d4d93e5b3530e2bef633febf198c014c6e53b", + "25c9114f" + }, + { /* i=4930 cDividendBits=2599 cDivisorBits=596 */ + "0594e2a1bf4bc8c9eb5fed38c2c4577c99bce501382e7af0793f11534cd87e37df051f57f72f8bdb361b4654f0cc13faad953a632f3b9fbdae702a256b0f7f0416d82dc8b16608397bf7b8977244efbad9619822e3505acc3d7e0aaaef71d29c784bd40f7a392525ea0a18cdee93227d58a3f0cb91a0fa9d4d14b8c3ea1bf7566d91e7b886836782b29697ffdc0fdc35d9ce3de7cfb9f0f5f543ebd24775703590a923fef2ef3297bb287ec61fa75f59612a6e270930729471a7512d38dfde403ae530e719782f157c3b1c5cbec4184256d4dfd84b953091bed3c029d572860602f39d4bb8120837df15ff576c8c48cd2a30c62fa84294e7d8c059e6849c48244fa79efe0b98d0f72aad42e22a37a657c5380c0da54bfec8095dd5a45b860e90dfd228a4dee9d674abb3c56e696af4836fe296e9c22b7368192af6cf988f66781d76ed746d", + "060b266d687e4196c384cdfcf9dd26ffcdc7f7906bdc860087642303f0910ae7d40397fd36349c8a46be21c0342b4b64beaee52c8848d7821c2e5d8442f92b721ccd5269c7e739a89c02eb", + "ec6e6651d8b79136758a5e4c52a534d284486803f782d31438c82849e0bd5a8f5f1bdd4653d28cc783297e348d4be72e6753626fee6ba1d8dd8a60fb0a54cb355550c263fbf4017ddde3e68cd0cb71165b9d2b8f3bc64bf55d4fb4b392755a4e7474036a4b0fb53193c534554feae5361dc797d146c3cf5d0a4ee5243cff73844393a03e9be2250825305d7ac700834bedfe5098ab83ac089db0ca82c8a655c0d6c908e58f3e6b0d842f14bf340dd1ee70e9f58aa51ff0c501ea0525ab93c88257ab86fdd4998e4aaf265aa65d5a4127d2e56741577b40ebf5c8ea9a9f948d9a34453c671c2d879edb8d5324f19740069c88c91d3496a231e51c", + "04d6a4c007fa1a81e3171a471b0747b9f79327484e7d6e407529a6d5cfae9d919608d3370dad58c1d2dcb96f16dbe26d3952a68b19f7d48370c5d228505b7af5405788195628943245ebb9" + }, + { /* i=4931 cDividendBits=39 cDivisorBits=25 */ + "1bf6b58eaf", + "7b34ca", + "3a1a", + "3c6e2b" + }, + { /* i=4932 cDividendBits=2361 cDivisorBits=2170 */ + "40c017cd356d2977879aa4a5b8d16d65d77ed4f626c9a87f5bbaf5126c93308e6ce054338ef39ec8d6d39a9765708af376aca608bcf87481d5aa4f3d579d8010aebc0ef1f6c5b09910fe6fcf18f41b88fd075118c1b190452c13872a8cf699069107f8b15d03786f68c9c66e6761d84ea02d29dd3ecf7df11294465d30bab6189c276a69d7607aecf7c9aa46324259123095aa0cc1193f62b1a100e28987191ae5529067e63ad035df1fdbf13c3aa52541ce644065f31cc3442a339ebef1ced4a557d15ce5e0657f1b02d973e0719a6e0138d484ca409a946ee6c288fee571ddb6d15139f8c4f948e105942ad002afdca35d4841d58f9c443724a3a9a4a82cd555c84ce2c0a30dc5a7e493598d4ef692792663fb94a2a39f2d93cb1b1db1bb4333958add369212", + "03fe7fe1b1deffc391d762a4ff19f82475fb12cfddee8d808b24362dee158a2a7706891c33c25a1e5889d0a83bf49e09071046ce492f8d081431f2a014df46f467dbc8fa99eadeadf9865ff9ca676ced837ab4cce1f8a2702bf51bfd791e2b6928a3f069153bc5d54419e31c3f56891398a7024c6b6db1d3989a163ed9fa2b8f7b5f56948c93ebbdf4831ed08f82b0d96ad66d38517230df90c041f52e9b55e6ab80fac5bf283f056e11505cdb24cec6e1475c559a61b966b1385f299f39f09ad3d7435dfe05dfe64cbf5e82e7741d2915a5a74fa4d1125666fdf592e5244b104f840efe494934f2e488cba757dfb8f876376f506c54cf94ad1c84005d898a03908efc343e3f4800b41c8484b64cec48", + "10361ab824d648255e8ee1672c9cfb7ebc6b88a88e810bc3", + "270b3531c23b050de6286b2c2d4ae41bf333910524610e5f4b00d426d48324514c53ad04817378919e97dddf3bfa06d517dd290f06e025917e07cd8770a73d7536a9ac8d3aab8036d2f183c15b4756f89eb43f0cf8ac9fe2e78a1425089178cd14fc7453a35343549cf004c2bb2b7de3a92312394d0e456b766e48fb2dc398f76a5743876a534b01596b2658c785bb4c4c62d547f24a5fc2e2e973d6f1401ac8119c97290b24fa645ac3e95e72adb441666d0854c7fa8094e3015fc4c47248abd78a17b40975d1d772e790e6f0dbf2281406d49f85a8b1b70b895431fb973c0bc5abf8e83094ac1c8cf7a024f8b2a2d2258461b9b06c8c77e250a49f26ef899780e79998b2328851b1198bb22f7f3a" + }, + { /* i=4933 cDividendBits=3988 cDivisorBits=3490 */ + "dae27892970c331910f1b6a4d5fefa685e58cb3767ebc8ada3fc8aada1961fdccf6c6d4c0af89ba25ede1c577f19ca8f58c956331b7de2693142804fc04c0e556ea332af829249adcebe4b3365a15af280cf124cab19cfe584734c5a0ab3cfb2aff5ef2a2d82a2f136d3a985c07504ac2d81dfe358417c0bd129f7c22fe8bb43c69328a09dc1a1d6f48c8284e645aa8881f39750e0a949ce4165f41a78cda65606fbfcfcabc1cf95678793674f1e99b50e40b79cc62b436ceae0573dbba801f7faa31b9f3bb7b6eb4ee0c801af7231e0341d670537ba9fe2cd50978727bb43eb6042ba6920e7b868adb656c04dd7fdb39643f56bc451377cda3ff69164d52537fe8d9dc48b3e77c64142bade4f2079558b99a739f14ec3a8bef0efce54e23c178b5124feee18a70da7a7f68bdd3b35b04784774e5162a4803f9c707e3ce806e368fbc8a83fea273737398706033c3ae09a4f69738560df3dd6eec240c82d1ebf455014a6e79b2ece4eb8dd9b229f034e0511b65ba8a2cd4e4c8c5941de1e8f6d321b110c1683db1524fee0cd70d2fd8f75d9cdf8a6e3b46bc112d1884600689d9b9de4e2eeaf47adf966cdd6c9f7cb32bddb58a39b77fa330317bb4e2544ec73777e1765324b7e621b0d4a8aaacf3d7f43311c3e41b6ba688e7f0733201f962f115fbafb5f01c956c8bf0d5a612b3d2791df", + "0d1510533c35ebe820ad1d8badb754b36c6ed2990ac0008a21d8fb7755bde55d11da95e51ac0e40e9b1b6b196f5eac5025b78169e4289da89c46c861cd6f23f19d592defc428118f35930785c696c2c3ce4f48870dbd2a6545c8a9d7c52990342fc1ee5290dc5c5c683cb6ed517f42995f1b0128ecbfbd51b7052da0ef0cbcd2e22e198903b8a24ef7cc79bc6cf94ad27573b24c3af6b182d439d3155ed0c8e1116b729aac709b53151ff8b19b0dbe0b966a82969b2789acf60f88f4dabfdb9d8d0d0deccea455bc892ffe49a7a52cac890b7a1bc0507aaf559c0485c416353d901d835577a6f43c4667def48bd05eeafc2da7785328138b5819ccb4f612509fd1a9a970ea563bcd5c41cd722283c65b85e4a532f2a3c557034d285e52ef13647d014eecd6a73b6e44aca6690a1b1737da6d1c472f7cb5eb74508d70bec2996d902d44e37d2f2c544d73227715bfa5b9c383b45b006cb174d01ce468b0e8c69319d071508e3203537e0c1de229ed322165f813c980e4b0acd8b371d558964dd4d496a12444f3cbea725cdf607d354d38d92920f9448d375e0d4416015919ba0ae60269ff25026daf8496ccb3b8ee5676d8bfb2ed", + "10bb3bf662499b96dc7925a9f0ca7a2338e6ec9a07f46a60e04ac5908074e182c024885c6f8b0fb665c940cd63da82b3803ebfc376e4b26bf65a8e1f364881", + "0c5144ab6c81971f884678307d5c535dead9640f2ece8ef15292688b7aab7487a7e7eb65b40392def809e3f0172d423a8538303e662a9c85524a241e8505bf4831b7146df591809f96096496ff9bbf1f184603a1e6383727509996059ee7489da3530ffce2ae0175a4207fd70ae23b201390d1498f847c9747e1234ec6467834ccacc567f0d6020515151d862dbeb1da4963b287f9ed2b0e16995d5f4ef03cd292348beb49567b132b4aceec5f5490d8121d26a3f1c9f92cc8ef8565430a86006877b74113367a9ec7b9b5fd0a363c411deca2b6c79194125c1c440b36b425fa27420bd52d26b73ce02eafb92177fe05e94574da1f428cfe7be7e85c0fa4e7ebd2f3e3d29d630992bf8ee27c2ce6ba9c8c2f25fbe1c3f829557b2b6bca8043066bc072713daaffcc3263fe372975b2485d4481b6182eacf41049b93d487d551e83bf6732d72a57eda33e900727906f95339761f6706eaa44662cf9b34fd8ab7de3709110f72d7fcac9998a0bcddec9fe80d49b8350d82aea98587d1fd7093106fa4f4ec106c397f8deeb96c70faa6e690f7ff78f40b7119ae6bdecde86e03c3988e33c4d10c0a9a60c2f948495a3e1c1a93dc072" + }, + { /* i=4934 cDividendBits=3319 cDivisorBits=1216 */ + "1a29fdbc3afc1535b0c37431cd08ee343c02a4b31710acafe8453a892bfb314c4d251743cda4ea03c36b0eec1af6c1e02ce3d8f56874e9d217e3a4bacf89f48b76d72bd32680af78d42989264c5ddf67a582bc85d3e7fbe63a3df9ae7d6af55ce5b9ed86729428220c5e0599f6503f54bfa0d924554e39eb2eeb5f4cdfab098da9365945751fc697e7746fb6724b4d250757bda12efcb5245ad2b43561abe45646fa7e354d15012240824b490b0a1492a31c2cded51b9ba9f23323e39710e6c53863182bc3fc696c3407b82761f3af7b71f01dba6681663f8f77a2a5ce62104549e0ce4c6ba94d5d44d8ee6c800ea7b81c98de18f16e5c7829169834f4dad6b045abb77d5ead61588ef37140e1b78b4104ed2f43257a7151c1aea441b1865298cae182eea1a7a96cf514376ffa21cd41db01aa62658e15d41291a4fd5a155c647c29592c0e33ddd35b0a948d599ab951e632fb05aac17f0f5cd7ab4cff9fae650341d37b4a7a906029746f856178f55c5098c20fbec5350f32c38e8352e9245c18f3853f68c7e5183e0297453eb6ba00f459bd88fafdfd75f9e61804592862", + "c6e5ce5f5a462ba011307192527d271079b0dba94192c0b5d13880e4c0c2b050c7f5601bae0bb5fe0e37e2ffea044e19d0e16a8e4c0d22271f06032cd86dc9e419f1602dc07b128c44f6afcdbfb1b304ab128af612a44d783e24d1ab81d24af45fffe722563cb50be8eb252e83d9ec3d44b441142dc11d9c66762a513f00a9185eb4700830839dcb54d12621a7e7c1764de30ae4745a01c2", + "21acf1a0cfb3f4f0780b489620f43b8cc0e1a5cd61f6db896d0716ce92d48834294e8e269aa3c5211b2cfdde819652b5018cf4099f43d38868c0b1be3c013d22a7fd74fcfe7ceb2b7d7c3dcff84e5294f69129432015270582ae8a027ce6e4e40704fac69192e4c382d2859dbe4653c90f55140f50cdcca352c4a113ada6b809c4cdf86c01da67a6299c636c21c9d6c31b7808fd9466cd9ea2a84b90856a8a5f42327b5d83a21dd44c1b5bca5b569fe72f46e5a5d0c640d2d5e419971762908e18266f8aee40f5993d5ebce40aba3614a3f7014d6657064b2d11fa86ab84b8a734ee6acdb91b271a1e87da87db4e5f59d443bf739068c8e32c518c4d6f0ed677678b0227c9056f", + "034269b834b6d823cea0058892bf66675c5f454935fcb32af9f9175a6d868e8615fc80bd70d17b20a616a5e420cab7c603d4f616e8d0d37d2859c42350462b4104cbe41f3f3329cbbd071763d5408a4fde06bba9fdc575a921c812592863b9913379880285d754975c782e64bc5b2caaad3cf8da5ea8ab6dbf525315e0c336a40ad7b2459a5b850fb34beed185d132163b824c4fdff79b44" + }, + { /* i=4935 cDividendBits=3748 cDivisorBits=1582 */ + "0ad47371391b55accdcdd235b93c05a2421e4fe592cd99a0ea57057a5dacbeb51401125fffc4e452a6b818c9161c821485929b7b31e23219f0ef41f4083bbe0dfb1495814e8a8449b258f6621750ee538683d214fbef376e75e5fbe867443da9da7b9c7df749900a8bbc4071102ac5043a96e9ae6f97dc6783f1e1437497fd802516dfef1af0daea3a4730df1e2af64e13391a7a0daa3276955e060b9504f2c34c6d2f564b5d5b1b060ced16ce6b17e11a856c2fca89bfd2db8b1ff46e8e9b36aad15ccc4439cd40417edcd39b0e5e0c115b8e0f1d2f9d39bdf1d774d7afb1bceb97fec27a037daac64e6cbb4e5a60ee398ccfd31a971a07e223c49363ee81b1b4e5ac324f1d247d19fff9644ebcce5101c144e4ced275e98958c5c76745f4ff597c21376b588e4ed80997f8ccb34f511c8f69c477de2a81950db6e509db317c02260ab1d1072a147491dc57c28ff312ada8f1c09aa9a03d2d569dbfabde6f7815e553959b0a84527d12a98f020a6cb0fbb1cd91c8b1aa34f85dfd57487214f5d236d5a46413352050c6a95808a8b509b0e9d09ce87248aea8fa20e1d992fd813cc3bf2b63a39cf4e49c7da0b155b4a03aa774c46c356c6fe4f3e863220cb58f499218bc77180d81fdc7332eafa8316e1ff8dc2efa", + "3e32ec3942fb942b738e920eda34ee11b68443b311458675e3346321491ad1f23b7435296d5567f805ae692b2710d3ee463d8a59439c3150754c80a075bf0beb9671415e552c61d3130361a9e1bffa578a8b957e35467b9e993b58eaa7a48bd7968392a40204bd473cfa2efecb712d286359620fb9b2d5585c1d9018de61be4c442d863ffb2ed53ad75ea73040fe1fc656b8cac34c60e04b543fa03772f9d7090afd4f9c8257e7293b2232b8d0a9c3013f846e9d4fa0708e01018ceb7c1f11efc668596d9be5", + "2c92ede47f25ffe25b39d8c6fd2af8d7ac111e13cb923b0fcae6c0e9d7c53d520eb96710afd4177960fc4f08fbb74a9882fbad529934141e8522d661be802469188c3b0e0803fbd3e22dd563caca4c9d5759704d5289c4f2fe97cdc2ac25871be4206f7c8d56a1b7e65a28f3ee42a8119d80b8e0a9173451787ea799334b33625e0a7beee0dd575c17ce9166f9bbd7f3d072a63ec2734be408b2a8accf62a87cf41bb491add15e21a90801e9045bef7a2e0a17bffb8bf995d6ca8b6001a2fde9b0085fd00c97c0b2feed63c0b2cb99c84166b7cb863f5c78472bd5ea6e4703c093edfb39c438a861c93348e9de66ac6c8500652a5e33c8f53fb03f2d2bba359fc62879359ceff26993a188afef23bf", + "2fdec6b53a3c31a99048dca45fcbeabed2ae62c82a9ab35c5e1b981b46c0805cbf1e80829270b8b814e7da8e873f2e4486357099aa3cebf40d1b2c278eadef146a21c6fbbccc9844cf90246c497a9451d322fda51a98f00e9cc9adb04823712b134bb5a96dc9c2e01cfb68ea77013e27594114bf52597b7cf2992209a5e7e589c0a42cc479907cfdf8cc4dcca39d8470d7f8bc49195d82c5cd5432ffafcc4251e0c8c44a85e2c1e9ec8778cc2f003e2edaf2463653ec358c4095fece2c890ad9e07d2df9901f" + }, + { /* i=4936 cDividendBits=1903 cDivisorBits=1669 */ + "0f3e2e256a902121e1f175b4db4f0c2c7255b16ed1166617c5d410dc3d10c204bec87e7be825837c5ce88dfa22ee3f400cf7c3153a21ecd501f6459c32b16cbe948c81365a44c65df405cc53c9b0b95f98deea1da48a28220f6f3e4667a87a0713e7a902aa5e9367de0d0e8ceb87cabe3a19026814862c1841fc967991e1caa3cdac730e53f5a73af19338ea76f149c08d43cb8a04369aee78c55e8cafd2725fdf1132faa90cece8605a31c594be6293b0b3f4525e93541940761a0b28fc14f7145a48cdd9b01620e450b6344a151d7b2cb91abb9102bb2963b01172bd8ee48cc57cff248816074c83a721bda4aa", + "0ae2be4cc2696e9b10c562b63ac19b61cb84b1909504e01f6abeac1a32f05d19eaedec10edea48d8199dc452d4a082b7016e0b764ace88ccb540ab2f055eb3c72075ad8ed40a310cf24032389fdc542626053fc40c3ee447164f6db30553f6a647d1ebb49b5bbf2b89dbeb92de359fcaf93d11345ea49c4aaf8ef122f11cfcffec8e18840fbbb8ed810765f697cb6d5b2688d93154909c9d1dd0c7ba10137bb423b203a993c4a6e94bafbd69492b46057989caeec8fd5c96741342c4e01eef3c8ac517df49f155ec2866d754b39b0fa3a5", + "016677cacc90f86233207235ab158177a2b3a24ad1abd48c603c75ecc3a5", + "cbbf2b02fc1574f6ecd33647a3627512600719293c59ca7cb987d4b08f7b8f3011a519f8617dc35c1e355f5bbb61bab6ba618a9d355933454ce071bfd7e40e20481a3572dd36afe368b8bf84306fd25831876ca4339d695458038885ae2c6ba0d0b807181d2c717682b0f97fc994d332ad058fbd0ea265b6c7884ad1ccfb9f1fcdf65f0325110c2a2b2bdfb6c9891967758c00cf2d6f95deb2e35533f7a7c4f8d8fc8f7222aecf7f11cfbc033020408e53015a4eb0d484c008e02c346b0402c67b70f3e8db065af63648c9e601e67c51" + }, + { /* i=4937 cDividendBits=623 cDivisorBits=67 */ + "4f7085157393393209e7dc3735ac4cc78e7c05ff7b6bd3b4dc57ca7ba5f47e453e011cd7d9ee4b5043c187a8839a5538a5e4586e68e69c9558956bdf3dd91fc3e8e4c0675bb72d5a0af020be61c1", + "044198c69c0f6ba272", + "12aa0d142a7cbc9a3d3e34dca9000e9516a745a2a27ab7716962307e166fa00676eff0443af0f3e92f0193c430e55765692397218bf88ea9df9b8f3aa20fac094d4e1cbe3ba1", + "03dc522ad99700f20f" + }, + { /* i=4938 cDividendBits=766 cDivisorBits=362 */ + "3812ae6d8fb418752e18029f6672bd50e9130775fbff3948622f57f82929ebafd7504c40b1098c5a2a683dd10277d8c045bd4263ee62f55bee1cdeda7d293aa6a8a84e63dd11efba854e8961031f07477b91dc7ee40acb41b4dcf258cac698d7", + "01b6b414309304d52df98ff5e5da22fab32bd8926b7e3783cb56d8feef3682753d38bbd75117f2b195cb3fa0212a", + "20b87f7cab13a3fcab757e4284fa7c8bed5dfffcf5d5de77c4c8925007b8045fe834f04cdc974459172bc4e974118324dc0797", + "01431aa296d595c2abe6d77b4d412c837b206cf0247fd9c6736c32497dd6b19202e81c5799aff13b13f47a52e311" + }, + { /* i=4939 cDividendBits=1894 cDivisorBits=1430 */ + "3aac7a12fe49bb87b39d15dc1f01fa6e957ec904b7c37e83d58eb67a8ae02565b12fcedc5686fe420c53f9df1cd7e874a6226f3f0908a53021e7af99e15f4855aadb389c913ee4777f28ea7aa0c1a383aa538eaa64365d400fb1ecacb451de543e5dedb31965b7f40397aa0fed0c5ca26bdc1ad22728cf3e881165b949d7cd3dfd6dfc7c89a4ae8dd7036efc4a73161a247984e186650bf51450b4f700b7954b46954e284c15ae19784d5d4deb823151b253177b42da2713a690ca319c7bff23d84489c4fb98610b7612d738ee7cbb2311aa8fdf0866c6c2f00485d926b5509bc1cf0b0864b790e9e280d8ba", + "34962c88bc1f22af0e9e8efa9c96fbffc796b3d5a935327f115c7275993385b06ca2a8575e185f089353e54993339eb601bb8064b54b70fb14b5d52f292389267efa9246c5a349c502d04adad978ce054df25fc39de73fe8441fbc04c22a98d4ce8157bb6931c5f7257592664d4ed73a8f17aa8a2c0338c122e5fb136d29730be1221162b9999d89b9e5d8d5721830c8a9dfe04712ab4a9816b7860b2a4ddd7eb455309b02bed6d1b3c8ebd59ffa9802a85073", + "011da210dc0c1e06277435ab6652c520e8c3659bcef1d606f96decc28d8d48a61fdef2906d6335e25bd9b756ddeea6dbe6433f232b2d0eef5799", + "21d2519380dcc2fdcd8136edcbbe1f4eb84aa02296480c793ce42ffe19360a62d7149904c6d262df7b0c48501fe58cefccd7a085b3c43e44d0123fc111145a67840e79f92f8f5c86fe3078bd0bc96d98c7e7cf991bfe00acda97eec2ad75491734ea2d439c61e805219d9790b939749bdd096c6bf647aedd651d8f1e295793007f7702d74b165eaabdc4eda28371586213799a89cebf5763b10631de38a79c62423df580af7f0073dce25a0c0efe68b334aeff" + }, + { /* i=4940 cDividendBits=4088 cDivisorBits=2547 */ + "81a36ad7f9f7d2df915beb755c29721bc63509e37349e50d6f53723dee6d4bbfa0184aacb6bb4aad705211848230b02634f6e23b9f748263861ee6021b2967f0232ff05c489c59e8b3fb3a423a0bd43ccd0246d7b48da3eafafb4b1caf85279b932f9d40dff2ff6af73bea2c257cf9a8446abeea2e50c7497c6f221034f398b9af7e72be622d4e51eb5416ad8e1ccc7b8d1c76dbe1af28e2027cf0cb07792f1b8a53911a7c4c3660aef88f3bc8009906da41e0a5422ad78102ae55819dcc28723b48e2c9804d3ca117daaf6f79102a3830959f1f4189c63b20a682daba4d35ec156c01595e90d5e2b32f2baa337965ce6fa2d491a6a2f375bea41d572a4bd66239e56a5753275a9f6b810baf45b728d591c88bab6b6d830c22e33e6f50c44d967909a32f31cfee8cd62b02790f86e248103afabcbbf21fb356db068414ed274125b7a413c697eb94f8f180b94d313f1606e762a43b3c2f5ce8896a59d11737c47b6d6627694ecc8c4d9dc5ac6c95f93b5f55145d593506946e38654c52d4d8cf3f6bb6c08cf1e498feb7a1f910ce0fdd7fc7658c61f8b19051566996ba91c04bdd7c3952ef8ba7ff5f3bffd0855f09bafb9645d536260018509f56c24ee76f996517e99a85b792b462c18e6af92e6abdea5e54b996f4d38130c2286c530170df027c2ec70f281eb3e00c4387ab79da600ce2fcf377b3da6bfb7f21c083274c", + "010a24807663d536aafb54762b09f6901087979172592c7c232390d60d8d12b5a0cdefa66de680433fc9af3703e32bb3bf0f4ccaf158ab619ec82dc79ebbb5cd53fd5854120298cc567aebd0be4ea9eadb7ebcd5298c82d0910d6fc45903499439991fce03c25f12fd67af4cec20f01a7a607f278c7a1533cfae55cb7d5a98d16a50af4636d88886fbb2d1393759667800419341aa17fdf4dd8e32d642aba30ae1cf803daabdaf8a870265dbeeaf5358d9c520545445d510a8a191ac60109ade0d940ca573f7210ca9444c7ac094b3f8f236eb0a131be6b0ef3a7b455fbb2cca85d7e2ac77249b26d43999d66afede4a3a5df0fbf450fa8cccc1b48ceb74dde145a56bcd8a473e3b19102346a4444eb5b6f3ff3a469a7b26acecc756b4ca1652d7ee4412bd491984fb1215b47f08dbbc53462adc8b126533c0b810a8646329", + "7cb2a88fa9dec25668700b0ad6a2d3df458d396db1f9aa2369f7daf5dd1e9edec2967b1572fae0def6b58ef81125e6da5fbb470a2b082336f45cb7ed05a009ef4022478b5173d15bbde4c0eea224209c6c1daf830f404794fc25978c9fefabf53fcf70a212f640f6add075fe966af7b277965e3f0048cdb3ed5ea8e32d4c2cd69e9db411dd6b51d3a1da65c292c63be5c2fdb0f849bc2a7768ce08b5e2bd1264095070dfa5f3ea557199e01229fff50dab883026826cff51363a39d2ecc0cb2a4a", + "010731fc910a90ad2761ae6080bd8424b56346eea3bf24f191d448235d5045f0156ab3f40559e40055ff7101dd08b3650531e2f59b130636d1ee245736dd9d5af17f7480139566a5a6552895a22967c76c1ffb61c04c435075f03fd4353b37267d430af6cdaef374f439419b5b2b6f1829ccf1f948b755608a14a1f55dbade31ae9c4e8160a2561986a2c70cb9327e67dd8538c33ec245083e0b29a58115c5a24c491c296d263fa1e1f3309e3047460cfc89b3b514fd1e0d3e5bc7707e2d1e92952960b2dab068d884c3c25bb74cb921e6a22b8cd1eb4527835078ba17d1acb4452a716c51ad41556c90cd6680f866e574931cb2e135d4eb49a612eed4179c06e7ddefa448be22f525273cc159192ec280b2b770b81c2f9f2db6bc70efdfa2b5774a3222900058cac6c34f5246b189039b9988fc47ba48708eb0eb39b6c372" + }, + { /* i=4941 cDividendBits=2789 cDivisorBits=1972 */ + "1a9f095438d602b10af2d5392dfe9ccd78859ac7953c5050701274f1b23d357520f3f6c2e3b652927f5b7522848b940d93c66dc2cedd2fd71240fb562c125add0f0ff1ba7d67fab07428199b550269f4a1821e091b40676001ea118e309c5d3a6127c75c91d751a36e26e774dd22bb1cc5a719cdff8082805eb5f50036bea4002047cbaef70376fd914bca55269db083c893c489c1d3909dcbdae46946c8783d9620e939551c9040be60fb842690caea2344de6e82e7f841e6b3aa0878a0d6e3a3f8accea079824e2527cd3f43ce3a1a9184144089486cfe8aa2249d4cd5275322d288d1337f3f69eb2dc632874ad7374f6d98bb007410bc5dd506caacd3682269bd3f0eec5a52ce799286d9729239a4fab49ce3ec95c24bf257f514edc0013f3898eef089534ee1650c9740acf06dfc61c5755a3ea3db3ba8036f93386f6e228c0ca47c2e2394c3e510a94ba03aa42b93cccc3720645a0696f4692085", + "071dfffb7b575f8808bc20f7cf944868c66020dec7b648e8509646bb35d8f4d0fa43723a5473cd5002372a0ea806ea28b2e3588b16a69a2d178c9d0ed7111dc21ee91fc99b2bf4b9b163204e3c938804a6784ce4088a138699ce8f5148e3ab9e63575eaec4b3f89e71c240fcfad639b065cebe572c892fca507db306dd3810c3bec9652d89960e1226c6bdf08371a64dbca0a81501125f097643d212a5d695cb22798e404d7135a35e86a15b0a1effaaeaf975247195fec6f296de63edb3da9301f1513fc2f02fd5438aa103903c4e648a8535b3263eb05212a91b2f66532cd1cffcc0380800c9328bceba3c9b22b719f85380e774efa7", + "03bd8bdba058d708e77b42a60718aedc200bfa4f2071e04419f2939d8a413e57e2b3b589be6c84065909057b404aad04316d2cab653546ca5e7e3c46c794be0ff191235d1e95e378830d2ecbc154b1c14cd00bd86079e26a4f276619ed468787b3ad6a6bb36a3e", + "061dcbc622db4b446684ef255a588f6d1b950349d0730549ac0a703192ee9bd1ea0c6e86b28ce91e47ae46f54926b0f765909b330884066428011279390eb68f45aaa052cc6d4153b40e22ab3e664a1db1861b7a219799d0eb466da4c7ab01e5f1b3cef209a4678433d6684564c81ab46c9e58d9422469836632852b9db23708139d605cf040d9021b119b51a96cca4cc7e0212583d4982ac63da764cb7450d33a61a1b6899a0c8c91801c094c6a36523ca67ecfd3b84d7a92bd430f9ea8b6d285cf968147c0c3a581608d1b9a1109b94727ec5d327f63de98cfbda2807ebcbaf639a2450e74e150d9a3e4f1b9ce7e849ea0741c16f013" + }, + { /* i=4942 cDividendBits=3657 cDivisorBits=524 */ + "ede194f0d994782848db886428ce97c2b69953a0c2aa9874cf0bc953b745a4d1c37437eb7b8e802a120c9bce84fae032f3be65863130dea264ea9e6640df28c3979fd4d2eabe19455329dc2a5c358db52be98dd63471b01109f9f758d078a8a6ab6c06f1de19ee13f2f039edd35263db08a276d4e6af2dea7c4aac1e405fc57238559bddf461f58a985f33f31056d87829df96097fed19f96332d86b155f2dd877cc2c7e1e9b58d13aac8ff3fed696ecd29fd57ef30f72518159a4995d50a44dd2e431be85b2a788ce4f334d2f8c813c2a664dc334b13972ec36cb4fad45cf790bc163f44f8252da4ddb3f8ef4d4fb336cd93855ed8c0dcbcf6da53f21e13e0213880c5a3e8ece50c2fa08034e613f7d3cd4a840fce98339dc7b5470ebb7f97c9a4a43e530cb0f6beef68bf22e1fac571a473d14d694bd828aa6bfcbf105ccad64dbdf324bd8cd956799e7ddb32269597cf61804b39252139418f370fc5ad2db56061534afebdf7d8e4f8dcce95cd554ce399942e29cf3655501ec94a9f3b4ddb4e3790760800e4150c80657ba536aceb2dad8452550b0415a2eff49da8a9e08077244ab571b8d696ed2f3d6c4a1d87f5ebf70ab076ff22dd144d4ffc728af90cae8e1c2a3f84d7d11", + "0262c4939a744153fcbc739bea6f7a4847d8ca064f11c9469aeaabd35fb03c11b4659ae94e6ab0dc7e5416fca004bcc4fd6419ac2cd4d3be28bc9739b193a1bd5759", + "63b4e306b7cedbc67604a67700fb96545a26f2c3de42100973df51f3d83d53002a9ad3e39c0fb78846d36cd5dcc4df9c2bcd66be69b71998db6dea3be4fda64ec0dcc354732f0e2942c675bbcf370045a8946989b9f202b98f661f52dde08da4f7c74e79bee3c216b358ea4e64de86ea4b1fb2549c7224b6c18974c5f60039e2ed409ce605c111639254a1b1605c09557c4c6bacfe24a9194b56c2714fef99d376ae309852df8a4a936697e500ea4cb80604872ded68cf6dab1a4a53e04be76b709953926fb3d98d9884e5222c7a735af42ed201e2a845e40e28c68eb746d38a970334056d2af227e7e8943c5e54c66b9e2745fb86d4b1c65e9c518968119e5ef1a681048fc039f9446a4cd66dbb228b03f84d16d484aecb5a41767f4df02b615596ea4166c64caa0635eb6cde931ec43cd3c09ac368dc5c28f5073c0b2182a2c3ced231c20157102c07d6c2417d9e764d0e491021fb776a156e2b76651117043db52e483eab691854d34ced2920527fb2324e35d93e90a9c819ada2b911f2d643393fe6143b648d", + "01f746307cd71235375bd20f486108116ceaf18aa7e65151267c95d87203863818a7a779de9d88852dbf19b25e5c2f9dee2da723be8a954382d1f8a7d6b9d7629d0c" + }, + { /* i=4943 cDividendBits=265 cDivisorBits=87 */ + "2855a38f6c71cbc622a991d2ac470bd120ae6bf34bb5b90050d51804421c5040c0", + "5dae1ba10c61c0426caf7f", + "6e38e9ecf69b05ace3eb783e1842f3f372b1b0ba92cc", + "1c683fc64698bd5f57f98c" + }, + { /* i=4944 cDividendBits=1999 cDivisorBits=1701 */ + "22116799b5ee2502dd8942951a38434555e7944ca65e84a747444f5cd0c916dde313515b5baafe1b40585a0d4ed4ff06aa291c15c5d7f7f447927148f4c7d728a8d39a093f30b2178859fc2b7a307ae726f2e8cdcd7e5866613587cee56d7c48bcd59555c39f8d930ba12749f12e9d70caf5e21bbce1f880ae6e7bf1e6b904e389c04c5f82ed570f074614c4bc3d12066a7f61ac643e30c522e75733526d15b098ececd03f8dd0c714446c0e4677a04000ee09b5a66d01de97e02e9cee2b362df7b8caa6fc7d5bc23c754d96949d0ef96ec471a295f7c012e21e65b5298ba6ef3997573f179073bb4b5a8a662e52a4722abd2957eb52a819d838", + "027d4b405cefad437c869a9367075f0b8d6228e45c0356dda4e9622cbdc824411e7c161619de8283234c9bff97e62f92f8b3a9337ce54cb21c4a02d16d56e4e57d708bcb856438c6258f36236165ee168fc3e414b870a10a6f6ad2a3ba18b3ec1f2bd406416ed69edfda9e95679e4b44c465f7487a3185a2a0eacd3119cb350339f00a01ed9e5256b14291966d040281d9ebadaee749eaf93621764c4b7378122805881a9b43646c17d9ba0c6e1e16691f795bca67ccb65b8732a512fb8e90398f0553776d7e0338e217d9595ba6020ffaa0de9f1a", + "0daf5ff644b40863d2db6f0dff0ae6c6177c0dbe8a5ecf71faf5e199b1fd1cbfc75f20eadf93", + "1a5ba9b86f610178046f294f7d0c57f8d46bb9c195547f07521ce1e88b1ae1505f2097be3fd6fae15adcdb70fb2ecfbd6086c4ffc43f36c6b444f370b479d143479b9a538d478e3669dd2343900d6f0738441d5bbd0d7a3ae5a21922ec87f451c950441faa69b54c63cbdfe244af73e9635d5010d109681a29ae2359604456104cdbe6f602707c3b36d42fcb6ee017de1ec4e93d9f410a0252b0129a2d58ca2e9ef86b4b591e27ed3b43cc4281efefd18e61b6b13c26bdc5b5977fc952427eb084df1e3ab08792da17f2ae5ece5a4c3fade8d64a" + }, + { /* i=4945 cDividendBits=2980 cDivisorBits=1471 */ + "067fe56370eea5a8aab14fc4b7c9ac4350721f5bc3f3e8081f569d87d616ead16ac5f7459cbcbd4b15baa794c80ae3abe78e443cc37a9b828f3ecb68687f0827fbd570605e0253d26e55a959264d9598a1e619959a378a35988fcf804d864791673a3fbb688da396f562be8f76b7fdc7abcc4fde29bbf7a6aa717c9cccc45aeb62240e9b17e80bab0fea938481e3e4c76c10c1a7820e7b83e3014a8129e6371f3c03f122fbc6eb62c8651f625150208a71077947b59cfe09c3f27966346f306fd2e411681490be94b0710d09439fea7e63a828fd60e9b8ce27954a77c9029f1f1ce82a95680a5776ef11cf38abdbedc3fe012d67e43debd169ba28ca279e429d5fe88545100b540a69c9b1867fd5ecff6d33952b20bc5240c84be860033cb6371d280159978cebf70ade89710f8beb406ee6b255d79f54d266258a54979fa7df0b7239b80f30b0bfdbd152ed70293528830e4bc8caa832d8ed30089131af3bc9660dfe60753e862afbcb4fc4f4bc5ec4eca4da62e1", + "0d5b7021340f4176778640bdc41a61311cb9c4ec1f52c7e6a824e1c0721159f8030aa5ce787923fde92becb90f788fbad3c9ec7396f045b973fdfa252d474d750a94b12306573b444c4eeff93cb790a2f8ed3189d0f3dcd3d12647532de3d0f2d6a257b57c4c24d7ad104757637bdb8b5c9387141051e7058fc514f90dbd621ab2c270a72096bb2ef7ea86064d326589753b267d5918ae03e6f87c54f8007d611ee987e9abe4163aa514ac24aa53c655bfc8cdea67894233", + "7c91c51c6bba9f58ccf9ab8055d8181ad10b10d7e1d33e07096da727940117f7e5af0356b7bab0176115cfeb27ad21a3fd246ddab26de780836b0d9fe69030caa5760ecefdc2652c94e863e95a33b725aeb0eedb2e722a7d38a3108c5304cc1ccd633e65d427dda6d0fc535185f38b4427ab8dfddb8479b8b2425241aa829cee7edc1c33f8ca60e35abbc9308c20bd5c781a1a999bf7dba798cbc552b02955335128b1d436440334c0028319a267bee33dd2a18b00c0e8fb1d09232629", + "06880a2888c2732550a26e60ccadc98f69d452a3abe60fac73de867adf36fbd18d0c4584df4772d965b594c1feb48249282441470b45930bbd71afc1af69ea2e60569d7aee0190cb79f1045d9091e86742d5f4825c6d5e52f47e971a7d8b7e94794ea6e5ff868ea0675b3300f55e9872c797575ab35d72cb29389b0ca5c09cf953e7f009fd80af54fe713ee49be2fc417f66309144a1b7efc6eed10a276d813bdf44407670d16c1493befe3cee3f60f445488324d81236b6" + }, + { /* i=4946 cDividendBits=2360 cDivisorBits=1035 */ + "86d7283d9890a7c0e9661b9c006269d0b02023515c79cf8b61f9c11c6d3c8a899311ba1aa16e6c8633ec8e897eb328147240f58189b51d6f5a3a092042e4372947efe7ede5aca990774a495418eca9973a4b4d698761d0089d78461d8a415d204480315721c7a485f282f63b6b7b1b04dff8e96bf54ffd028a942c3c7851eedcc2b18910ee44d7d44ff24806aa66edea66de6da0b02e234b3519683b5539b8abec6ccd121fd18503b0041731cc29711d001297895a2fdf1f1b0413ab672d30a4d11eb0ca910fb79ae5e5d611fa067efab0d265cea1767386ead1c7d3d1fdb6883b89650830d8717bfdd41e4e69e8a9c07edf852fbdec4bff5ede2ec9fc0856e335ff45a58d644a66583a337056596a382ecee2cd121e9190014f5661cf676ced94d6c451531de5", + "02596c40473a3261aacc3fc07a463b6e4ceb98a8f9f7ed5b84a9327cee827ff095b6ce5de47579b00771199c3fa4d8cb8d6bf265fd2d1fe1937a3bf9464526eaa40712b117ecf601d912a6d61eaed46bc12898351848c8ff6bff90f7295f6e27e4f2de842f149ef222c5ab098359d442dc415494bb2fbde3b3aa06d9bd107a5a2d96", + "3965545fb648e9749f1fc89ef1bdcae9ff05c3bfc1eb1518c2fc661ec66d1e16ba4bec13c70a6f620ead0cee2b7f9edcbd170e6f39b4fe536b781885f77ea09bf821e7a2e701d1fd0b22234901d13107b18eec4c14702e9f8094c2d0bb19138d4de6d0c188310b1a19221948c52c78ae21c964ba16a869a5a847dd46688b74c4742bb95509e5372545dfa3ed165f570b75e59a8b7f29c7658e368b236d0d1f20fcec49ae81e0", + "87ddbfd89278d02ebc1408eb854e545ea8a6168bd5af7112b5eb3743c6afdfd10c251d020e7159c2da36867ca8f3a40a02699c3ddc306228c39b4420b3c7461767c6bd9456af394efb8ccc87813d594fb92b2cc2d7362f80e96dd9929424d5ba9270039b217061cf161c1643ee11c7ebce405c1ea0524edd4095f18c1f0f7ea4a5" + }, + { /* i=4947 cDividendBits=2169 cDivisorBits=1984 */ + "9ec0553dc243ca192e139a1e6205b8288f4e79e3686eb487da48ce8af58c186de75bcc308451e5553fd86eb9c4b0f5b09fd847c645711e85c25cf9b81188d25a9ebab9e9707c5e927caabd47b6faaca400c8b7a49d51e9d28d628c2d91d70705d305b15d6ec60c62fd8805a0b1597399f47cc80ee0ff64cb3c5c1bb5c13d80a45562659b4d70287e80361b8ac6602e900756e1b09a0bfa1d104b96892358b623cd8000538e84baa3c4a22cf3a66b816d1f3b4972ffa37d6fea2ccd836be8a0c5c296aba92c8833ea21ed976cb174d042a178854d9442a8d9a183f7ba294e468bded993caf81fd2394b836960124400d43f2a81780212a1146d704e7da182198b8b79f8c001a5800a8235d9bb949161", + "86ade0e24daf5158e5a62bae1e1865ff00dd995241ee8c97553b3e2068b63e2527f88a49ba84b2b87d92d38a568d71f592609c042969f7d505ec86489e579d400adb06771eb3360f5b19d13d3a0a75b11f317a7e267814f750f8f5d97eb8632b1f548fc068577475d4dae683a48a84d8733304ec2b96a6b8c5def766500259287d9d0547be1af36b8049718134cd3245fdcdc1d7fc6cbf266b39cf8f57f1a48d5736abb0410cf69c03369f25d4779259a53b012876f133d1a01746b6a276457edd84bb76d3e3bdf19e1b3f8c4c038f4820de17ab62636e2d3a66191ecffa0ca9718ef41f04986d1d16a3008022ae7eab2c592e86aa09faa8", + "012dc1ac7a3d802ef8d39855876b4ab8d1534d84428ab230", + "2e9a38102ca116172112a9919fcd76e3afae55c7690fc64c49c9db0137f1c4408513f143237892534ee4dca10e4b6daeeba247a04635854873e999489fdb6b43113d835eefc98ef42e0729dde2035f0668a079e06f2d3943cb94de53b1b05ca40c3bf0162477647b738f1317af7b4130b39d415fcbc83e1f79c4efaa8139853faa935acdcd7c4c327cbcc1c3e951d576e6d7f86846499c69cfd7e8463d83aff94caa23b554f276450a746a0e0f0a2b812a1d57c71f8758c358a552aa4c86c28179ff9ad03f8591d826c9f102b2c682edf014ec73c7a9c50f7f6bc278f3fe6bc0a1b150697689bed9a1baf18954337c4bd0ffd7be7adcc1e1" + }, + { /* i=4948 cDividendBits=3770 cDivisorBits=2984 */ + "01017f6624eba7483ccad9664dd72bf8e5ff4a64afda4316d637b5e4c62423edd8d7b3cc00f63a1e4f910daee1063f098bdd245d1c26db00530acdb0bf219d22cf411fd8328d652ba8816e0add76a2df25f74fd177848d09452945d6a356263f70695185bd542fd96208509fd17310e22f8733d0aad905bcd77178a188e4cbb84211e6d2a64a4be0501d430b10367ff8150ea26aa84148c94b7aaa9adaa76bde3d9dd35c1cdf7011c64663bf903b5e2d9ed62eed849efed2273c13194e98b9be01bc80dc02d315a89c9cea66e0c09f03d4e807125414fd590aaf91ac2dc5ad525b428c086c93a594220b6c790718164929620f03a2806f87c13def11e8079bd5a919d790052ebb4af61efed4e14d272c7c07d6c0b63ee7529d0e18f2f9bbbccd7eb794be32e1fc78f2aa7bbf3027b911502b0ec9280d040ff4221c0d3f1c5f8d88b5b441ee87170a08448dcf5a25d57bbc2816a8fc61a20f6d11e2f7e15a0101a9542c162ee615453beb8b6219992918bda65537070450fc155d430b0be2be8a9eeabb07ea43b425dc71975ec17970de720562f76f83b2da04f73562d18cc0c92e73211da5880104f45e6e7b9e474efa903df74ea5bdc5ca8862077fb563c879a007e027c699b1844421802c368d382cd778fe2be1dc568a", + "735cf81d7cb375b0b19375cc6e3419ce4bffd23f1e7cf37447d7a12b3af603a74bd9737691c17ea1b36c78f28b7f196deb4577886ec8559d0998ce4d73d0e46587b0656bd17472650313efdf6393ddc272d8a6f643da58ce55de40b5ae6b4dc0a3d270c2e70241d1488269d7dc7c1fd3e533eb72c00325d0cf9827c6af796b533266c2bf44d79f99336159dcdbadebb1942e9988d5ae8e0b1c547ae20fe4d8bb22d82e4fa3344d8b1adcc16a3fef6665ef8c71512468cf0c138876b9cb61195fabc06c2309b51a3d766248cfc537c6bfa386ec70c985a958befb2aad32a28a8189deb16929f2bb6130bef0e292b3bfb3f417c6a7cea1ad0ab3221452f07bf8f6e8a761dd00762a35e758d04640c79fe5a6201263c4d7ef33f8fdeb3d3efadc6c276dd7752baa58bdcc3e01b84face0d74a44337e908166936a5d5d00c316e65d5bf8e9521fd96e56942c0e6dd545a4fa03576ba2f60fb499aa9d411b514b4f8128688e0811e505ec293cb03a77140bb907a15690a3", + "023b685f5637faec714410ad75cf88d5d0f9fadcb0aa02db5bf643442ea897e9f5de59556a94c5b932698fd32b609d4774bb36dfb1a131e3ee00b372b0d95e44d507b6fbaaeac89b9bc13e8f04911a3740804ab34a80748a878cafd8b2ec3d32c0c888", + "34dc5fe5786cca50f86e4002b61e47ad7336dbf75f0c907a62b2cbfc1b5ce3155af1250a32819ce38f2a7ccb64bf36e38b26d6fd31e4ff5539ff55f90846f609c7c57c49af9b4cd19fd77e18b5198ece6320fbb347d828da0bfcf2e9eedd800d2b056bec17c2098f1fad3fa34a7ece0dee1b9ec4ba8b0a8a51739b171849d4875b4963a329472d0db6c7d1d9c255501ff627099557061d3349ae80ed7ff2721e649b0d6af9b6c2ab4ca18c69cb34e1da07b9d33b983fce2d6c2c9c46e77fdd07a9fa304460a74c0bccf75b60d4f97dc61017e9e16f6ddebe028004ad2ad2efda182606a66cf0ed3072b09113300eba10cb30b4ede497f71cf0e0b66e58eff8ef869c486fe6fbaf71eea026d879e38ddc21d8e9ffe9dce47b6a17abc9cfa6a8970a0dc3af24a2d201b88455be2e3f578a1d243520238084cc6f12ed1c260f62a83b3657fd36e711c46efd4e143fa480dd9811fd3c3b80a9b197a0c0a55990479d69f1b63731c73ee936bdff731e6d28180f3aa027f2" + }, + { /* i=4949 cDividendBits=1218 cDivisorBits=800 */ + "02c8f6dda0dc12f1b43f33a29aec43fdb2df229645495ea3713fbfaa5de47246380f8f64a7d8a7d71d831dc50658563c00ca243213e4e4aae71c0a40bb20d784af2853209b1bd56f29feb71557dc751bb5bdc58d60eed9762d75e7a3492482ae403b14d38b1ecb1c2cda0dae6266e520ac8782010a4760b5852922005662f7dae737070b929583514071962dd96cd4365c4508f419c35df537", + "350f2c76dbf3d0faa127535c317892d483c4db204bf69c458608b6eab5d0906471cf1fa2cddd2e42c03f17ae5b6a3b56459dcb54bc81eaabb367c3fd6740809ecf7cb6b56ad3c8043f4f6b1d19fbc1d23e259584c17a9c77fdb23044d0d214e9378bfc7a", + "0d6fe7ba56e1290f017a9dfd0364e663a70a0846e9a55e6a06895dc6f3154609a9fa7e1acde8e68a9b28186f669a14c6f74a58d96f", + "01fe8427d5593c47ea560b980e5dfe815488925eeca58a7abbe4d5a4f52b6d537fe2b691c51329e76a7ec3144e427a845b1033ca85033bab80e82730a98558a9189a49460411c41b4b346c144712fec68b790804342d41397171d7d9111fae14f6b81251" + }, + { /* i=4950 cDividendBits=1742 cDivisorBits=1186 */ + "03f0c17c7d01e89301739b2cf74d3f56a3d38bd38fcee14a82e9b5d6ef2e31ed4b1b61f577696aaf5f48c4bf366f7ef099e7c442eb4b0c2566c9097855ae33209e662d9cfba8a69551a573a9fce6a17cead91bad9109ed85eae088f58491a4719d4c08c8a2f79f1658358418c9f275fd3993da094e5c33f8d8af0a997604c361e1045db2ab654508c2049b56bd23399290bd43cca0266642fe632b929f2cfec31ee51e8b6dd50cd9c230ad773c50eed6a061782d76e8654b0d6d447edcb7fd262a01fddbe5d8d43bc7be440322a15e7fd9058c2ac6ed72e7f618", + "0200e1e02050707ebfe55993586d3cd50bfbe1fe2ffc7ae8a1665a064d10326f44e7f6ba481c58b4acc84fbe59f7a2bf03c40ff395ada65d81bfb880fafabdd361af5a3b69eeaeb2651546110d32b94ec7bab5d124ae097147cc9b4d78bf92d042801008394ee9522369539b49578670cad657e5a35f7874c7bda9d1d6d73d8ab00214703b131c991e2db12f8ec87d69b411dc6e2c", + "01f7829cef9db9cba1f7f87937d949dcfe302815941f3145cbdb4b5ae20eb8ed8d150efe5f66a23c6f0d8061cdb9bd9bd2ddc9daeddc5894f31474ece43af1f64225ed19fd54", + "1ff321c36fb78c7a7d8768f8dc24932b79223995588e2569e1e3581868e68ad1f9fefe8a18d47b52ef5f3eb210e8c89b0030a4800884ba6630b72f31e92b6d31b6ba7e1f2616acae8685622b77c6041dd88aac6c55277ee5990833d6cd2b83f3768f3139a52fba827406a6e23f52cf08a4a99129042ce2dd2ef128a6d5b54ed76a47512ed45a1e9e29f3ebca16e30d4f3f6653a8" + }, + { /* i=4951 cDividendBits=2400 cDivisorBits=2084 */ + "5b4335632303a2269c81487439184a11c97438cd39d4bfcaada596303f9987c2bacf691beae0c54fe0cfd3d14373295145a3d491adbb5f8da42f43f06cf95905a2b000f502e1e3ecbefa97c7b84aadbf8a5190e837a2891161e7bf37388d08d18fa224f8584ba02d99f6906475d936275bfc159e5ab361f83a57d86bb2c9735a43a178b9568319c7a3e3b3d1d0b3beee48dd93a425dce78464652ce2eccf9b8a4133ee27064d3e5e1298bdb02949ee8b2de317a4464232765296261e8c7f5f823e84daabf5da559bb94f9ac9046e6e9c7a4b7d03f09bb4b27078d7736dd02702fb7280cf953878f3823a5d8fd64fd5f9466db27bcee21c29db13bb007bc9eb2d4be5a7def8ca95a277216a7166632d3a4d156b8503eaae58a34e083e0d8b3367b46b0c42d2d5804b932265bf", + "0286ce29a1d61802b412b87b79e2ab199c736d5831b09f5356ebc9058807ab7ae07b5fb3b3b282a37cf7a6c3b582c7dee049aa35320a320813906f21ee53dc93fc095ccb2af0e2a2edf8b03c43a9cf573d7cfd157729b3c866faf6366b6d5485401d68fddf6bdd2b42e84141a0b94162db485108be8ba1fa0b0606c3ab63162d4413fa3c98e3c06ca5263b366b0042356cf3da7bbaf5b1e8862e8d6807acbe891ded1192690426a9aa5e48b694b9fcc285ecb41bfe62df903559b00a3ec75af9cf933ba03dae84babc272bb9c0a02d37a7c8f971baac54ce87d62fb714e404f2a1294ad8bf0d57b8afd7a7e629f0a3f319f4278e11d936f470142033c7b71a4eddc871eb35", + "241ef5247d821f6144d6db4c5d57f0eb894bcf98d7844627890d2173bb0ef6f2f0c9cec27efc1654", + "0117248faa117883e5ed16d9a766473317b965b7c2b716b2f604740b21eb6b19ff528d0a61bafe1d715492125d99a95d22904d1be1174f5d0e6450e5f5a5b681358d2ba37879dccc5b50c6432c658f88adf9e90954179f424a0bc3ab0bd36a8a344ad997367016dcfae623e2cf02851014f51906b15cedb8da6f5a35afd3dbaa1b05e3ffd23a4a34086c3b3d3090db7df3d8e660ed48d4b0d1775e08beac304a216a3efb3f22354e91a6cfe1a1f07f20ba331fa6aba41be918f2e7a3d1b2e5a14347f071b8e23d157895a13fecbe908306b200dc620179c22265b0750531a3dfd9ccafd8f7a5ecec0ba996644041fecf492a0b045d7f58fc50c3a104dcc23d4a3a655eaa5b" + }, + { /* i=4952 cDividendBits=1820 cDivisorBits=1174 */ + "0a8d409e638d781c985bb1d75133d3ece5f308cb1794303cc3037890b456aa817e42a7d7c67b8c203eff11431ce43b34f8d40433fe5bd3e8b94f6925143e3ce0211ee0f1c9c72a5a65544f8f7aa2d4b4641b3f7fbf8b22d5cd16d125a00a9930ef143f5eea59f792ddff288b55fbdcbc93b1c3e043450f695ec30046d9b94cbf8b896e0066e7c68b821399229d3fbe136c20e01232a254b5853a9acfca3f8726e439ecb8ba51f50668e13bb890a937f1469cb977242c881b426df8348f158338137049f0daeeaa414ee317a480e94eefdb4ebc11ae75a2e081d545bb13824409da29bfd9", + "2de261ca74ebdf1b38a90516c7725e1de1637c21e2a1dff1679f09fd4b074275c923eb9b15e5a8872a9ce7cddcdd7d072e2068f6f3075a7f1a978104704a40fce568ab6599500ea47e5a1024acf2b0de636c3b6c97de116292584cea6d61cc5664172d1fe5de68f828b1a0c167107aaa56f5259566ae77107628d97bcdf1747c344b6010d436c2e84f77b2b616b07bd626cbc0", + "3adef64f1a05208df576429fc95ccc137ed0d89e59fcdc96562980b440e8f4d42357fdcf68e8b553677a3cd6881f7c0422b852b6bf54c01ffc5363ef7208fdf552e4ff4a565143eeb467a20575d9cb122b", + "05bd8ad33858fa5766409559b6b1ff047e680344640b7dd9cc2e756e1d16316393a12b2c19e770ace9e72dba8282819852c312c8e4dc141463c5606714921e96a20960e76b358d75a7c5f331d3efc3b32854993ba740e79fa4d5ead4da76f52358e91e4e023754af9ab4ed3ffd3326a79259dadd0207a3b064b44f65a465c0357b2a27501a1d709bb60303295a57f4d6120699" + }, + { /* i=4953 cDividendBits=4011 cDivisorBits=3995 */ + "45546a1a743127f1f3d606e926c5fed3c429a24d937d3fa378b3833c78c9b86d157c5a33646ab70580823b6040309027d2f4f8fb54b181214d437337df69b2cd17f5b922772408de8dbc34de92ddf80593e9460376e0569ed1bd4ce4922ee435e513e67403ca5c1e3eb3cbcd25f41781e8ceb5e91b69a8e6a8c6a70b2540ce7544f0a02bcbb169def44e70ddd699ee5070ce3756addd46c975c7073a5cb7dbe4622a3e459e18b675bc62614fb42fa508e8246c26a5f48d6f8047efcdc47c04019779580cd3253c817982e3e8b3c7b99496f0a6e946ee8a734577e37c24409c6ea0adbe91504dd51b6744be1bc1cfbee390a7a7f70373e8aedbcff8e65a9cf2bc2f32e83e6dfd2d69fddc2e39f0ea481cf43768b5d82b8faac6a7ad246bdeedc18fae25f76ac9ba9c8eb68104c2d2ef7701bd92d212819eef2b7eaaeda350239271d26d6143d5f510deffc4c205318f0d58aa431dd52b36b39479205ee349443cc7a72bb67d2767b70dd2eba2a579e48021b45116ed633bbcd670c6740f86462cfd5e1dde76812c4fd21fd823e5c6eec9562be472cb7080a073f31548f78e5995ed25f8956b11ff5ca62d8595dc4c30cc09079e1ddeedbc74248dda194df4e45c906235e349bddafcebe06428a1491c14c7cd8517fb60454f20cdfe1b36e7c6d406970c899ed362255f34c967c2ed3d2aed95f16dae", + "0544720da708a16d15a1c19434b6ec3ed3a72ade0b24e3bfbeefea83a4400d2bce4a7f94737cf752fe1a7bb6c52656ade8813d1aeafee0c740aaeed6cf18870f89a61c6fae2577f5d6012b41631f53326ebedf454d7aebe2e5c57fc7e5fb1d7315dfaca378bdec42499b3101e6daf26e44960ea6b8670a2f6ee3c8b3674ac4ec52074d787b4b8f7a99add7c2522266b4bac2419fe802d1d7163125cbb61fb5bacf4fb5f3700c95611f2d81134da009f33de4641d8202796301944e44cd8b862b1f7ab7f8f6b4202bde8b1762e0fba93ebbe9391c965633a18ec68b094f0d3cdcf7665f4a9cbc0578730389e3531a62637d0399c2d5d787e4fae595617d3e60208c37e8d4716a19c92910f181343b028565deb6b00f3070ac3fd93e2a062cfbab185f097d382e5445e535d3df1d02977df465b5a7d3ecd311d3d0e2c89fd869079807ea8b93ad323cf0555c4e5ed35de13c5bd592aebce7606590f0f9f08767cc24edf1340b9ae4fd8fe5b9bb445e7114ff4d20d4d03bec1665d25872f8733085c3b68fa08ea3084a494d5fbbf3811777b20441abb566cf79d55f0ed95239298e707788ef69d953b3ce96d32f6a5f56da020eed4be1427013e9a68898a2fa230a3d28991c61ad0a47ddbbbb52f52c4303d25e6a7e22b32413155593d7c73de4b47ed9d4e6580e42ae7b19cf7e4a96e6fea7e8bdc6", + "0d29", + "02a924c900938d62284a61bd0ab3ccf4c6af2972d4c66d10f02dfe0c3acb1797a9f13ac09324324e77b547f7ab05712a282bd4161d45031b39f20ef3ffe9619d7aace8bc58f12c5066d29f1166ba22e07b5dbc6e39ac51cfe92e46e0992da65a374f80b3cef1e9e40873db1edcb714c433ef190aa5a3dc6e72faca2ae9d4eb416e85a53d1c06aa83dda4718bb334b00307c5b549902b41e2ba3cd47cf08d4cefea3cc4f0831c9a991489a8aba08216cea1c29e5201fdf7907f35c64f7adb54163358f16c7cc12025ce6d2470f7d34a00006650107a1cfa258507bea2eb6676acdb828467a7711d45ab2c7b2129861448734571f3427d4a71f89e06616313afd9e7212aa56fe011b06c33fc988db3ef6a977682e04714dff265ba0d6098f1c2ebf3721682700790b9451fc18e0bd3ce6c6f0f346e89f9398ef6b26b63b9255d82123fba6963aaece82c68fea745f0943555b576779735bffbd8ad15a4e34f3f35a7d070906df82a231cb2612ebb0652cde64c0644fea5ca1473987307e25c9ca0c095b68161a436337497436e3910f32071e036152a80361af31adefc7c15b26710df7eb314f0d35c6ea45add6b82d103f12d42477a677e16ad3e7895270d3ad186eeecc84f9eb126d4cff1e4c59e277c50fda204b8bf8ffd0ac77889da4008ad3659be41ffb69b2d2e1dc2bf51573d9de007faf8" + }, + { /* i=4954 cDividendBits=2603 cDivisorBits=1889 */ + "013ec5e0c79774e8a49c6fece72b97c421b5bb64e9273c192f67024504b153ec5b9f12adb8e21e88ae8eca67798fe45eb64365a185a918c50ba8c827cbc2d19ee34ea5730debd4b704ecc8686fc75b72a9722492ae381ce69cb83245b2df32752fd388d192740304d024c2a82cb0e836dc3b42717eaabd0c6b2d2103c08c35d038f6e15f043f3341a70facaf420b35f37b305ca85432c4e69821fc5657b85f5d6b2deff4f9d84bde0eb3fec581056907983c32638c55ba4be06335de5791b8ff04f44363f5a3c6aa59aadd2c45256c69c127d1f9dd7b51becf01089f9372c3a09e64de692d19c541c5adce9d946787d2513dd3519a249917f7b7532d7a3e9fa364c69feda2f0b20054e68c52a517386d2d4e6afdd9ba55ddee1c6817b11c535d204191a11018d36a84c24c8aca967ecb640633cb6ec1d54a715599fbe24a658334216061bc", + "68e92cc594906147132a3fb5174cc545f7d1af8695b1609cee9f453968d01a8f397c0ec0b4dc2079a1395e5d7a2a567d0fa6a89702f4f458012b7f9c768d5b7b8b162fe6a8950fadbfbf1a5a3dbc6c7afd81706bb3d9f78652057dbfc861c3cb1a4926aba90a50cb0e41d77648196f94c2d04582ca13d6c54791dd840354dd3583300fdeecb3e7dbd7444db7636732d265d562f7b8aab6d63b1df05ca5e47198c328e5b6b066d017a156dbd05ad7ea24784ee11ed419cc175898792874ef70e0b0bf5af97453f17f987b65428fbe4bda044e30921c399d6575ce1c57339081a11710eff8edf0ed7d19f3ed42", + "0309dbfecb251466c25cc0157339f788450467bd7b655812075918ad99fae3fb1a5c933ffcdfd63ad87ace3c6e2dca2c3fd358fbf583b9f73312e73b2361cba036c888a1d97b7996af2d0b9ea7d89c5feb65a4708658f292ad", + "3db68c2b21fff6d0e952fc56c3dd191589795460d988671ace3e0fe21b8835cfd1412221273d33f056369e27d8980d34921e51e6692fc0d36ef5dcb5478d5dd94a621d6257403ac6625dee7c06b5dbd67943c9703ff09dc00658fdb8f5a65324b83370bd5e12ea9457eb6da8fdc9272b3ec2adc68737786d3b81187e3e7fa949bd663f770751e23e635fed7e74a12d6de7ee64494a4b03bd466b4f85240e24bcde175d637cb419aba459d0ef8fabd27390246704ba93baea0bc471aaf82ae4cc5918a24686346156dab01b6c66f461232e43e6def557b59aee3fc60ec7059f219b9ce84740323a2b81d56822" + }, + { /* i=4955 cDividendBits=3064 cDivisorBits=1413 */ + "80c5e51020cae4bf84c4fd7f4f2634b2658ead203f9f2942b267e871572c6e60a33540f2e93fe041a76e247fceed06a77845b7eca1614f4af3edca6dcfaf8b19bda257e5c64603cf252b0bfd09c00fedd534eb20f1cb4544f562d8f082f8a3a4c6a250b2d72060e04488b2346f471d8e8d6be60a119b1d799ba490bf6d54fbf1894c77a3487a9b8c96e121ffe25dafc4afd301a1408ccd02fa7056d873902356fe25ad98ad12ae7949edc8475687ec6058c651073d7ec443632e30926f1e5c69b719a5a64e74e494944aa8f63ce8d4aebc7a48f1943eaaa7fd0fa11ac9f963a32e44c9d4c9ab0254113e31855a0f0b0b29fa79e2028e71274a81554bed449be73fb5e2eb8111ad1cf3a5a2b796b1d19b2ed604410f7023c7e2a73a88bd29e75ddecaa5466c9e46cae34374292525ccfb6acb653e68d0742ae556a62eea1374ea9c613e1b65a5ee4dabfe0cddba35c8a9f1b0850e55e37379e93d6e9d45c1db3620feac30cca055edcb116ffa3c4c93aab938b94be81455690f20bc62a3ef99", + "0dfc81942c0565c4b1e186060d5ac6559bc75bc677ab62d482891836f9b9d0577ab9f75aeda78fcf856b0098a78e552505a985fd9ac8daa3c1118e0043169d2ad5c2ffef8a8f281b39bbc7c37d9378431782a637f437564be40a6a99988cdec8bd8a5fbbb8a5a334fa4b1b22218a9a2f28cbea10beea8bd1929276d5b0b2d0ee776456d3ccaabf86be8b97dda27f7f5020638a4372f0c0a5d14a7de0339a624b0917a6ebb0efbc29b8c899fb08ef86a60c", + "0935012559be4c0d6a222a03c9e7740d8adae58f5f9c6079dcf73df0d40ab4811b01f673b08a43ccf429fd14e0a64fed81ffe6e8bc9ee6d9e0a64f88f46467b7900363f62cb582bb507de2d966490184cde8729fba3edd63e8c967f635999fcca2f3d92288aa3dc1ea23b39d1ce98505b805628850907a37d3430651c2448866bcae802ec9420a0b71c01966dbf2e515810165a410f4bcf76c6cafbb7f2593f70eb91e37a4da5c2e461bfea391253be34b23df36ebf1c413e39c14fda89dff6a61a883ded4ef5243511723cc533e76", + "08a4630fa184994aac40e5540b8ca20e978c4edc2ea7b5eaddf40242c44ef796d88f927767b9fce8a486655cb7f452c0a83da8d4dd1bf26e8b5902ef905139203681764df174c57ab836f5eea4c8bbffbd1a4b61b0f935843853d9428bc26b947306b54372f397278563af5143dfb884103637f910c16873f40fca43807f8744533ed7be4d7877902ca8b50b996260aac4a3cc149691e847d70289c18c8f197c5f37a344061318cff69e6483fdf8787e11" + }, + { /* i=4956 cDividendBits=1515 cDivisorBits=189 */ + "06bcdf06616d75a5de7ae65f7bb2f95323e6d9c871adef24a852343a3529df6d15cbabe8f9ebf838a28616d9c56ef6b5d279fe473c560983270d116c255bdeb4c1f8103161269443073a8340398b1b65b5d44a50fda21b0aef43cb7a79b2a24f3d47e45438a11844cb1650b738c5a30b21c7bfe111fc149fe4e67ff38b903ec0011aadf578c444342c03b03011c5ad165c175cbb8e8edc1d05042f7419103a99bb9869b6269b67054ce42761a65f69a659b79891dc34208207ff0360b193", + "1f55441f4215034e8c9b63aea04ca30bdba8e1d049aad8fe", + "370caec8507864fca40c6738c6c45ead2ae16d10dfec9aced1488635a36385dd541bea6baf573852c12e80c887ac298405d0ffd5f5f71b2d300414bfa9e65c0347bcc49e3fb8b807a96fd2b61922ce0e2332b79ade18d7023f7da0103c8c31e10577296f8fcc6c405b41b390d37502dbe9b5e9db53984e71987a3d809c2580b0ed8134e172ea8768a82a0961defcee0e299ed959a0ea01b706394e7ec22bade2ac2f61c0873b", + "116bdc438c40ac9443e2b9a88543788ba2fbab27f412bd09" + }, + { /* i=4957 cDividendBits=1938 cDivisorBits=998 */ + "9b958f14433c92d1d28a16db68c0728e87767e0232d65c0623403e4870a32a34b2242d2b2ae61e92dcbab75059fe09bbfbc8a7208bf1057389ea5a92e34f3094491a3cb59c6c43347b6a75e1a684bf3eb3aabd43d0afd954a6f877e55786b959c848e6b546217266013fb91e352b6bde37eae47a64aebe528546419439933814f731db6c8aa3dc24b0bbc3b5ba883593e9b4322a53fc5a302fa8ac933e89cb53b66cb6667cd00afc3b2127b62160ff9ab5b6c1a4507f29b23ee6c77148dea6f748ae992ec5ef81e8c416b6b2a0416e3556f41c9f13a47c206dcb6764d01fa5dc7c502fa0b8f888ad3cd0a49654795bcc41e8", + "19865594660948667cd0cfaf464230459d71eb28a98ba7a31a3aa0ea865cd8c8e2f0c2f15815202859652fb41aca29c289d5b75d53dcf1955eeb0ff9189a5677533494dcc9b4e90db96c5127b195345f0e977d28e6745530db488674af355cd30497e7644e396b6904dd177a0961fc5d53604c8c87910f6a441fee9709", + "06186dea7fae83ef8541a326b0b8a1a8818c8b894ffaa1788637aa8a48b1003ec4ec95432d54ed7f29a4d31b1c46574e13d4acfa4e4aab5c2b6917c4bb807816e0051fd2e927235c0d24fd62eff18be0f71657db2a672a433fb2dbe20a10cefa815cd5e966307d21f70c1c0bd0a8fd9174903640f081", + "17de2346bcae7d25bcd6fff4be63581fe168b1be1b1c2ecc7d12556ab4da1fd7643ebe4a6d9a27b8c42a6596183a7a8372e547adda65faa61189e23f99dad22423e6b141658201cc72422abf20e168198a7f64c64b9ec4fbe18653fdde4f1cc66bcfbdff41c0d2bb941d2178dd91fb1d502238dc23a4af91a3eeb9b65f" + }, + { /* i=4958 cDividendBits=1653 cDivisorBits=131 */ + "04942397c6bef174e991ae86683933238a8748746eb83ac3ecee5922cf0f1680e8b5cd6de6e071430aa60e5db9c7e52cba3ebefc9ab57975db162665426e51f84f560c8824d3fdeded4d556733bf7201bd7977edb0d96babfed252e96a5aff09be4647735d01e235468f52361931a3f4e416d997d9b6d646b39d5e6c52204c0a2aeff2bb370a29c2caf5ad000516219936d0626947e803967ab228f55a278e8ce189ba070310323cc5b6f73ab258ef111088dc2c2f5c9fa1fa1a1ab87de91e1fc119fe6f62e010da1ab1d687d0c6b1", + "044e4d2a486c7a32c19c4a04ced8a9b387", + "0110381c53a1afbe91bb051b23cdc60fdba8bd124648cf504c0b9186b0539afe0cf0a4a07d94fb8b9cc71ee82cb961813ac287346b4ccbfa645601c59f272b4784fa9bd1cb496ca9316227dcc9747286640846e0c82918a60731ba69dc9cb6224824b9f00bd508a2f61ab94d461636e8b28f3c1701d5a17d7ea7f43da0147476a40170fc4e72cd1a59e69a10f6bf8bb951757a125f20d5e9bd72b523e7d8c9c50a70db93872fd1f23542c261cb3589764058fab16702d719c2504355f23cd2", + "0206d2fc10ce4f0db11af6f0047de9ddf3" + }, + { /* i=4959 cDividendBits=3419 cDivisorBits=2388 */ + "0335abb3316f6e9dbb31a588da2c97e6e24d2806a5a47fd1f6b6585556b0d00b58f360232249ece112acfade7212b4780d9231a2fc70ecda0109a45fd6b805b9a6789e513fe820422c23aab7fe17a0ce956cd9bad7b752a0899be6f03709b39fad36bf9ff836f7de69825c36dc5af2df7c2ef5a004ad9b52f5fc751fb2cd22f22debb965b64a45a52c38c0480fa76990366e97411921322084f537b41cb5b05271e83c378216d25ae5badc5315e145a36665b5bdd579e622b0a2e798e30e09a60467679ab95819b609b741cbf9c6bc9d9e1bfca607b1e488028a223e0c6a40251ce5268d68fc45337780903540c1774200dd8170b1af170db49cd9d63c27680ab4dd23eb44c08276b248b0dd09b91c3031e2f9af551f571aa2e36f985b7d871a70a7f36b2bdde635902e63f503840b7125f292cd3566d5fceb92c69678895d465b1dd6dc9d8e890eef2febf012c5150c40e0c2ad8d234bc550041b8cd7b08ad8906918e7a6f14b50f0b584cd6b09ce4f67a1fb30ac1588b85c53d2485d28e296482be99ec9a76c1765ad1abc53d2d22a5c9ca683e8e45f472aaeeabba8c06134d34562d7ce1967b83d3f62af", + "06a24dad1d1fb3ec6ea27248854538a95dadb5304fac9a7854dc548f78829fcda85121788d3e176e7c9516ad40404bcd2bed433ade4cbc1a2b1dded9ccee1b0e25baa53e083a7e510d4e880feb46e63923dc825c7df6c7e3a4e27186051f4db8a09a3ca1b86b40af0b4ab940cf9dae9bb43c34345ed23cd38961a6b7f0d4411457f861805672d9d0f68e4c57a17a3a826a98a93502b53cfae1b379f682514cdcac738edc58f7536dc4342d706151e19b48177eae832a79d84df73d3ea2512b4c565dd80833983bfafc2725a95c60f373ef18d76c8b8aa8c86d0c19a13c6f9b97f554e842f607a92c52de08bd5e33065cc39fe30307e3acc2952156b054f467d42fb7bd4eaa19fe9e1c8e1789b1b58fd19de283f57b5c12352d103aede3fd6de07c94db38002ada2faca2f1", + "7bdb885a74ac5f57afd6fb98d84c7e38c22fe438ec1eddce2d143bb9362a69f38af71fadb1c1d057241805ff128d1fa7e79ea1fe967da90b9a12441b21d31622f147bb5f13c217199bfbdcd0e8ad9dd37c59c8ce70c52a3d89c374b04321d8e7bd161199ace0bfdc9a4d0a93e4949972103f845311fe610ddbde38def21a973a8a", + "042d80abbcd01756c5cadde2bf3a87508759d38334cbb0e7d0081b6b10ba4b244652f06072f3d5b1cc57c011e4aa621f6dd87a37c55ec58b7fa027cb3f93e6f0f716b2497dc26572018a8b6b6d81a3016486c5be543517a2aac13237b9eeab3c84ce86769013c1fa3727fe15eab5f996d0902515a594fa6456b6ae384a616b3f7e4e593b84d422139273179383bc9855a49abf32391e875b84d50a157f88e8f7338cc5570b643e0cdaed64463abb1d77cae35c2083a07cbc0d00314b557305096388a8cb9156893f2dab3c7cefbc47f170886ac84473aed1f7c7f90d95fa825165cd55de9884e88e18c052eb1a458cf544d05a163c5ed6f4841ec36c1a50fbda22cd4a337ed109b82644decc18e0fad425d72c931ee904038254e41d998b5d72baf1b3bb8c321ad71df2c5" + }, + { /* i=4960 cDividendBits=708 cDivisorBits=638 */ + "a88a18f89c8183de025d12f4b621a670cb67946fa21cef7098515033cbc1573c9c91c376097494afca7d86a7bc4f0f99e87569c635ee5a70ccfe979e66e11a5c5f005bf8d51d91c4f2ab0a359c21f45e94de32621ed1d721", + "17781ba2cc09ebee694f3636bfaeddfefb8ff07c577f4a8e354567061d347f0ef311f42b6e9cbd42c8f624532dd667bef455abce79f409200c5221367f095226678187c0c4cb0edd3319f06829b42dd5", + "072e6a760aa0b52e4e", + "093b8253ca5abf3a382499cd0046ce4b5df578790b523032f75c69b3d3bf67bd4b738c7ac4d35e6435f7a7b0699fa790515880278e5c95334fcf0c19634df70117410e460ce2093d57b229cb82169a3b" + }, + { /* i=4961 cDividendBits=2637 cDivisorBits=232 */ + "0f6c15e945d7cd0bbd1d2b907aa0b9e308879802ce2f7dc41f7a641fcb823769eb0c2a62652085304fa1f801fc461da7aeccd78773dd791e53f1d8f5cac20c96c933527ef14d64e1a842cb8c0a7246786406ab6a1ea09081608f3948319ad6fd447f7662bd8f7fc62fe8c660db5de751e3bd09020f90544fd8fc801c60ecaf8e8843d30025b60f99218335af0ef99dcd97aa9e72d2fc881e68bebd4d91a7d6daa412ec8d7d0c3292d7fd394b2782c15073ff4465237ed7d2e8895ce3cab237a73c3c4a8b5dbe451d89a03192e492d14c60f28d609a12c594478e9053f1a7db0b2e89618e14dd0dc82637d5a346cb992ac9c310ae252e6f12fe4bf66bcfefeebfb782774f56ef09e5580e2f823d9df87687bcc4b395133c39e101035fdf79baf0f06a3d601ce0aa5e91858a8bfd45ecec0185544fa457c7dca9276850335a342a599574e4e06219353d1f", + "084a0b075737203dbf5e7a849dba7ad9db257026f55d4c3ca0d5df4058", + "01dc4a7b961aea23bb6ba38e94815e20981702d2765013be70ccceec0e675c19c78acde96402a14c843cc15a2efb3b58e0ef7434bcf501a690f6d60d0dc0c029cc552709bad74952a23c23244d862f701f0a430caf5832c56b5f00e60ded8f2f7cc02130762587437ab776d00ddd63507f867b05b40cfc8e48505bfdbe3a0fd8ef5182669a3cff7ecc77b072cb1c8c8f54bd15b43fd930cc30e6d61f6f15acfed4bac385478f735e4a9fbf2bcc38baca5a55d47e6ab0602b28454baab19ac1d0c2f1c6d4bf8c7c241249039217d68185f4bcb5fa95a0eb6790d1ff1305a7a999abc7574f642e83d6955b1803633f00d0da953f8436b2e8aa08e7b05a8a388201ec4265a1b8f06d9806e3bff96b34675565266fb2daa3d53281ffaca4b921bdbdcb188d5e1618aeeee2fc6a0c9c01", + "02e3711a333e4752902ba9a6ab4fda4931229ee66cf22d23b1c4005cc7" + }, + { /* i=4962 cDividendBits=3256 cDivisorBits=1097 */ + "b96cb5e78f47e47ce22c5463ab29eaac24e1066302bf61f3916ff67e0df8c33cd1140244bdddf66555d3e342cb2b61200d6b8d96443835fba9deeaea8688cc909228657b9d9d386543df398af55e931abe79d97e511f581e03ba3acc9247801c4a21c3a1e44a362582935e1a07173ff0119d60966e689c1600dec684916c5de9db33870e1e49d02d00c3277f66dfedd097e9261f5f9dca6d50d69814b5e50ddf3482744df83d237081aff5d53baaca02dbf97f37e3ada9d974ddf534d400a02f4592f18ed5cf5e20c0ba8666076cacf315a31459d7aec0b3b7d1b48a5345e4ca1a1d0c0e98bb76e421a78bd73459b8d5f804425a9e105b017a4269fb516792ee4cd8f9860d91aefd4538461c619d5ccb2f6363d6580d81d4a29fd5ee4f503ac8260911fc6002260262f1de8bb5996cc6f25b9320fe78108501697f26a6dd7d1ac74d995ba499f937516e8d59eda8174ad0f2f4f78e298b3cb6987d1d2b778966051edef52ef3a02bbbc1f779aef3aee6483a79d76f7554178cd0fe76379d82e3e4959ccb4421b7dba165efc7ecc6ddf5c3e75f043ecef5", + "97a79ef1d9486a8249686a445f7a35a49dcf8f8086263db39424336fa0ed42324b0ef1a4069361bd4bd7c84d74da50b219f2a3116be5bf258782e016fda9df4d742ab2ffcc91b904f65073854600b8f283858e7c6ca2e92388dd6909ae381cf9764d3776154762ad8de8b679b0e2fa39c4d75c7a7af056d4be46bb52a9d2ec18ce8e9d48d49943c080", + "0139014bd18adc56569466dfdcf27f0926ed50c6fe8375ff0b955aaa07c8b5286b361b329def0e0e1614def048615aabdbdc85a064c7461f2119d088ce4595ab5fe9cf5bccf5095ef814ea200ad32a44b6106f310263991ba6e568e5606a25180d31948e644dedabfdee7e19338cb34baac023389f6700ac66cb719f46f830a882263c86e6c2ed477c94f9659a06b510a5d3b7113f9d665daab3225cc2e98d9441f3b0eb3b711ed77ec732d0fbf39584c1f7fda5e07d2ff2a8b9a114017bc7531d626db295ac3d22c21b2bc416048307c91dcaa831ce2c2252e9be993b79af34c6294deca98f502b0647da658a88c33af49a93c595e92ea7f7a3fec1aaff7aee24fb3790ae42d628f5df6b3a59c5aa", + "08ffaf8b6e4d86af0b69e24ecfa605884bdab54631aeb8563f126f0d869061b1426bc41e1cc7c6680b6458561dc33b34c79ee45b3605cc48e1bf4d85d293363dfa108420494d6204653e414ab3cfe6ad05636d8fe43e9dc2d902a51c85b13be37fdaac29abf9579ee17ec30e21f7adae19ae19c66713efe6ca6746ce9da512517c6d2258952d9e79f5" + }, + { /* i=4963 cDividendBits=1644 cDivisorBits=954 */ + "0f28135cebf2464b02726809196230a72ba77612b12d0e20b52884ac8d00041fb1aeaf73ec5eee28e34ce1f9a40ab8c7484ce71601ab341e65b3d37c30cd1d5512bdf096c1035a6404cca6a657080667e12d431789b9b6823f5d807a359742cf32ee9732235fd1b9b951218635157d08642ca110c66c2bb6361163126a7e4332a9d7bc19f556f66c27e96856850396a23b40e35b3c9382e4c20fed7cf701d45fb45a362ff3628ad2a64b06fc3fa1827437b4859d69520e9e87723056d1579f9a5a978fec27ca57888d167f51670a", + "0305706406f8ddfaf3b1acf3cef7939cc490e5655f576c939c8bab4a28ff0b9342b6ad6b3c6c2fedd30fb44d74ccf9a6a4faf496f31e81c560fd0ee45376ae45ef52543ba333e1b8f2d209654e4209dbf32f02954ea4b87fc51955f8f13501f8eec06c2ee99ba96397973a2b567c71fae169c6525d8c70a7", + "0504436832aff771d8134ee664ea268b56b6bb668c4e9275fe52e0d9954411fa7f3feb52fa3bd94682d8a8dbc4596a28d8c66d8517a19e11d9308dac79156d129f6d2c8d61fcf5a407a4c07aa7793d790745fb5ddcdc06", + "025f7932df43f53b850f79735741304ba2c464a993d3d84326c0c2388ca00411591bc9d01fa374eeb20be9592b3f3daf2edd1efa166f46f4d4563364460c10af8af557405c91c4b969c4d0614fcd0255f551f2e356f93f68de7d325aca044cbccfa97b0eefb3b830cff31123e1486166373a3e6922b33f20" + }, + { /* i=4964 cDividendBits=2104 cDivisorBits=1701 */ + "137a43cd83b43256e199971a94a17646b1e3d84addfe826a8073d231da4554eac78b6122172ebfec4cfb5a4ef4f15fbe527b5f0d3de164264face36cf8ed40044aa853e27f45c5f5e4f511ec385955548cd631634708071a1a3b31a8161f54b314e158a5c3f2b902dd8d1b083a7178ec155a483c9ec214db45288b30961040f8a95d42327b0ee04467b1769a117e5d01aeabf7153cfe0f087f162e713448c05307699a313c2743c3ad29ce565ff94b3e74ca44279689f06d31cf349d26b1c42053f6a81f71bf1916966652f408e1adcc1ce2192126a0798d90a1d802fefecd5fd4d568067a100a52c727c18ae9debae5b60cdfcf62f205d94d98cbc5ead85c0461d55302248c29", + "0809a81e9c74c0dd825082e43b398e332e4aed94c2ace9f2199ccee7c94d6dafbf5804c0793398aa1da11e308adcc63ea0a0ba5fc51ecc04e467bd908d61c589ffe093b999bdc6f3c53a04d595a5042e1ea1da606561c28e0ee939766d9e1e86aec208041209af58f946ba373b3f1090c496b3e2e015a7edf5c9eba44b11f630871a5ca5f879fcf3bc8f444243f628f89f8ffa4aec0705add6f2726174252b938aaa038e8f390447c52306b7323051c91f8e5d923b3591c3d49a6b175ad6b220f48f68c23fffe981d489103c7906e644a059945a8d", + "026c5ba5cb9bbcd6ce1b0301f1cf3ea8ce9242b32e63698a3ea23fb6d0ecc83d1cc8334167f4d04d8900f444b9f7fbf38f35d1", + "7b31a2a1662527445edff871705d2eff03da37be1fcaef9fc904974978380f3c1b9679c7d6f8cf8a6b00f50ec5c8da9ef0a042b0eadb283106818fc1bd418f5222624fa420d8b61361d25ce9e14b63ee4fc6253945073c83ca8f6ef4e7bfc0ce937f2a13435201e1ad7719b760a231add42b56f31a9d2d5413411006220fe633f6d42465654c594475d33071fc95bb6b9ea6603cf65b78c6d6a991a1a3a6e2d659fa0444cd0035164d0f5b861e816a7ccc3a7232f3f600fe92892a275c4045673cf7b30876997a747a798b0e4fdcecccbd846e0c" + }, + { /* i=4965 cDividendBits=578 cDivisorBits=197 */ + "0204272bd9ca6bb897296663fa9b64a1515ef3dbc5b2992482590aa88efa7f83a892d376066c3c9faefb4aece848221f75179a97baa1503ee3d462dbc6c70e558b0e9a512bac70aaf1", + "1670ed15afec17397f8e8d0ee95ec35f2a18c304c42b845468", + "17001557240b29884f0ad91d467b2c38c856cdca20d1c6b789c51c40798297f4a096810134576a1d8bc6cf71d99987cb", + "13104ee8509d54dad5141d7786b139b4c57c378f1fc7d6e479" + }, + { /* i=4966 cDividendBits=187 cDivisorBits=17 */ + "03b68052d7ea396f94ad0006d237cf9c478459602ec6d3e0", + "b03f", + "05649de8b3da21195c44ca52f413fe185c6540aa929e", + "1efe" + }, + { /* i=4967 cDividendBits=2342 cDivisorBits=291 */ + "12ac8cd693b0263961c456f568a6a4a25ad99edf1138021e45ca48b640378de5e009855c7e6cc29e93a1cc16333fc64e8b0823c8022a5800f71414998ac0047a8499e69a8e1abecc31503a216de68fc3d2573a8ddb3e460888c37d2894f3cd306fad593ce615d6680aed26c6a0ebb3af4ae21bac29c7aa7af7bba189d58aca748aebaf1f4349767445763d4cb8dea8c339c4776e48b1cc3a9e15b23ac5efbb7072882627aa3c0e6d1d5670344da9aa31f04520a7a8fc654d3f6c5cb199e3092e99fd3317e7e61db6515eb7750ff45f567552986dbff171a2234c571d4611929cd92e8c590a2299feebefa891891fe02e4e74c631abb95e830492e70a63d988b214c98e3b63092eaa8f59d4b366c91cebce4875064f1b88e0e6a73af57a636fffc05d27827e", + "013148d86c8099808fcf674b995f0a96c954d95d7d310f2d8bf26bd9effd65e7f40b3dbd21", + "0fa8c98ce00cf9c691d2002f83f83be515fb03860254f3eb04ea6e0eb0e3be224d4a505b20339f5edcf305518f26fd7ec69eb70c03c2306d1f31b27638b382c8f8610e7ab14415592bba73bc9e95644796cee8e8130ac556158b3a3dcd50cf5e84968543fc89ea8f723f4a2977dd49397e0085d7d70ddf0668e1c91f1bc6d2cf9296f2f1ab7a19c35b5e58f7a6e502965dd7c514ac09c07a591ac81a2c04ee1d8852dd70db1039b91f1d55e4d030e74e9fe013a8dc01ab5e2ee36096fd36490b55b3aa4e0ab485b398afad56b434c8b87ad8f35f439a90cf53de9d17085c4ac7ce31128321f6d8a33e81e729f6d054247a43a9468df733bd4fd9e4f9a98ebb90d5", + "45f9e3cc15625ab2d4db210882388a8b99f8f884b7373d968d0570a28a915295d34b9609" + }, + { /* i=4968 cDividendBits=1385 cDivisorBits=301 */ + "3931b9f78aeb24a356f70ee42cc34e9250839b63cbb2ecb90a4f13615f890986fa4e1d634503f38baa4ace57be34bb161e66f59e5dff4dc9d076455ee790951182c04226eeebe886bec7b6a9bf4fbe5de5b7b552012bcdc734aedeb54872b0ed8f49c76f8efd1cf7cbdc0df3664705aa8879ac00cb0234c42973470c6cc57c45ee57769d4229bd252f5d67c32f6f140bc1a7f09614109127b6be0a1a2dc84be1bc2209e10043992001cc8fb956", + "086bdc9aca9dff67a08e98285c674c7af6d8c3bf7e82974bc41ae26e149772285fe613bd6068", + "06caa59054f5db332d2a6bbd065349ddd4e7fb9cd8e895feb3d5ad693a416f5d4de6dc9ea7400fe1cc55807709ee8ff2c15c79ace989c1da80fa5660aebc57bf8e6bcb870503b8f0e1b5cd2ca19b92fd52b8395a16daf5a350d8a7f83c855dc71b7ff8e62ea7cd37acd33f860643183a81a82af42128838e27efc7ea0318574be5880cf58e13fb11", + "01ac9ab0091d464dac72c65eae0abbd861897e778c9fc126bec454f61d6557db864ff7be5a6e" + }, + { /* i=4969 cDividendBits=1272 cDivisorBits=580 */ + "ec4f04a13ead4921ea781cc86fcbd5b6746fd3437a2ead61048044092ad0dcec396a904c4ea0d97e541e6835983a5703c317252b4a948c830d0eb16db71bf65e1a383116d42b2932a0a4c2adb993ea2416ffdd00e64697db61e59030db1e00074386f7e3b7431976cc8a8d1c09c67efca5377e6c216ec2e8174423a1b724cf132a89c8b5d5d444d36bc9e2e71faadaa1a5a64fbe4b95bfb7a7a614c4403c8d", + "0485dc8e7358b0078b9aa41f04c4c0a66704295df21c9316202c9acfe822321f8d733b072ad9a99e3bf4f075e3953db450d220f55487ef95a71a7b1b84bfaa44a0f312c85f7cc30e45", + "343f482b7ef2462a92d99014b0930fde14c76e245a6c61749e613357753678960ec83f1b015e2c2a9f105f80d56135f66c9fef38f2f1be7d4276243547b5834ace1cb5d3ae27d30d01fcfb8fee259a883bf442148df8cd", + "0255dc8e62abd3a04491524231ba1c14a0a9a9682478dfdd26a02188bd139b8e9ae85486de2114bfec6b6d1713ec2c0848bc7bee3142d65ab1297ed9cd692ac1d0075f4a6aa639f74c" + }, + { /* i=4970 cDividendBits=2570 cDivisorBits=1431 */ + "02d5eae04774eb7380cbb3221177a3f5923eda7c7d3066884c3196a8cd5fcf4b2a11b513852c59c808d6ea54e7228fd2d35172edd4a584c6bd7610b5cdd2242a94193d5f2bf48051941202244a7de7dec9f92d75bc4cd6a7bcac3569de77090d55bc6a3e8ee1aa16d7a4b7c2593d07651bde9e7bf3b5c580e2ee233852f83a7abc4075eec1197d212558092bb7de5079c997f4bcaa981bfb0000dfebe3ae62c84d4f08e5bcbc2b774297792fd6af9dfcf58d21d8f9eee9ca91bac209c1577fcfb93ee04801e57978cbc202ddeaedcd3985f75b9a8393c494a7a897ece1b1a869c0fbd887ad755c51e763ffe9c0508a13b3d237856471f9e9b4c056bd643e52c49700a494a64da3e9b31dc8565a03af606061c95f2ccc7423b6bd6d695fd6247bd036c98fd7ffaa20e21cfc8b7a42c36d75bc80c7cf1fc81a69b115df30466f2ebb53", + "74a1d6c65869e477eb45266e889ccee379e615027903ad9a7b1021ec8777a38cf42c285d61c9f9c952519d1048d904eaceb8b2ffc7ae54e4bba134dbe9748037dbd12b1baaa4b8fd5f5ef16b80ecba1b74128d85c6a20a2f00259455deb5884811c32d819e388bc3073dcb423a2f6a8b16c9d51c2c9ddffee0d050a776273cfbcf5272ad50b2bed590014ae445f86a39f282ffdb0f09173c6693311a463192a3cfc65223e59648db153f4ba36baf6de7e3b995", + "0639576028b2ed1084e81c5f52510ab80e2f5d1ba61ae2a965bc24355fc54b6783b090ed7ea4171c43aca3f4ff19b8705288e4d13a1fff7166c1f4acde1ba0c4ccf0cbf62ac86639064aa40afab3684734c91738201a85575a369b211607a3dcb4280b93f6a9edb7cd5ce1bcc1a57753160a0d62323573790d4acc41ac280b18c403a354a00b47fd907bedfe413f99", + "510cd067ea6383a08c05c01dfe6bca2ce146735f1d0b3e67d44f845dbb095beb23894c6d7ab9441b68bc3e528f13a4fd8ba06cc03642879296732e3c778fd6cfe24010a7f2982e170cb9cf938dd9e39cbd563d2a6f316681cb8cbea45ec17e81424526a86da28f2fef7487070c95d5963325aed538e18d03a1a2485123465b4b1f95c776e61750bc63e1bfe06681e6325d45710d96844c65b73d2badd0765fbed00879b0252071313f0ce0968e12a0d8942646" + }, + { /* i=4971 cDividendBits=793 cDivisorBits=296 */ + "01243e2f1dd14e0da8570ad9c77a81beecfd07c30ad757bb7df90a67f062c616f1294f3ab09248cf0b6317cbdef9882ab8a8c4c5fcf9156d8d10041a19991c0c46c20dbc250687b2245a0fa9711e4c190a2ac1dd8fa56f0b85f0867f59dd9e1ee4d935c1", + "1037a97b582f84d98a7a385a2802ecb0a01fd62066bf47c23555ecf74c40ed03ced8be0564", + "120532337e8deb6accce59c50a8236a0002252e0b0ab766ed01572b2f9e54daad2d95babfa3924f4c689e40f45fc3e08467fd9fd091ea55528abd02b2f9baf", + "0acc2a146de30019c3592b9f82b72578a9d6521017e9cfcf66c54a2921f189e372e453fa65" + }, + { /* i=4972 cDividendBits=167 cDivisorBits=139 */ + "04c7a483e551ed8cdfba697bb5e5a9853d12d4f4a6", + "03e70aa19026b3894442d8b388189663bab1", + "01398d94", + "01eef0cf62c8deba403455d96c41f0f08952" + }, + { /* i=4973 cDividendBits=46 cDivisorBits=2 */ + "3ff0ebd79023", + "02", + "1ff875ebc811", + "01" + }, + { /* i=4974 cDividendBits=323 cDivisorBits=106 */ + "02de151bd4f6aacbeafd28f4a5ec1f4bb669b2c0ba684cb6969f4a49b38754eb83e37c3c6fa0272865", + "2cf59808243437872f88d8d591", + "1053e3a699bc5f9fa2648eae63dcc4afbbdb5e7b8849d08d2951228e", + "0311c807f3ae7978381fa26ff7" + }, + { /* i=4975 cDividendBits=273 cDivisorBits=2 */ + "0145651f43ff9f3ae6c58745fd55fab4e405a03e8fa9c30cc05c03a65985de7cf4d041", + "01", + "0145651f43ff9f3ae6c58745fd55fab4e405a03e8fa9c30cc05c03a65985de7cf4d041", + "00" + }, + { /* i=4976 cDividendBits=1467 cDivisorBits=252 */ + "05e7c289a605698d9d4c692ebabf862b248212fd9fa5a4817f7cfa216ec596e138c268343bda4d71413d5bae22dd3ccd61216c5a81e332ba7a45aeadf606559c310562129eb798de8973f6a622430bf6ba1e0dc6ffc4f3d086d50101930477aacbca79af4ed2f2d9039b17d5b4f56992ee781d49c65f91dc70c3d1d100751d17610999325e6f1a2a1a01ff7d418731d109a162a3c662a449e85ad8fba8370f45c6dfde8c7d13ef8f06be9538b92f5ca2f3437fcc5078cdbb", + "0de224308c6f622230aaa2bfd8ca35f3aae435d0d1fc534fff6abe8c45cc8e4c", + "6ce3d8987f9846e4b3353c63c8a953b0c4f64dc5e0b43ed4865c1a2d8d4246a2dc6d1ea01d09c182a3e103fdbbf6778a2f470a3316496526b2933c02b5aab61531b3a56a8b592832eb004cd83df65779a0df6236e12896caafab23a5c615c31a311b8c37c010beeff0746b89c6c680d4f7784ba74b0cccf640ad475021910b13e5df178c4bed88134b61080e55d4a45d9f015e358559b7b0", + "052a0f68dc233942333d67188721bd78224a55f50b45fc7d9abd51b025b2a57b" + }, + { /* i=4977 cDividendBits=2609 cDivisorBits=2120 */ + "01b29c311953b5bf36d26d019ecb796341a4cd63d5186a97712f5ea029f12b2144c8638c3d51d6face28e5579ebbc6faad1a052e5bb2e777e509ba149819f88ceb64f86a7c60170b5718d05d1b6aae5eb7f4266d4c979656836716b167baafc266d1bb382b0a6a08e7d07282ee3506ab435deaa023f26d484e236ae93fb498610adfee54ed8f26a2491f33dc95a1bfa65806eaad7c9b4daebabb90d4267b2e1cf525b97b318b4a59179d3088b1270cd663bcdb1c8f7dda79bd8d0a083bebe8b821dcd038e3870b7522b52032ddc5cd29b5105d4f158d6bb426ba287007c6b4e1190d064d4a3d9802adb48298037eec3791d7149eb5795ded03276410f40724dc21c4095e7d3205ae775a724a50237fda96223ec74a241637dc3fccb4c44804426909d57337948b438f33e460674981463474c3e5d9e43f41f5e6a1b5abf1264729d5d5e4df4dec", + "9e8feec59ec1b044b5e0e86e2a81d3249d08e6648e005020ea27f9db0b38e3282185becd562b4d0cbe5600b269d4aac81660d283e5b4e9a66dd7c22ba5a9942bb2a267802e89c949f8ca676921e053020e32c2c8088889fca0d4a8a8cc7fd1c601a218d2abddb1329ab947da9e3a89a4c92940d2b5f42947a0fe0ef6fb12ca16f7e6bebd3da75ad4fa035593123c50da781af61c252598971b2bd16ffe80242757eaaafd120be023639dacc197d451414527694151befc67699a9418c9030caee27d05ad24e9d9946adfefe403b45a693abf71ee9dd0ed67ec23469a42337c9286a52a9e30a5ef56d4b9778a60e18f6b80ab218d07e220eb4c5e9294c91bb4bd204f3b2125081f3cf8", + "02bdae7831209b37f49629c539eb971900d66ce4f1a69f8c5896fd5561a8f1c623461653a620a5ea3a686a954ed40cf611c9a02d93ce483ac81e9819edfe", + "5041c6d2400c6ad9d780cf9cac97a12d1aac7396edda1560250bd40887669b43520becf96b3195f9153c4cbfb2d24c15818eec0cf899db2f2f7d1af2776b86a35a48b237fcdb0b0faad6664b038b37d885c639581c5663fa782cf0e6025fbe7d0a11cc1edd17eff636cb36ed151ff6ae8a7097ae1b4d2ea5a28dda6c20d8b5377aa80422f92bf01b1be774e36066218ab5460bccf7f80a946f6cd727f0a9433c2cf477a19de11818db76882909bc402eff991e91cfc65f46d1a2d3888b367ee0bd1a1abe33013944668c9c79a612fb7784b232195169b3d5c94d93348b88f2b4e7c9dc50d8726aade35dff9ce88ee2159aa146c6c0365a5f710e10dd51a5d1a0d0c7e46e42b63737dc" + }, + { /* i=4978 cDividendBits=129 cDivisorBits=124 */ + "ddbc5f03f6811a51dc6c65209fd9b0b2", + "0a4a8b5a77aa4ad8cf49d42cf69737ea", + "15", + "059ef0982588f688db5dfd7065721a80" + }, + { /* i=4979 cDividendBits=2353 cDivisorBits=1650 */ + "01e10d8e69d50997ed995bde353eae95f5130d0ab770d3d8c83c5bac4018069945f07939cda794afe4fb21390aa0a3e7703e5ee471e58000d9310ab4a6cb1ea0ae0c3b1b8f46e3ddcd7965d1f196e89ec724c06f458ead5ef591e0b2b7ebfb9d04c58ddff7156afb10740c814d6eebcd23fda2ca63798f07681edb2d150849203124f8da777aa3c7820fa2040825e2f080488916fda1cb7745d869d44da7ab6cf361681f9dbc2f6a76bb69519ea3f6600b1044e19c66958f6d6ae2f1da1a5317dbe73753ef92df46f9738e9ef85694fccd3bcac80686bba75358a54a843911ebc4ed41b3d50d9c0a13e1dea129b48196b5f2d47db4ef33185cfab82b8c96be9b5f74d17948276dd3ad3401fb38ee84c6f956bac4a6758c321ffdc7022986e7b6ea9e1722425fd0", + "7733cd5c46b0f40748d7fded519b57efb0024e5ac6b68901489e0ef41aee03d4016569a332c940ea4320f1d7114908299b8194fc850377f3f3b612039a8e1274d798c3892b4da888175a2d9038f7bc54d0319836958b749b8ff70ce9b4f8b8a637c57eb35347c5108b5addd4abc3ef0514fb85306a3344f597750310a753a2579cd9e0ada5256fce6e9e48755df8554b5381ffa39b82aa904fe3c33cd27b987a04337a1b724a04b7d4d51979297ee76e49b96e0fd7e0abe5ee829864e2e623493f15ea6ab9ede85963d811d07b5f", + "04091d0ca2c56c41b5f94dec80a32fcc7027841a79e758ffa7f4ca3a698c22b9cc15ad5e97641cf1fb029254dd926ede259e56cdbf0ab841481422ee33d9ceff3bcce2326502977b7a4cb84feca72ff762bae89ca5cfd751b7", + "6673198106d071a897f49991235e83da71c1812e7a9a4dd13e309deb36b372d293120e943e228b875cbe16457f7df7c99ac6f9bb794a08d662b1e527c662720f8ff9345bd60be7585d5f6cf9c393efd2ff7b0f0236c9da8f1701e01eefd0c24d809d468561b451a8afb0fca8e07f0e3523f77a41b05bb5eae3e71fe1be39757ab46d719912a751c95f23aacce108afb238ced78c916bd35e58247961bff689728334c2746413671d2150b8bf54decc9f3b8b61b51589b6c83399e220095480f3723fd9dc65746ae8eeeb01681fe7" + }, + { /* i=4980 cDividendBits=2393 cDivisorBits=1638 */ + "01eef78f22a099fc2a2c10ef96a778bfdb3ce3e3e19f7fadc446229045d86325e961b64be52b85d414740dbb83f79a032f62530ec200e3ee582b47449be9bd580147a2f149086a3d2453d784ae977db768ae1910537aa3a4793fe50f6370f7d9d47acd71d15ac1cf4916e9d900bf58602460488b7dafe579205c8a508552642c12bc14c923c46bfd8d976329c7379cea73fdfcbad7e24550a54984d83c1ab63ef7247ce3d41062b76e395055403d4c24138fe65c2a511282b79d3a42d40a97546e99c1c2170ede2d14df4f5d3d25f36d5a19cec27845ff0b281b5648f706eabdf8535a252079c3e8f3f36cb5cba81df91eceb9238facb667a2c9cb55edba0dc3b0b8293298874b0161dedbc526b52852efe8d1128ffbab52c89b3408de16afc2835abd4b4f8c4ddcbca565f7", + "247110d8851481f09ce75d0d24921bdfb24188f5ac1742730eba82267c32f5e9b171ed5617d7c19dfd6adca25bb6fe744130aa14eb5045ccc5c431e3681cddf47129f7909e926040641d84d3aaea2abc42050659792f63bb36665c5132b2ac159ad3b21f8257fe9868621db9db93eb97471ff697096c195b88c16bd4c0542c0efa02f48905820633265c7c90e8fb5b48ff84810a495a458e39c9787ac614c0183da5d30a118c0326e102b00b72eac34403352aeb370c700f89cb05cca148c4b1172b1ff8204cefae4a3aecf548", + "0d951b5e3512c806a3f42f93615bf78f38fc72c227127dcc45856e260af6c4670d55f623c2c00a24ff5b4d4578a13fac29edb94572d8733744d07cf31514a1d9831b582d6bba0074dc59be1c190ddce532d8ea81e29eb0af4684e3f9e1154b", + "0936b2c7af1cfae9fc42281ec0bbdcf1f8730fec680b0d5add69c78d1b8e5d5d54dee774ee17babc77c0019a553b2858d5b4de8f42c1eea2d378fc95c47d7aa031fd848b37ebcdb614e09e8b5f39b61f392facb990625b194134950d298ff0cd762b755192ba31aaad166b42136f42ab18528410d710e1343fd3c403adc1726022f323c43313ab4166198c89f6424397d681e94978bb1cea79a2f3937bcf927a3bc581c2312b88bcd713c771b47c90105ad0270c0daed8c1a4b22d0c4e61ba55fff994aa2b013343996cd2a1df" + }, + { /* i=4981 cDividendBits=1454 cDivisorBits=1043 */ + "0703cf895fb9dd0526fbf1a8822336bc53b607abf0a1d86d555765bff6ffccc01432f8295467a6f2659f6955f52aabe2f604d7a83e97e83c200c4da13c3ae8467b2b9f178d73b98b6f752d4ff71c005c3a73211366a3758f700c72a4729d781d9c13421c69a603b0a3ad1a07903e582066c54f1b70e52fbea37256f775bda63b0efc7c87ce07e34c31337eda83924979ec60d54a4680d573bcddf9821be272c9959dabd946ed844b27e37d5491d1339c1c3f939f30ce", + "03cd075a171a930af545ee6b1b570121a9ff1f542a002e541b7f4f0efc93e2f21a75e12e5d1d568bd7eb1b865c9a6bd57393a15edfcc6002f1dbf9181c1730e0cbc119572be23480d72361fbe28b8e7b202fb40bf54c6dd6c78190f32b13d3d55c7033e99d15f81e194ee3f6619015829448b4fee186b088ef3c3859f83375900b8499", + "01d8787e3d6003e8b9e329078f57b2bd36be3333035edb169838345de217454b53c6a5d3b83507e2bbeaff637c7296a8d60753d9", + "0127a536c9f10c1b8e56f85c99e8d664b0f0a8921e3410916a0041cd5669616b19467a8989ed8dac99e2061287890570c47dbbf09e551c8751be87297f2399f1931b4e1b269bd02a771a1861fa2ed4a6984d8eaa0ae5c9f2cc3673aae1541dc68a0b99e8c70c7c31379cef697b730b954a2cee19cfde6a9fb941005986245437af301d" + }, + { /* i=4982 cDividendBits=439 cDivisorBits=236 */ + "6037512f4292111f80b3c36b1c5e6eab56ceee524e0b389e1f00dc00718439cef71d1d8a6d2715459e5d851640ab8200b3940a44b48e4c", + "0e0aac7b298ed7db49ee774c321fc582f52d72c1dd86fff579934330f162", + "06da27d703019ba2b6ce5c5f70e8934dc1cc1618c2efd1e672ba", + "227277acdd1862e788553c2ccd63c68ec0c72663d0653eb997c79b8918" + }, + { /* i=4983 cDividendBits=3016 cDivisorBits=2995 */ + "b3b5941a3e585038bd0bb7058feae3026841758d05e399635d3760d522126d0809e65ecfc832db44dfb0bdbc8d9f0fde38c00b16c9dcad946f674896d64d0f0f48bce539df3192ccf7176902ca5fe8c06f3c6197fa48e77da290f45efafc700f96548e174b4e44b377f7eae764590f2b033d9aefd345d91ecbf94faca8effc6eca48f127d9e19a34959427e58fbe073feb6f5ba7514be9723776a0b20dd3c9d85a29179340f51c601ba54407f3dc287e538328bde24b54fc3d30aed8186e682aece796854d6569d466f608a0e5af1ba472b211e701111895035ad7975bbb01e95c2817948688d6543d683b240a2ac1c859dd3806d3f8d2a82654f59109cdffb24c1ccc30a023c44e48cb40df7093c495e97f4f0b31849b3217165122242bfab060dd7df41f481c9d3b4bb3d1993cde3ec7644b75e62cbca5509ae571f2fba34171154b534ee79f85d61b51d719944d2f01d3b519ac098b44de8845d0f3454ff4ca4f04a0088acb515a1c98f353bec2a977f13214741f16fc4f", + "f4df68390691ea33574b77b93d4ae2f145d8d26875339419d5274380238d823246a31a9a944ae6af636aa490b4f0560c56f9ca86cd761d9df2fa37d7c818f04b113f63b2d8ede50b0019e7740e7f9344b14d590a2adc180a85bf038895fbcc07c5444942993c6c2950d38fe0766ad9ead285592912024de05d01f6fecf0bba1b42199031735848f58baed78582d94544f9f8c3c95c8c23164a71e57be00cf4b4cf2dc75c779b37acd695d7633bae74d211b9105289f324673f1b0867cd5d8339e82ff3ba4fa17e93227a74a518127e8cbbde01895fb675aa9eec35282ab0e114fe5645dbd599f306495c7350f8b684448846f166196bd707cb8660e599a8393d206658d138914fa1d828f6131ff72a29195aaeb279fe28a4fffe39f5373d4305613888cfbb56f0f55a53d8382e55256fe40b4855dbc85b259c95f94a447f638b679e91d1682dfac25e5e444e9cc1cd72a9fbc312e312da9d2445a7e9c7d4dbc02ca19a1ab901970e124c40face6912baad782b0dbf65", + "bbe020", + "e1779ed9a61214c99f0f18660c3ac0cd678293506c7565f5868f8aeea9b40922d5334b10af8bc4edc986431819dfa9eeb5e282c4e96102287c1358c8b3136b1dc711c7a137c7c30643414d86bc733527b5f8f35bfd66a814ef3d7932f3e8ee182b01f0b9ab18417d96177555b072c0a3d0240945f779fb72e829dd675891e306325d55013e589286049966232ec3d34bb8d20765a0b73181198816cbc08a06c4fe8bc283f0bcb471c34583190cda2735ac2d43b3669333d029898a6dd11d3a2880f3bd7b1bfc3605f6ee0fe6029a80ed0a8fc1e5039d43ea36fac16d63f7dde745086b0066c1f0b8d76f39b05fbdd1969527e40b0bd2f6bdc3bd8cf77b88ce0bb549a5f8eb3853f64308bbdc861abebeeaa066e5de3aa2fe5987033e3925c374659a91b71c4d82c038e3351b9aa53a873e7a7657480aeba18bd2cd5d8395f85f1bee58b418b1c197aa1fbfbef041a5bc10b741b8b2703602ad8cc0c0348615e61378c16975b38d2079bb640c3d958b4bccb7e71fafaf" + }, + { /* i=4984 cDividendBits=1308 cDivisorBits=856 */ + "0683b387c4925322990069128af84ebed7a1c5d2ae87a07a5163b740021417c8d08ce6f3d0580e6d3e0708182e01f46a28f315dabf36397080a0b485977e7b83ffcc9d41025c7c7c8b53928b1a626f0396ad635448524e42dba715c01a03c76246059b1ae6cc55311ac7c59fb2b4d2179ec8edf5462711ebe07a1e01390ad99ca3f197faeadc4c6a44ba3226ae863af95ce6f18a8ef97d157b83661596bfb0f9fbc398db", + "f2a3fda79d882e9f4df6e4e3a37e9abce619cbbba38713e2f0bf0b87fd5df05918cf902dc0e0ebc09e61f2c506ec84619a8a795e35da3648a3f6b9331e8482991e63ebd84c9bc8eceb55d0038cd750b246e1551ce3133d14b96d048d2c241853375417d06b60905ae79a17", + "06df85b6310fefc29d8748a22a84d357e8d69ccc403360dff2af880bafd76f40956f456455a3447ae68f95b38f6bef649d2f79623ad4b689e2", + "a26112bcf8fc57f9f57801280bd714aeca478af1036484ef463488c09f10d9bab061cecf8a9cf5d5de269b7249c6a2ba77cb788611ef642671f3f91e9f6d2a23f76a488f39aee8b2fc654c9b9d590c03beb8c81bb5524f15147961d865cbecbe3935d9a00a0d6b317d418d" + }, + { /* i=4985 cDividendBits=2068 cDivisorBits=1565 */ + "026c55dca08e97fb255af6ad9113e8eb1dca5e3ac3ceaa38aa35b3f01ac6779fe4cb44b5ce080386b95f152f4b2ff5670a17680fe39bbbe205c43720c464b3979aafc8c5007531fbebeb77e376609a7e123944b2ab4efea24e61c5cc3d3953d1198f5f0ccecf353c672cd14fc9334a65cf9952dc7b7f41ba56e1c98c332f32056aa317fd6a19ed1dc3e6ca2271f451f59923962d76db5887d31dd281ef1c3243066989cf42bcc5355ad0efc209ade9d87513d341dc11871c45d2e923398d494e25fc4669e7c1ace934e9405086fe330dc8da9f37a09fea46b15cd7aab015457518f134cd90f3de2bfe3e7a0c8221e8facfbb334a6a2336f600909a1c409e37903c88da", + "12b173996de58162e8f00db0770100b856459084515085f0bded4d666121147d5bfbbd274094984307180746ed391c87839aca64241c718251ad12e2b686b029927c9e54e1edba4b6054d5868434eb5bb6a8470f29646f507035755693e2ee85490370a1d091f4541c7af307adb9c887b4b1bcd924527d8c8fef3c8d729097deb40f1fb1843b12f1c06a0e2c4da343f867e12d3cc3fd817b0b61d5ef118a47d39c2b7435035fcc3b7aa0e03a7c723775f2b27caf3a8583a2efc4832e31c7cdad40862231", + "212f6516206263313a4de882c5c7c1dbc8dde182afaca619e93abc8bc735cc624b512c3ab75b122df77d6c700e31dd616aeed4086212abe5c2089dfe344237", + "104f156e9cf6978c23cf0b16ac28aaf77a116eafd25392ed1783a2153c1b187672522f833356b0fe70ba6ddedaa4dbad1a6f00237fab78d2fe3a6b0cb3a55bc6eb9de12136b4370be6722c32b941ed3f0e1d4641acb0a4a1ba14378636288c567b940f588533aad868d0e1ee92041005d75e1d4b2e834b2b3138b07a329d6dcee12459a85411104692f7fd1aab67da4f206a09e4310e2c721c69f81c997470014d8fbf7aed7bae0d6ff273cc4d4e33b4f51a1886aa3a7dc7897465f4b8a012238ea68e53" + }, + { /* i=4986 cDividendBits=3061 cDivisorBits=2208 */ + "17e3ca02723d027845668fb7babfb1e48a848c8ffb3afe2b4c2befea71785a47af7098d1b0450dcb733766667ad5aa8e2541b11cae237558c72ef5e5156fe9e52f192f0a2958ee6cd5675d8c0bd16703a40ee15adde80d17d7830a4a57fba05c6248293f8beb0aa7147514bfb317ce06cbf72ce3e9ac88c5700ef78b468858b61a6232aeb69fc66fc59c2ecf7525ce2a01deddaf6a90ff026b7536d1321b7e510cd5b6b949b1195d75e13f330c0acf20a7f12a2ac08264b9c7260b5a204194197e7693a500f93aa368a3ca136569c86bdb1c0203cd8be2fdc509f061fbed7d52c567b697986a3638352d7080c1d633abe858eb2b31092cc79786d461692624c63a1b20c3795c92ab6b2cce8c207ef8157ceb8b35a3a34ef6c0a6aad28d60a9cea23b9ff9f44c83258fa739027295993c5dffe12eb34319643b7abe92f4ec42f8498b79fdbaca2ebcb44fee0f31babee021409177410deab721b247b327c39555db1db95cb0986be5bd90c587977801b6fd1172b31226f8839725f81640f385", + "f3bc14e9f6f92cb159741fbf4751535d3fc39301446f5e9c0332ac3de97ff14bc46a54ff269e8fbc8acfee067f8a78d8ae48914ebe76008f5f753cc6585e544c23d259b76221e038050bb1e2279886a5be51916ddedf28cc3f8397aa1c0d825b35a219f81d392b043a60541f8dcfbc5b12648f730a4764a04188168f496e14dc53c8da71a314086e3dbf9f9d62b027d3515a0c117d02c28f804df81f6967aaffac0a1ec8d651aea9a799dcd6f95ba00bf4a7b2678e157a5601320c2745889ab199d81936086d595f0891f8628ada81acd95fed4b7007491d684f31cabdda0d84759f092243ab6828861187137aa571896ac8cfd0bd3845092650e244807ecec20a3b51554850e16168f20fd23b07d3a3d4899087", + "19178cd0de81a7ae3a11bfabca6633e9dcabae2133a1b4fc79f542f6f53f1af05376de98e50fc81a4bddb8619ddcafb10f3e2c948dcd2d7a1042ab5a963ba8e4efab21ed087e26ff52dd22ca26e6867f815418695b589b033adf0b5fe705334adea4f4eba92970e42fed34", + "94da5386833591d3de6288f0d4b5c955017f661e3d96acab3baa48c3e1c1e0fb6bc36a3685e2cc71539acacfafa63627f955053bc29ff16e97419a5be5facb67183e6d2156f6adba76929c76246f1713105ee1752898a9d3375cc46af541c4d3669bea7ec783e6990c0b1af02948dda0d4ed9067a06b330591825573554a96aeb1b4c670d4d0dac7bea7beaf0418a2396d8a5414b8b68c3a556697f0d93921e112fbf5634660b21a866f2319a1c0556abab30198bd371c9e2c491187b62a0e116c1b243809d12abcd46673b3502d03e374e89b9399a09e5ef31d996f9d56dfa8f58d359ac799d63537f84bd53df94a062c1fd5b8780ec0ea6d13d253747ce2674b0bc7e6328d54d2e6bbd8d1283f18e3cab99d19" + }, + { /* i=4987 cDividendBits=175 cDivisorBits=84 */ + "0825c3227081d52fd7ca735e09a3346e183febed78a3", + "07baa7f65c42a536317c4d", + "010ddb834e62edcd44a92e13", + "073d9b34f7b7e77f1668ec" + }, + { /* i=4988 cDividendBits=1815 cDivisorBits=1267 */ + "6e72b79cfdf97b31ad50f4eed5825450daaf6870b8bc25cc5dd68c21b4458ace9ffc528757e39b5e28fe7a5aa2c3d15012b4613a15dfccc7aaf895785896ee712f9373a689e119962f27fda728a81bd5919825844b56ba7c17ec9451aa73afbb2fd5b93ebce4573cbade078ee3954b50696b0c797aad7e8610967624344e3449f3fa4199f61705430fe41ce569e04def6a5b814d3c5d3baeb0e7232708c49a48deeb44ed0ceb6ee507e24dc4ea5827cfe142d24c98e0fe5116fea25a25b37f237d707adbcc23e8a843789655f4305d6f94504ef1fef083246e60cc2e267f99d7bdf554", + "06f752f63df9fb34cb00ae8895aa486cdf6083e7fc58076eda5769424081840a81f1d5a488f6b2e612aac2ffe505175e764518c4b0236435486b1021ae5b5011fd9fc3610339d2bb1372d62c7425b97f5bfd2d9eedb5d8e1fe61fb299cf5d2803f3dd5468e7990dce05b5527b71a5d365735b124ccf98398068bf481ea057d1602115fcea231dd9d214f7af825514e7108ef5bb246315f682fa842952dee8b", + "0fdae57939497083bae51b9576a1b71f7d3bb67a483eca921a74c596ededf118f457267f0652c13a0b57c7b8f2be1ee49f8e941336b3e2cf2f5b870ddf88d0eeb64bfd91bd", + "01dee31e06b2b9b9a13d434f0ed563de3fda78f01ba0fa99d743652bc133145952b94cc7e9248df7b0940f7005180514d31a453bafa4c4c144f785d226584c7456650ec36cf2995aa6197f94447c482a33f41e56ac439d37584e25a5a667132ebe37680a32ce60cf0e6d6a797bd3fc8e2a0ea45bd4632be6e93589b8f50e73c722bbfef59eb9021e9ca0c1729a0f5f5513a21813bef9cd0dcadbd938591db5" + }, + { /* i=4989 cDividendBits=1409 cDivisorBits=1226 */ + "fbed0671910b3ecd4a6f5fa68c9e7eaaf1c3029d66d65e1e4522809343ba14f7c35cd1866aaec186236a3077a11a329c3a432dcaaa3519b926876efd03f76b5ac4ba982a4a6099c75d0f46ffb5d8978f8e4acc40529d0217df4deef6aa61dbc30c45b7467483077e63c077b924a57d5ed28c89cc85b9551d5bb6b51b3684959b78d527205c4258a97bd62f6e6f80fd306be6e37179aa4e5d65bb6bcae6b418a6538941a811b5fb4d144fcc2e014c5535", + "016c53367df9af7b43f9ddc70fc1e7431672b74db3a4f9e69c4e80a55e93a57afc3662cbc1f4d25f7dd879ec6427e4607c6eabbcd62929f7a98cf607b2d18dc05a46771dfc7cc62afc9c6f5eadcad4ff708a7e1b4a25625de3281ea33debe9a49f490802c79e3a834b4392441efcd70b61cccb13abbdff602c69e690d93acf7b42d2cedf4d94b18c625ce41a513af50ed35434b467c5e916e5e1", + "b105438e60a377cf2d2cf0e3c73c5702f6a4b219540c6f", + "a5de801d47318404ca0f372a553ce9b47b050b70f968b2f2ea0e8e5acdc2fc24cdc44a2dee7efe8dd9e48ef0ce03c19d2922ea26f7df918a8e86b7a1cb7cc5682ef974e4b0337e2549000e29231f2e1b81e5a9d5b94a9207117c217be721f1594eb5f472d3a36eafb038e746778fed52f9908cc1c3ccb81c80470cb1d7d8c0c920893bd448af2f6be901552528481e87caff1fd40876c41ca6" + }, + { /* i=4990 cDividendBits=1579 cDivisorBits=1057 */ + "0695cf9ffe9a9a4b1d205639df811176433780f9e735ef747880f2dcbd2fce5bf83d9ace0173cc9fa62aca114bef963c78ddd55ae69b8f81486111558a6c0d8935bb6b24f489c710e65d40841722f4f4c34ec5b3d9b403c68b4b3a385db65643dc9ffcd57bc8e2e376363b89e3c93d9652ee2abe5ce76ca9379a1a047a69f45af57f260b0e67e121623570f88591452cb770d9c331b410939047f97531b12bdac17a2b7034021314387563213d5002930a9b2b788f6de871bdeea62b9be805b76b88573c10d2", + "7f49979921466336e8030baf780bb615b25698cbcf9d0d21bec90c39cc68c401c98e1cb8a76945f0cb0e9c70764f85ae4da6cf453b1fb4b3120af6cbf73ce9c493fbb46c32e74074a07b60edf6396fd3ea90bf3a252dfeac0143029d72b0077cbd33eb174b0cd7113149eb3822fa9e0698874b33d28f04fbb98713c611bd1fe1292ee395", + "0d3e7ee9ddb32e84a33e89ebe486bb85c76354d54a4e22ee2c34981e6bed0297f448d2b890a491f1cae5e8e8ad1706238f287966e235deb6f5c32f17dc501c1e563a", + "7065a377c1caa0968019da31bb0a7ddac6884f1ba32ddfe93cc99fad1207b71f856d03dae714b9eae5ec3c369f00db732c64789d077154326c089545e73b008d5a137def9775768163ec23a41f5e66ef10710ae9c6ec5021630ace2c45b9a0318945ac5354668ec2796fc97d7b9a5dffe77c785362f97522bb091b2d23a66fbc4ab27310" + }, + { /* i=4991 cDividendBits=2529 cDivisorBits=1868 */ + "2b7b20725473ae9aed4eb3b45129a05207a246d1de004053d460af6b178e3d824dcc5c25fa6ebd9b0372b71bfb5a933452c53c5c496454a64a006ce42cb87596b6a35f7f2c8db6610f726ac94613310699272995cfd488b316a0e8b33fb43535de763b6cf0f205a7d30859f832c7ce3b3ad427069de9522933a75a91f6879df9facca9155b37a03618446647012fa29072c121f7a2cecce22ce61e11e26639952e66e0acf62b6cade0fe6d00cf7078ee9fbc5a4ffe2e1ea99836df7b380c1dbdd7d282e29c0ae3ad433ee5e802720213cdd6a4679c99b9fe8224f85c22d7443a1b07791d7faca190586c32b3f69a54d359eb2b48f56f47bc95a8b9ce4ea77859a670271feb49cb5403a4fdf58246f046b2c5c97ca53f53398bf62bb545d39aa67283cea0d4ea473108d0c41dbae48c5c17809e63a2694183d3e2ab57", + "013010b5e94f10612917b7257c97209f5433236e1de3b29234ddefe173d874e4fdf569676834997893e96b696e98848153b64dfeafa1235510144d057f3251d8f77efa34e9e0d9447d2f70a1daf0bc07243a1612b48744b0d20f5cf11c0ccbbfe1319419b1e5d446fb1b94e50a6221cc352259794fa0f5b3ccc49d42a041658977a2fdce375e6b8ae52c32678816358434416af868b757c4d9ed063d4a9069713f26c63c9c85b01e6bb78e0f19aee3765d6bec27eac6c8ee94afaf1d2c422afabd7df9942c17be7f72b66db57345d65451731e244b90596ee44163ea59986226757f47ce8244efc835d2", + "249b9170bee2ca6725df3c292793d3fc49ac3a722002646de799fcd11cc33c224996ab10920c7711aba40d72a34bf2d5e10d1f4e946206e12413b03960d9d72bc15a9ca91bfdf43bc2339519d1bdd7ab3ee395", + "5b6d618ca2f8d14c598b4161f1da15a09d060d942815217012177b5ce79f4352c4e118fb705c209b648800f6e3db3632a6086e313a3c8f602fd565a20b4d2bcda62033ed0a1be98851fe8ce319ea390eb1c3489f9c600dd1ad1d6dc0ccf3636a0fb3f303e37d01aa1b42c7911a7f9d4f468ac38137fc5e94e86342ad93941e2c7171ad617545b821929b71e292f66d26a51f31cfe606ddc57b0452088991974a4cde3cc190950931f4428a4e3b544ca4f52f6d13b20771404a506df6541eaee3902991954eaf22c989c5aa32e6a5f27885a8f17a9c712a6e58d9cc236fe77143bf7d8442f76dc6221d" + }, + { /* i=4992 cDividendBits=3449 cDivisorBits=591 */ + "f17b424f80ac34209555c0cf7580d8d038d9dc2e60186d4d82c2fe03b8f4fa2366e619dd4e21cdb085efb5127a8aaac56602e67cf4787ab625f392a0f2fe7fe0370c038fa9489b1613797ac83071dce657fe67b2205fe8704ee95d7106d4b9dad722632eb74bf11c09efe0c66c542fa0a2dadaebb0d0283769ce68b9fd1a6162dd82b15a145a4c8dad129893f1a4f1138940947f327dc67293eecbdfc308a1abb158c015d4b5cb8c955c70ee0f32f692fd27b02a290d7ca786187fa8ab38c063be7c535f41e1e33f718b2ec957c3abc739380f6b510d0ff2d1a49d87c331bf055f7fcdf0ac4fd56b3c3e98a98eef770bb5ba2e9cf62076229f0e00193c512518797cc91f19ff66a92bb9397abb6aaf09f33671644e9046c1eb86a478f886762ecb255012dd2e732671db5a313470753c67959813b2a8023f708fad3f609293bf41668072fea24a227962f4ad58fa3965190343b936c95caff57598288f03c446e50aa6af4d57fc8446ab314d2db97a3462cc4ad611fe3b4ddfa1d340f75793b7b1048d203e9f38c642a4b9e2101d0da3628b940edb4dd835662879f1a43fa8ee46b11a9396e8cbc05c06d4e3365255", + "4aae87053b3e6997e30c1b5cd85092ddb4db15f6524242890f39d929f3613ee6916f3a445524a1ab8bba076a7bd04c01aee0f45c5ceb5b880996e5f7f4d4bd27887c4421cbd8a60d174e", + "033bc4f1b1ff63bf7392dd964f208efacbc1336a6eaacce9b39bdbcb96b6c5d8611f06f4a034cb3e29fb6ab014ee78d8873695650130a3c4e193e37718f39ef74c5c30e7c3db2117c874ca8fbbc989d00efc36acc23d15fdafac8e72ec35209aa4a0b3658e6506201ba781400580119abb565c2a56ceaf652939cc988b99993b60ab7b53a3df2c0be73d3d56bda734d734e06fd34b3766ef4fd69dae2607ed2de66e242f4803874efbab2d342dc51b4b331c4454e316e8c65f483fca915f134f6f73d392aee8a53c4d85d4cf01b94012104a87cc3754d4c7b93532b6e71b75dbf4afcf5fdb97862e091bd26c470d742a20ae006e6cbe4c44a403852c08ec7d7aa5d56ad85c06ed0b329a28a30d1a4e2cc755237a531fe2dd2e17a914eb29d7f95d81c87a3e5132ec4f7c316693e4daa64190e373d95eece261d3209db216ac2cfce9c1894158c44ba8fda96e06570a1cc3248fbe9336c846c11cdce6a5870be18c1b314362bd", + "1e03339fbad9ea13971da1203dd41aa6d531b80291871fe841a4c6046628030569d0c8aba123d730f78edf4345034a30270955e4b7fdbc7c5adc2fc4d0bd2cff39cf30358434413641bf" + }, + { /* i=4993 cDividendBits=3383 cDivisorBits=1307 */ + "09038e52c60cbaa9a43913be2554332d172cce5fb618c57edeb63707828d443bb458eece206cc04a4b338832af1edea47d187668c40990c0e13eb7265040cf97cd9727cd6c66563cb564db220d22bbd680eeb2bd976be49cbc2c03c3d5717b4f9af638b92f129f60066a2fa8c5c529f1358adcaf63632105b9e86cd4b347836b7eb1c0f2b0b16098ac8697f8d66ae34e0b1a0bb218e61e8930ab10acd97ae96ff91239f1f59cb78cd6b9f7e7fc633e3232aba8ecffef76789642cdaf2a9becc0238a5e05d01fbc3a1d2363e7a1f30762eab439daff317f289bdcc310f2b00e7e0dff2237af2046d909dc653de445482d28422301aa805f6eb26e43defdc5d60390243d2a7db14dffee978466d41b4cfb7a680bf66f16a7e853c7f9419dd0831915adfa54d12e1bf88338cd8fcdc4200f4f5e02ab08b906a19eb40a44c47729a6ac448cd7a09e4bafe7db497a2b471cae303bf3b8d9fdce9022f1eb177723e7c568fc1d2210a1c92443ff467ebbb3eff3535c4831508c9acc8748ba53eaea599698c3aae9fd5729622115f938845c4cd0697c4561e5b7e7674cfd8616722c84d6281a84eb4607bf", + "04eda03be85199ce06467a2e9e8f2fcaea8d46a722cb64bef4ba6a51b9ceb9bfbe0c44468881aa1769fb2c2713fc9ca686c8feae19352a2bc206a67ad2d7d9e75c38b46ac488feedf75133fe14abd0b9b32fb05be0b10ca30279985f3ad3d3f7fd934174ad11f000425c304ade34a755b42219bb9cab4fa1d265d4a9bdced2c5b09450ac5d2a780486eee60404a686d60c2d97e687f3555fec043be031abdbc64b1d78fe", + "01d43b88a0626ba42d3c88ca7ff820ef40521848df83807125a55e2162aafed120c0f4f7a8cdc6e68ef497d7d2927701e628626898152b2649280ad6efccca2bcdadddadc3e53421bcb135b7e9b8ff46f99292624de8f6d5fc119a581b35d97e8e3497bbc3b3bbc6ee8d273b74821afa43cde5f17427516101db95ec53fadd59434a2ca9a21a7ca4ac4d9fc4ccca90ab9059472939fefc7ca0d7b68d62ebafc3933acff99019250665d03cc18a752f8fb5aea493d12323a1beec8b9b79dd016e3d1778eda633015247694baabcc5bc9af41ad1b60ba63fb9c4cdf58d5ed55e0c921052282d413c6b8375141f84c1fce4f1a72be91c9071974807e8296a20f6414e191fb3", + "02d92285b7ca608c2268df8933f9a3e1ef0fd750b45a239ef4c98ff2ea11db63aebe27fdc005f9248b6dcd43b6531762d06da27c237c63586390f5045d6d94650a8b0adcf8b6cfea016dba13871eb58e8a7fdc47eaf8aa960eb6b7f6a6170868f2c1d8c08bad3a8b7cc7dd06ce3c5e58d11e606dcd7ba854a0000f33d904ea5d1ec98af47f7837798a049b248f5239ee60212f755e6d9a97922d7001b9a04e899f35ac25" + }, + { /* i=4994 cDividendBits=2664 cDivisorBits=1807 */ + "413cc56601d4ef01dccc0e570fea63f27c4f886b1fe834fd6493ee4bae77c85567f98512e8eec22386713391218a28f04f4cb0045b89e5f9c831d7e215479ce2cdbe784d4df237f03db0b5c461689d841fc76d4020734cf0e7e791638ec5ddeb8b4414a448ea77511944fca7bf27addf3e15abc21ff747c500df3e2c057b50de501ed04e23f7db8aa25b9b5374bff66082d24cba334e2a01c35544d2906b54448e4d24903404e0c96c8cba1d3defc4c4e0a93f9fe994878d264d5f447c25cbc892cc3c0f3f1b1c1e17cb267107c6c72a1608db7b6981d4a7efb77c645884c1c76219191de9746f1c75aab4ba7aec1f165a819bb74d8f3dceb72b580ac56b09a4edc2ad176101cf2b05c5127bea44f9ee9002f8c78434c09da4ce795a3ac8567b4c550d69478bdc35cf513f3eff3c63bd61c493082d99a877669efa6e8059e34886e54cb320834d42f39b1b7826", + "488eaf69bd4ba0488cb31598d8128a243feee9860c81cf1f1e6d94f79585e78175a966f931e2a76ef8715f5b8da01efd3ba480e345f56028e1dce4834ae9cb0d855c76f3916b10a906f96943c5fdb503ee5a45351e5ec217fa2f33e820fa37a8765b50b2d6fcf39d4a0137e95efcb0d9ba0620ef00565e24b2380c318001e4ac4553b4a2f1924b009059cb334fb4dadf6d2f376ab15c3d2832cb97075a98e142cc3074812f8bd081fb28527e0c6d519e9e13d1dac4e2d480c517f16810aea641697c8593c75546f465a06bae0d170ae51bb6f458d9ada05e304413e6a133b3127090", + "e62c603d37c6cf6274022e00e462c008b96b5b306cbdb8d6282bd0210f0e1c05425b28311effaabbd968196af38d6f84fde39ce4a04cc192a0d9a80f6548ff39b6092461cd7daf7e2314b1ba55bf268d4d4a7a4a7875fcb0932e69267c0df8c9b491d9720ef69d8a92d449", + "145f492058fdc35bf46931fed3d94f759d46dbba103c17aeee0bfbca4412eb506e9b2d0912dfedacb280a24e4d83ce431bce5cbfa34f172335248eb4bd75e6a4b3d9220b6177c2df10076f38c0229de8924804347ddbfa572ac9420fbd90456d85f9b237bb3c55bec7e5575a21b5c87ea6304788a8f9a2f4a3ef10ccb8f51a50f07e9fe678786c26c7a77b7754cd1b60cb1d922168b08d744d130e881f55e8fc3d667f32e70bfd178c32b42b30ee6bbd2d5fcd1ce64d591ce62a4fdcc339c3aefe699de8f0f44eea462cca88039114aedc25cb01b61bd55d5cd338ad016873821f16" + }, + { /* i=4995 cDividendBits=1775 cDivisorBits=949 */ + "29cef9832c4521c787d4316658d4d50c95e561d55a233b1cc303256c2ad26ffc8d515159e200a6d14d6842121f6cfe63f70661f6875f838849770cee098ffb6df41a7dff7c2413cefa0a08bc9f722150e2de4d0830a8611c45b359a63bc8bfcb150b4edd1d7d1cc39fde07874347ceceec1e4ebe08784bd98eb787d8588a74a59c4fc7ca90de31b1b85468814405b95a110be0cae94615adb866e921fa8059923f4ffcc24a303458c14e565501f5f74378baf2507b0ccdcbf4265d342fcf74b2db5681bf09fb5e7159209ffab44b5bbfa5300111c16f4642cb864413fbd6", + "135f527c54bb096bff0749a03dd8ab64e8168a9e2814da4f278ac6be4793c7cef464f073e977466e9e1eb0c5b43ceb49cdd2e0de211a2337ad354b27677e53c58224ef80d3136a3b498216e05a6c36c5211b07df6f29f5c3c7fb3daac705cea854dfd046c213da22fadd8222487ed7236f21337e53fba5", + "02287cb225aea6ef4ce767c23958a4b0c9b334ef5e21dacc5ab2b8a69a0ff371c76d22863e0c52c595daa47143c8078ab66e9fc5e7d6de727b7788892c6f9981a935ff1741ce6cc7a474b15de7950eb517b6139e1ddfb076cbbe412a6f7423f6b7fe2f5fa2189ec8", + "080d0c6cd06f1828217d1897c6c384a2acf881e9e42b436e538bc0ba7cc5ac4452a4399b49abb4f2f5b9c1986926732928813becb2953ba9eb10748a802c2e9a056a82beedb980e4488ce7adfb74c5354d1cabadaa141479745013af58f33c4782c197d6c6c19f239b3cf8b1f3b5fd611a68fabbaf8cee" + }, + { /* i=4996 cDividendBits=3071 cDivisorBits=375 */ + "5efd75c1403428170ab6e15ce8eac01a8c9420d7403ad895ca73d38ad783b36af9746d9f4ddb5d02af8a6e05483dd30b8dc4ed137985af7d9f24f3db80425890a575ad04468336b11e991be5199332f2eab475d837d26ce5d9b73d01231ddd613af451dbec1e3b7cb78adf05cfe128b84ce8abf93d5e96cd948b50e2181a0f8aee9c3aff7f348e75030f110b4dd755f1a7feeea84a7d93001df8c83d6abedfa030cb30584df4232bd8903a2270b017a3d7b34c603dbb4e9da9ae25f06a025cf9ad4a8027bc86e675072e8d3123f6624ba34d9832f101ddd3d7d9301f24b6bdfba12f8fba3c86e9e08e71be61f2592d17b003eb50ca1cf418ca338400c188503de8df8fdbb2cc613cf2460577f908827b2e2425a66bf480ce368781807a7f83770659901f7b4a9f7147c1953ad83c50b850088974abe46365d38f732444398da6f2f0c4d311f2416a59a85e0210f44998f16a8fc01504fb31cbaf60471275ad609ecda267efaa86d5669c835196fb106e1d30902e917ef8c2953fd11f06a108ec", + "6b3b70a9aad5d590d2323d698eaff54c2617a7eddd98c3a4e37164a87e1c1f20ff5df18886e6d7b6764c0dc92d58ba", + "e2c61d6a76db984343017feed339f43088c5359b507712d0189f9c1c195d1cfeed8de44826d4b1c38a8f43906712e978e80b122487c4eccbb02131073b8dfb9d8fc6348711ce0313880a675ead4cdb26654760ac5220a0050017c2eaf253ebaa18f768e8b5612750d6af6e6e801fd52b8e01792d02b3f3f22fe6192e230d034aaffa43736d3305ab39d5dc996368651f1ba5cff05d446368a4a54c8fea64583f7d176a0faae94be6cc2a4f3aea817779a9f6efb4a0353d11432319669c9b5fdf05eaed299fbe30c80ae9fcd25af94ea39b35455fea3d282862e1515865ac7f9150c200261945d7b3806fd8bebe087a488ba78b5eecbd773658db58a65601671ad45c5f52cc6233b916e8f32378f6a3547486b20f9dc470739be233660b44832579b433fbe254ba09c31b7ef073706af67f97de0ffdecff220338e6ea58c2dc3d4f713cacfbfc9ae9eb2df720cc73f89a03", + "3613f5b6f55cad6b6fc012985d3b496c0d0364eb06e91fd4e1f70d83eaaf5d33008fe1e166757b20b26aeee1891abe" + }, + { /* i=4997 cDividendBits=2623 cDivisorBits=1848 */ + "5408981f82e69e933df4773ceca97ef4f133a25135d363e4360b50f2ab3dad2cfba0dd03ece301a9c8b856096e0889ef8b759da0a541250a86826059976c948e5266501ae5a22ebb897740138c7a93dd2a6e696b1bbbc57be658d1927bc5a00a290559ac1f7d3f09329a16fb1d2a4664ccb8ae0e2117f5a156907df53b1945e4e10a710bea548912c0decda652adbb12a2839ccfc0539081d8218ff1a4a9beb608c434773a3eb0c4d09a0330d832226b3b3ab3a387839dfa140b4c8a7217ed46897ea5971f79007478671393c10a650eada898f892f25548971f9d3896d0191828d029f86abbb79e6f42c55d0e728779abc3d045b6575312db90f04e742c3ad03c2e9fabfd2bd067fa4962155d0a16bbd814b1491d5db5c77143aec2c2b7cf6815c43eb1547faffaaeeee0c7db759d97c9f9c0632faa67ef4695bc09c738d29074e7a41966af7937", + "146e3e63aede15dca1505f58a44141d7a067eb95a32f1c5df733f71e03cc0846f5baf217fa35749f6a0a556104ddd74671fedbd484512e05528385a58a2c933a0ba613d5305171b0e14bbe34608eddb53cbbc7cb66196da4e878630f78b313503f09fd0c6561311f1e0ea606cb8bc0e460db2c4473f6214b633a34950945931a01ffccd0052b37ca7b22f927ad85dc21f5e5d421314dbd82abc88338f72d5dbe3e6dcf10e368e97fab73870d6b449a617007adc7e3a11e8e458fc8c0b13a25380338bf4f5a7ac167ec9b053dcf3f49b12fb46fbef5081890ed814be51cdc2ad9c5152643065fcf", + "041cf51c015fdc3bf69385a0e87e5b2c1b4938b40bbcd3c8181b8b52cca7c0d6884a215495859c2311aec1a3ae8506c3cc292881c2848106475ee427c29904fdbbda11211e84508eb9649ee3be708884aa08bb8debf92568aef9d4e7148980b1f863", + "09533e6b3f9778b7b76f08e12e57d5ac983ac997800269c37267b1ec1d0eb9514002b170f7bf92367fc8fe8ccb699cbfc63a07eb70a99ca5ba60ee0ad78ab9ae75c654203c8bee1ab80b708cd58250e8d546599466ac09cecb2886e141b4076defc1ca23c19fe49b0c68ef22a43aa58f042b955facda8c879bfd001947fe9fc9661133bba4375a858e66d29c228f91328b72486ea57d3d3ef46eee938a586e569c65adb9ec482f20374418537297fe681254dd00373dea9b98e2c461640008b7445b625b1b39f7a43fc7a9c4960a58f75ceabd52e5cfc4df568cda7eb21c0b528d6c489048e42a" + }, + { /* i=4998 cDividendBits=528 cDivisorBits=332 */ + "31dbf163d216c84fdd21aacde7ce3d3e8c5bd3ba0f0ff1ac41b8c8c4dd80e8157c254979e82a73091beddb09eb83b0dd26f6e413aad5285c91b21c70bd60dd4c493e", + "03c2d10b580e1e47eda91392363de1f1291b9e987210224b5b24e42c75e6de4de12983a8e6795d9b3a3b", + "0d41c2d320bc5e0f61d14092e568fd46d42eb88e2d4d5aa370", + "025ce57f59a804e0fcf45bf1d79da0160bbc5104d5e4b7680e8a03c49118e55e2dda6cfc1238db913e6e" + }, + { /* i=4999 cDividendBits=1142 cDivisorBits=521 */ + "205969882a24bc38196a6a4dd501e02a1cc82780d9ce1a72ae1b78d2af251e18232e383d1a7fe4c432c7c792cc5402aec9e03918c7dbf5d507dbf416b2c5f00eb94833e805d90f4fbc2c2d18ba1d0d48bfa1e397638e7e0acfcd79f5d2cc9e697440909caa07d59910664fc05b88f641b539a48d57875c3e28e27e59090e257bf51ca16b0ad5bb2e14c174a75e6137", + "7dbe6c9bb0d6ab03de3b59bfbac226be2e4168b6f6ada84abcc6ab03fccb836c5b1549472a417577368520c2fc57b3b843644930612b44cc879793468b12446e81", + "41dc00a1715f7bc6543539fee6d8636d3c9e35d3cd1e3892610e66dcca47d65cefca811dc97971e1dee3160a703d221a08d7b44be0898022eff2efab052b6025d074cfc257638aecb24edd68ebca", + "6d59c8a3942b6e5d763acb5becbbad560296324fe3487f72f894d130076ab0c9412320edafc13c4433c2d0054d9e081f97298f71910550c4411c3d91732a86c46d" + }, + { /* i=5000 cDividendBits=3477 cDivisorBits=2567 */ + "08760edc99d60544ef8174419d1c6aa9b71b698c165151dd0b5e49532c638a48f9a06f0cd96f061322cf3b9d8053b2e0ff891b8c7e51dcb9b1d838f716613b24dca638c74a7876d8c45148338fdc4f8046cd6070c20cf0f858f791469457dcbe83a74e4f6ee8f2b03599ab1fae3fcf8e0290368e2999ef45891f454f666a91af20230e0d9a194789a60216d859633b65e2c94ba22478c08b23a9e3b764fa1d1c58dc8c9eaab62f4e1bc3cdc951704ff05cd3025e6538313eb74277fb0a3d4ba3879590f746ae4d0b2ebe7eb9dd19983fbb5be37eb4ac0e07bfdcc79c15f0ee9f3d53e6b80019b65992c43d26db62755d3f90e520c4e8a93d29290b3bfbb060a545507ecb35884702e32c9b8f40e4506dde0d4a4e33c8f767a7b08321a3b9f75480a5436c9bef36b5b1c68093dd4d10cb02ea19344d8414565ec02a24ca8c4a7c693d22f23be382beefa77f90c6bfe658669825d3759ed670b498dea78b21a839eabe8327e0d621d4e84a0cf268acaf4a2f29b12a451a4a794493c554f26e50272bdebf0073354e01964d537044951e14a61a2bcde2725e1b1faea3cf04cab742653b65deefaa9d039fae880921b77a199a3dfc", + "0af8f4dfebefe67d963d2fb2dcea8751e4ad9c4cf08b9a07a25d72ec2a176b5af9d63165732ad7e34d8a8bcdb848d26e7d526a7f6252224c51cf247932a05804435c416ace62a4ffb6edb4f43ca9f96e8267358ce09612c4ca2b31393eb2e59e8117c1227a59f522b184ff63ba55631ff0ecd7b6577047d18bcf75e3468f390be17a09469950f104f4c504dd99f681183d561fac2250fe58bafd646e8111be93d0f54229c69c62d7eb0c108a47ced04aef623579639f9512047081447d3870f909ef0227aeec6ef60c3024875b2a38840ea31ed6d7949c27ff1c0562ad2305730b7abd28fcc513cc543bd57b03479a0daebe2bb450604f7a2f4da70be3680713fedb93b3295aecf8fd43338415b1e1f76af33c8269ea8c221a0f1959ef6cecd53d54b633f833098cd26e6b5fb68d142e59f29e71ec2396d406f4cd22695ad46f90", + "c5687b4a6d61b50108b54176867ef624f822b6544bb655d5005dd64c2476bb86dbe3f18d24105ce1672cc5fda2733477c2f5c30f5171fc15e3f1e20fcfe0bd9993d775be8e4d5d6514d84cc050d07f143ec51d3ce7a46cc070f33b35bc5b0ae0324685e2de94a0804e3992c40ac281d74e36", + "03176af3abd621c18f1b1ae483478c799be3289d43769d49bd87f8f85cc0d730b38e89a685e0b824593008a513195a68b8e7ce3a7183fc1aa34ee0238baa3b148b1b8fd480a6831fb21b8ed0a558975a0ea2a59f81ae731292118c9248ab03fd68d43a6287fa32a16065fb905cf77ac8229e7a62ef7badff5778bdd330b22c75f489d0f3d9b2a7146e8d1414b51aee36e3ebb3fcc79775153b8e8a918c7eeffce99b4fac6d139af203386e8d279917f84942748058c6f1614887a2a6ee59c11058aac5a06436b91c4bb3f24e15f015ab2218fc911197fe1ee200f2bede51cb957cb069ec36bcca3892464fa91810a73b00d3b7b2a5f52320eead90686c2ebb555cf96d3caa5a7a3ae5f8e9f008811dc73a9a11d74eeaced9975ea248d7750d04b90b676ff15a3a8a511ff8ba62d06e3e867dbd1b9a497445223c87dbd2f4dcd59c" + }, + { /* i=5001 cDividendBits=2604 cDivisorBits=103 */ + "0be62a8a53c2b340d955411a42022e3164adc5d0aa3038471b9343dfd779beaa490eb0d55f9eb14d39d672986a60549df912ddbf84b4182c57e2e2d8a28c574e73bfda1606372199dd9f632828663d6796968a3198a66eadac803104d1d829ecc184595c7457a15eccd54d5290ba2837f34ab9593f4ee9c7bd3c5d7f403238bb6f36cdaaa5c66b4a50de6d0bf2c4600ec9a680f6dc799ded8c5e5b1f659e27e456f9b4cc9152cbdaf39c2bf93078d69b9ac6461d8991237a977e3b2f5adf3d0a8d25f97701ea7e3e3f1a1ea9762bc684d8a5224cbc5b6d34034b88cef87d6b9bcee5a666e9ab2abff41dba892033ed7b95b2403533c3f94a91861e4b9203fbbc4329f908549e29159215e046805bbf2cd272fafa8a99b9756d22a52f480690ff41bf79473317ff6f9fbcf6272fcf653473c6788adecc9d55348a7f6c50c50c58b510131d5511", + "0c74ee80547b3e2abfca45f440", + "f48a03cf0eb7d1264b9f348d72646922f884b545668f8be43ff28f9db2d6a9431496f6fb4eebe51a4b62cb9d04144dec50beca10929cc9108e4739a6e43b9167dfdcdcd3c47575e385817445f0638459c547c4f456915088c1bbbb0409eda7c14bae8cdb419a8d66ba298384b18825aa9ece0404d7ad13de596ae3414d649c8261b1accd0ae881b7109982733108c9ea0355575ef6dd37fdf84434337510559b8a6b6ea8f5b2277be123f26d53e79d0382f6bd5bd75f289e78fc406d15d3888577e0d2afc786ab1c71d61c6cb09b1cbbf1022aab35a7efc9b7425a6d2de87022b30c56e381ce452ced76302070440e5620969de41ac09b8230314a604fef763860415dc4c6518ba8f4df525672b312040d2bb324110c4f9ba4ffd35f279f271e65e0cee610781810a46243e7a621f22492edcb103f3f6f13af", + "0c6bd79e765e8238c0f46a9d51" + }, + { /* i=5002 cDividendBits=141 cDivisorBits=132 */ + "1717a44f6f279def60c5d570260ae9468b27", + "03a64c2bc5f49ccd603bbb566d166dd327", + "0653", + "02f0969a3da248892c13ac922610b82b82" + }, + { /* i=5003 cDividendBits=636 cDivisorBits=528 */ + "07402c52eb972605788eb5e2038942d3ae0601a26ffe2dd37e831998ad7ebbfcc91a49cf0eb4ad191eece2744ec27ac4d743c031c981cad602d219f041763178827f983e45d506994406e3a0f914c82d", + "984f391da17f81858129821bb8603eef5eab6a889e680adfddc387881efe2abdced09388b1193838f541927f63e91fa837576a6f3d425e19cccc3c9afd5b7400ac7e", + "0c2fd5a1929f47dce8f7bc9e4e4a", + "3b3cef2c30b39843c242a6ed03afceee27667e628972175a26cce9a938e2d1b4bf0bc434ec9274d1593469ee7735a9db5aedb1cc47970c782c56472515303e9087c1" + }, + { /* i=5004 cDividendBits=3688 cDivisorBits=1261 */ + "62bc1c17b95046d49b695c168ccc32a7684a7fb6c84482a5badde86977e9e4b120126a722e92da602a33aa32d6f409c9d61c8ed718c1192af6e4dafa31852ea830559d3aeb4236a6c108a466862f51bd5472c9dc1b3c8c8527eaaeb26632d26360c08643996a01ce88a1b41cde58f873c7e59a20b63c6706151b93664dae0f2490c5156e2da2733fc2fbcd1d2faac7e3b1bb85bb57077efda9eec65768c41f6edf7832ef33b5d395363fad09f00f3710a31760b905d57ba2e9ab15109832e03dcacbdde2522c1ab213c2f25a6e3cfb14e6df98bc5fac252dbbc2a79c33ee7e0a7d47807965b4f9bb724bad049a43a72e3b1fb622b2799ab25818c882f64fcb638a5f460b11452b614c53eab26422de07001c38e6813056550577fa4adf4b08c87f5e038f99a24a78519a000a13e5c71e6b925ce839b420229f0205ffb6195d42bf0992d16a4cd29a9a544587517077119a0a0c0e6376cb4496ae657df0a8681208ccc740e640b19a979478f220fd5a8f48f1a4f7053fb11c4d7c6593bbceece58625fbcea07a752a2a4a7cc31aaff790048f472b83e6a9817e5fda0b7a85bfbdfeee4e46a32c1fe7f625c7e0821ed0a4987acc736fbfad21114184809e417bb6625f8b1fdbc9d11814c9ee4de9", + "0ff6e6c10c2afb93272bf98bdb016db0045889dafff072b850fb79d523205216f45699aef8367f3a755ba027f3d063e413291d7739933f12d4139afe5fca7d9b7e9dc41fb01e100c53b20c0aaf77777fb4b83f4bff379c2c83c43e1a0e0c2c9468dcfda4e764d9abd9d9bf870962899fd00d85d987f782355f3af8143dd90ccba8f2e02c5f7861c7dd2da48ece00d8401a7c21650501a469187660a06830", + "062f461b1dd020ef8ca1995c99bed10459a5fc74dfca0a1757f8627e872adcab283690a9d0c6e63e344f67531e351183ad777a97fa26c2bbb37fa4e4367013b4b886b531c58a8883b64b15a57f28679e3516db94129eb2384d26770e03bc11c2458239d1cecbeaceecfe1874983aaad9c78f00af4ed238a78a4d7e584b9ff86e4dacb465616a5d0218551a05ea262a3445649096b66bb8463b4e6712f703028f75133a41f7951e65c1c9a7e616f44b62fc0a43f8a1991286fa9ccc566d046305fad5ce110f94e35d4fbd43cecf45b23e4f2f13b8b6c5af25e90d24054cebd2f3858202dbf82f88f48fdc5dfe068b356c752721b9bc4d1b9a3c92299b22263e85b23221272c73af6dc3b0abc850ced77179414d800988bd4409e4cb118c8dda412ba1658a5bd53fd629b53ed86263a08c", + "09c3f1d971782027a5cb2afa93ce993a68f585c5d3cba2c1e37777b629b883c0a77587e3bbb4348354a0c2e0ced2868aa9c29ce5ab2c4f85831f2f2ce136a5535b4f8f0e67f0e670c92ac3b1b8ccaa97d1bb8533dd9659f2e040d02cfea8993e58c20d8009a7c95dacc25f866c3bafd1adcde651516a0435a661aad837ff004fbecd48c36f9f99f76fe5c796468c07ab441bfb2852b0afc56c89068753a9" + }, + { /* i=5005 cDividendBits=2680 cDivisorBits=1074 */ + "26446a61884566e5fae08d080dfc106ac885217bae37cbf83d58fe20bed283ffe088c7e387a63e4b03c0ca824488e7c9ff280d959409bb21055fc552e70ca499cbb80fcc74ec0b80e4e63a4533852535fa52c09a0f530dfde8ef53f22fdeef1d84377cc2278eebc219e76627eb544b6c9bf246a52d75e7505f9f4995d798e4a0b9caffb3d5ee6dbedc06b4f8bfb0f0cc8650e170325f8d42effca974f32dbbff6c584745a7d85a07337976d119ae7a498d4086fd68d6ca19891d929e7ca2f7e2a522a981a35d00f05a49f1c1612e73a2b89f5c347b32054493bc7134ef2da7ad8b3ce4ba56407c303363bcdf41356070f09df7f132dc79ba2175573b3d1cdd2c6bc50a65f24c168c583829280297ab9dbabe5145017324942ad6b34c7f764f78b0d7938a36d65e6708bb6436f33fbe8314ddd2f7e6af96277c296dfc42098ef2d6be5438cb89573d4f3ab689621d92", + "0367af850f1a4159809203590903b201596747ce55feed697c90628d67d0b311ff94337db38de30df1c21d523789c44d6be05eff602eb7181838500f924397c1f82c88adc7a64e0624103c687f8b6f55d9c51675c57974a0105d1f8bcad931ab1d39c9ff545d1ea20a0fd385d8ff673606d7520d4902911ed4e6629d525e41248f83d968dbfcbb", + "0b3d0c94e2168a9c18084981774d5ae075515b10895297cf9450070c25ded8a4ab6b173dc2671ba5b0a567b717e869f56c6ac872f8e76e6a3f6e542c0fb077d92df64eec50d2b62e62226b3d153d802add28b18c314a42252370c32a38cc359ef758e8bed34c98ef0f4664f134749743bc2d848485032b3b7815f5fca2af06b01b52d72d33dca209697b797d641272e780c7c231e8b51271b19fc8b4f1d931081731ed281eb1f2001f7fe48f051c0982069a7a3bd1024b1c117a381afa1e20e3881cf303bc9f7558b8", + "014fd335ceb1df6aed75da67a26675ba62ad8715a0fbb0e0f5e158e530d6f69671c73e89dd5e2bed67679f4af06523a0d43e3cbf02d5ce6f66489bf766152ac66b9404e295fe76f58d977dd115771f4cca2d4bc62733c68e5d439067b314ac8cd2d4a782d3090cf2170b2d58655665cec407eb22b139242f634d0e8d9780c767536190e5ed2f2a" + }, + { /* i=5006 cDividendBits=382 cDivisorBits=149 */ + "2be5798c38004deca231efbf0b2beec8c422ce02fe4feebff51782b498e03bf11b89c18dad4228786541e02fa55fc362", + "052f3d3cff4ae1dd92bd12706e3d43f79c7fa2", + "0877807e323783528b9c81eb6da0358be0d5c70f2c56148270c21a2df17f", + "01f2cee93eb36c2a9a312d96187b20971af004" + }, + { /* i=5007 cDividendBits=2912 cDivisorBits=1214 */ + "3997edab19a0bdc878d63bb4dad26df1a894f6f8a640510f5fdc91a98c8b07a6dfcd9a2193aada8ce0678908d822d8532aa06f208ba3c5aa5ae255ede6c4b4ebbe9b72053ebae0305037daf228a75346d1744279001a616309693fe7ba67ed4670f5bf783d584aaf8f562405d2af735031b9c3d718d0c82eb096f224974f242c422c73e78d6f14c38628ffd24b17e386833773f184e62855587960cb5729b637c9f9fc75aedd166c19e1ed6edb715a621584621a5f33cb24676f3370526292a0f58acba091f49b385e91a131f07aa41aff686849e672e09b3580e7ee565919f28a2e339497dd1b7e52fbb7f2d3cc663345b1ca691058027473d0b4e0d65b2e6e6dfe1cb194738c55d578597ee47c66c3c1509aef8c385c2d5ad42602bae885905f3b68a735e733d6e900bd3d384ef0823bb65933889077f4e54c926e915af7e07d5e32100d1ace75b9614c9598fa538962dba9315e7d019b5a94053ea32446b8662902b0380d43902128f76d", + "36477d180bed234158d700c23660fd5ec01f35284f236f631bd21179397b34991ac0f5a5eaf34851428e6839b368c883c41ecffdb0403a0ab63247fe0d829912c2e7ae183a41384cdc45fd0d5b0af7fa49507302a3c6761ab84bbd9397fcc1500d3c721d925bc38f4df5c53d1cf8a1e773fc0d03479d96932cf3163e0a96e8993fe8c18f88b3047028caebe314bac9bc262bbf15fb2a329d", + "010fa18a1e59ef4605a8628a31d072dc27bf2d4abf022f6e94b5ca2022863018442d483a7b51e96408edc58ad4204a4cb417d0d1a535e7afca8373e53b4279ecb6480a44a21b63a9ab4b703299dc04fdf6bcebd2722910be608b856dbcb4e9c69c8ca29f93ed53575f72350f64ec38c276027ce0dc527291bdf7bb2710d214c0709b4e7c2d43a5ca7dc98bbcce908405ebf21da6590dd91c776c908b224d3c106ad2d5a6679cbfe876a6804a90b150c7362aa09afbaf81dabab203eaa0ffa272497a001d45b2d2e9f6cb3ce91dd846794ddb3dcf2f", + "1eba4ab26ae6cccf6c0327831f5dd6f88755d2050340c60cc8927046799580214f9117547c060329f997a2ff0d1c2869cc318b4b24282a5c3989a6cd3c65bd3b7137bd9102620c5ba26a020ae401ea7eaf5f8b02e61c7be02712fb71eb580c1ac2b3e089472bd573a1109816adf0b166d97b1af3d810fd52d31a19680af0fe617eb051d68e857c745d8627605c358b08b3dd07dc8713b99a" + }, + { /* i=5008 cDividendBits=1955 cDivisorBits=57 */ + "056c17111c3972ea86818bf834a9c77289e8c8bb0df8f7f151785e7b364515ded18254a1a6e905ca5858570e36975b6b123f3132e496f6a413d79ec8b02c4e32edd26018aa196a729a807b4de38146eabe408f628665e70950cfbf56b75b23be4a88023e9b9bce3a0961f1b948a1166d1860ed5349bcb39bc54161eae06c98a643583083c13ed9a9205410e954bd3fe214d5ef844a496b75790faaf9ba402f6f902b586495508f9176fb6e313764b1dd3164608845d47b425f5822aa6abbbe7e4113e03f53d586cebad78e5049394f1cfb686adf78e3d6bae18f3dba48fad6b11271c09e40ba2073a208c698bc7702992c52f2a665", + "011bfb178f048460", + "04e3521455cc0d138103911783b65aa3e81fe4270860067f08efd0ceca604b87006e87c47a791a40f033358fcaba1deda21be155e6e85651f4bc51164a86d8d381e05bc2c640ab846cb959f93db4799f3a0dd5fe56598c5b4a1e0246910a506635377a21ada1a2b4a42b9590743b4747acf533a00b9913e21fd4e7f1dae41856516b8ad2d4a732633e6cfad16e4fa97ba03b27c7427c1e1a1bcbd0a7340b1add321e68cd01cec1a32b7cc4bec3e4e2aabd920812f7ccaa434ebe9713877a12998224311aa82bf1f81f33a9d6e7c9a8bbd5c4b19eeafe5ff5e8f2ccf95d313f4f7f02282009c26d2b211f15335d4d", + "373fbf6b5ff585" + }, + { /* i=5009 cDividendBits=3556 cDivisorBits=736 */ + "08eef25c5b4a083da3a4af27699dd86980dbd7a349ecc9b7c82816e30fed912ccac8dc76dae602b4471742eef8337192f810e477da86e060e79e4cbea46a38872e0662d28237e95bcebb05400042cf465c9ecbfa03549caf8f44cf18b3d8528c6e84385c0477dd816ecf5774c7b5e66e78a83a1cc811aea88cd40774c1e124121591751426a0f4b8bc5df5a2def8234618f78e3a9a3dcbc2dca80c734dd572ee2a8da376f3bf027d3b40a05377a91c32e1518e7f3f30925a5da2f47f1dda59b19805beb85ebef38b20f0f3fa755ae281d1156064d6c004581add6af5e952609becfa7233a41eba3882ff33404fe868760c71ffff4903df8f65d14d885ee257d5ad081161f66d5fcb18ffccba014b218b34bda2c1b40839987ba0c81fbb5d214db630018b8d3cf7e88cfb1380b744c9db9f3d6d62888d35551f8bd9387cfaf344ba07a9a4561fbe1ec817584cf35eef74c947a0b8963344396537c37055098c8e0dbb635a4843c9400ac8d341f3177fa115472805668eb7ec81cb5ec209efd936b85dbeb5dba5285783fe754e9b9b278decce60fb5d935af76d1289a13be3b0a7a8c460abce54de23d001f2a44ae3e242d9ea0bdbd670999ff50f86f55d", + "f7a706b73748a5b5099e4bb6211820c7fc3ebca4f485bb46683bad894a1cd7a4a566a61eccecf7adbe74fa034b55dbd87319bfc6f1e73eb7c394f77716391964a0c6938eee860ffcd95fa9410fc14ac2e3f90789db18f1f8adc2ec07", + "093c083f2e9c39752de6fe814145d46eb5d6e8c32fcd41c7bd4ef5cf811ebc1c8dda6b7304deae0b24063051c41183475ee40b985d19cc5bd0473ae4686d3cce9f9248f3abd6f119bef9a38a9d533223e1b777e1fe54b983c3553af4cd1627874cc2b0407a84ffce61d03bf877245fa3da930bc29cfef906d95d769632e6a0a27520a62d06143834e6977118e54c581adce42141d561da18df907820a8f0e858be4bfb40e038fe63511d5b5309141121784cf23506d955cedfcf429e37e95d0fd08967099cdcca3e8271922bb5e714c22c8e44b0d9f959e158ed7ccb6be750a937dc757878ac58eecad9e154a22625ef8867d520ada636a3e805f1f4f7c77193c792cd326f66197b6b2a444b49614096ea9ed5a52da11a1c980eace8b95d29dbac66f7665a5f155fc465e962387503c8b044f1b62322b4020f7c262b50165baeb0afc2d0d4b5016e81bee284b9f83760cd208f6defdc12b8e74e257280bf56e879", + "c7d8d1aa4c85dfe989c6f746b006e6c3837c8163ac5ae9404d89c0fc79b7ae87eb0219de779f364b7e6194d044a274520ade6008a69cfda388d983c2174d2358c6151027f96818df2f029b967d095aaa3098e91685c2f4ddc5250e0e" + }, + { /* i=5010 cDividendBits=1969 cDivisorBits=1420 */ + "01261f8749bfe8e6c12b47d2afe12b7738ef6c845423a65cd8da82b90ad7bc2306e97ceaf9554ddebd861315a96661a07440c513f7bd170025225b576b22960637646f4ab97850b9844dc54fff3885b4bbbd1b29623ec6028bb1c611931f3cde00a92169f8030c4e1c3f7f4123d304355fbf92e3d79898e5d98bfa3f5b1e88653fa332df70c8aad01472d9d10d9d3e768078e07496d7640cf634b95722ba9403bfee78c1830ef874cca9988be4f69f07c55a3a18df07f182044600f8fe8c45aefb98d35f160555de396068c3a466c07f1f7b37c6bb5841bf1badc25bf6e251cbc96483233b6c8cfb263cf19489eaa772e554c72b911780", + "0cab453fdd211013d0f7315ff491784ea1259e50edc79c6675cf6f82b95aa6665363007911d91e56e7314b64526ed14e01a0e43b39d0e697772457c0d3772b7709465bbd5c46ff1cf7d3915fbf388f3c77c775a0f144f608726c430afb39776fdd8bf7bbe442a04b5e650b5f1de1de6229137c568223576a781af852b259a9d0a29a4453d5dc8f69e15c145fa666b1287b874563e4160a0af5b55516cf8e8353db79a4db5cc8486e2908841ca88c3eb07c96", + "173746ef434693b6a1de8c2ad91f87d3db18ec6c0e63fac442634cdd18632470663f0231dc4d434133f85d2603c6d2d0f41d7b158140dae7af0d879d98554d2aa23dad9198", + "07f7670e48482dde0af943955a4b751f5af9d52f663fdaad098d00c995b23af64f1571a08b9e0c63a5da9d45d5343909295196545fd009f61adddf019068bced611c881d5756a337d29aad8120ac70a393a19252be856cd6c5ca74ee59fabc7254a5cc87726782a0ee9c9b1ec6276629e6f401c8d73818b19a6b3d023bf6ee917892e167ac2cf268647ac34c25d3ae994d49524951b3e87c9337366328f4538a8801a08d457b149288b18d75f4200cd82870" + }, + { /* i=5011 cDividendBits=1840 cDivisorBits=670 */ + "2ee7b825ba3d4c8e08388a35129efa49e9a4a31038a688ec6b6f27f43bb8c099953d93504c9cc464b97c7c2868ba2b7983b9a47a6f4c99a2aa9f59f588b68f0fdee1b8a7c02be5eadd38b20284087a45868ee96e937b630e29924bacaa917b03a2976abcc3a731b7150328dabf8c35bd17dffaeead93b95433c1fff89dd33e1435eceb3f45a2a37187a777d1035056eb317321a27ffa24396d8486d3220c56554a4b6ab0041c141d32e4652d5700731a7a8adf1d32c2acc04c9d7ea414c41bb1e61a2834b0088f0888e702e9181f0b9eb39e4ec5389f285f9b292c38f320d1a1ee9d1b14763f", + "2b00ee6e2a8332bfa916dfa4854394a30b0f9290b779829006e591c7dfe27962137f40d7559c012c9bcb2c2f22dbe147937e2b8cb08e2383aedd0088f97baaa4bb02857f7cdb81d3cf82109d225d981f08c99907", + "011739c4f9352022d8343dd85785ecc5fab95f9b91b0fad9225824d70e6a8d1782dbd709a3d38705a751637df2982244f5b6bad82652ff1431fa2bfde8e88825cc77b6febc91c4a177736c089699ae5f2e26f0853a236749eae842c6daea4cb9723fd708e2d77bf51c312616453694984d22c51a0cd3d742fb1bde3bfe4ebab6351cd6692153f174eca0ff9073abc69268afbb", + "072c01673392f91549edc9850e21a6c9502452eeb75c38206185da3a547eb2ac2a86a1c0eed9028ba0ba129e42b5580cbf845d546daf883ed5a632b6e193b47ec92fbed7e013e6fd6ea18597195f0559b75de522" + }, + { /* i=5012 cDividendBits=4062 cDivisorBits=47 */ + "2f5dcae7848a6e0408cd46ec645123c8500621dc5da01f146dd079029f68ed116c588b18a5dc31c6a810be16304b36cff18b58f5b91c0a10f52771e1ffdff2de85b555b5d9379f4dd36ad1f453c6b8ee25fb8bfa25328ded9b55f1f66c720b94df2e3a026f8e7e7773426ec8eb01cb986cea7643b096b6607e880ee2c58e2b01a23ff7abbcb59e6602dd7cd27dc5e4e571a817eae46a2e1e7f0df201b156639fdcfeca23297022aa577bc2acb0c45e76a860789fb97c0adee680cc5e3288279cea5545dcebf4282356b78a7574b89d8e323d47791f3e9a610e2253597199015e87368ecde18d3aaa44fe0f3b45f3927a15155892d1b03daad8889de807764e9160d9982d59a27355ce6631429ef8d3a6d59b85d1c93f48e51fcabb3b83f215106c0d0be213586aad8190df783fed8fc9ec241a800a98c9c43bbcfda5d6ab41c2495520a1c150e25f7d7d8eb77ee88e9a0b8f2970ebe76c8d49755c5b2aa6e2f8cfc14b35abb24a1c884fde37f796fcbe8211c58446662b5c57f3d9ebd76de105f9ff65d3c7d7d276a5240c1d2f381553fbdb2208aac72d766772a05586619ac1748cc0cd74a7450b3fe1b7b0c81836482e6c252bca4a09bf27e3c965a9f0443494da2938fc644fe5cd2fb7da93a959b27e420a324259e8237be992d74a6e8b8e3f3c94eb3cceddf0ef13617f27df25ee1b6c690656e1767941442fab", + "43fa19985ff4", + "b261851a1f98062d3da24a00068cbd4d75f673b3ef76dd64cd9cc8ab542caa6a4bd2a487aee1914f2b97f676134e851ee56da7ae9715181ae747e57c849c4eeb0a9439b4b7f0b0e65ad200ac7f43a2dae36eb6934b828e9cf188388e8fadbccfdb54e0040ad20eb41c10f7d8ac23a13807481388c77b461f2c85d17f271b0b6dda269e3a4f331d0c25a3b1f8fa4fa377e97ebd70fda1fc14b46f86a8f1d3b9f0a1e0745f606eb14bbe3a97585ff135b6050eef53523254b8ff1bce81b0911cbad521382fefd0116480916caf670ac63fba90f85fa6531663b4f198feb876923e20f3406f8b4a0a91fa0819bdadc1f54e4d4c50a7842d8a261745c775b254a863570220434e68cfb54adb6ef512e46e6661dff8945c7859e41b0739701efd6a2eb844703c80f7f50b69fb83a5d82554bbe137ee12a55e6244e40d9f7e8a16a787a8d7e17b0f399d1dd936cab8d60a82cfc30e8e5b441b5cce4e0346c82cce44782d285443e8b4fab8a7f8457cb4a3fa49c7e7fa2ca1055b906197625c7d483b651a7af93f19817ba108dd3a750f86a18c38d32cd41f0f3bf658e8a21f0ca3e98cb2918509806dc8e81d5f40291abdb1601cb1d23e7263940ce0872db5f44371498543c318adc3a8f2574d65e7f3ffeb838a65e813e5522063b1ec27917eebab665750b5cce95ee6d75045bd7cff8b6a4c47d772993ffa", + "1f37c2056f63" + }, + { /* i=5013 cDividendBits=3185 cDivisorBits=879 */ + "7420096067d22466f1e0ccb57aae2bdd2c84bedd0be97be6a9d33142a8eecd565b42d12710a5088599146667682ce06815a659d4391e237eb0835fecc66cf4eb79f41ad02783e89686f9becd20baf48791f773e4e1e6d70e93d06ffa8b8086ee0b4873e569bae8f2b090b7ddd1363a62370a44b3cd9a6ed4037d85b7536ac9bce2ea7cf3a3c4bcaa3099ac3171729c7fce044e526ce3ad7e4537c592cdb4d93358a6562e65b5eec929a4bea7154b034b1630119f5022bbe3814c4fd829b28bac76044c2090bd0be2acb5886046dc5efc107402934c00d50a6c6d9015a77e6976e74cda3cda0246d4350774809d256c0572fbdae6c8fa5c1f4b2f2a30703cea82084865473f9f9ac0b0d7fd3a88a1f7071c2ed06a10ec6b8652478bea511bc6ad37d11d52784cd43602834eb848f0f543dc3a831cf01238843c19a08d47dcc351f172c366830076424a9f931c05f905711e3b525abc476b9eda2c97057565e796914fb6c74d21fcb87fd661669747eaa12658c78c0fedfa09ce39b2a93faffc28e465eae58213f36de18146402df5", + "76b0e5beb6b386194e2ad713d44b5da70eaa2f2be995978d4c6c6d396f63042052b35d7f9e0af347f8a017821193db9741e2c4e6e2f577319deff6b925f125ce9ac2ac58aec663901e9d4b0bc596150ac6edff920644525ec3032abdba478a411ae706d73ba0b79b4e215407c0e0", + "fa773e16b2d1251586a3e46ca81e9310c12ba3ab94bcf0ddd8efff44f7b31593b0829e6cfbe8ab7242bf55486690476096c9c41cd308000120173efaa2473e841d80d56438e2fa701a9af38b6f35d1b9c4edf53aab7f828f1251db83f9d3ec05df52e86a3569dd5498aacf05d8b5fdf7f1fd327a6e05c058027db26251e3c2fd9b92322b30f4901e33bfd14118485b4738c2d04050eda7d057dfc0c100bf8cd038e3712b6a9f083adec9eee55d46020da2b29fd2e17ccd5a8a0316d65df4917313bf67690d3c462b4776dd6b8f0104908504d74cb17ebd6cf4c908a3ec1b4738dbb179a7508b0891acb52981c9646f26057a71cd4653247d56ae38de16f14b822c7e78d04ef1cce2ff9cae156918349a0ecc9d2c81485946d6cb7bf1d4a7fffe", + "43636c938d9623a129424cf546b5ffbf9bdd6ff89ce1bf8d3c9858806c1d11b44c4c637b575c3faf881838fbc42c125efc1d860cd5efafffb4f4422037aa98e29b65d5cf81ffa1b88f6be48f7a97ca67abd8eaaac2e66585cbdf3aa987617eba9565ab7793557c96ba13db4fafb5" + }, + { /* i=5014 cDividendBits=3687 cDivisorBits=2863 */ + "0e2705f715995c1c296e11cb6e1bcc17f643334b98d309ecebea4310a4346e36a2c0024494394173adc8002f855d54a6d8e10c07ee127babb979132afd7034c6ff675eaa0fcf0340a96d667c3a8cd615578ccd6d1ef513fb89196b3b91e20a7b9e99ba53257310fcccc0d8a79db8fdec1e7fa9a8fef87977fb2e0998eeda1df3ac77392b0115edce654c649580bb3002f1efc958a2d38f7f82d837c5384ebf92d2a2075e9f87218efd90d51cc48592a7d4788f7fda7880d730a61693def378ade32453b7d260323ae4a30f57ae7accc054e77291a8ebaa7a6479537b9dcb743628586a15151c436aa656e7b10fd832d29b1aeb785dad67c983f32107a4afb401ea1f81ea6101cfa975994dab93113094a3c27fd4ad24c3c41a26c20f28cb5e1567430d79a251692fe5840353535e251c7f9b64f1f5a850259a8ced6646f7d98733af589821e18e6965f959c6af4b42e1c68e96a149b7e06af5e5271b781f6a35eca4145e527dc97c7a9820eabed338f8ab1200a19e10523af8da90f88269c1b75e4e75f3d774db56d2053190cd7cf2f153d5567788b93733b8e871acf8c6ccaa5e8d275ed6904eedac44ff719f441c5d7bde5a99920744ee7d6b05f1317e03fe95028d9f0afbeafbbc968aa3b3", + "27a8d1014cb7345cf004d63bbd56004e98d3cb6268e9b6e9e70c29208889ec7ffb5e8c5bbfe02de2dc0a63136921e2a2b63379b8ee580784f545beb1ecc4cbb8d2dcadb90ef0936b404a3b102bb90fb777c8735c45c0ca47982e93d3a0bfd35580add71de6b61a970ec713ec04ea105de39ed5fedc50b375ff1fccbcb12044c3af5363c9b10554c2e994afc7c6fdf4a62bfa67ff7ad0a88909cffaf275d88c86860ecbb2bcb69d43c5499d5cdb549290e819245c3a10530c808c046cc97a00328bc092a1b103bd74730ec597ec99b086348ee42f52ab47d3ceedd75b40bff06d55ae372581fa52fae4a861980e8f0beffc6d76fadee73e72a664ebb72b1247c53d504152c8039c87d76639b1505debb76408c968240df359614423a1e36bbb5aaf3003a455da188f0148ab67a3da1c288e3ba54a9f078ee0c4f2445435caec462dcfe44895e5358f177b1a3b8a56e3f1f7e12072b6a83f7b7dd72b141a15ef5488099738ea4c", + "5b5a7642ae5aa146c0c5411571138c9239230cdea29507adb81c0fd0c50230c63631b2a23e1b7a097b714b48ebfabfe4fe1f7002a7a27247573ec8245d470f488fa450b07302c982f926816ce26afeb75d11de3f4126f0de7949ff075e2c0bba7a30d9e216c60e", + "1681cbe126bd2a0b85fe9cc00aa22ce0ca781772a9af3ad849a2366b0a474f48f1c41c8a6877e551ffc7efa9429995b1dc4f963174fdcba3c26d529f96657adce8150c6b44b62beb42111392518fdef29bf672b4eff47815d685f752d1b00736ad48bda1cd9392c201e9bc28eed7c0a6f88ed98d7aaeacffe78f808c29912b015f7b05afdf75c99fa2eaecdfd1ab0d20bed4fee9dce0086f2361a1e8bedeae8fde1157fb15ac8a0e52fab5079c024d2648ec401d4660c3e92f7886e5f23666222d4cdf45ec0190d2642327b15714c89ea474bb0617d07fd16c8ec9eea7a05426a8b6aeb2a6a2477d5b7a801f8dab279e6d287c1a01fdf94c34ffcae3f092b6448996378c37b64ac96f77f043032c01b939a788f24b98e5b23c552f24fa47ef3b616a4883341199372aaac632f4ad4cb9757c9e26528d7a085b3393dc82a34eb1395134e997c759ba98d4dd7b17fad86cd4f368d11c588d0aeabc97e26045a05c081911af0b8b" + }, + { /* i=5015 cDividendBits=3100 cDivisorBits=750 */ + "a2bdf27c0a3f610a45ee12785cd297461578011a5b5d1aefa423fbe3866491c8f8a82b086df664b4f16eb28e60d28fc11e5d1a7eedcdc5b461e8d1562a032dd26443ab41228366118b8d2415e8240d9d35b2e0740d041fd0d71088e12ebdab09da7fb2c5199e6078f9cb8f6ce00dc27171d061b93e2de2630438b10798255de9fd537ad97ff7758ead6ede75a54a8fe58d46952c0c57185abf33d0b387a55b4569ce187b0a967bda3445d449cfdf11d66a3c5f6180e71f79f3e5b914d5064a0f174b1452e97a7c21d3bdb782ca763feb050a4af29922c27ec282f05bcc8f693c69f7375f61eca0fc2cd508ccf3eaac1556fa0f6df8882463dd02159486cca8544cb85d9658853fb1333a969a9e85c52d153d1a3d7daa9e8e94b1f08641883ec1d8a188276cec11cbfea8591465a6b1e4330a6915e5b3dd5daeb126b6dec491d586bbec53ffb2c48c1e4458bb56208ac3939a2e3cc4be8ad720ca1135a1adbeb48024ac86ea5da9d9f45f2edce99689bc2857683cbebc56788e1500603292dcd2606b46", + "32700ad70b5f6bbd1b209a90181478155d15b1c2e2e8cfd5867fa29a7944ae34001c9297deeb3f2bed4fc10a2551abc7fceb29c5310299e73426843e5b1016c35697e2456a81c4131437b923afa9e13703730cdc98a3188c5f7ef1d4b8f3", + "033a0235f838466f92bd4720693e6431585e36fc714c07ebfd127904b8a22a6000a9cf9447381d3c8e31f363f0a0cfad8342c5ec466632a65f54b84e92907b2558886a6c0a21c0a8520c290d7a62e9fe6d202d675f15173e54a68e3f2db533f2b2f3495bb54fb0a31fde52bfeb3caf3e92dbb8747ad0a0de3da113e6a95d8b3bccc7ac9081de5417833b6b9cd1db05b3071dee8efc98a658e69333b0f064a4f805c07fb248ee31d0535f0c229d30025f245ab8b59799d92f8a39c1ba39d210518e8d7e53b3cb07511ba62de57481f0c746dff0107104d06f9fefffd1aa9403cf7b673176e274720272b9e4d27646889851cec9024487c3a34bf5f31a93dc8d174423e62ccece92badd288a8b3d54a0a5196c6b396351f2a6c358e2eeedd9a3b1ee5a49760c38", + "22e2ef4f46dc64e6f9d577be0139ca0db6241e765d95498fbf79d1ad641ea52b9f67b71dcf62fb0b32c00a321dff612c7cf76eac916b3eb4889979612428cb9d789f5c7c1e92844954995bdbe4f29784594812a2b9f6d3ccab89682a921e" + }, + { /* i=5016 cDividendBits=547 cDivisorBits=62 */ + "03950b6d02f5f9523fe85a2ed9c2e68d5bbcf7f6e0e3dae4f99de24d5934795757426604585b8cce501e8b3b818bbe72becf4607c8259954be7ecd4e454a00083764279df3", + "0b447969c8c90220", + "51637da2863686e95b0d918b776f4815123c987d938a0b984fd615babf2d0ffaca5eb1f6617d30fd7eadbcb1b6f35ba66ff520f415437c98915260b654", + "049e1a938eb02b73" + }, + { /* i=5017 cDividendBits=423 cDivisorBits=416 */ + "18de4e4bc98a578da0967b1e18a5c4f2325adf628a24c19fefbaf91d8eb22ec29d7f30d577455f58f4894718eef2ed4daffea8399c", + "870494d46c9e54b37cc4313b0a4a2efe4debedfad01ea63fb68a0f018ade5305bd8e6d0cbaaffdcef11ebb887c480609d8ee50e0", + "2f", + "1476f8c9994600acae761441c22651820c8eb17def211a3d37a05c46335d848fb20ad020ff0fbff644a2aae021b431e12ae7607c" + }, + { /* i=5018 cDividendBits=2457 cDivisorBits=1730 */ + "d02ae794159b2b94ecd1b01cf631f5bd6c82c97f6c2ca75f48e5bcc57493c0319e0cd234130596e1b8f662b554272aeb65b405094478d50061e313162b98182ff327f6d81e2831868c59686713a1d7090d5326a1e4703a415ab1813f9b455bf3234d0eb8c967910fcdafcd3b5c70b928c3d595d423dccdb7bc46409482c8aaff60768dfe5ed0c488f08712a866af7b7c305f4fea11278ab2780b3a66b51182051ae74e111e5f44ca2be4263cc535719f1ba1a96e1ce92ccea243c2c1c5308958f026be2a93f0301780fe6e61eecfff6d3a358a8eb4e7754cea89fd9920310eec9fa46f599b23283cf35cecb65b4e41c6ae1ed5c7daf31be21cd0e4c3088f1ef09ec60adf2eb040e879d63e7f2af0322f36462331412246580d602dba2c321f46898e7df9f79a17c0685383824e7602d8cecf4b", + "0153ff3dd45782e5ad7d06bcf8a62d1e924018bc268abdd40b902a3fab9a45859743718f4eefe3a1576058757c4d5929fc3cdd510a4aeb142e55821a1146f8d49935578c13a40415715978f8a17e37130001425358e785d0cb58fda49bdb2f5ae788b0bb70eca96503b9eb9fc01b3ac7db146c25f89b88371598a7df6ed943425513b0c4917215527dde5e10b6f0d31784e39dc2e1c9fb5f2aa13b11dcd314dad8c7d8a621e1b709ceadab6d3d2b420c37769aba342041df47a2abcc6ccfc07aa929f22e1119b0d0b0e1f1bf5796e90105306f0c04ec6b16c4", + "9cbd441ccb6c99742b6611f49a39102c43bcd24eba2ed3c8194b82ec7d817b6420b867d23b3b9ebf4a0b44d199aec9d6a8f3908c035c6a36ecc89a80772a6745202cbbebbcbc7db6f8653a8b2f6585bf833692de9e5f3f11475e75", + "0146dfada22cc7652f22e2b1456576ea86b53c369a092db6dc657d2d3003897d46b58d73341a3f05882ecf1ee73218d82a87be60b5f3544ba2a3862565b5b348012cc1315c14f22fc4ca25e10eb95a81071ccdbe916c7c55d0b57e0a7e3c1b1f44b8c6c080d77bb49f3e7d6e4da5112f6c5f8a22dbcc1fa75f90f58040ce4e1b73963f05f0df052342842a810486dbfa23cbfcf5003397e81e3aa4bd9de8cc597c9cb2611f97fd0ec947b52f1bedf95d9a2e49a8dc0d7c91d50148a951bbc73dde7d0397f2f1e52f74c79b5e7579de4132ff4e248125256fb7" + }, + { /* i=5019 cDividendBits=2910 cDivisorBits=2364 */ + "31c0929fd8d716213a7abff0b637e3269b466d963ff724b81e5b2eb1885de4577cb491e4d253db3e69a3a12b51d2d9d01a7e2bc51d15c0f0ea3a9af580cecaf1f6867b72c6f2951ea7c4f91e8e3b42135c7d1254ee7a1d728974b063f2f90a33c63fa00ad886c70a59e993d892058f2bb3247752d83aa15806c2af72e6d8b8e7786089f8c7b61f5c15b9d488bc8ff071fbc692b38eea2c382f1e82918d3de1d99acb18324ec91e1d8b16dcef372d3a0a009d867a63723c6556d6ecda6b4f63f6488e8050c360799920c7ffcb7564028a718b0abed31f779c4d3d2724af9976489ebd3ed30d8c8829f926092ced5408917b44ee1c5c8de788fa8b1000547e829e8ca903a8cea03b631e008fcb70b49477d3529cb08ece5396702fcab69ec3a959d22e23904c27a8e90143aad9e4aa30d4fcf89495c356eba63748b90f82ce61048ba9973e0fd1dd3a89eb0380f2864a91940b06d3e270ab1f40f7e10005803351b4dec9348f606b97d2e5b13a", + "08c90e9df5cdb7ba3cfd534a65c5e5aea245bc71d24eff8625739a958a664e18863d3fc52ca7ff2093396cf751879c1c7700067f2906dc6effdd6ea428986a5d8b6228e1d165c2478e4caa5b507073abde70566ac88e5196cccc2881843ff13f94a8c9574deb8af3c121b72d8fd3372068ada957c02434e8d596e0303be4e586c2af238f0f0f1ca93fcaffbfa4faf035fd84d41a2c7362d116eb3f955a0f446b9fc38aa669bbb5b5835ce2d70569fd8914f301d58ddf7fc6f9f747d9f6563be70d5b24823fde5d97d18d71f0bf39be4640f205100036a1a417f92f8056f7dbe69bc8447102d692b69bdcc58e85d1207cfc035175fd8c62be9eda15ede69f511674999a52fe93763cd3f08815ca7b565415a41a5e3ab65a74188e8c1c4f9385caef09f2b17e19a53c", + "05a9bf19b578088eb1fc0fdd1130c4947cfcf49e4fd9896011794218e3f9b0d7df3516e3b84031b28c726bc65397c635cf3421ad6df75e7c96bc9130d87021ea38aa04ccbe", + "07f97bee74f8bbdbb8823e13e0cdf60c9fc03bfff3cf6fadf5f6e6e25c4b45186b60ef7cf09d0bcabc49753277e1d215d28d1aba6af66e57a80879bbe33fa9d5383cd84829b61e2b44d7b022dbbfbca3f279f96b69ee16af54eab3190ab108e6a711ba64e8a8cc63c2975284b772cca7885cb8d90d1257def84d19f754249a67747e3e39822294c4240e454abcddf35eecb6d1a5076fc3f9a9b840969bc1ceefc40fcdd6a98eaff447047fa18faca97004ec65eb13bdf19dc4322d8ebb0e53a557b9486d3543a8664f9eca08bc7387c18c8b3e46a4c55db4833c2182928222c49e46e5e410239674e8815f5562152edec2f43d85f49abc8034b3560c5aee7ec156cca9fc9b04e6628de2869cc2efc8422e63caab5f201a23b25553f70f30f679fcb4de1f5f413eb2" + }, + { /* i=5020 cDividendBits=364 cDivisorBits=214 */ + "01ddb772cd2105a835347f5b1887a8a9177b5bb0ea8a667292b493597345105d5a5394208f2991c32f44e75dea4b", + "31be3382bf2123e4ef42e02aca1bdd746f83e8a2fdf485974db489", + "099a8c159f76792de24b45a379c796f1236a56", + "217d34530fda2fe8b0a6e7f3c5c622b1a8a71cd8e09be33ec78a45" + }, + { /* i=5021 cDividendBits=3581 cDivisorBits=1982 */ + "1d0c0f30d0a328c84c3cd176bb4abd7ff28d1c22496f7649f116ec50e444e706b5991b1a4de5dc8398e3ab89b5f92ddd567431d55b0f76bbb5d4395defd25028cfa16dfcf0826c12b1be301d6b00f00273e7a28575db348bc20016b31b533d3148edf4123b9b78087a058f8b5d91b66e0433dd6820769dda1002822b1d20ec43a5e004a3562208c6279ab584c5a90affab7480dfd67a5cd743ea91e6f63502af970c0e8817023bdb5d6b3309474769800a569178bd5e8a2c1c95610625b8b84783678a2453c4756891d3497081ee906e276fd168596cc0bdd7fc2c24b32f9dada0cce5c0fd69cdfbeed5982748c2a405c011d8394cc9f407d2f2a9bb337802b72df601014f2a96d197b08977bb6eac0d9715aa9f5148604148869637e95d065e363bed2019b9eecc70b56560bcc9cac100df74ac2b3958f6514eac2209540050bb77d5f993b7f12f6f8e430e1dfc04a090840dbfe43867140c2fb6081784a886171a2e5687816a89e43cc19194cab0d4404025bf54606ce42877ea4d69852654e62774846c88c85aaaa04595c9f99b28389d4c077ae7edd7133add183f629800d841aba592e350c614411b81050d83e03b61d6f1b38a719af98fa9eecd17ddd6", + "38f7440f81c42cd7701bcb718afda675404bd29ad0013530809363f3d4ff36135a6759631eb4e1f2feb6af4a4a55b91883aeeee76882a8e8d7a1cf10df5588c29faef9b8aff4eac18b596d2e528a02eab15384e31c90d83b09132ebee7bbade0a1f8a2d61db41819a1788e9e3757bd3b1ae8c5d340844419394d18fcf90a6374ef9ca0f328dcbda7570a649db9180d6e79adbfaf0504d88aacd707a21cf82d12cff29ec3a8111b9f8b1aaa72601c2e9e5fe72f1eb8ff8decd1ffda71909acab4e8d8990eaa8aeb4f8068e3c5e896a6a9124d3dc85fbd69ea770025f757da71c981578faf3dc41dc058a485eaae3129f08b9155e35e5376b2", + "82890a593e1ab39fce3e95305e2c8d9fcabc30f1b7fc8312f02d4578ff8a51ae704ab412f1a0b33d9517f8516c01385a1f9aba6031ad9cdd1f536ca67705eea75c9630a735ebc24479db45418b7d13bdb4571fb8b104d60fc380535e2612519edab6ee06debddb638da66e6ee70beff9f36e9f7eebd85574a46d7b752d624d9542eeed23dd63b6634fced19a33bd0e5d9ef9e7ac2f1f04189580e2048d771a65b1e64778380e4a318e32bb278bc9ac16228bae476537b9ae4d7300b4fd4ab6b70bf081eed65504ac", + "1c0dfac03ae904b49b0b0f153171383b85d3ace947872ed4d75aa661e355bf4b9889ab04d2e44f24d2f43b1d9ca0333b7445aa97c2ebf756393f2e76f679d62bb3d6bafb5ff265da3803d149792c2dadbfccfe1365c77724949c9ff0cbe4779b68d08854cad8ee36358605b233b68c550f8b7b74589655e1e2443ef7f0867db9b774af9f899bd3905924056d7edc6f719208104e4b13ee205d8777aee160397094ce81977edffd7e997d3e85ff4ae3f40fa79a102449483cfceb618a74c57de01cf7a8e0396d085388847aba9bf8360b4aa11471ca3d73af9e8eb48dc5b4ceda8a1d6dfb430d3cb84852b8149f34d740abf24546ea0f563e" + }, + { /* i=5022 cDividendBits=1788 cDivisorBits=1418 */ + "01adf99d21c0225ffc7e103b04b6751a8f2ead3a8d7a3368c0b2cc02f15d9201d504bf3942991d2cd2120c38640f143697e7a0851eae2ee7998db2789a07c3479e50cd93fa267d38a9881e49a5fd66e597393f8505ad36ea25e2428c608d7da70e4e602f09909fb338e168f66e3ac92dcef6b20c1d4b192643f31be6d8e22aee60e0602f15f2dabda79f19ca7ad5a75554d6654134c52748796c64c31642470bff0a966c98b9da1da61fbc508921186972117eeef6f5e9018c2023c9ae70e49c9fe5625340c15fa453586fb0337a7a18f29279c00010ae62a125a873800e6a88", + "0102533e955c58fa86aa97c56c200d900eb4cc4157708f7a19793ee11987cea26c14c9a8ad10fd6ce4ed4ce855db01653cb86c74e06272795f1419cfec5b5c7f756d448f30b23419f23dc80e0e643ef6d384d5c4132036f6eb538da8ae1b44d4239bbd1f2d7a54a6216b496e28279c13e7304be954c6383c8c180e05b831973922877f4380e24dc746e810042c53f2c31e43aea12fcadc7437c34e5adc71c4d78e555a8f66f0a34d65005178cfea24eae70c", + "01aa1ad8914aa8dcd0e485f02c3cf169e41c847b3b56a67cff9f1c7d5fb83ae04a95f9ee03e7c5bd09a14b9eb32ba3", + "f0aa5984d172900ccd4c973f0820d4499d925e589da3afebe28c0cdbca798c209aa62fb2d018e3c8fd627ea56eec657bdb6ef19669164999ae931841e5a7e23de64ea4b3dffaaa016cf6de25f673a107d9a6119e1ca05db0b45269938724b1e3db365ce5ebd1d1d899edd35136ed103cc9f8b36c7beb5c5c06bbdcf4a88da1375d20cde6f99673711148bbc058b24ff98b4a74578e89590eea87b46ed2254955c2a880e7d9f24945d10b3feacd944a49e4" + }, + { /* i=5023 cDividendBits=2858 cDivisorBits=63 */ + "03e5aa897869b6ca96f266439a001b8a84b7bf8e2c689268337344a8960b3c6a16bb1df3fa77d79a3ed7e1050e902bf018ec609fce2895b323f3af36c3bfef1a15aea5b13b5d1c7230d44c000fd8caaf694e5595f6154c02db01c4c286b8f615e3a17689bc4af47be09ea08aad91cc5f355756f0eb4e327d76010557e26fa9e1e5db855e224722688c654876e893dbbd8abe2c2d0bc243baab24f0fb0494050540526bc8a08ee230deb5fa5172a32fe0e2c4e5dadcb25763e22e59e05de4d4486cb832e4058c7be251aa6474a793df1bea205ebcccf1e16992d2f3e82175e823cca8e24c8e2573704f375d47220d974865a0b69e336e492a75d70cb1d9032a21403ada7803392264d2fc47c8574aaf42736a0101e736d0049175ab10925a4c36bf378460034c4bf6ff3a82c0575434a3ffb065417ebcd12c3a3299fc5882c2de9afb821a038cd961a0605a7d55dfdfa1f8ad768aa2f677dfc5782d1e35301721326536178143", + "12a56d94b028bb3b", + "35814b60278499002a79a6fada31700cd48a25a36f11dbb3cdb0cec0a3e8d199a0d2f3128a6b005d16b3d9209d040340e7a24477cb47fe9ae66a6bba3adb7506e041404017a434fff3872bd2e57a3af1e034e84d0aea74d3041cc42f985daefd0a95e27f61b7cf4fcf2fe8281515e770fee39f4aec0c5afb7538afa0311343f91dc10aa5122a754c12e16b9a0baad680fe0cc7340ff8d806507f7d6ef85d25f17a03090a930f64949e64dceadfe808a90a66b3538ac65936760f8282003114ec6d80a3c29f2e864bcfc43861cf6739c0e70fb6730124987c6271a9ac779927f06f6b3c501167e0392529aacfad29bd8c773436400c987a3dcde75a582f0785362848024a17b7af7a9b0eeaf98753b92f183aede11146541af50531dd0510a068769836f237d4c3bdad3d9f2be1fc64589fc87443f719023af425149cdfc19f87eb9e349e81f95a637a3d37753c309c4194ba5809c1af235d7f6d8b516cba", + "0d5a0260c2d79465" + }, + { /* i=5024 cDividendBits=2170 cDivisorBits=1233 */ + "23399c2cff52aeb1fa175cf841d9c780c6fe883fa125f180de4686a9a522c5c147b63c8f99e6331375ec67aad3a2d9956e1328cdb816ab2e8a123678eff27c25f6b877584dc9407e1ae07c9cf9dbd094b872d8be5fa61d9649432203f576ab158536e09be7bc50043fb94aee55a10299482b943115a902f4b3871bc96c900e616fa7ba08085514ad660f83b1c162b2fdd0bd5b1c87045afbb0ffbb6a5a157a89bd957ec4856cbc0fdf86ce0f4c233b980dcf6d247b3781dbb3425dba0c70ae444d60c89db21da6481fae07c692b135b15ecff9f75dcf5bf7df534cb236db83621e8d5f324ddcc07481bb802119638a8b7a91fdc092f324250ee9a7ac2d27f2174cb3ec06be7f7ad9e4f157dcfbceaa", + "013cb23e9f31c0c3fae477523c276268680f204e1526cf1b24771cfb79904955e007c7bba1eac4ba288bbb3ef96b137a23da47ff7ab9e439d2532e2aecfb0f4173354b3e6119a5da9dbb7c758bf024855af7acdcd78d114f35d924d56bf0469903055246a08ba5dd8ea9703ddb81a8b4b476853536469e7b9c6ef00c7dd1b3bc166ede181de8b46f49687e4a7edd046da123666d8b9a50e2e43222", + "1c79582c3a95b74b4daf6b0dc8703daa86f24e440305b4d845403d1a3114c0bb7b8841abd28f3a6839a9972ac0c7509eb8b755d23a6a0dda93865d19fa5a2d388d0985bae40ad1491b99200f0036c4cfbc64ede7aad398708645fe58957dc80cf6472583e7f6c5f99b6bf23a680f029132dc647d87", + "1e38cc4c33b628362213cf519ce367d1720addafaa7bae798b3f3e64e775ba30fd30109b84f74ef32a9f7a99d083fe1ee6586f6b6c420ee87be2cc1e3613138b5afe49e6f1b09e60e470c46d1d41fd49c42f2322a444298e65ccd6eb4a239e2215a49eb13697e63c0a51e281b7c044b89c9ffcd3bd5d63cb0ae960d947eefc24b76d4036cf324f332c2b5cbb6afbca87e2fc2d1d4909fce2c4bc" + }, + { /* i=5025 cDividendBits=1169 cDivisorBits=84 */ + "012fa4a69660eb66cfcfa0c0dda615da283df160090bc4bd7d32cd4aa53b2b683041cbba9c0847d6311bf843d72210402490a24da815471ea2a606df859a65fc4ef793b3d6ebfc38809b2de0eb99b5610933f71b712b790621af582738a43fb538ca72655bbba5cf51b2416e3cafed4bab65ada83765c92aab6652393c10e1996e4c6526f0efa2a0131fd59262a0e8fcdda3bf", + "015ef6e90987471886b1ed", + "dd7ba27f9a58282e1eb33721dc667648c1483903067d643cf989ea99fa2815dff4a5f738891978108fa151457fb22bd78a43de0fa84252d3cf2762f21f72ba6abcf92f82a4658b97cc5cd7f4d7b13fa57ede1a97a93c0448758e27700337f5ad27af13c5f68a61ffc438060cf763c3851a450c0c98ceee88365bd97ec5cedac5ed1df5453bf400fd", + "013e90dc1ebe618adbcc86" + }, + { /* i=5026 cDividendBits=2874 cDivisorBits=2334 */ + "013e260b441fe9b05e65802907b47cfddb5ff25c95e298ffe5ce05b3d1361f5a072f502d9c87a3ce59710ce324cb1e66e25bdc3207305375fb7a0994ce5a49e165883a43100360e62f06aeac1286b385b4fe7413efa8ec858fa522cdef35d9bc25b60a6fc0f5c52eb4bf1c1f923a33a3521ef28efd09e32ceed63e06c59e5a67265a31a593481c525d452dd6cc29dc4c2802201bb1e9bcbfd392b24140d281fd217ce2c31bddf1e4ebb56b05b6281955fa279d5d91e85878bf184f2fe62772b987ccf29cb7d03aa9a0f12418ab17abbbe6db5387a6697dfe4926701626b5f9a9811ead3700e7d02379fcd443b18c09531d0a2e247c44cdae762f01d374ea954bef6686b70dce07e237e3aef669e1ea6af3429abac3d1e9828ea58e8dc933104337c1cab29482c4e29a01e2cd5b496f63e278cc4a0736c07030840cef3cb261a2f7f34d9d0d8e56cf3d95cd4c339c19b4ff1e4dafe46775e0a89fba355ff239a9ac55b46071b78724", + "078a33a765ca795244c345c86a0a738ff24ec5a4b1b32c47852767d353555f055db804f3b7a20a703507ccf0474ad0ec7c6569aea345d84f07403b1f89f376927ca34fe6bb97a5673e7ef0bad095d00f6dccc139298826804ec5e233c3d2cef8346f65c6b9895b63d5122c8490e2660d599c864e3b7d06a08c8f709cb8b1e147236aa5aef6560631adce68c6a3a4b343674ec78887b2abfb35092043e55e718353ab1c81acbfeb9dff7ea10a3feaf01d332479a4bc8e1fec49dbf9a575ca19718e0fd8f4b40a13c4e1e7d9f438daccb5ce9998ef7b206c9b1a6ca3b26abb8625406f89485a7388cf64a0a41b8187a01b875008d01ce08336575cbf42b8f000d0264442e0a6b7b1859b23ed1217254629c8bdedb60a4d214ede7ffe623e6d669f9fbc5275", + "2a32139750c2ac3d0aa23e8214e78984105d32d1fc919bb09d04b074d8745efd045d017032de2996293ca389accd79be3eff9b249c2c04937b3e8a55934d9dc7db921042", + "0333571066846d4ffa836fe13ba187a925305ccec124214cdcef07df3afd50b03c9eb10c7922a69e185d316c1f9f312223b966d8e0dfe49b6363f9fcf9bd8cb91ece83f2bab4bb9113ef1b30f905e9b0c5f732afae49278c78fedae9ba1375f0194afb044642c2dc8a231a5df39fc4db07b4bd01f6443b0276cd5249f7d12f6437443b46a38d7b120828f1fd70046b6ef4c92734051839de784f7a8ff32028f962cf0593f1ea837675cb78f9a0ab805a2faeade6df84f67dafb4c812cdd458d88779230bd4d7a84f6f103a6d3ff28a068bd1936cdcf4c72e37eafc0c7569a54a2b097d62303e0db5b865ee8872d1d83d07a5249578cfce631575e1e07933fca964e6501878daeaa475d35568f7dc90e93e84152ff2d8c3590096025d02e137596048f4fa" + }, + { /* i=5027 cDividendBits=2052 cDivisorBits=1846 */ + "08b6beee8076d5dce22762c8bbc7a470aa459954f2c4c2124f27e6e2b704f97e8c20b9ba26ef1575c60dc5e602f1d31b496b004704ae9c7bbf387c5a4445bbd212ac2b0ed895cb20d857d1b6863e306ea37076d462c503fa8a09bb895988612104f2eb6feaac8a186cd041d84eadd38663be50abf4eae0f62b2f53ab5dda8fa665bb9618efa29a81d7eafad163af5fe7492dcc26ed4da0abeb557040c71689022454b724a860975f83eb74c0f09e5d2eba9a5f973ff8fab969ddf41fc5ea2807300ccf34de42ee99b1efd06161bed96f5a3d1a74ab9e7aa6f4adc7a149ec5690fdc934d9c4b106f8e5e9c6d05496fd1469c4411c9faeecac9830fdb2f9abee27de", + "07d3d1678d0ddaabe0bd1f7815742165af31dbc14f2c5b3a12f01200638792c9fa26e034ea89cf9bdd57aebca82c50bb5fe40c8feb4616bc249f66ea63ec5b387e1f00813124847e67e16ec0a20134ab8c291b2a79d18c80f1775f401357d2a21066a8c90476aa6385b4c0f6b280dbdd35920656f3726b8cd7bf5495a217d6144bc5a7ce35485ddc54ba9c2f0f3c966a6d44169696a2f08bbadb80c0685c13f9ce8f226b77f5171eb34d30d7b4a5d414de137f44ca65ba14036f4d90eb6cc22a24d5ce288e72bbb25c8f9ec0d506f40ba3f87692aa8d468c24cf1ecdf66b4dc63e057368330d7d", + "011cfdcda54f9d4d41666f49738903fb7491134e4415db4d832fa0", + "014a0a552bc2462ee6c29ad61cc2ffbd3f15e865ecea8ed30627794c6324f747f7eba7019ed7e9e40240cc7ccae92ef8eb735498dd9852483e1405a1ff93ea1ab3f71a75009b3a81a1c85ab65462bf82f9b83103146da350c22446c9aeda737f6157a1a9e9636d4805dcc4072312fa0a31914fa60059688017fbb3a22957c30a96fbe7de3feb38234f90145e810049e90a792d403b504c24f4b2bdfc439f37d944831e989da0d5a590ddaf43b630d295ca6208b35a77cff47b44c551727fba2599566bd1c9a595792bdfd6568f19430f7cf154a2a90b75d8b9aad8cdcf10fd67d8a299ac94c6be" + }, + { /* i=5028 cDividendBits=582 cDivisorBits=38 */ + "20fbdb81e78d8882954989f452fc918d90ba741ae9d533738ab8e0df39077ef4af563dc83516160aa282546440f0ae27b49681ddb2ec1598500de98c2e162c55489968170f424bc239", + "34f676bb8c", + "9f6e1c5452eca65d489cab6438bfd4494b41db139c4987fb85ba8e1fa1151b8c68651ce65609081cdf64dd62b7158479e9ff98193f6a784782301071552677d4caeb20b4", + "187dda63c9" + }, + { /* i=5029 cDividendBits=2993 cDivisorBits=372 */ + "01085320987334a9bc57e0892985a29f78bffde253ba82c0d8eab68636e7839cc3bbb559e19b224e2ea2f22a4a5a66b6e96d99776499d4f4def5d7bb34c38122e4b2afeb59aea2d04533fd893c978cc4ddf7cd4ea2e17cfb2347b5fe7531a4547b314dc8b7470ee421f50785ae1088137fb3669b0709e2dd2139a17955af1183265de7017b4a9b2cbd2358318a328e0586f1788108ce5bf6cf638e0ec0c98fba2552aa78504179c0d3266d0471a1ab86ce7ebcbc5bc0b72158438dc892f729422e2c411914c0e20fb198611a3e1c947fd1c60305df84b58a31ef9eaf989da2fe4f71aefaf321ef05cb65f32e5233e164fe49ffb6967b21eef676f7f8c490921f1785d03662f6cf04ba378a812a9324fd9362b30b3fd8d7d16a5e7efc2eaa28f686af3a103e854f66263908c5fd961ee937724a07e255bc083337c88596a3076dd7deeef8b6ebc00a39595b37200d288d13bbce23a5c2299b7060618bd3f64540ef974f6e5f10b8638926687b0f51f160c4f478049a50b7", + "0e38afe9f9c11a6f76b9c8d9f77e1fa661a33130fdb8c3770e84b181c58892ab10fe6dffb4de39c5ed4c4efe19d5ab", + "12961bc7a529e995dc4fa6a12b92998f1a1236be1487bd87cf47c2f0aa9b52b54a8c309c0cdb22ba3113b904ff513e40e2404aa448b0cec513d073f9b623b20a85e8dbedafa466a6482ab6c54798e512b218f1e2b369929774a9bde2f247a800432130ba079d8a556f71391653dac2feeb5e0f11ae5e498bbd56528df29792553d0f5d698bf0bace7bd69fb8ee6a7ea158506aa6d9c6cae50986271f2b245760e35b9ef41493ca3878fd02da98d07558b4d8c2fc91b65ec007535e4d1378d366d2000fcb806caa6c5df87c1e1da546868f59d0a3d4b64cc3aeddb294bfe6a83088fdfb01ec1745e4e97612edf257f18854a754bc5104d4de4e20d28134ab12578646f1013630c70ff877e21a0da08412583f9750bfb4c4c0114b064b0e5cb77ed678a31994f0101c2a05690456505f4d1dafd88c76133fb82c879e4aa4607b5477562ec8c4399304", + "0b8a885bf750faf3fd59727fd3922494a77628ad61cc65e88bb4b0a8fa45d4aaceac8cd43578a521166463b76ec90b" + }, + { /* i=5030 cDividendBits=3767 cDivisorBits=2862 */ + "57e86be8dc1cbf6b3330e1ee2ebe1a7dfdcf0fe75005c08051b2dfbe30651e101c7d3b3f3d7e7e9d3f2adcfe09a88fc07bec73bf7e0b54d9a2752d754654f6a35e218536535012d0bf964dc2d7e58dc36d6d6ff048a97fa825abc72eeeff7bffb8522394de5eb34aa0be088f92ee370429014ecc5a74b1cb87dc9e19e7065fcaf6dcac355b326fc0818c1c64bdc6a747f605869edcefa4f3c7c46cd6439574e60f45b9cf4e91b488bd0e4f9a2e2b663182ae222fac3931102f2e8301001211e3ec14777e9d95710dc30f602db2a71628823b0da9a58d5bf3ccbe68b6f3c9677a8a76d9bfc921c95961bdda9bfc679a814945eaa02aca92659452652dea3fd39046377243aba69e4c23ae3c4dccc2bc636b8283d8c875e71206ebaae2884d7889d2e78f34866001fd74d3ca4e3287d05757473f490729189769d6474e6efebd2826ed40aad549964b3ce99df67fb8bba8b657c69a4421f4572815a400dbcf761a001260949221ff1ebeb26836da148682c87e38c42e9198619755143bf946078201ca95f54ecd3c2b706376acd4c2ea887407f01808186095478fe9b1f423da253942fb60a968a360b590b39f96f14893b1ddcd5716fc780013afcf9b570379f5a8df8277debf0861698db2d739f4a23b7af0979cb7048c", + "03f0c3b503d25f83d05b74fbbbd129390d78679275b411401b1306969f3e7fb1d6ce4bd59988d70aec511b194db234239aff40e311050b493454e3b8f11a698747e12b55cfed759dc1cc3b4f1c54d0762a9d155b8882ba0ea185b18d3e4d73f55aeca8180719732d3422f47bfcdf09a286bca1331b3a701b7f617dc20d26169d5a65af36d48ee3716154af4edbdec356ee852a664f77e67d213d4781f54c234249cacc8bd77e9b528fd2240e4d794524e9f8e3df1217b050505f1732c0df332b020744353e112863d2ed76c38e1de29441d938df3ab4a2b40f39008e4baf6a990fd7749cf06ed8ad66bd316d25982b3139f64fb27ea4866f461afcd6826f2927d2d2288db8cf56b80cd09d68abafdd8dd42a8ee0abf54371802eea5cf118fe723a37b0a3e556c9537587b631249d1bd310bd6d462ed74474fe53acee781c07e39d4691030fe55569560ebab4415a2d1c2cfddb70d0d2b944fa216f7c2c2d5cb8381d842a9c8d", + "164f13c8c613ef2e34a6f0ca2e2e11f54dd415b690cdef8dad926441ce3d4b868da5fa47a2621983125447ea667e1ab028d8cbb17a4879d29bd20d7dc8b0c2624bbe13e96a012fe6a2182867d7e325600e18b04bd06f3c046f52de704653d1131785ab69adec0dcbd64f87cf22cb7c0c19f7", + "0106b0ff6e59e47d20b892217a7881bd19164d37a70ffedb5424a6507fb95459366c423c403ead489772554c0bebdc254f9f2310db163572bc6c5774b05b847179965632bc5ab1d7bbd9d00afdbb807875fc4d591a00443a1eb4109d5eee2cd5ee63810962e6e1c2cff03f6b4692ed2cc6a1c5070d9f84a85e21a9192983cf801098791f101d54adfd0e5ec36181ef7734e219eee27535caca5caf0deec885d202afcb94d471f96ce7cbfeea95b32f90561e91a2c55b9aadde5160fef2f74d6d7ef897ff5eb987ec363f4a957862f24fcf31b95814da92ae3d762b29011440b8797aa44dea84c15bf5624ace11bc413301f207babe9e2d61dd3eeab8c0ce0ab660bdd4f3c082c9943c2436345f103fb74ccb80750b0b68c717c5b60afa82e51e78a56b51f0bfcdd0f5060c7430e92b9130fcceee4d1ab39a8df3164242c98b6acdce8de3859c96624c566f18939a6808f4b1718864f2cb2cd72e78256383734336924bb43381" + }, + { /* i=5031 cDividendBits=1633 cDivisorBits=1138 */ + "0142718b38992c37c5085f5ea7638519c68a0b40a64fea32ec4fcc6dcb4a9ca09224c96820022ed891e95c91eb857fa965d094b81fdb5aa92d9972c79a6dc38574b46ec1e7b5f06a891a4d45d3591e0133e103f8db38e07d7db16ee4ca18a0b578064a49d1ec97b01d305c28e6270f4333b64d4019fbb638b9055e4637f70b83e927d92c08922c4067e0df89297b7ccc1abcfe0ba4fc36c3fce0696705c62dde019ea0e78f12925c75c14bc0ec5d18a073ae87b3caec536b1cb95e21267b024aabe31a79e1909a5931442d57f2", + "025d86a70db64ab70ecd124bcdf1472d55ceaea8e1d7143b977a9bba5037ff318d29dadd7b8e85f4c17c21120cec5eba780e5f7559bc6c4391c4015b6a5887bbec488ed442818fea0bd264f32ea7c1aad96ea3e343eb4102bf7e8f81624ac932ee37a1d2b240320e2813c93f388450a6c0bb7d2f45cadb002de1365c7c18f15ee1bf20c6355ae51aecc40414d4d606", + "885205a41c13ebe5e6322f2129f9a70894a108f5fa7e767ebdff052509f2d7f139510bd79c7a80b2e0ed9af4c3019700589188d2beaf3d3cba4e5d68da76", + "01106cb10aac8216690c417218d50773de8c9da1fc42a95f23e4c2a51ac882af4958c095c3852264cfb603d9f363821bf3dc2f91fd9c8481f9e063e4fb856747d0e3b0f552e308566a106569ded560bf5f647fcf1d5e348ab96c4932fae8cf8b5ad1691bd65239701f540df01a857e1f99c1d6bf1c1a2669c2b3a2d950e71a4f990792d5837c97d7912b874b61952e" + }, + { /* i=5032 cDividendBits=345 cDivisorBits=53 */ + "8bdc605279a239c78ee8c3624ceaaff9df853258fe22712f12b9f1835d8e94bf12d91362aefcb02361adaa", + "0f762af70ad6ce", + "090bb29f66d883c185b6aad93166f905cd2cf9f80068c191c588802d2a58bd394be968331d", + "04583cac4e54" + }, + { /* i=5033 cDividendBits=1777 cDivisorBits=663 */ + "018e432fde9cce190c754c4b636985dc3dc9a875800311cfb0df3e294643669f35d2e1aea0e8a729b2effb4845435a6cfb36763ee7dda5fda60b5150e5813aa522f2aff689e21d1752bb5b564fb06df0d1793e15f5445bb5da2ff2eb18d05ff7a4ada66b5df04381f296281e22cec26bf64d06a0fe0afe7d57730cf5cb81ace3083e31f3e44e6db7c6d8c0b79396d8722a474ce7b67deb335d71c057b4d177eb8044f0ae80a41acb8b3090d2e100001407bd6ca0941d67f9f018521f6ddf78285bdf50bdcc4dbe50d8927f5de999dd3c2cf344b9a08c3b238e3ca7096282e7", + "6cbf2273b25481f2f688a3a5d309af60f965240afa062b1ed92b2f43cb3f8e518343b239510a742d58d1bd48f61dd714c588c8fdaddd14f1a38a84bdff5865aaabeb44b4d6a16aaff76cb6d1fc844873061b6f", + "03a98c509cb8fb43cf54416f49384b76eb0eb0dd1aa1ac3eafa15bd38d7e0dfbc584e50b0129bfc3cc0228846e39d4ebbdce87ad5f05391aff8ef24a6656d26ef697164c0f21894af9aacc4957ddbc439721176bfb44532e6cd14d17627d3df2ce3d2612b4909b99ec8ede1af9a6d0dabb5c958701a86b67c1bcccb11473c2ac207d9718450f837750bc5870", + "0295f997fa5f1625e843ee93992a2fb0bf1f080f66ba7edb15b69b6f14c7a90b55096d86782756b76077e735662358a9cb537f262a4c15646962981e67aa821eef13d538490be9f4db0696901386c2c7c45a57" + }, + { /* i=5034 cDividendBits=3613 cDivisorBits=294 */ + "5fd717373b0b71e32be01bdf2a3e0e39dfba0c0a3bc6a338ee9f41af17e6a7e426f51bab3f01cce131874cd3ef7a36d51705136cabc77d011c93c73e519fc00cca2efd371759400d9601ee2f26d945308265d4636609e9e62c0a842ab09c7b1d071ec171d2088706c589b27be5002ca2310a89a44010ca4c13f46f9ed0aa7e3143ec537bbe2688f5d114cecb2dbe9a3bd4b97ba889b921fb80157dc52651e31778583e134f32d28882cdc402eab6f6f8ea510dced02f429daac5f7bdeebfe882041f7d4bb0cccf57e1a6e3490b2f8cb04326d0cd5110a5aaf3aeee3b00ffea3f3944f9adda8e044205c2aacc636e02bb9733a2145055469c3ba949924d196d2cb55de9b338f93fba1fdae6cf4d11f300d7889262bafd15c208178d971f298774989dd668d55b6a1ef19ff9f6aee2c45e110b826cb4d495646bb68e6d02c4cb095e36d89f8fee3415c069ebb04605a86f00ea9827430a4b1ada2b29c53acba56f5f70a69efc56e8ddc793c965d77903a613a9acfe7a8ae87eef36c8374b003056752dc91060fe68a81d6ea79e8a37261940f74cfb485b3edb5236233d6d76ff1b9c02d84b724d5ab7147efa1de0960add228b2f44911e1f7e6221c2af3ff0b80579bde1", + "2a0752117648ddf64b2e53383a518771c96358f503a69977744688741c772e5e7dd5285fed", + "0247c577e6e47462f86bee339564397fd81f6d5cab5ded1d1965a021c1a54826bd9a674f5c5b35885701c6fc09085dd36cfd4ae1c8742c610195752c1d31ece3f759b869afddab34ddffa3065736180c53cb5195862d9d41828f05c83055bcafbb3535b2a25a63219183fa5a6e10e4c46d4281e777806468ab1fb059a4c0ea55eb495719e68f343c0c001fb37eb7cabc4161d20770b01690b1ac86fd53d3059b5e357e9649f966a1067bb544bb6ee33a22622ca799593045f9dcfda39cc28d9c2b112b0d94152fd6d394ff4ced7c4fe29175419a725e4f1de4fafa04acd5a7203f6a9bb8a278a1072e013b67ba45eb58474bc8e17a30f9983fd581f77626c33d061fdd0da0a994b594205817dd75d7cb02e9b220d2d4fb1bc47fd9b82651d81bbaadb008e5ea5e7fd69f9913379edad22596ad02739f1c24c7fe1c4b5a0f34e48c82123133df1c8ec4610e295492f0e98b5fb6809418d842e05d7ea18a3c03dd695bf2e72ee697e0a16563e211a9228f815a21043f8dd184dd7a6ded91423b1a1d12a85c46a1338a53e3cbcdf7fe1e6d77e094c5ccb12b619373b4d79b24e2", + "2321be81afbde7dfab91f893af8e213d00870c4e02032befeab939e1de293ff2020ad8baa7" + }, + { /* i=5035 cDividendBits=2706 cDivisorBits=1256 */ + "015fcfceab895fe15b100c312ff86b6eb3ae62408799ae532c5200efb6508a3dce41b90c8f0b71630a386cadfa73157d8280946ba78ce7ed84b0f539007d392143a68b645e1e817eef00eb3e328df882e2c3fc8ea195dca775663a98545fdce474d9d3e05bd3a0371b796e578f1a6bbde73050d02669b67213984f2ee351bf1a548e9a263901c73d80232b8790eb58c41ed20dfbcecd5fbb64f785ffeeed9e77edf2b694d3339d0faf55ad74d59bc03de1160c71fc7e211dd41d35c82f99c595267ccf0d5222e08bcb1a9fda04fc95a9dc6a0a2f2b7e627e8f5d7ef93e8841387ba9d78df988dc2ee4410f980633412f16d4f90cce3cdef584a7baa48bcc22bcf27321c7ccaf3f35e1b08ab571e3158342ab585adb60bb8899427c442497e2f2cbbf8810803cc135dd2d032627bc080ebeae05932031a13470bdeea72e66809b03489c9b024cde1f466770402f9cd8bfe31299", + "8c0bb4c376cf585d8ef88a6130ae73da6ad846e5a88aa6869d6bb165a3dd3bfe90fe1fb829cfef4fb5803e3983d3b7b51f3bfa29306c3f45959a7e9900d943e09502ad686399614bd5ff12a44e0de8e148a3f7506ecd558e479fa4f6ecd33337a59710ac7384ebae2b90115578535d70fccca6bf8e7741214be850d1b5aa121a45097a593467e99d34a2bd4cd5df129ebdc9979c2ce6d3f0054b2c2e55", + "02831a54eaafa789ff4a936be384acbe46c5e8566b8c1530e5a69b6d9fb1fb060ed3658b4eae243d2fdc8981f7f48685b757d21ec172e5be6b418070105482a572edea118cd0380a409e9a52c6eb31077972a623139326d773b15d16597c0e3725d9488f1cb8f58c2efc0622246116a06a33744328cd79eb5820dab8c9274825f050745bc976bbe112100cadaa2a6fafe78b429f129c7d5a4d6f2dd290836385f9e3786e0fa5584293c0c330503446f9cb69f1cd09b6", + "182ef2d79c2847f8d694bfebb915dbe431a94443e6a2d72470c8f69beb0652fc5c741ab4c414e7f0944ea67d29cdaa1db9c532a7e613e75017aa6383d88c71ae3f677c14d32f6fdded13ae2eb8ffaeaba8ba7b8c9728bba1a8dff9ba46c429fdd340538d42a2d8e900785170dccbf7c0b64d059442a4e31cff2db9af0ca437bdbdbb9109884335311db4afe6716ba6c54cfd639e0a55879794a1c8252b" + }, + { /* i=5036 cDividendBits=1945 cDivisorBits=1922 */ + "01ba2376e1800e78ac86974cd16f9567672f785ac4f4844e615e8fcad9155336f09f863c32903e66a49dfc2aa888c5024ce75cd036835299a1c55b51602b906d9a70e48997ac9a69e575c3169f5ae65017b773c1bea866adb25c154c8000f8957ddf02003a13cfd12e5ed39c611fdab8e9b3e23a5f0d64534d8992412b2df86e765711b9d6182783d7925574d1829dc4e54f4868244ca19cf4f079ff3ef103c5528ef588f291a443063b4cccfb6ac605ab159197b654995f0b8dd64965e5b76cb99cfca361d4b15456f478bcd034c8bb5034d254c3896268125fe4c158f8697719301f6659ed04dbd46a0d2ebec58b35e1d23c46", + "0128fafa584abf6b75a751b8f6310eb37221c3162f219e88897cd24e5584b841ea636b5f5a5f15e7b017f49f8072b61969b8c14e5bfb7d11744a460ba05607b5963cc9b6e535b11b8202c54e5abfd8a2fc946ceba5beb827f6b36dd640222d92c0cd6705dd404c4dacac37eff9e3981c5868f858bd05cb79c46e767d4931095ecaddee82aaf5b6c13a601fa0e03d74f25bf98de1ea860f0b7cc78230b8ddce076304cd83290874e8fee00b739a7586f0be394f2a6da39e40c9bbfff6251097f148ea53add885420842a1fd92a4dc113198049cb8770aa4214e5ef0b8757b47a564cb0d270a68c85667f9252f450aee9452", + "017d20b4", + "1c55c02942664f08ae73bf4a018ec88aa0ddfe05b8369a86362508447cfdea33f5a6635f3b2d6a49da6dd7570f584fb085e7715a3194020517d74f76e5b9f7186fda71f411000bae65c4f11b8d1c61810ef1263919b81af0be8b71645a8a066f329f56a6d506516c24e4292fafa0ad557405bedd91e6fffc3a46bfe4bbfac35f819f379aa70a1d52d96e015e5de6f861b642f390b837e0902e2d8a6e9e673d73ad9ab45bb3942c8af80944e5df0139db60308d4dcbf244ffe1fe5127f719798a6e05112818533f3ff8398bb79eac159f651df71a812b6185f9cf8dd24f210892d54e52488402809790f66839a17db29e" + }, + { /* i=5037 cDividendBits=1118 cDivisorBits=542 */ + "369ac914331d9dfc3db432358b3183ffaf621edebe6b823b83017306f4601827b63942d1e60a51c422a4a8a0e6c94ed098d93bb9982ab3b88f1b89bd9de42ffe3eebf0c63c3d45f76c5976ab40930aca8e587472f89ac2b0eca78abc477e9a3cf38f4a8ebefead91985ab0ea6cf177e2405b198dc90b2b7e930414ec90f21ba6f337c96f422740868fb105b2", + "1125c41d68eaae28c6d909afbf6db0194591366a54a8e92464967e51fca8f5aec0a6ab5ea2356da69b18d24e4c30c6bf41688f8fe0019c81816818047afa554d40056958", + "032f350d960dd7aed29d93b4d6b00ad679e6b36d18b8b36ba02d0cb17abbf822df3f84f00ab1efa8505ad26aae6bebc5da420114f5eb73233a8197689c52f2ff2b7d561b83bb2dee8d", + "0b10bef4853b773558b051a3f99661ccdd21528cef735e688387cb2c831d5d006c04d0c215fe0d3f84e23f458334f0339bcaf7b10a5cf0eec8999e00ae2f0e86784e303a" + }, + { /* i=5038 cDividendBits=2586 cDivisorBits=2237 */ + "01b2a437e1d2b4801c6daca6fd7cef09709a93da374ffb92df2738ec76909899658094c81a4851030988a96c99599734328eae8c058e72323598d8d62a5d7d5886bda99adc7023c0d0174ceb09e8c0c7e6c00d220d46a46ad5bb41dc8235ca4f60db6983d04e29d40346d0ed9674da33020a6a31d2cc9f701f0ba3e3b44320a88869704bf74c87a59fad6d10feec04cb9672d748dff14d76d8680c9da00247ccddbb064df376a1a7724bdd2f4c663f199a0769f6a83f21564c20edc9e9f316a0e21f25d367a52cc9fdbf6c49ec6e87ee8fca24e7d67f2fc5fe566990ebaf4fd53c00817a66a02668a6b57af041015efa0b6b6a065340a330abdba3d0cc8eb842bbc0ed51c5656568890b76b1f6da4e34e97c6a87a3ea28f810fc1386823ad0b480e277b2257dd230c2a85974d6adacd045c2681e0134369982f6382cbebc166df98b054b", + "153e624240071eaa4fee021c71f4dc2aa0b93ac866bd066f2f3eed933f08b8e8dba6c9f0398a32f925d0d3284b32ec81d16c8d29cb32dca1c363cd36d6f65bc2e5fb624d45e1d1bc7a44a26b03681f506f1f97fcb03124c24d106b1ab6590c77f869f770ec9858a8d63cbb4dc25eb36493859542d9ac0f79ae1ccaf3e61c128b577e8964006956db4f055011434f993ab8e3e43b822090f3af933cabd8905234c44b016b538120e67ab13dc6c1b9f0dfbc124be9c99a3d4ce5f45412e195f1c0add9b2252f278b5671c57a34af22d4d1b1b9b17dabb5a45e38ee308b62d05da2f65cbdf8743d3e733212cd5d1927ad85208953bbc2679a41b31b273972d66ac30a19623bd8b2ff2f6e843a76e593c2810dbbe4ce99c3658a", + "1475b5206fbd5c0cd749f028490c1c62657526a372e7db548376a8351b69eefefa4fe096261878169e37d2fb", + "0b2c859fc9ff6ff8ae66d8ac137b648a35e0c065ac90af9ebd7f2ae66dee9b8ba18d0fcd909d93e4d52cf089a220311c5af6e58bc55a548d63fb400534916f494dfc4eee7e0bc1810c8e0f48b52009e7f5e944e66f067c38fb1fcb9ccaa2d1650ea6bd6aa57495f850a1c8a6f9c849045767c72d6a3326c488016d6c4d0dc8276a99d927948ba39b65e7d1c1c6d649d172fd6a77b78224c5f2bb503dc864622e18adc1e9c2a0c37a83378554293826ead4acbdcc33c82766af3d3041c3114056d49630c9925fdf1f4bf9d7e29fcfd527cffa8e6c76ef0fb37a393ff8c203ba11e15100e71eee33781262b6df7fbe00dce82b51679e2b0909d9d238e9addbc26968f30c60f9bac27b9c444cd33ad08fb5ab343a38f10542fd" + }, + { /* i=5039 cDividendBits=1325 cDivisorBits=888 */ + "0a5630782c516fafc0e48de1c668e469bd83a99852c207b4179c3cb34b6d1f86f5f8e5d7071523f44b1bba3a5cea0d1d11381c8ad7614b011530e73422ca76729973c89d8119a60c4e46107977ae7be439a06a5f2c5bcb2a6d84fe1e2f8d684de2060293473bf1265338f8ae22826eed97ae8639875c01c1f9d28e1c7a10ff3a5920c75fb653bb89d6cf65903c49501e79163b2d6ba6803613fa943bad9ea595ac755fc34c26", + "550396b24c88cef1395eda5e23418c0444d67e0545bcf7f197aee9709bd8f82d0f4ae8e812a4d14daeec305ceeedf1409adbda99e2da692b2e8bd040096209dbaf5aad52d0d53722d8f9d9e0b0cda580fdd6e67e4d0aa60097120d407a417ba8e8d60ac2d358cd35a4c190998bf392", + "1f2062afc59a640832f30ba45921c8eb812039f3968ebda8a05fc5ba6ae2aff1469499a3864469eb01c40745756367bc6e7224db227f3c", + "28de1264033212caddc8ba6792d29ad50cebcd2e121eb58e484f542c52de06bb22a809f2969c37d9ea05a14ff5fe674030669b0321c136b8a006834df3d55297a462a0c399016d3a93e1f53a74101e1ba5a1313a34d5f091c922fdf2ff873b5706d8eae1032afb23812fe8b5bcc7ee" + }, + { /* i=5040 cDividendBits=1868 cDivisorBits=625 */ + "03630279bb3e3c3b334533a7857621242d1976e67d689c2bf4875be5acc96dee6f83c36df529a0e23a079964b04789c0f476b1881e8b7bc2238390659f62294bd365d7164db18392c117ab318e4abbfe750e4463c97ce59a751056ee188c2d4968e1e2d572629defbec335b679c02541b174f460a57458cec509a175dc43269837cc9ba601529c13f4f540e582042d789d7633380529d0cf06796d136ca4b68200ba27c3d72e93fc0c7caa7ea8901dc36c6302ce6d829e6e2b4099d63d153240f823aeb0c1e13a4d4de82cf45b1f2ab8f19f58d186b5e3aea043ec105ac317a85902e181c73508265ce1", + "01f8196d0e7240ad0913a1c24f05c412c465f2d2034adf5eb58a033f33017e9df59cef52298d407d8c36f4677bd131b969550acc15efba66beaeb0babe9738e0a648890c4e719cb37701f79bc49e9f", + "01b84c919e42955b6fae481ba0b63db4d00c33893b29cdfb1f31feed47997e750dd36483e385135f5bf57db8858d46cae311ea7b7a239495bf4694fe156b87dffa7d584263304602545eeccc2451c61bba21ea98f2ba3fe34a80736079fad99e7558e95268787d68131a55d9bf4a7f56854defd1fd2fefdc91c299a53f06bd6aeb323b90be3e2c7e64104d361ea2a3ec346d383987f4d453aae39f04", + "0175b9a903342e0c1d81aebfe26c39c1ca1ab52bf815d03d5e1a19fbb0c1749579c8cd450844aeebd68e2f5c42ca1108356fb9863bb4527ec3c7c82f8cadb702565a5ca9352489a0c62b5c3d922165" + }, + { /* i=5041 cDividendBits=760 cDivisorBits=498 */ + "df0b38f01066b3744eda82bebc438ce6464b4a1a7ac26b56ed3c9be28edd6ed4b6e0fd7dcf06868f3cdd045e15e9cbb6f9c465d2d68dea8553ed206b35c46ec123551277b81781cb23a4d48eced57004686ddd89602deec79400162a7fd6e7", + "6e73ba063f95b7368e8a5e73e4d5f42ceec5f3951c65f0ded87bb86e43822beb99dad1be18d3c16810fe9b5a62c9ae28a756ff0b4a490289e6864713a03d", + "0204f5972ec466d24437498be065b8b6607f9355cd734900e113509e401219fc7f28", + "4716c611228046fa1782d86617d1f3bf04c4452347e56ce8edb9ed8a2e42cfbd580269040afa302375015c1028b170c745ee04f01a151275f796a1e48a5f" + }, + { /* i=5042 cDividendBits=2912 cDivisorBits=2079 */ + "1e98c62f63b6101fd9cbedebae52daf3109524e9e9a8e220afccd31397b28d92568e4e904af401a397ed229404a3750eca11c0f989343cc04ec7f2eb98a71918ccf28337b7765210d50c5cbc44a266ee5a0923d51e7b3a01674225ce8b60c897f9f11fca2ed9e2fc3c9228959737c898f1b43233b64e568fcc47e637ea68bd201bcf23688441059df26e28cff5a4e74a74dd22ff58d1c5e6d2093f8bf817fca51db22f4337d6ef79dd0055c94ef0c331eaef450f571de67bae8cb381277719408d59dbfc22960208b7188bd72d83a588924f77196c281b17e43d37fc66916010d61884f214f032310eae048813c1979b8f520f147f33ad9a4ffe27b89306fc4e9e673b17f7060823e08b05383a16f5c176f71ec4a062965e95034a8ee726151c7aca1bd072f2b25f22ce4603821df3bc3f49cf99ee51fb24700e6de1ad1c54a32313ca67d60adf11f31427a71f81586154a921de1f7112a0860b86c3d8a090bbd9836fe2c3129f88e73adeac", + "52c7efec14fcdc41770452447daf425755210e92820dc1bc8b800dbfa53dbeb4c8a0de80b8d7cd97a472c2fdd095a938d8ed1bb31827169c485f19c183db50d180d258406877e94c1d91b817e13ee236aeb61cec970624734323450867ceaa4e630af895ac2a0e4c2b3b9941f381ae1c61a8a4a9ea80f2c449f3774274cb89c2d5282b697a72b50a8e2bd49753c437fd391d300fcdb9203a2a4a676927bcd057e07efaa6a68ecc917e7062e1e807f70017201255a8bca1f70276d6e1a6268fe94e51e532f61ce8b09bdb4476c9286871f564e8d701444e55d4ec7d79d2653292e4f1961076dbd671b501d7fb5e5da65ef94b111713e179ba4cbbb9779ee0907a36a2fec6", + "5e9ed46c66de47d89e9c27e6ef209bc0542429eb7d299e60a44be3dc0f1f56bc899cbc1e5bff19a5178d25e21ab8bb9da53d353854da3d4d65b215934acf3542108fbaa37aed6c323a1f44b3568a15749379d80f097c276e303aa89e223ce398c049568738aec130", + "27a0d6bbe1aa08476af3785f78d7763840db713f784c96d903157a07975b3f5b077254664889b3287c6b65f110eac24b942a35f8f003273c68fdc3113017924e577e3eb2965a786156b570875398d2dae758270e753dcb4d074b3252ed14a1350a6638439bc36495be683dc1273931d2e9a5f72182cfef47516318e2b535b447572b6c1078748187e99ced3da9583e1e6a4082beb6fe452abb1729428e2ea6fd96835d0f17d89c56e635ce4ea6f76b7c07a855a051b750f6d7f8b73d22a04151932f42736af159104f11828f514d6795a1372ae914402c24b9154dd73a217b8488e822b214aae4bd131cd4bb7eb187fbbb6c6f216c9990afa58c74840505bc7f4c03d38c" + }, + { /* i=5043 cDividendBits=3330 cDivisorBits=1493 */ + "03c6f38a189ad103414fbd0e054551490dbf66d2e5d8d1d6a259803a6b1c8504a0bb054959dfb4e7aaf12ee396897c93a33a53a05b4be29c50029a101a34c0af27737d4375d6886a39ca81e603a9fce9dd460d23c041806ad9c4ba61364d626d5bf03cd55db7a4f11701d21b0c81fcd148412f40dcd14548ea973bd52ad23628f39a7a22e02a39366bd98807b010ff015583a49fa8858f94f4879b348a086e0d12aa1114125ad2333917a160f89e42a77d78dcd357d0a11d19d9dfc6f312121271c53cdc8343210c22491e7587266ca02f5495edf5752232486e32fb08d75893e996b4a4410ad0c2884cfc9fd128f8e671cc71826397ed9f29f6451695d27037b80daadf99025f6330ad0f6c9f043a8dd1d05bcc0e4e3d72e48c84848af8ba1dbeb24d102b80ff5d83a3ccaf99edbb9c9ac3113307ee856ca75e9f95b027e9e18a8ff24571e5fe9008d739e9f5d5aa9530d6d9b0111022e496b863aa8171bdf4f7e17480c2910b3f69924c682e81445de49c6147d9d29bad086d10bbb9ef7d73815cc7314c441b85a54876bf2402769e35b1249b20b8fe23535aec6728a5e73a27", + "1cf9707f1c791c5ac9a6fac5e09203fc9774233d482161af5c039ca14044421b789f853441497bd9cf69aaf389cb57e0ca48d232a79f22dc01fec89321544479beaf3cec4ceadfa7e0fe426719390aa2eb995fb2eedb09bb79ce1b2f8026b72893513c526b516572cd0702c98cbe8544038e4b7638f01411d796f769f9b877a0b1467d97a96e47c7d2b632777ecb11c59535bb4c197ca1e5dcc936c10955971806758944ef828e8bed2ee6fd10f2066c3ae7a82c8c91b81c48e4ab", + "215f655d3bc38e04ec6df51dc90999a527376b20879a00eff934c24e4a82bec40af559d7845a049c3ab95cef6e6b49bc369fccc04d57311bbd9e14fc4044d66b6e538f825d6d597b9024284b44fa53a34544fe0ad1e8a734bb53f147b07e8fa95a0e7846c6b568962105d06d459b1204b9e64c031d41d648e1ea10225644de37616fcbbd29112320c4fde32fd99de62359b6c72c3f79a99104e398791d566ec88707be422c39cdda9909be1ec26f2424e8b53edd5e96f74b4ef1493a3e0e0a24aafc978e18ce5e3f8aaa9a34ce7b1ec15c179d96d4b0e4acbf478db54666877cfd3ccd631851", + "0437f38cbbc529759b781ce4fad9a007a956c3279baf8122565e16021ddaab7ad8afe23f3519e90c61d3364de2916d0df8d620b77d01c807c8e3453e669b09b82392392d79675a8de8852cd173b8a4db9ba4f5aa72f6d4fc139ad8d3a6fdfb07d35ca6eefc800564ec627fbd5f8930ceee5d7c07f00e1cdf2108983c00acba84dc566092191d846d5c4f9700fa6305e038758cbb10143729bb7c2d2c8b321eaead0a75a3e050c04a2b66ae08eba5499a672ac1b10922df8045d80c" + }, + { /* i=5044 cDividendBits=2652 cDivisorBits=1718 */ + "08dec614f81aac68539915e0e958319d012c97f7334f194bb50aaa4d33f0e0e41db2d9ccd4ea2cac99635c11603d751ddca2b9ad3e6bef66323d7f28ebf8f499f4212c9c9b92f5eaaad1690e2c7db61cedb78980102b62129f6a5acf4f686d263ec54db174eb5d7d9711bd02bbf1ccee80c8068a3b8e954ca234e3118087b04740a2966217292966797a2fc5a5b38a0f338ecd2a5e2a3196cdbb8bda7b298b7390227ffe1573bef03b949f2ff279646453c15dc960c080d72aeddaf457ff592829079b0ef90bf9aeb6b16ad1db01bd0a276e3059a3ae746f6875d557d9fe943e10c2689b566336de291ae1284f9c22f96c258401a7b9a3d25ff4d222a5d8d8a06fc04feb389c8c138640183eeb89f7227f8bcaa5ba19f0ac47dd3054a718d5c93669b824ce130139957b15001bf33c9f2c0e6a86fc28105a6dff41d0c54ebe2105b998a68700377083880120", + "1d0dcaf0b6a94066ec8231594cb6d7522ae937a6860ebd0dce212470418af8712e0a7d8b7e3e793ccc3d18e91f578b4ce19356c0128eb03a98822fd75b78ba80091ea234fa1486221cfb1aee7646676559c11b5c1f960653d135427073fcdc96270c33ca1870641db2392fc93b4126ac481b6fab7a3e23a2e6450d7d23a2843aa731694ed0f5198d43d4aa929f1bbb8c189c0bc9f18b4939ff154dc6fd313113a7e020d8f3f06a5ba7e0d49f0c6e86a9cb19f5b00148ea0080ddd5c85c5a631cf6558f8a762cdddd2019b3e2e4f68945c1a88fe27c305e", + "4e2847501c94b2bea9546fd14fcaa2c6b96c8072d23bda538b7218d144631662dfa85a9b8498d51fc0ebad86067962315105617fa9a0ab41e31ff3d6497b799fd57aa641751c744f2b8a0b1cedb09a4bfe3a5c9da11c4e37d1304aed9d51836f20800a2d24db9b4e5ac7aa5e54103651a841513ae0", + "11b8e88b2f5ca08a26c8334b0f31546f59ffc12df5a6b65be82d6e3cdebdc37b3a684525bcf519cef93a98429053e371405882d3a5d8f8093f5ee14e779e8bf37526dd6c667c78fb98209c8b9ccab5706f4a4386aa0d06ba74e50932ef31ef82e09999401170dba487986d80005717ac6320dcde5c6010f37f430cd658858d9e5d12933e1304fec5152629509773dfb1a9e2edbce31cfb00c2d91ded4a5e66d6778bab1bc6b9e79451c15d52f8e686c3c2fc175fcfea72bef27488c7513d8938c348d5d8c6b4b055efce400c857782beb272f7082a62e0" + }, + { /* i=5045 cDividendBits=2594 cDivisorBits=416 */ + "0e93e090d3c6e53ee2b5ff0aee84d0ecb5137e6ce8554ff834d6b6c3640aa8810432fe677cdc28e669733d78cbcd9662cf7b4bf9ff5af69699f53afc16504c801a85e9fd7007177ac9ee60857f57f0ff362e076478401a4568915c2d68c9f2d33f0047aebffdfedd47ca0244270c52f34158e377555775018ae0dac20abaa173482fe7034af49401f2671c84516c7ebafee1bbea194e4d12190ddae3cb7d12016524d1a631a8d3a979309e723664befe2d3d746602d7715ae2315f641e676688fa31f8f2b5acd1038282ffdcb5f1462fc203ec261df88985776288807e0f41ce69d9ecd654506752afec0414c7e80d0cd7f2fb0cde7b1791c39e51feb47450138a7a9871772823210d68b681a02723c7578293dc9015399b95922aab67b389615e8ca7a9fe3e2b8691b96b80ac0085fd206f494375a211dbf71c792d0b9b87aee1390726", + "04097480b14513c167dd662c565e78bfc97f28c699b9aacf24943ae50a9de4854f95d2a97397505343957eed83a0b7eb771bb55f", + "039c6efdb96a464eb99575de490d501eb7dbff96c14678f779e80cefb4e266b2e99b8a7aabc80413a422e237c422f93b644d7a858d267ee3e36502aebd0e28a29da4281a0314aabcfa42f5e84125fabaca4df34c0a8515e58eb3a8817a53b90f5d84a5f73706f6d0c4c4ee14f9a3f54ca150df19bb10f2bb4ae7952007d7e595286e1d8070f94db2cfc3cbfc34bee7575ec6c673db428a1690878a004294b9fdf2e85f4d123880424c35015d544a4de635ec1ebf0d731d60213f18f52cb2c7543fa70b1c816ad07706fa7049f3d80262c42dfa2a2d5cba379abee4b1001fdfcbca5fab9c40f33d072544065ac3cfc6fb4a4fcdb1c4fb98d115d79c5c2fc54c730507dd0fd1848a2ff5334ef3f4bbc299a7", + "023b112a22242d9d27c0671a3123946655fdd6d37176dbb9a007bd0c77f24ad68ca0d60d8bb48dfb0d52ef71bbe246dcc7c1ef2d" + }, + { /* i=5046 cDividendBits=620 cDivisorBits=600 */ + "9534619170caa6e32ec20973e694bf29b7e4ca78c679a298ee547a28b0a9489dc76057e56398d61bca11357747f97fdadc3af144a14e2781e016f3efb97b5592943a9fe7361b20a6f8658e00dc", + "06d87f42447e78574961c8ae7351dded5cb4659be45e9345258edef7aa17f0355900e7633883d16ecd0e9307b243fab2d577f23e46f99936f9289c19faf89d716f100d908f9d5d33783347", + "15cb9f", + "03c13bf1f3c0345575467711ffdd0e28d41150cdb8678ce1914cdcfef3e4fb975db65c58071307733b313c424f2ad50b5f91f7de947aaf0a31cc94f06601bb63cd515f877fc968e869dac3" + }, + { /* i=5047 cDividendBits=1444 cDivisorBits=588 */ + "06ab49b47a494f885128dfd39498d815041ecd024c1cdecfff4d25faf751ba9ce62ebf99c791fc09ede961cee78fef6d3e0386871e8ce15b6416f6d825acb033bbff89f0c2c67dbe5970da8a1137586ae2d5f2c57574dbae78ccc322f8c94691b8f89b7c09e7f30a84c470cce1aa08cffc2ac4c50eafabe706906e6cf4ab726d4bee072dc2ce804284fdfdd2a5bb22a1a5dde716fc1f8f5330c68c227cad4e5ab7480aa720cf71ee8a4d48d0efb57dc48dfe5ca216", + "07065cb2dba2ae2d7f237833fa8a381413af310a3fbd1bd1deff81e23f7a9a10f9835c92f76d1123a27c69787a95ea891ea5bd66316a8f43647ac00c3ee85b21f42d316f4559c75db445", + "f30911db6a55e8f4885ed64be448dfc3001b7fc07ba5d1fd1ab6a9e1427afddf4ba50727c87cbc65776711a399f798f9c1803ab151a031b0a6d696b1e1e672cab06ec3effb283b64544e32f83ec3a514b048d3a93d774f66ce6f593ee552727d23ec35dce59c0160be1902", + "0296116e40cb8d0135710a627ad3d1996519854f6453d2ea95b17abceadae63aaffd9b185e32572e0d07804f79f5bd25270c0e6b4d3742f6a5c516f587afeabd4d4ce28399f79dd07c8c" + }, + { /* i=5048 cDividendBits=1915 cDivisorBits=1604 */ + "02869f9d4b26abfc81c171afebeb074fb064546501538b5a026c0cb228d4cff68ba504906fc7827ddc786352e85de9663341864ce24a9c298ac83f4f6e8632b8cf7bed83c1fa8fe8569aca3677c364b15a0645ba7436f568e12d82f1055cb44bde3f119559e85518ba1b6886617b65f58586ebd51ee043958953b8cdf50cf568197a4d4fcc07314d932c23fd16948e9a01b4e2fbb530cff0f62d953f98cf47087e28d1a492660e55d285498235a2973e7367c559ba0017bcb9707219047e022ffe7d0a138c72372adffae4ef2254d8887780aceca5e9e6b191bf71fb7909c6a4c5a71640e93ea4cb979a10d51611e6b2", + "0e6864598dbe016432b8260fe5c9edd49eedd16d0b5e4e5963058a1e282f1b42f5ba9e8c8fb86088db81b4cd98385bb3f40dd485c089f8ad2ba72323106ec92d950d21cded5c9f3a7841a56df180261c7ee3a8549a890d9548466ddbf823d79981a06f4e6f87d5550b677084a8d2977bb35e81ebd83c2c9e88dcf6215d91b53a1ae48a74dcc8f2a0baadb2241f49dec29fd73915ac950c3251e5c46b792261509877ae36cfc0e088c1d8419338e108e5ed1c52d68cdf7c80261b3c9f6efb30c84b9057e414d50cf144", + "2ce15204b71bb551557532f8f405dddd4a4490595d0df95ddd894a520dbccd7878b4888aa27a22", + "025d40fd43d25c117f94a61fd68b0bc0cacf5cba9b0ea69148c9deba9d88c95287af2a99f1989a631c15c667d2aef19b4df0618830bcc1a93ec98ba940ad6c9837bb606fc3cf3d011d1d81f08354c0db9791db9eecbb920c76bc69700f1b3b752f5e456f831f137a673ba697331c7e6f8dc2cb5994270171c476b4167c2f70d4da3f598af3f21cc6a7efebba7f0bbc16a66c80b1bd7f4a932ec986bea15eed284563c4057798d3418733c5036da2e55716af9737a639f124ee9c6a557b83fe6bebb8d010294a5773aa" + }, + { /* i=5049 cDividendBits=2001 cDivisorBits=1503 */ + "b0c1538709e7d931a46bf93e088995e0403863e85ca98acd24e788ad83c062a78d797abfbc13424b838aceefceea01da4359a17211c547e04025e32f2ae778def5830919f0355028800d66cbf7d801aa364946fc19412c80a323ef9218937a6cc7fe1d68664a826d3f8afe37c1c4e9b9b8e85c60c01b1af13c20c80175a9d21563d08dd6ad344de6de4ce876a7dbae7cf86bd469a687525742ea624558db6ceb86dff0373405d63ca0354380c714327d9bf6f1b0edfec34771e3e3b1e02a7222fdfee3431f1588a73745ff35bba07d4e2e18c88005b0f04b7517584c3f0bae7c7614bbbfb750bac0d0a41feca7f70773b43cbb9bff84dbacc7e3", + "774206280a20eb4554e93944fa59bc9e817bce092ec04a9d367478301d3df96979b43bc63f532ab634115106fe706239c3f9cc2089ae583677b5cd2954d63148de4400d17fb4db18faa6b47b5df271cd48576a56a0699f00c20c80a7f49a4bb8d1089a49c0b0252ca9cfe38286c558dd4b249823c102f3b273bee914c531b26539082c824f497f24752af27f66f96bfb85478a40cd06de933c3d27ce3031f3c5bf9b2792bbb37e4c095cff1a93a2fa48e230dbf4851b98d6b3507f92", + "017b6c932b790e2f14f1a63c3e1e4ed882e43a055f3d74bd965a498523e5b0dd2af2e35d6951dd38dc8241b8d96199a4e6e4cfb123456990a0ae21cab0f7c3", + "0310fab44eb987a0f4e3bc8360576e3cc8e2a4ee733c4e8dc7beb85c20a7b214781271310355dfac18091b2d38c8abc8198282f97b2be309f064ff79684892b7caa04480d1e26f0ff1658a3f603c8a61fe954ecb4753254cb54671c761c83d4968f9a025e315727996ef1685ccac440d7d15818f97def0f9c5dde453450660519da0803fafc010fc9d26dcf57bdd7fd5ad05c36166f8a7c9cca86376e21254e14018d4a3527a72de65e8a9ca407c733198054a798ab0f324b1e5bdad" + }, + { /* i=5050 cDividendBits=3099 cDivisorBits=2497 */ + "01bab559d03388ea8afa3fae4fbfd0bfac6d87962833260f12da7cd608975cd4398adbaf30f2c630b714ff07ed11997568c33863c42a0bc3b9337d44cf0c21d93ab48486653bbf90f6e4f8368ca738f0c3e1f004e2f984580f899980909e79e5c5c7038cbdec83ece40bc0597640d70ceb6f01d4adba5356a3230c8dabad431f4dc9dedc2e6db33c823ec0dd24f2d2f8e1e26ac3d0a959789cf2e1862ed32e8eff9664daa52ba0935424b3f2815fb721a80adc426bba68117eb75c114fba71e4346c189841ed9531a89810fc980d3d8d0ea0bf07620a1f35054db9db1a9358e4d2d7870cbb64fcf102e80774352618d998b96e22a8edad223b5e447db62cebb9240a444b98db9edf8e0b22fca9426b8273bf07829729599d29981f88a7c14760c161b96f270120bdb2462fa0bdaea1c450b00d4171ed39a42802876ef4f337d2bb60b38b37a0d504f3a2d08e96e5c6867f6948d6d4bac42c705c4fbe6edf0bfb83ba2b36c620e12bf771f2da2c41546d79716bf3442e39a4f1df6ff5e79dd146d996813a", + "019e05dca80f38f680bb770418aa81882ed6acf37c0b32780fe35d3cc3829139f2d86420e4b44d9d0566b2fdf581dc03397bdfdbca894d0e3694cc6a8338a980c1daaf9dfb9b1f6099ed50de54e6348c362b805a780aa5a55eb61173dbf22a52e38b8dd4759ea614c789fe6fb2df63247aea9a624a34b3edb0684f6796c8aadafdcca259eaae2e512dd6f72df801460c1cb63726b0e71d6412e5f12c7379e105396c29fd8ffa0bf44c04117870a180284539ba7e754207ce8e149d52d8f7f1de25da1f56810251665c2a8010dcf2324c975ed40adc85d3795239cfc2137260fc2da115713abf2a66f53118a09b5fe42bf53f17474c4db5b203bf56914ce6863bbe28e7341fd2acbd8c8c92f598a5c1127c21ff78377c7fbe9174bfdba3c149bb61429813640cda357cf15ef39d671f0ae1bf5edf3a5233a07d", + "0111bca673b5e40162a3be9000d8906792207d55bc04ec0f8271b8e0d6b9ec5e72338eadada5e77c45e4cb0e84933988067d4989b164cb1c245442681229f3378783e606c74d29ec228e584a", + "01780f02ab693624892fcbdc5d7d3ca1ba05b56cbbc29d228852059e518379ed1790234d7ca3511e4f552bc3bbdad20e42d30c7c7b2a072ef4b29fc90d1595550a81f22e1fa8ed6643f1ec32134ef2497d880dfb47ce29e74ffe77dd6520014885d8b4337bdd97f3582bdc7464967e2ac1037ccda0af40bfe4f04fd1de384b4d0cb8538452165d9e264887030eef77ee7a88ee511b59861e7c998e0f768cbbe51ce1cf1df31b1090b509ec28b1d4fd590a664bf51a979e4fc563ce5bf7f8230d6606bbf0d65ecacf07d21152b93aa5885c9599fd652355aaaf26556b2aeb32be0c40800842f828cce8aa3c20a3751d311be396a63cfb6bac97caeaa23c2ea4838f7d99696220ceb82214d76c04fa1d6114b53a3be119093da2fa3f484bf63687fa0754a81b3fdd010a298ad4160081e381eb4bd1f9b8292518" + }, + { /* i=5051 cDividendBits=3318 cDivisorBits=1847 */ + "3ad54e93598fa853c405f93e6ec180f5701dea1d16f5c2ff8864b04ba3cac861dd7daab8e9dbfa08f57cb74fcc8f29fb40ee1f41028a46d800855c2b95f34f4f1785599ee56968de9284aa568a09b064863b728077124cb1b342ea005c03dbf87095a026604229f308d1180f9b5830c50e184af5918bc1a36a045d0b78c33e82e41b3f667eb600b9b1474e0e37c004740c9ce990e73572af050f8a39c3761a107c1c5dc530d158cca36f004cca3c0e2cd2b95ad3561527b76de65d49fdc0f4490af16f092325579a3ed2b85af059d4241a9ecc7c7273ac89266d1f98360254925e36e3e537057572450c9927354df8b5e768cd436f3de8bf4f2517e3582f6f23096cbdcd7e054c83c8703028ac7d652702ed919a4385fc4d6545bea8cf2f35499036cbeb42e0828155891bbc6757bcfd710bd970567541e4de5383b323f1078bd86685009562f47007d564cc679007bf438edfdb3655f02dd1526ae406e5279603eecec613ce5b6b870f84a76d04a68387c2c5ed16ed1459540811819c8ef51144e91b43455aa6b75a4d38ec9da8d2c774f45fa1ef3e7f064c1362f636b011", + "7ae5609ff32d151fd7949cc2cad5f615a7ddb4d4b9d7c2d35443d773b8e77c514bf4b99f19285990b93b0fdbd58022c8e2310a2e5efa09d29463cd40c1bee6b69b918409dc2dda9d69b51963621dc7c2141f0ca2553d7c0d5c341da716811cec113d8f39ae5c129c7e55fda7e1eeb3f7e0188adb3903ae4f45bf74346b6c446092dc660f1d0b649fe4b5e74fd0809cb546951a3f7f3280369c302b9f4ff07a55d006456a7d8a980162efa757626f3c8e62f5d23aa0dcda500bf4ad0a081161c9754086a91b3822966ac3de712be03dfb598fa35aa4ff8022cb23ad16b904fbf87496bdabd7511d", + "7a8da2e07413dc59516dbac3977bc80ecfbacff28b2ff8b8db6406b206764be09809293cf2a3374f8694dfce2ed2d6f4881442eecabacdada508a5e23ece1ff11d1a996ae25c6fd12c45e838319812403abe7f161d6d93c55c94c7237a702b7887e33464e0339cf3345823b00b121b1f5d6b4162f58d9c605c94093776c2e773c26b2f02457984367db4bc8debe2e88d7ce7c70648fe2478c1de73e27cf4a380b7d3de1f9f1e6e94bf14b528d1b996e0b267ccb48dd65615", + "2c4fda4d49d599c38d53a106fad7fd2c598eb18850d15be33f20ca6f12e3443423c925118fae3e90b5e74fdb1149b95ba20947c0c53fa304f8362b059b583df3317ba12a5617e0e69cbc3158625eb29461729244d7cca19264f985a6ce469706c29f66a00ed5ad619ee0cc5ca9b1ad9446306c9d539e4eefae674189c07da14cfab21d71e28d55886147c3a54d7cafaa6c9080db623650320da972d124a2abac0d22fa0a2fe4ad72d6f21cbae2ac44c90edfbf5205e1e0d55506cbd3c68ed48694551bec7bff87a510d017d479f1a639b0119753f910d55a727a40b7d3542bcb319c0ac10f4ab0" + }, + { /* i=5052 cDividendBits=3536 cDivisorBits=37 */ + "518abaf3af74ce8e415447a8675befdc026ce9f1b3f47a6c92c0c658b43b54ec57ff91d07e2540fd4ebf70c92dfada1f0e976eb7a20115146722ec3ff459ba00d23d97d841fc01e25b38e59ca731c4ce5a1ad99f08abef640b9ce6d972c3074952b7d8d527345070ceef2f73036e13269bcf728d01441a17f1014fadf486730424599ca0c9d01ea16b650c2216a0635c6caeb9317f1a3f339762816fbbc6d483dd24cfe49feb96ce122649571df81b8434cdb16c7bf9c59deea747bb15fcb155b764b7b8cd9c6c9001e17be5c34aa2c9fde9e1ad294db8fd2ff2ced83031b7dbb2a2cc71e478e5074d3a46feb9bb135f94fc4a5497c6a0374f0da84196dbcf5d1e8b0fabcea1af8e1f01be8309bec6e3fdba6b7e91b8ae266803edd1c396021a80c2c0e11cab471356fa474d8b3b737efdd2f6afbb7f965f409b49f613363654e964daa6ddc3f7facbb7e3c76283e3902b607e7d4c52c1a7b8e0c669d28fef3caf7a47b578a5a78aa767dd4c52eebbf9eb1b3b37369012aa6d7650f75a59aed78d3c05c39ca365feba6695511e5eba078285b01d634e5aafa807db78c972234626695840e8a5c9a9b8173017f927453cc2cefe7421998644b750", + "0b97d1fcea", + "07089ff6de65fc9c497fea846e0ce343a96ea2ba4a402be38050d7b6a2e4402207cde06a83accddd3574d0c4ccec53d46620d141962c256207d8fcb38b0f3a07f7c6d4b6f3ca32c9203387347834aaa0152a8a1d6d4d9c21965a329af4b24cb91e8d1e7ca0dea559f551ba48edf3617607f121fe6a2fcaad5f89a7748455a5f2eb27282220abcd86a8004cbdf51ad8b38ea52ea93c5022d56373bda603583588f417f7ca8edc1cc298871c79864664540ff7e82402326b1bf145f73f7d01e905a30b7b195d4a9d58db17ab546987f6508d9fdd956486dd2c9b18999c2758910c598b99d84fe1fbf5be571dee03bce77cf4d1feefc6a1e69377d200f4668a73ca61a7272e138e7ff1a2b048f552456893087b66128d4544207ba7312c59a90b8047e3cf272cbda28142894a6cb345a2a061f18ba55a9e4229d06e4f98a1e6e4fd0a200702888b3983d68422301654fe8db2fc91012e662c4e0c43f11e7284b564f98b4a350924f126a8bdf60ec5acd09d1a72b214f1e0b284384a76e392b851456d699d9586adb47f34358f7b2bcc5dbe93f621290d4d603232dfe6b1c9dca9e1c7113208a4ae367b24e6cf25023f8f99a91af4be1944", + "04f31eaf28" + }, + { /* i=5053 cDividendBits=636 cDivisorBits=355 */ + "0e62b19795cceeae38542b97a024d10527486b62c6220447c6230164def3eb712758ab2a9bc5baa4f117e8f91df281d6d906d5f7ac1bcbab3c918b1a3fae14077d956d7fe634a3419ed3a782a6abd90e", + "050809eff5d4dc20b25e80e68b9157582cefb0976ff94d9c1197d8aff4f2a06ccb633d0766c48869e9b80e37c8", + "02dbf120ffbb94ceec9716727c8fc980b81cda1b812f2472ee0a45db77a8ab07a3b20a4a", + "033cf3a3f0d5865c779e602debe41afc0c5ba246df74306cea629ac322888ff7d13442f0e5eba8c2e3c351e93e" + }, + { /* i=5054 cDividendBits=3840 cDivisorBits=552 */ + "185340274dec15fb2499db3c79623a93ca88017501cd49a92ea122781cc2a3edb696d70e6e71703a1fe19b537f75203a80ba4c874d5a8d9b5fa1d2681f38ac5f69b59b024b99fc9a70f8b632d3f3ef9ee81cc54e367f7ac566209ed7057ec285c72d1cbeb3a39ff5276f09dcf45ab4e1e542c577e74c3f1247a088a94993135d9c267d00074f43b2f53964719c3346bf55e673cb3be13ab392ae6912654f88736664aa1bd76ef51266d5ddf194c06a88defe9982fcf9530e960a1e774a9c2b7a4c029f4cabe020c3098a6c2fa4f6269260dc931b1acc0ba7cb7843765719a1ae727323903ee0b7c28dfc5cf226495a00748115eaeae19efe6a0e7dd422980a659bc5b89b7ee5f6afbd6896b179ee4bfd1edbbf7ca49b0258b63f2355ae424b4b21ea48ed33631a814b0e57febf43fede55fed73b584b610cf8114c9da4f65150cbb12c093109096d6d18eb59f88c227922b33933ae38b08b24edee77ddd4f4280ebd99c85e7a68bf5545f9c287d3145150314dcdc64db525860d48f3765e76ddb3c759efbe26826346e18973e1cea9f1467c6b11ff48e5304f4d3738d8049199873d373ab27182a33e0dd325e923cbfab6417b29d8bba86be8c99a249bc08d5b10d219003b3e472abe319bb7f15f4de4b7d630145d1435b909d715be98727a2a", + "de5401ccff7246b9e04741b725c37fcd34e69e235effdefb3a6c19ed212b0a4e0e476ce78b033f512203e643fbec583e0ca1377358a30a9bc58e43ea205ad18bfdaabc7ffe", + "1c025fea8b3d531d3b08e9564e8da3b24f608ac37f2102d12aa5da84bab11bbb1b3999c79244ec4b0be7735a80a0aaee8c5122712cd0e7d5619218f8b8c7a95048a20795e5884be58f98db950924e8ede8a84db205c23628b8db74653a7cd4fedbdcd4381a96bda1b726891a2af6d34375074985490c3435853aad9151ad5f5d80039251c6462dccde07a831cac08533234e532f0f1ae1e3249afd92b50b8b0b67526782f007093f41e586824e4333f1007c956378ab35e02fe55da6c2bab3ca88d3c6f82ddf0b1489d2a1fa097588774ba46783460d56ed8809eb5ffac8893b1bd8d426e3a5f8a351132e85fefff2559e99c7218bc3faece57799fa26ae6fb6cbb2e14771196228c70dc8dccc96ada55fdd1495be7fd096ee055bb02b2e4e5007d846ff9dd14ad441a33938eaf9cfd4f97c9eec989a89f5992a714f7f8d7544c95fcf6a6d13a76b6392ab4668889b3b68ee8b8816128e500ca72be11e99d71c254196009778c8efaf08658b393ce5696d6682a2d002f777929eefc7ecf73383b8ccf0a63c3e06700a97fa73f2cb9beada985046ed834dae9c96c3", + "836c21ec1a29445e45b9ee8b4e938c969b6443814deb4e826f9384dc7c836e43576f844679874dc79c272edbc14f0288923458ab3e25f79b4b9754d078993b2e38751627b0" + }, + { /* i=5055 cDividendBits=692 cDivisorBits=456 */ + "011b88f0a2064da41b33a0e41d100db45eaf5c15f1db824b03ef346705a19255b280a900c36e79a7c2ad9efb2e9ca7af522dcc56f139c9c7d0b2a2f47f807ddc9fefed95b8758f2f710673301fcb481c32d71a0cbf4ea5", + "7603ed0ef2c17a08f84f48c09118c2fe1a7a5a24a4a0ea29ed92fced2a369c1da6e94290389847f06c6c2f26b36cc933515993c90b7a1ee726", + "02670bf2e2112cfef20663ad3b9788c610e3210b37288315be0dcacf0af7", + "19878b1d01124e1d78198ceb436d7408a967c85456a97f6533ffaeaa374e5dd20aae8a5c702e55344c59f08c6f8842382ebedf57f3202cccfb" + }, + { /* i=5056 cDividendBits=998 cDivisorBits=718 */ + "26c5e4285264127e6b2a3ed4df257df02611d787fadd8b731b876c8e18063a04e35691417226a46aa2241e49dd46910577735bb1dc533f2e5a8fad16342782b95bed1aa1fb8abf8034cb927231783c55f4de799ac0c8e9f97cad16620bd6f5fb98c937230d5011c51e3a54aca759684b63c7cfd05c3145b75e222c5813", + "271ad566ed7be563f753f5e3b603a6cd17452d9f632a0345dec02e3e06699d5d4e1e8c00524898f6cefe5d36aa88aed4124bf6400f9e3a1535608047238cb793f5d5ed5aad1296f2e6f67a2243083d30fd56985c8db147e3d338", + "fdd3ec9664d4a2b293c382f8e4451758df852917854037a2b7666f5a59b8f8d515a42c", + "1880d427f6d9405cfdf02fb29235a7030946e4fe56ee54859ad4ee0b3dc95a4015fdb82b11493a294b30610b8a39e897e9d3d02c2599f6df837dc12e134a40b8c54b61fbc77507a9dcf5771e8883f7d79f3b133f7829e81c2a73" + }, + { /* i=5057 cDividendBits=1045 cDivisorBits=172 */ + "0a9a83d75e73a2d93e5197072f6dd649430834e4e72a0981ef9b81bbcd69714a7217610bb2337884fd44c3f3cdef1ea011eecf5077a92baf92960bcbc0f766d8fcc62abe6e38091ca4151e7e6ba9dbe27979fefe151bc330056cfeaf871ced857c3ccf1efc3299c58fbf98faca7a96b6485bf0dfa8fa93a05b6febb44368da155c66a4", + "0d308e43b5d24ebc701895bef944d3cee00536794d26", + "cdce5e104f77ead55e018f2539b03646cb476c9a9b2e57edd64f047c49bddefffab1f513ab5bbe7431bbd50ffb080eda5d2d875b23be0e1c792ae91360c21ec6b29825f10ed2014f832bf77a9d648f1162517932682470b4179a87b296cd130289a318cc60bb1d3f8ee58ad44e", + "74593577b5fbd08294cf61b8fddc99d1ac74076d10" + }, + { /* i=5058 cDividendBits=3652 cDivisorBits=2026 */ + "02723272f0528579341de6b2ac2d3ae3a06d5cf259eb34f9f148984768a131d3a610aaf6198c89df101c47a4710e4ad1a3610a9d587d3a6e00041c7ce934a8799a7f3fa8cabccb5f506ce8f9ccbc95a64aa1dcc998b30e76002914b478df53543219db7a5c8f58ac469410e0c2b1adb6d06822b1abb5295af1663efcebc124c96034405edf106d8d72a01132f97c0754359b34591247dea64121c64e48fe25738fb3da1d9efd126b46f6e0c314a1bddb8331422741b45a1240b876d95cb807f1d7c0add354cdd2540168704d336843592a981d0bf841523ef3236128f46d080402d1288dcdc94c623f0264c1a5a277aaa6aa2bbdb06c94697146ae0513db2a919a661ba48377ebd73983d65d0993ae5a90352eb483b646bc4b82c847bf3f466e24646006a59374b6b986e478d296209439be027e3e1934948329805b1ef30c435ebfc64b0babbdefacb9cc8f48920147fe9851f4586b328c23612d323526fe8c562ead6b06d60f3b9d49c53d5878b3f408dbb7ea8854fc285be9417f027f5133dd004a06ba29762870bc33656ed8480da081ba4b5fec26c58f919f7671b09076becfeb559dc5f9bb3a02c125086b556edc3d2327015428f9957086c0d7745215b98ba95ecb42e0eba3", + "01c8850d736a333cbcc61d9cbb566c488c007e29a93e901bdc0b97c5df13ee06da17ae42a6a1f3990b23757cf0534766dde999e038cadb24d96c4cdc5d508922400c30400aabd42004542f46ce6e4d22bb716ec9f73bc4db48431f43c0d938418269b354f730357bc9bee928cbc277f9fdc0184ce569ef21c6171a9de85bb854f785d3731921bbed2be4c20c0fae12fce258d08fc576fe5b505cee28ee40892cf2510c3f65c1d030d0e06566883eb8ed7f743d7e4472eb09a2a3fa08017dd858f1a170387c823d83e9062c74d36e771cbe0cf1780212452506b562bb37e4734de5a0fe766120b2c319caa2f966c6dbc61bb388039f0397d8675f7dfa52b0", + "015f2624de454200c50d2e14a7c0c10e0c91987f8ee5f69936c075695c9ccf7726ebfa5c7b2b9da32f5f9b4c891dad820a197ed3ab5605f3caa59d8030c24028d987c00af6846cd6bd1bb151c4b88d363ecaf92bbccf25f723e3855662084c099d5817c741d108726b05d28187c10fbb5a20def90a7174bafcbea14552df2c413f4980ddd14348f9bd40929969c97b6dc25eda18592b9946963390a599a1b0b67f15b6c5dad7b422a93cb89ad36728b984fdcda07011ea65951bdd4bb3619697e2d69510a7c7c16bd1e98b64", + "b4c96ce5a2af3a25516deb117e8fe1bb1c855949185e82147d145c52f46d0cd16f51b481abd37cae0e15a466826741bfaafda2551efde940f0b32f00f8598cb171fa8ed2249cdc18d07b6ce2b77da4e64d4b889a1f4ba874346aa07be0e9fa439114a309a3cb6e789bf7b27e4aa82775948a09258a4aef6fff7cae6109431521fe83304fc0924ef1f6c356ce5b97051c2033e652ba210e9a73986788d90fdc6571f1c16a5c6296a553ff23bbde658c779f466894ab72e46cf4c11e4d54b2bbcc9b8fa96413aab36a85e9caeef90a236b77eca13f325cde8dcad08461c15e522a3e32ef389c373315ba51f235642ce416c15da31d1a3875de3030030ee3" + }, + { /* i=5059 cDividendBits=48 cDivisorBits=12 */ + "fd73bf4d9214", + "0aa5", + "17cf802b5c", + "07c8" + }, + { /* i=5060 cDividendBits=470 cDivisorBits=6 */ + "3d1401046cffa06025f11b3051356cd1914dc0c32b99a4e7e48ca2e10c831f70bbe52bc34a0d31daeb62cbfbf3baddae7f21ebd3687c0b822bc158", + "18", + "028b800ad9dffc040194b67758b78f33660de80821d11189a985dc1eb5dacbfa07d437282315e213c9cec87fd4d273e7454c147e245a807ac1d2b9", + "00" + }, + { /* i=5061 cDividendBits=2667 cDivisorBits=2156 */ + "06a4a4ea7a86c8d8edd59902a5f4ff86591fb3379a7f86430cacaf67ec99c46884532129b2cc5ded79df2591a829f10986a87f37cba54661d0eaa8f45143f967f7590e131d02a7872874dbc9be44752dd3c6dd0662f021e2aaf902e54156bb6badbfa8b3ee670cbdd2d8e105e4d13e71b35c4576f00338a8b2ad760ac5e8881853897c5792d45fc49235535fbc17a8d4be2606cc8c5faee31982e64d3cccc8fd6aaa6ba3d3adf5cf5d556bfb9626b89849e24c6e8b6feecf805910eea329452e84e19248acc0f6879f725f79270a8949d2e8903098265632468a648625b01576b2c0e55ab8f4fc5bc8e73efac66275e1446a9a2bf44b296da40b91a9b58499ae40433739e0c40f0b1a9d8ab942e4cbe7fcd09527671c14fafd0c1180f18658f0cdeb0bb0f74ef691b4eff4ad1704ce07bc0b3221492f3f6d284a12624a2bf067630aadb8043644d6da27e2dc1e18", + "063a3f48e7ceeb8ea6096a289c5baf6a01da6a5bbe7340c04e906faf67c07569763a589baa363d0eb2929dbc93bedc08a0071d85e5532663d38fb6ffdef0a5ce7182e93374d9f24eaa73e9938d50ed4754aebb96344cf3ab06e41361278fe8bfeb59edd08753a71e351b5c407800d1fdbcb53088604bb81d1fab260a72784c2856ed380cfbf96720f5126738cd33d16a5f7b758c9699a6ea88b83c06f0a86e375dbeca7a83ca22678d78baa93a7e82026798fef34eda102499fee39d60653775dffeec129f556fff0f4aeb329094a5cc17b070fc37d35a0315e5fe50dc297451f5956bb0dd3118f93a4f6188dec58ba76992c0745dd50cb0fc3ed79083e08050b7485f98e905cb87866516e9c377", + "011115bf2c801d503b10352f94eab22013d1967d97526d2cfde0ae99f8379821b17e98fa86894bd874812116ea7b235e913dc646881a4961f6f4970e5de583b9f7", + "6ba21edeab5053c2b261cc5074c116e82434a0319f37d90005ad081cd8dac2c42c94478d1539322c737878b48fd3ea415a5e7bea4bba3878c515a0392caf96f5957951dd3759c50dc4afdee37c4f9b810c6a775a12c556fbc8ee311b42196a7e4b9827646a4a014fda79c5f2d9f3cca3d6318dbc8007fbcfff49895f581fbd1e5da11c703f0119482d83cf2e81d22fb41ca26df46d0288801508476c8ec2f71f5a8d043c2074754bff5380066628a02d38ed3465b01a0a6d516f65c7327b11bfa937afba71977274d7270c96da27696aba73d3b83446c11b5a60b9025d2dbb54fe69cbcadafc05ec53738419e86ac09466d7f19749f0eaf92675707d0910d83f9d20150673eeedc75c602a8747" + }, + { /* i=5062 cDividendBits=3208 cDivisorBits=788 */ + "ba789b590c471e2f052cd46a7b6c6607c38e10f40ba143537e6edd436d6e55cfa01e24608cdebc712a2d99c4e6529006e195e45ea30775b6d5fbe540e8aa4ad6c97e7537a03fae5ee225845ceea4c2ee4841aad596c5181dd0d454c14b70cdf137e028e78bb0e2c13ecc8f46a2c1ab006079afb22de8d63d4da3d2f4c59cdc11e878cade3caeabbeccad44c76510f1b002e5a71fb2488a60ee0475a97db028be479c56bea7084f019a925331d3a93b4e4cba9123801cdd347aa33e9304c71fac26e10088d8b4cc3cceed092b6b20214781e6af1c5e758da1c74c4dc750190bab849c2f25fe20f129d5b7411065604b7d25715fa1b0e9c558dc217bdb18fca2ed3348a289ff07803c8a8f6cae0226c30c8e0901a9b4e1970b627c8fee665194d961c935e614642f39a443fd4818dcc8cb06e2b5ff6db896a098110c46c036bacfa45d5f49834982060291a134fbf405de093031120518dad05add71e11a02a8575551792597bc45fa6d4a879d190f8b3b428ea33b7edbaccc10cc8d4114d3319d78d8ba34ffdc7079438fe79ffd0ce37245", + "09355d3e2479d9e4c9fc77a735da1cdae66307ab42a1396eabf27a13b9172008b3389065eadd1d0773a5e336ef8dc40b8ada204997cb783900b47fd372e15e4e4cc0ab05719d6020531cb84cfc3c4ada36ff44c73beec30335a4712117bb0568a0aefd", + "143fff7a108e1457b901791081460c78bae7b1a9a193dad68b5680580dfadd1547150c2229557277631384e90c4fda8807cdec1cda35d26a0c3c0bd935f1bbe5e0b566b46671eff84d9e509683067e6dcb224d75bdb8bbb031140c7719ac7c73e551ae36adb1378ab562e82edeff7521873bfa5379842fcece07886656eef3f21f12b1c7af6f2b97ffbc63e5def4ca98a9c4a154fa74a83e581ba1a8f74ef122bed0d86ecffc125947bfbe4900386c0559e20d249e8a26bfb5b764b64d19572b4a7d382ac968f2d23ece6f66b2fdfc71f61c09049f4d7a25452c00658ebcbc6e6c51c177e59c83cce881445ac7a7f72d9ba26f7445361eb67d7568d66d9e43d1f86e807595721364128d6022e6ddab8f72df6cac1579dbd00e35045dc410c00ea60b240d7283853f01e1465a610a21", + "0784368811864c4ab1576bf613fc4ccf4f847df62d470b1aca6c4fc4d719acef7adba89a1ea61a6a82034a7848a4501469d9a746fbafd0c0477aaaf64eb2dd64d219d3d64b03820242e13b7799d622d66914cf78f33617f347c113d2fbf59f097a01a8" + }, + { /* i=5063 cDividendBits=2444 cDivisorBits=1889 */ + "0183f92469ccc4d4cca214eeae1607f3b43c19512d01ad2a40bc38edf968cf1716125dcd3790d9a66b5b07f61bc35d0531ed3104ccc5eeb1a2531558e9345aa5f64c8780fccc8b7c40c00a57f101cb8782559999c5e78cc55b024f4cbb544f7e80e191e49debd8e788e8c62ffdd041c882870447a9819bd11f4967d54a0f0d5b938306c10dc92b8b833614dd2371c7421868f19519e4e6391197896a2b835b2c4698546a2e33620bc230a02b9cb0ba4bec65e05c8bf48eccb635e5b420c4138d8f0f932a767308ec9ec67c45ac4d06a0ca57a559b3193a344843c30642798e57dbbc4bd4bed2d140156c738d53e94e7d3adf96dfd046778f478bce8d634d629b519c8b3446b031aa224a8f70585db537383d34d81fccf81c352ae1a91ef1f3ca5d4ab71fe7a36cffe8321fc350b28000fd66", + "1a024009c48bffa34d3c4fb15b98c308e4886747d98715db69a2af5083d34aaf1771b31035c12bdb6d3a7361d5e7de03798dcff56b92d68c02f4f05b7c0928f19898503d0f71bee47bcc8b95852d192065ddd27c05ace62e8cb4aa8df157862a56faff3240879ec5fd3f4c1cef685dc8a03bf53ced80992118e5b1fbf516bce565734640bc3638f2c2a80e12b3b766ec12e426d0ac0b658da93f80ba1673c7e1f6b797ac52f39f3ae160e9fc3c43a938915b5db6eccefd1914cec34d24f478482641eaf6cd814b3fcb59b551292bbf47164735c5567dec2594488f23a481ad9c1f12210c221e8a79c57e4f7e", + "0eeac0c17a07ac8ad58926cfd9e8fcc05eb9ec567d87d071897fd9259ac76ee4097e4c332f5981e15ce51e3970c01545427172f93adbacf057f9da95dbe14acab94b21af362f", + "04e2af38724888da96285951ac72c372879f07cf78e5c0413b12d0508bc86f23405ba9bdbee928c127d88a9f58b1a718a36a081ca7c4c3a70cd6e41fc7f6e6bf436610f6d6ea5e0121bffac216246522c9d8b5e303b93a397153991983978022f97168b8fd79ed2a72a36592f94757f10c1a3c6e8040c465fd8eb22c3407c3696208e8aaa9f813645b9b27fcb28a56f44315a0bbee6b3e62a9ce8ec71cb722f686f8aa85be5341fb0c64df461eedfe5952186e546c1a1f770873d0b82054d235dcd0288eb026d6ccc866a7ea91f937220165ab2d7c78bb895f86063ff5fbcbb103767342c65f932d03e9d144" + }, + { /* i=5064 cDividendBits=2799 cDivisorBits=678 */ + "3213e556289b6c4d494416067c9e6a39aefd936e1df422ac7a6ffadbcb422b93b84b3e20229b5fa188393a04186aa1f775ca06fbb330380bdcbecb67e02745e750b7b9500ea12f2f41cceeace2d19df7a8a7063b3b8011397277c80d872cc3f573fbc84940fafce44d51b81190c436cc9ab44bb6b5658e8397f8e22198bb3f2dafd554dda5c9245f2d1b6b3a2e3ef74c65a8e9d6afef0271e6f1e6424e606f8327bfcfdc79c56fb5fa3695d93adfb2ff5a17accad8f28f39713a9125c4f088444abd946b8e938b44bbfe5b83fa62e6a17b9bea76de0db85c2a8dac3fb162c2900c8d4323979d6f3979cb20a12e5b16f81ce9e7aa479c9b030a528308d1fe97e5770a7c83e91f52aa2a1d6721b746528919b0747517fbe5b17157cabb93550d9881fbd08936320ce57827d9cdb7b893571258d6668837f5bd8ca208a1fef7d0a904a1a0225947bd4b54804aa9614e769724108fb1fe4604457ccb27514538", + "1ffca55ba424e6413902fbd8d633919d8d77691f2ae1d4629de37d39c8c81b8341ae19021b5ec98e365fd8dd3530bede70f9f2b2015295c5f1cb7e8f5347a9e6da821f8235bb07ddd007341ba30660e34e9208dca0", + "0190c92ccdcba31fca1fb91238d2441f253a9aeb79b931d03d8600bb2d98f92feddf7e47eda28237b8e41bd79969a15a6d2f79f1e3c54cad0e91ffd01db8c697d7be505a1f60b1dfad67e878a2ec1136b6c076c08bebb61d4146e7ae365587eb150e1a7ab69bfda81d555faf51b67388a03fcf7899a649d51d0ea4d4e79fffbc655c9c77d5dc6dcdf7f2acfaff1449ccfc2a9d0b7fd516ef4db568304d1e1a813a547e04d12fd9828012a11b148adcc46e70ccc96d7025018692321bd9947bd81065e586890c3ea2e365b89742b3aa14d1e90461e7af17804af714c3089ac63ed33fd7f7d1a2f7e0fadfb84db276512109fb851fbc3e78d521d2c6043e22408d003c1e4ac69ffb1fe364", + "0337047ed158ed3d820a9b4ec106906060768937e6aa1c95b7760f635e99ae6043e72d8fea23a1c1ac641c8a89d8ddf0671cb4649ef2929f9640a96c0f43fcfa48870f7cbba95da479ccd3f6abf8c6dfd8a8d936b8" + }, + { /* i=5065 cDividendBits=3532 cDivisorBits=3486 */ + "08ece01cd5020ed0fdf509978f511f58bc7d14f7ec6ab7e64749718831008ac5049701f61e8bacf40bd8eaeee7519c3fd58d252c2a4a85952301fa68aa52d578b140095ae27b954140970eaf66586f425b413fa1808c21962de729903889193455b7ce7f494c12f93ae54cc4c99172d162b80acca0df8ff19f5c952e4f7ecb9fba349346ae43e4db83d6b9b2ac44ff524770b1fe06a3bb33985ee0bb418cfd9363858ad12880171c90e9382bdaf6ff61c184bd2ff49f1719e4a75c170b7de7e892fb2417798e680283b94baf95f1e8656fd40a425e3a534a056735899a8fbf834b07c3fb6436233784da8d94a44c9f7b91b9374ce246aba6b92c9edab665d8429e5399d3aaf70530107efbe8882528edf8cbd24ff8363aa1c2bc099966ac9b3958ae144aa81071e85c4142873dbed28c74dd1ac64adfba50aa5da097ee585d1bab65217e7f1aab2ce55ae4e491d10fe40ad7e6ce1880e9fcdba205155ba168fc9498533ee6afd96c4d0b669c3dda2daf028bfb244c59b1edb88d3367c4e1223757c05fff1b339221f127a9539351bae4a7ba7d8c4c6107e3cc4eef48c35b874dd6324f91181f6652718af919d3695ed560e2846955f8228cbd83", + "3869d96d45d032d039083795bd16b2cdd76406e940536da4d9e71b39172f70328858f738668fb0b182a92e627086bd8f59a79ce4380581e1f44b0602534b4a1838ecd63b5cfb93843e3819a32ac8933c312d01bdf4ad7f6239bd7e87aac1b6f1cd076c2be8ee8385002e72bfa154811e1d94eb799be8dd3edaff5597a91e79faa875ff32ffcc818aa2d68bd64e1944f26674470e664bed9db2aa35401c16515f8ad414f6c8b1db61300530972444630466e23397e0970bca0462be4d7fa4aaccf7e2026427e2afe26f44e93723214ca26c430e9776aaf88dff071541c009ef7b0002d613ea27b47cbeed5513076cc2029970566dbde696463ae17740b6200d08c2f552681f8577ecfc7250af0bdd32933977d11951de41414e9952769666e104e2256be286e35ea15a3ca351c426d41f98cbd9eeea8a5a4a4cc10db457d8eef9e6e7f56fa7433ca5cc8bb2cfa34e3398436ed075a28e471c42f6abe976655c439c8ee7189e8ff89d9e5918d81663931712ffdc12a5d5de5d3a7c55282fc961b1191e6e267d309ce4fe88fd6fb0c776c79be9fbacd2dd884a118e5e640bbdadd03a2f81633b9bc3fb9a417b7f9053ee969ec6d8e2", + "288096ba298f", + "278761abf8a862eabbfa74b9f9cc12897de8dc5bd51c46fc9300083541c6bcc2dd231fd076002355d4df45e3f88add490323c54d2bc51ac637e27f7cf49618059e32b07948ef6d75bae7457a5caff71e70224fc71d87e3166d061ab61f8f1b444d4f3d2d26945b3d624e9a1adf7330f9815571fd39a4706332b4bd2310044b89bda4ae21ca73ae938234f24180715786cd6055c89a931589250f46da9f3d39c59b2e6d0d77bfe781a8f8ca4d387c1f13052c9b80285fcd006a2735500435dd70f56a0306d747a0dd32489a2da021a29db697c01620c3acea9d78948162d619762f9f9e6b9f078d144b6a77eee5026d71e447ac8e9c16e53c366ca63e51b31e55545c421aec477ea02784592d4d6eacbe84865cd3c6f2c918787c75fa51299b600aa20fb19b6c02e0fd9edd996ea5fbd7823e6fc6c739ae5b1fc3a8ea8fd92339a712c2f36184d1d5fa81d7fc6bbd5ac69abc21412e407cefc3920d3fb26ea88666f5c511afa3ae9d0a0bc337a8bfc455f25d402474d96ca4c5f91a9e5e0b00cbe45a94161a6de32478c24e570567c2144bb2ce6838acc4913617f991906c583afe8864a78d79ede3f6fb179d64894fd998896545" + }, + { /* i=5066 cDividendBits=2614 cDivisorBits=879 */ + "0943df960799cd0eec45e23fc987d37e30e86f5d8db19a96e49ea8c246a2fdca81a8bf9d3f392c867b1c90c6428c299beb09b6763a019b399bbfa1a171514c08f8c7e2f90a864bb8a5263fd19cbfa0a51a5b26d9743a267eb7d1744870014a39294777989043d002c654edf027e343df0e277cfe191378085953cc60e3f74a49715261fe19cd2883fb8c2c61305c5dcdebcec5c02914230ebf53e2c950d9f291f4ce521db2f440e23c867b6c1cda498380f960145690058152d0343a0e8c4569e541b208bf8e21c1b6d52100bde970cc7a4e132c7c3d1ed99f1b878b83448e0a86d48c014c6710576a1e72371e397a00a205816b08c0ba65b8b2f3889311cbc37faabef4693687e5b60452212bcdbc95cf919e8651f60f5034f20ce3c49dfcae2a351e3e3ddab7803e79703c727021b07e7e4ed0025128546a6c9cdf87f657b53bd46d25a584f9", + "064fc08ac0887a6100dba623146744daa469697c51aae8b339f1dee5b71d4b7d634e49c6e261caf94cab3e45639ef5e08a92a3ec69f3781362fcadf5f5c61c88e03dcd2c32ab42649bcdfa301683c3533f2126d3809964b101c2776acb45ec1aa5346e6580170a06f83206a58525", + "0177ccca621610b53f9f5c6450444bfb43fc4a01fbc167866e11623ac873fddf2cb4bdbdbdbcc33377e313c935c9f619e4253f491c3332d744430723ba47723372b031a4eb039ad262f9f56494dfc80108a88ea2d886a2fb24f5458455a46834fdb30a0a654e6ffa95150ad9aa5b4214aa8792b4b56b8ce2a164e68490105d444bb7472281daa0f8649245cca056e3e49a7f4745f4b74d8eb2de17c39a8c543e5300825060ea376afed5bc44306790dfb7c561db9a66905f5062c47bef68a0f9666fa6cf45d86d1d5cee16357e142fcb196aa56224072cda3372", + "055a410cdc6dfd6d88bc95cb13dfe2a2905093286009b07bda332c02b1e1b8c7072cc090cb781d9722e654e27de44bf2e90bcc1db166bcda2bc8269e56584884c64de240d625a50eac60d35a6d350e05f928bffe8f174f7efcb02e7272a073cef531a810cdb0a08762fa78e7db7f" + }, + { /* i=5067 cDividendBits=2943 cDivisorBits=1018 */ + "244389d47251b5cf6cd2c8c9c2c7c1faf410b68ddca1921fd51142e9e4b9f7ac0080ee5deaf9958811d55532cef6645434bd24dbf50705ce10d428a9ccb43488f71da8fd675dbf7893d540744a496b26f3eb1e3871f3f4d5ada437baf9740e9c6cb7c8e5c765c23a1bf62de4a880ce901c0fc5fc86d5f542926e530a35f89ba8b3d4de4d7af944c3953dbf5b9859b14cc60e69b343af11ccce079296532886fa805001e061758755fb92868f443832fe17f93b3fa2f9b24d89a20416819320003e0974cfe42d21d45396efde499a42db4543dd2618e514f6f000ae41f10561726c71d72600c2f4470f9bf695c0cc793c3cac8d1195b9ef086ec4cfd757edccc1bc9d5885326745e890a2888bc444e8d6bc78462d4f5f4b0f2f8750c0e94569860630049bcc4360a32c4d968e9142b65e8ca8ed3c3617874fb102c5d9b353234ee79e6d5dc2603499cba9f4dd84b1676e6d3d1ca401227841d03ba971031872b1690ed7bb14e0b2b1ac793f61a572c7ec", + "0390a7105e50ea466e17a74ed82ff086fea5650ea85aacd8dd6d383ed22b186e939501dc11b146cc451523cb34deb0c503b00a5a726e10b361e3f6b945aa09420f870672bcb741090d8a0b6733715e03b549f7f237f7547c704291e948f55d7290079be81a4e7c526ea8b1df74ae57ee0e537b521eb076fcd8fbce02e177bb65", + "0a2c0acaebc1bd67701c983f031fb98f0a9fd0aa71c831b237bd6b69b1f1d28f4a9f21de784bae6c5cc9a7e5d4d2080fc31288da3cd27876f6d2dcabd930c0102440d7279e01adb77b4887ddfa789561a1cf51944a1e13e3dfabb1f5c1eea5c0f653084ce8597184b9dffff7fd09dec690322bbc2af7b89c952e9f91da9ecec83220a1cc61aa4459bb2d26b1b2cac58d2bb40ca91bddd856bfdfe8e9fafb64a9dfb344c3b45ffb31835a0b5ce26cc172497651b928a3c38bfc243880fcb8decfd0a71824b9ff8e31c0a9174405fb8f72f38c9fb32ebd740603397ec457f43d4fb56ef2d84c5d84b2765444bd73cb5081ba", + "02afd307cb1b451e05032b0650c9132e9c97f314417ba6aefe2a83ff71af8e23bd4ed1a55ed399e0ff1ec65afb7afacc14b4604253239fb10104aae1fec026874b8741a42129888190bd1f14a63d1249e5c2088969c15b3ce4c77e03364f575145c6782ded1466dfdcaf68be2bedffddc3f263f1a41be6fee00ef749d876bb8a" + }, + { /* i=5068 cDividendBits=557 cDivisorBits=214 */ + "1ae292d9245aa3aca6608dad058a7311e78d90b45812494317c39a2af47958411b3bd5ee1dcaa8d9735f5ae3f16827f4a0cea973e2fe49597b4797cc732e3daad3601f51432b", + "1d13265cc0d0f99d4f5fd0499737366649b0cb695cd385a3949fb9", + "ecb8325ae25feec7d0e552e831b4b86be3f3372e8bd4649128c8fdfe297a37c316be7e4395ad62c5b198b5", + "1024a52dc9d33602ec95b1823bea43225715c91aa84a456c7d7d5e" + }, + { /* i=5069 cDividendBits=449 cDivisorBits=145 */ + "8539988d97abba7a5be90dbc573f08c45023de1a86d4c932fe95de49baeccc5bd4682d07745e640c3bb90c532a0e796e1a154dcbaebcad30", + "01bc6ce291346117f394409d564d3822e9231c", + "4cbdab0609ceda25854fda25e106d61b86869ed4ff98dfe639d79fdcae80efc96933417a4eef", + "019914bc8fdfee45b66d1a9489cc27370a5e0c" + }, + { /* i=5070 cDividendBits=3653 cDivisorBits=2045 */ + "081eb6ed64cc992c10f45f71b945038c7968cbd6ca4024b527b20709a4bf75698f85c7d58b3725c0464ace3e24b0b2a7413512d7b395b17aea92902f251b47046ee786d51a0ebf95cbb4a32c8383f47989a98e46299e5d7a860a2ee2ef313cea1c8e1ebd1ddc43d684d97e72c02593b2bd1a5a2a56fa5bc580cc7b5cd6a9588c4abda84ab7465795ccb28383c00b216b9e5429d275028a9817018afe64def5a08f522bf884109034dd116d48966fafeb74ff686e8cb843e64eb24f3376ff3faffc257c4c64fcc0677c7f5414009fe657684f3c3e3344b20d482058c95c63f7b7444b5c9c021382cb5fcad4541648c64665e243b29d00829ce1bf2fd2cfb53bec1abe400022a556a8528ee716378935862e94f860e7348c67a902d9301714f71a3631f8b2a28140bd472eca45e0c6062645ebbb5229e9761236490e69d8ecd82303181631404be9dc887ddaa3a8876c29068950e794d26f95c2238b5ccd99ebd672e6b27903229a6e30b82bb2915404be3de161fa58756666b285a01171468cac877a45f10feb662d72518a9b2cbc45b3556c40c5bee3ee346563ee6a381380d80087a6740469b3c33bc4588f6456638e46eb46145208fe6a84fcf8bc2d8ad494c3d265c209bedf1b77", + "10779cb8196c03d30f267d5f65f80f9deb10bdc5cc811a1ab2cb93b4504e0f62246a9e22d096b12257626f3eafe4af505108a439aad255ac96233fcee4fdbec2ba8266191da0cc03f6e8cf5167490d84538bf2914629f8ea09d3c0d6feca8785db5994e70bd1a44a31e573961df2d9440e55aaf52db68296a2285e5bdd1d7179c85d7fae3a1d13bc143e091129b505854d767be97d678f132c799a562beb7417705919f0e4d0b06722718338adec0759b3f308c86f3ba223a3a1d67bcdeb6a51c973d965897a5bcc7076ad01aeca3fe2f5059c50897ec5b126fc98eb07dc344bf6391cb58588077cef8d7ffe5d4aa7d6cfc37b8bac6bfee9324a268d7b77a956", + "7e3bbe0dd162642bf89c89e08b12d96fd3b54e81034bae3805b773fdbdc643a04050edb9f81440c60aee4a518ca337b21e2f2267dcbe840a99d59b9e5ceffd57c5eca826d25add4b6f8c7c31b47f511f824b65fdd62d31b0cf922c96ab173d95619caa9119055308096f19e04c678ca5a71e31684c5a7ee3f506403679533cdbd1899e8789a405c87683cb49173c7ac23fd8495d07525af5ff24ffe866ba37c7a421a336b409f58fee3212458bbadb50c57ab7807780b82df95343ba80a138034586c582dfa7870ad5", + "0f63fc0c1a59934144e896faae91b056ccb076d8dfbd02b7420a1576f6815bccef13efe8b14932e8033ce03d7baf08e33cd366b18dfe8374b08ddfba1ff95f5bf7cf8467a39ee4672c2c59c77014daad5f8f81a6a4b632528093607cef5c9677a6f72cf2bca7c81e98fb986a5c3fcb8f3dbcfbbdaf6eeccf00d85be4e680431b7a2304c53be53efe26d4bc5fab0dbbd0c514e03db1aec933e1eaa714b51cc893cca803a4756dc12aa8153c17d17112586835aff42fa5dc2b3536b2e18c3df2318f1ae97d2032dd2df3146e66047b62fed5dd983ad78abf859c80ecabd0d8247baef2df543f5374a20f76f0d672e774013ea8a8d25183c2add0a2ce03f157dae9" + }, + { /* i=5071 cDividendBits=3747 cDivisorBits=2306 */ + "0557dc6effd8c0dc63f92a957045275b6e9823150f8f3e88cb02aee3aefd337c07e69a561419e8ef5faafff2700763361af9d32987dd4c9c29a073b407d855c266780a370a48af48f1faad310b7b2c54f5a0e7a68f13d727dfd917d68afce3c6c486fd48797f3f571a09308d2fce1a691eb012459f827aa072454df1faaba7955bdd3ed6e2684edd064bd3d830d37c305222fe73b05dc87764444c797c2840fd3ab9a07c5d9bbb857554fec74c1ea6431fa983d2dfbbff69037bbbebe6df3c49533b5f995864b202f7a682c2726a23bfff74d43e87fc40ac5f2e9272a33cfd22100f33214b7af5d34fba32d94376eed41f64a178558592f68a26cf1ae78af7bbecf6192f1fb51e9027f5a7b82a76d2b08ed39aa830d57ff97b7ea5018c8f19bf8d598c66178ba7cbfe6c1525b29337d743c9c588cf8ff8d6ec551f343bf85510edda39ec20495f447d7b58469e234cdbc5bb755297245145b6b65cd7d241e66adc6d237373f9b1bd4896e1e5f12f6fb2dbad7a0e0065143dda0e9c648385c8dd5f0eb9b24b46b319affff629592af65b98db2149b5d5d3e7e30ec0e847d1479491a43017d8d875d7901392a8fd35032fccbc24eba108d71f08a1d49436a756819bfa5f5ab91f858f33c0ac2675ea2f7150fb26f12f", + "02ba7a3767d81423184202afc7c61e0c51e33ff8f9149a4b5bb0abc9c1d823630b736d5fd813a7f94aab9407c605641a998026678031880e364d5396ee626650484600be9149ea5017209cdafa35fc447997fb5825bcb78a42d846f84bb2451b0141f6c5605e72bdc60ccb5d7d03691fc9827494d29c894a698d999a3ad50eaf4173845bb4f1386476f29c9e6e5042f36ef92a71a3e197405b1f7c312b6b92eeeb7b374f9ade0a3874b44244cd91fff2e83db9e166691efcb04ed84e83dacf18025426a85b70bfef1c41bc8bba68e95edfdc2c7f0f734253ee636bf10efa503d09ad51bf1a93406c6bccc1a1b202a989239a6d45f29a06663d620195c1369a9b73501993a32fe1261bda9080ac500845422a7527c022ce23a862a00d960741e518", + "01f55638ff31299f7455e120963073e2fe012bdcfce0f9c99e48e31cbd202090a3f0f023ad815b95f1c21eda1c5c069c10018bfe71146da41c26bffa24cc48190d3343a2426dafbd43908f1a6b07a402a74f4b200a4fe15f30db04a9b94512002ca287694fb679f5e131fff0a7ed8d6efa7a10d2de088436a777672b47b41f408390812ffc68f823028ff388c67f39deaa39be8c942ac26f13ce367118bc74557d3896105165c886fdbf9477c60f6063ab9bc052df", + "04f860cb44c4c91ed6b02e751f12300434e5b878bd2f69215dcd402d66916d4a7adbc8280c3960ab87f4d5bd652fcc2a147532e67411ab09678a971d26dfd4e4058411766ee6ab7e45167d564b565a0a46433e91678bb72a26789b68071cfdde874a83339f27fb8d5ddb25cc876c6bb6bf3cfe479d6d639caf57b58bb38336a55d55a95e119f2a5f7475f7120999be6d1838a577a919d912a2ef2b5a6139dcc29a198cd5a166eca47d8bae8f4fee8ca7a8980b88774b434daf7907a5a668a9826779d4c52ba40c2e681ab5e7a7d8ff2cc1a77465dadac737b228d96f299e6d13a1072f6d1f5e9d16349ed75d174e54aaa05ec6a5585042cc8cb50aef1f4f478647ddbeae2eb580b892dbd47dd6662c15ae1b98e8747f41350fe2e724335eb147" + }, + { /* i=5072 cDividendBits=2863 cDivisorBits=75 */ + "0e0d6bd7e5bb029ac8285a421be4aeab78c90638c512e556bcd0ce8fe7f4dffeb60f2b332905e1d62b23e8d688fbe812a66bf63afb6c8d0565897a2dee292cb3f2b4ce0386d170792dd214252c0fb657b3c5a1457429b56603fcceb29d6e686de03c907cb72c110985fac27c4d7689f1d6c6d99ffe4dca7844754ea0624b5f2899b43b4382a6bd49d66cfefab1359928ab3097f1cc844304ed396e62e72e42a17c9474a774f04009107d090f25c86662f7f681113b4182896e490a2600e82462b674c489e420c55a128161c2724cbbfee8d7916cf4f76a8c20385f686bc7e6da832ee2154b3c1516cd39e6dc5518f87da85b69cdc3e53d1a1315fa4b230330848156871b048c5c3c82182c281d50e85f4ffa8b28703597dd89f1b72683489d9052016c8455886543624061eda0c58cff9479ffafc995bbb33a6604aab52ff222282fbddd1dca84f18c91a27ea8630503bedeee76a607e0c735e7222c2719d20e47a974b075ec", + "03ddb4f2fd22b7f623ab", + "03a2848fc7e2d6c972a7009f272312a80cc5e60227d36439c68f36bb0283328ad5143670ac8e7059415e7e55a5dc8410254a23864595ab71b26603096a2d8622656f4462e1dd706081d1650b22888575a83ea4fc447606282de8f885e3a90e2cf518671fc94ffee96cc58eb6f7b6f2649d46215a6a0b6598cc91bc1302c4a2d102226170a7142bfc6b2649c5d59bc3372249540725ce47a089f5290920f4942b90bcede7b8de5cbbd7048b60a61d5f4dbca96ed4b47e63c389ac75dd3268ca1e86891f7ac524a9dbf7424771bab456cac097ad39a3faf0f815874887e4eaa42dae6cc013b1821a4ad636c2de85c167255e6bc951ef4058d550bd75a9643daf745e94abcabb216381a09f551c5687d202b669588dfdfb8ec54b57d051477ab0974219512f4b2b1bfc9f3ac4f91ad18c384de58ff70d768f25b160654aca806ec3423da83b4096d675a3cb311914ec4c0c9220f116be351f3a2785fefbd1", + "0302242e0026b51aae51" + }, + { /* i=5073 cDividendBits=1639 cDivisorBits=1521 */ + "714ba01aa8b29f340187ec449dc807e5174e24b938ff0f3635835778d3fc130ab35992acff8f8f2c20916126795ff90e3fd1a9d2b0f77a0b035a42a9d4d6148a2c770bb5c6ae6ed16915f1d26c023b5d9b955c31c729060627138ce92cf4d4694f2218a22ebd7bd55d632d2d39c313a4882859bbc204c82ed9b9e5c3178e63b25496cdb990f481e78623d17c71cfca20005e4999a667be7bc1d0cccfa1c11ee8b2419f6a2db532475af604a9b534c73e39477af6bd5d4c3b5777020c7bca747cbd7258b3e5831cef196b9b2994", + "01933bfa5b57694d55be0fe78ba7c61916e4522c414bf142c3380290fffd220a2b0486ecefab82a3d23b2034e3245061003bb125e421ba9c207f0da99deae797e8eaaf83e161f0089a71f349a749d99d228919c37f912e859cf6be37bd8a88d00693d3876eb69bdc83d5c4cda06c59a39c277785777dd8e86e4b626d48034c56d0fa52dafbdc49829d568ad27ec3f3383fbec4fb4b2a287630128a196cb1affec85dc31fbb454e37e26797387ff4ce6676e6f7fe93dfbb922e862a863365dd", + "47ed6f313af4079da0c92d7c118aca", + "e8ab7cc03efd10660221e8c9cac6455cdfde6cbdbc73ce51fc6fe33110c5aa080d680c084dfced9cd1cecc37cbb08fea6e6eed1c7dd0581abc42927df8af4f4818f615634d8575a2b82cd53d3f3456385fc54a903a47449a1b2f875bd7f8d50924aebb96fcff1c3aa91aaef4e54f70da7229fc37248a71a5da36f864245535be78670335dcaceafb855ee4327c3cf5853bab0af9304fbabbcaf74a83381eedf2fb52b16d46f4da485379b36d6ce4c374517cf2d503886f1ce99a0276a732" + }, + { /* i=5074 cDividendBits=3750 cDivisorBits=3636 */ + "1d520823496531ae3782d7eab9d47102f57fc13aa3b5f96c834c2fbe4a67661b1a53fcbacf43378dc31439c5090110b8a9d38d4469a6fd7b0d662b62b38488df82a4e7275ed268aec85ff53e32bc6245c06fb674bae36df0a7845cae88c68884fdbef9949d799861146a059f1dbac35f1df417c8537e518c2f487853e3d84f70955b7cf6888efbd477a2415948798a2ffa75d1a228488d0a3136b63faad3461484e484c7039f8a7172d4740795dd41b27d75cedbf5d3d9ae3bca4fa83b0cd88d10b25755abbb7653cc538fea08ace5d20e4aaa3002e85d44cd606e7084b9e93d50c2f4445c613ae27d94c932c744721d4be9285f1b6c70f09c792dae3d61b9ed9e0a0df4385cd3ef541077450802aa9e078f7309dbe0c3d58bc1a9b0c5a54b302c54680a18fd611e9641792a486dc5d38c9e87618ac32bf292ca90a40c8c3e126569dda01a0df9529c44aad99969a592cac8422eb57b7cb0488c9b3a673e7151116c2202b077dabfebf406e8a6d01d7460140a4648b489af54f822a9364db3fabab27595c9af73c1769ea93be1a10976736e2f15b093ba2f8b3cee2205925be899a8a0e85d2b1b6ec14e96f044e4ed9a021e210f54540b2dfb606c155b25fb47a50be718447e044cc84f5ffe0d5fb897731b04e442", + "0fd761d23885c6df49b3eb6cde1f7a2d23cb2e108c06063b4879f964d79abf128149c5fff3ff99ac6ccd7ba5900ddfc6d8b0adc9959d9da07ee6363550e5a5f2ed1cd88bc5c997b34f9a313b7ba742d6c7e2078285ed41d1ebc6c75179770a3e3a1cbbd7b8f754a737d491220af7f39c478a7519b6e7097c577c48fcad5e921d9b5d59d2bb2a5c35825fc41d55b1e3d5ff3e571c60f66d2dae98d50bb697fad3859ed5ae12991a46abb2edd09a560d2d3de762f95fc84bdc49f0b13093bc4708b8684933b95d0675f133082baf705422452de8cbad671f3fec7902626b24a1d272e2e498c72570c1fa6f7e34351c5c507a5e27509a28131e726465c148ad532544981e1bbc6f0ee6bb973c0dc2212384289768b2a1c616517d0c9d619e320584dd25b833a9bd22d937c38ad50b7b5b5075c2f1e42d45ff69f5d4e01ebee2c4afa17bb5645228053b3b5b71d4e35bdb887ca71be7bd937d5c65134d079b0411ed9d060a5af4f99bc33fc56ba0e57a909bec79222cb562a650c73a033f67812e21beddc53c0fa160a5621b5264688b30caf75e6b009d7111ce4da7118d1d025b42d19d31cb48815af65ad9ecf34a34ef99a0e6cfd1543be2196dccf6bddadf4eff5f6f159689c923", + "01d9d35ef4fa4b84de0c5a9b247d2a", + "018296cd9da4d329ca9590b08f782fc8a2d5e022c59b283c5bd8c6b76a256fa087fa933422e0237013a88d8beae24d7e8fe1693015ae9db40e506559d0eee0adb32a1d5fd77bf98bfdd0e1a4edc4aec79f09bf594c74168779892aca5f6f83fff9efc82e1c98362b2cd68a439fc05d557b7bdac911c6a09a217cef0f7a5c574f2fa1bc256d1417a95755ca342c81b040967b8b93af03147145f070be64c7567ae442e15801f8ba277ed9e71730fd59bf4b8b24f811b37b6b53dc22c58c3c0671b1c9f0eb0060753079647d4a98814fb16035cf00d8c4d037aa4e5a10165cd382b54d58dca72680ac0994fe5156066aef5510e2f329a81047ab6950265ddcf3319720692c7a008490279ba85ef1b1683cae61db29171f43dcb0d275d351d35173e4e135cc3c400dedacf91be7065cc9e61b4f558a92eef70733bb9dbd4201ea2e30e43870d402bd210a67dc19a47bfd8d49685378f98b5fc661b2715fd7de550790450235275709d4917ad9275812dbcc39bdca510ef4149e28a9b703d1c902310629ca622d145d0718a0c5d89b713dbb136e971b88b75750312b8f211318c023a815dffabe97a65efd6ded54f3ceb78619d6662d693c68a02ff3781f73539f556be0f0a747cd84" + }, + { /* i=5075 cDividendBits=228 cDivisorBits=16 */ + "076877425b7d68dc4130075f50e32fc13d8d976f6f5b284faf2e2936f5", + "9aee", + "0c3da624667b3c53667c423eb7d1f0561d14dece9e5cf924ab5e7d", + "2cbf" + }, + { /* i=5076 cDividendBits=3593 cDivisorBits=1926 */ + "f86e3e43de4043a434e6b912ea78ac6779b65aee9745272670546c38abe483376ff77ce5dca188d1beba66c18650c78fc7c205bc1f2167a1c1e3307a5b9977bb6a5124ee37387b6798a93e366252dca6c16be3e656f866b727a5ac71d677916c912c3c794be49706115ed3b304023de42855a6275027be1d250e94b0c696ad67fdda0e3e6259239407580c43d04963b70eb3ba729fb1f9512aa329cf9c36403986b48031ac32fd0fd61fb53bd80ff957ecada039d323930cfb28c5347351b84ae6e55a0f5f4afc971e58f43dbfd45df75903da210723ab0e41af93a8c217943ffa9a1b45d6f81e85a0e5a385eaf9a7288e47dedccb394af21ffa5d7a5273125ab9078084facdec99e20bc7a1f9c70b45f5866ead97e82896acd4e4908a7b4d97ff8f704b30b6220530488af51f624ff06f93b2c513d4f67e8de5082233087f058fcbfa48250bbbb050da7d9a77224d066a94fa6a2dd8953b99e0b24b0f3d8fc24b8cea42b385d18d011eed9ec53402c6938163b470733751f064af7130d1ae4513dcd448fb876701ca227b416254852e640f5c626ea2974de965f696ac98e1974e3ec0ef8dd74d210bf6cbb7039327f0f20ec040ca1fef64fb70f6762e9f904784", + "3c93a8a61ae3235dc4d70932ec484ef757fd9a85fa4e274052664a16d0a9cb14025c656b0a57e20a0fb89463f010384814b0b826cba79440951402094eb99cf865693bda08ab409185184933ce56ae8aebf0080fcb620daa5ed48106592d5ffaeb7320813067eb0347367060bea0ad6b2942d28dea25f597adf75e1ca68199238d45ad788a4aa3204090846a9eb2e0d531cba4f5480feb41ac6fd5fa9669f82495a8c69c7279fd08a6ffebcbe4a1c30f9eb0d268bbce6cf0624b2b9ebe51ef920cfffddacfa8acaa647e22096a3bbf9afaa22f0d7c5640a18439110d916c92b3c8b8a15e44c4a7523a51798147c75ba74f", + "0419e0c69e4886dfba875cba9f0a7ab4768dc3b3368cc8711d4a86d889eefe5239f44511c0641da0f01b8ebfc08bc3251536d48d7edb07c223b0d93d449c23fb77b020b1536014c992e33354ca26c3bf33506901a1834ed21295d121ac36b6ccdea3095478bfec0caaf6dafa5248aa68c89cfb8493e1855cdfbaa8a2164c386841be19b7171640b069b59f9828bccbbf374ca3ad08451515c7719d8e7a4c0889813ea9ddacc8c951181ccbcee174f9a1f6671d9bfc213eaea603d58c8d4f7c49247ec28acd6c991de4a7554ebb081e40ef", + "070f22b08324990ec67a89a5368111ac57d2431362cceb7a11840d9b52d3e8349d23987192cddf53ade8173aca24364a13de4e8bcbce692fb1ce77354ef3903fc2d3774c9a4679014bc4ceafcdc4ace0a50d3bd5029064d7b4cbc65e9df1ab9a065ccbf38585bdd4301eb44e1c014e2f6f3de2316b6589690890aa5202fd0c171d4cb5228262259cd8cc6ad5f8eb6c8862d048c8dbc09a6c23b708e961190f445fb7c89d8c9b89d7412fb743b4185804be5dd89ba83baebfe0fe066fc08dab9564728dce3b3859e13eb9ee91584ecb8422836f8e7c1674212ff500c852864fb9019438fb02b2f674c7f8684fa783e954c3" + }, + { /* i=5077 cDividendBits=2344 cDivisorBits=492 */ + "56ddc5fb54d0f704c201129f7d70fef547478f473de510073fc0335f8736992115b232d58940c9888b04fcb8e11961dfb976f6c5cde0c67b311ad5e4a137b4ef98e4a26101e2a021953ed85e784c62162b04247b515f95c7dc0966de2bb9e1a6f60fe9cb574af128080b5994960572bf9ea9ec03e0f23a7c52065240c2f4d46840257e2067510048dc8984fcd9947277d887e2a6461c8350d795e3d676fcec840c87e378c5b6d160e2976ecfd9f4d87f5c01fa25d45626a999fa2219f8ab284049458fa60ac248ad0eecaaebb49db09790eee17e90017f3a541e4a8acddfaace0636fc8f93294f27199812f089644c105e183e5f69b9ad29a607abb13c1d3a88bb68de37068a7f91adaf6b109f4bcac9d6a6ffd0f2639e43bd8839b29045aedca921384810", + "01b623b92a8d2a7768a53d60b3f2c7bab1cebf05685526c87731276685738ada8572de8f063d6943b2a7a89879f02e11b1df52732a0d2d8947ba4016fe08", + "32c147cccd4933825106949e83166454a9ed237119ef7ac5ef9c7a25ddc4471bd32d9b74db4373adad46a7a387dcd2921c21c89a377665a865748ed872a5acc357e0dc968ad37c67f28274e79928400b96be4d522402b9fe6ede0ee7e09929cf7d5cbbc63b75912d1bfaf33a02cd89ef8be56383af95431b4d11a952c338666198dfaf6d480ceea3f2e8bcb30ab2c3a27746fd4101f96fef1940e7d10f266a5f1f56e69d2c56e9f7ba1816eb84b1f09cbea12b500cc76a89deec385b54b0ee565b35f13c247ddf816197d06058b2a863f9c3e78eedb24fc8d80fde25fe388a5d46ee48bab4b1a1b2", + "d9ceaea0405c576761b4186cdd4516962c3e4e7b390798b990c38d3dc1e5af7d9730d45d7bc15dbd2ffa45fbb25cea1559f1f0325255b18e86d7f09e80" + }, + { /* i=5078 cDividendBits=2042 cDivisorBits=199 */ + "022cc52c4552e22e60915308e450a3ea81e3253bed8685a7ba5974c7bc836dbbe8fedf46a88174784a568907476922d502c48faf6693c3d5137edbca5313b9fc8394b151e38fa733c971d63757e01208db196bbbdc11511179f94a8bb1e522209e097341ded877aeb7a84c5b7d4b6baa2de397f7b1acbf81e73bd4261a5bcb05a502516937028bb93f60f58384097082ca25b746d821673865b85ddd5326d1251bdc0b6b084a60a65d785fcf1f219ac24ffe97d6003ec2c2b45e5497df4a46bd24e62d64f8e099848025352362434746d8ab99614b9550917087ed75a2d5f603dcbdb7f590e2e9c80643844f0d10bbf5dfcc57d61bf79bd4dfa1a5983470a513", + "3a9da744bad04ce0d382b04acdbe4bc1d9d442be4ac71468de", + "097fa6516e8e989584a2125c2e45d2b6dad62a1229dbe7dc3fe9349a735f8287d6176d673a65e91f15f746b643f8e25c98248634dae509815f1e021bda977b3de71df2aaf87eb0821170c006d1f935c3b983bef7216d0804dfa6411062eaf54068f74d4b50fac76ea9eaec011581bc4e537fb20c0d8cca358186a3a2aa26ea9b74d8eb513d16c7890b9c6d27e0ccb8246eb78e61b1b994db99ee80903107e36dd1e8fb54fc1a70541ff6e4ca62d6b39f0c7bdc9b67e73a0dc7d30d355cbd57834ab4b5c8d63388f362b9a6e86e5238fedba62f1f205ee01b38d42003886150227dd8aa3a41ca40", + "3142cfb2ea387ae927e2f308dbcfc8fbedc644f27368394193" + }, + { /* i=5079 cDividendBits=4088 cDivisorBits=1288 */ + "afd064e9e3dff89e3cb8005a457f8ae26094c4c8464d71338961124dd5c91aaac4393e52465b467b69366fb654c05d434c179c4fa797e47d5de0d08fd9fffa01e9361e1d2229e895b3c219f56beabd3506379089a587b7541a60f823a6a5ad77ca6168498d1cb0ce93475c38aa599e6557e380863001b7d9002f05d23aeb36d6f59c8a1974bdcafdaf2037160179f7b6b4f2ca78dc387aa5ea0b63e6276b522a4f5677e9004a0d740de8899049ab61df4a9485f9a162bd9a867ae53c679a9a6a6d2c94a4e2392750ed0e239a1526eed28d6941700f1f2f42e57728ec4475336ba874184f63e852e49433bf07edafa5899e68969dfc80acfccc08a22c2b88a9591e42a6801d6cdf240966941af3b5d09ca4878b74aba9c5a1ad7c1a42911dd533725d3fa942320aac6eac91d8626aeee9a536671db35983d71b39d581c53b56a2072b6cce9130278c91b37d4b1dac4b16aa91417c6dcab50d3a8747d1a29feaff5dbd080f0e2a93a126a4a0d31e5bc2faebd08921fd16ee538e12ae726e44314d1fba71c8f96db5e013f47bebfb0a6aa683104b6555dfcc3da92067216885f8e8626c5b9546331c46349e1f9f91136644c8614d4f3dac91f1d10914b8886672f948f3891c729946342d5b80d1521d85d9d97b0039510be7aa522e9d2fbe5b77916cd4da8ec2ade26e262c08f611a658221aba9b64c0e24edef4f512449bbe00", + "a53825534dbb985b38b4a5d172901f60658c579b88676ae3fce2bc2a7d6748dbd8e7a86e0a03d3c52654951bd39994219a8183baea0331ddc2b7deb0f10ddce6b533b20fd25bea2c25d7a9c3a5178d0a93186f3677b9117dadac365d960e54b30eadfae900a13114ceb60a9fa484d63d89bdfc494367c42476c76e695bc9383f0d2e73a1eaeae8d7e0ef50b5f2c18b446ce43a68fd8fe454e663aa439bbb0362e5", + "01106a822a79d3809c7f7ad5f0b4ee883bac78f6ac880da9275aa0b3b80570a03d853daea72e4983c73632725b9438f7d734f537236aebb708f24abba1f23e52f565a55d1cb9d49977f5534fa0ccca1d13337849b8532ad3e56d14771129b67e0cf93dda4697b42efd4601dfac6b27a4be1c98999b2bc5051ae23fe1fee79ea0ed706a7996969c409f72da4923c14e4d88723e2b9d2dcdef702801e26074dbb166a7b86cce7105fccb2e8dd07f127b6cf3a471b272fd7e84049e9cd9970ed69f5a779314a327417b0ce8083678c0d1bdbb7b10a17c83fe5a6c3e40ed9905ea628f7b73a2a4a123061095b40dc2ff29fa7f7df2364a4e870250ccf115f76bbc4727b3f76f6fa774c87e1265d3a1c85c94fc1ae3296a22729ba9d02b73ee64df8e0e2bff9c940c59cb6ad3669d67b3bd6583ffe26870d6b607fffd1d79691aaf24fdbea55b397c0e4687f6d776995b1388da2635f4ec8ae53434bebe529ece9f", + "17adb140ffbf5a51a0d4902d95ffe5d4f19245b17540108a199d197e001bf0b99fc7ce4cfdf793f1e9cbca61d7881c721a54458c45b9918a0b311fd1750ab34bc56cfac7f37de5b7a85fef2e5d6d97dfcbf8d0d833042c8c7054a623fc478907dba5a899e71231e102670e8c97fcd2b88e86c18969c3fcee8e304b9843639166b38f8359697de67e7616d323156446072246492e06d6e35e456f5bc92200970bc5" + }, + { /* i=5080 cDividendBits=2615 cDivisorBits=858 */ + "54a6c16c3bcbef1c9d320a86743e671b2204d6dfff718ade769e1f80f5850f072f9e44cd36b1842ca8726ec4826a7c1053b91cd6cbf6b9d62d707bc9fc2ea58a090f21438b51acccd6936aa41f1bf9899d219a94b45d025c166bed4b4ff621ac8d2eb79e0853dc8a2cead88ded7400103a931a6cb2f388417ae44a0211823664a373640c4098f20fdc9c89825069491710e075264cdf0b7fdbfe7978af13e563085f4ec964dac56bb105f8ed1ea52c6a2d3c86ae1c95ffb84ebe4ca4c9b81e4de6623f5afa8538d45f5757b0df3cc687a104e97cca42d154521ac89f77586b1d86f476a6cd8ceba26e3fc11f4ff55bd39fe4a62b27a87831ec0e13bfa41af9fb4b6f228736918c5cd1857826444e8cba6edf2dff59c590836a2961c7e9ddcf978c473e40521482c11cc7ef6539f8eb0d4ee3eb45862d8443f572342ebaa6dc59b2433a8e4db3c1", + "03eb5070943d4eb5a3f3e1ddbf056e7c380f69dc83dd398a64db7dd632f44c94eead3cdaa34539cf4699efb4b34e7154bb0a834f4bfc410f04e740be3477ff461c62ac5a1b3e82cd7e18e82ce2d4da3d4bb611db9a1f0ad44fcb95f76a16ee2c015f6c9c7316e3e4d7588cf2", + "15996348a34d3798aed8340e01c83f2500b679c12e250926087ccd648eff53e7794414b95950f7e2282ef7a799a954ced41268f878692648d9b174a4a3aabe7067277bf82794927c27aefe3e9ee0d47e176f36da32386304cf1cd918b84a62e58ee489c2e2a26871f8442249b3efdc40a9b60f40d64bf9a390fe10215a025de6ffe0b017fcf5c6ca8aec3840a9f32adef00b752d800e2bd1d7737cfbea46b2875feb10321b16cc81ae83630a6ddba4f71feeb3c4a4b71810722c378adb81d9b3418960c8f70efeb118ac1ce7d4e46a14df5826a5f3f04e3f501b7a2f", + "01db193a39445a67318a0a613f8d12a3abb7a42a34bf77d602e11237521dc89c460e152da90f1dc40478e282f5c9ebeace3a6610501d53e4388cfdd4e2beb9dcb1b609dac8b5a4a98cb81cfb7692e4a4e6e67cee975198bf50cb6f94910a8888bec858f2f0d88fa6545a7f53" + }, + { /* i=5081 cDividendBits=2976 cDivisorBits=1844 */ + "b9982e70327ae2afdb087df068b8cd3d32dbcf61afdfe1cddb9bebb8909d160b45e547b7b12abaccdc40508050326b7f15a914378ad1eea03f1eb5bf8f4c625f116adca553498aed4d14dd0c5500afc6ae64ca5b05e314ec864f47aa8885fbfeef356519e2547d5a94af2d0936ca3b6d354536df6d5dacb7ac6d401623407077d460925c357e61d72a4c356c043c9cda0402726d9a31fc253d8637dd6071064b57d83e4a9b12d7a97e78f1cae6e99531c4528bcc01c821f465a32d7fe03c9cd5661818e5581eec87347a800c64c505c043d5ed15067cdbaab12e7ed8a218c2036e34c22ed8bc4ec28e9e9e8091e747f2cdd3113316ddc599587406dab98979c053d560c80147ee41179c7edd80b88b4344601a52418cf4a048a38f51c7c7965e6175565f21cf85d2d21afd3705908628d1ca2b2973d8a0e5091a9412ca8fe6225fb16f5e6f79a0314fb83d49e33f3c725ba1fca94b11c0008d01d3d117f018316e2c9c0b0f257084ec399d8d2c7ced39d1984e99", + "0ec4ff5007bab2d2dfffd7b70d14df2535a536546c988cc0b9a775c238f2c7220ec7481c9992ba5e25bb7f4a62afac9958e7af2ee0829b71dcb55e0b1e47b2bb782771064f884d23c09f625091e34c8aaf10cf47e05cd77fb06759b2a0c66fe8e192f40607a5120bbf6f42260dd2a8989044b8427d8dd9e97a7452ac519663fe2460feda64ae564e31f6ab9c3fcbb73bfca1eb5d819be5abf399194c38d87b0362233a2740e5aacd2be71d90015b83e8f4938dfaced0ff9e44c3e1eeddd8243924478bc91f255239646d29b6c65e2f18364f5a1d9c4f8b4acf83110fa9e7997737973316cd191f", + "0c90e84ec5e96daa4dab2056f42d800c9e25f29295892daecb173a59c31fa6ca35877d16e04dd37f49abfcbc04e5659fd08deef827496a3131fbd030dc4213fa09434d13537de992746f95c33ad5863de1b45c51c3d6481436c1345b845497b035c92f865c01198f8b844189946797ad296e6f0c59d647b5149ee49de825109f10c8f69c21e57eb333b39fe337f8", + "0436813438d37a919cc5fbec28c4c956797e4f6b5ef6d56128503a36779922bfcaa2220175369c6edd3bec4db6e337333b1170f3fd83977ecdee849f6d021518500e34c47e3185147615959b97ef867a3cdacb6a6a40be6af3bb2d62902adcdfd61b6b73a9c20874420879ea9d4e47bb1ecc24913edacedce696c68913b42bbb86ec1389157ee1dab3cbf272253de9777cba93377617071af7e545998df14b9dc67ddff2372c0ad8bb0f27fcf5029d823d78990e8b6483fa0dac7f4b4f2c0730a27bb41a6fb7d99bebd998bcc3030f1881ad970375bd30b3dcc5cc5536c94c4f9921b123054f91" + }, + { /* i=5082 cDividendBits=2987 cDivisorBits=32 */ + "0668e687ccf4b1ece2e4f3e874a35e550a2db61e0b472c26f7e196194bd98b3fb962efb4d9544f4d463930f51cf7439b6b5b53bc5bc9c0dbc36ef7299cbfd1ca90cd2a3dd5b2a234618f257d0380e541b36318151d0e317a9153f869cde033bead6ca43ead60ada7b2547653ef68eed0955502fca74f2552e5a28c4e33014d5b469edcd3afc883df227a02a67ca60e44e2ec02f134e26bbc2b2c938d1e84294305943ce76e639f38c9445758d61e6c33c9d87d79a5cde1a5a581b36f6f013528c029197af212a46cb4a7c64ac6deeb6d5475b246d9cdcca613ccc3ae2809839931b2835aff39d94c8e0aa8cfa39bc4aeba8cba229d015b5c761c2e3221804b973ae94d9952b80b37dcf4dfdfb688bff37b5ae9d50f4f85e2735333bb373b297f68afa6935a5f90d495bc9557e395e05b9046f40e94d3d3998a41d6c3769493b9107844238156051384ced765099650daa8d0babf5de3af9c19026f2a04fff9d817f425b911b106ee2cd5a91ae064850b19858777c174", + "15186203", + "4dc90afebd102530cdee0e747eb381a6ccdd0c5fdafd976f4323a7a03fde6e8bbb44309e626021d112e774aee9e7ba678d1bb5b79aa8b30727a380ed581ab429b21d2eb93e34eac7baf8c61897c238de5b5e5d4b3f291f3edb55152cd62d3cd10c5e64188e099f96ff9c55f43a3c9e2f204a3e55749babc10bbd5f0807f84859a5e95a0bd4f36653be2fd3dc7dbb79a16e11ea7ad41593509e1a68eb85a1704ab32b04f8a6a7a82338811ad2202c891e91e193cbed472dbae34cf4054b7ce16cd1ac6af95e25ce3a7746a26f11a8bd832c569a2d67c1a175092726369c6796d62082c4c461034fd7586189df8ef5dee8071ffc388f89a8c6347eda0648b1012ac7ad055859bff1bf0320055457e98b249d80015663f49a87fa9069d02ade0a240a09af931b8166f4b5396a46face94144042555a9d0517c964195df108d3d7454a27d1bfbe28a13859618aa66adb05ab0cb6bfeade9a4b4d938663bce1f7a98f2133e12d389bac52718b68dfa656511e812e", + "0458a1ea" + }, + { /* i=5083 cDividendBits=3997 cDivisorBits=2010 */ + "0837023235f86874393fc5fe6ed45051eefeeac4e580cf8e82ddbd801c1d0f67c06987c0248bcbe2a84395b82b22dc8457ea56aaa6a3db4b9c8ef5bffbadd65f75bed47ff4f2fd43d926a309afd7e3fc6a9cedb6640ce812016336968d6ab65aad5577da50ed6b9e4aba20f573dedee41b1680063cd9eea58a407b34940b4fac108f3d5ee4debe325a7724f4d27f5febe35ab58b9601487acede5f81a1d76d363d8b0785faa8ad1ce029dbbfef4dcc03e3df8195b0d6dbca573d698fe13012ad2052824c73ab888186800533f773e5f6548055220eb8b1251f831a0d5d1ab3070d9c26e550e2fc89b5f9ec2be48492aa2a3a7eb10aab24c821d21e04b279dbb6af5d8917d333fc38d7006ab9b1d02cebef4bd933fd740dec6b7222d48b69bfef6c68eb51ac5f1ca0d71242cd0dc0f56803c1cf8acee23632c84965833384622e56f4ab62de01f219c6ed29735c77a2955c80ea58c176c9611645ce68e9151c628ae934a7cbd1586b933150c224adc98ecf3d8c8174722850cc6af99978b5b8cdb12e2e4903c14459dd0ae33ab6425160bb8f11d26707fdf85dcb02eaabe84e1f256e1f30a49bde7ad3c09a3766f8e9050d70302f91f58e7b9f2c9cae331220d4df7439e1b656dbd9411bc3e933afd0778cf0358c05c042eff3d7c84d2c1a4749fa86b8decaf3f9b0c696ba9e48f6cf96833f6e70", + "02c09b5e369a2163ce6506057f9e4327b57bb49e39e1a6e78bb883152db0e247c8cb4cb385e170c62f8b3ee4d6cb89d42f48805c5d37186bdff9d32f927eadb51384f29b2e437057075b22a6d74d9a797cd03b4cd1d92600ec1b1d5ca1ed8afd6bbdaaf61870e3868539cade24aecb004187b391a46156c3b2db170f06326ff3125a7bc5ee5653c06fb235c604fcb2a74c2a60b44bb30e268921be7085ed54502689db48e0f464bfa183cfc8fe040e10c4fbd4d2ab2dc02e44e58637078b0eb6ddcb150f99eb50a84f140a0f3d61caa04c20d57c38302288f1066497dac5810b95ef9568d5d2cc0ac5cd01b899b9277d0123a003c66a9b3d072a903c", + "02fc125adfb956fd3b7210f2d66dcaabd198e4bb0922a5082d1136e72bfcc51b45324907273692da4a4f45cfdda8817319b6a5147b9ceb963d18af37c484d4444d6b14c5bf5f833d829bb4a842c066d5aaec323ef9e533269ad0013346ea61595b3586f3139e4be0af840f6a92424be842d5c8780b6658d6938803a90e1cbff40e8fc92839111d4ec85588c53403912e39e7b94aa640b9cc4510aa4a518ade745c7b4aad6780d5053c34fc5591635ed5ca1de0beb6641c91993713c30da9a0cbd7e775caebc8ad35a5f535b9f351b0218e15b905e5b28c9f435886ad94cad0ea787f879e03a71475b0b88393d2585612c08ad7ec3e833e5ef1", + "14905f84b9fd2f86e7f1ff94a41a569427a98003e86a207eab43b5261376c3635ee68204d6041727711a22e2711d3d196c9ce51389d28e80102d023e475dc4889bf0c18d69469db78f7ce20e190701744e21d26b0861aa42ff086179fdafb31fe17934b82cb436ea9470ef06412b6c4e451c9e4aa1a3d6b340f560cf643ba5c0972f96b872e96ce6ebee2f9877761be7fba029d988b43188829817d899b4ca2b1cec92e5f0f5210b60c343c59b8948907fe8d5ccbb19d3c451dc568fbb35cdb134b4aadaf2a35e5ceb7ac67baa5a8716fb9a8b96d4ee9948b16ec5419f7b145a0776f6e83fa175a966924154be86a9e294e211127d7fdb80af9df4" + }, + { /* i=5084 cDividendBits=2688 cDivisorBits=1890 */ + "2ee0e64adc905a49e88f4ea68b297fb78e541033fea3e3a48e1c0e217675ba5a54fd364d508b871be08203d66f8284107239600fe20d2a1aae7d5b2d7bd29cc9a4cac8324545fff381218c17ffa7b01f3a62cb189b878f0540892e9827acbb8c2bbcd7de25a73701e6005ea97cf347865cb85a8ca50f0829afef5b6380d3b3fd22f3f2bc901d11b1177d24a3e4e6234c9d67dd13b47d54cba36233e45aff64526b4b175d50847df40dc52766326b70c66edae0465f9e31dfdc4288ab53822356f2ba8e4676d4cec58c240550d92d4919d12ee25c6358a55d9df52726aad425164628239fa24d0bdb7ebcedc3670a4977d39d96fd54012a6baac57794758f4ac284bc991f38013d080e093ffe06b7bc71504e85f6f8a82d3789b78dbadc3ef8f1d3659e4ccb4287a31a505fc9f020e148acf9007f94bb7bfe29f1a6748fe24737a45d16e3e6c9bd12f340985a959a89e8", + "018c843f167ed27611b361230360423f6aa045931d9dcf3c93cc611b4dc0135b52ce0e936ab29f762b39a86a866ab6c21aefba95333a07b8d1c0693362f966389c2c680a3c5bf42d3ff5fb1a2764ae69a2356affdc554a7e4f9b85ca0196d2a4cbcaa7a7ba915f5534aab0eec83c720f94e21cf4800edad6422e7e9b23a1a372a6039ba926c63b4ba59b83ee5261c5ed968f1fa35a3d4c9129cfccd81191ba2bfa7136e05664a8ce0a2c9937098232f5a1c3be16639420b29a7db19a64f3298081f2bcc88cff70d465b819fedb096ee469627c44e2f07cfa9d8dee3f4334dc3a1ca657f261b7835db75cea6313", + "1e440cc3cc0a033f4fe7effe5492bdfbe10d1080fc1d0245198858d6402c5b105ebcd2ec1f8e190456bedb9439dbe56898c8994de279bd25da5ecd647beca5e6ce2f24a8b0c411f1a15ef7c62c9f48628eed62d584958c1aef3af66e2d31f071259dfc99", + "bf53703b7bd8b4e5597d3b10eac2535eaf9da8c47a4bd149847615742d449bf3025188ee1e5ea68bc3dd94fff9621a280e27bcfda58d60737e4bb46d3dc029d17bbf68df4cb4ad7ef90119dc00047d929ef02db1fcafefd3746ad1647f4e56d5752615cc82aff254513bf686f01a168b37e9d6ea7b6102db9dbef0c327b6f4016531139a51d0feba4c4510f3f4eb43d2b1177f96dac7c5dfa8c84a80077fd80f852ca7d14ee6dcd7234f4120b07b8249100aaf46d6178e00fe5f047119bb112a22b58b8df860efe5b49994f009adf70896adc992ae2bf2c0058d2f7413d1a878af126deda0aed9d2579f8d" + }, + { /* i=5085 cDividendBits=1694 cDivisorBits=1533 */ + "01d92ca9b4824cd5ac874581f7ad3cde5ad0b03d6881de9c936385163039bae49ba68e27621e250994467d0ff5e217c172bf54c823dc4abe672305011164d52909afce35e87e0a1e20466e830fd89bca171f216be5d91ab91504dfcde3b03d218acbcf5e77439eb8302c099124efa0f6c01738b87408ab727c3c22cfbd8edf1b8b9049c8f6547fa0c443f59351bfdfb58152ccca2a08dcf746c6b0e3d66f370b717ab501856c57c253b8ebd00f1683acf5aba07036e4a8d78186f73c78af1ad921a889551114bb54e906f3057ac0e3e7a88c694c", + "1af3df245cf0ffc50b74532b488dd8aa4c4f8c1dc76a6852ceaa24698fcb80deaa8039eef58cdc754b49581eb2981e7c2ab662aef66d1f0ff5a4c6921781fca580dbfc0260658a44e148b514aa5b897c5b5a08aa160f3e43f0a58d88ac6f08202d878d1f6fc376ef5160819132ced9b2634b4c937d7df04e3f83232f142bbd85e4059d81de8ec27a17aa08ee211392b8a9d1a87827d9a6624145b694b7570370064049238de8f4d1f394149aa52cf2cae03b2e885ada1f60b74d6a4822d21329", + "118e47ec505c803631bf0c48cbe08511ded9ada2", + "0288bfe6617b6e832df7b4a41f5fb17b12aed1a6b8b2899d7e4d8a7f1537531bd2c95b8ebe11bddb26d53dbb4d6d709538327b01190d00dbd7a2bf6adf6338232ac5706335b63bc7d65953414f66784e3c16920e1248d60b20c0ec51a5a3c5a5a7ed5ec6677058d9de82322d2ce3ce0e3f7d505ea2df3ad7e9a941369b7031c0d162f9cbfe17a8c408fa31d652b0ddf3e4ac3679ddb6960f39b41c845ccf3a167377f2561495996e796c9bab7e34641a9e2edce72c3153bccad19f50dce8945a" + }, + { /* i=5086 cDividendBits=2622 cDivisorBits=904 */ + "29d13a51eb908431c0580e99e5f8aeffab908269b586fad21aba07a5b53190f89ab804c5180a0960364bc6cc9b3fb26cffe10e32f4a9384041b48137e25359ed4cd9c56d164b358e11bb1c0838a31d76acb87b716295dafbc0e0afa6a48150ecd8bccf23259fd2db107e9863ce1fe2a58d157f516e6f376832169167c4c69d468d2b865addb9685d84ffe9985e5a597a74d2f4e6b775b45dcf05473308566f480d9c8d78dfb69d44261c0b5cf3afebacd0f7fd5f384faa4656ef7476c5f9dcfeb77db28c441c19ecb581c2c90d640745237ca4ce22f41decd7cd00608ac594987d1ab4c6cd439fd7531d658d8893a7a07560ffae650a7f126b68a6a7f695a2eb3b3d2c6fbaabbc1bdf87969271ee0cc65d8206a5043018cdb9738179a2ac9a87a378b5d10b865c9845d61278ae37f6833c079d5ead61bc211225b66962c4ebe6b9072ae12c2403c0", + "71a1133af6ba0a3a9411ad52f7b98794e8ce4bf90ca53ebad05abb6e1a07ccc3dae5ec9a1b0aaec6dbd63e973997eb33110c27191dc70054ff7f3a0855b22e644b65383eefd3133a21bbda4c1b02ee94e5376816e2f141d5891e4df6b8cdd686310d5245882bc5e6b218e9fcc157e89321", + "5e3641f8888ba86ab2dd018b36771b3524edc1f8283a814075c5a89c4e1115849634be768e23c73baee7bbfac0eeb6bb90f438b28a9b884ed81a618bf1e3fd012f13cf898f4bbb474fc697785f8fce9b7096554e69ca7d1e89248477259eb7f9dce246e4293e5b46e971172b5d22f5cc5c486d84bf6381d8266f16db7ea315b68faefe6916dbee6289c3f048a5a6acfcb0d3392442baf5b9a52e3bfde22546a3830572a54f4b97e695831a2e5782baef683de7d52dc3677503cb918dbabf7a51de23dcedc6644b792ec0b736906771435d4c88d5355f39", + "5cfb8d3a01a42c6fa5803f3ae555148754c40eab585bd18656e961549ad22f9242588e896a9f9e8a0227dbb60fa7322ee2043ee643e0408865edd32580436145d0a96e1adf184d1ab5b4123895011093002a5d21e6393b3b3b5d488a07e9711e0f0cc3779b087cebe250bd791c5fed0267" + }, + { /* i=5087 cDividendBits=3369 cDivisorBits=641 */ + "01eebe5a7489f6ba3ac7736389181193010d393c294a1825102cf5d3ebc3a97975ff45aaf031bcbbdb933c56e7f6e43da97eeb6459ac0e34ea674cf8c02d91ad2c96bcdf78782bf0f60be33897905b46760256687f4c6342c3b36d8bbd17c6fa1c1be46336175b8af9fad5f5eb662a95bbb99a547f562c84e356f6e9f8222275d679b996e9d2da2612a60781a2bb6b9d83d6728bb801809f88109c4b0e201a6f5db98aaa46ba0114c84df233218a7b938e25686446ceac15bdc965173ba19f9ad8cb38481749a42aa8d5770d60d17eee6c309e00c055f7217521f10472fd0092d11a13910546af4e69950e2219c0da68e76e6f6181e7208aea59e02de02d3d17433368c5d68347e6eaf32ea19fcd00998c1e27e9e5537c84bf2e2ee31fcdb8dc7fca6fbff2fb1560a8a65cd3fb8ccbeca3713b93df52e27567928a7b2183b885d7b965a7efdda47aec7e9ada810e91ce22d4b4ad9f503e52848ae9eef58b63001c58c2d552f91846b334ddf2df98194ebf2ecff8695b5aeb0d37ec84b0d1639bc84118c32162abd163c9a4d0294e28f2ddd6d6c31ca398942a42d2d0501bdd1ba82dd0402dc7", + "850e306759f2b1fc0b0bb83bc1b58259bf28fe3113de5220bfde71bbf44c0463b0488547e849ec329c6f992e38d0b725f22a91cc47c3a7b0bb9e43a1095c9547ea037330e0f757e68636a7d89ff328e0", + "03b7e445468e155188eb773d22d815148049c3320871ef06335aeae5be4a65926e16f92d54e5d142e37f71b649f65cf67d2ec879c18fb2917fbf2f30f2ec5e5b783e9e4f2826fc55d3d2ac96f24a2b4a916d35254db1cdd4d7db535224cefb48c89c0056f1dce02e269b1a87498792ef39d470e050e102aef346aa820d9095d4f15f7c4e635bb49a50a6433db9184b05c97a64938cebd0bd22aff974f4c97575f87e3dbf09ce449a508c8a1577c884a0bf79020874a233eb1e5cc6b43abedd49c3a50ee0f085e7324e9bb29b6c086bdc6fdb3fbcc4e87db089d9a7ebe7ed29aafd2085a552a1d00978884fb6ae6c5d7e1e4057442a4826cc0f2d7ea32c87cfd5cf8343ddaa517181ae92a1ef03cbb106b5f25289da57b87703fccd56c6a6a30f65c1518ac3e631e73e207142bc974af540a5bb1aee270f98c343267c603c296de7a0924af2f7e2cea90b43f8589511d6d4915ed71d90", + "18d5528f1e547b63173e496a0d9f79a4a8953a5d9b6009175398e597554bf760e5a88ddc0317c6f4085e2e2a79382052f15a6cd41a1bfc7760e9bbb103017aef9a852ec6e999dc30a9dc6f1bb7b7cfc7" + }, + { /* i=5088 cDividendBits=3444 cDivisorBits=2808 */ + "0ea529abc179203daa9ea9bdb34f5c4eb4c2fd18cca1b4101ca9a5af9d8fb66c4320126940b6520c8ebf69c92a137dca978d160c9b5d066e2ff6f93123e6600728017a3166de50aa7b4d83cdfb46fd369e2412fcfec27625305a6a882aed10a70e0e20edb4161e5322c787ae308b4848cb8a32419403b501bcefa3b1eb5cb87d85221b0461075e39ead3b1a55a85f99a1eb5e06ff5105a55b9a5ea89ebcfa2b3e96bc087f1ee681b5bc04ddd559df7ff807f8908bfbca9e3d1f32bac889376c06cdffbbc5f6b605459a2c03835cae9e1b1bbce2a8c9ec778c257bcbf1fa7966905d5b379f8667c431efd8c9cf02133e724c75ebd492fdff63df05e89d801f6c6c3205c581e26e0224283556938c4a70645ba99e5a3a11b2f039392c54b086986e1271d29b289c013a613b8af8fec51a5878678833b2f3be25d09280b6c6b0047ac63cc6efc3061569873fff7570872ee844c669e729e96f87c63b79a099b174b4fde9e835d02e22387bdfa26ca5465d59f4bd768eeec515bb80b3c9c5767159a9feec7bbc2f0f7f04868b509e79243a828f24df84ad00bcd28463e5d5dea5dc064476f138fa5f75b5e050b5a43dc10", + "1dacad696dd78780044d4cdd20184ae5c0cc0e37a98c78d5a9a3b92d3d5b30d67139344878245b7318f84c54f1b309b42741587cb782ea7215264bbb67d2d1ca99e49196ac4e0d1fe061e4ab1b6adb6d3223d7790052a1e04b2c5014b13a6e3f1358ac7f536e703261b329385298af38aaab414dd517473d0bc0beafb722f0f5cc8bac0efd76058265336eaea8f898fa42eea8959918b3f59992417b0cf726b08f67ab571774c489b8728908cb4e48415eba55b9b3fdf028c378c0f4152f7e86cdc212418433aa2404f3b8b5683db098eb094929e91c594ef795ac4a6ebc47551cb36fb058a3e3685ba6f1c236f54d02c3b361c9593fbde8a883b0e3d7be977d56ebabe39ab49d1767cbe715941e935059bfeb9f7734f2764db31cc4f0966e2bbeb75227fb2b72f263cf32dc84f654c1a22ed4b76fd79db188a2c0f8b44bc772c82ce9bdaa2336de7f2560251f3aec73235fc28320f645443514b10ff8cf42", + "7e57c348781fde736fcf13f3a046933bab174579e75b04cba6c89b450b4688b9e6bb226748f38ff237f09c3046d2825ef3a1db4980d9a468bd7be468b26c558c75e6fe834f08d5192b4662106c7a4dfa", + "1344895bfb66562d644cf54397488e76e43e94ae5bf969d9f4b066adef30e5f55ff82e0bafd7b57320a7a586828679f6df2eedcdb213678d08772de9ea16ea35534b469ce388febced27de738e72ea272b3a738a3f3255e3d70324c9c72491e7a156af855bdb4adde3c9edb1500120e3ad0174cf38761157422d5860ae912f3c6459b3a0b2e84146e40675e620e4830a38a3ce2005c2a0d57b72767fc539ce76417058be945f250985b9a255dd36d3a656d07aa489efb3246b6ccaca1f6f74b215e2b3b3c8da73974f33d7ced024af498e45ed547224e29625e9f479d1c2c4cc75b83b0cec8bd73ab0e1fe4ba7577990324b63048180094bfd2da07a0ee43ee3408dccc087ff25a78f28f4ca0a80f643c386b97ff4fb9249401bbaea4b58ebdb1d175839e9bcc733c9aa7c93516ffaa353c578d0a5ec51fb1ba50fdddae8ae8a672cf467dc87553964cb6b3babd677aa2d38eb1e5f074f383fc2314d7e9b9c" + }, + { /* i=5089 cDividendBits=320 cDivisorBits=235 */ + "dd0d340318828df85b1c04e56363a07d8c6cb6f9ba1eff97debaa8b37bb1dc930c42a2e0bb7cc24a", + "05cb303814cc905cc74052088a6a0b40c50822049321d2159a89be16e0b3", + "26275c668c6e148ac658cc", + "02cc42e40727a6e95678bcd91a2b9239d08487e281958cb050f71b922ba6" + }, + { /* i=5090 cDividendBits=509 cDivisorBits=382 */ + "1e277a92a88ffb82daa15aec316d5ee3d11f3081e5cc35d8a471d31ec7c921cb8d2cae75c8ac7e649fb813434c478d78aafcfe74ae1d7d70dba728a52f568623", + "0576d2d0f3268fc075dc063d507ca8f5ceacaf9485ec099764e5b08fd337adf7f09054500ace3e78b792212edb586330", + "0584bfc1c96c20ad3bdf5a303b3cc4044b", + "01be7a90997914e8dbae1a5c524449fc515e1289a0230a98a1778ee04497b116c27e7c290c6cab15993231825a24b713" + }, + { /* i=5091 cDividendBits=149 cDivisorBits=66 */ + "1c0b6045bf37da731b13eda481f270790600ee", + "0203f8d50a03d625a5", + "0dea0de5286aed51ccf30b", + "a3c74d0dd49ac3d7" + }, + { /* i=5092 cDividendBits=1499 cDivisorBits=1428 */ + "01e0260156d12944a9caa193f6f0c0907f0822b9c8fc69bcc6d7a135920ecbe2c0b5c528f294209d41a6f6f6da84716aa39c59b4d2dce9576f8c719929a05b1f3a8f1bf6b373d0aee1520a93e569af2f6ba683ad7d8d2fc9bd48719fe3b9bb1d990af0f103dd14c5534e5f917d413c601f33602f7ddaa4169929f6aca80c424a045d6a8eb88db1b320a41a41a2cac7b38ea2ff1aedae65481c20a69b7355e0aa378eae383c2e5ef4195f647ab3fe36bf38ed42d01288af5809d87574", + "01c0a9f6242d7068d568b2eaf32f0918c8aad97550c1302db8e1440d3d16a2f613019f24c7ffb638dfd9126aea8c32e77bac8c1c79d4598b24a1bbed2e93a0844d62a9370703abab7fc9b1c6e7e5607c611e8018f4a88a130f222697ce9c5bedfe1ba87def87879b10a974152881f6d31afef7973ea17f9318260c5ae020188c6f8c80352f77e0b9bbf5031838c1f71407345b0d8e1494139e158dff81c7e79747f9acc1c351426c48c026d9fdcc328cd8956e", + "0111f6ec861a489f51ef", + "1c5687f6e83810f30c1e9851d8c2898ddf485c77409051d415fbc7d8ff84d4b1a0be6384a12710f95d01157bb93dc49dafdf08bd6b0c881eafde837f4a19835106648cf9214c3584e3e186c3f5a3f19334db5aabb40a1b3060270f66ee5863323d9b03face64b7a60fe8f4aa2c187f5e796603c7437c7572e978089e81159fcd0e7a61bd514adfe8051e5f9cb81113540118e086371884a706c47da382014d24b126d6502a18d53249161459e7de450b25c2" + }, + { /* i=5093 cDividendBits=3582 cDivisorBits=3072 */ + "17567c63a5107773082d4fa274138823e470878a45124409a1fee1a6e578d9d4c006b2212d78f8b4800a24522ed4c1376c9d3bac2d5436b16b3161c5f3c7735b29246bc3c9168ba03e8e7ed4f90e2707151133340e53880baa3d81746a0a6d74945565594155fdcc629d0c3c0cde9898e4777e3846abadfa29f39eb5ad90813ba2f4a45988540a8e7d6a712e8c201512ce52b88d2fb9ff03682936d04bb5fe76aa0bde0bebb4ef6ad0d82e2f4ceb45046029f40e843c9520b4ecabb3850b12b1a1407b423182c7a8cb6d79f0a5b80e8f053965be9a1489b9338cc7d4e6511b165725d6f3a0e44cbc33e4eb6578b6546988a2ddfe72117a5426a99478052e334c33c6cd572887ac74c60753adb223b2178fbf676821ace488f0d6c31e46c6c02d195ade6ae45283c5f4557dba80bef02b027633fa9a621b201f84a50e8bc323c79f9972916cdf799a1e202c2912a12a1c1440cafca5d8d4fc81dfc3f7a8476d1071e12a081a127b28707bc2e3a795d46c528fb2b53b1232471b992bd29f423b1d6133f8f91f4e107f1f40223f6fe926c95b7f5c47b36f343a562e7d493bc8f84867332ac75de98dcea57927e672a9233a0bc7a151027ff16942e2390acac20838", + "f326e3f6b3de20a3ff669d0f7ad13351b6c1246419126d978dbf7d3845bf4177ba1bb95cc84c1fc1b67156a13d763367edb23b1d4dc2be38e9a679727dd7dced8542f95facd6f5cb596475dcb18f557766aa10fe885acc891f5cc5e7e30be1d83300112e207c70e812b136f88367a7e1ec031a71b823936c3bd6f4adf71dfbb7b7eef998ac4afd41527e06daaf1700a85cd6ec8271269538b9ffe1e06dc2fe668c31e67b8388b7de118eef79ac9543c35f3d7c56a7723d326a0384204ddb2ccb50e9c7cdac620b169eea7bdfc7b3c938414cede75f74dca1d240d6b7f6ca605e8c0ee8bcee737acddb7180c4cd0fdfc90483074a4a61932061d86c6afe8aed522d16c38f50ff2b92813fda8b49cb2883ee9c7712430ea3215906224ff7d3610f176f907ccb4983db69f88a95ed369c152ba7b0d3a16391d83003f376de9826d72fd2e1873b6fccb599335c87125272750cdf568613606d330a5ff4dcb524eb1b8bbf579a796fb1c78857fa31bb47abe0e80f5ac68e54efdad366d8ebde5ff16c", + "18922d19f92361dca514f9c3ec4f33970adad06158bb122625dab034220b02f9d590cadca9627a8206a5db650172a259a40d85967135cafe8648a8106d7e648f", + "ba338c12c85da29e347b99aca3137d4e4fc7a10f8b645d3d588c1f22fd9e581d0a0b1bdc2b8e92358632dc4560ed81cefb343d39a87d837a85253745e524038a9b6f4e40f4861211d6681f53dec41ff2589a2b85210740f137d8103b8e47862794186139fa10d2024c3eb42ef182c8dc7cf0255bb70e07c2af3af8f8dc3cdbc49241572951490ffd4172f9431c043b64e0591c58bf2e4e4962e97cd65bf36182391e665b8b46da474b55735fb9b9ba06cb29ab643c2fa3b4f91a134f33ed231f77cd1b687a5e8920487c17b1b9afc47df840f0ff22b2b480b2b79dce6cfa661e187ee18f87d1996d0f1b3ce439d7f6cf2f3db33536de957836cb556ebe52cf611980134a7deed51bf4d2b4b47b6062ca983e1d6d7d7a7e85c6d1ed6edeaca2e2667bee806350286b2b3169db4afe30def77dfee3ad6a2f042538c911a724ac0c6a3f47626b50d816e0c07b8c2b61039cc4087ece7f75ee1ed53dc605188c826d6f54e98ccfe0103a43be6051935590b40c2cf5caed13c76e831ea6a849b3fce4" + }, + { /* i=5094 cDividendBits=1661 cDivisorBits=1621 */ + "1a0484bd3a214901c5d57453bb7458e449355bd1a4163eefc26b7612e8bb0684d683cdddf671589713ba7dffd83ce925c2262565aa08cb4d451f820dd4d2c41b159fbc9398aeddc45a5c96c7fee06335a890cad0eef6477ddb69f232a261e767b8dc5e80fb54f0ad423208bd62c2f183db02c3a1700454522a0672abef939e506019eaa9df776f0b9a7874b2039d5f0e8aaa2be7b176fc2f7139627215658212d1a584462bb3231198ca5373487f2f3c0e1e503ea5ae6ffa96a9c0a832654ff1338023d32a0cebe97988b5402374db75", + "0d3ae3ae47fbe02777f9d5bfaf25d36810389cf9c1509d2ba6e31329de4f50bd74fc1ba13c6807e7633ebcda94030a1edb66ec491e52fd988b7660655d5465ff6a107da5d906a6912dc18c32674def6eb23eb4cbed498e58e519ca99371cfd4eb876076be8c393857ed81a4e9b49ab4c81c6ec5cf2c3c3c5008b328ed595d41dc3f35b2d85702af56ea58cfe5b711d59680b9bd965ffe4c008a75316cd77a48408df87c9907496d63fbccfe93b21e00d05aaa05b6a59fc00231e98fb886a388549c51259659c1cc8d78e18", + "01f7706cb4ad", + "0b7c9c81859b32288967d8aea9eabd9efe479b83c9e0c39f15550031b4f9276d3cb205a831539421efc92da320be021524ecd5d988276467f390fbe2096d389f6c647fbf556bb1b0b16ce6d44ae24f8fb168f33b3fbd7ce9a2501eb47dd9ef0500532b5383b86fdb7d8f26338aa0e18712a3845779a763eedae9492de5141afb5ee4a5aa8637f50f01cb3320680c03e1b76d9075d90cb97b286b9e101133ebf43b4a42ab9738ddcdba93bff6fca8901b457af58d2536795987909fdf85e5846721efee8a8ebe5267c0f53d" + }, + { /* i=5095 cDividendBits=895 cDivisorBits=610 */ + "4bf4703eb484e8e2bcdea735dbc6d1e775376832228ffc372e74cc1a469ff5bebe2fc66e9d74cad23880d5e94aa68558f6e5aa197a3bd804d770854164a254da4b6d6ba96251103ae7c5afa46966ad7a7d8eb4de13cc340030286cd9dae806823386cb4b927ba014f0dc535222b10615", + "0284e11dd7d42c452270c6384a0175ae44158ab5b594cacb60dee013b857d1503f29555def3d1dc2b1229f47cb77beb06964e36639fbbb2ef5cf1bb4affe49f605529c6238dbcec80cba192828", + "1e26ed1ffc5e29ed1c23617247a989f83b5cda87be0ad33e8258078311fc3d3a39ab169c", + "01ae6edd02eff277cbe4974d602fa1d5c3f2333186af04f19c53eb5277e7948cf570519c229584f7d85266896545478aa7bfe7536afe9d32934beb41c0800c5a33a5b328c06c14c9c3d7311db5" + }, + { /* i=5096 cDividendBits=613 cDivisorBits=365 */ + "0492a9867a3d3072dde7d165eb8013a382ac64c30110282d66758a32559dc2589312c889d3a44dd99ca539a9c293af532830644912d3086befcd6da11f8765fd84c31f7a31f702fd0f7c293ce7", + "0f0f797220fcd091ba71c3605da97a741c43115aa6323a952e555adf882900e6dce527f3499a991cdb7b4c5adaf7", + "4dbb1cc7a3d13fd8ec926dd74e3d1cc4c0e335c0bfa971a2197495b16295bd", + "06558e1c3eca1d4e32ab04092b7d6934b3ebfc9b86bfe328d395daa72ee969fe2f03a61350518fbfc5a7a215d18c" + }, + { /* i=5097 cDividendBits=118 cDivisorBits=39 */ + "20d0fd4d7593dac0d17ce946c5c13a", + "1604a86d09", + "017d8c2f8e17d21f038909", + "159c651ae9" + }, + { /* i=5098 cDividendBits=2837 cDivisorBits=1032 */ + "0a6b9355ebc0f3ab734fa8bbe352df7a9cd513af25ff1a36489b28400dfe1f5e8f6948cb1e7961415e0bffc18c2c83fdb57ed9a00c064dd20e1003f83e8e147b7a72fb5817559c498cc44f9b0ee828ea943608e93b5e6929d3067b0060ca9e69f4c04a160fb43d905de78989aa64e08a0424bc4739b071defc952ac59435e9147ad00f4f6defa2ce328c2851156c41434f1e63554af9d7a8793617554e446c98c3371bcf7637b925af3d254ff9177a8aef55479737db9b679ef8082c0f0836e41e270a58178e6deb9d2fc3e10c09105e607fbb8755c666ccbea9ca4e0294cacd630396afd679450298b63d310aae1bdfade129e8c978315c51efab2f9227bee52361db1496631f009dbaaef2e546e64ea59b300675d8d1c35d380a7b0b0a8054661969cd3c4a6fe5912b2d2c66f6b1d9d87cea00b942437279cc458da794e88afaafca2e7c808c74a8d6f1d7cb6221812e7a5da72f65565979c2944c22185670ff31b2", + "9a32ea8edd2f19d7c9ec630213c1a76e1e3bf705d323cfae3ec0e18c41280c8e190874f66d78cca5c6bbfbc80d0a6de83d7972b13ff205c60badcdcb10b7c21ab08856bf5a57fcea1531e4d8f3f4ccba3e08d97f8a75c3195cd8fec26e8f976426e59519e915a1fbeed5a6d27a92129f4c5009dc8d91bc41c3cde71d5fbd90adcd", + "114cb10c9c35b9ba1c1067656d015e8779a0fe2aba670bbf1ad9c53ffe529c454227413f8f7b2d61bd85e010013e97d9d91690016323df5602464ad5ffd4b816e5f3213666edfea9f2b88c1ec90585fb16b7711e95776bc77abb05762d752e074639106f04bd55be3e5ccbc9c13fbc301c26a7473112ff426e1618d96a9685799381a7e496b00012cb8d7dc5d479d8c39a3c9392c09970796869418fe56ecfacc94b552718193008a2a438c5d2b910c4b9a0c293ec06075a3650c537206e7db8471934fe06ea0a2fe645b4ab434561072204d4335aedf15a5ebfccad363b79ef5365", + "4857cabf0baaa270e36e8e09e706d951d5c82b4b9c9a68b3df7ee4916a6be92dc7749701ec7aac78364104bf229b3ca1790c8de084898c589a9ea49ad68bba2c428b912fe3fd16c4f239d5f72fcd24ae876cf24114873f1fd38932010258e0fe0a03c7368660dd03934868ddd9bcf0030797dbc7f0dfb48ea66fe7cea3972e28d1" + }, + { /* i=5099 cDividendBits=2801 cDivisorBits=1790 */ + "2ad5e8e75eb9fe575f56db92894c935592fc552befbf4ebe3f5a2cd29c83dfb76466333ee5ff99a5a7e7d450e0fff8269db74b106006ef1dc399962ec0248602e26bd47717df2c3a7a75a08428e5084b02c4dc41fd89c2fa1481db455bd03ef3eea0e5fd1d7b9fc5ad783cfe649f07ed08b446c64e4dba251b6f8ac71340b38ea8c101b2b91292359ed0d92930e4c464a38db0144e7aa8ceff5e65a9826ce48bdf99dc86668f1976f289d65652df985a495fb079b1687918ba2655b4c29e7a50e81b4dd87f5f905b0cab3a95cccc0e3f05705f36ba1c367b4292f7a1c459b33d8b1bec29942dbb514b5aa06dfcdbf5ae434af5bdb6de921c3b67a1b6c71cd834fb345b6c3ae88663b4528a393d44a1aa1f03987025f33623ed3c1edadc935548e34a4d2fb939813571aa0426cb18b2f9603051b28959e25d96d2027a5ebb3783d29e8d791f0c265c4d36a64d36235af2a4df58e2c9cf62d99340c27a1445", + "046b4be5fb4e364c429f884835326f6bc0ccceb1f9cdb57271ad6003f5a73b3d25860cbbd54edfc666cd7f8eb2dd28d9350dc71d98366d9d2d549330f5a2ca270c53952f5eb88bd2ec492480ca825813c3f1f5beac3d9e53283f9a10dfa80c172eb98aa7d81193c165423c8c974fc1749eec7d19dd29b117b1126fab1749aa87637be7c67e332d3edb7b6d8afa0b23c2e5b36e716b18cd51b7c59ef17dc8660964b60b5f5aac680371e3baa5c2dfb9c469d243c236655978004acd1ca4ef19d729c3b500ba554b9187b6602d3fb6e1975cb8da76aa6c3f5a73486b71511ccc82", + "09b1771afbc56b1cbe5afdd8af2c9802068423904c21cc29ff4af11dcdefe97b0c1b1f0998caa23c1f7f08406eee88c02531efe1d8b71f4d784c283e0578f1fdc6646155fc88672b980956e00feb474099f4cd67b8063af5489a471121d7e0219e051da13df7a4f97c43fcc1fb321e1b0c90100c5159b0e78c6beef0c38e8f", + "01d4e6e0c887f3e87eedf4ec2167a968ea5a46eb5b5ba67225508002303b07c9688048aebe3349272654259fec5fb96ccc8f517da871c96b1b827c51a361cfd26a5d3b3ec28709fbcef99b65746b62af2ea8fa9bfacf1f3a372b9053325cec2ef18f8f9b6c79a9a86149c39bc14835c786bac41f49898df045b6856adeb39309a5afca620599cefa80a6d6db0b178b6d132a7014689e427b753f3fb91d180f33453ed008b6246c187526d963ebd41da22de3846809b5a1ea8e5e3d05389fb52be47ec68997e03b03d03e5e5232df358c1d04367304e0218927187470d2edbba7" + }, + { /* i=5100 cDividendBits=1155 cDivisorBits=880 */ + "02248c2c336d906fb46d93ca41084f610a719bbd0c11c940ea2163397f02b7a55b10f7e14d47cd0e3ba859c98a93bc5dd35ef1f670b4a8ea415e5ce9949e1b55fba099ef647d0a5cf0865ed3c9dbe066741596124e889e8b5629011653c7ea9de5b257bc4d01e047057c24d3e10d4caada8c6233b6315fb2f4bd8ac519cc92365ed1d81b6809ea44abcc63fe74ef01648f", + "0e63d29b51639a1e73c366bcdde17c8fc0af998eb977b838b085a84a0ffa890c65538b1a42b42aa44620f51e4c2ec29af3bae12c2f470ec984016c97f2426f35f92ccaa40c4f89654f686b31ac5d197dc5230f51e43b55ea6815805311fbae154723fe0a5feed9e1a1364f0a96a9", + "261ec77a32e0e97296aa69f22ce57a3a1680bc8e729b9a6ad7b80ec7cb0b92758d4a59", + "0913d9aaf0a4683861d894a00765f1f31784c9ec2e676af7e51e04b27c70320b934446e9e9595be3030f42cbfbe16991d91df558da933e489c24a16925dd2a11cbc904c6dee603339f4532e0390661fb0424f49c0745c16d71e2aac5913eafbf985d4587db93d7c9b0a82cb129ce" + }, + { /* i=5101 cDividendBits=3704 cDivisorBits=2008 */ + "3e649b9bd3c04e0fd0c59574e7ec76ac98552fe0378da0e0677644295d814b681aa98c18d0afdf2233768e00c0a51d2149142e8133579d6e023a1b386e38eb14c2687a7efad0b4364295ffa1d1dbcdba479c58d12c4813050925d5fa065fa0a94b9f3b352ef66c3129af51a80751230e9efe3a626a30fe61aeca393e241636ff98ff3043f71c17a1de145238e040189281788dd7ba65c4d0ca70ebe21dedb9a504572b0df1fb99d3e3b0c92136b32c5b709f87dda8bffed8f60c51b8ce552a49fcde23dc8d29dbc3c5fbc7282be9091e3e51b53a71998c82b7c504c2b0cdc3920b6377c097c6ab48256f6ee155068045d0fc66e727d2bb96828bbba6b88f7abd7848fa5424b3435808877895288f438f49d2e644cb454b8c18ad5749f4ca0b3d3a072342062d35c05efb54362eedd3ec170357ee354116dcd41b5376f9375defb64d0efcfd5bc38d8a3beae519b2d7bad72989b261599ac2c70e580f66062bf10c5ead9ab8c323481e9becfcd8e367de409102314a5c0293c2b1d59efba7834e7f63c2eb84874fafe4f560ad8e65410f408fb10fd58042915d8b67fff5ce145df59bb70741b5fc629d911707a69b3c3f60d0f2a6f4772a8456e44b2437cb8266b3d1a3a4f29e17826f34dc229fef8b", + "cf37f24e392f4288a8307d1b0268541df43ac25706a4ade90cb8e940046504335ffe1d0ead068e6feb5ac40a4772420de47777a89b79a265e548172ae2589856fb5a5bc2109c388f60b60de179dfb904bea76baae138ea526e377090c6958ecfe47e4e822070822f9cbd36b69a0533edc5decfe296c04989fa89384186ddda0e703a31ccbe73103893e67fb8c4830a0360cff0718166160f91831194020b4d3ff6c77def142ac0d26e1f621af370bf3987b9f4476b1161e2453a156c1e57c2b03ad5ba9a15bcece8302880cf1562ac65f745f7ba8c61695906a8cef7c9e0a8c31d12fecb9133bf490897fb87ef598085ba54f21247f6b41b40f8f6", + "4d14bafce9e282cec504b8f6f31a1ed268ca9290ea81c230ec05491f9797d86ea1856deb44adde30912eee5aa3c3fd8a7f6533ea8a4999ee4349388d86e2a522e2854cf002c4938569f955ee944b585a7fec19ed432b876bf490af395800299e07c7260c893e1e7bbb254092d6f2ad070dc8a3be533582faa7baf1a95d9e835b4b19d5f9bcb0aa25a4ce9e6e5339cdca2c144bcd964a69573e818859a80c8a2b1b3786e283e519e7105a470f95677f771afc522e218aa5347af7b0f2232cfbecd2e9b22f2cba9ea31dd6aa5b38f07b2156666ebf", + "1f22315bfc15dedf60eed6720d2662edb97fa4fc8bd82099a849f482fd426458063c06adbb2a05b3a39f7faea6360a47f5741bbcd2f43c4972cb78d0394c127cf5c3f9b5681bf26e14632ca158c5215881ecbcd1554930614c7a6d555f9f7649333d00bb65e09b0e486203df40ec6b5db122e79b85d299fa208c30b957b881f66200474ab1cf4a95b56017194c454481807329ed8e7d6f8b3c7e46f604b83257deac763dcc0e0b4cbfad02f0774c154b99eed6e93f245adf039cb07eb853be8c0691199752de03e57b0d7f01c535ad392760a3646375997a907238b2eeed92253b0e8546d854dfd462fdf667f303d23526cef33433c78a0c287c01" + }, + { /* i=5102 cDividendBits=1444 cDivisorBits=1261 */ + "0dd71eb32c965f6190aa18868c023562a4ceda33f66d00bdff87b23f5c399cd2d050dc5e1f4c367b64a6973468cc145db2ad82a33b7c508e46648017f1fa337fdd063ac6bc026b1d3b116added0b7e4a12557b36cd78c362cbce10298b23c5af2ed75aeb3184bcba63b0c3c0ae81d94370a6091da0161efa1996fa340adb7b30fd7355ab56ca4f24dfa3cfd8009540c73cafaa65b052d0af5ed385d97d92121b6d995da5a56347aa338946c371ef48f29ed171dae1", + "1399b2872bc881a416e269c153488f246db716a7de65a5532c80f8d7571d0c091d53f43312d749c1ea4ff76c29090cb292765094f318ac82ec1408c2f7762b3ecc659ea092519e04088ac03f13788047ac88bc1661d8d2315a6fc8b89f31b5276b140b7efd36542306692af8c81240e69f7f5557e69155ac8e90b1ee8f3060ceae1a7ca2487a469d821ffc0c6186068e50f5c7981e4a2681e2aaa8e18387", + "b4c4962c45145786aa41c8fe43c7f54293f6f394fdbb82", + "05c392afb59da9cb737af859345bcbfbc06c83a9c6a19ea17073e8a9eadcfe8fa974582dee643fdb3d17b237ff3069240ac857509904c84824bd604ba997235c3dd78c687f7ac7705b331d88f76dd96eadc1518574835a960ef7a2f098633eb7ae0fa7d99888d88e7f2ae368722a071b84220eb261b12df8a3ab96137619846f834d4da06f92ad88c5d185532e9d2e9ea4be7252fd607d7d548a4b6e7353" + }, + { /* i=5103 cDividendBits=1827 cDivisorBits=863 */ + "5696c4d34950ff386eead7e8fc5f5bc254f40d32c1284257a8b05b4b97ad74a732d553300a35ea6a24a1d992a2e0fcc420785dd1cf067c9e7fc81cac28c20472047c771a68e672c6e1e0b2f23e4d23d079d9f8a646510047f12d47f526611516661d2048bdf7e858e3f68bc12377a69122f89fe2539c75cf415fb21850221e24dd8165482751ecae061c76464578132b8336b17278c3b07c50d9e2fbe0bc93a1446a968358b68d3fb4a46a58cd33e4465308a4b84215677b02af674cc43885436e304e0dd9f395b010efc9046d8266b0ac97f45cbc28c74580410f0014806aa5fe4f65ef", + "1ee5d3e4b8139fb664f94f477e4b51d9ebdcbb3f85785731848d6f9a5ff4286e0c3d8ea8233111b8aa2d7d29db7ff08b447011594bcdf9be1bb2fd50ad14fbeef6c9dd9e77734d26e486a67ce39e125d37d4cc3be2ee5a9b894a49587bb841719b6accb47b92d8eb0903a702", + "02cd6c4de125963985ab4ef0b4ca3bad4b5d2b3681435d41b8751df10899daa55ef1e1f2f9e2275937670996af0c8c263c456b554a637adb12cdb96d58fa75b15e5cb755cf68c3d0b76b9502e4bc48a811ab6c5d7e7555a41927793fcf1093f8b125c2f6d868888cd339706a6cea41dcf25980cf9c80eb32b7", + "05e880685f864f0ee45339e2a83af7fde61500cdb694c01675cb89d868695c8c8cc18c6a1b15f28bd80369abe7b190c1a912baa39979d87e0b452676416b4a40bcb2be7330a590738f27059fc44bedc823402475694a0fd3136169ed832545384872034bc6a1f5cc873e9f81" + }, + { /* i=5104 cDividendBits=1045 cDivisorBits=683 */ + "100dfdf09bd4bd95028566a49bcde4a8c494a4ccd5bb6ec56a133956a6b5b19d221aab67ddb4c9ea6f6f29f0de1b754b1ad0b7be0b659ac316f308c7b6148cdbbede71762bc8c1c811972afcb2c024db4a55f454f817beeda28d87b761e60f4d755cf9c5904d6a163fbd941e91f199fb985bc4011aabaf1a15a5df103de86a7a02015d", + "0575678d50edd9c8b2aab0e6e8c10d2f88f1f6073f34dddf0cb352ebf2f3620ab4f67280e7d1ea1c7e1952bebec8a1e16164f41a714c3056847c1e641835afc2163aa35c8c000ea4b1933efc83ca66fb7d52b8f235a0", + "02f0eff16b7a97899363ab4890f058fece6510fd03e4d9dda7382a55e0e0c9d781b623b7862cc2191802acc13e90", + "03545b84c1aaeb9e7e9e633c0fafd5da084de68c044b2c4eb55748907cd469ba69af4a19bad2ca2e4b258e54a7aef69b363849de6dd4ee080fde05b0eaed48957e8fc4f166ff39286cab155293808741cb35db27175d" + }, + { /* i=5105 cDividendBits=2039 cDivisorBits=1185 */ + "4c131c02d8d3950ac4a2de205cbe6a9c2802835a7715178e36b772a81e0d973982f9991e7fc6a621adc24b58b4b8a9732599d6d2887661f74675a14802eecd2422af571245db6dad3dc193d1e9d509588e8694cc49f7c0453555f185fcd93d6481d98b33ff462ca7c9d1177247a59cfa5e0fe294c59ce98ffb3c296f8ddc13375db85b4e557fe1e0c54be3dfdf29e64aa569ecca6456fef9df2f5cd8838172861fcf65b6e1830df5f8a100e2200fb6d56a0370dbed925d692f91ca093b4bf5f5810a8209b0fb72d79921da805fb2be717da64505403e32c7ca3e1c521af76672dcd9007808933fc269f25213df01ff12e3fcc420c4486b11e9a90677098fd5", + "5108254bc5925047506361a2977b27f28bd8bc2a5307d7704f1e1c4d9d6a403be0a61dd6b21462ccd6c0696663fa90dcc45c6b39b1ab6988464052a06059999503b0d6fc5eb477419264366eb5d36033af4223efde8431beb7eb3530f738f0c84b6cd70232d6e0803818bf98fcdc7e05b18186c2ce4f9ebfac6f6e1a234ab9210b4d8e6c6eb14de233ab48fe906db15150502b97", + "f056cb2bab3ffa9472c768c7ee33ecf4e862b64c48779e3bb621aff365d5671e5040868da50aaa1566d5552977061939f2282f1613469eaaf8439fcdf4e7a0809d2d454f38b0321640d342b1b81416577204bd6b24033822eb235469b55033e60e6e1f3cff519f993c69e0", + "4261b9928c13a038f6911c2b2944acb0688ea731c89b0f9b40803dd4c7df2e26ae69423f4fc868045958c3d0cd1c149755b56f4aafe86f80e3dc987a892964e70a77ac41935e9df56ebf0c597b6d9110ba03251af25b688c995aefa797a7886a235d586cc6b27b7feb4409541aa82863ffef4883974254f4469d8b2c9fb34d7d08776c7335936c431938c87a7d26914ed89e7cb5" + }, + { /* i=5106 cDividendBits=2500 cDivisorBits=1692 */ + "095824eae29f0b852c7115294ddbf6d8c573fdcacdd8d4077a9cd8c0d1bbba211ec74af85c40d27273a03a63c9f620cceb8f4a13623382e915f3b75405c891213023834148d015e020c9b3f1c692e84f5fb7cf1657b45946573009da8f0147bdd9779375fb9b0c2a38b5aab28d4309f74105732761b7697108b57ccdd47930b13be1df99eb390fe1f3376643ddcad8faf7300ab864eb75d6a6107ed832caa716dc5ed3bf6aa9c76d6c6b5dc431f84c52f8f0cc00bf97f509c2533fb8bc569c10dccc61adbe286cafae51e72025cfc2172417ff3d4070cd69a723ce0636c1587d1e5a79e5e972e06badc08d44a8a2eb83004674b5e02daf1a9f9b49eb4fafec5f8d80d13a813ca2a22993783c4869253ae274b45c8f37d922b2367fc05e050cf4758ab3f25289412bbcda1427aa8a404c7038fb07e5d8b2e36c", + "0ec738e45ecce36e8e10da74d5b112955eff450005fe5a015aabbd83f504b38a46519c6a0962110903f2be50ee83d23ae5b941f3e420444fb226fbe32b75e93c3b02f2c22836f0c7e8387cae7d3c46ee663793ad375946091c1e6cb166621f62bb3afae09390425b01247e25c90e580828b260c461dc9e478d8de3a46c2807718cf2d8b89b5f96e3dc3475b59d9d9a2bac60e032183addc34bacee5cde9d7df093f8ba4ff09c1d2cb9cebcfc29ab723061605488cb779f3ddec4a87424b3f972afa77da07c4fd1b06c3afce438c1f85c840f2065", + "a1dea2656e29d63e17646138ce446a595000956bc0c62cce87cceb9d8e9711d22270edf4fcbb1969628f84b0ff89cad2f2eef91620ef29d2d24e8c2abecfaaa7a2f0b19cc5c77a41678fa8661585546ba21ffefd48dad172ac2a5559cccea1b7d86b30aac4", + "0ea266d1800cebf8e22a3a564e79426fe0a6be0ea543b6188b73b1e5441f9a525e9aba2ef6e5aa860f75a561bd06c199b8e26a9b41bcd907e3839c0b01c67da6fabb1fef83bc596f457b1306faadf2bf0db66f9a6e75d960e603c444eacc0cc9aae26f340b4eeb54ae9a58986f147dac8357d322a4244367361d1c760e77a6bf648e144f3bf727c4b2c4fcbdb26e6b4620d27adc5205462720eaed616ab0ff62dcdce0ef63c22e626b424b877e1eed32f14e0fc3911c3a9fd70d5584af77c69eb8daf2d4364f0f26b022914fd68fd3c667ab0418" + }, + { /* i=5107 cDividendBits=434 cDivisorBits=104 */ + "01a4f4b1152abade29136e42891c3515ca30b25b9b3e8efff3c939190b380454670b3cbcc19f6e723b980bbd52411969ef7b8de27063d2", + "e1cff5945a503419a9cf1506bb", + "01dd3b2f20d677fc434ab4efbf0abe0f52454705dae839e8e21b5c50a55dd0231c34dc0459c51507f17f", + "b18894427f78db5055d58f020d" + }, + { /* i=5108 cDividendBits=2995 cDivisorBits=2249 */ + "064f5b7f1321125e26cf5ff6ef3fa6980a53eda202fe3ebdd170245eca87e4e3cc648e8df3e82becc463a2316250d371fb1da87d2ff0cb47ada6016c9a35f11afcbdedc33a27007374743b62f3d53c91ccd552a903f6063c106494db5cd0164b1b33d41f69d524befc8ab1a600c8e2c4875f8afb60bb2b73435920dd77a5546fde2906561a1f06a5734b46daf70f99ebbeec78c39bb82019988272115523c24fc42f3338d39ebb1c9a93a5b6c8f83f781c6f494984f60d3a280e419b55d78851e63b033c6f6f86144b3f72eba300460f2b30bb1e2533f794e1615637b6f238efd3fb32bc95b68d33bf0a7ada8794d1e7fc8765a4c74137f3d288b01342fecb1b89df4c54ed5eeaa3e9e4f624fcad71614ee531db6879e15e4bd5f36ced88ee6804980be6b2c75569e0aa7c262fad67a919e93118dfd7f2527e5a7031790045ceadb162652e79946ff000f8f0a672ab8899785c816038a8789de312d672f8b8659d94037a7f2022a3dc6fa1156128e941f298f2e5949507", + "01fea3a18eb8d37f6fb898e485870909f7ef65891e02b910db5fbcd0b91229dc30ce4f015a541f7dabfc7b37910461ef5e7680832e43cf5713071ede512d19fd62c393ea26540ae5245bc7d278e9a3ac3642e668d2ce5a55430562abee8917f8cf76c7f59967dd386dd8099577ac24e16b737ad6e4bc99e8cd11e76947b2ebd81314dc6216cec6bc5d28bd58704b3feaac827887eed7fed5e08b947ae062c70172b09d019ce04c213baaa7d15f7cad56c87a584e120c2ebc10c1287c3c20ed910821ed708f00a70b56a7d71630cef6ef9dc171d64ef182874c67eb6d0727a0451fd4c1439f7a4a7998f0b92028b914415900f5796299406152684774b2483b24975547b7e06d06af3cb2f8116c75db84c76b4615e85e222ecc95", + "0329d4c387b2b31ad0f8c70ee39a246ca86e51345b91ec5365dabb94321d76be43e4c3007eac9c249360e2d72fe8b64d7206b479bb80643575a2cb458635d7ce1124ae3a16946d7f0622ed5caf968eaa67fdc7f71aee0fd69cc9c5a14657", + "01a6a5f4089cb246176be47bc0366d4ae4c4d19065a79e4b54fff0155ffc0aadd720247c00487775cb633a49906b036fa455c9b549898e24eef33dbf978999b24ac579163bbd21ebd245a4775b218ccef6cb448f6fa9379c654ff60f608fd38d496142821d1e6f999fdaf4e9442a64f37d488d93bc5a7afff96b323d147b3c0b3d5b18a10a4ba63446a0349bacc922db349f1ce7ad8a701ca1779cfb768ab05198ac90f3c7a8a2fba8eb55d4e08efbe056f814a6fac8cd1163a2aa01f4f74b3cb95b6cf5fe9037bf5bcfd731c96df2b3fcd199ff094e2a4f11c4687ddf9aa8f02281b86b43124c0f1d6c9ce3c82712e0ddea6c1d551ee7dc708314163a895b1be83f381acd6efba007d089cf374c52c9aa53c47df3c229075064" + }, + { /* i=5109 cDividendBits=1999 cDivisorBits=451 */ + "063353e6c1ddfd54acacc424cb22b6c7d7acb35fea5775b6a587d847495816105493cb858dce11c18c3d78b625f60663c66f16092d7ea755eeef7d528a3708be2f1bb9f742974c4b9279291b532a0eb8be973ba84a0df51ce80d97266b97f4c13ba53e78073d570f03329a07848f2952ad575cc2b3c12cb9d82734d575b441c2ea0a6287cad5dd7fa9932234fceb396b0f4ee30423b58cbd44d6dcd63b5648496cec9c31545b3bd4f54cce693b64304418aa5350e0e5d805fbff934e03df8d361b6ab998c58e720122afd05aba7c14d06d744bbe6a1bc1ec68607d83a9908a5f7fcaee646e68956bfb25f806694bed0ec002ad95e3d7792915de", + "04eddde06c9f7fb84de68dbc4f012ebf805856054506f840d2db0f63bea8d512947f44976f946ffae92d1506f1921fe12b48b5cef4b884e938", + "0142071083ea7d263533df5ba91d5314717bed8ea0f7e30e197a32a45aea1cb0978795a9ccb2e56fec08d3ebccef991919b23f5266f9fa1dbd87de623551c1f31656736d1efa0361f0615a417441b5ad18e55fa81c9ff75e0921f44853696e85bfd4aed595d172ea389a3ba8df81e58156f570fcc53cc011d07729f5568e0d35b2fa00497cc454ba296c09054672abc5bbf29226ac0b47949ee108710068f58a0b524df74ba3ece1772d05d6d8fa959a9290452936130ee8145ad458a30ed61cb0bc", + "047568afd88079379f6e008c914f1d7510fb432aacdd6f118f7e99b80fb32628f581b640b84f57386c4b0caf5cadfcb3f7d1c2f6b6451750be" + }, + { /* i=5110 cDividendBits=247 cDivisorBits=197 */ + "58d2b0c435eba51d7a04a31642517174be491726b96c0b8c3c8b0620193669", + "0dd0e1ad2dc6469c14280c4640b265897b853ce66e40e60a5f", + "066dd4687b5030", + "02b41984baa0b29ecbe2695d20111dff0c185335a87e149499" + }, + { /* i=5111 cDividendBits=3869 cDivisorBits=1989 */ + "1aebe6c97c9481ac4970c838d10d796ea74f3a86ebc5a77addead4baa8ebe7611617bac12fc10c71abcbbe29081ee882d643325e28d63870c4c0511b27f79e7b5203308f2ea50f47bb0bc025622bc61e8f0562501e0fd6f6081f11d9b974a2ae25168d640810446974a8bc64c40244198091059edb74effb76673145f517a6b09a568f90fc2b5d73e98958974eec3c5a88e25d1670130d9e2917e792c85724e5bb1f450ae0a9e37919d41bd7bc2f411cb2fa71226503a54ec148b7a7578cafc79d19b35869898b690117723dd56a9cf311080a595f273e21b6b734fbcfa05b5f4c1453ec2ae56fd146d7653a76a02ff54ec2a62da05bdec893371081b93bc4fbcbc8d07b5b844294810e953873231031c1a584b7256321e2229b82afe4521c1b36681ac31c76a82cd8b42cdd3530ed4052635b94536307197b6f7c8e6db6dc6a826df15c565874163d3254fe8417435be4fccf4111544de932b4de41c5554968ff40f2c7659b4b1a0405eeb89c37dfda4e14a86f02a0da69a427234772733eb364be45d5e0f0881ea460414e89be8351c6c2749a48cec6e47dde3313b553e34391bb2d8f86c4dc8451b2511b6565ace61ccac25263fe481ccca5fcfc77dd419f755b8534dfcca8bf72b74d22e39dbd08b6c4785b617d4cd3467d9084a3d8a8e2be492432", + "051a3750607c752c5cc731472f67a6553d4669429e3e60d1b7edb2cad64df54c47fcbe8c6b8654814422b3e9aa78ea58e9ecc6a2d7f7e389bafea2ce6c27e808b0b8cfe5025856f864456b24afa5f35cec9f7d867412e31757ddd0e4a763bcd3a040ac4e4b56e81e1558091c5d2b8155b048e4bee6acb13ff7f70095ae50b417f075640f23487407c0c1661749e767b579c98aaa0172f9c0b4c76e81f5b468bb48fb03f5ec824643e54fc8e2643e7655a1c215dd56f1da0bd624d033b8f70bd7fdb166a45d4a23b2af50049a9396075643f191d5afa17b170b8c99f2f5c750ec7cee9dc6957baf866e527ae000ded16a99f1792b2fd1c33044", + "0546b743d3d3f9d32988dbd69b5ca285e89063116d5b5c924e257089e5e7ffb5076b89883cdccd8c8b4137596afc56e41d4b9a6a8e95227cef243fa53b50ef6b23597fd1a82ab59e5fa34736c19f1dcbd62067173a97d92ef43ce0afb17ee0bd65a3cf901830e76c0b4e7a0f0f4d977ab8676be48b9dfd226ed6e84dcda85d475a4e61c6180d2e9ff19f722f84cf988b9e1db9cc2332d606afd181e9d1fcf652819046dcca7e76deb41cacf6e50ca1e2eabd5bffa0db3ccb491fd279121a771358cfdfbeb15ac3b17ea862c72016a2d1b9850f261f8d515a36d863299e120baa56662a84c4b76a7a321f2583", + "02f8b3313b477a6b0655d0fd724a0aa772da9ca6ca9f1f6083f43d24fe3ddba01c497ec070209c4e2c1035fe2422e03ef7486cba05e8c27a5605b65693f751bfb3ae75945f4c78d17f276e6948a5bda258f3c593f54487583a4b3866eeabb7734c38320ab897d38dfd5114fd256d7db8704b8c9913b2db5efe600cd8f44947124d7822aad6dbcaa2ff5fb5b77ede2f24543b99967eafbe58e356cc716c2d3c8bca1b0b3fdb98d22e3d7d45d89f7036dfaa03afbacf53ff4cb8f9aaac1bb0a9773b9af7944e902d3596b99686a27a4da039f96f09a889f5f81f5a9453af0cac61ac78bc7a7f8e26e76873317fc1060d0b8ba439f7a111319d66" + }, + { /* i=5112 cDividendBits=1047 cDivisorBits=679 */ + "3fa237ddbb4c28978c19788747a20fb86a675b68d824facb3673e55dee3016da7737fa114b05085d933771c70f500e8f97e1c1757bc22e67218539ee31b3075531b29e72c6edd74a1efde193d6494e950bb18bbf1df13ed99d412dba24b0a2756824e3b4bf7ac3c9089fb364ced1bd712ee7c955b802583e58899a63186a31d59a52be", + "5cad031c03295ef69fe63f8b9576a2bccecdf1b0f77a9bb3739c6a6f66af598989d8488b975a33d639591cadd74ef4cf0764d26eb1af46d6209a4fb35651bd638237feca3331e39d151a4d3e7cc9d31b40b58f72ff", + "afc6be65922334135e4bbdacbf7d6c79c1a234fcda6b045032e4d374b4c3f546e1b5c9952bb5da330d885ed19450", + "51d03d0164376be06462a2c9c7b62e804fb8990a061eb259db9500c21780d2ffab85c398924e7c0b7b50f5dbfee0047ecc0294ca7cb0131c35d1b2df9dc004c1f47582f30dcbae816872e75a2d77068c33a61bf70e" + }, + { /* i=5113 cDividendBits=3019 cDivisorBits=1308 */ + "028d2c9189abf29c152ec1e32b034a5342e13a2986076c5c77302e6070ccf015386aa8f0c40d7db567cba101ae708fe21ae21e1ff08d419c9dd59c4962c0a1908e027aa61afe37eae9da11fa790b3a0ff45ec7bfae8755fc3b4becbb650af4166ea4bf1dd1160bc121753722da814fc20fe2999e5ced543a9f60cc287898620ffdc1a977100d7b1aafe27516b55b5f0bda59630257b448906dd7dc8968f71c3473d764cd2a3c6ed2e055adfa7f57059c6775cab5bf833c101856167947917e22d72980ec729cd7240c0ed5280fd5a05347ff9d96e84de4291bb08004bbc649f8c8544087895f3d87f18a31d69af92b8f934cf715b2c3b3aa228902615d59974fa8c00cc46cafeede2e5b63ac2d5a14a4581d7926109c42de32a2b46125b5cd1f5f170d2b7ea4b9d871324a09356132764fc189b3651d5459ace670946610df1067a1494d97fc188f4fd3884dfa7bb9a63d39217d1dab3ba2a24482aca8c99b687ea33203c0eebc0f8548d2442a08790746cbde7bb3922a8bb58b", + "6d4526d28b6006e2ef75567d17331e14f644e16c94711cbe66ba55a15fcccea52f4add7a977f8f0f06262d063e52a573d8da9f055f906c39efe257de4a215c246b32711cdab14dba7a02d5e5e4d2b4f2544d2f0df2fdd49a270bc2a8cb7e97c6b5c23ad5e53642726b8a690c58f9819c5594cf23bf0b4e1eb33e21d068126a3d5c4767a40c9023d36a612fe1c1beacb33343a0d435759c52104812a9765bb47fbf819d", + "05fa44989f3d002e06c1fd8e4d444827c936e66a9e3f140937c7bf3a2921824c426d02d97b4dd86690c81f841010aff03744ad9c1dca14829a64d9db476a1e73ae2e29d441ae5f22977d762cb19667a422ccb481b7d8ecbec13c790dddc827750a999315e177c581b23a03ea82791cb8c2918f78afcfff155d0bbd1c935b10608b96df8ffaae72f5652c35d26a9483f285fc5bd5f97ff9cf2fbe7deeafe346446160733a662568c5fd738ec2791ed87a258782563dce1697e9c1caf3b3bc6e9fbe3d17f3978a0a10579cf0870293ca9bd01cf43299ef15", + "129586c7cafe72d974715a2562e41bff954e95e60981ccb9646f255cc28d47f1eb82f1b79d33ce603a7c5094d409de5b26ddca06c46360aff57d9cadfd564d0879bf5e9124a0de0ef27839b8e729dc9a27a829add062ad62daae4a2f3693c495c4068e0b4b13ba0b57b55836d41b34b265f26bf600d0d28484f0a29724942316f2129eb8a11b763b04a09eb2bf242460c47484ebc115f5fc8c397055103416c4ff80aa" + }, + { /* i=5114 cDividendBits=2739 cDivisorBits=1813 */ + "048c37f2a96c632c167e8eaff629a0d851908ec43d435bba8d8a2aa1836adfc5a917e313350369f3dd24835db7bcb0bef115f8971daa62c33f4c8814ac574964de50ee92febd38604e3225a8c2102694e5a311465c327ed22ea33544cfb18857bdc317f34d400b6d2a49c3c42fe467b12d7394bf7b2ff3223eb781e6a46378d007b8b79568cbe1fd8b283382171f8f236d62d5711ad99154dd00ca3016b5c0939bba7aba9e1501099d172bb286ed317d89815651218712307018dcf737495593c9cd86a011b2b708f7774285a4690a8a874d4c0e86981406c70f19dc44a49046f397b32e2ee5741b10e021859e34632156aa370883d38fb976810a8f1f1e644c32e23099e54c262dae733e890863e9834af65e9d954cd4370114e2a024b6078ccc048cb4a3be07d301890193ee08b685398a7ddc5d39c6559daad0ce4c11e46140f749935ee7c7b22371ab88d3871b9f8cfec4cebfe388", + "1979c84b5511b07156cf9735b9fa2f7de1b4a3e0c4c39df1f369e411f885a5045d3ba141fce53aa0b039ae33b361834af71b8979ec80476c32bb9bc3e09dffca4c5456ced1576db9fe235bb6369a2b2e280aa0372dffeb8c268fe77bf76affe9f20c94bff684e962814ea2f0fb489a1244d0e3493654835a99815b8a46eca03a8108dc2679481eeb6559edfa72339e61c173f20d336e7cbe9033edd0669076687f517d9c0cef9ba1635b079a7f6b3835def080f4ac7b9bbf1f67887a7bce2fb0ca83e7dce211278153805b8b3cc685b74c4d8478d7afab31edc951dcfa3edc8dd673ae", + "2db2fbda8cb5edc0589d9a3265e7172922198dca4838ff936d3e7f1e7621357dfa6f10c8dc341095d15e981c8684440ea9f125590fe8b2a8f38022793d07716ad6558ae41429526343974adbaa09ee030192e46e8ecb4c54044f2acd29d3f6778df6f26d0592530f651f41ce0c5eccfad657c5cc", + "17f79fe9b6a52798d79578918e8da1321f440625317945c3e4fb0935a83f40e420c345b33316563275a1e51c6cf88c6dbc6fcaffd9ab3e36168f588592cbd623739562e21142d60caf2dfc46a9bea70f801733c233884c1126fbbc0112f7e4b97be4bf54256c18140dd3aac8206c580e6570069923c5ec8a81cf16a21d33b26f84441592b638292d19588f4dff6f4d4c54c53580fb3ea1c0a85b1eda84962a6280329c973d7697fc46f8bd8fac3fbce218ee05191e383927f3a81be413815f9cc41fa33300a7a89fab6123edb27625b70a16b669cdb59009c246a330be155cfcb4cee0" + }, + { /* i=5115 cDividendBits=1022 cDivisorBits=689 */ + "098bb4a9f27b20fb69b9f10d404dd03d300f70527fe46c9dca55492cb487ae42d3558a3ce26bfe709aeac17288815e196b24630768a4561df4b3fb5be9b069dba89264dbfa5b064e5fdd0ec86ed9b7d83d9e7a9176e25e27642e887983d4d9bd1c56695f35abf19f4f5d1dc32adbb1f473968bd44f371d76e7ee18eb24f2eb0c", + "c8afee032f4a6181981f235b3e63bf660be3565abfc60dbf3082c1e5b39ba09386960f527a8501ca6b36372cc186ac469e3ccb12e547f128da70957140c692a706d51df359ec93504d6bfbd2e628c96cb2b8b63fe5d8", + "0c2d3b6bade3585a12e2c789575e617194ffec82d038c64a040115e61f86983048950f0b315b353cff61", + "c5e660cfddf0d03b674f5cc311707177a388530c2445ebc3bb07bc6da3342dfae972ad3c715e453be3fb4c1fc5406f0a31bf7dab41e145fc142e993c47109de9ed402fed8ad8a34dc58520fc946ba2b5660cda2aac34" + }, + { /* i=5116 cDividendBits=929 cDivisorBits=731 */ + "20d13f4f3578c805a16438658735c1dd3e5c7d9aeb4b78eeb190d198a99e5d8afaaf56fca03f31a90f99ee4b99e6ef060d3397d6c5303ad3cac1d237a6f3afce28f778d6f0130b1922a4ec0c626007109063388e40925c2f3ade8cbd430ccd53cce328c433b40003dfa3fa31fa6d3c1ec9d14849", + "015595855beb9498678ac32d6d1d112d04de6a12685fa41455f4c872dce0125a4d7d213482c0c8f1c8aaec7b4c9141d134f07e38468df01a76fb47d68e247322057134239610a7c3b936b1aedfa756a3a9d3fbe4fd0700ad43d796f1", + "18984f769d2f8b8c1b9da36344ad8d1fa91e67dab8885ecf3b", + "a568dc0342dae2f15484ff9767eba90019e3187e127ec47bf0077bed29d1d83f05abeb577313eeb4556617d1bc16a4018dbdb94bcfe638b53b15a44241af22d1ae9a2776bc054452078b722d0b4501e2fdb70f6225d1c35f969fbe" + }, + { /* i=5117 cDividendBits=3862 cDivisorBits=1929 */ + "1fee3b787893820b55ceec0aadf0aa99364474f3a14a653cd8c7073ff6b82a073c95ddce3e8200f297757a57eefeefb8a2931c5ced4726014e90440fcdc5d3f122af5b7c614eb384787af160a298818badc686486a37c9fd7b8801fd70568c18e5c39c52ff789ca3094b3076d37b9ea2656fb08f44ac26236740bf71d3d8533fa821887bd4e0d8da7a0a72a69bc597bac8548839e6b8d3dc5d924b1ad7a08b89247623ad58510de224ea400c0b0b5a463a9b347be6a909917cf656f9f2b05268e248882f931b3330f59fa7c0945fe43f6bc76bed534565d0d69938a0bf295d230b08d1aa2d0ce773770e736fb9a3348edc2b05e4bf9ed4c301cdfe3a15bd756d2597aae92896003d98517a29d2f6b504fe9f591af5e3bf273e5993debafe53361a8a86e7e0364b83cef01632b43f2ffffe21721e1765eb9e4f1bfad4d99d29c463f0dc40dcd23443a1323c6d808341069845ffd31645ba995c75267cde96b812d14d0e6577dbb17cd0b00a7eaa5723dd119d93c490d0178b8ce015f2584983c1016558007c6038057316867a7351c2bb114841c06a8a426daa4a70e060bea7437376dd553b5e4899e5ddf463703887d1c1da301462bf5e7b8e58f5d4f54f899cd0a47f271a9bc7b5ec19ffec42794f6becdb0fceb82272f76ef32e76b5d1af06e3ae68", + "012c052ea4a8409a8de0099543fb1a2f302510cfe98c99aab89d9ade765c8eb180c5b5e547386f6fb22c5fbb431b063ba04fdc339199df7d08887b1045de5882dccc887f62fbbfe3664a5e9ce92d543cd2ea9b737646b279bcece79ddb1a74e5427ac09b1f0d5941f91c47266c37f382dd5ef255f06e1e98fe816984ef683c37a7d8d3490f19d6ae6580489ac787b4e8a33391dc00cd480248bb04454aea7477072080afa8c14ef0157d3f1c22f954aaefa94ce8875180689c68e15826b816acfc0d5fe9b67e4713754b2d91589954fc911f799abd1618d03b14644fe6b36d57344c2d86eb14737077729aa3bb13a53d4f6a", + "1b3edfcf98d95900700083fa66f5d8a1c3b9ea3f609e5667ca2567819a430c3c33aa838457d0d9fcd2642c328d110dedd3eab5182e12189ea382d439d565ff2c6b467647658fdef74d8d975b9a00d8058f8e85fe53b9f0af2b4eac878be82a29d7d5287cc8620f90354c8749e082f3205610016155c9d67bc5f5ee1bf5c9083b291793727bcc5f5f6ca2c4c41838d794593a64a4c4efe64b153f10d0c30e7ff08f46411247dc5a73c918566e80d5a167ab566a1600c0f1c8c2a5137d3253ab2b595e1bc50112abc8ff264f542fe8e28673570ae7f75ea0049b9f5096df4fa3fd1ce72aad41780657d9f8d679da6d0b7a8009", + "314dbbbb59548bc0e978ab6de6c7eca8ba4254f9ff9ded92370d3b84845f650378c110c6a2eb0e10924bb6329c6a361c515c234df782347c9bcd87f6bbc0f801815ebc222c58cc5dc2fa0713986033ca1b2cf28aa74ce6eb213e7b18464c2443709743e0bc4b6713be27b08335224a4fa14f73b1289e00364bbc442c0d5f474e531a044221bc7195d73825ef9e5195838438260c6e395e0bdf05d3136ce65b62ae18b75ec47cd13a278d2011ee466744ca414e5b4200e36872180fc6a0b22fe1d819357e90e325d972af16bee520310f6f40baed35dd2a8c9da7a3d35d5c7a70cbf169c58b315332a3741ef59c2982e3ae" + }, + { /* i=5118 cDividendBits=2478 cDivisorBits=196 */ + "1fc617a4a9dc9d659f5a64d4df94977964a6edd928058b985a7d95c2d4914095be9972e38705b112ac5fb45b7cca87edddf9e4fc393f34bda9eceb3f87c694c30e0856ca5bb833070aa0a2162d4a8d9bd6b54e12e392ba74595f52979043274c638a247a27cb099bb40b47a17fb2710ad3bb7f0956a2cb3bda5650515850070dc4c7288821d297187f0461bc808abc166fadde4d9c69e97087be302d98cfab707bb2ea1ae3149687f44a977df874507a4e2353256873e65b76420381c3b5d758eaf27a23cab7d02ed26ff8af4e9703ff457916335c4de345122b62fc92b4545534772588e58050c3d2f7a10d59b190bedf63fe801398f34f270550f4a460f541d628f814a14a63624fbc99e415ee23d3080624dda824f83294c7fe70f458efbf36c65c88ce9b66fc7b4eace2ebdfacd278083bb45a22", + "0c94220922178a61a21dd15c79d1db028c31a8515ca070f0ed", + "0286a8ade36fa80d1e276f7d59a5bdbe2d36c2a264c6ac3fb72f35e077b8cc08c9a84672fbd0a55a49557f20f27355463879ac5f005cc70068b757ca23156a4068dad69d38545adc24c4045376d2d3f6b3d2a5747dc1d9d86b3685bdc1a1d877e1c280f31c4c45825be3502e4e30eddeefa550ad31e06884392100ccde479fe1b8df3f5c99eca629073a154984589d29774b1323ebaf35a66c45a8c4c1396132f03acd237629d1ec37628118b30afcd175832df97ab1a45debc90faa21f1717e342ce43130b90da70a1e0fdaf9f493e370a82dda1da19593c4d54e446b5f19bdc98d6107623c79c97b5e8c498ef24108a4eeea3809efa7af367d007e840dc80f616757575831c29e4e7dc01b6fd7053161a0152b0582d985c7ef2242f05e", + "262b4af88cd3a1e83fbd941b71f75f32b8b33c3ad943b31c" + }, + { /* i=5119 cDividendBits=880 cDivisorBits=304 */ + "0ad6b6916a00969dc9b8d075e794230d7d49534983fe7ddfbab8d04e942848c89e5a5f00c878276a61dafcb2547d2acf9f60fd1469823ce7e93c65340a374c69f797372e9ccaf4e922fc78208546d477abac94794c8b0e948177a4fbe539d9e33eaca83ee5cd8cc8da659c79c9d3", + "054d9955149dedef338b395c1226823752ec3ab6eeb5788fcfee50e1c85df26b481035951132", + "020b3901c883192520c747217964147bd0e9f852bad2061b873db8f346336f4e2ce5723dee5db46ba859f2ccf50b8d92d0487cfd43f28953841b65c21cb52d4e30a1a9134878f2834c", + "02e4754830ec06a5621eca4b5c90624dad562c8277142ee0676ce957d68908691720bb2818fb" + }, + { /* i=5120 cDividendBits=2357 cDivisorBits=2210 */ + "10402cadb37324e388e275deca26a9701281ac2932ad72dcb56bb23a9d1c01eabf3f5c63ab50e1f21696689a89438689b61ee9e89be142f7f1a552908c95bb4668fd185a40056910df300c9139b0d154496ea1c99b4502b8ce72e8ba318b47dc97f6a15d23bc7b06d0bcb33725e430b230b8019192eb327e237f63972f46dedc8989aef717770e166657076e9e91ee4147a35b1f59898d2b2e4ed674952c3c419d919767cab2d85b69f7c7ccfc3776a79bd29fdc1aebc207d6ac8671164c5655a53daca98a209b91fa619250f9136f71e70bcce68fb99e38c764f7be01c8c2758c2c119fc10c7d06f6728ecce9b3e7e6abe304ca2a6a96b65bae23ea91663d0829eb65b647ba2c7a4bebfa2ae9476615bf4582262f246d91c815064269f83b6503c9b579ffb507", + "026761794a1ab161db5a150aa95913b8827e9985c21d050d8447e750b69ca8e65360124845f584f6e2e03face9f53e733cba24c55d7d44c86eca3d4b70ae96c23f53b4a98012c8e1e4cf05d8298e10cbe9b5f0e11db6974e2ca21b1b10b13c9c71b13760668d70c3a30bfd42a85e5e6cae78b376e9c0102447f5b756ee40fddab00428563f60d1803947da0ac7e855f130c465711e4ecea3ddfc8d85168292ee0f1e198d118bab350a6e82140469dc4c3924a1403ea9339577b424ca5f7f5b2f58f056363168460b02cd4782c02e183448213d4494137a94748b3d9b4eb38473b03fbc5a0ebe844e779221e907c8bcf3cf4e8a3035e2ca92eec93712f90d697fdc19704762bf2b278e0ee0c4bd6f3ea1a27925946b", + "06c2a4b95f7bbecfaa478e85c8c531946f336c", + "01eb58c564fa72b9c9eda7dd34a22eb0f9ea1a05b84202404ed5781f6e993232876e02473973e045441e07ea4fbe4af5de101c5a8d6858255eaf1e01726bd6ddb55db84c2ede1badb6e2048a86b92d800ea5bd82cfd7653041d74011ef20eefb9d0f1df5ffc542c8a0b5212edd622e2037595abe8ca1ebffe1b40b1a101703f324aa2e4802709c905b3abe536c9143e6a0ae0e2d840c331a04d0fbb2794b08a859053ac3fd5fca5636eb0dca665ccb01617b39c52f59be814d35d42f4c326c1f78bc96d7efd4d72df26f0f2cdda50b66c886697d9caf380a9b1f38d21b0c2844c65fde77529e768d53aa365e9a1cfb8f26c6ca6fc439ef29c12d2535c1c802103978d1bce4f3f5b30f81a3a66852e83a73ab2ec6e3" + }, + { /* i=5121 cDividendBits=3175 cDivisorBits=707 */ + "2bd7b43f862c49063fcb380477859cc854d94b4395f99627d77010190274e0bfdb31ea8e9698b14a13e945936993de1d66c7fba5dbb0d1d104e26517b720ea349beebe46eae784e0c1d2e095fed27d120cd1f1095620c23bab4d73884391f20e351bb6449073ac2296cdc415a1e3a61a875cf7fc31520b725339da314ec71eef0f86d4b9f9fba58c709bbc1c67d913f230460a7b7bec209f4bbb38fc7a24e494973c447f78d2f7b85caf354636a1ba46f92cb47c4b88e08c066e9efb73a0ac7716c8989de53eaab49f298340a05f76d4f6a6a2c4f6dec0be56cb1a271a2a4d97edbcd7d9fc2d2769feee4b8d0091fd5041383cedc22538b90f9bd8218e07704a0dc4a77ccfc02322c8afdced481c9f3110bf00c24357e289b0f27ff56b344adca374f0b7e6fa8cb6ca5f7cb12812aa401b658082145a7036a1f23687d553e7f0d1fd5ea77b64127060d2998530956b16b2eb7c39e1c866afd6da6591745a887159d5735a5d296521f919f5dc899277df4f841066ada27a8fbab1a41d6f36c90cb5c62b0e30b94734ba0b1c6f4a", + "02c6a3af9587733edde1f9ae28d1fb916a42f26298273bd1125ce2c00f6ce34f7d9dcc03c7bb76aa7099d9f120c81cb92614130e37b75197544c6bb4c3c654ce639f4771fea9295e860b600c635c1604788e60e22adfafa39b", + "0fcb372ccce821d31785e07532101ae6cf60c5467d2b9cb24f2573b2963b1f91fdef7b77dc4cac5bc8bd7d295c0487016566270f01974e01ad6cfe8a4806baebfaa450d85efbd5e0e78d551e46b77b2874dfa4745fa87bef5470b08001b9418fa3edc194a04d24e144f9f83429ca2b3338a742173aa80d0f5c15c4150d5d543c0cad1d6b2a5c7d95e6b73969e7ecce014c3c8cd98104ac05a647a0ed8899d9e219a87d7067d68fa4a164b15dc08f28193205e6ce1efee1f009ef7ccb9d82654f980a078913bd065e46b160e4e7262408dc9ec2e3e64d3f4d3f6b872abc497931112fee121f9032168b4024a5d34f5511133d002f3fd8e916babc18cd33a98162f94d5da8131dda37c4457a71af6f573c0493e0001fea2f2859a0b92745cd0cbfd3e064aa0d872444241c33a05a02a835bb9c349495", + "01286137ab64e0ab95c039ab2a3e7032cd51728dcfa332917120736f51aa060db2975ac96fa95c8f5fdc8d4c73cfc6eedbdede2e9699c87f57abe6afc92931126e14f6ec0c6d2f26f417cf99004c29278c713ab7db9fd09a13" + }, + { /* i=5122 cDividendBits=1148 cDivisorBits=316 */ + "0abd8bc084ac40f9a450f0ac227139c048b2edb84be771e0592dcc6c3f98a09dd9a6a4115ce9b3579241a98e809e7a20c2936d936759bf8a315345ed0428514f0a00a47cb6b220e63b9e39553e434463799ccba19f29db08a0f98f30a5ea667fa8193b6c5283fcfe2db5fbf72315d475abddd3364ff4d6a4cde54e4fd4d61cfe8d7209f132f455c4ead01d3c2c3f2ced", + "0aaac483409e6a3cbe18dd9ab420daf8ea5bd448dc0a5020039f05740aeb7842c0f71cb0688f99fc", + "0101c2a97a656debcd972674e53e2a71ed6720908068dacec8efa515a80eef10127712ba1687011259a60e4116bcb984a31b63500497b34339e655f7b51c19786830b01b0edc35bd25fbe731d89b830b47996b5ff7d5371b28b840e90c93bfd3eb618e1d1f65fa0caf", + "09877a6a9c4c223283d3f3ea5aeb90b795fedad3494e4d78c88bbb54dea222eafb67463d2ac519a9" + }, + { /* i=5123 cDividendBits=518 cDivisorBits=294 */ + "1835aa99d815abd640d9911078afa6e3f0f0d698fc1e1bae6b8f8780dd3af80c9dc9aef3530b875ec8d0e95c48d8d65eff50908e6c03bf8510f3f97a5f49559401", + "10c4ddc5d3481e470f24e7b1749a606492aaf4d02ade969b03d92025dd3b336c1fa3a17156", + "0171972afd3bb8a60a72581922fcac9a50aaf51072b3edcb909423da9a", + "0475c5d94c8d2d6a1b893aea59fd3015c9a17fc6de41962e5f1e0b67795bbdd70728f22a45" + }, + { /* i=5124 cDividendBits=886 cDivisorBits=877 */ + "01e4cae54812a53c96c14e29c66c09bcc9116c679b1a42830d9f8e0beb8db4871888a08b5e8dd665483ed1da40d156cdb1029997b2a5045d4b777605c07cb972ebe5ccf0f0e72e926efb6ed2a1ab0266e5af4a53b61863313bc4b768b74472d37be6149694f26454169411927ec485", + "0911353ad0ec151e70bf27f0684ce9a1ce5bb4637191512a4bb47dbb88d287c8c25c3e690ed91b0b25e0adc6986f7294fb5a78892d501b861a5ba7d7464c0105ef3d75ad69fa3b9f002e76a4bdd47d6c174fe396907e56e474c2d366182508bb7bfb6548b87fd15f045469c6283f", + "35", + "043ae01ad1c4dd4969bae500d41d5e4958700f04972cb54bf33004183a1e6a884b879f9e7ae3cbf9674de023424414d8f8dea34c436eaa88027c462eeefd3cb15e139409f6603a83f1d042865e046f84dbc0358a2e3b33ef9861a49444c804ab3b089e86bfedfb6aae97ac786f7a" + }, + { /* i=5125 cDividendBits=2420 cDivisorBits=298 */ + "02aace941345c27ae0f3ebf941bdab6d82c1cec32627d91fe5d19ae3c4cd090c9cfd1f3934f7eb7595734bee13f5321add7923e5102272dc21c07a5915de6aa7903fa3938ebd3000c8af3a8d0697ce7b77a01ae13e0c59cf7e812579f9a814312176362ed235cfd7e63dcbed7874da209c977c43e39be72d6fefd53d5f70b3d25a52006ccaf9df403f6a3eb5ef98556b93c88040496090d18566dfe4c420c95726ed54957dece73ce0492de68930b4de31aff355ffe8465ca68dd630876e2ca862cf3461eef6e728b82116a4821dfd71c764c196b854dc83fd6de6e8cd18692fdcae732b1a31ae52da17539ab54e7d6486d3b52ffc2a6ecad9b62c4c207c78c5e1c7fef92d1bd65d2330bd74322026928f35d2495ece83859cf2436d2101a9d0cbbd652eafde45e852f1ec6a3b41f2", + "02c5162c4d1112618166978989585e0cc551adc6ead8986b3a1cae04b0d48539ab0a8e6e4cab", + "f68326afe9a6dbd0d87e33dfce46e43de8bcd10856a0060519aacfe3c47bac81105091d2f3b69ab1e1c78aef1175318186effc1f7cbc27abe2866b27ce00b435232bab4a18546f9f8d2a417e74f688fd7f22769b5e7ad116e68e63b8f76c9f12f56d752c7f1e8e59c78708975650f51706bd0d6df3d089664aed26c59aed0775118cf38d3cb8e776959e0b79a67bd95faba8da4cd8fb163b592a6a96820ae0ce0e0e883d5eaa4657107df749a29e0f77b6b3e0a72c721fba5bcad4a214a00d280b708a28a4f576792c3bb646d3a148f7414cff341925c6234596c0b7f638ff6ade1efd4bbb384239790b0796fe710c6e192852a5a6dd36fa8ab8ee501e39d72a27b876e37af8105df7", + "a169fb97799f1d15530457004c7edf21623e1abac1f0d1de4256325233928a2956794529f5" + }, + { /* i=5126 cDividendBits=2142 cDivisorBits=387 */ + "1b6cc03de7d94d3b66c64b3adfe8cc05817d2f3bd68dac88aa7553a841ffd0c7d0f4856e62209bd2e9cf4cb68f8fac76499b791be8fcb4d3aa7c51a303ae6dd0b2af498c63cfed22ac6b94b30c75efd8c6f3e77a67dc4a2493bdb0e8d333babac55b9d8b4ac40ecf45269c0d8c1b6a345b7083d5b2adfa7142c1494dd4841701ba9c70f1649ee43dae44a6f77a22b9565ed9d2aab09f0b32f8cda22d4312f27eb9fc30602b18ca12c7631c5fe0224fadf93461a3793a166d82b04b4e6477dd364d6273af81793ffef92fd80a10b0ad5ab696c10ccdd4f8653aaeb4ebc5ae02177719db5a920186b225ed6bc56e84318cd62c63ee6221ef2981cd90ac30a8ad27a974bc8d841d7755867bb5ab", + "03001ac9e0601bff0f604398e31357fac0677bce35ce8ae7640f581b0464aa418e04b65f54470637a11fb793f121d766d9", + "0923ee76279520c4846868afbe9d74d2479d065b74650534fb6a7a61d8eaa32df60485007d807e368de3cc7fa6a0033713459fbf3117bf508a277081ffe9991d97e1b733ca85070089c020f310050bdda364816ed94852a437737cd489efbb259bc0c479239e3a8421518fbf163e0867d4eca83104174b9b907ec85f025acfa1621ed778df7f1b41335dde16c7407a9ee47fef943e2c94b48e6c1b3154554c9d61eceeb38b1c4326191ea626131a4fafc796561c2ff7eebb9e2e113f8b2f4310c497811f954d6853fd84103c241419ba3160b589859190725416c3d8", + "02df5cfd6fa7b1d1a1cd89e029b58b011a82dee82e69bf7c654817559dc29d26ef8893a9a162170c24dc058435dabfa393" + }, + { /* i=5127 cDividendBits=705 cDivisorBits=540 */ + "23f1d5beffe83989cf7bdbc891116d1f20aa2168b8fbb57ff4a7083925edafc64bfa74e48eb82d9412929f63909d94722ba034a7b4019a0cd46d9121d489dafe1d6e38a122e08a85d2c7e389190a02d262bf75de61d6bd2b", + "02b83856df4cf26fbc48fa1306efc2ef1f6f2505d662cdd860263d5c4553995719f8b40b5117c1fb22edf1c4bef6c57643ba2926c3be7283bf62feba9a5ae26f9a0934c6", + "0d37835a83eaddb41b8324e5b394043db1261d1035", + "01592bcd61dfb405b02f28ff772e7e8e30f40146918e8b1ccabdf85d1110657728fc77bea37261af7b8209875faf507c6dd0c265a6f0b7239d7ebcab8b3d1f5c8c34702d" + }, + { /* i=5128 cDividendBits=2693 cDivisorBits=468 */ + "086ca085964f48d96f092e4f157fbc03bcedbbd0014f9934f879b4215799497fb35e3f107c0f031b9889e396a568097e524aeec8491d69d115b2d85fccefa52e30b1a93a47458b6045a4ffe3089621e86e2042c6ed111daea4cf89c0fa079b534555347e5b60f180f86b2928a17766949266297ea11572167326ea3b1ad5c13ef95321279bfa418204014d944323b6478501cfffe06a71c5ebc9f868c979ff81dc5e3f74b4a4410e285be1c7c0c175a37314949ab34e2ebb963dd355c8cc1046662e9986355c3bb8daf92518c657c1c2a84316900d6a6ab54ec0350b5123f44745abd3d0d0c853cb4beea0de18aaa71d7aa42106a05aa096497cd1f490c6622aa52049167d316dc66dda44691ee6c0296afaddb7ce229942fc718337bd917fe000bb3fa8977ded20d70cb621e32137f2fc901e579931d0068b670cfca649cf879e1bca1c79ee0eb87369cc7c77cd1d99b8", + "9dd21bdb776e859ee3f37ad91c4fb02211fbb7aa9949966525b88320c6abb0832cacaad058e68462ed03e1d436b3ce0f90dfdd3969c11b6278a1", + "0daa40349502826179d480fc514c59302ad49808a33a1ebdeac3e969dfb04fda87ed4bd6b30bca0773ba05e378d67b3eabcca30a237b2ce3cc15b4429f52687a81179cf3ad03289be8404fc33a462f285c78cfe64d6dcbfd17cf6f473d9461a51996504ad3762e28e0e107e0fb29c9de10764051f6d6a8667328e4b80f2c26bc4b96581bbc7a8421d4ed429fb8643cd6739ba14ec6157c120049020400c03c699b873d1f35db8bbe316c7db3c106492ec8dfbe770f02e9c3f299842d4a99bec74710aaaaae687742863ede20e4dbbc979f5abe30f4eeaff70d0fd346ba4c7172d2ef67f61ace5bfaaf610847d432717ffb75eb977df589afacd061d15293367a5072d25a312d69f613944a63c164e0d57215d8892a70f2", + "4b1777a57b6e90584ebcf12c5ae32487ccdd9026f9c43a15ac8e8e92caafef3de249d5b6d08405b8b394c1d41295fe492bc19e3eda62e1d72186" + }, + { /* i=5129 cDividendBits=2847 cDivisorBits=2822 */ + "112f3a700597807f480f799091371fb092a1100732194aa4ded9403f9ecc029adc89666012aa3944a683b0ad9ed5c9e05784a6b43bcda69e11188cd9dc034bbfe511bd462c3749ddb2560ce393f58e31b5705f4f2c8cc57ea4076705524b3b6cb045204a7f09087a0566f4f2d7da1d0b798de7c09aa1c7bd210890243276826e1e28d7f5a3a7a852c2ca66879bbcab3b1b784f2642365d879a6ee98007a84c04ac0472161d2465aeac481d8cf29486a8d46dfd4ba5f1ad72ac9dce235d19f020bfd2aa34a7fbf62d4a65dd7fe6079265dda86567ea2783aa04a8fee766f3ed93f1fb4bcc43bb45c8a7dc9c5538bfd6d40f91f6286f9a3dad62201dbf1ad45dfe9c32b7e7bb9f50121ace2aefb58882d066b44437a2c79924b0aebc6f523176eeede6ee72e816150ece3fa395541433f8649de7a3c522b782bc96af026e910b2a54558d73cf4eed716d541258390c090d4e45f551504f976d2b5df32fd30fb8416d6b36b9", + "3757c744562c81744cc50d9ab1d5c525b51b498090a4609cbc21777c81b00ee5dcab1eb9f1ecfc0cef2e20f7cedf903b056d55a7401d54630e90d947bb59c106879e7af33831f1bd95110c38cb6d9e7a6651895fc44f440fed6dc077ac8f7344112cbef858c21ea30ea5559e9fc3890e617c566b2b719ea46a492168a3a475b61cf9cfcdf910840ea787c99e7fc433c07c5d5f29526c45468db49806cd21b5ab31b81bbf3862d490d8fdfd78fc4c7c482b7c078a09d402060419e506301bf9f0debc2a87ec9092ce265d7f05090d071d94223ddc7336f766f95782f38abc22464c914df29f9510114e1eb344a4523079eb8418a6a35664a93008342f1596b6dfd56bdcf5b8b10b411565e26dca6840e313d9d9b9ce2bd46f506562f6591881d6b3ac69b626f9da5734dd09b5759d236adc0e162acebd7b260a3065e3773b9ade31c640685e8c9251cd3486808fc406883d135f2d52d3c3460a80497e8efa58acef", + "4f7d8b", + "08f96f9607044b0877316a53e99a48bcafd0c7220813cdf5e2af1ac0a00f1d0985c6880069e988a51d01183be150b636f06ed87b715e69f429fb322ba1e5391150085b605e098210dad3d08f4f090cca8c459e75327406f41ed21aba1d8325f92f50b0f20b57a13fd8509ba286f2082070d2f950b73cd0d369e2bb09f32561b91ef8641c45ca3bbd0b8571ad15e80141aa57ee458837a3ae76a47d0a1dd57166a1974e8a36852d227df00509f8584a4bcc066a80f7b7508b9790e174372fc40e43c68508d57e3058d18ecf65ed30a3702a165e98eb981a5460ca1ee4cf5d6ae6386fb19d648894989ad62ff884240a002c407258be1d09448ea3d7c03f68bfb02b72ac13de654ff0b1f284e4fc09780ce0b336843dd02cc0bcedada385f81f6b1576b80b849ecd43f492e8c173cd4d167016660dbbfc011e673561ec87c7646cbf8232b650699d3fc55ae08a42a35b2f5355f130cb39e6342a3a3cef04d5139df4" + }, + { /* i=5130 cDividendBits=1024 cDivisorBits=775 */ + "02ed3d1ccd41c9f1312e836d89cfb92484ed2cdb507dae600fe68c14f9f72225b065014d4a3dee1885559ea5c9780066d183a98a2b103db7c5a4f7f2562ad9cd9ba3e62f7275bac60c569a534ad357528a11b769ea51f545702c77cf3ffc254ed021b7261f2ce385139fa64fda1d3d3faeb3eaf329b3f0decaea8e253766dd30", + "2c8b87bcb319e781b6a5b9ec75a0892680004256eef08280fc2e5efb442d2edea815cb3cfa4baab40cc6c4f9e6ae55cd9f3acd879194c18089c7968ca46456052f9d5751da6a637b8e4dfe6418a6c3eb8cd29c19001d465b9acf5b963eb72f1cac", + "10d1de7f8a604fe65ffaab62f3425c1ba343417050c7d5ca00abdf50af9a56", + "18279ce03729e9ddd226256a1ed6c47f5e28090297f70801f743df6b701ef557bad1dc6f1ba4c7812ed417838786a736f9ed004333d9cfe9f7e3c0c138303b6cb70c8177a5da22bb7b39c21016c87b07bde62f1125776a2ad6f9758ae2fcbfc368" + }, + { /* i=5131 cDividendBits=3840 cDivisorBits=2116 */ + "66dcfca3897e7b4be1be34700c6691987f2337ea321229261c2a75edce717054e83dc2034545ce82ed389a571706da8baf2201472b8407888b397885e5dd00f7273cc5c01c143c1733fc67299fc646483986ad7a9b285b8672bbe6fcbbcb1c9e68810745673a4ec8cc1656e2413027520a58936663f36a1be95ca1c20ac42cc594d30d73b1fe2ea9976761508dffa31ed10c3fc88bf680b4f685969f899c5157faaca4ec88aff3d0aa102f3ec4dd63be40e15aa42a981a9fd744ea0cbddb2e37d9e44c3db37b1ecf05b6c217441f2b2e7f62a50cec1196edd8f6ddce6d1e94e874312b2574e38215b69ce195635aba0b8b24c497ad7cc08b3bb3fcd7290721f5d5a1f16c0c32c1ded41889676dde579e0f5655aad291717f804ebe2c529407b5d7fad8ca7444446e7fc2e34df8bdb56029b254fe2b7a111aa3d56d239482cab4a3e71ac8974169350c05540bd41a835b4697ff357662ee3e8b133dc0de6f47fa565ebd6063f66345f0a59c151fda515d7ef6bf7b4113f6c1e932a39e8fa0a3233f7c08c437b4b22c3f37be10c7128deb28d2bcd58a112e14c58d34ac1338a282f5e052557b3e1783dda25e5b23ae92b6ccb1cd6f979c924160b83e4e59957e8f0b3f2e0d89b15d404495e73d0a2d9b404a8b3c722db5de69c9726105b7ed5a5b", + "01e3a92b0316a30c0bc1ad70b130b87082995a10b567c8915db8e237c2b069b24676eaef1f8c0c48fa491b378427f9672279a7cb753f748930efd54e64f26e1942e7531ce6e898f515db67b780e22136fbe094ab2772577efbea2e767d50b0df81e3ce2d4b60b208e4ed2429b03a03687f8a61cc0cd97713e1faa2df3f628f56bf3f771f636e7efb7a814c2f9f99cb226766692c40ef0ae728fb01b25209f0cb562540daba29071da55fbc3315502b036a5d2f8f036dfb277ec4be4df258b28c67f7295e152c34f16a750ba5c9bc66635964d477ad999c6800cf9726150f00a5ed066190baefe29b14143bd44eeebb49dbc349d09373171de0d9614240730a0ba61b3ad58520278648", + "3671f5899e147dd11ac722d9f50e9b7767cb430e8c1f4a1062580175a9a6b68ef644d23445afa6404966b8c5a484f3eb82ff5f16ecd9b751c5d5379713bf46b77769fca6e169ea2a9ae522c96f4b9b4470075c5b26706c84016e55bb584460ecd64a4560ca7f256c949f0af9520a618c4e041c921cc45f77317a3cf317e83fad24efcee281b3bbddc64b230e8e7b7be50ac4502b51bfe7b64de8f18600bb2d2bcf2d3f699767bd9ebdae025f10f0b9abf55b2653e74b2952488db07efc1e0eeeb6fea63d6e1ab793285daf214c2f6bc61d817b39165196d4", + "01d7a785c8fb4021fad226fc3f56bd5c35650f3bdf8fbd276ad292c7f9c7caf7d79fa5b8992c0228c5bdbfa450fc5c9bcf5816c2c99f26c7fe8cb7bdf43511516102c41ec5d37d5c1a01a9879c215544d3e470d4f47fc1da8a54e81d5fdf898a4ba97a54feb8980a2e16f11266c61694e427b258acfac99bd7ce79c68290a94fec136f68a27da10d36769d3c22ad98824c83eb43f1647faf3cc3e65e6bae57f1fcac24595d641868535a7527e45a7af25298c9071c564a212253ddd45ca4549703824eb5bfd98c5e5bbfb1a777854409360a7aca72bd3079b998d3ab722bb16642ecdaf237e3c293c946d883a0ef011ced1dd5037f938f4a5616809ac7a4571607cb217ddc41bbf6bb" + }, + { /* i=5132 cDividendBits=2429 cDivisorBits=2355 */ + "13a012817867bcfc205cae520a27cce6c1708b5f3039e8c407fa2b9b19b713a0e922977a32245672baa62a66fa767d54f55c3b9f63b4d0aad18f7068ee375ce07fc848acb988137177dde85054311d84361f33d15a8dd1b5188e71283d7c8e3778e9ce2e30535a4c802a73fc6ad3d09ac3bf389c08d345fa03d230c7146171cf4e064b10920a4f4803c1d440e0096d8051dc7b5dc4e61bbed2010847b2af727336f11c61b73510ff1403f0596da46328d451d82a10163d0f696da05b48373887dc3b83beed4a8e0482108ee1dde6c3a097d8fc753d4c43d52938046a11d3dfbf31239f3635b857dae4da622fad89770ae7a74c9fa69a11d606a1693ab5b9e71bfb29a34c5ae2fd226d1873bc3e1e3426d28d639dad26b15099d108c92564f02f02a9cdd4080dcb69de796b5aa35f96bb", + "01a92729fc6934f94e1be873346070ed172d9e88f3795ba5a3a61779789880c6543c52a05bd76aadeb50dce8902b91ddc90553db327e9171d72714ccd39819c9f65999d6532b9ce66f0e000f44b228445323772c10a5c052456981c6da99b5b0ec244bd27e5c15ae3bf5e9902028be140b504ce7522562ab11fc8372afe312041db623a435893c2ad668ccc2121b29e070b683a0c2bc26f89865d1b856dcecbe1a50a1587aef79cd5907777af25dbf8b3fb16ef34ddca4fc72384c80d27b2d0a15d205d1aea53b7b4a4c18992307a9015894d0b0c6f545f6ab2c1d6dadd2179c4be7f4e2d7caad2f48e414f111d34b3f48638bd11b6b1db3ce557d063fa28f3f9c1ae07920743ead6c49395431fbfcf451429bc85547f7b8d9f1e340884f52ac44984e785983c3", + "0bd12cff130517ddbe8d", + "025f46132889536305ea26bb48e9f9ed6187c1c0c58dd4279fba4952b49884389c9b811722cc7253eba17bed1b1d0ca60f79625f1cc7651f53c8c66261608d9955e5b13b43f3a553343089577aa50810d1eb592ca06ede0fdf81f4f80ed0e26f0d6b42aa8c27b7827194b7c4dd9a1938764794c00317b8e6a29804490d87d99d76c244ad4c1e424463fe70e3f716f34803ccd547f40d504ae8e47edda4f3f0a48ec26542e9c95b81d167165ad9099fb89f3a5593478bd33b5901aa9fc01f364474614bcd1d4b77e9c023864b90a8291f4afa7aedd372538db3750221b2a864e71c4b5a39fe9ec640f448c951a90a5d49cd3ebe681e94bf0c102903dc2f8b96730ac65b847b60c8ab3c81cc6c7a1d71487faecc30ac2205102bd3a905daa5c9554ee3a5f04a54" + }, + { /* i=5133 cDividendBits=2526 cDivisorBits=2466 */ + "041be70de63ffc79d05a9d261c6d491b130a2e247083c2f8f87154319993d03b59b397246678645d786597a814195604d28e2fb99251dfb0e4736a8f2e067b1e8865b4a17db5ecafef54a5ca7990e212a4c8edb12088aceaf4f2f7cb7e10ee021db6bd64e6ed63200d09ee7f239dfd0bfad8be080c828d57cfcbd4078b9c0636b4d9233c423bd0c7a2bcc69e4d3abf0c83f6ab63ae1cfec456b46827a809b9f53f56ba7dab04d290e0277aea3b48e913cde6c9beb970d26922fc38d6c9f92a9a233841f880edf28851d4205bad8aa2e8b6fe93269ee2388e0285ec926658aa1bb2d1c2e61fedaddd1df4b060c5a4cf4229a0269b2238eaf545446997372dae94515eb9915606802e9ec334b104b7f3f0e0774f709204a7a46e27d47c493d3d99d46afd204ff13b8de65f7d5d3329320965124c31e56cfebd90ddddf2", + "02afe698f9151091159984033532852311c0784547418fd9de5d1ede8483614c694d76d9d46f5c3dbd306b2eb98f64d9477dedf984cbc80afcca3618a72aa5a0a6cb3265b1281ea4efc64fd138b982bc8f81f2eb04a81a3f2deabea68d0f5d75819ad99e368c02edc80459db696178a70ed5aa0ab69f4b255f28a39481e2793dd4555358230f257df8fada90131ead014633987e765e816bd08d5006cf839a31b7ea04e9b6cc973c9e9acd1aa12fcc038ebe12144b852b60aa382e32d6c7b63c71be892e08b7ec1ac61f48a79b4741fc50532e44405fdff2386681d3aca421f349a7df5f7ad8f617d754dc5833b47d06f6a43e9833b453491e6937f26b62e104aecd77565ec49118e07e6328983512cde81a885197bee1e1af2f7ad34a406f92ce1dda9cf110adbf7f59463e84567949830836c878", + "01877649ac22c6bc", + "0260dee5b585a95a04ba5c5e48a5e22c4dc3f422313691875a7c4239b1312092306de2cad1116f5bf7409d4d44ac67cb34e4f17f8f41137908bab751c02d532934b83396156992321237cb89a9559ad2f4c57c18f04d86c4747110bcd889dcf869e89c58b74f5bb42fc79b488f53d13e231f5c7ae9bc198eca741141deeee86d533f7ee817d6b7c086d4bb3d13da857d19e78ec5ac210f1df5b588c59ca2584c67b8bbd9c60b5077258d5407fdec596c5e86993ead46597f36d2b6292e91930d9c277bc778ecf9910cdab492ce7cbf19a34e242f0958e8b234dd3c73a6deeb723622eebb97c867ca113be3e21d18ef8527cca82b572e0540ae5cc899601a4edbc65bf2475b8ebad94b6b99de26bd0d0e7d7987ce57dbd049aafd5967dfbb28d0d0c1e72cf140961d4a71db26ce014549f9e9a5d5d2" + }, + { /* i=5134 cDividendBits=1927 cDivisorBits=1297 */ + "4dccc42828c9fb2b45b8a84a5e4ed32e6b011e90eed6260c19861ffceeb1146e1c97633d9e676b39132e36f7de249c3673ed04efb26586547c32905c9eb6b5cfe1820108f70b6cee16bcd8d46358bbb7ed70bc6a4919db6da2ca86c8e7e22bcae983ee4b78da6368067b11f88aa01b506415ce87655622e8ca71f5b3b5fbbfb1a5a48fc1189ca9ea59a20ef268656f429523b15b3548a929b7682b5a774110f5beca3465d3d2a5fd1669cfb14c374bcd7be0fd5213255ee16c6febf3fcfd602be0e70a8f271f1947fdfebd0a4b8ea2b40ec34fbf24cf1fea00e49065211a8f376054a67bb165a1f9c0671eaf0087cfecb1", + "1c328c0cd7956c9a855c98f19bed608cfbec9e1ed887293698885e4a33b395cd4b8a5270d37a8bd74bc7cb8cacf3f4ada33f9fafbc709922c982a0d1cebe4628d24b0ca9545554d70e4736ec08e6b557a6f3b7d1540f74df2d3ee57222873bcaac479cce3859db48de6e33c0fd64cacf3b6942ee0d3cce1377293c829d428d6945abf25b1db513a8d612e2899eb155abdddca910c6e3cecf3f59730fc94e77142d43", + "02c2550a5d37da98c6b1f499562f15e5ae7e25e235cdc897e62a6bd048909f194564ed668ff46434b194331342c9af2c50fa8597e88e0e2cf454bcea9b7213fdc497f3626aeaec30ca771099c763abd3", + "180eac9f7d86ec99a7da1f7ba3d692f353c16bdc5952f9ff19b4575bcc1aa4ffc9d96ee7406cccd747712518a01e97d93e5f75730a96785fb7f6826e1d00496f92e86449ca6d1fc317d23c08708ef3675ecd7bfcf258f270131f55d5d8ffa9726b63a7dbbfce003d00ded1fdfb39002444428fbbf744611b8fb7e14fccf3e3ef7b923d9a9bf17e5bf2c3657757af8a08c89cd724b53e30438095d7b360c25209dd78" + }, + { /* i=5135 cDividendBits=2839 cDivisorBits=537 */ + "5982275ecaf6650f516d8a2e79f5a39b30a67370c3e9a31c895c505eee2f73c1c13446f087a213de4d759d3e813ba758d97ce4b048904e736e143369160ea88dad3b0167f75064abce1e272a01ea8d6d181b4ace4efc984d7b3c4d6bd0633234dd5cac5356497002f2dccd4c9d26fb610a8a33a2d1a3fdcdae41d9cc8db213fd164d5a5acab13e60a5e47434a78850932e592d68a1bdf20f3df860cd86ce38800e803c4b66d2b2d5ecc529d14146348bfc325b96a0894336f719fa26844c63253546341030c65e913e76d0351a36203d9d8b772609cb84359c406dcf4456e574a68c8fdf3b589f834cc11b97aabdb721f958c33ad1995f3d489d3eec4098be9ff88fba51b9392bc3a8e4742e653574f9e5f818ceddbc4022a622a6b5edc062bf7c6372436def93e3ea45a0223b9e92a3fa1e90f1505aa27d759574fe3cc82e0c58eb37f76fee414ce2130bf7bba239bd3f2a1ef1c32d870cc7d9cd55e86bc37c4d3c4f", + "01259a5ffd9bca1f666305eae35dcca273b9db5e5dcae29a04b7f8dd5837d094ecb7d2511ead933fb8079069e55945401a0a02b5531f61301e980afbd4df79c04bf5210e", + "4e0b70089864b5bbaee93a7f4081fc53e940b563afce81c4946ac57fe1d5d11b7be6aaf3496febe383745e7ce13ab769680273366405f60696f25c4e0136b241f257a83eca2870dbc57ecabe6c47ec4999b54521065b68179e1bf4bf9daf890246221b1fdc9c5f131a600c3b315416dbbae64c4a6b1516bbdcad0002aa0e35153f05e0fb7edd673fb9fc8320e74bba7c415ea7ebd84865ea370d8981392f7491f59d11405b7a11614622a89634ae0a37675ca347836b1f6021336748f07b196cbe90654fda3ac9698102111e9708a719347c4f7a080d2cb73fff83c8848d920154fcf4720bab57677988b779789c724c3a4049988e652e423602edf13e3a6c1311ad3b8847bcdd6991bc75b1e7329e2d485d8e806b5687efc23aaa8b5e39636c", + "f76123fad7ef37583bd88fe360aec7cc5865aa18e71149c0a382ea55822bc9555d30332e27aeeb5ab16e0329c8ff441d637e2cc598cfc4ffd95b44449e86f224fce067" + }, + { /* i=5136 cDividendBits=324 cDivisorBits=284 */ + "09d7a3c0cf67aef530c8202f45931ac25d412fc8e10a0d684a78d45ed5ef07af6a13fd5544ad639b3a", + "06064cd848574cc092333d28607e353028033a052485c853581328f5f2f6d027d8134d7c", + "01a2397a41d0", + "03545ef7aab7fcb91624e2706802d1bd47acac64fea752ea82c155dd1efc4d1cadf02a7a" + }, + { /* i=5137 cDividendBits=475 cDivisorBits=135 */ + "06c48cfaf06ab9b6ca2e6ffb1b3425e99697c4c35683200dfdc76df8626a99e08ae05bb2f7d8a96f7b76148050183a50e14188cbdac42aa2d67ac2d7", + "7c78544ca884ef6ff855db6ada01dda7c2", + "0deb5f1ac14d3c952200aa11508a38b1e22f04fe954da94cfc4a9d8ce3752f9e536ce0b394c2a59425030b", + "6cc44b90ed84c5c7834e59772fc1f34781" + }, + { /* i=5138 cDividendBits=3110 cDivisorBits=65 */ + "38c457a3e18263e33c1bebb06a4c9816d54b2b5c153693931401597b7046dbc2b97994ae1202962165d940a62612219cb6e1fc26e87d8417b7fcf1a2b55d1d9609f7edf0372096524b37e2ef1e7b5492c9a0dda2adfac66d12eb0bca3d98047c17515af829c0be80b6af2a64b9591a0450153f51beeb94d74f843b1f4b3d26fc0ffbcaedb9b50207ad23881325aff079a80badf7e9c6a6c61876e7103796dd0d4a62c2eb44380496f718e966ce613f948f45806fc332cb29b593308bfa22e03ae1cca6791c7ca480b47dc3c794b9815f2b374df92eccec7410c3f7bdcef99002b1daf3ffc906abf1a283d020e61ee6702cd7a4c3d06d4a11987a2c6ef1ec6cc95ce0fdc6f0ce8d47eedcd474037d524233a97d87f12a09e863e827c35f8a8948eb1282a0e203d86f878b2e021daa8e6f4719abf2540226569c2c83cfdc8d82f6fb8e954695d291c41ff125d29017dce90000919fc6e51fd2c5efb4af4a9c8875a36cb4b70626f66d382de763d803ea6d45fe3436c1d7cd69b756ee10e526bad06df844b08f", + "016cc38b74eabcb488", + "27d725507d215d70688502d6101ecb891f7ef05440bfef3a3d666fb26359fbc8abdbe1d347677462017ad4721957918c354dc1e031b34e86d7b1ce668bed9f5f27b9b8c8928c87c487ef02e4f24c55147318223ba0a9bd3d551943b5e89f08f73af2b12684f03a54a371d88cc6297fb63dcb2a4536e05597874347566c3f04cd1333420016e805e81af9d89d2887136be71bbd8e4ec192b8f3d38110c2420ff12a4707bd14ec3c2650ea196e9776dc53d736e691cff89d708a055bacf3c4b9bb84cf067408256f28dc0ad257501e96104ae0b2f0600a478287fbdb4529a555a571a3d0c096bc4112bf006718c7b64ed9ae873af21ac21f3dceb88447dd0dc17d27a865c31c36467029255749fd8585609ed8989a398b2d266ce53494f86afbcf3c5954a763bf68dffb3336979cb317fcec61144ed046c027d98abdeb27214242f11a2728fdaafa77763522bce38debd232c1fb07e89547b818ba8a6da314493117f8c02ff39725fe0cefd8ab8a483d6d21819c55195e3c428d32d5ef7e", + "0100cf5c8f7db0dd9f" + }, + { /* i=5139 cDividendBits=3941 cDivisorBits=1276 */ + "16a21b228c57ea0e7a65e69591e0448c79920ddd252b3dad7a4258d66c7b0cc70e2a7a7fab79c840f62f0b0ef21faad3e5789c2e2a77f3c714d0e6267915e75d547bed6ee8059044a11c1533703ba56b122d832e547a3143af1ae3abd6acae05d5d49a7b329b8492580fec6175667cfb02b6a342588c5b9eabe346514738f1b545a2d715056ccabf72c60576745bcf6353e429a6839b8ba5701131d3763d2f8cdeb46f3f98644d86751951894b72be29266c205dea10337e0b97b5582ab2032dd27523d6c7a2399867d4d4ab1be86987e4fc87287e354b84196a635af31b9fd8c762a2d7eb736093f65554f435587abbec3b2d4033d781497a9565499fd6b7ad9f482c7ae8f33becb03d95a126e3df72894dd84f3a095d1b19f54dc7cbc0633e9fc0aae3309fc803a87f73f2e9f9ebeed06e0a9e06da3451ddac81216c876bde9bf3d21e964885a12059e9567a7dc9d2d38dcf4d43bf7ec1b10a547bf8f6d2d6c983c5b56d77edd415a1736be662bef3adc6a8efed8389f195e39ef367a0cf497545cf4b0eb23b1e740e5fe2faf9c93256ab4577a4bb786a4b9776c7e1ed400079c9747f00947bf87863423c81fb095e9e9a5bf58a8dbcd666274360b441728567c22f536ac9825111d8f6f8441d9ccb00442ddcd7b48c299e127a329062a7396d78ae3140127ec27b5a72a564", + "0e71349aee66e9d1d206ab2d7093bcae0c0739fcdc76464ffa6a5823fd2364137c18828c1da9ea23dcbc1b44cde21eadd3a026dc6ca0ff72278ac013719df81f8810558e3eb540913b8d836d7bea22d7d021f1cbc2ffadffb034718ceb56c7da7c55f467b39d2dc17083d5a125e77a868ddd8a0d62e4a53f80e9ef72211f450ec82ce392802dc2536385cea6d5f9c4dfe61ee32d00f5c52f47349cdacd7393ad", + "0191314810ed3c7e7761e43a56dd1d1e9e1a9eca1e0802299519b169faed074242dc0725317e8e3577a1f6e7d4345a53c03a996c4f3e3efc55073b0ee7970688c6094a1957100a1ab630ab495a5f57bab606fcc9de76cb7e9e48841dc759159f8804e7bc652a47d81451535ae89d068583121aa46de12dd0f24357f63696be53db0d2383af8a7cbdf009b32edd93d5785840f8bf8952970f1ef31df1419e337c27479d7ca2c6188fe68f170ca240f807c3e23a38f3aebddd46445f40d937f950f2560a3e79f7fe1f493385705ee4de5c83e0c7247f7ed73b55b3929d486959d9dc3559d792262d888a505678c020a2c7d7c87556aca82ad47398905f8bf5372267d265451ef8ddb1215d1bd675eb2bdba254cc4544a16f4b718fa456300af4761ff41f65eb8922ecd8fd0eedfde426702627847973c7d50eb22411f5cbf71b4d547a954d84eef02f93b96b385dd1", + "02f832a2e83bb817dbd28e1749609392e53edd89a37d76b8fc7f6813c129d78d6dfaf3d336e084e7bb46072fa94646ec9dd8fb69b6fc1ad66bfd210213b92cac93b7dc364b7c174afe9a147be1d188e03b21ff85f5fa203f5805e8e229579173a49055c12bede0798ee92f6441159819b9d9f2ce93c9248d6bdb6e1966b87afb50fa74bde21b3e27add3341a77eb58ad16a393e134cae81eecbde83005993c27" + }, + { /* i=5140 cDividendBits=3864 cDivisorBits=405 */ + "fc95683f81d42492920e054bc7d82a2fbb6918d62114f8dfa7796eaa0b97ee34c408af42bcf40955989d330f6e7becc969d78a9c809067fe033e2af128af9b8bef0b1465de932e61b9c2d72f66b97fd81cbf4c952855aba6f22c1b5240067080203e501ae89849b1c1ecc390fc5b32405261c4625b50c82a9fbf7040a616bcac93a578d5d1ab2bae6ebcb562c722bda63b623a0a8554fbca1faf97700db5864253668499af24ef57b7465a0c9a84b5e2a89890d39d5f30f5646793d0054e62c0f96dbb3f268e055caae8da31d914ab0eea6080533c253a25dc611291a7b26df2a1edc704c57b315ea805ab978b09e1c335fcce4fb28bbd7b5222a51bfecea458c6fde0595a80e3279d0fa3730477c674c3eeb17662316ac8a2c5de280dd4230655296dbd211b055802123d09513a183b17ba8edcb83128c43437006b6b7d187616f812241eb1b8f724d3f4247588e53f7a6117db5d2cb9890c1e16afe6395cfb4c28f4120f786d414b4c755a8d5f6874159fb991aae54cc21b4fbf90055b70899721909dd30e0e236a752804386e54f610d3af9bd42f849345c89e94516b25dea2b486cdffd8f845fd4e028288c23ed73f4b5f513d1fd8062ff6dd1eeed9ccbcd8821f598034ab8a462245dfc40ed43a2e2ac2eb7003757672e28e57681b912fe0a3ee", + "0428fd132659fb19ab4c180744b6e13100af57f225f1e00a27d15d89318e68e752bb9ea038014b54c40ce9432741b8cb1920d0", + "3cb730c2cc11b0eeb0e97425d29c4896b7f961735e9f74e579f56360b81e5828e3a4ca7e0d5b810adcf98dd3cb10673caa35c6af10759bff7efba052ea49fbff9859e30ceab41dfb57fb1c2a041bb7b5c9ccbb0c4c4554c601d7181480f4ca76d3ef9f8bbd7da4c4e54072b877390690b45f5b2581955ff622fc62d7f2b560ce94d07aa12a826ccda9a7ea7cb152250243bc45b58568ab6bad750c4921bc8764ac18cf4385b34eb85858551754658209a922a02d17835498ee10324f40f945cf6533c02967fc292c873f2ad69746250085f497d96a9074f45b17b3e78665c31848be975ca32d53377a208ecc5b34ee8d4b2ea51e044be7591ea8b3bfcc66cdf4208c6dbdd4c7c2709205db3d98fe19f335c2fe7410df4f7e0efd0f0616baa2772110ab1ca779ffb942d46a1b817073e861f065791c0d4be5ebef3475fab648d515288b1459cc1055e3fddb4e76037d53d528c34297e316063472f3e18441aad6c617033ddef65c9f1ee72705bc906e548aac37061c3873df14f1cad73d888106549f489f21ed1f7a53b7d3d6f836fc07d04316c57a5485862ae3c3685523c82d58048100d7958761588f1732287997d2fc", + "030548bcfeb31afbf10590e49c1ff5d64db1790fafcebba25744a7fd49a07722df7aee5f26d8b656c2ed0125d56639fb89b72e" + }, + { /* i=5141 cDividendBits=2484 cDivisorBits=2024 */ + "041873cc9ed101e969c287c6fa2c1e3ab3e09623c701059fa696cd57a8a6833933ce195de075c7b45ceb107a0148278e4134d57a866a4189335ee8febaee4c02d2e4a5822c356caa3cb31e7f92c7dbe2c5ab1f314fb84642a51a231abda5a0fd09838a13eef2fe999e34d543d52caf36679735eb136b6b01cbdf25d122b720e0ee4f2c80fbdf3a1329f847fa548ed705b52a97d6c4ced178a47de1edb26dd9ef2f21ea6bfeea5370de4361fd6322248a04d011ff61edef4f5fe2fb473247f36ba320d4b5529ed2ab234c41252f7c728312747ae9c1f8c18e33a63a6f134935bbfe9c7296f1cee64746a8272920b1b7ffb82d5807337a4e0775e35ac0c855a0254087dd90358f152b522ad957b6bffed1deb5f51acb5ae095a6b17f43e3fb7e2b37c38a7f6022e327b9d95b86f0a8df380c9d94fb69976a", + "b84c5b92e0f31365cbe72794b431865b9e65704b99e8580873ca06fe21c1f31bc774ce463764578e1e868cb69f5028f6e68966aa4b0073eac0718477b6887497e2aaba50fc9c904d3d689b2bb3fdd9dbe333dc90a129443e8eb070ec13da20ad5464887b7ec2ce769d95d400e0afef9c2b568027d9b12b0eff599ab12bd448b9f6f21b622c778ac4fabb0e7afbedffb2b9591f063c65526daac803461e5d5c4609dcfc039fe378184e12e6e02fbd4668b6adfdf406cc4e776bb45b8500e603756c9116d9c27a2762c774a0c1a3fafcf80a03c5998db6e0a7d28e91a7cc985c788f52ae0d80c837e6a44ace387bee4e2a10998af77ccb6c299dacb4ccba", + "05b05b00e7d26f6283413cb08f1c6c42cc1360722b6bbd20496a72fb60edd450b65881ae0b51b8133fc35884507ed2c2f3a9477157f0ec772f73", + "503d08ac0135c6827220c2bda1afe20e47f6ab0ce170f351b55a16d0ffbc27855ff6e1c729e921ee54a42d5029d3df154cbe4738409b5b7c6624126d47d5e60bfe295b63c1fbc55ddda015e492f83998c6bc68ce32176599be72a34e04b76acb9ac97e0df8541506c8bb82f6ca44f78414362e39f1b097104f8e8abca59268e2fefc214d9b6c84bc9d96366be4e13ecfac9ddd7d545e98c9ac12089eabc113f38614770818110c674de0af00987a4c4ceb6885364d8565b58629ccd837b656f311a1a83c51b0162d28f6290e9727b99c30455e0fc6de3095ed88ffbc26c454784b805ad123fc245f9badab633106cbfb0607da9deef822dfe4922579dc" + }, + { /* i=5142 cDividendBits=2458 cDivisorBits=51 */ + "01e19103d559026ff4a1fe18f0b847d90a3f4df65c1c318fde553bef58c5a4d83bbacf57721e67ad23ece0f90f6d25bbd3a77156114ef9909770b9030008387ae6f183058d90ed3e7e2773dcf7fb975777198bb0eabb11ea2ba78acbb6f29a7021991fc7e5df4e844c1989b48f59d9e4a5e5c80d839645f0ae5a8ad9257267e028aefed1a9ff5d449b3e9f64bb6655603e602414f7a6c59000724e7ddc7013ab09bf6f514cba5585e73e3924435b12b5a4594b215419334851967695457b9c562dc719a877a84ae0445429ea09fe295f3e2b67a3b4bd0f5ebd4aaa76cc0a9f6b26ab05f867a7f8fe510b9a83764ca5ab69f7b211f86958221ebe1fca7b602927ff0c0220646277706fc88e10886aadf41163cfd63417fa1f750dabf91f09b38344527cb6f7579954281fbb65daa467fb7d8df79b", + "0524e511ee4eee", + "5d9d6c0d70bf765b5d7b5f95d58cbe37c52b4e90b17adfcba4a51565a3dbde30153ee1a626efaec7357a654c6839d261b49fef86a43212af47611dfe5e7b608e09281cc4fb769cb1851a25ad86cd213eeede8faeeed9e7e3f398d83f94d6c225e8b22685ae2e6036f311b9336bc176ff559685c636049a115c8d0afc3e2a767b23cd909a13260a7bf21ce07e11469af09d472854ac4556a361fd805b4db46934c4dafb3c05832bd228d4648c2c4c923ed8c6879e883c42ef6681b371c6b7e72fc2dd76c7ca820562af81426e0dcb5d1e337a039fa9971545bf7934e323ffcf5c462d1b5a13ef3993e3d84d4e7780936d42f886425f52cd3d46374ba5cae7ea1c59f9ee995e994a62bc6054355d1a54b7f9ffee5cb83af95439e4df67d2885f1c3b3a31cb0f0742422fa9be20ea", + "0491af9d38120f" + }, + { /* i=5143 cDividendBits=539 cDivisorBits=297 */ + "01078d410993dd7394cf6b90466077e31180ad893b0709e7082ecdb95ecc517a63a5d4ee4cd8893c488426d2b4d7e81b85de007b553c51bad43add5d6d330287915a3905", + "4cbefa97c99c90aa0083b6c02580851304917436fde57d1402f8f73df96b6b8e2ca7e62fb4", + "036f1fb90d7ce49cdfdb0ba5a4a58c16ec093ccf9d35895a7d75a351b65c3d", + "4b4c045aa63815217535e79c0327f77d02d6d221511f589a2cb0fd6d374a593f32f8642b21" + }, + { /* i=5144 cDividendBits=3001 cDivisorBits=2858 */ + "01fa1a49fced6531a02218b1765d023eab1e67b34d3c5495005b727bcca4b0faa0900942156ee185e8ee7dcb1daff7ee859cbf3d34d83e1ea76767d19f0d1291232358e6a18979cce6eec8ae3a7c348f0e870856523c09ed2af78affc3c7f937911c9532421a46a77f379cd1fa61248133ef9da43f6d10b442e407548d03d34533136e0930ff30d169a23180e40d83755b05e2f0331fa2c89084bbb179d1e51b85448b743728748c0d7cb43939eb8b38571939d2adf0538fc3de02ab01c250ee9910d4768d098818e3cdc4487d03da6b88b794b5b6908bf96377a328801e5f82524de293e79d7cdebc4b9ba484f6b6bf84a73d461b0852ce7fd7342ccdb21b665e1e42891bae2077edacb2bd766e4fe29d4585a74891c70d1d8d4d4d73611b90c7b9029caf8aaa2f47989cd134a9aea1901152dd66c87be5fe5657e59ed28202f62b39e64a237d553f360fe6b702900bea1b6e156e8b5c7aae4a0827c4751c46077834f6b49d46f9362ddc56b5afe63331e5cc58056f07e0", + "01d40a785a989dbf1e0813b5019bac3bb9a48db5eed0490d12e3cd3335612d39e74ae88c04ce8cb789328ce6c7697106ca2307f9322e59302ce226910ffae8746e957ddb19a3aea0363840d832a6f7b65eec0817388526923e50f9b734953ba261d3696f950765e9850883182bc542e7f7daf98f4fb278d77623174d65edbf4bbb22c8fe70a4a565b330fabe7bfa74b3d47cb607549268a4a6122757dd07da2012ec8e371544ebc1e8f5aa7c20a5bd69dd3acd733fd2ff617b82f0b71545163c0166b09c46e4b0d01c6dcbb104bab595328bc3de6e55ab6e144f1f16a6354b87a7421b693ec4d7dcb5d2f8a468936af92965c3a8cc159357cdfd9520df93cbb6ba0b13cc8d626363db73b6dfcf4fbd1b757fbf0f4af597f4c49d995716219146e1aabc926145210ef2165a224e53bcdc8dee12a7c2c004be1a8659102aa6381ff06252ceb196f529f712cdebf78e6d1f79df8815f75d5d3c63e043a749c38e58f4c54a28492d", + "0114d17c88b2dff0a0955e05b98f650b86aa3e", + "44bf8839b9fe98682e53263d4be409af1f8715b156725dc584914eb12bec0054dc1819c35f557738d2f3ae6533c90b3d40a1fd0bfad8647c36062ac60decfad5d6680854cce3ff9f305b4876f60143add75a04402745e9513f1520d838e429646048216caa3fef031e85329e327613ea73f12c3ec5d4f311a527b15044341ba0a147df50c791617f2163c5dd1d0d8c47998d9d18bf6c0e6389e734f2f0ff14a82dda55aad49c4d5c1fc92883635ce342f8818df1292c1a8d8c89510b8f2a761ae9879099b64d09828270b5d0e62147a950b3143215e2c89c484df65d27f7f638c44e6f67dad278f71652f4a3bd7212e3844bca899cb3f2d5ebdd8e54c9fcc7f2003fe69c60f0096bc2ab0c08c3ce6edbde2597047b71e6d14ea614a1a46ea19006a9449c399c5cdfcda2b4b60584158657da0af020a32702f379bc2bda2dc85793a652ef6bc54613de0e1f5da56ca9fb3a86ec4e3615cb590c085ba0e78710f35512876cfa" + }, + { /* i=5145 cDividendBits=2609 cDivisorBits=1897 */ + "01e64762f75ccda8e2b2d6abde4f2afe3dd85c5a6f5478af54ff63a55afad2f4103ee03e69c1e50797e23fcb899b2a958db1f151a0feb7a9ce9df097827948dc3c7eb4128697e7956ad3aac95421381993eedf32d79e32b121b88af61813b121d5c250cd23cfda198cc21c3295c3aa8539c52d24c1285b64d23b5fe8a67b9d1fa1a03c5ab84bfec931afed4a08366f1fe4ee837ce2a0623859b3fe3a0ea190332b210b12fd59817efc3122305216879c2242cba68bfffab2d91abe4cdad119950553543d6f2834d821df10ec18e41965f2288c3c1a0416ba0b2fa2b5e0eff8335c7fbd5ac231f4ef9de9c044b55b50dcec2773673e1343ee0ecc670bfbfa1612e306db10125d420a54379e67a0a749a88d185cb638e6973a2af4f14725af0e82635489e3a3d3596945aa188ecfe9b4ea44a6ac18755265ebeb10606bcab51e2ed8264641799dfd", + "01a15b243670cd191f5d2c2957109d345c37e31ae44ed7808dcbe3e6778b73c0f7f79d8eca13327cde65cb370bc86a02ac42a592b05d292e2b8b79fe2f09af2aab9408af6e34ac0e3d7615e1db2e6cc62ba1de24d7c5fb480fc511cd56f8f1d76be4a0a336ba60bb5c50c6a2cc9a516226f376b169672ac9435fcccdf4537c3af798e826609db4c67298dee4331217e9375b156d4ab904eb060a038bf278532e148865ddd6da43998c122fcc6c21d8c167d8f6d1d3af5ea08ed56d05fe2620881c617bc528f76f673882f111b6ea175df2f3e144b83e77a3934ddc64e9a4c3ffd8fa2464d140bb4931b2c04978a5", + "012a46b7f2dc8d719037132b7e140f8f8455dede7178e3c5c23f028588e26075fa1f3573f170f06d49c529e701d6f9ccb922c52a3941537535c5c491a5834e76b1bd5c002bc7b4563f0db8c4a2bf6efb312b330d392ec477799f", + "914755d3e44fb8c0b9e33d1e29d2ad3248f8f4cdfb89891e32c17c779ccda11ecc4775a9e4f06109c4196ffdf929476da03e17755c6138a932a78ed3e630bf8eaf8e1b3828011ac31f9b09daba3a96fcbd0c71119ade64fef99a8b0a3ae30c7cf685763f396eebe0cffb68499505980604943adc0346d60b50561736906548c3a15eeaf9e6b09ef2d1326707cc48f96fe4a037ad9a80da12e1c36f39c637aa35aeba5757fa8b86c089a34ef16ac209059e423fd2c7cd807d9c10c9cfb989787bdfd78c0d4cf2f306c9526a04d787f7f1f649f375f4a1c361665c8f264873d4c4fab3fa11e76623be32b11eb282" + }, + { /* i=5146 cDividendBits=753 cDivisorBits=682 */ + "6f2ee255d9b9940b3b231003597f0b388c0220a0ba4f6753f793199f3f48852e0dde014e7c8ab4a57d596db3dea02e20bb75b1cdc1477acd866b42243fecda7672064281ab195a0cea03009a55127952cf12bc049556633a2934b9aa571f", + "036d102b872feca3ae5228ba79d167b03d75cb1cd57ead91c149e775856d2836a369de586d87c809fe144452045274c7daed79f2b3336b1622d3fd27033b31b6397fd615757e0f118979d805f9d287d1f3e4aa9e7ceb", + "2073d66d21327342fc", + "024feaf5270609baa845402351c2c0b50976efdba6b5595c8a153446d7d91318c7fef4ff5ac49d8e41c22b7e0c1eedb0cd50e287dd60ef05f1fdbe482cd12d7a8414432de325c94dad575f1c2107df915d3ce5e1c9cb" + }, + { /* i=5147 cDividendBits=921 cDivisorBits=493 */ + "01e6e4ebc0d06f2c68493ae6f253d06c3896d624e8b0519ea0965fdcd68c313c7fad133257520c4b9c1d1d5b44942eb116da4d128360e35c3feda886de26c96ef439a4958a08e79016ea4590cc7f343f4f357b6c56697e0a88b00407b611db9fc2eae62a98c43460b207862c6a0a40c4ecda83c1", + "126119eab32f6e41c0d8fdd0a02db51c94c68eb6bba1b08ee75ba61beb584d5f04012e78d9eaf33deafb4d852dcf3b398f62766ef8ae8d7f8ae4606caf74", + "1a7dcf342e7846c6c8a54c5708a72af8b608fc3c6fba39656ba124b6345cfd32c78b7dfd382616ecc87e796925863abc6c12303e9eb5", + "044ffdc7b9280983fe028e337ad872074cffdfb29d40249155e29c20a6b0112871c1c6431d1aeb39d53323bf968a32fa05fc0b54a1796ee718696da0debd" + }, + { /* i=5148 cDividendBits=3084 cDivisorBits=327 */ + "09e7732bef0508c287c7b2b5f73c48cdd342ab06e1555116a804adfabfccb3a68e0f8c39021ff71d6e25b216814d532b7732c33ae67748bbe9377492b92c2c2134cf3ef521268bf096c4dc014151300fab2f749d97af0d8077b406946462b306d5f03a11369ef0e62f682634d35924616ea7d8b829edd83ec09ac1b7a52ecfee3e2ea790f1c1eab7e404e1279139b20563cfb07ed0abd169eda6037785e55b49aa760e963b2f4961aadaf38970a5cc5672623fd25093ed046e30f632190852aa08d84068273e7f0bf5cbd25f8c81d924eae9358378a63ebc344bc150c557ebf37bacb08d47614e0482679ec8b71a1c3b0995ced7ac48a59765e5c8d5a1e1e8fb6711c5f2c337196c80bebb1a9ffdba7df301e8af5d0f968184af47660e4d9967f1cffe46f1bf9a785905c467d145bddb3dfb2f927ada8eadc5c3f87473afd12741aa0036211a4b7d620da2e986e18560d61a07df136fce5d31caacd660cdb183f56160801fa43f443c547546b4fe546e9c2c4771bee3a885ac1cfcfdedb67fffc935", + "36dd732871db384807569a9b2dfd288574a3cdd74d15fbc702b6a976d4ca1cdb5cb52c54ee0f28c7fc", + "2e366590acc922f379518d6613a20dfd99ab686c563a1335a7b58fb881843ed603db08671add13d8ef02851dff7b7b801c689d0248b8bdfc98695fd86526aa102790d2be7b8112c29e964d225ef2469912987151ca0d477c8da700983c41f4d73d6cdc19bed6292c036dd3b79cea225a4c458f87269d4831f7860fcda5d3371f165b7142012307f120ead5d991f7ac79aa2ad819d7aa448f53fdd5f19c1c75c3c3fd2300d1c746358a0fcdecad382f1837fab5bbd7389fcede9baeea36a152cae3b06eb89c85c72d00d2742c695a31d18037ce67b3af803e07057fb3fccdc787d9c38dbc27b4528e12f240c986cc0b6e277ea67a67d89d616144587477817c2649fd31c0aaec730a8987567acf8baba8d40fb2ded7a7c1db171c7de4126e6bf7a00ae85ac2776da368d1bf3d281cff1e8835b1935b5f699421cb606a4da0a66197fe15bd1256d935d013a0807e9e8620eef8bdb9fff42dddfb", + "3454f11308021d1599567263b0f001bb090f0c88b7ffaf7da858140d536f16b4dce9b94c6c17132921" + }, + { /* i=5149 cDividendBits=2440 cDivisorBits=282 */ + "66d4c42768181909f846b15eeda18ee1d7b2acc8cb9912fd3070b08b45801d1982414b1281900a0ba5586da835681ce027e472f13191d45c2e46cab02f3e6f21346cc40d7a1ab979050f373374a75561030f9ec45325ec675898802e5edd380c1afbde4f04db67e537502bd22ea36d5ee14563bc2a151d60060e99fca26d1db1519b79b2a06c84a04a288fb23bcebbcd91409e494da392d6964c045ed6025945fbb55a381860e688e37a7ae63189b3b2a5f2ccd2c2c49e813a39fd93593835e989fc7f22765e9fcd208c714d49b9c6fc2427618bb37ed0397c1cfad7e27b18d7ae9d798f82d555096dcbfbd8df17ff74b9c7a66bfc6ed424f5def80687f37647a27230447bc0f9062882bd1fa898ee1da5387a31f89467dc0f4a2081cd3c4f0892413ed1a15343a2820d03a398ed84d644", + "02131b41daf56854a78e8f3ed1cf373aabcd51e260ee3f3a2f4a1eefd9a6648537fdb091", + "3190de4fece0fbb5a872889144aec16531062e9d076bc037441935e4ef6a2875a273e542dcba71b06b77e20340479b10482dd60f16edc04b1a02875e191e96e539ab787bb5aafebdaca5cacdcb060bd0414bd6ca64c9cab5b8bb49feaafdf8ee335c68d1aa24e7f3f9130618030cc3a4648333256faf6024a0b396f4f8e2c85a88674ebf4efd3f166c2693f1c2fe27597392a14d9a0bbe9cb1133e6b4176da85351cd8c8414a42a52830155efdbf3fe380f48bf5aa033be7fd383f843680f771a6b0d34aaed0205799ad19b094a7a6561a5d91459d410e2a335bc2b6be485f42f3bd21394807c659f9e29414bd264cc5e34f3150bca839870cf33d5dfcb61a700b81d7032c78ce9d99c939888054", + "0b2871b39203ddff98e68552ed1181f0ec73209a6067e608272c82d44785f49ff666b0" + }, + { /* i=5150 cDividendBits=2686 cDivisorBits=987 */ + "29f177dbb2c88170d966699313d8dc97282ae603163f6e9757ead761039afe3608271cbaad1285e40230675fcc31a01cbfd86a3a95888b43085faf8adb5d0cb628759b72fe2d14f63fe160bdab28e50f7391560b9b6c809fc65962a874d4d209192efcd59a057af90aa478cdf52c3fdbba4cc54f1d513c5798bef807d98d01d42b47307db045d0baf77a2bf488238c768304c496f73fe42c68eecec3d94a45dc94f860f93f0515043062cbbb394f009322fa9b1083d557604b67944805ae25b42862c152c30253653ffe19934ce15ea89d1abd83bf872e8effb3bb01cdfdeda1de454d03aa017ec273ee0014616f720c5c07a2dacae1283214205120fb937e54b034915d13f4eabb1c738197c3661e189bed27708e83df903d36fc5fd92a5205ba23d8442dfde778caaf0ef660901099b14ddd19f099f1a792e16ad912c659d651bca173acda5080e3614ead4712b67e", + "48f7b2182e22e85d6f26cfd27a484a93373fe81846f865eae502bd6666f94dee3cf55e8e9bfc36ca7f850dd467a60390a4830c03282e1aaa7b8458aa7db064ad263cdc69b450ff56068d16254c377fb899e386af989b69a1d3a90cb2e7673892ef52af180dc96245c880407a77cd79a070d1353b3171cae1fca16c", + "93276c434f746bbb05a5c24fadfa34718efd44f5f5ebb06ac552d56956cf95ad708ac9e820cc67b2a2fba8d759ce2da317e422a8869cd3444ac80fff5259a33bb0baea6eac37308102073ddd93d83f6be14fc964cf18bab0dfad8bbe635b5f35056e913228d5453e48a633bfd67cd3cf2c78fee00e91ad7e4f6b8327a0fdaa61859d2df4c86ebb117b0d174c60f493468195f152190ec419c964f6bb9d507a45f8eeeed37bd3ad1f2f007598db2eed4ec6ba3b1703b22c1efb9663f6769dfcd0c4d82fe290768e92645a6675256d2f0aa8bda2658b", + "062e9b351191f6aab5b8178a728ac086218f231564ea927f709c4172fabb4d931ebd053ef67c18f989c4bc41bd09d52460a16a39a9b8c1ad4826bf2feee596bc83a8d41debbf715f1013b4400b811523eb94300449fb47b1075e3bd9d9bc1795400c13574c421513829c4078ee4a4ae6fd6941a77cce7104df74da" + }, + { /* i=5151 cDividendBits=1870 cDivisorBits=381 */ + "1a3f3da985b766cc4fc78f24dd69a3a5a9bd71add95842cf2755079340ff16e1a68c7cb9de243ed520c1c2629171669c550683fada5152fd7645590b533091295c856a5c6d93bfedb6609331f1a450226b2dfc47c5900f82bf1cf35da19f87ef3c297525fa0b4b1717ff6902b6fd69bec7c1c476646332b5e84d46cd32f8919f9d0403f46b7a7822f106f47f00459dc6999c26b36f3148230768ea5e26f90937b9333f3353045192d3ae0148d8688dcd61052a0a31efafd13b395c055b5769f2d328cc92ccd3d2bfd93a5383f0229b3e5773a48ab1439487a59f9e08ea879a75b38abe11867dd0b3c493", + "096cbe0262011d0c0324eb28cb8b91859b243d0579b4b10b22c0d192396b75924b252d8ef14a267d5a9ef3499f1919d6", + "02c8ef1268c87a16f819d4a25a4f25b1b83673ca71fff92983f786551a1ba7c6da21fc7f9069ac5f25164e1420d2aa9bf17f8b1463bd75f89e31e7224d0c821189656fb6b1b82442b205b2ef54496f8dd668e1f14a47d6d88553d6213d540e358ba59d8b2f576327a6dce12aef67a76124cc2dfcc6150d29d6b6c440c767aa552874420e3ca84fe3e57b0294dda75811c27c661ecf64a5f10b7c4e517bc95414afdf1bde63d91b9ee47cb9057d09c4bbe4a1372f3052872c958919", + "0625a263da4437cc979ec461eb1aab2cb595133b492b83d005f28bacd439cd71b239421f471657438084484206deb8ad" + }, + { /* i=5152 cDividendBits=1263 cDivisorBits=243 */ + "05d18714de5db0011cd3be2f1f2fe8760bd0293476d391adb04f313d474bfa52401d3b3b38b3c33e6e89e44bd51a36d12007bde9127ee9dcaf1c963f8c07d7b9a76c84f9abb5cb67c46e8e86097f1cd3d506ef2240849ca2843cec29a7c8c3c80cc80827c08fef59ae9b0e0614a2427b70fa4169e357cdf473bd968f5f5ada4bf993c18648542cad2542a77c00c7312f2c77614959a3f3896d1fc9185985", + "6e1288b9bf479476a16448e3a0da4160b4bffe8dadc93e65c3fd592b3499", + "0d8841cce2bc495a92bf36731fefa1ab838c010157761a1480c34cd9170c8e98c079db9438fb532df6888ce4b57d1dce5227470506380dc63a2128d9367ed39877b6b6583b536afedc9f9aa307e8b599a86e78ea09c4d765163a51f375cc09962bb22b680d653d8dbdaa427c88431b54d71603fd71ad995e3088e5d00a0b8577", + "5db094f760ae464259afac76ac9b056b00041f0c430b079a94cea71c6966" + }, + { /* i=5153 cDividendBits=3521 cDivisorBits=2579 */ + "34f55cbd6b414500776cb2dff43103d31aadb5c3adfd51c1c9f72f885e8a52ea0d8132e85ed18eed7f7291a614d1617a7f67aaa7d9ee9005db7d2f821ac8cd5fd71ad3bf005af7653093637f580faf83109172b1140fecf06baf13d1e8606ace83b9268c59ebe3610b7bc892b5fc2f8e45a76018ecc8245b7ea84da651d34188198954f33b55ce1efbb71e8307b424ef5e14692b2a42b697c6f913a15c4cf2d30751e9dda2216687d17576bc8ca5611c90ce5c5a59f9f0ffc470bcb09361b537127a9e3671d9d833f504dda4abaf9b9f1b0174ab8fdf20106f007843e631794e4e90acced732a15ae0a6e8ff192c45821ba0d1bd5ad386352f59fde6c5394d17859622f68488e78550411f7cf0c682fa4abb9f47fc69829fd10d05a60d0fe7b686c6432b4139a58a7c0b25cbbe52913501a01237ff83ccba4839f31d074dd37a011ba4c730b1a1f2aea95c3a4cada7634ae699b2237fad80e1e5236a7cdefc719ae77ef91a9c7c16ac04bf475a0eacedd463eb868110966d2824a4f3bfc46f455e9ce6d1450c2be5e5ac54437e7a1c1d154d9cc7d53bba0cde9b1e2cfd7584ba57911aa4608ac49b90d323ef35148153cffbdc82a21e99eb", + "0756e569245401b76a63a8c8e3f553b4a0ebc1295912c178699e4c6b739e2d999e91ca889559c9ebe7b3b45f797e110266dd22c5ec79ac26dc0efbfbe006fe7e1f2e182a050f961f5b2aa3f550fd0a9700aa5854d0c5d1830d0caed725741483bc740b02babbfe5d148fb13f108a23b51bd459930441ba37b0e05cff233c06f657296291c3cc71826192767aa271c70ad5510f1d5ace3aba84c9b41cdc9bcbadb561de39813ad811f8f9a3035b189aa1ef7c19e4f38a388a1e5158a048ea8569d253d6e63ce14795126fb36364443b74e526fee94911893a4b70bc92843dd7b396697fe0ceac6cf995ebbb9096508fc66a8cf1fcab1f4bf332b0a5f114414ce02ace119abc8eeb3f73a2fe9839cc3076adb5ea4d9211fc89d2a65fa3b8cdfcb93b732f89086e650b2932ce77637a64d930d56fcd7aec38909a9efe2388705f206015c8", + "073731899a4535469a1918faa2e9a4af66fe2421bbb3bd33bbcb66b00bab76c8ef7a760e79603fdf6980e34bf0976314ef060c9cf69b88576fa2a151684068d5a0d4bb441fccbd48a9d48f89bc66ae995c448dad7a5f41bc5ef9eaa389201e3b92dac2de8a6b68f51d0ebe6d493628c52b6f4f8204ef", + "066aa441b042294e67dc79b925333110901938af5d22d4ff250e52a1939c27165ef3cb1de0bce10c62f71a9eff210d61f3362f80e07e06348ce5ca922d9e7e70fcbcc019211de7b2eca7070e7b543c9116341c96207adf1b1c28c3e8165b9f79d4b9ebf77f3bca3087ba7d63a4e0a6b298453267326f5a51779fd7879ebdcdbfc06229c3cda2d5cd0bedfcfb732b877d0293449c3dda83e354bde38c71e5ecf459c61699ceff524f20ad2dabc0f294607f3ad1b9eb05b30112291383b59e8faac91daa69c0aaede1ffb4f158f7a669c62c3234bf858c7a30f2ba78d27426d06cabdab5af35bb314e50e7f7c238fe1c9024a720a9ae65ed2fd819a26f41e610092a7fe1486257f0b56f46d16d0df030350f58587891608413f5fced33ed6ea3eb97a064b9dc6c1da9ff86c96a984b6e5313dc8e11ac8342064ab254e65355f620832433" + }, + { /* i=5154 cDividendBits=68 cDivisorBits=36 */ + "0bfa4d26241ba49c0b", + "0ce19cba99", + "ee0afaf2", + "0a3f48cd69" + }, + { /* i=5155 cDividendBits=2966 cDivisorBits=37 */ + "0b3f7c9faf1db6334dfdb9aed7c93487de16e601c2951e8c2b436e16081e96aabf4b05ab2d3d7c2fea998b8f9af750e541e6c10f6e39e85f13a9c1d7c82fe96172dabe55b31a5e09585e30c49b31b931d15bb5b96e7c198af25242c9dabd450d35f6bf4765bd0aaaea02301a4b437c2ab62e055ff226ee68b7e1dfc532861676215880997316ee94459b47f23be40928fb8179955e1164b91401733111d94b5121f23a760960bc1cb7af85bb223f6a2a002173619d8130f62a89ad8ca5a51c9463f9460bb9672d559c33a1d1b66cd22af8cb84051cd4d117fe414b64ac221b2dc3288fac9a9aa3531be656d4a4f86634f2597793fd04bbe833bac199bc8d6421a0c28a7f358eeb78c57f8454c2dc91e903a7ecc65b919b292641923b3e2e8b00bc59f956104240f408da2d5615f7aa183a8ac876c676257c37c56592cd58095aabb898aa4332efdb4ec02b082b49f9852cadfec281b1f1409eacc132a21837d7a0c078dc3882c914805dc49074a2f72666f298", + "08a13f70f3", + "014daa3bfb4443a03163ee516c50472aed7abdbab135a0588b3b5c8a27aae2589cd3f08fdd2a45ef75bcd544ecd0a70e7e92cbd39a529d748cc4a02fd463dbaab7728b833375f607399850ead63667bdd8346101176a97d19cb2cdd9aac019e58b46a17167bd3515f90551d11e2052ec3fa1ee6f5f583d73b6d8969d3d93c78ccbdd09c6f6629e619c6a026846c19e5f29421941b7b2684f08fd68dd909e7295a7108ecdd3e85b4d94edb8507978736cc6002ea41ccd9777520581afa071c482f357cb3b9a89769789645ae098dfbec2009aa534c18286b0daac3dd2a219e3234edd97b6b1ff8637aa3be1082af4f32e24840d3f31a3704b8db7b641979e006c6990d4a13d1e12ec2d25192dd50bba09f3add5eccdab17540ef1f96f76a9df249affc4c2e1afffdfe142a0607ec2edb299bc39dea74ec31b579a717d2d93e9c57eb7eddce1e3f23d7c261a1291ebf92909920a9feaea743c330b6af4be33aa3204834b56e976a5a2631f4d748a2e86", + "0159e82966" + }, + { /* i=5156 cDividendBits=2668 cDivisorBits=250 */ + "0b8fb8fcb2e9db1db570ef6b521f36aa46c4f719549c40c57a863d34905b86fc51466c2b01e8f0ff042073106e68b3340e161d75f64f9551bb5e110a7f75f9e49fbecb6f55b2458af626dbd9d49a3e3593b939d947402cd7aec6425483046ddcb05952ac2f5ce581e3a7b22b80200b7a872ca583a04e7d16a69d49442b6bbd208f7e88870f16350037ec8f8a0d3216ddf884b8ccf4cf498a71f328631e7efaa68b1bec008127bef7bcc874d079e2c1132d6e9ec5e2d86b1d18804a32d6e0b0853e35d079c95bcdb8a60c31a61814a01d126c0600fbe2fcefc0365889db372eb63ab23e53da339f548f7eec5b8693043af5874f3ff9b8b37d8743cce9f04b4a82cc6f0c34ce61aa32119cadcf942240118b7a175bb38698f489188ef691deff94be1994be03fad8239c04859a90dc93cb3bb1835ab52940cb349b268f4e61f86802f8c1e35dc432841057c2a98339", + "28e129cd63f8ad36fce096b41ee85e25ce66f26ae6aa42d683d4c6e6e719a0", + "4866ac5161e4d9d8b024819c066749eca6ba87b177a17555c8bae337074c8aa8c499cff51c888aec4c77b53ccf68d8d9c58a91cc3e697febb2dc1b00428a9841704e358980325c1ddefe119859ce579fff6bbb0b015758f498a2675bcd9f3a30539da4d4c5f8f0d7c524cc824b5b3a81c842db183de12c6aa44acad4c9c6ca5f51def8d52b30c056aadd970909b3eee41006dc1e5c75effed6e5549413683b8849d225b9e8e2d9fab1729435dbde65830dae2cb5020bb101f674066f72ccc536d28ea0b167a3c07ec0dfc79e40c4950bb4ca1379fed6758e495a36777ed7c7df5d495ce2601fe9b759bf616ab5372bb383450b3484da605c7690f1927f8cffb1da68889cc00326f96a2a2854804291ae8decb70637151548f0a7c386d22411df876e175b0e8e75eba8f0e2840eef8a", + "125231dca6a2873bee44601d1a44c91e3d4007d364082c18d34273a26952f9" + }, + { /* i=5157 cDividendBits=4039 cDivisorBits=2952 */ + "7fb52da5ab05c7ec4f867e4bebd460c8d79af38f607214da2710784239a454c14202a48b7669e8c1853744632be4a4f21850beb4e9dea15b6b48ae3f3e5ad49005cf7f39e417138e73601810ec095d5d457e8f9a1b24728b44996b1783d560d85d63f33a62739141d5f4bdfdf5dd8881b41216a9dc448f799e371d68f72d3cc607af84c3850a0b51f57a0dec3144728978a686a0dcf5a3af3a61268821d83bd23e508c30d4ef5b05f6f4e9e3e0eae4ae033f997fb3cd73b081849f120895c241ef5a9e15f91edafa0627efe074dd710fa994da06d38980cd9a9f3fe09ea103041ca621a4c4328d9cd4bf0575bd3e99a2c1a4252a0d96c9f7bc06f9bf8e65e8272d2a60dd6babde40489ede23d0439417e71963aef3bea8cc54c1a9aba270899d7cbd284a09661965de9e886e19bc58a0b2e024682aa470e194b962e6e4c28d2cb0bc93bcf571d1ab9e0222f7552fa51da96b7efb073adcea63b0858fc0dfcff5bc27acf362e430f274e450473899c79b831e63e195e415cabcf36b2eebc61fe8c48f3375873986a1a0e07e84c0973c31646e7be2e08c9f9b89d85ff95504e60612f783ccedf5e92aab7f42a8c6ef140d3a5b1686f729d92643cafe1fa096a95c17f5a5a65ed3811ca2756d50a083d0938f955e63be1727caba7574de7b2d2e4d6281894552787e299156e5025d0b5ab1fa8482cacf68c358fe", + "5ff35c9f7fb533529942bc47cd54af0bb73a743c5d57522a90a382c0632685939f9a7571c0518b15b259a6030558db3b33185ade8e38cb33abb77bf5f2ee1c3d27b98cd23ce167c8dbb1ad32671fcba511b9cc0fdbecdb78567a5f8ce667f5a52f47f047560bc8828821d40dd1d269c59c3dc6c5b3d22b03ba135228e2ea494186d6621590327db71129c21c6fdba928231afd061faf52208d9a1af874ebf0171c8e18fbce6d2416cb41f51fab2b64a7118b4eb9b28e973c0c1a827b1b8ccec28c97cdb981eb76eaa4c55b403fa00f9b4b08485e2f3842af53dceca0d792d948dea95c2afc739b947a4a713846df453af3310ff84c1de23423469f977e07e034f28419ef0c3bee5fcd5174ac40a5b7735958cd290b506a8ca9325860bb466d5a7eb9c7ac0b484eea06f862abb398d4ce4eb451596592d872c9e3ad643fce9ea32345524af710939cb5ea2101e0c9af7ba85da1052b604c143c98818dca36a151946dac27f0d4b9c9d7a02a1d785f054305", + "0154baaa42837814901fcf97825d5bef25e64dfc0780b86f1cfe00c6a2a0d7ca2a3cc5267a86068b42ebd08497e0d7c787882e21b51f01c54585f5729ae0258914e786be68b10fd0f0324f2987c30b1980fe2226dd9c606541218cecd0aed71c6c4511759b0b1d68e5a1476f63910a197082f30a6ac4937a9fe33e712b16c51570a146f8f54bc59cac", + "35fe09a396a2f6657433efa181f266ff9193f8a6a7596a1df561b9db2f2d748ae610a6dac6939f95d77904163d470e8b949129118bc2a531978aff8a997730f6b3349d4759b30f3bdaa9511e13d8c15a12d657d2685b8b8a4d522f067e88e08cf27b2cc875db7f3f793d47c62178fe045a0540c42edaf6177123c9ac80e829e963dd5c01d28cb6ae0ff6cad0acf41dcfc976242b837b14e453e725492cdc4c090c5a6f4609b3e4c9a87c0d03c6f06e053032a53552c8d6ca1b51653df873657c58eae0ca88921c3a7a4f7c27b2f2e2e86dbaa540ae6fedd113100eca66d35c46f1d814b6a76081e9c68a7e025b053acc4e5e74ad06f4763fd527aab9887f7259f2f0fdc2724e804a7e33c7ea0c6c7f89eb0bd02ca6076b7964cede169b5f76cd3b5fd5429ab4db40c1d7d32506e0500c2cee3a46796686ae751712609a5aeb78c370ad48b8e5052142a61c45f66458f77e76788c9ad5d83bb3d5230ad0b7d9e52496e525258f80426fcb75fe90528a45a2" + }, + { /* i=5158 cDividendBits=502 cDivisorBits=429 */ + "336d9c13def40f5e26dc6fadaa240861e9187be165723a2e47a4da0d682efc9fbd94ecb028988d245f19783ca9a98494ad2445827e3225cd21f9ac954d2e43", + "1ee80c0bab0d44be81e3dd617502cda264409d1398d48e86cf08f514ff33a25815e23f45f261533af862ae91bf1e875d65200a31ef51", + "01a9fb99c6d642b6eb67", + "14dbb60b365540189d1fe65124199e500bfa9c0ac1e240b16b3045f15364a012c7cdf5ddf24f651b340d917a4a81dc120d839ef089ac" + }, + { /* i=5159 cDividendBits=319 cDivisorBits=139 */ + "7df9f04f33fb5bc6c89c9cd39725fc89239118ac73e0d23541604f80506aaae8fd15b342cc933b0b", + "045e7c4692f0db07c3ede760bcb950ccd135", + "1cd56570028e2d4b1096d9e40952a61d14cf6ade180372", + "4c6919e002b0bce965013dd138d7f27271" + }, + { /* i=5160 cDividendBits=3072 cDivisorBits=1644 */ + "9be4c44fd601c038a2f7c3c64e89ec79295ad52037343be763bf69988192ac95f1a3b0da6b32bfd4e8192813db485d16557e8672c338c930372c17735fc322d2b3e120b1f4221bbe47f72f48cd952505af17bdc625574d2274f3bad988d0a61b9ca1399e5af8a7a8e3c53dcf21265d36bf4e4c74868397319872aa59add877431d20c4698146f98df0d3730cab3920269595256ab88dea9f02deddc353e064bf7a11278ac136060fadd2a39056a85e2c55671cf079b90922034add76dad54b7ebda356a2f0e9912f67f65df4d6cfc283c4a0310cf943b11d5ab8087730522ec5ac9aad914a7834764e8a5e6bddbf48d6ca0c5b9f44f02951bce0d0693c53dbd00f5f76303977cc728aaf8bf862dc8f660dd557b3c5617e5618833723f6731ebc1fdc87c973554a6faaadbd0c11a89f7ca5c53c77fc8e110a40a4fedff3be205e8f931d04b59b9c3079de1cf2bea3d56d2a89ed7443f59f2070fbadd4d61116261dc9b163ba6ead33ac235455eb116165886d8b2bae4921adb1368326ebcdcb8a", + "076cde7562ea40df471214f3328ff156fac2415922034a089236948291e2e4fc2304b1528eddb651d943683594677cca951c33ae2039174cf074cd8b4852426c400eb0881969439aa631cbf5c3b5664068d7cefe6ab08b716d180df791e977f0e5a9da1d453e5b85e017e813d9367902b67b5d42caae8897dcf899cbb61240048ce2476d2febb0593d705f0d2fd56d0b358f8f7cd2334a36e88840706c2fcc74a94612d6634249f74b1efe7f9cd67c9e934bd640cd8e15dc808311e08594355d2ec802a16dc689d525f73265b49f", + "14feb919b4debd389794ff6288172693cf2aeb34e9edac6a4fe2f7a1ead9a27bf118d6a3a901297cd117ce81ad6f401cde458d59d4e16d06732816e44198e3f6675ff1525a9e13214c5270c4550a3e3913f5810639aac39d39e486ca3e589a3634f656e3113e4cb1964f8e53ac4a078ca1208b3cab7f5764695103b854d61f6aaac0584085cc6ae4cd426c986cebd7c0308f47fba9168858e340c102185eb1834aefecc425fdc6b9a0a303695a41bc906f60e9", + "058db46e364036e64992982e0f490e840cf43defbeec98b098e330459f84b23310f550cca69bd947cd24c0e53deb15fefd5db7eaa7b0d5d989bc933ed6de92db5439c417d81412780a61d9bf5379dc30d080bb1b14cdec9fb254dc697bab13c41dd66611d892d19f507f3e93efaaa71bbd33551df5b5d4063ffd5ed19032186e17633b731007b21296d9b29290ef4e63d87835787b0818d6917d29b29f94bd36c0df7c837c36736a13e4f063ef9fb15c28339f7664daae7d5eecf21fc0244161700a4242ac7b40ff2ecd288fc6d3" + }, + { /* i=5161 cDividendBits=3135 cDivisorBits=2626 */ + "5fd8475c64926e4b1ac3b0613fdffb780ffc997a437bff5482f86533a16286145e259eaef2e58fe3c6b2874aa58f1452a7a6d565dd5873c9010aa2d718edb4604089e39c9982ccc01072b7533c1ae244f3f042c124903ce90a3c1cd3a8d5e97d9105d0c1fe039ed6ecf39d08566177a262865f3be52e06303ef94dba4c65107536f365e860813c829fe048d23354627b061c7ddc26738594638c2ac9a9d1855a6788a6d51e265deb3914e4832b6451bcacf0b8162ace33065d4762650894abff662981d3e9fd32d5ced8f6e431eedbb5701f3f126d611e6d93a25375941a23db7bc99209508b067269934a541735e1467b63b698d2fb18c46b78d960d953fbec11eb94d4011708aefec6e623280d8d245a40d820b24d01fe1ed0430dedfd87376c1c654543989c60572442e0a26f39eae292c49307f875d63e84861237d8c15e9fcc834dce9ecc30930162edbf21afcaae5169b5f84416dce30d8c7316a89da9870f510a37c5324d5242b58f43541cff75cd728d862f61d6b79826cbda4b031cd409ccbdceb44564", + "017e9cbdb38cecab9e365f34d3abd3591c4e0e365c4f521418b9c927462a47dc24245271db938aa9680ffeed8be72ec27a5d244cdd085a1e18453d891d58c14fb64f44694cb2c0db7259b321e89fd1bd0a031afcaad277bb782e6e5c38eae0b3c92f83a76d2b090694697ebda9ef72700328db63ff895fc13768a2df3bad7ddeeb8ef197aa2016e3a995fed89a1d62552212b3af1f3b4ef8aa9d4c11e4dfd112aad1d65a351d735cc65e70951ba772e4612ef9e2c626754f9a584f9ecd6e34412aa9d98287ac0a077930ffdfd7fda54ab51670163df0e4989990805342de9cb36630ed5a50f57223dc7e9f04367084f00c819d0deb43f2304fdeda6585200b2518793d5d5afc61fc5e3ced0168d45aa13d32ccf2fc6f09bbf318951a47278a9c047d45d8366f1dcce5cd7a96e47b516a0ad152a6552da95dc3bf7539d434bcd369e9b20e55d4bbb3e1", + "4020d9034c72e0e619ca223b0da866331122551a4e73731d399914ad055517191ee9df8c082816e35fe2f40b23ce055708fadb3510ee9518c6da7ee64d25cc7f", + "61e2ffd8c49e05f534c371ded0ffc61ba62048960c1bb19ec26566dcef29432c37b7a9f3545d466ef3c3b180245886cf87a2ac99cf843f0ada6d25f93effa63592e630a8e283b547663dc7eb63aacf954d411d28ed620e5be3690afb127d48a848bce565d4c094155d41ae3fb63091100c44ad9053c4f78f95edf4e171d009ff9b4caee2269e7a2cdfeb0b0194c04f09e796e7f16d9ef4c7d6e2cec923e50ba68e8bee3683ded3f05ee15e2b384ab126341da76f11fbe115bf0166fd4e5171b84ef2b695e6c88b323bd8cb068f1f8d107d3d41ba1d9c0646cd47f1fa459fc7d04b7b148fce0a67f33afb239bb909c590c918b86631000f9bfad902ad80b9ed5c92fc93c0c38baf1193e5963ed23784633625b47a31c54328be1df6571d79d7822136bbea351fd9967488f5d7b35a8b72881eb96b8683346052959f88216c1f6b671dbc4205b9bcc5" + }, + { /* i=5162 cDividendBits=3154 cDivisorBits=1323 */ + "02cbceda99ed719f03df720deb9b422df1407d65d400bd199b9c731e3c5a0c3713cbfa33c79783d974c4c9393fa82fec986ee7276306b41ff55bb2ea6ab2c2ce40931987e519431a7011662846a611d98e0b8a290419ce1671f95cf9f861eac2a94e3092b84144b128162bcbdad1617140e1f5d2e30b9f62c7c26a9a770b0a918344f71b1b8ebb58a521390375c69ad435fc0b86f1373533d76d166976f460cf09fc4c0efb9c9b87e45732af762fb6875071dc363d31ebfbf5ef1fe091a2cfd9028569027191cd49e2386b8a96f5a5d7977c535a4217fb2d06ef42c1b83bf78375c388d028d2cc183284771305173c3bbf2dc504400ecf30cc75e848ba9486ebbf88d307ef19952847a5f5438da9c67fcf8d6144005c3f67373c3c01359da07d460605cd734c563f80e78e6725e0fac21bac3d0afa6e4a3876d783f7c69c52badeb41732ccb02a41d48add274d48f134cd088226f3adbc11c475aa1cb1a8c7876420df55a55fa7da9a182e7365b6b8c2f459191d9c2583c21dbcf3656154ad504714687170708cdff501bf", + "024aa1454e6b477695e81d6796315867681629cb02fcb00752fd956ae69d58f422e254c61f884b49cd87b7736bed19d6eac13ff26640ed9e2249ff29cd30b4ab1e265c305444d0ae2d82d7bc06120df3947d3b84b2ab9ec65a33d3be74b261d4dce2d99549337fe16a2955f26ff2ed16ec800bc287012a4fc5d0cd31140431d52b0758c4f80db020a4ac7cd4b60ebbdbad4cb88f1a69abb4369c3ef31bf2ca7fd87f2b9011b5", + "01385f4433d79a52c0b64f21cb999ed2e702e3ef946e1ecd45f2b5d271ebec275095502bcc53d0846048d438ee30ffa349af7c8a94f2275e9956457bc6504e406ca590227a9fcf221f24f7e95cc82f43b3ea9c8a2bdcd6b54a310cd59e4934fa6db1588c6b782a1922f0388ba88d940b7ebe983c7766695aecdcfee552d3123ff29f12b398e003c00d6403a71ae6256d4f43026c2f15f173ebc8ba062003cfc4a1d555d9f6eb0f3ec614e817bbb1ec71b434c3b1e7c956d5507b3835fb599c03ab0bf75b033e893cc2c9f46e703a3effe06fb9318cc097dbcfaf47cb59b1d928679925e138e7", + "94bf384966890d119a62f4116a049d7ce48ff47d91a3a79d27a67bd2389e7fa83aa264234b183a8b5c06c7211524650d3cc27acdaf5c18453dedf3055ee4ffc1e40fffc2279985b1d29d8d8b74744c150181b6c23087dddd2205401ace450404e2e6a6b6ab40cf594aa39933b8bfc145b4b45512beaf9230e18116a9e905bc67e3b62046d00b5d4215fd47d5f047ee4c5c1e425215450b272f2488a42de624bfe954006f6c" + }, + { /* i=5163 cDividendBits=3169 cDivisorBits=1426 */ + "017740600f9718fcde185bc9a41ae21035a2f91d30881cd3dd7b9629d5d21395637f90fd29e8f53f32cc4906fd99a7d57c89155dd6bdd1062c32d344b60bf8105c2392cd59a483fe3f86bb644f1b4c3595f048c65c55aca7a34727d9443fd4eefcc59d81cd3b4b03e3d46bb3dd179a16060679c7d52b8c805abac2d333bdf3381670a7f5defe40bb6ed8f53ffb4d0e5a8f386fa4a6497a1187bbffb272b111417865abfb16b120da2d21c360ce628687dbc589bc8fbb2cc76a9956eb0855c51ef1e078121765a32aa5201ba295852a9056557b07079afe86ea981d8c0e4821518d0238b875256336e9a50b2d3bd2b61dea4f043adb8053f70169e0a168ac74d2ed860536e425050e8235e614090b04e772ad2657b9419753023a150c6d55fe9603dedc9a0fc62c2eea69c186a65431abda966c63952347cdb2ce37aa948b5761734bce0b2279e74a3361312376d9445c0287bd5d3c2419c35117413e3f542923e4e6e55775023c92ca213bcb22068ad568c3ccac00663c26b720775367afb5defd64603c1fa549baff32c6d8f6", + "0361d3a6b25885bd8c6885d2becd0a11a3480d8cca49059c1fa4f0027fa967d4e150deccbcdd654e8eab3c4e77c25da2a4562c86a32d740dc5e4530e82d459034159c990d9746a13c91a362ad43af3c7153567151b70bffee3df63c077ca9590f401d2bf41dd85d5ca31c82806de10bc30a1992c713793160efbc8b09f89cd1445fc7cdb88aecb208474a24eb37d50768a7d4b59767bbae06966ad9dc351cc0b0412cf441b87c66c03e0e1a303df9997703d69", + "6ef377043d7e1ea4f7c39661497f8f54b3f5f3faad3e27bc587a83fb6aff811455b14cbbbec3764a40fd66f915f75d363f8c8e1f86e1a5578f6e6c7f1eb2f013f3bdb82d6b4a746a31ff4e86eb9d9fc72d36c46fe82a312ab8bc2b70f905ed5178f8ec92c83eb372096b275c4e34fb350863f14d0defd86ec46a9ca90ea3cc4a2e2b19137343b3f60314fd2f20adec4f547911937f5fe0caa8faf8d3726e97ee0c92c4797dd4dae5a79feec15d87d156ccafb0211afcfaca6395b9061763142dc0c147f23367f74bab1474eb8076f8d01c97a55e51da0b81c80a", + "710f1a11e66af2da102719b9919182416e8da52cd06d56ce6e358bc4d2374d1914bd2b6e901afc1cbc60e28e71b023e8ab1927815d193a1bfcb373b5368025ec23093116dbd9bc1724853380d2acb3b442e002f4a043f86f12f907dab806e23a8ff767d2b9f6149838bf69cd679133b5a91bb588dd9006b2b97a8eeb03fe28eab6abdccf595048f504161510406befca9f0b49d8f761bf2016fce164f0d4347a669f717d6fbac58c32f547fb5a1323816adc" + }, + { /* i=5164 cDividendBits=2049 cDivisorBits=127 */ + "0520c5c1b074de46fd56e7a216d3d7ad4fa4e1ab8275faa0c7e0ab3a0a399ae80a46b5ffe26f7b0d48658a4957cdd621fa8090eb6570ecd215741eb47ee0612cfa5f8c76ba785cbbf1795324917f766b12a8e0fbb3e558328ce142289c0dea12ec0c361b70f69a9f60ad0a5b4b38476772daf35bdfca84dfa6ae1685b386450b394cdd7d02549580c48585e758ce6ff14766dc1e3209162e62fdd293768bc7eb6236f520699c449288b2224e4ce8f1c736dc1e1b4268f15f54627b923cbc521aa4f2a5974add9270c647d4383c7c428fa6cf6f7ff6c77818256592421584636e7727634ee4d29ff20feb38f47c8c6817a731f38e8577eb8ca21284fffdfdedea", + "c1f7a849accd0c5f2280c25e8f5f78", + "06c49c0043e70828341fae60f197356bfd9d6605d3527b98808dae0f4a61fbf5e22441aac240ac68053eeaa4dd7b6c239355eac16493d1af4899eeae5312c68bef76202997029c1e2bb6debb1734fa28606ce169ee8ead95b05b4c91acb9bc5f5217e89d7ac33086382fc0269974eff2b084a7ef309511bbbb9dcb7fefe13f9b298dcca8e998e55f68d8a53e2a79c7ce515a1bdf2988f8d06c90888eb010c25398abb411353986fae99b890184b75ec6f752bdd1f9fc72b97cb9b26e0ef3186f3587e3ffb00a5f040e0bef7df7dbbb849e37802feedeb6f5f9f4b047a34804708a08befd1daded392f7e7f632efc41f237", + "5849f35c1606cfb14b69e8c778fb22" + }, + { /* i=5165 cDividendBits=2239 cDivisorBits=2116 */ + "6e5e91b327c9569eecd13518ff81c274d6af8456b5cae8f55c9d4e09110c2dd2b27378cec0c8c076fa68d48c67def183bae90c4717e72b1bde5cabc84be8e1f4b25d9752568c1c079ee3709d3ee67d2d54a19a3b2fea82fca1ac28aa8c4eae2ab1ccf632df2b5933c23f832a3a0a06ad428c290ad4c961d32f766d01f13152eabdfd9644a88c1599b7b06e4f8b77b06c29cc705f6811c496d9b118448ad197332566d3d727a86baad5ba4db67700bcee090f4763b06a8edc9f4070c9d0e9a41d709dc4308f91b1b6995030e44bf8305ea1b2c411963fd1528ac6f73c9605b3a467f400e4b32dc7d9c9c36f1b04b85436e258f81a4a2445aa8585607385a0ef0d71fbabf0dee04f5285670525ca378a70096bbfd5d20dd6db", + "027f83a822b1c9346e043887bc914ec187f9644fe04d82461bec9afbff7a172bd9c72ff3169c75d2badaa5cc4f094c90b8b5198ead9a55a8a0a95208e2ed3083a9256205e3545d06ce910d42766c43bdc181bf475bd8de48acf31689a55d0f577944b2348de79be2f112fdd98a0c277548e384e69080cedda2919a5ed92ba138a5895a41478770c67ecd67c4c26002000e93b9a7e151406458ed4a6c96d47b04c21b1d2bdf94b8b96d2913fdf597f81afec2cbc14af231588036ecb2691ae7d212603210f3992b4e13b7cbe6ace7b7d66b936ef349d707bda74522816cba5c525eba2b060a5a2e911a5ebbb67c7bb4db892fd06cfc164bd8259531904b0146938a91c68b2b1a0f3cb1", + "2c2e6956753602e892ec1a30994cbc18", + "5bd32410a984a31b3a547dc25344d2c82dff19c271812a823e0ba3b63efa96fb160f234aa3e08c68cacd1a011712d14522bfb2c9e39549b3fe5889b9ac9ecaeeab44aaa65fbc2cfe66aac68009d153e2e8e8acbbf551524c5ee1b2b9f4abf214895bf015fc5b2ea3212be84753695187f8fcfc25d8f995e8b569f412a36a5d82d5b5188684db1a4b7f8990c4e68cb54aefa53e0f831c4499159654d9b5812e47ee4731e678b45ed559e8e44824f6745aea8fd8474ae20fef009e7fcc55f72f92c84f8cb1c24e5e28d44fc10de56ecbb1f0e687587666727e3a08049b2dcd0706f1186386c27986e9f8718938bbd319f54ab5a2d0aaeb6b57f9d3972e6a69707b290ad9ac62822a43" + }, + { /* i=5166 cDividendBits=915 cDivisorBits=34 */ + "055e996dbb0efb6cab30cb9aca9143341406091211c3f058ebec24449d1ad272c2264278037d78b77f598ebc0806b03ce1f349ef4b3a468c48aced2d0c6f6f48f6fae7514a279ebb45d2ce2ffeec27ffbbd37840dac570c83adc2ce2c042a6c785548a94c1b3631bf5137c6e61d0b657e0013d", + "03d614646f", + "01665191263078a4f40cc504d8d0d0d6dbcb70a90ef2aca489c074cfa9a8e070ccc22f8d35196df3369503fe226951b1e823c6bb369ac6a2935cbfd645bf1d82ce4da8a77319d506292bbf9cf587f8cea80672d66c0597822eaf710262814f4b1b38c060a734f6072e850cb5818f2a", + "02bd7e8607" + }, + { /* i=5167 cDividendBits=2037 cDivisorBits=742 */ + "0b3f35bcec2cc16a8ec30507c8a125d4731afbb0dda3ee9706d13026496108c9a4b818290d43a922e97265b937ac0445b4a66c974e1faf243851c34923522aab0dcd3d15b3bf6919c83eb583476302a0f6e7e88c58f9fc09a8680189551eb8df79b57059354f2188a5fe1cf4e98b915d29197eb7826d38365b3233af66703f19afb7ec91fcbb7f5083f544db17fd6fcee4c81bc4ac12641c02cd8bd40b2a581d8d95688c707e9402508667881eea9f678dee1f536705aaef2fc6ee12583410cfe69a1d7c73602ee94a9b68f84381582a1faf0ea4bff04cd50e78c7c7a626614e418c9d43c68592f99bc728773bc0668131c88b95565a67bcbc16d68f4c6a08", + "2009e21b6611e82d5fff0794b05190ddb3f528f2218b01a9f1669624ae51bf1a6ffb076c9bb0126f76652e4ac3fe66626cfb7e3cc0941c04fb68a747bc797d56a805c799ce6be234734f7837d27e832d9aa0d2f36dd517db7d6da437d1", + "59ddec80950acb69630ef02d5560afcef514f8a64abb67760c994e3140b7e19755050ad2d38bccd70fcb1ffe1269f96513530857aa5d915206448f40a0d7af5a5fa5c5064f325b1eb9730f8a7e25464f96ccc2636a5b4bb0b2ee50ee454306584acfe4289d47977f7f89b1edb690736543c525be8863df98d8b1de7311659b80da3f09bc945c6dc454700f228078caae62ebd3afb85e9504d6ce0eea9f7610c699a7", + "070363fd72474d11fc8bbd44611461f24facb52d937819aa3c5d8d615904ba281d0612e722249f0f7cc315e1ccd8abacd97d7b2699847610b9e6c33970da6de337485061dff4f736adda07ae416a811004e7efb4fae2ba57a6a82a17b1" + }, + { /* i=5168 cDividendBits=900 cDivisorBits=792 */ + "0c227bc9be2c7a51c3221133ec55b28d23c819207a6e5f6e6fa7a6a27e979d0a5df5cedbb1725a5a049f25f48024d3f4a1ab3156436e37e72aff242b3573ba555e2ea991b444e0ba4f21c097c6cff36a9c4ac28f3a12ff635fe91cb10e858e34de7e18ae6290d915974a0ce8bcdd0c8df5", + "7c616b9065dde9d8d1f5c51252a610361ad172477cccb01ae61e05f7a0c73f2541458c7f64569462f534f581466f405c6c9dd43b6c45cfdca4348ffcb81e30ca39acf90fc505bba3c69a634ef38c24a7b1ed20ec56431f4e8da39d2bf9d1f771477c9e", + "18f9c36bccd61373944b400bc5b1", + "166a288c076c6dbf656401a1bcc75afaa488dcf8edba96bc19cfa31cff1f0833a38e0bff76ec1becf10f3f8d6a021d529ed98f1456d03c9adf9e8604862ab7eb1e4d31bb979d56d1e8fc63df352c22d0f18550f8c9c76cd705d46e88d4baf7acefceb7" + }, + { /* i=5169 cDividendBits=3805 cDivisorBits=3547 */ + "0537a47076efaffaa1e1c4228a8f4bffd8a937d56d773c4d351d564487cc45a527cb2cd31139916ee58d976da22caac9ae6ad6a7bbd1952ef02ac7015acd43ddc261abb8c14da9435c366d8cdf508fdbeb73e7b04c8c97274008e70ead6045a994f9baaf8813bfd87419bc7b6e71430cccb990b62194ce2b6c702fcca7a531e0bca4412fdcd740cc9c3539ea0fb0fb90b150dc8e5b5840bd21f554c605e09d5124ab16de60927afd498f8d3561fe36ac69ea0293723fd3032e297f260fb16780914a23666835b6bc7d0afac2fdeb13115cab2f63f7fa43fa43aff98081fa78d3f8901d7280383bd2ebbbcfb99256af656e6c6fa9cadcee771450e92db45706437375dc754de996432ee9f0030270b555d9eb7bb709e5294874182961d9b731444b361ff75967e659250d66d7313f5160586dd4248f69756df347163c2b26a5ea2e32438559f28f08623cfbd58fe42ec1d3f6fb347341c164ec1a1fcf172905bc67d2af70ed3f3b8821b5a5a70615f26e0263eabb12ce451161d21bdac5d6177dcac3d41ade4b47ac34d337681327cba34874df989b0976c1b3881ccc425e6bb565f10400629edd6897868854170b4a850075f820ab0b46fc9763ddbacbeebb15d0e11a31f26a804f5c01eca8006a0e9c07683886cee010a35039c926", + "0755c3ff066dfa79c1a0c22a2386daad7a347a58194c6838e0062e6c9a513b4843a8d506f03476d26321ec26cfc34d22a9ce9d2dd9965213bd767216cd73c57143b5cbfeba56d8d5255925eeb5f795112b4ea19b95f171df33e28acf4e28ddd1ebef73d88e8d75d74d8c63f5d6a91e0eb5cb1633b7bd553505746a08dfeb2a0344b8204c8831a64a6d0ba39956fb67147c413080f2da964f951670e6a0e4135fa5975e0a5a69b3e7e0e800cc3f2a5c05ebffbd4df7cb91893049ae46029bf03a5a347d3beb9a505df5e8a385de486921ae4239d9ae091ec1640407380772897e221f49b4eec59f326cbb27add92f285d1d10d9e27cb918d97945a465dd9fd4a7109b75ad18396735d50b0c2cd4c500c547e57af7ea7ef46183c98406c82b5b06e3ebed879d712662bc246e79b770fd912d5f661342a6be8a866ba69b5a2516289b8d345863c58bf81d209ac12ec5bb59201b57a7b61c59f30562566af1472836c8f93e08b63380d575c6ab601683199a2e9e1f8c1c8d07e0d51403e8965644955210df4946228cd18202ae561b0c7f4edba4fdcad87d7ea5f73995964e5d7748a45be2d0918c6586c069c52fde000a7488fa55e7842d509a28f47146", + "b617538297f882a76549babb34fcb23dd3fa3546a1b675b50faa88f820d028e7", + "01802a5a9d4324a0431b815bdd9b98371d4dd31bb353c45df3c7e082ed5629f92f019186bbd4444ab86f151a3f3f44661fab030480a68e0ec092a30df2098adc76cd3c635a25b52b0988b42d762f1a21ca0403538a550be49edd3a902c6b0643b2f4539cd450e8ec210130c6e65d698aeb348e8525709fab4d81d3f5e7f62aad1d2b096fdea5c8e056430171941806e1b2fde779e309e381bbefe36c09f640ed6044fb8b33fa0ca6697a14598437c9d142f77ec375c77e18a3c29a3190b470015fb1212e324a7e7c951cc643319462d8b05da8436c6cda29c93adc74a10994b75d08efd9b4fa2170e00932484de945057d555605163fa7fec7d6579d03a0f35e7ded31cfee7c6f1b3b3293e5d55e9036bfa5dd8ead701d4e0bacc5baf7ff4222cb4908573c8c204fae7b5933a9063a509834d9375fcb06ee69e12f1b0f4cb88a97e462760c33a834251d3a7eaaee4b73cbca177952640a955e74bae75fe63d03bfd564fc2818bde392074fb6d10b4f8541015427de9aaabe6f86e062e2237d41f407a4d8363a68c08debe36dcf42bc4ff5c580fdfaf57165299c795d2a824ae1ce08b10f35831cca7ad65d1bc66b6db9ab9ce484d78d7e8d6114a2fc" + }, + { /* i=5170 cDividendBits=3130 cDivisorBits=1242 */ + "027e66051ae7d5069037d1824da0731650f3122b617f7ba2c257c5d8dcc671a29af36795ab6b8b063d167a407e04075a5c83df4d85dcd99df950dbbe6ca0c9cf51f5214d841e838d4704cd4e840122e5a675fb4c96ec6cfa80bfde9cfe6539fb051fbc641e0458bfac3a13c3287d2b5831d72c7bf96cfdb78886afba608c564a9cb630bb38d98e419a45ecb994aa830ead74c03257a37f2912aae5e59df17a9df42c0c337bda0df623c7262fea30c7cb908979f11b4d98b3e530558af073af165390609937a6e5ada6cffdfc283bee1a3a5f2f6f75fbb87e2fc9453b6d737ae6d70caed58d758c33f2946dc8de30af624f7c188f0a45507cf5b6ef8b26d5f519a810754d88487c754ce9a2a6b6662cce8ee7732a840a1ee5371bb4085c56c1c4684a45b03a4cc4e29ca210f8996e53f57822083c23fc128f20123d70a9ebd1e2d07dfd67c8a0148f82f7401593ad291797ab2185f1bc5b6df48f63ee6578c3884c178c5c522293a144aae5abfef11a40901c94dbfe6555a82550104838ae8c4ac9f2cb2a81d033a6", + "0335a3dab7deaf901d57847e96a29e0e5abcaa08a43f84b55c9c1b5c7f89daf0a43398432757031ccfe409743dd82bd80b34b60260696a510e9f0918a903428228223e6182255dac11fef598454ae4f77c1cb88289945e1067d394b84597acd4fb244a469f8507e5d90d5c95e3fa7dc4967761c41cf62cb521b6ca89e8fe74b866d079e8cabe33c4eb93b7d82a60ca4a135b8fc28cb26fe663316a16", + "c6e8360a915397aef1349f6b05281cba1fb4a5212a71593fd1b9e9e40d45f9b12a2e94f66cc824ca8952b4514bdc3c8e33549b60e9eeaee51f5824f414e48dcf00f406464b82015bb568f311a3a6e14318c6b9c2296794a03b2fc2e2601bfb642fd76f176791bd017de77eb239f4af96f0dbab4a50c1ff2b1c1ce4357b87d64fea308cac53870d88ec69f4233171fc2bc5588880f62e43c55378fc5f290fb2fbf79bb8160a8ed5ffc28aa5eabb7771b71668427d3fd0f5cb7c2b091a082659884f4f719982117fbf6d56de8371f5c2febfb9b9120ceaf78ec5337701662489a36e5ee5ea70a6c433e0f0a064", + "0274d1085a25b13174d6425cb658e1faef7a629ffd5dc6a35138e72f7b3a72d3a9b32cdb84d106dc148b79e7a4e8f920a7f3dbf91a48924353632a2d9bf6fbb222c06bfd37cd3362bde6cbf0cb3fde7e283833d02f02213fa81b25a5fde5e368ac239673639cf33e7a0ff83623772db48536d8f0c13f560242edad28912b8a732ce1c6889468af9f02e6c7c5bfed3e6c26697dc1cd31e1a42b95030e" + }, + { /* i=5171 cDividendBits=2991 cDivisorBits=1221 */ + "1ecf7a6ccabf9862fffde1e71aadc6185b30c550cfe2a45923f7875fc2779b6fa08ccff1ae672df8eb1bcef418fa2c4584d7a9480d7709d3347e9069dccf42b658dee7d125163d9e5b82446d40b78d08fc795cfe239ac700120ca46540cfc0dfed86516e1b5964f6fc83e9bdfd5f558acc579e2fb3268a2d49e698989cb9e03b54c6d0a98b8defb03f6ea588cfe9850fcf637eb6ae475e2c1a8fc6b23f0695b850282dd8a6b213a2d4e9ef1efa0c37b92e63c5a7ca528c188a9e44c7db71ebd1d84ecc8921db1495b9c4625da8734bf80d4c2c30f69676b0c485d67d79d67c38cac84cab96e742a4520c4fc5662d71a8a0e0b19f32d1e91d828b0fea6e279803c4a7432311ddc195879f06ed92ac18cb21fad096db6612ead7373ac70e6eaaf2d86e74bf70edb3fba1f67306163bf12a1fa15874d122dcc51f40831bec4f9ed24a8b622cf063f4277d593e0562f2ff84051d888fbc03056a666b7f0c47a509b375a37a34035ab07d9e089dc1fbee8f0c06aa4a3208c9", + "032d32561fc741293204f2effce3cce0a0d25d1df7bd723b96e44b93bf44c6d0e7398db8c684589eb7c20c816bb86dc4f9af52affb6b16f76e3dc52823c55ecac49ee7ba77daea3b5fc5d5618d9335dcb11543f3c3b0af2f095942d620c789cb062345f98e6f69a39de0983bb0934714db739ae08cf68b2051b3c37fa1e68a7fd8c08e786eb6fc880cc2651d3ae1b004397bd3f1506e3f174f", + "09b3089024fed34e0b57bbabaa851e5ba347dd96e34029c546ddb03b103ae52bd2f09b781a27f04b8d1eb92f1ff4fca8e050334585d7f4a860fd61bff1247c258fcfcdca40957e1d7c80bfea91c7ed42a0985f573c1f09d58d18557e7f64371a32985a3940c51963697fa391a6618df24682d45db0ab744814f3ec3f7cfb2f43c55ea37fd3993f9693067ab62c6c808776e4ff918284c22b0cfec2201a3f0a90f2722fe86c203056228611e965ec2aa512dddf4bec8d86da993aa5982bacd375b1276b8bd8a72f1ace392ff88dd713bbe7963b9f75dec775de2dac135fb9", + "0420d8b2348b628145adc5a304f6eda903abae87cd4887cade54b44c3eb021faf6f424cb2f6408adfff0aaff845103ba35f525d67e6df41112c02952d04f4c9249e8ad90dc8d0b7f992d2cb14568bda9393f577072b3c80d0e4b6bf0c81734d00680ef2355bd99d5ae721a6b0bb91ceae324155b2af2342c8dc9ce471e601f500bed07e960297697f348b6e9c61e185f51e29d666616dfb2" + }, + { /* i=5172 cDividendBits=1038 cDivisorBits=171 */ + "38b65670bd8b206e67d69a72ebc7b0965eee2b3cf21bdaf629c7fca2cdf496a5728531c15ab3a38472fafc260aa00274dcce6eae2bc3b0e774aae71aa9ec1af2a40688b90583f448bd3c411d51f74aa9d11f6915cc7f1c105b3149669ec9fcfc03fca5cc0c00a26aefa6e0fce435128c2f895bfde6801fe962d8f1e7ecfdc7849008", + "058a24624318e13130a1f74a3a6b4418ed32da1eac48", + "0a3cd1c6756c8205498f699922edd916dcce69923808c4235ca71c03951a00ff92b379b0b49cf45a50286c086e8c3f5b04992330356f2ac129e105bf671ecffeb30a8eb27e361149f6816e3beaf26a743a6d425145fe0ee0e18e82b13545fbf2e1a59d638a9d2ef524b24afe5f", + "02361e6c939a98fd1cdc7e508576e0d1efec8a633150" + }, + { /* i=5173 cDividendBits=2567 cDivisorBits=180 */ + "222fb85493e640b37a494088cfee66b72521be218b31f2e4db0cca6337497ebc7c8fd0a1434731efe440d36b1ea38b260e4ef2b89030c8c3023796f6f4ea2298ec22477ae7949489271e6af05d72ec0cac40e64d777da527980b0ea6132c9d45114d9bebf8d819b89ae235d587810fd882c7aa85324d6ed84850867cbca0e6f09927d1d18ac7259f6f07a107e983125ea2fc4e2edc5f0b45e931d2545a4260912b1e24d96c49a6244373387f5491c32dbe0a05bcfb980965d2243752c036ecd486127568c832d7f97606e827ed7693f2dac2efd3560dcc5a46fcfe2a7855d1925631ee52636a6af47ab3d0523d77836f828942310a25b2657e511efbf1d238f7bc6899abf19077100c5bb77ca0f754746f517ba87a6c2f8e483be8a58c9d412ec26e5cd5fe4fde7948f4a817a3b79a71572d58b31e8278b71dff8daa3c7d2db184", + "035d7713d88dd8d1d5afcf104fd0c21ec975fdcbc4e530", + "0a28bb7f7ee05b1e1b99e060f7c42524e3adf7826698de36b2ed3002282c30e0b9a3dfe020946c5dbd8b050cc67671f3777994628efc434fde71cb5f4d3727712d2322738338194fadb9710c8d4b60934722957a3a3d1dd1998d61178f7d81038429c67a5a5b58bbec39a335808a28b6923793c60669f48089428b8a12774797aa7f96f59307d4df890121a715c7312b31a23f787340655a36204a00e5a1f7cbaa755c39a46c6ab922632afde30a21f05b2480fe989f9ba5247ca649e4b68549cd8e351f88287d0f267d62092883fe4a53687e0e27247aaa4f4529875e7519148448036220ab7cf903d48d16b536dfd0d3f3829485322add948564db52b122f6f4d27a47713a419ab712436d2ff801a0094faa7459a641a7223d6a4a484c2db36b7e1218a28678d7138d77", + "a38b7d7ad8ac8fc142da8182f9cab54ffd6effdbb834" + }, + { /* i=5174 cDividendBits=2573 cDivisorBits=2181 */ + "1f82aa6a5d1ffb7261e2b81d3f22ded98500e28e9f1b43d3bef0b40a7bbb44af21acb4056b27cf4c49e966cd7f399a82d50e216acbdc9f72fd685287c64af09728c1f71a7282df4e9311148f05141747908b30f73eb628526e8e3625f663cef825dd2cd98fb40cfd7372f340b8d3877165d298ef41afb636c66a9e980b8c00e4033a79de783be24ba0200283a4f5f87ccb7789bffc8c5d5ad194f439863dcecabfa70e4192aa058e8e120bca80eb1a8f8624cf26846205a2d552efe7ca7cd2ac2590836df31c8d2385f76d6ff19b0f879e077be76cf0dea373b081d2dbba11a64a792d995a90aadff5b56bf32303a88d2acc860fb7fff07658aa40b94cfdb7ad4f76222634011dafd0299e759d641329b1cfcb67a53b12fc304ef7ae1623ae0c0197aa10b76202adc705c6726550408748165fe96900cc7d1391df9e8ea0d0729402", + "1c9e27c0066dbbcb5e847605a07352706a7c00c0811ff1fd72c8aa672d8399bd728f836b10eede8f6e36c86f9ee3f4dffd4cdb9cb98d5d5eb6b5971cdeb48d63b9cdedd1ccc74336dae2cd271b4569aca92568376f43016d606fa57437ce649571447c5899ff71fcbfbf54202b4f0915a1ca12e0777668471392ca21ce154527a8fd828349de688c6b0e84c687e57a13c8818f35610ff03250e5aee7d217d1da76c2f57c79c1e4e723940dfedfc4d705e638cd89f450461c207682d15a00f286d5e836979a8c2de620e60639c23389cea327ef77ad8f1269d882ed299e985235c530f86f780363dd5940c89570633b701a2ecbdcd216191470abc0ab4738f1fdeaa0c74c7325801e39614d1be1bea4a561", + "0119e0393af4c86a928398ad8aa1a8c8e8f0c3a3a0fd58fce48b59a9ab1c8313c85243d43c8b21926c03610b690be7cde510", + "0368fc014550d4f588dcf325ed7fcd0820dbcc0292f1b3b3c023b1d31575aa187f9f1f4d8f95e1aee26ceaa2134f27b14f6840a77ee3999b4ef08a8ec8e27516d1346641e31cd08c4e0edf20098bbc4057a237e4717eaf4f84dc6005e0982469809c8b9b5e63aee6c7bc24213278eebcb11fa0066d34f1b6f457186ed6c728f8e71a1071130020e6cfe6217d46c7d97c442730156915c5c79ea7a6a02f4006de9ac3ad068b6a2c828f9eece6c412e58a85901ef745799120a21a563763998b88cbf15c27b46b4ad808612814fcee4b8c1423dc80450ea74b3c3097f4b45df7197beb255dd62a2cc04ba6df281010acf95d43fa4f971a6cdfca3033e182ce53837d9c50b82ecffe234534fcc1bda88b78f2" + }, + { /* i=5175 cDividendBits=3436 cDivisorBits=2795 */ + "0fe9bdbd911449850b4fce0fdb0a81f83501b98d3648f6d7cd9a99c5bbe43efd58f3e3082b7341de4e2d4a7e83944bc98a3791323a96f1093e0e63533df740761bdafcea450d642c19e922e362534368762384f464ddf6effeaf4f58cfcc0e6b44618443b1798810f4399ef01ee5c6c07321b31d1d298750fefd59a067c6d3dd0aeda8af814d2b894238a5f8e8b10579336dcdeed4ed5d002c7d919b099260acbfa815bfe3abab803c33f42fd01eb7a6ca4a398efedf3d0c46efa2a1fbb7535eebe189ba59b27eaa6e5800374ef8b349d0a8f03a4a5e2fffc1bd8d6c8a4fe60cc66a2a9fddd12d17d5e24d8fa546a0c62d711a5b11abb0b8165384036b176ee253809d5a05194f88d6f333ed85a692bb17052a9d54572116290a008fb6023197cba85c55bd2c1371d273652647d33279f5dd34affa89417dfd3c073163074a892556beacd0fad70cadc008793a7bb4f7531f32747bd89f82fb1e51c16702072cb841da7130cf2154ca903d3c2e37ae08d075ca9077d2852a08f898c2db15130c6e50528ad49d1bf13550e934321032f8a5958ce79254409d75f6a81a31a4584ffefba94a398e3c03e6b6d2e2684e", + "0286802413163f5a443b95bcf5014dbf985860fa3125f894cf0d7b72bd0d4e332c97a709db780d45cf24f1e476d18cfc672ad22654dfe189049f573587cd5d206847a6e142996f0d066a910faf7ee0873f1f6b02e968e3d769cadc68bdce2fd0f3f2f67e8352edf7a51c8ba8f0d0fd8d4a3f9e5f498e13f893eade64e7c51d455fb37bdd175dc7f1cc08f0c63dd89dd4f01654092c0ffd380e8e618ef7260d32d22b4b5f0bd7a36ddbce4089f4d5034f0fd3a3dde918fc4f8477427d9d8a9ebcfe92d13c8157be485b648cdbb2646e6e6e3e54e528c91a37957cd4ee94f6ee7e3a5072bab9bd1a53a218ca1b137c0d8eb5764bec9c10429c37ed8a73e14483534e828eeeb6545ca5470166a2fe6b4aa2d177add6be13b58a4d55af68bee75750558a8caeedbbf4c32306ab16d93e71b8e7327a91549a6de4e09f9cb41a7420e893557f104966ffc58ef64eeea159954b62fd9f67a9a892b425f30e2e56ac", + "064d1ca6693e3291db65daef1377af577b5a46f913677f459091d37d8e847cd5ccaa74cbab158eea548d87a148939c5d6c28f78943fdc02cb4b60ca0fa46a07061aaabc34f2108bd70bd797bee85de7423", + "0121f3da2ed45288a6c19448e171b5727810e5d8821b470c3d13bc5f173c26f2235afc51ccdf8de25bc13cfb3cbc2ca353838aa62198461b8a9def2e5a10682200c65211bb87b4cb4c8e66939b7fe45a66b46fb6943aa559c2375252bb370e788ae5a199ce0a5c833429acad0f7820c4fdc0ca9cd16be750f76a154c569ac27c42b3d72102eca091993b0f46ef35b3074f08f233557d8710dfcaaec2c2997168193468b88f7a2eaeac6131c0b2e16b708c7e4d6af463dfe299ac9a90652b87d2b5a0a0c3267b72114188eb24a15c0d500d331b7c9778b4b888d2453f4f29bcd36a25562d8b8e14655036fc2764dfb0ae3702593c11cc550350a882b589f8421a5b15bf021ac062364d2ec9f49c3d5edc53d1acdc031932f0f46cda700ac7e495255dce7dd8684ee5078b6d63f93b01912f0d6f0278ad40d7fdf9ce3b00d8418f2739ee1774d4785df10ad2df793e080e29299222f42cf706fcf05e1e9eca" + }, + { /* i=5176 cDividendBits=3468 cDivisorBits=3113 */ + "0144373defaf78a8a4528fe2332f74ea976372d41673dfd464835bcfa78609e0533f923e47d5f10bdf8f17bd50ef13a88d62ce1f6b6299ef88685cb6337fa36dbe36812d955157040bc7d73a1963914b4788e051a0a0a342c430fb69d9cb62fefc090b5e5eaa63a9b1c7b99212c87605285a77dd6c368c3c7dac613b107344b043b4cc26c041734538642248f995841a71c7ac43b99b4d671541b499313dd0d6424c2ba6ab6a59257bbe51102aba53215f5027226fdf34d2e960cdd2221aec7cddb32c8f5a78882483a57e27dce681fa445b21d7ac6e67d7aaf03612b99076f65818f6a8a30cdd7962a39fb12dd9d597126ef53236c0cb7071e29821286f93a8d3c6b48a8b780834d31a11da63a237c9326965fe5dd28d99b2ad714e8853e87614bb6a5e5d1459249ba90508859fae8682a3bcd0a86e950e379c55e0d71f0b755e66a78cdc7b7ac3ffd8f2f7335223a6ed74919159c668a2bc01a60c61b1465976f3e8c6599ec49e1387cf3efa8e4e656150835351ffb5e0f01cd1b4f3cd853f0b2802910ec030359c423b36376d50cb2b269489cdfe947f2e06b6599e4375032a7eca957a068d547b0798044487ce8af1a0", + "152c8c655fcb75970add279dd3732e379c08f8dbbe195216fd0d800020f05dab93e015e0f8e013a78560acd71f477c5b92a74d196b819e5122a207aa4605b8a1166ce324b47002c80f90df1e608ff2557aea27f66a0dcb133525e8ab76ba86b8a764dc213afa84902117decaade5dd5bd7042fd0a307ec6e0e01af7a6ef182f11487ccd670d919c8b3764c01be87b5c1ae98c7a392e4e0a868054e0a3744892f6a9cd67411b2e8755a1daa6038655444e6a68e36ef04de7a5b931047f9ae504b3cc1d33c2b87c73098bf69ddb0bba70b1960d3d4e36c70820a05ae2e51c66a4e65ea8d2763249511ece484d7378be4aaf912162c57c516a11d7034e25ee383fc56304e25586d8a16b3c8975b84001569852347dc47c6bbcf778103325ad57a8f3b10041a857c1e34d288df228b5e5cdd6ab3938904e720d98f54c4f300592cbfe893e36c04de397e171ab8d1a7a0a2090a42973d7dd33a257ca9f50a744f010ad776532af1201cee1bd68e0081dfd6cf8cf69c78dcabe932b5f3d93901f15adadc90faf55c", + "0f4fdcde4ea3c8c77f61662cc42f1f95b9e97a7ebe47ac41eae80929a22c88d49002a752384de5a326ab957095", + "1443cce67a2c492579626e242a957dfe530b0fe9893553921904eab4e68051b397be24c308fc9d3b613773237b376f8362a989038488ae951da54b5c990906591c8a0ea66593d3d8982a3fc0052560128c637027eb282ed99ddbaaa60cd4fb09373fe6147d1747cb223c3c7288ee1d3d0a54f135e05da56b412fa04b5688c880db82f1bb7b75b8642866f08c27b2a474309c20cd5df4991e226f72ef3a1789d1635c8588b7429de9e79caa18953c52d5269540105bd3a8e6e5f8616ebee8538b6b9237d313d424e525386ee1e64d5712852affb97bd42a5f6e4eb13faee631bc3613c2fca1524bbd3f8fff98bab968c84adfc70169d926ca7b5741443ab48cab5dfdc55f864c19d35474e067d573d218901dcdeabb136be73a43546ae941a80052a9a0a56ecd756d1eb4255f3963d73222a178873ebf9f63f32f531355812d32dc10fcfc79f5cdb2800ec68a84bb85f317f2f46b09e252bad3707938b03e6a280247bd82f987fdeddc40f43c71d180157962116ef5a3c923cc705b0bc430645f1c5e95e314" + }, + { /* i=5177 cDividendBits=1143 cDivisorBits=468 */ + "7d2001237b9ee9c7b93108578cdc3ac72719ded80163eec5d308e4b9e6121d87db0785ebf7ac9a1337c65386762b854b3dc202563b58626a334ef0da96cec2f7dec4fddff7ecaa1c27af5f649c22837b07b4c451fbc6dd058a1b33fb6857e86e286881d2304e51a2f3358972388743fc8c06d7aa0494dee16c8a3570c2a670474048d587bfcdb8d761657ca00d718e", + "0707da728ca6031832e0a95623ea87030c245e244db577785f2ebc6a2312ee6ba36e831b1e2d8464d04ebd47fd61e691df9cff6ce0af8aeef796a3", + "11cc08bdbeaffd394b73ec62b5bea260420f9096a24224724a70719b2d086645d4c243730b02fba4db87de7b36ab18cdd456b6eb5d9c1088b220367457d4f19b9c000a6f71ccc0a2afec2d8150c7feb914c82e005c", + "0372ab22b77f5db4572353e09655d6218687f228adc307682d604908662dcd7164216bbbc738ec0d66fb2e48976a771d7b652ddf0c61a655c94efa" + }, + { /* i=5178 cDividendBits=3433 cDivisorBits=1497 */ + "33f7a5c5ca02216fa95c5abb4e9e4b321cb9234a940b16143144613bc653c92b0306daeeb0f075eeeacbaf728416eb7c2bedece55d126587934a30df474c5ce2369caf3803a62f775fba81d42ba432d496940743094e991cc32c2070ee4d948852159e951680d201b18a8456bbb16623b5a876936e833f2b65d4e2065bab7c6cf015b17479628fb2837ee8816610c27f3874a1681d9042f71ad58d764b608e3f905f3a33b53ea72bdc5a4e1c699458e62a08bc40ff172edaa95c0ebba3ff5400025b9b22ffe164ff9559122bcc573891713b8a17c39f44b95ba270deec38e5ea367d3720f7db86fea0a54304951dcf6a7a68727f56dbbeb553b3320461989471dc20c70e66337b1e594c1e4a64dcc2701ac1eb3965616241f64ed340c2a0bfc39d0accd3bb3dcfff58555233e5bfac582dd2c631198027657c4984ec177aeb1a258d4ea59485a0699584e1e8ef90c5bb2c37181e51cbaa0598a4b9c67aa3a950e582687cc04940539c2c1597a6b97012886ce6adf3fd75debf4b516bf1fc1ee66bf7b33962e6aa10b503df51a91334d770702280e3e9aa37221beee3aac91872ced27cf492a9110bb5bc59951e", + "01844c367fc3968ec32b86cb48dc330ed28a68c9dded442e7a3f64c62a01cf7aa0acbfbb152d29e3855ab95a2ca740dc37b61fc50f1b26572e552920ef123a52409301c20b87310832f4bf1b3e741720b474e433dee13f15a36b0348315952f83dad7cedf764b26ece7dd2117b7c36ea71aca1f5a649b0e69809379315ffbb87001a76bd05efcce1d4330ca0c200633fcca53bc39ed0ccd976f39f77e31e4211497222e2f996eb150a6d15c6513a89b6afef6b31d43ad86b7da18a18", + "2242ef3f0a30d0776742efbc2cbfcdec68331d458815ca70984267d8d1ec80d8f6532480e79ff17525d2fe3976de28819d07ccec77270f1ebeffc4135a0e91a4fac2b16a450ff46d503000b898d86bd33d61604c30e12829420b22e9667ed8068867da91e9f1d6eec531fcd13cc5c49499e3bcf17d1e950e0ed4cc313429cdedfc4680211e2ec823a2aeca61c569cc6c56a613dc1c8f0be08217f2c2780606bc5afa3bc40bbb8f987954cea6c5bfd9f467b9f2f790415df0b4745dd677f6a8549c9927f823bace8de6bc22e8fc572582e7c16d568167e1a1b7d0a90f6c8ba5db85c6d555262e43529217b52ea0a5c53a7237", + "4103989d40d34af98864830d139a6c3796c91f0bc722785eac888bb13ad0866e0c04e38e7e215364ce6aa39885b738fc1b82d3790163f6c51119a290608543980f3a119d1ebf089855fcb073f29a5e8629e7d95d9d01ddba01c8faa32498589832491fb9ecee584a5309872178d8ce6c013bd008f3a6b991ef069ff5ddfc267e67a577173bd6ed659204757aff03aee905d9f084e6684a908ad5d05df0783b716734205b1b79d44f0ef3118094caa0646bd0dd6447e7560db639f6" + }, + { /* i=5179 cDividendBits=959 cDivisorBits=875 */ + "4bfbe038e7b5166cf156f7b5a8054a607ca39443adb0b7993d64627f50243745c7c96ec0096667c93d5d18a1457bd4e565e7c68518794757c25792415f1dc86eb462a308e69b988d471176a5dc49eb6ca5157cbaf0bcf87f45325740c600d1d484fc8f4c10d473e198d81169e2a7286e6a0c788484235e1a", + "04b1381d82bda13a21b4c6a344bbd935d7fd3f23fddce2e1103564f97a78eb3f3311076ef933a73fa162dfb229dfb347b1040f42f5753eed1700b99456823fd89c4668ee05befb8055313c0740a8f164eeba2d4942bcdcddb529902991446d123a1f7a8c4bc49181316869debd4b", + "1031858c00cfed86fea236", + "049a4b1968ee540cebe5418ee2742c006b0fa0afe276a0e87aa82cb7051806191026e449c3398df0685546a6cdceeaaf14a64b0c6822d0ea75c5adf228673a19e0f14a157a4c9b0dd932796ed74636610f686110985dd8b9961d3795ae331b03d94772d31d17283f73fb28f3fa48" + }, + { /* i=5180 cDividendBits=1626 cDivisorBits=794 */ + "03563cc8767788821955963e3bd5b2f837acb4a628e0857ee84ab5c5f87dcad1986483c28fa6ea7b7819318aa1971ad16aab713a1210b577be94bc30e1d905b6aef30c87cb80d9c6ae4d71bc7bb3b0e5f81d3ecb271970b0df06596ead6c15df6b996feca95c13d256aa57395226148c8783472d591adedefb53c82255046265138c10d331d5fae33f89183bd0f5d58a8788b7a5c83b57a02b301debc099800a50db30d557f8d100d335b17e5e126cb0a08443ad3cded3a3524cf3e9c9b8c9af57237f10fa04bcd5a3653835", + "02cc55bb1b09193ebe4b6e0661a0dc720b2e769ac6bfd1148ee95a29d3e683b25b8cd86d1308a23e21a7790876b40edac275355a5a975616bc42963ca1cb9d4bf981a245359595745a39880b8da2512d1f5f3c516a0f138178b6022e049d16437d92b08e", + "0131486b5deb0f54ff9844e2fe84f1c21150c27239c1f7a153cad799a647894cc53150baea959415f3ae00315a198cd85fec9db54b7f5cddac8456f9a7f4791c8f594392c1d5a9708fc8ef0bbe3b795819e33024f6bddd10059d3b52e0e08efa6770f9a37bbe28ce36", + "01a835073fa09263d2c71ec904f92a30bd72ad9df2b6362f5f8d81da46e0c97ec514291d09ceae73e208b5dfdab7f7e8e338d4b194b2190c5ddb64cc5065215b99577aebcaef865f86298c50286fb4578346f4bdb38523b78bf101247135ff5e2231b641" + }, + { /* i=5181 cDividendBits=1544 cDivisorBits=243 */ + "e9fb1496ba706eaa30c4e3b1fe25f52ddd6548f3d5a3a74e56dc9af077c131727b4240717348556b6af816e2b04c2a1907822ff8f6d07b962ce32a2fbe26159918a0c7655dd42b2f0bf4102d01343eeedebb5ffe7b537d7c7b9017223dccdf521587f3387f34a11459ea25fb03232cc39376176c0e82605fb32e87667189b3a50840cc0dd46730c76208e8cf3e347532d12d904d7cc166bc464d8008bd73f10ccaa37bc4e6dc51ece006ccffcc1ce704865a3f3b0daa5cd857ac1ca07cab59ef8f", + "0789c202979d9e511d674e34f82ed5e77103384e1973d5bd866aead3735bcd", + "1f0a28f38e535ad76effc55cb7ee30e5c71e7e90bf1c5c22191c0af842891a7dac6b6e55786cc3e42aa55d9e43cee5acfe0622893eaff7505036faf8c1f17999d65a2fa8417f602d280b6b85fb536f169df8929c32202b0b6eb6ab29bfbd208ee780a6461bc02707dd26fed9a883bc8711af9a69f8eb2a73cb321a6eff601f7985ed36b995b36ae5ba76f8b4efb2e0bdd8a1f74e45bc27b13cb59906ea3c21303dc7d4", + "03df6982e03e8200048e3b8c04ef50bb7138002ae3cbfdb750a686939c8ecb" + }, + { /* i=5182 cDividendBits=3417 cDivisorBits=1735 */ + "71ff13f47a26069e35f790677c35fcd1e45f6c1a3d9ba55364c08a206945438ad102d534053e0e2c94ad57983b20ff6d3b6477289494146fed6e4733ef575ed6ab393f0b77f360fb5eeaa51557482997879a69f74751e772f5deedde0f11080e54bee13496f17ab65c33d20f9b169b97545e89691c793e44a9aa2a03ac8664ea4f13654e5b4a6c19fe69548e0e41c209613ffff71f124d0b85eeed42fffc760a71330faad8bf23690fdaf888b4bc04b44d794d9f009c71e82261e248c72ef7c1bb5bb45a8d96a25427d8fda8f5d33c61738950138d5f6c1800387adc4e33c1ba6e688a0aead6baa27d5bf5c2e005592bd63e885c6a83de50a394e21fa41ee072cb0bb1006489434e1bd8658a81763aaa74f16b5ade644b4d6fe2db7146b899ddfadd4d2c01054ea1b9ede57d0c4c8ec628fdde60de92033a6b8a1a73dcba28c6680ff4da223a30896dd5aded5cdf599862ad0a552e0dee2837ab9f94d2e0a76b10091ecdce5dc94141803aadf8a23a2b2af9919b5a743d0e102a517e6eb495d2d253f8e4a59c362f769cd5db38eddc26fb571e225d5557c9eb34d72f021341a944033b913f64a78e5653bf", + "0adfb76115815e425a29f50589df58387e28d5ec5c9a68b2d137a15555999e4be27c862b77080b89b78b9b56054d4d251153b559403d1bec0e233b3e0b83f0e17f53168375ba4d755b25c552016f7328d527a4ecb4e1e12f42b063aed39ffd3f7758cc29511d4d12c117113c981452890b084bd3a57555392e1ad1d7f57f3f2c69192af430a2d81708fe499a04420ee9d8e3290aacecd777ce6fe050b2641b58c5cf1bc81fbcd96d00470ebb4f0edd0631cfe4a28a8d610a14051e20155315fa8c9ff3c7eaa9def39775d8853291a9e1d99363788b54f815c2", + "0a7bc65ebca5ec76ffc46c87baa2d0a71635da922fd9f14900011167d2213517879e75091b36e41681c9eecc3b3850cb7efc086501e4fd3e80d6785f379f8be6911712393cf85cd390f21d369204bc458fa0e4a1ce6d3d605290ca57d3de220ceeda006db9fdc96af011127da705f759b79b1a2f2d897455e65a8ab1640aa3be93f0f3a0fdc63d2d62c296a6616b88b5324891f4457f7f36cf4f671a47719e4a3411ea78c1437ad19ca8d12ac8418204b2cc74a04d978980a8083ba9a0fcfe056d963da4505819eafd571020172acddf21d212", + "08275e9cc591b000a1566693c3b4c99dfe8814dd4a11688599b2dbc8033ae28082b8ded9eaface981e5da4dd28f57949a4528969d4d689fc93ec3875eac70a6f16cd0ce26c6edbe780a127f845337f00940e55374edb59a81a31fb008c08021d3ec8f04e2d6a43d6cdbc3f820966bd40abd1d6b42ad18b8723e2624b9926639c90fd317aaeb11466bd195cea6667e4771d159ae7299314b7dff5a9c7baa32034c3a2619ccfc85ffa705f906adf31fd11cf1ed62738ab3854aee8e4b490d5ea243a4679c819578b1b02e52bcd90606bae8dbfbb4fdf4709a81b" + }, + { /* i=5183 cDividendBits=2826 cDivisorBits=2740 */ + "028cd54848d10e405b61c3df101bbb8447c1a04d208dd6eed57d74b8f99481a742f05a821531881515ce68efb1c28b730f58031a1b8f60233bc6d0c27f2473eb79a71e5a63959d88256743d5205f9f0f4f1d35d39f0a8402c8ba3c0d60f6aa3c7911d5de3482c346621c6608f844b91626079df331a4eaa5200f68263e34ac2e95b4bea322ceeec757743e5f9df5fc9d489865a37c972090abbb704c9571aac5b9a044631b404fc1328a200034e298cc988221afe43f29d075b5c987c25ec8143bc70fcdf78fac906b909726d775bd9346e8aa6a3ab7f913eb9c20a604b105b84a7179fa0e74338219900578f61b075fb9b632a3f7c7f87b43ceb1a6296436e95721202f35b5166842521d6d503cdb88f8a0e861ea2f3e0172eca6629c0843cd8b1c366cc1cd1e4d8d467556fc192cfd2acf6727a39e0a31b0fcd78773447215f1209cef67025c72264f03cc12f8e13e7700acdeb7755f1b075903b02f365cd3b296", + "068a1bf052c656b4d32fff5db731315ef08e90a394c9146f753186372f59441d618edd485d9a32b470157ecd5259d08b6e41bb6d6813c41b8bd9e1adb34440934d2f1a51d6e656d998ecf92f18efd20ac0780516e4ebc01ddba9371f20e24b7d7aab182cf4e2865d16a1e30b5a27919e98eda73fee5c24dcf4ab9d02b39ffec26211f5346e5b7661dda05ac650567366f48a03e368dd4a5f3b920f8e8a0db95a44cd3530d2ee6ea3ba28148e8332133ef4d215dc65da915825426fe0d8b9af31338c450a06fa36030508b49a3d102409064bdb3973b7ce6c041a1cccbed369b7b02b6fdc9c4b52391d4e0b9ccbf67c089a785cfd070af0d492a63b94bd18b3f4803658e42b6f216598ba84df17e8693acbe71c03f3d259c5c066df364b9deb11c5f3c97f1b0f67a3b6552090c963d6032622eb9d98f15c6c2cced2511010309820bfd4dc79e453f6a3eb584b3d41f74b5f9ca91d380ac7", + "63d4527458696e06c5e227", + "02c0541ba97961471d3c03729e6406edb0a5b3cfe3f42d8689e0e7b14cdc3f499388f5fdcecbf64d565d22dbab4aad02e9c4a041666f734d1623f589092ebfff75895e1352144e884e175da6b49f0278e2d62860ba629d0ec9e9c048e626e616074319cff2d1e9c43e5a28e1a4b96e10a2085fcfb56267a66781d84524af3bb7cc5406b9a58dee4662614dc21dc6dbc2498f1e83452e6794f16924a4eabb69c7dd08966a30d3de63e147d196c10b13a23ede99b12767dc94f114098f5e292edee1a98ad66c0751316b9c671e44458bb895fa665736a8044865968a59f99355ac54e8a1736569b11c473d58c359cc9ee512bf61f72de086f24591b2a06501286ea353a4b2054e92a607937745fe49f308fec093f723c116caeb4ae60ba63b7358ae43dcbaaaaf70060b7e361ce46e1a446c64fbbb98c08873ee764e2d52251e4b4b353f8d6be37720200bd53fed0e583016f8c47aa36045" + }, + { /* i=5184 cDividendBits=2907 cDivisorBits=1757 */ + "baee33a566611efae019b08da6fec97e6ff382671759e7e152d254ea45224eb9cda73d63b00ede221b05c5cde2a2c805c7d78101526f55df62ab0dcd794109919111245c18a2d926824c40ffc14f770e8bbb050007ef75785fd68f9d63b96009399f1742ed9f91386342f63bf0f36a5f36716bf6b613c84e804888d1937f1cd8f5b38b90c69068ef0bacc31ff2ffd6b8f8e30d25d279326e4a1deb1f493a6d24778338776eb65de97ce96135d91eec4ea89b387c0c700508614331507551fa8e97d57336e4e92395e3381423037e890004c157de95633be9fb571308a592897a80a558d93a0ecb1328d627d35bd2bfef103723c2d9c40f3a7621f08a6f44f98d9a9a9bda6c54405c63f1c9b35c09ef41f69cee7d15062768ea747dfef955e473d8e5d8085a8447ebbfc873b84dd6f6f033139c5605927d5eb026bcc3afd462f4c7c33e8fe229290b81fb7245944b975eafed748b08197a0927fbe2d21d8d7cc0fdeea076419aefeb72c5d8", + "3f8e136e9a81600b10d7520a8f6d46ea3c2842dde03d51dd94feca6263a7af5bb459ff68de0391c784acb2fca8b8b7d14f826b2c2a73680caa29e1fefeb0d0a307cf3390077a6d14669d2e602446c7930d664d4a0153aeab5aa4cc3d7489e4018ca622c51a472d819a065b0c301e905d02409576d23fa3812a57cc244edf2fa3d9e7f6f0a4f0b59a47e98aaf424ab7d1090c1457b66b3b20393b8eb9756d9612a69564c97e2310d7f4cfaee28b6e9ee375c403b9bb1099898a4055a008745eaefd3d7c57fa868fee2397e9208715b3c588bb6782a800b94ca56c4f", + "02f0f51e9610b12f0961d48625b98e6c47678debda429beef4db4ce1b0b85fbef859eebbcbeaba27cb4b522a8649dfb4bfe003e4696449d898945f88cdcc9ce1b330aab4bedde49bf6d487ed537c0946f6f7bedef4bd750bac2ac99f194882757b6a07e2de63612c7c24ff557c00275de228fb2f7fe2e4ff03a89b41e029c98d7f14793a1d55dc3889fc1bf24cc30b298e", + "05de644a8bd50e061b115fbae8ed9dfd520933f9b79a51e7b26d33252d972e7e2c15843ee6fff00160efebfa6f2648e236e20c66d0a715d5d1457b6762bdf7d904c2fe651c58a09a6791036e31360d338606175e8144c5265788485d41f28ec476c48bfbe231b4ea78d5965c7c77ec88d054bc63ab503df8fe8424e007a742da5593fd0cd4f0b82a9cf2aacb7395ecf8bc7d5d4c11c2d99b9592dc8e6656ddebcb578a228a4a7358edc78f34fcafa489ab26482dc760aa4a82d007113d0af2dfaeb856f3609b41fb3ed23d5fdd8ed5ca8045b595c764d114f30b06" + }, + { /* i=5185 cDividendBits=1871 cDivisorBits=12 */ + "262dd3e58baf445d121d07faa72d13f653030d79407f01c99bf88512307bc943f3838910104be287f9418d62f555b14bb249b675248d63f9d788daa111b4f97303a602fc7236ad318f0bc2cf13c90f0ce932628e44debdfd323a025a643e0d495f3f460296017b59dec83103466855f39083d9083586585b90db34a91e837ab9f7af6b5f2997b69e469d6b661e97c6dcc184338e18a5a91c15221814a970dc2a9901b03a03b987bc1dbb7a0781d84097d33ea72cd01de5ac7691dd63fc90bb4ef10a392a8f18e46a6c88230b3f2b015aaba992cbc252d6a9f1861cd7b85e824b65d72a2f9c69a32ade0b", + "01c6", + "15873bb67098f60e230638603a2db7cd6f17260bfbc4cc00e84cfaf715b33134fa164b07ee1f831e6f3a64062ddcddc52f872b1cd695a5c423d35f1607baa0f54b5c7b7b2d3b064fd25a15e2287a64f65d268f89bcd34eefc219f189ce83f9f57f02f93d3aa57cd08faa6611a2a0548dd9f26191991b42bd37be2475eadcbefffb4fbe3c6d2990b377e37a960efebf13991a0d483b02106a0e2c09114a1dce7901b202621f6bffd9b8ccf4bd2f4730d3eb4649f76fb6a3571921c1a142db325be10261a4f798bff3d571faf32b8362e0cd0f8c4a4bbdef75412426d19ab5daf34151dae396394f99dd", + "1d" + }, + { /* i=5186 cDividendBits=240 cDivisorBits=103 */ + "2bef2636a967696abbdf4280d62f24b4ea7e21fad1c5a0611009bc9332aa", + "2cc0cc745ea3aa9d86bd5cf0d5", + "fb50bfa4e5eb1c57df4031c2f75efdca81", + "2472475b6fe37750edc234c555" + }, + { /* i=5187 cDividendBits=3764 cDivisorBits=442 */ + "0f0d1f026721a84c5ad9d2805e47de00bdaae7b137fef11874f43ecd873f46608ad93a0edecf7beaa187d3a23f6357cae981d5cea4bc19df8f4662d67d7c09ba317c322ea1225ab614013c48304ac75af2103844878e0760ea9dd4e203b85c9ab461706aa944da8e2611e2ad1a59014186ec92f74f7ec1145df958fec6c4ef3c2cde383996ee3a81cb33d66b25c4f1e7866a39d0d512507559eed835cb4e6459ee9f10c7f099277216ba1448868d1017e7fac4244a1b1ca6b21b7186dcd7ac1e32655629afde85453cc7edac7a939867e9a231e473759d4b24271020f11d72fc909d2fa7cc5bea117752871ecbfbfdc65c9770a5e84700eb0b9689e921c8013a52c38bf0d5c4027e325108590476852339e21153f14f4be347345d644b10a8ba52c16559921c083e62c1eb5bfb788d2d561212b3f97736fbea5364a08cc822d63abf7e146bbf2c33ea7cadd0e5fe1bf38c6c9cc5ff2fc168584252057a36d5327109808ee0381dee5f52317b839c02b54391688826ef5f6af0d78fc922c4cfd4601267bc1dd916aa0477998f4b9d65fb16aa939935928e008612e1d2ff2a5607c6f7ff21d70487110a684725ef2601ee9d87e6612705b6e3c983f73be10977579da9a9e54bee387bc2d054d56c5bc3e862af0e63ef5940", + "f7381fa0c1a60bc668b4ff58b496d88d18f0a812c451cc99178d92580daa20577d9c5780ab84ac73ee26a5ae6ce9fafc129fe19dbc2055", + "0f95fa115cc9e2843f34ca1023b772aaedf8e5f110437e189dcb47320745d83ba28763d47359c8b7d3d014972b8f34761aacf67733025d51f9e9b35e6d0b0d7913ec938d8ab1660905029d74bd4504dd308a374cb2b7ed5be3129453d2a9f3fb654ec96c00226a423bf1e11bb33854379a3c4d0214a450eff210e7ba32dc8298b9ae4e90979ac0d8a97c8309abd1f9e1b43f5c07c284347cc63a18495e634f38add32f96a5ecd61798c54bef9eb9eb46b5e23a0d65b2175a231e21ccfbe63e069f2d965250e4357f63ba948decc5b043f9ce334ad1d0f0eca5e116a330b19a5fdd64cd53d91026a8f2a264bebdd24e6059fae5c26e86bc4060ddc6290e4d5768e4422e4370a1fd4aa57ddd2aac34096c793d8208229bb104dc8ddaccfaeb7a5f360838bc1ed2e4580e92468475c7aac7fe30059df1de85d15074336417b3e35bdee0ce1996d898bcebe89eb537776f8ed7ad01b6c157a2bad39fd917083e5a32128918126f13236ea6e1e744af8bfc08450ac85e638e2439b0664ef6ec686fbc003170f0f522fce39cc09ef9089d7b68656888e9060f6aa9f38e2545fabc5a3c", + "3f331e5140db5027da43befd05ae2d0dd3b85ad154514fd86a3d1795a1a9c2a3f7686a2616c246ad5703205798abbf378f5715880de354" + }, + { /* i=5188 cDividendBits=1106 cDivisorBits=740 */ + "01e637644cd0818b8d0a4616b930a055bfdf79ca2f5e4663e7a44249d9fd198296752eb51636a9594d3608496bf9b5bb6878206c29336357c97a0e970a435fd75ee6e1db6839b8cf02c3e8d6fae18cb3d0b7666b30942d412f85bb73b4d47dd6d6bd1da5299e942f825c4009a408d60f0a753cab69b3856b9c371670bd361d68c0f6e14328952265dae43c", + "096b958d641cbf9eef1abd3412a70f64736f925935935a76b904c72c1b14745d757fec0c5c8218642cb0a00ab32fad2e739f06765bd6877a2567cf75d479fae3aba5bfbb25a2e5408bb46045a2c7d31e8cc339dc45d608ce4f2c029a4a", + "339d2bfdeccffd8814c38cd052445e0ae5d099550aa2dc67e5045a5778f601ae3f8d37e2168847df62e3b9452f35", + "017e05a9d2d3f4b93f0aca137a0b5e09aeabffd739f02179b450ae34f6b60311889157af66242c08e16d4a4398f795ea768ec66c656788a0ca4123bafa0d590e350bf8cc9d321adb1da4128d2a341ea98efce8db3d917b73d8bf0b5cea" + }, + { /* i=5189 cDividendBits=2605 cDivisorBits=12 */ + "027acf5da6128fede5de7904944631991fbb61520372c8c41cc0666747abdc9324e5861d65ce2a2d3761b9fc119d425875dadf3a1ff5950d982b422e36e344d98baebdc5cf78d3c09c9b230a52f77de9193721164776c8c0dd18d8f8b489feab7b3c07417302109ca786ba36934b4ea05fadacff479e689822c3a4a2482efadb0aa5ced03bc845c43c0e67168e8b33ce6f5d4f5bbf2fac222d22383bf08a8c80f3010c9086cb453222dc90867a65e54acea144f3b28390aaa93cd522706e892ac50e51440f8b2a6cfdbbf16159063f5cdb026a2ca24e6ffa983bec559d4e625815e15b8d969036ffa6729a49fe5371509b7efa91cdf554be6b464698608e65282bc7528b92db06b71ae00c7bc90c9747929b6b838f7b0ee8e11653ef9f5baf726cf55610b8b3038cc3bdb00e98c1a3f912518c27fc5193185ad577450d3973ce322bde3dc273", + "0a9c", + "3bd5b6a2b1717a55c2c72a4809a1e4f5cb88fc0ae1b931061a6df0d9e3b5c7be1ae993ecf11f7f8c9272cd7c31824b72ca5b2acdda11d1c6b54776983699877f679030ce8f58f45eb0be4ea3e89398cc764dc5059ad7bab573d39a450be0345b8b807ed127c8420a8315b2f3de61249b4dd33a5ef970c9581b7d3b6874070e3c92d548c9b018ac5292e3a31da5d0da86ea418ab8aa626a86b46d5bfd08e96d0cb9985f0f5827b349ca237d67e86d15003f75b8b6b791f8b5d7bc9e9496ac088e3ceb62084064846de0b398117090b7b11bc01c562dd98a9cdd4e73e61bbf5f65384e0086d6ecad660708221ec21d8829cd61e4452e1f5cf9e633249b63019dfd57076743c1b2f73e7aea2d998c4f1b7b886dab20c0922ed57fa764a14e643c8d79872b6d06b1894f269d9a122b22af0a65f14f8d0992f4587db00079e4fdb831f8d2f7df", + "8f" + }, + { /* i=5190 cDividendBits=3613 cDivisorBits=461 */ + "18502e832c696eec8569d62cc27ab6874e47d24fe923a4d5f0442804f77878eb8dfc30311cd2ca69ae519c08d018e255a1d24797a1545376654e2cbf673736f374de67a5756ddadb5157d87c8c1e57f97f09d6c50281e6c963013318f382aa482e5aef509e906b047e45f4f38bb1e32ab93116a8eebe987d7c156ec6ca3af3a3b0d822cc33c171c9dac5d32ed8c5231c41a9ce7a2b5fe55c061d7113c13bbc0274f337eb9a3ab2e2004ea9d539e3ad612bdd246314472a9cef014eb058161362e3e39c34c214e0dc08fa005b2524d52a3e1e616174c06bc44628a2e8ac9815008340ed0da1991e949ce93a7b341ccc5a637470bde6cf63f7570ad24cc2f78e0746ef79b8f85532838402e6ab53434ba2a265c91a6a7ce03851c71655144c64711e7901d4c62a2f0763a5e9ade18a1dfefc6ab10d45e7f4b4293ba58f6f71094171b138ede603917487c0d0583bb61e23da21c56efe1b49e207f294329b82b04fea9f8fe0a5b416638f261a4e8b77f43a1ebdd6918b831917ae8afe2065c92fd3739398b8ca36858ce447284a0edb52c6eca7986a5dbb4a2b9e9d7497aa70a388734a10f77aab5100dd4f2663fb3010e6b9cdae069a9db439a6ff5dc51bb550fbd4c04798", + "1ecd6b22a8e9231bb6621edf0b7c6bf1b8d8896d8034454b7e583c4663902f6dcc6b7276121613b05485dcc79c972f74a9edf173a01367e6df9b", + "ca116683d84d4f2264712503be5a8aa4fad1519de5325d4d32f63eff298830a1efd6d27e23da55b71ccf1e1e96f0ce2ddd85d7fb8a6b020d5c6a1515668e9460a02df61423ac449bb667e0cd069520db60fd1a788c69b34a38d0ed7f62bf049d30d1315c03842a26c41bf022e21f3df8a72267b16bcd480b6a6ea9e4450b799ab01db5a6d7757432c730ccc2295e01496c5b5cf6708b2a6228fda16e1e0c44800ca4347b5bc24ad8e12949b9e407a6aa208f12c8e0b11bac1acbc21bb2e241d94f2797c17174f656dc261779a5f98a254e6744ca7fc9cf84669d9fedb336b94212cb19c57e1672d1113962f4124fcc604f2a2fd7f9819ffb99e4eb30f7bd581f2851eba5bc47ee0b0cc88413ab24a46043122004208eb0d20e9bad3cf25d8040864a5b4fb776ccbe4f2875b8fbfe85cf8beaf71a46cf093ea349faefec680884ac0b08109a00e950d0a8ea0367d2ca1d2371ff0fddcd9c39e42a1d5c9385d25ab1502f03977b59b8a872a5fa2d9987942fd3f90e77cab9f2094bab7529ad0f9fae17a901e40f71d627ee", + "0608faff017ae749afb6bf8406d5ee2e39f210909ccb6ed68ee78b8ab3700535659064fafd10e29455791d593630e6295657bb75a055b979c87e" + }, + { /* i=5191 cDividendBits=2876 cDivisorBits=1860 */ + "058c139329aec11df5b755e8a944079c0da0f5c38dd712c53d4e699c6c1dfe948e229010104174d600e6c89477f5dd42661dd6149f85843c12a7e5fb10a27742d9e5c71969703c29431a81b10ff7a97d9f13dc7adc19901a8c5614442fec2a069fbd748f3c33a9ac03dc33b77f398b4fd008756ff7cd926d8d7430aa114a8e88fca7198a4f317238ba2980fad611a156f2416c10cb713354f91d5ff11246670f1e223a53449f407626400c48a8f6aeeb7091ea674d7abd88bfca9a767137d064172e12fb286d8a4238bc9b965c1c02bc22baff411d2b8a05d44b044d003f86c2eb46253f4013974e4fbce02c7c85755c856159e5bb78ac4885791cdb0893937c23bfdc637e83229b59bd8485fc3e3c5b5de14685459ed3072a81cadb90fabd1882b1159413df9e54f40de68bb673f3ba606b730dc6eec87222bbd3632ff0828189b17ce199c98dab539dab8d599dea04154ea9a64e23c3732885a603214ef5dafc49a74be34658af", + "052c8b374ee23f348a87414c32fe31eee20553bae9a01bd5fca7a762997189d7ac9c50e86f720fd50125bd72708a1a9fece37250ec0d162bb3b9f63cb27c7a81ada79765ede8de8928cfbe45cfaedd949fd5d82ef6eeebab5d6458c5a10dd8a7055424528e844ac4a14ed84915fa1476d0592998c82c73982a0c4ea35de3c08c29c26b7ed4701c235e9de3fbdd0cc255f746e9c777d0e4d72c1e1293163bed34c75b9695f31b93450969b4980ef7eac3ae94876bd52d37c4d19104f7cb3a297d29dac30aef5789a804f5ad9cf129dfccefa2e020e75d205d5988fa119a4998c5247c512c62c61bd0ab", + "011276c7ce53ec6aae7e7b48cdaa7d50639453ba6d446745e091f9e3624a3bb428a3fb060bc42516ecee83726c0a82fa53e4e91098a7748ebb802ea7ba84deb6ccc31173908e8f47804127cc890f00400becb7e60087400c1ee93b06419c693cfd39bf20653d012d86e62a2a3e96f00db1947e833e4b48af69223cf86b6e8b50", + "03acb45a538b1dc352fe7d69b21a7ea31992500f716cb2112b3d809952761edae7d1a966bb10b88589d450e4e6f7a5f817984f41d95714198310187356631e844e5ec770450744f57b8c4e6a24daf11a789b34bba47576ef24cc7a23b2271001698ef1e042c6a85f0b3a4840ce8f94bf344b2b0f9c5877a6bf6b1c07df048baca0d77bd97fe10a7c2e3c3d7ce0c4b51a9d08d1677063b4e109a445daea1da7176a9c212aae7d0d9efc5a5aa756ed45e3b74fe13eb98bee19c167cb7fe0c53938045dd9748e0aabc595e5b51387678c7056ca9041cef62fd7e59a09b7e58fac973a6b032d09bdce4a3f" + }, + { /* i=5192 cDividendBits=3637 cDivisorBits=633 */ + "0ca3df2fc64e6bcae08acdf3b2e1a478cc81d22da27d37c07f6e5dc2fc33b320ee0e08c212aceadc9b4c545a529f62e5657e319cf103f122202e2c6c7fb782627f3c8b8decb06b9fcba2408ac27e5974a8709f01fa1abb70a17a003a6806e384d918d1c7b090c9b96b8bc4e673fdbb726db1ce9d6208000a3923e550a82a3134f8e6e83cdd270ae41fb69026ba7e6a7bb0fd754266ad3de72ac46c3752f83362f9c8903ddf411d28632c757c2ba5077967e69e2e07ae1ffac1f6179cdf8ba9f3e902d3dc38b6f13722d8eb771f945a8c877f5a9b0448c3fcbdf83467c765012dcfc4cf35feddb0722f89faa72d0703615b7ed151ceff60ba4bf9308b18996ecf705f4982c1bd583afba10940557f5a78a7d76f19d88e70bea84fa001ccb99f2236146a0acee62fac719b8e6f177dd05f8817119c3543b269e934a58a71bfbda0c4fe082ce5f91a0b6c90a8439dbe25243af6fc4d7588ec585f618a1877e10cf090e055ab10451976b5efaedd1ae3ca2ce1aec4a20773ef2c89ecc6742efd5b4d5c6204cd774d6fccbc650a5b517520afa25b6ded402b5a4f00fab73520eadb1e75f825db296dc7d4beff6bd7acd45e1828a70581ffd1ff468f6f003adc677437300dd6892de28f", + "2359db193c362c31af7d186760aafbfe9c7e4bbdc5179564a3691d4cf755d6690124c9e3e233de5b0ca4e80c3f2b98d8f042c4b2e372391d38fb268ff896fed0a93af8f3f41649670d448ca7afc9fc", + "5b89174be34e45c16453a1cd1169dd9bae323c799401931af2276556dada7622afe3f68a54e358652ecd7f144e185f510139f466d5288ee3c4d667b20202842528525d000506f75056dc56e92a05122f521ac8ad8e7f1485429f4819b26658bbb5e499c33e1307c284cc3ff9c7c1029e5499893278c3c6412810ee6e31dc1469647922fe28b14f0ecccd15ae3e1da7835a0733c5172276a03d11c8c1ddf60d0c96ee542877463f269375a816115f656df45d9345d9a33a0af00cb4a58f351ca3ea8fcaadd9b1a39c0d58bbd2402b634a23a6c3a07b18c322493a825b6185f228e4f96ff1b08b5e2d4ae48e196871937af713697efef25578b80cbf590d6a26e0761190983d9f30898a02720b964712fe43d5fa3fb9c43890683f2dc5a421cb5c4fb6ecf43d0a41c4db8118b8bc5f17fda0d21718f8fc9814aad5cb128e1d5e5801c4eb9f7d59e27a145cdf45548b87dca6d9d3302e46bfd0cbeaeb27cfb56fb58324dd89f76dc58169dbc643e9d6237a179d31a325ae0571", + "206f076af8b5a7aee873448bb3aaf9bcfc14de76a4be06baaeb975260cafbea12ef6fb09242c2673f61a91b42efc95b9b0f03f185d1e2be7d84eec4fe74eb93e94fac509f542699e04d359605bce53" + }, + { /* i=5193 cDividendBits=2593 cDivisorBits=2282 */ + "01fd562d478f911611259b04f10eccc5c15ee70bce0a4cca8f3411b11b2d687f972fa32f9eedc766d4860351042c9b45bb147fa140ab9b9e588a00e5103315f66cca0432d462d35e331a3e86ddcdef215684199fa1ae0d53f6d727f1922991991537d3b6fc560a5b4a31370558bdc6b092d0ab6748e329d54483f9a94ed00f910abf1882cad52636e50979649aa75aaabf84b594f95b0a6bcf13d279d7ecccd1506cc72b180ef200cf5dc16906c459b0289214cac05c6c3f8db6a98fecb12f8bb0abb3628826b9062835a57f52bea9ed76b4d7a2b59b9e20df570c7dde602ad67682b902f7c10ed6200b7e344a053d3dda20f1bcb509bc56c5f24a5f9006dc2ddf87053af239d193571e4f00e40c1e3aac509a23e8b39a3ff835cbd5c98ea798856a8a203ecc7bee2cfbbc93f20591861894f48419ece5a5c9fba259fdf908a4d771bc17e6", + "03ef61a84c34b1f0ac21c7eef9c596a59bfde45a5bcdef2906c0f0c6ca847e2f4e70724807be14e5cc8fc67e8edd27336f48957d2e787c144db36f70e5ea97e25aa30827bd614aff5fd088419d682b107e605e93807da768b7cea4fbba8121d03c4b1a4fa171982ce0a5a24f36a21a83dccb57d791186e9607dce8ca021a387076c37c5c33ae2b7b0710f197f32323b18bbcff3d498c61e12fb3f02c8044e82c2b4963cbdf3f7a39c1899ddd4f3380ac9cc394c1e9bd6ba669540990b08ff96738ae1f6ec20818cebd29d92ccf05ed3c50bebe47bdeb9318e2433af3334f33fbbefa0f0f49204da3d8f50c29979069efe32a146d90ae0d58014d31ca2a08f59e9ba3f624b65e4593c1f9c04a71bb4a14c83f16527b61bf08fb9eee2d57bf", + "816f4c452be237a559c8df49507f5db8678ad7c3605137a1809786e22ae4ed02459fa0e9fe1605", + "03bbfe6505972bceb31b5b8703d3d55bef9042db2800935347136aa7512ea14f0832388da1c9ddee54fcef18be9c114f5b3ad7fe71e58de0e6254b27114321f42f866de7f9a88e2a6743b79e8e78131444510e6c0feeb392d896266d9e929f54a0a9e3014251a9b3471ed5ffbdc8b510bec85cde65c6c8370482713a2f548890535ca57553dae2d76e3c51c463e9c69ef4aadec12db21291f20b4b722f9e5b0d747e9a3eafb70c038256eca1e1b217950d99206fafca22f04967334af11182096a72a8c677a2f4455a55181ac6a76c7f24dbcf82298c46e0da48c05d0685530274f12583c487ce1189ecf641c377730dfe25452f736c4c14cae4e1a41909968a40415afe03de2791e200d27fe3e7899a863c2482f4beff73040afeccf72b" + }, + { /* i=5194 cDividendBits=3903 cDivisorBits=2268 */ + "0da30cc4471fd523b47b0ad1b9cfdc4715e299c984af8ceabd20880667bc8b8e99b6e49351179e644128dd9716c7d3f822ccef1adb119c5c4b102b6b1db52c429f8fa36c3b159e48b67ede3cccdfda1243377bec669b3e11edc0ea02d1096ab276016a735f11dd207afb631320b9a7c289a001fa0fbb4bdb5ea31173d69f16eb0e69c0a295be6761b99d4bd354827830bc21c0e56201d643fb68a6f32f85774f4df8d38b3a36a2d62538ad12bd64f58c95de81e35e1f4cf6b506728b26353fe4da171c6d201d40e320c3738f515133fda0d5a64e7e147fe5b9cad6cc12a6b59e7a2c620de9df180b72f682abc0aeb5a02dbed695f404385d133f57f083df2ff8059229227faacca68e70beaf30e5ff6534a15c68cc9e049994c5e6677ea6373004c834653fc61e0fe92e717e611d105ca032b25e716d2f9897ad74bda59a60f35de8ba5dd8693212e82bc1aee306c8a343b94f0eba79e072ef5f2b76af9c784265b17d455dc6bf3473db6b74ba763b99ef618637396e56eb52adbee5d4d0c8d1a719b5247869b20f62fb1f7b7e7531481f1ce247f2ae588ae96790fcfdcb6adf6ce1a5bc71b95a2eac02847d4674962c73a33f70428e9112359a9986dbdce6364c045c1769d5d741cb0d97ba9d714e5e640f601f30ba486527d5eb4b3902fc46c01c6829d2d89bca", + "018a64aabae598a0aef3f592d1387292399c3a80cfdd2c6922c294ab7528159ad6cd90097a82a8bc5abfd0415d2e4260a74317c30e40b6e0c998429f09ba8b474ad766d3a878110ddd1b4e3d42f2eb0d8f69de60eeac1736b7c752fba69b5b94851313c27d7f8c6611be8d325544b26d34c6f112d3262577aa21782d4464dbff694f013b15f6d2d59ba07f7389fcc538e7a99e6b2d853c3d9e547e8f733d5b0315f0993f6e86b6e01c8f51d45ea33d3b627c9eb81d94b892cf92e5c0a149f36512d727d3d1fa4be94cac532198da8b93ee55d468e82eb39ab29944d12a7f2ab2b83d659c0f22e482ada6a9b7cafc89c7c65859f6d707ebb76ee506b3268be4303a569980e043f5e30d755ea5c0bf83b3369a204dde61adf27e545432", + "08da08e5b7f605d88e5d901a7694464e2e5b9f1dc5dd5dbf122fae2d97c49feae474abcc3089ea34982c1a5320b22cd2feda2ae9c7cc52ea40a6fd680c051cf44d049a118e559cb96f4acd779673da9c45a68d87e6161949e0aee135fbc3d427277596ed10cd0e05dabc2f4b172d75f115b3714088e878dd29c8874ca42bd0ec1e5628ecd95251428e9a635dd5e7b99bd6799722dba34271093170bc467416b5f031e88ae9679a06bb89c7745215c5bb4593c50e19d10a9824ee1e1dfd19859c8fa8b3e05f3de34860e2472170", + "0183079edd96e6f1f015bc2d6cefec2ff0974ab431a2dd3920ef35705b140db49ba34e55edc354ae7fab1f62ddd9bc73224127f8cbb114c807a60a2867f2dd8a26751dfeed6ae535a943507eea58daf4ff3754f1cc23a77a21c05a9da345a61084dd1daf17ae924b85bdfff1d5874bfdc0896193a55722fe0ffc56a71612001f3e47e1509679cb9729aeed463ef042c194773a5d0c2f7052bca0c0889ec35253f0571977a032575e7c6cb68e6f63c13256f68a87c159d6aae2ffc7e4ad75162c98acc8b8644aaeb4f384cf6a0d512244ea4727cb9925981e9bfe15fd8db7b281b3b6e9b1bee3c8d5b1b05a2a90682de5456c61183636c27d7a1292cbffbf853033a2c5272ceed63a9acca6e80af19b1a85e55e07e288ed52313b53ea" + }, + { /* i=5195 cDividendBits=1233 cDivisorBits=1165 */ + "01b781dcb9dc0ad759bc4e08c37a01d4e87b8557c9b28fc21ae0ca5faf298acb09e8524840b05e493116e449272e1c5de8a331d44d2c7ced329eadc5eb6a1dac7fc1c4d7954a32e1a09ee0ce1206bb6cc02ba7b34986264106a3c75c2971dee0e3e942e4aba0f0956abdcc519cc5b261fe2b3311ae87959093873d04061a67bf3c2acb75772fbcb68673dc08b65a8a063e56954acafa6385574b06", + "11afae82b03afa1fbe4b4d642c2e511488c42d8dd904833107fae847ddee511b4a16f46126d95b5bb908a2c94e11132a7fb5be0d3e8014de1594115ef9fed43acddbd76e0381591fe9e909c96028a8ba24fbe585c16075f05467e0c5d0c085207794751188200a65d4fc012ea3675ce207b7ad046b276e8c1a147be55f921fab6c528f552ad7e4d1b4da897e02b9eabbd39a", + "18d9a7ace2fdc9e343", + "089e75cd2c2e1544e6caa4fe438cdaa0aace64f906bc033de74a5a476449d61d6dc24d8b993e26a2e769e5d2a2ae5d909d48c911cf3fe05bcef33eaa9803e9c9d0761f00baa1e2f61530b50bbc6397781bbdbfad002ac914844754575e4b486dcafa541ef7c1ca2456392502ec44d8ea04dfff8bd69e32f88b5cfa3583769db45405fc388b80ca963daab1fe350a33a35bb8" + }, + { /* i=5196 cDividendBits=2042 cDivisorBits=1375 */ + "02f916fb61c8c2fd774210e97f071957778ac23dcba67721bb593c888ca7b075031e8a656f76762eee9b40548e35f6e15b2aebc38e62d4fe215d768280744c6e18af3f4997cfc35a55b166cf4011f338e4acd0b5bfd1497bbcde54e8789075b58532e3efb8b53ea801f71f087587024921afc3dd37ed215d993d3ec26e616cd1ff2b5c472d03dc440cd71de60cc84d59dfa125c1ca59689142f5e390c24e45f8c9704c32d3833df483a93752c7f3804de657653c202020094438cdffe366548353a6b1d7e54c2350a4f6807378fedd65857aad2a631f9f1482df3916db30a9c77ef11e8099875d63e2f98018e8be1f8728abb365353be6db9e1ee1d37d5eefe5", + "50657c6e3093fdfb3cc7e14c138feb16e480a25c86469713731ffa1b23494bb25a56b1d8afc709bd7df0bc66362e34c1b4565fd9393421ad6c092355498e02153215da6001e62e4d3ade9caea6d15982c3c427c3d65c5b3872c87f92af66a4e1ab094562f7d3fb82d9ab36fa972c8998171892450001418aee19ecc173c527addd75d90b6dbf1e289bf124c56cd9c29f316318fe65a66cd0843c9c6e39c2d16b495a83efd9b779e41711c9ac", + "09777a607dc637ded5b55ffdc219dac7f3e6ef33b8fc78672de5b42ebfb28ef526cffc5491607274467d47d6dd4331697d5d479d8f2b2552d50c09288b1abc0a445bc8a5e35ef24f88de9d6b11a95658b46a00a1", + "0740a57e41c9eb662c67aaac3ee1daf162c0b6bdfe9b7eff4d51962571e5991670b72040f947de9305a0226584e8e75327862416be99185e63c0831fcdf5c01aef6326360c7c694a3bd4028da3e6af2492ed20cf1c300aad01bd14115eebc72d6c34c4621b4437aede3480a71262af797d07879798b1ae5da3587c354d6c4d0beab74c4280788328293ade7dad2f60663f5294caea66d7b902bc0835232206bee5840f2862a80f1689f71ab9" + }, + { /* i=5197 cDividendBits=1430 cDivisorBits=1090 */ + "37b902d9c60cc34a269f963a2aa156f1185bf24e660c32ff28b353b1254849041311f917628d03c8768987255fd38114153ddd24402387f91d8195d654daef21d5b6b9c3cdc0bb321b554c56dbd1fdb349dc468aaf63f10a73ed506296d3ffb3594e42b31c98d4ad77e2fc018c6f88cc86f952b9c6357a3a24568af7f24e39151392749903d47e0700f142c0b13fa3a883514768604c0e0e78fb0a625bfd8c746d9a3cd92864fed5c1189087b89837a970e85b", + "0241eefb8fbbae5eaa494788cb24e6a4e0d6b8366bbb26c0c0e196b1a643559ba8a9cfd422df4f81d246526a2ff29554d28b67c66f8fd06781aec806767dd56c0b41c46a2faa002c9dc1df684e89bb01851625628ca3e4bc93910edbdb08e87be7272c9021085427a11e1775a17bbd3e61320a912ec893fed1b47ec871bd4c88d7e0bb03a7afd0e300", + "18aecb3e5f69fbfe627dfc8f3d40ee6b72f1a8194584c2672143bc32f6ecb5c55514314fa4bccfd8fd672a", + "5853fa00289549b3ac931186d3c85d371cdd577b045906a48c7841dac98a87e3a8bd01ba25c93207b4fe66902164c1522dfe4a436730bbf93dc9a44b91a7971c65deb417c5381ff044b6df3977f62b633954ba75be97ecba9533d4975a9de949997440e0a7b56b2ba0bd6405478b148880efe6ca4a3f5e0eb88bceac1ce0413f54e4f8ff6ed6aa5b" + }, + { /* i=5198 cDividendBits=3711 cDivisorBits=2251 */ + "3be7c1bbdf3da4cf69f8016cb0defbd41852fc2b1a8c1d2a619a9e18b53a85054a4f8a0f97ae8e6286a50706d312b78fa9730b4c2dada8a8bc7f9ee82ca1e63d7fec07d9b5f20551df2d4828cbd973d411461496ae62ef2bf5ebe4058b18ee1252a0645c97f035edcc9e3935d389dfa24f2cb7357f0ce8633f80b088a0c0f29bd03b51dac905c3c13637c9cea06ea79a1eaa1cc7581999ee0a0529b6e47e55581e338342a31c43ceaa637073b8a543e6362e886f29f7bf05c67af0ed1ef1a8c5becf39edef6103d492e1db741cef7f49ac310d344b57b864f0d0dab83de559ba886816c7b8e3e723e5f1c2cd1c2571cbd2e5273267466f4fd33d5c8509feef8bbcba8e998859758bd20d4d9914c2abda137bc44f4e47fd2d09c9578bfcd77985def392990dd0de17c5ea6922475ec2c319b00f0293ff2d7082bd395aa77d85cba93a3de48756d2535f485d1af613fdea940c06396f1ef360a75384a23ea5715642795a6cd1cc7c52ce1b1f3d0132e00a64296a1076bda57c6cd328bf9b9d16f8637a0001b3d880037d0c7508badd78b138e8d51dd268ee226430fd848716c1246f5ad6be81c65150748ff84280df9d1824ee9f2b71948c256ecc98bbb4aa4a28431e6e47183f36beee3fbed0f6eae0b8", + "0163725c98ff7c832ac28a4dbf43307048158e3b31d79b7b8e36aa7e7345c13ffdb96acd67e32feee79970b258b1804b5cc5e1ff2d91f7a9cc7d8a7bf2fc8d882133377c0618bb84c82eb85f2ff7110390970d4daad9ad3b61401d4f279d6161cd0934b5a1f2321634b9d0d9c70da64e63071ccfe825fd2118c3b49475c63a4831b3bb7beb1b574d9340a6443ec4dbf30a132c6066bce345082683f43694a56afab264ac757f540801307d5113845beda201d7c5f0217fee30c7b9036ed2662fbe88a860b356b2b24e664f481b862b1f55c05a0d20c33ede9f1379db229495e1ca3bbda71685d41118413f2e19bd0a0364da712b712acdbc53efa7c230b39769d663c3160279647dcae2d8aaec9e3d6cbcfcf756f4304ed004ce", + "2b252028b049e2a1806d629f8ec0d2bc43a1882d67515f9f6f359380b8cc5ba8194f87e02fb3994dbbdc9f30e352a54d18e6ba46e22cd23d81930ab249ce61c78346ce317671250312edc8090bb6952b5c1926d4987e390ae3abe4c0cfbadc1356f4fded8549393d89e7422b709b206e8dfee0ef0db05c89e589835ecc8d3413b004952adc86540fe77fdd1a04f4ed623e46b886250becddc336259b2e7c85a054db4864499b6fb29c9e19c90897e341608d6057485231", + "cac03bfd28a6d458d4f56c5388dcfb900d53dd1480cf68ee1345fb0e8e157061e388fade8a7581aeeaca2b8186691bfac117af6b9c43d813dc9cec8e1f7d3c2e30ca306e061dc6d8aeb25d509d870b6f5d2e4a6def018112fd268aad3162cecf465838ec3ce67ce736b692d300a56b326a33f249c33f5a4cfee8ebc50eab15c4a3ef4df6bd6e98eeacf3b14a6c24c850e5781b3f209b22779b18676e011384aaff94db9244a8c738ac39a93ac6d1e239751fa57fca813bd6b62552e4b869e4a0f1734e32b234e06c60f8f223b8f955d09ec235bd244efc4a27ba633797f83a8f463e869ad3cc957ca98fd8f2ba559c4226601327c13c8e7f507c3bc05ef8268cf4db7ce7246b864f7d465cc6176dbd943e681d68efe39ff94a" + }, + { /* i=5199 cDividendBits=1580 cDivisorBits=1270 */ + "0ed567e2143375508f25c7be263b174c697d2fa749434c53745119c0072fa2c25c104e1cb26a5e0d2c5a9fe19b31de658a1648e47439f44321a6291d3ab55d212408352d42172db493e4a5c8e9ef8fb9ced93090323a61a308205b8812d608cbdf0eea510026ba2593c4fb474be2d2eab9615e095385c81cfd9f310dfde467e0de7e93f97f649a420ed64a90fd14d5039a05ce1144a4327cd6129e6a83a6e2db4f4b00df470c40c4d704b5ff5f92d3fdc8c0bb65e0acebbc459da28332b8b48d72da350dfbc6", + "18c05c026b358c05c228ee81381f65386726c920eedb45f3e37a1362404c8597b5ed80268fa8c474e18211cf19411a907a3d47197dba40de9a878b0217b259f2ce0caffe86771591c0c54b0b9dcf4323779bf561ee9463af97cd22bc81ed8af18a970b48d5b380782b748a4e19d7e3de0c39f2fb20c2ffb15bbed32a460e189c4be04c29b1b7e08de5d192aa5fef12966661387ae2791d62f98101d837925c", + "996bfd537a3b7f87c6d27a8daa09e73a3a1d33d61a4f02c86f0e8cf734633b3b918594853e24d8", + "0a70d060409443526a17c3887aa641425873cc99e24b3cfaeb7b02374ef0d4f3ae71fe833973c04d4b2d259636f721f98c60fbcd82475e030bdc751f90bab997c9af1dfc48ef4c15fce0d6ebccfee54a8980fb4b3f7ef86b125a3d933c35dff3ed61a2effcc0be90816f305a7afc6f0f29648f5cf2acb12c4d0b311ae56a5205c7b9ad27c767d173c29a6b17861ea9c22ef997589e27bfeed6b134b74d8e26" + }, + { /* i=5200 cDividendBits=1260 cDivisorBits=658 */ + "0ac12a54e0437f5dbb667ba1f4bbfcaad4fe17df5316ed9cc2f7a1e8f02658d0e4d75ac860de4e80de1541a585b576de3919880b96a5f5c44f4fd76ffd0293e9dbd46f5e084773c4e6c0b3570a6eb6850402aab9887d8782d5343ffbefcec12bd055e1b20acb1d8cd35490dafa531760ff2bca6d774916b1264d859287cb9015346468222b93f3eeb62e07f0bb461cb5027d1e38e06801527b06dff97f2d", + "024bde692ed7325d26e276b8f000e604b138c3f3170994ffd4cc4c605e84619f6592319311544b0a0bb9d4c31611e650fae67dc7268d8a886a8c4dbca31922ad4aa4abfa4949855bccfeda7a0eff6447471c35", + "04aeecafc38d812f4968ed997addc26cfebe0c774c2e03092b4e07d1b28898892e3a42c445fb9024cf3f4a4d08c2a5c5f0e25441e02f125060f14397a98cda34399a73fcfe9913f27e05d8ce", + "983787fbb1d8aac2228ad6215cdb859ca532c0dfa0aa1ed3f179136d569604bc4686a7b59f0118eea9dd47bb2370205bfec4a4b7b45f6bb2bca0c44e9113865704366c66a7c7448d18e0afbc5ed1e1eb1487" + }, + { /* i=5201 cDividendBits=985 cDivisorBits=580 */ + "0197d80fabde8e02d1bd040b6a1c76f3c2572d7d21edd01ced05a6dc5492b6fbd58b7d5f80b47d03f00427cc98558d445fe63bd5ba23c8aca528cb35e93eb75b4745d34cddc169dce52bfd624163971fb622695411ecef5bf6ac61fa3399302983b6797143a017f5350d2cffa6b6d622b62aa6f9cc4d53cbc83cbfd8", + "05872187f1e1bae2852432524cfe31cfef3da0e4a2b3808797e5f9dc692b351c59d86b417f6b91cd98edf12f1c1b0dedc231167aad0d4dda80549cd1a0ee10eaa0cc8b1b1b0fbae431", + "49c7a011c69ff0070b952dad7627f5d218eb0463d75afb27e49662d6314d412cbb38c83c10ef91b3cbc60fe764d2a8f4a537b6", + "02fc8f83c8184d7c9a648b28d6b16d16bf60a30b6c5eb034a9ce3e8bda2fe55c1cbfa2638c7555b90d7164b2149012fe7f44b38db70ca972255313b2ac4f8cd6c63f2c0711aac2fe02" + }, + { /* i=5202 cDividendBits=486 cDivisorBits=255 */ + "3fc87e8ad7bd77326202cda82724952a6a7cdb19eee1435f3f06531bbd0e2609fe66d89aeece3058c4a5e6bfb8d49cc6551121acf73d689d01576d5b9f", + "5821b6e2e28316ef69a002ff39e3eeb64370673a117019f310057de7b9377c31", + "b94617b3a5967a72ac839d45579f2caf6f3ef03c9f653b693d35b7977f", + "09949449365a60096267efbc893b89f7d6c0f8a193359a8a3af9e4bfce9ed850" + }, + { /* i=5203 cDividendBits=1544 cDivisorBits=1023 */ + "207e2ae69d3872126bce57955e67e16f488ea2dd73af80e613a7a8ca72e289667c476b9a63908fdd19961ac8553af239ccf409caa1e584dcd136954d237ddfbd03a3127491630833adb49807c6f8f7a109da6f1a79b2cde4b1b9a5c4461ac911636dba15c884dbd5c7c7447c0e50edf91fd783bfc55ec984eecaed3cbdb2bd8536d42bc185afba79147730de91eee1d79fe277f12f566f74313eaa475619107a2f810e234216a7deaad685c3ea3ded83d1d09b944b1614da7ef17478689f7f0d7c", + "40c66903556a5bb449fc35a60af91a4ec9098dc3989b01d43c342de6ee431aa478f85b22010743246f5a38b0babbb3030afbfcbaa0ce46d12f778bf7549c1b7017d08bbee4fdd46512a408e16d0c6dbe5e8ef2b42eaa94a1d7d51a7227f673b44c077317e9efc162410ef6d364260b9cc4c33b4fd1a00c7dda750b62b092361b", + "806a8f39d69560ac2c5ea2854ef1e9bae841a7bf3491b2f58d33021cb572ad49662b642886f56c5c00b2303a17f2f007cf5356205b9aba42712179d9560c982b44", + "1ca12b4e5774016ddf8161d7436e4d2419129b3b96c61926f0a8cd2f4d42678525ac4208021194aaf30296b618141466a1a31d64fe0f7a1025800a8d9fa490cd23b92b60f4f91b50e9ea476002f36b7f659cb908321b43c94ea914ba4d922dd4db5ae46937eb28d174d3020763c923425e3ce88f500592848fd61d1dc58a2550" + }, + { /* i=5204 cDividendBits=854 cDivisorBits=750 */ + "33ced0e4d31e402bd9d7e9282f03bab9851bbb11aff70195efdb35d9c4bb368920e647bc63f66cf77751e0e7a8b92d89795a5a2b8ac030ecec0366a1ed577d81b40c5c543af2d67df1f2d68692ad503038ef167c25338429e74ea2296e03e5b4bc8c9180a060731fbf38b7", + "0763612a7ac54114db5ae68469012f6c1a9406cd340b6bc0b7ded015d7827b7e8aa1053f6f82d12695c4c97a70290be310ed0a0dd3b0f0e7ca87bf657f3fc647ccfd8139937011242f2beb11872801f3a29747c9209071b37a7165b16bc3", + "07032275a0f6d74a658c1426eab9", + "338bb719b506b9108d14bfed1a49922aefdb0eed766afef5fa2510323473267a36a171d190b75b56bbc95ea935bc6555fb577cf459c8fbe0b7fdb1b69a89b1bc33c1329cb290392fd6d9029144453f4dc87db18ebdb7516b273b161acc" + }, + { /* i=5205 cDividendBits=3080 cDivisorBits=888 */ + "7000eaa919abddd5ad1122d8110240d75b88b46064e8dfa6ef07d6a989ace1a3f4f6796569c5f27cb44053a7cbd044e5408b5c978e845c59bc4a3b5335ae9512b814417b4612765f0adf1b613c17b1e1dc599ab41586568f4b3cd74eb8e9f9461f4e57b8d6cce116d98cd9588b3d4107fedd3d2e98b91c324a7b0a1d2d244e29ec97cd2f668102e01c3962956f10c122172d2841ded72a69a43a4381296e45805991ab48842273529abe6c32b911cbda471a95c0c2b90aa9c9feb1ce00e0d7cb4b614afd4680b2aee12e6f41f2fdc33793265ef244d653d867f7c8ddbf6c8a4ff9b9cb3575c0ef47f54fc25a1e60e4979621229f1fa046fa87735b9bb9f0ef05ba9a57b764dab7a7e4700203a8f6dac02409f4a3c6d983153a4232ac7ed08acbdad1b379e736f258bcb270fcc129d93c1a80922aaae1f999e7cd7ac11bece47e1763bb8f87407a7b1bbb5c2086f73e33aca8a91fbd675688ddf3b9371507072bd71d52e2a820bf99b3bb2f11d5c6922f152c1d7e2506477ee43461c46faf4e5115", + "12e72e2a1912bf50cb08e43c8894cfbc99d228715a71be28b33996e1264e87a3413c127077c7547585719116eeb7f5c40d3ea3058d50904ac3ac1186128312e9f02ba2a34db8b8a0e4f80bbcfa6f020ebf760d49f89d85faf2d3754d65305522269f42f1115440df853252b10fab86", + "05ecd745688ddd8b405a5c6200803760217743807c12ca5700dfcf6df318cbb4e751e18768f0e73b8e60503bab0197d4701ab21e9878b4342326763751922e8c50c85e5dd0150cfc4e0b74d05122d21b2e35182a4294a0dbadf8569c69bd6220ee0a55418c81670bfde4ea69a9b93a3c11848e3495f4a7b128987eea06756b5de3643969595ffd8ae6f55aaa2dfdc832ab2f66c28f3723011f3f34d8f5a5fb7760ea58f0f792b6be58664c50cb93464a5f55e0c616cc0b10a351f0dfe18591b10210c4d6ff88e0e50092baff8fb85b0e2304adfac82b3c3c4fb5932814c6db142f13e398f09e5d33b2ec8fe5e4f5feb05eabd8d892fedefdf80c329ff2af714dc31227c57ffc32b24cbf74e83f0ed45eeffd68", + "12812a2d0f21ff7658daa65a125d9f7251fa6468af61446f9c90cecc67bc770648f80dec04762b0031e35db9bffd1818da427e24eef70bd939e2100ec0ce490f4e4f9514d614621622479c7239c9076e7b7dff2ac1c786ce0aef21024e8aa67195cf99c29ce6a048fd2c46ee5334a5" + }, + { /* i=5206 cDividendBits=2469 cDivisorBits=2381 */ + "e08a0830a6ae9331c68d0b1ecea827560d782ae4662b6d07e5758f4441ca4a31aa62c6f972975f7a153a313a90d1e9878f139c0d791d0172f9167711f6ef6a632d3a89941a265734c4e4668a3d313fc12c02b2cc7c2b2843548ac5b0f242e0bb10ec52923f1155b4ad9c6a3dfb5e5a62d5478d5ac26cd102de0a6e98dd31e57a656d871a3aeb33a167571964065c337527b91dd274db5d4a86225099a3a9234ed6fbf56fb7236c335b3ef2e5dbebdb48177c93522920a1d4ef7a484f2978c8f3aab2438268127377610d4a4837e9deb0d2e66994e0e2b6b83497cf71a6dd8a22d465f81003093b910b904015ad0469c8db07a515d15f571bbe7a28d88d283634c6b38ac4001cd8b9eb909754454be05f2112b0c0573c75f651be022e6888adadd099529297b8465e42dc5a96d9d788305d7a6904", + "329654af705de58d52756ab233bfdf61f8e52cb3c9b3b852c3efe071a2957a797fd57a5c968c454610d3bbd7292a413667fa5fc3c2fd9e37d9c988d34dc55bfdae96893f19c11ae7323e5f161a7d20c665428a55410bbd9b1a65148eb48ddab330901558ef16cdb0ed4aa59ff72f4255352f29ce5d5d4161071396585bba7a4e820bf4f96d73b11bf65f0c531cc8a0339745ddcb749e5d676e9658ed3662f5226c94c7211813d708f791d5d749fc38a9d5bf7a486606376662524921ca5e0a80daae21645923bd3d56ac889712dbe0df66390e102d6e7d71f6d4e6a54e27ce848da0cdb65c2eb8fafc88748e39339157a7a6f2b315b0f2e55281a6b1aab756d2a4778fb654403ea9ff9c4023b475e18ea24a022b0cddca4c08035488fb458d8fe86fa9ffe8a2fc4e68", + "04704b999f546138928e4dc2", + "23b4795a64d69b90d7bf253c91fd5c4eeeff9a406c38ec1c42bd37a419ad3ebf820b0a265384bbd50eecc174c9b1dbc77a6a7ccd1305a9887fc56270666518915e783adde5b401c290dc37b6d4abd447c0240587e02dad5a1c7794f2ec0524219257d36086541416320772757432f327a0962186b45422f2256c666ae735e77b10aa586314cedb784729da4891e85e6bbb6c1bd88d60f165790f8b912d27fda60473f5e1d3b4ed94250d9a589407c341c85eff53dede6b852618aa37eabd4493bcb6c807e4f53b9ae363830252e35501a88b30e216228758e3054c13e961dc22b5e328bb59fdc602a207a60c3077526ae7609207cac7dab247c8e505fe58668ef34d8c89d9c4d1911229f514f0222f89d6bfe26614bed6b454c865732908b4da53e605c5742901b634" + }, + { /* i=5207 cDividendBits=52 cDivisorBits=8 */ + "0acacfe08f05a4", + "c7", + "0de22b94a88d", + "09" + }, + { /* i=5208 cDividendBits=2361 cDivisorBits=1359 */ + "80ef91efd658f59a5a17d5e561e512057e35fbe504f357896e320e339944b6a2abbdf4a57adccd4929f4fd4254dc5443710fef4530c024921127d324cc1c59adcda5dc5709e4dce5b088510b304c02e15c96c2d04da51831dcf65281f1f511a5083e9027b756518613941825a1171a0b673892343099f13941d867c0f9048378b4aa1679b1fcd7cc5cc615d8163f15e2d496611ff4524609d951040fd31e4f96b12fea0aae4f29ba73f35a16cd42454709818756f8108f5f23e3cd7aab1a4b076bc517b11211e222c313555192fa63d669a7fd500cb682ef4d09e04af43d843b04336bfcce92e9e0cfd7cf6aabacdf6f9bd06293b2def564b2f941fbd3224da2747c8b674d1934eafdbab90f08bfd90c03d0d53056355118b2e7a852ced21eb3b1ab3ed4968155", + "55bba9e06e49674ccff83fc2ae09893e3a91639588626f4b114bf31ce251ed83f632621e8860a13d653424a3cea2ecf1b8590b1dfbdb457b15a19c94fa23381bf3e0e767246e12887cbd50db32d10e85ad30cc890ffdb0d7e29a6ca77dcca4b14e214551fdd6308cb0de550781db1ea32e004849d788676fc7685ec008268997df4696def8fa21dc705852cc6c109844ea57eddec7b2b942ce2a4a57e61790238936396355eb547c1779", + "0181010526c660b854f7c3e11cda573ad263671657e5423d6452f3d11d2d555ea2998ef54644b758f92a53f6eba7f6a6ce236b7d7e9997f2cecc62614893b120d9c9d3d00cd1e329e89c195dcba00283be8a7e1c875c17316803e5189c5409267bd3561e2755cb2b8ee40454d7494a048397dc61fa9f8c10b334e840d663", + "3e16611faea245e5dd5f1185e853f358cf95fba4eea96640dad9d4ecbcc75ce40be2c26dd69b3e73598340f6f3788eaa2326aec63687f42c784f614f3ee5ed8705e41606eed1a9f4a5ef06bcca92c7bc86bb65451d20c56e9384b29c868e7220c13c03f1bdfb4c33ff2a606c1574d6d55cbb40d42aed13d19dbadf68119fc150ba6ff245adef0e230d4c527161218e8956197bbdf9fd3cc956068471b241b7cb2cdc27e0c4bde6ba478a" + }, + { /* i=5209 cDividendBits=3144 cDivisorBits=2431 */ + "8a8ef9d192261255fbdfcd022132b4e0bc868fd2b46c9a7e7f407f431666292f95872a7e0ce2e47f8dc851c855107d4cc3415c9a6c1bc350d3a55b5adc15a996306bf71c5779c3454271dc59f3c679927d5d4453f975b63d17c72ab1be1f8b869ddf9e3c5b899060cd27e34bde99b9b2860a934ba7cb37019bb17fd50387189c18988d7bb35c617ef94b255002e435f904d876f8acf3b38bf4c4718222b0f6e7689ddab686b7ec1bdc9fc781ec5278617fc1b6a41dd5abc58ea29b1a336e5f157a39befc3fcabfd8c663ec55a7b5720c36617155be2188059f4786faa9a38d5f9d938f0fc6770717f72755c726f9b5691ebb60703e2b0ced7b1c65825ccfaa255279abaad673203b55c9ab481894b58faac46c16fafcc880d51224b05246e49c18f4f948b646a5a5b49123d5e8d384d53b3b2c2f0f670252dfe1e02b60227e13cd8456dde1119b11adf19a40348695b6e54050603ff1c0388b458a657a148e8ec2cf37143aea6c5e0cf8db65bc2ab9b6c6d4f1833dcba2217d789451b07de565634509f18b1fed6b44", + "0f5ea61fad65f945cffe8ce115bdef735afc45735018ad91f079d8d6e7b37150d82180565b38fb6430610ae48189f56c8d336c1efab9d0e6ed66e3492d42f7d8b8c66519a8c7af902ba3e2781e2372795cd29de2592fbf431f9163b159e20f228bc757f2ebc579057b3c315576c33c2a323236132ff89842b7ec915eb50785fad8487b17d107f155aa7383d5c4903bf687e6d4dea9122bca5a1b5ca8f5f03c39671980288aa29c35d6c9906ac96220deb8fbca2b42b3b127a44108b96f0ba6b44e5e971f4c84c1350efb60ee74eaa7e62095b4fea5cda2eb60a8a9bf31eeadc2754315becc4ca26eb7ea2baca3443a3e6227d1f6e8abf11f14592e412dcfca6a192eac8daab6445d5d25865398ed2c757fa08a673f8fa782f736780ffba602ac32c3e1cb54a33b6a971c6280d50984fb", + "0903d8f8256721cd3e1a01f7ca386ae387d833467e2c12fa4cf4829ca9e2a6e16c551bea7b7ff571d6140e9e6cf3215666419f3054d7cd789bbd3eaddf09594c5cdd2430628ad634c10f301ca5bc3b3fbe1bef770fe797bc1fda", + "0b615f6e285d88bd293eb8de45a61e7764f852533de3886a6d393b7e628aef3fa6403d36f70fe743996ecf3119cd1257711b12f0c4ffb9e6c2d8fb1d17820fc804d239f569a069aca1e955cea4afdcb9718c3517e51178dd1dea54051a3d94c30259ccc71e2c1d19f9af0b7a6f6a721134ca5be7472d6e8cc2945bcca9a45eefc3c10a5c4f2742382fb17c676dc8a9ac7d27714228c480f8b05a499b415185ffc4557f8f1e2662711a953abfaa3d732a32af81d42a40024286731451f6f1f22fd5b372b2c006dd57fc60167a51d26e011f32754719e0ba5e40cf47c126ce2c09e8a5466f93a0734daf33776500f59e0ae5220fe846d2795786fb3ae469052603db32a5e9638a16f7df790c17ece1071370718d30c286df44a13a6185d77c333492bb5128f4a88397e29cb21ed963c886" + }, + { /* i=5210 cDividendBits=2395 cDivisorBits=1080 */ + "03dc30cec46151a9969bde3236866c83ef20addd9ef8ce5ed55ad72043b10d9b4248a7a5887e96a957823bf295bd3dfc2001eb83c32c7271683d35a6c3567ed38e5fa13a57b85f5f8b320b7afa2df3d9b779e0dd1ce65fe48880afcf1e2ea2cde7f984f53e0a0db5f85e0f4ed6faaaa521937b13dd5d861fa4f1641f2c509178987c120071b0a993cbeba293b69ba0808411fb3cb59d7fc6a004d542ec0872e8187430cdaa027c7cc8beaa685579f418d81e654ee815a64a33f6ab592813dcdb7ce7b30f0ae9a78152cdb9333db8e23b74a943a916c6b3c8fbf87047257f43a363263bea0463788551583bf677070871ae9e2e4eff47d7ccc2783d91e43255a2f55944568ca794f2a9c7a4b862477db908d5b9ed640cd60f23edb8e1e41ac93f9f97d246e835d83c0759adfb", + "4453c8bb5d5a9503d47c1d9f2110db793c6ffe775f645ef2d912d9610c3505c0a1742149433a3685445628e1329156710b3ca8b9801a4c1fa209177d517d1b102e7fb3f7cbf3f0d2624f2bbac8d51f91fefa38cd996a1602bcb979cce21eca292be32f1c25caea46c13801a233d5bda1af775f5be1f7bae979a847e555d176c9ebf7f658aafd44", + "0e766d719b5704dcdb03f39b4ce133f7cfee4708666082c2ef45f490a706750e8133bf8e893e704f0abb782cda0d8f206816f0984d1605d2ed1547e6a22df920763c0c1b6c2e213e024bcd2c990ae289b0e9e8122d5360219c9450519114f80e20efb1ee16ce0b3ed95a469cabd719b4b4d3ca45de4ccb0271777140c84750db389a007cafbe25527208699ff28c716307ba56c6ec98a25dfc78362f72771f1b3efc79bd9a", + "3da8f68effdfe7764d2f3a87ec65d1ee8299de1d5ae4812e23dc27d88b037838ac0d83447de7608f0f35befbbcefa7cd998d38bd0c293cc91ec6a3e837af9a72decef8a0f28684443935ff15087f8b35efc5a5ae8911f413951b0d320ec44808baf92fb1d140e8c92fa07e230c81ee5753e31ae2c4039b1256b052dd13df64be1e11fbce5e1f13" + }, + { /* i=5211 cDividendBits=3711 cDivisorBits=2072 */ + "0eea0c2f54ae9515d7e32b98873295db4c20ee1f60cc053c5977c6eb9d13043c0f0ecc1f046008cb49095f3079df03f3990b08457e518a64406a7f7cfb23f984bb689f0d48fdfc2a915db051b4833199f54b8bb96ac011943afad9b167d5f6806e56c0e2dcb760b6bb12aaa8a1ee65ffab082d5f219e2d90690f350d25055caa6ba247f66fe5930bdd583a79ae3a101767d9b0ce59f2499b1ce78b7fbfcf84dbfd43e9cb184f7a724da9fd1aa0cfb8d540f5f000fe6d8129a8a6d3917335ab731740558d462cb7d368c3eec4d26a1f378c287619f8fdb4cb85822089cc25bd10d365f136fd5242b95e691d12178219b51113501734924e05d162093884e4493d46de1a96cce6b511c0d894d4d5f3871fe3d4fac2b04c686d8e7d8b6191f0eff93876cd4c8a3576247305c629edebb80d22a9c707adbb595ea48cbaef1e5960aab4deb033baf2b1fb6c45ff9d2ccea475e05d6103db5f35781c43e22399ab2cdb883b27545bd1d83340e4686bb4b2c5270ec33901a70fb2267d236f0c8f3580b3180d79e6585665ec392e31fee8fa69ee076c5d55229d1e85266de779f851c533b89d140604f5190be088ef15dffaa1a4a88237dea537b331d37ab44e2e385c33832efb32f26388dca09d659e1919909d", + "a7c477f3c375ef6cb84a20b6e6f322efe7c8ceb2d799b011c297f19cb1d9267ffe3379bdbed1e671fee85a12f0d9448db669d65a16c2738c60ccef81e5a7dc32a0cae9c8882e77539a3e161944fd0bd9137e4d1177a27fb707ad2043a845d2054f3a40bc6ee77a094864e00c15c1de793a9693f60561d864064fe31d299ae473a67036d2935b42763da49e74d44b1dd93955b25d65bb65024660bd5399887491dd80160f672af264b58449a27a584b2a9682c47d8bf7f187fa8a3221ab27bcbc864843e522f5b31cf532d20abd8ca8bb72ebb9bb21d9ec3e1f74e0cd743f2cab826d70396e076fa9fa1a19206df7c970c3bf494a0ac939127a5a43f2c33791a8c53247", + "16c20aaa9ba69e16ed87f98af15cbc1854096aeddf1b310b4efca15cd50088dfd4125bb3598691bde56757e64d9d2b98ed20e4f80a7bb377676b7ff3b420c2d7084cc80f3fa811a58d680bf0e71d58158ae7da769a07304a3a5ac111e1967fad7e82e4e5bfe1d5563885e0e7a9b5a0e585c0df3e94f0ec42bd432e14ba789db39b0ae53c023aed11109dba065a2c4e62dddfb194bb7dabf1fba2d0553c6c217f94a60706258a5aa1296e7e1c8274062f68896054a2b6377aaa0eee95011661d5559c641f92a64a9e0a9f0e3a2f", + "6503918d0b9d4b88e0b76722d8c435aabf7444e5b78bf653fd37e0331d649957df2f91f68e55ad2c74f304d8879d07556a41b77e2504869fa5b924aa1d3f6961bdb4d5d8f5a7d0d2c7035ea55fd597fa14db9094fd31b237d61c9c2057f0fc5d4eb14dc3c2e1b8c95309af5e0409c35e389a8420164ef9a3a7e2a48106c91afd350d0bbc3b3c91ee32f13649643e7d6ca7ef1d93fe61d02fc5c6daf6c099fae2b69ecad6f5858e1b2c2bf6fcfa6fa69dbcace0fdf97eb70243c673364f46bad7d10fc1f9078ddc7cce3fe72c7bc0f4cfcc6be64305b35dbc9e0e24b274c45d91d0a09584f7d1733dc22de8d6de1b32bde1917fd073b1152d3b0c3f7323b3da969f3f94" + }, + { /* i=5212 cDividendBits=460 cDivisorBits=209 */ + "1ea5442da3cb05a947c3b1e0283f5fcf27deba5f8e065f6b6bc26e6ca069332d3f7ada4100d47dc3d23edf6a32723251aa01f17cb631e4aee3", + "e0b928b368853b3483951fa53b0fa75c49688ee565fc49ad200d", + "22e9294b50b82e0fcd4896ac6848da0a1d8caee32d4c414965c50dfe2aa92a", + "24ccc535b0bbb338a7668c1b3cb10d3a7219c1e7b6d1a932d7c1" + }, + { /* i=5213 cDividendBits=384 cDivisorBits=309 */ + "6761c5b3a5d60bc9902205e58d7bba25ff8461c0d825dab8ccfd419d5f241b8f51253ab86a9eb1e84dde62e2868a8fe6", + "08e8e8cc511d5889b9fed0ff2ef476028a4065deb524e59e86e55bb54fa3df57d4540a2066240b", + "0b9a6926cec9337121a8", + "0788fa8b6db1a739721fca91d598f02699f4d6ab2ad0220d8a7ddc03074df7b0f02128ff027dae" + }, + { /* i=5214 cDividendBits=1107 cDivisorBits=189 */ + "caa755887677ad507fc93400c6f3b1c9719f1b5ff4844130819305535d342449529b769121e4764062a329bed030bb627b329614d60f794e48b09ab2632869e94b4a0416a3d48fb97b3a2a4384d809d632341f3293fb962a2470239dc11460b6d45d4aa945f83754ca1df4c2b4e5e4e9d2593cf49a0b265d3b9fe6f0bcf264bc4e4cb77e20f338504e56", + "0e1ce1c90ce98bd571e715b0024f738a7e788943454dbadc", + "0e5c0b02d1ff463c19b0132a38577d8e10366c375b26c770294e7c3f0e8018d6e61a37e100613c51644d26f6afe2f7ce04640073ca1f71a9902efabbb1ba078dfa71b9bae033338533fbd15d9a714221c29d124de9e5e86f8e337024ff8a2995d7bceb1d7dc1ee3c7f9dd38da9fc07204cca96", + "03bf0a5f132ad0a6562f97abe74a3dcb679fa8664e03396e" + }, + { /* i=5215 cDividendBits=3283 cDivisorBits=1072 */ + "ab00ba34df999fcd7904e3dbfac56640c14ef25b328b71abc89c304d37904395cda29b9b787c82ac09db0b320c777bb44d1d1c71f96025a5c2196ab5593a0b50b56e4fe7641a8211c8a2e2256385fc4ce8d856c4465819fdc7e6de41b86f5efa60d0eb9f58d5aae99ad3b2ab55d930a0504a3b6e9b2079b39d93205918f96172f31511093a4bccc75d1405e8d8a14d098081ea88c5fef3b8a01fc8db250044cdf0eba0b1977f17051970b1f3ec0e221eae927c0b7b949570ed1e2d28d105cd40d590ec58da5fcb40a34c454aab1fd534584058de420be8a41242525599d6ace70c3aaebd22cae66722ad294f4149ccf6f35849d8d9b112ac79b242a921ed9a627f67722e64170e7107a892d6fcb9386eac75f6d07c20778702237404574c487ad38f42739f4be3b9c1d771b7b1ed8bfe6f1b4b01e8d44947cf2f4c5125ef54636ebb967e31635f80ea70237266613d77481a9e2dc0b2a99428ddc415240f4d48fb4e9845d526c6ab64ea68ca09d0f4acef29ccb37d25fe222cf68faf564d8e1610be837dd785e9d79f55763219ea50e6fdc66daa43b75befec87", + "af8a0d94985140d38799d9328b7613a84bb0de97516a42bedfd43e87e2130b6d8ef2b5e12cfddab27f91ac4591074c713e4559a4d8c66841a1a9be9e27904826aebfb59f09773d6e6b247d6b94e0a18f8a4725edd5efaa28535560a6414863c7a74d6982a23b306dfed95387c95e145cd4afd55af0b8d741f9a55d19150cbe43df581a6151b9", + "f9625d8d729e01c57911f59370b552c7c276f8fe03572a7aa635b550e510d59c539e9af5dca57b1f901725f8667789865247227a95dc975f5fb89bbb157b57f6c417b19fedc12207db80dfd2d3314c9c2f0434543fde80c984e2d2ee0636a8807f42c0a765b60972e6c2c06515b65b82977991059f4c530db70f36fe1a038dffa957f3f0cbcffe511f62ce30e7769d53e8083efa87569b0fc935648b96ff802fc06ad20c366204325fa6b29f9998d6a5cdbe13b2b458507c78264dc3c3ac7c95542d1e6787120fd4d723d778db1de263faf9f6eb6fd04b625ba939fa99a5ddee687ba92c66211ab2299d6b194a986b2543d5e9ca2ae27f3814814b20bf424c708b0684b9742727e1594b1bf94d8cb94e787f4910", + "4ed232885e60cb1394c52abaceea38922d5ef5d82f62597657a7a1496864f91cce96584e0540f2a8e5c52a7e09960a406c7edfac2f30670f5b358bc4763ce0066e31eea96f6cd21061a2a206f9bc637ca75ea720faff317adf9472ee14c2dfce76b1aa0481c9102d8d65411b8e2f30730cc7239db0f16c6f360d16266bb561c7e2bbb2c60ff7" + }, + { /* i=5216 cDividendBits=1053 cDivisorBits=473 */ + "1e21d93bf8a39366356f0eb79c91fb79700bbdb8e7e497ab9fa7e7c0f0424e9cf4468c053b2336455a881cff8669a167792114d1c33dfe371b1cf47b323e36258653920d533b889267f7d5bfe8e21d569c29d22f7bbba07bf6888c3ad4667955d90cd56fcd7c85821d1942161d16b031e89ead36f239fd1bc9c537c9fdb88d9d6440202a", + "019b770893fffac8a411f8f70ed27f3e11fea3e0cc644e044de730d1606c1932987344d1683ed8c9f3f49d968f1e39bc3488378e74b2a6c306e2d16c", + "12bf4da8d51b3bf5ce26cca4ce3a2cad2df1593f30a5e5c0d99215bea1677a6706cc53dab6c9a04ad50868da4ea185e8ae9695ecc83bf72c8d46f7f5c6df75afc469aa50948e6f6778", + "fc3be731060d526754163fc76ae3d0b57bfb1390599d9d9f9ecca6dbf68072af99d79477f805ce90dc63ae728b675e1c2909fdb2354b7a31d7818a" + }, + { /* i=5217 cDividendBits=990 cDivisorBits=399 */ + "08697449b223eb0670a310d770a1f93db7594decf526594acc569c8862935268c224358faea40464c37f3152013535a74db305de162b829168194c57d5ee50f15aef62a8e6f3b3b38844350b88341dc50b41053564d2a14d318646d917702f7bbc20dd25ea387288eb2fdf71cdca2d311b9cb217534604d1beeb352e", + "3bbe6006d36bdddb8f9002fb2e0fec3d887a7cca077d64567ea6148293c6c1787c32c6f7c2b1c1258d964a7a61ae26a2e620", + "240b7eda256f7bd126131ab40d81f2bea250b167df4fb73deb05c836f92b8aebdae50ef159f6012710ec395de430da965ecc359e07dbf07ec7594ce10752a74ee54793603e82ca244836", + "094fb006f1b44b4e9b8bf01bf8277e9aeb89a5b96381fc24e49985007015250c851bdab3522ac9e343424c8dda7a2b55aa6e" + }, + { /* i=5218 cDividendBits=181 cDivisorBits=72 */ + "09d1de152ac380b48d3f098e32dd848fec20ffa4f8d01c", + "46d504018466f22726", + "237d927586be0a9a245667761f18", + "44773393fc56038a8c" + }, + { /* i=5219 cDividendBits=1265 cDivisorBits=363 */ + "0122f62860218c9bf0050f6879a7fe80e1119309f78c2aaf4833b57454031d60a1886a161a1a6f3d0e518412c4c4e215b5e6609bb7c33d597ee682028335c0544a49989ff6fbd4d63fcff05f91df6a9e337cffe8f16250eeb8046d7e228f693c416b92df287084a2ca443cae46a2f6cc2efcc6a7cde865ef7fedbafa9fcd5584f1f9e3c5304dc310f472743d269194d55c61e364326ddde1071abf288b41ca", + "0312f10b838ac649d147a18aefdf46321fc34e63da38368ba49db2c02b3186aee1a3e5d7cdcea29d02216d8c2ae8", + "5ea7185dec8b68cfbc23c9d830a33e534483041c063eb03c4539b1c4ff6860d01482181b428ecf866abfd2ab56ec5857e20c70097011438d19359c1bff9d2644bb6f5fc05aab58706a0684b1ce296bf7d2325ecf2ccd64697806a6a3e7dd79761ae087f03323f29d4b3f429e66078472cb", + "02b4d4158c06ed8ce409d9801878333fd0332f7fc03951e0a125711dee2f46bd1168754a00fcb033ed9267a9ebd2" + }, + { /* i=5220 cDividendBits=674 cDivisorBits=552 */ + "0217b139943ba6118350c4d3373f7e5d60ca5ae707b1d5d4355b6be83cd0d14569af154190f0767c6925c561aba36d44ec543935b802e4f4249aebbab71b6d06464eb652373d8433b3ec96e388980267812a8c34c3", + "3ef2ab71f3de9939260113be5e65982d1ab2a39d6c20fdc2b1cf13be10bacff71dca6ab59bcb412f8f217a3bf15b341dff94a022462eae0883d4bec77d3d2f09154ce558b9", + "088294fed6f40e8fabe2c3325c4efe98", + "16a8ed958388984352c2d44502063d104b2c9845b31f3844ed8509675b39b1690ee228c0bc4371b7103f30d2359b9c17affa5ec81d4e51f072cbabe1108f3fc7aa6ff9f8eb" + }, + { /* i=5221 cDividendBits=459 cDivisorBits=397 */ + "073c9f868610887c7c83125713fae0fc37044b7316ca65f2f70168a4906bcc612d47ef6b89a2306c5d64a3e9e71e016e2df16107191eba73a565", + "17e2bced3ddbc1eba9501002790d80b8348479900fa71810dfacbad612851d9879df0e10b0f4d0510e4138277e84cb1a797d", + "4d8fe18f17f0c0a1", + "127d7b4fc09a7442a918b0439a53a1ca8cdd0dcacf85e52cd4f7d8549c50ea7cfb9c3357e4be490c4e66b82b6bb8037f7dc8" + }, + { /* i=5222 cDividendBits=768 cDivisorBits=755 */ + "4ac46acdab0f28b2ce4acd407baf5f88a40907b3abf7f5a1691d6e1f3ceb140452d53ba3a906dec52a5309cefac27156c3d948ca4f26feed5a6fc479c07114cdbf218a436b85e2bb6c472130d93abd3b273ba4955fc73d09878cf873115fdcc2", + "0778c967a0a9747f1b1bae96bddf4f3e19d73f9ca10854bf8a860db031dcd2c418c25404ff771c8aa746275d598d1372ea96b9d370c088d9ce470dccb5c855af59746cbe1cd0886408650412991f3ce97f0310ee9cae320ff8c882f83c106b", + "0a01", + "0513f7fccff247401adfae7a3867cc6386b455c5039dd140565f2f9a18fb889725311da9604a3e16ee3a021de621c6270b6fce1430e5e271daf36cd9e7f39e913bd6698d43be4ab44c9372cb693cdf479df832525c9a37bfbf123dc07f9e57" + }, + { /* i=5223 cDividendBits=2812 cDivisorBits=725 */ + "0316054e160ea090894895eec4a157b8580bac16fc277d608ddbaa4fa1ce75d247997cf8fee32b76676ee195d5ac399a64f703b38af5985e0fc1d98ec17ce34fcddcde8f015f25ca3b11283b148f941aa600b4a4bfed45373cdf1a6b556d810c11401d1ecfa19519dfd0c9ad1ffc2aac5c62a98709336079b634fa483bd9e69d07c97f294d2bd6ca69310c2addc272a650debcdebae34944695941111b5eaf1e30789acee33e7199ecf4b3118449bab4c4e26ce59a98658f2fe8e48bfa4aeee4aeea54a59970d1f9f4c8bc8ecaf4119ba80401c3cad4057d292cae7baf3fb1bfd0babdc0b94601642cec3c0c5381abe6cb055e79dc4ddbdd346ca9da3791930629cb0e63209c83e2c4acabb634b8b0f54c70ecba5861851567285f13cc0bfdf3538b9188fea2acea41a65b03144359afbcd640d053bec430c8ca32e6f0abfb0782d76be07d382ff881b5ee626a16f5a74bcd3eb5f8cdfb0a383ff43e80a81120", + "0b0fa54145b3fe1aa7762a435e3998ecf74305b85f44e1aac6c00704ab15daa34587289cc25f0d514379d8d1700ae0f61fd5a3cd64d2ebc568bd9b18d86afb0b25cdf5566019c8440070eb6abd0d4f8c6cb0c023b2c13ed6b5265e", + "476c599e01dd2264c45c6625864d784d8e58730763713b3efa670bf97f5fd14646da9eb8a15c94a95a037e2bd550d760c705471b2bc408b5dfedfb04687ab5e7ac4a05ebfc673ba0d4048f2a51975798fd0e661d97c0f2e778bc1c4ee136ff59f28edc32ff2a924c6ad4f5a28ed00f3fcc7d0039050cf405d99bdead56a9f8c82c94a7945d61991ea6480efa1262b5febf02de6ed5dddc4aaf49e6f3e777e5cd45e0b52ea76649a2dea3dfc672c51854705fe732af5060801f0f647ba2cb2aef65afaefa200aeed8397fa7865aedaba5594c60380de7d96b9cd0e4d5d7f3bdd0f003ab6ccc3b22b097e6ac4bf682056e3fa538cb861f33e65bb7de891e703bb69261224b1e", + "0a7901787af3b776248c9f89b73bad4d0f5caa8f302b268a2c5f3fb3e680cf4d37575c6677abbb0feabcabbf46c7bd5dfbcb73689960bda8feebb30744b2b6104e090c4e879c83503e211ce47fa8f15a371511fcbc08c58eb4081c" + }, + { /* i=5224 cDividendBits=2855 cDivisorBits=350 */ + "73da98727af26361cabc251384ed875764d8db55b7c2caf639d8939f1d52aafd1493a756f7d32132fef01d221a7c29aa57b56f99b7d23c63f473988fdab2d81329862774b22230703924727868d48cb20005dc967981d5130d768d431b4208d64784d2241e810ec6f14b4d45e8835f47c38b218c8c6d0d7d24750d69203a528737ac91af2c4edf9e4ef8f146b3adc069250b1fb9085643bbd3074f88561f2cad61d972105210a0e32bdf06438d83cc3580c7470513bbef2bc5aa7f90e5f6fe06e407587049b8bacb8b73ea47e9af8cea9f7bda469aee9d00cd92e07349abf4bec2ebb08d67fef7f2590ef314b4eae470b03ca9bb63c5e7a55bd2ea73caf978f2b836a78ce48526f5780f0f724a1b76b92027e2b53b2567c834514598d81713c6e59e17b35bc747ac4714b635f7a540254d15a9b26f4330babd46e287807038aad1b92176bc9d1d7ad239c99ba8aff80ccb96bc1ea066dcb2cb8a77e689a7188266b19021db", + "36b93e0024544650eb1108db592052ab62887c49c617500f3cfa6c342d223ee74e502b98987492d52845322b", + "021df887850078c02bc95545aeec7d167877428bee33fbfd30c73ce738d3995482bb1d4c1e5a221fda10738509b2eee98ae9766ff4c0152148e1522f57338042cfa42edb02ad52c29d3737a05fd7a528b90da3de20a1f529aa37b99812e8866d312285f98a8a3077f4eff1752fa6e85c651e0eba850a929ed808439be3a1a3a82a91ffaf916ee40dd04de1f7d030d8bf0cd1353c5a642ffacfbf9432a32ee659c1c3bfac58a3f0b63fb263b54580b00614ffddd7ca57742fc478b694a3132cf4e67190501d4f93e5822a91e55a0cb83fb9129bcdd0eb23f55dc73e57900082dbb895ec3a66d13481fd8a8dea3a207973b8c1b141f8f3bb698b3df41b62386353d9adf3804f44b4d0ee71d047a406760e47fb68d475dc71c276ef232ce9970ac6df77b25a397f96f93bffafb7ce8365d217550f5b407c757c42bc", + "075a7ba1e97a2dfca0d5e3cd96245e8d9a33fb4c73d9f6ceef06fdaca5997ef61fb41e77f0a28b3553fc3447" + }, + { /* i=5225 cDividendBits=2669 cDivisorBits=339 */ + "0581aeb9f630b28fc31453f12461e8434fdec54730bec999fbb1d699aa37e5981e39cd243f0680c6ffeeb33bbba9eeaa7c7b67e7f4b87930508e6c1e5e5ea8d98927d328cae0f5385dfcc9dc7d9a1e659e4399251102f3be14c67a92b70989f0d42a8c5fedba2e2804f6ee56acad8331316aa5524314b7875768ec0e7e521d3c01c79d66f343fc3160dedaf070f3b026bdbbae3716a41080079c434e1f7287b417798c32a89a0b4a61ec3d5015e0dcadde17f87c3929293df7a5f8b32699a7926db4a8ef7fc83344829c32fff201037f5d7c60520306f20758cb58071d9767311ba12060084f10d3e00cca3c183356425e5ec695e53de6425e3c4fd7bbe7ccac050a19805cf074c67f74c3b7400db2c593d2957c780300504c9fd02e5224be76f654ea2111358d87763cd2954d42e1fd5ad104199e8a7fbaa7674d97e8e2125cc08ef27574c18d2df0fa96b80afb", + "03ee474e3dbbbc1480f57e9a7f394e00dd1d945365e316f24703e5237dc8acf8bc1ea828c4220e76ad3697", + "0166a087d8966432d14a9e00a3e964bbcc9c6c381ab71722d61ab7ca869e7a55c1b64235335e7409eccd382e77a9d3e432c3f853aeedcdd4c17eede6f22b692b547d53819eec5dab87b7dd6dafb6e43191c928ef4ed3bb91bd7cdf5b8b3e0ae00ecf23eab4abe9bd2c14c1913ec2c01471a67982c1d2fb148b0810917d4aee84ed3e386a7026a0e9edab669b3d10d30036d034281253866829366f33005d97ea5ac23caa0588ccfeda1f1c5afd217ae24f94613835fe49143b3f5c4defa95751d608650330844c39340cac66cf4e82738734eeecd5cad5f1b7804b74e3564f1bf4f0377eb3567556110130e58fec1d330a92cad4b4501763bb6200beb0589a0e2c1b7da29526a01b60e08e5a6f53dabc6b4fc5c7332e158e1dd13638d23afd7ba1454e91", + "01a684458d8b07ccbd884511496dcfe68a735a017443fa2f82f5f9ccab4fce8d661783fccadd0eea471d74" + }, + { /* i=5226 cDividendBits=4065 cDivisorBits=3418 */ + "35b99273db1cf39b491a27973733ed8f2ba38f51ffcf4a5a5830cf61416d3b67e3be3aa15177e1a9cd2976c2e3bf12685a9d9d6ead50cf71d411729f117927aafad64057da673a64e7585d025ab25a381b47ef4892764d13d433f7082a32693d8c18f1909a882920fd353c14d0ac228c795b4ad3cdc4f38050d95dd38e25d8cfc321817913603a5f7a2f2ae0a324753e93f4e89be377ef426cae5f8d1135329fe4e97faaf87aff529aceb391d1ea67a72b2359a1644b28d66f85d0502ec2accf7bd4ec474be8aaf80769cf4201910d6618afd8d455bfd3451f0b385b143fcf0c78a6d1595125485389445cd007000ce69861dbc410ee7132a3234ea4d02960f9228a8baefdee4ead296725094ff42020241fa142be979d72f7eff378abcec1738295aced0a47f1fa8f11dc0cb96cf84bfce202ec1a94ba030292ef405a90dd53795f8afcd3c351fcb938fc72409e885443865206cf125ceb9d0210adf4e954dd1992d31c3323175c9219379e096f56a8aafa016255148505be32148bedc9fd7aded55f6e334ab0f25f44a39e3c64428563f4d8e23ae92002e75f3fcba45bbd0723a18b7e13ce236dfb1f64ae924554f289e250e600b81f3f5a7edbef9d3fa3b8699265f2b7a26c2efe934c0e7a87f59ddd72794653ecb3997414318018c6e4a7d01baa20ee47c916e21c3f3dc4e85d44f4a8d953d318968bf75c916e", + "03ff9a2b3a8ea99943c7287a282d784d19edebe4673182a05769f90b5b71af312a4e4b042e7e27d64f31df5d634aeedcbe49117b9a2e07c59f1b4b804ee2c7b131f5a56535a772eb2dda29b0ea66f2572eaa2ff0407d83d7e95532ec5d677f6ba555157d366779939c9e7b538da773f089e7d258baebca684acc6baacc4f057c1f1be2d84f70051d07f953c75e6402e555925816a61ff13decdfca1db876e6b86f866cda8119f8fe651cdb35b2e9a9a76c3878060f4e840854dc0d269e37ee165c7aee0b2c385235be792ce26cfc4bf9455246682b90aaddf1066c3312a97b95e724d5d6c8beeda29d5ac0a9a98fd6ef2dd88d2f6bfa932678ad592a59400e3483cf315e6a1da13a310f38752393d2acc198fcd1746d42dc652d2376bb2a0c82b4e716676cbd685b21480cffbb42e471d4600b69bbf25da3024602672efbea313241a13e98be0020442a37629afff442aee6faef389cbaa8a08c2d352f3d5476409fd51e2f350a37502754abfdabe16283e2104486d194036782dc77cd3943280091bf642760c7dee0f79764b3c8732714ee6509bbb2e2b695a8eee17859824fc03e18eaca78591f7e2f739b", + "0d6fbaacd934d2aa2c6cedcdf5914db7bde27bd4b09031e78c8423295d50d2534a29909a359b4c1d344cb7f18b175e76d740175445806251265d32bb50f3bfafed32156e076f58d6c9eb9f3c39ac6a61ef", + "cb4c755d95cddb7c609a262487bd2b6d8a0fac50bf6178534a0b61cb208601b36dfcc3a2b041819ec12953165107165858e1e17fc36ad8baa45ab3f04b7d86f4372fba96f777ff985de2022998f4860f067f0fdedfa1f643193a96ae5e09f046677da22fc87f0e5e70079eb9d844c2d88b07e53cd733d25c4fe5c8d0e8732d709eac5222545293ef28d525e60d4106f1216c29a5f7f830022bdfe2e7b666b6f85566d909c93856732831a0db04065d5a1e16f1fd5fb1ee9a0918e9c0b48910f54c2e68892529383b83c342ec916edb749771172442bafa8c5e5c2a7f700fe8297793d1bb7cfcb9af7b76f5e179fc9980f56d99f78c05cf3969d81b4309534505581b1062868a65bc170583167dad9e90fe8139c7cedf4904be1a81c7f6833235e5c79f4687debdc3dd60bf5608a607f7f17aa89a5a0ad80a903481a18945102e21c5e72e1b0f367ae735d25fbfdf4f5f30059d28a3331dd2e6ee1033afa0c97b1f9f08ca086349d9f3a3e6535eccd7932fc8ba754921eb6386295d88d99706f5d08a061d8041daf40794a0f8f4bdc06646ae7d7ebf47b143af879c21355857a4bc6ed1d53840802c13e8b9" + }, + { /* i=5227 cDividendBits=3850 cDivisorBits=1094 */ + "03618eefcc6014a99d01ac9ae833cf7f9efa8c1a26270968f185eb5c6a8986a26a4c3763d935431b49bc665d6051b70cad6e30538a301c0ba8c51985ccb94f2db81fb1cb62a74a15f421918686e63bff5b524d7ee4cad76f86fa5b01fbe81f64a283613e48f9e3f92941422aa650306b646847d1882bc1136f156e25014c19e8ecffcbecfed7f2cca916d523e345929e5182807f795a0e5f6a05b00230c9143d742a0e6164e3c12183db0a50291bf5a932f2d274eac423fb627100997d486c7c3209939adad9f237ef8c89104818c278d883958b9142c857f9d54989cbd94a0897a9ffdc86c05697644380ecfe8ce4a08e4d76ea6544b56ff490e4b97c1e0c61b54cb27335af5ce9bd508950b41ca01d72ba5b060afe3788299ab2e39018c022b867439a25b943b47add5e6cecda3fdfe26c95506294d0a1b7ae6f5f4fa9c952cfde85bcc87a4f193c8372e5ecf03286ac5cd611b8a52817236726fa1ef0ad36525641ceeaf2eb906b91e32a68678ce8bddc31ab3e18757e0eb88e97a763df26eb1ee8bdae22109e7d3c1135b86647a85768ca241b48fa1604f5898471e2a07bb924d290ea5511ad53036cf2f4b996d4a77c6ef72d74203a4dcb3282c7aa4a478a83048f918dcaf04dd58a56d5b93b3a5816c96dcc1365dda98c570a39bc0b5aef28", + "1e4cef600c4d08c96fef6de4c4e6e41e28f2967e0ad2d6f344e9b7bbf112298f684f30e5d2d4330ef282cff8d0c4c92dba20136565f1532bb247cb7ca5a484479422315ffde0f3681e70c897757cd4292f27abf2e1aaf2c9054f8a1a777a9d0242d9b87dcc5ef8495edb74e9a7a4ba37c5586f08f471d976257e077be8a1d193aa94031864896cf453", + "1c90d743da3a59ca5ad616e5c4330e3bbac9269051dc02ebe9463af3e609bf199713daeec2c2c83b0a35b0378495822615cf54d1d7fe5a9b68b732dbe176f3ac82f883b2178a5ae9def1e1c21f2fa031d4f234db596e9a01c89bef078879fee9fe0275ab1c48ceee00ed7f02e9461c4f33492c9b2c5aa680b0e0f59940de41c3bcf1e122dd9a6384299fb00b7c64631559d38dee13ecc424a14bfd4a8a4b73af457f5d4076949cf6305709f3295dcf99be158dc32b78286e62c5893fd0717cb986accb93a280ebde3686b1c2b95d086182a886ab8da89d01e2e1d0cadfbef41e6dc5d15a92da0a7e3f639941d4b05f52b54aca16ea6ed5afaadb307cf071675661ac94901511a79e51b2dbdcf3567c415d880ab0ab35cbca0c052f382af64adb9a54147368d7140d5efd1a4e78f4856a7fc6ca2d63624ffad6727875f53f945472dc842b240b3f67749c372b350cdfa7bd32dd29bc96e724a3", + "1d67353e3a581cf19493e19603bb56f2aad9cf6c72990b8800b0f3cf9ee9c677479baad1c399f68794338186aa29013f3c09dc230a41042d3190bd527cb502fbcff247583a29dc1d8a3a8f38b9d7192a96c939d47d7fb36e1d102372702dfb233138e06cdb8f1351691d4c333bff67bc31d7db58e925f0867d1a244bbc8f13d3243d99fdf81fbab24f" + }, + { /* i=5228 cDividendBits=1837 cDivisorBits=1177 */ + "74480f70e1c6d7a3708556aea6401d8c32867a11320da80584e4caa417253650f685ec3047a15a4229dcbcd9403d1349baaf0f222e1891fa8ac310a18693dec81ef83dd102ad05d3e382ccb3e4342ea43b0fbec4cb312bb06f9f5b3206f81434f8613aa9b47bdbe206d88a0ad4960b96b659e24e56a84a01a2ce22c0e250b725f8b26a55e5cdf717641f14f91fc31c5aabedc99481f60e07d7778ba1daa40583df7d6e2b18071dead8daa3cedb65f55024e8551e439c50f6d23fbc78996d5e8c06b229983425be9b81e3aadb73d8b41b12948d8a90594465984aa1b2931aa5a979c84a5dd6", + "01879b1acaa8c0c7c6fd1115f9dca3bb82170095b951181bad4e51517d14a134afaf4a24fe61bc40f63b0fc6b29d027fb12181108cd3aa27f3b3245b015151a039c00ee7aa6a7fe199fcdf7889c24885e200946c03986d4612fc608a01ec00a7fd5516dbcc9dbecf7ea066a8854fa02bb5a4c5e3d813253fd813cefca7deb9f2cbf0c6f225c79f727ae7e9f48845c37fb3afebb0", + "4c03ee642718ece7bf514a7ccf8b1d2116b8cca643ae5db775ba31a8c80b27832dd3e3999a1ab9fac318d39e4642f6780cf8195b12de9e2b5bbef6e8ebd1841871c4aca82cd4ea3e92a74a83f8ce6a8b1428", + "015c47725d559053f1b2bc4574b8263a1855f01c6307ea591de328eec6d31d584e60e79610211da61b1aab9c071da46ed6db0aeabf6e224ca2fd1322a60ea2d80605ff53867ff7c77bbe6f559cd31a47e49b4af2cae0eef326ce7b7ad1f87e73f5bb8baf563ff46f9c44816146f521c38fa0fdf730b467239646e5e821753cc1856e47dc2ee99dbdfd4d3518d6c993c01dd3ca56" + }, + { /* i=5229 cDividendBits=1980 cDivisorBits=1128 */ + "0840b7272cbd12ae7ccf02b4592d9b9e2e2c40ba02928eb5ac0bb7f8661c55cee7921f1043ff1183a8595a1c766cdd6af8eacc19ba6c9e560f262268dfb20830e2bc7412317e86ed03f033e7164774f321ebe4fecce818e03bae5bbf54ffb868414d58285103fe717d573ed748390c87105d0de9ebb7c4f671a168d0fde862d83f916a89278ed443490610979d6ed27ef861c07a82d46bf425e409122031d61bc6448ab5dadcf56cdad27717078f99fba7952811b853d1f948e4f562539b90b9622cfa39f9ae915f5f809c42bba6710ab58455d80a65dc5a48987e514e829dcd27e7dbe880fade5304a77f2477850da8d61bf6b24d26799d", + "e9a0240481548caf8b3a765bad00bb5b300198741b00572e606498cac9274b39e907d76ca0fcf0662f8ea202c6eb7259754a965f043c9b9de801dd4093b303d266184125dbe04db8bd893c2b45b4b33b5b888c91b130281267a75180ff3b79be1d8035fb9d5fe652e85d7d3e7e0850283957c21912dfd06382cd0fd145ddd7659ee6737bb9efbc50f505f3a9c1", + "090b0d27d10b0dc40d4aa0a19516c2ad59be1c98d5ef5e8845c4909855063098bae802b76f5f6fab7e6dd6ea3b88e1bfe67833a5025b20b586afa92d9ede4f49599923fd9b35d365d20e5b17a373bfb45a3237c472bce5003b2fc4c94fa92be0ff7a976dfefc5ec1aea823", + "92a548e7fefbd1358f483857d9407d20a919d493249459c7fee7af09464d57e786337f25b25f012fff0592ff4f82f489aae594b56e6617dcbb1cde5b8b1a4a58153825b6acf29ac1d0113c945427ea9a311ab96db9efd59aaa6e5ab6ef65f60f7d23e79ea89f0d45d023395066f9478cdc75774cb904d91e69ef389d0c47898acf4011852d152509d4b3419c3a" + }, + { /* i=5230 cDividendBits=3166 cDivisorBits=823 */ + "3e933acf65547df3246d140981bf17e977503232739a6682317e53ed1188138697337adbc29a12b42c34767f66b265b28e3047547db289e4d2f5133ac01da4e3d4a17eeb8b42b416b7c35daaafa75854888d3e0142a899621d2c372504a18045534f63dbc22ab4ae8ab2928544217790e0b2f5d10cd646b4fb6848b7a813acdb180cd67760196fd899395bc6922622ee252a565ae4fc48adcac01b4a7a79ea4c93a0a2deca9a1a886b1ca504e10e91ad9400909441473e417c2e15f270f17053c1e155213174cc37322f648c36a50df047bf09451a1b589b95b9d39b5ade29c56f72da76db61632bf3ba3dd3d46eb72ac13036caf8a6b2180e440c2961b29ab01c604c120969467c389e9fb431c144107679f8c163d109f7efd9398ad76201713e5be318347741745bf6ec7ace02ef84328cd43b26eab8c51005c6d0896a6fdab4f7643058d84f1ef9670028a99df9a6e24f0ede258fe1694a62fcbfa5c001892c18c3b3fca0b954c9bd4580851ccd65c6ca974a96b9b25a116b2b6d2c947638e9cc217b08eba48f36eecdfe", + "57781e9fde8c1e765da1678ac43c71975405554e0a6ae0e17de41cb8d81d8c340c9b2b3b96da6fee286990a9e38ab492b231966d6faad88ccdd880718c69b62bc8d217a2579638056147d76003015f4614a914f3002aaece5ac170d01db2c853c7503c990f77df", + "b7242ee7de0d307c80810f163a71aa94ad1ce06c4011f71925e6c91e73c2be1c2782acf58a113dc0b98fd78c6c2bc56b76f2ed73d0f4f62ade538a04cf8acc7969db6815b33cafceaaf4b9036c941bb371037cae46d948123324027bd72788df314ab53a54e5e076225ba7ef2c0f68987c9c911cd009bd2a3c22a178343734de3611e69f78deafb12740e0e30dade1b29fc2ba6de7f80264dfd9a511db026004c657e89952fca5f7a51acf0322b4918bb03475c8a7fc4eec4b99ce6e38d1bf6a05690799557dab4ac6b582078fe6980e5c6d63362b9727a4159a5714e8058f38a62159ff05feb7df5fadb71457948aa49e811da26303f303fb497da967f8794ad2d99afc9d9499038c1ce09ddb9b2d094e4b72531b13a679c55810078c32a30f8228f50c09", + "010c3fa15ecd032445ba94ee608edeeb2f27af01b68645582281059c980210a465c1979d8cba3af080133cc505ac0262f8c33d0b684655766be399a82e2151450660d6a948af56d21fb9a472b5b890f0e384594fc4ece9099bb1d3617eb544fa60247a8b5a2327" + }, + { /* i=5231 cDividendBits=889 cDivisorBits=683 */ + "3c8067ca535cc717f217200c2e1cc7cb38d9acc03e0588593a2fb148fba437d408e7c5b014f684ce98acf0a02e75f6306502650ce5c5fefc7b4776049a32559007364254ba4001d457b9045cc32de615be0dc05c71655a15fd5b73dc95db95816f67b62c734dfc6812f3871ff7243f", + "04bee8a914d9ee75c99f1c71167cc88e3909a6adaec5e79e6c5167907c660e15fe601386bb75b20f3f7970b3ed78825d75008a8d5f748abd4172945a88e52ef45453540786bef0832490eddf0fc89cc82d6a48675f7c", + "0cbfa5426d12861d1e1130553a534a58c3586b74800c4ef1b6ab", + "027d016c2921144626128cf5d1899b98be71c38081e888648e2604678683186af1dd233099d7ae036d7d20bc2a09ea2d1ad19a042bc0b55e5c2e97a4ccfad72725406f117067cbf4e67bfb32fdad0e2eebd6994c346b" + }, + { /* i=5232 cDividendBits=3341 cDivisorBits=2863 */ + "0315089d64fbf657b2da6144ef456f64c86b29847858c48f3c91938b0da4cf0df785cf1379868605aa55c4e77491da9c8015573d328db684b182e82b840024706aed174a103c637fe5c325e9c49577c8e312bb1a88cba715c4fc4a3d61fa030354a66f47e059c0c9021d19a7c5dd9d324bc7bfcc80f99c407dd04da72083fda0b2e8517c0b4f4e7bc00b2d2f083aafaaaed471efcb6eb0e4aefb6bbaa19ce6192e1258f8c249a2ed5111ef512971067c64b28a480e865f43a7973dce9ad1f2c8094643c42d59d7f0429b8a575e82ed6f86791fda9042cdbeb09dc86a42929e7334c9ba892d510832360be0aad439b095cc7feb3b3edf241be5f881fabb5b5c0c57fa1a203a33de9d64cadf88398fead6fff3f0dade1f548bcf7aba6beaac53b8b9bd2bc2411ccbe289f6e652ea583eacdba66c5c44c5a4d85d4efc5506a71fc79bcc25fbcdc775027f4dac01615b0aee4daca9c086ac38b2f29b2e4a6ecb82c59eda065cb566aa221e204f0b8d46302afff50978fe79370fa86b55b54e8b9e66123d4cda956c0a9ab5d30de8d0888580008a34ef9505d4e12f2f06bd75ea7328416b", + "211250d53695cbab7282d3005fefeef7136de627a35711fde3b7d3a4ae145fb7e27448e9cb042610895a49655f17fc204871b2ec6efac8914a3f7e88ef44ff9e13b473bded578309e3b39f30f21dc5b2f2e5a385bab3a1ff788d3951f2be25f458e7b49e14b18dd9cb176bf761aa19b3337f86efee6dd5dc1303d56f8a02d230a41b4b36e84112c3b5bf9d6944ba01cf321c6057c85a4ec0ee94e65518fa60a6217dd72604825ef419abd6f9b5ca386dbfaa5d08db2fe29cbffd0da38b65352fbd571131bed84c8ce773044e67f7b299f7f8f2af0812434f7926752c09d023ebcfe71ae1aa2027d625d19bdfcf3318ac58a932fa2b5f98424ef49a351c18629f85a36eda26e7cfff6077df3fbfbaaae0a26c66fb49c6b7a81e63588d390fe25af845e982ea65abedd2fd7fcaed5f509509cb323b4639a4525328f70203827ddc1f607be3358afc62ff88b404995b2816e799becb82fd482bb13090e0bdd5fa185855223fe893", + "17dbbf12c22fbe2277c497f930aa3729d09b9893c494ea28a48b9bd2a3a867b998ca9141b45819b58fe1982ec71cbbb10ac8fa209906fdad4cedaf21", + "048317e32fc7266d43db8c5b258fa596332addeb5c812e6c557100a9a8718fc9854afe259dc65338514071378b980f4047716a82362c328592e2c12b32ff6d16db7d1cc66c3660ec5a984c39253b64c8123908a8ff303009e4bae414ae4acae471fe42f052cc36be2524971479ca1aa9fc4d91e81d534f3cf723cfda19603e94c4db9287023330d0bafff1edb4b593bb862d344fdb38139b3ea046532696ebd37f94fc9fafeb64e63809fd41e219ffe449b1b5fb9c3ffd44bb9110dc21e02f8f26fb7ecf2c2437089675965186d9915ba694b777369e347d16e77db53b177fd0645d52da0fd7bca18549bd1ce140fdd07abd18c39a751674e243384ef8e337d9e4448886b130febe52510e03f2b88c2b1db134ae13a2fcd737a02acf3a254cb8ecaca672beff489fabc1cb2ea758ff7d8d582b43b4e2966c80c15bcc3e1dbbe2e8a1cf999c797762b180e1427466de6dc76cccf6f340c9ece97019a0399f7bc0bffa64d7c978" + }, + { /* i=5233 cDividendBits=939 cDivisorBits=754 */ + "07e243ca78001d901b06fe6dd0cc0c3b4fe867bc8eae6969a18dcc662f4ad9874d095c89d479e2153fefc7330157d439a782956945a53c4f2f14d8d07e7241b8b3ba5550b4c4eb47f8d551baf7e3ec26fca6ed233b3bd3944f92b9c669f820ae8777df5f9275aba784951060aa98db85bec5fe8708e4", + "018dfdbff5c2d065172402691e666531d0e9df1f9adf64c1cd9e1cbb7c51e3b4b6db7cb036fc5e70231e791e4757aaf7ea007c16460f77fed48577c156f43c05e37bb27af815dd6e6aef23091584bf4290b2cbe4b239fb1033e72493c5243a", + "0512358445af04f0e7822e0df3eb923dfc6af5a8ac628999", + "012a737deeafdceaf51bc66f6e88f5b23cf81c8cdbf8f9a2b6385cc6705e18bdd06b9078d7382744d3d3733dff3e64a88ec0e1f6ea0508dfe13662a28032591c3f72d5755624e1cbc88ad37b6953c3316b25922713ee2c9975b8f6571d583a" + }, + { /* i=5234 cDividendBits=1623 cDivisorBits=903 */ + "614d4d2c529ec0e7202ff260188aa8d74e8db9ee47ff5ffeceeae993ee0b9decf97499cb5a0b55598aac4f35d54078a20e12022b0fa0b1fdfd1aac6070d74b1597ad8108ad8081be269468a3a877a9f09344834beb550a3c0b6fb689182d35cabaf7451fda2ab57c812facabd0d72f05ef607ebda01c0f1eef52e711570412f5142f813d11ab1072cb687a2dd47641d9ce0b086b79f7c4428db5e129fa835d97b61fe1788decd22659db3877c4770563aa2df3b8a8f59e843cfb44efa140de3f001b29663cc6a005a291ee", + "265d32a6ce3d90a3c5a7a82174572f5f5a5fe3980f08ee0c5e25b093fd99e97203b7bff83cb5f1b3789abc92f9396e478b473f8b24947a5aa771eeb1c81b36e46f212893b735b56247227fd9dc99e4439ed057ff9b787877fb851ed8acda43a89e4bcdb5c3ddb285dd0f892bf6efcc6840", + "0289499aba6ae3c01a3b630acef8e5fab6ab10b071f1a01097a2b015ca31b3646e0a1b8ab39cbb4538c46c0129d6464c8d11de4cb972d19527a99f7d5e07650085c8c5b364531fa3b644b043611664bf456e42ff90fcfc9ed6f5af", + "186fafb40a894093e85f913e4d31702e4bfa8ff743801edba6f511ca370228b09b43c751dad449d75b28691427667bd6a21fd772984202ee64d9dfeb2abed33b4595f2e0fe8bf30e8751212f6108a76ae4b320c1fc181c382271b0fae767f32d536e627c85faa828ecb022291cd3a20e2e" + }, + { /* i=5235 cDividendBits=3473 cDivisorBits=17 */ + "05399244a6ae756f297182ef1a5dfe8e8ddf6cc791c6c2d5b043bb0cd8c08c6dddc770cd478e4d703ef1d608333a6b82c2813b5c0b64713d2685152ba6363b52a03e2548990c7bec886f5a9db208258c32af7a34bf2c8290a666e9168ea06d871e799677c39971fe369dc3a7353fd1151a4e511e980893ccbe0141a43a46058307a60fdd36f1d56b66e305e8ae515a9f20fb1ed21dea7f13a11741f485076b2935bcf321041547ed21c6da6b08ca8a070980b14a423a1326d1e03c91702bdfece43230167b0f5adeb9633ef938018c040c554c4c0e07170e182f80e3a5f8adf08c199d54a9c0d931a9959dcf710a7820d8c38f0e9d239ecbadf47e44b5f175332b6cdd883c5df831fe4fdc6bec930b5de26ff36a0470dc434583f33d2189a5159bac35412fc8e85a623a29155b083b26c66b446560b08a87eb9dd6e2ebaea6b57b41ed83b57f3e82138107eeed54483cb4f3fbbc51d4ad4f4a97a47f7fe0aeef87d2a0dfad59aa937a84e0cf6cf70da58be2db8ebe89fe3245157775dc0791a63668cdafed409cd67ce1eb6963515f347e687af8024c13ad5d715a890bbf87969a5cd6834534f7dc55356119aac675f888eb", + "01eca1", + "02b7156615954603309e2530c2f75a039cee2b2f0b06ac8f2cdce2ee602cc7f17e635bbdb3a4976048876670cb14234d4c6e64e85e4fad55ecff7f3672f9b74c262abd9bc2a604f335d7abb252abc9a18119a4fbd4b4efc073b41b7b7595950caf9ba75302495e9f10f390e58183d4e721caf5d767d6841ae15a4ada18836fcac862e1a72e34f49ce9364c5cf584a7a54e0f1ab4334c1702af09fa1c36c84eaa878a41225e6c2cb171867b3c1d216a272b1e7a570f5613c80091a0c55fc2f08f67077d1328975318b2657d7965494953bcb4e005cf48b4346de62f6a0eb5d0f5a96b38a9a3efbd18d6dffd5e3aae9a2ec4587ea5f707f0ceb0e48cc3bccbd2bd354c25cc358fc1f83295e0dd66ad833fa8464eabfd0595b94aeb19b1efadbdd2d988037e6ef841ad4f35c5dc9369e5c025c3642b628d4cd5a5134385f5d1b819570fb353373d23ee8ed0c2ef8590470643a636384f4e77228842930f18a7a3203a908b6e4d84a376fc3217930b2e51f59828abb2592ba97d3af75a7bd036f51e35498465ceafaceeb0453c4a21a9bb094bbd51a43f7ae077c6d2e4e478bf445180933d5a5f699b49b71360bc44e055cb", + "7040" + }, + { /* i=5236 cDividendBits=1555 cDivisorBits=21 */ + "196e58f4e0ca33c164a4eb72a75bed393c155875f5bb737e97fd20ff8219653813f9b02710cda608108471855df371754db338be61fb324ed70c314178cdd4cf14acf9ff52584e147519962b62f04b9fe1847deac4f00ea8feb298a7eecbc62cbfb5e6a53387738164cb075a60345a9864ea49439d3a961a02b05b1a9369278cd3d4032797fdacc339fbb8ef4b99a44331c49005d850a947c00d22b0010b63cbaaf8a2c7a26a1c4150c861ed91e30aac1ef7bab16cd4bc5998372ae866c65fe6c7ea", + "0c247b", + "02182975b355bf8d355b9dda4282f678530ca38859e1b5df6645c3d40cc8eaa405dca74cfcefdda27a30691f890b405572b5a165f54aa75364a6f23f83275b5680ab1760218967df0408202539be90112fe0935b9738dded6a395fcd2bc1613745b2323f2e632f4456e516acaee30886b242c549601f160184c6243be5333c49b53e6de463c4d695973ca0af1f415e8bec9b01c65779f4efc7667e3970a2499f52fab590d5fa5763f07ed54002513582c081959db26a17575769c644608769aa", + "031b3c" + }, + { /* i=5237 cDividendBits=1544 cDivisorBits=121 */ + "2f8741562ee24f8e9a5b394a2ef6440c3f3888f2bc0810b3c3d2e3933a396553f9f00888cd7f2d67ad05590d70211d818c02642a8e8179844f8a98f3084548be9aefb94dade192299a1c1f711f1062522fb268550f96dcd41ae8094c3f539b6d21a7a67b90be5fc3ca9bb4a58a1b322dfaeed194c0736f5b4d737fe9c0d3839ba2b8bf9eb1f75566d19ce68218ffc1583ec374c50112e7a6a1ae166c01ace823a458bf9dac4411d8dca1a520dff1d2f14684c02d8143cbde414fe008a04760a83e", + "01bf9bdb40f154a2b1c1184102a3e109", + "1b2ecb2716f77d1607082d2798d64e49ba8ebba593610a9ea3db0c1eec40475d5539b4a892a67c8d2b999a0fccca5a267f5fad299b682ad42f7a50c1fabf8eb5e4c7929305129ae6aa41515691703f307e1d26d8d7ee87c2e6b91e612c07bba703bd31a69479a783126dc3aba5c7dd2ecd0128b8a38f5fa984e460141460a918822530527f7a4e05964c3878cc291420fc0656afcbf752ba912f10af9f8aa656165b4a467fc96f1dee1dab762c5c3c32a1e8", + "56cebe405670eef497d310c2940f16" + }, + { /* i=5238 cDividendBits=730 cDivisorBits=527 */ + "013da6bfab3577fed60466793f9ffb1f9c4b1e0453453a2cc06041471f5ee94657f920e58bcec0188c754e506307593dcd47221665143b19562064a0d006645ea2c0190e1379794e6e48d9a27d5a669b9639a00cb928a21ccaaac786", + "5e86a0174710497b7e296a152c6503bae10059e94a1250c5159865a59d530381ee2db555695f8c796c1bfda23383df0927aae4d2072f3cc9c0c6e09d8d9b903cde13", + "035c47bf007405f730e94a54367455f15fe1a8911ab287f9089d", + "59b4ead6963de2aabd204aca9585179b45f5499fd564e77f50536eef837ec5da09560c5fa1dc8e7efcdee15afa739218a5f0d56352ae6a167d6a8d1931ad68eafddf" + }, + { /* i=5239 cDividendBits=935 cDivisorBits=351 */ + "78c20aaba7dc0656299bc49cc56a90b093372f8346fc7d5977f41b7eade7ffad3d46166861c31a7b5e65a78a7c8d5c7a0b6a69a196316f0892288b749d61ef1838e34fa7a4e10088c93c324248c51b1a72f6e11fcd1da367865dd85414eb730a039f229ad57bd0a4ef05c7dd5868b5f0eb34f0957a", + "031735b267851ade60b2bb779fcbc92ee82eb8da88c6dd3872de0ecb97eae946b3d6c709f73cd082d045340c", + "271265d3faa517e925e2ba16f45e4ebcaaf1340891ad66d73d17e16d8f1ab2348a84d187c3dc810945158cc682b4d7856d86bdf5a1677bc6427297127065e6794d3d24ec92a723bc9706", + "01178f0bded2cc6456525d1eb23c183eb1f25806142ca3131e81d8eb378d9c5a2ef01305bbddb03da4ce4932" + }, + { /* i=5240 cDividendBits=1879 cDivisorBits=1038 */ + "07d2391f4610bcdc4dde7055b932c2a5975fa3ae7e3b49ea6e3c05535bbdd5d16184621d14496eb2237145c66270e822243f0e6ef409edad95936800dd28ddbf5b6e98e30a6ba4e46404a042800aed6506f0e27b7f21ecfb7060f2699eaa5b68771b341f8662deb2d2396c0537f73b1e201a87d8d9b384d5303c0b742111c7d83c79c602e7b55042c2780114a01bab082e4e8e242ead1509209e85d70678092557dbfa89cc6a446ef59f5745a4f173dbcdc7594ce0a4699927f29e6b07efc989806e21c5d53c28496feca467ad7d40b7795d4071c5c070aa8cad4fc8ca78b9cfb3a16932ae53ffa57bb080", + "1edc310036a95752ad1d47e992e2f1d2f5007e72d76c55a7ebb678f0b08c9ebce90b0f72cc448deb67300c4b72a57a060b7c18b68c1b1bd1f2b8ce70c542facc0daa9bbe1e82399e1065e7f38091f563dc975c7b0a0cdb20002bc9f3d543bf9824eada2504be7280b7db45d1a63979fb3a3f1fd35a4b377dc96784641a07415ddb00", + "40e16eb2aeaa5b860e04a8419a80226ed7ae170f49c750739e377252d591adceff3d979d7a74430329042013994773311a8565de60a0f55ccdb9955ff9f0a65ab7d46f82e0c381a7331020598e21669d962059563bba3436fd8b6ede7cf76799ca0a74c8a71ec92ae7", + "054992e489ea7682009cec4979ec25b5f920965fb61db53e0a2834a98fefaccf2116fe009ac19acd5707c618d4344650b5ad9262c8b3470157a3caa4552579b8e74f6fa6fe9b904bb181cf50a865477a27bc5bc4dfa6609e3ec7b8170860e18b39aac7d3b71a8a4870e3d0977976b3b643affd51613267f17ec0d368775f50dd1380" + }, + { /* i=5241 cDividendBits=691 cDivisorBits=81 */ + "050cc9287a9bfbd0d193a5604b2d42038a6db3031b1064b0e4b2f35f8afe6f6a709f4a94f28e86026d0a8853915e958b06554cdfa78b0e7a4762d59e97696bed756464b99f6157342d9f68fc68cfc68fd292f7514e0094", + "0196f265c04fa4196243c2", + "032d4246fd1d00568578b405a3a089b0d99e8064e0ed4e48ffbfa722f8ea25dbda389d754d81ba191cd904500493f048615bece378e9885374912819b33c09fbcc89e20556fff6c377d48be6ce", + "013839c3afa07729052e78" + }, + { /* i=5242 cDividendBits=2456 cDivisorBits=1935 */ + "0ef76a32b4341c8817e9d99e6d11db395b9cc385aeb8b040055cdfa1d0ac9c74603e76cacf5bf09dc79ec5ef1bbafd0d5ef788daf96f353703568e92b773171a4fed66fad5ad8da6854aa99c84b170194b4864913dd44f240a78820cb6fbe323d4c0d21bef17710e23c7cc5a20db8add6256882ad7a8f8aed417762370ad619ecdad219cb81b64834273ba53d1bc03e94ea55ded0c9bc114401375d4bda8a0ae35a8c1fcb318a076b42d192ab304f1aa20724e53f8c85fade86d4fa0642575c13d961ef993625b539b98d235679fdd0693e18490ee91823386dbe2c96b000c36f531742d77fbf64863082ea10a6710480e08c610ee20b605883598c1f51d5d921fc36c221eeca54a1cb8df78df1e68e99ae8956c4ec4b16b7ad741ee7be354a1b36e6e76d66d6ae15d59b26c0acdc5f3aaa2b7", + "6f79a02137222fd53674b9adb9d0958196a7e18c36ee125d5a6200cee8792ff5d01607b8ab3ec1a6a4f60100e0c2666885a50135c518df3cf7e9f61cbfa82455c08e6072a46e720bfe0eec08de735cdf0d989a210d1e2f873f1e81f9158a376413dbf16f1fa63b53c80c1656f342d307fddf9543612095aa0c7dd327101376a623a3c257e347aeb98c65caa9ee3d42d60b04711b83494704a5b54cefd1ac6d72dd14938cbf9b8798f47ac37cd749a22393d155468955a0f978797c135e85f97712f93819eec2d6fb92715e9691b326fbb24f95ebefa3ec22d414c44f113ddd65b2b3814260ca7170eb695831b022a06f5a8d", + "225ec18708c7e35745e53373238c270f86a6575714d534c3a23407da02d0e3e123a8ff70df5140970c2d6a1ab04772defb3b640bc7e3aa3da9a9f4c80abc3aff3e", + "4e25c8e7cc020e6e3235ab8b063ca508141805afa586963ea3c2d89c869204f3feb3fc220cb5048c829636d9c31f5fe1087d9a6bd8383391272de1b152477b44d30acf295043eeac50e2277069903d7d604b07fac6c01c4b5419e3c92915da5328a627e8c7d6d1b50f48f8f63b11134404af5c2c120692e0622aeb9e8c5a6b1b8b0dc0d89e5143553de722e03ed584f83099d939526aa7b0b5be7d232a0030fd765ff8c87d3d542366102ed7f6c81c21e6bb89028b7d6c1e4e930b8da1671a9520f41b24d47c4e5bdbf17a8c01904984d73c2021256227062088acc35c944a6fc75ac6aa18579fb5330a9569d6581d8e4191" + }, + { /* i=5243 cDividendBits=1390 cDivisorBits=719 */ + "3c5264a153b1288a779353294e8b232df6da47c67a04c5e44b524e8d0ed0dd7a7e583261810e818a923602c27fe0bfb4a778691153b9485ab764533316fb5c7cf8108f78804b25ef3898e50a36d1a58027a0cf044715352cfcdac75decc34f986a3618c1956be617807f8d60ac5f986968cae9c394e575a2e636723f7002dac07a36f6dc657c86840c285848a7b1132694306a09f52d05bf5054305fdc97b0df1c4f31156dff829f286287407621", + "0f678c4aed669db9e04645c4a094b84725dbd1ad4ab0c8cff0fc3d8f7d7c0a648852e7821ca49844643804b43e810e88e4c1b829ead2a1de6bb70147c1e2e1e8f29482f591815d4ca66950e7679a1911cbcc79f1d75c5c9e2f57", + "03ea75fc74781313fa0b09e80c20a45fdb6b520e8d0df25728616eb6bcad10aeed0e7e8f63d9f5f53f8ea41da5f987ac73bb28a52ba9e227455dfecd3956c4fb69923f482d2258123b7dd712592f4f8e8d980d89d0", + "08ac6cc5114ff8c446ecc7fd8091de22c261eec0c3a0532ff62438c1da737fc69b4e9443a328b11203654269e8fe13e701cc273f909a24fe0cd997aac1b69a7adc00d5aa8c27ca54c01796a982b541379573e4f5cab78ff97071" + }, + { /* i=5244 cDividendBits=3888 cDivisorBits=2623 */ + "d49bccd9bfa32c00451d396779a8f8e1246344514ced436c91347a489bd386ea68d33478e56619553efb8a0d630346009d31862f10834a0fbb02f8896a03d4efd6f18cf52a45a9be16f482e205bfd0df22b176753bb0a11066806fcb79decadf66853b2462594bcf7933faf48203d9d67c71ea16cdd453f1c895e780093cba6bb76797e6511b67785df7f29caee360e0a7553246543242b8cad25798f654f41fb1e10bc17207047a74fd2213db8f621ea342b48fa4e666c0c3e6737a691e12e4bc9aed1ebea35dffaaaf87b2502fc24784ff85bbda3e62c08b721f4558244bc8b0c6d27d76f9ca525642d69479889c1646814434e8fcde2b5a2e06a2364b49fcb9efed1b0e9dbb00345a550ebff27c05c07292be22a3053a49f5915c031e0f89eca0a2e8c332d28417d763a874d942a653ea2ab01cc4d5f585e45c89da533b6dde7d704bb78c781aba2462b957a8bc61cfc2f992669819379e9e284572009f4d858a343d7636a73feb6b13ffaaa2b9ec93abb5603bf7b849440442e63c1cfba71a0e238ba49306cf644026e5f96639dea7ee71eeda254f390938069eb08f5f85c79cfa4555731735e84ea2c24921e7a665ba93bc70244e9c7c0b9cddff6afbeeb1cf3521275e84110863443fb20000f014749fb344f95b950a108602f0c7c6ef8bb083d260f4", + "7fcbf2025a49c64fcf2e1c27cbc7c981a53e0da5a4b648aea26f4a3527d0cadf699269eef873c8b5d31db3c8f885c150d6ebab3224d338a2fee92b69d2743474fc2f31cce9a4dd6bc01599c13924d5a2ba49a3b665ae2f9ee50318262edc17a802fcff9b0cf0b813bf445cb1c590ceb12c376dfe46968b401c467f18f043576d8e28a2fa707fa16dd5ee70b7f2d5a052dd9e09b4a5975729ffd865560518b59d857b30be9c9bdb1e5d03c7f55b079a7019b11c285ace1c7619845af480d991d56f55ea5af0bd994ee31827d3aa5bb63fea8033f64acdd5d6e8160bb854e291f77c5f944201c9f783b07d2f6e3df3bb8745445e7fbc5a6cc115ebb4b1eafdeef0a575ca80e4667d0bb0c616bd0467ae17b1b44c59b4e673ba07cf77c628150dae04e593b608d3f1d3ff87d691d092b72c2bafa1e0688f264504d7dc74396ba28aa41c26b0955ed5d8", + "01a9e4cd340ee0876ac4c4fa83fe907309c9f13e272efd2682b8afd8cd6c62dcbc6ef73d2be7b65bc5b66691b37623cd0d0f6a71729856d116f70e2fe31956d9ee7887440ca663749de1778d9ae0e70e12a2029e9e501a29082ae67a9e46daf90ccedd632f23c0aa41faf8637098fe925a5953eab83f40e9bf164558064582596dcdb7f70d3cade2a1448fc0cc3c27354a8b0f5af791437db6b2741376d1f6", + "78c34ab625e7b23c852009143524247313b686932fe2c041073228a136867b5ea43f481f16a874e26a988767db31f74375d8567b5da145bb4b8465639df5e7747198a4d142ff332e0cd59726f61a7ce1826482a49ee50b0ad896cf4b972da2d109d8d0cfdf782dc8f2512a5cf697dbfc6efd04f9449e8ead93715ebd2d3b08f139f2e3706189e55ffd4773d5c1c3c6558b584b0fa6e5b26f694a18e122c26e0a8e5b6c5efca0d9eaf7c510f0f3ddc2b0e10f23b8e3a0e32f34900ee3fbc0faf84a6de455454f415b42ac441f88148325d7082fbdbe493151b35fa70c21fcfe5cd499f3b8548a3695c1acf4440f05bd2cc6568c741fb479e2d2ef59518a3937868fd8b403d0d8e1ac890b52c0391ba0b68d953d9ba09539b609c0e6488886aea9e3716d4be7a6103aac404f9b94f6caff48e2390b28f358510993f8d58650b47c08983a98f48b8b64" + }, + { /* i=5245 cDividendBits=3197 cDivisorBits=97 */ + "011d268dcdd030f98cd641f99193a4cfcebb86454c5291a33e980e0b118713b55e4efbaacbd77973cbc430de86894abbd368142f0ffbe8afe946a4a03d7f89030c15e8229b302a0c023d017810cfb434b5a49165223790ca5e273934723ce108a1326c3c27b695e6e3ee4a42e969f892a47b2a871675616f3171db356eebe3d4da6c3b500acb315460d6c0d7530dd57781bc112248d7a84e2adba1b5ba763664c74418de6b0741430b5b2e9fd98db16e1d32a3a10804af5999a16b8ee0711f676490639c41fa8a3b59e7dc7677bdcf20e53006416769a6ab803df444a811993111806742768569e4e7570c58e03fa68c7fe3a076b43a9b223732abffa364c13c97b9cfcfcfb2f75c15df4d81e1c52699598fd1578cb0c8628d287ce4f8fae665b44effb08667310071137e2dfe68926393e5005feaf4475e0801834be24edcf667f5e3378968d6939416f0afff67a65a47dca421d7281af3662e3e6967d3c876339a19f8fad7f1e7750e858e10ad0e31a9d881e63a660a7cd7ceddd1b422ecdf9d7c6b73036e656d389807271c8ce4bc", + "01c42bff9583402d35de13565d", + "a170995309bf999a93a96c1a6c2f343e2422951561d39213a412b4cdf81d9b545fc1d751314a21f7c62556daf78d7d3acad6391dc6b7dc82904f588cbbd660de41dfc379b79b12fcd51969959efb1a11e6d8a756784e063d137af88c8f45afc9855913d525095a0b8acf222212b7d66cc4c9a17456f60bf88e91b90410aaae246c825602ae51ad967d96fb676737fb19a27a1e8582d28573c0b7b46b2b9cd9541767472acc0c44be0b64728d23a071bf2791989b0666e5e3f3ae66eb0eba3e3a7da43ed71f8561dec4d0bf76b9f7de50f4ed6eedca174a48cf0560522e09551f4f89134ba316771035f02e28d89ddb9cfaabe76101e473fc34c598ac7534dfce6578ec14f0792476793a74b0eed73caea75f33c65092c5cb530588a1333d040211566f1f447b23776999638907f9026520dcc03fde28fc40faefc54be74b7af088b57e433a7636f8875f5647f4fc3563e1a1cb34ae93a0be791ebb482bdfae2ecfd74d2c983dc4b7aa87d7974aa75372903d154990aa7a7762340df4989e8aeca47f76", + "274dfcfcb2676b041836f2de" + }, + { /* i=5246 cDividendBits=3883 cDivisorBits=1223 */ + "03bc686f64a9d9a28a19faec16c6e3f8f4bbe068b7051a201314e0c6a2e7286b4ab077c2bd62f1803f7666a7ece7cab7b155b68b9ab264936dff46ba4db1d750fd609854335afd22d198823cacb26f5cce84368c91d243df431140ee1286bcad8044ca27997a36367f1cf5a5f53d3fee9ea70b6844d44612fc75a95e12fa0a4301d722fc7fae0b6c07e2bb22b90578a89be97084ddf4d511e6c263627c4091996640e73870e019a746b822158aa5cf0304fad951bfecc4f9dff504d75913a5ae67c381f15e298e27c5205610febe3ab630558bc38bc9ac96d85c467f5c7e7db8b84f1f36aa3a7ca7eeba3f0e9dd029c17d79bcb5de5e4fa16c481e55156c1e584f0ba98362de98539055a606a928ac4b9f689b2b348b92e83788464d14e532bf8481f3b94634c333f629236999fade8dd40764da8e6e576c0849af60064236814458ddda726131162cf0ff43ed34cbf244bb0e7b90c361278835803838b8af5b54a61dbc2abd8f3d4d73ee0a6924d8b9a0b59b5b43f6996db3e2ecc8a07a05909b2ddab842977dfd71347d17f4a6d49544cf5492071d0f380f2ba97494c107345a66a902d0d5a7ada636df6edfe54d382d58bb626ec4d687940bea9adc41a390e15a47fc6efb146131014de3fb8427c88f13df863ca7d1e63c0c419fbc8cc09aad1937f8a750", + "74c493acdb652e0406f813f80294f56243ac7e12d92f6c9494009a09a889c4b77c7b36e8e9edfa44decf4ba782d33ab7e2aba8ca8d7832c5fecdae801a429b4033e286916d2e8f18abd819d6135c93612a99137c31ade2a7ac855cd69aeccea3fd43301a6f93a325513e36160fd6f5fb0c02418b77596885d89bf2b5a201cf8319f79d2057ba0293b904cb32f5cb15e8b54ee8c41898696f9c", + "0830d031831214ceef7a4a5421648ccb20dfa04aea6313f36e07ce243d9eb196751afbef47a5995c07a01a50923e2964ed0ee5be9937c5e94e3251f8c147787d3f2f74e59ee48c2a49f593fd53d51f017174ae4e5016e8f2e487cdf303e14acb03ee0939b4562ece22f57df3b2bd0af64822fa4c950452c94469ab09a4ade801765c23b3f91088dddb52c20f7c8755aa0ff982d08b21eea3cf76f1d6fcde510c97d128c400218724e992a7db70ffade321f9e31b90973bf641da63a966595e6efad7cb7552280a515dc3a36e229f911ffc21f22dfc071d9bbae4faeb4e69300758e8030e67db6ed9a3cd6e1b0b19d454dcb1201150c49219d1cd4f7c033ff964709c96633b6cbb992236ee49d6cdec84bbeef57961c2546988bab4dff38d42b9be624827ed5ce1c6b17261377dc733756db723f3ebe25d8e5e7502ae8c586ecee8dde54e697caf100b2d4c01d7", + "186aef61a9fa0455a3bef420d11d8803734f4eb717fc54e63012f121b8c14addfb61f89ebcb4228c529b2d8b54641a861a4467132056db4dd68dbbfe5b80fdc6dab0e5acbc8c0ff5baecdbd532923b7d9a18395fafeeee48ad71519d41c9b01c49e2d6560c814cee2912e18fd1049dc3be49158c9f1cab68618ca801e6cc51d12d50e2d6881911cb31308a5b069aecb7b2091c90393fac4f4c" + }, + { /* i=5247 cDividendBits=928 cDivisorBits=461 */ + "8fd9db7221d721516c40de1b01cd9b51a48c486d16a921fc45a7f42ba0dc2426c9cf8219813e8425864bf228de771e71b6e2d9c77f146ec8ef80560e3fd26f1cb7d79d3985e2d58cd2c556baa45cbbdaae4fcc04ab9e4c3c93210ee21c3ff8b51346fe50fd640667c44b59aee88f7e6a32dfa5ec", + "5876ed16b3cc4b2b2e8f7ebaed727bbdb571f7ea1ced1837488f4adfbb14989379b67040c148db232a5333519506ff4c149ba4ba390ce9e93e", + "01a04731c11538440cd5fac443a9228dbc0dd10bc19e15156ebfe679b672b67aafef38c5ca1ed95d7c923b3923185f2b4b66606fcc27f0d7b9012f3b", + "2d22d9af0db21b91559c33473f7e8d9c26de91adfaae201d0786462983b1d351c1c764302fab0b1e66a99d268eb36dc0bcc34b005b8fe682a2" + }, + { /* i=5248 cDividendBits=1749 cDivisorBits=1368 */ + "0eebf52f38d1d33c080a6a0045cb7e6d7153b2e280c1d9d565727304d591f089d6e9ea4ce65ceb4bd5323b72e24e357938bea41bb5dacf8114883fd132a020c94cf764ac633e76e48019cf8f0a8734778596a3128d15152d4c2b60770895847963a2e394678811b91d4d94d8a350bf79919f472487198657e6e5eb7d040dda9ee90715e33b4e7ad06796e0cf6e6f4137e53b9a3788d0166c5c10935cc48da429391e7307db021d2b037a8694c04268b9be467a9d4e3f054b8151bcf2a1b4a5bb96cda2cfb98cdc22d2154be289dfa513e1559b0b4f33a9e68ae0cb", + "92b7ffe736956d29134f27698bb5516a6cc23dda2ac9501964c5c9d65622ac3274666fb0c2716165da4e3df0556c49e0f2eac5e6aa87fcb2a9e63dc279f66da95b4d3eb4b227cba5dd3e4b41ad869206e3a89bee36ecf1d77f92e5a1876be4ceb2dfc3c9eb95dd856a7d255ea101877b65bec8e3be7a1eae9aba662f81f6f837a0cf17355aac54edb7be1edb6e165c648f4324ccc1fcb602d3fbd2cba887494314fe6151405e73b55c7b06", + "1a09321f113f73171a8910eb3c569c9b80e27455cca6dd6aab932f3ad80106b7b10d7521d9274e4cf7b2a539e6b79895", + "4630bd238017b6cbfa4e448d370f246a260ffbc55b13bc877200b3ad6d3e0818798d759a46c3b45a8024ade9ec1917c524903faaa90246bb7de7f3ab34e89d363f80468679211a33b282a655b3b789339da99957fe8d068fca563dcf1d8684a0ad61cf92d09808557c57d0abe0cc710ab6440cd132f325a8062dd846a82fa9c4125154d9db53a7d54e763c1a49596912da007d447f6ecce6afb6b84617eff18d8e4a68be0d88a91961b64d" + }, + { /* i=5249 cDividendBits=2792 cDivisorBits=2187 */ + "583e1fa2cdf4370ddb5ab3aab26537d0bb28c9dd3964ba02eae97b99a9784031b537e7dbca552072429cce73ef56a4c7fc3a49c49de01803ee720e6741cf0229786654c155a9bd29d2601ab3cc573e7c01cac97714daa91c0d2019a940c4ac92b3000d34bb09c95c8eecfd9ceca72a65b9701eb074056ba26a74964645900fba172f5d39cac679bc19c58763526a119a9507c19a2ae2a45c16666883769d702c8437e57a3df47815d983c3accac61dd15a520c675b5388bb1b453f84db804fd71c24c750c306acc3fd9434e49f3795da186fcead79c04d4203b1fe83d513f7388729ab1a26d315360f84f78ec21bee7d8828a91ae2fff02af1fadd65f921a3095d60c79b23c69c6c1f08fefec5c55b95f02b207308aa6ccaf21266ec6219eec9813b7ce1779cefb86143b41e23bc90cf11fd9df4507aedcc05bc4ce98adb9978095114a266de587beec2bf04b2ede25f808660194f18abdb1b3789a3d3", + "0165c197401da1e0fa67772f75ebf2ce0b8d9e40ccde8ec7ce2ff2a83517e29b31d0ad06244b662d9029b220886d157503f2873f66b85d0f7a5654a17bd95af59823b497e389220c4f94efa8e492d637e2275084a315e5bfcee830526afff76c727f62cbda11e5d498b9c41fb6ab6c49589633e76438eb4bbccd897505aabdc584b03eed9e8dea9bf2c65fa37ea250b8f6060f77aa5135d3d27d9851cbab573292374b64e1d869a574d7b1142cf1ccc5982ed58b365e6ca0d2bf2f9e8f3263a6abcefd11bba8c112b8b8d19966a0d94c582409b2008db1dc3818fb5dec3949b1208158cbfaf41ea55e0d8695518773fb7cce065dcff93107313c4048ff4d235817719b3326752204876929fc9f2145629128", + "3f24d6cebf5d5bde6c44e7ff0929ccea041c8d941fdfe3b69725a6ac3562340ddf97ad7cfb58cba470d1cbe43d2d796a853fb2dd3b7e296102b191002be1d1b404669e23e5ce70e4a8c48d7f", + "010c2c959808429d2c17fbf5ad2c98af96305ec42939a34acce19a3bcd21577d495ff81be03b2342a47a19badf970f1748881fc770f5401a57aec2dd693022af4103991802e0b779fb0d1ad32a0bc33b431af93a863d42bff02f4d55a334346217c15c91cc1f5e4286cc0eccc2d5bad6e77ff475f52c9280dc5608821676ddc78fbf7066d6108209d893e961a9222400ac3ab10e45e5c593fc3185356b300b125ee80505eed75a8ba51271fdd06219257f96ef70e0722249a79f7be10f8aca602c67c9c31d27a284b9aad0056ad646770a7859f0d90b97703c2c8f6b2fee904674bc2530e510b9d83a414b54c0961185de17077d9ba02f481096d531ad131e2d28ff00ce31a0f506408cf43700091f1098fb" + }, + { /* i=5250 cDividendBits=3844 cDivisorBits=3100 */ + "0ba44605f882bd6695e27844df6c81dac1c1874d5c190e5e0856adca1edb78dd850982d6d281311eb889df39dd346884c41079953260bb5e6ccbcd331cfc9794394b597b5b062e478e2dc0542c3e4459ee27902cd8fb138047d06d77e74902350466b32e33b6ce51bd1281b28dff44818c94d55092d42af5d071d0f25821d0545c6eb9457c65bbfbdb4c110e587afc227e81e9d39e79a571f9b33acb3709f943b2f853074ca9eb80e6ef27c7e71bea1798b5c73de28a2e1e8b54345f619a58e611a784ae043be56d1df86601abe8f0f7c1742eec9411329926ecf722e487499e05b835ed9d7cc250a4983d686273bf7d158f92bb86d8a80f59c9f5af5063d1ff5761299f70d6c261aaf870a1ef9458db07605e68062e35185837b970dcaaad62d4a84d5cc1d316ffc4911ef937cd847ead5ab25da93b4820999489eb73fe26df623ba96fc1ee5f5c94a4ac930c2b6c187ec0514d22fb6686ee69db6a0abac53d3aad797d36c42a5e8bb8b461eae7bbfb35d6d6a75b61fdc57fff73e8338d981fe62d6bf5c228adb4e342a003805fcc342c2ec83d5834316cad5a3be15e7b52499940cbec72cf4ec5b1dab35cec98f5fea49558dc602f899b0c1b1c3916361d3a90c63907d1e66f058051396972800f4cc0194ca295127e7bf7e492900162441de7", + "be256e67cee19873f4d1e8cc260a1faf5c289682b8dbe30e7ad4ee6eba901497be4f7d75c03fe71bd672fe0a1e18a0a9b8ea385bcc954af57a70e94a4fbd82b01910c3d87bc4749fa6557a6e567da91c5cf1530ddc99ced45e3dbc2b79557b49c68e46a52754ad7906e07bf20c3e8fdbc398478b7bba341b3f003a093b0983b13a876878ed6b4128163670f191abb8f8797e6296738712186a1390d95bbc22a0567f76f2431ab1de894d7c2df37d6611860c1785b0bef356d179a15dc982f8b2224a6b02ff322faa8272a44f012d734a1ac3b23a0224b199246b31ec0389cfe92ec73589e8b8e9a70ec99c0ca6121ca0ec362afe69e1d27a53092b3ad8a6790d764f657f4abec3ca86493a38089d69ca4ec886a95e007b430a0db8976d0cbf1b4fd23c219d726adefa37b6ba89f43a91aa8f5250b2cf74788479ba6514d9e43aa0ffe4d5b8a9c8ae102038188e251f7bfb405ae448951e68db0abad376ce718efeeb2be36c46e64d12029ed8e93da378c25ece3e15d34a0e73a7d56fb4a921135a2f10", + "0fac704a7f41769da00f76423cab64057694c05246ec9fb758abb07aee0c44e622a1af74f357ffb089714ba2cecc6a0723154c8a8d6e5631c770966886285d329abdb1703208fd901a35354b1a2f8376f71fe1877deda370c2312ce41df1", + "54f6d020f6db61206612008ecd5cf6ca56421872dc7ad16771dbc3226c2234e87ecbd466d11c72c5a73cab94fd2cfafdf03234307777edc7456e6fcdb398b1e99c768f4321d2f0f2fa19e22309e06037a31b2ed60107bfec5a844edb155a787d63d90c665cdb4822af04b0ef5b6f310ef60d29fbb692e4ed64077711b68f9b62178be619b14f974f790e4a8005c15ca18c1106cf232ea42ffd7fb34ba00b46535524db405c7aa5df3ebc67352a7622895389136513cbe7b17f86c8e924c6f2b8d4d573a9fcba8186f92f9d9c2f4f1a76f5e5d8ab0b4da4188f622dd273306750f13144d29a44e88ecb2a3b9701cae32d7e81558c1ff09c27ce0e7a2badaba60e388d71abb007b9a1b1cb9feca70cda1dd597112a7a5ea1ea8f6f730a3c604170a29800c32b731e87c64f50414bddff800f07f645c09530c78025f3098f68ec5f920b893c9b6e6ef64e28fade2237f282dd992d194a0bc9893abd3d9d5f785285753d819b8049ea96cf224439680ec96b1919e4688f7c3707dd0f2f20a0ba3448c8ffd7" + }, + { /* i=5251 cDividendBits=1248 cDivisorBits=692 */ + "88a146f3ac90790eb78430ddd1ba6e9841fc20086827bbf89ba1219e5c2ba834dad9abc47d1100471f900699910828493b1ffb80bf9cfd7d93053b242937fef9476893ff46a05f72823635f46de79a3cf913066b6093ffa3ecab0e8b5371ef5b49f881e8ad5718faf29347bd192682f0b97379a08310a5f7dc4ae763577f6c9b4127948cd8d1608ca3277194032d5f8f31538e3041c53e51dae41c6b", + "0995ee86a8b8e63d851094bef5898b5780fc6817b81d8e53d28528f3b835ae31c7bb709dcc0a73a48c199eeca62db87dac2cc6562d2af225e41fe2bad3b2e65512133fe4fcb8a9569e1201c4686d745a90d3c1fa799d55", + "0e40e9ad749513ec659932f341f4622f87153cbf92ac1cb3d3b63aa5a26264235fb4164c2857939cc46e5e37509e0e10963d83d4265c6e2d7796369fdc80dcf68848ef55dbd0", + "02080a9afa1ffcc072fc2badc4f27f31a9b447b76e11fd289b815a261b0fba8b3e2dcd8d1e3965e9db339cea555e691978fca3187ddd060244ac979525e87ced1661b68a21851a3d30f07d4ff84833153b2344b643905b" + }, + { /* i=5252 cDividendBits=1080 cDivisorBits=323 */ + "e3ef928e57dfe5640084acc4966fb6cc2ad567263a381cfce6d79089e10768b8fb3f86a55337714c74bfecdae8863bc8f9d6973e4809764b01359671170154af80961eba0473ed5f2a329d0e874753216486306d9371e4f40dfd02aa9f25beb69dee46525164c1df8761c03bc6535b37d1a3cf2d97a49d501487635c3dc7f9676d0601c56f375a", + "07515335d600f5627a6e7fb717226ef6a8f7bfb404497f306d8f04b80f73cd7264030bc07a5930a4fd", + "1f260eda3925d93f0c13421c0ec1f74dfb58ce4c15c909be2f8e5b746ec95d5906f2bb392e70546713d577b9e2377d15a96832afcfe90f28a3cd4e480a503bb31f4c62bb86706d86c310d0e24cf80b33a9dac19ae8cc9105b03b2c1e70b4fc", + "015c1be41b94f758c25a177d603e01fb5211646d83b1349f31ea6f444a32ea8a22af3823c1f0daea4e" + }, + { /* i=5253 cDividendBits=1515 cDivisorBits=1255 */ + "01a6ae8913fcfaedf2a17cd8957f6abc5e238f7ac59d3e791b0ce170cebc9b14e7eaf85fd0b43de010c0017a4d1610e637f8a22e5b5e7714dd4a221da29d89e9548e3c355116ffd5375ae50260978450776ff7081d012a16dc2633566444b68431eea8028d9f5238b67a8028186e4b4b3890c9ff7196ec896c5e0da54bce796704b1c73c04e4025cdfe24d9a2658a2d304e223d49d65e1867d0ad34db5629120d802217f0daef7e62ad1329dad62000d0fcb00e30b014eeedf51d69fae9c", + "1e669d75909c81926fef5305b20b7cdad027361a24e0ea460f63fba7fe4d619dc85850d87d0281c85996c8d708094ff6a6a319fef83b0508beae376cc96a5af7186bbeeecd2b505b0cbedb5b25e585d3ac4930ef1ae70b25644603443c538bb3ecea622a008731d29715e6cdf671a8e03a1ad031e99a1de331599261524b9c231998ca0728307791050a266f4c6b6fbf34f2d1a828d4aa464c6d1fccd5", + "0de753bf9f90f4481a7d37c7c7f2cecbf2f955f96597b87395fa61aa27db84368e", + "1e3e0609cb247a8b808820b2a5b4db55c3623ec88ffbb3fc88923c8e54348dd518be23e854e7bd52f164df4c6cc56a2fe509fbd40594d9271498eb0b3d0ac4211dc4f51e4232ccc153379a59419b9b15dd5027a7680dce5d7a6618188612fe4890a8c580618e0cb74dfa013215deeaa478ce6e4a7c0f19ed42b222660706d9f00cdbea9d2fd018ba93c20284961877406b0d6011667052a2d5c4f32276" + }, + { /* i=5254 cDividendBits=3350 cDivisorBits=2518 */ + "224e7b93cc66df19a5c4c132595eb4ac22f24f5c9cfeddc4cd01458b7c9c88f315a7f40fdd43030cdec710128f23ec607b037fb98d7e6eb842da983666dfb42a850e7004ce792d3307440ed5bd672635eaf362128093057d4eb880f45aada8d182090bd7a5a5726ca78a53695866158121e53aa986e71c8255523d50cf159a633527312252f20aae6f8fedff8b649e43dac39fa477e6d1ccbebbb8b931849087cd895f8712defbb04ed49bd31f2549b2d6d59015fd36d5274aaa73619f1b2786ca4c26ab8a953c712c7236d5f2bbd0720c5803c6a854d2aa495844633c2977a31580abbfa40c5ef1d220de282bbb498d7e991f155ec1bdea4e89cf615e1fd3d281c1423129cbd16c81fbc38945736da25e0ab82b3335d7deba0ed6854c4ecd3ae5aa196996e2424b09e2a7d3b4376a1a6f914537fa09230fa2757a39f533cc31726c51821593a1476d50868217b8bb3746792cf8ce6099af58ba54cfcbe4cb1766e1a52b4d937e9e12763a42bcc0a800ebdc5d182cefb259db54ecface9b6c51b8a63812877f7e82c29f08e2317a29ef60a0907cae7543fe8559289cff8573b46de8c1", + "1155735b1c5f7f938873af603b513ee1e30462a482df9b2ee785f9efad5c6907ccf33a42991cdc178943321cd464cbe94f6d93261fb220cc5cdf532154010996f5785087ab52fc737857425e420302b95009cf16fe77fb1d23a1c8384adb76386823fef2e3191e9f52a54b86cbd09b7cdb0a70556098362ee7b2d6266c7b6aa149c7b9028808b764f4b1988a6b54894a982b23a4fcf8221108dabe43abba447375238050b7ea38b71092c9a74b429ecd0964aedaed10e4a453203c502a189c4b8016b8287c3e3590f94db5dacc5d6344e04b1bc9af7586c6ad25a4ecf41cc224ab58bf0b6d5e4c0f87cc85d18c4a8ebd9ac7b8f6524c88082969ecf4f09812a28ec71ad0be5876be312c26bd7b9f1bc9d5d99a8bf38339adbe3e112ec79f44dff2c8d78333b9febb09a180df9e68165c759cc7cffe9e33c875335e", + "01faab1604a59a60764e891e719046667892d1604a6afb97baeaef856e51d11e13f5a6a080b06d584cec2baba7096a9672d55c19d1911d2502485186dcfa275443059d125cbd862f0d1726320cdbfeb8573221248add0eccf7b9f9359e7e91187ea49b57a713fbe2ad", + "02b4d41c268d7f20c8049e2ceb28c1215b9034290cf5f7ad2cd13a44ecceb50d9534d764ae8c599d911ca7b7ed121196c698a99a7ac8c71f5d5ac666e8569447cc1c762c66d80db4bed18f0941b40ab51700e3ce6b2abe01fe40c6dc7a370e9922e27d7c2b1480f1c3813aa9833e860ed008347a6e5d0d28132a469989c67c8caa467bb37863799eb7dea6a70a1d35cdf7b000f3ee87e61cdbeba0c4d10909dd3e3bb615e44b947ff1241f8ff739e478a8a151a8f9bdd04fde7e1dec549f9371e28b707691de1ad6281663dc937effdd94f829ca9c1c1eb18c8dff28f9e57289524154f28ca2a3018635f89ff836474d4edfd4c07e6b024f559b07a8d617cd4291b642b5f720a1ddc21fb75435b4c7c7b92c18ad8852fa8d30c533fae74ca3b346dcd00535cdde3d715a2a622ea812f2e8d31566cb33726eb7363b" + }, + { /* i=5255 cDividendBits=1292 cDivisorBits=780 */ + "0ebd71cb12735768fa52b278c239ebfed499d73deb6228ba9b304e314eb55e6e50cdbc026bbb2933a3e2d8393555383fd7a52b20850b124cafbd9b6b6344267159ddcd5e485b5e90fe7483f5b3025e5ec25e114453e3d863030ba28e716a3f7815c531835bf735ea34c7dc1e164b0b5d6a6d21ddbf0394355cc86fab1bc12f63688adc9cfff4831781564b72e7d0678e598549283e25c243ff82679334ad5c4c2f87", + "360898eae5777bd97ca413c7f2f1dd66202c723e533f2f7def567ff40ed9ef170b68bb3858586338b6bc13eb889dc618a7e7946689cf28ea19344f6e9ef9dc797316e39740b3bc54165108672ed96d7eec53e88c39183f40e17a6c16dd7202a4e7", + "45d5cdbbd27ce1dd3fe09233e4378834e635535950a5f7e19ab528e3ad6f9673cb56efe6ca0277da8d61dbb37862a4f23995c2b457228e83294ab47eed23fb05f5", + "101ac1e657f5745827d7597e7a9158328d51e0df0d812f2862dc921a894de2c1d02eedf3832b83f2f3942d1ffb7b3052ed9229775543673466fe3283c0d27112e7e65f5952e7e52e029afef5873a8b6becbe431bdb7dbafc93ddf17e86ef0edb74" + }, + { /* i=5256 cDividendBits=1011 cDivisorBits=853 */ + "91e06b981e8059f109c94748eb59a614885e7c769db74db52ed3ea149ff74e69dbc662165e4f7620360f7d20e0bc1890f40e844806ec392fd9ee1fcf73139880e22c670f51371dd8ee61d67957160b6fb743dc4a824c97575dcb2b6a03e064c5cd00133d2145d7b3d4b8219f632e4aab62abb9f39baed6ec3cb34e70196a", + "17b9f6c2eda64255fa0efc55744984e998137111cf7b624fe93080039ca8dd9fc22835c6f0e1516438147b84ef0a737b8db23dbb6f87c9967442c8a30b5fbdc9901158d2af8c809e0b48573bed20d70b27770a8ccfc88519aeaaed8b691d97f466d01af63e6ec10b176ecb", + "0625f59072826fcad9ee9dfdf9ff3f4c6cee41b7", + "0fda73a70abb277555d1f9e79ccb4594446ecfe98cd2d2c15b3ff14fb25a2c3bed593ce7cfba4ecadca69245f15b3336c01a94de7af7c6b626a4426c78529672077ae63c499f143a88397af631649f3318a9dd781811efd54c7d8a216c2ba219f7835aaf980118c8d45b4d" + }, + { /* i=5257 cDividendBits=315 cDivisorBits=148 */ + "032c3a50b7c15297c7713a2f4b9f4f282413a89c70f3ad549665ac373d68d9e29e0896219f9d0f9c", + "0a53d9cf0dcbcd46fbeaf947796e75a56a6d24", + "4ea5926db1ec5d6b3debd67e06a69d9c9311988577", + "02c78700fa7d09afb7c333caaa3a653f109fe0" + }, + { /* i=5258 cDividendBits=2485 cDivisorBits=1271 */ + "1370d1680c768c3f955384918b131dfd77dca56a35087f473d15bd8a144ecf0ed28361a540ed591304bb36a251ea962719d44fa2cfaa880d75b54919ad9b56dfef1b18a7613258cd49c4f9f5a35606c1ec96e73883756926618fda4a2da1e10e8fbc98d344dc23cdf64b850ca6ce34f54a7bad90fd9bf9a55d1a00dc4aa0c05867624cbd62de1318016018e8b23cdee76d96940eef4a405d90dcce58004d7a93d52c72cfe000ea6e7a47e4ea86686b6bcac6088e897245d5cd74e363c8342c4dcee498d71a5117e943ce81d2bfcefa74e474a8a350545fa3598ef38db17aa7e152ea0fd72f86260f751be609aa90e1bf97e01d50ec465b3debb4550fa70d0ee4d77956dfbe852f8f49d49756a91fbfb8a3aff8b459d6edb933720d3081f97da9d0eacf8f97abf12f0c104554932f1ec5ab65ccdc2f5d02", + "700e44a4c439ca59d9b13593150f019aa68e93940a22b4aabf101c067e1806730460791730cdbbedab7c0a3dda4ad635380d6a915bdf4f4fd6453032214732df634b90ccc04484e39d68243388aa7db26aeb5236060771bff83c282b7524e83264e319fa01314e0680fc669b5b1fde0f2afe90c2cad1d212e69bf0839547a112b0e07062b6c45aaa83012be29af11ba25adfbeb21ab31f6eec4e902054d675", + "2c69ed09f942f1dc210f62d2c52cb695c491e9a3867bbd66f9bb72db2de2861ca3468fe960e949c54e07905e53fe4da2981ab43f5405132d3bc5a33945ca033deb8b4f1990efd06b6ff49ec439ed657278392c5d378320b9d14429ff18c7d06a28b0ea09c9d5d103225a63de5b6e8225cb2a8562c47377394d7c0d0a58cca92771a46d02b2f2fc5b1fda57b2b7e2bd6417beb861b1e04fbf", + "02a1f16998b969b81467f7dca4aef302b33e8617bae3ef0c4855d7d8ac714cf599f6a8ec673b84f1177eaaff7f44089c18490e6c1f3ebbfc90afa2375e36063b2fb4d6a0914f977c5f2218fa1e0b0b93038f04a41c5c07150a3dfae08d49cd00d9d9fd646d4fda3da366938a2f55652aed1566f85b623f575597f2393b80e682d307bce676a627758f8ef8d12318e1a9e1cd06628b4590ca880173035540b7" + }, + { /* i=5259 cDividendBits=2356 cDivisorBits=656 */ + "042d74e2024f159058414b66d35fc02fd5d452fcee126ec540e87fdf7cd9f021431f541591cfd347253e20e078129875db64a864fb964cdc5ae40c8430ab67febfe7325268ed71f17e2c1db49a838868efbe4f30098f8b93dc8dcfb42884cc2f47ef6908e7a27d2ace464d80b84b9997b4ee0f944065185ea69e6cdbf79938c1b713636cda086012ead1f7322b4c6bd774f0be5544d7d5a94b3e7a8cf6bf93b02c7b2223cfda4bdb7e91c8902201969dd08d4850ca2776a693e0dff484defce68478a049fa508dc7fdb0d15eb0883907a23060b89802d61366d50bd42182ba3ec7ece304721958ecbdf0d4d318bd975abbd3924847754852a90ea415e103792ed7dc96c74f53b350b11546190b124e69731df26f9f468ad1739a2925c180aff7acb846b81286f5", + "56fd1b540608047396db295115b964f7d57277f4d5207b429763a4b2cac34003e9bbf77484bddf2c5e2c62ff47881b980df25388e97509cd22226f567fbeede40a1d611ab728518e9900a1db656afbd0f85b", + "0c4b50c80644de80901049fec49225c9056f3d1eace46e6e6856a8cb64f92bf12d42785aff368ffa7585f5f1b52ecad8bfced62f5b416d0757bb43c6fcb6653960692b56f6384b62366410a1ccb851072f4daa75e523c879f3e6fe3be06bb7382129044ac5e2550fed44ff6e102fa27b4d0746802818fdd0275b369fcdc70d00b30db9dab57782c7f639c4f8fbbee18500137e22f78f87675b3c2812813f983bb4cdf075211fbd6c1ae492465c9f7e6bfc04b320ed9c1f3a4b2c124a2dcfc34030939d103efbb0eeb72eae56007d034f8e21f3f852", + "4101c1225a228f73e473c85cc283ce3275d7227c45fa5300d4df1e8a5a1858581f1c70923912497fba7363855b551222408691f5b3db2a9c3778248d3a121450e1aa527435764ce822970384c9362529d1cf" + }, + { /* i=5260 cDividendBits=1076 cDivisorBits=984 */ + "0a214652f3df1df7e3c5e1e94bbe47a74ce9ad474e60657d069b1417d697aa70c2a4f54b2ed0afac6c16313ee16518fd89429d78900e281abed355135ce8bd99f500274dcb819d7f54e445458f3cf2abd5f86593177cd96a7d4358607937ea41d6acb1d730492c8d8a267a05f4c95eb4e972d1c9421f17f29d8706ee3f0c67f61704f98c6d9573", + "161e1f682613f156d7029168418a476c28d0a99294392f65a328b9f44081bed412fa1311f48c2299b05a76bf09a26fe023cd557d441777b353b897731f007d801a0e1cc95befce7759e2d911c9c0dc268bd73ce43ba6bc22aa48ef0aafee5c3f1d352fc7988fe8ce2c59c5c5a40a284900d9f68094cf4acbf23547", + "753fbfa3c7628bf714b9d606", + "0e26669e1641c87dc4c842e22439064d9488bc7bf0ba836ab27db3b09cb70c9722fb8e431e6972113b49afa4f5a9a4acbc6567a7395f4a9a0e05040555614b74dc20bd33b8a924668f1de71565921448d530ee5346a8279ad8fe6ccb08f78ca3bf752f0f81f42f2c436b64a6f411ea4119782a088860093fe7fbc9" + }, + { /* i=5261 cDividendBits=3873 cDivisorBits=1229 */ + "3469419d1b2f236fb6aab57bc75e2227d35709c1c47ee6bc77e088ae81e5f90895b4f02c4a269f2182278fe4c7cedec06bf0789d7d73ae6f88900adf42b552911eeb2790493faee3393762c6853859044899854e283e6abe121d8987b2d315846e384d44bef142e2e39ddb6b0fc85b093296ddcf7b4edc986817d4d5c26a459459b664cf306c561b841f885fcbdf9a17b9aca964a0e20ef574868e60be21bef61d714b33fe477008925112aa9ea50622a669438e9aeb3fad511330076d25fc551093761123ec62603429877c0aef5b027a9b7d3a969a7e5d68c4c0be3ec2fe1e825a5368c5bc8154487a95a62669740b1776701c421139efcd19e6edfe59414050fed24b9649358a880a58e354d741e66bbee3f554aa5faa8537f85ba80401ad7e0c06c93c92971e5f97a40355d43a51596f0f369c10055a74a25656a500395bfcd77cd13e5aa1f44d3e5d46632b194cdefc1d94ed7c1278bd8530d7294367e146e00dc2fad4385933e5aa22130b7e087adf609c2694b36fce0170d2d76c4447367c7fc93bb4d145ebea3d710fd59b1df1c56580047501d6314bbf6c61acba3a6b4bea1713c2fd43728152c2c15cbfea48f52855710e68405098d7807a8d828482388a6f8b15af61f07287f99f7fb64924f658703338d9aa8d106323c187b429499992d6", + "0d6e725a1105120342b8f999f8a1c52cda2bbe735278782c9b5d6796448fb10d6c2004193e6d7c0254b4ba56d095495ea92b536ce70418cc34517bf677653808c2841c13c47a029b27182376b2235ef9a4a3afd28668b66aee68a66060384463fc771a073d89aa584046184ec3f2d80020dd1a843b1ade8adf95f65e520e8f02b676f87ea9b37b4a1da4dc90e30396ca741b6ca4ff7b291d18f2", + "03e6f1ceb45345c98a521d13f28b0950389c6a84518e059f3ab18d8d6d4edf2d688a28abffc2b1b58dc34057ad34534f64a145d3326c066ac707e3bd2f76766acb1353b94f0d847309e0ecb8f2a1db3f0268a01655f977b634a04ec5cfcebef38072e1c2eb082a9b037a9d15cdd9734842226cb8df94fa4c0790a3a77518882bdb27a6cbfb4b48cc6592ac1cf2ebd3ae7597ddad2f468cf819789bcbc2389c03d098aacbb8c52dee4ba096185e614d9ad5b5cfd84c1b42b54103ccf89d94367113fcc0d84f8461939ff4e66b797b5c5a47a7dc5065385195803d071feae43b2b4a2d59085901db6e63becf88d31a70e915e6ee2068a16e82cb711285728ff7f2629252b02b4bc1d026dfe043ad50f00081038cf9fe78a0a3c945f024dee1b81a251a94cc23ced855c2bcdba00c61d188b37126f5afa45adfd660ad11f6e27e107690bd03ec47a26bd6b3f3", + "04252ae40b24ac8703575dfcac6bbb3bdc8bc0db19281f69e31789cefbcd180466c584d218c0f527e04e00a121a689ecef1982abbaf7e5a4ea96b4f1864d18830257c786c0be94e05c9d3db5cf84475b262273f4851c4cbb7f9f8fc2948dc2f3e1055f61d15ef6e07be6dffd29e46291b24a17c3fcb9fd4f0699ddc1368d72d2b511092ebbe2eacce72ee24f6e5584059a4f4bb5a59dea3daf20" + }, + { /* i=5262 cDividendBits=3488 cDivisorBits=1594 */ + "079018318ffc58cc69d78c48e50534c7d54a7974d7516808cda34aba00a8bff721938fbf4b1b2cadcb7a7c855c0db20388108ec35f16286e28073cc944f9aef73828396427ecf5ea19cbf01289c8591a36dc56ae7b8db6ce190d8234fd70249c059fecf42dd1dc632721a4c39fb4d9863a2a6b3b5d7636aadae69662f63f1e9812bf790842c3f53cbc3103b1fbaf63aff0492578cf726fc2873d708b6269f60cd91989b07833ae3bd8bf56d23b6a94f477ba877a90a9873f350e65258c098522e313945e90e5d3daf2ad8fa58d4350e6b9851771a7aa287f667f879367ccb9d407c6dd25109444fd686ddca115b58f2441ef33e05f780c157a749a142a2c7f6ac1652ac8aa2114340971a3e28f321f1d2fb8178dc8986fb147c5bf11cdc1cbd64fcdba71ce450c21df0763eb0a9040ccb17b9cd7aefa089b7eed4742905be06f710d7b515d34688ae0f289697e2e7b8ee44cc749dae28c8670f3d94f5977ef8e54c46ff4efd7a1ec3099d23bf2ef28c24b25a179086b15232ffa026b47bee06f49c3c91b5e68f4c739e93b7ccccf78b8cdc495a7678d801531e96d068031812efdcab2a973985648a674c25905a93ad4c1cd3a8b", + "24088bd2d231ed074575e4c79c925efd8564520d1898425c82a6e2754c3828893f52dc1a44386fececd0b9c0585dc733b873898ac1a2097ffc60b19d7e5f01e3fb2897f83872b8fd60de8edd06eb9f0d1bee38f3212e2eeeb41504d276869a4ff07bc7a2dd9f8ff358b83598deee422ad6c5676ab2dd8c1b7f9faa3bb69ddf0fcfb9c2038f972b0eb9bce59a06c211d84b97a3cc3098dfef80ade356707c8fb37ced961251facbaa09b65c8e0c4dedff37c5e4aed833dc9d4be460fd5932b043c2a7c51fc96fe3", + "35bb07204b28a97efb76dd9f6360e3522ceca4d501e3cd5f144b188b801c208be2762038af5dc862e1a51f18d6cb4d002caa9c96469cf6daa17c4a1070babd05d4f09970c6da6eb6ffc6391396c91c546e1eae65fe09c28866c0233d8ffa9bbb14579eed21397400cf371771aac2be3c187947eb0734c1780012f60866315c29ea4e7ce1d189204f09814efc52d44dc19c2fe0593f8c5ee1460620693b06afa1a267917c75138e7018ed93555c38ecc11e0238d26129d0f74d5ceec5d7bfaca1d7e39917727cc0e0a5fd5012664fd24fe08b67cf2746b1061d57da1640b8c843ee52bdb7848ac02328a49c0996", + "1cac4baedda72263a675136f259fcdc8096f336443e8a49593802e10e642d921a547edd21ca0c3cd3aec3bdb9601292f649b4991d33cf3a67afef579fefae7cebdea326a60a009f51b7a8b8b3c280e5001b3a23c0b70f774ddfc8e515742e6300e381d4652d45a6e83d8d8cb6067fd7667d8fa1003956c7ae627deca21ffa57edb061958c3922be1aaf695d793bc401e5532da6e023569df31fd86984ccb1ec170cde975e1eb46f97e04a249a6b1edba2f1a4ed59dde66922ff98644d251012b3310507282b089" + }, + { /* i=5263 cDividendBits=3110 cDivisorBits=1810 */ + "31e51fea7336f6945b123bf484175842776ce5228b057524c8ac7c3882b47a8f71830a9ad7f938d4cb9012c2cdcdbc443eed42aa2929e15c2f08fe8875bd004f63577889b2f82bf563172fe5b258f22ce52fb30e83adc7d9d6819e9986b0efebeafc16611b6132f32ae945437bc1be74bfa8ef4874bb9f1db1f08a708e1a0325d0c0766f8488e370c2c88b4690fe1eef75d4ba68aa93cdeed500744612bff1a0d54342bea057fb1fd5fc3dcbdceac61d0c14a1fbe250cdcab83c2aef15aa08ddc0b17907b6b3645744cac80bdac83073550b8d0a1d6ff3aebdb11ed0d1bb209547bd59f7e9084eb8993d78d46f607f27bcc89ec3a25df018b6dd9d762cb80ca6ac237045c1ba853a6807a604d3db786c7c809185fc67b6dee0197b0381ce59fda0009dabcd8e3322bce322697c88cb5f8d6d64e5bb7928ef281624b5781e54e1684a6552b1a4dbb3c790fcdec3c16da8f62e786a1b369a7d4ec7873802b8196d2300b8cce48356cfb23fc14b815d022a5d59154a7ea3e2088cca5d546901032fa997947c9c", + "0256dc3f7d8c87c456ea0f42749d2f52c9646e292fa80377b01cca3e12dad763740c94e9395fa7784f2d2b55a4b5c38d1eb20f32daeb10a9ab2b56410f9a66a67263af6a5ef6172918bd63a79462f8c522917109ecacca635c157e4ba45b519ae38e6915e6115e6a38f589c22fea3319d4b6642644c7d8753440305a0ee93377d06b0ededa58cd61d4a302fee894b6428af89de050c860e688cbbf0cbcb67ce4bcfd234a8bb5f39dd5b00ab01894cc1a652ba22ab68ecb55a6027ae830c517491a4d82ccd2eb7c2531feaec51a997e6838192a0dd55009c7badd59471c54499ba5f27b", + "15543ce3b7859b89c50c7837d976e99290bf694f820c252f527e6fe49bc2df23a9fcbda195c826c427ea4e047e095ccaf6b89524c544e9f34adf5b134a27dd4b310f477670cc02c88b46de32483393f85f0ac31f3915f13a37c09147a65fb6b5d0714b43afcbffdd681198f8e61da152c2e0c82e2a50544070c19e1142fdb440d2161651965ae59afcb482de04ea5ab390b97e41757844f92007ba044daad5b541d24b", + "950dceecd42540a4c0d9a3b36dbb133f303998fc731a44084b05ed48122120affc54a3755a779137b9c8c801b47739a4bace91cd64f00d8023b78919864923532d5762f305dcc5e445b576e7f7a71e86de3a22f0390eb8ed6abdfe6fb1a1f5f75a73a581984fd8ecce1f4e2e4db9c99e22f40f632d908b0af1bdfe49c512789e6c1bbe6502ffa7274e539e20c088bdc9c4d3710d50d86c950b03343e18fdaba574f70db647fabb8ee9b1fc73f3eabf3ca8703e6d62f588404476bc236a5a61588680a27dc1ad8b6139bc2b5b99c13e69e6d85e2a428d9c683375edbdd48054d28c93" + }, + { /* i=5264 cDividendBits=1952 cDivisorBits=750 */ + "9a66e5e7b43f7134806d66851536db68180d5488b4225fe20749f2ef8c7ba49655057d15ef7dc228e18d9726d27d2af9032cc8f3a90aa115743d81d0c052af9277da7e3faa8c31cd0d20fa50b3513dab47810abae7464a7a2a83c61d144b69e3326ce2c2694cbfbf4445c82df29b81fab0d958a5298ce9286868d79517612af46ef0ea66423affb54303506aacf5e32cc19c62d52e727db80b2e89c9822e3a5325ece8e3f68b2e94836e5c20de2a976e29487e3af9817c9cbddd34a0c08f0e6976034350055740fcf85ccf4aec2845a4ba092af80c9eb7463b7c8c3d73992245fb927e869793b53747f55562c5cbea69a6bec2f6", + "2ef11b70e54eebe81ebd7d340fd586bdef662ba98ff622f3d8f39dfef45ccccd8a54736788222485aae3bc7ab284416e2260d48241c6915540e6384cba927f725d4f43ef5a053649030310ac54fb0213ba398adc840a5c4492356ad2e0a6", + "034a0a42b4c9eb97d0583c0e17f8f9d3e2df4a092120d6a1fb252989445b353330abb1133173f69f80b7d7666e4dae14de902a16c5aee86e3b57358aef03e67719be3e581360c7c816b4bef453644a78699c593762642a5c6bb97d85986eb5f542fe37963129e6d0cc396387ae1e759e66cf1fa80b4c11375815800bb70c88adc6234053c2a9d6e63db5c4be1302c1ebe63fdf5a501a11", + "110995fa9d15629fb73c77129389c9b5441e30bb24ae73d288f1bdb509deb27813da654b7a7d061615c57ff6c10d8fd12d919ba010f8552cf284fec21eb1a9c45aec7d35148d7b2d8fcc58a8d6fa8208b7d30e67d9d90c06b889940cfbf0" + }, + { /* i=5265 cDividendBits=79 cDivisorBits=1 */ + "77e64ad15eb1672ae2bf", + "01", + "77e64ad15eb1672ae2bf", + "00" + }, + { /* i=5266 cDividendBits=1403 cDivisorBits=168 */ + "065a14a0fdb8bb4d947b85a004294f9155fb123ca416a6fbca2cb10c7bea584f05bb0ee405cd3023bcffc0cb81ba7056f67be2b3819a38bb5bf115d4d01708b0e9644d902a94f70c6ba592862dc03c8885ddc1171d6ee290f46323a00eac7d698c6111d3b41fcdc2a30aa13ba7daef09bd7104667cf50c09502dc71fdf5a9e7fd072223a3523dcd585d0543fef9ee81e8d6a9e624eac35db7dd0c31bfb60df5b0e98892cec5d548501b8422fab2ea4f9", + "6abb3891570dc708f8ecf57ba1f8671573c3612c61", + "0f3c3a9b6cdb20c5cc3fc077b84e648773fbec36e82b93df87e6cbb05bd37ccffbbdaa131888b955d6b9f96670f22be6cf25ed274ced104fedd6831a6728e64e2738b98f0b0f634004257117b35c5f3ee26c84dce3000bf628331a8b0a8a3994d45562eb79b4fec8329358095878cb659c00d6ae4fb530e4e35b8d7dead9276eda5dc814a2f3d564391c61205e02dda8c4d313cd26eb1dba984327", + "5a4809a36ccbab6ce99be4f669bd91037ca52b7f32" + }, + { /* i=5267 cDividendBits=739 cDivisorBits=157 */ + "0797d3546af9eca7f84c01f64faadf0db2dd93d14c5c39b89c90f021d8c60f4734c9eda0963e0a8ebf1af3597ea8f9ba6bbcd4ab8c8f7aeff59964a470af194135461cc0d9d7f537236545522ade8448ea162cea9d51d01c187d8011f2", + "02b00adc571356661268933aa77fdaa8e4858abd", + "02d33d438bca67d2caa17e79736f834139449177ac8dd7d2286a78cb57a55dab58c6c8cd67eac854c36f6f4eec6b4b89530da0e8cf814869917e2b1f230add4d770a3f97c4136cb046d0", + "02683a4a6326f9f9d1a5b1382301d2042f1faa62" + }, + { /* i=5268 cDividendBits=3412 cDivisorBits=1279 */ + "05b305ef068d988808adb8a75f9e41f68fe5953813103d55a772c6dbdcafbd2f17506f13c3f9090563d6b66817c76409ad1127e71953276caf2e0aaada1a2719c85cc75b161ed968b93cb0ef584958ab3a14f500ba0f40e8d19171cafb913d17ea636c46c5d9a2b2a107e72f7cdc7f6fee603ba90224aa92e7f85f6355bd9ee4a34e61301411aec3c9f73e3f2ef0dfeea034230208598c0c515decdf4bad0b8eb6f81098d603ff6335dfab20fe3fca4d58b2585b0efe95a62fa32fe4ba181354694bd9ff76f4643d6e304d31451eb816cb6890fcd7a7b61ca9ae6f30a8b7ac80aa0ae02f7e94dc847a0a75092df9d8e0255fed0952e9ce8179641c798d3509421e37aac6952bc9eaade6323d41e74e97e183eedb54d697e883e30aa690140f3c1f6c8973acd59df8072a26d068d8ff6e1a313a74fa3cad1038f90050ffc9b406ba4f1f256554d53d121ca41efeb9a037d6a989d3b13f99bcf21b8dfd1afbdf273dc652ef9dfa1c8524dd592ea895eba6435c8f7fe4620d990708e204d63e2807a2b449a1e955e6af885152afe4295de75536eb7d6c27b0c7a0bd057170bfb6a2ea91bf5ea088adf3a2f295", + "65ef4b0decce7da04e2e81882db60830bf5381c47b55448ee18c2d2ff763cd8578619a7091a45dfc648af52d514923c89452e0e2ece6793eddf5b85d3bcfcdbef98566c84535da710aeaeda9d33860579cee6ebe398f76895261450874d23209e45a6676aeb3f6e61675724c60dbe2f510b5e4df635da9fb4a379aae0de0be13b2a9a6bbcf8b25fb21a73b8fa394fea688d0c5bd79e22b3b936ab7627d6f9afa", + "0e5034dd83ab59d0e86276c32f1f272aa09b121656aa348cb882e51d24c90839fe4a13b7b987be31218e8510e2025deca12045b2d3fc7cdee95cfd4a60c890312551dd9a1623789423f0c91c239060e60c921cd556ba4f09014bb007770a5d5f1390cb2d7596625f147d5f3502e6ade2c721e9c91f598825f63487e32ffa5d1bd941691fea340bfba194282ae4bd8cfb00290e26739f54fed0ffe83ad01a4113de44dcc42126603db31dcd2595e6f9395a84d7a6be24adf3421ffb5b18db1d7c9ea41b019db0abe67800252a49ddb320f3975b0d441b5a50ca4cb21907b9ad5f91641972f1df4cb56c448d1214b5c20fe6dc7c227a7eb1ac9467ebb740e87bf7ca2b0abbc1962e14d29640", + "537a4ea8500dff2aaa84869e7ec1621808c50e5330bf930f9203a2831dc29279ddb98f963bbd7c085c1407a301691cf97cd1b6d6b001411fbc4fb2cd88b2b31cf817fd276a1c84c8dc6232e3e26bcb42cf6468ae94c5045b6b61e4a72f56bcf33438362119a165fee08f150494382c7b1d4aa29774b7f9e087466480a143794a54c316529dec5606557dc678882ef78e16947be72a7dca4d789107fa89d9b815" + }, + { /* i=5269 cDividendBits=2724 cDivisorBits=2322 */ + "04079d8c7aa5b6f0fddf5b2ffbd4781c512ed8915a1e3b2e5510dbbc035f98276e5e96e808bc7da8f9c23cdbcc45008180ff3b9290c92c2e05afa1d6a30097190850385f9167a8472d11b26af028e42f74f9903c2205f7d6d12d54b4cc0cb4df2db7d063d0aecec8a3b9ac4504b6563d64194e76b317422d3b1bc2b3fe3e48bca5e336824a5aec15235e149e08facdf3ce9c64544ce1efefda1620423e7d5b2df7f3b755b62969e0012aa3083f6cc2b264938f82600ee1e538db7d0c64e08d455edf597604ee91f514d1f57f7ae6e9ffbf7bd74c2c1cb1e99b08de2dcb642c99759361f2bb8e96b1832e0540d0265a3edfb7078b74cbb458c3014319e2dbe632e1216c4bb2c272d6a2796a6482950ad630ead552795b3855546b68b0d5298cf54b317efc92f65aba3619d43a7a4ec01fb41b88f595b0d66d96dc79ef9e77cd32268679f42e8ecf46d985e59a8f09f78a702ef8b314", + "03bf2e8435018ab53077360f330b2a2faaa1f430164b32d08841dcdd87caaa780cb974b634f0a1dd135db3774e6333df2e83b97334488a56d4f2e2a301fe87f60f276a3e210399692ce951eaf19ac256ae476339dbfa913ff0fface6af40165d1692d66142cc3074dff1926e0335e63adc3b6208660e3c87922a9d8962499d50fb8f3cec9ea27c31af35c3e313e21873964f45f4008adbeeeef0f12b7c8e86b947a0b6cb555132735a6e650cabf4b442aa11c6ca143fa555294d1629a0c46939f2ebbda08a6e0832bcada1d3e3f522d0502a15730c6173ecd5ac8e701fee69c7a3f9b87a21b59048f1af8b95f862a148e2108fc17383bff42786b91a4d910c1bf1586eb46b034013c409e9ddaa7336ac0a4835ed96820b472f1d4cbb1239d90c39c56a", + "01135506f176eb79e592c49a12cb55e8ff1f3bdf94df076c072572f51a8c98a469dc0e08fe2d764a9a043dd60df8e110c917ec", + "019fcc28b3b762ef1bf16f668cf87356714353deda3a04c055884c7b202325ba2653f0d4690848ecded8e38d055a8abe91f9b48ee1308f5164aca19f2b8eac2cf12417c3f049e0bfbf67129e56f6386268d9e0fb6ee8a5a8aeb862765e6d3b20185dc1b69db5149d983815de239d9c996b2be2e7fe8303f6308e3b1b9059eb2efeb0ae2f0c4c016b4e96ab619ebf411eeddfd68f7e552e121c1479d10ee2412207dc1d1754fc924b900ca4f9a3b3f279a9c69a0bed59a360cd33187a82e55f2df2d5dbfc061efe120ba382363129e56216faf5368472ef41ab7c4d1e914a92d36ff0871e87a33548cb2b3e823b693577033ccd971900c8c9248c82ce7aaed35b19c959536f5d037d99465afb9b168ff977bdb0fd26ddb333f9f6439d624e6318c02f5c" + }, + { /* i=5270 cDividendBits=1740 cDivisorBits=614 */ + "07deb6f5b266745f255cefcc0ea50516c2a38531377ffb97bc044b43d935fb675967f29726e75f1679ee698f5b3e4a5d7f5c4aa656e222cc318e30bed6ea9fe6b77710154082be936a4e579111565b7c52450f88fddc2078f29f4852637353566b2b376c0d7527a3b8d2cea6ea043fe4cdb5c5568007e069f64a3941849286da101bf756de606e75ef35e49416dcd013288ae8c1b9426a068822674a505f6e351abadcfc3d287b3e067943af346858041c2a4146354bd5371de931912bd3d5ac0fe59f0a916dab000f0bd7f9ebfdd1dc8345740397a142e3384b", + "15b6e8ee1240a98a27399ed7855ecb45fa89c0820d6c739a4ad64c78f9ca4f99fec8a8d6f0d7d851cfe415c7a4c53a82a36ede2459077eae1a7e03a5b0da3d8c642e8aa6fdd15d88aa11d29681", + "5cc8334f46b84e90cffd44b140a5ba86e0370af39421390fa389537175683ab1dd778353f2f84c201a7e2d8b16a9eaa59a53c0a9601aa7a93dc4bb182bd73d7a082acec1cb4f40e2db15564f8b5bd2309ca2afbbaa71f2678e89adf24af8b149d391e6e64ee901030c68a481b6343d7d86c2f960131162f27fad4922973d03ef9616248bc88975e1964e763cae", + "0dc909a7f14e1f47b3ff40b2ab8e393193d5730491aba511f5b335187f20f08f6a4795546450a81d08b0a86ffb030cd5f6edf8bbacc4bf565b8539f49fd3af50e78221800c10f5e6591d04b09d" + }, + { /* i=5271 cDividendBits=2496 cDivisorBits=511 */ + "eade98116199927b82141c390fbb0541be745f5f1854e30dddad729d883effb8232154c11ac178688249ae1b971fe44f559c793212770e8ffc0e29ea66a6739f9b2cd2f3262fb2a0740e3075cb870a129229de036bdf21045a83dbc3255c8e833cc81734dc5bd2f7de52d7db23d8b97a246bd0e79e28696532b1aa8a0aefd6c9e1c8896f9815919490ad600ada13117741cddb2e74fafb6d9769e66b612d16cc2436fdba09d0d367f74366f9a4285f4632d088d65ebf3c17d4296dcbdaf71cb6312b13f7647ec057e3200791f2bc2d29b84799965085657d230461b7511b1e042c1cf3dba88fcca6d7e19290c2f222f9afdc3757e8a25030015d12797abda73175744df3d0fe68659d11692048de07af9c68f9ccd7cdf37e9823caa99143bd911606f899a464315bdfc3b8ca5c3adff2d729fae7cc30f987", + "620d7b671df47e1b6e0473c775ea14ea4682a34acf629a89dca25830e12f3babc4e4c156b4feea74a6722bae2dd72af617f5f79036839ce061059ed380def9b3", + "02653507454fab7dd66af3d01ec9fb525fe266b54e95e05e623fa9c66faba3ce5a65de98f7ffd8b4717e58133e91c98767f1f49e8fb30423581ee95ac8ab1f7890da8ea78c0a487d3ec1391f917ee9c097d9fc1d7d6b1f7b874a1517ed5207b36164764b4319191175fd856f12c029fdda331a367363866814eb5af98a6cd789d8530e3fe121e8191c80c3fa131824b65095ad300fd1b1d6aafcbc2c6e1cab1d35d74ee3779cfe3576c76b1346e13b82addb6869dd7d88757717321c6bdfba80a80b656df4e89436e634c7276f1ac5451afb78431b60b0eefededd0ac732e8e1823dfb718edded0d50b4fab2790bf87c8596c94c690ce6a31e", + "230c431e5c9dcf474fb998502b2e97a5f7b718372b79989c6ad5a23db7278eec825f3b1befb6e24667459447d9d2d66a768471a0128dff004b2fe89cfe40bd8d" + }, + { /* i=5272 cDividendBits=2197 cDivisorBits=1595 */ + "1b1c6eef1a7e29cc56ae460f8ae7408a21cbe9f5a9604f39c7e6c506aa9328ac3ac0d5f1e35d9100008bbffb17c00004193ac50e238b6f889682c5d69a072c49225b62d18ae1af9648ab036a0d5de83aba4a63ac7f14294141baaa51bd53d99a68f2ce17354b1c3212d2e8fcc4bc8e47c1bcd13b87619cf356b20da5eec55a3660e1a99b1807506db28fa8549a99ee6149f98f9bdd193d87e7146aa4bf4799da97eb6fdc203b8521171745109b591263b02e3e2b0e79c63181108b24954c048f01643bae1859633821d5c2a2f5b9bcd999b863bf7e90446457d3c39dbdbda17466582f23da4474eae59a1b7b73cf88766ccfa092f74b428039447ded5bdd478d53f390ae03ff95f120b682315da7533a63ec52", + "653c39b2f5f754c631771da8cfc0ce19aedce01b6d61670bd1d683d18bd0ce60e02be9d4743360087a8cf074870dbf1c6ea8b4a8ffa63539aae7bb5f0d42167eba469bd25912781a5941760bd24a3a4ce3a2aaed0354be83cd1127c989be8288e2ed1d893273a8eec7be609a9df844935a86a3fdc9a7f148aefd1423ddd27b653760b46c90f590afb3f202841554f1f27a9e19650d2b95d211098d5debdfcf5a247da08068f095f7ff17102132aff80891ef23da8a76375d82eff75ff16a944fa5b7b5c1a27f0e", + "448eb6948dbe59386738bb457dbd54ba19f7e0fbb48296e30692a90e7edab669ab0df4bc539f1487ef624f01d7310f17a2b19909f41386eb9595efb86c465f6d9f8740490248202dc64de286", + "158e545af9c6b21ded76b20943e31066d47bcc0ed4b9344635508603acbf1136c9d64841ac33fe89f11ada08467fcfa4b78695e5ae6aced8882c1a330e7b6b11f13afdb3a00a358e4c94c8cd08ded5cf2531ac38e300913800a783ae6f75a0344ead5c9c7b4f1ee3e26ba1f45a68de259f4079d4cfa3d2db60e7940565bc8c07736689defb17cdaf6461e709cdd7e9ba5b320409d727ba4df6b8507f51f660b9d7214306ad0a98738914b0392fb2678df04e08fc53ddce27774d7b7d4064ca2da007a35ff50efe" + }, + { /* i=5273 cDividendBits=1134 cDivisorBits=899 */ + "1fe9bea6929c13e6d209e45efacb891c42a48328b5c60abe59564b7e44a647d046c067ffa20f614bab10418ba8d88b286b1f2de97dd9af554391782b432311ed1318fcd726449c2dbeaadee91c8c55b9534ee836ddb13a1dc5e45765fb74f721727dddb43622f673005df36333d973d32e2cb1ecb9a25e2f598a24ade5e607c65dabb742637b0c25071c9b865159", + "01a013da64c15b136184ecd3715b08eb71c25c5c396c468bd6e0c36b96b7bc48b3d239fe611ed22b07440fbdae42454e8784cfcf3fc4db532aaa612e9f958dcf78fcc75790fcf07281eed42a8e94af67bfa77bf8cfa031db7b74bc37827284995af9611a248344e4a4f962f247267c69d5", + "13a29920a04629af422bc72674bd9aaaffec9f2290b4a5b683bd706f0183", + "59c4b745160f48b4bf626212a3ae00235b6ab2ea2013cff809a770f0eccef0e06da38a60a1ad926986bd9ba59c923efc62c3d907103d6465c3ac8bba65c4bbc48d807597ca8fb0fb5527e5be90a06627418a76c4d9510311a4ea81fdb3d154fe7c12005db6c244894370860d5a17545a" + }, + { /* i=5274 cDividendBits=2416 cDivisorBits=1103 */ + "01c795078b257043e05161505cad2442b55e9b1cb753bda29988141dd598aa5fba48fd6e8d940dd4cf33a3b718b03c1f4ac7cac1c4fd7601fd03c6d8c70cf8610788d1521676bf4225fe505ef6b601288b05f0e8841732930560160d286360ffd43b315ab1304fde759ecee36894f88c366d524b03c3f26d6967e5ab47669b59990e08f33bc940eb195de696f707bc39302eae8aadb21f8c511c1d533dca86ac6b33c2796982b16809a9bec7f58a8ee6dc3de29e175f615bf48627c8efe5ba924b77b419209f2ad3c41140d08c122ace8d2b99c38d278b52e86280eaece66726b4c48f3c4bca8e2dcd5b9e5aca2a4e9bcf19c9328ca167d3503fa87f56d505f170981b7f60ec04ec71f300b218450558e0ffcbc1dfbf4709ac2d21046c0560bffdbbc29582b819d2247100e3d116", + "1f415877b489111b251e89e64df603c737a106d8d43af7f1a9edf33ddefac5bb56ca1da6221a7cef4cfcea81fea46f6ee4846cf870fe5e47c5ae4c9dd7db5ca7d2ed00afb343e7cea6aa9afd5bb119ff362ad5c9d9055eeecfeaf474ffd7059203870afed229964c06a9da3c8994dbbcbf81f9577c70768135f6cb04d7c7b95bd3fa1b46ecc3560925b5", + "0e93805634038660e71b342979111d437302288d8d8aca70f1d347cb1c7cd2ceb00b175df9ce26bd65d83c08b0421191d41db30f0c4d20835870d70019e8fcc262b3f3336f9dc9ef7ba383a2ac117e84e1ac3ac34e518c06264763189183cde8b68b8a8964f8f4852ea13ca22a4acffa73cdf85573b9961ec9af32e3bb1249612dd4c40f4afa7721b0c09fe545c46cc7a355022f0152c916b4ed331b09917f6ab0224c78", + "1db3ccf1677fc38728d2d6b037c14355bba4ed679f6ab7d7d170292b1c78b69def487a640171e428c56beaae503b645dc53dceb6b13e17cada959589eb43521e4f02baf87883924993948b5a344d982e51724743035ec2a8251b15c4b5948c64e77319394acf256e31bb1fcb35df3abdf1ebc01a11e677c6f85cbd4eb049fd1b7c07a32e0c40835e683e" + }, + { /* i=5275 cDividendBits=757 cDivisorBits=459 */ + "106ebd97e21f5e7708955a8964f295ec9158698730ed2ab307d7fcbe1d78cc3f71ba89eeb741008a8bab509e118f1e07fed023c74abd6ca1ea458ffbc79b963e0b7849e9a3388591ffd843899e0fb5522af08566135c30e5cea5781252b951", + "03bfea0d9f9e1f73b92ce3bb4758cea068b37dcedf177e2a1397c0fcd1e1e2ba365f048d8281994997792854500a1c0075bce3db80927d84f440", + "0461e5ce61839eed1741e1ac7e45938bd66393c747319c50fa759ba69b2120c55660a75e9df1", + "d4d64dc9b10fb47f55935bd2dc46311c0425e36847a78296ff972d4bd5f9c97a6c1a87e9b614fc92d1ebbf21430dfcf2f64f7bda6deedd8911" + }, + { /* i=5276 cDividendBits=1800 cDivisorBits=1093 */ + "541d32fa21ec842790926a064778ad3b23963ce86ced183e2ef847d5d5376ad4d61cf1f3a60a6c9cc7469fc3df153f0072c9d486605b65b43dd48f6987578587ad423f5720776a9f436aadcd26687e9d7cfe2d74f88396be1b70db19523a93395d215bd031fba83cef824b09c04194bfce335ee5517c2355722865da5c18db921ccdf39671ea1414a23060a60b7643d115ac90422c36ce5844342e68068ea510b53afad79ea859d9fa19e34493617e6660f2eed93894dcea21b50ab9e1e4b3f35903820e2b4690261b2b7d27b45b4065cb2744f93e9971c080e8eb72c68a323fbc", + "03a001d0083c89e61c3b11601c430e1af4fb0e410503a09f4305044aaac0cbdddb04c54a20cc77b5e7bd8408e5818d2b17a9f162f0ec0f62bbbe356db0c0993fd35594fb9621d890139f8ff5eda3f209cc060d414d34c8e5d9ef882deacad556657881e9e08ae4c8ba7396f027a97f05c3fe0c201ff8db31f9873da23f2c4a2cbd0b1881c121a558bd", + "173425c534828854d330396c81f4774e52b2ec3c4029c3accb58c133ba9a5d909543c5e13698c94380e92a1ff996dc49c5696bcc77164f51f268752cda181dfcd6cf6fd8fe26bf010377ba38d49922ab857e94b811637b1078", + "0135e1d983148fbf41738d39cbb248c081a555eb3358a9bf9b07004f67ab2ffab689842899810bce21b9fcc3820c756628a1d9f69d761b8cf250055d54e7ad23d63ef39cda14a7e0b8bf3e1cb354d411ae543e659b7896473dff336f9da127fcb6d696ea46a7621889dfd6b41e34ade9b9d52994b5f110d8c3341a260a82608bc6be7db5d4b555d724" + }, + { /* i=5277 cDividendBits=2560 cDivisorBits=962 */ + "3b353bd334f11d75c5821c8023011ab976bede796ff323b57bad5e50eca5975cdace4977c8739ab7e0c2430b2c0c657d277b01b61f3ac78bd3a42ab458c26c09d50db8eb3553151e3402a6b01dc3bfadaab6964f67e467e988c6d5705da29a8eb62caa18bb0e5db261bd6f39bc17e6554bbc5c45bff5fe2aa268068d026df29291c36afdf1f43f359e08273383a12d965ecf9691dba069b2226eedd9f49760909750762581787f1b0aa9f7ac242e32ab717bcaa412578952a65c595f9486308088eaf17ce728bcb04632bfe120a6e137c62a1b3936b53d77840e4ded4961bed8ce17405acf7fcd8c80fd9ceb486088cc6ae7c3e0231555671e4e297bb3768153efd14ec10162adceecd99a4d5154590e32710dfca8067a1d926ab453767cdf59bf30221f8784b4e66672b942f5b31d97e5af5f519980b14e94503e2a138fb7bd", + "02d033610d31b6f693ec966f86b7f0ec3100e8eabfb674e4f8117ab2192fe4abd56f40acede83edbb01eb199601c7087e5b79479c4bc19e191914799289ea8ac831f52d0be6926c8ac8d914623485198450294cfa601ce3920914be6eafdc0c506cdb89fb6620bab2c134af1444b499e040239e11ef87b41f0", + "150bbca008daf7b15d41decbd6bcbd7f8ca20c87bd80f5063781d3c3e4337557e286ee22325bb8271f79fc4634a7372431413108c4399f9461a77a49a3478e98ae70c0b66398d5678fdeff90c03a8c64e56c8ad23caa6d41cb43b9a58c27ad3c5bfe8b28d97a74db70c9bf98116f91b00d048ac6408d6380dce20c702e1667080c165b286c806b0257a50b9d4537eccc883682af4923f47a44ad8911cd625029d16958b323fdb718d665b644246270c65489c2f53d9661d5e568893c4efc9ed369b516c74c3bd5b3", + "b03b27b8247f3d3dc18e87becf03ff73110f5bd511cb0c5fdaf9cc1e37d66ae9adb56a5eca60aa0a5b4f183a14b6830704beea1afcd3e6f0999381819b19e198308c6c73b55be7dc18ae9b2f6877b26ba9e0e3d692b201f1f6b5affb4a4b0e6212039edbf231572eaf6171ec9d47ce0bfb7653385533eced" + }, + { /* i=5278 cDividendBits=733 cDivisorBits=430 */ + "17a02aa04fbf922bbcaf4f741c3998483de180d221f363d5689f16fdcde485282902a4988184bfd3d355650a847d94a99b60b8c229a8397c7151195217ecd55ef9d6c1660c4c95c018d32acbdc241070fb063f74a375db6d842e973a", + "0a817c8742316e631ce441a569fc2be4a4edc9ca02caafc5e30044fa8a8bbbd4043723444a73d9d3369ba8d01c9d896b92c5476e2f75", + "023fb28f88412f0f8d41cd8b47396156ddc71c182029183ba707a36fb08403007e4aafaec941a4", + "01e74432118bd625d209c17b31be079b86e41d61ff389983c1423a2f693c457344c2f81259096e9e15ae2b15814fed358128feae7b46" + }, + { /* i=5279 cDividendBits=50 cDivisorBits=30 */ + "03fe71d3c58e5c", + "301ce251", + "154040", + "0353ba1c" + }, + { /* i=5280 cDividendBits=70 cDivisorBits=21 */ + "1826da03c99801f534", + "1c824c", + "d8dfb715eea7", + "0a4da0" + }, + { /* i=5281 cDividendBits=2902 cDivisorBits=488 */ + "0c98639520a4b8d3d79cb2c182237437f889c49f16890228f3616ea6552a1371dfd6e0b55786a1ab254bf759b77a0f8dd7946927464c0b1b3e8e40b42737843ff10376a2ba4850b8c0f1cb37d58522db959b26f7dc8e80e1c3fc63815b18a341031bcbdbd2044f7f8efead0f04b5e00af6f36b6fe874625a5f2a9045e9785e2fe82edd96ef8962d10350b599438eee9f213a1e2a396f0139e5a8dffe9b22cbc1b29823dc065d728160e0379aa1190c63b07f0d1d0b4237606ff9b4018956537ef2f08ef34c3ac55fa2530205306f31353e092d3410a700c56d8efe99373a0b0867248b21e52698b0dabde61d41f90e998943fa05c1effc86862da6468dcc49fa8ab11b73ae468ad18493f467f0906b1e3462cddc905e43228aac24873056f1727d6ff3a4870db4d63167ae49ed34897c8b0260693c3aaad6aba2d0853860e3184da435c15a236197eebbecf364df4f2b83e96ace7ee75b2f807c97ea8e38e3e06c6366c9afae6b8761851a", + "b248eb102a4dec75426408b404b88376d6e762c24b42b81c88d86e882babae7dc14553ecb87bdda1e4552b9592bccfb03e99265adf179d7e9d0fca2f2f", + "1215ea28495b24da2c968f8949765612c8338c7ec83cee265aa5b3d51d9987366ca8c7f55ec7bfe24e1abf95f0ef2a58667722d3cc200ee7a24f816475a6ecd68e5a9f1da067de41c42f335c76de6c71b0c9cbfafd6e420eead50914b8708195ff708ca1edb59a3a8447444a056fb30e31a3e4302eabcafd35424181a0a290a0d1b547fa97d7a3513279c1d8f7d032e3ff31f7474726f01277fcf9e4b45abe1ef285ddc348daf6c58f3a0a70ea603177c13a11a77c13b1dc1b9a79cbc1b3d0e6a8f3065de9c79c9ee36f81bee4d3a38b0f55951b27b5e3903ea39da775828be58b170628e5cbdaff9590bc20616c42ae541348fb8d7525bde9d08a56b4cf87e4a5f1cddf4145f899b2635f126c478a0665a2ed51c30f4444621fdfdd4fc12be679ae37b19460a9e26bd128184c2c", + "48a422537c7d67d4987aa4b232b9eed69add73723d4b356748acfb6f975c41c68d8441498ad4c796b8d34dc1b62ab5d257b1136c687b8f0e0a06377506" + }, + { /* i=5282 cDividendBits=4055 cDivisorBits=3011 */ + "114c2bf8dee63b9d93e52c571d8c07bd646f37dbcc687870c4a4a009238ddcaad9971c0c8e807d4447e52ec05aecede7e14e3e7ce3e6bc466d0bd0a39fc559a5637ea2dc9eb081a801b66cf03e51860f6c1bb187719f4e0d2d3d039b10b5ecd175c6fba3422ba603472d06fd7b91fcc0f81b18f8248b0d66e0f759e5b70f453d2b44085d0b489999fb49a2175fb82f9548cd9efd01cb36b72a2631815ca3114dadc2862c9a899bc6f9bf069b99aa7f0268e23d3e7aa7f55da9e832db4b2d7d73d99f99d9dc5a5c93c9b45ea7d6b12693e9430e42fb1ced34987e99dd08e470c615ad03c966599eafc2638b93a65381991184678000851775d772f31508282b982d42a62ef772ee08882b60b96a456dec95b7c219b43aabbc37e7847b9cb149789c46eda0cc64c4d9c1f50a1388319efb0ee5c71a65cbd31dfa7d4ca33cd8814758fde996acb4f17f54951c6ff97c35c5612a7c3b32ad5e7bc3cbe61b998328adbab4d4799650164e12fa3c5e62d8001e3119a78cb4f28a89dd4b3be84b1b9724b38c2feabc0171dbfe7c73242e2531ab8f9e307eb96c1f316c82c9820a3fa3741d3bef6b55cef3430a61a16dfcbbfc4a55a20aa0271b138af40a253cf3949de478ebb6add69840848aa0aa51a68b16608f702cdfabe6d7ebb069e513b4a34624ce4b10338f3a64138a4a2d90302c7ae66aaada672d93e2dcc3038b", + "9fe0cc2c84208fa7f8458a612544741f44e83ee8cabb758ad762d8bb5ee808bc219eb642b1e4edc3b4d920d6cd0e7c967cd8c08d46f6f93ed1561bd79f27a848c1983b8d172d0980c0396f2bd88d2a24d3ba515f8ab5a6ae3ea2197fdbb2c3b8d37e88f502b456aa888aa55a035d79e70d9a5a7e5fe18231d57c463fb5032e9e33f19eaa0224db05b5416d1cb0d91cd5a2a8f9d4a23582913c354ac1d11a61ee9bba06deceffd54b50b03f58c3dc222b753589a3a6c529f932e7bd766a8693c1e6641fc37c59cc06c639c95cf73eb9f74e2a0106a5cd7caf89702db1a7f80b50befc30dc0cca7b8e35891d44870276e52dcbc7a6dde4b7bc8247b77793bc1d792fd779be61263a239281a9571f78361947ea5a92ac664fd9c35e05ae4649cb8b059c896eadd2444fc77f7a5648dbc8bec4e84f55e6cd68f1a643e2717b71b4767ff4c596223a5446bcd9b6b2ae733eba0b24d3f92f4267eb4fd7cbb9dd9e9cc809141aa771c0aedaec4a38f0a90579a26d97f44d68562036", + "1bb279e81c7a1f5597489390b6ae90b8d3a7a9bda3c26c6d9f1183fc034dd4e0935931c21c522312526b04252373ab6fea28e28f8f5408c78905143054a94ee3341cd70b3e826fbf21ffb92ef9385e85e8883e52d37c2221a92e23b14da30de3e942c3cacb6d39749f6c545be9133c2d8a979a69df31efce93b3af25abe859c461449c", + "3527468dcbfea27ccde3eb511e3c0f99370cbe08623390a3c9638ff63a7a5f7615c137d5285854246c1e62e8a9254c348d7a83597bd978f4912a199745d1a6b43baeb15795244c1bd88d7aa05a6ba10a1c7a9309c9f28c5d67656c26d0b9dc44fe00fae77d720fa72e1154d3c58841dd7a5041349f9e337ed432e70e5dda793e478b1777fed18bdb056ae9cbe9e656e8065db8f318f4497a1aa16fbbf543df14f272df891aa0157da0b17533aa199445e20f9ddd76af15377d9e2f8e1697a8442cf7d59c7c820469e0320a25638a61e1fda1191d50d9b6e4b7f7786b2b72bb31a591c3e5e7555b2b971332a1637e9d08ccc73bd94ac6071d88e53a400ddfc1eb732aac8d52c81626aead8b80fa9893bf2282feba6adc1f1b3bf49d7f6880bd15a83facae24917d41a97b0401e804805e536ad40b8bfb1df1dd0f3af180f4cc88fd6848a26a609f4ec7fffcba4879f344923e2e444746ce5d5e05724ff2ce87cc02f779712e3660bebe0de87952e68893c74588eedb430aa3" + }, + { /* i=5283 cDividendBits=3215 cDivisorBits=2342 */ + "0515ffc9392b0eb1497d64ec85fd48ee92cad995123430c6b209e2f1b2b8a65b73e4fc2f1e8fba667ef17626d669cd284e01043d2d36af0076f97d746bf5b5612bcd927a2fecf214ec1218dca2e8e75dcb0c534a69f8403592212c737d9c5e26eee593ca1d100699b0d91a6f3f3c16f566f899bf1c31f1f83c3bc869e3d7785b621c72c61f46eb70d07b9d8d11a99639838acfbac7d8cfbc32051cd6c898dcd8009359c49c7a7816af220f72267ddeeba1e7333fecc7ff0a059c003fa5cc726ea2c0217448163f6fa8c2c107f4068479843846795f0f70d43565933a988ce06dc249c6a6dbf2b2689b6a67a68b22877331057e6b2112e0388fc4c5ea395d3fd538727f891687ff32fbf52637b1518c9c4f4ced2dfb18ba95d688d2247938d5f603f0e160bbb9f4ff77de6067a45e478a56e419fdb280476987f72e7b6fcae5ff31a124d6fcded31270f9dcf951c1ff2e4684cc9957a34e9ef36fbc48aa6ca54fc570f63ba96b79583e23c026c22572eeb620f4004c4ab21124c493e237ce702201eca9290b06e25c345225ebeaff2dfda65a", + "26b5f5ee45062cf798eb10699e842a3266f75b7e9c91e492d6cd67b1d9eeccf754c72490c30b50586b9251b19edf56cb7fde05b2d3dea8a52d62f381629a355e0290f69574d1539ac542d2c579d068ba719ba8c10e253ef72419fc80ef592b0a7cc330e3da19e64d98dfdf54b3fc9cf2bf9b2eccfef34a7a06727b8144402a005ed024e351df51a8855bb00e32a87b04ef289a331749c47ba7aa96999745d75b4dc149acee5351ad8d36ab7a9c4746637a72453eedf8bc04aa568488bb009e8cf0ad512ebcf88caa83a9b64ba4f337a3179daa6252aaff50dd1ac89ba33d234b84d0158c344ac0c9603407da525bb4d014ca8c0ffd79f55f376b2bdcd2a297e18e7489ad2de0e5ed469100e18e532b2c16fc63cd4f0db8a3bc4f2333d5152f73a1ef3eabbd", + "21a24ef0fb1a914d25b56e37df150ab41f0000d38ce806fb99bb07c0381e534b51893d23af3aca4d6d3960d49ae83b7940dae9947afe2e17fced3444f511e71fb83ead14673b01b6f0e897bd4e5c8facbad02c14bf60e52b1258fbc75ff3ae6d45dfcce462132f028dcc0abfc7", + "1254e0dbab84e5536e5daa724303de813e139793f6d67646b9445b9edb44b14f9b3f2258a836e9d92e30599d30736c4945ebd0f1ce163847e1a1cbdbeb36efbed26a2cbbe8005654eb1a206cb66d8513db3262fd9477cdaadab2ba17d895e060a86bd86489f0d080b465dff79bb27a9e93644e016284bf9ce00adb9cdb18f69722131cb2da6587e5c9c3280f8a97de62a1bac1d3c799679aa9882218d028d47337c7544e7253e9f6d1825c6ff3fbe22c887ff92ed1cc8161222e83fab5165629f6c4776499dab36ab5d2d8350df868345658368a330a4765c85e50ab8567779a96dd27424c929aa3b3984222d2da49f6479db0d8e456d84888a04cb53c9845cba05734f0bc4cd347feee09c661ab79805a17c943a8b67e028d1909b136e63adc3820c2236f" + }, + { /* i=5284 cDividendBits=2482 cDivisorBits=1243 */ + "02523a3cfec44343fb6fc3ca9dc3109e73c3c00c2a0c38a3e0fa92449e5e7702172e77ae4887e06fdd382c07cfca15ab2c153b8b0c03d41c46c31f72e3bf1fa09064d97ffc835818d669f943f3c1017f406dabe95551a1e9cbc419e5a611b29c4f3e8c20637eef62f1c66fd1472469b83f3ed7b93b3db9f6c91ea9b663497741706313fae5ab6db74e62f7adc7825c1487d510338b3220bce71e853f31d6f68ef3d7925c8f604ada5ffd6f0b4d0ad1e72e6addc96a14a349d05160f91500792d16ce833df121e1e0dbb6e2659cffba43080e0b2644525afe31643f628f59cc375803eb3a202e66418bd1256ca9efcc398dade23468e13009f4bad87b2e07bd63477d385431ff81f22393e9cbbf52a39afcfb289754ed216e3bd4fc2ac2804bf6cb12dc473b59177013219289805248d9d226e2629eec5e", + "07aaf578e40764846feb5e90388f59d6c1c18d50a39b962e52120345020c553af93732b6aac21ebbad8e5b818b0404d2fcf3d57f88b9f9de069346ae5a1d8628890895fde924fb4a11b606e66b4792f5ae73d5fda50c5fbd8d8ee459b8a327290d65c6b6aa3fa054a932ad0b0e4c63e159172581d70c009921abce2db4ed5181221847fc23d8ec776e6ca70334cee194a913186440becfcefc5ec6be", + "4d7f13cdec9f4804bdbc05adf82daf196424b8298da9ea42894a471cbd67b2842e0edb3de5761b70ce3a8c2e88109ab8effbe17d5696a0514500602fd19ac4a3c28bd791b3fa47cb6b1fcff858b6a5640d047f6e1b3808340fc0c061e80323a479caf9500e24081aa6de4c85f8d9f0cc40c94a8d45fdb6308bece7d144369b613fcd146c0b50b6fc56ea6ae1ebc0876d341070b03839334b001d94", + "05505a5f0b543cefc15f2f1e69c808d8f67a4d60a2a989fca2f4e833e27b8854af4d1547a55b249de1aa1fc357da6889d38be628dfc224fc5d261fd6d5d4ad39fc472c30c61152bef42dae22be6decdcfd2412f46fa5ab470d04a543ed6982c2672f4d1711b25fa9b0c5b153e5807c4388ac911c6c6d550d12fd6cfe1f91de81a8d0732517be999864fc94088849faef822f4930af55e68e15508086" + }, + { /* i=5285 cDividendBits=634 cDivisorBits=548 */ + "02ee63ddb121cc32aa682c23df7208b7b043ae0741efa1611e5c5578841370f175f2bea2183d5b40fac5af4cb52213b8fe1e8953bd54aacb8c08b2465c395558db8c850d9c3e28b3317b53afadb44581", + "08a3996a0c27b5aa82b88fa697272810cd1419c9ca2672df6523ddb1a579574cb9fb7a20261800fe8d482e79c43168c7e7828dcd6c0ae772d89c827b78a6535a1a62222df7", + "56dc336bb0f59bc0511ca9", + "0879315f98cde627cc5b7fcea7437c8d668ce41198d34028f7811487593ff2505bd39c8081972274840fa18badc9f820c43ec3bc3d8fbda0c8a68a551a03280eb25cf5e972" + }, + { /* i=5286 cDividendBits=480 cDivisorBits=98 */ + "65d055ae820578f9947637cafde77be6279e19123c41782dc8e8e46060fba817477dc8002f1391acb3683cda8e3ad2141bd7b844821b560131342c01", + "03228d02d3be934e10c2f1c328", + "207a13d1533db8d89dd50bc755ff00271c0106cc02c54c93c5e4e32bd0edd5df9e35b8b973dc94da4eb684b412918c0b", + "0200b06651b4d48de4406ee949" + }, + { /* i=5287 cDividendBits=2679 cDivisorBits=1838 */ + "531f2a8146163aded65be0c62b1096ff9c0716eeee3b37a896f21bbc311170ff56a666b78c180107df451a48e7193d50124fe163373ffbe8789aac888b4a5aa50d68aa84e04de63ce33096ee9a7b435df41ba2233d20649627f0db8a430da398983a2c8db1e9701aed346640087d8430bbd5b9fa7d40410bfed95a5c84c7a5fec219aa18f4ccd4ccd13b2f4087cfd2482c9788f8e85e46a36a4da198ee5d8d5c15fed6015bb00aa54b5363346f87ae181a132684dbc562b29ed95bb2c596915b77cfcac1c03c6ef879f7e72c3a79fcce7a7117911365035c2831b741afc230d43699361803e787de46f61d6cbdb7f4eb315688e927a83f0fafa386f2dbac835f7928c1b471db97e392f4c516c335204d54d878cd53a7dd0d5acae85c84f12af868cdf6315fab3bec68842f7ff72c31f8f080bfc2fc2cb58c9fcf5a34dd81d5558ef72eec4f6f7d5da7bccb6019f421", + "2dcf211726138b46651b34e01f397216667a45085a51feb41348c58f7e5014c2076e2d9a3d66cf377e307823624517323a9e76166f392bf6f590bc819e3eec5f1a69cf4f6938f9ee6bb00f8ee5d29289da88e1419118e26ebd35fc0eba93c7e445f561aa336988b3a997cad2b543078f53c03a791cf5fe16e79eb21ed4bac8d9ee7ac1a37f53da51ba9b3b6bb84510765b00367d741c700f2c13cc047e6fb58657cd4fca92f27ee79b4273e44907c6b7445163ec77ff81de575bc917321c0306b29533cd6c510b4985148a1306a360ed80910153d1e0c8c8415af75823d2356c3bad8bb3bcd4", + "01d084b14e7bc6c2e8b06d473c1c10ae8a0a3c378de21966ea50a50a5b6264feebdb938e756bf2bbbc2f654624c5df12f5c4c57b6be2d8809914aa6d3131fc1a9afc9f5c5c007c22065698792163ed739310d155dbfe1a09665332fe751e3ff482c8a266580ebb18c5b5", + "1b0172c5962e1915a7cc03c076ef0a90a6588164128a26120d19aa06361f27b0cc844ee17ebdfd8d8876006700d2dfc56fa272b2831590a87e3c55a57ab9924ab7be4de7f48d65bc50bd2f7ca8368744951668d7f862dbd3b11d67189e0b2afd8e86c3e4bd84ddc75aadd0398cbce638781fc41e2ba56c9ee6733ede4128d790a6bb5baec8701d21ea3328cb53728b4763ae614f4cb3a44db5ca47aee604655945042a5c27e1501f0467ee7ec9bc632f5c6f43b01f3d4ca6ba5118d11e3698b9e9e79b638f199f7b42b9ef34880f1c8604d2b038dcc3036b08330456c6c51fae6735b9d64e3d" + }, + { /* i=5288 cDividendBits=1726 cDivisorBits=317 */ + "171f60441bc23e928e7fbed73fe53f92ebb74495c45acfe6e0046f8982fd3f35133733aa49cef0be8b02f01be3b05553c896b37b0c02cb081ddc59c3eaa3662c340ce5fce2cbd197d4af46c105f92aed17728a5c67ab4802f5dcc062d47db89f57029a0694f80a3bcd158207f5baebb7dcc2b22cac50b732acf68ad387be1225762ac3ebc18ba8f2e3ed6f8a04874eb95aa4a710e35d471a24760dc88da0975a408878d14db929ca813e8331520b991273151b9f744fe66ce3a5e06e74c3e023c0478f0ccbf48aaee7700f8826e5e9c6b8a74c0dfd671366", + "8e4618be2a67343d9711375849aa7bb1c1e23d0fab57421b9f842b237bf6973fc0b551b2d459c5", + "299b0359b27068ca94686810d1051d2250d79acd6ec1fc644fd220b7fde04f86e00a6baa214752499e64a4f3f2ba4a08260fb6ace4b1fd27b966d8ba643ce1e2883b1ac810154470222fbcda46827f80bf923eae925a69457e63288abc647ccec31f1aa3e078321bbd52a9ba71a0b4320450d71d3f4cf4340ca66c428aeae243ec343fc36c0941f4addbd6a1e967c64ddba4d33cd326239f8ef1093b32a18630e8ec3e7e716ef63ab5e149fa2de0bde6db", + "62da11ee859a48d7d12116e59e5ea84006ff66d8d0cf503543966fa8a8ff7224eec98b92a649df" + }, + { /* i=5289 cDividendBits=1801 cDivisorBits=1786 */ + "43d2a7982bef6f9be22e45f950e0c3f68b6349229c672a505e73a1d65d23906441d5e920c7267b67aa2890f92a397a6c19164a30576c6910d7efebe341ae00d996936c542d0da8f15b33148d18f9aebc8c8431896b6b83b265886a226fd93271bcfcfc887439858ce1b47b8cc10c47cc20ff76b40fe7b54016a382e1796dfe140124015342515571cadb3c07ae7079ac32d58801c9010aa46a682487e623432b531ea1d1d16c2b5adcb228b152d99b08172ebff89c3858c1bc3cb5d9d59ed06da8d92598ece0e241eead6f8740a133d439e80d66e4b0acb658fe855daa76b5269a", + "01ca8b44a42c110f74a903ca2a4591ccc268dd7424828ecffe923be4b0c0315e9ceb161734289c5e6cc84cb128dd77b577c36a32fe2cdff67dee3a850b0ca57c5368035e361db014157a20e8b423a249bd22cd2214712b784a65e643d5039f810581d4034bf35329470b2101613501c657ce1db0a78c7cf541121db172c87f5b2fab4d391b11801f6e689351797a5e1c3cd2073f7a26576dbde41883518d099b81743204a059c04cce2962d88583bceee1ad2454888910d4adf09756b48f4219d37953faded4cf542c41e38bc0f49e953a387276f529f666e1025640f0e6a49f", + "25dd", + "ac722fd6eda5ae0ad17bae54a280ae66c02c1203d0f7048cbc1464c68318e664c5b43540d2c46d4c912951effcda21743e2395834d18d9cace23ce502b05348a24ce060b9508ea01e4822c5076fa8e3580860b6a88c8cc942a8c176f04198f784407a17d71cafac41adb8378439936683c8a57f55dedf5d89499b25c7ff4653af6680c6bb54bb36daa13c9e23c5907f92b9355034e4e3b82b063bf5a1e665e9217f8a605e53ec2bd25111b8c926740560763e68a967cfe4e23abe30a96a1ccc044d725c1341bdef2aae4b7b31b5bfc7cc764c3fad62103690984c929ce0e57" + }, + { /* i=5290 cDividendBits=4075 cDivisorBits=2664 */ + "02c2392d71af187fdf493622bc5e1f877d0aa5f79dd6399436cc1011e223193c7e2da57cc50e9b1c303b5bbea7ed17a4f7e23c2e8704125a56536795c618f7eb9502e09048aa0d5615e54ead15c4e92b35567b5c2beaf8ec3d1fad8ca8d0df0a45d46a7b6d58edbf6cc1fec2b13d901d1411c8196d3ec55edc5b97c523478811ad9c18f47eab0507538b8093578d6fe90416efebe9b0e2cfd342295d6ba0e9a8fdc026ca709c0f5a1c0195301445d1855e519e724f235a02e1002dc7855bce306976ec251bb1ab6ac23c9d60c80fac31bb30ec21a3928b117ab40fa6d3b04626b89c3f8a3879ec3642ccea1cced7e4b65d0058200b36bb247a3637a813024594dda6463d2766ef51605e053ca72d74d69ab954c2de1a0ce0b3854e6d1de5a7733cecfa85e40762755142b4f311854f2d4e58344568d15c61def3b390d975c0865d224d9b895eac8f99d6c1ff68ea57f0ae7961147dc0ec2813e3a7ca9813ce187c1c48e5d585b96ac4877326cf5f328377811354f226691583f061e8808396894ae6693118a627c530e0c695f4f868a111c2da7eb89d81185f7623866ae8386f1343b133018d953aee783dcf567d4969f6e2ec34e85579ce55fcfb7307ae80eb92e0b5004c3cd12816a7a0446ed4b95860aefdfac1aad4f0f8c0fb5ac3424dba0f0f007bcade3fb173ff317615b01a168e0f9779f47a0c425eedb3da9183", + "5b0c360da21ac10b2180eae1c694aac6463e366067f771e0f786c955cc97d76998e6e8b1128d5f6ba176b34d156ac0809af6e01b556c4b18ba96db18066367379a23571368306ae72177a99c9f3aa9d79624dc92e7f98d4a4cb345bdcca528a393db761f0b8ce4882b3eeeddf0b2b58f4afc82afae1547b03454894987a890aaab9724e3a9123c07d76a2f483186c9814692b4c149a9a1fe3647ccc5d5d8e1a74d3e5905d2d90618b92b8c69ef41945266de8e6318d1bb71fc43edc2eded54b5d162479ba4028d347b3b34e02f26d6d288bde87840d378355ff7afbe81e61caca098255021ac4562259170558560680cb70936402c19c31643731f6347938af714450b08a138a92d873bfb3b86d186314df832ae77e8e0df066d305b771ff588b729c727fe454de4f925827d28d2366f67f8f9277091ce879e175394c845da73e2e892464d5e4dbc94653af63a", + "07c1b2867bb564169acfab1690f7980ccf83e015ad8786d1a4eb8449b0e6cd8cba47ab505fdfe01598f55c86f9fd0480c4da9af36e5040514cf2134d136bf8c27a80cb04825e090593eac9b9a7ca7fb4632d8d9f3cdc00e7f90f9a04390e000860483810cc91ecb0fdec023cc4940299ae9dfa714933e1c13d35c80eea89a21e4f45cf11a02e0d56c6a7f145da16ceae1d6e8f48d74c0f2e2de1c0cc8d11325b37e0331ed1b87e5900f84cae234f835a48", + "230b5d1b8ed96b309b52c301b3a731169aa518de8bc5fd971152b1569d17656168518b9f04c79ff547f49ee94c00e8235120a746411c0146ceb80488e95282d47e8fa788b78d0cb68f3dd30bd909e587c53ccab4976292cb65c4102b8e89adfaf3164538bb1fa34ca10d4f6836e1fbd2b12d60d45e35bc17f51e0d65e06c16a3460b14bc62aa4944e308e77e35eaa50b9d70294146a1c6f321ad5a27e23f1130800247688ed9bbbcbed709a83860471fd5de0ebe4cff55f58cf5032f328e5ae743961008317a5f980c481a2b6b760ad06efdd9a4d054700ac23b8393aeecc60f91346f6fb84e32004ab102f73a7ceeb2b1841dc72c4363cca2760aa1b4f16db35804fee414d54edbb2caceedc7c630bf115f33d1061dcb30edc80c7681b1997d0a9232fadf821868c9312d0f7267a0a1a2b597a981cea0e7d4c80b5e6f02ecf40edac175b34914849b06ed33" + }, + { /* i=5291 cDividendBits=3122 cDivisorBits=1926 */ + "188f89c0a5ea9c10d018326027bf91c30ade2f45d705b28c06b36dc47a7ce94d1d7dabd05d8e94fb54895a26668b943b50588a721a2e081e8f814f10030c92c5d747029cc54366714fc9ab4d2849d69c4428410be005274b449d9e13b1f95f7e2c3fee1b0dc9f028a588dc2812f14d949ccd91b2a83e29e7619cd171f7b2256ca3f52b363dd23e1c95c0283e26af15166972bc8b51fe93423511075c94c1e8ad3fe0d7c651e7ce2f01c21a5b7d5486dae61191da40da40f8f113ee427d3e8611a4b3e19929f2910833131ffdcdc57f3e002e730d70d80ccbcc5135b9f82f400a137cce18b3ec5929136d73786d3dc797481bb26b97d373eeef3a3fc63d6d3af97d7ebe621c2150ceae5d6fa163bf99da7f9e460d382c3f2fa62c2cd54fbbaad6d096dfdf04c1d25de8c3d48482d4297fbb8f5226e684fa42c65b744b718174ba153123daa84e92271b936f5b3aaf71ec6e0f35b62626a8513ea95ad49bdf5e14b4182bed8ed5d15094c33eabbb7e2a8291ea48b95f10c59e3a2124d48b40b4916e347600cd9f", + "1879b56080aaf9e0f6e80d996c2aaad17ae0d9cc073cf7fffac574563d1eafec5250812e8d70c90de1a265387c488dd584e8509f5b711d83c4e44ae045e3b34bdad6eeb5bc772b53bddbeca6cba96f877eb20188ed9e81f16af60f368cc0636b3da127889f6361d1e4acaf89fdb8431704bcf127f01803b9fc70f48ebb2e71f5623606e002eccfb4c8bffaae7b7dee58fb5c616cdc7e3016584aa288f7367def1b70f48690a64473d8bfe1d0dec5464bbdb3bb9b5376bd7adc8888370a800ae67a2ce8899f87db388ad9e78095a88e07d00d79899018a940535217dafaf14dd4647ccf76bde21a0efb5545da8dd9578f8a", + "0100e45374960d1508a0b9402b4e76f96bf1ce84f4bc363520b8037d973bb7d87cb85e27e5025a219e5960560d4fd26c5323ceaca18cb600d1b38eb341dfb79eb331e0d00d815df6f6ee4141734ca4c7dbb92fa6b1698fdb560af929959b6b1c5a3400959086f7b882397f444420a33a4846c62565488526a89cbf7c3766996324aa77e2ec70c92bc90f29b742a21ff7e227d230d237", + "124d4682d4c5cfca477bd512d6ab37816e6d9ed7a649dad0ff48f09b0ee99effe5316d46cbf0709be4064e29117eaccc3d151df1c336acbdabf2fe610781017ad0a57fa292a216b869fe3408f1846a294f5dfe911827f1ee10713bc9b3c205daffb7cfc63ad02ee0ece1d2d699b336a4f9f35ae17575d73e7af9ff780a550deb933139150d5819c4f5daa32e7fdf1426573b84d476a99ca5159a5418ecadad6253f23a4efd9a8a582e240f9d1f8b87cd1241193fd8a62d6458a322fe4b810d7a1de7c8b6de20c3cce76f317bbc52e35d84e6338dede578e9f8f407019e413ad19689c642c9af09a040212fd740d291c2f9" + }, + { /* i=5292 cDividendBits=2863 cDivisorBits=2263 */ + "66947b7855d71b360cfb64724a61d42f97e8431660fd7e9b176bd66743bc7035a11b1e7a315006579948352c4487edf76bbea85cf8a5b1f65efd26d1a0e5c47a7b98826fb4c38ddd21e1812b6d6c7bddb5c3f6272d3fef88354d03c26b23578afd5047f9619c7d23add5c636f012770b98e3ad7877fca48369392dd6f6841599b3f4bc466f4fb5683d83d9b0339f37a2637282b7cc472ba3888f5eccce107091885f12ec0b774aca7633d7e0866cc6cda852d0869f3a0658a048e55e85beb473561527ccb170a571569c954c74cf74b2f908c7d1f010c5042e56706617bf1f74eb98c3a0415cb27642e18b84e241daa7a9858949fe142c8359608b9a21cbc88f27b91dec1d8835a2fef2716055978346c74883226dd3d6988a86c20956b764eb66d8a2980e5e26c28d9a48e1f23915d7c67e017f3e64bd38ea5c5c3256d9ebd426a4555f2176e68dd640a027d312f4503d41daebe633c96414a8113fdf1cba18bba7cc3147af", + "32fc3686ec87073ef79c1674e7f2de7e196f537d773d2776ed9f74e98d90d5a5ca2d7b72cba9d770379b7fcfb3b2db367b0855eea7001e5d89628bc392fe74d3495ea28bf6cf4387d38377e20d619d0f6d59f5e94a558da53885635c07027a0730229a2d6fa159f42c45374a08c6ca83d2744f881283533c45b5185525afce98fee63e430a521d169a8b8773c297c20a5638479c0fcdbb95c6e48683431cb30b7f6bfc63be7c532ebd10b022375b7d70452c00b8cabd70385d47013c586db8bfdbc89ff0b107df3e2fc6b6dc5c42381f61e4e519fc4d27fef72cb2dd6b803bad13039f4bd4b7a66d0316795b50ff8d99186807362a7adaf336bf5b2317a06083f93fb32ff9d258da6bcd5407260499dca166993f0fac49b09b8fb1", + "02030f919aee821329e1e0e68eab5dba82efa0721488e70eacd43315c251e947fd25508fcba4a13adf96674ebbaf12dc372cdc2306c6a6fcfcdd4af9a8d3e920528c0fb0d03368a20f06c738", + "272022bb48be8a34baa045567945a1916fc19861c37acca249c7d74e0efe628efa22abe4dd50b48321f94bc1faadbe71aded26f5e8d91c3be27901ecbf41ba722a1b6db87edac50744490fc9f39c2e8bf45646c159b5fd38ad06e638710efeb35fafb0967326693f35d497e956cfd92a436ae73ae9e3bf0671ad7d02f6f8636bf3dcf3751b0c4f720889a17c6599a9044646743935234a1c6283a698cb51ad03830492d6746c53c346be215840baced8d8a5f2ce6689df0056dea3b4e71b7e2ea3d9ca0b03deacf744946aaa074baa16a15a113c7d0877c13c8f49ba684b234ebd8de0bbb209512fbafab56fa3bf1ecb7853e761d175c869d160f48e2d3637aafda3ee3ce88c03c5788e280f8720c3ada7354cff96ac2d805141f7" + }, + { /* i=5293 cDividendBits=298 cDivisorBits=136 */ + "9b54bfa4043f1c676b7ae5d19eedf0925703e1fb8e4db172338339b3f196626c434edae119", + "3e030af3aed1a4670de998066c967bbf72", + "02813e7593d9c069a68f7a0902260f97cba19c00b7", + "0aef5c529643403ee3f02b406e60ed069b" + }, + { /* i=5294 cDividendBits=1862 cDivisorBits=1358 */ + "3b34d4a4a6edb484fdedfc409a519c6f269b58ba1c1e3573e725381e63dcc318e67fa9df26cb7a98e13c28a627b44c3d46a49c6340751f51672743ca96d0f9cbb43ac7255e9d5b0a69f4c6b4141e578277559bdbe39cba973984eb97f6ce9bf9576e11c62de73a4f0381eaeaecf12ee038cdd3608ecc6fd00ffe6758b3d078a87fe65358e7c6700c4a6e860eefbc99710dcd38f658e1e4c116de0377797d33f6058376fdc0d64a2044e4bf228b11f4d2b8179c1538a979a0f1e7db889772b6a5e2b2a9fdedac6616ba7d72c3a1a4f6fa02f47538624808231e315985694154680da50771fd68e5d2a3", + "183adda4dc7ecd37c7578ba1cd64320b7b66f693a643bc1a1c172913f73905583115d7a5ec99b8a2b59da405ce6ed87f21f9a69e8c1020006a17867f3169485dc42559b0248c4c2153a747b54e04d91b277e2b49499f415ffce23aea6b19587e70e9b4cbf4447df0417e0d3a61546aed9f69da92df2a69bbbce03012e88a3a7cb12dcb51c60a95947471c20c238daf58c83efbee06d06cf792dec54594a629caeb528ec120fb88c2cb", + "02718a91ac9ac4209e681eb37f803394dbc94bf919b92a5d157b9dba9af13e3da46fbf1deccf03aaf2c088ac80c8a8a6aaef417b8f14228b80207ac5eba6ec22fb", + "0eac2797f3a3eb13645741b91c0fee2b32c614148e533cd25e3c9fcd959f1744d3c6e7455077f908989383bdcf52bd60af80f79e0cb5b8ea048ac0f52ded373b5d9d5867630655ac2689c1c90f95e8787335c654c936ed8da1b03b65f6b90b4d1fed08c7eed66756b885dfb6bc2bd64774fc356aece7ec1cb68b11e9f1096846c72f01ff2dbf92bf84cfa2dd6d5e2c45bc9ced3404285a52bf041fd0ec930044a9f6b81d826acbdf9a" + }, + { /* i=5295 cDividendBits=3308 cDivisorBits=912 */ + "04720a0e0fc0f65d8386ce758c2584089adfc9b70f4cc321d9b3f4ced1d05d1da36310ddb197fcf77d86f0e4f91343a66d49d2153053f749055abc584010c8588c92fa42cdca4b164cc3b70f33a06825761094a568aec73b7ce823f67d941efabe2f1760c0400c3a02983e57e24daab660cc99fa52bedbb3909d76d9f64c6183a96aacf37436eb6d91b8ddcd5e44cdefd62892321d44c7a2dcebc0091c8d188d52e1acfe035d4b4222e95e181a4cf82b3063b2da4267329e62775d9a7f3ffef1a92b4898f41536d7eb3a88ca602a64de1c0ad7868dd29b9032261409637642494a5eddfba1b416a09e6cbbe088f10ffd8ac202a010e44a28c008c5d66ddc064b5459856d427cf44fff70dffa46a793c14746ebbaf86a4948cacd1ac455e9cc4867794b4c77efadac37a59959801e55fe66ab1b10a5ef296fb630633eeda22c81a2e4525227f03d3b071406b6757b295bb358ec37629127b841161138ce50334d50f6ab808395bb7f9ae35df2788767fa3fc78be59345f0f12de033af743f16057ebe71a8b6d762a872db04f12bfdd0f22ba65a57f8944eb303c18c89799c", + "b28ed35991f8cb972a93c8cc1307880600dc09751f3dfa20620b9ad8dda6e755ac974997aa53ed3f93772da5d0a875396dd1f51ec37a43fdeda75c929a5c4d7887a08ff16784ab0c29e2aacab893161a600cb5bf3a5db00cf0c3423df0739641ac906a34ed823429067ec68ddfc361e827e8", + "065f9dd9d635be134fc9e647242c026f5f3ac7ca4be38a6f387adc97c902ce77dc304e75fe1e13064ef14278f12cc0a7757a7e9059bd7f222c17629756e8b688ff54bfbda2361915434b8695d4417b85f7425a19243005733b33a0214fdb4220a6509c6c69e03994863dd0dc2c20411d2504fc9c6a2fa5c275b20fe62d2cf00693b87e161b4af8a8bf32596c5544f263b2df909c62287486a7a07fc8dff836a75636aae1ca6f055b2d1092373f578bbdff367bfc2d6a7bf67852ed9ae20ff5b4adfdfbae2bfabf6523b089764e4a80f20a9e1deb538b101309346583fe5fa40273298c026031af95b7d2c5b38fbbb4f8d42ad7c0712d313cbfbda6211dc50c66ca8ceeac12e8df70e15b5d68431451fd991f8eb9bfcee258d6e818e2330e0d296e52dc82abdb2d3b6a114b1f", + "8222518fb521cc3bf8c4ffe192f907c4a54d2927e66366efc4740bb6417935397aad373821f57a03c9f220e64215686c87b0f25ca778be9f4630e4bb58e759e3c42f784cb90b9bd095d0dab62173517cd8a01d74371da281e8f620844e61a12332980b249535c3c4baac75761200f753ac84" + }, + { /* i=5296 cDividendBits=738 cDivisorBits=2 */ + "33789f217cfa98076d370d30cbd2291d39e9f4e6da20809f10ac7d695e0981c605bfe71c707a235e0ae74089bf48144aa4df6ea12f6cdee67b9abb2cb47be97a1f0fef42c73b059b1c842ce0a5ee603b411a10c74a6054e0f52f4726", + "03", + "1128350b29a8dd57cf1259baee9b6309bdf8a6f79e0ad58a5ae429cdca032b4201eaa25ed028b674ae4d15833fc2b16e36f524e065244a4cd3de3e643c294dd35faffa6b97be5733b42c0ef58ca4cabe6b08b0426e201c4afc6517b7", + "01" + }, + { /* i=5297 cDividendBits=4071 cDivisorBits=3140 */ + "1158d5ec4328ac8ad41224f06ef7bf73eeb284ad25cdcf4093304a03510414c3ccebfaab0d7f87fc12f3201fbecfc0686d8d2b15f85cfe7882e248f102da330a1556dec7d2f2a2ddef8ac154e941f694a3cbb7df7f94965fbc74b183f82919ccfc9441878e7b8d98e24d3d75281e82630d0970c25acb86c91f22e8ab0b0dd89967cc28c4cb0add4c67eb8aa1f3abd9e5ca3d0c6cffa19e5089128acfbada3a4f8e3c64ef466cf6ebea33fd06ef8804369c1b1051500c5013a4f09e5b06e3c94fadd011d7f004e50448ed51477f86f149f9b41fa0b18496de285142dca2eea3794d0a0f097c7183127e6d451c8973b87aceeb191379d81c43837f7635b7056130b354de45043c8fb75ccf39d2ed1309da168edd2a622b623fddb97f841e1be374f31a00f6736c76e6bb880a28ce1092518fd283049f9539b0bb589d44b7e424383d30dcbfcd6be3348ea9cc1fff6ad6f93be9be26a98c0afc425a5dbab10b0cd434abbe3bab9f17a23edcec50db1b0f96285207def2b1cbcdc17ca94364b87db8e26c1910dd56fc2018e12a66b175210c4fadc0c42beb5499a70b6ddbe255f1ef3c1ef70619f5c5f33f2a02dc0591028e33cab31c43e75286825c62267b4fd389cb1c77d8b898ede3915c83b8f1c57f3917fb39a6323687e4e927b0d0d76502a89e149f1e5058ee1889a4c793caa5f19ea4a359455873a5ddf836fd3770", + "060fb9c650c4bf6cd67d7043d1599c26eabda87d4518bb9f7708ccda6e02d3f9100d511a28d249a1a4541ea7974903ab42cd5bb2afff4796e855dfdc98204b8c4c5743af7898c51f508d3faf56345c7e396d6415656e6ab883bee5bb22eab1785dd833771f948b8081d731fbde7837a4c150bb65930eb45e1fb87df054a2d83a0090b4da2b29df42a44b97b09b4efe5c7ecae8cc580955a265255b4fd50e67591d53ff9e7ce8f4f8c13f1a27eec199455ca427476e7e7e53c40e6a595a39630282030a5648bbc75108102e033626eee35cf7f53c4fb17c00323b48672573e6b3e90df31a3b9feaf24f7149f39291995aac43d670eb34375ea859a8beac82cdf9b8a1908edfa7930f850e3967ab669fbebe28b717bd8dfd23a4e3632d589b8a860d705f651c23b555bb493e43e2cf41c03aa7f7462ff85abaad6a195c79001b0089b3dea005b5a9b2da75a7a69041ed3fa53cc4bf46ac3f50eafac3e8a7b529bccb89f4fff54e075ca0a4ff77d24151c448cbf0f50ddde940275d062402e8414d313c6ac1a64974c495", + "02dca3727b1bbb973c01d8b2b8c44966677cfa7e27e671d326f2a2d12393d33f66370ad204ff202509474fa5e7f0862198a25b4cbfef16050b0cd0c8c2a460c285dbc55eb3b111ee2e74a9e2743a5e8dd6292cc654ae73a1d61ac335b97736d3a7eb172204075c1fb09b39de0617fb574399fb8d36", + "02ab4a96e4aa20d4e9a667a36f3ef4dbaa722391c98da0c13b593006fb052c7a5eebd08d57c6145f6cb3b1c8e7971e2b3f257fdfad153b7ff266defe3d87bb9e59737b40e660c7787422c631e8cccb82b41fce5501040550a4fb47659bee4b2714ab3b9d23ad3851c51f72b89537ffb49a013dc06947048c0b2046a68305d4d2e1cc16eca6d6acc4a29b51e593e96f0a4d8ba30dbc16e25bc8a4c6114055b9b70ec325ff7ba694ee2379a5cfbe4827c7903214673c9b9f5969813da84b3e049609bde7de2ffefff4ece23362b690ff42126d0beed2cd7d644c244ab37de42be60b30dcd89a32d36fbcb910a8340f02661c19f29dd6757d9dc3d5a2edfbfa9ee7ad61f96a6c66eb915fc1ac726c989c3ce62ac80c5edd1612d5410d8f297ff1d66dcb579c243b6a2357faa1862d93ef838a478456697d453adb2c587383d9b42d6cf805aeebf93e5bbc3c2275cd1f4e5ca216bd533da9751887647e4bc058e140906067c1af7767f596fa23ca361bc09a19437da2192a8b2b9b5b90ec66b3e64e269f1289769cfeaf02" + }, + { /* i=5298 cDividendBits=3803 cDivisorBits=3048 */ + "328b80a7cdef23934693674443cf50dc71fc4226141e6d374500c382f81bcbe5656f7d7f58078f26bf1f5a21d7a2a0434ca0c1af7642448a9b719a7c8203f579f151b9b90dca15c98ebaabd0a85cff05875eb9048eb5c8e2cdf55ee90aade80e40b0cbaf5d0dc0f120d0520fa885e66e4518cb228e3f1aaf00c0431f358a98a8358860f5fb8e613be2623858bffd5cc6fd143b1c2c00b9039163958c207f9e81d1c5702b8b3e7b62e3d8cb190ed95bc8e22e8838165583206535b48dc7bd153f8569ddc5532b20d2b4e0f2cdaccba17bf71e54361dadc1d9ce89e0799cf776fb609de67ace8e37b88de1742a001a980469379b61cde91c17f2dedcf7c5d35572880cad8663286f2aa262868ace5c4d3f74853de81536386cc6d5b95fd9f37c92c26206a51fe4a246a99154356c8f519218fb7b14461a33418c7780a8bad0058adbc3d6e17b3e0b4396dfea310e1d8ea6a5a2c5651a6d78bb27312a0e1f4eb8450616a52f9fc2705edcc7659279dfa33ffb9446d76c4c8e5c4715ddb6104f83b9d42c2f53cf5e710e2e5484d83a929ad4d8dbb58e4b963e4183c0a7e5f43c3c82407132d959e44994743e2ae9186d59dd89bcfe8da867b93e22714f6a8cf81f48c949e665299ad91d6ba6799a225ce0d3859152feab6dd33e5b6013", + "d26810044c395ab8191259bfec9e7354563f908e64cc35639a1e17b433de052f21cacd0839898a458819edc6ae6e190059d363ec0d01efece906bf117e01b6654af652db1d1c9d7748849bfeea1ec801cbf324df576cf5b5384536804a35b34e81b6558a7a80ab8999d90880ece992f9bb1a61c069e11958a5e1dfaaacfcb2567575f1ec3a4358ccf32262595a41b0a8600fb530caecd48e5a2dc5245fdeec4322d107ab746860b4f4f8b21d49898faec36a890682582cd12672dcd4687558c74419b087373d6e2489c0762f1b36dadb94f06a1e6975d80b05576712870f284fa7fd2081c01aefe29648f604d931fbef659adb3bf507f75229a1c09e16da0a1de03acfbc80f523e440429474904aed5a9a4334606cb13f1cca0ef304fb58c30be29a646718a607457698081223c7e9e875a1844f3772b4a1d52503cdf8e7c114376c4d37637bec404cfcbd4072a2dac2fda003732b62a19a4f0c19c49e5d2d9dbff51822f12c5d03bc6a9c5bbb86020999d335e56cde3231f9c8e898fa", + "3d7f653effa5fd84754c3e4dcb719229ff20080d0558bcd36acc72fd9a186403f8401fee02c68eae71146a7d5cb0ea9c47c33d7bb60e9750fb470b4a2b749e06f13682a2c0fe9b24a816cac576a023611d01aad8ff57d5baa174c5a6c8ec", + "15f19deb80fe4de52245aba07877af79ae3d93e64b46285c3b2efc547de3df722964e384745146d345a65ed7758cd5a8f4f02ee71262c5e7504b6e691d61b8d9ad9b95c9dc3ddb33a58853a0aa3d6ae3be9b84d2426753438e081361fc581c40fa8e6f973a6b17b368f97c8d4f4524f915a4b1c6fa249ac7f4a2d16204dc0150f7f447f1ef86f93f184f2772bc3e207ebab26e42b1f3e1860124b5b48ea9f8e9053c0ff6c3d4ddd6859d17c0ace04bb3b8761de116e644aefc237c38c6955cf92420a2f21fbd16bbd9d1a4e27bf25a67a64b83f30c2a620cb65fc537cf88e4b464ccbc9e6fcb4c8bd3638a3386d4f62a3b600962151f984bb766d36b6596644fb2c67eff9438e41e4fba6ad6d9d93f66913b2a72dc81b11d80118927f6df81bb74ce015edbef9b3264b91ef89a93d35aff4f49fdf0ab28fe76518bed2fe03da166588f4625e2bef7d9b76c5772b942f19265c44aec5d34eb52eb3be2e51790fd96ac7f93882e2b75522df03db82bd1969d04d50e96d88866c4bc4f099b" + }, + { /* i=5299 cDividendBits=1734 cDivisorBits=1465 */ + "2ed21585b5d427fc6d166f02e9863e4818faa1e87523542f63f1838d350a5d449defe55cca5809acf2515282aa4846304d11708bbe198de0d5ad95ce684e12da746ac5435b8621a2b2f32f89ec27c72f95b05b94beff3ed40386e30adcb54b2b946041c85c99b3338037e298d91ac561f9746c6dfe6cb1e249fd993d5f4e0130c493180aed680cc60b43094e1640e2319303a64125942f05c697dd52386d9fed1bca8dbd7d2ae5c789abd99eb9fe7ab411044d698743fb9f9da7810bd86a070e29139405f092299f6f904e3740c1a7f1d17374e1ccb2200984", + "013b2233aaa9e77578197bf75dc56f72fc4d5b0675cec42df7545214e9c6c8a762081265bf687efc84be1e8ec2d127d37b5663457f5503b674f9e70c4bb1b56163b7c667c8c1500b180d8bd45b8f8a3243584cefe176c75b50ccb47e6f174504e88ab4256ddd0d154734dbbc8413324b9ba6b0a0a957efcedba4882ded3fc77ec91548adb8af8a9178d1f6fa7b08aa9e19d33077ce90b9138b95878c1edd0840c56c988497df04ae62022f347a9eba2819ed9da0cb9a85b4", + "2608f1180469283cd882f87db8355746d6756f1029764f8706aa750f7de30f49bf68", + "49468ab8e2cfd0a814d9485a6fd9886fecb591995cb6ecbfcb54aef5a5739ee3a6e870a903cace573d43cdc081fe53b317a344f77e98f14d40de5131bcae6a0dfc31f754d1fb11b451530bf2f0826856b0615002e1ba7abee9be38dbc2bd035da1b793644624e0cf11f24f5d88414a83a4f1b7f9f3a0f1bef6882c9142ac5cf7215d205a22ed43904a48e13872957ab3ab90853b7eb9bf500cb8f139052cdfc39aec5afadf0f7c9534e5d476853d802cb0511005446c64" + }, + { /* i=5300 cDividendBits=1684 cDivisorBits=938 */ + "f557696fe4efbbc3416ba2b97db090c97a946f34710b055784de0f1515bc838b91031e075072aedf370e917022c2d6c0f7b28368a5fc9cdbced1b6e7935108e410bcb0a5ba1a0d6cf8990dccec48ef4d5e2fd1eee3a576ba26103ac51a69c52db1b3563ca906c29a1a118f2c6037006eb9fa84e952fece8214f137616beabc6a36b08f099d021795f674bc81fe69084c16f0e1d20ad3c1e387235ecbc8a82bceaaece98f60a04c6f70289a3dde17973b4146e540014429ea1acbf89982c25f5c4ba8e6ed7d81536337afe910df06b0192465", + "03b6ca8e1735e8152d3cbe27767f2c72742fa15d379c15e87b7d759394d779bbe02183b6aa3748814489a2610516b0ac552342d57a143f89232755b3cbac3ee821298d2dda25a0c1a4f2798d3298deeff6bedfcc8f15fcabc4b433b0ae6cf490bf25e31da55e1951484421a7688e588e6d5be6e94c7f", + "420edc2c2cec56bca9a40f949693dd3cc715882c979b2efb0dac7b9877f21738010928677ec5882644dd28c5ed35b6343d257e0ba52c4487d1d14dd64795853336d28335f15a299285b489bdb1f343667cca202191dd70fbcb5a278c48", + "01e2e3b5ad1189f01a4d0f36c679294443cd36697000d4e939990b555284c8d8b062cfed05afe7d7b6cdd29dd37629f9a61dd909337cef4ef465a3cbb58cd031b06fd257d553f55751bcb728dfe3140d2cfd8f54b3eab4890c115a8839524ea7608d25ab64e6d62a5b65a6b773c331757ac1db4d2cad" + }, + { /* i=5301 cDividendBits=2366 cDivisorBits=2146 */ + "25af94bace17806d0bae784bdbfba73cc1c344a462e1920bcb1422eac19cecdd17e48b610dca5d5294c7ce031d270bc6265ca13e1d22aca59c47c55cae9c93cc7015a2bc6c9a636bda11306626449a9ba69fc3df17c4b25f815733676bd4a3ac6eecff3a89498f8682eb0bd5a36ab65faaef3a69d6cbb2c9fff254df47d560c48ad4616878bc2044904705de3f4a9089751e64e89617285ed89a86505e420fbfa4de7032ea55cc7e28582ea44bb122359c33f455b02235ac618ed11937050940f6832ec311eb06a7a926a928d7a373da056db7b225c42b6608f1f32a0e30aea8e94ded6de3662c49af315fdc3cf737d7348464a28d834d5a43f1cd507c3fadea975733c05b86b6c7dd95ddb555bffe6fccd730ddb9f6f895eaa8aa55855ed84e33fd5534c40f1b23", + "03ae3779ead3094106d41f24c575cb106917f360b6a7d7be1356302793dc00652d9298200335ca93c2fe80f9df916433c09f7bfc7fae786467119f63d4891f5fc45615216a532d0acb76086f7ee6b9545b7bb4b02258eb333fd36da1209d29123e7a93578d3859c3d0638484b798b62970e485fc1efb3bc0e5d785accd2ab37b4c75a85665aa2cd1306f831ae6d5c18eb3ce6577050d0182a51cf8fa91d27e995b6dba462b0fc9ff01d854539edd32df69787c78edec527b5417bd5bfac84d933c8ce09e903aa50cc5a7da80127ec2f98e6e6b0f83f333200d4065b6318f596070fe7aaec917f959cb5cf7753ee9a5ccf3ff343861bef76b24d007d6f765911442bf4cc28499560628d4dea69d", + "0a3d3eb1bb3436098bae4d8361e225a6d863fdc84db44492cb711dbc", + "0194683997a0b4cefe63dc13c8e4123d08d2303aaaf8ac25989bb0d03d7da8e9ba267a2b14a82d22d07836fae3edac36ac53cfb40290a2f81657c491a33429fe7319b5ed7ab8e8baee496c54b584d00e6e1ba08d47615064f12fa127c8e4bc43ca6d85021dccbd2701d73e6dc65f97582140afaa016711c1be878840c9cb4d29ce8c4434be96de99948705f8a5e4bd2680357b3f480a5b66bac71b2c1bcc02e1188b987c7d00bce6862e663d9b18b01f07d796a36b601713a1f6823a4ff8886a214853ad955473fc64fe1e074e8d45d5b5ddd860e72d83426a3cfa421ebfb673548ab89d0a43e289ae8d0de89b835e66c2ae135a901a04257ea385c410721cfe102c16bf8cd6aaf12b2d5ff6d7" + }, + { /* i=5302 cDividendBits=1740 cDivisorBits=1563 */ + "0e073db91539b8d52d432820018252c5629fd2b87f9a689da706a619d31fc989bca519b0d1a277788618c654a4d4819b47245ff20a16816c0db34642cbda867a18b60ff22153d579f5bfd30cb199ee5e970a7a32877fd83b45ca7c8990faf89ae73be7a3942ad254d1392afd448bd968525893effafc2509d0f054c7cfb4d58d61ff215b7df67130a1b8d4cf85f0f351e82f8bed94ffd1e95c1bdc5d2c0dbc4c614d8157adea338f3d423174c3fc0242b73f43f3a219f8810c6cea032213c8140ba9b6f9971fb43007abf7c03f86479f3f08fe159618ab651ac3", + "0504cd0ade22ab6c8e7bef931131c49f26373507d918ceb05ebb4fc0f1b70002d5c38151d6703fb9faada0de9b35cbbf20a50bd3dd7829380055958b86e7eecc491b24687617d164fa0581a6ebe08b9b055c019563728c01cc9803cb24710e82110fb27b13795b9dcbbfcf5a5bcc972b816abcb4db279ae06c95c420973f76cb18335c9f1cb878bd4198d801f62fad79711883d101838f42b1500322a0a6a788407d6bd25547a16d14687009058337ed006883763ca8e67a2a1fda7b48e73c420462d8cd", + "02cb9077a14586bb97b6ee80a231637bb714db671f5114", + "02ffa587b1d8dc0999cc19f12035ea54df091772e68b5041714a3a31c4fc32f5f14f2dc6c447e469823028a70f26e456e24469a6532e5e0a2679d157bf5088c25a4671799150a36ceb8f41f61c74fdb97d362872ea4fd40f1f3e09d93274915c78ebe6fbb9ae701cbd62745fa62102da8099c175ff35d88ec4a1c89ae310900ef7669ddfaf96266fd7a5c2af14d1f8a2fd551d1e94743970548d0fd1c58cd46f8594222db558f311d0215bce46269803c4f998f5378a7b925078e42b532734fb51404dbf" + }, + { /* i=5303 cDividendBits=2008 cDivisorBits=758 */ + "3b5e1b078dc773e29a51938ca9da8478e5e970fb3306182e519ecfec41ed1ca6602c16b7e7f83a4be3012764f46b8e7d225aa1ae8fa7744d449bc5dec2dfc0a3823d106480f4e0bd5818ec770463546d97111d70d5553f68c8e4cbc4c81c24c28bede262ef90fdfeded26734db98a26e46a3732ec82b381cb60ae6157b079e0f36d2ddd814f27fb9c406ecf1b5232d21c55a5bb7ae248f9708e814e9c3b9e9392ef9f59752027d45aecea47892c32e13fda5f7e7cade9a81338b0b8f1d358f6f825a25458d1098cf1548c8ea1982bf2d9b434aa9c91fa56913e7d93c667ba47b8d8fdd18cfe06f34b7d3ca0b83d098235807e6185862218d92add1", + "22415725d8c2784b16747f8973a298556c1513997c0b2139818350f577e07a7a7e4646793e16ea757805c703a74daf9ffc8fc5835c5285bf3f51c5dc4fe6d66e6c15756cccb3a1b246dcf56d2271c246f897193ea08076abbe6b5860523f1d", + "01bbac27c67366ec0c0324fc3af21f75d11c891955126ad6e806c209f3d70eaa7027e15e26421ef88ad723fa55e9c483f83a2778a4bb60ea5a826a4c7e8a03752bdcad5001327913db94b3e2361d4df27251145e5fa3de4d5d828e3a97cf19d7903ba161e45b3234cbf14f70f44f0d92bd30af9a423bae59079112bcaff28a46a9fa3c701c2e2a90516ae13b45d25718c80325d21f9618da05e74d6ee2", + "1a5f3c4a7eac58d0e435af042cfe61c112856d7b31c5d165045edb970ecd2baa84cb641e986c7461da8d6620f5216e6ca5bd94213b88ffe0b95561ef2086b595351706b4ccecb754af2f76e74ee4e11eb243e33702243fcb8c8778071f8037" + }, + { /* i=5304 cDividendBits=3254 cDivisorBits=1024 */ + "1e3fc9a4a0f1006354349a1930646bc956f467952b2ada9d45250f0a7e2f80811ffb98a3972b887f2860f6680247c80ef78ffb75080927a343115358ab29f4ef78b20e14d23664eed4a91fa1c5646812493917bbf1b9f930bcaece1c01e44083190e9551023fc5b9bb4f9b80fdba60aab31eaa604bb21ed005829dab095ade2866cfc04b70ccf307c1417c8e84bd92b90066bc85dd0f7df608199f0f9db62ffc11dac2f3b9d876b1fbd3b71ed78fa9ac5b35c901b4b8354896872486a5ccc7422bfa7619260efdc19eaa98521c81be3f3ba3808e9dcbe434908eb4f42dbe3d3a9b48e15e7d534c29c422f5dce1b47e000848402990f9cdd067e4118d4d6aa5ecd194dd9756600838c0cf78c043ac069cf2bcb97f628f8eb8fc1023c032e4e4bf3332d46a78a8b6522e85c8823fdd856116e17473e0d85dbdaf8c9cf3d3a5e90be0f45774f3063a3141276aa724a8b27729b2e20a8e025d5d6af6a2a0af9936dbc0c41a5377674ef70a84ce209db7c802817fa1b4fb1fb06015c11c83000352a9ee180e9983f9b364474ed5b89f0e6e9fa8b193ffd268a6", + "70990600ddee6734d5eebd7cad6c6347484ce2b1bbb17dfffb127898b213b9da168faff1d2a57be8468b097e089e6bfe4ca271b0fac498561d0a0cb91dfad1db3c05ccc99e98ff35e47fafe389fc1e2d5bf8bc367fedf77d4396d3057d25fa6324480b9e556f3ca49466928233fabdf48e93bacab9498602a5a74973c7589021", + "44c61f229d7dad3bb034003bd933d1f2397d244755e3f1d6c8ddee751a2bc1c1a099996724c78e0d1ebe246c668cb07999074170b6c04a77a60da92205b61d842442e3904c6ca22d06e08fee9a3d45fe2122b08adf81b1976d511b3658ae19cbf6315993ac071138e85a4f4586f1280d167dfa6b52144a27000d011c556fdcc31494ef6e9c7f194d387a25eee249641e691c64b550c85574d92990fee58616d0ad4d03813af54289a93e43fe7a8250b9217a1caa5452a7b6520014ed71ec16ffd31a7f571e2724cd4a0dc0122182ccc2f29529d5b3c084834acc01068f28db456c33fbd353e09410b5f02e466a269fc5479bf2a5cacd2a70dc4dda483bd0b18bd0e898d98dde0bc007c2b79e850da4ee1cb2de1b4515f1", + "2a32bf9e70bdb5a34e45cc7a4dd460c49b196539812f7b8820bf7247f7d2b0ddb8a1b75ea7c53271ec527e06b162e9d4beaf014f6056ea35609ce44e3b8a412b08fb6c8442509e8ed261d30aa0788617dd795012beed6c5247e4224da3fadb9b4edf73bbed865aa5841505e867194be0dcf33dedc4e50aaf0d4b0b8abdbb0495" + }, + { /* i=5305 cDividendBits=1397 cDivisorBits=1189 */ + "1ced854ce2c28e8cd4a81b2c589333a3ad147680b44eb8d710f9331fecacf408500d28c89fc79143a776d71b9ee6bc930d2f1931a77e5452d05607e189ad9b094b16c823424ccbe01dcc0e3a480bd1a873f8e2cec2daddc93c69b1cd9b5ed1b2857942f622b10da802d8b812341e008e41a551a19ae1d832822862f3d60ba81aefe8b82374a0f60d0565a7599f8c3f5669da12662c0b461cbf95e7b50d8e07a71cf24f5ae25d43d785020b56bbb006", + "15930f8ac57e46afccb4add7b7cfdfbdc1a2449f496feb4c0a80023492e9fbb7a8635f0bcab371cfce6e3b71d00dd2522dcd5c04fd14cad279e0464353dd7026d53cd430022357acf04d83251ea346e64cecca564f8ff3dd693e2d3cd9b16de382c5bb1f54cdb36e7e4d52f5c691960a88c60cb6bbc9d2aa0b46c08c66c5f42186bf70039ae3559d815cea9982262d437f1a9755d0", + "0157410d7d0fa5c158b4891076dc8fc8d3da415057feadc11697a1", + "0bf0a109fdb4fa1e290ca5b441f4c5c0cfd4ae8a1866a2f73456ff584cdf5c8fa68fa1ba631885ef3159888de5f11a2c74c199be3ebf5410ced4dfa77e6025eef75c3c03bea504c41aac8a4af08994748a91a1b9b4a6d6ade1e3157e5e76b73b2498710021260c425f181f091d498e7b31f2d04badaef9c97e4efdec91589abc01d4e6b53d16878a1202d4aec8392bd8292a110836" + }, + { /* i=5306 cDividendBits=3831 cDivisorBits=1182 */ + "704ad4add0a5de064d162f889469f0649304aafb5ce0be3ed3c4faaa8edff159bc59c968141531da1f6cdfbe5ee1f0a9ccc96f25889dd022fdc7480174e84c2d3195f5870f1042188bdcc8b81d32475dbf9aebf3ea24a84688c31961539d8ca052a1081886d86dc3bbda9aca8750689ad6d8b17724eb287455f7c13c03e3b1c61887608a1e86dc59ad94fa5cafabe9316e97ec19488ed9c90e0619dfaba7d9a15d6e4d7170f633c37979a374f6f97641fa3a77b6f4f18fd59199e445bc197079be2b8d72a09d9543173b8cd997e899824539cc777191dc059ff19ef59bca311541617f1f82efdc5a8b08830326164bff8b6e4fbc3750035aeb0602209fb4de47d8a48a38d85c448eefe389dcc9862529fb54afbc512de4457217174fb26a40e2fc227a69092b32494363e4f875948d4d5c664156b0d5bcbbcb02d71700a23255103d2a7ff7ab11bd39ac4fa68822ca84777a5b888504560e51b39f0504fcb963eba22c7daff6ac59cd6232dd65720f1c20f5673dcfa3daa71c847583217736b1d5102dd1e4a529ddf98ff1aa86e37e7c0978c5a30a7ddde0a9659fee6560d816b6f5c15d81ab3b12ab08cf4538212111dbf3bded0182ff2049c09d46311f6789f4f3fbe74bc50a0cb874cab39355e0bb19b51d3026384ac70e330a9b62b101", + "182e078bf186b4f0e27d0eca97c8bd5e0d380927efd6abff9cd33e09f1031490b28a9f72bb19ebcbcae30cc90cd50f10b224b070aeb83f5449b5c7bf8c19d4a7a6099d200889fddae74fa3fefb7dbdd1d11d99af5d5d49c987bb558b0ca5bbeb453e89041d7c780b6a8e6633920ae9a940db207a01f6fb4acf17418b71ca2cb88169b99b02cca430d4e646db1c8f3865a0a3d59f", + "04a4e0b8077118590248286c2ef30d34aa8d18202d20cf1a16a037f4f58c4db9c726ce1488a0de8ca6e24d02742d28156d5bec5fba16859f932b3afd9ad5dd6bf0b47419457941a82ac0b73ef27319cc0ade394774a08cb9397083ff086eb9e29f5d433c0a51d668420892a9444c5974ab0f42144d3d17aeab3821f6ac1bf09ff0c95e8ac693df6f8c1270b2b47152a30c06312ce57bc55c0613eaa0031d3f609c674c8be445b32c999e8a3883897ee9468a3e832af7765c3d4231e2bc2c3c5455b3c375ea7cd3422e76a68afdfabea23f8b06e075d5459404e62abb0c5775492ba16885c208903d1689ec58da38cad3aa76b81e0e998051176b0b56de84e694ea6b4e9b95bdf6f0e9912ae0ca681ba0078053abbcdace130f4e42cdf8c4e09ab8696cab208069de4f8e210aa1683acd996925d7a13263f555cfa5549c95126888e11e58ec1db0dbafab04fb", + "1739820b493378988dd5947464012262f2b551aa6b4d9079d0d1c2ddbd559485f533ee6c1344aaf741eb0ae9b383c49e1fdaf3946364966e4b0d75fb990626b6238cea7faa4da6d982d5e994937344c52d60f1b75e9bcada92b557ce0b6ff6cc93fb3ca71609f160eba6305beed764a6cc7f7d66ae1a540c7ba82b378681c15169678c941b4154871f62ee448f05f5672934c21c" + }, + { /* i=5307 cDividendBits=2953 cDivisorBits=224 */ + "010490b961b9397c40c154b0d1d74f4f50e6a2d0888c9afaf8c29249dc692a3848912bd5cfb9b84a4edff0fcc81cee0c92dc58dce55c8c95ba2186218a60005fff9edddec892df51677036ab9affb05d41cd34b934b17f367ab714b694bc034513e540fca82adffd97db40b34ae5c34226094067af04fe5ff775127b7793b34af494545bf48acaa960bf1f53c0fa7411827ac892c848fce9c4754e34e3e155043a5d12b25196fc29c9c417cf8a9b4d52d123e3a1d77be7f41eee944da895797469d52613459be67b89a1daef3b6fde66b618c031917d415b3a3d7c27739094b96a4b02a65c27d8160e806067a6dafd8c7ef94fed0febabf153383dcb54efa916a7ea5098b9107b70d29631b9de2cb37db603a270a1df221d861b2759b3503b91b9888132399ebffae27d30503a430a29cf6c3bc6f2dc1562891c20f688df83cff34707c317b44d2541818e278dcbe608be201c3204c628998a735195720b55e1c90365e66b7e9c4fd80b865a9878fbdbe05d", + "4935c98f6f83dc591f2a78bbaeb7cdd6fb2633326fa0057b696e404b", + "038f241365429138f1064632493828fa91ac5729667cf4bd66d268d65041822403fc266d1e6894d1302b38875dfef6a1623dc1f35abdbfba7f04f4420cb606735f047463292731c1a0c88a547fc7c929d462ab7a6811f7cc3903fc11e3ecbc904d9d75b32759c8b6eac6e2945064a913351f4644b3fb826292a2f9956a04e8e5c0f46d0c5256e1d5c29278bec06132fc7da5ede483730473c0b0f0fedf656fc6b933342ec7b826cd6706c6e4ddfac7c5ec04f1226e70c4ed64d84f071a4df3cfdf91394fd0a2ebf5ce51f396de8b0259958aabb7273ad559f1ca672d2b11ccf33767ac4282cd123be893ee30d605b07feeeb3c2c786ac257cb701180097413adcbc16f42908faa72e148eafc3fa76a6981d8107397b6ba9fc72ea90697d935fb11e4a44c44e506475c85434c952495ae427d870400ef7bf4ac059af3823a63c6f9b5694fb70f6de0d2b3ff5e0d8b72cea7c4ae551f41", + "3c91014b1cb28b87fcb221026c54550b8ec78d8753b82aa48a2d7852" + }, + { /* i=5308 cDividendBits=882 cDivisorBits=870 */ + "02cc95e42ea5f0e104825903fd862a3eb506f2eea8300daad8518640a88ee055cd3d483438747a70cc5ea61226c0fa43bdb5185f40f706fbc29d00b69ac5faf941c58e8d048d92b1ddb8321e30deca1fff316ea3887cdd68f53194350af84e4511f63da15cba5cdf812ea1fae062a9", + "20a74a293df61594d87bb631bada08891df3c8545e343360bdd2b85ff10b6175d35160825254b0e63029064f230d187eb2498a0c28e174d05b514d72efccd8f2a7e02f24409cafaea3159619e4821ae72a72ad7d05d3bf8c31f64406845107b252b66041a64dbc1ecc73666945", + "15f1", + "1f51fbbd6c717da0669b646160496c7cc1002509164f8aac89c1377705a062fbabadad04063361b7f1eeb860e7ed49cf38d14c2a0c27b2f95dd243e66d551d9020a2aa1fe4c726efe57bc2bfff6fb5171072f450025b221d57ca77fb185b324d6a0b5c486d42e16ab1f0d49fb4" + }, + { /* i=5309 cDividendBits=2576 cDivisorBits=1596 */ + "67bffabcd1d6afae27d74289fe8455076d5b1cb8041b65318ec3a12bb6df1eb56ea8cde25522daabc32b5b3db39571cc7d081dd749bc0b5e7a88f595093db7bbd27f7f68d103ed4177a810d7db577462f1b92dfd3f6e3e8aef6b3b258f917c7bdee0ebe075b5e22107671e172bf09cc2625738f7a5dc391d77c49b2445ece5a68819f501b8128a5953494b523858d3c7355ccee24ba51f65644e1bab868fc953b94d58fee4f0015508b6173f4fb3a92e0c92290cde2e331fe2dd8791be76da748c96f1a5f0ab400d61a5aad31aaf97ce43815a94df1df222df78bdddbcba2ed321dbc6b6ea6ee674d3d9566e7b032f0bba4c4b89f9cf4bd3bf081afd3bf9861715fef81cd5fdfdc16a6dcb803e2bfff0fca75db7baa6b2474c74421cbd9e9a882d2cdc1a5f6806eafecced3f6c488b97de73d05a79602ba931ad8aaa2abf90dfb8f6", + "0341fdffe33a13625447f0529a003fd6b854530d776703eff22265d2a6e63eae389f1bc5fc1f6432d2347fb48651c7dfb2c08cb41feb2ec4f50699dd4d3f46cb38b39e91e720b878313638eb0a4729e6dd643e1c4a1458bf5b65c609d2800813127c350ffbb62b949dde34368f322ac247aae41cb487b87dbcf6e2df837d6463badb0bb60ac4b0271f856483b0d6951dcd4e3dc23514fd4d5066203cb2879b0c011db3ad84479b4cf3e5b8a9a4b7e2a599975e9e72c331842b4790a57e9b307753a3f0e2dd7c412e", + "1fd8c7a832cbdf15df574bf952299cc4626a2ac3e3e40935e4f4a39569679c40ff1f8707078aeef155acea66e6682984062dc6af8fb5a5c7176f59274d8bbc0a5024f7d80a79eec1818bfd0ee1b9ebd9056f61124eede2a9c42940ab577a695dfe556ad7f764f7f7789f7807ca36a901ebee64beaaaef235a622d7", + "026fc46d7c2b3f1a3bb6b580dcbbe03161db5b966e76a12a011f8b92f072c3a33f1c7a3af6576c5758c14cd20a44c3900cd1af4568902b00705eb962c67b71b04206afce22c1ba4880de710b5c3b60de82cb48ed544f9e34181b82b9fc0fb4b1405c6b0bc243c880da3c6252b81dfe25a9492de2dd10e3d43ce6b1dc6fa8a0a84985c53744c7956a465e9d38b3004a0d8b5376c73fa922516d4b3eede52febbead5e02790622d29a54b2a0224b6f2a5542cb5f20a2a6ec25c85f1b64371907521ab781404308df54" + }, + { /* i=5310 cDividendBits=1880 cDivisorBits=1254 */ + "d4793feae93fa732234e372342b479c5aea1d9fed2604682f9665e1e639795358d214d3682de1c3f0dde333ee5e40d90c1128211538875fb67f9615b9a43e2a38a0ea92cbd417f07287eb3086a09cf3486cd0a74c5137ea1153b5a39781462e02bb6b335f73a3b0247338bb0e99173d7472640cd2b89977e8beee6ac8c189844e3c9aa313b83e604517b97377bd7e3ed1d27b2af5b3225f5f1ee0efc7d2ce42bb8be2248f52e120f9d08440b410dae468ca3826e31e2aa4c59390516818f43265b55b0cff82a5d2ac09fdd748112026b04b3df729e0992e2b64f42a6d2bd03d924b23068794a21069fe377", + "2c022dac60dfa0106317f3ee896e88e1a75e57b422fdde832f491d60039e7f4bd9f00647bf50c6d2706aebe058b13f8d7aae9408029d8ff04cfa23347999d50a05a0fa3c168f8736c157bb874687e53fa153e96cbaa8a2fc4eadeedaa71678dfd1c44e74f60dcba8ebd4977b477a47628615147d2dba111164dc48af83b25929f854cf02c2a691c56669ec890079553670ca805777baf7d61b8aee81b4", + "04d3f89fc9f9340b9d3f1b2a59ded06367beb2a4e23f015f6e531a3b57b731b0417fe4976e774543bd427a7c1bc025b51dc119f53399555df43e3f87fb954672481de14a9e4605de025527ef113967", + "1c7323fad86ff3c895be3e72b23d98be013df874ed47d540e53675f633f63d14f5b6acbc77d97f4e7a7e962dbea353123f9af28aaae5ecd445703c6dc67448df3683b0fbf0b3cb3dc1d56b0497395d81ec78709b9575dc494d3bd4bf152dbd6156df6dd9e671208dd2ca79d30543d622767870447107ca6c1bd82b524898a1b5df08bd5655fee99f789eef8cfaaeb83402ddc49edb9abe97c35cd4a00b" + }, + { /* i=5311 cDividendBits=581 cDivisorBits=64 */ + "0af71e243df9d3f24f54168f8f472056c61b01e46aba54f9d1e1b2655f6eee3ed650576ab3a1a125e9a746cdc10de1bfefba93207577f8a53495d1538bee5d44e0bfa630c39ac7fea3", + "020ac6a4b3df28e0", + "055ea09cc03ed668a31eea82c9abd939e36931f0a0c99a6b157cac71ebf260d87a2f73ee0f3b8e019a6e526f26cbb81fb5b51059ce437d0d264d5b1fb8ef0a2d9c74", + "01e551932d60f923" + }, + { /* i=5312 cDividendBits=10 cDivisorBits=4 */ + "02b7", + "02", + "015b", + "01" + }, + { /* i=5313 cDividendBits=53 cDivisorBits=52 */ + "fcafd9f77460", + "025f285876c148", + "00", + "fcafd9f77460" + }, + { /* i=5314 cDividendBits=750 cDivisorBits=172 */ + "14689b66fb7834bb6fb60764f7e35fdcfba5a0ec05260209fdf039c1aa40ad09fcc08a8b62fc7fb5dbe0143f0f83475a29a6f14565b2e6546fa58b8801eb488f6773ed371fdcf3db60abe970d404546599f6f4c34301da1f224f1e387fd0", + "04978459cc17072147e3f4eddab9a9606ab04c840803", + "0471cbf700e5a291d6aeb412978160ff32097c73fc100c25f77348c2f74054b00be219f8a68e3f57f80065bdca08f0146fe3a30f4dd57924e5a1f635d510632f35ae7368668c0d321b", + "3db76afbbc7844342d3ff92665901bf27d3694117f" + }, + { /* i=5315 cDividendBits=1828 cDivisorBits=1040 */ + "0afc1ea7d0051b7479ab2839f7a35f0906d344e527eaf997193d65b33fcf8f53f699fec76f871ae16542a62c9de7e411fc8d209ffdeaee865af4db6f688c898a56a1575597034840299107a3d69416b39fa37f003f6d1dac1f2c77ec47d30aa127eae2b1bd8b0f515ef63f594751586175f322d18450827f26204851c8eac63f0b5cf1e26eb58bfa33b0bb40fa54df64906e04b418bd5a2a999373032567e5726a20cc985e0507ee839023fc9fc5e261079c2e4fc0bdb1810c0f168f52f31d861e47048a8a8a2ac1318315507ba57433409eabea9ba507b718ac21d844193038a4cc739d6e", + "ee5a48f140b40332123724b1c042ff5d9e40ab8060e24127cb1aa522dc202de7265b5406f14447a81cdfb0460cc2d7e7a2d3776d16d2a2ba22ff6a6f35bb6702cdb41787b396e84ed494d25cecd2c4a84a4ff469620abb25581893d7dedcd40f345c4a7dad69b9ebf7e86a4172032ef3a7d6d0843720e281e80c14c03df3103fa092", + "0bcc5351adc0ca82fd641f01924e35777fec758a5ea2efd08376ed5b99ccdfe502d2f9b4285eb5d94f992373f3f4c4ad4dedd5a6b8e7787eb1f005d396a6279fd8c6b28658a5cc4124da726447997f29efe909c4cd82e727f2fa3a53915807e50bccf6", + "6ff5dfc9d40a32d96d0763f7ae5c3f0e070b80ce33a87a624b83894aa1befef050c1cd29d1c87864e3984b4981d84ba438763a2632a7f27e99e32f27f818f0c15c47727f9c177955e26489a64b6c58d06a26cc97256002bbc9f671bd4320bc584dc72a11258a819f1d91de3f355cbb1623af90f6881e52935709467acec3fb14f922" + }, + { /* i=5316 cDividendBits=177 cDivisorBits=150 */ + "01385f649dab98fa844a135db6d7b9653073cbf2a41bcc", + "17539ad18850a36686d4085e4bd44a5a3c9a01", + "0d642a81", + "075edd3b8ff37b54edf0a2bc85f4085372574b" + }, + { /* i=5317 cDividendBits=1663 cDivisorBits=454 */ + "5431159edf9c8a8b9e22c2dc412ab15f898a5912000b20b0bc74a8da9fc69d59d3ade5c0d56c028c8f3f3a38bb81eb93a3692bfce4047d59b4721eed02c40d3cfb4b41cea8cd587c70346b4f43573269bed106d6d4d8f43ef60403f9bcc808f859f39f3fdca2058b33890a6fffbb0a54cd9de7b660548e7a71d2d319105470d3be33e1f1b60baa260d91236f1a813210627ada1df77906912a1f053223b1d0b98c32441bcb1ee80d9765054fbf967b0810159f97b9bfce987dbc03ffea7af54c95b3c7b00a60a9ea3d5904f9e5e7a2ea", + "1c622f764788d17b629ebeb97f4b5f1f8d5315ba62156f067c7b083b85cb7783c36e3747d69c7b7d8f2554f058e51d27a4b367481caea8b78c", + "02f75a0378787f132ac5d8ee76927144ac578f8c4ec3c635a58ffddc7c0e080176e7d76f762d14e22669081fde98f436cd0e78631dc1f84311c0e43f68c422fdcb89cbb331fac486237e0594b3da617d292ad990db075d1b71b9cfaf3e63ae8d1a76f7bc18bdbb022ecb18d5fd186371c58943b699c8469cdf4bc525b6b2221adecf43f79facfc2fa44f1502009e4ded6205bc0e10c46e64", + "0a0e4d8dfdd877a46965acd966cfa06d8e9708cb49e464d1e070efda806d88d3ae0861a1b73d051356f9ae320698ce8ee82563686be5f1c83a" + }, + { /* i=5318 cDividendBits=2397 cDivisorBits=847 */ + "15bbdaf792e3f2e04257743bce7eadaae15cd0ca439ac0853042f93be4f95b837068a26a7c773e42a364d8986fcfcd537baebb7d254c0190ca7530b1bc9f8acedb81fe210212fb06bbfc9a96ad04c61cb1df32ae53ee47c50a050eb33cda13cb0b499b5fdef4fe2a918075d9b6476ceb281f9bd9612baf9c9f979eb9acef6d7693d4620e1ef01fe76cbf078511ead0778fa8f01fe9503c39a5edb43223c0b2772ad965748ec6346f396d9658d6bbbe05a65124fa33c3d38effb5a69d5ad71d4af0a1d47c547a2e0e9b606fefaa50e3bb7f30a3c711261b711b7afbfa46d614ed1519a53a20f55c2ca1359d899c265d1d7861ea55c0dfa23ccaff6d01491f4232455113a4cdbdb1433d74999d2bec7288d6e9eac7d14fd1f447d919725016c2f640e5f6170d2e6f73a6c311e0", + "2e3be8021f29bda8125fbd6eaf87c2bc942d133dd87f24eb0e2a36f135d743d0123deb7e549e894868385741fce474865135c3c040417193a61fac7bcaa6f935b9e54326bfc4a1294fcbc7b8802792467feca82812fcd380a2785490af018fccd202d4f5469923a752e5", + "785757c9676da9de7e6a1748bb140ea7c7e5da18232007d459e5d6b0f30ebadb520c2dd8a8727d4cc85df917a0c9ec391b7889e1bb16adf73f5e7de3f103935dc239e4738bd2d63eef6ee41503a8d07ce5eacb6756276fb501b96426a81c85d036f8c1eacd9ce3190e04d2a49b69a67b6aecd12925248aa4f3fc67d5b64ca4c6f4a9bf37f77b7165804cf88a766bdf74777300f03e1fa494808e0b607d6f42a35bc2f81f6f49ea1479ec2e88a027df3c128206f974751f595e0bcefdbfcaee0d3c10", + "15e4b1f7d0456e932c2f89b650b5c243d57121628965e8d27b42ace840bc8378535ff718b78d1e14aba2c8b1e4f874b4c0fa75dd4abde0a1f3fd4141cb32e47da774bdc50f7df454f7dd7a64df96653c851875d38d0aa8f97edc420081a46842d69121307f44193f3790" + }, + { /* i=5319 cDividendBits=690 cDivisorBits=143 */ + "79415730a478fd8853d346c685d675de2dd79cbfb19e3c89c40e2d317c2be4e407e791e66bdc555264498ebc13e7cf2766b72ec5c039d9dbec6b657e1e4d7daa4d455d3d6db445c3be9724fadf98e7f4d3c03fa831ae", + "43d492cad29d6d2c705dc9a29d287a0be706", + "01c9a1c5f7da6c97a9a820d3ab4424fee4fff7941ecc7d708bc5555e71581e1833ddeb439fec5c42ff0bf26ce96e7be19edaef272ecddfe028ea52f170ed64b8a0f1ecd32b", + "125c04820155739cff9f6411a62650b671ac" + }, + { /* i=5320 cDividendBits=2874 cDivisorBits=2000 */ + "03b1ba45c4aeba703f3d0a81899b18a4f3a27b91530ca1149f3e0e7c7ed10dfc43d5c0d8198634839d57f95408ecc573a617add50d2e2dd4f85b4ab94cfed334798957adc24bb038f8f8232363b42f314f1d92cdb39a230410bf8169aec518e574228a3bcb94fe3276c55760bdafa6d256c8f78a9300105d6e6723ed291971753c08aca078db29c3a0dbc9dff25e587c3a46db76e9b527a675e1852bc42f417fa19fb59830e46a9ab22fc6ed8383c649a9ac7967fb498511d4d53e9707dcbcc83b846a6f802a7eabec15317650cb54f5392202971e0db7560546ee1e6015a0f817f21abe06431181933a4173cdc1151801284bb937252e0ccfcb3b5b448b1ae6382d717fef422f67a33b36557f986c176afba6a9921185b8cc3dcab6544eaebab224167b12dbd7c6611b60dac0a4d40fcb796dfa09f803eb8b4dec0109287431e2583c1c6ad805fbec5b91599f90c0c002d6a829774573693b3e4f5d8ec048bb88ba57ebeaac575a", + "2223f482f3f3e75c748c15d4ab7a1dbb7d6d5d902954e245087b2f03b29c819653d73e3f62711eed38d0317b83189771e534c08f98355d99589598d2af4b1c666938f7e966e9b0ae11c2a8dd1d12c957dd7e8966283cfb755c67fd25dd8b9371c4972ad7659a70ccc1e0e2888310c44e4db725bfc2b2964a75f8e3f504129a7565f951e44e8d5686c28e7d9ce20d985df0b9f480cc9bd051379ff6fe0a712c8aa52122be591b434fc3c232412555addccdd8ef97a548fbeeb9cffaa33b23da5fed35fabf157931ba673f47f841095e2551460a2062ac1474292b103d61685cb9c9e084f1f7c8338067f6d2b07866ea87f6ecf1e94e23185a7e80", + "1bb37a8d61ede2467a919f6c0fbc0946875ad622ff907160ee502949174f86e539024d4264be545fcaa8bb1f253bb7265edf59c34bb9ca16e7c4b17bf044b2564f9941a3500aef011c8de5b2e29058749a1fd0f488914f8cabe2c8e4b2886f382a8c6e28bb9c22f89dd3d4318f28", + "1303d7705566213480c001ac7573d3ba1b68a7b394c4a903efe44498cb4921668efc8a0a195c65f5cd1064d61cf0ed30cd2d7e4b7aa8bf0b1687fe43032304b401795ee4a3f74c0741a7950dca428f592f85449f7495a6825259483886ad4ec067725dea9ff5ab1d8ba5a9e6e3135f868656ceabaf518573f3ae6573e9231f6f3c91f42606bcdd0b6ac30db0d8c4fa3e47e39f6afce63a02a3ddacc9456e5cab457583604eacc66c057edc951419c7941e3b096e8420c270b26ad0cd90f73845bb91cccfd64af8fd4644248961ab4169f0db58643cca40c762e4d381e454007fa9ba25173b482b67658aa1e33b0cf1e4b6e346932a41595f135a" + }, + { /* i=5321 cDividendBits=1993 cDivisorBits=1794 */ + "17f6eaf8669340cbb555741ace85b95bedc2f606da0d7c07cf62d6c29eda58a0dc4db6e4adb81fc84a869a53a80c596cf9e0dee7cdbe8f945189d8bfb5dd14a42c631f9ef3668a749d77c9a070f97b22df56b220e7021db5ed53a39967d958b6295f6ce9416168827104081942dcfbd20cdacba00743497bcb537dbff66b6aa0ad8ba401c5fc8fe72546fb5585c327620516a685d3518b480c21ea2f9a0402800076aa315fe394308916a1785ed394892cef1a015abfdbf460b36e58b68b7eab6f7773dff70e6eee6692cacd1115d80cf3f6a34268a777cb983a3140594508337ed82f6eff6bd11e16a16d625fcc0de51642f337748fa16330", + "b7486865059e60d956bc6ee999e216995e9b3f8940714b7dbf796b24b4b579ec60f6ad152f77cfdf2ba711de701386a23e95ed329ed548f5b6f0985ab838d645398a3cdba3aff5a8d24c20bddd16505fe962e1f5c24ca1078b510e476669b58ae8dad25cfd05fc17796f2eaa6083f091b3f5b3f489c711f0cbfaab3efd96fb639040a8a33859c8baaff9415b9fd1234e2839a9d4609b9cb018fb47819800ed9299fdc5e7db437eeea3b48d84e13561ceb0bb52ed65e24c00fa818ab602fefe51a705d8a8669586517ddec01cd3f0bedd0d084ddf839077e2785d9ed19614bd05", + "2178efa49926bde9f5ec4a33c23ce0355e4e8503a6ef8241c7", + "9c2544eb7322cc4a3b26f36e760b6005cbb8d95a3e86d037c261ae52d323a1138fd8bcca505dea94b01ba7a304818887f98944fd93e4bb40d00bb598e1b9b97fcccf072e84c870ffcd53a8145b1d1488e707b5c4bd08f737376e0822c2fa90b3664423cb49ace5074eed17c556d2a29a6e3ce6a2c6a40304ade337c10f9079578781870856f8d8a80a7f8989f94535912d2b33d9ab331a22e006971d2b9a29c1bbfb3a30f51a410c816666e23d4df19fa6b5c1f8a1c2e57b4951277d9fd546b497db97e794a3e50fb4e8056028f28afe1ad0d6610da180cd520b582ff9fa2f4d" + }, + { /* i=5322 cDividendBits=633 cDivisorBits=568 */ + "4265976b826dd30a28bbe51f363da78c214ab7d47aa0e8e3dda1997811814e389d9e2c2127b566c07a4ece9d75aa81f44f397c44924f2b6dd436612d7b09a96433ecf8e93ff7fe965e1ca867502de3", + "62b4d44bd206d96935925accf49b7a35a497d3187a656c987e9db35986f6f2b1da100bb65a568ff5ebed25307a071a8c08e949e54324e96da0ae868fc40c4db7e2c8ad7339950f", + "ac341f42425d6ff7", + "05101e03cfa0b31466d3da99afcb687de0d28fc1e947570358af6e8fc817287e9cff27d066161d170bbe11f16a003415467a69b124bf59552e1d3684b34ba32de255213eacdb6a" + }, + { /* i=5323 cDividendBits=1201 cDivisorBits=1179 */ + "01754b5b8a87910d72f7649c74288da27c2c545dd1529a4c60439c69edd0b6274f560ebe94ac6613e717cef03fab112efa53979e16dde6ac945638578142d8210d4c08232d5a25ce79301db99d6366727d05ec31a6a5fcfdf59537febdae30690c372a4807d727c06857e73891fe841a22677ead43e04d5b35b27ca0824d0fa96e5ca1661953b24f6ed72f71b58136c8953a095c31bb80", + "01abf27f45fbe475a57acd5299e8a56386cd520ae8dc22f453f9081537884c4536e7e7634c2f4b7abd58de455e889c3ddda14ddaaaee2a73d7550c3c60722531e8045112d5635a6905335df8c63a3960b2aafad8e76639c680aeb96fb276791535a73dac485643eb5cba780390fdce7f78ee587a66d28e8b4f215fb4f6e007303e7343021a342b04261af28339023898fa065ac8", + "df4e6f", + "013ba4a2f323e9fd96b1e52ff285b63fe44a9529cf718428160178dd1bae594eb807b9eee27b077c2490cf2f783fabba8df2968b03780f4c674e8bd921c0daf09932946b415d753ff6012b6ac6870b9e1e2439632f1df4bd6e2ec92e754f83f056a69844f049682aa80b91b40620afc18c56a67c732183e6c73d9d3a19142547d4dfce5b9517bb4d75d3b603161e47fdef8f6ec8" + }, + { /* i=5324 cDividendBits=3288 cDivisorBits=2142 */ + "c2b85c2d86cd991910bb7aac5adcba9e5701f4c1e7323d42813c697c763b47ee15f8bb2dfd3196e52e6b0acd206ca6ecf7e6a3a15144121cf9ef63f5f348bc574d4b8a2a142936266310101440f5df1aa033c543254effbef70c25aeb41f6edaf519bcf66898617e0737947c2d31ace469c62d38b5eeb3a6b723c3cd48eee3281a225d5c7d7a53279c9e6b2a48dcb3b3499fe986e2b86d4fdf9112ba6b467a68204a02e8d353c5298291158d135a5873f89dd3fa17347b99736924bdc85f79645d6b6c3a84aca1e49911c6d66d9dc98334128bc5f539c03c64e320b19e801988247ba4ce2b898c3a143ebf204b6c8b83575ffa345634e6c0663a8aa42b26e26ebed18963efa1507d4d0d4948fb9681c92fbccda505313b2e3822e29666fccb90cda79b85e5f07357dba9ce9ea2efdc421d03ca6fc41792c96bd6fccab5155955fb5d33264558f3ca81dd511d89ae1885122c8f051c7729d98062055ce1e1b3a3c24a609ea0cab198a15f8ec447f58089644a1dd49e43c6becb54979a15dc329c7b9c41e26076e3a39754a40a0f6f6a4bd028cca736fa1799e6e2d5", + "1498fd855fd152e148b335fa3daed07487b0c7db09ddd2fe9adeb9e904ab17106f9df43e9affa1d3b2d3d24fbf8faa7b2653e8c4d0ff2deab358b6c9dedc8e5ba1827aba01b1eefce2ec2270e6fa348892200f267dd0a245f8df4191b87eaea90a68ff9e37a8530e27dfb3dd7c114baa3c3fff98a174a8552f272abe91bde9e19824d7181c806637c55719b1e8f9f2d58e1533f3edeb6eac0416e08662b15446bd6a4fe341af7d9d838d10166b39aceb4db2a6ab1618c4f7f64272f46c94774aa8e665a0920a1a8e242a15d9b5572d808361dd020b185a8f04dda9059e0e749c269f2b86b7bef29398cda05e2769371987115ea8615c375541bc13f9eb6282b68623da583518b2be9e875898", + "09741a6459a4d17f6b12569538be10354d31b0dc4653347a30adb5a0ffdc1fb48c063f9b48f009528fedc261f70078fcfe674a2b21d9c9deec3677aa32ffecfaffa3ba1a3da951e2bb686a7df4bd595a6feb3c2f3f3bba4968e8e6729bc3852eaf50f4bd38a003f768cc37587215067588261dc20bbcbd3be4a1edc76576fe27feeec7eefad5eaf0ee4e00acc40b81f0", + "016c6f5a63ecb7b6afd7a8089694a651f1ab658786940e50bc4262327eff2024028cabcfb6748c1311b6d918d1891f4b6517bdaff14c8cf4690e6e8aab776affddd3658085df6c545ac835e6e1b8113ccf67c2410905a2d115426889f6f5744723c0fa9cb339bcdc1cf7557ea26e22ca5638d967b7d828694aa9dea0efcdf961732859bc91ece8e2aaee861e5bec5e891a3287bf14f715f92623115fe45b92006926bdb23ef90e45bc211c6680dae33499df348353ed50683d5713d75a822030373533dce6827ac27d67a1db2abc42cb35a8401efbcb81155a909545e62ca7510b705db8e13c8ad4a9f3889a601a5f54a1a0f8d543eb3bceeb4e2633b60174f9b8579a42fd2d63bb98d73c55" + }, + { /* i=5325 cDividendBits=3902 cDivisorBits=3406 */ + "328e9fa3cd74f91506e7cc9dc7fd897359f662246efb87d901bdbf660d1e3f61bf8b506905146f64485c5ea30e647d24f067ae7233823c87b14aa7efa9cc322dd57de6542f0492456e1dcab637b577a8b0020f416f507c624669c91cb59f1c63d94f83f2a98e19bb3158aa92ad1e89bbbbb3e0cecd1e2706a6324ef88a3d78710b334f4b17903f6af54ce060f6a1afd23db6c7eb83ea024dfd9ccd116f9613386ce425a118bed19578793a142f14f436d061ddb6fab459d256107162ed251c4bff6e8dfd20e2055f18d97148357d23bd7b74507b53c0a0d76e6207c714f56c835d48e9c41839e0c9ed11839a8fd23ef6d047cc4c979a4099c983953bf356865bdc0de79a85efaa49cabaa83bbeedc605804404c9108894231a8e3b20c3580d44e47f0923e99c43b31f544d8ff2f8ce984500e99033369566587694c17927c4327765d6b3d0127d1642a2bf6cdd4ce4d77b284a31fde09fa7fd1eb259e7ffb568d7efd2256c0ae4d33b170ab393665218910338c4930f40723b4daec3dd998d47697caa024ed159ba00a45c87d00f02b191bfda122f6aa8d811f0b6e431892890a0fae1706b0fdedb455713ca4bb70e719b5c4417475ac9ccf5df5c58a26e88d2e48cd17a6a03c1ade5109d4d7c17f778e712137c27c5a8f98c6d5eb439ea620ebb98f27b1fd595d2", + "0714584e88782c594f9772d0eb0155657beb6accaad50d322e5b235a8e0c24b48e30ec48bc55ab23fa9bc7fc7f95767f387fb337e84b349c14ca2c76fe37632ff8a6c26816deca397fdda1bebc145f1f800e6c7bd26481a0945dafc364b930f8e2a47986a0f24a4d117c36ea7cdaf739066d0594cebfd3c631ee6fdacf4edce8e28c59888d4cee74ab65fe52145b0408a3fa3e6968d90f6f2c401641afdd1d0ca31a71b137a7c026b67c08dec845cf87d9d85a97146c971e5133e1fb0d9ac8a81d0c8c5090335cbba8eaee6323013f0b2d20a1d363b47a7c89770f026acdd5076117b42487498bbb0d7a72f398e6291d453efef3d6b80369c1f0c831ea42cbb45a9b336c1e6982426d4de6415ea5a229f69a64f790962be8df32359007e749a64bb5da5fca1453d6d76d5eef4f31280910f52e95f17918f225d44c70baaf86a85ed921052499ada3ddb670e2d62bd620af8d368ca0afbdcd4ee168a59d418d204c84ed2e94b698761beced2ee765e034f14e302049fd2dae217c9a660aebc5d36781dbd776eeec46a7514d76dbb6a23241f9f2154e3e548abaeaf221f96654b1ca43ee4c27d8840b5450", + "072430be318a2864394a0c50e092ec37d331629bca9055257918819a40c7c1dfdb866b55eccdda8774296a9f0095de77bdabc460bdb7729d98f31c14672dad", + "0236274463ab13e47f2c279640a519f6a1a4f7dc872868e5c81d7607712065f64f614430df43996e1c4cf9080f214f0d4fba86e934c9796aab3609208ccb7dc9792c447c72f9d940dcf5d80bffaacd3f4bdfb3cdc4a50b83c61e5766811609caad8b30280f50633d2ed5e4b21a378ca1d7df4dbb03ebff226c0a4f59d82c9f9d832d92d4990b5ff0c1b48f02eb313cd16d56cc6d2a9453598c1ad64294f41fa48cd5df750ce07da06e6d3d46e50bcafe646970462885db4f4fdd45d5955e2bd5df17cd4b9bbe06dfceafbb52f32d8a028a871bbeca79c9b294c3d8707ccda7cb94a814ed24bf8e68d19c701b89745577c8727a3029e07518d5bce78b3510bf95668aa21ad702a836da3ad15353750d281e269949b484e7d7276f35fc7a3ab36d5733c15605e57660749f33410bf0479df20f3d848f209eb025dd5853b480fdb10473d856d2b46ca36ebc0d57d1aaa3162f752bb9b15af504d328090859179ebd13532d03568f2c5717d6bee6e16832058917952498fd99c03778f573a421b6c2893e1e7493e21b3950108291306ddef322dcc215052aba3e8da0901ad6021c32f76e0aedca0eba2b8bc2" + }, + { /* i=5326 cDividendBits=3651 cDivisorBits=1879 */ + "6f562534a4bfca81cdfd910fe4c452aa9a1c6213cc3cbcc9aa6efcd211ce92d3cad4fa2c5c0d1ce18a3a0bfd95c299a950cb653791f5855859be41d1ee228884b59c14dbb5f97f5c1ac36ceb7d1c57eb56eb3f485c88460daf424abc7804552c4e3bec83f0c9f2711a013cd1405d5b32084b97d3bba7bf5ac4c0eefbe25a46661ef1d05fa94206baecaba3c85d4c89008c359d1bb2acdc7eccf804739c799c503770dfe94ac4b399167075dc402ae0736f712961a1acd0108a822717ee5fec5abe9b1b0bca656527e4a2ed7c4567f234fc59564fbf2460f46bdb42501243fc290ff53213f864ce0d235478f4f786bac0d84ee7f9b8f1de36c083552ddb0bee7d6634dbc8777516df4a137da9252d079ea30d71ef42f1213f13552f7d308fccc637efc455e331e2a82e7f39097c8a7c157369d763c6b511f48ece1b205db27880bbb1c9023804c2b23e3bc3ae5d0c7c7d497042fd2298f4145d0fc31caa71b09821ae7a105532c7641647eed00e6c69fbf87266564a1e6b2536bfde7b6e229f3ffae53963ada4189c569a1387f7fa273b0c2a6d60a366920eb67c0697b86a748e0fda83e93eac0e143f8a7620b57832a4c15c3cf085da5ab7a576df8f8166441bdf236a0159c4e20b", + "696bb6583bf8bb0e3023c3d5ddcf83a0f00dab0fed0a84338d9c46e53315c1d2ae74fb2551396c0a00668b3a1d18db687fcdf03962960eed495f9ce713850c3112a3968e6167ccc993854c7504502e3f3f8b347bf62975e6a6966d7fbe4d32bb0e413f6aedbeeeb4355399627de2a861df55756973134c72ba232a20221579da36cff9f169361a4ed275710bc952b09b000a9c26a1903ca21045f0718d2218231519ebcb43a7a2bd26b14c91de5f9252caa78d46ebee148e3f28eda8b45b97cab816d1f64b4a5d5beb7b5aee1a64515198878507e28e4cae6e987dffee2ed4d227d70bacdb1b0889a124de", + "010e5d9866ee9c9b43dc71e717c77dbf97acac47eaf2dc0d754a16eefbab9c62225264c1de440d86490addbd5829d896dd843eac8af73d0b3c93c1be6be9fd57ab610e1043e33b759b90d4077ab836fd955d324aa186958d61182097c9dedad5adf11f7cbc9135dae11e4e387e2928860a5f9e2b624b1bbae85d83de7c75c160be60f7d3cf4f2a9aa93af2880d64c7797e139d34f44f7678465614484bdedb8029c2850b9d5f8648f4dd04aed27965f7886864bbc16e9c31acb17e62242dc48f39040853c6cc71a86ab777d7ce465e4385dd1da51f43a579a75e86128f9b", + "3281082ac2caeb954fd35ab4cfa8fef60d29061be9537d6f4a2034490755e6f2c5c63564ea6305d0c506785d3eea609d00996ad403b1d2d7fb8c15a073d28245f143c629465d2e13617fc14960f7a8484fd4794bdd2679a37c1b5551eca2ce9d648a1ad3f72e0627ea1faa2dc0d94e159dd4a7787465f2c2a3f1ed593276128bf62f52839685264707222176a11a2462aab42556523ce435e1d7f239b53fcba81640b007d0debedb7286ba2dcb4fd594ff2db410837fa1a38c5a128a3ac047985d668f9b6829eddb40951c9b54ce5c54a659cc73d2fde7521f52f9c4344653a64cc1fb4895e4d035ff8da1" + }, + { /* i=5327 cDividendBits=2499 cDivisorBits=793 */ + "03abcea779290ef339bf2936fc746e8085ae3389e2eabc907b1c873ae9cbf3b23fba0051ae78c1970cc040bf73a28f203ff91ae4e963068d96d63b43ae81b8eb36da24480430996a5a44abc14aa1058e2d123069e63753770832bf0e594638746bf6ab99b664ef0029d0292cecb86fed8d9013534aa7cb356fd955e2557f4bf6c34a138095cb41bbb1a0e0ed94c8654d66da80dca55e8715f16569348d71472c4f1a8c809281392e6e005fc1a3ac177fb3666e0ed8be03a6064e14090c996a11bf288ff0da338529e3737862c0eb6beffe1184e0ef2a7b286d156ffe20444c9cfad341c5344cc0c63ce46f472f31bcb5fc69d6afe13016eb9776b88b8e8a9967d2e6be3c082d9feea21c52692eff68a419b2b0cc0f849c0222c5a5a9dee1c000d0a837769d27fd5e2d88d180eae01a12e867ca383a2d67e19f", + "01a6152ec01e4b5f75f1a0d6dfe008be6ccb004941e313d0d1ead263545576711485780284152be6c6c3ea1ee90686ab11cdcffc470a7c3e6ba43d84c5ad2c55da0805751e18e52a482ffac9aab954a422e33bac3dcf029961fe27fa64315293fe04850c", + "023a021dd98421b5545f4f87a8a02ab8dfddf041ff9a0162ce9607684b6a48706cf367706a6ce22c21b12ce8e36f4f8c9aea94ad5278449e0c58644402f8cec517730ed06a0259327673f4f19b4e6ba92b28fe5e32a410d1802bd63b3f0b72f3ec7a02027a7bebc5a23a900fd0ea905b1c29c514130b92ed3b159ffad2c7fd20b13c0156c71117463f4d93c7cbab741692f3a9c9d7a8da6da3bb325ac19375073de556e667823f2d219aa9f5dde529863641d5430b7c8264d8f194fc5a69d965e082febeb9533b9a9c4042c32cb0ed918f0327fb67fa", + "fcf204017d80af4cd17050e8a2d0ed6803fa0209e041e21c43844bde35b25a2e3dbcf589325f6bb210f2a3887e59f81bffdbb6d0ee7fab6691c8878a678ae16715d5e9d3eb534658be54a22fb00ba4dc671bf3ecaa44fc383e4f863c6e06a904b21fe7" + }, + { /* i=5328 cDividendBits=909 cDivisorBits=35 */ + "153ab6a51e9061c2a4dca3796fb2705527c5dee6ee3e3ff3efa3448a57e9a071661050be41cd997dd1fd1dc0ea7f3ac9bb210c784e502f9e57709525d629868195583e046651a8d12f2d0afed1155d04a04cae829698b942244c677c7fd865a3a339b94faa89cb71b44982d2cc69cbd0621e", + "f83e4f84", + "15e486b55a0d92c28eebad64269ebc365faa31ad78ec3290faf977a83a705f6ef1582d1d9a0f5eee16d1b8ef1d4b57f4b8a392434df8e4b8b5755e6fabd35c9b2ea89259adf404f399a1251cc8d877815d64aaf28b8e61b32ecccc713148608df145e2d4653a9b59993761fde862", + "b2725196" + }, + { /* i=5329 cDividendBits=2194 cDivisorBits=355 */ + "fe414c9930f50a859722d2ab49ac6d876d6d38dcbdbcce58c8efc19df85b11c2dfbbcae1a070dbff62bd28014a62a0ca0fb0af94c2d7c48ace537830b587852c0e35eb689668f6d9a6f9dea185a02c7a93a66de68c054e6ebff9191ad57bfd54268d77dcdf15f64da7c40267c8bac4ca4e005101c86ebc53a0c231002b6232abc91c24619b5f3b7b6de2da9f000d492058a94f4260458bdc92048874d1ef82d7de7e2a410380eaa2a79e517df3118ba888349f26998b51823ca512f9a52ea6169c190bfe7e21e0c838babd62cb09bc96e93a763137c9759e0d2b1bac24a7743cd5fb0fd2c6844f3e2c1a5852d4d3fcc1e6e094e11a28e0cb12c6585433b8bfc5e1e85e5e1395bf06f9f5eaa3c48d0c20ca7a", + "03a6973a9b7c12e57168f665ea2427e1944b3d914f690072b669852c2905dfd0d6421112c5564d5ca9c83320e8", + "45a50b984cf7c933d432385a4f172296e351dd98c8f630e847467d1767a8d6a9c6056515071dd94882235839e3ccfa199cf2ef24fa81cf9e8549bb5286aafa10b43730cf62e2eb07de2ced3652ebbd3c028f7f2e08f9ed24a38cede6f06ceb263c698169161252abdc1605f53e9ae08a7f214677a4b63588269aa86c4b59c7ea79577c961105f36a52b9f064ca6395f8fe36df2ff4a90b01c5df8b046ae69bf534c41fe0ec4f2d02fb5f9bf998cd041060bffe86350b3fdcdaba5c14ae1de9f32c1f5a1514d34b490941aa7f5d8512e12226b77933422061b4934282569ffe5a0e41f8d250a3", + "02e85ad09a7a9a34cb49c3034040aa7982dc9bba7cd1a9e07f9604231cea0f4dfe8f265156eadce928dafa56c2" + }, + { /* i=5330 cDividendBits=3276 cDivisorBits=3188 */ + "4eae2375d26b366773afd24c9fd84243e654667a7dccce60a5386a2c1c65319f969fb8b1add07f5e438e811ee4b1164a449eebe3f7c4586919a5975f56b84cff61cf01a4aa23c6f000e1e629c4ff5d76355c9dd645353e88009900c1c357829c82dd651b7fd89ba2a210b95eea5a8e520974bef2041596857ab20680506bbd75a8f227906647a6fe0c83d7d191a0d2a577fffb6e5a9eb02efe6bdc07f7a20ea728cb6bae4bce01a587a36ae538fe89b4a95ba147288d934571b192315ad9bfbb312284d76e76d1f1396bcbb5eb107166030f475c7529d387afe3163b38dc77329a96f3979b9071ab86c50a67bb20179ce8da86f8b109f29c0078a53e489c8bcc03c179286579b74a96d1d9c73ebe05fa99a492119117408b51d972b65d2f52167308ec56a9dee6488e0635e7a6be317d14f8a94a3446d3964a04571e4f952dc61718151516bfac003db3054e2395d00c33b8669e03180f9c858084223ce225b57ad0c985d2375788d78deff9b0e568b920d7f12ad7ef926c5f397864df8fab69d4b97d0d70e801caadae793201d73e1a153ef15b5878abdbd0", + "07b2b588a517d448477ea14d9400fb7f88405790e0660b05cb51c92374262519b178e597ac057567f9c1a69c21aa6aefd384f4c409e3edaccadd378908ac8b16e3fe7a07c0b7058d9fe1fa470d8b4f387f25381724c8336cacde680d41e6cf08b04941749d1801bbb74065420f6ecd3fa7eac57170d2d2d956d556fb684d7dfdaf24ee25bf9717919a5fd8be0821cf7a1b6635c3f88130327fe52c899a349bcbfa6c109614c05bb7d49d8870771f8dfef165b29a6c33a58621088a0d4afd31195e71248e228aa6fbd2354accd5401da91941602fced8d390fdf4d9a660174fd147529585adfd5b114e434389ba1815c2c91eaa5354fe7507cb5738393f04f8af24abfb6ec7cd729e9a4446ee60725a02736459f820e0c134620e84c46af92b9c27fcc903d60367bf15e1341c024818074ce259118dd263ab4641e8bfa7f85f85c79de161557e1084a1d9afbc3efab239999d6cce75d55fc6bb42fcc6b45441ea38eb914f2dc7c8043cdfacf6285a70174a96bfaa88ad98fa85b5a8e98180a82a019f33d1f6d3ec0fa3502a85ea161f", + "0a388383cc26251ac0bff3", + "04b8a4e9137dccc8c627598244e2ff849209b1a5058a0f38dc4877c96134587a2252fac4ecd5872691289b20ce4e2e1dae16949fe6a694974edb9b675cf7fa1c5e1103e962f2bebb41bdfb053afe5fba53c47c7f9f8803ebfb24a7b0cc0ba0da46d08e4d78e168544c4477b5468c624688638cb8b69f1a67fddd39d1ac6a1ec6c2126e8c9bafae7596a9f7602b39515cb4c6a78598efbe3a98d794c0491491b91ab7bf251173a33e430905031b2459bee9b034293645bfbede4759c27f52c3c63c3b7a1d5eed717c97fa74d723951ac274e7cdd5eefc3417a09331d595da8c896cfa5dbfe9d49a00a57c156983449a0805585982f8d85c4f8dc8ad3e58d9621361c205b730d1b93761252885da8e1d7ef2aaffa89d23d31bc575ca97203456781d4635b2f71c758ab14333d5f34b0415a479cdddf124544cfb5779fb077990086b3aa6b1a4d7743253ab5548143eea729a212a90ae2302ae01d72975a2a3c84f76eb9fb5d9fa64f66ceb995e4fbf45d7bea22fe1df169025a3724ea83683f06af39db8b97300f884cc86c6f7b7bb63" + }, + { /* i=5331 cDividendBits=2973 cDivisorBits=565 */ + "1fcf46261d48611687be6df6dc1c22084dd867af213bdbb64b9e3ce280734401186204ac111b24872f936f198761da330c20fa31563242ff4d889eea10ed5286ceef5300cef1b1064d9118a9ee67970cdb076c9a42e7dc5a4a347b9a3413d98faa5addc5a781c800e69adac917d61a1ed20cf969434d4268d8cfa6eed456cbbfa43540d9726865aa879119cdfbf5e690d9453c22b09916150d64518fc560209e47bd38c1f5ca2d1280f9345b1f104335f297226419d6cff5bced0b161d4b25556aa2d4496507e760bbfaf1fae0858800bd3ea8ccf4ae350bd4acddb4e78751da6a8e2efa6bcca15a1f916f26c947ec8eee454fe192fd85f2c7c897d372e93bbb1bc0a91ed7522d00bf79f362de2f7a70b604367b72926cb7458d182b7e5a79b2a854518587a391703e21679b445b5f1328b10bf63b87a2889e7417a81c9420bf9703409dd884b40d78ee9da42649b5899d5d2f5f3d824fdd51131a365a80785556f0afdcbb4f9080f3f14a1ad39edf419db71fd1", + "03394c5978756f07334131550335a65bbc98be0ab3de4271952a774480f9c5ade6e718227c6c9e535145ad94e25a4eb477a6d5928932ad20367bb18afdd818e39f9579055bfd46", + "09ddf82e6dbc8a29c87e92352a47d9b364c1b4d61e01ef24e43da7826d2e46184072b52203bac0df9050f34021fc5a9dbbe49c327e9a6fb0fdf408d7d9613831166faafa67e16fbd336f756cd474ee9e92a53c6b629b93cd6e5d1934118094f77d5f73e97b027e75d22655fc57324e19c1013f5a41f246fca46993dffef38ae00dafd759f91658cbed8fda4067aef902e021727f3067f4b5716ea711db6ffe70ec430c9ff543e6d97f9ea564fee34de5f18e8a6761c88f2914364fdb7f2b1066994149a3ca5592b37d18abf2aae0d7aed25fd46ea6ba79072bbd307da6e834ed016fa948ac0ca8793213d8e509d9bc269567fa4b5590d32f4c049c48f6bee3e51d6c5e273413f6759bd1cb276c121efff9c8fb198d16a77ea33873110d7c2e75793a73a0a76e5d34557b0019b1ec", + "b86e80cbfe1af1975d56d5855d0d5eaa96aacbb707d24cf9d22b7578e7a121284bf947d7d3f5dada34ef47f4461af2c6070f1ab6f8ab9017971079c1a37f0ed3f25e56f63d49" + }, + { /* i=5332 cDividendBits=744 cDivisorBits=402 */ + "82e71ce93048d019ca2750d27e0025c670f1257a2b98bba287c9e54fac2ac25711f5a290cb6d116efe748fef044e557d97548e66dffc0072dcd8f114eab14880974d2b49efd8e3cd3f73e5cf5df546c5caa8712b81e61c4848c582cfc8", + "030a094f458934f6648b8aea00b89c0fb1f42d85891fc78fd92deb495bee3a4f31b23c3d1b604645822dd65cbdab118271e1c1", + "2b12470d470902013e0302fe0090cb5d6fc8f9756a38d7d9aabc2cd6e7cc5467a4d7898fcc0888dc429ffa", + "020d6be69a71ec831fe6114638fdd12463601a121fd48cdfcb4c4bb7e67c89f684ccaaa763e786ddc57823d0abe34497537a4e" + }, + { /* i=5333 cDividendBits=156 cDivisorBits=25 */ + "025e0dc5be4ebc111055398b9000eb6b3352d76e", + "014815e4", + "01d8e4f1c9cf7b8ef00caab3bab70c92d7", + "9c6cf2" + }, + { /* i=5334 cDividendBits=1679 cDivisorBits=1095 */ + "1dc1981a6c0b8b356ea331c2c6967c652e8646f2e756848277da906c5c4a143e028316e249de0f1183dd2a40d0f2a7f9489e46c8f8bd246f3bd6b5605162e1c00c1fd610308a0e17f8ef29817db196526d23b12c3ff3e2f67f421ca497d17a84c5cdd1ecf81cdfecb1ad66af4a0af039614f0e6faa374da8c2a368863f78006e0661d79ae9e13b9ed6c193840b20eac1fca2dec35c8d79179f3fc3c1d2a02b2898aaa73f04ab1c1321154ec25b99b2d3a3ab51c6db52387101ff6ea2a3ec758d0aacd81e8459943caecc6c08f313502e9495", + "73b26c558fa131e93672049303f324dca2e87cbf4ef84f720030625998153d7cdb617ef02e85c2a244493897c439df0e934f6aae37369491548e632f6221890fdeaefa468cf753c5e354ca5cc9b1c287f82e029773782ef7b31dffca96270b9eec2be75471f8059fd89abeb72cd0335d509c45d4cc157bf36581f15f2c920e6a6ca3396d6826334430", + "41d746400115b66654c7da95ee02900b424b80f413d7a3904d5bd219679f24cb2d66e400645572eda2b54e67ebd8135994b2ee674fb2297fd3d4f437ab3af16b4119ad61b509889364", + "68772dd7e89cd9782fed796427228ceccbec7e0b11e0562b85baba8f292b751e0d23646003d82395397b2e0fa837d5f9a2a61c320d72491bb6550b37a438bc8551415209c9d35887ff87ccf75328e266cda9ff5aa94dd95b9fbfae8506acba55de3ed0f21e3fa1df7b4084ca3d718a3b35bcc98accffd76f84c9d794566d2afbadb395e9e30a8061d5" + }, + { /* i=5335 cDividendBits=3918 cDivisorBits=3074 */ + "2237b4369b3915d8d610c0e18282766d4e232882f86f3f9f00942b12b50371929a2cecaeed5d227d5ca1632cb000adab41b6dbf5c962c1226a09ccb267d95d1a1c9d75bc37760c78bb3b67d78eaeae5af91d8ad258e4cd7620a559a52375bc26847605e3de894252cf81fa620691741c2801076073d2b4607a784d4d2049e282b3b954c1a043b024c5c54c4e8a04f26216fa080d209be30403cb6c0093c7815ac6d6f1307ca0c1f0f206246407c8d0f0440e71ee9d50b780278041f1b560cbc3eee1557b6e6b316dfd88cbe4e1ee2ace7c718f5d00f7c74d28e65eb8fd96dc81669142c68d32efa9b0155a1271626267965e468c3a18cf0b4c6c89a710ea4cef28d77e2098814c86d40ff0eb166fb87cfe1dba133391d80bc716770942e0103dc25cbaa14dd3054eb732c860c21becf86fd767d6df5aa8f99c9374037bcbc4e8d3dc3fd65d6d857dda85a0588e9aff86626a2abe5ae96ab7c09eebeb4b92e97eee32c68ecba24d2c432141be6086306e562746ba1c2bcb58c9a729183ab3ba02fcd2deb04f46c0e976dedc627839041a1de2154bf8e872418f6c1b3fc9937f5ea785259ac3c256e1917c0fdc94dd608f341917fec7d9276b0827a3e0ecc3c37bb247df093efd4e045c17fdb02b6b2f5e1fbc71aca9759f34b7e58c59be14c13f22a0bfb6bf6ac23144a9", + "0325c3d6e46f7d36ac050fc2e1755db1c77dda8f7206507aa61e902d04c1566ebac64c8a0fcb14dc55de279c6c3b0e17dfcb9455f4cfbdb5e38956c43119abde4dea758be13f72346649062df489a8e31045646808c2e3adf2454e6e4a0a5aa9ce3829bd532ea31851c9bb98924b55020c790a71aaf215dd5abd62279bffd8c84377bbeef6efcb4b3c7514ab1089065993aa50b871d10ff5ea191598fc09426bea02a4b9a61c31933fe895292c5932a8d2e13d1fa6f30c93971f66e40484edb094abe0f5567cc27a8ae768867e500e2de424f39a85b5cd9b1070859ee77b798792e34bb27ec4cd623b670cc552d47ab93bcf49d6ddfc3268d946856f60ae82bf00f312e7767699f84998a5893fddf5809d6f9d1b8d20acfea4a2846a0af148768651ec4741942b629689adb8835065541eea167dfcc054469e1e01a371bce53548c278bad5d79d75e460acfbd94c63a4a09159d48691c3e3928b3ebd57f72faf13727cd3fbd1c71c3423f4b73a1e4d9c60929082e38df9f064ac629cec68035c64", + "0adf0cc79f096eb7c1552a91ed49e89972d8efdf6b4c963f18d85de710077696d8c7e2542501ea1465c708f2063f53358985d850d8afca095c7d962ab7cb68adf6cbc707fefc8d6e8832d25aacf4ba40d292baf4a64bd955e373dbb4e15536de7d77338dfff58940290a", + "02d1a081ccefc77edeaad56809dfa61f1bc6a3cbc3457f5290131c5fd52ca69e5f3745f6fc005aac777f6c58e55a5b6bf9900ac577fec3f2a0a51577cb987ed216984d7e4b4a2a90761982ec906073a95420666d5a22b560ccf8b0fb5124d9a5599eb09038ab33b60dd97a01f73fb5a8490c3b8b689d7045a8672f7488ef1968db870063ecfc8d0a0a5d52e981cac5e11d9950f293913ba2982fc73183264c833607f952498596a65186bb3276855bd871577881e5ebc4c405c5edb3956c52fc1b30f67b452fd8d56b3947ef61522381956b9e089ae798ef5c4f890cfb2425beb58298aeb98eaa23ef5290f12014e5a90853d9fd92d64950ab24083fb0105ddabaf9c19140098bea24adde887e7901670aa038d276b101f3106185236fb1d8cd6c03244c5469e17cb34041f7833e284cf20af3b8c152aad6ab340bf9115b0ebab4c5659394f757daa3cefe6d28c3379bfbe8ffb147c5a03c7d8753eda984dce4142e580af6fa3a23fb5b62a3ef3985fbe7a6632566448d5adbc6a3ec898b43a4c1" + }, + { /* i=5336 cDividendBits=1350 cDivisorBits=109 */ + "0f623eefebac473be09f714a6e763ac50089a3364481e976b5e791964f4943a69398920b92bc98b2e8da221d86e48caf4e50eb3ab78651776183c2a7fc1f71098b007fdc356c104e87dcd9964b8b735a71b542a6d99962f60cfbadf85f88da03059e5c5a7d063d1fb477fa7233380ba5681cea409bf9e7887c19c8abd99f4c81f0b924a62a393d2cb67743557a572bca3d4ac413a13ad1441d028ab4c75a3267556da1cc94f9c960bf", + "0612b30b923995a96a724acbc485", + "02887acb1418cf32839a6e2baa96f301d2fb02ba36727f658f3d3193ccfe208d621c30ae52bc9c4ff33d229ec5b55fc52e8a8e63e7de33e604569fd8597a692c0fb9f7c2664540b2725333bd5502480ba05ee4798cd8c43dc008a8f441d1c69f8da50709c267f84c66e660fa299811e837f0622b8e88d1beed324761f84ee46f737229ebd264cf2769509e60bdb38b6c4940929f84acc252da134c65", + "028fe4534dd4de761036212e5c46" + }, + { /* i=5337 cDividendBits=2245 cDivisorBits=1353 */ + "11dff00eaa34ba4c36391bbac7095b4dff9fa5fd750ed45cb6a039cb55a3d0ace2bb9882b9e2a9473c77a209b0de32dbf5ad6c329163412993b3f5a834dd9b360834ab2954d8bba8ad10695e27275da9fb11ad6e3948956231b569c574c1f2c66a282d242568a190c55d9dcdbef59dd8614aa5ec27604ee30f782c457b829c96989f578a6f6d52604b89c4ad74dc8c10461f8b7f5cf66159ffdcd225924615612179579fe258ec769d847f02c8511b2c75e6e19a418737e4af890fc567993f916c9639896a587c7dff2f5828aa7bd281882094370f0875a8bdb5b0d7f45c3c06e808c1aa595fa6bb86d3eccc453d5654ea312993fab78ecbb3bc5b84ec5c37b253ecf82b2ad8e41571a58c2bee4d1a98e0c30ce3f932539c27", + "0147522252ce555bae9dd1f92fb3e697a3502842a8fa7fa42fc23edfd7160f9ab55658f6328becf1745fabd373d0830ca78f55d96104fa743ad8451fe4beef9c5f57d9737e86d7cb4b228e0c154d234a6ccbe978661647e4ffecc1a0789d9a2662ea49af55acccb55da1fbe45c651702bbc9626c73bcc70adde8e700e747fc8f22f474557172a4e3fb0bbf4e0d303c6a0cb3566c2a7a4e01aa96e38e2f52c6f8f42ad4db6e0570bc1b84", + "0dfadfc3d5d42bb7edd19c555629c55c5130473d3f7b55f74d805ae0228bb0feab0c3805b181d06213c269f04731a0d8cc745bb947329db3f5c1287ea181489df827e736763003978cf768c2ec7405e4cd11f58923ce5e3534712886896523594e1e44ebcadf8af232c990956413dffd", + "de71d831c92dd2a6ff5ed38fb92fcd3cbd9bf442e780887219dbf720e1bdebb20796b37bbdb519ad47df08a51fd3a8633fc2c15f5aadc115e94346b63336a8a5b41cd521fdf4a864a81fd6b744df052f2a28a8d5b067ab3d90ccd97d15c3e272bd9273673f3237c14d2cd1ac979cdf18ab524f9d44fcd910ec1e08c39eaf61ab77612eb50b95449e40abde80c5bcdcd3bc328e016a8838a05b9a9b33da1584f370274f4edb51a86eb3" + }, + { /* i=5338 cDividendBits=3104 cDivisorBits=761 */ + "c7f250288ee906c43d6f3d42f2ebe29663d5f2c0921a02aefdd506f9c8f18d6635eaec65a44e62d0dbb0d52c9a750d829fbac422431efabe67afefb55ce3b60e3ef2fb8ad08da3b51589bc79cd3a841eb58b1795a7bbbe26fbfb8a5e3f8cb3ae467adbe3929b5bb39cc0fdb674ae8ae18e08e1a364dd1e325cbda36df7ff41c2f4a71e81e564d80f1b819607ea758af2bba060138135683cba599f7607d38801f0a01a84b8ed9b64516857a27368c79e376971e8d0ee13d1dbfaee962a8439cb9d0e2189240081290a74ead11713f481b708dcb236f5c3e49c56d5e1aafbc064ddfe296fceb3f8741b515e42e1917a014c506f22e12aa9807300fecd5f0c8665971bf56c537fff01e3b69d69076bb6bb22a7ee0689a65e2384e2c2f4e8c015b62cb095a0e1ffa2d555fa9012868d6ffa68bce5df13f93e22a49e18d972d381afc5b60c7c9f5f50570c83359aaf49b68912a45aca6bb9cfb2cd66ab151835faad222ab29dd1cbe1e3069ffd1f648186bd5157cbfe3cad4444cac89b4def95a5227c473bdd", + "01eb11a41fc5100279c47cb4582814bd6a2dbb6f392eb028051dfde5ccb49d7567a95a176ffc8967ae43dcd0b4ce887ab7ccf8dc4c05ad942416c6398e36576386531ac9913d667e25d4eefe9b8b0d7b160aa58471c973b9120ab9e079961760", + "683c06f56b38e62c693f591aedcea15b558577bcc04861c1874695f86824087299126df6d620e9f67577e72384929200da03070b05ae47cc50e34e7e2d4d02af1a3d0ec633679802976ebc3634a083f976d35cb423731dabc7a8d7bab69cfe235e296d5fb645eac492ce5b469837462707d6e7fb53981c2d68ae359d3e1b89cb8b5674ee407c15cf609f95abe7c3f38f2d828402a6877c5edbaf279b2fbf3b6a01a90d5ca710892e16d6fed4d746d52c004519e7eaeada0087460cca582f3052d0610ef2d40eebc6b8dc65709cb434cf6b0ca9e384265d19d89f443da333bcb900922088e63e8958058b17bc83248829e719c0d44d708d196dfb5e556db024a297c5082840170aac208bcc7b4286d5a825500ec68e3a4d57cda2b2f95c7683f5e75849098c", + "01337d9210bc1555b955007e19bf3c8ddc9f22f0a43a23ad5876259375c25e16c3e4dd3f8b4513bdfc157aa47dcd8c25038bafb7b6fd646db897c6084e23cbc43fbabfd6b23bbc3799db98a84e741b3ab9ecae390caa4082f572dea40d00135d" + }, + { /* i=5339 cDividendBits=2169 cDivisorBits=1285 */ + "0148808c2e2a4c50e267de49697e2d651473bb95c71955748ce282d65a1fcd4afec0ab0cd65caeb9e2bec7a69abd0394e32d3fea2988d1cb8df26475452f63b7fa229afea2f7e960d16587188c107ebc41de18b8f0ab56a75eed40ec47780404af630a294a2d4977cfd4b6e35bbda144db0e516676ed33c84c15b03da26d66771efacee736c813964051353bf225acb97e1d3ef3711f91e95a8e1137a63292552c24d899759c429fc8f4b681c46bb6a6057f80cbe1934befb6582475afd05aee6cd2d115ebbb09363bf9fe4415bad899a116d6e5afa3c8d5271971f21b1583febf0899082bee03e8aa2bd7aa9c991a64cc3867fff85e497c1bfdbeec9bf7ffd717e7d06c42196a2d1be2575ae4353d5d", + "0e0abc70baf6596b93560ffa6e403377fc6ba27bd809b1f94ab0cd3bb85dbc7442c88b7cd19b7fe19ee9fd57c9edead4dac5c6c8bb48a4bd3ae4f8249c9ec06462e9987bb3df33aaa8f99c8f2999e58dfe06050a700e464608499fc6638b690d4d684d498dfd1b4e334c475fabee809abe75bec2d56cd93d14f19e2309b07bff8f61834b742bc6f092a88ad98783312e9692170131dbe70c81c85010f167a3d92c", + "1764f4ba2317cc8d4bea037077169e2a9b3353a6e3683b5778399ccc76edb33b6c8eb3cf15bd3f1d7a5fffb1d45500cd92ffa2aba7ba4af2551f9ea130b0172ee2f874e32699fd6850b3ad089eacf275fbf42957c92357c97826109b2a9e3d9f58c9e36570e009db1560f4fc16ad46", + "0cf4a117db57da6038769940a39adb6a7c5339aa0ac9f928b35aaea04b4a30871912afee1c3ae18ed57c5c2c8027557c9da0a8c7ba0a8b10e2da7d0d0d21aca3e47e8c2fa43e90e437404840cc6045b7394ed91b401a7fd8dbfa558f0ab8214f286972522a96559cf21ef419bc57eceedae218f86bb86f00a38ce1bcf8d8aaaec825a5577c043d34c3fc6b84b8bfe1b17ad9120395ecf7c809758ee282d9dd1f55" + }, + { /* i=5340 cDividendBits=638 cDivisorBits=303 */ + "2457308dc21d53528788c5a66561856bb95846b70736b015dc86e441fe343e2710d8357a2707d9f2a99e06c41c72ff9a85f106ea5e6c22d9570ae91cc8a08c543fb780bc6805bd9c0fa17af1a67ceb67", + "431dd0e37a426b3e58c331c31325bf9436b2cc205b363d7f632b147363dac9709900300517b9", + "8a9cd4c31a4a5e2629eb82db2dea5614ff337aca7f493357427dfc7993b8d937b8676ab053b0ce5b68ed", + "3cf2b7ed60f5b25004bedd5328b247de90fd4d7680a12a74c3ece3e351a0b7254d2cd35fcd22" + }, + { /* i=5341 cDividendBits=2492 cDivisorBits=785 */ + "0b9591b3493fee3e25fba955e99a12754f81e38a17af44285eea1f4b33315c693f5ca9942d8e7bd7a09098e3398e2851cb75806e2987622d99540b8f3626d2ec8642affdef96b5d504c1cbce3e8f73224b1ecbcb141db6200459cadcf17e5145e6a240018f52e9afde009642917a9fcf0098aeb7ecb287d4a91c5aad5954af8ba9fe5036f139fa345e7aab4aa56b0a62c033b6e4a1f066961ec7d73a3dcb1cff5599f6749e2398b4de404478275dbfa1cc502308009790c330feb687d19f431ef9d49919f37901827336019ac383567dd7fd03bd3d1a6043043acae86b29aa2df32fe5f5bff0e001f600d0b9dd86c4a2b0944bc7796705103d66abf96e32b078fcfcf3043d4224411c23e7d624c4d1b334797b772309a24ad229dbf5a2bd8a3540e2ec9400072b53f57f86ab35eba4bfdeb2839ae4a9b91f", + "bc2175b8fc5038a598833df971212e7d2328d723a2272c22c674f44733813e3447cfc5093afe45abf5d6cb1fff4cfe0b43c2cd4900efd018205cafbf70ba0271a31b97d4bb973da43dd1b1110934015abb2ff62123e4d94758003488a9c6750ed9a6", + "0fc36a917e5ceef32d1a605fcbf3bec980bf53812940b2ee20111aade31cabbf1d9a4a3e5b66064453d864510bfbd6bc9c4c4283b30079c4ff3c23bdea01e7c32b37a4210b566541bd71dcfc5b08afe482eb4e02ee0f512247333730e7857e0ddacab84c9078a0c318887f5a1b240ebf2e5d9b79c804c79f66d46595b23110c1401d8f28f987153edd484df22b941918eebf8ad9a67f556d9efa00f59071046b4f202b3f3a8381d26da65ebb5ea9fa0861e48474c0d434b046758b3f2235a8f070b453bdaca525f33a613eba9a124a10517f190607bf", + "167626c9b60809dbd8e8940c6eca2d445015aec20fc3c0a5a003fc0b5ada1ff5039e414a5176e0362ed77a7baeb3d4232073e5761acb217cfee4e19fdb23ac9aff1a2bd097c7222bebc87db4bd38a26ad510acfbdf9b48cf9d5f3866ba61d6bdcc45" + }, + { /* i=5342 cDividendBits=2598 cDivisorBits=2291 */ + "0d804a2bf034d85320f66b2821fddd72acbd9ec5f6f134c8068f7d99fa9cf3e8612510e2ec98c8888bacb0c752320b939cba1d85b58c44bed20cd1a4e2b9fb6505e4630c18ce23c6bcc00786ec133fe55bb47aa4c23750d15a70b71989b945bd6b136dfd219b096d590317aac2222d57781dea9e47ebacccdf41378303dcb2de5bbc48ed1b951d120d5696e277547ee73c411ff71aab23c98b8805af613b7e1c052fcab3837a9f3d5586b3aba569a20b399afbcdfe0d756a93767b3c751341283008f6cc7705ad43d38750abecb684b7b1b91503a89002f6b085b4b2330d71ae47d875576ad0ee303c42a4c70cd3c366777675958b6f58103b98e2ef1c50efdac1ef849108a58d2b679d168229b5a13bc5af1c1de40bc97a1d3ce87254198b0e8b0d7470f32c7761ccdcf57370ee1b6bdef6c9c202a72daf81004c2b148753e797058cd601", + "84cff7d39cc445fce270ddb9062ebcc43d599cdb789ea62f6f85a70d263f11c6619d3af43cb75f850a84b7e2debc7a9da7aea5de98b90bb55e264c565d2ed15a4101e84e93189f2c1be238081430061ffb41be5b82fabc3fc9af71956909624736928c1a1e552f18b7db9d884d0a7459926a1b5b501c1932e90f712016cddbf360571bbc8bdb817fb27e47c4c0928e155477b799de000edffc5243facda29f81cd0a12361ab8b5c9f3536a000ea16bfb8b88c2f283371f6d9d079abcaaffe9c5713fd14b9db835b3f3684433c39ff582b32420e3747ddd339450b34edce3b7bd7f0c7b06fbe5266469d5d6b286fd08a7891a0b21018db70da62b9fec8ee1e35123ce610b709f55fa104dcfd27277db8d0fcea8fc4c0067acd1508756ca18", + "1a061b3b2ec196554df9bba0550d544c768ee1398e767c6eccf91eb3164a8481e4687eb73a1e02", + "22aff07e871da94ca6d026fb4a54ab934aca307c6b5e1e2d5a66932f3dd4d6b14df2a62f95d4b2e050fef4d1639e27c652723351201965d93ff716cf13b48a43d26c9408f0b996adfff4ec366b2c4caa21e6d5baefb6af7ec0c6ed55bca2724333dd99da61932c0891288a6cc2963ac1d8acd65c3a12f5dd452659371029ae8433651a4042abf9a993e713c574f533e69486856283e8b5658a5d960f677ffa8fbca81c5313a6e6bd276f619964cb3af75b4c3b06608f3983170a7a4f05a1c7798ff4cab6913ed1b115ddad79b835dc163295125804385eaf9bd3c2560af30766177394d2e1844b93028e32959122591ef8d717600ae216e1b661ccf0d801a0ceaed912397d1273932c39f64fdda331eb2aaa59f95a058643e928d9c071d1" + }, + { /* i=5343 cDividendBits=634 cDivisorBits=34 */ + "01571b1912ffde675f8c8cb023d42ed5f8cc2fcc3a4a0fd35638a44114953e3ab1e2d160c0865ac4813567ae838af7e047b23fa5786d0dffb733fedaf7c5d9003acb062e0d63268dd2c1da2edeb92cd5", + "03a7898fcf", + "5de327a32da621f4f4d14930ae23f0f80c427ca3e081e07d662886b06588bf6dc7c0947defed184df758775d6e8c2fa121f77f85bd8058b835f56a6181739b92d54e171a89b13edce42118", + "0275ee026d" + }, + { /* i=5344 cDividendBits=3057 cDivisorBits=1354 */ + "01cabd6549d9f382e727c2e1e0c229f47cfcceff0024b15a5d54a4792eb57c3719df13acac4877b42b1afb95153b54da2ecdb0971a59cba73f978e2d0e28c0d865e61cfa695240df6980691db18f0c299f8e776280ac41a02ff54c760c31bdbd2cd7c84afe9f61622b0d05cc97fe442a9a1aad3a9876167a91f99435479efba3c8b5fcd0ae44262b7db12e2a752e760ac450c0af99d4315e6cf23da06002f4677c468f1544c866c21cfff7956831841fcbc0c9b1af9a555420e8f017dc237ae9bb288dbb55a193074e411dabe0fee2c56523b769d91ad8c84ae2268864455ab79031873a7e48bc14b50ce685bf2af4bfd2e96a33791512b10a2847e5d100c070ecb5668ac0f97a4bebcc36ed51b4082540cb8f4bd79db6ea0fe987425548a23b3f999b1e91ab66b7f7b44c70308b337a156b78740f7f6635d0b34fa67981f14af796faa090b4f3536182c988c80f45ce9a94f2d22d31ad511555374e9da57784978ce5281049c8fdd98d423c950d816b6f1da2cafd908ae2e38def4ef28f42", + "6b91be464b921351d1e5391042332409925bb97dff62ed1fe8933ae7ead1454f256744b011f5b1961a8d0a484d3b7746c2e56dc22ff3a519b2ff2677e0ab54e03e3fc8e86ab7ed9786ad246273b6b7e68c474ebd6d6a8b75c3cfea518e8a210024f110a13f492dce67ec15d9ed091cf8490e1bf9047b3d68f94f873ea0a005e3a484d5cadde15a2162a42d6914dbdc2e4c9ba88a5acd3e8ddca8d9920987d8f56de9a2855cc1ac1dd3", + "0443bcac35d4691ba64022f5209044fc2a2065ad321a608b6448bf9b2195dde8e97dba2d4ba9abd303ed9f6d1db96740197b3488e05b6f5fc44b0ef5a1285201d87f36dc1160e5c9e40bcba820adfae3315d2a78c9335a2fac4e90b288eae6a1ad02d02b1adbc9de73a6d67b7af87511ba6748def6f36e2fb878cb9eafab5aa54618312161ed366d7c134d642c9a82b7013a125be06223fa19c849167d2199cd0df0757f7edcec91ee8ace2a600ab2687f88d82a9c194a4937cc65f3f146924f3634e890283a29852987805e7bef7239311cec41f031", + "13df4a146eeda9f2ff24d1b70f84e4a330ff8c40b5767a1885405798a5c01bcdfb7efe39b2086222c05ad56f9dde318ab176b83b9b452a62b03f9b8aa139cae1b6c4ed036151fe7de4c2ddff3597d34257e6c6ab51d1499953720326e08e7dcbfa872bb7d0b09fbb8610bf196dc56b40d85fa3860966865f793deeefe5479b5b6c321bd9c5f538e39482266d22b27cad7d6fa2042bb54cd84cbf24afc421641174b4259356ca7809df" + }, + { /* i=5345 cDividendBits=2918 cDivisorBits=2474 */ + "2ca3590f2bc8b7e0bbf2c94d9995ef0d8c6921204700703327941072918c6216abd5b6901db8849cfe3021dbbfae24dc0549963177ede15f1e935e8a85f9b994d7bbc429742cde88f91f6a0917142d766f822f919e617140f5a8d9c0ba2215d64fd74065bb6a8ab8744c4953b1f5edbc34c2c872b50ff5094830bfdf9a4e4660599a36f7a79873ab428335120c8fde44f5ac8baa179d24cecd45506cff4a070efc036d49aeb32ae107578468d7af7b7ad7eb95b991df093ab3ec69753880747d2f78c8cd137efeade9a604ebb5c47891e82916fb14b79b8a627810ce1ec1a394191c90a5bfffa6d5e775456b9a788d71b6db570ec819c3fa28ccbba405ea8ea2eb217408b87a8ed04494c93bddec4a4fea65fd12d0f7a8eeeb5df5983af15bb167507a18c9cfed8217e9dd043325529e8f0b6c50d24d8176396f8da5b3ece9bf5a233e423c57c982f702828113b96e96523174762f725eacf790096f233ad2de44ef80b1657fe3fc221bae9932", + "0302ddf33244ee0ffaaa42b7c147a395d23b8700e8b180ad00e47f3b887c183c67affc15e5ec42cb36ef5dd3967bc31cd7bbfe7cfb821546051d3e4196be33345efba9ad3b13128e928105009ef413ba1ddfc83ec5905881a3ea4327c742867ffe4a0c2b9c618bca174bd22398c66f173c58909ab39afeecf833d4a108f829f7f0dc752b61cd8b9239a6c91faf4af3b5004ede8670455a1b0a4c544ee4f4b68cd1ec2cf7cded52870b8728726417687f877294e932483e5d432f59a92b4098a9f2b3a6722739a70bd47ba5b604d278b4daa2ef33654885a982386b92d2570922ae50e2872aae0dbf5cb626de574c6e17b824d58a802e108469ae3a5a4bf581811967d381d384e0480c6e7221b9c38b899545320c26f95797cf53db5083b099e979094482026e2d8c034da0436e9f5fc59215dbf70173", + "0ed2f2fd6cc57b08e2d95f7068e1d23e5f90e7a923bd297b140b21a87c1e2b03eb9f59f25be04b7a91b620ca40a4b909575428e613015195", + "01c8de8bdb2be055a87c8887914d558761ba026f227cbf96e5df341c10841d5ec139b0033229ec3e9de01e6ed671e5ecbc2245ea6cc29d20edec8fea868c22940560d3908a824a64c3f7a5291acaa40c2b513f7fd69a343f4d029ac12d7955257f0ffcf09cef0cfe72b13a1761a744168e3ded97898b4e39cf9bd2787cf075aeab87124772fb9e9b156f5175f20d6c019a434eb3598f6b9fa8a04ce5201ff189af0843cfac4b0bc7cfa38bdaff2373a14292e7a30e93e358c294e6e3951f4395d96b31ba95b9aee74ad31390cc46b7ead4bb753df2679f5b7f3aa4426507ca48379ff52aa8b44bd2fba599cc54651b437bd4e8773265949f2c87b74c1697526053436f2711ae94e8d964c87d75aa65f1666c517a3eebfc12277310f5fe0e39dbdd7e2f23826cdc06c735dedce7204662946b63025e43" + }, + { /* i=5346 cDividendBits=2512 cDivisorBits=1548 */ + "e7da54484da469f0cd14739bddc701be0e33035f19a5250f8df17acae822eaa65a1aabe5ead078312cbab8b37d410a50084714763e2321f01e840edf906efd590659cb4b23c9b9aaae03435ac1e1d6f4d8f438d6dcd0e27f52b3b042a07ffcde5e6cf439b382411188f9af3d35b9680fa76451ded814318e4254fb74e2f6023ce4223e4fd7a31dcaa8c39348611f19e166a37736475810a7e78befe7e93b0bc0361296546f768ed6f681734c4ce936d9a4205ec85c92821df201cd715ea61e739fea6698a3fa9068b86dd00ca40f3d440e6d812e11cc8b97ac5cb19515da1b445f847b5bfc5d824dfb63ec2927c10d6792d6f317ce086122044bf023737216de9e89b8459cd24d45c93b96068077796caf5406f828d685755f38263b16e8874240b69e74b6fc41ff6f6b71e5743b89e7e605bd692069fadca3bb", + "01b98dafb777f7b63797e08f16d2c12ed580f731adf5cd3ed189ebb8ca5b3e4b0236cbbb6abfc9c26afdf1584d583190602a300a6fc8cb19f92b2df70f39fabec861aba53610f2739bc7c2bc3f49a36131ac0e026577c5936bdf98aea0709bdabf5262ddcabe759f47c41efddf63d9afdcb7079b7d8a888b06c3bba9a43107708c5c0bea5ee71ebf4416f04a36eb0093eeb5d690d3126433856b3477e645f4ae1cd8c173ed45021a7b032a1015bd00c318cb7f0382cbc7dc15927e65107067cdec96", + "866beeea4938402ce177d82d17da3bbaaf8e824ac18320c3ce1f1e0db1027226dd3c853bbe8adbffd88650b68ff3b14a04ae664cf349846ecda66799a702f0ab8f7a3099a9f6180f32abbfc20e55f9db584455c7ae09f4cf4ffe190b03702b51dd1b9aff10c092c0d499b3c5dfd336d36edb4cc50328976886", + "0125bc95fbfb74fb0a69d889dc97a1a544cf3cc8831e319a0fcace1cb1ca177f2619fd3bbbce4e6dc40d7fe37b0c2a9faba4de5b80c2cf4ca8125252e6a3579472d2e3735b81f15041d8a715e214718662cd2b41662a98bd4f4463260647bb91bac5d0ab222d028f889e46d64fe98b39c8c3ae99e87f35a952a75861718b8f059f90ce4b293a85932dc018aafbf022bbafdb70f463836e90b86d3967b8efefc9b47e8fe48195bdebdb911d1b3dade17f7e6d6e221d2ebda7c9a3064e4038007bdd37" + }, + { /* i=5347 cDividendBits=2687 cDivisorBits=2387 */ + "4838d5ae24655f6147c1d1248b7116ed65dbade69eb2e4a11684a8ebca7132d4b791ba13fd0b918b58c3d5a301d4b8e78bc6003d89ef78051ded8440322de0dc3da8de7c391deef4c17671e0ccc6d76010f93bbf3cf1db88f354b2ec4502c9ac07058b402c78ced6e61e0491fcbd51b9d22f2a0ceb23776a6bcc7faf8a20c86c6df9e5aa94072d8c0b3db577bca29b424494b3456cae19d1ddb9788300f61e75dfdf970481d14a7bf09af620e985db757e4b304576705941d761759231e48b38ce8e55ebb64ce8f5151c8b43ecadf9ae41ab2b9a816949deff4876c792f6415e201845fc77b838e969e34994c011b8b4fa4814a7e429a2ef930f0d5eb70cc9d9f1d4651da22d919b776d660ca493506402cf1ce8aa00f5b2def742f9219b45f1d2e46887112e09df1375fdaca35cf8a82f59425d0e7d98fee13e617a78aa7f302f609ef9d26b2dd179afb18226582748", + "0346e25f017574b0325570638ef7a44c734392519c18d769b9b923d012e1c938c2b8c5e6232e2f046020d47cb900b57e175b3e985e8a399e64e5cc3d1599ff63b878ee2e9cba6651e48cb05a06a5aee3af82eadea10d7f9c1b24802425c031936b4c881d67e8bf2d49519884e0d074737d81a9f1161e3cda383a4dfa01d27348bdb890ce5baadbefcc3b56245424b7d42254bdd861ac447b0a83cd2fb780272524e05ba85c5cadbf27b408f5550f09f889a6cff2e04c96c926842441c10c01c87183621284bf3b531cc5049aa99f575a0cc0304f7d8f309e858051590f06ca0f0fb0656f37b326bedd64669dd7b1a2d138f8131413801ce95ee30d7c550ca1896408017c0c8ec173f470b6eeb4d415db17656c7c88abce414390c0f96bb74d9ed5c3ec6f99292e2f2183d5", + "160a2fcfbdbdac9fb6a66a060198b5124770c2ac67b636fb67ca3736398efe4f16e548d7a309", + "01cf4f0d35342640ccc00b1d7f41027720c55c9ce8c9419dbc6d0b5f209ef40c01e13c2e8256e41acf86e762fc0ff15017bc9b4fc5bf49529e1f781d32032a2ecfd1099c62194e8605a10b7a5b3ab7ec4c34d3dcecff73a530d3f68906810d49ff690a57f47b42ef7c70c1598a35a117af3596c6825f16c0029d604f567cd2a25fc65d1e1924c345329b41be7b57ea76370783b8c0fe7a5d20cb53d1095e8a2bdc437f66054b9c095ce3ab949108ce95972e6c4d60c011f4ff98b9897366039e240670f13f490b662859905b8cfe6075e16b34dd067da80633c84f976b961d82694ce2035b4c5cc008ff624b676e70d1c9e1ceff236dd0d1667a0f5efd4bf5fdf1c945163d0284609cf41b65a55ec97c8a3a09763dc5b7c194787a13f343b163c3ca9465ff991d8756e5cb" + }, + { /* i=5348 cDividendBits=2844 cDivisorBits=2409 */ + "0dc6d205998bd8d85f916e2e044ba1e629596d5b40fa6eb333307c11fdb3734fb5d03cf438727832bfc7454d577bc51d9635c114085dec3861305ddbdcf96925d61c380eece7d4bd54668ea2076e7853e9d20490478e81e47c7d11e18fea1fa737fa9a4731b573e9004ea73918a2256c299d2cbb41342944fcbeebfcc7fba9874423298c013ced525d429dbeb64611d4a411255f98514e6752a187f54a226d38d2e79bc05a852a8ebc37fc2f72ebe7085c4947e207c03a59466543bb84e424c1642db5c1481143d3aa70047a02b56a67c2c89f93487fac362b72e0cc971aa9dc24587ca3af3ef0dbb6fc7203f960405c9790a401f14e503a93b33e72d6c708fdae3fce592036544128e7af5b68d78ab81805b4b8b2ca586a416cc823b58cf7beba90d37d736a568d26314a00d71f74e7a18244f88042da3996c57e0c9a41ca9d00497aec0ec727adb5e8bc864231fdaa92d311f51781b47527e5214c99288a179bdfb645", + "0111325843c8a9c7c223cd8cdf4edaf95fe45ef5322b696bbaf372e88f42d9ed09ed7dcc75caad4f55756715b4f96563e8cbf9a5c6a6a8949e6502051ee0aa88a17864991a73718d6d23630d5c0f71bb7424b099e11b1c2ce6aac845ad13b27e6886c987ea627522e06db39b53eff38f39a5bf017be11d8869c42820c47e4b278c295ddadb5690dcb131b1d8d9b162de84f0c1d53c8f5b1a0b8e350f15c2066349b671c6a4ba1bcf4df87d1330860af3284a93d1b11a61400b1b5bedc310a79a44cc2d6ec0f68bdfc16bfffe93d072ee78859295807d7adc965b4afeeca26ed4de3cf84ed7a67ccc0ca45a3e970d7d497bf3c97c50e4112dd7bc9f28e7abe47f634046de1d49dade8e97b081f97fdf281009490a7085323edf4dfaee32950f474298a0d9cc2c80ed5c19610156f8", + "0ce8d224abb1789c5852733b65be1136b763dee5e592acecccfca6cd424819b6ec3710d9aa259efecab458598a3e4c819862de6fc24278", + "77700b3cf50a52421124c44550dfba38f435909f592189d7c2a71d7759c5e5318acdabf108267e9d7100270f9ed5dcac9fd0cfe05fd91a3cf2094a9e202c03883c2ff9453c4bae688cfb2b272b969bac73383106ac46e3be43204b22aed10e79fd5157d97ba114a5da5306eaf08dad606095a3e5e92074f602ee92ea42d05314d372545ddf813c89de71d804bea492b4f7f035234dec1a598fffeff3562d0cd534cdcd675ea5d12e6d6a7dcad21e64dc604926807fadacafb31292fb74fcea50d1bd490ec6b2ae2e22867f5289cbae8dd937a9b258b4fac7f034f3f84e0169e24b79a2a1f177fde26ca0ef2633415e7f223dab9c15a4f730091f330aed4d852fa0e60fb1fcb0bb1287b060303ae780d284b2455a0bb0e735ed75f3b66330a10a5738589800ee2760665ae30205" + }, + { /* i=5349 cDividendBits=2817 cDivisorBits=2437 */ + "2451c99f5b7f65dadcad58e8ec56795948f1b59dd327d658e7f28c86ccab501e797329626a49f668f601593218fa6f0c9b43306acaffae783b1f7eac8205f0e615a7a98cd963949969db677a70de8eb5dd792877d5b61f986b91388eaf83699ffc682f28d27d8858e0dfd8427ff1332220aab6f50e2a1b39df5253132c6503540cedfee8d0b08771b5984016949eb538c0f9c38f18bc6d2b96fd2ca320a975ae0627cc179ff46e44c315b001385778eaef16e967fb846efef92ebdfda7cf34a92e57d188d8588878f5cc2bc36bf357162ad8f9a7a8244c7a5b029af9dfb0ed52068e2223c2881de58a7b5ece3ccc24b8057a880b20e8182d921e000637876d2f915bfdd3330e025679b66cbd1f37e2c550795d38a6f9a3312e1c5671d24cb7b428f373faabcda11912622717a845d42f2cc01841924efa0f830fdd282772ea6c7d9d96828b6aec068be2520c6e31c9a92f88d06c9a4552c13351e12e7541a863", + "1f214ff46057c307810b12539b8e7efdcf1411d02e0a5bde0c757350a9cd4c8342920eff4a9207c3bfcc5c0bff37d449c7a12c34440c89f9b7a1afb69161c594934de9dc090853e2d4d11f7d92aeb1e9e19df9067b729348bccf15484a1ce6f462161b94f75d03c278b4b18c46991df04d9ba5b11bbf5e1e2dd00111b71c260c4286eb3a8e749d45c9cf4716f3ec87f649541ad8fffd801335b262e5356133859d19664eec661124c9b1d0d3651e208b4bb9b0a64c05a6cd7edc5e4289d47832a8c7eee05fab05ca45825d937c1fd61afbfec04c16e94033817e003296c88e6c197891c49e365cd8a85c62a67d54e73188ce79eac4f0ee1100b03e35613a4f26cc9e37dfabe276cb30e9bf0b337313a74caf934872a169c28d6bc31a7d283da4678a27f8e924875edd8bd8e968dbd6318e", + "012aacc6c075e08ee4dd0630650de450aad2586003e51f640bd7e5a7e9ac766474cb7325b2e9b79cfa510a57f551ee19", + "0aa223899dd59700df09f24c139da951783d5461e96ea45af5688d97a28a4d01a6cc86bb209f341ec905429e41232b87732af895ec325e2413fd8acd0c883787f3d88857bec8cfa173d32fccfbf2098aa29a494d0b5508867c04e6850074eb9425d9e2d723d9c880039acd0b4c35211a2127486253397acc456b8fcc1a54e6828aad3380a255dc431b396faabe9281c1deb4c867b15be2c213aac09e9619466b248f2f8b6a55cfab3de0ba6162042d5b4c835d207b070e8a402fc6184f8e65c59345a1bcc925e7025dc85279abae9e5cbc4bea1d30c0121706bd336d7f2b922b8909cc41f692a54a9d4b1fde214c18d9d2ff7c94d69b300004f734b56306cbbc186ca8df19ee5c717edc3aceeeb8d9d81e35baa3b8e7750d5289c2585c5388bcbd51f883c5f908652c3fe9aa1b4756cd85" + }, + { /* i=5350 cDividendBits=1652 cDivisorBits=794 */ + "072eacaaabbf258a27c3d5dd33173d517dd741317cdafa1296cbdbf131035ad0b4d7539f8ee14672f3444b72f2b5d0f54ae06b131dc9a21415ce37fb8de4caa294bca098bb4e51aee534849079b007658ba2cb0fd035c9dd11aca6933aaeb0713fb3460c5bca409e45a4b1733eb06072f0ed66e22e98d3aa5abb08725f556bfc6c1f8a701aa65906ac12e94ee5f43476b0b5844b958df7c831bda1254886ba1e0c27d4e620797e179c2bb1e3bbd65b47b16402f13c6833fcb0fc7b9d1b5afe2012c04af262a1b6f73fb5caa96f1fc5", + "0ffb44da14bf2808e82531bc8ea86aadca5be99c5a05317b5193269b538eaad893d1d8ad394ecc10a73f1118d1a57a093b53a6d4123afc58c704bd2b4ccf38069acc78801af7d401fd834500d073a4d492dca698189f5931f1205c9ff696002a1015db", + "730ccf95048f97790ea426e98fcecdb00c0151ba29b3bb853e83442fad7b63ec99f7b25086f3179c362f07d2c2bc4646f8931ece9a0fbf51f061dc339f0e5fb127fd2710274ab66bbb819c032a915dc4f0c0515124c6aa88302425c051a783a3eb1b01f77d9d6dbb4a5d69f6", + "0902c0d5b9ad15108a063c0444b42b27ef993a1b049e246ac6fcb99bc433d02c4919d4ecb04bdab1fa2fa272d7aafa23f3d8dc1e7e6327bc3f815c376010e31b460c35d4f65b2813b05360f93b95f56a7ce66f23f7b462a02eeb4aa9305c3f66744c53" + }, + { /* i=5351 cDividendBits=1680 cDivisorBits=55 */ + "fbe8809644c1ad383d2988be1980f587c219cf9b45e87db351c6a48046b1ac7a40ea581daab8ef3f3cfe3d21c1692fde1909572d92dbd808f98a07b7871f445dd6da9fd2f7cebcc208b2d358bd9307631004005ea8bf70022cdd2e2742f041bd31da12c77b4d42021cc3488559a566b9faf5d81be890f9409b8f1efe4a55c9b0ee498c26b8bfecc3d9483b22196d5657c8460f690609dc740c0fa7f83b1016864e818ed9fb6963675d5c6bce46d154c2a28be3c8beea605811c35c081030d0d65bce0910b598121cdbf1877b8b57fed925c2", + "1d9b2736e03d5a", + "0882381a1a72568bc4377e26dea53f901f2846b70ad5bcd6e8f0388791939e3d2712180cc2d4bf3278f44d58beeb426ee3eab7acbbf14e92cb681814eb48be818212aba1deb2ba3b26a49e85e91f44feba4e44284185a1485e94d74a8688d4b8598a92a6c131608aadcc9a996746183197f22731bd7fa6ec55c2ef11c1da65735e10249cf93eb89fc5a691379858e86b1bf19d36656de94fe5300fd0352403946f6c9733be91a6e10f290970800d5ddab000f77dc74894fd1e7c7d96eda48c23a4c59994349f7a2c27e66be3", + "1cad5ac78220f4" + }, + { /* i=5352 cDividendBits=3947 cDivisorBits=467 */ + "014dea22b2ca2f90b8b5698c2b03381c43cbe58e9d71cfd62456d71e7b0efcd9ae26f59642ba7cface4a4b499f713fc3d80f312d9848dfb4ea5cb08a3abd6c91f2c0306e419d9e21ba759849a436d684b0274eea26e34e484c10afb5950ae2fd1c699b023059b563c855d40b8a196edea546ec6096c38b4901c2fe82220a85d25d1d3aa69efa52dab6acd5dc731151631ac9632c9a70471a474af4bd306ad78de972788430da9a1d94777e300fc694ddeba685797cec747d01e8c0d21bb0b77431777c92594663eb31540669abc8bd5c045e8d8aa789092afa0115006ddc301b6b328f57ec7ab862bd0c29cb193dc61691046253ae420652edea89edd97f806baea86dc3a3447d26335118e88b1a611988733686fc1c77b72a10f971233dd7dd6fa65ca8185c923277f7fe187c0c1bd011a079cf319d67d76a53ad68576575a41956a7eff8cfcefa0aaa36f2c66759afe09a95978cbc8911afcf197b22b7119780c3ad725959cf9dfd35dccdbf1526b1df71418372ca461299b60df8a6d40d6f88acf7e22d9b1fadbbfb5f34256e35979e68971e6866ce92120dc1bd77ed3cee6843af92b76c66fa12d655c5989b4c724c00de6bf4b0f79696241bd2732837777b20c189228dda2df4218bd9754e7d9071d23cf978133ca0aa3d4c9124fb1a48b04ec5d2357601ce7d373b149085", + "9a4d8422441b41a4ca80c9fee31192caf91c065cdaa2907efb4d5a1ffbc6d2620fdc4beb4712b8626ee9bdb0829498094cb6463803ed70c7e86c", + "0229fd5264222bf43d37210fd9f6a7f32d3959f59a610b864a7f81b643c8369c97200b1b383077b731eff2baf5ba383b6f87a0568d8ee4281b6846a8fa2c02b2d67a1ba9bc3005ba6d47cd7164b16ad8f25470e3b319f7ed0cb27bb11deb118db005c104f169240b43ba7bbd248edea1b0161e0b990859e637db27d29ea34e04f4ee30335941c3b779f572dea137ed047736f526d721d7b6b5676ae75b38f8adbb6ae351e4e2431d3e6a8bff657e708df7eb043f7c2619a922ef03b7ca37eec826984e96acc7ec5e7f41dfc46816aa85c610cd7a2140cbdc8b8de8e8237b96d0c6f5e2c6fbb6f31f18560f146650fc2a4d470f1f98921129e579d6ab1f75ec5b28dfb452900e81726cc3831a07b87ec18a7e46dba575fbc60994c0807699b0e296507e29bacea69269c7db4845739b3b371349e3d3addb59f7ea01850439a10ec200454754e3041bd07d4305b889e30110a0e4e851941d6bb4de8397619e8fb91df9894267ce6704a300ca528ba15ca7da351a31732ce5710dcc22c2be140b1c78b2e2bae0e9245c2222a86e341bd1dc81b7a5143c9f43348839a1aea6a7b85281b0962912b70f0d9ff9ca82056f0bafb83ba8f2", + "8744afed781cf3bd6af0d5828681936b189e062f53ef19c19b666a31cd7886b5e0019ae95e0def81674392a3dbf45aa2b11ebb05c1cb3caffa6d" + }, + { /* i=5353 cDividendBits=2193 cDivisorBits=75 */ + "010f90b12f6691f60e7e15adb2a21f093ba10293ff446940b4281abd60d6e277b6e89d6691c3f296b6affc94f8c0ae9508611e7b8654d01106f221140553d70f2207bc3e70c3503c70fa58e88653e09df07d912e92e28ac60254edcaff95d610b59267d97a6bdd670e4849b93eb1f6ced139a291773763fbd6501b2e659ca78df5cc0ddc2f5ec911ba1f892c23ce2b131f1b1ebaa904c11d6f2c775ec1a14b3b8af83f6b904aad720f6add6e3b5a2b5e04e2359e21cec277388cadc9056be6015c25728b18693f086a8df75e2331d2dadfe2498147b3ce0d06635d97018e22355ed1a83a2108bd2ae58c2415d0bc26357764c748e2ff251fa890a2d7c82e2436eebc0d38e2749a6c1c52a1863007782f061dd5", + "05a6e42e431c8e02a626", + "300c5e72cddab123a4ae3c854cba67d939566e7d295c998bd675e4106ed411e810a0670a8ab2323f2c3783a0fb863553e35f957ee2be66837aa2a4f0b0280ad2d95e568bf3b215870888f28d8e1d620eb24df43283d79ccb40415315a06dda8de12ee3f83e0b7498cd64cfdf9feb2b475fbafe8a25e509e407182342572e621427a966994926d5a4d3ac55c0fb215cb0e0fdd0cdbad11ae6bc3cbb9a89ba4f5639b0e321a24684489f6d74440a59cef419160b5d81164cd6f2a2710557deb91fc5e4a9ee905363cd51d672a194e781debf326eacaa0022adb98c6a7fca0914ab7d6b86170cc37a51e6f2638a470f4d733d58dea53f614bc6ca421ff7a1a635d8464c02879177e6f21a", + "036ba2f74130518d51f9" + }, + { /* i=5354 cDividendBits=252 cDivisorBits=28 */ + "0672b0728a553e7d1712a5c3b2c970ffebfd41417c7495e29cd95b498555b0c2", + "08dc90d7", + "ba4653d0617babc1a5c0e41e6aa36206f4f09b971fb510d55e62c3ea", + "0517873c" + }, + { /* i=5355 cDividendBits=181 cDivisorBits=46 */ + "0e3623f5092220e15951a14dd6f0da3346343240e5a0e2", + "2ce01d6f9ffc", + "51126bbc1b4017dffe77eba9437ceb5099", + "0723dadc4346" + }, + { /* i=5356 cDividendBits=3547 cDivisorBits=2269 */ + "01a1a4b9a0f616817f4abf8e54a4f7cb62b383fb1e3c778ae7de5cd90abdaa71d5219a97084ffb2d77155cc6c85908131c840b9afc53402ec7dfae92d536024c76cc955d3f2930f564a2a5042acb3807868c50fec44204380ef6530ea694cbdf4a6d05ccc2d10e18cf6d18bb7244144324e0aaedfd75843bbdd1b299429d9c5942679a3a44b75c0d8c675e28c21a9e0ab36900d1fa0581aba049e1840d0811565bd6b09cf320b3b8809147a4495e5eb189da84fe916bfba3d9e8409fda688ce66b9e61d346709ea5242055190635eb164cace835dab664c6c5689845763f1263b0f816bd75af5c9cd33a6c037dd7d24c9e8a1327009df9a70149bbb4d3ffeb81cd5f9b9d461bd802ee724a4a5085e7279fdb8d9d5b7e003cf7042949fe19e07fd18343e6fc20fd08038091234e5b8fd4b27f09300e4365edfea4b0f9b5c057680aac1e8bfee7c7d9c48fbc3dd507bbf2d913c05ecde42bdfd676608d0d2b0c19065947624542391cfd57e563165201fc0e24d4ec97b03ef3836a2b917ec140a060dc000753298d9b7909cc75cea587a02e73efdc3efe18357a8288c4050b4e8f1b0a3314c70c81679fbd56a0ae95368df34b344627f62f4bbc565157", + "147d1f320166901626d86fb9a2b6c550a5f5e222d4e26e73e6f96607b6f6bd7d9d00aed6b94a403a8a094f70db4ee127ad8577aa23ebda80e2b356f777f39293405aea6e5fcb9996744835a5b29308edcca4c15becb166c4079b3e027e3ecdbe5e620c571dbc489063d4dd1c871bd97b13f83c1490a4c3b275d6946927b39d9f43f538e4f3aa8bc68056f81d76b756407df4b8f57f9ded113b1e6fd0d69b9b88f83a85c02132d5e25216cd81a72acd28204ac19f522a28b485e70e90ad2afac808d7efc3ffb6d724beb54114dd8f7fb5b368f68ca6aef424e50e9e027b97f404c66e83a477a28e706ec0ff3b0a3abaf8606f7aa1ff48c6c6904e9727fb79222ea38233bbe1cdcdfc9f961a8ab7e143a9f7daa34318b6dbcf0c13e182", + "14624fd6830c888043414e115580779b05405b6b631793561a0d53c6a0c34acfd23349768b1a77c9c22fb890d7c686408a5aba48aeb41a38642c64ba7a314556233ae94d63c43e4ccabb472295244a70f6ebed4288753425d66562af9cfd82d3d40c8110da3862aee8576c8e4963e9b6ea0e834545d06423f0ca47cd20cecd9cd581243c103e5feec82e573f5ca714a3d2b2ca878eb0e549daadd66d7a92ad57", + "084df7dba23adde14fe2657009eac33df85f679ff3c76f2aba472517cb9eb41c7c21ba03bf875b1461d080d83a0783004fdc17f792c2669bbb7648e4fc59c617cabf6e548131d436d249b90593a3e24caab43dc369e74af49e84b45ba47697b4612053923d87c525d03b703079b51e9ac914049c069b265996f67423d00b9edcc14575b7b252d5c8b7bb216a36ec6ebf21924d968ee761afdc6c2bf40e488e58766b0cb7b57538ec903178cbae6551042587062f315fd09e8e18638fa207e9aec4ecb333ed561c8b3b2e8fffb9cf4bf9f6404ee273d2be986506b78b5affc0a3c7ae211a92348279b06f54aa9a8d9b58b4cc49344f8210cb07b7882a191cc23d806ea5e5734ed1a7db990cfc86aa11aa450ac8f04b9c839ca20bd429" + }, + { /* i=5357 cDividendBits=979 cDivisorBits=307 */ + "05327e255e5617e0ea3c94741da7ccb7c282bd8fb5f46865533d36218bf9bd7fc552a18694557ea93c3044fc734a169ebcd8581ab3ead1c83b6a0669973ab89f06e7d2138fbf4b1a955e596d226d815efac9de8d1152ea33b4d23d8f6f73dbd344d14ece69e74aa6423e21a8600628c6d5c77b67c0c8cea83f7d0b", + "07210a2c51b1a2e4c9d5bc016b93933b8b73259646fe469353ec1748f891db5ed044266a3e1240", + "baa1230913f38e64e9b327b37d77cfec57deb474d052afd24f579cd029afcac48d3c03bc1bae15ef3b2af5eea22e5584a8ccdee7441dca7ede21fbef5063112e5d245447c48f50c4ec850f3afb18a5f79a18766a", + "c55405fb60ed8772428308e31b08d7bf1ad14b8d8202044cdfb9640ee0abacf0b361d8226e8b" + }, + { /* i=5358 cDividendBits=140 cDivisorBits=65 */ + "0ca0c55419026b83d7ce3d47acf3efbea37e", + "0122f97d77f605937f", + "0b1c32b84f9d31c4bcc9", + "1e18fdb470d090c7" + }, + { /* i=5359 cDividendBits=1799 cDivisorBits=565 */ + "7aede38b0fa029b17bf634ccac5354d71150a7a3a1dc4f3a3877369c1a8449d19ccba5c268e1dee83295c85e6ea59f7392c10bfde52b68377737170619a6f148657317558f0dc7b5faf5eabc1e106ca7bdbc61b8828e0d69c5c4d67064b4ac6e6a50a304dba04386df754ecbe7adfe41796c3bfd8c4f613bf4c206b90ff193fcdc7812836084116b9d70487d59f1abc1b8f4b45a327d4541bf1ba4cfdc32849bea7bfbd1b0c0c6f16df39b19fe8df736dd97815595ed7f325f7bfb1316b654b8d2f73f20136e0f1361d0492e9f770cf107b6c6158c543bea72871b283487b3a2b6", + "0fff18c2a96c7f2402dbafe4d8f098ea4e2a84694a7fd9fd8b6ffd43e28ab92dcc18347f3044e9bba978f4d5c8c884a082dd04cabd119bba707072eb4b849e40d739322b8f8e83", + "07af4d4912b4bf26d7d0280ebff643404fa52142a26654dd152a744c3d71b42c4cb6dd71536fee47965de524b52e3de20ab39770ebc38a9e0f6d546cb753c0e774c6353ba06e3ac2015702b8e8a620241961717ab6150cd06ec3c2e900da1244ef162ac6526be49cbd0a60e7a55c586229cf75b0d53544aea70fb7dd759f3caf289664c3056adb5dd1057b02f7166a749816231fa7fe5eec686178", + "031cd210167d780f490823d450b78aec41ce1dbbbedd2238229707a98b689160df23fb51c8a5cf15f1644b7b362c16bfdba05315bf681323833d29a615b713d670fe620e31324e" + }, + { /* i=5360 cDividendBits=885 cDivisorBits=49 */ + "1c8ad9b38b711a79e62da6b33a1ea9b75ac8719a060984966d17799ceb77fd4ffed2784c3a591d20bbb1d508b741cce2df192efac93a1388fb19e88a5f357ca2afe964e1284e73fe4862ebac567a30d82edc69d2cde9283698bfffe6e832f1b51074ced58a31eab72f43345ed89efe", + "017e19d2fa97b4", + "131f71d7101817371fd7dfdab41f0dc12a6a2f7b7a4cb49ef8513878f924b422cceeb024216ec9a269f646c8dd66e09a314279c1ef4242ea2dab5a3314f97a4d1b918022c6857ed5b8aa796692e5b27144954a20bc53ee7cb98be43891e629196baadd1aa38121c873", + "186b8f8dd922" + }, + { /* i=5361 cDividendBits=2479 cDivisorBits=2249 */ + "3bdcdb26258c865e28af3fdcc957886bd3f76f7651d512c663824735aa50771e9ab9752bf387b17d75e44356ce595f0efe962b6e59fe80dcc651fb1ce2dbd3a61357ce135c1fe528c4c21dd08f1ad75f709a36fad7241444c86d2492f10f73da72e429e8360ab031311b3e676eac4c7da40d104a6becfacbd918f4206432dafbb0018069d14250c8d10b80dcb5381ccfe35dd74a13e33f6c8486f884cd9ed889a92a9e30e1fce46f83e34585cd195f54abc2738630dd06574d75bc09e812f3742927720eb926ab2dd8ba90f1a1b56e83bef0fa9199903af452592f466bb891eaf427eb09af37230b9846c8a25bd009fa7be73c3e3327100a4df94e5e3b1376be9cea2972279026dbe213558f509c7c590030569e1b976a8f6d2c88315eae0de226e1f20be65357fec284a4d12631439731b58977c6e7", + "01a3fdea8bdd0c3b7876b9e36a19036b560acc3cf0c9f652ac56c7500aed03faa221fe459f210310a0caa574b05fdc27c8814d6c1efdc889ba1061f2d74fa2254510b78df154da86cccabf5a917de0ce4eec20fe7aa6a3f3ac7bb9029d7c05123928870fb594dd3fba96c9289a1450cb1126378f39ec7f40bb1a53020a699d697e951ffea504857311f6c24b2e15f2b299313279af95561ecbc33f50c9912ef31e793a862a8ac0386127d87b575c0937b45301c3c9467e0a251b0e9750872519c7ff2b7be183f3c04a29464ce870207ef8da7a75ca602e39aa9c78d32559ff32682e05197ae4fde100485db1d6c18a26a73b7d66f2c91f6dce474fdb52413d2a370b71ee3db62acf76124cc0bd51d34e47fe04a0bc302d06881f", + "247d0bb166ba3a734bbd84e9b3bb00d0869a2ddc17c914074bf7f6a512", + "a6c1496e7b990d1567ef05cef9718fcaf827a9749f11f187ee4985257817175df907e19eac0810a5c94ef4e86c7739f4b47369cca86679bdc8fe4d6a4f7a1a8b504ddec45bdf112fd609d545d2b69b14a31d62180ec89b10cd8fd1b45b845715f1ed7dda2a871229dd29ccc601f111421e2ae50860b4fd6ff653e53c536b4bc6d087ec87f5bd313353a3678f2a3384d70636242b3fff33f3b65ba299801849009b1654ed5b03d0852ac8df87b5fece96cbdaa5c2804ad1fe3c235d5c43965c1405bf7f8f49fec709d4d88331b085cf1dcc0b2e331522fe432deaed2f79b50fbb3e177d3a97b891c69bef1e55471d7ec7e75ed8ba610708fca45ecd9ef199f9f853341a5a3ae11154229acbefbe8cfbddcdad339d9b727c39b9" + }, + { /* i=5362 cDividendBits=2956 cDivisorBits=611 */ + "093b21437546a9a4faa358cea52e6abc88b50bd27d069486e4d3d0aab093b7e36dadd43394ea099ab0b4a5594b465a5d4095d85d73d46511dd9ae81c97ec6dad7440284dbeb2447cc38c3cff7673313c3dddedf76356ef5f6f5e9f4de0b5b0de7f59cf97f0659ebc54297b1f262659e72c2b1841f7b43406a2ef341afbb8947d4c8085d16877e9f79133f4f30070259f9c3784a244b5038701fd445989c75f39d2a6141e29ff5afdadaee428c1da241317195bf0430af6ceb727200087e47c42c4e7458e24b1d2dee8e153388c48d587c32299cf626f48a46be366114799311070d7ffd3afb48f8daff4830f0346c2ee13db3787264a1f7ab1526ddb3b8c74c49b034bdb07ae71ead3c0330ff670130ec5279e195395ecae6fcac231ac05216a005621a1455f812c8f8811636d6e6971be37e3870652e4db4f53a8dce3549b3501d6433a0bc17474280ded435e7f3697e9b745b4d1bdbff9c7305359d241d45e7abcd80358b18ce6597a1679c30f16957acd", + "02c3fc6b1ec43ef0bb3f89e46b48eb91230ca55286f4a0a8cc9187edc477526ae98aa40f7c0460720f2209913f8f74ac87a2205b68a99d16d7dbd1b2065d741ad200df06f5b842c587a02b1b3f", + "03567b60d86ab185e041ce3f593410fc1e1632d54c9235b0f3e30f593cba3ba139a29e217b34680aaade03b49e5f30172e4144a9aa1f5f095a448fd278882b4f91ef34c8e93b4ecb06835967ee5a2f2d3592e6932d4650dba11a6f7446da25833734b3daba08ee258cb609ed0753b00f9d912baea837bacc16c1ac6234def8448a9a3a6fd35e2786de76d7a6d518bb5bc1ac53bfb6dac79af7230b75c0c148e951189c8b4f7b06d812318d0852e62260c09f2f1d1b7f501eba496e451362cae76c42be38863900dd6e8c66249f7d0dbb8418fcdf00cfb0ff8fe1f6b25e2641d13618e9b3ccc1d36d89d76d8fd5e8339dc9d7c37834342060485ede55d8ab503244cd36c129a1dc6a7dcd942c972f6414675d93fcdd37feab6ff22cb2a2caf9623e42cc682d39", + "662fe974a88250e6b97eca2e7a54ea6da79a1d40dfbd6a842b91ddb8e674c9e314b7d4a55a97048c616f9a1add01f4ef2419c4261a899d07baad15f75ece0e61df8a295f8f533d3d939a56c6" + }, + { /* i=5363 cDividendBits=1153 cDivisorBits=194 */ + "708475b579ce9e7d921c778954bce6769a0f6766a8a597c88f3c3b8ace49f93f9243bf4d8fba499d30ce3f5aa645675d427aab22f0aee4ed8d6a846d627700ab58a2e43bbcf9df88e1a013f50ce3e8b80e6c79295a644354f9ad04f057ba4ef0dfcb8217ef1a0da74f59464a7e0d470af1f77340ee0d5ed2dd99ffb0f26330eb24f3cc8c85e08fabc87c04846ac16930", + "01b6e78e25aecd32dc2e1cd7eddbd2b19904f2bcd57982a5b5", + "41a0c9c00c03a012f641a9e2f7804060304e0fa7f1e09ca63b99ad49c6adb9df6a659c845b90882ee01cbe113951cf478465f8d742ae83d92a7bb7616f0ff20275a73b4d48e36d28e40fa6d9b968e8c0e7bfdb357a65e2a64950e938b11d12e01941364a071e6c32a2cc1bee97550be5f895ce634d816aec", + "971fa6e4eefab42360c19eb812a3dfa1703049bc5c7eb454" + }, + { /* i=5364 cDividendBits=3993 cDivisorBits=1423 */ + "01efa27a7a6a80bbe9bd7544d47d8d3b85d8c73e78d8b3b74dec122cf275c7250f134134840b2278517ce624e8db2ceb26d4bbbaa1fd86fc84a8726f3805943fb397cdb8e753307b0d3b14047bcef2ff73808bf65ed5eec488ee322300e2492a17d56ecb28d7fc94cca81046baeefbaa9545b4d316f27d7940b53f017e1095d6bc281fcfc676476aa6ca74338d6a20385e6f4132ed35003fdec1372b1c616dfc17f3dec5725d8e204502538b435d74b702610b774f9811a1b8320761ea9526a6395281ca0af67d5a4120a798a7b09c3585e76cc024f5bc7f674d757ddfb6cb247cc33b2ab0cbe05552f33f0276422b8c0b894221214b305fef4374cec0e60873169a5fabf816cd66cf000bd1b533d1140af5c987546588f5f7bcb8de451720bdce00f9bc1ad6eb27e540a567c5837409ba05168f82bc6851d8f4d32a46846ea757dcbef4ad2e55b85540b8a373a6968c7ba9b31658e4e97112593760bcd965a982212f23804e3db19559443ff9d05f1a99bbdfd4fd4b40e33a89dcbc086248eb53d38cf6196df83446afb5748f4989437fc326f69b0c0c4fa64c4e0e464fd438cae4dce18caa13aa78d75872c8dadcb22a0b55a449fc3b813f3191e4d2805838b84643e10ca2329a4c5c88716ccdad76bcc9a33f73bbca033a1c624a90e6fc1ab3313e75124f488ad119d3e2e82addb57ff02506", + "25c6e8fd6e805017281a8a39a0a02d4ddbc86f277a23abda0f64ee386c3875b0cfe3f6fcf4aa179cfd482e6e6d03223cbeb9b5ccd1e806f9defa05fa35869d7f8642f7d392b32552b721da094754600c64c553e304d5fc98ffb483ed77dc407eaf800250637525d83151c3bb593b265e1e07fb58a2015652539c102d10b9c762a3cad23149778ca5fa9de1c5a4d486087c5b153f2fe59d663974cf2ec5187d4b4364e3e3f2433992f7dc273885f4cd90f737", + "0d1eb940cb5787fa7b1f3951d3c5abf4c5d1c9e66551ce158200414bdec43a2e576efb911b7e8f2b7f737ef54fe7a54a3b45a1abe510d9a2adb8c2e930a404f81cab14ca8eac6b037e053f44ea3034c21c37f97cbce935d8a244f6bdbab65f6dfcd8dbfff065fc1e8fdf0d3a83d80f660af784ee8c1f43a2d4553e5bb9ec8309ef8e1206808325708322a6b95ad919490c8c68c82900db85e027251892743160bfb9cc7d6c3a0e07eac353667c5bf06657d030d5beebb7669e9f210c5d430316503abe095ab90f419b18ac08e6b72d662e37471527cbbc7e8a3c7f49b9cebbe22b9816bde583b66b8a6a601c798546a301c9c7ed0bdba4e48755361c20f8ab7ef4d6ddf795788328d3c44ecd239b6592972b5aead95ae1e1f46a00beb5ae4a5916d7f38a86306f4d5d7c3a0470321c76269bb0a0265f36feabae4a105864439bf26e", + "1bde05c9216a275d32d5d217bd1f6a6bba7c6e93380806737fb1199cb7a2689379ce1419eba69d9e142c9ad2f8167fc2d24de57a2b95474a6ca3cea175fce0246d4ace23baea779db908e33180eee2fcce85d2322fe563802f5c00cc920dad7f9b607f2a7acbcdec3f11cba9844f9a8d4f986ba3f31d33a4c880cf5ca33bf157af7a4a24bf3514954911cf1f870fb4614be4969d528330813e38afdf5260f9150dfb2adb038d2200acbcf72f033d0ea6ed64" + }, + { /* i=5365 cDividendBits=1276 cDivisorBits=734 */ + "0a23fe73a57d98603b4b04dca1ec4f8c1ec09a94ce3f7517fb7e1fa0822b7648c60fca6087b66752add6424574be76387a15d28eec70e54393915b416b39ac16f1b472fdbaa223d5c1ff07f2771afab142bf7e497be0d69000aef5bda4c43f807c5409c9176a6b7acbb6a427ff42511097b796f83f7016242a8cbd929ca8c43daf27291d65806db5cd5ae8a0871c06c50b72a9e28a301a06fd7e9acc66838102", + "0ff97daed43b2e730d3a987b983e3e7c7fedfdf304ce5e2779b45886af4f9f5bb303636ef2cbbb326271fd517fa7031896c4443c5c3f0e7b8e0e98eb9c9015ad4222e6b14c51a4077e25799402a379309acfe5860caa665d432a049a", + "a28203947b5cc574d3131b73eaf102caf130e08962861d7e2d08c56a6bd7163550380c2687d036b57a7c700ba06ea280bea45169dbdf6faa48844ee03089e3267edb0ff4", + "01153fd4f5c72a0b2a35936f9156cdd69ffd776f4142e97cbdd2bad9f99448448b8f85024a410407d3f1fa5ca2d540646b8b32cc6037a6b0408b35ea8b12f2bdc4df0f835ba576e1bd7a3ab47af39edcf98a1ddde58332e73074183a" + }, + { /* i=5366 cDividendBits=3846 cDivisorBits=3845 */ + "2ddb546ba3ac0d8195ef992221950b6895a60b243ac8d0b5173895a4d690c7b84692b27e46da79ba1b78e8090620c206fa287ebba8b87a2d2e03f89febff094ac364d17460cbbbddbedc7564e51579dd127783264852eeae5e436b38111948a44667be82541fffdc07af3ff18fa7c46ea164a9ee8e10143ffcc14dbb856854de1ed2dde9a88ff977a4cfc0217be67081356a410b7da32ddde425c7eedd675f18f9cbd6b43e556711a95e028b99b16ed545760351d9a8f9d8259dd00e5d89e69d90a8c264f7b88c30ccbd506ea63829a52fce576faaa1a44ac344a14be149550139ff86df85ce05e3527b77ec0667d422b858353447f6f9c2f848f654eb23b6ed82e90e0b5514f05ee2bfe090ab48143a420c660500ba261f2d9fccc1a51d9dcaa19465d4b402e3019fa4f4066e9c619562b5ea098bdcea79390c1868f79e62820ae8da546afd159361d74fd59e60b5c45bd26bff82405b5e797ac7f631a9d27237d66541e121949c09f355b7409a873c8ba6138a7a5fc1e07fbf87ed18d4b32b4a5628b40b00ca03283a82c4be7ce1d9c6b2f4a476b309cbb12e5219c620d0651277e5a11fad523e2b2ec1a171499cb24d4c2b2dc1aa7a345709d2b92c872baccc327885e11825a38f4358770ad3952c5308f3dbca771e30bb839e30d0546deeee", + "1af6ff1bdb4656da528797961ad6f50dfe2b0a685f78b4c059a8d82d1ef8638ffd3e1fc21b8269fda19247ebee56d14cd30a7db7cac63e54f0771f0dfe0bdfc7c0c488dfb6897f9507e46a1844c9e3d4805dbddbefed4183152beafa53fe1c8793aed8b86e236d2a8b800356cb45f71441a47cf0d36caea9ac70733a170a0fb5dd4c41e7508e64a9db1e0b22d62824f3ad27609e2e5dca17feb7eddba782f4916d966a58516844236ccf2384bb79d743a1162318b02430bd184d5854da2246bc338b5260b6fa6941e4cca514b263bcde7b732727e4e0ead5913109893f4f5ede1c52422832d37e9acbca7cad33239f717a6b5cb28a58ccafd216010157ed1ae47bfa7824cb3212a38c9112a1bb6c746ecddb4cb612361c9bb153b364a521c6ecd5a342df58f6776eb72955b9167d3eacd6b8dcc3ba3b0d0f6902f7494bbb72c6df049a8eac473270fca1085ace75b76d6fd5dfc9a719472c5ba3893359b31ccf2c14a0bcc5cd7b29219ee336d76b7dff6feb2cfa4c758abde38a9fe571907486a35661e0553849700ebc1d21cdd9afd0352c9ba6b54080ae5f3158c35ed39584e05cf182e020ac7581109c98973f5c2b3a851fb6b0bf61b96b6f7378c54cf794afa2006fd757c6e4351f0b0a695e4c6958c9d58ee021d337ad12394e174c762407", + "01", + "12e4554fc865b6a74368018c06be165a977b00bbdb501bf4bd8fbd77b7986428495492bc2b580fbc79e6a01d17c9f0ba271e0103ddf23bd83d8cd991edf3298302a04894aa423c48b6f80b4ca04b96089219c54a5865ad2b4917803dbd1b2c1cb2b8e5c9e5fc92b17c2f3c9ac461cd5a5fc02cfdbaa365965050da816e5e452841869c02580194cdc9b1b4fea5be4b8d8842e06d4f4563c5e56dda1335e46a878c356c5beced22ee3c8edf06de379791a45fe0392984c91b0d5077b983679fe15d1d700440be22eee7f0ab59f3d46cc6b45b3047c5c0b975321397c2a1f9f6231dad44b752fa874886b0fb3ed34434b13decd881bd9e2d132632f55393369c0906ee95e689e2ddbb562ecdeeefdb9fcb7431194eee8409837c4c195cfffbd6ddcbf122f55b0c6b92e87b9e4d581f22e88bfd0d45d1a1dd69d009211fabe2efbb2be43fc5beb5e3226536477acfeafe56ebfc8c35db2714321dd73ec2d7f6b5a30bc1c4851b541972e8547280692f093d1bbae6902dea37229c34e807a7443ea4a6ffc6d3b5c88093197e65a2f0a33209918658fdc172891d51fcf956674d3ae0321af41e3f8ca5c8aa1e2508da0a408712c70b7710eb187aeb9a5f40673a34181c90781609c05ebf5a244d6ca17548c2fa3f1e4cea554af90e7164e2b907f7cae7" + }, + { /* i=5367 cDividendBits=2135 cDivisorBits=1607 */ + "1be8a10eea3d72f185fa3f63351e091b89b7ed3d48c2d068d1487ac7f0bf5cee8f157dc5de8761da659b9a29db04fc0fb407ea0638fad6fd667a826c4b9c1f3ccefc6dfe2ac94829370df36a19bb17018090dbee9eaeac3fe90380834433612e64f53d8781d0b70e6ce10a2789ea70b27187f93fe64cf1385d667b87c98ece0653a213b0ef822a1bb9182c90c077b64f1888f1efde274a566f91832d9c80c510883a8e48c7109162a39e83bbe30117b16ed85ab9371fc0bdc9413202157bcaa54f4312931dc44ed84f59a0977e484a0584668956ced3243f38359102dca17cbd3f6f0e042f3a570972c755278b272dbfa962722101061c71959d337116df4ff79f825af3361fe47348c3e4", + "21260bc1fc39b6b5c4baafadb623aa99b420d7d76c48c97738f055c0ee720d4ce9178b9c7c1d745962a750f4c1ef0e88620fc2ebac9b74d1f704148d5f95d18c071b3e719fb1345be48be77591a72a697baec23044ca84b91951a24008603e116ff53e97adde9046ac0225528315eb3b3126a022a09e428790bd22b49810f9f3993c3fc8a2cd74bc73aa1fc2e19d63f34e8527cd61965d31b0fe41923ba082f428dec9fce10f692fbcc6cbebb99b748e96320d0d064eaf49af027f4f54907db9a717338a1e9da838d9", + "d7888311a0ba91e91ed3e4f313510911c2d761fa376258f8a64934ce4fc97df7713306444e1c0d29a329be464dc713c923283be69135ad65a5cbaffcc8bcab71f311", + "0ed72e1d87e196f7a4fe77d8c2940efcd1f195351d33358643042b321a5db2c65a6868c8a785faf44daa0a1a7378a1d0685a426dd297375485fc7943c5e4fd90d95bd49812264a273458bafa46502e96d690939e0e7b8c8e8214b145d9b1ed460dc957d153973f5c0c4bf00df96761dbdbb2e2072ba24831b1e14bc4c0b93604ae4f4e4bd8075abdbb9a202e79c1ee5f34daf4d81128b085a0e227b43a45ad9ab671c892e765cd3daf546017b0e479b300818959f1ec762875d047ce72c37b6d0b914ca79f425e027b" + }, + { /* i=5368 cDividendBits=3055 cDivisorBits=1325 */ + "594c66a5614a655338ab0331e2eeb6e48713aa1cc2eb7146ddd9263290da95fa20f5d817708be41ad85b67662d1c23bc8ebc2c8d4117ee5bb99fe6dd5541115a9a5bd68016f05880b4fb553da758dfbaf62001d59cd0df6ac95e941a0c48701ee11cdaf97fdd74a1affae2b82e17dad4fce6f439490a595a2ee732885fc9a047c594a7d36df8a636039cc10082344527bfdf6a4aa6b7ce933b68ef9a5e09c6027c6cd76100cbded28507daff65a979af1ea14593cb72aa7e7b91da37f03a4ff38d1fe0c7d0a52309ee29f45c66acc6a8bf361bfa1e5ee1f5a5e01f781c0db93bc0ceb7f9375ca3460c7c36d0669acd31646bcecbc6c3b1947a1ccf2bd1874b4e795c3107ab05135ba395afc2c3902c65a8b7b6cafb8618c27e1c0ed8596e8ac36bec0312c7b7f85a8e281d4f79eeaac3eb632a8bf2a2a85c890273184ff5489ef882e9537e10bfb8074366d7109682a530f77dd4ed85fc4b3e4f906ba96f856a04696f19d753a17bcb958112f2dc44002ee8b5553756983f22fa1fe19266", + "7d6b9532233a4309f0f8b5941adfbf0d18de7cb49d49a6e32ce22a17b0854dcc40fb28d784e14b80a192f787c6d7a8812de4fbbbc5d39068774f7bfeb27d1acbeba8b5ac3ce6f2f27ffd4ba0a883d859be8759856c4deef051eccd7dac4e720adb7e4d45dadbc70a245b226d7c4dd16ea8ab089956989135c22e28372d15ecfeff8d41567ed8afec4b179f2ecbea7d06d16d54ee5082b2b1440f8bb64c62a4a512e2ab7381", + "b6453a5607bbe79c644d7e11ad6733a0870e81e016f9b29ecb491108e6cf3cc8deeee0ae51a7a689be218d9689f19adb994bfc16041b274579a96a41c93a474a71abe1a3f9983df5bf4991bfc94702c0ba248b0e88acadffbcd2d57372f40c6516590a0a463058677f59f86bf8f7544ea1d24daeb23110f0708b6c1ca692d6c643b093f67458c10b9587d9dc51bfb1b2ca43d53769caa57f37f3e8698132870d823ccb2401f4f1eb5e48082e85973347b299276b0ed75d05951528412db92dffe87be40bf9ff60ba0e819e0e5c53e1f98245cd2ce751b19360", + "13f98e59c1be9326845d092b93ccd2127afdd5d97ade2bfabb08e6e3f5d84cc9077f1465191a75afc6d364bcd165f60f0d1a6903e922a26fd695d86a1f7bec4b359f0b4046664819733e613036d84b82b7b98bf589e0f16ce4528ae85482d5887f1da5c63fdea8c5b67134be38371b071017c8b275dd2def36485f87e8a8737d54cdf98ae65557629987501b6f7085ad6424d60ba95e431c67a54aa50cb014063eff122f06" + }, + { /* i=5369 cDividendBits=272 cDivisorBits=247 */ + "094b046e8a7ca9796a3c77fce224b5f11e504d7b2841eb5a120afeffec26f07e1e56", + "74ed092536e2ace1cca4b4b71fafe2057183ba7e30992dd180a15c97d8420b", + "1458ab", + "22284c3a62ef266d8e7001c1a883995ace3382f4a7a25f3b607236037a38fd" + }, + { /* i=5370 cDividendBits=89 cDivisorBits=68 */ + "c30d25c8293da4103f442b", + "0b97a619dcf016dd79", + "10d369", + "050fe886b4e6c3b28a" + }, + { /* i=5371 cDividendBits=3108 cDivisorBits=2184 */ + "0fdb3a5dcad3d286261b021ceeadb5de8c3ac9a6f1205faddf770fc9a66ae13edd9e8030fdedc6756e707bcf93563abee5ff4348809b46c3a11fa1a7e516aaf795d14cd6319e9ff9f163cd8db613341969e92ab93c09fd08104ea4a33729b16c5d8212a2764121f69b8f14fc39e1b3ab694140d403a7ba7216f45f69fd45b52f343e4bcf57cf6fd925134169f0e415d9687a1d033fd536a71156e6de6513634b3df7d189e6d2cb136449c5988a572008ad421b1d845ddae066fb83efea76dd3a35935216ec53e819aec59dc91e022bc144b2770cf6ec6d7ca5c63c2704fb762014d6214a2d23f8ae100c867f9dac796414135c4353bfa7d7272ad069e3b5eed99047286187557bb827fb2351cb183824172604ae83ca675f99b0173cbb60af708b0da7f2aedbdabfe437b20fbcd99ee60f9f7d7da1f5ea87187d547b48b3ed0824f17a5a8b1db0445577870b7b54e731c2c089e41f5967dc63cd4908861cbcef9dfde00d05bf25299a3f4fe44fa17f46e524f3a262afb7c55ecacdfc499dcfef7b2d602331", + "c90c640f7ad5aa4cd47816e47641d777a5f455875f3a991e670eb6d058622f3b72eb1cb0ad25c4dd3aef64132429aec9b148318a549e3530b3a72e3737a1dc84122f916fc33789be56c48f574d333cdfed67977efc942b2e0ebd817c0f21873b348604c2e1ff07bd27ac08cbdaec9e236b90e06e26172931625488ec4fa8dd919e622404c45bfe7adeb0eee6ec827e4b4302ca653d299a9e38e4e2f97fc1dbd70cf29a7b92f715fa5a33b7c380eba353e160df1fa1089f70ddfd72ee9c4869ea47f4b996dfd8c677049e65fd22b1704d04fda458d9dc144cf20188b98d9a58c647dbb78fc103192b8dd9c355e4ad233fded8d5973792f20aedb25e880b3892cdd45c3e82f51cd8b04bc2247144602a3eba", + "1430b7a57c8cc06fcacc92f218d3eed1536b149e07a565074ad9e15517cd865a6b0175b4df28cbb5939b76a387b39f884c2c203118dcf168b7307d85caac7b05df42d07d2e03b900cab157ac8fdc7cb46120074b23d48cf27a7e88081493f0a82a9c863c420f985b009d207ecae20de9ad6e5e94", + "8238b1d66206c9c8ac31d7882fb47ccb7b43e594f30952dc97a0c8c80fdb894c5c4e19772af7663fd2f4ce005d9c42b5ae30d5291e0fa5f9411699cd484a73890ff3c198fd6b6a877d385a4ed44c54e9733eb93c9a7338bff6e40f0b1a6f862c77410f248ed3311db4a95859afa515c82336a3b4cfd03f58155473cedae680d31ec62ac188fb9904e32af65c24e974b5be5e9125fb6dc6088584e3a77c05339b828e354ed8797fdc9823e0289c6265465123eec2d66adaac896a2e34613da39808c870f17d041f3e111d3f699b5f131b33e0be15f0c34e12cf98e0963fd72c5bba0d210317f07ad2c88d3b209bb08bd85155f934ddd60d8bc928407ed6b8fcf1e0593ec5c5062e488c4ef2f0cf6bff93a9" + }, + { /* i=5372 cDividendBits=400 cDivisorBits=54 */ + "c2982536f5329c683b1f3924806f3fc8e33afde15e7002c235a81b49ef95eba52cad854954e89a472f83ee8d0e5ccf2cb350", + "2df2490d968d7c", + "043c38eeeb12f452f622921891a6c6ce7167a6a3ce71557e21cc78f4d22a538790f27221e5af07749be95aa6", + "023e5637f35ce8" + }, + { /* i=5373 cDividendBits=937 cDivisorBits=864 */ + "012101119cab5f071f3052be2d3157cda86e39aceff62d1af4184c6dc145b9ffc041126e55f2cccb2fae401b95b2e70b5fcaaac40e7ed8e10180ea0b7a6d3d2e46291d51ed79abfcc3134609eb1a9d2701777f533c1a39e25fc4c0b4a367efd981c5876e5044e3f879ca05e6af60345ca0d585682e51", + "e5327664f3cd3ee3870ac8c4feb18e68b16145dab498875c2b6ccd0b06177ed008ccf0fba1df8dfdf759fb11a6e879e6a5fd9ee4db33118a17308e694321a34366457f46ce85f257c108e81d76786bc825ac61b69a28826f379eca8a9bdb3eb2f799506afc1a291f509c4dd0", + "0142cd111276e9d413de", + "d9db30b4145cf9367946265b61ad4b0bf7d5c6e00a198717f6cd6375d5c8d23690a3d36c1cd41d21a598d4681b1c097db9b35a7edcad9fdfe699e1e77741ca25cd54915564ed717082c7d9a9079157ae95f14418b819aba17597ebd3a26b3bf6b7bfe06135fe228f43d643f1" + }, + { /* i=5374 cDividendBits=3793 cDivisorBits=1534 */ + "01c0b4d7336e100c3bcba899c6c9dbd4df22c3289407408648db4a7f05528bea49c7d84dcddd57fafc770b049fe9a7d79c49c0beabe69b11ac7a5ed9bc2a552d8607a2912fad8dcf7fadc3f57c4195e2714affd835fcfa447d133ab890770467a6fd5d0fba6dbdfbd4c640cccbfdc46689162e22a6363629868150107c1440646628c9beb9b0fe064fa544717a255a060d5d718b338cf2031cce615ecf11a25baa2a290f431718eae052321164fefbf3a4ba202a73b1204641b009d5521ceb8270739f2258260a25d43668c54630a0be63bb21935cc800faf0093fc7b3c5dc2f57abdb7845d6ffe56f9dd871ccf3f030d162fb5a0c527069f4307a173738dd123091ae4959ea06ccf44bae81b452c74fff09fc8dcf4cf876e48d36a0499d85341da4d6d9162bb4496c227ad704240cb8f13d18b3f2f61f555e1e21672ee4ec2d85ae652d8ba4dc188a362f101be4d28951fd75d8cdd3d6fd4cddfa1935fc132ac129f2d209859d6f6c5e382c072843e81b539a271c09e85a609328af5589656cac3924919abd662fa063e794adca03b42e127dd659e2ca9db1090ce88cd9de45e22c32f3cb191d53d9ab50cf26273d4f9eb26440a61cce147aacb9524747c22c9510ddb1972873e24ca5c64a3aa478017bfecf79ba9f8e3f9e9918", + "35403866bdb5ec6f6bb3ca975d4f5fa2d6f4219a478b87cfeaec4e4c95a684df206e184d186af52d33dc1419ecc89b48ff9661525fbea07f8fa0b729ae81c8bee38a84e234504de61049f55e1c81dabb7b0ba10126ad2cf51164c82eb56ecc410a15886eb555b83bcac6d702da7c06d447f52422907e560a7df8f30d6084f2a802f69676b576572bb9dae3db14eb621915296bde07215a8a7ef8793ddb8b2668a23dbf72f2b5df2ea320422c1516ed998d7ef977706aaf74812614e372a653d8", + "086d205fe6271791887793abdae44d35c0f418495b0371aa169caf3d05a754faac81d9959ba5f727467d9c360d9fd11a2152c77e04899e9455e069cba46bb1fe0f4d8f5655e034f839a7280dca84082ebf229427e7c7b69b1435c5b5cdb4f859820e1b32720be8b793ff1b52640e67a6c3f4d22e1c540602d134f008c84a1e83b2f15198b50c0c908916f6701121cc72e34456df9f8b665b7cf9299511b76956cfe0da9e40522de022fee5607a8e39ae3f15d7b345dab03e6cca3a809a4a94ffa3201ff4d3b17d20c5290aa6fcda45a04f3198f493c705146a37b8ebb08ef929440ecb1cf076083591e7ea80b5c7d1069d714709e67860c83747d42e210b88f181bc94a566e3134ce34df66d8494b62eb36555013da7052baa08b5", + "10db469b0a4434dd45ab64b3a8256ef64edb71cd3c9515693f9395637d4c8aabd48826819804112667ed1efa4f72097acd3f444d8e656cb5b8e5fcbf4615aa20e930263a1f0288db611ba9ad8704bdaaf72af6c580b5c8cbd4a42dbe0b23bc3f772655c2c0b08e70daa526a5093ee2ee06c9b2144310dbbd3a4ff3cf43e090b3749db91ae4a582af939d6fc982e0ca1ba2916ca91e82d0a76c73deb1a4dce6d28dee43c4d6cb33b68d53365907ac64c4410966d4c02955b15571216807f69160" + }, + { /* i=5375 cDividendBits=3620 cDivisorBits=3301 */ + "0ce40e436cff79c59678d3316952aaf0af9138cb0710e2a3911cd6e57c269c0a09f9afe708f22df0f6e97130f90a2b13eef7732d273e0eabc838fb24c37ceb63c5d3566e9d95515f536a9d385bfd1cb744fdcd080ae78d3b0c38496c5e9e86acb2c776b48641413dc79bd11192486739a893d4c35ab95c3297c3bbe235ccc9f9e29b6db004a50f7687aff161d1e069f3d84ccc9c32d31086ba178de557519b444555124a6e8c4c48b3bbca919ea2f418d29afc666715ce8cf3a1dfd34613e4a45a364dc22a40b4b51be4f223d5ee3ac7a4658cdc38177c9c8a586906e861815d27e67da9c77358763286adac92bd9e59c7c7ed4b224f83d7666dc2c98aace1f2b2771233f1a78f6b1b52463d5ac37a2688c4b412515cdc06e7839fdee64d0b5f7e8539ae9b8e3c842144e27e60e8c0d56605886bcb0ca3c470a6ca38d73249e4466a63e14fb909b4d0dce4c729bb5554781dd2a61c823b88a60e1961a559b31175b35586b99af88f0e03e32237acc4deb14236c9d139a2e023c71d92169b2088359574c40549c1b8e2200ba10355a54e4ecc4e4d1478553a75677507b0006985d10b02226779e1ce0317242f470d544f281cfa1b21147d8ee7f4f8e2a7f9f954b4747fa1ea", + "0d031a97d6f26387d2c686730122436f62dd8270322212f2016b39451e4abc6cef9ca1733ac2805f73723ba1da70770507304ad1df58787565b9999f7802da2951fbb3c3624c746861aff04555608c20077ae1a4664a4646b65f9fbcb74da19e2739954cff3ba2e499169ee254a8c494054733b682d651ebc65575463c335129a5d3335dae3dfdfdf552b9639f4fb73dd940f46f3c501beb01b940b17f48d154dcf1860e2331de40f49cbcd42855e87d00443ed79a10fabd454a7e0567af9d0fa015679b5d14801a844ecfb4a659932987787886e00306d451ef6c2e68cebcfae503d7c6294ad8ddf6a31da5636fb954f3962d1f0230e0e48d25b90ed67c3da4b3cb96a9ed46288a0db98f1e505fdb13e0b2b2c24755cd9f3d138219e7a073297b26487e15cc5d1ee7c524e58958a5242e5b606d5393aa5894ed10749835b171d8ffc1d2495d02b0aac93a53e54949007f6407e05fa1288164c85acfac69d7afeaf45678a6480b39fa21b18c1db280e3562c4be9744d6f7123323079f991fa73680b8fa499bef8cf0b083de1f598a56a21bc9e556e5a72e123a97c3496", + "fd9d28e3a80efdf97099005fad6e1ec0691ec667c59a47d54a2e95beb366c1e14ca102dc0ae032e8", + "0216aff94a82b8fbc7d0db617eae12943285ab5bc3787b02003252eff3b8cb71531916a0b6093bd9a08d37dfc23be8cff8633259f41991a65141cbb6d59b7d9fda5d99c2ab7a90ca6794441f97e63da5c48309a2cf73eae1e487c60490952c884d1b78eae8fbdeefed4a96a3bbc4cbdb27ae9f63648db88dcd4ebcec695dec2a0a2ec6fb2724e3f853371579d8a30bfbe40daaba484fd0c577e29e7dfc75148ae725d87fecc3394cffd0c40d4b801e9c46aaa0a36806312210d20869e82a93fe00bdff088586d7496f74703ea3966b67041bba58f3c9411c27f1ea897e7a9c4e1bf875ee58399299abf2bce3f4dc4ba82f35e0e3ad38e1282e9905d6cef085d5978b384ce58ae53d60ed2aeaf610574bdfb76cd92dfd88964d63389d92b25407fecb176b7f711a2ca0c32e34b1f6de72655661183d9deb7403ad0905b095f3b3c5a29418a752c597bc12daa179e3d7f8c576a2f58d78476a74c004f7c17ee0c5b590902c59975e609a59dee039be2defad3b0334a0fac7611abed02ec73dad16fce350cef721a716a1621106a4ccd0d247cae6c122f494d1a4ba6aadfa" + }, + { /* i=5376 cDividendBits=3611 cDivisorBits=2172 */ + "03e7757ca324a00f4c17e76cacccfcce670a919e81465749cbc64b0462ec4cc2e07ed3b4bf7891b2d05a1ac4ec0b4cb105dc875b39a3bc46d0f6f28a48a9c6cea79a9b6c0d30bd1458a4853f52b5a0ab8920d7896cfb78e797f07c8fe901dabc4a2482a36763f12fbd969fb137f15cedf46c61e63b3f0763ce06bb461197279806dea3f5a1294117e4ae7bbf660fddc8dd1fb62d38a64f60914ae09a099e91f58396cf82129141ddb7263fddb6f255556cfd86284ab00119391a0987b71cc8abc428ece54580409e58833f1ae1215558bb649b621d36cd94e25c0ed76ae2f4fd56fc873cee51b174daee1c5c7aa833660d50a679dbe09c8b1690e22dae90f241daa43970b6f000b1513561cceeb92e113ae05a10ddef97cce468ce787ec2738613c5ff1f0bf06527765553d03e6928ea7deb3451e6fe921fcbd0ea1259c9e24acc9bba8af57952f7f8a7fbf2051962d43ea010201928b4261d60caeec06f1dec9b49c5131028811f5fb6fed154ffbaab906876a1d3a4f99229c1cbb915c748ed6f2bca09ef63a44ad971c801eb742121a8f2272f4110699aab5699085d7fc1076e80404aca1669a81ed41cb92ccbceaf468212484e1f5c76bcc6e968f40a75c41e53cbfe", + "0b4a2baf5658fcc4bcb0a7bd1dbfa18d490f6a6a2d8f4b0ff72e741d979d0a6cdceccf20d8fc0e8a1c0983b366f9a4da453f841a3a322030202a789fbd579534762f5acb85840f8b1537dd683bc423ea5e832a7e2aa6c9ec6cd264c759bad9fb09bd03306f7194a0e7bf111f3bc101372dfccde1560e91bc8f913b369bac8f64a0df58f9432bc76f97a903f622d18cf8d814e7bdcc17f2954ef2ad15120baef011764b32486d95de557ff6ae4138785031804247ac6476b3aaa6c0dd1bb889277bc4fd58b899244ca378918fedfdfa969060f0a49f4b24f613e0d23b603fc81dba8b87d86f0bc524591667c8f91af238def60395af1e4d50a2d231dd7f669b43dede13146d4705e17b3bc2cad82d23d0", + "58873570c0d6859610a1396527588d12ed585f844c7776272d211e00d25acca918893457d946d09959f00d3611a379b2211aac82c74648d05e34d1276102ab85a4d6a824a15aac2035cdca70fc7562227f85387b2cff2c48030c1f5bf40157650939c79a95feb8b902005cac0b8a19c25fc14637f0f1baa437f0d66cb43b09952ee82381047e49f07dccee25f9e888a2757ad0c14503b7ca8f5750ac8c51989ae85b8dfced8ac729efa02df5b26524b6b13c16e3", + "08cd8d646967ece36bc8b0af07b1dd8bbe7c5df7b7f816153deae6c74472c1ec20e7245ca2fe6c8dba5a304dd782a730179c425c0a51eb53130c590a45af4eb040668dc4d1fec1f32e16e39fd74df1f86e32f85551bf6f7f964baa5eecdd884b629ada45f8e0313baad0ba14a6d47ebb232c84dc3c85f5e90649de52b7b9f8a78a553d795eddd4a1ddcf39dba0df154b6633f2220c9e3462710a1dac697878ab2724492728d380a38a2e48b3edb22be04adb413af36cef79f87b27ce3028006d430a7ed408ba8523df5d08f025ad0681783b8ace4976c11097a131cfc3d9a93df2ba9e8cd3adb78ce6726a59963aab2b7af5061e78aa7b5f47fdc9fea407c24716082782288798cfda1cb71b58792a8e" + }, + { /* i=5377 cDividendBits=2429 cDivisorBits=62 */ + "0cf48928573387c2a25d8d6f6364fd62056a50dda43b5917508aaccfd4f5b6e08bb6a58a69ff94e244558ed57ec58f349f3c8970385312f20bfcca7e187513224424b387fc54d5bd73cd7eea946116d32e27f9829368a10598c1f7d3d8c4910e1339b5c7736911afaae06978c555d7315dc4a1345ea7471cbacbc3d4f2c7d771aaab004518fe1ea038aa9da24549559b8c669c061fddf7d48d208d0bed6c3a6621bf1c478bf27d101b71276529fa5c9d5543a3291dd612d50b3630fec04aac9a2968fc33302879133669e4fc0fb8d1e4ef28196197020d672cc483340ec0535b87345f1f6c98dcc099c6725e16348bb3e96afed2cf619d894ac42da9d30cb72631b60a11664ce18d7d0e5094e2209e8fb2d346006a9ebc79fd9cd4eef18de02bf9f18b2d0b64f9143a5c06760f99ee49", + "019f4e8074fd0ab5", + "07fc5a39624e82c8af3af1dfd7533304e9e2bfa88a1d4528802ae76ccbe1f387c40f1afaab8381e9a2fef582680f58910344c333f9f6a93c01ff834a18f9277ccf4ff850695623f4456eebdb092c547d3ac7f24450e53b34656bf919ced43c8f3e0dfb31dab575afd038830d50fcd04feb53fc21f642338ed4886f6ba4ef70996ace5e84e0e54fa4fe636a89e37f0c1cb3317ecdf5d33ac75624691edaaba5abbcddd8c333dc1be10c6005089156fd9562167bdf1601ddc77813b4975940a294da2bd2f933831633d9f1a8098d5f8244d246e4e03a4eaae5e5bbe0fce59bedb29bb426ed6cb86e6e618904166a633271d7b0b51d900523e1f5945c66eef36a2ccd86011ac697587146b98c6aa3292a9f3c3cc88e2d65bd7e2514d21255b617fcc0c1e104c45168b118", + "f63bc484f1c851" + }, + { /* i=5378 cDividendBits=3605 cDivisorBits=692 */ + "056183f7a07dda2f765cc34590798f69abbc4580a5c1217ba73d93576d1df876f073957d30699cae8797a31edb1b63bd7c1581db1a7d98a73b78b334720c4506f8bcba64db198980f662a99e62f7d6016558306eca26799d11716117a076936c41506292a180e499bff2888cd1c81c172863f9dc9d6ebfdf03a8a8a83402cb15baa14d884000f93fa34bb6ffcb60f2ede8a6e9f28161a2ae379e8012232434ff4069abd02fc45b1fcd39b5372556778d039ea3d2a40a96da7441f76664704b16d0795ea9824dbc9de5ac2ddf9c6211ef1df7b80ffa0fd7ac2553094a8b8455ce87d62e6e71813bc05875dd2b8a25dccac44f36566d82c53809a5fffb13c62e34dd2f617f4ca709ba5300814b123422b7dba73c0c0a4bf03e19a236d67a2c88585b79f1b1f1522a297b33048376e7e43bbf9d02e50bbbe769ad0781128154fae3999d8c85f5034e36ef911cfc47692efb87a10e7be48879eacaa2246ff46862f47ffb78f7708283c848afd0ce0b5e582c5e6b423f0eac40bbc4c36e157f5a171cd1580e26611a9a752f54ca9adf7f4750ae240712424eacdb7df9ce047f5cf91bfcd000f42557259680d4533a408b18844a8bb466dcee1eb1e232cb89cb9a3410404ebb", + "010fa4ad75ce8b291f214d829331f6a049b67d760c411c570c28809dfe7234f73956fe206b52a77fb2c15aa7d2e843228e71bbd8843180e63669e00e425056ecc52120d01fdbbddcd4bfdcce9a54cc82cad16fe4fcee7b", + "05123010424e6ed6d97cd9bec278ceb5f0f61134098a1415a9fe233adb9f322e64119f68fc14d94fe7e587be92468fe7e3019a985f8d0b097658cf726224ed73ac5674ef822569285c6c27c2c23429ff6be0cef96aebb266ffea22bce9c572bcbe3b62d643bda33497effc8e6b2b270b0e5575189fbc36801b0ca32a791bf8b0f248086c39c89f54ceb2b622a4f13dc660825dc1dc64a979f1c0290dd0d8e502dd1690da765a87b8b82e174f90903f95d53624256ea360f1afc84448b61f65913958e01775de7f1bded93bb17b04f2b32cfd1d57622771a1265575742c62d78ae65b522f52e92316ab7a65063f943d798e344aba5dc350c7314897aaaec541693964f073a2cfce327fc28ad61887f7da5e7bc1c0de41f35fd03c1a09d4cd26671e8501a10cb9681199a978697c66987adc1bf6253e909aea4d6635a529417104ac30e6ae3339f6623fe8657e8c0a274f34c5868ce4c27620835ff2ead07889da447d0dd90820c05ffa2644e923", + "eba387932de690b1f2b183a58276f7954db3f8925edaea5cf8b7f2ff9741703c88ab1c6581e8adf0849740a5d20106bfed77ca5eff0d96db9707fd1b6295b8a1eebfa72c037dde772e33523c7f3b19fb38c9f1f1c0ea" + }, + { /* i=5379 cDividendBits=1057 cDivisorBits=277 */ + "e6749eade526732a8535fcf08771cb7cb2270745270faadd3a924455dba8e99634e520a6ed46ca2bdd99dc19a4678ec810b62af700ea6b537b867083296e5ad230170b4c0f64ff767002a1101bb2ef629bdbf40bb8ed3c581c804219393af7e6c02b0bc3dc0e8b8dc609776fbdd59040f7d41ab05652eed8a431c3b5ec87fb9c5b2fa75d", + "07469baa9bff70a2e6aa49956d99f86c4b504f22aca11927818d30e3c760dbc85e16b9", + "1fac98583b0b69c18ff000b0259007d43c7daa8a03a94b51c27d3a2dae8828535370ea793276045f7dd96f7d3a870f8011dc24e87896c6ff00af86c3543967c90c142a21bdf44f5439cedc95024dfb8114c858250376784a8f1c64be1b4e5ccce0f6", + "04d7c1a62687e8954f27ea43219f9e62d9927f51def0504f882ab250acae94e577f197" + }, + { /* i=5380 cDividendBits=2233 cDivisorBits=2125 */ + "010e27d3df9727344d7867279b3adff026f21eaf0f8bdfab80d8bfd7ad142704016d8497e0b8171f62fd7e98e4862c4e9026e5adec502a0db2fa782489542206e5154e9d7027de4c95fc6b4101f8dd935329aa07eb6f30d634ae8ccbaf9e588087dccadbe1c1ad766fe8b0d8fda7224c116eb7b6a0b856321a7ada2efb42c9dad25ea8e469b1b69a1329ecf9bc2d21f9aa6175e1aa0c641ce2299c2ce63b3bc4e59204ed73736d60fcb1dfe41e5574a87b9d51638427ade3c9e34410eeb7264d47955aee0401f9daff90b5eb06c17c69538ee3d506518e6f17bb47a6eda44bb291e05e3c2af5cfdc97c54a3ce78eb5b8650cd600bf80f8a3ffe636a2dc4b7029db4fdf56fac8eabde47b16723d608842d2a41be669a08845", + "09ebebac1659339cb7b9565141ab2716cfa14e58f718a4d6f5e5e8b0845bb52cbf9e120d303dc59bd0525f136751599934a38ca962be1c86dff3611587bb3bd83c93c5be8792dd9bcdc3051bc52373d431d8454c4fc8541198be00f1dbcf68890a0f5f3fe554bf2a8102ae554ab927f26f161b263e0d440e0b7ca5b48145d88aa7949a98ee9b77013be13b9cdd843ec2ba5cc8b9028178a9e25bcc8a4ed641960db976fe5003889b5da431a4e7a705b345bf43e802ba3ebf7779d4394dbac0b0c81e3f225d9227dcead1f290575342155245799fc02eba4003be54dfe7159b202534099a32d79fb53cb3c668fd7d2de089448b1b911ac1f7c63cadd3a9bf34a032416fc00ba0190865bf", + "1b3aa840aa6b7aadff91589239b4", + "0843dd1f9b833af9d92998b6d4a031e18460f957c3c78230deac583e1b92bbdb818ab92019d3fc27fc725c92dfc8000d48d0bbf787bff40d71a2058addd8716b98a29ae9f3c4e3cc334322fc99782822cf6554b5d97cf9cb31a47165136b5cd4e1f88e81fe41aa198bfeb122bb2b3652f9189a28959a9426ee7eddb42bd153cbe1f6f280932263e07c01f95a3ec0da77a64a0430a85c25adb0d9366a31da7751203cb3e471b94323c165c902c44eff8a854d31436585b200eb1bc335d737bfa7ec9460fcc63783e54cc70676592ab7062fc4ad951d08c31ce90f18d794ee2226b742434ee52fc26c48a1150bc3e300f7b62374e988edee0bab44b7604144d9838a3c7fee3dcf422376f9" + }, + { /* i=5381 cDividendBits=2931 cDivisorBits=1357 */ + "0696080367a63c881213717dc9629a25130a9ad9e018309a0903139f80bd656db9b0e2bc50f4c24fc847c2ee595f49907cbea42df34d8bec6f91edba63d186fa7a3fc7d0454566350203e6b2dd629a62ce36c9153fb127dca7fbc1ced52f07865ae37987ddc6a4dd721e06259a92d3fc5c1000b62291a6dbdbe7eaf53decb7691f901c39718f16e26c1e606a025666a2e3d5b535a543c951973827e467c3138711d06c0dc67bfa1c61d78a734b41bfda3a93108016b90ad636265631e81526f64b125b4b515577a398caa2375f241c96801df269c70230b5efcd735b03e9ce69213e3d5bd30e013cb042262f163cec2c3d36ce6a5467b5fc3a727acffb5a6d55793de646f4a6b4525fef11f68847410d3927f80f6cfbc99c653f57a927b099436b3e2e74d12f314872d18752df2edec7666b5b0f476ee27a2f31e1008453b58abf5f2e094457704a644f90da6db3432a163efe5780077d9203353a8e1dac79118cf72561864b1c9d32d5b68d0f552c", + "04d64404e7f58ddd709aedb469b817f7ee8f1bed4b43bf4b7ec732b1ca195be397122dbdab098ea3c227d39e744d888fdb9d85784efbb2ea098e7898b21a02d87aae3781e56c98d2342b612fee259fbec19c0566aa6ce9b2cd599d9f0b7f19494e196aa14cb5740f72f44ff83dcb00120cd76d4954ceedd74798737a75f67c7410b00e9579a0df304a619714c8548b131b3ac5d1b9f55008cfc73535f2d5c35898aef9ccedc26ef20879", + "015c924785476b11eec38d67b555cdaaa06c8f4db8449562d91efa7f4e35a48477e812712c14a3a873db4759a3a107b14963511b48f1529b79da6e448b3f4aa4207ba0e3c93a894536e567f9f04e3abcb4b38e4520974ac64fe90861ee95005ca6ebff2e143be9f97ab2940d2c23d927ff5c7ccd4f5fb4532653195ed0a5d9f8c694d42eca0fef5976c957d8655e36837143997fc2787720345a72c4a37d97721b7c73b80fbec68f41242cc821ffdca80f6ed124fbcf1be88af74f77b6674f47d169a9834867", + "65fa7d0ad4fa8757ac2018202d2c1fe07005b0d9b4378d34b3ec73a04910e9fdbae7acc5fbdf840b0a3252cc160b095cba3aa4d262143b370ce4d69c682bbb26c0a6b35e32b02409b73a5fa8b0838d3e2c0ed3e23f9dd9cb1eb44508e4a54b671df877e4be4b4020f9a3fc407d30490ab3ec5a13590ea3272c54c90f4bd768474f9556f873c50fad8bb1a1b51758d40aa49db516e4d9ac9c7da2bf242e888463e1a864ad34a060e47d" + }, + { /* i=5382 cDividendBits=2359 cDivisorBits=255 */ + "7d1e5455deff3213c1b9253a02a4bc7fc2767dcb69c2bfa82a599ee2470b8f59a7a7ea23bed7238774c077e20e316d89ab56cb4d3e50673a366c7e852f20b41f8b82ec183a6430022a3cad9c4e6fc7c26929fa602b04036cc5811d98dc939d2c2b7aeb25d3accfda3ecb9185d1255760f82b329ec96cd708fe46907842a43fbf90b475f967151c030e56018a0f9e68856aaa759fbdb39d857d8e9c7e36d423d2935ce4258c7ce68ee807085249cdbfa696f34bab4bda33d4d2775185c51f0c791961c47ec502e883d16747ba8e360740edbc65b76176d0fbcc9326d17f5769715af9e6daca35124951167628f492cb147721964c9c4be773a2fb3b9d8940fc7a11b6f292dad234fc3cb77d59c00650528fd70cff4b3bee4535df565fd7ea3f11c982062d91be2b", + "0ec7d3f5a50d60f3582a4c2371a143ea76e5678b36ddbc01c310b429543f717f", + "08770e26275f8ac50486c766b96b1d7bf13f2e660c22951c3324e5e0c8a2eb005cc092a4c862dd6d2c33dd5233061ac7b5ac528ba15e3db45d0bc516f32f4c27ff80637ad9044fc488de661d299263380c16da8e133904b981ada0b9751827641973448a78c6f624febe1b9b8121f54d8e9bcd9f97bd6d52f643dbfb7374b8fa0a4e54e241d36b19b225a0dd89af742863b416b778433a4da27c06c1947992777f6ebe31ad77f82cd9ea3f5bb30eb4b92d0d0c1f96262621e0ee957608d93d65e458a7a77bc97babfcec25f75470028259a66e73b882bc199927584ccfa6fcf0369d1f00decacf492ef358dee0a44d29bcd91269f55830294eec614c1695ec3a89342579cdb2a900", + "2ca8a48295f921a321718363c0e39adc505c24fcf6c27aab76d761ae56e72b" + }, + { /* i=5383 cDividendBits=3937 cDivisorBits=1947 */ + "018e47aa21b3260d9f96bb06ac233651b341bda819e6247675008760f180efdfae17834ba1a2fec096b2e55e3e273b0b90b90505aea407c93cafa8814a57f56c226cec3f0e30bef2d9fb72bff5446bc75c9d05f88dcb8bb37f79915c998029b70a85bf8d1cb1bb0a85351855c83c7dbdcb36b04934e75cbb338071a9d2eb436803b489a9b7cab440c22785a246b49dd9011cd20113891aee2a6386fa070013ff95132908a6e694675f27fca185a01f3ab85d4ba3f7db93abb704ecee9ca081099369cded0f77ea94e41602af27b7f691b8a27c50cace69ad56f714ac49e20f83f9de0231aa9b02ff530e1181343094742fdadacee4b7d56a18e2f465f868068e79d17928249bca19828e364a01feeca5b8053b1a8f30daff0e6f7828678f5a863feb7d565fef8da1f6667ba6b2a170bbcb43728b414a858b7fcb7e5fdb62850e26cd7752eb74a6c85cb551f3a65b0eb448a49277fd238b7cd74fa6e388cb8618c441f8f4b06da01fd388f1600e2602835b29da046448485ce931c7c7b1a104d965d2faacdfe29cd2ed6176207d24081f8f060040a6aba6411e3f8e8baece2379f615dd775676f35c87f50b7d6a2ad9d173f945cd3a76c42ef3ae145b6dcce434bba579e89a1ffdd479982d7a730fcb83e6cb31869354567a341ddbb83a37860ca55acb9706dc0720071fa46aec", + "016920003c4e229c3b50ec458b6e676c9f640e7d094d42b5fb93926da955e6703f4195037ee8c2febe0a2dfb7557b1c90e9683d18776f3f9d7c7563519e75593e7d8115fd384eef18db46598c87230a5ce72a8db3da6ba4f4b33a779a2c2bc05f9264ff5d70b337f7a89575760c43917573511acfd1d0b7c05fa05eeece94de86a152f1a2918af55215341c78a5c7b537899595d2a84dbd148dcb8f9352b8d95a6dbe73d51a6a03fcd9b234e58e2e4290482ac443072577a1bf0f8192009569cf2b7e2fbbe7ebb855d924eaebcdd882fc1fc8874f9a63a2e390a5393afd4a881118dd7f30f67250131484e457859f0c527d9432e", + "011a56c7493d53ba1b905a610e46a4c3a3805c43a47810f6fe5d8133d5766c4211af5faf676a9653db6f005a91540fe0e3bde058c8573714396dcbd07cb3e572fba83c3b3f2cae67d551a3981cd200b7991bb9ae0f9c106cb98e17d52778dbdc55dfef7b862255a7c4b028fc8435bb59883f5514e213aba5d77843dc1640603449029c6d633d7ba82189f09e5d9f8a49d10d68b65d81f5ec5943d342cd2b0dfb261f9fe613b375f1a24eaead64c7e11f020b329e468b67aa6ccf2f2e603ec2f88d1017dce64c92d96cc5c694375a9b2207ba61f0a9d7f3e3cca4bd7c263f104ce91ebbf421a9bb60b543a5a353445fe375344491f7c9cc9136be", + "3b0a57b7caa52aa04bdab152edd0a851678cc8a5979c623e609627045dc21e54849176f0853c76c403e43b6b9f348b1841f2128c44ce98c75258a728b1b08401e6f4b2d2bec121dc9705cf7970f28251b78de4dc5de1a18543e8eeabf85f2b32eebc7ab338754395c68474936edb297e5eab85cd7b15bf92b30ac39a320e88250ad818f74cd6a709b702e2c4185eb16906ed18605757be1b9b69be826d69bfb37a6ba2ed94d34c473751360d64bf482a35585c403ac8fb0642fa6e656057422546ed36fa945de32137f4d9c365897ba5514c8958e3b14075398913270a2ecab221cd4336e9876ac990c9c7e69b0296032adac8" + }, + { /* i=5384 cDividendBits=1816 cDivisorBits=20 */ + "9d43da072c42d01470a31dde024920527f26fd7a23f7013f1fa4c94ae5cca70de68a09d67238938639c6b5fdd599f2a845d68962e93a9ccaee541769ca096eaa51910ba1bdad78567b5b01b6e9248c729d0928b0304c436e9768158073b57705afd7a520c7a84e15f66c4c2dd560ae8ef58e48c841c1e45c434823dd78cbfef005d3eaed253afd0ca63266370f20515891b650a8682cbd191daadf071ab48e1eab8cbc9f1ae49074ccf3d3743145a9c3316be1fd3113ab5d4b0370a98a1ea0dd98b4b990d3f459f28edc67d2360f163c1661019657105c453a829622a9296be02580b3", + "0c64c0", + "0cb07362834235762e7ca171b5822dbc38fa35bc5aee789b55281abb253db7bfc3d9d68dd7f4e963afdc122766fc2eeea773f8725391e959bd18b7c203ea9275de852d7f7c219a902fb6fa8cfe5656d0aa7ea6b6f9253cf94a48fcfe9ab1ab900fcd4cc39159b02ac2da6755934dfa849b201dc1875017e99716d35956a966f8ccee6c7a55585f225300a854a541e2f0b1f8f71df29467204396c60c797db1dd3cd26925250c01e4828c42af259a1af87dd33fe2149f2b41ecc1d88e9e1db405b23bf7fa1890c7f03af896ded59fb4fadcfe00e504768ef5824a51de348000f54c", + "0bd7b3" + }, + { /* i=5385 cDividendBits=2414 cDivisorBits=186 */ + "1ebc2a2a4606b2af1dd2731fd410007923764aaed8000d7f247e098729762a00af5a21146e449d76fb8ade0a14a4287da758265bb173b9d35db8d3268acfb9da08ef868086a85568522c956a8beca636bc5fd79dc7bf8688558adc451332a1a4599c1ab437430c677490033cf30f55d32fed0f850f27841c8c4c429cab78a6f2dafd0c12caf9bab8872dfa68152a675df855d94f3fd861ff876323c7fdfb78c7f3208d70206a4bd86b39a7bdd6dcb03658554ff5c706c0b628f4d5c4a2bc80df10b608d5fd00dc0046cb7efe99479beadd93668c3e89012e75599e97c94bbcfef0294d9d0b468ada4195cbfe081a0a4c14ad47f2046dfb44114c2b1caba16e710ab642b08e1ffcd115b5268485388dc90b6f262ee5c748fe55c3378b33d5ee782ecf76b4a2617e72c02d7190aef5", + "5b6a6fbc446032705a8b2a740a2032ea48e6d5ed64de49", + "5611f2679783fdb3adbc9182407513b150052086349bf65818b36b60f21b2ad15dc53f223b401b12ad4fae2443da30ce566d53a0c1b289c0dfd5419472b8531c0573c30f393ba12ef585c2009278a2a04cc460ca0ab4c88c06a41f48d71c561aaed8456d33a74fecf0e4cc0580d6ceef9ca6dbbb14d45f07ce96c515104b09aefec681d10fa21d3bb52c5091d014fca72f9e3d8f5e8a17a1ec75813b1674ef8b1fbe45c2a2a39427f7b5901f29994730135ea2c2454bfab283ffd58e8b210f0f068409a011002962f6112b49be14bf68663a0fbb0e99d70bcc5416fdf4f03a3904086a00a2ff0b9ee1d5250c01c328ecafda0590a988a2b0734fcf933907f07603f85306bca0ecccab4dbba84d8eecb0bca1d56a28bb9e", + "52f87216529434eb6d948e6596145c9cc84c3249882ae7" + }, + { /* i=5386 cDividendBits=868 cDivisorBits=256 */ + "0e04dff2492e1000c43ce272b9ede69b92b2ab419bda9924353a727fd7d9a37de88a8d5b72d95d93a1b6cc7f29ac9d47f317767f80fa73d92e869152a9126f107d9052369f81402c2072bd30aa8c04707e8cd7211a2a86ffebf40aadb95978948b40a51b7eef916237ba7657b0", + "f4e00485c8eed94b0f1a19ead891b9be53f52caef6834f18248472f1400632a4", + "0ea7ebcf63f8a0e82445cc0f012d04d7800b36c496a7c609ad50a83c48889e7d000feca1b06b26c1da167f2baa14c1d47c752f87c4df8b72343c01222db226e572b7918533e57dc47c8e229abd", + "97d716dea8081d85d1961ac3ce58545f7d13798e73ff647c073b5d3e09a44c9c" + }, + { /* i=5387 cDividendBits=2709 cDivisorBits=674 */ + "06b37368530da44127ed38ce8582aab152784c28b41492f418142e1b788643b68366c07ec8cc5b6dcbe975a17c08ea342d221605916552c182081c1d86c69c8d10ae52b15b4cbc5b9a65b72a30c11baf1e94710fc611467e3157dd7ac720a752d356ebb0ee97bc0b85a351f16535209e5371305eaba7df4659cbc50f2047c49f4e7305de6fc41b6a8a0dfb969f3ff1c7558f9a6071bc855971fead8c05372b7b9aadb43f922c2512f24dcc873224c5c19fdd7004c341b0898475f13db12be29460d0444bdfe03ea6428a98bf57892095220d21eed928e238a2348eb1d5917bf619769442a60f27a2b00a62deaea5cfa769b3fa5e55457dda65551bc3d064e73962959ecee12bf07e3d9594366dde776770f9a87587a0309514b9b93e3f91fd0cd2d667f00178f5f85752dfd0a29486737bf2ddf9665061365a15e86f871114d19b4ffd8922a83555f31d92df6fd1130c45bb9b", + "037fa5a699a8d9e94d770011b3c731abf653d3d93ad0e328500507abfddda31435e093463e7dc8e394867a6e590112a0e4d6df1a96de24cecbedf20db115a34594e5c146f11c9b169060ae2202211ca05e234e0d19", + "01ea526a6fc10dd0270a3f19b40b1df3c0fc99aeac10d9e2472442720a35bf8abf64d7b31623ffa47b3fae7aa01dd4774fc18e8ad90bb51689aaa4215a25d5fa41fc835e48c69d81e39152b9e6940d66eadd8c3548123a0f1c541bffaec71d2c18bb566b50e1e74167dd09042b145d798f8eb8854a4a56e2a9055484370c563cacb77a34eeb38da1f4fa01fbee7d0407a8baded43e7bb6a65920cd1c0a71f9fd785237ff23cdaee89da86da68c7c5798ae46f55481ef34e9b0c0537761009a92fdd69c9bf1d17a6650044bd29785243f1af4040f044311397bf63e3bd53647e201e39051b4eb41a4035451d04bcec4c0bf819a72250aab937e29537475ef4c", + "02a837b202ff9eca24afac52d230b715e7afa85ea350306b6884ec2bdb95acce79d978c386fbb9b3868112ae01a36def137e1e8afa5175dca0704a426f18977dd38a4d862fe659d78297b1ef779e7d91746272812f" + }, + { /* i=5388 cDividendBits=1271 cDivisorBits=1170 */ + "2c67bd023053e174f4f2a9f672e08ab39de94ed5f2dcbad0813767bc31ff2ca74ac9abc2b94e1bf519a8c35c6cf7bed9e547dd5c31de2abdb3f99a94c31c7beffae30b52d076be58115203242e8275f9b66c29dfd0e6da7b9d2c38b3fc04a06d21f3c89dd4bb2fa183445e4954a86dfcc44b4e7e5f4319f462331e39bb05b142323cefbe898248b36a04e756eb28c7b95c010096189cdda1aaad9c2e2509d3", + "fe1337ac95c74dde79f785a8154dc90057b1eca91b74693e66e7880299a9335af2a6dda5a784a4cbcd932592592b87e8005b59696aa342a7f1162a682acdf4ed36bf5dd0778d8243125219164ffc7aebb90db15b4d6afdca415cd69024e9317414dd71df09d2824c8cac2498a80c45342cbf963249267d3521a09abfc7b30220a75e8b281ba4d99fc2e4e40016816b7cc369", + "2cbddce9aa1c830c310ec982b6", + "405d243a2e86247f9583ef439fcba41c9085124fa6edcd387dbe5afe0103ea28a173b4e1d71b48f816cf4e6154f96fcefc04dae77802b73e15d7d775f86281102c1025419b9a24f8f660ebce70ead09960be9e184ac0616127987c369aa4eaedd791978a0e9577dc0822f2ee30c999b6261eb83f1ac68053a2ff01b5c28963373b9ff22182e2805e724dd7e96a463cc5cb2d" + }, + { /* i=5389 cDividendBits=2686 cDivisorBits=1885 */ + "3129e1ad86dfc76e8ccff3c55861119ca375354d70814f63d9048d478dcb36ef09bcb8dd41e3ddac29123abe3ba870a91415704d80870293cd0528600470f53ad56c1a955bbb3ef3318bfde3fa1110b7a93ca3f7e3825d38c4c3cbcbb458f21b6627def3ff595969a312979e862d6b5118ff50b7bf37ce557ce2ac4ec2b400f2170936e6b3d1d627455894a8ddaaf861ef1ac4e3b6397039e04269e330b98dcf49702d8df40dfeacfa86686e179446b94741b0a3a9691e123239581c01e3f6bf91054fb1d18c55a86d7b54a31aed757228ea2495faf28ed8494f1650ac04b920b2ada8525f8ce71a8976274d2789e2178404e94460ea9cd9c0ea0ddc2f2da64e9fba5e330d4b7bf3ba9013f41382b27622c38bf1304fdea494389f7e2dfa438f30ad4272cf50b1b42fba3f6c514ae0ec7f660e0d6115e31d1f99d5425ba6a340eba6efabd2440c7552336abe83107234", + "0c4f0574929d4ecdb6f233c33986334f3da4ed8c316798da79627d4cdc9a7ab1b99c9a83381b5272386479d4efa7939e6856935be6f03e067d201b5917439826efa777879d760469cb08b963caf104f71e4eede75e789d5cbdb4c07e9419c176d527c7bbb7956212b5d932af5725b2a2b0a2e675788edb9a62d1640c184b519da066379c019a07c417dd17e2bb3eaffec848d5b9f9b26d0e56c822d91f0f341929ed840063de888b432c8ecad855f0b1f8f7e806500cca2f86ff572e22a37b00b7a5ff1ee7355f3133b14f3f572e7a980ba86c4b1399da16d9d265b331b85fcad454b99ca88fdaa1634e112c", + "03fe8564c46f9eafb581d4e9bf282b0340ed170ec5b2e1adcb2034c07770ee6bd50f0d93433e1a1596dbe9ac7693e7af98418bfe9f736299c4601440e5b4bf2efd4890bb0e65adfc56f768081a44f1acd2e859b3a50ea926a6c5a754b0bc93771a53d0e7da", + "06a1a578eeca59c29cfb5e922f3540b107348c548c555f9f71c6265c8a9a2e7bd4daa848da92d322ae19c86513587cbc7fe90e04eb837f9a5052e14796946511d4270ab1351e20a3b67ba4985307391d0cfd8499ec0ce3c1734be141eb52235d67dc408524bee7d9de772b29b1576a373d2e987d6d9a3a903c8d25d0153e9de7962d965e9b47cf207bc0b5708a43b5e71206c88d043b4b71ac626960556aa2a8c369622346edd61cb5b41798a2f18a3416fe404efff7884e2b28e120ae85894491814e01b9731fad82eaa81c8ba0c9f47ee16f7934d62acce9f5f3596a6275b2f4d935f276eb6b3d49571ebc" + }, + { /* i=5390 cDividendBits=3237 cDivisorBits=1914 */ + "1f22a5949655424cd685bdbce477ab433641390af3916af5b16544fb687cab02af5569b4183f1ee2312e56d636c40d8f55ccb2430484c28eb3f0ee54c83c6ce79f2abced67e8507038632da9f4c024f733b33ee4d2cc6ddbc372f5fe5df5b9c7722e1a61de84312eac86e7d627038d8b9c3e6b8c2c102d86f4a3b6ef9083322a8b889b64639cec3fd6ebe63b66a799ffd174acde0a2ff8535abe12121a728c73a070afc7da98be06954d7e6fa80b265da6f5a8a45c02baf190b897575c15d4abde24e97f4c624487971ee0e80e25cb086d6b9b29ade8964cda368491c22be4e71efdabb5f896f541aa142cbe3381cac46f3807803e6435b1e53e6be5d4617c708b34fc3cd0410be1ec70189acb3fee32d1d7d60994a2c53df45c228c7fd47d38386357085b7943bfb0b493eb290cc4d2accd8453157ac6eb6fdf5d2afae29f5c9b2ddee41e9fde972639626cae26199bec82906b041b07e14391f5f5c8268f823a6612d25d60cfa15ab0a929eaeaf4d98cc3bb7eee1bcca92f071785e3be64c724851cc02662e1aadbbdd18fc95feb95a0da07caa1", + "0292295b9de60a3310773d9703267f61fde68ab7e3785ed4c415aab67dfcc2d6d48933d8763f42b742612c3d1a4228d8f5646e5a1eabb293cec83aee87e38efb439c605f6ad60529e6ed12492a6f121aaaa7932346bcd124db6fd24097184004552df379dd53a3b4c81b0c2958117f2c10aaed96f45e157702fbd344aeff6d7619106dd78afc184a369c86c8fc61abad17d0c736479adaca1c5e6aab0bbdb3633b65474016e56ac58b39f1104222491348ac1469ac603e8703f6a4d0aad84d2d2f02d73f2ba37b85b6e2725ecd4c2ce7e0a73555ccd45ab77999593c7ab0443006a5a23865826a63acba422aa9a340a6", + "0c1c47dd96fb77325e169f6092ab2dfd13f1f5e3dbec58fb803c9a8ed115be7fb75ce815e1ae82804b3fff1113081a24a204dbc77291ec96b73d258fe856fa4fb4a6456cb2b775bd69047afaede99acfba1cb394714902f0ff808c56e10caefff6ca5dcf3174add7efad32b309cb8da26efbd22934744ea50970126b2087ce17c00957e63a5d8d5408e663a1930fb9d6a710b2a37a9483eceaf4efd3395ef266cb211defc69d", + "01bb097f69bc44732326153718bd3459a62713d2f4c63d3bc0ac2b4f96e19e5ef4164cae44c8265e698b8393362bc1b171e47e99fc821acbc120150e8cf28f36d0caae804d8587d201ff86d2a1c721512922282dd9256cfd4f42c33926aa2b325aa6b4bd5294eca7c2236d4f1e84913a4be3e10f6525e47988f0028e6047c16bed779eccfa311f4759cdea885d5a45d57a0f5ef702d238242c349905706eab7b7f9838f5fc4f714fef11349c62ec009ea7bbebaffee04b2a16f1c94ed48b68963fe2d86e26fde347cda2ecaed31529f3d001ebec5a7070330245a1b67a4079a08a20fecf72eee48cc7052d2063eec0d3" + }, + { /* i=5391 cDividendBits=828 cDivisorBits=719 */ + "06c42ad28516f5b149742b5d1078a3d53975719b260dd341606e3327201eddbd543ccadcf6791b902e851f30be99346ad7507b6c8dc92017aa0ac19b68dd3ed51231039de53ca64845a4ee58d6933e9a858347198214dc64c525c8c0d2bceddecebeb73cb5eb0a2f", + "472e4bac75f53c39681d705d901a9e9142e21e0e451daf6eca559302dfeba465d1cf159689882b13cff8f80f42753ce66c28f5c3f0e8c52f161b10762e220cc7daa3291d4c4a73826dfa82e87dacdff2ddad869e9b7ea4e4500a", + "1855b18240837d6f83f8d21d5b34", + "0b1b0a3c4e5b46a6366492bd294ade8577f9197d0b00346c76c35a0840eee88388f5abaed0c2ce76cb657002a726a7c080586df1960f9c0e5ed17b3c25244e024e30cea52dcb9ac0aeea319b835bb1f3fbfd6c2c7db0c9f53a27" + }, + { /* i=5392 cDividendBits=3243 cDivisorBits=409 */ + "044d2db295a35ca9953fa497fb14ea24f3186d8fbb7286fe0cee37738e0426ceaced8b362d404b98d66aa169644db6b4bf7d60193579a0923b65d80e7ea317b482cd28f0355f8f52cff147949f11b8dccbd0107dbc44daaa14884270be1660ee5cd9d07e7e73d26df9d443f504d50b5a42516c82171e920fb155ed7d037ab286ce5637fb5b6b862067b516a1dc706274d86fdf15f91457558cb82e4dbaaaf92c12ac01e6cc3656383f88c0328b07536eaf98d8eb5ffc5729ae6a5085a4bacb1373c883270309321f50b0e96b84cbdf45c6376d4170cbc97d83d2dd57eb4a6bea604feb2c53700a737e46d8196ed4f455b51409968cb7c294ec806bb5f0c23f9f27054243b8d4605d4b8d0c961c73869dd9bf8e1e10d520f25c55bc3949c0d948a1faefcc232ca35dce0d32c11f2f303d218a92c60281bffb9685abacf6146ee39a774663275956cf8e52f1964ef5599eeff4091c80dd675e4d7abb952787aaee1f021d378d4ea9dc88c8675f31e7803551a7f5fa148bdd755571d992cfa5a594046ec3d179171efa9591ae7acc9e52abce02cabf2331", + "01e99a39d5962a301a6923b44ab1e9e4bbbbd756022b48161977f68f6759be06c8b7ed9a212cab3fffaf30a0efdaf8c144307186", + "023fc6d827c2d113d530c415709e83baf38452d6b19e5e67d828aedd4f665c5518974377bbf03e0d62cc3df3bbb747c84ca6071c362c38effb9ded3b60af4de5aa730f20fd2001ff2d61f9e343c18689c72d869d92c6e34d26c7c6c437a694a6ea237478f5c61d5c796ee1b6770427946c6e76be7ad9000e23a983e169b0c2995a195e7c2825c24cd3641a0f34032e9bc1c137f9b55f41d7f37d9d43d2820f4d50534607c905f5508de7f57a8d31ee172827e57594a716d21870559b9cd2684253fc290396a22e090642abb4bde8ede31c9a36013f6babe8ac608e06b6b7a44d61bafc02cc80419781e93b6e3ec8a5192b8005856a49fc2f82a957ac50512aea6ca913ef70241248d59ef3f5714ba0789a75f4b8bdda1d486f526db01155db88ce0846616564ececf6d6189f9172e6a2186639b0f58d67f07af14075b0bfd4d4e6e42cc3acc53ec720c12c16d07cd0f4d151b6881a52912e4cf64964e98fd47d520789", + "6d49d31e2224e2dd67ad1740b78e637e770ba4e9637bc55a52359376b30bfdeaaa509e121cea6d47378b8bbafe09cd2ecbb87b" + }, + { /* i=5393 cDividendBits=2662 cDivisorBits=1009 */ + "1db3393d3710e22ebc19f9eb0b8dd97678091951ed673e240f8dc0a54659d0dbdfc55c402717641537c98fd0fe5c3fef1a963c7bb89545111a7b79330e237ea8144c36dad8549a0e3177006b56023a642fa3f98019b25e388739269ab8ba03afe9f9b28a3ac1f24f219941eb98644a297577f64de3772d486ddd0bcfa01e2173b28b47534de520b6a67272d207d8103a4c14fc3cc44940f377771e69df6e574889acebe35b6478eddc34f08e2f466604f033b9d60f9887a12c79f4db94af0b4e6172cf4ef74e106907b032cb53d7d58e91d15adc3fc9b59a99b6c9e51944c071e567670e0bca4c46c7b7a42fb060f76f886a6d0b46a1ce6ad6f377f44ae4ad502dac3898f5be6ff97e6fe4a4010812736d856fa20f973db5e1eb5875a9158b7772dd88816361f314531eb204d770b9033bc560c2dfef8184c138a441bf5c6193dd4df72370b2944c3d156d206c", + "0124520aee8c699338822dfb1031164570c80d02f04f81da8e9d2636809be6810fdf60b7e26bc6c84a8ae03a07ab05182f9b8847e01ebf6ec985c5067d126868e5fc895f94237f59ce249fdcdf3aff39ceda1d8b987930480d237420224a22c5fbbf74ea425d875692b33fad8213aeb50e7cb3d41eada75fc42b832888a89e", + "1a02882b3079d4bbb4c8afab4f88e68e77a54e6982ffe40a4103ccb630ffbd68892bf901521001e96be1110bd9447e2de6a9f723a2daf4bcbfff4f1a78143550c5d957f8f01543ac61b19f36e6c7c387c8d869d272f74534c9eb15b26f984db244a9bdeb691baf13ba5a27720036f256a6ad0c5c7303d0f7c423540b92d2eed999159c9520e54cf5576724fc39d58c0410baa5b28cf02857ffe0a309559fa4a2a75dd937a13b25eba14cb2f0851a0fb277eacef459aba1807ce1296166329e42d7c3b84cc395ecf136c83d29143395", + "5b798d4457f922222e868c45a0063b54febd966f4af2901a84806047da7b70c205b4e9ee9790373478b22169d3142f52e4015f9ed283de154f674833adcdd75f98528433ae09c5f176a67d74c94e383e42abf6a18284fccfaf13d6023de442f9d23e86cebbfb42b33664009da115b92e3a7861106182bd5f2c7ec9f38276" + }, + { /* i=5394 cDividendBits=2149 cDivisorBits=927 */ + "1a1a9fa1d3b70588a8396ab1a0fe3a45ed77edcedfed6427ad7dbb16b39b0b394b36b42af71f59a698c11c1bd5774000519f045499d0aa50905d7bd99e5ad97d0418e8ff5960b74e7c3e6e2abc16c435f3d83e2de3b1e34bd3b8627bcab3f757c2ba5339c818d147bc01463822c31154b0e5fc908842b19420acbef76a44a80b7fc56ec122bef7c85659c16fd7892126de080bfcc7ba12cb9b609a7ac9271b63357294bc3b0ca1f95edfd0743c3378e65d97d5b1894f51e9f1b0da335a1ced3ff87fefb914544c23d719d30ee76e0496e0b49e3e0c8911437152b3a7f6d3e191958cb49e139d425a1a0f160c5194790daccd094e882503a012fc895ea9e0d934810a27f04a5675f378575c5a5e", + "1a41cd84597eed165bb52121ba41b25adb4142d7ab2d8b6e277b6f12eedddba57f7731b884c3a698782d46fd7dadfb41a84064501449b5fba852695fd3c04fbc945afe5aaeb2b06886ad302dbb9106a328545ffa64ea1879615b8d10f93a81b142a1ce7e1a27bf0d21657c9d780d123b4faea236", + "fe8202f9eaf93629c46bf67fddc2f1b011bbb4bedd735acee0e6ac38af6a7687b0fd07cc2b0d088030c32bfd2b9d8a3701eb99349201623a67c5b0d530e2870e8f9e1b0969387ce54f947ca79040706d3bb4aa24e18afab9aac8eeda1739dc3ed90d8454babce0232fcef59d86e1ff94bf1390ea33b5ec6f8bcad81d48754e9067b99785ea930afe7df6239c73c5408c93042c030b44166cb2", + "19d12b194c7aa43861cc9498ea0d777359f537dde13b75cb73f778862573d3abf4538c6aaf3698512a9f6a5d62dc2fc4a2dccbb21d3e14fc1fec6ea339b04c4035dfc91a0965e2f79b54cb89253a14799ee1c8daead3c77873c84c95463bc8cc9c3f88bff38cf961bae57e25d5bb6a32fadcc8d2" + }, + { /* i=5395 cDividendBits=937 cDivisorBits=53 */ + "ea53ced2ed94d81595929e0898d7198604c3328deaa587b6643ca133ee8e8eee16621636233acd0a42c73179d1f6577a05f4c12a0b8866338fbf25c14fd27500cdf493b9bcf71d90e3d512262f33bc1e8b11b4c8e5b9af91b0343b360128f22b91108a195407593684f1be0f2a74addd00689da050", + "15abc8dc860498", + "0ad01c31dc85b66f76c712c6c13e40591c4d1fad3a1f0b5519564acded3af7aef6a19a89f98d84a87910f012f71848c0eaf32282a6b669a56185804e458a7c75e794161ccf3ba15e72ffefa9acdfe28fb35d556d6447bfd1a12ee4c22da8b150f6974594e63d06baf13d3776029321", + "0bada8ed83c0b8" + }, + { /* i=5396 cDividendBits=3006 cDivisorBits=140 */ + "250f59e462e797fd6422adab9ce8cacdb172ac806df807ec2278abdfdc27bb85731aff38dd617965e08dabee2abed37bf835d5ef7d23abea3deca558ddff352c5583e0bd401393f6b5a000ee05d77ce13807f62d025751e07c4c1d400a20218c0807d994a85a44dc13b74067ae56ef4d0a9714cf043634ccdb46f4c8392eb0e1a4e08698e16bb48317b08f691ddf63ac3aa378d2555b1858b00daa728e3a1d07545a3590db2d2ef7ceda95d59e194d0659a4fe018f2fe8945e8dcab59ecf1bb01094284d81e3b2a46fdb7ac1bae73d61865a9e548fe6d41e0851aae6a305d1ca0d09c812b6d28bd8be8b5e3596d70db0b523120424654ba4412f2ed60edd1952c8a73c37b3c441052bff507d42ed9552f5df925042583ae338479c2b07f1cf016bade1644e5586120514418fb1ae9644760320134389a8003612fb9f56b2348391943454c617aa7528cd8023c17ac1fd90a29bd11f7269b3400c2cdbaf841aef2418c825d3694036f490d8c6f735857b30f247308ce4691a", + "06b60362cfe74d3edc0b192f5bc3b7fe8d3c", + "0585b42ebb0cbdbbd5e309d3041018a524a5fa73b292a62fe75d480bc6d59febb77b01fe552234c2d237198c2afe6e298a95c96cdf216ef480a68d577bf0319975148c4ce31858d2883a49885ce91d6b382ca7286f227a583e1dc2214e2515e50c05d234809873d7c0cbf7b3b317c0c10bb33bd80f9c998f06bda72a35c2d944c95e72faa4df6de402ea8485b7d9f41d1f43c6c99df7132df33d75004b9c55a63db4e52a2ffcb9472a4c58e60876e080c76bc6db6e56c94156ce6a8518c03fdfae62503e7805a906cdfc751e786b746f3512b131005afdd70b10d5afdf926a68b69f2e006b7f65a40f35f39e1305f4e49fb9354989104368aa3a38fd0d93ae355e22fe9d2d2c656502f5076e3b7c442fa14a66e0d21eea8239bdc3cf39d923459ce44c76ed1d592f93bd81011176a3ea9c406077302b9c56395e41269631a2d4c5ba0203d4c644d3869c77f1610b2d2951f408ee33ee4a6fdd013db0030a6d6190386ac77865b1", + "06a8ad435b733b0f25cde42ee353100c169e" + }, + { /* i=5397 cDividendBits=2880 cDivisorBits=2137 */ + "1a3ff379d4c0b3aadd0c9c36603db7a24da63dba4b94d3b5bffd3bb59300341709597d8c14e22b81555a08cfef846fbd658c6988c767f09cb20a083902046aeffca78d181f844aa0041b5ed62f7e1271aeb41087a15db38bd2992c6f11df8030bff6b71991bc6874bf4e7522000d01d636e5c95a9c8a81eb2c923425c494960d82e0977a68d2d451f809409f843c25733a67a587519e97a6667e37c3629e4e3737f876b159702e9a900b21e95bcba32e9859a844c59f1c4f2dad5e93d3ac2bace4222872a3de25f7b86d85e528ba8eca17bfbaa7233d5b3ebe0d2bb4a6676c89331febf70e55ed21aa9cada5fab9a0634326e1b642ef80730b41cf15653cc0252049d7177b15c9a2fda839cec786d41f90542663dea2197f6221c41ad74e6a5f752ac1464df57c6a7e8f4ecf6c22b46c9efdff147b79700ee3c6234e4aa36d9c626166a2bc4015cb7d15b85fc6221bb6c34e189662de41e3f1265fe1e844a4f920b64249974d5808", + "013a094ae7167de2131733de033d9b85f62d0245aa82ff58ff6a5f3cdd063e6019aba6913a184e7c4ddaf62b3dd8c07cd4003cf7e065a3b4d9b2c2c04419371aecc86595f7b3af3fabeb36c4bb6eccdb6752834f0cf7909d279fae2680e1473634246581a65b17acb22769b65eb8db921945642b7faec98c368a24f98135c28714c14f59296fdc95f939d7438b0bb99e58e8d7741933a770eba676a1017a85da977824af17841a731bb9a4c2e8a538eaaed9ecb5a02da8d032c990b8c343a8d2d67ec782589f51da4b53323e3ed075cf27924ec60439660bba981e5f9db2f0e015710cbcbde041f7afcd487ec1ccec487de299b66322ca8ecb07e4441ef6c63cc09e17cde76ab62ce9f22cd3", + "15660d8e4c86cf8001f180a0a1adcfd1fb2e6130b87d99e71d8786a62260f55e8ef9fe6789ec4eceafc18507c223675fb184898e7086191a1a395fdbea12ab822cc906478128841831dc415e984653bea7909f4d459ed34bf108320036", + "fc3f6a0aee0776a6a7deacfb8e7309691629fd9b0289429424d3a6a15027e55b428bf5baa3044597dbc738c328715b048f3206c6f2e16cd71d270f34ea49850eea0e1d8082912af2df9c897cdad0169212d246230fe3fdb04f952ef7d25bf7b3f864cf21a57bfd74771c471e44284a659b21ae4af36dd380c9cf384c43c987294460735cd09886206536ff1977ffd55968af6e62479d837186f33308874a767786e984798f4b31972f90f001311cdae578d2b333abae966d6fb99b510e10c1847e5be291792120b289e98760a63f5f6029c4babb1d0056be78c523006e7325d37103ca2fbe4acde99a6003672272740a237f67510f6e80649427aafb29afacc66d980af8178e79e501e386" + }, + { /* i=5398 cDividendBits=3710 cDivisorBits=3609 */ + "0ca7db2daa0a4f56a63a71442b01baf03a17956c5dac3bb2f9095da9fa73adedc756401be683dd992343234440320c26fbead4c1b561feaa3f4a5dee5e63ae501db5ee824d94965df259a4d0472a43f50293c2fdae766d42f10fb1fb00dd0290ee90d59586137a5e5c2b8905fd0cd7a9a0415831399b265040d87a7f1f7685e6e3b5238b139f4da292b733f02e108bfc8bd95af649c8c274e2983bf82ebed92ee80f7dc6f91629948bbbd44a8bad5decdcef9f5e726dd9ef1d7201b1de773ab1c029cc396d9c141a22a41fa7489238914c1efd0261d436ce747165a7a5fa2a49909370991ae22c1ae52c66225b57d00894b323df0d3d39e4b15b0a5555aa114eab260265678f762a0b6f939b4939070080ea197b85aa0fec7d593cfa9890e3699189ab1129fa02d3d651a35d5a99d9f0ceb9352fe9723ab037a5cafeab4f990e5f69060266b1646b0389dc84870e942013ef743b75d953cba2f3d9384c932c88dd747f1e59c8acc55879e7b0f36144957b60c2a75f30fd652beea9bc5c2317a787cf93f4dbedde414dbf08bdca3da3b8ab99120d855110fb6853076260b8f43741b9c40ca9f3cbd78ad7ec89ba200c0b046f094ce2956a28a7818ccf28160fea539347393bc1db7e5589b29272fff593", + "8f487473d94991c403142475ff1b61bf237a84574583d14d5cb5479a259151addd484bfb8431c934a54af4dd02a3ad0ea3d391c2a648a88200d8f12d1df3839ecaf8521a7162f34bf2ec085d87e4f79e8504b0c2fda477c51834067448e106dfce0dd823ed8980ccab8155e0aa5b620fad35fe90671274f8b34bb3236c0e61e94da9009b3e58157ed9da0d73e8cfa6485340c2438004849f46576ebaa7886a8231a924094cc2f49c9609808933fe4a3d3a3328f82552bc10414b0449eea530a39116af57430b7809bf37248294515f436b4199c17637a4bbe1bf18df8ccd9b69001da91fcde8b93b3c4d299e0f870bdbba2e77e45792fa54e56a08eae3af453985274a2a2d7675b1af779f5ef2f30049066a65cd8d4571e0dff8aa9c7045dde3a877fee0a1385b21ae435afaeb9acc48459ac2b9b28d5ce5f85f4f234e6b4f12487e24fea199a9ccb02b5cc8445b8b37dd006230739bb2c8a547de5cf351f8c8b64c31286db424ba1f393b6c5d00d6cf48cb3ebfc356a915a17c381b7e034e7c71cc321f12029ca1e9769571d3e852ae5978ec2258e51687c742b91fb5bbbce44c8df208b34cfb6ec11a035386f5016d4b42e8763890a982fb2d5aee46a98c3ac19bf7", + "169c90c0f1119fc7d00eafd701", + "070c2ba240070df7853ef1cd91aaad856c23da7bd5e5b28cdbfd51e396aa72d9e10d1e0a40cfe711adca0ccd9335047faaca4a028c26dff7c39db318664e271ef5a9f7c1548d4e2befef144d264a9934f0a4b8589f8e1c56ff9934217e78cb491e289a87f411e8785288965e81873db1103f3e32ad067c1d8223921c7ff299213008ee61c5144ebd43308da8f00955b8d9c729d890dc700d6141aeb35d8040c74c0f0fb827804f2ec6b10b671c4c7f98780f8d8e176ffcb2d48e018df3ee5b82810e193a84e72aac8e14f8d1a7afc26d8557a191107e9343fdcd346acd96d73d30f44818ca8e5baf52315cd4cbcc1c07b9e4dbb268bb153378880950156b5ae17e0a0d5c0e70beeb8eeb928aea048d23a0c65246c6480991e9461324e4000ed31d2bd0a0ada670c435eb41e024741532cb676f6f5df1f4eb79e630ea7336f92257dc23c1dbb0527a7489a138de77694429280282281c9067f35e5792ef2f307dc1506118d3c7822527b60c3dc8f10d6fea43437c2fc288093288357fe2fb690f48bc0a52fc11867b69505465a6772dda803e303376ae41736545522f5c438e62fa98da9fbdedc17c323ffd7b5e5cd6d9efc427222da2dee21c5fb3f9d6c91c7e68e89c" + }, + { /* i=5399 cDividendBits=1873 cDivisorBits=1702 */ + "01b5d4226a958d809d5605b7bfdc7c6ec633b71428cf7b45980a8a2a1f1c8d50e572161645e61969bfe27bbb09b765376f189434497574c4b6d8fe650862b6430d77110f7a8185121f40d84660556820a2da57592c343fd88241f00c3fb5423fa932c9bcb30e34fd0535488dc6f600475c6877e954e34e9d8b3f6d38abf638444b52ec2d1c4cda13b13145c1ef09bde7587fdf33fdca7ae3c8a80e4dfe59276440896af89dfea9c09cbe518c53ad58122adaa601631446f0b661c31dfd4bc9c4328e1455b32ea9fb1960520eed962f066fcd08b57b3f030fb01b9c4ece009c0a8789a4b3d3c50fc61dad67", + "2050ff29cbad07f94829d6def375530f8dd3507ac3f476357180038e0117b59f9308c7dd4f26bb5213f4571c279729d7cb56b1546a1f567985ff064907de065dc4f50e0badba93ab1ff3305a54580a057ce20c08cc036284c70c428a4ac02700d981a8ddb29394d7811fa4dcbfecfd06677c0465f6c6d7492e2d6be1c9786c0c9d4e6647ad6265ca637707dca938cc076e6e8f159fad698251de0d44658e31a9154ed920040f174437867f7d100feb15e5a0a69596c2443172d51ad7d952c38400e0c7ea74f22eb15f4e5579597208960cc15b1648", + "0d8c5633d2281dbaa507f82dd95ebfaf6cb592eef8c6", + "0fcdf23eb4a1c5df2eb06421bbd2b8b12e271e31c40a6b7323b3f31708a767300544edda103dca82de962d92e0976f4d6f77b715c36cd0691d9453ec263387c9c48871276c66d9c2c69cc19b64a87f334140af5cc32d704350fc6f9145b7aad74715f38cc3a70fc6b50e47f202ceea46ece87d18d47246f873cb5de5b14cbcf77bb977a0f1c7e03de3abf3e3e5f5754dd638fabedb0a25a25ba12feb2895400ee6375de08be51c9bbfd4305c2cbb33bbe602541d99250d5f106db7d10a5304a91fb63e594726aadf059c544c8453ac85963524b1b7" + }, + { /* i=5400 cDividendBits=3450 cDivisorBits=2869 */ + "022ab981a379a63256ef72f1d660bb98244772f12642c6065dd1dbf7ab8be531951dd1a77e13fab73984ee8b740626328fe7183329fc21709eb0bf5d73a7ab0bd6a4927e416c16eeb84cf7ccb30d71311b479931ab5b635b11ff8cef7e165e1f9cde7d75aef5e7ae860d1f859e1f69503a7fa5fac0385cac7c478ca1363767ea50c3924e3f1a1decd9932883dfa4a062a9ac58b35cc0ffcc3023a79443f88bd8998360538aa16d45b11c53693bfb1a6b6c0f33554cbb9021640bec773fea4cf3938af1d91e9c3c5f9f25716ac6d72826f8255bb9ac72fbe65ddb19a7194b410733971451011c83a5f91cb922f2b050f60d9d44e74d0824878cfd24ad8da26ebc56f46d57adb663407ab114c8adaf73946427f4b9aa423b33627e31250a80deb45d4a99f2ec3532ffc2e1e9fa4c995a767039b6a90c8443fd57e09f62036bdc728ae13c68b46c4172983faaf2541ce45637f5cd3740d657f154c060b89f8a19cd2226f1b3bc0e29145b796ae04ec4354026ae4cf226c666556088ea81378045960c87d25c9cb70e420470b0807c883920d57b06558c96856a3ed04b3844b5632db1c25922c00d6dcf21d25a7e3484b4de", + "140411eaf12522eafed7a6d944a958b15c42a1911155c939153571a22fbb934aef983f05c14a7dffe10c8695e3e17e5a5a39576984359d0681e883f0499d82388202c6cde6d5b1a6abc1942f980def18c36c6c33e1e09ee0c93e3f0cce7d18b4ee8c822e94c46f3d1aa1c17695676648b6a9313447e2904cd51ef5f1af435822cd238af64a8c412b4de927f9558e79390340fe3845717a17f47fcc0f26dc5e79c5f2996cbfd08e1b8e8692b8483f6bbb54452ad484a9aa79c3bfa2949fb3a027364e56fd06069695146e5ec15cb123b55384784c0eb8e87c11a5001123b6d655ddde9137a145a57d573d0b413cf964c9ab84e473cab338fabaa869a93eea7f23d56df5c07defc6d422b44f8cea4111a00408f986db1ebb430d70c4164eb24b1669daef69b0f84c69f987446e122cad8d329fcedaa38859f13fb8d6f7de45e3c3cc02e543937da3aab344b18ab9ef5f700be17c77ac7ec5b6ffc49545a97367ff269517fc6a4630", + "1bb6d5e2d32e93e2f6d454a387a1e3d66d1adc51d0ed7c7476949d80ba18302d62655e9f8302ef5cf01f68f714316a5ef25dbbb66e39abcb76e13908a7214585af8d238e3601d6dfb2", + "0722fbaee17002e8885838f5718717bb51e9d92e83e7f3c9beced34c44b2d12220d2f164f1fa7eff13e644cd6536bed0664a20235fbe87825c6a0232c724abc70c2bc58d2b584119beff82e317d6d60db9aeeeb19a61e591525eccb8ad37cdde65f0039802728a0206769cd6c1276c9d360aab3b95f29530837ebe5c6f787e6d85c79892af65af0782d7bc4f74a827702316d843ce757ab6edaa01bdd8fad023bd95f1ff72da05bcf5bbf65a32eb7536c38b857fe79cdaff3fe4abed9909dbd44755e17d38407c1b9462e2e2a90a70a41327e4888a8b962a0ab5616737785a4c57d2cb85389a2adfd018a594bc262a9e731b95ca5186944ebf384eeaea2b3f7ee609bdaa3ef86f421020e3506a4b7aa4dd1139b95970c36e042f7d69b5be94aad313f7a7caed8c9ef49cd591e2fadeb793afdb180e38a6738c9248cbb81c763eb5a35f57f95c87a930572855257ae1f57cf79a3324389575122c2a24937055292bf1b3435c177e" + }, + { /* i=5401 cDividendBits=662 cDivisorBits=634 */ + "13bbf9bbcf3891d33860c88ed25bdcaf91fd04ec85ff3d15aafbd26116e4b4dad5a29debdc185d7728446cd529aebfbcf644e76f281d73af1c18c37794eb456f24321692fffba6f0f984084d864bc7c1ae079f", + "020235bdf5b7aa05d3037a2cf253f9f2addd2fd294010c0f19114985d5fe52ac33e5afa3eb6e983b09c6ddb2275d341e22f6b60abc7e61c8b71a245621e64ed527a6df5c18d9a95b6ef90330f79adfe9", + "09d321bc", + "0d49095c34b924ddf4289d5b8c1266e928b53aca04e9ab7015544fb9a6dffaac290b21c44fd01b07523030ccba9e8589093daa50d293efa784180d61c4470c9be0f275d509233a5b2e1d6137098f83" + }, + { /* i=5402 cDividendBits=3772 cDivisorBits=1441 */ + "0a78e41c8ce526de80983389964c86f96cfcf25a5170a0ff0773dfee221356b95fb8e746a34fd237c98d8c680866b98300d4128a3096d2d4c4044421fc77bc6faa05f9b236ddeb91d256d5bb690cd63767b24a30720fce36c569240f7148f9a93b02af7c1b27716cedee12df9dd05f3d85749d7e024fa8d8b85ee43c136535714aa79246829b5b6362f327e5230e97abc66a03fb816fe2a61c5ff84925947e9b2337243a6a0bc95a57660a4df697fda7bedf14c88b54e8a4c35f2a2e77c0908aac71297455eb93d60ef3ffd2b7d6ceaaf998496194d6b5208d7fe09dff4451c1fc1809b3e3736aff19978f63c07168852d824e64b4c745a0164d9dde2a81d9d4bf97920d9731930d4fa0537d264d958d1734263378a9eabfbf4ce126a7c3b5aa1437185ec0cc5dcba08863ec0ed3bd6788a75bf9c4b55ae5babb9a7340aa4110f57ec8167f886d5c623e3fe4d6a30d5afc72bb68d24b8bcda1ba73f7a7a8ced2e33b7e31504eeac6af167e4e7e822d7ba15a77cd6a01312236dd750bb4cc24821410ce1fb0581dd14024f0018e6c382fe2a7329e0792474b055663a07766939479b1cda1b323aa5c6fa1efae24ca9df144bc37b211552957803c759b62c7876fd69c30ee693219ae459fbe712a58da6c523ecdbca2c6e934", + "0143fc6721271ea4c53a206af64b9e1a9bce6150e100d466f14dd465acf0dd615adbb86b4e87b4fcc22d29e14ed286634d5686c78dcf7fafc1ae95b79377605cd77ee3f10a5700740c28326bc6bd1eefef0e7d07bba4747ade5a7029a03e6b710faacd3aca56aad42aae2af87545886f5a5824fda0fde0e9653ee42f9d983ba37b2c75d77ddf6e8805093407c64e8315ee6670006fd779bb83b9595941150e2b71e268f6368ba742b154e70df02efc2ca090273243", + "084653a7e4c3b417ec60cddb5fbab616906bf4a81eb9ef3cf81e822343f1b3caaf0d8478aa345fce1e2022eed43d8de88d370e1cd8a0ff0bbc2235f83a7ac43810565bd82bbbbeada514908e53a4bf8eb7a3409599d49c0e103d3ddeec281072a12bc3cd87c15aafc3e07bfbca2707892531e4109c27d20cb6a86ed8d9dd6de2776f09fd613382cb04e5e22870b1dd2dad0986b939bbec751d97f834c5468c8df028d0e7145258afc3239e15772e91c5e9bdaefddb3bd7f5535fc7452f730988a589cd29523d9bbc46d9331d1400c8c00097cdad2fb005a7e618efbde3d1efc5bb4d511732d1d479daf63fe0152b5eb17342a1627d9bee3be863e1c89d456c663ecb704622aa7d0be16d07d982c3566c44eb225665d502333473312303ff217c6bf8a3d4", + "bf03f00a89d5707cdfa054df2adc39899c2af86bdd866c7988a5ca87d8d96fa5c57e36a5e458e344f49f393e6dcd27e215f4dd5cb5d1e19bc9ee7e9f600cb180ad6f22aa7adc71dc750dcd5fb81e3bdcb3497a1cd7562da440c2ab27b3d250eeb0173652450d862ba5d481d9865de2087c5f2a2f2752452f29f5cddf70025b4bc35c6a8918bf6286d7397ab3c9703307af01871d67449bfaf8e07c4041deff9dcaf34b49287c390dd9366782c6ff998d9b68a0b8" + }, + { /* i=5403 cDividendBits=3125 cDivisorBits=398 */ + "18d125ba63a9dece9268bdeb85c9a46c3e823b8c389e8780eb8a0f9d6199cfe7442d3dc31a070cbc2c1ef95614444699c743b99b706e5be1e4cd27708fc020a552330397e8fdd955c9989168f86a9f0004a5954717988ce3640642eef890eddef22bd99221b79da8faec405835a278f2622255493502694e54bf6b9edfb3a17677191ee7aac551132cddd516764b63d8ae47c4af15e85ce9c9aa8d25f286a99e444b4ddb7ae9552c8b431b48d4819fef41bf4297fdf18b8d5a941a3a754ff831fe587e203958e1417acaba38b08f7b265a2692f702c04f00cbeff9c044423283ed1629561e8f4fd06176c483c91976c00961b8fd414aace5434c6cdd9a8ee7dadc3ec32417dd35464871cf892c2c2d41153e0eb4687ed7981646499864f59bd5a41d3fcd1a7be5564e1b77320936b44138af314be6be0dd6652223f6e229f5fb314668fc099a1f1952806af99f7f4184b19901f9f5b483f31312465554aa7de56d0171587d75969136542eb3d15db3e507e3157625a469ea54115866b922bc5516d42d5feb996b", + "16cf7b83ef7d3306bfc9332a558d504b93ee45de4c7e8ee8d8b6e4bc9460f2f06bb4ce90ba2df185c63e90b413a9fdc6257e", + "011684d0e9fb044167fcf1582e0d62e92c60ccc35428b1c55ce95a99a0630d7f9e0845fa5d7f47727f01b8fea64fdc85a1c9219234fb180197e7a816bd4279038b32cdaebbcaa2817db7b1ab1c33e3682345dae0772bb166a0f3ae4d341ad37fab69805b493b45a0529f0c09870978957e3275b3cc3895478739bf35ed460a7ebbff7e8e806a7ed992ab6f44a734d76f81200af030b501323ff8ef306ce2120ef2f596640c7f46858c1f477fac85d90bc5735f6560964dedf32cbbc0671879464a9b2a25b5ade5aab3efa9d099ad2937e05bf01e3dbe1376ef8f83de49dc148c51f4142a7b29bd7bf9242439cb055f36cba31798a11be6bdfec40a1cf2802d2e4d87ac7e230b3dc68af05ec461369e305e38a0045f31f66fd0425a11e70724b9d7330d32c64fd327721cfd882e6e9d9d0329e61fc43609445b3e6281935157b94ee63e9363cd1aca965867b48d39f82dbbd6a9c0dc02", + "0d3140646b5e63621d53958f1e694b31233e3a277663b11cd06f6b92eb823caa6e4a8c6c7d2d3ae07e2bf2961212cfa7066f" + }, + { /* i=5404 cDividendBits=1796 cDivisorBits=1441 */ + "05818a0350f6a6e856ca659278f7afb285d37ef8568ef244be30b7d7201a667764b2e047903754b442fab8131e8352755c438bc5d4d44bc6274ddefc6e572d2f1d3dd44825aad0b0202bd3d9eb44c77b69a2023ef2bbbf4d64bea12de160d4a32ccd22c6c17bdb0404bd41646022126ef9132b6dd341dad13dd4badedcc01bc9c283741251e7f677996ba657395464ab06d0a3244aa2ac84b37801a8cae84caf3102235752d85667439e6b94495f94bfcbb90245319fdd4b4b9c4f741c0817161104eed386405cdb47396be1dbcf9eb7704ba9ebe9fa9c5cafc2664df5325c5232", + "45e6eb4ba9fde75e03abd95a0f1e850916325d2059c66b586abcf628c4ef8d9eeb75a78e46eeda39b58d160161376628c0b760c07e04e4a2e574014c42b577d4c88aaa92fa52cd5b89b62d24ac1d793b6b54812948dbcb22a2a0ae5c50245235d3c5d2208e7abcedad4729d0c7ed4b55967dc75abbf1ce031082c517f2fafac139c050513ea516442eaa72f6733c0f255cd6b6dfc84db95ff467564d343e019507557231d92ce786e59d03238922ed716b42cc86", + "142a1c5d8d8774300b515fae1a8c3822c33eabb063de24db777755044bac2b1c38f7dd33e3f3e5ca7d99087789", + "1e883f049ba4f114a2628f1f6cc714f35379fd90c54d8afe2e9fd59fca6bd9470a4f0219553c794b3c4a1f01a766c96f48fccd77f436508f6e38120bb184102d3d62a57e0fa0d30a096b55a8e8aed2af11bf44c9351693d1c28f2256962c5f5b693afc8922a3afe9c2cbcc5c764cc918dd5cc0c1cd6f9b560c6ab2dcf538be129ac4859ab1af68f5c70a02438ea3e2698f8a407bceaa3860ff79ba1b40d7cf95ba63ad0aab4b50c3edb72a31b2d1a3a6445a947c" + }, + { /* i=5405 cDividendBits=2550 cDivisorBits=93 */ + "29538cf2dbf853160cf6488d25e5290daad6792eeb848936c3b5260eb245627cf4886df092d57bc8a68710295627f363c18737ce1fb188a1d6c7f08cb40a74f1ad825dd3559fca745b5b741c591638396eec97a548ee643abac809db2d656e4a68b945f82576fee5f28a86194fdfa86e1f2ae8dd30ef2d81ffd795b56523f13f80ff8aa0afaf5434ba57c8b14457fa0aee4459b45a785a903ab5e56d63fbfd04538b344a3fabb7b9f1cfeefdbeac01c10cdaf171b70c11a350f245b2e63412536d6eadf24d3faa08b926b38e1d3d6e0d9ccb6a2582cbbce2266937732a44f19a099b527c4cd5fff38a1143d9956f8d1832e2ceafa82eea1761fc5780c3cf4d5bf4f717b227b01ce6ebc45e345c57de5b1d35c1a64eba04f8fa2903ab9417d6d5d5824d29573a2c0459da3055fcb158e8255814d38d438aaea970f24a065d7b", + "096a24377e3d58b58281e390", + "0463bca6a340860268cdf27beea33ddc5996c468c0472697ea2a6c5dae8d549347e2533a6b9be032df22363bcc6261a469852e236dd7e62eddcb5ef1e1e1d90a7935a5bcbf63299fbd5fe03a01fcd6f8201c0cde86644cdf26ef7f55e3cd21d38060db90366d7bf5c63d2e58ce06c6fd55c52318c6b3ba143efd2d6e15d84febb36cd53667b66266ef20a2da13d3473f44411461c08c9a7b4a168229fa2e11cc6871bbe22f26a49fb969addb56b75c2b3967c3c3f78fc1058dd994499635e64bfc6caf04167e72d2ae2fbe646e78af186e4f3f10f406a32c73124adfe45bd2379036fd8cd956fe8e2606d90db0e7a30cddc7715fe54c3257dff62b1a8df660cf1e831ffd9b8a0f5ec395ec5a00135cfd1c0258d055502bd00e78ef7a0fe49bc796ca7394ae0215a901c69f6d37a678dc8d49e4b9", + "072eb4110303dc6b176caa6b" + }, + { /* i=5406 cDividendBits=2333 cDivisorBits=1251 */ + "1cd7115ad271fc64a41c11f766eb6ceecbec90464849df4458cb381b70236daf8f01250db41d8cacb5331b7d6bd95ac6536bc87ea842c3eb06a29a81949c9f937dcd73fb948ae08d5f6c6a2488161609f2f42d1aeac86582b2d331764a40627c24b2be0f78928833f6785d8e4e437fa4489e8ce6748befeb7c9ac35c4e2a21fb1887df0f0bdaee932c4b05ab8f7035672e9a787ecc78eee37229f09db75e0dfb0ab9a90d4800c10c357b9f19f151469622143046f71405b2bbecbd921d6dd64afea580cdc054326815f5ee164f15e58148247d9874e8d8edb48e1208f1f130fc5f2c2f092886b765b0d6a12f505b67fca6dbf28c8335144bb5b271a472a3b33b23c46c515198675bfe8a588e046fe8c26634b5ec95053056e3dbe2207f1575b931c1cc0f", + "06b66aa46ea4cdf2f9afda651de49e510005e3b92f59ee54796966c81a8e76a607b39186e597b757b3a05fd2d1d1089b1f46d9eaa87222223c1204e1a51d0368d66c7f13b6059a37e47b3ffb50da16a2ab37c3af4eee0ef8ddd3af0f97e92b1d9665ca0ae7a9394f1df31dc6e5208ebc5662f680b5918e990d388671bab93a1e858e4c19bf98930f7190681b975b266ba3539dc940e74b7b60c896ea64", + "044be3444899402bd07f7fe26f573831450438eda52c509e73b60c52f76857dc6b0a1dc6483d61a315b0a5b55e7d5af82d1fa13964706504f956d41441029708f19e6feede53e6b0457cf433fa75ac75f72a30f18db8fdbe42ce04dd22d9546ec6032a7341cb5b215feffa1e301ee9cc97cb2e68e579bca0a15969495dd39353a20237ea0b28a3f9", + "01021b59b2e9550ca0b5a0971135f95c37a37587682eb8dc3950473271560594b2cd839cc846f1598a92e0c1db02f339e9bfc672ee4a27616534fa3e6c754e1064ecc41e5443a4fd5b30b4f43f3aceb08a27f1c22f9a94d086375b4e23cc9db4ad285d691ac001cc5f09b5f0a33238618205d8eb032a58a544800a65ba6e66cb296f7e0563fa27c7caca7d980efdc498a3ce075f25244845cf141a24cb" + }, + { /* i=5407 cDividendBits=2538 cDivisorBits=1585 */ + "bc5a4b6cd3daea5481916780866eceedb1c8a2347244132e69150bd7409b3eb67807471e71a92635b0d76c3f31cf12e4680c14b5b150b83298651478140f8a58763944b05014357b9367d9f18e3eb81fbb637059a9d267f9f5db0906127d8c981ab40be6db3c70b960c0015b4056361db494a632f6e71d9fc510958888821e177585d1af469378e08fc575b28bc56a152dc448abf2ca4f1df853a589936db7798057641155a116090b427195268b6f45020adb8bd7eb79902f1b368290d0e0743ba5f0c654a468bfb89bb8df682fa1adef63e5a91b46e4cd1d3a179720f9f5d8cb525fadcf94ba0f23d1abfb0bbd10435a93cffe3913f15f72aded374a3461a212901686248794bc918eb5cd359a35d5f6c87db7bb80918318a7aa0dffc55fd6241368a97c025b4c5e4155a72ce7b50f6ff66128afdd2dbef83781e023", + "1ace1857270c0d2a39bab43a57250918760c4fc3908b4aa3c0fae4c20c7291264ea6bdb1d45a5422c2dd496b3260f555f93324cabfe682a3db3d7c172f690a83857dbdd2f65b547486e2d5f2133099134dc97eafd074de650e293cf6b7495426f9fa41030dd2f276bb5db3c792700982a50ca4a11807e01fb36db9de0456cd918ec9e3866f6922610661963c9798d00fd0cd4b0adfdae3ddcd96777c9d60a05d0b8f8a9cd2f9893b1a8a9112ce688b4bb89486105812481906526578a2d846d64d3dc6aabed5", + "0706d9bcd91e33746cb0df0ef8e866658068d99f41da06e96e53b98dd2bc7ec2530b20ba7e63d33cee68d8d40afef296f0d48e7ad470d0b7947822229ecc223dd1a8c988c721fbedaca173b66b684d6360d7bdd577e65b03fa6c31622c055d84d9dc498005b0496830a3d7d946a5561ae4235aaa33493234", + "907eb1ccc123dccf404b37717029599ea960dcf7156ae5099c64e6b7c79b4c1630265e32660cbcc810682c9ae761635e09dbf32b2583e0f1512889bcdd4ce115598900742fa8620c8b0cc1e5ff5162f5eec795ca91595807a3cb250ec8919a0fd2d43d3c6a6a11edf1a113cbb690729999a19f5196feda9fb5d151413194fbf73e714ae6cd03d458035161c0d2112029f71ba632aa84b598644f235c1a246dc5ffce059f6a5260b5ee425d7622f088846aadb496d15e2f03a087b3c49e89c5b777a9d082df" + }, + { /* i=5408 cDividendBits=904 cDivisorBits=47 */ + "177b0ebaff8c894344cf6f24f384094458f2238d0ac7db4c702b60341badab61b28bf4c4bfc86b395d94db37e0d0e134bb6b36433f9287753fed70f4f394c015ad56da386fc62f7eec35305d117e05cb3a1cb88416a959e8181d01f9df1741c991128d8a6d11a2eff97f90e13749081e7c", + "2bd7a78b54e2", + "891b24ec1d8d132fafa6c31fc030b595164705012424262045a8cac2549433b21a9550843c8f8f8daeee25aaca8aee86038e46185d3856564ff6018a3e4df56c15ba162ca22752c1817875e015ebc9180444d4cecb86a7b97fb76b17ca5d78cfc80c632d3ef283e4beef80", + "1b502762af7c" + }, + { /* i=5409 cDividendBits=696 cDivisorBits=432 */ + "d8cc122544fc00dbc5c6cd45bd424cebc5544f7fe4f8d1467ab0180f57011525b3a5eb7549e37ba6ba7d117a48031182ce1fae38614f1cfb074e66a8fc3101ddc75bc83add554dc8ca0108aff3082126eac444b724301f", + "a169414001eff083b96b94386e8a2d85795594304c47640fe94ab47ea078d45a938d9064f853336c5b80514fda753d9c26048d092b8d", + "0157d7c52d89da9e49ca6a623b7c1de280a57a024d4422247af597474ebe417576e0", + "6fe5865108241e6978f561027e5aff665e3228253695d2ad2912b982f12abeb1ac219c992b1ff042b9b364df089b05b15561609a16bf" + }, + { /* i=5410 cDividendBits=268 cDivisorBits=47 */ + "0f5778c496addba744fbfdbeb472cc2bc67d5c0329f00d638b826c9ae9a09788395e", + "5b76daf23240", + "2af0a0b6c99f414efb562f253d699e32153964d15eaf40c1b2db3494", + "4e0f548e2c5e" + }, + { /* i=5411 cDividendBits=900 cDivisorBits=775 */ + "0ce22219c5b75b5824dc9c1d98d472365ce59eb66ed2135b610a8276ab7e0f83902895c7436352d4302a62663cd51887dc1a4bd344f0e8c5e27ff14689a208027254cf43f301a0fb5589f6cdecf0fbc8798c156a6352585c324f77bb7150a983c6684c9e08bc0e4a270fbce74f979f7402", + "2d3639acf7ea99f67638f20c1c8b06c0157063d83418649d1a1507a4c6a246a91c6829660f87b6f710412e084dffef5b96407ba26da2f003d60518d0e23326470d1fed74ca7ab4b642105bba589b3f82ddefd737a61a285fec1ab7af763791d34e", + "48f2cf5938949739ef3da4d5db2b7e40", + "20caea2aa75e8a41d072cfff03c044463d31b45a61a4442f852de1651f9387c686321a9fd347db5c2d55d1163d34412c2fa1662a94f266dbbf8efd24e0f03a1a0e92723efe1c5271cc0ed97d4df82c2523a765bee88ac050ac8bc6fd3fb5103c82" + }, + { /* i=5412 cDividendBits=3369 cDivisorBits=525 */ + "7b2dd65c6b21f000b5189c9273829bc6bae246283d56d0338beaad61c5d4103d527fe081c43b90c2d1f48366fa02f88cf06bbabc27f2b48764475f29a40f2979ed7f307501b6ce16248fd2fab6b8a1667e02e7b22c66291656b4eda4e95f77b80b323466e1b831ff6109afe23e7ab4ccc8db07fa579a098da50d941ce34c53cf5a6f42df5d59c28a5fe8474f0b3338109627906f1e83bcfc230e3e667f2dfe14accdbe3603001c0c2696054e182324698a1774d23360a02e020efe2ad27ca817de6a63b7247de7bfbcd7288da9331b885a18052f752896a29ee7663a989fd50b72db809ed5412049dd0b58d25f4009f8598bf2ea68ba3a7b2ca20e633e8038001c28aedfa0eedb681da00a274ab82278b2827b93d7228f0c9a909b4e9d2cf49b5758409d5047ee650d9e911a426f4c733af383f38711cdacbfc9bc0b5a7340110c4bda4ec018b2d0eb11f5a1b7c78e771be8295bf215d85dd017432d375314b580e457a8eab1b60fb9a31994d242978451d0ddb328e7cf0d0a00a93b0bfd5ba91c806e920a7e845869c1c2f4d0671bb1bf01a91d8da362db98c9eb9ca5ecbe28d63f52a239", + "0e87021e179df95f00e4e33bf22d04d1b01c5fd1a19ada0d3a2ea702529917a8c66ea4ddedccda15e25cc1e353856b57435bc9188e7148a7ce7888a00148347474cc", + "087aa63285e2da2f19132a90886a1227ed897ba030095b3df9090e2ff378f72557b9afec090f8966c2eeb7b1ff101f4c345025fc9ce4427ea05520690cda7d201dbf055788369bafa3ce49d20721aa4a4ca2acf8f0dbd27bb546cd3bbcd869209646c112e2934120a9c9302c5fee64e9513ac043c08a1f811ee2b47eb40ee3304bb721537d635ae4ffb0b9791a361201444c91d34eea65c0ad87a03d15142d1395378971a5b22b5477a4a908c61dd23f552485eb68930bd6a769bc6c0a401c0b9eb0137e28e39544e9d47bd865125494c7165aaca18ee14033035f4fb35c9b103d5247f8ef04c7e8f34537f95d39806dcdbe95a9fc651052bcb8579a011e0b22e2f07dde877c2d40c1c3901ac73f336e1d44cd3b9d354c9cb5952a85aca3a4b590ccf25182099ff3c31d271a9d08ff5915a3672cc94c3a60e6deb3b7b1c104f64c847edeeb9466c53fabdf7387913b25a0f893e2fe80dd03e4b23b8488a9f2bd919ebded", + "0b26dbe5f490cad6821500f8c34d4e315ef617cff32c43232860332a6270d8ed67d82abb8226add7a604254dbdb4dd327e202d48eb68d2ac96b4545541a0135fe55d" + }, + { /* i=5413 cDividendBits=980 cDivisorBits=673 */ + "043e0ad1c6b8d2022c743338ddf3d0d0c6a62172a9c3979eef00cffe3323cb8e4c49e485e670ae7003d7dbb6de1051e3aa81702e08085c350de7f0b28d37cfa175fa72e3c3f2ae2597c06af65ea6f783eb079f13742c8174a0f88f26b9a03a953217baa659f2700c3a5d5d1e32ad2b50dbf0faff682dcf95c664e1", + "01fa1622c0d9d1488c8ca6d8b890efbf0135d767e09750681e3e69220883540652f5a986828c14386f6192107a574d04cc57967d01917fef5efe8a9e965ad6a05030198b06df076a12722d578f2633249a141e4580", + "02255dc1d7679fa232fb905f34229027c0553bd7cc523e22ac56e13b36729c7eeee41a98e3cbd5", + "68855a3d1f9fedd37b809f05e427eccc6af25caefab476962d08dcde5e2b89e650758c705121cf3478f6694fb075c8e79d70d6851d1679506f0269e21218d77ef9fe2935febd563688c070961a49ac8d36fa1161" + }, + { /* i=5414 cDividendBits=109 cDivisorBits=94 */ + "1a7238ac6b820355a9a28080f0aa", + "1393f947302d3985015c32fc", + "0159ce", + "0ca8e44c4c6d21c6279a4de2" + }, + { /* i=5415 cDividendBits=3987 cDivisorBits=1857 */ + "01bdfaf3cb544c3c72b95969f64a308106943e406676150a272c5cbc291859aec757a0d92723c49dc348a108f08de63e031837374f25488ac6ba82a9e184aa66568540c07370bcd5784c25ee6ea3765044bc8eb78ba624f84866621b7b1b11e65b6ffd5df50dd984d95b61f4e38ebcb0ddf6f175c7519f53ebfbc3fbff59fa352edcfc91ef2f087d09c33a870116c177b8c386fce92e1862fa7f37ecbb5ffce5a88db3b493c73f49e92534ff1b57f48752097d9acd186d70940212820f207cdf0e5733631e34a24b77a6db8e541ea3f76cab9e3bb9aece9966cdc63dd47ab6e372ec3bdd214894b9d7631c9d1d4f8e3619398f9f29c06c66735844f4ea5090faf4a952b4c9596bd404f06e16cb48851105fda49c7f6b1176ec82d41e3514dfd0831f2af5ce0b579c72655bc713d4d0a00c389504e6d2009de40440facd4c83b616fc907be2550d298a7ee6f9afb96b575d770733b2d08af3b0d16e4047c5d0e89443950f17b7780d13a3af755f972ec3275eaa9ec942fd5c8ab2eae25d3db82995ab4bc3533eff05c906099f508c8062f19cf70a16dd1a8a461c3646cce0f039a7b0c19f9fab72e924ad9c4c593035fc0e7634a4155f9fd7aa8c1adf6969a231b655c772b27a4429f58a56efea6e8a9148225ebb6dba59b908bcbf364616658255a4ae86d9750a27aa171d262ea2462ea74a39", + "019e635ca665ec8f76788f453f1a09e4b5c4996eb4b401517fbdbef3472572ec62f4fb35cd1395152cbf2a87a5122c84cb5af69277c3eb67308b1f043e8ab8a537a140b0e87fc1b1c619ec33f490e055bf65615270c3686cb34da4c429149db135b8d509887096ce6b3b24185d94ac5f0d15814ff104bb64c246141eef26ecf77a1ce8cb2cdf4da1c64a3f02c121d1133272c2334f0bdbf91769adea562e1eaf82133f47ba6b064bc0833b5258f7486a7777cbe3647ce96c16717240817814b53dbaab45a3c72ba4e986ecca75e7b04e09f0a313d4be00c77bd41da3b008f1826d2b62b002b2a872d8", + "01138456829dcc49484f0d1d10b3f0c3cde75e1457d6438f1c961b504292d93bf0f3135377f41af4edfac0da1654574ad0a7b0385a8447a2425fbbe800ea5ee03d8e550bdc45f1de657e518ae87823755e151a8008474c2b48b3ce831452ceba07daa967590038ad1b583cc18b9ebbc83541433d5fab66f6df8ee2f950d30b967def8ae8ef166655b3ab6dbe41e6615b0d58639fafa755492631c86a1af39a82efae78d9df7baf28a9200aa7b3dfe679d8aa879f21f0a8c12d1430f6fea00b101424adce26bc6c132324bdcc6c4c0efd25b4847b19b96d48ef64aa5a24b7f65f5d43210b2d87900b35842fd796dceb2037db47737255fa4cf97d627a2e627ba828a5b9618faee7c0de1bdc", + "993e661b83071b2e05cf4b099e8bd8983cebe59a50d90ab721db7a81341ee5d84c24231e7b32ce194e10c98bb53042d668b953d3071d2241c71d04d7822c5eebe2d86f4455665da1803a928fd92d79a271a9ad5bcf7e6b298e869ce4b96fcbb5b30317b73fddbb4b2e8dbb17cb7fbcfd5c3ae5fba5525e3b53f36bdd5c8a957bc92807edbab451a5b2793713136f471584f890f0a17bb24dea844cf18e9068503e7f2a12c8f5aa384308ac44cab988c4cba5df09c78d502152247173360397eda82d2fe30c42ca9521ecbdf2bf680aea107519a2723c8d05919e8e2e13c45c9019c361ff4a77d099" + }, + { /* i=5416 cDividendBits=1665 cDivisorBits=1021 */ + "5c2fc1f6c968b31fb4b3b06b06ec6eefeeb5222d9d899ddfd61b8cfc88eb94f608e600ee28ed5be0e565462716f3051e04802f6eaa467f5b33f6c2d413395ac3bad18d3585954ada0442e95f3e30cd9397370e83e0375c201d112a2a6fdef8e1cc0d2feb6254485427c2b61aa98580beb4c17e65eb36e6a613a335919b57875d9ee82969bb404b4f5a6487ef98fb22a04aea64902fc30f6a904de6695b91607739b4e7e82d2168b717b8d4ecb9987798e297b04ac3059089cd70ec98355c8ce490898b9149908ff48fdb697cfc32bac7", + "1e4833d09d66972949ca53a588245f97f8249a98142bddcc7a9752c27b43e1b2ef3f1d86aaccf63624bc9487adb5931ae554dcd3ef8f1f2e74c403b30436d16f3180d139bc84bbed8b2abe8379ab52060bfafa2ba4813b79df975e353c4eddcbdf481ad659041aa2cc217866e4041cba37a4da9544071a2b1b90b650cc93e853", + "030b54f1caeebdf6fe83b3a89052ab6bf4250180431c3c3f772efab65bc706103248b22e2aac815f4d8444c704774cbb0988c8206d1301126ddc322e2e12878bcc45e216f0a59e47dec0b040d7a94121a4", + "1c6d8c957eac73cf1a8519e7bfd0700bc0e20cb88bca5575c9fb104e5171b946685d4f32ed35fd645155eccf7bcfbaaba743657e5b2effa0779dc6b874d7cecfdaff275250ff017784a72b1098eebeeaa0bf6f7a30e263029beb0a70c994198c5a980c6b979af5e5aea727c09ee5bae0c97108211b7a53c6dab7bfb9146c329b" + }, + { /* i=5417 cDividendBits=3069 cDivisorBits=3048 */ + "0d8016d441af8f4e87313c4ca7d4c41f3555e74373f68a7a6857bd334a72854ae831a308680238697fdf5ae59fbea33ca9e3200bd761c08002754d4f7fe06e809f449fe01e904805aa0b9f5b7a1aa0ac1ad15a7d63dcb8d7cd5849690ff5718f5fb10b86a38013913ecaea5e412ae8135b585a100c3fb74c3bf9bd4246f388bab7a8a08ae913cc78f353138ca07b0eeb5154ff2254ef3050c7e08cc7e54cdec34af10931765a5cd8ee82e7442ab613d3ef1b5600e5fa24ff2d5ec8a153b8149f82eb3ca1ebfa63d71bd2d41dfe0a8864b3ac03dda81fb8bceee58f8be92c5cedd420e0d3a7f539b3b44c873d74da361485160cfdaf26dc3b94436591b42c7462b5fbaf847e7e2c235daaf7a3e65bdb9697f458a7c9afa44a4eb0d91b048aae8e4f7640ac8b13148e809391664345012d50b54cc9ecce3aa23fe8184a34537d58989480b0ea861f253024bc4e8840c6e295e573291efa34c9e42a1f304f82de1f5319b205577120caca2186ff55501f84cdabe57c3891bcc102b57e06a5b387cc", + "eab45c90d2ed1069d02191c22aaf8b77e17d5f41339ceb0aa2d11b4406e29dce92f2a6081f1d3281f3df070d9a2d09b1407aeb718a4f3ee1f525cb0d4d0ee566df6bccbe8a8e4d8a0ef8e3bbd9e5a6cf075656bdacf3bf713a23e350ecf628da51786a3b5790dffef4a40d7b9e523932524f57c10d3fdb9ba9cfd76a3734a5410ae5b7349192c65ba5df5fc1f29d3d380125366849bead9ca62b088718d2c8afdd029592c84ed963b7596f47bbb28eb8b27794ddba04b5ee5e50b53cfe25a850e5e496efae17d3511e434d42aff343009cde04fb318ff956dd3357e88f24c6276912c2c8278b0ab7c0d5b5a7776d98f1a8b8b05cc73c8734f6f2b23b6f3502d1fd172c40bd32e6955f2f09f3ab5a2079f9265dc5554d5c86a997486b07ba0ea805efa996397b4f35e13485af0bd808170d6e2cd106b34a203b8a817e24d801c675704191a9b9c8a1ad44a00a923a8a3e8c71d394127f71ec9f8041dcdf1e80d823b7ecac253d320ed69b9fd6478f82868c945e5a8157e4dd7577d87acc", + "0eb9ab", + "a6f7a96e338761500b47d19f1f9b3604d54e651bc027c089d730b2b64c32773071e588b6c463e31e70cec5ac2ce1cb6845617fa06846c22524ca6b0bb844798e89bb87186506a9f90a6151200ad6620a73a964b5b37276ad3564adaf277c2dc14730de3c21a88bd9aa2b2b6cc65945eaf21365b24a5d81add9f748cfc592acbe3d32c075518d86c6179d1794e1fbe7b9807431cec4629e7a38999e29e1d9b6b5849e6a402db636e8141646c19c6c8a743c51225a63856dfd651bae9e714c7490a00c6e2dc70c65180a8e9e8867c1e51a5e048f3df3d379e0e15e9090e6e98a986e6b0b593908cdbf0f45f60cbd920f9a2dcb6799038b2b497b8a167da3c782414b7ecd6b5d907ed585f6405639407db9609ac7f458674c1189c7666e233fec9f3db01773b7f269f5b3ffd3b4b4e7e92bbf8372f58a28d7f65835a7ca8a2c8dee89952e028b42d0c63975b6d75828abf38517a1f61a7e58c95bf6b36cff04e3734e09e9e1f4ed3c047127c86ddf42905133fb110152cc5f1f1d70341588" + }, + { /* i=5418 cDividendBits=3861 cDivisorBits=3359 */ + "158a7fed01ffb4f877c423a7744ffc03993b90ffa146684f3592b136139424e22f666ecf679b3652d244e3bae381fb81c7d376056ce13cd8509fbf85ec0e586645ea469159784064658edc5f9f02e7e8cb1c2dc0cffb31044fe5ca48e0a77b41ec6e7753ad61bdf64f8d5d6d4462ae7234f3199f8849deb219797810264450c6e8927b7a9057b3caf0f119bf5830c35d94d8b81c67f981394d5fc7b12c185c01be9a1e8bee1270c1f09a11b53019605ebb05baa5d47ed44cf4f5772bac474b0a81d8602129de2552c29a1fdb35c67dea1c9b7aed42f236ac46caa5e1a8c24efa7a48f8e17ebf7fc5f8329cf540dbbee5a3fc8816af52af17e6f8e13f5adc494331f41c8ed0bc21568a6060c2b3df6716b55a83f5ba3be5931866e7e525901bfc3677f23725654d14fe02e9fc270372b583da1b18958b20e9f6df6e85545bbff1f0d002ce2bfd72c81191d1acb2d6d421af9acb3d91d37c4d704354a55c89ce548047db177e7fba446d79f698de330083291c39cbb170e7515e04eed26f99c9591d1520d12a9908fc73ab567b77c0bb2723ba49fcfe99f383a111a42e82dffe93797004697594c4fe80b7cfde04d6f22edd2fde401a5547dcc5e4a1cc8ce683b6fd6d6b2afc61b03e895b38057de6b158aa871691e4b132cc8481232a881c61d34fc6ce", + "7d0aaa7e2c1a50b50a3e35456a5df4223300c055978ad83155effa1b14a1bfc1d0d162c15cccf4b69bba02ce6898ecb75f4a8bd6b3df4d263dd5c74feac5926be5a974282dca75e48acc1eb215cf59493b6041ce656f3d7718aea8b372d939a20d0eed9afe1c40b0cfc9690ddc2e7299c59b46ac1ff2b468788c184a21fe74584379bdb5cf3083f83ed7aff20e47d93fa15ddd8346db2f94e9609d253ae6580748ba8e0a2412348be4b4f90c9d4ea6c4ebbeda69fc95cff210505b6c17d16e639870b8597affa59398af1d8ab40b0e8a1cf76aad9937ef9c90e9efa6e0c57655d5606f4f53e941d95b42896af01ee4c48a34b6e74ff2c6853b7e1bff9c6379b3d3dceddad82000f4bfb22a6e4eb05273995894b9b9dd39a1739fac786c998861b4e1cf9b8baed847de5ca98d21efb632f7e37295faaf85ace54200c9f2b5401417f8e989c6c7bcfb2a811456729f5cd6d9cc367ddbaed4fa13846c90c8e8f835c30ce27b860c11cbcd6805e5b9c066f6e3d5797a08a3ab0578b7f741440059c3b3dbd5bef479fa35095d1a1ef3735fe1a082a3060d328220ecf8d51ac8feda4ff968fb36", + "2c19eead85dcbd6afd9f2714fcf01a6e97ce65700113c62cbcac8a03a8ab7cea4654a124f39b805b9ae84fd6811a0e68111b4c6c34d6b1f34f76b8c447e2b4", + "24ce654871ef94cb2d7168114ae37f5d416ae15ad04b21c6751bb9293a288688ab50a206ee7657c8b39805aa57af5022ba0a6574639ba3057dede96403453c42decdb274436f039ab9ddd05c1d59b5f15fa7e21d5e3a33e4cc6301ed6e468f6b1f143d78e487cd25c2ec7d6074bb6b6257f77f819a579d2bdded8fa358278f16fcfc76eb3fbbf270091ae1cc3da7a9e65a265cfa11705a031d803e4e71569959c5e5c63ab88a2431f86ce40dd388e19239e37b2ac9f4fd2d7a07a6b0b3bb6f2036f98b37dfda3c9c48b38affb038caeacd937ea2c0b29e2a23340463034cf1c572d8435e2e5e8e19af39734923c140f7b477daad6c3176c6c56f9923b842456d5bcd66a7e2482d6f16fbe4ccbfbe28e209461ada33cba65ec63f4c9bbd7531c44b2e0c5d0ce981b5dcf5aeffdff4d805b3c8cdd6210ca2d7d919913bbc78e5142690495bcf7f1e325616ae3e8b3bf4fb43c9eb6c30895839f4b7bcdcdd52b6698dcb21e8268b170b32d2826bea1b5b7e376dbef1fcfdbdfda55b2cb09ce506e2894085c86eb3ceac6e7b78b8903d3f6d218571255d646bc8aa54ee67a49002b4c3bf78d6" + }, + { /* i=5419 cDividendBits=2909 cDivisorBits=331 */ + "1818a081c6ba06685aba22a31b31dd159720d82f0c57c622f5c1490f47cf06792e8fde2e0d7abe847f583762c597cdbbd6005b3af654b699937e12cc92e9102c8ff8319aebbfa49a47f9be51719c8d63bbdd3cd56158118581eab8a56920950414b2756ddeecb7704a4b09b8d90634e0b19b6218b1bdf35263d34acd9f6405b0ac6392dc4d07ec575973e2c59ece9743c64e58070c4bb24e6e2087d6dcf09407120ea42cba2cc8537a60c7b31035741674e35965a0870db78c23f8f0cd2f26b693038bdbb0b038fbba8afbe16526899cfde2500b3639b369429235237375d6d06b84934a4946f2943481f1b43f208e9e83c7051b328b7318d7e9684e4a2fa1fd803ca4d7ff16effc46908107b4ef160c178d577c6ca6135a16041a6b25dbfe16543ac83bf9d2f35a25ad6616ac006d8fecffb744dccfb642e39b740896a8f3b02ea0fff3ee4943d03d68c4d96fdca0b1f611b0d28b6d867872d2c407d6b420165e812aaabcacfe5d72164beb", + "01270f72cf47190c6113d0133db8e5cb59c73f7328fcb33c32dbf80766140dc9d850da5430e994e9108c", + "14e804cde1b8b347c69d9b71d4450f54e512177ee2b8f752f131e154244121606e329348ab4e2c0b1a7d74bda81ae6cee721510c96b811bdda4b35d522b94c70a0773193e897565d26355b766a91dea4bdfc8589ad6a60e13a7f01d4c074ff24ca989fc72220b223e59562fea078d5088fc82de1957f0dbf7e456c95ad75110b4715a2b09dbc6b7738f6883d862bda5ebab70e0ede086687014b0c96008d8b68c3992fa5bd17477296c3d50b0f8db6e2710e6a33ea7bca1217596d5eaf8f8b0412f2438996e47a329bcac53331dc002cc2c035cb7e8ee720c87a7fa0e455ec3d2608939e392f13560efd19bfa1459149660888ca1f148ede724896627079aeb91f137ec10bdccf1d7814876bc4d0cde1c4589f92d1301ac60e25b67a4265f3595eab33a07e00d58704ec850772347f55efd01e4dfccb4bf2b427ddae5dd83df4a740df", + "df88c4f7280d6d3bea127568b198d5ba9373fd84e9512616b5c1c8d1261833fe09aa72a47f3b99e1f7" + }, + { /* i=5420 cDividendBits=3594 cDivisorBits=489 */ + "3fa08cfbcadd8b60f977509ec3d553dcea6349767aad3773d8cdc954d07214f0d5dcfbec83440ca690e0ea2c09681b416fd1fef300b169910ed214d6a6cf128af2ba3070179e72c168a7793adeeebc23f2c7e5d41ed6ed0046f5da729c66de2206c473b96f9d71ae9eedb682c0d872d26e3de208336cdc4c857170a3c494f1abb307182fae1c80c72008557c4056a901eee2e11650d3c5cf2ead80e86527797b640b0bb095d695c315da2cd88cffb371437400dc8b40c10152b305fbf98292925f24c5c75d8026cc4e7d316cd5d113aac8be12cd2a70e87703c57da2558acae89b0e71e078d7c6943260eba5f9c1ed9f5038f6a85ab60584e26dea1533dd468fea09e43a28d88a7113985cc8b1096a1ef6c489e8ee5a6d9530ffb9f181e9ee444569749456a068b0d30a44e75576c3099259dbe83f9558c9e6b7436d80f61d8431394fd8b127e8247d6956e36969d1305c95bd9c2d0569f9e34b34210f0924dce2d6ed5f9c8cb69146cfc6f37bf662a0363151bbe10d0648f62735a9f52fef993cfd1bd05beb2fc5dc67de29d5d6d466201e8e8ca9d1900a90241ec51a2897749586c0b1a1c27698f590d68eb19862503f69336b9c8f39405835181e36d6f44dfc", + "c406a873de98e6d3b250d971b02f9f9130c1c4b4a0a3fa2a25d1439ceb2c5e43a8e6070bbb29845b2fa8dae8d3fe75c24b30d689612058e0f2b60fc11e", + "531804e3aa292355029d381b90eb91ea8f114973c40bf020804900c91e5fa84b760a336c621882dbfb66a4d0df53720c9309e4cf49a31c4862d9ae688497d8a12d81f3208fcd652d134ab33ac11e9ec1fba6f5b0cf7eef0ab5215e40baea80607e39d652ac6ab964753c7baa69bce9bf3588e15d98cba0976dce4301a55b9c917f3b3b63aafe0c05a3e87c87de837767badeb9a1b620b4d27d24ce43c59769b1344332e2bee8426bf31e7ff664e44d59bdd5c82bf19a885350691bd23d68eb84e8ba90bdbfccc2c74673e3a1c804c59e99c2572739553e83bd234729deba7225cb4ef4179645ce4349f786821f54596c79b39c9577171dc1dbda4c289372466e156ac8c2557ab3173e16bcef079f7950bc1e45ec08368a599a1a3849615778428bf616cc74be851810cff9935cde731135f2acc5317e9c142438df5a72821fe136e5e4a3a91de3868e6455cfa2bd402ea6d54337d2b4c5650cbbaf0ad4d80c700c3ef45e8a91fb8174497c1a76907612f8a34d77c73848c4c4410efea57f71cb05ee3561", + "92eb0cf4a8ec717386f0f98d82394b0dce743207fb5c72e4da690893d38fe5fe543ac60265528d2e0a9f0357570d4373e79b3b0bf23706b059781ceb9e" + }, + { /* i=5421 cDividendBits=1385 cDivisorBits=929 */ + "81a430641da8c190fef44c13fbe50f50dba8b3426e6e6cdb3b18293c7b7196369e9b303ee3db344bc7632512aadf46c8c107d2acf90cf6da2126d8a8df775980a3a8a6991dc999ebc6b70ddde9d059dc4f89346287616e819e3df31816dea82001d0ee9b1fa318b99ddc6069629780a0c0d0b4837f6ff37b122a1597b9002319e14a8db8326a03eba8b10b67eb5325e8e04f27541e5e249b73fab5783df4f286d0e2b63cc0b8ba216a538dbbd3", + "c5749a3f906dc56e0ec1f84c194525fb477b960cf761110e2a28f9f5b45a1cca6904abee17f0fdc182a364f81282ec0738cbe35209bfa9d9cfa3e68921d5d2be4dd8631a08c7e973799e2573b112a0ca9cb1f0396083a373135382b4b6b930c783b454a13512379f88a705961c35df2c359b07b3", + "a81450749257187f0ce88b876ed2b626f6ea6ffcb3030b19db5b388d846a2ebe92be004a8313891461f1b59f8bc8de674a8cf4651fae170508", + "4bf30e30c96ea78437e827d53025f906119ebeb599b45d307722868667570a99c4574071ec8378e182175c47b87b1bcfbf23dabb8b13f084f30e363715b6b6d8b746dc010e4cf2e9fae3ded03a22e68ad3c02fccf46981a33214b662af6b511875775173670c5da9df8f64c3cddb8d264479ff3b" + }, + { /* i=5422 cDividendBits=2245 cDivisorBits=1419 */ + "17a206e68ed3f99f3fc784bbdaeadead070fb7ba8f72fb0a49feeb637e7b9b1126764f2536bcbc61c15660ca765c3056334915ffd0cd44731cf8d9757abfa42368d48c2cd23d851dec59b81cea60d1fbb234ac5982a92cc338457814bf23dbcd3ea8939521532d8a80d3b4fafc93fe8ec0d9384a197eb05536c1eeaf63041364e23520c4d3f33f0062e99481758b4c4d6ada392ddd68d9d1974e39ab1144600fb43abd2d4d0ab92476a22d970e4f35c25ab39a7b3bbc60d998180827415a7abc2178498b754e3b809c68e31dc9336832b411cb49d7686974c1af43eab4240fb2e53565174691cf9688ffa4d0fe977b0df11fc4eaac66cd064a9f1e9bef0bcca06be046a3a18fc10316b6df0aedd1149ff5b84da3d17276ddd5", + "03add6734ad0e305d0b386e6bd6c552b1146c6fc9fc77b90a2c0b3a713292ba89a322c34a51d37ef0c438c30b3429423b051f6f2a0463c075e33440dc0db13842d888947d65bfc14787c8a4ac2f78e2f107813823733715b756444c97de946939de6724898d7deb5cf5c98fc65927c95b45e959a803c4158fcdbda231ff9b15315bedd72b6620dca37a0f030ae7624d6c8f56fe2263d3490176c6d10091f1add68e5d5cec5dcd85944bc0470173510d542b9", + "066c73b76cccae76e3f5884108c171de6ed66580f1e27d50b2adc83295bd3cc97764b1f79211ecc5ae1c9792689fa06d8f33f2f4a7f94914af94e87e785e8298ac35878a0832a7b131b4307d520003266e031e4e11c8cc8ee52b61d653965d029ae44ca66ae2454e", + "028212e5c8062a3b1a6758fd058d46b2e0d4d89e9a4300c6a2f37cdc81829d3e0791119920f533c539127c7282bc36378444e55f6ae81429a73988ba5fcdb89feb9c7c450453737f4a36436e1ac092a0a53ea15babc750d37af73e864c46f4f26a88fb91d8a0e389a0c6c9dad58a0206de84a712e9c01ab40d0a9e6e9790906c94bd552911390b712ee6a97d5a3cb251e345c4d32a11abd31d0ffcda57b73c332a887a182a43e144dcfcc137ea41552eac77" + }, + { /* i=5423 cDividendBits=654 cDivisorBits=351 */ + "03148c75b974c57247638abbbf9569f60a4b49c0eec58f9c52c54c68080ab206f73afd76df0f50cfb8acd17b6cabd44d103b344a446ef07a5715b5750a38f82ed430adf554dab6e30297cf1cee087e4f690e", + "0557588986986458d021c03a17087dec16fa84d068b41bb1d8c3d15850d003fb9661162eb7c7f9355d782b18", + "93a2a06660051b12dc72c3255d83450a84fb7f1ff32d8d58c5acee506c3e16a06666b5e04765", + "03e68536d966d81715ca5353c5dbf11ef1d28ee38baf23218b99324a978509eaa9793de3ef4553e09cf2c096" + }, + { /* i=5424 cDividendBits=2660 cDivisorBits=317 */ + "01262f74866369a11dad7f1bdc9fd23230d160e723cbb73001e5c723a2e6db0dc959f408936f113b480dc767bb9b11a83ce0d65ddc96b3c59e11297947137142f8ddc88b7c3c1f0d48dfc8d50e5ca6d955e406e020bbbbfef4f653454b073d8d34ec7d2f1b82ca3559d46483267ef614ff18204b9673bfb2d6697518b548ac8f7c63485c472d4d8a0449bb59c9890d5bd03297a2f749c6cfea20d36de3458b17c24d4df36c7be363ea712c067761258682ae13541c574c52229c2258e91f7c5079dbd8c94d408aa3c3f2b8c7369184b844d7573fb7af4d3a6fd2c60015d0cf44517aee054515bf9c79958d245400539d99fe5a6f990f03dfc07f08d50a4724b82133b8938de43049cf6c7d0e93d8e1f964abf806afaa1c1d8400ae6369d194522a12c12e68e9c3a3516eac25f7a12e3037b008a2fc63969b0777f54bf34d4d215530f259e3b99bbcd1da8d7b36", + "19f7d7e0ba41b9536935634c56b9045973ff4c47e6390b7b98456b9589e4b4641bfdd6ee72ec74a4", + "0b54260269253491d5886dd1276c2bc39b1c9841b50e05b1a6e86bd9fc298b4555252c00fd776863719abd8ad4ce249923344a1ae25d07332f9e0bbdb12c1e625be059dbffce425d4689936255d0dc298f36863604751f7445b3ce0935e638e8b5864ff398ed5fac3534bfb2229f4eca6dacb6a4bce7ce73bcad7a63dad25a2e541a142cd4ac48f9688ebe72611d14f06760e75b99c328777d6b20a76ac9738f3c2a26957698ecf1c084c4f41e50a8533c46a1838236bd47a43f7524c25e77bcf6632b98e25d6def20b6c83426a92ae44c8b56f374c59b268a521ca78fb39106f883860b28bc71976d847ae3fe82704b158501dcc89a2f55d51f9438e45bbbccbd1dc40f8c8138cbb178fa460dc63079e480fa1430e0dbb7056cb728152af305a496593123", + "e87e3a2431cecdb545e78683d225b4c8d0144e6e901df0f623cf703914a39f0219489c3ce224ca" + }, + { /* i=5425 cDividendBits=220 cDivisorBits=64 */ + "030ed9d0496e7fa72cdfff4d938b8ebe27b221049c7834e09c6da26a", + "7c8fb2d9ec7dbeb8", + "0648ecc62211ee501ab1832deace2810af5bf721", + "4688320939cc84b2" + }, + { /* i=5426 cDividendBits=816 cDivisorBits=790 */ + "ec543d174f642a2dbc42f1409bbee00f03329fcce5d265a0e9e19d57b24743e0b4a9a14090008eb7b63ee2d199f0f99a7add4b16c919f4fad65ee1cd0eb3d283997426ae297f86b3902b0d0aff71f3a7e58b0ec9a5d967a652bae0398bcd0cca3637e15aed54", + "18d9f1be8531680363ff5c8e35b9b020132c465a02ead0c45c00b92ba4c325170f8a0cbee80d4a8933273577237cf65635dc08f60ca4103bfe91c7ade4a69999b18c2e27ccc4f680d18f3ff87008915695ad34d1062b261bcc0377827ef18ec564db8e", + "09827c48", + "137cbe51d9389b9f6fda055e7083d55c128eb31626cd4ef28cd887c85e995110d475a418576678bb19edc828f857bce8292b36bf9a6a58a713fe58291b0db81e01f85475fffbfd527f9fec5a25dba1649ffd1960af70d346e3f4062ca4558406886564" + }, + { /* i=5427 cDividendBits=2723 cDivisorBits=1813 */ + "057114b5396773224d88cf090d33a8998ab9d16d439eb839786b9414d2884f90f413fc11df74463149622dbf0951c802ccaed49d6f76ea5f50b565440e31280e96151af61645c75f9cbe44efba9d48f16ef7bbbe9aa45ef5f77990657346336c6da19b9ff141bea769b763113a070b7316e272984f74196d596a4ecf38aba19361cf801b524a5dbbe680e2ff9347eb207bf5c896d9f8dbe0a57d2d4cf03c40dfa36b17070d3c0661593d53a9aa2010d8734db07db9eb2914c183c6ddd3c6f6459bb45e4c122d5fbbcaa8a753ea55b9dd04a9a9e0869cbd5f504dc931a2061035a591319539204bbe7657a704e81acb9f8163df932f5da99dd178c00d4f26d56d6a534871db697d6f12490a15bc100bbb7d660450a589ca8035e8f3208a457de6743a6a4dce80127a03eb07b527a558603d4730ef77daf5b6e724075ef9745527f41651b59fa8ff90cc39b83835321c9a1e817302b0", + "10effc1e5ec475b7ed30f44161bfb73419d72808e15bbf0eb148645b379ef9651bcdbb77a173271e953bb5f233f9c62761374727dd218371000a42bc1bfa141a70c94cd9f96fe58d85849e935b9b61b487e60cc1830c5f39ddfe3aa9c974b63bdcf4d503e54bfb9902d0449e4af9471d01a4bcc929dfc90bf1e69301a13471c42191f30445ff81233c13658c1f257807e94ab287d4a475bccfe94a858333a4ee4c94aee4e5e1a0e44c2b770306d711ed2b7ff3796dffc62f8c8820d7469c911f4788f031ca00bfaa93c54fe02000fd2c95eb8d619a4f42ee7df0db3b4e56692c89e13f", + "523fa4a1e4bc259856096c038f40ac57ce721b8e4d79e2dc2716eec1da936b89bdb45143966ec057ceaa0888fb14e39b9993885503bd75d5d3db2ca7d4c44779f762c67d71b2f434b1761b236232cbb22d006ca35f61ed0011c77205209cc5e4539b8d4a690487b214c0da572a3ebedcf257", + "0a2ad7d29a52fad7058382b7fbf846d72eb0cdb0d1bbba6fb73ce95307dc4bef9e53fd185f54edeeb0fa2289937e5a40f9d48e320c09ab8a50614985ad1b473f93b065837a3db1342031ce16c14018303e680fb2ddeb11b67282aeb88af4812ae19e4bd5e10e6d7e491d3b5c6f1ca9958d92085982e5a330431ccffcc2ed87ffadf2ae10acb84015ba622f97ad42fc68818aba1b6c565fa5bd3329d485e9475c7c339c64b5855fc6c799d24462203e8f58b0eef72633a1eef00c209c6799b37daeb7ee2d4c7c6f15578c03fdebe0de7458b490a935b495442f6d7d109b5159b385e847" + }, + { /* i=5428 cDividendBits=1027 cDivisorBits=356 */ + "06f7c3bc7c7b03695689cd57ff846798daee1821a16b53090c3b9bfc66e5f5e604ef8ec7f784abaade47903da3293725bfc6e26a6931073dab6c1abf1587c35ccce7ce9b9fb33b286f7c4d891b8fb0778cc29d79666976655b9faeedd4f854e39b146f85d658d92d5cd9f37c352ce9e075ebb5721b02fd3e6ccb2675aad6dea43f", + "0535ec7d961d72218fb501b159d2edb9e46190415f92bcf9cf79485a6311f803c15fe7c14f5e8269df459d83f3", + "015654c9b966150062f08d3c542b535e9949d863cf1860c636a5ebea6e18bd1cc46465ac8f06dce19116459ce5d3c91f680311f3bb5049005f63d5846dccc03cd74c2064c1b8cf7449e0750cdbf1c35e9812678f52", + "02a83f2c5b79f80a6a82915235bbbfe1064396c9072a3412357535cae838ee3eeac6495e15ef702c5460f0a369" + }, + { /* i=5429 cDividendBits=2079 cDivisorBits=78 */ + "5ef1da5803e2b785467903872177791bbbb61e3c5ccc9a86be24a9291e1ed5918345638f3de7d53ba6e08105011bad7727689a513b50e26aa898aa162d928f368b57e59b34fa3bff7f200ea711c36c3e065ad8405848b3eb87c9785d95f75621ee0c654b051377dcb2c2b7702e08ce15d280dbd484bbff3b48d65e5858fed4e8d2ee172d5f4a4591f59bccaa3820a4098b877ef4f92b09207776719035cd30675d118fbe343275acb85a751f3be01458a2ced551038172454e1ba5571cb37b69aa16f91e63d176ff024eb8d5b5083478f5fb061ce6d1a49b4a1f1671fb253cd6a9823c4031762c25385d3a53475c764bd5c32317bb46b22a5b65858143d25481182f2682", + "0dbd61f6d0043b512a8a", + "06e90385b9a4322cc18ddec030fe94d33818aa90764dda95e9c5e92a4aa1f9311af692392d0e801b27b62adedbc74bea77289ce76f7eea1ba5eac7b25ecc6ddbd723abdaf0d225539ba743b1a07a8bf182c5b4b5150554c7eaf7fe3dfd27524c347d283dbf6f398cea72a94170818fed7c345d88b717e3e324ad111d4a2fa1bb21ce0e16e148f02c5f5097eeb3813006aa108c5f2ca6948fa1c62a85f6542fbbeb1668807696d13abfc4bbd7361fc8c1c42d00981f73b429fe31a5560e9426dc6c4295f50ccc1ff803f4d8568fe1aa106e7f10434fabbc7b5063f99056d5f24ddbc07c425e4d8b76c40990c85407da7cdf117e10d6ea30de8c16df", + "0a4ecabbd291835b3c4c" + }, + { /* i=5430 cDividendBits=698 cDivisorBits=13 */ + "02335bdc5db08b33c8deea31a6e705fcd6652b7024156a9d7e8029e9fdfc70d8ebe8801c554c2b8ece4755c2d7afefa605c2844f6de35ade8d53e5d11ce203c884add201649a4bc95a86974a23815d7e463bb975b36f5dee", + "0739", + "4dffb42da586e1a6203f703cc477e616350d1343b717c2bbcfd74868f213c715b9754902cf6d2da9a4ce4320c52606a61c50e64ea03d5112523a1fff9184315c713ad7e7297041898e8cd8d641d0db122b6fa82de364", + "aa" + }, + { /* i=5431 cDividendBits=2573 cDivisorBits=904 */ + "1a61985e87c0bf3e81dfa7e8e619f83dd437f424bce7bb24b3e285c28981ab3fcbb9d226e13b5ca15b3e1c002a79648ece32dc72356358b040e3769eff91eecb31f9e6424cab8ee541cad99d0e2bf03caf7e4ce03381ace6f4949546961106753f6827c3312e9f8972a3d5da3ed0fec1111c3c2bd721e3397d1ed61ec2bd976427399a8ff0acbd025aa3a22b58d2d13c6d1778399c5eb783072b08ebe58acdcb78393256115d18ba026e7bac796b65c9d8b9e0249e9924b9deb21ca1742f452536430fe918b581458423f3c7b2d45a9440877555f442b9f2a5210c96d904e27e89e237902ced87466716541b4c8f98bc7cab556433b6739ebc99fb394a1878a00f1e2dfa65164213fd1a622b90d6a2ad2a53e6fc171b64e5a0821d6aa0522d83f20883e9e42a9b09738015b846f7b5f27de5c3c508d58ce8e7bd1b2309feb47ee79c", + "ddd7b6c63fce1e5629ae60170f00d0eb17c0e5a2ce5d8de6497d11030584a63299fc4b7845650dda5379b1bb4b4ec32303320faadd9679d6d1c2023a34ad46da0dd9ee069c15ef191d35eee32ffb6f1ae39bea702e2de8c23cab18466b287b64ab969e6a5820b0b3588f8746ddb7b60f74", + "1e71743e2b828305636c71082c437878454b82f3db3e858396ae6016d312ed83c69de2647a82ba869b7b75cf6251f494c679238bb894daa943b4372ff6c4cb03e63bd2642c394afb0d1b3cbe602e6b689c99ece34b853f2212b01be5026b963ac4c6208d815956bdf443e6d2964fc08d9aa74e531bd5fddd0b9ef36a1bdf0b8ca3a09e24981a4e2b9b21b80512d747a35a04cfd58b8a233abb5c1d309a5df4551f27dae09cb815bf400e3f26ffd97b2fcb1a8eb03f828747abaea2cfa88ff34097525aa0d62e6c84319d6b11833235095a", + "af2f85861082c187ab035ae28d56413850df713947531bdf9ae379989276b5534962e1e803eb16ffb0c881dc573b81c3b4e59dce3ed6086b813c92ab5c677b05987970100bec12c1bc0447683bb43a49739d24af2126bf4b10f79d9ba7f319f64c5eba2385fe18684737a12084dcee64d4" + }, + { /* i=5432 cDividendBits=3802 cDivisorBits=1008 */ + "02ca4a2530d9890df584dedc79fab1b701f7d2fc22589cdc448e51c86ebb1a861faa107a293c0443c6221cec748ab7d3a4251110f9d7fd58c956e08ab9469a8f6fe3a15f3e46d46143d03b5da874ef1e09990e2ab670f1eb40c7b3542493b15077c886730c2d82fcb88d5a17d7d7960c4c338909ce18e80ff1db7968597723f98d152c50d4d754e4626db036c0e134f22c72e6a7b5aaf1425242ca6f91ea0e315c9e4ee51e3774a0fb0eb6cbcce1561981152ab012f38cf9aafb6d8c7606a5eb57856fa2c26990da41996bb0fb0f4400b391bb6764634995859a4b084a89b4c423d57b8162ef69627e30e142b3418e174a77a8348feca7d5dcc4d8922ef98f7641957dba2e9bd1943de5bb0de8188ff947ad8ec0d1f0851b809ad93d0c28c50de82c5c7a3aaec50a7bbd3aa92cef3b4e90b5e1d74d3d6e0fbfa29bde6cfe2920bd5774886abee70628d378c23b47a6e9063dcfb2de828ae53983071744e2b92eb7a834d45e21793eeb9f9602b39ce27a26963ea753298f979401ac2ddda720dc1ae536dcc76cae56190b82bd1fbd2e6ee541272298e853024f6ab8537af08352c6d73aacbd99a6f3db2197fe29c44d85e46cf3e60b7f3cb15778b068ae2172808d63c8c9d26ccf64b30a44144ee17c80633526f637d6457a94f8bfc9", + "30363b62a48a41b5c4237fc23bc9e0c026025e529d677cf733653f597c879fffe06872d111135221d010c2ea0588aaef2c6d87b193a5837f6aa3d37d7c986ed2289758e8c7d0f761540bfbdfaab1301f3c5ba2d570ec94ff9c403b10331e5715c7f3828f2397b0f89a54b77d2179f8a519b80c29f7a66d51ed7ac68298cf", + "0ed0ce3499771fc8dbcfa51ee489b2e3f2662c01454a4850720d00c7101bff9486a68979f8050ca736063b6eb1d018cf04b2d083217a93656e9c03652104172b39bca8ab18fd11a796aba04a6cfda16fd5183a719268965d2abaac1090fdb5c0e96cd62be536795f304846310a9d30b903043f3600ec3a62ae7ba3d3abc793e78d25517268ef1ea537cd2f617a03ebaf3baf62971eae2e7bedf18e0edb0d39db46c29bdb87c160f882bc4436dcb5cbee10a3c6c54f3d443ff7463929dd10f77a67c12256a8f83c79d6a17de4b94593e92e134a2313aef6af3f83f6b3d5ff693b173f1a218946e4d14dda3d258380963b103605a7822d9c2453545959213cea09bfaa7b582358f871498308bc6f15941d9a24d8c8d9b2d0837715a25c84403fbedd5d598bba549e699a1b8811b0f456dde4b21d83d61f1a44c0dfe63814aa52fd19b8dc60c3771524058bba972f9c4ddd72454067551ef994c067b64437f0", + "10319e6f3034d5e1e16c67d5117aa4c843c8bb83366f5f79573cd9d31bb7506f5bd5f557ae3dc2ab22e958d8c5e91f6059cb96b21b7e54cf172251385501c8963b3b230f0b48c03e4359589911f430af7fc6480953299d8c11aab170d64ba2637ce13aacc0babd224fad77b6d1638a71effdde44e22f4371f31daab904b9" + }, + { /* i=5433 cDividendBits=3352 cDivisorBits=1074 */ + "ec5465f593d96f32ee3b11bcb975009889c9f832c69ac9c09b3022e0a3290a824f055db6508119ef6d82679501827071999d0dfaf18cf0eec218118d49cbb9901bf415ba95d4706c5a408185a895c5a01df34eb2faf37fa1639d0053948a181e6ba6fbdd2a8ed57cd18b09dfa10aefcc8e65b5e50cbf04c586e530b78b09cd25b2eb4846e5e53f2d1ad50b37449c595e203ba6fa7404eb092cf42fc6bd5ee80be5b9f2c116446999ec5f13b9a971545c262e7260d7d0b6d0b5d4f94a92e154009ebc8b1bb6f4f6b7ccbc050ed90213625d6236c2677c7f384e70d4319b583782b1657a0a1c7028a6715a8ba34cdaac0af881cb811edb6588f28ca06b9b3d512aeaf80fb1bcbf42f2696bfe681d724044861053f973665377e76e0b197f6d3ad15dc989227ef56b6b6fedef53679c0fb0b960c48674b4a194d1934c9960b99393ee9900e7725dfcc3007c25c5ab56f54ff727618a1d095f5ca8db9fa038ec815af55135ac7e49bacdaba4a877836af32b1e0f193e03b282e37a352d47ce3a85b3fda13f5d75852d4d5890d7a1aa1453bcaa47aa3fcaeebc278cb51473a35dfdfddfed", + "2dadddd16ad2d236aba53b4b6c23c16ae963c497c70f6247151011742762a58f67bd2e173204ef117d3c4c4907a7146c753eb1c05409f02f9fc994d9fe90a403b0edaf95ed9ba5f0969b9288ad0440c76bb3debc850ddf389cad2569b5685576a0374ffc119b8a68f6d660ba904de1fdfad4f198236240d3c04d515ffc2117693a1e05af3a5b", + "052c76b6b6f3fd845899f25ffe55eb8562f69d6804f87b835d7669fa529b3b27e3599c502d8394a9323064a498da2f3846a3109544330b78553406db7805975baf89b416ea60718d217f1a7ca0f9ad27b34d74af3c6ab22caece3a083cf828ffae8a48db7bac8fc954be942a7f39a47e3de3d8f649a6c68b45f64aad21b99d389a66f83c8c27338863d91460ab584de8cb35b9a326c0d7f383277ad331dab5e70518a248b6c34ea94d5395103b3cf78b0b0c537f50f0788859dfbe074285906f8455ec048930d638bbe26032e9b8719f667826e32807216a5e47d5bd001d0f91dd62240ad91cf04e4dd7adf55e1d328d25a7f153fe87b0bbe288ef7790e943fefdcc9ed4838305471751723098ca6e27dd605d40d4efcc8bfe52d662b2", + "0613a98931a74e2325ab850a3d398cbb1fa39ee8952de1b7057960688d293df8b79a8919b7efd83d0d7b251cf85a8ca5f9c6c935c115bccd59920455a09eb0ba72bae7234ee5ea855348996857a0f53e1a94acaad31caa55dc21ccba422c2932a2f264bf64bb2e0a20680c6a6329bb64ba810881ff55cc5f0afc80c922cf140f8bdb07be76a7" + }, + { /* i=5434 cDividendBits=503 cDivisorBits=276 */ + "6497f254905d5a7ea6387f54c8f64231aaa3f1728fe507994e7302d1906d3746f06fe493bd228db4daa03a0cde1dd342d71f9ca9f1c26a3bc8ecb746052211", + "074b679524982d48f509530e94723f93e8ce302c6e3c0779698234cfbe6bcdc3ad6d92", + "0dca4cc5db2c8455eb42da6c3f800a0bc2d82955809ba9a898d44fb189", + "22eba3aab051b3db36699906023968fedb534bda62e49a854710018a175ced658cef" + }, + { /* i=5435 cDividendBits=3917 cDivisorBits=922 */ + "0a2c053035a5191d43fc78d38b44476a883edd7be6b6e4a9258841099e4c1872cc4724805872db48e749fc5d8581ef93540703416483cc9cf1e5959a859f6da576e59fd773c58ab61cdce9f53c7ab2a3a209d9549f4056eee18df4158dd53b5b75b966f9a1b5f36c2594136b6c9512ba91864f62610796094256cb0ff1044d1012295a4287a6b13ef3e12c0ba7dc964f391b3431c6b9b14bf9025d579e5ba5d2d2f37f732aa266e536c69516d05ca4a6d1181af004539faf641649b7a02408bf55d131f3d3c3c16b9c4c5142bb7106f73900a3517e5cdd382c4fa3e80b2a6952c752edd0e0c103fafde0d17bdacc34abbd36d57c6f05702dcebc4aab2e4894a4f6b4a1b1967bdca9a039073555d44f091fae3b8a3100ac3b6e73133b0a5731ab26783ee742dd66fefd21c8c598bee7d23873e12e75cab9ca21174fe05a6fefae65597ab43c552228b9cf943d1f49d590d9b8cdbcb8d4ed90a3ee4ed8ad7a33d84cc80970e716d04fb77e7e9057f941638a79254977c03956e5fd76ed37ad8d5090e044f8aa4f067c829acd2788e3f5033c781054c15c90c02cd3bdc7ad33c5929f1056e33c9cff39db8bdd85ee1df5148d53c2603050e8099bdcc0d5b49d3e47681095c3682824a005e12f2858cd9059919fa0dd956635638867872e5e52cd7a4e7324da24b4052c545c", + "03c09612a54f2083c3d720bc475c6f413f2b81421dc220c43a5962348a1a70ad666a9bf55550ede787670b03ce91a76b08d8bfc7cb5ebdcce739a5c1937abbb816e515b4fd312f2798110876bdfd1c3091df0c05892e5ca12b7e9f9d3150177a9f0c21a3f1ac9b76930d32032273bd6f34084323", + "02b5fb4bd85fdeb4f2df296e64d254df8a300c15b7442762498622b2b7263209b16df1ddbcc6931115d412d267b7d75a54c87a32468433efe2c3fe939442ef9787dd87e52802812d2171dd57587d4e25164b2559a028a01efabd266188abc98730f58c112a1b0ed10b8ddaa9ef3071ad5c0e4598db4d2b64b5e4506ff80fc000541b5c33255e539675b32cf7e13d355958e591b2b8384c2fabc10a54efa43e35b15e332b2d99aaeb0f1f24b0e924c659df518c145c9b709de194974d0046755387b3ed9be5a5ccf6b2c8e536a1373efe4850704fa3a4dcab6be8d532e1aa3e86378c188eea91dd3b3544157d1ee5f16596fe5ee7ae429c38df9143e311fe22ea4cc13039451bedd8dddc0b4b2718be28023758cc80312ae553ee8aa4a32b197e56287490d434c30e22983dd211ac89544f4db9925d09349568ffba1f3bd920b4c9e4a0db27a703da46c471ac633294627a55a51528e4737edab4f75bf37d9240a23f6bf2dcebc882d1e8641298992ee807c019e5751b8c", + "0248af9883891fe3cd833c374633f8089217e27a5294364d4eb56a2a522eaa2e8a08a8703429dbf566c5fe4ff8d587941a2caa037525008f41ab5dd7f443bd013c96796d2309031b6e18ddd944c62b9196b4459898c40f1b89696fd585f6658a715469c88434d8d697c58d823617d726b393ec38" + }, + { /* i=5436 cDividendBits=4074 cDivisorBits=2790 */ + "02a7da6bd96f6c5cf360e219e566376ad9a1423bbb7fad50419774996df591c582c756de01af2b49d4d1e41e4c95f58d738d5700457b0716d36a3db4af0e8e3951d2fde5d9036f0dbfb1226782ff52609c91ba97c7455d77a029737bc0d07f2f26115111be349deffe303b01b7046f83e7aa9d1483eae8883475a49ae31780d2646d3a5451335271b233dbf2b4154ca6e95c5992ced5b46d0c3962f96df11b097f0ea36a8e7d4a239b852d1061f33670dc10022f120baa65948bbc050932ecd5f41f18b67218e92c91d7f41a2b708bf498afa0e36129fb387cd8a45d4a7ef945d797c64eeeeb1023930ac3b2dabf7654366218c77fe6ce293601ea8e27972b7a1822d78ef0f6359eee33e18b66defecfff1782f7d69b5fdb2e22e392a1ce4b21c68d21c96b2b1c2eca73106864719a93a33a36e021a3b3613586950e303774b197032786a1cd3cc8ac23a8600917759c970d56f156cd3d5927845529d91a8825159dd442450622e7b6c963ecb6f11986b65311995b81644c89bfd652264e9fd2d2eb58241b2e45dcfaeac5d670e0c8bc974b0703a1c91eed8726de89016801dfd59c7003310c6818e27c3dd40e1ca78a4037cbb9e102b83ab90aea86a699df8e487f4a5e339801abbba30e5998dc24c7b6e2732073c39b676d4e1f6cfcdd8c2c1f1e3f9548f126722826c662d5dceb6b89bacf7eeb055bd603202097732b", + "16ecb039f46640326c0e06552be05f98fdee2b82b9775cd252be4a2483c91b94ba901535d21ab8ad3ceeb29bcc75e6ff71764eb8a479d1d8e994dc8d85b948032fae5130463cbcd9ac30ebba868754478329cde9a136645297a877229e4cbd417a0cc44cbd0480cd41aa2bb8e22d0277e801aefb84001638a0a1d704ff5cff3d9fed5259e4982415b2d3c455b2f971c135b2ec9a3803e2267f03757fa334963a29aca82eaba3d54448642e672fba0937892e67d4d3111971c735457b01f4e7de9a18c217539788c83bda5139da71e28682a5895c5d63452c66e282bfcd5ef712ef34018d98356d7ae3df689f56d6e6f54cbcfb6e3d2150963e60a7f8649f53f88b7567678df625a6a456e0f0c146911c6c17839c3d8baab548a64f513024ba8b959fe3ba33276c04416128eebc2af5d004ef31aaac454d192c489a8944f2846b90e23782bb1283f3fd7bb162137807b84bc79a1226ea144cbaaaa0f281", + "1da7f64cd7e63f67d741d529393afc6c359b04bdd64944032d1029ba008ce9c9b1121cbd5a918d28bc71976c93b026c982068503efd4d8592c46db8a2120e006915a8260ebd008a7eb8038f174ecc3bbcacc904da9904433472bec4e273e4b24dae2ad6a1d49501e6424d7f82fcee69f434a4322e1b7ddd4d4b1ffa7ab75fc7ca28227c597c5c386095db0327b71b09f1b890efbdccafc6a7799938e658bb74ea4", + "056df83a45287ea94f248e2dca997c3948f5fb2b1c5c2b41ad0714f564e69503c8fc2a332c1eebe3dcb426005d04d9db563d6e4a0791d2a916cbdbe2adebbb78dece6d89ad526559e92254e75e6d6a88a6239700aedd8c86d145021da64c82aea09b0854871bf217923f7274870ecba96d048aa14e975903f0d39579b54d5c18d0eda3995f88da5b263c96ac4fda6f02fa2bda0f8b5add30702e663c58cf242ea9e9fb5ee6b25a68f32789c3a6694e48fedd3566f2c365b333e2f1725eb1cbd56c802a5aaa4a35d8130db4d66c8aac655b6e08d5e94f4fa15d0227059ee4c0b4c95f85a8414dddf67396ffcbdbf780e9dc3a3f81528e7161eb24f47f344813ccc1b912da60d6c1f1f81d1cc601909554a7694124df9f396fd59435a57efb3939356327aa487c39a3b49f8cbd81442d028a4775bcbd020a9290e2900277d0774e3574c7ae36d47d3ddd1f1386dd1ef1f39a3266f4fd124863ef6261ca87" + }, + { /* i=5437 cDividendBits=2753 cDivisorBits=749 */ + "64774bffc669e42d46ad095efc2498e93050d384fd3cfd3d453679603729fd4693ad28c584fd54b26bc6a661b5b2834d0a76e90d8a6228f5c7354ccad3ba57a5ab4ee7c36c2cce1875fbd9731d30766ab92b8abd053ba7e5b1a11d359ccb5a7896e2d27dbe323e9ecea737c027738bb0f405a93c47330fb2d90fa501276ca4caf5ee9b09e6904b2ee306a89f3541803a8459b1c46a024beca2e9f84ab9b3eae2f9f6d136932d4f8378c75ab856a9b06842be93d4f6b77018c533d5337b47b7b2fd17e97317544fc03bb8e79beba6ccb9a62450d5178d5055ec1366a98dc8c6700adc903d6401f0ad349a93b712857303c8d55e74899dc37ad36e4799f5e7454e211fdbf804c3da29b16fb8afa85a845fdf5490485eeac9a635d9ad6cd3b248343f2708e4a9d89b85a5e56c6e1081ca34c04b935d3c5e32ab6644820b93a8798132c413a9c1b475f6114c9460221ad36ba6eb5d909e9655ec", + "18de0e9a77f6f0d2c44f64072d1e34e9606b6fdceb529179b003cb8027edcd290fc8216a7f67d048db1d2c42e7f4ff108fd9e18e8380623e27d825dfd755eef084bfb56d28a1cbf4d34de9c14e63c8127d227f32b5985a91169b1aa255b6", + "040a41d469b3eb33b3e97ef3174aee45c4569684fc6086e523bc88546905b858762eed66df43a3f36a7879bc54a352aa631b81a360fbf9b58a1e2d7a30ff440f9a0dac6110b669d239ca775595de536b5c1de170c109512f600882032943f664a3f4391812bdc0298635553dad93c3ba3b11fab4cf0b40d206cdecaffce2c8754910ca8ea5a6f097a96cedc71b033b30321d2a823e99a2aeb4ea07009304a3427d322c26a51c1ad20bc20789138cffd8982cff6cc6eb7685463e7a6c16ce1864e350a9cd465573fff0fbb9cb6a8de036dcc110d41e48736d4a28e30640e1d248b385f1fb4c5d347eb5931ca1cbf73dd43402e1646e31f84fac8f48", + "06b81bfda903b5762449eeac630ab693701d2b16f784af4af19de42b0c3b69b4f4cf3cd24a0f7360b3a3f801a3c1c8140901b162e0e9beb2edcf4b4e825ca8a39ad4e4adfd561cb1fb2f60aec79d1b16628f64d8d3f9492f823bb2c590bc" + }, + { /* i=5438 cDividendBits=410 cDivisorBits=47 */ + "014b9d9f9ad042a34b5be0a400988214470d1cd0ba0e2d1603c1edcf5fd58f381497699b97a4a3079471779a773c0930f2aa51e7", + "4a5220c9eb40", + "047642533a81459b6754703f53fd4732c21200e5c676173db3021d40d67cda61d952966b5fa3c0506cbf802a2781", + "374f119406a7" + }, + { /* i=5439 cDividendBits=291 cDivisorBits=210 */ + "04a92880d929c312366e6ed8e34ab6be4cb467f4cc68dcbcc2f4e4f755ef666ae85c2becc3", + "0372642a60da0783f45bc826403b324e4dd5ee627d71a749cf09b5", + "015a28f15b7ce1bd49f0b8", + "0210d223b6090e4562e57dc257c75a22f9ce2fa07bcb2fd0a642ab" + }, + { /* i=5440 cDividendBits=2307 cDivisorBits=1489 */ + "05b9a54a527b06ba87907388ec6dc5ddfa7de62c879cac467cbde3975250c315b57acf52dce9c4ebe06ae3ade31723474f090164dc52a57b490e8bd2fcbc81b4b332354c764e6e92348a52715b5d5d3c34c8aada14e4097b1432fa245724bcf15f0d51d401c73b55cc63ca65b0b2e9f35b5f6e72ebd4ad11d2059f92e135faa7ab55a9b00d903defd1bf38d8896e9ce69b2f206a8dc6112328d4c8734d435ce409200f166ef101e6aff54cb20f6b0280983bf3be4be3446dac29943d339d48f0c9e444afbe9f3eb47af62fe25367fbbd3a67b4b09a530438358151f863b47f7c4d5f85db737c65e682995ecc0a749e77304c22de85909736e5003cf37392d820f115e349f84677caec00d159179eff6fd579769b543063806845387846454602a7", + "015c164ce0b2f48ae6bc0c9ebf5df93def3b75249fe6b6d1340867a9bfccda5ab489635a459b07b6b49608dfed99919075274da40815c5dbee7f04d2e7107c9ae79bc884d32cf41a904c34bedb904b1b6122a036e9a4c46e29739d1319472b4f3289444791da0c9d4aac3f95d3507be0ff2b188f172083081f7621bd69ebd033cfd73ef3e6a9272302e1e0a8cfbc9c381701bb39398b3ec8d1adcefb9daeb29c629e961371b5c5a172c4eb74afe5c169e856f1479d0e47ab891f74", + "0435e803722a6dbf6cfb7224e1c131eb7c5515856e5d0f4006d4193ac99123e6d09bced48febc8050c50a5dd238c32ea1d6ff856129bf23f4d6396e14663dd60acb7c47eaeede6bd4704205a2f2b6c50533ce8e6e4fe7e361f6f97f1d53d6f0010d57fc582708c", + "011d31f12a55731ca121950a64d879414640f8ffef8cc004a82b18b4e8f0f159d92e25f9820dc824b1368a7c30366549de70109e650ce0dbb33d3d95a3476a40147a8a700ca221b963d6b2bac8318921df1bb43e80be60aefddd5d1eb613a33c1ecd160a6b4958d998b1c2dabf77fec893db314bf970fa07aadcc93285e2a317a340b7cf8f0839a412ff5f46f5556f6c00e68b45de75300df705b1bc4596d1d99aea41baa43b08aae032842b2b7a2947ea743cd63d8ea63b9e0f37" + }, + { /* i=5441 cDividendBits=3779 cDivisorBits=2479 */ + "07f7b883bd0e00844a5a335e8a33285c4fbec17d5feadfe6fd81221f87ecea245ef14ae113e89e2e4069a0fab43187468316812ab728d3f954acf439d03efe853f02a256c6fb3e34f1d854d7890cc8c36ace7e47717f4aad828d8c3d56c5c4fbd14d3b1b7f74eff25868a56321827723ce6b878038b5908468e976bb91e058fe5c855c6973c248975fb0022f5e2f27bb0b0cc886b08beaa17fb1bc8a61d8ed896219bfe917c2fedb213bef2d225a3f787147af813ba28fae1df904ac56c907737b3852b2b4be5296e44a2f9f6359d7c52df5e225a3f7e2a8376a3a57c3c49210588695f9badea56b154bd24367610f1615b6cd293a1d5579c1d2f54e32acdf435ec23506066462d3131beb606544e5e9b876e21a4f0dc1a82286d79a0da5e7e2d993cbd6b49a944a4c417def1d72a0d1a0aca276c157b0ae41c961df05aaab7061bc6b707efd67e2cfd61bd30d956329fe16b6d2a932fbbcf0078c7b22826c3a25d4e5dfe286ad6722d6b80aba0832f978c46da480359c8437ea2e3489a6c9be9b44dd67e3854e359a8d7a7c9a0204ac0c10d297edb788b67875acc35210a4a6e531c2565abaebe8a3ef549ee5ca6ed01c3b59b9322bafe8013e5f03b536b10ad0bb977bfe46aa53844a53281dd78470340aca78cd442ebc92", + "19c86a359360e0b0e552053ee717ccb38852d6e7c34860aaf6aac1734e9208a6f6c7d14a9de5098c8cfba5c20f8244c95b5e2e4a782d5bacfe05af7e411a4b9740849eab59fc18850cece9bfcbe312797768c9e3b6f3861d82fc1721fe3cc13de67e8a906ff703680989fe6847c85bcc8e6c22e77387291307aa7d79ae39ac74099e86c09c93009dcc00cb77730b36f6daa044b0fd20ff460cf95f5d49aee2cc48369b58a441a40ef954776f48856ff93ac1b3f5dfc34c949769e1b3f00b75acbd3ff0c0dd94ce45b649c29e2e64e55aa10010dff02eb00ce929987379f19587adb5f2a90dcf5ebb4b864fa94b615af45e3e2c635a6033d37912db3f341e66f09059f8849deff975103ab44f7d2ff26a6bdef03e2a7980fb08aa680d511282b7563d053b68bf07584705c05791d86ea733b60d0eee77", + "4f1c8934f9e273222b171ca9dabde231631df140dbd7a3ce81764db96170628411949ef1732e585e241188bcb812c9b5ec42ef7bb15c84f2d6e1623440030bab2850883028e2a4322e3a663285d64bf34d22475d5d6aebce14867d3b824acfbf6f7177bea221a93c9096a3d7083e93b3e36ac8172fc85ea53afdf35053f4c859873daa1854b122a6fd94c04d71772ad922cc48dab91097baf15928018b039414b6ef22", + "16e8ba996abe8753ca933c12967258f80d06a7915233400015c9394b37bb23f0542266f2989f16c8385536a67f7aa67dff743002d16848cf769cb9e4319acda4a9f6582f231a6fcad1122a4514df435056f194a4e9fc9738e7dcfc7fac279ad06049e0ff214c92c53cb184dd6f70f812ef23a29cc8b5ca660cd07c050fc82006f7a98780727c0b9fd0d8897386266be45e558cd1da9ae4d95c84390394124c3d364094bb6b486e19ffd8622a3da977f4e0780612a473d2661817c9c3dcb7c88e95623afce0f304785419795dea7817d282668c51fea7894947c9258cf918b332c86e9eddf874b5cd94d257cedc8fe7629bdd4edc0262a1c11b16bc9070e0ca98a8fed9b6721736b7ac01763a3164bdb4230021b1120c4be46d7db89184a49b426efc94c26f7f0736933b0ac7783597d1ef63c2f7f7c4" + }, + { /* i=5442 cDividendBits=1912 cDivisorBits=1162 */ + "bed546d01e509a0f886afe4bae711e5fed0585c14126986e0583284d35dbb96d1e6cdb57d6c0e18a2e0e73373eb90c09150ad786d756b208cd3b13aba6325551bb89d976becce3f466eb065dd3c6b692ea2019a6801a568abf0b6646078701d40b0353c69cf41b2b7a2528bf1249715885a456971b945844abc6f1992488e581e3ae82ac19d8a1efcdb72c220aad05c3b8a647e63b819962e434d6bcadbd5c7e65e852557ff017a1dffe5e6b969a81575b4d241505e41c0f265f15ac36b635ab03ec60e1bac8845e8fa08659739b1d5c5df943c7ab2d5259034d723befcfdc206cc8b0d8f47e674df4505ee7cb62e8", + "0357b4970146bf3b84fc19001f285d61d76f5dbdf6960ebd9518a8f091e49033d42b7a45339a07cbfcc5826a511564a440f13d29d46f6e1b0a617136dde8c0a86fea278c9d4cf878eb19ef1b2f7c4349217f05140a82b5c337b399d0eeae74dd562cae21731982672726b42581edc4148aa52b998095b9261762d0e6c763f718dd7fc003725c72bc4354c910ece13710a470", + "39175aefdde97407750f2dcefabe4b569334d23a58697cddce1cc8680e0a3c15d4221245997aaa9dd274d6daeebe48ca2a0d1f63a8e9744f6c6828c368496d4cfb3e581c232e3729b16966271db0054dc9d43a710251b75f3a7d8eff6622", + "02eaa03025bffa29db0b16da2767abb9479d7171365f5ccd3cc4fa5747ae3d560667fa22f0cdde6e6d1673de129d5d5d22573161177cd328b581d363e90f39c243f7752332a1b54f4dca89253acf174912c69763898166078e6cf0b591f6735ee1540682a3ec124f3d1e86e557dca1fe8b2b497adc78c1c7a1996120a3cf62ae33e522a0593714482d2c3c805f0b0a80ec08" + }, + { /* i=5443 cDividendBits=2554 cDivisorBits=110 */ + "0214744c53e3f9d5a5c914beace8ee2df4981416da70a247413ac08e14cbe3111d061e13e43f82e8991340e946ef61762ad9d7920afa19ba0ff6514ebbbcbc959b77eb0c0a7d1807aea452425af877ea2cf50926e2313f31404203f333d641e7b0fe4b76db303e07e0ac16e4abfc2dba7f4ea30f15a33687ef31c5e8157eeab54d5ff6bfd0a3bda9788c33f14e9818bdd19be7ae52b75198d334eeb1835fe2ac9bf0267d6fe85a26420a58c643e484ad6bee0d2fbf6a64e492effc5e7b8d4b88105c8d875cc627a9ad8550e775c70fb58278626debc038f3d5bc8057bf0b7d90f45f3615d245d707e293f6073a723409938fdddb7ec59c94ec9d79584da010ac9fa0a1e192f6a2b338d60ec381241212ea1b5c262c1defba982546bf71c55e8fbbc09b7de6fadf500ca1d698dbd7f303ae4da62099ee7a855c5fb5a65c679f04", + "2b0d66cd9c42065f620e87a25632", + "0c5e1b1aed0bb9685c80eefb387d961431c84afc9c39b439184d85cc60f04516fcc3ce31db250c55967aa5e33f390c1530a652100a46d4b485651b7ee4f3a3cddab4abe74087c08b34f128fcb07756f75896baca1eb23aacb1717e8ad3af9cfc60b32b6c6e68328275c100742ec8b9b8ee54941d17c3267efd7b9004bde8d6fb29094af1b765590c3c4c6d6707c8d832cb5cbe9bc85dbd9866a576424b54c16d2d596dfbb9657ff48be8ca1fc1582cb7ac6afb67638d885c244b8017af320e8422dc3b228ede691f8bb40589c183499d15019d9cea9168cd0bdbed83e7392260e4c97ff0e2eb363c9975c05663063dca776a2d4f47498c30c7efbcf773ac5676735229e31f79555aa903e9fe5985ca460238917110a7cd6672b7b00ea035d5a73f4b5d91df49fbbe1c9bc8fdf37695a614e0", + "28db39196dd66ed425dc01344b44" + }, + { /* i=5444 cDividendBits=3219 cDivisorBits=234 */ + "01fb7334f452528f903349ec242f993aeab6daf89abfd6a9ea17c7420380c240f20e487446e3342957c12f241af447e0ed900a9661b8c17fd30b04436f4f0a1bf50f8c846bbc08274d00492108e7f72a50856ed32cc4bff7c81604a3d3c8d7e1b685c381118777bd7633aca5c01423d9b9561e9e1baad6822db9f69d9f29872363dbfce563d30205a99563ceb7cda9cafb37bfee41097840a454a5b71898166cc9babc5e1215b8709ee89314df5daeeee6ebf0566236a8c4ae7bcb6d40744ca5e50b6d574b0c27f6aa0e02ae4324907a108e7bbdbbfff1bed60ce043a5c42d6d1b6dd6382d28790f61e38cbbad04ff7feb44efa4d4473f32d8cf073e2b3ed396e04b4a0fda094b9bff170e254cc2c8c8c42e05c45d89cf2835cc158c3e00284c0af2828b1190f701956b14ba4ad8e1b39a7f417fb7aff47ca84b1b1edfc26ebee2725ada44dc6b4d64c4f15e388146fcef1b1c91917c2ff8b11debf3e9029b0b30f01d56e00bdc3a200a781b8f1e4bc7c96a1f50bb6758277e731c1008862fa902c036e5825b4d70ff9e37cf21db65ec651bbc", + "8ced262be68567c9a4146f4b1a1a0c226ef6ffd43bd5d37c969fb2a796", + "0399cf2246e24b8cca7a453f290681f80affcc4d4f23379777c2b4c7c4d9f45715b84a1209eff9bdc5d9ac3aba0fba6b55f6fcf77200fc9904b8c4b393518a1247a229299765090ffba5ba6c2a43f8257fdea4b299484abb6551602bc06626658740f92ed6eefdb2b5f01fc0fce2a39b257fecf0054b36390129091f1d0cf0d7e4ce3a134546062e3a9e19e104e1043e777aa968c0d59bf363a6e0f0b46be1e9c6a848596e970eac78d2866b876f50bd744460ec430fdb8f109d9b2e727bc646b440b6b41997b2d4f6843ddad8b699a2fc2f2d3b5a900eed3583cc7bf573a8b433452f56546557668cafdecc961f893a31a81d6d304b577a8106ef5712c5e2762fb1034f20dde466cf5b5fa3a6a13065f0f405cbe7502187c44eaf2ac08a5716add2d73e36d2084c7a7192730d703dd351ad2f6f937a594d66633b369f0acb2f0e3b38f7d749f95f1c0472dcec6ac29a6d1a8918b16370768b2c6ef6b1e6a43d9a8fe1511637d8e30767f8686cb94fe09bfd6f8c73a1", + "6f87e1d6ebabdff46373a426e65f31750822110bddf64399528bb95466" + }, + { /* i=5445 cDividendBits=136 cDivisorBits=22 */ + "04051fdc967e5d5080e85e7d684e6dbb18", + "10aae1", + "3dbe90bfa05774ff1ac607485d9a", + "0b32be" + }, + { /* i=5446 cDividendBits=3365 cDivisorBits=2522 */ + "0b0e60ba4d26e5556a995fb5caf0109b731ed77b8698c932e01e7e225d1aff53891dc3967f941d5fc11cc95867d97b3ffa1a56de6922e5a607fac29f04fea1953c7c44e5e3081887ba5990e98efe724ce00e9b3a38297a8c26d0bf8e46e68d9a0f8a64fc46648aa08a14db77c34a62532d919a7d6d12bcac1d6ade2c73d1c9096e136bc5d6f067b03dff5edd36574078d002a07a29bfd473ad0bd0c140cb37b31530a51fdf1924216df4a595d1e923abe2b7e2751865086a11b8625c59608bda3c255a46d4393cb91d4138188e163b70ede0e4fe3bf08e99923a9748a89388609d866a5e038270d4a8c9194d695236cb4daef3a7a7606497a1d758255fb81c5dc55db3d46a54c29185f894891779a42155b70bf6eb2b88346fa7b8b10df88b3c608b42ce0d25ebf4689f46a57b8d3d3a6810eda61ad360dc21591536a5f3fc11a0ed34b6b40f27c882166703381330da6fca48959157c30f3d46bada76afe04e61a0d70b5172e0a2c06bf3b5e187e6761526a3d7bd536a34416cf18663c816c10353b449d901aa2d264e64f7ff66e52bb1cb089b1445c2a036d53d80304c187a832c132b07", + "02ef01dee7bc1df1cd494503f62d6f77cbc13766427dafecb4214b6aba2beba5ac763e92a2cb8c2940fd4dc5cbd08f5541ba56431b9342c8f402753ff51dc6c5b630962118e9698b4456e47c069f1a12e15bf2a56335c43726f4701cf0d52c76d2920c06ddea67f7af0cdc3ae8516ff01a0fb4d249d990882403271d37ea8c2a912b41c68080cc0dcff3e0817acc0607e72e0a8b3ba489fb0534dc62954cad88c35c6cd003fde65aa6303e2c7c062e2a888483dae7b449aeb2cb99546810906da04f618701beba84b92c2b63edd8c9df156d4bb980fc126844e34331819658af4783afdeea2c774070d66bbc8fdadec1e6098b0d8fda3447546a37a9fe3402c386ed91f378a6eeb00b342ea34e22cf704e7940cf185bf7c9973d3c96a24c1574a1f4d2d9039e3dc8ff6dc8aac153caf6fbca985a856587b922d98395", + "03c4ce766d2e30738ec3e228c567d7dee1ebed48d923ab6832d0d51a922125d96dbc5941dffe31cd5aaf6c9a5b641c8b2469bc18d8c477b1f322a6ce356a68938c39a272933d9c41b956339b3d81a04b4ac721fb4f6321d7fddce7f7944d4fee8b9c7c92697bc3f86f7c", + "62792a60b046c17373c111e6df029a931f31171ae6b8596ce1a04d2b7add2dc1cbebe9383cba9d9f800cc9dd5243974270194d89a622137f735e5908ac05bbfb322fc5257f7a50e1640545200bdd4688b4e86552ae98c777479774df81668239ce2f2a61bbdd03d8aa55cfbaae48640febf17877a5035327cf1e2eddd464460805a4365ee8501422b4ceb4da8742921abf786e74dcae6ee01c5407f029d6e80b964b6ac16fd77dabc9011e6cceb83ce206b190d832fbdcf5473e1be912f922eba3c94c110578e6782e88d4444edf30c9e587cb543074328299ab9c8ff075e32a88ca5575eaeacb168067aa9d126b0b935b6deb7b42f54719f01d2747045836b9109a183511d8d9932bb156f097978d71560dd98539884deb0784d7277ca5516289dca6c49d13c6e42948245e58ecdc04506ceefbb7af310351d3db" + }, + { /* i=5447 cDividendBits=2058 cDivisorBits=1549 */ + "03c15f8eb8a065c9f86f835109fa9ae801bb3f6b47f2749cc29c1cf8ff65ab3250cc8ac48f7c7d94cc6235e8cbac69a400ca5840cb71195c8c0fc1a86e594d76bcdc0c0888611669ca9e46c29249742c72e427c0bdc983f44f7894c4ac4219aeb9482a255422b33654726d5c24ff4036bdbb7134009dc47dd9bff0e6f6011f874e03b286f49be744db1be72cbf59457e34105afae5dadce7bdf56d2b23f39849f385e84f845967cf785c2fd38854d6d8685e9b47e901d091b127674a61fdb4b0570950bb6d024ae57927f955eb0999107acc9fdd0b5af79a2b134b3263e3c9929787d286c7b6cb91a63ba795c32cacc4550457c43b16aaa3307b0d2f6e491de0ac1f", + "075a7a4511ce8d2b5630cb7b152ed870bce4060c1104e272c84864c316e4ffaa762a90643c0c99f33a32898454b00f4f09ba9a30512b316a10bff91ed8a3201eff1b35af3e38c62d69ed36f86a3b2acf2232cf5d8c5bbcd2e531971bced2033108944392d30e376c229c21f32fdbc78585d4173be12918a7bfc5e8b3202748e0648ff527e996f8a402ea1008cd96725fa00b1935e9fc16aef29d2320a0f95ae63abaa05a76faacf6193421b64f88828aded3ab9938bfde633b083497d1fcf4273d47", + "82bcf47df8b6ac265704f5a631ec95e53a7293d8151848d740ee363f0d485a008f4ceac269139a6288486967bb3122b9ce28e631474e956be30d62509a6da728", + "0561112a009c7fd76f7fae965d56ed62956b255121e155fe868df1ab79c97cab7b36f2775729b36dea928adb6e93ed777ecf34c479ad056555692ed23837b50574f2d3dd2469d34ff75b7a136eda4fa875fd7538f5b1542dda0077404b811b09302c65d1496642cb337853032101817a50103b041cfe0f5f4bba545353de078e2f94b1b7c70c8796e7fda8ae52493175985cdb2f67160226894ad5c72f419173fcb649ada55c2e46350123dbacc1251842170f8d264b599f4e68d493b7bb918ac807" + }, + { /* i=5448 cDividendBits=1666 cDivisorBits=1662 */ + "019e09b0cf8e88dfce4d54339ef83b4e1b612c78a0c87b4a3b56accbeac6380ce50f215e60820416d000d98bc75b37e07db39f75fb488b8981a180ce3d40de77d79701ea21be74dbfbdb15a619d2df3575c6328fe53891b459fc70cf65e7cf2fc9abbf8c6a794e86b0b82c9cfdb603744acbab7b9fb29a43c5aa460a8d8f3b5adfe728e687a7723dfb46622aa0c2372653a192ff6febb5319bcad8ea81725bec8cb267d3602d94d0a957a4475f320d91f2d0eeaed3fb9eaa0a5809b4f74f080400954ba6a2b1d45dc6d7359610b5429782", + "33ca890741e8b98a8a4d869df38f157ff15e4ddfa180a332799e85df22277683485f0e1f5686c89151df4db2726044ba12ec6843910fb54024c09aeb62b77e8310006cfc54fc8a25af38f59643eb099adeba99eaa04390a75bf1e8d6399e800551efd5f83e2ae1853de51cfe53b3260818d15a5bad644ee6f9e749ae921e864dea9a3367d1ec665b0bea51178c833c5a5dd55dce039aaaba86dbd59bd713c2ce0d252989e2e9c814b2092946e16bff9bdfbe3026751e069e9227a92216249cd83d19fe219b3d6b8446fff0865c79a665", + "07", + "337ff19cc12bcd048535854d4f51b79bc79857835df6d3da035722d0d723cf4e1487fb8524549ad6c3be6be63a95ff672f289c22511d94c0a03c91cd8dda024226feef3b6b8d14f41086eefdf771f239af185a7ad6b8bfc678d3718a5479afa46e30b2a0c6225c0c06e8d2096c1d6a121df2031df4dc1b74d4f306c79065aebe7cf17eb0e9fb717df2f9f2fbeaa07fdb10bd6ecdd27a86821ad6133e90d198ea5663b09af93058187964266f081994afb2bb5dc6c7cc7bb458f41508b407ba16e995b3b773266d28e63602642def0abf" + }, + { /* i=5449 cDividendBits=2529 cDivisorBits=1400 */ + "0db682f992d7228bf97574b91b55ea99a7deb303d22429605903d0bbea8eb72b84a106b13b945e3ef239732a2c659efa9a5b79c744068c88ffd6eb18a8989f171c475ab80ac5f855f4259c9586d47377f96e7b8ac6c553334988346fa17d1993990c7420526d95298607c4a28b77258e5859c7cc6198590202f27f1b241f795a158bb038474b69019143fec5bbad3ce9f116699188f9ec4f843135e8c67eba0eeedfa7eb0a13167a956fc4187cf895f2683f4082178ee82108a80fea5304b25f2d1536af2d59767ae8861e1ce228764d931548bdd24da2c06564321d8c21d22ffd3182abdaffaf55869d08f942eaab21a2e63614973ab22637b78003b35746ae833c04ac94f0592acf3dd50d23a9ef2d69f47c92e6a1e46fec16b3c31336ef4ac865b3a902e1d930ad5b8c6c7ffdf50bbe7b744e7e03fff28e41395e", + "c8d39434e745955bddb438895d104909ae39fa1728ce7fcfde7e36361243020323275514b4909089e7cae6326c81d5bcabffa0c61137ef7eaa3a7046891b2996a16080f590564f75666d0abeebbd837be258f5ab302d234d890255eddc0776450089257061ac21bdfb9c409be718047947a3c59c12a2f0c8a9b3215d8327282085c67d53f8e5aa85bc6cfaf273fb90b881759f109dfc6488a69360eaaa1ff45e13acf0a62d3add8acde1acda5f10fb", + "117af668ad3c42472ea306288765e32d14852ad87abb19dc74dd07dce083f3f507525e1820300ac46722aa52ed9e27f65b7decd51977754aba2e82d85b35f4586185eb7fbb28bf7103c8d266f1a7f12c8df6551aec6a0c3b1458c4a1ddfa0112a2d0879b547dea411856502b7ccf737bc1c49675babb8191aab4a8314bee0c248a347a1e1993a3d61cc73d8ef1", + "2dd344c8f27b0c7fed9540decad852ea83890e443c59291c2720707142017c97c6d707062bb7c3c30d6be84d8e7a0c025c3f02c0a086290c7d4aa03a7a2a5c2002c30e4fa73137bba4e4485116cd894c9a7327e165600365e867a2e36f1b446e206057122acc3bb30fb87e0b5d661181793625429a656010686c76e8297629b75a2c077eeb09d07a886098150d181cca33e057c16dbfc90a7126df5a0111b67e6b8d51330d28062fac0eca16880313" + }, + { /* i=5450 cDividendBits=2521 cDivisorBits=1043 */ + "8b09fe75db5a436ada1b6ea891d0190c30fb33fd3f3261cc4e9e0167a5221d751b8452f17fb49f01d51883edda2f97852bc3369ec78df327c2fc1f8963b8aeb78a6f7fe7ba8d5cb16bce1946df38082cebf70d1b33e3709d9bffbed37c1d234908d3cf9fdc9d1052df78f22298bbdfdecfabaa04c0296a76d2901e520c5617cb74a68265252ae006429e3bd9f10fc7c7e087764845f270ed8e5a3cd26de118600d9500ecd21e1792650bcb02fd316bf5cc10b44d9ad1ad4d552db38bb578f7aad53cf2ce93a9fc83197b0c190d09350dbb2d44e207f9654e6206f1c437359e9e77599ad642fcfe9f2a0db064e14684816b844e9eba71dba315c9922dedf572cee1de049835d91aa65c673097cd18b34d20c02b209e9ba0093e75e66cf53a81542c00c98106226010fb486ce536d2d96c365a6ba5a1f80af76574a3", + "01791defb867f8b1bfd644c6009429ca6b2bf2066b1c05e6560d6d6fed73deedfd8f778b19cf0a345d027529166843e40581e80fd8ce930639fd77321fd28340782e6c396773e9a626b9e9624248df73db6688f8fe5ff06d9dc32e932f0cc529afc5449514a98db25af9e6755772678f0d89c88b96e2e8fa2dcecd0b635f81c481c66d", + "5e626ea29721a32348ea90a237777bde1285375959c80d9234655bf883be6b4881783a33946250806112da52164d246dd8207d31ca655e6395264249f7423c3bbec8ec710dcdfe76fdc9941278851481133af6c6450301216f244f4fb158e983a0708de43748982a4c70182fdbab15a16ef9a904cea1026a74e834107a7a0ab29b900f06f5b3cba691b17a4b32c9fc171784db6f63d00e3d12feaef9f9253a51d87b51ff2045be1bfc4ab8ce74c824ad33e9aaef5c19aa33cf", + "746afd2e772630a701e67dfeb8d27eadb45db9a771d17680168fc7bc1fbaba146024582cbe91ee6eddeee7b9a99d68f65d32f56b9e35e098d031b47b4fd1561aba979402a6da6e3066b120b3881fd1a86e4cbf49139f96782a54533737279f9d3d34378388644a2a8b6dad14c719bc29562d12e034775885bf73cb9ea73cce8c4b80" + }, + { /* i=5451 cDividendBits=956 cDivisorBits=170 */ + "01af9f6ffa9d931184a82713fcd2a4df39352c23dc9945f75eff98cb026613d3daef62a95e9f0475d6a3328df426dadd93877d94ae9c5f1d234540c47c046c045f00323ccf8863d64bff681a2de042a048d03c804a7c0cf9a7baf20b5c37c007cc3c5e4c0422dbc34dd1c8795b5d634f650e6de79b2a6d23", + "017e6a6522cc8c21d79711d798b940e0b75d777084af", + "0120f0d2817350914ee71e2c29d18e0a85961ab205ada338b86943f199f5b6e8524792e1a7a49871987e6bbc042b965e650bcfb93791edf1f84a0273f0df5b7ac9dc647944acf5cb3d006d87e14dd5f0b222c13eec253cd8d3db9cc7cbb26495d4009a", + "ad51b571d3d4bdc51e9ef2a47cf9fa36ea058e9bdd" + }, + { /* i=5452 cDividendBits=266 cDivisorBits=102 */ + "1a324eaced229f6f82da7cacd72c4f83e489fe6a243099366bcaba3cba210d5587", + "1cf3067fe7cd6a0ba2a62b6993", + "e7a8263f6c6a70343faa4930e57a5ffb898ca399", + "193144960b41448d58c57ea3ac" + }, + { /* i=5453 cDividendBits=3854 cDivisorBits=3315 */ + "293ff9ee6b59c48ab4497a3b256c8f4c6d4d7dd9aa87318575ec3798b6fb8f73f9c6f1a0fe5868ff6d9a673db8828f520c6c35e1bdcea47a5cb2f172c18e3cef243719c59b06f18652d42304f89f2a180f4be0eed0ea9b61bab0609812bac9cc8f07b88ad7c11ad357af58435e4881c2f8c28cd5695d5df6d6b2994b5ca9294867e56fd05d463484e35dc14a4d934b7f3cf59ccd2a89e42de86252a0be0ff46468c2ac948b448df6b3b39d13aa4577aa0bc851457b6dbbd28e06c3cc57b190abcc04b438421c3208dafee419d8b546237c76ef74247de88ef4f08662de3c7086ffc74c1d4744824933f072ad341cc64d9271ddb79c9f870458061a7d2f48fe646db9b3ba6694d8e4057a10db8cf2a5581fdb5def58b154b5e243e52804277ee83bc10280f1573d01c0675be78c4a7bdd1372888ca510677173e60bb54c19ede972b2511c59331470a6b369b3df127a47a8bfd358aec2eff83b4f1e2d75af6b111de95406b0c432b413b45d4148c4a75392efb6f126d81ec4be8ff42b96780213a307bc03e8f5045ad80f84e123892f0005655b3ad972fc121c16501bce01b98beae4704f7e8f599b55cb4004274e89405a45431bc310010862616d25bca75af57a73f64d1f2b10a130e920add539224e19d95f183773f5362a6bbb2f05c898f3e037", + "01ee63714527533e42a82d80c74f2224e76c4c59f3e2ab94f9e9fba4b91420465b0846f7fed6086147a9c02a399d87c5157a26d1e9849e46b336bd0c1a82603e7d96605bda3b5bb47dd2c1ebfccc90a9d325a27b04c01ff9ecbad3b5ed78265ad7c22ade9266f056e1fbaf1a72965c1600d34e736ae6659f2cc8f2e1807f03349c28ce86b501c1c2a489cb20219f1e5aeb30f98e253aa878db536b07b93db07d187d6420787c934b286938f446471a9de98f05392b1c286b1a81435effd43a79eebf51696f739be7853dca331c62ad1634a114d4678cbba4f28d9a32223eb15a9308c9d63f37b935fe0fb6f257fa7c36a6abe77a9c7817d7af88d655354c7f7d4d1cbfc2ef728f027d8c12cd8de9ace14e71eeea40832a727409ea5623899f6349988a8b74f9f287c69264d6ea6da23ebfdcc0dc7658698c41cfa99618d7787db04f35c46dae23e6f6ffc79d9133e11222831e04a8e98ce293dbfbe3e3296dfd4173fbd7130054860fa90a4d19ce8822493b056c0163228862f7589821c2d8f1d73c0a894a5791bc2b054de17395a2e88058fa89925059ac9de5b92028defb", + "155c13a05865da1b6cd06f1a822ef232493acbdecd1db3f5c31033a39e54d074c3cba6f9492ad14c583317581572fc95f1054d39b7cee7b75625dac73bb51119431140ee", + "01ade5d40d59f6921f62fb31df688d731ab43a09416f798aff1d3a597efb6526b701e35369e28c782b624c30f407f455e1ad8ff9106734cd1ee29e7a7131ad40785b1a43193c78dcf4fd4095511858670c636a35a2b56f592b31cba4ead29416e2ea65c3d0efe040292fb9247ad97b6012a90e84c0cc8c151448be0fc47f1b3f8f34a86259a1c3ce7886d0bb768e454724a1f3e36218e73640247722c9ed738de66d4b20da2950e95c467af7aa49981252ac767df4d2565384bc07ecd0df2f2e1ae424e9029499bb7c8c6dd5eaab131544978ed4be16cf6eae3b39914531330d4adc5c4cdc02e48b55462294730520122989c6a5c39363b6c12e3b25c4789e62fd9dd8a9a78a730e686983c66d6402d907a5a8e530b979ed80b8a8cd4e0c3641871f74e093c46b4828533f54907646397ace27ba8f32ee1d71a5b9bd6c4a5a81a48d5dbc7bd57906c72b5d444dee3e6e4acdbef06e306b3d9238df6f7b48ae66f76143354de5b77ca398f515b66bc9b9cf8ba1d9e01ee620eb4a93470c64ef5de29e6cc4036e76f45f5623bf2f98ab43c0b60ee50f4cacb6fbe50cfb8ad2dd" + }, + { /* i=5454 cDividendBits=695 cDivisorBits=342 */ + "6bf09a2af5324af7c8eb71594a72bd89aa0c137776dd4781d413ae745619f0b5d0168ab56e69b64cc78d3c174e7f0daba7ac510ab97b986e0bd5ec1762b39031970e947ea228801f8051918c4dbd47aff97df66035948e", + "034753815c65a0e85eab919d7530c4c56140fc1ba2686e84fce4c18d6add4639de59f9feb558f6c9e664e0", + "20ec2007d7e6f91856d8acb5797fd4ffa6b6003c4a8cd6a06449ceaa114d22261f8371ba37356b9425acbfca01", + "2c3e0d6d768f9cd9287336ef93a57eec19f4dfc17d4193fa43933d5c0886eb87348c7f0be6a407966fae" + }, + { /* i=5455 cDividendBits=3858 cDivisorBits=2787 */ + "02eda7755a0c71988ed449dbbe67ef3376c456c0f5789bdda0cc84d851863979fa5536f5f8931ac2dc490db86806c5bb72dff0441e42f57adc10b11f926ac354fe3466d557c0710cd5529615a3cfd48a5fd5fca9be3b3c97ff37b8211afe9e9c5206b77622d5e81924b12e6bc7559ddc07a3461d0eef584e9927ff8ebeb8d5055deebf0b7de754c74e85841b4549f71048f1180452467ef5cf21f62f96eeb42bc90908a9043a448affbed0f5049df35caede9d68a940395861bdf98dbb3350fe794e0866127c72f35f3990fdf79ee1eb97b1aec7e226a285083869df3eb73da9e1e686bde1eecc87942fb76f8ae2f60d27adc8d0b1ad8da539c4de8d8492bae9c86fb7ee3dd1fdd07dd8581db6f1d01407f5aaded95c6d3f3807baaf29ef98404d998422f4a495ce13abe047acab3cf3199b6624634c099598b473b537579e009f8fdc0d4f89aad0741a01e6a428dde715f34bf4ad6528cd2af76466f9a1fd7b071ed1c9dc7981c79043bfc1ebad8f68e380cf3ec6556afd899cc42ad906a4492b1c15c45ef6e2fd86f3ba68c71affa9982f375d71e79b6c306093a8b31fd595c856cd5f95128fb4a7d5597841014c9b63eee2e9e0dc8dd61dbf2a21542323cd68da6a75e52c8d3b80a1faeec27ab94f3343393c627e8360672c806a5dfd9f8661847a", + "0137bec3aada722d9bdc8056fc1f4672562a48fa70df78cae2b3ee040e3c3a8e77270040212ec8a7c51f2627b5e6b0ac35a73a66ae4b15749be9b15133d2848a52561c7a3135919849d68f39b44c205b7c20089f61039a8be306cffade7c5c4a1183d595fe52e5600a3f3eb2138483043195c1315e171bcac2c0f5962e34066c9a19fb800f676b5ffd96bacd479737d21ac58f16f81d3c301d1fb2c01f746f7b78bde538e97f851932c0b122ef7b9bf873b7065f3a63c756cb0eab211cc394d8a2354893723345cef17a016d79657d8a08e8914fbc62c5e2bd9493821667b58776c01df142ec4edc727e39e725ce2f96bd8182eaf204ba58c8a0b9ea2a20be7861a5ac43df4fc53549e31e76e5dac9ff057549d30c8094af06b51937f09a54e54e9bcbcb93947dc02dd97878762a028ed38f851321cbd381a24dc5980ff5751a56b4921d9985e751c6355ee8fe9dc9e4e929f094180d294759e3a2d57f", + "02679a871cfbf7777f2e85395010ec6c35a3a2082c256d3a5ea6891e583afeee0f111a855cc951ca990da67182469c32a8899fc86cdd0bd32efb205027f5741e354a938c8b9607351eaa183aca1a82445866ab54d256f597fa2befc0ecde18d7ad5b2640872e63c6253f5aa4914683be954d245bf6f1bb866e781d8428bbc4fdb333ed46967daf", + "0ec65eb7b263269de7e7d547765b1eed5cea8221cb1114add8c284887c814ed38a4830b677ac10045a605e560dc22b46ceeb369041427e7855395567ee727608956eb9188d22edd384d939bb4b07355470e641f46a2d39dee446f273cb5bac62ff1c9f811cb0dac3d9231e68d36388816e950f6f7c5b43b92386644546251dbc1fc136e750356724d1579e6d50a61a95b89fbe6399c18ccf2039642ccd5bfd4a6f07578d3916483c3a35fc2f1208c6d2c2f26f8d2ec374c3af987143ad86f3fce637597fe43f32c37454d1451c4acde6d220c49c9817ceb1030a26eee7b7b68d3b00860aa19b143a796e1e319eaf59594845ba5e573e6deedcdf794cbc2c7b986679605bdeea9a9dc3d6304fbacd3605d9004c77d1be5ee6a695f2f04e0739a30edba96ae5ed3d3185d1164fd5b33512221e085c0276124a0c1de6a891106a1d6e6393eff3533508bd707accc73960e7ae39e948e75077a995688fa9" + }, + { /* i=5456 cDividendBits=1248 cDivisorBits=96 */ + "fd713faa021fcd79666f9b203b3becef4d3d6f377c825f2e504f935be3ac650914395f04a1881ecd06f4114e6f04ada1929ff1f1edb216008b73178a74d5107a0b907c41205a9ad4d70fd8c026ec9f8dc9ddb1ccd946772637fcb85c15a7fb4911f2c7bbb1360cb0d1dda6f59e2f0eb59a51c36484c01e6c93f34f4d05d9865c5549c1c1a44a3415533b9342d1f587da9a50a6ae2ca2f93e5f934e38", + "cca05d57cec9c68087a9faf6", + "013d125b14e7aba4db0c5347ad17bea2af27d9aee1a12bbcc238432e83dcdb8f7b493c5b47352ba57ec54092e909c50092e7b42c84674448d3d50fbdb2084420c6c42941ab8c2287e5e9b9912786f1bd045b427169625d826f31b4ca882c9b86037f6506532e6a22db7ed66f2e1422c0ca06058de304c7b4a96b99f41d479e04574673ada213909bcf6d006af260b25f5a", + "883bb0e5023252dddaa3c9bc" + }, + { /* i=5457 cDividendBits=1487 cDivisorBits=969 */ + "74d04d3d613f46627c42df2165fd5e4a4f50ab7d1b6b191b1721940963a3bca1ab845bcdd09ef50c8c3fbf329c77914569a437ff5d4acdb69c78b8372d5da737a8ecdac94a9fab62241e0c9e23ba49237567176fe7db4478ca89ef9fb1a19b42dc9557e38c9c092c12fb929cfc0bd116f626ba1622330f00cfab1e4489468c29fa4439e3703acdc9717244f3b38d1b33b4409d7bcbb4a79d88c9034e2e4fb4ddb2189624176e6dd57265b45ed59f9a62a413311dcdf953cbf147", + "01a0b2741bc4d3b2fbac7dd8c3c8374cdce9f8bf0e3c88cfe0ad57333f5156a541e23d48064c69e47fb8a3761f4b6de14dbab770260b8f8eed199e39ee2589f4c785be4268c6293a34699e1eb5b65c0fe80fe9be5d70ef150e107db01c9e392e30f8618f22de2b63ff81d0d391cb5d3aaf229499d5bcdd7b5371", + "47c3dc9e6db7280e4675a7645c790e1cbb2892217157315ea17fa54c0203971327f086f85ebfd12721e4cf121011681c96fc7a2d316463d57fd69a35c40942981a", + "019244133f2cc72219959a4281055871c91fe884ff5a4daf1a91101ca787039ba8b8ca16d43144e829aa2755dca21ce893c8bb1c7f262d004fe4eceb9b2fa9a34488811d5fb394a43d537c620fd0f88194d12c06b5f528a9b7641aacf5a49f2f2335bcfb5ff69622c0dd21911bfbf3341db4416f3e0b1f985fcd" + }, + { /* i=5458 cDividendBits=3898 cDivisorBits=1195 */ + "0338c3ca0ba23134d8ea5c5350df775ea40c4763c3ccf9144bd673f31c9c82e322c03cd4693c1f9ab40ac8231269dd79c27ea0eeb2c3d4374dd7d8cdc72d1063a5075fae985e1793f817a22cfd68010e481825a946e9918edab5bc0e416db2619bd5aae50453da4b1d7dca579625a34ffbd7324d9eb5b7c6914030fb64769f6f71fe1c22bb1dc608b488c9d96bd6c568886fcfdaf51428cf8d921c150d1bdc245a2581e31107b14967e3d49296211dd644421c6c66cb8e08f870b734190c7e43578cbeb0eda04da001793d8401d4aa82e7f453607fd99a607e4516afb2b027cb699e9ca4a3d7f8e57b6c2520b10673e129cca5ed9a0bb6756e30135e9464de3a7bb73bc0d1719cdaf77dd12ea0c7fe233078b58b798ab4760508690a8f315ef5c6e5e7ac5bf40fe3e625642c601740e89c7512f3b60f89bf700b265a200180c307e3c51026ecf86ba20fdbb06d4b5216ad58f3649047ddac3cfc4f8aad07a0a239202dc69da4bf3b18fe1040b7e1c1efd577c9ea55e72af657361b132571937e99265ea4c4152c4186a4af6cc798be359dc6bf96f002308ef4f1309bcdcae9282baa9dee1f07d1afbe7abb2e74fa0d9331cf9fd470d8458db04a5f7735f7f585eb684b699491f11a02bab43d4c498e18d1e30190a9c7a7b30eb71600617c0c6303daff154036e8d8", + "045c19c64cb939dd42077659945a725eff10e9f4fad9148036077c80692d2c5a5b7960ba0c459e89fe52f7293c5c5186d30b895eda57a2fa5506deaa233ad2d240b5ffdc3548f7ee6f31a695fdfd71336e334e877f1f5c0c57d03d80e03ce7c47c598cf45938b14e9d135667f6c7c0735435356a5a34f737c11527ef2d280565f8a67429f5943f25ea305337386f25d26bb622eabdd8", + "bd2d21839d6518a2b2c23774bc61d1e3a0930e521c17816dc248b036183d33135c724074113936cdf224c3a3d3bd5008466205509dae305a815e6a18a3c12bbaab0e422b5105d0195c6c470e3e2b24a4c9fd79d6702258be2ab691d3e08193d6fec273578153d83415fef1c5644afca31c6665b3a95126e79d286e4c4f990733aff293535a05454be61884e2ef1d22ac7c2b7fe4a0cf6ebe9f2196966bf22822c20700aaca3812491956f3577ffddab0c69447dded4d4be9a689b6ed3706a7d2d80a1e7798fd72c83cfa08743321cc6b155ad88b24cce57ccac79f26658f4388fa1aae335f2726c2754dcd37e205a9d134cc9e7a5dd532165b2961711dcfb82001a6309aad3f6074cd375f1e1a42fe0d1062573d905c4d3699400f83f82c2b58af6e753d805c0f05e5a75afd3636f91103b814f0834348991ece3e931151d217b78f9dd2627fcae7de0256701714b275b97b", + "01bc7d6533fa8497bf611389ca29983d1812862ad4d0dd46657ea6e47d2a81d9ae93d21b136803746411332bfcc59327387f394447a0a6976a784f3f39731f87528ca6c1c52472512b5eead7cd77fb245905871f1e8871bd7edeb63096f1d1cc5c9aa4f49a7deeccbecc737dd2de643893694c3736a9bf5d526e244ef299c6789f25183281682154325eab2c4f0f7980352de2849a10" + }, + { /* i=5459 cDividendBits=4018 cDivisorBits=1742 */ + "010eca3608ff701c12424dae617f152d30b6da81ba72e96b17563978d4f7e5adf9d093687d60daa0c732e5bccea4206efa7f5a68202cf0b83c753c34aa245aab78b763e00a07c15e70fb191e6f4b1cb0c63f1407438b1d2450e83e58cbe7ba02e13920708d970ed011cc2e0a18d137cf81064e42f208de31e0ee2565c2b948d9d41636ed5338edc4eb188ba8705a54e3873e8954d6b74df1e7e0bf903f965056293d0b69a2f53545c70c01f2805f55b551652d465db92ca8d0097b54ddeb9cf6d003b52e1c5428fba1e83a615e1075079808bcf121e1f2dff514d2ebcb0e6cb0522db212af5f0148a1ca6ff479acd53c1d498e168d00426a7fa223aff354e5bc1374e191c684de930f867681fc6fd3703fd1ef4fd52084375e31231fcb11836d512bbde4572b92f801be6aa99f1587c10a0ac25f9244b5dcb1357d1062f474fef86d042a8cb45dbe08c57367bf69acaf38ba9cfd5d52af63b1ddfd70ef3f63b875df7003a69b9826c70267aad066b7cff10bed0f6df80dee898f53c7f30b4a8602bd8e9f063725ee6b16d00a032e214392ba95ca3d37d418788cd3708d68fb4fa6d56c7a41fab3c4850f3ddba0b5566b9135f106b8e282d20aa44c1634212833b2f3173690318a67db21baa084207bbc2247aa3776e2652187befedb66d50e8bbd47bab6d754f65f2a4c77630cba332814c7a56e7f9089", + "0c02d766ecbae4a69980ab657edff6ec78f08002f13ad8e7a6c5087bce63af609e2cda082b96e8e0d57db406adf2f1a955b3a69370decc30094713df6ee983ed5e1b1a37f2dbf182f13da728074d7a5440962a2e9751dc65fb873e5bc2d4f712e99c2ec0a5495c8eb2bc06c8913f3002cc624de9c06c083f45bf47efbd1705d4a1d2ccfa3fe0e2bfe7e0a87db33adbf04796b2cf8bb3ca6ac96c2888aef4fa860af28836c6df08adddd4221c46caad7d36bc7e6e32772e61c30e9a04b212adaf9614c660b6461830200107b8c1cd643730582144ee48b23c5645", + "168b833b3d9203bfe5beb9b48cb4ef5c9afa814b076119408f96fc309468d1162e565cf9368c906992480bcd66eb6845f9c9e3cb3215548b84f58a315f18f186822deb5460e5585b28174980fd25acb1ef0f195027e326fde4464e1f730cf1ee48deb1741aa1dd20119b32464079768d07482a2aecd44b5d26f2f8c2767e879e771290e13b0d018d2612decdc28dca33ab744956fd84ee066c212b8249eb598e85e223ab03d2e3196b60a1fe7d84860888baeb6a004eed80af636760dc6e263d89202667a0559bf75d2df624b661e51512834771e6ee4ba7dba7c9cb22ebd2fc9d7afc93efb297f4218bf7f28a2a5ea5b6992568cecaf6848ec16147ae1011e6c46fff4fdd20dc4740f24246f1bbf2e4a9214485e5b84bf697d98aa4fd", + "0974f51e957e0752f0b70b203e87d089ca6e6363ec76657b04f665f2b14889ceae3c27e34efa69bbefad25dfe647b2c504fc5a28e617e007157ef5cabb0c92483f99a6dee694fabbc2550bbe10d3f1540d9f2e5a6c5263f3ddfc665c711d42894ab185d1144f646d6015a435337279c41541f80cb340e1aa45b2a7671f800b2ae58ce9684aafc0ab2a986039344977325034045685cbef3f9e11b1fe87c6566c2400d7f654f5926716ebfae4a47e72625dc39267d990b7c01f1f9b7e94277b833ae49efd94315e421cde906071cfb5ab1e1711554d44a3681a58" + }, + { /* i=5460 cDividendBits=306 cDivisorBits=103 */ + "028d1c10038b7f6dc272cf32dc05534dc16f0bb878e4d91e491205c524a5ae7306cc8fe007fe23", + "4f0ac78174b3dc957cb91d028f", + "084347467d7696003f356496014a0826bd8d141feb912a6824e7", + "36d12c55e5fad3b0c94266931a" + }, + { /* i=5461 cDividendBits=521 cDivisorBits=213 */ + "019e502be845bdf26eae9dc4bacb7fda541e63f12d3e3bd8af6337674046f8b0b242f1ce60552b1814e65bf3cb3da679318b286e0494cc4f875d08eae0bc3c6fe37c", + "1f5779008da495e85593d029207bbf16742fe386d73ce8304061b8", + "0d381fcab605726dc134ed8adcbc679dffd24ab5c1127e18e9cb974e5d20522d47875148e2e15e", + "152950bfd0bb8524ff9284325e8a0b39fdae479cdec987ea7949ec" + }, + { /* i=5462 cDividendBits=645 cDivisorBits=465 */ + "090e4604ca80bdbce9cf1782ca247e90de33bf5cb334ecb2f6bbd20ec04ca61de8a14e34078c188c00933214cdc72787c2feb15701e4b6f72b05234cb1bfe1ed47c75e234ed347ee011219403dbb89379c", + "018e24c9a17bfc4c9d56f654e70c4b558b432f7a65c7ab84c5956e0cca110dde2c7de71a34959d363064837c4c9c1c455853dac7f0403dc214c874", + "05d29cd36cefd45316c8e8da03cc66f1e0c6ca8a514d15", + "015a44a09c0d657c48e38049ce698eeeaae59b32e9e8451e885039b92ab29d784386de7a11b2327b95c4181f45b4ae256d5351f8f7e7a29ad5e218" + }, + { /* i=5463 cDividendBits=2710 cDivisorBits=104 */ + "060aaed748307288664e60856f1c3e574704b7f3071997d85e61678339983d6ce9be9ea5ed73ce61f16af2ac57f91e01ea3a932ae914d1c2bc59c29b2a822e38ef2b6e82a19df0e792c377b2f474ce3b285c2476c6c779c8be7f277369a108b85f937676f4ddca784a746c814e90a4203b11d4e8a85d9e02de7d4604638740e5cd7e959416443b4e6f3f0a5eda5544633b759828eafa7f1c5af5344f91805d357b48e6735dc7e2cee7e11da008f3d9a26a04bd14302a26c05bbefb275085b23c30ab2d0dd9168cc2f5ed16e4fe4d530ef4fc20725708fd0b88b536370b61d1af161a647b686c191d3f83ade131373da37abd7ee599cfb8cac29e06d86072e0b3455dc38135b2de0432c3329ae5973f6e2bca1735def84ee03bb3f5b46ff40d76c792373360148104af50bfb85accfc0c48b8793493fbc866fa11bec7f04c4e91d14fb1ceab5bc91abdc9123166df2f67b5a37a", + "cf9691985bbfc7364fa17d120f", + "077362ee194e6f13f603a52ae4531e4259cf1d57b0b63d0868811d1fbf50a2d29acc2a9d189679c6b966d3a23769bdf4be431cfca5c1bf04cfeb5e173b4802311bb6ce75636babfc1995cb5f3a4e0031fcbf438ceb805b0295bf76a4bb9ce9d11a25d70ee39aad20a162edf45e29d5e93aff99cc55bd46f0e93562479f87bc86a6eb078ad5420ec865bcb2a12e5339a2ba9912b84e43a954f8ed7fcce2c4f6d15d938ad3e24fac1426fd8c17f85891661c93c90e2eedf63d1ac4235f9ca331b0fa9b2d6018531b227a9191636c6841415d32ff579b9194eae4bfa71cc4e6d40fc196b29874471c297ae715dcb9563930bf54f4b19c7fa3aef2222de8e520a8da35de650db237bd242ba2536fb2ac5d1624f0feca84dd43d6750f977d1c0b5164f21eae25d32ef44a51a0bd4425e0a8851e7ce1b1135c8852c8983102cbe5e871b8fb03344195", + "cb7a425cbd3b5e4982d04851bf" + }, + { /* i=5464 cDividendBits=2099 cDivisorBits=257 */ + "06ae2f0247f5fd92db1d251512ab74fcaf1f3b649667581eee24d283a105855e642ecdf4e3a624169c91013f0770ac2b06ccbcf6e9b645276883ee5ec525e9e0744a9a0778fb37620a3ab4a7a717541842d7b83bf7483c3cddc85609bfcb593b136f471fb6a7a899fcc6a3f191ae2cc8dc9ed70d0b6fbef13fb78156b03b5aa8c105f085a77c847ddc327f93aa76c724bfdee97243d07cdf0a9d20311d757b463c21320e99d2a84059ca748a46cd30ba443d1d2f05786da8cf4eb7fa5b124830e8a244462260f6a98ebd94e6380501b25af724edf5179025c1e22595df99a7108f7b9a7d31033ee593f4719e56c3e09c98122c2eb853268ae85dad44151497b8378fb2b715fcd6", + "f079a6290c72111cc0a7c4db506043e56617d6aa5e0a881fd5ca7b69084b9300", + "071c975679a1cac08553ea0c8ae10615d6bc916cb1810694157deef448e90690c098f80d70b3bd6f0bcd746b8c9b81a1c5c05f382d7a2643c9af2bed723f3014224e348b436ce97ba3fbd77e4d880604965470f16600e4a628021ce59715d2d12e15156061817bc5bdda06e6d447914201852294fac37982d0f6f5b583ca264d0b6fdb1faf47580dfa8bd21f389681257b02cf8c7f1919bec1cf2a61ddfb95f117fd57d83bf89a938fffa4a3bb3cc7b4314cdcdd716d2f7911b1d7e37f85d5404c536150fd2aa16bfe614d361025fbe3d789a43317e6794622ea168e63b1d9c4db2c3207935b30", + "8ddb8dd8ab713e4da1b3f245a190ce387b514d562cef38d88ed18ba3e2a96cd6" + }, + { /* i=5465 cDividendBits=3559 cDivisorBits=133 */ + "3c1049274d3c86edf57b15623062ee821407307e9a9ec8b3481878b1748a43026569341dec5025885955adadbd7ea2d8ff69391e6696e86fb86417c64e50b3c4cb0eda8b8c8ef16bc8e3a585abd7addb0d26b1832db3400f2f3c17a65bb5f1ead0a4a1312a737c67c9834a1a9f178d8366a5ab43e74b02610c185b09fe78d3bf5de8e1d917accde809629f2584d7b604885abacbdcf4d62e97c73b5808dc4f1a03298c6715930ab8b36f7eb7044c66d56abb8095c2acdd72025e05233ffcaca9ff79fecf02fbdcb7599900a747033ab2832ee1e521a2e07215a38b1d7526163554f3cd73fb6388e137dcb9ab117490865cbc8154806b04fe4d152b3d6e7af259996e96c23170696c49ecf0a1747b97ae257dd51fc0a61d01ff90a2d72ad044fc02fb85ef9f63971b4a3055a5aa98620cc2e86e90f6f7dccc93e0b46374e7c485a58bb61180cdfb55f61e67e11e9ed2143092347fefe1e0724bea9a8e019473548bac284f3e2e7c926933cd6c8e0682e995cccf9de8173a28b618407420644a0a543e031685529c2ccdf6497421ad97fa67f7578543d44d9cc4166a608456dd98041121ebda497b50b58da4349b55fc380a122a4ee70f27156e88ca60ea", + "11d6ee92cf34ec69bd3c8cb12ab2ea7648", + "035deb79720fca4c94b492e21ce3395d526381a3c8f46197c09348bade091ab8916753e6eca60c1f573280ff2effeb28277f82818744165fb20c845b61a6a188dffed75a3f3956d229fb4749762817145588e80b5be6076c08e4efb1fce3c7e4c532ae7619760e2cb978cbdeb909363395510a6f051c7158b4c3d134689292f76b3414c7954bf4999bfc6fc985c962e48977b7aece41d739f010c3fda7d3e72d34b62c08372adaa386fa2ba41ff7b718b866c27dc124d2908d5292f56a7f54b2d1249bce93784ae37b3f0747cf707e42d0bbd9d078f88d0b8246467f2497ca5dc34a0dbb81d68f4337f22f83b0ce9e5cecca9c86a107d5503d1ac9090c4fa116372fed3a025138027a3716180117f2f07a4dec0bde38bce2ed811e671046fd5ccb03aa6fc154d2de1bce3a821a17f575156fcaea3bd96bef86bde96facad3c28ce8810639f9fc7691bede8e708c4e443050b19a6e7ceab761c34363e9f205aa7cb63664a051da61ac0ed17cc6d12d7e784a5d95d45fc348e8bcc8d5959a8f428a0742edf72e3aea30336d847f8e211d14ac9ba69c0be096a7341a9abcb2091953802f2c71f708c634ccc9281bd", + "07bb0a37b183dc6ab56c5bef677706c5c2" + }, + { /* i=5466 cDividendBits=378 cDivisorBits=192 */ + "0259de6bacfa9942558f757660aa8845d20805be0673a0a8c8faede77a4aa6ae1ad2ee130a52294fa6f9257a20aa83ed", + "4bcf6f6d3bf4984506dd526fe0aeaa888febdf7e9b53028a", + "07f06bbb7fc2fed21b6013ea0d328d91281fc63abae59f40", + "21fc47eeec327978c158f6ed87bdcef8ff9b12fd33e42b6d" + }, + { /* i=5467 cDividendBits=3351 cDivisorBits=3247 */ + "3bce216c7696877f477e2c77927c0a7fe19185df274985357fa7aad0282b58fb6903d7c87505aa62e9a28a4193a6456ae5714b161978fd24a35b16d3bf7a8c03aa4e5ea45a18409af7fa8d13eb0b6f2293aad53b7b106afb972b5093f9c9ce6ae51b6ec5a3c1ddb90c5f0ff836582f29e087b623d023411095d69dd7f622b47c07ec569b18c31efa4d8a5f00804d9d79da8ac6361bf503a5d354851d26da7109bccc2bb6f6c6b86449480d8e053479e6c93eb677218e1235b668dda1df29dfbb6022f16d7258c01f9c688b0750fc526d8c628ef1a10d207470a207ea02fb134f361877bdf69de804129e760405c24b3f5fae998611a4ce213bf0c23a0fe40576a28f70b98f80161aeaf0baf78aa63acdc1fc50b6d6e33599e654ed2b8e760cf7c8d684caf6bc05981177ce8d0954f503cec8c658d504e6ec5d6e6f5da4554e99c4454a27564489b51ef843369715c3abb9c1da74bcd2c20b77323e07cc5ba3412b33ec8622b4675baf688298e95244a61472fe2b7810b2dfa64979f89acfed1dc9a5bbfef00f037f5414e6d37dee9e0de17e749cb26c27a06cf2c1d2a837e799f7c7b8", + "5d27c8a8a27c5a11e2787edc973ee15be541b91de52e6e59dc634c4f5749af8143572c6ad4b0929c379be18db66d08c8306feaea4cc9434839640c7b980c28b5b852174cd41af70bec073a304038d00d5c9ac70ccd86801bcdd797f76fcabc74970d622e679569a5b2037a95b16849852cbb0c24676d607b38fcefc2df5545393fe4ea0b4f66236d1a4f070f276a4af0a2eb8c7c9260f57ccb594669d3b43a67ca3ef3f0c5c247194dfa4cba176381cad01d1d6afc7cd401601bb025df500de605300e922f1e24c76ec3362a71fa5014ec973fea2a9aecb3c357862871d6ac1a98a2d67aafdbe2d9b727c3b71654e3ce304a6077caf73ad3c31e28cdb1398c151b474acd9518f65dfd3660ec3336e87df5e5d435ec0c2926f3d8a0130c5836b43fd4ec3dfc023c92ac70518e8a38adc5d5d420317c6834b7c3b67835d0380018848ab02fb94b484394e156ffd8c2dba66f388fd49696232470aa450183cee921d480d7f1192965278bb99db69993e38d3eccade4f19d95ca3fe788d19df9e5f89eb0f7a6762bfe04e02e0563a465bd26fb4c8d9a618b", + "a459b57fe78e15b08e7daa90b8", + "38c60e173da910d0a0009dfca708a3f85ee11ea3bf704fb95d491a927dccd8f6636ada15f3daed7bf645ce2cb3b2e01c25b98bcc7e01e92efc284b5718b982f3b5cfab4d8a744d1ecc007c53df5a8ad48cfb3703f867d1c36ed61ad131793901ead30a2efeeff0ef14124960120a1fa9dbcf1101f42c7497ba45f9e2b16d62b18846ed580093b707ab05e9fb9b91fccbf2f67c771090f33dad35ee3166fc4f7a48380c1955ccad576441446d7ee69d932d95a57ad9571a5dc33ae0815d1691bdcfafff19a3ec969f09d929f2deac7f82451cc34178b1fb7712c3529b52be5e99b351ab632818f77b1ca23e98e5f7c226081961516b4ca899d69ee1fc8ba19e07c3121dee537e47429b15523c23c21650b5c85218f84d7d75cdac443749b3486ecd4cf6a9764d7067ab077f932e422ba0a9d95df59d88f7e4fcc494a079870cdb1aab7e2f041f60ff5672538c4fa8a5718e22421f0536627cd9066e3407c92a7acc9582f01725ca83eda6886c79ca6a0f1a8ace1bc87c4632d1a9084e272367255f1b38caf40b843de31a6839aba1e63573fb56d57bd0" + }, + { /* i=5468 cDividendBits=898 cDivisorBits=868 */ + "016407569f2833555da30dfa4c528b3cd04d3bcd014800555931ce5d52b764df3c77a4b0f6295acdfe2b08dc8642de2187b7f08b15782a2ff190b88198910925abbb3c291639427ac1f8590e4027942610436cf38c8cbfb0779bda4f27ef1e0724b5b2bf464d1327b57bf9ffef067a3569", + "0d08d040e72f348db0565ad1adf5f76cf232fec46174e26cf40f6a04e3b5b6acc11bec332745b544b9ea579af8fc84ad636c5c13c81fecccec281e308e4b8c54b9f3a5d97e918a42cd49ec3ed314cf0cf83dd23a82735a5fd8fe814e47196b23f6902ade38db26c997e600c800", + "1b508204", + "0499c3a06a5611a731fb57a96138fa4cff76835e38990bba0917ee1c1882c54a8ea7102915f17ce7e56c5c5da8ba51c5a4bac64cfddeeda8fa6d78b84b3335c6afe151be9ef550bf0d22d3a3208f823268c8d1f380131d72dc557274d9a9816760d6ad3c265845c16c88e71569" + }, + { /* i=5469 cDividendBits=2945 cDivisorBits=445 */ + "e35a75228a26fb4cf4ba578ba2d72b9f6781820ed9876b9b0d66cd5282afdeb34a90a9de6be3dc95ec534449bbe00b34ac4391cf4ee91f7ce962f5793604fba01cb3d3689a9c1cfd8a6e8546736d39c93fa30935b0ee58a6563efea109cffe2ec50ecaa4cdf398a0f6a8b2b2b609bc9e5b5dd0f0e60da12934c47997babccd45be7f3122dd0c653b50eed93581fb174b81452e2be7c7ee6de78b6c4f6383d24d087229e9337933830cadabcecc499e487bd7990f25504c38635b5c7b4121292a20cf9c23066db59c9a7460bc9a0804f0dc35c27ada3c10daa066af9bd94e41ce1158be07529145e881d732160132b2e6d112f9a401ba03e864166d6d46dd4af5de5a80855e08b830ae051e50f5f298ab94d46a1b8c03677189c7333216b0e2fa30d6d3620f74e60509e97d2095fbf1c8bf4d096f0cc9002636abc75e0f692e633feff3f2271251a6e29961a5e25f270ea6dd5d45b7713c8ffe9931936cf67494542b8a42890da22a335e79d368656e84", + "19489818cfe3ebca17348a39ef5fc1f568b3be32d502cb02436f6fe176a07f17cbe27ccc5cfd7bd1e31eefcf1d29fe359242b8f39ac3334e", + "08fdfcbc2d766850b1e282728197dd8a0eff42d4c5acaf1d78d370c4b456c90c23acd2cae202f664cc06a3a7b1149d20244b598909cc21ec1693867a5873e5ea71102a8e94cf52a2a5aa714cbe2a433e23a3a09e91ac08653b9b57c98d3a45374e35a27e0d9698f4c6b2e03687de0864aa9ac0caed0de92111670f253573fee5bc84a9ebebb6871ba76925edd9cd88f2c479c58a15e3e9416c89a4869263a23c4796edce827694d0832b0fce597924a445ca660d2d720b10f8681e15d5bc371ab0fec406e8562efa781c550e9f786e92b681b5bdf02a70ad82a5fb1c7f20e36e8923e2d7ce045714fe31d708a0010b36c327aebe793bd43cfc7b355d9192e39adced47b30fb0211d99023bf17146131d903329e7f3fd22b828cd28bf9611cafd790f343a9c48387d78fdc86c6ba38463a97ebc888c089c7766", + "07ebe9360b2aaa3f7a667b92d6ae90eea66659d26d179a4da1dd5aea05758e04c80b13749f11765881042908e233e8dc303da49d4e3dbb70" + }, + { /* i=5470 cDividendBits=1193 cDivisorBits=1021 */ + "80fda8562304e700b613471308a2d43c1daef1089ce7e6cee4d3abbbbd3087b0416953b06b4607302a219b7fa4531ab103b2a4a7c147d55439e04b0c0efddc34a8fa8a13331e9b7d32aeb11b735cdede56e00210f539739f8709050906d048a29896cf639044e3e5688cc912c287f47a56ffdd5efccdcc37b8d762d1945b3dba02a199d1d92575e88bc3c60b865e37e86e1d361c35", + "06df8905b69c4bb99a5032f21203d5e088eee74e043f41071573a7af4be50fde6ad7d2d57770811331fd99b215a08a6154688a769375c70b3e56601456a66e1fba74fc5814202b5c792c07fde10be6cf9ead20771b3c80523760e369bdd24fc6b0bdf4e9900842b314c3c3c70bc68ec1e30f1d7010aa6c927e311df3158c1023", + "12c46b3b74b8cd81da9cecd8e041e5a95869fb1d2085", + "03e8df19506af9d0636a33b93a33ac1eec2626fcbcfa7d1959a7cd11ef1a3216dfc5aed98327a81fb21d15b12c3380b182b5114e9de21ffa0227660ddeba56875738c4da1093dbbf05dcf1e59ed5c0d234db2675324b875adecc2ca3fea0b89a3ab1b6a07b57ac4fdd61f917a25d990a00b53fd91aefcad1fe318b6744765a06" + }, + { /* i=5471 cDividendBits=1388 cDivisorBits=675 */ + "024de80ef1756c603cadac8ca697f9c410d549d85fc77f788e179f013c0708ba25427a156f5fd2f81882cbec65e316b2cdb3edae103b04e068f826692ca87db4b540063373fbc69c535762cd72a502f9370d7b9963c814f38db1131d955557a3bac698c427768e4749bf3d330db12812b414784c30bb857a247141559bb46dad55ba0338fd34f0c3fef5021ee6253c29af27ea6c6d986d9275503a1242c9d15d031321847e0da5355a5abcea45e6", + "029640371e7ce8b513d07d13d5f240cf82428fd819905eafd487b62f41a2f0b7db44b39c56ea0c4a550f2612aa8df4f3372fb155277eef3ed921fe44bc9381175f164187051698e1b85b3a11bfe8d1d61842f864c9", + "e408d6de3c184ed1c3ed30b1ed2804b5c184048b7dfae2f9ab15e72aa4d236e4d359ed9d3ba671c163a883fbf81ec544dcb91842b9ce5e2a5e547a7df67bc32e65880c6c76f19494dd9901c21d72b440994d7cd7cd93640ab8", + "026d92e14ffeb47f669176d3b2c29f4ad9cbefd3146df37bbcdc6c9ca6d44ca9c2cc6ff0e295cd1be21a0aa076dd18275f16c61d2f7eda50eb2e3443a7226ae2831e35df3323c1dc56ffb858b0082e37711cedfb6e" + }, + { /* i=5472 cDividendBits=1641 cDivisorBits=63 */ + "015ab9b1f17cba448d1832b681d0c3706b864302f584232a823efe67c2f412d599383fc8d28caca93a13443c6676685eb137fe24beddbd9de22fb2582ec2cc80356dc1bf2c49b9a112122bbe90fd7b5cfc0a6634a6b32868702f49638e293e023e08f1031d0e38a351103b103d9b4c95ba0e1e9b034424f1a81f657d611118876aade66e8699d0e6dfd8342a07ffea43aff0800f6baa2798317ff530f9ddf94c6cb76d33342a2bcaeed3eb4190929c3f53bc1304bea81eee275d3a576f1309acc88551b889c1be84ea0bdb86e91f", + "623b00c0e7ddad53", + "03879b40022d5eb8382e7fec7825cc0a04ac8ac8972ddce6a05b3503d2df5d731a9e75a981c7c1e09021100bd6d390fc364c36b1c2750ee82d29250b1a785806dac4dc8aed2efc51cec871f55936cd4a6ef7398228398579208668b8661e7fbecd13eae87c399350206fd19c977e57624dfd7e67d61a8e4b6c1707ad25cf7c3188e2dbc0dccfa8ffb7cfb19e7ed302c82992ee869eeb15e55883f068562d116147a2eb347a86047b832ec211ddcd44dc41b09291f5c4cff5a75d6f4a25d0036154c32dc61dfb", + "4172c37fc35991be" + }, + { /* i=5473 cDividendBits=1651 cDivisorBits=1092 */ + "05a97a288ac39408bd9f9491a3b26da9809022906a20602bf35258edeefab3c2a087829144fae4ca5d6d756aba7eb57b2fe5d80057109e42ce8f1b638280139b4e25af18dacdebe3ddaa93ba5a9108f5ad8d4988ce2c8104a7b94094d183e0b17fdebb537b3d50220069bdf01d3dca5184ae82b4a5d27a49314eb8898adefe871dc5e470ae93e38820c8cb0d6e3bdb5a47bbed9f71506471b94287de8d4aae6c269f24509825e46c5c5e285635c5ef9a7f47d8bffb030c74c55bfa2ed1ad7d90a5e5f92be05106844bd58a05eb4fee", + "0b9c1d43ba4e39ad96ae3d465ff998e430f76cd169e0ed8e9615a292456b624eec28df0a469b8dee95e9b98b60c8c97c1c1c91f3db7c770d20892f6938660cd073107280031202b35a39624435436fffbebae734c84abeaa1370b33c6f31c0c2e8540ad94ac8122feda94f8e90ec19a77f0a5f00d9348b11ed90f30cedbc364f854a8174ae3e4b60be", + "7cd966945c950079b335268ec6eededcfe933efdef1a7edcb4ca548bfef2b7941c6bffbe540c6f016e8808bc210a3b19f48d836b0d10afbcb068079bebf923ab856290ab1825", + "036724f7c3c30187c94672f96640f7a47bc2be4cf700198bdc0fb8a6013cdf028b16fb79a352f5a1eaed0a1afc9bc5f386dc5bba36b25abdb399d687d02fdcdbd77f861f021944837478d21534bf99f9b5051877bccebff9722f744d75070a3bc3a1ad1e9551a46f71589f6e361a4b16c53059ae54e192276a166c2baab0621f390e2fe103750a8478" + }, + { /* i=5474 cDividendBits=3618 cDivisorBits=16 */ + "02b4567c1ad31dd79740dd29d3749062651563ca4ef1df9b65b01ce5b602648c3373d28d46c7c55437ad44ea7fb5d6251f847783301cc24a1596dcd8e631324243327b65ada8bab4305240879e7a6f79dfb67d1c98bfa09a4afb83126a73b3f909c3769e8d1eb94853a18cf337ed429e751d777183af825eef860c0d2a5ce6dc15ae322960f14b8f97d41af086826226e5757f3850678b178380e21a812adc301d3d1c3f7a9eb984750c34a48f9ab5e3c727afde4d65a2407d3c42923fc526d297e23f96bf0e635612275ca0a1259347d018ef62afde28ae2493c9539fbfbbdd5d15a013f7d52e4ebb8cfc683ac584d8438e84e93dc374918158821829d8e54b8452f0d3ddfb211ac2ad6e1addbb00b72b00b93241bfd249b9850956d9dd11b42221c69fb536e7a7c2d089441fd6996bd206e735ab23706774ee610ecad670fd6ff5f02f661f076ec50b36b698e66c7fcda402129a968400b7ab5e746319f1148c2580f385df9afb9d7d2268b793f315225926eb2395cdde046fd42f4e21db50dd2ebff276d39d270ff048eac501c681bab212b1f41729e01e345548fd213d8d19ec9a6bf94ce42a27d370d4f586ea5aa53b1f56569abb58efdc252dcf849f90bff7812e82", + "af43", + "03f3476878a903d097a4192f27a9f59e270bf3cd88450f686578c472898e7855e13eb70f2a25a7759973b93d776742013db8c72bf9917845a45edb75b47f349d3ef73a10cbb8ebf7daa0f6597233ffce2724eda2f75d753cde6e26640354995a8dfd840d270698f344b34d90b40324462a0f4cb608d7536804d3cc3e7ae548ecfb1c7d5fe9d2cbe8ecca11a23ef88b1f6e0e2e17c5c0c957819c782d6ca8d87fee171c162164ea365be5e4e69fcf8eba66f0ffb306a52613c87ef4cd103d4bbf4bcd6627833d7f9ef806821555ab612c71525325ece5e66a8d71c35e57db0c7c7b9e62ed188c13f680c8d26df15e21f36344149dc340e22393cc8bcab804005cc702b7074368935c7158e3f8fafa9cb59eace70cda8780799063d5e28ebad3d520b2c9a0d2d52d25f41fa9a94875f519da58e13443f6b69d7ed8c47fcd5ea2b3b835b9f6d36a58a622783c56066a6a46339769f9f48bb8f4c088042dc71fee0a9a24ceba6511c76e5447cac7e496dad84bb00b799da1b7a6b2308e981db9e52d2ddf715318fbb8b7e84fb403e2ba6bd6515774bec15721c00d14592cd627c727775cb13e4c10117ea64bf2c4a3ee7668d25acc2d3454e5db1b160675346f080e1abbfd", + "084b" + }, + { /* i=5475 cDividendBits=2622 cDivisorBits=1329 */ + "239d2b6b70b2c575ce132289e69d52bc28d5bf26a96a930f5c781a6ea5a924c0d2a6b2b0603ac3a7d65e2f0a13a5c2f26e33c874463fc50de65d039d8536d567423322080072490c9742f558b2f9583295da5a1c83223ac2533e379d97b74fe2a3bced69d2ed9ab477726391cc011049e813bd201a7293cd41bb2050e3011e040f5bfdeb323b008e22aa228db7d05a140d521a1108e054033a8e5e361d8b97f770c38071a679172ea32b4510f42b522c243e1777094802b98ee75cee81a464bb9ebf732a32e8849a285416127ebbddf24ba58810740aed4aae678513d797240bc3c896b8a448d4169bc20fcd7fcc64e59e40538ad71e8cd13f185ac1aadfc09af719b0cf0d0760df9d48262f30751e4fdf2f17019f64ee4e26cc9e2c97558704c76da86d711ca6a06c3f3dceb8a2d5e34891ab200a83adb07cf534e16bd8af89c68c2e3be9b904e1", + "7678b6615a8131fbd92feb728f88e28fefffa3c4ff686aa2041d15e0f8363e4e05ea0dbb7b8e1e7f22e55c55a1cf687879d33267c68b63d87cd97c752005b033079cddcbbf42b0fe75bbc04cdbd8f34c9052192d63bc83e736627019db586d00a9ec8b105cb4255434992c0fcb6dd2741231ca272cfbd38b413a65368432db57b86d09ccc6ca4d42b9a802f4d7f02bd1bc27a56886ebb8837d6cb65e18c12734011f610bfa47", + "4cf4e5878acf0d882cfa5642b58bfee095c9c64a32d7ca05cd3cd702912752117ea1209b69e5f1f583703315569e8d0851e02e13cca0774f16c02db177113eac5cf10536c4e9e6c9ef36edc1de5a663b8b6a722305193f42a6f101e7338232e829df121b0af02bb7430806245704591de8a30c51497b97d1cc755b23eca9f997333ce9c63a16c2149791d703ae6a3695910d63ebf1443e48771a4c4c0b559ef470ae", + "7248bccc25394b23cb28b92c1e27e477ad991f767a3854e12dbbae697a0d344063253d20b6da541493c8b7b43ac5dff0aeaceb8089d4965b61e961765f2e4330bbf14bd3d2a66aaebc357da6cd51f9ade0874eadecdf060105bd6d05fb225420ddd40d4c2ddf1dd5c40e17956cba4588d5682dda4a7eaa3d2e9952cd82e17e5c34e04c6ba5979822f8b7e9efeb7cf97af0107ba608f94b26b08295cc622fd318a5fd5869d89f" + }, + { /* i=5476 cDividendBits=3029 cDivisorBits=1387 */ + "1474e89b16f9334de1cf1e7ef80b8b2bef591cbd0fd1631cbf9647dfbf560707a31657015993edc99dd2bdeeb6403f79912d2419713f1a6c802fdf33927294cd0948f17ce49f8fc465dac03fe7e85ed2f4b8c39748d2033cafb606b969d312f061513e4dadbc6e7173e367c004561ca1d9d7cfbd303c4d85cd850a28ec5ab69a8eb033b2120efd3e9c8788392d4c0675eb5c30454ddee31aea92d0e02af501c5952669d66652c841272e7c5d4b73d192a7b042c42a14391ad82bf0cab5c56f4b53fcdcf8ebd2a8b724fae741d97e352c4c32dd4d643d8a3fe6360434e51991f4737cce5523e78f79bcfab16dda16ce8cf477b6d85d0a7e5cdb9b998fe2b1f54a7c558986c248c3f170088d72c87818eb8203ff92e74a1bb23b2427867eaeffe917cab0234c456ba52f1c5fc07d8aa0da9e483d911e26c0a8b848f3e4375ba0db5354eb1ecee23eedfaa3699f128bcf5ae0b7117342e75f74c2d645bda5acba52030288ed51cb6b5739af6653061b4a1d0e1f37301356c9968c2b4f", + "022e5ea3c6bdcdcfa3ebb60c3cd7ccb613388793914e4fc8e9e5624e67cfe7cdce1af5e10c8a32e3ba7a98db3f8416d1b61100b0a2c8a61aae734c269bc61aceba8d3cb5992b1ef3d440143e1f8340c226941eca6facb6f56196cca6ed64307379aa4ed85899443d62c42521fd58518fdf1764a1e47bc44df77365c293731421fee73fde09a41aa40a036caa41b2a8211f18ed58ac2f861015d876f2e0b87c180fd76e26901e26a2e6fab8d24fc0", + "0961015ec1c160f5d03365c4ef19e98a3ff1849813d2e62d7ba0ac72276653e78ca934b7259e0d0f6cc9402f27d383d095a19f81802423758d1367b09dcaa130672003d4cb36055808e7e6a5aa840276536e4b569ea487eb9cfb987369a7522725ccc887e2388e997c7fb62f3e3c83853895b120ee819dacb118f86b0a6a62d32d8db89f9627540c098b08427b9822fa9355c852adcab5fe371944dfd43be3ea137b0276755c629ab5fa3322b1bc8d698393581fb79f384f35cfd155a834071c3dcac8949e2026ebb72fcf2c74d2", + "01b62d625806f3e13481d7598aab5576dc00cb933477231f5910430ce028f45dbc15f9f782e7ca2561201ee8fe978e28c395fd39362dd6774212736bbb362a59fe31d61625cba722e57793f09f1e37078d8d86772b00002a4d2bc09a388dfe2beba36234c134adce348f12f910aa020fe14f1fd85a9cf253f7867a4fed3616642d86e7a7ac01aa70bcc05ccf522162f098630190613a7fb43f25c204d380714945b75492e529445f8a7cb8e3bfcf" + }, + { /* i=5477 cDividendBits=1511 cDivisorBits=1171 */ + "1a9978f04061af3a7569d457d0cfc899e015bbbaa90f3d59d4195043f0311c4511ff96fe28708a73e698930b5e36dedd360ba218410208e4309e4858945d78c09d59ca0dc1d1558106a6920a815c15de917041a3b815a13579c8d5acbfc1efc333ea6fcf80e45497f86255db8ec3a6e785d32e4c09c796b4a1d3362043c6b5b99bae8ccfa8e07a70631e3f64ee824d37ba2ecaf567fd62e93d4a4c3f96b7194e760cb5a702932739aa44e3416aba94e20a4921a77d19364367d61cc30c", + "024bcf293bc4b2e0d970eec85897f73ff7e2c8887a0aa191f28a73cd24a927e199bc4e539bca609dcee1ccc1c160af7a2d6f8e4373dd6bbc8bb41ba61f25d118fd5cd094d0b213bee42cd9d252fd0fb8c3c095774705c1baa2b3c8b66029bc0937d798b4efe2e1f08c63356a9cbf476a78707ed074a8c22b0e1b102af5690d7d1d5544dd934661124d0b578f21f38531ed1bc3", + "0b95a16615a1cb80982273f9e280b5cf082b19a5c704b4e5d279e6c137944cc5a5e3520fecf85df1eee3f5", + "022ffc88549f3e7b1ca1e0f9b61daeac87884f48d75e6cc50bdffbc8aad1945c12e2c9c1728bc1a44949994ce1e69edceed2e29253039cc6531025b9269abb0de0a58a5dd7ae9f7f3b230f8f11583924abce321e4ee6e22e55a06b0bd40e6f0a8a63deb31161fcb141e6bac20ffccbb1e4ef477ebf2879a856d7714d71cea9d2cd68761d424c8f19fbe8885e287a406c49486d" + }, + { /* i=5478 cDividendBits=3016 cDivisorBits=2558 */ + "b7ba04b5b6ac262a4dc53f6755c5a435e4795aa7a63f8d45632ddd2f5fddd2e73407823e535604be50d260299589b9d1867362b19613dd11a3f14e77411b59c6cda062d736babd4dffa95754f38aec8c9416700ac006d1f09513c1ccbee821368cb323a6bd68665c9be9434649bb4ff3340d7c668efd8a6e201f26f59509079159cff721f742b4148576f12be7575d04005d95752794bbb372ab80419ae7ebf065dd768383121a8c38ac7f2cd65df19a76e419d7184863d8b2b80b6eba8f596fa1aacf30e76e240ee9e55d68ba4f6211ff01417c4f7a9fc326d885dc8b991fdd6076f071056738457f90e7a237aa301745ef5ee82556c66031c897ae4e6b8a6ef4b7f7ee0561ad4bfe7cf73d30845645864fc003d3cf7528e45f25adcf555f7bb51592962900e16696005e2a196bca763fbd277152e09b8f87d3fa54c0f3a0129014a2a428338ff78f8a66a1c7843bc488dbd79eeb7a5b382e87bf7da2cc2397084d8c072efabb5c6a4d0ef7e3674f977722436a4cca48fe0b", + "395afd39a79419ae12474304a539c66279e545c2efdcb100cff47cf75ba8a0ef013a11a48aaa24ad49a702c0857c58f67ac664c34d57b7a57342ce08582fe3264b8f24ed81836dcc7ef5e5d62dca1d6950fb612554072bc16a0a2cbea77743a654c2ce915ab6e8e4cfce489e712823f34d2f4b529cdf548bed206012361ae51195014b23fa6154cdf1457f6172a90341bef7da825687c591acfce81bb84b0cf3da4ce9da9305cff683c44afbaa4728165571f43843e24b6f70541999c542457e2db0ba53d1409dd7c1a609cc3c40f6bd131329b03168b896307e69ad667da56dad4455397e7367dec2993ba0ea6c847466724e1c3b047e4d9ed47cd1bea4d6ec1907548a4cfd587f992df2a221aa317e721012cc211bba8582b1a17cf638f6374213c7878d324011e310b8f7e4eb2619cf846efc39f54cd6aaf87dcd75233878", + "03340b771ea0e49ed825122b8c3e7936d3880cd19d87408f1266c4b25d0f1a7840b25f2f3bcfe38d270dca5c518ab864d26d852978fc04046202", + "35cfdb7f8bea7b325d0fbbe8fcee8f591ab1c73e924db0bcf3625b9484e1e91063fd397de10302f6beac54ac3350c8c7397f849e2ac9a452b5e563f3759f8c2bc547a15e58d9450e2687d5d64843c6deb0afce10c83c86996c06c17aeaa9b8395c73220ec4f5cfde42c1d36462d943c5d0be5576ef57ab423cafa7b6f3946b13df5149e6aa97def85838c440087f113157f29b6b62623c4a4094a28834e88fb562ce2c209fb72855a86fb7046b9084307ab1da9bbf53274b2cb1ab5e5ff0535e9f795933d5b99c881b046c62f03d52ac9fe98fc18e50deee486a542a8b5a604b8b1dbf9b74943f1c414e89446fa45186dbfee5775dc35aaf902bcdb064c13270f43317a875122f1522df08cea8af9717c33825f0dbd726adf7fd6183883f878f1f304b052f21a1e00c5411a4dc0b9b0bb7927a7bbf6b93434ac3904ba2849d1b" + }, + { /* i=5479 cDividendBits=3510 cDivisorBits=1627 */ + "19a6a9533f4306fcccac152fc3eb6e9f14d682d59225dd8328f38cfa3361652c3354ee2b3951f88a56229bfd05a219f58e562572e42d5bf4fe4ba40fbf051afa3278496fe7ff3214754aeaf11142879efafd04558c3c45b39227e3dcfd6af952c0251c681c0c046af59dfd37297df9079acea812ea40bf82d163151f7fbf468e907095eec576a0d14101b992e73ab9e71d4bcc45c9044ba223de9571da7f472ece743e7e142f18bc4678219da18a662ac838c9c083f0ebcb30b215ae020489dafa6a6b5dd68f249e9ed90bc1ddd700483f252ab21ef944dcd76e2caa2daf693d2e6662284102cff5213a6a8b042ae0b01d83ccd274524b366008a0ca0adfa86c0542ddeb4403c4ba5ffc7e42d04ae38ae569f1fd63625bb2c097db2c40d66ed01b8664f321c5a7e2b4927ecb3b46aa25e28cae223f17b1bce7d19dd26c279d0eb94d27f2a9948e8b8516c72c55dca4a7438ef053c34e0928894177b9122aa6b388ab9e21c311ccd13a9cd11f203172e6d7572c05f3c0ee3089b7829f58f34181c47a18729e8e5940652d799d06f871af50a5745e597c6e0233c62fdaf7987b8d5aa606caef15d8e414f61f1ce61cf2ccbdb0417d3127cd", + "026c6703a558c44c693885b791f7ddac87c61a2a00cdc49692f5efe4ea505f22507225e2e97ba2fef87e597937e76b2c3f9fad3d8f17c81a26a0086d170cc614dfc8aff44b9c117b3356d5cb6d9ad82c218929a55adb7bae9549e17c93cf7b106b457bfae4e41d32cd37b1fa670bfaa199fd14668ad6f1e0eca62c3ad553a256f8c62e35a8d90c08af9433fe21fd9e2bbdeef6649d65a9b3d61db88044927104cb5f135b4b722c794d0c30a5e949b9605ad2fc5607f33f5292bc68cf9b22118e32d60ec8da2de80a5ad25e77", + "0a95a3157cf0a813bd2915611a8ce810a4c71a6ea1b6b23cb29be8201b59571613e26879375ff0d3449b72578e6aeb7d111247386463b94319396d635c1f0eb43bee40071c009aafd7a35ddc2737379cb8b35f1b2f26ff777c524b9d0a1fdb6289ab200c8b94696732dca37907563433e35671908bcc36b2890a19bfecc16493c5779b14e59d27d587bc6bd5c73db208e36f917d338996dc3af87ae5fe8d96493047eba5828f887c50c68a883856eb403b139e30d831af5aaea222646724989bf3be3c12da3350091f7d0ad29e94eae5f7b24e975b47df99bd824843c18b6e5594a13f5868f2840125f4d880", + "7df9d2182f90b6038ff80056ca5d685283ceae6d793a6ac52ebab4952a660a7297d378380687d4344118f898b8401b03852dcb43d75791002a7d7563e18d2623884f9327084dfcebdcb63519ecb0d017d2af5d6c4d440f9d57adc6c4f2f518b83a15c3c2e2e09050a18519f8bef1ba3814e4579b17f2deea0d29f45901c09fdf90a216b9e0990bdcb69b55e464545cea28a8738edcdece9d95c255afdb245a6f9997bdc60eb4d3a255b2d1a1a357b71a5d0b931de90d42b7f87536616fbeafaf83581fd8fc3bd257e1844d" + }, + { /* i=5480 cDividendBits=2397 cDivisorBits=418 */ + "8707d999e30155bb3f07d238e4cac753c8404af7c9ac3e0a77e14d6c0ab2c5c2dde5d06df2910b19b02fe44fda907c0e5e2c6a54796ea9195d0be7b735fa1511eacc347e4d702b1867daa897d743e33eed440499cc768e530b0915e9307f18cd871b276614f698bd443f616b66322bb5b5d83520260a9481848b08926ab4825d5315a14b76beb097ba245d18bb37cefc3d474453c682359c5307c3d9846a363acbf63221082737702a0b63a44077577c6d2f46ff3126d1df73daa7af65885ecc52b43ac7726634d78c78bfd71697501599df78f368cce3d74bf6944c6efb730ec25f9dc1fdfaf70e4a92f2ef94b25850c479ae582c67725d723267c99cebdda90dec64fcdfec7d2457e364bccbf7d9dff8fc9c9c43a39c4027e5b1c171122f452dd7de1073e2365970d9bf", + "026dd409d6540ec3b3931992759ee7692cd8d369731347aea4cb977011c3f38aa5fd8419bc206dee8fb4e6cf4efac98f86395efa79", + "3797361a79d3424ed6fbf8835cfb0925e089c20d123f8c2a13405ecd44e80ad74ed57af7c4e7ee7b7c17aba048cb1a9902de50daaf1f1a2f203719303a7de3b3f470911bae95d1fa24330de729a848f3281494485676bec7655b92f2b9d5c025d8955834174a963b009bcaac5518881462b64b9155d2720c81d9aa5bf3d42b279b0a910400575ee520fd19ebe899a787bd15cce09485214b2850e0ac74692999d90dd1c9233c6f4c396d86a0ebd35d9b9197c944c76b4f806ecda7d896b981e0871cbafb67d814fa7159c952a3e7705a70c0c28f42554d82c807102f33457f768b34a07598057a5d555daf3ed069dc384525492a2d28fa", + "c5325e4fe8dd6af0bbab6bcf6be0a08790297b117e9d48c56bd808818dc76621c9fc4db624d0931461be74a258492be09a485795" + }, + { /* i=5481 cDividendBits=873 cDivisorBits=617 */ + "2f87ff09ea8cf50450fd223a65d006dd16500efc355038cb53b7fec4082b9c1ef5cf796327834f2163579f887e8d329f37d39444cce56010a07eae06579556fe63df39be2bc1c5f6fd707a721a9c16240e943b404acb58cc3784e55b190b13db2478b98ed9db6a72f91fa9fb1c", + "017545c8e5b5c812e0f86bacf2eb6a67d3d290d3bb5fd306201381189527db4903da85368862e6647528b4315e4b15283db97cbc9a208f0bb6a103c59179ae1d5f5b50f0255a4ea548004c18870c", + "209920625b04b7bf1872b5bf4002b430c6970b092456ca71aa18630b4b2f006d", + "016e96190b720ea54bf8d5fbe7c0805bef6ef28f6b1b47dcd1704a2a9c9d52e2d7173b3123864d636b267ffc27a5061dcc4fe830c69640bd20d48985ce66cd5316cc73ee153eae4a31436a047b00" + }, + { /* i=5482 cDividendBits=3999 cDivisorBits=1174 */ + "4732a9f0b53ef28d417d037d64fca9215545d5bda9fa9e1a76a5d9c70c8e4ba508c5d60b687a0af1a55ffd9785fb64a490156b754cca8f8c385a7ee05622ae6cce13b4586fdcf4a61994616caed73dfb4767723d0b5874c40537b0f16674d7bc7630a8d376d1b0c8f8e79877e080a9ba49ddfbea9ef7ef5da29692ee9cc7e18be12e3803756a8d9dc61355d4224916611b414a2c1425698e9b4d9cffda97a1830b8c5bf4abf58ed5eb344e5b56a610aec0667ab59e5a34b7dbe5f425d7da743fdf1206091055bf2883733f95e6a0ae588d6a6bbf45db78d5981eaa53ba53752cf22d156714d01091e560a7771cc8f1e2c11e8e33a8bf4a9406e5ba16a555e00b9cf1d9194914a3576fb30f7c3584cacc0ca12bfedbe49e88710e8eee2cb90546683d0582f9df7862002220fc5550313f9dacded0a2891a617b4820717118f31e0a754b6ab4077de991051cd0b83ea595eaef4d77eeb87252b7a852e31f90fab8b28b8566ba07f257d1895157519bf06f2c60fb141ea6b08c6c65c2ac42312294e76b4633d97e77f0ce507be0529491dcc3b38402ee900ad7e6bbea4742cfc64ed2a9b1ae4e1d7472ec0a55cbd76a0d6e6172f30e98357090c808b1f200647ff1a00f8afab40416783823e6049d7909bb67bc14028581c531aac11141a2792381a448c9d4a5b0de45094526bf6deff3681585aba8", + "2b4a2722fe80f32d80c223d382b7797bbe9fd43e2ddb499d4bae850a754097cb966b07e8e00cf8e66c9eb9c1ca9a2ff1f7714a36a27d3c0c179927cc72768301eec52625f6750d1890a5d345722427994527ecde8a59d873f93c105bf7032bfa2c6ea83930cd9d4324476f718de4488672204c3fa343bc3c2260ca7d6046f6628ece0092f45a5deaec2fd1265a390931ebfd67", + "01a50a2784129522bd0738f176e9b907289405596013053c53c7d2fb9afb9ab5de9a239c197da61967b7f0d65848dd4bdcbe53e64424a366988fd049d8d07f4b819183d3333359789bf75012ae262a7007ab80060ce61549b5c77695fe1ff628c8ddfe8d1bd132fc2bf16f69f1407b832519c723eca62d2228e6772644666fcdcf01323ba56d8e65ebcebd7713615eea8f628e649db5d46fbda4886010be6e89e223716041dbfc6fd18616aad8f08758bd9de1872f26b96b694972d50c699fc7a45b5bae4a48b93ff4ad300c1af21e0ba1af4d84a153b3a1f247893345b93ee636da77de6732c52b22752600fda58a1538211743bdea057751e0d1a009ba601e251fdba5d78d55be8b7a03121f207b3fd0e372353a558644883cc039965c528b00475ae8b9d269b39f0a5cb9e6102ce64facb3f63c6fd2b4f78e6d004e72779161f4b5f5f8a610e0dc354d666f1bb4ecd29bd615a7d09a131b31fe3bdfefc3ecc87c", + "07e6dd366a065f1ea5bfd7e0503819ba05e654b42bf970f056687ed28b473f69fb53375ecf885f8ffcb994f248a34f5859b2e51c8b3da682af0ffbae7c76cadce6a8f4d7c24e05bd2aaeac718e2b21aa452a1bed867ca6b085f9f32fb3709c83ab5dde53246c86272a42b053c5f7598dc16cbb939d78201c48d6aa83c884e3779455c71a4d6c5e73613c4302611037794a75c4" + }, + { /* i=5483 cDividendBits=3743 cDivisorBits=465 */ + "13e37488c7ce6a413a62330b7ff0df4704c26cb80bf86d3b6a620291ee9e9cc399102e6a205c9d49a2957e782a99d02035eece62476cdb0dd0f7716826363789bc166c63b586028dad588a0c499431cd2b56a5e3cdd0c94e9963d13ae6f252cc4ba5a6973faff55a6c66dd380721e83798ee55d1222ecde993d108eb2c4a4be8dfb505228c2eb32eda28044bf4c23cfd4438fcf9d3c0c3fe35704042234994c860f96a25534e7580887dfbebe339a8e741afecb6b78602e124293cd8bfb1ed92a8582b7a93b45d7472d79c26e247588a6a05c3b4a7646744bb358a32d206864a8cd4c4f84ba1a634f7580014adb3bd2d97056710585e4cd6af5ff19b37b3fa455a833b3bf5e1da4057e4b8458611d49bba24acffe85f059e736d4787d2b45543a956e4da97baa8a6ca72c6be8d15389a06b1f3714f54d6eb8dd122e4b2b7b1bda659623e8b98577135f337fb396386725bbd4b6975e16a1b68ea8afde439053940a03ec603d90739d0f1154668876ab189f12523c6db5f4192d322cd2ca5283607b1c6bd7696f73d3aaab8132f89cd8d8f101849b09c588102448bac1dd429102df5a5ce4317fca30a573e700abc015247167644ea999077c001d20a01f0a17771ee0d5bd2349d463de0a6beded0dc3e1c77ce48", + "018aeb5d14f97587acfb41015a477827afff42a289176cae0179b36e7dcf70a9cb854a11da9dd12702a03afc0fa2bf4de2b0f7cfe8f19a75c14815", + "0ce473be0a544a5e9b31c6328ce78c89fec638673a8c5dd4a49e2b39aef78c177340502f8c61407d3446c54c2dcadf317a3937f11a22f7fca0fdea4957cec98dd58772cdcf1f902dd470da635d139fc848470b5917f2bb19c04068433ae796f229c4a684f24a5fdfc2b541ecec8b80e839fb2b3f4450e33c51bc3d07ad30e92d09a25425620fdc24fd10f0fbab394d19ee176b4fc3a2057da8817993ce2414fdae7331c5433137270ac3aadf45b18a064661e17e01a82d7323a6a9d74d29455a0e765a1fa8daea21db984257180b193503b8fa6013170261e4399103ced43075445d7676a74a6e88e66a806c830e2a8005b9cfb97de3e9dd13efeb7349fd9213d013a7a23f0775fc6f25f231cfad1813fe55f5c9cadd03eaa8da80ca7f8258fd654bc9fbd4cbce8360dec6db9f4b2de6a117a1697fa51e644145432dc4fe6083c23265f57b37714b083899fccd04bd60e5d30d643b6db7e2aec0ba1aa38240d581f94cb5f10f77ccbd95a7743af563c2fad7819fcbe6af5c3330149eb7f52ae89d6cc3fd06a02f486054eb830ff24105a1c026a0c07c3ddfc5c1", + "017ae36259d2ce603a94906aa2a7305eef5d5ccb9b04152a652f74dcceb1bd53deb0f26a348cf13ba57f1b1973a739eaa07e0e6fdc8e76cdfd4d73" + }, + { /* i=5484 cDividendBits=3700 cDivisorBits=390 */ + "b053b88df3f33f04271fbc2d765f71d50c5ecb9e96626d089dd29cc96787746e2fbac3d88543e9c1341bff1558db55fc39ed5830ba071cc4dca87dfd3af25db1f8fd664badadb1e56a9d687b4192283643bfb19b85c0f24cb703e5af91350ec1b6b4d064e263cd91d8a1a4774bf0c13939630fd205e27e5844469d9b87a8c26d6bd69a4bb6552d75f11e5c1256f842b2f4c629b0842ec1e5226a6c7484d12235ce3796933cfc2401e4f86ed09c98032a27fdf03caaeb4da85cd010cd4fed373a824f12d5765510bcf45aecc42123428a52e385c1cecd0f1b67078ef62b6f8c77fe74eed2671af8bef25055840888fab72da5aade3e6dbdab4aba1715c441c9fa005c0c962aa2ca8c3c739b0b2e7eeaa58dd6b446fc008e531e21f8c360ec0f2240056e04a69d0b45df8a2b65e5b04b8948c37494c4aaea6fe9ca6ed2e8a05b5b057440c8aa483a0753fc1809a689baf61986a68c6d16275509472de5af567800f02b029533951da4f26f016f332ead6f0330fdc7ef549bdf68f0f8d8a7de060a1c8eefbdee301a2b5ba75b73df3f2a83c88b5f956e632de86233fcd13603c57f3a4ea1db2209eb870839ab34a1ce0fb52de3065bf0199afdd579b53808ca6557ee3ff94e21e0e27b0b928df1de50", + "01ceca85deea48d08be74db7fb982d7ed1088845df73769958f158c29e513ae2c917ba01c26e1e72f3d4844e1c9945d43d", + "6189baaa35baafdc446f19da7bbd10cd71e56cf92db8b760d826171e1da1cebddd080048ea3473c2c5ea2ccb575d2511d1c4db912db922851235795bb4103dedf277db171f42e2226f83a4da509fb7c0503c89703fe23eeb1a980fe31fdb37fa03b1963890120274080e72b9ec07a69a256ce8564d81045c2799917ed6980e9afe99660514e6b1432faf305237680eca5f6281a55211a2ff197a210ac27e09298af840e50a22b4842a5e91b386c9e39e759212ec3a49338fd3e70ed2654deb1d6462da106df0f25d7c91abb8deae5d5945e8a1f88ce0588fffd26c35b6925d5e8971c70f0b636395d938fbe203067d10897bccd8c4166919c67fd970e6558c6ac14d6c615afe5587373962455d193cf11b09a591cc0a1113842bacea297a7fe4d7ec4a037475666a698790c302cfc2af5b05b4f774aa30bf093cf082012e166405bf73dcadb7235e4778a63b3abe2b740119e9f60d941df19f2adab57ccea94559afc823ceb3f6e270d48234fbc32db6e98d65e5e570e4a7b9042fb8dbe41f178c13e7664a9b917e122dd07cbadb1627243b35eefe60256c8e1fc0b7e211", + "2ad474a732af5995325b60479e6bdff4e84fd424e834e6f1c9cf0fc97b76ce7258298de9d211e86c096c22e14355ec43" + }, + { /* i=5485 cDividendBits=3860 cDivisorBits=3143 */ + "083983cfc730addb9826c81c2e5af5d85f70239c3d1dc722bf9b703e3cce6c364d74a93f44684b2f3cc3ac08f976c50f92b42e833216c33487f34d338354a2222f7d10ffe044e9e2f3d36c6c555b02f3eaa4dc9220fb1d8edee5f75770f1f7aaebab3552963ec7bd94f32b93c6e7a8f443abb63082ba89cac9bc9741e884c25a33a5bea8b34cd8fb328f4124ab97e6829cde522f2916130675e7fa341310966432f9fa6da04fdafa1077c4fbdba1861cac1168c928770f6a1abfc47cd1cb2317a97cb1257ab3d96040f46f46cae3bce70814e2b2a44ee250bbd0eb511582ae20671fa741a38bb6f3013c827ce476e5f05b9445b6be275902bb4c8c5a8e4a8d783a579e20a439d24b93db91a586d46da11edad0cf1795c5c86993a202527b877b9ea97dc87579c55b896254b0c5249e9b5956097346ad5cf284d054c5336abdbc4fa36464e1b36e566ef7cf450e5be4978230f547999889ef5a150806bf33ed086b355f2cd64a0929815cb929a834ce4efe36779877d2672e9b53fa48884613245b609c0830b8c69dd4bc00a1d2957f4950d88a1780b1f40c2412906bddd4aa78100f536fc1f069a6eb250eb2ad3b2f7fd5cb52486454f13303e176bbc72d0541a92bf1fedbdcf6cbc39bd959b72823998528f98921ee8fc64fb22f78b32df36ad0cd58", + "164658fcf9c3dbaf3614c2b76d89d16948ea82484b5615f2cd34d7cc11f2cad9481366cca4a1da81224cc2827d00de7fde291e25ac2630795cf3f7b7a876bae5b7c866c214abd834b8eb58e82bb0aeaf44b6393d83e6b858f8ae467b20d84d365b84181a7c164eabd96005a43989a0158991d7bd75ff4d2568d5751fdb8afe5d47736f903973bc6d40743ea996fb2cae270d05e1d930c2f99f3b6b535631cb382b17af0e804e43c284564ebc113dbbbbfaf528dc137e43d2df2b008d665e15fd718c817e394ab4481fc06ff99f7577c56b7a65c2650406cd240efb2a5425f652c69ef133a1bcca764eb3b182bb459d694489f60fbb065242f3618e3ce83d5352b1799da382170bb78016fcfa68b1169690da33b9c35811ab9e822825d27da42b5ef202a7e63d3abd74341b078afad7e94a604d8ea025e0ecab6af3c4550bc4bd62b5af5345f4f642e4b3ed1aabb630594dba07a31ac9c8587e82d69d8fced1b6367656f5091118adb5f94a203280b09a93e4c74b10e8380862c9f9748c742a220224071e670474048d", + "5e86488fee594420cca756f2312dc0a0d3c289fa8486607c5fe009dfdad952138d1a11ec176102e8abb46dc679fbbbf0b1f88341966deb3a9a8d7fc510ddc546aa6922b7ea06c5e3a380c61f2641900623666781012e4004c2fc", + "05cd095f2d4b136b43293f8e338f2fb2c6c66cf6b00303edf3628c2281e413c7f5c1f595528840350734a8e4841f40a7804c53ab20fcddd6d75811056d13c0df2bdea9c0a2180090d20d98672ac20cef58453d862d625b16846582b5b34bd476aa5e9902e49ffa03f63cd812e2647b58038ff35c28033b88742a639036cd39889b812e6d69f01dc4e6df5bab360e59e284910c75222cbb47fafb53bc634992a374777aec6083392dbc78fe926778f3dc4078eaf80a7aa087d5ab763aaf8cc55cfa7e0585bae8734b440cc6fe551cdf2458f9a0cd1322bb3bfd5b5b4ce5eb0ca8f3446a13bdc042331e23a6fcd67f8cda1b3b42081d1780a9b4c52f1eb5ab04c37670f09c016f11af63e2aff1df695e5dd0ed7e5b98a4ed6ff2d87a012827af73cd487ad8fb6014f23dafb15858106408f8afbda50a4bb8d81f727cce3c7e52f8efc0bb1cb5a4cef0f3ec3e284148f73d897c2382fa0fa0391d35fe01deb303e4bbb93a08a386f61040ff5fd74f46a21a320cfde227f7408418c29ea2081ac560101b03bde1caf5788c" + }, + { /* i=5486 cDividendBits=2874 cDivisorBits=2057 */ + "02b43486f31c279590001321bb09f812d990be517d58467d860b156d5ab317f53daefb8e10a53860a1691fe137ef5db46e7e0903176b6aa3f97dd2cf737d72b33bd4619ed0b406990f7d8ba773692375aa90ae27f058a62e8ae3dd4d0a2da66d209c94e436f6aaae4d65a5211239916291ae1b2a55ce81c84f1e0df0621a81ebeeca38271a895d2642a361eb93e4ca3b46938919b0fe6c254c2c03108696dcde2acfd9e4cba55f6f199eeea41d260950e004d5d8cf45be3c7ff5158a5827958bcff97d883dd140c17bd4e520da819a82d5eee295573d25ad828a5f9ddcf288c90109c936aabea4f86e1f2bf4215c3e50da25b8c7794a0a64e8f3e2814fb95030f311818a85c35385bb1eb5b15620068ea9ad8ef64c469da0cb10d4723d37fb72242e442c218e5da161b0365cb739d495869553e68c5255c50c9a8399b1db8cc0390f0ae8378cb7964cc136c087d7f8f46bb9643a8c51644c9083b0aa1f96d03bb50d11a03860930d", + "01949b0329a888034e21f0e657cc1f2f1c5767c57f100405e6e1483084bb0e93add368089ee3d27b42b6985d9fa3b7e64112c43a2344fc89275a9e3bbb62c822c8e27b688f4c13377755baedb31f6090cc59fa09d6c9d88dfe702662318b5d4755c29239ef4fa64a5bd9312f413c9d71ec320a655efc46ed6bf9d774e1e2e320697a1ea23d0a8cc71bd9d77a69958f4229e549ff5e0b845ef6a753a66d2ea323dda12245add7670af68d3a66df34c0a45046d8610058af482baae4db10974547596befb762f42a76be1bacb7a50a961770eb38a7741bdb356dddd9edd1bfec78af05de71af86df8b5cf36cc8311dfd9ab92a3f2d6a0d6408a2d741f152d9dec439ff", + "01b5f7f8a643819826814e22371d8edbd7f34530f61a9600e514d5faf2d8c9c017286734fbacced52a804708fded63e8d728f2b904fbd02e1d8f1baaa9611d788cadb794d0e025aa0822db98a854c8e8035888f23f23b8c2e723ddce6f079d885b86d69bb9bed1", + "ca0da3da7d65990a9b91c27ac388a795a4a5ee7d84ddfeef4bcf9a8dd321a0cbdfca23e9a0c43ab0dcd38d3b1e0582a79136f073ea92a0b4ee124809b051f36660a752c660c46c9dd9a49751cd44341c30619142e53c330e5ed0951e474ca905b6160a9d3771df4ba6f6da1215737207dc59c3e01eba0e144f08696448ea4357be8f6fbd07eb9419591a7a9c831845fd683b770c5648c299ae2ccab71c6dfbad12a1badb6a890f689aa77c793e9ce6cd52025967ef69d6d3802ce1448d2b336b9a90db57b320984afab18ee2468646484dabf4367a965895284e33d3b05198441025f4143a5a947ef479a35cfb6c7acbcc281004cd12d01150f62efa5668daf7de" + }, + { /* i=5487 cDividendBits=978 cDivisorBits=156 */ + "17c8dc238fc28712209aecb899528b220d94ac3405184d8dc68b44e7ddb6590513e94d5ff4803c330fec4890d7878f4bf4778f40285a98854675c23d520012cde48766f2c18650dec72f68ed2e86dbfc3c7c9063cd654042c17a0f75d16dd206ab86ba32b388aed785cc466388b578a47113e179e2ea477b16ab", + "09c5b7f003d4a43c270391eca3d29276c8e0f554", + "026f122a1c96dcce1c50ca91fa4ac75007bda325cf8b6d960c6c64b0e8f278ddb52e2b4ba12e7bfe946c3fec9cfaebea7dcee3b5463d17f25aa04b1711d92c0ebeab6d48353dc684c62e9afd4b206a0da48d4a5bb2d67c49b5b8e536eb6f2062ac8da47cd6ad60", + "0904f5790bebf66771a5705d99435fed291d532b" + }, + { /* i=5488 cDividendBits=2763 cDivisorBits=2548 */ + "06f4ac519b607fab75e98ca4d45af68b725342b1040a2ed2f458e62f266512827fa02c19d3109cebe30759e0004cc70dec17b69feaf894d0336944669dec4c944673ab594e8fbfe90041800a59a4e9c225e2a49e0c78425e1a0074334c136fb98c1ea9492c19a8c25a78466300baadd27010a24e9ac80fbe97b35e79af89989a06a161fd54e271eabbbac4b412273ac359d8611d60430d15ac7d3bc32590cae4cae839afe7d4543971be16fd6190b2a5a133f602ffa8da367416453d5d0c5dbbc0f22928b426ed3a728ce1deccf41fd3948574b741c7e0a5232b912deaf2d49a192e7a1079f8cda358d5d94a5d81766eb06c066fcf5a548fab44ba05294fe925f94ea5f6684e1ec5f944ed68fd164ba2ed0bcd8466dafbeea4c8487ede147d65eb39976d745870497321c885864007858223a18610b8f85794e9819c8b627d0644f0f1763ba82cc83d57dadc92b1d8778a2142e50867eb07857b", + "047ba0b816935699bef4b0cd812338af3aa5da053bf197f169370d785c73edff49ca066892468e77f2726e7914b2a0a4a0b2c76880bb24fcce1e49d23ad8a03e91d5a8bd812de77ab2ffca234cd070ca8f6657781dd9350e2cb982be48bce8f9e1bb99d230ac51580570c3bdc6d717c55f5a7aeb3ef8905913021b7121773693452d313435f806b3f0d928e06f01b32bb93ae329c06f5bb842f568b103812099a547afba7aa345a8a249b77397adbec5d8f0fc3ad9ee9dc9487c8ee62eaa3017f48f813623e6d65f00a9eb649be156e6ebfeee13259fec156c4f5c09c010a19c67c97f418d9b154ebf6d5e3958c15dc071fbe13c908ff9d54d1574d8c3ed276b037c2ba8f3546d27c85126bab983afe41b7ebe9778f598a922b07b7289e8918d32ea0ed75e8492311ca18019bc32f180b48a929eb7573c2032d0f77bca2e81", + "018d367242e9bd46129a7ffdf2e2bfc6fc38d576d46a6d0d77424217", + "04577c134e3d57563622bc243e6c5dc8d722e8e1f3ab2f101e8f830084642a86eb134b9a3ecbd8a898dcfd4c18c3ce6af678383e46a10bc173fe5b683eab5ffcc16d5005c1ee4394e90b02151608d5dc92612aa1e4443fe394b0a34c4874a5291c705402f09610e98d551c316fb9b3523a847b7ffec8d02b76428d7a9855b3aafdba8239e76acae80a1387cb969169bb2b6104efc8f108a4b941d7ab806cfb28ff7bea1fd53f7588c6416d05ce3b16f3ab250d4522b5e80e9d64cba5a28f98758df192a267aab33d06052bc54881c38461234a885ab44fd0102e04d69447b2d3b22066817e25e7703c5895923fab27f37b1f79e5c88538f55133d02913465008bdb0087668e307c5a18bfca026cdd441b060113cf24f84db4e5ccb26ec0f30a2597b5fc4f99a8005b59407d732594aca162f14b263d639e5a044f6b79e15e4" + }, + { /* i=5489 cDividendBits=2225 cDivisorBits=915 */ + "0192319b893d314697a09337dc77991299ef957a89d2c500fcf58d8b959e69272b34308ed62eafd822aab31e3266332493e1cdd633792f51f0054a3c22fec00460777125c2765970716eb0c9fc6d28d6b99acbba36ac34dcae2a08e2d7e92e742acc80e88aa1ad76d987ad20b18f810a954d2718abde3f506b6c3dd9ed790fb79b819360ccb8dc4ff90447af305de87d002570bee61746af8644857f063c76ce967530212180037ddaa92da2cf0eefbe34b2dd28af8f13d9707b2b09ecbee5974c70aaeaa3b278315d8283aff80232d04d62896d16aa3cf5a9c9d899dbe031f79b781d7fdcd5172550a52e1cfcb450a756a1b7a708148365981669e4bacac504596a11524df74c11d1298470fa28203b11f6ab01a86fd1", + "02267c2ab158b692e2b6ffa50617ed3863399f218021c4326edfcd43c58e261ca238b9091ec6a78bfaed05aec2f5bd9a041dbd61540599163bedfc12d101baa4df42ea3ead554b6f0d2e012cfc89531697fd11630140e3fd67a1b131db9793e5a323ae1b98532f80747b6a7f022584bda7e9b7", + "bb09b914ad46dde0be7834cc7ba48ad465f54d3bd23b1a854772ad261e51891c7046966b33d247e0162d8b03fb5bd61a6a12ee9802778ea55a5324dce89ab76cb7c06e6a3b6fcbe7968cb63630ede01ba2b6b19952e3c2688f23d84fd992f29923405e7ce50d43d28abbf1aa3537a16940e5e4424b9e624672f3b7a0cd8bcd7eb99b959cca034f28b971f623a1e8a7b8f5210c7c8e98f39c725b2ad24d30997768d87858", + "87456f9747d9afa33442ac6f9bf34cdd16ce4527592a3b648843f5476cf50cbcf00c8b44bbc3c2f42dd362812310e22ea406568355a276d272bec795d7cb0419fbbba61b2b25a4eaa82204db7e522e9c738a83beda599996b840e0b7f474354a88d1f9bd3f2c4f2431fa9aa698728ffa50e9" + }, + { /* i=5490 cDividendBits=1295 cDivisorBits=241 */ + "70224d7ab3b9bd1ab4707b8f6de75df9614e1905a1de38b31df883ea9c83705feec9de7d34970b14cccc47010039c9ec50b683485c59baf5f605d74acd3005429e9cbb23c66e8e1d28693f0a68b5fa2255f17e568b21c38dc5f2d4063c3a81c61eedd2f6bf724a9cf9c2ca2b373ad4011bf4ba55040427382cb7e00cb4b13e8058e70580e60d88ad54b6265b61ead3ae367bcbad50245587d5c6e0b424ade5b30deb", + "011675a89c047ec449b16865c3d1dd9122cb8037891505c56239c1a95cc596", + "6716f3316b825daa7731bdece23f2ab52d45d67b6dd652657bcf71ca858a480459ac62309e6ea5ab7d65b03300a466c40ba7bdf3d48a7fb3b794f2f7bd581d0c8993117463122d0e1be0a1376668dd344ace7284304b1df1bffcc94b289d16942ecef2fc1b2d38cda6c8cf37cc21bc7c3353086c458aff9983c9e96e58483455f13cd577", + "7838099c36981dc8a2c4bba3e29190fa81f7b1a5114d56090f2f76056731" + }, + { /* i=5491 cDividendBits=422 cDivisorBits=415 */ + "31922f0cf5381d82df78f171161671b09176efb7055572e3847852130e9f204f73281df7d94ce20d9d0b737d3fad04ef69a27c06d6", + "68e3506c8ef0f7fa41d20e2a930d21ba71f35dd4eb31242fe6293fb8411ade2e7881871eecaba6475fef42831a0b61d5721333e2", + "78", + "67a15a12372945909e7acd212849e12c0cdbbb371669ed1094fc34b01a8829aaab66a15a5c6c1c28134c4fcb77af135c297bb4e6" + }, + { /* i=5492 cDividendBits=2969 cDivisorBits=504 */ + "01228edcdbd50fe1bbe1085d976f359797cb7758c29ac4bda2bb693993449f47a4b0bfbebed26a2ae242e23f12f07f022fc51b31dc9e392fe43905d15d6c43624556620961a86347615d1b1213e5e025744b225351145856f9857c3e63127d7bdb3cb657f6cf542ab029d3c30a27e18a896827217b1dfa9678d0c9c8e700d3978c004c067122ffd7483001e8fc597cee86969c2bab41d5babe5c62871e28eb9e14dd64a2210d8d819e34d630643e7e338ffd24605858d89244ca5df0b4cf853ddc7980505090bfa84b4fe5c573bd3e56dbee1f864fa9b5d6ccf3dcafc7643a87be57df0117e182df2ca25d29a0f8f64c4b70db1e21786e767a90cec1111589fc7aa41ed0cf1d98de5cf822127a3d83857be097272e75566e4a83d927c32f58d27c4378eb1390221d1f0b1d0c9dc879bf51ea5be5c7c35cf721b6ab252d0dcd4df8426a506a39f013bcc17b7792a33bf5c6d008e3e3d7f0e7703481698bae8498c2e9a10a3a354673e4457d8c54f33ba6b93bd4de", + "2aaab512f5d7117fab342c5b6347b707c44bac1f0adddc7d71bceec5e07fbe277a959e8ea9834017c5a73a023cd08d6c91f458603b5eaf193db553fbc66405", + "06cf5783e916950f29250e14810ab49d81fd7d7f2b19c9271e3a64cd11b5fbbb9a774b00c04b973af9bd018b93ec9e2ecaddd9fd3cfdc66a8ef9d2eaa74cc1e51c6f8f59a50ace90d409c3cfb68600af00ce7b7fa8c7462b6839708e5aa6a359ee67eaf6015f85185a708f8106ddf17ed7932cdff8327ac0e0e02a6e340cea6f74554a8990f476e306df8b7bff483b13252ae30d306e4a0dbee0fe4369ebd7127e301e0d9641fb0aca297e1d18d3e534c72c045e1b4cd7c6c5e6e2afeb4f1f615a0966c6f5c34cd1d09b03d9eaa7a5de82909a022290e3aac624e9f6877f5c423fe496dfc919f3f8880f9a9749694ef94a24a279e1a5fab57b5368a3192df01c8aa04a35fdf718c7b36c9506dba1f6c470b33002bebe851ec50acfd5f714413348bb12741b1fe9b907fc36db5a8e68dcdd3789ff02", + "0db9080279864d65ebae38628a074dc4564386b2ef810d3277a067c0d404c5a904d595bf5e6547d5f8c7b62685f77115530af06420175a558f283a8a6111d4" + }, + { /* i=5493 cDividendBits=2604 cDivisorBits=2581 */ + "0e98eec8b31ce973e5dbda549d78b0c0aeabf0ef3ae233d9801fdcdddb72abf305492195235e2debdc30a55231b70cf7720ec225a60214513066fd45d27e609f7ed2b828946e64381e9b0db18c37258a0634aeae4ff18072ebb4ae5e845ad1b99ad30f91fbddb1e16c78699cbbc757f15defaab94a64b0abcb5bb37b01ead4ad399267f176b4bda2d6223b0e03005b9f558c1ecb9c27a90ec3cb0cde6025d67a776ef2cb28dcfc738863317fb575d90ae77c1e267fc8a9e92229460b5e7a12ed387f543f464c458d304bb1647569f16369275a021d4f5de60cdd0b063088360611ad90f92f7411fc1b9d7948e126ffe5396b87e4a585fa66bf8e587b60d527ed522ca9adc8f598d6e23341ef242064f58a90b7b2dd4e66627a5ae6d20ffa9d02845e9e8301fb93fe95832f4825cccf9efb1f9fd1e1182c20bd9cb894039d86af1fb0eac4508a", + "082f2ba03ece36f5a8b1cb17454c1388ffb22ae23f2ac7ec11baa2a129f40789f7d783488a0a9305124b59e83ed15109613db4c7313ba28b4f6aa374a423f7abf52ef31b3a642d3929a33d38a05acd31d4b3b55c65b33c165f538dfbcef896e6f616925f098aa6af0daafa970783e3cca6a64a8d0813dcab114fb3fc8a91971183b0fa006cbeffac20cab07984836dfc393ebb5cbe138389aa469b64b6fac148afcd7334fc6e5c9ab23381efddd7b4748be17286773a4dd3ca621b0f7779af7bfcf16203ced87f6a9b935d8553d4b9744c14f438c9d189312c4c34e13d8d3620c05b13a9fa6fd58328401c076b5f18ba5b9c62ccfde6ab5f2add65d77eef994c379a021ed085e6c74502004fdba78f58ce0adb5b4c46192252c037a39b54914256190c579b4d4aa4fe74ecf060ded081f9d15744743b49785bf6927de1fd3d5c8cc3fa", + "01c89998", + "062e90e90507eb7a27388af257cebc6b3ecfafe9aa1dc0a81cc5d63ac3dde234c6812dc5c2ae477b4708a2c4390620288527ed28e97d2bdc3b0c5af480d143747ce8cde31fca6c755c2b63f28eb6b6ddefa2e298e9bcdb97ec83e3cf786ad8a53dd1299771aa88bff26d573fe360865998c973bef06742cff7464abc4c4bd50faa364f4780060b6419bd8de67b4a8868932fe83c3c591cc6c62ec205ae9714c368f02613a91b87177534cb9df86185bd5bad0bb6a4bfe0d10b6559bbae3ca593359761c06298ceeb5c93e0c3231d03814a8edfcb770e1ca0fc20e127aa8954ed4d9519442179c25924d8d20843082d910b9a15a387d992db4e34778e4cad8fd9d82fda29ed8129223584f43c0f325d8224b1a2be6eb284adb3417b007f541d286fb5aa11a12f54de44f0e74d888ca741ee7e5474d03d3f16abd4dba2da3c34c0bf8a1a" + }, + { /* i=5494 cDividendBits=265 cDivisorBits=48 */ + "6b8d339c1c380612aa743917b74e52b4545a0aa2578cbc9dad4a90d87664324e2e", + "9b977b1c0284", + "b0f5402b0c46e36adbd9196bccb596ce1ae3686d4b3cc0963c6083", + "54bdf4fb84a2" + }, + { /* i=5495 cDividendBits=150 cDivisorBits=147 */ + "29461b72366e63d0d0272baf0e744e25c6d268", + "03816ff3ba8efce69d077774cbb76b30ac165e", + "0b", + "02b64bf9324985e810d509aa4d92b30e61dc5e" + }, + { /* i=5496 cDividendBits=2303 cDivisorBits=1552 */ + "5bb31a156540edfc250bdd5f36e95ac3c837545fa4d66e5ad0de3350ebf6eeeea63f9a40a71f68db95d4e3c7540f4627e995c871763ced5e140417592d782f96dd44138dfb4976a5ff1ff476c7a7afb4b92072aae87d66415e24c373ccbf0b4bfee2a224d554c51481a3dd897b67e2eec3628516ba0642257998714b1d0c800e2f2f1f385b0f7cb904959b996fb854ebc9d54501c1e8c668c53f6786bb1436b82dbca3bdf103f5edc1313a7328314aa23f1f7c64242f58b8145890c9c6dbc65b7c30ea672d55a7bd2ed307b5d411479640120c7a5660eacc6ccabfa7f427036f3616d13e486cc55142a995f79855a9ff0d1a99fe689087df3b2d07d5d2b0c472c506ebc2c9fd4e7427cb67a281e68b0c94c478f84fe162cb01a2859e46d74d2e", + "6d811fb16a7ac45f524b6124b29f9c1b0d5784b2375d2ad99877f3af55bc0ab82088184fc1d090381c449be054af625e2a6e4a5187d37ea0c0c27d875209f72a167cca24029afe77a7dc6d39aa10c0e19bdf1c697496911aab6df9408f42bbdf4800a4f26cf9c6cf47d81f00a17d2fddb4ed56bb7f5a68954180340f3993891705fb514ddc7ed71cd2852e35622b753e093a0b6efd18d432a5480c92d2803800171e1379678674283c3fdcfa930fe774521365f9b0fd6402a6750b3bdb4dedaea3f3", + "d6603ad6f4845a2ccb9838fc4b715363f1e436e8941c524f4a4abc540c4296e7bc31732240731ae8cb03d644a5802d53ddf17376ff9bd0b2e67762663fe89800c4ce9c7a4b85da94715cc5a857087ca349b4cfd41f74a744ab7b77b7c663", + "378357bee4a53e4127d024784e9cf5f0e3b4c41fadc3c506671e8c69896966681907f51793a35b9d5dfc0415f94916fd251d623a6c6a1dfea5152e60c52d8dd3be641551bc1198fd3cae7cf17aaf8605fe71dcaed27e92dbac666a1cad7bbf0f25a7f80523b5c070773f2c0db5a12665324e6bbdab8266bf4244eacc73cab79a270a05ab0f83184a60d1abb863b0a8be9863aa219d9b55aa39aa7414a266f527b339fa5b491a4331db638f2b0c14690be4015a24b5829d006f7473b543d821caf435" + }, + { /* i=5497 cDividendBits=9 cDivisorBits=6 */ + "73", + "05", + "17", + "00" + }, + { /* i=5498 cDividendBits=3746 cDivisorBits=3305 */ + "0114cdb246991e8537956705c1b25b3c55876199d268b420c66bffe3c07deb05ca1fb530b46f0b497e2eba6a84bbeb13db07fea871cc0936a79919b84015711c05e1d302cf2c6b4e14ce5b5589c9c4741226296041c9dc56b9fbdfc11dd3c81d594ab62c5f1d07a3df265003800a8897c25887e6f4546820a3d5775dbe0ab3c80daa0de8de00c60a5486407a5d88e1e0751f05ce4a7d561d6b8ad759bfaa55d6f7ae7316f09861020f12d46a3caa4e9db03e5a5922b47c848a8a443f34f17fe764b3c55fc5561eadbc1e547389a548e769f13e7d84696c2df8acdcd1874fc10c41a8a090090f1512844bfab2bc32934511fd458aebc21f5db82f297054982ff5a8e95f4f18161590311273a22df397639f3c734d1e252551e43037a4200d27cc69ea8876b0cf9e5f3f9887e2e5ec89c02d9630aae51bd11f45a935ccf26dfb2382e92dfafc88a518fe5a9dc440a626d417493e64f3f02d67afd368324e33c34481ee32a9e9c972e14f55f6a935378af6010d6493bb6496d2a31e7f96b549eb32c3f084ba252b14f9273a159e543282758ff3197fa95fb7d1e31bd7f45a97d7b68008195f940849a8f47ec529877cdb4d16678fc575fd46618083ae67b50d1500e0accf6ad19c4370fbbc17766ebe3cb0035eb149e1", + "ad1ae37d8b4f8cbc213d3c75aa7e77e4f06ed31cc7fd5f4ff9b73247f5f87a4051f5ac986bd832a0c2b662545c5af352d55cae846b1a17c3a4152fad62169397005b8eb139e17e6c5b576bd8a5dae4035cae17d345d1231aace243bd1f008713a40d14154f6bcdadea5c4b9220d5044494e8c014624ef480978075c46e7ab5f855d530030652fa14ca24b048dafe88a21dd7bad1058bcaa4a9a41fb09529949558815cc9c5bbfdc4193adc1f2a7c8201df592b0b1a78b3fa221a42e10aa21887f403f73b9d0078f462b8995784e7e24d76a6d47907b9818ac1997941a4193459f6acefda4093aba42ebdb38478d9088c2e75a8bed60f6347cba231f208ba28f152a78e3023529892a38f4040849f7599b5e6e470f4d0bb2a05b4320c9ee2b1c2dae1ddd755db09e8b3bc0a18d82c2183822d1612cdc3659267ca5890447f0c892dd88051fd91c4396dbef406cdebd746e1a07a067a1bcff6c62aee5f2b55cccc89779c88c3d9c04cf85e690a25c3b4a859019b50c17ffb5c4f8ab57b533b433bd907462ee50ce2001cdb912d5d312a33a056bbd65355ff80516892090e", + "01995b4d4b86039564e2fc503e2e3840850d2cff8bb57aa6e216f7bc4a1190a71c9c115a5c82648f6619f7ff8f4e90dbceca68b073facc6f", + "a1fd1eac89500d9513f7102a7c208daf478a82c69bc37c848c3b881b4ee767a2d9cee51a7a949c7e8762ea7e3c45a0793cbbbb9a463f6750299d80e7090aa4a5c702450de827ecb81c11228e1d533c087070b8ddd0f65be78d539def8b3d584f54bb7392c068839245f49bd86431f3c98fdc1deaefd4fecff4156b359183a62e49fb0327d53f75aa385c94b485dd7d830cc4a66b06023be6fcf6c7a220f6fb65c66bdface0897e9043fef224bb612514254102282f481e50725aa261ed08205e687d01a81a21126aebcce9c5032e2f6b5cd630bbd1a6621847d0f449e75431e319fe7e5a8e29704542dfd3a73c28258a493ad63247fc34fdecaebf66362dad60ee30433ec06f9eb4e5913b908805af4193c05151e198c60b9afd019884da7d6d363b6945a6bcd876503d026505b1175786ce7d9392792526500b0eea710de272e5a00f557a56bf7952c68fbdec63f290eb11a1a7ab4b25fa007ac9510712d9572cd51c070f8e9e0a3146ac2220db7036f23526331e1ffeaea20fb670fe20726e08db5a9661f4de8bbbf87fdbd0b8940493d8626dab57998b14867c34cf" + }, + { /* i=5499 cDividendBits=1068 cDivisorBits=219 */ + "ffaad38de1100c5a41eed81616b5b7569be35273ae2e3a7b0c91d4ce1808e78c3eced7916a0055014658e1934aa54e6919199b8f70c87b50136cd83c4e155774ac5cbf3d6f27ea0ec1767405f1d40ac6a08a50e350f464dcfacdab9f36ef67594d76c2341cbf40de5adf03480e149259de6395f248c00933773dc037bd30e2c49e837110be", + "07cda0ab57d47b84d9c51abdfcbfb3e88e13021fcf8c1e72123d0aed", + "20c3a7b8198be49ddcba761f4214f4c92316b402ba725699e8518bd2d30c66240b90f6bf91cd187e472c74f676c2ad34d6751fe7d809cb70644b28387de29d0561da5bf5a019e705e7210660466a6ab04269e7a33c1b95e86a13b573c76f6d8c16c773487c0099cd066c", + "24d167c598e329851e62870c7c97e22924f7e9afdd5da7fea5e6c2" + }, + { /* i=5500 cDividendBits=750 cDivisorBits=171 */ + "0186826467df00791d807ea6d398a43eff4ca783247f88de1b34670949292728e131a1083a8af492e9f5a800fc9ead51dbea18d07c3cddf36f84b963813ea9180177a72fd24b0826ed332cc5d50ba8049ee87571c2bc2701ddeb78d4f3f0", + "058339bc8ec6e233677421b23fad6c6f265810965b5e", + "46d6e3f28997956b1ae7d02a5b61257c014f6839dcacc2fe160f83c40b911b039f007458c622840fdf52a6bec4c10cc3cca8ae5f2df4be517f3f3319f4ecf487a45ed63a47f1bd44", + "04987daa609dcd616b48028569368db61218f9f248f8" + }, + { /* i=5501 cDividendBits=510 cDivisorBits=122 */ + "24081183808114fd2093d35ae1f686ab13bdc58785e204f022827dcefb2032dad82d18e58b6bd3ea605bc44a278334b5b9c409c5073771db5757c95ac3d5756a", + "015a823f9bb963b8bf77974d574764", + "1a9eb930fc0f691a25c41f4458f736be94495cf977bd21adafe8003248a7010780653f07ba38974af47acd926a38ac72821a", + "e807358deb939624b4019c2f6d42" + }, + { /* i=5502 cDividendBits=2272 cDivisorBits=591 */ + "a5b1ffeaa4e97308db6f4f8ca5e7053d6e03d62490d085131c71c4246320b7974823b0c2187fca73118af1602aac919306b14b98123968a4be5f3ec7f11b0e60db5eb05a3d8831b39afe9f9047779a669b5ae7dd41738aab0b52c2e64f04ed6048e54d9464a2e98a3a1e180e28865643171e59bfcdca63db4ca8c82c2374b062c36cef4cafc365945c51775031b802bde5564d9c1802e2a07f5d37dccb62320685d5353b36df08e61bfbe7fb816a0a092b4a7b1881e2153ee4886d47c07d889d2366d426fb0628672c00ccda1042f6fc8d0c914d15cdd9a10c70156b66e3779196cd3d776393c4d4825d72bd35f335398e05457ee77e6036b6d33d3a753d1a83cc1270d90beec307f8627c018604d2bdb62a3ecad50387ce5fc3b2f4", + "6ed2f470c20baba9ec33bf030f39cae6c5031c67600b83e1e83367be740caa8309643325ff8091d203d52bb9ae993f13b243ed23a89966da5917af9095f51668e08c00ab8da249d420be", + "017ec039a1e64a3ab48b5dd00236fd7aee54bbf8d53d7b7f63c171551a2cbb690b2436e028f458bfb35a1a7a9324a9f939e30c27a2e1b7d0a67367059bc26ed4d75028705d675d57014ff4855ec41e0b97d59a3e819e088cef8a7aa84fb77e621db1caf2dc05ff815c3766eccc0d2af1b7538d8c07e8a9e0e4d1914e23620592150f1c27e6aff95f4313c8323a622c13c3b8de58a195a76066a16b2e17cf7c7bcc5dcc46a84104e587c7d4695cada0ecbf32c18f4880afd4e656623a8d4e7dcd6ad2ed21616386f0afe38daf0aab9d95d9f6db", + "50fde0ceb53a8c79aa3349f7d748cc1b6e38e83283bdaaf56e3b55536a306674788740649d281bdbe6599d1b90977151c32bcd9c8691c649cb925447981c313a885dc23b60a308c71c6a" + }, + { /* i=5503 cDividendBits=2192 cDivisorBits=485 */ + "1eb04c6d4404a64cdb7a2bf966285a377c07637a3723c32148af6a008279e563aa58157905ad5c0f6ad926dc63029c0ca4f72778374cc63449dcc0a7c398aef423c312463234adc757f09fd52681f704b8ca2ff17bc2859c8b84612e7e6e6897f3ec57cee37f09b5da4a7ccbb18dcf36487bc73d9b6f23df4b32ce0bed575d2cd94acbb0641c69341b052a566de1d10998b30d332d4356f02b62507d8b947d84e482dd3960cc5b0c0005d70dd298ab2a671bf7c39735c1af19e52123b16f7a48feb006ed923ea16fcae74797b09d5079a68bf91dccf83140121d6e3b65cccd959621dc22eb3f1e2b116b00567e4265fb2392895663fed3b17dc5258fafa4a1807fc86ae1790e5ffb2612c11abbdcda78bbdd", + "114e2c8ce88c043ad8f44e9a8d0d481af57f8c16849345528c6bdc2244f3318b84aa875e1d49cfa9ff9beb3ae3477fa2e5f9b1f484c3dbfb9800b83f1a", + "01c5faff3480132892a541a9bcafa0a6d4fcf54b8e86820ebca87ee01cbabd8f182612db69785c7e2401ff21747e41f67b228e8264beba1e18e32d92ef3d0c7318d3e9a7c7aa93ed21879ff7982f55640905fac2dd5b976ce311620e27ea02167d4ca4098e1041759f4bcf8c59aa4198f1a32790d59600d77d09e842aeda09a18f04e40213b54cb319cbb1670975f394880ce24557a44bd09d2007392aabdc097615d6c87d0969bf23c3a2a128c05018472a9487198c0208f59972e35ebea3f922e947c7e09b3daa50f7246cece6a0e68cd74e02c0c4", + "03b92b9e6f12a36a4692c40955df87fab07647af7bfc7179363a8a92886f9879eaf74f1c98c4f0ad1b0be8251444ae4a66c299ebc539f8bf71b3e0ebf5" + }, + { /* i=5504 cDividendBits=3533 cDivisorBits=2959 */ + "1a0e6bad56f7eaa132db9ca6182daa147fe8e763c1e729e6f76dbdd933e2622663a0011380b1a33345e778bf48a1ec21f81d304d34c20dea0ea19454a5db1b609cf3205c8351bf6e3003ec781c7914c89d0e2896f65c319847b5385e55167c135892ed3068bdb04890ce738d1ee35890cf937178f46b567922e1a3618f074556c4efec41cc60c3039c9dbd3b49c278492414778eab64ecbec032ae26733b4909a7d3101cf71322faaffa9dd9fb38792a9d5961c28fa32d8cdb4e51578214de16dec9a4dc393fb61959541ca3d5220922853edcc091604bf09af79465a4572775a86aa35bf5e35f4e15453b65d74769b729b6ce263c88aafa6b47a00209d887696123571cc7864c5983f4982ab2a6cb1d2def1b28dbccde85560158b6bc4f2f25461c51be4533d4467b0c6398537508ac9378d82e20e8457a4a33c0718403617571ee372c5cfdea8c065f626bee61c7243a203b089f9a3adcf32775307fcf9390e0aedf57208d9897103e90057b96d5f62ecbd5c5167f2e1a4509e727dab208e3d7f4a5964dbd93aa732ce542c08fb1776d3e259f774fb5077014fe14165822a659fd13ffaf850c025125993133c17713485a46b0fcf53d6ef6fe", + "4113c60e2735636dba7aee1e2d1d6b2fced5f2bed9bcb5e6eb60ea4b04ba6151ae1128945f855c60cbae0a6e66b2d909c8b1006f26cd52484da6b6e18400c319ab886cc545b98a26e86e9516769d68c7843477c44eacd595f8314ff49f770680d0d41897a1a8d827f93820fdafe683325d437784c2c1525b9aec54a0dd80e2836d1000e04d1873eebdc24cc8e76413b79f241062e043b150591606fad9e171b2d153373af7fe66cce659cab18c353766b91fca6c4ff865ccec32a19c1f038b4f1bb69c12afe156659008356330c02c303ed08b878fea0c0a1df5fd830f9789b83cdd8999b677bb7ad98e109018811602e9581dcc2a151482f182293cc635ddef8e6daa9816abe411e47d94ec8dcd909f64244c812ae5f95208ac247bafbade09488870252c285b5899fd7dc45e5a25acc036a55f5cffd2ad15abf4eaf8d12b7a88db943910ac277b4bdf57a91fffcca033754f222b86f26aa875ec283f4c7e34b6fe0047ca49dfe058269f57e04e57954925", + "66800373d0c01e7e8a3294c3d017854722aaaad806848b5acf43879c4e733aadbb0a9ae8522b48e643f646dd0078932026459beef2dc511f3964a1436fcbf80481e5b95e1a21d7a7", + "0a4479cab499b015054565ffec330dfdf67507ba4089f795bc1cb3c9f6ea727f9586e70c93c500f30042ab707b29f2e6114211c501d21bd45e63ba697daaf38d129442e4f55ef679659b22a51e531b60540cf5d899c03ae64ac93b23cf7ceabfaf32ea9ecb0074c6b801b64a48db0b78ca9b818ddcb61dc58153e413eb93ab9c30e3a54a4f86a828b36dff4554330c6a7f4748efaa2c76b3a3a094956944fe0798e7e6ebd45c90025539428639a4e8a5600444557c24bb737dcd95ae8e9db434b053bd5e5d418aea8ef7f04aae9866f57f90f8b37e03110a5509d9f7ec459c99afbca8a871de3614ee1210bee6aaa22fd225ce2b53327a0bad7f248d1f0fd32f9e52f8c2ad62f86430224d637b0d18de2f1f62ffc1b4cdfc157c080f6c287c61dc256038ce2f8e8f0f0ebe74c029b799d1fab9c7412e073bead2dd13cc4f57c125ed6dcbfbbdc5b5e2d349ed39f29de9e90b1592e8630b01cef285b6e9d8b5eb13d3d2fe76da8c6c57308a37d2098ad92cdb" + }, + { /* i=5505 cDividendBits=3365 cDivisorBits=196 */ + "097009bb65525fd8f0eea151bc10ec69e53b61a07f66c1896e24e579f1ed04f93c0fd883958a5e3140698a1422323fc9615a083eb39fef7e05f632dc97080f27c98177307b847d7364c8cbd6d61da03e1bf8515eeaf12e00f7ec739118d57823d89a5cff690bd601d29a2377b4efe1f53ef0e7f03f91915b07ed1ae5ea2877ef5699bebf5e5a66f63d3cbc743d79ea2cdad104dca6ab8477e5b3d2c538b92a68370fefa9b9fc56fd81b2afcf07bc2cd4288ef743aeb10ab5c528383c755a1a16627cabf7785a09bcd966357f87a0c48fe6bd50eafcdd90d97147ab51ef7d1bf273970f81f6df1464d9061348b7e4282813e7f6bc512d0c568dd4f7217ebc8fa40d1ddd3089868b1f126343a9114fb50f7f08cf7ce075d987cd587fbe374e9e242fddb66e02f3486f34d6e8d68312b77ca2c741669c9bca1a51292646ba244e5ab2a766d5fad6e790225912aa5af7318009937993445ac7a792805a622da24b8ca41b4f4c95c4f4beccb77634388e85b7a2d585ea9a8f4e9b6acbcb29c4cbbb342787e8263ee77e8eeaadc5043ea3fd41fad0f09aa7894943c1cff4cdcdebd0e0ab75c0aeaf", + "0eea07e2dc385dba26cc964e71045ce66eaed1048e4eaee78a", + "a1fefa1733a3ef7df536c2bbf350ad834e8e84e223b38a78442cb4114350a270b50507f588bceb29302eeda862f7939081f508a7ea1af43b4bba9e8fb3dad289727e9833104d0b610d8791c308d69d1d7192dd699ca96380605733c7acfb7a649b3fd674b7521fbe4b0526b2dc07a5e34549731a50eb32e4f9ff9b6d44cf19c986c06bcaeadc4e11800676482b8374a57779033545791a64cb958e2bcb3b5b3f7d79320596d106148a85890b67fab240e9ae1edf671ba39e45784f27229fb490c9b9ddf3a13bec098ea8e66fee41d3678982fcdb8fa09249932db2be0ca1e5473630d788520a2dd05b2b29b0a9fd2a18d6d695de716089475adcf3f8ad551bfba8a9eb557653a3f8913e82c98da0766bed14371e8bced9be75cb60c7622018d3131501f81800e6ff8a16af74f951fd988d6b20a0be216328d87d00167d1ddd657eb575f463112525762edfba17558ff3f1d61997f7f1ee48b4926dc976e31444eac493f67845252dcf9da75666ab0fa99fd8cea423a30927beaf5cb7f9a60f9dbf12641edc495bf21c3ee775", + "098b6723ce9e7642ea932255152497bcd5941c447e8177569d" + }, + { /* i=5506 cDividendBits=3881 cDivisorBits=504 */ + "f61f57fd36048eeb78be4980322f1c80daf759f7690c70615c5e1749b21c42ef71162b15cbee8836bc4c27d8b3c6b43ba9a69a103cf72c720bb7adffe2a70d1df1b50076b40156701c1d51a136ca0d4f68c9f043127d59d50dfab636d6be74c8845a7839a0c80ce475913bf8c712730c2df5ff430f11cbe2e228278be95591b7be81bb328a2f6d4c6ccaad8e515aed71f8431216ed1e938bbe22d6e22b20a8e9734c18599b59bb8eec2fa8a882f367173b27bf603b47ea548310ed68ef1d89c6ab459a465892ccf48db0ec58ff5d2ad2263bdee059c57036bf0afeace6f245c6f2e2790454e9e387e274b28961a0f7bea034bc8d7ff2062c40c52779426d7cb61d300135a76ea9ad17521fa887a2ef55f092908feecb60919dfda20dd78634a927761f153f5a71d110edd0394fae5797330e4a0b6fd652f249b455020ffb3e84b883d4e9867b9bfc75a22910208cb969ba507b85ddb9db9706c772897cb2d24d6230b05a5900df6d96ab18e948e10006344f8dddc05c59746a56907c374ba2cc7bcc0aebd434fb784658a9bdd24680ae70e54ebc08af271745513a227a220616bf990146a79b673118888eec50e961469acc8f57c48166f17304f1fd8c40ce5bb69a9ac40c78cb70286a07df1137938ca26b02f319364ea926e8849571f350b8e06137590c", + "f157e574720d5bfd4128063d14ea2d89c4276c221deba4e675084de05c6ccdb93168fac489d91e9ef0805c29a135e95b28f2165b9df21c8c11bafa5a8d051e", + "010511bf290614df071d5ac7144f62b869824f60e460bdf0a10c2eb148580a99386f4bdd3435d2a0d20b5b6d03ee6c62aad4a8118efdea34d8b49c7216decbcaf20ed0d73b03928b101cf9398cf8aecb7ebeb804f0b183f78434f4a4e093f7656d226ef46f1df83f58eee3b1b0a74fab0c81362ad3bbdeb994ef0095efbb07bc41ec5879d9fe566c3cd633bc20a786c5ab62937e398918524da24bd9bfc37a819d6edafe55167b14b5b1a0a1fa13687b0d9a61fb17d91595545f9dfc5e6b2777e01940b65dbb7426710472c4aaebf4388208ef3f8643efe429a32a714a99e63cd63b5c8e982618c1601abf24f56f01de1059acf2da9cfa969d47caf994da9073ae317e5389bec568db4170c639613f0294bb6975c4b135d88f4b56286f6e3c8de1fe62c3dca331972812aff7c5ce5c2186e81cfdb974bd7b174feda4e136a39e4078e9c9a9982d7571723861531dfdc67f840281dd2e3637b30ec5d4aac78cda4a4093c16b53da86245d18e272fc58b7e2da2dbde183aec1eddb81f0a1951533408f9a5fbc0e7045f7ac53874516cb37c0b5ab61cf3919af653c607c30f6fbafaa37442aa6f323", + "b34a8df55f1da0a9855d15a859d06229518a2f1449d4314771f6647cd7b78a4be1ef015d9df79852d26b143d228fbb71ee4e13acc6d1e665bbdc71e6a02bf2" + }, + { /* i=5507 cDividendBits=2112 cDivisorBits=160 */ + "ec1fe9526f4494aa3b3f34cdf8ad2eeac5266b37378bd526d0ba9c0b2c44859c5b6597ace7d16182e2118b6ca4ef34351d89f602e3aa6c4dde18924fc848d340dcb3951b517995108516f04102656c95929e44fbb94fd5aff711409718ec6061829748b51e4cd6f74b31aa20654a7f7b2058eb379881a961b1a44f05798e5c2120588c94c90e69fe50d420aff53aa63b8a78d28500231cb77d27db6603913896d571f6f4bbeef687c3c997a4705af291a7e99dd4c0f8cc3fcc163fcef22c4d0c6177c7b2195a57ce1ca6ab341e9e32b4898c921c60d3ea025c654cd1e91a1c6322d1a0ff0bd9f856f155e0535847704de2035443843396e1e9e975eb00b5640f4b298195dad497", + "daea12928aac651d42f7f8479de070d9e4ee3522", + "011420382d833f7aabb9a0e2428ef7fbdaf97d6f3b5f6e7927defce3764c0af314204ebbdf663041325f1aac6539163c404a0545d5349e88264e40638871b3f19e938c9a0ac77deb2d8f0961b7cd067c4f9097067d40bab31eff1e526a36e2a5234ec34d612931103ba7d7764de6dbf9fa806d542550193abdce816d859f3fc8bbfd5cb23a759efc4fa5c3f69285ddb5892613228237b690babe4943072fcd66b311bf4bfc9c0a0526617a4e4d7e6e9b31ccf8c6f334b25bdd2f292783d34e06b256eadee01ed3176bde360471e99424ecce1e2c975017524bf538ead3305a95c419cda1a0c074b5149d0d9c7fa920a73cc98e0a", + "4fe60766be03bbff8cb97642a9b66758d361e543" + }, + { /* i=5508 cDividendBits=1714 cDivisorBits=1567 */ + "9cd32e83e1c18e7b4d9f7983a6612fe9b13a2084f4f38668564580dba14c099f7023d5b6d1dd6a994211ba1dfecf5f59e566c42a3e4937c65081aa047fd0c1d2a6363d04fb0a800c404e165fbf61f82985e50056ace5a3093f1e65aba780cf8dca89c6364fd01d35d2cf7e7d7cb244f2472880e17f7c8c7ed21d9411e888113af0def347900152e93b81e280e7192d4678af5ae4f76079eedee2af262c5f84ca1818e56e1aaaf6ae9cf2dbe508821cbad3611466e7c668920fb548792d253eeb27f96b9a4486b2b18d7f1759c884e5c77126a8205257", + "25031b57449c49311017ba99aba1d1097e50e3fd3d12ba31ad96b09d3de961e27b39d55edbe2b3a3a318b112274586725f1450a7902d6b16fd4f67781de70d8e2f6f2cb8f2234558b6dd8c38c1e5bdee62f4083a85159e2f9685afed0c56e6b508cd7a13861566f2cc54a04917d7cd7f8258d70167f5882ef296edc4a6b79a1b133ea88d4b6d9a3818b54618db348043099057924218f9656456d2eb142967ba09fad0a1f6d9cd9ffcde577e7b1c417290b380105a0c9aeedb9dad36f86c29c8f65a4553", + "043cb403ddff05ae8d7b91878bc5bef50b3d19", + "182175594f4665235f95f094d932582acb63f4ebe97401f1c02755b76d1e5cb61c1f8fa7d27d5c32dedf13d28266b881966c6078428b7ec89c221d440f53c5f18c088cd9aad8764f17b22f6da01b98a05c12281548b7a170de731331edc0606952126c25bd0f9442c494edd0ca99c9f9c78f5c7ee086d9d69115f7d5570e7347d4bce39495625d6fedb22d2895f7533fc02c8138469b458c7babbd7892555bf31ec09153306e5927f0b9b25167a471d35acdf48871fe16e93df4690206722cffad39c63c" + }, + { /* i=5509 cDividendBits=2585 cDivisorBits=380 */ + "ae62e4f409f7c302b5767f02a5787868aee03dd99ba2acfa567895805fad24400e1011602f30cfd8c5230a1ecbe9ab97011c1bc65901a468049c785387fc2a4cc6137a966c9792e9e4acf937f5c9cd6ff3de6392c9579927dd1b8be292e0162f32b81ada8914064399b782c1e2e0a486f91737dec9247fc33d0a877bf4192d0ce542caf51e5f4dec0df276d49af5640e8dbece390a65ef217df2ca34e06f5c164180099ef1a04393a3b4f90248cd95971dd75de598fcc3b6d590edcc0a6c52448e82488980e6d22b90d7f275ea2a80b6905586f0c2ca3f7ee88ec9ff7be8e257e44ac97ffafe7f377738475b4e72952f3d142a3c16f8ade8a30ba33abe8e6ab6dea55f327ea31df2a598cd45c4f1bc8ec5c9d316f85a3cac0e8548caccdbd28a055ae089e03aa48716ffc31fa59e5bea6d407b2b9e967efa6432eca5f0b4033b679fbc", + "0782214bb39daca6096ffd014574ae3826af6ce09c0784d26dfc17cf92e1ee96ace930e24d84987ac779b42705057be5", + "1739ca24102afa3a1ccbee3e753486ab15316d8e56a04d4fff8256e224a17a371c09eeee1302a1f18c4d5ff1fde0cfba83f005afadcb14c04b40036baca57a448a084dae6edaa3450e7b8b1f3abd4518521fe854c9ff36ffbc3a0d5776f94a475afd51ee7a05b3c31288abb5435a8a7d4bebe059c71b54a6fbb5683ce25a3fb91bc7d90bd3b3dacebb338036fe2c2331141c75600fc6ea1a50906e877f3b86a96b3b7a6770699b7afcaa8d5a935283995d772f66db37be52eb9136a317c0924ce9dd2dfe22d4171e8b461d40599a42086947202bde3c77161d0c8a6c78b01d6765590791dc25626a65cbee4d1ce0381430afcaf5d3b3f2f83caa496a941b26762a0495f96b27f595863eb74089f6ae39eaa4207c", + "029d2746f30ad101988b9dde1b7ee310c78d5e44cbcf7d13bcfd585a9ae2d4c8cce541c8c3fde4f5496619bc6c8efcd0" + }, + { /* i=5510 cDividendBits=571 cDivisorBits=159 */ + "013559cdefa6707eb738731d9da51c8389003f3410b423e98ad0c49451744d610ff3031a693e92a20a7754233d158e4316d93978d8be7f093de70ea916b96c5a5da61912e8b3085c", + "15931a01e93a98d9b3181842a0a09c9baf36c78b", + "0e56b192fdaa4fb68069188f2a53f414fff126d427af1a3b265e9a3e309f19210b52c301279a11c787f5808a56c6b27e13874bd9", + "04890a4da468d79a359765b5a84e69a9cb812a89" + }, + { /* i=5511 cDividendBits=3550 cDivisorBits=1576 */ + "1fd5304805addbf1f7101720e6114ed2d5e8b053eb69496e0c1fc6ed611d21ead8d4ce5271b95dd265eb0a7d35cda1db91d875ca437622fbaa6afa5dda94caec5db80adec83f74a2158bb06cd0dc5923166b5dc3e9ff83dfe916e4de4a1a3a62e7b67c7aeb1521c4a4b5d6be13f41adc0ca06bfe0ccce24af1de0c86e700ef38f3fe1ece8b16a346e939d3ab4903343bafbaba5f9edff97d9069ef59399f426ba33610442f88bddf8569511e8aeb3c56b5ad88470524f39515c6bc2b4579a34f1c5c848f68adb1c14fc58468f9eb9529146f79b9df9417ad9719d32d4d4eb2e5051b189c01feecdbd3d67826d42c0fa8f72660f9f8cac00d1e203529adb1f874ce0dcfa0f18d08f891499bc685dd26fca8a29c6fd181892231945bb00840b79d4745c4c89bbc7a1d866179a7afcb47c8efba2b0e6f59f4459a228b69edc13f7f124b61103e2eea5b8410f91f91477e8124f22e0e8b1a0e36a4ef3e0595bea24175d208dc488b24e19a9dfe49d0c5bd945895e01aaa9cf1ddbf7151a3bf2ed011cbc9f5b77c05279fb6a52086f373d0a3ef574fd6e8f6e46623ab6124904e148b4e6dabf404eeb90da8037fa0ac3336744448b506387deebd76b49d9f", + "3a2d68801d2c8b9e3fb99b7c9529d66b822b3000c218edaf3de94f87b89f3ccfd6d8baffddc4b007dfafe24963f8a7f145434f8abc5691933d4bf641c4ea2afa1c7c6efa2cab6f61851a79bab4bb995b5300980949aaf7879d79b746b64208ce21d64939710df9fc418df8a8eb71c69262bb766cdcf95d8144fdfb2e7ea4b4fbf08425ac94ad31ea4e50b95a61e9050d0238e3b04ca53fed0dc569ace36dd6e0afa1fd1994299278b6f34aef36c00b195b3ea4e474fc0dfdc9bd09f9fe202c91bbf73737e3", + "8c132af5564f6d00ee0f97f47f08588c12857e057ccb571f279b8840f0d018cb19595c4cb76c02df9be5a7e51cd6f0c8b0aa1e3d3c21292484e5e321f094db7958279e2ee5aa41fdda79a5982ed0c31e2466fe097888cd00bb25eac3a415684c7f0d0817c6e38be4ddbd455dcf7ac5857db0547d87c9391ba10457a4394c9e91be6d1b85cc309b17094ab418276ca4e052962b7a855ea61f357c0bc8afa299dce3d4f092f4bd0b8de6af78ec40a6a6bed5099127af022d98be223e2027635bc843b4fcd5231f0833661bfd10d8d97e60ff4d390a426a7e30eb6837e39c33eeea62025c104ca66fa69c8638dc750a153d99ba6183475c82", + "291bbbd67afa41c6ebf255a0dfad74709fa8cc6e0509009d30e51fca63e6ed0679f863f810fc2ea6b106411d76658e94be9f7ff6d3b080def4a4e552a3722610c4698821a10f10db69a2f6f3f38f8f16b2fbd1690bb6b70d27bb33599af05d2f0368a70280eaed1cd0cc4d85bab4a9011a5865485ef74c35fd7d77d0bbbea8d2b58f4d0ece0c81bb2d48bb8cbf59cd8fdad937daf8eaea60f95bcc82879f66c08da973c038cd12435c1127fcac86a51c95919db2066fe04f5acaf48db2faa773856b9fa859" + }, + { /* i=5512 cDividendBits=2863 cDivisorBits=1629 */ + "1eb58c8a9ef3d8da790b7c878a37c61e9f021b060b274e227cb5e681122acd80edf5d3ccf31bfdde414b2d3d578da132b57581fe0250cfd2521b06f3a13b3ff394e7bbbcf71dbd38e5220fda02df1f5af7062c642f0a343ee951347c60f31170eee11b23091aca9c6ee69091bc2481bc8834eb4dd256d77e0bef62ed9b3a026f2172977989599765cb16ea05635814c4137b1ecce70f0892457f57c809b4b877c79a87b33067c1c1e615f077dca4daf7da4f8a02a6a40e096b8beb306ec7c36b37046732ca9cd583dc45c2665c9fe7deb3b654ba7e2e85708ce6b497fb76e24c7a267d726a1d90dbda8db3091b01a5056132471b4b034173a45fd7dfc2df79b40e7fdaa81398faa606c52f2cdd4b7a1ec6bcd24947e1ee703af17f9f71cbbfe5996ff8226c78845fca55a3eb730d03e702a092f661d1422d622778410b5c53620074095bc3fa0ca68994c506842606628d7ac60b013bd1b1a25885483368f34cf2e1d2d33045", + "14104c77e48a8a8d6ce1b76da8f636b773eb8139f98d28337571b58eca02ffe2c9611b444ca37d4822f918b651cf3895c34ebe75e69a1b1231e749933fc0ffe3f46695fcd8870b1cd9946339169567370c4673b495bd54d5698e98d7952e98713a322b8f1cb74d16bd5157fd8fa7879f324335a0a4c7273b9677267693a6a6cce80dac8d44d4efefdd45168bef84155e43af3c63bbc201f156bc3817ece18d5a5091402220548389c467c4b47f49cf52903295a0206ab2879f42cb0b09dfdfc3f792a7acddb5ed18f08ac44b", + "0187d482cae48f87becc51ce7c2fd79345f166958e0a8ffba8c50e95e890552de9246136ce222f50df873544528ce6229229d1dc8a5f47db3fa01da02ef3096fc666ba76e860e80c205337b7e4e5658651c6299d45699a9147f6281fe189677a89cafad90fb1773d8efa7c20949740c81f9ab4a98403a3ef06339c73d77c5e8de5ac5e82c77a7af7bb637078f953d0b4b9a3686b21a13f9338dc55", + "112ba0d49993c50f306c15ff284103525a176e9d1be8c4f6224577f36a41bfd0efde27bfa5165178538ac2be3e036ef36d5d3c43923a38595c28048e90d90bffa4aa8ae25502fd0f46ab000bd1419fe5a1c110c1a49a4773136e09adb6eb888b6395083578f86cda061588d0524fbb6f207676a90eadd6a13baf76c013a6e6a9de123bd87a4f3bfa41ffd2a9b52941d1536cd037ba8e77727b2120470ddaec56212815f3d0c916d0aa4f71a3e5b9f4f30ba0c000bb779a160278ec155a2c8e1ab82c77b8b04b045bb2a78f5e" + }, + { /* i=5513 cDividendBits=2647 cDivisorBits=839 */ + "68626075a4a0f104fb7efd35fdcd4870484d2875196a64b2245b99a9c84cb04f1158a9771322b6f2a3be3bc10f49a04479b4d0385c137058ced73c48b61edb39e2d34ed99036974f3665c94ebd393499a32c7415859a9f1cad7027da82fac4faaa0c990e5adec333a80e1f3caad1c972ac581cc250673e3d5a79a5d92f8fdf01f8151047299684c48ac51a40daf0a0c25c4e5daf66dae5149b5c6b3b2fc66137684c2660e7ecc551f9a1e8cadf8e165e2839896e4ae3fc9d99f61614d0a21d47851e14d5a4ad148360123a3fb7b5436b430848719552e4ca814a371c5605a37d3dff92937671c0d428dba02defba28454320097bae5e953f8a80d8c2b55aa60cbc0e9cc0816cbe7a9871b74d056ef916e41b118bee3658bd03ca875f13b968e6fba8712ff3c9ada21d85de2bab4c99d674a0f15adfc8e0bcfa04e64a7686890c470f680de4ed23ca3837a2", + "6605550bf0a95923132250b0569d4b9ce6e6957d3f3bbd2f65f25a07c069d57b6908bb9a6985dd585536f403f112f8fbd5e68d333f80de9d3b3696d2993a5119170a62dd68a0bb67a00a09236dc10cc14c610415537684002236ef7f9f2434bed425ceb3f48636e7e5", + "0105ee3bb51b16d6350dca844019c1c941f0c9f5fcac885a9ac7571e666be11acedcf3694bf03fdb8d296b7d98f13ba1edda2ae551dc4f48b010014cdf2bc80f17c271fc1132dd0c9d86dc831dc37e98ef92ad3a4ac8356669336a0507bf099a20254eedbb6d05231494f557e6b378a515e932cc1276bbbde9f5e6c9825a49972beeaba48d57dd217d1415752b5f3c8b70f5a3316f18ef4eedcc92647429997d38182caf23df6336140ce93208857141ae2cb3769e6c6e13526b926b7bfec52be0d16e054d779e3f35482f0851d862557ae53887be1635c2c6e48a2d8fc0f13a74d5c9", + "510d0809738c541f1e93ab82e50b2d4cd92f0a26898075ec1c57147ab30237c4f1eeebc95fb5a204c9ee32b1fc5f95f8d9a3bdbeca9c8bbef3d65846a2131eac0176ce14398b256268fbe1deb04f777f326fb1d2f8769c305822347432ee685e362022de7ac4669bd5" + }, + { /* i=5514 cDividendBits=2234 cDivisorBits=202 */ + "0211799f9580f060b0323753c28bd6ccf2965209125eb5af3f6f754bbb4872d17c780a74ebdef76fa21106d11c80f55e1bd403255a7d10614de47d3fcd4e8d94f4495cf4865267252d0d270de595df4728aaf68a54264f1d9eeaa6c884b4b2f849c696d4c9c8a4ffd10780b9f4f03a1086b2b8f82a4530f05e94a91b07a1751b96b439aaebee23b3b25d80ef5b08afaf8a591107bebf2f0f54c6c93f1ec9dad1fcec87caaf2dbbb02b93b6db309ccac8ac0cb6273f6a7f80a1a9e6ab5e14bdc60d16a623ab9905888fa889e9733b664a300b2411c604295ffe2663295590fcd8b13fc32d51fe990fee6549006e4557cd552bc537f4111b38fc587ee5761485412f318772e0a44e6e0bc0b463cd5ea9fbab3c173c0cb1da8c", + "02a90673a3fd6a3e7bd586cdb7ee7fce7db8fa6e3050e0c1d3db", + "c7081f62593892df54cbd0fdd591b70740b7b98093b97a3e909c3bd8f0463ed2a8788a94d82ac8fa4098172587d706c36648cb5f131795e4423132984cf7c3cc5abc9cd5106be195c07d68ec570c1aa3d0c173cf40b51a350100d9c84a788d126c32a216a3d5bb1898b6af00844f98622757fdcab4e3a2996c19a056b0fbf6638caff53d5aaa4eb732de6f4d2e6c62fd3a9c883edab7efce0c3ad277765ec65df9998f8ac01bca8c2eb7c6298baff182dacc4ab584d9a4b25e956fc532d2217051e48fcfeae3878354317b6ae373cf7b794eb9830572165c681211d52c36a5b75a9570ff9a998267d929d9021c51159fef88675bfabe50728dc944450556", + "011c591959e67fd4608dd9e4af633031ce10e06141357c6a67fa" + }, + { /* i=5515 cDividendBits=648 cDivisorBits=223 */ + "5a3c336567818c0a6651c3eb650ee46c4b612c457755203ff8563f344e43e7bfede842ae3f486eb5c76e38f0fe059a95e5be048c9343344342dac081bdfd60ed7e5c4148850dc7ff0f40babc34aa71b771", + "279f0b66a738ed38550d42c49978c7cba946311be44561ea50ff4ee7", + "02470678da710ca2bb37acbcd3dc6a05c13aeb10e58e3fc4d5fcaf39c0f3a24368ffe0026bcab7e2f187ac4f8d70f77dcd901982a3f2", + "135b8a24e146872253501a4e236210333943c609454f8dd6e98e0c13" + }, + { /* i=5516 cDividendBits=1252 cDivisorBits=631 */ + "04c5944a3dc20b56ec1cf2a8e2fc44a2bd527710840341f03d4ac34e38198f4724d8942469ddccd6df8491937b02c788931bac806d03e68191678753e11623cc8704c5e6fe6f76b70bea1504f5d3a030e433e8208cb0a2a6471ecffff0d24d6266d70ccfae826e7cc42d083ef762647edcf412f78cc2ab6b69d0f9baa56f68ae95c7040908b3aa094ba7e50b2ef9c882ab22757f24e5e56542239ad360", + "250c1d8f3dcc01beeab0a717ec13e0f73f9e167db0264a15df01efe166148881d3fed9e3aa75a2ae9e63ca7127190e1388404ecdd24e17827f36eeeaa739f305ac2083e47c07e2ae13e2b668d51ec2", + "20f935f94aa97c999a2463e6fc4b2bf20184358b08aa9b5c384de616a8c520fe4c89b879caedbbbe1b2291522c1a38f359db6b92305dc1935055087e9daa3c15b53c8424433c000371ea67253e59", + "06f6b3d5e0f577022aea681e88c788753c8568a0b5789113968ffa67620634366129489c8670839a61c45cd5c304c39cfc58237d540d6c1795c66025f462b8ad41269f0ff5bd1d25e0c0f2940625ee" + }, + { /* i=5517 cDividendBits=353 cDivisorBits=20 */ + "01e257990771e20950dbe5280084bec339535ee8604a78570838b307d8bc1a8dddc862afff8a6f1bb36d0ffdc8", + "0bb46b", + "2935859c3fb51900f98c34d73174fc2ed17ff1a2e33cc8af06747e380d377534f5aea779fabda2376c56", + "073dd6" + }, + { /* i=5518 cDividendBits=2901 cDivisorBits=1641 */ + "0e6d19c3dd5ec45467df071528900732a7a93a1106a05fb5d4acf14bb91746d1140e44efd75fd7a3685cdfbe71c371d021d601920b846a28fa6a2605572037b6b244d806f6ad2c2ea5fa522dd6b35becd0269727af1198cd5534e6e729bf407a43b041e435778116d3f9e1b6bb95e3dba3b4a562e38ac1d77303f8418b2f4cff2a9fcacf2fbb779c79f0f9cf9cd4f1726581e493c30563979a4ff145539f45ab35436e1465bb5ccbbe4a2df26860f5f8e06f38becc4a15669ab8454a0367f0d606100b3e5e958da8fdf52e74714e7af56e82fcf7b59184221b5145cc27169d87fb87e243a0c9b6d2ed16d6c6ea62042a277865a23574ca269538ab8f3ad35d935f17c06cdf6c5f5bc593901f24bccd7a9cef6e264ad44437c42b8c5650ed8bfdf75d801fa1aa4c4324ec1c067ae850cb8b37e1bff5334444a6690cf613d0c7923a1d717d6a9ea17c92fec024709db22759b0d7ee8ed2f58a97c538893e898df7beb2e51a68215cc8c8ff87", + "f67e2ab538ebf9bcf0eecebeca8d1a933b43ebebdc251b4c93488b9b81e2b0221562e7ae6d1e77a094ec75171cee8b58d52c3d60048db120130773af7b48aa697e5a9d13e9c619c892afa8f6c26b31f6cfdece3d1ee1562d1ad8aa59153b3e407a7255537ef3c259b629b8067673d0a263dbf2d1bcc659f781e1230badf009f791f3445f09938fe20ebc9e938282821bd4035ffb8c3db6797a21fc770528c1769afb10e71e95738e25b7d9270d9ae4c01beb5c19757782db702170d7c9cbdddb0a5da31aba38416d401ee961cc", + "0efb8ae27aba74f54d7b3e1a136d002d06c85daa19eb9013adc4ec05144a980829058e19774e9e377aae0c2dcfd50db1672895e123afa1b8fd83ab8057c35333de4140fec923e90bf70087e8a385509f86e5dec7d96d9aa19197e51d5e60fab8c84dbb588e76a14d5d1b474dab97b6247bc83f31043c131edcaa3141db2eada5c67118aab993c737e66c762e74b59cd09eb2e361fefd7601d103b2f281d2", + "5ed0109a4cdfe0c07a9e87c5c6e6512fc418414a0b272c09599e17b9475f6ad1fbe5c42ffdd70c6cf0d17aed86515a7324c998bb3117fd171b2c5ca22fed689dcbebd8dbd8d72d976d39b22eb475c96c75e9c7535a596b180527f5ce421d91cca3b416b7b44decf9b445b4c0bda328631ee025f89e28715393bc829126eb8633e516aa5a7389a6934cbc5633aaaf51a957cce805226425cfa5d12267e14e8ab2d8b41b614b136f4a894a52fbae5aaea6086df7e443816bfac6a2298dc5f86fd5581be4e263d134032d8836fa2f" + }, + { /* i=5519 cDividendBits=2712 cDivisorBits=2104 */ + "7926401e48acc83caff13f91bd988564f717b6421f09d5d2c39a8fdbb54f6e9da5099007210695e4bc5a8ca42eb40856543576abffe7c2d83740d9599f94a8497228b84601de21de098fb7252fc9c21cb6f7476fdfbdcfe7a45d5591f1afedaff9c69e0b9c26ca1d1f3ab219bce0f8593169bfb719953f31d79c63024e8df02cc0e67554435e47351500fb8845177018929c3d7d6f6f9e14222751b95590d2ab9588b1a5b66ffb24fd490902fc5713f3a14fec3b8ab0510f18b33245ee032c0c3ce348187e5ba52ae0f5e74170299dd22622201a688bdf9ac034f9ee720d2b063dc6e93dbc2eceb9299a8611162a45814dc56a5a6520b9446f220e797fcf2894f9e19783ad5f1a0ee2d7deb64c015bcb55121336eb09c46a1a649c275afde4ee89cce27e30639fd8a3e024a2c47972e69189c8a2b9558f47a7114df2115e291b71b7c5308469ebd55b2a1bcd918c7fc3474dfb", + "6e92fc7d63d67ce959fee30635cd6e4fd5dd18cadaa1a494f19d6f5aa74011b5ec7d5581e1c8b430e7d9cef72a642506cf06ee300225f27ca09ae122b613abd799273a7b19fd388d98756060ebe3d168107b13be7d564c1ae60628085b24bc0e17727caf6716e9b71f749d5be38e4eb9dfb64904aff76bd7321a8ae41b4a6691fb8009bae9ba5665cdb098ca3421e2a0cc39ac1a9085aab118f89ea8bda0e3dd2d067e80b7c3e537c2571432418ec9f818b559d157d6e83c27b412693d4f8e76334681f3b0457bb53f20c2289f3ca0e6dad57ffe1b939e0098d4f4b344a8ce3071a20148c77f550f81a7f1ae998bea2aa597be7a48f20d14f2a0330056dfac55c645308aa7ccc3", + "01187bd375533974a10792cb78ea3a51745753ac41169aeb39fdffcf109abb91cefb1df0da68606b456bc7963367559a5083550918ac73ee6fe5aaf962db3a0a8e5feffc83352f95ff492345db", + "2154f17feef3ba21f3752a47e8598cab84afd1aca2eff21a7a304a7eea0f4c2f3db2c51033046a6058d057e7d23601326227200ffe9d969d5f8920fbd5d8ae190bddd029d562524ad820ef3d8fb2e7dc4e492eb9a9e499e4596c618c9ff65e04ac7a6a947f68503ce369839bc688d81f386b77b36fb0c8e568b49cbae1da2af5019ecc6781a571e8c79a292e92fb25bf50edf650e88e598c221bff23925283a564cd7f49459998f8c383e70baea68fc66d2ad54dd610007527a4734ca22e935dfd0a058bd8ba2ddb9271d550d82c45a28fbc5bac37349669f868c06a9d0f0108fc5dd0242c957c77686c9a07ac496975315d234625b93f6fffcd1827de00aff102030851e1942a" + }, + { /* i=5520 cDividendBits=719 cDivisorBits=478 */ + "034f25eb4b9624e64c31e8794447ab1244697816b19f9144e60dbd0587644a05a67ca146ab7ebd630c032450cde810d56b533b987438fdd61fde8769ed4c17b1a432764ba2cdad5ecc462eb52434f7f447faeec58ffb7609b5b5", + "2f8f8f5b53c702b63f02e18367c91c1af54559e3cbbe13b0b42ad71200576713a2dc3d142cbbb8993db3700d148f0a1e6e8484345d90d94be8c3889c", + "11cfd9035b6137c58de0c3ec36b8a15eec5c251bc7ea0ffcd6a66d79ce7a", + "1b53fb970ffad8dcf0514aeac09a2c0599c3db065fe7f920f9fd268c6150d8b89c9e3007c18374552a5dbd4ab508bb9b108529dfc159a9c33331135d" + }, + { /* i=5521 cDividendBits=1780 cDivisorBits=541 */ + "01adac249a50992b40440db61865a24b85c5e460f15ff28c0afa685f6176b8cec4405c924360187048ae5711ed36f00d6b88b01d8c72d7adc6c8ce5a21d4f85aff74c4430b8e51b893288ba4f5064169b577e80010a1501998575477767fa0305fdf6d512e9ac90cc8a83777e0f35e58f4361f307e63798f2fe031f955156df928a346ac59ed8d044c2d48c073fb44cb928173fab4aefa60f70af562335b95a21042187c051592e0dbc99d0c092180f18515ffe047503ca47eeab92fe541cd554afc3ecd58cdbf89f36f32e9a2f8bea14c4e090e853adf13d658fe7491f799", + "1f452003da53f10b18645fb987ffaf4fe4bb8dfc25edf279960989bc360980c93b94086c78f3b37681b9b29151d8a747b6a3b38021e548d9ef25c566dfadd3d7307ef1e0", + "0dbd9f81a931089148160f3f566ca83bc2e3a00d4749f255c224464bb622fee10ce7985bd8331a395875d3c4024e22e0bea1a5025202acbc33862ddaa2657146a39da81cdadcd79ff307011f6d6de63f4ee4a40863942dc2b86f76e9a91d073b3643ea6192e235aa2e7ddecd5661287bd463e9225be1aa880d1a0e1fafcd2c239c8c9f9c62ce03c31b4c3c7bcafcb03c45496dd95fd2ed9ab243f6", + "1309b0b2a9f8aff014d22033ed9e11271a768a8d29c1e5e4a16064a9d64ecfa15daf3506d597d377d1594e70bae9550ae768239155ec97dafe696aaa3b7fb45fb387ea59" + }, + { /* i=5522 cDividendBits=3252 cDivisorBits=595 */ + "04d7558f2a05e1eb95aeedfb6d2572d4946b28c76c5f05e14a9e6917a3a7508f6656b6845760a2c28300ccc5ad3c27b715a419d7b676230741a8d33798d5cff9d90b99d2afd195a2cfc03d43e79f5c5789f3aef1eb3c43f6dde1ec27c2de79e7acf12cb7ced175c10625b984311504b89e9ed941527e71cc9b68c00dceff2ba9f2055307f4730bd27b4ae8d6c0ff05185f8f6111c4bd3f6b6fb1417473d8ecfeefe2ca3b4d9f276b6c1460054ef82e55361d7ccbcc7d6c382adff16eb32e8648185eba7a1169f229deb573330cf4fd29114cbfc6f61c5ec78fa47954c2e4d20a39cfe3a8e43fc6d7a009cca0430a36dc22e16dfbc0d5e1a3b694caf9dcab9ab14cb2197542021a03f40a96dc58a0c7a0ed579e170a4f71640d450a62f2c661d4426e50822052950e3251ab188fc290ffd59dd1d586faed246825b2dea078909e6bfb7cc743502c55df886857faee8ec8efb022e967b016112ab9bdb0b14f45c1ae895767f648a448b84887a3c3a09c518c8c242c007dc27874a78d7ff43b3d4d34a0663fea0513d1bb64b632adaf15314255046c125c17", + "04893ecfa0155aed08d4c472d75263300648bf0172daa0c07cb5c40228c7c84de442077bfd831503435ce9ac0e4d74138630c4e598516191ccc1fd941fa2f0d398ca0888518c69061d125b", + "011137052082e83934918ce1a24781b7cc18bab32a6e39f518730063ad8c646cf8155eac226c6074b604c00781dff6c2c85531287dfbe523d673f6abbf5f4bc1c04f4aa55c0e4a2f8849f31ccc89838c1a0d90af30a3f19eb686f7768388732d8934039da70086054fb7d87bbc7ae14343f5db20cf8d2c6decd6fb37d141f00bf2b4e768ca7a5f4ef17c645a4c7dc42b8ad39ed2535f6126b38a72287c828c5b6391b84e39c53050469b2b10bc40e96e37f135d64fd0c1258d427d316acb473fcc54e924d0e38ac562dadd63bb8096fb9d13493974e96a0be36936ff9c05aa9622653aae94fadeefbb6457678202a803b00f853b1bfd743e05bed3d9747b256175651f26efe50ffeb3f7bd065a5c012db29ee003a0e2962a38e26542d1c476cc0ee1a0f1f5112ed1db0cc57a92d8d5e3ce06e84c2de7fb20e4e5445614210c9e711e8c375e3b336c055f939856", + "5976f2548d49c4b0847fae1fc275b0fc6fb1fe9d0cfd02d0ea860466444b095148d5c62da8bd71068a1b2e97d087299a89ac368bf0ccd82462e5a286d416c85cf3475d7ac1d2cc272985" + }, + { /* i=5523 cDividendBits=2025 cDivisorBits=1662 */ + "0149ef99c048558770a96170489f54c0e050785860a40458dcfcb3b6adc5f5a342820dbd11c2d0f4e0291ecd42d97e5b47bd99773df3fd58d68bf7aeba0bed1696f60e8582a92cc7332dd9b6439b9d8828bb6fdbe8ed6340f28eda0d965005afab77ebf79acc35b809b0bfb3d18ad13d97c0b11e66da463e39fa1385a11f40e84ab691e62fd7567baf82251d057b82021f66184112c6db33a3d57eb36b5dcc374a376ba287c012a29e0a6b88320e392f2f97387377be790a989c3874ce8d261150330bd25d2db371d13da14b0402c399c3b7966a926f1a538becf20f3080e32b634fa3ed5fc69ab85cdbd602a75b44c964501728564ad1a2a22a3f7a5c5e", + "2ae7d597d6fd0bcba148f77fa8096106642bfc4c1c01afacfb959da7fe3be7eb8aaa74c64bec6b536065e653cd1657a68ea63f6f6ce4607ec68523f5c1d5473b4852bd6e7c9d2c5a5e1e3ac41c8cc1aafaf70573dfccd850cc355540484b22a733e018d96f11d2f5ea8063ffe6a2f6c89f7834a222932aa4d4f2478f996e247f7237ade1e40ff151e1ec6f75323abc626576285ed64caea7c2016ccf071bc1db5bf15cc87e99aac1449ba0bc4270f8e4b59b1ec75e33cedd3459c0755a110adc2250bd9a2e81adfa1cfd5671603241a1", + "07b097657aaecbccb71bf37c1ac2c1031cbf746d9c3593d1f7acf8f9e6243cdbf35e8ef1e37fe8ffdeec2ccd8a1e", + "047d608d63fbe5f70e1ff75b0f7dda7012ec1e2095929852ad90a980bebdd562cbb70aff531115235b12c3d64e3b30644cc4820a88f90959f2bbe22f46700a79b28c1ccbaaa82a2893632c1097e6ec3bdcc78573ff7496fed14254292c7790280dfc93341d1586ac4ce7ff0c742b376cc25f40260fee280b5719618619add3766a647999c37535e6e441d933b37071b33b8d5554fdd55b2c9f16d0d40daa5728204ab66da51d996b327dd9751c429bb9abfc44f5910503e2ac9392719f05ce53e8ee02a6c998ac489b699913a848e180" + }, + { /* i=5524 cDividendBits=3758 cDivisorBits=683 */ + "2bff9020b5ab5b19f38f73d6f308c05320097e46623c63ab7c038b96c5e85e2ebb14c270588354f13a91c14cbd67e2c40f9fc1c413243dbe650d0713232b5b6be48086388a1a98030767da33143bee2a12cb75790eaa4061bbb58f32d08d04ac00493b12774288be07d0bdbabf80c4e262a644eac640650c8281ae5ffd3819908bc42521180c67280e3da262b4999da4eb5427abdd94f7dbb05422ef6b63387d8edbdcde6e10a4f3bf6e201c8541f2bb1c1992be3acd0bd82baa8e573e1b7ca83a7461c9ba930bc711e004ae5a5d1398db68f365751bc64b1a1ef96f8c1205a989e66a9eaa11a944cd357eb7644a794b342c17f31f179b7354a0b85aa1e533628b984280d7eac730e5cb9f7667e3bfbb06b7ffcb75a1ad00b3b7cb005651ac308d3899dacec3e59ae3f7a56c2772129dc7faa0c073ed066258d8e41139e1b7a34507751c47d13b26e88515f396c65e1d5ea607724e33c314ab25d3a89b232958b800f4b09f90fcc244baf76df809977c75ef191f7a2af84d954c03424c06ce18468730b27d8d8af57351426f9ad3a2f9831b673488dbc01817bf0e2ecfde119fcc0d33ca74ece61581eefb39623b75ae2f22e32ede155ba2268e1a5949d41ff28e3a1afe7aaf8c67b30e3c11c9588608993d29582355", + "07819148bc452841f25eb4732c3d8478c4b337f9cd00f5265976fcaa54bacb88fc3d453149196c8ec785eb9224f7829b0ee8ce8ba5d0d4c5b67055ca5ca32060a9f3d1e8bd4c85a68ff27fb75d39e9d1c37e7ee8e1dc", + "05dc955342c1c71f7de8ac7d3cb93fd5d6fe3791d767e438cf446204c4493accfbf0fd600e7c86986f55a4247130f0187aeedaed30175e2169b1b716dbf40ba87f565368ae09154f683d8f0da8884f2dd80e9685d2c7eb10f665ff48d71a0c7b4e93975882c932fb031b3e24daacb3c4cab90d30392c03399e4f2c19915dfba1fa457f77bb93c615ff295af3da2acef9414f4662997e74209e7becfb48c6ebdcf2ed2e7fa3ce62e913394a68df400c4d9d073f341a59ff093306ae34defea3d85750a99d84baebc222a8f9fd2a4221a467c14adf11b07e188939c7f06a637c1d28993aafa21da4713ca3c5d9dbcfed1b5c3ac78a928a53b66fe1de3adef50d462cfb4399a488fa85ee2522277e2f2aa2a4977ad6023c204ac227bb3c7b305e1c88a9fce91ffab1cf7407a803797ae0e1faf847a1b2c5c3c16f089d485ec5eac8aa11b10b02eecf9b37bf28bed26bca3c77cbab0eacfdda966ca35d0590d75d1c14b18eee07cd038a15916910de9027bb75d09c439fc38748f7de44e2a47f42fe56", + "06ebd511b110c4d83e6e303ebe726bc1495949e5a1bbd0322543c34487344f468e7172645766e12b60ad36df0133dd67b5b92a9e049e22d699c20463107280df6ccd55a5507319449c5968314bc6070241cd184bfb6d" + }, + { /* i=5525 cDividendBits=3843 cDivisorBits=3771 */ + "fcd85a119e8f5895e631186c221912a1c8a97e2b041d71da19162a8b31957055b1ae4dd0c2f27917c1f5d67ce9a2b5af02fd8531193d3a04a8790e8595c737b04a124a8306278ccce26bb6992c50e971c97267eb21d1cd4a01bca215d7c14d0ad95d1d992c058275a0f859e68ff2111a464b81e441676cc1dd9df862308440ac602d45ebd92c18b1a29aefa7d03769894f97ded07abca8f0ccf8bca70bc16863524881a49f8d4dcad6577f2c58e32ce8ef6325568a0897ac571c04cfe511c5c90383b58be6a54230763d3b93f4167596c2246d6e7023d33f94f18e1c8bac712088c0d5a7e3c5a99a1e936d466dd08a33476157c99f5999a558bcd7289575630bf6355d8f5fd13af97e463d8ec63f8db19d3258e263bc2aae0929494aa8871f3d246e81249f25bdafa22e7741b1616a788124367a782f747066db7ee2d372b4ccb7520ee842fc88133e4cf93e1ca6a3d6725b9b73cc3eb15618acdae39e385bf6c9b99b56234488d49fdfce0d7e1f39b4b90c84fd67370e6af23cdddc3cda9d90ef26d36351084b97e567efbecde6054386a97414d95f3d71bac318c27128f78f17ebd65336ddc872571f06d78a00a7e9fcfafe194cef29a3d7759c98889c78ababc9626231e1521351f7980470038e9a585d0de9a72e3b4159fdebbcc79ea75a", + "019c0fa42ccadf85279977557ee410a9dfa44b1da6c401a402eef025ac8028a5d8978e5f258aa07f69b6ccceda58514b95da0a189054813162ac987ec61308f612ac5a5a68aaa9f19ed13df9eff130a07b8e972708f6cfe1cb96b54c49510847f172bea5d580259ea2e26de55aae3ecfd86c27c2554cc81d71f3dcf26c8405629d3ccded110dde635614bce5dcda1fb2802eb7a5af501b7eb3b5a6642ca900044866ca38cb59ebde1267a9d3090c3fabeed6631aeeb8e2e28fdb9a195085cfd45d4784e0ed46e8ac362fe2e3710e2fa0f0914b990700ac4466e3ece66c7df5b89540fb4e81eb04ccd7d35d4505d162501a1c2807b03d8ac113b01faed107b750e825655673f2bd574a918b4ec3a25541a2b47f68ad6c6fbd298f9cd16be70c4c397ca2cefab400c205ca5dbf6e4be6fa2f02f94b15baa77574b0bd7efa769c9447abe9310ce9dacddbada6adbccbb0faeb9f7bbcc2d6b036f317d0550110081a612da6d6faf0a12b0f58ce4076e5de578689f597ac1ce73a9455435d074990a9668b503f984966bc5561ccf7b954af24c0234e0983fb084eb6cb5013a790a1657483e64cb4fd413284bb5d460c86345848e49645fdc6abefd938bc0c216f4aa0c83ea180b3dd90aadbcc1e1106723f8d5b4909c44e8106aa", + "9d159845d3b5f5d36f", + "f5495cbfc755626dcabe470ca502095a7fcbd8836cd9a7ba5adfd27223a1cd8459bf6fcecc61c01bfc637e95f84db7ee517ea88712821f53bb4fb0cb78e8b3f2688515e68d9f6ada0646ff94ac37deedfb3577a5466a5ebfd442d721f83cf5e73ea0043ea9f91be8e34a3bdcd17769500c98454f2eba045f97cf2af1a8bc28df716571ec99f48bb24c1ede01af8a00cc05ab67a0b01a447d1cf5271a320c5ba456f837832daedaa2b0419ced752026135ea8f3f620a38dcd3713b69fdfbbafae769309eace1c0bd2d79b922da426300668f95b6482f0ba7ab2f5557fc08b646352665a80193a4c3ca46b6434a633f8ed2dfebc1854517b1ed915aff2f7bf6a99823821a9cc6e5185c783146b3c26b641cc6980fa773003960963f95dc661c3c242a059659b50a944e5b57a17bf61c50d3112c4e726c531d293fb6066c5d35a6c05019cf1f6870d09381183a1cca77eed83423a9742a3fa818e4ef61048f750de57a6f56a1931fd3ec8fa5dd3988972e8c4769fbd6b279a966b88cbfa8e9495bb5439b861b547652af70fc327b73ac2f9263c3f529f29e00715aee38b28b3a7c6a2f0aa80c4f11db1a8cf9172722d04d4f61c9822fc389151cd3d6f2f75066ca315b87732bdca3e92b86045f47aeb8c0bd1379ad27ca5a4" + }, + { /* i=5526 cDividendBits=3003 cDivisorBits=169 */ + "8ecfcfb702a13833e7e28f765fdae1f02e2e1813b4c462efc8c16db787e74823200174c503e5cf8060b2f9aa0541763b8c1aa34116ec1c045ac93756d3af5acc6a4b7bd04366d13b40f69faf0bf2467d85a84bf26043fb9a6e240aa296ae862717fc878efc64018ce8b0767036875b8d5a697a8fd8f6d8c8316d162cc8b7dbb37afc8ec32d85d717f5e4a5539bc4cf05df28c1a874a99b45fc5d650aa0fe8b1c2ee48e8ae2c9f41a15e2ffa7d9fb6c88fa322517af704c285a82fd79fe187f849242569fc3451c231a0097beeb34c24c95ad5d6628e8bd22ec235d713b66efb1a54b8bd76b00e079f0f7caf1a7791a0e82eaf6a47b27e62d5ca7e2aac2a51c37ad764055563c10cebccff45d00a04f460770414f37101f27684537c4f87783ef4907a03f23c42b7bae06c86e58208b7982299588c5f4566114594e5e8c27c1030845f15fc14ec1310bfda162c45e57f78b50db31313c8ba913f6f73add877f54fce1cadfa95ead0ea8d96f5c684b8dbf36c103f7481337", + "618fcd634cb2440ee2b324521553561d688678006d", + "0176bc349d2bf1ddbeea1499962522bf11be5814b583c84c3d4e0b03ddd43fed5b2033e97d250fb8ff36271a92c39959be4e4b8f309aec92e4620890923b743f612907f2d8771f1a436c7aa9d0e6770adfb340180771cd42adc11c2833672dba74dd2d1434d8972d2139bccc799987a309c8b05693c85148dc379859b59bd01df0d8b0eac1759aefa4374c1c18f2551b81999598d0293113edb2bbfc973015328d0c5c37872ad6b78d5c3eb781167d60349764f9fc55bea58a41974411220930754cd96709cf0107c6feef3e94461b858da78f9ac9d34749fa7f98b7f8d6c920d7efc33a80eb7239fa22d70c6016645de48c5d6b5b99d4545a45eb7d07407e459e18d27e4ecdf18db84a97fc9dade2355a949646b25dde06d968f6b5b5bd079f21e48740c4fe9d9bd7923348fa765862d730b9a9038c02d71eabf1fba3b0e1e870acafc3cd96ce25485324f02ef6f0743cddf4dbb454148e4e1c76714c1fbf4fc4ce85", + "4af7b92c6b49d16e9d77ac81154957dd2c94242496" + }, + { /* i=5527 cDividendBits=1074 cDivisorBits=317 */ + "02d64b2c33a4c30b28d2b7f0e9debfce78649ccbcd7774281f5ef6506e2d7e1d5191a09db7b25be3d522f76bd69ecf41e85d6889c2445648a487d9542067b10b0ea5b1cdad0b572b0f80eb42d3d7a87147cf1b6e02dbc69102c7ef473e640f6d39a703b78836262082abb60cc9965e0c1283e2cade7cc77727d170bbd5f0a87dd809fb708b2e8b", + "435fd69feff3360a9eed09f93cf71eb72225e9e87885edeaebb7032e03d5bdd3dfdbbde161ab67", + "0ac7ac15c155310d268ecd79393d42f91fa701f88c93f3e82e4df6f71779c92f97edf1ae54f36ae2a5c9a6db6da55c022f7242e876027771b90b8a5ebec5f1050b6be7e56508e84f8a00d5a43412de83edaa7dd967e41be9c6d58cae133477d7", + "0c307dfe03bacd1702edc97046daa3b2c25335b7186450b026dac825a36911e2935e2d4aeb5a0a" + }, + { /* i=5528 cDividendBits=3838 cDivisorBits=1363 */ + "212f7c4fa53e189a94fb1e18bbc99ad27c99abf82dfb19af91de0ef028a1bc0f056090b7be20d447c663a5415bc867483f57b5f2b40e32b96acd6843eee06b4b8703ac0b55a91ac364a360c0723c3249f0ab57b43337340ab828e6c31a64c46a17feae29a0fc8ea9e5e97f0e2618c45b33f5914c6a00dfbdf2a40ab75a0aeab83a86bd1f3e02b5a531aabb17e9e221765fc6816766b5e8d08bb8d5ac8768b627462621b5d3456a682e19bf882620f6bdccab56000d1f5b80d0201d1ee4f029b4785dea531919b5c66d9a68f87dc831b196e6ff0b91f2608d168ade85c9f09fe8a53886fa7e4d2d81276c3352cf605ca722dd10c74ec7402d9f34aceb7bbec86e33ff9bf17a9f9bb1978464d9ece10a0af74fbc912bd965bd7cc5f4cb43cdfff9703429699ef2c689380fac47530f613dd4e4f52f9691ad8327b103f0a7cf0fee5c69371c8c03ec0422e1700cbd06986c913419bbefabecae561f00f6e5fb3fad1c3e338e1c79f797153a1c1f12e3fa3d21aa1dd48fce1c5ebf4775807562634953b240b62c36e7b42378e87c2032b71b2dea4e6c55a82cd3b3d1a84f6f329f224b3f0c778c8373f72d99a1762b8be25e434c7034bbf9e5cd50b6577613584c2f916817e88c6f42fb6b3133a2dd831ed2ba3925cfdb9cc7ed7643b9ef009112d3", + "059602d02784a83cd0714dd99464af6e293ddd1642d0be624028346997ecda40cdbb48fd2d9ea0f04665692eea8b85e4163808edf25dfb19f3fcde1bd05feec7b982d696fbe1dc11a0c5bdcd61b3d9e3cb32f64787ac4d94ed5fe922a7cba344b485608d158fd52f927fe8126f6209f8a498ec0053d2475eee245f1bc404ff670f19684bdd8919d0af770ab1f77f3bd700650f6b7bf8a1862905dcfbbf8852f4a1be3638a0c512d3de3ee5", + "05f0dbc4158ce534b4db09a5e85930db11c9ea945434e8a19acbba3a4bc714ff9e22c482459b8903247476ceba95e88c89ee54acf53e4aef827a6ce7c78804e5b8614be8fe39fafbb0bb8d4f1fb691860ff4af6ca532d8db842bd34224b4aea3e056ab8d53c602f07501f94ad8c6fbde1ed88d1c0d22b61ed8aedb12483d3d6bbeb9f9c5d116c2e421d8867d3fe4f14d6ea7e8508c40fb25a81a13aff4ae658e848463924b5da6ba92362669ac3c5298fccf5eed75937d0baf4ec8a0a3aba196b2c081c58d5588f739b58f692e94cb12b6597ed4fd5c885b72bd28241005f15ea5865eec16c2031e4e1698c1ec361472150f5d791a88114d913977c94b44b30da2cdd30f3eac500cc99f54af57f63eb4d0e6a785858dd4d1fa1e2baed331f33e40e26e9d2281edc7d84c30cdb32b71fe1ecf9ce434df", + "7686de5dd3ef7ab6f2708fc2aa4d0757f7c0c51006f430b0b2b835150777832a797e4a21e5f531916287768b7ffc5d1d6b806569c22aeec830bb2e14150189a1373d86745031771231e04427cd67197a1454652372510abf181f858f96f1a194d90190902739a5e268a416de28278c85131b3a7fed2ffa8c7696a073492e8c962bd05fa27432aa8fb7ef04c3d76e753aa82af7d22697e572d5378f344fdcb24e1d20a4066a10bd3dc558" + }, + { /* i=5529 cDividendBits=280 cDivisorBits=188 */ + "6470ea30d9ea31bf3ae9e33e717023f2c079a1304359022ab68929b72f6b877ea84384", + "060ddc12ea247d801bec7c285390ac12067abe326efdf178", + "109729a848b09399b8873e2d", + "048dec9fe0ebe34dea1d4e9701e13dde633f7f97e541c16c" + }, + { /* i=5530 cDividendBits=1019 cDivisorBits=152 */ + "0665b9c3c666353c6b99e0bb00fbffc39cd6cce6f7723949af4b599cb31717ba2cc7eb6e56c14699f3c80d167ac5adf114cbbaa42abe8cc07897174d6b16409f648c81414fde8f583e1b0aed27577d42e26e0fb9124c5ab9db1b0a08dc8dde9a0e6293a19238e605b7de10eea3836d15a69fdb1ce4a560b468a409e82f8abea6", + "78bd365c531a133ffc89c6fab587929e73fbd7", + "0d906d58efb764a2a589656029e546f17ce8a4a5cbef2d6920f815b0d1c8a9f68d2e319db681cef3a8663db0ff634137f26ec40c66db4cb3f71388cd36777d5b2b8df4ca283a1bfd2c484fbd0485d831a3ae852b642bedb457aedb68bef5dd3d5aa4d7a3879d7b91341f105bd2", + "3664730e7492c97a596d8341aed3e43370bb48" + }, + { /* i=5531 cDividendBits=1486 cDivisorBits=1421 */ + "3711ae0f206677a67ee9ac9c7342e5f3e0a0aa3990b028f55712037462ab9ca64a81611e91b4f380841b913316d334f89a664213ece0641f2be76e3040d1689dff7089765572d4a74e247bd4515318edb0c2eac6de5d2a381feb95ae787c191201282e88cec5fad5358726b55cdb7e530ede08c22d7272d737cb507ca2969d2a8729570c739a5faa7ca57f33b309a4663c70318b40c3b8ee0e61409d55f9799cb86aaa6419d95cae489d303218e0166a296277c8554e51e08e2d", + "150c258dd95cddca5bab09703b53a36d21fc05dcdfc696337831adb9fd3046851ccc7466d3e7071ec05cc84bca1e042393698f6cd4a82a99ad178fa7603f8addadecfbcf5d17b78465a671532aff4753dd9fb202f59544e583d98361742e614b4b5cb17d1e90a6e5ac59742161acbae9c216115f35ae17759b676c20739fae0dbe23ee54f48646641e14f01fdd06cd0bce68cf2fdb50809b67bf44cf7a6c8cd1b62c3e6f45c950cb618901e7654178d4b716", + "029dce01c4a799c3f5", + "0cc0dd84635e298b8fab9f38494386e1c84721198f01c94b9eb2a6ab45f3b3fa56bba8461f70bf1d8508ac61dae28b559ef1660d50db9e5a5c8e243f99590a5289d1a6ba1a3c7bba2a04478ea5e7633039b7a706a5e2faa2da75dc392ae503b9504a38605d8a6da10dd98b5c74964c442c63c5b0b690fe401c1da7efaa23c8bb452cc0566a3dc6f019598e3e11ab173ecd4687a122d18ffac29bf1cd9c7ea0719cb177348ec63d58793dfff85132e0b1941f" + }, + { /* i=5532 cDividendBits=555 cDivisorBits=316 */ + "66ee8e474f0ab501e4111c17bd266bb25f55b0237c5f5fa310d9b2757bc920dc614ed07be3680b8792a01605f01864d9b00ba76798bcedfeab0cbd564cf30067985a0fadbd", + "0c5cf3097da4a601323d43c9043616d85bf089eba4f6ea28b7d1707d71cdf1b0d5f36e43c0d855b0", + "085363e8bc14426121ddd4f252f2fb1ff0b019a212434237ff8f7574d807", + "02d148ff7addcfd076f37797d2d326d185b6d796c38147fca0f3d041982a3bacc776ca874818d5ed" + }, + { /* i=5533 cDividendBits=3849 cDivisorBits=101 */ + "1931359cfc03b5280192e3749439249986633b2f4ddc80e7625cc49212b676425b23b05420dbe3afcbc797fe9092fd1d32b6fed0dd0bdcb3e41ab0398da2eb88819b7d1ed2e090148713248b057c2c6cebee21eaa25f00d0b7bb2802e943dfe3e25b89d0931468674500866a7354928799d0f3356879a46058696ad34d75231a6f70012735992fdbaa2b7ca8fc9fc1a460af9b379adca97aed41c2e0f3e0733b4c6c8837ff20352ea98e81f3b521e3ff5cf7cc459162cf65c173b33e149026a6e1c1e8d3a7b1258d007c4cbb059ab3fee655f0ca7bf00c7b57ceb0334d3942d5a75f96ecdc9bed970f1f3dbd7451697eab9ed8ad885f157f9cae9960437d1931a44170811dd65129fbf642890b79c256fccfb52d7abb0c5162266246c35683c8cf9595931dc0a021594278a0e82436de5a8defcf44a6adf4a323d9d3f58530aee3bd827f47efe6106f09969f77b27cdf27702e1a0c5524bbb756f9c70cdae4d60978efe509a8aacb4a3d490069618c5592939e5573d8b6c330240fdf81a8306c6f2c01b2bd9532495c0de4fda5e6791904e82b1fe268a6c297c4d04c8847809c138dbf78725a4d0f69f31bb596bbdc02eb6e8a1fa860eae21355c3e8877652dd492b9fc0163e805b4a2ab923706f610526b50371d96b22c03468dd3e08059cbec4", + "1032943e527410ebd952e768e5", + "018e28b19d67dda0d0d15f3cfc40532c12b8b514d73d50715cfd122a63ab345a92ff018c8071a68546a67d982c9eef21421679bc377e4a6bdfa6017473d89c6e96cf20dead14c105255e73c9ba4256d4b594320c9b275541695b84daffec7481d6b9f4e4bf06dadd83de82cdd5ae5bd97c232fe3c299c1ca8eeb75dfe1f7e0ecb5c367afe619ac8c25dbd1c4f19f226b7798ce699103745e8409b8ca5a0b2780b4a542bbcdf68fbba2f08b841c483ab8918fb2918388d106447f1c332bd135b494daeb245cac179da64bf441fe6aa2a168fe6f59e4b463f396da790b14b08559a942db9bc0fb307e44bd97ce6689d105c485b5489818028a4e19bf072700847fa1417bac0de08c8ecf8b631e5a1d285aafac72d503e88c656040084ac7a44de497edf39f8c3ebdc0562c49f4321ed241ea911e7214a33dfe81b532f49f3eb6dfabb4a2a902d13b5cbb9e4793cb6c16efe240c79f18fffd3ff92fd445e7b76c957f9e1e28ed802bb26a6cf8b1249da367fbb6b3ecf94cb23424b6feeaa166d70557449804308c954d2267b9272e2186c2d7c78f18ac3b7bdce2705caec860c6bd2c7f27afb7c050097d34e602dfba12931988d32db19be4eb65beb6c99749a8679244a7f70efd12eecc456b2b6eac044abea0ed1533", + "0629045e6fce7d002e49e71025" + }, + { /* i=5534 cDividendBits=1384 cDivisorBits=1034 */ + "5ea13c8f02f9fccef9f74a3d469452bff1966f6a26de78547a11d2e4cb7b7ca7da71a264c749025963c2ef1434824f064e0f3a672e810121b43ed6b11f4240cc828594b165d742a7741d1a5c94399c95a1978f8420d7e5ed046a5793fd636c43a1e7a076cb3af1b35ea0f283203d6774ce17f1f0451948363a185b567ab2544c159641818a63300075d18fc7d258bea0c3466a1818d63297196476ec33ba73c5475675642790e50188bcf625ab", + "01bc64b727cd6cf90f24781ef9167de908b07fa685db06215073ff455d03a20a95650b7e2a3f316f16e2c4d9410d5b30af1f075fed434ca6d91cffa47babff700d09a49a4733e21bb99985f09bbf57aa10cbb0fb28a0d0f3c14eba3a599485049c6d2923e8d9c1882f3707e9a78f7b6b9b543f1445215aa634d566edf72cdb319d3a", + "368356a1e863b001f3ef76de27244bf9158b61a9dfdc19ce2ce45644909577217f5bfe444f9246864c065454", + "ed0632dda108f663b7efba47b8c60021bbe1a6a659f41f9e3b987d5a6d4a84bfc54d021b07a87f7988a2a413f5b74c404ab2dad075db0f3dc0290f9a25b718e8b7ae2e0f8c0dbda705e2e4fd6e843f4094eac9f6451df49948ea34eee39384b263166cdbffd4e387a3b75a8f3a26dbaa1af5219ca998dcb2c3bb8b28b1a1bb86a3" + }, + { /* i=5535 cDividendBits=604 cDivisorBits=211 */ + "0e47c3b7458389c41253c6193c43448e488d3448e6d0919e604b3de1dafcdda80f3faa9b2ade37841cdc6ef5a4d1a64f8e4df7fdf82a94aa7cd970e5ff1fb29bb6afe2672fbf69bba89a34a3", + "04d0d5d8eabf0df62ca0656193613b9754ea45116024a531176560", + "02f71fea1344a1eb2217d9c1601d7edc80b9f1a41c96a5aaaf69872822f0f070595530038fe7f2b6df63643004a261588dda", + "01563be41157dd42cc49557f4b8d804ada00ab4eead4d1bed800e3" + }, + { /* i=5536 cDividendBits=3569 cDivisorBits=3521 */ + "019201aa379dad63f60728d867f76dded0f18b7bed45750a25c1f34b11383c09b174ad3d736141915b0ee2e774de1e6f62da8920cfcd6d229826dfe516a36d3a087dbbd23581223fa7fa2fd7f8fe40c80e722b1cd6ef12e6ed88e02e3ae84d3af90142d8602a58af3faae7ee35eb9bc584cb35efb4f691604187407560f5fc4fb3979f97a5cb8ba11691e63508ee95003114556b2d5d77befba17224db91dd93dc10c9c3ef32a0041cd58ddb4036df30dd515ffb8466a54f039676f20184580ac8982bf55983def8711c19f3561aeeca0d9bba1df61c6b5a1bd46dea200cb0cc9a6a831b58f91b8133e7f5ddffae976f011dc12cbf9357c3ef158d767f0f1d09365c089fcfd300d5a8b1613f8f56a5d4d78c278d53bcecff419121fba6d548d0c57ca96b23dac7761d56af588486a7532ac9b8d544c91ee971222ecacf8b987a08e21ac56a2960fe2b570066293e5872849600d9dd8ef319be1d2e7d6988fb3a7371d84aed157bf366acfb3dd4c16519013f31042482a4e4bd5d72fed8610ebb2ef413ed42e50d5d4c7bbfe7b69442fce9448de8747258c7aff5155cdb5fa34db969412a412ea1b9a4a13b47c354f20666ed37c53d93f3916cc047468c6889", + "01d7e8eb60ae033512efe30d6936f2bf5eabca00651eaed0a7cc08c75b9df1879fa033a1a9b6bbbede64e24fadaf2dc7c71caeed8b91fb246909b448ad3ca128212b499f98eb08ac9031a52cd70a2abecf1aaea1c43b42ef268faad80e5c4961a0cca68231bac737b8904fdbb5e13f5238fcc98eb1fd6828c105eb90c31ccb92f5dd30b6bba4809ba9cc8fa0e28b6f660037047e2ad1f96aaacb444d570ea2a9f14bbe05c853e7c2a07b48726a323a2299f52aa913273b0b4655e3305e6c3149acbd5a8c8da5aa0fd1530236313a4ea8f3a58c25e8ba32496e6532acaff74ccf4edaf30e3550dd81208b6cc11c776ebd195b054671a39869cb183b773dc74efa636627da636a9b0c9b96e43263009f1ed33965dc4f4e6c2ea1aed4b674b7d4a8e44d55f93b2b40d731a3566950d30c17bdfe6ff9ab5cf01103d2cd18d5a1d6f78aba1861dd071d37e953b28ce040e3b900712d357cba4c92ba71a0c13f8d2a891c0a1d71a9ab4ebde7562efa0f94febe1059d5f6447fd8400e89cf4083b51ee7c0021719ee918fe342566f36918ca7f20d76e199b51af49de493849affc0d20e91dd20b96ffee21d291c1ca7a67e1797b2c4b8e5a553fef2bf", + "da143eb34830", + "0113e5fb3c876152642aab0e98bbab9505fcaf42bc6c69854fb64dd974b8e86225b7147ae2eb1b0dc36bf953534aeb82f7646a2bc1b5fd9f2df5365657f55edd840c7e550337e0be7163d3d3fcd07d37a8853ed856fa54482bfee998d2ea48b1be2a63e6f2f0d945580f0fa8da36613b98e9a9bec9584f6197de5e4970df3f912cdee99b5cefa5af622246922d72564d1ac78aeeb1a23eafeb6e75b21a45ce71b5e59ebeafa9e577ac8cacfd81408c5625235afe30e3d85bebedc486fd8efb2fbba803682aef36892b3fd61a2ba4021142a7e326adb854dcef7b10ae71006374534d8141cbbbaf298926ca351baba0cb0cde0e668a3b19d5359aaaeec5f9411e54549536a40adf330299d4014fbfaa009f159697c24ade3536e900ccc88073394a96bbf0002a230672658e2a7e037f70a4f1a76a1fe71d59a9766e71f5fb2cd6f3d8e8b715a8a06650bb91bf42d5564514cbf5f6fe80c7fcaef240bd79563dec21c4ebf5796d6aa4468922546f5b4e11d7f30ec670a39c8782207512ece4a3336fa9d7a6a4b757bb6317a1b35d642a48504a6e20c94dae51da16ec5ef746c2067fcfd1183af39bd44f34e6b3d04e81cbc266981aadd4ec2cb9" + }, + { /* i=5537 cDividendBits=2287 cDivisorBits=556 */ + "18c9663e0a4d7d02a9e74e05feb10f81741d03f846015222eeb7eb97b0a6abfd71e7bf1532b635469f7293101341cdaadbb2a18c66ff960f4218946e5bb6b00eba12c3d7124339c9a01da526ccd03af10ed55b1d49ed743cdec75a63589c375f79ac6508a9f5b1f9115cabeb05b2d1aaa5a970d007cb9b349480d6e76e7ab0bddd6faa5b5e80d453da2c2c6388f3416d448d318e68d118a9e706d1f4f643d265d91342be16eeb1d6207eedf1e7c3e9981cfcd267540bd3a24b58fe4f27b920c8a1a3d2b54212e619467411124b8bc84ebf7a5aebe8ddb50a154d431ed08c31a9b88b0834a1e87fd6145f78b70a2f7384cc87f0be172ca487617c6b4576059651209d48e99a2ab2979626eae51d31def2b76cf1a1ccdb6db4f5c822910b2b", + "04e8783a01c32ea2b2f8a4167cd8031f701beb0876bb79dac05c95eeee15820dc895fdc5cfd70cc5651f4991ca1326047668a9cd37165eaab490f65f43dce222e7d6bee7f5af", + "050cd8ad8f4705b5b701b1bc8c354900fa04ae232e560c04c99280f6df3f58ff96d820547c47711b48ed2136b641b90131cb16ee771d4838055471e80b540631bf5236586de4418e7fbc0e1933534d03e79f6b1e46e72b9149eeee860fab393b378a8bcbc4a725823a13ae364c88dbde9338a93548b54f4f2f8d018e4ebc1b67f576ecbdfd97b64da80533a99a8f34777429957f1624ede78a78a0ad579ee743238cc5cdf726764235558db41f157e05ebb0ae6c3d57de8c21b1e36492e03f7d93f9a3daa07cdf82a9a19eb63d155db3fff7d540c7576f6877", + "d28b30325c98c4263b1840d6fc7618a369f423ce26ab458fce9eab962013c89f1cb8325e0db05c45f269601c2dbc802ec686e11e01752d761aa9c6f85ef8f79d4c290dbed2" + }, + { /* i=5538 cDividendBits=2533 cDivisorBits=2011 */ + "01d211670aa8060e08e7e2f0ea62c54dc4eccb5530d5efcabcb98d6532b5420d63790a2f3cbeb356e34fbe996c53dd8f35c09913c6af3ec131392e42103f04bead4893fdad334e4cf39b7d52dbb13ddd040178a01b34456268f666c04d27b42ba4bde2aabccd0e71f30f6ffbae7f8e980ea363791b20b6e15fcc0e1b869bc78130c81ffe4e9fb6f61a3894dec35cec13ff2de2bc3fac5220700534fd05896747d94c4a4ed12a369705826a6ecf625039502d8212dd2550680e4d8a88c3fe6703e51c38b4e558164171b2569bcc3289f5323a1508abb08e36c63d84868e7db6ca5e119c01f64fd9d78ef3eff115e92c56a87936a9e027f08c2d6ee69a8e967863015cb044655a21fb798abd4371a2fcf705090c9d7a4ea8010a731fbb71b674b61cc7f4f6c0c5169433ce5c4920a40607cf219d74ecbc73dd9b1707a518", + "02a7e2ebe17f633621f6993dbc1cd29ce0f8d45363895bd38c2340b2c6befe8b07db250a8a3410de7da36285d4a20b29706da17521c16c39778666a5453c18033fda157638d460954a9f27f67ce6463abc95fde74f57ea9191ef708a13c0e449b82b102a2995c3c6800ce52983ef3183c8ce48187e974ee663eeeff93318870d5b3c588df7e8b795f280b7576b32a743cbaeec40fbdfade5de5da4ac70117e882356c5ec7dee299be9ea89294beff0692c02f51712fdb4effaa5d688d45c7a4ec23cc44e877481ed3f3533f2fefce8b762902116c473e701a18c3e04f5b05450b039864e3b3ba14280638a74f9e94b2289ec4e4c2bc658a115653408", + "af7d7dc27da5d09ff0388a9361d5c968cfd3034111a3ff9dc9bae22a29dcd17ddf2e3b75c53f637da0267caaea526dea9fdc5d815d8ba0414f765e42eba08d1c80", + "01cd4405a8ebbde9d20485fcaee3ae328a20ac9cf999a82a00fb67935d3d9d7993c4e56dba04eb7e68e6683f4518bbebc4b23367c81b3526565dd9c5976b276607609e3e3826c6084526d177bfe6f68f502b5f852d498d4a1790c11bb4d319a9501d0111b10748c4c5107914bf5edebeb35bee4d5904be35d22c7547f21e5fc2f6a5411e334e3920a7e889a33fd76b98481067e74e7081d4307e9b63950239939a716d4292b67dc129d93e25b80b5a320b619333984de603428fbe4e1f9413670056bd139dfa49ad6c8862df41f494a6951f56b24bc6ac5b7a36a820c91030efc938c451d7d5dbef716b114588c882ec51356b6a233d121eaa54c118" + }, + { /* i=5539 cDividendBits=3988 cDivisorBits=1040 */ + "59bc1d79be9ecfd2e56bd19517d3c83dcb4981aa3e399a1fe94fd59e746c27c7d4090c83bd1a254724da8df7a00996dbd50fc707393c719d11a949a4f579ee0682ae34431f67a4ac20524fb5e158a3c51fa1016af132ec146dc001ce0406fa8f024ac42c767ef44c1fbaf5fff93d143b018a31c2accf269b907eaec9ecdab35aca0ae08b0dc152df691412ccc2df76fdd1bd4a69d45dc4479c4152de16e30c229cde8588bf13a5b0585d6b07c4855338e05e47d261cd786c2d504c88fc328591eed744de649d3823b98dc074008ec71c945503523f541916c1aa4ba52c85abe0bc6471e1742ff0f8b7c41ca1eca0e7e655153b4c0519f88506c545a691b002ef6c79941c87a2a5343302b289ff50dc32baee39e08e4edeff68b705d65121d6501bb2a90462deab87a80f4d696a9b5791d6d8d0832c176f9f4bd2b5b2703a2e5c96adf542df069101a71e02fa953e7d80b0228d7eaa20a263cbd33b13f5a1aa21a47eb1c78b8b06e251fc08779c00b7f6e12391c1e9c0ac46db76bdb114ea8027c8e6248c96ce4a082aff36cdcc60bccf3687681f50666c111669a21a7e71ce9034c695ce021b372c6ef0fd26bd7d4f983aa9dbf683539c612b04d0a55f3abb88f280edfb39d63487856754d85fa3e717ace07ec50b3e879aa901eaac7d8564363d49b7ee9cbbcbea4909b9c267b28e9db6a8", + "a7f14ab4b868b6794b6abe146fdf19040b74a010082b3757191581c1272ad2716fba5451178bc9e01d7d62691da5874bd4a4bbeecb00762261d7d9b64c8a87262e76ec38e6a6e07eb845bdc38e42f2612ca9b59d532d8dc89d2d75e6ca67d99e2ffa1ab6907c38c5623fc6f4031a8c4d64db10340f35fa614caa4de1f4676a11c2df", + "88c91a6d1a937092ab09ed55b8541810fd2e99b45bb9b5717b4a3f12df8aec87e8a25079a1ea3c787487d937b1e0cf18455f70d7b0538518bbeca5a7af8b687aafc98a5051a29502d491ceffbba0d3045569a414c874cf8d3e193154689d1e9096cf6ab157dd661f40c6a63798fbd3b70af08920ed8eb93c6f481fbaceab06be043f73b6fd4e132ffbfeb4816f7f70ee2e7a8beee8df67e97da7d56a419f58e9bffa79286c4f11d86b4ea4c544bf734e58e877f5bb5a411aaa834f9d55b968912a1d0f9de1d36d06a2c133844da7e2a8727a5775922e71e11e92400e74c9a43c18430c48652d4957879aac90bcd89825035fe1ceb208117ddd1da4ecfe1d4039661ccd6831257dc33f3670aeac6131903e9080611bdcb5c18c879a0113307432e081929312cead1e07f21dcf1a0eeaaa4822e268c1f426f5b3410fbe3388a6e35887715e415453e83c2544944087fd7694366fc14c142e444ba6465e9cd462ba75f6a31bc54ef5506bcf59ed2ec29201", + "66e99d39c1dd253306dd6d9ed5ec6782a252300932b67e0656978b5b9d778a703c00f66252ac897101411feeb8e07c84b8f662d2a6212e353d47f4cc5a1b4bfa44478aa95508e10534c5bd1cb9ab82633c40571181e1d4b5097bab515fa57f245319dfd68cf8739c432006512824d69d21fea34811e5ffa883b19c8df6e0446ac5c9" + }, + { /* i=5540 cDividendBits=43 cDivisorBits=37 */ + "0119b118abf0", + "0a1c60424d", + "1b", + "08b2f1add1" + }, + { /* i=5541 cDividendBits=1753 cDivisorBits=1540 */ + "0192d3604556b9219f12d018a552489d66d5ff140adf22d2b58ac71a29738b6f7ddf5d27e0b5a0196ab90308cf2e574cd3310f4ef9114fcec7ffa8f46eb3a5d02290faae640124865b60828c4833ae7393cd780c5c49e3f2410058450af9f6804c575940c9e7dba8caf725480db3c9a9eb958da4b56ae29253fa1f69d077f1bfaf8a48141f3b12052367500c1abee27d0e97293f6826e4812bb28c99b9b688f2801a3c7e8631b78b432e88566c772df896498e4a7b55218981c723534ed265fa0be4deb554fcb29089b12db5348abaf5b28ba33ec458f35ebc343ea5", + "04b115cb4f8e7a0dfb64b6fa3a3c0814af567b8cc68f5331bc9aa3a88abc77bd2f1bbb62991970858b7d8c41beb60dd43cdb24b8764d145dc113def0e5e071b4895f4cb23827976d7b88bc7cb614ebb0ffb12e397147826bdce9e8026bc4918a27383103804b4825eac8ff4a1f216ebc62e653c908d0d912e512c1515c7aa521f6d7e4a509527fd0c21b08b2ae109d2fb2af7f4ff09894129a43e3b704fd7ba8c1a9904b9f63e8cc14fc09f0df703f4939bcbb359b0dacd796e65aa7c9490e67c3", + "55dbc719602a98a81bb6b9788f3bb6907dd1cfd904aa9bae875151", + "02cb4b772c5852f22ed1d77e9d23f37a7359077530c421d19f77237eb113fc81e4ee6fcd4cac6f2211803e0ed652290aa2d7760b4f21c6c2b2f43d00a0e966c8678d4be81636dae20a3efe06f6cec88fe11725f77330f84eb13424b6c361f3efbdce0fa7d34cd24ec982c6e73680fecd2ae6b5a5387d8480e86cf274c787f213ec971a249df79629dca3bc5ba9664df6723cba7a143bfffd319db7a5f1e82d5e7ce2ac676699f5460d84a119e6473dfae4361b597b538ae08631198a60cdfbb6f2" + }, + { /* i=5542 cDividendBits=2346 cDivisorBits=2258 */ + "899b42c9187a994fcceb9e5eb19236f24dd7454d5f0525c8a0d65133c841ebc225b9371dd4edf1d6c0e74f976babc0ed73807992ab46ddc5e4348eafa40cb0f614b6b1b203700bedc162a2c1a897825f8af403190aa65972ce17f7a56b07e9811fffc4c5deba8b0c1b4c087e27c22c5642c5fdcd64fa3992dd95d4d3b81081bfd55c573518411c8fc646645d9b378969dd05ecf3c83b1a66ba442b6cbfbc336054bc1bce70f0931dd4b3379f738934bcf9aa04958b880500f115ea1521e0dc98e78df8a5ef1e81f528fb43eabdedb52047acd866a29c8553bb7467e266cc9b00a0ae4fa8fb38b99e65c3ee3f926b60aace9d9bee9edd23a3e6155eac065c4e3b1635a1277afe1187431d278958d45c54ff2c17d0b10ea015eb8f3a8ac6fe0bed807e10695e", + "d3f5e2b1926ff924a84c55eaf7f136755768a6aeeeef0f4cd7f3230868f6e6d2ec70eef970f61c05472388b92ce872d900ff7e8155da99df858b6a2b6096b3e46d56b019161c71a4eb089467dfe2418e24e94ca5c0756863883c49f5df7da356de7e500429bea22609d535f15d6011e358ff9255a013342e4cd152c81a8671fa916611cd8369d4fa7d41a56c44237ef538e20956aebede3baa472f3cf21091532dbaf7c8df3ed15eb0e42fa63e0d97f34b0845cb881771f41e7b4b4e8ebd6b590d4329b433960c1f67b05ae1baddc1734797d7d8de08cc600078be6ef53b04132aa71542a2a2c7ebfbf740071b50a53437ddecbf6f9efcac63e5c8830dd49853130bfd45de68aa686d47fa0835fecbb05987cadc6d177cd2e210", + "a6328227a0f3f945e5b9e7", + "aad3477b296bd8a9234a37144522c42cfe46f089ca35ad12016fc5873c158e231a4d891a65209a15e2d8da43b741d507027427d44db2ab21e835435562dd3dcc3ea9022709c3570ee61c06171b07783e8aa0700d6c656d7757ef610e891c004a70744b1c6506f093b6fcdd5c1389b7e1af8bd9f500610f767ef47680b959d4a8d7cb03fb6fdf2c5a9101fa138db91c06e6acfdbe7e7545daf2b414677b52dc091bdf67c1a1bc3cf85e04e53fa550c8eaae0938aa50a96d1250995eadb61a8e958b58cd60bf9757568f5f2537a1d5de2c097a53b1e6e2a464a21a638b55b5acdcac5a81ff387df369260dcf9f27dec17b371475cf3e78f2eeea3874d70921f2f184dee9b806504c813d9d919d38da29fd475e6bf4f2f7ee18dcee" + }, + { /* i=5543 cDividendBits=3428 cDivisorBits=1504 */ + "096cb89f0fa77b3246ef544f460291584d88c5f26935deb41290a1952a783ea424b63d9913c2951670f0e1313bdbe74b6dc20692f364bad7856fbb063acc1bb3c5d32189957746b8a399b5579bcd075aa2e19a381cc5f015880417f198ff32f2950b6584eec6401128fcb3c5d0e99f2fb8950b0c59ae3bbc6cede8fcd231f3f4c5948bdfa06b1e4971a0d6a4ad0012aa40209e63fadc19e5aada40f18f291e544f46a4ad3238ce05d91d371d0f13c5d6c6b4ab44bc1e89b26a16d1920da4bc4c946062091ddb29ac3078cd5b2dde143013b0ce64bc4c7981a055dd9affc2aab78246784ad0f916dc2b5cbc119efbdbf5cd325029b56666ae42b46de25e7d95e9f53a2403a7c0c46b5f82049e758c579ae84ce1ec2736934e508d40281ca1714e8a01889137cb5c7ca5f633332a47a8185d940b2d091d1faffa53772ebbc0988d23d9ca428f770ac5267e6f39b8ae4e9c4e7c8c3fc4fbeea50e89ea391a2cc55fa5ede4039ac2e9a1a30c12b9a1a325d494e773724c0c804ee62d1b2cca24cc092b88cfbd91223474d25c13d9af892ec57307d18e37bb35fcaddd51f79c3582390be65686e00166a0600b555886", + "5989d4bcd948e5120cc35aed3819303620c29d46ed9af43d0165b0889ed7e0b57bff03966cb02c0da649057ada441e7676b42c83c644d0e9bdef37800539a757a1c79acd507b034ef346ad55a5120d4ad0a6ebe6ea496dad7212bab79f7035974148a754d5c1b9dc2e3239768c839c93afba25bb76b0a2592014c0d74c9baa5dcb937f75ef52f19fbbd5c6d9c7376fffacb336d4074a277682eff6b8544ac2fa0e6a74afff8c9c47e349a1e30058db6e557dd6dab9ede49efc85f2c5", + "1af23b3eef2d9b73487d697a2ae6f3f051249bdca6f48ef5f05a3c603fabdd18d892282e47e845baecc70486439708c7bf4156b93f2d95367801ffc40fa9389f3a46dc7b4316f1a215ee87b225448a358222db858de86b481b7132b7ca1162580d7396f5aa62bd0d7070dc5147b87e82f61e8580068a9c2a17d8cc0d3d887ce5eda88225105e83f93bfb398b6e8e30627410850d8b0c3673efd912bb11e0e780988a3e280d3dd1adf6ccdbabd996d8416c486a951015c3bbcb927dae7e1469dab90becbfc484d2a74a07e09d47191b0188a1dc847da52a136585056a122704fbda2d86361323e650af48893e363d3011a8", + "503824064d3d07e00e791d7c1b02adf002b561b4d8221eff3733d5c4b2e12266672ae8ff2e437daa7fd9b8320e21e1655f0c6f238728d66b009806bd32648877b24c79a743d6525922891273e02b775001159e7470f5324568d235d38cb6e268edfc5c6e78e17eda6ada2b5cca5b03a37706e2854bd2154295396698c786eeffdc9b7fb9cbe672a84f6f6d28e6b3004d6ef6d50dd63923d1ab08e902f22d02941d6544b74a28ea26d7de5ab25bf172a49c18659568a4d9c0f85ef23e" + }, + { /* i=5544 cDividendBits=462 cDivisorBits=116 */ + "bb946f7ceb3812e9ed0de5cf086475b40894b62a670cabe6d083847a37329791066a470bceb12493272fc8cac1711731aaa67c1db79c7ad59f", + "08220a4a341e8713aa3c5357ce84e0", + "17106a8087e8de9e50145050975bbc861ba5818f3704bd924a87997a4ef9313d669113b01fa17fd94af4ee", + "0502503a2263727f0e5d16db15cd5f" + }, + { /* i=5545 cDividendBits=1820 cDivisorBits=1328 */ + "079f7c3b15a5bafaffc62d966fa8e4f6236ab54b5bea265bdf8d2fb6276d5afca9915b19eb163e1f958a28f2a07e61a38ec67b20ebb0a2e53e66b1466fdc2274bdc560cb691252ba5bc1287a0a62c5d77a473223135206d788beb244c99abb4c9d05c8c8d29ce8e9518af04d2cead7c34892d64fef597a3df5942ed90a9af8e86426d4031ae5c2de36b700b0c964cc19933379c7bb194bd021b7be90227bbdaef3c1fda560e183c45482164f37a966d4fb39edab889c187276a1bf37d44d1d9893978c4b2754b136e4e81ebeac818e72f7d79944e1f22bd274babc6c1db1a7375f927fe5", + "c9473b393294b7d1d56e2b02dbd2ff295fd039d61b02994bcabf3567a69c5ef9861965956b1085c128199ac9ba8ac1e16bb9ba504edd04bfef64d1835141c3e2a6f1f7a4641d04723a21686e04e2c79295b452ea06923075eb44d7408f996d0355f61093ce3920c29ae1330f9a7d30d77702069efc7e9dba3bb5601a847aaeda7d850d58fef01e260914bd5dc1d48319d1b19cbff46c4739ab4c9a4c5447144b0f126c781ed8", + "09b209b14978e8210cb685b705cce5eabcf743a544b19d6f9ec35740caa1fe1457573bfb14140256cd306ad7fec5642b1eae70780f6fa5789617bf44e80d", + "82bb125b19939201486ddbe6fdd62b8a3a787683204ebd8dcfa78a9d669d98ac04d6fed3f2844f5ffe0d641c42226f34bb51ad88f8117756e13120b6218942fa81a03133484fdd8cba834cd416cdef80ce219be2d2f0256896a4d0b05cede65757e44cebf5a4a64c5e9c8350730f2571c67de6a88ce5622b66644b54f63cd29fca05b6023afc5525610de3a9aba1b7f1d81430d9aa3ec39cb7d04231342f82496ca7a8252eed" + }, + { /* i=5546 cDividendBits=1761 cDivisorBits=413 */ + "9101e88ddd5e5fa2e6fc6565ed7a627b706b662f11e1db495b405cb10a5b634659bdfa9adf726ed8b97696da3a8b05c52a86b6c06292a16c2636c61e87371f87d2ab4f10b6ae1de034c1716a9a891ea8840dc295b2ba49922f573136b5794d9295f72fb6823eb13636286c2cfab8bc73bb865bd7d18bb76e4607a1e18b339b9d14913a3ce0a79469f7d54e3e7b91324dd3770a5c8efe80e81c4d4d9a49e8fca84c73d37c27cab1dce39b960f7232226cf94a84239238724a764986b184134c0d6642545d9a1601e003a9dae961b4f537ba38d71b9ebd988a7344e565", + "17db3f675a534c180a8987ae9fd3cde91a7e4adf70f6479c045dac68965be3e2ba285d36c55479dac5bedf1b11af86834999802d", + "06140de1d3fe140317768ffd3aa281b8f1ceb71b4544a30a51187dcba7797eb5fb45029193339d58cb6ee1f73371c1476cd32149752ac1038123efdd1da59be0ac586e7351e67fe7c519c83255d7fb89d4483ee44464276a30a825bb6c68877cabf8e37daacb1d1f0f8c3bdf3d45ad76cfc1d32b390e3cbc1cf6eb5777b91d2ed6cddaa2c8a713d5efe56f1800e6eb0a363d91fda2c71dae4ecd2b33dd62ca32e68df3781e75a001bf", + "07f960bfdc865867273ff5cccebd18deda36979e63750c07cd8751237882922138ad697e195d1e6ed1b5580ba2c77482431e16d2" + }, + { /* i=5547 cDividendBits=1294 cDivisorBits=1097 */ + "debc6bcb5e8c68d6b1ca8daa1ad3333bebd81c563acd8948e8df0dac338d0065952bf35c878439691b7d3e2471915e5811fba324f6e9321346f649179b3372e4aa10b129a50a17354626a0a14fd7d8fd8e3d3a57b1f64bb559860f016da5b7d0ce10204c1d360cb913d79ac3ccf238b5a69f12f526f61f4218b4ed7d6b84c904ca84dfdfcb74961b73bac17a4d8e2b5489cac1985663f2438feda3c72a527e61cd", + "e12177f1f2a4a9243453c64c6f6ebc0bfd5b6ad019f0d87ec190ccb824c862e59682be8b10c897331df1e973471430f412fa4b97a39e398a10db65194f7362630c7c5d7fc74115e3e7cb5c34bf26e9eaca8f40ca5f00c541640b992ab638012d0279d962ce7dcb6e7dd75ff3a9bee7e93f23e3234218968fa8dfcccae5cbfacd84926798e9a031b582", + "fd46e4ad9521540e86ee0604d689e9c682428d13c7c61754", + "135722e909d6ae9e625a72afd4e026acc03d8a6271e729a0256c8f4323974b7dacef85e1b9caa29f5342ca5329a68165fbfa14a9e9a7911e85c756bb3be2cd03ae306859f947e66b4a2973a21649d47b4ffea24249de6eab4b9683349000a29a46929a78727741486d797c02d3c1204469562cf32606d830afb391f42cfb22e0cfa082ffecda542525" + }, + { /* i=5548 cDividendBits=334 cDivisorBits=313 */ + "388e00e5801fb84c74abec373d1d28318d143c9ca0463d067e68b5c4d6b30f8cc264a0abcf70e9a3efe2", + "01b8d68fc88f1238c841013d6614b38d209b0d3f7286901059c90f0f29626fd0c890b9dab6794935", + "20d78c", + "01a4562b9aa7c54fa8f33c37806fc22287c2c7929666c0edde45b258c7b631ae2a18ad6c1c3463e6" + }, + { /* i=5549 cDividendBits=1753 cDivisorBits=1471 */ + "7f4494a3500b59c6162b8dac827cab6c065b487368fbca1748bcf179e37b3c30b30825e7765860f4cf6985c085d8736740b5bb780b3996c37ef0385e00c4f01181660edd07e4c5a75079cf62d4b05438f0e8fa8c203ae0f4e63448f90dc286d534761f991bceb9b9d5544b6c264a006314a82c49b23cc6956ada0a9b4b6fcce941faa8166bb67497022a7bbd3fcd1238a4495c16dfd11389299e579bda65398315f3b20ad9093cd82fe7d816a6882713eb302ecbb59f4ee65e3097c2d605e90db98c6ac7102c131eb1af150fcfcb83a17cff3bb48139853cbdf726", + "2556f97032677a9a6ad6c701cbd927f87a376da4f0be2823a571970c74cbb130d3de470e65b1a583584761f87f44c6aa32930481f062589aaddbdc728a110affe4b5cb8e73981274e55f176f2388a0433856541e1ee1910691f42868253e610b44b64cc5e402d6b4cee43e5dcb183a35869fb4e471c1897267a2244f86bf9dca7385f5742f451fcdffd47357bfb453e79d6a95892b3db228c5c2c00b0d82733b7ed9c1df59ea7ae5e4d2e8a0946e1efd4c2509a7b3b4900b", + "03688b578345a68e9930bcdbd07aff51de22ad1acdb7186ed25fef4f75c63542c9fd099d", + "043fec7719e2904ef1066522d6b4c60b1cf328d5a3fea6309914d96774552dab018e28e0156248146e28abbdd2476759295c5ab621cae7376cdc507c64bfeffbee703f5effa7ec98157f6bbd6afaef35d2f90d06e0714c8cd537707133c99a7bf9c3425cdbb2261eaf0d5c484d80394ce9ec3d7d05670df21b2c3b58e3d5215f84df580cb067b6b0fb428313491a3a77c9e9ae52c93f7d1571d7a290ec946f2c13f43d2d94047a22627cce1c4f154fb557bc9ff9b0123d67" + }, + { /* i=5550 cDividendBits=3396 cDivisorBits=103 */ + "f203ab52397753f42cb114e3d7e4a1eded9bf77f11a2771c72d541e43dd6fe8d0ff90d3b3bca95ef39abe1f513eb9b933cdc1d5818eced66daf8d7f0b607f8acd858eac14e35e29cce86c285b64d98b4a88c8e2f8182386f010da948d0c2de3b075abd911f3440ecf699f37761feba889d3b2f4bad2aadd8dd22be44d10e393e8885d5811ecb3fa44586981b752bed5498a1e1c1841788dcf2812da7f09e3566d176ebe3df1c3696a8ec6959527d458679779f98d97e7b0427a2e9974f4598d57030f8ff26e8d866c5b65aba5fcf5e05e6613d79f7ed387c0d923761655c43406f5772672736d82164acac735ff261012f9852285a0de9e2377b94ad83a9e48d4396a5a11ad4a320fed2dcb180037c1d58e2effb0edbc8ade7d21e65fa01f30a438e1c137574a79a75ed3a3b898b075bdf3468f903f46cc90d31c1ce7b81b1f55e3555d773c5a28018c978fb166bc9eab6b3b0d0403878b8a541c4897fe1c08160f69ac5560a3777047a1dd7609f9e1473fea19e673af4ec7f051fb78435140d7e9a7469a2aad9403676e6b878fabaf8b4787b38e52bcd8735e5270045abb67488c998d7c33bb827", + "32cbc4c758c7f9120d1a05c827", + "04c3b24eca01d6946ec35fd5b0986a18ee7e63d69901db856bb392c5a1baa4b6e2277618c4ab4fbd27d94ce4651bb67b9eb69151a5f266a67a57d6422f0a0eda1337afa67e592f78b0019f17ea25050dffa3eaa5d7c443d89da0650170315b70f26e88247297812742c5b9c8359ba3ab98e594b9f81d4617b778e5b1fb3014b58f20d71e3a16e54c450bef0251f4d0e0c988a55041756537a859a88894030428d0cc6bb481382cc9686709eca6627e553f268e4709014caec1a0cca3bb05093f37fb6d670b89d1ab027547168c0f30aa73a8c71d9b9f35b359f43ae274f8dfdc34fdd446171816c9255f4f0e5ea890311193fe3121351cf1c295d870e726b6b9270036e405ff9fbb51860538f36e076ffab9ac783c37ccda4959f5b6b8a762a0611a9849619be4f0a69054bcc1e09cb1466a8939646b337274d670cb79dac99a34410d707e735c6f524b265d092a0e67c2615f88750483325ae2e7ec403bd147f92e6e9ed3a05cf57a557065ab4093e499c96675d40145d5bc754ed071e54c6934b93eb64209d3a3a90909369680a8bbfde87dc13ce9f91fea3c678f", + "020dc6320e53a9b0065755395e" + }, + { /* i=5551 cDividendBits=2228 cDivisorBits=237 */ + "0b5157ded5274d8fc05ef26965527cadb94246b713c4fb6f50952b7bfbabc1a23ceed2894c66680b9a6e9b12ec129c21b8372f7da3265f89e64401cf88fa02e71f74c2c324918a7baead3b68a96e3c01f6bdd6b9299fb9336f3cd862abb6d0bec6f0f0faa873a9972049876bd5b763b53d602f3239418c20d26fb17e7bbecd44204be7f9cb229d2108aa7534796325578477f4eb2fc00cd4d337bc49994c92e1c7a41615b0ccd1d126723f380b6ffccefe88104d8128701cb77ab852556dd8febeb5f058ea6dfffb29a92d7998837033ac1e9eb28a90bb4109494a60ec8b39a69d3a68fa51801cb9f69763cb3b71ad5a96836cc71659b714b1c1ab50444f23b9631fd3d21774354465f1124b2c94173283f9d3b9921b3d", + "1f5a7da2b0df0965ab4a9cb1d43320bfc5cd2c8368572d99d7f9e0e423d8", + "5c68b349eb87e865466a454740b928e23a5b64e770d8d72abc481a208fd495ce29474b32c236843f414a54608138ff025f27b9388aac21fda746cd507cbd506619d3bd446da6b07b6c7e86c68c79a55abfe00b5ea018bebdb21fc755e091407cf84f85a3889aee863a1e84f252559a7b45769fff21d90a95eae5ddfabd96f08012f6cea5cb92cb60bea80fbbd19b2d40899f9aec2e4ab23e6d06752123f46d985b6b3c2475e785e80a9a1c355adb71adefdd00448d1fc7941227158eb28d8fe2c060d95c13ba127f82bf5e20dbc71372e8c14be48bbcc75c02dfdf741f356e4cf2c9b5ae50f172a4a9c07f89eb5532d203b4489b73cc053725", + "192282b48c6ae43d422b0e4bed6591b55b178c2db34519da005861ad8505" + }, + { /* i=5552 cDividendBits=1976 cDivisorBits=1416 */ + "fad484a11c66ba36de3d203076e8c075e91789430da851dc842cf4c7797e889b34053e2b198e75cba3af7cceb5e0c17bc7f2341e4b58e4423859409a2c6306fb8625027d3bc6e2cc934583801046221bbcf168a70aab86883944920221c8e23cb9b370f95b82c21ec46b3a31ec58d250f717ed13e2db4997162f43c08257fdee75fe9fd5c166e02775676000ae243570a8a98db07105c3f3272390480f43250e8c0ebc06bd3b1858a5ad2f6de7fd737ba54487bd7ac621fddfa5a6c42f17064fd442bd073c3c0f86ab41d9f0cc8c9a0dd1e2fc6a2de71b1c336539bff282ad97280924360eb133c63954366dbf956e63606959bbd4c486", + "a85ca53943b931e9f018920ea5d85aef868bb6fa80101e67213f7c5e7123200e6a041cc46851ce2238883f5ecd497918e443f610b5d756bb359e980c4d8f5f7934eaa4d23a8622822b6cac9077f9878ea296e1f60536cb57499cfce39794b18d8ecde4ed2af40e2a8ceff43065dfb61d80bb645e9555f4cec8df27b5e16df23c7da5cf35be52fb6df5c0395d9d0a3c14479868e356b82a836a00529ef9b6af80854e64f537210c562297622b6754c4b7f8", + "017d65526159b240cbde7c7074fc6f55a3c5578f43ff0bd863bf6e169f9f76fdb684add021f7637da005cc91edae62879fbe566af79b7f3cadae624bfb1fb1626eedc74613d28b", + "a73a32cd9aefe5583a4b1192a0a6fb229793e67824e7d060b3d9450926a74aae7fc7b4a2ad443d8a47d53968fac845bae6fdae4f42f083dadde61f2746c0a018f8bcdce505b53d82a6d6d056ce02238c8b87a418949eb7b42f6ca958e5a0f367172e8c5f6b5f755851477f2831d43e160b06582a0fb2871d133bc48f28519127aaf556b41702a60bba4def7317606ad36c4dedb886353c1a8ebce97119aee8f6c4c3c2457248a400172fd36605deb370de" + }, + { /* i=5553 cDividendBits=1928 cDivisorBits=1138 */ + "21aa8e05e7ad4617e1caeb35a2ea723bc511d2ad3258c074ca457eb1d9c4c5415cb035ee631f0da96486c5ea0d24dba4bbab30aba855644ffd488514add4859b58c1ae40776ae2570cbbb17a560e1d9f47d8bf08945d4ee2ddeeccf4d4c1430c1021f1322d2f7879f9082003b55afc73dbb182addfa1b21a6081001e83f70c0fc73deac40bbe99462f452793dfcad69d06d8528759408c5988f4296e250cdb26b0be01cec52fc03952d8380287f8caa20fb8c1f862902082b3d6265af36f19df1453a613fb7665c71f82dfde7c4c0305adea52c06d35e1e60a42aa207cf9b8c29dab00cb3f419bc7809f0316144657af28", + "0238c626eabf33934154b2c47db4299ce279f03d39b06dd6ffa689923db07b77a03273c84f99fec666ba1a1e4b75cd5b7035372f4bc0587bdead6fd253b00203efe1811d7114ed7536847a12eec52e3351281d8792bb1f62f8706f6da45ec4b6d13370ee9a991129045cc3a83a27ce7c42a2a3402cc85ba1a17811c3bb706ebaecaf20af49316afb6897508f4e017c", + "0f272201c1e294177704a1d9b1d87a61dc410acf88cf951eaa51194d4aee8adcddb98c3082a34095c424ef9293d6213ce2bac26410d4cc4a0426bc2f6feac9a608d031c969321010b0d287212fb6086aa49f6945d57f59e00f8b390b15a12d5ac2c3fa", + "48c4d4a8ad8e9fe0484d5449f9cdd4a1ab3eaefbe4f8ec7cb088401dd6beb7caee6c38cb4d05093a983f4bed0e70db3418c3af327a5063b1456a043b367aca0f6e8f3b179524ba2d87b24bb91e820c136e6353d28055de149e2fea8cb5f4be549cf1d8c2d93f7bc1af0470315c1d4f5c65b50803f8a82993204cbea218efd6f71b3e9246b5b5bf5dafd13110c810" + }, + { /* i=5554 cDividendBits=1150 cDivisorBits=1109 */ + "1e202ac1e84a5517a31f1ec3986d7d99bc7456725eee9596160a8be585c176fae4a1146458f9dc1e69a2844bfef335254903f4b58aebd55ad8f0fd7c8944cbdab4c8eb7b04fbf12b346867533f96d64d2872af74f8748cce5c0caf4af967f205b0ac1c0b17962331ccc13faf51e3b5fc3d03160e8e457ddcfa33881b73521c2339d46dc4b212b2fa3491dbe0219491bf", + "02453d88b00b0d79713fd4ea9077c81a4e870d877188747abd7476b60c65ec6a7d835dbaf7c669b466d15852304fc31982640d73fab576713b1579aa311470d9a04c9c58a92edd1fa58631eec7a17defb2974e3c59612b4d50ea7d1da7edbdfe23cb07eebfbb7ae10e1042423a51db0205b7244d85152f4495eae6005a5b7f976aa3b36831668fa492aa35", + "0d44ba127a25", + "dce768e783223ec95c5e339732df13c671c8f4ff11da11c92bef134258cf8ee7f6a66ad1fc14bf83e2bea00da9075e5f6f74b6d88bb06835ecd5576d207e0c938707ff4c94c1837c854bea808db02a83346d1a34236370f088e44b46ff351c2ee180f6fadde840aee3ff2ae31964efdd8ce2aff71f44c8a21750578aadc8f1ffc8e3dd478ba0f98ab616" + }, + { /* i=5555 cDividendBits=1993 cDivisorBits=1099 */ + "0185c9b1d1c3ae0abd38d84332f5ee7779388c23ff31966805816cf91dadebbb5282e7faa6757e40032652c0b85fdca8c92c145da1bcd0b89a96e6eaf5b0438f65359a4a722fa03a6341ae3665b2513968d060bc6989e0ee19a96f90ae8cbfa26defd1420db26b631ffd456b2b47ab52aa359ab01851f8ec3d538385f9fafd6b45e6720103cb4e6c242091262e4bf631ce2526170d7825ff32c089029f754daed0d0cab65a4c87ca312a6058517749771c88457656f582a647ac01370090090e8554e7213f15f885d40a047e53509aa5e331f0162b5ae4f1ff59cacda315d838ff75ed1eee1933132a41c83cc9029136d84b319d82fa5d1ec5e9", + "0253bae0fe955f022c3c8ad33b0c7ce47bc662dd652c8e8df3f13a8787f2e0acab6ae7362e78f7524a09c0b3a23fec2108ba5f1c814ee9085e44274d253ccdd34dd56c68072a3639240735c4dd5291020725471dec63260749e139144cec418f9dc59be784bfb445477033ac600e2307e6f67ca75253f90fc5ed4d0fbb8648719741c936149e2bdedf5e", + "a780653ef02e843bccc3bd0e9083f7098cebc878992dd493e9049604c79ae64985a199a9f2c9e53b991ecef60856deca8fcaf5d7216d72650eee409e18288f00a95142dc180024878a1d8fc593106d5a424a6c3648928b003a98a0715ea77646d05162ece6cdc12458494c8c7d0f709d", + "a9d077382d7814e5091f322087219a7816639ca1a49840775611ce30b1d32c9f05a4edd84fd8082081eed3ef69aa7ac2b7243ebcfd8faa93a5b2d629026da8da401d58646bf50a67795af225cfb5d8585c9a502790d3a21a66b5f6f3592fe1cd27f84d0370e896e6619c13037e3019b3b167e9163466af221a806bb11a9961789a87bd363ff734a943" + }, + { /* i=5556 cDividendBits=3017 cDivisorBits=103 */ + "0170f17f1305685ff0ecba620a81fbc597c365670cb2e044203466ca42c468e0ef7b78df8d44859ac68abd0751b5eca49525891cf605e44980689ba3d7acc4ebcc6a51a33670f6c7bb71e4edb63c018d21971ea82e4edb5d998430d71c8bcd74bf28389f6db4f5e667a78d63025c1a76cdef9e24e6dd658f44d94bb196adfeccea4f01db12369c38543114992fb4948afaa208b5f7ddb29f347b9b23a85510c1306bdca4a4ee9b81c658760a114838669402bb1468e17ba42abd4d8e695936596ffac4d826ef8117b1144d42719d9978c578b067802977b601a8030d95296acf6887677b8c7776f5054c6c83761861e4010c94d26e55e229fddf643f88df8c35df0bf6e3f878463f38d1c107037d6f72f8525ff6a4d9695a36af54226a001eec2ea2c11f36114a56c3a87a0849ccd5d76c122a5b6bab7f330488f20779290d8268016bcee3fc3cae21d306a33ff0df615777f909e55dad51a29e3b74c661487bc07439e22a2825b29d471b0adc9e72c6b8b9cada37a34996e3eb", + "689234a8308e17de981eaf608e", + "03873550f2c571425af1a227de33383a667cacc92fe3c4fcdf3f849d0636f3f597e9f2aa0470b88a0934dccc09373af2c35e42eef9f731535855ce99fdc4f78bb11adaee28fd9550fc0c0e9fa65dc9fa1a9d837ae2cbf4b48cf64bb6484e083f3a70b60e1cbc2256be518ca87bd147a60cc3358b28b3fd67bb18dbf04482d293a3b1a26f2286490a3b699a17df3b4b378839bb4b56ad4b4176fb182769c492d197b461e42a1765e4a96cabf6fcc5773de8f7a7d4909efd494c2560ee2a2e19193480da0f6946af18d712ebc5336b0c6dd445309a364dd26e72f191664f895d21931aeaacac5488519c4ffa247436023c6ec329c167d81fd37dd8db2c207c692177f758bd19c8a3bbe6fe47399a2b11ac61d93336a369a8f9d5265269379a30c7139d6f6158eeafdd499d9ebc7b21784f8502f9397a8afcfc66d1f78d4ccd27ab1d741f75eeee3de117a2af661a93e8a21cb06d9358c556d24036ab49b18f9b9fddc96d25d6921398dc14830c51", + "1cb2cb815d460af6bfdae8aefd" + }, + { /* i=5557 cDividendBits=1817 cDivisorBits=1080 */ + "fbb229cc66b2d1c6f549f430537a6b5c38a600c2b331e8abaeb1478278a16f55fd3217a534dcb1568c631a723cb01c235d72ed56e700d085ea7e6fd8e4d4cbcd5e5d9c6f945539ac4c70d996c16e43f071c4e3723769914ac44bd04d60ed69e691e3200e8ad245dd154592c19eb4fa28ebf0b92a26618ef914f710ccd79956986e23579ac739a179cdf5b74a64d388bd2934f9f44a4e5684515081eab36be47bb8766b9fa477bbca1e13da9ff14d4c99a78404527e4067bb4d5d19135751e7d9ef23a7388329027c04309e715e6809571024c860bd1b2ffa02d0dd0caca4af7d9fd87f", + "ea23d35170cd2990ad37c1075085f91bbb883862270581e271a9bd8f0bc7e736473497c0e85f0ec45d3f8d51652e7c6d36ab0035c61b5b9403ae3268e4abcd5cd78bd1513c781a5d4a6c7a238628278a46e5bce2a0cf3211ecebe1eccd907ea2a6f800407d0efbe9dc8f0896b5d169d0afacbe3cf0ee37ba9da04c65c2c689537510f0dfd54520", + "011331f19122ab5a3f678a54caf36d2b085a7cda26da78cced943d89e97a71a01dc4137ebdf0232a913679c298f993ae23b133522c5de64710f6f1290cdabbe522da675fa28c6e4243a8a3025f5974f664b36718240ab0ede1a0b330fd", + "0c2b35e6f57000b896222e372f7856e31f1682a7d70e0581e8e031f5e74bfce3b3293c62cf357feb9b8d9ecf7b28e015f4a4fa6db5968ddbf63c757998f750db1e1589fb3d7025fbe4c8e3fd10062323b40a398d717a60cd395b0873bc3fb9224f0c91f77b763d1e56396b6afcdf18f2f28cf6ae9c4d7d2c83ffb9cbd8834e490b8e36f58487df" + }, + { /* i=5558 cDividendBits=1843 cDivisorBits=1756 */ + "043a0e51cff136512619fe6b95e8083bf3dcf5ea92591f3399cad5b8e76bb2369504a6cfbbc877f2e7e5cfc91bff3721cc39df1b1b483934c68ea3bc093c3afb59d37081612af8d31ce9a1126eef0c86822d9cc8f0bdea7b52ee23d789350567037d9ffdc6d3a48a4d4591cb2c759d6db9a4dcaa2b43fd222cdbf5567a1762473be4b89b2e28fd5314f22c28e97835a8e8c8a1ec2121fed7014cd6cf93f6596cb3b44530799567231bb4b1c9ce326788f3052809e58a8e66977d29c32105580eb143e81577e160078b62a19a5cbde312288f2d5d02ce00493df2302f4e1843a347a7b1ca6e34d8", + "03cdbc0963e44b510d5924c18a0f57056e9ba8132eebb4c31f95d7b6f1c791c62749f59b7159259a0f1e264701a33f5a317f87571b3b2bcad640503548a5d7e50ac7fd063cecab52e5877ac1dd81d95b82b130c729851d5785fa41e387c426c62a9d736601da766fc80580a4125c4da06e0c4830cf5c6b7d70b0e9946b6af96a72b5cfc1f7aa9c5c14d72a1c10173931d24c56d8a1d76ac8cf066e2b2e2decbf8a3040b3ff3a272ef0c68ed31d4367409aacdb72fb149e6b94d0a471dcab359b35a84bc9bb641ca91d0844aec2dc1e53dafec40da1bce8ca694a2cb4", + "011c7a707775bc7e19e52524", + "032cd9b1da73186cd547c15252dab121680ce311f9e7ec81af455bc46859781a2ff5ec1bbfb4f9944da0fa1dd8bdd70b3ee912122f1df2a6b81f648eee1434b0e97bee27cb957a3e314709fdb85aa05a82b544c008e1ff9d69d4a378fcef96a193a04cdd0b4ec3fbaf671c763a242f19a2e583a68e5bae0789c35e15096c82c722b73e013218488d7b0a61434ddf76748106fd80a0734c3574a40dacfc3d11ee75d1703666895c407b6f8807a2edef2c64eef106656c012208e6e1843dc7031ff0a79b4e50159b9976d05d1de4966ea6095343e0301f0bb3b285e788" + }, + { /* i=5559 cDividendBits=1525 cDivisorBits=196 */ + "0154e5826c9d21e3abfac784f7ba3dbe7cd573d31b537aa7d98d66b49a258dd06238becd77a8c7933f48f7be7ab8f193377e03cd67989a2c8c1ce19f177887223edc7b47525587ad37dd007e741990852139b8c0dd4e3fbe512945636594f6254ec13ec15025e0dc7e33740d3727d4da8bab1253b396c4c1184d675904f832406eebc95798eed510fcb8c01a0c7e654e3f17b043e7a5d99dadd18f843b7d0d2d67cde97300ccf50d11a980e0397cbf25a300fd36b52d1d74fc5bfd3c92ac67", + "02507a49b3e202f3cd8cdca3e004e441c73d79984024cadb7d", + "934bbd5f4051c5edadccb67e725c5714592bca60d600ca4b73105c4785bda0610c1aa99ea7c1274fb80d0eaf7f939288eff682f72fa082ef60d8d105e3ecd93120c8254e2f5bad360093628e85981fe9707e66fd76c00358faecf3be3745cf84cb48d1ff7b3dd0fd7fa329311f9dcb135a1f489950d4440748297c9660230f7f5eeef86ef19ec60b5d981fe19d3f72a950766b9918ca7646cc1e341a9bd4ed237ae5d6e6ada6", + "0120de83595481ad9efc0f3108071cf67fb2b6befb9a66e059" + }, + { /* i=5560 cDividendBits=3395 cDivisorBits=370 */ + "010cefc7190f5e6ba5dbc0bff70a206b36c713e49dd72b537113fa92f70e9500a47e04d3c443d28b0e4cc0dbf70a0299968779a372c1ebbccb21782e1be6995b80bafa1942e793acacb70934d57f90cc5100a6a92da45c68cc842096085fb1d2d73723883437c88090afce5cf46ee20d4a1ed82776f9e956197496bcebd28adfd51d1eaf47130e39ea427093e6ee787e5d859cd720264531669fb74720bf42fd9e11ddc81ed3f94ece92a559379e3b1ac270cdd7bea6d453dbe0d072cc4d2e98212308da4c1b7c6b0153ebce857c6931bfab749958c1c89ffdb47d0437eb8b1510303ef52a2bf294051f7f5971cf9ef650614562c11803c4fa75d79b25b7b0992e7ea26b2edc5dafc23c5dd872bcdaae85f4dfe1be1154968648fc373a13202c1a4209e7ec0f29db70c40d6035d15b3bfedd6fb85dfc4f9676597b964fe1c4293d30dd54a0b58df3d86a2bb141c9381e3728c95860a2f4377b2275e178daf6748db11dc263fc550556cbdd3faa3071f9e9ad49769ee83844f375a010f4f92902c85684039054f592972e7ac0b9880a05a9e8275236e8cbdcc30713f470a08c59ce8c387f20ab59b56a", + "02859ee14a4ad22761d4952adf5a06589787f26d8a8744671b7d21bc0e68facb48a44cff357b5c3f5b1cc71fa4c697", + "6aa35ca5a5a1f5b1ff86ff3bc8ae995c5960760a88035942dc806f6eb46ebe10e232c383342667b0c3e509c46a04ad2fb5184c76f3b4ee4763274bd77814c2993bbb94769dc113809fb7c75997e11f30a76c72737bc6e404bfd76176d6ef0afafa045d98b96fc0b01d5ea8cf3fe6d5f6221ea8645efd192bfccc9f6fdb3c463dd323251c59cddb3b9bc5cac8de24041e28f9ed9d0ebb6b6a367b14d3c12c1606ce8ff59e532b722788b81927b2562cfdc44b7c9d2efcbc9c7c1f4aa898e5a59b100ca5026cf090bad551388ebd87d4caf5bf7b4fa85490207ac524e2c92d332b0f98f581eb673d1fef44d22eaaa208e9f1c372d1593d3f91aeb2efbee7cf57a18b631e6c50981e66ef02f366177225fbf92a0db4ae3ddebb788fc5eadbe98c16e6ffa2c5e50af31a5e6d0b4adc52dbabf935f5c827b12dc61c910ef5e2ac37a0537f49ac1ff3bd1481d9e477da21da628964a7633b8fd3c246cd67cfb974ca7e3809a0605f0b112e2c96aac2b372bbc9ea07ac1487b6068b4900", + "9d707007c227e12ff2e7fde2dff61d9fe187ffa97ef1d1422052e2cd3b1ae7aba33d677168e9ea7cdba150bba66a" + }, + { /* i=5561 cDividendBits=2126 cDivisorBits=1581 */ + "237f66c07bb73d27734273d77eb680938fa680fe7126a04684dcb72fe5792b735f80dc89b392636ca912f83f6b95a63e08e22942603dc2e7d8463f2070a7115616be090f3bd2e771b8444b543aa15015445b96d40fb63803a989a4361db76ca4abccfe7e489b51529e803992662b637012347ba937ba1aa8226f1190a06725fe51b59391a0a1a1b15db69aebe5534812a4d856b62c70479e1e2553093bd6daad1371adbbdbe5af0962e9c59dc35680443accbcd90be3d83382c91bb92c9b0023ac3f0aa3dd84d8ad1e6fb16b7af882cf30df1beb550198e53d6fa418539e709d2fb03ebb958a5d47d45979e37cdefca946cd157c603baa3cf8f99990d5bb383ab918d189e8b8af22ac6f", + "197426c07125ae5f8944e262534b2b05c9946eafdd54f94a90a87574b1069f668eba654671670177319a187dc1c40415deb798d86942f68edb568bc7d930e150511190621d4f62f52d4829ae42bd3ae948b404f88dee857f94d837c7f7ade155bf12e451dba173d7fa7d229aae7f49d9703c8e6886c6bd886f2092c99cbe69692b63bc93612398c8d468032eb8f2a09a0025defea9cc41d655acf1b70aedbebfecdb0e9f57bd30af97eccf37b715361c4bf09a31ca8dd55815258e90fc7909b88a25104ac94b", + "016504455c9432109cd93ad3d04be6d165b01ab7ecc4f3d74c85f4aa26054bdbc2dee3de8e1d31af69cdb60a29af66077c88004819c035da83f6550a2b168c4bc1906294bb", + "11a7d1919886d174ae9863aec6ebc9667ae652be024af9b86df4015c2254563e21237f0f407a17b453af3dcb0aee606e9f3e63fd44b5fd77a5df36c1f4baa1f40742f8c5eb9d84f1b2602a815d4a5830c3bcf92147ef8646fa0ce664e4bcc7e53d03b16ecfe1c5168cd8736776645bdd738b78a2bee484e9b2df3ceffcb33551fc11cf478ea0855a60d6b4cb697f814aca42bec87c0f0d61597d85e24bf5d84d3ca57da16502e94caa88276dc1cd3086b5cbbf7243ffe98fc4f6d5f6b733942689d44d6c46a6" + }, + { /* i=5562 cDividendBits=167 cDivisorBits=31 */ + "5bc4a8bd479cd1985e6b3ba04f11f73db97ff880df", + "035fe757", + "1b3190657e0f4cd07eb7ed312cd1ab1b5001", + "01206988" + }, + { /* i=5563 cDividendBits=2527 cDivisorBits=2388 */ + "140c228a3d7da329e248751a7bee1ab381c6c87fa03bfea427d1eea262513c97a3a97daf659d01a3ee104d8715a56fa2ea50e9642dc88842680b1a300db93ea2ec36d0b1965686045de0d8ddb199c7028a2252ba9211c579a1d10fc85b0ac6c1db7bf33a36d93bf7e6f0c08d9de6ea61fbaa880b752a6ba90c00b8249b5f6db1705dca2fbd22c0865043abd37011ac3951c1ce3e5d5481362232cf459c033a9443855dca0bc112de68b01053ddbd6cd615326252e7a8f1f1819d56dc8be65f21aa8b8047966f52ca1c1acca663e67144e6b104cafcfc70955078bf43a37b3afadb475e0ec3e8ba258c3cb32694628b8a27e792e589f4646685953f561f0d06f2a3fde2226240c8788ca16310631c2ae983cd74a3a5e85d6fb2f2e5748d5c84ca30428bace99c53d229bb334931fde285cbc5a445ca5d1a2a49122335", + "09de7d3b5487afb24e56231616c25ad5ac824580d82496d2fe70df1106b77b249ee5f70fabd2c5e2aa25a1a0cd2f2d6453be4dea388ab3341c990fc49a9322733ee7be2a6088aaf22901c2ca397d22e8f8eb5d17a379ada8fc4a7f5f79607aae2254c6a34f9b086b11ce50ac46dd195b0688fb7caa3f8221fed15b26e81bd8b41a8360d25be2b875a244eb5c085d2ab4634161f5a6fd7a7ce3001f58b0a89d4b5f8478e9b84af2e58991a9bb7dd2b78db8a0dc1acbdacc9a6b7dbfd2dfb2f8430cb1b9ffa5bddad91cdba362c69ab03d6b449b8ff5b6985783e98fb90eaf988b778baa7f4c63131a5c58ee5b05d1fd3cd19a00657d697cf0b5fa2325f3201941f1b4d367dce17dd1c723c7790b8fa5747f7b272d788b9c07f2cfdb729e70b38387bb97af697c62ab12b0e4", + "0208054915acfb8b6cabcf77ef60eddf6d12", + "05259f527342aec8338b690dd8bc75e4c3ae95dbd0043ace810100434a95fd465911262a27b36b246f600e035850575fae85ea829928a6ebfd469d926cb55ec9e75e755bb8bb7f0ae77d8ee94da79a7338c3ab6995e4e1eb2f5d97627a59cbcb2d0bc18dca5ca68cdc87ff90bf07393a6a7f41b176a8a26496600a9297c6b186d020cde4cf8ba1ad042a5b61a805bb763c2924685eccca75e228b8365d822c217e1a0db7739d6f241463f43920f5adb937e87c91191163b5cb8d0b86ee4b6056c712463f5bdbd7904d55011c60675beb19917337b28f7714b8328c773b969dd72b707535652562459f652e4030b38b8656c65687877cc7e7a3d6dedd751af8c4fe255ff5d2b99e42123ef688e14759ed8f4a15b8466a2f74c7c904190405e24e0bab25a885d3d821d49f2d" + }, + { /* i=5564 cDividendBits=3624 cDivisorBits=957 */ + "1ddca1a56d154fedf6c9ac6c8e99b371cf2109625435b522b609c8778320269243a0459da50d50d069481fd5e6ac228616e8439d46ec9fdf9bd6834634afaf4ee3e5c31d50406168dd9315240b34d98471a1e21fd0fedc4a8eca8d1ec32b3f743e8e9ad7ad0f440e0fc0d7f126094c656df41987d709a13c39aad3bf3ddadb8d7ae661c2b11aa39aafcbf221035c464e278cc254ff7d8153d083c769187d0e9bff0e42fd2406b4f296f3af587f33db5689da9f0bf61331d94e079d28a493990403ee4bd467aac032808b04dd995582a5f939cdeae2ba5fd1a20f5e1d890d2d8d7760c7288c7668040e5cd25a431ee90f620b5c361f955e5188fd13b3ad29f35c6468c9826f0f8c36b45dc31d6cdf310a5e87c6887f27ab1d1126672f2b28eb2682868918ef49c2907bac61a162172d0e67e7a68ff13b63fa891f8d0cdeba59125014e499b6bbba935b7b5333d9cda559a8eb66f6662ca6beeaa0aeb450eba747d401ac782e67fce05967b2ee60ad93269d9beb0c5ea0248fff8290c5f69567e1520241adc0ef6912303c0cfb158f6cb23fa33a3b477a949148ac010590a0c5ab624d960275a89355cfea74676b625546ccae3f985ab27f4c6a2ecba85f29cc2406d3504b9c", + "0705eddf049dcb474acf161cf082aaf4718e91ba85243fcf0c141d529327cc47d1f28b8fe6ac273edc6d31a8eaa5a47081143523256e26abb13c1a5fc5061a163bf6a356e27583e10303d905be3f91b5b26145eab89a026fee2fe4d2f3f31cdbcac36e9e893abe75a4daae91ce0de164634eb593fce5e79b", + "04407d1d1c6c60a2781f94589a7cb669feaf216447d424fc3274de2ce2ceefaa4f2d4d6c152922f6b8167e114ce655fc6b0af2c74a7e287b65ea107f3ae4bcc555762d7411fb777df0c732a19f80d044b99afe1ed101e57e5c96ff6ac27e1e070d16d39068d77502df7135d5f5ec08dc6f6e50f9dd1434004f2c9849d44b915e1c4930b1764002c9c1e372e02639d2f272f6858b6bedbae54b71a40e9deed175b084fac423dc72b17787579202056b7a02d5b074875f11ada761f5de2455ccfe9586677dcc3295cdbd2b397f2dd09e259b0b5c1648f77361524b95762cbc9ab75034358485c83b6af9ccaa10d07bad01ffec83c7f3fa96decf6ded702d74692f7912788dbee06d30491b6f049469fbb9d8f95fda35f59b8d8a9203900337748442beb177bcbb4ac7204637194331a5677b388ee935a74d91f36f28377bc942f318d9db8839da5aa75e9dd21a8baf", + "03c64e0ce509c6522b11a03cfdd3ed64e3cff9c86540bcb22a442d2e44a86edcce98d576eb4d1b09bebb4a4ca8b382888a31dcecc233604f23af11de2487a1372f18add02cd7bea1afc0c0d83d124296a0fc4f8e6034177194915e8292f0bdf6180e105956eeae1941917b5d142f2ede9bc36e2671a7cfa7" + }, + { /* i=5565 cDividendBits=145 cDivisorBits=139 */ + "ce3da8834cd84330c52bf797bca4b7a717d1", + "0644dc566cbee135dbc468111574d5936ccb", + "20", + "05a21db5b4fc1c754c9ef5750e0a05397e71" + }, + { /* i=5566 cDividendBits=2330 cDivisorBits=1464 */ + "036fd49c4e4a9706db1dadf25e04ba9720ab8b9d7e54032f3000d4c45ba7da2a7d32145e77fc9ea73bcd92e0cc4705dc9b8a01f26579c89899eabd33aa61016add751ec5699010efc75280ffa683775cbfddaf68359470f6161e772982790879b4721d19d817bdc1529c1184a26438b895d08e626308a3fecfe977cef68d14ff98a3b3aaf23e34bfec97379fb93df8f452a534931d54b62fe930dec2f5bbe3112b16e8080a44f5ba46ff2fcb564f93d5a881fafa29dd8a74a363d851620b1324ad6100cf882235fac1940ccb11271dd33e63bc739e5eb36fc5f5ab578f4ad89f400211e509e12a1815d051573d078e7a3b69f22366b1fbaa87bda5173f60e1afbd1aadb81b4d3180eb5929500f8fd13ca451a19325763e08941aaf05a19d90ffcd940687", + "5208f1772b250dd6abf77f6bde54d24f79770aa8439423b7dc0244ba3868a867ca958a637f0a652e500e262ddc54aa831075154b73eacc5857b88c2be2ea8f29d035c0853d4c70e813dc9c99025c3e484e03ec0b45c13c2a0653bc25423a98bf33d6bc82fe3f20b162d3485acfc235e7674f9425e1975c66b8479604ca901e8d24f13883b8b269745430bd19023fd395a793daa523667419167b24f91a801921e009751a539c684b12c9e02f5ea68d419f0278a973e2e2", + "0ab99e43836f3994a9958afa62bda3547736ac7e4a54b997806e42aa9f2cd557f995055cf39473840763ef6336ad382302b49d7ab2f002907986839f410921a92067c39df14bbd75be108a4d50206ff9f2907c981e54c8eb6d228109288f427b8868ec8ae7a3946dc27b85366b", + "275621283f52d18533fd2110e813a861d9f73e50f110fe4dc8ce612b422aa5286655e11d405086c35a597e3de182a0a61ffd83b3a704dc4d49bdac7cf614dc05a67342be8d60dedf3438300e03dc12fa17a022742b9e4be4a90ad69b907d72abc2e6159ccc9466fd003289d71111f155044440530dda31fa5f2804bd7a2c46b8f79465308dac679a9a4be3b8fda5bf9bb63d06e49c0633898f6f8964df2d6a7fe6527e67b482b21efa435d62133a5d9573345712de8611" + }, + { /* i=5567 cDividendBits=2012 cDivisorBits=1281 */ + "0b684835c97c30af3e41315fb9b66897ff1e542337ca7328a61c26f208339a596b4f74104a3bb493f2acac4793da7d742c7db9644d5d148273a3964b0b62ee562b70127efc22293520e09ed0f1cfe118cc625ff7c5e099a78d6ee8430baac9b7df888f84c1549d300ccd6a78d08ca031fdc4f3b9ba30de50baac8373cdffbe9e677c60b88595e25ee5e927facd9e71081fcc05eba2e19414ad62d8d098d7174b0af363beb2032aea868ed734f6428e3dfda60421558505740daf4486c2335ba99822f4aaf4a2022986dde16237cd7cf9f03a0290d5332cfb75c684a7de28bc6392c0ca4f4611c81bcedbfd53070bd62c4e9f1ef2cd1962d427a8780b", + "01580ed89455850c076349bf1e7d2050a3e55ce2d8b772212114cb7b0b14c4efad4bf51f081c11d7cc4aae99b3beffbae81be66c42bef1d361e23a4e2c41ef8feacf00377f7005b6f3f353b7168f69ed1dd8037699e2f9c40e44ba65b18e893edb94881247a987ec564613f18310ef29963e84fb7ccdf82ea31eedd6137d24b44b0a95c7beb1378bbf73fbae8a897789a985481769278a121b2a35c6c42b7f7135", + "087cddeab2e3e1393cf4cd310c04f463f891eeda0b71ae3e8cc37c405f0948b2a90343d8dada003475c3d183ebec0ffe65b71919bad34299f6544d76775a24e68dcd38830898884332553bce3e84e072fce4cc374dfa1eff0f7f5434", + "82dd971e78c24bcf24d32c0ada0d0a9f6b1826e241e48ec8da93b3b196cd32623234dfc800ba2c6b6a45355cf3ff0deb071a7eba9d23b41ab7c04e7c007b1955114efc3b5cf2fb628e204298054749e7591dd385fe40a1a1a61d88535833a2c1e5a66e4b9b7aeff96ff052828271e74147e8aff6c0d4173beda940f8b33757db93121c3db8a47e1ba719fd9b2fbc7123f6bf40a00a6017dcb91e9f0f3c551547" + }, + { /* i=5568 cDividendBits=2525 cDivisorBits=1212 */ + "19875a69b3886c5b10467f9a93705042d2fe896d8a4dde5896f39e2232a32250e46d51fd3df361794548a091a3a6b2e1fef425feea7863ba20212b98acb221df73c6dfa6da97ef97d2fe4359e5eed01c233f5a507b359f10c4f8c1d8cac22cf6468943ebf562ab547ae55e348f4df1f47cb0eabdbb94201d593916680499fc7c3ab6463a3da0f2cd7b3d39c2012a83fb8d8edd62b29ccabd0ad068007c11c2c81aa1fefc9e1fe732a9dc5f27331f68f131f63d760b01a4ca9ae8677e1c0bada017031994332aca9ee620c6a0aeaf271947d2afbad38a5384d8804321ff620d9aa3d7f27da034b32f01152e0a2973f24ac3a4ff865f3f5efd5b9308b0f117aee31c4cd1b436671d5c0d15a308f28e826661a31ede6554952687aea91ba4fb7977640a371d11fb8f2b56c38cd13bc7a1538e8e1a25033b4ea556051968", + "0fa88658dc58b47674695051172b93fef6663cddd674582230c996662ea30a6420eea9ea1b77d7fa3f1f68f2873864a720d4e7536e98ec429bf910f4efe341ae684f229f2dc803ec7e67ae674a412a5c8856190dfe71f8f89f72a11292ec7d5948e5dc752b5762ea641fc07a35498a25bf7d476199388be03182b75075da6519119c5816335c21acbcf31b30d2a7022b71b4e677d05a84d6", + "01a15f835fda365ec5b45c48fb1f0263ea55600889b491ea90a441d2ed7007c223fa3f2341c05f2f1973023a7dc2bb84f4ed6b9893fe5c7240628e8030580ba741676beed8a3a1e0991552d4586290c931786c03eec8138949e6ae321acc8d56e4540388132dc06fdc937aa1cb92b1712c7905df9d42e934d5f3f52dccb4c796f60187cd6ecca9bc0e25e183e409941fa20de595874e7c68273a7bca39fab5218f914e1789", + "0b7197796926cae3125416456f0ee64fcf7660c8381389ed1c897348dca0ad773b3ea00501841db587c5fd026333d7014883a941d7447497fd59accfe57b6652fbd19c771be06a76b257a7dafc53b8a19eed49e65b4a41da80ef451f82d30a82d3ee55e9c763389ce31b88a7d9ee9e7231961462d08334ce2410851b637fe5303eed7d2cea86f4b52e6766fea39c99ddde34aa730470c8e2" + }, + { /* i=5569 cDividendBits=2558 cDivisorBits=765 */ + "058c5424174241bd0dba0c32c9d00555c940b54e9fdd97e72be729caf4701cc491f1c542a2cf792bed563ce238353a5856b43d7c4282dfb9e98ff766dd11c3757d45d529504120f83053ae0c5807a7de6bffcecc550079813145dbbd3b1e485177a5416ca167c061320f7dfdd6535ebf2e06402860b2249c29bbcd64c092b0e729b5c4220d1f5c22526dd77730e917cba59aae81cb2119c566c056d6598e02a6386d007b9a40821c7e9948afad6fba7371aaed64ca3d35c19f108cc9edd95f269b24afaeda194429f8bec3ebf0a864871c6308c4d1d7ef29cbf9118c3b55282e1df019a1f8b89df8ecc7ba66c0fcf3d7d71cf6498780c55f9d1310e7d41c0edff6ee0791d95d076d33157deb39326869aed1e5b472f8dc9a30a15582f666d4bb55ce385537f5e6697be39c744a89b36a6eb43c12e9dbfa93f82c45fd357c14b6", + "17321214d07cb17ac72a6f937b3d66e9868883be65db48f04142d59ad16474d08682ee3b514f462dd9053c0cee28c5a4a7f1a465d9c81a76fdc9c8d22ad0bbe965ae93249eccaea4b3beed520a7ab081cd877fb734c60b9e3219bc6f8f7cc2f4", + "3d3b92b516d79fe00cb76faea28b85af12ffedae845f65b8f37b6c4bc97f53ade6a9649afefb88ba601e04e3948572fdc9303620e541112e5d45b383ed130d3ca16daffa39f1d2e0b2bbd558d787a9b6628efff86542827ee4d6811f41297ae53c1e70be4b9d6bb18768298323c3de33de62f2c4be0ee3dcb2ac919f3827424e3a004399d6a20fa75e60041bd94f44856b3a9e3982908795c35e741c3e8b855712500b8ed30f0c0341f83c47797dfe5abc4c5d694241c25d4ddf15bed91c429c346bd676ad88b581a96ba4eab27d56fba202b12b7ae801493e2828a6cebf3d5b", + "0451e7dd4eb0dd06a734d329e9220b5b17a332ddcc25bc94c38d9ef661a172b94723c5be28e5b712c4afdca700614e80fd1ad85cd82e4e874e15b0c3b4b1efa05567a95dcb978c01dc6296a0f4696dad77a704deaa92438692f0b7f6ada2a3fa" + }, + { /* i=5570 cDividendBits=678 cDivisorBits=421 */ + "263c603e5fa32740b830b05f909a8c8b365bfe39c8f5f4a4f8b3bd2f19a51ea50915dabf2ab80cb8add728a020801fcf0bfb82a47170bff0c4c00d29f8d9e536768bc6898364ed18e887ba9e9708c31b8fbb9eb415", + "08b9bf7a56ae121c945cc98f04d2a1442e9df2f85a4c9aaf4dbc5175893adaa2e1c254366773acc80ad1117d220b165422cebd3fd4", + "0461cd766cf8f61d4f7e8309f20aa228be82859dd3157dfa8efc9a5f53bbe8c132", + "0730ae710e86c43f277283b11628c94118bda30ed0ff96b140be87f600f8b5d387c8686b881e9304f0704add9d04d57808f96968ad" + }, + { /* i=5571 cDividendBits=2448 cDivisorBits=1654 */ + "6e50ad4a129ee52f33e8f7408f33fac64c7134c63072c22066e42f1c86a03caa7d2db0087d100cf742e136580a3465a4a4af099d14bfedf455574ce46445c0bb11ffdbfbb562ff9c3c35ed53fd12bb2188bc1416d84d43306f6b93eb5cbd02f5c2b074c4ab84121f59b66ba39800fca4091ffdb0c7a0d2b99ee1fba0fc7862d19ddf665d614c38ab2a76f7f0293d691a78cca17cdd90313f1474d77131985377e8253175b44adef0dd514afe07b0d6916528e8fbceaf24568bd1bdec61b08e1294a8ee01b9f65e95258fb5700b0863a39548960a23a30b15d683dcadbe433a29fbbf3069acf368b557b908801ca5792f79046e9e311882da77dcad6a523d0dce0d34ef58a156e749e28934793ee31befcd3e8ba5d0609fa28108341609c5922be077ba296a265ad4386a317c016237917525", + "320c91d2e301e42f96dd3df02fcb830e8d43cd11580a2701b4b5c8f77fbbd7b350b2bc76d8e4f78dfe225fa4c4f387c034edc87a2a514a2dac4ec38822da7e9c97d1fc63b72984873d0efc7e89d6991da6f4cf43761ad508675c639bd8da23ee4d8dce1fb5d7c75453ad5b69a3e849c042d483f915be62fb3a07a9ec0df471783d7bd2d18ad8bbbda56ae9fe5e30361d8c3b52234258fb3ec95ed0fdca3f858f711a52c9381733ea59e31df15b08a36c86ff11c419ec739aa13ee4440373d71ae7b5e131bf1705f3fc2a67afce9253", + "0234426a4b0052a9a9fb3b2cf4f142e553cd9c67ab2bf1b1e13bc2ca748f29edc98e863e8cbf940a24b933caa4adf313d5cc484eba1dc39ad7f38bc93c6f3432563eba8373df991e3d59a3fad8be1c8026463e90f90665d248183caf811517f5bb65a869", + "02a1b8a94ce86ab7bf6ae7a18cb09b3a341aa5681349d8c71a55e05c4e926a7b8b0069e197078d100f0dd7e4527f952fb18ad4f87096118ba0bbcb44763f2705a5fd2c8ac18483ff358dd29eced2faad238e51a4053d4901671c4906b4853871564fe535446588e437f9bfd7eb39cbcf92a10bbe70d1de1d14540a2b6ba8700ef6aed552f7defe33bde3fbff4152a724c310c7180dc7b1d5c6dec5c23f274e3931496a877a736dc977928a994793251d17881f81e3e15112273fb3430895f4cf968591933f84f3873fd1aa3011f91a" + }, + { /* i=5572 cDividendBits=656 cDivisorBits=412 */ + "e6910a3df9c26b463b4d90361d0d43f077e5e774e4c000f3be31b6468c82e86a322462b29f38ee26c83e9707bee623e92634af758df5677d68d86f5bc2f1a464bff7020c1d97aa897a0aefe1feccdc94035a", + "0665f6719edb35018492279dc0346a7edee223a514b3af7621f5fd182492b0d49f58731785d59f64cf94e5ac8447cdc0d60ac990", + "24091ffa31103cdaee26d16e738de9b0743e77ca1d7ce28e387f8662d645c0", + "03832ad7a330e9c14ced7ccefb09595608b87048137ac6423f0a61cbb1537d66e12b83144b45edc35612cbcd334bb4edcdc9075a" + }, + { /* i=5573 cDividendBits=1974 cDivisorBits=29 */ + "174890843326770b106143c12d3d409ec9c12bc7a0802902466e11384560eba094ac40835d13d8a13a901d07731ab0774e879d64696afa9427cd5de3ae20b16d8277d12d70eb45aaf9286aa89ab5c2ba8e2041d97fc287bf04daf98e0bff8665f22b6c82760a31a9e7c2dd510dc4d40c5edea0e67d2467f1765de4c3f62c01a0aa7f58ff88eef336a354e5df05bd9bd9bb9cbad4b9ec3dcb524c94ca0f93568c1a02f1dbaefd97c1d184c1aa61cead9349ce7034abff27a157f7ead280dadbaee9a0376a58edffc4a0dc9ac8a95562850e13a18d7675928e5f8923461220cfbe5d12444b4d90089b4c044b46c710911b35683244d518b7", + "0e3d6cc7", + "01a294a8d90bb43eda7a5cde8f7f4ff36f5022720b7db18d91027283451bb90250f86f71834e1d4273baa77568d0e343d9518ddffc2e9919babedd51ad6134ee46381d481794902a41d3bd2638c98168f37232752e14821754c376eb46d0ed432c8e4040f332276ed90b750fed1c674b9efc1f0a246eb2bced82574f7d8f80e96fa8437064a699ffdef7b534773cffbfc4279ae8cb468d07838300cb095cbf4144e29527ddbdfc1567fb85c65e5519a8cacf182c5a00e47d2c6cfe320b3f5d7eb733dcae745c849ec7cc5ee71ed61efcf288dcc33e789f27ecd31071b64806820bbd4b4fcfd8330c3312a1603c0d05e5128df65f", + "0de780de" + }, + { /* i=5574 cDividendBits=433 cDivisorBits=413 */ + "01bbe442c5617b3fb6f0d10f410d93bc395b30afe591b7c122d7b893ce717dca35a85d43c52ba88ce510b263616132b8e43ad4c14feeeb", + "0e6db0068fd197a021e3a25bfa62e7b8fb725c5f9aeb74825df0fc548e45148deaed475399a5fb85a5f8d4ba4775a5d420bfd704", + "1ec3d6", + "053a61e29b3f3e774f83ed5fef5c479f8ebb5f333f4922f1ea3e6e57d52cd7f9c84adc4933e48e642d814942f05f30140db22593" + }, + { /* i=5575 cDividendBits=2592 cDivisorBits=503 */ + "46582fb667ab8f6af68288985edb0e780d0376abcfaaf2761dd40494cd6edf806376984ce1fecd71c042e111111240ea8cf08d7bf914282f9a11a3fdf71d01d9f811a84d22fabf11517c192649f13f6c11ac468f3cbb32aa1fa4bb624375eb6ab63ca808657ed43a7da034769d5fbf2ef3da067ff8c72df54cefede39a9bcb52c510bb8416bc1d08b2cac0d7eff09999a0f7bf13e29a102b9809e54005c0c4f923ae3f3c4136199391883f6d173ca9bf77f807ca2bb3d44c5d021749b5dba3aee81ee3cd68a47c1512a2c10fec1daf9acc7961a9e271985310f75847c1e7d0f42109b15e77d7207b9a9749f9ab887711f1d208238481e430c17984318898da82aca3e44f3fad7deeb4c5452ef73cf86b463f88a2389c251f8c93d834c6db0c10382219dc7c3470d7559502cb73290e4bef46ffc9e0aab749f8959d6ca67c80252392c5a3", + "0766c15587b9ac69b97e3282748779c4bd359e7f7c29ecad81aa49ee720f838dc182361a3808a6c6cede736031c5284e9136a97b1aa35c04e6a42df8ab6df3", + "0981151d8b8bb8f03610e46210c99924b3f92c4fb4ad28540c26eca1e5d3aec42fecc0d97c06c62ab76db8c2a424d068e42c360e73bd4bd5628d67f20b5c994d8830ad28714bad8e4b6e516ad75a0a73e9316a8c2bff66f4f0ef4dcb9ddfc78750dffc902a094047517c6c091edbf87792c24395e338906f0ce667ffa2783b09c7007ed50e3fbedb710a0a162c778e3290b487c735b882378af5b1064c8467e56a4b1db9c60bbb412fc0bce000de1afe3b6f7db42597d0ad9784f781c0159da57ecc62369597942352af285d82fe61856e3ff1362026455a3a06ae53a86cc0e2a091a1ea4bf7d74c337d721bf40b7a06874ce8c93512fe58f17d3d0a7ec65205296e844f6b1d", + "05ed8cb7123ce9a60de00f267503e3f9e4c2c75ef87d1dc4a751f00a8b37e4c92d734ea7a830bb96f0d94b844e49a2d1a170452737e508095064fe1735c01c" + }, + { /* i=5576 cDividendBits=2771 cDivisorBits=2163 */ + "079ab980e11b039cfeda96a635e6e8f5433cedfad91472c66ca4b3877158f8075047f9956e0d63326d02b442935d5115c55a5ae1ec66b5579eb82946de32bfb2fb611a323ab650c7f2ec81af566d6fc96538145178fcdc6d917a1a292b6b2b03ce5d8532235c98e067f79f3b3fca9d66d5596af37305358f4138938beb525fded52b61845d6f25d4addf70fedbda4978fb04139685bca2c308fcd19e3c356a69893d65ea1191d3dd47499bf7c361430cd8f730e69769a503fe53200d5b3e6132ead8354b69eb3990c7886a26ddfb59765580950f0f12564720c50cf1e886533d87692760c2ae43b9ef6a0bd28a594892bf828df719e1dd05a6dea435fc8981592b1b47f6d2ab1765af42e7ef554ef572fe2d6abe7f6b46de6a67da467c5ffbe7598bca04ed95d81eabda1cbfffa35775c3bc53bd9947393fa6c98c45b8952f139f211dd84495f1d6c90574053a502086cfa6198d833ffd55be4750", + "044cf787e4459f096db4a3614ca85cf3d4bd1d77bcb0032e120a43f692b0786bb6e4311eca28b93b7fb683074cf35fbabdb38318de1a0b1de058d95c22b968a28cf9b4669d038e01e33be6dc2a06d6bc77821da77b4d105639f6f685ea9f8a2645d59ab8382ab5aafc07f3e8ee9db0965dbd8c651ac88e303befb1b5ec5ba82d384f6b4839cb5e82f3cfaae30f3dd77b9c0378f3a382a47a79d9cfdeb8babd58fc0724cf37e3bb807a5d993d1ff91d26a1586371ec8f3e56f19e119376420f5deea8b7309a42875b1c39b93ef85564c3eece665162d1b87a235324ed3168b9c447a78724baa3ee7db237c8791f1b319362da9ad9ba22f36718338aebffeacda7075d3502308c39ef934d57ddad3780", + "01c4a873e9d87786ea1bc50b41855b33fb3f0226aa51897921f4c36d582908f766f81213d145f716bb2161032a338095d5891d61b1c38e4b3b1d74c7a4c7e406d6abe3537e2b41d8f60c5b8b88", + "0126ccd4b9844efa2784df2ff36f3fa3be68a7ae8641265a56da38839357ca3bf697c02919b9f5a9c80e98eea869137e01783e66cec302f11c8165f1c62820286599f730fee852b0d922baf3737097859c47c3b6d5aa5ae6a4725c15b904f150a88137d3b632d6516fd59ae905258ac845297a7808cbe02079446dce7a9f99e36cb245602a027b94dbbe862998a2834220d6fd8583fd62f407199d3483076757538767bb3d64dd11d1b0f82e532db7a734a31e03a8757710ac123f26350f9a6f50a9f355c6d83045ceac36f3f658e5d5b2665adb31e9b22f8b5648d75a79dbb4222187595c9436dc8b1da638e0a3259768cc70bf7d65199410fe310a776b54062e89f48ff4f979ecdc33c5ca164b50" + }, + { /* i=5577 cDividendBits=104 cDivisorBits=2 */ + "7c062a04581874b57884891061", + "01", + "7c062a04581874b57884891061", + "00" + }, + { /* i=5578 cDividendBits=138 cDivisorBits=74 */ + "8a52c3aef838d18fb17ccb5fe347ff1615", + "02c4aa99707c44ead8da", + "31f7da1614140587", + "02692a689efc60e2791f" + }, + { /* i=5579 cDividendBits=2275 cDivisorBits=1063 */ + "0401a3091123d66167f7be3908898f569b0531ddf846b229222db36c047fbbc72dbf36366e1200ed6a7ab9fd58c96863ddf3775ea39e16e973aaddaacec65f0b7dbbff330db7ca3ef98addab93b79d4b77326d9411b28d002f632a9be71f16c9cc934375d203b1b032314a0fdca23dd7d2dada089386d0533a95818af1e78ca15e57d9e94c9e0dd45b76cb6130bda01ece433a3d74038ee5259a6ce99d2a9c8ca072c4dd5c582a219312b8971503170328c409efadef7c2f86e302265ec2a46aa35daf8ef7ae8235aa1e3be3c753da75387fd98de1b1a1f92b8c0844976469d2563221981f95dbb303bb43828a4dec628e99a21674a79a19780e3be0502d8329118e62d0a27ef684926a34b5dc5e2844e224ed8454f5d6a5088a0bc907", + "74f8a4e58367f29c1b93eb13341c4c298e9a66d0f2a2c0529c63445bf0b3734b17caea60d12dbfc58696661f9ebaa15d026be8bc9b68af889b7e19561ebcdbb1aa92edccd9e2a9b51b504050c427584b6c83d3e78204150b6e99857f7d3e5536082d11070f48ebd4b1a5dd6d693774e23ec6fba9c05e7e9fca6cbc6db5ea68edf09899bc34", + "08c4ae05ca2d037dfa1eafda4a8a46df419a67f05d388e2f543fb1bd88207a16f2dc765c8e918b3a850be0d5e613b92fa160170d039f739a7d05451f75da2ae451e503468a77609df993dc7fe53ce3242fd894d029cd2ad3e9b8e6eefa1af210df4bf443868b49a9df0997d0a11425feaf5b3ae6df6a16c1bcdc57d8918804aa3e096088fd289a496b09eacfcae69cdf98d3d8ff158181f6", + "55db9798d29563e3b6f2c1a08a9bd26c47ce113534165b74cf30ac9459a6ad96a7ab0697652091689a5d30cf23108826e8bba3fc8c916a954803d4af61c8cc0d633c0c4c155cc235a2c7b33780149d8e3afc1425ac961da4711f0629aa9db41713adc48283ca4f87a4e0c494f0cf383da562a27a63e0852fa0c529fed77b8fe93c5446bb0f" + }, + { /* i=5580 cDividendBits=1410 cDivisorBits=1313 */ + "03cf564adeb8636d0582c49128af39ce26057d7e1d593f53398426f940b3c685f02204c5e3704b97f3ed88691154a8cb34695fa6c7ee3330d3e56aea127dc936eed35d8b98eafc8e3fd927d04485f6400df38d73a2cee6c0a194debf5460cd8ad9c0542b2609ac6c43f051ff0ec53d8afa3d73cf96bff4f11301464227dd3918755cc764ea308a42faa93006f0b4d647d44349ae526edcc7bf8cf2fee335418e25d82153385355f76d90a9e39043a33d0e", + "cd00f2b5c14f9148ce3e92340f1675339b1a7e2a27a6619eab4ea053d68181554392d097937ae01412026fb61836a628b29e0dbe5b37f26dae57a7c70f4267c26a10bdeac9afc0299148686b651c62d26500106eb709c8eb6164bd653ce6454e8aea54f033b37a369df94a9a02acbb621a80822124bc63efd65d25aa64752ac52433b73c79f0df0907d3c472268823c327182848be4673bf87ea836c5e5b56f3009ff636", + "04c1f5bcbd6e8aba62224411b8", + "a17a6bcccfcfc18fa6786dc943987a1c465dc029d7abd840e4170c4f614e1274aad1058f6f57adb3e78288be0d287c2e56068e039eeff9a7b56d5f7393debe0348d760d5d42e3afce744a55e1b44ff24aaa098f60f1f429f0821d636054349831bbd5716ec087cafa738c499a0a26de5b45768e574d5c2156069cfa4a38ee25ec9b81813fca2301ba27c91ab65c19505e7fb3c1e3ad650bab6bec617ec605c009ef8b03e" + }, + { /* i=5581 cDividendBits=971 cDivisorBits=634 */ + "036200fc2f41118f82bb535d43cf4e1aa6971fb79a029364aa8bf4fec78e402362794a6c10c662cb8ef79e1268edc1927b5fc1016d4102bded886c8eb9fc5e93e74636b212aa88486035cba5c24170d04290372534d9cd02d6cab4336746605f2b1964725ac865aa2739aad0ff5dd9d331b13db54a892069a1e0", + "02acff6c93f970c8af028168af3c33ac52757b89875dfbbc547e7f46ec99e286a6ef81f037e811cd9855be4ec6839193d80b19a8345f3b13c6d80f4436ca43e0e2bbd96ab9b94fec7284d3bc83a1e968", + "0143a573b0b51a732680c8815b351ea0523dcc5b5bfccca037e099fd6af07d1e1e399d804ba71528e1415b", + "0da9a4f87e5c9ce0bd7bc0889e83c4d3f2b20c745b4f8842965e07c14547434a4e895d3164ea935b9d96deb2b6f0a808682711d88b7256c392ebce6ba8fd45a515f6fff06e2d7c74772dcbd53041e8" + }, + { /* i=5582 cDividendBits=124 cDivisorBits=111 */ + "0b0e7b16eb1619f1eb64b8b3953af3d0", + "583e26eeb0927b7c2faa4d4990cc", + "2013", + "299c314cafa33b37e566a6abb4ac" + }, + { /* i=5583 cDividendBits=364 cDivisorBits=362 */ + "0ec15f7ca91668e98c2fb1582c48a682dca1c98ac6d9840063cc2b9c9d38f75acdec537fc05a03e87dc2b69c9793", + "02fbd71fa4c2db3c8418e769edc4b2d0d0a014da5718629af47560bce767cd33b8270850609983ced93b6d7e67e5", + "04", + "02d202fe160afbf77bcc13b07535db3f9a2176216a77f99491f6a8a8ff99c28bed50323e3df3f4ad18d500a2f7ff" + }, + { /* i=5584 cDividendBits=4072 cDivisorBits=1518 */ + "4aeabecda3dc64531b15ec7edd510b259caff50565514b1757fef7155b7699a1e633c6c0009f781eedf1fb5b4d9c9bc0046b791f0af206b0c453b40bef847282f3a7aeda5df648613832321feb1f89343f79bd9269074def3d16c1ddd3ba1afa261ef4d6298d8a5bfa210b208d6656b50ee92eb1174bba33da4829f44f74d99b2d01add491e4fc30571b760ceb75ca2c298e334916c059732a0f2a61167e2394ae9f3184f58ccaa17bcc89c9a17cdb7e53de50cf7190cb824967dbe8b9ec92bc938f3c60ec497bdda8f50cb2824fffb6da9911a8e4ad39d6eeaffafed1389ea67c9b65bab8334a18a83461ade5ca26d6d0154905a2938f7fc2b813167084da4e811c0596771d0736e3511bede43394f361dba7c0503cf94e2a75c86fe99662c54e43a0c07217ff7bffa4eb109d595edc56453119f464622696e48e952835167ff5dafd5e266f621e752167fe729905d40c08c4ccb1fca2b774ef0a1c6b214434e922aa5b36f90d2e0c46d62647104ba5cf4828a221cb62b234e9c24308d166a970dea5b22495ac1f8aa6837b1f5001553526dc0529ba8b9e2f5fe0b2c4a2683c1ca57cd0d8e050d2e652570b2823680c6a225c7c0a2b7e57f12cff7154c3c57d103b7068068dce9ffa0855c32999c288187c54d8a353d1ee1b13f0623aa923a5c2fe3d9f34a83f922f7e156266ea370b8c9b341470c1cc912214220977", + "1e31860d69a2b9efa20a384a6a1b5395d4e246e4416d61d1eeef17d388acb8faf58bb2420ef78d8e4fea494440ae79fd5d0164c026ef49d76fce304616be9ec4dbfb4968b1dea6075d9a611454727c35abfc495a91b6249599b46913bea67db940925b9e4411104b5bcf204a9373731f6e8c66d3b237bf68dad283f75dc31a55f4f706384f20cc09639d90d9ef50e3b958ffe671db2cc673d8fd9f3cceefb632cbc539d0991cf3e71bfb71f191597156777bc3463dc427b9c246dff91141", + "027b320db7c31009f837df188b4c5798db3305a2c8d1bfacc73aa3ef4305c38581b3c56a0891f3c471b9bb344f44b37a7e510db2b4ef19b8a2ec8fde312377902c086d64d313d40e995f4494180a9fe7fe2f221a1af7c9248e340d64a77cd9c3980309fe8736d4df1a4230bed259b46f84f7c8e12e03033ef3edf586e94872d543c8b231985758525d432f02c7a0a5dbf00804a299fdb3447d18e81a936b6294fe045ef948554b2a524efcd8ca9f3cc47fa2d1846312d096b7a212aeeb1008f62bf4dd9b2caa074d7f00a823461f3a1d4ee95a33de443e39f50442cca9d9a2efb8e5db02b8fa2b5c5ceb86e7ba830c4c816ad4db42abe64e9c383714e971dce3bd895e33d83874b3a041d64f6c6cc567e85734ea22efd91cc389d5a8266700209737439256892bb170e4941a97327167109f978c08b37e0208fd283d8f4753aa", + "010f08170d21b8636d2d4e7aa281c5016486a04de7ae6523baf36a41a95c689d099f063f1fe8f4642a183c754d6933465eaaa6eb182282a4505f38783e7a24708b3676ae041d51eb142b02114df6b8bd94a1ac5d699e0a7ef7518ddc71c24c92cac414059e811b1250ebab3545b7da7cdfcc36a3115de55d2aa1eba7e51882339a81e4c67cec8c26ae5a998f10c577cd0ba00e1af7b7934989c8b2a55644647b1ab2e381d1d23c38d2b932ac2c59b2c82e7051640f2e4f68103f801d814d" + }, + { /* i=5585 cDividendBits=379 cDivisorBits=361 */ + "07c1173a79747667efb0aafd94977c09e6f0551ed51a099cf57bc21a45d83df00179f436663a65c2b430c28eeefaa1b3", + "01737a1f3c43c986c21145f718988d211a20cd38bed86328e788cdc52d7fad7b026e6cabc3d30e7cdd6fa66eec67", + "055801", + "0130154afd3c091d9b0be3313148762ff256cc0cf8e1fd0fcefbccf0c966ff00dd121b1ecc84666743be89454d4c" + }, + { /* i=5586 cDividendBits=3391 cDivisorBits=1609 */ + "5e99cd38e35e01e97e13553afd50d3596d378ee329e2b6758f8931348c86ed3bb2b69bea559e60ca2092060d1a80b855b26fb5d5ca3d44e6d9f4422e5a5acb7a8b57c500b47c12f61de36a7c39c834090de75d9c0ef7372a7b51954e1a1f572d7633ece6398e048507f933fa4dbf07b4b326b1b6d0a9e8dacde293d0fe8cc2851b63ee87122af6beda492551a9f29af549570135c441090ee85cc8e01be4751a6d81a526c74f76a506149d9093bc079cd7189072b1c9be9ae4e7f78ee569b35d3b53aac93d50576917b0fbdb54983a5a92b64a0bb1143b47baceef97a6dd239ec8e29777bccb1e4eb7f25859c0df61cd89deb4dad6773a87620a48bd4a73d035cc43ffa581577e7ac53628e33559287e09558dc39e6cfe3803419178a6cab4addd934c984efb79e09da27c6111425bec4ecad719e0cc85a8964ee63f29caad03009098a223353d15d494f201a0814596cc7a20eaddb5ad423d33462966193322ad7aec4c3d8cea7389ab43186b07ce1326e3af2a01a6ca21057393af271d8e3b454125ff778939da0eb218832e3a575f24600f81d4c820eb783c4f740109dc69117aee9b08fb48f2", + "42463a98c4af762dd54f223e750e2f2cd1a6c48c7c6b118d75d5b94acc6f1649547547f1570d6e059386809dd58df97b1db90453444ba773a23a8b3c3981103d3e62af84b8260d5ae0ea4a69b834c8e14b6dcb9ff924bbcdc53cfaaad129e99b8ae6279e589b8608bc39f1d37663d6e8bf543a6573679b24ab641837ce09b6a372f6b24b720671e2b343470203660be6a3b6d482a0d9d682fc58cd646320c21a5efd9811871a7ba206ddc6f024f5c12fd131813b139215d358807c2092766053300891ddbb253b3192", + "016d6ae2581e2b1ad7a0fe7679204b5d948d8b536dc7c98d863687edd630a5302f592c778866179778b9dacd09ab2d786ae70472aa51501214efb5b03bd223af3714da9697114daf9a9248d199eacd9e0892f1118d9122d3f25764ef1354447de7d84fba1252068e79b5f0cd48d4d7d750489e9f8353c4828731a55c046873a14744d11b77293d96193c987e692e58ba339583a8baaf8b193a7bb169fcc888cf4539263d70da2932e115dd0cba3e3f8dc6c059da9fffb3b4e1a745ad0b63cbac1f4ebd6bcb5d39409ed6f12962dd1e051e0e61029cd5b1240c1056ae6dedc69e", + "083e24b00b3f6e19e84d761becd7577ee3b5137750861470bc58ce4cd71aaca9eb8af781db2fc4c84e2e18743012d12783f5dcb9272fcf918571f0cc40f982c833e59ff3c309becb1dcba70e717a16293a394380709aaf79a07d0f5b0040f589dabca6d504d92b3ad87e82fe16e57009e7f22c4c842b9c7f31bc5996a847c98ee624124158b7852d103d321ccefa7a966687531a31d8e6ba0ac9d5e6ca17c2f0fcc7b122a1f4f8f8491bbd7ae1106b96c33b80cd4e0b309046412bf13624fbbb6cded6ed2a37f1c4d6" + }, + { /* i=5587 cDividendBits=1398 cDivisorBits=711 */ + "314810633f1a41b64d22a1c605190812059807cd4bceab14235b5bd3b603faf0bd29d1b5a605a470a01e6f2225d8cfa4be4a2b6a3639626c57279f9e081c73f9d75228991e3c70b400428115339f1a1e3726bd3466e93aae632845dc3524f31af5f95f994bd81aa086a7650854a3005c8b6182bbaeaa729036fffbb5f2182bcf47d461c5a0c1755f9d296328a151e22d27c8df0549f67d699a48f71a6876a5fbcc045ae5ad44ff08678eab82d41581", + "0a93fd1cef77b35896b63bbc14c8cd1fc11b2b735260be708ca0d92da7f5b16feb9f57159651d6a2947b1dd3cbe25f516543df9a10858eb2f9779fd2646b6bc45e4d8418bdf02466f255fe5d9d1146112e74a1cec49793df94", + "04a8a933a7f261b9f59635bff38675059c69ae5bd54ef8e97706ceafacc97d0fdede5b67f038ed3797aa4b861c0b23c2b87a039414df1e54d085da24057de58cc8947bc6fcc6118a97c1ccde24fbccaa2a1707dc2149c1", + "07882b8b15058996ed2bea8693e62c0a60827ea53852ff8b1553698d06088343b37d7759425ec2f319cd042ab1cd5aba45d78f0cd530619985095855141f0155f9c407c04a4395a87f0f422bb8fff65380f87095fd0f8352ed" + }, + { /* i=5588 cDividendBits=2170 cDivisorBits=1392 */ + "02d27a95671e05fc2d0f33bf3b72ed52ed2d43ad36d255f1fe655ab23dd43aba418d3b2dd7abcdc47aadeaed4d6a84f2616261c9fa3984caf2090db9a3e3598f3deb7094f6cd31c046fe86615a47bf6b141157a96c6abaf447ca469d761f2d9c404e556198817f1d51c307a227b8e94802d6ca19e2ca40f94662ff1a14777453f82867c68b2be9bba40335e70838e34ef398c743cdce3e7106b03d250edd478b689f04967b870e4b4aa9b2227051af86f1c295bafbead4e310e32b7c7042a758f3d9134f955a085de4fc119d90478e9547950837a2025e947620dfb9ae70f1850c7f2f92a79f21ec7ab39ba5faa706cddb95463a0fdf727e73a1a5d61244397860025126d56a47f38753d3cc6e06b12c", + "bbd5c3be5be5d47ad0decff10eae578804e1216e5b237cf5e6cfcac0b47c344707d263e3b5cddfc3648edd8fdc86573eb555870e9c378a3704d02988a8a160d6f7f8e3249fbaf588f9b392abd7293fb4e7a59337a4693b8e664d22b40b21cf7b7752c77d13524a99d07cbc02f323dc760e0f26ae1c44859e90e0e9b514a600759886557e25ffc97ee7ba8ef789284c8a5af073d950d11ad73df9e3ee20d0dfcae10b1de327e42c0bd3191f88c5f6", + "03d8aa42dd3c7b315f05341feb62534fc43e3c7c4022a3f1135274dbbb8a2782fd6a04df35e4bfbcdfa4601ad8a2eba91fb940933f11135727b2a37ee9159b45404e2d0275608513e06348559cb1145ca14465b51fa1d1cdb1e0fd79b36b45932cb1", + "5e1002cd0c494aad0bb62f2a0cc3cce058d6d7056bbd993d69a90325854a6139f6d2cc54195291463134646a0f734cac3c726439a94a5336b764a1b38ed5cdfef9073e49ca8571bfe4852c02e69dfc15eba1e74cb4d5909139919ea1ae82e0b4cd5cdfc18e63f51f326358f256ed02235d5834338993b29b49b0807017aa96c29259a128f124b161ddc7ac1abcf1a7b9edf906fb0bb350c78fac2c530c6b31526b1eeb7bd3d88e15d54b242d8a16" + }, + { /* i=5589 cDividendBits=1957 cDivisorBits=911 */ + "1c0ea340979c68a2a6f61ffeb3cb0a6125925e60f0566aea9f44667b73d2d8ead0f9b88b5f849875169c269587b45f64a7a38ebe20a48736499c99fe6a2ac8b9ff9c8ae810632c75ac9843ff8abcb1ff28db8dfdd4785185379aea636f7bf7106c852f682007a2f4daa799fd182cfab742b8e3a7a1f46a64c1870ba9fefce1d8f3adfcc890c44f2f8b0c89d30add04be2e19f1a0917a73d156ff83def47cc7a4f2b326f55ea3dcc686d6610b993d7df1c5ac1aad970abec021cf44009fc2c2fb9ea5fbadb723fc92b8b386bdc796f3d09d15378405c27cea2e5bbf2198081d589febf78899af19c4d6d0741be51a8e2787ed9b1d8a", + "49d4ff052fc75cc327246337c73b17c4b4ebbc54ef9c0f8c16c2f9eaa6e14545d6b8818664a441dba45ce04df9dea9f73a30481e0051c2ebe97f296acb59c0c6257cf7d916ec094b85b7d579c2e140618a5b019e4286b3ed0b81cd022d00f5dcb11d0d6ba02f7aa1dae0eff9a1b6b681cd03", + "6148941e635ac48ac8b3efd13dce6e631b5c2dab66e096c53ef0bdfa1ff0d60e7ceb80934b57e6cd9d647864876e2f84f7e03948668169646458d24387c53af66f6119d0840458042c6094b0c2fdab0455c33f957187e52ca1d7d7fbeabde62e81e88328367502e72f23127ca7bc6b7251e7fea6dfb1933cab5481e7cc7ccebec97b91", + "40a9dd29173e287391c4f6c377b9370d6f61b07643246560fd3596b5fc58fdfdfa22f172681e992263bbeb3b67f3fbed3755fde3c64f9c47043a0c0a59c28c7ab5f18659f35e29cb07c848259f8ada3c0ef05df5e480e0e29d2afedd21799b26d0652443adf9d4b9e2ccda68b6ddff3a8dd7" + }, + { /* i=5590 cDividendBits=2281 cDivisorBits=1894 */ + "a6ead1a2de1b4128c7d17f0609b8c9fc944ada979e0c24952da6bbbd6c0b1097e7197b415d2c939300b7c40421487e4873af9026862e8e7e9bb5c83e128eb83a341ffe476468673f176671382406fb9b7ae3da016b6f01560a3a73b175ecd6d8137f82b08288903a37fb4547df3040d8a13bba17b5cd81daa44b8fca3d5c56744823bc0b89342ea7f17cdb5af55946b9f1756296a563ee02933842ad4238e8de4e15c7016798b6e5ea434d3762f71be9d995d6108ccc4df74f2b204334471464526a5a3fd2306990a3f046c581f74246481f8ebebebdec5204d4cb9ca9b8e8c21122800797168db24837767affb135b5889e161838981c68bf33e78436abe65e6fb334328df626325b38c6c7e2cce3095aa1ab1fad3565e3ac1c36d9ec", + "299b678a33950bfcec90b542d88c58905d2a50747543283c08b1b55ec4e5a5af5697934bbb3a5edf6671b6e1db37d8c7ab0e8495f80181c1fae9c7771c28a81222da68007e2d6499c6b2f7d248d0e625db7f3526b7e15eeab3e9c253e1f9f3f2b9140aaf82bde5fa47c057cdd97dd2b13c8ad39471079604bcd35736db91dbc0415786d981bb8a36e2ab53b18363646aa1677ae91db9b5172e6ad9cd7ac2d7b4119393d51268bdf03e5764b5e6869270988c7e1c975de85594be2edb1b8ce6f3a43a1011d766cd2c848ddbaf5c7479ed0842bf6e777b2b1bca7c58b37b8b33613bdfbd1da5c6989adff52ab41e", + "040302567160af6bbc7381cd3a730159db12b1cfe19fe355e0067f353d05bc3b955ad9a5d12df85c2f724496ca58ba0dad", + "216ed7c20533bd50d02cde5462b66807b9a035f5fcec5594e8b78ea480d71c206bcc2b992f7c609f5034616576afca5a59f34eaebf844dec01e9e1e2adaae1764f7398c35db7f538bf6bc5be10f1f9bf71378b3c065b1c565301e38f80eb586abab2cc6a0c62c2fa2b76f955ca6aa0bfd10e135af2612e0f7c558ff8d8f717a29866be4fcfa1a9b75da52aec62b2b6f535168f017539c264ef77acd2d567d05b3d33a159845a385c9bc05ec29fc633311b29f4f9f59b3a73919705291dabc0320030b729e28c44e6f7057bc3566d01012d2714fa0b111c433992565d173ba22a83313080051035584315699ba6" + }, + { /* i=5591 cDividendBits=1788 cDivisorBits=1538 */ + "0cc73fd00f61201433f2cc50b2c4638aeaa261ddf40c2cdca9ba7fcf905c96771e398553b3f82a0f40f9e3dbb9a53e50781ce52879d459798451452db50ab4c0415fcda0eb0fe529770377d25785960e11ebf8a1287bf8787cf0e5f7305ada812f52cec4a72b13c406c3954d1ba4a14d99f3c86e34cce0deaf53f9f03b11c9ed8f4b25e8f2e9859dd89419b48720b14c2a9bc8e892d81de09a435ea384f28bd22a3c489a18b7c4b69eb30d799f8eb4245c11f7c9a122b9806b6f40ebcedeaf86a861c5de9a045e93e6a446c5da12393ccadedaed8110840384e6101b11464e60", + "034883805392fa6237fa21169a7f87a95c6445310bcc1d2c26de7cfa4376401dbbba16f98a696ddc2601cd5e1724900902d9419169f19a9a5b3b538cad751ef5af8088b2cae63926f1450a273487c87e8b4fb28f741dcc150511de62f00d471ac4c0e6ecd1a845e5b754b7fc52184ecd10ada4bf0e77da46c86656a335c2818e7d0903ff7cceebc87871f53230e07226837c48d7124db9791a24a69a362fb060a016e66eb850f586db9c9e1d9c240b92992cc012285b863a38d804d97160bb25d9", + "03e457c69d21cdcc6e7566b696599fb3cc161da7c56afd2483615e0b6ad354ac", + "4ad80ee39ad72db22cfa676d4fcaa2bbadee3f91b63acc909e628a5c3ae677d5b9abf4bc1a6dc4e0a46046cb1dbc91356185fb87a000f5190c8f95f126fa8c58396023fba5205e0b1e567318dc1056ebb978ab14c11c4cc107ee6daea8d6c0474a4e436f77ac500eded34d865012f813e7e81548a2373ffef2646e168971bf297075ff35e8f6030f95a621a515c0d04be93276745ac306c15a92912a962e5289680939257a511cf125af46188bc12b1bba7fb974c16584b95da13df19f42ac94" + }, + { /* i=5592 cDividendBits=2565 cDivisorBits=1101 */ + "029cb3b2959fef93ceff063029f5197a4bd0f2f7a3d19af6c77637ec5aaf974ca2bb33857920458afe41b3b57d39243f54028a17aeb89f04f7415a5c1d8547563e02f474e83fc715391db302be8c23c7a1b12e6eade3d88d6e0e657d2fb6186517a6af0c5d93d87577a1dd8853a5eda3ed2e2e05fb552ed543ba4afedb5454d306c991dcdcf8b552d952d2803faf115765fac1fe8d8b5056c54f39ee681eaef24f0131d337c6c4cfa5e1f398487af0e03be0eeb6c5d7a2c9bfedd4f0c55b55a925ea885cc73e6621f36acee99e6925df04d24083ab4ffea1c0f54c7b37c12960cc93dd6653ce034de401d6d52c9f71a48e556b0fc865def14edb09c4fd123991fc17c828a8aba8ba41e8dca576aa32072c4171f3955ecd1717edfd5f0b040e0314c9805b01d85fc62c6322a22ed3c02ffc66e52d267aabd002f58beca38fb67552", + "1e636aec5dc9ba3a54c47def3502e4ec4b6c8e0ed0f755687942ab7deb9a93222ee4589e40eb0861390bcfe4bc966679ade4c5fe911b83083a764061a19761e797256c85efd15aa0c3cb2048d5f282032ad76bfd5313c770e1ce35d9b68f7056be9eb35d96c36a0c562451d3a5b112d444f034f26339783ed886b6ca8951048c857d77c75219a85d95eb", + "160155421521f550cae117472477b12ec8faeba8f9503ff9d5ab2cf9cabbaf0e36ee8c580272df75d64af7115f567ce21b4c37eb847df5658013de27e7ac41cbdcec558939080b8f2e9c9686538ee9fafd1af40999b95bb32095dc4df47b3eda3beab1ccdd8590bf9afc9d0f7032b18a4ba4d81dc3b51bd0e2311d50d74e1ade28626ca212d805a451b8e415a9d97c4c58f72765efcb63ab283f7ec29fc763d46e9bd46753c4da7ceb1393bcccb4886d9476d747912566", + "12388593ca5f27e3dfb8c3612f601096dc789c82695105958f73120d70808e7697948cd6a40c01ec6082cad3de950abdade580a9ba2ed72cefb2c604a4f5d9e7e50257c84f8b5f1e42a7b78c3e879375671821562edbfa065ed999b4809285e03681e561b297c6cfbd6e5825a055756f3c4f2b47f75bca792100bed31232ccf2871b8a79f521dca6c2b0" + }, + { /* i=5593 cDividendBits=132 cDivisorBits=46 */ + "073b0f230266dca33b4190e6db5f59d520", + "24bcf1e88846", + "3262a4296c42e9a81ee881", + "2206d579b9da" + }, + { /* i=5594 cDividendBits=139 cDivisorBits=99 */ + "070badca6af6291a35f8b56300c13c2a0259", + "03e55d4d597d171fabe51cf6ee", + "01cef6420254", + "027ce08104a8ccbc4b775f2041" + }, + { /* i=5595 cDividendBits=1976 cDivisorBits=1887 */ + "c315cb8346d3b68adbf9d22af90e89073fa395dda76ce71ed0e9176628dadb56e671435b8f749d17a94c6660ac1cc656356b8f24589dbd42c95932bec5e761614eb4871816e2b524b8d306be1155a22a5073b5f675d407bbb95c15db71573953664a8cdeffc468bd33dee6c6edd1731755c15cf1c40ec8d38c8b859977a736a47bc5256a8a6f9089e1c7798d66e1997d86edc65f149657a5bf25198c436bf5e6bc1de01261cbb20bacd6552ff834b206a114f0abc7d9bbdb736f6bb4d6273b0ae5832bea70705a6485387fd2235452f7242e848a6682fd5f782c542973be1328413872982afb4f9d41e3ea1a0ad21949788fba8628504c", + "6efcaebd1391f8318b7da21423039d40db99ab8cc3bf975f2c859a5b34d9d4f9eff49adc6789a95d1fe5535406b9bc44448f52ef388528e4ff83ff60d41f2195139028bb7a1079d9608347ae37b6a1f7bc8083dd96d9f824fb77fa0dec66e1383cfa64d51712739e704243b9c4974fe02fb2488aed8bfc522befd7ab54a73753eeed1594ad8a2bae4c4a28ce63cf4216c36c9dfb039b88a4dad9b91d935ef2f88b2ee2e6c1e6c8cfdf2b01ca2806c9ad325e1cf2a0de89480f3b8db4bb3f50a44848444b199982ac81340e41036a8dd4eb5d90e9858a5ea1a69c44ac17302fdb375396323ded1414108dcf1d", + "01c1fa866bd3b254a57f5dbe", + "48939b199ee5e5c3b1599be1d0b6cd4643fadb6e3d003b4786529145bb4f42e589fe153c9db0db4b4b7f629e8db874865a2ee41c426ce2b9b3ed54195fcf925292aee7eb97b451b2076f817e741bf7a99feffcea2a1b4509175e462fc4d3888604473daaa628ec19aa620ebbc3bc2a6dd3a534c325d1ba19164df54ddc7bc276c51456146efc2dc63fb516e09bc928722e65d91a88cb717486e84bc5a20b3def1e8121af45731322b7c927df769a6febefa49bc63af8208f67b673fb61d3e4163a53b45a1227ab51ec9e23af336c0d813bae29faa89a4778fb7af9c1a5a5ed1d460b62097227a27748480fc6" + }, + { /* i=5596 cDividendBits=2913 cDivisorBits=670 */ + "01a5ae773c1f38af718a07f473c247cf4815fce37fc7e15698e2f55634ae239e979a1681e6a317bbc26a86f057a0f8b1cf3b2365d1c81da4d35bd0ab988d9779e3a3a49785b145961f645c676682f3a6d9b4c3643f9d6f75ee77f5d064a9a91c1960d7792dbbfaab440619f3d46807f9affda49c2577d9288ba207d5a987861808df0dc9f947be08306fdaa4776c0a4ad88a59051a185acd00023b296dd698bdc4d5c4ae9abae0de6b08d81f337de35a278cad24c6b0a6637d795d039ec9fafb3925f42600543b7d4764bfce44e88811773e03df6581d67256857792c7fc8c609648750531aba510bf15269ddf599da2fefa781f145331f71cec06fab58c674861f1b0aea16ec2bf43a46eb53dd5516223cf23e473efc116af99f7d124ec219bfac8dde0b41f9732b339c6b5d22b969550a7132610a1998c5570c4f1d7a605a3557509918391fb9bc49b52b4f46d715d77199a26ba690e7c4899dcf2579cfbc5ef5c01c2e03bc9abb24a27bb81", + "18a0d6054b074d81777d2bf033564839dd02e5a73d7c71340cd0a253d6efc160803b9a0500668215a3815fe083c2bc68842e9e7a14bffdfad1a795db69f661d0e9efd0d129dcb562c4301e1a6095dc60e46bd913", + "111f31a833d166a5e5a60635ec8d757b0b7975989aa6463766d14fbc2ca01dedf21a882965acac82f0b1419698a0c7b99bd5bc623990537e6758ad94ecb6931f7e004540ca3a22e82dbb923beea8950ee8c4312babca3d628641248923e18cb554c9026b7a8bc322cd5c159167e0d47ce992abbc281246b5a5b200e5dd685c3a00b7d42efba677f6bf1708d468a12f07d84070571a0b11da1a4c135447067b2d197bec1311659cab344130e3f9e76c6f282287ce04e8d2ca8a5a63c4ac3456cddfc5a6fa1586b4505fc1a7eb80113f856a47da541d56b503b1fa102a4e634bc90d2bc89eb8f2f9b21c68845edd61a949bb58162c7fb40bebab9889f8abf2824098a2b73ef58529ff90d9ca707f47bf7f0b7b09dd70a07898f3", + "174cf344a837fac8c29af42a4b6ae75105828e6fec01a2d1414773d1cf645ab281d58794d4c1451f1da8a7d5b18205f1c022b646e32bd1dc29d6536c3ca5f21dbbe8ee9e4a9fb4ad7e42ed04ea421a8fcdfd6678" + }, + { /* i=5597 cDividendBits=3084 cDivisorBits=2916 */ + "05bd0e59cd7e86e183986441e505e5d1ae27306af02e1d0e111f1ec1a87f87e93c0eec1580b9c9a4a850761dcc8ff4bc59f6d8267921c4468c7fd5fbe36d560c6f250c5c5f2a67d6fd0e8ca9da7d3e1e2e03658e480e1f59d5f21fff2baffe95c0a3d78bec1347ff7e3c6a57fb603f4920adc546a81ef4c5e29bb88c4315d9ce53bdaa55d87157152672406b21bba8d8ed2a9878280869fea2c89adf2ed2fd3d10332e6b5fe6e8f46993dc5ea28f9f1274f8a5d2b6b7365604654aa1a536e6418791b7394e0a73936894a3a3e38dbc056bbd232bf9c71fdb39bcb14a0a52a3240b039e9bb3a7f4cf0ba715cb17759e6dc52593aa3aafaf4e47ed532f8aa3df87bb769f4102ec0bfd05237a43514bac9c817133d4a7be3f857496ea3769161f39e4bac5711940d03b30ce9c5d624d55ed9a58ca5fa7522bd73146438a7bc742cd420da008551c1cc03cddc41a8c5e5ba278c98bd1a358f8ff06c836914c164beb7b7eee2af5b5639f1a2c93563481fdbddcf5b0d1ca856d0b76cd41b25815b04cd090", + "0ab00e8767a4044c3cbac3899f3923ac88584baa67894850d2b9225b32fdfb2dbbb3df623aa2cd7e9097b24d4a5349044adf472592b7d4952636c71e2c8cf98b68f85281fa5ceaf4b5b69af6f29d77b718777735b2be015ea9b5124ac84ce29d7ccf1eb611d5e548b71ef2000cb8fa1f32c0af00d6a0db0840893eeb7f369d618b88f806b8d33cc0655ba8e670634da9917cefb3a639920ba1d854fe98e634377381f69928db274a4fc24c8be483ecfa68d5da0472650e68651ffe1d6fb82f3151d78c7a6a41a9d13eb9907c4c68f73da834b62a96233b5f464faf53ce72ef6737c0106fedc37997d132983f7dba9427d9dd09b9e86a64dbf38b389aff82106e76a5a4a55e819c390ea61226faab5332dc11821a4f845db4895c9bb5c735d8f58ce5fef68a7971e2b06761d4dc679cdf82ddbedbf53b2128f528bcf8287f017b38387f4c5d54e74e617ec6e71d84abef2885f13c28289f44f32d7e1606f5d6a3252d9db3963f498652ba0ebbc6", + "8973e340af037b7a88e6e900afd708157d13d6346d", + "034f4ec046f277ed3db1b56ab3fc31416aad1861706b419a8eb419d188fa99a696c63653a0c34f605891deda962dafc2d4d856ffc35b170b7b4c24a79f4dbe94c5e810b78fb05d066f5e5dd7e53a48d50eb62b020ecfe0b46e78dd136f58e518044d14024a73da164b7b716fc2634d42c0830288f998826fc3e0668aeb25441fa2b1a9fcf850efc58aa3e83503c43745760b541ed865c92302a5e990309ad496751038b5d2734f49abd4dc18c7ba05fd9f4590bced7cd35c258411158f3df87ef6eee7023d7b86eaaad04b60d342ce6cf9f83183a623ac8b63a563416b087696c5045dfa1ea4362fa524c12060d47130b2a022cfc4eb8afa42f3c80e02eff153998fd24e1ea185e2f13bfb4431ccb63bbf938a8bc866e124364d9394bced80d725e7c6030575b3bc358d8d2a7e064060086edfaa364ec98c45461bfb02107fff0234a5bed982d242827077f8e06052a3e37a9977444a4d32c900dc6b530715aec11b14325fbc5bcb22d05ea542" + }, + { /* i=5598 cDividendBits=2622 cDivisorBits=76 */ + "1fbb93239cb18540ab28db63dfc0bdd74f0eb67c3b7d8fcfecf237e443827abd50671f0a7f29a0c9b520c3b7c2e5c75c665c041f223c758ad665cf7e379d2ca44f35b92fa6e071591e3dae46f4dd278e48d305ad724c148aac170203b461541b6de9714e087e65775794e4e2944aeaf58a3b6d053f2b2800053d6b078e4e79947b2e08620fd05a470c3b0b491cfbbe336cb4f30a07d64e63ea44d0c8cea9d1e60583a5d2d6e160df257d3081e57d5ee76178e84a4795a0c0f34c16a0ac05830294e5b39b10c7043540d098925b86e029a1c35409b8f63c1d100f58d7977866cae1374b4f3c6fa0d1c90380ff3aa6c0ea99b39092ca3ca1412f20f7453b80d0e459eba71cfff84722c672d729f9cf065b060d9fb3a73cc1d3a57db2cf8812b5830359e32cd6a07a43d5b5b931215c88d87502d328bf2ce1d02f2d273a415e411b8b7ae81b85e3506f", + "0bb76a4ff6d672c1f8ba", + "02b558cb2f2c66b154120f1cb939c389ef65933213fe6b4690ac3c7d1de6e6fe06cf381e450ab5cbf02191def410246906d1094cb535d9f6c960682d4a943d7fb5eb0e6855fb1c898b931d333cdefa7551ddadec51dd066bc440bcc23b69bfde29dade001148397183214e1aa7527ed62e6f35776ba54c08739f35fc9e167da96009b2e643c3b516475905bf6054e819d46f30cad2e5f5c34bcfc2b3fbf825ec1121a9d98b2f99918dc3d6c862242847bbda84fdbb864a50c892a79ee4387828360d0d04fdf2853e4c9f4772390eec5e9e980fff0d870351eb3f7372a3d25d38e39a243d24e3032f6f27cfd041f93fa7d53f5d9ae9b70166dddae7dfd011d9c192f8baa76b95ae07e6061286aa530006fa8b04ef3e1649d3143b90f7af2f872f822a04a5a3fb5b344000762cc6f4b0f3f982375f61aca91ef124ba1e1efe2b", + "0b07af8c9f34d8b9fd31" + }, + { /* i=5599 cDividendBits=799 cDivisorBits=735 */ + "4d134c252ba57648b84331ad93e52cb39e711ee3baef10d32c2c0dbae50efa9794fce80b2a144326e7a2eccc5eaa70baaa1199394807dd2d053e4865c5f9d87a66d4b154c688fc77aedf5d3a0fa27fa87f90e329e7978964c0c7a59db74a3d62afb93e97", + "0dab32939bd02b37172dc98a842a50d03863e2ab2c0c02dee7dfc7f56477752df8f4329e91690a1f01dd05deac1b370d86a29009db53fc7dc857395deae2696ef2b4c71dcf621078e222743f8cc0ae329b3bb34e59c9455d6e785a04", + "05a388d01602c80ca8", + "0b15d99d55c92ad35fedaca8fb4bc6ab8921d76141b8755cb6149ac53a574a834cc3f418ded8e6d35d491284367155f836f14dc6b636d074bf903bd83b524d7c814e898428be99d0b8c6151445b0d443a44da316ca7e1bd23165fbf7" + }, + { /* i=5600 cDividendBits=2307 cDivisorBits=2195 */ + "05124fc63b0ea3de236a9bbb175ee80ea85eb432736243991bb98b8f3ea726031a26dab3c802eb0c671ef9c27575f746cf7308de8103c099bb55978b36180381b73abd4326c066bf2206a1183aca3c646ffc982d8ef288526e2253f40082d2bc8b39db1ff86056a9e92e80c6b739731cc9a366211acd9a81e94ff6404f0007894fd4634efcd61a299e4ef5e3ad1cdb0f268833644d69b0d3d93b4a50af7290d16aa08c82bcf6ab58bf40bbdb7e674bd8a1267b232b6052144b23d38e26b096cb5a90d5f79b2f93883be1185fdab57bd8d301d435c7a89312f6ef0ad36feb06ffbbebff65a2528fdc4e57171446c44ae8c31aa6e26e5ee7b9034cfd3182dad4700a57b0b6ab531680427b248760e64487b3640692e72de8d9255a6a3bd90bcea782", + "05388d51e3afdefe4aa3bc6ff764dff97ad1d2ae4e0b88f3b012356c669a562962c321cd191bc73ac4cfd7c2b2eda79470dbad7999052243de3229b60f00894be312f33df4583fe3b3a8e5073b01577a62410fdcc1c94faec0db8776b8383b7263f7342c7c142a9f92eb07792a64dbaa23fc0fc846378e2ea60bc6a1bf5bc781b667425968dcac40c7ed386f4ceca0c80cc059e4a447ea396080cbd086f8fa4ecc206b7ed6e89faa0b19bc89709ccc3955a129d2da17c68700d1ada7e2dd437ad7a1b33db5bf4cd88807b301c96f4028ea81efc42e614c2dff75abfc5afecd6eefb1bf3647ca525e7ca955fa7d12f2ceea9216cd809f7d6bee78cf221d425320a6b9e1667e788b5cfeff4aa5835cd0840fce07", + "f8acef079254545e44ded28ede71", + "04c3d9b5b82f439e74efe3c3cf38b5c6defeda41c1d3d1b6ca09d39ef173abb057aa7a01196a428858fe297fa953da2a9626a0783f17e19c67e4890f61c3f2b31642aae609569d1be55f43da7caeb92dc0c3a91f5c30adf59d32292ec111f92acad81d269ec541756566c7df920b3cbb3d2f9532aedc648255c1c895f242e849553279caf8d38a1c098fccde2aa65bf41014d81246e20026c10897635aa42f467a658a51e78649071ad4d6e3f5c232931f129a1d24ac1650d3e14bd306ef5737a4a4f37634bbe3bdb282bffad898e24c91c6520fd1d477a9c3a0aedeb47cce927089deaaae2ff565a0b367f04a63cae86f1053b8162f6a46a2eb8094f29c285bfe2f2c342db646b871b70f2df2b3710648a46b" + }, + { /* i=5601 cDividendBits=3851 cDivisorBits=1626 */ + "05eebb8782c56522b412b7f354647fad3b337b2ecb5347ddcfaea058dfb032f670b2ca4092a23110890440df27e0c2cbc8519200b3b7517e85c3a6068871a51666fad67553bb2012947c9ec79ac2bb48ae993d573ce41061deaa6d23d41c2d8153e3ee54889284bc53f30b96c2158fea15021f907874305309ca0d8eb118ee07ba7b2f71ec6ebadb4c244c19caa542e9368928274f54de630484dfee8629786b22479efa19d72e9e0e31656355ead5f37e8f69d0062d052830a768a889b9fd76a9c152a87b8b4b357fc3a4c66fb48c54d3620d65a172f37f98c97e122028a0639a6dae9498f524ebb5ce1dcc1718e5aaf05aa45cb17205fcaf0a298b2cff9b79057eb1ad69e73ffc29bc8ca625b2bdfb42f057f0df7a3b0024abf8a56c2029a6d5a4fbc92420c6d54eb99b5a968feb5260fdfe0f73eec2c9b18d78f5e664d822d4c7adc7f0876804541cc40d5bf580561ccb26572cb0be9ca2e8437c1fc3c95699044543858c696314d9e3e0dfdbe42b883239b0abbb05185ad1b933994c1731ed6abb1d976835e79cf66b8665ae5fabacd2c444bff4635112e9898349aa42bb9ebb7d884dfa2c5b369225f8c411f4879a8fc1ca868980099d6cfbcc640a9b6bc1a298c43bbf44ac95ababa363fd8b285be18e58260890403a71c5509b49034cc34f", + "df979964edf6df35f078893fd1a02ef588c9ad6b9db57471a5b1191583f899b7632cc7c41c811c89c97be514107e0294244d21b69a9bb9b39db5c3d962fae0079e9c101ed8acc9ecc3905e19e59dbf90cfc68923d575da587393ff7a100d01f281db2d5220f1dbd3df3050e853a7980ac1f3b423b750d8d8ec2c6f6852901c67679c59e69395135abb7601038319b3bbae6829677ebd70be6067f11fdc4bc13941ec26da501d21e3a10ae159685b3ca4d5195609bc5bf837f1528b54146d3d358d3bdb603d184a430ed82e", + "06cadc2fe3ba1237f19f6c885380d46dc8b54ecfe83f9a3e828ed3893e1978a4c6bd8c10d6335ee9f9c487a57b2dfe49192427ef40506238fa639e817ab8351f1d09c261f047466adfa69fba13f8ec08e961f864f4e35d5bc69ce6c8d58caa68415daa6c2317a6eed8881be379fcb8af5a843602e3ab74e162a32b6945b20df6a9a2c15221c8f3c4cc261a857e96486489618e57c91bd4fe3f8bd8932470fd7822ccb1ed935b29e6e2548283f8d7651c72a0b2b2e3fdbfa27db685a6afa739ef315cc73f2587aaa8e966c580fd020bec1aa843377733d1bd253f145f80d988187470860cdcc4564944af8f6d4077446dad4303838fd6b3a3891b5060277e0140dbe26c881ca36dd2b07eb361d6d5aebc1c19d09abde48c", + "8ccf3f313570cc165ed9abf0d91492d6888988dc85381cef0eeca4807eae700cedbff635214f29a674d7f6a33cba02251c6145fa743044cf2ad7f773466539595ad49de0c30ba98facf38044a2751aeee072dff516cb2602b47a3f76816e10b75eafd630db9525707c387965d5d5222d41d7826683060902a4d9891a8c33db01a102a92933d115ad3db544397c99ef03aa8f6d8e9f66ccdcdf69cff957d84417749f7451b6d0e4fda83b45eeb53d3d02808b3477ca75f2ec8e7f20b7952babe80ee082c2e69b91d8af9227" + }, + { /* i=5602 cDividendBits=2928 cDivisorBits=2796 */ + "4289b058cf6cc17a7f9828bb010cddcdb3b6ed4b76bd05b4a465f1ac2defa4fb4de1144632a8b54428702d6436ebfe11c4b61494e8ce45f0f4ffbbe172e586dc1788fb95e27f671e149eee4a0db03b1f69239a4277491aaccf7297b4297e00d3310b762737d72729e6fd7200a5ec740bebf2b26ebcdb793175e2bd31656f0df056a52cfc444cfe3ff85d24ea32a127268f8312e18d13239cd973b4a8fad922077571a9929d13877a23ec5cd8864b5c42c939f848721e7526da30a33262c70a537fdb21bbf0b4049bb3ac7d7af36d1bf60e817672ece6a93cd105933ffbcced7c3fadc72fd83d70796d6841a06706607550c3cd68f66c873e9dc86c6372538a9c4716a570377d6cb019dfc8fba0a10907e596fefa99cbf9762c70d8fe272fefb5f4d7394dfd68a9b57b6e80698aa154f132407167cccd3c4ef83caf733f619b0fb1967d350ee2c35ed7452964a7ef69fea499687bee19cb0d9bbf01561fbd0fca63e810316f19034ab314a61c6eb9", + "042d1b36d46c4bb6f5f08b31d19c174ac6a9a14aab09e1fcfab3c0ea80013cc6d6cdc6b8f6a1a5367c0377f9f59f833c28c7f0857b2575f97d386fa7051fc8d3615fa54c709a6120ecc96c284417f800b55a71904eb4498a59b5b018d3303b8e5a9a645715cc49d28c65608b76a5bcfc78d35c812d96889a6db386dd7480797fa8ac812c3b6a73bb2137790efd8bd22d0acbc249c6f9b655694060acf1124cee0cbffddc1a19ee309346a73bc45f8467d529290d96f8e153b3f4badf9bf475692875661acf95e26aedc02c94da802cff50a4d840625faf7bfdaaba77ebc658cb9d73b477f35fbc98a828143edc378c5d52f8dfce84c4919ba054f9c50b0b22c9df451320c0637b0ccaf0baf305e901289c0066b6a733d7b00d580708f571aa9c795d1a52180efa83e7c605430848e36e5692b1e2a6264ea23f2cb625044ed9d09f29ed57a270b372b90d09c1a02c8df1c1086d045ee6ccdfffd3ff692c", + "0feec1ad553673b599febf72cc1d98ffb6f7", + "016365199c9d46aa17398248136cddc3ea410a379dbb2abcd699885ffff0c8a6c004a06b95026a7ac47f1b6e363328a7f1da8e668560947bd9c81254462d827953b30686f170c289be0dfd7c536365e2bf9d144af419792c47c2393de573648e43b4a7e9baa9273ddc2f6f3e73342ec94fc1ca6c2a80d0aa2ed90bd30f8196eb2c81b5013033a9d50593e0f420187c4ef3b019bac2c0079058c39ffca1c6bc950713a3929be705a64703fd2aa58f283a2cdd30d6e8c1c4e8eb9f97fc8b9fd1788347df87a87fe88b0591ebe59c3e96904bfbacaaf88262dcea266c78d5ee98e2afa32b614133ddbf188bb6cb4c868ed596cafd95d9b9bc3f83256204ba08c67b826c31a012371fcd976c5e31b2c1c415b6654fc68fd46cd222467604574d967f51981835c3380aaf6f877f8578adfbf4c78a05de78d32db3bf799041fa6d53d5114a4bd67a9d8d002d6ed1d578a69975d096265a987154e6afa314ad45" + }, + { /* i=5603 cDividendBits=1448 cDivisorBits=839 */ + "d0706ac4ef7378917b4cff14c863e00a46c9b334d8aade2ca82f816ed2a524c49a80011f46ecd6d04c6adaf1ac49405203566bd043b2979af2286b3c794d4c794b2e46fd229640b4f7a276619b19bff1e06969c6aebae2dd5df2a285e334f134fbb6a56f47d780045dc3be02e910546c426b9b94625664ba8144f00b00a43249a151db76aa298ab87984c684eb39396bbec5349964469fb44bb93818528a5aa0367f01f53693d344e8a92b0199d631db6cd214a9d5", + "674abda8ec468dd714e419141f6b48221e6507e8ab26dc7d9401d59422d9602d80bde42c10615e031b00dee07ed48e2e448b606cfea522395ff17f6884ce6c0bfe2d902f73ba43318a6c1b82d48e6e6b514c3cc88f9a6f908461deac053216749f4be8985ad1f13d5c", + "02049915da0511e7feed70a80677732a1e52478106054eab61782b8c6fff76cd4a4d5664c06c8febd08ba695708926d26f28d6b6ae3a3ed18a93e2d7021147c3c18efa9f482dc3aadd9e48d1fb", + "553ee5be4c752c925827b1d2c18881bdca1c60d43ac11b4098bda89bea6cb29a6b4a3262f48f4d17fa811a922e7e3de5ca90a806f53abd930c89682841fd35ce3356d3e4efa06bab8177e51349cdb2a79e78c3d714223042ae1edcd2d5446f26c2448f54d6fd9564a1" + }, + { /* i=5604 cDividendBits=564 cDivisorBits=291 */ + "011d5d5fb367aaecab8fed7071b43227f608ff3a3805a53878f274dcff34d9423a8c0228dfc49ab977c2dd2649fded4e38b0c875ef91f12c480e718b6b5d007b7a961b1ea3be4c", + "0508058db09db3e22e6e5f1ab7a192e0418fa2d43261a79c6c1b66a1ec26c3a50bab74e071", + "38b7ae41551b6c8214fd1ccfb778f14b31864f452554d731df30d88dd8eb37fa1e31", + "03c15bfa2bfb0bcfa90ba3ef9d3ac76de734d1256e11de41892ddae36d7b8eb4b1259d8aab" + }, + { /* i=5605 cDividendBits=2918 cDivisorBits=965 */ + "15b26d1b288d418823978f4107136a30fe81102d0ac5a4574e9ce936c0cb4ce65e1ea81708f5a6b0785d2e76e2ba1ee26c7886d2ffc1e42dcfd9fe452faec845851f7cfb31fd94a1433fb66e1f1e1431c56a06de5b9d89797a0306887afce8797ff40fd818e968d560064c86c3cbd6b4b60f31661075f58285246876bfefb7f8b8d5b4f084c25bfb3f9e5c3b091d9b3f1eb7569ecb38841c10c8988a9fdd538e4302081e0a0e97175a5ffcc64fe868b231a6a50f426febd30610be4894e2f3ace426cf855f3ce835d3ba6235cce21a879bc1e262226e45bfe991a239342a6504b7fc7e48e5e805abe7670eae94261554636c063cddbfd1acaa60364717f464adf36289b1e7e40d2730e4876346dbe6ac3ba8f6db27c7fab56862bc30431f2b1de401f795dc9bdf6352e77822d9a3ebadf7c32bf12f32214dc74f10335c8c145aa907c1d75321fc7906631d5add844c9eb836c50cca64132b9d3227d69937b0010794812f2d9cc6dc9b80dbbbe2", + "0d3557039c1b2ed4e97c32815ef6b9e222676ee36ac5b4b7ac23089e4235f6136b2279d5abf907c7088d8af3a7e63039f44c309d9fedade65a3220a309c7e9fd27d1b5d603edb814f1c16a54a0504c60d294b14586b2af1b3218d0e3893378d1dd735d5d61b969323f06f4864cd98a7c0d18072fa9cd4307f8", + "01a486084df7d906881af383530478f4f34c3c88236af867cd444f1a5b7ac2acfe762d8a216b715c56f0ea6284d34782ff7f70d23f7bc138c9a50bb59d85c2fcb99a28fe8b99a6f3afcc855ae2d381221e4d3e59efd8264dff2cf3ae4f62a3c2604ee98ef9abd0b1e19020be15788aef2f5adf7a6e75f2c2c953f75b9fcea1de0da37f83279f59bfda67b0217ab0963d4a2281f5e60d5e85709496e48d6ae483a49b2f36fa6b380f1d3f1291d58bb7fc231b70bfe3277a73ffa03ec918fb02b3c573da46e1e11d7b83a531ab50c3315b83e0f64eafd1a66e44de0a63ca2ecf317858c893a7baa1d782f0ce319fc39831d572cc094a", + "03b598c54305398f59a1ec31259a2d1f10dfcfc79c389b4483f549e084cb2d7b62e536ce86e8bd2e9ea9a73ea511f7750ea3bf591b25841687884cbf4ee82e27069cc08408e3bd46904fdaead0f1b38bbc5de803ff8014a889ed2eceb4b0df7390942f5b4fc1b0baa2a8c48d67e7fc022090c299000693b632" + }, + { /* i=5606 cDividendBits=1633 cDivisorBits=1107 */ + "a85c51bb77a7bdf7f1e430f3902c2ced651391203d73c0a4d0ada88fcb26978e10095bd4e938812b55892c391d9efb44b8b1f3dd73cac037ef92a552c761dedc93cc07d3051345d5eebc876591e9e27df70adad591f6ed9c857da37f6035a15bf5bf6dec0eeebda3b1880755dd123b7b5beb335403f623b9de9e72b336cc6488b12761e9256911b53f45b98d8cbf55f701b1a308cc8260e07ed1f780d110f7bc1e359936159af2f68a2db00eac9f9aa22797bf16d4b99e9bf53068ddcb305f9c7bf2fbf03f1c3333315be5ef", + "048eebafbb4682c1029ba7a8518ce0998fc39a1bf96f0b8c6637b88f4bb0b46360c06b279fd3d80752d0070b201812b70e6c027769cd0d1fd5f20987d722d16a9e131e6033b8e2f467804648c6ff976532d9d7e5a7b55272d332685fd8933d8e923ca555ba8f5355bb89f3390241b9d4955b38405f325597ffc564e2cd8b5d45324c8a2253ea77ea598219", + "24ef620f52aab029213cfd2a9af9afce17c3cf192ac7f18c0c127eefdc063795e915c398e92466774c30a2b56691271f81736c6b4544deed58ee58c11950607f9968", + "02997a9ce8ec844ae5e560ffc1b8e486371712c6fb9750e66ac154d3ece5d197ae29c745cc3ffb8d74a5c676bce84757757886f2ea134108bb693d01b8d1f6b209f2e721d4ce9d40373b7100352f408697682c60debe2f5fab02a11c68518c09572d48a32ec6d1fb44ef6ed67a9f4475ab75ec8d707a63f945aa2edbe59cf5de34dcf235fe5b6b93d71ac7" + }, + { /* i=5607 cDividendBits=991 cDivisorBits=102 */ + "63ba599823c8a8fc59581954fcfa49ffd735c676c73ae8b7dd5c42f9393452bfa8914fac839be564b2d5754dda1ef2c0139d04c968556e9d35dbebe304d45ca9f1376419fe942634ac61aed4ced1f8eb141ba1baf236143e735bf90ceb8b5069403454fc56a9f9f989766028a73d7b34b288ad686217d47f7bdbd8fe", + "0f042a8ef0a81570819f9f0791", + "06a42dbfc14f57f2241812456176c1301d6dcf25e94697bc9b629499f85e4209c33031719a977ecd4a18e8554fcf577ce9bee5619d265c25320aa16ad3c158db9214eb25285ad61afa8aaaa0a5ea56d32c2d7300691cbdcbb044daef56d7003e86706718298a7187fbf4d3c0c58df7e8", + "0534ed97837c2c52daa3931696" + }, + { /* i=5608 cDividendBits=3873 cDivisorBits=2074 */ + "0170fc699eab04c371168931ee4d4f66bbecb93697ac9de049e67ca450aca5702dffe0fcea984544b3883ab7102e441a80fa111e72520e78384e691f9be74c9741d62f003dace0984def03eec05f9e39cd4d4d2c839a7a086a2d0531cc173584a7468a43080ac56e0da1faa96bc1321476338c2e7ae40a2b2ffda810d13973d9e0bf7f3a85442db2bb4944db8d812f8fee3e28f6672e4348ffd65d892ebf202fa96cfc75f860d038e7871ccafbf4ab6c1d6764969f30445aeb325ece574cf7b94bce5437ded7868f8edf084574b7e460093084376ad1581dff0a0f756a27604241b99400b51f4542d828b06cd1d7e12107b9b73313b25027f0016ba96d9bc86bd9fe8734c3b47862cba8c5bbdfe976b2986040ffff41d6be03c6b913251983def979a613eab879b5a07a180b0690e1137ec36e6c138e11d51a4a28ab0d9e77e7aa4aa83d018072a62d85342d5608bc7d3e390e6a4d7de333a95037f2bca849bf58795d6afede9c7e256556d828743080a7eaae4d21dfac73918490b196898eda9e69337297e52216ff88469dbdddec1cecb5df98602dbf9e559a692edb3a303e43475ad0e1ccc3c5b9415a77df284e242719d01a5917efa078e3813993286cdfdbeaace1c031cb4a53f57444cb31a58a3aabf379fbf95649f7a07c49f9236f0e8d226f6b2a", + "0116147beb0c340dc53aac014a7d0f8d5436f10188b81a3785f8b769a8f9bc86300fb36e3a6e06315becb792ad305fb578e84c4beeb9157b4ea6c80e62e0603f964fa6c57535a7e74f78fcfca45751c9a5533d5736f1ecd16c4c91e6fe479902ddb0619b34ebfe3b1ffac4eb79a8e99b1d0b9e851e4f1d99b7903656979b95d8b667cdda0a217028facc7fc6fe716270f5b01152364cee9872ac6d23dadcce4f998834812e95625451b3e117090cb8425c1e543097773845bf28ec54d0c0e6d0f53fddd3f79b4749239b0b624a4895f11c8b8cc3ed52abf7314e361935626abe8de21fd9968badddccacee8e33248ad8afd664b457c4fe53df92d5982f4008fbd4173ced", + "0153b0194367d82bcb16159cdd4bafa05833ac15cb8836f53c4714155bcb7f70848ad3eaeca8ed2b6f6a24ce164af2502abff782197b09f40b44aa0392ece73c00324e81ad1c2cbfd714a9350d02bf769372dab5378f6f05d2741e74ac031de576959b9c651ecfe5a08cce2f663f56a7285f2c198d7a5736752ec074aa169609cbe2b9b7d64428ab5576514353ea99ad50309b965b58ee21ca75af506d6b8911df2f1f394e81bb4f8bf2af5bb3fbdebfaec9e6fd44deef6440eb5beb7ec01a0a699453a059ba9282ea8d94ca97ed071719e87e11875d0a3c44a03960d2e5616d34f4", + "a54b6835543aea2ed3cad712b95919551b965a302e95cb4cb4502061b5c78168d8a9144aed4bb4c64ecb2ff6e298207f5e6a19e63d17e01f8e90e2c684a727773e217eaaea0431a9844e75f563488b78ae0e791053fa26d5a0842a7905f1daf28645c5e6a2570d6be7b4808f33c8afe6303f3f32ac388b577ad046945c4a4d9c196031b12f5d6762fbd498974edab6a84fc2ce1ee3ead946177293ba7f8b6a638142678c3a3f1fa5ced2fb724dc93c5ce671cbdc935908b61de8377c02d918631f31b14bbba14f2b1c5ba50c96bfb7f2605aabb12a4e9782a09723a7722e8dea17254a43dfc1832be1a69000f6cb2e8298914f5450e59998e20f007359517686003546" + }, + { /* i=5609 cDividendBits=1736 cDivisorBits=989 */ + "56e862345c89664e68ce5bc8022351a1346cbed14fb1417313959af466cf27f10c8a7cae09dd5f7b2ae031921d5a484b127670aa66df31cb4797add302b69063936c7991c33910c1331c434046c7b80d91bf3df68fc68c8e1c0c4dbc1755c9426c0000f9b6b6fa27b3846b6cc1f8061a49b351ebe19c8bbdadac8ed4a826f12a3d84bfb109ab3c0d3dd5f63a580760b5739b16229ad1400f9fb5715ac917ce268810fe8daaa49f394cf7ae7c229467b90b78c879f22bb42ec05deae3cd1f2d44fec3edc64070e76efb8c281e18db4cb1fda0212c409c140a6a", + "19fbbeb27642660701f7f012004cea23423f59f1d3d655306a57e2ebb992e25919f8d1c16798d4b9542da343b33155a58ea6d6ac95a23e8890d1a66885f5cbb37ed9a552b5c0132d46aeab083e7f7b8ce2752b42547207b056a9381892b8c22eb0698aff73496e5dfd479a96ab4851a60d0c33900edd30762d26af5b", + "03584123e08e534a9cf07c3a51d1efdb123928c0f5f05aac9c9235dde4137258824d0a1a929f38dc278a9378d60fef19c993bea2e502056b99e40f6d7cc85d7fc095af914c3ec2308f7b7491cc479ba3e1b36a4010fcc3e4952223e4826d", + "05672ea91267e4282ec1fd30d4ba15ec09abe8d715be32f4e0cd1c88c9c5af6a1b7f69a85ae599a3a3d1bc36e43c6c4285e22f3ec972e74099923ea8f5ae79390760d5a2f7b15dcfb8200ae114f069e0a09c03d54f7e39556c9058abda9baafcf591c714c364e7e9a81b200828dc56193691e7e7a6abc57e1f832aab" + }, + { /* i=5610 cDividendBits=3070 cDivisorBits=2706 */ + "1ab956e597c3bdc0189f7eab0196bb72d29c6333be8542043dbd4fb671308e7f0dbdba373429358323df85b2f67fa8c3189985a345e2d1067cc2a811e427bfe7964ba4291232803000235ef35133ea1166bdf21ac336ef904d13b53639886515db87e3aef9387093a13e0352e45c7710ea6843ba4dc91577d0a755cf806732c23d387b5ab29c6ffcb5cfbfe1d0a9d5acafcf7311e8aceb475130c7936ffac272cb9872deb2c139c6080609f2d5edc0a587215b0154e0c1b37afd618192d702ddca943c2203c64594f980959d7d9daf66f7c86183ebc26a96f7fa402768d68c22ca61d68c107f556c914f60059131535fe9f614d80543f4a5591825f338171481bcafb9ed85a1ee14f5e92fdfa84366a55d348d10dca7d80b6236dbff21e47a32ba4c3de18b26cb9fdcb57818ff0827215a940594cfaac73885a83e07ae61c5de579a3aa2bdeb04fbc971471f2f12b313f42beacf4e13d0db1655b16372e894369425443b5fce9550b0015b752b13550f77d9f40a2b370ab19bdc77ce7098a578", + "01868034aca6a7c82d4d31944abfe0ca793496d6e9ae75099c4d0ad74796935d36f25e67febba48765f9be31a63222b268ba5faf4ac6298918e66fdb0bd3ac2e703bbf8ee0a501ebefa35d91ded4ad27104ea43f38c3759a47869836b4e91f5dada975f71e470f0467b42ed7d8944710241accedb3b23739b1187db63f5084b03529a40cdf5f3a451ec4f4347f79ef20f03a2008e0e3e2bbe493d77795be5f1bbd2b39a37565bcbae75247d28db195841adc272c5d1becc4e3c4532d3bc4ec3f3533ba9f9fff81870eebb91310c2aae84d537f6e60c284523fd423a25f52acc8a2e2b9d5356e97baf9f868d915ac39026979af8cf9a4cbc39ed565baaeb36759be6371db4fd99365f0eb0bc920f806f8f3695ece88149d75d09e1ef948e7d2bec7177b17271cb55ac0a06a8cc78ef08e1171d5b504f5c53bc2d545a1df3efa600cdab277c605cfd52e8e5de60354adc3fd377b", + "1184f7575dee5f27638bb35419c052a3893ed5bf0d1664d2186550fc7885beffb4b5a301dee6041a9ee7380c00e3", + "7336f5c92ad204dc03177f2f741fe22e4b1dfd3e285d7e7f0105c57f01d4ddcac220c0d24ec867178329b6634f5e7b2fbba1152c13920654e45a5f37775c49de4f7ac803ad51cb16f86d6611b9d9b32d4050efe59b6dc52c97a9a85bf5e5a514bb3889ae1b9a853a142af7d39f6aeacbf7df38a30ca77d3318c68687ea7554ee3b1cf12516081cb24e6f9d9ceeda9f9cc6d9a74adaa92c033052d1982411eb86863c9b07a48b768641870fe6e52c7980edf9220f75e8773a76f27f4c44752e18a8bdd45e1d7656aeb2185bb3c9cd09241fa76ae24ef2cbb396d76fa2aa41215f36f1c343d52d98ed1665893d2bae4186185a1f7a6cdd39ea86529aea7086228d3231e7e766bd124c02e994038947277fc492571ff5b3f90f7153073cbda09a4949fe9e61f41a566d2d6199f4af2f60ed96dc7d83d94235b2f39cd73e55dc7a368a77d36c52b7cc2543e6fbaad3bb254c7367" + }, + { /* i=5611 cDividendBits=300 cDivisorBits=88 */ + "0138f10b75cef3274d9a69337a5db3a63dfb545556d4e082ba6bfa09999ae8b408f58857e579", + "941a2d4aa7e313e4f9002a", + "021cee3d835888c0cefa901d0f439d2ba7db1fb2988e565810cbfa", + "1663e3810e3f3c076c6e75" + }, + { /* i=5612 cDividendBits=3470 cDivisorBits=1274 */ + "25cb1aab48ec9f779702b9828958eb5f190df3cd032c97d095116be84cc00789e15f2ab66684e85d8d26bc8f4357f2b79c5fa7eb8a8965b6f0fd6d4a3421d1ea9e24d2a56f63e51f607d71feb01c363915cb7122e6b34a6add8203ca44a4d70377d652fc2d0bb5790824c8fa50577a0491fab62fd6431e73d7c357c082d0b295fd518ee2d825727459929a2675321ab6bf23ded343e4b72625e684e6fc3e60b52906dc68fed2ee4fb977948ee8d377ae7ae751919f0cd238ca5b9883aab2a6158fea884b4b4b069b2d1ab589c5c9fb84453518f5a7a1506911a587678b1b5eb727c3bfdc9548acd337d4caa27f017b1c0dc96838313baba78b6f09e0e9b9e389aac25ce4639f075ffb7892de42a5c2a490cbce60b8ebad71a8d07f6bcae3297126211a36236440279ccf4baa9356c26d46bd23487a9b3088e87be827fc80f3e4d0f4431bfdeb6faf49887f052327ae7dbb1a01d44cb92a6b462ec49e3bb0d6c3ade6711ca700514fbc7342f6abcde8e2c06a1ddf63f455052e629fa4f3297d732758400ab50e52dab7c0f6da0467923c27a89a560bc7ebd8ebd8f5f152bbae5e7cf1ff827069556c8e518ecef7f8fecb5f27", + "02801826c6f7f0109b037f5fe79d03eaa17c58ad2051e46a2087e3c5bba24697b3f674b4dbb9cbc850f54a253c617468593b3be448616d5a2afa42c9b7afa4bc46aeb2dc048d9a50734c73e473b6d6237fa54f5004f6d39a0c3d22580b86f1dc9fad3cb892cbe49f03ea0e47e1c5c7abc7c6661d39e60b897e8a6a31300455dd1e341d9842caa064cf25af815dc62a9de731083fc8bc5a121f4d6e29fe2ffdc9", + "0f1d78a58a6cdc43f55c7b7af2fb96501645f264c543c5beb94f39aa8845331ed8745a698bd2075e7ebbefd40fbac30d78e3da267a3a9bd7951bd58c4093c7f15d1a878df2c9bfdcad9bb06b751c673a71b3797167229b7173d8f4e93111b2a1f3c7cb173ad287aa0e8fb9991c0047e8232d5f5d57f9cd470c81b90928ea9e602406e390f3377f2f6c957b507f350fd332158a0492605f9b2c858873ef74f45a58de7a8c3fbb55f533f018e1a2efaa23341756f0d2c0abdff96fd3edd70b0e2215a3b9c9d48b2444063624b9cb75c1f83cdd3d7abf84390632723e9286bcb108fed2f5bfcee50f09c9486d9e65d3bb6af9681e8d5137db5fd66dd67ba3f935db85fc78d7682da89cd8206d8bcf7c20e7fa89ec", + "018cf761a6c633fcbfd52e77aee7255f2258d980fd80fc40267cc0a75d7722b6ab464e57b45d08d5d8bf6831c18c2214edb20ca758dabded140b1f075ada09912a1ed3c04790966819d3f304af09d8259bce89f408ca8af76f9ec32a21c383edf826c439ca22f4229071b8f83fec447dafc59128ea8a1f227e66c911787ba193a4f7bddc4d45bfdc3bccb97bb616e4bb51d2926b07e180486ca5523cc672d8db" + }, + { /* i=5613 cDividendBits=1585 cDivisorBits=1418 */ + "f1e5c9db435c7ecc264b879812de52b57957d1a6de66a7e1a218dc1f81ea0ef8fd0614d2c18bc7b5399d1fb153f50c8a6da81dd66ae4cdb63cbe7be987bbe47b54dd262f86b1386c88952f489439dd5e1ef385f850fd2766a3dbe9c1399ac10fd5041510ace7e9a6b0f20d5e47b7d64e2b5d0f18ce5cba1e870d206c3785da7ec5206d4942694bac3178f5df6c9ba8c5fc05daa89eac9c1af6043424766cfd9034b3b3b828d67180f26d6ac0e291043497c09460f179b746c7b0bb51b4431166e53c7f616e26", + "b953dff28c7c71eb395832dd041c83a1ba8fd8123266ff8375a6156f8f4502b1f665ff9c0e8b971eba8ea0bd2f0bda25a9ea253ffefdfe11d7ca097b56844b903e50cfa8598755b27137377f23830e69c37d084bd8b0d1aaba80a7d01ff18ce0d1ee178670736a3b4b84eaf54d5bfea4e2a365b8307cd8af54bd451a3c56dca563c6408f37152118329b29bd30a8f14d6b966451580fce24d67ee01ac536f0ffaa6a7eac4783b1e0b58623a28543352f1d", + "014e2468d0ebfb408675e41027200f431020db9e0483", + "78c3956a81652ee594d07edd48f874db4dccbc6defee0e49ca2532603b9f1e5243e43b4c544a631e0542fb122a6f36360e26d6e8120e7b4f44cddccd667a3111ef7a6708fc4ca39a63004675751736a91dd6d9dc4168b4731adda7534c087de42ac341330778d85bf25e0bf45191b7de4f100bd88a0d76e3b865b389c10711d7dbbdf0574e28168ad1b2f1fc6f0f8d09112f243711b4a44a5c780cd8a0f703cfdce6b387a9f8eef316ceb3f83d6387de4f" + }, + { /* i=5614 cDividendBits=110 cDivisorBits=11 */ + "37f5ab918bb602f6704de223dffb", + "04a7", + "0c073cbc9fdb763642b2cf3ccd", + "0240" + }, + { /* i=5615 cDividendBits=2144 cDivisorBits=1563 */ + "3d957d5595d01d75321d308e961e163dd195ad1ace47e760fe165579f03d8c5996179a2ec9c2c006543731f54096cecfedf9d7162319c126ffde256edf5416aa573bb8e18f0b7d3b78e14817bf54fc449b905ea8d5a2cca73225ab499643d304b4fd86fdf4d16d07220ab733c25a9cbd453510604077478e6f925196a4264a9697e5611bba57e0b0c7474efd5691bb15f6b89f05f33aa1ac92e47509085fec813863eacb29bd6c369d07a74f107b13c2773e78251448ac564f567ed5e9073c3037bc54964e9b26051ca24f8dd633f2e74eb6b15e3cf9509bdfab4d8c425588bd16958763b34c8a860904ad747d86d46ad2f47718b5aa6d108ce0bf43a080cb19aaa9225d25eaa6d745ef0726", + "03f7bb512762947809a6e35959f428ddbe6304955088316b47be08cb62227401ceb330fd7f8883eb10af16eb49d5e9ee712ba40ff758f085b5e8c4d1e620ec4a33b66c65c6e6d6551cd001cc70327ed184ac4f6b34cc4a322ee8a07b9ab61a019ddb10b14909c6b2ab9e0a59933efdb6f84cbfd05be55f04dca8cf4481ea7113d58d0dc5913d637030aef7ae7e5a8c91a69c1ca4caf9802eafa36910efdcb31e0ef7a3ef5ce989127bd4db722baf4bc6b0378dc8c7fb0004c9d44046bbfb3a03c12da904", + "0f8574c22079977f27fe7742a2e480f11e5b103177ac9547d026be23a2b4f7edf6a8de45b0d9be7d4645482c8ecb9a5b42a30565dcd67b65900c7f86ab952684a738294f615e4b12d9", + "0bf348deac1d482f42e23a942860199a8dd02d35ff45d0e14909052fd3e55d71c4aaf4d925f4be5cca11af29898d688d3a78ace7a325505726d0088339bf1340766cb18af60875617e34918c820f9a2246d6808761084ff10ced4c7dfe89ffc90fb09ef10133549f350e5afbaeef1c19704eeb6e4e724253b8af79f24ffa9fe71ab2b01cf7b38f45646033cd18787f3aae5da70d354312f0090c032d821b0870c831710fa9cdfa6162e5d72061afd4a9a395bd05c61b7302fef85a88c0931f542c7ac2" + }, + { /* i=5616 cDividendBits=3116 cDivisorBits=2153 */ + "0f7452ce718f1ec850f63c04fad3ebb9fad31a8e1ac214fe541753e40c4f3537d8ce37a976fbedb4573a71fdcadd9d9e13e83b041696d95580b82a45e40c625bf69d80513448f6da1a566e0c63f5aedf6d35294b2d5a88d97c4051c9c9954ad3f879d7fa43e6a62dd13c3f9eb972010487efa08b6f92398f57472ea9f18944a97ec87645d77f62768858db755dc19e20d38a68c8b91752b10bda9a60b9c40c679f727bf310ca2ff8f4ad2a67cb2441f6b3b74e41cf330ea1b5658aaf131565a3706a98831735346a5ebeeef0b1b36314e77fe933a727b8dd0938840fa137dc47544aa6ede80e37ef242afaae36c0c5349942379bd9a137ce8456181e05501c6253e82c1990994febbe6b993810fa94af7e3f6d104b3c5716bf46b19acf4b138883ff469878b2353d95709bccc05759a41d85346ba2d6e9bcfcc6c1b368cdf0885e1c6d05906f12b261a0c97138c016bf69bd396a2713abf0a987e92707edab455ad977e5f040e1b05f76d6ce55b1fe290cd9cc25dfd4c9d905c1ffe035155d1b306d055608fb", + "01faa0d521577e47f674ec878de861bb05d956d83ea0d9c2012dd874777df3895edd513b0e8eaed58719e2c1b6f4c5d4a5ef3834d9b68bf53e8079cebb551452f9f1ccdd8adab5e61b4f2da35444aa3841731679757f61fa3f87471ca3748dc33309e599d8bf31aaa26787607205e0943b7a1139d5bb023157c79eceff3d82ed7a4e509a3a561a8a8c4e1a2099768d31231fd8a51bfd7ab3f51d3720d67e4f3244102d722cac86b24296a58f4e452a74b9a6c25e5bf8f431c376f280ef687f8872b8549fdc6abf27d83defde919daacd71caa7cb2bd477ce1ec26f1ed3c27cac9409282edfc93688ba3261e23f5aed530af01eeae1d2d43f60090f8d925d310bd4a269c93edb704af1637e6f6fb2", + "07cf22d4a6191d97d8f3302ff43e8fb3d922ba2a0159a292d05ea9e4c7292aedd6df1cecc4466448b40f2f4081e464fd35dbb91116ddd583b5c50e9a89a7affd8b08a142ffea479f06bea7c68a0c4f6e4dbf5348f1d09f19a4a3f8fbe8b19fb4481047eb77880df7f21fdbc5ba0840bc041adaf289761ed407", + "01f8dcff22a3eba5abd7a0ab56130ead2abae9d4275d765b27c5f4b94c8f0d1d14419d4585f6e1a8013008cad86d06eb3af54ec1d921979aedf77a6286cfa098a4fcd1adafeccf3d0fa5da5bb61bb0872343137780ed7875b783a526291428530a440c218cd9a33b033fdc2ba6a115d228278da7fdb36a31f72931fee1d01216676cf7b7412ac337bd7292e3ac9c968c455f90780324a4cac85427f9784da8a56721d2621c0ed151ecd85e8c835b49b23d71b984acbc53667b0ab91be8abb3fb00e112f1205a0f7dbd22512369de0cdd2d91f67e6b71f8fd0c441079d29538b1368bf3b5d4ddd88bb372482014b42e6971d62a4c672684615349eeb32bb73bcc2e2709b76141e26af93324ee931d" + }, + { /* i=5617 cDividendBits=2751 cDivisorBits=833 */ + "3695635947aedc0a06672c94418a9e9a27a789ac41fdd79b7faa969da600607f8611c16f454932aeb58e869969718923272317e8c636ae2436485ea1ed6cf75d7adfc99696761f56db34346e8471149fbdf0809fee18c418f6971bfb1e1b657b13122ed1b1a0e8dde86fd23989f0388b972a15d185b3b4d3e6d310a8e17a7cb6fb6ae0da7281d8ca1c1ab69c12ae1fd4e34879ef5c3f1eead0b3bdc8eaef31ce43ccee6ff57057693984564f5fc551637b7600c5bda6586530feacc4283dc1e42679bcebba2bcaaa587f751771a2f0f87e70c3181d33522faa6d689e5deace6c51ca2c249df3f608370d82d10bcae9e12cd35d021147f4fac53832cf641774b68bb4e45f2066a0dc58d8eed33e0b57b426280ef7e2b777763227372c6308787279d0509710bc20a91c748eb0afebfc358fa10ccecce8b6d7ad46a14da0787704141f46acb9a0b820dd372ee3bc2670563e1dadcb0308bf14", + "73af9dca6452599e0116fe17fdb7bdf6f02bb8eae365c03d03248478e3a72d2e12293220336823ea16bc8a61012c0ca43ef4a53bf76e737299e12c4a34c4c0d3d1bf6a7091d7e871a8388b617d7b514d60fc0f4be3d2f6bff8b970a9d39efd88cdeaa15097fd6319", + "78c985e01f3757044bb978f5af20c88ec57e5cb73304ae8b2a144efbfce0a7b6a42a5f1e48eb4b18982a28d3ac1e0b9151331e08e3f27e3c6da09414fc911cc2b677b4d6174d91a3569c569b9e493dd403320b2687296e144f02a44f655f857e20a3dca8b76f67c7217089f0cbd99900bd98aed19f3b29540cd6f5cf32c4018d75819e3fc9f8a8e5ca184030a32b5dc56a739490fb2668d29eafb285f657eb7a988b14d70f486366aa9a9876133c0026996ffb4a9bd1c8f4130b1b6b7184981116efab346842e0157941389725c12d7215b4ff48ff285ace4593dd202ebe51b861a91b8b8df79d565704817e1f516cd5", + "013cf25bc6439ae6e9cdab05e401c4af566ca92214cc1e256860811d81537edca1a03f5736248d374a51e179a28728f8652df633ac9273d3995c8d2aa610402c6c58d43d7708fa42e462a8c7b12cd3083f0e61e1e6fb5b3a8024a3cc77fc179397e55023457dbf47" + }, + { /* i=5618 cDividendBits=1642 cDivisorBits=1349 */ + "02337b7267bb1b14b92fb008101a69850add91f0367af967fb0550c256747462f7cadf833d10b38dfbb9898b8e9329c23c4ecd31ad82fb1bb42af9a8024c69052e32b1ada3b5e039bd7457c5f284dc4d08b24a7124d555d46cbbb5fd5fc5dbf2a712b41ab3993ae69af010a996d3c865a66055a83b694b616a6fe699fab0c366029052d9d30a1b8ef9c881e302d10c3e849840670934bee1e8160447c46a248b217f18c07f0eb9f49c45ad279465adfbc903e232b3abf79922154a3046338c2ad4ce98bf85d62378547a087a46d0", + "1280e6b73cf217a99cfe6b98d8f34502263e3291613f03f95fd8b5fc8ef1705319a26ad84ae255e01713963a1ad31fce413d1f125eeb747d3c2a1759150821645366192d9b540523f35f2c0bc349017c539fa290173b245dfb45684929d3459bf6487c91e2e0436cd44f9e35e96b4bb24b753bc5029d7a9645d919185111a91bc5a6e7f037eb02cee07e4537be9c2bebb84d8711ba3809c7cc3e8a379477e5d323e37afdc916a2bf08", + "1e73e459c16b86fe1de640826409f57678483ad7181ab372bc731255767906e57c928f0c48", + "05eadf80e3a2cfe2c2ea7db247102e467b2f1262bf4bd0810a13500c5c569a9ad1626db189b84d5faee1cd219513bfc76c9e4f75a67d59145aea55b78c3be38c5fd40445aba0a9f64010469ccfc9ebef3f0524b40ff0296ae35c227052fc15c8bdd2e5c8f09e0de3fa082d703fda972cb8f91c87403a9f317028304be55eac8c597351935accf935f88174744c1f84098c36ef4764ff003024d6610e96ff6b463224d86120c4482c90" + }, + { /* i=5619 cDividendBits=2384 cDivisorBits=1503 */ + "9b1b3f0b6bcf9f906a8f7837236054dd0fa0623ec7bfc796a29d5a7329ecf55a23455c7381a3c6ef8d742bac3417794d00af95d7ce17953e14b0be6916caba16501d221a399c4643731eb048e54c9432b7bb1825b5891f8832f4135f338bc1beab0cb8cde4a0823287c6e0f9980c6568a92cf1972161ad835be4c7c1aa3b6a02d17eb3dc17817351d88c612308d237df1391f18cb930ff27d0dadf856a38cc5d142cd7bcd0f78ff399b481ed56cb56cbf957dbe6cceb8cfec85855c89c0a759137fe35ddc94572c8097ff4727eb106cbdd91f70162073262cee8123955d47a35692238b58b781995d4570c1a7eb51af0425ecbf749205cd3217bd7c7c5e1c8aca304e055626bb37d57c3675a06c0daf97bb8006e31daafaee9538667f1ab5c109a93ea2464b818629c63", + "7c062aa5668010a4f4ec6bbe1cf9dcaeaa42c9602cea45ec74bdf883c0d7160c08d159c55cc5dd459ddcd66bc2adc2704c4c1561e3dad2bb97cecec2fa76cb2fa75db6519b701a8a6303bc533e5026942c70f61589288f55b5953e8b541958d97b995130099b398200a260c64cc7ac935c3fa7b27632456db663225df970fcfd8241ee8777db44de9bfa8271608f7d456d8ea82804a5496f836b618fe67f3bf2f29d472ba8f83d7d016916f4eb5fb8232c76313e08abcb70e0b602ad", + "01402854293fb362b431cab8f5329b59205511561bb134d5788be9fd97baf7b1324a6aa1d2fac069a345aeae43ba31bb8363ce1c73898e2759ea7df5f7e439ba29d88c5023e1650c03391bfa5f34f613f21a554cb3f8bb5b48962d4e2834b1c3fff2faa7e4a92bb4e2ae97943c356b", + "3633d6743b30a446bc338f4dc3535077cd161e9e4b43ba0d31724141f5769447d722ecadf24102f30a1143e98e66def77611d96fbd73db468e30bc06f804edc28bfb27abc1261406815c8196502284b8044fb8979b6dd804b5518faaba7a29b5929463d08cdffada19edca92247ad74bf3118012ec900871681fb78f5954583ed066d9f45abec2966ec9f447911cdb3d171337837ec57e12bd79377357b40b1e727f8422fbc35b20673a5ff08d67954dea3e190a86f2efc4d935ad14" + }, + { /* i=5620 cDividendBits=675 cDivisorBits=159 */ + "060cf69bd167e372fc618359a2fa976f8f3bdf628ee6690b1fef1d29e92c1dedbd30883fed044c94bf6949f26c7c2f62cee7500ce6392ab430c47f4828db9d7a1450db46b13c2a491c7e35a085af80aee029bb0f8e", + "0bdeee3f9ca1ee4b5809050c4644f6abdb58e720", + "827c2363f3077be436d92017d9056888a6446c10d92be8c0540229092a00df7f41ea98dcd35ac3a4e54192c65dc8eaf358509448e6d75f98476b042ff19844e02a", + "013f69c212de6df0c3fdfd5172d654c7fe69244e" + }, + { /* i=5621 cDividendBits=2842 cDivisorBits=1507 */ + "0166d6cd020ab3644c70e452447ccc765d40054298b4ddaad7539d9d204bf02940abb25c0a49cfb0a9c872990c9f65e689f6b151b9a5790f86784beb367f4be1164f962f870546028363e368f4883059916fd4d662c10a4417abacdfb61e9bdc1bc027f8d59f72d976f70ac41e061889f8fbbe26fdfbce31293edba651d3c47b1a3b50cea25b415d8298623213135aa0796414e56c0571c706befb6d0d43a8fc1a5c54c555a4e9eb5a0f4d45b410716208dbcf7eef838e1424a2b7c6725a984afde2f947cdbfd3eb7dae5089e9f1d7395cf3f377d0811e707131947fdbccd945487bc12ec08c27aed98f3bd1faa87ddbe999380d1d37cf0099b8d6f5c5bf7d9d63960434d3052bdb7145b7caaac57bc6e3021d0ebb6166643818bb8dd5ceaec7dea42d5219546dc31810b45ebdbf9af9527d468cff642f005bacc6c5acdc3e3d71423794ae485633b2778ef950929cc72b497f1ce1e49a1cfaa468be201e3137b0b2650b", + "05742c4f0a3f6f5bb5b4e4932bc34459a9ada6ed5bdc69c2961ddb0aa0cabac2e712157a1be051b74693087f2b5eeb1b7064998f06e405e642aea377c5f7a67329ae65fc6d115502a0277f6954791a98979472775fcfca0a4b8e9770961b4311a0e54ec8949b623eff30b7d26e645c2f168b18cc526d5bf23ce6e0b4c28b555463ea3d79e7bc79408814dff4e4949f518b30df34a06615224f5d0bd0555e97839b5408a0baa5c755bac2026e48f671bca300d7e65096ed60f405122b03", + "41cbcfe473e657172ba368645214f4ac41b524d672be260ffe3c043d7a7b116b7544b5c89bc2af49000b643cfff72970df6ac32964486eeb7e934d86c32c67da0e764a38cf87cb616a06a3d08ca7ccd7cc6f07fb59efd5a56ae27d0c6f3d2e7c3fc8a72d1fe6c966eb4e539acb84970658a48aa514e78b74882f601ac5a59bf7f6cfaccbabda1d08b15bb8066c66d1daac06a2e623c44071a7391f4adf76a78b5841b1731517e4", + "0239f202294c53e017879cf2f2f58705f31f8757df312bc1b9678153f63faed3bd6768c15709584ee11acd511d99609253ca084b83a361e767d7044cb3114705859bc6e486deab70e5db240f9faa3e34f8e33d91c362830310aa60202628ea6603753278c335248e7cc8bad08cd4490f5be02c486201bf8727df1e2d67073a6f14eb933a3cfef1a9c62f919615aee9c979aa93ac5b3011882472236fc53e063946ebd13b92df477370e30726863d3027434595fcd2462ed78baa67d15f" + }, + { /* i=5622 cDividendBits=3160 cDivisorBits=1813 */ + "7a5f1ddbc65850ed4ab34a3b317c3cefff3bb9aa12fc76bb4863feff10852fcca3650557e8d779e31b07a532d80698769f3d2fe8cd8870a5b0b0646d73ae4efdaab14cda527653fd00b69e0acdfd7682a9e3f03761184f67b91b6c1bba4d76de521d3b729d921272a8949810818ab4b10cd2c42152ff06cc2259949ce2fd38a64ecbd193ffebe7bb4b3885f08354f9bec8b031c71edfa613811ee9add43749bf9d999d203376bf5676ef5db579ccfd04c1b4e6c16492cee843642abcaa7463dcf558199ca3f343e64db166cbb1a02c3893fcdea841cefc62df00b7ec2607863859c61b5d00fdf1b4f672ad321e2bc307cf809836657fc74ca5e03191359af4257311c2ffe80362ef68b5fa63f8593ea7f8284ab2d10f0b89a630c00ecad97fdf8a6dd5f3a6e3975e5429e82aaf7e3f71f41444576ced1bd9ce9cf50968c6e8d91107d0e359feb89c80b266cacda7ddf22b30f67d1d195dc07179a80f77ff50395c898e10458341ad642c54d83ab581fb3f2f329c6ab16d63b146ab2a30d63dcb6fadd46cff8a217c3b84bb", + "0f9b8a49f33403083a2b0ebbf44897babadba104f94cff109ab8bb4fad4590c8810e45108ae0c5efb3ddee3af9e5b1c38ed3f506ecc62602193813ec4a5da6fce56991328d6267702b2b4a2c405f72596eeb4fd3f14b1873f027043c2fded01d24acf88f76ad0f9e97cfd002d076f05055eb55698634319f26c6f1bc27a0ce98fca74a3f097a7f309542f7e19ec4de89c8bf9cd44cfe27e035f38a519b04e66b0d98e1807a9c0b291ae965f9d74889a0d7b5aa196f3f7d31605bb80877fd2059ac31dbc43fbba10294d0dfa0173434e26a60823277885be6aad12d82268f16d5f38982", + "07d72c61c9fd3857173dd55ed5b42bf7efb6d2793e797c1a122f606825b79e2a9b3b2f0381cf900e4b9d54306a2344519333787fedf9d852b4cf88e48243e2eb2ef8289aa7c06a0e177f58a7c8472b81578baa0be75648913a00a68caaf8722e8454199dba93285030faca6d29094fb21125227636825992b4a940d7b7a481276acd09effea9bec6381981ad73bee3a7e881038e9828b288c321e4c0c68a6504216532e9eec2d55629", + "0db083ac996844718d4458432cca4f9ed019af31eb00b5b3645e24ed83df5fdb5b65dfefab129446352447a9f8e0783dd5f32e53c58ddefd688eabae54ef8eef93e03ada32eb3d98d4d27a5704500671a992f733b073e1a483da80b14fc5f184e89c0f96ea68d2640fc2cc972dc760d3f01a1ce3d02cf5f6fb0ec54f810ba18f21f28f6489908f2df630e7b102eda16345d3a60338a5931f908b34a97c0df2cc69226c40ac03dc92620413469a1ad4c0ccdf7cbb83b0a02963ad0b43ecdfae7044b5ab73c3cea330c6fd0ecff6bade20104ac799b8e2992c87f0c48ea938e77aded2e9" + }, + { /* i=5623 cDividendBits=1410 cDivisorBits=480 */ + "017ed09c00b2dd5047dfc41a9327dce3e071bc7d4f7d2dad230622c2fd112048ae9759c7e1b6f8d5c5a9cc04a68b1c360bf4bd2cda4a38ed5ecab1d1fdf0339b6ecada03aea0b7387ffe251ffd8233801353023a78df3879df093334847e2c887266010ffb01782740d4255f889bfda719ab01900aec48420e71e76539f36a634810eefe096e47f43df2533ebe7861944efa0516cfb37c7e7d9ffdf5c118e16e54708d018d48299266fe900cfd922897d2", + "18dc4d64d09c03b34bfbc0b4168249c6ae6b77e05fb59c8cba20c7a0381264392bccb9a228cbc9ec9dac0cc437e639b9cb922bce8bcd7443a981ab42", + "0f66031145b862c8a6577a8f1eb12797e89c4595cbf987bc783ef56beac8927369c40e55b7b2b5da32ec94589639a12d07a6a80be79657436e2dd003ba744a24e9f8c906015e41a1498b5ae781b2f8f079e9a67a518bac0801a5edbf803059af6bfa2f1f8822611ec8c9362b66ff4aaa19e7330aa7", + "0266523817a1afdabc94f3cbb3bc23bf5591ba7cc4d17672b63ecbc2fc1463a49c4fad1e5a104a84c35af6e856f25abb50c5ead2a5183c6b41bb4bc4" + }, + { /* i=5624 cDividendBits=3619 cDivisorBits=2777 */ + "057ca884d75b433e0c84bbfcc31b004d6edc4c67a55fa8fec53347e780e25e8bb6db7aa31b583117e524e83784021c2116107b36bcc44fedbc7c4e0bf56d41177b4de69e34f068fc7383d0949a1a52aac1aba5ca9453b5a6768d0f48e6b765706147c77d04ce263e187bf0474745b1a2168fa7e6c3c057016958760235ac7f53c5d5cfdb66d80ad574f4aaee2729479b29e3562c7b9cbe59ad67441695e3eedc659976d65e1da068f040e987f5b07f47b020d2fd6b53da8545da4b80e57f333a69b7e3ece0450299b43b22dc411212a8531fa6a898660029502a01d46034018afddaee3a646fa38152158c69b63b40e83f36841bfaf9779607d33c021f61aa906c0938fd52a7be7394f5cdb459ff111831fc49458657dca2905a7f6c272509419a703263d37ec33a24a3504d13b5e367b96c7d163dc34ceb293fe61b55032f12385ee0ec14dbfa9f8d5d1babee63842209ba6b0d1ef279c39d1740b046051ce0da913129386897f679648d3b43e972b63344bb8edb5b4c8a6f20fe715183c84ba4f84db1a0bada06cef78a2bc8dc9bce9e285a683d32e08f1e14f5d358c4c862f11c5c30333f5ab92852dcb4cb658bbc88464778339ba5e0c0ffa6022b3c6042ad73662d74", + "1eb28c32710d8e1279c31d882a89a2352be1e6f901cbf59443d94a081ab505adb90f249b6f8076f1455b7a5fd947dfb6b91b81214571c064d0c8c47a097e62a8b0d10a1f66ec7f621f44ec2b5f2f5b8f1543d7dcbfb1b56c7ee6fd1e66abd751ac993635ffc786a0d8cd5bb369571bf9a28eee78efb9b0ba0e04772dfcc9eaf6be96a62c284682172e8e44e0e3cb0a55647c9ec579f5d775ed42ebd25320eeac929a0faebe45cc3ecd895a9c8927a754f76ada9ce04385edfd8f9b4306019a48b86b39d80ab97963deecc02e5ea318de980dd66d5fe63b21c18e48f9c31504c82d7899f243ae3b7fb296f5364f89b19c54656a2ed02bb03e886db5f4c58c941b3e8c3eb633c255beee03f6ea0ee47838d021aba9c889e949db76f2cde8d83b572faf01cb7d1590d63b121822544c6af17ba23727b88f935c454fa5e76a527eefa066aa9e47ff5979819125aca41db7c541f36f5eccc28696c5fff1", + "2dc2156d1f27a75b4e4c4e7738497438bc1baf31aa077a266e10551145d7d50ed46ec60235d704be2f5fef9241dd1619da086138d276912e593f0ba214797deca0b396a6c528cd2de4522beabdb1311e611428d1505ddab530c961ac5d70b17b75effa21a7356ee7f5c7", + "13ae8dc05eacfdf9940c6cfd662de05657fefa21fb28fe10f7cdfeffcb4f983b946b73ef09954a3d1b3378e061e1fc64dcdbca761eaba2c7130e218cfc4ba3b4ca04117c1caa7df28e657b80b2f670e661661b72690817050cde45f09f764d3a8bb839dd1e309a4b6f5697fddbbd11c13ef9ee442ab6fa3ac0e111b5fcb0ee1e8021bfc45f1cceed6b461fa9a07ab3fc3f576b0c02a281b039f8cbc1d88d0e7700564ecf61757115b72dcf4bc40da5b217a6b5a5b1e2b8b7807244b39487f1c0518a1c423b7d456c303a56ad44ddc7e2753abe0123dac825f2abb000a9d1f28de2d85876d6c86b4b23406b54bba399ac5be8a2f302797aab648b46465afc80e970c99c97e5ecc7325239657a8d690c5eb4ba4b1af77b613421591fbc3693a93b1602d92709fb78421c500f530ac1d3c26784ec0fc72ed379337bc5a1db635dfa81848fa65154370e40a9cfc9275aa876aeb5d67fc9e93a4113941d" + }, + { /* i=5625 cDividendBits=1043 cDivisorBits=1020 */ + "0653d1ea5d983ad35350a18bf466656c1d00201ae6a82c9d2006ad9058c443c86fbcddd8e1d5d2dd6e8bd243131ec37efb306077f91be00b04b10f2ce8d3338017ba58195bc7aa307b690fe5b3ee491be83278b53c14522f689925c6e46ee19d7a68478599ea5db033b46b04c54650c96943fa340b61b3a1f04790b21d9e537ee1a76b", + "0c4481dfaf2d9d1f8c902b2ae283cd89e2f66037f855b78c820dca2bdffd45e961318044268edb404a6098351085938e7cc353e521152e16f810eaa4e3b95eae5c018c0afccab1d3d263b3ae8d758a07d7d716bdff9f12d964122ba6e6c895344428e94e24779dcd8a931d4925b7d0d15791f95366269a19c26d7a79687edc81", + "840a59", + "0223611a200ffad5ca08ebad8b2a2148f6a0f8d149b4aaa3910845aaf8513368fc85b2f6d40d75c2262f9ccb734efe4034a4ef00f302dca948d76366450b8f55d7af5174b1d8d4cb3604b4782a9b9c688a99f2426246f44ac4cfbd6a9cf75959edf8f318f8785cb0fec3c9a1d26856827f8dc5d027377290acab6a9f83a5f492" + }, + { /* i=5626 cDividendBits=1187 cDivisorBits=958 */ + "029b2be5ec89b075b9ea0f4d0f982d9de4a36a13423271374232172452f8d03234ddfe54254eef15bd3c76b895fd5d507b6c33afdb405b6d0f6fd7b362ff0d448779b569707f488ad079d13daf7da766e1892c417d49b54ed736b9a1b4eb6e347a14116ee386fda7a62f738fc41fe79cf8be8eb163667630c5c2439b1f0b18d0a621c688f514e48878f6d8686c6a590d2ad59b717f", + "1d840a74446bf554b8492ca6bb074ddbc05192480f90d3dec29a7beda2c6dfb641b1d656b49a0e619f3dd8db020e7156ded3775004d9729dfa18bdc6f44d667ce8ffe0bfac8e8308a2ab0c07c35f5fe658c2bffe6eeb73793c9f656fa64b64ee67ff3c6e9858304948761dd71ebca966e7e71d8ff12ce8a7", + "169a9861863df146fc301ea10c7e7daa463273fd14a1fee7359542313e", + "0dbccb222e3e771eaf7d6f6cb3631259fb681aa338b0e24252f02a28eeea7c2768d51f86766b69fbe38168a7522b7151ad9f4875b1e51ac897cfc8a0445a328acd112de568bf7b7a77eeaa8819b59a881093ee88fdb2220c5f7b8b3275831d3fe60b99176e793aec2500d6eb12c09efa4c4f2a94a625220d" + }, + { /* i=5627 cDividendBits=3930 cDivisorBits=2806 */ + "02fa08c77ed9b33e41d37da2efb78986b02433ab424ca22c85b732d239dc8fb3dfedc510b7cac7f072db08eeb5a0e7d40636cae967655b41157fb1c7fa6b3e1f1279026fd6c7f598b908c4e5b52fffca2d651e163fecc5539be98756511748a5dfeda3e50f12062ea642c2947b3982357dc777dc930a54ccb1b09b6ded731fd1a664cd5282a2ccb51869a07b0f74a2729c0381de55a695e3d9fb86832519ef26c0c953878c46de46380e5bf615526919deb5ae64ce1ae48481a9c63378798b78b42e9c99226a1cb4a228179469f5cd4caf912dff5ac601c71d4399574d0f05f0627f9a80acd6b52fc97a2e29066efd64b2d974c2e52358d139474e360dee041c728d5a01f6270adfbbea1b9afaac3f7a212eb2141d5dce1f36fb4424470ad3c7c0a937f7e440ee62c4a175c65d19c66604ead61b31f3c60e93ab5a74e71f0fb4981c6e31beb1aa0428e469bcaf511b9054ce2f60612c7aa5aea35fc0626bfa4402116339d7dceb5349fdb9bf75cf03978d32340fc118c906ac918e08e3db9b97b65e521a72b822c549d411e1583b7ab8d1713b0a18c7a6a49ba13cc134a41c2b87a50ccda711af56d7695854de00e1a94f9343de23cc717bb0ee0bf9d6001a7b9567756130ebb6c2ad6b71c9a1e37a016e4af1b0c0658ff48dbb43a1b0209b512fd58cc081475fa1c9ef6836", + "1da24672e4cbeeab3758cb438d34ece4fbd9157a06d59b4e8f80f69491b3e3857fc2e76919ca4b6f86006b987e8b15bfb84ebb588259f0e040c04cec262a8d4a3cc367d210faacbc8e8d8d5a3181e3b1251a5e480d9ca89b9c85006a178324a444ffe99e88866c70fa6b532b8ccb04a427e5bee5471b5bc7428947a98c386dcceb02c553e6b0c3136c869440adf7a03ce6dd21e91ee72c4f5de5a97a75e978ea3aaf41570b34c462e44af7cddbfa09b553e6c76d38211e61cabb304e3963f5655b4dfdf9f4a315a6ebc94ad29a519f194d411661fa57410c8afa94105ea99c4cde917eaf5d99a06afd589b766842c149daff6caff9e1be5b14b8d7409c0099d8b8449d47a42f51e3db16c8ad9f7b2b82609193774c361ea8eca604630b18248033e854945c3ccbeb52976db7e28f343f75bd0ba6043105f7a553bdffccc9fdc16208479e83b2753d5b00aad4ed2ebf0a135b4f3898072ff41911e68c5c3b4c", + "19b707c22f4cf8206a5f618a5b30245e34b0f923944f17831cc609c715fb85c61726326db35556dca057a740a1f31c4dde2b6cfa74d52e89a9463e42bef763c6fd3dac818bd6c79c771461f5b5326372339a6077cb9c127ac0992a3a478e48e92883840f4c8bac5ef81229a8d9673ad5e9cca22732f391528ce589e02dd839f95708bc6efa2501b14a400a8589", + "0a65c4010e155e640487901663b710ee4b3d9c3e8d0686ebd64ad9bba60222d28eddd8c8b6f27bad54dd21936ef51c44dddf99b252f1ea86e280addee9b4a2b2aa011462c0f90d4786c50ed9af962493434bf793b6afdbd68129ddef0e4513fcf7a98e46d238334ffcd7a41dfcfe2888967440abc66c6f84dda682fb6b5da0a117e50cc9623e2c0d81b6f38940fb64ac23bbc46e73bbe0d448927d89fcf64507dd1b1d4cd8d059e9c553ed4c5547122d88f4e6475c0f4d7b67733f18f93008fc0b06dceb9848e571d50875f99fc1007a96fcd086615eecfac50498ed218f922f8a784356026127e182fb1e491f29f6e336d9e410418a54ba78f7cee88e46d7c290e97b5827c4be84d87197612d98cf044feb307b9879c93bf2e88fe27e374c5fe11a51f0e75413e6bd1d2cb921ce24a5659d744a01c4bf2179b32e943256993e0c6eba3571235f0880073c6175696e32e4fa98bdabf7faf482c9ef70cd308a" + }, + { /* i=5628 cDividendBits=2057 cDivisorBits=1205 */ + "a4fed2108b179f381639b91c3e70766466a77b6f0d4959640883190d2aa95791eb64901c4efd92cef9302b250bb21047c95f1d94c2a91bf21bf59a842cfa51a6948cc2306a9f25b78e2a24e6daf93492dc389bebe3a641eb6d6cc0243bd762b9c1d88d0ada3efa7103790f5e62ef89cf77f2dfa14158b09ddd2d538e979495e7abc10beeb4920f488d67da814dc96a91394dde96396d1d7b2b7fb88acc9127813c3891f2a25e7a74a425450d4d29e390077dcb2223b34d0faee613f47b0c0487dd6ab642816106730a850e93290ff9336b4e3db485de7e0efb71fcf18fb3d0d7cb3ef1be31d80c61a309c1c47ed2c9c87aafdcbfd3283ba29cc64ecdb42d2ae837", + "0b8ca9160baaf8d9c9c680b95dafe4bd1c256d26600264aebfd232355e94c991c805176baab10659cbdee64989e19132b3a355288fe06959918e785ca446974c6dc7234a63fdc165cf4612a57f6dcbb4faa678b0f29e0245594ffaf5c55c82e131a1571f589f759fbc9bd31ce7e21137173568de47340b537303e23860bf2905e4c171efe3d54d0ed44fdbec25af157b5d854e403a136c", + "0e49369a8c719ab05a4f6d08519a610bba437fb3ef5e44236bde8d65679c8770f03c89e59e5ca30d952e448ca6dce135884eb144f239e6cc84764ca2dce0ff1db30b1f1368a3d8f481f3968877755f1749624cd57afcb5d475ada1e9d1f94429f0b9dcadd0ddd98fc8eb58", + "0406c9d4fac89449bb7de49167ff64c0d7c42defbaa455cec0b0f8304faa157de6593e498cfb97b2aac6efe36e8cd4572ae8fbe4c45316b61659db4be2784aaf1094b7b7217917243468d7f51a71f21bd0c20829c7ff5a80240eeb5fb45584c2e6e64a468bb4f804668e6af30b5fd26f0b905e76048fe59c4fc38194bb87f67fd8b862ae5806c72c18a8867055648e5208d51449001717" + }, + { /* i=5629 cDividendBits=2597 cDivisorBits=2141 */ + "0f8cc865448c44beaf3981eb20b39a1318dab3696f5be8d2a147a5868aad2e7b22e1f1b3ca7f83ccf33d07a0806d835b7ef7b35299283d33f21a5f6b2d1a64c6775a5eb812f23008de535238bb2b14601729c6b32cf3fa1b20b757b94427c5e6eccb1ce75da7828326db4926b24256c8f5b3686fb9b4386de8fc0a4cbe92041e2d930e90ff3567a3fc7ebd1b0aa1e8045b4d12898a33bcc6402808c205c87eea6ed5a4bfd6fdd453ecd8ac19c82ab967e69583c2f7bfbc566a35b6dcf05746d838c8a81b108a2390168e41bb5e0fe39fa79ec4930f4639373043157686d417a4d009b6b37c21cd26b919ac60ad64e326bbfa2b729b25aa3aed90a13574c748d167a17b639ba7ebe3163f0bc58f0627ee85ddd8214ec7311bdc5d8c335d4c173b921aa43772514dbaae9488960e9f076853214efe6fd35f42cfd0e9c554b3df766ba11d9c97", + "035da757cba806c489196ac3dbc43934fbbac1fd31f0cf0f445174ec2bada25491cd8c0ba90819ea6674b9918f1c8432e3af70cd1c2c8c9791ecc6f07aa9e4db8d74c109c7fadbc2444f3f742f1b4a9541b58112d252b859b241149faa84064f02b977a2e26dfc7874c07b83250480e825024daeeea57fbaa9a53af5ef44da49ca48ef1458aaddbfdb5bf159b6be1c9f4dfd3b5f39b29768219a1d8f18b2a1c7f0cf229b2aaafcd9c43b03cf902d843e00d96efb7302b589108258bc79f8ec51d895fa9cc0a35f94e7d9a0f59fe24c9c654e44b0676e2366beee2813257711363a5dc21822fc76bd6eb8a069dc8368ff0aab392a7599f6654b97a18b91c3495cb8a98ae1bc0c6b8253ef9d96", + "049eb3f7c056b511c73fa68585f787a741ad36bf3a0c76669aad6e9f9dad5ae594b51b241d3ba6809f1e03148c3698c99c8e7a0928f959d4ae4a", + "021cbced1020a7227b6cb58c7aeb70e3ad6a39ac34de678b9059c4ab5e1331674fc29ac3191ab2efcdd5c6e39cf39e49133ec23ac6bfdcb3ef4e6a3bc4c3bc2fbb24eee849fdccdada9367af104351c37b4b1b249c49b7d2ef22dad22a0f31e45c2a898b71dbc6824451f1cb98e1a89032e68301f87a5111485a45661cfc1d63823243f58fab453915e055ea73f6f4147c004c98e5ea04ce59c189b8090f94fad98148e50652d90da1e23548c011f5f593e76c9460b0ca1480d69ae759a5f5ae299a892155e3130e376f3de417c720346766ad497ef96c40d502e02ce418a9a081c1b96e3a6f50b95c5f313e136c1b744c0bec6625c64362efa622adebe7c8699c0541ff75244694da861b3b" + }, + { /* i=5630 cDividendBits=3911 cDivisorBits=3005 */ + "114ad10388ea00f758acdf892acb4927b2edbcd053eb5b4b6d74d8e933f6edc02e765be80b5c4e2ce644d184ac7011e6ea71343c39fc55b5afa76b41b59b03ea824c1a6582c710491bdf01286c19ba11dbb76aa3b0b9c9f874352bbe94f22d963761f487af430fe5b08f997791e3524e1b1f7a62f91d94b6a9873737cd6b3a80dbd650df04a580dbf9da3be4fdae3c973e9d106a16abc3cc371f75ccd4747a0760d66b8623df5bb884fd4de1797e473918be0d0cc6e4828c5189e87c933103d4db913726f445b558270d1d023bb96049c14ca43d0f614452988561894bf8ddf5da1dd48b5f1ada9b2762e4ef45e55c489288145bf496fb3a9cbbcf8cbc15fc50e668e57594e6f354122bb832c02df7489c5fb12f43a27f93f75e281e481fad8f69b3c62ba8b9b16f0f398c4b6cfb3e1eb152e16230c58692c862f65032b544b9cc906255ff92f73f3784d11990e1085b7e794fed0941614319a65f0515b187dccd6dc254429832a47af622fc397650d715a62e5532492366dbf5bad5b72b89b11bf4e59cdb6c6e3bf711410578c7647db63304b954489a1ba97d31a5e27d4bddcb920f821f1b6491611c0e4d94a3265707c67e6f6e5da8d74288757b157ed3733eebc143bb6574efd584a911ee09f8ddb4bfae655fc8b5b1e3c51555be7bb4c4e9221649e727d3a49d", + "1eff57782ede2578a232c49694cd1b972d6f99e20c8138c02c4cbb12d71802908170281ea3539d8c5b264a5865e6442c8fdc197422cb615a95fa219e9fd92086cfabc965697a5c040dca27826ae6b19d99aec705f0b7cb8f90f8ced54f8ee9094896a0c02d150cd4d9dc60e92a633cc3af6b131f4051b4c4334b85bd0b0ff77211989d1df1e7c7d5b1eccd60e73dc116d515554dd6a254256e9f3a3d103bbf8cb82a2bcaff5a7a2b95a284c695acc8dd63c6bbb2aac5df73b4b4aa0ba4aa43d0f7d6cd13c2b961bdc414ae6071f9fdb675b460d66421ce67ee289ca93a257e61bfdb60bec353f664a74cd012261951d3dc54116f402e96030811a501575c879c1fe4b9c258a4e7a3aae0b5e625c1a93c03ba6da34f474d64c57d771ccd8a5913a6e149431e9f73b5142e347370dc0a8cdd89b7aa261dfb04cf37671d62124d34234d5b835048e88b726a62ff2323029654500b76e395f0bbc15ea30afe12aa11ff4957ab708cedf82347965f2fb6cecc7bd40b3cd673015a", + "8ecff7fe3186585061ebb25833e1fbe9939dd12315bea15f4e9b18dc511f049024aca34520e5f10a080ed74c510b4fe76beeea860be3e3ea109c3834dbb406223bf5f5f82f40a303001e0c2440d3263550e438bdbe3a5e94a44dc1687e7043b955399e833b7146c7c5d9372243ffdfb112", + "06f203ff32f35949f30c144ef4e77ce68d1a96454e0e6de7a6faeac2ae3e0e1efc7bb02c1dcfe764f2fa70b48b1c050a8e895d98e1621ba8349eead360c605fbde18993446ebfa6dc3ff5d17d0b2ea808edd0bcf4654d501e8ef5d1c4e7d5634c5a89299b8db787e93c2fb93627829e70b677e09411c892d9fa460b44edddb3c9b6f5aaf6174855ec9c11d52ded8d081c83e9b160157ca019ae75c2bbf1d84ef4655d5f45455c227e9e5f48769fc4529fbffbc5b21ad8b25f17cbf90a30a1528abd01373f614f1045bd390f00d9e86af5ea1aaff0d8643d5f1bbc9871cfe9d36f53ba540c57dad38c4d018ac1728a1bce87949c00710ad32c743af3c7853203d50bc80ea9c2facf6f401cfde34b8c621af3cd92858f389e0c8af28bbeed2ca5c5af8b4f9c195d8d2633ee7d66a6dcb89928193c45398f16f73972c2d579290b6a259c7f3227a70ad86f749fe12e8ac284c7a586c0b68bf908190235bceb7e0bc69ae079809bc6e9c447bf57ad5672f7f732fc445bc685249" + }, + { /* i=5631 cDividendBits=2142 cDivisorBits=940 */ + "1408ac2bf200ead65ce5edaa01ecec6c86dd0c5ed8736192a7feb4dbb8f93226aa1487af49f59ac344a38dfa38255c0a55b1f625bd29f5be728ea407eaa29d175452374d982cf70bafe68d8a0edc0e308b71bd725ae26057451d036062874f30b84047b3aff3f5f1450b5da941991df349571cea7eed9bfff698f97cd28eee1e0bf3b7b07b3b47d4b21aaf8b99b78d2f4c62a877cb5c5539c56b9eca96be9ca29392c276b1138b37c177f9d5cbc435eda4919056b59750814121789ac754debe7d96aa5b94f9a7555f21ebbb0a44e1777769be40235265f03d22767de815f5773cbcbb4fa503f49ca6f73afd991c813d1956548f2061ff318b36f68e8652e4c231efee2e9681cdda0d079f23", + "0d80a794f847347065b6f68bea76c83b9250a23d692f4b9350e54f5b599e1a38c190b9ef1ef08bf900f542e8ae3f6e4073ed7aa00a9ea9833f50adde886af68189a67b79c71a36569456b7fce52eac66ed667b5ca8c3fed58a7e74d40426855ac786f6469a48c9f87c7b77feb671ed14c8b791f55bab", + "017bd468d74ab3105b4bb196e709df5cda978d9b6dbb0f8530fcba2db31e1af22e6e2cdbba7b04451a88117184f8c6f8b6581b1a4ad346cc1237b9620ff0d15edb97f82690de32b6c9c12d7d50187a968b84e053206f850545b4c49959405d021732560ad0c698cad532733a566568e9884b1e4a559ca08766ac1948b7ee27b4fab479eb521c79bc289433e02aecc396650f937185af72", + "044ba34c3557ca6cd566c6fef25d09c5d5b529ef21f9571175acb54ff420e369b4c5588e2dca63fffc69aaabebffd0570d1e90cde1d0b74d8f2fce8fd96449956dee5ad0331b25498d7ac74ea4247a3a79a978d37b61d3f5b870461ff68e46b46b8dec2b5ee6db5b41da6ddba241f28525343943e7fd" + }, + { /* i=5632 cDividendBits=1202 cDivisorBits=922 */ + "035d5a1a79173b4704f99967d1c27a157f465087d4e2986194ab48107de68a9890d0ee15c9ce1ebd809b0c499c22341beaa83e82be52e41fd6277d5e36cfb4fe25970d717a81ad54fe09428cfe356115ca28837f1399463123e7a99d69f4dad8667c8722d54c62fdbbecc3ebb6e271758a5bcd5facb9f38d6205a89bf18bafcc884f1602a329ee31733ed5e0c7160d3e6c9cbf88b55843", + "0109dad955b17c59e259796da3c6953f2b9718dd6bd0408a740f2016e5fc4af447d7fe1a096debfe84a0a916e486ae90091fe026d689aae5d1a2cf98d62ac936c7eedd66edd07a0069017984f03ac72bcc417e428d7303c9510a925d25ee8e519f9d708b83770b4d026d4773328bf1d34aad50c6", + "033d6c3df8338cbcedb513f50737d6de4f6f64c42efbf757aee58213bdafb969b2149c65", + "320237f5c38523fd084da02184837e9101b1c04ec671a576c0b305078bb2452c09b778675b31ee3183d8df3c53e166abbf8ef22594f44aff2948f3a6eb7ce4be02d93da89949d4698b2b238d91c5134cacf086b93a67645e61b511e8271b8c9cd759295f73ecf318410549f19be3f779a3d225" + }, + { /* i=5633 cDividendBits=1724 cDivisorBits=644 */ + "067b6eeeec529c65477832a88a7126665b74446f96ec7254cb4e09729c36aa0a25a6fda9c59b80e08739f9fb1f258a5a2d2ade4df2f45df662cd8856d8fc87fa62bde210832a4c1c97db093b5d9ff2c5c87f668c96421d10bde5ec6054f608b690db3e2f7fd08a41bacae7c221b8b0e6735f06c456e84a15ae55abd9367f1fbd4a06ca2d3c13029fe780d6293f9870451bf13c590cb5fa6d1077f7fa1ab1dae21bf3a49678d050026157c8216aa0ed163deca9aaf68caeadd798a5e4864432fba3ada8e2a7a83bd7c44129a41a4431db3a2dd40beb58b6d4", + "056855e4b768c7b692a9e00b67dae4b1c7cffa9b36dd823d66bef05672acc90f61781774b651fd7361b7dae77e4159ebee90adb5b0838fad664b6407fcca715e6974a3e6dad621785d22fa6807ebc99207", + "0132df70913802ed321c3481bce543ee84308faa099aa9b024f43b420778842bf582f011b2b6c7b5cb36711b1e6c2d8cb0ee886ae69b516eb992e95874bf44ca5198a3bfa03a1213a76919908ed42984ac8d17965483dfa32056ff070bf7db2cfb2269279f68bba2a5c6b17fb731f1b6ca5f4f8b063018e9df963568641cd59d9cb897b8ec68a566", + "024346daf9dea8b58498af19e24adcef37494c292bdcc894728a5f52bd34cde8da7672413446ca98388599688c5f5055e8c8ce5e265206297d2fca40b5e43bb248c3396af4fdab06a4bdba93614712050a" + }, + { /* i=5634 cDividendBits=2114 cDivisorBits=433 */ + "0387cc610f7d26c9dc87c5f56bd87756558b8bb6cd775e37e0cd4e0dc69a040252325046b0d6b97247fe374dada98b9a739bab7c6d3659b13d0033ab28af4bf6c39e570ce1babad070e327fa5f1697d29db7685d71c4d516146c96319777483a324536e85a2528185592db5dca04b9ddb01e4adc0e29853a760faf6f58ff07f832d587f3aa9bf053e4b1f8e6f615bd18188f0f367d3a5b8702e742db23ef15a7fe0b538657f77966a6708393288665f82ee774f7475c214faefe7fabe7174f6a034880207338746086a8457b8cb921c7cf79fda75dcb6dda302a8416205d66267774ec76cd3fec109119b94bb2be7446a59f7bddde1f1bc97cf368da2ea7c3740811936d5aee49df83", + "56a2a3d75560d7967ce98dec6af0020af41dd7d8a5f40c8dd9653ac5183c0f17ec7557b5cff10b0bd218e0e067c02f2f4106ba22a84d", + "0a6ea5c150ffbda5766346fb7f6babfd1971be10b90c1bf9e06fca02575b09ee182c67bb08a2a4111ac09cbc577772ae9bd034644c2e9802a1a3d7b71bfe29a5e669ac44164d07acc5e55a947ef677f0c44e78a4a59666720cbf066d8efd371eafab6d9ec6ffd55c5de3b06eb064f3d5037c9f88396fa93d74c87d1549421be3039d9b9e4d75f80cbbc468fe3f06f0d68eef50ac840f0e0185f31749fec68f2201f3f07602b5faa245fff6a93d28abbd3451e8f75e02fed81272eaac90573d87d890d947899ee3875f04709fbd070adfeb3b91", + "2643abf9797ea2872fd622b99ad3bf10bd16ce286c04c18ab5e658afe8e64d40393b13cbe654a19e0e138ea96a1f9ab44f37f22fcce6" + }, + { /* i=5635 cDividendBits=1255 cDivisorBits=462 */ + "0f2abbe5e10daf4137522182f1315cbdaa31eaabb3a90d58592cc0c83ed0e35e73f662f6ed77c05d2449c70f5712009ed5dd9a1d8f2ee1e7791c8c25dabf7c5e27b701f0d2f80d50b44d77d55d827ef20a0db961cdd35d60902f26c6374e4058864ef1b5746532c01769a19a2cdbba3ff4ac2d7046c4f14ff76676ac3acc4e4afc360e198d68468d67718764059d09a1ecda069133bc93728008a3f2b5", + "1a451f2732658a576a0a64ce7bc0c962449833a9afad1eaa4f743f063e94b8e8bffc78bb01e63bcc3d6327dbcc6c6fc0bfbe38616010af8e7ac0", + "93cd1027ffcc6416dde76497ea34b48ccc8eea6ca50770f0812ad9ba18776909792030a62ec549ecd0acbeacaa849835ce1668a648853f378741d42f1d8294ef7c143c79de00fa1e0905b387b1e5da44fc87d08b6beba9377fa6ad44f1013b1b28186a", + "0da38e91ddda819abfd484c066147323f13342da47273e39543f858c455b4abd895810261e9b44f50e15dad46e0b12487cc9eb0f9bac8e231f35" + }, + { /* i=5636 cDividendBits=2296 cDivisorBits=1990 */ + "92764cc010a8c15460c6bf1edc160ed67129ac5f4350bdd2c8a05eff7b59576db139e8182d3d97f042cb6b44841d4801d4fc4b00f68331edd47cc08f930e0768c9df6ca4293143f90bf6b78518c5b6f58af1f580708192d424c29dad42b0ec5859d3ce0dc461d19832753203122cd0c2169c698e99b6efc17b659fba264c85ca907bc7e668c9da1c25f93ed9d56ebdb12abe3c81da716295a5ff996968fc0ba8ebf95e87e28a14f937c620bed43394096067240bb6101cb628c8f6d735c6702d5360af82e8e0582354e2501002838cb04cc28a53125e721248c83f33b8a4d7cf338e89cf0c82dbf4132872a1f510fa93c7c25e21e638d9ca3c60f782f427c8f2fbe79534677ecc6a7b3dd77d8e4a41a2ced8f6f7281f2034bbe569de76e42a", + "396d7526e9455b82dc415cc7e1752ff933c69ed6a6a48b838421da6aa0791892784305aaf948ffadcfb8ed745811e8793ff51de9e77d27409685947233366cb33dcb6f1fb27f1d150be8e8d8cad8f878302fa54135236add324a4d27072877390bd4b68f9fd77425017f4315dfcf4491a2c3e27107254186f3efa3ccb8d1826833e1553b93bc819e963b6f65f525c3d9fb59d1f7b0c740fb0d0f95a851db1e82d7cf2cb9b640b1e652e9ee4ca3f41f993a179051f961f3ccc0c8a3b51f2ba1029a2d1012051e01a95ebf8c8730a8ab66e46ef12ea9008e2ccc68d9918ccea71e5f4c741af09af2b3fab5932ff2f7ae9fd23b32613067a269a8", + "028ce5afedca08fd872d7f6c5f5d1e3102aed85cb468e5f3f68ee226301b243f016c6d25bc4c8e", + "2ee5ae93641ccaf6d9615fdb4a1012aee2331eba4aaeb220b99237282209cebe2fc01dab290214472ba1048d8bcd40968b3e6db43d2f34f0acf174194f4cf9a57f871df8cae44bf32a1e06cfeaa81222065a86597fed39b140a0bd3ce62b86109490c43de0cc381e50ddee3d0243aebad43b16ac53c2c0290c9eefcd71961b9e9489e4c240888409b8731785e4d532a7c74934edecd27f03ff6072b543074c466ff40e6a4fcf97a2b989184f9bb6770575ffd60b29e799c6e3c617267052bf5c3267f1b7c711cdba0e3d599fc7063c3fd0dca0b72f67130419f273ce652bd34c997bf95b3d621f29c5c851d889c8468d4da5072cb94ba268fa" + }, + { /* i=5637 cDividendBits=469 cDivisorBits=201 */ + "19392068ff27e8c41b02749520a64d23ea6affde1ccb4aefc565d7688ff2d59e36dc9f581d66e8540321aca4ced0bc858f34ddcd6509e150c453ae", + "91db0bd75e64f4c9abd7f6618039a4959458063267ac56c4ff", + "2c454a4e0d8ca38d889e9e11579793f31e97faa34182e83ecb95cacaf077e2b33004", + "0bf39690c5144a44d83792fe9dfe1c182062fc12d47e2c6fb2" + }, + { /* i=5638 cDividendBits=1407 cDivisorBits=601 */ + "4b952f15ee127e3cc0697322eb033c822529da76f0db72a62b41b12aa2ff9a000e418fa2a4091f26a5d7b79b4fae73c640952fb8a87b747adf15c5a285da4b7447caf23c9ec3ffb84f132869b7407ac043a80c75be2de0087ed3728e991a0e1f109729104cb2dc507bd4882538ef23969b97884c38c80341f3357c12bfa553e3413f5e18fef6b99810907653f48cd1dac88135f83fbeebb9ece5d28dabe47f3d3c3920995113d37fb462f1c153f64951", + "722157402d088b309e320377bbdd749553250119c704ec0ea03ebad92e36e69479b7245d2e64f41a86b05f43a92ab1aec73d25d8b7245c31fca78c6f85f450df994299017c87b403375360", + "a98937471f6b0f42816d7d3fd447ccbc3248b9af062e07e6433ffc6a266fffb1bfd0e446be9c69d8dc5b1d749923ba9f0856c59351ed06a1aca24cfeaee65c9e665cdf0e46833d327318265653f713036df87f700731099a49ed1b317e51cbae77df6bdc6b", + "0427f69bc79632903ea5e09f15c6044555a3d4e9ff59fc80555c45598e440eba344bade1d40f796602f6831a825f81d9510456608adc2eccdbaa9092daaf234b5780a4f329fb5ff70ff031" + }, + { /* i=5639 cDividendBits=3965 cDivisorBits=2653 */ + "152f340ce1bc7f34ee7aa35c031f7f822ac031b4f3aeec98fb8cd40e95b7fd2ee6fc55a58e086aa5b705c4ffb1b5dff84ccc703d29caee20cf120710d3ec47a736afe48459b2a5caee264605feec10f81ad12a81693bd2988b8ad596d9ae3d89b381195ee0ac0c99534045717afb052fcae217e9597eb4d830e684758e1ee8c08425edbda499252718b3f0ceb9a61ea7a515f451b111e68485bd7abd59a499694ece8db05b46c5d85c62bdee51365b5911e8dea3a4545655f13b6a801acaafb0b1f678a92e8a425324beffb5359737656ffed0c9371a905ca96ec77ab7b35750e1a13a5b1468c31f44232c1ae229fedc06004d3009bac1e97a94931a5e94066c2547aeb78f1b941aa3ba19cafac29f4d5fcedf3e3bf17676f5029beee48d73529d4e65b6d4d52709ed8c5a747011c4a680fa565ef8a0d747176ba93bc88263e58e3455d056208231cd57f7188ece8cb5097961e1306c764175df4e57ae2e12febef833e62967c2714c0e35e1c5e6b99b55e5c8535848c3df888dfe50b33d2f6eeec9cfe34386a87f95f9676c70aa212af9bb9aa7ee2f425e3bf0ccd09c486b123d6345600355c08d31448c1efd9c37edb18b35f10716f13b21e44f2364496c3b2065dfff899c306e69bd7f8352a4f5450759cad1b03799a6c79385d491230e78736e4f300748b6d900d145a2118e3fdb", + "04e80f01ddafcf932fa253096d465302420d97d9b1f1fdc9e00179ce6968347d1fb8bd8c4a93a0f441f2f8f31a65826a1fa1a392874967cc09da3b36b61144ad7a77718cc7f47dcddc39b3b5739eaf6b5f5a203b6963bbfac94edbc8278cfb79c1755e8395d0fffc3d11aa84c42b96a78efcc1d92a698485aba10722bd04c70ec590d11e7fd21edfc2dfea5f5e19fbce990e459f8ff8974b8b9cc071756bf4303a67cc68715dd8a1a91abc564ed4e9f0cb79a5dad90d489c5c60db574e0552fe3d086fe64b88176777f7e357e43272086ca974ce88c9d1e363364d88e248045deec1fa55bc168f01281a04c489a81a69fb28d621db2c672c6abf12a97ea85cf8ebe6070d750fa931cf489dba5f397e9d2b3c02df4c70d8c5f39f8cbc611b135d4815ded7716d98aa714d86d4cf8563c09a1b22d51b364bc5e90852e7baf0f9d36685e5f0f7a97e0d4cc20caa", + "0451508fb733e2dea79ea3465ff6d10260b66e637aae4a0b1d6d13e729c6ee14779957164e253950ebaa4de745927ce712249ca0b25bd552a0fca0dc90b4efab75ebad07a1e966e001d7f292ca9aabd90978de5c6c8bc4124a3e5a5af6d1089dd330d836400c6af699e2acef2a541d8969c9991e9302bda93a1e48b0c153dda0b4c1c450faea9420ed1f1e30226a5df7eee1f2921b37d443fa840a0b657612615880b21f5a", + "02a8de32add88a2cbebb11f9747d5b8751819cc236d0ee5a913b429a7c96b24ba8a5dff0f47dddb30da27cb85abaac419fa5ad2ca4630de7e73a178bfd6e40e01282674d346bdbfc9ffa1d0986c29b16ab742e9bf5b21ccc1bb91a778eb272ac04f588cb9c097f1367e69d36fc81da0222c03173f95e6e3e42c1592e03bf60f8c406bcc24dfeb997b9d5727b8318184fbb8e4750957302d8a2801aa162a7dcd11de2c9f16c900763d4d45560486b12afd4d3ee7fe8b66c41c4d50dc5b0ffcb9b01022128510b086477452888214d849d526386866b0b463465326cc246322828a3df5d8b8bf6c873727ff0bf11abee65e7d4934a60e5c2ecccdbbbe23f9335ae9cb8e99f4bd015c3fbe416359ae5b2e0ff2ac4d77791cce8664b24048e143c65954bf63a68b4834b40a077c00c1d6539f5477501a8a3983a80bb353a64f98b0448e73c0ef3e22ef7c7993617" + }, + { /* i=5640 cDividendBits=598 cDivisorBits=392 */ + "376a718effea737a27f4369e3e7bfb3017db6a779803b0ebed68af60b90927bc9a72ce3295823ace142199635bd23a523dd92769e4db6a1ad5e0c46a4a91658e1da7dbb4e6f5238fc200b3", + "ef5875ee2599d752b0281188ca8c92b5cd18c496024e01e4fe6c4b17eff9c90ecbff69a77763fd93fcd8aa1db57e5518db", + "3b45953eef95da73a33a6a742af3e29d95e9938f6a3378b54b6a", + "b986e64650b371b93a381c24564e8f04a26abef1fb833ee635a680efd3bd242c3216b5001d3416c8e308a4a48817668d05" + }, + { /* i=5641 cDividendBits=620 cDivisorBits=445 */ + "048629a27c0983761196b839ba41ccb21974d4743859081d8b777cb81a731a365e92a0e0bf18f2b084e035d649f41eb260543281ecf7123d300ccfb5bd95295749df76de98cfa6a02f05fd4c3bc4", + "174c83ea4d2e7757f6ee017bcfa7ce1fca3e418c13e3301f3b31e391cf42ecb886648016f0e09ede8c5e047d37a5770cf56bd95718e4a40a", + "31b57c0360d44abd2df8fecd3198cd9df42ed2c5b5fe", + "16c726354253572065d2b783f9064c0122b07439816efb1f5ff0a177d02e76b6ae324d57f68537390667f3db44303f4230f13db332c467d8" + }, + { /* i=5642 cDividendBits=3632 cDivisorBits=2122 */ + "3eca49de0a5247de902b62596282719090da6e2ecede4e5c5eb871bbb69e6bf5d675b1ee8b90af02b03aa0bb138333c9f402a3d6a06af0e64a2ef88653c79089c645a6966e9a0cd619b4e678b3191978b4633d6df91b673bfe89e33a332f235cd91ea628689ebb80c59af3951c475c1cb372ddbbff71f6591500e0b8432d9edee0c23244c1950c1cbf0cbe8020c852a6bbdb5bfb00779318705b0cc8e0051f63116225104b03a4fe88f7aebf0947bb83a0e5ac4ebe88c824e1d2db97001c99526b81c98c37f4b4f5e6b20f630d29033366fccca107b607e4f4f2022dd7ed9f7669be6af3dc564da390e6c0c9c11b71263a9b551ebe95d3eb1085faf1e2e37599f4fda39693ab638eb0c5ec7653b3f733fd9244eb712c781dd26646ae913188ca79910ac6ed7c1c05b5cb36d1f4d14342b00235ed989149b27eb915671c4722126346712778e93aa5be8d40b13c8e839a8bdc5ba91334bba84602edcbe21540783c93071eb27769f6e185676c2cae3236d116b71f0e11d81e78ed96d7dafc7503a1b7ae6886b508c057a9c13d4e84b8798a0bca5867491a77d5313f54f4fde2a5e75051c5bbab3656cdb2b01fdba00f7d4c08b5f61420504e428b0dfe95c5d701b59275cbc486", + "a095abf06efaa176c60324442e5fc183ccf14fbc77a8be372854fa5b1b48baa91d1ec5b09b3fc83653e614a89fdce1fffb78e071ac39833e11fee6e6d635dfc5e8412cb5b6ebc48ce5d4d871f5d01812455cc7babf3e546fec4aa9bb68cc25bd2223e6e47a5cd64bbdcf1974d143efa7cf951464ee425c88d305801c61cac7b2e6c3e5532be14143698ad3597cb3d89ac9d89f92d93817cf5f5ed9029eca74798a8785cd50d8a7db77a0efe6064d4154898bd17c50de621a6b32c693ef07c8483e98ccc682e8f9bd93796e8e9b97189c249310fc87dc728ec295bf745e3728b76856b90892254a69d41ffb6021e75d5c8a41a4ab7c8561e1e0c48355aa6990495e49db024eb99d2359", + "64193987832aa30d98b444e2af355c2687f9919838800ff6c3d7fe13cbd927e653c1244a3674974d110227cc31048571260b7e346c5788b319e622d138266a1e0d2eaefad77c783a5da394a0783b6d2b28b1c045dc752c76a978a1ab605649cd95d3edb01f2e9ea838f5dd816c36cb4f5c167d7e2eb35429e0d7013fbd87460183ba144a4422c057f59b896dd748467ceb6febb569afac6bb56b05a77eea2e5a4d78ae7283688b01a6b10d267b3b5a77d09d0c8b0a82699a7e6274cc4e", + "42e47354ebe2623268b13f22cc3e3ec1f49f5f0fd7b83961fa5e6a1f48015703013f4c7c34a1cf26157a5ca3ea045a49cb16b7dfe46bbbf4c877d6d6e650c82ca484105e1b502c48833e6ea999a70d019c7ba03d91cf92dc27ebb43811d18ad7913c6af9ccc714c6d0cfef32e41075533e84b2fa5865e51c7a99bd58f86aa7207dcc5c3356708afbc212435fa1a4bf0094fa2b43b267ac6b151f2a6da17576507c243902f7321739d475ddaa78a5729a4e095e9684222281e056540cca69cf44790944a56e6c92f5cbf9df23034d6f508481a409ba843c71d497c1a244283bcfced68fbc79523344a122ba21da5cf79c3b6800e70ff0769b100456f4fbbd56a9c90d9a1322996c1368" + }, + { /* i=5643 cDividendBits=199 cDivisorBits=148 */ + "0fe47260c8838803b34b0a270dc621c5d3ebd514cc582b4c5b", + "0da5101bac19b7c6902305266c9f8d702d53b9", + "012a2b367175ae", + "06b2b49354c0ca7ece4cd34aea80a7676fd79d" + }, + { /* i=5644 cDividendBits=3759 cDivisorBits=1275 */ + "5016793cb909c870debabcbe54681afb96ebb6051894fa348494f2b7c33d6b5822020a4411a3f1fa65d7323ab7fbe4a40362d117f5f5d8ec8491313fc284c6536102998cbdcbc2c1a86bea2cdbaa1350f3af9662949ee3a87835c4c81b32188d4d577ed5f9ae6d26f37104abc666e0b3d8e474ae214e81e0034884ce437a552ab7b5b16f5d46eb405c4456a980efbec105cdce00a9a58200a920b4f01ef1e729bb46053ec734bd43194db0bded2c875d50731bc7c24ce4945f11f44abd39040ccbfa968c249d3bca358f831cbff640779d90d54efd3e1285674f4b0c7baeac21fa09dac94f0ea212f8031ea38bf699c490e2a40370ca299d4742db88bd2cc902b3de2540abcd32caf1be01d5280a24be7f5503ec2dd233fa8afef86696ee49eedb190127bab1c39453faa42ee7223a4000ae37eff1b00eda93c3ae9c3b5380149796cbe24a267ae216d289b0768237c68e0452489c6503f8d7dada05350b3b317592fd486cad04ddb54e1a0123f2c19318fc899fb50fb058d59fc382cb322d10d474f58f1e83085599a7c0f43caa387d4d0df43c8d02bbdc153009a4d298fb757a6978da7d842766b839ed52c924a9ff2f9f5128c399e9363927298318bd26b61bee14521e9fc5e63d85321299aab2e4f61e93c9ae1f", + "0650ff0560514799f352c0f148678ed70b0d203b940f515ceaae753de2b03ad8e63d646246f4d184ed4900b454527a6a140ecab1cf752569f394a54be286581062372f43ed65834e284b2de7f93c97be64a5b9402d45cee81b3b5ccb1606769a24110abb8e98695d7785b5ff1d185f79747b9cc8f5070d0562e2d2ee6a5d8fa1d3a5f61c07de1bf94832e29f437c47d4544841b77cf5ba7200f8fa57a5bbef48", + "0cadea69d4b87375b3d251b7c11d9c7579e55f001218803b6f48e0917334a9912e080b92ebc18fa8332fd0a7fad67b575899a224034be3bfd50c30a2139ea0346785fc9218b1e3027027ade92cb839447bc7eb29c3fdc6110843c6e4b7f445bfe2e80a2736dc2db4ec09579d1eb1e8eee321b1d8accd19d606ef390726c79ec6e7d9ec1bffa2200b36e19d4ac5517d7ce2f0517f73dd7e3c75a4f88be16e6335d988b6a4ea17a6fab71a39a1a71bd09a5e2a09bad3a0a8669aee63371ab28308fcb517180ee5394f348d8410d1ed8032e45c071e5b73da6e80dc98402043634435c996ac3f55e5f40f75bf8b082a5ea3d911db13ba8b7a3a2f75c14afe0907690e7e4dc4cbae6f65ff4534c760ccbeabefe9bb2868b2b6255f6ffb853417b13ff1c344952cb16854f770fc477d9061e9eb34abebbf14dd", + "02ce56ad6b5e16666ee3353351867721139f75f71a9a4ee0730cd7df3ceb578606220058d75d48adc984d8f9f8d049baf8a479de63455fa2d68926246b5edae13c03d6d043b7d2a66da6b324a64c7dfcbd36f8dafbba8ff9f51d228c340062536e3f1925289277c184ad72b2a46c38e731d1ccbfd9a68d095a8e1ddf4297b5368346b16f6f2101d1f2fa73ff973524aac828ecad3f0014d01ba25e8b33227cf7" + }, + { /* i=5645 cDividendBits=3050 cDivisorBits=1869 */ + "0313f901686e2528d9cde40c6e58064a297fe05c2fe41ef7957593e7184921f632ed3aa9841bf1a5965303574678ae304368916d10b406aa2d64cd65939b5eccdf00698adab769e25278d3004906e6f46c2f93cbd37edde4b8e1e91e84dc03788936277c642196c3980af4550e2cea270b3afbf0721cbfaa75ada6bbe245d8a34024077171f3a30a9e38fb46ace9a38e2f6b9a6478b424bd88c59a9ed790bd17629b986c87dea0d8bd5491dace2771077c388471abd868773f9a51befd1c490976ac2eb1d8e603e1f6f2efafa07d24abd340e6cc00d30a021e5acb61daa87bc4af2db14aa8872d9d20065e59d70d979550e07946a685f4cdeaadde39e2a07bb4cb329b708ffb53898a45490d0ac31748da09e1cb290d3bd81e5db3b41613173f9d4fa09de99f0a57a52b02d36fc259f26e2bc41ec59ac8171dbb07b069b520e1853905dd87f66cefabd32cdf52ec6f90ef2e2d699767625f03c16ef2119a60df5b7bcb240259731dc95570c6500c24adc94cc4359e19caa1c8b919f07734", + "f8eedfe972086530a417b6ec7358978ec7e7528fed2d04198def41c81a2e4137d49707c2e92159e9abe09ee6d217f4ae89127e07537237a666b3b5f4b02d373c324e2883b2f6ffd51168a4773b102baed7c4d6b41d12f4b7e2a385b98fe6eb42d29290f529b07f715c5a62f2a31ac224a24d892811675a358070797bad2794aa713b2629f392be0ef1ac121226b5046dcd889bdc0e8ca51d6d1f4155a647513e7e770f4f390dad0e4cef00a8ff04bba680c2494a45bbe0aab87a0bf64958acde2c13151166ac7a85bdaba5b20ab2da20060eefc06f4778b3ae63b7fa44891e94aea8a6a824187d2ba9", + "032a579c1097d17a0619861c12bd72c7834caedf8356530307bd561230bbd9c9fcf5208539fd55581d77f0ce5c76d43edf403c8cda9c6f815744f6a08172ba7d2471e7c21e60a2998f00c0dc5dcbd4080e4878adc9476b672312532d744145417a7f99f66a27a4b8c69c38244c553fdfee2765915e4fe5f368c1d5269b925f406cc97e580fe0b18c1cdf5a0be5bd8e5d781709850a", + "39a1ce33c971062f31c7505f1322f17c2aae7e8383d0049e739703a4bc51bbb825f0692468791dcdada28457052ca15959c7dfc3ca6266bfd2d594f4a91071f0ba3656dba18f3f577d4cf330de8efafe8918790b17a8d91e83ab1e713b21013e35aabbdf1571e2c4e7f5d0ec0e0683ce2f830cd7344f54968fa82e7535cc16e009a07e1895dda1146862ed7d98e7c1564b3eb369ae281f8b91ec058dd0f18bc3ed4c2b8b0bec0dd12f43adf863b3fafc94cbc297b15e5cf23e77ffa8f4570ff2598ab665a1cd550a29deae842e4b8ea2ef29643fcf81119a4622424d5f3de9ed0987057f0c656cf59a" + }, + { /* i=5646 cDividendBits=2786 cDivisorBits=2734 */ + "01c48fb5d548c5f9e9fa30b9ce9356b2fc61cd4e773e5daef93849ec3a8beac2fc60e29c87c162b9b0ecaa5ce87ee0dac6dfef186130257efc10e8b0699451fd853a179bde37732164306a2ef46d47a41ee5c740fa5330cc01d7008df8b1ba708908827ef4043ac64cb0b94060a21e22340faa8e473997e34f55c3e436f4d16109630fab75d0d14942213f644724f0a3aba7cf00c1da69f41f4ffe9d59d4c295d90dde02a6908ce60158123f1e6449fd909947c5147a513d347089581d8a6364cc8029e7e86bba0eafa69ddc6f2a640dd751d174e467d0a771422a0f37a6f092f24025c240c569b212538752aed0ae93bb275ae458d5256c64d6420cdd7d23b9dd6bd7f5cde142999696fed7f7ce8a55f9b50eeb59e9292d305d86a5a4c4c88150897de7ef7e58ee1619a0bfd2b83fd3edc6c7fe00ea3bbaae1be15b99ff479895a512a272ae118e97e22eb6b9ad90f771316dcd1c6c2e7bd89d29f205", + "1ea2c4e036a6cf9af993f3b75a6b55c59228ec9874d73f18f64793bccd3ea77b7fdd38ad44555871201d44e87eb9fdbeddac53a5214f5c3aa02228be7395a37d6c23b7852365c9f2139be5a1aab294f1c4298d1f9baf4d4bad37d9711b39eb18cd968ece0805846bd1d94a926e39c990d8264c29760ead6930b7f6fc80ad5a198f3a1ad9e9ee95c1e1a016a3519d5241f328580c48da1ecb8134395d095d900a5120d0e52134162bde017cfb9a9cb77c903ba0cc163466f131cb368a7e0c133447a3e9994c192910fd41642159832dfc78146e7ddb80fa382ef4f141503b5a245c5334d2965bd74ed35d7ed56e7a46dce721f54bb6ee8cc23b73cad198709dd8d3dfc06188cfea9c9a85d965a6ea80b72a3e561580b99e63b570ca63b2757a7f2fe4f23d430468efa9b523a169f765f1bd40ab0eacfc321689ce845eadfed79f26667c3ba8236591add63191795b1b80194719c6a68d", + "0ec5b53a619d03", + "09c0f9155e15a818ef20d3b2634a6dd3fc0c9ee8b221ff22bc91734d99d15719ff9e6e0e1517b8152429eb923dcd16fd71432208aa817177c3503a6324112b9bdb58c60d96f8bfe4e86ed6a022c8f3992e28bc5c7297d3187748214cee82164f155f4cb282adc76a8e93baf32c2d3e9a5e1ebd1a72db4d03e348669f78602e713e020f6fb48493a0f86674a4ac6f7a9b2c7248618a5f363fbb1f5c6d91718a82fce16b53a100554d2ab8443c71c7d2212912fe62ba797a17adc2b44156e98fd309db67d6460722c6bcceb161aaeded7c3434ab41f6eac0d943dfc1f5d495f54019e954c5786db85d43e279cebe798e042ed2ed7e0945eeeb9b382ee1aaf185cd57ebbc0f35d014d385e12d1055327d9272c6b3d28c7fe281a761af4f3ec1f5b9c7786569ded6f774cd32b5f9b3f368ca982d206ffc1c9e7ccce05729bce5d72bfe59b07518e51ea269555ea310f1a7118c826e44855e" + }, + { /* i=5647 cDividendBits=736 cDivisorBits=535 */ + "7779f8152ab6bffc91f72a03231a8ad39ebd228970dd8d95f65424215d537b843a714126ca2dcdfd78a0eb0566de037e27c681ae1beab7d623925b3351242db8e8a224d39095333dd80ac83ebe7168fe98c07574089d5b2265039e11", + "42c19c4ad872be965b79b871ed062d261a32af056ce5677426596a617514055838e49f1125600b9eeda1adc59dbd8ecb1fef6f121d5952e528cda45f5d741ca63202ed", + "01ca2c6fef7ee492846d792645a94af5fafb2602e40ef2a7bff2", + "3bafb4acf139c267f4d087589f1e32a7b2ca990191889c7c0f0d1f1278fa82ee89ca026efcb8f6afcd61f321c7ffa49c57e4f56511a9334a3ff8697fa749b406f30707" + }, + { /* i=5648 cDividendBits=2679 cDivisorBits=2340 */ + "06c1c14fd998999e6e9c73c23ce8b1160b8eaed5638f63f719544977b695bde3b60ee2db0f6060a900c1707497db9140a698a1e882236a7313e55aab0eb26a2250bba263ec394be9070216f8879aeeb8379f200d3ba5cba52625491600925c14bf224d76f3f4b300666bcf4e23258ed4aeaca657700de051b85d64563d6d9ea05766307cf818f48af768697c0705e65dcdf1974b79819c9f3afa70f9f43f61602d91bb54f1cbfffb788749261c3f22dc4b842e95c6177cf6a63c20774fc5c3fbed1c97efdc0479170ee53ca98184a868bf553a327c34783d4a3ed561f74ad15d16885d258f4483a08225472a6e31d139aa0b920d6228968494a673f7bcd07019762fa9d18bdf7d9e9cfd9a67452e43cde3be9ad024193778ff60dcbbc8c5031e071b04d99b6943541e26cb4fed30d9b1f06ebd1e2165d117678a2b6f8f2a22ed3caccf01d9bffc0cde2eebd41cdac7", + "02c51ba9fa9aad788e57011014a540bad36c84a629708cee5eab14156b98c0998f510261c2a0d71d305723fdbb2f81f74e1c3003a731678329fff85228482b4fe8c80cd11cfa6d5a28a8dddd78eaaa43a66b607922eb8ea2aad78063bad2f05e50d023a50cdad9f62c4bd1a9746e24a8301ded917fa1dd50712dd30b571b1deb4b3c89408ff459bd8744f627abd9a1b372c85c7290943ab2c210b14140a4e7eb5d72221f6b2d2a501cbfa5650b8770bc807e966b2b341a278885b413a13e3878bf03092a5c99d444dca61444a8400dcbdda1cef6dd2eab2b8c7af5301f947991e6913fbb290530801edb3bf46981d14446a7048d602b102e8e8f16a951844af2fe3d66c5097459ff864f798ad20613f4f3abcf46e08d0b137cc0b398c9ac21d0611c960482", + "0270788963603065ad8da1372a3e2d7bedb0bceceacae4f638c7540a88f53e96b1acb9835c91b06936bd76", + "01e1a4784dbce2bf1915822823061c066ce65872e4afee59bf69c36b132c6ceca24cd85c8ea794dc0d08bbda9f976bbdcab0d9ab768b00939c02782f9ada642583111a7afd55d68f03608bcb7823a6ae4c06aaa06ae8b7fc94c6cbb655e9fa72b7fdb10f2fe530d34c92d3f7f92839b1c7389a15e27b995d39c1f7b4249813524f094740906210c1ba60af4d574be56c7723b3f5a11bbd1a589d3630acbf46b74e95172e309a6b67c60c0dcb7ccd4e8bc74c8aa7bdaf9044ea6878a42a77d6d1fec4af19b990448d52bca42cb4c95e72c82ed67ef391800e92ec1d21de9f88efdbd4f748ca4f94c237e288a504951db294aebc116baaa6ba7b16c3d1877b745bae155770613ed13db255edadb50b5831f9e7277b4216c6d752d500593930d2252fa036ccdb" + }, + { /* i=5649 cDividendBits=365 cDivisorBits=125 */ + "0f13e10a2e622460c65316a7be915ae5dd426aea99e33233dca675dafc8f7e3d97c2af2218f97268103017c6520a", + "1a1bef4295e862c1ec460aeb621f6e3c", + "93d6205ca3b360c1ea4e0fd4c5f85db938fca32ede22697ea4f0204a3ac6", + "0d006268b51fd6a943d636c9b72577a2" + }, + { /* i=5650 cDividendBits=3360 cDivisorBits=2361 */ + "595d98fc07f38e34d3a0512e44e9aea0975415baedbf7cc6b11031322acdce9aacab63b23431249a94caf0e0265e1a5413eae0d05123fd0fbcbd40cb4f77d707401592a132ca81dbd3a1455b30150c403c3f9b6c75dd59a9ec5e5f8678963cd8cb96ddb590afbb482ffd860ccaa5c3d94e57b791c3d8cecc2ab70cad5b8ae747e302ea9419960c9748924dfee0a9d77c0e8ae95cb08c9c761c503a807a478aa47ee4982c50b1ffc29822e572709a2bd09fc3a708e86e13c4a5995a473df63a90a6891c658324e52ff493b9393237d9df7d99943a15fa2585bb9740ec7d729c98d3c414d723b718fcc36b93c826aeb1f195b0318a12e00cc78c91e8f3d5a5a7b5bdd5fcdbcfc44d89efb5d7330524a3331533cd6822feafd09dcf7324f86c083c76f70c768a7557d8d918634db623acbc7d0901a5dbb61cc7587b468784d05734de0d683479fb3dd243d71d07525cc745c39f4c21769cf9801c56174d1ca7116ce8a99be63a5e3fe615725b849a325a7066403a9734f2c5a64641d5deed9bddf061a783b88ebb7f197ae1538dbe5e6374e17b4476b63a9b40ed3e05ae0a8c270edaf5d957", + "018c33fa79fa51d3faa1d43974700ce7524a7dd70c49f4e37c392136f839ae681b0f9137789fb12f41a344e658f86101ec894f601635d7ec10df0ab6563b00e7ca80f644bd28d052d10c9cdd891a863c28111677078f0358469a883b6e557be497c1a00f79de6b5a719fa9455d82ccc7d0ec045f6a96f7f6c711e20cb4ab83c3e03d798d678339920b15ce93813dc1cfbd56003a70b1c47097b2425d926e6f27852a2653167566ab3df375620b96739f6d1d9691beebb16e11756696933cd25bd270c918df9d0ef917e7f252fb07afa613571bae574969807ac620ca4567215e9058ba9701107ed2589a8b4572f05f51eebe447c45048522f9483edea3ffd820f45f9315d0156ddd248bcbba7687471365cb2c09f69a44565e18859054fcb39ee02ffd005e2e0564", + "39bdfa989c2aa7b556c07d164b61def55e6b2d5b110c50f9c402690397e88f91fc4dedc64e91dd3f27d832b5173bd0bc960ec98b8720309c9f1ab5051b8840fdb4a5c8baeca916d0d4c6fe0b8450f765b960b227ee3e3f29583b9bdc2b7be17bbac6d81051608ad7d979969c6d1c9ccbe2e3f6b2d034b47244d9b76eb3", + "018418362a32979850a3124e1ce3a4bf7dbdbd297cab79bbe4480e5ee2c263169189d9837f7cfd705030107f6f14683085f48db999b4f4a841de37a22be65516a6bac35f61ceb3588001bda0c5612181b0be9793ae654a7d4f995e52f6886fa041ee69ce2215f716a22fd85d907758d81c6362d19c2f2533f8a23acbb40308f2bc7ec770e484bf5057359a86cd46fdb8ba812996d6f4ca5053ef0d01cc9a1aafcd56820c43ceb2c63d0aa38d9db6efd5c47f07875144086cb1fda45b68f13a033c892fdff73acabd1a5cca7b4bde05d8c6a4d0f7c07ee6336b1a2a64c34b469e522e12e91938ea876bf5244be7d403955eb65aff8a4800cd2564bcb0c57757c9167e46813638b8892e222b2e35c5d3fd777f09def85acae8108237ae96ba60c1e23fcb4d9bfb1c6b" + }, + { /* i=5651 cDividendBits=2337 cDivisorBits=1326 */ + "01d640cbb1c8e168976510c3ca77b948f772484f91df1c12f5f2f48029b8a1e5bdeeb57f29fae47b6cee9d107b56062389857599b075147861e95560b6ba220a96acb77f8475ce1ff59eaf26b9428672ffe7ab8f51faabd390ff04e57901f1f79853f0b50f6b85260eb8929ae2bde8f10971bb7a427369b61ced6adeccff2a2ce8e6fe91e8f103a8073a4d0489524a5f0d8e897fb9a7711472a5056a739b128856622824ef207b7a43765ea74218a4e8aaecbba397ee810dce598136293285ba7fb550c0520666e7f35a5ccd61c22e3a4c1c2b988163f7a276df752863434cae3ca20dcfc0d72f24452ebf25fe419bff8194b58e6c37936a8722f554498263061f2932f8d33864482e53d665aa9af8ca6c5a7ac24d3afceae300067af72b7ab1eac84b5169", + "115c05cb3629f16ff34827e897d0f9fa666e63cc65b232b5b59b082484d059227c7f02de93d4c05d55fb91a31ea5cd4331146844815499ec6e59ed3e6f5b714c75ee82804f3015330f8b939971f0ee28636ee9bf8d9ac58f11ada40b77774ae54083801fb22a3158b592ab9c455412d511345f3bda881d4b08a32db01dd6a0548f6a87b10feae911d501a69b0ea741958eee099e96795a9982514ffb787e92cf97ed37f86162", + "1b16d288cdffabcccb5258a8cdb6c56a0dc3dc2a931b26c46ce72335834c9c1b3a072c8175dbb578e0dc2d4254e2b3a2b9ed476540b7e8fb38823ac190d3369dfbaae51cf0648ce47f3641ae23fa871ed95be603a6e9ff67aa6bfa31642b9ec295b4fb0ef9a5d8aa6b126919ec20afc6f7705399cc5a401aaffd51466f62df", + "0af9bcadb5a721c39c74453bd04d42b26ef0df53f156693a91224e9e768951cf20d5285419173eb3d2de489b465c16f73bc78023ae759aa8010cdc22ef70cbbac7aa9bb1784d6ca69a2634f0388835155ef4947cbb17e69402991ddf5f497ef1107b32f45339a7b16d4554217a8a3a20186f5ca25b3b76d302fc56f0c19318f6d23a26a06507ef1a0cdac623f0584ca4849cea2f81f5a7af4c1728b7d9665f80b184ec28f90b" + }, + { /* i=5652 cDividendBits=3048 cDivisorBits=2181 */ + "47d2c26a19a57eb39ea9490a0601a3f64ff9cff5a099b79ebbc8b589a5be241ae166e978c5cd427e261fa657f544d379dde5f1f4b88da63e4d99a3c08c56b5ac48e9af731a86e59c4f52265ac321f2e568128568c6ef618826363eb63f9532e51707314a8ad25f094266e62a7ded62141fa6825555b3e133352d5de3046631c95872409ff4936665046476862c6d86f75524d52f66983bbaa3a3a52fd922f732664667891eb8e3dcba20c8a797be5f93642d64736d19ea26a69ff248546440be12e9077ee5e7589222a5f8243d9f6066acefd6a56a34960d23cb874a4682617b9c7830e8f29e9422897be68dae366a8161a31f0e2e016fefd4ebbaa124d2431319649f2f517a76943870f598760bac562fa6daf742fa57c2659a383861cb7174fd2a1cbcd8e1e092fb5fc728345d903e638e26db47e1e3d26466fd73f142c9e79e520ef81ce44750ccee8dbcc5d2f7700d4551f1c4126ddbf6eb41ff3885d358d391966ed1de5f6f5880d50a1727d637517d67cce6b949feb5c556f2ea", + "1ee964c61132437d4bc9691f71c3a008cf87687d8b750db86c9bd285b8633d02ff3788e8d84d8f2684cf368453d29e86d495661f6410b37145fbe57055abbb2c7c19b9782ee1e5a5fdf7e5b6702b7920ed2fec3204e3e64ca59584cdffcbb3b331a642a27d30f4d4680b07c8c7a54158c1f6e4c71df4d927a66c9194c02b3af5e81fc1f6b3ac115d351dbfdcd07cf3dbbe532285809ba6893dde736b6933a494e750b88234979264af405f8e6c9327ff7ff5711d52e6dacd454b1ec22994aae1f57ad92ab8b4aaece4cbd06d3d238019428d729f5610dc616e2e14b79753fed2beb31850e26158c86462db10ca247a151fdd6500e5cf4826f3198c810902a353b8e70648fbcf193743f2b59d80fdf7a3fe", + "0252d0ceac8c11f650ecdc3b5b108087c2edebeefbb57056170f7e50de378a536a16bca13574c65bdc95bac2cca049c189d38c62827f0a9f5579635f358b6ace9d4ababb241a313eb1055a1bd23687b1d22e27527eebbb476ec9e5e174a197da6e41cc25c9133537e235a7b6dc", + "0c1687cde65e82bb078fd8a9b5f46b847596f91a3b55ed1d163292eaf7eab91f703cc41b2714bdae5b1bfbd5080603cea4eb7ed2c10215c26b849fd1ece16e78c0b1006c31754c9289ab4cf084ad1293bf90310145adae4294ea30a2b552beb7dfb30ee83057dbeff2bf2087750ac76020b338654cdfb9508b474cc87e0e3de2c9847506e69b1907e49b3b7962d43c2ec3fdeb458da2af1e00334976ed5a6227fdbcf9d5ab5ee65b0493945a1ed1e1f42c21256d941b6dba40fc709a0d7703b9c97037ab3bdbbdfc2d37e209e726a621cb66bab255c58caab3a3819d5b2ebe143beb274b6ba85d40c4de7a592fbd012b11fb93a8330bb20ffbc9934859c0afff7b1eadb645a199e1905d12a591e53d70a2" + }, + { /* i=5653 cDividendBits=90 cDivisorBits=25 */ + "657eff7d622b2381b710b9", + "1fa680", + "0334f00b4aa621c279", + "145e39" + }, + { /* i=5654 cDividendBits=4064 cDivisorBits=1607 */ + "59552c1c688d9fc730703f64110fdb70f5e2681c16ddb38289f23192c9ffbb02ef1f63e5bab6c0cbf79986522361cfbd7a379b9d8586dd4687aacd26bc45d69d0e14dead91a108870ff87ea2dd40e8f7d1cfe89e392d6f42ef1d51885f7277aaee808c1d6a2be9590eae2a7e81811b54fceed2357c2b38b523df102c0877ed825a4f1fa21cae971f5657e33063ae94b767f80ca522845f663aa8eb64cb60d655769351be1c2a25c25bf3a7d7a27949e51848657fdd373f065ca2b2c4fedfd465e44be5cabcf806caf0a52085f81fc4e90c19364c28e977c3aaa5f7067a27af05f0a8c4b524e0cb769c7bd7592283caf75cd22b48b65a269838bb50e334ad80736279b4bf9e9b0f49a2264cde1e24f5d152e1f99d0b26bd951cc7e1ac9f7f70bf9f18f20fba91a7685bab9925ad7cff95f5991ef24ecc49827e321dc7ab811acb1030f580eca76cbadcfa0ca6f3bc3809a27cd3b238e13ec97e37bd5f34d31e8402d4064fbb1f3769fd17f950e1cc2e4a2161f60105aae5870798535180367f15c5314abd334cff7a067c76cd5b6678b2440fdedba91dcd42461c362e6fe8dd75c4584e0386060872cb56698fad8e5665af338765bf4a6e07fb5538388581ebb976a71a7652ed3a8b79165bc3664f6be6dce7d015f926b803ac0071154970ab0195660083ece5fd58a0dfa7ec4f43338d50380710dd2b2d7475c7c0c8", + "44f21bd18f44ee294f8e2292cf38a2b8cd4ac084d3331e4a7fcbf33f531c06b3604aea45631bf10a73375b4ff863a509fb501c94356be4836dc64e0c6f7d775867afed8d4d76834ff5e8796852dd1221a0456317c36fbe7aae0f91d2a3f5619ec533d6337f96eb144039d6e3e04ffd22bd84366ac85f5a73243c16bf0ea0221a81798ede278c9588a97e59844d14d277e0f2559ac0cf30cdc43be059af0efcafc4305736ca113ca3e35a0a893ec1e7a7259be0641ba14737dfefb45e508401a95a9a067ef57e43242f", + "014bb2b8ea47ad595795e10c2ab7bb4e91aaf127014b371e65d5554c0f0f0b1d04ac4c23da33dfc03af4d52a369716ee0b10d4d2599772363b7477ce74eb4e60c0ef8df5523c2bad168f757ef0c58ca62e4cdf07cd66257f4b5209d0ae49571402d9a80a3d19a18f46ce9c24d271a3fd1ed60f8d27b81a4129747dd826933b949f6427bd31a514fe3854237afed51d24476fcd219ea35c63ae9debec78d89f8511e6dd077f16b572946e3a57f6e33c333f1717be9139256ae7cfc1648bfdb1f2c6bcc325f473695bcb9b7efa23ff9cddef02bc4fb152d7a04fb5da85a385188ecc0dc8c43ee0f89008b9395289dcf286d8f204e8c92a6a802516c919bbe2ba6a209e2e324395d653373762dab8472b143d26b5b42efd595183126ba91271f534ecd55015acf9ee1ce6c8f0fee9b92ac347be22b5", + "1069e719e973a3816e4e400fea4ed2d69a0b5bfbab20798006c1c82d2432858760e93bd93cdcde82298ef7252ca2888073cda0e15e5d942521a999f3f39046ad4c682b8360227c9bd233e22536602f24063d33c1168115a226c2b796d93a80f6f828fb79f65796d6c99e984f645008e8e93109a7c81702b2e6a646b31bb1e89b3d5b2ec4bbc3aa9147f30f061c2323bb92ce34b6037e5008a2d3f033ca7d6eb8a32d30d4e711cc3e29d237a8973c254dade74e5fc49e5cb04436bb924fa63ad6b8ab733472619eed8d" + }, + { /* i=5655 cDividendBits=471 cDivisorBits=79 */ + "2d79d87778877d13f892e96ae1df83098c134d158e6b87dd5935be048c1825c923abfb2493269b69667310f368e05041e7d6c01494a59730ecdb31", + "5b4cbe7a08ef1107d3dd", + "7f83266abd8b494de7dd649a0b165ee47b7f10d0608d18ffce2ea08dd132a97eb82b364318ca43033b009523a0bbfab939", + "4c14198fea866941f9fc" + }, + { /* i=5656 cDividendBits=1616 cDivisorBits=75 */ + "166d1d228512a8be6c78576bc894b179d85831a7ce570fd7f9cbf87551ea32e784eef9c9947bc48b7e8da94bc397cfa295d60ea0348f2e586b1b9a9b0ee50c037331d1d276ac937d13b3b9e2e1e9112033a932e2724fa3dc99736f21274144dc737cccaa172e6b00107d8fee67817e3b1d48c1ec7216c9896ec87d22f6b99ebacdd4bc11304076b3c748284a8da267b7812ff1ad5e4ce12d66e436a99177b33e53d722054ecfdef212e93cacdcc4e2df8736f57df27416981c1c1246322bcbfdbdc50c15f1cc48b2c564", + "076a60dd95a14bb184", + "03063347a4be806f461a0eb17614fbe8756e7032cd72b2f9992187f590000945d6b76413f10557c519b4a8dc82a5b28ede02c4c680d841a725a91285a7a17b7cf2abe57a0e48075019d095132e39eea4c233cfd932b6dae78b80380cab109a2829e1fc98a7aaa2378044818f20ea9f3f6c29eb6d27c431f1234b4723619c7277ba4f0188505b455795336c7279584a8a0ad5f14f1f15f7a140106dc6823e167bd4e5316dfcbb4cc706f0dc83bd2a1ac3c5ff6274e65b8ae5477ea1083791fe941d78", + "0275e6debb81cb9b84" + }, + { /* i=5657 cDividendBits=2787 cDivisorBits=2741 */ + "0354866950583682d104cdc529466c434932592d7ab6cdc7e7dd01b594c24d12f572ef16ef474e8284445ea5c9e04698b61a0b9d72c1f8b46844762cbbdcf80875f8965a2ce11cf0bd6b054d971a86a2c0e63c3a7da17aac6682bc24c609c381ae97261344989fa3f6335134a5b6d093aff324fdc58510c619df314fb8edc7440fcac60cf73ddc8d3a73792c0dc5d24756fc0d497dfa49c8e6bf9eeb49e8504e025d259c3f2dce3114e84f9efa5347f84bd1c7c6e1744dbb277b4e4c134c11490d11bbbc76cbc9f7ce0390d05f3c58be766c17c1e1f5577793fb83b5b5bea40e06e6be98b30f2daf280e3263d15f202c3edf1f8879713938736d5fb3a1659039cba5728b95da3e2aa6d6d37bcde0c216dbde36afee49ec39e724231fb4e9c42c9622441761cafb3faf4a9f5031abc5de71fbefce2967a137dbef547f11414c77c1c8294c3b8d39d9bc7b2245433d4a40751508e9d46939127c9ebac050", + "095057de3844f0782e389a3a8d6c202c0f493a1aa111e489f95bd54459c23b54ed53764092f3cdf7fdd20c01ab88667ff21a56ab4f98bcbf2433e88f27cdc67f46d60f8e8145fdff857333c606b840c1b26018ee1a137b2d6316e2f7a48ddc8578a80b938afd90ac93911ac1366927b3cff231932948edb32fa539b3ebbe9dc2ee8979bb60f25002810ef5e625ff532e78c8f2f74505985ea7ff743bc706feec6bdaf0f0d5e1876792881490d267ebd79adb2a95d5b3bbd22436dff2089e0dfeb39f2cc5346665fc07d39fee84c9205b0566dbab13158c73c634766bcb154479b635d33919b6fb216429031abe20dde5c14402b5f5542deea136ece1030f2d76be0404636fb7bba4e0710caade866beae7f5da91b762b23f62724db0098a0c121b21bb86b6fa2bf18d9c68edfee64d18e415f74d456920c6698b063386ea626e83c38ccf5fd466c4cecac975d22ea1828214b498e85a03", + "5b887b8a82d8", + "052be7f8459a6068d7cb7b6473f533fbad007a3669c68c86bd0ae38207e4efc12ce304cce1da59e1900ecbc75761e3b7b6a4c6de78c786489ff785e0a1091afe3b062a94ddcc562c4e431aa81ad948138eea7759db3dc6fb5aa0f5db6e160bc561864fcb6643c81b1449221779f9d9f955d846170d4c7d5f1ff43d5dc61bf3087efb48d96960122340411f4691691378e542d7d5df0d5cac3e8e76aa8707272b3b93155959bb5b8f27811ddb9421bcbafb7d19e5c3d4fec6dfb5a16446311ff847cbac23e6bab0c66d3ea380503c84c2245df2e32f9921c6b0550907450b85dc1a64e12d5f751df193e335ab2850989b7a73d7cb0bdf9323d29a5c9639a6e35c12f5a8a278e4fae30d790722891582260456fc8dd08649960f2c5347811ba8d8028001129e459f2cab18303e6ac11e3158991725e46c5afe8ee9709aa1ba8e17cb265ae88413cbc16329bea0c780ea7ab2f15da65b47c8" + }, + { /* i=5658 cDividendBits=2146 cDivisorBits=1925 */ + "0132d02cfa976a2934387ed9872ee6bd4c572f0132a72068eadbc985498abcbad75cd4c9f33b58f99d6ed108bd40cdcfc3d450e322f8339dedd9eea2969ed19291756a90d33fbcbe5350b7aa3cd3b816c154cc88fa3582d775244c77d735c9df36e1360a936bb28c87d75dd0c568ba6f11172aae427ad9df0f8d0a5c693a51071c4fffee93b7a7f251c5a267e866ef805c4b1dfc93128ea8d2305fce50ca504f723fe9db1a5884ac68612fa15ebdcfe9203c2686f124a31e74338fd4bcb411f2a82fff6df2cc193edde2a7661699d5ddc228c2740b36193ed083dff45e74b548c8e82a4ab2f0d870b1190a636b7afaa0eaaede8fd80b39b8a7dd528bfe8e1e0fba63eab5b5a16dc916ed9e046f", + "0b9d8088a092865e8e991b7833db79c6ac39aadb9d90f38a93506f25d9dbdcdfc9f271aa82c699f3177f3a7ecbd6566785c495f11da35c13895f3f6944936b64a6f2b1a39a3af2128f7ccbf2f2380a5a238db1d7b0f133d0100c17336d455d87cb7cba1e3c081a9e7cf5d14f3bfc10579dc9e7a015350f330bd7cb6a3e530d3dc708cc5dad9a40476d9549ca174583bd6347ba5ad16143f4e048e5f59754443208b750d3edfed05ad2cf755470ab5085c4662edac900a8ca72d945c180db0fc26616f31058c6a0933ec546a529784b692f79e97cdcc44e58cc2fe04917ff8348c7373b49b08d15f7143ca8f9f62f6be216", + "1a6a2a00ea24ad4db75ea5c215586d862dde4818e3ed936f84372bf0", + "026e5185463e06ad9aad4170be1114b80c973f243b142a6b44f2bd518e3191bd0b1998f791b05dfc4d40992afb9b0c411be4b1808cdb19ecdcd8bb11fa7671ebc6dbb9c47f37e68eebd3f3a14d2c34b3b54d254618de47ade3ca89a6fa6fcddacaf67f5a6cf6dc65945d462c65e2f5536b1c366639563be512575b89969ac6bdefc4e6d90ee3c1ba05dee7b863b7bfe1b64608cde9e4e7a4792457d95fef414fc1548420f3a9d02d302d78f88d22f78c8fc1404bf1ff962ae3c788377d32ff504e5be2d9b0b7e77a8bd8a870828a2b1f10af3fd6c1396da555e80dfd7ce4758370f34a787a29a7d1f869b79e086ec65dcf" + }, + { /* i=5659 cDividendBits=3042 cDivisorBits=2670 */ + "01007d8c6b4a0b566c1e329c3989129285cd467055a473816390435c721a3ee7acf1509b0477f3e1ec8785bcd54da8e81e6d60d89ac25e134e10b3bb87827985ba28d03f16b452837af3be825c2fcf763249f0d9580bba97cae91a54cdc4d2ad97c9d487c431834926e7b8916ed7f96400fb7bc4ea5025e7a0b47a090762c8af418b803ff0a65408ed4de1ba2b478bb42c171b1c13da2bb37b0b2b34bf9cf294506b3857dd0fae7e4bb6cee4dbde3ad1430ee6d852a3a39c74eaeeb417c6f7a846e5424420a00274ae2fc296ffd91c7c38e2983d07309c999313a86e30b0bd2049674532687ec9c545b70af080a986758daeec92c7ac381605da9d1cdbc2ce88200a4c959fd340f25dd84035aff3e09ed74ad71aa5f0866f4abea01268e0f78bf3468bd7106b06dcac1d3a12b0cb27e8fd7d38883fa0cc00e514b04fb8dc4c36c2b9294d8c2da9f7c6b2fa9ae366f122a9df44b76e801217b19a9c6075b76f4364f17eea67facb2eea684f2ccb327774ac1e4871de9013861c387f6520", + "2a7e607493c0e411c2762a900ec1efecc3752378541d8433e1bbd92407a0bce748b7a834cb9d3c44b614ea82c238c75e14ffdfca7309956d65f85a1607e5546c23e3a0633aa650e4bf46d56813ee960916203bb827bf78f58720e55d8b90756fb48985f9eb26a4c01b7f092aa4d8d86133708cc6a63aca6e1722c8883af57b393f25bb8210d5e9ad2c63e9c164a3cf4c70ce8e9e0463600641a735b908eea3b043a4618c6cde5405a7ac0187258cdfd69fa4c9fc5ba7a6fdcd8a49589f6f8a45e767af60b5d7e4919e04cc771cccd398f8eee0c4297c0538eda39a39462fce3ee7159922b62c3ca1d3f275e961fd94df7bd7062d3a9f969c93a7b51801a52e9bcd7552b2864c887a46ab9e8756784491d9ab8adceb3af179adf6ee5e631817d21ea80db492ebaef580fea5f045760c78543239872d11522b139698cce8912e8b8eb71041f60ef633c3481bdce0db", + "06093549166b6807826eb1372dbbdaa29da9f16bf2eb57d3ce066beef987f98fcd83afd60f0ec4e20cbc51c00d9a6a", + "2202bdf0d4f39580481d4ddad81f62e318c6799a9e669337366befb615e5d9bcacf40c669f11abe39ce954ec5f8030151773fbd5c58cd0be237164e412f7746c23d41a261e61540f68b9003c003ccee3a3d25f2cec3a11e631d3fefe724dc4cea890032398338d24163db3b8274dfd2f1667d99d9511a52974483a0a2913ac0a93429eae0f1d8ddd1ed13f0cb67d0fc0299bffc693de4eaa9686c466d981a6d22272d6668eaab0e0c1b99681d909490602312fd6e79650029ebff8aecf0db4bc4e39b4e3690d646751809930ded6f2af5608da99ea7d52f05aa3c87a01ecba8b1c6bd961b4f8daf62670f0237ac57f174e1728a39ca1a2b2097a348f560d223ffa577701be79f594892f1fb403cf26470b0dfba72aadc3e358be1480409aab757ad1863498aab914f345e25ef4a566461c5e37c1f7ab44bc9e8f58b0bd2495775b7d9b890fab95543d5724a78c72" + }, + { /* i=5660 cDividendBits=3925 cDivisorBits=197 */ + "0fc36480f6927c55f538256fa5aaf70d826619f93fe8caf07d59a0cf717a10574ca5076fdf1eccb387bb7c4b7d3bb061d38ba2b10dfbc8e1ed11c6952b6de07e61389d4778b89feeaa3e669f0140478b0fa5bc8c3d1cac0d19e6e168c34883d4f6d1e305dff9f871da29241e4263afd330c8bbea7905b9f49da2c63514b3abefbfb8b6fbb115ea0fec203e0b5a97764d04a74b8fe6678f1101e7a283e39f2c5f25da4304d7f57e319c459e91e1f9ec3ea29190e13e1e5fa893576fa3059e1b3e2a61743110ab72ec1c75836286ab847709fdeecef5293816db910e80f0d5710c9ee0e414c58bec40f96ff5bb694cd917aa9303e352c7899e1762925236e763d719459626830db1fdc1dfeb140b9bee9ff6014cf140c5eaef1d8a21f9507b177206226fcc7ea3777d08f0fd80562c558406298d96bc3cb3908670b528d59845e74584f5e46312759234c5c31a412c4bd295750381c5c23fd64ed297448be3490a619c3e095144b5cee357cf2ca8288e2845c9c3c148890f81b0767aafc3efdfee8076588a29f28caef771859ae8d1905fb2d6ad94e17480f6a30b329167b2bdc78fc2a364b1c724e2fc2b73e4d27b39f0df5e7afcf642d3d23746bc0cdc345fae66febfd271f3d507e3028de9717e81d7900cf840af9147e69e4c263a9da9e55a41722210b6d61ddba657a1", + "0ec1bd24196e011677c6b79082bceae1800a2c3f7201a5a71f", + "011175c34d2d47516757393733535edf83971a47db91622de368e0378e51c88188ce56d2e160815e2177888756e36b9014263a3fb401b67f7a379e9f560bdb734d731a9e8a4755fcae11f4957ca8254819eead534e1ca7b232a0c2b3e3b7fb96fe31bfd7d98aeb6e3be91b8909d0f419d0bef45f9fb48496ad596e6ec117938a14e07353756ca9c8b8fd2e8ac625689b2b5aa40624a7c6714b1dc6dba64e82396d022df822324a35840345c97080d707dca83e53a7ee18aa6f90d7abc88d8d541f92718e911e832b15aeed76dab6f0425d4688d94959a0eef48154a3db2e3aea7824ab7785dd399d806756d451482e1e6a0d0739adf0e62f294bef24a404e6476dd145d299225cd2b04cd63fe8bb31cc6e11af1827ac33ec325818b494750c4760ba3a6e0ee0e6630c99a970310fce6c2d681dfc7c17827e409e044c4823c041cc63d2218575c1d2462210b43a0428ccae72280b4967d96fe3fd5957c6ca0d2dac160b739b1e8653d94656e4a2fe35fc079e03e4dd1ad3b88660e26639f17e51cd712561358d789bc86a6ed5424d7b764058ef942a6d41e86a5bba1a3bc771ff4ea1e2eef2c71c5f8b2e4aa1a443f8d3d1465ac6609d6c1fac42f40892af69a5b3088ea40b9bd772c86d6fff2cdf989624fb6f", + "084d219489b59560ebc8952620bf5fd7bcab1005720f9b7c30" + }, + { /* i=5661 cDividendBits=203 cDivisorBits=75 */ + "e12f4e1faf5db16074873583743a527e8e7ac0f32d6e6cd354", + "079afc8213636e3cddb3", + "1d9bc54b43c0be249df30a8c77c4450f", + "38adae16179f0e96d7" + }, + { /* i=5662 cDividendBits=338 cDivisorBits=312 */ + "01692954b2849a6ed9167db78a6d66ce844d70d089ad1449784f70773c253161ae3b576577f68633cbca82", + "cc4ae090cbff7182d1faec3ec90028128b66cbb9077f59b58965fd36247e3b13d2e3139a968ff4", + "01c492c5", + "492b07a5c3ccc941babee794ff95e58af0b18bc5ad9f475542a807074c6639f01118703505dbbe" + }, + { /* i=5663 cDividendBits=3139 cDivisorBits=903 */ + "0182deaa7c16be1f16e9438cd69e8934d1a596a731768aa8fb78a6b3fd72dfbaaad57d73ee5c43d9e82f9a8483991c2593b61cc7d7027207355c28bb370752ee126d7b09d0935e9fb5a31d756f1329d02707b5c63ecfc9a1ada5684a2bbe0e529d8173efb6aeb31b21eb32dfe09c6c5a29cdad01645e1399f7cc85caee9864e7cf0edf50e67d404deb368ef1440ea413f5621f28a764222b4682447c87a6ad28e7076b7bd547c6868966506c1970a6220d6a7f06afeab70cc5a041f544181f7e42696fe844faefedf2b8ced0b08c98d4ba563647d1599a3d4e80005fab5da4bad1afdb40714c8de9b8f23c087f7bc05f87003d8d7aeffcc23716ddad5ed646ea0c1f70e7c143bf32ea6acb79a3ec915a49c355fb262000d7a761bb849be065574fbe0f5dcaecd3627bc6c932ff5e2be4ff23b98d9dd9efe665cb0f2cb58daefde799ff801d637d5332f5d7c2adcdbc0ca9a6d984fbc4aa5a55dc06d4437205ced3ff0c8229984fca578f9894b62d0ef490b816c0ab465c64c4e970127b24cf1a3d1233fccde2c0c8f2", + "60c4108dec6c64b5b6026019e95afcfb2a3d0fdd3d840bd8d3d3763b61804947622bed141ae3124d30bce6d0418424eae02ee99fa73ee32282dc1aad476ef0e9194761912a0fcd0ba2f375462aa6b4f30739ea06b04cc6ae91742498f3e79e144726cd6c8d326426464c45d29271727383", + "03ff7cccab253a1aca7092675c95ae1b60e763582d5a5a0a3578a53ff58c6823091d83337b826b429bb7c1e5771fc2f91c760d69582c9822b09accec8f35d50eabe1a34baa5ba4b486954081384c05af364aedc4d17d7f3858e4eb0575cc75ca22f673bd616997296ab185b3e33ef53de845849c2f0f97840beb23bf90c8e5ea3c6bfd7ceff539665f9239dd2023809eb5597f67c6707a11fc99ae0dff30713ff84f0029598d4ad7650c1df21220f2ab70d8d3cab212b3dfc5ae6ba54daeeb9fcb31347ba6394dd83644ad4a13598f5a5ba1469c99db245c6f085c70a1407071b1bc0f229c3c29456697c3c56ed4f5e1bfab7ebb2ad212aa1d00a363bb57402e1e8b5f1d49e1945a952ec619c8dafa7daac0cde908604ead", + "1adbe8244132661dc8298433512f000fc35415cfff08899d9f9da782423361d2283dda350d6cb9e7b3eaa5823f8319f4096154ebc91089221e758263a9ed2a744b0558df1ea8847687bd2eb381ac97e2002bf112d81397ee595d2d18a1644bdd5ec6b883e7a523b1162e7ae983f016cf6b" + }, + { /* i=5664 cDividendBits=320 cDivisorBits=303 */ + "dba5dc34e04f6fbc3a309168b06c1e27660ac722a642ab14a45afd2cd988cebb2ec34611f8bef371", + "71356832a8a4df9983844cb2b2c13d7d3878a8ee9dd4ae2865ae0c6ec6610d82cacf3e806f9f", + "01f0b1", + "1c65ae896484323c4e556e881f69450cf467877b7999f56b77bfa0959b736e6383aee9adb682" + }, + { /* i=5665 cDividendBits=3346 cDivisorBits=3301 */ + "01ccb3f81a42e12acd7d75a3d4efa99417b8905509287bb76813cf39e0536b590e1bf93f7f49a0503502f3f39a9061b6a0db0a47cde92a150ced27fe3825da99e10ec2118715b0be56d0ebd089489a4c0b520c8ca8736c74bb5d8bfa793a22c0f7b1047a2138c26590ab56a891a62966895c1aa2e55885bd29fe9021ac027c1d623cc4538361b51abacaeedfacfdb2a95b867b3c432e5ca2f76a06cdd57e58678cf87d71bed83ddac550ecad1dde6f0a44c96bc8c0ff6d78b0abf8c62155a6bbd5c49fb127e7d61a02065e6e014bf945db9180e4d2cab9941a9f33e9e977ce0b946cadac4d40e33c2792ce5aff90dc9ec4702d8385e1d4076f6737a27aca9dd45d1a46e29bfca09f66b12054eca20c58c8753b0c38bf6822fd307c7c41378681ba8aaf6b26c936246aa838f025019e946a3c94db005ff24c6f4fa6578975f215c4131460f20f759f1c12011555d5db174df94f0af6130a6d901175277bd50c266648a3abdf0cbcb0c412b11d4311d72eaeaeff03641e1ed4de47638d687de42adccb6412c4a50a36b372429c6d5810b3e3fc9212bc42d1191764a852e1b69b4e593927", + "0802aa2e98f90c08a82c6018ad7295582cf543659cd46ba0739063ce001c51fe66ed59f784773ab1907924971ba70668ac7b502203cfb055fa5cf868f1567e4273db5851bbcfb4c25cb093c96d0ab1a6e00c7e83b2b03942086c8d6ef6c4a6ebd4335e4954c39b01dde9a3f24867f400c579cf31b92279c32017208dea771ed0a68e264fe7f8acb6f504f0e76e3f1efc7beb654182174f9b1a339f9988cecca4aafd88b6c22a89a630ddda04e519fe28ae19e0a6ce7ec500ba9f3e09b4c106225499ad66f4ce2a380bb14538675eaa1e2e3d46cadfde0e815aa5ddd8cb089cc3f7d61744a7137aaef03a16bf6b015f1a8e657dd6eb172e2d9125e6f70716aef1f13d2ef71f349ee278e63b05d0dd7a5c893094e65adac8f922d7f74107e5fc7a972a985e50cd3617e022f78e78227a296bce48ee2cfc472dcc8c7b7650f4f1aff23f0557bd9dd58cc606a678dec444048068636f05520466bd2a92172e490277a4093d672bd040a622239c0c4aa3a595d805b456226b253244e57c96969e96cbfe1071febe98c592561590daf92ba9a2a2c4f6d3cf4f9bd950501fb8a0", + "398356b7a8c2", + "05a527d7a6393cc2d81789fbeed859f398a361506ffdf6b62d630a09b60df2e811e34787d07a41d223b145ae02c9f412a0e92134386e7b5887a9c81b675556960081f7540872f3f0fdda4283e9be195914dd7e6ce4c92dd212a8941563c359754716f334b9c1ea68e1b6959828604cd2b4f7d7467ac061c98a31bb76e97505efe67bc70b8ad11c1d5a26d578b7f306bfd39e25ca3b44cb36e47231ed8c198bed53b7b3d33cd2a0834b7d382f8b77349cfd16cf0644e88d6ca48b9d588c2e3812281cb282185f574c6024eb6dfe4a1054b69877fbafecb7b708454e9cc7309eea0c3cc2c21489b967110360eed149e429b2c86a89d19be655fb0224be9d21336862feec2428b9a1c8003d4fa807a8e4bc87b638d7c86eff128c8a4777444e07cb0f405c2b268d1d02d7941f8c93ef876189cc5610c89e9b0cc6ac8d061d8eb7ca0e9f4a72f8b53b121ffcd8249bc3005fddf7dea4a9cf482898fcf693b2b1baf405f62cef66ad49fb4a51ef008593c6665aeadb4429b19ab00b8617da2df66d7b19a4e2b0525e025856f29cdd0bf976eecd5cf77bf6547f4a970ac64fe7" + }, + { /* i=5666 cDividendBits=563 cDivisorBits=362 */ + "0714b0e76dd9ab1bcfa1dc55b48b7b4fff2e4d313372226fc4a2afe167d1080114107c809faf5c75a4274e506b16c4cd5a37c13aa4a9b3a1883db611c1a7b3a438e5757b64b2f1", + "01c4ca2fc8d6b28208e6a83bb18ee98d0a898f70393a38cef895f26574af7681b3fe55ad07dcfd47f16699cce7db", + "0400ddb82c0e5cc8f906800e09a4d33b6237df7ebd9d56feba4a", + "ec5e004d50a0aec63dc3bab613e3bb610b14740daf5284d3698404b917612346de7c9bb6faaff0428d886a8fa3" + }, + { /* i=5667 cDividendBits=3580 cDivisorBits=2881 */ + "067dba223ba8bc5d8985e78ef8d299474878333bd2401007ae9a28cba2b54824a54cbe02f8fc23242b3fc86f58c070af87dd1115d13816ed78ccdefb9850f31db5086b112793d0f47e2e0f95ae3461899b7fd4e49f6600f10b789e0ce0547a3ad80e5dd104826af105623c083035930fe6e96face6b1a800013736aac20aec6586c46a9fa93218ca89606d58b3f65534ca770f7e7be7a9cf662e1be9b37af22ab4dfa1320c4a336d7b02af7c8bf44b42c301a53b8b5c08ff958647d2ed0ab3ae2ec3ebaf556091acd9448128edcc336be5339197ef1ab1ba847e6117e383a2fa820d51ec7c9385f597c1cd8dbb045bf5141badbf05e882691cfdfd121577f160f296608fc845a166afdcd6c0895dd7290cc66ccae8b3537d51dc46f940419da3943bb07dd0a7847db7e057b486e7a88a11cdb03fa2e0331018af4e8aabe1858f5f24af6a832bea1295b346fb62e312b5970670f3aa2922ef2589572af3cef611f565d6806839b924d448d2613c482125e40fadfd7019528c8cc338fc41e9402c3936c03e03df4bff7aaa4c57373e7466271e361774d3860d5bcf6600e01f7ebe7a1546bb30b8e1bd0648aeb4d64db234a84b7adc1c096b7c026a15210adf10af", + "01236ffa40b7f9fcde4483537fa077ce6c53566df6269f3f8ee680e4670a2d296df5ee2e0a2036c763cc2818b9827f149c9692483e3a1ea2ae624f5cffa7f18ab7cbc3adf0b648b47d69a175e36168dd9759b6cc999098ff9a5ea047452ba566d968152a84a968e9a73e3ceeaf1622c06b511129c9a02578447df5533afcf7618eda69d62c7c5d92543a6bb85e0005e9bb7bb044f4f60ae2ffc917dc2f46daf2b30148845bb9a8ac23da082bc11a012d739c3cd17c8bae22e5067ba62727aec54ee330606fd652a79a784775a12ce85cbe7219711da1b29128630bc375d45bc280d2fc330ceb4802710609b4bdae41ece870a50f5840864d6708d71353d076b9674430418e3881e50f910b9cb6545883d0fb75f0700d23e654f3ed82b9d6c3c2a17cc8cebb067b6810c5b67fb3f6e702b4992105c824b0db332517da2c348fc733c0658a9c56d0e7c72f1c796f7fd6fc812cb0dce8e14a5e8c3da9e482161cc5bc36a001baae86a8cf", + "05b3ab3e889ee46462651cc89961812409eed55cc0424962c6b732a829dfd75f23b70678d8120252dc0299f38099ca7318ff7946cd7114d24d9f68bd781781f49a31cdfe45b129d9e8e1a5f1c4911ea867162bc5801b3406", + "4bbee1f54fe6b30798a0e01a9477a20c3bfaf5e07b6a0358bf502edbf5958251e3816553cada8e9799ebc42bed34b8139a86bce9c2452a495e933d67f63d6f3c78f8d40cb948c2ca6a502c86be0335c7ba572a10395916c233d773e55e4b3481dba18e4deb4f09516aa6219ffb6e9d25637cbeedf2e4bb56117b37eeb83b75bfa2cb699d6ebc3f976721ce2c8982512ef5ca416d778f02649c266e096a45a30957390b19fc099a63bc0f1c2d3499bf1f58ed088cad5286acbd4ba8f108fbaa8d746e5a982f14c68f05097c3102e87287983f33db6d30f8a152b72b37e18a68531ae941300748ed1870fda9936e55af9c98ac4f7425125e451a9f645663a13f2acfd31e2b34690a146e347c52bcaafe13bbfab0573c9d39a32b25f3509f6992ae4217d9b5b3c6498efaa8f59aeb402cc4f982a10b77acb5a070515f80b310507517a47ea66713598c93e3ff3d9aa7c16a82517a2224c47c786e8ad59c33f3e2edfd97b6674b980fd5" + }, + { /* i=5668 cDividendBits=2629 cDivisorBits=1569 */ + "07aa688c60e1dadd82365f27466e208ad6edcee5bb57f21fc779c96a419d45659a5280894f8dfd9366a6aa5f79acb1153f7f2f1148da07eae4f8aa751ff3128c2e1d754451fce744a353491a999840d382aeb63f52582046f5a9fcfc4d5866b70621bdf64509282dc4feab086c8e8b4993b98444370ee2be438b074fe13bc0d538221f95d89ccba066193acf1692be54e131c374649d127da9159591df9f44544b31101cdb9a622e00de2ddedb03829965c3f1280c36d7a982fd29f24892144ca50adbf89283d22c21bb604232eb21acb817ac0bb7ba19cc7c5a1ac3dfde784808f245e19c092bed615d5dfb6fb5324fe2cec00f945b591514a760a67429683e1395d4a3b9c5fef7a2c1ac20abf1238c4bd6fcce0788147cbcf228b956481a385d44047e38241c465b57caae1577d11cf47fd2513d1a58c59748f21cb62152a0096199ec5537902558", + "af67b296da93622a3a09182d809e9c47f77713f1594d5d4d6ac14029f2a2cc046b23e0cedad0a5037da1a71a70b3248464c55f997b800e77583cf594444833293d8bbca8def6a705747ab404d666424c5baad4df63e41a882f71085f3c5ce427c7b9e784ddedf4127ff9563de78d82fbc78408252751872bb3d7e56079e0633ad0b77b19c86d6d2b82e5ed9ae0884a154c2d276b7dc317d49a7451a825819245acb1e7c0ab7f6a96830a8a75694150d99eb47dde74ab30910008fd7aa860d4c7c10f5b7f", + "0b3017fb2b09701fc050979cd608f52637bd537cea2346ca079f5887d541cc3da20574a415148e2d6d36e24ab2f64f42252b23d641fc521bd6eb50e824080794dc5100a05a470f02b23a11fdaa7d1c64643032ba95ff94e950cee509b0f4c402ccd9369fe8a7fb5e9672b80e2a89f429b07dabcd626a6315a4f53ccc13ed63f7fe8e293b69", + "166953a807e0d50e2d7974614edc81ddf84d9214b55e3a9696cf4d8554888a9dcc9fbeb445dfde47abbf9d060d48c12400f397f9983f5f7cafdf4885e56a5279237fa9b6711fa7b06fa798a95e4f86da5b6dd59019d435d00dcd383e60d8061c690423ad8ff38c0c8a9eb024a04569e7e22a8a88159890fb1767954c1146aed4bdd5e804972ea1de444cccbf97defc1b75d1d72975ebb95b18634367f304a159276ea09c7d8c5c6ef78883658e67cf7dcef1ad33dfb53a672700fdd9cc22dbb064d65941" + }, + { /* i=5669 cDividendBits=3036 cDivisorBits=2298 */ + "059e0e4b02421b80038b051321afb0ca90511be26a03613811acff91c151e4db90a69e841665c29b9fe1e41f84564ded81f63d5e4b2e2caeee6168f40df49597e74229cf42124cb0c3d0ae0ff879cf4519cd541b4d63d00c2dfea9d9e458c3a843fafaac42363ae04e2a8de3368066c357e8835a6be4316cf87eb11e34b8da86f41fa5adc7a2a1c6dc3243e950edfcc030cb8719e2c3c8315fbb81d9221c0c1e56ecc12d7a0a3bdad7792857be9a87a714d2a04038498fe6674a5367fda3c5888766771fb6a32c6098bc0496b2c0a72deb28c8acde7c80db8d4e3251097fd0a1b4abbcbcc6de06333f3e475d8b9c96c5bc8ccde10050f528e6bb51c4d994194e67ca8ee6390160b2997d575b4b06555379df112d8ebb0cddef44e16959f5048260d5cfdecd9870f1f24ab6d4d80fb43158ee4ae86e6b521ac63478dfc10b9fdde3286891413ed62a8aa16d8dd70bcd28bb6fa9be48c73bca5f5680d7b8e567ff0f05b66b2e644b3f8b960aa55f736752e41562b5ac6d055b22f06e54", + "438d3b3f05b76cd4424275f36896507b9f5f59cc9eddc165019d5fa939d37a306321a16319b3c1dcab0e7e7d9904831bb8450eaa383f55084213baa8905d1f9fcdb0a65a451ed8056ad574ffcf5ef39faf2e8003bb4b0018b4fd6fd8f9716ce39b9dc7329a7269dc8d525483efd6fd517a596c11ba7fada49bd32e6498a472b8a1b62a988ea25edec4b17c2c15c69eda6a59c0ab14ac6e6da951fcd1586411144ade03e5144fe6cefe4e932b3bb9a04060075fae2f6d1eee321bc398ba85922df71e907057cd03367ece42d564b76c888940a116dc8446c5ea0cb7c5424b31662cc396a4b3a4f94985b35f7763da34d2704eeed8b34b7ad19226f1b6b46ee92eb2a44f62f39418487a98f52cfca198cfc0ed95662dc756f09cd07125cdd334", + "1549c975b12e51fe082701e90e53760980d27eb490a0bfbd9e554ac8b2a75a591e281d4573c19db530e2a0b390accb222c0e0d33926dbb23a464f5d7292cf08761b38bef5c7dbc83c3bfc2a0fb3281e67b0005edfb9295e49aba357ace", + "398bce15de2ecb4bed92ff7a54c3a9c8a5c8e9ce26e1bca998bb4648d974054fe74cfea2304066abeb0b2e7f4489ce2cc1779c7120579de7def0f58560de1e84f0c59f24fd91a8c8d46947a2544b76278ccab731384edee7505bb878ff4e31c5932df5faff7ad35216a092e39ae7f3f78eab798cd2849e996107f9ef8e27c31323c7bafab0abd07ed8d7c6ee52aff5a1b5d36e51373ba5447540e798dd1e5e4ce27f7ab2c0c05d3de4e8822b3c6bc6e230934d45d84f11f1a56eea63336484e925d3513b09e02d5541839d5a3ededcf0a7232b8506a056177d89953ba589abe443b14fb01e13483b5524803ced54968405ec58f0e60d2e0fecdb8517ec88bd8aa0015fdcd2f913da2272af89762b90d920bb6a6bb0073452d3a1f21ee5b27c" + }, + { /* i=5670 cDividendBits=431 cDivisorBits=130 */ + "6a4b77a03cc257df055de4f1316a3a266ebb746c933c35bb65aef212272ad38d90f0db61b7e58a90e9cab5c0e43e5464bfd20403d961", + "03821faca46874d5017f679d9e2bd1d6e8", + "1e4c5216ae5ad143874e1281494552b76cacdcd4f5bba6574ab782d780d1d276cdc1a5a070d0", + "0366e7cdbe35c97c2e94eb0c90c27fbce1" + }, + { /* i=5671 cDividendBits=1048 cDivisorBits=419 */ + "8604f7416f0aa51eda71cb6cf55a43266f8c1d2f15a78a4e5ab7dd2575855c8820ce0368493b7e5f7e66b2588c512677c0ebc0d4a6582ec02ea26b127d8ff696b7af2a795c8ca59e167bb182c91831e1de11ee26e264d57b84c62225f32526940804852bf72862d99fe3db6396741861361d545a66e34b3d95e42496b872ad8ab9b2a6", + "046f2ccbf301f922eb7eaf0aa2346b0369ae867c9554aaa71761921af7811d72b1ba08c8a0f62ddf3d9ffeb38992ac87a87491d726", + "1e39379016417395fafd8cd59a7f379c28808ac32952bcbbdffd3923994f8177923d6469c895011babaf3432fd223370a11d37aa3b22a74441b430d2c39bdd8cdc9c325921087d21141582f66a671c", + "0147a9c4cc6ba08925999b5383013c4ab9b12895da0d86e037d808572afbd0b4550f93f7cf0a9c1c6b5ad2867f37d30cec8379e07e" + }, + { /* i=5672 cDividendBits=1895 cDivisorBits=1818 */ + "1a000e36237917c914ab3cda823ba4d6481e290260bad606858b20a15c425eeba2abf867ea0463a73bb26cfabfa141e47f3aa56cc2ac02ddc505a10c7d73368e8094148d72256c3c032702196c14e34283be2097fa2657e5414d1b87fda9793c0995f4399e37432e42d32cb2d73a5509e759a2a2901125bd861cfcb764268838e41c15014f00e4edc30263585b3191b15da8ddd98fc8383cfca4edce4fabe34df15275f2f0faa9a389c993a53885f6b6bf821647f625639f7e7c6b3d6643d4c68cbbcd22e005a02f3432af647bd67b7cecce08785937edd402f97a7a18281147f76267ceabf3c23065f3dbf6e0", + "02f1d424f578369250f512dbbe5bceed061b628593bd2a96d2968e76474296ce656846e5af175cae2f03facd927921bbf29930080d17d80422c40d8e13ac0bcd44a2d7aa5966e3438cbf3834567c81cbe7fc7ad4f31c1f9b1b621361e2489266adee711acbe69823592b4bc5006b6476f3de717c5a35f6a5e512a00de89128a42c25491d1aac280f9d9b968402af8ed2c3c9de9f7a7116367510a7fc0de8341d610e7cb490820b2d803d75ad62db82c7eeb9fb76c0e9b86015a1204419854816e44886178e44c66fa238e33160fcc63b6af5dd740d5f296d899bdc9c147eff81da723ee6", + "08d464fcffc6c0650a36", + "02b9cb6cd936612b58ace01729ca9bc98068836468e28c56b37701238cf64473f9604f79fbe1f1b4c49fdfef892e6a8dd365e379be844f2c5d19a871498584d63370084843bf812bd23b54d6af143a3fd843f949a2fe1cd1e7353d91fa73c798f037ee9c56cdcd2ea4423d420f9ae4fc8a48183b70684d0b2838a2640540dacf89a2e9c80136c49aa0f0e19f0d91643511ee56b41833593a0147581cdb9b4da3ecdba8b9ba0c8ddd21fe25bb4b28e3ad99eec40ebfce5d205ab2410adadfb89d09d53465d83177984a2ceb311be42642debc85305cda8b381b7ef0aff5809a56188fb65c" + }, + { /* i=5673 cDividendBits=1613 cDivisorBits=911 */ + "0ee78825003d7648f8eb4cc08cd23718991a3ffd6573ab47cfebd62ea1302ec5caa4171d03bcc52eecf77b1024250867247faa938de8c2f28a1b885fffd1c23ad8ad6cc427c5a9d004aa041af9776689a23f5160e779f06c6ac28db5cd70125756af8ba4147dc63b97ec675791127c8dcb63809b35230d07eaa29301007c2711881cd29a8f01515c5a0647abafc5b3b82dc67200407f7148d4eb793f11cece1353767cc96ef8d4dbc6d2b2d4ff0e05051dc2f3d1d99a262b81b51c1b9b3f773c66dbc5d98665e5515675", + "5e2d509e013252b27ce9667ca7cfb8799c16b98e0cf4732bf432728bc0b97f5acd5b477c6251b2af9edd49c577536aecb5d90dc69a741af2e32e5e2ceaea4f441427f8163720bd085abf5ad8f71bd903385f99be0e489cafeb737178af24262e4e027ee8500c068d593b08512f6134ed57f1", + "2883b4626508903d5f69e76342a3f38b9e380e3bd958ebdebef569b6383dd067956b33a1afccf62bbd3c7ad247c3b2ba6c4678034872606ed1addbc445ef4559ba9bfa7f6dabbf018112d12e3a4bd1ffefdc36e728ff3d0f", + "16841ef556c13801a73d5d79ac9bd2f40044d2fcbf85168babc333b5d561b08c7994fe1fe8f275a50f68806bdd01610f579b9c783d76183bcd878888a1ff0b931cd6fcfae17397ed2df91177aa8eb864b611300946c675a0cf3ffb268655137904aacf26236b5792762429e19777fc65c256" + }, + { /* i=5674 cDividendBits=626 cDivisorBits=67 */ + "020281e3533cd58220a677c318760cc4eec00af085de1179af9c1ea0a226f7e68ef2f02984f3e184382c10cc325fedd257bb679dc6ae993110ec91bd81ac30be00a8e9283c95a0f773b3aa783ae0c6", + "055c146cd9b39379bb", + "5ffeec5502404c183d83041e6c3978edde370b5d8ef6ec1dc4084604c179f11f89eed25c0eb917e4ef0d4ad521a5fe62689ee1c75aac0ebb4add74db8e453125b380fff4350b", + "02e3c946d0ed74eebd" + }, + { /* i=5675 cDividendBits=1828 cDivisorBits=530 */ + "0fc7a94b2c7d4f1786abca6a9cb8184852072574ef016ae43538c94cd928f96020c0809a12fd770f7895f86820e8d35c32167659124eba16973f56f9db22739eba3494abd8bdd36989ed8a4b06cea2ebf84e147b5fc03b66562fed6a5a595d8a20ba67ff06f874997287c083aa01a9eae73d129a619004f2c41b55a5af6bdbf32dce8f78a8e09297a9b0111b1d37479def41ddfef657de791b3d2517e36ccb06b57efaf8852dc3a3069022b87f6a291047b68e24ba26e07214bb77b0e1cdf34020279116bed12462bffa8d2467d734e340f22829122c1a09a018ca4264817af8dd9245b218", + "d39ab19dac213f0dae590459c67ae5be39f0dfa2f1018734b45a0533b8abe7cad1af75330119c4162c30f3f178d74aead62f3901203b0fbdf263085922ee7119e18f", + "131734477d4badd4abe908806a15d10c3ef687fa26b0c2b6fddd896968106b5f5316fd46ef81e280e77f275f0d916ce1b78f44d661d3355ff4c31f680a4759bc523110febce081e930e3a189361ef07658e06a96d5e5e6b2d17b47b3c7042e84442c134c89f9b49896394d2dd2355033c090368b4afea5dfc50cc9e1534b22647be29b6601f772d6d71034eedb847c4ccf178ce448a7e21862e5c0a9354a012f577dde", + "49e30443400f8006941e9ccbc96be4d12c80f9dc4e608c3cb245e38330e964ed584c84a47f719ba5f275a6598e16212d8f139d6a410df921db98126bd919f2184516" + }, + { /* i=5676 cDividendBits=150 cDivisorBits=52 */ + "283fe7cdad6e0021500f8e0ccf583a76253421", + "0af8e1fd419fe5", + "03ab179826ce4ff7093cbb0a66", + "0867d485798ce3" + }, + { /* i=5677 cDividendBits=1326 cDivisorBits=971 */ + "0aacd79c2b6fe702439ce828f2fef9912e5bf042fe1c10651a1d96d180fc695b0d1962a1546c337799245f75732e35a428f50c113210eba9bf0f9020f270f300207d055284d6a1f9917bea30a0e22c0627fe75b69d83b6450f5a2e9c595e0d88c34c91be0716bc2e38ffa1da9959aa2f5da7b9f0b8387bf7f9412b033b2b3195d36a43a32bf8f9a0ac0a62c8cb873e25db83a16216db4e3ace57e6363a003c244b70fd25e6e6", + "04804cf308061cae6baae7033bdb9af15c49b47f056d0e254508295f3f00cfd8411c206fdf3752c5a256455267806424209662438f04d32fa3891ce62746c4da987deb96866d594779814ac6e876dfc25e31cf132c7be1973b628208d226854a0c94fc2c0e0e454c325476eac9c94030ed554eff9e188977090e", + "025f23cd9732800c0aeeff3d423bd45a05b621da239e3cb00aa3cc1eefb525756684cb10d5412122e795fb8c46", + "0345a529c7a2f1b7d7687eba33674b511d478fa5448383d9c6a03cde2e0bf77c6944bdb87b5262082e2b5719009ea37036ba580fd519191620999abc5d1861320abea38c4c7ece6efec82b339c301be90f8f16aca9f34b32f23b9e816c3821d8335e4a5e419156fbcdfaa1c81ee52efe2d23fb4d8df146ebc512" + }, + { /* i=5678 cDividendBits=430 cDivisorBits=83 */ + "0e8dd42e55c886ab6ab69f1786ae0a5ab94611b7312207224ddf56f8832b29e0569b674042f900ca77bda8952f0eea839ee5a6b6a1c8", + "0652fa60824a8c31eefc7f", + "024d2505137a06b0ab636522f36ed82d517e40feaa1ed234b578b03759d568dda7f32d20c141b88271c2fb54", + "0476a4244cdee28b7d431c" + }, + { /* i=5679 cDividendBits=1935 cDivisorBits=636 */ + "6ffb6630fc870f135b98ccafae32175e926824144fd363780451bc557fa316a99b139695e6dffd11b8b0a794371f8113e87ccdb4292201e902c0b48cd57178a5721f8fdfd3812fd130f2ac8110d094efdbaefc8569088d0ea5dc1de8607f7352ce207f3c707943694d71d1e3342da97cfaa3c332a8511e325b9f54689858c6fab85d8b904ad8b57ddde45f253bea8f69c23c0b29c71d6b6fbd93049858f0fe34f8a95419c6ef50df1527f36dacc89507374479a45579882f640be7f04b064fea4f6ad1a0e8555952f8a1ff485e3267af8990056f384f3a2aaa1468a16c029a893021e67b7122db93f89064c60f347e346c2f", + "02e276701552638664c932c1a01823b5355a22024216490326459b10eac542d847015076f9f2078be456f3aca9ba0856d562d84d5051ae9a0652c8535b05eecd2218cf6f026b735dc352252acbc772ed", + "26d2044c46aef7135cb7c2c48d2531a2192884c49a4fdfaf47a947215745694d9070545172cf65193d58b4faf5f84d1a26582d8622d5932e98db7f7b1b351e226f2d7a7392b87d51e826a00e587fe86d086050e848f548a5b3b9488ab74481f9c55f48e1afc4d094948d8b73ecf4c69758877cb66d841e9f6c54ec9bc85cf1b4c01bdb33f7fc9cc995030bf14170821bf79c66ec17ed94e543615f056d63c5cb331da6", + "02aa7f810ff197643b6c78ff71f359cc1edc0f7c071073066c60624426888776db6c09b21fbec2faac8f61217c1bc1dd5fd81d95ef1a5da14a37fe334b7d843760c6427cc5e53af29658441feea40d81" + }, + { /* i=5680 cDividendBits=2660 cDivisorBits=225 */ + "01188b196dc85b8d622abdaf169a3bc5cfd6ac4249548a5c4e771d2254d4747d6d04dc15d3520bece69e7a1cdb0dae9708f38ddc5d5ebeece63dbc5b84e232f4f87671246a6b1d7180a1db945433d26ee387b6240205066c21985c41534a343f2499b7400a0dbda6b28b5718447e30b07ed99de540acd79314258c5e618d80060e6857a5ecd8102c98a2226bf5b9633e5b31ea1e1acae8ab5e13a09661caf91beed210457a228b55f877c4e75767cf403bb1610d623c1007fb739757883f62f736b7d386c22790672a5562c35b792d851efecf89da1d264724a30c1afb84d4fa751671c4ac5b512ca561644e6dd709652053bfdc7bef556df79cdb4e59a8b2f59a510e8f7db5e87ee71ae6e1c8fba24bbc520ca89f99ff8fe653a60b5c807f7d7a9200fa02f7c404b38a0098479b37355ad3e2ec34abf43e739741b512a03795a58898b62f0b6c4db13b4151ba", + "b0948b5b5fc0068f9649530f34a13523f40a4b815bb8333a4217839c", + "0196b8dec21c24636205a962986822b0b18ab228e7dc703d5d3c7634cbf89c087ef284333b566c9dadf66639c12b1fecc19031853bd2b2ca443d414cb89b90cbdc72bdeb6867e66c877cd135ce0652be27db9db6fc32b8e0716564422384973bfb8e4a9416cf93775854ce3e566be45333f51f084c507f93a669cfcbacf2c445f23c29b153ef46fa42527b0791bc939d6388a0e663f0b17b2a45f3cbfcce8831e87fb7bb79f0b63fb21c79f22c2792289bfbf18eed01cc5a06ba0743379782e8656f0f0003ae78033f075993745bd85f8a3058f7d2e1487dd39a215a19968b816c65794ef63cf1095ff39f0fa95c49c5cc9baae52d18350f5c24d9e390bba6c3b2641c2c8f048efa2f0ade3a88bd7ea9c7686dfe3f98072e8532e73106b6eb68dc1d96d12884843a4c9d427b85cb320096", + "02eb6dfc7d3be90ae41c6342a40f17e2e17802addd09678e19023452" + }, + { /* i=5681 cDividendBits=459 cDivisorBits=252 */ + "4f9194a3173e1701f506334a9d19651ef5f88255244878f5a472a67b1e059989c09ba02798411d87c3262173f368d280309a74e0bff62d7582", + "0f0318e39ddf5ee3a208f22f48cca49204ef9cef3b3cd0d29911c2d87f051ff7", + "054ce0ac1ada721420bb84b87a2ef4d439b4fc002820846973d8", + "092abcf544ab6b90491856e3268fe2d185f9b13a806e0ff01b03e490042f881a" + }, + { /* i=5682 cDividendBits=3897 cDivisorBits=2251 */ + "ed5e6a6c2b154190736b42f0c00b626c7688b0993bf75b5182845ccc0562bc86faf18cf0b8de5d0a32d10f255adb969231b8d6dc99aa768e3562d267f6cd449e973c444983f622187de61c00ddf45c2e6e0e1b3d41a917c32268ce175cfe9eceb9d435caa9fa59ea6696a0c043f4d8b0bdd2b18b4487d91bb133d7bfd62ae4c41af031a36c909f3b69cc29931cb0a60a485021991f9a159fcd97cabb9d8f876c9af7db942f5a489b36c8da3ae8ba0e8bb817ca1334caf374d1439817170c7f66d139881c1c7d0d64608e834c617befae44b5df4954bf07f721cbdcf9e46ec5fdde74b5b0690d841ba39c7043fa3cbe5935b5a88e72c5455c2d75d259bb4b315f72748dfd34a371ad5ec9dacc209bb22327ef871b5b2a2f45f78a2bc18fa5e2150c6d10984e95e7a86e93bc15f2e5c92dff9142dac9f2911a2e7391872d67eb6f97724c7a1ba3e45e2c8f000e62b50644fafc2ed8f4991492660b2a346205207174171645e9d576870b68fd434e5384470444ba5577ac4c907bb1e7ebe2a9b8576284e659f3c4a284ef1935f4b49b25a35e7d2e52a058dd0c4fabba6eba046a7b5ea8434b5dd4d5417f3bf8c3cb02fd5ba77b188ac7f9c2bd6819178b45752faee6afac4f56fee255514405b1fde578c2f0d62fde72d7c8662a69c525421cbc165cca3df80583e1", + "027751fa238ca3f46a8329230a58dede3a2ed224020d0faaca120c9555dda747d3ee21b21920823b39e823cdaf6c603c6074549561329b4d4867154a7ebd917da65c56ef8230c9d2b59ccb2080e813e1878cda495fd01f5d2296f0bcad47df0ff30d985769b65a836e03c374a9c787ceb4a51574bc98a8913a35f4e93f723b6339b47336ec268c97f7b3bcadb84e4c332fac000e9f0a9d0bfd5722ce4dbc342edd91dd22667d697877564aadedd2118b0d1d30a65410ea2836a5e2d92b569caac566c4a1e6051d2353bd8f153f1c6ac8c65e5027fca73b671a0251698f614a6a62d293a5e723057e997c5b54e83489ef66abaec996a86db836d7680aea7575cf232ea8d91824c8367ec267d495f9c22f9a28d8a3c96f3c4c3f7b", + "6040bf726858277aad6f6a7e3acea2150ed4b5632c66334cc4771ebacd0217ba96151fcec986ae4e41ce182d2efcf913385a068b3d165f54096a1e6014a422fab7fde82a2ae3781e89671845d131e067eb087159208f281d4b6b68517cbc368c2d41387f7a109dfa876ed1e313007f4cf41756524f6f57e6fc1beb35a8877b0456e1b102f40898ca473172e3b1043c62585a904e0490cdb068847d1bc5947ae5467a130f14e9db5be03c8b0fea13d6b79bcf8ceec12e24dccc23e990771b2a9a5e4fb248298aa2608c6e7a799c2a", + "016c0272c7d2cf83b1b58749ff7a844210b3f06fa2117752ea4276518559f344ab927acbe6a6bdc397b1e5ec499a0bc5863252ab2d5db82abb2ed23542a87063e882c3b8bfa02742ac6cd1e01ba1a8da680fc17a8b15c04be338f38a10802d914590a354b54b121d7d16e6fc11dd74c44eea645f078c21c8882dbb6c008f378c7600cba901d0267723be1df29dc8cb35fec0ac7983c6fb4be2b14b70fe1847291f04d0531b84691893526d523432edcfb6ef7857f3308fb88eb046f744444e58d7eb7e2390f242ea26db83805ed2808ca2801f18b80f7e13304ed4daffebf0d72291143b7a5aede768ca56d9699073dffb47a2bd967c6ba87d5a4f9fa0bfe9053cc55a1a53c126771b2ecb8a8c6b44b04fc444d3941afdb125b3" + }, + { /* i=5683 cDividendBits=3707 cDivisorBits=449 */ + "03a07a644b07cf8e6400124a7dfc751fb2e0ef7bc564722afc7b186dfe7ed4755021eb97f6ae97ece51471e33e9db5a039cd06157300ffc7d9ed23fea0e4ffb7c9e9f1fed8904fad46dddbcf6af6cdead653ddb274601f48110d8894c1148bd7c25ea15d823226cd58472505b826227ebbd72bb64a4d8c974fe687b57a4acff028fd779a6d19bb5963bb01e0a101c3cb75846da1e81b7229b583e4c7e55ab43a0aa7be80dcb18cff2635ed6be603826d1d41c9a105c7e09a70191e1b3cb3e203e14fb4aaf4c9cbcae7b1d6a83b6be80ba627e85ec1d2566843ffc2b9e51649fb5f450609e318139315aa1bad2b9880e2460de0769bc1a8400e19289b7a0e745aa1f496e09bf32128bafca9f260b51c093748c35db568610056552ff11529f2b76629601a7554662882181735f603ac818c92a1c17064acd1b1f572122928211d90c67e84f44be4fd85414f6f5f2bb840c1a28bdb838dee2eff188b832579bf5989e2b00984e85da330092468976cf86d2820006b9124b7dc43f672311931b518c3e97955ff5955d431d7b836d57527dd2c6533eb8a221fc907f58dfcb92b5d71186fae2597be79dd7e9b2d0c52b176861821c48bb01e28e6f9b01f5b9e3560bfda7498c65ad51995653644bb23844db3", + "d1158260a841bed73126301677eb9784732380b0f81f3a429ebfba825d7be3d75055d34048d9362fe7e2d231524f0a889a21f8802ba11ad0", + "0470d14d5c13f9adc34fe95c825abbcb79a2d5196fddf415eecd4af179d324c48d303b19e5c0ab639eb565f76cdf6d3e82000f318dd9040c1e70c07930c24748f4b6628801fc3533180f283d529ae52e1cec00bde64f130d8aeb2f6b0b92f83e38d1d6a4f13bc393d4360a0b2b2871e05ee022c092683f788e049230b9f08ff16c269bc8d5b40119f59328ad3badba1535427669311c66dd2e39f459eb17af90440c056d633088ca92a2fa87e9a6cfa4cc9d235a7618dc79924a342e25afd047689dd1e7e369ed61e5940e59208b318d5f278fa6c895dc95b94cd51c5981bed471be81e08314c7ce304e49b9145bc9919e9bd612610f9fb37e603459aaf1fb1ba333373b9c376e223cce6e581c15d28b7391a8fc4ef56e60a9feb8a672c7f62ca097787d7e8f1cf6983dbfbbf2a4e20fc11b234d2258224d4f6b1f5d51d225c98f6923b3178d86437ef76c2490fc6f6cfb9cdb14e1b40eab0698c5826adb3ed2d23c125ccd28e3f12cd83a2726db164f3b67f948b29f50bd46eb5184f969c8eb042ab571fba2a3a50ce2a6d05adf60dea8d7ea8b0fd30f7a", + "b46ee7c86f02d20fbe5cc70045d12d8b01d2987358f3fdb4b1df124bbd5dffc19bc9cda41a94c091399be0be871c5825a7983fcc9ebb5693" + }, + { /* i=5684 cDividendBits=3956 cDivisorBits=3546 */ + "047ae6e1d8bbd6c3a6fee563d781a6be2faa3cd5bc013f3d1278e196b8ad3bff22a0b6464e91b14f182c09e5ef6d327a6a43d6dfdcb0f2b48be84510f44bfd2a601616db94a7416c29f2134fb658255dbc37d1a605d8832335619ed52121ff942fc3c7d1074379349cff7e1208cb329e4434b74ad5e39d2bde6572dcc048df54a024b3b182e71bf0ca9d13bb45d63ef643b717b48afcab8613eb5e20cec79b08cdb049c2b735d201e1436a38d9e50b82e8d69ead74c1b7adf00f8eb49462987fec9bed27c6f5f253357b1b9574011a8a413948210c7d7cbc88296cf399288678592f15fe5341594bb218eeeb0b58c9274f2a9b0c888f22469db824780aae81db6aa13e965ae1412888d1ce15ea6630d9fe2d15f9eb609172a381e4205651f86d6015bb592b3ba048b565361b4a468919719f133ae1ba0340b055b7a5c4fd51844521cae98c3daa1e70bea0e096b3782cf7e2d467cfc6d9a12931c557d0642fa09cdfa76b3131bffd67b4848c4941210b2b41d7aada4952753f32fa6b0d5c45fe3421e69911436ee333a38759ab526a7aeb8e4227b0edf32f43ef0c50b3dabf2b39e4a46e54fbdd5256581666b0d2ca36646bc0baf7e537deb7e6b2713d41857b5dc2c06f13dde0113ca94586ff5ae850a9810c77f6102811bbb4f66be588f9415cb01d5613506707ea9a047d7e7bcf", + "028388000790fdf8a826b081563d5faed53ca8553a2fd198698a13d0d836cc7322814fc3c22a2c3cdbc62d574406713e4d1323b1be5d8a60576a680388aa164a3543b26bed1302981ecac1a9e34264c1f88ee36671567b69c11bf4192d0bc800757786b34994a3ebb25714dbe2996a3fbb9d9e338a03be7f82471af43c968098632e4e06a0489c18a51cb6767436526cb47b992a55b7a099698490a980392d4caa444f75ed14122ab9868dde3b9eba000a4ae062bc9dd57dd6a3f3c5a76d7dd8485f5b69d39c15a122b5a902aadb01ff85a23f4de8ce91922f9c34d69d1e16e98f918f5f9070679031082c319db80bf9775f4ab086f3b5162a8875237a0b9da9a5b4df340633de8fe647cd6a0c37252e9bec9d94a47369b2550f9a637e04448d56dc343aa26434990b1ac2c6e0b92bc3819bb335200496a58c344e9335e4d5891df608f14bebf36311b7d1505c3bcf8cc4298ba70dc20595c19e2490d16eef1ee990bfa5411739f80d2871ecec9728b10b7b0814fbf42f9be9eb754a0afc31b4de10ca018e421bb5f2079755e7e2f9df100178698c9969c24922d529ab57d46132624a6e3450b90dcbfc6c4190780bbe682fb5e93d1333ad554a8386", + "01c83e4f1b298683de47d82283b16e4208ed10dcfa50dd9117ded3746cd813b6c45d6e273564df12383145fb3ec8b2e19a16885a", + "bc084387ee123ed76ced018b322e733cd3fd3431fbe2b22aeac01d53f3e092d81b60e34a2c80ca51db3f33a6b51b2d62064001cf04988b24c52ecd32cb47c253ff92670f428c7b49f772c80aeebb186040bd434545be82c70dc96c474cf5ba1fe6ea78afb45891415b303f6ccb04d764a4b7f0766bcb04da6eabc0642899f2bd0a14df8745d498b92d687edf6eaa9ad125eb120cc2b4ed890925fbd6d7efc0230de4c2c4b3dd66565fb30fc6757cd93ae7e35171e39e17f8110b6a275921fada1b716b67ea50b01a163b84f677747099db31e0c1afeaf5feba96f4ee95f604542b6a0420208abf6971cbac99bd73b4b720bab49731d909f92810cec1a2df6d219fa8976089fb84c500180b0d0d72b96d215a840810dfe087f14252859a2dd1ce2bd3f4d2f5d422d13637a0be6641fb4887845e7232eda3f32f112823e476b68084c3e90555338541799e15bd12631655240f4af84283282d93e18e8ace231cceec359f967d6e37871bfd3298368b8a52fa03b8f80ba901b22cc60e041a87faa8745a290ed4e4038ec78805d118db894bdc18383cc99fedc39a531d09627b9439aab3d07ef06ba3cd59414fe6b657ecd7d6f61faae16d7901e90eb3" + }, + { /* i=5685 cDividendBits=3639 cDivisorBits=859 */ + "53ff98298f6f7f68e97558feb857d2c75e3a55dca808d17bf94a8e95da7aeb203210366b1ac36cfdb4737524fd233e33fb7acaa41d737b691e38ad87da1a9c49c4e52bb12d3b7e64ca42ff2b1f68ccb8fec67f0279671c21f114699af8c9ad5a84e839597672672dfa01ad3956fe986671cb2a372ae1e6d1503a8e8ae845d84d7f0025449c54fd3ae4142a2581759efbd9592a40f9f1cc288d2e851d24745702f49a80b4c6ac59a9d7b13284e2685364872578e550d68bb3d326f964414d7d52c26a24260ab9e2664ffb89e536f407d5b229009c31f6de76c44ba35d3e033db78e46a2e3c2132d2c7231db8781b474724aacff115179f7250b33f470a4b897455843b655b1280747f407bbaf8d023ef90c768f11e51446c01e6d14816280a5051335a8f4f2e86d22b50e33db30084ad4fc2cad942cd0267fcb09b31de3f8414c5f20fcbc1ef97386acfce5c299075b572cef9aab8a122a93037bcd8c97a6cca4cfea3bade6ac260ea609d16b4f6e4750d5359f242ba377175ead43e81f0efc48ee1e2ccecd4ba1ebd637d14a1abf70e14ceeb0b610ed44aff16d247e6373846712e3572258c6e0ec297b0cb5324ae6caf855ac73ef269360a0dc0ac81596e34b1d712d05b71467", + "04154f68df9e36943302ac7a58669038dc541e36a54e9a25bcb0cf60cb25068d317a6ab4c1fff5ad66073c593439bb681469754a56d0e7d08eda453631a5b8c07d604dd564c07b443e611feb59ce3458ebe2c31566f930366c8b52a4bc508c47d5f04ce1158be1eaacb2237b", + "14924d8e62af25dfb59b7f5c1e10e46c5f41336bd4902b5e4bd5f21d71a8127c8bd2d0e0faf9d8116e101756c2b6a6eb3d5e28cde46e176bbdd73189b8b0cca249cd4e57ac42cb6f9c72b036a21fe5a5461fec07f6c8e00a0c4c15b98ce011908aedbde8ca18d3117bbe1432c5a14fa130e49dfc250388a0627f197cb3d2c0eb1fccb04319d730de7c93dcd7ff053b65f4cb78c2a6966d8778f8f76911bf58084e8aacb0edad220a600828b0d883049782e596f101cf215c02621c293a2f52000511ca2769663a758e2651005e79d8e7e94efc339348e03499f7dc28cbb945acfdf8f42a3aa9e84c77320e3be2992d33b4c3064862d2a9ff2ae8daf80669bd41acb0a7aa9b078831af23d35060a130a96b4e101db0a6ebf12cfbdbe15bbbe1b363d8b51a863854570d00f3a2238a9ce71086126c96b41e08e4d3ad1d9ea92a687074623383d21732bd6005b0abaef8f2c07b9d986759a6815cddb498", + "03a2ab7de5c98bd02855a8915b2422b8bef42ea1f290d35e10d4ae70341b96c32619d59cf41b1a48b547a8cca5316a1b864b0747e2658cc95784bb50b189df885e7613f75e6c1ffccef5b8007f01bfc4fd98b03dca7cff2a0b3d6305de28363eed9e95ac6c068ee565d0875f" + }, + { /* i=5686 cDividendBits=2437 cDivisorBits=2318 */ + "027187b20cad770abfe52f51bf811321d101948ca09c13e7095ed813ad94c2a4c01a8b8e05de5fbde5fc0d6e932db8b6adc66194d05e86abad31fc51c86563b75ec2e9e76f44c523d74620df925dff37804e1b9f9cce52975af6805043b91d8de7ae7181221e4632cad08b1e6c4844e05424bcb005c8029f8003e2fd07ddc3e8583b9973272acc37e2d5c424838aebf655c1bd70f0b797a1338a2e95df530d5bb11060e29465f8322215c65eb115c457eab00db1b3244b83d3a806dd2a6b8e6ef8749229710cfdd81625108b4979a525d4a1c44e79124bfdbf608fbfd3704ce15d699cea99ef085bfdd22ceb737ec2e3b17da928b603e556db13fdb8288851b8e2d73cbbcb5a0a63db83fed52dd0436e4d4e82ef01e5329b29e5d377f733c275d0bc1771991d83551be7f658da6921a034", + "35d50ad0413649f93e9747319a271189fe1f028fddc2a927866e8ad961e4354d36ab02c72db3726afd7c88aedd9fc0b3778b5120e05a262c493bf92f9f41d691058407f1bb2e0bd87276fc8dce1d1cb81987e73df777304d01094c86d49019c6e98825c44a4c68736346eca48e58bca096cf8c9aafbb73bf1870624e76a55e2dc028cf8df7ef697de03ce42e1ef18aa4fe3ef68fecb05aaeae46cbf451e4928e0aaac84ea2a66b0950291f1ed673c70afdd31a5a08a232619b649bbfc21dd13bc187f9ac8534c8029f6077896f1d946de76d6536049bc07410edee134910a80ad67230f8a2417884b37332089a4c54488c45023998ac46a02c72e9462c73375ec39662cfdeb8c35ff0f2d9b28080baca325deac35d9100d9670916bc8662537a282c", + "0b9eb83f43418b65b95d66edd769ce", + "286405bff4282d2251177ecfc096f59ecb82612bc7dc669b1d04fb18bc41212c53db39e12b340d7b6589e9c6ad5826035c85fed8add981130d0b3d24bb576b45325750cb345f1567908e73ccde24a6df8d5c2b1b240fa488b3b9d93227c55fe3c7e9503a84c199de83731b4959dca44ebfebbf05ef38e1d757cb005572f03799a28041fcd54cc0acac26696a8f00988678893287c9628aacaf10ea33dce20efb8d8e4d4602a96b06d4252fe587aa7eca0ca5694927c684e9ee6982961ea5b578c8b2ba5cf85118bcfb48c0922ba071d5cfd8bb3a24d3e4f7d4581afd926cbe33c5a7f82e320cfce86ecacb09944e570fa328c6b40f30e2a3bc7eadd79647be20cd07c00ab29684d1ce979ddb4ba70b6193d9cf1aa9642da94c355e37b12da96740cc" + }, + { /* i=5687 cDividendBits=991 cDivisorBits=134 */ + "45c29e1b2829ee2252955b43af9666b820efe96f82b7fa9c7465aeb5272e299d83ed3fda3bd83e1550660e1295547462c8354e602ab991de1aaa7a8e1be1570065df335c51228b958576ea65654b24cc6f6ca0b06526e4142f1d750bd0e99e9b71882616eb7b01c99087cfe50172e05f5fcb754ca7af401458c006e4", + "37a7ea8bc74e7d2776d8bb0ebc5166657a", + "0140e01b9578c34d39922d1de05b12959208da1f1765bb2af7bc5599637d408440f5af5f10fb026c9ef3d09dbe35bc310474220d4fcfecf7fb107367197dd47235b5b00053267ab1f3da1f9eb046a4766dd8d1561464ea0cafcb9ec06b88006086128f4bbed25a6a0e9e7341", + "2cbdaaf09cf84c19dcb5bd2a6f60de74ea" + }, + { /* i=5688 cDividendBits=3923 cDivisorBits=708 */ + "0476359cab48e8bc220f0912a4e112061cec7d3811e2c7c13cc1e5ba65b7b13df21891bc632261096aac8cb48d04a16d78c4266884c03f79d3217ba127be03dc60290e317e694df2ad043944fa3e7bfeda5dc498b17797b1974ca5d9f7a5cfdad591b31be36979c9adc46c2620c3c8ef083daa1c5eb2b6d71167d6e5372a77c6d2e0c48829424b7b2430a02bab12547c1c6fa9dcb94ec118c90a6e5d2051285d3b796d210849ac99d1c65e209a6a341ab41d2853bf641adb88db14b89228060f7cc70cd4851a0a57403c07176afe520e4b22eef84c2f027662f9c39c5d621388f17bf917ac30a2ebcd8ae13b6b821ac41624e62df94833e682dade8e469e7c837ba08bf5c7f302bdf7c407d4966884c02f303a65055d9d6333bb0d2a737bd1e03fc9763b9eca5aea7687b25c75e967da744cb9ec36c8928535aa6dbbefc4f22a7875fcbcf71bcfe19e262f81b9230a405dc6b636dba98d9382249f0ac0f2e27361ef63122be05383201ae18438df8247d62182e0336800b06ded4377d7402c4fa6c1669167f847627d2037ea8bfc6b853b6607f6545b4c7a8dd97660af6edfa96d4ac98cc04d017eaf10b8c7e1ee28a2742dc9f8e2ca58b165053afabfafc64a386b39c45f26d1aae6c8d6ccef730d1ea61ddb79b58964587d6ec42a8e1bb741dcc24b3c4102e7d7000c05", + "081314c2557cc803575e608b545c51c9d033cf146d001d9c12240787555113c88cf13e6768fd4ca42ede63e9a30f885eea1917652731a4a336c4aa58e7c606d611c07d6ddc4090e17debdbe5d679af7668059bc641acda410d", + "8d754dead45b6628ffbacd347a2bc7ba41d4224f4a24989015ae4eb2d4c53858d9655429a57bcb97743ddbda510694330eee326b87b2c182ab53afbb6008f1f59780970a4975f447f7bb96a97b6a4b352245c1bde989191f5a4d9e234da3d7e7f404bd9f2e44eacb5ac83044b3e4593a8e0be15d517af4c0623309b175a423101a1e5eab9159fab0438dcd4c6e33b0c37af39f83fbd39f602b7190e2ed1682773066fd9ec0eaa465d9d5adaccd78a49bdf5553585983d293f27a5ca459d7cad7de890572bae8a176ab7349b2be08531b6f8fef31e30b5ff9f34db082360c415a0e3e7e79815cbc2703faf4b1a6caf4e5085cedcc72f78cb0c745f43f43ac35582598259ef15abf1399141870866b29fb2eb847f58a94c8532fe0a1b280dc4f2c8a4aa52d693987674e4d39368d8275442589d2b01a964ad94165cda09a9f3baf663403a23073f636a82b7c02a8dd8eb864748489011080ec2443a4188f982b729003ef9ae2fcb0979257cb905523c8dc45e387c1b338a6cdc3e726f62f72e446d906ba4ea4d2672f31bccad87d04c5e1e6d7", + "077cb1822d0ff2831283b1677fa736658353d17336384409a35d26e152e142d887a5be1237d8475a463cdc7911f862277aaef5f58806466e1e1bdd5556ff26fcc9ad11def92c54e83844ddb8792a3791f65e6d435d67d4bc1a" + }, + { /* i=5689 cDividendBits=2883 cDivisorBits=2329 */ + "029dd081f557e36a10a67ff5d0da35c81bb0bcf6c9b5e86a49c78b8b5927ad281a1b47be530126862fd769ce4550107c4f3804fa7752c9e2e000a97a344dff4c5871fb1c41e0b1ac30199160db1e17f723eb4af28dddfe4ae808c82cdb64231246516e7e972ddbbd998b842c7732a2e134221411049f5c37076ed97605d849b96fca7bfc9287ddd500ddb5d53c87223bc73f9fdda1fa8f0b4ff4413f1d8654fe10ade97d6a0b0c83adda15858d2aa663792d4d66a6571fbd6701ded5928e1315058fbb3288a7411478c6a6909be50206446ad1d81ee38a3c4ea0f2776ef4efa2912552bae5dc60124d8288e0e6ddfbb720008bce202458abfff9b439478ce89a1d469e4a09021401e014a568724fbbe214ccd27c1332a19c1656242c971236c030e7286a7fa727a165d91d2a84ee3736411ad1138bf1efefb2e45f048bc01868092392fe785131f5fb98e49b375f8664ee4bede8dd0031e9ffa872b6ad772beb3eb169ed72e2ae521f", + "cef9e8da7a30c0d98bdbaade6ba63f6d80d1a1acbf33d010552def850cba4475886c99222e2478e59f452c8b125f4da565458b3ad6b21b6f2b20e4b7748eedeb4a2f66453c7366107d4796308e1bac83a66cadac30b90c6ed83d3b9c78dfe865d2d104a1e87162d7f95bbad59a3702e62c5d24f90828f936b50dd6781539420ecd47b512dc47c05e8158cfbb4c4efa0096e9e5bb3024dfa3406a5145bc44bebfde01ecd1f666781cc8ed5b336fa4cca235b00f21a3b5bd2b355567e484accfbc85f6d24badef9347b03618f6c86ece0d09d1f9a9baff757fe6bc60f06fa9a5a4b1ef87e192ddfdc0d722288c1ddb9522c65bc0e878c20fbdd34a8ae70846671a11e728561f00f28024d1addb9a01faa4ca5c3f708d3cec7ddafb48ef19b47c28e55b67", + "033c76fe55dc1d22328b936f1953fbfb7ec6e55532583f5fb2368fb68f19cbb7456cd0db920742a136ea1024c9b1aff3a489f6a0d8e0542777d3311c97686be49dfd7322378e", + "9b191c5ed4480fbaed22ec2fec9ae2c1b073acf1bbc6ae6e785ebbb9c55d31dac09f65c7adb0b05e3a0e7591129621f502cde029f0a166ac0d550b25142b0c1b6c8373487802de4197acfcc62da9dd3f008dc167383d85bec9c01c10065beee8a5cf72006a4b4da46aec34acc8fafe180788924defa7d7f86e7ad969c7ea7737866e03504641a82e859bfba53478c6c6c3265e29aa7ebc8d648fe69d123d6488f8f90bb99d23915e203eab9e4ba5e76af5db18e1bd3ab935a866f728f8a280cb691efd7511806cd21ef730f672fe11aa4e074f62a3bed703b7c6334b666836562fc279f91dd4a3ccf0c97b6a1bbfd7c458c1984f683f716d41dc26ea239a82d78e984e065fe92b4ca39acd33c87bf00271d61dbf201e692880dfd3440f2d7a84247dfd" + }, + { /* i=5690 cDividendBits=2392 cDivisorBits=42 */ + "44c2fef9aebf7ed34a511c8fd5bcc2a90031426657e0d56fe04969b1bcf2f894685c8e16db4dec1d8078295270f6b45610902c052f67b2ed948dd73c107dd7cdec4bf21576a792f9015f7e96c48ac83d74eafea120e45b89b4de21c0ed9247a5f58ee9461432004eddacf4573a41afa568251e1bee6f05c7fb93ff3e7d1c42418be076e1117da1f55cb7ce54478ecd3fe4b89620b75dc34778186d135d76de074436520180f1d0e7cbe38a92fc674db1c771330e5aed3b33c93b173b8f4d1c7e4d9be5f5a3aa24376a7a8e9c76142c56494fa1d24b17491d820183bd3ffc68e25ef2d972ea7f599dd2f07d66127ef87d81d023f0a153ed7ffcf9c610ac50b0c9a134ca4eea8c379d096f3e4e423e5be695788589f8ba815e62a50dc4d3caafb68782e83f12eee5b48f3ee0", + "035d189467e3", + "14714ac778bf4653269ac3ea831e470b56b43954b0bb71cfb97fd494fc2f1269d16414bd17faba35bfab394d1933b39cf07f7d5c1d10203a8886abb9053d82e9ad23348122f0088ce5240f014dea81bf8b00ea9ca4681e3ac31c1004ef37349f83601caefc25e3cbf716c83110403cf1e15e73d70f9915c11ae687e856914fdc6178663597c9bf82488e0b8bda06cfd9911facdf429f03317ed3e333a19dc0d66d5f091924e6b1bb34581bfd22ad23e6fefebe94e62fdeeb0ed9d7db1fdbda8183d8b15fb18566aac8687e20c0c55b17cce1f9692cbb7c0bf635a06d93cb1b5f1290cf1fd1091a98c0bc4f2bf11d79719c7b544c08f247bcdaf2bac321aba982cd29c7c24e3b3514d4c4f3082fe3ab48a90d578ba07c308188d39c02113a1e5e5908ff6adf7f", + "471b72f843" + }, + { /* i=5691 cDividendBits=2346 cDivisorBits=1408 */ + "01c482ca339bf6eb651ee14700ca542e7587b36b1f75e6d8e1cbdd567521474b39200a0c0e270ab9e5df14f24a15faec4e7e07a73df96311209e908c1090b1efe6bc2573e89c7bdb35d91725ef20146476b15553e7ff4110cf36f7946b64111ffc8ecc243e30836d0d063aebe38a7da79d9fa547c9d85fbf3cb93723644352ad7d7ff7cba26af0803dc88916a58c3765722a8f2adbc33dcfa7ed06d4c70bb67eab600f357850ba43f143fc454cddaeb5cf79291eb5e714ead864d3f573412c345a455b99ad1f02a6c4edd9df5dcf6b1c0fb6848a35b478fc06f4b67b5f2f59c22339e6adbcae1f586b904eafbf55d2d3c11b82245d1d09f12c5031cf70bd409dc64a0d1ce35364cd071962b56d726ffb80a75d6d6b851d58f9527b3fe8157d011c9aa06eda4c", + "79c773c6991fa050ae9d62fae366ba5bcc6cceea032e216c57140474e1693566d525525c07c54d2b0bd473665b14b619541cd8adac4af775302fc000d8b0b634a5beca16c7b52ab7ccaa3cdbc0b001191b56776bd81d0e1c51e2ebbcde13d659f1890c1cbbec7486e6d6aa90aee1b07275e0052a205d4c4003e75c5de60f551f82eabb43270979ed5d422ec0e6e0945aa441084697a19d0945ea098fac322f189b8c2856674c6cef59d0c31696572d31", + "03b740dd40949200e2cfd8cc1fa2a833edc48be8df87e31be69e4ab57cd9d156175b4fe51fec84be484f105798b3707d49ce76526c3ff46d6a8745ef5f376b95c14783732347b3515d345bfe96b8788e1cdb169985221bca02c8e8c7d6697289ee9d284c1056e67bbd5bdbb692fd54c59f909ca00eb4", + "3ca9af23cc2fb883cb8e1ddb4a405c22433d4408310c1f76e2572edad8768e3d882abd52cbd87e1d738a2366acc3aec8170a312884700639c1f3ade44a2801e72549f5cffd97fdf2dedfe565f7adb6cb7440392f8445619e03a547e47524cb748e1d59a2c1c3b82bfe386fb55a7ca3b4da69eefdf2166bd94e4bbc5c6421048a82f49d61cf0b66694ac0ec303c44f75e1ef0ba3eebdddc70e9e5add631a5fb2ae631d192ab283419a901c3ea0c0a65d8" + }, + { /* i=5692 cDividendBits=1584 cDivisorBits=78 */ + "74279f892cc60c817279523db7e07f5c92778f677eac5509543c58c336577f2f626f91916eda959c5819ccf9e9287fb70e5e26c6d77cad8a9e82bde51276141149738cbad08e017490389172fc24faf56b8e37acb8665b4c6fcc43525b7bafa2233f3efc1db8d42ca312cd3fc780333c56d217468380f373b2f2349110feaa75543124d1a9b283266f58f894775c9c4ea747276fa0d1cf80e02f3ad93f058aaf204d6edb6a7ba7859d253b903574b4f2dfc078ba19f1114e3ab72ba1e4767a2ce7eeb8c60c06", + "221d15757221c3abe79f", + "0367aa1f9c2e1cef827e5a9dbe568920717bedb20b3a3c6741aa71da0848411db3f7af9292d2cb4c7b346a17a329f2de0490da32d5d86626ccb10098680632648b1d6a2fbe715bd5ed4f67cb7dc362eabccc198ba9228dd1350d279d366bb6952b66a7f787e4a7a784f0c1e1763ec021341025c8e0857c62af2a4b71f5c9716796af0af3279ca21ffb459130afc4c8f31a3eb70ef7834d4c32c3178b8cc07f57f6223ab5ae6fb0279fc185f21725c261175135e2fba3f25757244fa8c6", + "21beba102ac0bbbf8f0c" + }, + { /* i=5693 cDividendBits=2020 cDivisorBits=1353 */ + "0eb32c58df02ef8b5ab8b3cad88822f25555137521707f79fcd96916d8d12e8f1686a3725ec861a9f066df66d1c075e0eda2b878c522cf53b50be6c0151ee3c2b20b4c58f1519ad8fa331efb67cdc495629194d8559e93965de9ac7687830fe10e1af0f3862cd07e80bf2192ee0dd776f7804a5c788ba1f130ee25a3ca4bebfd5be6dd31cec9e1b02fee229805fdc73661db5e452a4e4bc756123592cc2971f1548ee08f7a7975e51a832be14e08da13362c3093f6dcb2d1c6e2e16707a7d439b13cba92e3b4170b75e6b4ddea6950e453c2440512b3fb6ad66221e3b83bd4c0f6969a451e75d304d21a5d2a8fa0067090f94abf9e699aa8f69600c0f8", + "901a78303c6cac7b4f74a649ce7b9034801d501a83f8373ce4df5a758198834dae9dee2d757fa37ba41990cc13768e34a4462230190a33a093e70a359ac17520ddcdd7572a5a3039363cc7f9539571c0809dec0930973e3d1885701acd266f6ad2925325773e446fa3f4a2a2d820ec87bdad7802d962a50c95ef9b526d6118df48442e6a89d8218b0cc5a29689bf7ff9e786e659cc0f782b804e50249be8d45bf33b6465e73d9135ca", + "1a1d4916c16549586e811310af8dbd427385ac0e876f1863b787b1a51f11575534128a9e066cb7dc77510de92dcff7244b28a2e82189f7c083f8276c858944c6f6343d7b56e1fca861782b64df79f3d5915103e8", + "62f89dc62d4fdc48cf6827a98d0621e9de571fdc75816486628baebd622493eb07102400f2ca7dc099f2a5a275c4f5702a76ea4a401fd9a4cbfe713f8d48bdf83c7517750d34a0526a642dacd9917c5cf590383c8823e05a3ec34627e2a7385a859b9618fecd8389918d6e97561673b3d5dcff617bf7e460e92a3c8763ef38cc2282ea32eb42a8b9dbd50f9ad3723fa8a54fd5520abd678e4e423fe69e1d8717c5bf086032a7dca3e8" + }, + { /* i=5694 cDividendBits=2192 cDivisorBits=215 */ + "a21c6a3f8d61a593bf9a89f5293c50067c456de15e64e41ac68aa220492a288eb6a39d24b6f167ebce46892be2b423822dc9cff7a0fe9dd2c538659bffda93c80ff24647e13ca457db4e9e5389ae0243d174056da4e275d634205093fe3433aa8461c4178669ebbea6eaa6636822caf96697d768f390715a3c815020129e389215993edab2792a4d289d430b8bc1c4c7840947746a7d3c918f40a30e7157ea486eb43fac1dd4d176468577b5a9e5c1e88b64b63dd6649f7c7ac599ad2120b8ba356c85f85ed1233ee855b55c7931ccb5cc845ff5faca2b812547c0429b809dd2c2babc24be5784769ff005fa19ddc2a0c26f7b9f2016f60d4cd7ba204f66d343f6753f59e2760a82254bfcb7123800ba0574", + "23e416cdf8bf89454ec2903f7d009ca12645fd26e4f15008f8ed21", + "04844a89f1213e56a21deed130b08885675cba2bd693818281cc1bffe3623b8f7e0404f424dc2e49e8a2412086f4873c98eb14b512a003c20c66aeab2eb03026b29c1e6de60001cad2301e13ac5748f6db2304c0554db7afd3f1a41d0aa334bd0aecf8c78ab986fc7c3ec1099481179a32bc6e69907d4e077932b5961a2d618603a56acef55e9c81e4a2a968e9bd9be2f4d79b14d39e16799093ccb9fdf15dac47426cc65bbb7fb3e519b036ea01567ed04d4dbc7b77e13162ad686e7c2ee3bb19415c72526717fdaf05ab1607076364afa876f3de401ee5be9b6be859d19006100b095a5309e08271f6f9322344b23a0c23f3b4efcfbf82", + "18a2b46aae420eef814a639a6bf883b26854e604b21c042cb6fbb2" + }, + { /* i=5695 cDividendBits=3748 cDivisorBits=189 */ + "017b0593218c3397ca16f59f8d36f0ac2bc5ba98495c58e8a4f3d3955b72c62e424a8c21bffb0726090d04f623693854f85d05083b2e9bb4efd472893af928d03fb7a37616e31f4856313b53aef84130d2eb03c9890fa035959dedea1f4f087155a31ac58dd5a1bb88f2f53a59b72a7a793dc91d15a3aeb3c554fef8a8f60dafc642b462619f85b25fe36ec33ab33be225dfeea57a6de1766827bb9013b45342176a65c35da618f5227ea864ecfd7ec62491adf168187477411b017edd6e98f6d5668b56c7fb0ca8204e9e8ca222d117b6be275402413457c7248d1523e263af633deb7cb723969d15a5a08d65da331c3b569f7303399fa8eb28e27d0da565f8cda7695ab2008762a67ebdcf01b7c1bad65b49675683e90006a9b89ab8a6e08225da2c5051535b173493c1dc62d412829399bd951c1b40381cba5c0f8786d362e1ba251db14520c4e00e3f66d4d95828debbdbafbff08848ea1b0cce66855d7070db9900f33e5b0424ba53fb5cd3383e1c7e720a480b68ccb0859def1ad55671baad473bbe26ec5b5b5e6f3d41007606d5061468716b9cd739f11581a5896fe60a5058dc5e74de43fae34c16abd859036c0ed5ffe5168642e00934e3ecd28ccad7660255f36d5e1fcd972668a3d0314c691c266821", + "f16cbc205cd231e11f677c6d082b7ce217acb5f94bb6a3", + "0191e76d921f454b3485fa7d411f77f5b44840c26e66327e4a85f2613a5235a749184dbbd5ca670ad6828cbce03311b9ed10d53913017574c36243f1d4c4034064e47c2bcded5c66a9496d90fdd91640cc5371e623ba3a76f7d7c3e57da796b58d0cf3d5c8913f5eb5da5b66553fb4488905d555d0c52861c3b3159168f718029cf252f7b5bfa7472d9e61a613c6ffc51d4485196ce8dd7c632481867d5149366494aa2aca105fc824f923596f5fbb65e045a299127279193da701f0adfb029978df50268b2c42e409cc11587ec14db08e5041347befa6c5c3eaad7ca05481e3632b883ecc6195879d28bbd1b763d25c473f59b9c142c726a0d0b141f0996d530785bbf6a995a1c1f251ae744e4d06fa1a6a76bc1fe477f66d0c3b8b709df17c678b7f8fbc26a6e46f4d9c4d58f622a8164b5f6af5ae56d2d5b1dd2885b0084ab826776dcb5d8a46751791b3d2b18d08b36c35223d1924d668ad5c65cc1fc2edaa6844ee74fd0610a43f3e716d935301da09d7c057ede3a6425d69c300b87f3514603e8826877ba78dcdc88b5b588ad623cba6ee05f5b59b189ae20ce16ad8bb124d6365e6920aa7f233d9804ae5c36b7bb840a088d820d1edec9d534b6d", + "e180923f2927c27c604717868e1ce89eabeb129a8ee3ba" + }, + { /* i=5696 cDividendBits=2392 cDivisorBits=2153 */ + "45565207823b41615a494c1d08af579b7b2b85f7b3ddabf048df1b544e135491c2674b5ed55b5912c448eef33c90749a9f973b5970944b02d51210870208d44d652f1bb1c884e7ebfa7cf9d1ca93491bef2357f489b9748241d0a466d6465e9337346322208765f69279047ab1f4bd0e6031d8e04bcf0e72275f22d1243f96621d58dbce5bed647b7f32972fd0de60058342a4a3e533b8a80dcd72212a86103d6289f9d13feeebc47dea53ec4fc46450ccaa3486dfc125439c61a5c16e57596d429755b86c92e4a7a6f02bb138a300d4ece227fd2a2937803f17cb54ac19d1fbec4ce1f6f15bdeae887aa80d83faf09a4b2fe8b68c69a431f1e40124f9426c429bba0be3e764f6ae39b08b3ab6e1ec87d4829cf8c324959d986d0796856e42859680c7ff9649c46e89c91e", + "01fb6a37eb52d5d91157226a19d8add9153486e31313f08f1b2cf37f6ddf36f012cca6161b63e7ee9a674d695c27e76e87ce938d79f32521c1273d980da2b7a32db2be7a72255fa5c4dfcab2c140361f0e63f578296e3deedc8e3ded03026ee038c0845b8d538d09220f3edcac052b244eabad036269a71200d32306c88099567d6afce471b3691d732f3305e6222ea88a6609b93fff51d2a578ac0ca514278a4d3947472a14273600de6b9f8be928fc3c056571883f8ba275f8e0de070a23f24e617b95420f5e07a7aedddc8ce0b781e8ef73fc30768471c864b022f4f117b4edd8e3a92be047ff47c77f1b02fb07ae214db08a112141d45c4ec21abb6f9bf2ea750305cffccddce9135658e6d9", + "22fb5b8c982177ff967dd95cf747905e74525bfee9d321eb4eb5cb97520c", + "abf3b71bb46b9597a670c8d015df21e65e1d81b8dc31476c8c41ff4a5040eacf3293ab7c7b585ea6f1aeab73f643acb02b04f34ad75f30fe431fb49050cff4e3346ea390b3fd15a5fbfc8f382b230bdc00f129bb7d7075e1519f06814259edd0309c655bf60d0017c70e54894c207fea6938ea5e3843529a548eecdf5b617a3c60e8ff7772e2f6a9837983a9325638e4f0496c5a9a0b0f19d9a8855dc80ae1f73ff50cb22e80ff97ab1db2e29dabd1ee8101a2a2f48d79e16cde1e56c8d8e266fe5015f9a8d16bd2b87b364fbdda786d65c9c33d926572e63ecf5d58d188d3350fa95873c371e6f7d50d0a3684c87587aaa2476126a6ac830c2d4e821454aec8d9cc8ffea9c14e6848ab6e74f2" + }, + { /* i=5697 cDividendBits=3128 cDivisorBits=2640 */ + "9d2903afc48d56ded4caa42843cbc7ad85a1393a18a698028c819d4b64f3296d5f433082c659cf3ce63f9fd5381c3da2317245c8aa5b9b2f0fa00dbca0c740dd296f6d493945d96fb514529b603d0e25321a66b8c91bc4049ef2b22503a3af251bb7e942f5531c313ac58bb9293b545fc687a88eddfd4d491700fa7a0691c44b1ad87ca00b8359c711f1f08f9e9be793b4366c1a9485e1e0efa8dfbac89c0596187db37ca6fed4caca565360f03d689a0b929bfd1d284ee89a305d6e6c9780551780a718aee274ef2dc7f3c6aff4b4326e7c0e740f20fb7e039856d0438b7d69b97dad7124467ebd6f1fdecfd37680eec61fdc18c7268e220b8ec71576eee38d208e7425ea1ae4233ce32ca690cfdc82be9f70df5a6dd49a8d3bfd7b8111c7eeeb82d323141fe44de93e998df9de404752d1907006eafb97a5a2457367169461467de1955967c999035c8cf5eb6595c393deff2f701617fff6b3ea08ed1af2647419c3e68e948b9080a95ee68928fc525dd30a7e3267a27eb1a5caf352e16e7d25a8e1d7e90068", + "ca59252872ec70bebedd6e84b3238554a95c648b3060f5c8e9976635fd5a28c9b5cc0ee40ebec59808b945c54f6261d90b85c9037a92fc275e998f270a0b8735bf589f5b3a0892b3ac672e0dcd5d2626d9d33c818e78e9bea7634b7ab86a7acc2f41ff315c160359759c8d97360afdc971a118d542e61a3c05c5125c656b5453a02a51e66c7e5721a5cb22eac287ea135626b6a7e5fa5359218346ea09ba889f093e65f85a84d77dbcbf12043b65333563f4766761bf8f003c6c8dd152479ca795b7f175282abe79fffd06c7a151896c7f981dc810a8f5315f9032681ee2553f4a636a5f925ad7e2aba9f27289b5f7f453d99f84d5c24952e6817b01c33f11278458a2e71c8e3053c6e96260519143d5f2b7a8baf66b6f7ee71c06d30a26b27f61713dfc3af95d9c2561c3f66d49a499b3cf41d4e1c11cc4c7fcba55bdae24498f1a3aadeaccc6481b54", + "c6d4a0d48a0e28069b76b4bae56011f5ac4fd1f7c1385e8e3da92e95aff2dbda0cf288d929472b7bea8c5a7908158c0518f035d7a4e5a8b80d69f80f26", + "bc47f1d66f7ea8149aa890cbd278ec9f8554b40713811837021ad8d52e286812a0eb622f6ab65a52d77a65b9b1dbb1f3d6bd40ee875b7aa315202de2e065795ae351b4da6504fadfd8b22c38387e8f1cce62be4655890faf9a84ee22b1f220cd9ddf676f6bb6805f477ad2c165358808aead55931c031bbb12db335c858a7e5b4628a532522c85ab53fa6f6e2a38ca31e785251a7bbbde7159f1f6093a6538c27234d617c4d19b32e02f2c5d6c10df095696f42e3e3675b54ea0ebcebeb825cbbac583cadf36b56df4c57d48ac89a1b5d3dadb46d389fae45bacb1896bda40cf10b494cfd02cacd40b35fce7f996cbd2b6026518cf44edf3016a34a8ab5b7fc542e0c07b0a094c37e1918d61cd4f88121df580b96b08bd7b1964087e26ffa73d3f4e176b8cd6ee4a0197a440d09c091f2c5b754080bbc9fe008c78d9830da0a923d22a71628a423b05f0" + }, + { /* i=5698 cDividendBits=4077 cDivisorBits=2750 */ + "11cc6e0aeb95ffb8d8a53af513bde89d98a1d55bb6db57f0363573506b3346bd90f213078d0ea65765631fd2c95dad978263002a104be75df75b43929b98a8ea144119c57987e2493502e7266a6f7afdbc3f443e67d95a4633050e64a976731c810799effd49fa20743e84d326bd1fce75cd5821492e41c46d36c5e52bf1943404c43568c5bfaadfe773d890c464fda4c75b743eb323cc2c9c67f71bec0ff0eddf5188d0900508ba921dc556d0035f5ec0703f350ef1d00bfc39503e708d4e1fb5d3ba1fd09ecf8c96e2d0534d7acb1ed5fa6a6a7c6ab5d5bce434ae195dc0eda3b8359abf59736d2b6728691e7f25d2f8bd897a32ad346bb8a501c30a851786d1b6b625d609ae84913aba450383588d096e6fa91432b86d7cb0d5da266988ced17b9f2f5ea9fdc3c1beeb99d3314b158df8ad81307368a077c3ae9e748d5a8f6d8a26759169acf17cb29ce56d053656f0be7ec858aec4dbab87457b245ffc28803d005b6a7233fbff5e728eac14bf1a246631104e6341f184e44c823e347a1672b02f4e5e8913075c310a0a4b39e1b0239f6aa51000697bbb3b142e1ffa829ae56d89a8debcb9b2704b4571a0ff37c4f9e79c6da70b2de863fb632f14a57c247a570cd9e96b8c2f1fb25a9fc47083c6c2735abc5d23bcd37223380ac9ada5e161fc461e6cfa892636791ce33160054974183b034951fb8fdffb2bb4991f", + "0fb11042ae6ac82da4cfc049769e641a38c583e19cd129c80a8b2d4f7b5c4c128b943d6fcc76c270a11b42d14f0f8beb3d41d13f14783ccae290d2c3a5868ca0047b8bfa52b19600656438c0882402a450f6206767df377051ba8a130d7009bc55aa358ae5cd2f398ea16b636dcf2e5462b61e00ab8fa419004fcc301b6e949876eebfb00f6092ccc4905960d4775f0e331bc1c7b3a955b3aabbc8471e23db9192988f0d244281e7ee68a48ea6954262e3fdae3838bc2217d44e10fca2069a960ffe45e6d030d1e3a619011da8f9f9a465079bb9f6a817f0d14a87d2023d5cd87e9ab3101cdcbee719ed6d8a27570195cf71cd23ca307c98b8cdaea354b2b37263e40d76a305d21dd28f2fa7f1ee82864a9e3cd2a3e2c45ea663c1e3149fe37b239478f8260725015196242798b93c7387310ce799930c7a9bd42b028853e64cebbfbbfe0b425c1ef2cd3fb6097e7e31848210c51fa7b170", + "01225f70d22f45febfcd906a951c87d1cacd3e822433d6362ac7361a99052e8a42c5e7a390ac37888bd5a2822f9848850ce82ab85a8ed2a5c16b873bada4e21b6b1fcf4b6803f7da4d89def9818f034187dbbaff11cdc885b24ff17a753aae8a356b2867864b1330a04a12facb0dd48cd63cf6cc7e2ce0dde8b587a6aa5363a6aa27725adb8309221e9236f38c106b8218ea82d9a8161fcd35ffc8d4aceb107d400a831cf7053e", + "03ade6ad115f53c3c05fcaef14ba8f9fff14b1f30535cef7b20827025e35a6e717ea99aa927b46b41125b6c4912877b457456c965ba149ccd0bd297119c1a65d06ec98aef3717c1fcabe0b16b3ef2274fd7ab8a086b1632e788de2368011aac075a288786c5cc90d4fbbf6245cd8441d26607904cfd9f50ec07ed8c0d09c3bc1d3a0f32767ad62e09b5b163db37aa4f7cc22cef490bf0024f7b696fb7c53fdaf2deb60f73240ba642fc56a034f7a3915711ea76c37ab26e58aa1a5f38954e9aa4b8d1f50a7376e8d16e5b8acfda30baedad5546bbb7a6448577b61eef5dcdf3882dcbe207438a4f9f1bbbdce003ddb468e1233bfe5264bf3463930010cc0afa07614d1fca6306ab502365cb12dca3d1ba75087856f01b8c7ba845bff45267b1e2b73082c3b7841ff4d37e9e867d920a634d908cddd50d36047b725b2ded0032781403e5836a73975ebcc00441314b3bdd055e81ac7906fff" + }, + { /* i=5699 cDividendBits=2117 cDivisorBits=2106 */ + "0336b48d8837e09c05411dfa3b31999b5ffc6df912ad4706b8e928fd4e5996608b856a6fe5a5899ba40048d493e81e95c62ea30eaa6ea4ebe682e44a4c688cde450e325285acabaa24ff6c3f7381b6a6272dd0e4341e83cfd59da26f4ea20a657571732c980bc2eb90a6acd5754b09b1f0a3d75969e056267771400563e127389aea628ae10db2ec9472bc4ba1cc5afc7fbf9fa511fc16fc494cbb8aef6e6f26031ccf7efa89f70cc6b7b2a0d07cd8cfcc1d3a68b3ca78d283e46e6ec2c22c9416506703b7245de91e3e6e4aa23af0ff2781e2d8998670227790ea8af0ead831c1128819f64ab5e3069e7ffc50141808174e27c29187f3fcdba0b79111a8cc585002227b2aaa661f4d", + "02e88a1dc1d412bcad2a329d9724694e05fc64c06ca2c01a700b081e49ef487de1c2d7469366461ebe47364e9a05e7b85f49a3c3744e259b0748467695b48ff44242652b38588f713c80b247bc12356247ae2b1402e0c60fd3fa9b92fd42cc77d4b15ef38699864ddc8001fb4f624e6be5a90dee4ae1aeb770651fafa9dc83890c9bcb008b35fb4f65dd45593e33335514b1cb4ac8a8cf57e9c5b33bbfdcdef5ed90d2e2fd71be9b5b83210a4a09b101f9edf7bcbd6f43656f88e95d808d86accd5597f8e3d0388c1832b5f00aee47900d19c0952e3a0320e2e710a3395d5adae075ec173b4f9e40a0e01aa4dd79877daf70c881711e3bb339840cf6b01e534c9a4526c146b9b134", + "011a", + "028c68c0b443f82e80a238a2b37d9b6d6466fd1b01ff69997d020bf0e80085e0d4c94c2746e05dc665d701fe3d9d54ad3784a95c508f7f207d46abab7fa64b34110ee0e99b1da76859a7dc6e55a7d7e437f57028f2e9a2661b930f63a675297526109455c6a4f9cbc1aaa69fd8bf4f15a79e00eb63bbb065a1db1de2c43e53a306c4ec47b43c171e3cfde75347f470c6f3c5b4b0f2229571c8f41b1e15218b1b6b4730ef5aab15a3e9403b7aee2bd39ecd1782cb1de894c7079d5dc3264639bc201d9b8c30ff9ecb9691e03630762a791384b4449a88b03d9e623723ba021ca5d0a2085ef5018fd567a2a2b41c38c7a40beae3faeca6396e45414953a76495ee11f5ca42c1d8ec05" + }, + { /* i=5700 cDividendBits=3902 cDivisorBits=203 */ + "30fd7212d171d0fc361e935818998a9d90a9fd3e845967407c5f6845ee006eff3d4b6b04b364596aa180e264a99843eca24747f6f0f5be1b2658fa5dc96439ad024e5312c0e7f1299eeb8a2490f08abab8bdf6acba6fdc6f6b1d198a91da4aa77b1f6d94d5d2f0015f2bc71e3fca3bc559ae9b07c6788ec0f941bda80fb7d7bb7819d804c4305744d6e1be1eb320ffbb3731d6f4339177c0867335c64baf92ba3f5a1cb0dc4626bbdfa5717efb46dc3313ffd2e50d4ff195e89af43e0c85455456c6ae6d8e5f3f36c9cc28bb94189fa8127c6131245f58a7625ecd041575352f1f9a90e325e63023815851d5e8fc619d456cb1cbc2abc1145b1302f221c4ac62d87e889a800a7c5d39f35c592b7781068c79c0da1e2c30580e60ae6cb782a5433fc1fdd4972b784eae9351db4a0b7227bf6b12227ff0f1db34db18ac0b95f7201995a8f9de5517b3a171277e3685cfed7772a474f0aea26a00bb17303bebc361d4b708fd2bed4638967f7efd3c782a260169c61383efb09f7f065250619eaceab9c5184ff653dbefa1b72206be3d725d9e6968151a642afb0d4e6b05bd8cd45af4eb2eab759f6824455fb62fe8127f1ac85446385a5e709e0084021d9e540c74f44dad937bdd32b41442635ca665f372a5c0ddb41bb344e909237889781ebd65f6f7410463f40f44", + "012e2780f6bcb684b303cbbf869b08ec170dbb1dd250dab32744", + "2981bad45520748c81ccbc44763e7d72ea5bef1c3ee62fc25c7873cd2918445dddcf64506bfd60c87e78a1b1bc2155ecf748ba5371109d13a223b386fce500c7ecf79501744f9c93b48c18f45da1fa0685df522182ea4124e7442783513eee0327d02427f7facf9f7cdfc0e9f52a7b6ec48aab3cef863fe66f58cb863d5c6523eee0f63b62d0eb9b77d5ea98a2cda6d720a787bd7655c94ed6ff60e0837539c10021240550c07ca24342ce13b4ee449693538437c06a7731e2b2e5544b7a925790363828be30ba7238abc38ca2a8e3b9aa8436c9dd5c35b04994ee11b1e55e121819b1a55354625dccaba856f7506c29339906c6bc62bca229c518668040e585ed8e3a223e62854807a5b0508b43a3b62ba019e5598c7b35aa25318a031cf0dd38243eb107214e849353c0def32f3d452258064fb1e7ddb880d4eba7add4fe0b455f8f784f94a443621f87ba909d927c0732cc9177e6e0e17305f8a59abc00243a812e7e1f1484c7230167b67ca28343558b5a0594986ed45b3198fb5f5262b18f78f5918a1d3e486202b09cc8fe6ade6b3d4ba0fd03ee95fc7b6ae63d4c8fe4b572002de593c99900ba8e5b9f25a69d979358bb5f9ff01cba54aeb7a6dff72d64ee8668edd9c8b555e40e3c5353d9", + "01210a84deca3904bb59cb604f532e98fa8ee9ae28914150baa0" + }, + { /* i=5701 cDividendBits=3466 cDivisorBits=1032 */ + "1081ca866bea669d75d4fd24073bd5389b6e0d4327eb969f38cb2dce47c366862a74b449ce00f0ce4dd850d378aef5e147d523423fbc7cb1026ca5a26d433ad175ad6b2b0154cd6998d80251b9c398035e6d67fbe2e9589f3f1c5ec430fdad20c436e85265d1568e751f920338f540fd312b18e94bf5c662a5fa3f91cc963c7784d3073c2fdfb8c3499bb820509259cb063a04af2298fcec14e4ece838368c3b9a6a2c49d5ce94648f389024f1680ebd4e5462a00cfca1f7758af987da981f77eb831c642f2b6bd0c9364fa8bd5fd3b4ebd01f9722e5345e24958d751d9f2fcaae2f46c906d068dddfc60aff50b845279c01fe6571a833e2f5102a6d49a3219b79705c81676c1ba9bc6e818eeb274b5609f9450cbd1f8229fa4c705f56c1cc098d2f3d094bbd3456c38667c2be4db0a0b98b794bf3b862e2dbfe92489238f2885e7e8a6921ce8e9e265a689cbc4f02e39fd0a4cf6dae10ae10c355302c5d2c6c6e9119d76c978c6b4a5068ec31f9808058a64733b4f8dfdd66d87a672615047e149cd8b438e5d024c606018a36c2e8b7acf396e2def07528cb610874cd58b1e90f0dbc2893a85b0f677bd4d99bfbc69dd5", + "67877f1185e0b89529031e5029767e3a0246cb4b9d23f2f060304a19c0896238e654dbdc48229307943d849c8efdeca6bd74c4de6ffdeaf74c0a312c5bf43c71a8215e60de7fc817a51741a2eb4329c3f7914acd24da6e78f99da4ec5bb139092366fab60ff955d0f54836b0ba0d84fb44177af5adab96ea0d268dc1cafdea6625", + "28d13df17b47ee1465e5cbf5250fb9c3630a35fc661c1129656fc8342403a6f445234b47163f0c32f0213f06f5ff690ee0a995402cece0c8cf91e89a495388aed698e820d5507933f77dbc258e27476a15207760d66b0888ad760af7d3637d2a1edfd9ab9665e4f49985079b0b70d9a124a775686ab212c036fc65e701905f10af2fcd54cb0a2ae20709312c994995f2b5d727e52f75302ceafca2985044ba69649e26a108b9c9deb0591bf36aab5ffc68b27039a60f94841e4f2e822f2681ae8a81670a221a8e6ffebb4035f559258f340007994fb29355a36e8d0f73bfc2e3e6be0b3250bf35f0f31473186cfe0b8da17a4f260d8fd18f53fc8d2e416a16d384b0e29ccb7df5b754286db9da81dd608e59b74427a19c9c19fdbee8410d810c5eb7062a499e6e6f59d9f37d7a019982", + "1ab015081c3351ed92731a143f6a9e7cddcd199fe5bf82e9c34bb90f1d02998e3b642530b01180b1e1270894c7af3d095aa58d7f3a1a6d6107287ce86b0d883a15874048b2c22251c941f561244c3828f0fd56db95bff46e5b400b64182545d0d38bd1b232cacbdaf4eb78e67fffd649d80ae1db2a838a6b64c3736d1ceb8da20b" + }, + { /* i=5702 cDividendBits=1525 cDivisorBits=303 */ + "025f6a7f4bad03c76c40173bbd7a91941769e99767fdb0bf06493f8000339217300e73939a96b05cee2585a36de1a7c4d261fb0eb4bc484edd10b46ddb380dbec3f539b292f865cf4673563910d4dadabcb7d802c4116b34749357bdd2344239adb929d4528b1bada0276dd1b3ae86dea31dcc92e26937eed3c7e7c47173f1a07ae423dc5acb333f104c747a2d562f83e21f63092f00e4be9159eb6de4f3e9dddebe612bf8425c223515ba7dd5fc2a2e464bb8d6bd6372d2a078cf34fd0e43", + "2fc29b4d02b0690719ee89eedb41c33fcaf76b08e38527d1964e6ce2f162d59a71b2173a4e80", + "0cb7d19a53d8b9dfb38597184e80271dc07591faf65249a55387c29b2990a490e634296ac01f572b34df1442bf304d56f1027642488b73c1bc74298c98da9691eaa2d433fa6ebbe81769a8dc88ef05df75e4fe682c407bd881110dea54a8ebf321b7961d10fad1902b0eb41253dd0c8054a181ae4a37f00fc8027da7e4761e6c22b3af6ae5c8e60650964cd4fb09badaea99c514cb7ec0010e", + "51293089ed32f8b26cdb6d1cad21109bdbb631485af5e71ef184b40998bade311cd57e4343" + }, + { /* i=5703 cDividendBits=2001 cDivisorBits=1995 */ + "2c97201f101c1e7dfdb57d3d3bf5bf2e5ded4993231cc89f3cd22cfb3bfdf2b088ee53d78fe1010f5705a7701979ee6e537a53edcf0127f28a76eb5d4e8749ab1ef4c8e20aa9a536f96cafca6f06a9e38c51a234e2101fbd97decde56bc7fcce5426a62a21e935aee40e244bcfeb9811aa7111250508a2117b1db4880d6cde5accc48b65e1c43b01a34709e4957d14daa3b28e1e796558128e5547886eb5a01a2f84ca6a9efd8ef5f87d8cd7a47c9d75f1e270bf4970e7209388753e3c7e965bc0113ebde002541f26ff51b51d88cbcbfdb6f36b2c1a1508479dc8018540e387e3d1f5cefd502b78ca51ce4fa3435a754022e7652a1fe296efa2", + "050bdd4cc3169f29618acfc818acff5c491bb0f982c190ae4d4be5e44288c4c08813f5f10be7d95955bf23bde95a3978d8817f43221f009b1c06197e2e7b539a8d36f96a1f5973785616ad378b789023caf935b718d8537c698658b41ff0cb3dc4de884ca1f57823423f00f1ac8af6ce599b63c560a495190e40225ef8bc3e9adc5e55c4b7276dd645284380630ce496ef63211fd849993fd726f812a68408eaa6ab81c33be71194483b8237ad6e5f7b8a1b65cfb122654e1134df552cf50505aa85d94b15965410e002080c7e8542def8f4fc7a9a1bf7b73da375fdb9720d282ff5975dc0ad4fa701a51556faf7c1ed2f4c83c8e42d9a8fe341", + "08", + "043835b8f7672532f15efefc768dc44c150fc1c70d10432cd272fdd927b7ccac484ea44f30a23644a90c8980cea822a78f6e59d4be092319aa461f6bdaacacd6b53cfd910fde097448b7460e134228c53487f47c1b4d83da4bac08446c41a2e02d3263c5123d7494d2161cbe6b93e19edd95f2f9ffe3f949091ca190478ae983e9d1dd402888cc4f7a04ede17d15f0232899851fb7188e13d51d86f33a9558c4fa28bc50bfc50253b6a17b1a3909a199a1074241c05dbcb009e17a94d4d66e2e6be27465334fb39826ef1151295eb4d4360f0f965b3a574e5a821813b9b07a4664253ae0f7e5ae40bd292397cb854b0bc5bec91e08b30e17d59a" + }, + { /* i=5704 cDividendBits=2794 cDivisorBits=1305 */ + "02250128f8e4c7b9b8c2c292cdf966876770cc04713c46fdff385fcdccd6e3b89ec569db22898ea2f147548223f1caac1b5da6f03886368cfa530099eede3158db104c8f4e97b7091ee403b79eba403187ce6475185c02965d652c99597e4fcf8a269dd4802a764f2c0a2f627af6957b17f9d7c5e8047a722539fa2bec4b833d28edb4a6b8b99a953aa7de6f8aa59c916fd43eb607ce857940b17f99dfd2a117bc9d7ae54d584738d8f66c958f29c3367b233eac6a61e1976770b91d8a2e15e1ecf6cac95f6b6c620db8116649b14d8002420b27629ffce1a04104fb63afe1eb360f68e82a3c9b121766dadbb5bb573ae1716d957a4dd2c53536b5ef9ea9319da04a4ce6a9a9389c6ec83a43a16232c535b0aa1a9184215fdbc3f52826d30794dd2e9650b4f75112e5eaa5ffb66d7534afaf23ec207f2ff975c96d72fa81920e88a21fda72fc4ac0136a30a6df14bae3597f36cf3775055fda0aaf5bad7b", + "681cb4100dd87257056f6a4eacd2e23de1320ff91b7a9ef0fdc096103c9d21a6d3d522092d176a2f2662280c49fa1bcaf7d30ad99aca083e24ed8cec075337620a7442892629a9c15da1e52f6fe3a001d5512669cba565a1683853239e7ae8e075f8b92470a71c77ea1249342aaf23ea6f2769030ee8e2bb18429459fc7f2f8d799100500f50dfeea8dd5afc676668fbd3c3402cb759c7206b19b9d528425c4356d65e", + "0545f0bdde073bf75ed6193b41223427ca08337a06784e12be7df044e2f4a7461d69c75aeb94195f2c55ace4005c472aa5197c7cfbf6ef05d1865bb76972dcad0ca4b3f1b65df16bc0e86d23b094f1f1d2b9c142f448250938f1b0666052ecdfef721c1def8e307041294f59ceda1c3cba220ea3cc17b3ad8f91f5ca17263bb1e71ca994c3b7d799b8ec116a1160995a7fa6a6cef8771a48075c0e2f5a14a41c7c421931761cb037f2d8dad2760243e44ad7866b3e7eeda8167d33", + "516cc399d418438b3f3d39936167ecf17fe4aefba9117cbe07678e0a5b92e9c1cf8e4f9bee1edea0ce110e8e6761763f6d85f2700353b486b154a08d78e9508f303571f3016399ec9b209b7efee27613d2d74d858b969281299fd8a767ba891b01211b937028365c176798aae09e9067818202cf4352d748a44cd104fc86a6ede9dbdd705bc36b8895d419678037146dd5812b500b90ffa5f902f45c2a159dc24f12c1" + }, + { /* i=5705 cDividendBits=3739 cDivisorBits=1265 */ + "dfeb9dd780992e6243691bbedaecde28957b6415d6f0ec5fbf8b02ee59614e516716d0e2f85452555fe72b7b249589e449fc82a86e844a7662d96d7e81c4c833bb544c87abdd32133796f9e892fbc03dbe2d22dea826cd6491cabffc462fc8fbc7ec12333e870463e849323bc095084684d6bc9bb99be42c04e1b00d62943b95937d58eab2b396a59df3e61ea57bc4f05284f756546d33b18e9c92ce147e2cb8ede90bc66c05b6a6a881bfaf0aede9fa9f64dc3381c0931a34cb55cb55f51816759b87c90f389b9f03544942f51659368b5156b9ee3051a04d57bd29e69cb51afd48094da9efbaf9f3e2b4f8782c2e63ecd11c2e6e406868dd7c24436ac9368999b38b08ef91fa84b9cf2c42d1211a11aa081178628b2d3085b10933391c1cb884b271c25206d16d8f0a7b27f71711ac940c2a461d275548d6daad7992a17cf96eaaae7211cfb8b798a291a6fe70233707064bfb9940af6d9c0a4f544cf0c08c39aae4134f1a8a9832c7862be4cb33f7304b2a89b0e39aaf90bc603a9b193cb76612f59a778fa361ada31558189ffa28b7630e98ea9d0f3c8fd5e0e355f7d30cf0f3971c32c9035b8c4788ca2936facd971713a1202f41d7a402f4d12fa12701e7bfe43ceb040113b817b4b7ca0098c7bd7ae7", + "01c28f549dd2a72269137ef9379530b160decfcb5038a4ab66fffe68585fd02e52a4e218da462bd535b4b61d7818ee5a6531ad4c35ae5d637d5ce3a4bbec3d2473e44557493d4ad4a4c157da852b5ff303c66fed5c223e1a5c2a52bf9f12cf56b57ead8ef63f1796aac401f9b8cd9fb208ba5b7aeefa53fa7edce3060e5f1796e3c4d72bb9eb0b065e76398aff1a850209808ed1462ca9c7e71ca6bd9bbc75", + "7f3a3eb8d7cf7510777e93bf8b3dd0d328d42c4ba75102a39c38e7c975169402067866f88ce8ee2cb1312bea8dbb2def6c9a40a7c741b7847659c9215d5b2720b4329cc26fb54690018ec1224afb68d379c4f2d0d541161c56bbdf162ce8291670813410fb62df06029f965f847a35498f1a395d70460e78bdcd572d6cba2103621ca425919f961f29a4e0e2b8a2e21c7a45c7c9a778f348c4d34225d33ea9c4435174105913f800048ff3ad8db9519fbf394b7f0f7dbd66365d1034aeb87339fb915ba119b1ffd8f6ff9e37e89a84bd93f47cbef17522ce092e6d4d8cbe4225ce8466d4d4cfab58b46c1d7f73f035920cffa722eb4fddfe6c0ff0722befcd7d5ffd4596824ed93c5331e5b31ae2aa2a7890a795636b795ea4e6914d57fe027df89316ee53936e37a067f5de076291693d943c5355", + "c0787d43085421eae262720e2871299e3eab45021d1ea780c3cf958f8f6efcd2dfd3d784e46f8f3432edb082da1d7d8e8f19a750ab82c1c410ad428528a09e3b25e1bc2b3791792da7d4a0eae627956a0c7c2a2291003c1c08e961dcb822633d6692c430db1acfc3cf7efd8ff5e9d903e1639b9ed95bcf211ddce7fb5f98d24d16c01f9d6bd9e578651f3ecffc1653c4022b1011e8bcb6640f6d8581f90e" + }, + { /* i=5706 cDividendBits=1640 cDivisorBits=1054 */ + "4891f3ce9a87b0688658a2f988821e187bb5facb3f641fa459b97f9095110491af60cec338959e3c25875aa39c3980f8bafd09d26d51cd1be80f7d0833b9814bba524b6fe0c0e253e4ffdac4025648bae8265e9a2e6fb780e331c4467ad436a5dc2a3a95464611e82f35cf4f05a29468cc44f153a31981a6f725da5371a94e715fdb4b93a7ff48da031d5f25118bb066de9892f749f0179385d021e478789ed9a35e950ad1109f1abab3cfb192e2f8118c8998e2654a911e68eef95bf09fb3b142924e68a88d5bb23de7f75ac5", + "3d8c15e757040c64f6cb339fef05578bc2f1b065b5502d118155fcbae162f9df7bab663bdee9cc2d648ab3c74b4e1b42edc7db7c57eda8c491e39f0932bccb9359b42153be43e2dbfc41b78b2b1da71a24fa5107a0aa785e1ea5d089c9e2441313819ee00a0b3fac4e4911dd5c8ae4fb45fdfe056a3590d68c210977e67eddbbdcba93e9", + "012dd94c2747ddb42eec903d2c4ebb34d3ad6960c824f78a8def510ef0b98d8ea46977198e3a7ac4b9f7c8343cdbb9b7288ef183c7e38aa80b69717748902363f8a9c9ca06c824a7bf12", + "2e9bb670c3ea1658bb5899690a8b0020017bd9259283cb2b70854cabdf3abb668a950083025e9157fdd7ee195af234037dc1e010c140b1b610b84ca98bd75a7c4befcc29340487af540289d3d2b73ca72d86d854f5381cef65d30c252d42f2ac75b051b89f802fbb5ef1e290c324a482f46edc71f059b72e00df6d342854b2cded7f1d63" + }, + { /* i=5707 cDividendBits=3640 cDivisorBits=446 */ + "e147a898f41b427c17a40c889eedc53f9d9d8d4913ff801ffb45c3fc64762ba60f30ee09174f17d2c6b18cc3503c182b0e124cc4b8542df011d4e2c0174698882b023c29a8174d2881294c17565ce8c47850533e42bfa2f095569941277572e6fa97d980af0757b26cd2a924c77457b258cf7573c74414c979846c96b5ee7ba0ccdd9810f4cb922b57b5c3320546defab846cd10a784271d868f6017112ddf1a2a7fd09dca38693a038f30bda570867f89a1698a0fe9febe50df8ec0cc36f12c894de43f146b623c8434cf3b37993766a942e16daa262c9b1bbba4ce57625fa9951c9e7fda90f8fc9ab95d6598724a03ae1a6e88c5f0b95c0d4132e7267cc3bd855c032ed59441e289b0812bfb933a103a0b715291f474eca0808afe1ec7aed7be47daba2a8864c75c039129f3ea9a7d612697888e950561896f53a5cbc62281044fdeb91a04ac5cb155474b3b96b758eb5c1c2e93c3067ddf0ec128379859a8e5c13683ab804fece9ca7aeb08f822ce71289f37361205a40dac4b6bcbe6741cb3755fca260bdfa1784993755b6a76a03b796c9b1c43235f38fe69f88cf91016210f931ce6937dacb7717c87709d1defd4c75579a7660e7617deda978d1b1c21d1ace1c42a7878", + "036fcb211db536c442fa3644eb25578c19f1f621565d47ac3162447f51d6929ebdceb60f0bc779617ce15aff9b940390923f26d7834e257d", + "418d25eac39dc895368a9020fe179300edb4c912dfd3eb6ec475c19f804129571522f286d122a8372c0583090fe710f3444f4d1296f27af11cbecd1047e330db58f01e85cc12db4d794530ab740c65cc8eb33068238593075ecc2572bcdf0b7a5c5bace3839d48891fd561d6ad052a5ffa6ea0699ab941d18ded3866a15c39ddfaf7d235e978138964b0310bcfdbd5fdddb8cfdb7be813bcb7d2eb5978332a11297889827b5e9a728ca03cb76312b00681a4e99d9d03fc630da2e5c76739fb2be13ec91c63ed5052cdf97da5b1c5901fc388c16f7a2834e5049f82e3b4d18bf2182df9dfee057070833f32ecbcc88225207fe3bf2b912b249010ae3be084b724f327c9320d3eb51c02f2fecc68d4fc72ce49954e50d055a32423376d2d5b3fc3a626ebc52c47e69c63d0c917d71b035b3a9b26926e09d5869d558ce2cca366d1e57a522626bc730b441a451ed8fa1e38bfe7efe82de0846b9221de1f8253ecdde89a50d08002dc89b6572b254703a9198c9ce8c62dab10eeb7a53a026ac11532d552d95c8626f8cc0490a4a6942e35f3", + "031f5ed130a09e6c473e4f1b417cbed92b65084eadc4a3554f7e29de2bb542bee32a5635cff0bddc710750b63688b4c86b32075bf2c401d1" + }, + { /* i=5708 cDividendBits=2787 cDivisorBits=2170 */ + "04e49f0e9180b505677cf46ea15f007b93399bbad2ced69ae08b81c1fb7c6a657c3650a9a69d0642671899fca3d37b0dada0892513b6ce1c37c53f8b27c736444ea6aec9daef2e1c6171cf2814ea999a23d798250d48e2ffb4f9278a1eca1a3557e2ec02066adaf440e5a34ead51968faba24bc792d3b648e18d483e37376a45b02899cc1e4f691b9979464d880d80ca181583d7b7c0715b4ebed5e5c1507fc7724cbab2c43320e837937ef18453248570cb3ee9b9559fe0926d2f5b28f33d08537d049e32a0cbf318f23e2ffa1372ec06938781b5c67e6b7392ae2573d63dff19945813c2d5a13e9a81251b5d0a6c8205f740cdfd3139a1974a3b72b10c9e0a6ed6746c95000b2c2ee9e4a07d1c34476d0b3b91d556b8de5d7ea23c2f44e9bdd79676d00d681afbc10d896826fc897e21ad2380ac4d8fd7e486858202e49af6c41256a2b75dcfa6918a51380fedf26fe9f4b9ab48f9dc5e2d17978b5c", + "02e4043b5a099858a16fa7995c7a2b381f4579b067816ef1c4905dcb5e18bc6d4f73cda4c1ee825f8fe03a5605b73412386c1ac7eed2330945c2feb82245b3ee66a92973564e761384939415db7c2722b28d27cb6db12054b292392e3dfcca0756cbd76302618b158db3df6a8032476b5457063ec0b323739e6dabadeb58db7d198718d8229eb0f0e6b3510e7f222e7acfcc4d8d730a81e40dc7fc6ad71fab59deceb1d03056032a58d8ac20466cf4c24cf210938e2e3bf1cb9437dc48ed32c86aa67ddb3561f1ba250c6d8f922f954bd44c0b5a6b8801516e203661d5eb97b38a2e2fb05b406ed2a96ce64ab2cb3251a5ffd88ea882f416bee49dee625d4420fc42d17032bf7f7ef8ec5317647da272", + "01b1545fc0beddca464d317b5aa7f06e712d2c6f845357726a49d772a9e7e7066f18954e2f3c7e0ed82ff888def0c220bac27deb7bb92cc420e806e5a8bf73066ca728fa2ac16d3b87a3e6b6a1fe", + "0293c811a2e2c508f293b6abf4688120b55935446ab23d8955ecbeaae6435cde257a948b4bb0694a11dd9a4c0edaf4747ae500b193e33cb894be7e04e050b31a8b8af2d5777696fb977dac3c42f9ccfb8f072b01d132785cc859dc769e04f03c388643044f2260403e0938663eddc1cca73e1fcafc97eade7f067ae08eb73f0206a89b3818c3f32d102f3f4294866d89acbebd89468760bb46a16981d50982355769c564e0e91a9f4a9ff019f3511e80863bfccc70bff79b51622a791dafbd72626f6bf988fb5f14b44433a1788918a0e9ec9c2f82216dc472acd4d5bc29e8ec236798e5801fd6c4d1ac12d8c06dbd775ff4e2a940e0123aa02bc79b59fae86f5ca781776676f523114758ea76baac40" + }, + { /* i=5709 cDividendBits=344 cDivisorBits=277 */ + "30281685f580f5c277f79fa9354f645def642243d9a395a86dd776b914be231af092da56c4ad116ae5b39e", + "1d12b718d7102db2f10ee5bbce17e9a8c60ef1f85e2319d0a9c8a1d951847a1dc0cb19", + "01a8099b120b109a21", + "0e443c8e1c1a6fa8c18e4d7833bc13f9bc260d303698d00764a6b6644093e4d64e7b65" + }, + { /* i=5710 cDividendBits=2125 cDivisorBits=1452 */ + "151e35ddfe288ee2dfc26ae693060b3e03283e29155f29c74eaaf8d4de114e812db219a4b0cfab70128ec631d64e1142e3b604beb2e57f036c139eea3747addf1a617bdc1c9aff19e30b40cfb4360c5dd3fe012179dc56c1e7123fac9debccda1536619f9117016d1fdbe614433b210ddbe316355a9d3bd53ab76ea7e3da182505c83e9d286f73004f4227aefb9fe9703b669fb891ca870ee9811d95c52023c2e5251267b589168cd026b433cae9c3e93f691dadf62e2df18fefac243471d5595134024f57b3f318de4c9944f519d3388a95c0909f6d69562d2e0e29596e11cc85b0734aa5f4f09178952a270ac0999c4f2d6723c725d34152d722bc9d394be61b1b1e25f9c9bab6ebe0", + "079dc82ab2b1f675d8d09b68f7dcb0b2f0685b2b5fdd0b46c75a5ba97a73da6c1d80322eb5520c77df6053f2bae10c9a3b2d04d0cbd4a57f33f4033b4a7d331fe88d4da410f481ea4ee7685dec48af85e1c510d3c6bb2c20d8c566f9a5d68f0a38983dd0387c97aa755180d6393c23581834eafd4386ecedead356d639480fbf44308418bad7d7ddb4f95425fcc7a45ca6c5318b5fb6a42bafa7ba8effa76eff18ea373b8de951414c99a71ccb41a4b12c3a970441d8", + "02c5d15a3e3cf64e00518cbb4ae5dcd5e621c9c24d965c16a287634dedd22ac82e1527442e70c075719cd95fcaa9285f54dc3ce4a420756d689c13b2bfa04c4272e47f6673722caeff6f62b5cbc6864465468f5b5b", + "03354b19a6324bddabb5a273137e68980e744cb72359405add011855716c792607fabe24de4630896cf2e24d6fcc9585939788c6f2d4a6380c16f19cb849b40b453a7343317c1b779425bb8f2719a5af31be425e3d094d63bc5964774e3113814c021e0b861eba2f4a2e772e1a8bde0e96231e02fc3a692e09084162b1645c69ba3076e28b0c3b188dee7586727987f29d4b800d86713fbc1fdc102b621f9f0f7a12bb0f17b978e420610af9cb80a1318dadb123bc18" + }, + { /* i=5711 cDividendBits=531 cDivisorBits=461 */ + "040180c9f6f695c6f73d2a56e84a57df784fdd205b3871ac5737fe6de26817e94f3c60391bf991a48225c645f49d499048b96eb8a286ceeb2898c97afda53cc7da24cf", + "0851cd9d0225be6f9bfde27c1b9ad4cd4e4273312ac5ae377ef5edb9f079b18c5fc48080dfd4f3a571c78d6109b732ec0177e6a49e04f919557f", + "7b43abf863fbfa9a10", + "037cb474be618c29d3e959c73e3919d7b6ea89efee3fae26a955910936b7100e8852af478dc575f9a4cee6a7cc4d90ddb64ca0199565f5d066df" + }, + { /* i=5712 cDividendBits=2597 cDivisorBits=1552 */ + "0c8ff611fd4fcd27c28c7c11bf81d2c36fab012144640a0cdb52136d76398453197ad7e1ff688071c8b4bddb50782e88f7e6619e4fc69b24d0d3f12440ca7b4263b3ee2f519966e1c8b038b774d2f573a743936106168a1cd07bd27d786d08047cafff9b889b0be4c81a1d06474f681c26e9f577b3d9ca2e0f6a3b8c790fe3e1f3ae5e30812cf015e9616445e4ea685eb8a137ccf152ebf6b569624303d877cfeebc5ae24faaa27d46ea4dcb8c0a40ba152d248193ad2c0e273663391226e0f936d6bda5252a5670a3013d3d887a9bd85814f664f50686b160a052d822193c9a2e5f700390df4bb9838ee63636b8579383a885a1f99929eb6676318198f4b6a91101f845718399233af7e8aaabe04a364eb49adfdaf6d26507bb272f3b328b2b96da98e2faf7bee4436e3752c9a8dbdc72996e6cc458f4830b1200fdb2b6cc9dcfe3b5d7cd", + "2150302f97135fb75d6c4c52d55af4634fffb62c1df0a8a21fe189f20b96927e8c2de9b8fec83d24075e8d75fa89d31f4971621b6d9e3b3a0937cd2c36b0e2a6d1cfab288847a79b9444a75f0e804d4e3e50476f65dae936607fba63c459bf95e1ebc988cc4a58c7af9961fe58a99130a53bb70452f237a909a63291bdb82d6b731fcbc3c6f267b1e1558fc82a8164229907d0c84de72813bdd75f3b8798fee979ade9f18e2f4bf8cdd5c915bd1c6f067b1e0184b2ca4e898d007b315b8c4ee84221", + "60897ba00ec2933c8e28c736425f58873edf84b6b320ce3022e82e69bfbaf482fae9d33c18bef2efbaed25d21f25dc4166ff19de0e390b92961f2275af6d09554730bfae73046560f5198b110dc1560ff22f98c041f6c08d4ec2b7ce5ebd2f25887cbf5fa8beecb2443844ef862ae546187e32c896f664b8287f95f4efd2f3bf00e2c1", + "169024258b121995f73a7da2b4aa99b8031e16e5638173c63c65ede814cd35e13e3d90276168b56a8eea759f094c9a88deaff9868cb44ebe972f25346aeed93bb105ce0a8d2569c551e3966751246e80efd695ccd4d9014c95774b58aa908219b88dff3fb8925c1e3fee4c6f0c3d4751e1d8c125c468091a1f75e3ea3d2a595847fe36f125bb5e0e1bb50194809ed6f99493c812cc7a790e5cc19e2b748f457c078601ed489b3565fde91605b7f0aaa08e67c1fd819e3e9e8b4af7609ab5bd3adaec" + }, + { /* i=5713 cDividendBits=1677 cDivisorBits=269 */ + "121bb38bb3013a486f6e252adff30af35386da2003e2c7089eab3fa4c5a36db5c9d80786bbcc0d9ff4ad08be64f47bc76e5560603bdb0cb847a5ecc73c246519bd48847cb84cd99b36417fcc1e65f018f3cd14393d2e145d9f21f59db985658182d255730cd723349cfce73f1ce9679cc93dd664c6c49f85d51ad0633ce2487dc4a4f2fdc6a781ce524b322e015544863cafc1305c054cd88b5558e38f63d8343a9a2f80f78c87b89c791b29d39c72b3064292e6ca3740e8c803178be07aeb5cfae47b7c0ad6c216061a75b58528cf49c62c", + "1a85f3ddfaff3cd55e4a683bc0de43cc24ff2127a24aa8b98bd9bd8c2b5f16070ca2", + "aec75d4944255fa330d03cb8ec712c5c6fc5a35ee70d17686d35aa3e876b965dc5109067a43fc8fc060f93f7e1ca09a620662fa84f5ddbab941318697e40aab6003c134e1f5dd1a34a72b0dda6615db5e7ffbefdfe95028015b2d2b77fba90d7726b5224b4f6a43d064f5157b874cb4e908705f6308a058f2b348862a2483911585a8b0fa8878975d81c75af1b874b687732668d8199f61bed51efcb73b9c683d08d3d4b77422dec1d8e6d4fc2dfbc15", + "0791cd67363aa203e8e7ce1b6eb92739faf6ec3379f4b7674daafa6cba7a0e50c4e2" + }, + { /* i=5714 cDividendBits=150 cDivisorBits=49 */ + "04ba1674798608dddaa69adcb371c8d1522c5b", + "01397013cbbff0", + "03dc567fc2535e83865195dcb1", + "01255661d0376b" + }, + { /* i=5715 cDividendBits=2415 cDivisorBits=1981 */ + "06590f2b9f2874b8929fc533fbd6b47f1d56057f44b06044d0b2c819c67ebf87b3c586938d0d74135d2fe910e57c8d809fd0392d70f20d4434e789c804502658c45e61f0a68eb89777d370f326756d408148c886221672d4b782afde681e8f5dc871c6c153381324050fa808f84102fc8be2a04af73417bfb044391df771380b1353331d6e253751e92cf4d71c018de4470148fa5d9c51aae1b2c14e536b3d4327117c895770982c1d69d8c4b251f8106a53b6c301ccb8c5e21d20428d237877349734c6e7ef98b74fb57515833e6b77c07e7612703ff9b8cc86cc70c80dd7553e0ba45b884d0f7537d0ea004c609b2228b27f9a0ccd714e8649d5cb8487b1af1de252540cae3852b8f0266a30f423248b9d879f43736ec261bca239555538651bac0bb473e9fff83594d0ee0d91", + "05162fbbde259b4fcdc452f86be000ddfd44660d49814feecf314ad999386ae21d073051d6f4ceb739442ea136cae3f88a45764a6d75e47c1c4892de331ee70d46c930716f14d1a173052a61794af02ad4163fb67ce2cd8f14b0a8907dadb0ddaae6534d59880fdfafe12ca9a2b1294b156263e4a81c09076b27740de592d973b27f5ed0a7f507023a9aed4a5dd0c02aa28716123410db163076358569b5d9b7446a3637418f4f895df433d6c39013b8b1fb3b49ac264e04ea9c9e1164ab696149161d6c2914f4f02bdef4c333aa4ffabbe8c1bfa4b99c0ef2c84dc4d5ffd119b44e197fe4722ea52ac5dc56a9fc41274538a11738a3acbe", + "013f796edebefc2705e98130fd22f7e9b6117cbd61f5f10ef88e16eede95201fc70f41a49f384c3ced76aab98f3500f96690d9b8945410", + "032a469d703712be9a549b93cf3e294478484a6af408247e2e2b988f9b23db74345bd3ce1d464678444a33ff2493b529999fe685ce15199004bcc11919b1f17c77ba6ba7499a826211c20ec770e6454004ff2f5a7841c56a8a6ee3276b37b30d1e650b755b3b6a48493208eb673abab019215294b84d6326be290129f2fe7402a1ee36dec19258f52436cac138a7eed7116fece1a62cc33e998d875d8ffdb1546dc537bd59a2e6e3deb75ebcee47911bd0a6d10ce3a3647c1182d20c4d5977535182da4a413e6da4699a5514ef1f80ccf03487212a972e242656182b97a46dd44ad0e7d64c8fa2efd089532ec6400f728fd3d5b5242ce9b1" + }, + { /* i=5716 cDividendBits=3686 cDivisorBits=3629 */ + "107bfee9aa8a7adb0578488df553bddd9471448d8a0b36598827ca5151a9fa96b90ad46cb3331602ed373720b0e8aab0c63b41d951cbe5e582ebf214545628b4a3a47bfd78c8b33e05d42ebae8072e9245e02f9d03d5325eb0db25a2c95839035b969f62067a820e65fde4e7ffa1393ed26a4ec8496666519c89ab76881cf782898965f117ee4605d43ed448ab32cfd064b58c0f6758e0e6fd2ea39520a40934004a81779b07cb16755779213fc10c99c87e3e481c3a347d4023ca619472f3631e959581d62b4082ea7c69e4144e005796ee8b61728dcb766f55b3ee5af1d6eb9a31f8c10da5c4668113bbeceaff624f2c04ef52442af051c84fc43bbd3e567a2efb30d30a73e7f4e07bce269d35bdaa1dbfe57e4d3ee2ebf5027582e9d0e61df9a6b299ef8af248e496a83ef3c6a86e1b3ecfde98a96f7cc10843c7e2b3ae60213f26d39bd2982b6bccb1ca3b785f609c42c2a19faed90b7c4c38fff9a379745ab763a08ea01d71e682e8344cfe46108bf069f954b82c4c33b08707cb5b0e2f6620104efacbc4b6eac9c55fed629662901cfb288dfa8d7c5d2d32dbfa8506461a85131c71dcda32b0530cb0e9c91e27c5a9cc9a46891d661c69aaabefe56bbccb6b13b070059c5c84f908f826", + "046d22924f44c33e37f9589b82a88e05ce731147792f0839a5dce06fec6f578243d1b52febfffcb00bbc55fe07425bc46aad4e54cd273e25a73dd4f61bf52a5d44f7ab22ebaa59f568d86696e27be49719789dd9399bbf1529dfebd36da78e732d67a87751067b3970eb8da205b9a4825d3be0ee5f133310a770035d45de1c05cfb6d28e768c1e450df614811160dbc6dcfa97097bc0cbcef5076421a90da326b0bb1e838fb97c0e77e5dc24a826696615ae9a7f9048c69805f885961925092971aa142571072205a046a192b915926b6a094a2638be773535af5e69556f97cf0d8d7a6ba4f3ddc65b16410c965036fc66f46bd8b23f673e3534109b61d3df665f25d1ecf9562bb7d736edb0cca6c251a1e806d1958a8b18230128bf989d655dc2e9deb97ee6ca18a558add753432ad8cca0821e4e60d6f63101b04e23529ecfc43feb5a08a47b5c16419feac0315e6eac283a11a0ca4764612a4cd1455a982fe77d66a4fe45d9798f48c30804407529dc3f78081a424faae97e5180ce723b0bc8e290cabc94145ee58e3a105679660347134788804b586e877bee91c79740dff6e6511acf2bf78d704e8359e3a5418da4feac10b1d36cd7f8ac72dc44e5808de6440f34f2a6", + "03b963ae1a845d81", + "1de74f4ff564c9e72f7df68415b8ac2c5be3176a7c9fff26b6becdcabf487c4aaf4d5f1c02bc5a0120ae29b0a8d7ca36497db13603d429a526008bc8edb687c8f5bd10edbf4e14170e6136b15d9edd8b2beee26540c711dff4ffa80510a3db3c51fce241da48fe31731295863afddc405d29dee90e2b65893ed4c84bde82f274b4c83f0a611ff54780c7733bbcf2d34b1984daeb4942bb76fb4a4e31d2fa03b8bdf8d5fc400c62f01bcf6a7a53a7bf01842899ef6d61d97369a0846c28ad9f0628c69c7f41bc817eb2cac82cf4b6dd8bb507bf815b19746c9a4340344ead571a8dee690acc4ff6a02dc4c679bf331f05009bf6b58f57f5575d9240319c44a86b315147a13e125bc6c2ebe324973f92397f12b3b8c6de1ba3131588ae079e6095d4acbdeba75632517df311dc619076f194752ef9ddf5b510568e27c898ade5da1a0659e672c523c2d06b0d2d782fb8aaed201b1efb7aab8c6c4caa7c444b4b226b6c63a8257c98138347cbab9cfda279a486eb4fb829123a68b223f8c85759a8aaccf23bb823abf66dcee47d7fc5ff61608719e3f3d2a480e93d6e9564634b3428649fa4b44ae6840e1acc7f9bb6d481d240a7e7a01ff40aa63bcd7649f10843ed199c6480" + }, + { /* i=5717 cDividendBits=745 cDivisorBits=602 */ + "5ceeade0c3df238260245cef1553e08d5d871ceb385149f78790e264831961d30b50d1c47e633e8952e01e1b44dc96468c42ae26e492013e1f844a27518f33bb8ba94ec5297997b1177d19de8c983d5b1d6cadb9f4a609aee43b5374d5", + "2175cafdfcbc5597275bb9faf0efd500f415641f37df383cd1d16874f45a5c45b3c2ebaeafb39a0e24b090c6480db3a12fcdec17d302569f5a7d6e3b7803b1e59d503594f302616cb742c2", + "02c70409a0fe1a625b58dc266f6a6543935f69", + "0eaf8f67895356ce679c746c84e039114335e891f2cb8d39aaa158e966122031e0b02c6dcb33cd869915bf6881069f1de0b7e5db3befd9419f76ca6ec6b7957d0022ffff067f5886fd1543" + }, + { /* i=5718 cDividendBits=3087 cDivisorBits=2688 */ + "1982e34164068a55d44aa7a2bba0ca637f7dd824b600b3188bce9ee782666de34ba67bf75927ef45623c135360ab7d66d1f701d402e27faed6576388a70059634f711fa435f18e08f0b479faa401b240f07535e93bf773aa830bc28133a682204cbf19e4e7ea40d13077eecb83a6af186b3472c729749b99db9ef6ac312a3e782eb4b7871308980dc5c4ef164e7ce53b07c1d10cd39b4f62653ddfff21323c1449e049939cbaf5444e5600255bef7718cfeeb667ef3a912622b78be18c0a818d188f8a57e263510f8522f3752fa6979c984d89a00a3e23742d3ae0b6eb4c8ce633a7d2ddf40ea20fa1e18a923236d5e789b6657dcda0ab30a8fea41951a2d4e4253a683f8bb5bee0188c6f2f0bc56bbc3589648a39db72c6801ef701cda086b2a08255fcecf223a47b49cafb4932cd2a9f1498e16130f82aaa87b681a712f4d130d2cfbd57c9daeba26d546141f5d9c982fb91baa05b3bfef2e92b781bf10f26d2a773130b34c4bcab560a21671817995ad42dcce32416998235c501ad89bf4949c3", + "66d87efceda8d3f137b6622185d45bae513e2d19170947f1db8bcfe781c5bd41ada24cfadc60593a0f2bfa2369c534e2d879ea78fdc406a5427e857974a323d04f07baa8030622a0fca3ffd9188c772883fdb68fcdab90b81418d473cf39b865b245c54e4de7de0ce8464a73564e38e9cceed3a74577df5a452e8b2735fe0fcf12e2876bbe696e3185f91bc9767942349487ab1eed0e58cdece7b16d6420d0c3596a18fed226bf1b23c14a6bd8652decfe31ecf94f780adc263630587a7a3136478e44237c29b499593a06fb6ba87bfb233c039f6e7b79db5a17b3a9e9334ba407aec2a533e6c53e990cf5bba06d6a30e5acdbb54d9d17c168f73368d741eae6f26c6863c9b977af89338922a9746774adf6953f5c9547463548eff0934db2a3d77682fef4b0ec328eb237cfead7cedba5bb32b2ebb4b5438b2d8cda08ad576ddb4d04710e3064e39a6c280063778a04", + "3f8076dfae1fe36c02c739ead5f6a212961461db3a777ed5f717d6ddacc1707c4a715f04fd8c4b9efa1e4458b640cd8cc0f1", + "392537c8d037b0ba74988d339aec5d8fd3de706aa905d8ab812ab21497ebb9a12df4af359c5b4095271746ad18c3aad5c4a41d7d12eb87a50a6ee66cd39bf8614ba00ab655ade032ffd403a7157ed4319f0b70426ec83339dd02913e355e1bc8db3adc531871bf3ef8e8b9e62df92646eb55bc1dfdf6fd3821edea900f07a4968c367b1c01a5752f0ce1606ca7a84041f78a10415ed095f1caf8ad76fcaa817c896c61853f985e67686b64125e40641b560a7b3c2c5456561ae8659a764ec022b0b266dfe258f75f05764879e61e9db7d8137e494c491e2c9550273fb3ecc61d719dbc393e760ff91c6c1ed66a4e9b1ee7cc7fd620e28e2a1b5175c02c31b41295424abdf4760aa9b967853feb4a8cc71d3ea90bd444ec1b7fbbfbaba84e61bcac627ae318b67400a91384243b4ba424bcc143d563c1d6386c466b1ef5007f2937bda5bde6f477e9bbf142adc60d5bff" + }, + { /* i=5719 cDividendBits=3980 cDivisorBits=1263 */ + "0846f39484195a2699eaa0957811cdfca62ec428014f36692c383dff987acd454255ad9c11768a4017b65a8bf0ee349218ac5511fe2598942049049805df13911407a2d147646c4e1774ad08629fc68588b569a1a53ab4553ba947e476baf3633d04d0dfaeb20364de70af220669b78fd66210175d7ac9f57af24a2efa06cf16e6481a0d0cc1cd335c71239eabeba1bc02c8ab96eb2535d8760bd0fbd27e0e4162c113e5f486fb8afec2792ace31684d6ec8a2892a34f092ae4f0474bdf7f3a67e53f46fd27185c0b2e4ebc6d6a8f12ee988800f7ace115d4d65204cd7297d7e047a1f40ec0d5b4ac232d1a8dbc7d3db7cc72fb4a29a8a2277c8afe9eb215f4035670837c5d4bee780b2626d4c8759f5f604fc139acd0d20985268589b509453af4d473f96cf522049a41180b4caeb27928d82ccdc47e5c5a9d35070764615385d8dddd533b14f17fed6274792c0fe723576facf8fa97a6a267bcf9feb3988e1983f833b2094e44397c6a9a9e0744bc593c27632418a42018b591261fbbe3ce27001cdcc7f36b39b50e18ce53b3e34cf318ad5ec4623490c02130f4103d1b04b3af049308cb81d2d8e92056b176521a4df8878fd6fe41f7edaa8e246636ed72434f2df10e71b45646118fc280ec06be48621b9fbc9c0fcaa36cb222f126089099e352346bcfc44d04a3962251f91374dac08", + "167423920c38b1ffeead825ee24047d6ea0f430b00fa063260e0fe68a8c93d6ee80633e600bc44d11b173d878315c77bb69c6d33105963d8548953cf78838969d3cdd679d88430931ca6fd85dec3816fbbc644b7368cf1ef7785317caa9190fa6ea9ea5bc9792e8cb90acc380a3808778d1fd07ea7943974cbc89cf746daff9360368dd86c702f22e8c92fad9c4e99d3c9e3e1803a148d70ac4131751eb3", + "5e5eb4fcbdd40d68d18de32b5b24df74fc756ea8c90564983dbe1c7e8508a56a4cc0839716f7e4248b27e9aba0df9d8ac2f70eb2514d42a70734f8948a7c60cb3e6e1ffd1031982000f9a65c161c97c5ebe5caa97f788036a8f072815624987a1cebcda91d877e84fdb9dda53f95d65ce1b527dba2bfe1c077fb2f6ddbc8a6ec5091c022ec6f2bf7fbb33be13b556c0b10fd9595cedde9239b756e17bf433d8ad13b758083cee5018ddc8460f437d9b9580cc3446d602f9c76d9a71ba973f72df3d96b810bdd523e21b4d4785b636933933472fb455111d55d87c6d46d3f9602b2c4020184d2b2b06b6afc55b5c49895f2a60c5b21aaec55f6d08611ab171bd7d39a179cb9849bb7579d41432fb4f90b470362b512e981f97301940435581ab764ff42e3d6c8cf79b023f4b22d3e6a3169d05c0e1a5bba8586727938e56dcb36e834c6655c64083249202dcc30ad0604419590bd", + "0cd988557e21c6c4a92584d6335f8c6b88d85425aed5f9fcfefdcfd487997e2670a191881696e66c4ec67844e8ea4e0f0333a74461ef58a05128e4e7a57c3fcae4eca78270a10904624f8e46fb591581f20b281e3cc08d97c158dcdf06350485f417c10fb4120f36d586f965414b44837e5d7d28b9d6441dab8d929285152ff60444816b15f44728dbf772956b9b299db472465f6373f20d14db816251e1" + }, + { /* i=5720 cDividendBits=3380 cDivisorBits=3025 */ + "04e476e5eadef66d3511fb5d737d06b6971422f8b641ee1c31faa969cf7202e55905d984e5a6863daa367d3ae41c6c39119ce7c8b23e9bfc84530638c976e148164a1444a20a3dd81f4c084a8c1a278e132d262b0eafd3c7ea1518ca5218377f4e0b722da4db76ce4c3864bf38a657e6b8447841ba2e9bd27ff3502237670ae2d5ae3a5188ee203f934b1b540f02dc592fc380d9c916820a2e355b9028736decd47351919d130cc55abef26b7e58485f2e9d5f7a2df08b1edf1ff30fc3e2c6badba462d1d3e9f12198b039020c9a7b25f28fabb0ffda67c23e5da3e90696cf77881daa4d141c3db806be60e7da6d8fd020c46c2da620f58a984afb6cafefd9719528a9a4c1f2c5f2f7b1faa7f271d2608b49cb8ea25d4df21a32a8ada199bc8405a8575a5ff682fd31ff46e7d4e36a51a44e19b05c3688da9ca07d1c019bbe287a967f99d7ef3ec5a9121027be8275efd184f76ec533b3c4edaaeb42fd80f7a17160f1980b124af4f80f6f3de99c629ca4357f2c4b3e187f2e2bdc7416a1eadfc3543d9ff217d8e3e5623dca8bba4f2c8b87f31f864e98deb92601aa571335f0c0ca3eb38f3410", + "01d5c2351081e4e0dd6b3ff5d6040d94710e6e46de0922c4431f4b7def326a12f6d25352c1755829bca4ed7b8af8aaac562aedecd8586f6351d347ed21698626813f65577a652b2bb041828332738e988df04994955cfcc5e606dd22970f94d5b32af667ab90c5a535fce37916d22e2835ef9e6a7435a499d904c3fc9f5cf542dfe38d47e0f6c60d01ad0560c2650f795e97bb33c5a8ef890e72c0b998db13b9ec09f1a5e3b618a4529efdbc622ee63c170c61255c70c7ac402a560494dff51e0ab6f6fa95ea0e4a0a3aa19ca15f2766a99e178a6131408df9fb778b5322f2cfcdec246608278bd50045516330f5fcb26ca553dc75bd132f3447a98260be136d2a9c6e0e4a6245b0ef2b069b72580841c4bdc462d9a00b3484769eae3be3560e706ed70d3f8f4e1436849377f0e8133274401cfeae1e3d61e5e6662a0195dd4bfcd09263832bce6bb00edc259b4025418f533df6ec79224000a4792a5fb2354394baa604ef264b2c71300e87fa944bed35c8054f57d69ffef67e9a", + "02aa8b3f455e086f1f851e8ccbc3d271e49a8c425b75ea5a2f1450c0520fbdcd871fd569caa939c2aa97833c1a", + "014d65ff1345f631e68a06e41257470ed6a812472662fa9a11a7ebc41c5dba23189738078720d5ea6c16e90aa46931f345de8ff73fe3d500fce1f623b6b9daee91269cd9ca5d14f689fd55a661abdaa157360d09a268e581a79e174816d1a00f9d0507146e8902edcf1b7a306ba5c496db299007202c8fadb20fed86844ba79c17257b0a600f2d56860ee90bc11f807d1d3c8a90c3ae8b7a5d7fef82c0dfc139025f201fd540721a1fe1696c1dd0fa8d5ed26fb29b04b17a314754dac1aea98bd278c7c8b9ac7a4fd5bb9dc9b1f4453111fdfb80a97078ed9aa8e05ba44d487b9c2014cac535b20a3c775262a2e7ce69bf40d1db5088f8ff9fe9cbcdfb7ce2fd90ab32559090ec0381cc58c7b374dfb6d6a94f9a9b5368b5e0f09c600debe7cb44371c2fafcaf27c3b66187a3e990bcffd7c8b9281397853511e3001e40c1c52538f5e652cc29f6635d71aa795396a11ee77714882c7e0c6d5f9a2766bf3dd638fd758dfea57a5250e9b466c7ea2d88d01c7182259db296a0c406c" + }, + { /* i=5721 cDividendBits=3315 cDivisorBits=1266 */ + "0541995be4fd393896e49d6d6adb284bbfeb6dd3f7ad77fd095c65ced8a8ebbf345c520a8c44fadd1d6fa172438fa78a4f1be9a9d6f4b8c6118fb70900db93a38a0b1ddff6505e43f5f08a4faaaba079b8e2c325a135f82388381286d5d1616416fa00021d5134c133de2d2a8a9e4feb0aaad0a3f5cd881da7ad081de9e518f79f83b80b64362dd52cc2c91504d30c5b3b6991c0ffbf73597a9fe9f6c9c71da6be4a2c9a58fab4b43979bf5a71475ff633ab9ebcccc9cbb7b7f3cadf048a58aed45982411f5f279d33a0b1b622e33430e2b127439daf3dc974f3ee1345d45a159921da1ba4bace1edb329faf9e7f93c2f0a9a014916a76bb69f90a150f5beb9a08b462bf5dc51ae869d27f5c904ac7896f0d540a9af02ea2b2885b7a904ea83653ab02f2209eb62a2bbf9a50d093bcfc9005d91a3c882ee7fc11509bd7784216b0a4a33954a88111b9b80226321cdef52dff3c28184bf48a496772759e53974c32d23796a86524a115ad486f3e8acc21e1d8faf865b6ce286eb3d98a258f22d48835444403e868cab1b210ead63354a48c71e2b5765f8cfb1c5d437e7f53ac", + "0304d22a176f98395493de650719d3598f901c945552e6a555602f85c4a80b0f2e0ef2ea20d8eedcf131854ddf9f3c73031984c5d485a081b0880d754ccee369d88c1f41adb23bc0f18d9c743f0230790558a4b5e4baba2e80d7e8ee8733051640f43eb3235be2e76d45359000a0f712de0975395f913f909eac53fbc91585c58e67a466f452844221670a73b101c96cec85954a1d41af8bb271f86e27914f", + "01bdbc29ddd59c960a85739af10bf5058d810d740b64937f213c9da46114b443a6c3beacb9fbccab628da6f719f3ba60202695a5dfa8f329be75e2f12b36f2e472a2a0dd1f3c341779e38c2fe97b25cab1d896ecb0d533dd7e451fa13c1bbc176f417e8115e5fb5b2fdc4fc3ffc54a02bb6e47afa1cb60396139d66df9d1aba0721381db118c80302d0630a300f51475915276d7ed2d9689905e91233e0b14ecb83f276ee5c55c39afadf8431b96be5ce13d919eee39a082330f7f4c94b9c9cf2b6c16a4e880c51ce05b4d1b52b7d949cae486f706240672c7bc7d3a7664373f7050904d2eb6803841b0cbcd530ba8143b0ed206e74f6ead4d28dcfec6dae60539", + "1a9ca6fe46c0e575dd534ae5fe1faeba50b8466f570d7c6d9139d43b07305575f1588b9466b7925815777339385a642462bd3b33dd7208aef11a3a60bf36fe9954c778f993c173c54eff21910dd5c770266677c8bcace042f985a80d0ad0e830a6a005746d3ecf2bbf550f862cc01a05e34206360f1acf15f9b79104deb038503a4699ca40192be55c2084c48f474f33b22596244673c47bb4685edf6e15" + }, + { /* i=5722 cDividendBits=1537 cDivisorBits=1024 */ + "87511dc6eca7ad75fdc68067d9997f6e7b6005990e05d1ff3a3371b27ae6790f878c3e12fc5bb8006efd3ad592d5b12f80fb7c31656009f4eabb15b95da06e58b3ee62fff6bcf0b8cb527d5a2d0a4aa446e5db659597ab8647fd9fb3690c1083942ebb3e5ac027ca6e742be31ee8715e22db3d934797f0cbd04218a89419abc1fd3b50e1c680cb239f5dd91b6386da913f0c788c06090abf700ec52eecbf2ad78343e8c6e83f4ff528307c24c09e59304120fbd82c510d65c9ad32e084bf3aaa", + "2a5f99ad2c700ccfdd54309a78194767ba6e3bc9908266f2f9b786fa20251c0b57767164c8d1593de693f249cc54aa0f1ea6bdb5b3061acbdf8a7bf4ee2be986f1251412e0ebb210a4ff6e87f4057336b65e1992e3658c60e50944208dcf5a3008e1b6dd0bd861d4bff0216d2dac5b98d5db9933dc570a686921f345f3b1c9f4", + "0331850405949d2f2cd67ff23eafff967727db12f28fad3a298a91059704bcdf43297c973cf4ae8ee06056b39dbaa23edf3f62e7126be0ef7e38b6e3ab13022621", + "0f6f60783b9e288f13b63e2c4e941349fb85a9dfe914ef37fb3f956660a4a3a88e3af8680f058d9fdfb5b3cf288d201ae583b338819ca67aa60032827df2a69b37a45c7b4bf548157a8b7a4679741744698989ddd7d7146857e273bca7443ae8bc119c059704395e1d45c924246fd06dfbb1b19bd0f40187b941195306f1fa36" + }, + { /* i=5723 cDividendBits=1403 cDivisorBits=93 */ + "048afa5b284d1615d526739275eba246d7440fc3e4edcb527553b0c99e3eb3c1e46475f5d5f704fd17b4cd68b7e59afc67b8a7ef6695710ee99fb2e8ae8b1b3a83ecf8dc70f5a79bfdb0bd97dea66985318af9b60c6a85cd43fe9a2eb63963edff49ec02e353a963637a92f6fccd62ac8fcf1187b869b49099f065f4f56b911253c2ab3b315a093f6a8c8e1908d96973b5f55fa426256596266b2f69dd23e885524a18e1c54c5c81f3f6a30d97601c01", + "12d85e796c0498f801f4e9b9", + "3db651c6517d9f6d610154e49896c3ac6afd4c6bdaa63fede48583009e32a393664eca9c9748379e3e26605ca1776ecdf18e0d7bad0e54c42e2c05d9f7fe0496777aae906c15ddadcbfaeeb1bc6cd4a32e2d5cef76e81f28ce099f84769208c99c72153b3820d91fb12a183dbffbf9ef6b4af43c012a6c81a274c97d36b78b174567c9ed77971269a9d94168c116bafbb19369fcca848b3903292d681e667e50e460b729", + "0965034a29d9e61ecab36e60" + }, + { /* i=5724 cDividendBits=3724 cDivisorBits=2220 */ + "06b4e126d015512f7a1581b5b1dfb8ff9dade716f59a606c4cf9e63c567c6f5386b8b23ece364c488841e5d09d4c00522564bde39dfc2c3f90645849e98d7a75b991c14b09aa29c857a0887ae78591345bfe8f251c888578056898e313286255ff902b5ab69c13f0ff9461678ccf7465de80e7b55e3dc9a66690ec08cc55893e2f69a1142d6c9c480d276db78daaaf04e25a3ccd6a6f0a3c286ad3aba0c4e5f29f61add7536f0189dd43c0118157bdc053e53cf90beea4568ed6fd5f703aef44a2fddd50a3d73852aad791fe9074a5bdc85045b61c407dcc70b3c613e38a9764e05fbe58f9f352965b667ab23197c7090e92a44a7c17590f4e18482f1c7d32d6a8b97ec274b688f4bc4eeed5207ac906563ff992a5dcfa39a171b11f170c0ba587a17889eeb13e8c5c1776675b42391b2719aa042d788d02b2a1b3a19b400094373e0274044c66bef85f46226361856b36f47c25c10fa56e3f737fd0a3700e6e4b7f746ca3f938eb49a8f046b1ceb34442102d56b7600ecaeb28b209cdf0413d0ebb85b6c6a84ca872b30c760295a7f1cd950316387905e3da345821c26039cb9008291bad2d17e9aec94c49dc112b0cef374b79f3ad826ef396a6cf6f65d96ea256f9b42ae5685baf1b4339c1a59385a0f5", + "03d2b631434e90e33ed76375705ca557e987de905183b2c125cb064307ea5b8bada7f7a9d48c0e5966db67330350233e059cd4833c4302c6f2ca822ea0c8e8929ec68b7d527fde8a8ede24a6cbebea31284df3dda6d0f9a3b7352915872b4873a90149b134953bf27d7f8ad4673f402fe7a20645cf7ca2183719e58307b1ffd50738b4a8abc2d920944e63da4843b66f9b05c05b94085af937a891d71c210fa1a655adabe2760226c5f78a31f126b416d5758156bcdd15c67d4cb4c541f3d9694e35cb49502ca95c88bc71f4160e1eabc830171e337e6cf24199c2847edda1f8ccbd3988f0b3ff4a7a2acd586daa5c08c2e3142a35196d4a718648ce3e5990d83a9bc264d3c28f5d819e8ed32b8487c126a359b3cf12", + "01c114d258dcd25b14fcb5b5cbc5bb87b6f9c910b1f5f2b51ec0bed8cb95649c1019e749b0697a76d4730817f9bf04050a5475766f954cc5a8e011de709c734bc5151a9f847438f96bd53315f2d8a613db547f7de97263056fbc895dbfe8cf3dde4995dcd28bb1b7936edd04d4479b4ba06bfaf2e335b9ed887ddeec1b1956daa7640990a093edc812e87414c6a2ac250d0240003f6d320429761b90a02800cd81802ea3ddcec047d6cb84a8aca0b628de118ab13b8147dc2a6471d173", + "b453cfce57d782f20fe1c0794d5be0b70945f83edf02816a9c6432c26a321501e9be1ae4adfeb02e11eb8ceb201c15ce48d581be1397a778809ae05f42c726ae71cee0f36ece7320759062e9482c67edaaeb54882e0b4d83af61497fae1f13670e601928ead183799f69cc6d853404f9f1232b3a6e84cbdf09c009b05abcb2c0cb85dfd0f72a580d7738a414837f039252f79019eabb8d38007380a972ab17800ddb5439b96840d14b7521de1cd379eefc59ce2324c34a5062dcfda3794e7c29cbeef45f152433028a3abc38104099f5e036537457d1749f4372fc738ed1e9465e414a0b1d127256b9d1da3ea5ec14542744428072a79c726e22c98c8b4091a6ec0cc585a177916c73c3ba3123fc53c3d30cbfe9df" + }, + { /* i=5725 cDividendBits=2155 cDivisorBits=1519 */ + "0748354ae2098ffe67d3847abbe292e24cdc69cc1f7e99d8df0e4c6e32f969bd6cf249c788a5cc04ece881e57b517957ec46bfde524d4238f33bd0d15cae832cbe7bb17e04042194437d23f7717cb7e6bed6e49365485621f45ae032d761ce1f35e40a8a1ae3abfcf69a3e7519df10b3cbcd77668cb2ce77d5edba2e4399e2ae8ade3c97e0be883b27594302f64188cfe42ba34e926733785c4ad706852ec7c978a78b7436d46ce2e1d76be0caa74f224d00d8f5f6033e3d240088f6572a3273574501c3fa46e236b48d3b421f205b2cf076d1235947277eef5ba5f6f80f3450ff3661e676cea16a7306e03017c2d386963bd9b9fbb5cc2c0437c721cb7b1304226dc17425c4061410aaa945dc51", + "7f321c482e42f8382d75c61a34ce047eddc83950e85cc21baee5e2f132ac111ec48d92249f85d87d340806c656089036e1a8b118cd345bcee6de7c232b18cdca62cecd3d1c417307f6619e2504395872444d707f87b55e8b243d06707912eea40988a955cdab13242f432d397988077d8b48ff48bf67eab847af4f406317c56bdf0040cf3f8ab5639c4675acd9e5634d312400599bc1db93e075f9e0980e1e37489f17a97f7403f5a973eb6eb352abc83f909e71f1ca5168f7d35de27165", + "0ea7fdb5102ecfb7f68329dc10ce41e78fa72d3d603618d686c9cb4fce60efef57ab4e2fec4721cc752490f98ecd4f394a92cc09007c45e18faaa71c65ea58b0f11223ce94a6fe0a83bbd143035f44ba", + "6432e9c09bf5674ecc6a2b7fd0841d0faedf02d6425b0d262cd449cc4670c980a8dfdccebcab7530a929e6c27e47126576f0ea1a78e2d123b2ff278727da60fa17d616d0979c4e62d05356cc439cc3583cfc6b421b192089c2269ee8ee78ff72b25bcc177ab3a19dfb63c84b33ec9fca620a2720f0ad781a85d0f35c582a92d061a95095d6eb6580d4e6dc775e1dc519129506ea30f8110ee9c7723f8529b0d69494878cc575b2f13a17c72c45845c4d862bd152c5f097d43b5d0925a4ef" + }, + { /* i=5726 cDividendBits=2044 cDivisorBits=968 */ + "080d63d822d2915b87843b461df7db09b32eb3b6fd7fdff007e5dd8e187a0ed4917e30b68143e1a20acc32ab250f47bdcd8cd532fe61555f3f185a3632b4dd1bb15db195c6427471ea79f66d3a9253621e0ef5ea43c99957795745f10b0c45570c4611a99594d8b04fd480fee73544e438fb6505097d315ef9b7b92331920c4536a61c80fb812df65a4a75317b72cde1e93ea18f6896d79f7be76762700ecefef584e72bfe96b4e6a4e641b0a03f69ff3ce39b224c0a9e0027cdde32e24f74b52cc2afa8472c41e37920d57762168270b163f00905b4a5d975113491fbebcbd24fef2de3ea4d87d4070979dc21fa523b5eb797db0b44ca6d50bc46f50dd7ce31", + "0cb71933b6e57d6ac6b06c5bf677a5f9125ab1dd1a69567cdc9bafaa8795e467603f18dc21203c41dc6c3ff0082a946f74b13a0c035058ec62faa394827f9af59058ff69aae72da8f9275ffe319d02da00d53dc45f3747052932b99fcdce6ed3bd31a2c2a33edef92f379ae7c6ea45e218c52806ad4cbf58b1", + "a21ea9e9371e1c9123f0e66c75951206c71ea57b6ff6ab26aed68743ece5a3be8c440b2972f9e0e17670050f972963e16fa306fa7271cb4c007fc2260a4c368687be3a271023176bff33f3323ff814aaa72067522da9ed0b06d67b7acef196490b780e95f5bcfece57bc1705c70d0f62307340dafda6b61f33f27e5105c4f5b97a91afb47da610", + "e7a0a782715d62ed770980227554237e9e5fd412e58df5c62ef922fdb2d317cbf82d8776ebe3bbb143ada1dfe5ad8e573f889ac044db3958a37fa90278715aee981d4c2bde69d3cf6edf1c8e366f92cbff2cf17949b88657750167093f2e4676e7903be19ee38c29fb690961b8e4372ee7ee96926bf27d21" + }, + { /* i=5727 cDividendBits=2026 cDivisorBits=1886 */ + "01d29138bd258827f678e8676510e5f81f522482c2a1c9b01ac66cc8cdf31bd7ec9c5367267bdbe8cd5e0113d4d6ece57fa99923ae8983ca39b9a6abe1f4bdd0e25414e84c2f6abe8c6b78aa8a6c506a7f82747849f87ce489d3b8432e5ac55cee8d1ef9e372e146d6d4b61159b4bc75849e24df8d0fac3cc7b378d0833a994c9003f8728bbc75fc49f90fad5a9318eb87f257f42e1dcb94d1af5c9bc43d019d3be77e9a1b50bf587f6a4693961c0d0c50e3bdc4a8edd8c6778c07bb0a76c171a711e9ed2d2e61808b9ac4b697c5b7d812c07aca95012f9e95f7cd73776af20006cc1c2de5ccf4cfd2e19b606957a6ab8b84f112f969c89af84dc9c67d94", + "3a5cab835cbb72c8513adcb5372dea9a57797707b5571a4b0b61cddecd134f421cacc8fc76ee2429fb8e8d8347f7c70fb35c75c88fa4f6c1c9cea9666939a715a315329e9b874a5527d29bc5706ea8b51a39cb7ab7cc5fa8fc9d463048c945d415340ca965e0169e0ae05ac84cf497283b167f0fbf7df9b286ef78cd498237640ec0c5814600654002fc2fba2d8ac264428d1eb34f64a8c498e2228fcca6806fac1059cf8790742ef36f8e155c1e22f622c4c7e1e479d145e9cfb50b8007fabe93081fb119d442a26243290db7304be1f2c6962044bee8cab8787e25245fba04bf73190290b3f526fc32d3a6", + "07fe8eef5ed89cfccaac9eaaf6b7b741e44a", + "23e549094078605fb63017d8d5621f88cfe7e5940b43d240dacbdc1b899297929829c4b120dec848a1c3832daafc2f8ccade39b9c306a26358b22e4c701db2d873699bd484a2fc6704de21df7400940c213436f0d575144e9f1080faac9a017b73aff0b0b9b376db7ffe1570d982d53ece8121e1f7e7ce1ad39c6e539bfdd626e0966a6983e3daa0d73f39c2a16e315813a74d4382dc9ef6b61a85a89b38f93223d929cc9855c884a779989eedf38b6acc7aabc51aead27c0612069379d937e4a08839f05a686205b008c6a7b9a43f82844a65f0a5d853ae062439352df4eb94a21e56bb711e348e376f7798" + }, + { /* i=5728 cDividendBits=2773 cDivisorBits=1321 */ + "6a0c69385387f34154f645dab479df1c89d88fda6ccbe472d85463917d3b86e7878c666a8f430ad24e4c763c57569208d6d7ecdc32bf75143b4158f3775d655a1ca4ca33f7e50d699f611e1600a8031e90e1b30342eef9d1f3e88e3516cf7effeea6e4a614b90b42bdff38c059ab4856a6b32efdc64a909abcd34c6fd16d08a5b1968e2cc6e2ff4a30b0ffd3dc09f74b9c21f03b9e9f56e8aa7fa4285fe0f990a9afdb992795bbb77b2579f5434a64988657ad6c186c4fcb8dacba0fac2208664ec99d2fef88a2ee18fddcaec763309bb82cb15472010e342aad7ba45008d1e72c801412ac1fbf9590cd3a783992f4b85d0d34d3908bc736d89c50e82296a2d39efcf2b24a66d146b14b71fc620520d44166fc58743160281070725d94d8abe841e110e32456922ef566d2ff209edc0541611747625de0c2b522144b0c207525aec9f1e6c415231bfeab7d110d905ecf2498a548b83f46d75d0b", + "0151a21261735b5b9f0ded1128abf2d550020d02441141d81c1ff8600eeb1172416340370899c8bca50edb7338e6f4b9e48f5c09817e6fb1c662901026021d62436c9de2fd4e1336406ee2976d984636e2a39c75dea77f7a3c6c2035a1991d7a60620d7d7e27d53255128b5d39c213553bf163db9d517c465e39ac29cd49ce294a07f643b6aa14c6a0a381bd212701939fcd7ebefb92b9960d06b4ca5bf5f63744424a4b975d", + "5068747d14cbc426fa8e2a70bfef038f6c4e3d9c5d30ab0ce18875423f6b858a7bdc5c2d0e98568a8699ddf53cd8afda1dafb19fb12d2159d0c4255facde21e8a55a18262512f0edb87be6c388fdab7a634ec299e103802fbb89b6be9efc3f61a8a1c4353533cc1b206c89ac723fff51b2d8f6d15ed66f2f29bd32de4a37f427b6f7ca349eec1909b26ad01ff4dbec2872a84e31513a292ad34052a5986bb048709920a44e74f32b10b46c4b25d6e10f0a8946c604", + "3d0efdc722dc6a9a383fa634db72f967d7c96df0fe74ec84bdb7b5784bfaa959a6c94ccf0e8aca1ba17ff779de4a813e107a55024400d4a72a0bd9ae58ab933e434ab267e227636dff23e218e6772752a59aafab8a152b181fe81e1a853042d01579074220dd85a0ae3c6a1f470a01dfb77cb46910f1ec160e0cef7412b0202a0c0c02a86a9957e266cf197428df432c22d1419ef6b02777efdd786853ce2e40717e291197" + }, + { /* i=5729 cDividendBits=3810 cDivisorBits=2822 */ + "01ed305acf6f6a430834159d5f9560fdf681a1ef9666abc5ad2556c5bddb1adff22ede541c08fef837122fead8223a6bf09688144554d21c29e6aec1931393ecc9e980f9919485f3521561a348757abb3cb0840c43459453166dd690b003473354206c2de0d67e5acb6b25e5776906a89f63233c41654e9ba011058a46eae4af7c10d7d2f92c29172d358729adaf5d13716ecd7f9b4c52507bbe47f466f50c80c2c57b8c911c270e5d8bc1d0085abf2deb43b6f2911c172915cd7015a1c416ed70af8f92103ac40b56da302e6d1cad7184d53d13899be270b70f1694e4ac535de22d36a3143475e8ec1fd5de9c3ef06120848fc53a4cbd79df87afd7d676e9b352b24764a7b7a3ce83789119ceb95ea37d291a5763fefa8f70541910477e29049f0530be28ffb94aa157edf85ea734f12f4b163a45e15f9aadb114e2cbdbc278d0d4e75ee58bf62a38f9ca67506ea544c02b165505c5b5ccbb4d070ede808879fa9975c75f1498be9528c23e80e8f9caca35d6eabc4e3a9c438e746759919f69ceae4b25375b7c23156c74c6c7ae136be54f971d1ead70e3dcce24e14d02a9cab5d0a5066735a193e7ee63abcdf4c242e7b7330c8b98cdcbef99fd8d314b14354a2105178eb94c50a78cbe47f183069554ae75276dc440cbd46ea7a8c4", + "37728fad699b13ffd524760cce1024e3cbdc35c0c52d8dd9f530f458e54a14b94e3708fe51e3c9edc4deb0aeeb336fe5a06883969a7f3d67e91e345a5e074f60b77e101de2ef5d8829f8b007024a4a64e9077d9bad6d4fc13c8decf824c0df895e8ac83cbc102a04e437cf6ed5e6254f40ed8062c728dcbfcd4959b6127e1dd35e1162d876579a982284adbd895cd05ec8ef12fbf33e7e9f16a6061fbac6167389d50d7cfcae4cd997a9a8917a8dfd9630ddf8c8c6fbc53e825e368ef67114cde95dc4686142ddc0bb816c20c9c69d6215386b89f6682823d7d62516fc02f6ace3a6c460f1a2bf7b598201afd2bcbfae5cca190ad6808644f5b0a505b9254b46d251ad8a6c4687f6145e64b3b1aefcfbfc576a3b20feeff82a6891529c98ffc0ba52130c4d2965f014a3c909e23fb36d6b8a5652e56b4fe6ebc8b908e827c898494b20262290a0f264f057218da7d050feaf7aa1601a5748503d81eafee27b7b54", + "08e50b045c903585c9877f39fc7a9c522b128a873775d6d9113279e6bdd8495eeea522226b6aa5a1f7628c87fd22318b29d7d944d3f6d0da3686a429a0b59e49f1378759124824d7bc25721d9b77627a9697a48844ffdf118f3b2c44ea417fe62967fb0d3660b28d105b302be6c94281d5e719b3e68132e0e0193ea6", + "29a8b3d6cd6cf8d109600c5e0866f74070c2991c9fa3f8a95f0815460145338d0b4a8d80f7a4ffe829931c2682c6bb030b69546efb5eb19580583240a933b06b83e51d8c84d6a68f9a66ea1c674415037174fb44e3395a743ba6a7e7c8867f39772e3ccc074d60583d7551251bc8b715ae30984d5552f1af6a27c2829d3e1989454c44fa42096bb293ccd376ca6f45b0de19bbb571dcac5b40bce7f92b8cdacd33b7d3932c824a1dce1c85793b28a571e5e6fdc608ffbf36ec8c883e37e2242f221cf8a11db7175d1e17ff0f0f39b41342fbdadf5b0336db6bb9c51ad7a2714e34aaf47b5c2e48d798af20ea43799325d8413916d29cd7916dce472092ae9579035a67ec76bca0a7b9d29c8811c48502dd68d17f29da3692ad113efebdffade1a2fc8598f9822ac50d23cd6d2a0d962305a5de6119670c28abddf5540796837d66d79e3b4ade108160c6facbc621aa9f5f799af250fd043d2c8a92343b1f83584c" + }, + { /* i=5730 cDividendBits=2587 cDivisorBits=115 */ + "0105c576f62e333b011a57c3fab7fe6f3203d438e7b3e33e08c531806524958ef0a77805f4e8d60b4cf3541dd41ec43d629d6c52b089427a63b74ba264d38d3a156744798fc519435b40dfc3a017c857fe91d022e72f2771dc3b063c7129fa43c54c1af2e4b7b25f761693ac6c9bfbfe2db460c1449a2094ac93576f4704fab5481a12a054d77d514896c3bfb7d45814369a6cd099ec7137494a4eb0bfed4aa0fbbd86be8eee28c088dfad98bc0459da03cceae5d2f7e0de9609a371e7a55bbcc08d9cf0e6a664a85e96037f3a775e03a379d9d347f58333a749ee184be4a2243331a7315c69deddcb1e84ec6d23e9992f1ab186360bcda20f7f073c2b8d2274348854f48dbef0769fdb0c953286efdb26700d080007d846c92d05ab8386a80864aef88574bb108a24365c3c7f6c1b1efc5d950f604fc5dc52277a9edfeb0c8730ae4e71", + "04fca8996fe8fd36b6262e95443856", + "347dc59c2a317ac8d1e63bbba329c11e26ccbc61950a51041d2c3b016e56f1a8c3ccca1142b22ed1c401031eaecea292f83e69e752372e27cbf12e3853c88342a4a74b8aead18f3e65596f9751c9eea5fdb56d116eb60506bb0f8d63f127897cb5a740a4dd7e6c2df87a8a97d6a578259702d1ca1706041f04398568352cfa4832363e69d03194426c04dc2ae06a3a41ea281bafca8d17daa739b487b2782f324b51894d8d7a5c49ed53b7a904cb0e32107c02c4dbcae21be18f9db7851e7ff7afb4e90b7cccc6960fd3ed9eeb5c49d3716d2e7f7320aeeed594c2fc7539990762d5d821091fe44619a92d26cfccfbadd0db73e2489733e4527913f641cf0c544ba4e2929d3708d4bcd698961e03550b75a03295bceb03864c48f277210cc7cadb36e0bf1292867a5cb834911dff4130f1268a68f5", + "04b74445877a2ebd31d5357d257423" + }, + { /* i=5731 cDividendBits=2691 cDivisorBits=1586 */ + "09aaa1bad3aefc44b3fcdbc1b453e3c8dc0c0b0cee378c5a4332431b389607dc01a1048b6155ed74917a6b7abc2b6145c5f5abb5905aba3ccf984efe7831b25e4e2e1aae3b3c8608b4072f493f2fc52acca07dad69d65e7b353c7d308bee22234decb94211348e156cf9d730a6d7e54f7a79ac450340d559d34eedb0ff3c4c037660512e1a17026a216cf9fd929b3ce83f81229596c50b691c4f4543e59ad1d49ca520d2a05e5e5a226c09c25cff241b08e2d4c5d058514f54bbd9f3c6f30ed324270811d15431af032ae3d6cf64215e252abe5e44a0a6de279d65eaeef10397574ff487f8e524d0a0d7c5db89e05dcc4c54e993f789927659bdd7bdbd4a798ca2f05d0504d989d2fe7c502eadb754ec7620378ec25939c946644e82303c6f8b5ae647201fe5c9ca213e2918ea70f38e1a15f669268268e002f9376aa9f3a6d2c8a980db71140e30ce9232fb274f92c3", + "01fb58dc64d6ebad3e379e7a86a320d11f16ccfe4effe669049d1af7cd4611cb728f18ff21c6ebe88c05878641b3cc5d59e6f07e64d89e25172bfa1a4229deb139f36eebcfd1dfb0e2952b26ac5a5acdf4beb5c71deda88e0b22f4e53735a44fe138207ffe231fe02ccfa48810b61c837cce5a00d6ad76557ff3f039e648cd675c28dcc88150937efcb89a72aa1f3e554033fdeea40d6f31709399c1b766270c79d145099dae9b72a8b8188cd07f4fee175b101bec2ff8c50d59581bea8e2a09b0fc5b270149a2", + "04e0a9cf41778a159b83fc9416c4b6afdebe751718dd84357f594d3f6d2a863e95464e256cb5a20a859b724d6d41222cf320583908d33a392471b49858aa2ed243d8594ce3285c6b9855f0d2d54a566358122d1a0a65206d00016afef0d53b05c76b3d149e05b74d1a87a32600ba3eb8c022ee93fef8bf240ae12653b0f530ab4f09b67168c97ea72202", + "013c58c82245635b232507282d8a10e40f30d97b828ad69f71ef424e45b19bbb298bf6cfe46e8504d957a1d1c5a0c4b9c283dca562f8141c3912f09aa4202f2a43b0600f008c91e50e2c37f4353450cfc6fb1f5278d85027f9ca4337d814a636c4d8e225f0d16dfa1a544a7424717b53e9e730142dd819f33a26760d3dbfa5eac1c999a6bec1af87638d8bec820789b9e4ed560e46b69d0e817c48e2ad21ee1545b1e7663b3472ee97943d8717631f5f8a81a30fed691d3a6f810e9bbf0be2ea946acfe8d77b7f" + }, + { /* i=5732 cDividendBits=1114 cDivisorBits=675 */ + "03d224a759f3f77dfd38e990e250aff3cf6e22524051c81a2ff1e2ce21766e6b4bbf8f971206750d1ea1da6a1967365beb212fb99f05b75bfe6b6528f0d4c592361f5746db8a38e63cbf39b67db7443fef25ca5251695efb8425045f18fc9776471e1b0082fbf0771f8c4a9bb729fccd679104d4bc4cac5d29b953454c69369dcdd50186795f74139a74d586", + "07136988c506ab1295ec9791ce197674710959b6e80797460e3e342fc6f746d1a3ad0f324796a53a50c2c09a75d9a7b87580f434407e750db1f31d6dcc0bd287506efaf97a403bb2c151fc614cadc727840770499e", + "8a3cbca7a3a496c2c5353c458aca9e81aa7277e0663575e44afbae3825da2bec4f6627aec4241f36b2b85aafebce2055eb67fba60118dc", + "02fa16e1f005bc594dab7775dd88a315b09cdcc1a9ea80fee3d8d73d1d2448c611b7bbf16c31a19399e040b54767acb30dd91d47fb6b84b1c6f4670a031bf5b51da8a818c76585633e16b110392f6d86d3f170c1be" + }, + { /* i=5733 cDividendBits=2246 cDivisorBits=1420 */ + "16a9c462675ae5d5e0fdc1ba0a23a8a4cc53f0b3513880cc97b1df6dd1378bcd5f5eec8840966f5a9f538dc622c3515c871fe5c22bd43848f8290f028675f214acb32a54931dbebcc9b3b3a69b8dc32d6b143aa23361e1d1a3dc415b799ae5d6ed3991bc7a577750f4fdf1da843d8fccf78b4b2d75bc3c79a46a0dcde8adfc0051ae6fdff03127c0926f8677ae6d159cfde373a117a5df31bfa69cfdb98e5b8e0cfd76389c841965d363dd5462e1d7f2a79272e79697502ac718ba3e9a03ddb9f432161041d8e415acf8d554213b7fb5c5cfc14b3d728d6162a9d93924e4a26a2be82a244da02d19b96f686034f6cb8ea638a344b9151f85a93c95d66876931033615421c064fa24696a345f66c7736fc3336a4d1ac9cc78ec", + "0a5df9f10e200927dd8ae28dc949cab26650077a3040bcfaa3e51204247e8d830a6837f55ca555bda2f2d474498dd8ffa4813392c03dca522452697a03ad22bc6b11f7b33a5fb8d024b80f2c525e9852d5d54396e8a31cfcc7977e72dbc365468757af8851e697415ddec0562779bfdbd157665f8f7d69c65cf1cf6c1f17308af2a7f455e2746e6a1a74e5a37d5cf6eed487407110cd7f7b20e0628b7ba9a0977f68333a8e658e384cc8f89aba6acc1d393f", + "022fa2038e794d1fe668e8ea013f8121b2714466295254f96e917194c60a3173f81fcd20964ffa5e52aaf9688353d767fd88a9a8ce62a60b16fc27e44fd30207fc5f4a54e21c138a75a0976e512cb147c8058d19754c193bd3a52db486d6df216184fb41b33ec714", + "07af57f999a3ef08cb31d1b4c2d32fa60a7fd508aab52a9a091aa447c49e663800e8fb8190437752b196532d9d9684a6facff1404103ee0285569772dcf355399f6ff5826939fe4d254114ae3dcc194426f873215b6ce2bf723dbff37e139fc4e91a2cf47eb64d21c062a0cca48c84063331c3e253c6c873401ed7906291d57d4e8864a404f59af76cdd69a5d906219b25cfad7621588541ec08737dc7e66d60d6744dd4d422c51831ddcfcc8bfe35c20700" + }, + { /* i=5734 cDividendBits=4005 cDivisorBits=2304 */ + "10c3c837ab2d35bd8c07e1b97d3c9e32c721a55ef03c90957d217eab3c6a8f5426f4b5ff718195b8d00b1d6fb7ad7d63c7a4503fd929a490def2c19b760680bba2b52c92581916554a4df294238e089601b34ea56307127b2d449e4135c1f960e1b4df78100c25c130f72ef0685e3820de0c87a302d93b0c53ff572c58928b5e6f6124092c0ffc06638f16d8b54db37ccd32fc4226dffd6f23cba221893cfd28a607b8dad80532448edc16729a1b3f5f3618450dab7859422abd526509ec0cc0aff8c33cbc0da6c3dffd97ad9c3be1be978813c4a98095489fe660e1b37ce8bf651116d9885f7c8d2a8790ec2aafac7a6e397bd010b87efd45d7760dd01158d4c6598debd7f16d13e5465ecb6a9252a41ec3448b033b5e8033accd284569b8d02c167e18e0e3a104320cab411cf1979b83a54c2cc79e172851130c3280cec49747b02d5ab0c203ef1d80961e03d4622d7183b3f8bc2e6917054aad393856cc30c7631753e220a6c009b509beff66417a32d981ceb1bc9fbaa98a3ea1ca18bee5a90b1853237c1462d34f189cf033570cc20f7c1867fe11da7dfa37d226a5f09776b51928c2b760269c4cf66746d1e702967e2dfe3eac9cade9120f9661a25fd0b324b7aeef3c6dadac79e91e0b14d60e787db724f539d63ff5393342ad504fa520f469ce2f71a20c482cc508d7f3d70cf7bbf76fb6", + "23648c7582db7787b0917b084d3d4ea4c17c077839475f38c370fecc204961f43c9f28310671dedc02ab6b25522430403efcfc6992a3b9e271ac26ae56ea044bedbfd491bd13c780bcc781a4143803659d0bc7bf2eb9d2e20aac54f24aa8b5350923d7165edb941f5444aff09043b6f388431df28ea36485ac99982bd63015f20ff0c1fe5039787bbe91b228a361c9d4c61b5d139bdf3bb72e9ac9e7bf17231be3a429889021a2d799932162fb8794a9d440752a7dcb46f74d6832c65304babdf60e1117ccffcb2524ec7d04416dceae7f7c12b9016a3dcb09d0043aededd86acbb58edf82d9361164b3341333e6893aff989a0659820a868d7869298db5bdcd933fd9a038dc4d6b7b1d3c3b291fb716456736f08f8ec41543ba462ce1bb9967", + "7942f53ed39ab2c06f94860439ad53af90595a8cb5ee5dd2c8945719e05b2d814ff5e32e3feab4b5bf5bbb730134c2a002e158308381ac4847bd040d5a3ae84c87a32dec7d8d500ef8e73400cf0e05d9eaf5b07852214a2f6633a7628bdac50b69cffe547196f51214e060722b6934b377721408540a008b286abbd6486dd2424b50f331599b6f66ae0124ba9d6930a1c6a232eb33830bc67a407b2ed8317c8af53bc6afeebe572a23ffb0de5819568bafcf7dca436b3842790ee282f1530601c35d994ee4a9d4aa72dda5b488658aa0f18e8fbd47", + "128fab76a70b9e7f0c464a9bb8662f9167fcffc37dea9567431155e8fc0a68afaab638fc834d70bdb000eac9217716fb38b4e1951530ccfec891b82aa52f47ec66a4beffc44d2524a348d6f14a49b53ba4e76834b36cfa909f77067a4398e0b48dbddd8babc7d93faabfaaee5b7bfa5a3822513c48728c6c93ca6e93b6b1f9ed7d4ed97fd729cff34688b91e073b68c8c20fc23f40fe1a36f35644b20b0b2af3ef84d42cb18a2d8ddaa6cd0ef699e80f76f3649565b6cbc1c39e67a62d47693533bb261bb8016cc0021ab6f0602e180861bf6aa6dd54f2e7c79d5095c9b63d4ff17de8f77febdab925e3fb9592e637434d77e515a84a823578b328623bcc8153986080993801433b70a23250d9af5c53577ff3d84c95114377148304ce25d925" + }, + { /* i=5735 cDividendBits=1205 cDivisorBits=760 */ + "018cbff529abd66d5af831191cbda30d20b7c665bd4621d70288cbd1199ef8bd787ab49e3461b853b905678780619dbcf964a6c4ae19c316c2dbcf06ed8c644a9db6335d475435d1472f51986f3017ed91482567fc64c7c755a8e51386ada2f2a61f70b59941705fb4ae3bb1dc4d9137041ec27c2710ed8e25da94696d210998dada812f18eb7ea8a2f8828c4d1f34960cff7ca6bf5cca", + "1060d88ee4ff7b99aa6a1f32ff9f7d125a497e915aa091b2aad7beb1f7ba5f9e60b5e16c144710a0a252e80d8edb13e10df32bc02224e26627e4cef80b1ad653fbc3b2d4b6f2a8f4c3b54484b32ea658a035af5f6e0668342519a76372e2dd", + "18395f386ae10e88727078bc92eae31ca5cc9defc683c68d1ea1ac79b4d729c494b78bd1306452f72a9441568d5587f4f65fe8c8f54e1fa4", + "0774b6d3f70f8d01c6763768093cad790c281aad06382bc6f68e98540686b9066e1b49f348ddcc7449e4eca014954a6f8dd6fda499b08ed3388399a4060f4f52ce6222ae1e4167cc4fbc58a7169ae88afe2e8a42f5311b4fa3866f67574436" + }, + { /* i=5736 cDividendBits=2185 cDivisorBits=1517 */ + "af68f0169d3c83b129ff85f27c9abb1d26a298b0341f42a03f6c0a2ea45d3cccbb67bf84866b99da2ce7ea1f9e08868af9bf671672fe1fa8070cfe1ac48c8b2a9966aa6ebf660fe39a2f3b92a68138af10313118c9b922854a69b84ea578fd3424325f531835f1278860c4b1b66a783e8bebdf99774ec5e45de47212b44d4e755f988d7ab1e8ba90841de61b0e63d59cd7735f22d5fa3fd0b72b01c288e2717dc179a9632f5865036b8a8c219e384ca6a4ba5ae41755fae93aee57a8bebe1e460a0dd4a2ac89e80783151457d4b108802cb531185f111b30d390686d31decacfab48196e30552efe3c7ae1654deec9fb752b777990de7d900757a9117f6ac58ca532c4638c37f7026329241c8cd1d0464a", + "03445eb5775dda2b1c06d991bc91e51c4ee32a0a875c9081cd8d2c74d75b2e18ecbf34be776cc9a2c437f3841b611abd18e9ce866dab775a623e1b7f4226c9e2cbd1437fc187f3e3dbf68dc0392dc172cb87bb93a60da78d061b37f577056f168da5aee4faf8e0c378d0331e18a7f49b8df34d564416c8d490406af94f9705b24515c12ea6e21ebd105506638853a51969401def6e46fac13f4c111cf5389e93e244813eaea835c56057ed2673dee4b75b81bcab7842a8ad80bf147f8c3d", + "35b0b63eb08c27f8e524d952bf2e82dcba0de5aa57f82a656b096f5eaae122218f7ac145ce609a42fe911ddfdd48f0b47290af2d1f822a35f5037940a8c3f0264c1626620bb04ba480876d28ecf9730b8c852014", + "0208385f85d623a4e7cd295955003aabe26a28309c3c94e6ce5f641f66b0c7b7e555e92b86cf2704a6b284ba52fda463b96c4735bb5d220a6eec538c558de84c9311bb88309333c7f216f7e63e401af170cf29bfd0e6136d5292df1461af9d00b4871f304ec315284f650485da3da4e1b5ae12e6f4893e296a3eefb1b1ac61971a2d6e363100f82eadea6a46037927cb1c10a6a45c10b0b6362547349419647f1b805d9adc9a850cacaf65cf17c72a0555d994cefd411833567b0ea0b186" + }, + { /* i=5737 cDividendBits=699 cDivisorBits=613 */ + "0672a546b1af876664e56ef72f431de4b3dffd6cf88159c0ea128153df738d6c2bf8fe1cd9433cd897cb94804397dec27dcdc1a47d73c8dd2c35b8d6d217eaa466c4fde3b5092538108ea8ec61ce2db7d9423e75f73796ca", + "707cb85e6de940f936372c9de238f8fb44d88d76dadc99485efb093ac416129517fe16391e0bfc11da4b27c74c5cf98c2426e439ed8de516f1064861052629ddf03ed527fa4a890b0ae5e7e6", + "0eac9047b15c0af812e37816", + "01438bb518cc107abfab38b56c406ce0ec5b835ebf0205fa7b33365f60ef62116d7adebd375d5f869f01577368f83c69db7a8bb4bb2bf0dcb2d457e38b92ed2577a42f5c349ed36c75cfd906" + }, + { /* i=5738 cDividendBits=2133 cDivisorBits=162 */ + "074cacb302f8e1d2d115f30516a99dd2400e5eb96b583d70740ba05d53b544d67be7250cac251ae101accddfa7b8b459707b60a0fe5da7a2a2ec88f6e6fd1f06dfa7c99603fba33267671c78475c1708c3fed8e0b6c85a70a6dd721562e6c9efe0c21dea7b3583f90c2d2fe22f5050661f4faa917429fc971e7c97cd3f0e31dd459ee81d9b5e8ac1d0bce0250322d4e660b26c7ad813a0abb25063616f58858b96ecb979e06f07114e723d51cd535558708e5585f8864de9957cdee2c764a55f7c791483fc4c74716ae39229e505d01aedb454cf780a375924da7ca345a3db981841124679c519f851c08033eecd6a8372254a9a515015072c0059bf20bb37b43c69bd7da850c56828ae56", + "0354370eedd593d6149673b9de6b1163f1721edb86", + "02315686d10ec6626ca4eb09a36a6db88f3f49a8a1f6b26931ac08f669c80905664b726e802bce11bb724a89eb3cec614c7f19f305e06b549130cfba6f04054e3e743def69178228e28cc7aae9e390a45a28a71e5a5687423c1460a0d6a0f7ce223b12fac82d5c75edf6690627d58089e3b1ef64c5a6d195a0e1eba8f5c96feb64f59faffa3b9695969c2cb60668c8f1c4ed3241b8cec0a45eb8a9f389d08f00f8be137ced297eb64d15393f6cdd21424fbc0ee72957532e72bee09df0c3643f146f308cc8c5d01bec7338624ed36a2a7c4753bf5d359b5e5cb87d93d37bffb81d342c0642039ba7e650062179e29053c9591247246a32", + "02cade054e3e53bc92c8aac85fcd9331b74e64522a" + }, + { /* i=5739 cDividendBits=2347 cDivisorBits=2091 */ + "0747bd7f4a74eb19e3724118aecb5d7aad334ca8a63dc29ca13ed7763555936c6e33bcbcb871f09da48a07cd65e67d84287f44746b11a44159d67528e3e5ed371a87cc832d4080e45a1e378407d298a91e26879a5f99695b4a4aa0dccec9221e09f092c605abd6a9bb9000cdca0dfbe32a92c59b5a791f12dc5a4839b1261874d27dcaee8e77c1eb67a2516507ba61aed9a2edb2d17581091d1f0a77fecc4e485239c43df55990ed33ec9110c0370c0e408904470de893f54095d5306d057b8aa7a15b0122dfca7efb2d815b40f7a4eb9d6933b3a16c92f2b92db091c14108f242a5615c408a3658624e7022521c207ca4f1747e03e8fb5d0beaa1d62b2c69a6b43ec8d5f583fd64b8fe0cd5e91837a8c07121ba5baf19a367ce5a671efa71fa96ec05495486", + "03081bb9d3448e39a121aa1c7b978864d20c7ed518672dcbf99dcf502c20ee96036c9719b0926ab327f0949e12fed10cd140743b051c7423b66de15cfd19596cbb37d5e3a91bb845d51f841d9447b215e0a2b3272a6131e766644fc46520d56ffe5d21460c61899bae4029554f9c51048222b67aefa8384879f26a179a30feb54659a35646638861b89424c3443de16df9badac4f2cb9406388ec0889931e2df4b82fdae778d6842e22309da314325a3c5c52bdc0fdf80495e28aaf84f1dd44a718422ba4cb8dff4eaced6cd016fd8d3f7088b789dd96d745de9247d768c98c20593c96ef09537a146885266147b843f1629761a5e2b977d58b7c227b0cc5251eacb5767e4b7", + "0266c19f37e2e2d51119cb4d8033d7758c729e52e5ae2ed4c2f4899a1cc315d5b0", + "0104660a5bdda5ed206ef34f5d26549c15332310443c6a8af631b34d00dea4725420a6de645af4774ebf8153edbbf4713b085a45cbbb456a760bdf73794fec291681949538ebee2de5f242c8c1911cbc231fe9cbeac8ccc2d29f5101f4f4a897ddb6853be86d37b1eb522aab7df824ccaa1e0f785f60098092fd96ad35f7eece8fba4524df1eb6738d4f55d5753794a48706d3e0791e47c3539ba851d77f5b05d0b8d4ed99e1c3eda1f7732530f5d6d96c187fa6ef98ef7a7fc78ec0699d03ebfd5bf9110cb847d99edf195d85b315de013d412e22c0b0e4dad59354ff038cc57623c0ab0edc1840ffaab6f5dcc466bf2f2da9b4b7e8339320353632bf5aaa2992a5548cd3b6" + }, + { /* i=5740 cDividendBits=4042 cDivisorBits=3837 */ + "02d238cfe642bdf1aa43db9ebd7145b4a91c78990eeda612d1dc5e6152b4999c484644fc864eb37b02d14c111d5c4422bd22926446cf923ac19f5c855a5afeaa1ace674162b0e6612f3e2f30660f2dcfd0c900f85f5bd3a4074e9f1cd5289873e87468c12cf650a5c122df588c9d1e3559ef380e554bf1021a13afe0dbc8c76727df4d12cf502e0e4887ffc2813c7caffd61ddbf034a1daa6e70642d57aec54e21597cd0676fc6aa77558318ed995cda5fbb4d4aca9ad775175d95849830a8b6bb8ac3266fe05deb89ecb1c6287ad23128932f7d1a277bf5d1841c9a61b32c3fdd0483960aba935c7b4f0efe875672668593645c730746c603c0bc8f27671cf4d5b3d07765eb5fbab01b58bb6fc38944f45d123e851486779b6868bf34bc5462f575a070065e3da0a0946807fde845298292796fb4d8f2992d667f02f61e9faf7257439c0bdffa1ffff43d150309df47f38210844f27b336d88ee140393181ef9330165b6033dfbced4f0f8af9fc175269b834d173ac0255a3d793e7e9490addbd0c84d362fd6f0134da8d4b4ba32cbf321f6f3f2a61d2c57c7476d40b9848f8002603cc1684d0fa4b7433da3000590a8892bc75be394a283fc9a746036f358f66860f51ac7cd4736bf343aa6a3c08d318da20968fbcb3d020f3ead8381a65897e8347987b99994c86486b24e8482f2b7029d5ab5d776fab5928", + "04f5a8d00f86a03caab8042f20cfda172e60236b06c1416a3a32512ba29143f3189811f46e817eb0f6f047a00ef69564384c50d50c9eaa542e0061412bce42450a21dca837d625d0552c0662429e7598ed33b8620419fa46ce58707c8ef48bb0de6c37710009aebea1b66b2ba46091b05ee25cd89a21983e98a493b1c22ca074378640a62041c681bbdc84710f63eb58df3cd35f01550e5f6d25b31c6d43da437d456cc40ebcff7e66a9862675f39657d4b69ab35432736f4dcc3d0e383884adcee09e750e48dd92838fc8653bb2cd60f34b430b9c2918c1fa2aa767d464479f062a9780d5ad5a166022c02bae7ccb8785bc5c67a9ee0620d00140de6c320b36bd7377109d35e30f2582128f8b2dc001954ac0fa0b73c489c9fb8338ebe000af080f4991c61a7a3857d62db2380ea8ce5a88fce29896d351ca6f8d81424d30e3c396542df64d3689c10386b09b5f0b7fca41fb1e73a477b6c0d67eefc664872b8bd22c7f1e12233ddc633e1ebd700337e5afca52845c8cae653f528a8daac348a994516c40267b1a7030c8ff74adaf79494fd0e0b6d5699dd8f8bbdeba784bca4188f126f602efd79500fc5b4eddf4c9ef1cb8cb735e3348de42b51b6a6a79aedaa4cd4501c2f0618489fd8c47761731a448d91c46c1c460ce4a9bff2cb20a1d", + "919eec4811772c7cf75096a4ec8f97a7ca30934fce9ca12b7ef1", + "028cda39942065329dcbd37f9eae6c87e468393ddd104ce40fd9e547399e537eb7929ccfbed23fcd07c25250f31ae6d7758c0a1b35b02f846da8f02d79defb51ec32319c9f17d372bb1f840ea9783795973b762e3cbec52504fd5d595dbcbc0dee79744d9c6d3429542a69eb7551c2a400168fcde73341b58957aa467de1a62457fecf31516bf93d9694eb5185474bb63895895c4011c29f7718d3cebb0fd8ec5066d3809a3625a0237050b80c3f4f755016d3dfd9edca497ea0bf69b903e4d0d3194f8996a60294b558ef4b0382d80da17b7d99143649e56456a72e2ca4cebb4c90427fc3ae577c06fe4ca1e1f73c916e9d33bd7259990845ba4dfe7a2d9e14e530bc670da3ca7829bab594c05c649b15f7c047f176a095fd4e3ccbeb4b0fa92ae2723f8ac014fd696433698eb02b5da8096d43d4c8d0e94f3dbe5a1f6f0446d6253733a5ceee50cd35dc2a26aaf807aac600b239f4cd02ced094c7d1bf5a10a70a9cfa90174ca477ee687caf1e8af81809ba1644018486fbd99c69ab5f729bd78c7e93441351f93bc098aab1292b25bc2f910b552803d5098a09c8179205f51b07b889caeb142df22ad10202e520e4c71091d82a3150e1f57ed2e4bf79a5c9e984d89eb364b23a3818c234a7e56ec907c4a1c65b6b2534f319f04ecb368ddb" + }, + { /* i=5741 cDividendBits=1243 cDivisorBits=494 */ + "6ff301e89bd8d1ed355bf7a0814157e1d1370ddf151d0919fbe0abc6ee15864e4486b2f570d15607766b96e1967ea870b2c3b8f5e1eb595888251755384bb09f626d89da2b3d7496e9ab9422027f8c707aa9c7ba039bab70d9c9adf4230b5398f7d6bfca6308178433b8c35cea123be3a7f33a49261f5aa5a3959afef2f4ca66b7c49c14963f00359d7268c05888211fd886c1fc68396d558d9f12", + "13692835663eb54d76d4aaff63730bf95d17794581d6dbc18f949d0573fd252dd97c6094713595b86e88611682d08df717490deaa5cba495160ff7104b3e", + "05c472e38b8163c71410cb05995c5d532df2b1a2ec4d358b020ef8a5e94051624be735804d1486d01d79e8ac679514d9833607d270aa8fb2e7092670821fd44ba333150fd28c0daaeb3fd0ebfc2760cd857d382b66c755ef43584d8f7432", + "3c11c25132e81a0b01589c424c9700b8994724a77059bfe86b46ba293f752993dc646f67f26808da977b10f4d8579e8fb4fa9d11f422e2ae5004a4d4f6" + }, + { /* i=5742 cDividendBits=902 cDivisorBits=19 */ + "2947c88b21e8679d60f6d2a443f48e6959918d03c90ad30b3215b77b178e2808f71a8ab95b52636a1429f1c30fb907c08dd5c2e89495c1ec39377977d2586e0dc27583832d89bb28d1b66c7bdd679d1acb5760ff020b63f31faca68c48e17e5c74eee1fec2490503b2c1b5c358e1f90b22", + "01d66b", + "1676f477427bfa71219864313b936bbc16d9df4adea3473e5244440e8388cffcbffab78541b3b4745f9aae5b9b7866a220b826185304ef09f97d621383ea5f5eb807f307f396d50898081abdec6761fc19959da9fffe9472f82afd0c43f385c2c004b2ac2992de9256ed244ce52bad", + "2bd3" + }, + { /* i=5743 cDividendBits=3443 cDivisorBits=2249 */ + "06fccd5e8b97b11689dcb9c9098ade7c12c5afd1aba442b1dea930feccccdf90f60ab30196b40c09f4827d64617fd3d10340ec17ac0745aa00bc11c934646755de01ffa0e6cc05f53c19363a695f727de49e097067c45fcf487b61e26391175f9ae9e47dc239604a81462409550b3e5ebce34806aea1ca5ba7dcb275fce2e7eca64b103c6dd5cd8e4fedebfc427d9c40f463a35c31d7ebeef74f36e195956de673def0c7be6c831f1a31d0de4748d59116533c5e62b19798cdbbded9b1008ef3b0fe1369f3824261af6e065f4695cfc1a90bb348f121a3b38f841ace241d20c37cb493f09207263a442f8a958b0505f5d676651f51895a8b2a2f1e4b45f46858c55740a6d1f91e59ad8dfa3c3f11e374e766181839bdec10c4ac6af630b55dac9c2bfded3d192363b74eca4d384b5b7eac155df89e97557b2ab20830663e062f5605bf5dd5e66e72eeb63a6bef99c62ce695a67edc0acc3a6febee40bfafbdb0e0c5344d44be21d12295afb6134a09a8c7ec5f92182f56e700d3ffd2389e0fa1b36762ba4c59021c5b9fe135fce6cb299318ce2cd6ef62d6655edb0fd8c98ada602103af7eff0fccb7b0ef5b3d82bd", + "01b5e5483708c437007cf57e7becabff1deb5d26a3aaa854b72d4319f9213aece0ad233882f33831543a23a6fde8f006069a6a2a2bd00f1eb3af32f1d88a296308e5dbd826340da9853e56e2a987382c20cd1d9820226bc2f24d72d9abeaf457b3867f4673e29bcaa0a1e761feb055a103860c72779b7ccd4334b1e4f3df6c631efe8206afa149f3bc27c725521e7865a6206014f1b5b49297acac5616b3666820aabd95fcfbdea621ca384fabd07bbe9f9f9db991e2423aa95aad02dca8ff25482300f49b5c15e5148812fc5052169ffd53976e862ea0cd800e029f12a0ce810c8f48fbd2d785972eba1a101e794890589a0f43849e53329ba2e7e840168872a74f64b9bd6445381cf39e22c792b560ca1149918f33d43b53cb", + "0415c25848242ec7a22138c965ee2f230b35e19a8b4f24c10cca002149221691c14afc5447b0beb0a0208313d5e768174240b5cd9c628f9f46dbb70695393fa3b26516b96a042850a0afa67375ae5ac71a9597664041d797cf140d8aa62b055a77044ec687be2aa9842a2a468d4f62ac43faf1e3a4b4fee45ecd492b3122380e87a8365371732d5fa8ff3c03643b65a4c3589eb94b1f", + "45277e257732951a59559b192f926750c2e501b72a0f11211f416fdfb6f3379ee26807bb2c932b9975628288b4b91f24bb52eda960dabdd7d1384352681d0b58841849a030463773355fd72ea31d85dfca677341f549332885897c0da0be1c9be86d45de108b4bd50241920ed246e32b195183f3f5ec8d003eb5ae8419f2bfb9e6528490e9a2a0609fc225170a5ae3745a26ab3cccf3a5f2fccd407343014f2a138fd77a2adf91b10899bbc7b335eae6806996a8199ad31f1a4409035d67584a6963ca814351ae7f04a0aea854f092655bee612c21bca49ebd5109a31a57dcbc31790d29e06c95a0bbd78640fcbfe8fbbc4242380493b421540ebdeaea9587f4c61879a9dcc6c10a41a530a855abd7c783db6dbf1c6ecee428" + }, + { /* i=5744 cDividendBits=493 cDivisorBits=167 */ + "0d083ffe8ce4e0c066f66ab8d7879fe4481673e01967ebddd484aa54cf27504ca61b5c0cf20f67c89dd5805a3fb74ba2cf0b9c5ebdc850c27c48283913cd", + "7b355bab3f41f125bdc7624c8c95f771df2edaae65", + "1b13fe3fe14a83fdf0d82210443da0042564967d1e38f4a8bc11f00b0ca7261dfc7078fb9d4840e3e2", + "1af6db4c6b734ee0937adc02c430ebdc0be1478fa3" + }, + { /* i=5745 cDividendBits=2894 cDivisorBits=2394 */ + "1013761f4976f67317f4e291daf6a8ddb46039d2439f1562a963e396c1833997b84df6389f94c8dc0e34c3b96d5b4b6ce1ad84f05947518db10098a582c2308923fb9f961288f66819080a3f86adfa8a90ef90be6fcab6d2a3d65e1f027f18677cf929db3d71c1c7ee3d524bd694aaa2c352294ec6f22bb8ac23a4015ee28a2ca89f4842d73b9a172d4e4e83ce48fe0d9dceb01a7fc0cb44357f2c51d0d2dce9e79020b7c6f5a35289549c383d14477013ae13eaa770379445f84f8198f135611c7f88f6bfae279fe4213cbbcec0c920c64c444b67a6201f45d453bf6628126bca77d83ff1ec1a7d6860de8bbb6f51ac85722bb5e7a0da33bc9f8ade59d4e4fe80fb32af268b79e8156e988e85d94da777c949f24246b2623999a57df757c9916e01507b6965bef5866d0bbf7ef1dd3b2e7acf21c31add65d65bcbf092c1b10a6d0864ca95030e9c148c2833c7b429d81a329bb5b0e7231acb80475f0907b3763e3695b1e4c51649b9db", + "035bc3698fcc68bfe12150f148b51aaf7208c1d8546039dd81d7be5802e3b7dbfecd0e200c0b1722c903de69d793d21359ac129a880d139e1671ee7f023fe752c11ed70f2dc257de65aa2914a5c1cc253e65a8b87ea6f82189faba3b3af2857e03efd50dc79b829609369019a9c5e48700fe419db8782b97481abc58d3fb89f3c3dd7e715b90630f8eaf1f24213fd7010b53c45d7cfa390e1772acf7a1f7f2a27c86f08cc15bb19cccf9135bbd83ef98aa33be25964ade2050e563984a6753ee774cbf34a536387f9454c7ea2c56e7ba9d9aeaae2bb573b3b139018d51a21b3238bc3f952b4c20badf9e06eef9f3f15fc26cdb051adf1ff8627df4c5d4b1c1bfceeb249d309a4e6c369a2947fb6a6114ca4b7a638a61747c26a1b0a579cd3fa4fa2ff811e851cb59ff99a22f", + "04c967a1d74701b0b13fcf094392403bd03648496ad5b0c34ca21e0efc4ecb4914e2c4cecae12fcd15f2d479f320b61bde794b0db2010ed434d62575faf17e", + "022b4256bd48a8c70c1d69c2e268ea4c5b8654d78ae119ec8ed00852621d2cb5427bdaab1a7102573e1756470b914e322985d728850b3ab0658a8c0cc48989301f138f357c26d785171a121c05c3345b5bae8cb676c40f546d9dd8e9c63b0b77374d2e97b38513187b686f7150036fb757fa6a7117ae41344c371c6272c9960755332e7eedcc21f0f2e23010e83cc2c942ccc4f3c4a20f32a9199b8b37c9597f98633fd79f2327786e302604e238a04870d92f2de8a2a933ba8c2008e914aac5c566743af828dcf33b16ffe67a5069b7512a8485a3ba791269c6445bc47422de9d4f6e1acfe58a55e71c4abf3c97785b24bae951a67c6cadc958641229b718047bb2c663fb8d22a40b087b09080225be5121b68eba3dbdf0235d31b0fd66ad86712d351e48f786e6ca17a7b9" + }, + { /* i=5746 cDividendBits=2757 cDivisorBits=1540 */ + "08b0020b8c374edd8f5336a1dbaf8ab2d8ba01fcd27562bbd55fcfe076e070a9a73e259975310087d3ea0011b4eabf573edb0da35be117ca3bffecd4942f47603f54dc32284ea463bca91e6dbf9a095428298c9c875b59dcf4ae6962e6bf9ae7245f7bf210936a25c1a8035ca910d00375cd564c1121834bb6d15c9913531073e23ffff95bf3db8d4421e70bbca5f0293dd585b11baa126e1f0764cd7c488b67dcfaae509605d070676b5739be62b522046e0c3296ededb8c4c899956bdf29ff91ef8f3682127ca844a7198a062a70132a3b9a9f23ffe41e0663130a47230c4c240c25b1facd6e5f72d8cbc86487066cfdfa86ad090f771c728fb9d2027a3ed5628e6aff5b433eee3bc3c1977f526d26e1d7ecab97ed4985c1240ed3f8173d23dfe3972d1f2ae1f559145bfe571b846c1b67202cb79b74325009884d156217818c8c9d4df3268edfec0ddc6bd56446e3090ab5068af052260b", + "423b5e99f02e7ca6cf200ed96d34523760e59f20bf708c78b63eb85fdd8608e66b30353aa314d70fac4f1bb74a171a4e61930887794004ced35482d4d0fb629062c9231f72386372c88676d37ae36de48d53780f8d82cfa2989915276976617d13a345e64a19a29d0a1bc5f7329eee8957086ca410d793374f8659d52ba421238058a26b5b2213b5746ff202d777db2a829f2e9d37276ddbebdb6cada453808b5db67343568574d6df3bb52d1d26027448ee5bc85d4ae9a7133e4ff34406d953", + "21943fe1bc9dd32c483bbcc944e46fb6b51342fe586ec295928fc2662f72b78e9308c60cc2b93eb37388e49d68bfe060949fe275f383c8b42fd4730724b2d0302b440c2f40bd23b192a44526477cd41361b2b00dc13fcbb2a5b170fe0f2fa1438fb70a5d324f23a1c89c194d3acc5a02b33737bb326f5b00d376aa42e2cb3e53ad960172f6834d7c5aa5a922e71e0d9ea256257356fe7b67d0", + "2f9e98a2a3217842c5194bb34e1a11c97c30c5659ca6acf5f338e1c3519eec3af9ac2603a4f4f6c1c011df76ced5beb9375572b18d2f92a5bfeae51bfd28db9ece0a0f642085e591eb2fb6ec63ddeaaf596e7ccbb0208351f46f61281859f060f83393c248c1c0a6af9ebd0452582cebcf0b14d039d86ddbd77c02bbc5c011191a4c414f491e73fcf1f31b7c5f0b4a481692db944a77ad19a4956be793f28cd7c556530675604c363437b3b877936e83a5c1b468a57eba7a559c6ab824702d9b" + }, + { /* i=5747 cDividendBits=3512 cDivisorBits=2458 */ + "97be1ded1c0ff42204a4309a86c9172fefba4dfd73ea05082f743ffca087ca077508b48caa2679653c3705766747bcf6d80d15888ef610feb7151c7af9acbc37d4a19a2913c6486503d03839572ba8a9299fae0d020f610b7eb335cea44a4abf79334ad810a9e534386360c8431e6565045b42b8e476e67b86258209c4e40641c7544bd1c9d3dc9d43e2e155d329898a41b42296d3dbd94f26d06fcf29c387789e96b243ead18e75a0601e7db23759e7c8641506215fce4fb0160d78f728395addaace3ac61dfbd6091ebca90dadfb3446ca106c38fdbd097aba31c405b22934210fae91f98a75ce8e4be9b897d8b27ff2bce65b9a7aee75c8b74c4cd7190a4c4c3920bd6ea8308d0d059f2e6d62455d4f7365030c773bbe9c95f4b2ea1fc24a9f2ad6cb3573364df3239cb3874d5d1bd963ad5008926ff9a89c4f78fdf304a5df8315e4db86738d762b51d4aa0205e506ce3a244cb75d3b49286e949f49385529625e9396f8955a0c3f264047326d789fc6a0937fabadb711eaa1c4f88d762d47d0d83b17c13545e6f6e26050b9130fb65697af85bae5c330c663db038a58afd205d6a679447b6b6c40b3c4a47d03e37ad23ad04993cd", + "01e9e6da2fc882db5a45f5dbe3aff08ddeb46c78054398b0ea9127bca1f8a4e5a68f1229b97c34c4bbc06c914f63429b4c9fa6d4d06943f373c75e06c2ff365d134c3e57c22bbfac71257afb0215ae5b2761d4e23eeb232669408ad38a786e7a476b8e299e7f7cedce6d05a879ba99810523b627728168087afead3aac4d261543c366e50377dc34ed315a31c218e92abe349ab202003c24a25897f432122696ef28958f2e42e54d47957d1b4c42ae5639c9a3172c8ab3f6f491e40b17035581d76fc4140c00c377044f17c3a3e7245c3d8f8ff9a89d95847e3e15d669a15e59970bad941238fe53909acd7a472d67f370dded4584104db761833a3085e10a341a4ef88c0df0a15306d61fae063cfc143bdebd805b4c58cf0569078aa48ee43b0742cd92f760aab3a79943daca3f0c27c5a95265", + "4f4b2f02a4c649fd7f42ce081628b9bd2a539a66cbddab5dda7547f7a8555124b9681e2aa04157e45f767240506c4cc820e050352dc23be3b674a8460a0be09a05dc1c71c8b9cc7ae7538791e3bd75e3824b7562b723712ee5e50c72b2b2543cd7dbab31a891380ae36d20fad5d716be5c8d7505c73001f376b9e8a54a5baa0482d0a871", + "5742d33337cfd64690fd038f0f2f6bd64464cd1267e0964660a6aa7b15cd9461f9c755b2a799c0e7ffcf437966cf76ceeaf50a7b096fe2645163464a0750ac9999e6c60e812779d913fdc37fe3201cc829a22d4f3932ebb2d2ee4de3428e065b38c976cea23c2db05e583324a27be00fccd11e6659549839596d5dcf0ea994822b070923126d837f1140c7bcb1fbe470d8b44e65296b624ba6954b8b3f21b35bea16f92e1a233db495ffd1b63239ae74fbf06c192a67cc8d5998a342532c905c4e108f710baf6deb105d7071630bef7738d94d9ceb0f4f54bea2c4106f8d64023f54a5f80d541d1002b681f94d1144f4d71fb8996e3d489f7c5883436d665030c283ebd54d9d8827772d6a408c2c34d2599a6a1fec5dc10116356de4a547ac21aac6153f7a29ce2ede2b5527b869f73669ed38" + }, + { /* i=5748 cDividendBits=1947 cDivisorBits=1322 */ + "03b5b3bd6baef71f9d320b62e0124c9468c381785398a5e91ad68e1f4c093130284d15858097284419b158e000805376c5b4bd5ab3e2fec4ad47652dddcbe684026c290a8daa03ad3a44773f9b4c0a654f311257ee9f065650206f59dfc89d24101570a904309977042fb429f85a3ba9f91f7ee59b4d5d57f413583cd83bf722a13ba5ddda94125954417078dcff08ead5cc33b03d2b3da9497bcf135424654927fcbf4356fba7a426a72bb63663f7ff01ee38cc8b0c7837fe78bf70ad4243ed61c8b1641a15bfcdaf1f2e612f60ac72d3ce15325f53c0082465a01223e64c0c05f1418723d5db3b9a2f87bc9c5dd9955725cfec", + "6982bbc2df1e5d74fd2ad666154cac76f0f2d3aeb422f6897a8b0c598168e5be12c6118a02c1d5542e4b3e1f7a1943c33fd037be778c577edbb939280a0d4324fe8544360cb6ab8e14246fc413cd9c3c1c026d52666b0a1ab9e0e0932da64ed1302b08caa8c3ad9f06486b1f012b0c863e14ba35c5dbcca891cd87ab56311a4d26021390d0a0bd69d8940e5209065bcdca2795e7de2321ea506101b7e77b25027baf7d64b8", + "090041d8da0678da247c66a352515e0fa6c3977d2cd5d1c8fd50489de9d15943b2a3952b4006eda36168ee761e44a1394a4051b7473b7db1c50822a04687953ab8a526f193c4621e68730140a4bfac", + "046dd5b0ccebb06f0e24204ec34e12dc163c6ab72ac2c138666ed5094d3f53bad16a9782b8ee3f39a1a9ae3a84c4e349aa309977ecf4b55aacfe82482e8784468b1b227900c4ab05d0d4d9dfe1b9b22a210eaf92ce0550f13387db02f144b1f8de0b16aac8e8314bb301fec4a63771edff0479d56bfca86b4892c9f32f376507eecb66ed5f2a0cb2f6681069c86381538bcf41a6a0c050ce629ce62181410e14525ae0dc4c" + }, + { /* i=5749 cDividendBits=2763 cDivisorBits=2541 */ + "05e4d4e8fc4a717701ec2ba5d3da53452f8524f1a57e70e8be1dd3aa727e434b652011bbd4e724df71fcecff0908f02e56f40041718085d7287131db4a519074b831a93e8d959c31b6519050359c867aead741703598c33b55fa04ef9b64378ee3d70184c62fbf012b2a18db5d1748cf4bb5c61d3bd06bef27efea056208a89507322dffddd74b07c60c284c5fde5e4f18607750267c7f735b12144e390ca11c085b7d47551275c7afba752b8247be218b48697a80344085bcec6273940ca2017f03d1bf6c8253d6f04a7dfeb042f283630f7e145a06f519215b74dc0d5e73d16bf1136489f372ef276215ca8454308cee72c83c73820c933cef3b04c060cec456f9daaf0e31856875558204c828f5303a6c52adf1cbcc0635f79cf1f453645ca2da2360e294d1cf87392a9b7f1ffd7a5f0be4dfa346a707735ca208be0f74ea60f13a9f4c8572dba79c72c58b4642c7887940f11418dbe8a9fa", + "0975c353c2422206eb3fc7c62e459dd0fc7eca10cb6761e16b30bc087a5e45f1f4bd769098867404575abe6fcc00dfbef7d2608b936d2aff478f7915018632a4d776923e77b6ddc3163adc1bab5123cd79983ee9810c28438ec5e242c440f3effa05277cc7a2cc50b92ee44f72d7984196832421cc2ac481e778f9ff8071435cc22241aca776576374ca92b39069f534ee8ca38fef66d3b040b45986ae486d4c37cdc0de58391928b4f5b4b2723f98aa8586c11e38da7f1b92d0c4fe86aa2a0f8e7eadafaabbf2512d72857c8af32613fe1bcca363d48d9c34e960d6cb1b8eeda3c7a03fead3f8106adb79d4bca04bb40dbee66281333841b3d4a457323d9ebd83629290c762668a4a5282557c7cef25ceab59b191806c5871461733a538143fb298ee629f534203a0a04f2e8ce26309a3867ef0996b1571992d7b51f7c2", + "9f7ee998b5aa196c422a6c2796863dc7a6ba9c08eab14314f81bdc03", + "07e6563db9d6d7cb1db90a5450bcea2a935ff16f6088833e6315bac0abd4e1071a30aefeec1f637a2d6f5de091031dfba542be5e58c10873c820bffbab8be4f6334e443e2a05e95ab621f1ad1bea0c6735b806e94f120cf46b18aece173dce175d93256b9cb4390751d50042a6ef33ac93efebaee8b8ac1adb8d20e41421cd80d3515945805cbbdbaac1f124cba5b3c7c6f05ea090bdd26969f85f6b0e0a80a2a30db87a3320c01ed97f92aa2b25c23fb99c8c2284cf24bf72250f64e9b54bd0d1a63ef09cbc4c73c1738515fcc832964e0e004d1a026c23b472c9c55946f9711f15925d714abd9f166f385fd09aaebf574e4024fe90ee5caae2d711440b31c289f62aef62b7b8945de61bb8803a392a1f8be7480ef62647db7b46ddd2d9f17bc71f2beb986e92656eed006ca374312dd47d976c61637254a7c4e7920ab4" + }, + { /* i=5750 cDividendBits=2580 cDivisorBits=1430 */ + "0fa666db363d2dfc926627bc14fbdca7ceb30a8158d3d53cbd6419341597e4151282400eee27e1b7af7eedfb8db373cc57ed08e08405ec8428cf856a2427679625be209010c903b8fb2b179179b490f8244d4113d3e86445bc00d50189a0cd38d0890fb54126d221d2175c3823ad8b60b3c7d6fc3ae4698d47c753260d592953285351deb088e7019169b01e4e9a473d9fb29c0b03b1a841decbb7e8b6b28a89ae4a79064afccb96a5a4e314b14a42f50845e048eee7afe34513552b57e07e8f1130cd99db3a2445305057a07e67c5025643270aa0c609eefc9d3804151521d0ac5a46b02ebda32369374511633e35c010090939fe45dc8b973c678c5eadffb31066b822541ea9582f1464f84d722d7dbd38a573413f210a81decd241b680f3494f4311b0b87be054d83a3e40779c7d10a4f466a1f0096f10cd57e4042210d74e4863f", + "2f2766bd2c3250f3c29629e18d6d0f1f58d8b257d801603fc35163d20f1ff4f1936a58f475c7290fcf56769ecd8d66d9b0f79d87d8f63dc5da3659f7537b45c8b8f7e24831523600df0100230864d2a2e2ecc4dd0fcd78bf970b53b9f5088bc6481b091b77f4d5724d4126aca2ff9f9912870d43d37afa2ac1c24ccc2f5c5b460e6acb1fac8881bcb42e0ed9e944019e5edfe2768b1bb02b786062e887c07cd207c58fb20466ee3bc87e18dc21adb4f9233896", + "54f6e0203c6fd1835b0833c2cab16fe1e7c4fb9f0b20ee61554a0d151dd6146a2f1c382db6e188e43aa4aadf4424ebf01495f59d9c30788e1f50dce690e1e7a7e586202fb1211a7195739e5fe225a3eda24d1800d55eaecfc1e0abdb63921f9b99f3b2092c00a7d1afbe3eca4f9abf4a59260673936aac79e44921ba2cfd65868b45882bd6546db667f6d95a06349e6c", + "0c7b168d211ee9bc4e133990d5ee1f7bea528f5c8571a3d41dadfc4f42ca148e406d5229e2f071e09c637dda4f98fa63f28f8f5dbf4c12f21b353813dbb6fb215cc369a67b255ca5beecea656184c1b01bc3e4c428a15e1667fb843d5c5ace8cdcf01d60a9195f8370dd32964723b92c3b114fa4dfb90f64510ec5a78236f4a51cfa22dc65d7a6774d24682e9e40e5d77cc628ad765d384f39c7c5ee4b6a26db4bc3819728482008daa52be6c0adb99aa412f7" + }, + { /* i=5751 cDividendBits=2246 cDivisorBits=406 */ + "18d4ced3510fe3bf4115af65ffb62a81f287494e0f7c36b0d6c85a88cde6f0c6f0e635c13d7b02b31dbfda713a6546303d90a61560f54d46d18db93e8cb04122b16d033812803ece2cb667feb4a871ef7d789fca80a5e9b62bf5df68ef13be194d720c353f97360cdf6d65c8bdf703fb478d0f5b0b7b857fed5cdf0f8cec25d27979d02f78d7f99a8bcb010faf0239d514e25e3d05f57e20cd0484fe0361ac6338bebdcde44f06d121931f78f109dc661e1353563be727625b7f1defb9e0120cd8dd3a736704401c1b9972fdbd3ddd6e03dcaccd407f1a38b5c25a5721d6603bcbab949ba26ae585102c54ba75196d4da80158b1c075ae301c8c74bea2738939b40495892b7d26231241a0813ded4561307d5b78cd0104384c", + "33929b21baecd82515c3af9be6978bd186d05bcb280e0c05fd7027ee7ddd03e05b9622cdd8c786f500a1d1bd4b65974743045f", + "7b425bcb86cc4d80ac6edb9e65a08bd361eff4dac867d5444c83a7aba8875c7ef47e807d2b1d05d78b175fda2be9ea593a6d5c11ea967dbcad4f719da1e402e927ca2ddd3dab251ac9570a4f6ac1770f53c27ff702467fb1da27271cee981d3ad4fadd1b43c722bca630aba1d4bf5b1032c7c1c804b28519dc833b1080318ce1cda3420decf53c29da5da6ca10c1f0655b37c2dee00ec36c91b166cbba6f75ad1d60a1aefe8a9c52752f1d34677ac43028caf160dbcd8460772da7e46d3aa35885281d33a681a07b14fc1c0c777e3b6f333890277eec0433c5cff155703aebe3ec51172eb5df", + "16b9fa32eafc11e66436ae7284fd9033760fb629066427abb54365eb9dbce4f9c910800102fd306fe8797407cb3b25397a3e8b" + }, + { /* i=5752 cDividendBits=1810 cDivisorBits=1158 */ + "039815e1d37b5bf45ee19e55d0e29ed36677ff8024780bbb0110f88add5552ab550675cacc8baa21caada5512d2d3256cc4d82572494fe68f64d9a0327c91b1eb0204d7ae94f65dd057ddf252e792e2292b443470da7010e778bd4f8ba089b5def7f33963dc13fa417676be8b283d2dc2fbacf44347a3728fc4282f7bb9d3f7e7a8b40f9fa9794dec3175b041741e57cd87d3dc80617334e28793df1cb2f35bc7f9040157be97c066bc9b9e722db6eb36649c877221ecd371b73d2033505eb283302bb33e33287763ec5f56e16199f67b3a7a547860b2dbd9fb4230ddd39d395b86549", + "222f9054ded8cc73d2ce6065164494f9ff1719ba7402f20d4e220a3736cde509be7489fb8461b54d51faa77e8cf6e8fe932a5c585d4e53d25509dd954e9725797981553085ea6fad9b156e5c303aae00c494d9443d6915dafe2528a22b5ebc33025d99f407f3e02b5b3ea9e9b50857b902045a87255837621f630f3dfa17b37635e155a04475b1b4397b7fd167639e8dc4", + "1aea0d1570a26517feb9babb231c2bf41287e162122d32c79d83065e288a0dc5ebe4e0dbcfba77cb184c8f1cb2d417c03807fade192c8b22681cd680e4b5eaa9ba57d29414877007a8196b33a2d1e6268d7d", + "0f0fb1a3f11562bf64dbdbe3d6a9e271eec3e2983d3644f49fbdf8960b5ea3ada3633460ced16d04cb7abb413d4ea39106b08ef2f662693bebf59dd2eb5dbc5f6cf2ea920b3d908bcde35903d77515266596e2f09c56182810192b67070832b807319ac118f7d9d609fc3296e9d6403d5ae0dc0792072c633a025df65f5e9aa0c9c406f45ef41fe7828d11068e7a203895" + }, + { /* i=5753 cDividendBits=3801 cDivisorBits=573 */ + "01697cfb763778bb98450f06e8b01f335c927d01113dd220779d518644f77be879f154830fbfa1455d601892c4472ac70c10d154d7e6509336446505e8c2142f7452943874e591cc31db9ff403637768e8efd53ecb0adc201c1559e9ced27a03ee4a20259c648323dab308736f151fe6f0c5598b8937772875380b2808d4f8e18d9ffa1cdeaa7a838b72ca5a87c802a63f1687d2fc87ec9e9fda7ea5babd44beee3b83e0654ffd46d00d343424b27173b9c8e500367f35f24fdba4dcd75a0447409fd320e437ab446b4e65d7f2ef1ad67b4183638f2e09c0ec828ce397042854986531f76fc0e196ec6757a67f64bc7bd01f3fabd9570f429bd57604982e57ee9f10d00145864ce618d86291173544430d844d9709341856e3ba29b6023e7fafa70824ae4401c1f59045dcb1273c78c6060f7442f3d52e0c2a7608b4f7bd752fcef79554b6922b9129dca4ecac01df1feeb650dc2fbff024ed3329a37bedc17485ef9b7aa79a1c593e620aea3b2ce0178f46325f217767bb89a8c3b429cbbfee3627fc680c74be14b124160dbed5a85a5c05d1f9c29e130fffc393a9849ad13a703ef6ff1b17b7348ecc89726f71e1cec58d0261d7be6a65b07ae84a5dd88723000e22017ed0347d58bf8c5b52d19666a2a212624ff7525d44a8ec56", + "0fc02f03c9c397b156c2051ecffe718e444c34c77ea5fd33b38e6d835c3db9c6657a7e324a59d36fd64cb3521fe9795638575afa6e30fbfe5dab8a35690a3020e33721d0cf234986", + "16f359add44fb444f721583cf5c7161ed65aa36b352724a7db2a0723c410ebdb405fff7dd376c4a651e3cfca031d7b05cbedf2d842f2eb13cfef722742196cd8bf9c2a5e2b23b49ded4b67846c82759d95fdffdd81ed66fcb3a85d13364a1323ee480b750b17a8f468cfae5085bb171c528b5b0c6ee5570ae466cc55d803ad8291cfe146e5530f4259dac01d94b3c7dc5aae984010a7a7ea84f386edbe176b23092355b2b0a4ebf8b26de673993b3a687ba91f2a8e3af6917b8a0087fea52eaee3b87d2e2ee126ec98b06eec5d211a8ab157d90376435c24703956de42d89eb4546e1e4db3a7648632d469e5e6d5c6ffbc8d821cf43b5f775e6ac38ae2853f265ace532756fa2556b114d7e90f85d13522c864018957f32ea4a8c799548c3a0a15135a91d0cd4cc705738fd59be64ec6a0817073af5224d09051e604022f44b24e7d88e5dc696f3794a90588cd01ee509c6226fe62edbbd9bc45445a8ebb0a442ea2df3c8152ef6aba543148975f548e293c5d36ea7dbe71d807fb5a7d8443e7fd63f0de06df2866085e9b3df289d7d9b5ba2e62", + "07c0e1ffa4456a3580a8e8afbc2ec6ae09472812e8017b17676329fdda0eb8a22e59b82871342d7f64c81e74e8767665d32dffd88b39e66c53c48da913b9c7b8fc3f8c007894b30a" + }, + { /* i=5754 cDividendBits=3028 cDivisorBits=1625 */ + "0f24c66d58223bbf306c8908c623e4e2cf4769643e720a4a64c47977530ce7c4befa1f8a4a87fdec887214b06eb018bd778c7088fd4b949623af6d03e1681f283b09b60f8b2294685184b721c822da189121301648f6e6891c2c5de6a8824d5b3a0b021f4ae89b544fd9ff3f20ac797e2f590f4bd90eff4e777ad896ccda898ccdf0c7d0aa90ded3d78e1f48cbdef110d529da2f7ec897c51a9f47302157fb548bead97cb6b50eed2046442d096d92caf48d4b13e1e616756dac03939ced3b56073c4cd71f6020a786b9f93b3d91e2c1b67d78e62f2cf56688da0427eba6c07506c61bc25843247773f0edcf6cdfa1c7f080b56ac557ff5862949806469a576c10f9ea1dd7ee95cb30f71202de6fb717ba9f740ff8910da169ae21140a10181243988d23f392260edfe813a0d8e332393e32af4526a18db42658c808b293791098663f10dce0f9eedf9f9f21ed5a85440de43e799e1cbf44452b2b1b62832fe8825775d6f9d6bb0170c0ac843973c28f3b63427114ad7d57b9c27a", + "c0e1a246f230a1a775b37759ae304bd20d51685cf2fea12690d63519d4954932c041d9a3d6c1e5df98db29601ba4cfd7b2afa66a5bcf13d469f4d887de6d447532179e074f59c875c39e1346e8cd07c3ebaeed65216950d898d157dea0d0980a713613db1a15c2c44faf4ccbd568f7e06fa842da31145034d95a4cb7a279481ffb8e171cea6b4bebc561dd23f906045902350fae53fb708d353799317228ff9f28220f765e565d2d5604d777be4bea9f6ea1046785660a95cef83e4f32a03cfcc75b818be568f00526bbed", + "141969ccf020f713bfe4091c2a0ddbfb7b2d1271251568e3ea8ce579c89a3fe1b579ce6f6bbf45c80ff6deab2bf26f789ba7e82e9fa973cfc9309776c52be7a79f88adc9f2bea69b637517c458f3edf8cf71d4008ccfa39635c9f03444ccfee638544afcf7b444312dcfa2960c51bdd2ef4ba863ae00a9e4d4b311f6197305d1fa57c910433b3ac7755c39e8e090aede1405beaab9baba2ac85d84f99e56e0d1d8f39b831e74005d64e9f299c00c355b", + "92dcec5f8e7562385b39ddd73c24fefa82ba1d9e958cdb707329efbca6dedc19ee0a37748176024acb7e3a2ab7b97d3c71346dd910680629438bd81ea0bace702480b8dcff5a204c3d45d36c6ce990559a387c1dc7c01cc6716e27cee217dc6721286511171a5a3e1b425e222bdbb28c1761f0cb9032baeecb216ede2d985e27f16083ce672df2a6863afdabd150da99bf95277589c9d53dac56c8666848b8eb878f54a7cd798edfcb0922fe5fe6eb409e6572bee5f3ce16dfa7e94622c0447130b9b5f83009b2eef0e43b" + }, + { /* i=5755 cDividendBits=3676 cDivisorBits=58 */ + "a24196d9a957b5eabb0a59782f90a5ae458423169f0a28e5a21b2adde46f516395780da0b3374b85fc1ee635b2082a5f0934a873ca06205b461d45f5a78db4f8f53a9f41da823b90635137447a4c6ae6d9ee4bd26b94259bb70ce8627d3c86b072cfe78dd6810366401ca19e553806f526b6daf3e9cbf5c76e643a8688b15a1b602e7f3784f8f86a20195a3211d608e641b44a4c4e11059913a6a50a127032ef932480db52ff4765c26b10f93b2a14c9c495da945c0959a0868814d0ad2204ec22def47a326c5aab13257f103d6cb28adf41289afc098d3a2e71d5d2c83f8c7306286baf5f1770d70c295c8b0adaf41497811fff7dcba9a372ab4d0448fef01c9ff750b643c8c5947bfc8449f1dca95078f26aeca0b01e241362444f2c8d639c290f1acd8856b87a99df3601d45936a9cc1e33e3ae232635685565b2d73c7797eaae616efe4f6de0592f957a3c5f97ffb9110b0900de994cf44626e1960fa1328caa47e9e9fb96045e17fa3e312c283e32d9e5a15ebb79d4a9499238c505128523a756933b580258c85a1222c564e44e24842270cfab0be6470f5c8b0f943afae0507a38ac07dfb2a4b73485d24afd130bebebd845189fac122c82391e15cdd62a5ef96088508fb9b0e194", + "032a7127e6c369b9", + "3340c4fc184124c3af815b33ef91bc505be266982fa8500665748d85bfa5fbd72a50cb78dd2bf3159c1f36be7273ae488ecdd7c747ab725333191261dd59913fe1c95241c1b6e474ba0f18c45c7921a1c38a1f29d7c1cf4bf858873d63327835d877acb248bbf72f6b8edae7a796b87ada6c6a31067a15113707aeed958334156d67b983cdee492c953d39dd88a77a565b8fd4e7669e8d8271d1a364bf4b367b3e2f56054707f7ec0555550453501fad7a7a2d2c7a713bbbcc0e935308004e2976c3270be7a4a00cae0d917cefb7b4500c75dcddc20c9fb0e864efd7a9abb334b259e51e865042729bcaf391183b1abbb632f868864c30f09708a57026b1899a1695349577c0ac620a5f853e25ceacaa4871a0982a6739e0056d97f295d0565d5c50f014ebb4b85373594aa54144c02d756f00c2eff78dacbc4d5fb3376cf2d4e897faeb040d64b58e2dd298bd5cf3f86280d8deb90f8416385f4cf96762a14e121fd36a0d94fc1ded09597d9c06405621efb657a8d73bed045edc89eb49ded8d487d98d26de0a4c08390e581a4912361606dbda381eb54486280e6c3118fccf0aabd8f1febe7ffaddf2969b695b760464d1b53b11bc96ac411ed3c085b128dda0f8e63b", + "1486f2ee734df1" + }, + { /* i=5756 cDividendBits=1061 cDivisorBits=946 */ + "12fe9cb49ad82d3059924b1e813e7930d9d6cdde1ed51ffedf7e2605d7983ae0a551265fcf8a687dedd570959a1f014900a94dafda1ef51baa492341c3fb2a84d2fee7579af8a49fa63ed177fbbfd5429028a458d1b617ea345e21375215040c0122e0186c48321b931f8bb15ba84cbc7b659a0352d793cd91909e0dc9e32d44e72fe9afba", + "014c5895ea82b43ced0a33b143637fa44d50469ec8f2607e545217099294925df2d87ff050d7e4625dee07b4a126dcffdc4b51ccfb35f0d6c3f02df1b819eb7e185f1c551feba70c4e253a5d944c3280fc19382694bb88149789a3db5a75c626b02da211d02aade42abff203a072620e6a854fcb9c6c87", + "0ea19481a024b0de30c96206bca38e", + "80c7209ca1d746392b15386dc2ac78db1b596a25bd1c501539bfead61bc700b4382d30875fca8918f4bdf244b3ac799ae4ddca1b49ec74c51783d0b0c30a6bb4dfaa39c8095fcb4cdc6a34c44b0142bf68bbb705c3366db7d1165e68c43e98e3d9cb35963cff24325d14e948fb331d6ec7e6c8e787d8" + }, + { /* i=5757 cDividendBits=211 cDivisorBits=16 */ + "03503ff66b875885acb7cc7d4c4589d24c30ceb3d6edeb19507c94", + "ab0f", + "04f575a3f8657d1e74ac1b8dbf932eb47d2d9ebbf0e7c0675b", + "a53f" + }, + { /* i=5758 cDividendBits=3623 cDivisorBits=719 */ + "3fcddd6cb3170b0ece1fbc5ee8332f4c7ec788d8a2d28eae681c3cce9f53114dd3218cebe228a66fb1841d6016c02977b3804e01bbbf3814a422b161ee7edf853e131af56c85629820cb2c196a0df533397eb2e27bb6d10625cd072bbfd418b2edabe1c691cc0400c0793ca0078cb0f2725e8f830ca7dfbc6b4b143411ab4f4753b420762020ae16098dd490ecfbd23a8377e42fc34c7206356dbd6e338de26fe2e4ba209e078f9ee43839638bc147cb5b28fc2fe75f311bca292b5d19f3d71f747b7fd0e1f8904e8c4bca9adfeb3f6f8fe7f9f72ace804bff2c64adb3075be6d2af1f6f69ba480c59f3f256d9758a24be590ddb507a09483c9f07535863c010fb431a872125a01ae762a14f6a99f4545c22d16e2c365fcc770d2a53ecd02453294cf3167faa37d068d8d00126b992ae228f7f73710052726b2f167f5fcf332df1a0b1978e5ae67b547f6a6606fefceba7b6988d02d22984dec8ba8171c3b64b1bb4bd9ebe7f79d1dbf5045fd19d43828364d43903acb0e6aa67b107d4641104c7bbeb6938c20ab363a6f481d8a2466858405bcb7c8b94580048ff81587f30ff857a5f4a17466036301ad28e25aa7a7c1f8250b665e7b6949d4e76720d8c5e05668f6f7bba", + "1a32c5728141d058e8333bebca7600f695ef29e698b961aa250b4a1800fd20edfcc28b812144eac8dbc53def97cdefa5c1371b2b578fda3a3b8b3b4878b59925bf8d1d6ecd6e811f65b732045cb433b168f125bda0d32f53b46b", + "026f784590a6e50e722c601c9d820ab36ea60d1774dff6a869d8f6c66e6d70d28fc39b31a974ced8c9dcf55055f64595d118a9dc876f0b068352d0ba373f0175e049670645d0dbd7da91c29da27687381acde09de581852455dd6dac63f8ae0d7d0179ae8a6b0e181d9c53614bef33d40f942e56fc3b68bf7f08b8550887f3ce77a0c14ddf27b2ecdb6a448d50575249ff4900dad4d6c089f2b58e82d8047a0bd58613a3ac1c6bfb3bb16b64ed83996b8b2abf86c6bf15dde8518300ee9342868f8cc36795ffb5891ccb30663327ca8b6278e5bf0c46b21900ea2cff28593e09143e6bf0133b46ee176da040d8ab0d2cbb53d7a6e5378d4bb3225ef21ebb130210b1fed3cb1ccb7710daee90afaf8b1d7e0a0871d18ad0cf3a78a51c8c88b167159f17f1b4cf8f54d76c30bcfc772d719fdc76ca24b4bf0f564bbe5c8cec618999c9dbe6a97ae3a3b7c7b9f0c5d9f59178180909276b0e35c3e50525e017e0cd33658c871599920a3d27a4cf", + "0f85d9dd035a451d1b98ae32a29339a68fe8d7522372a977c4a4bb6765d18d8f78233ac1fe30c72e1d39edcbcb88178bec19168503a433c5c75870401069957ece9438738825bc0f7d46cdd28a631ccda32e89717665afdf0d35" + }, + { /* i=5759 cDividendBits=156 cDivisorBits=113 */ + "037d82e24b16426d7e1373faa03340747eb5dc00", + "5c5f211e1ec72da140beb1a38060", + "09ac4a4966bb", + "0cd49f34c83d5c856f263bc0d5e0" + }, + { /* i=5760 cDividendBits=3595 cDivisorBits=3394 */ + "60d4c859c4ef54b4c8801e79bd6936c283a50b06a8160025f0b10d8cc9bc524dc01e57541254c19c31dd4c36db4841e45203d8b64ac043e1c3ffcfbaa6f7d961f0695ad38e4fb3573f57b78c09b3d55348e6141c1ade4354460aa529c730c88fa06e4ee32959a0518254f1f67d677e43b7a7d66f13709aac014964a5010e97965aa0beba9399879686a5cd07e452757cde90204b56f7665a0b5ab32a1c1f10f403b842d9b7d8a729d8bf04eb8071791df790e6574fc5ee98948bf42ec256f5d0a0b32c32457ca1597aa76617be1f42db29c53f2b99af2fcdec2d091aec4c75cd2940c577043aa9cdbb412dd11a3ec4b619496a64a86e033ad1067b05cb7c79c7d012478390c46600b988d3e107a890d7e9f06ac2d7a10e9160e6902ec93b691fb35b04bd7c92f6475fa5387af00b998db48cf036f4d97f6e153e05a7dd9aa04010f51f16397e8be084e5c05a3cbe73d0358e9a6d84e5748a5037475f3162577cbb6184d021b6bf084ad0dcb1692fa30a645b809b2d744b44c1119045da467c56371280e90a5aa85306b758e84b09bcf1e7029ad39e1ca00766f1257dcab87a7060ae9123e4ac696d19a030fc2421393e375ea71d0aeff633ca8ce55c70cb077653", + "01624f66f3462ceab6968394abd4c4a0366b707ffe02d48cbfd9a5ee7e2b01eb5098b75902756b580203e33c48c04de580d3e3fa3b692634e8fd0ecdd7e029b3c79771600b779fbf46a5f9b6b14194d995366d3fe8cd1f4edf9932541aea71659458ea479d4bb9ad3b92c186504732af2da4f27bce2869300a8cd21bb6fd883b935b11e790f7b6cde7f8ba69aed670f11a82c900363c0fa4389e135dd9122856d44d8030331af7746efd65ee0c281902d12408cf1c16de5cc875cf4a7f8dc0be239b6d85cc32c4db27e944eee3dc5fd50b4cc71b8217320533aa1a92a9a8bf9ed1caa0f7bfa22b9d092502a990e5b3883e210ef4b9fe53b1eed86a254fc1c899f324fde9b170d57009b39392c90c08c9e804f558c5f212fab9135d7305c956dfedf896c0521869b963c67b9dc9ecb391b1fd63d3c714187f311c8d32d26711261540e570238c83a53af627663e8f45668632744876de9c214532eed76f62e9c6ae9a4afd08fa61d6eab69ce06a3f85a727f4c625f6a9b8343839a4432a8dd7aa1fe5f35b83f8318637d7c44802877fef501ccc6d119cf2d8642ff25886d2408ee990182876bc841add", + "45f6a89158aa2e790df2a16580808e7798c04543d44720255b", + "b9d25a4052b605217062dca70be407810ce65094bb38219d906e25706ceb16d58dbad7822d2dd3276f5db440b30da254cf039756cb01c51f44a2b9f4b0e45b5d955d1a52cc0898a421c6af6ead5a1d5ed25fd8f750ba01ac33e184c8c3a9a691b05d2bc1a2e11b77f2ea202c8614587a4c7254ff5fe290a02ebf5f583d7cfd79f32f758e59826a5d298617fd1939beebeb55306e3b07ddafe480db09c6b49d1542d235895ba56dde2251b13d2fe8d5a689ae9feb1a2cf1c346704a2bd02fa052f84e29f70c7e2f3ac174412b724bda75186ebfd95ac340b2fa113a1fe5bd59883a02902b15633c84b794ba9995270da913ac03a4e0bf0193cb5881b2d35a2348b61bda6551ac28a44e62dc2b240dc7b7fae2a453e22a5d75ab9684c5e78b7ac34478643ca67850a0f31494cb04b58f2a6bea0abb761047f4cef79d5e06afe67e3a3e237487ad4ff6c26d8ca6b0aa8036d2058e8a05897e2642b11988663e89e8ca561d311a39ccd7ec2dd75a937080cd982e6305602815cb79387e82d8859ded5466a6517668fd40cbe229795eb2eee0f31335ca87822ed55abf13b1e0b3c70f2b568702098ff8c4" + }, + { /* i=5761 cDividendBits=3046 cDivisorBits=2682 */ + "36095d2fc3225cfafb7a6abcb092d935be88eb99fcac5d4a795072f313d36eb0615e21d8bef1c71e89444ef4dc83086571802b26d58b1c4ac3982ff3e585f6d9bb69b9b787376c9d9c8d22d7e1aafbc0851db08b3a2b3aa23410668e34de67f5d7d19b8199bbfcff33377ff57ccb99f8a44b03673d6eddb810813fa121170584aa6a6b96b1964e8b0a3c43fcbdca45bd316650d00302a5e84751a70fda6344bb91ce6233bd93ff5b66f97e83427f5ed44259fb95c87299d6fed2956a839e88657405af527159b8f36aa75b7320e79a6fd385e269c406ac974cc9de26a86eb2ad6d11019aa6d31e6f4221bbabec19bbedd52b46d851572e6637af266c00225d696085bff2b0e063127f5e1e6d1439f1d0807a1bb7645803080ad0651a626da822c11151cda8f21fca92b396a09bc7b7454ccba8134a4cd172f06ad952f0e167ab5bcda7945ade3a21b191be3b5fdd139770082693d364a91c74a76dc8aeca24d47b4888b432eba6d0729121d31afe0ca68b1f1137b7d08d76d55ad5574c", + "02b4c7a5d0f41cee77cf589b8644fc8dd4b1cfd9a6435efe6434f40d19f6bb4a224ebf7bc663545ef9e6f377cfb2c3bbc1d3a370c1efd7f53817b04f4987e9e431debc2f7f6fc971848ca1238ee30796d89deecee84eb38940b9150932f8611baed9b9b8343070cf3a782ae4160fcd6e238a5828debae5a686c5a7b6bb85b6f07d6d519b5fd8f286281c56b61dc1e99952e4666a45627ca80b777bbedbb4549fd08cabebb9095ea65af86169706365518a22b8dcd36bb5dd63afbaf00cf8023ca84c043af06197ca9e5202b65e8e24e74f2c957db6d3133e8201cd0ad2c7426675cf193a40f173652def633b3e2cae090de29c93098613017613355ed9d4358880bbb1916c3f6b16eb64fc9ea25880449e9ecfe138369b8be76b3af1764a07354a38c21bfbca419be86ca5a933d8a0ee41b73466e3059959b5bb2ed36f7b81d14585001d8a6136e7777b83d90b967666", + "13f7c8bec8899c60a957720701cfbca4433cec66796da5ac4e942727885ddfb95ba01418260d62e41219f1255e97", + "01e2bb881a2c1537b9e763f5a17a3139f8c1a4c367c847b2f9740da73bb87f99d410beae7259764a308c40a573607e64e63ae42b108f0dc96690cf0c25546cf992e5e3803b5682dff2f285b313d0d7f89d3e6bb64d987acaa1e09b5166b01ba55cc2b7af7dad5f7bfdfda14dab6d9e787dd3bf6b113bd8a999c298267bd7173c88b4a84f944d02bdc2ffb3f2e976e5cbb14b2e379d0ef5460d0e1eb51258431d332b776db567412854c42b3bab130d7f030df25625a30d6634371306f97a2b9f7bd84fcbcbe39dc7fdbd686c00a1ae0f7b2bc20b0359a44e9c80549a4dd31968868f7a2a5292a8422fc6202b50a3e2cf8955663ed38117825608a55d0031ffaa9db5952a455baff800b5da80d0b9bcab5fa85bbfacf02f75d7ad6ad58a2be94fa80612367c0eb2ab1360be7333097af8614181db1b2d53c5ee0a0b49cc6a69879bd6df3d1ac715d26524f16322de0d22" + }, + { /* i=5762 cDividendBits=3218 cDivisorBits=2929 */ + "0d6246ba0a51d874a79000f01c440036236f40bb410453a1ab8bd8dc927820aa39a98b2aaf7a8c1dc4902f9a2f29dbed69c54b557dbab9aac3fae8be81bcb6a9f8a86df918336f1262f422dea146fd44b76e4c077cba217c10e63ecba4a9eba0cbec552f60d1c50603877bf293d6222896d06917b7a93b275fde003c9084abba16f20974f66f16c3da14c3da66e074417dd4e847a1d6d4444e7aa4f7b8c1aed0ed7c301dad3a1aa9017291619f5c4464576586b90a1868fb1751bca626fcc5ac82919f8c2cfa4d37efcc939d4fc3b6abeed5cd7e1b322c28c9c58e35047f029fdea49817d4f03d56c0772ff87c3c23fa95a451c94176c94be4fc6f919a56d0b73c5f8c2dca1f5b8978ff38e3079b95d4ae7340338aeea76d63b30c3e57509d1cd6cb95a707aba86250b0842032574090f8d58cba5bffe2fa1978f2a9ee0434710965a57226a3c0f624d46003a1c00e0b44d8c88fe2ae3c71d05c050174019ed78a23626f0d3fd861a8a1098fe387ab2100e0eff8054fbe194cd5cfd7fa10a2c0c03da984cfa0ce7b2edc2c852856884a55eb", + "01c483a0600df938931e5fa9dfd4ab193967384d4de53d58ccfd699b7b016b14ee6ccdc2ca98afe33ab318d2655492a73c4127b8b50a229ba07d0d1b38d81014a1720cd31b6e2fd0b48c3f18edd420210fc40a98b0070fee647625f5334dc8f9f0d653b230461cadda8bae54e0c127a0adcfbbd9788b1f51a0b02167a37465ac7c0dea13b15522c5b0af66aa192884a9a28db7404eee95aa436a6b80c9c26f03fbe149118f986e6936c5339de364475bbf69fe53677f238dbed9f783cd333e366bb97edbfc303208ac45cf888e22a2e056349f2e131039128c73526853a80d65a151965ef2d5cbbf8a9bee0ae92652477000855165210b30d133599a7674d56564786c12c1645468932930efa350fc8e55c9abbc90eda8d058815dca5dc83486b0b631e5231829821216a377146af774110efdcfd32196a849e09d58198eb29c61c06deebb4d6e4674b69b51ad71fb5153702a606f8707d628740e1a324f0d1564176a105129cbe2e5d68ae319f482", + "07925746d6c922b51e8b93c20a8dbc4215fa4bb60c6bbcd65f949e5fa40a1c7d7e7af49a", + "e62edf5f2cc10a874a1aadc5a69a5a4e85208b3543452bf73ce1297af2927b8ae34a0e18209d733c23f2b7d90fcf919a8eed31f80d8124ff0d59d64b98dad459f5bcc25182687f90ddd4f022a8e3ce1e0f6680f539b841a8143bfede7d2a633d1a7dd63a3482f61596d38a53a6c7dadfd7a1839cf0c9ce28e3ef0dec0c3ef26b8a159dce27a3787b274f1cff726d231f8fecba32b3d1528a0f75008a1e9e39c869e5c09f27ddc40c66797911157683db7486ab7be5cd78a4c9ffde611a565ca498a88e7af083564087b16a088f6e39b8782e347278670aa5afa668d9ea0ba3482dc8c5ce506109baa4f66e6bea0e697cb8d1703bd076cbc6c376b29a5882c3933456dfdb22f2367ea878dc953944f5e5277a53fbcf8da1bd574a130b40116c336df37ebbcbe8a999c335e5a1ba2adcfc2dfc7af1c1dac8d30bf605e6de9fe9b66488d676cca4046aeddfad7bbb811562bc5c64f6efae9f1ee0d971f165701f05fa1d2fae0a4574501c24abad57b7" + }, + { /* i=5763 cDividendBits=590 cDivisorBits=400 */ + "1b5cfa6c43fc4a235dd17b6ae7663aa3e9790f9d419c8338c1d9b42cc0598b28500aa7a8f0a4e4ce63bd9b6b89e9f19aceb60803faf5de068bf99be4987d7ae11607615c69c1743f8d37", + "3b56c62346f074b930bfdf2ab1fbadfeb23e39f1eb937f2c7b9c0796d0efc79770d40af04562db667036f14e865c9f5599d3", + "760cdc2324a63017a6e54f8a98e188a1f09dd0da27155f3f", + "26364873caf09b01a63ff3c58f7ac8f0bf990fc111492b017eda1243a0643a9bb1115204d2113689d94f57066fb2b6ca654a" + }, + { /* i=5764 cDividendBits=136 cDivisorBits=13 */ + "dc1b7d769740a46cba892032dbf0fcc2", + "0991", + "17022452396a2ae717c8ecaea8b592", + "0310" + }, + { /* i=5765 cDividendBits=1940 cDivisorBits=1292 */ + "09c1d33e98e94750b1653f3db79fc451a987dcd1c46dffec62324437491e0a88b0c5ad16b00bd7e49b4e3c0c13d3613482cf95f8021ea08bb18e74fdda7b35ec138cc8676c6c21ea6205563019ef606a34679f89a42a0ed823db460a926882b7166cd03d8d73686e95fc5fdc359a8baced588685d648b9a171c469a00a8bbb79afd223726f756504e3f82d7224ba983493a874e1cb288cdc3e5683d52d70ba04034930ec3dc4d9f863d9e4f04da1aeed907d2a6622848ffae121c7df92033287b673376dc2eb92e270c5e148952872962124fa2a0d9b5ec95d2a725e47effcadbc14c3e2a582b18ae05f68b0290d61a14d09a7", + "0f42939a81e9af5b61b67932dcb233de1536deda9d4f0ec014c95bad3e55a79260e8acbc74f218f0aed7e0dddd31c86b13648f26d25b94e96c2b5b20a8ba308db0b513eb58eed590c3132963922981a35dbae4b1b0fd542fd9aa5568de709387da8f50ad59b68fb2d27abc99560ad992ae010ca43c5bbd4fee20f6de943a18ad912832cad808ea67857101146d121e7e24beba677ce68cce8b8792f8a1df211199a0", + "a3af0c9a4d3cb6886a0fa4887da703218bdc1bb4cd82722dbecdd6dd0b9c1af4c53a467dfa58335d2968c63f13dc0cad4370e4ed6d6bed98e4a24a0812963c51b929e1a521831448531e489e7f28a272f6", + "04eb937cbaed210671108e52367e6724032f7db5dc21b3df09fcd3b66a70d061bd4f8a77ea335302c6d79d6501f8826d9225f92728bd5d970141fab04fb49096a52666d980a4a538f3d08869bec51e0097a3f8bcc38e1b1a7b98d4d52af6a18c44ddee6cda91ae4191e54f8a5e460ffef6df76771497be68b9726b9f9a937bf58495e1362b43cad6c013ba41b86236f15c6e7f5952d23136e11f373e80b9ccba29e7" + }, + { /* i=5766 cDividendBits=3947 cDivisorBits=644 */ + "de9bd8fac33f65669acabf05ba3401573951d1b5a4f8b9815575eb73588f8555bc5b282d29f197fb63a027b9f0f8082f58e8944645845ca3488862f5abc7d5caa4e8f5d5e34fce10c73318dc53932f59a317e2ac37e21f16043075ec042fc6890628c76b03e191be8d935fe2780b19e7613ff1a73444574aa581e349eff54a444c235d3d64b67441db5997796435c9b00728d250f180cd90bd2cfed56577f5f64808c0ce024d0a57369a22ea818f2dc3b9c68b377d9535cee86814d2510e0301ab748d8f70221a663fece2713d5299341a632f08f399f54a5cb37a8472384fe08ab5310cfcd0d9e850df66c803ac629c8edcf6be9c8cc87f8e1b5a552950f91ad35d8610aa4e7bc06c136d0dc12f6386bbb77239a3f2a25bab7a88d7776583aff3d1778d9b9f15171d4f15986d10aed76e55f1e4339562ee21e7539b711dd604a01222eb7fb4f33502c40fba5bb693a131d2b684e9a2b17bddef748e75df69f9f968afeda6f24273a189c97e93bb09fe753e2714522336a853477f806907777a604e3900f9600fb5b32d4d52d17fede1665b009bcffaf60d5f980a932c6fdd13f8add692213a823334ff9da787b1e091631c32b41cb45d60a3751961c30e65a3916ac0c4dc609c6dc1d12e5c3b13e289e42cee9a0f9790b98088945d317c6bb4a60b077d5f3c7b4ca1bbfc09eb", + "0475eb547ecf0dee897bbf97c7f16be04f871b704099c680c99b8e2d7fbd1ffc7eca48f69e4772f89e7d21d9265ed48f0b09094ec781edc145f6a10dd87a0546b1e4fe1f3dc28782c86d48ab0dd131a048", + "31e7c3248a43283cc5555a93a23369010a150febc5202451ec3dfe92a42b9bfefe5b2d73e92384a44fde4211c1ca59ab3b546f1d475c56a3575b5561421a9fa67a7355f8147d6a60cf6fca523a744fca107e2a2d3513c374cf350422322795bdf95ed074034495262ccc2ab7769d80665bfba527f6f4609b7b7f2d7c754142abc9196e541cb1aa6f5cc320f31e348cad02470d070764903bb0c1d74806a9fc8649b299c85112574e79db62bb46e41e1a71f60e48435886c3a7c43486aa3b38240e15e20b60dd298c5b7364a07ab471fcdacb79417d27c8e542cb16caad8300b2e29c180bae7b9adb0ea46c9704a4de2d64d6aa8c29ad0fffef1185b161df2a1f8587edb685cc604436cc5db318ceca65d8bf0ce99de0557c98caae90071c6554a00a608049eb2ffff31dbd13a5ee839874d9f35378d4742ceaabc2b2692aec0044c981d52f0f1277b72cf45666d065bf28195814cc71daab4b2c06a9d7a92cd1fd223406b7330662ed22da9af25a95896e9d8be465e181329bc80052d8923a96cddcd4140e2c564bc8a7f0edb859004e4093722155a9987c3c43e25bd4", + "016a39188a8f4981b33a798e9ef6de021332fa3bd47fc10f02b607df312f57307c5a0ef3e62e9842a99b871dbfe93dae963ef50fe327396ff57fb366bf5fe4fb935e7bd9d3cb6330e08388a0318359b64b" + }, + { /* i=5767 cDividendBits=1707 cDivisorBits=1265 */ + "0632ea13d98f499644303f2461a6c8bea9e49c3f8fc4dc384b3ce474c65fd16e8a9ff2d13732dd0cde7cbf7b25a7d7fd3122ddfc57d889149447f4de1193c40eb6779324548e454f7a1d8bc8d60afaf7ccf1b687bb39d9b4213efda071eeed4f24c34a272ae418702b7332fe45480ec7260955b093142f25e5e94eaa3e1074b840654aea924aeb438221d9f71dce0b017b12f247185513a7edeecca46c75029ad9218575021fa4ac293df6b961298e0779bcafea7521e2e149af41ba6ddf27a6b073904aaf3bfa6e2e6cd6122d9a758288f2816aecab", + "01c26c4427454486621c606ed3a3f481f3bda9c563507f024a59d73247789542c645758b98783c4e9aeb49bb1fdef26b5b38781f743a2f3b92039257b7edad318e935f60b2e5babde56e190a0643848c4bd5938e7d6b5637d02da8f01dd7fec126ff086b9a08fc8b57367b7deb4257431dd0ce26dff13ec503ab7810439d46526709e804ac9e8c005316ee88227fbdc209187af17b16b9a84cafb633735298", + "0385ee288a261116e6e40744bf109788a9ec5c61aea3972e9373ed94ca770f6e082bd1d1691c679a054fe13c3c11a69fd60a811c25a8cd99", + "8d435254e59a9e64f9c342c09f49ffd40e09ea31861d54a2c869e99c649e4dd9aa4c5846e347008cb0f292c995261ff2da01c5b51ecc0a3bfc354d5923f7af98fe4abadfd3245a8451695c8080b5e6881b0bab1fb00cbad51f331363f8a672f6c85de1f3bf106cc4c7555eeea858648f5f7ccb4cfa2ec1755d78bcf1dab39dbaf1079c6e48e6ea00aa8f9bfbd5b8deb3715a21d01757cacb8e9c3c9ad7d3" + }, + { /* i=5768 cDividendBits=681 cDivisorBits=649 */ + "011fe01fd5b517161df015bffa3e0f02b23ce159df1a6c78f4040a94f4c7a092f92d5ad53940cda5ae56da1555287aa1e44841c870b2326e878dd43e41a005c406fea84e1aecca7fe6ede2b2b6cbb1e2c9fb8e2e7a79", + "9a8def28ca27ba79b03a6d569838a554784bf3445f408daa85b0ffff17c05851cd1d603874c13dd5e9f90d635c033a9e02022393cb2717ed951de3eb61d984889219bc16704ad316dbb78fbf423abe10f5", + "01dcd45f6b", + "8a5ab56c02d513085850cab19e390fb40dac8328ddb1447fe83c9a08a20f14adf6f97bc0dff203f51c0bf68d499201bacbf8ca8090990313cc15acc5afce63c4d3dc7064eacfb9552e18c23892e18e7912" + }, + { /* i=5769 cDividendBits=2794 cDivisorBits=514 */ + "025df4cebf8c81666b2d22f532cc1c4485b4e6ca36a3709d5abf0e2102db4ae59a1f27d5a57fa709b3e5e768fd0651efc304e4dcafcd25c8d4151de954c513276ac4801a28419f83197b8116898a062fb478d4e7956d157c74d32a00b40c092583ad67a1a4dea4dd847f66e8196b522080ff5a4c5a31c93fa915d8d58190444a91ea5ab5c51b2525c1a78af58472b6421fbf27929319eff8b1e21f812c68704272f1f0327090f5af69b56476bec1bd2d171790e60e2a858606e6b15d3998dd3f86ba59796c68f07655b9e1b8a6c6ea3d491af64ada2e22a10444f1e5e9c6f326efc2c994e70e3a814b83428ade0972d5cc6b68de645a27cee0b1cf430cfb75d2ecc0afbf52270344ee6ff96cc72bdfddc6ba216498eff16caa9364eb9ac7b62502ce01ae2922abf5f4d80c62fc73f5b314bd9f49429d4c01aa201d0f992a6d89a7a3ba5f61de518f02c11d3b647a2693aa79def3cf8d5b75743b38ac565b", + "0360a13255bcc72b3493b8d6c54b88fc77b66741ecf5ffec63ea89f650655a535e8bf07ed14ba475587810520c5e52844df211c122e0b2879615098d5fb228f53b", + "b3696edd149821f93c0f0a49d8cf86facbd5f2e2e87481f27ee78acf698f090f7f9607e811035b8a5008b8edc61a0de6647c1931c38fede37c54a2a4beba987bcfbc1bfe1db6dda6b23b804de86c16bb01b756596da2899371125b9ad37515f56fbfab0f26bc34f3178c903a69c9336e01da3f4451c8b773c8170c843257e52755f792c0c52d889a92445259933747b37280cc1865eede2e371d6b90002c021644835e285a16539b678dd6e087d05368aee0aac806c887989bf2a0d4171225ebd8787dc4fec0d664cd558b8bd5035664f7252e34868d3e14783bfec5b28b3fe21409d5d45488a8b2201162edb4fbff899477ea25c6a8d47601ff555adbfadd30b4c6b79a92994292503950ba96fb796f7df96bc32b38be3802f05d12b1", + "a00bf128d1432bf3680ae50ea547a03131f07c17dd0ad44613467a6b82c0b48d1e123f40fe6e48fd41af8e2bd9404461ea8ed191e1678e9fcd5f094bc2ada290" + }, + { /* i=5770 cDividendBits=3792 cDivisorBits=866 */ + "06979b80b9128dca89bc6854c0755e70469f0157f586216ada8b7f68b296feb731bcbbb29d195bcab953a42ad277c88fd3729a9d8fbeec57756bdefe06246023efd36c3bd837f8502d79bb826c2440fb227c5b965cf9ba6e34f1e074f0559f188988fc7ed30bbb9b62065dc8ebaf23cbfc24c50d18a055a077d2f07ab614b3eae0bbffe7fd94a6ef22a80f421fcda6b3453e6e6602f08077072d3fadaf684d9ba351723cb73de6deb21228177a999d1e82d6c2002187deb915e5a445828fa8f8d4a7a596f0bb92f2c141f9a356d38928f37094184eb6f1e1f5817c03ac6823ca45bf917a002c0aa304fa5ae8034736e73d68244ffc0b038bc8a79e744f41fa36f133d4c5c5c1ccc272a507e2d5a0c6e447461cebb0c0a4fef533491f70bdb88c133ccb1f289c92d9139b37e1a400ffe66b09f783bf98b2711773b66416164e5edae8fa033a3f2082940ad3b4fb772cf5209e309c6bfdc29f30a9fb5d043e50e87e3b901e0bb51fc307f7d9b87f8731299b4531487377d64326226e86c2e46da3ab3cbe3c7116c9fe84658c5aea9350eed89d14fe23fe10e7fb658f636f557e54829ca8316c08f5e0b736aa06f13ea8e595ddc6911275217966efb688d21607fd58f992387062df9e303bdc0ad17ec2f5294fd4646dedbdd92725", + "54b80de0e3305603ed5ab3565491d9ea641d5420e220b83b4f2634f42dfb1d8758e8fe2343be412b98b342bb0428cb260488f3700fc3ae7cb450241d6bd93ecc5fa3a2107aca7d4a6e940826149ab4bc94389c2432159f69749208372a1a0368bdf3b18f15848772f70bcc06", + "13eb898a6114ae04b3b0c1a36530bc5692ca2068223f8ec179a46675731717bf8b088c7c2967b8a7a55162d4316a4bb7e08d51ca3060dfe6fc00d28374071ca6adda404297d61f5a4941ffcb26998969b1d484d69575cd689d75245892b60d2a027bacebfeccacee662eff5e0a58f12a479cce5ccdfd2488afd6394b73c69ec1781b756d28c20b95d052b527803bc0c174216f266cb94b031249f73ffa70db3f91740315b542f4073040b4eb2189f155a1a6186aecfc67aa268f4fa5a46f8c6682e1e185fac19f42c0f0a6aa4f18a6446ec2b1ebeba507f713fa7e9b9feebcd187644e84110f64f01f1743d3b7cdc93fa4d8d7fa420d71b4e6f10b3032b0a5466585d9dd5b16ddb4e262dfb6157f95fe86892f95598e07c650ca518546581b8c3f941e7eac57ffa91c2d14de3ec402cfae022f95ff3862cb2665af26eac161cd939dc2be158f8c2fe2b12387063c808b9733a3e4c67c6553e6bf0fb23fa423d316515bb18a8bcd66834b80e7b040", + "4ddb1794487c217ed94bdf6533ee90c1d5e872d96ede94526f978636f03f3b4f198c2de0eb77dd25b5f56ee4929f3e7ec41294367084ed6c697c5b9a30bf3d32a4cbb306a95af7252f3338eea7e009dd29219b861c41e55f64c51c0385b82dab20c851001fa0ddedc53805a5" + }, + { /* i=5771 cDividendBits=2024 cDivisorBits=1077 */ + "2fb46c18800b9752cd678ae08e5956b2773f84968fe65fb268b6240a6116b65150362be7924d8d668df1cb3826310b1ddbc6c7470ad416c9adccf3bfae0e85b7406f6e4855ce13d647ff9f87cdd60c672e4d3f26c0589c63932faaea659271afc3828580c91c50d46a6b4ca4f85cbfe84ed5d488dbb358012cf221ddab191f987751543b0d3c088e2aa92716e67574b0b7634743dc78637fe4d86880971cf8510c54f56aa003e69dd44e1b3f02f496c9adc0f8a8b34db73ecd2ed96d2dcd83984fa752ef381ffcb62d8cb766255680dfab211eb21fa93df91dff1495d1fb3502b51e5ef5023ed6647a57877ae315e0283653e30745786d7b1bae47ea0c", + "0b04c9844d5bb335b7676c301ef9137b386b034610affb53c8c045d94756538bdd618b1803b8c631d44a565262a83b717e7e2d17c58db9693a022e9b6b72c9d4ae5f59855adb4f300930466fda2051415abdf1ab575c141b4d61187e5337855d30aa2f22ac00cbd8a323112f3e8e40da590517a7b9321088113e92e61c4d9827f517af15e92b84", + "04545606e9f8afbd7652315930215aa7330f0f6367c7eb95d63d3c50e7570f529dedd9245ee223c70fbc6983d48bf1b1e607ad8e9f8e0307a295dab5403de65e09e7982b29ef715b02084c5f5ff9604b1303ff7f3df3cb1ebb135d12b854c1587b5672db93c77b1a917dec543920e1a9b0d50ded7837c3", + "05d4416d0f29d6af83226c79e8696986558ab067454a4ba67ed47503af18c468f1c60f4a3f305f39b6e6b965ebe90e836867d39d0fa66adfecd612aee18484339f6d9b9057e8eacb3743508e45fe7aec0cef84ed6a9d7086ef1957cc64a8c65dc745634f6d556426e21ebdc8536987de95a55a63064a5ccbe866298196fbce027ea6bf4b726880" + }, + { /* i=5772 cDividendBits=3277 cDivisorBits=2365 */ + "14e0e8d5a1c01d40bd7fb1ba18f69658ecd80fa7ea66a4a7fb470b6ca1960381c650837b501802d95ea74517e7362347fa3d40d4bba3bc684b186debacd5c2ff4808b7d89ce57a651d2241acf2884c543f2c89009f798664ef7eef54e8d12081f3d012e81b9bd60457243d9500342b7dced2c196f6bf9909b0d5fd443c1791b8157454f0d63dd75b2523f364040bff54045f60a48ac079429302ded91d766141f49194c892a26253acbcd90a6cf2e5714ea9fa50d44ac75916497463481203135bb434500cb35eaf6130d03123b5e6840e0ec3789baaa99ad05e2f9a9f0ea1af202f35fda8e2b4ca33b277c5900df7ca22d622bfe6615ece1dcd7ae4176b5740674698169de445a8990603943047f285cc3c650a2636b28258133c6176b57f6a1bf62c91aa6667ec791d78236bcd8e18b68abf19769b4bf643a7e23c8ac984319d56bc9c01918be130017f2f4201d2348c6cc8fe4613511063aaac066012e72a623fb7ed855f14f190c3a281202a2a8d409f47aac61e84e50816088b8b1992140c4cf3fc1099439326aede3daa28d827986987f2be03737a5c93", + "1b805964bd4289d530d107543eeff5b5dbcbd1faf980d5a837f03b1e0ecc7d706938076587aca352efdf993bf7e8cde13ec858282500a8151ecb172d85abf9ef24746c9f62a28f091fe26984b82d85448049a31789c0c813124125f72d06f8e7dc0d9c168d90323c554fcc52adff6412472204bed591cd4c917149e259c022e98adfedd2110b2ba2b2995008760a3a7d9dbafa32e48d5e54a7e3c016ad0fc3d9c21fb51b2422bbcd3e628b9af2d0e14cba33cac71ece6d613877b07cfd635e2fb689f7f39e639ad68b8bc058ee554fb54e9c29fc90eea514897d31ab3c8b866d4707af39a7cd11ebc2289075064accbd45523430f2056fc51d89169ca105bda58d324219370cfcba906bf4fc0090794c0bfacd6fb2bebc8196c350e9062664f2e24611c9cf1fc5c2", + "c259c7da335c1106196c48ea0750a61782f1877360216961202e960db12b21c54b12275c81ade9bcdae511eb71f91e947ce768069b2d3b79ba710d9c13e7707b84ea969887ea446ab2b174213a3816f5e48dcdb1a5f46819c255f40e730094882ba4bc58fc2b7a786089219bcbfa992d4a23", + "15682bf14f72eafe43491a65d49ce30d67083de4ba3d24c4617e31675b2f5f879442d733fc7fec32981c7172a6b9ec9e5f0d539218f42892288fe663101109055dcc7d5834d4b8661e665e4ffb3091ef2469f3137048c270a8bca84e1caead39251b5278844e021837af69dd943048beded15441e8260fb559455185ba143cc8cbc935903b856adced4ae32b00f4d2de8aef5c0e3d713575ddcfa3350f987cb692967703d753491bd084e0b1463ded58ebc8b662b14464744aa0d8b25a7a78e3dafd136faf66699dcbfac9e398a07fc662fc7680a350896d7b3c1ac6e00c43f80a2b0f78641181221563087e91b78ec95afdb393ceb61f5cd443ed3354d99e893562c2d425cd643e06fa36e48f9bd6a5aa6bf998abdd34a0079362b5c54672fa64a89e523dde3f0d" + }, + { /* i=5773 cDividendBits=1619 cDivisorBits=1244 */ + "1462018647138ad686f276530263acc87a1db6c7dbaeb618e40da1a94427c4bd482fb320adf4ff20949ded58770bfc396ee68cd48ea725862d9c3495e47bfc63539dc335cf5dbb0709e93c21d418450c41264ffa62c6d4a46387f6106f0ae0cd192f30c4b8c953ecff30dc18c5b4f7b9f182408ee93d36b758da3359992bb6503c7e3f9bf2a9cfc2edba9eff46a96b212d6de1b793904658a0a705639e6f5c9119dc6655de487dd98b9e96658b2494b2083845ae512c35487359c1a232e5c2837171e4545bab2f2ac240", + "0692d83a574d53a7201072ce5f3e4318cbf796134dd5d3a5c40dc3a9645d7145766c6ec69f46857fd8c373ca836ea79735c9469bbe53c515c4e67b4d5ecd9397d25921f7a75534eb3b792c38044dc4a21b48e6b0f8e691b69655f0f221adc2cd4ce19ec465dc763c0f75778c847c011a6ee8655a224cf599a9c4c8467415b73b46554e38eccc90defb42535166972e1e46f36933318f32f2db31938e", + "0319c7d926f1d09e7727be370a6e8b381f96d2eb0736aa939daf39284dcbb1fe01ceb00073c912ecd6056a8dda7dd7", + "016243ab30572efe51d54b86729df9226aaf8e7af7ba30c58e2ac2352c83971f6a2e1d1dbb1e636a5ee82729c647699f2e0a55625943df750f8928023301aa47f5d0ca45724c8f7ba2635fe80cc6dcb6afb06236ba6ac0d59fbff7ac043f60ae5a5f881ea44f37e1448c1448707024d48907c5590a3287492a53515fdb6c5eecdee22ed002a5f991de46bc69b36bc2b1205460f4388a2765068f7ffe" + }, + { /* i=5774 cDividendBits=384 cDivisorBits=13 */ + "f8152097cab605df1317e7d6331b5025fc0d2900d404b07a38083b2da4681c1cdd776c409ba8bcbfc37d0115dc1163ff", + "0272", + "6573c8a038b9abb46023f2d8d2a691a5352f18210de961863943fac1b1a613acedc9c87c9171fd08e66fa4d70c4bd0", + "015f" + }, + { /* i=5775 cDividendBits=303 cDivisorBits=175 */ + "063ce759c504e199462ce22998f1b16160d073959d3047447d204d600063a4840919b7dfb3e0", + "28a8963ab43508450b2fe87b1dfd33145ebc989dc044", + "2746a602b5393d87d3c29ba6c9f26099", + "6ba7dc5d6ce64e255663aaf5b29e78b7fa35364b3c" + }, + { /* i=5776 cDividendBits=2108 cDivisorBits=938 */ + "0d7dd15f27340ecc81766368ba12e981763803397016c799332e02bd11c3f2eb25e2c8059e254d6d8b31c1dd2749e1f7e161633d2a0ae9c8dbc3a76cfe4ed9b0739114fa363fe7410d19f9d5eed1bbfd99299aa8fc931cd3b359aaf64fdc7800ca7bb033caa67cff1e6f1ceac45d43497d0008097eb4261cfde6d54503edefa92556a4623f7a41193cc507a63771b5f67fbaf52e934f1814f9f13374c9f6a99aa9c622d70799eec94865b8eee30db6efb5988e31b43ccb926725658a872ffb1c8ebf9e33e27494db4b807121725e947cbb91011a8105f7efe5efb07df760d2a775f3ddfb05fcedb3b37ab8ca934f27c37bf63884cccefc0d0b66d588e556a0a45a7f52b8dce1e936", + "0124a54510be4f1c67625615aa00a7b97b8f9ea58373f8faae7d5966440297072af8baf2ae389a4eed76da45dfceebbd736d73bcd4b008c00b8913b0d14dde06608abf16e0d757e9a54245fa1e03e86eef4eefa5459d4d2e8ab099a27f05d29cd55451c005c5cbc5eb28219a293e0c29c08c40d8671e", + "0bcd5327d73ccea777025cc6ba8be5458310a80e2470a5da3bd87838b9b423591b7d13b1f7ae7f44895c2cee805b6a596f82a338d1c238c07541bf7c0c37a95f82d21b7c0fa829a3440766d4d04924b6fe1a67f678d3cea6cbc5f53c03507d3e909b9c2c8e0c70388b91a5f6c0f1fb5818c860cc4958bf4b70101ec3d1f94610fc1fcf66c675b157cc555257066e0f5f5437b2", + "21dddbebc95eed3fcc9af88369fd5784da4a74d93efbd650a8cc780cd748c60b04a181c9e83c2866aad714dc40848f86eece1a2c1248bfa4e46c8c9b61b73a5a8c76f48ce4ea42665927f9e648289c0b1e3287d3153ae17192544d9cf4a1282f330eb2a72b3739738f087288ed4d52cb3d506ac45a" + }, + { /* i=5777 cDividendBits=2275 cDivisorBits=201 */ + "06dc08266ac77be5bb630e58f6577de0a8488dbbfd7a953651f66455abc0e61c0f224537d11f0c0f436746eccb93989b8ad90750b8795f053dd88140096c9a38890d9569f549b36c507bc02452741c6a017178937eefc4da7348def5caf366f2c1b57153f2ece4b58de094de6ce5a2569013ad7683fff66a5f29022f2766fbae426281dd71b6aa9dcad9ad1decf5613b6dfa451794fa5a7a4ae34d9e29f4efd53134fbe98a985b7199ba342895f8dd4e0854dcda48e90f73a68be430d98f248b8f7609eb818236c8a09108fb76dc6e8d4a641768fc27e413c808a95f573fe46d1c31ca7bd369a3e6254441a8883283a7d86f7152097437134da925ad1403d8db3de7311cd8be73e65ff22c0069d317b51b460e31521874ffa8a8193a6c", + "01f6acc5631882d0a1c38263f1e59fd071f7dcda07db51166918", + "037e4dd161ee946440a1a1bbf6085bfaae79378ecfda5baa8afcca713cc877b3657ce05149bc3b2554cea9de70e64758f318aeb29169d89c5ddbeadf63114cb2c0b974b928f00cd046b02949fbcb7b116d20b675c565371c13b9996d3b39ecee42f96f152b4f9e81de5c1f5867b4225c1b195b7577054334510b0ed0d19b3d2fbc1888e134b619e920b81821bccceeeedf32927bfa50bc7375245a74df10604f440036d9a0bd7bc45c55e4eebe337c170686ce7ed20e8118ec8188af1c412adf2bd0e77d5518a49f5a3454f6b2937c76d83d56435b296f1b4cd2137c6b8c23c181cbe5e43aed2c38a68f262bd547bb2209b55129e89783972aac6cc65d08d58bc98d99b9", + "01cc87d62db2f38c8dd76f9abb10dc5c09f5fc60f4d0efdff014" + }, + { /* i=5778 cDividendBits=2822 cDivisorBits=2146 */ + "231bec63fc40129645b3a4372298c97903b9fd129d412ef24713849a4403e94905c2bbaef077ccc999da0e018154e49971b897f3ad572d1719c837aa34265db60d7a3939c34880c10e7c7a32a043ab8bcf6b08a92e1d53a631a18469b31296aa7d662f266bab7949679f928605cad62e8e15e13bf7f011a0fb64496d18b6203a8d6c26f639aa6080b464650c8b7ee06abb1838a39a9085d3c8f8798e6dcb2fdb1fe6940b914a0b4ee4a4a333a8c12b4712d6348308ecc6b34b8770bfb23710e716943885a4e692c69dfc666848972bf670089edb772985cfb1a1e827b32fa7729736f49e695374633d281610a9fc8ed5f64e0411899b9c80c5b00b9a9e3bb2bc01bf388b9bb8882a0b2b2a91ca767b12eb5ae9021c934211830815d677c32b88a5499706fbf33c4ccb06e1a1440254885e6f914b19cb263cd57fffa3488f0cecf8a4ae122e370ef80ba84293a887babd6e4c031c27a36dc0c40485372f1c6bc5f4", + "01d892df5a63923e5a938770b1513d097095e20e506fc47dd725180649fba7d742c32679c5876fa9f6f2d35d07f63ac3504649a433fa1b4612152d64099a29e9dc89c6796dec8a3bd082ff1406ae1c6665e0a49d834bbab9d996980c1cf210c3b4d3ede1dfe107bd9d2051def43c317aa524b32f8c39bcb995da4a0897714d166e8cdaeb9640302b3e873a47db4c4ffbdb90ae1a75e62bdc442ab3a1be6a89f34f65473edc832505ec82ed719d183ea02d4454fbce88e2259eec51025264daaed5fec5ae3491e9ea644189152d22a411ea6ec79fd1a66f7f5fbe8ad1a2a136792a6d6a1e7f9b7b053cbce2a518b89d185dc74ef85c5e7667af6c7b4d795d0363bbbdb88e20650fa67f9c8d8feb", + "1304e342636bdf5b89c04d58606c2255315789b5ad89e3c21fbaa29c5b508dab66dd43f3e6104bea36ff8ecde7671793a81a52f914a12fd6bcbea9bbcce9bdd5569337f6e460faf24b57d6dca067267c53255d2a15", + "d7317272b30d6595fe09d4fb4d6bd381e8d1dcd8ddf5c57751984a989ff7a2c48ce24a3b2e00957844691f453ee34538477b6a3ab63a7efcd2d6ce307482de2a5092ec65517c62286dbd71edcf8afaad9dae7b489c725a4e2da504f49fad9c339ba620a2b620e6660834e96b6f01be69b4c79fc7516ddb970bff3e65ab3698e289eff7a5c554e7b854642a77bc14311825873e018bca67c84c7951be45d91aa8e2fcfdca7a90c78273b4500315a0a027b8bdc2e14deb3d128b4ee8d39734b9f0ebf09179c34605693aacdf1fbecf771a90e050eca443b946835e4c16ccf1e1e713e016d930893fb111c095f3adb34d03485d9fdc6af276a767aea89330d771e26857e9c7fd71cc9ccbd369ad" + }, + { /* i=5779 cDividendBits=3200 cDivisorBits=356 */ + "f1285b2770df1f97947dfdc1cc1c3ff3db1f7943472a476e16755df4d81d7045de751a2de0bd9d296bce7bf67b623f85b8777fb411f59a76556faf66199ed7d57d240149fba5daf1beba146039a105cacb443e716d6a89bb36d319a4004e2f3b80d8b34c9377530a373299d6de1f0308c54555a77db9b8b5ea404c3a3de1d1191e0836d1c989b014f93c639e9bd6fb68f0c76ee04c8b3e9cd865147bdc41d99fc7c8c230a106c6feb447cdff352560d0363d24d67da295f6a347888264831e43b10d74b81693e05976cb2fc8943dc116964337f6d128793e1325953382368eb9ac6e5c877155ac66e02b672b179916e1219e342462aeb4c161465322f9166e8152cbdc0eceb7bf3f7698788500152c5a0901c5f69b27e3c44e89aea468631b4fe4314130f0aaa7c1dfcb0e54272ed93d449b5e9a6b3586452891a6b1108a054981759c0a7c8568017dbec53ea8d3cf2d5ae51f64f65a144cf37c2220132571fbb66811a5515d9ff541f94cb1caa66d875b835bedf0ad1485c912b5d93c958353190565ba1685d8a424de35d30608f684", + "0265f152e68ec1d392b68343bc640d80a50e755494243c3f542a264df44569f02a692eba34e8a41d8bdaf06111", + "648ea4ab4b0530c67835d78774566cbb01b03ede4cb968ed3ea0c465018d530a3aa8c1e79743340acf9d099a176812c8306a4c0ad5ca1db0040cc8eb7db5cf39e2731dd6ba0b4deff3122f1ab73ae03f8e75d2002021a582927557406af5228e845d7681624d9262bb522cd2fbb8a14715a34b1d4c5ca92caec57a9f9d2a22d2491fde98ef62720f57f3d69c4f96c3847cbd8a9798b83e6c1cc96551deee1dc88737dbef11b589f06de21b3d0fff8db7b1fc722aa44ead9ff2f0e1d8565fb0c612dc90c1fb5d704a4f7e55883f0eab16321ab6e5a8045975d47802e9cc8b5b02f1a3c0d2cd7413dfcbfa4e6da26960fb52c7b8b00be8e2f4a58ecf56303a1ca963b2986cd1dd7d6d581e913341b18de5b610f5dc34bc1c386584c295d3955747c87d27f8effda284697611bf6b3a75deea58e1f6ff3156450675ab8455742972e394e9d175486beb49ee6ce979863063a0b487b2aaf5f49f022bc9b732f6a3d005a7d401", + "01506658d5a966c34b50e3e985b65414d068a009bfcbd556494ef7f53da064262d92de3601c8cd1173739f8173" + }, + { /* i=5780 cDividendBits=2291 cDivisorBits=279 */ + "01359fcd6598a1110f20b7a8fb1b2a0ec62ee01ca96f54f372d74bbbdf9e31aca96ae5235a44fd5b4b4a3fbd07284f4981bb7b504bda17e1622689ca4dc31ba17b4b81be95e1e1374005c2f0efd70d9a412c549dcb74c6f5bbedfa380a5d503595e4ea09b8cb160a5523083f66f4c7a4bdeeee1778603c34f56c253006d8210f826352c8b9df70be818ac65ceb2ff70c6d407fbf51fc745977fabdcba34e15f65644a31416a264b4bb64dd64b44bd9929210975c771d843b460f8a350fdcdb6a8949a31f127cd5be1a067975bae62bfbbce921b128e3ec9d197dd7efd44cae161ebb977719ee1dc4847e94f58b0c481f2ad06605a97ed3d4152e7d179b27e9e9310e0a3b6ebdfa49fbdbb906538cf983485ccfd026934c336346d40cfc77f7", + "36b9724e179d27a229e582c7f3119cfb31ae98777f857a3d9c07fb6523c2c41f062e03", + "05a86afcf34bb043a0c46115a0a1edbf277c5689df04a5da532a1d8bb8ecb44cac8fd87eff1707c979d2449d71288b50d2c32dadbc4d15aa0e68b564a86cdc05be5106d1d8b753d0138506d17bec2944cf365a1a5753eeb3c0693d7b1e65f0ea2c8e32d29120e8298c82597046986022a614497d72bee3bc806265a6629339c5a16ed288a8b86697766a53e1c800003dec9e58bcbabf9ab54ad964d89c11f357612b9fe85fd9d680d4c9ef99241c7e4e3967c6219afef02e07ca2fc54e66a8a4dd87f0e54a733adae8b1d0d4cf5561204f749cde9a70a6980a38c18f26b3394c19a92f1921a2809bfa281ba972e00b588e080a05aeb62c28496e5a8f", + "03bc46aaaf9dd1bfe8eb3e491f4980df280d41f570634ac2bbaab4dbd0bc1fec11b64a" + }, + { /* i=5781 cDividendBits=897 cDivisorBits=739 */ + "01009c55d3d61276f3f398b7ff23007d162004aff1f89f4d13fb60d1aab772191284d210b8f2e3170b195481fae68531b5e47a23c04c45c086df2d9470e7ebbf968eedf08dbb953f92d3c0f5f7106236b90c43eabc6ade28feece059533a04d50c9a44096a2becf8f0eebb5bb420a70ab8", + "021e7b316ba2086babb07a5b622c460ab7ba8d074ae919301653a573ac0ec77a900f69957c422083cdd9d911f7e592855ec1b0d60672d435ce1590a5cca2cdaa7a815423b5f49a15eec8b589fa1b6d464a88db1e8a8c4b6d9058818df2", + "791896f8c369f2faa017dbdc09d766c3070bc4a3", + "01cbae3978ba31c9db35b4f377a7eb30a72bc66434e67dfd43a31cd75801f778d929cad83f76aaa0dd2c03a36d45aa52598aa4e6ead180624002d94e0a7545bc881ca396c07380e435a6dc301ebcc473d944477f1871b7313fde1661a2" + }, + { /* i=5782 cDividendBits=3558 cDivisorBits=1054 */ + "0cd94f8bc95c762d7f0e7ae1b6a7888adc537454a113b9c38b680a95fa85a4208d7235a457668e01d83cf7120dbd740ebf6cd418f4a7ce647d200416f6ade5859398eac800e655a6d3e5191ec4bcf00e8de546167c428503e92f86c64e5520aa5687ffbe56ed61df8f2ddf273dd44b1b4e30d5b8c50a36183a712159c18fe1fe48e49b97f2aef4fc182f49864bac3b234e53d61c30c90534512adc40d2dae9b23f95c41a78eea5f3e46feb2b7ee478420b5a5925335345e7d23fc59484780cac56e2a2e44a6eef175dbc5f55a682469b44fb413bdf760e001a006a1a2aebe18d5244a7ff3c15bdb179f1b7b484799d6a73d53abe7a716d45c2d55ba87cf69e6c8c29d3cd5c444a3c9b1171eb5fe3b72b71ebba3197360e9a158e41f801260a4c346c77432f17b92c93d999decbea26e8dc7b4dca660037cad20d86aa6732a6ceb00ff3b17b46ba3d54c706e0f786ee33be3962380c48262283f88729bb470db72988ed2873658f8763280af8ea83e4e99efc34e18dd3697d98aa6ceddc988b4f3218fc0e647fdd95bdf34b9d3976768a3bc305f93413acb90291bc524ac84a5dbf8f10ff2346124d642bd543bc18a4bfe2e2ae5144ee7628ac88d7193f", + "2d328e61cb8c04fe6105d032a909fe8e0e24320ac4e9f63b28ecebd823c4e9f56d52588a5d76d2ae02ad4b7be12828c8b9c09a5592255de59550f844e96a079c891492b8b3dae1d2840084d7cc12f9816eb1e3b457a52edd69efde7a5d58995c8a0847cbff2eeabe1a80a1afde126cc323a417fa28e89e6b3b2eddb052459d85fe608c96", + "48c6c2d65c67edb2f201c7ee1fd5ffff6d7e4441e711380a3d38cf8902832fa14c54e9134bde6fba55b42fd15cc3b3a1a8970df1d2d8760f07e3489625ccfc9a2db9592067621a33805f647f2917116f76103c61d999608e7888d96c91a76f151f28aabf307a6f504563ec12c298eb0f585eab572b9fe4c60b005181e6bc38a2b289894aa6faa6242cfa23365403562546f9efaf0488419a8d080402922ac06f9ca0437c9b63ba2e50c85ed958686300e355ec243ff09d8187e129b9a8384c9ba76334462ed3124ae2d735f696eb56b4fc8fc7c8234aa5401919f4a2efbb3ddd13a636c9121324e33ee19f5edfb3e8e2b0b319099e2ca92912fda33c6e97da01f9edbd5cd1586f2c9ad6de39fd96115189696d66977d0fe5f2c2a51e98b40e5f44166e67ecac4253908a37889d4a1614d9dfbc88a69eb46bca", + "0367bfae35677bf6aac33ec8ced9f9d3f9cda66cedfd426dffcfa2fcb71a837a9f43b2e6d31d7ca4a94590ea4a2cf2d10538135ab691f265a2f7c460c916655e44651d3e6b8fb040f8703653cb948291ed07024f0d87c5e1457767b82f244b1fefe557cc3666d8936227c5e0290be1c0940e63c98b273cff8ec2c10b50078fb4086d78e3" + }, + { /* i=5783 cDividendBits=2950 cDivisorBits=2748 */ + "056fcadd25ea882c3614f54f47384a2145f5198937cc6153c44462a5cf0eca9b513f1ff9664b32c50b14816081253ff7cfcfc7a0bd04a40ff3052007c4a46327a28066c4b9149585954b162951fc6b276ee93cef33f018ba20d9d4ee9081a8fff8acf846ccd0f393e827bd90e556f7b1f0a553fa1705217e43c95cc874a51ed65a503a3405e8a1af8c79eddcb4ac1fbf236af4f96ce0b5bbe11fad3743ff5051655f1e275a53e887dd8bbb793dc94ba5ac1e19247128844dcaefaeb05c335d56d69e6ed102917ea717920f4f3ec9ab0d27deb5cdb78323d3c941a0a57f01a8b7d5e493ba01eb8e1743e50ed8015d4dc66eccecde45ce34da8b05437c5c853c3f43b05184e6f0c2acdae6e65a7ddf3e7d317dddb1315d6392e1d71590a37131f9992b040d35e4eac5948e3d2df2b19e46e44fb0fe90c6bc0fa74096f6b003a4255fa6f3fa7e47464ebae4bc2b883341bb38880c5f20a474f880fbba985f796018d17ab7322348b44900c466fb8dd1f53a0a", + "05cc92d4cbc37b453c939aa88c5cad0acd7eece9a040bc7b6a79169bbb0239c523707a11eb4528045f3ed22d2b768ac50c088951de5c144cfaff74f78cb9600f478705e195f710bcf3de0462efa4df4ab50590c27bb5a08f481fdbdc8e8a3db0116686181df50a6e0b2336c85a4326d5ca973b1205cbe92a03f11ea8a7bd582fa0f46a438c1d5e6832ccbe71f42a323b9d73d9c8f46ca14de83602694c55297c5fa1a2c9470251fcb880845b3d753b43aad70659369593a34a66511b8b3fcab9ea46763b942935af05e2c994b54b650389e1ddc641576edda5a2f4b82b8e58e53f6492795667fa3fcb00782cf9ea9e656407d14213bc94c8b5f78411f59cacb233cf61f4c1eab08648ffe7456c925675946ddbff9cb54f1630e62ae3ca6755b3586d0ca2b1c5e8ee8a9a1f2f84b69d001e44cf4445cd436d368526db2763e4d8c25921c09366ab14ef5c1df25ac69aa7b2a6f96857a0b4d8", + "f00035657aa75a0e549d3880443258a256e9259b7274275764", + "01197b64d1ab3fc4784460fc00c1cd17513b8293e6876a3e1258bdbf623a38951613b0decea6f38274dd1c067f52d5feceb93f463828ff3077d7baf98999271d341f739391416718c58ad907cff1edd27450d2d12af1c21a13e6f19c1d42ea51d2de63fb4b414576e452980044d2cc978c30ef9763a63c1250d9fd37aba71a49c97f2efce248cde3f8e093d0f57135fb5b2c660c1ad73d7101a87cc83774c4b8237aacbd6ed838cb72346b14e6c5ebd8a266cc3160111d44e8cb12b5d7f1c2ce166d0fd40635aad792694cbb1a394d71f3211a48065996c3a5d13758af98bf3ce1f3191ef44860a0e26d29bfd3f7523c744a4120c794a5e3a3946f1f380a53ac53ff6b71c482b1b13b8763128f526494b67c76d14842d0799eed60a8c6a05a55bfe4f98e96be4835a2007866276aeeb8d0c52fe4d0ec1d2e64a82cff2345670542ef45f2935f98603051c0dca030646ce7899d668cd12daa" + }, + { /* i=5784 cDividendBits=671 cDivisorBits=135 */ + "20b83c28d0f33e60ba751f0400fac7a9c04be83b5141a17e995be5a16d239c62d5f5c1b5eb5922006a6c9c101daa67c4dafe6f657d3b70de27210f29a866be7f82a158ec5028aa1b1fdf1d5e3127a56a476f88fb", + "504cfc9109b96763db32c836a4feaf7496", + "684f920026e4d430c09dd7a0e0fcf7911c6a6001feec7ef6dcd1275444a8f14ae814a491bc91df242a9b62516177901d6c9c1fa516f2d759982403a2d76f3e90660cc8", + "4cc051862fe714cff2f527c6c241216bcb" + }, + { /* i=5785 cDividendBits=2074 cDivisorBits=89 */ + "0166cf3c340dfb728eebe699afd07aaf4f8a3ea66760baf353f28a3ef0225380db7d1d4f895855c17a85497a50d61d7191fa90665a2024d194b90cf6202774ef9ace90042e0c05eeac834f9712fc5097951cea82aa1bec2842ef26d797958625606c5c53c4fd042a6144dfc9cc584e3a9a4e2f0e15385816b8c88d5c1c0b8226d049c3f962519eccd357e8886a583dd1b9b773eb769687e53574bf9dfc3259f96a1c2ec00b841b61307c9890b4d36265e01ffeeed1814904f6ee593495d06fcb6b2e6e8376f5ed4062f41ffa54d877892c227c144ba4976c062528b94ee2bbaad78e98e3693d6343a2707434db17a0d3b0127b4d85ae54ed9611070600718eaf27531d12", + "013407e8fdf0d41047ef1c56", + "012a338ccb5fe06f498611f8abffdaea6b5fa9a073193a67a97d0148cbb069a9939663b8fdd7cf3c94a31d357ee29bd40090426235f317ef5ed8c1d6523c061e83c2f9d0b39cb725dbafa2cee1b5261d983c71608ae22e0de5802cf34fbe268528cd5f9724edeb4da4f2a5214a2b0bd59169457d9f363ae3f34125276372ba7ba4209f4982c82d0d730f43cbe3f3e14b1f1a3b2b34440480441f8269b8cf80c940d0fbbc5a653e00877f24ca978773e3bb344dbeb56801ef9081f4d5c210f9ba6482e1019c37c50a170c30a4483468985af0b09ddc691adbc43579f1ef2ed7590e74cd805399959608bfb2bacfd4671aeec5af2f217590c3a9", + "55d7e07813f99b4983e64c" + }, + { /* i=5786 cDividendBits=1432 cDivisorBits=472 */ + "deb3a29d47bb63a9b2a5bc5ea2fd2538216774c940d68671bb325dae823778e230436ec83e06135d891dde66f7b9f3402a046e697e09bc9912d1b546b250bc8a10c7d3c0af0f8de0cf065f5d9faf3b39d7cac2c998a11afae6d9b2eeb43a09dd6cb1d4a4cddb7496b26c24d223bad1cf5bddc449dba4f05064a3f1e34e81706eb62519e6f4452311a1c7ad69f73ffd605ea8b8919babf8ab6f9771f189b3f5b1f46c657d65366bae244c7a1a342720c12b3fe5", + "9fa4ffdf9ae65f17553730fc64e6fc6da7dc4e3ec2167d65ac91df083db640f7172bb6067e525f0c7b0ae15563588fec4186a036cab29fa4207c02", + "01651dba2c3d21649c9d8dea0d4a53440ff83e0998020147f933497e77ac3820d9fc477ef10027cccd62529a8714d559388fa5068dcee62288afe7f01d9fa6165a19bf28f13b81f51a9440ec4eb2e7ed6ddd3db32732f241a8607a4600b888c0ea24f6017a2527b77649ae7a7f2ccb3404e17028bb060526c6", + "4faeb71e99b62e17a9ac486d9d3112334d73e135d979a767ddb48bf43e79ad5a236dd3dbbe44521701658b3317486fd8b672ca6df8704a85990a59" + }, + { /* i=5787 cDividendBits=2009 cDivisorBits=565 */ + "01bef51e82deb0e12a9c617b404e8cd6263f241d77bbe23a597928061ad2a9eddb16fb22dc0e771d51fd2aeab4c4317823224fcc4c5d09909ef6acaea47437d287db6c36f4dc02a3bd7204a6da50b204c30355c27b654bbe6eba6fff083d1c78a7bcea0649dbd389ce0fc7a7f433e393c717915f99be4af3f79352ffc96de6bd60e2ac4d14b679872f1e57485edfdcf75d1b4b45b454855aadc36ca33bff09baadf86b02b52841f72540d2f29e5db843e0751aa3e572bc6d02ed020d6c88c89fbca671ec5ee95862a47513ab343907d97b5ba167cc2666dd7a5569e452e2a37be8cf55885ae6b0cfa5c6d4d3fff49da4c2bd7f15e83196545944ca93", + "035e5d3b52ba6b6311c7532a6dee411e1c90066b2d4c539b3976028ae4b629acf561658cbf62d3266341dfb44d74b6dfecf5156fbbbb03e5aa6684fe1439a7f8589d9c54557d07", + "84aedd06f2d00e5daaf7b9326da9b30045daed6a892f80dcc485075aa661f26423a76fadaeea8f908cee154defff64e4773b83242f283b301bf65bdf806eb820a7908c525a2b95b3e3bc768f77f6a35c60c21a8261ae6e92e6f92cf20ced474df9e094f48630f734463fc1ae70263f4c8e5a29eaa3110512b4509b8d0b97c4fd0e42873066045c78428304eaf4f84d3dbbf9c9a8af81dec3ca6c02674fb2472a017fc2724e8b9efd9278e06165661e7731ee549a21", + "c04184f590ab57949718030cfd080ab054b4996d702cfdb78c0582379fe510bb28f8759a8879e4b37bb93a50ed478e55160eb55f06f79885319bef1362b635f4e4d184bd76ac" + }, + { /* i=5788 cDividendBits=1298 cDivisorBits=1094 */ + "028c48198044a189894f5c69d9467428e4915f647a95f971ec2f88ae687dce162ead296ef1ead915aaeba1ed1d0b3a5b1a3338a9b19512aeea11df61be3bb80e2e1e7cf0e104aa6a8d452e898a4d65038abfd0cf7cdc6b413a8e10bcb8b6e6315a3befa3bd4d89615529bd482a3394a8643a1b7b181086cca2f0bfa56d1d7462cda2abcab3dc6f2e330df0905157121a31bdc840f767676a9bc196c76344afc1cb5f85", + "0161b028ad4856855300d2bc35be66d89d3f9b47b84774185bcfcad79af1d0dbd0baa7fbc55ede3b2d5628d25e622db520d295ae29809b0d8c8eeea0b09e8bc6bb832373579e843312044a325bd01d9fb8544d0d61455972c301d270337bcf8797fcba48a18f2d977236d23c09d2a94ee721a950006c30a5345e81e8c85de067ff17fb1a8d5ec6d74c", + "01d81f586d827de10c3be8a2df659c76417ba37313acdf7da161db", + "0105ca2f9c25129e1086d587aa54bbda023efda63bd44eebbc3958d4f3777596cff3d2b1206f0de6e24fecf017c5ee2f0ce6373455396f600a9f579662e6cc432e90675750af0124231c26116055961214e4bc47a7b25dbbd9611811fe436f81aa0edfe15e2aae6aa808f1a88b485fdaba6c1958784b9ff2046d30710a761a5fb41dd3af74d3516581" + }, + { /* i=5789 cDividendBits=2179 cDivisorBits=1929 */ + "024e532539cfd697ab9ed5aad89ae0593bc0772b4b2e335d82d167898b6090de86ed15f59834b13c461bc6e9f8cc60904e4b6cb4a475f5b8972664bb04fa25bbc521425516ca225fbd679eb87f70683f7c99e8eb8388b98740621f0b85a1f24907816b8d6958c466cf927694e698419e56f69609d332ca7148332ea2231a5ce604bb36678ea01ecd3b82ba86cb4ecb87fce3ddc850fe36947d5b1a394736aed7c6ae611cb2fe52af9ec7ee1a15596e75a13999ed916baf6f7d93cadd12e45631ded178359a488407c56cf00f5528ff4e86390319d6f19b1a6e3ccf8b3b3bf78e8e9e761ad00d02d1c27efc8caae02992ebeee8b8c88a398cbbd42aa6d6b6be18ae39e038dc008607ad2eaaf6863dd34d57", + "e9c5b5a8fab090a33dd2fafc0208494c8a94e426f4e0b9f7e3a4c3d68c2d8ca07b3067259cfd698325d6617d88962f11eb74f1f79ec830d94c11eeed7bc69f07981ab4965ef370ced9a53c448bec85411bc6b715b68a27ce7c98a9a120d5f551c480ea7f22fe99c6ad4cfa6577751f1d16d8b18a5845589d558727fd0a26fafdfc02aaf3d1a35872b0bbb66c5d51e3a126b00320b7cb1b3d6aa9c194536c7749c87da1304d5e91362579949c5d50f375c7dfb89e551f2ab168b8e8fd7522429dc2900578bbed6d3a08be9a64f27ffd9d58e47c1b817710f7cc24dfd09438df6843ac7255b323f113029a9936d85219289f", + "02867456c3a8b0ec1c4a756c70bca1e6529d167c4ee339422e2f455fafde51dc", + "ce9ad1c5a61ad2c5d87058c9611e12c4d60dce407306e465094fd9744ca9c6378f284a705fb383674e6bb9bde2fb9fa67b06bb23d6b7917d6baa363ab93742d5cf3f57c01d59a68821461e883799604345f2ee98772946fb274e9e1e2ee52f14cdbc1105c6c1648f63198b471e29a22967afd9456a4def91fb0b489e2a2c98d3e91078efa031b994da60f74db75135636a7ddc78c394b3c19c8c9a68474c07337640e01eb5abe82f96ad13fbe586e1b82ee40dc4411014152e67fd037b5f950f244c12ac83ab5c95fed9351cecbdbd073dd36521e33009b395f40e485731b712988503261dbbc4f0da2275100ecf7815b3" + }, + { /* i=5790 cDividendBits=391 cDivisorBits=342 */ + "58c5514ab83e76bf828790065b6c279908b80398e6184061525c31392392d60e160ccfe3bd1069c67b44874eaefdff8c6f", + "23e9e748cbe7b4a742e6f96e936a47237452370c496ff435e53b6fc988d7a1aa881012592493bc1720a39e", + "0278c6a6cac7ac", + "13f2bc9c7b207e96bfdab5414c00897b998d4eb9260dbf148c937a7e31d382e5360ba0f086d0478635cc47" + }, + { /* i=5791 cDividendBits=2820 cDivisorBits=840 */ + "06e2cd47c8073bcdf8f256f8e528f58fde0385f41bcb82ecaf24d4810a4d0e17df99c33f35b6bc2928a6d5b85390718afe226615db5c51fbec5b4a98ab9936664791691ce0ee0925b7768f1e915be8bdacac002dd63bd65b3a8966e6ebc68fcb65a8de0302a9a214414679f4d4ff0ed32ba51564a9635b7a6c97c09de5d8bcf3a43bd850f6b9e5c6c3f9826f6c79dad4805e28ebce21af3abfae927bb3849b71dffcfba33b755775d09c6032c60a08a2beefa47aa54478371660e6aa20980afd771254270e7957ea23ac61f05f930104080fd898fc2898871f3329d53d636486277728c821dd20c35782387d752957841e2e20004d5230627868e6b0c738c3445e5da9c1045771fb107f8dcea29b5dd5e676541abc7737b8c741450625cb0542350a32a4f9a445cfd9edb70fc7c4839f645235c1429e583a17d9759c6d71d0bd56e4e4647585f5158741c6156672834d8ce960bfee2a881a26fc3b69204fcffc2a", + "de2ff774e86d1f8e8469985ea7eca0e451e161284170ebcc5f76550634e26a8e009fc7c80804468d2d24d5424265fcdebd8e45bc895a17d7f305398c5179a395873290ac3b9310899372fe7451c2cff2adb3a6d38117078437a393ceebe99450a8981a72643218906b", + "07ef10f984f853d67f961094916020258450e38400d5b2185f0072b1c712a62bafa72ba3b9af1a979164a31a019cdbfbae9418a30a3eb16b605d1cdf5798c9ef1e4ec8134ab4fcb1876324aca064d3b73263e63fbd69e29a81eda792b6e813739658ac36820764361a3755c754b8e50219f68b9fc88ad154c3f0ce7406cd2b7e877ee29ffbb29f4052e5f2182597516decf41339091029ac35e9fd144393fef2c7070f7bcd83a4ba3367d8e8e81a6eb5a5c7b72b9cb5a1981c62c4c8f0833ffc5041fb4d75f5d2e9dd7d9a3483a728cf1430f90baab0ffec01c6b14863077b818415e1d63ec3949548f00270f97208c62abfd848a5b92e3e", + "cb8edd298793bfcd4b846e8000905aba714d9f04f7fb07f7181f79cfad4516c60930cbf3364c5b07a9b036f3a55b5a6932576313779c8893012a34fad9a45156158a8c667bfbde80fd206979a97fa0ed2b4c9b0adda7c439d6044b451f372825ec07fbc4ee6f96c840" + }, + { /* i=5792 cDividendBits=1181 cDivisorBits=227 */ + "0c55e680b2d6bad996f8c0cfa5c9fafea690bb3e1030dc3f9686fac3fb10c694c392622624ec574e707746f2708f8399c29c6ae0c17ed783351ad5c351a5530dbcea1edf53275edbedc1cde7c8af800d3322d495f1b78b27b4e7c0522e1600060231fe48746da38d4d67a981ab9dcea58563af0a6f960901fc636a44523345ce55b24ee1cea60efbb42d38628de828cb4f70a24f", + "07276fa6749c78400b2d616c29a706ec4e4de6716705b351f81aff0508", + "01b96a1e03a09edcf835d30b837f2526866fe110d136e4e61163ffa351707f91d78b094566ab78f205f8f10a10e9d3fbafa3c6ae5ff348b51d9fe6048923a11692964da28c82110734885212b9fa8717cf91ee6f38afffcfa70bf1be3d67b060e59ff30e2959c39c1663d0579480a916df7517de41f555c2", + "050f4f6ab8fa4ee2ce5b815f61c51d89f403d584caa93dfe8954db2a3f" + }, + { /* i=5793 cDividendBits=2611 cDivisorBits=476 */ + "02595470509019d27bb9a7c5da306dff2df0e396197818960e4b4d04ebde6d66f38bd0e01d80adc4c8b7112633d6204897c90b4a1298e9c214fdced21903226719f7ec0823c8ede614a4384b24074fddf385ff863b8aadd7ce37d25c5479f4486a50f718630de2668a5faf49a8d0a53f0320e76190614089fd4d0f758481de60bebb7bac897f4a142e9c290bde2322e057fa4beed4295c4d81094df166aed71871eb955636e36b7db36ead2e1f24a7a8739815372b52b50e2f46ec81469f330f40a457ddc37b6362dda8883a189b15332fbc1b07d74c23556e5a16d2b1e0291b32e12884a97a0435474d7de40488f71b81ec8825fdeca3b0a0cf5fc2ec98fa7771d5d2392c908f73ffefd871bc8f3445e6b61c18ba58ade35b6ac681db361490f5eba93562a5834bd5bd94bbf0fa4d3c22e4b2da26a0f6fb7ddabbcc5f1f1dab145c12607fa5e6", + "09d9e57ef333c1a89d4ac949aca5dd51739fe4f9cda6c94a14ba220fd184aaf5a8440e01907b226bdf6f648953ea008c05eb89768b06caf1e61f57df", + "3d0aa2397f951524aaf09f5a9fc9fc01a06e81b0685b1d5d7d7248e2707750a0ca20f53081480b96338c45f52ff8bae69c860f6a24a08199ef9d93a7dc3f382ad7bf66124462a1d7d5850a25ebb6550e616aeed10d4e6c676abd4f072866f7b98cb131fd5ca17ba827244f949dc2bd99bf2bc54f4e15a5de616171f7721439116c5316fb4efa47e236778b6dab219bbb9130221f495dae7e799c3589264fee3981e1a8f00c54d936ba76636805a3d0ff31002d1343232cdd0e768e4d5a620fe67ec83cabffbbd3e2659118a1990c7e153cd1f7379b2a1aefa152cb91c540c88bab7b07180b53ce96b88a662411310f84312c336b5fd7407577c3e8869c5183fc6a428161e0b0e4019fc437", + "05e44f93a783cbbeb6162588b21d4e67af722b2079caf8920710abccd789bacef3e48e72c2871efc5a7611f799f57e7ab0236573b8a5ee7e7dfc08fd" + }, + { /* i=5794 cDividendBits=2055 cDivisorBits=619 */ + "408d9fbce3a9f8d24394369f00e23d592c345c2e39066040759f21bd9d4d7889244b14bda934e847fd2909a5c73acd1e342b5e87ce60e94acb9e0ad46b3e82bf0832c6cc7564d71ad8947fb49e312aa3fbc5b0136d52e84d1ff386016eb9ef5d4d0a9b63b3653801b64493a8980d380b135913561f18ba5ae35cd398434157ccf7835aa9871115b1145e0ff5960a7ebf3be29e074331efa90964c8f9d21bf0e8bf58a89f2b48e72825025f128a6d55b094fb30b72e4a0f00f4c4658b9d4cc41f222a1752bf02e74f470741af8a2b4d1d9ea2ec4fe3dd74297d57882d442f5a0a73c62c6195b52bcbb7e6b8f5e0d38e1c2fb482f0ff41ba87b6544cd4bcba069506", + "03b4d1b606739301893e50b7cc5874bebce1eecbdd8fbf31914b800b89b474104946bd0ec4eb3ed187b3579e64f6075aa0cac0ecd67297d3a127d9edc17c5e408abdec72b7c1c3ca45b678683b37", + "116ac34ad4e44d0365cb97d2e5dbea148d1526ff93c38889adc5807255e02577482965e6a968220b532740b4832c49ba10d6276ff53ed5797774ceabfdca8501cb6c35912e9bf12beb113e2e6b150113e7d0efd46fbc96001e3b4568cc5b895ce5ec80f639cd7cf37a2e161ecdd4e3946e807decc9a72054908c3c92391c53fd364f2dbad5d224cd19566a74fb923df0bc3e28254919776123132f886b962de00689fc6898538cc32e10d1e137393071f944fa09", + "03a4a07281b479c9c4722cf4d73b8d76cb75194c66578b8fe33575bc79a0907cef71cb2baad8d3374997b126dde80f7a86ac48c1e9ce5ac674d23fe39b0a6bae083b0f18f6c6392b5f2d7aecca17" + }, + { /* i=5795 cDividendBits=3973 cDivisorBits=1835 */ + "15c915f423ee08ca9b17b9932b1a332222b03f3a978c350ab24e5d4a897089753bac21d73f3af5aaa4fec58743603e37021208a3e8828783f3d68f4a9f044511d220bf7c9cc31df17f06cef0ccb620618c55d0f709cfc6083a4e2f9339b5cf7b3a09a69a7e765d0f9cf5592a76488cf6e23589941acca2dba4a35e240bc2e80189fda40de00bfe9678615c5a40d59fcde139247f71718582a40da785ccad47bf33d6380cec274e99a27a92418484b46e321fae4914ff1691fa01b703cc23c2ea033bb363fb4ff1dfe3473abf69ae60411606d9cb5353a4e848a30851207fa1850b0c19326a7e2d7d8aefdea684ef55227c2ab78dedb13bf75e27d897275e5aedda3d9fd106d8284b9e2f9290fb83ac4bff7074a70fcfc5bf40f9d838b9794ae7291af4750fb8c7db9ec8e6730e35bf1bf6498682852758707fc9e6d9a475e49ba0516898be38358cde503169948225ca2e6267b967808c2d391a4683f082001f680c8773dd3daa353720aa71e474f8014bd178b9ce75ca7d667b54707bbe297992ad9bc0264c92af4267cfcc2967e3f1dc73e22eef3efd1609848ec18f315c9e874fec195dad3689f8d343cdba3f7d78113220cdf21de3a4849b2e310a69b5778e9a214bd8d40e0fe9d97be98d4c8343109fdafecd7a5624b5d048c66e15acc9f5f063d7517607b4a3206b69300efbb5ec", + "045fe43fd3a5351696d9bfc46356919a671fb56890bbb5f511adbab954551ad3ca6000077ca79e55f7df46673c2fcf07cf12ac52f4d70ceda0dcbaf773dec0e8a867bda1bb18011cb0692f8d3b8d3f831b24368d4000149d6bd152c6088b88da6fc55b274edae6bbcb6cc55696532dfcdc7ed71ff92609caea4fbffab19a6f5b38f61cb549c3f84c65e4b126ffece68a4fe5c57268b2eac335ced0e1317f9ce7f4a042cc086969fd314e796543ec7407c6c3178178201ba58f974eff83b532941e20602e49cc20c03a74c581aaaf5e811c863e3ca1035dbcccce3e32192513823775b8f4dca2", + "04fae2c71af2d19d701000172b1afdcc2e8f8b66f31e9147988560b6a7fbbc7f4137789b8b842128dcd676b0304fbc01e08c154f415a5518f2f204f96ee19f1f71a7a716e732409daa076065a33ddae028f0448e73fa7bca1e166f4372aebbc2a63b5fd982f7b083ee34f5c301207232d48c2d013b8e6368d91bece5cc942ca81c1a7259d168d79d90ce4d9728181d3dba70c27b11221fff62e7df8e5fc508d6667eec430e6d61ec8065f676115b6b529f373a654796cfcbfad1c991293a05d24e778ac19fccbdb347a5bbbd1d40c3858f2b6b7cd40b3205a458850277c8e1016e061c0a26057e5d15488e4fba9ebfef0d2cff60473e127214d2c1ddb9bd3c76a50988f4983f87e8462eef35", + "89d9fd4b7317cd47a9151ed715b2af95e0bae08750c6910f467054f06a0c5d95ff79d719a558c04e3f419d7cb2fdbbb63cbf670e3360f1437c139729a1aeef89efb7834ba1ffa5153edbc95de460d6aef0b55db2a4db4f3aaa6f8729cc4c7a444f7f8dc89fe5717fc325b3c01a59d01e03d4288b75fecffe2886a5dc3ff8c3bb3cd33dafa2eb00da9f62a9b2a136fb151a0ed32cd54ab7f2fae304de9445d1ab4604e78e0e76f54b38063247e0c67be51626c3c3c3a56cfdbaea557879fdcb6113de8e44fb4ff36e3f11601f30b0ddc34b4096e426e38f2bddb8da2d4c22d575003932ca62" + }, + { /* i=5796 cDividendBits=2148 cDivisorBits=1 */ + "016bcb4949901553d8c8af18b491c4a95b542559a3696086036394e3fd00fd91f0e75dc6d3e61186e5b178db576184630c2f9806fa2a6af8bd795e3c315dad4a3b41ead03f998ae588f3667741cc01da25fec32b25e08edb24390bc36bc59dc19c98b55f07fd56f41b03b40667941601b9448f1f3734639a43c9d51f161db3b722343a362eceaefe129599110e28c16f846900600df8dba93ea708f3fecda82627a0c7f8f2200f453d5e236bf40ac1c77895734d280592d3a8a03c3cba4894ad86579a01515c7dd5e1d6bd23dc7e39d7817269f29968e08282eb8abd853b315334703573215c3e3f0a3f99913979b97cb2f10bd207f51dfc36338c7209bfd94d9e35c5b23f3f952617a8965368", + "01", + "016bcb4949901553d8c8af18b491c4a95b542559a3696086036394e3fd00fd91f0e75dc6d3e61186e5b178db576184630c2f9806fa2a6af8bd795e3c315dad4a3b41ead03f998ae588f3667741cc01da25fec32b25e08edb24390bc36bc59dc19c98b55f07fd56f41b03b40667941601b9448f1f3734639a43c9d51f161db3b722343a362eceaefe129599110e28c16f846900600df8dba93ea708f3fecda82627a0c7f8f2200f453d5e236bf40ac1c77895734d280592d3a8a03c3cba4894ad86579a01515c7dd5e1d6bd23dc7e39d7817269f29968e08282eb8abd853b315334703573215c3e3f0a3f99913979b97cb2f10bd207f51dfc36338c7209bfd94d9e35c5b23f3f952617a8965368", + "00" + }, + { /* i=5797 cDividendBits=231 cDivisorBits=67 */ + "2404986385f461faeea003fed4faa97c5183a79bdc65af4f8d6b7be235", + "05d7bc57a2b46ee37a", + "062a2279ea5f54d27789a2173d93bdb8e7b5ec416a", + "03e94106399757b7b1" + }, + { /* i=5798 cDividendBits=1303 cDivisorBits=696 */ + "428e1de836479ee8b08c14c7e97fa52d1348107e4ee1313c4e065620aadf0ea9cfad0a5c654097882679f321898da0e34022bb921269a72a2738113933fc404747620a06f7080c0eb6c6ef44e66ddf7a50e4a8287ffa08ae18a9b547bb38178af462bdcaf292a1b0de940affc7e93fa78beeb974abb8c231843a62a9600e61daf5e41a08441dfbb85c72a3a97ce6004ffabc531e2c1321010b8eb2b2fb011f585c4853", + "6fbeb8098ee736113e6905e565eda4cf38d439fc43a9d39256f426596b03f897d212ce6c67c9bd9eb7e9e88d906a08f8b04026f03c101ac5a725d6c875876756b31748d1216118061fb6927cc864a3bfb80a4c5353b079", + "9879237cccbefc599f43a49dd8c3c49780bc579ef9aea915a5e0a3c22a05aae12b593be33c1348ca9402d20d9703c11f22d03bc3117887eb2ce6d554efeffadd33c68ee78e55bd01ebbf45d6", + "2e99d6718dd72f96c1a108ae07fad271e86d60320b208d527adc603970a5c226b901d61fe1bf8b567a81a04328d33b63585bed0cdc94cfc6d9c7f5f12e8073215f6de30d1d71ed73daa1b5b15d79b34221cef3648f262d" + }, + { /* i=5799 cDividendBits=3317 cDivisorBits=1106 */ + "1fd60ca1e6cd5818833d355c0a1cbef306a37f55c8ebf528019234842babd1f9f59fbded66521b439535364ac075f89babfab76295324b3a3ca5209a407e52835a98399fffce4804dbb9e3ef945c3ee562cfefc3139734db11a714a9d7b9da6e50fb11ebaa7fe1c067af3447a314b9d3cb5d57ce352d70eaab3ee3e656c299d1d419f07dc64b3481f0f7b3d6faa2f86ddc53445a37bc0a0ef61edb2f7d20f27fb227b43c3d7cc297e88ccd0f1efee542f344b51cfbb1cd2e8b4d1a282077335e3eded7e949026f833ae73cf7b7503bc8d8b46841dd6cac4698d1a14aaa4c7c8b4c3480d980c9151b9b1f22cb1d942b1138ce030eed731729dff5604c471bd4c83b9740001b1b30838af9c7da5a1c2fa37cedee27a50b6c01bb027a03951aa634ce5cc1056f0079dd3dd4a580331c5991f0a6c2e3d090e635ce967185f54709bfeb1d3ca013fe7be84972619ff5dde1d466c84cad1cc546c044b45224533e902f6d6ab5efbc3956c13caac70c36a1554cb36b2729ac1c850bb6132fcac5f65ef3629ca8eacbfaf166cdb45c3520fec2bf1ee0592e82f40f1eee55c3cb7f305c", + "01734c5aac6a48bdbaa767c5475a2b97c4543f0bd58ec81b6703773ee11bf4789fb4464565eebb2924836184cb57e8f7ddcc7d788d1f56525a7d11db40a16e48b491b221fcd82c21daeff68a7c1c14ca98ee4e1c7ceec5fff4254f0d607c684716d12d42c18f09b5b632dba5a5d530b0c823a392e7253eba1d21e6cf2452bf4989df2fb51c555939850b7b", + "15f33c7a957792f452884a3ff0920ec5787afce5eced1596076377c309f84ae0ef904cea3e7aa7acb8e0b1c0d068931f6cc720aefd751b78214de18a2205c3d764dc9c1ca73045e2b6ce76fd3dd7bab7c0691e6765c5ef9ea1aa52f104347a53657e197a68670dd75eea6977ff07729488c831c00093b21ad27dd325d932b3831d065607c177e81b217186e7f79ab29fc5648d4eba7d16479e5fb63f05e1e228a3895d13e4998c26a81281013d885def6ce59eb0e6e234657ea20040aab57172ba2ba7ea9239651145592684748ba24b60b844519f9b9f2a8c9d5b1eaeca6fb6c08582ffc8762b4c186c5aed8910f57ec0f7ee07a0008f9dcde5fca0a4a35eede6ac181de98c978d6290ec2c06b824485612a55f14", + "f956822b6f305e00645d288f52c5abcca53ba3295d608fe2c13cb0d6ed49d374e8bd1b57864f0f3808332b835d24c206fb52f76826eb41a3cabb63f6f46a84689a98747f8e6791de114efcca3a05ad5544032f6d3c25c2352197daf3c695d290a8c939bbc093bce6ea8a7ce8e6458dddbab52c480444a16761f7d365c418238a32dd6945ad91e190a5c0" + }, + { /* i=5800 cDividendBits=1608 cDivisorBits=710 */ + "42b6fe89e187130cbcdfd43ff9173b8e398307db6fea7d0242149606a6834e99793d4004a950f4c900ace1c10d55b2fb994e61152b5165fba02ffb56b1bbca68501726b558cad97a58e67fa70403ff70c5125d35f584de9c37527c0b7f3a751ccc4b174da9ba38b4d600ee18ee2e00995a2eec1bb9e8e655d9c57d88bb34d54700406c4ebd463fe001b0686350308a86f54b98862bcaec1e93c0fa6e429085a05846af6b9c326c523851330e533101a3504152faf97772ef922d7425fb383757894c4298633a0c0385", + "0ecaff526f5b83e823dea08ef720828a99deebb0aad65a1329f78d5ab5bb0e5fab05149775b8651c263bad63f38d7cb99aefd46ec4939d84095efcbc228f89e2ac2cd7a6755f46b80a45dc75435895deffdf2b7c07c3b8d967", + "048289109af882a42a236027d663662f8e84e0b5c70ece20f9ab9dad9c4fec8cad4ce0df5c2aa1806c66a1ae19e93958d78d99f9926f0676cc54da61d830a62eba02ee386d92946a476dff4e16255dd36aaa7e4f80549e3fa2a6a6e4746e57a7b23e72e977e741982ebfb448a3c3af1177", + "034e7616af7ea34e7c973d04e29853f140e18b8b3a59860d0a7344ac31323062b4ce5a7b576b854f99d431dbcd46a0db8e064c25e3cbcf7f4d6ad2d36fe84b775151216773035469cdf369f2175a5419e6a7276f3ce6461da4" + }, + { /* i=5801 cDividendBits=1747 cDivisorBits=934 */ + "0180ef56b7d65082ae567d7ff7d66d72affe8597c62b2fc5396618aface1c70d608ad742e2ef5d79f00ffd6e1f63be738f56239dc71edfd9f1db25e80fcd473b535ae1b5e9e55a493f847cb5baabd92c473587c5d678e52bad73de551b54e4142b6dd7e7641944aab59bfd66c8124b2f537c6681b204203b5f6dd37b8223401569c42ce20b6389659d45d5b955298ce933acde7f9f171615407b234e53f33a0836f4c79ee2e269d281e493a63b4f4888b4a3a59d2503532310263d8a4619c831eb566a021028af23cf580eb6fbb069a75416f9447e384de89775df", + "3ccef7fdb6c055f287c3f92ab3a14ad867628a357bf5c3b6b62899b2df2878581b16e41903ea3306504b3401e070e74d37274daa388956914dfaccf483b8afa59dbb6636ed7456c1c5dc228df3764a06cd19df13985589f1b60932e13a009699b1dd1a9d47054867af4666e48776cd5bfd330a1d22", + "06548d8436b7702f85442404f83a92198d420799dc58f33120456b08d9b84a806dc09b85082777e753f1d4f2dd3724158a7aff47c671a89eb4d6e0fe83dd789e2b3ad57109fea66e823e805d0a5d652acba52e2274571855c210226e3ea33718c3ac3744ca7c", + "14f0cfbc8cfffa8a82601ad0cd53f9160441e2b1c07977a950109cca95cdfc6429c0e530d115ca4f061649bac3baf26307a536c227fe72c4f0f0a4908c88133aa60f2af68b670cd886ec3f0a7eb7d2c6a4b6d156300590796a1c6f2581168ac036c23bd1375f609e174ece6a73d10aab9929ac8567" + }, + { /* i=5802 cDividendBits=199 cDivisorBits=83 */ + "63c5cdd0f120080d6d11ba4bc9e5a593b73d5beacc051ba571", + "04457db5fcba966341c470", + "175ba8467a9c1361d31a6ad18ac782", + "0b8ae2615a1229a2d491" + }, + { /* i=5803 cDividendBits=1233 cDivisorBits=352 */ + "01b95c45bde46b21b02d6ffd4f9976eb0fa5760e1b34ca9e2fa3e45901f75394bee43bea1844c216492d1527ea371678c45206bb72b091f6cdbedee0c4358863a4fec46d688005b6e06548d586b447a1b8317b3fcf2f8715a7a963f02d152f7ae997675bbe0c54f95c11bd4a049b8a11ee6e90ef5259812a6ecae97ddd91b142a91b5d04276414587ead069a5e17ff78396928c80e4bc0897c26d9", + "776409c66e824d0c0b34f4e348e7afdadc3424261650be120834cb7270ec9b06fea63fcb28946ac34f2ec4bc", + "03b25fa1e15238281b2e84c835d37cd379993011d1134c35e2bee2c5d0e91b3da6935f96e2c0fdf923783993123d477b3752c7bae04f2319f867a9ecef6649fffebd8304a4dc8c170917b5b2d422b588276892eb84d2c86212ab3f5fd1e897c449fd9fe7646fa8c153a9c25488bfe5", + "770bf4923c848ddacf2e901169c69f60b7acb0573db5b0e3e89fd0ca78b2fd14c4441e228ba077189bfde6ad" + }, + { /* i=5804 cDividendBits=1433 cDivisorBits=421 */ + "01340422829cc84c059c0459527264b502af83c435652bedabac223834bd1c7803987b25cb583b23dd09cb85a61e8bb66bb53a2354226df1f6d84cc971523768128edfa5754770347ab6212f75713206c3b2dfe44f4b9dbf651f5721c3e964ce2cf7d26cffd44076ca40b10ce6e56bb9a42399cddec97b2b244e9d35c9736ecfce50ac2560bcd5b7d74d6e65b0ff4080ce6dae0dcfd7e96b66992601a2f608e4d9224f23081c55fe189516dbbcfcfed21edef9b9", + "062166398650a34543f711f88c18e7deb34a3301869fd4e6d82d342a7dfd1b43e4e5e6fb2229df19babb26391fd18a54263d1b5240", + "323e56dd352a667a08995e378c1ec0ff47f8e38a0e2d044637dbabf0ab8c0e070d6ee6797f95eb06c4f5e6e9311786e37a4b9bf48b1107cb2de64929c4e6006f1b09a035273aa3c574c9dba931099f722debae0789c4b1195a036edd447b7600043e4438b3e9d1d54059c005fcd56d598295bc4703bb7753b3202088d895f9", + "051d78c2bbe521a3e7ce7f9b0ccb461edfa1f4b35f6a17f13240cf2a1c192d6b0c4d9c07774773f01feb19da97c94a8950626cb979" + }, + { /* i=5805 cDividendBits=3984 cDivisorBits=2318 */ + "ecff1d14031d940f0a2e7b6dab77a73356050505d3b6a9e2fa2326667f87f5560922daea43823051fbdf5191d87fe5d9e2a1afda92b551850b927e9a2782ab4dd3e83b6672e310bffdbf1037add8c9dcb6b47ba4340e859a69738ece510d2c913f3f7d31d9f5e2e03e031540672b2212644228d87a4622b9f791440e00b41af1f351d637a41243ed26424c214bc930e2e63d5f1b5e7e2178bd0e31a28af92af210d991667b9bb668fa1b1340cf8313aa7c3c1097a148aa04667681ce5287eda485f67b0d6235a9cb02db3611d148b381c92a1810d788cfd524025e296e7fb64f8347ec1ed566f43724ea12f6b96339a6ac86e87c73d9afb5c712d271d189e1c7046de13bbef209326790955fcc7abf28c84f6f10c8f488eae3050bd52d50ce6198fe1e6e136ddd30c272c1ae1c1e7204138033ec9ad0dcdad57f381443cd6fd19dbfaf19cd21f61d60feffefb1cc087c6957572ed7865905ca23e139a26bc88d7527b41fe18cc1e68b7ca5c659788237f092900fae31ee688e5edd5bab319677fbe89a154d01685aae1296e559d2980d138993951d3eb017bcbd4940e1684537368fbc3a266826bc8ed87eb224c1870938d5dc274133c5ec92b29c39faf5397e721690ae1f6d767f0dc8eaa287cac363a5f3e2ab838d572078ff4727f3bdb0dbbc484b1bc1c64704ec5a84d79ccde6004986", + "299ac2fa1d61d94a2ba6593878d6df2620fdbeee561956896112504e4b4b4bc416107639f135f515ecca761f52e5ccb658c4786a40fe7906e24ac10e53abc294f5da90b9e9e4cf6f5d3025c85b04a8ff03b489686f7a6188e5293c0a613599573b99cbad74383a62649aef6e0f7f5ab2dd276fcd3fd0487547d798f257f2dd5f6405995b3120227f7b27b610e19e968f14ec16e8329e09ec7c2eaaa034f0f80399d42c5a852b7bb000e19dcead5ff3ded68303c3e6be5d11dda540ea7bc4b258bff05c53a3f955ebd261dc9f52a5ac944e3585445d9b5dc6b7a0352fd93f100a4ade8be907331885a982fa1627a5b6e5b505d60f61ed02984c3df797a1bbba3d13c6b1ab8a68bcc21cf9d5bac4516faccd75da998fdaca419cc168f2465da3fb5606", + "05b247fa70ba6360f4c6cf49e931ee14bf89ac794e57a77b8b1c3a639f77cd229989babda0b38c613e6ae36b7429d019961fcb3a96e25ccf6a8b7efd583cd759ebd6d1a32626db64a0cd4c2fb8110d8904289d7bdef8948fdb2dc56a403f76e3d93afadb5f36076af038b32dcf8ea751b3f98e0d923e8e2b65a1b8986e8b79cb79bf42cb7fbfa7eff26989b76ce72d543f533b141b428fe047633f99daa3923f005d2ad41916a2eca5ce7f6129f024fd4fa4439e93b592e82eb565cf948c4161288cb57552bb418debe1c4a95489688c7c", + "01cdd883379dd39f918169a4119741a1a1369a38580e7bcee58330a30495752e4a17d2f8b6143d6bb106ab84601e351e00d5233b7c2e66a0f4d31bd5a9a001cce66f76f27219f1e8116707ae5460893eaff36e02df8feabbda35460d8eca7879d7be425fd4ab33a7d69c6816ee02f966828a637fa2463566e97899378d78fb07f3c69eeeec06ff294b391f1156aaa5470e49126f117b2698fdae88b84140208923ed2239f3498742527625fdd0c06fbee4bd3e8052f41e0c796265940285bcc0ebfa3dc5b5c25c84f4caf2d9a0e7e1d61a979953953ad26b9fb09b2bca40d70cb0ac2ffa2111ea1329fae401fdc986f1fb9398d73dc6a5c7ee1bb4db58ea9eea950688ef633c58d4b7c6384ba4e3daee2313acd30cb681634eaca15c02a8dcc7569e" + }, + { /* i=5806 cDividendBits=759 cDivisorBits=430 */ + "470998349e1b28e08842ed330c5f69283df9a187bdefdbc55a6fdf2ad7cb5f34cf66ff87da3186459e1c930c16e3c9d3fc2fc36b98dba8921b01e6d241b411450e1acd9e75a37130312204cb7d89dc8fc9a4d3263b413eb00b8b601c2cbf4c", + "0f6f5983b52806ec7e5e37cdb2ab8d110a2eba9224bb2628ea9d6a86d6a6fee938cbfa751e1e8b68d300e0e8e26c98fb3c1a0e54d84f", + "049a35466d165fb824ad0730e6fbb2a5696790e2970afe6682c5430e3f6f96d643a84b5a7b8b23624d85", + "02505a7c3f623a0254f55038891c215c8d354bac8ce66068b572537466899caa05b1d75093ee066b207078ab5e5755bcfd9489ca9b41" + }, + { /* i=5807 cDividendBits=1705 cDivisorBits=1647 */ + "5e7c0976e6266e3f636adbd375c70b1b2e31a9a10481b0087ae94aeb60089ca2a6d71c40c056b16df546c7dc1b8e2d3a855b58e453735e1617ae42adc77a2dda5bb37ec7d6b9784248221a475ef912ff81010ea3716295b5cc9d7656880399ee0d67b9f75ace567e5a66233621ece376c9b263aef7ca72c8b1c60ec346321839102c4eaba48429ff93bf3208b6c75195b53eceb676b0a8f0f61b1f16eaf06129463b04f3f53688e144a30fb8303d21877011799a52550bd8ee5c85e12184fa2bc43b2cb84a3afd4315882699da9faa334cd6c08fac", + "4c7c0732031ff49545764aa54a854d29e0801a15ec9cc9d70c36594d762429a86f2d1df9c746bdf46c6345b4f471d6d349a6e7e75919d71f4963b0e313693414110b34eefe0ac3d403c51e00864d4a66fd605fb3a4ccf9904e4f4c5df3e88bc32d595a1f13c1f31be1e14ca8b77bf78a77b2ff52e4c432991cabb689df0e50a63dba309d201ed12fbe6a399e41ba8b11d7ce7fe93efc1fa7c12dc070fe2e247fae5ac5f16a0c922a3fc093425a53a21b3701d2d64bda77f4202aadfae36bfccce582081be0c9619d45a2b31978d0", + "013c3f649d21d726", + "23a4544610dac9124b2b5f4d90d2ba162841213ad68dc8b0b0db2a56252e89304295d609aacbbaf520dbe215a0c3c1377f6f4e7d4976bb3a6a25651ec508ff1b5073e2b93ea2d7f760fc3a0c36df0fa3c747ec63b0240595384b808ccc0b42158245c840a5ea2de8a06c6af5885607d8d59e9b7ad42785c9770f253f3fda7a827db506007e805a0660b8cdcd69457ce038d76224c51aa8ac42ccce9cade6c823405cefff99a763ccb112a1262e667a39163eb0522295f041cc2faef35c94cb4cfcb3a4ffc0edef98221bb9b1f0cc" + }, + { /* i=5808 cDividendBits=2248 cDivisorBits=1568 */ + "53b5fe30e1efa1bfc03e73f07c1878bb3d1ff25b46a221434e74c10b9d7212d5ce5c037c3fcf4edb291f3e5976c270ae857e3f05dc9bbbfed34ef2d8986fc9dd25d8bfd172f3087fb2b38dd4f26af296085963bfd3a82216935adfe35822738d997ba2c1f94908aeff72dca64eb2dc40abd4ac6c40575813769074dc646ddcc03efa9adef32c6c5d7db2b74d09f2e36511b5d3c4dfd603aa25c2f4974eed64346b265f05306c440e581a3b8f45db913e2a03d3bf08dbe0b73a595caa0ab3b4f7b6f85bd2307326ac6445826d94b3a640fea7750fc048c2d158c805dd44439ab47f7af3324403294bd1ab0b050efefac79529f34bc2f23473b51a7134d75d095fbd1de5858b4b91461901c2a25675750ebd4af4a8abd046837c", + "3f4e1f4e1049f3ca31e13d52f5adba626ffca43dc98378bd56a27303d5e7a5e8f02681937136ce5428bfa10e5fb8036267147bac33a0ba6cae89246e346b63cf3540f6f9129e2442739d4fa0de611a34a5e651a240110493dbdcd35369b5379baf6befb3c79e1b62a6ed63e36e107726871e199079049eeeeea4d6a5456ce272195ab85b1f424ef55f562c013ac687ce01ecd8f13e7bd51c009137d033729181b3656867ec2e86558bc091499305722a981c57cd7b5cb543af758b5f8da8691c17d7c85d", + "015284d49d9f192db447a3a8abf4a9745a088302dbc21db9f6e6b7a9b8d10bceffde1fcc7620744d7b3e08c28ac4766f472ce42698d8357d01ab67e5ca7f38472b3524931dbc5c11c38fc821a3943910e322b9a9fdff", + "0a4502b7b661435a8dc93c598ff1e61feb5e898966b723c98fb8f5ea98366959c7118c4f213e27d24fc63e61a0c9c198fe5fca8c3fba5af19d2e6258753489dc5215ddb02449da8e761b43b386fc440a36ebc52b27622d3ddb4d0401f9b41609335c689dd9b76cd457e544707113b694bb8f775ff451b2edf07cbb54376fd9c0977fc73624bebe31e646627f57437b1a9cb64499911e613fd9cbe58a9a913be19a3e85b83958cb42c6004a9a52972c00da99e89b6037c03ed33c1eb05369718754ed05d9" + }, + { /* i=5809 cDividendBits=2148 cDivisorBits=229 */ + "044f9f8009e300d7e3690cf236b26733b82f0d2973a9f45b932466bb0a392639f7b09bc13a27cfcad82c1fbf950a6e0d8980f4186d23549d50ad763cef177f44df30faf35f8580b2f7b8e4b5f682eda02215f403d83c25731ac55f2b4e3ff71b8148c085dec999ec882545037763e11123bfeaae79b859b91014c37738d8c68fc1109d5f7b0bd39a0422281b5a307a89dd56451f173231549a1745ad87fd502978067dfa6809480839378057625134cc021e478cffac66374441b056a7ae46074ceca77496953877138fda213724eb3418234ca62b95dd123ac4f3024777b2d0f7297287622ffb40f3bcc78c0744183baef7f0ddfccfa6e8e02c1b2a84765f51e400d9346a3d8ff497c063afb6", + "0d42dbb80717745190dd05f3234de96113d63272fb251ff35a41ba0677", + "5338e0aa0d1d5dc5bc9b9d7409cdbcee4fb12d014eacd9fb0596384e0657aea09d3dcdbc4b298be4bfb3dfb06a68478336813b9a612767602ddc989dff246325df269afa5b7f6efc844f1ddebecc516f0dd6492b08de12924be5b7192d28993eb2e8d6779713b7d330d3d5404e0b01e1273fee7ae2c0a3b44d0de409183df309cdfd4d4687effc4aaf0697f1fde25107e800c73ff0830f9c1aea4c8d5ab1fd91837fa4b24895ae0a94af27634dc4fc892bfec2182fc44b49497474d29004601ab90be1c3f37ea977f81f19b788d39ea82d02b82908e3ce63ded4754d69913bd5fab62783cc4c04eddbcee77e2cd62ec0", + "0b481309e815cc3f52994bb2fe65bae9bb5e3639ba80f9bee72c3b7476" + }, + { /* i=5810 cDividendBits=3135 cDivisorBits=2954 */ + "5ee6989d27d690142c4081c2088493507c196ba53f4816afcc7a523c2ad42f9688f0add3eb3d1869a9db29387a552ac8a5436ba0cd63ea5901f5dcad8ffee5cd16435929cf83f102504a8b45d46a132378ed7ed0e80abbb29a189e65cfa4f018318b8c0b91ed26a454dc61a56bf3067998c1bc0304df9b8194ac6288e7fcaefbd48684c6803a9f125f65046df769577be6c82414fbf440b3f15e233d16532f8d817f053c49504cd347495e3cb8ba08dea64bfb3e7c4bc37ef218a1297975a926f441f39c57e123642bcf1fb9e4c6e446a1979774927ec0052903ab83a6c67f76fbb58cee53b981a232b32189dd76635fa65ea9c90fd8738bbe50faca212f7f33d694f1579a288bc8e32dc919c9b4ebf841556e1f8c7398563d47bd2abca7bb6fd43f6099a1b84b935f26b68977fae081e99b092496d4351cd7a7efd602ea1b9949ed11edbf1df7689f7418987e0c0e55e0e5953c100b7d790dbca5c2403e6a1571cdf73ae791909cc3b45a59b3f67bb855aaf291bf9c48c054f4f0c4f1d8b3d95997fda31e1ecc4c", + "03fd3cbb8c8f799dd724f6fe457675823a01e7c1118bad568c005c3af8e95398ea350980360da8def7b0960a8aaf9206f57c9f8ea303f5003c4498ab2fa135acf7e0ee8f5937b23e47272f5156288fb3954a55c055338575f11f032860ee81665f2b060c08177e31e64e36da9b3a4a3e97d46b0b904afe11b1727ab44503430ac3d1519d696c0bc80f3a9b77106557d68a4239f59a7015e4fc878d33d6751792771fd2633798804c898ad4af1c8753e8d25644639da195fd11cbeed594459e81990a99d3150c0242fe9dce32dc86f8eb982199f152bed08bc119762c299a43e98a46b62ac8c48a9acf5e10a88e3f37e41714d6d38942b27918128e2405fe811c1e07572f9041643d4746d1498bcca06853b5a03082c27ec6c3f17d262fae95b084b3fb620089d0c5623f8728fa02562ebab6569f494189bf479cb4fd8fa3a61e01009ce6300b30da2dc2b2b5775770aba943a62614ce991d76b6ffea34a67b8f21cebfbb9d483d5cc85ee567064af4d0ed0b", + "17ca14840e0e2484309b91b980dac0f2d7558f2786e52e", + "d6cc2631aa39f21fdc97fafcbf64e038d3fb918efd4a49cb48173d43adfee178ab0cf9dc2773f5d42ce8c1bfad96c933081a45b2f58051bc6e10712733b89215a0bbcf7ccce1047b1b9a69565cd8e638d9074ae369981e432fea9d4273e5c057aa85373c77369455756fba55e792d761e68c81d634deb1b2c29a6c20ebc15d27f893c3dac2cfb5690dfd92fcbafdb791b2a3d5c77549b295443b7a9c15f8d305cf1c9077aac8c0987a20842f341c202d34d201a811b24cb1c69a2b4e3c5c484adb68abb0f0c899a4527be088535a72c05e7b0fdbe3fb1877feba8cacd2daab07fdcd86c7b20fe1af09e18fc0d23069f5639259f10b24d5c17df33d13a0e55d4a27b54c38815aa88ab1d56365d62860a93a0b165cc957e03c8e9975b06a22b9b44618a08c26491fbd3d5594534a04e2263bdd43a8b3fc3b9ce192976c12eb1253d51a7bed94690047d51a6a613d29ab717ecaa6def554ca5af488e194631dae7ba645887478183f60c0a845c58e7bc75d52" + }, + { /* i=5811 cDividendBits=3585 cDivisorBits=2310 */ + "a632a189107a7ce1f8823e0fb8bef05f68899a3407d75dea7434f53016f3903d0f1383c68f45a04113c1a49f2577c79b9a1b22429ab7d4b4d444203c8c1145aba02f2b020f242d9f5f43acf729f53f49e348365ec06bc793b8a650871ada19cf1ae7f5e1626146477fc6afe6c70b91088309e54c9501e383240fdcfb6f612bc10cec71025f39219f4a59db9d10701f9d6cbbeb31c215657dfd974a912c4a34480647f50d284df8a3f330818291da4e1cb906e84f924ca7b00e4230f8c0911cd0b7ea6ef9721f73ee3cfc061d713ed14443a6705443d95d07fa50c76cde33f4cae99b55101aad79e6222a9f9997ce385ebd52fe4779f75b7542e055e4cbf0ed1f83f9de895cd24d29e728a79d3f29d8486bc850f4a75ddd06776b7badebe70b703e7d3379dd1ba40b53ac2e53c40f27b564cb2ecc429534b5fa915f5009a03ac958d963e40a0c910286625e50d9fec97411d6dfe0b8b5d4ba0e0c49c0ef6eaf46e93115df8fa7b2f7518d0c33bce1072c016cb961c201d7c88c79cd93ea49f2ad2a1ef4c52991e91df643681526efcc5499e751e1a1fb76a466b3b937f678620a9aebe98ff3fc4f49100a669d83d3ef6007aa170c0091a9e5f63334c2eb1b9c63", + "3f7aa268a86fe3b3f41320258b443f8d1a995324c3253b7f814de2b8e5402417aa3219f8d049dda1b9decf89483eb3a862716689b4ed6c3f4779b8a4d346e5ac3fc2c461c14b3ec31190b331ecce116c8653fb08188b2998e18e9ae2c00607ad7bdd2dc54175499180014f25729350dcdd3df4b5ea51e8a2cc7c2ddd6a9e932fd348ae39a815220a57a7116a7c8c67fc8f16032f074843f9ed42d091e1f8664db2066a55657ece6d1fa56a4306be485e79c55aa348fd885482083350b446e28098c07f699dbdbec15e2e23dddc681433ccc0d6b6e98097fe4fa9b9c06b97aa6c05224a0b259b1f70975983c8200d5baa300c667401bb0dd7af91a2b35e67f6e9ed0bc1a670b80620b9ce3d24322317eb008bfd18430562bccb63bcb726c7b5a699", + "029e3f35a487ed35ad3e1bf583ddeff6b159f1e3931464962c35b19e401ddc37aca9cd51473425b41af33271d2b5a572a66bb636403835285511ccfc03dd05e018dd8a26b49bee426ca3d09cc2ef80c767632f45f3cb1bced15e3e4f2dc32ba32849d64fd35976a3745acaac5e113a025f12a5f83720b8a83004833cdece0456fc14eabb620b3ca302439190ffef9da634f6aacc688d77880271bed1cb0e518f", + "0c0b8c6023c2acbdc576ec6b6fbdda7e1130f2f09803604c5e8aa56faf296185c6b1d310c29e52effba5cc677412e983c1cd12a77d2a4f376f9af68b0dc2bb61c60a787ab56bae60dd4b44ec0f65f65d767271603e42c2818764b993904d005763e8820fe37079092a902561383c8b504a75cc3c6f6906b1a1ed74a2310f20a8374a4061b4b3c029e03c41f182a5046edc415799b4284626587dfee461a5cd2880094e88b9f6ee24f1fc2eebf0ae627db7c1afd1f65a9aea3145c887f795e00bbccd49cad4daa683bf9ca91b1b0c2eb744e03441e01de1ef101f855bdbb70ee48df171d76e94c8ded1748f8680173b56c162b25dae3d982fb47494a5fee9d5108d2c48845e68fd162063954a54d06ba2096618ade80f933e872cde18f5738f23ec" + }, + { /* i=5812 cDividendBits=2862 cDivisorBits=937 */ + "023ce07997d056d3a903861b9f7e0a17895322549f8e389f5374b68a060e2b4f372addbd3fbf733400d7888761fc874bd83127d4f11971534c80148d858cc326e1cfb0bee001c21a3141a439debc2f1a6866e5a47263e786d29cf8238e7767e6718a95d0670a8f727242b48748ac6052f2e3f2325262f74810991040389d15519f6a17c77ce1d3cf8c00d36c81afe9403f238aba74910ff74b241e03e8ab2a0619aac6c0f30c1979230fbc2ddaeab909213a113177e35db5ec54b0504db71164b24752a083ed364cc0b01f9e146917e19b1c2b74e8ffe3e0e1845c9faffa8e38b3b109294d00bd5496f5eed3a92497c17790df5ead95be72a0987a52a8c6818c37725f3be93716dfa2e4a9da0ab7574984e62e235279f9af3acd8eeb1c6d5b65a088d6c9bb3601aee755ec71746a8a29273e38fb47d89beb7202e55dc89d9ad9a3fe9b2e642e0c269540713170aefbb547243b4f19c650381b134def79bfeb478f53771544d9", + "4415d4f3afe9b8b01e3ad6ce111b037057fbc93e12b1358f3e749a2fd4f0276e2c88cc4f77a791dd6828a4eb05031dd1d4f71e45e0d8d8feb91f52bd537ce16e3952d25d1e8b90598772b99ecb0c7d17b88f50fe430ec1b717f072ad57416247724e7c4c7369c9711d4cf1ee30ee5643990f0fedc0", + "086a02ef414ebacb111e4d27b2c894130a3e5977457e5bf1707ced92dfe29a2dc5fcb46ad7919df2dd46905b8e3169943c15be4b5efe77709aaeb68a5ecb5eff45f90de8c7e829808f6676e1466077200fd97827a21627e54a62c78df0491526a0fbe4c8fbd69231b8d4cc654c24fab75afac228c47ca43bcabf3242db234cc35614e0b1d97be3ddb2711aa1975b6bba3f3c225bd832b5f79fe3d46d891ae85744c427680162eef94a1840b079aa1774b52ec617eb47d02a800588789133faa81141531300ff4604a70d1c3fd5fae387f4459985a4b5a3c49ce9c1f5d6c13ac1fd0cf21e02ffb749933f7f75eb50296952", + "2525ccc4a2a30534e7146b2ff86bed696543e6313de616d6d226d2f20fe7d0471dbdc8426d74e8782677b673b9726e361de2f4ca3c3b36b2dd9168055344bd76193f3f85437ab4712c72a2f235574fff241b0e771ab18ee91b218d110aa029c3818fcf412226f9fec82e8450553c2bbe0607b75d59" + }, + { /* i=5813 cDividendBits=4010 cDivisorBits=2528 */ + "03e957b04532b1aecfe8bab0feb0e5540bb812fc03ec3f091ea6eb1bd3ec2fc4b33042b0af744e1ca2650e2ce34c524b8d619ae8ffa7189f44126eebe613ad31da2d6f9ed42e89d03de6744e243913332cda852952278c0e7881098bd45a93c7703b8da9ca89ebb661ea1a9dddba493f2d290a4dd4fa0329ff3f472c401a04a7b4149731a4d51084c63fc10e4be22014f553a7717ba6d7cc0c560bccd290cc2a168b39ad2f642c2faef6ae93f0b12e2681ad16e1f7de5ca8528d1a53b754da1cbdcba384acf06a79a817e4bad2cb0bdc4d853a899f24d75a027c4031604a027ae10ca5435b724f4f8c32283a0f822e23d03948560d139d4c45a592e3d380e5f21adb61af82b97454e10aa17cf80b243e873222130f95356a404000d864175a444b8770be0207f3f7192f39f45be864f6c2ce3ca2dc48192039364ae233101eb2a7ea5e57599ef0d4b170f467fdd976604e3ece58687eba01e08c80bb4930a597fce075fcfdd623fcec365a78c21afbd261700b80d6911b3153f29a270be968773de80e05f3b511b9eb73c5c91a2ca167352ece65c4f4c2d0f27cb8d687370a81cdac8750171ae4402fa10fcc98599628d788c9cc184eb868a8d65c8e1e860a7718e16274d1adc723fd9ac6178807e0a99d147068919ebdd10a51acfb98cdfea9572350be0f74204536115b8a90f8d42d717aeb52612e", + "c9479c06d8da5c752c11420182ce90199ac05a86892638d5f2223cd465b5ccdac60912e3ce96301aaae96317ce76a7864f16a5a174ceab27b4443479537d3229102c444195dc27279acbbf4112f61be53308cde090c1c926d6bd19ef3bd2f76b50502c2d8bd0e92f93fe421f7581e2ab7e51682a573276ee4f25f44897ed42b6f3ba0126386934a54dc57d723ef25e51af3909d595b3055c344f6669a1d9bc087a1ae337dcd744c87cd9413def3188d87f40208e516c636d17fe7dac9678e99b239917ddb2e587533e1a5aaae62599ccdc4efff91b8b2c440afd5a623c7918cf66dac9222d0570d5927192da5cb656d8ec166c39bdefa51c34a1179b906411b8bdf04166904f8343989118a2df9ca5b6797f86a85bd3ffe678789ea9928aad11af508ddb2b348637ca42914783a8046b442f05824d33d1ea3400abc2", + "04f991c11f870bb4386348d8351c84421b94b56700fa7760395932a53f8e32bdc80c25b2a2f0f4cc85f9ac40cf761f24f455d9c57913fbf00cc8ed02491b4a2e350fcf6f7219abba0e5921445c82ba71155d9180b8601cd4235105c9fa610e5a4d3385975abda165cfb304b8b09524d7fa65914767151334c1d5e779ce7083dc6026ec1eb26a7584773dbb01f809bcdce040739976d59f91d06a45b215823bd0c4727fa3df62df87c203a6d415c8e9601b70dbc73aa73057f956", + "0ddf04fd34b83dd405bacbf19ebd1d29aab74b50df4313fe4cee5303f961309e80d7d881d048ddbdf38736645223ba91bba4882501571b6f65eae62a0fa8b2a9521b9070eeb324d0d40c161f0fa1c07cd35c2d8bf0dfad1fc26a6640e9daa9994fafea35d540594157f6e19daa0fa35ded14d926dc8d2dc95dc5328adec409999cee5a24bf8ccd5fc4c37337d8676e9172080d4f9599515650152fac23e997922bb0158fc6831e6a750e9f874f63a1b926a6fe671b6ea1decc6a77a32fba83b53a095bb69fdb2b4abbff723f35b15b8406cbc774ddbb746a6fa28e647c0cd507b26acd06873e574eb608482ae555380aa90470dc6fa62b4ad378183dd9d7fc504d5d6182a0fb5c8b148ab2365feba2a84a6df7498858b5253973d169cb99db53bbcdc5966abae29e49a308ae23cc3242fa906c3eb018543c0d1afc02" + }, + { /* i=5814 cDividendBits=3539 cDivisorBits=2367 */ + "044b84a5aeae4e4fc10e41daa2b40542db39d88731a5d6cbf105d43964beeb4a0869b0fd77c4bf8bc6f1883b1b907ba1c178bbf10c6125f59aae83615609009d03aaa797f96334f797bd8358ccf59e4caaab57f784e2a348e89cddc5bc6ecc975fafa1ea97d8e7fefa350cf16bc5c30922cd2cc29f6d2424aef673ce88337d5efc71ec657925676c8c477c5e08932b6b86a5795759df5a594b9e217f8be70437ee6fc89d1eec29c7665143af121da91b14eb552255c401f1e17db30d78b6d1f4e2398555afe46fec522b5d22cfdddc9d9b9188b039c3e51fd4b748c444ccfed15e05ca171c6e76c8c0b31893d1df2045df4ec786daaa8aa258a7cf1d5d8ea39d0023a0795add2e61b8e41467f96b97f747dccded046b03a6cf102747a43496adeea550cd740ff6517bcf1b840806f1d9d31582308c75d1ee74bd12fd8637711a6abae92798c25edba591e3bce7a1f472aa4dd19e28da2096e4b0ae190360063c19ba8dd20a468015214b4de256afc9c5f10d163da2b05e5c9fcf24716bf3bed05a19d2ca787c7630221f69df526bf507ea3e8fcab39d985097bb19f108965d81adb8118741460a750abfabee9260dec4704cd07e44e23fc2278aa4", + "24da62b2473437c22dc74d28e3966052071160a899320132b18b4db3d42d0a5088589b92e155d16ef5382576126162b05eb7c2fdff0b0f1de20978f9b1e39c3ab07bd7fe4b6d9a978a99eb7e411168dcb354b1ffc38cd2dcad71b14c379d2cd0048639fc0821b0e6059f0885ed9a0f03971dbffc6f9b14b712a69b379012963350d31f0086990e805406d50be869cc91678fb106ba30f3f0d4e34fe532a7c767c8ec79d90957da60169cfc8f9006726239c48f2c93926847aa321f7e893491ae49f4c3b103fa854716ca7c7916ef1fd4b08798a1e36855b54a728a8eec5a894f3d7f58a37143dc01f3eab002bdb8ae7a6161252ca3e9351cf37a6f86125fd5aa1be550aa7ab30d8d108f14a18f89f6f2bdaeb61b88a97497b05e609c4f68399173a25f3d9571cfc7", + "1dd5cebff98f5c0f4eff80bf03342b65f92a9321cd12f8453b99db671072d682e7a054a6c9a764af1ace3d1cde66aa39c19538ff186b6f0dec96f9865ebc3f3d4a942dc331376216c705e4820d01eea4018e0c9c2e9400d1cfeba4ddd839b87fc192db593f0c718a7a9b1ec52b8a3b9e1d30b8fa5bc1d805140cd738ff56227ce5de3ea4e901321e6ddbfbbd0fcbe5de0b6b99", + "02454e74b3cde08033d93e3b68a544ac9a463d199ce43bac2570f890673f1ea491f87e7196dabb22777675d93897343837edfa3b31a93db61635507a75c58c754a40a8a7ee18971476c09ac3951716415a00ce2ebfc4444e6bc1985ff0c66a835638ebbc8c0b7742495c870652940fd454aa28d5d650c22ed458ecb23d2e6d2285f62083b626d7a380e4f9986655a073d669394ec6369f2bb0e29786f09042d4bdb3c8fe766edfa0d4ab522250d428a884e1f141786f8dca3a5622fa59729c8f3eeb64dcdaecc0502638f0cb345a8bfef260d83daaa6f0a5fc0b95004c20e3531db0c53a2d779d52dcdd9013c5d5ed55b18ada074f1649e52752f955f26a4d6099878963a308d55d0c4d2585b20c525ff9473e50a93479bba9dca25338c88e35fef270e55fbd2fb5" + }, + { /* i=5815 cDividendBits=556 cDivisorBits=43 */ + "09abab26bdb2ce4fa68d8e255f60684c5939ede58d328b996b974310db09c07ea59130cd63e05083cbd822981ee5b0488d5f3727333df6c2667fca5c3247c6b5c4fed4a2b7b5", + "029b0afa562c", + "03b61edc78f2fdd371fd891f01b98a514ed0717dee4c1c70f2e75f8ffd2a5d317318e07396d92ef18a6e70cb5bb1f2fb98a58d5e9a26ffda7e15d0caf7bae9e5e5", + "0293ad924659" + }, + { /* i=5816 cDividendBits=3998 cDivisorBits=537 */ + "18be008c2255fe03a379bfae0cfbcf3cb97766cf0938c1ba32b0737626ca0a9d1885d231ee061d0c0c94ccf371eba04e9026e21c5ca80c2699e42d29df99cff2b57a4d4284fe13e366fbbb01314e7c879b27b5c22149714a89c6d934fa90f6944d28a4cfbcfb9f2b2c231050b1da1fed7d00f9235330089671dbf335b25394e0eb1ac4e06b06f822ba9ead5ee9d6c9a8c08565e42524ff76024f04081d22525a538da66b9249a27f1e576e0ece04e6460be74635227624817378c79095918da221f50b528373b84220c46136ce160e56eda4153a6e8a280ca6bc0eb4c818ee2d2513a996aaf118d112516418f75f787ca99679bd8fbf04bf0e244c25caed4dd6ec606d346cf9b08869b49e7e9eacdad49eb6aed707f14c2a5ce50a54c72b2f981385d8b90f1e5b8270b49cf7fbfca9e224f3440967f3b748aa5b42e417a32b0137efc9930190eba68728780eb8a6d1c91a10f9d145428b4a6cd972a7f1cc3962134964b971976f36335cd91bcca53602b6a97bc61b95debbd2e884557b0267a8676d9ddb704aa506c9e264d492b809a77531a2dc9bfc3f22cd5a0eb2a55d447c89bb963ac672822ac9dc7f2f87f350499a9930fbbb5f24bedc63425210503503729a645936f37200de8b32b522488e8a11a7a29475ccec4da150ce37d5e75e59b4e1e24e21cd15588ce9b6b4f5e69e87a71192f7", + "01ac75a7bf2008bff736e47de6b5ee6613f88993362fb2851671cd2d51ba9db6546e7b7fb570d871837d2acc14e9b68e467ef37635c95d4f817a1eed4910c4073103c4fa", + "0ec87f89943a7b9a87c3e9d36562ce46ad94402c37826939662e6c6ba80d3b939635e1d7516b7b4aa1105322ebdd95314f2bbbd9492b79d1d092c46cdd1b2e1b10b76e2db979ea7b57d640fcbb2b5a688b1a387adbbc594880c0c80d314d0a4f8d2d59d6ce88e10734ac3a4f0dec8694f6e57305e2a45f688d4fa9cd1e8d18b53a6cda1e90f93313a946dd3b1b788bb44c4a92770a3101f64798f5d60d1f96c5c0b505803a588a3f41cd90a80b9e300223623ac3b2f259f361cb93737da41b5d13c6e64bcee1ea597f0ab71fb583c9fb98be2503b3e474009db9d5d888778cc7d187c30184ad1b78933b37e5af25939662beadcdce63d4cc8c34c3cc9d2fdc3ff31114ba65365730d4b8894655e6522203ff7fb409838d25deb51b20189153234892a350ca9a1e3e9d2f66049c5034a1057c0941dbca89e38aaec5be8d493afc0999b688266d0c7c212aadd43f45e56e5fd539a7d89d7d2d7784558f2203f903a9463af3a939b7d0516e44fb68a9ab1a61aaee5950572e8169b1826e412140bdf548f435c73761bd5ad98ef00d1f7a3ac098c3f0c9269e212728b97f188ae026b322ad063f68966334727b376a84fddcd7", + "873872eab14b603940dfda53ed2a0b4bc61eb358e0fac74db9a0eb9f686148851a738bf24fd180498cb4a7cde1707145fffe27c093ec334fd4562bacfb268fac8e4d01" + }, + { /* i=5817 cDividendBits=2599 cDivisorBits=650 */ + "5a0583c15cd21d1a4379607e37d08ed7f5c736ffb4a9182d4a601f5432e3420baa3571b66ee38f566fda0ef12e79b5b75018b74404a33bd8ae04849ac6cb675c1fdb1df3b6c15b4373ed82821b9e672593b96790ad134a50e4cba6b9dccb6ccb1a471c34842b5c3126931aabfd07074a6870e7abfccde1c40fc8194f142ee818446f182448fc8061357be4c1f680cb5b505852d1514dcf7dd96f961bb8502017f2bab0ded65660cac42f8ed5a76977fe17edf963db745244561b82726890c0b8f7dd4e6401ba4b5597344fc21aab6062fe7582c9b8cf069468911d5144a02780b1c40359377436f42fbd2662be51caa492a310edd1a13fa6bf6e4c4b441c79f3ba93d3525ed9a7f58da87c5223029d183962dffec1b4970c5037d659e2917d5e49ef1480739eacc658995e7bbd9da2d85d288a5eecef29b34dcc4aebbda544bd351c740630", + "0321a232e106c613b2f842429527b15dee30f6fc2a07e0d2717c512e69cf297dee7cd02097a063ef525ea9c1a47d241c0950eccbcd61c849731580cceaf1b74ce6d26caeda9b647a6dcc3011018da40bb22a", + "1cbf89601eb36fb38784e27f7cb0cc045e7bf9ed1f9e887b4b11af1c979229d62879c871dde79e7e7c88c81aa1f29a4ebd334eb5b2ddd4ea695c411df131bba2ea5ef69d93d6ad8dbd1b93cdd246d1db67b353d8826ddaaa338c3beee1ec82b0cb97db52d9e854e33e7f5f6abe934af662ae4a0a07095ffc12759da46067b4bbd0fa7486f29a8f34c2ab4f4f80180e588ee16e6b557727ca432bf08d3034233f0aaa1d9660d35f7819ba932e3fef57a90b03c00d1a984646483b38004238b17945bd32fe27fbd06380ad228e93adf4627307c453e649d9d0d74d9a47807fbca239c5aa6dac8cba991fc8c1043bc2461ad010db49", + "831660c90e9b677f64dd8fd03cd0c6f2965a14f1ecffe5b69c424363d12478493fa98f0ec3594781a12e9b0bcb9a01dfab8571ff7396ca05c0cedac262d6a133555d4df758a306c43fa837caba11144a36" + }, + { /* i=5818 cDividendBits=517 cDivisorBits=496 */ + "04e423d2d741be217fc4aef1894a9964127767a8e17f567e76dd053afdfcee4e62fa5d74d9e5450bb8f43026aaf6db73303a2928d0d77c2c4697a2392af1558f07", + "9f63a98f6cb66882097e72bdd7407d2a3de12bc02d51b806301cb2ea4850b0e7fbb442721933e5268b58b2404de4067e0d58885c91aa8535f7c83f891d73", + "07db19", + "5d2207bf9cba0f67b4d6cc27c78b6a2fcb35959120e3487916ba1dfb60d35d74da491c25ec91cacacac26ab598eb650363fc5a2b6e30a3eafb82a29b4dcc" + }, + { /* i=5819 cDividendBits=3202 cDivisorBits=2345 */ + "0269b9453a5564b59384514949621095b80a24cb4d5ff019d96fc9dd830fce4da4222d6f42e0a10a2feaa43a675731aa19c0f115f777d55cd4eb9671a28274f001b2ea25e39f4a0ac9beff509c01cd84f4ad79de45db0b4097a3fc40abeb1cd01861d5beeca7f4751a15dbde1ebd26be1fa37df6490a34996ccf7e11d44060114fa35437c8e7f549b3d35bfb07d70b4251f8a98fc89e2562547d0cfc67f8aeb409d998576a732faccfa7f9c027749d8bb8ba34553333db4f8fa37caa2980ddf35411d49057f9db6e712d73067ac874da25420dc910fb4f1e50cb0c98246effb381b240dc9df6501980f1c9cf3fbf6dc0dbf2c99e15f55caa47d7130d13d0b402f0b3f25d86cbe005cb1b1716b09ca37e92eca5c23e1bbc7d3f56de6f5b514698b3a3bf6eace2b0e5df350c02596be655e3aa707ca36315ac796ba80f95014a186d6d6a862a29530003959d9bbbbde10c77a6f3cf3c15b95fc0c175e3368aae95fd4209a10eb4671ef706ff9ee84832f22703832f429940395bb34d671f2e093c847c0cdb441246c0f86e9af7d6d245ef8d", + "9423b7fbfa9276e43da87c89516304676aeeaeb713166df48034aa65084464be0828986fcf0636b81a05cb240d1e8bdda6f47ce5731d237232cc0dafb69b6a5ed31601ab446c1b0f3097dc112d87b893d25ce1c7827fd223bde260c68dfc20f748376736fdfc95822457dcb130e09844c22f59088ab4fa2c29dae81bb6726cc1055369cd935786bbf20df78096e42dc8b4ac9af927d68317a6d91f3fa80eb14021fc134af643875b266274cd5bbfdd30a4cf39425e66bdfa5ae6044a41e13293b0138340e526d24421bf19e9056a0ed9a3c08b31f909048977cfe24acdd07c613f948f50c1a37f3d26164220bbeda0622ccc52f039a7c3dbec57bc83f8a2a5f360254c029f0f121bdd54c4e5da71d2ad88ecd36ea112bf6e76b8f639ed8c7d7ebe0be79e99", + "042b7d1b8e8d4b57510cdc022a46ed7747924e2a64c147943dd77fc4f881b245659b1a3bcbb020564148fdaf52fe7c2495589e70d8db29c7a9f6c78d60df3fff5b80862d6f6181eb29c8a31712be0f36630b2fa38710a8ee6167254a27bebde3c28767ed68cf6b00b69389ec", + "217eee768c1b39ad1903cf71edb1da1188609b379781fae177cfedfbed85d90e0da7b69b342c2ee9441070a314a967953b82cdf97bb50830597f24b74d269190274b9b04c514c963bd48b46a08fed03b1b502ff637fa14bc5b7a62e76024a781c3418ad62391503f833efbe89e5dec81c5dc3fc116f6952733f4696081e827f71daa95b92e498fcb7756de977f8c0512d7f3f003471ac9e52c7bf492c17cfcaa82045a41e71a26c296894572e965c78980c209864e4e8b9c27395505513d8810da9a984eff4b554753f800c7c531584a71ab9486c8877acaf6d7fd251c4701e65803363b884d81f8f59f0099c41945f836e9ecc3bcae10cc0e2d728942d36ade89384774ae16d7e8757b656f97c753c9874aa5d054acfb2ad9b598cb4aa97df8840d04d981" + }, + { /* i=5820 cDividendBits=3432 cDivisorBits=1366 */ + "a130fbbc13545202a056abd57788b4918e7fe65cb2a7cdc52bcdf0f5a409eb127d98e40e290d5effe081d22e6fb6783430890544fb6568ff83a4dba1e64eb9fbb70b2a7140751447c7042c004785c6b37ec548acb8d09337321a2a2fe1d8e85452784a198c9eb3310d2ffa3e8d12bdf17853d6b8923539a247a8742944d8ab9fc5fbee2aac32fb58d608059105385c057c0544d27bcf103c9f4c9b21ca75de9d8854c621a89709f4ebd334cba885bea7f0de7c3519ac208bcece3b4988c1153c44a8fdf2427733d0e1c147e8a98747ae2b556c108caf4b1b98fa81ad18c0a41203251424711905859c1478626d615b3e72091e94d9c29058bd2705e4f5345e18ff024430e358abb48c26a83984a959cd72e2a6c2d5cc769e323e08af216683587be394811cd60ca7ca7687a3a859a61c6093112bdaeff19d67e75be32342d73a274ee19872507ac4b495f0873a1030cfa9222f60952be04d31eb74f28e1a444b7f004c7fbe9a6e012226f361f9acc40ffe3203ffd0649b399be32e0f647e364a963e67a37f53c3bb72a53bafaa0fb5433226b2053a2e5a0bdbda0bee0d5aa8b367f9b4651d3303e337584af030", + "38088f3e624195392263edc0729bc3dd7d05a00bc3d3f2edd685acd1935224ab54aab7590f6ea1bfa057c77df6af9192a0a625b74f7cf89d641fd1ebafbba3f1910dec90b7651b311065456138b34491eabdbc583eab030018ec8d22dc8b420026bd913c8e16ddd6cfb11074914cae6e974f921e107ec8e4c7eca90c62ff55504033cc792107d62950a42bd184cc4d9f144e8d001f7a0f25ad6f0d6e99bc7f3fd23bce8ce0ed1a0587e5b0", + "02e06f5c46fb29f8684ba8d7044bcc58c60792c5ca1d699ea60848aca68245ecf94a7f47e14825e9fc0a616a97ff929b6d231e2ccfb87678bb553e1272d62f0152e64b3fd3b31522a05549cf40bf696594f788521b2bd859e2cd1ff382203326a222189cffcca864980a7eec8d650ddac3c6cf27b317d3df6da96871f686a49477e57f5406ae3a45656f6855ab176c6b847f269f5abaf97da68140ddb0d1411fe0e885f0a7a68629b0ee2cc2053879be45e4908d728e8ff1c7bd28b31b404966f5baf41e6b548f52349b7bf877e60d468b82c85d40cf2764a4dc12bbd2b183c3f39013b9cd7d7060d2fcefcfa3f0de465b3a8cbc7de5bbdd8bd60a7fecd9f63ed6fedd", + "1aae19744fcea369f3075cb44b697d13461bea1a64e3afb5f3f04a4c2365e99907296d540f1082d770935ef90ff19290b1147548762006f1e772eb2f955d3c562f28cfe5da95dcfc984a0c9b8722b89d3fe1fffb7a65fcee0f581078d786883a602a0e7def09c32545de33ac22fdd9a921b59c32cc59cc1e9efabc86b2b4c5a9cefa4b296f5d4cb744fa603f5a8935357a16441f5da6751195cad01381e3da475d13c857f6f1e91af50740" + }, + { /* i=5821 cDividendBits=2090 cDivisorBits=312 */ + "023aa55d4eb2fcfc2c74600053c59c830157b5aaa6bcdfde525e1bd7dee4963d1093ce4c93d0e0c5b3b071b2db83c9075fc9a5ccddcdb37514f53b39bbd791c5e3163ee7e017d41c022c80d1fb649234205d453813d1ad20577d1ea8783173005f9e9cd665201d3cc5deb01a8344fa5ed619a2a64b8f2e194d9c4499d26b5dce2537b40654c6562438768b16824dddd55dff66fd20c0cebf40f0234b4288152e9ca1499e9465ad51b6b06d6e09d02f9a1b00a10e4122c423f1f006629cc92083e4b21b08c9339bc3fb919503093b6a3e32d04b44a71be86b6087a7a7202b9b4408948d91d0c766aba3bd0596b00b5a4c330368840b5f57f8bf0b19501dbb9dd28ecdef732c10", + "126425637f25198c0e8c276f82681bc8b035cdffb4d7b32e305328926878a156990c55221cb286", + "1f07390d104f732a830c6b9ab1614261af07bbfcbe90a9f5bc028e9e5dc7416291e27ca0a7360ac64bc6c4017fc28c646210a47bc05ecb8b1008481d52dc6a888c4bf3ad00bfa074028b2e4ce9151ef34f12072c17299474b27ca8176af8ebc40b5683fb3b3195663a68f4777d5efb84ec587c4fa54591f3584d6d2ae0beb74a5837fd2db95ba680c67e02be6cb43cc4fb156763e9aaa99402d210a07ac39f5668104b95ae49cc26ea3c95c4d33c3b4bce5cf10df291a6c12c4470ef2a6a0b5fd84f88a86dec98fe5ed3040270dd5bf33434d91bc38bf25992ed28e5ce9e42", + "07f68154923ff90730b4e875be855173659856a48d489161d3c105afc32884748dc413e80a7184" + }, + { /* i=5822 cDividendBits=3829 cDivisorBits=1452 */ + "03e4dbf55ac0dbca97b85355a351048ce118cd9a13c33e3a9b4d3d5ec8c09f2bf8bda66bc3abb6c1b0d34b8ffb0e59c7acbf57944d4e651cc48984bb303b4a2ca462062c928a29343d270b916d1f4a646aa77090213841c970fb69f27b6bc47f45322c3c9bd98669c8ab50b8a97aaf1d94ca3b87dece1f7f9606d001f53ce5ef5b00c78b3c3386fcdb4afb445ae47106164e72956f113f385907db76509cba08b528e6c668097f3e3f091e6225b575d5f24acbe44ddb016f473f48e525e3b1a9ef24376f6234ca55ea8600bc57c11c45b75c3cd3896fb9ae62fb84dd355e262fe4f65532bb3e0eed18bd4bc9c030fa86e8fe511dd720eb4789edd33bb7773ba3189005b9e81f3ecdb654b17088e20c9da7cb9d3f548f6644def001c446e1fcb36cba17ec6f1c447a96dc40e488bb35bfae6474d026fc554d76c39cc90d68d17d66ede6b919a7a38c846eeeee8b9aadbf1764aba4303a27b2a002ddd966998447045bd4e9616b1f8eb62defd97761b5f8ae15f2e980a34b250eb089eb228e803bb3939bcefcb8a0ce7f046841381339d563044bf5fbd603790910dad348f5ac56b6bdb7ca1ea837079c78131e513698fca5d5dc7fd5d156eba8f6b61c02a0515c2c48b837d0d508d1c195f280956d174ccadc4ae5881bd08c50ee0300a46229", + "072ee94b00878803f41689b420671c523c2253749e42619870842c19b31e24da9af4477ad1f67970b22e6a91fd4b199ee8cc0cacaaf6927199aae1a65a827fd6bf280f4e058be9e7f53a1dc3f96e652b44fb93a86167916f384cdc3d2e723371640421bed000020df16921202615bebed5fcf49a42952b4629eaf9d151c5c002a4785e9d323b119014ac03ff4584178eaa79b40d6d0dc3112f5efffcb00816bf7a45ec141309c070e1ef90f00b3f078b3d757bcbea18", + "8ac68b8f14ca96690d08b15e878f89951e8fdd639e2b9a2858cc10a0d8e5e5b394f8215790290eca3498bd7cb43eb5894ac1b48868d02bf072ff5a8b056d6095d9aa2e6293ab2329cad493b2d084f1c3468a55cd7e8da8ff48288221207f26779b298b21689b66f7143514937ab14aa38ef3719201a87297b7524e8e084c427528cf5d8c40baa1227f53f676bf9cb1452ae0907f7354db1b75d3df93c87431e533b86fd2a58ca52bb04c8c4f14d53d376d1762e5a2615f0fd4a866b79fde0d1186d0d406d6dfd7c2a2446946a317569e286360125a2812f1213d87b6f91117f8b2c0a9d99068524d5955d1dd51e24d07a3170cda74dd64e34fa5d33e56350e2f3de6e34726e6927d5f6dff172b3e4d16dcc0c3313869cf0cf16026ffbdc4b60fee555f93a4fb48a086", + "04a264d7792019135b00c9eb5f904275d6fe518a4f773e1383f33a9aea6315d100c7ff2e01ac8bc41407dc61114448b7439994e0af2516766c584946e08e21d288b86ed9fe78a3f521ff5ba8832bbe98db40267263d093e122995c3da45e07fd4195c777fe08dd9ee2a206ef49857bb845466a237bacba221280c412721a4cfd6861d91bc24ced9ee2b8a462e184ba38bc40d6b05ea58c84ff4d2fb01da74e29e0083d09e925b83c6e96992eaaa0dca3d5e562d8d999" + }, + { /* i=5823 cDividendBits=3770 cDivisorBits=1991 */ + "02f59ae72e402d43951ace2bfdff34297a27f7ca87038efe448c420181fb07d2960e4972e87a807fb74dec17a6eedfa6e668792c45dc251a08ea2c93772f29222c6ea7ddc8fa3e33beb7150e75bb9a6541d2341a8d11951e8a0186d1c670e5766eff0c0b9e0aaa3eda2a063382ce3ebffc10b866ac6512de9de1e4958455fc9d45b24414edd47053581fad266b8ec5ca28138dee02664f891441ddaaae1e14e7196d665aee2563355550eff7c2ce1bfdcbd59cf030f0a529a2e23d701925d9a17edadea72cf0467f2f0159ff111fd97e83479e4c088aa9f3c2537f3e472326d827fb963cc8347e3d5d8dda18ca2e23564216cffc3e7376ddebcecd702a70cd1640313a730c66238f6e26096c10b4ed7c0ab1395a80e703021e63cade668810b2ab9df96dced6dab76604ca4c3235a521770738136042c7003c7d62f2147ae538993c1e66098d3f5072647977052ee2e4952c6419bd3aee10b27c25a73bf77673458fda4a6ddda9cf92261461e7fb3f4b4704822959c0194a53237689153a41d1867a5264467f79313f358325d77cb4dc50e542eed9ddbb6c69c00908ebc2bbe1e06295eda41eea0a1beb2502023bdc603d8d40c556a8da2362641a6837a843e9205a5a27043306b7d1fbcea646824d1b4b48501fb5440930", + "673b7067b4a2007a80e59085150736d3ed33b3a00da981791efa10fa1c3f6ac302b305609c9c8c16fd95d45fbd061e8057948acdd5c69c36b867b62951aacffaf40d5eb6da6730f49c9fcab4bf2c674ba17775e3e14101a2871748bebb28210ee21123e147db36981e4a26b983e71f63a9c28e3bc2c759c8f3c701e5b5705d4f0c9d520fe9d4e3e39c1d00352e5f48279e6117443c1b7ca9e33d12c491034807e9211ebdac7e06fcd90bf91b65e5427a83bf441c1d31008f8be3096ce7a934d5d3c50a53113cca73db839f949932ce4d4ace3749b25bb3e12ccc8050a56558ffa317c44d6420ac07443faeead17d5ecf6b5890f04169902b1d", + "0756be9ae9d3ba317b39b3a95e3c66d0353f7ae130fc6d2f2493c0b1ae9e459dcb2416d7dd5ff49c1736ba55cd4ca2134596d1f4e3ad7bc5fd10b06738c1d6eed26ef6fd5cf58b8b08c9910e23f621b93e97c5f7e0b5bb8bea07195355c99ea3c4aba59d79907fc2cce8f960d992d23f81b220461b845f4fe9d3b8adc704f380e4871833a50120669b696a4c54300d30240860f565a696c49d2551a5fd01673413cfefaea3fb2bfe0eb6ccbb02c68cd4ae17b433c78efa389bdd3f78ce24112e371b750de89598e8be0597f69bdca98a4223dda6883509a881fda7358d9921", + "4ea9d86b0b7b93ac1f3f8fd933bb48e7b79be3a3f372e14156b6fdc28392a124aea596fb3555936b27effc8c711db7fca54d2be7fd39617ae7d00078f3cca1f701c3ed99c7fc549b3383dab83a4f479a85b5bcfc11a48885a739b36b1d4519e4356b170e1f93b9c3443581f9ec1ca646963e709e82de99353266ba6049f8cbaacd09e672c992227850f1272754de3bd330f65233e7120efb09f00ea8a68fe1e76705441e22aa41e10ded546f7feb06a91f77f4aabb96bb00a33c46b42e2d5e6091cbd4a7703bc64db62de1e6f782d9299b9f417fa53c7bd69c0fac22d02b1955ec53b92d31c7a42f1827d6c68fb53bebcf48db795a2ff12573" + }, + { /* i=5824 cDividendBits=1847 cDivisorBits=121 */ + "24763581684cca195273873a7997df4134eadade7fa584c126ee7f72e54e76dbdc145fdb160f032581082b54e23858ebb8d1cdcc2be8c0bc16cc7dd70d6cd082dea0075ba3370f1fddefb9c8242da9b1ce91237b3502ec1a1f3304d1f59e75448fac1fc682b1257582e2cf4a161443bb09c8803ece4553e0f3f7056d85125ad119e6db61072c0bc60bd33632eef22c459cea80f018395d49d455aa5bf55198b2bc3b6aeeaa89e52bd92a93c2259d47f4472fec98263a2fcd4b969b3228312854271c81e832dd9c513556c7988583baf443dc5c4bd428275bfd6fa7fa1a115df7061483ebbf4aaf", + "01ecd37e172af481ab0ffeeca73bdbba", + "12f0aeb9dedb3d0fa9250d08af4083bb0936354b0504aac04b4512a0b4e15f208b7fe10ca0b0009ce533f53aa431f591c0b9f80db26cc814556d70c99bd25a4981c2fb24bb8fcccd1b3212dec7d10c7ba4557287fe55baaf86e89455ab6d61ae6a14f29b37bf3d990271fdee0c2f3dca0e278d751379f44075ab3d958b9c633ecb21d48b7dfd3aa118bd71220701aa97153dc95adc13918ad7bfe732a285a4e5d7e5d53f695b916860c6a641b292495d40a12d1b5a94b4fba45e0e988f425429f68ce1468d6bdd569d3b51408775d0e490f55ec6510446dc", + "f0b7bf1ecd27447cf980188d519ad7" + }, + { /* i=5825 cDividendBits=1973 cDivisorBits=1490 */ + "0e3bccc74979f5a24cc8dd159876c30a6b4ff09daeb90165e0f67c4985f873e1fa2288fbf83be76b986512d6a39e86c2b08e67253ddc53295ccdeebe14ee835ad2ac8b19635669ed0f2bca04b82788985dedbb89ae137dbf09f4a39543749e911179a9d44cc3cd0b5cb1189298da9aed0807987257479e96e32b2b0689e92e945b5e7e9b05525c8e9dc57a571c0e0f208f7661c7e89d907f160872930acf6f50b24c4423e091998abbae9f5e5e79ef59ed082c3953294d00001cb59f580b70cfc462e90f53a195377177bb6f3494b25fa2d7410524f29613a4b5ef6c8658af0163c00e511c4ebf86a954525ff79183ccad4ff4f65ad1f4", + "0295707753c58d012a61d80d6ad1b7057a1e849897940351b69fb5b4f70a0c39e3c2fce4af16bb51970387a495cce8d86ebae0f1aed6ceeab5c0b0815b559c5a28f67a81726c55ff1a6acda55988c0647920e7fc4fc9c5909e92abdae32cca7c8407266acd8d340d855396bcf356fc79fd8034653e3d25610faf34c5d974dfeab1ea72d248ba7b8ab03c519f2bae274fb2c0096252fd1077d046ccfbfd1c66877936b6b50753022155230929503352351969352f3612d7916ac214", + "058246f51c2ea138ddaf80d4ea3a266778b83e6776629d063d85f5cd7bafefb5159664dd2f044cb2ba72920c6d82ed55a9a38b534e26cbb5bdd0a2cb57", + "026f1994486113804da1e145de8ae128c78a107848eb7f26b37b80d55946c1ab2db9bd00498a59f0a3c54df3f46ff8a33af0df6254ab3ec8a07d14bb475270584451815d14d9fbc1c3d3d82c9b8c877a7eb66138966c42eb1e03ec13a7f1ab2fd320fd3e1a97b07090831afa29110d2b9e9640a35f93f1c94cb6a1721ec07cf9592130297902fa2e5226ff575aa03c18f1683b3c3863698912567713ec569ab62684a195217a76cf59270e739062d354cfbaf418e5c85fd2850128" + }, + { /* i=5826 cDividendBits=782 cDivisorBits=382 */ + "354e1245e679a08bff6c5375c29281b2f141d03aa74c3fea71e7d942bfaf882d0418bb66696f471125afd8e92dbe519e00aaa01a79a61720b21fdd06702226c6e1841fa3ca75d7619417c1a3ae9c71ffb48a204577e6e179ff5706702e50547a6ca7", + "3a5be9ef405ba3f31a3615ef2bcb2409a584f33173ea2573f8c41f4a1245ef5eb0e79480bfeca444bd902e89da9babfc", + "e9d4618ef64b6337168fa16d6248c5d5553f3c4cbd2b74b57c6c99867c90d1ddff2638cf29bb2729176a4fdcede3ca1da6e4", + "289a053cb2218e5db97023b2cf88c96ad27abecc30e2f3a343f69dd4cdd28de4a3ee2fb61bb43b5320eaf1fd5cc3d837" + }, + { /* i=5827 cDividendBits=1772 cDivisorBits=570 */ + "06465665f3d27c6fae24714da75ee9ef508ac55bea96335cc09d4de2fb4e721ca92955a2c5fcfe9ef520e66a498fc292c66f0b2dca2a9a407c0e5090d3616112c6468e768567bf1bbc581e6eaa239ea6b4b9b653b5ea52486aeb8a3a9c8556cc3c99167ae1fcd53815d48f20293ed2c2a9a7576f14a1a4ea354e49a97f7cff6fbb39d3b99608f74bba28e68b1244e98d5bdb15d270fe28cc11ee5819a09fdfe08e59dadf0782a8b02f49f1ada0d83eca93743fadb5ff27af83dd392d5fcb68ce0b550b8c7cc59b951c343a968daac4395571d2bb0f80ec2cacb9a133b541", + "020f70f9ec3a25f451fcd0f10f9918a9f172cbbe2747f29b578f6db99567a5ed8002f07b375878ab5465ada73da8f9ed940e9502cd3e1fa20accc127553ad884915434ca64aae66b", + "030ba7bf983d972a87fed730052bbb8b407256d46f37e3fdcd5d4f0ed406bb6d0e53f51c4d353a1ecc1221530b13ffcbcd4892397079ee732b9b746dc099f115b8018d29aec2850c306c4cf6d0781e4e11aa98c78f60ffd76372750230851233eb514d8375f4bbedb23a52c009b2208debcc0cac8f0613168c6d082069ea18d4ef5a076ccd03eb315dccc40a4618567940ee8201229937", + "018776dd0569efd438ba64d335036b4f57f367f1c299f6a2b1feb3a027562396c292200431ff48835099c37b3e832fc0d611c40a9083f55afc62dbe1193854d46381d924d7904144" + }, + { /* i=5828 cDividendBits=2347 cDivisorBits=653 */ + "01996e71845e831c4949f2467ef7592517d5eebe92025d44c751ea2a1b9f6278d871631313118081bf925205dd46cad733c04bce8883854e3aa8ab3a7a3a2547d43953fd567846a1e759a2a4315a24d4e7799381a39917200c2e4b627fb5f3d424268b581bec3b6b9d84b8b254ce43b984f22e45d6f740d34fed16f74f2a4cbbde361281ae1b106a4fa54f30a0ac115fc65796d6685c12e0a988b2765f2e2b63b5fc7b017b4407622b209ff0dc6a659b0a98378538645c795cc2d0673771c3eae4284739f05684f60c25e5bb3505861d62e12f9c5601140dde1536ed690e472747886c90687493eb2c387abdba35b150984b38c09a5d81e8d52a683741e94533ae59917d4126994b7ef54b3687876994b1dcb899675107bc1d83f78a14832aa630ea1d9ae03b", + "0820a60cfbcf1d3e9f81b4983ac62a1f437600335cc16f198ddff1c9b1bc2a8196fde10f212e07a88783b15290fb42f645a05327ffbd3e449f2cb2be2d59955665b5cc87f996d8cb0537ec0f5134e681c3f4", + "326037b3782d1eca3f5d74f7f7494b4158ee8d0af0c54d37b67270dba833d6769b4ebf2ed848f2722d91c3937d4cf9d22e55ca323963ba3bc765fa10ca9a5f7ecd09c13499398b8de1bbe3d6f49043f7f34c21a78427b032f58e99d70278292a975ea229dadc3210153acc4a091d91400888fd9893a752ad30249de144519993d1acfb1e5169275a1ea4ce6dae3262d768b9d82b34c9bb1d077ddb858a2cc0568881aae9b6256b6abb33e2825c37b4dfa74de9bbd2632d166ca67cfdb830e82d9a98beb75724019c9d1d9e8ae4e327852307e7ff", + "3496effdc7795795ab7b71a33e66fb5cec9370314cbea081648fd1bc048ffa536dbf4d6942494a882ecff24a166527f6d23ef150e000d943666ef7785b280e52fc5d53071ac1bc6e9029868c1eb2db842f" + }, + { /* i=5829 cDividendBits=77 cDivisorBits=24 */ + "02a5b271585dc3434545", + "c3eab6", + "037587f23f648e", + "1dfc51" + }, + { /* i=5830 cDividendBits=232 cDivisorBits=24 */ + "72586a7d8312d8b1e8741cfa88724f9bd78726d660af87573728d2e970", + "233a29", + "033ef5fd9e6341c4bcb83b9960d3b5ac31404e392b22cae14e18bc", + "025b54" + }, + { /* i=5831 cDividendBits=2439 cDivisorBits=559 */ + "1eb3f1544900d642d0538a52992feaf49e67acc2f56ff05bb7b036cd7ce73ea8071d6faddf355e62621132846b761745ebe51330deb9f638893764f73c4c730f375cb0c317d3fe14494558e18f3737c20f7cff09d242421ac059ad6d3723abafc3735ce4d8b271822ad72fe6b22362c32aefee7b62287ded641e7b889d212339fb47bf469b2b816961532385d62b5532f60e5043fe66819ef739a6f50e674b6890965cd723d81ccfae2359736019e5e06a770d72244f8d45a8a76c7b1272108d7691109d4d910c216214fded7586530efe8131e06a80b4f80553fe8de79f788712203de9c8fe5b76be7cbe8a821bae0b0e39b90c1c3c1ff412ae665c67bdb66e2d5b6df033c7b6084277e4b65156e4caf970ffa3ff7f1a27a04f4b3e48d5c134e7840a42eb7f82fb44b616a62cbdae6b74", + "13c8bad784cb4f1b9093b9492a107fc25afe56a76a25a691245a25bbe3d17190b4a3717d95f4555003c901b5aa0278722fb53f7116218df84dcd4bb0fc50a44588fdc69e60c6", + "018d492b34a12a8f7549a6645473ae7de25e71f4cfae8485cb2634ab526a66e20494efef01c8e6bd2c9f286ba410f5eb51cff30fc70c72c20345c995af393a6766f6640d6aefecc8a4535bfe0074fe76b135fc2d0b804899013ccd6d58254d5cffa0f2c548a05c8c2dabf320ba4151e9115cdc233c06437ae8f92f90f122a49a21d4b548314ee070c7f4173fffaf9a4025b88a26b4681bce5d60996cee9657af1118fcf296bc789917a1b9ad8692dec53e4bde105d0980076fdceedfb7a65941da281f54fe1f1be3e181a45469bc9cac792c35469f80a51a9def3462c042f95e4953ce452bf08497db006c51", + "0c0814d88a4a48126f898e830d13558394daa658dd32acb8815afaaee2aef38529b4815f6d9439832e98b81fad9f65a305f1f365d14cc8fdb9d746dac40e80709482b2be44ce" + }, + { /* i=5832 cDividendBits=3164 cDivisorBits=575 */ + "0e9fd39d7d39836b0f61953add0e86c52c0079c9a1ab9996cf6b992517aeb23fe526d205b7f31cc8867dbdf6299a655e9dd134298e2838a936b2f001b46345643c540801bf9798904d78ed067c6fad5b1a07a9f6b448ec970ec9cd086f89e92dda9480ad2845554e8bad6d3273fb12ed3d70a25315f8b723cc3fe1f8836c86c2196336cb6cf6083bf431bdbff26eaa54cf0dbf8605a0047dd2aacd640c86e7df4a896d648f696418f5b4426e076ad04e2dea3fce8580026d88cf7cc3484fa6706d6708f49ea425816aa7ac3b9401300f6c5d1468e8c8ad61e5787e388a9eec67081321fe81b80df7f72b4f9f8a6d56f182bc68fbe89950ad7b8c94f34386465ff5b129baf5b9b7fb318d491a75cd3a8327a0d214cac765059e177b8a14306bf19a556c3fc1e01965f882c96420cca0107d69c8a0797fd64bf26b8c4c3b5afcaca09bd0047f481477916373e5628924f428d8a719cefa0b248880b1c690323924d4312d9a7e6b2164f0696ec507abcc8e3c6b6f82051cf70fb6d1dedb6fd91b460827d08df29782fbb6ff2fda", + "689bd8abc3866930e69f162b37626fc2839e7ab657aac49a957f6e1849530a60c79f6be4bfcccb65c3d351ff435c331cbe4a2d51a83d08c702e9e717c55a2c89ab5d4515fd5d8257", + "23c9f15d6953e799e8a22b24187657b248284e8855c8c95c6a8211232358087f2be9ee29e3325dcaf9012588877a9186047a210e90193e1ab34d7706facfe67a24ccd9072c1db164ecb4b9cb4c6d376d05074ef82398870377122a706f34004cf618bf2d65fb484f6f34170d4cada2305ba1113c6d434e025cf44307768b0225a4b90dad89faba67dbf7807ba82d71775a198a4ff7f68d3a0eef3c6d01d7e63ef010e3b4254e48ad2d17d4635730c2d13332f67724ce0e31a3fabb368821db67e771027320b61720029b236e867ee1ec100e2e59a1451f63bb9a9a7237f0da7c242af6f297b809ec0a38b6e9728686c79493c7ee04d2fcb8384c8686f766798c1be9e787bff624b6e43530571e86b59fb544af253bb2c79b0d5c9d9c2c9782db00a66757005b922643016eba0bd68d6da0d5a88dcbce9f27be16033855f49b12ffe04ee3", + "275d7d80329bf863f03449b004270f419996821bf06db0e7ad58e481302ed8d1f58625f53ccba1d0ce09964868af29169d1955920306d41aaee038b87f8a4974accedf84da3e1ab5" + }, + { /* i=5833 cDividendBits=998 cDivisorBits=347 */ + "0253a7b264e70b2806bfb9c949ef57a9d3bdeef5fa5d4269666e511414c08be160a270d18657d10f974e3ec714d5fac91c38001a2107bf656d0abb4bbab332b3c53c064d9c4991eaa5d8dbd596c1c053787d7932dd72fdc4a22f14b42a231390339e145f07bbd83a63c3675853e7927b1336268156f3b8d8a166f84559", + "037c9a88dd6aa168c8c04aa5a4b220fcf77932b255d34eaab250b69ec86d8899173804edecf5243f9b1d111b", + "aad5b05cda13dc0c2cfca6e8da3f8ee30a4b09b358ef936bc0ef3d8ece0d37b636d1fdb0e5485efbf52fa9324ce0b6a314582708ef2857062cfc841ebb616c3ee2a2c3d62f610f56504209899f7a225914", + "022e65762aaa3d1c7c2105787ada56c07c7b41378eca44f53f81c7a6a2c16094603e3127a1715ff40a2a8c3d" + }, + { /* i=5834 cDividendBits=1742 cDivisorBits=1257 */ + "2bad1cfbda4a9ba61314d1aa1191d3fd0bceefecd407b2522457f6526d70e24beaf87d612ac7029f5b12022423858cf995115035d39bbb2a800aefd81fea299a2cec079a8a62bdca1bf7987831691363d9daeac4f8f4237657a1309035fe507b4d1a76d189ca85c4c68c7618858d409fcb92ce3d1a5b24740fe8fe7d57a64df0b41aca691c55a6f75123f64f31dca39506bdad50d47391f7ce7c60f11f6e8aa122295fdcf149d33eabcad854682bed2a79288623e942fd84d9ebbac573cb2dc87afa8edb6bc5ef19d097f1c7e2087efa914a8b70fc5e713c719f", + "bd71ae4612c763dc40fbe25e6b15d31fb4d66cef52afd68549afe589f965258f90d98176637500787a0a22ac6bcec009d743f6f85705b980a6ca1fdc18753f94b40718b951655aadb896c72fbf5b93e5ce6d5804be487fd6137292cd24441ddbfa2010a65779cb2294d85e596d96f5e64842bcdfae5abb3086ced0e408e08df1fb9552412c1a815a904361c44bb5a18fbf7673b2452584ff9f274093a5", + "3b0549c7d639d81a7f9f7011fcf4b6d83d08fd479b40ded7bd00e9660ca6ff4c694f168295326c51e7c9085e8701cae1a3e9c4c1ffe73428baaeeabec8", + "363d1856b492eaff5949864092d54e1ccf80eb46574f00fad87421341fb89950fe77a58fe974457ed3b3646de998c783070f6925869a6dd3168b8d8b1a6d6fab70fd5cde04c04cf1dcf154a7ead67a47d899dd044f81a957874b34ea61c38b26e82fad9120dcfc875c2c70ba0abd5fbdf7e8f0729a3c68fd8af7eaed5be2ec482920a7179a91cce5645a83d441c2b024d6904afba5352855a2be62a2b7" + }, + { /* i=5835 cDividendBits=4040 cDivisorBits=3104 */ + "86f3fabf66fddab9d0ecf05025b637ee1cd5256f1205f3fb5b129a786da48337844ee116c684fcc4a8c784124ca2001bd63dc2b5a2c950c716d8eb67b69fe7b19741259c034e5c215fe1fd59307cd67b744929d8fccd48a2e697a1e3a86ffbd18a88a3e38d01e93f4a6f79af0bdc3cf7835eeb491f67cb76b4b7cd3e7773b916d3ea1c4837bc7fa89b452c1e0cdf811a164838ef907e234806df5efe27c2b198dd5ff3d67562e56b44b457d892638c48ffe07596563f82f1beb5b7a51c87da0428831a8cce5387c02124519e7772c7cb87f4e0c4abd48d836ee5482048e6eed2891c46d9c77ccb3fbd4a730bba13c733756eb49bfa6fe49673a45549e619e01a8b578d882b609871be61074a9fdcd45412283b5387ea5ad1a6e87c12ea99ecd9ae2f6a53e65c6a88c5b5643f3383d91a5290c654f07e710db14d1440c4768f7a9ec4a4022c5a3e08c6bb93a04d7366651025f12662899266b582c25c12528ce2f7188e260881a4ac400028fbc61d5707b4d1bc740ff231b78e76dc08da5d57a442c5e336b9352124436805178c3a5ff08ffaefc5a7f4b08da7fd1c6d273d01c8f1c9ba4d222ee8f21801958faad6c548c257d9722cd33c2c6335fa93660d4427625a4ab968ff1d7df22b9c10ea1e1bbfea4a5b1f7ff3d205c6b25adfc2b23f436b56457dbf6297e9d6e2ca8d374b5a331f04c5f3bc6d194c58", + "48ae987def771fdf553c28f759f673436f0ae3ab7d581fa4a313224e0d4ee6a668524f0a057003b804008c60e475bba00de841e95ad772264c696134467d30d2c3e708a100e15302aa340cc80be5729d66b019e9e885571caa55d7c000e641d472ec98f0f5b607e5cf4af189aaeb61509a3cf9b8b0cf010d8c3375dd98559808f60bc92e0278c22e872bdeaea964ca073e1085c24ac09e4380d7c04c40ac633164d5a6f09709328cd089e870b2e8b3b24d8e2b99debb1312e60a87145c8a7d1135e497d7f160af5257a99e0243d41cfedd596b0ce1a188914186fe9a803c8a6069ce4fb9b931ef431f85d2d53e04ec223f638f0188d557945e64dabae05ef3df17939f045db3ec7fb286f050469a5714f02ad05bd5b761e412f89dff05c28e08d3d6432ba6183aae669c9be9bb9183301f2fe8797b51234dbdda18a7dd69080e6a19f2095c84f3c8d25469089e1d970a79fe20ec9810e56426754ca82c9da38996f6f7823f67bf926aa0b3a97042691c4b3fe4978c0841b4a592f4b1f0dd49e1d79a69d5", + "01db549cc9d4868268382ac0db4178479a0c2e9a1a8e416751766eec1dafc6793c8f6e76a65f0368a0d34178c566fb85f080ba057d90926b7b46667841c5ba5b632cbfddaadeff43e622f967005daeca1ce6d1634d5b281da218b080d743e4a6b6346c698128aef74aac2c78f0e5d7f8b8c6f6aaef93", + "4384e88f52af83e776ee73fcfcf942f4c012ec881dac1969151dade384c38170a321e0e939e1cc439f5df9729b2a6204f38d851f808b858d9a19380fd8aa2349880e72f6979ce4ba47d91a7ad2ab654b81b5d60110cc352095fd096d67f97fe6d5bc954b4c3f67a65f37c13209a9dcef3396302faa7f373b72ba162bb6697455701873048aa0a1ea9220d2a6b945f514459bf7ca4a568827b6bd54696517099d5e39e7be277c4647ee883f62cf1da8522cc16fbda8591211469fb05d746dcf867378678ae7cd9b4760eaa363b5b3dddbc8f7376dd353cb019a0ada37f986e5299efd91adf02ec7d74c0a0a3d21e69210e599be9b2b06589e7940250629ccb8188eec195c7d7dbc50fd3f99b98b79e236dcafdd378eb01587f83816eee713d8c1f7e4e149a6a1f8d28cadb00cf441d9ad856d93195150e9d2157d2b86be008775df5e1788fe4997f5ea34ea0c341d90ac7edce67298e191adcf1bc9a910a13c7c4d0a3ff10b176573fcc935a0ccab8a44f9a85a329f73922e1a99997be1bc2dc9812eac09" + }, + { /* i=5836 cDividendBits=908 cDivisorBits=898 */ + "0535736a4f594c9e333c71cadeba149b3026dddae11be47990e11c9661f882e0b39503e9e5242f69ab4d64d2c4fffff7a565a04a27ced046265457669c7d56760b97db5c4194d476171c855ca0a50fb565128a6a3ef4de979674330714cf2763b2ef53409f6d1ca280eac227a4c7329ab55b", + "022c4eb268922fdc489ecde79354e95d88cbdfae8c6acfba9840aa33bf4e71442afc1a607e41dd43c72a7bc0bf306c199d455d1ea2c9d8383cc5040b0bad922914ddd0f9cb2d93abb11a46a6634875658e702a58b70b0f2894e76989a1d341c965c125e4524cdc6d5d7ca7f46fece2c51c", + "0265", + "015af91af34003b9582ebf5aefc1ce3796af3deae0210fc24e450878e1ada878a758c0d6d078965f64aa7e3b310d1e4fce884fcc017d877cd094b82986b779aca0b5f61e10b1dbf8089a3034e88e9936fff503d0a7634b69e6135084504adc7247d384e65b10d0a00f43fb54c4f798b94f" + }, + { /* i=5837 cDividendBits=195 cDivisorBits=55 */ + "0260566220a199e68ef751255ea3df77d22f672c93bdbd8415", + "0490db4df808dd", + "853c8c001f966c305fb035dcb3d116a1d40b", + "0239686bc11e96" + }, + { /* i=5838 cDividendBits=1234 cDivisorBits=731 */ + "01ab6065862b9da279da96116b93a43ab8baf532bf9e0a61347c72cd879ed7d737f54505f16032753c3fe70d7959b100e4ed25297a87acef71870615cf356ddf1480c2023a01a7a1bf55c733983fd850ba1bf3ae91d6edd0cf76330b3c4388b2a541528dd0ac8ffaea3f09d4be6fee6c664de3ccef49231445a04520d501e5e314c98d026e7a49364b29e218115afa40ec03a6bc21dc47d08c3076", + "031ec7be0aa20bae0d55cf3b6ae2b3d808e4ca27569d69a89216b7ad104bcd5afec0f54938695321e0f605f2abeba025626efb15742a651cf7be7de0aa183a082fe24cad905b2f1b4757d97d7d8de284591173b7202b2c7b71ed90eb", + "88f82628a0d2fd4ca61c85d096ff6504d16539b4860f48c95a7b51326deb814a698e5fbd6ae157fd39f900bc5464725b29b81b4b7ef14e29625497f54ab2ae", + "01e20d68c22fae03f91de76ae04c2ba3a548bb932204064686c4390593930601c68949c2f51b653e0a2ef82856b7b36cbef5c180819a74e958cf979fe04dfaf39c634a88d3ac361ce2de7f830f18b90c66d7a0d09680ea2f67624abc" + }, + { /* i=5839 cDividendBits=3921 cDivisorBits=2430 */ + "017b6eab6f37b47aac38470ada107cd97dae79ab253d2d5af4c19403694aac31aef3fc9aa7a6a757f5bf700631c9f13ddcf8e575a5ccf74601e483234e36b3f67d0d35bec37b3eb28aab21dbce42abe23ede3c0881ac60e90d5151d92d0e11a15c31bf39c24fed8cfcf71298170600ae7185f9e8cc6c3346a61a2372b858483b7fcd4223d3b7debcb880dfe83168d548e28c6c3651b3b3114346ebc6f9787045c53b39899e45d27b77a9ea1aba9e6b24ca2ef6f552eb204ff27504efb622bd4d533d4f9b7b7bb148e18b5181e03c31d9d7af1be9016f32976d7829854692ea67a51d3e94c9a040c4f897a25d254fd39473d7a0d9a61d4643e73210384ffbe9a167c03373af852312b906413dc3455d3e76241ee162671a83810dfbee8340dd74d8f66ffb3ed2cf957fe25431e7ffbde3d58f64d5a8de5420501943565403c1674818cf75877c9e59f780418e2d6d91b490e89fa68d2a3a951e4207b33a0344ff2f8f03baffbd371c95834b40c7c6671f922a65aab0c49f13a17ccd5900dce05b47ced4fe0076d5d1bddac0dd7635ffe62a9fac30d5d39a710ab0db7185fb70f8918fa367cf6762893c6ec7397ccd51e1a3df0a216032bf9e65755a637de2af4ef7dcbf48539e7a8dfc996372a785587824a22067c51580a2226727cf101a87acb991c092975125df687752", + "336bb496de60eabca15ff35a9777d2ed889b25db330a779c6f2c8a27be3da05e6c03db0cc968beeb62066fae759ea93ef62f2a9934b761b4fcfcb695bfec23ed93f49013e60f90e0da4cf71063cd11f87539f79299dba12104ed9dca7cf8caea205cf94c08441f97be37cf091343a009e7ad1855e5cbbe2b3b6a4200a96ab446f16910ad3c9052173939260f9184bc6714ac7bcabe0ae2068f3c28fe8470e961723f04128372529d6f157d4be59f4ebdccd60da29d36e9cba0452e0a97f1cc4b855386f7e287304e007620f956a66e44ac92dc0ad79ca5c51f5f3254336ef7998adb17e96492b3abc963fba321e24ca7f36066824cec2f27cce9042ed294408640eccaeabee67240b79f3bbbf22d0567c5bbbe75bf183b04430d7a5e2099086d0185278cac07c2ca0f16a1eebc3b5b8e", + "0761049659d1fca88629b10fe5569a0aaa3bbab01b772d3a3eecd7e073305085405315d098af590450a1c7e327a85426094b29c7ef4cd65df979994d524a40f87cc3a4b39090b8187594fa394ca7828c7e7633c0413c6950bf12bc7f34a855682635ec5322526e4f81ab41ca80a622a42def514d454e575ebe2354d78d8e4f2fd4b549696a9579e541823e024cafc321fcdc9403a8e84885081fb3ac4c81df69ddacc9c774f063ddbac369ab45b64cb07b398d16fdb43e31d95f19", + "31520e0308c8219bb41d8ebeb3a146b8d99f1011b05c5adecaec0841010b75c8a62cbaded34713be90c8b01e47efb10ab44ccbb2dc0690cee8a83d37b976621019ea8ccfa951a618e245a19a166387652903d798c72109941552f5a92ffdb83a55a48f0ec08de7509d73be47dde5deca9ff57fc6184c5b3efd7c383ef444879b3c7b139846c427c2eaaedf007bc8cf82e004a2e24b6e94c9e52629349e8895b49bb0f7e7dd5f8f8b3ceb3e94fba3141178da1411ac806fe4c18818176b831763421a143c3bb13188511fd4b19327b9d36897e731342e2d42cd3dd8d26ecc1d09a1b0287cddc98602172daae4abf49d06e7dcd3535eb8efa8c9fad7148ad5dcb498433506c31325f0ee3707a999cfee28e3915d8f1615ba882d2016a24b3a331fe9c3e63d94c23154bbcef9c0ad44d474" + }, + { /* i=5840 cDividendBits=1543 cDivisorBits=742 */ + "769e16f4107c554558ea765194e7627a8507682be20bb20040cd556422f650bce68d1fff62d8358be1ffe31b0020bae0c6439407f878db0ff92200a53cffb095453aacfc39d138c94a3d2becbef872940877b143bbec04c6bcd64dd97896fd97e62142ff5db8211f97838b39afef9a50c15fffd6060123f677acfff2d8f41364567e5a7053641a9ed84abf2f448e42797832d4e5e4bbc9c77ad1e8c39a6a9fb9a61d84ae9215a9006342e1ed793014089f475493ea81f2a67dcb66d548ef8094ad", + "2380b3165173146477314afe6c04ad25d0546debb5d81a76bc1155f0f55d2e55d0eca7fb28b5f689533ba83cde43c9e90bf5f46f47b92270095747a74b8bc2307204fd564b9e5c70495c94ebb573440f52622ec631f299c4876f9b2ef0", + "03575124d69bf12ba13e39fcf533d3b4154f071a2b94eb3468cb965055ec4641cf8ae65cd1053a007cb12b4ef7bb58a894c5515d6cbc7105bf4f320d3b5ea1b4872d47d21016e09c38c6b7be900c8b2592101b092edbd2c730d8180275b69b91ef1d716ee7", + "077c19c3f53d60b4521d0a5c619c4f179af5e6a527b0294bf566db59730705a2b34c47cdb4399a9252e24783bc43e8c5699836b1e804fc61d01aaadd4bcca7549e67c07d4107787b97890a5b261d118b81b00a6d5e9600b33da45e1a1d" + }, + { /* i=5841 cDividendBits=4032 cDivisorBits=4 */ + "3a2e2359297e0ae7e84bec5e5dddc4b8d8964a9a1cf8352b3d387bef8570824f576da3aa89c447121be5dd3e1c2f999f8c44cf266ec54d51ea1e4f9a4e8fac72ef234d3fc786d02718a02e918e9242fcefe15f2a1e3a0ea77bc14c58fb7c723f8bddbbc74a9973f5a14bf8463fa3667d36619cc8e5540ab29f87ee920477696ef3c5b3a9caef2db28d7a2b2aa2c2700fe9903e53d8711b4c4c448f93766be549c8f09acfa77fb1645822dc45225001ad247534a3c69c9c9ba97ad79a69d3bf025be4af955e98a4b2fac641d2526fe01c492debe18d83d8145b3be10872be87151fd323fee0e2f6c530567f2acd2d564e060c941fd15882832c232426c50407f856a88923e84ae58332e7d383e17d103a0567d204653e1917a49e57a8709a284b7c72af329b3143f341da8b999ca5d4fb98e24a7f9081ca9d79a390fba52bf9d77f6aa66ece493d5779510084a6308ed47341bf1389a489f456bf6df61e1400176dc1a0f8c7fab7bf245d8935b1cbae199d28519f053d5510f1310b7b4c1e1698e56f52442b19ae404cf3d501194960a3fc7bef956915260b0a4c664a04afc6c073362ed54f46faa78ca62e27d775be7cf052e1d46434a95928f8d3e681dcb40a4acb0fc833248db2d0eeb5387e389fc5e668ee8c0fe25e5ac08b499652a71ef9ff850c992e54415d36017ca5dc9919055c7c4a2500af0c89", + "0d", + "0479b3f32a938aaf60a360f391110f21e946a346ee893f2ab5f0a7126cb9e2a3a44382be595dde1515d69add64a13333a8540fef439905f29bdaf26e54cff992afef05f136bb99db9f6ec88159bc7b4e889b2eb4787a9eaa6bfb2d41ebf5e167598735d440d0ba269640ebb6a26f07e23f4295e811a400d2a9cf611eeca6b9574dd4218336feb4bef730c83e5b4a089ec3327af2c1e150de7c05461f091bfdf1fbc3bd23aa6c48b8f3165fb68c7c4ee5ef1cb547acd0f85abe4486bd1bd53613dfaf2132dfe45b703aacc9fc7c7ec2785465fe73cfcf109f1ab5d63bba0ea7edeec178ec38aeff4a3ecb93a0d4b4b7de9e00f7b3ada458cf03652a2a5dec9e26cb96cf78ea7bea452b4ce8e2c2937766ecb9378a2f2c2950968255831c5aa0a358579752a979f188ddae5981f85b868981ea05bb0b1dad1fce47a8b0e55226e9312f96a60fde3fcba6ded8a7be03bc37ba18bfedcf82cf88f2fb087564c676292fd3d14e36c48449c7b86d04215e6fda95ef68bd768e9063c3c8b21d2d3d643325575518ef9f838ecad7adec64681b204e7faff7cd01a07700caccca9de622fb1c8e039a412cd83445e566031092e744b006602407b5481a8cff72c2f64c0dd968370136c8db6d5c8639bf2bbaf0a9d4256a8880ed87911aac597bd07c830261fff68ad0b4cb677d52ec6c0cc233294f2e7fb6ef276fed45", + "08" + }, + { /* i=5842 cDividendBits=3526 cDivisorBits=1324 */ + "1bdba71206c0067bad1d1d88a24623922931ca3094ba914ec1c1740553845a50421ec3bb92949ddf7669e5bb2d842bc5d5ddab64847476f11480abd15e4a3602bb68c9ec6664a1538e64ef2ac33eb65ea07dd672cc5edf6b9fe71e4c58f49c0c9fa1e8658d4021095c4da4880827cfff6237d793a981e3bb33d1552954386d80584f76a610dab5fea56677e4663dbd0f15948feb9ab75c6d2315394efe3fcb4b2293835225518c737ab83839f8862a503ce8fe5b70f177ba7615007e33b1b7bb5e186a1273988e2d3bbf1c58b6ed5fdd0f1ab141c8c3f4d5071b22b56d4fc6343ef1fd0dc4595e950ba2b483b9b45479ce60808e20b03d6d559f0d164664e86507a7ce7fa7a99043819c142484e95b410b8b2e1c1c72394a235772c1aba4183302dc54dfbdcdd978bbb633ab6dc7fb707153f807351acab29d8369b7f66c0a1d0c22bbc2fe3f1364d28d0aaa70c9ebf1f84bb6556adc0f3e6911c6497c6bd5eed56d054aebd8185ae09ebe4bab59e6946f0586e1045d99e36ba065e4b536bb90020ac79aec0763257f7c442a070484583ca9e522aa85b60a17cafda9fbb185641a804870c073871eeab5beb94e6a72d60f2bbe064c54cde748", + "0961dea7cb983aa954c862f3c2747d7fa63c52fd4517c0d4d0066d77dc58824053f907754b09b0733a11fc2c8e6ae04f9dcf35ddaec41caa5e0898989c7bdc6ef2210f9d47202de861d4e80a1aeadee99790c555e10cfb318c67a304f0867558d7d9b8d92a77e18294b28cc2f5276037de446b192f71655667c3d88dbcf2ce6b44a66057357f4b11525e2a8e80270966c249d1f826b19b04e6692d008b248b0bafafcebb01c8", + "02f81e102db297b79f2d52263679f4ad7b10ae8dcf56de8bdf06a646b483c855a94cb3e73a10d0d2d994acd6ed2047113566013c31219eb1b96459b939cadfdda8219bcb5f6d2fb0106cc1a7904dccf44419554c68547f705e4ae738874ee57a3c595d489d97b228c4ecd565e856607bd8a64dd5045c881a47483c3706f3e1485a3684011a560fb23efdf9ba0d63df51bee1458b449c1e7581c41142687d0c1fbc0d53b3568b85075b442405afabbecf2b7400af99787e736a47526e16244e60774cbdd5ec5139bbadda46632bcd5d3c1a5ca23982881f18f1b7d84fd3e153d3547aff844e6105d48c03f221b5d3ab33b65e8b9a5ea6cf174cb355e4ed1cdeab51970b9449c81491ded2939cfc0bf2bafab6eccc", + "04633fabff4e8cad6cde4e3f0eae323b0337a5fa890d79f4ada6145343a172c81b2ccf3e01cbe105fcfe3335b2a18e31ccf5d1c6dc40579dd9478ea4ab0a00ee71fa11ebd0e361d48ed73a6a3e883ae2c965605142c7cbb430f0a17d3191e4ca41d34f601e6ae750280aa74de338f93833a35e6d76a39a8afc397bfe22cf09417443ef90432ee10cd2f450c3b9e286eec9bc36ae9705d6881d3b814f440e1271ff9e9df41be8" + }, + { /* i=5843 cDividendBits=3952 cDivisorBits=593 */ + "943779e151aba5ea39c8ddf3046440d94f2dde673e3650d4dbfd4a4e72288590e85a860b3a2a7655b395f0537e347067267a82bf99dea8d5dbbb117a405dfde865b0b31e62c25a3b42810a1272d7a4d1c03111929d7462398b68d9d0dfd5bced3f06b157a88dc96b86eda683c57bdca31b5085a71fc70dd72bb4cd654412104e8d18170810ab4e4f9ae7906440b2e9c4a1bcf13965dac32742583f674f3c647017fca117d49b42d1a896389f71587514c49cbd818e7ddd8f076f5beda412bae7b1e27d7fa9e15b5cdde1031085060e3eaf22becb256d2601e7439d67f0a0d43c40021315218722de7decc1687dada780594d09986e989191ec40fd52af83384a6ed288731f4645e09539fca33293d792fe77f7fb6e97698b15c212c18461d49da8ab900b4e447ecefb04ff89a87c50377f350bbc6a5e18c90002434809e39478b4f4c11a937a2c3779f6fb3871f0c07ea13cbc7946ede04f42947cce8fc71eeed59a679ec06a540ceca7bb0e0e73eff0f0dc0a8fd4ff78be17ffe947fe059d3af747077cbacb161e0aa33441170908cb309c2dd17c3cc38e04ffac417df8f96a8d421412692e5e113482ac3692c5d582b44cf18b3d9b051789fe5a5d2bc9e3ca23aac5126ccf6175e4d7aace83f48dca7cb7edd19cbbe7790dbfca295da327467c264c5a3652af292776bd45499a", + "d51d09a5b5bc8ea52cf61bebc1991ff2ceee06533d4929fd12c68eae15add80cb54f7fe06d8d21119febcf39906920753ec97d22d7392e6599d09d49526a9eba3b1219f1442e181b5cdd", + "b20b278cdba16979cda9afdf013918d296b3ea56f0fde1c33dd984210a7c858c81f6b70dc6df3ebc43e9c83981c4b7e4d19e786f83779d99b247d59cc9fd2d7c013bfde2338ddff6e1cdf0251cf8539a7357e59e08d3ab12b677443cc366a5c5ecad021709fabac3c7fee6d22fc2d9771fff430eee1a34ddd15e99bc9353c80e7bb11100b6211b2ee595c6d981a6c207d1851db5f16e34c7c0bc10faec07e08202a1e73be04251da154edffc3160793516f8275a3a8d2a7b1b362eb28699f3ee35d40f1bb5f73c199ebe957249697eed52887ed02296a1c7c18fe743611db6d2b1c7e0d0a51069542a657abfc56cb4b6086a3f95f0946928197e8763dea2fdf97db5f5eeeb8c090ba051881edd854fcd1acb94d9c3c35d286afac9595f5b194f0303f93a01b397212c0490a654ecbcadd0a5d6b55cdd9ea4f742e18d4e845fe53e3a846bdb807c51e77b92a9c7a7ead9d82a332ca5695b0e8a05531db6efa8338f82c8ec75fe7c8796563508b66accea403bdbd23ccdc512162016577fdbd8ce04d62e8bf19120ca2dfc40992b212e9de7f0b9afc6d45a2d14d74ef1284f4afe96df2a7d", + "578a5058a2a0da94fcc660e085130c48fa52bdc2d01ba60fb36cc845a5bfb15a68a7686cca253b8163b8c33692ea28218867ff2c17217b6a1f68329c2fd32b04fd6804b33f7b1829afb1" + }, + { /* i=5844 cDividendBits=1522 cDivisorBits=453 */ + "037df16ad9537bd5dedd2b826099fa422b9f72dabc0dc79beb0af64ef36238aff173b0ca2047e23a158c1a411d89a798283487fc86f9075381961254e13e18083a3d634bc6c41f5e6902a1fa4abe74b849e8dfce807a6cb9c403f28ba3a3fa3663a51247af60aefd2f5e1b6f7103e42ef4a7eadbc20ec134a23410619affaca0ba322c70dfa5f1fe1d281b5f646f188cada1c409e77878b03f26f4d76a055b990974109b6c9edbf925a4d51279cb816e524d537325bb6e5bb75a8d36e08f08", + "019e6c34a82ae3e35696d2dd2e76e7357aeded710a048630672a1c1e198a2b3728f206ae0a76c6e0795b1638de96bdddd1853b692667a2774b", + "0228366bc860f930fc92c46ad18becdc879b645bbce3a628ae00e0c3d29fe0cb766a54a9041de265f2b2a1572785bee038b0eab2295a6b96ed04f4061411cd51a08b35c31f5b5519b06e5a25a80b12715828cfae4eb4938d085e18d120283eea7cea905356bbbdb5734c02db399b3e405835a00d80f342d98aa8e1c7d1061b279466c2824a37e4", + "296966a86fedf0d3549f71962ea955f7da911515b171a0b6041a952757bdfd9d91c4551f5a67ebfd4a943b2d2e197d3a6079b5b470df333c" + }, + { /* i=5845 cDividendBits=1293 cDivisorBits=954 */ + "1b2ff3702dda9c5bd114e87a840e0942ac516ee40f12d427d7380d606778592364eabea5113b8145964db8e8107e83bfd65a7da5de7e9afff890eb6b0a7a55ea433d6ab50f291b61f88026cde7accd5e451e13c90ce6e1bcff04986475764ee28d2e099c8fb7f5f52cbe747969365914c2b815b6ca13a894b162d0efbaa820bf037b5066b8dc10b10804613bf34447cd4a965b4c0258ef1cfdf5fbe2f90847315b80", + "016bb938011a432c2d530dab52f5751359a56ce00e91c229fe80d8530700805570435fbac4e7b7497ee63635dec87dc922e52c7ea58daab7b540c1876768ee81dac337dc357b51ef029e33615b95631db08c017db463da1193355dcdfd59ae3bf592740a7a3f386c7a65893e88b51ba1e5da0bf959b7a6", + "1322a1a8568fe96b98e057ed1bd3b9f72c1a3a2005cca453d05510b7cb00d8aa4108b0b9706b810ded2fab76", + "0125ac372e9f692606a778355bbccb5f10bcb77e2d82ebb207645f3e9b7063cf8c0e05b3d07e84a58db3931211f08da0b12ea40bb006f9b2c81fadafa635a648c8905d8331296a57830694eaf982b4a4f1d10efe0527186ad5d5c80d7185c7ac2dde72c7fdfa574227bf59c73f1ef473c4a80904b0d2fc" + }, + { /* i=5846 cDividendBits=1718 cDivisorBits=346 */ + "2fc6e6e6ba8f427b7a64ac096d3f0263a387d8f0d43d9193d028deba03691579e04ae860ab28ad478366a0085cb7272df4acb233f5fc8bcbb181bac21dcdeca7b5be352a57d8e1223ce5f7113b2bdb5aad7e3604c82a93478c846cd6553cc0b9923cb927073ee343878959a385fc4773b08be1b5f7dd57758dd82c5d13f0612e29196ce5a4fdb494c2e7b8f34e13cc02f6ef813c1a8e3b634cee684ca7970ba52c1f01696849fe46f8fa623d44076b02e683eef1dbdfa11e9e7f0f57d7bbbbe51a6cabf3a59035348f755260eb9ccf4986764b0588a506", + "15bbc4c81361f29a7bb63d21f7d00348c0007cec152dc97d5c26c8cc1c57b40a7ed666611eb9b5adc978f8", + "0232c49ad2a9dbc34a82f820ce2b082826d4da081e2535d6a93bbcaa778219ba3e8384a8a39a81ffac560d819b315c41f576b0a88332c6d89fd6ab2f351bbf006b340db4bfaa6717bfbc5a9bef5e3866192681d545fb6c891e7223d2a536f9c7238476be767ca16f1b3c10111cafa3638f35977ecd6044c8a8b851e31071df52f4047d602faad4819fcc25e04dba74bd6e65c5b845c9e7db1d8adec53dfa7eb44d36d26958d7b05ae2d8a9abd0", + "02518faf0206c72e3aff19fa2db26904aa427717c34b6e1386687b13cbf9aa7d8a2eef440d84962250b386" + }, + { /* i=5847 cDividendBits=2357 cDivisorBits=2134 */ + "1558000d56fcaab162dd20ee239045e9891852038b455857d10666251b2bc9a8ac70827373c0fd022f8bfc5f63397941e4ee4dfbb3c598edfd1b0130b67e268767912aecbda1bdcb8fc4439eddbeff61c01e7612de060fc6d4f0ed9077d6a7da9bd547f70f44ce12e3bdaa55ae9434dabf349b1f7574d831458e74a3f2f9b64e5724dccfddb7387af4c73906d5b49e1ceee4b880b58d87f372ce56bc614fd44bc7863a72ae7339c10fddeff380c1a5709ae0073eb0b50c0319c825d8df5b0d3949f71b260737f1224db568f7861c7a63e94613a0c86aff50e5ea302175804755cb2f337482706e60f0d72353a33fac79bcbad18b37a465bb90eecbb6c54a755a04a53940a11c7393c045065662f3f54e888722d1860cd183e789e87af716629a8be9cd65933861", + "3d85d8826b15d1591cc1a1b1bd5dc4c83c2658cba1381cde2830d936088c7706d3b51c70e45b8b50f32dd326793c9861cd2398660954d3f31a9c2511a5436ff441f3ce25907de14968d9afcb0259f8f6446740128dbbda952c793efd717f0e1eac09c720687796cc9881e29a37b77a142bf976e93e9d6c47d7923dcda0f1faab484af2ddad5a409ed8472747aebc765f7297b4335db9605e3f023d39d80bd1668fbd488e75e3ef4d85e2945a5531713f5e4f083c869970abafcf397b155b852d9b0754aab0d2b20c30cff9373b1f825038c8f79030d6fca12fed1bdecbaba893c7a3f492753dd851a16fde338e4be4e1fa1a5bcbf0e2cfa35e2da124b48d5ecaf59cee780d12cce1c24e2e", + "58d003a68cfdffe64d6c05ed2ae25d54c5edaa85dcb29690e2309b80", + "0d0634f13d24ad861460331b376658744e5080651bcfb9b8913210a558ad6f8e4ea198142cfc0397eb1dbad80cc063d69097a8cab38814ab4625fd5eadb9d7f31388f369b3ba56bcc6cf9540c32c90cd1455c6366452a1b6c796128dd2f7e5d9ec743fd03de85b2668a4d7a81954312de593bd700ddea92e1e6a529102c6c95603109d9ba9186a49a3f6408ad973b2a173c4a5867d0776b162e4b77ea20cd129fec360d68bd69d02f495f7ec4a8697d63251b31e255c5fef99cef05eda251d98c6645415caa8d00c20d6256db4421424807aa7b084cb5d7b1dbf41eb79c7bac7ad248e7ed31a10504d085e6585cec725da7eac572628b8caa5fd1c2c8c26cdea2871b388d1ab589a764761" + }, + { /* i=5848 cDividendBits=1950 cDivisorBits=515 */ + "3181f86f69e97ad01443593a88722133df36e69064d63eaa5d12576fc165a0b30126d1a9d3e503904e2d43686bf904cfd7610ffbb7719a0e0ab72d7a801810e8b43b97cf475bbfa1af07bf2939abdc48cce0ffb0c8691329b7036cfcc7414a4dc0678e9fefb78a7c46c20391acf2b232e33355607c925e11b06b452122c309571193c9ede89146e8a3f002b01c993c73dfa20f501445d6612074932716019c57359dfbaebe599d30f8d66c2f593c4433d925da7f2885f53381123c2fdba9da074ebada65610087195f4a5cc75ba803f4d0d276e5cbeef44874bde5305d16dda5ebf07161ade97aa51a4cb60e3bc3abb5c5b0eeca", + "0730355c66cbd8ffa0653bd080f07e119bc5aba0cd1350313dd1be39497ba5d747b9073f78b08150383e32eb0580824c860060041936106f6d4965d7161986f402", + "06e322a210f6d06cf68d0beb79f8ef3132fde80c7428f8707d1e8f76398c21d794c4050f9c9d2889542e93b788bfe378b0724153bec7dc185c679edc4c7598bd3484acfe5f42addc35d2d69128d9ca147d98e9634a3522f32697b767ae197a0658aee53d566c444c475b9736141a5413f3374b6e675aa3c4f8a74b420465907079ff32dc1f927a35379c95710471347e6d7ee090d697652bd81576c55e3855598805c93eb2c4c8dd7c8797188512fce6056f8109", + "0234f70c0f6207cab47d812a52e41658059cc20bd1a050c488045eaa49f70d6bc4839923d75ea1393576358f9b50266aefe41ddea80914f370ab2312fe081f58b8" + }, + { /* i=5849 cDividendBits=110 cDivisorBits=50 */ + "116af310c00fda993e34c6d35f4e", + "02a270f37efcb9", + "069c7fbcc8cc624e", + "01e5160df78cf0" + }, + { /* i=5850 cDividendBits=312 cDivisorBits=61 */ + "12e51013fd81b0c75168f05e1bc935eca1d7ffd4d2dc8cfeea466ac9dce1d6a128709022091c03", + "1ea776e9c7955aee", + "9dcb6f8b8ff524daac23c40daaaab6ccf4f97303d215e781eed906518a49ea", + "0a295d19ca4a2077" + }, + { /* i=5851 cDividendBits=1133 cDivisorBits=946 */ + "1404cd82baaa6a1763ea01b78cb597e56a95f99d34d19f472f61b46b26d8f93d0d0ad3783d5115a20698f1375f860021371d5914bc17dd45dd81e0615343379a764c42c1e9b11e3db02f27a9831e6129c96298c3c16332037622a3b34a93881864d37fe75d8d8fe1ebe9acc3575055f477e37f3657d8b6f01c03759b30cb247ca687052ab43f66c6916f6d1939de", + "032b3d634689ce32f28eeffdbf5ea77fdb0687b5f3ffacf9b61b5d202539983e0c4b383e0f7af6767af3387eef3f460dda0188c310e836805481d216df98359619a1bd3e186f205f2c7bb8e0b254c740c1e0642862a55d724cf6552d9110e531d0fde09aa6c330287ddcb5411c123c1c87049290dba0d5", + "0651372604a19c566db347907311befde06e582f12844778", + "598137835a55ccdcefc9813cfb162b67aa3a15d12db8d3c088d1ee28ddbdc8ead679a128bdb3c441608f11ab104ae42a96c6fe18f9e27af3bdf47047e77f8eb2d5c89c7799c6fd407e025dda924ea4f06a8f9aef00613c28e3ff944290e21e6776d016973713954fd8e2b24b9be95853e4e5b4b6c306" + }, + { /* i=5852 cDividendBits=2506 cDivisorBits=311 */ + "02a6731424aa09f0ad7c586f192f123d1fc0e508b042210826873ac45056805cd621dfb26c9351c0cc2fa3bd3f75d36317be1dfee506040c42e2f29686be7d77db255f1541280fa915d9359eec23683f550dbc6fa645dbe882471ce1368ede0e41a69ddf695ff82ad937041427de642200367df7f64bc024ced8f9256984d155ffeeb3ff0cd9b24fdd63c2dd76dc58f60b89d677bd867aa14feaabed9861481552a6a7ff3bafc3d524938c00a8852ee110e8599b476c2117df3abfdb6772d20d930d18d0b7b2bdcabe0019aeed96a1ce94695533c42b1d0fab8e75655c1d1d5dee5ae86b65583906fb4824699908d58c58b308ef5003ef1531c0e505a533bc33321724ebae9fea92537b0b535fc141f5e0e8d19bf35a22ec80c1a3290b3516a04d4d68260eec2464c7160214dede815ce6d343f5a05840d80ec1", + "0d2ebed4c8346dd1d9eb602290def33f56b200c7dd4fd2178d3b08c020383eaa69896a9fb330d2", + "33772d4a5d74303e233f3233a42c82a7e8212efa7d27804562b54fbe1169a772eabb1a1f450acb0039e51214cc7300b448e0598e415a53659a2b10ea425d36ecf28ad1be6a944b54ace8c1ae7bfa10c6b19402e582b625519da80310084dbf96ec461f7985360dc52d83b7c81a405a0a9871d1cbc7dc49a18460746834797c79397d84698626dabfe97f4dd7182fef9604a0d57278227dc52ff264b290c86241ba6b399bc719f6a3eb50208c6cd8d160ab39ee33096dcaa58820d464803b16e3a36cb31863087e7916531198d93c9ec1f52ccd7f9db428d286ecc17989710f241c3dea5f044b7385dcf2b0e66f13a67aebd0fd4577d1a9bf5884f262d797df467a33dead18c59f8bb1994863aad365461e8c92", + "6b3ee1d7b93fbbf0d27358b3941e4b8ebea0f80966ab9c5043fc180e0b51c611e30009575efd" + }, + { /* i=5853 cDividendBits=2651 cDivisorBits=1926 */ + "07ddf442ba45c20b7a92da59a54c5becf92dc0d4b907c5e5ab89a9c7c8276ed681a94738c96c2906bec30c2ad6ac67baa387088bf89ae3faeb4c48e0cf5ec74a31b652dcfffcd887c14d16811e022ccc628789881b0e4335ec60d6c0914460ca9c695a839cb9b52718f73c023f4f811b52b66ed0b49760520a68c22fda50ded14a21bfd54ee696eb0fd44c94c4d252a940b9e09967fd047bd2256710940b355b1307afa3208b8b204caadd7ff1c2e8f2fd0388c2158e48a8252ed186af9afb2491c3e9f4d2c66a262c14f41e5c7a172c9cc948bd506a3392ab50ab4a271d0dfc70d6b5afe9f67e8bf2793f49b66ebc83e22aa19af27ec457f52d8486fd15c605d97a3b18b72ff0414d65d56ffec81633437c0c9075e946688c6e75acdf53ce4448e79ec83c532e8430f91595379ac53ed5cac605131d251bb89603ce7fa77261665b2182ed81e3cf442910c4", + "1ae8f9f18d7c10ceb5963e5c5873f246f9ba3d3332b906889607a1d663d4db273147ded16a6d4776c543881fa79bc5092802f4b42e14c67d1f68b645181318ff954151cf5721265857fce44ee8e543d628b1bef1ed03fe6793f2e211429feff353fb6136472d3e9bf29316adbf2ea416c0a87c8165b60c24c3d0266d1c5cc472c8aa14cce79093afdfee7d6c3c25a4ac8d2790862e782cd3f7bb5a9eef9e18e7c59bc0965bf205db7657903efd41c0e88cbe9c5de6346b0c77a95bdb4a4a0dce8e8157658e6474510057a34aa1bf957ea4064c3fc2812267c5f1d6c5dbf7a335088723ee81c7d37f18443e32daf905fe3b", + "4ad7165552824e954397a191a964e3ee8fcaf9d521be842285597e419342555d1c35caa03fa5a63d9d0515da5aa5e64b3a9d229e21e972750ea2303968aec71291ad8c0bcb1ccd62a0647603fe3a6be03cd5a11d9cc0462e42d0ea", + "19ba15ae8afa4e5d82fefe7a8cdf89d80d8c89a22994137cfa6a77c8dfce3ec02b7045cc97143138fa41e67075b08c5ee666c1c83c3d412574756bfbfd1989f90689b0ad34c600eae4e67a7d81930d7355dd98a345f81f6c958b6f501f0b93f92c24f685b33109dc4d34dd5cb316634a3aaaa8e850d14c4373d38586dab824b6de2b8241f69f0c452b895e91a7e5b326fce473ffa50a98c92dfe581a23bd9fcee7c989aa94c3502989c5e43260db763d048ba4402c5b071e00e309dc438c1233131b003d4bdb3d3eba6aeb44138a7296b0d62ada44988373d8d86e3289b39a3f45f0b2791fdd54ee825cde71f6a0e8bed6" + }, + { /* i=5854 cDividendBits=3732 cDivisorBits=189 */ + "0900e0757fb9fdb85511ae988f64d21c5df3f87446e5f9e5e1730ec8544454b8b9e2d265d4a534104890be93e63baa80de49f51447212d2b3db9c096e80e7f4139d672c7641101736c0853e2e3e542d422f54d20cb3632171048b21b03962a2ad6ff224e0380b918c40bfdfe486813944db89ed8c6742182d31eb3b715fe8646be345b7512a13c9856fab546d5a38178db79aceecf63360630531a5ba1f6e96e83930e9a82648f5c63b37f240701cef2148d6bf6b95c30e41ce140bb9a9c0166be253fb06196c35a3dcc991217041e9f30e03f1f6e5c88f40fb1dcdaa031ea77028601fd0edfed27bb86f3ee6a9aa5b2f14a2c3a3c1c4489777c54dc5a97a4492612394aa5e0885b8c9ba4b7372fdba10cfc5a4745642794ebb98e470d164bb54a28918380a0b8192ce8444e1a19d38409c0a86b9d17c76591b5d435e637407cbd01cc4babb5f786e1f0d31017469afb14a36267c3804c85da3679d9ab9ceb6057da158a3d07d4f4807380616bfe8136ac29319ae5a694ce1c95fb703ba0f04cd51c41437a07c6713d17b0c841d91b5152f9b3b25694ecdd64104a42c1d2cf9fd4314eb72f2d5111ab46aabe9418b5253a6fc21faae0a78187b4bb08135c7dbaf73b58475a70edadcbdbf071975d8d644cb323", + "0cc984145e379a66b1a03d402cd7ba56e753306d48d30e12", + "b43fc82cd51c94c0342bfe54ef72609ec0f2268151c2602a67c0c97a47de066b517e739bff4fe4ac8509c53d5baf13f16cb86261334cc29f2cdb219555fce939f9afd0c45e4816e6bedd46e604416f77abe41b6a1c647a39d39951b35c77e1dfe102285bbcb89569131ce8f7da53efa20134e3ffb208cbbf51967f0e79df4817dccc17a8e553cb4cfeffcfbffc0e92c8affc047a41161eb730b2747b7df350140f3ddfb85ce0ac1bafe06c1033870fc9002490021ad71732f976e3917566eeebaafae860e1a60aab6f0ff2072bd942b01cf89bd78239958d047316562a93f54eabd1a4426826b43e1e12679d7fa6f685b03cbadc3fc57f0ddecf60c40e55d5c9a5613d0b82e7a3650d631d349f9c568f4a45df1f92262828afa02e98d512c9446a4442a51aee0a1f75e46a8903cd09a989ba9b8931efdccf065e9c226418dbcff68b7da7591c00471ea58ae366e2917dfad2a182e158b4fde350c701397f06c6cd9d9d8cdab48c267107096010776be84c31fbb9b539a7997284d8fdaf7be8833dbbff36bb028e56df46a55ffe99a3553dec09ac3295ca8489c53809df1f3617d71e8d9d356bd3c03a410ea3d1fd3f79981371927c7e31a25168de", + "0c12c4616c8b7b9f6ea3e2718604e1acab12d211a7dd2f87" + }, + { /* i=5855 cDividendBits=1881 cDivisorBits=1002 */ + "013c68f9bbd846552d68bbe9f8e47c83854bf295b08b1fb39f5c70bdf5ec5d51a17eac580d224a36ff3fff9797780df221da88af2d1ff961907e6393ce1631c2795101dcfcf3f90f4e5820abac2d0c14bf30f7c70bb1591d10e35335603c8e5e2d6c6219411129448665dea0fef6eed25f653db21835e6c4e2b9a9f23c1cfa57078309d117482019b00e4845d3cc1336e45a79b901df2d78bddc008955ab534bd9e35002bcb4b78875763c4d85b3a891fc36a8b99756f524b8334d9151c5747291102a59316176e4a421eaecd8d6f9060d045befaafd7b5a34d84ac60167568a41c71438c6bc0d6be9fa7eaa", + "011408d2a91fe2a7d4ba77263ab87755b786e6268d87befddf6776181b7ec9a1afc1be552a1912d2aca75a9549c877d0fee2260a8ac1512ba9740be2b6dc34455c763f0e5079150ce4c47e4f37c6705a8bb688f4e86695269fb4d77c5c22f4d06cdeb62c3a5f4b97e317c6e2498eb53141cc8da69ab8160d7bef81235b46", + "012571f5847a644f474e1a4789c19ce9a24ac1d0b06299bff7b8eea8131e31951a7db1b8fbb615ae2fca741d1ea5ecdc36b2a075f0b835792604c7affe039f57827ea7a300ff0d975823dbcefce851ebc1de6b8b30e22b45a9a015005a0311e121dc00785834006f63b5d3459e2bd8", + "8d2983bad184d3965493dce0bcae6651c720cb5cb744e4fad2d143d168f156ad34aef5eb90ef75b0ded338cfcdf14e2890e45d7b2f868aa3d3fdda954aa6834b214ad16d3fae387c259be3f399bc662c211f82322ed8cf8bd75caf35fd7733310b4076b4362348474fc20c8deaa0674f2fcab36482c62b4c87d09cb99a" + }, + { /* i=5856 cDividendBits=18 cDivisorBits=11 */ + "01c729", + "040f", + "70", + "99" + }, + { /* i=5857 cDividendBits=3974 cDivisorBits=1219 */ + "1095b20d3738ec2b7f2c24ae698ef8094cb3b3af1e9c458762fd34320f9607e162daef27413d66f4185300f883ca18b9928b9f31e1756073d357e52a91fff98a8be34d61d8b7a6766feef60c32646598b4ab290f66fc9fae1d78ba0b5ffe25c38919ddf22c39430b6fbbe430e8375b13b5575065045467affe43bb63df90b775470830ce416624a7d301ab5a14f649e2b888b731aec4db5ff80973575918314e96bca8d8d93d5832b56b055dc6834933f53bc140845cfb58697b95c0f3665099c6380bc42a24fc02a6564ec0d2a05aa3f4076d785dde1c855a8e1ead86588714e77861491c3bafacdc97884dfa8278d35b375333d787ef0426914af9449c1422b5bbd2a0826ef5c4d2bf556150fcbace59b051ad4d96330fb69601aaca66b847c8e28b789c8dcc0ed2ce4a7698e8a0e875d519527d98d1679dce5091a4bc663e395ab922e2b5e2de4ed80eceb5e1853d691386380b8fc3769c989aca4ad27ace3e87233b92251d124edfd000b5789855ce1183a5bd78661a07eb8c1af44cb3cf2189864083f8ab36c5341b262dee73aeeef96916dc54e0335e146e743236e8a1a61dd9fee5df461e57ffab5cf549cfd48b88eaf15ae2f1a445f6923cb3b17fc8ed9bed949702d36a664098d3304cbbb5b751bc6162ae05deff78775837251314a787aa86a3895b7467e0c892b62a0f36f2", + "032a7a0a7bd2085d5604d433fd18245a27e0ed28c78039b2f70c971f60e1217152a6aed23b2635157552533331de2086efcdb808cbcb47ea9787cec6d65fbac4b5c3335ca162f859cbfbef69824c1641b9f0a099d418ac4a4de6cb7d996fc65fa1505fd3ae709fa22f609def215f7f19ee16a1715a75ec7842180a86629d05c3490ebf4da73a5acdee20282ea7f7564a35438b951d8a9c64d7", + "053d0f67559135430bedcf9284e8f2f5ca2112a1725b23010d2817b27baa5cbac1466b981d543e8f8d3aadd07a7039c1e42bf84bf1068c6c992344efbf8b1f38c639ce60b7900eb474ee3b1e5cfe00670e2eee4d26c541b9613fabc048e89fdb20a791a5bac3744531a33e36072059bbd09e5d3506c7a866090a00f487ed8c1ae57f5ce1dce0486214e969a1fc5d8cd18c8c8d9fc0354ec27cbf554fd040de888663ab6ee8bf75d5e0d5601e7b0cfc6e4351d1074530c6a32255033f591a88c7b2fc39d0e3b92a992ac28d80f2c1cb2473f5dd6a8d766fa13e77492f1e90851ef8dfd78ea2948b385ef05e3bb59d4bce62575e76a964ef113821e999c0978c3fb2f32ca4475caaaaf3982e94e702e5aa9b6503b0a45eef2d3bd97026fb3944f791bc43b5cb2286edccd44060c4e5ea333ca3773864e1e2cbcb1e04cf9889bffe71a9b43595ecce76541b267cb9e0ec16d72101bd4ddacae075", + "017daa4790b7d8142e4d7ef3d95391b3a2eb312bb913e40b01e46b7455672ad1034107992905e1681f134e1dd738d92597cffdb249b666dcd2325b1f859beaf331fa4c093bf0239bdc6118c931a2c0b8e6292c367e898ae5b5b3e2481cc867490d0f52cb907216ba625c7e41081df8ba0fb6051319f923a6ef59045624b874eb2e57815630d51340a4f7534603622b3e71cad6f5fb50b300af" + }, + { /* i=5858 cDividendBits=890 cDivisorBits=176 */ + "02910f83ba1955b456a101003c31768ff3a6103e42e56c7ac0d8af409816cb873c158a0fde0d71d97a593d7b157d2738f9826d505a05f5803525ae9e0bc281055b1bd182001e6e71ca4ea5da7e14d40338d3573b32672060817948993d74c042ff109d420e3ff5a8656e7c5c105aaa69", + "f2e480814cf680719488e2e191777bc0f996f21add5a", + "02b484a2e141d7f7d89d1fb55c1cacb8248595f2f4747a8256ef4dda2c11ecd6c76ac2a1a4dfd6ed2afe36f91a32cd35246bf453095af6f787c12f5f833097f611a68d6ce0d5f9246105a5a2c344b7c9570b2ad54755cecbfa0e", + "b018a8fa50c6f855a8c929e0399b056e5f5ea45aab7d" + }, + { /* i=5859 cDividendBits=1070 cDivisorBits=486 */ + "1c4b16914b714a94c688a2c1dae317c3faf6425d84813744e6abee7c7965ab2983b1722090f51a970792277a6f9c7d1eea54053a28877fe0f242cc01a2233ca9d364713bb7a4aace22be51be9ac4239b19e7828e0d113fa97ac743d7a410cfe2a615e7346bcb493c26e7c753a496e82c25e1637fecca95117da7465d5ae37596c5488d1176da", + "20efd52f8c206286258db3710a2375e1281bf421872692e19df324fb6577a03aa85730fc0e5bc175c783d85de7f85833ea35e968a78f2b02f8295cabe4", + "dbe88ab3d0ca62c73b9c408bf05676edb8744573facf3cc67ebeac6a1ac5a088c213a21a1ad4e6e6d10b48efce1f245393768885a61410b6c44cb8b2767ec86cc7a9335747582d2353", + "081b7f33800f9518d4c97a072ac5dd8778d488b31a00c2d59772826bf127f2a76dadfbeb0d234d8890951c0d59ff725a3c645a2e5a9bdb988ee1718fee" + }, + { /* i=5860 cDividendBits=2500 cDivisorBits=472 */ + "e10f0957a56bd93c3e966ed53a5cffbe69f0ec01c40f2a8674b64e40e8d8f6f63b3f33ec225786266b44327e894670beba9e5cb733171a662931a48ca7cdb545a1e676374b6a176bf6f56bcf13998c0289c8eec6e9d21e1faf094690453e5eaf7da7f29d7e244e2e13b5e56bc80b0656beb9fcf2de7160d8836f6fcf7c94b28dd1047b36a5dceb5e3efc492291fe22bcafdae9ff519335032eb74d6a9dabfde32e966d6fc864f8da390f0272eba7ccf1f6437771bd4f98c8585d8be5d5462c0c0c091aa3929a9a4c0d290608062eecab79209d5d71ee3dc4fa007e3cced44920862a932135c9c966aecab9fc8fb7737e851e9cdf1b8d6727e6c344565436e454a9bda0ae1c73ed9ed4ad1bbf58a22dc65a99e2919fdca52ff0648f63653ae704a25fc8900163352abea44ad1fc518d68a10f177ef41a0a6c", + "b8a753cd4f7b5486816789803020874152790a42f1cda33b3de8a0360ea47ec633a0211af01f198a3983d2a89ce06c99fd775ea05a1047a3a20e78", + "0138044e76067e6db0bbe8ee0324286dbb73f51e08c6e1d41ed901371be8e5dfe900f1ea24c3b9dbb338657b6a24b60c1ff237fa78d634d87316bd99a44dae71a0c184a50fbae25ffbe3d7717769a957b6686ceee401e3abacabdd165ec06fc3efb029a197c71c520f7fcb4b0adf4cb660989e482c1ebd031a5568ec77012d76dfbf98e07f669dacef61836d152363d1ed86b3bf5b0d1c5589e27d796a12efac8933e17b2aff95f802efd39dce2ae7696fa068688fccc2c50a5003813503d955f195f75e96e99de80800e6b2af4ef0ac43db9918ce7207dee27f69af77cd5b3881262d114e74cc5be9d98ce86f1f49b20e1803013f8bb55f0f4bc804df31", + "aad01849875383deb28f6b5ef8fe8add9b324c2add5b3fa9d562d081fcab0226521b5d2ff4e89e1089d080aed9ae67c96dc0639cd323407d9abd74" + }, + { /* i=5861 cDividendBits=2740 cDivisorBits=1436 */ + "0783d2f704089228a3ae4e1e40eba0490fc090341f8de85f395deb0b33bba376ce387e56f1b3d5219b52da762ea8cc141e8f9e37e478731ece079a8d40e0b2392359667cfb30f79b28c2ccfda6755f3e26ffcf9640d432323234801417f1af98c48509a95ca6a53971464e891b20c3aa60ff0365c91286ac3837cb88d90210315362ae4b8c08e1a1f900ba234b390361ef1db92785a482d7803302d6f98f25c091ce50ccf8788a0e4ff2f1fcdb01b52491a64e1ea7064cca7eb6374f1e3a199225694f9fac15797c0b8e379c0e71a3899aadbb5a4cf71fe5ec9113d29bb2a79d3d147433ffcc197a9c8dd2c2800dd830bfd780104e0d76b72c846b79cee69559b1824b1600a999117ad0f58c29aec320553dff18148e28cd36d5f6e5bdc425aa1a752aeebf39c17a6bc42ec172e99ccd4d56958ca7b054b85ea7fbe219bc5e8f04e19516387c825b2edec2d3dc4dfbb18670828786d534", + "05de8c2fb34f04432d91e57a2e192499c0a251a7a1366604616c8104a2b0471ab7685c5a6dfb6cc2f57303fe78845d59d1707078b9a1e6bfbea77e4d207fc16cc6df41403769031ebb35953e07fe487705fa15dd82f49faa820c2b9569d45551e0ec51b35df95776eecf67348dc974c1fe8c2fc4398e6a11210ff93e01960447b1227373c07074d5fc52084a0fcb92015c4ba85112981cfb98916978fe2e5864d97f55229cdc4298c85d58ab2c5b0e831c006eb3", + "0147c6a486d19136fb8d8ee7d1889871dd706fb7e32191b5967742e4366523558a98499b62a6926ff80a8ae79692078930f0cab9b1edca32c95ff48fd2044b33766a30fe647569928619e8fbbd110bc92e64c2884385bb6c0a8b865ffcf777efb9d58567a0113b88846428a6bd7474877e987929d113d2092969befdcf4724ae83d0aa2c7275dd052ad3b4cb170e1c614c4303807ebf4c1e48ad8a4c55437b9ac107c214", + "399191c4cbdedc947e820daf7ba7f23189650b5e7613a63eadec21d6d8e272f9454e88451bf497732d0ec109b5dd86d9e447fd9439966ea624f5438cf03f00b709c6331603370d1252df19074678998f50f66652a3aa534bb4933aa58f2e4f29d018a400562c5fc6e4e72d553b58bf4443ed21a2afc8111839b8db5ec5603ffbe98b8fdd733a7fe0d4d98180e951f242f093f7aa35a4c1fc5a92a4b4f4e5e441f00053b831773b80203f3b866c42e609b58938" + }, + { /* i=5862 cDividendBits=3579 cDivisorBits=2249 */ + "077132de2172455e537ebde0db7398e72304983a9570cc10a51ef82df509c0fe9e5f603ba16407e892ba7898f73d8aa82d2284ac2af900486f3f80a1cc54137bf8f63413325d3439e7a6c97346c4a22a81c6ebf5a5ac3ac76878aa086137f728ceee317af0627253e5bb6042582b4ecf7ebf795414ee0dbcb9d20ee87ce0a313c33e5bceee7d9c36a8a3275fd7f0b17bb3d12e3ff001e95ec74984492e3e7b3aa989b99e4cd318c9e4556e01f2f1fc1734c63a12b52e7dd094b33c9980061f1d266bed0f98fccb1a15f71698f1eb4bb742e02aea3321c7a4edb368470f761e089725c49b6e08e9d45b5ff0f451e981934d949fe0a3acc3fe1b4995ba99f33e371c770a534763b2000e8404ef26d1918e0208f95a6ad749b68b7ba924ff50bab6eae073a5d4a6f0b13a27a80b8ea36abba2085feb2b9307eb7370def57251d03c2a18a2713a8d110922593076cad7f91f214b9718fe6c6f53180ec83a0748cd760bbe6407edb54c12ac17be436e879bc5177c6285b39f0183503b6f0f7758b820ec81eab5402cf6fc8a9bec957e12936bc99db2205c4a6c51e6580b935d01db6bf73b6c9fbd981e1dfed2fcb8cc8b3acc1bb92529967f84e39efe3c63021ac1e4", + "fc65a2e405b98e728c63ace05cafef5328ee2429f2c2903e249a4e346a6a15e03b8d1ce0b584d5ca5a36d53ac36cf938b27f60b80985f509425a1806d8023c1ce6ce78028299f5167d6b0204c7bfe0c58d3c3a451e8da21c22c06c36715ec2b1ecc14f30cd8fba44009d2fefc6df5bd74ba520fc9eddaf1674903054376ec2195d2f7afdb23a86010b4d480a7923c974da566fe28092d93168511bb3357474683a7eec0561d50c3f83eb1b5d466f828e472d25bd095b39ef48d55211b30e63e3d548a4676097f0eba2a3d68197a2a9935cb8172e6d0fe3928dea91ad8407307ddd145f7c31ffa81b964507cce4126a565e5f771fd9844ce4a5e623cfff177949cd33a413d157d37018e3bdc9e591aac217bb9f1f0093477101", + "078c6541a3d3005c7d5a1dbc576624fde468884c77dcd5ab835532adf7319fa0c77a43f501f77b3665c7d2348db22696ed0f7909ac343d4a0504af8d01c2a5a75815a0b2ca010b9497f35ba12df3274d016b14f9abd7de49cee1a431c442c182cdc856bdd02b1e86c9dffbeb50d277a707eae7a94399c709eb03e56dd44f3b04b117c87beea79039f6a1da62ecd0ec930031fba698536ee03b12d9ee9c2bc914e41f2a7ca03b09", + "dfb5de7531c9cb2db9a3a1f7773059bea2ff9a6e50069baad2081811fd8e5ced325ddc8ab0139ad6241a3beb388a5eed8ffd9418c2003feb2360e21ff59cf3d3f66f152f008056a933aa1e9289e514716cb07e4f268c251d0de359d4c3151fc5e9c4d1acd2c145a5d640779576531c3b18549c69a57b76b9b79ee3ec8584c401df4a6717ee7551aad3b2f363e6f0f6288d515da87ca129be8f170a16129e68d40660b482c64a92e63737358f93cefebb5aca48b28d5f310c2bffecfd2d8ed55590b64639e311f674d113209fe150d5991b7639b1e07f4d0440255a04965e50bf8149edbf4475ecf21bc5f6e826e3c25ea46116dab7a216d75f8f605b23ac16437503ab24364f6cfcec6f04ac662c7d162d2942b2df40ec8ddb" + }, + { /* i=5863 cDividendBits=1504 cDivisorBits=727 */ + "1ecffd07a486c4def06b71eb885d33131442482569ab48995624fd5e7ec60829e24c9dc90126e7665f1380a1e514d296fae320be1ea74c638299036cfe69ca6fd7b83c1a46eb475cce6535790b56f0782769d214d1f220f556948bed81c09050f03a640346a6a7a4e77d88f66a5752cc29a0cd7f0a8e6ee47237afe25d2a9ea16ede6ee0d2262840c505506ad1c1c43d05cd1603748214c7cf7a252fcb64d56989ef2ab1e15911255abe0107279d0b77efc1716deca362710a7f1827", + "3c246346dd0f9dfb86aa497380a87f76f77437367cfd3a42b8d5e744b0edc1404d85d13d82f0b6899067f69e04c76da2dbc7cf006c0b25732b0d242870804f7d656c260f96022d67368d3a48dcba447d0710ee7f5eb00e8c0a0b62", + "8327e0419fa2f92f68bb93edd4130732760497f7c3d775db38acd1453725d056c01d48f6090d38e868331adfe1037492d719afe184a680931ff2e7b154bc8b2aa4c55f32ed04ff2d26279a067294c13c142b256519a1a01875f10397965a83d6b3", + "0d24ffcd2885508bf00e8f5e7a5a72b1091a1c28f75faaaf382bcbde7773e01d282438b855fe86bc84bef07d4662c01373fd3eae048ac882f66c355dcf056394f72543af48b4d8aebf057f222869fd2a998b1922d574a472cf36a1" + }, + { /* i=5864 cDividendBits=1506 cDivisorBits=1390 */ + "03c948e99afdba900fe8ee28c6bdb9925bf4b665bb68316224962212029d8153b6b7c5a658130bee71e57d320c08c5ba3fb75fe94c6460fe0f975300dd352715d007443e04082f8ac30750af61511e37c9f1d519c5d474f2894c0e3dfb8834fb64e5367e047439ca9e355de43a9a289c2cd7aa8108a6eb1c16111d15ff1949e2eb6621720911aac2b7010347d8908e02527674649adc57afc37626f8f8ab5100fe613822a79709760fe2a8b8c7fbaabd5fc1d4319eea2cda75d5f0a6f4", + "260eec45cdce8f301d987e57c1e0763a322aa30b67950f42cdc786afd0fc023d369fa6c78385b71426ea983cacf0bbda249b1e30ae6a30ba61da4b1ac6c4142a642ff8d2e95aa8de3c68fe5feaf8cc0f674ecb64ca196d504d7dd6587085dd84269d6029b431188eba8e52181af0b75b0d612664863d17461edf75c74e7172f94ffce148fcd3e5dc15ce5485d6428bfc69e0fb6a28d6690ec8179d024e278a0e27cac794d124327d35bc4c033233", + "1977eac535c43f1ef149112d056a33", + "1844863984600abb781c0fdf787a22d4f036562debcf5057c590b6593a66579a1c261cf42c44b2ebe4ffdd3f13dc82c2ac75c13d36c0cd0049ace9d813cf5434028ce042b7ed64a08165b4cc3728dcb1893beb85b1560cb8ed6b4707159f54f4e345edc4888fcf161c0eac10c3a10e4201800ec62312d7b895ef9bd40be609d175cdfa50c201105adb7df831c7d21fe7cbebdac55dab100b7356f050bee3322533406d69f2fdab6742336c8588cb" + }, + { /* i=5865 cDividendBits=2626 cDivisorBits=416 */ + "01eb4050411a6be7a1eb6469ed93d46c08a303ad23efcbd5eb75f71487db0e472eec1fa650283a87e3fff6db8c70675f0be4313cb8dbb3bfa700a6c43300d900d69463475a4e45eea1a1e3b8a8960c4a6b163bbd68acad4d2c3cf368c16a67aaa15440821caac6129794e8f6d2269bd0215e468dd65a50fbdc72a86eaea2bc5e9d45d8f231e0965fcffdd09ce6d021641a442a738509721e4c14153e35d54d344f9992adbd84e094f4c0457d9f507d4026fd96000b8c2607bb1b4093983c103648eded406f0ea48e7125af3b22e024c15147407f6f7fc8f1c66730ad6514dddc5dab1255f505cb17866af7db025f79af841644f75185df34213221c52cfbdbcbe0183f7a300978b8a5c6fa180b1bb8cb9fae8f7468909c6b926c8d648ba4745251324ffa5564cc3ecca697cb2b388f1f27929c306d6ff6314165872609136077cef21bcd7326553594", + "489f8d1cfc24c02576e7ce22839588b323c73a985d39a30423f74483c50c3ea4dee6358807ce6faf51d288a57dffee1c87316f6b", + "06c3ae64f6525499641e5c99b15c44911bca040fc371d390dbf3cbc9462e76547b10c137511ead456f61d27a0ce14bddc0971d075bf087ef2adef07bf7fbd554421c59e769f23ed09c5c3964b795060df2b2346f5141ccac98cefe7cbbb773f16841508585ce5e13b1063af90b16fac8f5d34b5a2b8d5b0b2e747da433bd54ee44a4746ce5a5aaab2d505963bcd3012f696c9bd30df430d8dd0eeee0954957d4f8c2e8d50f7836ce754285d1b7135fcd21d75674ff00852e647b62aa523e017012665d8864d238d390bd0b1e302b7567fc8e2556ffe9268b37077bf4c7d77f6f51c88da1556df8d84ce3742422d6363c50f69768498e945fbf47606a22038b6c5b5858e5309839a4b3096a875ba117412fa405ccf0", + "4032887bafb2c148e08e506c1f6921b36d71f1aa1b9ce2410fc86e05ce1cf5d984ac96b75bd20710707ed79a4648e7fc4a1c7d44" + }, + { /* i=5866 cDividendBits=3273 cDivisorBits=2452 */ + "de98e40ed3eb1b0f9e90d15d3c189940c4f46849924f29dd77bfc155e02c387000bc06dd306ba79f4de5cb97926761bd52c45c8c6cfc878ee39741c2f6b7952c9988aaa9c4238c2ea3a3413475abb9fb029ead24826b39c438ce8bbd4a8fac1ff837e4c3de5e3c8c14fc7b8d284c5c6d6c99a7fa6ab356fc1aeec238144f4419d7ac62dff486edf725059514e1b7505adbf378d93bdf127f3dba2056e5a6da4ea0d04d5be9cf48418ce867ada3b17be32e9c919697134d972d26b1d8a081e479d5ee64634f6da93b1a5c2d983bfb2493d622ad854384fc707814e86bfefcaf0e6fa695260e5f4e6f6308785b5189b1db7763f17a381a0b575f67446f675e2097a60272aa7933c1f7cdd5515703ec26f9b671d648a9ceae5ee7598c718d46ec28995e7da0b66425b483f3a9d3c4b92ac239e5499b2efb8183d82624fa5cdc42a5aa28a2c8ae63b08373c84d78e100584e6860d4febb58df1ea3434a82e3659ad323e82ef3b21b012e01f6b84e2b1f152bf54b611eebde574c23cc35c144eb59a8677d86efc6dbe7be5747f82509c8947bcba85e906584709aa3", + "0eea252e520ab71f05b93bcb628ae8a674ea1b0b2a6ec70b0b3064b86ff10ccb651276e984937ba05ee0b799a18f0d9040a7b72a1340cdafc223505b68bb7735bd630e8d2647dd12f14c4ab2406876c07b0a56a4b42f0a48369e71056fd3383ffc34843a70ec92dbbe1a058f8f71acf2512cd45f56f6761d8cda537900e44faa7769ae91bbd1cdf0a516a137248d6f88cac02e487b1f3502a2ac02f337021c7a13de52d58ae2589ad98a5b298499832a204aa76a3f0dba4b61b11fcdc22bc107edcd0ea367f680d949ecd12b02300272d3bac84f4125409c30732a5a7256a2fccafcc3b15a590c85f15c55c36cd0cdae4d96ac3fcd56aa01c9d45544e2e1102f631b6ecda5ef5b1d07f19817382f02592ab46feb20af5bd6dc8c6114a72542eaaf0eab39a43cb01a07e654c8ba4297c81b1a46", + "0eecbce4413585c585490f357359d2198133fb1ec666af3e773058f375d4f729877848bc54edc3b510c9a8b6c8b65e92b3c62985219924483dc16f84c6c6025f305bf8d31a431a3647da42e175d264c935dc37e9f0a6b2cee91acd297a618f813f6231f2fe4d53", + "085c9e7f97dec0ee891d2becd04b931ecdcf98f108a5ea882274a87194baea0607519977343068788ebf60d518ad31d97a25c8ef666bd78a175a129711fa565ac087dc56b0a1c243c7ccc7494ba1dbf514836103cf35e8202d8cfd387d40cd763bc0cf24c137c46862bcfb941f09b17f2dc0d78b1942f2b6c7856f417e2145ed4cdcd509f16efd74244f3483ffaef6fee4a94f3d2c8c7338146224a9b4471fc8542df8eb3bbe23892d7cb19f6927289ba896a21aa122128332b915bb0d0d76a505ed2ec80b9559255eec92c71c9570ac65165ffde1884f479c6bd38dc89a99b43b8d0756062f3a39be6b54d47cbe924be64687b41970843c6b2421423fcf00e721c1d234c40ed0d97b79662e05b87752c8fe6592fe26af03c4615ccc55602ac968024a1db1d84aea151e8295b854df3f4c07f1" + }, + { /* i=5867 cDividendBits=708 cDivisorBits=136 */ + "0425b090e94da95e078a9bf814f787443085e740aa0c8128c4ac2c2c6ab8511cc9171e7f4ce6298e1637b9814a8e29aaa76d78e759284efcc66536600030713d4ba8639b41d865febc57374c568bc08979c403781a59ce76e9", + "73eec7b84e3a07a6cf94c2f765aee634f2", + "092866187b33ec65ae96d155f239ed35f18eb5cfde724188c44d9fe9c8e6ceac503384e22ed8642add68f1f4768a9dd2452b6a2674555ec50dca525f886c0e062119fcf7bb9d29c1", + "20587a17e054cadb9da96bf215615bca77" + }, + { /* i=5868 cDividendBits=850 cDivisorBits=330 */ + "03f44f6b918647cac5c30c824ef10d6974adf4a1623dae88ac72f4c4dc2470d45e27972ae01ec7758555e29f7d24e228a6947b194e4a91b61cc024851864022a900d0e08b47aa789a55295f3a482713ab8283496c78b17cd6fdf2b788302a6c638defa1d3e5719830b056b", + "011cd07276742c1c22d6a8bbeb93308e29c1ce81a4f229810750a6b9d91a01c017caadd6c7e1deeb319a", + "038de571dbc86a3c473a7e61b3782a5a2743f423c18559e7d6b5ba044be34dfde80cd56a103f759300c017854a3f36c91146c53155e236626016929ee198202fa149", + "b8d8c66092bb121f825f4806aea95987a2c32bdfc8553a063f424e9ec0c408edb805ab29adac820681" + }, + { /* i=5869 cDividendBits=3762 cDivisorBits=2219 */ + "037a61a2e6a02b855b9c75d04e2d3649569039fc422c2f4383157d5c96fb8feab53367b42a81677c1e9da21e2112e4518472fac5b19aa75a3db5e73608c23d780ae1940ebc2a36360d967d02c41a64ac583bd2da840a6971933a0f74c285aa3059c8231463e69d484fab0b720d61371738f69f0c65d1c4a1d042927dedd5d15ac9b4b5c79950b1bf39727a68716256a1a06d74815a0009ea1310f3f1c1332e8aec44ccfbeb561fad79205b75af28a70135a3d77c8d6744a2294331daf2f151b9a3c383eb6450d1625dbfbcb80132fb06d91f4ba1e01129cdac616416d3e70d6b73912d93708fb41ea29573e02597b052f3f645be77f7db9ae7467db478b696ab3ade7b93b8b2a5852b09bef08ead1a869cbd6206729dd0d2dbfa2016e8f202743dafaab166f22a992a67c8249392372c504f36a7087142e8625f731b3ad885bce14d19c8f51d8ec16d4e11ae80b664cda9a4e5db8439135ecc043043323ec6a3755b1c0032b73e5bfd7d1111afe2fda6efc58f08ef9857d76b1c97a84264f1184cf63b7b784762dd373d35e71c41cd36899fcaf3509937bdf3d33db837641dbd9cc1af368e7d447fe9194a5662c63cfba5292587e17fa00128b844e0249a7e66653f982e9ce44a96888dfba8661e6feba2ae61dabe33c4", + "072ca919cf7c1b0f0eb74db77931b8a652f29389d6672ce4cf9b609cbf066627982e9fbd3a3279f5956a2c21247c780ae0210b35299d93bdca2f25be13e1a040c6dbe27f293bb453ada41746033f056b078b0bdcda62d510a67b5d547a5e1990e7d494e05ca5bff7d99593334e539ddf9f6427a1feaca80224ff0ac0d7fa86888cc6e1226abdbb5c7fb3bb66dd3ef2cd7733031f4a0a89b9e7eaadf201c756cc4388535884645d1f2b096d65648e8624088f6dcba05fffa6b6ff3326053cc67bb1b7f2c7a2cfbca99b5c43b9e36d3a44e7b95ec6aa8d43248b530301403029fe46f8c7a50e04b18ec1ee6a43d077f5193d516b2a45de08c14faa7fc9d7077c42d4b4c3736246166c607db127310c7eb27cbb375c044d", + "7c1ab945982c1dbba1fe0fdfbda9530441291c05d82a48afbab966c3dcddc9f156c20445d78f59d5364e41c2b1f925784e3f1a6ed48fd53bc9552c90a8809d28b43c1eea91034237e11caf5abda1ea1efe8dfc6a40eec5fc22d4321aaab6456fbb0e840673eef757ed654ea0009182789a63c705f065be8613b752427e67c7d94112939e8ea93b2b2c00f3b49d77e74af3e7368be43b73828834c08c1e61fa1cc1cb48bcdd8cf93c9446e564dd937d6dcc8ea54e82f1f0d5316e87dff7dd795be3", + "767ca2a76c69ee44651801851c8eef49582b415c8f2405c02b983603b23c7df3d6d11ac1844dd45febdfc62b3adae72f9610dc890d10e99b964986a3942921e87e0cc8ed08c05160ccecd658d6e758b423eb5ba920bee0845d8f629384e53a9483d9dd9e8da12a6e777a3e1c445390032e4de5c301507097a85f077cf7a340ea1e9578e1b16f66fce3c11791982e1b2e2ba2532b7efd75b308726c650d1e01958622fe2d1e7f3915367527a819303f8e783c070b24a808d03ddcd15cc474ec8e30994d5db92ed1e71f64a02f2ac2c4f82fa2ca79bf94940fb2538dc49d245a9c168a140526b9656ee778f6834f3f80d8ca033ad2a21957995836fb55062479f48222c9ebc331fb383d0d2c2a4fa19db4328d3a047d" + }, + { /* i=5870 cDividendBits=2175 cDivisorBits=1606 */ + "22f05085b4c87cb1b994816e44ad34265c7b022cdf25ef9e6c8423b6a79ed1467e8043542d638205198e8329f659e08169af9119df02dbfe7258cae4c7345b7ab43ede1be8d8aa693f73b70c5fab91c861342e2c7bbe0d86cf16ceeb3628a5ea3bb5d8e8430ff7e41881bfbe5ab6bfce835e2ceb1ddb1ad78e699fdcecb31eab4d13533b2392e6adc566db764965f2af1ac1fee96adf669a05f2888aa05f69434274a4de93abf67209f32e37743a0f812d9bf1f0e9e89453f869243fc98476073a857172d23fa7d438508b5e1421f163f39fe33fa34595f7b2ad138bb7caf55d5673dcb49ce4389ab5ea3c80fe562a0e6756533e9d79dee1b93be0fd172a3db72bfb0a451f3f94975bb8eb6a3d13171e", + "03b92844600aec9cf9276fee6ce01df3866d6dd9ffecfa41a0a38b7967a77bed187f612098cb4fec68fa3ff549fd5dc5ffd87fb1f20adf3c07b2066abfb5ecc9358a795e56be95a12e99512cec114e4d3bcd15750aaf1539d1c571428a42cc40fb796dce481bec36fdd20e36782329b16a8bf8c9e94f104cd5f10fd06d31cb171e490c7473590a65196fd316f267249d4572a94c73308885b71af1edbad1f01e49dd97f571ca9d44dae7f658ec64d7ea9757c76e6745f0958248d7c64f757ee19ef52da3792a9d2f2a", + "09624605244c78e7dc76067ad8646958f51b84c07b279f49e5493f6669d2809d6f860e4939108a57bd6d1c5639ed71baf1163e611682118ef8d673379f1908b1f2c8179ffbcb185c", + "0130e450704acc003d47ee6eb9188fe3a83c7eb915025b3b3fac6855ad86ab5ecc3dc355e1d4678f36f6e4e334da9a21fe87cd1048350ec758ebc5ec41622bb239cfdf158041c2485e14c7167756b6d217ddd15c173347c05023b376efdb1d69efbec5b11a016e6fec0d9daa7a953b469449182e638631e55568227c00e0d538d2437c39cfc4b514573227715fd4b8515724accb3281d3a134d91e7cecd1d7deddd77291cdbc9dbe74653cbd506c1772bdbd29e4af9ff04818a7930c2789d435806674d6e79bdc3406" + }, + { /* i=5871 cDividendBits=973 cDivisorBits=939 */ + "07d316628e2460b11acba1bb269a336fc722d6d54ed79af3f2bb28c5ff5528dafb4daf23d5fb09ca3aae6b3fca8b23974f8c2d69a39284e0d90e5f2cfb45eef775074bac8913882f7ff4694ba2bbd54b372ad8db0f6634dba9be7744826eeea1958f9e2bf00ab40ea44c3f1505f0816ea8847dbd347c966dcfea", + "06af260a791ca6240096c9c457783d6b53b99faa2af92075a8faf606a82565cf753e4d90afd4fcf258cee5930938e895c91a81e95a1144d48aa9315a13c69594fcf51c7656ff74d44ddf53df83892bd22eb1d5124584c09ba812b9b4ecc1a94430d17e37b518d21e26dc01277098d8baee464c7f03bb", + "012bad16ae", + "054b50c2000719a71eeda47a21d07cc3ccc47254f8bcad558aba0eb26000a85c62d34bf86cae00f1c60dc3c007c65bad5580217863d201d1a3105822da1198c91672dc307fdc4b6bc70e8430ec97bdf2b5acc8cb0a77b978d9f4f9bdfd4909a364a4c172359b9f39dc24b8863361fd5b2af0bf6834d0" + }, + { /* i=5872 cDividendBits=1341 cDivisorBits=219 */ + "08b5ef10039e722bf2935e0c5cb1b9a884d028559437eabb6a910f5e7f46d4479d10df7cb23f1553568bc8396de431ae881ce7316c70fbaadc7ddabef7b99a8afbb8145cac9aa2a5fc00137a839cfe3ca7989b88417d877dd4ae589537877c3ef021ffa82a65eeab52ae1751bbe71e9163c1dbbd39c3f33958739326d3cd5a0ff1e4ddbde1802adb5c14a645b23d71125c7fd7decac83e67693996a3c14a3f11285ba30281fc6082", + "02c13495b9d0b58e3c1e779fe43c9a9c893c4919b70dff05d748d147", + "03297fbd690663d9e65a58773d127558d161b3635465c41c349511f8cc511cfbe22a85234e54f2aa4946ca48f8cd70c2e9021ed406dcd86bfb8c7ecd62f6634002b2f4683dfbaec9d1d397b62abe6198cb08082d8e155787f74c92f963b906f0e9c25bc1c3689c97ec92b38fb3366413396b13c875e6db90a59b11c4e7ea6f713e761d29badcb545e12209aa21", + "022e48bf59b4620ac635ca0a20200adf8b1d85c0b3cc92899d21405b" + }, + { /* i=5873 cDividendBits=4083 cDivisorBits=3884 */ + "06b28af0d79f37d1307146bd8744454a53a573450b4baa098ee5c780b2a6a9ecbd3ed97f83495fa5ed45dc254bf5c186302ff891f59916f8783f9bda2768316a543e3f1468fa85e2f7f81a6d8eb451e0731ada92f35430a3d7666e3cd6dc4725c75fec430b16500098ed00a4a9aa83f0f13903adb98746ab8b28e9b1fec795f8d232153b8a190b9dcc454cedf6dba315e423b4e7649018ad119f965d041d322a4332c921a6fa060cce2a056f8cfb9e0d9a2c9736db75a61c1f6e079566a30b47c70f66be0e8ab6bb1fb0bbada229f91ff2291a1928464cbb6adf9426169cb28407e94149046f1e88d913898adfa5777cdf6550496d2ce6e950382b93cf79a60d6dba2f3cda253738c4e1ee1d9d58883dcb3bd59c63ffd17e0d4f306493878a4d5e366974fdfe4c16237a92b65593aea6d349937f32820fff6717a6b76f6cf9bfa4416dcf6add363ad7e968e55536b7396bbe1dcb1c2eed08721d0a932c9484f3d2b631e2899fb4d57217176724cb00d4a38268c2d7dd36242a05a0afe8dd579ff360b9ea60b579febf2d2dc9612814f6f672347d98747c885ad9c7c024694603f170fb05d23076644970fd2e1f712647c267d5afa71d1f30b8031d1cb7d50e20f936ba97a7a7960ea9d74a4b737690114ed60f17585a1b5fc5de4818adccfabe0c5804719e861eed6d976e32059d5eef53fd0b2421de813a8aaac84a0ef9eb", + "0bfbd795845327107ccf7e9afaed0102b013247b85f2ef9b6c45a25ab1c04466ca9d11f39ec975842083b71103a77432446da33e2fc2197e4d66ce26730077983969529931923c7065ab8ab55c065b71673b386f255fd362345b19983bab300e2cf4b56df7041e43f8865dbd40ab4e4b35d6210e68908dedbdef6261d41c943878bec3870c11a45ff0c9134fad993a6c11a62cb93c29356a25bffa1ad1bec4e830ab1a6eb38abe5464150a736847f498ed307ac179f70b46a03f6c747af1ff0f4b2069b7d1c8348aa5dfbf162ba996ffb12adea9e1b442799541a3746304b411b416dd25994d62191a46d7ed4f31819f5b90826e6f85e3f6bdb0b1a28405086a63a2d0b223e9b8423df1be28bd54d9fd7099605b19338b96a4637ff2c076086623a0c4dd977b67b3c5763e0231db3eb4ae2d2fc1bddcc13629f32364c7b6ae344be4380f0373851ec3430f5489698f74177e44babb39b334f5b590938cfc310ff5c950388889d3a78977b0f70b3b4e1e601063394425cd6cb06027544e795b31407dca4055f191553e94b1c2432c1218abf4b24593a8aa1294a99743c645b42d8cf8aee3c2e03b4febc2c43960861eab0920ff7ea803e15b86ba80f0c697a9f45ccac58555aa1ba9efd003768a7785149d1532ec522b559b787b0a11c97a16f2ca1342bb3868", + "8f127c192e7a8f1006fe20aebabf3da239fae7ef88d6ae93e1", + "0a3470c5b48ac2e2dc5e316c3a5ce2515ac936bba57cbf97cc33781b4a3a14148fc229140e15d110001320aaedb26009d0ff4bed1de46440aedfc214dd0ded6631057bb2df23880cfa40f9bbf18ad6130bb44010067b8efd792985d618f71bf8f5d73959ccfbe8a83cb783b6a3522716594b6d2eb3cb17ab81f185de0feb918a3fe8c5af20bd85cd9ba9bd579a8d547ef5cb859eff51f39421548e1b2acb574d4fde4d5af144f766956d00b739279085aa617d8685e7d3a19ceb0f9b792cdcd7f111a8c101865a373d585179deff3e628db8efec687c86a0f29762d7f8706d30263d43d11f9e98afb23e306d12f34872336edc423f411110c51ca1cad1d59f45c6d845836b7f217cd830ed1a35a3ded4b3ca004bf9bec963666161aa7adec1cba1c073162b67442d49017769841dbc0a611ffd9c8114a0ea97989b5d641a48dda5c29c11f6bc8afac805febe21b875cc3c53ba1ab21a53d8c61325ccb834571501fbe9db3bc5b272cac74d4718cc541879a8c6fb9a9ed2908b285a0e2c54d652803c716fe40edabeeabe2457531a7fefbb3faa3c0cafd82a475adbf225fd943fb45abd6221e51ef63cd0021bae7499123b679e00a2ad80c79f092cbbc33f1abdef6496faaaf7c7c28fb9b1d749fb232ecc1c2c2477b072a77921b34b605e7f4714e1db6eae83" + }, + { /* i=5874 cDividendBits=3630 cDivisorBits=1711 */ + "20a02c24487f6f7f1052cbbfffc94de3c0ea4b9866c2ebb5d43de6a39f94e35f37135f42a6824c6a6a9112c0e2498d5c5cd00b304bbefc2c5b8738be373f1531570ce7f7ed677a1dc857d3941940498ec44a1ef6682579bc43255aa595f6d86706726833eaf4f0d2f5997ea7484f22895cb3f27d196a1670bb616f0aaac591762892beeb07419d47de57cc4405a61332e7ea2732f132d1190e76f8815fd3a4cb5f0bb33cd7d7d41af71b0c4e137ed1d129f776ec5538788cc5f421a3c8dc9c1ee33ea5cb12524ff902b45d03c37a6126520057239704e8cea2b40b83e6b1c7668a32b8e10da8b724b75466582d42e1c1a618d5f35fbd95ca204edc524d36a02a1e78837fc4c7f6cd441e931c5759a44e80b17753da57aa2053ba6ebddb3ae3807997bbd8d2465629ee66e5326eb2713993442a101571183223cf60a28388ea38d8539987e8f74f26eba14a341121e829edc44ae51f89f3379c6f1db2b5523bf6130b5ba71af4133e6660dc9aaa0b6b2259bbd4631fbee947091278267ce2792221ee3cddc621f16d1e32d1308c76afec920631098adaf90fe69f8997978284a58a7dccff2386bc2c4dba82f788ca14505eb96857db1723311bf00fbf67cba856ac8c7a5e81bb", + "5bdce2118796d2923a3542ab9eee429c68eb14507272229adce6608b43806bca05cd7d93e08f15a007133890b702c9297847426b31757087d921ed120df1b3b637f23e6d5ce6dd4f330c4b6cd5c9d60f44b7fe9735516cf621787e4a4bd2401a8d78f8a323854a98b4709d709bc852ed31990d778885bf4bb885443257c7bc5af25bfebc4f35bbf9f9a584453c2876c7c8122359850d6b724a52085fd045c1cdc0dfd171b8d51de465dc73d6934deb006bd71098aa19e636d2530c82bea4cf458800ab90b04c1ab42b3ec1c452dd82adc4b2060c8a4e", + "5aeb88465f6c4333799c8efde046b6ef8a4daf08c0f35ef5a4a9e0c5bc9a76566346834d4df0689580c302257e43c222dc9fe386aa7cc76f27ef23a827315a12e61b0fa3f6c096134fd1839de3dd200fef8d40008ea41023f69bf1dd681369ad17a56a2b85b18783893feb55d6b7ffc8451cee5f3a3ef37b2b321f030d18de94d314cb7ada922110450f4f5d3df60a9f3eacc1d00295acc68418da0bcfc0635dfe20ceca5b91b534340a2c529d1122a343d83415cb456b744ec03839112731deffc44434b390910dc0ce3e79308130ff959bbfbf286497aa22d059cc62f9cfb3eb2230a3356ff0a16fff02ee5289b3b0", + "1933c43dd056b53716a12289f9a53305f0b01701870dd5dbf300fa61f2ed311de8cf42ffc807d7d3d957aa1a707f51c30afca4ea61881624d8a11a1349423cb6b3f2f8f505275f23fe6e0e705436537265ede63eb378c23f32b4394d42dcb107f01be6ba43d857d9165b924c2a101edc33a55e318adf7cceeb106d544e528dd1d9bfcfc038adb4bc6a972eafb83e907769b215cb3fb7e5723864477bda1befafb9a75a192010b8fa8055b3ea625c46f3a70b7b21a383e2a0ba348928dbaa7d41abf841827af1e28f2100a2072211b8b286668d4ce21b" + }, + { /* i=5875 cDividendBits=2258 cDivisorBits=1209 */ + "01a4209299990a3abc3ac413721adc58c4925a7063dc1ccac4ee5241b53578d16a1a0ccdd258bc542d6c5c40b6a32886b45b2bc93e04a7a6426b14d5512112dba646f8381c88e35e96443c4ff4a7ff8ebcc94cec1a1e0c59a27d9c61a16a5625e28e9c274b72257e9cb250e50a8f2e396775a7949fd1612f952f088961843a67e576fb60e406f2f2425cb5f6e18bd19f01837e9314935a695e8f5c6503fbcbb03dc426d1b5e06093dfbd6872cfaab95efc25f8f8a1a6fa5811f703bc626b79661a8ee07a6546064132c04b25554372520e584641554b83b8aea9e9b7d5d1ff2e65256ceb2de6cfc2ce7048ab19de7bf08b1d29f8451294be9d6346459880d5945926bb1d23dd73166db78050cf3a8f16ffac58ad906b6badefd382", + "9682ea31ab4e1955d04914c641d5227b71f1689f2834a97842616839002863f7856130e88a2c7452697effff182d5f0170b406b3fee2576cdefe465260bd0978b6468aadbecaf3dfd98651ad2deb279452c7e0678ddd9371acc56b20960f5c31ead3483cb3f90ed29f2ccb5e4b8afe885f2348ea112a84d88b2c3f3d6041cee5c69719dcf23e639845ae86ecc28e6f54c01faa8673cd13", + "02ca94baa43ab6fffe74824e867faf8364be993c7a7e48108f1cda6dd9d919433d10b25099422442a8ca63aaa4ee4e2a0d3fad7a03023ec694d8d98f74e799f7d637654987c7c932306e4afce2f6999540f9263f67bc7c66e5770486762333fd7d597c820cd9483172cd6269ed7a13e6c87d341df92b0b37f68aa956e22b525df2c3af54", + "89ef6d90f66063316ed3cb6cff15d3980895172d5a07ad60c715b7c934d45252309eb94fd518226db50d23e38b3073c379aab8c1f3ee839dbbdfe9a2a66f529663303d525568d37f92d46ffd95c0fe1e0c221c99c25a66000684715aa3b5edc9aac6ccf4382165549f4bbaab88581ab99f94cf04b9bb292c2ecca882922cb2ce3ddf3b24a41190aac7602a0f1248b60eeffd963b478c46" + }, + { /* i=5876 cDividendBits=3936 cDivisorBits=2443 */ + "96f61abc45d12bff13985abf131afd17202dd7197082bcf4f40c81dd894c0030e2f9a033e66463de8ccf557c0cdfd73fe088b50a5a397a70c827034fbcd958626cfecb9839f387844c8077413ef7188d04fb1b574369b35c0aaa746b571353173c678c4c2a7464c24447d678680c6973e83b1e8c9ab38ac4580b84dc09290065fdfbebd6aaab395c7450b7defff4f4f8189f3e41d21dc97bd775ea474fc9ec48c1a3efe63cd7cce8b10405c292430f4d4307fa76be47ecae26c2f53784b70176751101b21f86eaa3babd64e83c7c47c3d5d757d38d9b08016f11b1287779d2ea5f95ea47bb2b3e877548445ed4229dcad0cfaeae6547306a8650834bb24e9162bc22358474ef0d863dfc51fb061b8138a59a80985a85578baf4b6d8c3283f69f51421eba8b97c36a77b07ee7fdc9220aa17dbf901a1355ba028b660b73fe73aca69d83228e28d98daa1fa3dd18d253104dd0f79030d2ed7fa11c8e17e24ffe7a9fb92b8782876c587cdd9cae198a0a8166dbe9c82d20b079a2deffb81ccba6511ae6684b186b82ce281d59de5880ddf679566dfa98dded0b1bc0d87725af3625e4ac3faa177d307a3864f481ff8e2a216c73be4834ad616576cf2a1744cc0996714baf12fddc3c7b63feaab0be436a5679e468e1f8bce5756ffabaa86e044f5664f3da407a1261aff3a22f4c", + "07aebbe311f281b797ed7cc3a3bfd80446c2ab95dc8f686272d3a8c6918aed8accea0f1ff929a207fd0529339bea0e290f94610b5939edc0774d25ba804115f75a695603b69dc8f42625dc215480830a44360c411676ac2d63d51c91ad8a50aab8d2168669d08cff43837b2c4470f09b59baf1d0251994f8a2526f7aa44193146d944b0884aa9bd30e8967cc32629e9875402cfc093c1ec835c1b61fa001ad2ac90a9e536cf458ccd29316bc1f84316090d8e014c6974df2cdce10a6b2c50724c237d3ff7ce5e723456dcfb9ed891ea040a15e80aeb0b9a85670752c4eb61eeca5e75511506d9650aa113725dba824465fdfa818c5a3ef59c3e2cb3abd6c2c1b335d3a560f75d6c45907abcfcec9a25d392478bf61e5dd6297941c5dca02d3a19e63ec8f183898cbcfa21bc0b03519699265", + "13a65f2837c88e84266967a0e8bc52f5ae9dfc88c68ae5358995841cab2944a473b05877bf0ba5b148c07a3189e06cd91948e70fe8236c97aa2598abb4f5ede70770873ceb3604f48c270aa578fc09d6b9a86aed9cfd35911fc475da984a5be9664dc329313ead440915526383629cc0e76818f9aba099a24fa2cd6607118a30dd8905fec4102b9f372029eba449f58fee37d636d2f51af4733779f0f6e57ae80895fc9cc310b6100e8907e4efa3afc1d1a9efc30680956828a27b", + "046222a5ff070fa65cdf634506a0e5ea66ff63bd91acb028ee1b29d5ea5ee3284e57143846a670791a9fe3ed7028c49d60f14cd21f397dd8e258e3a8165766afce77f58aa9d79d4ee49a418ffb0a66208594cd5fb04bb42d0c6ccf723785b5742ff6f27ac01430712397940bcbe60a9da02240862b8b4cc2b5ac3feb0419df8bd24d6850ae8624f40040b99c0a55f3650019b8f0e388b884d97a6f8ad115e8e11932327eb761ccc8a0a92376ea20b95fc27c1c70f120b7ed9a64ff586bca4feb8d3a0f93d0fd8e903d91daf9cdb5ebf4ca0f77bdf81d90731f4b659de4b8fff44d092ba3740644d27c2a2a3810ea537e02282570fe1caa34881ead36c599d01e4f9ce8cf4435ae0d37ca3e0e0a12c90aba314c2351d129077d36b5dbf79b55c73879093d93578d836c38295a8d57077ceec5" + }, + { /* i=5877 cDividendBits=869 cDivisorBits=534 */ + "022650cafcd0fb8d82c08ab4bb72d34533e6bc4f070f9a30c0e959de141b3f00a7e953084b63d9259ecb18e31f47e49e123c1811feadd4e33ea679688fc3bb4f9f79bf89e07c9e6cebe0dd4088ca948f43cac187cc7beaa33faa4187f572d8f24679fe46db2f8460843696cd42", + "279a6c6e528a5dc8a7b183c78bef1aeabad76cd81fe2e9b8863ab68b20fee541ffe2d14f2bc07e2c826fb35d884e46f1c5ce8a02cddb3f40f5904df391fb6f30d52cd4", + "0de54e89f0d9e407eb7e43a657475f33fcd11d4447e6073176b53190749ff0bfe62d2be59aac090bace6", + "14e65c7f74fea863de94116df89baba6a0b28ae4d0cc9bd918765c55b3a5efbe8eab5f4b40d8c23e8f9ca6069c344c4245f44ee7e3824bd294ff7dcd1987a2bbd616ca" + }, + { /* i=5878 cDividendBits=2220 cDivisorBits=1813 */ + "0c0642d448df1a4050187958b6e6549896d293340ca901556923ad5bb12b2b728bd9629c76a93488fda7a66cb0b4d686cc781eb2087bfbaccf0198624ac79857d143df00cc9c4bad4c96d861d030328a89ae718f0643cfb8381ffa9447c2287aa73faaa7bf3c8db752a91c186165046f4fa6735662549cfe6664675bcbf241a27e1c75ece4505dfe732f24a6d3827d4e2e0dcc53b65c46cc704b27ff784db459ab649b189d02894444af9c87cf64cde041a391c6aa979975eee49f1650a739256361b3d561aa84ae204c778757b7815effe7dc53cbd2a4e8dbc121e734bacdad354ccc940e5787eeddc4dcde3ac1a6c284dab24a209fbdf89f765d75c8573af3c7403c4d4dd77041e591cb679770b37aca9c7feb1378", + "17ae8889854e67be274a3ebaac9acb171bffce8fb2766b77b48f471c78b66ec6774fe52fc110a4951bc307d42349bca5aefa072186c8cec6f822aa1ddc468cc96b7d887398c1b9aef21cc9463b306a4f6cffef77a1b84b7d34d7cf4ed31ff07d52f44f6c9e5e01795db6c09f079bdd119a1913af5b8c4294af826f8724de36e2e5cf3b48f1ed3c522e8cf66610b992707888784cc9b27695a21f3aba7fe26e0d0a6eb98de5ffcf4b2d24465f257e57733dd589a6446cf24334c409838d4fca0d44550cee7c949050b9fa45823f25140a9d2b3cc73809caeb777f4c6d03ce711af62658", + "81fc0263aa67b44e2aae94371dcf94785118997c4f2bbd39057b613b37e1998f9bee103e031ae63e6ccdec46ac63d5a9931399", + "12f1aabc7b9cd44d476d9b43cd5881166f5c1114a3feb60cba054d94b751d156219c25a8636b9c63d66b029aa77b6cf5adda2ad7ef4b1f78b193e4519bebaf84c106c03248b3d8a7dc425034ac67d3cc314860ef142cda7cff8ddb3e453a4d8b8e0ec54089d2b31a5c19180babe84222aea204fc06a8a4635e98efa408cd3c1dbc9bc102f4f082e7034f64029e69111aa24edf1873f5b872f205221224865b2952894523c11db39aa5a42cccaa582ba9345a4ab3095229a2230399c8cc9ba687d3f752acfd48c2acd1590ee6ff5becc44f7eb7101dde5b6291fbad9b611a23016da0e0" + }, + { /* i=5879 cDividendBits=1881 cDivisorBits=819 */ + "afd6a7e6c855df72d6ca50a3a3f9fd1ba39d13071198b9e4017dd4b9330650755fe3626d9cb359e402973a0e561ada17582799228c6fda062e52477fabcea5f29a6efaef614ed89da26c0fd1b7629db66eba9901a116adb64f914e99c83a83cfc0d0a718d60a12198c6b821775a8153bb9fed0ac84d19e725cfb18e936363d85064cfd372ea96589a795916d6f1dccee95882f4af9016dc7549761bc5d06ef7b6957c4fce91ea650a5e26ed7582b6421eff6b5512bc34e2ed20867352cc7764fc65318d336bf628ca89cf8652cd26806084b0d7191630553ec674e9794bdc18c22dc4768a40ae79835523d", + "03c88c58fe89edfcd358748cc98e706ad6e448d83d62c48bccd0c7d04a96ab66cef95308094dc6c1ac5d6af90543a451f0f5f5f63b38fc798bc75d34f7cddd5643c46174fd8743f2caf3c18d39a792bb5c10c002ffe29f4e09336187c5e1aa3c6ef28df649138d", + "2e79f6c1820502af657dd88405931e6c76a95063937d1221a2e8aa365a132730d011095d784776430b5bde2071b7b31b72a588adf85f5108d992ef5644102c830578014c536ee8670ad59ff3eba3e1ad6b3060f3bed2008e566b7cd068ea07ad0e2d5014bdf183667473ce5fccbc64e9491f9258941f82884317c6fe82a8a44adf968f22e7", + "a36eea62de9382fd781744a9b23c3ec576628a8ee7032e74963da55598e0a7e038045fd6622991f4d16d6672ccb167b5f4dc76c03ebf43ad14ee884a418081eadda22a3441108c3ca29d1641877c55d728c82f182fe2f20f3a505336f971c11223ff1de8f402" + }, + { /* i=5880 cDividendBits=253 cDivisorBits=79 */ + "07456746c2507c6602437a6ae977bb4cdff5dba48f9cea99ff7b3c788e8bc02b", + "6e706083ae7195d5a05d", + "10dac64d7a74d742efc7ecc7a155b04115f1e67d50b9", + "5e9da3d9fda0a9a4ccf6" + }, + { /* i=5881 cDividendBits=3627 cDivisorBits=82 */ + "06a93303aa622737b28b062b0b57a7473da7c122876ce2b57989693f949d1dcd9feed9ab21facc9941229f69eb52579c493df216486b3ce71b8d0ad7833d1a0a721927479223e6c7d4ccb425235c962bfe79d6d4c9688db2c8470bcdc694760ef55290ff4ad278970b9237d0ad6e3583ead3fff97d138be6c3750074e03f83d562729ebca2b8d0a7c49d1423bbd1a84faaa8f3c5a4e57d2a3dffe9746734136f979d71af6cedb97ee6bff7879a5619680862fd24f5e77e599ed4d81c03403ea6f09f959c52c367f605da5035457f530aead3ac875fa157d839f4b549c6149f73238117d88c9f8e93a17708b61655fb6d96049a0d62de96c0343017c6dfc6e3f41dddcebf666816df766032826bd0f4faf87f64b0097d5dd8d5851f200d714b92c1ad8a142c35bbdb70d8cc69a5cf5a62e0455d51721ebc2320eb20fa87670997f9f7a87195fd6b87af5f0a02f75009bfb7ea1c0bc38c1584d6ea1e23d6f4b0d97aed8dbdf186943fe28a914f8431f329a94adda410bec848acf0267be462c7a74e054f7096444218eda15fe6ce0af68b1f712a2b61111dd84d97782c0c719072c3275789cbe70c773fbef30694da4cddf63eaed9176350a970e89aa06cb13d7119cbe576edc9", + "01f811b012c15a889ea8b9", + "036203a57b250242a9497bcbe9a943dacf69011cac1f403a006ed583c3cc6c041f84d9eb96b4320ff6eacf6d2636c289aa7a6f958012d9fb31f628e42e4e5603ad43dfece0bb9f8bf8bd323bec7d4faa9e2725a0bdd532821b75699b00ee257080cb0c1636a969bdb2af3a0f029beec97bcd3d61452996c29eba3fcf1a6a23945783648c66daf303f5c257269f64c2d6873c9e15144d156e0e8d553207b7a62230e1bc5e28f1330fc03fe625f42c3c976609f4e06977846251342f91ab2508a436ea7fb833d8bb929f61f52e8b876775ad7b9831e520f64b4db76f70a6cff57e9513f7ec5087248fdafe2fe8fe70464c59e56dc04918c2efe264e6e39b73fed2db2518961a79374ddddbcba8a6d7bc2ca83afc7831a9ae84b4c5b98a71c1bfa2bf74cc4263d199394967c74c8d8e021ab95ce49dab15b2cbd024bda05ecc95fe0ff8eb09a3fbd460687680de019afab4182fb4d56fa7dc6ea4cfc1743a8b330afe130261401f4f3280ace2e70c4835b143fdd32c09b2e2297432739af5691b00b22a1307458d814265090e0a5f50403a73c566911821ece08367a94df87045bb2a8dbd3ac1b1c50162753096fe3b0ea12a943f6170c0c5b32b05769b", + "48a2e7b8a536ad047fc6" + }, + { /* i=5882 cDividendBits=3343 cDivisorBits=1405 */ + "1488574e79d12bfeb07fa28ac803817149385b00739be249c6e772bc650498e15b79b75c79c3c1499e15b8afe53f15cb50d5a0a3ee2f79908b5636878bda175cea1bc769bc725cfadc2768272d71acc2b05f20c7113df0725e6fcc9e11bb513dd1f406005f04f62781100838951f9b0fc9d6dfbe10539056a965f33661aa148cdf05d9381b4939157c26cc85fea9c207b9f97f73d486900509f7287946c9b2fd1bbeecc277ad4fe2209ef3fbe2c867a0149f166f96e76e480b0a4f507f4663c6a153b9d42029bd6e4412235d4d1ff3ebf834a0044ce4e456bcbdc9e2a6c4fdee8484ef5850becd79087454802e0c441e3d9591bfabb48fda0437c067f903814f3b50fa1826ee3fcfd5962c2cdba41971513ad3e5cee5d3f812329289cf6df5ca44701618cf58f8f8253c8f4f0b7dca1671d5875060b5b3c4636735d36c61335a5d45e815c7bb2e82a241cdd8daca53194d9512042de7f004fb2678e929a3a8dde8166263743b623a2353f923dac1370c3062e9411bb53c5624fd58b5d68d8f937b8a43493af3c6f63025ce1daed76d59d65df952f9eef33ecacb01f702a1fb10e2b2", + "16b9604d7c2ab39a80532d1fd798678901b0104c3147824a8b527ffc9bdf77b08250424746529e5a25b8f04118211b9d03f0b9d7c6515b3a20b7950f70c7b703f825912e695e021d223cb3c490ac2e93772355e0a0c4df34e31115b2e10546656d7ee6eb451ad682c1e7d1ade4cafdd3a712fd369c6236afaee4ebc63f2f01250359f7f16cdaa36809b4c6ba5669844e3ea660f28a0227faf42c972f4544825402bf81f464f28b4cd59d30223ffd0e7d", + "e74f9fffc403dc370f908a5179380eb5ae8307667451fc0d0066b042b866d371dcc9c20d4ba714406d604836ff1e3c690c9eaa643a73078fb7eb139fc8b17ece20b0e9b0a2ced530d50b09867d8745c3a2f920c9edabfdb1ff9b0fa4ac0498e0bfde793d223600f47c6e1b626a09836b9a44149d42ccdec8b6670c927f55e71d68689b17a0787db3c3edd1d9ef3fb9a4c40da13b224f9ee9a4f3fba2d972995a4866da1bee0e92d6a57b28926b1086e89fba4947fd3e3bdc5bd8d43dbedc03b5529d473e8d28ecf60684166b675e61e5a629239c4b5c6f98b8fc02628b6d693912c450a86e3f404ad43b9b648180372d22e0", + "015a2ba4e224f1c12f58d858b84c24475195f5ad7905f5d9552d806cdcec838c6cb591cdf7c02a3e74f6421856ebc8e3cf418c8fcb60f341b45a472cf3a3139441a2ad45ad74a47dff805adecbe5fa77d3a7767c928ea3fb8a51c026753b129a4871123e0dc91fbf9b8fe2eedf5f57c4abcc5bf2650ab5569de706e606918011ac7511641091255b2810417d815c751c79ce7769051959f3a7fe9a5fde9b4e7539837a191cb1fc6b8b9b7f11fabe9b52" + }, + { /* i=5883 cDividendBits=1586 cDivisorBits=1189 */ + "01e4facd5787c739e6dcc8cf32780d9ef4277ebf9cd0531eb00574514da556412527dedb08455a339c48c4ee4c41e4f623815fc466de3a99e97c8b6d2dd670c86f1c0357402c891ec484e14b28abcb81f11f0f00281c4b87ebb12e5029b22f3631667e4a7b2a5a2e0e17c60ab84ca2555e107a2fbae54faddeee354d5cc08d5e3324bcf2d07b22d41018c54337b0ef4972478c07fa6067cd29ad9191dc5fb72962d9914e26ddfba130f4e370680d75115c5b09869e1ccf9d0080af4291fe7288040d2a7a29e943", + "1bff4072d34c150a684dd0f99c735820c5248de684a0e5654f49a1d2c498a1dc3c4f4acbad6d2b8dd16a6ea36f67757aa5cb44cbf7542709dad745540682fd06fae0fa2cf15944d81119c968f69fe7367ab0f857966692df8b3cc1a2d684602f1b6a358ea113274f8c759fc8b1c0f1273f7e337488e85e5c21a2b704e1ed16c745f541c6365628e7687408dc9beb3ae9d1823ae605", + "1152901ff2d595f0fb208a954da6dc02b973f7fdfe4ce38560b5a7a3cb893c2784036c525dbe7052d3e1b1a70411d1d4fa57", + "1a21cfab5b54cf614bc0d81dbd6e9797d3edbede365ab904dc6d0b4c4c559188a1535b691ea994f925c7c58ee7623e4ec93d16bab9c2ad8384c41cd8834780663ff2b2da233219797b1b0825522b649b47fb7720693ee0eec6e3b37be22bb930a2266355c8c5dd0df6c1072138896b178f21f3b247babf46c1194e3517e8c5712d5b6a1c7e380a0e9d63b918434e11b4e42260db90" + }, + { /* i=5884 cDividendBits=2057 cDivisorBits=1404 */ + "3d20f0dc0086689c18b7a28ef3094e0287b84ebc1767e9ec4420c514a1413bf3c8856e1c4269c5185ef8ac203d822f0b68ca26be840744ec53dabc2a85b16f48950ab2f599a0417048b248efd49630eb1c54b22c8e221bf77a9888ac673fa8a5546a45589d7f2be1c446d2a81e0a56bbfe28e483c0972e21ed3d2a39aa936aebfeef1b104a3bd6a77f799357230d0116ab24433021da21d2420470fdff99b9b30fa0f4f3509ccae25962ff2bdfe0f2b622a0b79a80074e743c5392871fd4f75024e141979585ca92ade52c741a841b25dabfb5de5de5ae64c63cea310bf6e99744e82e6e1db25b559923f82036ded0d5518f022569752647ac5c8749ed782148f9", + "0928f2f81c42b738c4afee66317a99a24d099e3d4c3b702d9792f8c000796cdea7174de47716f7c6db59167e94fa12ee63b7d2424861c974864a5bfd249c5208fd36e77723be643549abcd5af7e3fa035ab80c249c047659e72aac5b62f9d0f3d75145de08212db9feea28fa86ef4ef36c0417dfb6d21856c60854fbf56f9f47331dbb7500d706894ab028bfdaaf226b7588a553848feb20edc443e6f09ff262ccb6895b2b510dd1e69e1be95dfc4c87", + "06ac68586bd2ce26fccc30b4da239e564f720cff2f416c966e4f16a48fe1034ac24ca75c5247b03d34eb27942623cd6b5f32a9d4b19b5a3b2dbcdd49b283db84dece064b2c5603abf426cbed11e489ed6719", + "041761433ec5f47511792b82022b6a091dcfe2ecdcc5c9a7eb9661c077c61ee694947937130eb114607aae486343419ae7e0c096a6f2c5b274c22d970dca67ad50b4cdd656dd5b693a25bfada92137f19ab9d701f9eb4c02ca270e7a05c3d3302a2dc013a07331c15f394adda5831bf7ad87869009e0508fac50785e1005cada53bd0f8dc91eebf98a72017eea325d3f3cc50a5856acbc1098aa3361cf9dd8f124843ae2951fe6b223bf848fafb87eca" + }, + { /* i=5885 cDividendBits=1692 cDivisorBits=761 */ + "ed8ca38f2b079236af2f452731d2995bcfe7f49c9e32c1f5ca4b1f8cbbb051dc0b0db242a212a0c68753edf508cde8e5e2529eaa6b6fc7354b00cb8379bdd6cb97319a6f37d48fba96afe3fc5b4a70ce27354f3c1dc7bd8b3b7ed9dad5690b21b05178ace39ddb330e5fcaa2076be342f979dfe376cc7fc2a2f8cb9627e578b8fc2237d4c481fce0ea0d9f8b487acb07ff746d8b81e916228050569ef5fb5d0ca37305ea195ed4e8c87f39272cbbab2facae8a86e84111ed77bc4ea70b2c2a99cfdb27be90e799d09baae84c65b0b714253113", + "014a0e3f4a7ee59af9e46b40185b11ae867418dc135fe4e4c367764c4c6e7c666b700ba3d6654a1e89ccad4f2a0756622e1621c41c65bbf0ab3f90927cec578b268dc86333d62f24f3ac840de98d54224ba0b28767edb1ada03d6377502f6216", + "b83fe91fdd2d6938dd0132af99bb378265079c9f55fe8409ec26ecc2acf8b6e040f5be5ae55abf3e80e00324bde15ca61dfd4290bdf35379a43ff74da9e829b90fab8bf17f8297137bba0d1b2c240d5785fb32dd2ac5d0fdf4584e5e91837655635b24fe0d2a4fa2b2c0410cda8d02ec13440701", + "a096e8403e6f6ffa68389f6791dc57aade9b73418fe11e3929eaa24ea402a5f1c121614b45ad659e82d789d7c3978a4e57da8a0478a6845ec034e8e60d683d0aa76e5341322bf2346d0777cae9444cf88bab7796d0c7e2ab3aa0e8c86f34fd" + }, + { /* i=5886 cDividendBits=517 cDivisorBits=318 */ + "078a994490f79e38d1119fbff23245a24f734b654120f1f47fbd7ea5087557ca1db5fcd8d2c26ce54e8be533fd48bce4d8b0c0c91f411a04f38cfe2a75518338d5", + "16a14d2a8cc65abb3b14de11b678c4dff98c7a8310144b305ce920dab2ac7f806372cdedb843fd92", + "554fa835f98db2ad0083534bad54a7700216c493ad2cf0a39f", + "12453470a01dfb60edb87d6168a4ba62caca67d8e2141ba00092d3bd1ef1ac6c84b4467fc3f4c527" + }, + { /* i=5887 cDividendBits=3665 cDivisorBits=3427 */ + "2ef6e7bbb6336f451a0fc6edf72a8e975a9a96ef1ebf0afc6d7c4ae020bcebb102f5e0d3f4d33b5ac4019716c7fff1c4831c5df38246d306654d1fba8d826d5bbc1fcb1f7a3e94aa314f9bbcc17ac96ce1afce79a88388ce9b0ea6db5dc07c8a7a293e7a95d62b5db94ceb45d83def6d8ebf8e755ad85e08a9f41bf47597a3d7a7e4adb6d7af7b9160fac06b83ba72031424d2782f8b7edf52925bac48f3b5c4d14085a3e311d86732443f7ee2be580c59da11564bf16e11deebba72c4235165e16c865fb0caf478f402eec4c961d8bb530bbf4f205965e5e702724d95b0ec91e75553f40eedbea4f74c08c0acecb2536aeba43a3bfb8987271cc79672e484fb87f6ba374bed7cefe03e0d66f14842c32f2060dc0be1b0818d0c079c57e42e90c91c647b39995619fad85ad0dc7bb5c08e4028e512ac73675bffe2c0742658c4672e8c65496d72648a61f8042ca3a064a69c9dedaf0286c1f4b8d585f598a08ec09c2aace400da64861ed6cfd90f4627f1cf635501a36cb672c671dc287375b1dc287cffbaf097cfff221536c9d70a646178ad6b6b8c785abd556ac2b0b9c8234722fd760e63cbfdbbd4a654268689ecde789c505adba8216f58c2de06c97657bc48b4d7b9c6720edb0a", + "d22d9f84db86690af13fbd8dc3764579d102385de1ff8463d58aeb9cb678eedca90fef0468d24a6b0bcc2fab0fed2fd3be39874be8e1d364efa798ec106c78bba31cc9970912bd65f18f3d8ea2bf6f2745ab62f943250168b48bdd26d116159b0fd9707a3953f0fe4a10a66b9c8b4a9cc902578fb4548df3806381d7b45be56bf81555260ac188c63c90986b8d167514af5a4a82dfe0f2e3fbe047715573b5eb523af41e1f43aaa4da35fbae4372c48796b635b010cbb61edb7e6ecbfb51a4398d111c939cbadaac4a7c246bda3963df3ee8b9e6a7bc0d5bfc33f2547256b6a1f02bb778078be384733d79c6adbded8efea800998ff6a5a91d7eba1105464fa2aabc770758a25685b3bf57ccd5c08bcb02738129ef32e39efe7ed4a01082d7c1b9987fd7db79a5170adb48f30487bf341f95c0fc35cf35e91f8b82569ae0704589058c67caaf2f03a804b2ad23f9d3872bf379d470207c47d5219e3da468a3ee19ab34130ac144f3debd1e6f4c7a896797d3aec526a493068023cd12f3dd46081014d3a7e50eb68b950be38893621ac1861d9d1577a0d21f829167f9b5fa3aa6e7b01592e74c96dff7590491", + "393410fd3246b5654789fb507138e8eb67504b24a7627e421994631d4926", + "a467f3bdb8b2aead806127f6a6ba5f0deee117a189b68a5584ea4a70c58c637ee2669f92250677faa295ece8a6c544586c1a6cc1cfd1ba71c9db2df1c0293cadd1f8c00ac5c391bd94b30a4ad82111009a2f9563bcfcc2a7a3b75354e0ee433921b951f6e2ba31d2c7a416241b014a023ac4674d3618e4284c017bde494c8c982bf6f98a991bf96fac86d079d21452bf7f260fa819e28c0f94dd088872bbac954e26f2f3dfa964c5bb932dc46f71da4927864cf4ee4c173a0969fa9e18f6df6ae2c705c33c674bec9e28a1f805fcb8c5713f8d87c4b466dc64ca44b5bdffada2ed14dcdb4e8fa1192e3c83b9f61a0102d2a030f6e00a26cd413e4af7b28384caae5e5bc4b572521f4e429790c8034d12a36619b7cd9953087b16706c0c8a9205bea93609d64f3f57cc61632fde0e317ed8010337fead5e4a697a1e8c21765e0fba6b1da53763b27017b337d57e3d280797fe4bc1431087cf4767a0fa4f726142bf422417722bdbc32ebcb8e70dfaa049daf7ec6a92be56685319e4004028d557246ae448c854a48fe69191a316c53d589aecac45dbc167905cafc20d2668bfdf6505ce2898223851c11dd484" + }, + { /* i=5888 cDividendBits=372 cDivisorBits=98 */ + "0cbffa2f99ae891f39bd2161eed3b68a52f31b9f40e83eefd0002bd365e2e1e6afc13c23c4b1db16c89f8aca1d6051", + "038683e5be4787b532f9fd1d73", + "039dd53190061fea2833a68e32954aab9f28833ae4721b378662e63e3ac98225b800ab", + "02c468bf0f7fa713e90462b480" + }, + { /* i=5889 cDividendBits=3055 cDivisorBits=1880 */ + "319921bba76d372fd5d6c1bfdf114b8dbf807d2e59ad600b79bee791e522c23a55f161b517373bc189973ee4b3a9e7d5acbb0d47c8f6cb5496e6da5070eab56c53a3e4e3948a8b8527ac409bc8834d322e43096ddc7d62bbeaa5c207d7f0de1263e91ba83cb53a5d56c549ee84633f547676fb948a5e9c9b07377e8187156988f48d39120206ba94fafae9e02fba1314bee1d4dcca171f4cdbce7ae48d9d66e9ad5afa6c04dd20bd8886f3f33509bface8e6d45a8bc52e8ed487892e7d2c180854688170a74061cdae2c6d538bf13c0b373579887cdc6ce231c4a4e84c1c4ece38efea8ea2b0a34757c465b5b264d2f184075cd95dced97da0b295cc9e2c538c9428a6e1421486b17b90170253bd697ca08954feebb4b1c41ecc36221cbdfc39f2d2282a1ed46530afe24bf26dca59d628f9ea4c8269e44baf0015d20466ca2cdb12998ebef93ac64c400cca1d42477775120a5792286f4d8e61f650ed45a47b2cd31320e84b7c4982f6b27e6cacd89d4d18def656d893a31d4a294e7632", + "775f4b599b2304ea745038ba2c7768450e8478e92097ab7ae38e6e862c97f4cf4490ff805e5a41f8d77bba5b8c2bcd04620dacb0ee762d8e57da094c8d8a6e1a288f0d730526b9b94f25f5ff6a2106acc1a5cb91b6c9b19d0d7874e0ab60560e96d8d89eab01e03236867dd3db8b5324c41e3214c5ab5c2fcc288c9218f4d184068d5aa556d282ac0d362dc33934370d78056c36a6508731e42564efc85079f44ddc72e76378e3166976f38a984a8a4f7a7b7f1a228c72a43ad064a8f8043074e510dbe3a218c9678af7ffd374eea9d01b8cd53deeb0d880cc660906a009958a263acc54ac8dbf4da33fe5", + "6a5da93c9fe63b2f906516e7b6cfca93dacd8a4c061ec9c0e8c63220baa9d92c7c0de5ea13e5280e37755e6bd792b59ce11b2da6cf3fa9c926f55b8c6b43bc934313e82c60c67a0d6142f15c727a76fcabb12d9779e4a4d1faa3939bed881390ee0d3577e1e3d2d7f3eec783c5cac53454e8d60521184b6c3610c9cf4e638fb5e0c29e1442b6ed358bc9078e5d07744763b7fd", + "4279990c493c2abbf35f990616893ef358618af0f7964c72dedfcd9ba5926bca75b7c4b864e3582412486900508adc17e6badec3e8f56b6084c88717d149a39f6ff6a324f9e7417b5724c528f06ed5ae76323a627ac2018cfc732d8bfd5af7bc9c95a74a6d2c9ec2cc71e0900799d45b3bb2eecf9cf525e456f7c4735ddb28a7f6b0345c4e7056b8b6ef85c9367342e244d2bc5aa033a9b5b4b9d91abbe622b42d7e9c79764cfbb5e008463921f9e52a6469930f2eec9c6e1975c8d646d19be6d9a35e349ccb2bca7dcc407866118d89a700718d1c249a8058a59bb4c63630820ccc85cb5ac31c83bc9de1" + }, + { /* i=5890 cDividendBits=3282 cDivisorBits=216 */ + "6d0b6534d010df24108689b5f68262a838fa3f9ae2214c81908bac4741f82c56818ba6fb38cee4e3b8dada4a5df2625e4ba8b067bc08a5f8f8cb4fd7e7c6fe3f03ae37321a7dafcffc38d8746be0ed585e5691da3d51c7ab076d30e22c479ec4d99e54806a05aa8be2d1325e35ba441d5161f23999eca695b5386ab8c1b330d6ae9d5b64d48973f5b154153a405c4476389fc94a5fe0c4859fbe4f22841004fcc550daf0518beb257df24f824cdfef418fb0b5718f910152ddf57b89365b1f3b1f9da7c1e504ad8cfaf6ad90fe226897eb350c6d3ae59f60fc941188561a038253e5a59fe37daa44a908b78adb84e49607ce736f4dcaaf7ad6eaa8ed6d4b7ea3f6c71218d593abab1cae276737ad9e00a4afb99fa0c687f10f1c46a57c7fd90d6f57d5b4024b793d9f227d147899a01864eb4fe9532426b561775815c66112626ad0442775f16dc911abbce9fda68be1b09020da162017b8cbcaa9d16b7f3b4a126c9359ff49ed41bcd005ff87f294a1fa85326f7873366b7a2460a30422b6484430220c97a1d11722e1ab9ba8c2e2e64c7edaf60a3297ea4a9d", + "496ff30e810f0b4b2dadb7acfb412be2b697dc8b5e9b87738fb43c", + "017c202457b35fd461bd4a8df5e4fdd91b275df5fd82fb278d4c0ee309df4e6d5dc6b61491dd89097a613daef446565f3fc0307a74e73455a3e12ddc8b520245fcdab2081016101bda356f6e698e215f6ea2fbb2b5751a281f5554e96791f3bc2f7243442aa8c8ea4c61ed0ba8edb434043244a9ab7d5e321bc220a449db81f546f744bfb7dc58a6a9ba05c3ce5d1b7736f56b6a1ea09e815f580c6b78693945fb54828b7d7a5a5bd378d1d658cd15d21b23a07650f08740b8e2626a4ec7584faa2b2e1a508228b605ec039749f32fd7bc43d35351f0a87aabf2631712cc7b14e172812f80c808f5e83c3050cdd9813ed91ffa05f6c5ffe8550ac349c543428720a38ef8c41c2138c9ee61acd3c06b419ebccba451ee1912d019159b37ebfb24b5ceccf578962f5a404fd563f32c3978c4cd909a4448a2b421759d10435d7e488fe47adf569310e51cd047686049889238673c96fa38ca9c30b5b5a6c02d07b1abbc2bd6cc2c6f63daf8fb419a13195061530aa2e2db0ac1c0272242e75aeeff", + "21fab9ad094d6fec5e0703b6a62df93d7aef11d61b7537611dfad9" + }, + { /* i=5891 cDividendBits=1452 cDivisorBits=82 */ + "05d1a1b04283ad9f2aacc7dcd4c681f03956c53b3c25a89165b0fedc0e0ea2b8aa4ba94aa958dffd80e8aa356003c08e8dd365b8538dc5865b9e12f1ebd3ba58158471a3844f7b13da03ea23a97a11183560ece7bc9c5a0df742c803cf5a200fae77861708657a2af244b26cbb6a2db58fe314c5230c5d0b37ae4261c2c04bbb2e28dd376bfc6feef3199c5311edc8205a2a36ca2ef506872d3ff6ab3af1f4ef86969bf57ffb65cae79a51ef79000a040f868d993803", + "0266c4ab8dc3949c8b0981", + "026c4edc396c19732797be21695b2506fc968f02c0061dadf823cf5ad8088d169debb070a58e4f3458c155a8b3c485090549a112356b6a1b7630e71c38b103e0c927047287a0db087b5a98b0e6252ecd17d82bcc8e2db4754f2fac977019f63839053ab921084a39a1b591eaa3b2b2b07980ccf73b620de82b20031359f8f187020725c207ad764f86847c31e8a9824e78fd47f3fe7378fe7a8eef26c674ffb9812ea01515f9ca9e8cb4c996", + "a497458104f66ef75d6d" + }, + { /* i=5892 cDividendBits=3500 cDivisorBits=2417 */ + "0b8b6d1cffa483e6360fa401fe9e68f9e2efeb5d7e596efcef1a2541cfcb7081745a26ce1b8866a10231b0554d2ebd455f6858e7804d99e03ff1dabdbb034fb9c438d8e508cf84878c23ec3a8855ec4def904814786e84ae6aae09c4ad3ddeab53715bf70a9a7260aca9bf0cbbc6eed793adb8f3720a4176e091c924fca2bb089a3eacc27e447c9bc8ab571cc03360b157adf88ea1f28c885a62892aeb4fbc6c33c588c36202d09ec1e7e2369be4b4adb73f84fc10cd7b9b7029e50a85f1fb2573dcc6d1c7807e072a5dddfc3d6ccd116a8b528e97928bde29a28f2f7fb90db40468f3f79c4c3b245a452c1db5ed46579e68352953acbf95ebdf73523fae2462d51faee390d341fb18fe17987529c90aa4457070fce565001bfc030b0b5886967df650504cc0f3cd3b9c4bfce5a967be6143cfb06510734a4bc64eafb278a3f647cdf897cba0e9f9f45891ec00fcd4c2bc2ef7f338a6c6e15d8216a8b13e3558950b96c7ead68f5949761bbc726bd1e0de26ec4b7b4ebf7de51a2e843a5d2586d13d736a5eb8962dd5864b8d15020bd25f6e8b38727f225101b8ce674413fde696549b4584a7a3a769191666f01627ad2a66743a2a39", + "d44344e8fe41c47353acc9d42ce8254eea97bb884b8bd1729a6ba94af07d6028bf8ba63183126e2ad59dd08394467fdd4eb52ef6f5d108fada6c8458fe0a2851c49494167eedfae2eaede003c17e577641b0adf5cd834c9d47fe17305ffbe6cb431d6c29568b4088d38a7d2207533474a67f7e0f25944e5147e42d79dbe2c8213bd9ff053c9aa58a3988e03e2f1b48cb790a98c25cc077d9b93e13325c4689d97515ed0131647e310dbeab0f9002ee96f121b1293a7896f762451df705713ff96786643fbbe868403592e53edfacc16dcf86fc6ef0412c9b17edee8feb2930abf7cbb6d0b86176ee2cb1ef5ab9fb47b36dbd8ab80e5f94178587d6e30de82e56b8ae0021e7eda54572d47a130f4bf2c7edefe1f2e9ba13a654e4d23f7ce5f658e5aa17d6dddeb801917c6f2f4c4e", + "0dec66083f2cea332cd13ddc0bb094a3521d4751831141472d57aa9e9551e8214698955ab4d2d2140a47c388d8b41f8c47390e1d4e5866e8990ee0b44848f77600ad6848150466adfee481706a2884c0b61771df812ea4c82c5454fc8398e4e5da36bb46ef8c1926b2ef82df285ce0c3abfed335a91d538d320fbf6f94fe686311c2a88a5d83cff2", + "4d97fbe7b67f9cd69a15ac57ed743741a389ba4e9793c53ca2bd3b8efda28f07ee1ef3f351ebc4cb003857f3e2f7a4372f986a0c2876b46549e35475e68462e326a66b72d8b20789679965c0d929463592907269fff2297946e18db01509af4f9e797ac269beb03574ddc1868774be788bfadad686cd7393918251fb54970dae4c65f7345640cd4f7a862ad391cc903b9897ca5c59e01235175d62276b69c3d07feeac992692d0ef8404bce1ce86898db604586611a2fad55cb04669d4687e7451e27244ed81ac1335375d73cf27968185119edb281307114175fd09094cbde9080a2bd81b5ee6af1ac20d1f1fcdb1a29c3e283fd02217d13bcc2c5b4cc191674a65489fa4c1bee2cc5e44481c2392b825d1088443e467373429b287a4297f5373a99e62b3fd4fce9ee5b8e6f67d" + }, + { /* i=5893 cDividendBits=2541 cDivisorBits=1468 */ + "05c69f123edd73629ff0daa527f2c60aad8e9c0870d54391f7e48d4d3a8329b897bdef56e9ea8b07e6adbf699bdcddd75e00e582fce0638cfab99b7500a4e2fee98dcefa7673f711e03596d68ed1f6e3ef4a1be7527d91244e6b688d7fb373e6dc8ded2e179f38091256b25f9084e49df3ddc61a4bb5dc4dc3861a4a4a099570f9e5b6ce2317527a89d154e934c4a87541b93d890d3531008defaeb49a7e056ae2d062329458b638ba3cdae87eedca62c53498d0aa96476297b0f6b3e500f623a6d69725531bea1f543b7c8eed1ad44536546cdd77ad0c035ec5f4aa10ecad9e98fd2f7618ee429317d5536013846f5eb8ab87963f2263094d1e858b2f760773f5918518ab822e6149ab8a01af7a2361e7656dc90670881f6ddf7b671a5f69fff06ae03fde4df05dc42ad6309f960863caf3306d66497b3ca39de6cb9dbe", + "0d6d6d1e32cf3c992ae6f7117f05ec3bacad271bda123ce21eaddac2192a9f63fb206d0183322b69e9f67db40e36421e6ecb8034439700a7a6e13d6e0b3e32a01f9cd733a2675988b2d76733dc3a649994911ffc489748a675cd8824ec0d1d9dce8ea8f2b522583d0d87f24d5f8ca697b3cedfbdc12e4480b26160435558c56a30f4370e59b93f182c4cef46cd4409eb90b7930e9df0054f23f908ff0f60fd1da1a99d4286e74948f20f847606e84c637ea4827024c2234c", + "6e1e8c58764c0221361307ffa0c35898bdc0067ff3551cc67e8b9c31fa84aa838242e00a6442d8dbe331fad171e1baa96423901ce770c535e3f4e7a8dd4efdf08429158e866bc7bcb477067417e1b55b1c7e3908efdcb5fe603569f8f0b774be81cddd7936f7c52117883f69092cf150b3cf44c2fac47ab8cc949547284d177ded74f7902d2c", + "0c6b5dec8c606c8a7286ecce6073794cb7c8fb063e201e8a2a6703122cf920ef73d94512a13e244d1f41594a0990934e7c4af70b31a35d79896d8e875e8256e93f3986189e19c16a629dffb11ef2e0f411a0cadec3fadeb27236bf5e561f87d709616f29d0734b203d2f489248dcdb13ec90a29f18fe39bea3b67db6132c447249cfb21522dedbf44d2cd10a262eeaf3d3375b12db7bdf6ead7f3cee5e75f953b854ea926b1430df1a1901e8569202ddc6bb2a2f467930ae" + }, + { /* i=5894 cDividendBits=633 cDivisorBits=60 */ + "9fa723342927b321195d94212e4c2f1ef8fa1f5f485872d62051afd2120ae7aa5269b0949762b0f00c4c28f018b4189a7f13f09cdae96350ac359ad8a911a887ee0e33d2772df61805e915b3cbcb25", + "05cc6e4378959720", + "1b88803929e98f99207e85287855d36c0c7eaf7dada519e51236f363f03f7e803212247b42e5dc10a31f8d6e7870362063715f36d4f76907b6b9ae389d2ac07850445f13df37bcac", + "79f90a7c6ec1a5" + }, + { /* i=5895 cDividendBits=72 cDivisorBits=44 */ + "08056143749f0d3b24", + "07d965fde7f5", + "01059a72", + "016cf9a98e0a" + }, + { /* i=5896 cDividendBits=3779 cDivisorBits=1004 */ + "0673650cfa0a56308b78b9cd119f0300f4f724e5166025f69963095ad969f9081936be841e3b71a74834121406edbf50d6ac29503e7ad3fda4a45ffeb50840d0466bd82141eb08581c98561ba71222b5230bfe4cdf8b2c5db9b2d55c6504f9ebf34581e3932fce37ac9cc4cf7dc2e86b9d9f0b08fe72092e4116da044d797921ec534e8b3a1bb6d43b46f77b0be44dede74a63ec0a1135f98b3cd1fad6a42937865fbbf89d9dd5fa7f7ede18eca47b4ec5d406e48486e4b1196c43cc13791849e04536521af40892ae5bc489c2e0ac2ffbd663bccb537bb30b6944d305dee23205e3dcec82686c468d80bc90f8be645aaad3a3343d81d6af3d3d6771932613ae8e7e528263fb69f82a5a10e3c0a424ad1e5123a35a03af1d321383d74f22e2172812e5a05a307f3a41d3e2214f24ea6105caf0a7e113b22fc8985e2439391cab405afcdc7753a92cb2d0187c4452048e4cc86dc663fc12fb6ba5be350f635df1fb3bd403656efa09ff9cc63ada238cb755e98032d28f5ce418fbf7ea52e889801579c8a36abfe945affb271332b874ddf55de6464b479d692414ce7de76bb0cb569c7a587e3fcc9b6b6c55f5b8091e2477af2333c5feae4b67bec8ba68560aa842f91a4c588c3adcdf18b5b4f388e6ecc8d69bafc9c2c1b048", + "07d6c5b73a9c44c92bc20dbe79f75939467e78ce68de0742ddb6cf518540734a98a6a4f1b710b2c33dda4008f9a938c8b50581ba004565d287ca05a135445b05e7d2f170155b421405a842636477d355030b9f331516880cda9d7df78dd0c0fe2f146bdb2c0c1145847f626a6b9e88bca40c17e7e766f23f50b1d21eff97", + "d2aa4924fb961a9a6b749b4ba1ae8c8574bf7619146596aa023e35d7b34be445e19248eaf011b86c4a3058caa9c38daa786b00023178bc29062ce9e3a1def629753cf08a30529935c2f538310486c7bce96a0af04e14dd8d25399e33fb4df2e9bece1dda511832f9af56a9d1515f926ff63561650d8e1c0b3a4fb685c8ca63012ecd7e0e2a57a5d9c26bbbeffcf8c899471fa5288e4711e49356d367575d9de6ad08d754a84907c408460e743ab3a2b0237fc6e0f82b78d31b2e092aed2966a1a64dc3432dce4dc3b5169b61fa5468bd273d3d44c2ce07da50f83c38b03c8f51b0fcd0459680fc231b4de57eb6ec2de9beaad91eb669fe7e4a583dcc039ae5fb097b4c0b3b83c1ba76738b44b392573a4ed7216201525e8b092b9c8b2cd4892d3e4533e32a2e8ea5eabb9820997328aa1f335a2adb4d47e7a4336e6772c8ba08a23c6d33292213c6ce6dd9e4f78bbb846d468914c5aac693767df4", + "0180afc8f218afdeb66203759c2bda8d7f459ad6e67dd1a0754ed4b29b44258a4c60ee9d038c75ca283348b72726631ce15a2a43b03687a6dd73f89b07c37f9c5dbe87fb2955bc7f9a6730dc8dfd167ae5ca2f484d13ba9c7f563a8087b49d60a9f265c1d12daffec4d7ca248bab17379d8fbbbe6729255656dcd5cf595c" + }, + { /* i=5897 cDividendBits=2619 cDivisorBits=1549 */ + "0643d59f18c96ce4ec8b24badc1745a8afe50ac3c212e91189b5024fba93edaf5779883db0c7e4153630da57bf6a713f278e62785c0e6a3046a911517993a97b091171700246fefd28a56bbb784af48268428cc4d923fd362275eb26c50cd8877b8f92a205217339634d1f2c8dab0e570ed7c0fb0fc7559a28c3a641da7186643e6f34a03a0957942bb25fcdfe9f67a02ec25d4866a781e1b5bec129e8dba8fe3ab805d63ed40f6133d9cd2b3c362168a3a00eaa031e62374c563ab89a679c5e873125e147dfd24396076ca380ac9afa9a9f0e76a6049ff3ff202fb487ac98200f3960f584a921641cbb8dcc9e2da080663650035412d2c81420bd0c4d04b56e28f587f0965b5eaefe72275667531143a433312261eb9e01f507fbf9fd89f760d4dc41737b713994157db9b4f3931cbe6297d65f568d675dd917653df167ff41031917f947904675", + "07837ac0bd916def9c74610c93da2a391ec18738dc95291b9c76ea6ddeca260fa3a10019850ac1fd56fc09f2217bb2c09a8c79dd11dcac736e405e2aa89437b29a000e5bd00160a33d699a1327e983bec07a893db9744e19aec1a401cfc99a4c1bdb8f7de57b689f7069cfd8a363f8861f7b1b08467d536de92495ba6526098b980c32e6e27a4dbef396af00b5eed215483478c133839b555f56476b5c8c6017bbdd44622d0692ac1eada94d0c5f72b99bebf2ee8ce26185a30d23da4be650178b47", + "d5752f98fb148b47b42210c179f3ed47aa093e05840f95305ef242e83c1af944980fbbafa94d1a1ae9817c3eea7dbd6bfa13e704e17163e83130d500a40f35162ec39177d98d17280d1da1005ebdc8225b82b013bad0f7c0167e068f981939a61d19a35f590446fbd442d10c8e6b303c0c7a23b30f5b359fb53a9b4f0c7dea8fece2160d7ec2", + "dd082b5255292e5d2a026d624e57c8f3e99dfd5182871509de20137e0fd0e773c5cfc951fe8ae32b116a66ed76f805109341e5f950cb1bae0d340d898e8f5dfdcc3429fb9b4a6190276968ecc036bec793ca921587ce016eb3c6b1b0d0100c6130e81e0accdb69808e62ba64bb9a3a3e605595ade83ca944d8965f06b7cd3d5df0e6e1d22a586b2006a9f1f046bc40f89759dbaa3d583ba4cb6c0f9e27740923cf45659f26919e4f7df06649df76a4ca68bf139207dda777c1a4e4b82cd290c8a7" + }, + { /* i=5898 cDividendBits=1086 cDivisorBits=410 */ + "1ed96b9fb0386e0a7576c8e0bac00202bd89bbe9c7845d3d0eaa0750f0623ba5c4f9ba9ad69ed6a26cff171b1d24517e0ec32e641b16c57f2d1e916e2dcd84a7a6b95283396c35a4b6075eb41b5df50d1e70ceecfb18785bd1893d0c5bdde5fbe5e946ef8cc774a6bac776c18ad65a085fc0cbfe6d81471c15b9c1b6906bca7b8c306bdf9c0865fe", + "02faa53cb7a618894fdc2c7995051d60b8f1c987c47aea000548faf1752588cbd208167473566628b0f74a9440e67ec15d9ba362", + "0a5af4c29510bbf1d3e5b41f1eeeffab844ff3c455e253ec396b8e17bf59790b889508405c5c3c34650f0462a58837aed10ced18b87b338318913f1872dee44fda6aee38d7a9cd50a93d0de5cb195786a35b9f607b", + "010ac26f8d1a9c9e0ea03d81fc948c4812ea337393b35d2f6e46e7db3b1ad076f88065d849f22305bffaf7054d9d37b8f51e25e8" + }, + { /* i=5899 cDividendBits=1039 cDivisorBits=790 */ + "6a794a6ad7e2c65c3605aa04b3c0bbf0d019b463112f7c22707c2748b5f31d966a01df54b916dd72b47d0fcd2f03e1c119e51606382309c1f4d3ca157d3b176117057674e0254d83e84578368c1b86b831e715ba30ee4b5a421eec5bc129f69ce52c3eee0702190232d1bd40d29942c4f8e5de70914a7741f0f9ccdd245c67e0b666", + "27bbe33c8f7fcb4683277aa86d7d25a119829bf2a17331207dd4adabfe50fe80dac4578547385eb8694bb2f8a96d41f19bf1607e3a8822ffbb5ee45fa48336a7bf24368aa0438beb3edc51dec38703dae3a94dd348d19dc97dc0dc9fcaccb99a786aed", + "02adfec77c3b20395f6236bf2316d28e0bb7dd6a94795a869339d19d496e070c", + "0cf8a56ee2b98fefbb3e92b3115936bd42ab44770439e7c425add57d1ae64ef1cb209b13cf8645667a6517f0b22fdb2fb50b63ef596837fd7c53d0cf0c828ad34ad8041a9396976d08c9d706307ba488f94f3081d7a68f548b778aee0bb1db5879384a" + }, + { /* i=5900 cDividendBits=4025 cDivisorBits=3855 */ + "05224be75bed3e720fafb5b0d364eb771ea7307e60c7a59efc12b9beed952cb223c635e5f17fcd9bd35f7e3845dc60a64ff80a6f6a43a8dbed8b81bb48fa25664fa30d5bd456e56ee861b183a08361aadf4106760e132e4f55edfd4ec61bfea85f3357280d2bbcc1d9c7e2ba675ffeb95aa2e052d6a4415a9d1013bec404f345f9a3f7d354f8fb9cc3e0e05f4f4cf14599bd285880a4c483cb602e2ae47efa6fa8855074608c61fcb739a42da166e75965ccd41bb44cec8cca30513564caa229ec12054107ba49fabba9c150686854b465582ac7b9d603a38102ebb2f9db4b33b40c06902b0bc24e28e87d98c8ec845409da5451384f37e5a6bec8698472a0b0c162622cb5c0df6c4e4c5cbb979b59e7bd48e77d7fe2f27f0c56fc47f1935e8c07bef86ac70b1998475e61c8c88376041b70d0b8749a679d66b9cf205ef52a7ba7fc0b60973fd434c210098cba313bf2363f35f12c20b1d61498277a11e543359223b96d2295793ae009195610ece2d2b6ee54dceeec56545450a435d216f1212c588cdd2e836585b4d9fffbb1620ec90face73da51c6873416eebd22b52fa765c121912373b1dea7db272db23303d962d336f0e41f9ea2178351d89b1ea63268c6cab7a335b1801f0a5f1876b6d729c9fde12af9cfb628d3f541e230e7d4adf0eb96a0bad603114172e38a762804692a8b0afd1f18084", + "59307a231389c9307c557c1485069113cfcedc837b39e07ea74be753fd9f1cfd6e2775066b6d78623972263e96ebbcacb10ff2e89d7e4acca2d5fd1a49f16d0844e7f0c1726bb0322d1b8dff2156190e74ac0115bed625afcc7d345abebf54aa9e257af953e18c36f2b53936f58c4021a2d06a70133efae39a5033d11a84fcaa33ab539c5c0c014eec5b7c466af32116511d77019358ba4ac2e9ec1abd58bb0ba5d8fe449e7ef46c36102f7d89644f66bb26f2735a0ff4732baecb58ef1295294ff36bd87784ea6e45bdb854f164f34991d60da80662ef3f0d8b8a1f005da156f0618725d3ddb4396b4b362d7e7792606124f348f0a8ef982041594457b81f7bcba1c6d3985062df7a3460110421cfbea426efb289426ca1d171dec61178b90f2c056c70b69a0d66ca5ec3f3622eb5eab75f4b15717970e3475d8ac734835a8ba0fe8961c5f5caea632b3ee3b4767710e0c54ad6220455adc47a280c9be142c34048fedf55ebd1a0f5a979b042dd3917ea71610f436f7ed5d97163bde12ff8ce34d1843f91aedf0d5327522ca504af06b02ce5695d33e1fa2bd2efd8e9451313e25b24209cafb6fcf0b0617933b0aa3c3f052bfffae767199cf90c880fc10327482ec05e71a3915bdf8233fb540ec867b9266bdc7e7bb31f0152c5e399e41fb520c7", + "0ebc6bfdfa1e93bb98f0138ebd68e3f938f28f06d7", + "105824624443f7c9a7eaebe668e65173227f394c9e6f47f8a49be6010f6877767d6a1c6f0e1499c7c15db2973a42e8914954428a5364579c3ebd7fe33f5005ed29168e705247b2d093e4306959c288618afa6476193422ccb505320c716cc613ded17dd69ecdfafdc92d232fe8c2e3b9c0241d0644997c19bd71a908db0cddda32beb2b98caf2e31ce470f7539b15838abc7e8b19bc75dfb8406c5936d2d23185c5ff82d2668bb2f5bb009fd0b4407887aba97602cbc2428bbc7a52532193ea52c2a8c2ccd2441308c511228561733cb8dde1ed42a21125d2f9f02f1c2f75e79964b0c6115f41501a7f757992cf6ea8bc063675a65ad2c14bbfa0fd5670aec7b4b16701e7a2fc49d9b0dccef7bc5c52edafc56fd302c9d008f6ad593d9a645014cc9709e25ee27a1e983750c3b5556297ca442cbb6834a9009949031d7fdc0cb021c2bb8b8b4af0c58d2fc5a1e022fa6a7ea70098a207fdcef1aaaf203e8e4834bc7e8e703b43c2858074a500e218f19946a976011e37dfddc8bf4187d5a691519aedd4b537bcd173d4b82caae0f5fe11ad254c3bb73a4433d962d0712814814d44b57445d16d12dc14f43153b8f082602ea388e5f1033e721877166965d5848003b3a77a80464fe761d5c99fdb34b16ce83afdad14ed5b3ecec698a6fa984e54f63" + }, + { /* i=5901 cDividendBits=3983 cDivisorBits=3149 */ + "23439fa098b17ae5b0a6c6cd8d1f995fdfc5e0b06239e4bf47a228ef7eb904a46bc0cc104d6dbf1c469b31ce0921045cf1cfce4c7250863706a72ff280c31471d5fb0940fb5aea7a2ae581980e20bac258d9c5a56f2cdf0f348a24eba03001d916c0647eae8b2682e20049fe4ae8ff1b085106fb46662ab3ca90ec0d26b50c633d6c0830d54c4efad431d7586945eebfa45ae5b343a6b012235223ae35ec06f6d504c0889fc3aa7a8ae03ffd0d9688bbd8572c828b180a9a7844343437254be6787d5701e21da32c914322ace237f69513fc24577872ebc3c8ec0a61d32dfcde769d157fd8e2547074037c3b8ba72fc9ee143a50844b65db7411059d0df17d790ad554f09b981665610a27f2d90e0a22ebde2d0b8fbd369bb3d4066ede331c44291786b2e49d370eb198f38b84833ea8115349fa9cb3ba2b3f1aac075cdfa784a49c10dae1343606ebd0c7c6f160267cfb7293def29479247fb6d760f658f3e872b0a593787748bd4ab16f86de20fec05242bc2bcaadf6f9d6ed35d9ba5beab1d9751af48ee7215505afc46b4c0e02b740046e273278bf70b84433aeba40a48ce16da50f4d6c6a2971b49c123e4408bb1a6061b38493877c7d0b5e4cb50df82bb21b783616df2845cd84a9fd190bbdd5d8f2d31ad3fb387e9a4ee46c8c04806c01beb6e4c178f22b968e2f2d76fbcaf67215", + "16fdc77183cb2be494e82676d1b5a3fd2e5eaa7cf248c896c22b98f505921efc346990ed20fede34b156e5c714cd1b92badda4a3cf8e8f2c426ad181870a4c157535b5774e0d54ed72e4abfcaf722b30ee07cb7f7e546a10e1347155cbc5ba11f09628354307b2ec36a7cae02edc6f131bf48d3579ee23f1370e9977b222d2a3c4919c42ac07f74cfb6fbfa94cceed1cad9bbe455996d01407108c49501e98013d2e14e581887ff8cd6411894b6b6ef4988fc0b242380ff442eb1f819ae403e75129755ea3fd108716cdc89c273c17ec058aae1d51dcba52929a551c06bde2564d7f153d15951710e08e7b7e144c68171b68d7abe9a2562f822d81868e60a01c8070821040e20ec21de30e1c0aadee034bac68b8717259fe99011d03438f1d4b1936ef67edaf2641010e4e0271fd5ba6d757381dc9a92f65bd6bacf9361b64f3f0473c72c74cdb8c18afb6c3870dadb51d4c871df630727a37092c01d2878589b39980831ff193723ec1b086713429b867f08548db5d4eeb3fea1c698a7e30090bce32eaa06c94c3e54f", + "0188a74a5c908766e7ab1431944e51aec83c62a02f83617f01fbde3065fd201b8957d5374f22400bb9ea806c444b4d04a52ed24cea210eccbc7c168f7255f9dc6f5ed5dade94a8d6034e7ba30a46c81fafce96807e1b05eb7fc5eb88a8f82ff9fdf275d17bfde0ea0c", + "0a5d5216c577792d8954a8009ac8ac7d1317ff4b97351e58b0f5cec5e6ff2dd5db53bd0fbc20f8dfb91df737c7fe4f34bc7dc91b8d1e307736b7bb0449685981a33991ebc7a2ecd9e70a241860a98403a9096a7e77e7acf70dd5ddd2a17e7ec3490f0ff4c9ed8b3c00902fa87367701acd9669c09fcce67c40397c14ee26c260656e322beaa5070dce029b593010cda20649ef261189b79a6a4b8d15277eb2a5cb9bcdd88a18225c14ea7054e73ef50870310bf6852be19e098e6120bc9c16adf442cb0e6251feddb4d20275795f4c0981e643c9f2c3d7b6c1dc8a87b551347fc1b011e4dc480e94a9cdf6e2a9959b382aa4c494b3c1712a90ecfa9c246b333516615726150ae71ea4e3ed410ce0702e32fa9ca91917dbd8e2c14be1bc413b523d942bd8b2452327d843f49be1100ce616a11e4a5028ef4cb019023781f1564ab41f52bfdce4090f5f8b70d6783d81d6b2637df609e1e2bd9f62ea9f2123e2d0244eeef042cd328a32d5b6e89c4ec25fa887d292df9d91025de214402c96251cc482c41340ed0a0d7c61" + }, + { /* i=5902 cDividendBits=1304 cDivisorBits=967 */ + "17eaa846411de24de9c191311932d4f5e026575229017297bb0f45186be8eba34dd8ab427b2cbebb8b51c19f4e7a8fb062e8cb1cb6a05f7515cdd25b6a1e2a3498c4b4c45a16d8d1fdaaf000485178da3f949de8d8a20b36cd4742208d5193773d72e83266a6a81e31b841c15e41f8fbb13583cf1e743853db3abd58dd2789f836e802a01f46999a54a9be1eeaa4695e69b1ad037286a9ef90076e3e0070f20c39b475", + "4a869fcf8b95d1468ac7df5c17cb4582f5c331cd7630106ba0c693ba1675170ef2579b3644c0ec1a1003f2327adb08d5f73a1a598145ff51b3d05918730ecf0cd66e9b5ee89512eae981eba322e21f6d6ea446e2982c49722caf2d3020dc5ceb76234edbb58b91b73b99e1ef63a50f60183bf35da4cb7040f2", + "52279ffd8e7f7c5f92e20b32985fc20e30857f1961482e749181d10688c62f749cc5729abd3bfac58269", + "19c704c1b7f78e61cbc66ce8b315365d32f74aa7b691bb4d11a04175addeafcb977b8c1786a8f66fcf6c78083acb901e4271975e4752bcdb3641236f9992816d5b26d3f8521d1544921cf958852b1a2a7664792789ee9cf624145698957cd7dcd5bd6488a77de497cb7338289bcab273787abf8a774bfa2d33" + }, + { /* i=5903 cDividendBits=1858 cDivisorBits=1006 */ + "01a57464b13597ec3df3cbcbc244a0958e282f192340762d05f399117864c40d7f5ced0590cec825b9d8ce5af4d1d73b7d17f8ce71c6e90544bc94c899348524e9ffd616cc67f67f96feb6ba40d19059b76afabb306925db9b154343d621b1d95cdaffbfea4a78ec46078af268a6d22fa11e1861d529d781f9d132606454159513508a3d8284e56a61f36c029b73434b319512b69d866938218837fbaca65c0c63aa79ca4487acc2bdb8dc4e154aa215f4b6ad735bb2a5278384ca91d7afaa3a1a95459b7a656103fa815c51339b4aaddf0b296f6d92edbc6d9b751698f1eb7654568094bb43d65363", + "307833ed485227420b7b8c5d91c931fd220a2934aa65db7a7351219d3c0851e79063d4e84e1ca136bb3124a2686fe047f7d9f5450cf2021b3c0a81465608201c7879f1ed57703051944422868533b4e49f73f3915fca6fd09c8911f30ac33279b38b3682e3076c39174ef6f8000bc7c3fbf2ad9c62f6dd443d92161d45b2", + "08b1fbbb9a15d63b071d98e9990c40dae4ef92e2d5fe80eb81a4ac2be7b65d77e7405dce566083e2abe9409377505319488712b6d045950280077b729839a0a8421e6d056ff2335a132785a5b9cf39b99d3c1c71cd7af85b8f42cf17d5d4609d96c26bba2b24ba513718f9", + "1ddd7a3917eec87fe40599667daf0b6606b7f2f6db2b7b3d795ac69b4b8d1941a8682d5746100a334f583eab26c398342ecc8415868735b017eadcc049fd65417f8ebc4284d62b428093b0d553fbd0148666df1f68b6ab2722d7e9ddf65df95e0e7d233b3d3b5e0204b7185a6843853c3d3ac74aa6200e0150e5b796d941" + }, + { /* i=5904 cDividendBits=3636 cDivisorBits=2436 */ + "015e3b3296b4ac986fbcf4d7dfa0687198f9a25bc16ce641e98aa035337083db0c2eef1172691c5dca0208a3d61d095ddc4c0713d9ccab52860c498c147ee7e5475e68143a2cbbbd6ca836ed460a49170a1a81a2b94f24973de463cf572a75df937069fc599ffc6777615e6ea501a88ae4130ba48e36848f25233aa049084b27683b16ee678dd9f9676c89620fe5b10a7e1f29c8b145a9cf293dece85d7421995f2bc5ee53faa4141d0a19c3cbcba836147723015479d7a728a1004a8d5b34d2e1190852f7e788a676ba8ed00b974185c9cd56c0dbdc58161ff3a36d93866738250bbd77f1d65870de473d3edac74a5f0348f9c478950f27bf158ccd5b5bacc0d5f3f21cdc819972ceca4103fae373747e09c12fb0c8b473017c2889d5af7304178304c1bc5375c48afed43458bb25cb0ce69c1a5e3557b9cb07b2a8fddc1c1cac83b6b039167c3e68e4f22b956ac4eb0cba570f15ada40a758916089586418effca7fadacf776e097788ec021679924eea35b9f3cc5744f40139467e9637ea2a727da0980ff4fff025eb92d3e25e5da6897fb89095a16467034fa5ed3f03562bfa23789d1b6271415cd0bb27bf18139916602819bf4dfe571777f4a5e0a7efde6911e9a6cc6df", + "03845c2a13c3ff92c65b16a7aadf49633495b9f612818ec66e3d353659640f002c81432ed07e44b64ef15d22388b193d3c6419976c5850c04d63e01203bf4d1ae4612ecdf7de4c82461a6fc139c8889571a5b5a0076f67254267257aec07725fab8d4c01718e42ac777499754a626f3f50ef4e680808d09b07fcf7785df831646caf5d704b20a5719d7bb8de5f5da1aa2f2c08140cf72a8ee27311edd4b75a04511b1aeb82e3457cd529a498dec34a514194e1ee65db23e812d7a6fe17bdd0fbc288ceb9762118f3fdb650b6574b8a179c43ca56b0d8d73195dba0d625f7f8f9a7cffe14de4c09a09c14aa21c5b8f62f6831034184215237112202cdc05ec2fdf0a462536ad12c347b1500c8145e2576f9813b0b7765ecf11a9d0569d9744814bf602ec6794dda1fd6223246d6242e1f81", + "6394dcef4603f97c41f19bb92776b4850196f467f2dd064074bfbbe12dcada35ce5a5fe85e700caa6f0ff0aefb691aaad279930125fccad631c57cbc7795a2143d1efbd9c6ebd485ac9772403f183f74d8e5291dc5cbac5b66276dc0a6d6d5cd58c548d8ed0149ed4bd53c4b8c28c7955ba23096e22f42d441ee5502a64bbe97f553814ad42bcce1309de6e9d90bb2fe05a4975b7683", + "8f9f2e4f944c614e0c99190060a07d3cacd8ffd664a1ff8d4d44ac0bec4acfe0197c6aa6e49cc63e4d3837dc42e2678b7dd89f9f837112179a6c0fe933e4039402a3fa946b930cd0d19e30326c15ff9eb067db571d05386d7c5ccc961200035f40d7d1d46680a5d6d6df51947b3111022507d5185dd80901500e8a9c6885236a880c47ccb489623c757043c73841a48c0c1c6415a5c91cbb5b19b89dcb1b8cf665289739d583110e1f14977742b777ad83db31fe0ed478f9986af7fa6fcbec51fb246a90041715461d1b8cff5dd7934f2a0b30dd0066f18bca700836cb54057fa240bdabfa23a393ac159dd8d0dd485ff6d32cf78d72d8bd90b54bdce992693016e196fbbf4af92552dc82705a5b0013ea354957e6b619f74e8e95b76fcf7b1d2133c0f8ff790166cbe7d83e8a7231dc" + }, + { /* i=5905 cDividendBits=2253 cDivisorBits=492 */ + "088d43ae6513d0bc492231305038cb3acb00bf4eec4098b3ccc2e3d57b6a531a02ffca5cb797aee36953bbe65803fa67db0e470e6ba6e0b06bf53554f4e44065eddd265bb84e8267294546c8e0308000a868ae7b08d2b523797159d57550a6b40f32aae662614a83a5ec56af81f670e458cbf9bb9645f667c1d47cae07b587181ce4c8128b3ac5ec711d8fab392c568556275e75443e91ee655f02088d46fb52242f6c633a8684db54a2d96593b8365a3ed781c7d36c2bfad1f4abab7ad41627db2cf15aa576cdbbe4585ebcb4ae65e06680939939a7753fc3f68a922f3b330ab1fccea8860d98c663fe385775af50a00d1bbc033c6225029eba22bc6e1fb3ad901187d719f203732dfbcaaf67bc2309869fd1f4c3927054d5c6", + "0c3622c8bc592f82bf2aabd5d9b7d909c71a3c102c9ec6dded09dedecd230f9d57cd84267adf4b318df4ae1f2e022cd162e3ecdb02ca7f0b0b0d858b765b", + "b347850589ec72fd28a57ffab24c284bf5c29e011163c854681caf289a8e516139452493ff730ce51a1227f1de27abd9c26370cf6eedb1193de9df83d43aac55d478d1bb2985dea73c8109b9c6f33ebaad92b5c775619cd1cc7e90045887e049e65862bade4c7a68c3e58007c13031aeeca57a346e2b79b88e11ccf5625de1596bfdf2e5f2bd5a964462eb5a020f3f6a1c52b22f22d124e75d03699516d7d7ed9be68e92666a25566d387084f9fd2dea01876947cad1bdd6a9b61d5f11a18c741e2173226bb2f23f370dcfa0412a5917fd49d13d76e94c8e117101f2", + "035421818ec7e4c7b52c02ecb4e96cf41a1bc7c1fdff7bf6b928e39e82eb4fa9d09fe8873b116ec2e4454c8640e7bbc1b4254c18d0c7c251635f5ddd98c0" + }, + { /* i=5906 cDividendBits=821 cDivisorBits=392 */ + "1c9daf6d431351cf274a4113f367dfc79af396b4cdcfab90be3c1dfd9d5d5192588ff62e3deaa41ebacb613501fefdb51ccd767ac637c0b44102bb29d04699e9e255a9d006aa99c93e4d6ce2c3ad42c9850ea62a7e4cf7242a93aa43497ca562e9f747874b839e", + "c1672434246391dc094563c2fa0949c62c53f0824c59c0430ead28a3deda59c8d3341e5dd3a4eff2f4ab5ad0a23411f105", + "25e0ba906c5e697b8511d21294db8e4703679a28f4652f6ad5a128499aabc5dbbb1736fcc6fa52e38afc8eb39707d1a4caf96130db8f", + "2c246ef4d0913cf81f0e8f901da71873bbf51a1417064b8d6bfd294b05e6293a5dc22a4a4ae314770d1cbaba9402269ad3" + }, + { /* i=5907 cDividendBits=1613 cDivisorBits=1380 */ + "0259595113202fa95e5376a1bc89feb1e0bd97e41141a75f8951271e8c12766aac8da3ef762f21cf4b4538a2e644c44c01ae5393f8c770b53c1e9c10ddbb941be85d3bb9e62f1f39c35def821c3879e0f8c031f18a381ea21ed0b848ac56bb7b5b748466429aedce67704c350d1f8c1c1a02757f9db77b34e18fe3ae6c58c05f331eea926a3c87f9ce26bd9975d6db37696fce055dd3b557de2338651e0222178e6ba51ace23847c5e5cb3d33176c3a8b73dd25c0b800c7840f703dcedeac1a57935803de62f3c8dcf55", + "02df1b7b996e8d198af105d45f648ce9cbca28a3e6e62c849d21aa43c1bbeff056a2392eeacd5dcdae9019ce17958688096e2b5b4a7bfdc65aebefee5a9a2e1519b7db14d05c30d4ab36d902f94f675ee1326288d6b6657838381b0c0fa4c1e1ef2590fa3c756ae8c04684f9dee1f49e27c27bd0f6962b0dd49fef3454c2103693279553efdd5aacf6efeb7457c751953d7521f0dea4ae9904dc84a277da9cd8f2231cb1137b0735319c925f2a", + "d16b37f4ec217c58bfc214126c7d52bbffdcfbccedca23534d9b09346b", + "0ee649f6ad747efe2011ac68c130ddb5d6abb874799f5ab878d29e7d4436fbedd14f7ed127fae3c9654b3a61445bf3afedf4dbb0fc212ec9d260cfc404219429c3a16048b968bbf7489840ce2d8e95d11bc4f178c90e2751be2ea52a892b6d0ca3ede891fef955eb0dd51c036d8612c33477d34f69c8c4d73459b4b5fecdc9a64026b4ff440383ff634736784b65d222d850444ff2adb840ea87ed05cda8d2d27b3f41f20142383f499180c7" + }, + { /* i=5908 cDividendBits=228 cDivisorBits=131 */ + "062c3390271d2d7758d81f383aecef0157ea487d3de78d0834c7d6bf05", + "01ab06df7e0719aa37fe89fea2909419a3", + "03b35236ad2d6a5de9ac553152", + "ca593dc4a657993887e54bb5185f55cf" + }, + { /* i=5909 cDividendBits=3779 cDivisorBits=2574 */ + "06e29b3fd8697d35e2ab2253edf94c3cd3ebd08bc3829531b86e78f3500ebb74f6a96e3b621089fa997b371d98c2cb9e93704139eddd9d33cf978a2d582217b0bf81223736cebbd5b8db24a9d4ae14742f8032ab7731b9dad93ff0cb71698dd150c3f825f4b43c8b3382030f69769932c35a6d6b8177e0f6da1bc934125692475d692befdf34abe590ec62807d07a38c19085c676d6d9c56e10368750826d8a7ce2693a7f64a10a3c55d437deeb83ed791ef4fc487d21a724d21c60c04f09f221a838418231d339fcccbe9121ee7e8fa4bf36e4681d044250b9bbef359ceb95b198863446841d2297bc24fef5864193e96aa56b922eaf077b1eb6eab31234a095f40c18d57ad67e739c06ecb162baf5452139fdf61bd801d14442dd225d01048e167e8c566a46254dfc86453c0f1688390c7bd0a98c875c91139280f5fc9ec2022a5c48186cd40e5ca3b131be9c6fa71a17a68d3cf1529e9765aebd4ba2e558d1aab2bf8508b6dbc8297124f53124541f0658ac90124645a445da57ea6b64466ac82274964f994c41faf8ef8eb214aa7d3d942bb70cf7d686ddccde891c13428668db8277ab65e75ac218b6cef60fb072661ce31e3203451f7870e6ab68b599be60e1897446df114194604242a7afe8906447b6704638d2168", + "092d5bb352129191c2135dca73a8c7327df7b971e6c3212ea12e7142a7a2374d3d4d2cd2e8478193d38f41f766fd6aad4b78bfc5046c00cc9e316af602b01695d2520d4c171e18608e77b03de8c8a510b0a988a8ae30331392284713dee82e35f7772e6da065e9ee1ff48dffd5f4a633985e088d97d7df3f43daf63a8f755822aa3718ed31e410d9456241ddcd4e365c800a13e8fea0132ff753b39c867236d4a2ab906e6b4b5aa4802d88d98865f0612e9f5a76a6009aaf4fb9ebaf58899f70a8eb2220e8a439be08f4e2642bf98380e7532b79561bb2a0da6d41c40509a91e3b15289484bc1687f09b4a7ec416ae7ab38e35df66a26782e1cb218e9011e0f502551dd0134add6c0c0c626aa88761d9b80276e019cb47d5c4270f1742029ad7da0cbe2978158fae7c1537fc8a634f7b07904bb7a05696b2bc72a65aa2372d727af5", + "c0106583e66fd625e969590662a0d9a159d2ce324038686368a660633b9c7c6955ec3788c9aaa982e9f904e801ba27638b04da778f319fa48362aa7c2bdd4790dbb3decfa1db1f23b01efc2e9428ce95b9412aadc3da7c8bf1a6e1d8f9a5cff359f19f49bb8e58ca2a158d006d3e741c2f90fb381f966814e52a859f7739a95c9a0cb8eba1f73fd1707a852abad602e1e8d47658510c2b", + "0411e78ff16870680e7de00f80ee6e2e17185626e2e24e0f8696ecee2ba97656e8203579778e9d7ffd0ecb2c1ac6c053932facc9141338f21c94e0086e130dd1bb947346f45799d0de7568e1619b480756a070cd861612c6859a82e2b65346bce666e13bcfb9e8aee06bfacbefb94ba652c4c68c02f32704753376765534b541baf810ab2826b1ec7f0e1095b776d5b4bdf067758f3f7a5ec7c875af6e55ddc6e0b17741c08ac943f99a4d1c14cf5bb51eca6e297b77061352ec1d5470606478913e562522e95e7c82caa2291a3cf88d6efd010831116678cde738991398e556de09227669a855be91fcfc35bdc54bfc13de572d84e46da3213b4c4f9f870b27d0d867e8382be5427c21dce13637ea3bb82f50fe79734a7104f7b46b3ea045cb33b867f0922e5f669f4a47bfce091dda144577c8f8d9edeeaebb44f345334409fe41" + }, + { /* i=5910 cDividendBits=2014 cDivisorBits=1533 */ + "26d6895a8701f87ae68e95ec7624b93f8d41cb96f454b3e934c0650e2ea2c100f663dc0183589eacb6ea46637142706b6ecef46b387c073349b972d2acc76dacef04785b9ce97a6879ddeaecb0ba0731dd15c32cca96071cbcdeed010f27653aaaa9717c7e1810d31f52af90401a0550ae7f691b72c6e079e276f4711fda5e9e2af2dc3f8bb40b5750a1ae54ce7c074ca569efac059ad7e3c6b72f2a3657fdb441f003fb2abeb2a08092cc094b2838d8953a1288b32c05126fcbe056cf3a076e38660f6adac8f6e12510daed4ffce6e02b5477b17b062c0fb01baf8ed964b93be96908b77e3efea4ba92beb54580aafc3096ac51b5345829468157cc", + "10656f3fda78ba9148117534917efc2896b45c2f7ef380ce9dff3344b67c5fc3e05976fa1c1f8000d0e41b404a88d4ece8e7b26873a63821a7a264a700f1d393c9bb993c12c75107945cba3724d2fbd1bff7aa7cd657211a867bd6b3737c8f3de99d8861cf948485420cf892734aaa93fae32a0721aa3347c2d2cc4e6f59b6262b890ec9328a6000970428fa76498de5081e3d8e8c5f15b0e4fd3877297f03ac9142784aad1c4e001b5b7e1cfb5ee202c1e357810f8d004904614b4375eb06b9", + "025e64446ce34e21b03610dcbe17989fc6f46e8a69cad732fd01e4ce340158465bfdf621b254ca8bc5379b10ab7b63b071a9ac206fb12a9d215e6b66d6", + "0829e2a8fac35f8e73b4436ab5c5b4b75ee6bb1203ea9a5f3dfd87596301739a70e488d5e82707beab00b1020b44bfa98eac8ddc22e9e57b60f22a9bdcfc44d629ff0ee1151612455923ebba90018e180974de094e7048a8c4e5245a7a885db503b4853d460def8d9539d8c00e6d5381be89b15acc3dd3099d656d26c45977511a60d32af80fab4285a8d434c026ef538d64a344c8ba8e429edc3bf712f745acae2809f24db089d45520ed27eefc20b15be96ac4b423d3ccb39ea43c52090326" + }, + { /* i=5911 cDividendBits=224 cDivisorBits=80 */ + "ab5c59383fd940206eb23e97ce242c0875bc9f0a45d8e8cfce9b66e4", + "6d0c44a0838d688b4170", + "019248f8da57525fccd74e23a9304a956ff6cc", + "28ac27e6e5d31f31a1a4" + }, + { /* i=5912 cDividendBits=1960 cDivisorBits=1717 */ + "759bc11b864d0838ce08dcdaa8609cc61d3f21fb37f4f8a427d5d47d13f79f301150bf922f36b80b7605a709d2c01ef430b93f446da8fd34f2f7d28ea49b399402dacdceba73faab8813b6f078c1962769f9d9f80f3c7572db933f56cb49c6950a2c4f79738a2c7bf2237e1f05de1860c5b1e973b4e74c4818422f728a8b5abed74aba718bd041edcf5dc8fa7ed6ada8ec5cc870a873cc2e2c4647c5beb83b5c8261f703c4a42ecfc62bbe61c60dc64ca3522c330d380219931eb5f7cbf69903db58dd40958412aeb0c3ad0d320c356f8b9653dc456d0794d6f3dc351945eb381614bd698ef025845bed609dc91b91fabce80b4f68", + "117a4e3fef910c86983b23e194374186518f7f43de5228529107db53013678a14e2965f74a9d4da6e6018f8f681bfc8f5b3bafdc57d727a6e6b606105cbe69e5a47c76403a116ff3e82039f06b1eecd4364698ceeb5ec08abfa36d7273ab2d79c1c248a06ce6a1ecec1599d6c256dffd7565eeb39696bb876870e55dbe944bbc7d5213581368f2c918808163550a31c10fde93920e5dc966f78e2964aa2e7ba50a7e20e9fc98ac989f721bddf0cc016fa1aa085594e4763b7cd0e1a51d5ee746ec0b14842b802578ac4edfacd3a7365a82d4d2478593d8", + "06baa1f69cf7a94e25ebcfb2b240f046f518cf45b4c5e63034b78a541c4811", + "0d89b8777e545520f91a859dc798611fb350735cf261ce034d8740217aacb9d7a5e41139ed1f8542c3b22215d9c88e51fbbae2af1157d2527e793b34740948fb683b7554db89d8bad8320530ab6f064f21a3966f66d75cc5f761913b704c6e73a78c5f0262fed060dfc3f2b5d0438b7be2a2dacc79429123296f668778e88636685f50d37e25380d1165cf716434da877b19c0f30368103d6ed4a41f7104a0ea3807e4e90b01964634dba83a04b3a1a92c4a92e0063c50bf68c80fbc2f517d3689857725a5169a99ad00039b35bc2e73fdf3198af7be10" + }, + { /* i=5913 cDividendBits=3502 cDivisorBits=477 */ + "21bbee7d4ee4ef4519ea624332f8534f33ff07ed631904a2cb79493e23feaf357048e0ca23177e00c276a84ad1db118df592610a15bb00512957f16da74b6731583abc610e290c67b5d55eaf54cde8f2e2a6ec7301f8e5f3c194ff7549e51a7446d936a4808c53da11f9371b34ac1a70700ba7a6cd272e40dc512737a255008d9293100765497923ec7d4b3b472d61253c2f954cdab7b01155f318b58148d16e6f50176274c3da6ce4e98c1fe3a398b8f6def3c277e415fcb8ecb59e3c14d889c33110d5e162ec0f13acf1e4b9fcec2fefccc2913f509ebc77851115d3db5b47c21f1b481879bbe97abd0c40f53d71db69259a1905302991baeee644492006ad35169cf1e4d26daaff1c00587f2bc88d223d33abc627f72276b250afec3e87b6253d4dc723225ab2ee79225a2e14fdc7b0754aee6dcfba7413ba93fbabb9fa1efc734cd82a5ed095c1578610a2f50d8614b7e48046cd1af8abb37e1ff690fff6610fcc904efc6bbe4179ff3dff5b02cff02a510858d43c65accd04a19e4d424437d4df6d0feda634a2914127a20b8328cc404dd6a93d340d8698372f395c0fcbf045d87f06889062a0deb18ad927843120e47a7bd578", + "0a3eaab8fdd297d4a2cd5fc1c8e6adf83a26c7edf69551c3ef3d04896c86bed89472eac0a9cc93545f479cce9091dc6396985b9510c66ab6524a0811", + "034af54ae9d792d3fd97a636af3aa9dd5c3b179f587d593430e2b30d6fd932635d0ad9067d2a2e5fdb831a65f7b745c7ca38ff80fdc732e9f67f112202f9143c369b6416d0b8be5ecbd7976dc509fa6b5d63184cb02871424954bfec178ba58e97cf1fdba1a8b66fbc8b9ed73f692c1bf0f2a81771eea31a1c43df59cbe510ccd2321ffe1d33b4a3f8096d148fdefea8eda7b664834a72fd65c37bba6918660b8396219c9d5f6669bcd11dfff234948ed32d28a9a38ef25c2c563650cc385e4d2c97a663b167051c046612ac5823655c0ec03269abd1564c6d013e5d5f078d5d9b302db98b518c96d1bf1e42eac27faad12c652f3beea06e80665cf27612ba5c15a532d64f6fafc76ad6a27d656900560e5bd674eb8db636cf6cd68d95f1c7420927dd13dd41056916b1a2b310677de271ed7f6fd3eab84a3875db72b61714269a16a2eaa3524ddac14069888627cae32da9c58f54430e009f565ccf4d7f490f2c636a014fb2bdaec00081efc88dd6e2e0703c034d64cb0e08454a", + "0814b14183c3c06811ae8004c7c4f0af4b981876a7a388cbd9ed6c8b3c817f3410b48d2d5775675b16b92ac918df94314ca9097115e87bc68e60eb8e" + }, + { /* i=5914 cDividendBits=2491 cDivisorBits=1287 */ + "014689edd74d2b3f65f06d4d0770da3d0c775b473675092c8357a8a74fa4a3c666433c4f1301c076e7e48057aa8f6987805fb405b3700d9e69b190c8788139803657cbea18d3d84ea8030719e789699d5e9cb53fffbc2465fda1f78ad1ab54b3ed17d13d32b0e82f8f46f4a87213b83047ce575e3d7907ba67bcea1a21b2e662f777e7fe0c131b4641cb3992a316afc78bdccd6be295d9572e670860c48cb4e3bb73bf70eedd8c896228bdab47ba862a858382ae14d254ce006d16ea7737dcbf9339c6f1f28d0dd321371a650cb862a619028cebca8f1e3d6c211abb04a61c561db2695bac4f834c1edee34abd38d718624e19264f330034e87a05e34c95532880a27687076a392f0e086dbdd36e43b1df862fb5629a5802e2ad761a0c41fbae3e1f5c872aa3411225459e68917be22b0fb977aeccadd03f", + "609f09ca8cb7ef4bc4acda7e0530182911d2782425bac29ace56904746a072c0fa7200e196ff2e1c0687fe677963a0656b7bfa370510211b9cb36c3bd82c93217487ed8745c1b19e955d7d72b15cc8c8211cb9d764ac6f9c0fd1a095dcda6934898ad60291419bd31404f9bd3ffa996e961cccd357eebab98c8f591e6d596a1e09980395bd67dca62030de8d8c28e0fa3d5bb3725d09d82c72d8ea0a3d8812e32c", + "03612bdc06daaa97dd6c1394f712d0408fb9705aa44480e6320166e4a3c4624d7525ff2fcfd61ba7b0464fbc30ad9168dfa83759943de9bb57da57676bc84d532b65d08f04c74cda52d04ee13eb9a68c69917190d1130dae81845351db2174c4ea5aa00772e3d67e27139917f58d26565025049c7f4c308c21c6ce90ccfe7c4e5a01d4bdb3fa502156bd53e27ca9ea644aa03641094a02", + "40d0459830dd7a94dde356f156cec45aec2d97fbf5635ad6dae035c5b10c68fbdd054866e42ce23ad645be706acb7f11b26fd604cb278caf32e584b47a769fb1526a986ff990bbc8def36d60ce8a0b051673c53285c1b4735ef52b58c8e29485a8a36ab2798788984640781d0eb7f04ea9d188b93af2ec87758d7adbfa4d98195c042f25071b7678c62166f61521ce3bbde97d9d768694434c5e899a3e1e5151e7" + }, + { /* i=5915 cDividendBits=3037 cDivisorBits=1527 */ + "a995a32985496a1c2d9c037a02a1daea734d966ed72ec4d8d0f2e816e226767c34db22a6e4fd5d7988b18dc9a770eb58c620b2abc9b1e0368096ba919677d21795071a3b77b2fea1c68e90f832fe8b252593479a58e748e8827deb4a542f2231ff507297f807a12d2b3071ec9508cc7fc56de70bcfb7e934b9541e0355af2adaf76cf2f4c4eb37be67cac9d48d2cf2617dad3fb3d63e525c48205713d73d541882225ff19523cfa713e646b8e53c7db77a5d46bfe0e3a753fe06553b9e3fa51da06ca50916bfc65efcc5e6b1309df4303c8eff6c1e22056527f25894c26aa7f81e69ede1d61d21d5bf935d2db55baecc4dc4f60c8cb509534b8e9a779320a06f56a6cccc4c312a76e0a5184d594b380f1a1ba047f8bd626745de90260ff354b33018627e91994170d2517dc9d230bc63529f97b257f132bd83b4266758b6f312d941a6a20e5fb7060a8f4b2aa2dc0f3477d59851afd7477f077cd6574b9e1f01a9f4a564e86620878698181e1b7f6530f5130673c39cdd85734fb9", + "63ad11fe813515c0f45dba0801bf526aa4baf388d2787afe41e230523e61e3fae3103bc887a2fa0c7f9974122bcd7689d94f62c89c9ddad1c0449cf24d54967273250a5766d305affead99bde3a9f128af2e6886558ea3d9c895ba09f994c615e11e8f09e514a1f145ee9d58c104871bc36dc829a032d4037e4322fe4777abcf8aafc684d3cf429bc29103db15489e955fe4ef3711af945053af6829c036dec8eafb1b2ca2c9fdeaf1fc7b436f74100cc281ff904f46fb8622b7dcdb537ede", + "01b38c1c17dcf77f8ffa6f959f6a5539f613e1742386174c4c23348a0422134bf62cc0c736d198e7dc51aff919c63fa2477fe06519662a5fb8e9a7a4291298c2e99dd9228b5beb16f7ef607b6e6d737e4c6aa3e38fe6fe7f3d5ee0c415622b1f7e962a5671c880af3656d84b99247f72ee490db709f968afb3f31110b42d3044907479aff307116d4e0399280d711f147c53e7a22f98ed9b6c94ca5297230ddb83c97b692301377d89f4f6f8670c1684340d02b869b91b3b8a86c966e0", + "077b5e1bcc4c2847e58d071db2c7791dab50d782bfafc89f78db0d44985eeff3a7cbb10ba6b5a0c04bd00cc0bd0d0d06a9e69f4ccf445936dd7b87e4c365f63d8803d101f3473ee1560380bcf059fd60475559e43e005cebf934d58b798050d585b4a1564eddf06bc5e7a77b916ec001dbde04c18b985b306564f94ecadc28663c40de4944099ad751515a158850ca2bd6f0e9a93a33b6bcafbea068eefd7db783fd5988df08ed99eaeb2d0d2c85f1c3a84e6e67902cda004145978789d979" + }, + { /* i=5916 cDividendBits=1688 cDivisorBits=240 */ + "fb000b3d1cf9bbae708a94db5ffa7f1368e0e5353aa5aac4b6c3cbdd755b4282bac33cf403ff5b250d542887dfca1626eeb28e885967712993ac5a01749fb1756accbd37cd78f890413fdb80358cbb183b552cca447fc1011e11c9df057024b1d05746a6b93646905632c9ff7a1bc12ebdb65f2f9d4044b26f4088fd1c5b6fbe1637355b003499315c49abc158c2b342a95cc9807309142a1326feca1661aea11ca4e0f4614df4c240696f8a5c644faa8c1f9af34d1a73f39f0dc479f1887e2da390e04e1948b1790b66ec64924b6db83c3ae5", + "5d1767a99b83ac1b50a745025604a78bb2c74228e5cce50fe415b61bf190", + "02b23f23f574e30b3ed63c49ec7106ce11e3e75a4c5b0905f462d38b950e5c8b9d9551f56b0b80e1777cc3d7b8d333d954fa52ba08a9ed08c97b77452f790bf6056ef1d1a6d5fc076b50f21ebeb709a3849e8daa95ecff9e5e2c1cd396cca960dac68391e0fa674ab2bedb96f71f18269cf27e3c5be5b1cfeeb1a15c1535c8408467fc3e9ae1d509964243a89fb9a553663e223fdd713f5551deacfdfd2370b99cc5afac412c562bfeeea77af279b8390bbeb5fd5f4d", + "5cb6438aecdc9bc6f6544f3fc1a01470afbdcb837c7a30c16e0907e02295" + }, + { /* i=5917 cDividendBits=1553 cDivisorBits=1387 */ + "01b4470a206c88ffec9a994e60546a0ff15e56d868a9a234158c0cbcbe2f1b5ba1111cc0616d952910cbe14b9d6b4894bd80542fa3784c9d7be9590f43439ff9213f225097f5ff1e226cd341eac501f1c14cab5612100fdda0fe2916671e4ce5310280b07e1774a94688b57e7789b840b0b933bc75a5e73ac9ebae112b015511a468fb2ecacdce5e0e43f24efe04e4ce401155143155b3cdfc1eacaa74cb2f2a0c59d351e71afcdda9c62a18d3c1acf74d1bbe883224ba4599083cc3943260b5719526", + "050529c9e7ac7b075717a56d7e683b84f6e51a2c5c3542d29a090c221eda3c00e0c0db063e8bb309596ab30e77de12e9fa7fb426c6c0e7765a43bb159052e99aebc7dcb99ab2e736ffbdd3394488da13f3eade8ffeede458a8f57e1892cdd1501bd219f0c2cd35a0fcf9567db3fffdbf2a42a3df4005ecc8dfbdf0de818c888ceeef1f15b1e6b74fbfa8479e497a81a526aa35d0c8df761cf16cb6c9ef46b47a19c71699415120387cca98cf2756", + "56e7aa6e4967e2480dbb57ecc84d3734cb9003fe02", + "0181d76f3bc831ee8648a22aafa819363de24f4a0ef0f9e4b9951576fddb2502519be8d9ae070fb28ffa792096d11f409ffbdfb5a4fe25008d050535ae7f17e5edf966041c9fd72e301114851071ae00bf4efb65b1cddf0e9fc88f5f830040b0e7896854a2a6aaa182fb036c0806ab77150bf1c4d3bca32470b62e639ae3d3bfa713132b5094fbfb5b34b05b405055e201fe2525f6430ff6d0fd5ce7b13b348e0e04538f9e8f79423b6e24c9f27a" + }, + { /* i=5918 cDividendBits=1102 cDivisorBits=639 */ + "1a70dffa3ea0f1737462315668f5e071a0aa74dcc4537300a1609891a829240c0adb57c72b1d37846ab2eb7e5dcc331855af7925b51f1fbff571ebfcc83908e48971bd5a8778d3f742d16beb798040ed5b5dbc71912f3ebe86b9ad3c15b06ec79059914d694364f98de03e42da6505658f09a6577085544d98542d7f1755d0bdf8e065de8ef19a963507", + "663af2994d77d90b5f44e3e1f89a7ab4aada2ac8575d9872829cbdd11b7e1274c0db0ded55d274d4c9ac4442261e29e6886ca92bea3f647b746828c08875e65f56be863967d3f84aafc860746ce407f5", + "4236489daf21d4c76cc51a2255c173f9c4544d572a80093ace5cf3a96820e2029a3073d377859968bd836ecff61064424bce77c5c67340bb5277", + "3f89e91d3192ee64a3b026751be413cf163f5dc0bf28bcd33e96af9ef9a9481a8d61f926014172d88afc15ffa7736513e0acc44bd35cdc81a94d5ab89812b0d8eb8cf525245cc886a56fd053e2130824" + }, + { /* i=5919 cDividendBits=3214 cDivisorBits=2525 */ + "1e597a23bae2878c7aaa0f5dfc850d07643d059961e025af3dffd252d2eebf07f694e6daaa4b855a0cb49404fd3203d3497474f55e837623e9ff8c1a3b8d0471a0f15ef8a87a86913cf283f1b4ec969d9f93dcf7cbe79ec8a6bed0a41a90dfab41dfd90316e3a120f41e11285fdeace99778d1b46ec23193a8dc97d631ba2935c96edb0e47149bf65bbb1bea96e27a90ad9e6fa0b778f430653acd31ef3737790282389e03e540640e59357ea490bae526d3ababf2768c047c5be7803378da36c7def60ec76057e742cfe49727ec219afa0c5c6aade7573c50f37abc74e6e30da16faa9b2f9f8b76e8bed43f7072697ec22c44c80798f7353985f8e78edf9e721c19a26c0996412ecc3db1465a44c1bf898e1b3c821b8778bf851aa455a922ef56a8fea4e3c5639672249607da0911ede630bdf18fcac263921e86c2343ed1bf1ac98ecf8635a91373c655775b2680fca9a4bdb770c4b46aa8538f1ff0d546797d11132a481f4908039f8376a55880a9acfab63adbb231cbdde4048b23e6d70d3878077bc1fe6cd24cabb99f2088db643e48", + "02920fe9e546a70e6c30ebccabf597f931aa77f38a44bc15006c58d3db37e1b76b1d7c633ec524698a3694c90f7575fafe9a75c8b22fc80df51fd4af341ece3d97c16f181888241bfe1ed4cd25a7c6a4331766a27fcacf8eb6fc8db735cfb27cfd924565afbc123fbbf18e8816055d52073d1f0d8ec51e786fa6c85e102bfa89b795bbfcb13683e95d04408f81d747b7e95f54b023bd4234fa08d8c54593861c98797787a493230d3d97bdc0e914abdacb420f7d35405d2b6eddd5da4aa40a3d29126b9dc970e9d647c5f16fb09dbc674e6dabeafbe77a04bfba8e839d90057ff156679a7f2e819dcee9b2c90e336897c077eb5d245c5d727b4cb3bd6cac454699aa1d0e282796b71ab7f8806fb753674eeaa3736fd9486bda1cfc40a19562170487c92bc8ae4550c375cd735bd259a280efca937eafe48d5e30273f", + "0bce7d600c211a115e3213bfb3863e642fe118acd23975ba0a04c3a38a30e513c22b99f17cbe55098dcab783963b2c0958732c9d4468e4e1b409bec40ed3a379046f6f445b947f4aebe5a3e92522d0ba84d35999172a4f", + "0261c01f91e9d96d0c482d5aa0e4beb295065763463d56ad53f1893ed902631b7eeecbfe44798886e3ada13bcf0ec3c5d1ff6a6ef379b4240e7db40be1ba93d709466a4ff632f50ec4e65c17554a0b6203b4395e5d6ac5737d4583869bca245a8508ca9d9e8130497ef312bb501e761b8399f736eece958011c7f146419f4dcc8be55be1b7f7cb9d8130c68e57888698aa917c7e17a9b8a192bed12bef5eaa25fc4a185731963ef1e69116b322198a9714bc9bb4d17e78e006632ea9014995760f366d0d7510dbadc713c9d075bc1131e74064603d47edefe1eaf287e8d8df42bea1ce40e726c78ca0473e78423ab38a2b7c0f02324c98cbd60b1f4f25e42d019c23252073900e6931c29ce07c1d66d6f221ac0d2cd7c541e12ef8e15b74446f03233b962bbac6c327804891a5c02a776e534ca94e4797c5b66ecbd7" + }, + { /* i=5920 cDividendBits=2817 cDivisorBits=2694 */ + "01ac4ccbbfdb6cbdc04a60cffe6200dd0c3cdbd6155c90380649adb1db5d66fe18a4420e95be62f2aa09bcb780b9b98e124d00bc0446b0f9ae1295666e796d83b6d9bec485616e38aa1fab96b1deb190aa1c2ddfdc574c283fd0bc630e3a1cc72ebcc528db06729a2e0ef4fc3cb7cb1b7719aeb7c93d313672c6425dc6450f6bd09be617ca82ce338bda1195beb490f64c176aca7d49250b5dcd06ae4b6220a4b43b8b91da1fc62bd093ebd1b7d4e419412adda981ab9270f100e74f5d1b8a078a0a44bfac2d360890c0aa6bfba13dd26bf97741ec46c841d4b1b14170df0eb916f41dfa2b0742e383f0921417a362abbced0297178b903002fd53b944f2653c692c2db49142f5826559a9767b7b9880d606789055e5ac03a93c4e7dd206f424c1f88618954cbbe581d1475c354b965a07b42d2192553ee91bff5bbb2019ef9f6f62137261ae9a4c3fba58a7f25f030e50423b9325fc6e580efb6c59d867a9757c", + "060e6051cee593c6a07517322d452ae1cae70359ed6582ded71e7796673d59c6fbf53d8d490d33a4bb530a544b79832491e9af4c308636d337e7a2b64c5e2d55d7b8e204970a8983d8061e54287ccc392dbdac3b566fd4cf0cdd9d37736f3cdfd74bb9523a074b033fc4a8a2e2c60a5db687706358297accd0578ea2d18a7c6729013055ca18b3031c14de53dfc32ec67ee2dc97f2e41cb2eb3cf7882565536da61f16bf24fdeb1011244a4898b55512b2b2c5e19289c873c49c1b6ada71939c480654b9ecee985ec84273717bdbb3c3adc48a2e00718369efc37baed0aadf7267443be96506d54b450e3119a3b41578bbc4f4794a37473e096ba93a91a4f70af88137c99cb2bee1293bb7bc605967a5c06aac58daf76345824368339f5b8e6a9753d67c672376a634c3759bd73505a0f78907538cc89ffffb8014d89da1c7fcbb6a0f6057b18a18f1c3a9dc4fe2a057be", + "46b8ae648fc5f86ebf1479a9648a2378", + "0427b5a31669919ecaa1cebe054f397754a83c22d9576cf1051f21c31aafbbe15bf9d74b0516e4ac5c21838c060fa9186833ce58bad8a780023a46463d9e6b87ad17b91522884a512b27549b4dcbae26ee14559b1002e9c80f02909f0ebdcda5329d50ed366f1cf295637a79e1e2d50b7abe4bf278a91b17d155cbfdac31a71cc3579b945a3cd71c9d8bb78586c3e13ff2214d9a1b83dc9b88fc3a616fc2aac8058a70c89c688a6e8e5b659268a443cecd4ec24a78dc42493a553f0f0584343a9d3b5c33b9802225d2f14b16984c467c4bc3a024cde08f6c2a3a815267d7ae1078d8c0ed4d5dbf4e2ddc9dfb1cfa1b8776326679ce93924f946f0080e01665719cce1d880d40c92d983e4548efaf9b66fbe9baf05db84b4cdc5f658d0f3e331d8ce99d90ca7d5bc2f1830f4d85d9974a42690d6eaf0f896a59c0c6cad71eee5d252216965d5dd478df10eca146bc155a6c" + }, + { /* i=5921 cDividendBits=3600 cDivisorBits=3076 */ + "300df2af117b8593dd5d0614b27957b370a9d7310ad654b54babf4b77cd33a1de796449aa9a0fe6c9df0d801eb5c97a93cdfb1750ad279773989e4ff7eb0f71a58cc5ee0f873c3976d56683fdaf0569c7a6f5d4abc353345c4c800c8ab1113c966cda759cff6a7db999b6d51e9fb65060774a93daf97a1f888b326879eeaf64419157c70c231023a5772c270cd89a83c48464200fe3dcdeed4d13fbd838188dd9dd28bf24a3836cbfed63df21f6e3f831eee08918c766f0411b930b4605e86b7d1927060e68a7e7cd95f81191bfce7193aa3f55c590c6a1da109a35667c2706d60f755fb086281606c368ac56639bf0be44d0497aaa5384cd3fe7096a5fba8dd519ca7659740e7d873af30d98231e2bac136b6115101477b59047728769ae688eb2352c18b4141f7f039266851868f79b0b7e94354055191af3ddb7466eca91bf2141dd3504f0b2bb5826ce59e4e96df57a151ebae1e2b00eb98617a90d9d647a8f879b1a68762d636fc53d9c7368d438a44df4570f69b67b089b38c20b8698be39a4840edaa3fee7a18a68f7e945bee09b0d7c43b9af32a9ff222f6f160c465f6788289b2b3a8f684d2d7be0e7529f6542e22ad9fd28a83740b949d7afebce97fde", + "01d37bf96599e4a4227ec1832be7afec2457c6d21c80ff7edb24d7d54b0792e632ebb60bddded00a979a2bb6bc28d6f641910c2c695e8eca2c754d0050b5ee00ab1454a4b5014e196c8bf76b55f3e1d4ba32e171ff7e26449e182fdfeb0cf5289ee3b18b0f0acb29698f6dced0dacffaa8d54c938264f9d3a2a75fea79ac2231ea5f07d714eb1e6413bd6117f7338cbcb667329b8119d7d76b5d3a8b7b344c3b20b8ab8b88a950a208897fa2bbc88f1f1934667922e474ca3ab1b3105403c4a54bfca248effc0efc1c2724c62c563b0ed68256fcb753227b4930eb96ebcb0b11e18feff2b1987b1d097c6af0c5c35f1d4c0e4ed7c6537d89162924266124c5bc3deaee11aa8803be1444861ec31924b1027cc06f170224dbb21e940dbc9f5b82face2f8812c8dd62a7cadbc27b575794e965ec9cf51b9dd96583dc4252d70a118e38c1d06168b4cd9702f272cfe070781a7213167d21bef17d42800bcdef02e49c327fac768089fccb99626c597d9e8e2ef92ac223d83454f05cef14320b1e5418", + "1a50b1c300ad0a57477b1751ece1cc7fba5eb5b3697eb1d2a5cb243b4764d7ec3a4532ab02bc9f1268f46affdfee0bdd2820bdd931b8da03335935d05feaa09a001b", + "790b7952fcd6c90bcc649ab0744b4c7c922d7991ed28e7521e7ba42367e72314d84c6153272c286720895a8e2ba0481b69856dc3bef735180e2d2baf8816948e4a3f97f3c41ad3f8ab7cedc9128ccf0cd1854f8c2b2c713ca59c0664562e0234ac8ea9e2fbe714a8ce9d565d4684cc6e343824e95884061fbc900556b30c98eaf088f585e5422f272e940e4ad5d65d3c30996037af3ce9eb038ebbc74a0696efe631d464702be1a2ee5a454109befff83c3ac337a5d28d8368f03214ef9dd2b0e98f0e3cc8b08d1ce98c3f9a957b442776b6db37b2e36b6a2619839e559f0f96643c2eb75908efc8122366efdb496b9bbdd3ec1a9fe503b21e244ffa6145a4b2e1b3e513f8392ed85181c72a8d2f4ceacccb06c4959979b53ab336fcbf01efe20be8cee602fb0090dbb0ddfeb1c35defc07dfedfd9595c3f9199f4b1a9f49f0f345fc0e4b158cda21f32a7c5b2a5a4eaaef537a7c0327c5370d8aa7dd37b5a3ab9a28d752cb8eecbd131dcbe9830321942278e04a5bfcdfca3eaeef9fa46a156" + }, + { /* i=5922 cDividendBits=3229 cDivisorBits=1582 */ + "1de15c8626982de28dbd09e486b1f500e131fa7dc9d6c66fccf814b6aa45b66b36c185c17151cdc7554c32ac5ea08907b5d21e283d8c775ea4f99f994fc2a5189c96b8cf00338a2d01c09ed9366633f67f415f0be99679f2675aa4d0b65104273fdc7e8b73927dfdab15de6807cd9d83c24f30f68552940192e57f0354f4b0212e0c19310151c794fbef21092526344680636b4ab4541b49de40d0d6d62af10da1ac58f3dd6618871ece27d9141b5a73d0f54a51ff21a9e6ad276f66306c9c95ce3382d3ff6432a37f169718c02409501a17dfef4f2269fa2e3e4c1c5c2dfa7e85618936330c40bee1b5c08cda18ed7c687956f527a0a41bc05245e17263acdcb8dc5c1ad284301e6e0cfe601a805e23a277edc41cac7ef1c1ab07a10671b314659a0060c3879b007eea4c44adc9a86d7476c800862e0a1df48bf0f604391604002bad7601dcf9759094f178d56a069007173c48d0fc9b68ea891604831520b79ba3b44b634b1ab295dc9c4287162c53f8baa9a9a7a07aa659c5c3bc33f23df80f440ae3883bbc71c9901c7296d7fe3b114922d8", + "25c359a83891c47b3fdb539de0d0d0ed8c8b43ca1ac51480677b0d43b0cc751531dbc19be6f560b803c68ea201148781e2d1d57fe37b6789f3aa76066b94ba51474b17d80ac2ca0fdeea977e80fb1e63ae2fe24077f21ef4fdf4491fca419d6d4b7cf8df75411979de5c3cf4d84bb1f2932107758aeb89fee375f5e12fc56385e9b95f30c29f32a411236509e491258b18b301ac208ece07733da6968694b91ad8c5207b7e36701f4e4d22ddb7921caab061118330cd09a162bf7ebc537e309d7cbd6ae6202b", + "ca8fd69c21e74ff672f87881a80d8ce9d0eb15ce190a2b345d33fb263721afce89fb25a8507ca09d9ecc7aa236656a81944f6a8b13efe7bfe86ac51e43373fcfb598f49f7d32c7e5275d629cdb08506a6245bb9c17762d735d36058ffee0f61448dc12fc26da3158f89a504a1b75bd948a8719b4796061da84baece8a1d00e169f5355b8e46d11c4d130ecce7afdd1d7ef6aaed6d9fc2d44ec92aedf6b5ce62745057c16c3895ddb4154f410247c802318573730eb1f850558ca9879b96c80ba58f0fa21be3ef680eb9061c6a30f", + "1ef037a0718b873c782218e625b87da2e8318762726e502d976c409818138921f2d3756821b1501c9a854824df85f982a6910671b920092654b5de177146422ef2ef7ce05da637fe55c9da4e88facb9ca9b20bf7e7abef5b6b1a2d78a446fff35fed458a0bb69da2a7c9ea9ed6e3bcd11a703306ec35b109a9793dd190876de68a2eacc4fec382aa844ffec8c674573313be3f661b4cab239b82bb49d489528357abdc5ecdcc0d6dc772a1080bb39c6c706476bdfd8b30cef368eeab42f66eb5a2b41b0fdf53" + }, + { /* i=5923 cDividendBits=2019 cDivisorBits=193 */ + "0554f9d308ec702ad67a19b2f692fcec7f11462985d16de707d93693797d0801f10b6fcf211ffec726d127d54bb0bde21a36dc6bc2c74bec0dff780f268519aac9ae97fdbe35c66e9a3592ffa1b6e16781c4ca451f52eee866a5931cb6432d540ba835368158157ab52a8ea672743d4f36d2dc81de74e814a542dca1c66d4662092410218c6c35833f4d5507f13a3ef350c443327e0bee832898614810eab95cb32307c92b180ed5175ee9d10fd55dd9d6cd3057edc9a65659919f346f431137a6fd5f649f5b8c35be52ada6e847e51f217f899fafe07cfa0e3944e44d56be8f62ef27f4a7b8dfaeadc274a3cdb9d5aa7f5a46d48cc63e60c457109248", + "59f5f4307e07aaf20af0b75ffd1bb140fd3bbc8b7b1440aa", + "0f2c4aadf30ae45349ad64f42c0871e8b0bea5e321f5ee4b6a93fdb139d8389048d627174ae1976030851eed058d1d759b4fcaa64390aaa61f98259d81caa22431d82ee6d29af54442b632ed8eefd0b6793cbc77351e8aa6b483491082ddd9784c3eb7b5a514035c06461657e693c942c70a83fd41b443177c20e221040eb84b544dcd88db75dc7b63097272908ef86976fb2c803760ad2e70c6e466d6d6c162e33b1704d93e0da28addcb456f43295ad3e1e5edf995dc4e8e0d391dd10a422e7ae01fc3b2ee7878f7430080aa0011ee42c852a318bdb45643e406563cf28e54227a09aa0c", + "3b758dc5ffabdb39a8ba6dc8a755814592799163d532a650" + }, + { /* i=5924 cDividendBits=1500 cDivisorBits=1053 */ + "0ea4b2c29816394958a1738e57790888250fa9d8aeddccc39c944e05a376d26228197ae594049904854d6741a5004b30068f2a5b8716cb0f6e19e3d4d609a1087a532c1e6ce936a4453ad6f9fe3ca80b920642ce65db3cd96ccb8ca75348289f794dbbc9c8a6e76bad90b339774be2ab7deb89ce52e4995457580b484997b3bd6bda1454741d90d381e49f52a6cc4a3a2d4851c8e2ef506b397a7b71af1ed0f4d5807b487e63939fceb14dbd087bbe8600a845f4830c5b730bfff54f", + "1504e0e3defa278dc2063b7877c107f3b3a39acda83c11470db41921c10d864eb77bc41ab206228b7f432b698fbb941ac2ca93fc2670bd6ad442a6aa87d9a6ad1baf01ea131f08bc4f4c82f143b0533c8e2c3b6cdd7a34546afeaa5f5f26dfcfc3905ab8d6b4e6f90cf344360375fba05a3ddaeecb172e56a5e6d27a491348f5ce916f7c", + "b258fc499db93b60fb72abc393392038e396c81a3d95f59e6c06426018851e5637f7f3853e0ad44ee0c062bda0885f08d0a7c12127445d41", + "0c066055a1992246b0234cd42e1c978f571a710aa5d72449a16fff4394d3996f16046bd63b64fd8ee65cb82361dafd0fc67a5c38b697d9954485e5a6eb386b12e4838001324ab24a1612941af6c10b2f551ef6b4a669d586d812c59c6075093dec17271650b6919b4b00e4ebc4a2e19c9f22ca895979b2561080eb5f6032a76542a29ad3" + }, + { /* i=5925 cDividendBits=2998 cDivisorBits=1087 */ + "1952cd88d24f15f1320d2bcb2628ba9ecdf9997bde7f27375028ec54f2367331bea29bf5037ae7cbc3b60499f0c56192d7be7c62e97d32841dcb8996cc526384bf4b68c33104daee572e046f2f9c5704a49d32dca8195b43c55e441dfb5fb8e9fab3eeba90fdf6a3d97d21c430539d31b532f57427d62d221d48cb6ad76e3de517e093d548b4d2e2c72c512b4da3fafe971cc98e32e9293a97252ea3c6f61b678b530d84f92e8509a2cf723ff874d51700d08d11be65b965cbce430b028294e99acc875cff2a48c604dcd919895194216cf1accd018575fdf1b5c6443ceacb66b1bfeaac8a835a4c8b5902196d091fb08b030f586c3b8b9d64fb99ab2e0f5ab956eab4acbb08d5239527bbcc020c09cbb236cd4e6caa829135629bff797057fadbb000299f47d0882afb5f54b52bcc2d3e5486b71c274954308a8da011964d14203e732d8cce22444a07a67cd546b367072b690ba5aa4a0b7788de20085fe9a4ef36c303742d237640e8ec2e730b014c8fc8de94fd146d", + "09e503aeaf4e4697b57185bdd6dd36aaaebc4df122a6f1c4a61817fb79ba2c47d39762c42415b2d414039b6513f7b5a2f7255b6edcab62349561c3272ee90bf1436d058203fd50f6a8213fea77b87ff738a5abf3c1a5a183d9a5596d1dfc562dcb655d9ba3ac8377329969e8bf2093a950db59fd3c53daea1b4885cb055d235c071cf2857cd414d1", + "028f2fd0b8505a07bd9a68ad83a6920858508dcc86f6815b51956532df1d10d964a223653034f62bbdcecd6b7ef41101c5b79808c4cfd750f24ddcb481aff92a785c0cfad839a3940a678d634df432a0fcc4f937cdd0eb0a2401bc1ad8287ce9b8af081b9c6b7982e9f508855d6a4e9dd313c5e6926c12294d425ce986a8450a27b9ce73f8c2466dfaf0c2b13a7cb1a952f5eeaecd35590cdc2a9a4823e9fed193b487e12273039f1d130ddcdd7a4c3d1233ce0a7c7c8295f322903f6f7748a7c86ada375a4a77e22be69142dee766dede424fabd0517e8c54ed7a9b22f27907ef8a0b9237ffb0c023c9803b1b7e7655", + "0788ea9b4190534f9e0c22ba239e21e2a491849ef2dc3999b352a42dad171f328dda4e65926debb282befb58d93a6588e82babaa552c0004328c009f0389dccd26c9566325e0b603b12bd12c95ca9df6ba858d8e329337712da0e2f51b2f623f0b639bb487db7f1d90b971e0a57586e35ba6e01abddc6dc66ce650f683d1630d6be9a043171bd508" + }, + { /* i=5926 cDividendBits=3131 cDivisorBits=1593 */ + "17d53cf0bd76bef06e34030cca24f32d85c5a560efde51a5b177147b5288ed18912ef9c30b999dadbc97ad011add18b0450e9f660dcf99117335da9c903ff5b02970e5783bed799ce5c8adc6092b4836607dcbd513b17d347202ed82768f2960e60ffa1e9c62e77b9839f4a87fe803275b0f0a43a759b8ab003e74fbb9def07a3faba775ae9cb7c4fb48c2b5165343ab02d54613ec706ca72bebd94992b9782149440d4a381a7e14c75e23341ca57a560983f12674d7cb426b43158bc25ddac0498e73704b6f209854ecf1da43c806daaf5159e8b7a84d5ec47e394e63a7f4ab76cc5395ca167a9b1941fc790c0bedd36b3187d33428fb31c498cead0508e90c04284c9beef849897302d5db9d7dbd0f7edf520cc163094fd0dbf5efc055bf66458789bf0b66d09e9ba0ffbe2740cc8732356312d9af112c71945ead770146d21cadfba016dded2ffc31a0c384e56c0aab4a13a911cda7b994457adb3c7571d61bccd326643165ea99a849973caed0dd8cb6b58c463f489173911fa8c787218109e5f3a3fddc67", + "01e43b728e9a78ce30bfad3225d0c2301f124bcf50f66b5882fcf8cdf4474d502ecc42ec7b8b18c14dca1977918e17d4b04244eaead46e2cd5be26b2227da154f8f1a69f78a78a9f1c83d54e0d7c8b3bd9e0beb529fbafd5f3816d3614ad48d0146d15077245936532acfd9461efd47de62c01ff4e21ba15478f4263044ac68baf32342b7ca1fa90c8eb1b41ec70c997cd26e691d81bfacab3d20ad4bc8737ca344ce6166cd82a5466ea85d1bc64366ab997ec7efbd274101f49ab7ee4a0bce64841e5801895f22d", + "0c998db4b99deb8393fb04f911d3c890372026c80089b31f1ca1421093ff201957cb72c5688aa06030e518a9aeeb5ec6ad9a6012000c62c6efb19a32859c80914978dd692d5a150136c2782f05d8c913d2bd2355926108457e97d7bf2decf4b4ae7763f6cdd9884397ebcdfc73e0fcbe2c6021bf16a4719660cb01f0fdfd2a925cb2650982ad92fed31dc2d9467a71bb1afa17ca22557514d576673b1aa63ba7f9c9196bfae48d50640fcf7d5e4b0b955c75f73521863e18d0018e41c9e7b2aa", + "d5b9aa24ce441df5ba8f8b16eff7b7ae64b2d2413dfaee677a5e2925aaeb9f5eb3f572608ee7f0b433d189d07adbf31df24ebdd75fc38967c3541d84099f02af2b25d9cf52ddce1c046277704a9d539f517030ac2933630b25fb62bea5fa25cda867bbd114ec1d66bba88a404bc1b524f5a5a8c215f6b95a0555ffac14ab72aa83df1bec431b076540bfe52661ed8ba5f50b687ea79779ff37e0f642655c35352c491153fe8a294f1ffa4ca4eff3861118550169a18d6424d32245c1652c941d3c0feb326cc085" + }, + { /* i=5927 cDividendBits=280 cDivisorBits=29 */ + "eb24918630252a6a575a74cf0c3237598c0a125a4062db98c9406b344aca77737cce31", + "19bb1712", + "0923792adc2882de376d8d95f695f5870d3d261597228098ec8c155ffa0079f3", + "04fe661b" + }, + { /* i=5928 cDividendBits=3919 cDivisorBits=1671 */ + "497b1e6418c89839ee640343fbbb5070c6a468c7cb2fe930d588e429c822ef01bc34d139efaa53d63c41da71720681562fa865346b5494bb4115fd8bfe124b2ad8ff7998cf4b41ef38ffac091be2c58bdf9a2dcdbedf638face6a1d09feac4fa56ce520d423df44701eb6322ef887f1aa4ca218927d45aeb38b9feac4345a17cc491ee04e570dc8df9f7ab8da624bf32135e1f9d50bd1e8d3751d749e940e35365751f6097765198f42ac63afcd471aa4a516f1c6d5e445a8770f6732bcb337fdab882a32807645a15928cad8d3f03919b8cc40b0e69cdd9f5cf5d417436055021a53d6183878c1184551cedf4478b13b0aae862e3aa516c039674b460c053752811d9666da9a45a3f98c769d6f2bbaa91e04e4d1065a323c48f58359b36e8afca2f2e8104bc95cecd17939ab58e6b3c11205f3f2518fe6bf113a8ce83941088297d0e911854eb38af29af11290ca823d7cad691f350c24a8a4f22fb92ab497ae145b15bdc43a5e4607ddd67f09c518476d8a720d0dea9d79cb6cf2a372fc39d46c6d46015de7b842ae460a1b26ce61ea3695bec4a71e03722304ac66c364f90028af9027304c5193046aa8c56f93fd220d6a652e0a85a2c9c0bb931ba5a823307e8b717a240cea22c5de432bcc56aba3e6b980b2e1ca1407f1f4e46cfaad4d738300000f991ce9982d9", + "37abb72b4f88990b9f79e520388fcdce5facb9d422d9573682b1404e825491b628ca6428ce7b6b7c38296a07a0507c11b323539efa1c4f05e9924f518a4e88ae2e7ab48bf97328656481b8571931b4bd8acc25be665a95f8c2650207ca0a28435d0d426915f8e4e7f16bf7d67266227afa48dd95d82ad55e2dbacce79de4af81753b4837dc9114fafbbb7b4c756093cb0854a6454396efbb03cfe15face13f806312afb6eddc4616a2616dfa6988b9d70539c3e93d5c199aebbbb83f4a1d743846c0bf45a9e7f337d8510e2f0aa49170ab", + "0151e64055793e22f802eff7025eb54d0c0a41a403dc0a08d147d3ce4976bc5394dfebc88a99d2e1b8c58b412c0ad102c77ab6c336ce009ddda588e2d433485af4e214d389d89f033547a24a7d8baf87698f31d57969cdef21a84e1738e0cd243777a901ecad5916e6b2145d6af38b95396bc796b54853f534c39a0973d6d113f68c0ac2173967c9ff8ab10c20cdce8a57f8328236fca6f8cb207f689c6244536caac8d3c16f888368dad3f4ebfcdbd0d1ae726c3b7fb87fc14e2402b6dcc669a8f3efb06eb37f9dcdf106a5151928cf734c1b819acc2922aed3bfc5e4357bbf8cb23ecedf3396720bf64d2b588e5e400a60dbfa7d10398d54d55de0c24c918d15747764190f54dd90605e36759758a52847c56d17770852721d", + "2c7d1ffefa93a9980339cb7904cd03c55d21e98ba55c1c036418aeac8b5529e4c809be15d2564537df25decd31a8d535b02e827c042f4222ce4ccd3894fb14d9ffd702cf288d64e8e0a549bca1d35727ab90595ce432a0a7832f0baea1105c2fee5c3f706449a83e8adc7cc3f9f1ac229e0bd0b52518d0923d4d6c050befc7c383ce1751a379cb064fc05723238f2d9484fd23a92195ea77f3f14c11dec52f47b1c36eb0a43c143fa1decee5d448c6f48c75fba985d5fd247a7ff55d0767cac0d7fd4c2867a97360c9f95be97bf72d997a" + }, + { /* i=5929 cDividendBits=504 cDivisorBits=370 */ + "7bb97a342bb36ca0d379eb64b4b6f192fd34c141a34151601f356e2afbfd12def117f8e3689f99cba0b96137b158da8628c010e0835fb83637edb971684ded", + "095052b87b370d8eb49b2bcd8f07ba08e0ccde3210a037c56bdc056361ff6c9c62adc952d3f3bb6e43201a87da1e", + "0d48b7c494631cb1453487474c8d571e3a35", + "b1b91d459c95cef2a4e2cfd1dd3520e3bf484ab54fc0a3e5e9af07a58c3d77cbd02767f1b56481707f6a5959b7" + }, + { /* i=5930 cDividendBits=209 cDivisorBits=167 */ + "8e71b0a535db6b33ed1c742f2a9a10af97bfc48f9ac68ec61936", + "367cebfce887a9555699bfd1e0383ff30d3d585d60", + "029d3e2d8462", + "2f9f365766719ee5ad1be2193504a6890dd8ecda76" + }, + { /* i=5931 cDividendBits=1589 cDivisorBits=469 */ + "12efd8f3f3b81c7b31b54c95fabfe8d18851a95166a558c06cc77ca61ff973207beb28fbf7da652ae57fc9dbf1b95228771d130b909a9afba59b5aba43c90c32d1914569d4dccf861d954a5cc7f37f44d8c4733281343177669e74c34098c978b8e96aff30bc65909839042237aa82ddd0cd2abe3e8cbe6898115b6e0e1376303606244d2f3c419025e46030baae09ee8dcb08a270ef108d87c9b389490a653d4201e1ae4580c2e0cb9d8bdc25ca97a396d9a337450b688ce86433399d663ba6bb6051701cfa79", + "0856abe02fe3263519940556f7ea37f33b340eb7e4fadfd5e4779308257bd4caad6b371b402c9cf725355aa3fe46f73cd74f294a31fca75212f825", + "02456086479860d080a17959842ae254a60b89ed69f9934091491d2af2a56182249f2e48fac977c2d51de02b4c1b488304dfbbeb13c259e2d178f265388147cf2869501487991850f7523f62f061964734f27fbbd4b8652648fd8c80c42d772c4f3cb4ba6c16d5a3e859f68c67c04b88d6cfe3148d5239d92bdfbadb8d1a7ba9b457a82bc2f632fa6348ef7755", + "03ea1efd88fdb1b035e42b09225feb3ef0058840b7f24ee07a9d6dd88cbc715c6b0f7be3a5ced79dee83a3adaf4e33faf6f8418f81a7cd4bec6330" + }, + { /* i=5932 cDividendBits=2597 cDivisorBits=1495 */ + "017497a14077aad5d39904fe65aafc3ff4adbcb1271ccb6baae269505e3567b564e2f31593a6b82b6cfbd508e3667d000febe683398e6fd300599317a25bb453e8c5dfbb0267a517977470c6b203e9d788832b9dd6de665548bcd57724523c0b435989fc1de30cf191b059c5cf5354a951069c0bfc188ffc2b405208668680ceb84363004a81fc23e9864358b044d3f2acabf65db3692fe38ad322b9e0ed3f4a73bdb9207f7634d855c9150413e5dc1ba69f44bca50faa25371a4c4542cd77200cfbf5cbce6dcbba9d2e3d72f4fbbcca4a343aab24e547134214921fbb5889d4fea47220b5826a0ea2cc2d8c6236530dff9fe5789da836ddcddb99244b4595c63abc3fb97b2031b65d178c1a47d19a76399035abb23a53595bc0f8ac36de126a6591efabfe46a1d0088a4d46da413bf7fae9619b5731b0d6960505cdfafc8bcdafb38da2f6", + "5f3886228750aee7d7f6220f214c0166c23afeb46216740901f1ac22e3d4601f9ea4c599f0f1b89179701c4b19d483b00000e4bfa07e92720422448dc79cdcf1e2128a4588de164f516eb802841b5e9db22a55ed73cb05ebd1ff1bf6186d35440da10b4fd5bb5afd3c4fea253460e2d5626b25408c685874cc7831de9af3b0e3570830e951b85d65c1c75146c03d489bda8a6ecc3a4ac61e36e4cdcd4663a3d4ef4f319d4a1fa72be5776c1823804a3d2edddfc72a0e7ef3124d77", + "03e9b5c668950f0229fbf5dd22715e426b2d08d9883433f634011a7e50e4cc60a6e562e1cefac4c1ed4c4e6b2ecf2c318d887f41a8516154df86733278dd9982024564cd498eedc8c86cb7b09a539c24e231dc934045a269285b999b5651252027a72fa7b1cc18a5ba30c36678f5bdfd8552bb13e1f05a0889897bf0d190062da1f752e1ba03b3d0b98f", + "502899dec3b74bd3dab550378b4797d4935a2f819edb089f60350e4ad48a2a85fc2a50b1da86912083e5d2df25006840b997655f47c9b522969d7073adf633144c580c1fd543db5e4836428fc7990a8c880b181892917bc611213415000ff2b2d8e644d23a5814e20fffb8ef91d3634cdbf0f1b3e98d0429a2920a6990eb14d754b16e93941fa746ee0b57d8166cd24c785c40ec0c33b9cdd1ca33aaf25d9c29c8ffe47913290881b2b491da03a16c7eab6fef73624daf8ca95e7d" + }, + { /* i=5933 cDividendBits=752 cDivisorBits=476 */ + "6e8f33e3152af85307e29c4ef8f82903e861aed38e10e623a9560b4c79ea4f688f402c562d3005dc82d292171cbf331dd6ab9f72676cc4b356130372b239202d8e8126e8cc89799ffcbf29fd4a493f68a6601fe8e63260e3427a21e0b2b4", + "06b8ed4e060c3b9d7bfca48622c27a1df8e09ed9f7d41c4809ce6ba204c9f7e4d2a326157ec32a4602b00f9a9baf7ca48dc69cc3464d2daa9cdaae64", + "10724cf51425c0cea0537cdb5454ff4199656a346f23ac7e5cecd0227da68e1dcd6e82", + "015c7cd3102c23342d2548754966e414dc5f1734ddbecfd049a75b5374a056e0209001e69d2e3cbc746032d18ef33b9b3469df506178ce1989d12bec" + }, + { /* i=5934 cDividendBits=3806 cDivisorBits=980 */ + "1cf651ddcc9095d8a88c26c824ed85b62cb5fb8908ec91efd91d9496933938052ac5423b6076b6fa152a39e8c2b0a5b19120a94a3f7d4030cb997b5ca33461885f37d82423de2f8829423473b630c962ac9200e118e369789229e0ddfe5bdce6c41cb7c40b2c7c818de0b703ffc6188ee37e4affe7a1006e8c8de45fbc52395f952a5694ba559fc971f601281de267201abfb0f2eb9bfa9899d42f3b9e6ff92ddb9f9f9aba543a3133a8cbf39e1b1ab76edfef68496c2d62645d377824f9a99fd165de7d4505a383ada62210e7eb891be808604340c90dd1c70fa938a7225563ce8c8fde5111e6f7398585868013a2dd28241a500d3b70f481413d0b6988b248f4ca05d7f2a0415ecaba68625867f282e39aa0c55e847b1e6bc82eaa486488c80c7db25c0f661bbf54cbfc3b62fcc4a115af18de538f0e13ed0101cf899b756eee674b810a042c242a0e69d50dc6e34e7f8c2ec6fb019b12e76228eb458f96bf2d21467a32420aeb81506d986dc6dc06a4040b05c985d5a424ee497712ee363becca2cc3a51d73b1386cca890028b2225093facfb519c4431b898390cbb76cc3cbe445a289505a57894e363b170fbbfd03cf8376dd7cc88acab9bb1e577e5185b216f7126e3824bee2ccc68b0d4557494585202fcdce08c44c6c2175", + "1466c167902bf68660daf0bb7ec6e20c450175420279ad8cdbc30e82abdff78184624ea5af89120c382fdce558a09f570707ba7d92f6a5ac78a636a5b2f85fc963460a551e72038637761ae1999381c529dda8eef74d39e76ee66874bbd0222c112f87a46abfe3e7bbb4d4c970e1927cf8551bb1fe355a54dbab", + "016b6c1c8b83b5fc661119739c956c03952cc127eaca6cd52930ed339d7c94c051b82fbb39a370b813113188087b5885f1d19da80c430e2a59bd85dd6f17604c5ffd9e350d3899b1c03af0bb6cee3a5d630f450d768505dc79b99f33e00ec85827fe363384355011c8014bdb36021da63448820277a3a8d5df10bdba8df16b55e6d88c66f8f4bb8c1a0b328f1b71139096354735e4df9390a37840615a99b509d59a7fbc338c20d79a1a38c702d3fd4a4ff536945764c0f880539e853dbf267d17fe3027ead63d2913d36045fb9b725b47c229ba70a38783469ed24db16760314f01e693b595f9153f031567914098315836721b773cdfb61007d4788f17b2d02615f12eaacd256e116f7d36c6f7af3917421f4d9d9436afa78e0d5054007bc67418715bb47e0c7c17073b33b639ae0d33dd037cc567e057ec8fb6dc0e3ba57cd72c63ea722e3ffc4388d72135f424a0535353ff90074d16a6c53656d14ce91f32311b", + "0943b251aa5b94bee061c757298d7cea989420b0cfcb89f9d6d57f69c062d356dfb5b205441f63b3cb81611267b8da926daaa9d42680893f96f65458e8056d3bf2305a84eb4aee2f51c8547b8dfbba26f5afc5cd4b6df53019b3058974d8c6deab845ef8b9f1e37114744f20877a17a24ad782f66509eb073b6c" + }, + { /* i=5935 cDividendBits=3230 cDivisorBits=946 */ + "13690c6a302e81a818d7f7d9c7d6683ae078e6d37f05c7bad505d63726c02dede30a84dd6757c62e9914eb879305ebab8ff5d804f4564e689bd87bbc9112bcc6a5bd3efbe413b9f43d6f7fbb1f32242d33911cf59b631a899afca04196c362c56fcb84ebf67b1ab000657e57b1c48068a0f52388731033dec24ab93be4df72796f157db281a13cc35c3e0e5bcc964aa46b71c0c2b2fbfe2335a61e7eaca45a3c5c1c29734a55896debba9460f0568f43274691a58e63f2da97e1e8bfc65d31263dd21339f5e50b992c719f8237a2b0391134468f0c01fd695cc1a5d4a5e774dbece986cac26b28f1aeaaf1e409ef3b1dca8e70c720d6c89b19ea1b576d82434b59811bcccdbaec0125fda62049f577561a9223d1efebac746b72e654a97a849741faf71c41ad5e3c4978550fbcec9693c5a2af742cf373b628c581fc8e49ecb6ed5a787da6f2f310c4f47b4d86ab1ceddcc4d6521422f9a1b2d7e4c09023d6fd3d8c6c87322563bb453c951ce14134aeb47e9e4c014b38774bba718444a365c8cf44b90a7b28b62dbba3f96ec0e536740e5cbccc", + "0100a4c9e1417ca2d0a8b94848a58180a18b7dfb99150a0cf1d20ff0e8cf8b60f7224565851d145bb01bb249798e61bfecf39aefd293a42f3895174d43b5eace9da87cb08125fc636e32c2ba46549a715ce985151e284db6f6eaae409e12000ef35c6323b48c02a94d719bffeac585a5029ed5e285f71e", + "135c95d578751b3baf830d9eac70a6579f2d19ab68512b8b40e290216e2fdcdb61ee76edcf2a2aeb7a52f81a95f4f4996d7488d6545f3639ddd9e774484329aadff51b5b6d71688a7ac082af4c931f5606867bedff0389d1312ddd8f75a9792243bc65c063dad28790674e2474ca1899f3f722f98f18b1290826e8a3a15812f40385496a9e69b4eadf2ed13dacfed22bc523734aaaf8ef441b3bdb2a0ee70499021fc81fab64e81965d230721ba5133ca2d711a354e73187ce358c4c9f2defe91d60879a24aa899817f615b21ad0e044e871f3ad4d442a4f83120419ae85d8ef0132a5f2558acdba6a0a6ccf86eb045f95dd83549f83f8eba44faeabd0ab81eff81e02668bc61a438a58fa1bd36254c5bb5ea181b976d98c9e88408b4a27", + "97cac7909ce0b961b072f1a7479aa22740d887bb7be7d2841ba254971f469429854cdee67a6251cf5961a1dfbecd718e279f213896ba4b332ca29d9367964badb53283c61ffbdfcdcf89b956ce3dc52b5bb4bc94d199ccd496f1e20fd6890a2c424dc7e928dfe93af4732a1b973f8cb9e7ef253b6b3a" + }, + { /* i=5936 cDividendBits=2438 cDivisorBits=2172 */ + "255418481cd99ab46d235b2ed0c680186fc0e3833993a6b3e7cd88198fb44e1e07aa5274a11823ff122830919d51aa6c9a851c6207c9dd3a86477579cf6499030f9133c5a3db81d5a62dc33ca455ccf72336a03b27fe92ebd5cb43acdbf9b99e0a097a286c9b3b9d11097e27a9019eedb2ef218e7b78996d4df9c5c0bbbef08ba93ec3e564bbf7f553c0b6ff47876889ee7e641961b851e67a9e1f549e2bd00d689040bc15df3934a71a983beb4820405f01ab472a4a733b1daadc14b79ae96b3bed7f0c49431fe4825d6581cf3b9058013cc3441b256bd5a6290e6e8dacd7498b84a24b83c11039dac996f78025d53894dbbc91e1eaad10c577066d8615161fb03d4711b09e179dcdeea6c6ce23d36f45912263ae8c757072b478c1d5ec4e5b234f66e6bf76efdadfb5cbc9525ec8bc4d", + "046fe9ae888c539a96d377d740064c07729d6c5ee1a617fa34e0f8653b00deeaf475a4f0d27b886bd707479108ce8733255e22e3f7d81490fc217d2cc9b072c24a71d214e705b7f6b1821779c6658247e8f2a68dfac6985d9a7f32f917d967f7741f37fdf7f0931f98b7cac64dab592e55adf8c4e1d8c8f23812ecfe9f9d71a16fa58b27aeaab495ef7fa261f2926e3570dd0ab9dc0a5624ec8832bf00b76236b4d392b6e4c940c6114a239f94b4b6f4a8ef6a78781561e826bb192f4b73cf9194943253ed1f2fb6885262dcc988262020359380e816870fce1d301dbb11560331a1daf124f3097fb13d34d0d19474a526b44fb1ae9af308d630510221061e53aba6d7b7ec06cd9cceb764f32ea87ecd", + "0869a6c4e9910b0175db033f702624a7bebeb34d2393a9fc3467c30bddf1c79a7a7c", + "017ef52ab80adf79d53e62740d9d636bebfaa50dd043a865e8186389146bb7954699bedab512addb3ce5f67374df5d58f6f0e4d0c65fa5909e8390ed7774240fb5bca6dc06ab0f483d481c326aa48c3c2b36c1db2383ee51d11ecb2a829c9803d0b9851e35d9b21c2c564cc631ac65029d5e10a35068a9ac94bf3b9bcf4798ef1f12be192fc463a26bf8faf8d10f35d137066379237d3c9dc1696163abd6517b68e7337c755e89065143f3c7d42cabf55945be55ed75b7b6f25349655ba40df74bdbb9124f33d8efa3be31ddcb468e0369f96a14b8e8d33b4543df69345fd2c79d3a84edf069cab38b4beb72f3dca63c647e797ce27639d7a285b0a7110b342ded56f6ccaa80a4176f669b60d66b9f01" + }, + { /* i=5937 cDividendBits=3658 cDivisorBits=294 */ + "5104346645561d460ede1fe93521b133a33312e0fc5f7d18c2604aa6caeec8aa9f2146ac2737db003fadbc4a7526b3c9462ef04f2e4bee8e0187b06a2e53f4ed4d056e85ad0ec757e9085fe73ede3c0cd02271e4043e09ba52178e001d837dbee260a6d6805fb39baf4a6142cd23b155afe6147fcc8d48e6b6c8d97f4071749943e54e04566a32aae6c0fcdb7626c27160f75b19b1a38bf8ea2052652b7562e269a06ead187d0cf6a9a2746c9ba47c2812825d5fbbe8f15e1e0be05732a06aff1d3010c63c0eb869bdd76e2f82a3caaa19b5cbdb4cd5c773c74c8fa1319fd155d80ef093ccbcd20dee5662cad7e880e4199bdb613be4a9b7639a889ad32e85734eed428c6487b9b830dc35da5f8fde7615a6795049e381447ef126d580f8a9dc0cf7db59163d080baf30e8c6f93b38f8a26b323e4ee39fc78dacbe6f6785be573e447ddb15a7c6e1def4cb417d54b09e0faf961721d95e2ea6f578d52933a5a0ccd1296e4974592c8724498fd0f25e5c79273e299bc833f5293d160400360f217f63ea09910cfda5311fd61ba17d9b62a460a3d94d680f3c1f9ab410cbb002239f35de01772deb7a77d7e69ee9b6333b060d7ba37d8a9d7f0c46e1620b3dd5ac8fb4cf6503f0631305", + "3d12b32cd74338ab2bbba350024c1ea020c591f0c3fb5ac44b0245473a668784aa1e07c30a", + "015398c0f0f20c952515e269ec222c4e7492d1d17bcb6aa35a03ed3aab08ef4e912de7d81d27fab6549561c1bbfbd6d6e999f85002c9603910dd0c7427bf9bfb8312a4e95e1723895088115fb7f3d28fc7ac611312f38362041a395398f929006f0c01e81980a0d86ea666192a53d845a24ee3c93b859306c19336d7fea61432e6197074cc60fe3236103aabb97fd8993c7f9462ed66bf251850a1c23ebf90bcf54fdccd79c4658a20a6959aa15af18190bd9be66871361be668e972041b3842a22aacf7f32325a64fcd0b5b1d5219569fdeae76b69d8b1bc9ab32f7c7fbdc434ba1e0dc7009e86e431489eb0e9035b068a2d261f176a812cb9e01f8659900abaa4e24703c57ea3b5b02eef45cb1f60b3aafdd7a9ce8893b26afecc1fb5808baa10be6757b305bee91dbe08abff284b6a3812fc413a814baaedde8422badaee545ca066d3f5bd0b368f88e846e6be7ff13b9c73c87408e050b0ddb0e945e44419fa8d256f80d9eb991cf2e3a44624f77d5162a84a1b8c56ccf3ca2f3d73577f4adfe48be2f2911bbf9a8d1cc94f428e9df50c0e8d5feace9023433ef0698fdb4624e0781a8", + "2e3ede2ebe07e53eff430711c9e499323a3423b6ab8c255caa9c44d07f073bbac6f0bd0a75" + }, + { /* i=5938 cDividendBits=224 cDivisorBits=59 */ + "3d3e3488bcbea67e174c761c8a505fc66d0fcf3aaa784e5d4ecb1abf", + "021b308096ae31bd", + "1d13cdc1d91d9c968930686a7edd42f03b7739e208", + "01a018dbe35bb2d7" + }, + { /* i=5939 cDividendBits=2102 cDivisorBits=212 */ + "016aebe84bfa442e2dbd82485c052d311ef08bcc609c5fa1a1c37afab789ea8808fe7c9e1d60b59eebfc15589b21434136dc53c5cc950bc6ffc6a03c6c1f101abc66a1c7a5079b4a0332781e468c84c25ef395582bad75ee1f442a5a075cc7cdcb190fc242030cca280ecdb0952ab4351bdb661cbc40862c6a0a322043383b4486d2b448a8e7e044aaf5e67c31b2c9505489b0b9c10de3884288f55492f867ae2d68cb7dd04a1e8f312ab2935b4468f0a3466b4789aecb41270215248e29643c3e69f2ff27a35d4ede0a50ff2f7a7379c2654f0c02c10128f1de83102b6722e0cce69d386e875a7e73cac31915314d5cf21e06f49d23ef7894bcc12d7ebdc3ac3cfc8eac817afa", + "065102fe9147532192d9db615c92cca1c818a02567dde3f1963cf7", + "3974e037ac6ee7ca2e83b8af5ad2c28a1b9f5648ea41cc79d37d52a81cb3fc61754f48f242188df99ae2a014f03a49489c88b0ff96ec602dce4ca6b6fa6bd0e8261432051045c4afc95977704e6ac40448a01325729b36b925b29e3c5a9d66888dbcd1fcb4d7531215ed42578766023814095750c73c31abf9e58299a9e177a068296c9ba0020a8c1db61c7ceb372b4f08b571b3a4f3edc3aaeb2ba91970a63b1124b0d4cd3ba235dac292c85c8b580edfdf6b9a4c3bec43e7b60cb17f43c6ead2367f08833f33af5e89a823be95b9bfb66f4b3ee611c38ee6d611ca5c5a9edbb7758ea1aa9584ef8ce84b31", + "049909455e6b9228b41bafca1cf0e0ffb8fe08d2335c0f170b72b3" + }, + { /* i=5940 cDividendBits=1944 cDivisorBits=23 */ + "acd4f9b2a0ce2aed97ff1cbb98c4d3acabbdf75219047984a9e4de8c8ada7fa48db662ce0ba9c8f664dfd258ac29c7756429c5bcee7567ba0fcfaa032192e957ea5529264db4e6b533d2dd524328288b53421278489fbf17ccd80ab33a8a578c24f700386e56b9baffbaab5b1757a3625ff7d90726c927bccff2f941ab190ee02ce7207b1571c9777eceb767aa6027ca1d07d0c2d02ddbe5de383dd13ea165afefad2b26188b190cdfd89361b315cda7b9291f02c9cbfc0dd5121b22ced701968cdabee464ba406a8f398ef7694ccb127a15024944abfe4918b86f5810978f636637b8123fd2256c2850123663732806e6424c", + "1f5591", + "0584085bfaa9215321fce652b30c3486c795bf93c248d08ca3dd8840ac8bd149fb6e0bdb25b5cef1bd3acf648ae800937ca71e6306f006709d17abfbdfb2ac72a695546fc102aae2bef7a0dc195b6ef703c6f6ac5d9c306fd899669acc198e79ef2522d3985a0ca9783859bb01731db019821a6ff7bed2594a8120350ef03048aaef61a9055a487e04e59a7c61fafa6f550e4975e7b1485e988420e7aad42ae140e37aeb4503107267d32ea770f596f30c97402999e024633c0fdd78afd782e7b158ac35952814525041afd19ec4fb8c3539c3919e1e7e6bab49327cdf06b5bfed3fe00c65022b0fa9d71c7b2c41f9413a", + "0a0e72" + }, + { /* i=5941 cDividendBits=2015 cDivisorBits=1513 */ + "5f6cd72cccd0c870d1eff9e5150d198eb6897bf9862236548ce0a19f089b0ba1bcb9d286bd233bd64b53c9fe6a4a459d862c8ac03aaa3fd062f96527542fd8431f421ae1c8c8f4639ba80a9e21f0e77228c616c9a07a34e6c42cae15b241586dd478246b6b4f3c2b6d1b8fc526d014ff77d08a44eb336d86d40a1545500f9df8bd7f173d1ef12c411835a1a5f62c30ccd683c0a3dfbcf7d97dc5425b2eb6e8cfde537d1ebe95ea6d9e4429c606317ae4cca32b0d207abf4be5d633972f0a7365cb10d953b89b2fbd2de65f6f3b66f6b171adaf8af256b3a552c341e76049b18e035b3127cd6a153c6ff425f5fba66f33617f4d06dc3b1b4c79dee95a", + "ad40090b3a01b5c6f1a68aff053578e4389989fddcd8eeef1fdb83e865b30a08cbfd4ad2735d8e12adc2654fd7713fa83ce0d332827af51756014fc6db5af463aaf7fa2f3f2489df6ef68dc8411500ec274d0b35674f9d127cb351ff9567bbb15336a25da83ba9ad41fc0cbde1c5490d7af3254b6847a3a329b3091a860937f650aa0dfa47db28c281bc84717834cdc0030d289e503002a4f75fc18b0dcff70eebf109a39a452c58dad8ad720f7f3466414cb615524a5b622bacbf44b3", + "8d00d8054cd09d4976a162fc2c56acbc2836bdba8e084c12af37f7dfcc876d32e949eec89be32c1faeb652c43203dffac0779c4910fc8105d63114c6d52c52", + "7a844cabcc8e4e37d37bd2f8d136a60f9897b7888b62ee57fed6eec8b3c515283e34f1b9b2d58fa6d18955e5042f2258a057cdfba05261173d3095f844f9058dc1e03d2d1039f2fc2467d9b3b97981fa9f94c69b038125ba19717a836636287cd748a0c7e848eb0ba49748e91af37954986e0c2fe42b5c69fc438072541c7016c319e794086fde21ac4f21564c43d0484fa663a0a15a9f5969c63c515444662ac2ceabceb17be917a6aa858c49d9aa92763e85ca04d869dc5ba9dd2404" + }, + { /* i=5942 cDividendBits=3074 cDivisorBits=1794 */ + "025dbec2b70b6d54b4797c61ed9330cefb8f8a1b62cd02871092b7cee1ebea9276f8e346e5b1e045630e9d4650cfa3ab495641d07867b64e3cc34d459511c909dbb373f20a845df74afe40ac04d94022dc3115d8ee489da6a5fbf8eee3ca4d705ac9594715b6e0a6ba05e92f7155b6b345d717507d40a95ec0ef633ea8ff40cf20568e1d5e7f53951adcb45a323019e18eb9564246221cdaae1b8fb5a1f0f4261014b140a5b35ddd3b103fbd740d7863fdd3b62a943e4b0ba910d3a5c83619652995256f1380e5b702d0ff2f52e38dd32449eaf6b50198750ebe03a5ed85efcf8978bbca52e5a353b0a9ae45148621f829dc2ad1f9f40d2d6f87494477e06fa65665e4682682f51ffdd7c679a7000fc91f68c4426d4757725c5dbd9c57a5fa7ccc2a709422ad8b293c56f5e0c65cb9764b27cdaf8e1df1f930fb2ea55e3eab7ea6bc20bc65f22430b0bd8c8df8a0f5de15f7acfe820e0f3e1ea0da93ef4603ce777ecbbaeb9448f7847e3bf07b64a8fa8cc5d2d73891ec8c3bc44ad2ddb926afe2", + "03187dff3e3b17c239b332b38a6ebddaeacb73f39980fbf3744ab04c40015b71c41f2afe8c67c5b8c5ae07575e1e0b08ece0361c1808d6f218839b06122101723dd16f3ed2489d40bf1b30abc10d3ea59ef8a4d4df34a836da42d840ec3b7f11a223962e127a5a575b304b54c90b5645803711561f53eac82bb50639937b800edf322a2ae01e6cae6d6e908b873c4efe5ca8ccd5673e587c6d947167f276ecec010fe81e8eb3a539633e0fb9fabf5f328a1f919e0521ee88c031f72e8436d2580683fa34fbe57d2412aed133b3e5e71240d03258d12d086c5e180963882f2e7861", + "c3acc0bb91bb0cbb2da22fed2701fabcee60f0bc4e70a9063889a7edc92d71011c840027e12fd5a05630bdbeabad970837397eeb1a49883b0c85ba39e6a1f3aa898c242974f59335ed2386d8fa73962f07aa4a268290ffc43774d869f65a0c1ba2ad2944d98c9bbbbdf4ba1290684da7d9e3ea37b15cfba88ba6498ba971da14df62fe812c66a71f649531a8050229df86cf7ca6ac7a55c1e1e8bbdfa5fbe999", + "0272f13c2944d536c2f32b7f692d1d0e60cfb9032be13b83dd8c2d709d78f1b9b22b85f681d41056c1156dd553c58603eba2cab10156bc24804f95633cece50fcc86efee30a79e966c2e0c0f7288d667b381b50fd9b85aec70090ba356587e58871cbf823ac3fbe124af84d3bdc39e3513aec89245021afb043cf3963473f0bbda0d932d65b69362fa78e10040c52845ddcbac81bfb6954f1ab48d6d942d6bc58d26747989bfe0daa6dd626c9ba1dc1f9bd691b976ce532d93ad0e3bdf34be7830f29d907a6f8c86030122b3c9a6600a37f1489f57dc82c7a019d675e2aeb574e9" + }, + { /* i=5943 cDividendBits=3086 cDivisorBits=2626 */ + "190a8463e35605079f9ef6f28143dbe20ce6603196b033b9887d5b9a4b726c45bf5b15a1b5b19187b1076e6e32733db620acbee12eca95cfadb5a6c7ec6b12cd3a4898c01a9a7dfbe0061e2b6d65f0ffdf815c15fdb213f22a57baf3c8607b0aed218c7846ea15a140bc30b53caec9ad49a397b743828e00573bd8e3e177124460b48ff27aad46b40e501492e8aa55d9c5fb5b1fec3b0e4346c8d021f9987952523335cc8e49297bc7595119f34605a8531ff0c04e68f175bafbb2cb198c16e6a565bd115d77d9c0f70620a767eba8b1226e1da2ba926dcaaf889cfec7ee181a25efe61516e3be5887f90e2325fe7c98fcf43288a04c57fcc7208bf849db5c7a636c4f6d60ec261a54192a5827280f170bd9073b4037be587b188401e9548a761be6e523c43872fecfc858a76576800ce50c2ee265d832642859371c3d5f2f32b6057be1f97472feb801c28d44474c2d30a7c1d6715c20d45172939ca43460beeb87b9f481c6a198b3a780a58be43e69b9e5f02f607b230f479c546b48dde8ee77f0", + "02387a1c36f6fbccf0ea35b43d2f1ad5f06d8af6bbdf5c5668dc396c00f1ac67683f1bbac68de3bfd69cd17df52228bddbe44072914ed23a9496139eeed6bb8d26a70a81944cd4fe7e8eb686a49113263a688037350801d5c0d12b022fb211cabd323c7310f98280faa5f058e673c180cf4c986a7846299ac0c4584f33936eb74c546be712ca3ae0b6ce73a5a502620334102080ab22a910c5f6cefc06c5f930a6531f978650889a89de22d7de714f51ed494ddfacc6dfeb698a311b47ae5b24d509466bdb611b037523294601d3f3b6aab970b6c61be87980e4ba51bc3d888cd3698d4a74ebd590a2b0a859904192b0842334615cefde78453547db64b9543bd5782d388cde2c0c7cfc1d58dcba8c6afef5ff37bfdd9d9d6dfdc7382fedee47687d4310c39f91e3fe09beb917dfd4332a10f5fa8d72af5f36c502835ae6aeb43084b7029255cfb480", + "0b46d2a842d5b7341596e0e0c85dc6a26bda4ca694a70c1db0bb22367dd6e43c6ba4d68bf20d809b6a8324dd465e291afdd3953bbefe8773cdbb", + "01aea2d0cac3031952c41c108d37259c2733f1294f17517652a7ecd3a9b96fe22dba9a877707c9f1757d503e1fbeea233e5752e92ac164a1d78caf187f984cba1f20af572c1fd5dfb231377ae9129bda926cfbc3d4674338464cb4a265eb8499aabd6bf076d1b1d24f7ba89635ba724bfa435f99c9c04e93e259bc279c696e20b87f98e60f7ab41e351028c32a0090e99c7bd900b23cf413efd4671b13295f35ba1269d1cf44fd7e991b44bc2a7d42526e7b08e509213dfc32415926c0ab684fe2b6ef7ca028ee0d0a525955bc8983e835fefaaaa81ece016bac6426c00784c3c9930e1da4fee19e5ef2778bcdbc525a5ebc9c304b1b27b471bf1ed04b3d3a72a1e27bb59e5a5463c7f6934d4ca28613ada2aa853b7150601a3e4512c598005d2894ff07e28c7e8b8963b908f1c9be70967c6c24443b4afba7b011fc1e19a194051d240dc4512b1e70" + }, + { /* i=5944 cDividendBits=4043 cDivisorBits=3076 */ + "06c484d289e17e53b66b9d0dd915672a76ed9722e6ae0a866737d62b66f6ddcf17665c35fb60bdec7b7b201a9e7dc86eafad4df1c31debe22ce94bd43b165e8e46a9c77a08989c74d9a13724525b583f1c69936237dadb902d87165441cbba5bdff47e655139f64a6cae3e676d8aff5b5b72774bc1194f39535fbfe9e40a619b98c8a47646a06341a498b2a071a4d150b59f58f0baa7f0c8037eda5c4f64d0962cc4a04fe368caf1842d8689fa2a5e96e0dc05fae2050b113f743278032d459f1af46b51841a643dc6295536e2036c985f41f0d40ba96097c5fa77caddfd296acd9e044d966a5cdec9bacadd669e07f41757de74214db74e9a1bce0612d214c26889f1552c91fb6a4b70ac9ff0bb26e15409fd5a124affba195764e004d1cd55dfe6cf970c4a181aaae1fbab70783ed2e3ef0ad6d744121e9260e31170b15e54a5b8c7f72ec04546883f5d03e31b7389c8baa67a2a66949c0cb858fd38e7281ba0f9a284cab541dcb79bd516a8b89eabe7cd64d42b6938ecb8f9f003e503b1628f92082abb39d448d283d15c1563ccdde4ddf1a62afaa97bb437397842f5cd78c2e890e8ed5c68358bf513f0590a2883000281e1424184e19ad30c081c92dd65d55e8b6f4802ad4f65f8abc3cd329864c73fbd096efd684c91421241962a3037c5fe764eb8bb82e72b2e7260ea21d828861a62a416bd0494f5a5", + "07a2f790d7edb90893d1b33f01a21dc6902f62e8324ae05ac61fb54762aa1dcedfe120385b84324b2ab43a64b9f43e28f64d08cb5b259bca3d120f21087b0736f71845e846908cffdfcb8f8b93cb75bb2aeb2b595aa5715dfedf3dcd246e53963faf5eff75a56bcc18f8f5392fc20ca0858e949a2b37ceb070fe9483d0b40d7b6bc0503a68be9aabdeb2d61484a10ce081eed9217ea113af4278bd9ff9791c1a84fb040c7b6b101215ea191a0da0aefc82034e7044c4145cbfddd4b116c5cf2e7093cfdf7be4bd62e4e3163fcb56416bce0024e14d72e4e3a6a0696c8c3a88a54f4e6af91f8c0d0640230fbc0159f0f0a90c8834cd4882da34527e459e834a7f8c6f71738648c353560fc77271fbbe15c1ac5fa120cabdef7672fee49378323f2c36547880eef7e21428a366049e1eb2228ba74a7e83609fa3aa6ebf6245440e15844d1484a3aa3472b450a3a32e22e2d99730e32b8d10ac1d6fa7a1e1cde1d7ec35f80d360811b24b4d9662a1e9e4c541f8ac996a9eee694ee4c5331a763615d8", + "e2dee8d2ff1788eb5657027d9ed3e628c3a6722e847e6b66536240963e285d7de3a5e71e201d867e0286aef550a3ef97447c17f68ae69b35161bbf7ee1f41c23adc482dc8e8d7b0d0d1c8f3159bf3cc1d0fc5b0390b442312b925a598c05ae78e5bf2b3e6204d5e4ef874c6c28fc2aa76c47561c1352faa815", + "062be8285fb426ef81c2a5aab03eee9a8eae0f8a63eed24ef40b162ef017393b67e9769c3185fd93a5f565e3b4c71024a1d8be68602e46e32dd992bc056d6a579f86837ed37d214fa1b222e5654834656a356256bb732d4519c93cb41520aadd18361592b908c0fa0026bea9ff80418004ee25bace4d038e5ee2703960f6c1443c20fcd9a5a0b326a2075f168717118f819152c4a39edeabc33018aef21b61cc0d5ae16d5f7888a01bcfe2d35921fc2027490b25d53678635c67c71714d4e2e36e35088d2ca5dd1a63fdea2e932d8515b07782a675cba7f9e6f40b29d6cb15e49ca97e17b308f12c89cf89f4ff34cb3f4425f39b1540fbf4be75aa6cc74b3545d0559aa73d3e684de91a0fe9b3b55008686cebe8501aaba13e0fe382349323321b54b29fcdd12ecc811d80f2459ad4aba0fa5c30f79800094dab64cfb1fa2d81620ca1687391c25e8c3755e2a9fc50b326631452753019045b8e99f9c09b168a7e8d8c44c962abf33d0d2f95f45378ecdf6951cdd4d2c4044ee44185254edf6aed" + }, + { /* i=5945 cDividendBits=1629 cDivisorBits=339 */ + "1b471ac1fb3aa451cdc59c6206f2b4c55ab0b472940625936c9730194dc0bd7504596b99663d8cd2a72855c28f01c791c5afce294260d384ea8e25c2f60c1af296e73379d76d617b316811133a04bd17b609e7b85e08256be9a7133f7c7e7e8df6cc5d44f4d03ab53c6c3f74d26f024479d875dcd8918e439a06146df09cd7d5457eabe114ba546aac20c7edd56bd9a806ef6aafdbdeef2cbbca7c6bdab3aabd7ba269a5273980e456c2ddd77dee0f8ef86bbbf5d514d0d9a2679eecf6abdfa2dacda7bcae00063c98a2aa38", + "0500e6c92b7e9e8e94d4da893f26680be566b0503cdb4a6f1eaeb758802c108dc69fd0fc9c41c31bc47c0b", + "0573a350e809c8caf69a0bdb0f8281aacda1d664ba0244e2dd49a5b4cffa9c0ce924147c483ea7675ab62eae78ef37a13846838c9bc5c9a4667deaba1fb56ea743e3265570ed5b6aaafc5e686b2df0fd83135ad1ff605f76e6eb99f18ec82dc51f05d0bb15f9de3ec1531796331388d7c9b5ec943e1ecfcb3e8fecd5e8199a9f2bfe89227d761f43909baaefd28cbaaf881404c39162beb31f6b5dd969126e5216cd", + "045aadf75f50de7ddaaada6490f6e5bf1e34b0b3f633c8429329e3276e7caf7e42eb0c61c70a9a041c6369" + }, + { /* i=5946 cDividendBits=576 cDivisorBits=100 */ + "c762edb0128fcf63c1589298572bcda7179ea805b6010495b926fb7934a1dae9c7aa045d0d886000541af93baee769a9fa891b5d412fd3a291d3c2b1ab0d4f582d5ee8ae490dc234", + "09ef9f4f00b52a4842a6667543", + "14112873d433ed55574d3ec5ac635883790348f19f97f51195090f9e610eb46b74526036aba1fdf793759542c5e230860c1f4d6bd1e2140b2e6bb298", + "037952913fa88d6da231ae8c6c" + }, + { /* i=5947 cDividendBits=76 cDivisorBits=10 */ + "0f9c65d050666b795749", + "032d", + "04ea65f6a703988d7d", + "0150" + }, + { /* i=5948 cDividendBits=3388 cDivisorBits=458 */ + "01924e4a426d77431994cade2f9cc97d3aac85652603908abb5ae591a5fbbd4a6a3af3a78095a2e1f89b2e72d12d1634cdab0abda1c014ffcec1727da950a5c24a77c505ca15f75a6bb3de917838174361cf9929b84d0219e7a9d8a5cceb6ca2fb764db8968bc2a00a58393d4e0272be74a1c5bacf63dd0a6d4d4b67cb2c701bce2b6729ffdd95a444157e012a47689147ced39023326beb1038c693c9e3d8d04ab668355c1f9beac2398bc4f12b27d404d64f770f6b34cc130290935e7602156d2b2b7b77397332e007891fe530b2da26d2e264b52fae67171eaeb6fbb797a0f86c4f373b4a2e57f4a3be7af9bd4488f6c9e6a5cf9c807022f76a654547aca1f19f371120138836fb3e9ba9e7202e28a92932d92c1591bc34adf6540b92afbf4442918ce7589155875a5f4fac05b2c87bd4e839760a2840f93445e4955b94b78173787ac2f4d793f9556c6acbbd4a78d0863c84c828b2a0bf2416bc31dbba313c4855e1d5b8dfb8dc13951108c4dad7ac508e2f55c97d242892efbf3afcb12950abf5e0f128f054a463f1f310a136cacb160030a06fa1f4e2ad4da012821ceb6fd2252e77a52751", + "03d4f031db1221283e9d01e357f4560553fb6264b5987313d5d349a0f2d45227b990adfbc965e7255ec27201cdfef7d56bcc781aa8d6d92216d0", + "68fdda568b37a0d5063610a73731532c284d9673e7fa4f8300317e3e1faf38e2cd69064b87e803b11b7f5d7ac8e9ffea5597fa792c877f2a93679948ab3cae8980937bed6b46438ee2376b06274a2ac90817ca005a202f7e839008e914b05d72f23f63c8c77db06b503e0e112be5352ae938f556e686d46e0924501c6347b81c1cd5c754aa4892e58d01ba9d52d3841eab3aff9cd454f4e5a601070fa8176bb8fb4003869565c17adc0418770611508fe9af775bf3d23a3c002c4d0971635a97f4e262e619d7eaf8b59ccd45753fcd1c44e092b7943c5c2c572ceaeff4309aa6b2287058a4b045fb9708251e83954f31a599cab8398193bbb07c74e308b0e00229f41b65c7d6e2eaedaa5b813842a6a37ae7e91f957c83d2a09a01c55dded53da20529b4ad626b3c82935b48ee4de66800548de8c376f72154549e120e4dc9bb5dbcea79373c804a203a401cdf7972a3cc3bcfbdf8ee9a068dc4c21668106fff93e0d264e6e31a66603b83b988d7", + "02e184a10d43e1cfc0757faedb80bc1aa7eb9cda1f648ae87fbfb97a21b2f54a621952bd4bd1a93bc209d9e288e28cb0f5736913982513957ea1" + }, + { /* i=5949 cDividendBits=60 cDivisorBits=56 */ + "0725dc92559d5c0a", + "bc8d3749cda4b7", + "09", + "84e5a0bd62919b" + }, + { /* i=5950 cDividendBits=3774 cDivisorBits=3459 */ + "3e744622437fce2eac378722d276e5521ca8c9204f8f9d9ed9e4a0a5352fc8d4c2b6e4b3324f0931df33d1b5a135d17d97e3c2c6ed2b5dbef55e2e3feea5383ef41616499b771e51a4ee6c4091ed8b4f0259fd97c4f4522631871246e2814ee070c106b55d15388f249502e72036b79fb29eff1c62bc29620939c35f33e3ecacae867a0fb23cff701b1db6ca06296dca8f7f4679985d5f7da9313ea73bb54f1abe013b8200f13c53bb3f5635f604dd97dfba50bfa25110ee37d6d1a75419e2b1b3ccee44254aad8d41fbd9b955314b9fe43b85f9fc19281b60a864af2db72a2f06345f4e1bb5e0053cf8c3f5426e83baa149acfd76f290cc3d1c36d86bd8dcb893efff30f42c42613ac98ca843eedc38ccb5e94917934cde3911c99fe079eb17929de38a307b24a7ad916aaff288872c1cc39e8331e9a37e024cb3ee87cabf797024c84a545913dd801e7670387992a251e2b5319cb76febbbf8e88a9bc416445cf3bb7d7996b36342b8e47d1badeb3897d245a16fc78a90a03762b13f11c47f718a3a04a634ceb45643d1f08d89e26c6367423dc21ba8902c8854d7ab14044e67aaf242a8a2ebb9e4cc711d6feed16bc0065e1c734a9e9ea5663a8dcc2b720c88ed20535402c590ac53fc1d67b4b3196cd247f7364945af", + "04d6c03f55d47b139663a004876b4f23a0c0d3464feffacc52ece751b178ce0f03854c49f0e70aad23e5b97c2412552ea41b486a7c56163e8d5ee6ff87d771091fe76adb281134bd3f4b4c6d00c5107115090e40661d068e6ad918a5796003fde85c20c3e73f9e6b7a72890f50cd6146a25845f6489e5d7ca110d1919d755fa4303153e6309c6fe7c34cb7b4c224f85e7a619a34e2653387c93771644973176da4250d7d18f33578f4eeed5074b3a2c610f8098030568f8510373811bde16cef3368245966ff383cdaee96684b82bc0badf64389c2b95181c00810bceef401e13b6e3077176f380620ac7c66d9897dbceb153410fd4122925a7e9b3cef41fdbc9caeda994a09ae77e38afaca86c8c50e88ba42b0621936370f6173609d6967adc82cbe3d7e4834a9cd671b75b64acb4eb86d99db02f6a6a5c485994ff72c76e8f976c5d963bc7e4c8938ec8f8eae0c2434803bc5cbd5eed4a1deb4c19d807075ee144ee099b15036151a2bbfe337883b424e655ed1bc837592962365f03a5bb3be9d319a4393c871ccc83cc8324c3cfabe4ced3651ce53dce6adb323706a75801c2a5fcc566e5051d4ae56fb2430c1905f", + "0ce822162d38cc5fea968505ad1396a1cafaa49750c49e9df291b478d348cc15d7c5af04d6487c26", + "039239b1135a58f672858f5c0b96370a435fe3782b4277641b2b6ed6cb49ee32316b1bccef2d7c103e82799e6b06649198954bb42dabef110d5836066759a504dc6edc15ff99cf950f9986a0f2cb872f5417d526dc4e67c385cf76d07978dfb1699ad0d3418cad23041709c93465b7deef5d5d1473529adae6879cc405cc04a8ef9606ced2db6533d2494c107df40c094ac2efd1680c2548d85d268dc02900a444388b872aa3be623bced95dbb6bd6e7365400f4a4ce63f7fd25466113dfb1af3f419f9aa2f4ad98ed76235e84645a790dab946c95dd752d851b505852f7f1fac5c177a320881b22f91880464af513780349d5144db6ccba4b34a788aa7a5b70d74a86dbf95598de7eb3a8aef58baa935223a6811e352f33a16ef75b5cb5d79e3c58dc217675b1ad8a0a91472856cdb12722da6bfc82c773b423392b029d498c3c591984c768551f9442d6958e5f4d0f6b85264889162ac16dace38b161108480697a3b3bf45136cc726d1ac0b3465390855fbf7e4025d55f6e2cfbb0706c87182be0118814eed7c64d643235be845396e96b415a2c1d9485ecec90193c308a35b6ea694b7551d7fca9081c15e32e7d395" + }, + { /* i=5951 cDividendBits=2251 cDivisorBits=646 */ + "078909b2570b21b6d397365abd8bf067a5ec2a25cc4dc239c8492285d005af2093b1e2a738af180c8b438cc973aa560882f2b5b02d92c6fadf518e4c683f283ac6ddac45f957ca2c443ed7625d1d3d1a2d3282ff3c75a90b5493645667e46c47a176bd6fb3e2f6de52c7eaa7caa9dc707beab6f8f07a8214970e96027d4844616dc5c5dcf5c946365f391d6290b5b4e7e2584695fc614a3eb2af8cb6c07a3fc2893a19de22a7538cbc7bad17e1c74c46c9e0bd662ae0ae94f4467016751e37e305136cd0a9a0e8de04500c27cd31cf9226c9da5ca761dccf0080cb7124409c1e32540c47d7f9962d2f065ce5f275d65d92cb9b67c6c26326bf89ecaa9998868e457f2a9b2e832644e7b076f67c86e267b92678a6cac52418218d", + "28f25aa94c5308c7827f140a69838deb43238c60db8af70ab7da8cfa999e482e502ae4d6d653434e777d1af0eaef50fb173283020a44e78ab027bdc53ba81de9ec356331e06063904fb8a4e8bd9a414b58", + "2f1c676f7cc0142a8658369afe352ac4abe8393be83a8b34d098a0d89ac256ff096222c02f40a465f1c3612a0304cca53a87c6ce406fdc34e2e40eb6f1514dd916ea38346343992ab8ec89061a303b7613c662b6c42933cf60038d633bcf52ff5426320ae491625df07ee1450c05340c1fbe539af38e8468cfb149f430120a828090269b75d4e28f14d76a255195c30b14889ef1ea8f5922b1a164113ce181a8c7958fcf331e7278f6ecf10f45fe5c0692dbb328fb035315c7c022ec4d5f7bdabf78045ea311502017", + "187d7db496502805d1b828d41d79e4801e6f9b92a61ae6c6f474196a1e00fa28db95728abdbab1d7434b9fe5d38503c6238afaa437828d17307570f46b205242e340c2a4c5355c298f53a25b03bb4f5ca5" + }, + { /* i=5952 cDividendBits=826 cDivisorBits=144 */ + "0371a9af4642038111d7da56946bf50f13fe798fd0d31f960fdaf6ecfa663304915842174c8af11d865de16ba2e5f05bcbdbd07a6e9ada36f466822ee3eb147003060d52ac59dc84003f94a3e455392c334ad29302ccd09b679bf9d10e328b16646c1923de410df9", + "a8708977242d31b23db4aa54df7866ef5f10", + "053bfade73e68831e0e597713187bcd24ff59ef59c0de40167cb2a91f9209bf70511b95657c6808f2b6be2218b16767abf144a2d3bbdc7fe6d0298225287efd4c6f4fc3c11be9021a76ec0d04b3264ebc5db91eed915", + "39215fa7d82886ebd632bf2dcaf01429b1a9" + }, + { /* i=5953 cDividendBits=3299 cDivisorBits=3250 */ + "07bec2bbb4b5d092384e71ccb15297fe4c9cec758b066b26b2ce9fcf613f978a04b0593822227604e4c3c5bccc0baa73fdcc9c03123674778418fce98a85e504231cf5bff0d1659451bd31451722b808addd9d488d492924959434f77e3098a6bcf43d8ed823de7a18a710dfc43c527e67c567d41531ceeef3784758fd538d06af6fb92cfbbed52bba382bc7459c8f65ff04734cf5b74574be49523bf865f09dceec089c3b37eeb32f33a582751ef01a9ba417bbe44fa782aed15da2856db0eb440a8fc7a479cd22ab483139ddb32b1f89b41bf681a53a0e0e57491608fd1cdac2a356cbd777eed0e28125f0f553991f0dbe19167a5d0588f4b83aafa38b8e527ae4c972466a5a24213db2a38e4466c415207ed9e83c9c0b68860f19ebed33fc9b5460ad0d52728ec62a51bffc83702af0cafa6eed5d38da25b95f8646a7f749ba662186ba29be04dad0e68a782dbdf88a7da08eb942bd8ea711e0d3c04658ab616d548a03d011097b87b2d0eba67bb120c77bc5b645610d00de5aa777e6f6c94f19c406a4175a744329f601de454e0a2154231e124864c22b3c67cb2d", + "03fcd90f3633e24ff5419749915cec230abc612d6ed77ff122b76728bd15a6dddfa02ef7d7ce2971fcde443d9226e5197cea1b2c157ddbe827d3f301dad546beede04ab7023800e0667d7720cfdd6ba9112154a18afd5629d56e53645466a37a1d8844cf55260c6bc6893205ac566702c1c8f9fd114276097c0bb2802c776aed981032d6dd862d99c7af9144550601b508bdbf1f5608f8a6bc6b87db991e33a3eed0ffb7981313ef9610c2f811b89401cc35d97879d057cae93f4b8b8d76ac2dd261c48ecf02741eb770249f982cb54d2ddf281efb6bf01c3e31267d14b611d2c4eac899560859e323086b74a00615f43d0a89246c21869108963728088ece92f99f86bd080e28949828ca4168d98fde1ead899bfeb52c2bce64b3f3fd8416777f7167f8de0fe763014f4899118020483db71ceef05260d1ea8cdbe94861d2a5bb62c1ad89337ca48d7590f967e33a15d48219b1f60133c09cb90cc778ef1f12ae742313d27160a7b713219bef9b687dada1cbd489e09d6adb9292fe371890dee7a4fd45b4adf5493f4933578194b34e85a5904cb442dd", + "01f13881d29797", + "03e4df20f178e227deb4eac0f0576565be10ef3c048a211b631edf99761b3d1c3437b96d9da838bbeca955d6dd1ef06623e69f418150a9872ede93c25c9dcce912046b0a0e4627a4aaa730c77043584c5650a49228d14c4bf0ba945f4423ed92a8173da61e86eafdf5aec22b54e6779090f2581f72223ca7e7937c92e7e59aeea7dd2575ef89f4e35ca16633d849bdef630c5620504728f124e5c3c7f1597cf5347a33c43e29949f6112df063c346a32363f4c8b74775e022608ecb6f6a2f6facb18699211056b974603f1d6178509e677e4205018cfb65cd5b074e803f698c07189b57846900f733b8393933ae25fa7357afabfb24c318b59bfd338ad891ebcfc910e04f4335ea06804dd96c2e177d037d1491efedaed829b091da53d9bbab13c98a78c0cba0843a47f9a32333b2bbb2cafc8650eaff692d64ce9aab596f8f2abcb08dc4036b1f07db31c189bee96d7c0fadc890353c09111c76bda6b6de20ec11797e3b4aa13d2f1129cc058c5c61efed13bf1f893eb7a91b3a506a1b5d1fd44440649b40e111b8ddd564ead8673dea48de77459ffd2" + }, + { /* i=5954 cDividendBits=3950 cDivisorBits=3367 */ + "0f2607b472972a6f089b02817af7a28bb0c27f7994e66974eee8d2e9e7997ca2446c02606531b2faf0dbf9f6eddb1e08ee44023905ba79f7d968020828a7d4d70eeacda22511d19e0587e599afef9a0d5ab1528468f12da48f4e74478c16f4b578f8dfa4ccde00024697449cda7a3bca11f4fcd2754704ef80069a55f5e4fbc0e02decb75b3419ef0f37a73b0a118cddb162422249308b418bd5d4808c5c8ba7c16820910eba6b7261b6482631933b3c88fbd48ec62b07269c343eff6c41fd3889fd9561ea949dd8a5fcbf759339943f09d07e394e3eaee99989fd73a3f897a65a16dadc838e40e8555371bd533d216cd2abe6564ad14047ef17cc93a407f00a2394b9e8e956ca33b0f7a8539cb8eb3dc9679368af6703ff1d99b4ed8b2f9b1edf1594f26c06bb42fdbc83433e01f0ef916365f147844f41ee2a5a1d8fbe2aae39ffa912659e0670c3949f44c420dbfb145c9dd476486dfca77ca1b6dcda450dd02634df3ffc6fdfb39671f61f7b9df43ece5728d49552fdc883b461420a0a086972489942b88034f469998f5ffeb67adb19eae93cc4d770afe04d936705f3a56d1c7e9c157050436cec414b21a829ae045fe4154a1920fd6b0b8726cf2433a63be9700b73a4f947deb231e45a43b9d86788c9ca3aca946fb0b2f3f671adf90364c1d4196e887213f7502b9d8472", + "61e8e93ee60f21f69e97f1b8243baeac97aa731209392799030e67f2b729dd61657faf1af02b59d282e0feaafaad5f2d94abf1ddcd43263db906fb4916956d55cf65963ff389c32dc6138bf26bd33adb266e4c678f4b4f9cc095e655f4f9f93e84321b48709590e4f2e23a46908859653f70b5a961a19b0abfd60ef9453cababbd4a6445b0816f40f8cc0d2af36769cfde8032ad2f5837c424ade04e89ddeffb79e9ab899a8c060eef5759bc6eb661285595b71682b7ff0c4aa114342b8d967bebfd83ff0a476e57b06dad0a99bcda28a9922df68317ba2c73fef685ae33cd63c2aa369b4ff4de1f5fe7b7f60f441d6cf6e97b3530a51c4ef4978e1dbc0592f609e8870835ff677a2c06c3eddfa97905759105cc7b1b24be06dc2282255251be3de2a1aa0e6db7df1b09f15125f63f12b94a7810e6a26e243a48f1be8ec46217c44cdd6ec8ad9b2e12950785720ce9e1a0233fb9e7d880e4d89511edce74d66448ca6c234994ba6c5ca7c8fc438f2c25bfdb4598bd39a5ac2fbc2027428070148e7879ee33e91cf063bf72ab73a923d14e4931ac562bf99f4986edce7ab1fbc8899303d5d4", + "279bb230e2744e275f7e2da6ea55fb5a015ee3ccba313cdd52ad90ea8a0d5ba432fa89a27ae98437af8a266c6a79f9405e5c566192ef947d3e02dfa37d861181d44ae74eb9a81c858e", + "46b580ddb4598ef048e24630aaabbf58daa83b0280194c2e180661610a38d2015f59583ade65731db961ab981199e8855ba817377d2c41064444ad9a7f9285cb47529daf619239b446adcc455c36b94acac4b3b3d193f2f83f83fc57a08e32605014667c49c6d7f59c8b0de2dc1676e0091c15fda78dc34aec966bf6d530929e5633a030d19b7682df946ebc79d57355813b6857f0ab601f116e04ae89b6f2df06b72ddf6b3502c9e986ffc1959ac275541894f6f2b333a9bdbab4a05d472fff3176d9836ed97918175b81d0a006ba5ea715a8deb47f7c1efaa94b740f125853d7ce633473a3818d4a6560c7dee1cf586cbf86a52603e589e02248b69ba95be003be19267316039c672c5847f9452b870732f77e9795bb9ecca5cdb3e2deb31c01782f4c41aba9d88fb873d3d5c60cc5fbf4bb628d5f405cac82b15a28cc86e1fba8df955b5003316f3fa0dfd51093711bf188c3e286f6b9801eacb08cd14e97b717832f5df8509451b7683ee0138e9d259424443c8bbc7f827f7829f685d09a5f6f7b3f1b5f0e2ee83cab28604fe5be05d1831c90baf07b986e00f2d20e7c8aad1e35c4da" + }, + { /* i=5955 cDividendBits=2750 cDivisorBits=2599 */ + "0755f65e89b4cd3113c03d2920b7c2f8c77682063a554a5685718f2d2b608c28214633d24e48eab47ec3e5aaed1e3c7856ae40527b70d01b47457e58c3a7b7c292cd2d08480d0f8ffeebe54b9b33a015fe28bfd45a6be0de17ecb57ffdc106e5c3e8bb730a95ffce33162cd4b1207b2a5c86f32d99311cf7215eb7f5c5fa1f87650dec5840476debf91c941be7a66588036278d7d202fb0634f2c6c1d361240e434b06016fbc4561078d3586378663a1f123ae43d09993be32e317edfe08d888c8c74c76012c502cab5389106ee34158fd65a519b86d8a4ad3b0898c23911ca7c3ecccb5d8936e65ad94433effe0e7d2d81061ebdf63a4d40499b338359031fc2ccf5956b2b18f3e485b8648cc43073bbea03cc72637ca43fc686780efca5a452ebc2e05718f6e39b45122250e0f91b36525d83134010d647a475e7761d9efc21ebdf865853d4987f2f10633eba515af3e1de7e53ed528a5", + "2827e3da80e036dc74a95316d65b02e3d0a8399b9516d7d7a1551ae2a146ca60c9d728a02fac9071a10cf35697ff44b33b2838c3744f84bd1a3464c569f6157aed438ecac7a66564be341f7eb584bdb5a967912f4c1c6ff15ef14d37d665dd1ac9025aa08c0026b4dff64650505205f58095de6e0a46e349ba3f59279a8c9e7e8515ce4126ad140d0b09d48f91084c9965fc5811da5d70d7b0c2d81c45c67f2f05a79fd45ff0c02fb0da6055e97857d87895f6195f44c9e822833f6530c84cc0d8056402d62b17e6858aff60e1f3ca203f5f9c49f4f128c983e1a585a9a56f241147382d266fa1e9c838bfb7b453198c5d27daee9e95e23d9d86dad717a8424e4424bea4087c653a1bc3aa5b4390ab9aa5e66023ecf378d15ef8a5007759d88b536f769ece9f91162ebde7b947a9950cf3ab13e589a5e480e8050c66ca4c40a73d78039d9d", + "2ec452268e7ee5163226ed560fadfed3817dca", + "036e31ec7a600a2f18d421e8eae5d739318215de5be194ecf307d7d09172d918b25d166e43ded90b494068e0ae2d5d94705a62cad509248f61b742dcb177f7e0ce09f9f3db70edac0d65480c9063f82d1426027ce2f704b22739ec5ead0b5d41fd634b8664ec58e9f2d32e415dcf1ca48d6a3630a029b447103141f2fc3e23c55a7959c38663fdce1b40e119c8fc0819a31205795390b0cf5a3669bf712a89e64446d9119a71e944f3e63042b75ca2861da53d239003218970fe2c7f3d4d5c49c10c105dcfe3ffee52ab6633e6e9e3577ba38b191ea58e1b6478ed763b001a7778723f7e6c169f190e6016cfbe111f3a1e037702c9ee0408736192e1434829726ba838be36754b6634e8ba2d70b7c1d84438f40774c14cfbe483de932f9bb5d10d650b1d55a810f3ecfa50963e08eb7acbc157944ce87c670ea1638bce123ffe49f4e821c3" + }, + { /* i=5956 cDividendBits=1193 cDivisorBits=1077 */ + "0116756a500d82bfa2e37a9215819edf590175e666c81eac0aa27e911ee3e8b3ae28c4f0e98116d5bc69beb353b3ce652b16c87dec0e56b6b9a294f9c767c50643ed4bdb36f45ea84b1f1362be7c915c54257f7e1d0d6b9d2916433cf767f4026869f5d8fa8b7be868f47bc2af20622270c9ad3ef444a038f87683549a2c482d753766a6fab7890e908f8193b21f3560a2ace6bbe71c", + "14e7b1129dfda7a4c3a81969928dbb1f4ae64f2dc3b04a643d2573a881561adb4861808688836eeca9cb5d0acaea95437665aa46ddcbd4c79a7392321ac170954db39136baa3a7c4909ddc3b5bf4c8e5f784aec51d00a5bf864d6d04419addacdd2d029648dd17f15dbc2a647d8c55e47a6290034d5cc446a40fb4b864ad3b4320a7257a006ddb", + "0d51f652096cd2ee42472bd2555b84", + "146a853dc813357f1600a1b14d12aa8d5be2a415c7069cdb73747c28d3d98886c751cd839b9891bca764104d6f25ea73ada46330302915d58a1b206fb1f5262f9e4a21ebf7139fe56583f66a7214386f52e96d1b3373cfb5c6e552b47f21a0b376dfd4a55a61bcdb2c1bd854c09c294352a6a1d450d94901fc030df90567ba369a13f0b7bf6930" + }, + { /* i=5957 cDividendBits=488 cDivisorBits=356 */ + "d3f7454d9058b1f4ba4a5d6d5cbb8d1dde3e26461efdca7b7e89848308b94561f9473255e2b21a65187f8220e87a0699e129079f91c54bbea52cb4291f", + "0e14a707749d53fb2e1596344f5957e88eb2c35aaed978ab4d1afbda0b8454c1b5c4fa3d30c87187b986cc251a", + "0f0dbdb84c3ff86741c4807f62849e3260", + "04247847669aa41f5f6fb4a753585daa3ded23ac122818b048571e58c65ad8747fd6115319aaa60daa72db2b5f" + }, + { /* i=5958 cDividendBits=1357 cDivisorBits=111 */ + "19d269ad3c46a6ebaaa72961f5b41ca812ea0bda6db0a31d9afe1f2bdef2e1fcc2df6a8f523f12897ff011cb5d26e22c3ba4d11084ec954532826bd337e1760455bd9664b5e6e5a4755b18787b146d737e60dfe12cb2f7ed67a63bcb1c1e8fe19d9ed99a22d8fc35e1967c5c5c754816454cd01d14afc8aa6a660860e0a550f3a8811edf2a52bcfb3996dd4d689141ba0f9855c6edfce8f068a7895b1bdd82b63bfa66dc198c2f43a285", + "492d289a2fe4bfcabcedf49c4313", + "5a55d6d4b216726c86997dab09c6766644bac676ae51a0dbbc9bb2ddc4ef35362ca67995889ccc636ac0d13e5fe535e863ada066dee34b707dcd557e61ee6163f684ad91d4178e7525565157eac4e588ec916dc0e31df920108552a355f8aad2ea7f73b6be98bcd9d1c544c1622967c15a573144ed20f5e59d143c9a5ec166b35b0b47d4f38e964cd99989a5318d8f10fddb7133fd56ad2a8aa9ca43", + "e9528f252e326d54d357e6168c" + }, + { /* i=5959 cDividendBits=652 cDivisorBits=421 */ + "03f628a3aa3ab04bb4c5d7098965616078244acea80026f6213fb2cc13cc5038a8d0c2c36cf36e628e401a3f9da895b0340abf2f9f9ab40d9f0c23a0487b08defda5b7df84b0d121714b166735381b3c9a34", + "1f97122babbd429f8576f6960fbe0e42063ff5996567619d98ec132a880277846ad1e9d70e9d298f51cdd7b84e81ee0a1bc47fd776", + "201a89f747a875b1bf1b079dbede9f93cc312239af515d48f1dd293850", + "01b75ab9841b8a87ec0e356eeed1346077ac0d41bdee313ae7cdac382b4df09ed5394519cd12076c554b6da5cd45e81dfe5c417554" + }, + { /* i=5960 cDividendBits=2971 cDivisorBits=2152 */ + "061678d9cabfc660ad42c1f801853fdd4e6c709c8562e83288a8e6f780a36ca821d04898865e5a3a9868d4380adb520796bbad494c9b9205a73788e031ebab8ddc849fdb07b7989f958c2315f22a56644111ee5e7c0a1826e1b97da52f0b0f05ec1f41a10102307fe66988a7e8965da6d1f801520cb3597f9315f070e9f9f7b689a152a6857a33c3e1261ff6bf9abaf0339bbc46c4d755d6d05b0e14188f6f97adf0ce0112c7b8ba3e40c030783c7e1091600e533f236a2f259ff7c865b302633292e2cd3079ecd8e27915e32ef52a60f5a3eaa0ef22d24073bd3d76f7d0ea13b9a9f5eca021a483b53762c2e0238815346d53b8f265751cf4fd9412269d0ce8d618dedc355d8de96e04958dd8d3a45392599c08822454093a2ef436f0f8c5a44708be68c2cbbe37ee8a9c2be638dea38ea3d5f21fbb1d594907e861deac4d69cf2dbfe2ee2387e5e29159ef7e4bf11cf004acfefe5853fdfb53de32576ff6952e54a5ae766e625cf818b30a3ad740ee0aa78302", + "698b5f3c433fd155d05b98f3533c44664d1b3a2f238ef6369f020fbafa2e13b7e344bf33328c22709eeff22f1f3e9e98f3b5ed047cfea268569f7df6d4fa2d818eb685b98fdba75dc6e0d8c54292820ef4e79bf889f284aab29c595d5feb0cb9840f832fae9986f36b5257be5a8a8ccd38bd4a56504adcbce3fb2aa24ca5649444c3f018b01aa1a1d6f2ea3be662a779743cffb3ffbb19c9c7bd3593110e283dd7d1cd6b30d24f464cf54a0a31ae8409972b0220581047d2ebb0cf71b1880644867fcdc98d6a4f8e092c0d52031ce947fcd0ad72edd110c539b19e753f6a1b289a55be962974caaadd959eac110ffc14d64f3019177b5d524767d8223d001c1ec161196630285fcb0c98ac9cb2", + "0ec41a8670521b9ec631d4d5cb087c0ac3632dcdc1839d95454f0d7d89c92bc7d0847125c4a45977e0a00527c7d4594f35555a9f84be82edc25ec059fd57bce203df3f7df02ee62079898e4d77baf7a5be3640881efbfd23bdf16f6d5ff3bed9c3cafd233c7a4a", + "5eee94d27f0d216d3c1251dfef0c3cfe768aa860b4a06f2bcbd846d2a6f61194d2b74910d01b2aef495d2d3033d183394d2bc4738f34b67d2c1db6098c9e4ee66f7605f5f76691834cc2ab3a711fbc51bf6216113e7f48bcb6d7daa980dff9092e675046dd0ca39f4a54d3c597fe2ce462f3e44b2d667654d102ba8b8ded9d1f9e9e5d7065c421c385be2ddf065a4c5d4aa44788c0e938189f84f854613796517873f1a2b7b6ec92b2ba5989da9436bae81f0311b4cec468ce1ebace2e9a354d930aa3c3b677c47644de8c9a0293501772f07b68f6073d50e5ff1dc4e73b7bb4221b85d40dc8cf1c42de34b769004da0111bb195f7ba0842242fb46978651ed78255722c5544bddcbc965d638e" + }, + { /* i=5961 cDividendBits=4087 cDivisorBits=1901 */ + "73bb9950c394a243288c76c6201e3defdfd034ec79087fe174d0fbc9895110fef7ca5d946d3a328e43f9693c511a3caa13335564e053e95a3a1ae1c10a9c436b15bcd6712abc26f87deafcea6fef6ba8c7003ecaee0f52a68bd956798c9ad3e76de9ed3e7d8a0249676c2673d3e100553bda30daa38bc18331b4f22dd1d3eb15d8652b85a4ce01159026ea8384f6ad21ec08ca8d16b4da45a98e560ba21c704de14459365b0b11803dc4d9997b5eb5be5cc6c6b2fc2cfc3a7447c33bd4dedc0b21f00f266754f15872ea289bb5ad49379e5f25ebcaf822b7a1889c054a3f043bec53eec8abb373aa2144c3e1378aad5b47e6e894ab75912d396e3d20ed9eece1d37c3b09fa637c981069d8ea48a324d676f1bd4c5215f206a4bb92441b7183bce71c5fcbacef5d13baa1e5598bc3c4164db0d373bf6778030cd43536fe80af5664562cec8ba364bcf49cb42b73d800a75d7f3ad0aadb12de8076a57860059ca05f893ad40df5536d00fe15db073746309bde43409e53f5ffebc94faa90e65a32f1b5d7c829f3b36e350bef464a0c1404affcf70224a1bc0b99e576f8c22bec58c6dd1044c6bf15bcedf841152a2d63b83eaf8b083cf54583415ee844419ab5ea3cca455e1eaf27a1299ce6f2f4b4855a8a0d53b486d9f2823e7d5f836b1a4040e545504f9aaae02120ec131c0bde4ba34cd2a873593d4d931be5d59bac8502", + "15d269fd7424e88e34d2b4fe66fe920171abb368f2f32b0766d7daf278376e954e9c196f74049804be961ffc4c0d98eab4d9fbb84645c1294f69b976794fad086482ed7e919df8aa1ba32fee82c05abad2752878204e511feecdaef4c61f8e8fd19cf9f78b82c2ee55ad96b69b7ec2d83b03d301a97fd1ce24815d3da9fbbcf293c6bc9bea0f9f345d65b2c0c775beafa6ec35c2957d8b261c422930cbe31fe016afc8c124632ca8ad87d363bf21f3d575fe44039d34b2ef38d60f574facb27eeae72bd61784856ab090e0260fc009f4b485b262c060bf5a1d399f15c874d487aef22237cf3e335358d192d16444", + "054db2c990f7c2b49ec5022bee4486d498f1b4147e851d1295c3a5e95e4fd7715b2fc88028eaf13796be93d6e95cf89b2980e9547ec7100f417d20341d4d9c68ebe4d5645eac7e275a889ba863b093bd74b95b054c74b3383a89b446fe697145803eccba5eaf86eef96822f3f04fc874d2ebad1d79b5492b80c875a634ece1753bd2f9af941e949980334cd1176ff9fc38bdb98fd6c0e9fbbc9069675eadcba34e164b9c382570c798349b44d3e1d77b364c993e6c9c99d98aebaa5bfe6da055970f1dec5cb3da60c4445d8143ac0f84c1f0f4845d340292308e74a53f9477c4c0b710ffe63d6e3e2862a4f5b1fcde19ee8977efebe3056eca34cd4573a3c02eed1d15d433459801665af484aa6300f7ad06", + "0148c020d0647d93076edd34afad279189a41218c93eb1dfd06212cb0659ce0b9dbcac9b2d8e52c86944638563748d6df19b53f63178fd3d4fd1323d704321fabadc348e1b9ee114ab859304985ab0873044fe4ce13ed00c0ab049852af9fc918e4bcad75241e47ee2d297527c5327ead3f11e57bc940faebc39c1a23a712317d066c8134f2c1d2aed827414ff546474661a85cae40489a6240dedd1f5a7cf7a6aa1394cba619ba7889eec7b4ccd2787e3d4a636dd99d193f801dc20abfd99e166c2ad63da5f32d0999b00f429eae1d5c7ca5dad50976a790f1247cec8e8ccab86636befafc3034e9a60ec66376a" + }, + { /* i=5962 cDividendBits=1729 cDivisorBits=449 */ + "0d05df6e2c25388dc85a274e2f6a36fdc0ff2c7d4b620cd6fcd8361e16704459595f86494fc287adb02765ea0e75c91a1dcc5a0ab16493487ab88fcbd7425dd6944d8d3f161209b90fb00e1d444e5d787d85f8016ea6923cf747afd04ae0258f5eeabd32a04f790e2db313de9005cd0ea7a17836f20970c2213e221c71d7a6be8adde565bc37eceeb659fe6d86cbb8adeb23c889c00802a76aeaaab97ab6df220bf115b2b2b6338c7cbf3941d5d7cf1bdaa03d6cf4775338f7b5e70cd07780bd0f1497f5f042a82596fd47ff6acaafa8d3f844625efd1884", + "015c89a265a3734ddf8a055f829f451562cc780f123358d2b69d7e591e9cbf0f2213e225d4591409c91b016ace9904b54f804c33853e0e294b", + "0990b8949baa5ebed89843ff17e78bdf8ce213bf8850162f898197985c84cfad7a51d83638424fb5d91a522d81f0c1d303d235de9649f307c9e5f9e7dac73cea5a10f03bb155913b57f7777a069dc9e776ba8cf3346157ef052bb21d5dff18a32a597c39ee9a2ed6ec3652a42dc22d6b700966e47008e785b7e3c34d901c05d27d55b3458fa2c72e7f475b84f01a2c8d8e90dcc44061ab840011a90d8c172e97", + "01251bf9c76ccdd1693869bb9acb04c0b7c98ca975842c0216d244ff7f381fbde4098020324ef9598348f00174192b58b8e601fa7f7a4347" + }, + { /* i=5963 cDividendBits=205 cDivisorBits=39 */ + "1af7c338f2406a02e469ec44d749b9cde1d7f6d11b809c80c855", + "5f339875b9", + "4884703ce93550c62e046c1c1b8bf981ca01460e39", + "5bdf887424" + }, + { /* i=5964 cDividendBits=538 cDivisorBits=518 */ + "02bf026b60dd7f62d0640cde0ed709973455bd6c9e6e3bc9fe45bb9145643697d5662bdb66bfaa7b12266624a44e69b9f60f721984c04137a5a6f772373f4e1044badd84", + "15abb2df4a7e0feac6ae4007dc2408d4f3d78dc8a1a6ff78724e049b2af06fb83ecf02036f6c04d1332039d8050c69b65030ae3f6fdfe6f38f9f104250ad76f844", + "2070c8", + "03121eb40c0467ed68eddc14bc91c9bee51bade480b3b3df8ee88a25e415a8dff85dbebb926c7890df27f9e32339afd85f52e1c2fd3cb5f79e8b728445aaab2864" + }, + { /* i=5965 cDividendBits=535 cDivisorBits=131 */ + "54d9d6de8b4e26e5909c2f6765c528b5acd0ad418ea0726909863b12ca446f99fc42492fdd16cd61c8bd03392ded0abfc707efebb407db88bb4c2eaa476473532a50f4", + "054e6982f2b603443129ef825ee5e4f1cf", + "0ffd98a24f32fc57393ac721ea08ae845ba5d5f41151c17d0f555e85489a96cfb7653687a72ed9031b37183121634ff87d9304", + "013f9090f1b014f8b29dc82609aaa9acb8" + }, + { /* i=5966 cDividendBits=877 cDivisorBits=643 */ + "0cb170bff78cd90a15d2bcb3ed5941e6f195017567e342b68150cc786df411240eb3a4772bc9f1f42042d931fcc6f59b82bfef2a462807f30b5a893d96fac25477b44d6c5fff0c5e780ede26ceff386f55ff6a1ba626c384104fcbc826fe39b25b932f2496afe5ac4e84beab8db2", + "849d5ed28f7b62371ebbf09d9cdb42096e20921038663a6689a0b2e730ae0c8db41102a3fd216f5c460a03805f4d54914b611c949cb8059ed41d0c97bc443c5aec1e6a52abcfefba69d0454f20d9fdbd", + "1880bb964de18b38edda0ed44fb9af00024152d6d6d42b15caaccdbde635", + "1b03996f0730d2a3030f7003bb17b454348515b45f00c4424122df94683f27e6dc204f25ed26ca42134745803f60a0fd15d7617ed8fd7791037ff6639fb4287b92e928aa0b1924a8b2606f826a093791" + }, + { /* i=5967 cDividendBits=3329 cDivisorBits=1781 */ + "01a6e6188b76384504ecfa5c2a2e49b7d6bfc1f08ce0936710665cab4a502f2a5333382217e2beb02cd39442ea55f479adeff6d86867039200a19e9d109b18a2a5498f9a29528d81f3c861d176d6408ace6056a17b33fb9208d91c981ec772f0a13d9204239e2ad12b0303d0be352d0c51903997270410b90aa673785009212dbb29f985c7275aadaeece73fcb04537f83134ce8e2f6626dd6a5893db4257d98e8b391cbb71fcc82a1d0bcf62c3d4601cc2399faed3bf9dac23413370f8059b3af2fbf8d76b41892880e975bce4b509284ac8305a3b1e8ce62ad54087deee808f96fc81a4a5f8869f53a07c12cd33f029ef5963bf1f8acdd2b8e5f04b34ee40165f648dabe8a9d2cb76a04b568c1004280e5c4330cc525ce61e1355026308efe65c168594e8a0a8c285e06fa3fb35b549da08794a65ec3b3e3123272087a770f6be76f459b116cabf537a7c40171660257805b3f49ffe119cd5b93b83eb7e5f5b4a7db8f480800fd59f698a9fe149a5118374fc4f8539f36ed85c6d6eeba9d1ccafc5cda8b136ad138d731cb15fb60466347caf13e8abce54a3a5856fa1c7ea94e", + "0a0ab32439e33e5c38af7d08a41c3b11386b3bb642ba841b39b5cbd7262e4a87e6bf7c57bb185a8a21f229ae57d76b5866386eea1d899ca1eb45a43d7bae0900abc27f8b8d5aaee6bb9be0f8284e482eed49cd2047129255523148cf3f94b5cab0720e5ae4830ec800f6a20ad53e95d5729ee51abc0173c5fb8b480c00067731c2ff7fccae3f7b3f6900c1378f7f1e8eb56b07462b138e5a04767e2508c784ac43439f0243874b75313c2a08f33e9aa2e2b5ace10113af4195726d1054799d51727ac484ff5d4ed98a74e71590dcb29776382fd15576b6596ba744525281c6", + "2a1d261259aa79a36d0cec9c1ff7c3ea27486193a23bbb22e80089ed1a582667e0349a9e17b97bd920910dcbe1c03d9b7e60f014c4488c425f7468d46bba80b6bb9b0598d4fe4ee258743b1ed6461e8c7ffb7d5f2186e7af4120f2e3c4470b6c5965f9bb020e91cd6f82a875493e12a4a5c316ca871f801d58f47677ad9f6ca9a935023fc3babaed9e39f79a3b993af4bbe64ef53ba6d866665a4234c2c6618cf35565fd73d5e00514e9512e93d4b6bd3f783c1830a40b3df68d0f2d919538c644af", + "337fed41649e3112b05634f6ddc8b5185d6c288027319424fe31ecf64a2c0eeea705313d0d85a37d46eea2b3f1f97f8d4d0438628fbd44ff9e417b52efd7ada712d516b34e91f1ffa02d1e0bc17e45790116783c0032097c60814bf83773ce920a6b42ff52866030d714ab88dca765de3d394ba03bbbcb7270ed6288c195c6e357368bcba7dd2b1b1e0f33a2a3d83843d1f6f6389643421e1a6c5090cceda34d884551d494f5c0ab232252f9db1dfeb13508b5e500224501372fa89bf39ee9e63d07a1f913bb12e3d8ff06e73f995a689f8f8da07f7a212472f63c7b5af4" + }, + { /* i=5968 cDividendBits=3620 cDivisorBits=3511 */ + "9cf3f0fb2591482e409c2b8291feed00e824008bb16b848494b4051bf5284d470f91e4fb9275a17e6f30fcd78507671a56e345fe0afad7c278fb5a0aebd13042dd818a465a07b26b634a35292d997e0f897d612a1e1c44fb4bf2c659ee21f97823a9a11047b69c33cdb7058e5f7b7347b0b3806127428db7e9c2be00480d32a7e0786b5468090b82414e64189ee89697d1ce830fcac6c133638f1c84eb66cecbb7b6d0ceeec8eb282511b3dcffa446403e4548f950b555567fe2176bfed1687cbc2e1e810b15c2e203e685c55154d11c7d6d04eb5d500e1b58038f71a87b0b29a8238c8c1464a5d048b0c209c727f4b5e7d893466a51645bd5f0a023a7d2ae1e6a4ed97b3081a44cb64d6c3921e2e25f6b4660d2f11e2c54622a6bab5f518d2b86f972d0c8bb371e1adc3edfba76f28fead0783f129b36a67326d317f8338f7d47600b7e48b720df98a59e6e2919583f0f0fc16a6105837ecb2ea5982acfa635feb73191b95b0ad7690b6a970d52488266ec6841047781939b74b5f4fc9799fdca543b44d09c6f1679253ca9398c39a49f83d089114723cfc17e6396ba33a013e3f3d28682091f8ae0a4843fcf8c1b102637897d9e9cda18a1ef90a95678866f7f65cf36", + "05cae8e9bd42bb91f529637af27ec922761ca287bb32a56171653d0cab1cea93441074c959e63f44a55356f4d19fd2f462599b86b0a5086fa10c6cdd586f8bbd1712144939beecc3fe18dfec5c5f1cc06ed1cb40233b195fc661cd4480cacf3e1e6f78f4c216f6f743675a5d63bb104da73bc6b3db844df55da411aafc77091dfc1abe0d900fc79480ee564f162d5a65a6e9bfa30490f006f8e56cf7a08c35c30716442e07438f461c80d64de0c3137193c978b7143a73ce36a0b6a0f8b42a69fa6aba8ba368f9a8788269464d9e0b15c91032aa78c486606e32c177dabb39c34c273f6c7caaca78a0159cbaba7510bc70b4b7cee60999228553d0377bb3e6126004e25a603816b45877281ecbd8b030b53df605923ecc0bf9ec94d73b7a9fa89235a4b723ae369340f6addc59372193ece9db70d8b49aa8128dff5fad5c4f59eded7ac86660cc5a592fd8e09911414061b9da1941fa665693b2f14d049a944d445e470c538381ecaa9bd485a12eeb69dfb4a1d107985d73c46613162c3689d2b07d8af980affeb150aa9d2c601ac7da8e4966b8c052b41d560b665245b9c90e71a93d13f2005c89b833db90b3d8f6a7fd5b8b23c7b17b", + "1b186802b3b696fbdfba2fbf3c73", + "03db807e44f0f0fd78bcccb254f9f9f4b624144bd3346a33cda5cdc3a540bed3e6f94a01ed7c67e05321c0bc5f680ad213aff7ea922e32332f9836f7ab9a251caaca5f13bfe3ee521b40682fdc77a99b5dcd1c30e79be0fe89678f266ece941f8bdf0bfecb23bf8b741353f3f7fcdfcb94c9616cbf1438e637ac2db85ead960e03cac624301cf68fba02cbdebabeff3013161d44de2025fc06c1b7078a5589c9ed95c95020a52ca55a40f34c537a367b3226588f2871c6af828dedd7321a0d882709872376d7002a7e81fca6e5a148f8c8c5b6e02f2f5d07b65c7bee67b7b30f21332bd8a9eeb19d4bd8d756169dc5e7b77d1e3814028698677e767eb52249b56fa3f07146e41c8e0408eb7f8cde90038d0d0434493d94ad3e1b6f64082e6acd80e15d03567cc8f61fdb73d5460247324dc838cc882a7c74c207cb74b3cd1b922f4af74a4b7cec37c3db2befa7b46661d509654afa4a80ae6db8e6445116bd88b0e107368e8070c311f0583914dc6df5e6cad65ae31a5eab9bc2b47ad1989eeb3074a83210415643625dca435ee838717604d4ef0293b51fbaaa4a7fd4e1ff7b8fae7932e0b5d84a3311cedc2f74289d88569a9f5340f5" + }, + { /* i=5969 cDividendBits=2291 cDivisorBits=1385 */ + "c5c152670a78d824aa8c97fee1fd90682ed223e4db6c68134993455a4cfbd43027e2197213d5c8f8ca6e90cb441462a2751cd6e7ba8b44e1dd4c3265adfdcadfb4f43a37e22f285dac4daf64a403f7324d72318402fb79d08f47bdb5da5150db8323d0018659d087d14002a96025c55b016037f0ec8890457fbb43397e469e395cf4ecc9a376c63ca665984e4ab208f604ef765b5c3d261b214202b845243dda3b62a55399c7190a62062e579debeb20d2a65cfe894ea3682da264f734aeada963b178e5bf0db58289339abfacdf7ba3cef0acf6b3cd436c5798b5f7f16d682036a504f96a7e8c821bd2a9398a7213182993963b95801b4b07eeb54f3526c4876c3c7a3ffd39b9d8415f89a075271ecf035af1bcae11854d0e68cbd251a9", + "019355dba5cae25328da9735f8c980b67b5e2ac7d2c488b9c575ed3f34389587dcff1c0893bc8c3f6fc102cb426cc0f5b234904d9ad2e34664927047278d86f1b7a711247de45e0490a8ae6d64bb5e9bcdbc0b74c575b5f3b60eea50d987c70cb86a54e7fe4d86596236e5e0a581f2f8490a8b7a47fa90a34e7a33de8c8ee2da9db4af5257bf3fd537793fb0c5e02a5a9baf978948c274db1b56e8f1b4bcd90ea80472f69be357f6d207f60fd49a", + "7d8445be373794d1f837b3aa7fb351e54c55eb1769c68ce2888acf36e657ab8412ce5660ed7fbfab7ab1967e30ba3a1f08352edd3726ebcf6c66d88612c25576d0ec3513abb144fee1f2f9638b32675b0b6037077e989335781ea4cfb3d0d1540aa4b14af7d1be75027080bab8e6024991", + "0148b81d89a21f2670b886393289523e06753cd1c862ba3b502540473d572b34d2a7d279b6ed2193681ac88862e51c1ad0ae287a7cf5132ad69d73ebe6245cb3f15b3c683009eedf26132aecac8f65611923a23c8bed5ba2d4ca0ee5895b049c5c2346db941e06ab88fcedd17ef67aee67789f458c4f1b20eaaf97e2fff3ff7a6a6a9cddafb6df04c531662a78c7fbb930a0f628878ce95524ed08c00963f6af75084e935ef47ca0fae9e406fc6f" + }, + { /* i=5970 cDividendBits=1927 cDivisorBits=967 */ + "3fc77484a34c40359215e98dbe94991d917b26cea06621d3bd536c28e426fcaef93ada1a5b3808afd565bd0e51eee1a144a15dc05686cd4fc91ea42084880e0594aa8a6cbe1c52e72142a627c3535eb83d7252014b65d77b8217db48d4f0e803a58df8da190017e8b6779154600c57db47feb1fd71aff5e6627068bce3d4e74fc4316c89d368d456a848835a22f8587267a97efb8f694804c878fe4e7c4e5ea2ed8262f470bbff9b386e5c4c3a48ce878245ea8bedab391303baf9f132a4c10ea480169e05a0a0ff0a94a8a6d2159d3e7441f22440394fcc9a40ccf629c525b21d8805e5406a1f48ffed79e994686731f2", + "4107be242956de1501a8d0bf7d15654f49cce4a4ce507c438bb92d276103ea5095b361d53201fa02db70750c3b1749d8b35fbd0fa6e0b346a97d7093d29fd9ae2dfba35081ca66b9018c9e0cc96f1c701396dc8547e1d58df2443cca2e056c26e2d89b97f3f60149dd217c0919856b1a9f8963d2975523fbe6", + "fb132575e88163976b89061525481d34d912e4383129d401c164594774623341d1a5e205868325bcfa6f1db5b9883f1c6d2c2b31e7accba7942c44375ef260cd34e6329070b7188ef872b0ba86e7a342d3ce7e9f1b1f06d24ad031e910c32c37efc6d76cf0aebca2a89d3d74eec0ecfe00748b9e140b93bc", + "362a5bdf55625ed4a84163974050a9b40b3fbca366aa1ea07efeeb257d327caa8604a3e5feb8a1656ee407d78809aa34101770d90a79133df51faf2bdf163cab7c72fbe3a378b1a5902dd9235f3aee5b4a34307f701f3b8ebab65cdbcffb94e92f2cd74f46bd3c7559381f6fe381a4bd119ce38a606d73230a" + }, + { /* i=5971 cDividendBits=3440 cDivisorBits=1345 */ + "d27af009c6e7f48a15b4e849d0e4d0cd95dd19afcc83e0342c2c8d367b3528a4f3502d8fc8bbb0a6000a038d8db7487bbf61981584d60fc293550dddaa2701a9c2a57669750c6eff64d5e52a43d45bf2b7b504b8e4a4d358ea897fb6b0467da0d42fc9d62747e07612983c6a981e0e3d908ca6f28e03a5a0fe0008516d75e6c978821a0f7244dd703d6799e677f1663e3df903d464eac844250c1813610775fd061792b3d909e196d1ef4a3a4c7adbea02b246454dcb28025c56f402f89da7f3db6eaf831489f5165ff049ed91dc32e6db39c10b56f1763265892593bbead33d0f4f45e06529cc703ea44c4afc7fabd3815702561cfca4bc888d3fcc1cc2b6746579f33e742540a8201170cc19d99dd0e40a0ad0f8e76c080d71fa16e62aa571db4db415ed34de4deb5f4717e467556d5ef8133ec6e273a76cad1ab113a814c9856b8a19834c662ee833c236eb846a65fa1a121fb1ecb2c66a053bccee14319151ca1185bf8fd4fb538d8d7ebbe5f795edda92c523e4125cb4d8944d9f6f0f48c2081dbe7c379253d390f5791f1365a32c878cf9a24778eda2ee021efdda4d1aeb6fe8f53744fa4b3b5d5ef95abd", + "eaf587f831e1e947d1979fcc51d02c749ec6599f97da6f68eb5445238d0e6dbf11d9f9f2a551be0ec076fe22af663bf421f29fba9f162b3ae07208b37bb48a152e7e1a84bb3164bc85d4e8c754c55651a91dfd410ca4ba7793e86e45b6b7ee55b94cff46594f66b42d2b314259308797b45fa20fc364fe4d77cb1e70eccf78842a37e0e23c81074d89dcab169b16fd903a96469fb729812b42f2f5fb303d34616610876e554029ec", + "e55439939b59e42de740352421b5491b6646115ece29938a1ce1c5ad13e9681f230360ade20e7af1e65194fe737f1760e28358fccaef53c3c87b3785513bb9a357e2d97ab28678f62b0d95929f3c61634a7e244a22f3eb09e22083230d516c192f7a09fd7866faba77de96bfa557f5ac8e3792fde4c0b6ebcc20046ac7d9c2b93f18508eec479b89c9d8644bb3c50ede5de99db6f547ea01676a4a904b0da97f1c07f96b347bb782d72818f58968942fc2a03f17e610e1f061ba576086b6c05b9497410e6dec7e747659c2e4516b02712c40c9db3939c090e0fd5f77c97a4f3509161475627b02bd69d06a4df8bd583332d5edd74b52c866740daf2a17c808b2dd2283aad58f", + "e4ea83dae922ba9144462e235b492ae68d1fcfc6e874f0cddd7b92988b4a785d2b424eb857b9ff0dcee7ace08007d23d555e4dd05a7e21d9a83449ad2ceadb5fa6834a0ac89f5feb6b695d14c3cfabc0614ef027ea432ea80ad8b374b4a44305280209bf2f496c746ee95010651301db14ae3520f174a7995f34bb1df3665666d897de5cdc4e255902a5b5cda38ae0d20e9b3d1cbd9dd5dfd03b02be672d361d94ae0865c28893e9" + }, + { /* i=5972 cDividendBits=1605 cDivisorBits=783 */ + "0e72671ac8d9431d5227b736cce6ee747f560d625911d8b760b3e5683d7fa2b497ede7b0181a35b70b2010f2e5f1ebd90b918b3006416d6a6912ebefba6422e7df279ef82124233cbcd178f572cc9038459827e9331c39ca19da3d693ebd8425b8fda09a787dcc62b33f446a77eabb0f65587aa1db8a8dc6d4b6e4f829a4b6e6c8da2b133b4169ca2b04381ee43f7b45d74a051c9e7116c8c96b18c75d2c70f051c63ff492c8262a2187a86b3793156cd7d7d34341692cc040bcd95ace4f2d0c1e3a1b1245017cd6be", + "689a7a7b96d33377ecf7aa768723a63513168a57dbc5b119f594f4d475a40771203c148189e7232c852fff19f376ea88ce9b40a43e56e062f5361f01ba64eff0260ebadab960660e3edd08df1429bfcf268cf68a85f5be18e23e54dc43f9d0a9a6a4", + "235b3e46d0fbad082b0e04dc497ba378038fb65be2df77c9895c88ae328dfea9b2a8104d31b54cedc0165e15103b8ad64de691d88c69e62f579a00d3643221d7501f66a62c91ddadb25a31623336e73836b74e51f30346f691430a6079c94ccc77fd92525eeb55", + "1de400d5ee9ada5b7c2fa18101fe881a94f2efa43a7f201922fb0fe7868d8ea7a5b571222473f4a9dffb59d35171a33e1560c729cdfd6c6cf876bf820c5bfd9f2b7da55964f5e4a2ff7257e421b2bd71a5507e28eb0d253cead70f541a9344f7f64a" + }, + { /* i=5973 cDividendBits=1841 cDivisorBits=604 */ + "cff5be78896f2bd7865e6387bfced82ffc7ddcb6158d38698aa4b0922fa6f4526d9473239845af002db5574c91c50fa979b12108be23a28fc0fc53e541e0fa4e6f41d11418babf84744590f7004a85c35f9cf16d10736feb2fea1960cd140ff7db38bd613bfa711111907c5ddbbb1046e5dd4d2d01b1aa3326277bff8ec117bc87b0377d295bc91beac23c8d518c84dbbedb2c655cbd66af95743f90a506e6720c60589cd6fac3920ff07bbe8ef58c0e6bc4be0130c141fb33f1a9175ed39f0d3720d19fc94ed19b51523d54e14510958e479c3fcbc4560889b7eb2d54ffd4877aaa80489c2a", + "0ea8b7b5b4f0ec55d4f3814c7995e776f11e4b11baf8bac3b3f058722afc2ce634948cadfc8672b8c231df48a8b5119912e2977aee3a972a4f4f098890f4f0e02fd41c2510cda570215327f9", + "0e2fbb3e3855b9a20c30501c557071a1aebc6b7c2234778421e9a95d9e936e9d21526af971d26d986085b793c379c4810f86ff7b72568ac749b94507fb3aedb1b37ffd84a75c1bf90ad18b2eba807bca58f6c5e77b74a9b6ccdee94078ee2dd9458854df082444c8cea8b2b6b82db62c2aa48f1dae2b847c906dd0a27e960eedf610c80f419907398b73a712833b5e404247286dfd7964f372bc08", + "0cb4a3c3f59b486a75070c7549d996ea41baf9851d33d742f578c8fcb05bdf5d812af85bdac0eb5ef393ca84d347a38b34b306c08a0aada32371ad0f9de3a9b21b9e473a5495e2733c728062" + }, + { /* i=5974 cDividendBits=1049 cDivisorBits=902 */ + "01cf48a67e034cb9d447dc001c436b4d31990f9169aba298910785127f6cffdd9fab1e62a8a9024c227034ffe9e2d8c3b7118b6cc66a2b3ad55055256c08922b7ca4f668118bdf65d4b6e060c0d93124642e7af14943c30a2d485df6151a508c6672cc8c7e0a188d043204ef2610ff23f1261ffc2c627cf3b4df660770397d80f55ca1db", + "0dded47310e5f5444d34f0a3f46c2a1bd877c7a0372ffa61b893c0bb53e404a9e52e0df807c846ce9cc4d937db6d5ced786dcfddd819ee993e6a4af71924854e1ab3ff63c9cdc59a21d491bde4fa512ab4119b65155017180960882ad378eb390a5c00f62e0c98dd3f80a89bb5751342f5", + "21669c8557d8039b6dca590a0dffca056e7fd1", + "0817dd36e7a50eb663d1b6a576abc521317859c444338d6fc2970079b560e2bb7492cbfa66ebde5e7fed5b4b49019cc5823ce1492480d340d48fd8a2cf15807bf1ec741d54a52f08fedbadcad01482c3d846b1c880a39fee23d4fdeca3b441192c6192fb1e10bcc84cc4bbca6044256cd6" + }, + { /* i=5975 cDividendBits=3522 cDivisorBits=3145 */ + "87876b5a5b31af6c3de6ce5d964b361b0a5877a58478a48a6dd4be5da0e91deb71b0cc438f961316090c6e4fb44c47a21adc968024c618a6c15dddc029652388224ab9314f9049e0c4ec54b52adb0759021c8d484197674f186511ea4906b5fbc515a8af3334315a8236b32666f8e727f22282c3d7a62e10bda41584a9b5a6e9d480caf334ecbe938b5f019eb789552adf41c6aa27e5e0d38b1aee40bfec9e5dbc60e5bd221813eadbb1f0b45f5443e8acc253710fef6be417dd5e451b9ca48d703916e3c0ca3de73836644492c6ca4cf7cbcb956682454a3de5dfe4f740b3d968534cfd9cb88e634529f07551e90ba03e558165b185ea82794561b9ae7f02352b92dac59dba2cba210a1bb4361f517c40569169437e527ae3d73c850874ad031d22b8217c99264cb0659f0bb4476d947fdc18691b09e9ebc5c0ba4395ad7007a6e141b7d57962ca173c29992d81e338f6b562dced74fe6b87ca183a1dd0755704106bfe9eecae8084bec4f5f0062c759f8780ad7d4c30b536fe38ec13c7409386e2138a5c58d017df0e3da5d1c231aeaf1fa290df064c903ffd32fa0c37c5212b19db44f65088a6e5c2d81f3333333a4447fb111d660bd3", + "0195d7c0c122abf72af7ac4c8e9353d94ef61f2ecca69523dd7c71fcefdbab5a27cfa3c7deac7e2036c6ebcbed8dcc3bc0993e9f0537e07accee31a6f0fb9513756c2d3f31933a314008cac303a41162eef545259c46f7b0997899315eea923f85606c9e93c23b5c98f964f18030f1bd7f0139d08bb764d4b5ec22e4dd65f364fb06f78bd91bdaeeceeb3dbc23c1fe94f975b3b27192aee6cd35672a8304ac5ba66802b8a504bd961c818db0d7e89f26d868f81def46e051ea83a67f859a5c7c9df18196cab684cd1773089c5bef229c911da3f7f147c0d306db781c68f30570257829e99ddca39f13ad5222b7fdc581b887c0bf8d97abc0be87f91ada1a51aad520dd43c00592fbe25c3e908c4e95eaf511189bac948384146b0de83780af271145300ed7372e6efed19fcad57c69454ab03d4cf316054553054a67908fcaf44676687358ad8b7f42f9789ff6be7ac5730142e600a8d6f9889e89ba4a539bb1d1a46c41734d90ad3c0f78a0309adcef2ea7c865385bf1ffab706031fc0a0dfa5799e96ac1325a73618d", + "557d63aabcf5b4d6f16a39e64c35fd0b196ea95148567bd0f38980b2fa0842d4c5546cbd09ad7ad025e502d96a0f73", + "0136cef641e5b96ef6192ab6cb0aa7a2ffd34ee91f58460de19614a62408b1ec68b09b7d1cb35dde4048bd0fae535cc6026e7658bc12ca937e253b38e889c57416c299f7add7659c5e13f9bc052a620c5f124f7d8644fb6323461d987335785e36231daa9e900cbb61d500e35d8885e5735e27fa2d4fbc072a729aa983a0b2a0a2a3ae86dca18fa8cb43acb31c2f77e7f75feb52c2c3f6ef0e4a0b68f3e9e2b3add471282ea8d8e01c631f54d4dd41d6c634caef5454cdd64041349bc645d671dc0447561614aae13c067d496216b9842d1aa03b453b4f111a94b62e8dc63fe13ecd1b17ddd6ce2082c1adc0f4e1ad8cefd7c4cf73eb8af923ca55be68b9b71925f4a93c1cbfc3a543f2e982527504b4ddb262ad19839cb3ca8464d3b3263e3d49bef1792c295500a6ce0afa3d67f3e43f1a46debae010615c76a6c623c310ea0bcbb75d428a9be566adcec844703c4853df6e51905d45b48b3cfd74ee14fed57f325f1b7dc4b2c9f273fbb4623f870339cf1f18f87a51dfd4eee92452c9c1bb8b01e5f11894cf77f67c" + }, + { /* i=5976 cDividendBits=1421 cDivisorBits=734 */ + "1a9f7d2d183886b915e0d15195d58f8ab5dddeab8afcb180686bf6516f45ef66233556017a600a300c42ba6338bd2eeccd2201e6a61c7cebd9de9571159308aaf437266227448e8b418e61af146bd7fb65d78d2646b420bccfe1a75e5410ac24f4cb0469fba09984a6c4d6aeb97997229a111680b73a0039762ae820a638e90908581f180b8479b99ca0bead99b62779b1d9b52d1fb4cff5266d58fcd082fc2c127405f9066baabce1a4de82226cb3e2f737", + "20841b4e596238c5488f3a4bbd090e40f50e48daf2b60a7a9bd850079b0547a7d0acfb2784ae24daabeaddf32696eccb56b002c8720f7799aadafa52d2aeddf01cbfab5d8a829bef32ce5076c2a67afa6e04abf457a910101130cecd", + "d19a98d6a907f4b89d9dbdfbfc4c0c7e769efc1882c7df3cc8619061a45888fc45489971910f686d2de9122034e6e436af86fe443375b3729c8d556889ebe282359f65421a9304413d1317892b17121d72c30e72bcde", + "1c3e7698e738a8a2afeb4964fdca9701c45c6958d28e78ca25d45bfdcf94d01775f0a0febea50e51384d67d01ddb98c3808d321af057866e7a468e49e1fc029731ddd6a879ad5e405b6a001108ccb14a0e0442d4fe8444aba6671571" + }, + { /* i=5977 cDividendBits=3892 cDivisorBits=3002 */ + "0d95d46427e21c964115efeaeba3ddc47fd1e20cc2c3a853c511298e1e60e1cec69bf3f7e89d6dc86303bb00a60ce1e469e6e99e9bf758d0c392821402596c329b9ab2002951c1d7d75453ed9e20f1a3f59468912e3673bd1775b5fe9bf760b4ea5e40583ff81c7b83b36ccb58b6159dae5ce188a0e574d2404a90f1365b5c7bf8f242f94fb85fee92cba3c2badbd9b92dbc8ca163a94e7de38fbb7f87de1228380f89960a9d742c573c6ca02f863fd45ad428bd07a93037c910c827b0849d16a03d4687a30c1dd605f83506d96730f23ddd353c0d81cad423964bdf40df5778925e9c2ce1f92c2af859c4e64e964305d2ebcec609aabc7e1f6fb551fcd7a99610aba36975d4d535aee70d2a05b93e7d03696de882ce56e39a39f1f17f6f187283d9f89396e74b5a8a92cbcf7af8084f6a9c5f92f4c7e7a1563493e745522897ad1f24e2bafb71b3b27ff19be2b51373e602b28ca09772c784452fccd0170fdbafc216ce1e013b2c5b4f2da77055e50c2485be679203e2d9bda1c1a1f6642f54a9df5008ac17b1544ef5488b57ef7b75acd2ae9f4e86fd692860ead81d935b31d96fb2ebe6b0378ac0cf115ab409149164c7e2c030afc39f5460765677d145df2a309e2d70189d987b5a4e9b4dc8e08d4d5e006b96f7307af44868ae53087875dbe48521873b8c", + "347bc6ef90cddc53b87c30edd3ec15b43927e545a85108129095b4d7980744a0436f20fcfc71979d688e6af01a9eba8b9e43f430c92e195bb5817b5541eda51187659dbbb83bbd8f6b13a28fefeeacf8ff1e4968069aab97eeda6674f4dae8119267961845b87471e6768e043c8c65268fda21a7a199e7bd6cba0c59286640cb36bad4c573585c3589b8034c96f1f565476300b8fd0758a35d8e510d612d341b55867eb26871e16a062fefcbf6ca285ad91e19d925888bdc42f37e0f607be51a6375cacb88a521fc62f619018733c2c64c62482f6f9cccdf259ee8907cce9c052c382b28eb539e8e3a17280bc80da9b60bb633c7f88eb38a4a52920e2b528be7c8f7c300f8306f671f0d04161706705e9f007671dc7899939a191df0480b88262e92adf42565a45993a264f28c92587e514c63c02c782c750a144efc2a4c8fdf8164a8d826b0fc064bda8bdc0579f347aed6cef92353cf1640a2ca8f3d2795b4590657f9719e6307fd6557b199ab4e42cd632d97180282", + "4243e3d48853f5596051d8d8a3aea965cce96e0686352fb8f87953ebf32f69e0b8ac53f1b6ad15ae4a13ce31ace71012ea55d13b2c43958e8575675410447fec30e7b8c0fd92ec9ef4f06f395d1c57a6e71b73c434ec9f103ef938ea827374d3f03e24ccfc2fd0a4243ef901d40480c9", + "2e05ec031d194bf0cc9caa3e0fa6926c0dfe939ec25738e8db9a8c923e2658a94b9885e2da480a52c748f1b08e99f0d87e0cef06ee0eea4d72d5965d6bd3bdc7dfa58adad7b270a0ae9d52fa46e1d360ef65be47aac6243efe1cf9917ab4f2973be77db27d2362f14401d036438f0e1955f5f409639659fdf6b1d8c946a7e3aa32853877e903ba3b3fb0e8e5d8241a695699a143d96820fd7e5edaf9222a126a138d12504c835fd72937d272333b39555b1c058b31237575b874e28c77ba4a9e23408bc5e640e1b5f1972771db54dad68d2ddbad3eb63b25e2fb0f52f622fc5a95461a53323688a7cfdd37a38b1da4000b5fc90292673a5eabd90f7b5db6e9e895c5e3afe553425748aa8505be50c5656a9cdc65858fcc042a60e0916b01f42dee207e642dcb63a54481b4600b39cab36ff15663a39f6aec39f4a36b4acc00d440e292cdfd7c986d065f50ae104e06de63bd11d5a0ef20cb0e17a70dd60fa9ac9568c258dc8485a114c014b8a156b12e278737cc64437a" + }, + { /* i=5978 cDividendBits=723 cDivisorBits=435 */ + "fbfd73f58f65ac75d37dcf209498c6c1ffd943bef88e9e148fb94d1b378b96833045d4c44dc3718d96ccce7758826d59916b5924bfb94812277e4107666d63259d29ac596c7808fcedb4f7c2d4cb28508dcaa94a978f5b2e8bce", + "050679e178c3321f9a3ce9ee7b196b5c216e6d726cd470fd235c2ed3d2eee22a8ef75576de5d1b78e9430a4d4a385e60c434145441a50c", + "3224f155defbf69fa96fed4149c3a6cef923ce7894a5c16f192948e8e0bf2e886b515014", + "03568bd983fc839fea5c8e4abc076b69a75e0135d62658ba448a513793cbc82783b8f438f4c4f288cfb05ae947761f9d8e3c8305ade6de" + }, + { /* i=5979 cDividendBits=1441 cDivisorBits=441 */ + "01dd715159d39ff1a07a35a02d5953e0e8bf9cd83378c026b5b48c631edee43348ce00a7e7e424c2e47323379989857e5b87fb8fb833e9627076018772fe3ab77f47889d58bc208cd364584dfb7f486c2fac9cb8dcb14daf0964098744d9ccbe9c8f75b2ada66a25668a5c704acf213cd73174c121f2b9cb8157ced9919eb153d4ced74cac37846dde9fdaac37a92f26f6cba5d8cb86d74fac6cef85b33e068a45ce6829646e64a77428625c187e2842ae46169a63", + "cd2e824b53f9bff46c34899c68b9b61f3521a17f21c6e229b3da2f4f350f3067d49c51ac31b454b177c6d9004ef308d7663b9bf72d77f5", + "0253b171fd7166233e45e1da02d4342301ca7e9c3ee4b157d404e2a4a23d7acfd211d1eddc07797a84485daab4c96f6034f980d4530364098cdd4c053912c04f5aa4304981fd11c65baef146448087bc89db49f37f40844077d63a0386a29bb425b62af55f1d52cbe18be238fa1f286a955e63e00c41769c00db14c23c17", + "6d6b2f7fd5cd4ee8ea730e1252dc2fff4754527a684948ea07afe6217cdac8ed34252408a28be533934868add3b70e574ddd515d396760" + }, + { /* i=5980 cDividendBits=974 cDivisorBits=881 */ + "361e9c2d4885be36df5643f398b025e7176d3c7652f8cc8e570265fe0d06f52a610a805dd45f57723a1b2959abeb7ea0cabcf7ac06017723b1eb6c987b103c7c9a6edb3633b534a718b30c16ee37ce36b003df6e16ae98c34d0b9e623c69e115dc854c5af62f807cc6d86ad048ea8e605db3b7bc8b56ce7177dd", + "5bf354eb11e7eb88f089a6ddb589f7886a0e75276e113ac48f9f208a0c920dc787e0767a8fccd3e0e888bf0c5374a2cb0be8fd3a6118bf1cf9d9f095e6a97240b89583cb2cbfeeeacce9e315be1f328356e843fad140a750a0bb1589c9c0578b2186e2502a175a941fcb473252b0", + "96acb4c6c8f71b758c707c51", + "33ec4796d5b32ebb5b2336d66fe9f0e8914379f2bf1568feea998eeb242dbdcc0c581f3cd1ec04155e1bc70ab30f46932ad559e5cadfa8fec54fa10ef8ffa36a6e95d192579b333e076d518563eb567362a2f87ecd1146b94265b6b53abb792fd5004bc16b8e1b10ffdc7a780e2d" + }, + { /* i=5981 cDividendBits=1333 cDivisorBits=152 */ + "326199ca3423516e5f903824d112c8f957b3677b966b3e25f416ebbee8277d727094179b8bce1efd861afc7af6923a403fc27eeea5cb939c51d8cd335cd7f574cc909edd1ced0916219b8b4c3b93704b264e5435bb4c4436e3862ca3649ee7c98429a041b1e47021ef9ef0e4fd007f9ea0f8ecfc6f6d85df3e9c409a439e05d5b58983da5cb658a5834187dbe6bd92480e7051ebc0fe6ee64953f148c0ab4d94a1d2b6f13d8e", + "776877438816ded726b6b72d4e014ef99b2645", + "6c034749a0f0370b8b2717d0fb41c8e7a136df80bc835d3bb87bc08bb17182b184b5c1327d7f5fdca52053ac27c39e7459b83586543c259a8aa10ea55d8c21da66946293083b55105f06a170640563bad565ab8445ce44e0ab006658d68784fa903843af05150b0359e5000b222cfbf9e3b27743d3401877a34bd11d699f866b5b8b94fffff3e2d9839ac71015355e5823b402", + "080d45cdfd0bcbd4f742d68ce64bffb9636d04" + }, + { /* i=5982 cDividendBits=2886 cDivisorBits=832 */ + "25da2d8664784cb83fa3e906199ff957362c8768d147fad85bcbfe114a826376328c8d09673ebddd49269bf6e554c9b2ee4c39d701a60c87ac80d35cb0272841b94eb383d2f4ebd48be9a317ab3a8051ac84ad5812654d6a99b2faa6185318ca02d2d1e46258bef7d1c977ee74e18e2a10fd3ae450c3fe02525e305ec5d93463d5437c44d24e169f721febb4a6922c396641a6c09344cd28a798bc40c78bdf94b5b852c267100be86e3e18b6947e0de1c39e3803673c73fc5f1bd19e6b8c5b75aad4d6734d85ebd2551b7d14d50664b8739e42a2cd87cb87da3575098e14b9d2b67acdfe20a6fd967b41e4ee2fc9586f3591420f82878ffa06d632b6a10d8cb5a75be6fa1c22f147eaefdd0d1716f09675088d7febe2027e1adae1b8bcc6508cd185d53d74f7c5e75d90b958284616959559b1f0cd849bc643368785757a264e82b0e80db5c563f91330d6cf3642dac7e8e50995f98cc9702e413b2e5738694c25a5bdb50d2288f8c2", + "428be62ad5290278ce1288f0bb8c79009809b8a04dd157a92648072a3784e86fe40a58664c973afa3cd8b82f5adf8b014e0a11a63ff4ab6e47944e552cc9e63ac46319add61e6f805b19fab6faaa999b35e7ec571122dc4cdcf8dd08ea00b6159cebca714ebb8591", + "919d7c7be9bf1cc06759e5adfcd0377bfb17cc1d2215c315eb6aaae250eb7dc9644831290be5fc2ba7a551cef63e45611145f71866796c550be9c574be3b493872a788070b8ed0a40df9aafd9a904420ce9fe3b47e0ce020c34025ad25f7a1bf48bdb61d2eb15d935f0cef2b3171a4807bf50b8dc95c230ded84bd05c8be99ee7f6de514ab086073fea3d71f32a0628e2b2940c265e5067414df624642baea47e8a1323bbd8396928978235bd9e1e893ef96364ab672f9d54f856ed28d59f8a9dedb57b861ab270f945f17ceaff017423389e4e9b57f121a5748546de584d40d0ab7fa5c90a15a37e32e8f8057dd0174151af1460266d18df5ae992ee01b52db06", + "0b4943f20ded1cad017114c12eb6038cea0cc575e2d3239641170a96c6907c8282732c0416f2da3f1eef31bf9a8eb30ff2a7f26ecd253ef1c15aa0cf35fa0eb45656180fa670b0cc2de5cb6af4116d9f7d02cc7fe743899a385540a464d1b59a7eb11c03cb6ecc5c" + }, + { /* i=5983 cDividendBits=496 cDivisorBits=164 */ + "b55a597f31202b7064fbefd7b8a92f102f40415d5751e6a107e492a4a24bd8fb39847fd0ae9fe44fb13e7905e128dd1ad1134ca4bb48e2fd91e60921c277", + "04ac3cda0843e06916dbdef15e1ff54963a358986a", + "26cf701f77c23ec023319777a8ac13d8f0a160b1855c956960bfe52c13008eb3860b1257c1d2f666b7db", + "4129b22783c5237b5f946e672e6c672e612799c9" + }, + { /* i=5984 cDividendBits=2441 cDivisorBits=255 */ + "e5f4e9a9e0cbdbf77b60ddd3f9ec93fffcea2d92edc6f1e1ecefe96f7837188b7965b1b79b59323e975731011f6f061809d2f62191fc05467d339ba1b58714cacc1572b4a7b6d7c90734d10714e8ba5bb68a8a703ebe9d8a915067f69728ee50795fae15daceb6a38575f107fe88beea26611353f44fb5735a522f02eab56d4d6d7478c2bb93129ce4d114485e442d1b551c4916f9627f0411ac99075b9eb641e2028bed4d65327b82272a1b730becf5bca51157ce7942b4b02ed19bd2c8ef0cb47d62e30f489e2982b0cc3165d660d0b5f33045bd40d44836275b9f543e707d69333b57194415f111c049dcf5ccbf4dfff11626c9a848fdace9eadfae7b5c80b394b5290e9042051760910eebc7112ac365465a0c2cf87adce53149a2d5ea396f9558a437af0ed21afc8ed5ae59135b74", + "6a4222c2086000ec752635e204390b662c24dc62f1ffec9e14bf8b7924fb0139", + "022a04507f21a79a1d3a49829bedec42020fbab1fc45545197d53b15d3ef6ab49af75383001325f54bb54edd1025d5cb88d23c85bebe613274c228e366aec04a3f653d420e2332b067f994dead792b35c6fa9567958e5274192b0a12c05b06e5ac7f8d54dd4fdaa504cc13e7c359483613c34bfcb1211f60e33042fedd4c9834e2e88bd03e761f9eec72aa1cec67a837e5b5856f5b6ae9dd851246f7f7477e0d9ff5581e9ba76a7982d32591327246dd371219a82b084f702ee57e8f3153783c1f26899f7b9d6b694a447185a40fd0274b42dbd15d5dba36453ad45c5d62faa026d2555a2cb242e57933c3245e024bec4d8edfc33df7f6f51ef8f17b94ee659b079e13cc5f120034b538e5b667faad29135e", + "64b5d81631c68b3850f9a0d783148c844d59fcbb72751a64fc57f4c36cb0ad86" + }, + { /* i=5985 cDividendBits=1194 cDivisorBits=501 */ + "0284b77c7b8dc70ca46494e3d25f2bf20282f4d769e7d8f0fc21f84a76cafb45c8f3402f5737b3060f13d3813869be74ecc15478a504b56c0e247ea37beb159616c92f67972283166271ca86407917fb1129750d5624845bb7f212a4cf75c5a578065c4ea9ce70a20e52a20d338c0b50c71a6f97311c3af9eb76a488063b90666bef7203ab0cab9e6b42be573c18ab88815b8c48d811", + "130f9a0edbf0e6ee76c3ff268c292d3d76f3a366c331cc4d7bf908fb7955abd1735c0005fe58508cb7ce1d9e780965f77606693a0f23cd20392bfef27378e0", + "21d2ef73d9432812e680c6bd3e0f6bdebc4e2340e65634f0213725b54e2a96311b97316e94fc0d9db223ba6de2d09f649fc906b3b795d5375ac92ef5054a511cc7373e813354e1522cee248bdd31e21195883b4d225777", + "057b4f77a23e3ed76c4a14d6cee501b3a3fd4378d5e4cd2d984d1f42e585741329abc0463c9259bf643f6d5658c5785f5bbff3b4b6756c49049f222cc787f1" + }, + { /* i=5986 cDividendBits=3331 cDivisorBits=3191 */ + "07a92d73ac6dadde31c867a1da2587dd815b915f638f6aa0899c04c47b437e5133b8310eaa6b7e48c327ca8806c601e5a0dedae70ea947e060a3164e486278bf6c2ff5749698eb3bb0fd3e8bc4b0cd0ecb462a6ec1359076e68957149343074ac636c7c5bf3379ac5cbb716d416bbbb67f8b78ddd3b28dfe4b8fd7dfb4bf0b49d839f8004ac1dcf747faa5f5f2530f6acf4459e668e48d7f369cc38a6ea2417db70ff8559271bd9cadb31fb23f984b29ce7bbe2cb944a9643cf6f0ced11bf3676fe3f2ccb279021da29c6ca5f33a0181977f0438340864888ab4388f2eecbbfaecf44361156a9e2a71feb653deeb896e36ff8681dd693ed4a8f1a90b3d74191b7896bcce7decf2eaf28148f2d624d2ec4668f306b8b083c2401c64fad74baf73439d634beff40429514f411972eb793f454916e289f327481faf2aa0496e98041b15d76fe14f07957a8c0affbc3fcc9f20265663f0c51b04e22a0159c7665814878fa7e5fb4fdecee2dd27b4d4c8b5c8df63eec1108c5c3c90bdef98bf06d5b2bf1adac923f78d64aed788ed93d6bbcbe823a5bffef2c3fa173e424c9a2715ff9f", + "4a5fb127c3760d61f874886b9ba1f52a2c5e0bc871d719bb204be3382d8c9b06cd356496d18ecba4b48f5bfb660f7ad07bda7270f1ed243a16c09c3265829140516299ec9f38674b073007db878cbcbc6f7f03841f1b1f5cac237e4f2f6c1a0cf4d539ffd0c3b853faf1d8b59ca65bd06c82980c98b0db9a4a701a54ccb31531ee3389b839bf8f55bdf50d4c5f4b841b1e6c74706ec5802a1d18f5be9dd32422a2034b6d062cbe4bdf34292766c12b68730cdc2cf388d1df772dd4e130723832eec3b92dcea3cbf9e447bb5bedde8eb56be82a8f2dbaf22e0ec07a5af6ba55989f8305c3fce77359bc70be8aba14b4069bb6acbe4601f436ec5d409fcb11a3c880b83494ff265a730aa1451ac3b88e3fad57fed63809ea780361beacf01d7e136f3c31136b1089c5afbd010f22c866a3c611be3649e80c148f48533d5c726bb24a219243f4cb539c7fd847f41d9162df18ad2b45b7d968bda45cc78ab67c8f16422520d376eab569504a955820f0b9a89e3e3af873f6375157e424e4fb6ecaff864492d206893cc81f7408dd36980c", + "1a5e83e8bf628ab5736c6c44e39688d2027a", + "310f28443ded7714dc5b40fa170aa74f35372b36f0ed0429b986df7308e81cd3a0300b7c4a04a4fc9cb3e48514d1be39be47a6d6fc3eb1a374e8f1b628e47b0e895c86ff4e458b1d051118f9942430d3b8134b916799b8acc501768357754e4eb3856f26b75e623daac837a0ec0545e9948a9d39bb46d2217409fe5d4db69b503f384bdc8eb067e95847496bf1b423c14d1c0ea9f15ab73c1743e2ae30c7510523565fbac1ed809ae4745cb6b29fe2fc68d55a6cd86bf41f8297e49d87d17d268217d3a57a37aa8e16e13c73da9b1968789b5b20bfe433fb171aa6a265bf5b3d2293c475b8ba6c43938aafeb41dfe2332fce84e6a19f3e6b559948a74bce1a07e3727ec3e4ffa56af39674b08be4cc843f467c45d1e333ecdcd85dc89905443280efaa6e410b7c9a77309cf6c6b9a27f662515a622c8601249327b29eac19cc0f05c5fdf433b569459a8972072c74cf2e38ba73d3357c4762d36cb58f4821af1c90364c3b1a9be6aec361f5e7684880151c1be2b07e72d477a50e836196a3f63e4807968960d0f4192bc0f340971e7" + }, + { /* i=5987 cDividendBits=2425 cDivisorBits=1876 */ + "0145e37f583e89aa3b5f62d15047076b09769aacdaa3d61a4ccfba2a057fa63862a99fccc370d57434766a73cb548c37b0af7298d56295b9077caa8cfadca352d284768a28b732102e92d72993b67fdbf4d05f7383b97e52f800a9fdeae4645b88ee737c11a8223aac6e305b90757e59489392fe9a1e755b413be4b0156b6126da77b8f365cade321aad4748dbf2c831500b0fd4753be7874956393c1d087f5f3cc9d8978857216afac89fd65764c2bf4c012ca1ff51fa5a1e4bfd01bb3c472758b017cf02639dde3cc2f506cef6903faa17cd7807a5afec032f9cea6f7a0101bb3d9f417591098328653f93ebe0d8f191ff681582dc37cdf7f3060c6332765c9adc6c1c920c2b418d099585b648442068b8599ed652c4cb067059fd76015946c406222ffcf8cafccaa47786dc023216", + "08b36d49bba7c126d1dc99b114eca015e082b9d066d46d6757d3642820e164e51fbee2d9037647d68b8467e082a1545cdc6440c62aa1c3c6e8b5807d80cb0f620c702b9718d0d1862f1f6f1227256231a402af4eaa1bd6fdb75c331a51323a7b47e837729dab0b3339c22371f24a66df7dbd89afb2bcd33dde73637fb903f2c909f488041886da3d1413e85743e0becff671aded08c64c1906837d9488024d8863a983d18c7b40d952246bec2a8ffe858e5e1dff0fda3e584d357d7535117553590061bde26b8c1237702abfae296c3d09147eee6aaf57e1cd0b508f83fe2a707c57ce8c39681b2b18b84f", + "257464024d12bb5d7720d9256290d1873be56d3b09cf6ecca25fa0b552b8651465f4810187fd019eb9772e686a917eb5b23ab871b759fa4ad0ab2fb7c66d590643e2bfa793", + "d774e32fdc5cf56bf255b021f1cd81c4feb3fe4ffa356465af91b59ccd3971771b93024e90cefae8b49d67200ee609cce3032b71f93497a3088dadfb3f8921c2e9ebff9de016f4f6ab5c2df5987eef6c96f26581c7286f269544df7cb09bc08f14a18794a593b5bb86d5df795f8fb81ed3390bfa63dddcd48c2edd4c6b991fb42604f7869601c218614b3a618ea09fac8f8320c976d3df1e109aac2c5ce55dffea5804c9efb7be085cd124eb5f7a68639b7afafdfc1f7e47e2afba00310e19781560190ad614e48cfa862a3cfb3dc3c1b7b4429b577ab158bce2f63dd6dd02c2eae19831e5fbbba3d3b9" + }, + { /* i=5988 cDividendBits=3789 cDivisorBits=1731 */ + "0bb5fbce77bfac944c5f3e3ac5fb0c2ca30561e030a2729c6fdea6490ea93f86314eacd9c82d7b97055d3886fd3e4df9cdb06f3c4f08135feaad61c46ed42e8916e528f73cc235b16f59bc4ffba23579e168569407708c29cbf2f4cde1650a12e8e82ef0c9cf435ca125eccbb7f6e6b78bc01a148f0d17a9b93b67cea9ca5016262af19e0993ad783b2ee0e4bb9f727c266fbc4f0e5fcb317a37e0c49718f72c2ca8c1b25a1bb64d824bc45d9be46ca54c5ac55f8523f794d32ffbb5f4f43d42c7d7813f585596bdac3e2aed4cab5053b878e209443b4543fa1d1bc94533620033399d03d811a059e7bce5fa2cbc987422b6ff1152917f58841f6a922c8d1f1b6d8e9e7bed2d9a817ac0353c2dd465065b2fe0469fc11c7acf5c84c4e57482dec071c2cfbd8524ad91762b445c4c07924eb013a0b4a15fcb85f987b2751994fb3a338f1a9d4fedf4b61f403a7f0d05eb285341ae6a4aededf607e3562f86052ef12d928d60616dcfa0a0ea6797bb9f6b8926c3e169d9f92d26eb15249cb06d22270663b3fbb96b09f997389f2143f9e80cc8acea47be0d6e839a45a7d468885b750a0030b5a00da6c9b54f35df4c7342bda992c386a4d674d6522e4be74dffe0a4780718a052305a313ba5893db747a305871fe4be38130ec435", + "04f94bdd3c5a4c8c2cb22f164dfd9e475afbaf6f3215ea542895118ba6ccd27db464e6556186391fcedd482350f2065c1276f5c486ba6407f8e89ee8257d8615c4ca2430e3cd47e484e689771cf30ea2d6bf074ca0fb1ebfab94023f2088013a1959c6b880eece5ae45c27b767aaea1776a20ddd2ee383e66f6cba73c027352d34254536c5cac57509b0d68d92416068cf4b593509cff03b30a06da40c0dc960d84133cad9a6fb9fb08255e5f736641f4f62d758eab55230f4a0a78f5b9cf59c4e6a07c2aa684417562fe514582b47d22b346c7425da429277", + "025ac0e4426a0c986bd1de506750e408488d325e22c818fa5746f76732322c640781d25a09913f3133cc6c8fbc5577d4f6750b54196fb94499b1eb3dd30ac5708bb739aa12ddf6b1eda9868137a4aaf26994baa183318b8a3797fc8893d2efe891c2463abc9d68ea724a70667987e42681af7f9737972c74e237df91b642f007a00184bccbbb8e4e02750efa176ac34752dcb19aa6cf67c397f8c7398aa39f990576909974a13a7d385e1062ba678845e08b39f586f812e43c70a8ca34612254fac6e57accc2290f812b7efc7e71cf1fa8da718b02ad2ae9d83d52c45369cea2f85ce91df8096c398678f7eea22b1cdc86c8d383a89fcab9ad29723a86ff4211473e", + "edae3c10922a32a20d42c73845c89986d612125b18961f84f3716e564fec8bc7073319b512010fe50075d8e3cbd516f241c8d2229239d5d2faf17f267e9105ab6f8b3107aa95a0244d503d966e8b5d69757adbfa0dd2e5a90f44fca1c060320b5dfa22fd94688e28a477b6f568ec13d00ebb8e492e778e1c788446c0aa82816d4ff2718ca4a460e87a7e5526d48b14594b0db5d378d987a1a5ec9acf4fed0fdfe9d40ad9b1a882463006ce1779d209b6e0c2eea6791cbf8925c78a3e33d17bc1cb8e511abe549f6919ebd57cf056381072b146cd58694a63" + }, + { /* i=5989 cDividendBits=601 cDivisorBits=99 */ + "8c486a3a151890b19e8eba2eaab37cc72ef13501df48dba0bf20e93dda3f639ed48e1c736a4f5a6639cc8256e8c452dd52f2469c89c94eea0fdff4ccc623f7713627d30ef0cd80b05bc568", + "0669b082de83c8994bfb1c4c6d", + "15e0124063373aa8931816b2058b8c5295b9d1d1ee9a40dfc9fa3beba1fc61b77560165b1e28e6aec6a27b41b4a59a48071f9be2d93d3a2f4b267b6d44b070", + "bf4885852acfd931a97b65b8" + }, + { /* i=5990 cDividendBits=1733 cDivisorBits=1369 */ + "08436322bfaa5f9034e0caf52a0463ea78fb0b3cc3e3ba7586b8dfb59aa3a4a1fb7ea4b20722e54894f1f79319898a9dbe3b544cdc20473ac1043aee05141ec06e4a49757fa74d963984cd431d608ef562c53fbbd7a39d0c6f6fc0e3506bfb9315cfc59178500659634f3265d87317ff0a95d2fefa3e936af1a2a3980a82b427e123a190b5b40f075bc41a21fdbabce516f90dd020d9e78ccbe14c1f828c6429248fd28a7588cdb373b17253b803ccddd0c709eb26f8ef948b2c560cb3c40c959d42fbee295295b3dccb8f90d797a8c3c646cf0fee18871a6c", + "3a73a129bb8deecce7eee0f34c04cd599dd24a125e9da412cf925a4077eaeff764fd3d86098df010980e2c188f653c8182f0c1208c7dd5e854096540ddf6d78c76d3e2e94115229586be793484d829aa5ef72e31c7f13177d36e739d8b206ad364309d98203f582ddbc75aefb6035a6df58d2ef974d4bb08b9f9b2420e5ad254968ebacbe3f34d75f0847c8319abb149ab780e69c46a27317eea14de5ac8a91a9986f42b22cc72884000f9", + "2430bb69fb05a65313ac6f16e0f8a54b2df9df7518d5f5f4da821b0787353d3bd6d84ddc39d38c2d8d651a2e8449", + "0d115ca509ff8fbe1950236baf9305382e563330ea100c459bd06c54c068fff2a95259987317f70b8fa5549a4535772979f44a6be94ad3ed58239b2879446d1a2d6a12d653f602ae4966315259672e786808f8139e1e62b99dd064395cd7402d57eca6bed29c9362a828db0e69268060417b65caff9ff9f66e38ac363d1861ca0d017a3ed9fd786956bb11d0e4dc3d2228dd330dfe10fc70a8891792e51e78c21b28a5507e322dc7086f6b" + }, + { /* i=5991 cDividendBits=3135 cDivisorBits=673 */ + "21f7763f30eb67b5069ee357e451d6989f20e3c6f373444923eb60593fc67a779181440ebb590e46880d80c888b1771a683162cbca850054d5f2bc3b4acdecb1b0d3b73242e5344cb1ab21dfc010a5f98dc9f4809a61b54954a5575a8ccb4d93da84078978bd35bb2eacf78d66d3c36e5d9e355d0450d240790da00a6a14d534008ae136c75fbf4d0146d7738b04c5601f49e9806eeeb7427b0178362a3e605c4c8cabac4575cb9a7deab166fd4a3fc68264673cdbe3bb7bdc644f82d67006407c384b866c56c7395ead5d9c8272143d3c89fd4562e4a4163c25910e981c65535bf286b382cb597a23c5639a4b399824e176866be3986711cc31287a1da5e714b58eb00f477c9a7a207d417df73ca480cae144b13de424e42bc86007e210d0c41efd23de74d3227020cf9a3e399dfd7d2ad55e8cf3492be3cb038b7c35ec6d5396d9b55b95982b7ff293a1a96f1baac3721fb6d6c9da5659a8535ee3acfd10021f1beec83e330e9909a22218ebd0d90105875f715ce08426959f18b5eab02119d281bb597ce8e526", + "017eddab9efecffdd7836c9d765b814551ddb9cc2c44797c30c7f600875230eb360ca107fcde27c78de10cc21a363b5f8407cd69b3ab7dc43f74a134235e67bb228fe2494f1b65fc43df08b51847ed67242ba67f54", + "16b6256145aa3fd9586772d4a581efd3043d5cf4495fc966c458e27284b7f303d6317e08656c22413e334d66a25c4ad8e81cbe632a78d7b867d9feb907a26b7c909c9ba3f278412c96aee29775dc4fe402d8488fa1107a655fca57c2ff9821fe14e54bcddd41854a88dc8a92c069f60d856ab26678f62d52f72143b8972e73378bb01ccd70e028fbefbd8d261d0c2e58068698983b09b8cee82806298c51b8ffd39bf353c16be66b670b7c081c7a1722944876225052acdcbaff3e0a731b20b9183d5718fdfc1c67b022dfc326ae8019bfb611978d71b62756355ec338a1748d7e2343ab27ec0aecf5ef234bd22c16b1a9a0cf8b27bec92c02b7edbabfc129b98ad060c8bcd349fa57efebb90c386eed3081d8fc61c8abc61bc8c8d6171886d24c83e9e2ab94921e1dcf1f79a118e0d9d74f1d16", + "5731d0808a3a5534763cf02842b27a8d71830da4212fde4167fccdce0f466e488f637c35b71e25c09c4e7c26ed623ac70a36cde56835ee76c9e58fe346feb050127eed16df16acea1b2900bd172e09c709416fee" + }, + { /* i=5992 cDividendBits=733 cDivisorBits=321 */ + "016753d537598f07bff39f38cc32f34a9643402702267708cffd104e07807f4a1ca92971d86a6d0a106c544aa1a3da40822170a77b3e294d6c743731b98735e9506f2bb80c19c836b163531db57fe060560513c25febf80903318fdd", + "e14ea76f5564c979440cb73756c654b1b1ad32cfff83129773f87de2d9ebc60318ace23424d83615", + "019846fd382033c56a3f272815a3364e456564b40b457c756af9d18ea76577a53ee3fac01b76342967cb5227a5ee2b2d2b6191a1", + "1bb995e7e3113e0eaa6a9ea7744e114e99b0d025447f6a26c79d0c26b4be4ee9db82dcac5ba0a7a8" + }, + { /* i=5993 cDividendBits=747 cDivisorBits=649 */ + "037ba3bb0742eaa92ab44143fd1515e999c823d7cf1d80c606402b69e784260fa57a5546edbefac722178a8f28dd1bd7fce7f4404eaf1ee61d93e42faa126ae64872d66b096edf889a136cf932caca24e7af037a7751242840d2cd765a87", + "ec6f33b2e90f03d2827582d5d44f94752aa9b1ead10d05689f46d2fad3fddf28fadf0b6b0a726b77cccb04062cfc1b5d6ed95c28aba4ca6786e0e0ca2d0568edce7c5e5b8e8fab6dc356a5613d94eeefd4", + "03c56cdf4d10b653b42b70b134", + "0de3076e589915c366cc747469c37b9d88902ba4eaf0959a592239f3bac902ecf65025249669984163861db32dee0f903cf258f692375be800592f67ebd473491829ec3dc3b2a276d55ee54475d05c0f77" + }, + { /* i=5994 cDividendBits=3884 cDivisorBits=2433 */ + "093ccee708c205d42a46e41fd4577138b9ebd30901c7b06d3660e94f78b878f9ce632a4b29bdd9630fb098deeb8fcf892a619bc589abfda095cbe882d2ba3c6604e6d07952785f5567b1d891292b6e8a33710314fe1e40526eec2cb4df5318091cc6af6ed2f26fc45b0fc02c2e72abb8acd69f0ba19d865270988d7713548ad1c4f9e0d1826bc79f7397fbdedfe32afb94c28627e2aa0a538a2640e615e325ef334934b832988626cf2de035dd887669c60141dadd9fb371fc927b8fb257aa032d3cc546c64269c2543d7618f0bb09f96e737392fd76a5fd13debfb25b1246da28a6ec25ac36cb86906abd9152f7df7eb9f8cbbc05565a726d9e209a5b80cb998e7a2b58341946aef29ebc60262db8e03277add2a886830ca3ee3f0cbf062de9fa6483b496f0867820ac2380c92bad9f9dda4ab3ebea44553060d170c5bb3623b07b033188a92146f554818cee1d70b68e101f01b975d8b75d3e12c212c76f6eb8c1dbc1e0c057b1802622cfa65534c90bc17e9d6c554bc35a2ca5395bb7d5064ddb78942164929505c975403807692dc74d46ce288789234a36adc67438205fb412615c52cceca7f9d29f0589dd64f3e20a426e70d6b7e7c4c9a87dc0d05d073c89542355b417e9d5ac705bff7028e632d87373be7ce4b3e8bf2fb8c389a92e4b32017cbfb5", + "ccda1f0f7c3087c5c2dc9efa5fcd8b390cffc259a54d5dc1327989170e0a0ab72edabf1447c96d80d902c30bc3257e2f85d4235e633bb80a9e4ba023a571afdb462ea6ecb29e87d8c5af488df4e6df8a56cda7679e927b894cce81592e3220edee3577e03ceda7c89bb1d74711d29cbdeb709ec106dc0cde94d3427931f0e24ccc8c6b2828d374761b0e6ee9b95868bac68cd935b6360e38b279ed961c4ab4925b201ee81959a77872b52389326ca152c9236d223d8ee6f88d46b5a1385f5fe756ac65cc2899872a5d87d53e53888d134fe15c82fa37cc3b75471c5468d8077fb044eed6f2456392b0969a3e35be7a345ca4ca304e55e452194b957b1dbf298924535459d8af3d2fc1b70cba01eeaeb3db2d29744c977e5da7c6ecc52e4e1fac1747cc179b0495ad24542c77a657e826", + "0b8b4266cf91ebef74075d59c1c5ef5f44c385444b097a5ef06618cd3631d5734fc0f371b685599c0c5e77587973f6cfc9e655114dd8bacf1b8c8bf30f6c049b4d008ddf67a51b4295e76e0b7b95a9568b1d1664384eefb3e425f4fde116a76ca8c2a4f725e93479ccecc905d0ed6bfebaf8fa5448ae1a89bdb894b11b85fd1f882bf38c0da9b38386c042d72c069f9055989834c7d29ef0da5482e1d2f8c7ab94a1618fc6f9f910e2cfb486aca48bf360e81fab5c1a", + "8d0d9083b4e27a54afe48817e84427678061a7e00e6641c9f5378be198d7d4f73e53c9119ed984e7b3e4c75fa0468bdf81a661e1769e9b5eaa670cd5d9cb4b9d6b7708f8b11f29972d489398f096eb716f2098c6cfd20b94216c605ca2aa60dc9a409ef3f04e75f0f77a3423f90e0a0d960165884dd3d9fab443cc2221c79254e9fdddc9d1144d232f1b14754831b5a2cbbbb5ce61738255ec816397c5d867283088358063696013b55f9b719531f07fd64d94519bc8481c77c74554663ae406ab77fad86cbaf7203d4b3acdd32d3d4a403d83cbd24729ac8536fff0f860cdda3d08d5629069393faf162aa7cf9fb4974a6623e02713ede24fa11b63566d49f8e86f535e550187b1ccf33fafdf7e620ade3fa293017a871c71239900eea3e6517060d17e5361d5a3d2cb62fed9bf83d9" + }, + { /* i=5995 cDividendBits=2493 cDivisorBits=2207 */ + "15458959d2fd1f6feddc6625c8359c1fee7a3fceb8bcb4c3eed7983d2a48dac90e9abc4f0c9d65944d76ce15c40232e4f316331b349b6b04eac9eff10a330d43ef6adb8b7d25fb82ae6b67c762d67f7fb83e741ea1e35b96bf01f22ffee50602f90e7e54cfe9325363a9ba8dc0f9c8d3b12365983f14270ba70da3fcf9f963934ecdd0aded609404bd6df04df267e6ba5f47a295b90527891d4d38993ac130d7ba09ff31d60fc799c9ff6cd179a9835ea9665f01411ff9e96900d5dd323fb980660c26637133b0fc3f0ca3172bf9fd79589bfd1f3aa20ab35e6923b59fb649437789d43262dbb312a4ccc8d629e7a5483cd066cda526b204d9c22220a13332974560987a674c3e6de22976a696009f3256b63a75ec5c42ed5f6907969cf8a08070239723fbc752e0180ef77f6fb486a0015080d9d1db5d24", + "2a44ba799911f58c51109b89ea855d791ada99e32574be3fe3198d891302326da78653d298a6b44c990e2d098cd089a99d9375657245386966da1fcf59a79ccf58620ce654984b9246d02f93a8405cbe8833b0b7d1c043dca2a64cfaf4f6e347be944b8b9f56acbdb86e10a2c8b2027591742d0b863d775b3cd73841ee556c20232127564da328aceb6f16214f273cb7c48ff85ae7acef2ab873054bbfd0b0e3382fb107c63dc817d4b5c9da2901e0152ed15226bc34648d1bffe6715e485b35b06b9953fb15c5d1b2f64a42460a4e470c9ac70ea702518447176a4c011f493827abcd6bb8435cadaeb3a9f1ddecbe335c506aaae84e82d116ca4497ac1940bc633b16d1e5c5b67666567a3894488492ac5e8d40", + "80d505a0adb8386e4b14b9ef87f6f08581198913ce21fb7cec2870fb5d3dc8df607a0d0d", + "190b759b29b2bf124d7fe041f41460a0a5cfedd3ae6cf9fbe2503402b87369ca07b46bd05974f9018a13ac2319e428885585ffcd802731cea968708bb84b8203475a018fd9244bf2683977626e0221c11c0a9594226579c1aa2e2cf1f20128340b9f66826c19c3f7d56d9015e300647ebcc8c7e23ebc16f1b1e6bde3e31e17f414e7d49bb5e7a85d822df0260f9d9b7a53c4258b66bf636afcc1a9f53f2b7b6bdbcb68c0fa26a8cc2f26594f652ae89eb1ed96a4e9a2e8ebd36da0a9577f1c5cd6743047e2bb943ee72efd5ea6f298e3b04b6f6bc310cad7218e71e32299860cd49a26469d266b0f07a435cdb1d461013b9999588cafd292d6d948cf32611a6a57e1f343b352b9763fb999ecaf65addef361f0e4" + }, + { /* i=5996 cDividendBits=2924 cDivisorBits=1561 */ + "0762e9d326556bebd95794309b42ab6c25ced7d4c5b75685dbee7b42775a05a5a54e07c083d46ceabe08a3dd4a56a22e98b7d85840cfaf88a35480b18dcfdf3ee7d3c856df452707d3417acb7831dfc5583b544648b032faf1c0dfe865f814fbbea94ae8f899cfe70273defc32c8c42efed66faa36e8f85e6c163883f4801f88e0e58705cb2e650341b0c830c3a5b6c2834fa66019648b8839dd30543f432df2f67b744b4bf38c90ca13b10c0545056b7c56dea377fda3b3dce6241c5363f0dff384f3b1515ccc27ef60dc8e241975b8c607f9fc9628ddb1807d0f54b0db37bd746beacfe2928e4212aa4d89b69148a191f685c7d8d87d71a29c3a881b4a8f5492af4045e96d8b47439de781cf612c39dc19672c0ad0e8d41095a9076a365281e2e6cb830c765f5cf36c58a001934b0fd29a593ea039eb59c1f85340da6502f80946418b3a86987b1ea854b826f126469238cb580bda40147b627dcfb98d2fdcf2af1db706fb6ad230f36198efdf", + "18242935e4978170d45a9ccbe062e3ad9cb4e5d5187eb8e967b285bb8fa1a43dd6add0381a5a84f6cbe4206a9aafe1f240dc029c8c3552a54151dfd516da01a7c0be7f38badc029c207bf18ca0b141d4b6b0f80435a5141b4d1be9d65a348ebca1b25bb78372ca8b07ca8d5e1329fc9919871efb49c337c74857b8d5954d100aaa5dbb2b8c78504ba2e955aed2ee6a69def4f13617ef034e4a4b90e46f82e9681e253b8221dc5b372755535d1c65d481104d393010c6d3b6373ff8bc861a921923e87a", + "4e53ba0b9c0c8b76bafea090253e08c637284937de964e037961985f7f4646d626b57ce090f9cbdf55acdfa2aa793d7e4f528fe6ec1f8d45ced2a288c54c763727a94829fe8671364ee1daa2c09008e14c791740ab52fe63335c37d2e305860c37726cea9f83264fb35a39283fa87455e093bb5341ac14603fc4b88316f2f762a4efc55540251160cb3d00e3caddd85c8235dcbbdbebca47f1bb4ed1f6e9a939e3fa4737457ca7b58b0f37", + "163686872c8e77a9f702678eb3b87c30d88dfbe4b02178e5262d2ad8bdb73e94dad7aa905e5b56a77343e68a3eafaaa1a7d17b223a720c9fb6b4309f61684da4a35f49d816d1bce5a33e712038ed075cefa3d7a9057a083ad77e998a7323a6f051263b0eacc51b08b5168a2b8c2a9cf562ea316e9fcce2d4b7430d8984479f774998749faf35556eefa57c393f2de87843d118b2dbcff6538d9fb440b27815457f8727b723c6d39cd90f38d9f6023863b7fa094f6f25a64c7352f3ab7022a36404d7a9" + }, + { /* i=5997 cDividendBits=4010 cDivisorBits=2372 */ + "01d270dbf018e636c957c703671ab8c866b1255b92fc6f31fc39d2db1d3f290066bcc2d325d2e31b58a4365b87c1bebc2eb6f1d60d5d6c5bfcd8f4eaca8f92cb73c8021e1c63301f2a5598ae97ac0266c26175b71714a02cc6816ddb7644a20eb9e69fc2e173b8804c60c016e7a12b22f07872095f00c2a35020aa6a92145d4c51c7e1a74943f18f8bbac4f8fff6615eb453659e371cee8cdf43bf4d95062ce5ce0751845c25d158c530eb435212ad80e1a45f8feb4605804ff74db2fd182aa6e5aa1f947c1ecc4f115afd339d45ae46acd23aaf05b26c57c16e3986a29243dcca1b65041ebf7523af33d3f457d49de7f92f8dc0170af19ba0a48711275144d26585625646fc169d41c71742845499cadf9641229c18f5a33e2a6269dddfc6d2ae0c60579b1195fc2ef401052d05383502ef7073fb26bc4f6860a777fd8087885ee7c3974dc796f79db6b63aa35ce3df481567541eeed9fb158537c155ac6c120db1d52749d6f5bea94d834547b9d6d79f1e11553575fbf7074e456d114ffcb5d8b6438d18d7c6acbe8190636dd7d8f03165589ccac311aa59a2a02f44615dcc6a34e21d0b4500b217b0ab9611d34dcb112e8eb88063578cc35657b529617e6ade0719bc648820c44976bb4545b2b1293032cc7542563b303d05d9b5cbc4d63a0e6ebf4d21155fe36bd6c88aaec5f73024dd617a03cc", + "0f45b93faa177e5d90f8e7b6b6555d80e2a8884a70b00e402181eeb4e22e55244b04a70678242e6c67172f3a7842d9b7d3d91fbf9fa74d03da527ad72ec3ecdb82f879e622863db78af906785bc1beca50c946e5a8c0a8ba3d4432449335350805cb63c2fcbae182b08946aa423f87b655817407771c801449ec47a3096ab01950e80eb4ed38f818c63c99844e796e9966ee4d682bc74fec03df8bd02b1af114f56130ecde510de621ba1c03abef6d4ae55aaf194db455d82c5210d70724b5e7b1e8873c825796dfaf092dde98edb2a53777e8c59875031c59f2dad8c9be8ae677b08579cd70c7e0cd272e794c0d928a5587fe0fff30db1d089d2cc7cc4938687158d37af09a0cb8f757da8839b8e8b5f592120ec588da45b3a200cce775566b39a702c70fbd7c6a8f", + "1e8aa0547878a80cf860a634210d78dd41e6b5c76fc1ca95730d328470e8bd38a92689f61bfbe8aeed07068d89527a3e1df0c509407e8abd570c5589bacf3faf418785038cf4fb24ac22044e2eddb1fec244479930d77da6101391906321772851817b9e5316c089fa45f67b44d66ce4ac253ac338d2752f0f51b85ca73fc0b608a2b2161b230e7c1c0099189f904c56d686029eee3b0b2b217a8ba05a99d4ec781b5a8d47c9fc5037136ce2cf28b30507dc0e67f131ecf3db61fd2366f4fa428961e3fcd3c712270a7e02781a", + "01545b97f4b5c7b3c55ad1a1a0b82dff2a349685aee464bda9e8f3a201b61f538331bb259b7f8b18c952067137250efd8d80769d7d314848bd3e546bd2303d6933b8ec27228b1e0122c5b6fc2b8e94ace9f9685320b2e8c00d546d8f59082620bbcb653d683b273c31715b2f084ddbe9d061fba4803d809f26cd4914a0791a42ef0e734f54f0d8b9bfe3ecbdc660501d92f74040328edc26a8d4cb3e7835c8a07bc531adbe3a2ae02475d14f4cca6f7d769489fa4a8a464810c9dc642297eb03e39736d0c8ebd7d7bae280fcf5cd93513182e1138f301f6edde1c23c6adb4d20e19420217fa9f1c10fd84aee128174a3fd75e93c88345fa4c00fae4d23467ed687c83aa47e09307dd6c1c39de4f027683f335715719928ff9337e92b86a4c64ab5640fe27099c62946" + }, + { /* i=5998 cDividendBits=1134 cDivisorBits=491 */ + "2f0311d2aea2ff2547f872c9ea35c264145ddcd1d15c229231aabb72caa761f88d1e8f1d6130d56b132a89193002c7ba064aa428b0562265d9243ae17ebe295dfd4a906c2bcab2fb3c427d636a687a933e684ed9359d7d4953523362c902596cc23ff43f7e94dfb76f2be8ca167aed99b10a5a5baac48466570452bed23001f553f7178398d55727d9695df0cdb1", + "031e1baab6c770548c752334c6e1edc98674e1d81e6e34c1d03d951fffec4d0735c9681b517704dd15d5b5b8f0982b1cdf19539f492876fd053e50ea123b", + "0f145a0610ae7166d6d000934d01acc7e48bfa6a11666d3fc7e3a917dd368b5d3a4fcf64d13e76677c6e50554ea5115924217b0cd55c6f28db10de854af6f50d312c2c97af952d9335206c0725f121a6c7", + "0310b31cb995e82a1b252e4014746e0f68b6816c634b7bd89c6b48e71ad7ae4166596eb648b167d41dc7ab23bbb10a8ca6b2749b723546a554a3cb8f5fd4" + }, + { /* i=5999 cDividendBits=3486 cDivisorBits=848 */ + "1941dd0e4d141a721e8f6d65a06f691c94c64a7cf2ae8eda178494ecb0abd212bf16aa7e7240c483cbeb906bc44f52ff69c80a29477392d643b2fdedbba29c14d0aea9816b436574025c753641ce3bd28b6f59b68dd9f6f4d9bda12672cb1b1b4c0b7a14829c41605d541fde7623bbfd7607b62d98da3323c1ec9f7cd5b5c702c5a232e32207264aa7ffea7981b81999debac89c0dff03e4c1e31c4a240116d9c7ccf101ee6195259929a6bd3bb6a12cbd9c6f98e03b31afc0bd26d66b1a61b238b3b07e35a3f317c3d4607eb81c4be95b80b7284af76d986ee234744b51ae5722e7281d99a8ad04dcafd7154f3fabc0970454e7185ef128748ffc7063a99dde105df27764ee5347ad35a6c5b7fb7dd7b0f5d982e73c337198597f488971a020d370819cb58a96844c2e093da06ddc70c2656cee92a6a4ec8f41340373e7da0ff6cea5d242430d9303f7f74fe2ee08b24f03c541f0b15d1ba15acf397d26b50487faeb154e383c985acbd3dfd62c85a09b1efe4101879e466b4063a788d57ff7a49b1b719eedbd7e6798519ddfa96e7931f275a063edb0735ea6a4130b31fef8b0adafba1c536a9d35c2bfa7d16bc8b614a8be44", + "662be221b9afd0b9dba6cf57f507d9fce64d9d151db9a0cfce8f6e1a9d4bd7a179a6e617dc163a8616380e6b5fb101319388948e851a217ff01c851a91720226bd9b59f537117047997311588cfb84a67fb329bce9d077453f19858d1c7f2fe0284caf72d876c0a03e71", + "3f48d2a15eb5f324f709b3aea0de8b1a76994dbdaea03faf94054da653eb64c3cb16c7960654e8c8b228ed767549ba2f6f1c8af220b1efa54cdf2ac338948caed263a823ad22b488ac07c017453baf08037716bf1513a442148ae72e805e1ab5f46e17c76b8adc1de87489873ca76215cdb5a76591997ebeb4ffb714e0016855154c799f8d4a85e1c5c40b9f73a281e8fe5c604be0c8a02322f3c9eed802f4066a170d04a51c2d223a65e55d6ebde72668a5cb8f896f3252b1b8479551c00a3b434d331c53ba2332ce01a43f6417dda0028fba0214ea3f9746920174dc65db8bd4db50cb6da8c23dba3b4e541f59e41f202aa890d8052907096fa94bf74aabf0fa261692ce9afdff08a9eb5ff2e170c705b6872436b1520307e1c2b136e153d3485d5640ae244d33a5e6cf78f03144a7bab69b82d57ce2458df442f6123041d4d19852d035d56b9b0ff8", + "3fee9cb76f8c77cfd26f5039e5a5722afa1fcc5dc50ef4c447f2e47b30d3c7b58a45c844ce002d53ab0aecd090870eb4b63228d1e7d0fdb8c2540626aa24834bd33b5e525509df712a88ad24bde0f6014af8c833c763ad7c639fa36599bdfa3a21190d002c3e0c58a1cc" + }, + { /* i=6000 cDividendBits=1705 cDivisorBits=956 */ + "4a874854635dae4a91423ba822c7c9f96df10675f41426c59e11d97217437d09c8828198c0840a3cf35c1853e2e2792530cd3628d8f65aa3c90a08d3017e0a5bca81f9365263d6293844ec31389d86ab1bc3441958d013a1c6892afdbafb918094106a69fee89b0a476aef23bdbd87022e6233c7e7522f5914fd8c3278f570fdfd79820927827d8c8d43c3f9087b6c9dc407a291456b3e4ae227583eb58f5662164990c8ade702d12389d49d0433cd01a30ee5397ba8382fc44bda749ddfa9d5a6a7ccced1599fd98ad0f9a5ceaad3f6b88198cde8", + "0b7be2429c87116479c23bc2ec69a2d1557f95fb9a384bdfc3af9faf1f5bb236a249767b63871a349f9bab8d5a562d334e2c96252c818571c3fcfb99d04e7a6faa452bc80f01580540e660861151c775f9a60702fc6abffd6e5bdb681a6a3ff68af11c84de578146d7cf1726989ceb6c661df238d3062d11", + "067d641402f794df1860f3db4068e56c25c0135fdb8df0da1b4c7f2fe9f466c17b9299b41422b36c652f78a73de28d75cf48b05e8912c3854600f786fd73f8dd01a86bba2c1524715ad6f3cd3a97130368b2024e04eb50d6c9c62d297b20", + "02b26b4ad3e2840022f66b9a21a15f77453ec2f3d3c9f823cd9165a590f1f8f75c5b289d78e7e18329592645c7a9b5c4a69874201d01b522ba7adedae7ddc80b25c176e8e15e5ffc664a47521988c792458f7d89cd6424f787161bb17c86b392b6bcbcfa4a97cccffbd4a49e2d979754af234c2af47300c8" + }, + { /* i=6001 cDividendBits=1438 cDivisorBits=784 */ + "13d0b0f1a4864d141c4f7f2aea0df64d871887932275f9355307fb37495d7c4e7fa0dc20b386133d3a0054b0e73678756f80dcb48d08f6aef64b05ee193f8b700afc0a2de5093333f5a8fefc65efbd9ba414dcf95f0e8f1fe54f00e657be9c9abafbbaead3e2f069317d35f82e1e2b7f0c181fd9329388f413daa2250a1959efb030d22220ff1cf7182484caa11a5a6ded14769dc85185fdbc3aee3ea2ea3bb74912604f0e4fde32d080542034fd706223f9dfb5", + "705704c588559d55b98faeb623970ee913f9c2799140e33cc5a04e579fa33b25eb5fec03f4801eb8c65a74a046001bb50cc3088230dc34745a1b33fbbf4885ef4fd37f0185af7fab623cf3eae8e92cc08cf779bca22980f0fb7bba5066758f5b98fb", + "2d27a3ba602cb02ace7f728e660f5e7d4443391c0ff9066d110167502200155573684fc3b783d62139fb9d52a8f2af04443bbd32f6bf2a221d85afe709b17cb8508e8cc8125757a543d57a0777374dbfbf95", + "368713ede2fed2ae72107b8872575a448ba7c18a6a8a680db59bd9184bd0bd9e7da4f7ce1f1d114751c7f5c85d88580c04c0e8640f30fa67758a7793956ce0c758c823d8aaf5e6852a786277cbcf70e71ecf6fc1b286becc3f27cc440ab8ba41909e" + }, + { /* i=6002 cDividendBits=3850 cDivisorBits=2743 */ + "029fdb1e29d1f1d6a0d43a66c94b0e97abdc9bf3bc21edab052c06784d17c1bce134d60c9ac639da7848ee1815c327f4c2b51dec476af81d7c7c464651cecacc3422da1109cf09d22553e0f1023964df37098be14bc2c472d9f188860bcb9286fe0529129f3488b212cfd53ca041eeb1ddd104ee56a3f0acd7e23d4bf8fb8d3656f9c892cc46f378dae22ee0a803340ad0c3d486c97633893cdd1fd88ac153f72c54c4f5d96537e246e19b7c98761bf76859be768aaa5c6ccedb8797052d4393e035e9cc92f5ebf1ddd4f983ab07e2be079350bffb3796236768a20930feb706004043ba9b326b2bb87369f17072d334f0ef14d816e624057ee3b5bc96427e67076689a0db2161be3dff7c466d90e0f3d1b8fbcf96ef24fc95516e1e6ffc5e7f89abd19026ba2782e8d817b5c7b7486b380d39ddcaeb210232e998379f027be2cb68073e95892f82cb5ef9f5fdccfa52444d7bf1530f3731c8759b0a7d14418bc387dd89c9e071d062974917106bd3bad2d1889585c407ac18b6d530f39f3d513c6969e48e3d884d2421a79f18db98d947c3bbd7f93247f164a9455ddc5989799a605ee09e4ac026f9a4d4ac3b50d73f5bef4db04e6a20b4be9b5d7d04ec18f87129a886b3b5435cc337c379698c394d01837ce847fc5dd49da0bd8d4b2264ee71c1", + "45d2d148934c449cc44ac7fa1a4851d6462c5e70a67da7f8b6d658d75bd8eaca9f67492bb377d8e936764aae79de784fc40454352332fd6d38656c218171d9f37048b2b18ba81155241436a6027ac9d53cc24dc58337cf72e7dc7d454b47140a8aadd4995dccb170f6e5c459e6b27165bf98da3421a555fd636362a54e05d002cc9fbc89c177aa6030056bf417e1fc0fae26ee8ed7a094b2ea2e552ada3a43e51b57898d50672ff482ef9f85bc483dd18a69526f4c59e0b1f098fd12163fe450dc1136d76151f4f1713d4133344789e89872062cb765a6155f7f45984cd5e6297e3ff3b8c5d2ee8b1e92158736bda9628cd4672e69700514ee1206c8efccb754a8ef8a2e8f6675de337cc7650326ca90716f45c6a8a2383b4608da3f4b9813818f405c4f7a7fb55982f64d65bbd410e824d8c51d18875fb2fd4e10217d79ba8ae3c1218bc538861d9b91c3dfe9463fda417455c05d82a5", + "099f48ad8c32072ca8cb46ebe838ee0d88e6f11892401391196157279512628dcf8aac2050920da28f572a4c48d34dcc62789b3870e86e011f9a88e1e704fbf9dffdafcd82ae0fce80937031f27e63bf69eb123ffea301957227d0f42690c53016e3637ac41a31efff2817ee504be23f26975bf590493a99201e8508a6688b1b7beb41de82fe4da63e6b5f", + "153e7d90982a4ffa1990030c514cbd77fb80bac3dd102ece178901c1100c67263ae1cab9982686f3aeea7fe7557a1ab6e8338628031c4cda6a12232588904f772db52ad014817652ab66da8c1a0375b89493141d3512b487b600d2289bef562e2b73cf2eb035066043b50f46b1408af89fa1e136dd27ca5e86b96dc4be71ea812f19736fb53c30f36e26afd8fcd92564cb8ed8d5003363b4d62619e15f7c61fa3d3639a5222942fe7586f284bdf38b17776e48582ac4d425345fcb59bb98cc44e0d930576ef820268db197e7833c1fd6bb9692e9e9271f7cde7d0a5ff328329857e51fca8e4f8d5f0a3454264406c8e9ea520f58e9199e5a1c7278f7a1b2fb2529ff980002b99bbd397235e38bc5a2776d8212b600cb29a22a1c6ee560ba75917d10959d886863c1fb56d92bd60512484b7fb88bffbd798b6ff5e1851cf7755d413eb69866a64891523d20787d12178a980ceb4aa9ff86" + }, + { /* i=6003 cDividendBits=1957 cDivisorBits=701 */ + "06538ccc541d304ad530572d9230e9f579627a6dd27263e0b2c47f42fca210a8104a12bc1aedd59b9e3dd518c3c90eb8a6aa8d30ee08f97050c08d84b930c96584f197b8103f4559f195415880bfc48bf4593179b925eb601e441238ccd1d8346cd4b6361d81509a5670db60e07f226df8e2284acc7f6ff73f3a8ea1d2e20f40b5ff616e0c2a7a9e8aac108a1f6253b9498f0bd29f87a12c30d614f9b959e0bf6b3ab9648d394619011c3cca74f778c76fba99f8407777671a9e5d59c810fdaf5ff7b9a705721e60389fb76da514fb10ba6a994564e008977b373ea4e3cb6e46e160c50bce5029ae6b40761d307de74619308e0919", + "0fed4c39f2d40f272c1f68c9cd866b584036de7a4347de753a79e6f46bf53b9d1157b5d80db4df245623d72dd46107c7867e2cca21d7c9d7160fcc31d474716a18ad5cca301f4c92000476183c334024fbdf2d2a48215934", + "65afa8eb2dadd198f7e5609bbb56cde7a87ff7c686da386547817bd7fbffd1c98c7a725878fb7dbf9d2bc40c63d3cef1e5c85c283be057ba4509d6c2319da9c0b474bf7ee0970225344326c96735f23f1c1404bfac2682d4b80c0655bd50594df01ca6ea632db61e92dbade53d74ee293395708cbebb85606d0063abb42278149b2ed1fd16b3844e9f1c73341d3b57f3e80cd9403c37c9e9526b86d1bf", + "0c600122c68218ee93dea45e36edf4ec6ce26e69ada10015dbae61cdb1bdf41a2d25e57411100bbed83c5c8ff35e2d71abbcd6ca78220acf760a025d6b47f9cd671ae330e50583180f3ce103d1bd498a638a7644b8a1074d" + }, + { /* i=6004 cDividendBits=2114 cDivisorBits=1614 */ + "0fe350b1de43405e364bd9dd876283feeae9751a41f443fcba92d28b59fec27b46b77d2706495a49e752f95d7db07f507e08c3489b59ee170735ae21c179f75626dd7d4488fa83aa23ba0c8930f30420cfc4c2b7674fbd3bc4e4c5983794a835db9337490a00548e1177a9e39be2b1a27f4d9e06be63b615672d2780c3309c707693cf7941f80fdf672fdf61878c2aec605c8898562807a39594f2b76d95f319b63d5e6378b1f364683439839b8f778afb5f170291f39b07a2b66e94179c29226ed38b9b8bace9dfc56582694681b2000a7a79d3b915c3662c1be0d0e49f1e3f6f9274253cc8cfad269f37394681a790cfc17e3b1233d486892b4a7a7d0bcfec698f56690631b879", + "31e7e2ac668a9bcb43c5a2c2d6b384c0d0b4c4600e60b0e3f322a2591efd7fa670e00cc72fe6e666425a57af700a3a727dfbea724340eee56ce781a76652d83b28635c17e8f9a03754cf9cc0464d67ae7af60e64b919e20c9dc4806e22aa6badeb4a3181e5c87dafb49160f58c74c3afb1de628fc497454f3abd869992487c4f61dae9a3aaafce190234667af18394ce2b2bca05232535e71464a59be9e3eda4477bb7ddd751d5f85abecc5326b99f0a1c069d6543e43e4a7442b43c7f4e3e4b7996934f5dd45237b064", + "517ff5e68fbf982280b7e980d8dff14d698b2b492a535c7072583610b519c3e20c406923afb81ac9a90bae8415c904567a34d52013fca6863a18e9a69d11", + "061a5ebd2d72a22530709dc323d74fc4e7dbbd2daaf02b070867b546c8c9d7ca7b499ce40ada64ce1557944c8f7f39e8dd337eaa7a11e4efa7584e010d6cb201dd03b61616a115d2786580843a11f3248f2ae8864ac18a1e63ef0539bcdbad2aff3755589573a40eb2c6a0239509e99d7179640a9e2b256e021c253cd7fd6b067705c3a454e3c901b708e64ed9754e5f2538d4cca7faa52721cf2f79f8135d129c1e8415e477685495f5a1d94e75623ec4fe1f1772f62ae2503b22ad7574463188385eb5b3dc0479add5" + }, + { /* i=6005 cDividendBits=3802 cDivisorBits=1642 */ + "0346b46f8dea7afe17973ac3c2c5fe1f6f94befe0c262db4bd2565bd27ec98886ea8eb7477aaa9fc46805b1145a3b01041a77bbd27bb961f33018a4bce817818d15b957f7d7a662666bf9c1bb8af8832752101e9d2983511118c283316eb15532d293a1916c4f920abd5cbc03d25b4a2dbbeca12919e3e2e49436e8366c3355d5bf5960fe8934396ca5d82f87d01c1212b3d4ad6c3a064677a6318f1d2a152282cbe046780889151ec6551cae33f8cfb07298525c557b0d4532f21d9298d96d39dc09ae804705924fb7f01efa4c4d13d91e4ea22b9d3d108c652195fab45894f00e7fb7199079d9b163f632eabe2cbb525ec4713fb714a5b7794dcc5569af3f406b26bf5b6b49d8d000cf866a6f7c752f32ce5eb7caf2d79a479fcb4c33f1eaea0e78a47be4adfefc178537d9077528efcd033c5e4bca370198245982be22b2b8ebfd45239dfc2a1a9143a221c90d937ab0f921c2c8e3976aa9c87009816777b18055841f8f8cc515166274ca66bcca9428ce4193982f100c8a8534d2c830d92d01f1c1e99c57cfe65a083633b9da5b234bdf9d017adc7e97ce12f3701f5a38bbbb3fe9f941975232d6fa20d3ebce0b9062678e1580078a6aa4fba0147e4942c69a1e3194487411ed11aa5ac92028bdcbcdd53901e685d3f488a6b29", + "02c8ed76c2533d1a020efe05a4fcd3135f72f4920ba36e043ff013b90597d3a392937b72e109f2fe2212fc8ac9f36039799fcb29133b6a7cce60a8a0f14b8146aad0d17903f8e1de935cf6b43ec62ef47c3d4504ef374c6c86f0a100e035c711526cde87f68df3d44fa475603fdb304d0fd7764e5a1ec98fbc9713ac7ddceb8c6e95b45dca3a55b89734f71cd283ee9e3deb589a6143ba91eea0c75358c1caa8b4fcef710ebb7158b71685cc58ad9cea17d3b1fedc899ec5521c4a9cc17b47c9b3cf50043d07b89e780d790c20ab", + "012d2a18674d94af68f104f805b8c3336b29cc8155724d018b1a4d4e6c0a8f4c8e8a736dce4eed023e9c4a16a1059eaafddd820cdbee164d411298149a3520e674b398af11d601f497795e0d22c3be4afd34eac8b3f58f8e155574751e623a22592a63cf45322fd70e6092033638f25f51f74412630deb1c383004d4ec47e18b6561846e3e4f06d8b6cb45887d8510436c838c677361d82d3b89e7a14f168ffc508a8d074c3ba97816430e1c772a1fdd25e8bd17fc322db1afa24146ba9e10f682d22f880216917af1a9e57669a10d469e6deb8a7f4c19ac0857698cc471fbbc6f1f7707df4f8652ab226efa7cca130bc7668b1aec63976bac86654de5c8d06c232c33a23dfff1287774bdf978f1e4", + "022891a8703e7198ec78bd11173b25568ed6a7482c81a0b8596b1936df92407563189bc9b95ab825e04811f35b3aafee8e9d73b30da511ac8d02bbacddae7d505f1935cd8f50114e53bb6d80598aa3fdd6460d04b6faa67c913c7d1becc2037416a1cba31bd3b85e8700a39ded7e1d1514d301ade521b65c054345b70a83084cba7cff3d5116df94a5851d943420346b6c4cbac42331c529531ac0446385c4faf01dad943e83f084b3cbb480d895c2a0ce611a1d6f6733a5f4e03e926f45a8e19de2512c0a505cf49e966bd457dd" + }, + { /* i=6006 cDividendBits=904 cDivisorBits=607 */ + "c595ddabaf01ef763be408184f29287a803303b6cb6909b9100e6c9cb6b92315bf74d22891af2c4e9db54afc26846b1e18c842c4b2b9bb003b0a18539c75412092818daa1f25ca4f03c9196e6120cd2890c2ac981e578863c59da02012b84c3f1bb652de1ab0805e20a4b4b7de33eb95e5", + "59bb9ce8e3261fb65d48299990c0175e7b8c5069c339087478db8d3a37d2952efb5203af4824f199721c7949206546e87e744f87450ed873ba82ac7654453cd437bf39648a0eee2edddaabd0", + "0233b1a2427a07ffd16b7bc3202a17e796b9acd8b5b3ce7df2835a4df8c1bdd4fe0dfd14b20f", + "527ce344785654ff2cd6f07ee9f06f5d706bda3ed17fc51bbc15dd6a1021dea5cd3e7d065f64ef34583413a5787d3cf72b19591a3641189c61cec04ca97e44160c8cc4702c7aa26b2c64e4b5" + }, + { /* i=6007 cDividendBits=1010 cDivisorBits=546 */ + "0166ba41ef1693d8c4888b816943ca19e41f55a46ada7179255f58bed5884be6b43cb53de093e893def11e40ccace246cf363653f3681fe268b86ed1376e228acb6a0dd46684c779fb40c6ce0044956441b771ef8032f9e61121d05b03da61f7bf43b36029085e2a4ab23e19dbf3f913659616a5b1624053f4baf4eb97a135", + "01bd91f0328448440b96073a03fc8e8d6faaa73040689719be6c2a1a45be353dfd774b4863d8eae93ea08913e35d4b88bc7ee2e5b149e934db4c8b7d876ce7dc67f14c569c", + "ce1ae6de4e81e96f1e8e8ffc31c0caf3a6ffd26bb1ca8b131a1815c030897be375f026d33971b08974d5aa4b8eb396264a531775bde2a7dc23ec", + "01811ba4d35d1280547392baeabbcb9da9f86a3d5a39919b77c027a4d8e4424104896837886ec40fefffec49c17855f6ee57f8773f7e788d5bd5f9ac5308b58952d7507565" + }, + { /* i=6008 cDividendBits=319 cDivisorBits=42 */ + "5346dbf87d95ff4d9cb16f0e4611d4862cf8882c7cadf1b9b9421bdc959010734b611e66962427e4", + "01a00bc29940", + "333dd97410057ee3f0e464257fe75d0cf103a3ec8eaf2df9965a9b4d887e2357865aaf", + "2b2abce524" + }, + { /* i=6009 cDividendBits=2789 cDivisorBits=397 */ + "170d8d261d9e21c5e6041089152b32e0c1815ef3e929bc6842df2a7238ee2c967d4b7010210215063ecd532a051439f5dbaabae699fd9b047146c057395e06b810a727c93e8dd08b6786d5d3c78ac95fafe9125bff9cbf4038a58b8a79865fbbdc3947fe202f26eb51f05eb66dab6537de9e30a576990d9150e7ed6416b6bf74ab4e8cc86608cea37039f4c6b9309844c97de1671ee5a41b93a474ebc1a966ad6df29396d45387743ff3341f3cf02d46be688418ac14bce5192f2b8b994d175db4c815c1d754de82b00cf23de8f661f5ff017616b0a9afa8255268ca589cad7291ba05bc60e94515816be53e36fa1c2391d738f1fbd9e9d3564b88919c7bf213c82fa809247ce20764fa80ba15f5bf7a5271f15e5cbaa3f408889959d345f0c0541b62f7fc92fb31766d064d77553cc78bd7d1d4bac1b3ebd67dde9fee96d8449a3682a80826f1e6bb987d74088efdaab5c652edd4684ebf09c15801eb", + "07623f0a45bbc285f2fe00f5cddcf33fd7e663b7839f896688659a5c94f858e06a20f6fdf75dfd355fdaac53f31616000a47", + "031f426a4991d90faeb86eb843a30726c228638b51c73f09f00882a99a99f8ec3f3ecea50c5e2e4c52ddc1877ea53b84fdc4c49b11e6a38ce40cfb84e610e0db3f549ce6c8b20eeacb4f1605071affd0aa9c3939202753574de4521f3bd8c964edea0a7c38930db9f571fd27ff331ec45242cc972490d25a36fd51edcbe7f745fb4c730b7fee3eb1accf3417eeec03042b23b7b7dec2345f90e5777f9029ce5b0a30bbe7a969fd5aa2db33f6dccec62089e2d2b4a584c5f91febd01e31fcbecaf38809d084cb0f4cb92844b7795c1d3d146b24cc00765e7618b1eb9a0ba6f00279ae7878d1062a5a836708fbbb3c62ce0d81267695079748a1758fd78f3baa6d55b44229ebfa9a4b00d603da283c9f12d1ce5c8a4d27c6a5566e012b2ba8d9dba1def0b4a80736219e94a253", + "06f61ec4db65689fc242db8af46808b4dcb3b2bf132c3af73aeea39cd6f8b5673872a314ab3c64359f2986cce96fd5c7bee6" + }, + { /* i=6010 cDividendBits=2804 cDivisorBits=874 */ + "0699e3442f532f3044ed9ae523d5152e4239da2b2bc5eaed7228a1059bf6fa8faac1a5992e58b1c2c3c6fd9020776c579f52e9c27b6615d178f82bc18a822b621ed84b87681d49548b887b70c63bb4c427ba020af61970fd0cdca13adc063fbeeaf2055b4866337a10a3785dc5ec75ce667c3bd882754bc94df221f3775d55628b197d1be36a4daa661f48675bbc17c42f0d911b6f0291e5f306c4e5e4695b2c1a11700cc59bd69ffbd7114bf6fd3fa4141c29d9475127c0281db72f2c376f7fd4e9350cdd5da6c460585cd8d8a282de0699573c64ab266884604bf184f1a8e87b621a8a163e2a442fdc6a46e12a2f56b1742b375854a495ef2414b88e1bb573cf9304015e3856e9951d17b35cbbecaa8b113614d619ec2885c685d3a51219fcbc6b2933d18ca4aa5a5e4010bc5e3dbc0c85540203e45c7e3a0f6f754395750280f28ce2c7059c73d5734313212c6ff0efb669315d594ff24fe9723f396390", + "03597f7547dfec575aa646c61b41415d8d29a8664fb452c12c72054f7e23a7940a711c8e4509c0cb9b501a4a49b1f76702aa5de78a05e5bb83c8e3ca255f19ff42baecac3173a617425f6f6db8b1a8ff8435d490f4b6775754e901c8d0765445755239be73b8676a73c5b1fa6353", + "01f88111ee508e8795d2398bca1ffa723992075cb7bc8ce1324f4c6b45c4878db27596d708a69c33b6c4b1e48ddf49ea934c35ff1c5ebcd5aabd16f33791b1b8ddc398ccaf9aca257ad30025a85e0afa6cd86d3435cbf6d7c52c0a77676723724264a4a8e59f22279d61e3d5e6d1ab50c2214ffeee761225673203c83a5776c745eb51707cf03f9cbc4324d874c05cf426022f577438d96836a52ae547598b376ca8b1da1bcf8bc93775c72b518c0d9a6206d6c14f8ea1b9c9ff8d0075600e7da3213b71d117d81da9c3a5d15086589118a238b303b49fac7a4539db2ba70e21b016772be1159c228c535a0522cbdf10ba23", + "6d350005755c85299589a6749ff16fe8f059b2165b37ac5ab73f1a989b12adaa8600d8af2c16d6edc4009d16ea4f28aeff225ce5ecb23ab1c3a6c4d86be1f558c55abc8a40a7a03a0d38da180bcc2a5ab07edeac53f412095fca5fc92f4c17c1bfbee5325682e36d1e7ba38137" + }, + { /* i=6011 cDividendBits=3149 cDivisorBits=2364 */ + "8035a6e05a1ffef836479631161a5be5c41b47d04f4a3d0e42b0ee6a053447b273e93282de5f6d1c961e8c2677a54fb692d0736d041177df344b34b326922b46b254bf63fd085f2a2c79d002ab25ca983c263f71eb85a81c01356b56b2f3680bd391184928108a640f6b227c61bf40b605442bc5cd37debc7b5aa21ca2acd825860c12320c51fb98e558bf4930f9eff0ab61165359732e63f50dd89b1363c8e54fbbae22cfa69e3ee25ba340fc2b1bee871f8663b348189d7f54fddbdacbb56d6e2b03fa8fe7cb833c37bf7bcff04ac62c179c06b4cf860538532a5718acd4d3da6063421e5d1221043b6cf828f0cc5fb79d7e3b57f7b482d4f63716380fb1e0803c4ff8c0a92f6ab589be1fa45fbf55ea1cbaa84e0b30b8ce8650492c73889696e949e9b891ff91916ae47023ebb074bb489953a40b9cfb7febffc30a3b8f70887f594b693f68122b62e33f2d0f9aa03020586eab738dcc8bcdc1c5e98507f9cd17d060a3f115696edf5d09058d8dfe2b772775747eb3602fb45bb0ed5d43361f2143df69d571e97a", + "0525c19b7db034b8b19e93a47175916fd3e1ba4e524224044f81eca657bed8b77e1b24377cfce5be59f95b57ca887ff75d277de32691a9caef368a3f95939e574cf397b91c79377b97ab029503ca2991b347b93030fc2c0235a7527ca2d3967421549caaef35e4a67b4afb2b09a797d2bbbc83375f7de26d93d14831960f78a75c7fc2151ae22f5c4df6cfb99c6f099dc4223af948da552a1579fd923508cc5e1faabb016764a14b4c0a697678bd7c1d5ac71ea521aa68cd8b8cc946476ceb5542e25b01c3024576237529550ea6933653fcaba6791b04f0b7d6a3c00c1dd8a8ebb39f47266fab77208fc38533f58b2e539a0407f286100a8d9a8050fc8c78955b339f020f15deb8df5b8ef75594af29e5093ea45ab0fc53d6a3fdb0baa2a45967c8185f4b652da8", + "18e83fe253712444323a664d186566e08edade7fd8c48bc750723f743daa24364bbe8e1ea320c7319fa3203a2f40add5a3c205fef467de8b40993a36ce56a783bc9b1510a08ec44ce11b17620be34736fd45ece6c3611e05c251a619c2296f74debe", + "02c999ee9e26adfb3f1507ad580ca5a7bb5f845f1f33bd146a55188f29ae68b2bf3632c0f12a232660b49c63576305e6f3c55f725e9265a9fc7ae1b6f8fc6e7d4a69a50d7a819954b232ebb6b25c84b67c9ccf7e1d0649ad44fda5bd3b22fbdcdd62b834c42e8b9212445385a24f7098d0623b7c71591a76131dddf8f79f67943d2c635e78df3c4da1deb161b0cbd64f85d957cf88f47b45da9960a2cd1f2976de307fe12f121f97e435b761cdfdc8fe572350719d516e395d557221c33cafad554ec2df0394fcb02b38ddca6eccfd0caf7b4f4721371338e9013b735334c221fc5b2abc77a9039b4a1f4deba5e483c7beb31c1ff0132fb0a2d4884ad8461ec5b90c62e98cc33b4152e95ee672ad5a5b8ef2f77dfa6e62d1cb7e936007ea117e138a7cc19aa256ca" + }, + { /* i=6012 cDividendBits=3743 cDivisorBits=1403 */ + "06afd3f8f69b99e5dc3e11ff1270b9ffd048c4349a4d781bf1af162eb96ecdb1c47b6638f678879ab7c415dd70b3d424481e60d2388fcd0339387bb7647a6ce93380869d36f6091d6acee8d4d1034715e50c92f78746635c9cabfcd5d9b9c3ab041d6c4f9e27ce871105d12d073969c22817e6d05e31ca3f297ba1ac02b33339acf9cb070bcbeadfc49ec238cff62686094464977369b874706f5309abe0bdf0b93c066b729990491a4884c3b83da4958c557ce097ba1d30393b792b5d553e700cecb49e7bdf44519cf4e434cd549d1cab4ac0a59a613279318c94c0b24e62f116376e4beed58198697140d79a28e75f0c0857153be7fc8234624e1aba3c70c8b5cb7417a4ae3fec79de4d58ff711d18426e8aa0d2331e6963b5044d2422c7876f2e3948c0517c9d2bbdc353aaca7cb12dfc756228150ab2302013aa5d177193512b4ff45c173f697556c32c63d7141ebafcaa7580b3540adb6a4b5906fd9b342532d4afe892f58ccfff5b3250d69845426c16056e9ced6f1207fb1e62233d0f9d570598f106f180478f95d4759a13d2373d91bae2838b179687ba72b4b7ae378240b4b568346ed62ecde38948003b26917492e43924aa9c1d4f6ad0faffcc2d167935c556d8c586b7ebfc5e2152ab6fd4f21c0d", + "077282340c9a79742701cb417287568ddebb5583ac86adea99c1b2f3b30d5f6681b92f1ca0a2917202aef8e8d33988802e1c2825402798700f280c405b433b3abad61800d3322a7f0066faa4e6ad03793faa83b9b074fe0a86c62a030745c03c1c7a5b813a338e7c209acc93f0605e5214954d35d774414114d2cb9870e770243e2cf0266ce14d5d9555158c6b8ac316b3d5b97787e726e7a084da7a921ef04632b777d11c79ededf1db054964c751de", + "e5dbe0ea90c2def4ee2d086ec94df1e8bcdf0a8ed6018c92e5844e0bcd21a8c30bf63b05ab48a1d3485dc6ea31bf5977c8837b149899b1f0fa2fe4387d0bbbe61e2686dff9ea87a2d01c6c9b19d979047244fa238035f602127932e98087308001399222a2ddf4787e984f09c92da8d10d90fb59ee6e85bcad1c41b2516883896cbea067be5e5b3bb3c8a22ed3fc918f82b90fd5ce287cf66bacf61fa4c7bb80beb79b4c29409603b2ee182fa047ac5a0afc64cd27bc659299e74789f8f36a6110b270e4f7f00eb17a1716a289ebe17cb83f705b9dc7d47f89941d6612120ea813770bcefd88f4107f1aa5c82331499c47ef42e774ef707fe30ab05b0830033a5ed701abe62e15a2c893cd46d2c666e54158347b036158fbdea8a9c133975d0ae19ce13b", + "03a89068efc2099c537b66dd6a63908bb449c260673b2d97677e03261f878d218bd22f36b0f9d94f25f0b7fee3303db528efeb38802a77da263c2b5299d1b89242860fa21186694efa5d19f3e6fd5b3c0c1c6754d09d8ae02de8b1481d356a0dfd66ac33f7c368121a2e506a63e41862d772f06642bb1e3b6a129a167dfcd5daae826427918ee65493b7cc98976487a1f686aa6690e772f676d2a94ffef6c6f57536d32a514ad8204d6d80dc6ac61fe3" + }, + { /* i=6013 cDividendBits=2220 cDivisorBits=716 */ + "0d89bf52d9cb0c4f581ab154e04d01f1042d8928c7d3178280ff8ed85f9588c88deb5883bb244426e66081a8a832f92a3107479beab7e4bd083f4ac109813a0114effaf4eb7e8493b4a78da70bab5477879e665a866be10ff571e44d5f2fb77ff78701777964d264fa9610e221eed0e2385b96f85037eb819dc0921783f6df9f51927b4940225e0a472f7188869e17b73b1029411be3814999b84bf9f63ffb25cb57865d10dddc704adfa39828d815952db6473c213c4ae968dc8bac5d6ffd8a7cd9dede1d01ed0f31c76dcc891c16a5ddf487cc53ed9a00a75c7a18c0096b70451c127f1407f25ea00903850f08d45238ca0b3daccc3d59a6fca7450cd44b3773e9c6bab44ae09694ad15a33e5c44ab5822ca794877", + "0c6ee5f805514cd3962acf3112a9710cccb4e33f3640bd1a3ee0dae7084d70024296b6d794bcc1624fd518ee9850488ebed3beddcdd80d92ac46277bfb9a70d4465cba036e89a035b8adb21f93d2e6bf7aa07a090ee77ef129cc", + "0116bfdf6dd6bbdd2ba1ca0a50e19f10083a98274b5e77150c271e8274fd404c9c2ba1b6760963c21aee4f9f3d68637411bbbfd2f2410fba0f11d33908c5f9fc7fc4be0efd9d21454487406b06be67af2e57a78fd2dc59a391f82c5ae4ce1791e12321795d2944724eb352c54d27aedfc5ae4d3c6c8fafbc54e88dbcd95c6a5f4a7f8d283ec5b9a668cab806496445548b51100e584e0792fe5bf512fb49dd49b41800536b944a7ed9f37d1e5140ab1e427045fca772dfa67c4e0291d0", + "012f6bf84206c29d1240fc4babefa4b82a0801167167d2f200df4593ee654ef2b0509d428d64e3369c70f36fd2dfe23e2968e35ca7610f0f9e1c80247f05b88b65896512f9c844b39f61e9001284847b9f0736c31db69242c6b7" + }, + { /* i=6014 cDividendBits=1374 cDivisorBits=1063 */ + "2b939a3d54e9eac7d94ed184ce6a8d5fe999ef401bbf55f3954f712ebf53b810cb526e438e2bf342f323fc3d58a7da86b6273b50d331b7d45dfe311d1dea422dc3c7f618ec90e1d5e65c94901b49b0be28c811733775945f196cb26bb03f7a73f42c36c8749420b8500ea2ca1c99b10ec273453eb7dc4053b13862b4d23f04b2018c19a7ca1669598c59c2dcaf2aad4a1b4cdf5a07bd81a2f9f0f305fd255a59210d1cbd5238723041b22a80", + "0dc81084397d892bf84cf25b2dfc68600f7e73800ff3b51a15afd9cae3e7c4475b36346d8b996df4ea2a45624189553afa96c0b4d578253e36f4028d9d1c7f6d1fa03151b12b9af65c0d1e210de420b5384f9be34f336f22f214609666af2f7fa0e261dfbe8de3a228ca88de52c190a6f08521d3ef8396ab94246a0d5abe36afc307f5a97c", + "0329764719aa54cb9b74926620982627b0c842ceb37280334c08f203abca16cc140faed0902023f6", + "0b70850c71e55f24baca717fda59bd68699ef4f0c59317dc8b315b1524c66253fb757d956ab1f1e051d0899737238e3a344ab3b3ec073c386c510f699b3699ce379374cdc1049f5ac6be3290a7e0be0b493ddd482e74948be528f70d18139be62387fc35669ab1fb74b1a027105678b7870e78666ff49eabb0a7dc988353b8b7e515f55958" + }, + { /* i=6015 cDividendBits=909 cDivisorBits=803 */ + "1e9f28da459d31fac08b19f6873a1f79fc3f1c4592e9a9728bf281ac17250d7657f7209063938cb47ca6a00f26ad99dd727bf4558f261cda36850ca1d915361061e35cee6bba675943da77992f3ff7563a26f290f71d8df7a8a19af14a6dbbf18fc96ed58737cd3e7542469f507ba0f86815", + "03fe40380f87b2ce4e926f5fb5cb3af825f90e8eaebabf7aa05eb39d0800086b842691690f3f927d03b6b9c86114a967ba5e2a8477b8b59192af53510ee0f3b8b16d1204a60c0002ed19ca9d5710758edf2c79faef998a31bedc142021fa00422d340067c0", + "07ab24ab227f17d373ed1f56d975", + "016cad8184611f48da3d97f6898f1b977a4ea2bd6f1330651fc1da563f34e3909349c166ea79972dc58e95ecee6037a2063419b8f0d9924e87bc708123b218a095178bf539b7d8ff69d9a74b5af0e5f0cc3af38c7f9bad5f6cedfe849a01b1ef4b6a573d55" + }, + { /* i=6016 cDividendBits=2496 cDivisorBits=1557 */ + "f7bb38f194593cc4bf28f33cde8a2fe469ad2a618187fec7de97ee5439434527305ee390ac39ff55b39dd2c4afea35b9c78dce3cb309bb3b5ddeeeafcdf15f6e23c189426e2db6682833b0e016d6ecaab2813b2d4c250973d5fdce3881154f9db823adcb47d66a7c87559b8910485a9d1b11d756f19cb00abe4e9d51a98f9cee347341cc6d622812fac6ef14e38869a0fc8f6a55d46857716b2c39055f9695c73b47e656bffffbcf47e18e13d3a7d17e841631f60e7dd3200b9ec432e8365ec773c0bed6755584019666369bee1c8bfcb625de4c58b02c82adb766f31fbe48dc767c0cde1bbf93e11fe68dcdc6630bac2ab764cb69c1907a786c169e0352f913a7aeb140605127edd3af4510506018ac70e6125ee0a027d569c0f61da08f5dce260272175ac92c38844ab1b17abd5ec7b691f631c6ee6d8d", + "19547225c76b60b23c9e76ede1e62502607132634fce8e4d9a47412854b1b50f74114bbc3bb2d05d42735b9c13bb37278316ab06f9cafde4bb67979260e636ddcce78d5b66fbe4e347573977598e05fcc0e210b17ce2b3aa0267a5e8acfa30f642f8fa5bdb69bcd9b7343087c9e1a646f5047fc17dd4288616a9f6f004a070754f76595703379a1dae7b9aa7beeccdd2e35b06bd7805305a6b1a0d7ac2acd36897d3ba201620736103d25f23a9b3356c49816d71ae09db460aae1dd9a721e585f64550", + "09c7bba3b671a3e794e3078359cf1b6cdef9181a0c981c451e5b7ac1233d0bdd5db418a61fcf52e73e9978fc27f4bc9caf3eacd2186fade9d1959f811f0dbd6aba538101e1f7112c0ef18e7ff038dfb59c725c120adf9f2a8a09e4ef68776b971b066459f8c26bd82a63dc408a0f9eee8472ab9a1db9", + "13398a6b666a687cc0c8c1d3ea1a745f2835473d273304060ac5054f28ebd1de5eeca4c23860b27a437ee584cd4fef8c87536267f713a072e23a1885018cac9ad349577cfd8407deb9bd4ebcd0e6cd3859c9d5ddc2c9e8c4e393b16c45c30c7452f58eff2fb179322dc52a4d56937fbc7d50615ebbd53b63c79863e6ebae363a4e025be06fee8ecf9d14938727544e273e2c7701c70e1508a68788af4beb4cb7d1bf2c0e56d9059bbdf5e254f667af58235ab48f6a430404316caa559d4314effc46bd" + }, + { /* i=6017 cDividendBits=2329 cDivisorBits=2148 */ + "b76d9a6d26468eb926b2828dc583d18d3608d975b69e4bb59486568c46771f05afe4a3a8ddd639df15e2a9598214700b6baa2ac80cffd2701f40ef29cfbe47568c7deb566c94078e32bc2eacddf340bc4f15f2a2a5f62c09c74627916654b213c9f33e537adb43d2626b476b64e816bf2db3821951c59e629883d0782b02af881c910e81fd39c218deef96fa4023f1a70fb7b80e4f7dac31f2f95eb393410a43b5479a26080eaf4552f36e72ec5fa51ffecf2a4c86a57f6fb37d875881f50bc33dcabf58468f65d94f60a4a7c99e53ae8181e9ab49c0a04efda275261c1003a4b9fa719461fc46a083a91aa1c5396a776cfd83b20fb9e74608bc5611aa587aa087c4eb731a6c49749a4b241597fe84e36b2e2a0bc39e563886fc0e1439891dcc087893", + "0587d57bc861a1959805470a2fcce7e46224524718109d20b0ac68c9a53ac2c18d80ed5ea648be477a109b747265323af1eac1cd98ec3deda7ca7452e798df62f81181a1c0dde6021f22e17f8ce4f766a21c865cc624a1d7cf4e75f802391452502da782a7da1f986c903bf5ad80e5fc1bd3f7fc4b19d5280b125e25c1deb803a9f396adb0b985abfa9f6b42273f8e31952527310afe153b573cc5cf324067ab6c28f9ad39a7c755cf2429445192e23fce722ef5b0f4d57947eba22da6159cbef8ce4e234e3a959ed96ab849444bb364e6500f4ed0c7524fa56e314c726ab671609f92550a082dca32f0c3a4b884606abf0d3aef05c660c2d4f894561348440a284b8dc530428b4056597c4700", + "212a818ac2fb0247129de0ca04922e3886120080430ec0", + "045c6399ea49a096c1115fcffa12d495818391fdbce4c4cfa4e95afbf4869da1881b1dcd34e047c9cf214623464d61510a461a6e1f47c9bec04b5a9b097266a0e4c2bf1f7748201313850b3c369d09e01fc31f491da529ce20490268f475709e8d5a47d684c883c2036846763439ab187dcf9c4b2bd782ba38a8848470aaeb9762bd871ee193108fa80e7bede58127baf4e7ebb8041d320e245a58c02f036d675c9cb4e323912e9b0ba9392395f2e36d7cdfd36fdfa21e9a0bd7fc2627eb201526117fcc6b209caf19cfc1ecd9085daa7d5e1c2ac7e64115e65cbcf8bac1bcb3b291b2f5aed0b0dfebae0a2514aa63f4bf1bb6e337cb2ce4be36f9cdc78e370f20a4648ebba3ef006f4df13893" + }, + { /* i=6018 cDividendBits=1188 cDivisorBits=19 */ + "0d1474f2ebeb6a7772649f7adf0f03449276c3c7a4c2aa2ddb3194909f9a05b602fa46261d5b5449e71635720b8c1fac8149eb268cd2019b9c35b70207ad710b1ee9db22a8bee07921832aad6b1b8744acbb9435024e217e9025d2cce4d75456c22318e884855e033f401076fb0b40149919a1444cc92e2f902842330052a847390c12f018cce15ec816cd4d4b72a1e752389b5561", + "06b338", + "01f3c3a3787c5a0cccbd4059159491813afdbd774c14017699ef90f7544368c87c0ffe01df99a98604be0c38a1165fa65ff72e959f95958d7e5268ef4afbd382bd529ce4bbe39ae57776d32beb53733d454f9fb04cfc298c16510ba76267442df3c5c00f4d0cc3ba349ee838c00e83cad32dbde96c7a9e6e4c21f98bedbf03ce33a39169e04cff08a81bc4c5f88ebdf9659a8d", + "02ef89" + }, + { /* i=6019 cDividendBits=2763 cDivisorBits=173 */ + "07bc6366ce5da841d663e09492d9d06948b9cab2e370e363edbb5914c887f58f57632b9e2672ce807cda1ca471456ba91ad64dc27310fa268c4759d68f49bcada129cb9d15439308bb641768a1e64ff6747b359de180b0f0247ef3b5c211f6bf34430dc1ba3415698d0cf34249b33cd7f0609cd2da97b2f1afe95909b58ce0bc5caf550c6d196226d464bdbaf404119603185bb69d845952aa7bdda73f37c18fece1c9a8a1f9c4f8dc2554f40b75c3de7d1b1b823f826c558e6cafea6212795330ca131743e3591f72497da1554a08c8f8abe1651849dc57828bdf72244790e6203cc06f1598ce8269fc980230912e5e86b1681411cbda49856d20772938d2ae4e31724408d34ed61c75886fe390eff4960d716a2fb0e9f31e32e4a49d8f56d21aa927481610e86a0d2d4070c3b00840fc64bbc3f721fb3a4d1790af7c0037e0363d5ccc5b7e6503512f2f5b3d7bf7f20a68bff19d1f3f85aa24", + "1bb42f918382cfaaf194b15369fafde461c4b0f8b74e", + "477bf61fd8ab96d38d836ffe13f4cc1749f14eac1b0b880b3dddaecbb609c425e0c12beb468eb8a63b98c459cf65ce9950d0452493c1238ebd51df96d5f0e9f7fdc3f030637dc870285ee6f7706e76850362c5525c638160742d0db7be5467394baede56971b752cbabce93a74a730c187ec166fe18c641b1aa3d654e1db8bd20ad8a470da648a4909fe88e704af0e2681dab557e5d0e68e21a0d2998e31f3e0aca912bc4d9f2020cf7ff0711c90d95c4b70a4276e9ca7ff9eb5d773089de8231a96a0df71b083e3b6b34738891fdc50da77958254a915714db106897fe2013a02ca4d80605fdb327e6ad3a354cf1f83f98cd2406ad59189f608be2f95e60a68c1459fdf404d840a9136426fc0bd9a917c68489ede306e84be6c2ea8058a88f32f4e61a7381fe02f6d137569d1bc75320c761eede559bb31fee3cb5564344ec6225fe6a0", + "186060c8e333f9cc5c27f91f63a01dcf8c38cd710564" + }, + { /* i=6020 cDividendBits=2598 cDivisorBits=547 */ + "01e2f185170800e5a92cd68c9f702c9cbf805f208eed4745d34260077426f49a8a178dbbf3ce59aa3695ea59a5299df4b9ada043b847abe8bb1ffe209126cf7cf7334440c6fb5a57e9f8001b26ff428fae96c5f804588744bbdbf671fdc57975c982789d02535a4bf8f8f83d4f49526cbde8e288fd0e5751c3ffa73646a334c5cdc9230f42e91cfb8909537c1cd7360c8c502d4c81f3ec959e525ab613312ccd3eccb196619ff4444b2c373e97a8673583c59ff97bdeb53b7060b41c20c2299bf9eb1f761b1785688e460fc962961d58b28155e783ef7e625e10c134ee03c7b7ad117c738456088b4272311220f279503526d2415711637c052896dd77f119fdba4dec5a588683b0dd2d86c4ba425e74ac05eb2389757ff42542d09a10fcf68ea8ed62fd65e00d35fe35b3452499bbb22c916fcbc7aee28e0ee9464130a991f20bfa0fd49a", + "03be1e67c2148a50b37e2854560f765f22c9672e2f4c677d05e568dc1797f894e57dd0a0d165f5dd52dacc7012a11b4ef69715edc093cacb643474eb8cd0d2b54ede1a3e41", + "8109ac000ab810adea2abf566610d6b4cf4f4de827089868f06ea6a16ba4181a7943372d413352b3e03c6447ef32b8ae422e8ad93329a66146f70218cdc6df018627b6306e2f0b85990557b25af837ebe232f3356f35f0aba3000a18be3027c93c2c4c2e508ef9c0576670beb001b21d543326b8095a68e7ca733769421d036ef70b43f3cbd56ddbf0d89aac8705d8ad383ed5050b6a6be9439cba050ffc8d0271f3cd957693afc90e7539557ec261bc5d4921b840b1364d011dc717bab7887e3d580d60d9112a2f3472bc62d63a4104c9d9fa986b7e2e4daac3d3439c7bd050c2c56e0f841b5d149b672260a23b614325aaf99c52d10ee3745aaa73c23a05e9", + "aa12f19a67f0d6ff60e047158e4ddb6a33f63724517b5b9c13c3881e20ab461f9e5619cc655526755c75a9774921c83efcf933f1c9d1cd9f92f193d21a170c9af43be671" + }, + { /* i=6021 cDividendBits=846 cDivisorBits=139 */ + "32ca9426a7b3a42f777e9cb59b0d6fad0ce7968c51949b7054dead47b198a13e6656cfc7c53a583db48544f0392848027593525f7be9579c09d453c50f5de877c7f2823aa9ee41a0586371d0ef01e34c6171ec534598f263a891e357cd67a88bd315e8ce8692a026a57f", + "05c71f622ea3efde235d85e9b181ea4df7a8", + "08ca6dc900ec3887aa9af07c9f79fa21539c3e3c2860847573bcb26dcfb1635e8a95eb42efaceb3a4b8c340f9a02edfdccdd2801abaf01a1d806e2c442ddaf9c6b132e4aaac9d7ed014f21407a1fb8807caafcd31a794ce55a", + "047460f00f93dfe5093e4621e00a94544c6f" + }, + { /* i=6022 cDividendBits=170 cDivisorBits=23 */ + "0104996137e420c9caba0922206534d15b4083e697fd", + "55edc4", + "030861478223d5c225242acf388e23ebbf3f27", + "102321" + }, + { /* i=6023 cDividendBits=2063 cDivisorBits=316 */ + "4263e2605501c1a64b781f78aaa911abbdaf6417a43f3020fc4221630d942b36cedf8642946f2e69b872876310798db03c9cddea4ed1148cbdb848744853d686fa5800df62972ab1379b6dcd9c521e0233487b0aae8a5961379588d88a6c332ed112b93e6f0ba57d323accf5dbbe881bc6c8ffeaac8e1c023b307b01d715885536728e931d03b71d8617963a1d00d635aab999337f0475436c553de0fbb972d3e0b6c292fa369409582f057999b9a38d5a1a356bbb7d5c479c55b0201e9e2c4d70d36e19ae41045d9b7d4136e2c3d189589f792cc87e63441f18ad722a084ca61ed75226bb235bd7f6265a875c2b0c8101c0dee4c7a7e812082e87c9641ad7163004", + "0b568c87187365aac5c5aaa63beadd4c308497f937657ed746499d5b05c936415e07d36163db4ac2", + "05db0240399002934e460edcc9b3045cb11b6ecda42602f3c8ceb08305a33e81d2cb054ed6c43aed9cf44a7aa65891bd5d25fa21a029c6f0d18befc49f986736f4d7052a24fffbc70f3fa7f433e10fde5f7445465f35360c9afd8d7c885fd8fe7ee3419158102f4c36a7b81bfcf8a55620684d606ee3a8117a342d33789cda2ff253f59540ba3eb01f845ddef0b447d8b4fb448ca6f0e7e5da315b6f7752bd1c4771d9f0dce9d18e460a8b5c1227f006d7be3f1547de28f32eae994fa08f9bad3ba8805930d16a05b1752e3b9d3a46180c1c24e864ec689a8f2f5c", + "032338da5b25c5ba48c92d35ec97d8fb558958a313db3f2280b11c094b072c95e5e8a27e3b2fb44c" + }, + { /* i=6024 cDividendBits=687 cDivisorBits=614 */ + "5073e15743fd3e179b44e324137acfc17c02b691827aa0a9518d287901007b1aeba1724331a13c53ce80fec89b4af99744bb3777429dd49ef91c6770b3fb44572708c3db644b96ff7444da914cc4e247b563b1d14f29", + "3b4d59fecef63c3c34d3c05506cfcdd834c0749de4289581f57c6da5364baa11d2f84a058ee92f28b521c69aea9d812dec013eef6a4db87b52f4c7e87300bc5cdbc4193a8a41afefe11d87989c", + "015b4dd83a7a6bd70543", + "32ad90f18398c1187074721980991b06242e6b31a1c27b97f9a901ae071e556b75beed278f4409b8eb94d0017eb1d295eeb61547b26a2925c639b185b7b12de8c2c970b28b3952fbe2f2555255" + }, + { /* i=6025 cDividendBits=2094 cDivisorBits=218 */ + "3d73afcdfba7e9d13015c5de59de37cbeccdf8d223ae3b89df58cc336414c4cfc4208ff01290c3d347a840903fc9303cf59e197a2861c048df4a4462f64d3aab8762bc2a0c628405c770c145e8dc5cb6b2c3f206fee20094ff8f94026bc27221b15d659d52ed6971be54b917c3c748b37a1858f8b814e98bb78c2cc0ddaee2ea13af7972bb8afca77b6bb29df6efcd35fd9caf882f8553def96bad34d0d4941d203fe089aa36ff6a32cdc5de1e9b8f85f4f588849e713dfa72f727107eccf4c2adc5c5ef51dac080f8ae0f68652a4f4168c577ab4ec9e5d519b8786d95583662c1a56aa92a2255efc7d5b07314eb81efa27b820b17a501d02e474472466f267670cf039be49a", + "832188ba66e2ce9888ac19d651d08f23d02fac8567a266fef91cf2", + "77f820b8dac48ebefb9e6cae9203cb52b7f8de1deb36b28d93ca0b27e294ff809c4d1f65bea69925d4feb1b60b6bdf9b580abeaac569bd8ab525391d1ab3d6dc5af1e41732b3b12d7d7f1a4be2f26513efc1f08485f933add5d912dddafca9d424539d5e17cbd97d97612e16772f9905c27644bea72d12fa331cc22dbf3fb99a99b436c724daca14e6d712ab963548822c3f39c11c8509e8e8aedec3fffc9a7d1ff41caaf68bbb6f2fdbadfc2c9ab7e6aaa3be2043f65351a5654345a557ffd651fc93ca98c9e516add98df2a2094efbc6a318a9067f0f442510f3fa638c2f5d8eb2342b2e133443ad1b44", + "1b279510e1f993a0b11c358dddf1232f37b45ff33d187b1dd8ae52" + }, + { /* i=6026 cDividendBits=4084 cDivisorBits=4069 */ + "039630ad2b22c1cda31f93e49c1f278b6ed2ac78e0ebe12cea1c1bef8c35dc9f84d5bd1ab4f87436fb861d3ea2fc18641278451f9f02de2ababa4379693f820df3f08b22b196e5d1641dae89ab623ed5bc7feb19640065e245190159565166886d940a2044e6dd1905db5a9f53cc701b9a418f14e3c3026ac6b77388582a6c826af16d2c593ab1591929b4bc78f8049d132478fcc5b77dadb9d4c62e2e5243d5da48737212b0cb4121532cc2e9db632d392b5c1bc562ec8ce0d1ca8d9abd1dff58dc0f2383710ee684337716c796957d4f091fd5e2fbb12d97f0f86070fef50299b0c2e46183ca9d6ebc40fa307b093b26ce1815090a5cb36eb99099f1e0c3b828f2cf96d29daf181a830041079bfc3872cea946414992d933bd5fd240ad963fb79f841c40f6178c40ca074bc822e5a00c773d5bc21fcaaeaddb2ba6be47fa2ed32fcedea9b07b3d432d38f56847db9db4a8d337ac8905a3a44bc8b0ef47e2007b71b20332db160c5a6a2c3ac871bb7a36d943af1285e35304911ae1350c767c8c8353c5fe3bc1b55920dabb2b8694fbfc152aecaef842d951ae6ee9ffdf16f004a0b39fecf1e1f75ba7e29773026542cd94a007813fe00ee810aa7fdf7348c77cea54bede85c10f663649aa8497b5f10fb79177be430de1645ccf749f6b44d1e912d37f445097630504a205f419ceb3e3e602fd64fe644a8c76ea22f99f9b", + "10db898ce8fe4a0423a3cc5f2a7ff012744ea7bf5c18b990826c2bd7f10b5c8218ccfeda71fc983e51428805353d0d825ef74e31b020f48432d971bfa05503243d7d2fd3d7dc429db63cb3507790359e495fa5a6b2d4a3eeb5225061b2ffab7f4b185c3312b26c77056d489680532987c400f3d5f09deafd1d3b046a8f4bfeb37aa6930f9fd4f7f70126161f8370f7829a6b05b182bd8ebc483702cede45bf031ebd9b0b4572833e647e6cbd032d9dfbf6ef284bd5da5b0fe2e4b0511c632ddc00c61eaa883bcf094ad729f642a0360cc3c52999a958640454f91d72b2c413ca732a399431416d08cc5c5370e4069e233d8c40e1604ca951c89716bb6644ac7c26fa547d464d6fde6a7ff8c1b21a3cecde0598e886ccc7c2a16d8f514fd7730a083d4d97ad8cdd8a16e678a46bed05ec90cb07055522a144d138e132b013d17f0eeb683dc496d9f7a819cbc9aadb7d8ace61a77ed079241738630f08aeeab4c770be97dfccafaadcf7e75d16f2c0924e78e99763371da1a68eaaa370153feddd8f39f3bffa0f7c1ef5e5fef9f3454f645762051e379e581bdfe349e7a0982b000c246c13a48edd69fb6b2eaaa6749f58aa9eca0550206fa081ae85426e4cde2d60980cd42964e2426741a83338698b149369958039d608c37984d142ede95e7bf256ea619cff195c527c96ef98d9be30c9f1b7ac8b772370ec609a4114", + "3677", + "0b9c817ccffc5bae75a488eb696ef1b60486898ada8a2c6caa679dfc6ad41320f80e29622faf116a4ea04f5578294ad5f5abcac30b452e8cc2671d5a0bdfd91f8ddac6951861285d2a7f57c23f7d6c71a2b239ca6a75b6ed91715d254382db90fe5aa33789477f62c782d6c53eb0a8cd3f346a8ed97126e46a2ad067c87529a446b8b140790bbb1a235d8a9816e478dc1e09ae9fbb74a9139a043d463b1f67592a9a9fcd5b56f61fcb0e7f5349a5a2f520700b0674d73293150e890c00389f6de893496f1d6d51184a38540fd19d7dce886922d553fe3000ec5d8ef87fb0b24a521e5b3d1833e489c87596e7a4cc3570e63355f66d5979657392d931bd69cb03e3671f8dab802fa8804b8a00a92c29de466b20c3b7854a3739a97b0a06d52038c13f30d8b45624c4c4b704f0bb3264f51b805eafe99132bbeab55e93f2c7a3fa37742d824723b398a3fb237f231b119a4a7e109c8fb6f79bad791d5910c460f4156164a5e2595168220bab924519a6ddc92ac5c70473be0ccb15977719983e4f866b313f40541ede0908ec05e104ea01df47ee3101a87b7f6aabc9535722050b5fe58b1a40da145b67ecc2926b70075fd19a79e0c96f29199243ea4dcc2ea3725b5c272b3b70379070aa86e2398b120ec5da3375058a15dd4e933b1f7368d856d7a7b9d2cd74c1b40245407bd35e309f26e29e5e6e6f411ca8b18b274f" + }, + { /* i=6027 cDividendBits=2569 cDivisorBits=2242 */ + "018ff8c902a1e5607bdecd58c1e9908f899571cfbbbb7e11f785ddb38e00d5dae0a193b108d1174cb860c9d220ffd61092898358322e8257a0f3ba5459858fd0754efeaeced160bc21a23aa3e2b9fd33c1e20bb3753fb56176cd72398ab3b3e035ce797dfd15c0fc30911febe6362786ada5f21d0ce8781df47f9c8741f82f2f34c96c78f912ebfb3c8e9563f630b87473590d7fdeeb6fbb3630f13857abf03d6aa480711eeddfb0f07c264581308211a38e794fc40799f7ca450abd75e6497f41b61ae14cb38f1e4da6b93a1342703c40587a88696a8c71af7d65d87a8d9ab2e596b7cf285bef02bd27ff8b25e8fc16ac76762c44146b9dc8a216c849c91b0219d4feff79627a54233b0f448c3124641484e7ef856478f0561094128c34a6b5afee3b5e8e5ff5cf755fa42eca1b45b77ebc9dad89ddef1f9b00418777c36aad9dfd", + "027331eff5b95c5f5774cbaa83bd4458009951f69efafb56930d55b559daa47584a602034b25062b2b89b2b255224a964ede88a48c0a006ea1a02b5dfe864ef342cf3d47f074df4ca2514dca1f62fe9e764c1fe33f61480d528610b8bf5af6b38f68263d58e28f2a2704e5fd8c124d89c2be68ff0942936a3dd6b6ea07bc84f12a0dad95e46a999d0f78da3908a534f4d52afdc84eb793b447bedebfc77e0c6ec9a23248c7facb5dd1753866820cf3a9a27b3f4561a7c35c494b1dda2de1a670ddf393afcb23ee3a2e67d55b998808e0619d3080c0af8faeac09b3245f9554807626c5ee60f38fd6be4082861db0e3286b8bf5a347d7a99dea02d605efb52db4d47e703daab071f84dc4a3e4ae3ac2d146fbe0d232613e0692", + "a3414d5d9026802114c034ee16808fba757539a74cef820bcb7f9147a32dddee87c5cd356ae00e1200", + "018eae4b89b0095f66885e61029302b5fc86447ee8f1eb1680899192da1f189d6b0ff5d2aa74d6422dcdb91cf24959d36fc8767513b55b15ce71b84152504809c7d6ac3746de8eb58a30300ccc61a8f51cf08879cd3c9e4c8bae18078c2fe6a0d3321ccb9a5bedf5546eb0b80f1dce26065864bb45e7c6bb63d4e2fc78bc59b530525660ac284ba7a6868ccdb24b83bce5de5b12398beba17fa322d44dbd2be23014f617983f66cab16b1337019d89b37d318e1cc1a9dc7bc1746f33e8b3030c5f74f0843c4cc91ae103ef6f85b7ed0c23f83c126a4ce42b4dd6e095f9586c5cd4ca5beed21f67f9bb419947a9179a7db56a07bf960f8efae79cd64855ffffb67bb207e8d1a351ada5d66b5801787edb5d26f36354f23b59fd" + }, + { /* i=6028 cDividendBits=1131 cDivisorBits=44 */ + "0213eaa907c85d8ae831dab445b4cac18b44e0f6286317d29b4b0487491e00112611c8aa1850f5ac7e0eaf46d5dadb452cf0765ea4c66b6b703245b74bbbed31952eb7369b8064434c7e47e6e5150a112e4e86f4dc54392ce50ec24b8a3bc07df554f0710ee2adb822303dac9c8aca0c63a9fe4b2bf3b51c31c0a674ecf49ceb0e55b3c439b7b15798982b64e15b", + "0bec7de54391", + "2c9c138875b1f3143bea2fac4584ff862fdc8c65d4b6ca4f119fd99949b420df44a727821a6069224c0e1ebb608db633267a492307e4790e9418ef546dd0b7579a6e67d30a93d8b61cc1624049f84c9b589955ddc849b3acd25cc9e710185eda6eccb13ef3ed1ffb4ca422241f79aa06cdbf9bcde7af2e6870bd488ef9eb2e25544e6bc0a65465c2", + "eb1e6b7879" + }, + { /* i=6029 cDividendBits=840 cDivisorBits=772 */ + "6e45fbd7df0fcbc205d69af0d578ce1fc920183bb30dc1d58ba2a02634838276dcc0815db8de0189c9f7d0fd78c2eaa0f43f0694164dbefdf921d8b502ec3a53a9e48106e45b9c066b77bb061b7922a425baa169371282e89996fb3662e8f94a340d05fcefe6f16a77", + "096f98577b65c5c5adeeef68b2d850e43ac126c0d20f6485a0b12344c905eee5cf8c6513977997ec116e5651b2ed8b3dc5ae9e7d88f18161f5ad40089f57c54164c2d8b0138d7596a67a39eb3ea189d2cc8fb9b35a7f6f0cdeaeee146ec74aef89", + "0bafc20a3535dd39e7", + "0862f7c7243a2d7ef771afc128c7a7cba0eec90b36c4021cd46f8ff13e53e6b792d84a79d22a5adaa9d3138c323c65ab8ce0b05acc29e43c682fd155db3e6c3dc740674ea188794a65e87601ed06f1ec55c4eaaabcb0f4b06b420f61f53cb8c4d8" + }, + { /* i=6030 cDividendBits=3411 cDivisorBits=887 */ + "06efca56c9be9ecd7f7770587e12204da4cf0635e253899231cfa9c26d95bc97786a968e67b58cdb1ecc6c9b0b47dcd4a3ce9b7c1b771d8ba7221a77088d241399d2a4c1d4ec0770a4a1a62029c1a51d87da1dd99253166cce93e408417d3a8888b438c28336ba55a2d666c77dc40996e3183e9c9499c158bafc27803636751a6153cf3945616939d02f6633b6f32688193363d81e9eb1029b9464490bbd4ed548211b0bd9737d9fec94e4ba43a9fcb82fd1add4fbe7a6171db13a366daed395fae127058e74034be62d8be22f4c10d86ebb4ed16251fe29e8b6d22dace2978cf58685edecfbedcabf8717ef3c40f886fd43a28958a702e49af88772a4f21260759f23766d1dae03d3a104abcc54c78f40249b276306b29cee5ef6484721c2f3f9c0702049a24be26cddded62eebcf1b1fe6ee56252c87794e59824002978b8126f63584460bbaadcf938fef49bdf49567056c05bbcdf661dde243c903aceca82b484b7dbb865cfa3c084619469396ca0441e4832f64d81693a2fd4fb0d885c8af2dcdb470bf81b0e80172c1672494e8f12bbd80f47cc0379c8193d5c64fb5afa9401147e5cc421652a791", + "3cdce802e682730e44a05004523fbad439f4830b78e43517194e7d02e54a2c72b3ff6d4dfe00662b226ad0faaf19f18f556ab4d4a2fc79d9394476563fde9fa612126b5c21499e4fde8a478d3b01cead6a2ebe49ada79ce39c19eff2ec0e2c746c0b2bdac1353bd3b623e63399157d", + "1d2d4873dd632e34914fdf09941d761ef6a7c2190f4e84ab9e5b0451b633d180e8d2dfb9dfab3533cfcf38be6631e0158641ca48bbff613de2e56405e5ddc8a763f567061eac9ae1295a45e83167a05d347450c7977bd88943be746c10f9fc7843b96dc850ced55735ce51058791414cdde8a09a9abe2ef3945917f1c11babc6b6be64de49431a24a005e54c4b01a955f054aa74c5c851f13b20facd3c04997a8ace8dcc9e01e7fc2d73738f5b178bd68e909623eb65cfa115bcce9efa3661e0cd7946efc6d90c069e8e4e439b35741a299cbbca823b4a0a1eebd63fde42bacff9e821f7a8ba92753b39e0f18b906de1ef5c7947f0a3fb4ff1ce6bd9bc969405c49133856eb37b22d0f0f40fd57560a395834438489f7dd3114e929e8be30199e8bd70da55e1d64ce143ba8527c00c6fbaaa05eafc87af5a68f96a7c", + "3484a1e2aad39d92e165bdbb8836c3555566fb6d15cb167dfb80fbd79295d4a4f78c8e12c1f7042486caad02a9eae0aa3b3b3838308d47978d6ce6b75b368de4128522280a3362328660216936d0611c63df1646f8b17f6dcb4ff8b88f88d93357f34becb7ce57b683b5d106b17d05" + }, + { /* i=6031 cDividendBits=754 cDivisorBits=396 */ + "03463a16017e71b11584595fee536ffc48fb0e9c1a678e1a985e99590c61f0858fb23cbe7da32e737e7fede885c152e884cec653f04f8823e242d6c6ad5327673efa5f6a8f7fd15df0afb34ee6886efa24a873442828ced6e877a2c86b1253", + "0aec916d03e75c7f04e85cfdbc00384d5d5e218b31df4150035073d22c972f6005888999e03fa52adaa0e9b95a1018ad3ec3", + "4cbb603f4522942615de6f890dd5194eda0541899a655b283895e452e73e3d1c6771d02452a0b11ae6baad01e1", + "04b8d72d919941c95916b61aa34a37636c9e204e85a1e7f42f3883db8067db43205ee7ee23c2cc19585619fe8185532125f0" + }, + { /* i=6032 cDividendBits=3579 cDivisorBits=3080 */ + "040b60bbac2bb7b2ab22cb7fc0e0018e0871dc48c4c5a0557edbc50b3eaaed2565545c1f1969d7f0054f7f8c2fa56f34141c9a6bf59a8851aabd0e247e3547257a84a7c5c6cab52a61cb6a9416052a0856bc82080033b8b3ac1de3bc15a72d5669792cb9539f422872497e7ed8099f7035b69e49ed175aa056cd11c47b71eee9afc6e3a12ac0eb504050b6748ca54d95dacace5b158ee112687f55ecbf34b540bb819f775f66f12557a3adbecbf871205a3dd1b341cd1847b4350d5b127062b0c55fe9cdeae8a70606b7cbef8af7f8729fe8f9e5063cf3145b53cb35b65d4402ba133aa7f791c664b063dd3afc5ab004581503321bf27fdaea0e7da4627f46f824ec16aa5f05f8f0923923dae3fc9607190f4aac863b60586e12c95823263c3ab875baa35b6ddfb19c0fafa5066c90c8529e35f8a5832c6050c4a50aae895e453db605c3bfc6d1dbbf89d4f60b453f228203dbc6d8d1678af2055636fc0875fd7e08e4cce20cd4ae08945e2cb0577b6d43c77ee7c8399e1b2befab024bbe965944a06a18c0596134704fc027721d4e3c30c0e1fd7cd97c9c55469072b7b3288357e86236a18c470690300336367e0098a5a532a4003ca94fdbe362c030ebbb8c", + "7041769beaeef41939fb11e8961808c2c5cf5d990c48c955fa3a107461d27f700fffa6ef67564774317366c90b7cf0d7428beb935458923e2daa86589fb814da872eb0ef4f3cfccc32deeed278323af08b714adcc278ab3e064335aeedeaa375af811aef57fba73651d613a1c31bec8b74e228b742d731a49ea8023b5ad5a453dedad26e81266d9a00749606d5a72fe7df8f80e103591f9ec7b7fd8177c1b32e1fbe14b783bfd3e9afd2a0f8897f6e48636c253cae808010eb6558f2927fe04303f0abebc6dfa850016a78ac9d5afb0f3951f3e0bd692770bf47b02b02f0656f4561cd6c314e696200c7d43df782281f04b95c5a90399a05444759b8b0a3652e8a661790f63eda5fd2a29196fb00f2f3c47e7c6b84fd0f97553d3a9f5eff74ff2f0818da22ae17793804a90b5eda8b0e768304cef9b18855bdb1057993ddb07a5e225f8d3e8bd5e039b7ed487ecc4fab0c4bd64807f01afd7439a44c42a61e2007cffd0cfadc7244a1ff724ee6c37113886583b1ee7337ad8fd9b8d73af90131cc", + "09392fdcab68469e57236194ee91f3e4764137e58b23760b3d1f9e1db45c113bda199af901ed1cc814c2512bee9dc06a101c9e037f8c54bfb23672aece23c4", + "401ffcea17138d450d4a2f1716de8816d1191954782cd541fe6934ede776eec918dc66b89b38488e96b901756e7244bbdcbb08d219f45175e8aba6f47f8ee9df29c1647217dfc002242bdb9eff39cb98f20a702688d00a16297f00c65deec32f830d82ebf27d98ccdd1e6c6b9cd84b413e11969993e8f0bd15b8dd99ea0248fa798708f9989c748403048f96a4a09b7f8383d2d576dd6429ce61b0396869f813668c7958b23557e5bfe193e136e391573173b7f9261a64bbbe9c5033c78c1242e249a2d5103dc629de3fd72a9a158c140920e54c33b7e2dd6892c0277887837f0ebce0245ca4603b8f8a68bbf635b56e0b2c28692e976b5f82d0ffeb3d7b9a3f56221e88bee86873149b24b972be9e05c7e03eecaf6964e6f1f5b10eca339ce8c6b4015bde13a4d87ad6229e84c3010294917783ecbba5f0866fcecff4470db7b2b61588beeed15948f426594b8b1de90a5a7bd843af36700195b1e483e43c908e65959746f09ede652c5162ef87f36ade39f86bdbb0d110aca75d25e7a80ab75c" + }, + { /* i=6033 cDividendBits=3669 cDivisorBits=2515 */ + "01c33c7fec809cb84c993a6313f6f7479719560276ab2a93c07b4141da26fa891814db672b4dc7f00cbb24f584787914bde6c12db812fb9fcf6df169598139f6985071dc4a1095a151d22f3ffa593c5596e71ecd37756114b08074a1bad212c73d0f845df92f54a287462b8fc021ad984028e5a7876d65042d4b009930d356bbb85e9cab77c6b6a18b6464aefbee76c6f0a4ddd13398170b8aa021e84e89d1bd55058d68c488ea91e1bc7d22796f4c9d6132f394569a00a44cc676cde55c0093753b2da2cdb6d31226970a7a98eeb6bdfecff077945dab60402da00bb22408f74011fe1a5c1c5202a9fd40de347ca35aa2bd22cfe71f1bdc5c6f93d3ffc6c20ee755e89659ea465f8dedaf9787056f1d23532de520310d00c12b1b90ad75c22ceecaf4d5baaf6815ca1d392237e1fe3b1f9281587d31093d1bbbefc56ff5bc7cd097b7508889a15b41a2aa23020c6c21cd59500ac87c774dbd0d9df76a58e124e790b2a0d0f96ab71800a8924788c1c8bfd40043b461cf5ba13647f90c4cecadbde851958f3fc13cad5d252890af7cca8317eded7f7ee8bd007e9bcfd2435e237f8c25947f1aa6805e81eeb34f82dcd2944232773c18ba7a3d70bbcae89b795cdaf3c7034be07839558681", + "fd60aa15cfea8cc54d2c6413e6f93dd5f2c19b6630bc776aade762f9ec59ee589ca370c1fa68badad46c0750525912cf4891aaec5b1dd2eb5510d305a381c95561389b9aff736e19cbf8220f9cb0516e707b9044d2dfcd2a2ea5dc10c32fc4ba13a427914db5e98d8b3bb1560f7a57ad559b16b51f313c30c1aff1d2b68046ec13bb7081edcafe142b2e3b03104503c7060b46e9a4d90fa6ced483c868e4c7b5f86ea7e2048e86a173823765adf4a5213d07c098eab06ec0a8d3b19531b1f452c81ccc6bf95aba1b2032f256054611b68e3b0f6e39ef31eab986287d9e159074d519113b49e4fe6a4939ec63c08cb07398380108da06456c6fae83c2d9efea5a74fbc39ea996cbc7a3b6c6329a7ba5601980bca8cd873f116d64d812e9b07d87f42eae29090b96c8087487483ba07dd2050bf02642d6e483207c", + "01c7e81235583d12173b1885f492b66e7c65f3d5cab24762e55e6c259d634d6bea0f5816225a4d5cf7ba08d1be0653dd0381e218dd1e7525cc1a19b94562b8230856576ddc2b744c69325fdab8d9a2292eaa4bb3c240f81f3c104d0a86bf4fcd10325c49d031ed1f8ac6e3e205c9eff35f30c6bfd5a860b88cbadddb9f58e0e21f5981fee66496d288a5e847c890461224", + "e830ff50ec20f5442be8e0d63076c5b78a5fb391e52df489eed51a829c39b8baa72effd7308a51bf853c7e653f4852fb50143589306f54b3d137f1a333e4a1d04545f09812f09f6ce27f87c16581da8b4494553dbe07d3771001744850b431287bbd7ee0c2e36e19eeb91f0b22a71f57ff7d728f0d3b6de53a94ee3c635ce07bd202b21c879e0f10d880b0a168d202a3f31fd4a2ae90bda5892a5161df0f434a280c17499a978b8807e35fdfa2ec5de9351fb856859c5114685bbe450beffb09ea5363a02e0e581d7f8bca1012e5b809be4de15cc2195ffc82dda64a8bdbb15dad8798b3ca1731748627e3fdbd4c80a2052a206ab8eff4b73e6d9327afad1d4e90927b398afeb2b409f1acd0560de42f94b1fe827f58e516fef657b8339d196213e4bc4050e6d00d6aa256f6ba911131d13f25175b2e3cb43d11" + }, + { /* i=6034 cDividendBits=3803 cDivisorBits=706 */ + "0737ca4b8e380383c155ff24427cd057b284b14141108a9258f07312c017f12fa207f9339f389405ab81d40c996994fea08cc2ff63bcfe2e88e609d93a6f7235136f8326bb59090a20da65b47e5a3cfcd5e2de4948d44ff54ddbc1a2d9ebee41ca309f08fde49d067569db9c58ee0889c21f9233433454a29c8b8727bcea17c8a83ff5d12a83791c843939a709036ad58bbdf223435fef5f4f1fc09f19f6c00f91922c308955a853951d01d4cd12a5d755ec4edb90069db5847f6598a1d8233201f26c6485198e99cb42f890232983834992bfd1f516d1db486fdc6d75f081d543d0e1907d9e3ae1344aee7d4acc75501e86dd4029578edadaa7f73b23b8841db73a2280c59574a98ed5a76df54c40c6993a1006054f4008b3dce856e215b947788a8a19f600e262883d3cf534fb46ce494ec255bcae8009b55000a8762813606017bfaead9efb2356cf2add1d82b9972b2430ed0936baed8e3beea68990238fbb67a805d0b1d610c6a161cec562cbdb67b75041f7c7265c89bb6bf663ae82fc531bd08a08fae5e7883002de81e13d78700b6d399a4b1c1d08f456c317768b77ea88e2f892f1e409b325c5c12c8befaadcc67a28feb3b5c28a89eb79e8e9e153152a234478582ad013fe68b9d6e678cd76ac5870379c2fc16d70d89b", + "a396acbf5399ba654bfeeada8c83bec7b80f687191adeb84d246500776207d21ee10d73df98e3d39dd42dfc7798f80874c7e944f4addd76cd39063e064a38161c194aa5000b3a33af88f70f5a5c8a1f64cfffe6c9fd71a2d", + "0b4b9c1111af085dfdb503e69e40215b8219343c9d8e9373d9bc7c8f5882fd4e109cb43773650804656fca597415a5e600ffd7c20fbb247648bac43b21a8b60241bdbae0aad314eafbe6767a9774adacb1dfbfa17b7d69ed69a9f0d77b921b1a0cd7351fc057533134660333a05ab9b8954656e66cdbc1fbc9c8134b306180bfa35be2cbc4edd04f303715a8944f64c1304ac217b08341e99d827545abe8e3d510d05cd56a82f478c747089fb9fbac2ba474d342fc9965f143e18d8f7c29f894ac2739417e73a1d42f8d19f203e5e201e36cbc32d65cc2233df35ae05ac318633a4ea1e1d4fb79a64e03e28b6027c57c07b9ced61e6045430d6d4a378bca6c198fccb3d8b06c593a456499c7875eda3face7b531f8492163b6d02363059fac6e51105e84300f0fa4e90f329ce268cdfd168fd39503ba2e30da0e1805382afecd3d812862bfabc8e59b262da25cd37c498c6096a1ac795c1f4632d577d35227c896c0bd1f42720f3db2608b8e1d610b9bbd2387cd6e6e74f5b36906c7f9abefdbe01d8171", + "38f7fb7fc92eeefaa607652974d05f92c1861f38a5d3b53ca47bcfe5bbab913170625712f52c70c21f402739eed76a5d82d5099d8590e636357fc63dc425199cc56d2b3915505ba2092fd78e5d6492068dbb6b7f24349dbe" + }, + { /* i=6035 cDividendBits=816 cDivisorBits=457 */ + "3468320797f4e0e9372107667e86cc010ae8a21c55074484202e489b4269533c4faa9cd513322610a808c971b7e893dc03c95c188ffff84a107f9e134a48924d049f685ba32655fa1c76934ba73839b5e061bcb989432c6aa5f36e9c44cbe561bde850983db4", + "0158400c8e5683b50783e5c05590bc509bdd0caf6ee25ffdbaf341bfc0718628396c88af90fc3cd20e5e3b2e673662f3ed0ce9f145e8d083b0b8", + "26f8e3a4b9364463a4e25baf9d09473ee726914d4e0b5a0d5966ad1864ff6ea6abea4bc85ae92dc194cbe09699", + "e4c81c3c072e4a82e41accae047dc9b6b1b10cb5f9a09c1d244ae2163685f09fe7bffb108b5ef6dc0abb5d4e6939f5adfa8f74c8d9ff57cfbc" + }, + { /* i=6036 cDividendBits=1744 cDivisorBits=1175 */ + "9fde2846b4d01ff7248e5bdd40cf52279359938ff353e880d40808aeec6355b45ef250f9d52dde122547b03a610c3ed3c6379dcc398838d9e6f14a4c0196b8bb367a3c8b7d6ee94a7a0cad15bbe26ef2aa414b6c5d9d8da8b6ad1209e1eca06b41324ae818f65fdcc63e759daa2d9266334cec4105b44cdab379e7833df54d5e8b12b156882f8de43aeb1490a6d0d8b75c446ee29ed43075a1c2025c0d25a31dbb121f64b07e7ae620ada521956de2943c480f8e97cc2d8e4809094a46c7edb9685350c71e82e9228c5fb86578884ec574f41421e6c4616d0e0f", + "4a47991287d70aa9fcb62e78130744905707bc1ab9c4e5c44c5cd854dfb66d5700970246ea27a132ad85978c524d63245da32d0e1c35bea0b5a0e292c8ad888cca110b0b7eb8ceb0a0bb5debfb55dd130a02a719cfddee29c17833ddc27c3cd2197385b8580713e25b85bf87eb8dd7fcd404e91c0b9bbcde9625aa84dc5fa817e1200fb8187deabd88568b356ec084c3307fdb", + "0226f94b07007d62ab47b50cb603528461da4db0099eb84f016ac211a7dbb6085e92572faf0935ecf9396add5767e291300e4b16ab923a88dd415cc24ee8daa3b75a711fba76abf2", + "47ede1a329b4a290fb5f6164e07e440047fefcb80fbaae493173dfa129f87a64b96cf28c9e3a82d14a9c74862edbee84afd88634592ee7bb7f5c288923b9c876c66f012e35a0f135c0a658e44c837a95d31e74ef6c42bc2ee27827c197829405069f3f8967aef4f6914725085bd2f34d6c2e38d09f8e2c810dce980bd7685f4a70bdee8bd370afea45749dd886df1d6b3ae809" + }, + { /* i=6037 cDividendBits=3334 cDivisorBits=1970 */ + "1e2fb41925c057539e1b5e5333f4720714ea18c79b1a15deafa7522d59a231bf87323ccbafa73eabdd9e589bc1a8fadbe5ad6d4738fc71e4956a10083212a627b447676a8557711d9240c88bbd0ca1252ade284777b26ecb102f4dcf2fea32467291fad550db4c27a7abf8fc62a8a9eb35ad90d8aec3faf33452c73738429faea69ef49fbff69cda68bf2baa171db9aee904b17d452ec2de596d61893b9e37a4350d893b779697b9398d8a60dab6ab95616291ea927f44d09c46ad829da10fa743b525e28d1b5ac19baf447444d305d5bd2c2086511bc37b688636f89d530e4fe3cfc8b4c995fbb246ff37c9586119b266bc3cae60a9fafe62191ec0989815cb3c28cb9e415cae644798588869a5b80b9f055eeffa81a36e71c1c718d45d80a7736e7e423ae8ec848643e9da8ce68579ee641894262505e74d902912702d366268c53b7b8020019ea2cbd0c17fbd87439b9b6b22820cdee12c5572721aec5823f5c104bb9d5b145aae19e750fb671b93f33be67d1b7a1814e97d6d0f938e16c3ba185360d44c4e2a8e61a8b3f32de6e1a94d343d640f55d44c2f673d36b13ce7d3", + "025f92ed0d01c4d08be99fa73a80132204b03c8265a4c0ac1c14be079b9834f9a5aca2158c836c482f60cc899b7a358ac7e627aed017ec894243718d414037db34ee0d717651a7bab473c6f1f4397863c7d349b4d28237fe191d9afb93f0688012d9d388718af1400d4ccd269e2d13d424437c568fe46550ff75520163d562b72b4345632a0775d6791f682ca9046718b1c8a4e57e91f726535cd170d7df8a96bd6085677315843f24439c542040a7c4346e83b09fc5e24d0553b020f8fd21d63696d6495f5398f53fa4c7c854b086033f54b5a1737c610c2bd0883d439981e284359a431e18b54f8a06d35ae70266e766bc869107c870", + "0cb80d392ce6f637c73a4d86eb725ef208fc6c9c454b23b52a9e33fe0b33557fbf7dac8d7786f3e0414f36353cf13b60de33380db4df89b459ff34d710bcd2d54ad7f7b15f58dbc8778e9702dbc40b714d9b31f23eac968041812c287638fa8f0b08a904c7b2a7ed9b10a3fc4ab040b0efbd7f78efa53b2b8710367ec506ab72878fcbf22749053534c3d7ba827aee14fb62e505fbf1e1e035467dbebe09e2acdf56756af8ae9bef7725d1", + "86f9d9efce092d3e67646c4a71548684d164492e1994881862cb2e698082132e032732bd77abc47ad136d734000ca41bd64614b18e1d1d8e218bce182ca55b224f227c89db342ba5d6480ed9bf52d26c8729f3ca8826fd2f8a0a4e7279ffc8365326a958d87afd64674dee8345d1c3cdbf25b40cc5d3defddfe86e24a51ffe73530aa5f85dc699d7cca7afaf557c822076982dba92fc1690e6b14f82539dd86e0c696ad401dd5e9e7dfdf4adfa209e2a6c34b387f1c8736e1d5ac6360a1051e0a0f34fe154d21b9af21182b02b5fa40f5b4faa254efba1d324e94f38f229be7d69f2aa7dd405d56c455b3c4ff44e80e1b5d56dda1463" + }, + { /* i=6038 cDividendBits=2719 cDivisorBits=1331 */ + "3b024315705f5a7f86cf491ca8b35a575b993eccce26782c3d02249e547900cbb03f7dcb4b00240659ff86b54d90f072b3dbae84aa437817c990a13ca0b13735113f2822cb58e84ba0ceb26a2111806d4ea61236d9418c0cbe56ba65431313b33308cbb24677be5c9622ef4a0a11821a74c8e15d5ea4bf715c9ad1cede3f2f9290972fd4f743d405fae37ea7aa5bda43ec9b40db43ad3c741fc4462f7e5406f2893ce3411625fbc7b2abd2af6651ce3db635f09744bd8aa1a9511f18f59109c98aaec6b65ce0fc672a355ae59134f3f3434982131db405573e885ce444491d82b422edbab077e9bcacff393d57972d9bb62c2d1d83df97ae03405105afe3978792cb08152300f2b233b76adef67c5fba668e1c700146f7d6f5de30efe576bc9b58b95704c4509a68e0f68e2e0b86d14392eb52b4a648fba22a13834cd116e6a70f844b0a045cb6350950f2bcf4193b478259ef50", + "0494f395fd70a8227010bfee41442a7229386f2158e14d725bc57493617559ce86f34e77307c24fab36317fa28e63b9f6d64f2e05522d437726441e39e1714d4edc5cb293dfc777ecd548df213ac098210c47ef4d0bf654d7014106d66f152e660edef5a41fb42f441f64e24bfe70085c3478db9969bffa24a4713bc98fd70d2336bc622dfec1d06e7f90be580bb312e14923e88b7e2bcf63de14f90ecb9438706230b9aa16854", + "0ce0fc1044a1ccb8633a34b536fe9abc7a6677225e73292a79c399bac0e817bc99a9d1b932c33bb83c801f3c56f0a2809ee40de65e443c21567b733f59851105666faf7a8f68707f659d2ad8d49cd89105cee5cec73f645ba1ee8388ed3f057ac0db194693818191b9800d3f6e39eca5ef08cef03e69a3ff88caae2974e3963251a2a0ca43435b220debe004bca0bd4047973981edb595876cf918f605ad574c66b35d6fc3d3c63cbcbd4630c7e0", + "01c41e3152175f67b592596dadcb60aaabdc55041f1b20c67867c0af1c41325a3a445af213340729e9dccd0923c7ed18fcc32655ad2b2ef9900282f4b40f9ce231ef87ca1680576777411e14f243133fc645f916db7d4e67525c407e33df03827627d4665d8e50676fbb62996961e391446caef135107c4141645ed72f1eef96d167091d223f0167266643627f70bfe3755cf61d12255da31f3a5c7b13e8142d8fb51e354559d0" + }, + { /* i=6039 cDividendBits=1892 cDivisorBits=1098 */ + "0d9c09746a66444aebb89488bd6e3da162f6fd0c5abd23ada40306b2bcd90cd3f2586347f6bbd921700c7150a1425536576d7e951265be722ae1717f20758d4d3ec61b27cc8eae17fa597b8bb50297dcb29af50e54aa32ae1bb3f3d4224758126bb60614835e86dffca992d3d37f5467d29a94e101ad5f14230740e6b6adef3ea67a7862b6751cd820fd5c85e8d52699ff8045e8c3e75a6963d44e1187050ed5e2cfec77efda5356185c44861320519aa0f5c6de18832da3fd956449ac4607c4dc2c6710ee10e77d5275d1e5787cec1472e0184066dd9129b1ae75416ebf606ffa6bb3e26ae290168eae3fc06e", + "02ea850f9e7fb4e35a1484b6b79831b1433eb98e1e5335b52f0a90c2d0d0187ab744b5df3be3d352833c036356081b6413fbce586496b75b4896098f6ec601e57f1d605255f4fca3b54e074366bf186b7e7ee278fa61b3b00969b4771c3cfc60937d88979b9045feda53fc0066801ca295c3eb5e7c5197630322f9a5349ec017831a90703d9dc771c86a", + "04aac3129731d579f017b570471ef128cde84eeca227b099c1814a789d7c6952894629ba0f94fe6eae22d692327579d5e713976d55a79f8a9a7438689e1425493a43b67064f1ee33348de0b0f4af82c8aa8dd695eb2c4e2a10af3cbf0882e18cb8add008", + "466ca60c7b87e8860e316a44ae366c396aeafb692d797680fdd484d760fa6e3a1ca519ad315ea9b0449f21ec10fb1f9f6bb581ed38fa84c4958f5aa9af2163339df58de24a6cc0b39b7b8e8117e8a09a156d0df82edde3084d50240b4af2a00006c21b26c6a746b260dfa67d069e0e71d4e1ced8d26e8bbf39bd919e43aa765862f8d1a3ab60395d1e" + }, + { /* i=6040 cDividendBits=3614 cDivisorBits=1034 */ + "3c7bb9b16bf8a1f2637cdc52f5b28b727ce5b0d5f127c8a727015437582898fcc3469e68d12c82f1143571e7583578f1013bf316c094038ae1fee9ef6fc811d33e6842b88827f27944adfd1fa81007eb2ba4bb1125a4a64ba8b76fe5183a4e756f712f40cd057149ac5726a674761e78cd0c457210acff962e44e813a68f3c18f19529091fa63110095368e4ebeb7728c38ec28919cac283a3af57e455c02914cbca4f2e5290894244500416cae41c32c0581fc3f0840a61f6e205f3023d0ff30608f800af7c84ca7a1696d47d62454534755c22e7aa1a671275a796ce60fc6579ecf8c336ba3a1c05bf952ab54b8937688281d6aab4268c764051d2bbcc9a26ee6b1e751da33e411f68de1603ee9512af46e06e6c62a0e66c06cde25f0b316a6d1473153b4c4d381fec0f80e0baf0bc8967b0e1a292c127dad745210d370344de9591e0853cad7bd5e50353d1b53a50619bc84ddf7c8fe94ce00354dda23d9bebbde7f502770e20a862725a12f083f0f91918862cadc13a763b899f2accd51c7cafe67f914eee1223a18876fe1317d75d7c0e8131d00fecc3a62731160983d57c8f5a322f0f325f8bdc1c4b947572c192d67289f07212b53f3bf792cbf69a28379401d7", + "021ea1d538b4893ddb1e29f6dc806f4035118f1cd9ef7c3f6fa8a758fdc41ab6f77525cccc6b76b9cf533c49aaf8a8aeb05599aeb597546f64949b6c804996c8120b8de21f52056e01b60f1dc937970217d993700aea4932f74271a602b56b4e5532ee5277b6afa5da02add6deec224819c4cebd83c97b5fd13e0e26beb743dac98b", + "1c88d38af7445b2471b46288c7e010ad04c7cdbaef49f65cdaac8a33baa5bd6e0020ee0ec71cea9f598a3da1c43df0f01bae050565bc867b772413e13e4b2f40c83863e8c89cce0d8d406682cb22cac56c58be4f3963a58160596d652c3f00da5dd7f6886973c9a5982f7bb17f8fbd8546447bd6e7c379237d8de6ac1b97480da46d75bbd3203a9a5b1b40bbb4bf8d58a20db7638283f7df82eb5abfa86dc688b73ef2da2e8cd93540565af5d5c85cc795d63b9168c128367885c8e60245d6a31414d6ca6420d4ce652aad1db11c3bd00a787ca69fe52dbb16d77256334c517545bbbbb61fed1b709f3c531772fa19e2f01bc7e010df8b6debc430c29a2a2847f05444a3d011217317c519deb38bd6bef5e2cb861e46164a794f21ab7220040abb9154ac20c20c0cf6da6c1b359cd6f6d025998c3775d68a231a5ffff546abc0bbc1e2", + "0198947e2165c6510e6daa89ad4bbc97d84a1984dbaaf3a2670a1a4abc20d40bb97b0aad308f9c1bf40461f9a286d4d30d83afdd674bf565b61020f27b04e8530427a46000463b267f6ac3fe9c1b83917eface83c28524147aabedb6cda8e4cd8655e13fd13f9043e284e7236fb1fad1ce226a205de0b447c816d7efc863e5f34a21" + }, + { /* i=6041 cDividendBits=3817 cDivisorBits=2714 */ + "017c7c2540a17359477ac0f52d0ee646f18fc20f826da5272cfefda2671a5df510b724eb1c4fb147fda0c87c5787d2340d80625d4ddec2cdc56a22501df99b77cdc12b526bf3654962fdad1c16ba71013703433f378337ffc0662eb406031ab931847ac92affb3cbf1cb0c927ce450c7cdbfaf5171be2620083a12e34f59ee410a9d6800b9a5173194cd834adbf85676e639baf0e4ee330b3f014904b2795f688904888b59adeccd98b46b7f67e34bea072e546d4f84c4bb741bda8b797f6eda5d5bbee9f73b1c169e59cb41159ea39aad978058a86fea5a8cd755174e6333c9504fb9dc65e57d9017ff86ce5a30f6411c46ef50ec17ecd4c4c631f699e52e7dc8852888968aa6e89fc73914f517a90d1188be2dc5e6e32edb15559d4b38e976dd89239d65f80168caad42a81d61cc7720eec82a823de036a078e411a5c656c1674792d1797da3769864a0fe4bdea67e2948e35b9b1d14b8ad28f01fbc1d622949fc3ea3ae17ab663a396551546784c86bbd5704210e070d0c5bdad66989262a7292577e2feb1d6ba1ce8cf9aff8ca5999f0b010b213a055adb281b38959daf3cf0b1d51a9f6c78ff9ebf51d633f18020ccc653082fd823ec5a9668feade1e52f2a9a14f6fe40f61424de8df48e5b376bbf0834f35b32cc12dc35fb1577a", + "0279857e04ee288752fd7d902e3c3650387ddc87570c4a83b6f9b8d522261a3a155a3d5331170fdd098c9ba2d1d98455fa19eed79b00ea632dce5b762b65a0525ce8632d3f57cf3d2ca0638a774567dc76a23081fe345dd29e97ddc476a4be4cab3c77f3dcd772dda57c75ae83297b0428be6d055ac3f199509eedddf8f2da886257691cc9504972c4074340d0034509d7ec18b21d0018cabd7c541242fd29d135748ced19c16d520a04b8a03bbdaf5af1eaa76c5cc09847c832dccd86f7efa6f273db09165513860bbd814bbe19af0d302acf49bfefb889b49d66a6520afb0585eea4d080f37635a7b44e31dba375876a43b7e9e2902e48ed01ef5549e4c79ff25c92f11734f6154e9182bafcdb0a57caf4ce508725b59e4c0e432423f1dc1ee272e00060195b54feae4ce0b8cc9534337f7ad19d2cc858722c6c11d72579803de435937d51c6b2a384d481d683319d5ba31f52", + "99c016f590987ff6f6753d32d256fca228a2db552121df0f8c47845bfd5048a84103086444e963f86b19300fbc311789f938fdef8c5241fe8fe8c60d0b092bc464987df5e6be070572a387f893ee2533f010f7a60f50f2e6c3f37776ad78b36d4f8b016fd0f37bd93543fac7cc6fd26c80305e5675226d2dbf31b685fc60a1103d2506ddd3d69427594d", + "016d357beb6521a936ada8741bc8dce536a82d19f4848c7a33372bfa280b07ea590713b9b9b52b30703e5bde1a14e98655341e10c92fe95397b485d0800ae9b3141028c27376a87df50496796faa27e7833dce560dbf6268ba34b14bfdd6075b5fde91205c33f4a93e0a2170c69ce510f603afbfe3a7c606f35c2bf2cc45f1c392bdb257ecf7233355aa823249cbdb900d7feef12fca9b9b9342daaa7e32760ca33b9ba5126cc821284d65a887f216b028cbedcfca7c1431f88966750bdcca4e45dffb402bf1258f6ae6f93460ed86f4661f0f1a743d16bc3e95f5702a6edd0690658bb7b8dae2ec70dbeab297caf8eee90df90b7d62c65d4c24bbb9cb1e2b197f5f3de5e427c5e2c911c7d569bb4bc1bd4f9ea27d27513f24f1d33087d666a2f6eb3109a8a76e764c54afcf4766d1e906c4d3c69543640a1ff72c76f6e6f53c86b516ac86e1cc4919f674ec80218411ec3f69d0" + }, + { /* i=6042 cDividendBits=1412 cDivisorBits=427 */ + "f968989970d549d5d71378a32aa82c790785ffb5324b16e5699e776be278d4e33b195a9c6a667d63b8cf1df52e1371851a1c5df67a72437ad37c208fe80e0ed860e1f1884ca32d201e454c9efaa4ffff212f16e8ff31f9114320618c5055939c265ad1001dcfedf09817eef1ea2f4cf27851460be530afa837d9ff81fc591621da42459567d543494458e7c3e46f47e06c47a6c9928520be4bd474442809495bbf9c2c95f9fbcbb05a05c746f363bcb5", + "0589fa5ed0ba4911c7d822637c6279f46d668aa742592082c7592b18349c0d7df11380888ca437739dd63f2a375e76034ecd4e67f7c8", + "2d072591541b51f90b033bfcb0dca8752b824f2e48ad991b8c8f4e40ad922181e613402af210cdae0ab6c5ec92e04fe680a58ae99154cbdd17edd6efb1f657e7c5f9b89b50a5ecace099852ed35ec4bab6493cd0a0bca29f97368d9c5d72b93ac25d39dac32e39c83ba6159030147578314b3c44dd1b9fc18bbb49", + "01636abe899cafdda84a0f2a82b812082570473b5a1a5fe1c6ccc40b6575d2902b3815218adad228343da091de1d059164fc5426fcad" + }, + { /* i=6043 cDividendBits=725 cDivisorBits=690 */ + "65ae7d1c3caceb20d1ade480f8a69c91ecc5a424a141466381212c8d3c1b8360db23abd3878e79a4e98c36ec7fc577c3d96d3e0b95c5ce0427c3a445f3c6ba61529457d01d4b47a5e31dfedc250cf5d0cd5dcda7ec6b049bb024", + "010dd3b447f1d252882ff5608542332fa9f35876a2f76d1ac99573471d279d975fc4da114972473a51f874eca659ebe80988b5893e9eadb2b6f7864e596abfab520c7f99cad087729b05fbf69872c40d44675076ac3214", + "60789628", + "8b8e5ea80aa2b3e87c77391783ed5f0c0cbe5ac2c3d996c811e7a6f9751bdad15a1275f33ea6c2fbdb24677d3adf3de40a2226d133521e5052f02dc54319ca2f3ff9df4e15e3f68cd0b1c9e020270c366ed09afc2504" + }, + { /* i=6044 cDividendBits=679 cDivisorBits=100 */ + "270e7ea4860ff0f14edc7ee0fb760ea6a46d2e44a0b90a18a1f13d4e1dc082637cf8e8f26f8355d9b431b798b590ce31b6c39ce0252701b706b54e3587e9ba1508e22c2857db36726cf7d9a8566516615a7d95dd8a", + "0dc8d37ab066c8a9ad7a2dc851", + "02d5583202af5030202f9cce44d6a65d7946dc3113239265ae1e969bd52cccbf497b75bf051f52a2b49acd75264c7783d5a7323872313a6534d945e384aa2d555306cbc488c5003164", + "09a121cb38a3493b05ab5c1ce6" + }, + { /* i=6045 cDividendBits=9 cDivisorBits=1 */ + "01b1", + "01", + "01b1", + "00" + }, + { /* i=6046 cDividendBits=1787 cDivisorBits=679 */ + "01e9b4bb40f038cb6822f65039c0f48020498d15a14d6453515dbe69a626f16d53d173523de6f9227686f0ec7bd55814a1e3ec6f8f3627f9530f2761f4b8c05cd44e30cc79411f0cbee0794ff9323fd81b23dcf9cc8a5c2c4bff617235ef715d3bf606dedb7cb1929f51fdc6820eb65bb19da9c50a3df895c33220c344c69f4e8296f19716d52848cba50334144294885ca01269426d6eb43f538ae3ec80889f0ca2eb7dc8cd6c9c60225cd7588087565bc5f25254bef8d735ebfe4e7936e23099061cb454d849fdbf9d48a3983e1db94ffe7fdceaa3eb0b2835eadb9813a56a", + "089e0b104ca9a43634a210c399c338350bec6e3fde56a6e1e06f58c7432fe16efc0f09bc54e9c311af0adc5b695059701a01878ff462cf137e37eae20fee4317ea0fd044d88f51313cbf4ee289e1bf7fccea0bda1a", + "38d3ef1e55b0604c00e93b46ece2346c03ad7b9ab5e0b13d2050c7f375909299a5df95b5e49f5cfce849aa71e1332ebbbf2a4de5675bb9bc5f2f697a999d2029aa686fdeccb31871572d2f79718e5821e4dc6391087741296cbf104b92e75568dd2fff4eb13737908e9ce4f68fb6beeae825fe02a7a296d5c4ae9fe6926188aab4af492c9d3c9448ee5818", + "0638a32c4a013eb49798b13ab00ca31690b6e7e6eeea2a13cbbaaee7f1be15ca8254704d2e375ec8c4ad11b3504f080434dbc9c954886fc60a4ba37ab020f417473ec601ff98e0a3eb0661190c681463cd7fd242fa" + }, + { /* i=6047 cDividendBits=3520 cDivisorBits=380 */ + "0597244b3aee87052cc641e81dca42e02fb98e8c5aa70070252fa38428b6f2925e0cddf6c259bb1db06840b9569fb5766a1d8ddfd9c706563faeb3ebe02bb70197d4e3b02dfdaf038436bd10a9dfd83d8fd46c418929c3561761ecf80303591927bfc8f341fa7cc9e19940cb20cd5d3c28fd80a394798d1cfde6e1e4558af38a6e65d86f11a540c11b635b7a20b2d20862d80598535341887d4b93d6aa1c6ba9e08d54e9c4b9a4dc8695f99f284da91c8c2504ffa446fb4506ad513805bc6cccd5858e143aca8025fc85aadde16cd458b360f91df972efe7ab0077afcc5e94149d4505062d09f4176847122b9636b7d9c73de0484b010e2ebe67e4bc69a5c32d09509250f0260e1546518c3c939b7b497411a82836dedbd03673cd119ab8ba1d1109fcfd91059e86f78bc676037d2802ddce8fe09c007cb2371be3e04f8b6af794f46a31df1b5d7d675372a6bc1e689b6a8841c533716884ebee38ccd3b112954e5937d5d688fb8ce227f40a1e199070d049f80df4efe0b96b8861e27c4c0d2717e32e8a6b4108a62e00b104858478e1e606fffeb0317aa25e794dddfaddaf226cf17b7c3eeb4945da72bd07db9c030b2733c067d31acda7", + "0a68018d3da9b8f8637615e5e7b4b912345318909aeffdff2333740956811e1f2b345e1fe219df260527674ee1e57096", + "8986ddf72049a81a259e1b60d07f5a371f7067ae6382af939fb58bf31203391bbefdd5b7fd8252a7b9d280d8944d58b81a29d8f2539b8ed4153dd806e9b78fc300d7498cb1210b4469ba0dc4c0e0cecee2bc43c6b3a56e1bcdb22c3593e7508143cd6ac5dbe9dd41c1edb5b616de38a3ff9c46e42f04b0b65eca06e974ee9079dd8d44d6a1ad424c7c95b16ae4e1b1c01332cb2d2220f88e9a3d98a41dba6f2b4b8af8990794fee77abc16593bd46678382817320621dc4c06fb6435f7c237ba0f543344226eed6a2a9103257d8d88db99c94b834c006c913cf6b9470690e905882afbeffa545dab3390defcacf4af5a100814e39442d3078d526feda914e3d0ba12f15134a56ddaea8fc6b450fa6659aa8adfc439420edeec6db4ab25df32fbc3a074b3f4c83c03cd5d760d0ce74361187a9b515c75db0b5aa41175353edf2fec56e5949b41e3d5ad2462e1d9dfba93d9255e4a958ab9e04739bb79ced6526d939369d2704da31d9fb1f620ae2215c5888591353732e4a48791b00e53615c98cd4bfaa4db9b49e8", + "065e1a251beef0dcf28859809a7d6dd08b7c5b48dfaa7694d2edf00005735216aa1a37c7da713b4f5625f92d313fffb7" + }, + { /* i=6048 cDividendBits=1818 cDivisorBits=101 */ + "0354ae0934a22e6d3c7facea66b1f6d5e00a597953fcd68f07c29155049ea8f502230c881567f25f7c471a48e13bbd77ed5ccc719e31e8ef567326d25b9dfcc35fb794d226dc2048c4ff1e6408f88e4f1dd2e819fe0ca6f997b57a09f6598aa21755952a04abbffa99f02c9477f4ff4718567337742223754eab6d7f441358bbe64c9dd50a3dd2eb17d5f4c6824eb3757940b0a18d7565e2ba8da8f12b97411f21f5c5c42d8a216d0800f29b8c5299fd903a16215bf0b40a24840e821aa3aea8280460c290c7cfe5d5fdb565065b9f2ffab126f18465c831cf1eb9b904794413972f4520", + "0c0e401f9c00a7ae17ec3238fa", + "46ba828f0a59cf5ad48972f8cf3160a245a30907353a37714debdaa980f619aad6449c4c2b4dd436715a7524a40c09cbc69af668b7f2c744bd165f6c678e767b0b6b554896c0eccee5d5cfc4d47318d91e4ab46404384e923cc0c5086ab6eac5964cc178560a5b21b59eaa25000a874384891e0d647a850c699690b5e2fe7a75a0b4983ae9212cba83e92f2a33dd2b80afc255700097df36ef6a9b592ca353e6ab827f4697c8cea258e6a1703c659495cbbf6194890e11c2924a5addc79873125eae41b36675a4d341734aa45d63d5f8543d0aa6fbf030", + "06cabe6eaa69a340343f3c3640" + }, + { /* i=6049 cDividendBits=2778 cDivisorBits=712 */ + "02f05a0b65851b6be637b17dab23384495a59e65102a13984656728f0044c647c33a1b7348d5f4ea703ec9a60bdc1022258d069c911c48cd6f648e4c3d19462c5e65e6d1f0f4b78b7bde78b039189facdde662258f2790ed2ca5c8ff0b1c4292ec6fd940759dfa2b929d0b5b474ef1a4261e449e6b0e0af0c6be6bc4b51698a0a7cf600d548f8d54db0b6f2eab00ff116e9aae04a315875c56414f341ed70ce479d08c09fe59f5dd31450f0963454e1134990cbdf3f8ea9ed9508e283918439ea8371ddfc380618f19bcc305042f84bca794a3d50e590349c1ff8408e1f994ff4ddbc381093e96b767904f4ffc9ce0891adaf3749cd9042482f4b9ce30cad2e22f02ee243bc3f5c6f48b12e367e1eff10664eb1c58cd9bc15c0d1793890b9b9585a5a4a6f2ad03df19abd22b7b4878cf424e1cb4c510f18e6cc954a505276411c123b0c2b71d8897dbc294261c73ea51cd8ee28ad8de2c5524163cc6", + "5ebce6a0ba01ee15b9b285eb27206e40d54e941b540d4c9959ef885e0b5124a95d17fc84c62bcd56d272c239afedca9f5ce514e85b1644091658ec226162166c15e5d6f5213b642c0254849c309d96e1866b6a073c27857a0d", + "07f0ffbed7b464089f558838efa60a631a188206bd2cb739310c8dd56784cdf9064b61b810b0301f06091fb332e4f83a1956c4cded618f0566b3edfead0d2f02a7031f050792aec9324380ac868dde5f744acd97c4b08c7d53d8bd7d6ca8d0f765995e6fae7d2abe291ebe27c817f79d7f3efb1772ec29e44d8decdc90b95f189f67990695e13a54f4e97ca85825ddc43c5160f4fa41d87afe4def23809065555b265e8512dcb9eb245fc96ad8ab1bad354c1e503bdc32a1d727e2600004ad03ff5eaf57d73a810255a78d22afcae8f963f9c7158009ae9934121683aa69c135770f33bc8c852033f55934ca3524d0c364e6f74bfddec9b37a169198e0faaa0052a0ff", + "0b17daa8eeec286533d90b596c9ba9f41bd1597b6b7f4100cfd5626b05f826f8eddb38be4ee1b44d0eba6c683e49500f33543ac6eff73528ccf03c3fbdc4f1ef73447a24f174f479c033dff737426531632942f75341af89d3" + }, + { /* i=6050 cDividendBits=2429 cDivisorBits=2159 */ + "1eb03e31fc080bc69c177ccac0b72afc5e2f679f3a8d40768d8a319b142767d6aedd5d4e83c4ddc6962ef2f72e0b536166a26bb32227036e7193f15cde74f07b8736948d167d88291ae7b9146b9a5c3fa6f2b3398f4753b8b3c05e1003bdce942db49ea895770c3c24b376ce5c4fc657a0bf4b3fb2741b8835fdff37dc9556665419a0e436cff91ecaf4593e95b14ab8bfefdd48dd1ef4e8ba7b6f9a883b3ba488764366a48644c3a1c522bc23f7d3dd4ffe1001ad8223d884aaf8c469282a1a1fceb93418da786d348287bf2a2203628d85295ab5ad81171937221929b6eb1ba1d85599657063254d7b149784036266a62c58c9b7da0d146b2f4754e369323069241ae379d9765a704b2b80342842114b627e2f5c3c035e8c9422a5a82e45e4a0091bc54f83d149b8f94e781a8cd952", + "4e7ed2de7ca83337b65532eaf03bc7a2b4cff0995ed7f28af483fd7eddced2895297e4bdd36c26962924627ca470895ad79fe76e3d133375ae3c3b9495ca6c0be2f8f3893f0c13501ba5270ca484ac16315c671391e4467db3e1f65fb514e7180d475afecc89a4c25d9d40ea07efc477410ae3742206db3e255710289975f6f2eb98752b8c9ab39b0fd091578eada9743c883ae8517b4e8bad4989572fc310d1e2d21430d0caccddd7aeb8fbea6d149385066c41ec8b880c3ff944e908fbddf5018d85216c673199f03342756a44e01d924be39cccfc5020f52c02e0e3833ed6ec9f0dcce31a1aab0bafbb27da7e81b40561c69f2e1ac9eb1fb8098e00d60ef187d6fe766c4faa0cbe5280a74433", + "6415dbe1f5584f848d8de76342b777a830294a212a6086ec4a00c2badab478469dd1", + "34d42376b692f2d7bdd1c4c6e3154b450b904ae4a5960cc204a0f3257a06d7e8fb677a4332374d67aec1e2722508506535a6eda123337a96c5deb8b67fd712962503f4019150ec054b4418c267908c221a562b8acec305c76b353c116dc32f5b581faea1d6f974bb94f5742acd88a007771457893d11d32374298191bcbd4b40b67aa753c02725d044d9deb86a7099e730695345f80f9584f42e7eb1debb962bb7f6c80dc52c5f51b9dc5acfdcc3a52de4ba3fffa580b6bf483f4222c8222b3772fe802b4c655771690de6d0485ff1bcb1d1455be1ab49f6e0f96cc5f90e693dc32581df4fff266495ce674ac5be2c71c6be1b74283251266489f106004201531d84d7b7037c443e5ca5ef38e4af" + }, + { /* i=6051 cDividendBits=3870 cDivisorBits=3446 */ + "2e89acf695754739045f756b1cf7dc24fd97557a09357e55f4693b0e3428bf70c36c0c76bd24d7dc0a56544cd26977e64b0622d46ed46806299ed685c700e01c502e405a06f561c36f8a3b7d7a41f0d735711b1b137eeafe32fa30cf7d2765b1eb57897c39c246931d7d241192a2ae9f6c7d48b38ba4632c7a7e357c1744bae3c7cf03e62e3a55e957b52eaf064ad7af28c985ea831148fd6a983ec657603a1ef88f603792b7049174f3c54a06a3e97897955a500412eb6755de60b5f0154562a3616d93e315ef362b77d6f3d1998fa28265efbe4a71f07d5df1e338d8de236e0c409cd5882abcd2df6685c2b18ad36ac4e7b81d07fc256d5d8e9458c21140048ca00d99c688f6476b8be458fb6cadd6a0e57d37db2d31b20af82123cc85dae86f7cb7c0a00942648351f37869bb486466cf5a11e6dab419c6d64dc08a3537eb1b192f74aa45c3a38a7300dbd2fe9e530a48d3f3a8b1e3448bb995725e49a43726058c33fe3ecab7b5843e425c82899533b9d06f680797d86c7815eff1bde547da19d260979bda777bb755e0e3fed621ef54047343def8d0a29583f32ee29556b6ec7b984bf5f011c3314935f790564ccf8e9ec64ae38dee4d27520fb275d0a5288b36631d7ea406adc14cf0f54e291d1e5fcce5ab422ca6412077ba224cef6c06a448b8", + "0d508571e55f4a0fff79413bab9ca7d80dae80f6fa0ec945844eb2e257323fcfbb8a471fd1a8166339191178f4ca2cdb865d3ca05e643eb2c3bd8b504d6812fc70b1193be777718cabb681be0d178947b3d76607bb4364aa58cd7a2179a23759bfe4b32d8a9e1cb1f236d2db6954146b30fa542380363019c91fa09fc9a564d1a67d2e88ffeedebe626870af2361af67db71497460a64459c9f0a5f15e0751050b3ac5f2e424b64cd7b19f19c496d57fd987be79d4039d1e18924ae3d50413192e6c38c9f59a1f66958052b73e8c909a76ceecadf52f6aab81e39817f282d5aca21e45fd2cc1664076fe6be25c8ee61f3bb2aa6cec4fdb9229f7c1671041ebe42b477758790679c35dd842fda0d27582b053999fcb988406f5273ac9d054684328775b254169896acbbd4472ef49f8a2664de199af7b601bea086478e4a4fe079318c07259fd98cd79b22731fe275e5c828736b8ea3f5796f8250a513ce4ad654824ef1866da1dd7acf5b81091fbd1cc23b1597131fed41219c89381f47c0bd3b5a727adbda35754cb29c215ba7f6ef6b254500f97bbd37115b824c27aa926a62166886caeeb3a4ff19ca7ee0e293a", + "037ec9815647aa689a080d0a0f55621d972003b5d61c945ef2df38360ddd26127d307066c47f2b4182723239938a8b4726241b984670", + "04f1d42d02c271bdbec1098b4892737ec268871dde8dff2561076af233e8ef509a985e68f3f5a9dbfab68848a7f5f961aecbe91762d7033a4e89303d4a6120c4c5ec5a5591176bcb40e91c74056c29131d8c402ae5f6882e5f05c95b357bb0cad242acbcb10990a849df5ae6a18bf4af5d915ba1089bc3bd1206361b690209652df55de86fbb3a24a786afc9c67412aea9ed3d7f95c768ffd8070c06d4431e520e303c63175e5ad92c8e5de297f3d0283a10e9355383ec7cc3e806e67e4d4c6cf31b116a975e7de6142340200d6841c2c8fccbdc8e10445338bc278b91bcc29819c92912929aa45c235967558f22ff83b5d405693daaddc3ae7e6f36f4bbc12902e97c6b25a71d494072e9fac7427beb0c35cfdddaf09a0454956f8919d5d1fa745c5df0086b15f08d2b8c970689d163422cf246986f4a81214f50b044d92d0320850ddd16c18d818cea7371d2c27f0d46fcf50e0785f1c607afd0d269301ef421116720c15fa43f072e52bd157a2821cddf2d3981b550472f42d0bd54e545429cf5ce7b53d9a329bd6f3242da58d75ce43de56ca689e3560bcdf757cb48ab83ff7b305bf176d8dcbf3bf268bc6358" + }, + { /* i=6052 cDividendBits=821 cDivisorBits=227 */ + "06d040d8e970559d7da0c2351a5eedf5c2453109f8960f33c1207dbb02ec536051a1a8c4759930f0b1d35a7f187fec87dd848af569d84db0ed547c95011f3caefeaa998acbbb43a7ba80c7e400dc5e8d66e2a5ae3a52ce05a93b4365a5e9e9440d30b78f367287", + "022afb4cd2919819bb0ccc82021a4743d89bfd30f351baea7e5be5a12d", + "03249545d39376ebe6ba1837d6beccbbcd7f0133d4c085464f5f476141585039d8ea647cf1dfb481dfee1b324d3706505172c3e12d7ae24551e34e1e61d0bf51155396046f66f401e721ec", + "019cfb3f5c9597454536d3de9bc539ae620ebea1fc11895ba8a124100b" + }, + { /* i=6053 cDividendBits=1932 cDivisorBits=904 */ + "08194e7ff66664bae964880447d22661ad79ff81e4d679a179d30b7311e6d8efe3b8935b1f6ddf3f2b74d4fb5b81cea2df9777d2679133157d211476100f0c753bcfc511336c7a07cbb216b58095e0575396705ac68de7d9f1dfd49dea5a9dca13cf849ea80fcfc0dc018f90af16c3dc77210609cb1c7d77cc21181da80012334755d5e7bb757ca8d93f9100a9e6ef4b613a52de81b2981a2e1be1518a0856a40fd7bb5e7c6c0a2272587f4323b696d63ad00323a078b4eb373d8e5f715902fd9b7eab6797b344b8cb3e00247256899eb01a48e047bdf7a993da04640d27389811799062ead6593707bde4420445873013b4", + "fbda691ba931967081c21fa4f6c4e033106b3425ad5ace215eaab49bf4b1061a2c65d69c1f55b0fedf9d91b81059dded376050588770212eec751fa1d28e64a8d59e968b3f8387e334597b91be4a4efedb5c87e785fd5b34a91c2d06f85c1425fffb7ec0531fe8873cbb2c43463f85a9d9", + "083b71b8743e22107f739a02033a25e2409d1c6425b497397503cd2417d3831972f38c75dfeef1fa92e26b0f6b98e12ca8ebc1f49e67f8875e4f423677d5efafb58afb674b95f6aee676e72d4138fcbb47f4dfd1fb7e47a3cb67c25f8b8f9b389001fd9e9821e94146a3d5c66fb7ba3b6915bc52886150181d6c0e0dff22ea7451", + "afde3f7541177a2ea321b0b46fc030b9d049af2f0001c7b00860923634502594776c580e6b7cfc55aff57d67afba185ef26a6841d43e08de138d6db8a2239ec25ce17e08374d73539b3aeeb35c439cc7bdcbd541789b7e226b5a6761eed62be46b060734732cf7ba92e47ce15fca95020b" + }, + { /* i=6054 cDividendBits=3148 cDivisorBits=2741 */ + "0c90faeffdf542c07506122666a3cae5558869de91054d3726af1121fc513568b99fad00882f0da1ae50293dadeaee3374a618f4240b5dd204c707346337acf164986e5cf6f6b076bda2fcd802aab22a9667a4e2f8d877d4deef934543ad35fc225ecfd8127f98da3f398e75060ca998ec69e7e312bad151b175668ea18eb38a8321334b75d4b70ca9bad6c0519b0a41daa67a588d3cd1b1f8c8b2c41a44ab7ce7f9da17ffa849243e5f32525abc307531360df55dcbbd098f320db34333dfa0017a4525117f025e288f8f4428de650e4dc50e6626c063486927c458b9f02c62ddf270ad6c99cbb8812c411f325d8a92a16c2406ecd63dfcec7dcc42b09fb9d31e605678dcec3b4bfe91073fb2d41bc535ebae62870b1d73041eec62662768ad2e79ff8b28e96c448613f2f1c2385170193eef732c57a2fa564035a886aada34ba0f450fb06ce46f6c62133e7972fe377375917d97393dc98e0073243256dc9245b5899f6eb2be4446d00b8a1c0643045e583b27d6fe830065ae78e49bb3da1adf4c5d2f50f10b0d0cdc", + "151789cd9856030ad691f53cf0b06597e90a75fc51800bc3bc6aece771668763481b9c35fd0089e0991d828346f7ebfd89a3c1175b572b39b549e4aa79d1be406d80c89c2e4e6397c0c889da131bfd7605ba3888c825140a31c055d3088ad96d71d3788d4790ff2f9827a9b62a9a43940d03292a02e59d89a13f44fbacf91fa08fe5c568445fbd6977ca534f1d8ed10bd9259594884b1024b5207ddd0d10630a56c8a531def48df074634f3bf79d026e6e76f27aa465e8cd375dc26c9fd13161815cdbb09c806df2a5b3d0cdd4161a32594a2bde88f1d746fe22f5f40dab087c5ad4e7bf43d2869ce3f879559ebfb18303e5b2cca3bf1f7205df8495be4b29d27a6f26013c6354db5b0046583c5831825b5119a027ce0b037dcf9d951518a14471ba7b6b5f0151a288c47168013c2fd695794c47c5a861e9bef9fda8c9cc305567d718bd01657f38b2144bceedbce5cc6eb3d9f7eec9f2", + "98859049e02a97c5040c8f8eb55df94371a472bb97b556d4a28faca3aebae1efd8ffe2f17631f4d2556f855c00455ea40971be", + "108c4caed70d095e885d87d7fa15317f005f9c3bf7e6014d4084f1147fbb0916305d95e178e704e10dfc0582a4ada8c323af9384c2d57666a120a151c4b748ea4dcd573aafa7e370fc9da4e5ab76cdf5dfe7b306a088cef4a1d44e4c5e7470a6608386c1445e01831fb25776941699384124ed5f4a2b9594f1b1c198679fc0547c9102fb1f621a303cd210a525b98b9ef322fa7d22f9e31a7ac30ee3ac0bd75a528a2a0f8faa5de6909978d1aff6a015ed732958a736cabd3b5a49b3709c69fb43f5d86a41400d359afcc3c3149d24dc5c5dd24721af3e06b55729e5d25ae502e539ffdd50eb1aa1874fcc68a2a5889221558729eb57d67cfef9b5a5a8c7c738671ed8deb7ea3046059d1931718e15b64755e9479a0f0cebce60da9d0e11637884af99eecac1810977511c93ec28dcfb5e3f310f453e03005e3fa01dac9b16a13e3b407bc47e2137d079455409af3c72078d1a7f2d5940" + }, + { /* i=6055 cDividendBits=3590 cDivisorBits=2445 */ + "0482c3b65c9a28a926967ece5e37234804654ef06e7b0dd0b155b4efc2418acc9cfd31eab3716f8d54cc1484656be9bf17b744ef5637ecd9d1840d98da384222657e3c3c1f4bfb8678ce38402ba36e26b8d6d02684752992cff06a28192aa3e14bda57c95d4491891b6d0b168302d63cd9f2c9dbc8de27897d85c2af020809ff18a81fd2f9f13818f8467b8d4a04f66214329f6247104abc3162b11a5d15b82af5f4616b9c3295089f12412b10574200dc6c9ad15296325519fe64f7fce872c05ae274cc9d301380c118713761b99b6c7c88ca1bbb24ba04642666a550dfa3cb8c6947f80aa710f3c52e230d35d5147fdb47e76c76951b5f95db7171bbf39bb86fa857f94d1d83ec85c125eda442aace123d44346290a8df1dc601ba5d5f0c2cbd5f1c98ae16cd5d300aa9915e097abaa3207b4c583ea8178363ef11eb3e52b6f1f99006e9edcd69ccbad0f573c9207056d2fbe57480882edf23511492efd48828254fe0b0bd7c178ddfd985a05d6c39161ec6b7b4d1409d1d3c4ee9d5226467c7b665e35e22c70fc2ceb46efd021a7940939a6b56d9db8f2eb7322db3335e7f4c9ed9cc691d4f86f59547559feacbcb9b1abe1a4d663645b58a1b733439284522", + "143813b7aac7c8a1fd21b19d6fcae700307ad9c0a71807a4a0c128d902fbb5f88ad1699e5277b19bf622639121ca7cf878fa912d13ad8fb700c589f3e519fd0fe28d6490a45adb3105d67a8f966d9ee3dbf0acb433f4c5f8029a78cbe09b8ff66dc4db441a9909ea9b48d79588050f1956a495a15e8cdc566bc8a88adc392958569c61e1aee29708d91f1d2e9416846680d0f3eb6b3ae7ff7e7e1db3da432899553448890cad1e8e160509b5cdac2ebd302c854c4e62e76ea3336d3aa24aff78b9b8de53ea793bc67e8d06c87916ce4786b33f240d6a86814672e9a376a6fe46e49abfe6a8b526a146b7afec6a49b6b75a6b16733e9b3c261ab1bddb2f5a3b7785a26bbe69e6e2d3530b912f01a26b38c9a94a1bcbc8502d5434195b60dbe597900beb8c3ef28dec8dbf5d42f691f0539b2a", + "391cd9a1c4585232f8a66f7b9eecab3140b9e99e80cc4016437c8c111b40c0d657ced326b1399c4896a913c899f296dd9023ab09360ababa99f3a9339755e8af004014f6a2e8c7b3a4616133ba43cea5a5e0085396925bdb514f0a74c8f2f21be2acf81113aca19c93ebe504eefa3c2701bd770c10cda609a0c1f24f3dba67cc19b1e65ab21819cbf75a83f1d7252b", + "106e4d71ffab5b90cdc44b8be3c82a80ca872c00133f9623f87c2f052c3b0d3e0c2a3fe228aa74945120fa589eae30a325a567c1ee8d38fb87ee91c1a732b7bf9e00adba8121a1bdcba30cf176fd6674928bc7cb5b77940f98d78f54f9a0824494d4f09525aab24e8093c0a4b07502718a114425fee776a872a51d1f8958f53253926d8893c226d46efbbe512880f45aaa251dadfb79ddc8304365fc8fa441ee69138acb9b5eef1bedc9eed1a0ba1d4cb83b662c4b9a1139d420f7980bde8fd5d5e8f5d6948566b3d8ac8e45e672f73644e4c6d49cd9fb2e428c63e54f595567eddcbe8b32c0c52ca125dc4eb1abce05169ab2cba68076362bfec93a233f1e3506f392e54c7af42d7d436828ab759488ac5673a3c13143aa9c0953a7e3e4a1466332482efde5523bb1bf578e3b2ceb6a2314" + }, + { /* i=6056 cDividendBits=2669 cDivisorBits=1847 */ + "125e0881c5fbd5b8da24019ee0eb9117bf6e9234617919d8827476ad8da3a6ed514c762a5ef3a2ddd1e233bdeda31eb528d591c202ad349570653d8fc3793f772a00a4be1f62b69bf2219f9fb756be9680625f3088284d5496b39d7b16bab8815a6e8d53dc61017207e39fb1899368c97212832cc6fb3481c94fb14b4147f590bb36d957f64f01a8463446fbc70fa9ca566c9d47ef08444452c29fe3f20f76aad88069c634957ea24f95d3c6b125f275b8e91b0148deb6dcc9402cad6217b787f8f296eb2d9ed642494cc89b7b48510a93d8363b6d48fe720434252d494d025bb3e4c798f44293001c832f4c70d5ccec882e60fc49dd87a48b977ce39b7e236101d0a203985d5d246509ba8decdff1bba1a25dfbcf37c9f891ff35ff4a0c514c17f7a2e88e068141b4489d637dbfaf8aa1db5f15ce26251cdd235b91b5141433b2a95112f6db6bb0116fcb5f3996", + "7a4207b4244250ee2fea5779c4427e76ea2d22ad4eae5edd743e3340b0a7e34a594d1be99993d59c57cefc0fc7be099e2f87c87b23900510168048e0009ebd7c45005f7b112f8d42cad7ae8a6c08668ab9a58395cd496dcd8606d99a2bebb967367403f853a5615abbe48bb0188bc08b2f2f445d47fe7292ba180d3968594e4f22171f812fd05c949962a027b9cb5740e82d194963403594f1c0e1183e5d88e52b0be0bceff73fa8a0707d23e059c0b0ef2e02964fc86c7b07cb88873a80dc603e5b2bd5eb5b17240076d4ca77ac2b089c40088f15ce823067b0eddd2dcd908028699cf43dc22b", + "2675beefc4a345dfa9e4cef096d4501eae512638fb3ce46813ab38d7c61b5a0b38312d1551ef8eed9f63220aa37be9102debe7c8ab8dc359cb6c6bb341a6fc855c5e8e015c2b03f1e98a307fc86417cf1c9ea23d561637d52b328ddda9836728e19291de50192a", + "6416fcddecea341250f6c130adfa504e2686e5f5df4fe3ef481cc1adbb73e9a15e682d945b18edcd5ab75a2e9646af690ff5d112599a26756fe162747d3d8431566234f2bf725c37f40a34f1b1ab42dc2c8a931a9576f05f4d98547d11f0da40a07155cb4b1adf4c543cd19574cdc153fbca4620454278b069600bb46b227f4a9a15a509537b2811e3e6ff9b4f03e2a9dfb50c621c51f56f44efe97c36a65ca40cf3bfbbe24f8409587ab5d0060c02caea8e9196010e6498f24349dd44b0bc60b32a5dc23e62e1fce9cbc03600a53cf18b86f12764db065ca41a4bd95d424e666207ccb9d72b88" + }, + { /* i=6057 cDividendBits=1085 cDivisorBits=400 */ + "1efa4bba60549786f8f51edded4ae67a335e80fc1a500569b2b28705901d80bd6110d984fba37f48fb9b8cec3198412625ed22807c94c0a3d967a3badba7603d7030cb9c88af0d87a21f38b68abeabc70f3f115c20b95045037e2fc3efa774a28a8ef5ef73454e46917a4211fd4f5accfed1e4da5b80a2f08ab06cd49199ac3472e7be596f5985e0", + "b30aeeeef8791e929386a80b7a69aa6b38207fea0dd92ad751ca222d6300f9a588e3d866e74288e4c6dbf59c0f8007266a7e", + "2c4af25b5e12bb3450c31955c41ec32af36350ab08abece5910024e04b3b9e8aa54d3a86447324902552698efd27b2deb7351369927318339aea26688787dc6e7813af205d84b9749bbc1c383b0f420a58da10459525", + "636a194bdbd5bd6779590bae04a0994a709c408f2d4641417ca791bbbf3828519eef9e599fe285bb489c0021a96076dacbaa" + }, + { /* i=6058 cDividendBits=1400 cDivisorBits=952 */ + "66cc2eba945051da130ca84fdec3dc2741386bde1c5a4bdf2de1d66d80e35350e0feb86d5b43cf174ee911d44ee2a222257de9540dfc2830a4335b235dc9ad160b274d3b1a0b28c9ffa22ef40d02b66480b68dab00c3df098bd419892b58b6975d2a6c26b3ad01cf6a3f045e844bc7e0d306b42fd1d47a49685a1c84a09879395785a8590abcd2d6dd303aa9cac4828136d8dd4d0dc885d3906f05cf61d179c7fb8fff63fc30b57b2e414acac18f20", + "6bc60ff0dbb785f38ae2500b0bdee52c61147d72e32d064f22f1749b2dd7c694eb0a88264d16b3e9103fdb6d94b1504199a6808047b4101f9f0403a51d0cff8f7ef40851e39c91d64b65d03df246254b9e911340530e8ecc7eababff9f7137c91b774c7d1d1a850e2f983ab35d2475c779cc85339a1e81", + "f42e179ffc307b9c029a97641e50c3eeb47a126ec3e8a6e1a3bfb4bbc8fd3a049758c2d83ee14fed4490b8d4e805973ccd0e2f6e1e12180f", + "1ad59aca364a4244d1ea1b6b9ea9683cb7016f6a9e5360ba9a123473b86d9efd19fa06ad932d93a1547ab5d949920295d2dee0865b0043363c5073b948628e71e892b1a56d7432fa5350df240e95a2c3fbdf99702758e80fe591eb6206571efd901c49288d381d3137b81d5b53e6c6f2944dcf0ecbad91" + }, + { /* i=6059 cDividendBits=251 cDivisorBits=55 */ + "01cd88c879c49428a01e8bc8bf1aaddc3e7e2cef45b8930bad8070c2096aff40", + "534cae489f17fb", + "058a689fac5c7185aa8ff5de50f892e922800f3559cc0e579f", + "5288c289bacd5b" + }, + { /* i=6060 cDividendBits=1413 cDivisorBits=251 */ + "12cf2a1e523c36f3fd11f0eedc7513d244245092e744a32d4784a1a1b3c8667db1d59a1bed472e2742f150aaeea66f08c79d3030da7ace76fa2e97c1e422438b2e5d24bb10b52d17fac582e46a07970c91d57bc1e986c388425b4729491e92f409120aee88b5aa16c4f9367b64f5b7fd84b25bf5c5784b97d595cf30e14a45f60ce2aed13631e2c67cd8704b57a849867bc75827fa46228d16eb8316a9ac465f8db163b653a5ff770d593450c4343453a4", + "07c92b16bd947ff42ae3d6c51bbaa0bfe3bf322274887e1108c5d02d242e7e14", + "026a741f11bb4a583aa76dd08d6e9fccc48ae7257d2a50277d76e33486ac9f4e9b4d464b40e5253ab3c9751d13ef5b1204d0b70b662d8468c309d288a3fe3a8607c202728ac1e419768280273f31813d21444ce6cc38bb2b5151097519598b433366d84e74d9a71792ce6bb6dc17ef4a32543da2bb1558b4debda2cd0f624b4757f017b7f40e1226c9bd99d254e6cf8ee9f3", + "01b6fa06238baaa9c92353538b73964ba9f9c0723a2f6228de1f2048703a72a8" + }, + { /* i=6061 cDividendBits=2104 cDivisorBits=1894 */ + "789c610ecb8a3b7878acc4f423bfdc0eedd0ce41b7b29869a52cceae987b21483dbda6d67174c01e873c12fcf8bc045e7cc98ee81657378ea3df5e2079055c471ed35eb6ebcf0114e0d6c8afaa95b13751eec8258298774ea853392590fe1b3a43afcc4c96bba426ce3e9cf4e268f961946793e823f33ea73ba6768e6c00f0a6650739269fa733c104059665013774dcdf7bc5546953902b7254e2ae65aaa81fd25835b0db9baf1bb16d2ac010c25306d9077ba3feee7cc4b717e8d356768a76049c40aecd91d3c29232f62925db152b819d8edf39be0a2f84a943cb894a1d09b0c8b33dadfb3b56785b074249ebdedcc886f6d33f9deba3fbd3df6a2e8e12b63baf6ed2698d01", + "02b20edd056d5dbb8a0da51947644ba271d32e03f2103b230f84ed59f36cc5deabdca765406248009dd27721d3438c0b3d52b522245999d0e094f25183f8d5aa3936b037b657499e541e89c2925f5adbff9f8ee10f56ac63be83eeced47580c83e9c739a84497acd204874ec5b88c28570a9005fcf95d82c97e878504eb43c68b3e9e862282c0bf5ed81a14cc54fa7cb49cfeee7abeaca74fd6804bfd05ca0d642b55bcb934a29fc8b2d6af0a3c4ec741e1bf1928a62272131b2c4306e5f41f554949a3ad7d44bf4e6e2883a8dc37ba69243695d68da2c8a32e20e325da43a951e93c905f44c737fcba1766f22", + "2cbe9ecb8a329336aa2e5163f4161917f1a63332208c0613f533fb", + "0159e40e1f07a99a7e55855ed55bd4a78ace937ddab5a93fbdc4220541873f9bf71830eac02a425edb47c56a806043b0f50050eb7b575399e31e498d55aa518f354d7fd2543f24511fd329b5fe67d85ec7ba02d2ba3acb9235946fd646d2f09ce18288154371bf53b61f3d279d51d2e017817435cea38d637bad0b4f2b53a3e3bc9cdbad6ee9dd87c7077aa1c30e9bc1504f1003e75c41da236ea654ef21650d2bac4d892b5f1b099136a36687bd62490f8eb29b4a1ac3ec9822bad3472795d9dd803666c22355b6631e876265fdc5640f5feefde639a29e92134f36985d9066a04c2c73f03ddd4e39099cd0ab" + }, + { /* i=6062 cDividendBits=1784 cDivisorBits=847 */ + "72bf2760debcb737e0c0135459f9cf4cff64db36843eb468451b0a200a06cb908f7977da0f867c12ebe939f6ea53796a887d5afaaa93ee7ba2ba34cca2e5d55d780e6e9b62d2e41eed04603ac01ed45bf1fa84a978ff9c00b2aeb19678bda7353cf68cfcd447918101ce3e72154e921bd7a0f3e7f5f87c13d50db751b91628b547cc9642f3c838428a484117b868bd2a4af78c70a14f5f7137b8e60ef6aa2800d304b265f656218d23265c19a89b83a15ddba391049db8c9203f82f96321c40383c3095b2fabd96bd78d76b6599d211220e704a882ce60c2d1f3384b3dc74c", + "1142811ae9f51c9ea4aef054bba5170344156fb45c8e04a601f6e312afee7f3dd7f77a5e40c6659cbb8352b3cd5308c0390da7a0b13c1e930aabd0f015dd697d43fcfb35bf7179a7840ffc1e56463165254e9c0c780e3cbdf1716fbeca4bb653c96e54e96a764f63e050", + "06a5f13a41bcc23f1c79675a6f2ab53768e379c5b3c7a4278087e58b02191723bdf8b3a8fdfb8c0e04c13a9e8a12be648d5dcf0eca712361b2c87323f3acd3a9ff0189328cce3464cce39b7511c25f7125134bdaa3a03f06def6d698a6683585f0e4b10b9d0a2e2e5e664ffe69240066dcd99bcf6853", + "085fa53d7ab2b71204b27810470ee247a7f77891f0e5b26cce5bef85cc0ff766e09b58f3b5321cd5a3356d806cf525735268580a17c78102fb2cc8e7333a7491364d5d1681cfec17dd011925065556f508b8623bdd5183f66e7e4c7a2acd76fac95b2fdad0392a0b8d5c" + }, + { /* i=6063 cDividendBits=1142 cDivisorBits=332 */ + "316a0b2f60d1b6d51dddcc832a1a307d58a4b6fdc416da890a750be5f1a1ba208d11839343a266015ec26064924535a1ef9541229382dc1936ec50ad7f95953b66d87761de7f9106cfb6f92fa74981bf493a388eb1c02c8bbd44f2da9d1425f7998abeeeedf37b00a5680112132962678b4a38f939f706c7e8afd3a6b1baee9d51b988e64124ea2cf45b45b183a22b", + "0e642d19bf7e40272c995675454ac724db56eff373cbf1bd2b47ab21dc1b41a5b5ad960e8087ceab9072", + "036f01699add70169cc07a32f2cd33341d89b2d1a0c92706eb6c54128eb299c8c999917c9e33f1ef9f14b734af9179c831cfa45fb76e93fa68f7c785b5275f9615b192a65128481edd72ed776f25b9797cbadab2302da66e41f72c5c06376f85225a32aa4dde", + "03fb152eb3fe0b6ef79d2c52c0356eddc007a8a3db27ac51989fbb8ca6e94fc73710e471601eae96154f" + }, + { /* i=6064 cDividendBits=3330 cDivisorBits=2635 */ + "03f822e7507516313f0013a12b36a56e65156fff310b532cbc3090a76b604cefe0acb1ccce14b17b61160f075f1727d7ee064c413f8c1260aaaa03835a4047bc8cd5d27c3535ea1de11db9b65f1caa46858fb7bfe25008926fb4b5c436d347e2b1a77662a97b579a07dbbcbea95516d0bb7a1df803bb66eb38a7d951ffdaf944f5914dbc2e63ff48736e2f16206cda3e29cf20a16c29ba9ee5c3d25c5d7c125a995d981fde693a8509cba331d3ff84a8a336b714c87b99dde7bd05681b536e82dcc7266a975abdd34b828e85515c49509e2f76dd7945637432c56fd0aedcbcbd34bffb53f72d24a43797d7a32f22545bcc6507e9d84618b39be2b99a638bfbef9d7f54b705798f5771e72938d9f3094f56e5af6ca5f74d5b19213ced76b94c9372711963e79534c2707fd36a33bf0b5617b32e465fc0d0e4c5e30a718dfdf6cfb5bb323142bfd7f48c076a46f3aa557554d04341a22fa72ec09314fff69f5a26b1ccfaee3f3969570d3ae0a2d48e08dd5363843b2a6e7ab4bf946204be444c1c428553162a2192a15951ed721ecde8f91b1fdd1c27fbcf1e7ccf8728c1775d82a2", + "051282f2b6dce138631bd8bc08cfe277bd7ba78f201674f2207804367d06ebe149e6ee35e9bc087954bee3f059a9ac58b3611115964893006faf6738dfc25c5ea4f1c62d013c5f12119663317d8580f7dc1deb8346f3cef9fd17059fe7b95670cc48b84e0b775f9e7c5df0965ecfde0e0de11f66d5dc86b0de98878ed9e79888890686de80fd54072aec31d17861c992666815216f2f0fec9f08d561ef87b78905a0ea2f78a200ecf80ab0eadac684d29f97779118b255c3235508414a34e2046a9bd0e60b03bd02e8f1f7ad0fedf5860600c448975f25d34583249491af147d13429b5b2f7255cba947666ce17149b630c1cb3a149dad2d2d130615ac5ba816f7ef4cfdd1a59ee65206a4dc0220981567faeb735ed8e279f93e9d4f1dbd36ed4d9968bbb9a9d4285c66ee1d5a9a7caca8e5318d528e82ebbc95947ef3eeda98194857cbc877c5a4da12", + "c8547f8057a8fe4b9db6745893d2a626a4b0b9ebc95cc9472db9286d79eda5db644afb2150af5f581b65ccc4b525a33f1ca1d7f18758a585024135cec114c3401516b6da64bee6541792ec2e2acf710d4c94e88db6988b", + "024403f83f4a8b7e1f83c5c83def2f83d76c4c19ed4011c16d999f49885a5223efb81b9172c9173612de5a074ddbbcc73daa75932b8ad01f47028a686859662885d6742cce6f375a3f05bf5be2c438b5fc595ee27e6ffaa29dfc48fcf648ef616b63064057d751c7c3b49f2bddd2f68cf7f9c6fa972d71a331781c880bb1067fce5fbddfd3a4468adc916eee06fdaa983372a8f49319b44ec1a078b42b8629cdad193c985fcbaecfa21949b0ae4390df0867a0e28735d4ebc685c3972220e9f837f2b0e081f581ea07e7323f76b692df7c9288f548fbe9a5b52544867357ce9fc02d3bdf2e5889d1ef584b8d7a64fec06ab494dcf0c73a31c3bbed16c2bfb90b51d5a27e5fe07e5e51f09afde957c59ea04a2853d6b9c7483320dc0088c68f5534af263680ce0510e19028bc31e00d7cbb33e712af5740b493c94453d51da43501059507dac052946adc" + }, + { /* i=6065 cDividendBits=3434 cDivisorBits=2010 */ + "01444ce0b6f96135bcfe95e2cb62acf1dbeb75d67db53a6a21aca84ab34fede2b677e58817067d5b2279a775378c25f05aaad080a3147e78b39839fbb8f6031930f9d4923274b943af59b1afa57b8e47dc59169d63d5022a860e56a497376daf3fff58160aa6a85f94eae6a4fc6bb9bdb63fc68b509e2518ce392561ddeb9f07eb989eae113490b535396243cba60fe945066f4671fab98cd153955345722bdf1d9b0c89995536e57c78efe304f8a32730595ee3b0f198d91f0df357ae1e3138007b93af5c0babd928e2cd89fe02cf4600ebf68dd000c02bc82bd622d34b71673d6a4c63da46d1abdb3856f3d526adfa0a47499d0d169fe6598dff3cd091da964308bb8a0bbc2f96bee34f432f00b27094735b91adf865a079315290e52fb83ccc39f3af7d760eef0d5efd85dd99fe21cdabd800e5d7858df2fb424052fc163e04c0bf22ba84de765cdf5340f309c0427b4dc2d568ca4b59b0b96ec15f27c1a0360a2f72a3e29a117487cfceebd9c7d75bb97bdbe11cc60b92cba5cf821e578f546b2b60bec840b428c280d0b4c08f8a5bfb3b1eb4839e94775debd3df95bc24d254e611c0b16fce2db41a2ef227", + "01fd047db95ed7abcc9265473158583f932e475fa73bea0739bdf289371dabe0a541d1e305bce84b7a9c355673405484449d95dd2dc468c270c7fe50d4adca32a0e1c581a1bb0790a7722dd6e6030a5bd6981efb363206f897273c519b4bc72b2c4aac0307589af176003c05c3243a736d14125084e262c2da46d87715a69dc336bb4f8e1579ced57db70c80327b2a473ac61b7bf4f43a04ae50291c3a1d57ed20fcbec0803fc8cc74f1a2fbc6acf6b8b9757a641e94a4f0a2ca41074a4609097f307b6b80711f31e2837d07f4bcb36db078aa8be9a45c91bfeeb987330b6c70f6233615e442d006fc95a7ed8bd2a7d01276bf2a3a4485cb60bcb46b", + "a319a8983f39f2f00700b8813983c77fd1f03f8f9e2c6cb305478e60879baa3c9db744f017a357fbf909a0162a6f2419ae01455da357a4f3010acca3f50eb684a73f6992a29cda306531dbabaf0e4d6f5fbdcc919dadcfd0760121f764baeca11a91f35b9fb11275e3ab04e8a64fdf1146635165b085558c4f52cc813ef321a11da15ff5738e7a16284a719d16c425b4d855e6280c6f35840ee145f5da1cbd5cad36484d887d907564d77b1e9b2b54d2fc73", + "efd5d3ae74b2a77ce965a18eada67d22d753abe93a5adc369bfa021813259bfda890bcd66113a32a7ce9a95cf8c76ad981b0d2c87394645126d0f0a0941837e26cd97180f49720b493940401e1f0945d6824cbd43a02444caff3f21a222121632ce6fde95e3b6de171a37afcded31d36fda906e52768c6a54b0e8223f1ef12db57f71af53b56eda44ea26524b05eb3fd769715986fa467c4ad41775f6676004c4da5faf6096a893319b1b00dc29674921bffbe3b4ac88aaf5a4bec79fcf16b041fdc37d72ee0c3914f915da66a9d8e21d8747f4d8d9636f8b02bc2780deb4aa81a4955fbb69648b2bc44e7d798f84bc51917dc44458325c80a9216" + }, + { /* i=6066 cDividendBits=2259 cDivisorBits=1490 */ + "0123f5200618836f7abe5ec990c688974965ff96f1ddb20da2f3c62ebc62c582431effd36eaafa6e038bea24217417edc7be201ea1f333a962c1f2c675c55fb1db24da292b79933a2a54a4041ecc43a2cb79cdf0fa83ee5f8f6b5fbeb3e8de20ec9d1200e6ee9c91020f004fcbd2135a53861029c0ba24b16eaca862a3f5a6e09bfb7bc0be8921e65698df235aec8f3446bff8768e3cfe4d056ba8369d229ebbcc5bebcdd73908b10b25c3007077d75c16f72d9de9d5e46f01a4b7e7ae50bdf76584936df51b647d00bcaa395cdb7963132fc59eb016c6c378e9131fec0c32608545e02c4c5c08c5558c09c415e66e4c960131636772788f7d3228ab3b9b923cd07eb3f1e8b14b83a1bd190c8eafaa48f17286a444fd8116a0a8ef", + "023d5edeba8301840e49c4eecb19dc83433960e39c0632c6f929575b0627a6b8103f9870f86fa6a2d0a38d3fe5270033c250fef08d485a2dbe23dadebd599be6d4fa7fcb820b6f827501cbf985a35e9d93833ce44a1fbf24125f3e5af899cbcc3be80070e9a63706dcc32b719afd21adac899ec89de11e3b6375203e00b2a803b9402e8b5b6decc74bdd43133bef92eaa247612e32bd78d79d83e19720ec0e5c4c3e125cdf72bc875619679145a95c4f44ca69141584038e1298c8", + "825a9cf7eaeb727d42be1e5b1d2e2942460013f8c1d32ba7370878660cbd5983a90c59a9add9f9a9653f1d9522b9d590917f86801de96d24d2aae4d4516120d20229879f2e870d1f4de786fc0222241aa40117650b2bb2ba98c0ce201c7d973f", + "01b8fbecdb711a7cb1d9575c82b04829ac69e2f007121657fac56ba2c65e18bcb88ddddf350de16ab8703bacb2170ee3d1129fe1d38cf334502f52c0b82ea5036e05a1897aafa87e8b7cabd8bf9a880feee2b173a110cd1576cdf85278dcc4edd66c59ece83cb8364def45f94fa91919343184149d267f373a50c9167effe2a41c747e2739efaa1988a5a426604cc4efe240d0d0e82909821822f62ce87e173d5724b3b549415f292a2942a19856af84d778221990f709ae4717b7" + }, + { /* i=6067 cDividendBits=2854 cDivisorBits=2740 */ + "238a63f97e676c487a352700693ea4c90956df8b9c09e8a01290506e883c1686ebee4a656671de0c5887821b09c34aa59ddbcd979f27b497430cf940a8b651b5feae2d894c9aa5e81abc1ac1e495a75a8c40b637d92cf8806ad570967906c8e2b8efcd11e35fc89df0e235c4ff0aa413f0417052430c00ff41e08b6dcbfbe29b1e27f5e65fdd91f28740da6bdcccf9201525841b706b3b58a53fc47d16421161128c837944fcabb4430144ee994e5aa9708b630d5d5d05cdbf05f473b34e80fcfc92e8d43184fa5ee879e933414387b5d122698d353419c2f2bb7dd5e84a8ac07c9d09185de363dc13b2491ac735924584bebf44233bb934d06b87c0b4b5702a1485ea858b9bcfd30a2a0fd133fc5e3f56e36147a97f99a74f43598fe7925bdd56857ae1a0937c48baf3aa7cd5fa51e6e1d8bceb3d13f558c102dce0ce128334f3a1910483ec2e4d2122345555fcdab786ea6ebfc0cf9fba02e49d27b706ac38cac9709557", + "0e5d947d9e47328bae178e191e4c6f98f05bf8ca5fb5bb0ceb212397cd17aed7571c7bafc16229bc6bdb589f1531e59a246b7de50321e314864bd4ce9b69f45efe12aea458716e7d98443dc5fd8bff8a1d7e98b5630039e72a0993d96607774b0f0a793a1e3fb810c7e4880d197990ae1be11ecc0ef2c1d53284302e38cedc17dee0158e591d5a4e61059f12bd03df08f7599109edc04163d4f68e03fa201ed944d5789e05c7c023235239c3ed37c6dfb694d52c8f9a3e768a247e129382803e47ebc723f6753dc7aaaf405a339196cb54a7fa333d8a19c471a36bd1a9ad8d5d76212f50ce651ff7f8ca83c0b95b9c4a9e8b53c0edc433eecda8e053428f824f097be4b38165a9e68d360ab94bd5560afa4b6c602084beda6405d46154f3ec00bcf100051c085ece438c203ca3cacff8e4e289f0eb6e04b713745fe68e826c88f55927772ee78457fe432c26815229c46a1a493a24db9a", + "02795916b61324614b25dacce99b46", + "0d2c8104fa9ccc30adda7af10a095adac6367a5077272e06e73a122504f2bcb03dcb136ff35eb2f0e1d3ec5f99f360bfbfcdf173ad9aa0b6d11e3fbbf9190c389021ac05af8d72a0008d14ff8ea6f0b54c67054e863a5d6130597013afaeb018eb8c7fa2d9b3be9793edb6f144c7932e8d636bfa658356cf256a12ca05af0982f8758996ed5df15be48fcb364fdb52d61e7d139bffad4483f37866b8ae61936dd19dbbc7442147f65b2df19137c4e9cbcff0b41019869e150e3d2baecda667a93224dcb97849b5a42ba23c522f7ee377e236ed7ac7e43b3b4cec8200fc6e4be0d06035689c6e0104e061bf485e2ba53c2668857ea5ec1e7959a1e1f852c149ba42a8eb728cc25a7d6d4c244f1a73a6d2f34733e6ddc660265feb45a7093ad9be2e1c87681971a93b4be0218c6db3f06cb221a3d92903d7d24e3691f1e42ad933d123c8015d21ca47290238b05ecd6e458524e1fb3c4b3b" + }, + { /* i=6068 cDividendBits=1978 cDivisorBits=1326 */ + "02e2207cf44c44c77b83bd5f757a022676d5dd19a8923e12d97a88528ea70909b327c253a64efb94649be06684deb09693b3f3e9b87b76dd005161ee006bd2ce1ab28ca87a10a37bd82635011af32369994c94e5629ccf283d2066e7e27a51ead4704005cce52be0a043492d303d7615e321ff02b158b28a198c764cdb6073c704ac1bf7e937bb1678801dffe7397b3565e44a5f7ac3287f566e86068e6772bc8268a1aa02d2b9875506385d91531218825510765403cbf0d58ccf8ef82310545cea2cc8566763de44b8b347a5a795db2619bc116210c0a704872630d68c12632518b5ca1580f320ac120d8323a43812c7cfcd5104e9c416", + "39eb063ec0673ea29a1fc290ac83fd66cd9b5d19468434211bd921ab357a144824897c78ab3ecd6652777ca4de2a07b071fd75f0114bf4a8d565504657272baaaadb53140f4824e355af4272785eb2bf2c5a49158741f4444a540f612ac9da108a129e8e21bf91a2dd1241f499b12c4c2c22ce8dcb6a51b64c1647fb1f977bd712885fe232d9c0e868598f75896a79cc9b1de9c2a09e8546597d4b5d4c87cd0a582cc8fdc65a", + "0cbe8c64fe14b4e4c05433aefaa8b3546eb0acb0f52007b82e7afd80d032c542b9ef065dddfada27b2343d166f62bf14cd3639f8147fc5415623961bea6c40bcfda008b680f195d51e6c71f3b8bbcb64430c", + "3843febafaea7b652b94a993f06a7f69dac31839365ba9897f7181e9d108fe9120b0e094a4c0def4ed3dcca9759ba63429663e626655743a9be5696e97d5e9ea2c35c2b2386a1975d312c2fbebb109647f077eb9325b94a86a6b1ae39e81d58c41bb0c3912cc07a5a05ea2742853ac810ea72a8bfcf6c6b05b9237daf1dcd6ab1e9ca8da116fa297382cf3012f8ea8034b11437efb91ee11d3b3fb402a7f48019f7454f2e9de" + }, + { /* i=6069 cDividendBits=899 cDivisorBits=165 */ + "06cef9f5a88d286729d2b3afabb75ed4720027a32425440279d0513737e04f04418292dcc0197ccc56527b70dc47b60338ba7c8448b7e3b87c66966f889b6617469f43e750cc96c5a2f4ab6691870d18fee6cddcab00b84693bc1b40d8549c02bb1d7ace245cee8ee506b51fb1d83497cd", + "05fa18e5f2226fa83e2148cfcea5e0198a8711072d", + "01239de20941060e50a4e3cc472fe0888e0f266b1e5470ce45909128dcdc2899f709ac1e94c9ba0f91316cb5f1817fc03a8ac1cbdea9dfceae3298ec35c50047a0353cfccea660bdf20f7642518f829ad70e182997879521ea01fd02fb", + "048d7c66a811f2eee606a527244bac16d403fb34ae" + }, + { /* i=6070 cDividendBits=1536 cDivisorBits=1392 */ + "3b972880931bce0a5cc8010e085bc75070eabb810e557d3853040e0e221543b73315a0c9f0a88060f9e98ff30ffafd89c87adfeff25cfec86e81fe6243853e993515916559362e4a05f893262d23eca172c445e27f34157cfe1b7de97c6c028e1ec874c2c861e3c1627e1884a95c275f9397a2ccf98ff52daef8571d723bc8252f48656520ca6b9b8e31d1e0ab80283023e0881185be644f1cfb1676f0b07c590ba22d8c57802bf36fc8087aa2f8417161e4894125442e7133cc108c66c35adb", + "7ac220f9afb1490131a628f5ae87cedb7af2afbab518d1fe43958236555c3916cca2347d429381d7106164ecc5a81319be62d7a8facead0e242827ef0210e8e91af1f04851cc1316b4421a1a5e2d0e300485415fc380e90420126a530cd9996590a9dc908c2ca500370183fccfae8f0c3daf596eea45dfdf2bc4454f5a1611735c0c952d835d6940f3f1f267ab3a9e9c446adb4c3de19e04e1895907642f98bb51be98d84d97ba2bfdcfebaa97be", + "7c4515489d4028abeeea460c83e6512f6b1e", + "6ec643ace20967fce9bb2d46bc91728ae2687bc5302205f8ec518c8989e8bdd28ad094c67a55e6b68aeabcadc819829371437c1fc55ddd02a290e513f097733d5408b5101f83b0a91ee82c9d1c9298e76cabb5fc113140188340a765b102ade5c15afe19374415cc0a75b2dfe1fa91891b6d1470baaa7955a293399e20970bc3c2c1edc27bf94b55cb3da20a207347aff10f2b286074c5d66aa62f13a400d854d969fd371ae784fe9da581772897" + }, + { /* i=6071 cDividendBits=4006 cDivisorBits=3871 */ + "0d88af56b94cae0d7efa35d45fb05276e5593fcfc908cbe9387bba6a0a99994e024d162752b86aa4d44a04b00de6cac62f48ed89487e40d71644a9200fb8ed7789856b84f4c8e076820bf5e9912abc2dea7ce08725d5457ad7bd725a64a8f4cc1ce1fb55d44b32661f8705d60414cddc4bbb2ab65bc732f233a278fb109ed9d13130c31e15467f854c17c1afcfb99e8ca19d68a5c2e993177f59d50df682199dab661239c4903303b8b326574b3478a9ae01e4907ccd70f476ff98a83b814899a906fcb192e6991725f58fa597e2fad632597998449704a488dccce648db4f39fb2111095f4236c48debcc8d16018518cd17b5d0317a9bbb8782b030ebc4e51e7461b35be077b1b08139cfe7e959af169165511358de567f859f418dcac9c684cd32345612672982c2c21d8a6b49e51fadc032ec2bf839a48bcefbd93e0a73951b13e37013153f9945c6323615665cd6e205195d48b2fdcd2fdfabea4b79d072808100de17d58bbb527374929ddf83c1fab42efc3dc9c738086f317d28188f64242b68feb66d474ac0fe702e3a145be68b1cee6359b6f19fbc7fe3dcbf3dd1e976014bc679d77a742dffc01f48615975ffec9b0b0c507e733aa99e0b797b130754c97b7ee2005965079df13f36993dab8fbd4da8abf08bb78551259f874b849c055bbc69898bc617673c10d8963169a33ce7e5bcfb", + "2dc8bd027ab6b08a84b2b2afc450bf076453e43fa55e2495bef00c3c3d5886179f20d7da0e70edf333e87a2f0ec414e927e63b35ea75464d4398a9b025fba893cb858a99e4cd8ec880341a08fadf71b62d27736c3d714f3026f98ab525e15da0725f30e74fd7495697a891a0b6058b544b6d43f523e5a03b1c731bef15747d85c1b08010679d396ad5f9ff002d1a89346f8d7f2b56f6f0b120a52537f456b476bd91c89c4e60c920d2b907f42983415f5769004b4a6014a09af7b676dc53e3a16202ee8812719346274fc07766442d726c97e34b2e4369f9bb972f719c01511c26c764e3873e31228615f3aa0fbc18a28f45993c2179df39d53aa7f28de97acbc222f84d405dec51d1fb432afa4210de3b6fc3276f55ea78ec492edb87c5be7743887e9de5a6322211f015198cc8dc3f6e317f2e0871d04beeeffdad935c0700488d190d5242bb503f2a5e000f4faa3e10336fadb54f59e0e0bd240b6e520f3c5e6216bf6028166a6ba20e568b147cbc2136fab4fb27ee05f08217adc1f7c9cb26461e3ae5452f68ddfd588e57ea4f84d772c2108764515116fe87700cc98485cda89ed47209bc5da01c6573aaa0b3e389a3540e18830fb27d7bb0d6c5f2887e0c50d16939a50bd5cf55d7dc4e8e9e6efd2d68edc1b71d8e5e9ac6cce4e03df372c8b20d", + "4baca2ad34ab4d091e04306f0d1c302890", + "22a9cb01c7b8548d7e4cd70ac206f0f638c4d6ff7a3bb600ab398b260a7b1432af9f9b3db328bc55aebe599b73242910964a07424d272d3614755d3ae7a0eb647091e9f2720de31532dbe4a959fcb64c60cad181e39703b465d0830595ba632d136db7a94636a0d63c1af6701ef1f4fd2c7056639eda9ce10356b2713f3a9a77e650c191aba12b801496c22771bcc181a0dc8fa6361dcbf242b4a26267bb03fedd4cd5f6f40fcb30e1474b936ecef23e9132a8ba936f7f4988d5ad013e84183ee7ddcbf091c6e6baa9fefda1aa878d087bb3449847471f2f5cf7aa7bda8ef35b462051424377bf059e10d42b40b62ab1a1f645b50a68b84a99ee4778387d5d42e970f3567a07723381ebe6dfcc4293fafc3862ebf35134d24ea618373308412234269fe3711cc963cf9a05bd3498b6a0c72f5554eddd8bc3f6dd70779e2d02ea31b5c4cf175ab0824ad53c4d5e2a448941aa42e850ea57b77723ea6e1be4d5165e4ec27ce408c146f18ebb299e7fc0bb1b623e3afeabd49e6f08b6d6ed2ee254d1559bfb8bf4f056293f4181f6cea534c90685dc04607042372e83050b8b60ae403a0bf8e66f96592008ca4a4914d9b14182438f8eb303639839948eb5201ecd9f2e742d6f6ebb61a1708ccf95334eae8eb7a13e2963d89d221ce1aebb9099992cbf8dab" + }, + { /* i=6072 cDividendBits=1284 cDivisorBits=1251 */ + "0208a9e4eca5b429d59c67f4d9a7a8d286b425f1b59d1e0655a0b38d6294e95be607e5c10329d3a22ff131d7df0a728cd224c5d2bf854933f798c5ff5df5483f0727262d5fee58f313702b7e8591f1d18b576c36641a49b720ed02c93d90da493dd0d5403d172d85284277c5070e4065b507d044e6f22ff600392e0002651b1fa4c4593daeada9c5c257fbb6a1dd8e20869ff20a183c259834db72e4d9ce995af3", + "046f8d2914fafbd7f66b964a1133d07111a1aff04c42f3c77aedb69c89d63f9c60e1f67ac1107bb7b661b853e66c3b5e0f4b3e688cdb494d48c092d1f3fc29708a25c90a822a43931d7d7f8cf2c30eb7f5b3d99cdd48e6d2116175f470ffec936ab2562f328f9f2c4c3235f5f3184b4efdbbc5a5c2db47e4d7602c6a8bee443cfb8c1d7e0f830fd8b289eba15e328cfbfe2ce67dadf31f2f951a039a30", + "75610676", + "c404892791b82ef29d7361ba08d7bd4e0ee4b1134970316a6becb8c540ee22907ba6bcf87b189e5393be55973c051381627a1ece449899bbb0fe44852bcbddd554cc283f270b253d60b7866c17080ec688241bf45f90b6889cf8df24af65d6a6e08c69edb83de0e05a66b5732c4a6ee5e6260b37521dbaf4b33843d5451daaa98c56667edaeab212935df3555f39931c03ef36c3e392f6ae5f2328d3" + }, + { /* i=6073 cDividendBits=886 cDivisorBits=389 */ + "05f3560a89f04705d1466edf4451ef87f92ca94f2809fc5231e5406034fa8715be5e19c519c543ce20d8b68948b5da7698c1dafbe145aa381ab749541f0024fa31d7d34406186835858de5205fdd565d2e9c1cfc3fadf93b63159537d2db5aca2d8583711c9c1bd0e186cd2a3ae811", + "0f1979c8d4d8c5bd86eade9112c4521436cbebba75398723261cb5c2ea8bc3d4f85a63398a98f7cfed41f8d41dd0b462cb", + "64e2ecffd9e7756fc64037b2277ebff0174aa161103f3f64bdc469a213032fcdd0f71d1a25bef305dea59301f499778c8e05c31f4970fc33e8a9dce41cc7", + "0391ef6fed6e0e12b9d84e9b90f078ef3d0c561c78f9d41e0a4d941ab2484d04dc0b598f3e5a2e21be044a4b3ac267e844" + }, + { /* i=6074 cDividendBits=591 cDivisorBits=121 */ + "358fa950505d5a91f1a9ade3d3cb2dd8312bc8fd1bd186c4eb1d606c442522246334ea9598c54dcdbcc6e081c83b6ef8e6af133a22911982cca9473a8285745cb87dcb9da24e2ec9a772", + "467cee22b0137df7639f2b9fc9580f", + "c286553278f65724c2f2e8acd2dab4cfef092ef15ca4a2716f908e733bbdc9f1801b75c75ae3eaceae2204695e145706b64edc3fcdb89c27b5a264", + "3e2217569b34d3a3cac33ccecec396" + }, + { /* i=6075 cDividendBits=1641 cDivisorBits=1595 */ + "5c800c6302c97b6ccb74abdda9cd6aa29337d63a8f2a0f2dd682c94a0581ee5c39ff8c7e7245c3f4c8d57c8f6303673efd668a1f95ebb1d196fded3b26993fd5ca949dd5a33e81ae5edaf5906007edb3c8db50c42aff075da8a4c68c3853c83f39518581b866be3d901f168c48947346836818141c9bd3daa5590b4c2d3271be79fbda04bdc22243019f038e75b627d8af6f95db3db940250021446654049c60135e1951434e8cc0f2c7782c2c74260915e4a9e2577b491f9f4f02c4ec98308e093c901aa50afbeecf5cdf54ed", + "016fc4405e455e8490cf5eb0beeee93bf1a045170e3fb173fc703ef14b8c9b2338591ebcfdf6dc009fa813e3ad97862fdeb179336da3a3d3ad0051561b8c9c67a36a831c25667df998012e20e4f2ad71d0d19dac558cc461316d1cb86582e2fa44386edbe46eb43fa411fdb2c0d30d2f85ae77609bd874f460d3eb4f59134e211187383ade20dfe732f0ec4614abea9feab2616e5f096d11b090c723a9d167a197d53dbe38d1830b43e26ef10ee68ed20f5012b1cbf7c8cf2c68a5ac4ffb243be46aee65b7aa1cca", + "406388046143", + "53a776c0d5aa78635ecbbeb96212a17002ae2c92d0a89f5ea3c820be552f93f274f4344cb8591743f4b3c98a0d6037de08b0e34c5a4bcc60e36598c426c10b07838dc896c2f4f965ca2345a6e3912fa0c070abd25f6167a92c66092a926273994de957d14757119078089134c9878df1af4115770a29417442f6fafc047829a9d2ead3c6a8ad18325c16a9e82b27787185bb081b9f8d7ede9a5e9f15f0e08a6667d56aa1711614b14d32cfde2674a190159708815b479879aa4031b1deedd96d861f871349420f" + }, + { /* i=6076 cDividendBits=3048 cDivisorBits=1728 */ + "e07501f35422f652c3e9eae38ee2d3d6e977e93ee483d4f786935953e43a64ec75e3d7dde4f256be6d7b2963bf2b05d674c7967fa78b8f1997b7bd22af61aeec510834ef48d7fa55c99bda5dfee16558c894c107b9e66dcd6c27714127c36116f9a2b36df985558162ddf70f88e5afa1523864f39275489e40d48e75318f9bafba3c80c65e54b55fc779623716c03421721e0b408712f008e1cff5fa4842054980deb582abe7312327d9fa138d86a11ebe8d7ec985c87dcf36ef295460e8c020a86dc0775024783259d84375b80115cc6bc64345c9647bdfc53e198e7b37edc362cbb7b663f3ea24ffbf74262f10b24f43151b8279e8992fc78aa2a9fbf634eab8b2f4a85ee1c756af8ec4318b8fea6e3c8f1b9781ba2fac56aac93db8512a1b0764fc2b789b4679c32272d0b317af7b6ff030e17d27bfc1aa0b6e24127b633c82c6b977a6f924048fc086f67939eb2910c405b499c950f23553e6dec30ef3630b0150adb2a65896ee461ea6f00e0c6d27fe237c1ea8b6d2a9d7ea1177", + "99f4214f68e2bc8ba999a1db6af63d2c4e5d760a43ea1d5735e36f3e3580c3bfb9d5dc00b2ed7c042067cc6380401382a3918b5210b5d79510e03e2ebfadcccc2ec663494bae9062f00c62c7fa97d38f3cf0088f97673257433c34c2b2c86f37279538b1c89afca66ce9fbbdfa6abb7e0438c73404e23c8115ef3fd22502d3d6bfdbff44d6a3e7dd2750e91554d1c99e2b86131c0c38f342e0514f25359ace5185863cd49842feb6547b648bf881ca9218ad8625cbbb03fb489866917d7271ee91cf72ed50c09605c1111626f24b484af9c2a535511edf48", + "01753c5d72f440448a416785dd70e23581486f17f24b401ce874ad498e80e24c684d76ce1dc3e1f437c7b8a976922a96d42b4cb370bcb579445c2a7c0ffc78ab93a60bdc3d8bc49ba78ee6d8258981deb0a27e90cb6c590381a205629c433e9ac7755fe465e911d2c67924188cd05fcb716b9bd5b784ba4b8feb3086cf20dd38339602957d46d679a4c60bf1189803dc30381ab50bf6f2f3cddc63b654a285370ca58c57b95b", + "4d7a7d8def4ccace1c7aa7bcb2fc6b5437fa257243015d76a361ce08d70a360e1f1aa9b5bd3fd0097b9a5b026f0d9410d229f82d740e9e92cdcdbf9d7d6e990411db189c26854ed92803f246c3331e4f0b6536d991eb5b12498263ef0079401b21b891cc052ddab417fff56b64a74738b8b8aefb14c1707e74271ec5569cf39acea04613194b9f189c5d798fac10cc3452c5413f28e55e687e2a4f7ccbcf0d0e65c968f15007072b65ac7d2ffb3733a4a568c91b6c5419a22c5f1bd356f8852a5324ddd06e213e3fa41dcfe38c47e91dcdd1d415711daadf" + }, + { /* i=6077 cDividendBits=513 cDivisorBits=154 */ + "760250f0cece8fa2a66f4d0d61fb9c98fd23594b47701b84e99de1f64ece60d4a960923b76311d7eac208478ffc9c167ba47d31660724467213b08b21cb4c6a5", + "011159b767e8a5a6b68167a106e9c1d6259922f8", + "6e84c48d52d0f40d929a6cdf901611fca90937fdda5c68a10a1779bd5a93429c4d2cb39a8c629bd1c2df866546", + "cbc6c6784fc1acba3bbcba633d7fc014395ed5" + }, + { /* i=6078 cDividendBits=2540 cDivisorBits=2043 */ + "0b0f0ed5a864ed018225a5a04e66ea0b4118d001d5f6da35dff015bfe5298c5d0a6055e8664e7c09158babdcffc46746d7fa736e85b4ad8c0548e603eecaf5b4b01bcd73592deef7c27532ef386f121449ea0df9fe40ad9112f5328d02ba106f2c09e3e2c339d0b256e8d7017136e7a0569c8ae399d9f24f34c77e21d87cb9569331b4a3b034669201660c305cf9eb59478e61b8089cd2cc0333407d4a37907761a3dd227ed1c29059096becb9132c966c44812257042a11bc8e209908414d6906c23713167545e9cc5aea5acf2295853fcaf11e1a07304a81cdedfda6828710368e6a776762003cb03d1cdc7274d59143a58f6396a2f6378a6205dbadd5028d692addbaadfee573b3bd8bddcb5d7156c3d7b3eb5599987c3523228a48959aece543ad076258e86ce1795a5cce62f1ea09b02b6366d0bd4f18dfd547c927", + "06319b0e991cf402b600edaee83e80fa96fca0639a5d217f8c6edf2a44c491040e64347717ba1537bfd8d02462a68c37ec6cc00953c52dbf0525e77821f26b73e0785e6e8b5186421a009514d55bb41d5206dfb132bc202eefaf6c4785c81172a23698935a63b8e5aecd6644efd5127d7f7edb24917e9b7a6847bde1a5691bbe7ba7a339ee6510d9bafa9ad8d84df713a379c3175822aaef295e0ff610201bf9b6eff9f578b26af91ce5b6b51aa74b82bbac60e0f907e52e3e9ab16b2f954df582ac7b8f46da44030d1fffb28fe348974993059fcefa94232507a578ff7868416928e6949ea81782b5cd617b8551180815600f129bf31fa98105989b623b13a6", + "01c914d532092d9a295a23f32288bda7d33bc134b95b1c90526040557a70df69c580c0db6022f5e806fa3d52875f9e2950f45c45104645d45cebe422accb5d", + "051517ffa93ab11d4ca6c604781db852c7e74c932e38544867708a9c2993ebe6ead21638ab9ce3e83bb954d6c394d5f704f544c4b35802d91219fef1ddbf89d16cf22de98ca2a81f501d28b8dafca9acfb81b7ec2475d95ecb676fd6de7acae1361c26f6ac092ead4647da6bf83b99ae6997b324b195e2689168c268763e0d7bcdb5d2a3026b9e4cf0b29071a842d0c231083785ecb124e42d54587525b37c4cf838b0d946454b32d72c6d47a34d1cc7a8581ab00845d89532c464e7ee392be7af5beabccc249b3adf89055fb8e92694ee8aa5b33ea415baa73bcc6168f0eb6ff99f13d1cdd7ae85d7e32d8fd0c05fa8873bf988c60198180382b7630db503d9" + }, + { /* i=6079 cDividendBits=2826 cDivisorBits=1462 */ + "028c10f535cb2a8bde30db97718630189ce8d645fcb54f2bed12db93189626f2b12f8659d5733876d2b688d67a4cda7d88178482d446a55f1b076bd2db6af623520252e9704856a5fe6a156cedd37eb666f1a4b1fe4501dc772d30656a3224d086355f6f55d6627a71b1e167e6ddcdaea986285cdfa807dca61852358ebcef92bf2531b2bd6680f4d042fe134cf4a8ea6e8fffd1d431c4abe2792c9e16d6a909049dc8908923304ade161172180925f659ce0c90768f4c91b751484b3ad2b8371a1e419e132c3bff778e700499098c754a3a2bdbdaa650a71894c5d1d325d1505dfd0cfd53a5207faacf5b3e3b22056232591678070e80ca31eb85bf3b1c34b39cd1e741a485b9478166706040d8297867b7d961c77f9a84fccbc454568d060cee4564573ff3b7c9da06e1708d4a60a5d97bfed42fb85939b740dbeb2f964d45dc7c93f5f2ce3cb4b9e78681304cd94fe4129b11ea9ab363481309e0b59ddd207d42", + "0e9b30a29048cdfd2bbdaa4cc6e282dd85d2dcebb0942d508de69ae99020253352cf81348bc7b5627e38fac4c1cedbed87c37249f1a6870693b514c646ed47277a4ac3f5f1be714e860bf7de10952523d08a1fa158781d3ebe17358a3fc8c3611eb376f7e590d5df40c5da37c74131c64e6638965d45d371ad8ad1114eeddd3047042d23cfa3074b8d0173a032588f038ec896903bbe64d07ce513c8915ede432f76e5f8f8a08375ed3793fb39b28e611de128e82156f0", + "2ca4a0e5eef27a766ac9d25e590b5c635c9d2459daf313485b7463ae6271a3839e24dd0ecabdd6c760643045dc84c1488a4c7efad569dd05ae07aa0cf7cd90ec2e28db4b5252fc761f6cc5b8a86f700f9f9e6bf37b0423f950bd4af14992d621eca8d4feab346f788c91beaa08bd88bba3e5a0fb6bc87bf94610b748d2aaf9cba8ee42763c8c0df61a1f4cd7939192a7346b55fe16b9958691f48fd8864ed73dbb2332a44b9f9686e072d4", + "0bfe9a5226616859926e1f310e4f0326199a2cff7661d0b7816260aaaa6f48638ed6c78380430b84a6ce9d3d192ed12a010dd25d1d5d6c13fe81a3420a320dac321035fda0f964bacde8d2811891e5840d509d870e1e24a4d19c6a878de6f7556b36fc16b2308c07e201fe8bfd140083b93ce8e6966b0161c31af320907a64eaedd2c4e165998890d71ae4e454dc121c3700696b83f5261f41efc250affcd9d639a52384281e7d45541b22f9ebe66ff0b9771116cd9e82" + }, + { /* i=6080 cDividendBits=1088 cDivisorBits=950 */ + "db70d62490e38b6441d05685cb2076b0aa5f23f8e5b070eeba616a9fe0069dcd63cd24f77e830f5366049cefec5a97310a7c1eff238cc678e53d2baf8a09b11baef0fec17dd705ea043869863d5486a0ada8a8a12c341742b11fdd70fa3b659fbf5755f6a6b7a15458140c1ac0dafbe8ba295d829c9ea45727d920400106e6955a24a047da17c2db", + "12090bb177e14b6bf3d015493a26c646a2ee6f0be941d1fca993c98635419b714ec292cacfe13d9e1e562b91cf276e1e2f1b18ea54d1546b35f697cd9ca364db5885526da868a6187ed6c6ecb8c62f495d740651bde0f5f308a2d194531a55753c341bca731695d55a7268714470ac72dd62ac9f647ed0", + "0c2ad22346ff9f7f3ac82d412d0fc991bdfd", + "e41d2903d8a59967adc0ca6365406d015f135aaf8e4eba8e46b4912546f6070fe554d34f75241fad28f2f7f9532d15ffadf3213c1f0e01f1301fe0c5c764ec176fe0122ec9a7ea36dd20d77cfbc90dd83c1e994fd5954a7bd0b85e8c4bb07dc2ddec6acf2230dbf32e8be1bee40b32967c53fe56df4b" + }, + { /* i=6081 cDividendBits=1740 cDivisorBits=1392 */ + "02a48eea232a05fbc3bc464b8d9176dc6f665b683f49948dc58cc43a824549af47c42d3d292f3b126d6deb2472ed4cd589cbb6835bcc223b689a7b281ecbf69ec83baa59555c1c00fc5fccd20d1b9b9d1b7d1a843f052d5777f6e99c69277af150e57f2e85ef5258c87fcd3e3e2f4a6481e936b20058d714d077222d15b26ddbfea037ba419312cd14f8072a9cf3b0865984c10868e41c9aaf10540a328ea991d7510b17f3244fc5482a92d6d55d5a52f9f800e09fa0879f69c567c88cbea1d275ce3d7a2f2bd9ddafa751f89b9d25f2c43b02b1dab110226124", + "6b9c1c1720abc5f33fd30a232371af7e2447c3d8924fadc600f2b0fccb6d460067d85556432306abae0d9b7ddf643a79a775cf775ebad3b1042823c6caa8045425073d34db4d17ee7df025347907c14e41ab2a815734d2663d817a625d7398789d37d16dd291b4c550c20a168d6abcc7acfd9ac17d6e76b86eaff499f17334b9fa3bd1cebb67cf1ab87ffd0c47ab1eff2a7ae5c6e7fc8e56451bec798efaff4b22e75af87bb306d81ec3f81ee40f", + "06498239d595627660f33fa01143ae1bc191a3670f5a7944dd8b6337dbe7d2d0c69f3f82da89bacfee9884da", + "4b39fd9538066b77072c234dfc3f5d84349fad277b81cfbfb40e57582613815db238f62bfe8a54b7c1a50228fb3fa955dc6a55633757f4cda2a9ea9bfeb1293d30c0eeecf1dbbc4d2053b1532d69e47d7b094f84c9c70319662f29bddc9fcadfd663981b09eb968f570de5d8c5fef1b4e8061e2cb3eeddcb3e535d89341a73d885d1966e86a79fd429a4e9315b3742dab9b450dfa37b0149b601ead95427b8f65139eb82473c650e43617d54705e" + }, + { /* i=6082 cDividendBits=1529 cDivisorBits=824 */ + "52d6a2275fd058ba98f5696b5480600cd4923cb26cfd232f0f1ce050633a63e633d05055256383c7a3df41f6cfe1394f948a32199cd9ccb06f5087fed8f413cac461d6804fd0c494a77c408acbf0690764a5ce71a05666ddd63dfca743e10335fcb8bb57e3db7ef119f00477fccfefb07306966051262297ffbaa9fc5d9f88ce0f9f6ab93f58b6aa108fe9cfaeb2ae9b1056b86a7e782ecb98dd26e4cbac43bd611ffba13311c53c3e0255d99951f625d5efeaa9b06f969aecc356401ab97c", + "09da7b635fa72678575a195a2fea16f81f7245678491f5df844e504500eb2ed4e5edb1fb78ddd88065d739f1e1a41bcb884e712f59a81db578e8b92de4b976aa7c03ca170fc5526d0a7b10b05cdf76821370b9137b6d23059a1c7ff2f5595068c303676361bb2c", + "08683476065c43737ac63da98190a329e90147c0fddfffaac6c01edc4f7a04f1a1bc2681d696e99f9d619a79640bbd81fa7a39ad6ff645580be790754f94fbb58fdc8da3dcb8fb1e2855fa5c8d21201ba496ac6da985a3eb08", + "05b0db7a60c5cd2023db6e789141cd2b4568fe6d6d2bdbcefbed99f9774f1462ddb7b94b764b93e3fb7be0ce9c1aed7aa3c5ac9ddd416796ca5e07e6fbf925a69b2c7f663ce2bc89232d3eadffc47decc7f262360ef93437ac92451aacf5e1ad78665c65377c1c" + }, + { /* i=6083 cDividendBits=2204 cDivisorBits=973 */ + "058b61bd57fc23239f6a129e9465ab5b27cd0ad7620517d9eb09ea8dee26789c8ded4abaf4f523d91145c7cb7e2aa447fe3a3a5a076bdfa967b173c27f6680e16f33e84f6c560f766989a83e93547fed8eff6f0a595b46f10c2fa7bf00c0bb690129bc747b78679ef6fcd9d21602e938a7fd57eff81ef36734376082d3a80e92702462dd21d3e023d0793e44205ddf21acaedefe257d1a4a320d94b21079ddef140a6b8d1e0941848ec6958b6b5baea31e0b3276b1ab3c4accae95ce45c74d5dfb078768c5b9f40d3c1ce94bccab0933231f052786d4c5d8834fedd50a8a457a6568e2b858f6d5a8a4fda54a7993657f13fb22032396aca3a4c4a1b14eeb80efc95d5eb47099fa90981e9b6c568c31a5fef81241", + "1defff2e815364e7eec9c4fa94cda84b05a54fe3ea2a9e3a51883dd4af0c8354e452921fd7165690ab1f681a121d00bde8d3d2f04cca388a2ed84869d56017514a014f9aa02e5e878529ea2e4bd151e0a51be3c3485e379ea95597267f4f7d3ded74ee6dd4e7e752dbda2424b5cba52cd9abd8a453fe8fb09658", + "2f695964171cd6aeb916a3b80eaffd1b6b17a186c50d6cbd22662fda241eefd64d1200affb63de070b39c8b26988f671643dd75adb0197981bef3e0cb12fa8b7544265f196dda6b8ce869c125ec991b02bd253614fe9f06e0d95914769451215f723fb357d8009f9aef4cf0b6ebb99d12c55da736423505e8b420bf80688da5ffe4ef5791b7c5cd90faa99b3eb134bf4ac6ec4c5bde19dc7f656", + "063a4c0a14b819f6ecd9b29a4e8d139dc43b1f9874507c5555a6e5ddd95930a705d5e2efcae2e74a7726df49adf91070d93b086cfe118bd385875044e2dc0ab3de4e57d39b519642d793b93a934e98c993adeb466e9879e55731bf3df59f1cdd2b4a1efc23208a412c5fd653d984af53e7a282b5423d32c500b1" + }, + { /* i=6084 cDividendBits=2829 cDivisorBits=1502 */ + "1233e03e09bda3ce1b923c5736be159560144a7d5b37a1bd73f454e34a1100ef7a294d211994b0cf0118d4724407d8385a75fd1bc2e231a24154d468ede66dd1f5b886a62d0b9a93c336d9f405a59e9627aa993b070b8f7498a4142e7e6b0adb333c60c29ef165182568c1cdacc7ec10ca05e9050f7171028f1928ef726f53a90eb0085f562075a966f352caea097c556ad5fa00a79166f1dbd5408e272afcab314ce57534e4ef37d77d2232a01fc68566650ba67f71ed85adf7a1badad6d6e49b58c6a673cf6fc7651629480f1d57c1c54987686b8e8a92dff4d757dff905f40b2f808d314400d27badb5fef2d9dc1879e3ba725bf55c5c120d60eef0d182cdd4b868db239acf2234d8454a80b31b4d27c41cf66625a2e67338f145dcbe8fed1fb6f3e8b0bfde103f1d96f3af93fa0c35acc58eb833e38940c599dc0ce3463d8cbaaf1e04d3387780ba0ee2c6031bbc777eee74a1767c4d98864ba6f77a63cd5844", + "2deabc485052266b69e9ec314ab156391592430587d67e3a4b5f529658ff662850e783f1673d2f94eec13962bd50efb69fad71638be0f5e95746b030ab1d7a6b2e34e51dd5fba12b20abfa9c509f227b9a5e6d2fa882663379aa43ffe265b957572b498f5baeb9d01e5c507dbd59b4a5d4a6a8ae2474b08cc8efd65f21e10b75539f9ef9208ff45450bd2d852bc047cc1d16726b66e1d557147c51575b84132d38143c6a93c1682ca535aa61a2d6b7325d0a24d788bf5cc1a7455cbc", + "657c22e553da7dce14c22304aab66c6b61fe10d496ff39c441705ecadb5ab96e9151d87ce0cee995881850f24a7f1ce5efabd5db44d78212a8bccadf00693d74f3bb8082fa03748a343f844b9bc7938eb621cc20acf13a119fe5bdbf5f6eb5de3bbd2c52a3fa133efaa29bfca5e363150c7cf3dd043f4c07ddd6b536449c46cc2fde743b360e6c51cba3b7e4613c8c2e5a6a7f591addee664892379ffbf8aff976beceafad8e", + "0ac1bb4df600b7ed4fafe4756224b8c209d0b5c34768bfb17476282d2415ff917fb0123c5decaedc0dad2a0e2a3af55c939a5654bba18468358392f2e18d76540f71e7fbf5a9f194a2a7771204366d08c6ef343a6f877c2e44ca453c59b959aaf5668192522850ed8eb62583b1291fc6b90d5814ead4e76cd1c5f0ccb9e48d0248548b64f3bcaad68dc9288fca23815a33acfa6f9906447d8570afbc2b42a7a42a4e3de3ab046ffeb2ea907de58a6ab51008a84b0dc201740f24dbfc" + }, + { /* i=6085 cDividendBits=498 cDivisorBits=72 */ + "02ccc1160633a79f018171eb50bf9405e335c21f44f971be1dd823e9fcc9dbabaf078035b96e82f79be118ffe7e3c500a7da2c62d3349f92214636eb2a155b", + "36eacfdbb80ee2abd0", + "0d0d317196674ea6b3187bcc36c488234c136bb5267a1d75915c5ef819d70439b4ce294847dc96ff68172c1a1fcb91a60dac94a6eaa5", + "219d78b8ea7925384b" + }, + { /* i=6086 cDividendBits=2307 cDivisorBits=695 */ + "04e75085b9075145e93f4b383c43192e9c02410e25ad655aab9724fe7d3c34d1ed15c3abbb497ab1db39701f53205168ab2c0545b9e6a785ed719b7ee79f0ca4eabf5eff065f2972f29b91d48524fad7555428cfe4e5757b93e0d2357e90850f8fb86975ea477c507896da8d953bc60e53e2c722f5fef54eec1b03be48f6ffe7607fc448945a37139f53518e2bf096afe3d6b2c2a59affaef0f3a7575c4041c211a351fa5f591fafe8550c53ef44fddaad3090d1b982822a595b64207c69ad9d5637effe56fde9b2ab1258d6514671d6d83df9dbeba53143839d1a592664887cf3b3986a5c402703f2f9e11079fdc4f0e819923913adec6cc7a925a019c6666ee7e3af05d265e1b1f387e6f8bd76fd71480c3d88ce62c7e1e2ece18acc40bc9654", + "608094b07bbcb639d9eba2e5dd113dd69293c350f48ac3c63b25967755423ec564d31a3f3c0987b61b4346073e351ecfb2c12ac757621d5b406953f729df7189a87bc3390103bdc94c9af67066a764ce45e862c96bb063", + "0d0215229f69449edb2ff262394a03f4d915ca4bd8ddb2bb993be893ab0d644f39b4e0c407cb02c778c85c5b299344be2173bda4bd4148a0a6bd2be59d99bcd3a940fbc7d8e145dc3b643945dfcda84e8239319b093c0010d357ff3dcdd718781aef067a0959f9d62dec94af70f47826a1f77479c6a15734131e77aacdfe4dfd3b4c68a8abc9e3d567839888b6704c9f0517d6d2d9cb6e67fae5fed5c0cb1e9993096717523efdc85b7603e4b2a90c6d4abd346d5a5ec276a5e14a092dfa31d7f2a9618812d8fb606fee", + "2338609e0c9b383507b19a0633c5b77e1b04a0f1fe32f894127a6cfbe13307e5c3cd591ac5d340ec3af814a621dd9cd32f392635b639d808a8230b6e2389c5cbcc86f245e99fb3fd1e3116119dcbc11abcc1c41703ad4a" + }, + { /* i=6087 cDividendBits=2439 cDivisorBits=1069 */ + "336bc339f475d134aa9c581abd9a25eddc8a52468c253ff8ae3dca85d929c944cf711a4af99ccc29d670797f158b47a78c531185306e0b06fd97223c6285b595f2edcad75ad048be4c0f9b8f40af07bef4396055c3edaf0c8db1ea1f65b71954cb34b304521e165109c33237f030a2e76d3c6dd951db17e4eaa1deaf9dfefde3d75bbd84b2faa526158a5efdcdb664053f4d5a5b7761dcd0237b5f0ad00c346beb60f411b6a810609ec836bd1fa84717ecb25c376629e40bb0465c37cdde4c92113299b5bb253ae1b5231539d8c06a19da89d5e5788eb05cbbdc0c3509f8efad49fde231fc8197adb716eedee41b36745ab0b37ff3b2d73d6ce8564d2e11d992db813575d571df95da64b8214598d72b02f44ca068cd045f4d22e0222bb028533551e1606beaa4b5e1de754f22fe6d6d0b", + "0ea4f7b944870b558aadb1c1c03c85e9c270891e58149ec366b3dcd830f6f1b55c004af395aa30222643afc5a62f8d7a091fb1c3bd0fc0bb8e90574a728513ab3c67b2e9136d3e1c0001c3bf73cf21d1cb1a0f3997ee4137e9c476e91584ec3b3730c515d0d932202f47861d87932e5e6d91a5690910fb6560dd86e58412fc35bb35daafbc90", + "0382e4c62054ddc5d0040154976ecb7d2f18cd1e63e8a212ea2a220c1f4b822ad2bb6a39b599c2150da8beb9312fc804832cf33881993bc8349b0aa268d2c4d7289a2f90d2c180b1f7fb1916619f24adf1555148e57e995db1271f8f47778bc91c5ac3bc59ac37da456b37847c220bd71eb9c2ec815ea02f9f74364ed54a093f7478258201791ec91539f0aa1f0e811120cb4230a31a8b79d60489df10a8b6246f77ec4812c2679562821774", + "09026e1869e434bc47f77588c138b7c47c185e2df9847f961dcff031e62acca5a13f254f96532e68bf1096c73a5471f6635cfec64288a1fea02a615f3b3c82d0b565fe76f362cb4b358a0868ceb992144a55be2ca6096a0e87440c03aa2a56dded106436e65ad62f5fe05ff18774624048e73327bc58bf70c1f5299c056710f3a0d93bbb0bcb" + }, + { /* i=6088 cDividendBits=1004 cDivisorBits=797 */ + "07ca8eb2fd85466546f9749f34885884d39d4272df52a4263b7b1680f7a5a2b60c83c4fd58a3acf7ba7a1020da04121e3c1dce1051bb13c0142f76ef6482d2bac41ef8b132d52a4f248453abf259d2cc289a0066f9b0ccb5e57c7875d78c5ec7fa44fbfcfec5f11a1044a5398ae88a890fb2130ee77156fe1e2f5e4131e4", + "10362aecf8b866a7c3a3dc27020c6aa6ebf826ebe3842e2263a45575b7cf789a1e665fb18686828ac726b1c3fa8b0fae7f6f079b0c512f861ecea3d5ea43c416e4f9e9a967ac8701d15b9b64a62828a1238960855e9ff7fe4c4d697b8529d371d75eb362", + "7b0864c77a31cf31a30784816f191332316f799e5115989987c9", + "0163c7ee51f65532b7a8872904a4d247ee11151c32ec06b0031bf7fe83760ccbf5228a4a8c0414c56681fef0866b516faa287d807c41e1f56ad07402f495e57f431df579fb2a4083040555e7aa06c5dff8753e7fefbb69e9acd5f07c19b96614eebbabf2" + }, + { /* i=6089 cDividendBits=2530 cDivisorBits=1515 */ + "034b69f9faf7df6aca6a294d51454b7b9808d3a04c87791b03668a8824b0556138fa593147c3e708e93a9ff3500b64d15d8265ebf609dd8743a5992b76b0fe2dc3a5cf84dcfa3a69d95dd5f5f5560081ad1f3f7efba0d0890c336bc63e40cb06ad2c3187dbbb37a292dc3b00c4ca54cd9270feee17029e06fae565a454a6e855d25f8bca355b81cc36e37be014506ba5d88f254900d8e1b8c0b055c823cdd3e4030093a3c5e831296fb4e6e66917bbddf17eddcb28a8ed8f21a3a47157ad6f6364890968b368517d7fec0832cc46015ee99f3af0c3edb0e319bfd993e162841ec4067c36fb407e3470bee5551141e519819d1ccd4fff8e258eff51554023f1f575e01251f311ae630e6e49d577f4dea4a41961e4b5f0720bab4b25d2bf973bad64a6a999873bf9705ea5263b3ed7be15d852ff3ca1bc3ce9c8c6dabfa4", + "01df326551a1a0d6ffae7240277f16ce2737535e6b209651b333b7adf1ba5e26a03717b83a96f4ee34c2cd4021d7c372e3bb41531d824751568bde7fbc47a7203cb315b7e40100dc50e44386c8b07ba64c15e5e0428c35386c828fc16fb167db66da41b4e93f63159b8d28dd1bf94434e1c114835c5eabdad940d0e2ef5695d0b640a0fa2d9fb25ecc0041e0d77a1a79cd764366e78f3ea4d1cb0b4d0a5a211c116c216326752ef06fb0178f3bb96c8192e713b9aa8690cd9906f2530604", + "01c2931ef459bd3c8b3ba3b1b85d0bb58ff823579e06df367e33d4475eeae0cda6879284f8abc6bf13632f4ddc26037d652416523c1c24ccf6d096414ae7ebe566665cbd42d76a9b66b8c8e926f43d74a753a2ffbdb0490a9e6f9662fa390382b2b58feca6f49b5c4c292f2daa597b95c591ffe8db78c3e20f4251616110e4d7", + "51631f8e1c38cf9b75abdbef9ce611b7287565f3f7514531ca66d100b21da71370d2d4fdbc221ac2d73fe1910fc3eaa82ecee0cb4f5ee97648b483e9d546d686692127d41d05195b6d75738d691ea0c74f85f5e105416792e5beeb49d4ac806f303ef401e7b25a73c7cd83e8d468d88455016d981b44c8452424de7842f87cc2034673deb992dec9cc98f3ed064a21a8351d4d1aca58ddb778b6487c1b5f3f93cdcacb5fee9c3307f22a22576d999051cf90da5839f1a20f256d852248" + }, + { /* i=6090 cDividendBits=113 cDivisorBits=8 */ + "01a56bc5ec02c245b3ec7a42985107", + "af", + "02687a8c51ef8e4ba243fd746fa3", + "9a" + }, + { /* i=6091 cDividendBits=1195 cDivisorBits=1085 */ + "02d8d15a69e0cb5d5ba6caa8ee7c16f4cd7e762f8e1b00e9c8a48052a3f23dd59866da0b50badcac7f13f482572b527d19b3c52c55da386ae2f583181534aa14f727de25a4f25e06ce3fffc6de0a5c96c481174cf0c5f11b61ba0ef301ac9521484c4a87479d1c0a260c5f7589184615b35d11f422c0e3e5a5b75aa93c6a5f2be15664c616f98aec066ddec93eef3e715301c8ca3d3d", + "031c07d55234663a76970e56c18d0554a173287278f649761b0d05542250ca266d93bec770509f9d9c21f8a67bafeebbad001e5960ad8831052759b083165ad9ab5f231d64af28a33afee703063e542e8de1a8abbff1afb356a33aee5920b13e0f8267ec74ec28ca833bf298c7db1c7e2d06406860431bcb9fc0fad4f98d213b51b9417508c34734", + "ea627869ef56ad3feb86631e4ac3", + "7422159cd546ea1584f0121a641f1ed2e32872155ea21551c4a4a608fe1ef0b898157b9f57b5cbedb85b1816eaeb5d938f85093473a3517c14399535466ffab7491cf2e50bafb7ff574866d02317ccefbc329e209ac4b996638a419e7f4d0f4d4f0c3e7ebaa5fc8f54b4f89124ae6fd7e2abc398d52f9fe87540e848f0482800ee15b0355df8a1" + }, + { /* i=6092 cDividendBits=3165 cDivisorBits=1411 */ + "019cc10328bcf517625519efab17f8553b29967fb75a6ae1bf8cbd86248ccf92f8c9ad890f177ce87052e12c74c72e8475b1305e48208183a1c1aac24eee33b69674fbaef4acb692ec8acf22033b90566a2d1ba98bce0ddb365e3a16ef6f817f1621a2aa2b6ec7ac4ae3f28c0e01d8d4d5d8965aec3ba175aa4ca0b2f19afc85dd83e3076643a8edf9192ba0e9e9bb70fe94a360ae6dc84eea377611ffa512195f49208b4ecd946009f7fa3937fcd89adadfc385e21af83d22831095ebeb6cb2def9b64b062e11b3af676a53dc7d5f7c53efe8199611649e8986be5f70612c8d24faad6cd94910de693d1de8a8c105628c59c4b531df32a42b7cd44b2653146d07b8a1a4982a8afcc43858d374f1a132807573f323dae9e1d355d0b81ba4125a13b8724312934f100443c2d6d17fcb88b866fb2474062a9a360b0d53de0208c3840b0f235f375b77c190c407301c4c4a7a439a4e33986fcbba586faa31c18dad93446ef7a2f37441d9af6f5afc4b9da4f2c41e3612bd466ded9d34ef4f54d7ad2d1f29e07351c6958a3dcf33", + "04f50274475de96c5446ea8e656d3064c269c9a3786d5b36f5808ee10ea555ba7ecfb60c07931e8efbe51f5acc0531c078fbd8eced6af4f0a06ba1c60f0579298bb6837bc17c69fa63bcaed5fdc1acd668f43070013934dfdd207fb9a8613fb6119c46a591b31839f6f1cfc8ce7a6a10b2e5f5c11daa266b46cbbebdd07958b834af41ebfad06cb304881293674b0f29d3e4a46b442dbaf0334b570d820e5966b2e3423bb6f90bf24fc3b942babfe6f579", + "5344070593bbc775a5f3a6a1bbf77b5cf762efbb57a8c688b408236829e83474c8f26e6f302f21ae10e3dd287011abab4a1bddba89bfcc6b971bc0358decda47c25fe52f0aec923650001e90dcc6575b7708313e3cb025924816f7c8c1f82f9dff6d95d98f69bf2b1fc8c5f678a84884d72fc68fddece7cebf0eda25eedc6bdce0db66b4eaa87a0d1bbe1c7e97d4db39609787cb04b350c6e70f8039308e8d1e84739fb8babc82cdef6801da1949b322e2de8a7d554fa60c1cb84ee02528de9e7d7aecb5126b5862f3d633a835df0c64dd941154bee41787545851", + "03b7a4a27af4563254dedb94867a7a10ef29ef89139e1e47b5474b98a8b9f397bc406cab81f6b98ba499cbb5c0b5a7299e5ac1ade2fb45e8f88ab37d104bb02c9a1f0771e579c5c7948c5791c8b9793270cc5c648e2f0c5c1a4950ceceaf42c022ca4018146ecdd4bafbef15b158930cff52ea3ef218bb68214353a11e41b122aeb5174c95274f228e5bb99f95f8eacffb71409d214a818b7476cd35bc8628f2fd7567fb4ede4e5fb1a21be26d13148bea" + }, + { /* i=6093 cDividendBits=1597 cDivisorBits=719 */ + "1473da913b951f2f0ab65a08da4e40a4d99a83a35863aab9c3df7119dc82de0583092762244d5fa53754cb51b5d8c2ac5bb8a92d37884fab658e72dc03ce32c6262354566efae28c16345159f440a53bd98dfb6fc4d8e61b0e9ae80b1bd1b296f86f318c69baef40c11894a856ffb9147590a45af40683b2648539559ba28a46aefcbbcba0820daeeac54fca4893b571264911abf432d3072537be9a1f71f942b6de6d88f4b98820fe0d9da96fbdaded5af41e3ae9add7f98ec81a164acbd33ea87607b210736ca5", + "257ea6b751114d2271a576bf8a0fe2a265b2a10ae436d3d6a571543525336962ed92685abc7a604cefca73f64985c07e0b63ffef2a5c2ace41e4ac770ef9e2fd1c50910e3e707b2a10602f905c9fb255ba1812fe9f0d960f4aae", + "8ba473741370aa5e06f32466ad961983ea2ebf5942cf2d06a1fea869b40f60254f13751be47c11a6b90d39aa2b0b4e7766290ae057aeed7f6ae5525ac859efa982a446bbf3080a004092366edef8c71f6076650eb599f170c536bb5baa41d79c38140b6775732f6edf7abc3a2761", + "0b0d0e8aa5855a549df39f3103a8d38c1c87fd3557300401bd4604ebeb30f7db1df2e37735dac22b5ca4f64199c6b16275a27eac7ff825f60a5af34ca2dea551c87965142cb0554d33390b7c2a0e35455d19ca5e4e752cdb9eb7" + }, + { /* i=6094 cDividendBits=293 cDivisorBits=177 */ + "188d7546aec422557db2fc7e677a1735e77d0c00c706321637eb166df84a42dd67d239d160", + "018410c6e20be113e691d500348c3cc3adb70661c1797b", + "103267f213c9904b3a76fae87dcf31", + "0183d56357b349c05805fe2933108604824675e1e81bd5" + }, + { /* i=6095 cDividendBits=2889 cDivisorBits=559 */ + "01fa408ed1c982ef53a3ce7b959c036fa36b076919422f3d43ab64bc0415e0ef2150ad02e8e991d3e21decc52a390ab86233bd82658a92b225253d9faef5d558c9873680f56b9f5040184fe169c89682e61b46ec7211465732f5de2da9be332d3c27bb95cd6677e11e19189723faaafe5f72bce6a3b2230068991af40b943da71d7dc34a49f03acb63a28dce17e6c12fce12062c1f4a3f6d00bdba5058ec0a06a1da12abc94a5b827190aa1af6daff2efa40eb7799c645ca34e7faf29c1a856678f8fca05a95527a569a8da4cc597acda5954c37aafcd2070c483c229ccfe979370d27e2a3c1adce6df1f350df8acaef4d5f72c61fcdb8f3000e64179e53eee706b3a6fd53392c44d49e2ab9277750481415dbea4710dd164863fdd8c06b312f6d84a64bb1c84ce5952091f5064ac10614c7beb5a0ff03c90ff20a3cec2fff91d4842fd9bea9d3723563d57a9a141da57cf7fb316dd15ad7c58001bebd964e014718db2a8a8f736e5fdc", + "13c076aac301a73b0cafe7cbdb3cccc648b789c7451569f3d1dcc321594cd2bf2716371f6b8477e82a0cb034e8d6544c9f7fb971478e88d98c506150e25d0daa30f0fed9d841", + "19a173b629a609cea7fc61da692789a8d4d061e7069eb0daf5df635e68a1e6d0822d05a432f6b11b7052990c3cfd23d2564693ecb483d091cb3b6b32a7f1203b98ec199869cababc503f71eb94db0fc4d1aaa22c7b3c071637078b9296af7ad95805645d834517a3966d27b2608c68a7c25351fefd70e68fe1ad9d7394a2e6aba6e7e32b2ee9d0ebfee6ea64e124db1a99bdb9e01c989baa84c8e4a9d97ffc7350670fc924a9d504d916735bbd0fe159c74cd40f0f8c7f94a31a54d70ac7a7f4d413a175d45c8ff31918992ae59b91f233b386f49509316e822b38a91524ca3e0819bf9a3008da001a41d5d0e2f3e8a493d2b6f4af82fe0e70ad7279d2a37e501d69e013287beee7676b3fa95897967b46741122d73ebfe9a771bbe253628568949ea62d", + "08ba15877050a330f82d269e54139768164b60cdecddcc802fcdc82218675b3f6cc90289c118119406049de8efe33ba40b6dfb895e12c9263f576e3fa758feb4d01058cb366f" + }, + { /* i=6096 cDividendBits=518 cDivisorBits=455 */ + "184a66e857687730bd736a051ebec66cc789a5e7cdc6ac816ecd35b0003f872ddc1ae1cb064a7a31fe829af2184345cbdccb5f1accfd6d604a1bdd959e54f1dc97", + "5878a4337cb9985684b9b2a5097b01417628025a5e70c5a2010d942ad5b8ae68e8ffb1a78a7fb5ecdd7bf687c6dee425854fdd796d8b7c7708", + "464989c18483f20a", + "37730886ba8607864eafc544e358bfb2fdce822f04640d7cb2320560c8e468cd7ab09874fc66d1e35598c325a25c50d85e1ba1b6623077a647" + }, + { /* i=6097 cDividendBits=668 cDivisorBits=400 */ + "070fdd6c4421954187de84c367e29b12437c915a08e216aba8089746a44715b3e0ae8b0e83d340776b51c6d230c35e02f473f44022904729963fae8ef256422cf844b458ca0984737f185a0c609448320f66e818", + "9624e82b462ff86c978154bf5252f4bb84d041ba977a51704e9853a64ae775f6ec8e89ba38d6b2998a904b7e6dcea4d1b1f1", + "0c0a75d086caa88b54c93293f255c5d3c767c8697bc5ae0573030adb50ed008f0353", + "87a442fc73fd604182cf446a145bc806fc4a1fac13abaf10a95c459e245d5fefe94093a654669269cbc853f72504c4b563f5" + }, + { /* i=6098 cDividendBits=1028 cDivisorBits=501 */ + "03b7488bc9e3078db0603805209a013554a74436dfad929b1f462d718ab51bd42b54a583f742da121284aa7c8259ebddb76fef3ecf8dd1304f681590433c62e120ec5fb132880ea95113e7e74882f5c15d8954cfc9b9a434d02e2f913779fec960c4e154b8e1c6a4dfcc3ef22e42e0d9c6c815e3f24fe4e497ebc16f978794af73", + "017aa208e3c79182efaad40ea20e349ed852f0cd0ad08fe3b31ae71600d4e51191f79cd710a8c0f143097c2a960de2f457fcea7713d3169a519ae7b8a92afd", + "02832dadbf24652ccaacda08cf60559974d00d5a73bde117d912a53a67263f5235ea72e5fe25135fbb171cb0592092d5ba77ff1e0599bf1b49ee95456b8f50c93812ae", + "01547088c04e55f8750b4f170233d27022e77563645aacec0774905334493b692e5e294df9daa8c3b4cb28671a64b5d4a76eee5b3e24cb1c18e14a133bad7d" + }, + { /* i=6099 cDividendBits=213 cDivisorBits=43 */ + "05fa792aa9f4fa31ec55b542b3afd8b2151b92a19421c63b18f599", + "047993f43f62", + "01560304d56f993a65dc416f8427da84aca9038348d2", + "020195c36735" + }, + { /* i=6100 cDividendBits=655 cDivisorBits=392 */ + "1c8f77278fa11e4b6a9c1312aaa26bf0e2f269f9d5ca9bf5bd1670d734ab784b9968bda5df8830b4f38b23c6d332492d9bd3683784c5d8b89cf887add557cba49358c553cbbc2fa386c7fcba20c74f49c7b0", + "24d31e0f45ff06d7884e8baa7c937273c7aa4813dcde762a916e2d82043aa89d59576b25799ba535fef5e928929da3dbbf", + "c68c48a65fdab4d19cbf8975ecdffb885b30487e10c5057a4be6234fca7e259128", + "01461e00ad4ee741972bd7bb632397fd781dc3976c79f15b6474c2611973b85142036d316830b9f2dde050fa08199d42d8" + }, + { /* i=6101 cDividendBits=3288 cDivisorBits=2251 */ + "34e1bf11045ba4269223b412cd074d0fdba421745f2298d106250d220cebf81330d2e29be0389594b98cfa8646a02c180291f74d860e17bf1fe1a6eb42f6e9ef391536c40428480987aabfd8be5f42341ffb810da7bb693f7c33b883088829c07afe7c08715726903b1b956f9305eaa1875abaf2fec5f76f97831c7d98637a28b822c0b0ce0eaa2a94721e8d45cb8ccb0ffe0b717f364392f97dcdc0641581390afcf5c82926e061fed6ebd6256bccb0171cf23da115ab6d939f6c1690d7e31ec84be9dc9ab97111f38b6f50719736d5a8cbd22d52b4d9394f3450737350244736f20277b744f09e7f2be035031de21c6204c8e242fe554637e530e952ce396a74482655fea90452344d9f7ce5c1ec390c3c9020c5a670ebc6ef6a333a964353e724e2047ed5b34c51f9b2b2fc68ff0883f43b15471adad26d5f8eeba7a618bfb9e68d7fcaa90c6c119037b1bba3ad876d4786689dd3ae19c9e4dd2ddd8f309bd9bedd62a79b6cd14a8a6dffcdf15c85278d036e563e25103f0b35c0a090b0412bfc034c3ee4e292d59f46e8207c89deb32a4553ef2c5133c73980", + "36a268e3e8669a6a03554561a9655a49831dc5dda54781853058e45b37d627d29f673e608f081bb401bca0f028cb89f6696c4de603ae4f06f47f5522a4c8df94f0a99208b2e98feb13a3e671f584a094190722e0c8b85aaa37b679721b928f15ba7247d7ac846dd5633b1e154699b1cf2a4da8f1df335dfc418d25f17d1bd84ad94e630d73dfd858657d58b7edf005e0468ab3f9394e9ca6f9e5318f81f048e006622b602a468d2bba444e873a602bafb265275770606dfc3c4e6cc150987e203accc5411f60ddd84c5d1591ae04f9bee09f4f7ef96dfc6bdf0585656e6cbd993a4b8f4457839c29c37807dbc180b56f5d98cd61c684506950a306392ed689a36ac1c527c46441431aa5b212828820fa7f90d856a6c0ab9777", + "f7c9b3ae5679a99f41ed022b89fa61c21de2d0be2cc4db694aea6cef184d8bdfa0911783cb46108e979ab1a2c10a7c4765f9b5954e758fe1d045507527cc197aa1e9622279e1cf94c9953e56833093632b2c99a1c90cd84c0d683ba14ab8c422b7d39f6d86cc0f350bc544bcb5491eceb45a30b01e5b5cc324d726cd2c670109c3c4", + "053bf93a26bf6d4c5d8e3364666fef2b7d086f2281ed2af00d521801add8648aa97e678683000ee104300b2ae59de3a9012a8e64833946174f605b2c4f47c1fbcc7bbc867df3075fc48740f6f0985fc0c90c17a673642876056c637a2fedebd6c39b9b2154dbba53f6c1eefb73299594c5c2dfb09192a7b46e6b8b0e29f9791e287ac722d5835ffea20c94f52305387f75e36b39b0a883f874398bf52ae42c6334dce9f30d2bc6f37defaccd0cf9d3ed0e0d33ae54df72079d0daff9365bb10fd67f9da34a76dd36c93062de9a1091ac44563a47c93b1a4c8563b13744ff2d410c1a2b3339eb2970fb11b3c79711021b0e64faa17291615681b8e0733e638a43a159629afca90e58543be6b8de89780c49fa50f96231d89d64" + }, + { /* i=6102 cDividendBits=3341 cDivisorBits=193 */ + "1bf089282350dabf86395974519bcfca4496c78abcd62abef59dda12bd083dd04fed1f9a154c592961700091ccc66dd2d11d6678244129152f07e292407767e908338098a588d61f2e7d7cbcd821ba66708676650d40f327a4e07a0bd65ec0b4c354b6f0749bbfe10a89031051b0dfac44cc051624668ecbb86c309fcbf346b90d779e0c68582bf3dc5924ed29546ba58111949badbdc2ad7fe312811572c6cd42e94c836f27a03996a5feb1530123c124fedbd6c50629dd845938bcd478342c93d14d226b1c605382fc3758156d3e0b4607561683a54da69428d38b5553de82daed9456440b5b50927a38736e95575e3c50debfd07864cf8743a4930489c398b91a0319d5cdd3d5615459a5973c166c712ef25d3db8cbcc3d5155a4db55c6dc1fe1fe4ba877d52b7104428deb488c90698e9b641a4dd478a93e9e41287879041042248fbe1f4ce8d5304dfa133843424a5e24cfd13e70efd63abe94d712f4a63df4d5ee427b7ad508ca624f674b31bd17e975d3e515b3433e17aeb4f3510989fb8feb38c24d3030fce5ef7ecb2625152edbc98a0a7fde88c2beb8f0c6458c146b73", + "01e02088da83d36acbc84e43f483f170dfd7a3d8fd734edfc4", + "0ee5ad0ed025353e3a4d2e53c2bb407ec578b7b83e01b01735f9124cbdd222d58df72e972aaccf73ed7fdfb8e4ba1dc96edd61f6b2aa749da49b5f83994def58938b7af820ea44af1c761e8dff59726c890fa595e75aebda02100f3bca1c5f1d81138ca387dd946d6ff4e2ec60794b6ca51b81f65c84511adf8288024f456599c39cde00b954eb893b9718a96f071d67237c6c6dfb40e1233ae8049deb93bdecb271fa13d6d4df506333da422fed2f3f3d87d32c167a877808faa449a8343c9c4a8b1833d37564ab0909f4a77da1f0e13e9efc471aec8bd9c0ff833adeecc64a4d415bc5db1f26bd1547e0c6ad0abffef20fba502b011121bbc6cb1336503e60d16bfdeeb8e79d99594ff8974c48e5a2df604a45c4a8716413c59a5c3de4be576f46fa72a02e9ba926ecc910c38268ec3957aec842d2c1d601aa7365cf80053074fd77ad602b83e8ac32022f702b2a324afaaa82bd343e588f37b5901515fd773b8c133d081f7e76c28506290ad03915c1235bdb0c24cfb7ae567946f8a66550c86ea21fd9b0160d7ccc", + "013720e7f15ce4e254a2217dee965e309775da7b773fe32b43" + }, + { /* i=6103 cDividendBits=552 cDivisorBits=452 */ + "580eabb7491f574b7e1718fe6606495b278345c80ca89245ab510bb54c33212d6a7132429516e3a800fba9804f257ef5311db3c83c9b99ae074d6bda248afa138f0340334f", + "0978de7c35b88dd56af950b4b36ace239a99b6431c9b676cbc726b6241e095d908a2e1534422c6e0fd3312cfe883dc424c006418e6f1b3396c", + "094be40e06a97d6f947612a78b", + "053b26ec197a90f22479dded952aa3abb67da0b015e64a3a4aab28251a7f575477f5dd14eecee31f01b6acc26bd588fdd70d7d44fc0ae291ab" + }, + { /* i=6104 cDividendBits=1526 cDivisorBits=333 */ + "323aed729dd1b558ca2248a676060707282b0138881aad2829fc0a5340a8ae525cc21e466f29b3d1eb739798a88c78a931d5dfc4afa7cd46a9a81e0f2523ae398a014f80c6c1bcb0f4160d13c5c5db198930bd56d14f7937f26b41ea26ad48a7dbd96dc6906c973c1d5b5968a3a402edddfe6052bb520d76bfe2316da10f7d412e5b4272845129eb9be191bdd403a50c628b101e731629ae97e012a722b4c5039017dde7a3a062f4f47406eaeac78eda61aeb507b7cf639b204a983a31f29a", + "1e0d8868489d43ca2371e20772c438419336e7fbbcfed7016e26d1e536a5879bfc9822622c88354b60a5", + "01abe0807bf4dfd8d64617f3849a82db2a01c66c855b0bf0d692077cf62d45674fec8a6aa7c7ae2b1d756d103775ce03cc4438d60313a9b8d6a27b95a9576dac5463a2f2c77d1cafd0e52e38a704bc6bfca09e362feba80ebb4a1ef64b2eba30a789db54a749c302f4295be8ec8124817ef5a8ff88a75f1c63c93892b24210a9df0f374be88ae20961e3de175e7b09e8d99a036dfedc", + "140d6a0e7397df742c3398e3309fa05cd951e8b98a901ceb62e436d99d6d4a38c91cc1284d2d8e462ece" + }, + { /* i=6105 cDividendBits=543 cDivisorBits=243 */ + "01307957594b0b03194dcd221e649ad1cb859ed7af1cbef25b1727ce962fd1ae6a9406b091256c708570b7dbb52e6aac3ff710504090583ada2454532f563c61e64c1473", + "044222d9c591d80c7e838f208ca3c2ebce37913a4a4b3edb92b980cfcc58f5", + "47802485c9815dad605ba4666b5336b24d84e9fd2c0f21314b499986827404de95778de4e5", + "6c47a2378dee4cd375551ada0493d03a63b50fc8f7687c6ce59623554d4a" + }, + { /* i=6106 cDividendBits=3378 cDivisorBits=1001 */ + "03462cc9c8009c4493494f838aa74379a3fdb8dccf86626d1eccccaff0346b39faca483d702c522af81a14c8f81ef4fcdc246b7f812bb7d55a6ffca6fd43bc11ff99f8db7a60093d956e1ad8232780025a2ec845edeea0555b19750491d9b16a6dccc25056380aeee4dc18eacd0e2394e53b26a243ead53a9f14421a26783282fc2db3ed885d7021e78cd3897ef3e1cfa0023e30d01fe6dcdb78ecd1e468d72b7569545922ba03f955ebcc8e864a1f05e9ffdbacc454ae38e7734dab2969baa1d856708f8d7038632bab334557b85e5210d36125a0262bdcf8bddbf7cb0a23bffd2dbf668d5c4b24e452043aaa205b45c1e4a5e8a9e5f2e2ac19dc0d2497cf55bab10e07ddcd3d3bd660384ddb7a50b81842b000d6a1b8c5eb555c41edd596ea7ea4a14d5442848b4a31741dca594c687a1710617b240f7b14f77530fece23d317f7df89a09e1e7b60bd6bf84647364eea9f1fc020ac0367573d652fbb9d74dd69f33700b2fd632f28e8aeca5c665971da38f83c8bda34b197279364bd13079211bc1c3fbb29c86fe1f2bd4a4d8a909656b264ab2c4a039b9094da0cc293aa3597908feebca6cd", + "623142936670baf69807ba75587327cfc5f008685b3fe628724b82478d00d06a6e9419a31b442098f039d210521cf99d79c356a8dc86032394df27800ae52fdc5d3ab5f18798e0681016ac7d052e4cad652cc080756bfa83f0d80df298a07adbaba5bb2e682704ffe8443a581ddef967698fa77e1af607801a2b51ecce", + "08893a422f481ec98b3b8adcdbeb173caa1209e4febf74326318419713d77cd976c4ba62d0fbaa9a7a73794e77014421d1e1000268cf1b1d4acc1c7b8200b14c42bfd8c611a00c554d82f96b7135b0f94c5fa4720471fb037d18365a03f940237daed8569f64a6018e0b7ffef11a9d2926d51a5dda8c3322f11c2a1eca37c4e5a7131e070f0bc7d14e6687531d987b67fb1e86ba38568a4cd1e48f89352f2604c69cd3cd6146c0c9606cec2a4d9674b5cd912e074aee909ff5601291a8344a6ea06bb3c701131cf109cb33afdaf225c52b0c1734267aaa7ca1fc206d67fb218d4ee1f11fbc62a47b5f3e5bb0c717ce4314d9691bb77587228ac9168b31969f6d3b7017d3b8d32ce5d8dfb663b007af497fe992ba7a6c8df9705d0e24d9be521d5fd97512e534fb41af7e", + "58bc342bec253f0d716af99b822fad5992a030a21c49b8abc0c497534c033c998ce11e1e74fe6a916c5293080968d89537a654eb2cb08f8ea04a94a72778be373718a7e513c585ad412641483a8ed2157acbc39679ca7c5fe6343413851f422cc050697cd1f203a0a604351d5408108c9ccfa32a08ec41ed3e813b4769" + }, + { /* i=6107 cDividendBits=3863 cDivisorBits=2742 */ + "3af0116a2c3aeea9c2de301c47ff090d436a591c2ee149e6de699c3f45c54bb5a03a85a3cb15c4ece142c5fc4bda30e97c27b3e35abbcc1fbf003e828b200ba475e99d248f1d0023f66b01987f411363df12833ac0a82c40a74775d54380d19c95d6f0ed66fe5596a2b3abe67b2eae827d6a2460d30cf9a9e3fdd33caa4b0bc45b853a06960d493aa23f6d28bc895aa0c3bb41ebec696837ba734a68ed018f9c609ea3f1f8dcfb47a391db1f973f75b0b15a3fa430f1c85c3e5f2e245038d41ecafca078a1070ba106bf377c133eeb02a733dc158eadb44a1b67ea30e5c9be43f9ed82267b886b9d81a38422f5ee1825ba5afc419a38fc98a57842ae5a07314a5c507be9c928528be82c80063dda32fb939d8deac21f8dbe9f1d28899cc7e70dbfe901f57b58f1c4bd47400dcf41ae227e6ac0af9e7c0243d8d002deed71d2a653a9f078e40a9bf508f13da043e6765dc47e27f763dbe02043b8c6cf4dabf72505360727ec9bdb5c9e4045d1dc586df23be7150159eaacc7dfb1a965148f5d0a6cf986732ea2e1a9714098f77e5bc7f44e8d1e5040d34060c995f82da55a3a3beea794677136d552fd906737afbe1923988856e8c19d6fa56032bff7fc3a1bd16a1041449f6c2e7e4c278b768a483c1ee94732ef2717b3a23a0703d4ac6ad64dfd622b", + "0c7dd51ed07d42cffa7663a515c9d656da8c1734f91f127eb97460b18fc08e241e4f5fa51ad4cd99fae2d1a457a4c692058d622be6f7385557cee3811b7e0febe9d1804f0c3fb6e59bdcdec05a18f6ed32e47979bb283ffb00976d53aea47cb418b49a572a653a6d74a25ad76ba6d2b35ba50b25a31265f8611f9d0c065a33f83f7f8235a04f3c9d453476a4d3a79c3b7fbd2c6f9213a44ced5e0d0a7717d3f5db6d3b892ca11afa7f690cfddb3f990988edc91448c3c85fcc02ee043c4652803256bcd4fd8c2dea136b712c9c10bd6504de46a790652190230ba9d46a4bbce1546d2f5a9688a48614ab02f3a60d6092881da758bd5d66561db2690b604985ee9b802ef95c6dab57cefd8b2173cb0b73c1352011da29e8708a4d7fc977c043b158165b21b84bc0a58adf98a34b0c1e84ea8fc146caa2d5debd1dc6e5ea629e8c363d8244db5eb70556e0be4ec0692e6420502f5a084bf5", + "04b7dd139b0ce4442ee56c8001f3d6415e094e6da54bb6a050776a44eade5dc02797d6fd1430e368afa4952cb24af340560b5752400e903d577f79481471c00083c2ac01a5837e33f07b9592ed559ab2a48be83a810941daaee8505d411df4253ecb80b5d6fd7bcec90f7277a9388204d6d851bb12523f0cc51f128c360d9fd31896a3a28ffc553708609d8ba9", + "0aa73cb51b5b52016dff064fda98ed6f3152baaa59d63cd579b661159fe42bd7b6ed87ab1766a6291ebf19d7c3edfe7fab18bf0fd791b5e0af4866f397acd83feee6c650a98b3971ce1524e41fa700acfb566c3ebda3fd226dc360061562d660660c648e0a4c5d94185578d8b14a2b38dc9dd23dcbad0cc4567416eb269639d5526c4270d7347e069eee467a0862b38488d5e0cd3d5df1d4090f3fa0a8b3f9bf1e59f97a2fa5543ecd769f92a5e1b7799ac87c775b1fd318a9559525b56e5f5b785c223483c4b4971541c5a3fcb3aa2a423d61906beac16f424fe20ef4676d2769d382bb9b1c3de412837355cbaa47cf5bffb635e8ed2b9e71b0468415136b7c717e14ea1481626b4bdf590d9fc60515fa9ddb84ba05b1a1c1dc3da18b3477eef61833c621d4b764a7050c16bf3a0030f1a74e96cb45b4702eb01d2d58ba7cc290050360d95f7593b4a40f80d0abef44136f76e804366e" + }, + { /* i=6108 cDividendBits=30 cDivisorBits=12 */ + "224cc135", + "08f6", + "03d3e4", + "041d" + }, + { /* i=6109 cDividendBits=804 cDivisorBits=79 */ + "0a4fecde6ba6d7297b336fa2c41cc4cd287c6e188e18d8ef8311dc64eeea865b6dfa15fdfe1af91dffa6bf66228effc2ba610b8525431372bb2646492590d20bcd1139a575e718ecf5f6262cb6f577dc943986d49f0ed51e5a9093e3251e40d250efb8e5ce", + "0de3c72f2341160e8f46", + "be100ec21310a6e40f7afb17b7a5859ae1b8fe0ef7c462305d5812e7c1a6c94937d9917571768ed26924b0646e4c816775f20b1e589ce9f887ebdf75d68ce07f9083de62d7e5d77178b6a731932a958a86115f046eed60c1d3404e", + "01381ca01eb4b6c5be7a" + }, + { /* i=6110 cDividendBits=907 cDivisorBits=266 */ + "02479617d93400dcea999889ba0d36574986a549a8127740073c66127ff86cc5f1cb56668663f3cb1fb169a33854cdd38ab127493f4fcd7688e689f67acf5e48350b2764bb02a58697071e1e164e73042a23137128e230a7051089810553ef9d4b1d713a73f8c42b34f4174fe2d5c6018a2a", + "03de1e9b376353b8f093333ad7e04a9fa594414b7b83989a1d45adea549d37428817", + "96e391c36917ad5942413cabacd4a932c0fa576253246d6958939a0b75c2b62eb22bec0dbbe661ae0b886eafc3a80357c389a3b4ad2f1fbe891283984d0964ccee1e131e1da09aeb85772bc86a333a75", + "029b577c7b2ed3292329b4d729444189ca4c7028d6a3c4d1d7230150dae3cf2f21a7" + }, + { /* i=6111 cDividendBits=658 cDivisorBits=537 */ + "1e47129ad0dc6c534d3af0ec39be61ecd7ddee195a98cc7e688e248d90bab3013d6e9a040b27efbbd03454c9d12b7e96a0ff4e1f75c24cd08716080492a0f48d8a68da744713302ced754b1f4ccdc07be807", + "014c8937ae0c21d63c7463a8a364f9c60cbc67baf723c6d1b66651aefc090a62774a2d74822571a1c625f11fe9ad08fa4f3379ab28b9d128c99f7cfda69e67df12292f3b", + "174f18d5590c8a7dcb9d0c3f840248", + "bc38470befa504410896cca8c604591a986232315f88267eeddcd2ce4b8db3020888b2f5193f53e90cd625badd7857487a7b5938a05e61e3bd7c755e96724c731c296f" + }, + { /* i=6112 cDividendBits=3925 cDivisorBits=872 */ + "181b9b3aa7fc05ee351cf1daa3b3efae5ab65bfc03f77d896366679504a1ffdb4cb8286b6a26cfe1d08a2e0dde4c60eecc86e1275aac037f18d7cbfc468c9fa62edb90a4aeb3a6df6f32b0aabf88c02a67bdd094140a6c65a0a3f238133a438237e4caabd20b2942eda26706448573dc49b94355ac7377e68e67e364e00e13fdb21f573c3c7ee750f5b49e043c7cb44a84151e8fb4273627a7df363d3617066d0317ade3c49c81e956c8ab12977dfc72765f1d3309a341a912270c8dd9d6a8e5f684a34a474e61d9744943062b271dc66747b4f229418b0cf3ec1dbe5df1d6ad4ce76a7666f0a60cd767c80217e472882780bcbbe969f6e9bafca4348c18c03b811aa5ef14046f24d3a6a103623d25ef0874eb1cfad0bf26b2a4bd997b07c297b70cbf8b58fe5421799f2329cae913e4d45478b0563a6f38dbe2958b864e5f10f382fa86f1f0af580d0db352cafaead2bdf7d1abf6be5e5ea791a8b3d33ea6bf6dd1ed89a31f84fa8e8c40567387512f08e56866ae5172f0e59c297953a5acda45d8189b006f4652d8a4f3e6b923fbc8dcc03f267fa04c1e75b39ec66952415809d731de2d02f97e40f10431706bebfec72fb28b461cb356cca661ac6681dd1865d7ab812988bd7e91dba91a6fdd81cccff7d4f8af4ea7bd312e0d8abadbe29d47d362af7b0c994e6f5af1", + "09b41d03a75fe8eef6768082666be6e9bc745f12271a67a89d5154d16c6eb78e17ee8713b07481e7cbcbb1991d7b1a75e338825f7d35feca2f853740c963feb4a30b69c899715a5603b200434ab7943fe6ea39441f42e0f1dfa0b940f64aebfd4601b14a5e3d2150894b17b1b5", + "027c039f3e90888af1158126b33367f80cb55f4f2e614a0d3e3149a24dacab1a3cb5dd6f351d0f71591560d20b76f045b37c2f201d835dbd4b3f790d642d82a91f853aef883970910c2098982e0f7f1280b77e50a117179d8d6fcd461e1ef6e5dcc7d535cffb02cdd8f2f383f0812aa787862cf8c82a0a33fa9d4b891ff5a16475db6adfdf7c059aab14a91743c11834ffdd8b7adb1f07f5059eb8a9663b7c9dcfb7446ae2fc95a7cacaa4035834dd7475ad3797eea90e27efdb7b101a6810984aa42a8012787ea608d98bf16b119c2769f90c4c2c6c035dcbe10fae8106d501f4f66b9f6e267620a995ae1f640fb26342dbcb658b97609c744c100c545ac8220d3c1c71116bd4308da114770bc0223751917a72059ac1cfdf65586b3eef641d1fd9d751f0b5c40af1b24f3da0b370bb1d2e9934cc3968a1095e04ebd806c91ebb99527969ba5526498e51de2a8cf8de77b1d5661d6de23ca7b710c3cfb7443684c6cc3c1b2724927eb1eca1bbe3e2480e909b7f2b8266b0449a7a6b9ccbe9", + "04e8e4713e40cbdf805bd8477e64685a9f2a403d81d33ac51a64d28837b1869f1545cabeee5110472d77f5067757af7f338153cd5bfed791373cfa0abf6932e1927aea36feb336ee083ac9258251c28c6ba40b3b4bfb8230504ab7e3a349c2d63d3b774efd7cf9a51f3aa81634" + }, + { /* i=6113 cDividendBits=2011 cDivisorBits=1205 */ + "02da36543a6212d5f8af22319abf646169b568ceea43ab5418133eaa229ed62b8f1479199e0e072bbe679d92c0f9637691656a36652811af4f1b59b70fdb2323f3897cc879dc974cf23499889f2c85c3f9e592f5b1a32a97062c5d43d2e8903008d25ff3aaec7f915ac5fc35551032165d7a0640e670cb0b94ab8bc6ffacb4871c55539326eb72ee25f44b83c5ac91424dd0b7fe6f37603f04ded311f1a00fab8a66470d61defb5614bfbe3db1b3940206651aa4c55d43050ad3887edf787b4a21baf30b2f99d490e554c4f2a3ad027bfd5fd9d31bde3d045d55b0230ab0451a4f9bbff6fb5bd124e4cbe35cf18ea766ec54534e550d19be6154aab5", + "57db5a1477ff56e26af5f6dea9b21411635a791a84ade7f046d4b5d801b323dc9ebbbe7a78ae47ed268b16c2f1c774d4c7e8d49af303863e81ae24e0194d42b118e34714ef6918f68753ae2d1fdbc4cb23d44607d072188e2b3dcc17125eddd190237854d943e7ae2b45bc8883e94562792d97c5883d2f0aad526ec2cc5a84bbd95599b211c9c24588532c1be31b9b51436cacc244f5", + "084fb70e88bd536a58e406dedae282fa565aefceaf9ec2a620853be70f2653664812a597d7dcd6de91cfc7384fc955f38b07edb222187caf9881899781ee76f7fdd6b38de1cb4e48b15e7e12a04d84285679bc92d6256c1adfa96597ad7dfc637ec9c0274c06", + "4bb751e26f1bdc9605cc2059a95c42c51552ebfe8274eccadf083fa73ba4ab8f184f041164ce2efbb2416339a7d3e51d5d52dae67dc94a4f12b59f2252878338be8c10010fd1e1633f645ca736d320a019441cb79d4bc5d2b12341bb8d15d5720f49a02b1346808528cd0a19a0b88b9189606c81e07dd80fbf2a12492c5421f5fee12f39ac5433c2528456837d9bb0c9823b66fb50f7" + }, + { /* i=6114 cDividendBits=1637 cDivisorBits=1417 */ + "1cab4384d6f127a30ec04c182518f2bdf632a875a262ead5e3d2ee0fb381513d667bcdf0522f7e7cf75cfbc2b56a997aff448c7c7f160f68ce6ce1ac463a09e6cddb9a17c574c480da47423906f4316b9358c32eb3d9042e1a4ee999d7e97752479c0089ddd9ebb31c5aa0fe9471d9544324924734f7f9314eaa1bd5179216f235cb51bb223ebf2aa5ceba4fb07bdd5f1ffbf2295aa91fbf9aa9c1df8140917909ea8b325b1f0db37a9afb666e7ddb975ccd44d7fbd85030a882572cb63d5546f9fed48be074e29bf2f9acac13", + "ecbef0adfe1319cf8c89ccad725f14603c00807675e7b665876c7c3755f040ee9f23f26385909707b56436f47782b488509949d2bdc959c99f00fe1bfed41b93fb5ccca63d9a1643b70c95abd9f1c68011fa923ef457a1bfc5c6af3bd236c7a1c6b636233ca2b081efe33196cd8039709b80f04a5435778766070c152fbd31e73257330d85861bfa388e722c6e23b32177acbdaa56c62d8602d6031c207be408ceed740c3b2a3dc7965707a361e2879847", + "1f00275514aa507cf6f0e48310114b37fe32d9a94d80854503640614", + "4e6e5f41799ef5e70e3035c1bd0240d4bf050644726ce670632bd99b1f6c04cdb063cd86f68c4125da3d0cf4eab1a798e492871f85b4770bd7f8554126d30b319d47050cb96c112966bb9eac3f981afbadf68c02659690a652fca18fc6e920dba34a4b6a68f397b74a17d2b82e3130c5d04f43441da953e54c89e73849a483e0bead782a94208fd81a40943f4b52ae646956b52179ba463abecc734c0a715e8ed319cfdebb4b19b1a683688b1ac8c71c87" + }, + { /* i=6115 cDividendBits=444 cDivisorBits=205 */ + "07db3c0d79765d097634e63525faa0bfbb147903cee4cb46a88d66a6635a33a922a0f96095cdc5998b962ad6e65b93ffb3319d3df6b0da54", + "1caf9bdfdfc82f1d8d3e392ffe67f0294581899db1d3db02f8fa", + "461cb47a933b0b1907df6f41daaf311e173febe3ac62a45a451421050614", + "16333260b59b8222aaf14b1504ca8519ebd1df1b42dfb1bd8acc" + }, + { /* i=6116 cDividendBits=3839 cDivisorBits=3232 */ + "6e23dda1cd3ea498c4c75da45c00e3e0a4e5bd09aa384fc8a652dafc36d7f7aeba1a3f9c4ee356a1cb1b1a1874d2a261c9872dba977253a49aef63bd165fc9646beb7f4b7797a6237f7b2584951e55e827d316c8ab60e307b4c6ba4d996f07152c6bf90faab158deab95bf71bf2e37d022a8336a61991047991119a67dd1b516db4f8c27365f56280ef0d05613ec8933eb0cef2157e670a8c9ea67143b8a74755fadc7efd6618aa99586599f5663c2ccbc40f1271be99746d9f1477371b6ae487747c587277cb3c64a728c44c53c44cd77d6f84a8fe770d4eeafa90de0f2e578d391c4770718cf4e8df51271862c64dc5ca4c806fdeb1194545a827996e00b004c9aaf8948547e4ce5a9df7c51b947c3793959d3908e72eca833fced9163b12a6a41008fc4e7cb808e1eba8b6dfd2c9935bd3d03e9c1d430e4d27f81e63d0d2330ff6d5e8ab686baf42dbb39e4bede599265ec2025b0226072a47976d75fa4d60bf95c9470be37e3682ba35441a381887d42a50aa731a9e82239809b5c88319d7178b21a05659736076f3c3406c6bf7964fda265f2f396195bce4fb59aa069380321f6882564b9cd0854a1197333e8dc20578f00d1e551e62d6bc3363d35659d447898f2b631b2d3d22e6a1d2f361f7db11be0a3fafb6c47bdb22cc37410f83c", + "53304a270afea268edf5915b85495ad196badea71aa860ed5a5b99cd4dfdcbe7fc135edae019004cd4e37909c5309981abdb9cfecaa49070450edee9c6311c7be19937bd6a5ee413089a347f443b510973cf5f0fa51546833922a6a9712b440074fe0d0678ebd00fb19d275a92ac2d7a79b3e90bd2beb530d079b718f3a8b1aca0f6e0946ab5bb6a93ba8a986285d4bda2eead3017a86be5dc015b315e288857b1932e174a543138b8ea54f50195c8f7eab7145469953700cb74f2139ae86c983c1708d3c4617d952e1db6d1a4206522be6dd0bb9f7d94434a1ea536790cc76e89dbd65d90fcccd7cb8babc85558d2ea6657f48be335ba41e73fdcbcda65d5baddcc97bfff8dc0e3a71a2387114d568d7710163a77b2500e9282321009ceab40e3f25ecc8b706b7cdf8e1c037328c03fd00758ea0955820d852f91dd1ac9dbd05d12bda6d61860cea2661bd09f5a93eb45a2e4447156d0733dc0ef6975977a48d6b3134975b27e112098f1f724f07f823f5ffd326b9b2f53553d9120af741495cf471132656498cd57d1496e694bb439bf3c0969", + "0152f05db93b5d0e2ae86503311e5607d26d1bc102cc6088c6b4ec9de4247542c116da27b1128573cc3bc7c4a25c3bf69e05816cbeb7baa2a357e551a406cdeef7e163e4b56f56887ce0360f96", + "32af1cc16dabfc96e7830ca574866ccb7df05e5d12312cc63e014fdafc33264064b5450efcc32bdaccce9cd6b551425fb663441c1f4df7eb8652d6bf2a4996a99cf584ff285ca47ec9e763147c28dbccb2197ab2e47c1cd7dd2b68c4707f8d4d4046897e557c3a25b7c082d6babe6c7a9757dfa3ab6f559fc86cc53283c21cb84d34d6f9774ec56009ced6e45f8d6273537635a5495d1e3f3d74cc5cdde992165fa0148c8ed3c752372e66c9075f26b3d86d5f5074526f21eadda93f0691a79b52abf5ae990897771623d716de60944068e3ed478b81546e5170942e53992a72f42d8e17f388786c14c3c18cd9704b441f76787f335db009e8fc06b942361e7078e9173a44cb4d4a160cc2ec8b98ca5d2c56c0d7eabbbfbcb47d602c61bed59f3e05d88da96e7902818badea07b78fc936de82ad57fba7fb578a3e555bb1f9ffd0d070026a77ece11c5931f1b1d53b0109e9e8508c8e1f418807d736b57171d60a5bd37e03f0621db71314c67f838af5407edc31aeef73fd30d999979002d66dbdf3743f92b8f7d6c1760eb2d9e9faf706304db6" + }, + { /* i=6117 cDividendBits=3027 cDivisorBits=1726 */ + "05e7513b0a54ffd41039bc6bee07c2fa38c1052ec62afbe0e59d0e936dae6c365276f4cd56f65d56aaa5b62361a3ff0b9cc5fe0dd72a83952ec07f8ef5e38217c48dc1cd357940e06509543b7318192940babe0595ff143f1b49c0698d64471dc035195b53e8b290b3335e98304d01e385a77b427a6cb52d1e5b5af4671057d434adf6e0c95e1f4f522098e4e7bec6264c7701d1b525cb0277b27fce7d886324b5ee4f9ac3dd4670ef9073290c0ef67594311c2d8679aa7ba1d88797192cab56fb40a61c20b3f00e94f959e1e3dfc756891d50dec48a317b0ef053e4af53d1815d26648cb92e6391687578b2dd11a9a5069f933a13fb7c01d45ce2905d4da9396561a9f28c0b9da5b953edf284b4ef76b77e2f80b15480ebbc18c94e5184b5162990df1b7266dda31cead587944c887c60707bc589be0088d9a37542f40e0f894aca2a186991c1e7869bd72a5a79c1cd6da716e3d58fcfdea6e2c7e33ce164c1cf050a70d6a04022aa19704c270b1bc586c87b31f9beaba219b12f", + "2879b86fb61ea57bf56e5946d22902f830a96b21da8eb512e26297eb1743c36e3459995b8741800a9e308199cb2213d9d4efb47c747435d24aab209f586c872c329dbb9c234acd651ec776062c2acba13f5c8f6880da54b286dc0af0bd1601a538811c212290c1dc7c97748f641315da7cdbc8d83b72afe44c5a979e921274e65b3190ebbaa66ed32708c4739bceffa55773f6694247579dacba132d6d53d9fdba675c619fc987a1f32a6600bf183ec472b81c726389e01dd5517bd8b8ccfefb730e8cf3ae60ce6584233ab117c5259969df2d2e625e57f4", + "2556ceb758e8d3e2a9093ebe96b08e79a89eca7822ab326c8479df8494ed650d4f27133cadeb0891e88eb833efc584ff903fab19c1038cfdf23a2022855f18c03fa8d6be57e3bfdb448fcd70c681c21a2a3a35506d8de3d5dc182060531da660c1a3ccc2021e1842801fffd00d937d48d39f45bf5de663bdd6dd819a45c014b02cf4533913c5d4e178edf0b02bcc910591e968deba646c05091b311dda2fe96b79662a", + "1ce19ffa37fa69c4879005307da1c02e32b8d562ec32695197b1083454b48416e120b02d40a15f7de832c8c017fe12a6ae38a887507e9962c8d7a8cbc302ab75f7be21ab082bae0a2fc0467ad7056949000682fdbe43c44184e521f59fe7b727678c4177f811b5edf1224dabc4ebbc44c932e077dc83bdde40c0209c8954f9ef1dd2c2061d5ea3b212b87577bd2bb80e723a28f99784b1edf8cde30e1c5fb989e362f99bb248dcd70ae4e9ee815e4792609aad03db72126dad014c10a762d13d92904a413a725f1172e72239ba768179c586136f59400b27" + }, + { /* i=6118 cDividendBits=3968 cDivisorBits=2570 */ + "da7617049ab0b2ff9bc289fa1c58fc41b01abe6afa1cffc2a54943f45909641476a951b6687aad385cfdb8b9d8e5d22525e1a54c5ab00e711f4e45fd61ca4979454ae21d3416cdd1be230ea302d5b343069b5f36a9f7724aeea886789d2b14c10b034be149cc56a29daabf263dd93f4ffdac70beb1e800ad95715548370f5d993e4a7c7043543226ee3c0836987ed98216956a6b2eb5a4f3fb017fea06844e30771be1d2306d7d6376d852e8ba0cd4787f539962d7dade113447c29e81a8153561fd48e35363c31344c99f85e82c5aef2dfea4f0226ff2581a824e4e0b6e5df5fe24b2f1bbd726ef76cec55b3651cfaa40de2b6b8a50498bdd34d5f19a868675a612a4827ecffdaf8a1597d7a2a7dbc72e4c8d568520855a2adbe6d52369331a5c39ae325e55e0917875a9040d3f5014d19cf61778a89fa704a851cf183e1bed327341313b063f02ca0d475ef3940649be1bff9cca0fe263a73f72248c577965984aa72a5e7cf202027f6684f266b16b5dac66f9b7b692a541858d048f0e1f188f41abe8f52087944fb0d5dd074fb66a1ed0360a22acbba90d16f8d9ce3b4439e0f503712ff514c05b6132c6d93d8f33f814f726fdbf2defca8b9dc618cd5f2731cacb263d5632f3d58f9f61ce55e68fc78c90a94e2fa2e61e6e99a912ed5e8b172bb39089544cd8b92ea3aad21a35bd", + "037753be4efbec69924804d9178ab404941df82e98c98092668706028dc3db804b63f5e6ef2b4cb8b4dca3b1d8c2d5834ccac1dd58de984c399f1e2f72373e89acef02dbd0103259d72194f13d937f28db8f7db4b6d4e7cb09da788f6cd77684adcd350e56252529ce3f1fb6e802d7389676b26caaa801c9e4566ef4b273001e9b2c53f13987ef4e9b9730ffe0c486ef07499885c9d43b4d180a4e3bbd9f393a3117fa96b2ee27b35f8e131d00f2a7b4fdddc30668b0b25be0adf72e6b8536d73283d4cde5941903b20e3cf7d10363a43932657e6b54f8568ce7fb4ee35455cf0337b1af01eb6ecc3be7ffd19ac375e3d2c8c3de1c51514ce39e63586b3083496aa751c140e59aa80fd9ed13574995152294caa74cfe5f79379e0efed2bf25c94b32ecc2da2a5200b6f71134198df783dbd3bad6df218f3e4a7bdfbc498293eaf5f5", + "3f0710203c0f152f01384b3ebf28e944548e895f4179e6baad0f62e54d5924301988a5d96ee8a3b9bbcf85f4a0d547acf5e7081553881571c7463a74cc7d6ff740787a6314125fc4907fe3f145ac9b7b1a6062234a13ae0d2a6e942b9486a37e8aa8114e74289d9176102e002ffe1c49c1d855af09a3c27d4e8458d5582bb53e85f00a09f704f1e55504f3c5ed778730d05b85923d49de60e824f6d2ebb41e24a1e4ac61eca4bbbc61fc21796a1b21", + "029d23f18cfc5674b129bef76fa54df731e9030b9fa150c8469612f534d2cfb074507cf13bd9f02b717c929efa8371b30a856ab368e14bda8b375bbc89fe8ef2e4813d6fd140f9f3048f3a997533d423bf3414f60f604db9d85909dc45136855887fdd6050c6ad9d6a4af3b86993a5a1a6047c25c8b4f530af7a7af261e3a07d518890f589a6b3d3bf848c60d7bf1dec3c18a3260d5c7d185dcb5090054505459f7b33e080f33e290a69f4b636e5055967c767dbc4fdf79f196f4e500962ce81d127a3d5fee8b1752f1a3349d80aa9c938681523bebb568598313f02d02765eea7ef5d69986e00d3302b0e6be99dc1d1ce3cc2a55f2ab9d2708d42a3e25996798d437064453adbf871cbce71aecda65328cc4357020fe869515099704302d19f38a5bca4929c563313998c64b7e8530cc0b109b0dd0c089bc58464f1361c546daa28" + }, + { /* i=6119 cDividendBits=2685 cDivisorBits=182 */ + "0b923f5d3c09050b524d440a17c53f4412ecc177bfdf4dde615fc1479c3efcaaffc3054b573cf63220e0186205afd2f5ba675765548e3f53568adea4e9ab5d6c70fd32eac6492594b0dc0b5afb7e490cc6f48aca69233eedbe66a201b81e28f2ea1fc9692215c6c510c8e5908e608826f999dfc87a4a021a67817ab0b2d74d8644d45060d099bc5a84a2b6612104a5f118721c8aef8e467a892179f998e97b6c584d296efab214059f6e1247edc4f79663ef6187a2ff694b7600ede81bb09ab49eb37edad379fdb81d84466c711017b313f157d6bc484341e720ec88ddc61e85e2be735d7b94b170b4640be8aacab1d5f1c6fe5a3a141b4f81877867280efa54fe71a088853284677b71f8aba84ccca93ceede4893ef5f2e42fa6b9a59a819de9cae5e92f88b1574b9da6bfaf768f9f6772a4daaec6a54b8ee0073fbdf9c16b0d29a4bf1d2db182f38b8c3b1208ad2c3", + "19da7073fd125b3f200901d0e9d2a60b363ed2be5a2ae1", + "7294455619a9fbe15b9e6fcc72aba288988227bca316ca1427829647b5c68f50585f3ab380448b84afd5c20c99acf2a2fc0790c045949d0f81a2788827a659d1178350ab160bba8dc52da99f0cca5b06a3fda76732dab32bff175ef5f56ee4414d2e6d3402f702bbe5b23aaff50d71a6836d5c80e60562e700fabf75fbac61812c29ae9e46330032038ba15493449fe42092aea4a7243c612b9c61434bb8565ec6ff733d5a71facf45c2bbdcab79d041dda1d26ae9f344d8617602443ef858b4c4d9eed10a49d46cddfaa40ec88b44acfc263767af6aa07e501656e232a5aa6e931733f9240dac7e3b7e250060fef89bc61ef667f1e764f45fba92187929fec9ff05be97701c70304861734b9a0548b0ee909a4a677f5a9405351a85bb1b18e1a29d70dfbe43ee993d738cb6afe621ade60a604d270326afa5", + "0a43965388081252d97663acc214b7214ab092ccb760be" + }, + { /* i=6120 cDividendBits=2164 cDivisorBits=2023 */ + "0f284da8b6e3301ad6c4aac72271f14cb9a4f17cdd7de823fa7bc59f67d6e66a60e0dc2540ca382f4a65c02dc8ab0e4fd9be3577aa294e7d7b475ee36c52ae4f483879ad7eee90c320c376a2fbe39b1648f4d8d5ed38184a392bb61a09b8ea7987a77f3cce1432d72f1443423d91e12ff4fd8f7354fac9a64d213ae6a59653b991f98d54e005ab38ed0c0659b66086edb782426fa4381d01d69efe0b3457a2bb37a9afbbbfcd766674d6dc62b6625709d74e990e731640abc5206ef272c847f4b63d638c7c23833c23545ebd618e99f2659f4b7f3dc5066619333074faf0d57aaa97810f7684300cf87fffae48374a2212412e317b08356a56cb01b40a396a4162130568df8df852ae3bd55073dd60", + "483479d16f0ad0bc3731fa6c8bfba55cfb03728a1e1fe3909fa28fad09c2f369871bd6b011c23f6def73548948c63cfaf1c1b4d94fbb79bd56b64c5f5a5d56dae002642dd6eaccc41ec0336063005de72a9e9d7812ad7b8aeff78094d843cd435f93d3e76d5c18e6dee56b57b2d3de3a9c50a109fd8b2653c916ab394a2e95be48043e6b6a022aaab02c3f419924e3dc5d45b5841572f7b89570935e5686bd468abd62f54ee3ca87a44a3361f93dac2b1f1afd955a48b8174b8ba47f71ed76c8178c6d30b7163ffe0a07fe0df7d12aebbc6882639b2abcaf54fe53006683271ddda3854a7bc912124199e526bc5ebbb574163bb6e32f8750e6cb08496b", + "35bd7778a347435b8a23fb5ae3f25700ad47", + "109e64c06c088645ecf3066c34e4c4181a311ac65f580865b477967db75e784fdae28a53c9e970645b42a55c3ae022e490d42a8b6e43acc037cacc7a0246055f1ce550825744c510b1d2f970f875b258cba2e0600e1073396b917d339be7bb5e14c4ad7816b1bb5262158ef53a681be921aa22126bb38f4a0a3b497b534e5e3755dee95c0afe434e28f72e38ef5d031066edf7549b175eba4d8cad3da2745fd5f36e878f7dd6fde125a44aec553aa82b0061297aaabcf708f670cb14a01c52f6f12d7a27159326c930b76e9eb79776e8fc6e77341ca23dbb41469764dfae266f9aa35d41d183ce8affaf4b037a5390fc02b5f6f89e43edbb850a8a31b3" + }, + { /* i=6121 cDividendBits=2817 cDivisorBits=52 */ + "01d7156dde501e2f41b4a88adc953be510416c6be6cf357b0d6faec6879c368ce9b7fa6555e6cf28b24ce24bcaa66d43c4f740fd508b2b6cd0a917cb2a44998faad270325c6241c7c806d42ee260ec0a6be405704d1fb6eaf8e2ff6749e704732284dbec772a27da3228d52a0f34ca7e65ec6d9978f913e1692a5f5d9dbd538c9a2503ba2b9644bacf99591ea529946ead6c82913fa0492e3c1992216573018dd957a89adb4d8ac8704d2d626bd310f60aff14668323526e4c7e16d5a2538d1830a461415b89b2b24adb4aea7a65636154220e0abce6a30bac5666a60184c50444b750cc4f256c76fa1ed41d95237a7e311a13f59644bf497693feed8ce57250ab67ec6dba62fb4d7d8b5a48233722afa0a5bfe5e4334577538652d4614b12fce01e9689b28ef754c693faff32f9e89b9222a031bf215befec2067f91ce46be9cdb9909645009c0d105bd84b174fb15936bc73c5758be51b733173a7f0285d6a40", + "050f89434b9b78", + "5d163e2ba262f32416869437de813b663b94d29118494c3f9c447a2241b6d7a1281b7e0d6984039de374002b58a7f2436c3eb45715b7588bb234ed2a256127906c8453afc6e47d2f1c170b5dddc68a90a2152b2348d3f8b45d6f444ce9b6deffa8237828eb658b8a58ebf7ace8cb8618194407aba1a519af9c2a6ae0d4753065a13b21ab51e0ee26e69517d147543e54a836b24b8ae679578a901585c7fbda6edf19e3e4a867be512fea0dd5735d22abb27e947b2a7be0e0c97a0bc39e150e6997b9e44090078c05459cfee3ab0a7518f770ee7d925e058540c3b2e0d4d4b63ac01252d346dd92ec088a72b681f5ab5e715dd74ca7a167aae14ce41dc70589ee2f1a74b3f5909afe72805d2b31b41bacd645191bedf68bd3df2c500d91fa270f123d619b46d10c0f662362fc367b61d4000aa1e077ab0c83d1814a786af0f2eeb4608c3df5fd0dd36794a65a0e5a1af97a7b1b40df5ba891fd5f", + "01b4fca7b120b8" + }, + { /* i=6122 cDividendBits=3879 cDivisorBits=1237 */ + "4dc21ededdc57b75503aa399e3850df2c4f0b8a6ec6bafface8294bcb5e5691c66040f4b367afcf3529d1099a195dcd39fea7804ff8fbdf158ae8136743f3a1f72e3059167ff6e55c7c00f6f6a7e78aa8bcdf086b1ab0388efb3b9621fcce24c40402b167b5a84f8c9f3d22d6e5ffdab98015d0be2b28a6165f19d864255dccfb71e8eb6f89cecd396b252d00f1321fd8a2e6d8f9c4ac7c016ae03373d93995a8d5cae412b92c372f67a33fc1064a1a7227b1393e7af7ff272e259e3bbc31d7602c24c13daa8436f157743dff8960ac094f3afd9be80f2fec5e3b16ee3ecdfe2cad3e01b666cf0cad5cc73e6388239d5b426c531ba3ea156600c392d33f0bfeedc1615bd57f18d2cd4ff7390005fa67e3bb12dc22283f8c25a23ba09d80f58bc0910ae0de3ba63d08ca125db06f9b63b5c2bb23a75f20d2e6044b529c9e74637980edc0438da2b850fbc846e1cd106777d1b6e507094e4e5eb6e8f496a371b07cedf3f4e6da7af87f0a753a608bb8f3c998698e29fd634587345cac2871f054f319dfc449bd1262131bd1d521ebba29e051f30625ee4115195756daa75128959d23bdb233c326d2aa1ad0bcd5abd96cdeb61a1f68b0aba6a742291d47d5e537581444b6456c47428266cb7ea538246e6937413d8db6ccf02de721ba6e387430668fb4a321b", + "0b9e83e94b26797ca25507312bdb338ae1be4ff2601298f53e98dd4b2a5e7b2ba50e5d140272a9f4c698b56b97a9d05052f14840510f46c6c4a1c66a2e4cd3234fa70ec13ac4ec17b73ce48f42a7df5953825915011105efe862d01384cf0e715786d750a8f21dda503512f00a0df9b6f9336d0e34fa96ea55b011cb822c6b413007dd6c36e2f6e6a92b603d87159dd51efdff34c2a869c4762527", + "06b1358c95f703d2aa666fc6fd609cce8fad99af178fa7ad75c8878529cdeeae49215045ddef8757a56f03d433e899b49c404f3843e6e143e381e13c74cd1a8ebc2b113ef9d4aeba641529381bc7d856a05c799a647fc8ce00c95e42e9da6c789a8acccd33b3b32b5226df1068c4eedec2767cb1d053dc9d62e67ee4bc00ae67ff32ae2e61fbe482dabc0a26e891841b1393cf5bcd04d7d8ae35ffb577c7c886a8d90f769b806f22ec86ac4f71be90fb31466c82b95d82e0cbf917754700144a5e100439cdd5b821660c14657e1c5105fbcd55b4c6d0086c11d21c514d889f9d0fb45585f0cde6facfdfcf9ba45440cb9ac94000b64fb03c2871ec6ec7119253a65fea31e3ae515e4d6904dc8ab9a9b32ff8c629497d9642691e5a2fece027dd0674ea4d5cd58a488c373d2e59245fc7f28ee1e42a9da9a2d9e12dc04735aeb74f2b901311ed9b6a22ff3a", + "056f01098c85e61da023cf7faa74485273b4e12ff3053923fd12ab1a7b5686bf507e13a055271d107f643943e8c55d50fb491b05f1494925264ceef95a2956c99c20fabb75fdcadfdd7904d9347de7d0f292cebaa548ea00c3d78767527fbedd23bd33f997155635ace0969987c71064f2b41c28b595877bd2af218a302715ac0f21a5b3dc6495f948f32cab04d9b9ff3b2377d37de710b455ee45" + }, + { /* i=6123 cDividendBits=2069 cDivisorBits=1757 */ + "13accc4cdff0bb06e893711ced1ca54f8e048718b83006b0b5cc53c6dbceeb5211edae9fa0ccc89a2fe727548b1efe7ef149128d38e850763662f7f950145cc4be2c9de386d43da7f7a04b321bbffeeea1d4f4722f36a6ac2bae4248120f4fb77e8673946bd2eb80692e0ca5332212f0bcc1ab1cba1f3ba3c55548b12b01a661e216b018a934c380ab225ee1ac0855acc6b3c9594bab5da15337c52823b74117fe9f8cc915492778c2a6e1e6dfa2ddf499102c60cbf3eae3cf4773665836394d054392b1b6ae9316381a3837c367d5ea250a9880ca651502a425be174c19840df45ea8b0ef52c907a07abde3271c224b73ec1f25050f5d5ec4481fa667f4cd658b2d2b", + "1033e3cf156ccb4a54ff389ff773013d60eb8bd4d8b9492b7a0cc5b9fce7fff7c72eef23b7d94f0d2449a259da107e94dc81cdb581b25c24ef96182a51f20e3644afc098df7350df28570176b36300984cf6135fd107d9e45b9b41004ce9d1782fa56547fd5ed3ab6ae0a89a1b9ae50f958d96698dc0f3e211066431a81e3c4449e882b6543b36c7b4a3154d23fdc1372d4d13cda594fe6adc573c1259b063703cf67a0ef04bd5dba6122e71ff92138cd776c269d1cd1eb4527b69e058317b7d1f32b8915dfb737fed8659281c7f65e2b9a46fc152b9760707ba573f", + "0136dc9b8ce8a73ca09bc1a444027fbf93d6822ceb82d1b01efebdd2c89f3369b4bca5dbd34f10ec", + "03b22f1530733b1aabb380edcee4bbc92db174db50c30f3f1c57aa7a827e15996ee055ad9575bafedd2fa17e64872e84e0bf244f3b18e43c43e448980c07432f1b06a361ce937caef46c95775262015005236da83fed12858c36f5c8a147897a62bd7c1bd029ec1dfeaace4c90f62b8f3e9e34ce816cde1b28ae2de0a7e621d9d7c0cdc35355acb109316439f59ef113b227f235bf7e308befa48486c1441ca82a2a6cf1bfc26ab6c8490670c15f266e40327ce35e5e0dbf64b249d8f4fea41a49b30a108c2930edfd95a21044a18402811641327f9c7f87c6ddcf17" + }, + { /* i=6124 cDividendBits=939 cDivisorBits=641 */ + "03ccb96bc4960224b0f00e3a0b2c9b0b3b7263774d37479a5fd598e3998b59d37d819d59669d2e79a937041b25aade583bff5be8a7229aa88ba886788572f50ac7e1a446ee0c4d5777be98c6719f4e5f53ca3b150fa85358414f9c452dedf3fbad601a6a0ddb83f2db89be732bec9488acf411e68ef3", + "84e21c8ff73a8b8a7a64d812ac289f6706fe07ce8ad7557482029e1d15738c76d51c7d2d2061ef77cabc1a6b8803b850353866c4b735505493a354d781a1523888fe9e0856f95f29866de9df7bb5ff46", + "0751f4da3cb08f5fd240aa4a5aa5ebe280752dfdbb52f9925ca4ac33bcbdd0ae3885cf61f54f", + "7a23e9278cdaf7c1e14c14d509bb0e78484018cd1b10ca4846face1dcdadefeefc06cf894479c1b5da94ee63289a4096c90f146b9de2054d179767000dca2252bf08ea20508908be1e1ba6da63e8ca59" + }, + { /* i=6125 cDividendBits=1710 cDivisorBits=824 */ + "2ac32834cd8d4d64c170c09b0132dbcc410f5270cdf6796455bdee80dc0e6fb7d7d7dcc441d5129dd12111b7fea0a2a7e8b36846723aafc1b08625819fca38f7238b5f9777455180254a5a128917438fa5a44ee2689a0280b91a51bf264f1019154bac2b3fee2c3e5ea0acae25ee44a601f4f2bfdab13909d63333752a643cea4176dfd7d0609c6f47972e9d5cf9866a41cc714e8c8c13a6d3987bd2f38405408150bf50422799de64588804b59f97732d7a7eb85cf558248e498a0d0f34c6ad6755e7f48ccb38fabd0bba6af207338a84c1a804b4a3", + "ad9f646b52dc5b88b7d19013c6b18190c0cdc95a6be0efce9d366435d66cc7fdbb00d576baf9892d152cbf779618f6746440d3f3a02f8fa19ae58e44e1c5a49a3f2918851409c00fc4d256000bfe64d2d61e2369f3b5b69097a565324aca707b0dbdccca7471f5", + "3f0d2b593b9c93b42959f7fbc19e18610bcdb9bd2161fd29c19b00c341d034b7d421e11c79f0aaa6ea39a8a0704ee7511d71cab309cdee1048b2f5480065594e7c73335bc5da8b00699bbcf1eb3da65dab9a8cce16aad0a5f107cb63feba3edd48238a863acd9231ca3fa0bc4657d6", + "88a44512e0abf338296ee6d004b5b4cbaf4683ff01ac1d4954b7d8178a05644af8ef67ff31271eb7416df75f7743c7b51d18a1b09518084d0a5b50d4221b14ca5b5fcb2d25592fd70d31c6a8d2947f1054fffe09f0720a2e137e784a2982cd5ebbdf1bc2f52ed5" + }, + { /* i=6126 cDividendBits=379 cDivisorBits=270 */ + "02ed461c0de50957df49aa7f41522ad8aae2f3f84b3f39225b4cd912e5c7cb6d6fc99e9faa25a69c4c90f82909400175", + "21d7154c33c0638cf2cb81ce2637ef7030ebbde5dcbd85a77d560d15fa92a9f76229", + "16243cc57330173731a3f5fc7e73", + "0e0cf0f630f9718bf41c7869b51c578e1126d2824a5bc338e5803d37cf0e0f72bb0a" + }, + { /* i=6127 cDividendBits=2217 cDivisorBits=1229 */ + "015c74571f4c4773bab32fba1f8d24c12debad2b1dac3771034af924ecbb7f9310b7eee33b2057d48b9a81b67c20726ef87288c9412afde3f83a9b859dc843b7b89a394aed8b14c11a4f7c64fdd71571d85a1f0deeb9db18874da8c0c04facba3fb355f9d537ff3c80f9e2d9abf9818f1ed7723d04c6554401ad4658b96fe612aaf488d0857dc848cc377c40c18d7da91bb8b9c13fafc35dea74e38fb94908392fab06242f7d53e348470f788d7a46d743aeda9922ef5d5687ac1ac4577262fd2e0c2738395f625d78d72cb59b5abd332d48d882312bf58c527640067440025ab20d76f685bd618ea5ebcce4c7694b4607fcf9b963eb85f1b1ed1787fb35465c581d1b46de0d68dbfe6a779aad182ad31c0536ac687a", + "0bacbec7182b97590d64a9d8836b2be0fa799dbc40977f986c7a673b85b0a972009f3998398af693769c5d973c5b1f0fabb1697ab9d95c9bed6897a3201f1df367197b8ff7abfe941c4d4f191228125ce8220dc7955f6cf1aa2d08c2566f72198caef763ba99024a0a9d338a5b1a36070c262e4f94f75b22b194fc0b1b3390b22342ca2a0dd426159dfb26369ebdd8ae5c762b00c9a0e36ac9dc", + "1dd8c4ccd8102327044b0f03fec411192e85a1bb26eb7b3b9d6a33a22555d2528c7d9198a39037ce1ac094917d97f26d5a96f13e9233ff203ebcda183b85d22b8a2b75ffd8d8f1ccf7870928922468df677fb480c39603ecbb9cf59929ad369d8d41aaabf0d224565880db2d6c9c68a87214a75f02d7dda09d1d48e4", + "0a4682ea20eef2d08f555e12aa5ea1b616ab076f80d5e75cbe12c5ebc89f9f51e5ce4c3971288002d7d288293c7b872e86f1e0b48c3c3952c5edc1709f5de00630b802b6329ce3742795b58180f8fb2c8de738f68cfe9f1d1e8974decf75cc0a9a47608da65cce0b6d97be71a54520cb0e79724f34a66aa9e1b724c6c9c797ea6bb70740ed602f202695c2fce00d8e99933a8ff2f25fd8dec08a" + }, + { /* i=6128 cDividendBits=3480 cDivisorBits=340 */ + "39a1c859689036d47e5d02272f695ec935667b05ab567615a10f7f70cb9840991f0f8107c83d5c5c934ed23d1fa1534c92285cc380591493cf1ba382fa09ad5b8f272fdc8b22613fbbad5564559b2771042cbdbb2eb0bee1c11e9e03f60178e9b8abc19e18c7e575e352998094a260eb9f503bf97803abd17911a98622730b785a5ca514568bd0486957e2e75969ba956564eb3f9ed0423273b2227163d3db75e47e31c7fd6c026f34abee269fcfe3486d61133260e8a3003cd0f01fc88c3b85f4cf36450359a285ba5496b94e3446b02f8de56b77240444d112f6886fe9f4b379ba7ac812b45bdf837e4ad1b95a7f4d1daae6c8e60440a667fa7142fed98276be2544a28175930afa83153ddac44d80e42bfdf7698910e9447b6f249a6b5c541c500841425ea9f724796f1da9bf164a86743cf6a63bfad6d3aa76922cdb7526dad28261fedb43a873fdd5d2467d46f5638f4200fd9c7f60b665747386a22558ddb84c767e258f126ece9f72043f40a2daa7a62e0e0604b8c70412419c265eb5d75ccf6c2d6488523ee702696819547f02ceec675e980416b040254732a9bd6ba832a95342ef5dd1bbee97019e6b5f0b0ae5d2", + "010fdb9ec847a297723827e91aebd4a2daee3509e564cc7cb490067299f68f692ef57c077dc0d8d132f584", + "36452bf092cff9a9646b8f4885654accd6a8f04dcb02765e7f3967470df20cbdfc83b72ddf1ad775835cfb243ac0552824f8d92d8e5e8cc74c1bc538da011d49e81467f92c7162ae103f084596eabae291f8d0b363b1d6146d464f52e0e434bbee72b16beb8087ae8615ce90a28783973aa7827e92399e1996fbd4a7565389300e4984e6a3d8e45355ab590443a38a0d18b21bc023e7dec702d44ad1bbe1705b3086535447c1a251f54b46e6ca28c7beab604f68f458e46ccb62b8525f201035344c1ee2f9b5189c0d1a7fa695d3b92877fdac1e4efa1255ec5c9576cf8e735045ce3a01bf34a91fa6e461fa1cb6fc14b43255495b037e880db040080a06260800ad7d69d86c751059b5be1db8859121065f9239bd1442af1e4a90e2d7e3935adc311b07f8cfe57b4a840677582d927d72199aceb11be6ab43404d1750a181e42275c77aecc1f2625c4a76f17448ee368f14bde13e7bf94f69a8a9b44c5757f7776e94073e8f9212a434c9a74236adc4d3e6ba4666f0bf0e36f1d24beb9f3fd8883f71d85becc35b9b", + "3582cba253da6f80758a348925b425905163c26bd2fd7efab18c75fb86cc535865a3c7629ba8905e52e6" + }, + { /* i=6129 cDividendBits=484 cDivisorBits=49 */ + "0c3a49771f480f91b3b24a45694027cec1722e72904c0620bc27f2bb2dfdd0ecf409eba2e405f89501215d5d529e41a4fb24bf1fb652b93c2674099e0d", + "01edbff0f0143b", + "0656febfe5a1e12f39dbbcf77a91ef2d054c685885748ce182331fcd4e5f0de9791eb5e63d17baa8ec478c3b241ed1bb5b131b2f565c66", + "ff7f8c4a5a8b" + }, + { /* i=6130 cDividendBits=751 cDivisorBits=484 */ + "5ba86d3480b4e392b49d2c515e1d3b62d6445a030eac7e55fb3cc3081f1138599338089bbce6ae7dfacb1e9a2257c4517742a3350fe49c86d76a6ab0e369c26fd8977ffe6b64b875d4f072b393deaf010eeb670bfa00c3b5514a179b3540", + "09a646b4273cb66d461e0d6a586a5063bb4effc680fe1cccc3ec4aca7e2cf671c0e6af651ea66876816983b471fe7d222da65642f7ad321fe240c5bbcc", + "097fab2ddc0be376e6f230844ff1cb216c438e4ba383c2d78709832fff284bb68d01", + "08bb19ed54901efb59bbc62574ff901dc4cb283b4ab2cdeaa1931f7ea0bb057f461689af45e0c77326c50f5b8c2b04f78f9569e03893b60d42a75e1d74" + }, + { /* i=6131 cDividendBits=3626 cDivisorBits=2848 */ + "01f405cd69f05f93c482473f5e392b34012d905fa0722f3075bf7ee2af6fcaecb10fbbefed81e8ba068b372410f6a6f5d880a0996f120db65a62128fd497a5e00aee2fa2893e53100f268ac48bb9fac0e5f3820feb7933684a2a2961abfaa2468adbda1cc6111701dfbac9968e8092d6290fd1eeb52ee8595bdff5fa6e4172a0257be7e86917f11c81847e4a3cd76cdf819b1b6f203c6dd6fb4de65a2f4a4944cc06c1bcd7c4affb742ceb660ddaccde02729e83f927429290daa8bfa8a0eb2d08eec8141fcc80502f8f7f69f8c1da3b0bdef874a37e220dc9da20360d7e51d2b61fb6ffbf36ec61a09a2e375cd7f42d05f523277251e445ecd5f807184e6dabb628b096ede58c4384a8df5553176d864dd0f2f372c6652cfe2f6276208810aec6c8e3c498b521675854d78b28049634e1f185bb9dd65708a12cfb22c0560d93edcc6282da2831ffd9038f906dac246e0461945d1f4179a1ce160844bc1f24292f07248cfd7ddefc8113f027a2b14aafbb5fa62c8983b2a8b092bc760f8fb79104ecb88a8663ac55494d591c6e17dedd58fd66acb7a7f8f3f614e3fc8ef957049926d25abe1299af53df86781e0fa9493323676ac7af76474d6d0ab2d7c28bb58571b6387096", + "abfb5183f2651bfc732d9a67861fa86a86fc258e3eb5a65083c526b5229c367de3f6853ab49efe304320061d80f24c8a0c78c546ec73ea202930ee383d141d0c643e4caa1d18dab67302c562203b315514887f4b6256c001972d43613d116c054fe8a434988054aa271d622f28b6d884c41246107a9accd7905419013c52433a4f5f949457384ef4ca0ef2615573a09f552842d680c6cbbfd645e77cdfc204649c1e4c7f09a07bbc83cff385c971f6a4a76c7d24ef4109e61b6d7a5d1029608a4f6d39f23c9c27a05b4c91ca566ac2d7d07b5c000781f4f1b05396218de741129d6af15340ead3b56be20c96eac4b1a3e977e203f4b062d2e25db08f1789f74f90718b4c49980aac1e9ff2db09a1e4446791976e22e001910f07cabe50cd38419c590132f4e7216717339eb05a9de1097928be89f86de953c618efe31063d4d6058387d1c9648c04d2676c6ed162cc8b3d06ffb3dc09f2e182aa0f3e20b9b0f55af99e96", + "02e84c85d16ff52809d4343bd11c9bd68000b57301d239afa0b440b14776213c7d8d2a1bca880c1369525dc5473f0462393d4b403d6d76da5338852255a1151d8f573d27486cfceee2f49d74ca5d33e62971b5b22088c6514c6b08d2ac96f5f1ee13", + "28d5a801be237ca03db9402600fdd3e8d4f60ab4d3524a51b0e1926efb6f4c2721472e3d3879217595e782ab1b4cb1c65ddeba460aff1156272f2cfa6f3bbf1d3e002b73244f587174d8cabe93cd35f09e74d5b826312cf32fe5847b17671f5853e521c7c2b0b42397984b67f8e0fca754efba4049424804363845cc99d219993be209f61253600541fcbfac8f34f30e6879512905fcef6f2c91ad7db67c62258b133d7d98b8b5eed3f1de483fda9b0fdc39df075aebc07315104c92c9b1d7313123b140e2022fb9c7245a140b74427d4e5574061462f068778ab2b3fc2ebd1ba51ead869c5838c86504504ecf552b1a8fc5416ced7e01dbd326e1913d5ab02d2086b16a5f7a76a388a0d1abb7c74747492633f58900fe57b47d7ed00080a08aaaf385f1a79475cd3d89a603fd48c3859f4a8374a20f8762087837feef33ebd62afb0fc8e11220be21c9f36d5012da9808925b22baa4e366586aa74148820b000b0c3774" + }, + { /* i=6132 cDividendBits=1860 cDivisorBits=52 */ + "03984e0abd230498f8cb02f100028db9dfb2afb20c9f11f2ca77fc15e5145f5516d73bebe50a7c0af5d4415d5b784a66a0914cf48dece3e82b9765c78945b71ca23e7b643edc26a04ab518904011dc1e34bb323d46e9337817ac972b65470bfc84e630c3867151f177bbdad0222545325fb96d2b2906782ee06374bb67a0148be92277142e89205c9201f0a3896afcb9e6d93898aaf6758d410f0f064c7c2f651f36baa8b9eca1f184038dd55a187f179c42b0634388706e1ea8c63f7be64f63de1d1754be632de651c2ecbce2c7cf7a1df710b5b1f2587cf4974f19a02f5f417c2b267dc0a3dd1567", + "01711979166906", + "027e4e117b3fedb243b2b7f919f6b06e89f00e28d88e04b40a2f4a2e1d2ce6187253b26cb084e0e2598a72f84a3349400d33cd4a29d2987abd152185f9215bd0a764aab71168c93aa4b8f767e24689bdc9bd33ff8edd132b4cdea98195bba682d37d838b2e8989d2c9c5d7f065391dc51b4bc974660f9316d62bef0a7591bdeefd3f13ad961fdbcdb15c37a86a4428807f7da5ae79c3e0c383072cf6d73261c717045978068b9ef1824b57e19949cee78c62705754f1cf480901fc79e71940f2b0260935304fa52668ca43ad791fbe977c9c232005a5966e004fff6144f585b14f16c3", + "fc4bebea91d5" + }, + { /* i=6133 cDividendBits=110 cDivisorBits=44 */ + "250a6aa079a727744dca455799e9", + "086efc115b48", + "04645ed8b83e18b847", + "59e42b88f1" + }, + { /* i=6134 cDividendBits=3033 cDivisorBits=1130 */ + "0168f485231df192f106fb16adae010803bae14fa0422a3ee259dd68deffd0464d07ad8099422616c52e84ee6778b6a5874295ed824dce028f2aef791841d0e8b079706c56d63fb434eb93753f0f548ccf7972b587d0e9998c80636ac5c4cf9534ad149a9dbb634ec339ca2e7289d9368cf2944f481ece596c07dc1211181f86c03abf232315beda64c73bb7786d34c75d0e7a6d0392ec0d635f6fbc47101a5ca08c650983cd78b1d718230c06a6a302d7fe2f74a493e925f80fcc9758ffdbcd86192a09678555bda6fa6692b59918517ca1f9fafd23d559f595c1fb980f25fbd2213e13762b7bd04644078451654fb814f1c8e02e88adf653d83d2573e363e02e58562cdd56c159f74a3aa5701fa61f8c5c6601b3016189ee1aae4a62dbe6f37481cfdf606a4dab0d212769ad2cee7f62b56b1c233ef002ffc727c9c41dd103b968bd55be433f4df7f8747f8d7ad18b8b8adeb9215ebc5fa0f18f1750ff9da25c58ad41c7d1898e04c10c12d3821fa6854a453abc6319ba6b14709e", + "01faa1ad372f727db1994e86be038c2f426e98b7abbcb3d45320546f19261010151a903fc3e915e0b4f504905d2e2c28ec55b5bcb7528343ef2d720f8010b3a25016db2b18ceb9002325219558f144b029e91bb80d3aa9bb75d8ef2d4083a9c1d6ce6653aa78a6b4366857da282b1d3fb3ba84dcc1ae1d1f4a0af1fc8aecc2003b974d1b2a11ebbabd85c83f5497", + "b663d5fa5045d964d965c510a51d954b8889bc56f990542d957abb26966cab58c4e8f1a66994164da5e9f6b615fb4125ca191b30040f3b548b0779d502fde89e3a4a6092a7081221c5faef05b1f81080973add270b009fc4c3f9f7b6dbbd7c643917b56836b43fe7a619159a0ac0917ae6a92658582353ab97334e8b7a4b9660b244a57ba2fcb3c255200d32048120fac73ca14c50f52bc431aa07486571250e17a8b6050fc36efd76501572889271c0fb12dd33045e1fc2926e05c18ac360dccabf87d29170251e1cd1e96dfbdf9da364395132398aac4bdd97a0c051ab129b015b3be2b6ef5f061482920176f3", + "0a4bf97591a44b436698ac85b624b413a617e41d522def526c6d4d2a069e3d7aed1545dd9a21e5a19eed54dfec8613472dbdeb731f8be023bf2a8b1d3836ce581fb156a191150fed7892ab5bae7c8651cfe712f1d5855f5518e9439dd81eb6b478f4d1aacdac2b736f6be4ca06282fa0f331b611421f51345167902879e3ac5ad396f4715135bce244b3628b49" + }, + { /* i=6135 cDividendBits=412 cDivisorBits=219 */ + "06344dca1e303f451f2cbe9584a7da851c46fae66dfccc2292722a376cd329e7a8f47c3fab239cfb3814b5160c9a1f426d87ae8b", + "05794c475bbf61f0afaa69f96d8883c2f49c1c0b4f020d5ec7f8ce36", + "012229e7a8fc58f685a3af283a114ece4c9908e278c7e9be67", + "04922e47907ed24266b87b5ab14c4037b840f69ec9c7a6a5a63aa2d1" + }, + { /* i=6136 cDividendBits=1880 cDivisorBits=1359 */ + "3d72361e04df48eb6768ef6d19f18d399d8c6f07d6685c9ed4cbd48664a25c5f7203a4a22dc23b262362b86d48b7fc440415de25582f4dd2e72dbc2edc6818e92b5dda65dee1aca72ded47ee71efadafbf0132d2afae4a7c5bfdf9599e260e64cd5313efa53377f1a01d49223835bd8c18067761d959e215e4da10105ffef6994d94d66bd87112b6e15fa3e98c91881de7bdd5191b5a708b4cb6ae1be03e73ae291124aa97f1cbb75c09fefc5bb1059c34f8d3649afbe4e25d85a7ce4da9026e119c2652c4808a1decb78e0fc25102e1a1cc533cf8bd24f7f02f95a5565fb6a05c18024a9aa560c054140b", + "70e6db4896de060d36bd4eaa0a1e9b51ee8d8578784926cdd40b263331d43448ae303b13aa909655da970ba8780363ec25d2dca8e9c8fa6405c5514a689298579a6eed1d453c278a06330d7e42bf804d4e46c25195eb89fc29e50ca23245d34fe8cef86cb94206f7004176cd1692e11c075bfab0af451984c5a6d24fec5fcff71334f2df5db618e4ea18ece20ee304a7b588d1cd403383da98a3b61aed1b5b7e30dbcfb678d67df12db8", + "8b53961e0688738dee455a33c29bf9372ef6c8d442d075458f09f8ee95b484af672003835dd7af7e7588818c6792e2de773afba3819b0e0e74344e95e2daa303a1", + "3489c7ef85043ccfb4a902b8de31293bee4f8340d92a5809ffaa648bfeb0ac94ce17a37912e0f0f9afc7e69c23f802017137bf69ba9c000c7ae8aac2f7fa6312744995bc0e4833b43d965d12f86e51a57af236f00b6f7b52cee6f79d84dd32f78ca3b7a2c46e919f34bffef42e371ed57b6849c93101774cf3f690a17f28a49167b05f15c3cd9dede88c1d1b5e37baf81d39eb79d2059d1c3cecaaf734b930627d7211061d12ebf52b53" + }, + { /* i=6137 cDividendBits=1357 cDivisorBits=307 */ + "1cd01db343454f16eff030c6fe5cab94db45ada7441b37fc8535ffd27919903c0af3feae629203080d55baa5324a1bab44fa18cd80fdd68c0e4efeefe1eb8b0a2e917da0e81e3756ae6fb06e00edcfe05d3d857540b2223a637132a85e8f03075441d6b5f6081bdbbdd0d2793ca9c43a2ad070a13b298cfdd27da4eed76b0fc38dd69d03fab1e7e97f3dda821a6214cec8ce8adf0ccd50f9e2fb868bfa9e7e8a61d57602500199bbf6f0", + "0789ff6430b50f7750d1316228ca94d73c947c8cac1a6c9df060b7819a3986761252e64b069348", + "03d2633856b159adc6883cd900e6ce11850f15254604b77f395f17a65976f050140cb8ef6b0373e220c10e13aef9e90284d0a1f2949a869fdfcfe031f002ec18bcc84994f5be7f34d1354061f0136ad95e98ff6798720d7a9627c4e4ff537c258789fec98d12f06c976ad7ca6097a474a112d531afc2405cd5e649ab4bdbc145562beb9c", + "61f34ddab5b34f8c0cb670c382910c0d83198d706c1a4d69e8d3ddffed1522749acfeb6f1f10" + }, + { /* i=6138 cDividendBits=1217 cDivisorBits=186 */ + "7c71f143a563b1a40ef4f49289769b10f051ab02ae7cc128573cfb7b4907bf383e0a529de263c14744bdf7934f03f27888d275db8826733874c6cbf47c5a574ca37e4b5998efc328f4fc8fccd086c2ee641bb91c9470161cc1e2ab7eed4a6804a171caf72f033574b1bf73adf7f5cdb9ff898abe5aad786170f7bd6d3a7d662ccac51d327bfd50688708bd67d0e75c78d8cdbe792dd60a8d", + "98bceff1d2131bd143731dbd0c929557d42a28d35befdb", + "d0943771bba3fc5351ef704e09de771adcbea05f48c65c57511a792c6e99f1e30234a801281fff971b5827030f408ca57ee862cea65e14e55d03447285a3adaf65153f5541679aad583edd395fbecb2f749ee0c414b3eeea8f4ed1c8d98fba0fdedb0d41b34452cd949322697f8c4688b5c7b4ca009352afe561d4b0004b5dc749", + "965d26551e4c254b19b838632834f4c884b4dd259c681a" + }, + { /* i=6139 cDividendBits=2123 cDivisorBits=1415 */ + "0454c51d7ed8251a2c3e5aca06a3329a299ed1baee76e9897868db480d93b0c2148cd5f650cf80d1a4c09f7fff1093fe0fc9fdd53c2e62893bd4e19059611b0c956c78137b27144aa3334f0b036105b1763f256b6ef408efd723ae4d96d92012b903c086c7df3399a52a865aa7760cd6d2d05eedce64ee597e16977f94410308961576ebf62f731651105d5f9384a9b5fe4980cd772dd665a4e2ec7108f83740608686e43032553862cb20fb1b6db3e6c9a777310afc81ec76e703d8ccd186148b65d5824786861eabb4cba7d24777ccba4a82ff91cc1fadd7ba4a47bea5873fcd2c5c5a28e09853b3cf5dfd46b160fced6bf77d405b06b862c1adc08295d50872d0c01785123214a095", + "1a5b0a8969550a5b7f839f69533ed9464723ab924f5b31610b2413fbb7985c460b69e4a06a4eddcf4a9d79d8c75c7ff201e5e4f0eaa6c85ca980ba67d5dd3a7fa9899d0046617173cd66303c8d38642f5ab708582ae67dbdb44dd74cf2532d99f2811da593ab31f408ba90c38253dc428807f91d20906db432c632b4c5b903f3f97f76cd366c22a3fb59d3245ebd61113d20472b0b527b988734d9e3830e6d6248c15341970db2e5f8c11845313a3c7e52", + "2a11cf4a2cb2ac6c4f3659afbb446d6d01b91b15215f80c8ee349939bc16396ececa92045f081565d9717d0066ea9705f44562987cf52b906b4cc501fb79d71743f12b4c52b3bd1c021f6c279fe67cd0d0f4fb9aef31daefb9", + "02f99809683f95749fb6ab27b27b616d13777e801bda374ade911d0dd40cff9e930b6296ed70baa0e3720decf328c2d61086badc4d171b0d1a1fe85bd13e7af60a38fbf8da407cb3cf81a760eed6b945f47a112c502ab3b99783771717f0c9443c0c55dca5c2396e54117278028b8d3730506d9d9a02a9b3c125604f7c98c3e9c60f791a5be46c03a6e1acaa8d0b8881203c1bde8fff110bb0bf104b2e312b338d8948a91981b3b78a700620e15e9ac953" + }, + { /* i=6140 cDividendBits=2273 cDivisorBits=1119 */ + "26631974221ff96655183c02d3bbd4ee67497862fe2d1c6333427cf0562173e863d720970e301e0f484c47d32330ea4d7e3812456b0ce23c0b0df646d675b205ff7effea9e4582ca41b59d5f9152a5822d306416abf30bc842d303c4eb032cb661f8eb1c63ce0642632f596356682a93f1f278567ae156c0c766f61c22ac7e91aa308c6bc3ade12b42523194d0a7fedde68226d40260089015497e235e71554820a3035f950e8ccbf064b5e649ea2388fd3fef566a919293ac0a48d45cccb6317f70343d840739b8b64bb0d3b036655497c1b223b5f7dedb9d67928a846000e9bede8e769ac7f20088e1b6c64466d5528417dfbf288b40a2d91349967c1cf45887a5a3a505dceef9e835017f59b7e1e8b460b86ecb64495a6a029142", + "15c76877919a75cd789453fb61f816febf2e9f37ba3d4c5b36e83699fd0c1c21a59e108dec0a8db73e678a7ba7451e3fd67f9413fd86ad6611a1306303574a45dd2357dce96bf4881dc4d440536d6af87fbadb91e84cd0e35ce3d87860c37c6c7868db5e4867aee11b471ce27833f7397f4a8cb062253180fc4cbba4ce52ce4dc9b28faaec81011b6fdaa6db", + "01c338675707bb6dcd565a9050662662e203404ebc57ba12b01d7083249d56bd40b67cb8a29501eeaef20d40fd10c02378e69609d59fd4a34406755d27835fbf74d068de6ce69164c08ba74676d5ed25a2880148d808836a6b65374530edd8c23a7cfe44b4990034806f6167ddf5a3c4d5c0d3b94bc208140af419a75d15ce1eaba1091df26787d3c2bf59d5cb984a4c94", + "1172a95a59ca893e2c5a8870daaee06682351760012b1e3eb6028e424d749545c4adbdb9627f9cdc03b2ecf4cc2aaae0d8c279e705eeaf2610c9aef512c41e3432883e2b717c63b151d8f735a496de9008d14b050750b47f782b85e428dab68b57604c1a16ccc800627cbef8b4ad7003a8726d37915e71764dea0a5167e8a2b441be482b21c9d15992c316a6" + }, + { /* i=6141 cDividendBits=2001 cDivisorBits=1218 */ + "0100078106103bb969283053a715b4fbfb63769e8325d8b21a9b130272d2cede6e2db750ba93451b6b7328dce45006ed78e1c2a408bf6e80e9b4043ee42f4a3195cc00c73d1f20c59de7b6903f6baeba9633f0507d9307f7d93fb8f65c7839e87ec6c480c172107e23cc93f59628d551dc27a2dd55776f2c10a421fb3cf7646c506c5279b01618be58b96733eb6cc244eba88cc10e0bca7c2bdc596dcece0411517767ad1133df3f6db3f0eae54ea86e2a743a0fb8c8a1508889d88e0e291f286072949ccc25a50d47272440e0985744fb51f04704c7e1b23f8b6bc5c8ebb3dcedcda502edcbe6303ecaae7ef866650f067188586ef8ab24f85272", + "0295996cf3994ba72b757de96292c539c600025162f673343430a44f90ebf4175aebbe349acaba0a36664c8d52b613d919cde22ddf6b40a6cda62ec6190f6a5e9f443855aef0e158bcc535db987ea2bc6673b95807516447a61574a3cd7f8494fc7a3c8fde485f174cf887acf46ee075f1883ef37d73d8802bd15c4d667d9a22c01132fe4f55e053105c1c77e3c69834f85e628c90e166a218", + "63117a8b7ebdce0dfebf993c902e861f74f259fabec9432460a6a2a31a2c808f26417daa5a0dd4e9666c562c3377a99808ec3073ba4f7a6e93a3ca294180b8c6571ec11a25a26cb10d28adca312968037b7581cd9a1954dad919e6a60e88cd7ef45e", + "bffd4a591c6b5284ddcb33fc83c7ba63b30c9506b941520ff41155e05f0c8b95b0566cdcbae2d59ee9458228ac597b181f71ed9c2e48bb11a62fec9532134084a20d098be811b4d55a2247f70e76066e861a3ef1f555e775d4f23f5a651e59af6385f7518e9bd9fe4ce0ca459335a3f53715f5b8a6d14ce288c9c2106e011bc399f62951ed00c4d42ca3c2b35777c17c8783b7918ef9eda2" + }, + { /* i=6142 cDividendBits=414 cDivisorBits=405 */ + "28996ac0571c823900ec6ad152ef8b9f3dc1e5f55fcaa98e33b397b408c6c574357cb878fab531f0eef1689408a658bb4a1c54ce", + "011bb37beeebdc1c51312cd847172b4397fe6b852711ffdf87d38c049b221c3841f6201ef1aa0dd7a55ef10ce7e77d31a34339", + "24a2", + "a5be50c04cf3aaa0fe0676b0ccbd17cbc7319e894a33a60008734dcf37af552273cb69dda2db36f16e3941584086eb57c6bc" + }, + { /* i=6143 cDividendBits=3281 cDivisorBits=870 */ + "01bb5fa5be36a668d8f68a38b9537bc37e331d39b2bd1c067b49c9235889b7648bbb6c0940add3b11fd456f49bf13312a6d954ffa68a80578e3f73cfa66efaabe9adb2ae8e52c2071815b6ac94e180202b22de18741a6ae9f49363bd76e1372fc814de1c570b21cf1825d3aeab662bc1cc7859aa8f649f7cbf5f242f9e9301b5b35ccddfd8f5ee12240d7c347b1adcf27765ae31665134d2010655c709e9816eec1c10093290375e076323e48ae5b72d92786c29d44e014a78bb31fc0ec25a48c81a7a150868415e3e915288c7271fa7600fb36d283805db1cc8c1367d74ddb5c1f851c6a6ef8604312d1b75a5197702e470ce1e35cdb5613931cb1c0f6701d60136ecdbd1056b54697c5616cf6c18f53e922096113ca0faf97dca5494f7d03127c91e88334a530127f8253b7fa9630d6466145fc0df0df9838eba631140dc28a967d65b6458fef3641ee91ed13747d593a52fde3b2643c168456dd733cca8ad977b0c368437b1c1db21016fc189ffdbb005c1df817606ddb587c0a46c52990cbfc75d7ec170de61732550618196ccc56ea91fe4eb5eb57d201c1b", + "2f58ce93f027bfd2e3e11a4e1020a95b06d7cac2506b53e7283681b61f0eb1b02add6242780601b9a374a9e0a65f3ea05daa6768e9559b6d4630d53e08810a74aad7af7182c6e6ea55654527545f25b93213d8e43cdc8d223b521eff02e51bc80cdac0d167be2ae58a96bc5d3e", + "095d46f47665427e7c330e2edf8c4971da80fc545c76ac36ed374153026c5d0d0ac97233719b412ca8b15bcd589aa57647493ac56da76e693387f30af3e256721b74a5e4fc4cb8127acede59bc9b58ed44be79d2341373a4f50a31df81ddb9143afb5eaa815f3dae0e4b9feb05f5ad6a9ac39b6aa68155a978d8bb0990e17f6cc58067d504b346198fd595a9e97bbd6fde4c4628bd4f2429b6872c051341242af2119f48811c4600113014eee15caed46980bb4955e04d37f2f4dbd51462ef6bf88d35b52fc404a4a528d8495fffb6ac28841bb2c9aa6b91a3a8e1e605577e029831fbb479a4cdafe913358f3838894e7dd723eafe17cdde444d3e2e1bc310f3d87035126b5dcdd0282e6433c37e90ee44c92ada27d2865d5aeb0ccd2c77db146c6c8bb7bcb10dc3408af04679d1", + "1b8a6842fd6e04d7c70528f8e52d8e5ce97278490e0d5f43bf92de00f56489df84e3ff40b5bd5becdea8ddb490302bba768e41e343bb8311eda7c7c956d4a21f176c2de3fd22263313169d508703c20b1751834bb4cfa0e3af0eaeff59d8e9c11e89a0af25271de4f9c651ae7d" + }, + { /* i=6144 cDividendBits=1076 cDivisorBits=939 */ + "0bcdf0cfeaa2dc5493ca0b508c0c8d82645aec4e738ac214bff63419e184bb481d564bbbc05b631ced67dc4bc3813cc3a369e3bd6d73f4019cf1c870e88f00e1493050edf6dba541bda4d8a795db99826e7a0e4e640c1fa79e1e55ab115b5438b0ddb56bcec12cfdc89b086a3d296d06d9265ebc9808105dc63df770113256250783418df9c231", + "02ebb8e8cff736247e36413683c35e25161d12e46acb1de0b49cfbdbfebc8b872602099df637d4355e133a5eab152a9c45ed38c1ec382eaeb971c6fd0e79f08ac73622564d3943b1a5730ae67e2d660ed469048349a0035c4302540317d9aa4ec95f2a6441f326c268b1822b68b8ae4283f240d7206f", + "040aa1955f0bcaf4826b653af07fb2f9c4d9", + "010e1ff32e1504b0305b623dd7d209bfd2f27205b97345a8094aacb8efe2b269af65f12be769cc9cf9818b0b86189b9679177216909c99568edcf79e9176bd1992c3b7d39be2e01e9d6767f576d53a5f81a2f18dac67c0f0d582469ecafafe1d0c7c63236389b89baf1a78f33b08bca2646728d3481a" + }, + { /* i=6145 cDividendBits=917 cDivisorBits=474 */ + "137079c6706b80e31a07a8bcf860b3fc82e1acbe78f0498e12aa37b158a8c586b82c85ca5b5eb42f446e0f545df2b9da04f537c3b98b9197a86c4859e83a07469da3805c21445881d4f0634d491a5f1d04aec6c1b5ce664150fc5b8bb866a19ed5f0ba64a9c893fc2be3033e027f3f2c6e98e9", + "015fb539489fadeaf2e5e969d9473707055e671fcf1c31a93faeb3f23aedf70c99397332aebfc7e546b9374f89da2e173d92b2f7523fabb22d157f79", + "0e2642c6e31410b12b11940b5997b297d0651c880e1bf75d41934346896fad75c6461015d279dab8bcb81f13eafbcf0b92412ac2cc9e5b74", + "0137f37cdffb7f7dfd51c27f31c68ac21952365ae4e50599093445bbcecd524ba39159c4393a3e26e7d1f00d884bec5081e401d0524df3f101b2d315" + }, + { /* i=6146 cDividendBits=1578 cDivisorBits=607 */ + "bdc2109ec2b61fb05ec1c2bf4c96f59973ae754bfb85b7461b16e5716e22b4136f556c166d1899eb908ada20440d0567beaf4200aa9181b84c5b51aa4991718fdffe84c3833be4c7defc54653a76b230a00f4bfb905ec4620c62b40c6f87b10a2210c2073ec0b1b2d41050c9a900129737dd2a7e8508558e96937220372edce9a9c63ed63e15007522b70864aa2cc5c03d34748514f031d5aa4c903279d9ace2163e0fbc9cd0318ade8a03ecb6577238ecb533397e9da7232e47958820da408ef90b7e201e", + "27ea5db6f21ac897d9323f4d42934d1ecf9c51d8f452a55785ae80cc95e55cc804715938f8311c7da3de8bc73cd36c8dd575d82e65dbe394afc6e16af1b229223c6a4a66c0983bfb67a04043", + "04c105d70f583c159f327c99d2d9e83b468bca1cc4fbb82359334b396d1a0b00b7c76a475e67b0411d5787fa16601af9fb3c7e2a5461d89ae711f44b7aafe52e3e3a51a3e959c50612700684c8cb9ec1eeffd30a7ac9b48cd715049597657feedbe9d5e3bb800d98e341d3ed6979ed7e19fa6a5d15cf4ac9ed28", + "22b86c918bc39e194dc6b9eb787faef41cabc672fb424f8481ad19a8da222c9790ed10cb32ef05b576748f6a8be864c06b2efcc19c5b437fbf9d11eaeff0ec3fb5bf22de08664c2eac5b0ea6" + }, + { /* i=6147 cDividendBits=2413 cDivisorBits=810 */ + "03a0dd633f17bd72c63383353af7e330ee223541b09ff96c9ea9e602fe4257c3a5140c50db2af46f5133aced88276aaa9b2968136e9a730124780a73469207b6db01a51ce24f9f0848248e7c09dfd6ef0a8580830df1d64dba7941bc5c0475479c6ac1c125d11ef03eacf8a00abe7c8ed45e72fc7b4688fc139f48268f2ef9dd1d619faaf6173a1b8a29117bd93ff63823cc8ee5a11f9151a8fc733e5f3980dcfbfb8f6f85bbabf322790f4748c171b124a08d8b7723cd6e3c163f9de79acd356c02404b004f7c0e5333ab82c74f31bcd1f9dae56b2f2a5746313f024e17a31c88e1dda0e26765516b4f77cbadfa277967e18e7cc0abc7d428045bbe0e372da9e5ceaeaa08e62889bbb19f0fdcdf174cdc3ec8d611a4a0f3a13508eb0009eb2eacc4ffaf12a03b8886652afac4ed", + "03859dadd24bef33b446838de517e3f109a3a29526934ec164ea347c93f69c49e8e4457ddd070ef55cf29a6d26d4e5263c6db3f9b4d9d844cb92d9bca5c901c1afc3b6bd306f72b5a8aba6ab54e83e8bb457d0cafc31fb432e4fcd99c3a73d35dc1a4e3ea857", + "0107bca537045e26675bcd0b193cbc899166655a44ee13144e6b0dee4d54331bce5e5c545f3ddf021d5d2ed0bbedf94d54c6a974280cdc411f44c4ca4d03730046bf7c812cbf772552664b11b73a9604a7060f42db695a772f3a509b1950129d152bc811349f9c1a0994a897e29d187e24ded6ab79cfd9b01ac178e2ada9e4f4ab3ab4ffa19a06d5bb3534fb488094b3598d6eed7984757e94a46d52abecf46374a4650138ce923de7418bd6ea4dcb2c81cbf9c1c6cd45ef89fa6beb9ce3e5778bde40be5d931c06aa", + "019ca0f48449928ea580469aa7eaab10e805b28829e4e2138bfff0e04cd8524ec876ee4e366ef2d3809de1d5240ea66ea117af891dc02f1fa94de7eb70cbbd80b21dc38e1b310f421ca819d515fb7b6acbc828b689b7d73053480b196157af597bf85ee8f127" + }, + { /* i=6148 cDividendBits=3610 cDivisorBits=1547 */ + "01a404ce2017c835d430afa7a5bfae859d391792bdd12e732613076a1a743eff8d5f3c0a6b2957de894d958b4ad4cfa5bfeb62f722cc98de06b1a436cc19f82bb9e1c80a1f7a506777deb2d77d4e5e04800bf7262023bdd2c2623e171128bd37a5b0b2e5fa4464025f98676eccabb7aaa65f5d7b2e383eb4c79bb6b00bc899d260191106cbaca1a23d407c10c374db38ffa48693d8f48e86a1d98a7df72ce222fd6e55c7b768eedc14ff44f7951fe8f49fdaa7ce96310f768e99382c6112907fbf3a0b769087fbcba6daac701cda51714b557dd7b6d109e59bbf3d03713c4ee5c03d4dcc0bc89dca4b8dd6d24573c1acf7eb0614b1431bdcdbf639fdc24755cf975b416177258e7607c110ad9a9041bc3b722686361045ea6d5a34a1293834952129dc31635e208db904d73984f5a4681cfbfc1558ab260a5dacaf380d1fe665693a3cd2312261a49e859e33d728d8ede726cd7567ae170b66f7d9a0696c48dba539fc8ec401cdd6b1ed0a798eaa9f930259d75cba6a37772685b85902da13af07b4ddeb4221117d4c7274320814706f0a079a0f919a8c201beeb596db255998e981c4768b093a5d9a725725af14116ad5eadae662114fdf528dc11fc3da73b333d211e7", + "04b772cc4c9640bc488b927306529c3bbdc0a5c411b0ee07880f96080f092c44737e792aa712e3f66dd9c4260d27e7174ed8fa78716e6430fc2945d6bc323c297e8c5e62480030f309da831b905060bb606761ffefd85c45b54d7cbc45cf187d3b5ed7d33b45614f7a85be06f2fc658fc01d745dd3bb2c51b9cfe46432503310d99c096b4b222de029b82a891beea6364a978fdde9492ab150fbd8b9d31e348cb5b1bac56b559f5262eda05d5c0fee384ad70cb34ea989ec84f6a5c40a8536881450", + "590d1f6f8fc71a921daaab1c0bdac121fdfa629205d0f7623e5f84eb9e7225f9e41f92daa0155e3a96c9735c68d580cee5479ebf8aa8e941a1003f2f7bdbbf3d059186e6a98fa285f06596a1584b53fb0d2631614b5c3df4091598afa8ffac7e87248d8e9f081c2d8d442d4f37871a5134c46793d51e9f1021e91b41ccef49798e3498ca95bd38e2eea7c2b4e0f73240bedc55b90fe3d3b82a0c7f54623937c74f227b0af4f55ecf15fdaba48b41d8fee47e7e67e6cba9f065c3e6488b6ec52e0f57bb18a079bf413708b28116ab32769a56f111aafb4d002ab5818e8a48c5f194870948d8688ff9fc0b7b4c26d382fd5a7cd675bdb1b7e023e9a50b72ebab1e5fec", + "01abfeb631e600ff73ce99086808170d608bc3a29a654942984ebb366ccc160760d3a15942cd1536e63ddbf293a50388992dd40cb238a88a879f5aa9c0628078c6349eaac3ea8222824aaf145cd7ed38dc94fc12c323487ef27b64b5c3075e9c5805b07a6e2dc6813179548cf6659ce98e3db67196a80c346b713d90e55e7181f1c8561e2f2e695273f33e4df73fb07cce2ad9c45d750971f317ce31ee59957ff9060c4222730e9070934e9f735dc51988f99dc279d31764d1e8e4c9c2b49d75a827" + }, + { /* i=6149 cDividendBits=1224 cDivisorBits=369 */ + "0f52034780a0e2fb695dccdfc77b88e648edb637f452207209d5c5bf4dc44c3701e6a5fe33c9cf8084e5d4d5caa33fa20ec9dc584f6ad67ff35a82b887b5567c95bc534f1068191754ab003e69e273882a4714c312fc225aac5a299c287350a5bc5879ca4184847d4dcdeecba96b31e9626939b86ccaee06125512a2cfa4fe564a6c83e9dbcf2ccfc3df5b6233929d0937ae5c532af0feaba4", + "01a2e05d8838d5c367ebb3a0c315c8bb2646aa52fa79cd82122f4e6c4b16ee461993a6ae585c80dc4c20d3456915d6", + "095cf8f62457bb951fac4075edee194911a4d3a63ef42e3f579ff025df919013defd43a0ba0743372dcad0c909a2223da5b090d6e3ac0019a68aeeb7ef5b2a359caa1be47919164ba2c2a42714b40fad1e5d29d5783ad41b1a2c57cd07c16df790555a5fbfe4f37467e06a", + "fe43863f259f35fd8b5b2b002aaaf89805ebbf94832f289f12dd08036183bbd3460c99f7037ebacd01a57f466108" + }, + { /* i=6150 cDividendBits=2668 cDivisorBits=1468 */ + "08f42c82b5e7005acd3d3f65198de9b30d36fdeb77078739ce953156c823d85c665288389bdd66a03a298c024eed395bb4da9740defd289c1a133e522e26aa77b8e25a9064e301b926ee13aa97aad277b8baa2379ec749e04f26917718f1cb913f7e011fabbc7bcbbd6daf29619ceb981fa69c05ca317c4aebb386916d992a548742dc2234fa4b24ed36b9f1ac3e1a045a20a78c89457ff0d3d03e7fac2ff9faef5aaacff25e98bfbb9e54203cf12279355a3e2dbdcbe4dcc6971adadd9afda072a4bf3b508538998f98ce9e2c2dcde8eb201ea9dfb8a43b9e2b79ba850f71284e1f1dd17d52dfdc94b77a6080789e669476b2e22f632ce9e20ae6e5fca57864f76b0477b841c29411672296df5869497c1bccddc522f1a1ed4a224b42f9b61326c7b30ffe33c0560d03c6c870927f6d1fbc49b8f52ae2a24da4dd5adf1417c2113208583492c2258943e2e0a6fa", + "073ec96ea6da7d5c22891fc1b49a0bbaa78c24ff046354906f6f5ffd3bb922b7f6e8c9fb70181deae40dcbfc6f8b84d58c5001b09c87cee3ab3ef9821f87cfe68a4b6e36084566916b685e5d88b95a4b43fdeff203e48ff765b057f361dc7188b13fcbe2441769479f6e64298fb266037c15c4d58cea75bc062d3f9e6cb324a355628a27539cac4a94869d16b597e033aa9fb925d47869ba6aaca696b226cf74342259d86b761b8ffece80655e499d6e38b50cddd728d118", + "013c5e6365c768d81fac80f7f51a2ee97be28a19e211b8e0be37e37e222fabc3ad47e336f3e45e1720ab22f6bb745edd71e926cdfada0464f822e67299b0e49c16f0c423641c7acfe3a32fcb99169a6c166a8e20f5e1aee3ce31d61de4d068101775397113e2af3af44d2f690a3d2c8051695cdfaec4409b558e3dc6623db16d3b8df1c466fb9535362990581b8fdc471cbfef3f12f861", + "047b09cbb236baf9b7a2f7d89738614616e11e40ba1e397a0e433757cd3a452ad96b654bbd7fea191c9addee852c5b7f8e65e33d918729773e4c155ae417fc29d8e9a6e329637cdd9c2b181ef2e81791955a35776f2cf849850e276c9f7f810c42e6987201f1cffcd03f56a57f1852028c20f76d93735b47b20d9dfb72dd39135542e25c6abd95ed638672d2d9a441c1336ee932ebda5f1932154917dd23c5f76189c618215c0ed4aa2faf6ed643c24287cc770a362a2ce2" + }, + { /* i=6151 cDividendBits=840 cDivisorBits=716 */ + "83b85a5e1dafd1387f0c2ef4bb08107d4f39c45cd81ae88a876be74e1ff95be1ab44a5984e8086cd5154ce2b01978df573a438e2663bc86145a68823d83b929767ac1ff225a9c18f2a9b3ffe04ba87d127215aa7597adfb6d07bb93d263ad43717e6e89ee896020aa8", + "0d71da5253d6b5b9894b4bcabb474919c7bfebdbc884e9e42ad3281bcd952a96ef2441e4d825e9670b2860e81682fb813bcbb3d6da0d828a4ae46ed547ac977508220001777a4e9fceb71bba2ea00a73700bba41cd33a46b7e12", + "09cc121c6daee636f298c99ba057c497", + "02fad44aaea5b8212cfe8095914774fe35cc1173cba4b2372433177991502ddc24ccf5fa200a0241e65fd53c7f3b3c16235ddaafc62193fd3a228ca840f187d6f9bd2286dae6b6b2ed64a11267c69255edccd3eb855735f6e60a" + }, + { /* i=6152 cDividendBits=1412 cDivisorBits=283 */ + "0329d5c0b72577ab4611e72c4e7a0801dc378ebf17c7e65a80ed9efd24c9c02a46e1c4d4647e7da77a433ed9e4bbb3fa298db6c506f7f39d87b2f057a8cc3a47c02df422a40f7f5039ee8032749fe1535c24cbf58c17d54610073ee4d707bc04d6e119f31d032bf94d4737fec767e713389fc43908200460f5205b7d0ad27610dfd70b29625820522260e658910b2e38b7e74a2ca45de389c863c70ca622c651fe992bc32b9b490510234c3ef2ed3bffef", + "92956320ba9e1f8fc91fd911004b0d36f66783acef86d32e042028c877e51674310d47", + "058654ea5298cf46765e794b99bc1a5afa6867a5776da12e379eac7075a3d9a107ae7677bfc294e1fc4124b12b36a5c2e5e93fdf959b50aa7d5371e91e81d687bb90ecbeffd0277aa54e073fe2f4506e52543c95c5e4f730168d2cda8362460f50ccc562939c2325352f5b3ab818eebaebb9efc8c0570c423e159b5b48f5e39f5e5b8fa704efa9094cbfc240eb18", + "2784141e012c01271bf05823ed5131df92f1079f691fe7f4fd089d680ff3e2e1b29447" + }, + { /* i=6153 cDividendBits=3209 cDivisorBits=3014 */ + "0166969825f22a25b0636b2940388f1a215be15ebaa447e3441fe6b716fb511d98eda5bce608727186ea82c1f52d78a7d975fb83000009950c5a1eee9114a304e19fcac853a4293e90f08ce67a288ba107a87e91d4c44c4b241ea8989d4d2051091e6c8482cd73b14882bf7826dc2c3dfb03086b8bb5ec24b1e360970972df08735ae9db6c8d6b5cd92bc2aee343cc35596bf06e8d811f7a826c3682f631419366a0b7ee08b8e744b83ff1149cb14cca3f62f2c245253ab225cecde2836e67402102562de56d93c293049b76cd9d07811275ec309864ec8c328538c68149c169031014ff8effdd68246deea21bdf57faa25ef674361af9e6545f16c81d296871999ae496ec701c983af25d0872de5ea53a6799827ed59525f1947d46150240c3ca614bf6ae1d60db41802366aab8e648eabfd61a6d876e2e9c09ff375ef54b2053b77dda9b0b0ad06b9995699b6f7e13e9831846e3f1470b4f3faf3d960ae6eee5870410bfc25efae796e144d2f57c1384d60aeb3131559458972d0edafebb3592bb0b5cd8a0320efb9ef9848b85a752b56d", + "09421fc0d8f76e4a7668719ddd2038ad02c579e998c61cd3c5a8fc9ab74648cb3a896c87e24f2c5d5b7c793ab3f6758cbb8cc79f0ec4bd8458ecf16c6ae107633584d646b62f7558e62ec8abe0b432211ade0e97971cb2b63b3270ffe0aba5c7d344b87c10b8b10cd0a20665821af51e578092a16c96f42c0fb3e3ca429c6a78ccacc7e2d53ddf1959c912e803e561ecaefae63320c3376b5c4d0a34d5e3e7d451edde6ec09dcae04cde52a266fc0acdf71e693fd55ac5465b1efc70ccc64800585748e40f8df4b6fb93714f2a23cb2b9930405de777e8bc7ff9b4d66b524ba482ecec657c9b1c182e67cc245479ef1475e4534ca7cc57c67ee970dbc95726c1b971d3f552e9326031535bab55416a83d23c91666ffac79eb43f3c59cb8e873ea91e29902df7caf4a75596729d7d061a5f5ed808e0ba5b83ba9a2b2a8e8705696fbd24036d1a1234de6cde1e0c454e11d924363975183a31996256b4acc6e34952ecf252d58d470c3717d1585a131e77ebc483c662559058fc", + "26bb4752a2b253799be9472543d54d77adde94691ab61d1590", + "f69e0371e67fee47c69094e9970bdc5af1aad562d0ef0789fc35e4d728e35e9288ffcac568189d91474f260005da61cd62e734f31f4fed14bb3c4d552d7a837a0972177fd96580bf66797008ce3279d8c9d8e6d6b02a7a963abb63edec7b8a5206bd2897c61f48ba13456ffc85a8aa918ba193d246eb66008eb74b0f59e26b1d3ddd5e166442296b0d75bfec0a026f7cb7ab1723727630172855f375b3c871dc711401012ba402e36cc4c9e08dcd31d10f01be062fd19a039ea41c0ecccc55becc4bc8fcea28408f3a4856bd14048527f8c17bb6ba066d12fae23456d944028d2cfdb54261fb83af133cce54cf5c00aeb49adcec581d98250fab0ea1018eafe198ea76085f27d4ca9771d26d0a22958dfd1c4eb7e3c5763337c85a8bae190cf801e05e4cce4fb8759b6a22f8c5c9975c76cd1082cc8b95cffea2dde2cd58eb3fc7e6feffb7b3b7854611ca7888a39fee0c9fb1567247bce64c3877641ff1b3c733d4c580fdb0a5955dfed8486927d7eb5f4e2cfb7247fbad" + }, + { /* i=6154 cDividendBits=3834 cDivisorBits=3685 */ + "a1efe5befd27687f54b28d201056314d96bd250427fde645c92ed9139e8da2a0df4ca7ad4d68ad7fb349c47b55486ba62babdce245560b24fc2e95e4362cdab18deb6817cb52cc12767e72890f253724905f9e1072ebada0f89b59a20ef7078c9c2192dc5cd181312d2dbe187d7e0ad8684200f4eca988021abd94c53f0a8c6f8f291a93eed5b6d2754df31e16d4c9456c28835d4da7a31695b1900b3ff5f48c4580d817fdd0313541e13cefc6712c98ff88854f152aca565b6a0bc7b0f7e083e21607ae806f2a4e5e2373b43584270730921aa4e277c5f2da75fe555e677a4e2f2fe66060f2132d9d28c1f51897564d4a075852696bc9d09af4939bae947c05a497520c376a6153d0a49329dd60ff292b07a7d7f1ff3f86fa6eb601148f3070f563f22150c4ad73680a2fc632fcabf6f1c39989780f62bb686e90a2ecc492f2673c1e1238136a82bc36bee46a05371c47ee70f371a8dbf136c87f9066e065bdd1c08f8b2286a430d733d362fb4b7123093f18308efbcb4650bdffcde64dca52a1c602fbe3c514f2a0cc0a4b5cdd6a25114d4ed12f2003cf1ba9fe0e5bbbf133b303595eaa2629c62b1cd4cb5772f992869a1e09a271cd2258f3885e93bbbf5158596bc805e592f96220adfbfadb2f72a2c1135525f51b283ebcd045f66be4", + "04cd0e0fdc620271dabac68731bdd16c4b0cc2987b49d7757ce507aafe12d94fc66016edbe6e5f50c507d0e9765c85841cb0dfe77393b942bb65af8793c400732dceaa57d4e428921465d5cdb223e95d990e0ba09bb3a6aeaf8e96d150f9f9cdcaa953ca14d7e1dcfa87377cf8851a7c003ea5cbff63241ea2a6acfef2f18fbb25861315704a97720c2a53764df5b297218c2973bb729827dc9a51b9388d6355eec3e677a78128c76c073cd1af64c1d22031654455516dd4d2acc001d94d69dfd6d71157bebede9779316cacbb2e7c503469f6707dc6b2da93559ab9cc7b94bbc38b2243b684efbf39babecce152ed1ae9cec95102b4243fa27135197332a20b6edd4e8784afc36e722b36298a840f59e41678300b2e83cef7ddf1372596793eb59a4d1d4a1ace158451df21b9ed969c3ccb090afd5abf6fa629c99473b223b5a166d23177d7ec2e183475a1b1263d7f2fae01f859efc66d725b50ccf49a2e17fecb3f1c41299efc8a9b82534f645ea0c8a93cb1031d941a68efc62114632c8109be6baa31827d129a41c8fa28a1ac4618cfde24c9237a14dfea9a37b911d35dc42545532ca8315ba99ddad78e33afe748000e1c303392556d116fac03b43706170ab412105c902b11b2936c2c", + "21bada98e6e5fc6d5feadedef931a71a2e715c", + "035302301f3f9ef89fdac00fbf524b26027da71046127e0a6026d78a19e2fb0f5f5b95a62e96a80a767f65eda887972a872d3aa006e34fa5ac7787e2d6948ca742b7ad16cd90c7d646eebaf7349d9d94623a6baa8c5fc6ad17f3290fc5919054bde56318bb6a5028d1753cc9591e695d1d8d98069f341e31ebb6088f6a3f1b9176941b6c152a74e710b1a9a9a18a94189b98c6e6738bf51f19eabd8ed0a6dcade6aed16f27a47e871614e97abdca14cfa04a2abe33b13f76e62dca51f9d313a06c17034a5f59e333cbd0b1bd520e156a7b08402d6f29f7998e2c3d82727d905502f933e7c0d2d8eaeef98c6615c09731a7bf86cb60fab87bdc9f72afdd71870d3362031df40f5976659ba4ce5e369bb26d09b3d55c934d262c6ef2c06dc546a5fc1084ff2617a48a914390321ed200cd870fea452c65321fe38857d64173f304f9f8acd926cf4abdcc2bae2fffaff71489b18c9e9d50729e3422a5fed8ca0a283b66f1dfa6cef3b83816c50f444eea93f9761889462ecc3631c7125f7d063dd342524bb73f1a50a6c209ccbf33801281dc8a858309937fb791a8fe588ace298e54fb3adea767062becd2ad6c5b9fa102ad982bc1c1d2412a6f2fded8f7376ecf4263b5ed02a36f66731e542014" + }, + { /* i=6155 cDividendBits=1106 cDivisorBits=50 */ + "0991fbb9813292265725b518c9a3cf87be261f6a820f3cc9f49d9f0bad242502c19049d44b77d411af062a24f68b7babfa5ad78a5dad937ac1944c8a4144f9199ccee84cd910c9c79c12d086da651211e0cef9fcd09579c58c3231af093e3c16e2cb1f6be97416315641fb0ea1293ac4ea12ca51092fb693a02eba370a0bd35178d8fcd13a74f9b83f3f", + "eb8882676f6b", + "0a66e0295e328598b59d92b59a59b06f71c3c2cc8d65c9e2998d16bade857c47c760fc2fb2368e2d618fbbf3c38a73a92d11187f486e69bc6625c4f6b18611bce30e0cdd5ea46983677575ec3be23c22070b9641c7c900157d0033a45577088f6eb13df5da01805a9bd659aa7ec44058f623d2de93a6aa0ca369c6dfb8a7b19294faa12d", + "4e0055f95e70" + }, + { /* i=6156 cDividendBits=3870 cDivisorBits=2346 */ + "31dc629087393e51b65e0a336372265af09711f90ea4f3f6fec0b5cb7136780517ba15a90d6f2a4b895b73b11294aaa7ea46416269b34ff6d14df420bb209ffcdd0c0b345162ff0939da08f79e7fcf2f89792639d83b45867f17618d85bb8d4f6cbf7f3de95dfc92817c74e8d9018a3d95cf34affc7309912f16e777836377ba0c47704033500d0cead5a9a448dcb15fa4371569750392306de7b8371910d1b2789ef48b56a4d82cb7c45d1c3fa5357ceb1c2628f50d0eb57a80e7e445f5063022855c9d998fbbc12819ad211b0fc10cce12246ad92643c406f4ed8417804f1fac9d3c9dc8ecd7856c88255f34b9f18d0c26ebe908cbb7896a460bd30f430884ddf15f379b3a58a9e0a769805529c5b84ca2c4876b133a16fee82cf0e007e484deb887786de0e0749c67832e89663d18d467a75223848d19a1a9fc743c4b87933d4ec9411854bb6c0602653f9f3599f5213830c2b6664f804a456a7f7a135213b144498b5fd15e69e5e96c105d84d31bdbc133f5d4720cc911376eae3bbaee733010b4b59431bc4364a2adcc1a1cadbf65b684b560eeb6ac27da21a61eaabde028db7335af1bf79a718d7bd5e050d30ae97e8e1c1b47cdc9e9ce0804da96e5216340eedf34b93bbf097e90dd827163ce1b686074ac4b12741b667bc8df2d0dfdd1d66a54", + "0157515e4f1284ece5b5166d9c2c348e59455da02a2fdb7110879983753e37dda74b6830c495f8275ed0633613a1b1b7405ce27ca04fdf27cee1729265c39a44a492cc05ada4a4b542b35eda962873a3a706907b8b64ad37d9201b91b869d1dc78fe75cd4bb9918b06455e9951080c910e3642869d71848177e6e045e7badca7b83e9eff14aad54a5e3725a5fb6076c01daec9ea49fd7572d0f78cf78c706c74633b2943460b9d7ece53c5012ab7be38e3cfc41afcb695722fe88c059141cbfecaa303e0201da377e58d1e7dc526c5692ab830f73746a48195aa347e70edbca1c2a3dfdce1e268d5ca60075a85c06f9f4382a69927f0c23bdc26705bef62dd768fd189371c02a956d341ebb54c59319944d6e5f00cadb997c60c41c701bcea850f5ae829c2de", + "252df38ea28cde47c4c8c568230fb9e9977e6415095b08defa6d932e281d28c859fc387b61208140470ea7aeb7efa897d7b64cbec39075fb93cda7dca4fcdf79ab9aefa93066823b6cdb910e82f9a8ada78872fca6d5c0fbe537331925fbf0674bb8c7f58b1a0a22a19b18f30ec196a343351b5d2f7c49ab69dcb690efa1a9f792099679031c19fa1272266bc7a34ef1795d843d39724dd2012138d85fc3d3a091c9b2cb7cb6247363f22479f539d7121f3d0d555800d7f4f0a9fec2523dea", + "cdc6c1b03b5b81ff360c67f73692fae2119ffe2b92965a1886fd6395d518e75e7f205581f16f3129bbcf86dc0f3d068642395fdffa7129bb09d7e1a2568fdad255a20948cf446ab3d1379778c6d9c271c2fae3878b12315fa9c4354100992073e143b919b9399ca2930b7b9ecda8c42196a2a83834f499991cbe1c5e8f71db5b115666e2bad77e6f7cdec58a9fbc8431d5b637f87dc842585e35b2196427b6e58fa8b5ad135eaadde3c81ebac1023c64166558787b6af26e5950653600f3625ad058ed088238a1435cad4fa964416764e47da9d03d2a18d7d01797dedd4f92871491a105a71ec85872534dd842b281f967b50d40c60b2505f5be7513895ce4bc28a0d549c152e90c842f8c7520f04f93de318c284a70d7c23298cc902ccaa27243011f6568" + }, + { /* i=6157 cDividendBits=3941 cDivisorBits=3549 */ + "100918a19d70f17c020431fdafe5fb7ea97391fdd952d885f9c48f0bfb204288fe85f27471e2817341500020920a173b7d42d2b65c8d7b62dca331a5b9567562f4b61f9c2340ccaf174a1195e204ec56c2a27b2e651d116de14bcfbdc9d2c8a6b51574e6afb74a43452aac7eab1b42f1343fc8f824132d2d7debb74dfa35d662de434e7ea7bf3754141a2bdfce416f0ea2ae7fbb6b6ed2668ccff75fb7b68369462ca2107ea390b4df88dd63598ea61b9751fbf90b7b2e7b29c822d18d176ab6d4029d3efdb0b7322c8bd0b113d5a1611c853036ddece704f17776f6e31f6d5d619147521d1c5b582bf924942de11d9c8ad427525677c5dc391004bd4b6fdc45d9233d3d289c248d464693fcedc524877f4bba8a0baeb84eae1ad8570d451e762b0a765436936260038cc3b091f0555a6da345984b5b804a7aa9ce8376e1ffc1fe676b3eb7fb99fc266bd746007142eb064c0ab578126e376517e6ea1d98dba26181482a6b498a33ec29af4b6e42f6a497898649bcb2f1030e4b647edb8bc7f2b83bbc1cd91f799fe892d8179a92428b715217b105d2ec8f2aacb01227ca33887f3c7cd9b0a4b6c6544e15a35e525c2a6ef6a80efc1c0c9ac89d86fb6b2d0c258680565aa58e516b4400cb87a2a97e99de5cbb5ccd9e7de614906c5896108343cf6f1c5fa9108b80c7daac6226", + "795d2de7c6d6828f5a75e7bd11d411c724b1cc772202858d1199c66e0457979cdb842890741c9836116e000cd7ea9be437129b202108644e84a82fcbd7ecb51e04541fa489c84eb8d6178b80ea02dd8c7316a102faa901bde22169f8382587ff2715f352318a5543d042038a4f44de870033fe2aebac31f3948f33e053afd38e7af4e54b2d219bfad821cd5158276f75aba8764a616fb963526ed6ceadce7acf86e66f00ce179d229f54d9f0b5f43b0d36961706edfdea6280aed3b707ca43f856982839f6350db8ef19cd03bbf5743391c2d0e4148ffc319a614e0219c5ca54a1044c2a02b1d48660ef0335b2318c72fecaa46559e944c752513a2857a5b1272d94d9bbd118e6fefa40cbab570f43d82df951ca24dafca17044c3a0af75fac8312ff579a2f7f72a99556123a1fe188663b59763d2c2b5e1d89eb3949be6de2641a268703146dd426d3e3b9428d8579d41f720c92053b5ab34ab7c1d0ef6046b1420e1e95956420e4d9dde94172d9df8195f6872cc02791521fefc81a3c65450ef457ae687b3ff81c3eace02c88143b6e14750597f46c231556c420bd6f5d5aa669e3fe6166db887b8c261be374fbdc65fc7af95fe477f821eabfd", + "21d31d5952a5415cd21ff904a1a40f60f070967d54afd5e7a6c308c133c965e8a8a4ec6200ad4d280cd7b79d6988603833b8", + "0712917cd48def47f239b07a0fbf8e238b48098348bae1942d03798be6b722cba17c4a98c0e38f8280eac7b4982f6cf1daf856ba4f996b951d8f05ea04cbb5d55adf08b4752ae4e519f309ccfc8131967bf91174acd04fed2dd181f18933d7f92fb5c7da122b750856f2a52250ad9e678e11283cbbadd58ad05ce7682015354d2523205c08ad37b105c9b5f390eb3a2046b1d58aeef1c6599433b4f08c53736ddaf7d260b084ec268cde9d26066a94b449bea8c6591ddf219663af38e252b9c78aa10a68b769540facd4a9ddbf52190c129be68c4e5ff06b72812e1174256b4f607b1902e16f987ac837ab97dc9749a976933219c5677f943c96a46193f65ab3259c730df6e365451b24054bb3612c36cc01b08366e20700892de7ea97b0ba7dd858e91786927e1a58addbdf288da3794f0dced07647b6c2423dd11119c42cda125aa482ec0166990cffbf7a8deadc98bdb535dfcaf3d7dd9a4d734198b720ce3469bf781c18d9343b3eb74b4f655c69c7a7a8801d5d3aa646f8068ffd5759a14937c50e9c168d659fe5be138ed1275c20d7055195ce5c3a39df4ec5a8c7649a707c9473ee5c3e2d28037fa5bb2a8494da64cc1ada9b99b9055d4e" + }, + { /* i=6158 cDividendBits=2051 cDivisorBits=1035 */ + "06a4fe45e7ffd0c1c8cbfa0251ccb51cb448dfa24c36ec5598e59b3525a2000a8a46584c71345ae72289b8b77958dfaa40c059e30211d09903e850e7ede8d09c6bf41209fed33a5a993ea6e14e7512a0ba1eadd34bddc6f8b670f2ce8d6d418ea4a7b3609bbcb177f990f3083490ce3e03b4c44e3b4e6c14e026532e72168cfa7ee0a7d89d7fce21c100e7cf18f91263837aa9fa55735644bd79ba14ebfc4139746fbfdfff91f2ee9328ad32df9d462d57d638c01e9aebf8339e821458306065b673d8669e394948f64e8aea04365a2c2bb4e8f1117cb87edcc6819df2faa77f44b9c2285fcc355f5b39bcd30230830021ecda7e0fa86e4a7284b3708dfcbd95e3", + "070de5cd68de6db4cd7db6d1f7d09274ab5b1cec8b14b5fa6d2b533afc2f8d1c9d9bbde469fcc5a272d4a8438e907217ff2a5a66f64d45ace731907745e949364c9ceda6f16c18cc554b425cda8efaa90d267bfeac022189f4eff0963e7dad140818b7e7fb89346f0dfd496a064f9a65b325580b83bd731199f8b739dbecd238d5da", + "f121053b70afe77c2d2c4ab75d15b2473d6a38dd075d4d614f00c03501ad0c8d36a5acd0b016700513b3869308ebbe8e3c5c5f3d08cb5f8370dedfe994551977880ad98d7c8f53bab647f647abae3101b7c6310bb5d2dc3348535093bdabefc8706fe03266052fed2528c62d99cce1cc398b3e6cb7d38342fba52be401f00d", + "02f625a82869d7ce65a68dd7edc91c9692fda2c624760ba3999c1f0ca88d6cb9f75a2f3a01444a57191819faa34cd32ecee65591ce4dad1077ab454490edab5c0354c801aeb0a98869bacb249a6b731629d7e73c964a112abbad1aa9ef3885a1178e0c270bc14e2a094f7594a7fac83de7c6fafa30f72ffd98425f4e6225098459d1" + }, + { /* i=6159 cDividendBits=1378 cDivisorBits=1144 */ + "0366d8ff690d5963d44a5eb5932ad5eb3fd41cb83504395e41a20eb201a21c054ab01253a04531ae469c1037e9baa8c90ade0ccc18a8232d81c2e263c7205e1b99789f267336c111e56b62695d71703e110b6434369035da48061042934ef50b4bd35e6856697e4ba6b0bae1ff0488cd0ed0994a1f888f4c188693226c6414f7b6406aecca476337af6f3935f6176ad9bc45822c5b19ab7a1fb029d96feac7192f468aa081824e48aafa797154", + "aa5de13abecda0f09b61b102d5a9081d53ef98f309cbc7e2a06f83a8e66c31d379b28cc560965ead98f10e74f5d58c9af95586b4d81d9e8291431e8d9f1a9d870a94b24035d53098663f42727bc3cc3c5ef9130279469f34321a6b305189c842d56eff5ac422b1119e1cb506af84e19ff9738aaea1b82d93a15fb3964df62c67b85bff4b976e171ec9cf86ffec6714", + "051c9240becdd3bda8832be33b5acea03df3e27dd01f585d428c3f3c99f0", + "8be6a62ed8315b3ed2e9d3fb95289b3eb3d115914a66ca8a59a900e9e059c43480de4477f5a37f33de75e37f14a98cd8c895d2ee86db4116e52abc2602602596c57794cd6036399e35f65268d7c7eabd1d2157604ebe63e6765408b8560cb0a14f7ca6cc3122a204872f53a38858fd39c3201831cf2c1605b47df7e790b397ccfa7a26b1c17483f1555b70ae8dda94" + }, + { /* i=6160 cDividendBits=3973 cDivisorBits=2538 */ + "1590481b37e283ac7bdbc42fa1ece391c779f1ccb85190558615bf9ae53500765c2b3878c5cc8ef33687df2274ac22f9c2d8e81aa831180aceb3abfedd668b3242a25dc85a1847ad91e48fa967a161db65c543edc2d92438c4d7a54c156f93eff492775c2a4e325acd46116f4c776b96825de6e7607505aa208b12d8e3b2acf2ab1ed3179e66aed697db0565af31f8d31ecc5c7a46bfc40d0ec4f2957aff402be5e62fe4ba0822df8004125bbdc14f29de57613979ee6e4fa13679e6cba98b8a247c7a74870d08cc654d28c7257f6caa6e0aca93787a0d91009c4d4e6d307bcf83d59b53ee4f46d675c2ea3d663f4aa352eb4c9b8418402263bb9b1201c96bc0139916e21d6eb31a5c688f5421939cd4828b5ed536f2f63c2c1834e8572cd99eeee18b11af805abbf7cf7b8484b96c51c3e05830f7ee3dc729be027eb9a887702f9c3e2067ed9ab8bc4ccb9228ca5d134a27223b8dbbe3903bf647631934383e6806e6a0e8238ec894e92cd2e665cfe986ed5a1a8d1c4257a7793ac20d0f4d3e421a43627cf172c9444d0fac577cd483a5822631f925152f40440b502f0ef0b7f486088d1ab196b1411f2418169ce7916edcd86efe4ec4f7216f73d5c526c3aba4379cb6375b013a8d385ec92a5e1c4583e409280ecbf409d6dacb1c6acb94cbbdf56cc3500797c48601a1ac04a8f60c93", + "021a331a1a5e0c25c3cf08c48a979c2c2384274efd040b43972a9ee1c15ef9a375bb002867ddb5939b06e8bfb8e332e9e0306174ff5ddaaa69588b51ef60c9c1a271e567c8e501401f4fc315f089a770974bcfe76a332aafa2273c0f36b14a7a168918b74fe2caa664a98b994928344bf8a582eb71fa349b807e2ebae63c0c041c6e18edf06f28e453c95d1db2d395e7827463bd20ff59f14385813526ac966a9ac899b2a067da67ea212628192a64818bd4419c40d7777c42e60da9db2bdb954807f0eac58eed19f136c12a16d4f2915d6f828bba3b5c2ced5f46753633413ff7f1812a6a63136d8c95ad937b387a9c9a79beb1611fa2eec09412382fe4ddbb3ba583a7915a7ad23791fe0703fd5885b0639dcd20cb844695dbb19317bf60a641411523e77adb0c10af61973db4de0a78af1d627df4f76948bca2cf4f87", + "0a41c6e10125dfe62007fa23d80df993f388bb06fff56899eac5b7c857f489147f28e61437ac9775cbe0d9b4f5eeadfeed903d91764ab21a43662647c771e822d1ee1c35cc191ab36f6357c1613d35be0c089e6f5377aee057f516b5ab3b74ab57c37b14688d0b8c45bbc1de7e3b0dd86b29d25a757e687e6506f650fe85a66c68cf71583d8fdd9c4dcf829e8cb23f47c74972952a20ba175a2289f09980391181434b2333ef62faad39bc1ac24f7fdad59719df", + "fa0538ba616533a3128fb5b1d0ae0ae45511eb9f2938a0a9b9decc325effd27699aab38c00b8be7b6eb6e5591152a3cca599e36830ff71a18bab4740ea4e4fe1f63a2a6ba40b77f9f3c6a7ec6cf102e1b5216ca51b02205734ea7e9982d239d5a00ee68e98bad133c0058455949de375dd42f6000318b6b83c2225382ddb2431f4fea8caab8666f3eb2594075507fed88adc1a6be8133dabbebcce00b93c04aadbad58d90ff96f76435529818b3dee3d715706f1500a01b330860972923a77a091a3c3109ac3142a36c88a7423863a15461a2c69290985e226aa0019501a181ec1e5faa1ce052ea83713d5ae49a0c450e726da44360619a908c53a1cba618cf9d84d462486baf1cf24107d6bad929d43f1192e195098ed296e20d8dac32a16f6b45727ede76f81ffc8c3dd74d1a044b997ab4d81ff046fac635bfa96fa" + }, + { /* i=6161 cDividendBits=3219 cDivisorBits=2807 */ + "04273d5c156f5b06df64564d7ea0297fc880dadf4ce0c9e7dcc62af70555fa9cccdd16cb619e063bf30bb7aabb7b6124e83631459d0b3029e135c704ac82cfc34b46ee7fc8056248b2a2a1452e00664201b5c113503155eb91764b479911d1adc4bfd0709dcb425d893e759ad0e8d72f0bac6caa5664597636961f0620b7e1e0c1ec874320ae1a1a3b35a6703db9d02e9d6db42b178a03efbd5ef5ddb7cd16a22b5ccf0e2e2d2b5f9eb3771a5cf1b36d411224c874ad09748f972d084af83ade564bb1a6643ca27eae3317f629df899267b98bd8a8b047dca45952b07fdd75f3e37ed0f0f89181220e5b2fc5f86fccb29437c089f1692d2939f4a83b98c0f8b23cd7787d121f30451078a5ac7533012e28ae7381a4223dbebcd820129cc94f3d539bcc51dc2af4813190b2fe0fd79bd17d586a14df82fd2ab254f72560f337acf05af8e2f69011996d7ea9e36f0f1b060c665e491eacb116a99625cb53f1aec9c88104e18c4cf83fc65fd232de0af4ac9590ccc759d082405d87acca013f038a40cc1c610d306320a7fbb2a6480a3850a8d8d8", + "29fb4f5b5243217cc01867d1e08e4c512b9cfc880b945601f487291c6108708dfee6b85d36cc5ec474191028e8c1eb57159f27f7aadd2999b8d279ecef77f1d1f351542fa2f9bb5a762e38524b2d0024daac7975502f2ab29eed7053e3a1472376a906a505156130b6ccc10e13dc213130098ec64c7d413a1edc1d0f93a7524484d88af8067afc644a0890f89d1e1c8e9ae69ddf78f7775b70f15ac58294ddb86adbfebead3aab044b8c56050d35db75fa78aff2826aae460754df66ca56ff24f3bcf7cea8ddfabcbd551ae29a9a6a3b9e71da5b2a2435e0a6c3b4a3203fd2de594b9f0937e2d54ff19f6c8e33e346e367c8a9d45b9fddc7d9fbfbc0044c5657ae1f5bcdfa863ab9f99f5e82389ec3b2c0ad14e9ede4d0400ac602de8bcf791d46fc8be1a07029559e49a42e21ed0151a750b7beb6db983f533d6a23c68d521703298a27c86f5b14968ac6b4ffda520b36c69c2208628d563014dabf590ed6", + "195386f3414a58252afe1ba8c761066fb573865a279fd65b77319be16f7b7ea531c17dd887abbd5b2265bc465f734e29b4a8567b", + "20dda59ac3b68c516c13896abbf167f940168a73f966c6573e2a4e0285f9053b97856c02bd9aac4a3f4b1d0e71d2f8162e5addbd785e1b7b97dc1dd830f8a79226fd2c5967161d8868205893b8919b8cbd35ce506e370a47f6f1922a85028581e140437542011a9998bf1d94ff960850bb0c600cb456b92f4de2ad898f243c1c58fb6548320adb2e185bdaebaf6bf31c1b3946900c6ef76b34c5715e27f158533478232d9a62c2db8d801c98415744ee208397d2eabea395eb9bca902d4d4154e8708ad95fc6c4db4c436cf0fcb92611fd435bc85ee7430ce43555ca5f9c4333c585ae75d9bf476629d5b7ff62f323db688baaf8676cd0b3b854348fdd3532e0a0dabf43fa2c035042cbfdac4663db9bd32d8df7890534e664dfd4b55a7176adc757ce3a2ec6a5e0c4af8aa97d1fc81ef34e2888dd16133d2b03a1ed0f729d000382a8f04ec2cb2a82657b6717db090f0abe64e9299341bc29c3b04172d406" + }, + { /* i=6162 cDividendBits=41 cDivisorBits=39 */ + "2d16ed746c", + "4f28d63f29", + "00", + "2d16ed746c" + }, + { /* i=6163 cDividendBits=3211 cDivisorBits=1328 */ + "0239a641e45bedd3010093fcbb9df906bb794bf000412b9b4472b7eb429b50eb9d765ee52f1d8d102d8d3929a7002ad4ba9a6a16f577d24cb55d60796e63134977447f3c51234d9445539751d9a0607eff4e6a60cb3a046b4dc1745730e80b75be26e030fb47149343bb6e5c2de6b2f6193ad64afb1fb44cab942bde81f81c34252a046a6c0743f9bec82314d827125f231e18101fcfe4e186c3cc317d557335791a21f9aad3b26a07d8e82d71db5edb14a2cb1f660bf8a92df8e343d15a9d224432fc40a3e29decb8cca907d3de55f6d516f8a70ca957f1b3cd1082d09dc446a1b0e768623a57cd47e821759fb3aad358bd4d038d9dac9e43cf33bb943901c73ac4ca5efd3c2550d2f9c3c8e5cf7bda8261034c056111f2e8a46e38c0ded547bb9a4861a515547633b2b77bc579e63ddc59f1f7083b8a305eb7f260ac86ed7c7c6bf2a6b219813208f4035286b39254edeb2ed5c5118c6f0e31eafae9dcbfcef7c3af0ed7578acaf2563f59b7eb448bf7075c96eda9c93e9c8982d495b6db690de21b3ee3022f003277b2c7beaf8d456ae7", + "12a03c0e845feed6cf439ac3578f63600930c7a774a6bac919b7940a6846dfe6ebab7bf815ce6897abb7a8c3a17f10629a3f54f4b5535673df55f204f3a2cc18a3cf27e71837f77fdfdc61665223fc571395bd3a107629037601987eee31287e1ef451ed07916287cf5bef807aae1c9b8a7462c25eadc7629efe2b5a444defd77e3edcc15f456955406af5080fa6e692120a4aef0ed2f97a8f64ba914f1c4e0f1d2ad230d05f", + "1e956d605c9c0d49f576c356239cefa94b01997d46322f379ffc9f86fd7746b83a77397da1c924651d8eabf599a0a3b242ef2095e43dd2e2d12cb5b89ae782276f7436cff911086aae37a59b4ed2075cfb63cc0c06cdfc7099e2173189e43e99c07fc8b02e59963552ec121ab1dc37c705aad6f1abae0ae3ff56221bbdc4f6ddca7c1c49d7a1d9eefa6dda4fcb7d5fabcb2ccd7c08dedf3cf63eeee2c97e9ccf84dc7fcc64bbae3dc90a37a906dc88b30511d30274ac4bd5d3d10dadf04b8ad99bcf5dfc881589ef9a3e7ad263097bafa53ff33cda4743eb8214aefcf5d61e913a67a158f8e01954445b05f2", + "0dde0e7034d661a817a0d474b3c27d23b7c0cc766efaf5ec5b88fba31013a66f30643b1b23b22cbcdc21e1f206f7e9fd981b8cc9905a60003a2ab9c426947e4a5b1fec1d3d4f47b151c14cf3c7fbaf14fc696f495966578956f76ef3811911c803eb1bd515bf3b817540d62650049a0cb8374f093a1a6f4c0c33375b5e3d36224fe48782127d93ebc6d05fee0085712210f072f84eba72900b84ef59c442c761013a99499619" + }, + { /* i=6164 cDividendBits=2462 cDivisorBits=349 */ + "125568d5795ee879f7f6537b386aa068a6107f1e9c8fdccfb78734ebc844ae5d55ff599d7ac97af7a638accd32ab58fb6eebb5348e8894040eef2ca5def4473422b72d73365a11e236f547dae3d48496f720422ce4ee7bb15b6ad80cf0d910bc2b102ccb95e2220dea43a06e3e1e04d15228aa5574ccae6eba2d79bec722c863739fd4bf805d74c34e8302cdeb7026f4fd128ea7288906b5b338fd233e283bee5368d5f5f6fe3aacaf4d3936e070301269d44091d15794c14afa20c8bf1e5ffeea77738e69a3106128848af7e4e92ecd749c130dbc27572b308bcae7f81cd9ac5e5bb5db35c3fc90264eaf9b1ad6897178827df693ec9e50de5265d4af8edc7fa6e462147519bf731a8fac8e86da42158fae71de2260f22f94c218767b5015f66ce78a83fd4e6b9e9ec85991b423eb5962ca9444", + "1d080e21915d4a2d87f9cc4c09a71820bb74f1b1e957bc84781ae753c2c1ce95f94bc3edb1cfeee61d233d98", + "a1aa925b9395255ce37e83965b3b64811fa92d3675ee6da254b7166dafdf00c9136cb0f6ad8c3f9395f42c1339dfca35e47391b0bf9d8b25fc305fa57fdd03ecc2e529ca7ae9996502a3ec990093d98e5030acf25a127952ff7591d8e79cf8850a33955cd614e130372a5a9b4b026b11018c22d32cc2bbf2b577750698b7508e66b2ab10e1699a10dc52cfd50fc819af76c0637a4f2f05d84d99318044b0af7c6cf34313bebe8d7fe7d926bc7439284d5f545cde1ef96bd2c64a4b4c87ec0ff11edcf2827d014b7223817a72fccec8a128c0b65cc51cff112759bbb53f3ca3429d213010d627346be7c0a2e8a8dd533a0470664d8f865ef85f7effac2ecdb21317c865da8a1e5323", + "117addb0a62708e9231b4216b66f60f81b0e1a10f95549912c1b9c30087c1690cf5128797185d1abd230e07c" + }, + { /* i=6165 cDividendBits=1325 cDivisorBits=475 */ + "0e8cf21cf60a1faa345b4fe55bb0854174f50a4456f662a60f852fbe3925fdd39f69231dfd56afc653c4bc66da8c2989782d5e079d78e27229fe698a6e92163b16fea96b0aca599997fbe0f175d5c56dffa606266771a7e803fe0d2ca2a7698da516ca6182e081049eb5f73e7903e3c3ffb7ec6833ec8da2389104e1844a2d389ea123152370bbf9c4ad4c5981fe4dfd7f5c9301c50feae955b33c0ba928693e9cc162608047", + "73bf0d5efdce35546bb6549c2f0d71939031be8058ecfd769a6dc3f04181d4e7a1e4f47a859726f1543e2e9445cd758dd40305596e5994002597e6", + "202e96a54e02c5d13596481891c4835bf87a6cd1741c68854f8e29294b91d4fac108d241a481d40fe4cf1cd2a9da6ad61c6bc259a05b54cd1101e9d8d8b1cb10d25ff4ac498896eb2c1d4b81a76b894605229ad653f9cc3a5d0efc5fc4e4960eee2bac9dd55d9e4b2b29f6", + "25aab9e844c99244480c16fd1ed90727b7e7dd62d9390a262e4e210ff7d68677e2a0ac2ca587977ed516cbbf3129802040a18d35347cbe534ab343" + }, + { /* i=6166 cDividendBits=3284 cDivisorBits=2064 */ + "0f4c4f7b2512e2a76493bd84fc1c6afd11ef4bfb0fb77a85d67116cf40701ec5140d2d6495139ca44ddaf492d73d2e4e6957b5023ed41ab3817515a02d1dcc7a917d2c4c852b6242a6daf78ab9aeabc4c15a39ace313e67fd9add59c79a9d53fa9a2fe0b97e4acf17a10c8ff6518fc32ac6cb212e42afaae10863bf5a1f3f0781ab339b736355e4ffbc04564996d1f6886bc9e9678cf0d8486728cb72efa3ad888f106b05b65bdd8bd8062971d86785b76cf325d6300d7bd0fa6cbed80af879ebc74fbc8da60aa54f83fcd691f55f3210e19803bdea1846cb2fee312c98d3f69d6cfca288e80f294011e9c38dd1d9108e6de45e57d395aad60ee1d394a4bcdbd0558e4a7510f20ee609071969fddb78bfbf438fae19d37a5838b872462f8b3c0ecb041bb25f950cfcf1a02d8d37c728383817867c610c857db8cf0da11684bc26770747a4a04f68c64e7687db6b9538035eb5ae42fd4a107565f0a79ca0e02322197a13df251f605369f7fdbe5e05a972939c850d484c3ed2b15f2e16000a641ca07dcc6a42245089898d0d3be0c02f66d9691e2269309c50c7ea1", + "eac26cb43ec7e8f18acb07916eee92a1e4e2d34edcf0eca28adbd2631634bb164e260c3c15be323ab14a65a0d70cc91563b4f159c73a316cfef99993253ab2d02943c30df7e288082fd79c238f01ccdd05f505aa2ef8d739cc4ec97862f0d7b74abedddec5a47ca2410587a88f9c883a045cd52f1b25b0b7cd65579720a295e60923317e7784a79379ae641d54ee568fea266d13ffeab4517d09a7fae53ed9fffc4d871c167133b46fe65f9a08e2e31a036acc49bf93b3544e9fc2f4257c584d10a5c289f6ab39f3cd9023f08ab6f8495f0d5715799cc98634263dde64b85c13ea6439dcdfdccb93cb722524bc1f25e54a90b56507fe0e50bf3aaf09cc8cb32f1c10", + "10aea65727578b2a91090fc8735255b628e50dfd07412ded543af2ec27f85ee23b6954197e8606d9bea8c022eb19cdcd6076a251f2c84f4fa81d3ae4c171f6688fc251ab451b896abd4fffee54d1c7a819967f514356d98d572136c883395b26c35349f59a04d7073c163336e22b1e40037c2ae0f50ecc2b0e0549d21b3d0767a987347ca4619353e8cd05b209e3ce7ee7ab8f2fa0a5bef3b4", + "15511392ffca132a3b06c7d7ce34916d744f82568708ce2b653df04d1726dd65c8bc05aed45445a491dc18c9b5cf8528f9685e875c66ce11a3faa5c5c496dd8bf30594179fe4a5d7b92bc44ea8a06d88f2c5138063a8c683f3ce01e31c8a8d56fa48fbfbcb1575f73ae2257f0501c087f0bf730a6182ade5a6491f2a34af7d2593f45829178784eb3f8f0625d94b20f00e30afbc33165fb856fad5626e67d64c93c96c13240e6abd7d302a4f8ec7f593d5a36eaf1d855d1caeb28333679c75cbe97a242f39b7541b5d03219dcc80a3e132359c747d57bc7f840029c9c803e49b4c7095e6c1742d02e4c23073c681fffea5b35ef4182e6a9ac4b701a65df8ec699361" + }, + { /* i=6167 cDividendBits=2548 cDivisorBits=2105 */ + "03009db0a61167d080eb63a88ed068657866724405d6ca1c98ea9bf8c31254f624c413163ee0cf64605f7b533180ac33fedd6ff410482593cb86544b04e870484321cdf8fb84c9566b40a8362d71ffd8e7d5701c348fb992924266b5127996bf55f045ac437d2971901163b7e64ac289bd10fc84a069ed1a13b9045d1f4f4525d09921292c2b7b23aff8b740a3b3e3159d1bca695fafa3131f300406479c68b3483bd29673558bb6633b7d76b7f047130fe3513df656a758a8889cf4454449bf20f611aa93974432a38c13451372eef3fe5c42adeaf228597de0ea63793a54c611c11e063131815c8d42f1714590d1c3fd17b89ec7d4e929db2a2575e2a2478b6df56420528627fb89903d745cf6e6da70727fd7352e132a7de6cf13eb91b71470341372a3cf0d432b2811229ec32063559ed9828fb0919392300b3f2d6a76", + "a8e8c837213f633b95ca2451d754d965fa56f28ecbac10c555f4bddbd6f1129c83e41670eacf5abba79cb261252dc75e9128410af8327580b2259a5438d22c312ca1d6f61fd152e14ad8cb04e43a88820c8dc3171ef864ac9db7f418b3d2684dbec08e0919050f7d24c639fe68c22256351c8b38be2d81347a5ff1bcdf26cbd58d9b267579f568106fe44ea643158d04b23b266953b1a3c67ebb559e4b32d376fe5ad0d10668b3a70d46f9c6ffda0d6bebc25ac48a0abe1fb641e5e8f17ead48a51fda459864416185b5a8c1c7a7d150224666bff83ba25f762b6aca9ca49100db6d60971bc7c12055701a15459f92ab40d06747536be549ad1085ef1c49cb2b1eb4183542957e", + "048ceb4fbb9741f190d3ab317f78db08b9396d0ffed928f0c6b419f467f9e788bca87ff17c4a1a5695646a6f6b174fc02b2af552ba245703", + "939e2722a2340f95be2173700a5a436f782492562ae577fe2634c14d7791a637312bef6b72565483c0385722947f3f1d3741471fd0b8da68518a75573857ab94cc40db30e183234d935b5e8b1d43c20cd4b408f4f5456ff374632d6802dfe6859a7de42c68d930a2804fddfa85c537cf6f5f27c9a541af8c707889b71346b629c114f428f1e1ee302146bdba90b915d9a2c78ec7cc5becacd0d740be2b012a471b51831abaa371840ddbdbf129e52eb900d6b206119872cce86fc39f5432e2e0f980fcf69b14f0805a62dcb8f2db032e3b00c4b2ef4c52f56e1d3d2be8bf8eb87bdbfd2e4bfc93320752e8201a36d8322e1c2b643d95acabd7471ab4c0a11b3fd683526cdfd7fc" + }, + { /* i=6168 cDividendBits=1152 cDivisorBits=1007 */ + "cec667214870772b52a567bca3c8fe7194e54b1c740cf8508369e556b5f759a07fe50cc08a770fe7485f2aab0fd5be94701cf4e841e91f79b33189337b7631533609c62789e8f42365c85fbbd7f71756b581a95221613dc646e6ab366a3e12ce589270e87f4e8001717f9ba8eff5249ec5e0fbc69c6a73652686a71d07ff81d3322797a9ca6c31cdc4df92b2e53688cd", + "b3417da33929e9b7bd2aad3e545353a48029ec1e82cd6954e98765a4c330d76f1434e3475420d07a11f603059aa928d6968fd76d402b1cb45e45ca87eda6e92f2daaebe90c00b5a9a2ca31f7c7e47cad0dc707803106afe45e3d60560e33cc35facc3c0611fd950a7d9ebde7ca4ab130099c03e779488fa19f09069a9c", + "01274d06a579d7f4a7a347e285fe043cceb99df8", + "55577fd739c64febffd463c53eba054987b0930bd211001fc91c8e6f43efb002f67577dc77bf450b50d3d67bb26fc1e3bc7707f1f00ddf7d4814ec0e43d5a184169587abe4db8bf9dde0c3339852cae2a54e91c2c3d6cda6fb4fe099db657a11d8d30541ac8871ef1535778bdb1a574ae624f00cf2f3acf559d74315ad" + }, + { /* i=6169 cDividendBits=3875 cDivisorBits=1031 */ + "01ad884310a7266b7118e45ce875a2959b2cef0c898da88f0700c637c9d2462b9ced5dfdc951cc44681f2d11d964adb15987ab4975fc6963763ce5769cf5bceef801c782d868ac9203a77a7f999a8e27421274701621e3394abe11081332e8ece14658b0f165ad2d38190ebf8740c528b7647a53905ba31181e53101cc2d70f8e9c492d8db87a9077115fe9c3ff13b1b2492bd7af6c262e94af38ce5cf8b8eaa936350c1db35e828d16ce45e1fc9f60742e01f73abff8245de56999a5024cb6d06e457caba6b1dea76c27d1a6017561f4c9ed79be1683c5c2c74f7c713bd910e50c3f171aeb3e8fb95e7f3c53fe37defa99ae2aaef816691c5fdacbdc469030b7296facbcf5a449bcb12c97f1070e571eabb5d5e7f49e7197f459755798b78da2d6f151d41c54f3992f5a08938216bbd6072ada6aea6f80e9b455b896e555214365b1c00c946aa3ceddb0498fb3494b26e9b8e91414b8c285f256af0de94bcb49709760c7002c62f28874b8d103f0f3762620d0351ac2da532a3e1ed427eaf455e7631d93c46f00426a66df8e074d3fd274a6127b7a26e01adde60a16fa67d7a4eb6dfb337335c38a12b0cd721b1431030c94828cced6c33b8da8f69a8c521749a114689a263cdf2622c5fb4d0f9cd77a27d17cef4393387befeca0a8920ee3a29d6f6646a", + "1ff816b913a2f7ac705027b6841f17fde4f2b016ee6eb4e3bf090f9ae5a00390bbe29e2a3159a44e7c4f9f0b1cdd0a8634dcfb13fcf72e513fef9d4f6077b372b49a533d28cfe7a931165c9787a80cbbad8e18242f8a02826e806e0f43d17776a65ec9bc0c657d6a71bdfe1407bcd45f73514c60a8d66e06d01e5e8e0f93ddf118", + "0d6f947336a6c06370dfa799fbe51265d05ffc452976a3ff5af36e45b1d9c7f2a2166d519d252cdd1fca563f6c625148a6e89d51f291c640abfe08817f3e4290197bedee2dae581ecae3f0d0e270865c93e865aebef8a341919e54e960521787143179545a743bb81f9a78e8e002c6157f0acd63c85503e075f6e66f7b4cf425ef60f1da858f123c4a6fe72a82055d1064aa18e43d6238a790ad3109aad4b652eeabe5b5f959f238cd2a309d1c3bb25c2f9173810519e7fee332818ef86fdf4b05f34798fa960a95041f0ee8ad683264f8467b2205a3fa3b77e26b484cbd2d790e0fccf3da2691f12ae13f301b6e936036eae1124035589a85c3c864a5873d21c23382293e507f23c53820ead89fe4e6b904a8105d102cb4a7a2e9dd53b828474ce6353f66b7e6a7b607f666eed3faed6f8fc40ada0d6bd6a96a3335072fdce2fb427d0ebea201c86475ec639ea1bf1691c971a19e5903ac3a5f63c33b7553dcd14297e9", + "175998150ee61b9b3a43ef419eaa66706ca5aa70d3840b124af4aca73e9944ddb9bac3dde58e7bca85a486bc72939f3f5ff8e33443515069c4987ea3b02dd4cf2359f411cb829d3f049614276a28484b1bf8ef08be27abddcb6b774cb23d63589c98558573fbae7c30ad966d4df490d52addac32dba077443c9f7974179890cd92" + }, + { /* i=6170 cDividendBits=3865 cDivisorBits=3031 */ + "8fc6a77302363fba6c67cb1fefb9214ba422928e497b565ec7bd40a55ffaaaa4985a74d0f54ee555f0305c83ead197824913c31971c98e482a2c250efe67ac6697ea9ee79a5d70c03ac1240178bf38f09fe6f725c22655e2b68ea0e81eb6e9b56ebf89300bf75f198b9fc2e6fc82218dd8038e6c08111f0b609cb6a2654d088ac2a3d2e8d41f3be859dcaae90ba84ac0992952f9f602a3c5ce061a064add9331a3af07081712b32fdb55f93b50d379ce7c4e570fa2f35c561c440dc4be9e5144aaf8d94c49cf6c3b2d1afa8a25c829c8a9980b5a8f3b6077add6f135b2f54f47fc06684c394975e1bc13a132154b6cb8dfc86630396005ad50f3e16d2dabe615bf21cf191641e0159dee2570784ad885226024fd62a752b2894c28bc605fc14d63b993d7b484f4bd3ceb9190e1399f67b7513f51fe9ceb402de5801e0db2d1a7b7a4db5ddb147d70349950812c07da3b556c3b30eb158b772a6029834a6e6321ca5fdd229f169b28d3e07b171cde1fd5eaa9392e982371888c80be2082695cffba58e79b19761d544a4949ad695e0f29c70d85bbc51748feb8ec412b71fbbc990ce1c82021db644590c33ac8cdd02a37e6a380618e382670f897532f5cdf990c5ee6d68d3e8174fc701b97a797f5bc4944ba54fab5f0c59e9d78356c1d24f60bb4429f", + "40d5e9347b84e4fa2e053e3cfc604243a18e43a3098c39066b19dfd569c88ada10ca8ba53665fe794aa4a892c16e56a2d3e47875c9c508e27d9911390a545a508b771773c267127268b6dd57f735d740ed191459a47a08e5404741bd584c0e5e7a092031e59e2eb4ae6a93d2ec041a4d91cb8b988d341bd44f18f0d217c4174a074e5536bdb3c7916b2f6be85d8ba2ad609bb22753fc24d959d3997f979c0907fce795f44727f0ceb6c95e771181b72d00373631ce320df62240e0e78ce8740cbcbedcf1e96f8cd584c009deb4b5a455f4b8defa565f683928bc969e7fe0d2d90f2e5edc78020eccfd0ceedd2f1d75522f5b5ac01b8986e121c1f0574c27df825850877adbe66aeccc65b9efaf8f71b07dd5b8b4dd9d24cd4dff094c3cc49ed33429f9aa489bd84f2c54f11fbb61517d3bd169a8b688bb48db7674daaaa439b0bd68b7e98600c99f31de5bf7282d15b5c31edb797f8f48e2747f4f216f7e8ca8c9f328b2c77a9b5a2dbc1f49a1884aa28be87b2efc921c7d14f562", + "0237b12f87420ec779fdce41532040ec764fbffb8fe411e85d2dea743d50191d0cdf7930208f5361acca87a7dd17a391b160428503c86f2042c867ecf516b343b3f99c3e5de22f42f4e4ef3faca3bfa83d9ba417f5f6a891187bb2eeee978c3dc1595845fc067f9a33", + "1a013f87ee811bed1b8e70703dc01c05279bef6d4290cf49d2d2cfcd44d8c1cee63001af8a7d13ce6c703eee5fd8c936e3c3571d1f02596b5016dd87f48d1f6579596422e756719fd93055cee3242a8da6238c3a3461cf6e6fa00899408b4410e798c60d75a8e2e27de3a8c0c7f4022d4f12667ff2f8f1a0dbdc8f0bc66ff444c78f3f93875a9b9d8dcf852fb4776824fc3e6d0b1827afb41c77e4d22dd226a96697024a7640bf5ef52572da57498304294a991cb7b5d0b121417529b556bf0e22e501f6af7987d791dbcf8b894094042eea3eb38c0aa48b37f498a4fa2494741a36dcc048f6914d20940773f1a223e1e446cf4dc10f5810b62d325f4cb28cc62db6a2e1103cc7d96ead271f3c04a9d8d08a70ae19499d1700dc9eb9fdd56e85370a56b75a1780ad1786f4944d46fbb9d8ffaf09439ef61724aa1f44d86d4e0d6dbd5ea38039e424fad3c0153aa50f25399c6fdcbb95791427b97e5ccda163f1e8163c813dda5dad0f2679874d04221a87af86c661646c7d4c6c19" + }, + { /* i=6171 cDividendBits=1269 cDivisorBits=215 */ + "17407b94b7e594461621ea22f77332c50e78f297e2041db2c57e7a71fb50ec29c2da5d66455631abf83eaec32f0b60da4bc99d659d1715fe18da913e64c8257d3a1b076a5a622c8a6e661ad1e7434ec7f63f498f9317d8d8cb034e4ee380975fcfe6b14dc9e75b00b8ee06bd06dcfe48f614da00ea940fc055c5d6884b43e24fb7986d622dd458e90663406a4cb917fd1911db05327139c865068acbca6bc2", + "5ee36e7362b2d50307041ffe1f7a17f5b91efcdd8a9719eb84fea7", + "3ebb3d3dc82cff63b1e751c42d60cf988b9b70e6022555069c64d977be60d92b0cb05ad7bafa7625bdbb9714ea37f26ce6253504367922f7796212077ddff9de924e498a4a8d0cdbc65458ee29efc1e2dde5d1bfcd1555e0eaa809da33c75c6a93a3ebdf91687b521116622716b51ba52ae3e8d2f28a6ae234861cc2a6138c67ab631a56", + "06af43aa84afc7c555fc0d4d09483a97002b78dafaee3123aae9a8" + }, + { /* i=6172 cDividendBits=3256 cDivisorBits=358 */ + "3fe9db2c01505d1cc824da805466d9de91d519d449a0c2107b80aa399a934e16924ad79283cf248ba216ba81f7133caeacde6f115b89117cbb6f8c0c7cb50d5395f7271989b949c66e5137cef4367ca4ba3995c97d1e585d66fbd7854248ffd4ee955c2159fde59eb0b2873a0dc227d5ad70c7ae786ff81d6e264211a2736f0611e0cf8e5a2b56f66eb987cfe069e9684b21e25b92d57ad91313a786e013a4672351952cdd5be4291f3355a38883c320b47d4380a1b7100cbb394dd749374d56290e7af98c23ee47e4a6eeda3213776951498dafe38b760132829e420a76407e0504794b5d0c813e709601464ba03a66df93af4f352e2ded483aa36a750e7edd1533eaf3ae362c959edf823cee85f65ca36ef0a3910a1c66c0ca0983e6ff22bc1e9dbb993077bbe302413c7b3d2093cbfa6f0a7f0352ff028b28086b40ff6b2737a806cced0ab0b483cb70b7bc7395f34d65fee1e734e65cc5446737e9b318c905d798a5b2730cf2f3755c76f7095e1d1df913d3365bbdb25093ca7a939717e43096ef0abc5af6c479f92e5a42f2f15f8d5daad5a870e5", + "29f02cabc4c281555d676557ff16f23e291d2aa591f139cefa8c1f31c42d95ffaa2e2ee38b4fdf0bab1e2ace08", + "01862469df0551529e6ba1bdaf49867d23e2e5a7ec76c37d4744d9fc5289b97745c154abac8a4cd7f50ccea82473bd27b10f364af27bf7ef11af119ea0a2af318c800e71f7fc1fa77f9f899f4e4c077935b520b6fe206b104083949438441ff0a5f28b6651be84452f792d243be0677cd45ef6ac806636815d80d335ccc7b8ba2f3058d2faac5529afa9f78ecfe9989484f082f0c4b7cb9ddd5aff7fc4bd9cc2c5579b40b25f3edb680b2442e6a34306a5ef16ddfb85f277166a78a426fa1151ea2a78f9724ca59a232fc1e28f2f8147f9c3cb3c44717820840d4e9fd55c34da50aababf893a45339558b6795af4a3dae47d2be9f87bc5182266280dd900f818e0b697756b24a1c25325f69f11e8273c00302c8db7d500de2a6f7f9951cc71f187da4160c191f774f48ff82dfa81e2c6d9abc216d3f0a02c7f5e83f58819b270880931bf99a09b4dfeb274e437bfe7eac9fbe8f57950bef610e3c8d8d2bb345b009f44a1faec4edbecfd34", + "18a3195862870df8f94711c894b580bac39017c87471bcf3e713471cfe23a3d8cd46f93aa8b05e4df19ff8af45" + }, + { /* i=6173 cDividendBits=3060 cDivisorBits=87 */ + "09e98d8caf4f15a13eba61fe8232b84d0d255b76e2cc83708054290472dcf34c40d0c6f17e5dd8d2217a7b6100b01fc66d0a0a5384b2e8146fbb4fc9c8bed9bd28232e16bfc4785a9fbcc8212fb656d225e1c17e4bc7e627a54b4da8c351080e4c81f63a64b68aea5c212427ad868a38b60f9174a60e17cf7f77aadba4e284ee863acd3563f665e6bfe0ab060969e1e5f3c541e22aab81102ac05aa14c4d12f92d94dc2d06f577a4a3996c34c29d14f4a8e0bc850d069dc65965167644a91b201dd3562e3b744e4bc4b22a6fa874feef7500247cce6df97b3056934a209ca03c8b6e6ceee0239a7d53ad2384037d3e9e5db515cd26b924be59d75bd8103ca6e751d19cddde7e194c611d743c69d9c0a1a4fe7a5d4aa331bc272a228bb622e0134ae5288a7322239a00f543b377a75a2d3ac10d61df233c1d40f8626c40d400f78c72aad7c83581b9c0768b999b65c5bb0811b6bb4fc710bc1201002297cad1508fb6ea779ab251fbd614b413563b38182b7fc8cc27e023837053f3d4ea6e2d", + "06c20a3d92287361b46ff0", + "01777d900d142b9c6b6452ac8d9fd313ebc1f5726b90d7b576a3ff0df2c09eb7dc14168d8873cd29aafef532c7177745268248a6d8ea0e19d0d9d4641936615143b1794fe2a299b7b02ef2c05ce6717dd2dd38a7ee4e7ff40f023fcf5d455787d47eb10b63b67bda56aabdf39a47c8d5d2496d050640993b5b4cd193a39804790876c5870795fe42a201a580a14ea028f2eb2af33062167161f1965fef2b774615643de4bd8a9493f7e038636d7b277022041ee490f0b68811fad7575d2321c1206b0997abbde3c5187ba2cfcdb75bb090e54201616867ca8466f2c82f19dc386eb28a35615bc062ef8598ae6f36e53247219ce0e78227ba42d3fd8928ca619df26cc67155496d98a102030cdd6d7f959b25868f495b11a17d0a0c821268fb4370946de9427e4cb9dabbdb86602bb275a0416e5d316bfddd00e6980d21a01cf9eb21f883e2d99afcd178720595a59098cef5c15d164934d74e1dc7a9fbe4669894de0805c5db70dbd77baa44f491b702f7eeac0ec4", + "0116e64c6fc668d3659a6d" + }, + { /* i=6174 cDividendBits=1665 cDivisorBits=1504 */ + "19e6be1cbae44c30d8227d0b37a8ae69bca45dce9e01e7c795d7d78017187f19d00d8b6feff06760276d34dc41c7897ccae44c893ba55b3a2aa0c0514f44dc4cec0247b79b9103abbf881967260d853c8970609d575fc5abced392eb53264f1c60a4648edf72f79772be2d713081ccca5143af7c67f0f552aa8266045929879a8b3546a88187c883b6514dc9b1c2438e6f336ecc9ced8d094879202a02b133b9bad0d2a98e2c8d1e7389c1aa59d78b587e5f72bdd6bbae641691e407e1a8a593b61bb14188e2853a677c4649487f7bf4", + "27d28d21e06e726706d650a164e586d64a9e573aa4b4d304c0bbe5e93355ad77cda019e7b709fcf8a245dee56997c9de3eba1c4a50b66f3804011b8217d19acb1b9a8403b9c653d89c07b292172cf8abff8212b6fc13bc56f214a912016d5f9dd0fcbf535b6e297a9b9e9ea3526f0b21d569430545b8d94c613ec006dd01db62f9fcccc22fb78115ffcddd41db25c156f1c5f624799001a4198bb363e2cd0f54320cf0f8a0ac8063b15f51ac0be0079a83c17c122e0176fa650caaea", + "a681f10fa14d336a7a05b417bffab596b8f23364", + "21c7d6d7f72b6ca1eb779dbe701989beaf238399e3899c4e913f4742798b6f43f54428554f78c661dbc137fbab96600d94a96f188675d1e18a390be3c7097b512a99308df39992315d070ea775cdeba34b490a6e16c2fad2d4871943abd26fc715e17406cce066d899aa86f160de4f8b8fedd0ea48fc0aae223aee38bf0c47ea8bb9d6f5b5a03b4bcdfa50fae12f3cb1fb89bcd40ce73ea8aa1c9b8a2d3ba3a79ddc098ce01ac3e367832805b7a29b0e548e1efd0a19b26a884c1a8c" + }, + { /* i=6175 cDividendBits=450 cDivisorBits=170 */ + "10d1e12e140815fe61a5491b1faf4f4377883c16b377ba4e337ed0e2b1332c71406a8841cceec4c06eb77606deeded96c242eabb54cc238d", + "0122e2a24368409be635a475fa92438879756c667224", + "0ecd7beefef2de6d49f2de785088973018ccfc9f3c5be3e6c656c5d5f73e0833cff34c", + "0ab56925d15d34f288cd24eb1348550d4670ee14dd" + }, + { /* i=6176 cDividendBits=715 cDivisorBits=486 */ + "048488f0301e4700a07711fbdae358eb7dad3b0a3cc5ec7ae87a9144f50f0476c8da96f9cc6a91a7aad150c5f7f36be17ceaba5918ddddbf09ba2f810eecaca1bcb73a2fb6540c8cfc7ce6b60b12e820384cfe5f34f95ec54801", + "2a3bb6c5df8ca1ad8e25052bddab38c03c96afc8377a6b377c8f031c7bb2145e2871747315e14b6dd23b2fc1d9b1be3fd737f315382eef6908bdfd03a4", + "1b626be8b7907ff9987349d4e9e3c85d83ef7a16282657943caa18cf8d", + "0736fe2b83acf2e1e8dbc77b794cca6f97211a3f5485802286ed5ffe0478eef294551f1904f2ba630ba7b0da778ac7e3918fa3432c8574caf5e518aaad" + }, + { /* i=6177 cDividendBits=2951 cDivisorBits=81 */ + "2403ad192d686b5d818c8ceadcb489cd27d1db1f14cc289c0caded22fb15eb45ca2c825f099046ecc0d7a23ca09745d0d20075dc78a7743ac30c20f0b5ec9fd7eba74b0e1c860dec62315349814a85902a5b753574654624fbf47e2165b25c3cce08a2d83605439dca0d523606cb2cdcc16c5a89eb11728d1f5a7de33f8ae7dceeff6e5c0c0c026f9a69e5c45abaddbe87f4cc010d79b7e004c8fb6871b00bac557e0b71d083440e776b47226dadd01497ef6cd28bb49ff15aa5fc8fac807550c63be3e6a4236415e503444a2d6d12aa57117e583ceb1cb428cde27451e9c9e709fda80fc6f90f5ec38cfaea8c371ba12ab491e9273801854f7a27beaf5879d61e64762aca2d2cf34891e4943059d93fcea348d517c3477a1d968ff54264be559962a97b77bd8635e6acd81c8a7dbcc70bc0c68634e6b960d418779a1e4308ba9c26722f5a3cc497e7432445d49586f8268eb8d75caa645342cdc2b21efa965d814b897ab221f36d7c58ac483718c2ba84", + "01ab8311a04141fb817e94", + "1590de1d9d5afd4a20624d013cfb20b9efc371c44ea670ae349133e757285da3b552cdb235186644debf900886fe96c6c88c942c6de9b3e56f5476714442b4205d0f9701000e8293eba7e723fdc00f35aec8e920b6fa82d298746ad6d330426657f6bc87ab74f0d205ebca2189611ea5913a3c6b281ecd9f5294af0c406f66cb7e48b31a5932cfe37b8b38ae80e01cec08749a4706ca5dedc40c3b0e31e74b68033e4ce3a3f821aa89d3cbeaca064fc428f517660a2f567167977b53c4aebeb265f466ca48e7dd63990fb7207e75c19d24d8538a7c9c728215131ccc143afdfc47cd1b28986aba3eb96068395209f9c0682e92a619925b494925eab272ee2acce9abe22b052ee126113e3621b885e4ef8a65bcfc6b7716622f4bda6bd6619c11f5903bdbbc5f472e48d47df3223d11b1f8a69ea208aaacbcb8381e8cb2285baa9f36cca70bf2cb16d49c0d80204eb9edeae6ec42c3bdbb7329fa618988557afbfc82a4183da449", + "01036b54f216be627ad250" + }, + { /* i=6178 cDividendBits=2042 cDivisorBits=1653 */ + "e5bdb82280b64dd1dac8292b58f051a1bf69918ae370885ba8a3416f2a9384d4598a6b318d0095bb1a4f47611a6dcff7f14cc1dcf1c19db6577e4e3dad9c732af769f4a4e3307abdac8e9c9d662659252a57c33fa86162998935d10e19e8ec7b6aa17dac46681e7ba22b5fa49932f983a69c780eb2935675f686c0c6569d64ef2b2f754dc059003de0b9c09464d050782e3a9a861fd21173b97718d5de1b6b679d5d6a88d5e3256259d27072646c3e518ebf757354a25c6e5abd9816e9e6de12e3bb4f831547699152f885b1b4f39765f65c10c346e108e85e34a5d35ffcccc29d6d8602078fcd1bb77b97475f62c34f2b62e9bbd937fe26ece808f07d0242", + "165b7af8fbf34ce815ef413bb6cd2b2c84014354d5dd081994f9ca85890c39420ad1b6d945c3cba6e3b57107b9a2e1a4b3dff8c2ff0df10e5889572de62f269106630552fe31f4baf7b8baf8ccd71a1da1baa8da5817c582f20bed5a6b61592c4528a6f47de47655c4cd42c12bded6453d15be009c95be885096857234a73f488ec512c5868018cc77f05d1d1bf57b8f473be9585cf70812ddab2fbca26030320cde9c10d4b6c879337432820ee1e7efe4118d4429faa0265dc00db07d2cc72df7c323ecdd78dd5ba6974792767fa1", + "0a469f2d687146ccb9bd550a867902f3b541a32148c651d24f5210c21f6a886573744cd11c1100884ea7d310920cc7563a", + "097e31f4dfdd2fa2c51c23e584b3e04b512c6e8998ccc2d91afaccef20163dcea8105d2a60ecd9105f0c9dfac66d39f6325236be7b40c48f04e71c36407b1930aa5f8c6e051872d87b8d41008f64fa42a517ff5a483955a5057cb3129a66552b7467ce4d0dba878283bca01d3c8356919e80a2e29d7ef9aee79dc706ff6b3885764e4e0f42338cb6693c4cb7d06ec04cfef9792f6f186ef3c8066d78ea890a688a9bc5fb0123420641f2a57b7a2351d91be89d79a29345c55a65be36203fda8d8c3bb602cb3b82509a54b3309d01c8" + }, + { /* i=6179 cDividendBits=1590 cDivisorBits=1042 */ + "2e53e6419aa0761ac98013de45d626ba40c231a154c65c9ef0e80ca25669579900338eff913cdc560683e20499ca3aee6acfba435626bd9dbb114351e0a749905f89481500f2deb4b5ffdd3cd510ab2955563d12847b6ff04c8e59aac2de1ccf85c19e7e4addce18467872ee67909e1d5af361d28b0cdced704af14404d60c64aae7a6907f91890640eb95c306121cf3c04f71bdf9edc4724833166d9573d8bd66a5a4ed361c6c471256d4dbee2c29e403334c7a0e9904c3fbee93f5f0b1c41a366ea9632f2952", + "de941ebcf8cf66c2c7c31718a5a873b214e384b485e0bf52cb1593b3fbb73f4287a2020e2dee28d87dcc48a7f7cfcd71d2f2698158b4d58775e23cce6527ac118ddcca09cec62b4afaff6196d22647bec7917dea8fbc171709d6d63bff9b3ab05b1f59e2c528bba98137fe09a31b90c270c5a9bc63c3b5697af7db4b9e215c4a10a1", + "3548ba98120b049811d7d5a7801fc6ff23c9bab6fd2152b9dabfef9db764b7869ae8ba6115e97b86e59d993c6b870bac76c817fff90421a99095b7e5743ac039e3fb495239", + "6872555f4c4931aa2467fd6dac7ec60b53cc32e3d609db037b3b65de2e51f32dd57eb037f2dda6c4920d546e8def7bd10e8d9bfc6bc1508f0fd9ef2b48106df3e56b45a7493f614598db31877d8c9f78f7b62b02d920bdfb97efb29c8dfceb5c681ea70820a50380a79ed13a853eab5d4989a23ed63e96a90d54fa99027c8474e379" + }, + { /* i=6180 cDividendBits=4004 cDivisorBits=1605 */ + "01bf8307ef3dcfbb3242937221e1f3a783c8a77fb61f7e202352f95d4fb73fb9d89cb26596284fdc50898ecfe42988673ac62d532066006178725af442fd0fe6db7f422bf50448e3a9616ada55228940088b42a40ebc7b3df8b4cb0c0174bf90d2510718311f8ca69d7ed847f40d3925c7f18c6e07a919ad4460089e06e090fd4870fb6c091889085e8d3e27c3880288e8d9071518224b33d394aa3c614ac22fb4752d2f1189a6f29409762e5eb7624e6194ac0a7c05609c21f0abe2d42612c68fc15564e256923f7b9f2c1aedfe5a2f64428cf27b726cb24471038444525056bd69e228f4cda23865b2cd69cca1580e14b7f8789e7ee1222d4f2078b4430724f16b886221955ab1aeeb6615f68f4c544a6c8492a35584befd3bd4de73a164ace9f28c06788f5c0ab41ae39cec92c7ada4eca3186cf609c9d0cdc919bc2748a9e22f52c6a5a75912aecd25b40552f82697350afba100c0750fc34d75531cdc8b9b2e9bdc9ec2d0b8eb022252eeb7bcdde209b4076ca29980048849820f400cfc4ef9066c049ffe205d4139f8dace6ca3a484ee8a677aa6e22c24939fa9debbf6fe4e9db2b4f042c5065c5fe0a7151c9b6bb319ca7bf7673fa9c07ab6631249c14c9817f1303c174079c88283771bdf085067b85eed2bfa2e3a1fd806ec6465ee428fa40d456d8db5801181838b1b628e0dd50e4e65", + "1e0b75fde01f909536706d59cb128ac5ed88dc671e7a7142d29da98498c74cf270403d8afbd9943eddfc3dda37d8f04bbfbf1242984fe703a8a9e1110467908b604633db97b22e1c5123b7e3b5b07f9bab8a5c75cfb026f02c02a86611b3dc673276dc42ca5e1df11e0b31ce08a5cf72c6849b4add45c9e1f8f13b967208abcc613d982cd06a0027402dadc10093940015ee6557d248390c3b45b77c3b571a6fc7f1ef36308fbddb0dabc16bfa5a4218dbd4ed1ebddba89215499d7417df12a8c3f9a30e84cf2024e6", + "0ee513d20eb5d63868b46939fa3aedef4c4490ad63ac4c2d1a8f9578461e8d5074b0fafd59f5c9bcbe4dcad8c289d15d577e9337dfd8ea5886fd9f260c3ed3d1cd0527c5015ec854485314d52bf6d4703a112c5a8a239af86d0d2316912327e79f21bced5ae36187aac1883a552124571151e70a60d594ec5eabe50c81a29f3401517221c2e898a5b54d865411fd00126e31fe547efa0fac6571e27173b9d64bbf85c77600139c8f04844e719cc1a7320112f0b9f8350b736d991580219f30ffb56be8060599a455b04b7954302b0ce720c61171fe08a006d23a87e9e08ab60dda3f18b7db9a65088f0377def1bb187168301aaa15fca62f73d37e590ae084518c79cdfe15a02aa36e46c4b9bd88a5c187a49276f1f94e09240ff0d87acb8208b14f08dfa58da05f9020f7ea", + "14097ccb5aa0d2ce3cb0dedeee7397d7f8f469a9c5a09c2781c690a4990bfa09615ee2b748427b704784cbc3ddd9c54108b9601c53b87a075c65130cc66f950a68a9f8b6d16d310686ddce35f0c2fe04f1ac6592d00381fe9fa5ec658ecb787e9a725d0b43b86baaf424e2cbdb1d61f99f8ce67814db53a3dd7ddfe1d8d4620c492e35bb97bc366fdcb7b5c4ed78de076b7d3db9624bae69a21d6dc042be70ceb9688ddd9bf46ea861390cc960f8c6ea23bc73f75d8e5732220d1b967dd856b86c8f8dbab08152aa29" + }, + { /* i=6181 cDividendBits=822 cDivisorBits=742 */ + "3832bf3f8b7c734b837bc716c8a4c95d406bccd42be62e19be1216a8be5336dd7e8ac09d295980e1f19e1a30fc037a8c21dddcc48920625ef676f1a2c52171b7516c9d92748eae31edd01cc53f69d8780421d3fb765af74a3a40ad3c0160405158d6c877822f5e", + "0c0a3e338612d39fcc3d97092d2780d563b0aca49a150b8c1f8f44ad3040d0a9ecfc4870e35c657f0c2b70bd73f969c22d7298373d44347b2d3405372ea95dd25d481c935abf527a8769dfebe3d6cc0767be8ff5609ecb30c128bb4af4", + "04aae9511d5e0ab7902835", + "07c32633de7b27753d746795d9cb01bfbdbe7d5fba695518f470be01d93556d8fc21703915e06f3b567e0c71a8a239f765656d6e3517b52c5044dd757ced06c029636f71d0fa919c39ac52c0a3b902c9bc2056f3c7226a3ef72fc58ada" + }, + { /* i=6182 cDividendBits=3202 cDivisorBits=623 */ + "f57f971c3d0c756a1a72c17053ef8a49e1f9cfb2bd3aa7a7a1a99f75b12b7237e24ce0bbb1b39b6134280ec5fb924e41f9dc245069842ddfb36a8fc0799bc4f1532cf908fe3dc5047bb095119b0b1e3bcfe5a2ae6dc0f07df6e859d737907e42942e694440cce57930d157044f33500545cdb2c1f9d44d6ca35a1acae678b963866216c48492fc7738cb7c0066243ba5b37fdc064d58f85925820f635585d3251f14a4bdd6a5c387833b59a784b4a1fac32fecccadf60d511b221e4d7449937f6cbc0eee0fa6adf6d914cb9fae3a0db000c0649ea7b614d27784ef20c021a085b5bce73acf775ca2210867cd1e34c72289453fd4876595c93913c71a412c79208d360a67f6210a8bb967637b664e743c3f1c887095898bea3c5717097a1af29f2c7b0d678f486314d2e397cee718bd722adfc1b189dff17d11124c34839927c722c9d25f573a379d67875f4f16615459a463dc47f9122a41e043a789e304bfecc33e143614c91deae2e0d14314807cec80b32edc2e476b6f3a6097ff49dea48b917d6bb31547b1c49747a8de380911b2", + "4297c0e67a18d8679386b06f0cced9fb727cb2ba12fab03f6cad3609fb3d4362fb0e14657b30cde8657563483e1d6319ea9f052372621cc740731cfbc20523cecbf8bee711313e85cce780327970", + "03afc27d1acfb6e4ebfc6295cb9324e5744c24be3a7f26db8a1d279b9296be3a106bf48600cc20209a1ae834773b520ea65a77286edc73a66e667fe504c75059c873f4c9912bfcef902fd5cba0362aa5579b9a9cb21ba4986636e7b33cbeb1f4080fc1a3dd93ab9d0823d73f18a4555cd6bb8a67fb548740e5487ee689827db68b0c77ae3ea73e90bfedeb3cee707e7469f3d29a6a4c92c4736ecc6171e40744c14bc73511a626438ef6b46414e2c18af6109b76684f8c21e240f2f11903e77f3a2de01a30d0669b06379b245b37415a0b920be7770adc8795a53348621d31e88549832647ad403e4fd7c142f8bceeb2da26c02a29450e6cb3a21b6cb7c5d97fabbe87a1b4891fc55b2e94add3f8dad23ca29574d4b6ba31a03325ec867f71b744460d6a790a5fa659c423d395638a286529919bafc2b627a0d979ec7cd77983c590f5", + "248ee0434be4264bf1988bbba2b4e1693ffbabc4402aed046852acd97dacd5c2700922d16658b0e9ba58d605b90e664f3882503fc6a3ca3d9489c16689fc30f8ed660d24b93b4b206648603bd982" + }, + { /* i=6183 cDividendBits=1321 cDivisorBits=881 */ + "01c987309a50c6af16c8e672f0332a491de9a4f277f95c410059e471671e935118397f04749dfa0e323fa488d2f4f7c7adce3137eabfdc9fa19dd57f7a9c0d88dc52b8bf170a723caa50b5acb5825306e1560b95595d3cf4ad9193d316bf606a60d975f8d86f22775eb37afca84eea5dc45554d147b4defacd30b9ddaf197162f32c6887ed68bbb458cf6dd3867ee185228e136b747a061a62b2241ee7034824095bd10d5e2e", + "49bc5efffb011d2fb715e9c04e45882ba26ef8add3713e9d3972025cfc0c8da2eb3983c4ce667c75f359ed0a8320596ace048991cab3c3493833b999f06cd38019492ef336c3754da2722ddbb2be2020fd05a5da19cfb8b48675446a10acc98800596a06fb303a6ed030e09a58e6", + "063478798a6cc3f7a3d02a7291b7551ad5c50493100d0a023cebfe62ad8d35a6c6be25c551f8e010aa295f8d550b26af8bc7b80f577e5397", + "50e19ac1b67e7d5b9b7e2e4a50e3d2ce97c4121aea02b09deaf509ccb85787f405b04dfc3f10de6776365987510aabedd1e1e783442cc45575ef6614752838b38fabe61c9e4da2a3a079a9571d5b06d92fb33bb997ab0bfc699c936ff94c64df313c4d0b8db929de0d5ffc5c84" + }, + { /* i=6184 cDividendBits=2852 cDivisorBits=620 */ + "0a4ac95c583d37e3009a7310ce06acc193c55efc1d3a0576d7c1bc3e84f8e39189536fb1e1c430d35053b4420ba512116d05c8c63275c54b7c3f2e60eeaec0d4e908d3b45c556bf9e9ca7a5cfaeeb0430143f70f10c6f28eb619468cc5ffc1bd8fbff00bc5934b6a63c6fbb647fe4845b86b1cc7b1be6100c825f79cd3d4352d83dbf2e0375439cfd04cd5e06f8a39bc415b83fa1811b60a2e9b16cc2eb550d90517b6871c68b10d0b79aae4ef6b2ab97b533647186983404aef8b54e7818fb7407946981a2aa98de67f7ecacb6eb5331689760bd4f688a5c10bb31af2d713c357857f7cc684b5840bfaf5b4bbb649ccc38e12d9898dca21bfefb214b9333bc42670a1b3c32a2aadeb698f94091f6d298b9c19c9acc40ba786a9c204af2666940aa146b02a53077368bcb2612e4f5fe2787d99312e5a0a550018fc30f5653150dc67b45abf5f8b4ce3ce5f015df1185ebbfc940e401a7446637c6e1ea9c8cc95eb06a6f543", + "0898cd6038509bd7b5f683e60faa1173fe290e71de405bb9480bc7c0df48a106c1b0799695959b416dd27d01bdecc18d2c0a66b5f0c6e59ed796653c95cd641d31f3a5715b06785a3756b3e34f3e", + "01327b49203c73b312052be0fb0b094ab57837c96ed8f3e58c52a95b8010774e0dd79fab7ace08065210f770cb5f4ad499d7022febc60493b663c0906f3ea716ad4c6d08af627dbf091fb1747f141b40d0887fc9da1d613a780af1333b1ad66782ef7549bddf97d458b4f995d625b7ac56476e706e95af335fe2567a92d1078e01dd2d96f81bb6034de6b853554ce3151df2fddc23de44ff7bfcf90e338a8e94a9ef7272664a5561f1f5464f660b99a979df17c92f21ca8d27c330416cdd2347b780ee8f6995ddda172238db98806f52f642db7edf1782878b5094a456eaa1b4e195c0ac51b954dc70cbdf9209fcaf4421d9dda73001be72e19d6e8980173fcfb82c9ff6a6c432725e894567c195a97f970d766136a347e2", + "080c55e849c4963ef11550e37756a74d1f6b50dcc58ee2dc50ae7f81b4b276eb1f41e3a2057e58fe940cfc8c1b566fddc47434497882355db9b921f23066653433215e3deba575da988ba486ce87" + }, + { /* i=6185 cDividendBits=569 cDivisorBits=525 */ + "4d3718e9324ac1be936c363a1b087345b665a518f2e12c923ca277d07d5ad8dd813ff47b1ed67b905be6f59086185b6506fc6e79709c241cb019cd99afbde88c768312dec39ebb", + "023d465deaa53e1010acf4384dadc2edfd826d1e5582fa512be6d8b4cf2c8fc7ab5c164c95f1cd0d9c3d5d2cdffc28f682eb4ad11150e58af1bc2bcee04ff94451b5", + "227b238f06e7", + "a36e9bf8dd11d96a372b5bae86ba8d7d1daca4ba5fd24019a2aa411634ddbbf82c80585024d341628441003a59b88585913a323988ef5b0d54191a5ac4f518a668" + }, + { /* i=6186 cDividendBits=663 cDivisorBits=484 */ + "5c2d29f5f5fcfb84bf8a36efd6bb084c2cb8299ee001c10e0533fe0bf044634bffd29b548d7a27b295cbac524b24b92d2e2baafe534e66a2d6a76d47fcb0a3240a7ba6511ebfe34fce4f1e91079cf1c12583c9", + "0240a842559b7313d702ad9040c63c2c2dec907f288b251f7f16e719e135445b7d199ae56e605c58eea20e911dbbd3b2bd294b17dd1f37fdbcc06bd298", + "28ebacc0f4526c538d9c7fc8644f31f9ffcf2bd9b9a047", + "01f7092718300bbfa2c8de1c1c711f244f124388189737d3b1aa801ae842433c5d58526f582eb6e32f1ddd3598a1d7c79b460e771c6e9a8a5ef7c71ba1" + }, + { /* i=6187 cDividendBits=1701 cDivisorBits=440 */ + "167e4fb5c9cb57b9e368d0238895cb0c8a9da7912467e850418f2b7e44c09085333c1f8e45f09a3a54aee41d71eb59b0e63dd86223a9f14d4ab0b06baa1b9641de37bf53e3b1754afb32f68ef028ad1f99c6a8555a12c0ed67c2c5af122c583cfaa0a4b9b3642fd85f611d719d6eaf41ea315e68ab1458547f109e0930f4cc18b31e89810233b1f9d5b5d60b29786a6971feb37541d22403ad23d98dca6f2ac99ca94d39dcea05a0b1122c3358f8e1e63606bc2bd5fa55145fe6cae8b2df211725ec25d42026255cae778346c3c17d460d76d034cf", + "1afad93da1c6a3cad3719ff6ae292b1d42fd315d29180af6b101ca049a4d1f7fab61191789e5d12f88a50068418dc9a2e740ac5528de3a", + "d56e0b201ca44bb06a1891eac63ba3a94347963461ec5edd4a0ad2c3135d51696740d1c02f8708abfefd4a33eda3136f478986beabcc8b5b4e78d6752321a7e8270ff4824aa84b0a3c6373c5862b22fb7341ae6a711f353788d7e9ed8965d3b194eb5aa54fcc1ad595cc488938663b3d128f1cc244ff65bf320bc2c0fe26ea261ef23e1b0dc63c42a4e2dad1977d155c4f571aa37abbe7e7d3faf8fe7ba4", + "0ed5f99dc5e17e1f0f48d455c01c68905cc6d27b452c7ed15c10edf863ce0f796d4524daab269e26ad07f48c5904f876602243984ff9a7" + }, + { /* i=6188 cDividendBits=2499 cDivisorBits=276 */ + "05ef83b6c32da8c5e3385f443c8f17ad94fbb9a5bdae179c82b7f4a9e83d3d6c5e745b46547c717af3b21372f477e6e574aa9b6cbc506c06da27d39e7d03d9e7cf86403b5c1728353de9cc47f9f09455308bdc8c4a96791d0a9baabba2ba05727d0b94fbc43dccba6c39ca8e27a5e18c0dca1d819ebaec419c47d9164782b6219e7d01ee7eae9393abf72a4f75c0e4a7a709d06c54c99a2ffed8f7808ae72dc05704b780f6a1a971742723a20d776da5b2bc36324b3dd09d591f6ba65b1731ef1ba13f116466b33bee51514a649753d8a2fca296e63c998cdc9350bfafe9b9ab77af54288c373790e435aeed4fcc1b678d70f2900d5c2a3dd2543f4442bc59b026096f50d921ba6a50c9ba16e259099f575be24c16123380fb45fc869a9a213a911ce2cdb2941695413279f5afe3d360230d395db65ea3bd98", + "0b95400b03f2032c99f78302c469d154c07be493dbcb0dace943e90bd576dd22b893f9", + "832f4e3ff0c819ad32d440609630e9b9ebca33b2137456c879cbb8eb9bad07e4fca543f34268c27dfe89b6adb4e3d636d45a0b9e446000245fdb01d6460bcb1cc66732310be7b98c6c0b26db00a9b328048795bdeeb86839dfa40494c422ebd9997368e57853343e7e90d09a953b95c32496d8da82e797d2e170db72e144e29f42a11f3d35625cb492146393b90d3bdcacd8a4f78775f5bce59fc649d3bb134c760e7676e9a1de7432e57fd8a1b85b9cfd0d51928954b5759d35eee1b703fc93fccb167b4bba8aa321517674bf95ced32f2822b7e76db17fc806695991244472f876c42093900efc585709f552cc5471b98bd256dd8cde4f483c115842a7af5d521d6a69d064218ed9a06ea9403f80692eb50fe47870", + "0523523c730254436406a389c948e37087ae41302240e1598c67fe15e99a9447c248a8" + }, + { /* i=6189 cDividendBits=3954 cDivisorBits=695 */ + "e771be0273dc9e12a382f082c464b8c416bce037632b6bd14ba6e900b7a10c531427776f786695ec28489ca01c5ada6b6eea1ae3035c474b82d8fac235b3ad725b5baf4e469a561e558d9b2b359dd8faf4890a99057137176275a8547fd47a493e4c22aa052b2427e92685e582a39671909ed799a9ff7e094d820569bb7669ed236c171377fb8af5705ef277110b1b46cd981b8ebbdaca447d70b4bc23bc081b6c42d3fcd339c74c227caaf1b0ec408d10a87a94892f09a38fae03e9834eb43ae984216c0223ee5bde1f8bc996163e9291a3fa6d8667ca6b1e255d8b0390b73f1f118571ad3a3979bfc5fc48da427684533d3b8948f44d01bf94f5b5b8745a6070a704e6dbc908d53a94e8a4f5505f94404432f50bc739b305ff9fe27063f282378c0f597698c4ffde7cae381662ebeeb57fa0988e8c595dc053957a70ff550c0e995509bb68d5f7229b5ad6cbdf49da06b67788bbf96ab553498a40850cfdb5eb4c2b8269d6c14195b0e9c084407e1d50ee63c9ad6c21a346bd953eae2cafd591a1d685b2adb51c1efd30c4a9a70deaddd7718ef78b96b9624989a7ccffda20b9869daf8d0093f9f7b651873a826f9bd67163b2d9af3a2d9c218854f6cd0b52435513debaeabde27b6a538a4c0560717f1f2ed43663d9571db181a3fc676cad898af3c4eba5f7bf589a3d7042df", + "7fffad7a461772e8cf841df67e926c7d4a6310199d58fb9ae885e57186b569ff82d0ac9e20d0313e3f6a3d189dd2e88db8783d00cbc698a7df15612e3e76e1ccf90e850ed0144d8429168332985b7f486cbd7b104169b2", + "01cee4a672fc3f4e738bd26ee108e3531f525409f2194a9bc0ddd4b37b45338e7f94099c75414667164b1f1a3bd80b0287e139c7dcdce3388b80616c0a9aab734c3aa7c9147a3ae302c2181434764236825b9e469400e94b170bb07ff99ea03dce83355a2d3def360a2e1755462c1ce5742bed5a507c98a9e752e4f840a90518702e9d4103c10ad090a6df930d3b0915351dfacfea28c8157a702e4691a8293c6df9eaa58f68194f1d5097c8f8a30c3fb1db85fe29306b8ad2da80b36d871b52dc909e50ef047656218a86ee57f7745b2607b26d3245a2ccaf5aeca7d2eff5538393f5085018f45dc7ec883714369991ffe1c7b7ea14aebe06c016983ff9027916897758c56f54d7b57ae7e1ed1ee4d0ea1bbca36cf1d79d4515d8eead2da0fae46972576946ca3e9191a227e3fdace47624a93fdc067fca021d8fed5f33baca71b98159db70e0e87923dfd655d205402fa82b3788e284d8c8771f3f9f16ff3f8bc9f598b11a84937004b5ba8e144f4160f3914d9e52afbe0f5e13123f3d6d94e849489d1c16402da832a5a687598f8c7f43ece1a672efe5", + "37970ca622e0cd9e489a40873463cfcbdcf056a404217f9b86161891cd283ebf4117ceb5fc5939b3e637957dbe751cad4843d04cb7624b1bb137d512bc11ca7ec1310e639960127434286497328ed6edb8503b23fb88a5" + }, + { /* i=6190 cDividendBits=1545 cDivisorBits=414 */ + "d21159030056bac455a95039c6048e9497e6783980f60ea6723b78ecb92e2dfaf1a4150414f2422f815bca0230713943966c2654ea62d8f3b9e3f4ea4d6f9daf9c4d91f8734c613f633b7fcde85f1a58d02ee586e3817d8034cf2bfddabb9f5160da32a6cba18d78fedc5349ce3ad4d7da226559bf681edcfa03ca852455ee10b02b71860f18f2f6cd40aa15ac3f347d78a15158e2e2386203834369742cd540bd7aaff973387a2a2081b595cbc7707db15e0a77e846aa63cc48cc75889bfba78b", + "37fbb2fa303d96e895a6c3d57672da765b91fcc614e2833bad2d9a63d0446b6dc684dfa06a8e0b2ed669e1f8a8ddd1822fdb27e4", + "03c09914330cbb332d5daf9d68cf73f846c2460654a8b310590123669f3b57e0e067ecc18c801d4ebcfccd55fafb6b64e3e7df1cac57a5440431316b04ed8c2da307507a3fecb1762a5dea1e6d2a2938edadae21f80ddcabcf69ae1029dfaef6d79c6d99eae55853b9959bd311ae49470996d846ad607c190a1fadb4e33c0f6e7106c8dec7dc15d4e10de0d9287f", + "16e5c962ea6baf10a36c32c1b7b290671028e6243bcc03ee60e66722367c09d244445f1c12459b21531704568fca70384fc33d6f" + }, + { /* i=6191 cDividendBits=3457 cDivisorBits=1393 */ + "67e5533c3924a970f9e100f4dcb5a2bfdbc2708b0fe5c552cd1015646a5585c5bdd050eb52190b5860a508021f4b438f11510884f277ccf6acc96613b423ff28545faf61279dbaac84c42963a0d59426b2e06d21a290b3a01e6b1db61ac886e3394f3298e892cd3a932205ffd14eb47c350edb619e955ad890c354e7b05cc7be4589ada3b59aacfbc805ba49460f43cfc719488188730475a464dd5cc2242ff24ac664756496fc4eb302d514272fe1e5f2757aeacc957c9c1f52ae477519773871f5a6b1abdae267d4b41c05cce48a075f4935eaf9549b5608ce0b11b5c3a8954332e065a8c57f5b122c43c8def2f54cd8ddb1aa6b28d475d99b3f1a7b5f4035356b2fbfd996e59b7ff1ffc8af5fc666f4967356e40a8d87d43f4d5b454cbe91163ba5d971887145497adf66276a5efccc7c88967c7be923cbbe6e76422c2ae86421e3747da0a4479e7ed159a790cc3ecea6239f2720cf869d4a3f6b77c1ed105b228315b7d0569a1efcea611f655cdc640ece9bb0d843f501ee1126100fb38bf8a470cd2c20e29be61f0263df2c043acac5e4f09c057f7c19156dc343395b56c07432aafa0383956bdaa0f3e4fd2a33", + "b61863550098d8e111bba65ca47c17378a2b29a7fdf81391b9506a6ccc13b4d254e15c611d66ecffb87ed96f92eebbd600e53bf774be0146591f80c1e5311d580acad50db6fd623a5afd4b47463f55fc5d225878e5d0babeb7589aa699f798bc3f58f78c323bacf18820edaf536407d5b1718c45fcf8cf87a17eefcadc19d2bdc7a7013f8ea6141774036c6bc1d2534fbca09780e75ee8668eb335013af4c327edd1ed2772e0ff101eac368d0eb4", + "92100cbcf04b6fbc83ee04239cac4b2a7199eb39fbb1fa6a5ee83a9ed34671e24e7045c4ca8d1bbb8b783cc7cb59381d7f1fed2646879f850a20d656fdfbd65e8dd2a552d118004697179c77141c0eda621cbfd38fb5a20a8cb8f28058e0efe8faf80d5aa76f559eb03bdb2481b143205dca55833fcc8582615f28478f24c4f06c5593363356d0b3dd0b1f4d3c471b25290c761a87bb9c82b78237bfa60bcc2b3ca39285ec3f470c6245ac4bbefe90b67be70a91e0fa9b22179286d992411182782f33df234cf509677bc161d6084c637888e7b0081643c4b79c457224c4d314828877f505ea6693bfb617b2df4a86677c3f7f736c5fbf51913682f69ba35e5f830f", + "9269ff69bb178ea70971730e2305630b08c601f397977f18ed3cb672b985da2e54ae1bed70f835ec492437550fc8205d117f63ea649d1c19595fe062bbe9021b339dc8d39c6faff294eee0f41486dad91d38df113d4a694410771c73b4a7b4b08f571e221316a2943ce9140288fbb2ddfccc1d920211aea3436a8f2a5a0f97832cbd2b5e293840927578101082d82442f88840de79332cb33d40127064b33ca8c7cf34b52bf8ef975297f76731a7" + }, + { /* i=6192 cDividendBits=3862 cDivisorBits=3829 */ + "3c65ebdc3263e1a6456367563d8fe577bc777c66cfa12416496a73665613c4ac82dbc3c6d94973a764a98d8859cfbc84d3dd96f9fd031c20cd51e5b30996e7fe888c9e1054e604983c5339fef4ea5b8090af36dd9366c33a3386172d1843af4ce99096f3a485fbcae1d7e5d264978217f7aa55a6a61694f6231b1c76cc8ef8fb86e33adf89cf39c05163f0ecee88a7c66209b9dfeb94e5e58c098af559f395eab06aac0fa08783bf22c5fb7c63f52e6f15b6a0710142c2d4d6b3f3251891a8019641b1707dbea62cd4e0fd1b991e7ed612082b77bda3ee51b12ceb7ff7ea95ce860b9402975e75d62128c14e8b83df2cd087cf67df22db14b41ce31ea99a9b9b640b56aac0021d997ce98f6fd83b7ce8e008302ba85db24d1dff557d2b1d92d4c2d7ce40c560936532550e4a549a8520534728d8f5278dcfb51f69b22e9aa532feba1bed53fc19ae9bfc636320c218fb79f920a677349b8561cbe738b197d93c8fed968015895b09cc78163aff6543de8fac81d7dcff41709985310a5fa011a9ebe18000c4f4d840637129722282df9e35d379e4526973b0ecd58cdb36381b3f09578ef398181b308232c520e14a376acde297dfc87688c4c1b45c980bef263297927598abf6c4b03355ea1b21773e6a6f00cf0faf2d0bd61b871a2bec56ab316c3bf7", + "03325765e650b7a960fae1e22edd4ecb1a23284c7cede150ee15c83f93d5367c49ab66b500bbd9af3c6aff00e984d254217962aeff372280a8f78bc6b7dc66a3d40f4dc6050665cb96af693015fba612f5693fbbc08adcd34ee834a72861c3e22fee8b4f6706d72e2f609c998a6223c3bafa35801ded8becbf6bf44965f2e8f7db29823e9336ec42dd71ed2aa057c4be03e8cfa65567c4572e1513f070f7cfcab3ada3d9fafe43e3c96e23bd1fbba0f790cdd6064d65b0636aea56176aef802226de04b937201dc3491e0e5dc4d87997432e1897f96876b637c0b908e0d154ec8ff503d37654f916a28c25b11f0adb17dfcaa5ac9515be1bd5b525047a7e5993385b1010f7f97aae87101fe95d7d3a8eedb0b51fb89bed3a67dc43281eea18a8dec557fde4c3cc618f45d5a87e497768aac904902ae22a26881e46f4e2eed5faff4c8691a7154f3cf66676bbf7d833070f090121cde430e07313e20162cca66e05d61208277f67603858c6d8f40738da1bf161d4b90235cc2bb5b0cf4958d786568be34bdf9438270ad3920500c34984ae32789ecd8e7d274fee37462b5563eceb5964e1c88fdd4af3d58101652349151b489f112f1488767a391f43c3e292ebf954ba13a3ab1b4263c2898ad13b6a9136b5f1c3ae652395785870bb61dbe3", + "12e4eb83b4", + "02ee0f90c2273e3b93a4aad77b5903ad8b1547a610fd93d9f2460155924e5a25cd32545f9afe2301ccef86374f44e011f2585d18ffe665125657a5ee6eb9da1e49a388f1114f86a75056cf31be633e5fe72fecaf4e4ebf6abdc435fedb7dddc107619a11f2896b26696ee09e2590c901d2d1873cc71389382d64574e873e47f28e8ef5e1b3422ec9faf5e4999e5e9eec469427fd470d6710c62c823f8988bbf03d13212730022c03ec29b83653b877435625085c66fb26189a2ba97211b6608061d840043f913b6744055d87d4acd1d473a98966b0805f8393a028178fce2dd1d3a7be29338c598a01af29fa504dfa638c2377366bebdc9f1f3403a94ca10e383ac9af39ea1566f9eb4629d34bb191499bef18016f5d6972e00e381288539c252b0408309301b022c7db50e218328321680ad0a33dcd26bdc94d5d6b4b223d76a94e0559ddd6af699d77c5956457bc57a9d8d79bfc6971e1f54e90e1319efc02d82b824e473c63e50837fdd9e06d69846d0307e6164f8348968b116e4fe43313631701ad422210d6b506d8a2d6678c896654fad0f5940379d46d7ab196ca4f26929cd661d4d2c3ab675163b7d4e57f87cddacbe0c3ce83b30d2c8ce15a71fb353158551c659b4489d5580513e8df4ddca37840f67b986dbacbd6e357b7775b" + }, + { /* i=6193 cDividendBits=862 cDivisorBits=321 */ + "247030dbe89b24bdcbadc2f2972ddf5525652cf085aaa85f3f74b1556a3adb904b1b51de4c7a3d6daace56332c5aeb26b00707114f345cd966966a1446423141f069dbae44e4e0f51c7c3bed11dfa5ad59ca083bea348ac76ba68d8ba0f413a8e5211732050462024f136c99", + "01dd385e7f769d2c67180d2d91fa953a1d09f0dbfd59e7ca93a9ca49ed594fc3a30b8f02d94361d46e", + "138c03c3dbf7ca1f1971484cac255d1ba9a85726b921ed911e6b868131e19e5667cb4db24ea1fd438eda51f5288b671512b3e80762f1e2c9f3de2de72a37e4d2b805cea9", + "01d872349528c48336e5612beff63978cb4bb7520f3650988001ae9bf600f6570e018fd087e467abfb" + }, + { /* i=6194 cDividendBits=914 cDivisorBits=29 */ + "02bbd11e7ebc1adf78b27455a80291bf482502b063e7d404805af882fb32572a2f793aa08ca33024d3db4fcf21da7891dbe6cc64cb86746954ba38a7ae2e74cc9f98bf9b6d3e1d60179afecf5463233dbbaaf156659200e0ab606f264ef106cda54426c8298c1b4eeef82c1e4e10d2d63f3e9b", + "131e116e", + "249b2e5ead8e35e6e46e5e95690964ab7daa4ccb40d40724c2ed5db59d9b8c8fa7fab415cf79e12b1404c22e9a4ee5c1e55534141c491f4c2c7fff95aab873074160ba1c50e22ce5d0f1f047bd85a3f558fce9ff3beb9c85d85d701ae7ae13a4d58348a436d1b65201e73eb9ac2d55", + "4b1f15" + }, + { /* i=6195 cDividendBits=4051 cDivisorBits=1110 */ + "02f3b80d4c7b0d3b6938a5ef5408be731c8104b3db26ab36e2e1452f5090bab805a6216e64a5c12ac45fb2d8f21f47fa18facf38c0f9cf0f08c477f6bd227b8802553ce31839849d32a12a05c9f441d36c68bfe9e68ef885c2fbc3dd69c00c4e792d3fbd83168ac61a2e229516db8f59867f638067dfe9204e742708f98aec2e8e7c3ceb46a2b6f3a589bdfcf1d9ec6739dfbbefd16c6430d2785f23fb8b7463d9bb148e9a6d522f9440a4b2a39cd279a57f1d8d7769c3bd3ce504faa212af1945da3e901332ecfbe0513b4946f04f9f3f3777bf71670e117fb1ce1e2f9e2ddd11b90356948f2932f4e66af87fa9cb55cff7832e38811b4df6dd6e453d842a5c7b121353ad391f591cd12bae2872275bbc4a8a358629b9ae8c288be28ddf3f05173de6ed95cc795733c1c8d00b3f802f1f49f667f151efbbad9aebb295d28975b2ab1242d01463f60dde42d73092ae180f05d14c089dd70b080dc7d12ffb2cf531b042d7a60caa22759cb5a1e0f0be165243876a2f8e5fe7d8fae10e0fb14fb831238c25b8cee83ac496767b63ad3441b9453f0783aeb7c44cc8aac3671075a0d5b22b64002fcc818d29db39bb877546e243d0342256d1471bee06e220f17f707f27b4d0c44e85d5cfcd67bb97e791c95541f8c13a5952c742536731cdcb0914d9f5663466d4e5424b84f9df98b606d0d2e7539c3bf3c13442c12e", + "0ae2bf7e2b47f0498c32de165a410c2eb5776d936b29a1b8bf1a471c81dea9dbf68b230baedf5f63512deac0cd7f1f4d322e85d4f24d5a9a892727a3db21752ababa931c709b009ec59d6f1af999e6727382eebbf55fae192ef2aae6d34a67e03327b6aff45560d4ae1483be73809ea056ded4fb9b230acd614dcc2f88f78c6d5c609d70b0fcee0487a2f0", + "456c415c80d7ca6b772217c625f93f6dc0f44f058291fbc691e32e5bdbbc768663de8561d70482d1cef54e6e6e2abee3a788eb5c81a1c59e4d181b1a1bd18c8d38fa153e362842dcc39014237a4a8258a06871fee3526cca12832ab2a81c3acdfb53292a2658bc951fd52b985534d0512cd3af49c66b466349b00aa1c1f16db039790f1941a9701141495d582c76fcf1d9aa93f01c1f96d123ea78782752f8d66b027eff5f41446cdad5fb0effde698890f76629d875154fe7fc8999e02a86950f1f840184643b57269b80264d5cff6ca62b49893294b5daa92bf88bbc7cfd3069fb32645ad6a45eb5a33600f40850ecabd6cedbba611b9c82b986ce13ef029adc8c86f98031182b13003ddc6a5a7bec06dc3dee8049e5d0d96d90484d0b2050a3c0439ff1ea55df87d1886627a04281045f8cd25312cc486fd642171f76a767a3d663f3515c5b3f0d56d28573119fa4811f76cc935d598ddb1522beef25e408efc76f5f3ae9df14020acbb1dee3149f", + "083c6cfadb887af8301cfbbcd9f430069ba24854544b6fdd7b2db7d5952f7926f7d2ab8f4834ec35d073975c9c4daf4be2626d3102b56ad7cf70664a88f5eabd71b5ca513440926ec3da4c50ed4ff39032623062c466393a90fbb02a6803528580becff876ca0c73a7ce7229b97ce8c02cc82bbb3309b83e5266f22cf6007e4b558afb2e34a8103079ce1e" + }, + { /* i=6196 cDividendBits=3820 cDivisorBits=545 */ + "03a235d81288c1d19b736707a440074f570c3fbd6cd98065cf57e13df8328412a6f89fd5dcfba8bfe375e390f4f09ed595afc6b1bdd108ff4e0ceee2db99e08ac561f73fc540b3551ecda8ded035a079cbb85504e4ed9347b7274278918a40c65d7c8f60eb69908a1bc20132e6d592a93e2e9f0c56bcd4a9df3202b24304c2e9494a70b9dd66d0e3e42d04489d069530bff0958d1bae25a404ebb839244cc05fa5e02ee3e7e0433024c1f066ea293a664d8dc07ffe836df9c3e86202f8587d2da4ad570135650549cef09662182ea3cd03e904dd3d20ad4754c4a558573dda6bd1e9670feae05f908cdad5400aaadf654d381cfc1643b19d591761cf84e5724884831d526151ed33d098cd6b2e68168f4377391ed00e9e45e4cefb8663aa883bfd592182faf4c45b6459fcc30d11f2ac9c811a5e2ef4521bcf0afded4861783db6a1c8483123c7f2376a96db61630624ee0475489a26b9b75cc8de940b3a513218de3d1d40122c7f45fd0672ea96eb5234d5ac04c9d0f37f1b4d30ca415bc80090fba161481670c3e7490ef9f213bdd7b6305543fc2c9ec6b1fb4233987d46a42c5360528a7391fe38f958a45bcb43f06a4ac6e342f70b732faf7d788f811ad2c409fdce8f66358748ddc43516e0ec0c9996506421ae8f5aad090cf93a04", + "be455cd7e6fbf85f008cace5a881b24ea1d62dc84543bfd1843c34a68181fc50b783f111cecb08c7508016e0548937a13ef3825ee6a270efa697b0ed0782cb4d6d70033c", + "04e38d1f2c53505268e45d99667fb35c341b7cd8bac83931cef646847c7081bd57d03beb25ea6476a5e29f3c6c06615bb17745248e9b6b06656cf42117826db9d81ed4c8c24a53671d05a8426d07ee331a203b429f454e3cead1df39d50db7f96ce31fb0e16b522d189c136b9a7a71ff425c5e252584dca1b0188deb3a4b74beabeefcbf84c85e21ea4834fbf6d3e576c6a0780597578833d6b972ff239df31d8855eea88efeb26d3afab1eb44ebe497b14208ccced578139555ff913c54578182c3f27afd40b0ccf3f6b5cc01d29e1d6bf61d044a781aa7f59971e87403e3a8e38d29d8ce96eab3b44b20fbb78229048a73d68b7a9c090ce26fd5151a8fefd43dd81fb4edc6e4dc016ba090f684d999bac80c4479c0e5b96a8d4b426e7898d44ff60d7b8e1e75b50e63afe1c63bb154896c3fa1807f9ded648d5eb16d497c61b8b857a92057260633ddf77ebc74c0be7b8c0eb42fb57dcb993a4b78100a3d612f1afd4aff646ee699ccac2fa29929b4bae23e2eff7d7968fed2ec0007fcd4e455518dedbd6e9e41bd3373434488d34a862eae7d00351f8f8769", + "5896489a265336feaeb3f73a910e6f18eedd93f5dc48095e73b38753a01e2e166fc53bd68601c1543a7ddffcef68e8258556ef287c029b0c5320e31e8c82182f05cf4268" + }, + { /* i=6197 cDividendBits=3250 cDivisorBits=3073 */ + "0192a5fff2d7cef9c9b053c3b42c4c2b5ed58ff1c8d154dd6542b9a85b272297375fb5215dd9b6f68717295a42867dbdab699371977e054e38b87da211ff1db9a5c797a086683ba129e0a4adfd61856dd92f10e8c4e3a9be2857591e23ce0d3e981acb021ccb1f55675fe7052ce5e8fbd0b5027cf2fadfb6d2e130488aab7675200b61a4ffd7612666aa885c418d0a2a3e648c53b4e6e4d0534961e37f0d9d8b9d4c1a0a187c092c8ec8cefdbdb8fa6a549c90c86de4f8deb605549b08ee49f78b3d55db2c4274a95888c236eeb01aa7e8b9fa091be25bd03e95e18f76bcd5f6dfcb02c5ea91fc74fa97d5b7a764917bfbe3a3d4416c32cf8b76a18e3afa5e7fa7f96a0818b773cd3a354297ff136ad9ed115a93f8725684b6c8699756fd003f46f60bfee147480309cfcddee4fc7650f58234dfdd355078aff73a474649e8185755f0389e0f1c7702c1548718e030710a9c7688167e21b20167e3c30c3d1cbeb342ff0fb8958e4d72580a0031333b64e8e972e0eeacfd4a7f5ea4e290a5d658c874d4ce8908de40a67e25e522a23d7ca7c0d91ac5fabf", + "76b5c471f2086eaa6201fb5d9ef515cc5408056dd6b80f7fe3ee551e68240fb0ddc68f181c71e322514a87da5c77cef04a72d53658132ed958b5dd6aa39541ca8e93203b19b1cb9fa8afaf4125fa6c95bfa820f6575c7c65e0dae192f24222bbd1637b352dc6599d1b55889ee864d874832e6400a84c855218feb4943658ccc65221225b31e56c140d235da1807cd511703ae4c15d2bf48d42503f61f3b59e179b2d6fe04700cec87d4f17f544f272cda5b7133a3aa00afa6c1c4a49e8c39c5a4830be41aa74bda8fc5391eef6bc04a5449bf3707b8f2a8d46a617fc5fdd279346b6e714aaca11d2af58c5e2efc648f7eba33a284d531be0ba1aebee688312bd7c64b6ea84593a6ce1e285b50e5e4ec9ee1e51d1c83d2eb20b4edf4f73f090975ec775145b37f6fccba7db76795e2f5381db8ddd823ea0e39218a7761c266e9191c3143e4d2d78f0a47be45e4dadbd21871ccde6000f5b793dae57504b8fdeb0859b3af1cd07b1159cb5130db5aa0676904864802d8bcd2f16f0e026ed810b48", + "0364514a1b99736732bb4c3f8bbfb21f590dfdca59c591", + "190f1768a381337f8a89b18f63da56c1387e823c1e782513409c0f1bf128f26b3ab73bd2df3099116485e48171f951fb433b0eb56ba3778ccd834d2a9082af27ad0ceddbd3c343000c871f4297a36c292b43efc562db2086072212e7847b15114282676a3290225646f27b628e1d78ec4846ef88d7983b85d6e050672d78dafdb6a6b5b0b3ac22de9a742c6d9e0297dc26e689bc7bbb98c3917119a126b219979d5788cc3fe36f18a3cd08d14ffc1b110f32c8af79bfb8ddfa469b6c6b34b4161a5554a796040eac6c12e535b2448aaf246b91ebf45903e265a667f4e359b2f3af984caa47f0f8d4f489b4025e6d6b14a9526790da6103ae38b7dde332e6b5aaeb7a011e9ff23574967e4fa11afa41719ac4ab2255f3094356d956f5d9a377af20abc5e7985085721333aa46da0d350d165faee3b9e29943bbb5993a079cfa2670f13ba270e276664693ee8aaa1f3bf13079ab9289f39ea2406d0bb7e1a84085a467b43ddaa3166012731aa88c3f55d5b227e9eb379de07a92a7a31c8af82ef7" + }, + { /* i=6198 cDividendBits=2021 cDivisorBits=650 */ + "0d5c3232e8b4bca8a76db28b08ebbbc6326f04eb3d5bfdfdb834a405e6816c3085b20feaff99b476bb9f0f0e64ea0ed0a5f0cc6437120067b3f65dddafdef46eeb55368311f97d3cc9b9a5d1ff84fc5a43fd7eab793ce9ab2eda3977c1e46face2972ba05ea24c64cd7cea2f0a9b2ac5a4b9354f1d3247f2cc9da2e75fd8dc8ebfc2f62a668e3904bab8a4418ed713a30b378724008624360706f2b50777f037cd7b823f8ed9c79a02ad1d793402cee2821933dba96dfd11cc6bc096e55d9f78c6c4adaa32dbaa664cda849533d93a45a10bca65b283dab799c82cfb7dbe0c08d883be708808823211cf329d642425de4ed9d18c50f196050c6d1fe470", + "6907ed051116e79864003583df404e274af35b9d7faaa55c6e8479da5baf0e6a19da7994a37f371f6bec44d021759aa0a2d7164e9b700b24979a83d7120e1dcc08c902ee48111d62df0503eb2f1b9b10ca", + "20904e458e42df99603b81abdb51183fa64af9aad50a96e99049237e9f9a2d1800c1c082cc2d28d6738768f3ee09d7680e96aa473de01c5b0fd9cd9445e5d1411755ea65b74b6114b8822b172890dea740522d62ad989b209eade353ed9855256401926bf808484334dfcf8125133c7d3a87ee975083067d8773563d31358e0923595b458401a267b455c8cd691298fc2b0dbc3194aa76803b886c12336a21f10f6f94a137baaad7e984d8e8", + "686784a6637a38c667856dc3766dedaf9d553e56777e5568a2fc87d95e57527906185f9e133ff968a13a504e73eca6ae5f09e6c54e59f9b26eba6c1f82c8e18aa914fee270a5c41bb13209872e10463d60" + }, + { /* i=6199 cDividendBits=3851 cDivisorBits=2227 */ + "d0e4b23265fa11fa257e2df6644f1b5e4c6e5f550e178ded5a2746ccd6ff974549be2ced4b27b53fd703433319545bd05cde17d7e652112b11ad681530139f7c1ae226be472381e62a0f4a531f5e4fdae3f8b6f46920f9c121ea2ee221334ad26de36e740f1735c10064cdc9246aa80a290a2cbcd7e282cb349688dc76ddda607629d997dced58b6979f0908c24dac8da38110d4592f22f720a4c7e989d1a5c8fb2dfe7ed0538d69e7ea38671f2db03bf1c15b086cdeaf4ce3eee4be19e2c5605fba8af792d2e1a5eb6b79a5f842d47ca00f947f2e93ff288ec13950057e391a193dc1e76df908ff70859d02e9e451343f8b3db748e013eee711574bae3971a13c2df2dfbb960c299efae151bd34f2a6438a8528813477bf8626d2dd0b22fef4f42bf12f241590dac50ed7c8537020bcd63665f5c01434936b9472a2ef302ad968b0c963fab5126620e70d8a7bdc68dc627afb07bf5fce112c62266cb95c4f44276a7457e4e378b34db736f60ccc46e0893fb6622e68d708e1a4379284db221d83abc2a339071b6edf600d6da56df5e4afe4c08dd59e33e3d8e1c12356686c238a9e2df8fcd2df9cd3f5e34dfe6d8783c35e8a13ee546487b48a93cc907fef36c3ff2abc5819b43dfb72c65dcc5b11866c1f0f09ead8f530375de3ec6d24a39a26", + "c3fd007a24993abb0c568484b9d3579b38f2d12255139dec288068a3708ecb6935b226976dbe8d360ff297b5bd1842e40f70d2ec61dc571ebf5e79565b66ebf7368f3cdcdb1f673706e13368d82c8caaa25e556c42d2b9072ed5fe2729a02f3f71c849fa9a02f555690a2d04c855ec919a7d4bc9bb19b54e882c346a2d584914c699f5474b2b6fa7bcc5f7f4f9de315834bfd83b5f644df92060be73b6be375fada6b7b4b408f12307c5ea68da65c89eeb4874e9bd845ac1a761d9bae6cd374d4ccb8c985471e0fbecfae2adac8bf1f2b839fe1c31b28c67d6143e4fa43367b7c3116420d64822648828ae204c97417dd60f0b2c774aa2148e816cdb6686a60ea0f79ea4951414f6937e8f8520e0f7bb892ba4afdbc6", + "0110db497adf38d5068f4136d99e45a2fde2ef2d5f6ecf6d9827524df341d418ba7ea7688ee1ab41dc7cf0a9a907cc162db631dc029f524631a84f1b8b99c337c82bfe5d8f30577ba5fe88efde6b8255ec5d291a14a2d4f1654d52431fd393bee0b01b2c5bd13435332f27bb61bf7b1c20eefcead03dcf5d7ce4e3b25b843168b9c5f33c8958a85d5c22fcdecf7ad0b4b285888b90651b257db840f5db0666055681b56b796716499e5e47aa596e5d10c3310ac9c265c3c8869a4651d25047c118d6b065e1c516a083234172", + "2e6402b314d48e82be142b89eb4a2166e642ef49c200ca788b123fc57d1aeb9469ee9dee500937cbaa81305898f0429393ed01bbc8b84e6f42934c68981729e190a69f63bcaf584eac6ada81d11deda5cd5b3ce784a4cc1b7709f2f1168d6eeafd504b051971395c87acc026e6759780fd33565828223f0699f4d8594c852987fb8b4453c1e05aaa1bf90c3c81f85863e059f81155500350eba682c932a0b3b519e7c33734b7a4d5dd56d45c2c8355c40f0635f7d9e6289dac7dd3df9311b0db5168d1f182855e6a67dcf443e2976dd1983370479066692152800b80fce18f8f79cbaf0fdd3741ebe505de367402e15f408577d4507b4e44a6031dabecdf1ca516f605b742069f8d3fff7f7afb442824e0ebc97475fa" + }, + { /* i=6200 cDividendBits=3501 cDivisorBits=2654 */ + "0f7382d000905648d758e5564996e128591c623c52363c513a0da796dff34315148d6b26bbf80490d4adb0572fd923eea0aae661be914ee7d940a081d8494df7c6fb188fb8816bd91df234bdf76fa727f928299589514d9c4fde5cb4e0be4e099c7dbc34dc54315216b61e07c838ff70d898bc39d66e374488ce4dd404e8cc93212e5527972e2bf4a4fc23795513e2ba4df9f75995a5795e25c32e5a1b3e1472d679597d83214c1113739cedc44cafa6e0b9f4cd4422907c2563de215ac0e77a0e8e35ecc2860c15f247bfcaa95884fd9c247b5b9011ee5d518ba1bfc2420edff385f083a370afadbbd59e635fb39a87e15f041f92c5fe493764e0e845a185f284f8b44579cf76ebbe4808d06cad8a65d5bc7e6a1fc23ddd0c2e4c7ad40b2c267362b9f41d7358ac3e4e980498bd9a7be848577060952dbd0d36e8c76a296c6cc08c6b480c5feb78ab4f4d67305a6fe5e4adcc0e0d1acaa4741b3160fb7634f868c138fd9a0f08297c24c7f24f5a18a3d030bf4920a404f93917a8eb565f63fcdfa731759ce298455af1a15497e18cbee4765033f0fa619d71b8555d414569c27f45c09d63850b4c1204df4e4a909bac5066861f1c82", + "17bd2ecfffd3bab09fda68c57db028e69a3403f859957a1fc2c57de4f64421b9122a8fc489afc6f1ee5a5d2a0c9ca9ea92d6f8a7dfb331c7478c09aa2f54e4c6cecc195c5e23bcde68dab611df02d2b65b820794fe76cd524955d22d642b182bc3ed3b8cf4e2a80cb3088b2c32d776e16abf60fa1db556a9a38a2b50080dd0aa9c47f4862bbc96105238436bc308a9a75fbb95a5d8fca9d758229d2316d0049790c2b80e91b97cf36e0fe35647bb1fa05029614deb9953dea573594b702c02396b40032c05286b9471299619445cf94da40477e66da2ff0cbd7bafc498b30274e947e21be6c5b7873df354d302c7c500bffa67e0a2a55d9452b3bba0bae8bd262312f13ef03eed32a224a0e62647434356824fca17739ce7baf5f9f9e3c33e2c1435ec19b0fb0871b81fe08dfd2ed43eeb75fed9fc003e448c05c6dd824b3782853d1c8755893f0e6a12df1c", + "a6a0025a7f430b30315025309d72581dfff13b744c5669347f606f4e7e6b6c4624dc1a5ecb6d7bcc530d0572a1bf1148f34d42ae3a6ad19f9b52e23955677d5d381697800c3493f0155dd9e25b818499518ccffc6fb825a09e37f09f0ca7d09a0c480b54c99f8d802c5c", + "144fed56982c3b9ea5786f3fd05e381d34e990ce563d58f82da1ef9179903f463464c9de018f1bd4ac329b727063c538b1df65ed9006c1be2b07d1c437c41535ba47e6816993c1b28c6641d20bb16055dd1a0d634fd7f51283f59c753b10c9c0a66fac194d43553f0784d949b58f3c2467db4c9d9be575d66ae33dd953673793f6db09f93b275e1d8a1322944b986cb3b3e981c82f3165efc114f4f82fb6f67f133e4aa85a7d2b0d84f28f1557c28b24ed59e6d75e302c3f343f10f6decad0d13f3ad65e083cff1831ee74908a1e75abb7d227405fd8df3b27f6d5ab8f83868eda5caf68dcf4ee2e5eb8da333f6128266042acb60077af795c56da95448a8556dc947c76969eef2935fcc275ed40dc687d113d04a69afbb82931103104a87036fbf94e7423fa0effc59efdf3edd3cb1808d51ffe64fa79ede76a0a3cb3120f10ce0341fbb3cc30472efe1e72" + }, + { /* i=6201 cDividendBits=1410 cDivisorBits=901 */ + "029f992062c9b66bb9ad5825236b883f69ad6d0915b748b4633532a0ca8ec718fbc91ccf00d785a6d7803e4b3ec10831e3404c2f2111e0e302f4807ec2a4acc9d5aceb5f9d6eeba893edddb1a7f0743677bf9ff563cfc465a3559a78c32ba70ffad4aa602ccf6ad0d5f51526eca855017e77be587698cbf9bab26c6bb3aadcfa4e943802c34ffd871e1ffb4688ff1ef0b66873edd6f9b0920dea314b43c97fabf1962ff8194cf58025e7da924f539af196", + "0e8eb0296104107347885e4c37ad1ca84eb6a742ee913b6cf8b35d05d9d26a89d71d49a712a968fcaa3f1cbcc1880e7a523a71242cc8d587fc3b342b18f38228d86cbac7575c1e1ef8a21e4cd521e6f05c5232ce58bf8975c5cfb15e43b6379e8402a264a329871adada23eead11b27254", + "2e2272b0171e99756f554ce78dda20d447eaa4b617cd950674ae0b68a9947bf8fdf5de1f6a9f83ee33d6036c80d1d3d701bcfc504d41d1698ec16f57316c1ca0", + "0cea6a474f261c5d708b6be325d1c1224441cad97c4ed417c16801a0f48ca1441f1d6d8ff8dcdd7a7c6f19388a0dcf71e134c7be066b27663e6b0b8f25e01cb8f336117d605d2db0c77c44ac5817d1f09df44e8103a9026a704c2b78143dcbfddb377eaa9f75a5ecc5a558927e70224d16" + }, + { /* i=6202 cDividendBits=1486 cDivisorBits=843 */ + "2f4b9c955cb386baf4ecb25d5b8ed8098ddcb20571779041fe4951937fea83d86117b70c1b0a8707c66bcda1a010638978e1e38074a0afd778e3f466e0f81dd13f63fb7d79ee00c90d7e763e7a2711751118b32375ced2ae5a1b45711cd68621ca496f2b39d7d69d9ecbb8b2f241e1164a0005407b585801eea50ddcc94a98518270c690caccc45bd729b2e64fd9e8ab1b2afa4df5ba8094488c6160d1d92a39723d8a25ea21393f447bf3733051789b869da7a397545787ed9c", + "051e03f7d01b96a6590fe17340d95c9d06d2f41829a804558a29a11a4e329d66335dfec629ed0e219b2d000ef728711b2ccba84bdcf73c76a476af0f45b7e4e6cbb008209096c8ac688f24bab0a6d9b2b9dbc614e3b109aa68699a2769fb1d3d938b7bc64aeb8b21a080", + "093e0a24e8c2a1818a12b4df3a1d44f038174e4454334e68a6a35e0f8642eaf3d71e1d5b1bee490bcc545d0726f8475fd6ec570ed26f4f7b1f7190b29c35b37da75f14098379a96b472d5bbdd0c9e17d49", + "cc1923bf9a5ca2a1e1b3c06f68bae67be7a719968ea19d7146117581d4979ab87a43635b521f44aefe9cf6bb62f71b6742ad664f27b0f2c7f1aae6a22e97fea62101686fbf2de4a357e505ac265f636ec36ec55f50c2e0f3f5d614fe0fc6b5b78953ef9fa7af12a91c" + }, + { /* i=6203 cDividendBits=840 cDivisorBits=140 */ + "627159ddcbf1516d4621c2db76a294b82a6b5d6f96e69360e720c910afad8a59f5f34e5a1329279e9f81bfb1342f8721b5fae282cb3b09021f355e951cbd2c0799302de5e4ba4fa4f7addf4c34ca8824ab3acd7a59ed97eeff5a88b55454dd30b6f48efa54f4ea2106", + "01378d08ebcd57e1d491635eeaf91821fd24", + "50e3d67aae35dbea995726b1e7770734be4dd2c4303eb02b3c343c9f5f174cb69f7efef53517654c9c3cadd280c119a74a1184bdd16bf2ee566a5232baaa57b370b3e2bf4f3157e77e152c196a79f949d4c40fa600fbca22", + "be7a557b095fa7061336e14d89bc5c1a3e" + }, + { /* i=6204 cDividendBits=2054 cDivisorBits=681 */ + "23687c872db62bab5b34deba382473d22209147fb48bb0422f378936f2593c9f0a32614e0eb591d904b68f8d597e888a9250da31b093c1a6b886bd0c2c08088a3932ef0873d33690189cc6337694311d078cd3b8fc74a3cd070c86382df48a9081f57b892f21d8db1be231bafc8291edc04f64b300ac41cb81d828441716ba593b2a8b75996a37673926f6b6d4650fb9cdb2f456c49860ca3e4ac68f843eb6630fcffd34ac7c308133c921946104f4f57ec0293c7d9a2ea2ede4996f8130f001b7c91613b23bef85ba527bd436f1860aa5b2a467c91981f8bcd514e7882641c977960143c6e5a59c0a5ab64d196bc4c473945a26c5e1bc73b537f9602d8d98466e", + "01f61b053e6aad96374e137973a367352d30a7286ff8d0ff65c02666e7acf761604c78189b0d9882d9ba83d38437dbaa4fb6eb8166ac1a6761cd880de6d77ad1b646cd15553cf9c8369b79c243181ec6256206e3c415", + "120d8e23f67b824cdc1653215f6675baa2444c7b7b08bb7d13882c83bfdaf999754f5b4b316d23b77ab829cbf4f1fa361ea136dc7e6dfb9b30bbf5d2488ada4a5a61d0e60af7d254ad827398544100bc0c3bda47fece3052aae3c63e620e33fe94d74ddcf6e21a30ce4b320e8b21cf2b7991a65b38f42a9d05fc4796f5d0fc82b9314e75d40df3d24a04baf8f3abb480a985655346f29ef4e7af23e6cb1119350ebb5d089634e2af6d124922", + "01064289055f37e92f3790ee1c3f7db30cf14f170d5b29c0ac31cef57167230439efc0674c5cf321612f02ecb2aa7007cd0bd73400d505e37dc12aa847c5879703707dcd8316d400dd5afee96cf9581a6a55f5f43ea4" + }, + { /* i=6205 cDividendBits=2583 cDivisorBits=2348 */ + "2342f01642d72444f74ab9793b0182a465ce32cf210596d7d3ca750bec5d0e51335dc183d4e9b1b63ac5c209d484bad4803e25190c00a6b80b8e6bac1a2b41696e7feeffee181a599760ee60c854cb502ff8aa342bdc8ee98a8574b7c99c3a878e4342bc6f4afbbc26c7657f094fd5bc13a90e128676be3a537decd15965d68ada7d8463fdace5a84ae895b1e8794480a18a646bfc4c3aa5d760ba2d7a60513b7b1b7f9245e3ff3a5015e169a050c323df80808552135ddef0438bcb230d38a68ff3f236da7ea459f9dd68bfe55fbcc7773b58558e67b25db73c57cc6f5575dac6a3f93969594ab78e32607038e69ebd4f6447fe3a722e2f9dd85b9c72c5b19551a5bce1eb10d649d15673abcea02ea6597be03b16d7549c93ad50989e074c6d121bb724815f08601e356fa89995cdeb419caf1f9305348f9b167de307414b2cc9d327", + "090e7b38f939c7a3651e3221dc0f046e89bc3607c87e1e64c983281eb16bc00cf1a72a270bd8bd968e59356650f94e29da12ce3923728aff32a3d6f75aa8e22f609633627a05fc957b2d8aa5f550006408377d12aeb83806b70d7683802d0a2a89226964044b8800c91ea0a7935cda161156e2d6ce23d5cce045bc9e805ab4bab11169824ef3e2a028bad7011010d33fdcd9da2acb57aabc8813f77c08980506884ef0538bc908fc825c9d8a2e1d014504306ca7bd46f936bdcb64cb65bcce1104ae3004efeee7be5ed88fcad2b5201bea72bd99bdd7ea2d5e62b284153dbe2a58f2f4f3510d26053c754253977ddf8170a9743c4bcf3bf39f856d66d134a7eb807132e4001d2d7d955c29f2a948f6301d8cfc7bca0f04d9abdc8ae20bd28a71cec62f5ab6e3", + "03e4ba75618d4858b3947ced4b2238bb079ba0637918c816e5565e7dbab6", + "0466912cacb4ed516cafaa0bc498dc5d1cc4249daf6b6ab05da673ac48065ceb26a60f89be02b7ce0b61b435dc5983901792e97cc445893fce54b0de3fae07c9f561b190d15bb826bd80a12c9bc994fa196b232f1e665e1742e508d16e4cbee078746d02b0a266dc65a5b421f6f792804bc2a508b0e64c92a975138bc3aa5f702ca62a455b425ff5bae7a2cfdb081761d409ef7b0f7730ef3efe0cfe114a2e0af0893f4b66f35dc803c275804f1bccf1a55873190e802f483ced31a9a8ea469535ca80786904b4b081d4c1e6b91a65f324a74ee2ed4a49f29b64946f52dbf825a5355883b8b9892ff75421f9d3b5a8ded37d4ae0c86e6a55cdc46f45677c6ad25f56771a09727d853382fd685fef8e81946267d111fa431fa91bacb732d4ec255448f293dfc5" + }, + { /* i=6206 cDividendBits=3368 cDivisorBits=2355 */ + "40afc5087d5258b89384ab68110bd228378b4e708aa889328df9def701a13b021890ea21465bb9871f6117ede809bb782deb0d947142a9935f381cccae6bc4af11661f524a5344aa7d013fc5b6b6e878ac6b600fecbb5342cd21223dcdcf46d496ba8c192a1a2712a6436bf0c239472324f3be199501e15d90ac86960c87d809c5fc9d83608576f3ca9e4757728d40873c8e6235ca51d6d274b64f66364da45840310d75d8d3c492a759ff480cff38bb5ced7b2f2ecbd190f8988bc3565652965a425c6ae718c295a804711810cf1a67c01a46bc1f28b489c8439ca55e91c7901d5eb8165846414594b5421a74b5f3fdef98b740ee95cde15ff9f733451cef8e501c808343e4fbe482b4bcae56acd813a6ce55c41aee26bf424d62a68c0f6b8cd265ed019dd452f6b57d2428b6b1f907de97cc8c3994654e2e7b22d05b7cad3fcd1b0ce745f788bcc08ba9c58c17543ca89a7b2c35d4520c9de3669257591e75b40d728adc03e05b35ba53bc9095493e7674939d43e0321b90047b5916dafccc26e4f6a933624d0c9983d475cad632a21190584bd453396e6b8328cfe2052cdd3000b24102", + "04573bac8bf41c8b5c2c279c74b61e83078bd39b7f4fa92f27c427e7122da0fe5e240d4ce7696c1abc6d06f559cdaab8c1300abf3dfcf4b718afa1105a79da379ab5c9f072245cb2bc8e7d1dacec4c69ee1f214aed1cb934983d6d25a57cbaa902d70ad0041804755f4022304a58797d976f63f53118e51fcd94a2ea89ba6a201b23a350e401da60f2766f16f5fd8a267342392b3aba08b0660f264e685438a153b436b54f5c12ca5105063ee92e6fce853da63aad2bd3960b5158f67efeb4ed951870fdf4dfaa31a47cba439bed86bf114d57ac71ceb25ace0ca4162a2d902ae96b98b2e365b221099422f6eec64ba0d537be9f55d9484a6f6756a7c9aeb5c2f537e312f67ec047cc6694dff913e18d8681e243ac12eeab3e6b47b4d15293359f4553dfa354b8", + "0ee6f3bb906983c4b6cb0280c57dcbc5920d706395185bdbc4af2c5a313983c4c11528554010de0925aa29293771d290bc2d10dd143aa1ea26792f5f9d2a6ad79fb9726f1375ebef218c1a4f814db6d70c8c56757c566cede970da672c1b0629a86e16a4725d414a4359a3803416ffa47dae1c90d39d91166ae001588fd9a3", + "03133138acf0785885585c92022695344b5a5356aa43d5a569ecda3912651f6048728d8b3cdbd33ee85f392a0eaf8f427ce641dcda455e1d0bddd14e15dcf3f844996757d84a4ed79c96de2d01858b7784d3044581c1ab138f1889fbc60eceecde789a9eba71c0e22c56921163e4af0192a30c71d5d12226dd1afdff57d44782b175ec560c94905038632869d684c7591424ecf48ae11fc5fbad2f9cbc763a42d2174cc0a5b90f2f179f1a1fa60b7192002c1af1028d7899490d30cdf5ba3bc03e82e3e41abe734e199e6a5d71523ac29af725a9cd890e357434ebfd5ba31843558eecfca4ad38fd084e66f7fc50d26677b31d16b6ee45556997032e1eec286e2bca1e73728632d2fb8a5a5fbffc3ed5bfeb81c36556ae03c120b891dd9fc2a2513a23961b57da" + }, + { /* i=6207 cDividendBits=3380 cDivisorBits=1274 */ + "0c870376ab9cffe7ba3b656279a7c06389ae4987850699b1ab2b5e974bdad8d3dead416d971020868c889448c96e79afdf3f227ad27c1207d01ff2d725071e22a37c69334034a29ce4d7844c20590962cc49099160596aec7360a2e87a7f5f1fe9016dd25ef0246e1708b7490677878129342272e37576b646529c72fdef216d4a169bf7bed0dc68c7ef871df8ed183b8193858e035524b8f281cf51db6c793925076332ec8e093eb12ec11955a631b00f87748a18a82e6b05a11ce57291199f8a4d250698ef42a5b8c82aedaec9d486016a1e7da333f56a04b965912c83445bdde6bc8901a82c43374178e3a7fe5b3fd9142d7d2db6dee2a55e51385f1a96095d90883a98d3f07f7a3708398bd23054d679f0597325232469d2da4fbc55f1e4d2222a445bceebd0a58be542bdc51e7cbaac1145797d57cdb7e6c8e9100046e2b4044d54b12e5c07787e5e3a3c3dea69001e496300f3e21c85ad6539313d06ff148db1e2701a986df2f447bdfbd6a5dfc22e18802e5c0fdba6608106a4366662b20069b35bae9309ad4b6b5853a06b10db7edb53d5f361e7f1746360f6fdaca1959eaaee26068b", + "3bce0e534046b8414d628b08f6e233a266ff141de547602095c449fba03cc33099eacac94dab2fd6ea480bca4aec59be9598bafe3f0809c76e979af5933d0d6a9aa81026e96099376d1f77939d9137e3afb880c931733b6d5218ed53ee9d7ff0731693b27e92cbfef76076fc53939d2e3324d5f8559b91d501026d42068fd3f2a3d1b162db16451f12165b0f039e57abf778820983cfe2c47a03cdbfabb66a", + "359fe51651a93e970630ef6b82eed64a3b281ee55821698a9c3500439eacc9465b0340f5a3c1e5d3df36c79fa63c91f28937ecba06260088dc9c645d06058487ff04febd9e48a993a4e24da5e77f67ea6b202cc190dd9a4772b20e8c66109076fea3ba522de3ca0a80c048462a3d8f1af08313974823f81a71612ec260d265d5cbb60096b2bba97fb0d50f24bebbce72d0abcfad19fa96a78528471e65a637099c97312c845d5fa545e48ebd7e3839cb56d0150704c81fc055ba247dc951f3083a387410709c61b44df9b4e06207baab1bef0369e6b9b2cc7daa68ed1e1a9d6bc95c18f27ef346ec33f97f717d4495d0c83b76ebe9e9fb7c7960e368208511e109945ee6afeb78e3", + "21abd64003e686e87839fa40c4f6df42c5baf5c170ade4fcb37abd17f9b1221782da11ec3ccfa5bc2393bb8cee275afa3de7221865ca510b59975c63795a72ec265d2b848ea7a7a1a39b430e8161257f096a6c2e53823e560a4674b6e53fda55e66f1c5599bd87bac8a8137d9b5704a383c240052d52aaf9808aa47bb29f292671119e7340653606a3b0ce920cdbedaec6bd52aa5a69cfa32da9d29213968d" + }, + { /* i=6208 cDividendBits=2750 cDivisorBits=1607 */ + "33b607cc4c4aadb6791a59f90cec2f4bf00d09a104672f94d1a12935c00edc52822501533a355afd70c1df19f581819262c9bb5443e55877991efc836021002a3db6febd4c8668d48d86ea5ecfecfe1bb582615f0c86e33a84e69b75d9753c05c37e21c99fdc80acadca439da9bae0f636656ac690a0be0e5e717aef9c2b411fd5f95e8c063cef15c34bc8912e88f8ba29ecbb4f1e30b65e7aa78bb119d9e9cea50b7952e9a0d2d1e1872625d51a1859544abbe60723556ab9175ca5ebb45ad0447d5ce54cba8a3dcdf04844132cb4ff0510747bdf44aff748cd514d456f7b7101b6c2dd07ad56769215d7c7efa1a4fb6f6becdde19a3fcd1a21b0f9434c78e94a1acb98f7a3da743fd9173fa5b8ba5b36ec82504f9a3d026f3f23f0bcc278b8872f1429a96aeb7773170e1acd37855fcd2a7fbde0bf572ca1a5c10004ad6c57502b47832a737b74303cac6b812dbb93f0d12b698e028a3c", + "061300abca4980a81b23b374eaeccda28037697bde1696a91d12d325bce3c1d4a7a1a6f79d9f92246505e354936a6f97311df013e78061accfd63b4cc825283600da06fed774923123225560b36f679421185c602cc48b79d5dcca7de1209cbce53985e35fd70678a7675c988d5635534a2b1cde506a8341714aef1d95a5ea0cd058c082ed67f21a5c607c0ca191559ee4189c413e81438f2c99e3d3c98cd7a1d87fc790446f821adaae0252471abdd0aee15db777e52f554c65ddb4ff413b15a05cc8ecadabb3b5fb", + "088360529d322bc14a3b59a4da0ec1714fac858010929005b3bc1913545fdfb588f4c45bf9721a2c7d88434f6cd6a9acb4fe91ee273153dd2f3cac7a482fe52a199569cffd7e490e80cb1dd0345dae33d303bdce90f6cea3ae45811619141090109791eeb754886360066d1ca469cfe3242abfd23b7e2cf777a93611f979af4480d12df2d44701d0ee44977e62f467d3", + "05391cd6373003b953484a4746a9f107ba688fbc4cde849647528ac26a39970ceb0e3688a8cf2d83797ea3ef9cedb6fce6a8f04db8016e16e590b7eadc5f10e55e7c26a0a0ed62e485a92cc2a1e21ace907e8ef901f8f4ce91a5f1c6c52dbb90293a7ea25a01b5cbff9eda9f766e71a0cc956f98d9086a25a63b8dcceb5021e104d000d2bd11ee6a7746b83fe508484ef3c4058e016c14eeade376f5e9cc8c678dd513ee396c6ae15754067b0ef8d7a4e2ad978b85a7a008df6766c088ead195595b4326b2316f8f5b" + }, + { /* i=6209 cDividendBits=3622 cDivisorBits=2808 */ + "32db87dcb93ae5f86d1a7ed8b973bb35b7dd4715e2e031abcbed72f71a392f49dda563731221760a2c284716e012d368b6e511f6f4488ae14043ff4561cfad0f12e5b530d005d6459161d41105a4faa89b1653f2232e4e0709e2cdfa4b2fb4356ceffec2f27f77a516280aea8653a2d0d7548c3ac0bfde1dacbac09b0d2738f58d799f5b21e2cd0b18b951e44cf12a6516079ad81360c5bcd6ca803bbd68cc59b7ba4e516ff57071bae7b311d668c10de581ed6c462fa3254a90d8b8ccce4a60e9345e48575a96a4168f12be8526458964ed4d3ab81a6ba281893fa62f6a3248b9dbab4ef5d0d69d0096b6b025dc70160d1dccdc3d7b8f5ff7f1328d9f8e2ccd3d8d250cb6bc0dc4f47ae4773b4159bb4af9b8ee624695a2fbfecabd2fee516cec3133e7267a1ccd8eebe5dd9e40fcfce6bdf249d9acf63f8882e856a34cdafeaaa83d61ded32aeaa431730760bf6c1a4639efb90c4b491562d4553b037af416fd09648a4b05fbec836db827b565c11d734019ea892c9918210e3c39ca6fb97922e46d24bd6569e9515b5e520bbd259f262bf68e2e0aa31770164d4b3f123c9dad5e0a26c3af2fc9026f104b05b042ae360419ff9741228ad58199347bcdb1bb0c2eab668f", + "591224cf4db67286db39aa19e7ca17b32bf200c2472553bb5d104617c6992a2280ee6cf13783fd011ff890c866f39f15532a219d627b0de105869dcfb6132ac7b44de6a860da3cfeab54fdd0545591ec4bf456516d7f3b3ae13c92d8b7b519baa792a3e51aee99a6279ad2228c5fad9f59e409c4c8612f4344ee297da9bc50c3cc9aa39e2cc1d4788c2afa1f161e0cca46e6e33c04445a58546b4f91ffb4f0b7539d1465698fdc83ebd4670a14a1344bce1fb4aefe67c0b8776c2e389578fe071f8c50460f50ddcb78d87ac3e00843faf0aa0e3347c27195920da4dbd345028927012f07a21ddd5ac4bac27daea2252ac39679b4d0970ba7a92efd32084bc85dae6dd391918310f2d59f5f97bb43b98f6d1e76f51026fbfd826e902e858087f2ca0567b95115716ed544929a0a290b6e322a3b675fbe898fbe3035066f6973f27f5a4c95ec76bcae8ff8e50b8bd5253e1be9ae3f899f98da1ce4f6810eae8a", + "922ba34fc956c7eb5fa289a28ebf1ae0ab3788c105165ab49836e01a178bf7bd34e6d86b7c8866f20e008581bc154b715f1f34059efca2f7c753cbcffd134586895304b144169f4c9317237e9ff3aad597d194f51ec662175a7abbc5579fd0991ed641bfddef", + "1020b992acb2cb3c961942a93caa21d758f580ace1dbdeb3057da2fdada81e16127d4021bb5d33b5a20afb21bff6743f5aab0a5ba94b613184b40cf8e8b0d489d5a092a0d9767d2d4b1e0e0142450c96063c778a0e9bd2af285fdffb606bfe9c8b191a1ed0b46f920a141e9b28fe323bf7763e365cb111e98eb361adb6e9b660457d6c05bf9d8f7370c14589b18d98f94a109cb8209ea001bbbaa0819e42512a48aa7e5ad7dec43b223729e6ea3eda6ac026572a18bd92832fefe277ad067ce2e8fa86e323ed6ce616e6ee7547609c52c2c7d34cfed7469293028cc7eeb0527accddec14c28c2376b6e76d6151668196dc6bc0df7214bdc177918d84236426cfa18e923798259e6a3e883fa4635cecd9edce1aa4cf2d4af9e5e9a02b946db26a869086d39f0f8db9a8be3aad1824adf659228f21bbf1df4b0040e93c8389470275deac12ee777299ef06878326b1c10b68bbf2641d884fc52c13dec25351b9" + }, + { /* i=6210 cDividendBits=1706 cDivisorBits=731 */ + "b799e7953e5f07e7a7c42338c4817b6e198f44d45108365ea5328b54d292b005658fcd4c9f4ec9998c7e7f6518a1a7b3a6b86a4ce64d7ba149ebe5c86ee2be9fdaaefa85b4f9d972b66585b007d7ee1be954a54140e0a15bc5f57837ced29308a9cd877f95b0f20f379e9f67f1d9289068240af66ea712cd1a0d06be950ab5ac93980bbbd69ee08014a2ee2f633f8e727251266d2221e2bd02c3cbfc405fb422568460fef47a6db4d6847fedd2a3c7054319018980f0954029836ada75ca87f80869d239893dcfca75dec8c6c6bf46b6a32143171f", + "814289aa025238eed3a05a9c993e92487dd62c37d902165db520121336f528caec1250e477064c5365e6323d24bdb537c120e62f1d025cd76d6de882975f206f4a62700588adf183e667e4897ebc8d87c17aa85df1d405a905b6a0", + "016b9f8abdbe6f93309682e61584ff71c0985dd56701f1f6716694e09e935f3a178148d5101d93e9e8958586fb77dedee8290e4a84b07910c05a8bec8add3190869b612a8bdd95c1c0db1c2b51f22986af3b163ccd60a32f4c0cb25b30fcb3d9aa4719728bd614ed2f1e394529a25a7857d17f90cd29880d5f0198", + "2b3c43e594c8cf1a2b90cdf03b694f2807370c4e1e86bb2e290ad82b15ac1c483561722d3f6cdf7c34efe57595760be53d081a24bfecd5c04d9c2a21523465ae50ac3c5652e4dcaf851355c2e451de41d5d12e1ac52538dac8081f" + }, + { /* i=6211 cDividendBits=49 cDivisorBits=44 */ + "eaaa6e7cef53", + "0cdb57f80d5a", + "12", + "033e3f0bfeff" + }, + { /* i=6212 cDividendBits=828 cDivisorBits=335 */ + "0b36ff0442a8c60f848130ebc92fc86227c958dc6b6f8a111895b324ad00804836faf73fbb8842e322e9211b3ee2ffedbf95ecccd03ae96e666860dbee4bae72dfce45c1a7673c1271421fcf06dc1186419a6408f2f01b076f3f54c630c9802b15023359a9932af1", + "30d6dc09423aa8142d0d288fdc245b6563ac924029f9d6a8830a9708a3fefe1e22f5e4f8a62ea16f6a56", + "3ac8d882e4d60a72fb3f05fac732b79d1d55d63fe2006a2d36261c30b01e70b1b2130385c74d9f943b0284409fac5a48621d5cf5c920f75e2d4082d88f74", + "2fa1e6dd93819167a422e0424d91dc1a0776b092fcf9fc0fbf4baaec07928ce0825d93105c89e220f1f9" + }, + { /* i=6213 cDividendBits=546 cDivisorBits=469 */ + "02df2b38297a4bee3619db089fe0c2ef3ff608ed5226ab4d45608f606d98cec4c45ad7fc8226e098dd60ce32092f3781c9c445a0bd7adccebee38fd305301d448a41003928", + "1c3ac23e60c57671fce9775406415b345b206b7ed47a0da01e5dbcb30b8602510216fb7cbe848a1f73d9a1228e882c3d895c6ecc7aca9c7567f016", + "1a0ae47e1ddf7ff5afce", + "0e3e68becbe1851dd098444f15d1b68057795671740cc8c2fe53937b62d29e844042c73a76449e050173f52c111329cd6ee89e6041b8a40b2ffd74" + }, + { /* i=6214 cDividendBits=3418 cDivisorBits=2336 */ + "02fdda70a40bc130d171287d68c62595d524fb3058280d3303d1a5855e57649980585d64ec94b3ce93049f55c24116d7417173494f32af5afc2333048e46733493042f6281555f2ca389952db5efcd9e6ba5077030b11fffcda2b156c22c68aa63be4d6d6881cf219176467b60605d1e8a5c0f002a0458354580aa80a24a36c47b41bd89b810693e308aaacb84e209dd977f6bb3e75e3d6e99a360ed8bad54bd3dd8e6dd562b6c89b34f0685932803a12e0c2bb553c78ababf10418d96387d3fc7857ef44963e18a728ead764e20f6d2f4263bece6f3a2c87cbecf4fbf72192fa94c8005c23145367153718c2a6f50ba1123b626e4990cf84c6cfc01c6384912789536a2b1f1c2715e25b1a724b801cc4fa2638ca76ff2a1f348b35051d8616409897efae7c2defef20380311550e955982b2010aa8a4fd07518a61b8ba5ce7c206b02d444171e824b3d99e57705baf3e41d677d81ccc39d6a4edb7d2f6f8eed6eb2edf493f1304dd94b5f6fe2a1f943d360373fc90887cd4437eaff56160010b43d48e5269ae158414ee159c899790ef77049c129b76a29595c730790ad353e2e7ea4d2a7a36c85b67d954d", + "705052e8fecd261f6ef7388a0dc176b5cc254a96fc99b0f0c46440c46b6be4bae21309e22d632f5bd2b194c8bf768039744ac4ed5e524667b35ec8dde1176706aaae2d1bc263ec9a0ea0af4d4d7c64757f39732147be5d6db9f3080e15afea6ce1e5db30f7a32603e0a1dcdbe75cc88607d2cb0a19ea3865e55697fa35a71c2ef877c104d3949e4467184577e7e1755ac141edcde9fa41363c8ce09ad5563039c47579f19a5dd24474537a874103a572d93c62e0a847ed1e3c4f0bd68b5435e88a4d4c0056164bc11ec7276fb8074fd2f8d207ae6cb6aa6566c62f40f6f3ebe44755af5aa0243007fabe724b7203404eee92726f080e08f6636662c359f8fcaf409020dcafe1b45b18504fb24048fdbf421fe51a439833c338a2dcffa7f5b80f25fa166c", + "06d1a1a655c3eece55349b0a4758ba86f2277f56b634196ce30a67469b450fd1aa816a51f464f64a9b439326e984c7a4b18f3e06cec9679cdf3a629fe8b2ccb42be7135eb7fa314a0ab1e09ea24a07eab210b3e2ebe214f065c6d69b7cce06fae24229777ab65ea3d3fadd73b8e14f29588b6330f1267876c91ad333fdeae6eff9e29d7cfd352b10", + "086c081f0fb38f97081dde0b2cacc632577a07f2845b7a5ad9839603bda96a2c8e45c79b957d82348df81496d0fa5f9ce75baa86ea989bb6bef992e780b33525cb2978b9b0e630caf7638b48a2bb141f075e095bc173b36a3f29fee738bd59d955c9c271f341474f8c62688267d2338fd10fcdb68fd6f4c93d21caf278554f85fd6c5a8e288f744ba009a5f6e9022d3b03ddbdf0aa7adf1f9593674ccdd6345bdbaee6249176f74a5efcecec443f8fd70b52fc5f8a550e3b2fa1051223f00ed6d8127c430065e77166897543b03f71b2256cb018efe77e12acf1d03b7bf7329cbe1aa1ee2e33d1f282f91b789bbef54e1adb2101492af6dc9c2f4307f0c12f0372397d18253ad361f69af3f0d68145aba2a364267f2d971439b817d0327742f2f4bc0a8d" + }, + { /* i=6215 cDividendBits=945 cDivisorBits=545 */ + "01ca5c0d817a7ba9b483a6ac981caf0d1b9959a419ef7ab0ae28d199c6513847f9c1b634c96793b5ab4fea4d332bd92467892a696cc3638a12e29ace5e29966c436ab145c6c8c3c8ea8f97c99d7ff04ec133287e6af16728ab398b07e874d8436b491482401e97ad1a185f526f3f2ff89c5996fcc10674", + "0115408fe0ea14e1f6aef4ed3fcbbb9914cfa159035dad1f71f566fffd3b9ee7504173834ce602c15c8daa9779f65e6db2bf1e2bf56eac7c93a9fb3674524c4c8f80c7e613", + "01a73997cae20bdd0103c981b6a14e83e839d353f27c9f488e53b03bd41960be7fc4b278528062f80c5202cb8ef7db9c49e452", + "0f1244d1cec1f386b87eeb1dcc3987890ce4161a00fc032f8d107a9bdb23a0ae3ec0a1aaed21aeac10792772ef3d4573b895420751bc5405382475bba70e54788465685e" + }, + { /* i=6216 cDividendBits=3370 cDivisorBits=3007 */ + "02cf6e5363f2a73d302b63b3d508131c34aa9df1fefa4fc625eb00b2ec5ddc8135abe3f5eb217f4bf28dad944e83a257f48dfc9259747e7628623ab747dc2bfea2582740b0d9c93716140645af0b888587d0f46475993c91246a0fa5cc8935f41bf8c95f9ff5cff258da7ff6e3923b93d9d9ca1782370bccc447a6396f8878fa3446a3e026793d8fbf5af29307caed15068f756b946c0205aa078d0c8664814d072d9c1c6e24e2de427494cb1e5820eb5ba95067e6084de6d6a21a3aa94be13db7ccb8ad91bb2fefdfd47cd8855fe2d3609a2cdb07bc4208ff7317b9eb31b8dee615012291319ae0c3bd6de3257d249de6bd137891a117e460961aff93b7f3d00dd9e3b5472e4b497a8b3a010f3f7e636e7d8114decd3a453846a53c1d69e6d9dd538d308ed4030a3761d97a8028e321c33faba3fbbf91ed68f1b1a6d898270e3ba7d1df5a6f10fa29d194470ffb382b9e7131f5b5378c63c00a054ff158b54dcf02da3d137d5221bd04fb010c7e82aab15afab52f005b007a0248ebb4158839af727945690ba2137a7739e74fe19476c69ff69dadf83906872644a2f7b51f3e9fcd6b2d4dcc", + "42889934df791841c75f414cff22d9eb90e33c51bc3170f4b8deeb859f54f48a1015531d4d5653fbe5ade9a334606c33c65f4659c619bc817193f133986ec438ef04ddff728bbfee920918875e5ca63f10e077f85e2261df3ea0be4a485573169db9a22a5e48446a43d3a018d1b441834072d200c0735a790fccade3e9346df25429a0ddcec226e5e36f35e6ce74d016e42a056011825a473c468d8396de69dbefb2f2cef3e984fa52af24118ab9afe3a43db02d08ef5c37804457361e5c8dd83c766085f28b97c1d4e60dac362d7ea4b30ac06af128da5d0791b44aaa4915de0195c8f4e0bdb5184d85a68559e5e239e2bc84b4f23b4f8dcbd0ed0d5a19dd67876efd736585bea5f0fd2d64dece0a79c1443fa787ae3f88de37e7299b7ff3085b25df818d3223ce755c4caecd210780642e906e58f4f0e9657678f0b7f0ba8ba32fb7cec72658a0e03b2f280d1366fbb1d86decd82d2d6a3b994859fa637c4c2120ae01d2645a31e052b4985636ae368b4cf2c7e17710af", + "0ad023fe991136d79f257c1985a7e1bfc36fa0601bce4e851e895502baea2e4d355806e72c195cfdc7cff8f8182d", + "19fa7dc6c01741d2dd02023769e4014a390bbb1420662b5d60bbca548ebcafebf164560812b784367bfda9c2b53c13174305b1a601c95cb1e4578eba3657ddec3a6de4e4f722bf2631c6f8ae6c42ae7c2081cd384e202e27a6b6ccbb21b7dc3bd71b3e1db108ad0df5fd88ebec89ca43b7b2feab9a49255a81479a3ffb3f7edf4a857aebaa90a33f840231442c08f69aec39a551865845c95c0f41320c7cdf76c2981fe5349363f420e8a239f8e1527da6d43287e49b9677178bfd907432560a8a3738bf0dfb0de09a258435fba9c00d49f3a349d70dd1b3a9a50e7a9f8fe2d0135a4e7a62a5452adb4682e56e98eee27d3eb8ffc2063dfea7284bcb6b99534ec0fcedcf308c6406f0760fc1cd5d01af0db1d59e1e9ae2513ad524255edb9a6fa3eeb211a110355732ba864e8e37e2789abdf1aa0007c9a30eafa3ee24b4c39fb819b7d2bdcd02e20a10adc2e8b488756c12cf10a44ae501bee01421698633df4204318717a914b450f3279b84fdbbae59b5eb84ee26f709" + }, + { /* i=6217 cDividendBits=1052 cDivisorBits=310 */ + "030e30d396b337f41ef2cece53080c3415410a0a4537ca1b6a8908a7d98b5d077691dd10c545e516d6830cecfedae63c43151d3a1c23e4a58f742c55a6186197b0111b071fbb3620945d242bc952ae2e6cbcd161026a4b4dd05a9dc4064a85ff15def81e1e85a829fe6dfbafec20ffc49987971787ce3c6176ee5a709c31caabc201660c", + "1733a136abb1b64e8f6dfdae068bcce1ec586c0f7c35a0a3dd2c48b66a73ced31951d8b5875f5f", + "21b672155fb63e3481761fbba7aab304bf1c42d4f884c878827b23c52ad8a0268a4ec8a37dc1d5094714c2bcc4169b57cac545529ad7054813062a42f451085fa5c60871b4de9d908473f946ab4f04cab0cb830f8e2ded3d2d4d51b3dd", + "14a1a0f3a576121d867abedfd2aa6538e122c42683e233cfa80b01f05802866e780d71a465a409" + }, + { /* i=6218 cDividendBits=2281 cDivisorBits=1004 */ + "6a12812d74c06f90f53cda4e047513fd7309541f78ac899ff8962d4082296adaa3c91a28b59f84f8516ad705eaea8d117fd9acdde73c728d18a25447deaeecac5003b44ffb30ad2728bfead074e3fe0b48182f2030ab6781cca970ff3ce558318f4e87cb977c4f5f694b41efb5bca0fc28cc02029635a26b0d9a88759446861c707e418e6e51a67e30d7e4fd88e004f79314b14f5d989879fccf440b158270ccb7c35d736839ea9b193efb3f730c751e4845065561bcc8b59098d4e9f9279914c27d39e80677673d33c5632ec6243cf08bafe700f057eab1f46139d59c1d1f79cdbd0b7d388097a24ed0f8e195e89965e82f3b08607e540603407bddd6ee4a410445f568d94aa702b91cc463e60c7e35b0a53aa91acaa2ed5e62d6ed13", + "037773809ffd0980222cdad38e730a8a01e0ef25e773677fa1de6ef6f324a4da21bca49f57e1cbced8caf92f4c7e35debe5a696b6230baa5fc80bcb9d399fa1f88a447692bea3b899145f517e1d7c6faeda083fcc6ef1e45545aa4c868c01e8eab424d94320582d2b0e63421a59f9866297295f0cae1c7aea543d494a188", + "1e992ab6dabbcde1efb157a588dbbe6142ea4767fdc1de31a7041d6559e97b92fc9fdb795f5494c0b96d3204c9b33d9a3c3a0da920ac2cc99b8294f86f4530e5ea2a2d3597983d9e2eaa5c9278eeee72aa3ec669dcf3cdeb98d0346b194482074cd2566db316899e49056e2f238f5a35cb3d112d802882b150c521d1ea6b9e8433b40f21b7a58a3b681107cfcd0fbea85ad13f0e9e35de392ad3b4f0f132438e", + "612f36212f337fd032e0c67f9966200a8b1477c8ba2247ac2363ddf6b118b10cefce9a79dee4fa114b59465b1d8ff40dbcd006d3b809fa48a00697323ab463854616e08462d3187b79ad9071c278c9a630546ccdfb094ff11bc94a1df6b864d75ef3a6ed8d3438fc05b8e3b8eacad6686155717d90f0200082fd8ebba3" + }, + { /* i=6219 cDividendBits=1595 cDivisorBits=543 */ + "5c3b01ed80a9e96563af9af83e80772a43bb1285c6476c5d3ca69324844c74f89a7b8f5053d9d5f5288f2a42131d5765c4d6ced0cd94a1a61a16a30e5cac01af5e2b097f9fa7eb2c7efbf949ed2ea30ee15f5c255b0b7b87bf573244330a853039fd5eb0a628467fe33db1bd579c22c2d80c79c6ac2cc84744f221a5f6698f53bdf482b65d26712ccdd9e2909bde17a133f8abfa4814c650b1b514c123047939308a7d9abb41bb230adca6c1bea380f226132ebe2d3cc52e92d780c820f325457d52c0dc096553", + "59bc49fb8e134e108f6e611d1e95f8f08fae831b613fa3fee9fb76170b6bc3e53b4c7fe04eda8dd0f0735e9aa0ad5056b49d3fcbabcaa61ab3fa3cc5dc32bd85594ad660", + "01071e27881f2accd6707256630b48c44df60b6b3ebf0699f13955e659b42e6c5eb8f8bc719a6ef125271ffd341a1b61f32ae6bdfa7f8f017640ebeee287f48fcdd2e5c94472ed2f29bb1f15063433b701c2a1154631fc486d656cae4e65c577c9767f8a19dac7741793b5b2bf5ae0780c2984362a23d1e4206be05fad15e843f2718025", + "5689e5a55fa0a19daa666d43bef55f34520863b4a42062393bff396dbc1182b2fb77177f4c9fc8295a439fcb41e9caf5931c51f7365aedfb4a4b2c70b662fe0628a86973" + }, + { /* i=6220 cDividendBits=4060 cDivisorBits=1473 */ + "08b276b4d23b362460b809b341e642905129ec90b35cb6043ecc3bf91940fc887767bb7c141ec4b98939f3e302a60477b3c642cfc54dee5ea1927cef7c4fb99c0dea0daa1c0a33125b859862ac5f8417ee168ee104cc3cb44fc9ff114bc73d2560c715cb6b4c7c7ca9587bb0816f0de862ca55791f0ebf5756bbf1fd31f320c0b14d6b0a12ed660c1e117e617df6187e15d55e86841c1ecfb59ac75acdebaab0eb3a7cc3936c40ab8a3690407c7106e657ed1f9ceaa35457b0e43f57dbcc905618e5bbb0ded6594cc35921eeca177a29915392b92723cbe8a27de223a30943e9e3c43589f90598911d3008297623b8027d4b3a4c4052c663a7e62b5047ff38c08ab47832f3e4865915c7e01ce42709fe77cc62c40f3d76e209250a68c7920a56a3282d1d3444360f5caaa579284355bd0b575e23163ae10423f199d8c4ed14ec23c0a4b62629ac8d7840c1c053ddffebdedd51131bac5e5e48296ecb801753ae8322b629f90b0ed016b78b261ead808ab841f99a1bfbb857dc7279bf2316944d04e3edc1a3927c9c8c040550de3a62b1d507fb071174efac5689222af53938f6819d363dc15f7168a2e3cb4c30ed480698a70fbfd2e8803629b3e9e1fa28007ae728e3bbcec93b7b38cb528e82dc4c6739da1d0f79ea344baaa7cd362a4e9f2c1dbb12d98e2a4b6bd65350d24c7a6947e149548c050a25d0dd6d6244", + "019783251767213b0dbef7aaaaab3dc17bfbc04ffb82f24f6a6f564ec457a653b12b3eaa4ab06e94c7382518ab23539063e25da3e00b5f1756f796467166993fc26cb73e4dceef901892a795536b697bdcb7d74cb1aa7afc2a16632a7f23185b22269796a91a8fb3fb0aa3c39af69b377d29d857e4f216fee12e5faad8d2717aae7bd68452e168875f9612551e6beb0a58b2ddd07477a546d3787b5b4c6e2274164d072cc5021c5102a3f8bab1ddb3d22915ed4b76a502edcb", + "0576ab348f3d5072ddee9a222be30a6ab1c2b4788b0010bd0b8da9c75131ace5bfb7750403299a3832ebfbea51bf619d235b00d764a372f5278869118377e99ed2c687f5167131aad17c8986c9c9944d089ba0daea6ecb1794ca78ed31a51d7f27596ca52b36a4497caea5626fb544be4454dbd38818f80fa92e20b6867dd3767617f8e3da74c672a059e3c87e82acff63fc419f5f7f3fd746d4b65f9fdb4be6b37cf7533bd394f89e2afebc6e98cd7dd2f45cece2a65fcd52738d3cf50f5cbbc7178ccb01c1e48f6172ec80596c0f7e7038c530d78f5fb9b0e236a91aa616d9246703055435e392c897797b3c0900e406bb4230e9f6b5ff76ac5de4835ad06babb904ac09f802a1e582dfe77096979bc773d691e05434c616e60d219bcbb992f47f4d3530a5817f9c1573107209cae3887dbe8b22c7c97037d0748d23c5c04fe68569e9", + "015f27b0764ebe548a35f82763eacf645d29612bd48ab4a483271b5fd86c7fe8f4423f60c27551e16b5d970026e95faa0c22082474e48424ec20e10846107a742bc6be40289aa88136cc8f14e768851f3db7127502543c0eb4221d24c157b8358d6321d119e33b076195c2b638176ce1576cf6a57abc418110e322cb9ff599d7c3e75a72e8e296ddf7244020bdf8fc2581b281d7decf930fae2d167d6168e6a39870fee4067ce6ddcdeaac5dc72e64012212c1cf578dc3b181" + }, + { /* i=6221 cDividendBits=2608 cDivisorBits=1076 */ + "4d1ae6c2fc11870e25ce59f62f09487b2c5f295da240ea5c831cb843919c712dd52a07675d425d3575ecd95582a99a73db0cdf4d836036a91452cd1445f210b7cec1d33a3008cc80066e35ed1f7e5ced4c854eb10e6880b8143f4bb6c5235733281833dc12287b2bde39545b79b88f30c51ccbf242be705bb27a42d92b8978ea3d964cffaeef287728715b25820a7bdf18b67bcedc70f2199368d1328ebe9a814f822d690433842a730c116d3a0c0341ccf95406b37b0e2b173cf5b50f40cd1133761ce4df5ad065ce629bd23ca745e807a4d1d07ab429994cd784de948b90dd933cb1b11fec011b60b10222e23e398dbd7b6b0ed292b6da8879ed3cdbb7ad865707e3fdc43d4376a3027f2a64db36594d546574d3062d76b4a70c2a7d2bc441716d32992bba5841043cf54bf23092d4d684ae9b135a31d4739a0d9e82b5014b030feaa13b65", + "062c2a8e6aea929a06f26272ff2a0be70855301003a976847b0e89c808d35b1344d51555591df17c918b642b2e6e0c4764769e1b08545b19df2d7a6a5108ce3b659db78f14b671bc8a7c9f7698326f73bf98f92fd74eba9b5ccc40d9592754dd42ab214b67eaf0eac243dce6b8e2e6710355bb20a1e79d71d73f5a9c75eab77137049b798bbd9a", + "0c7ddd83d3483be46fefbea4aa31fd75bdb2d361094806f69c0715204d0efdc13f33a12cf497b4d1575a11b40421c141d5571569e218c988674870e2d8011fd962f533879778f802862eb2add456a9021462ff1d3e7dc8546b8e7b0a599a48ed32e42673a401f54f09519396a918c62a2beb1cba23f1ce2a3a98ec7f0b2b56d7a3fd38e498928831b421132bf3d131724dc95505e05ce897bdcfd7e08f3d5fd38d5b01764ec0b0f7694326630e82cce8309894d314777bb4e2c6675875d8b7c5", + "0536c4860673d356047167429ad1868c422c203cad006587c75c2b9645a1090dad33d56c74d49c17802404d860ba53ed983dd8c05359fe34bf48ca53ff221c80aa0bc35764a55fc6891c7acc261fd86df0d30af205a8c6d38de195fd455ceed5fa676c2df4000cb986fb1ed5bfc39d2c47d8896609d2ec663fbb9dd65044fe017fc509219f3de3" + }, + { /* i=6222 cDividendBits=1290 cDivisorBits=669 */ + "025bb8ad00d1a7eddfd5bbefe7fe9b5faf6aeae109d912920a4d49dc43868e4cf9145f4d58b9d7544197842cbd584a3b498516e22bd6cd06c351ef2f4c472a8ca5da09044ffdd85c4b1d34e88465537e14fde736f79a3cd9736f60b2fada2d97c1b9735f4760e6bea403bdec1450f339afdf0344c3abb02465461a05c16a7bdfad3504c761fce08e40c52649b454971dbb0dedd7c1d15df85cbdc873b75de3054b65", + "147588d32f587db7b5d8b50ceb7fee3c732bb68b81a9bd2524e9650b5ee54cacc437400b3e71133474905af797b450c91dad7380d4c8ca134646e684caf88a1c5cd856f5631cc884fda905f09314fa39306be73c", + "1d823830a5bb7a0b6e508dbfaf542c1cc713e96bfbd5a0b582fd28d291096dccb1cc67a28eb5e1b978c379ec053d1c1fa284e29192b1ba8f0bac0fcb09bfe5d49f9aac303b5df9336ee11a4f8aea", + "068a7c0bd0644c62304174503ec97c3c67d87ccf7dd52465ed45d98180449960ce7e09b0a4a145e0f550c59d77aeeccb43873cc9b2a7f90137e02b941fe66734086790f4c3c802ee3ce7cd64a8ad40790239968d" + }, + { /* i=6223 cDividendBits=585 cDivisorBits=17 */ + "01af524d1bb736a80a61629f580325bca97424f7d13c5401305e65d74f1b047359264efcbaf7da60200aadf369747759cdf282c06e5641d0aefc0c51411acf02f363a123912baa9bf944", + "ef0b", + "01cdeb10134e9a8a9ab2991dbd4e34e37f1eb8eda71f3868b818164936959b5669703b16b2def95a6a35ae368c6fdc2a249089af254989ce792888a66f58edfea23867983971c081", + "44b9" + }, + { /* i=6224 cDividendBits=3825 cDivisorBits=3101 */ + "c3830ff5acb2aed51131f52dfa880dcc3325ddfe726a4cea0674d96ff6a033ff9bc4df9ab2332fd94b8a15e15232d033f6af70a6f38d9304dd921fbde0582408cdad4bb5cc0ee93e66a8993087c931e371e57eddb267317efd8e9c08feff14086e2cba4aa772b422313400473f8d06afbd93001fa7933bfca77770a57e331750e0e1acc1566291a2282e997d595a40cbbbf64a1daddaafb41efd4cdfd6c1315023ec6f408c2d1409fcf5fd89dcdd35059d70554f376323c18695628687afd9114964ffffc2be88f97e6bda73966eb91b6cc35bf827afebc469601eaeaaeb84e49872e5de0c7aff3038aeb6b95c280f58f88fbf9c1effebd10258ec09e73b28625eb205a7be94b8c5c6544d78d19fefcc41e50a2fdc3d58dc1bf9392443a5acbdd1f82467ddefb03d14db944c3fb5735f10d170652b0eb5c5a98c77666c4975873e5012023b70037b813fecdbdbd47c4fab630800c55218785d3beaa17ddadac56e83cbcf1ecb470b55619f7dae2ddf61c56a65b284fc0226cc8c54f77ff8395fa9d70f6a2a32f8ed3150dd43bc92d36d30e6109493a6bd73333b430049460d87ccd56cb395c45c5b03e2b681020c3529b53c8222ab4c9129696a0fb29b47f85e4c9c557a0d94b2339558edc5f51d823e2a27671be89b28a2463f66dae8ac", + "0d52effc0c9352f8b2aae7291f49685c18e89fa7dee792540868ab329f84af00d28b3800b04727cd12dad291bad2b05d211df22c3b2a37630faf3434e534145afb3411e61438c8bdf2930148a6d469bf84a5c4c863b9ba27b9e46f6be39bbde19f524dc2631025258f3253e1ddc955fa372c764c6952ab4d498aee88b4c069b666d82280becffeebc552ea8118898452a7a534d6d4923c62ea02db39e0115918a5940731e2fdffd38de476ceda1a898b7ea90ab562651b7e5aee57a1b9c8bd9f1f200702027c472ef4b8a03ef9f08dcac4318512d4dc307eafdd95d721b09709e96259e7f4113f819f5a4449df3cc1e0628000e9b5ace7b862045e00e3e8938f6d8291e64f64b25de0c43f29219764667b1bd7d00aacfa7eda6cc7927adedcf5773b50f7ea36d72dc7fcba9c022fb11cf54fb57246bac3e3bbfd4d8ce9ce17131934a9e479e31c1fe6a63e8fe1023e706fd9eab5e4669b499564e42b12faedc03826e7d10bd626d4f586e37cceb514bc7af424b131a98587525f9feacd2e972b1f0fca4d", + "0eac77676dd667a612a78e8ce1f7829d008d6b71a4643d78753f6d3cee8904cd42d65bed3aa2be8d7b2b7e6ab5f4ac4c33b0c2e6e778422ff5a3b0d1315ce70600a8f73290bc2db322c186fcd5b4dc0152d3b7c21554a91cbe381f", + "0b4f9aead722b2a572f2634dedf88304676a07f2297c53b46842ccdcba670ec35a563e8a8b6b1a6c932a147601abe299fecfc730804b748609946deef225d227708b88bc9d1aa1f73d0148112deaa40ee1857f6900281f94b5d5022aa17706ff17c4b877a13e286d2c05177f51630bc236fb3178c77361be0e7b1169f6d46d4806212dfd31ac52a3e1b6dedd2d404f1f3f950ca84d247dce44f5af9ce40a143a90cda8a55a59d0c0e4b80236422702b3a27eb5fba62757aa8e3e7c5e1e4027f7bb90c5207b60fba07f1ca1a6ad11489dd1717163ab797e9e8e48790efe19b935b671ebea9e6f55622ff77a0350fb40b81c9e90c736bd020147ea0f207d529e15f22e5dae4a08c2b46e4c58c29083e9d341b43f965991f5e4e926262a4b47f38548e50f4cfd1569abb74f851705ef271f0a8f9bd60f41a28f526232e5bc448ca873226819580c6d4819491ac68a6cf9bafc37e0738583cd41eba0636b3705110b854a3cebce3261e0f366ddd019b43878160645061eff702100b643df9366f08d9e8a9159" + }, + { /* i=6225 cDividendBits=1442 cDivisorBits=724 */ + "01ee5384a9ad46e35ca118a36562a12799c02fbbb277a9649a0c3d4af3c9d7a9c5b106ac8f4bda6c89adb626152c716751b482ab575376b7a8b93d635aafd1247db9ec33453b79afeb784d9e689dd62eed264dffbb346fbcf990d88e96c3e211f05786f76028f33e7258aecfdca5cade41ac78bb88b85ba1c1af3a2f509105ee4e38bac56d46b8380ae5e796bbd0f2a318d34a8603e2f36177d0582dc8d143e507ee2f54336398db5bddda9df1521d112d7c0daa6a", + "0f67d1cdc7564d338f242cff7a41023dbef1676beab0cf8ed30c0aadf2678f5f037b75d36ce74e1a23b626453b9185a23e4f58ade0be65303964df3cc0d3c5aa38f16a2128c40678a6219eb1522e1a9a9217aed858335eb5273ef9", + "201669dd7aeea4b9acd540f4b5d0ec6699bc1b46488e0696bfc3f1161b7409f6aee82289f63d800963d6a9cb6c118859d515eb41db2d6fa633f47beca4c778356d991f779b2350fd6ff7f6cfe46c99174704fad4abd3ac55a52f", + "08b470bc975fe140b7c3f2a3692e3c10a0d08c6f0dae1bad50e2bf163d039c64aebfd72701288c2b7cf2d334c15c22e380819fdb930eab73c01584affe26cfed8de5f166993fe2eff26414b56d07ab8a8f7ea63a09d975b9959db3" + }, + { /* i=6226 cDividendBits=3826 cDivisorBits=2254 */ + "03c8525868e0d5c30878bc7eb6a4de03777c9466b0d21f71a1f440353db5a988a12758eca6667cde0fac0fb6101ceddb552973028b13d523096d70b7360c230d106fde6b07924f730e21a0a6112014d36822d6e5ba329b8afc6f6e7bf65492c19d788e8324b0d7b3c84c32807462b1263c644202d9a0a0022b0487cfe404cc8669c4557b55204a2198be5ad2ffbc9f1eb0f20272ab0d628ea4b82423e5c3697cc6a9be96980efb3443b60de2d11000174b2ae90cd4439c42bf3d9b50279ca8ac3a16c83d4fca19ea2711ea3ab35e279bdf547cc163c204b2d598a7ea7a48e2c93b338cae8bd4219946f42994bc0de3bb29432ffb1650a11b9e2e66f48c575ffb8cbf6d14edaeea099dae844e7885ee27147c5f44d8f344ac33185d4eb7915b95c4f12faa3efa52407f4243f7c865c2a5f63d62013ba32874de35906d720ca390cdf3b992234cd3bb63b5bc522828b995867c111b399e2661bbd4cd5688bd6467fda85c306b2f327715ff3823167d06dacbcfc53a16d45de92ca7094d9edace7d65bde4dfb889da2c42b88ca759bd73dfbedf1270d6fda316f660bbbdb43a0b570b8b3823c72b3a3aff561184beda324ba7b5ae216ae3eb9a909fc8a886f91d7a30828e550eee9bb4d4af3326629d72a7b0d217c90604a97c6ed81e728fd9ab", + "1c7e7d191d4bb33139f13d879a74ba2ba15f9bf961339b7ccc44f80de84be27aa696db3acab560eddfc3f96939dc6c3d67a8ff9ea442a4f7bc62663d0eff7506492ef6fec655f9ef395c6647b046995892fea7fc2a3e7f5adf6f66bda81dae29e135cbfac2ee454de8969031c03106b24d69d231b96786494ee5a92bd05163749cf0e061542197ff74dc1658c181a09127791e77d7aee17f9f980a1fc47f32e24ec94a60dc1c5ebd818122b20b49fac44a1d46df9842b2a7798fafea054c41f461d4c6ba2ba827bdd689d8f7305cf98ac33199d3c7aab6e071ae682b9f368a75f6e5b568c59c95e27f694cc66746343b64007458e3261bbf506bf89631978ffc339930a99f7fd2a4a0a0278de3348f486927a041b4e70b13fe45", + "21fbb57e8db6e57605453ef4d9d42cb9cb41948333cd1616b19f7716b14cb1b7a47421bac96c03c0e8f34657ea854044a2bbddeee906d1bb50897e43c93f1499ca84a8938451f64beae26f82f916eb50de4db355bd2bd2b3ce06c85f26d054a01d7cb2a8dd03ee99c0dfd1cec66858b89b88ec1a8d7dd6caae1de3766f90b802a6248dfb9dde4eedfd25bdac10583d13c34519450a5c363163351a36c3c7360f11880c45fe6773a7ce62b1bb2ad20832063a540934b8451133a411c7c64e06eea71c7fd115", + "13bd464f81370bba8517348135f2b85cd88af384546d335f1d97a312bb156425560ba5b0c8e7f689ac5f925430285e79e7491c7d3b89772ef1081c200adec4c623092df7dc6c4df7079bfa23fe1560de9458cf9fe42a9e429bf8714c498dc8ac3dffd1337a8aa7a3f27f95711b3a66770902b3bdf24b2d3fdb5c04be62d6d5abd3e38d3738bf472e192c6aa02144c033b2fe71a90a4b464bebd4701148620803e58ce01c2cd47fb05cec8a5fc05fe8b9ac0188f334b130eb0dec77e4daeae719bc6d6a67758872134246d7616fdc287706443bb817f49c02465ae68f002571a8d119e533a53ebdbf1e4ae14d85fc6c81215f3ba6cfd4db828f27348c6be42085d5b1ff7df21f9b445d2511b5c29bf382e4dde278ad61871aa902" + }, + { /* i=6227 cDividendBits=73 cDivisorBits=71 */ + "701989d7e827fd1ca2", + "0cf363f3d574391692", + "08", + "087e6a393c86346812" + }, + { /* i=6228 cDividendBits=717 cDivisorBits=207 */ + "10ffea6aaa3af7b87d041415aa839b1a358cc9acf17d9efc1f167894e78278699f0bd07966bd01b68d8e08e7b7049207bb8aa372a8c4546025e0798f9887d1401b61779c49b2a165bfebc1cc600873346eb8ca123f2f10912977", + "19b18a07eef52f78f65fe414c8e6c80d40066140192f1007cbc4", + "a960c474f2e5a554038dee0950f7e460b846cbcd92f858d68c573ac2ce2cbf9f6eb57da2577985f6474e038bc4236bccf0184261aed47a034dc19807e862c08e", + "07fa8f99390714a704c69c0716a987bdf59dd71ed50cb26322bf" + }, + { /* i=6229 cDividendBits=3304 cDivisorBits=2612 */ + "0896c70701e947d0031d25dc739fc5461e566878e8aad253cf2653e0014bc9ea22eb4ab66f9c27178d40f886eef6c2ba195f4cc8743dd07588155ed05a59ec0889e0d0fd06a3d1a9a0b7095b9b241cd9d335fa1a4be5c9ecd9c684ce8f03ed097d05792de18a6818c346316677563ec224830980ce38872f6973bbc61764b99a6049dbe5c5caf0b85f7a322c7d74407af46824adeecb1a400042f3e0021dd56ba27332c9a5864fbb69dec4a34a91789c4df0d045542f24579caff25ac4bd4cb576203b0434baaadc7414c398bab142ad13602554c3348652cb28d6dbe3f52b9c095338e5d46ca978ccebb8b547061ef7442d97bcddc68ac6915cdf46fd3531c91ef49fa6f270987921444ddcf596daef555a1e4084079e8b347e2c5e02306dd6879890b603c14c96e9d40bdf5f03e11b5a755ca869be9f78ecc26fedce5454356766bdf04bc956b76ec63ecd2ce2fe077d943f2267f4d1b6b59cd45acb24c352be2c4ce98d8791fd64beaa9c4adf81ba2c2225ce03090316192f723bec9eb9625f30b76ec209cb46cb276e008569f71a9fa48604152ce79c5e3a5b37e2", + "0d5c7ee96cf04c1f806cef999c737dbcb7c9a64a45046ba89037512406ea46cf847f6f6884d1a3319eb6d08736afce36f1eca71ad45ff94e68bf2821570db723f56bbcb71980e353e4caaa7fc3b36f4d27a93c5d2e2758ee7562fbdff52d93f9f494033bd6291703bcd710a2e81474e57e80725a8dc8bf83bb4d68eed3297c1ac3daa6b83e4fa528aa7b49bd096a4710b1883d594bd2a881341950c241a92d4d4321e5e921e9a1a5db44e02306e4f044d90131a771ce1add1bc55a29bc1927d48da1b298ba2cdb194707f7fbc4e331175ffcdd01739cf43421c54c8a353baaf5c4b2bf2aa5f7b52a67563434c6726cab241ae0a459768a80c8555103bc660c912f1194f41520ae8083a7e69cdc4df3aebe3120a90d29fa34e7b369593a966f4da05ff70a294ac3a1bbad6ee5f3c17e59cf4cbd3c5092da087832aa1ba081c3db089a1bf0467804", + "a490207ce8ddff7266de883b9ee7c8ffbafe5444a59ed9b8ecfdf966736defe492dc2f76b9bfa177df0cb4ef9f6a658bd54d687b7111b32e3e13f34fa31812cf08dce76d8de0b3623366788e3103dff9326147b49b97", + "08d01993577789c7ed8c8f1c379c84f780d77c1ad4845c841308dcc7ed98207643fd3eeb55f77024e207345dfb7cb42408c3f85cb0d56b27c8902904ed6ee3143cd16a2ba201a627a8b2650af55a3eb2669b624400275757f598bf25eed65f219764e6c90680a66d9de966eff506bc06f340c1e0de6c943363c140f607dab0b678c64bab0699a2c885cbe3134620c11757a0187aa317f2e769daa44d1cb9717a9906bd94413b4d6ab471d3c47dcfdc4e5469b9749ac806be019c351762ed06c44b271a514317dd4a7d6d0389e2b7f3742210970ab1b31bfd89356e5a565f8e36975e2f125a2e0088001f2868c2701224c6b6c689e5a4fcbf78244184d7f71de417cdd6cd2fe22c1914eb815f67d63aef5cd655ff475912143252d8ce2cb367e3adcac868dc413ba40b0679909d1aeef89bd293d00cfe97e46b3edaf2f86280a4350d0f57500186" + }, + { /* i=6230 cDividendBits=2727 cDivisorBits=722 */ + "0d3704e5aeb4a037669fba7bf12a7cab1c9e4e70feaa5f35fbc66589d3dd3f65c3fef38732ee386ee99e798c8d38c2037b6b4ad933b2a709ad4aed91650a40e4934ee4212cbd9bd4948c2543cdef98b32a4a326bd99ba93527a9b12f3a60cceb3b6149fd69c1d171882ee997b42f0afcac92ac6e6e624e989622925fd523dd53e6a62969d464a58e9b57daded21bd8454a1f126fa63754b1d18b466c4769810b1d7e12ce7077794ab9a085e4d91d0df83797d53b695b8cd9fbac6000cb02b73978071c1eb5e3fac46cfb00017ac721bbafe839b5ea3104f1fe3b0c91f08b640f3625db4f995297458cf173fa6e64d307b23db75d7858cdb0a6e09f59e70b12fc73f6c2b4a412765aea71fb0e0d07222e1d0a0efd244d0a34a7a331744e3f0c9cebaa3698359702fbe3ee3f230fdb1e970e40515a55cc25746e77557b730b0b193e080cc7967b970ccbdebd9103f8b0cf881d77be2d", + "0108ba1423c7f7ff1170c61c84aa8e78a00af29125275b39a52d85b9cbc074a3207a0ed655b209c74a98ae06beb5681e793aafd6723f33215ff76dd504819cce8c0184307fb9697d69da6b53684f2f5a76ea63c5eb791ac6ac7ddd", + "0cc77efa3bd8fec93d986080f53293e21833eaa69b60f6d8490a250a146504a74367e09cc5bf4ee4bd3ba80219498f66ac036fb61281a7134f61732e750d4d468e862ccf499cd140aeedbf1028d77bfe98eb129e8ff95efe9ab3c98166bdad6f14cf53d43737be8e6b9cd91160c6ba56e176681e07383a51aa009104c7ddf75aae210a5f64c3f116addc27c52faf981277a43f15dbfc183e0edbd1885698a5704906fd31069efc1495aac54ddf1fb61f3ce2d808cbff888ba79069532a6d1b45dbf09f3b7cc0714ee755d1695c093e0f3e715e1c9320531c21a44fb8dfec99a0e61dfb066c4728cfeb5925188e383770e83811c182f124ecc36f51", + "14d1a5c351f51a684785f1cafe725e370bc80b2e680242af02e7ec8a708af1a2a6c3991bf900e02fb9df94ab1b5c1f05e472f181d7005dd59f03157c39b16bbcec9d9e768ab093731728e90936984c426faa7727c86adafa1840" + }, + { /* i=6231 cDividendBits=3294 cDivisorBits=2258 */ + "39ab84e3fc4994ea0f008634f0d20718f3de9fa569fb5e8ec07a06e220ec81377287b98763f236f2abc27702ccfdcc68ce0356f3936361194b2c634713ed98dd9654533f55155be70bac73833d1a86e41bf26031c2f79b2c61e3196c5982ccaa23aebb6fd96a5190059f63d77f215d15aa152d77f6441273b9c22e5a1ee34b0f9dce391d559b12319fffdf2cc5945600cf52b1d84a6c2951ee83100bf1724678de3dd83a051e0d9c0a06b0db8fea55686bbf95253c4e3caa94ded3548473d54a3341e4601ca0df621964e8d014b36af052089e504de63dd57dfb9f780f0b77f4dee12824cadbaec1adc2412efd9f36456033d8d1831d41b8ef26ec334ef5d69ac0cc0e7a151778973e9aec6d2ddc7c2dacd41d11087943f64bdcdc37c51be7c590c4e930e26fbe4842adbcfd2ee2ca27a299e8afd2eeff0a48bd49ff483425707bcc93de4c6250007c103db9c8f8950a1e7b3f5ac9c8389e738ecb50e7bd7d62362117648952ccea8908fe24d2e84f7c95d30a85ea622c19f64938053ad072589ce9a6ef64040f795d30aa3ffd3f09f269ac6337e56a59e27a51ae45", + "020bca2ec1fad350b04bdf92f34301466a2ea40a7311a65845ad976a02bb7cc3f61a02f17da44d6462fdb8ef3fd3949c05d3c6f7289bda39588a33635866efc5798f48fa5e060a1b7f6f413b0a96079bbb3a1673b443c651a305822d724cd9dd9e19e036a1c8ac8489a5fd8cab97daf0a0823f3010ecf92874e2130b67fb1ee979d21cf8571ac1def0f9d3bd218ba3d315647d37e5c720c43a16eedd04739f2d3126cf8ee14bd77e387fe3dd11f436d793aaf2546e49812692a303f93ef8b654081df6a0cf7f5372423c63d148d6544bf7fd024933a0d870c10203cc281b197db1899984a4fbf0783f80bc344b0780663b82c6c155517432824b483e0ba7ca472bb1b3768716ac748fc24274a011cde4f23695d59b93b1c6fa3e6c", + "1c2f9b40e3f170f7393b00d349f6bedfd06ce142bbbc6a47dc49e26e3c283101c6b9c5d1ae45162d914e0d67d1a510ef2ef85d873b994db2430d829bdc36fd532c744d65a597872c4f255cc8897765acff3aefb203c0c480c13f9aa6c8fd38c3ce3a232d7bf95947d06f71301b978000f7c5031fac045f990aa0867cf65f1da24173", + "014466b5afadfa1e808848ed84b21a2d25ff03460a6a2e28fa73978f23d805ade368b5d8ce6707eb28ef1d1434c006493b8e44fa04d1444c295e144d61595ef7f6900560ad7f1a58239e78ad25cb844d98778d502cb34a7f5b515ae313188d1a831f86823a45f01a440bf49e693a13ce377d902cadfee8990630920696639634e90ea92b8b08484a3bac8b6cf9d65bf3c9fb6b570d63c50478557718574f49467af2fa273572accd1263684d074add62fad69f83f7d07e9ea876fc98a442b116e96c1b1c53d5fd7c80ebc0ff6817d7eed9372a38a773a985cf243b717c0ae618aad21b64654be99fff486cd4d4be98293b506e7e35b2716391abf5e0fe24b0baa703134df934125f4a11c7e4d8bb09aaaec8edc2d3a7fed1b637c1" + }, + { /* i=6232 cDividendBits=1738 cDivisorBits=1383 */ + "cfb2f53f2f2ad7c9384d80f273cb4a23fbdde16bf83282e72a58169f85c283435b5c44156c4210d7a226b43933ab6795ae7ff5826ea37806142704accfd8f48cc76e260d8739791e44640679d1fa8d6610040bcb100aff8536f3580bdc72228432bdb1e5986103ee925521176b2b59fffdb20a6b9e4e6c15e9f5416cb843a305c6147f1e77cdcec180e8a88704298efdcee05f8ec5739abb86ec69eccd0d7de0989b204b1514d7d890d53201bae110ccbc4bfa58642e3b87434be18fb3d669aa8577c7cc212338a40d8725a0ad7cfc1d14e6389df331f92abe", + "60ed974f99b5d1e6367bc618c4ff0f19a52d0ed5691f92bb116dff970f96d0d83d637ef19ef526c41028d62474c1acbe5f61c56e436a3da7f79e2d3d078fecae174ef49f26eb9fecd1a4170fdc65f762cf2596f6f89b624f4524e1aab1152bd65c6fb5e03bf000db14ebdcb54d7a6ea69cc8e9ea2e38ee7ac52a86a424f08db5c2ae70d535b054519db0c7c0f6e0db22c6f3cebf2463feed3ff45379ced615d79e60b0cd7519cfdadc7a96d95e", + "02248f95913788885b53ec24c5fe8f15991094c532f8c3e30587c23c6191eb1e4e6c910991bccb254b0aec89a8", + "1c0bd35808c0ce291c9fca8a87f9360a1d88495855ae9358bf95c85f8bec725abe1728ffc6c1cdc96ffbe86bd3e5de39723f746cf6f30679d6d32ff6e1c7c962743784ded0c8ca37ca4342122994249ca27d1ccc14cb42819367cf325a7d2abc7ea9d2e9c3a0be8563e849fd052470f59d6d376a41bbc2f2767a5ce2ef1ab73500aa47343d8cdcde497e4e1a557bdfa8711f5c5fae96238c0ab9548aaedf97106bdb554d743c7fd38ff5ff370e" + }, + { /* i=6233 cDividendBits=3864 cDivisorBits=1521 */ + "038b4d89741e541e4b6c205ac17a9193b76a2e3e07b2790c6faf4c9f434980d2f5a6c514283089e6244f72e701c45e64b64c7490a4f9ee0eb558efc49d1154c8cb6ee7aafc4b030d329dc2fdade4cb35e1ac2732030ea030c90adda0402bac6ba811bb9e24af31843901b9967eb6e8b6c5917e3ca9d3ea838ae3258e76ca1420a9a7066a891110a349e551d2d57cbbf8c682fbfe4fe8ebe0bd2419422ca7d4a0366f26cb15bd280544b6df5399731468001caca679a6a13ee4c55ac4287543f299fefdddfef3da985fa9dc02f03019f96a4698a37e242dbbccc368c3460e265abeab1533833fdd413869c23d4fc60584c697a35ef0b365014b1ea1a46c76caf6319e03be25ea96a2dfcb6ffac8e17faf22ce5c783ea22ce8d48740e4323c01ed53c6d711b98355cedaedb5b44c5dc69280de97892bd5e9f8c08306fd16781756c4a6c70108038538b63a29b7a2c8634c636e741dc19da38edfd5facc52f8cb2bab30f9235249a435b4c41dc0c14aba1a050502e7cd1d47a15baa9e9d12b3181508ab2d4bcd033f1c55b4b01f79c555ce9b6536729f3567d65b9e96268b9a7cbfaf71efc412ebbb37916f8f8fe0d951f3ff9c188372659d3f129fc747f35576adab6586c71097ad1c329790bd049cea5945a7ec575d623d5aa2e37422bf217af46aad65", + "019556d122f79474bd659808cfc2ab5d9185bb6a18e128c054ab9df5c0e31188ee6c5d06531b89b10a00615dbb48c65799d097afc99f2bf17559ec2a2bfa5a15791d9aa9138b83016ea8fc0f887ac9185581464301adfc48e4180f9e2e854d0039db2ba6bcd7cf92d3ba333c5771218c802f217623ee65a53ec6a78237120012fbb0003b0279a3f01bf0911994ee87471011b3da250f6f2528b62a5fd8c5bc35450f1d590c50750997f075b85b54d9b255fd3a4913d63768dde994663f7431", + "023d0673c64829c747da9dc20c5338d1dced2202e3354fe0af0aa9471321c9430f0c68e44d7352026fa197c7cb5d583da78076a74de1d8478588851e037dd402cbaba8256e40a27f07251b022565359b11a681ee8aaa078ea0e92aaec412ac6ce6018de118bb92b6b8581f25be1476a43ec90b7f77dc2c55e854fb0237a53032276f89e64f072cc7fef2d6ac93830b9669d7db662312e941f77d8f927520f86496767700b837dadb28c18394628196423ae5a98578d278dc7d908eafddfa174fec051a1ea890a048d41664efb421b188dbfa6473a018ba5d82eebb34e1406855f84f2b3707b93e5d613b7b3e7dcbbc14dab26bba8f92be23aba532bfb7596cf1957590201bbb3e8370adfab61a651688304ea244ccfec6228e251dfe795f9d10c9376c0646", + "c5ae67280d98b1c0fd5d52a0dac895e65514b3e192e235e13d862288d553470653a2acf49f37bc6f300e51d764d0ba92697539561bcd81421885953b95a69e052a191eabdf3d0e3a1ad381fa3a711c767f1e67f2df5bc341edc51975807466cb8897319e8890c45117fa7ab4f2cea258d52543e91249e81358dc608bd295f1f3b02774cdd7df454ca6ad5bc372108cff0461e04ff8413ee097c981041d377c5c721f25736c0140aba86413d1e61b6002029c92aba2f125e2b94cf6abc1ff" + }, + { /* i=6234 cDividendBits=1284 cDivisorBits=773 */ + "03a152a56dcdc5683a8f1aa2eee3874bff4732fe736a7408938e5d8c045f496dbacb2e007ba4edae6df7b7e07432fe4858ab460cb102833aa134a33b428581198d84c5cd0a08dd995df2102dfb55dfccb5c5c563d16d35a47e9c2c719de5dae5244e2f8aeec3d8dd951e24fa52f0e55c079e899f6b981570ee8108321620deb68484cfcf725572c3698fa602910ee319eb49a29c5b3ac0f6f85d849fdd4cbe7c30", + "15620114033a08a648c5113c82de0f1ac49e3b52f37b745db481a7b5cad30ef701a5130d0cfa5d4bc847883344f7574cd5760d79204e378b0db2d6e4977b0737e0bfc744c8901bc1ba436d159c96832c06f0c66e1c0cc957c8b543f2bbd6629e6e", + "2b760f75a9cd97c630b1d8e84edd99813f9701d9f2be8973dd1f1efe9249ec2d6982d5189ee4bc02d9242a020639e2cca2ea0fa177982a2524ffac6cd41bf2f9", + "114e80d755b8acc07880b7d2ac03f3af8c2468d75d0b983d5850fdbf238679b8d1e03144e59ccef4a8281b50d0de4196e5ec7ee50bf99255de0248372bb825502c6f820e05ac7dda2254798c4df9ef6e7285facc134d177e85affff07ebf746732" + }, + { /* i=6235 cDividendBits=1988 cDivisorBits=1760 */ + "0fa6d022a65e1ef6356939b7cc24900198a68826b59485b4b3ec5aa9d346f2e203ae7df83fb212d3d8f2a7add1fe2ab22421e3ae6287eb42726263e866b70b660e308545aec625376d5fbec28b793bb0d43510443fce15d8f7a906ed5faf08759f588a9693573b6e42bc20990c8de2f2a9132312f9ca565a655533b9762990ab32f5f3cf422e62db8b6360182ed6cb9d2cb693e4354d973312517dc13398ee9408fe5d51ccf69b1a088a1d79ccb43a8a0b25595992f235096c0320c932acf976984540f5c2002dcbe5c657f71203d0f345fd9de7c78891d508d7c28fe5e0f289359dd4aafdae37722246f5bb73055d779133bd447cbb7daa46", + "51581c10c7ae7816c3b30f38e1d740ee1f7ed5735eb415b7cabc5eab0c379fe06e048c4a75513ee6795097a1860dab0c4ab1ed0a2b91b0c973d4902f618b1c9840d92cc990523aa1692249e34e43e2d04f7f3112deab5ff4710df0a86b84a05cdea13a5dcba5c6aea580a356e3c4666e16c27246c1137eeab3ed36e920ecf2c4aaf25f85fd3208a5bdc67d445bced5497120c7bdf388001c1514ad858a99f07e7449d2f101ce3bcdb515484bfb9aae7c81ecbd1c2700cc00ec70f6dd0923394d378df831bd317619e63915c63571d771c4bd59a227eea72618817fbf", + "3141ed446c937da57ba1c99a0b377d5a11bfd25373d4358c6b1321a6de", + "3be7172618fedd725c974d29f004e887a8d86f760c30b894cfd288025305dac9e8a30b451f8326319c077ff8355e00d37dde429318a7676b1a0b434596dbde9f2815fe5bf435527b156644b2ed562d2ab42660f7224b4f4d86c15770f3c441fd53852aeb6efacd5b4e630b42d1ceeb43a4706c2b0d981ee5d565a5f44ea4f21c6b323d9374c0455ffe52c4a1d1297d13d80980ae6aa317c58289893c56641db5969132350d1ac31929919b510bc6b5468c8a1aa85f9db08698b23bd871f06ed156ecfffeb2fa61b51368930edac2e16e64906828c422ff8dddbc08a4" + }, + { /* i=6236 cDividendBits=645 cDivisorBits=46 */ + "0b1e9bcee91428370c71c96ca600d782f53bba9988b83e16d09b750084e3ae9912c3b7f4694f4aaf1dd1f06d67e267610b6b02c2b133a933f12d1c2f948cd8e3f2f388c679c1e20fc20abfe33a8a0ff34b", + "113693f86ecf", + "a55fa651986c9595aa6aa5c5194d05067a5713202a0f948f0e5556a215d02bd9bd12aad9ee9ca59aea2bd02d523021df6d29343a51ba38466e65d7b2fe51d54072b3cf04b93562531d1d1f", + "098bcffa153a" + }, + { /* i=6237 cDividendBits=1311 cDivisorBits=1077 */ + "5fbd777da27cfe3939e9eee20e51c03bc0c3e9e6f08ed147c66d26b36ea0adfe99ae6124c94106e1df69c71357fd51c86067262404ae078752fcfa23054e755eebf9c1666003a39ec12e288e9d9ec45f48fbaddc5ff767f85f0d4745cc22f17f0f239e0a7e3ee4e14ac5dd53afee5eed7b1dc6809036324f2e80b12cae979a8cb3e11238ed1c2f279541dfd9aecb935e4db2f0f58689b57bd28e5ac512cf531ccaf49f23", + "114e30d8534df78e3203d4f1ddcaa96bb944078595c54e8206be7761d5648fe6eecedfa30ebfec13b5edd45a365b846f78ae96bdd5fcde6b69f199d632935c00cdaa610c2d858eb3b4e9fdb132436fcd53b4e78c75881af41f346815555656f1d9022836b811034df5cd50abb9deeaeac7fad85ddb89c75c26c69da890bd96f4b91c3e60399383", + "058849943a77604295ec8b533d5a1ab1c1b707b8eaf2515930af9a6f3b59", + "0a13f0c6186eae17186b6cfc1ee37237c04dba20d297f0df27e7451ab9212e242b2d640d4eb174a37f18ed5a6ea025a0524dc8767de60596ecbfe3a0b50be963ba055f281a8cb12006ef01b8bee630807de291d32dd356b9875372ac3701293201698438ba2603ac56ca5e7b98ada28c1111944e28403d82e7f2aa187c536d41745eff4e242598" + }, + { /* i=6238 cDividendBits=2248 cDivisorBits=883 */ + "b14284a3e666bb23eb1bf5d30dbeaca7922ff2c61a93f91387183ea24137b3e1ba89794d702b54059c8697b0a8d1b1f081bb890b1d19d23bbb7f21aeff9ee6155a00ee92f98c99e9e01e09fef2135699d347836bb765ff8425efdce1c9f76d4ac06f6cdc5af882c387adb872d4e0fd740a8f19811e5d054f07c4e73f97311b006dc0081a5d49360668d218b056b77749bc2aaf16fc8609882558c1607abc8b2300b161c6b6e1bc8bbee5849891560ade23ec5dc4c4c704b81239b6c2738fd7abc58bb715fbb1becf48885077e389dd59866ad48ea7e1f993e76da30f0da744b12e481c19835a76b38b4806e884436b99d429bfb55b2ac149cc934b0498bdaccdfccdf5b8ecf0a88fea1dd519349cce832d000281da57ec4f68", + "030bf18784a799e0a5745b80e9b4af66507896201d079e091f9593ce15e78dfd8f2a3d0beb4e6277d2604cfc3c0f45092d534ee435851e5e02b79bd75b33f7424ce777fbf6e264a05d1784d05092a3fb5c981450bcc4fe3a3a2861284c7dbc700c01fb1538d301acf9b64436141a0b", + "3a2e8ab05b146bfd2119ba4eeecd0747f380cee04c71f8f79cd0e471e79417729128f14030fd9a799fff9d56a85dc105c6481aac87577c6b1d48f184273131a602c6a7be9b128d5b980499fe931a592fe7639c4a0f28e7bbeb0c4d546a8932932f8e820e487c6d2baf9bc445b9482ce2bbdcdebe6426f048258a8af3625d17e0adf4f060d280cd6e8ea1fa6e72549a2130e9f23914b1846c680a37212be8c196b204929562f62bfd395674", + "015b33c9860f8f7b02f88a85bd124e03628ae9698c823ef77fa26ab50cca6ff81f1d4eed03d33e2d57a4b7b28562e3f4245777f34bbe7a4aaa1c91a9f4baeb650e71c06d83e59ef7491131e7d3d4457d589d7bb18c97150b7ee34512c8c882c73d5caa12a77306f76226b76a9dd06c" + }, + { /* i=6239 cDividendBits=351 cDivisorBits=257 */ + "09ebbe7948d92261c413d976b15702bea8015e63b1e684e3a464c3abdda954dacbbe03fd58484bf127c8f1f2", + "1c13f151416c8d37111acce61481f0aa5df50b522c765ff401154f6a3b8ed164", + "5a7417b28408ae53b80fb4c2", + "048a780838028c2fd08ebe6ca1ae64a2f46c59697f26531b0b836c457577f42a" + }, + { /* i=6240 cDividendBits=3885 cDivisorBits=2348 */ + "1091d50e17c418355d03cd11f6d1a25029e7f981612005b875e2bdf5e687699894441c5251952596b7c74d7e7de59af563e3c79caed88d1d402584d7d112610dc4452c8e3130f27f3cedacff83ee8de168bc3af975f42d9cfe03fb7d7bc8d56fa614209b2bf1e161393f657bc0f26a2f5613bd38c63cc48259e2ce88507783699ba4affa61d4f6b67ba054c37d4d2890d9fe7464aa829c72a23230abfdb2d97414d639640bab7d7f0212a4cbb77e561c08b385a947ef071c640fe702a1be83f9e98ab47da410f5409efb277f76e6367b9f5caa169d5954e773c82f5a96c1fc507baa7caf74f1f8e7725502cfc6982d050edd0e535b3f79e9ce6666d28573b003ede36cf65e5b3387967e0d4467d6fefb5d9680753de8837ab46081ecd797e7d353ecf23c37f04183e61f723e87cc6a8d4fde3549c6aa38cbd57fa8909c68b4c3e228a5ca89beed0ed1d89540395360c3d50a73b6547f3cb1ecc5311ace51e3ef24affe43ab7739e93765f3c647399d57b4a7c6c5f9edc27a5a851d6b997dc8371cc79f063b9f12bd84d311fc7b5d620433999845b93c70af59cf6db55608a10b23dda0c954bb768e297b3ce4d3e03538535376eef85f72e9ba8491fa6537dd8e212e1b22def94e4cfffcbcf8fc84b4605d6198f0381d1a8f418db665e11d1f642b68d4753d38", + "087b4dccd63406de49b093899d0c8a0ea1c98f94eb28e0a46c5558ce16acaf941d5801906637997aaeae923b6c4464dbc51c2963ec805683b08e857fbfa83c5c00891a3fa905a52f11bdc220c0ed0684913a8bce6dfb4052a105d5caf3edf629632423f68dfa4972706759e1cea803d19ddd1d79ef9d7e6b582bbd4f83dbe5b501d8a888bb4c8ba1d5f3bb174127ed8925b3677f2f0c684ffc7046f8507e601a3dd484404f0d0b0e1e0227c0aa78d3309c536788cc1f94757f50dc286682c168e35be46799e7c24134697faf935fafd50309908ff1dc2928872aec92c075e2316bd1bdd0b91688332c19238a3f215eddad323aec1781e549d335e754aa128203a2f281b94d7386ab907b1f68f0eaaaa0492c0fc80b89ed1007a6b2655d6da02c8dae93abac8a", + "01f41e500b35e23c3adc98a921c1979bb18e3ca4a074f331c5b43ee5fc382062e758b0a36d03f02528dd5c1d0c2d0500cd6efe698cc051807ce8f1a313e6fc1ba7fbb36b102ec595c3e6d0b03bc74f7f199b8abedf8e72fee51ea1831e5b06adad6780a8e511adb278e254c57ff09d214b2d492de6729a5ab5f8bc6df0f2d56b51b6e6a93a6d055621947516a609c1bf296295737d28d8e43a5c7eb092f243e8dd5f181abfc3e32a6ab5e2eafdb385ba042208d083c839a8f191a4ebada0394b68", + "02209554c595a3c2af59b7879b943d27e204b67139747d2a602614118fd20d27bdcf2e827ee03e05abc5a289340b1635013fdd500a0b07b2a9cad0e85a38fae0035ff09dbaeb6b70f0cfebab5827592f997dc319e74daeced27447b8f35869024b5632604741eaeb614ce4e591c27028493f6cccca5e5f4d58190b05129d931bf140a258a2314b5643d3f07614933127a4ceb2e7a2219665d713c23ed9f2250115971879db25237cdf30c6f92a6e28d959a5c27feb3cd1cd0a62a12a5f5d627cf093ea1e40b388534f565f0e320dd978ef0cd86d7f876b6418d1ce6616b02e18f062e7f1ee0fda6d89144d01e1f081276f034e2ecb192eab2c9882973ea58bb2a0de9699507081503acae5d7e788bade0c6eb5b85754ed7741cd871c770742d002e7e070b728" + }, + { /* i=6241 cDividendBits=2314 cDivisorBits=1419 */ + "035bb8f2059b48bcda0e5b19aa63b0d758c2600a0af9158258a3aaab048a4593ca296165951cb761cb32b346ceca9439f9ce5c517e2493137105116bec26049831e38ccbd973615a6be42cf2ed14d6b68bc4fb3c791382cdc1a80b038f7e4f6971562196dff3aeb766d085eb87d29643eebbad64c256fe0278251f35c3d65825d5bc87fb4b4dfe4533787343fa9778da16c674ba4849aebc0be4b0f65d96d49b4f175ce5d7c09100c0ce553f2d2e4baacd9d3cd5a4dffd98ba22e2b334c34a873b7af350b6cbb7dd2a58acabcaa5151486cd5f3f88c47ce7042503ca801094a74e6f7b21d428382f7b3c1e6fffb8f5dc904947ed88df33adef2cdd150994c92e1a42f91e9e09c16446fbc124b19317cca20151bb1aad9eb0ef231550981ec0eb2c07", + "059f23528a05393c5114d4ba24b03140fd11e84e4f9000b65be7e61eed664c136187ce0f81a4dfd96167ad07cfcf88900e67d86db4476c185e56b10c0671c84abdd6a14101b4141b48f797fab3dd5162292db37fc6502c1a44a843ccf44f1330bb84ea0d29ef1c846bc821fe70096177a19835702414de64839e8218f71c55c526a99489a79c4cb2b526458dee7d52745ff3de8d6a6985900d7fe23b752a549cfb1d4710121fbe5d1e573fb65eb0337c095f", + "98ee5c2cde05f4957e96e2127e2ae26785b1a7f36f76e3900155b188d5058d98f928829e5c2f2f39f654f7e1fc119441898c1bc62cc319289a690ba7937faf44a747a43e02b171bff49ce04342484adce5721a2bed845b2bcbb7ae5a2f1ef31be8bfb2c0987ffbc749a6ea5edad043b2", + "3aefdde9c741883e210cad57e12c732f0d420d6ef51e8348014be92ae2320f7d5cfa96ccdef61edbe12a2996e4fc72147f775c45e9cdae85596d9d8187b741a175021e730f000c5a15313d5091cc57fcee48caa45d47d616d9252bf23c48b76985dd63a1bbedf785258c97a074bcb8fa9e6f4d5c97257c623ecbfe9848fcc57507ca334a9a35440b49ec355a054f489246622990641ee052c0225b030fde32bee0813d61f682abed47a002e87cfb08caf9" + }, + { /* i=6242 cDividendBits=239 cDivisorBits=38 */ + "31f473dfc64ce42e5d56a878f6462386f1f27ee22f194f0ce8c242e5c168", + "246a2929d9", + "015f307b3cf7ef2c2d5c890180e58eb71e28761f965963c40e28", + "1f77095980" + }, + { /* i=6243 cDividendBits=187 cDivisorBits=149 */ + "043e0949c72a1b1341863b9631b55312df51cf14cc914779", + "16e39d050f208ac5a80b625dd03e70bf6aebba", + "2f729db6b3", + "038270ebd5add882c7b361954db5778c26386b" + }, + { /* i=6244 cDividendBits=2714 cDivisorBits=604 */ + "01e79005ef60eec6d4dec1c36f607076c24b6410a668cc7a4c0e09ee6f1abf2153d4861dab11558255f88660008fb153556b398573a3f5e8b78519ecf16853fa0e21cf39f60633823f954d5f1628da1f6f96e0f781396890e2c8c9ec97f3c2d376470a97cdbe9f8df7430e5511b75e4888ee0d185ed02ce409455ac40d2b4ccaed1dc4c5232c0ddec8268c76134af945f393cff8c04179c42d1f083ef125316b65a78274608c535368590ebf7eefc0dd20f243690aadf04cf33b25ce4db2cc708313349cdc74f6782b94f669aeb107046cc03b6eb74dfadf2cc9f69644f34269ad55518725b1f0dd2a16e92d384aa3a14e47420f6afd05a2e2adef052eff49bb6703cd92260327c8c485f9e434a2a9763a78b548d772904099c9ff25dc9b4bc27a2207b932708a1e716a3a05f7545a3920f1cbc23a9a49d0520f0e8c258b286ef1de0c859e0322de85f2da21123007629163aa1c", + "0afe4899f79d835f50201be658aa17bbfc800a957a1cbe4befbf4472482e45eb4f5d3e97b03a9b58338aaf92ac62ef4058e02b02db61c4365dcc6a186d35a65adfcc346e90ce516905530d34", + "2c59d4e0c9eb05612a7b2fc0f5e7028d3b7d3e1593a44661598621814bbdf7136f8eb1f7e972aa013fd77d205cc25a21b8611e40c9699437b021626c73824a9e21bb6209e82b0613e251ffd9de98fb49cdd5982bed9180884bda223c218383d57aad3352f2ebf233418a0dfede12d8648fd13888f2545ac3edcd9b943df3c211cd267aa04bb5b896be669bce90a2a4dbcc616460af4594a58e74982412b5df3cf40bb5ca6de7b9ae15a6e39011dd1784a0b8cf3c54fd2f01f6675bbf518f5c5aeeeb2556aa9ca6961304898c54837f37fa5af74e952a761e88ee399961047260738ceaf7795b8cf5935ca66ad8626f299c2436fc35888bed74681f63191263145998bacdca9571e9", + "03d49477bf6c45885f7fd20e91649f72babb70617a8714ce0c24b8d7fc548a9cc43bc91437ade9e9171866922cb1c2fa417d785232794efa22750e87bc505717af8293536e2b970d58b4b1c8" + }, + { /* i=6245 cDividendBits=2335 cDivisorBits=2132 */ + "5ee37587dcc91b6fe80a9baa0205fd77f540278fb46b85c0b7a5226b2bcec350e6679e75345019fd6a62aefedf91b690b0af2972f33b7083412b7ff535f646a6c7ed491c0e34fe1a56d2903a6e457332259dabf4ed70de010cc950bef7671fc42f4aaeefbba210b8ba616a7d70350899d4d5aa4b641cf19d8efe0aaffe737f5d102fce03853572822ea208a0032d2e2e79357a9b62e6d3962d51c814d34d3af3a11c2db38cb6edb4e27637b2c4dfef193646de480c7712bfde2a2158da7c4ba2029d5522dee6bc1cb259d0caf240986c6ad19198851be1dfa309dd25b6c775ec9ec0a21b2dc221406d517250dc83c6d6784aa60f34421b62872e4d2ab13454b2f558acc6efa6f6d6bf36e4281c3ba67aa531d51df0917619f9c1539faf366d363e055107", + "0a1e9487c0273b52a1700c948c44725ee697d9813f48a405765ceb9a69121b6d4277019bbe389853742cf3e7ae887502e5de4a1b9ab720abbd75ac4e1221fa9edfcf6e189f017c97d0bf08aff24dd58c257539eef7632c3106a0fdf76e9d5bf6bf508a001f08597a4ff997a2c72b82df44a8c3971a9324788243536c90a6386443a8c15bf47a32765122d9b41362b6b7fc4babddc04104efa45e677eb45b8a3890683242938a603e0028c29b44822efb8f53636cf89dcf88bb911e0503d7b336b41feb5a3a19905120db7e6a33c48fc6faa39b479071b525cb08ed1d23dfa16e2be38424a62bb6b7aca0e398a0e1d8c04e6e41cd0ced776c07b4bdef8f5079908fcafddf0456438764e147", + "096078aa201fdf2b0a4893edb96f5370907cf2c238f8a8ffcd64", + "09ba12d9d752a90bbfb41d4e3d3b262b42e72ced7a4b1d1a12693deb9b35ea689f1a1cbcfff713d7c82c7d07fff568b765842330464cb33cfd197c840d810bd96888d73378acebdbf69829a47a058d06ffd4f921ed04670a319018b3d65f926f92cf4bc2560dcc490d28248f0fe7aafe354377bbf89b8f29d756322ec3d123c225536a99b6140b13437fb0d3d38c90a0391462cba2b5be67860cf0d0cd79b62f3b67fac665acb106b1723cce0a5c90ecdde3b22c7471dd7a8d1d51f42752472217d382113864074d4beba096cf1acf58c47307267a2f1af312af78a9ade9e92ad41051987a271ba40c246c9c37950a1c6bf7d03b829a2d1109b7264ff0550672eb621ac982d14e947e764b" + }, + { /* i=6246 cDividendBits=2706 cDivisorBits=2358 */ + "034bc4463dec047e9c2ffb722b984f8f868109e58638624b24e36b3c6b46ae26dff9f1d92913a2581d078cf83d5e6f16caf2359f96a03066632c0f8dd3204b742c5b236dcc47fc190799338556481014a27321176dcd855c65b3729a8e4eb84e584ec03e8f1629775093aab171c6f1b80168cae380726bcc4f6836a169bd48bdad10e42ef78bf5ed97393c59f92589080d32d14d554a92aca9c56b48e95d09bed522d1f56e84e1829eb3bc4735bcbb57ab09a3675fcf7cdeb5dffb4b1da3983116000694f32db3db5c9e526ad05b48457faed9fedac52dc2a1a854fe95fc710b90790e39a681b640d88d291b0cb37bfc1f25121f7d9166d9aa938976e680d4905794cbbb3d177ed59ee08369d77c11b55518b0ee3a65f8dd520166e71ad7531d0455fbddd755f8aea698d9b288831f3358c9f8cd5b50e4fbb6d31a6e4b6647b12d36f19ec739b1b9bc5ed9885ac1532d98edcc", + "3f6a70d52c4d3a79e5c57ca1404f2b48e5b5fbd3c9cf02c5cfa0e398f1ddf8de1f292b23d35764dff51279a71b61e4d469d8bcb5fff6a10db80be4d34bc51f817dccf4ba1a615dafe2a5f14dc6a2ef1cfb6974db8257dced1c30853b70e42b79ca7e3a70a89652aa44c293ef87101b34ed49594cb2ef3fab661ec2a63c6d1129dab583a829e5e7660e1c95795f5fd8ed12513c6d971fdb97c21e4fa7d8ff5c44fb7b4faf8d72dfc74649217c6cc282001437cc050521e61ff661d078bc71957d134d1742f3e6c06964ef5fe62c9cacf37c43b4071e77b7b30336b7b1ab96bb5a485c997d783bf96ac0322d0872f4707b26f1816a752a1771f489151ef04cd23d7ac6986178bc65eb7691c155b5770400b57073150946a3567956c2bb0ed774ea8d1c7795ed3a5a", + "0d4e28d38ebebcdd7d5908b6468bb427773b36e9463671e5ef183a32d9dc20cd7ebc7396e72a5c5b00231df9", + "07df08279c3e2c08b5f96f1e35ba6a688f7efd246a973b1b69cb43f96f73dba000107e44b4ff62ec3b5ec3d2fbb9e313e1c8f2b75081ea43b3d86da7328022c9e5e629fada02f22042b2963bd801e709095fdc2b4f2036e12a576d0894c42eac98fef43ccfba9f9e71de6179feb5b0317bd812e927c8205d6a0dbc982ffc39c1ebda3c7278855e273a821d8f9a7e46c02f02e8297ca58ac878bf3cf9c2c36fbf46499c8e0f1b83a6166b1f06377f92a8dc0cc98535f9f8f6f44e408d20772e16f5280992d00a13c030e1e371d3cd46615e28308afa0da874fc990c3a8882237016267b011666ccd9a5e5836a74db1cfcfcbb29da1bdea99f9cfdb09b4c0cc6c85405f339d44dad5abd9aee682f15ae8a7033655e9459787f158bf46a4e1e922f76ef997ff0fa42" + }, + { /* i=6247 cDividendBits=1066 cDivisorBits=200 */ + "015e3e32ac873574bf2b637810105101d0208474cad0a858ab4429d3777bec98ec03b872497f93c515f7d04ec6f8180185d1330961961f23bf63ad2cbd2d51aa5326face8f5dd7bf695c78a6cd3091afc60067a1c6f65b967969c4844d59084d2a42d820d4854d51201f7489a887c704f37b00db07ade9301022870b9e289ad9a175cb36d452", + "6f412c704867ade1b9aa36e15a683b4d7727bc7880fc2b598b", + "0325eb4c2ebba81229df1cc2a62ef59fdfb8422facd2ccf8e119f67203836269ac5d40b1a831c542298df1d80933a5c6d4c2ff813b44020695a0d81c9695c0be9b49d3bbfcb24b65c8cc02a88d21ff8d07d95c32313806e328ec841b3f95de280548dbaa04f052e20429e67a0b", + "3aa587095a91de5ded9a2c6927280fbfd5f3cd5f4896cbbd59" + }, + { /* i=6248 cDividendBits=572 cDivisorBits=184 */ + "065eec07e097564a402091d7307f7fa4d2e4248e734b63dfcb8bde17cf43be972902ca8af67cefd9cd7064a53d4c367691d13447b6429bed47566fe0f5a435e6f28a72f28be88ccd", + "6ae633627696f5e9fe21730d61a236b4f303cd0f2d55c8", + "0f41b29479b95ea889818c707de6bc72390bc5a5064178ea86379fa791aa7f65ea9173ddcfb9667a492bef0039d18f477a", + "6308218e87fe79b937e6314e3dda5fb8ed2d208acb337d" + }, + { /* i=6249 cDividendBits=2715 cDivisorBits=1849 */ + "ce1b367fd2a90888a7e1c740a8745eed3adb9bc95ff2f6cc9b6a2819b17064e0562cd9c2ce02f3988ed6ad8f173aebaa100e35e9102ec6c117884e69aca2fe7a9a3d33dbfe7bdf7a7766ddc5674cc468828e894346b0b8d9ff7652af18f9f9cae9f8ba076f6253f7bb0946486b22b3927c7b06600db5c19f759e102f60466e5ad5716a86365df91df70ed645f25053698a8a78eea20848e8bd221209b4f2a5ed9f621f008d89a70259417d21856e17961d62500647e8fefcdd951988e8f177d8c43874823e9860da536524365d47196836074b93646bcc802e4b0378092851d490a7599f482220e08b698a9e7c4e5d848e20999865841f9df7d7321ddf874268ba718c14ff9e1299db30b48fe8df15324250eda6273a97589bdee0c1206f6589feae7e3e36057dce6980e16cf30a9626b9dbdac126257fdb966b1685ed33124a6a55e140ed9d5f0e7ac91e5a55c663ac547b12", + "0164efb89ec8ebe7dc3db013992bbda8077dc9daf102b2e0afd89666d4f9b06b231dea68a1c5f54787472885e3a17c0b15d0450bf6b3ebb7414b81a4c3c5f81844f6f41f86f2ad17820a24eb2a3d1eeaa1e6a1d753f4fb5ae7ffc37f962baf16bc36fbc655d755119cf84c62682cc6bc7458b864645af0d8df944eb87e4deaa729cf283c466f84ba4d787a5491888bde93acff7dcf59fafad5269d71b35d598f928fc4429b57e0d4ad3516a5d126875e0c394dd79142565464c3dadc1f17e15ebf8d20231646167ea679f8f98830eaf0a4a5c49684a4a1719e4b45d1c6bc746350545385a33b6d24", + "93d28bbe16dc1f99ce2c764f2fd38a8299b48575f41622eb715e9d162ad2456abb3119b377eb0890fdb89e83dcd3aca269720657e1aca1e6ae080ff636f6527357b6df7da03adaf62c490a2d5a8e01b0d8bc2f4ca6700db2c1c9613caf765d77855224a9d85f14f05a4bbad7", + "d82955efd55263714b1d1956107b409b2f6b50d73fa614ec1eb0e5af7db8b100e06e4a527a41e1bf4602868be894e5d56b03f3f7635e879b22251c61b115cd3d587652a9f50b6362ad187eb29c656598f94dfc1dfd311a56cb947457dab332f8f9324d70b5c9c4845fde3799a1e2c543d015f855796fbb8bf6624edd10745fd1262e5d69836d9ba025a57220767951407963d775036fb25b650ea71e1b53ed5d4495449397400157471c5b369c94a3f61287d1f5fe9c54d6d1fb5b7ec363737204ed532472dca376d4a457ced9b98cc5ed9cd9d5c4f566f05d59dfc94c21559eb1b006c693a9d6" + }, + { /* i=6250 cDividendBits=3696 cDivisorBits=3473 */ + "efdd4a8e073588beba4902fa25553b1d9a77a8554da8febc8a483fe92dd5a7c688b6f923c4303cd9a8d889785b5962c69e88eb16c3a1d8c8dceffbc9e242530d661f740ca753eb9efa7955793e6a61ba3dc08bedc6aca04bea15637fd0ae8482f89dabd9876d40b404bf798744c9c3112d044cf7fc3098eb731b414d0c9bd1804f25ef697fea80f412ce1b88e64f35509ae48fac7288fd9977d7426c1ff33e23911e7ba6d88bfc108005b29700a6bd2f36066703839e1432f67e88938dc2f5d23dd3e80f3076588bcc63a0bf5c18472200660943d077d9359584a5b08d5926367e96b727e7f816d79b8a63b8dd20e2990cad61d76738c8a9f195c7f186665fa30b288c703f1e38e79a677ad8d8460ae01ce5871385a47412060ca6d0386ce3d9ea114aa5d63b20bf20b0a31ac7d14eac910c86dc43d7f5c68c8e3265599dc1202079f029ef9c2deb42104fc83602de75676a74acaa0d6478d69c8e7daa97072cb1135799b726fe82accddf2ef10b6bd6289eb3bbaadac11fd09d46830910b4c997f1eefe3b4eed9d6838b2af072458418f3df321c2da6ae91c91291445f377c612af11da2ccdc34427ddd895efeeae9ccd3dc1999e90415cd759e27664f21d373fd01d56611eb2414f5f290d15e6", + "faeb96c5bdea134b7ebc33a1e31d1b6625b1c3bed7642ecdf021cf8049a3f55855106791d62a76a194d92ba294b9f61448e58ea09cd54e14e6000752c7ff978538bf967d8801ad58f3b3fe8f3c7bba83fa91e06a2583278e11db01f277e358b1b65b96ec6c23c5dec3a195825a7474753642d9c83225249370b72b50f35b677f8998eb6ace0584c4d123bee6c12baf134542b41a793d3cc390264377009b9173829134b2aee8fd3ceb7d10108bd68ca64ab5686dede2e2b6ffd11b313a6bb80d22340d2da3bb496477f255708e73d24e7f2837eaa0250a8450bb941ef47c6a948ce16b5acafe7b10849cf68c539f54a3d9876632b81917bc8ca20643487de2762fa86e12d7cd616c1ba57c6c35cd9689d5f232ad5ac6fec0499f1f120e4396e0415cf7cea341735082cee4c29f63276440ebe9f6fd597c74c62f8afc4ef595dcce72751a34d1ef362fad650413039988a764f589ecf3a3cc64651f2ad66d11c5f516a5c57dc6730288470d1f11bf79b549d1ff30c3b98fc59e7cc0774134c98659087231818c0bfeb21b28daf6e60bdb6ca9942ad9b4548a5e73c5ae60e5a399bd98225f085e1c92025a9101ec79ab45370f", + "f4b8679352c53ed06316eb4d0daf80cea277a79b8a40c8c3d0167971", + "e9f8bc3477f350209b75e48fd1d66eddc9491939723f8a54c551ad334c1f9dae1e7b45b0acf8133350823ebac6c97418b625947b1469d183d8afc44710828f41bbed9ce0c549cd0c5d7e7d68ff639c795425bc4bfbab022a69da0853a222820b43b2f575959b78550ed3e81bf89712c36cd38f629146a2dcc107b9d71a38b10e50c194813c3403f1c405766b9de96b47a7c282dd4b67cb51abe748ca8a7c63486403473da5b2bb4852f72bd65aaa275526d72138fddf3d0171d16851993bc3de16977d2a6c94c85ae959cc58d0ba0d46ebebe926aee0b77a0e08d6bdac8a9aee73d5ad4387b9c73c38e4f5f12831517b9d25c4499e93feb54c434de0de36493bd75b76d225d5ac5b425123dae8b670e42786b6ba647890bed99471bdea5744e96b5f4518f9adf4f0c7d8d49069557d64d9c7ebbbd997e7402562f441863a82603d070c665283c5aaafec76e03c407625fe144d4a2855b8b256e899df4def346390ea7880dca9d29896ff7df263d3191da48610e6fd25eb1f15360efe21ad0750ce00e1c84428f23fbbec4a0df1c6df1dde7d91e983797592632c3aea4177d606b4abcd4c61991a6c13c13788ce9aed2fb147" + }, + { /* i=6251 cDividendBits=196 cDivisorBits=134 */ + "0d18245c6abc0783567d7d12bef142b04c6900ebb86e355574", + "1333915489c1d92cfd01e20b99bf4426b0", + "ae93e2426a319474", + "1261dc6b7bf9d53493ad759a0a15460db4" + }, + { /* i=6252 cDividendBits=1780 cDivisorBits=856 */ + "0a0f09ab27c4606ce75a157dfe466525770e19791147345d808c388221bcfed7c1ddd0bc1ec95e8d873d5bbe03f4ef9429ea3901601649be818344b5bfeb0c43ce8f226b79e85f0dc3aad5d1e1ed086441a8e44eee31c45790ccfa1238c7b67e6bbcfa23a54333eef59ba3d703438829f9e28b4227af7590604bcd050958d3a1dec94ff3eb35df33f8ac065247206346e06550ddcd009d8c71d29119129ec392e9af2fc830e98fbf94e359324d1c3bf15cfa7c57ea8ba913617a346cb94597bfbec9d88365fea0674ea024cb21f2c2aa05300244fab4d282ff61f36ed987c9", + "3e89c17792fcafc0b1d5c47aa9477241a71c49aef38326f669d187fe7bf0855e075791fc1a42a915a899a893602a3cccc104a4bab6a3ecf002fbdcdc83297f32ad1b57fa3c3f101a6bf0d71a19daffe0afdaa8ed5c2d8a7de102e0177f09736ec177af412490427b261052", + "292ced7385ca7e42b056f13cca551dc9a45d7834d2b1214da098ebd12f8f52bb0545b4591e03c2e6f236854ad0af8b80d0faa4ba0325a1f01017a8926228f77be7250c1411c7fd5509382224b73ff68bb106002afb658939b52a55463bf70f610b6facb5ff84016287d1b973afd85d5e398f392a", + "2c71c0b58ca0d44b68e2391ec77f91bd98a4d4e33787278e876d2ff53e42ae77bde175fcb24bd8a8c98f2ed3cc01e3f57c5ddfd686abb2e6e44996eabd54bfde019c23e65d64d20acde2dc62480ea6f63f040c222277ba4135a780e6346447623de1c36d3add9e612a9855" + }, + { /* i=6253 cDividendBits=1198 cDivisorBits=637 */ + "1577242712b60131fe302b4ace7863c6afeb7eee5a5b8c8292fc8605a4b0bb362611733715b804c6fcf593c068885c385593dca6f088dc6050b502e5f4ccc83a2a15848c7798239a8f631bdf33796821fbbace3021d0eb0cb7e54fb27eb4b9ff4fb84cd0e3bcb5828239e1d409f84d2c32816219653635eda2e2f412ed2e6a1e4569d1bc33aa7edf1c302698ea4ff4eae1d81b425acb", + "1aa7f82a882a0def5454dc7b3d451578eeec7bd6a0d8a39489d80409b4eab6a21dd3a6f0fdb785db3bec518f159eafb47d7bd25b34c42ac8301ccf47a37f6cd21564aee775d58c9209b969017d2118c7", + "ce26350bdf1e6850cba90b61ef3da09057dc772311712e0dea147ddfffa40252b8bdb464641e2be0e76e35002d60f17885de89ae434e0a5938bd796330c19dfb2d8b91d58a51", + "19a0973cb8f74017085bc011d2fd1a30bf61cb3c8aa61c8fae4d91231deb42b0993a1759b89ad429a26d057204f8776f822ffe3c29215fce445dfd7d6bb68303815e75ee275a5aa4a018904c57db3dd4" + }, + { /* i=6254 cDividendBits=2646 cDivisorBits=1307 */ + "37a4bd501cd390fd592ca0e4896997921918fcc5d205f390cb3b690c6d128f7f8dd3b60b5e79c8ed004e9a3daec946f3e6717c30726dc0bd3e1281623a7d634134a838d39c6f51903a12cea6f7aafe240b22ffca5608e57ffdedd2fc34d029fa60c3963ef195b51872c329897f694f89246b54811ecbe72669277bb75ec1ca2e5975a643f48a8cf7767ef12742190f016633df10fb2a538eb6f9edc214d4a7ab1bd00bb84c4910a0675b54c41d796bb675321fa8acb27f37970896fe7e8f23047a677fe2ba20d29882eb9c9dbf2d1180f1390ddd33c4b81deb5de4ceeda0876b26d5cce84c389d50b54e34d2e13dffde73499d23d0c12aafec942c58f25cb5a620545e4815588b88c5910de44142352a121c3f219cb43d812dc7d08d9b50e6d7ef51834226a82e6383bc2da1b086f3baa8c810a71c9a3ad0c8bc9dc5f2eaf22199551d13d0f56d780dbda8", + "0659d81e207adf67575df2f6e1b0482bc8a27ccb7975eee23b92d73d95892fdbdfc05dd0337057f54f44d9fc17008853c9bc1501d81b73f9f1a1580b4aa677fce7dfdcdf3979e95a3ca47f32d75be5cb3926a561a0fefc8123ff534e640147f7042838b28f2c4ed096efb3eeeba0e9ac27139630d1551ad15f1856adc0fa4b1934deb08fe0780a416a36cbdbbdab0afacc99e0af52558fab48b38c68247f0f1c634265b0", + "08c2edda6c15d1abd2774e305d705b8911f2a1c51b064e8eb85f287acd9979e29d23da0fdf2684a65cc3bae4887a5d208950f0f03d52ad040719b8027e1e936e113374539a1030988fe2c0c00b8f0527579e867ca04eb0c55e76444675ae72b3db627e84bf0849d1c1e051a5f48f8804966e4645b27df7ba0b2098fe540b2dbd8216cd2ab17268d276cd53057b2c84a91bd1f7229881c42802f855e13e2054c7c9950d90bffe3828", + "051af754a50d233619abc6625d92b14c1daeaede455b0c7917aaa8178e6a15b8dad2ba3564d325e073a063d59a3ba7e2b6f670eafbb7cd342cc3ec2a5c1ef3f995ba7a04d1a3d07443e077774b6f4379faa161e1d222fced8f4dfa090e85b11252c93829e045bcb93a0f75998ce3372e21d43372d5353dc3f6a578e7e3ddc499b6c3f3772547432ce4ab40861d4a2fa046a147595aa246e02398f635d47c3a883acf5a28" + }, + { /* i=6255 cDividendBits=2834 cDivisorBits=2453 */ + "0204d3b7e45070bb1b5136c073c9dc9cfbe7322e1d71c5223d381fe380cf3d05217978fe793b98cc5de2d3c4f730d5d3481e9831c7a030c89ad41bbc7940142cb9e0c40ad93eeba3844132f2072f07ba86a147fbcb460aba375ffb9e0065731f214db0c6bf853d35437e128d74e761e1bb475133dd098d7955fe43092a41b20980588746779050155edae9e908fab3bf30ffc2cfaaa4c7d67bb114f90cf22109443115bc64474a716e07a2b1756360d780f08bab65505a93499260d06d984e1a8498b0d192d530cb2e3deda54edcdc9ab1a3bd08fc2d84529e8fa1cb2622435044c0d41a3397cb46b219d15e641a0e8aa7e3cc3693eeab8145c18d122879fdf5b3893fcce994a40b5c4606a4e44861176a45b8fa8a69c6e374ea982ed393727b255659429fae64de0130587cc47280e4d5d77c925785377a80bf97fe248e56b07f6fd8ca9fdd8971609e353b253a5a74d500e073566a002cc00d7f2c579e6a12bbeb86", + "04d6580bb0282b3af4342768d56028fded0767c512adecd25267a819220c9759f08f751b8c976fd8984de68fb0ceb48919a43837dd8d7f59f135098241505f31b130f355ff6ef52feeed8fb4f3c6cb8434fda40989572ace5f9c07492e4821be1c0d9dc4fbea2672579ffbfea6e7f0e50b86947fd04bf83260161c6319e0d7bbbbde9d2908ecc4294fa2dd6efc35064186f9df9f8088e31529d036ade3ccfa699ed5a3930de913672b248ed59e487ffbf20b79b46652294ef97ef368366fe2e8d8ecadd3c5d1ca96b862080ec9dd15260e1f1ce0c1016619b02ab9a09eae6e3def9186df3058866c4378bbc6c2a8340358dbd0d7c8e480f7d2c95313630defc8ac9e0a559f0ce5a888d261c90fa1ba021ab30d922e914d9f93fdd86aeaa3ae9e431698b0a802c5fbb3298ca48b0867d78f59ed", + "6ad7abd01f52bf2f37fddd95eb855658da69132aa5d42c403eb4b162eb17f330cc3f092df412103fcf40b60af918c13a", + "036a48613f6586778a67bc259fdb0f6beca4b2df0e7fc5bcdd6427367158058ca87a0650342dac04b4abfd7a716df379084edcbd09e6f9cde7285ace9d2b7ffd1278b16429d0e4c72eaf4e342bea53dada4ad009f5c077cf928f854f81a26d063c0f67c8a40a328bf565efcd1825944301e5d1b0ed80cb1940b30db62b52f7ae2286811ea50c73e5469d17d495acb1bf4a621920cef58cbdcfebf3b649e17502e33d753cc243f1153b7d3f0775f6c12a6896f65ecb884fd003b8d3b246cc0037cddfc1fea8b5ae71ba047ee4c028aaabe59715c02dfded4b462405450a38cd569c98655c39ffc5fe8e5d0dcc0ee075b99bc0f1b849e096928ad38bbb9a98a8175fccefad0293a62fffe044964dd55e55fa9f397aa4156b9d8b50af0d9a831864e6ccb2f2e002abd3600d30d552c836363dded4" + }, + { /* i=6256 cDividendBits=3615 cDivisorBits=452 */ + "53664db8eb1e7cf13ae6cb5bbe4815dad4dddc240b8be207b29d4b51619661a0a509223570350ac88c70f5be10cfaca0a6204d57794c6c74be8411f69da358b89ab674570bfe6925efca8c5a8b3906009ffa80cc6626ee578f635f9a057b3d131c35d027de8c102b477124946fe9e9f1a59a4faebca4ea4bf91acd0d9d3e7f7ecca22ed4912e48bfee5cda6a03287ae3323314ae5a05656e0656fb93bd92b7b616f66f10f2936d976806155fa76db4b25fa2c0b62e4577370771a781cc0ecce7a8c682384d731dbaa6d6a7b033b48f9c990aaf47973cbe64c953478170903678f71dd950f303e360f9f279f306c0f673b193e2742c0556547c28b9748867d849b0604f1eeb0debb7a521e25ca64358278c5011f28d0b1fd2c1bfee6876d76f8e21db933dc06eeaa36e93f42e35d96bf8abb0e8e6586a0d7dd74824b1c4ac664129073bf9ab3d757ae98002c9c3b980fe9534a3111bba5879efb317803eef90cd4fa1167443617f6a6c1c793cb3866945fd10882e70fcb1c2e01e1d6e5155aeb92a408e71966128a5fee86e0027d9a385ebef1c67781748bb3a0e213fa8604583b98043b600a90a06cc523b221a38b127ebbca18ea487dfc3a552891afe954f99a8dd7813", + "0a5a30f73c41401e1af8809c3e1b29aebd016b7c9f9ea7cf5f8fb6c0f4e88faab734de258579add468bcb20b34b9445dc794175952a21c1d4b", + "080e5efc4414e79cd23eb8ec2873414000b887966b67c966776735a47b007a934d6a8c747697cb8aa90656a3941d8d726d75f41b33d05c229fd34e7550bf564f7bc3823acdd2eef8862e52786176bba18aa7e606096ad85f97068d965001b96cc7ae86290dc788ea41797dc7ba481bc42e9b105ea068899085fdec82d58cdaba067e0dc89ff491450997906f64f8e94cf542fe2177da26dcb52f243c9ba2902f30f607536fe9c69d004522b00cee5086d9452262d66c5b9e4a658968cff9ae486c69b562f592dc608d868404f466c82b493632cc660e5e0312011ae307ce4005dc225b6225828d056ecffc32ebbe4d6607d70fdd800eb43025ef83b560cddffbd409662708da772b6f56fd4c541c17830dcf42948767dbc30b8ad1707104c65994bff0777ece277115f30ff77acbade7d783a145f751a0f6fc4a75901b0cb3444af41b43e499867ae556ed66c5286f204ac8db27d5996f7c24f24babddde4e2d3dc294a435d5b603c2416c43493bba7a3b941ffe52138a9585ef11682c8813deb5a62f63e5b8e288892ba515", + "083383e9ae34c9a68ce2cf67d6104337eafb472ec399135dad9d852c26d405ca729705696191190a0e94a540368bf2ac227cc2ad182f14b9ec" + }, + { /* i=6257 cDividendBits=2477 cDivisorBits=2065 */ + "0e24824d4a174f70c6ae4436410a110ca8ef1464ffa347f5353b3ea1dcce7b7933d2d0727656d15c2f88737004dd383928bb6bd5c892c252bb0763fd27850bf125705777683362c4e287a19caa60df4f51ec6af42925c9632f55b9ec83766f95d2629c8f7011f1be9647e766f67ad179a7cfd8e6d09d19572d98d7b3c6a68a8ff67aef992d2a6c76812f6d49ecefdc8fc6cedb936a2e4ff6427cd0a6b1086b5996ee609b71b882820b32970acdbb028550a5157881b3adf5c0a7726bf64c077bcdfb14bd0bd953ad0ec91ecce15e304b88ccf42e098be873c77c41534b9fba968d551e6e166ca0b615695748b79fe881f99c188c4956706e42691dca7175b5b37a97e8e88ae5a2d303f54705029501763116244f25414f6e73d622660975d6c4dd57f5641deb913a1427a01927b07c14f7387dbc1f23", + "cd30bf54b5ff05f43940eb056e1ecac7f8534511a3c9fb60585309cfdbdb69523c370dda7a81158d1354a4f0787206fdb63b6451a56d33cb7af6c9221ac4cce0d9e2eaefb82847913bd53bd07097411ad26fa420a78902a9855bf0682b28973fb7af965f18d6e21f5ed683956a86e20621bd8b88cecd505a953bdd63c85856ecf39ac0621f65edc2d3166c04f7b7ba182f0ac145ef715103ac570d69197e643eae1d869cd0a53043c91460f9416465915976da8e0b503343161923b4daebda5575dfdb731e26def957e76337deff041f6d7b8d70057cbd26bc2cf52d77c706a70b70c0fbb0668e357041b3d9ecca50060de4a48b996542088f703b7921c5836fc1bf", + "11a50675878ba7973870f131bbea836e44ba7eb15506577c6ed11dc1ce8656b489fd90cd94823ee2b0c21002858ccd78df225929", + "a46d40d29b931f195c09f0c2358d52119733cb7136f3ecd8ec83afb4f1c17fd456758300c37ff38222b970e4c6da27aed94ea755fe162bebef427d14e96dd3299f0b8fbc63d923c5bfaf1839ce6c1db8c0094cfe41bed0278b08a24ad1866a4fc26c332d2811d07f12c9d499602a99dda61555b93dc7e427ac6f2952667084ab248fa61e5e88934e1bcbea2954d0e77f635598944a5cebe53ca94e50793a7ed8131a227b5076e143553f45277a5dd7103aeaeea4b6ac35abee7f8b52ed9b3af236066909bf42680728e462557b8535ddcb161c2dee325725c01b6fc8628b4c7823a5df96625a5b0df83cf9d1da2bb75352df37bf2b9b264c5c6e053a50bf7a1cb08c" + }, + { /* i=6258 cDividendBits=3973 cDivisorBits=2276 */ + "1d551060f5c036eddfdb5e5b2b32909fbe046eba12d10c1ef29f7228b457acb5b3eb68e71c4b5574df4cd115aa75c7e366b34e32e262653e964584cb1811cde22170874e30ead22bff333aca9516d035ba1542dad922ec6724add9bbe9dfa6056724fb5c5030e67c271f96498e1c0c9fe1ee67f785b1c8c88252786390300bf1ce5b7a8f19bc7053ee35f227e54048bacb56339611e9bfcf30367c062a9b851272ac617af5f0bdc13b27e669af2fe945e515efc0522485296e3be7dcd9f0ac6304dc3de81fb61a9922a376ab1a4a638202f35249f296584639be05b53c240913f91ba8c8fe194d00e162acb9dc5c31eb2e9180aec2c4ee5507134fc7e823cc6a8b51c7e00282be75768fb8179de66f05745a9d78ee30ad7d7c44a79a8609fead15bcbdc77fa17f0242f9397ac17b0a37e60cfa027eba7c83baf34cc193b761d1a91259c28daea5db315f8b848d566a30bcfdb9d6afe769b64919b497e2853167469544f92a5d1e09e0c1c6b90e2aee17e8a99f1eafab039f3f9555a69ed61f67edd64c9834f38a4ef49e1d56706211ca162c8c9bf0fe030b90a291ead26cbd8da77360c74d22cd9ed71984ca9f4681a6246d6c23b4da0392e889268d528684eecea350b5764bb4e06fae016af9433e0057d5348f50b6f799e070518bc0c6eac60f4ba5d0a6a86230470ebd054069911220", + "0288d31252cb50a8247cf9ccfa138c4528a49d1c3dec5fdb784754a88204b5e92e95c35ccc7ffe323076247fbd0b9d1e3001451e4a9bcc2a7f61862e3f1d075644fdf1251216b951d752c2fe676f7f617fe195ad44ae0c36c92051ee10dd0e1aa10fc4e9fb644040222bbad70c792ed25198537eaa602ec8db949a71285df5786423d54b4820e6bf013f0ea7c56d049b8f36925b44819c5b37fb2530aee11e43917da4d2deb4a46df8ec800f6d6649d89af065ca499bd97cf1be46e87b686f5c71b0b644e31e7fe3568cc6258245ba191e4d07aa642787225a31dc0a38dd0d4b0b3c36301a78975f456f67ea739ff59fb27957db79a8aa850181a204840ade4b25583775f91ae59d85be1bc5abd4c1921105d6974be5a6690eab1d2c4c", + "0b92c6275697edfe1b8c3b3612bbd16442bbf409e16d3121af286a400489fdabc650e5407e55ef3fcee500cd8fa49e716445b49ac98c3d1ba9acb51b3b36a64fea56756733032d7bee64e584a9b2f459fbb8560662e3efefcfa78c1badf481cb10e4c732ca6f242cf3d59a3d3f6a12726eee44c3c899150be43f0aa0ee5f05c3076e876ed207d30ad129f61c30ca3772fa6515031c1e1a13101710dba2b96d24d8951dd03e78dd0b8639ebd0c69b79754a980c1989c1be1aeb43258eb14d9296ae890f3f9e7659d7c0fa7f3a3a7ece947d657b0d70", + "6b4672ce6975efac866d2b3c9379977c12af98ea5e2cb2444bc25b40a01fd8abcd3615c63eeea4a606bf769f84871d5f7056a0934dc987bd650e33c0cbdb7036474b10302db148d152e1aee49236c93876e670dba596e0f39c4375fefe1b9c7c454cdefc49bd501fdb610a44b4d9ef96becef0646aefd3b66ce0e61f6dfd941768466f8834042781f838b1a12d4c15a5022571bff3561b524070b5b78e090ddfafa00ae34699811d339213e40c5c9313d20033ffd51b7a2bb6a714548811897fe2388b8d5f98464205e25eeddef3a98fc1699dcd16302808a1c6ca5315ed99deaf888e0b74a5c15cbcd1748788ae235e802072d4f11bc16a4ba8c1dbd0bbb1b0483e24517f4f500143827e10085191d8e662106c6708058acd09d4e0" + }, + { /* i=6259 cDividendBits=1847 cDivisorBits=232 */ + "6eef7e469d76431daff5165b3e52faa380b332bc1c0e7265105274c86bb532e188de4f76a2aa37d88b599100bf60ef10ef51ee6043263247a74e72bc797459b9d4f8bed27fa08a273d84f3c84d3c61fd1ed2ff47c7997da0afbfb38cf2915e15d5cec3691ccdbdb5e1aaba957c75f4a90f611fbfab1cfebb804392d7d35885f9a9919bce6e6e7987bd6c20c41d89c3814dbb4b5e101d347b8d11620da83bf1c82be4386e4e4d86e3a28581adf0664dcebd42dfdb716f0e3226d8385b683c4fbd9ad8daae9906c0a1e325682745e00da8a6a2a1879a656466a9e596a1c2a15d8df315788bc9cfe2", + "7b26047e15e3050dd10ad4900f874cfb619a36c9dfb40895a014e2313e", + "e69c9c0f725518b59ee37d4dea88026d0f6d8bd32ace667353f62f8a7cfbe9caee1a1da2028aca34a87186a106565699379e5d36aab2d08d2efcd80c994b2f44c14b07f378c3a6ca75d71a77aaa9471dc10e0d29fdffc92d984d148f8e4185570e158df87ccadcee51f64de2e4614807ac862859b56db51bc3d8e9270e4a43e6b60359d7de058cc6a633ba947df02d3d4d8d19033d99738899e5211dec89873775e38934d2596fe96405dcd65073cd6fdb1e3ebe22a1a83cbec1c60086259617f7d01e1a26829be70ff7", + "2bcd816125db69ebec938cff56162f4aa26911e520f65655642bb7ab10" + }, + { /* i=6260 cDividendBits=2113 cDivisorBits=1953 */ + "01cb162c7a161db7f3ef10d87279188a190af90eb6529285802a8002a8b5288df8920ddfd04446f674833e3796910f711f0adb7a5c5d93be6c2a294ebc4420d7f4918617a4fcc340c7cecf34c34d99279562b730561391629b764f7f224aab0468de7ed7b44276d0d40d92b98cd871d3ac11d2647799145200b752fb003821bb006055e66c849b2cde284755388ad5c89245f39677a1a01e4b62cce8d532e211ce188661fec7ca0e148376bb76131e4dcf83527b6493ac9f73eb02672cd6237a471c199578c152e5a482453f2f42a4c9b0e06992e21a9de04b6f42c9489e3ae617c664cb7d96bd7a398db5b8980106b29ccb15429b79adf1e4897195d077da4b1ea9e5c722afeae431", + "b9aae014d82228baea8992381177756bb766caa8ba726036e64b93906723a174859a801de5f93c8e2e28d91b070636f378c85f4d5076f29023b4613bd7b23f82b7a6101d24c352bfa82f4d74b94641d5646b197210681ae726fc04ef4a3d7800c00edb36f45ca506acee934c9b44051b096a5c70237ce3332278547101d26d672900ea293451e6bcb3a88413473a41f18c025eaa1501d0d322b24c4c85cbc3b22a8c1efd5d17d16cf5c6ae47691e6c22027fc85b9a506e62c120153bc1340de96d28948875d6c6f3cac395f502dcf83e488cd79f4cac85776b397aa3fa6e6a845beca315b2787c6d3b40173525ca5fffb1bcb2b7", + "0278fe263df3e1199beb35ebf53e83915ee69a09a4", + "44159e2c4d25fcf694c01e72965ae4c0ddc0350a57577d6a5bed4c27004351a1bb4b3ff9afba14091ed1e731e8e13e29c1862ba5b0c4b1772121a053e9fa19b4213bf2d2b07557f75585e0cdc154bad30639f02db5dfa578d854a7d0c66fc9e3d037071fbdf04f556fd1bb436909ca789e5ef65e84a3b4d5a495ffae9b0a70fdd224faf196fe31bbeabc79a6451b9696645d7f748763a98f4dddbf115003d72c386ea2831a69eb71546c2258c773d11387b5bbc2139d2cd28a17851b5d5e64f774491803b2f01c15135892460fc00a62de34a45794716a2c84cb184709a8c1c4723eed85d17925d5aff34036f3378fcf44a9f7f5" + }, + { /* i=6261 cDividendBits=325 cDivisorBits=108 */ + "0f029f0b3e7a9c9529ab6f306cfdc3cdc5ba2bc350ff3aaef2382535ba8c37d6b258d0917f2bd6ac5a", + "0d5113e0f10ae66dc75c48629cf1", + "01208e6db942df07096094b8faf27e19f5b453a95291c6ea0bd46330", + "0c84fc77f4811a93778124140c2a" + }, + { /* i=6262 cDividendBits=1707 cDivisorBits=913 */ + "07f9a272f1acbd0f5cd23360ccf7cdab08d8dee2ad4ff4983f5934db56e577e41f4b4eb1481de413983f095488a433f8dfb5696b75d9f4498a70bd88d307550197a48f7fe10c9eb48beddc5a671b841346e40311fe02785c467c9e515beb0f9d4f551aee50282e965140874ffea0954e05284a3be113982be5d79b09c06f410a0a8feb8090d507ed7106532fec62a04a770bafb8d9c794ef354b615ec84cb3a88c17ba6e77ea793f56e5e1db1e0cfae0bfdc00659afcb783018d6e410bd64c42199ed0eb5f0de7dbdbbee3fc7d24a1a4d64c5a6a0be0", + "4d5eb47c65d07aa7c77598a1ba4d915a7bedd0f225ec47c46733c4393462f1f2f577208446c2cd3ed8182c728f165686a000567a5328cedf101ecb91a3c280fd148fe07d1793459f0155fbcc6f101adbf43653fe1ae83b3f81c024b638449f4b5f387d96f67d4e1ceb57be0cd7b4c02d08a2", + "1a63510bbcc4f6109015e93781d33fa95674a1bd02b905caaaf47d1f129f4aa98ec9230e04013b695530bf445cdea4e05283d5af4dde6f1cc34ed916e245bff7c6f43ad082311d3cdc7cc0092847246682351b30abcf34c88253815ef5b76030436e0615", + "3f3efd95b833f23dcd0c238bce0fe5e01c3275d69533fed265a0f08483f88f0597678325f9aeecb6831f567a0af34c45bfd736beb07ffda1082392cc07aaf29a8d4492f8eb4c91da7c56a2fc857b55306dd598766c7a9ac115d207eb6e27cfdcdbeb34994785c3d2999f9e162cfb6ce88a96" + }, + { /* i=6263 cDividendBits=3096 cDivisorBits=1006 */ + "7a418da58e77daff3e3eecc9e97264ff5c8fa69aa2089c830a0bc26a3a7b516b0105bf7b366a9b0a22c3bced344d4796ac448b664b40aac4581be9df746cba5044ad5c82dea6525bdaee0a66f85b7cf7d849cce12b49a76e4321bc1997d7cab3504fc1b777a3078226d4e2f409f7f416d38f06fa84a439c5473d6d37057141e4758520b078be20525dce4cd4a75d35b0a4449f959827e169072f779a6eafcc859bda6718a494d0ba05e8629e76ec19103eaf0968f3a0f81fa1ce49483b71d450c39786313580c5cd9e7704d4556a6837326aedc840c36d1a46c88a3872de691435432619c2a9452d1be3e394fe630e305ddf2f3113e7dd8ec885fe0a37c77f8b21a9c94969f7eaa32c16e9f38cdae9aad91d7398f993b9e57257f92a7a98802e4cf3e5d710347ecbfcb83b68603c47c210a53a55d569d4f03fe75958a3a6ef1647d5009eb5c2ddbb4283705dd578e4a53b410cc7d90aa5c7754c016400d7bb1d418198a119d6abeca323361686edad159ae8f85a8fc04ecc0739554d709ddf41f32876", + "0c84ef2fd4e9807253008371a1b8b4d96fa8b946a3ab48295c8f9c278170abaebaa27a142b70408d1b16de7266bd804767d522ab920eb29c69462c86e1e3bc15f4529858e156128a1c0780a6f74d8bdba9a5788263d17ac927bdb441ae2c1d4ef198a77a7f5b7634bf5e8e81288b220262b25b10ac279438af1760bb5a44", + "09c3f30c07773945fa17f322b855d5d6710584039c868e3611470be446fc85753e9b18b8e861e39d92d7bc79b921f3c48c66e243f78610bcf2c710c1da0bde0845ced9bf088c0e99a71a464601d25ae7538792a8131b5940832b92dda244e5185c82493de185f7df15382c0e5a80c64bd1604386390fc8a9fd2dcf28b82337af447503d14716b84eadc1424a900fe430a2e846da5a447d735a4c5235f7e8e5157484d424ac440a01b3d232bbba81d9eea61143d34a6fcf9c1a3531dae8517baabddf75661452910efcdf20a4eabd73f77c171406ef87b594140762ab7ddb6dcde52a9f17c7deeadd6457f8b2e3e4aa715888586ec0f946a5606cc4ad1c50dc870eb683bb71c6", + "05d74c3314ed0e4442f4eac51a1c157196303d1b4099d50b2004ec6f16cc61336c93a40de31610bd9ae6d75250035fa2431bde5060c1033b99e8f09619614592d882f8a5bf64751b735d56984bd534a8b63823264c20642546089f3cfe10adc2059105ed328be1484ab1dd1aed9a4f89fe50ade7c2b9be73b4028753de" + }, + { /* i=6264 cDividendBits=488 cDivisorBits=214 */ + "e786d3506b1540088f2a55994349a2a79c5200cae0b52593489d612b9e32d285622598e77b0e3c653e6723c01e4ef57121975d4f1bf4808df335479b9d", + "149f1c3f9a6a73163a2a1db212a4d1728b77695c4eed3a9d0345a2", + "0b3a38a60cabc12efaedafa5a529bcabd08dac9067f175027842053f4f751c1c939e81", + "09dd1f050d12667d057b32ae5a448f160e5a4c124faa4b5da188fb" + }, + { /* i=6265 cDividendBits=63 cDivisorBits=54 */ + "1525c2f9f970b9", + "2842896ac991ec", + "00", + "1525c2f9f970b9" + }, + { /* i=6266 cDividendBits=1999 cDivisorBits=1945 */ + "2103564ac4ad0872efac18b5d4f642ac43281725fb583b80ce46094a001457845455958dd45ed8a9f5b686df93e9063f0cea69a4bd71f36d22b8496d16e134b9f9fdf5e8ebfd694603390dec7ccfee267071f6ebb0278a9f5f10951856a19e72777afea7fd3662466414c3ca6d98639e0977d0d4a4f9a6a0afd762bdcb1592eafeb4fe1c16e8f39eb8f0b39868e00328e68fbaab9858f22b789d91dccbe50d10bbecae34987d405ad4a1665045316b042ddc1546417229629cff184cc122dcd8e4d6c04ee7702bca7a650a9c2d7e1faf2b3727741187f525d575681c402bca3e4977ed82e712f1a85cec5734bd81337991be0354173abbfe1f2b", + "01f2eff2a20f5552aec730824080f45cd577c30d34c08f411b7df6f2baf88f2647993a4aec88f81870447992c5352aa3a33f21414617be84514a69b083bd0acfc9a488d8a6a47a7c946900a7bac7f3754b7526617c21834f86a3318a897d113f93dab268683bfca8d59e6f0b05179fcb7b0e8be4b547dd724ec65d71acafcb2c09b61ef92b55371c8ffa39ef72bc46fd8c30879ce05149f20782149ee2ac33808cb4203fc8891c61e4fa8ca40df68df34d0a92e2ecb0667dd650a44d8fc0710c3305a45d01be138d03e10a25bb908081683d66b0c1d94a50605ca8f86080e45d4612c74c88d77937322f7af5daab142e85887be3", + "10f04d0dda61f6", + "01778a8c5bd4d47d5802f1cbc409c7e69c4cd31d4a8f57765e59cc180fcf752a7b349ff942fe580d64308a81c783f71146ff1ee2291e5ec86730181a86a60c2eca454070d927c05c9af823848481655a0c08adce2863b6548023e779ebba40edd4daf4646b58a94b4c061a3d2b3ca417684fe24e13100fa7ec39254a98d1075b3768f782e0a63c7ee4fe6b55ab4794cf1844f3ed74dbb59915542545063466dd759451620d593704231bdab0be65cdd18b4cc605cfc6dedecb1fce5de6f82cbe5f7cd563c2b61424a6e892d2d39ff3b370d2580a0501e9b3721491f303dd3e0126130943e1bf0f215f825437a7815a22ad981009" + }, + { /* i=6267 cDividendBits=3727 cDivisorBits=80 */ + "0d03b9b84bc34c39dae786f7483290d8fea90c0d3cfdee1b28a4edd4b3cb5c96acef9003d63f7e034324b97eae88e2f7ebdd5c86e30e5147ffaa391fa19dbb3e85d7062c5efe1b6673009e48e7167d346c048b72ddf222cf480b7663b7ad2e9dcaf85a3924c3fbde617724204cc7e570650c842fc2abb99ed7d8735b00b555a0cad7cb82297f7f10a7a9bd285a6d19eca67b8af4028d3d1d1b31032866ae51681354ff12da5afb94d68b00c6ee3882c3161308c3c0ed7e0903b6bc1500a76e34c395ac584827a724ba4735fc07741a893ac38b6eaee6e9144bc60048b20d603679e14f57d7b9998d3fbb98e3be44808fb3c6086e358298f70f129ef099927bdcb498aca51fb57387039fd0ce601ba36d34385d1a31087221240910f566b4a5c1166abf5e23ad49aed06774dbd4a13226dd1791a4242694eba6d887e42ae337f4d82fcd881468c5eba3b628c84e3f6c8ceab29efbac62ab3a552f125543bf49e75e562b797f5a72b9c02c56486a146f6b79a2be514e65abcbbaab02bdcf5fec7f748faea9d2cd9e367420a31545a2b7bf56f9653cb12c6e4f49ec85cac6481cf1a03c828fb176e064f816aeff89829a721795ed6db17f583f3cdb4a717a4a90510e41b3f86826230bc4d8236ab708769e4bf0", + "966ea0cebfc68746c2ad", + "1625cf76d7118bc8a95cdacc76a1c70c7b75ee19b1d4ab482ff027e56104a100909ae8f8e9d23507d0ca90ef1569f2ffd808d2452031fa6a34c24f64cb1243512c52faea29b2444518c8cff64b620c29c74c97f996ab09b2427a43c5e4301bb13c8afa73a75202fd26ee0ce9116d645dcb842bc9ab4666ba873879e22cca095531e5724642de50adf09d69a37c7d5278fcd3e013721e24c1c7c74f5ba77ded1de8cae978211308e28cd1660dd2e6ecb5b71e75ab1b626b5a3834d7ceadc7b23560006561c0338a517916df040f0c473684f3fa063a64ff6655f3853c3829af95bcd1d350f0cbc3b4903d57c2bd75031257d36827978538adfb7394ef74f158411565fba54e9b0c1141e60ed2990b6d3ed0d49f4b09c0c0601d6b35bdf537ac22a11163bdb2a8d10e163751c0e0bcb93bf994c05e574b4f82e05014ef9dadbc0041984dcf8bab30ee6e4ec27021b1a6ec760641611cd9396d605229acd16734d58c6303f3f59d0b698b218181524c37af2847063663d82cf0355beaeb2a2d8a40e8ed9762f1129d2a4ecda45b6d6ae03af7591ad7ad8fe973cd5f069dad0d78693ffa5b37796b244cff09d541ebe168030b06ff190e297e1385f31d1124da33f87b269a6c4f284b9c", + "4b11b0d6844e7e6efb84" + }, + { /* i=6268 cDividendBits=516 cDivisorBits=242 */ + "02b9495633312b6344a5ae90892e00cd69b31e3c3d8d00a2168406ee0bc240afd10d6a318881965d65a7848b5204d837d1767ba1f44eb8430ef7b1b7283209e8be", + "03fa801baa350eb62ecbc98807d54cbb0af29ea0366fe611aec263ab9e9602", + "af434d5b016180a1fe1d5f464c0869ad6719cc09b31a1deb9654766b08cbaf1532fc", + "02ce64151af8477e7101ed312730272f9146e2ad21c76daeed65629c77dac6" + }, + { /* i=6269 cDividendBits=1762 cDivisorBits=819 */ + "02976593d0ba0262a537b9df2f93908745d947e46c42437bc629b6f9e45e2898e9d0880de89cf4f5bf8fdd165959394f26f3c6107b830c20c5d823aba460f71b857ca2e8ea00d092a9ca291e86ce6f98c83a9ba843caab894032209ca0a2c7c385d972f5261e7138f7a90fa0b45e860267bbd8d8ed58704b0e31301a28c3c22ba9d594dcc318d5a2313c5dc0fa5eacb60791bf3fc64b687c640e72f121b51c2499f1ce86a41264be87662693abf42b93e53dfe6dc9a75e724152b3ddc3dde37a59a719b9eb800b193fbfe54a98bceb74a41e21b898b85489a55b4cf71d", + "0161ca013d2481a095eba1c22ca937a1303886bafa76a8183fdf6840b98c7ef707c9fab75eba25e88eccbbb27a5b0e22eab936b72cd9502eae4f3032e4e5ba98801c7550b2e233fbd4dcaa618422c2223f83f4b85eb0ea107c22bcd1580efb5e399bdd4c6715a5", + "01e007d3fda8c37ade7bc60f25a476907b9c07041d84ec244cbd1081063c206926184d57c96e9fd2a8a75903751a15fdc9c69a8f37dbc67671744ec948b69d6219e8701f074dfed84f140c0161eff988c8aae674f656ff22a5b2a80ad2885e4ffa207db08d1d5bb22c03dcb374daa3cebc0040c7f2d347", + "e6d7179c3be70c5e2a3c647c451469096b8b7c9475106c403cec2196867f2f53808c8e25c6ebe5ecf7171e20883a837b09c75079f7e4bb414508c0533a3fe76715f0d95cced33a445e209ed923d1cc55a5ef7981a3f1e5e49fa936433718f85b24c67ae4f75a" + }, + { /* i=6270 cDividendBits=1681 cDivisorBits=454 */ + "0169347837f6d43e168e6ccda8f211a47e1f7353f0a4a9ad704e365ac26e323cdd10f08aca1813b39c6a5d37e9081624349e5eb1de2738b7fd22f60bf35f9e71aa7964c1163964d0416b7f9597bdcb58975e1ca96a2f21db82e5ffc6012cbeeafc59bf84d6f622cab9a9dc69bad92430fffa2b7b3f5b26eebed1ff13aa5a725a6535f3a2a2715f1250ecab2747c7e1b34c71cd3ab46fb369d801b54b31d0cea1d4797a53644c09bd0f1e7947ded5145beec215c76397a60b15d3ffc62a2469f92d0bc4007c3072c013668329c8764bf0a86bee", + "02aeb0a9776fcc59014ebf497d8bc308aed751fe0610af71e2a379ee022e108506669c3175a2b73327559a86cb5a9f7e06b5620147f8c6cabd", + "86a881941506cee4dfef8d622b97ec3806a2ce335ccc499ceda50c2efb8dff84229f9b940171bd35e381e535f61d17923ba8aca21a190534cdc1c13fcf3935c4fa112a8d707c92cf77fe9c6f7d9793db54b2cbda97ca807ed9698fad932bb10c360476b9d98c1ac343138b536f05b7f5011f85d234921059e22463e770377070c1d893b88426faa8b7dc8f07bfed097785334f0b2dd1b2f492ea", + "02045020a51c0f07e96c73336dd296c4cc2aa42f2a824fd61235bc04a5084704d69f583a3a87d27fc5530ba52edf040a6320d72ae3852f512c" + }, + { /* i=6271 cDividendBits=184 cDivisorBits=123 */ + "c1323c61c27c64ca04fa8889ef2765db97ac99a646edf1", + "0425bed1b649d21672c3f2786dc415ed", + "2e94feb4f0882b60", + "028e999832bf436732dbcfa2b727e611" + }, + { /* i=6272 cDividendBits=1285 cDivisorBits=1186 */ + "04b53dfa6132fa26703f18e94d0d834255fa3ae20fe1d133d1e919929b95539583a71af312236f6e141472f83b719e78da05a82f14e5a226eea635c3f90c1767b29d8c621f94de593c99fe6bb2f12395728fb0de2ca4b93aae0cb784fc0740ccdf5e26baac300863a5b14ed2eb42262338817a18017c059d49768fae73c99bee21e1033a555de2a7b5d02f19b7ea4ab7bb2a2d975b8c89ad6ea8b0e98aa967eee7", + "01eef068f9ca33e27b127bf600aa00a3cecc47067e042812d5f5b7ac38974e5599730f99d8d33c2ac7475d7047248bc7ce0c30f54e46e81af34fb06f580eab955605663464308d051def70c4a0975a5ff491eef5f3431c17ec33325378c29fbff8c95e4a0e397d3cd7f14a99e175f6b1034a99629b8e7e9ab5df8b1485b48303c26644b1293d060331574d28d60cc5b4967f74eddc", + "026f64d17b1e931476aab8a59f", + "01d8e76bfe71aff96c335af056e18df03ea3ec0727f74d9559fff50150e61b20a1d07fb346ccae07379e1e3980bbef6625b34ff32f74cfd5f78b893361d6023b90f437e253e28e6c1b69604ead683fb68f565219668def8f49e99fb5ea2243a0339714d8e1e277cfa66436515bb2ba46c7582e62703205576e2fc1091ad73106f1639641b63064ca9f6e101a2f4fe2aa8414596743" + }, + { /* i=6273 cDividendBits=2122 cDivisorBits=1307 */ + "02e6fb2769f04000f103e177b940c44677ffd6a088a63f599c0a19e67944b82a09eb48cf5611a4b8a668f17e9aff8cb12a9781f288df4bc341e094d4a0a6a5deb7629bfe5ab8fb38c11b6523d40b368428160f149f762cdfe0e533f6c64154b43a6733cabcae7e689ed24faf814c4ed6a28a1f75a97e762c4ce218700061ba88bb0a58c199498ea90750ac10807b4c4736e3a5ff439c3c05419c92d862abe48f6ae8b03a47e9effb4e7dba46d7358a8e469fb6b369705e064496a31dce4686b9a2abdaedbdfe6221883cc5274e177842dae4f96d9e4d69de3a64b49368f7fb46fadb94bab5dafacea29a23229b54d9dcc0fce37218cbc9020250cc6f07c56b02ffd112f5f57306212148", + "c48836581828c9c3f449796e51d7ce00b19db1ce08ef7d35d6ce1161ea9856d4cb315a8129e0175e6f899a43a61e4c327af713d87c8d3bcb0cfa125f290933753311a8612be60044c717154e640c5931817be6937d2422b4423daa2b5a6c81e0b938ea37692a6be37dbfe325f0af8ff0a617beabaa40b0fe8bad8675f182d8e2dc55d9f47236b0312a8c5dedc23b4dcefff635fb0d615ddd8bf6e05f11eaaee782f3ab", + "03c7cc07492278badc0251e0589efbf13f9ea99a99d8aad706fc92e0f253782265cc55481c385cfe81633afaf01c1226411c94bfd4d4dd30f8c6347f5f3db077d04e0c62f88a6a48d70df46ead0e5fa3e30cd8530cafa20624a1f9fc26099d6a0e8a142087da04", + "13fcabea85b41accf14dc79ad99c8d251336475e31013cd1f25b4e85793cc26b6500b5d7356cd34b9f283116e845fe0aadb51bdc1c27627895623f3ba29eb1a52217861bea1f6c4b5cea0ac0f3dece7fe7f9aa26f106ac5258a5d1a0698afaa686a128df0d752ad73a53e90d6a0a537a850e3c3c17836b700fe91ca56d8856b3d5af6846fa39da4b1e01b07dfc7564f431d5247cb580041bcbc02de6b9adb20568b49c" + }, + { /* i=6274 cDividendBits=2567 cDivisorBits=287 */ + "4de84e10158a43b4adf2c9ba53442b12edc84a35fe9c51f47e597c209ceacc1228cac00a4a1db69d48c162a842d1387195778c6ae0d247346703ba625c179b6653a29845f2f92fe8a5db8b6798bf8976b4bcc5b716f31fc65ee18f846a8fbf597da0f3dbab94f62bc22bb9e28896b8c5f4bf45126eb5f4d9295ea5d51eb09c14f06004dc335ade861e76e75804fabb5fe4d9bc8f68d616b55521fe39e90965d2370c6b209f7872fc80fe592d2167d089e18509b592dfce599b9aa01b9758dc145701d2f1c17a8c80437571ad02f4c8356ce9266d86e4949c94a0d7f5e109f10b9cafe91b05a638dcd02962b5c06d4e51a2c2a98d8f34e3b366e9d3dba4f9fb926cccb3f189a20ddb247c363b82def71f5f2307855ec98942d138d7d111279d09ae333dca231e50169d486be31aef0e3c7f7eb07564a720e672a35cf02bc51485ec", + "044d60590b0a6adb153b1d15f28ef1ead5b6fd2190d33da11d0aa9c18ea0adc01fdfb344", + "121bc88250754f97a614b66e1c0728fd522317e2cd47e8a616ddc9fea28d00e37e3048b9492f155b09eabdfd9652bc8f2ea322a85aaf0f74ba99a23d782e288b1116e8c79ca6e0894d9e5c9b15c0443d0440dd437eda342d0ba2b5881359cea21a841fb494c91a5439188f2afd5f37beef0f7832792e3f5a47e518ff4e1521a1193f07ed17d88782e225fa87763fd41a542b3a0b634e09ed96b2e29ed6ffab181322edc154a59b3fa298032c1ed66a5ce0eb30fe14c3cae923abf6f0aa2f3e3ab0a27885c9c53b8b55fc577f87a8ce9b15b6f6983dbb6cdb490a48d771b3bb2e5ded66312c9ded679a58f4e91b0a0047ec203fee25ebbc4c0a4d895d0272fc810fe7a5b147a53f020ad3fa02b7172997bf5cb12ccfc26322ccb7c22ab424", + "eaaae9095736de11eb11c1f563b46a4a87e2dc0be1ab2c4e1ae39b5a2154950e6b805c" + }, + { /* i=6275 cDividendBits=2052 cDivisorBits=816 */ + "06f7bf4e79cbe4a1c2b2e76d5bfa5d2ce095d18a7186b439104fa3f9414237c79cb920c97d2c96243798b7fcc0d70216ff8aa363d48656c3a4b3de8a815dc8c8d8774da46dea92582888327f27f3b26e7a3372215417f02156d46c2b1c04be899d168f17771347da4a0a0d1fc964a62b88e9b32f6af7eacde609f7f7e962cf97a8cf5cdb5751d6c73bdf4bfc14d2fb6f392da4e532c04f2a2ebd43f99ab5ad4ef74fc83a762d7cf4fd987066ce33ffb885aa35335bd756c8b1e54908cac74b8a8558a6619636a001e879177d3a3cc9a16f0a61f15c66dab8c798e204df6a9724808d4dda4994b090f1545a4cb32e6c6e2b88f575a62a9e32e957273dda818c7855", + "3411728596670f26d5c2a90f0ac9b5447e7a6d7442fd591d408d21eb1a925e5ea6c683e63d2da5aa4fa5afce2305c16474094e2ca337fe3612a067d03ca3411519952ad4a092633a13e70a483e420ed65540ee3b6f5703d3066a72fe0b3f1680fd685058526c", + "224207dbed96b7f0bfa9a52a1f2cf645261bf03ef7094e109c2bf8dfa05290f2691ac8c07a8e19a8118c3d998e558c523ac609c630de11af4e2f617bebb7ee90d387ba1244a12d8632ea08f1666d49a2bf7e165899f23a84c86a5c1e98a1b2188c01745e187da779144a0f80880ff2babdf073d17f5b6711b35cbc06cbf56db0aecbf73c63ab82333a2dfeb5cf37d2ef7f1909fd5167e51df7c0a9", + "249b1e00d01d33e39d6a06a75ac78b36ff3d0fb97e869c169a572cbc1914abac45e49746ee3d0c92c0d7fdb1eea0f9f10ad75f60d38c78f7850d0ce934858a12dc1646c43b00681baece19936de4d639c943e74872e0219964224192546334db029177390f09" + }, + { /* i=6276 cDividendBits=1009 cDivisorBits=113 */ + "fbcc9d3161e8bd9e64cc8670e225e6c431c2be40d3f0df62f1d7b0801b773a3f7770849f43fe3cbd14eceb1cc6e90eb5531b2741199f42cc532d566c5855a0e15d44704f9ea475e905afa6c8461d6ea3b6f3e92fb3caee276662f081969efc710b79e622afeba10d8dc4ab2887e49470e0045ac36d39195ba3a767d02f2a", + "a0f6bd5a465d9ecb555c0753831f", + "01907769f9dd9cb9469e7df72dc77413604198e48ab08fad166fd13ac4ada6eeca18c8dd152d078f5f661ea335a8376b590b6439de54d22d6c18bce50d7d6597e32b33d959b3ca521ded4327c440a157f6a6d4d0ebf44103be056682d97f9c9e05ea0f6ed040e996d258e2f455abe78e8a", + "0e78a0568069c66519bf1c174e74" + }, + { /* i=6277 cDividendBits=3782 cDivisorBits=863 */ + "0aedbf9ccbe52d5d213120020bebe2741c13a652463e8c2ad2e6a206bf5fdf7fc1868c67f74a161b295e0104a4ceb570486e8a632b6dee66ea002e8d31e0169ae55c4c158a677946db263256849d28822a240f37f577a83d3fe802d0765e06741403faeeb02efe3ca07101bcc3a3835f02e86cae360d0fe6e670c570b6e5d87989f7e9a4c668371896cac698ee53add97c8ae18314c4ff61326090af1fc267880e51579a2dadfee05a315ad471b79ad6a2baa984ee6759c38f39332075665d3869d015598ac1b1c2b79e34b894a60aa6ed7770418b1869dc3286976d232163988ce52d0207bf0df3407da2816e0ab7a6dc66c6cd6f46ec795cf3776e48b1d9c992a77aad179824cd5686cf5f79dbef2eb0bfb20fe6efa3bf612362fbec347447f25be7d500fee699e92ec3e7576a6f8ed0266f6fb7fdd7b62c40d5ff78f52ecc79aa655b0c9ef415cac588964e2729716be1c1ec6f14b1f36c771a6b9a7abcff47597e3b7da0266c9475050aef8ad4d133468f03c20cef84b7d25b9c865dcbe40dc2b118173102756d542c9c99d24072e7bfd085615b384e06b7fb907424d96c17cabb311d8926e6c1fd4fe90a98cae03a4d0ca0222ba9f61bba5d82e6d6335eb6e116e674f37c448a756dde406296d8f895b7c3627028785a", + "781fd1e25baaccef829384bbf031be36f5346e295d0c0d8cfa1fe5fc8c37a2525a3aa238e368291b29112656d5ed1bebc08578e40236228ce1eab52e7de447f7ec442448f25ff3e0c4570c93274132ff0c7c20f252930eef1921bc55cfa058e0ba85a83eec93d0be75671c2c", + "174a5ab22b4b9a440ee8c618abb0243817ea23ebf26f9174540d90411b3aaf50f3bc7c3422d5b8af42667db4039a4a2c787ce5fdaf2c39e41459981ecc0317063afbc05a6c025f9d2bcdce348506ca076317be37852ef9b10077f4a07f8e02cc118459787f3998a73c813a2b46ac4e49b9e64e30397ebd169a75440524219267fddbde6192a9e0f29e59a5184f472a5450ff218d5cc47bce4a606f36848b1c3ce85a8f44a95bc731816606050f425404f64034d892233de392770676f169006607140db2a32021417e67a9a0ad076f98f95d700e233b9dbcd124c40ebdbc25abb0b7c370efae8f7e56c96a0843dd24a4546fadaf191f480258be82511141bd72eb53b9d63158a9ba790f644234cb762d9fdeb4ccae2ddd94eea40fa412f373fcec5bc4f94dbd3bf4a2efad4c7191465de703980e8140ba565ab099f2a7ea273195a11e406405ccd7846a36e007687ec0d7f65a3d905418e495f6fe7f23715a4ead1651fba4494fda1a97c8f4a5", + "15ab1dbbffbbb0cdd6a65e077affa550816364ee8f63be662e5e194bbe994f7df7ca0991ecf91a93355646c2af8fd68b9b2d82ba6c1a6fefcf768cd166835ed905b2009bc627d1aad96527bc9809d2823f1dc52a850b9c07b864a29b359c161395c235f5d366d21687795ffe" + }, + { /* i=6278 cDividendBits=3323 cDivisorBits=2864 */ + "019df6116bde6ea1ff3d288c5c14ebb598d5a65609dd8da654cf022896342a5a566ebff028e20dc095360b45fdaa1577a17b2ee9b8c69343f7a7a9710e94844f482df0aa1d51046a0daf28deeb8941ebd137ee9ec995f9e99b77136918d31895308c6eb34d0c6486b1dfbdac942814832e5ae80a446ca2efd74b5103f8ddcf7f987b61e0c81973b7e15802d8ce1a347eb2524f2593f9e3aab5db4fa062ea7f3a130919fd54ea4aa9ade2a61eed8849aaaee460801637f2d4866892d87e0b4c2b26a16bcdc427a1fe6c1ba892ff1228f5524d0ea046c7ab1272ab5ee97e95fc179dfe68c54476585d27daaa95c1bdf4021c76cfdd8990b0f0dbb20b4096530004e74001c40c7b32e4dcc2bf7e059ed2b7f4413a92e66b791902c431f7ae022c417804ae76f69d0f7883a4f2d4c261bf8394edac685e7b823b686219772a84d462fa2c71e290b5c7b879f54418237655258831eab8108c2d8a7bdad48c4c8470a413e84dcda355d751934f1b648babb9a628feff5c70f552bd7f8d4e41fb3d189c43d828b805b54c882f881eafe7d9676a17e5155dd0260ae4ac1c70f38d83d881", + "43a91e755986c8442cd792088af6198f9d4bc2ada0b5a3a323442b9899f3957e1310b56069409632bcea82123e0d89ddf01dced69cb63ae20ade5239446a1358915c712f90bd3ba4f937ac8f56417ec1267ef945b85d10921351841991b69c12b25bfc64b41b42248917cdd7ca7f155ef3dee0e6c8bf16b0f119611988eebfbf2f056f58f4f19a724c04662121a9e98cec0eeb978e966c164e9c7360fe36bebb603e3038154c25f3025a6f926872c4b00b5c6081563a77fc3b9d7d351978736a1e1966f7049bb4ae764a0f202cafd5f64e7f5c22d18062675b527ce9cd1289a81c30e3ba3b906b3f066517636933647bf66391ef0b24fc50d66442b116d0ecb42e07c9955c16d715ece6f0b585d6b91a64d0df1534f7d2480bc7d8ebcc8055d90234042978ac427c813c9311562714c6acbc1ba60c67cf780ed889ed46133a61099b3edf7316eadd780235b01f4a62f625bcb8be8d7c9a53151cb00b1038c9a2f8115f955a2f", + "061e4258eab39d84e8926a53c6ff79a256036dc3656c0ce2c44079816d370be0e218e62e5adad5e299ac48b96c8cd2f6cb786bb1437614121c98", + "0e28289fa6f94476b3666cf36ef42e15bd613627b4322edf05899bf73fb109cba5ed43bd57920981c5e9a936414ade92917a2e73170ea31287da35b93211e7febf1b87dc0ee0e0953bf61f64e2962966261bb6af8590363776d6ee231d59e2039d59ecc8fa66792c9abf746b69b40d1f0b3ce55d6819a5d7a61fafa2ad1a9f5224666ec9258aebdae12635f6b3c9b304b50ad16436c309c74b52d2abb3778dcdca819b14b48f1a8b02c51d56bc87d5fd1b3c6678cf4bf509dc2e95cafd9934385e7b6f3d0104e0c1d7950597986a75fd9559077d7282a2863920d0e0a90a26d43dfde521306c9dabf13951a5e5b2370705da5b19c956d9e198790264d55f031a3a87c2191a9510f8262d4d9eaa5990a23d81bd5e3c46f36b8c7bfed2a6f5495d8046f59223c7c0e6aafc11c53e2de7903b8defe60f8ebad092d2e1a79b05203492fe4f042f9319ad8260d4869301d6c6a788613403079cb4ba95ad5e58452e95fdf873ab2899" + }, + { /* i=6279 cDividendBits=1759 cDivisorBits=1608 */ + "4903a8961be93f68e67e78740d2a1adfe2a113d1e3efab515aa4173260b34893464b2cd62c606b5f44ae35553ddf502c88bce569f02e878545723bd99a31c7dbc95dc469e39289f32e7ff523df149b83ad041c0f8d6a9257cc96f4183857c66406c820a0331eae70fef4c237402b411cb9699379fa01c8f18fa99824f43bbad3ceda0a20b1ba45cf9c5545a6e7e5f7c7ab2d13be02aed0519b8c4236d040aead28bd213ca8871dd82f59411f4b56302385fd19373e8b35f1d717ab421740953f76ece74315694e5de391ca08e6ddade8227df9281e1fa2e8759ada94", + "df1096fbaa3805b3f472ab143d515e445f1c718ed46f468f4ad0fb90a0b2bf91e1970419aecadb06b6196755c72d7866432fc7c5f15cb75732b10de8d19e3a7ce56cd349a5ea4377cf1b705a4ca8e266b86c7377702f3db6c6f1718baf3625e38638d7dfdf4b1061e26db7203befe60ee3572299b5a6f7cddccdb9dcd8729fbc7cd8fba5b2f7e4df8bb5d4f1e7daea533bb9c096a2c26af86ecadee8ac4bcd5c40551041c325235d4e81e62d008bff66cb89641bdb0ca1ee017565ae620cb5f14f49ce4258c67669d5", + "53cb7476853dcf4735fe9076e4bf5c6ea28111", + "bbac38b628dc1c46fd250ff985ce9d3c78082cc025a9608d533ce75c9f069385e0a51c4dbaac0b48ccafcad498f2e2b775f5d5aa10991a5630178ae666bc7081b017a1762860342f01e52685e07bfb0dd520ad58c9348321c171a21d855aee20bd45e94ab62987afedcb05b7ae94f8af43717b81b38a79288729d43e3ff9ffe5cc677826bc834a7ffcb7c3b0aa5f630efd34ee100f76f0ac2f24ce3de2e52386820d23af63753ada26ea3d9915737e69047cc6c0dfae3505b13bc620614e0b61a30b52130d1d9f7e6f" + }, + { /* i=6280 cDividendBits=445 cDivisorBits=34 */ + "12f1d08adcc3760d1a1d007ba0961ec5233a4969d6e8df99d9dc83b5e859c2edaaf374e81770bfb1d588a41a14225235ae6236951acb6bea", + "4f1c507c", + "3d4de206d4c449d4aac93ddd28cacb3cd8924824ba4e036db57a3bea2308e188ed2eeda0917679884b6102f947210efa5bbaf074", + "286ab3ba" + }, + { /* i=6281 cDividendBits=2091 cDivisorBits=1805 */ + "06d66fa6bd5b4a7da85da9e7ff93e1ce688eb7454f3b1623c2074029f17d74cc323c84565ec76fad0280bebd6ce45c162612692a6b2ca7dd706401211b50ecb300eadb48d77b02882c8157595370cebb5f91f5056f95388bb72050fdd75633b76ce8c79a42ee0a9867c1ff81fe0d9bd834b7e02a7a535a8e725853647734f54f75390510c4313910619e34bc17a9c0013166eb2022f558a4dd28f916c700f2e81ed5c312342f77ec5b89d28443dd5d12256dfc61fa0357db721091adaef150e0fd972d99a9134f31c20221cfdb5a65b4a36f4f4719cb8cc8be93dead96c489413fd1e3493f9771ec92c45b4b4baffe64f79fec38dab5d3b676d63422b8e2ea7231bfd9ba4354", + "1f9c5759d5e50bf5bdca61454d5b43ee4265834189c76cb1a382b9ceebf4cfe3d414f230dc1e7fd91ddbc961960c628fed4361e1c4c85772f74263ce16e47e00f2fa8c8e7955509ab8a1874379542845f7d78db5da1f9d8bc7020b74ae226684356b4cf4c8551331a4a89b8433c22f52e129519ef749dfedd561f2afa36b4fe5ae360141d1da30eb068c9ecc32314fe3e40435ab8d367a6b176403dc4f0e31ac307acb36d54faf2b798629149fd0fc0761a0d71c1eedaf137478d77abe7ab14b9f2f0e4123c92f067a3b13d22b20be37fe18add2f40a5a3c456ca66f60b6bf637195", + "375ff1e17ce7e48b856b980de7da384b46a96431d2f8509669754d77aabf6396b754614e", + "14d482f0c1bc0063d49db8daefebdd41f06c30e833abe35787f8ed497cdbff8c5b08a7992d5eca6cae1989a494937649184db350b351552ca99e1d356d8a3cd50fb92f7b6232131bad48ef0187083e8307884a5030fb1d57d9371637570750b6402489d75717437f542b725cdd7b927c00fab1a8a762282c4ce6908ee47619d2d60e636944e670f35f83e5cd987cfde6c8d794db0d9e98550c0cb6efb3f5ab67ae33fa6b7853eb7a1468f8c8a64df9b926837ce68f0c9e3fc017da0569827e749078f7f62219d82bfc566372b973dacc8092d4545ce26b40631058ba6c6c138032ee" + }, + { /* i=6282 cDividendBits=3989 cDivisorBits=3375 */ + "11cfa6962db4b092bf2a64e026bc4690a6e322c4f2208d7e16071d2c3d1308761351beb0553514e89809b1965c0d3a368abce87c8b90ded0693f6a425f7ce071f4e5c44062484492c86f2a1ebc5aeeb2f3188bf1ae659fde8c08caee634455fef2eb4343db4ff5f04d50a4ffbb2e36111b9e59d1395b27968fdcf4cc925b144f1d6ac2590d5ca1fb4a77bb5f5fe8aeb71207c0af02330aeee2ccc686e48b38d5fac3a9e041d39138e1c2b180633b4d36234f688d1308636613b316b9cdf7ba81ef485bca51e546071b48cb1ee995d7cc2e5064ab4d31bd21924acfa3f049d8e261e4c7bcd8c270873efbab886fb059ff6f60241fdf5d36c2140a36c525089e7d3145449f96d85776e1ef2da02dddd30bb04d7a218f9a36fd3933cecd633628514bd86f84098ae3e0ed6877811678389ce641af3561200d0db3623db22b4981e7a8cc2694005bb0d4109d46d7bb74f65a020957bfe87e59a964339b26f3d396759464462cfdb59cb23ef55bb4c139ef724cdd8e56483d336a4b22e41ef414b3e09cff75ec89c7ae693b3903ce381633dbca49c2ba533d8b429560b5ac1be49a56753df5dd0a3020c3f6d22e461efdb4d4407834a691283d4b58a65855d5dbdcbb1e3d11ad6f5384c78a3cf35469d814763bc5c28f25a392a40e913209d6fe29d51a75f11fe0a68670dd4dd3d5f384de413a2bb0", + "459f7a8d977c68f243c20afa79521e4f95a982f32051b28b8d520ad1fb1a34cdaa0f20f6365a39f3c350a62a742e1c94b97c16e9d35937d45841d6f64009917be1a7a34645397a30fb66b8b7124999ad915b3fe8b631644a4608420b1ffb3e1138754390c37ebaba6f29eba39ccaa816bd64275ebdd9b3c5eec0e7a02fc553c2a82ddaeef5359366f54754afb02f15305e6ef669cbaeb4e92a2b68f7c42e9ba6bdaad8ca2f2d68bbb4e87fb2ea845a70d92a45e68c64a4cd086b19634b53de164f99d066419b1726c8b2f22fd025a5c0795f53bdfb31d244fe2d1b24e872af27b56c64ef17998ff53eb7f9b17ef0f3cc39533b4f710a64e06b2537ed2642dcd6d5f271f3bc7f411972eb65088ebadf68b46ff3d0689af34321266f90d08e939bf34a911c152e100d81e9cf07822e03aa376ebfed8a6dfe17a24638358f4b5412cc36fa81f052264b636c5a1a8999316914efda2ade18bc9a1cad27de75a489a36b3fc2ef6b8890ef5e5346735d9666229af44ea0adb5ac8d676c50511b0c8d648077bfc412f96cd573d3d1e32dff9f43b414e164eb1113d6fcea0b7de23d64b16428c4ac179c", + "417d98f53d74d63937740b7a84acfc6f98910437674e5fa6dabe83093392cd35482602a85d0d8f946da3cbb8dc2753ffefc232715309483f9162e2f661e1498bbf249adb0b3b69ecba6b12bce0", + "0adee920bc3284fcbc00fd50ff4a0958207224a1bdb41e328b8ee40e97e430c0f4041bec3da8baf4f24843171664bc1dc7431e15b0a179ca96bd3630bc3f3b91002cc1a03cf590a1369df02a7ad791989c782be14461922959d8fab1118208b966fa305d0d803883215e828a29ad79252738c3fc146ffd84fa4b50ff1b3b266fab3cb5453051537616ca5cac908df58361ec3dc6b408a05304555a9c84fbe180f67a879d8a6b3f691e5b2fcb7870fd0f767fa64fce679719ffdaa149c635c96d52b570d87149e81bc08686e0803e78447ff43c9e9baaf6016f5b6ee09e6697940025bebfbc49b9776f2572649ff3a7c4adc49312f0565b09b306fb6104d05b5f7660349cf00ffeb7fed5baaff1ec0860027243ec1999ffdb379468eced742fac769cd8e0fe57f59a7170035bf2f78c47ebd7218523f6b485d109217b3e74b962991658cb384db2a8cc2476e5ab9a7e6f4294d1d2dbe92f2164a9903176d3de54ca0bb0cd1c6ebd7554526652df9cbf597747f79a4cc335f897e0fe6db9b4a2d08b378cd4c0280c70c5e2b125928bb065fd9359ceed79da2ae2606476e22b32533773ec56f330" + }, + { /* i=6283 cDividendBits=2092 cDivisorBits=826 */ + "0a0ab15cea26c7fd54902df1fa3a3c2daad1f9c25c0491c66f497457b6a8abd6a7f8a6968343b120ca1ea4fad89121a74803cd0c0cf6d4c606bc11d198b5c612621c717e0b16de291a92904bb7bf82b340bbdf9b66fce2d89eb8fad616c2da1514dbf0238f113de49a7f81406c2343dfeae06f638fb6ba14885ca5cf8664e1d946cb1b5918cf7ba86342d43dc356d4535d33eec3be6b7aec3c90ff17e76cc57568b2925083f8b6162ef372d75a71403cf56e1bed2e9a466dbf4e6ef5443f373cb180a07a692a1848faaa4e424e399370477cf48a0bbe96e042c9346c9ee1784ab495e90d079d31fa37f95d885967576fed6db089862d52a66b7bb7ea580db2dd37ea29a900b9", + "02c4a384d6a06a4b1696dee1f8a947e71bbc8a3ef29fb23efe7f7264b0539b21647e21f26dfbea141a3826d377df31ce0fb8b4d2596056c5c2fd0fa9eab313c19f432417b474510667f19b71a398452d2e2e0785e507f185db1b511879c66e8b51af2738febfac5d", + "03a0ad9f4490f86fd1e2d40f1ceb7ff09747b0207d7f726d38bbd4a506f4b295cdbc62677985215df870d7f806d39e5bdeea9be427217b8dd7634590ff0776548691b4fa6cb71f264355f451a0ff82434cfbd0f13dddf997464e666241338d169b25cf2bd94eac9bb681fe27e7c996f69650c0b4e585e9c8746e85194cf8cdd8647cec3a59d3ca80e42dfb22b4678715079ae8b4992dc00774adb15b11ca4a", + "02a46dc0c6193f7fb0689cc18ca8538c2980b7f38bdce10b97bb166072c0ca4200aa2d568fb749be709e7183b317a6d53f9b6b97fdafe621c7dbc4e31cf89b60baa1ca6c88d97c9adb152608baad09cd98980986d939685f13360d53bf01d7e0b4ccd620c712cbd7" + }, + { /* i=6284 cDividendBits=2268 cDivisorBits=2245 */ + "06489dfe83bc65b3f5207f9a1f89a3e72e625a31648814cd0c417f00a5e65c344e4be43cc4b53289748dc532d0cc765c1040d8e901e49b3f4cf91ad92fb309c7ce4d50a69de23e11514cca648f756185386277143b9cb221c5c8bccd9d93876d57be264677ba07ec1e26e95b67efde8a6ad5365d9128b0773314eba57e252d452c568802c852e9ff10185376b667b8149b818c91f1d75baf48752cf43a38b60d84e3f8ee5a4795dc4b44aa516fb53d2c39dfaaf06d2487223fae4bdbff2415a96fafec8a316715915b80d60c5bb2bc5618533e84cd512c4e3d96675d47243da6af211b6e5c3b36a1b62b080601b7e05386effb963823c3a65d6009ed17be5da5b35cb6282337066bf59ba9b2c2cd7bde0026457dafa67feb53584894", + "0346516af51f34c7028af17187cbbbddb9d9cad999e45c70a2fc6193c7316e7e7028f7c7ecae35642ceb88c3e8b43d4874e0977891312e09ab7647a7ede8be73c7217ca0dfe12dc342bbdcbac2e150219f9de52fc0cc9d720809965f1681becc4d75ab0689f628d4dc6b5de9fad417f39117570a43418ae0b9f508a4686203e891d0f3c062c190464f8edd35f65f962d712f8e4576fe127ad4b105bd6c937e407299af96a34eef35beff47767510c14bcb192c19c8f2ac4884fe0aca118e65954823c26d0a51998b09f0a13817e0035e688d98068473c1a5ac91583f916abc20fbe4aab8d549f5e8a1d12376e56131d4331f7fafa8c356ea20e92446a00bae00fa906fa645881474b0789c688c34ade361d7de5525cb7b9ae3", + "01eb3a94", + "03464c2cb243a6619258c77bea921557582bcc6ccc0cb1647232f5fcec30a6cee07f37ddd582d5ee8dea06c974023db7f09a88aedde44ecf7d7ceca83a0b0a09e877fda0d9439c78e5bdc31d1e514d06746f82f65619829a93a0ee9c134295cdd026c3de144b8ffc7a4a8cfb8a3885c341ab84cf5ed337e70c8bb27d388fb746dcc46811559e2aa4d380c15ef42a4d6c7cfca0efe2a00273e046bdb6b8097ffc15cd6b1ac46178b3ff770718f6606a8e3c6d64a78bd492feb91f732c6ac7c6b0d45581339fb92bae9221fe3f51c0756769ffe96118b01ec26955d0d49317c5648efa932dec0eefc2120655c1200e004eff2bd75220b0f61180a1cedfbda5f85a6f6fa32628d8e0e45d13c83d5d09719e9734556fe59d6a4f58" + }, + { /* i=6285 cDividendBits=943 cDivisorBits=29 */ + "42138083f5f4c040d35b68d7403eae273f1a8d17df368bfa7f90e928af763033d45c7a48a8377ec861b041d02b0b3f07403ea70293ec68f2a43179c7dc3e6b1bc51576bfae968dbeb46b2202df951148d7441c27b92160435528932da76fd1e36bef08b6899fe606c565c5bb7e7331fa39d860f94a29", + "1869b400", + "02b4e451e8d3ebfa3843aba91772826c3704c9a04e6e2ceb9859df39b5f7fafede0114ab29d248f55a2233c5a76ee07563011117fd0302f1510317f303b3cb6d5eae63e1be879f949b2dadbc1b56795cd9dbfcc87d5d3fd04082e59f92ab83adb10231dcfe3f8b61e68ab3084ce0df04321909", + "0aadf629" + }, + { /* i=6286 cDividendBits=3074 cDivisorBits=3067 */ + "01a475374270866a22669dd4b9b53f1fe4914b7077a179395bca12f55f0bd1978975dd9f177929d5186a330d913dd2049e7f9e20cf738d8b4897f8440e34aa14da28fd219b02d60f3c8e45d21479e571fd290d7cd7e06bf60130531ef864a46618e1a99accbefcd5e1bdc5edf883113a762756ac66954831167a7568e93b5ed3e271d77ad895c1ff07375b8a92d36957c6695ecff360931714435091ac27bad95b03cf4c3bd1423b1286deb4c2f6c8f34f392749809cd89c46417c62c5fe37fb09dc45b9c26cde98185222c67bbf0f4044cb987541d563fc77c83d3ecca463bec0e610c21ea58a18dd96d6619f3f73791d98c6644ac31b36806cafac8dbbeb8fb5c1f3cea1e733578a322470465bdedfea33e2563a570624c25ed092509499f90541b2c6ee4fe77208119fb4be69e136057ef0bf8cb9314bb7399449d3e1009abf81c9a44ff8c791f8adc9b4f79d758c194601ff73239f065ea8c3e5cbf79fe6de45dd1067c2eb3b2ee6ad12479e29249c37fbbee542c6dfd8a0f2a3a29d40e74d", + "0d60c75a5ae35c6587062b98ddf3eb3b9a6318bf322975e98c8d34bfd95d2bad0117d6310dcd2f0d4572966415abebfbf2fd7483b44fc8b80314d9a3435cde850956399a87308f5be9452dd58216e778fb5e0f19ad11a2164283f137d5e777468a59fb796f67ec63131a3c14844ab0667c67e27dfc6ab469b1faf7bc4353799adc2cdde4cd9ac39bdfcc4869d5ba1db84982c23d0cae02956f1f3931db12573f57a3ff22a46c257f18c758a28f4189e02e03af89e49bf562fd15e66a3d1a4cb0688e2f5898cb84dcd14c781f0d0b6d451dd3665a407e7234965242456b19b822f5b0cb3746532f68b1af9a4db43107a56f3fcfc31b35ea80ce4e010512fab3bce84235e4f3cd52435c9169c349bc291c88390d5051572b8b0de8cc3dbe618f9811d344a340098c00c822666207a6f60d9f2c522f90e7cfafd0a65a8bccde3d0749c67461bbb5008d031292e9230f90849f4aa0def89e217331144d4b5f32e80db186708d75ac60fd028c24e188b724f49454ae20318f330ea07dcddf3dbdc4", + "1f6d", + "0ade6ff64b6b7fd260eca6be34c8847e8f3fc726184adf542172ae09fca1fdaa8388f3ea70c5745ac10d6a00c63da1cc771a408a1e4489df22089e88bc97ff6292715dd86506112c92d0b5d0bba9c835a29c4dfc98d34ba806bb80b78966c517dbd7058cf7f63c3e767be7c1b210f173ca03b55fe2e978ec498da1eb988f5ad8a981a9447969ddbf54caece1df7fce0b3c9ddad91aafe22e385948663b79896ea293682827a4b7692e185666da5975331d7610379f7dce761328cd5c047f06168973df332ad9c8f4c2ab93f21f275fc14c0dbf989e51793046322d1dac7f1e430bdfe69885f0007eeaed8357caabd3afae103464fddc0e99665681467b0d4e330b16f5e587f55b4e1eb79847b0c7f48ef96ed54ad5c1617ab3b7e03cba0b77598682f00c7b6d53803ea947bf67539b6bcceccbec6c71ff19987e588bdc96e178580ceca0f06fa9443b022f1aa56b818425bdf4189da52dab68e4c258ed2067f1ff315a47f1173fdd9eef4408c5b0421e929adb8d55b855f76124f215fc5ed9" + }, + { /* i=6287 cDividendBits=1335 cDivisorBits=261 */ + "48f5796262a9e76ca0eba2dc0c93d72b46c7cb850d79bcfef8e9c9d0081824a2290ae723ce2bcdc618fffb0f703ef518676736b858362a0c4418d37cf6272172ae21061594b0f6cc09ee5c36258af013553ef5377b3f9d4ebf3b3b87c33e25a0ea49fdf2344e06d13a39bd947240570fadcde33802b9bbb62b71478f69dc18859eb3e2cc3cb9a40bd59511c5f799096a1d1dfe0dc4ba9d33bd975217ee4d38f179fa69660f4df7", + "0af89825d417ef3502a6ee4c0fb9d6c33395acf1d91e735ccdfa94b25fd0f375c8", + "06a66de92b056c0ef2f669a03d8a8d3c82d7759c2d458699e09b2fbd4119beeb8272f2faaab0b9c4c8310ae82988cfb23e1f84de7f0c8d172733c9c092cc19dde9836a76bc32d1bf5a68f2f91dcfe70f20868270f0695a7a08804c564710b32d174d2334b72010141a64d92c76e2b0e3912c1ea098aa30c178cd3cbdaf08e12959a9956c6354a1", + "076d8592eda9a3a2b654e22e6e010a094d957fc571821a3cb5d73d42582df49b2f" + }, + { /* i=6288 cDividendBits=3862 cDivisorBits=2847 */ + "21c6c93bf0bcd79f58677aced12f4db2f8d52d876d883ce160fca64abeb7c2e3ffdc0459fc259d8765dd135fb4240f281325c741674cb14e4a3f57e48bec620ed8d508e8540c662a0bbfb45e2c35d5e3ac5ed78a491917ad94ec6f65f7dfb1937bf7c3f894285ccd4da250bba3edcf6cbfc97262a8169f24fd70a8d55c8cd5464523945a4264f9b66b62700ec38e1459e86b7e380c1e0fcf11994114df662ed0d4970679c083bbf8f162cd9fe5faed428d75a6f684a85d6b94a338ee2349bd2ab0726e187fdc4b9a263b45724256c43160d35e85bb4773a5edf93f25e680184e3302c1cb44aee815042568d097bd6c8d6e01bb73ea74050c7f0bb30ee518915414689fcd513c7d6e2d49a0f7e475b21277cb14b0ecdde7f7c094b5c39d67e9ae2ef55a2169cab369dd80ce3cb44674577435fd19b8e97e217282b0c678ae953c937b464261c8f95db4642c1ae83355d974b490ccd576a3d8a4d2cf239c188aa8f8ed3288dcfe255a395f1e385471c3fb66d25a77e75d7b5d12ab7180531cdbacc5b7d6993860439af5ffd792e0ffc530447215092fe1f9260221d2eb3666c545ca11799ea643e254238c05564fd143117a17ef4eceda555e6eddb2937fdea1a1ac5daa1092a7fa803445a50d7ec494ce91d78b6f0e71feca6b4ee5fe2f0913d2504a2c", + "2cab047ce741343299da33306ff9be852c731d15a5f8d410d2517e8d8ad740e3676261486a4dbd36b03800a6615ac36fed699aa3f36e90c7273a8d347d41fd0ce0036f57d976c3c521678d90c5bd8921a63baba7ac5fe8bb1f43575642ea3bc6f99d2e70df6ec33838d099d0a78e17337d262513e01873eb47e03cef39e20c019c7c934a0c211f5b0221fac7b079116faa6420550db8b6ccadef028e3dd7b28989a28b98fc90b450eb40aeedf3207d701ad46ffcc8062d20ed6a2c8c82979861b4331bf618f7f255d38ac8da3d95270d75069e0f93d2271267b9dba5c65c3f47d57e03d52990f92085a07003bba769d1fa791186faf12cbc1e204cc4362f6cadf6dc27f0346e73ec721d9d37e9c1d16dcb68d0cb33edcb9cd338bb88410a4dac184abc20ccbe1f60cc7ef41a45ad125f841a6755877e12a175a8d0327e2ded2a0c054f73d7d00b15ba734126726a446a6721b53458ea1ee37fff75195f0288e0403816c0", + "c1942dbdcf196f12933720c97c1019829e3bc70d03d70d5717a838bb9d92373527f76fdfff8871b251e5b4aa867657e19a14c033df03f673aae489cfa327ed3a90222e2af0b1af54fc7a7da083fa495e25367a1817cc72d809f0df0fd25fd0ce5d95fdd5cd363b791d91c744be1cd060ccb07378ad4f5ff78448e9ef8bdd9e", + "20f2c9223913c3637d762484c93f40248cc1361a2b8d722fa8ef32a782a231bfc61557600ae190b1b9683581e4e0d478e8235e2ee7ccac077eb79c56efc1401278c022ff519eb9d8b71df551861bf590e8c42f8a4b0853de6eeeadcc8bfc86b96a641761689b71d45341256a927229ba7bea40c03c5874bad74be8c8923549638a2bc807ad83b9951614d3c8e204007baf9b16344c398ce1ab565a2747b5cbb15e9f8112d8290b28a255f8d079d9cbdfe5b8675c48a2b329d68987de6bac6e15007dc79906ce6e16db8196f85faafb5853df426cd431c3700d6df540fea0d19c24f69f0cf7fbe86269d585aeb29cf3965fdfd4e034b3364583560cd1155b6176b0dcfce29823d7a3d817de1b8ce7760c8fab2eb651b18b760f17ccc0434cfe4955471b5b02d7a2afbe8d6a165ba093644d481694edf5a305862d19ac7c7add4cb1ecb9bc1db375853a7648fa92587b9273205c08e203f00559359bc5484b06ca29ce7fac" + }, + { /* i=6289 cDividendBits=2430 cDivisorBits=1693 */ + "08bb90dd502385b3dc33a552b416c9cc9d5c464c2ef4b1d4f4f514b6460ff969109412f0dd3e6233f1f1a50e7fbba5fb39d60fe8ef8792c7dd3d1b12f3e415d993bd1a84a1b0bb2ddeae3b85813e9359249a068ea35f1e6a5d7aa04421d5ba464719deee8eee5bcefcfe23f0e6d534b177d1bfb1689e1faeffcc26130d5161994d987448301967027a7a7ff6fea8181b2a66c4b2c5b11824c3fce4c02db4878752702538a0b174fdf2a766c17cbb04f22181e88950380e7cb252fb6f005dbcb1a9e2d15338cb6efd88b85556dba54baa570e1ba22ec59f7b452548544e5bd23df85c4459de925abb69d253d7dd31d45d3657bee1c77bd7820fc7247937d632c6c280128f185e8d173c148291a75205de782db61ec4999545d7f9bc77e840328975fbe46a83dafbdeeae9d875c5c90e31", + "1cae737e4e04dda92aadc834d23720fa769f1ec077f1071378c9611e1e4a793edb2fb12d4505fc8bcdf150097001249eeb5879f3f0b390f6e8e2f176bab1cca313c44bb4175c319e740de711d6b0985d561f358a16b59c8cb19d47667498b835fb6b8b643516030603d308271a616b7d780f5d7563b619d478c11356dfbb10fe9201d5a663c38ca161423efc051966829d93ac1e628f26dcd1e5793e7aafa1e5d659674c113427b1c2164267c9092f2e578a03ca4cf5d573fc7e982826d1695fa714df3958c6495bc4c895b81426770d5b117e59", + "4df1d54b6739fbe67aebfa0c624e7c7a06fe77a9c672105a83964887442edda37d133b7b767c962c6357dec8dfe5a17c91c8f33104b810bf581fbefbdc890cf2c9e88bb0c63d5d0308b47e2232c1f1595c54dbfa79bf0c14301a0e0c", + "1a174ba872c8ef2c9471ba40fa0e58f403283ea00fc6f64e7db8ad1a462955396e55edbeff72d1631aa8474d4eaa032fa23a2ca69cdfadb15711021a5a7230c720cedbf3a9e66ff7b7dd0fb0e8c26bf831642cb7adabe6b59964ff8bbc8ee47913d3a4b79775728637d322efff8cbca4b58452a2cd8f8c8330b15ecc4f7aba27001a762b1e82f4fd5bbb64a90caa44bcfed66728a6d2e0802e6b3317c62b13a137b909d5f72042c7eb246b6e7715f474b83df3ef6b6545726ead6b69b5a3f9ee393000d11943bb93bed2f9ea0179f66f07044405" + }, + { /* i=6290 cDividendBits=2920 cDivisorBits=1636 */ + "bd132c1f245267d547fd3a85700d9749d5cd705643fe2d1609d9394380e90b9670dfbfd4f8831e29558bf1cc9334bfaf048ace373c6940a2cc3cb87bc3ba50e915e88e3586c34119f035844652df3ffd0990f48d6e24efa431dea1dbe17312b132a718dba5a4a93e1536605f1fde091c2a964fdabc04e2745c630bd0c0b1afa92dd81787b3bca2705f3e0cad7a9194e391fb0fbafa2c13e59baf3b36a1ec3864312ca328ae675f8b4d728a29d58df7184be0318b881bffef3883e0aad0922552dad071c9b31b2abadbcada5390f57373180863eaf033f8fc72c23116b9658473b290cc43fff2be543f05a1fd788226fae0c60826aab1ccd8e451c60d5e6cf5e2debc28c8f0f6f486ec28ab3f3c7a773d853f4256f115ed502a79731efdc90e295e43d37c7778098a6334a4015b1ef5af895fb2e454fccc384570c11e03cbfa2e719cd0b7ea2c8d8502519e0440474cc05b35afd73cd1bf4ee7cd55de845bbd3f3068784ebe8a60366e220a5f0a", + "0ffa4f4bbbd7ca6446cb097dfbe8aa9b9d9d3418fa7f38bdb38ac61791fff79e989c93a3b37be7f83ecbb2e97a44359db88f66f6285a4556f2c4b7c45e3de88a717106fa8c08ff0ab951caa2802a524892285a61d82d9ef30fc935fe1dcb5be5970686350bb42b124e346e141264eee5975ca6fb67aa8b2eec7cf6c6fa5aa159cdf447cc2905d374d02f1f614a867e0153e561005e3c3ccb1de2a4d34ed9ce853c6f1d161a84f3b87f87b3a2a9a92d2e878adbcab7f8b2c1831df6808f68e68995ede7038d54a45ddd9b608c6a", + "0bd568234a0cbdc6418fc9aef51c5e17e7db622e2782ba3485809a7e33a33eb8792988b9b10467dec08779865c457d04ec824f899b728a69843dbb4b2dabbeb51a7b8d813365b56ecd975fd677afc699ceac36680e192b6cb7cadc192f6778351fcd49b5ba333a326d48ccf70ce4d717d32d61e6f9b3630133316579b1b94a016e4ed31332fa8554d880eac663fee5ffb4867e7524a12b77c044d8af0df1939e12", + "0f4d623fb4e7541c6e769bb68d478eab9bd7e56b16d8268597c843dbcd305d5f149abd8e2019c158f0c0d9727350073e362e0db15a890358c627b0a8474ff5852530826fd448a9003a4ede5eab7353e978573f5bf293eed654eec228bf190dd3b0b21046217bf5663d99f39e5446dcc3c1d723f7239f57118fa2e3c9d5b45080dfec13b606e413ca186db0c64cca67609394068f9db12c956801cd149b8bc674d50040673223b0641f9829243749222d919dafd626ab0c7aa42f3ab9f96ae5a94da0f1e8171a0922f133b91396" + }, + { /* i=6291 cDividendBits=357 cDivisorBits=1 */ + "0dfe513aac5a1cc56f15012f54304b47be4dfdba3e5543c37c2f7ee22a559d26a6b11788e6354880a0caf39173", + "01", + "0dfe513aac5a1cc56f15012f54304b47be4dfdba3e5543c37c2f7ee22a559d26a6b11788e6354880a0caf39173", + "00" + }, + { /* i=6292 cDividendBits=3060 cDivisorBits=219 */ + "051ee35e209b1c10662d8ad119e941c8b5cd0d7b2b8ccac43f108d2050ab77044f509ccfcc6b3d3869a01ff8c4aa2d563b0948968da914862da2b2bc6828ce1ccd212c5f4e03d69d59635216590d9c2762456dd631d0d1925ed91e65bc9ace144faa367824f26d0d3110f2ae2b20b835e7f2f217ce7254cc1eaac29daa1c924ebf7c2d46e7171385d70db3e4997ac3239ff9e65005572356b7f2c9c2509a54fd3104eabd564a572f8b2e24de4a6a89de7c6600277d06afec590e96af8ffb0eea2b76d2b080b6cde4ade4d39a9473d90064adc26851d451e30ea9b69e0af766d2b3125e3e9c9487b64fc03bc02c4e4645f60dd5b061cb1919b21fd1b87480b7996435831e22c97fa1787998f29a19ad46e6f44aa635721f94606cd977a38d43f2d9696bd71ddd357c8d7f6104e123a2c1e5fc2d9987862e1b4fea6fbb287b87e54ca89b1bd5e0fc40721dc1f097ab69a8cb87dbc5c59f0453ac2f0b221d2889fa94c5d2ff5a1761e5399759e6ef35a59ef2c9587228cb24124eaaf5fe6b6c79", + "052e069e490681381340b5f4cde0199d7197140f91334f261b6f48f3", + "fd13da0096de8f51e54e81995880f8ccd7bd379f9cf59c725a0bc5ede42998638ebff312f08111e4344a91b2bbe37ddbf062b3727ab206171f80da4e19c366467d66c4fee696d43a8a4d43a9383287c492c9db10522d53b72f2d23be7e6ae0e55d7526e72e5ed79f49f2d49f855820f24651bb3be1fdf28072d7bf64cabe47e6377f50d40508277a6f97d427cfeeedfcfba1686b3d1a6258fc892db35bb17d885862ee3b41db0d14138558fa7c23c9105562e1d143b8d3a3ad8fea3fc4a9f01e8dd29bba873beb9cc69301d0b309f41d8833e113b911917a1510c526316dc8f2e0f44de56e62a5fed0f1614806edf4f983e7b8dfd7269ac90c5574ba46766978f443160a11e99ec99b12ad8fe780751d5758a97ff559fc212b5d9b581a5ad35a69beda7049f340c9e0f29cf8e526a0ca81a6d34ceb4355e233034a216b9e189ec4883d6ffe63251a5dd06fc870989e3367e0ce9bad4617285c0bba155a84e3907151ba", + "030287da417b2222e2372d2ee41dc6bf71394a1eae0269f6f63888eb" + }, + { /* i=6293 cDividendBits=1882 cDivisorBits=1617 */ + "03079b226ff334e4037d09747e8c1604265afcbd58b7cfeb54efed1b12cf217dce2eda82e7ff21d95d9dfcfd19da76aa0bea61ff510b6597fc10887a350319b776e9d06050f4e3b6ea7883ad6c641ee1fbc5995081b85ae0438b797547e5e643779f09f3da10235a65caf43e00b17abff01d132c3780c752a235874634537c6a81a2ad52e5619cc4405bc52146b2a9dbcc2d2f41441202c044ed7e733b55129426cd60cbef2c4414e67f75e082cfeeab45d0838eb2e5c69bcf55eafddd363427a30fe85ebfe7a4ab247682de15691bb844c749d95d04d0487c944b7ae931d2bd240d242ffeb2cc181c50305c", + "65f409ebfca02f6ffacf0bfdc32c4fa31cfcd4cbc0dfc5f61e05f961c2edc2aac345f7d8dbab7d155ccdac5e789f1be8e200d391ae407c7667e65e1cf1d61572cd8f2bd24ab8cedeebfef1fd9840b90601eb61cbfe216cb7c4cc3c302d42972f47390a66662b74ce333f8b0b757c1291b9139dd740d3c20ec1ea7b66e2a9b5a1db6fade8c4e4220ecc6ac248b64ac657049bc34b2d57a8ba8b6aefe718bcb8ab2cb8439239ac8aca2af3c5d61c9eb3109833e4bbb8806a83ebdecc05cb92b788d752ad08b90449740881", + "079b82d58f4efdca8f51448a3413469e1752484c9a166201672514880daf379bf284", + "3ecb6aebfb0610857252ab5fdaf0aa53884e238e02b8a2554c2eaf183f28e3c5cdeb0a61938e94a55603d0fbc80e40d5e484964959aef95b3b268d33fdf8627bf86c2e74feec41ad41311b411573d2f12e4dab17de88ab8d76ae157c2edd9e5e3c0dd39a169190c0ab386519e625f90d3bec97e66c03ccb8c109dfbb26dfbaef6a14f38b6078d581dc6aabd87d564b21674e9581aa1b8a8a307b42e7ef55e2db143ddb403e07e84068a8b5aa12f546a5928ef49de5dd01c5d936645d231df1a46857e2a4942eaf56dbd8" + }, + { /* i=6294 cDividendBits=3838 cDivisorBits=1261 */ + "1bcab205d6464e478a03020ff27c61f241bacc1ea2997b30ee5b2c3cedc4a234120c07843dc3c14ebf5c0c5c41380a0898e2bc559b460db8ed9bbbe7e395f601ebbda72991d371b944b05fa4cc5b02d0f332ca7a4f1a88cc63a877e19b37ea16363966e835529fc742d1025ab558cc3d18f4d6fa45616bea3a0cdcd4843748a67e004e082caa3473f19482f92e1789ac703e4cf22ab184db394f7faec6538a2ae183c4b2783107428438fcf44d3d84879482b9df9efb829b3895875484124ad521db3197e4eef85e194ffa73bb73655c80029cc6915331ea638b3e2a07a21853c4dde06eaad2b086d494e5d7fc58062f4923f428ef8011b894c7cd41edb946a7d511b635f18acda5870b4003ea5cd8d19761bd3abe788dd69dcb34b2c3a238437d7c2fd1f537a90fd5d9646d9005776c2ccbf63c4ce091b4c8e966d04d64622d3de413875c1909b18909dc001242283653d8f87d7fa9fc6b0a22197405bf82f4ad45edb39f7b2e378247937261673e5c4febc5bc908d5bd02dc2afa4b698bb7ca94853fbb87ecc5df8efa1834d0d486c0bba5a0961b1bd3a822735bab785b5c857155b2f9d6a70a07a20c52b66d0af56033f09c5df999c08f5a024e5116cfd3c8fc5611341ecb49ca423a00fcc4c3b30f226159d6c97daf1ed38ae7005aa1ceb", + "9c31dd17efb6d3cf4ff075f9946b85fb0a54c2a5bfa508c11599da5e27c1f8ff65a92ff8ecf4f8ff737f225abc1897b60c102eb0a3808fba66f553a838ec212be24cc97be732baf64063b7675b9c0bdbef3a7f808b3bf4a6c10fcc5ca5889a3e9072e4ac0075d16eb546cc56c90d2352e64f5e970f1e9137ede73166b62df8c49421c7381788b9af2786bf99108e7bca47d921795076ab0ee60c7c3bc3", + "2d8cd686749315da16b8f055b6acb9a8d3b949b8eadaaa9184fcd4caf7a21ac07e00997d7ff17a3c9667529bf8b80a9411679693800b53ad0329bd6b57444a0eeb3cd2fdb5813736dbadf9165ecda8c429608199d6fcc405a5b9a4226dd5f8806880ba6c6c7a6e9a95ead58f2bd33737b02ecf4ff760c819138d2d11e7f99784bcecc8603a087b8b6af65b01a2331e246f05a51c060483dbcd1f2a6a894d75aa57ed9856314919fc2f77a5b2466222f4d7e1d44591f18687ca5e7cd29acddb2b517ea8ce46bd86bbbec472957e3036e17ae5ffde0300a9e32bbdf8b11fecad84088cbf790f5d742c3b874c7e6882205c458e47c43b0087c954dc7aa43cd46d48496044fc6403702b6a3dc969c4ed5e22031f56fa13c986ffb9bdf28b061e1e4339ead0e07e89e8afb4f74ac2292a645a31cf02d75cd79901cc44929396020d8def1544", + "12385f3017a68eda30b3f1b18aede6507ec6634badd9cca84a1dcc547a26ff4f74f61df83f4d3f38d9cf104d7e1ec99cc9279c2e75ce44cffa4f57dbef174e5bd4ba99abd6aa644fa67ff90f867d015d731c617f433e0ac6e9042e4dbbc4b3fc08b38d7e458018a5f302e068371ade42969562810cac6c32100d30b4daf8a031a5c058b224049d874be2d8dd6304ab3d8fbb62f0d529e1368151b63e1f" + }, + { /* i=6295 cDividendBits=4004 cDivisorBits=344 */ + "04af3c2c09ee5915c2dbeda6f40bfb363be9b6c9dbb3059105b70654fb12a34080163913e6409bec73b45c9dcc028b8414a4229b0452d9ac1156e267020bcbf361bc2ec65a9cc2db5a164ffe29ba87501f946b90348ce62baa0f7bbaa0918b3f052385d518c5ecc67ea2c002aaf28ff700c88bd1a4a0d7418b5743d6025c01058cefca6085cf8abe4de57caabb812569dd6940d2042c6e60a7f7d4ec86114a27ceb160179822d0c57c75e00585338048ca2039d69fdda683ee606f209eebd854fae504d2ddabeb1d5ceadc46fd8c1755921ea47a60dfadc90a97326044794916ecd348533ec28b05c5b6ff8876653d35e2498490ab2e3d61cceae9f3ed1990f3200d21df2924e69ee5ea1f47f8faef87d7f9330c0e97f967cf5af05028d69da7a7c7dfaa3e7a47c538b28970bb3c132af5134825c6950cbc503a49125c0060143c7f7565de804bb5c8db669066ede68d27b6f9cff29a22ee6f841bf68e4e8f0105c3d4110a754d8856d6bf69f38c2bbb2d286c167d943c55b09e20be62297e62667c4366e9b17bcd2782ff80d5d9235f7883649f9fb07e5433d65add8ea06a7c42fc1fb6d3745ea4a7e7307ce3e9a8ec76ca558e7584913ea23e524ee468e3f27eeee34a36b6a37cb2db97b84367f22c5c62ba4d3c695c686c94a18300630d37b61a32f2b3f42d02cfcc4dac5b90b9a21af6847bbd", + "aa2fc73c71c90df1b377ce4d6d43dbd12a682e80d6d4dff1ee41d8568e8a6f3593c686b64a90ede534137c", + "070bed2c83b67a779d8f54165dc8e4cc298ee778466207dab254203bd6ded6d35e8a2b8fb906c1ee36896c841bc8cc49fb8e603e952d60a5798f83b027eb980dbd8787aeb180b9fcea4195e2547f4aa65bb65f5bb20805bb35b0ea14dd8665729704c713545345e62f5667ab60fae5015cf7ef79c1e725702e2bfa6b85140ecd072caeb46e110657284bd110d6695796c8a52faa04325bf23045a9b144031bf1aef7df81caa78d288ec8e00298bcbce43545310e3a25b0783e564071614c16f08d0e1f34e3d7db4c08deb5af87792e85c3eba735784072ac523dea04329039d230e287ee307b1c7877e4c4b90225e1d3ec089d47f73e43c0c9de52df9e46f2e1dc70104109a9c25c68a8ca4e56068466bdeca6b7b55d367181d06e7a17fa881c64a8858455fadc6f70d708a89f2649dcbad910a6ebf93b965bd1ac161c5d8040e07340eed17851fb74599ec127b5e8db3a026d11da33832757f25c560ef62ed6001f40b778e7d41e673aee3a850e83e99f06c46354780952806faca98b175566aa21673d52f6e7983824586c563039a55aceec25bd1c0313b62fbe646ade84d599976650f7cc175cc11cb79a84045e1f3f19b94e7b8a106ca6beb5f04e6d4677213b277e011846baadc1", + "59f568475520eba8f6a23f3193f1c011119982224287662eb9f27d1b860249024b656d390f8612e8feff41" + }, + { /* i=6296 cDividendBits=1356 cDivisorBits=1271 */ + "8125b9a4e241b6ad3f5190b73a8f8b6e636de16f631ca76d14b16ba0b1524c1498cc5107fd9d403a3ef31859b0312ee3a26bf2d71170fd9cbf37ddfab57fc6be2200904777c9904b6451e65eb8b951dcc316cee127f259d29879e29d1978a225d9334ba6f5891bb420d599190aa22da1b45bda1dc27db4e0b20a01d2b4b2f3242debb7e6f7e6ada3f4ec9f8f5c510e982855e357e43b34a81893db2b08d402ad56d68b748e24b3afa9", + "6aa5e19c03dc38402511b94d105333179b8fe9c61b5b4d9b104178866dfb6a4bc63da1335bc5306ecefd753c23ffc6f098305196eca01e8fa044c4ffdaecb26a6f1a03f1dbf68de5a4d89a6a4418ed20068ae145dfe1376c05289043234557fc367bdf9735f889768748f1f77f130d067166e46c593d38875bc866ad95609bbe76b049455d82bd324a0951a0c9f67a1068761ffc6928efd0dcb9a74fd1a636", + "0136020c5c3a074a4581d3", + "320ef8d494204ee0ed2041eebeb5c78568e186e0ccfb89bcaf24efaf228f608b071ec4e60c902a5e3c67315204506cb57970c99637b516fdaac0b25a06e889570757d91161f87926001dcd4e24f3dcf94e4b99a4e353701dc47ce287182b009c2a84ecd24bd2f980931c791a957a51ca71957f0414b48296f6fac8d60707d674c6b610f384ce9c64d4f7ded68f8a5abbfc586fa9d1cf0f1e1a3b674d987b27" + }, + { /* i=6297 cDividendBits=1296 cDivisorBits=432 */ + "4edc6c4d6fc358d31f12b92c38458471c09067f288745d477af638085342f32284da8f2f981d4334abbd38471aa5cdf0656fca82d447be4ac1d40f661245aed3dc30a012e2b00415826e2ea375cf031ee9daf2caec652cd607ce7a9e0253a6d48a5afe64106081045787a1bc2a8738c0e6fca3613e4054e2fb65cf830395390a1fa59ea09d449fb072bc6443c24becc13c2a1df68e569bc3f47bf40cf37bc413c6aa", + "fb5e7e8ad66976f598e20b720e8549ffad23445eecfcae565e50aeb6c46e3f40c5d9f62dbdf1586a605d5f5ee87ef630c855c013cf48", + "505058d5e461fc886568731963768d6051510c8642844a3577dcd177d9219baacc8874dd80e3835638f0903bbdfef9bfd8918a03297fe90b912b7ccc4d5a98c447163e49b0a872f98b7e4013df4eb0116163453d401962ab35bc859ef446fda59664d52b4023fd4e7342ef64", + "55899ab4152c831e31da17ee827f121659b56a112c333fcde34b67c09935eb76a5a18563afb5f9b4f65bd2cc7fe6a1d6e8817542968a" + }, + { /* i=6298 cDividendBits=3506 cDivisorBits=2535 */ + "f0bdeed4a517717a28711349f70c194f67e561f6825377da6ec008a3510392b9c243de8ad6e0a4729c892933a45181415c1bb9380d5afc515014de38f5bda849ef42c7bf0e1448409eb454f049d1928e8fd98815950b4eb8ad271fb9d4e5286383026441a4a859bbb91cc2784aff6baae26ff231097d6b9fe1cfb7f6d901d22b06167d4a5541a0db6e2b48f006f34fa5ccc3eb483c8a86f3422430ad9242ea4f35e37207d4be856be886bec841567d6127c6b12ab159fc9fe22a7758beb68807171d71c954159d78aca6289ef0842fb5af68e70b5749738a7ddd1769700518e5013fa7c7ca1438353cf43db717a61c21a5c59240295a99408a6149f98eee8fac8aca1d7be0b0652662cf536a15da660e49a93db3b04e30fb3102b37c9d008e5ac4734352a867a53f788dd7cf44ae6ec2a6ffc920be158a0c06c2f1b2a262011d247382d04d7c2aefe38f4b0f262f7426155790461df3c45a7f0d67c3ac6d72785efc22c75f3dc4c7ae37af10586444576c760e6d4896c96176701f0d241b1d41d2d60784a0f7445650003b13fc6211a4f129bc9a530e4c83780f6b98451ae94e63dcbc1cde3768373a883a9f24a1dff9e876b00ab9b0", + "6d085454817937ee411dac2336ece3dadd5214ea419cd50ce733adf7802cb1a4bfcb51ff274c979952ebc81614d9af7ee68be16509685e9a833d6ed1b169838583404b73be807d21c745aa975942b6998fff3729073b34c9e779f4fedbdcb1be37642a685d9a505413b82ccaa77ab82c0f3081ff98d2798e1f82bccf33b1450b722602ab785af82be68e93d2a81eac84c3217befbcb6eb9aef79a2a8e85164fd89e7eb691b914e188abea5d1c18fc211bc8d5347f51ea227901ff4f6309720d733e27ca7f3985616c45c0fc2180b93541865f600c4aa0c1289161d25ca692f82cfe17c61401a2a6217775c8f764bc90223308ea6cfe16a733eb4a01314f129ceae9f114d45083285682297382f6b08e7cffc955d7388e76823e183df97801a8f77466e95afedc9363a53c86fb0dbb994a8939fbe27ce67e3fecb82aa73", + "02353e5627b7c86d39822902e577e7b0514fc4fceb7690d75a3a472af101ed4cf17774629aad7d532bea05627336c9b8f9b43835a7b0172576d05d275115d94c57971c60c1356f91233177dd6e86cbbab1de97c537f3eaf8eb9df16d361b3a813866e4108baebbd821907e47d0caba48bc5341100795d52b54a9", + "5c5a9684900f4dc6f657c5ca850d8dd21ebe6751f17366bfae9cad811b4927c57355f7ffdc224f6e5c7f4e5b1a06602bd1da62716825473b83489fec4fd78007366226f92149025a26dc42a021f640065d37cab8e358be71c1936a406339795946069f3a413f0a59e9b8f096405da2e5d9459ae3ff8651936675ea67b8ba5b450bf1e1c02451c7ae3f48b1df6bf444a8d70da9c118656ae7abc57a2d3c1eb75f9256c7220b69087442075b47333aebf1cac04da765e434e75b866f7262fe44078ad3ad25ddc4a25762642a43ad8a16a7e21454698c79bcff231c9e05bd71e4dd07a93c529acfd46c77036d609d05c60a835f542c5fb10442965f40f592d5f1d1e59971733773305b06a9b0f9a2b910ef7d8b6315e2497ec4aa75390f1936c45452bdeee976636906340e5e1181dc94e22af22b28e25b8e89c8268977c5" + }, + { /* i=6299 cDividendBits=2755 cDivisorBits=661 */ + "05c4b4076da4fcf447471506b5b9977a0393958dec7d9fd2ed1185f720c26dfd012d0bc24ac16de3b3710b2a34fa5675cdf16a925e8171944749442435d8bba84b73058573f1cbe25a2d83e14ddad149be12d9f19678d225171bcfc73b665dad55f4bee09b1a37853c428c1162b9fe43727af615ec70aaa6441b8ad9d867fa48eacfbb26e497298501363601932da64b7931f3ad47c068e9b78221b076496243f53432e1dced374dce69784372135006d866ce0c9b2cbb9a343e6a59a7c5eab0010eed2d7a1bdfef04d1abb2f636774ceefbd865e58eb71cc63f7beef7024d08404f830e9fcb441783827d8da0eca474f69991a9daa36ca0ef4a2525fa1c71a59bb267cf64f3b5c90a00d512be6727a84ba273f12ae374f3a4962347debd7022240cc03e9136ae86349bf9602190a114fe210ee820843d6c5bda8416c667cc4d4169e0f92d143d3b73e6937c73997fe653dd9293ff516673bb", + "17fe16d2d69556cda93073c98807bb51fef6c350955ba28c05155e75faf68dcbf0e925b7e025bdcb8b56542a6fc9309de295d1edb73f47a0e8a814813228676bb875e9cc77143d684f65ca44a57df1dffce5ad", + "3d8c66cfbc7552817e8b2b52a1e40f185905d06519253b6db05794a134a63674bee56d6fc573e46158858e66f0cac22acd5f1333e5ec1774a755b4a5b7a76b0dd5b2ee4b08fe40869777a96f49bb1b699bfe704f1fd70e1c9a51ec6e20bb775b3e0d3d8d7e89d0584df931d52b51a78748c58235ac4a1b319106fd70d086014c09d8cc568f8eb887c0556cd19754aaae04729a5413b8c89ccbc0a53792221f83ff09dd7a9c54844830929835d27e82c77913e4c0d8a93de3b69d47e447ca1a36699d496783c6c9d4c5692f3c97822a857944535b0eed40a05dd46665cdde794a8523ba9faa924a9443bcb9e681730ed6f343d1138299ae2026b8e1bf0a0c0daf221a17341605", + "17a1c957f34cc72a258e19b6b42740a6aeb2aa6f85bbefab5ee9dfd3489b77245365cbccf87825fd610d1399c2aad91de4ac9fb6aec281ac936647e1a847224be8483bfdd675d9c5cb5194dccfcf730395195a" + }, + { /* i=6300 cDividendBits=489 cDivisorBits=309 */ + "0be6313b01319af17dcfb7e5ffa7f3c9424dc31a611b6eadd8627d30368a17f53a59863698e43aa1cd7f8cbda6b9d7971086f1a11da56125a5898e9faa", + "123897467fe0749c253e19a6581b77b2ac876cd16b6d401c360c6d5326ae0f1af56721e3e91c49", + "a72e055076f5722830079b44d64882a6e1e1841c91ee", + "04ab80c1208d89199de45d3ad35e98601869c73033b32808f33dc9583432a23983eccee1d4facc" + }, + { /* i=6301 cDividendBits=1219 cDivisorBits=736 */ + "0795431619c4ac0de2f5ea8f15497afb048a6eac21fdc76a3bc208592ea027721d4ed29a35d48ad751016b64648a2600a5e6bb3958360ddad4a5a3efceb26ca92fa42d89e6d8cc893a0bab7f780bc0dec3ff283b0f3e523dabeb02e45fb20a7138a156151fb30290544c24c858ce974f6ce388fd5c75166cdb8a8060ae867b7282e82ebc1dc368b72e3be79d0db0f4f49356fa57880415f84d", + "27cfb6fc1b75de88065ecb967e6cdd00b6a968b8c1a925f1704e51a581aacd0906581a240de614f7a43a8c752840343dac1f769bfb8bc232ad735408a50fbfd28f45fa69d4b8361fb7a132d31f554425fd958fae6938e1b61e04d67e", + "30c2f0497f417fac908db4d66bba89dc2f0cc65c085e35c42ae7328080ebd7865d7740db14e0b574c9bf8e328af122b2ea20349dfd991f7985bf70358a", + "0717a47f1daa8ae4e73b5f9b75aa249ffc5beb5cdcd9416f5949b7584e5dc4eb9993b5c1f36be2a8ea00b0e156d574b07a315375c80c957e121cd3baa36cf87ca96360585a2f734c864daaaa10b688f35ca0cc610e5c3b88fbf24261" + }, + { /* i=6302 cDividendBits=783 cDivisorBits=308 */ + "6cac7fcedca4b9f7d71a4748bfc72866b455093ce1a4357bfb8b661c98537072bf9dd0aa91801b5050275c334f32c4b0b430d5528ac6f1e038954a27ea6efef9a66f37d1acea5d1c56985c483868bcd058d0d7345bf6ab30b3dd83abd98dbc47e856", + "054d4e2725b3c016f2eec7b49f816465b58dade71fcc706003d5fba1f5c7b165bba9da197645fb", + "147f325ac3bbd56e9ae7c7106db2a4922d391adf4b36824506adaf23db342df600bc542a66601dcfa4f775dfcb0f81f5f9f3619954ccd6a12b613742", + "bdc058ae3274f8101d424886b7385d2bd6c9e7cac442e3fa233147ffdef6f7fbdb6e15a5f0a0" + }, + { /* i=6303 cDividendBits=2822 cDivisorBits=164 */ + "3e042628a09ee538635732b12107438abdcec2b882aea67b3959658798242f2bf72bdd212a8489c62a600b74adf08dfaa917720569880da64f79101e93bfef40e32739539999eb7c389321e7f0980b7a79e8b185a85f1e9f071de3200287aa71406976e4d953394d145da9de9723a9cc90b1e389e2c7a98e06e1ef3bdd5668be2e63cc228b2dbcdd3ce9352618e891b5e7bc8532c76d9bc3b23e1d0edf7c40c3736f3293c7c96feb738f3eb4a1fa4168d702460cda816e3e26bb9705fbf0b5807b31b144c7402594ef57e9bdb6e4958cf818ab57067edc677c9b9bb5d40c02557576ba7429364bd8e12bba861358bd2703632add522a47870f4e82d3cf78967b035b0838aa753b9548dc76ba811a116c50913dd4ac1960f335de9c041a75b6f867bfd84b51b6f46340909b2f211acf86fd12a381a79b13e9fde02b4878fb92e908c151af15835f89daef19d174e97627441e242d4ef1b480a82bf276c2cbbd69aa", + "e7714472431c5be46acfe3c3129377b3ae6141f3", + "4498b6341bf7240060923eae3ea8a753c6147dfa2666c44d99ce123ae66b6b8949a5f68c44c3a1df8300589bfa1cb1d1f1cb5a3b8a113469e6470de1458c7bfcb4d8c6d2f28ca432b1202ac5b981e911bacb693d4fcd6ea3aa7024a2ce99f48b3656ecb7fd5dacbc04a5b09cb5a7e170e5fac149615316a4eb56e06e4660b77f964a0402153d8fc16d49fc3791bfa62b97daa2c1d9deaf0b34e863b8905b41417c85dd092924e4f298b0b84182921435218c3b7056528fd04d95896551c5fb1721fc7e2fc93ceb056476703ba6cf73b4624c8c85c31ab35756277b41ce154bab94009787c4d6c0953ca00cc2660ee1304125064890ec0719cb969d21e3047767e89cd9c6000bad7f4b9b97608b78f9809f21beedf0a8a881fe0ec6e4749b12eedb16beea7a6255df4a180162a5bf300e523da98174d5bbce205c7436abf1f305a01b17bbb0e3478cfe8064edb6", + "b7ef3e3bcac9b3b7f4748429dff3f283859e8fe8" + }, + { /* i=6304 cDividendBits=3407 cDivisorBits=3198 */ + "1514c9703ca4bfc8354ce572df6cb9fbda8031e11018f91c6e28206ddebf6477541ebe3681ac2cecbc4287c41d176559cada4316dca4b592ec1bd0382a2f4ef555cc3021f44ff459078850208692411d20c91a598e6ee2a15a5d4fb9ae9e76e06aa41a7a85597f834ba496b6b4c67c9058573951a0433249bf57e5885b3e89d27c3cc9adce997ec4f49c249a7cf7185d10338cb297026bdcf72e7d468de816d29f677884f5b955e1fffeb5185923da63f3532c894dcd06c00bb5081125c1e5fd82841be4b18683552e850541f91fbef50269906f7c7859294a9c5ff4a42944917b4ebc421eccd79e49fec25440418bcf14849c7d614a5a5c7a5c6780a89580bfc8f28bdea0fad4b78ec5eb453774040d5a8ed1ebd138c9c6b87a7eca2e5813aaa440089818877426b386a06a0171cb0a5901b169a854d59586da2e6693857ca03ecef29b74f436ea3f28103030200d98e629875ae53c151c3e03b64a6d3a706183269ccae2b9a6820ad669d75761eb90dfd9687ad25b2351a2e61133992e905c9808c075c26cc9043c22e893e403f44a15115f07dba262d169e6996018fb4b7539f05008bf4415647850", + "035579914a09344bdbba89e67ebc3f9089fa542a98b590d768becd09ee977a192dc4c52553a5233ed9f92984e46ff96c0e3409e32e1c2146ba2315d11f67550cdd53e28ed726f030c82add5b2b60b3e1f710b8c87dae8a20981896acc7ddc7171d4da48a3c219d873a02c332060175ab76803aa65524ede12db5f123ea4a45864db7c9e0014cdb660cc6e40e126a9af065380a9c74b4885ac2d8d6e60b2e7b679fce8652db1b01007536c9cf72e42fc3071674927e944c5b227c97a801bf41ab44b3b17547f3f80162bb9044b4f93bf811e490d6c26e619fd05fa95def7c5e7d9d82dbce94d57c0a7e88015024cdd39c19f83bf54aae950d425a32ed6020bd2c307b9f4253f58ea63e6423555a305a308e949a0dbcb4fdc3ed8f04ee8378183b04a46fb787ab6998871e5701ce2fbb3667cb5b6c370437bacd0bff583ddfa9017a19cd808b5ee5426775dc03530d5a9f3c3793d8318e8bb9809a36646ab312f91487ea495786c1398c0736ceca274c9a0d1f0a71fa9ccbc00bbc0af5cbf18d18d8a502a6924a87ffd851107c5080defb", + "0652c47ed874ec63876aa25063bd46de8dfae3254b1b65351d2200", + "02ee646f0825f5a8130e863f8980cba7efb6944df5ee13553bfac27eed3b8445b73ae71dec41cbbfd8ffa58734c4bf2c5197d6d4188c64a106402773c46f2bae1dbb086403fc2e6df1dea6581b1c0db58614559d5188816c47548b9f36cad2f47f79043a707c72fc994a2bcff00c088dd0a2318994008de0bddf9dd15696f0e8e54096065eaf2c5dd9216c976a9c5967d275f97b90b5c36de5dd62971db29d85d907edc765c577323af4e037cb8ad1ffa04767f51cf3c3d7a8768102b58ff8155c0b2c7ec1f3a8324081ece59ae01ea48da1875c466854a829d870cfaeda6bed9015ff5a49ed47c66c07f3b999388260a5b890d1072c084c6ae5993dc9b22699d1a4982a7bc84ce6b3f2fd14d141f68b11a31aea7691d45738af9621ca6e9394cdb14271fdfaa874e8a17651e5a1d6b5815f56d9f200cfe3e82722df88d54ad411718c6af6eae74da0f3d2c2119ae54edf6943920350f87b676d7d1ce164e6c11c0072e20915f461e0e842a5f3ce419cfa0327f57abba04f2a76b84cfedf8e69d0b5d93d9e944b86fc32fdc8be582250" + }, + { /* i=6305 cDividendBits=692 cDivisorBits=247 */ + "0aca84c76035da83c19d1637832277e928bbc7fc0e52c54f834d08e602d568babaa3a2181e1622d71a683ef434098fec30bf8bfbcb8f976b0aae1d435ec7dacd0b66a5d9593832833ba47bdd2f438d21dfe9f21d8d4d68", + "22293e5651438ed6606bde29773485a5a597107b4ecab2da84d143f7e41e45", + "50de0b7c2f41e8ddaaba98a0c8877940c07cc8270dbe29ee022d0668691616b23f0064430bc1cfe07daec7967de36206982d96113c459dcd", + "17c2194df5b2018b2af556b8a6277affd5d76e1aab5e04f1beef5460b7bf27" + }, + { /* i=6306 cDividendBits=1314 cDivisorBits=932 */ + "01808528f2cebfc032b946363436af13f95aa8dc6f160cef582c4f562add8e6fec07f01cfd3ae208df6837be8280093a80e3b32f56637df929b94257f7dfa97d9f4f7984e17f3dae2951bcbebdfc856b72da4a2b5d6b715435b0ca836e5fb7d02f9bfcb8929a571092738df3445ec5e8beac080417423f632d9d1e9d1db94807a1decbb81c5d64b2df9cfb662998c7fc8b6e21940476e5f062555f52cb7f215deb8a38e76b", + "098f8305c3d8b6da99381e6ef57bf5f4f8db3d2a7e23b1db410c96d234c92c47aad526939b0e9af150a9afd9ccd5db6b99131e1226888d06a0b495ceec8fafdcdbb42b7a05114f520d523e66a3430b4aaf20c47e11e53674fe95a628da0e9f280e18de7386e540143bf286fdce07ce698ea6e570b8", + "283822a965daa222fd6d79a59fcdc417c27b4ac79690561fc030906fe15202531ec97f7fe3d3c92aeb7d172c13c984d4", + "090a7ac3c80e2aad8ccfc26a00ee19982f945adab2017cbd46291627eec9efde79ca328bf5f4f6865dac431bd5abf2e3dcfdff5fb4e58b7c4d721dc37fd15a8aadb4329605a8888db60e1b149b8cfedacf1c46d794c343547097d305c9128c862e16fc7b0ed809e04759bf6d0be3f86c97dda0af0b" + }, + { /* i=6307 cDividendBits=863 cDivisorBits=509 */ + "2ccab2f92ff729fbc32d6817e84f352c5a1111f0d4c9d86fcfb8be50c4762f9e5cc77e1a7cc0d7f71fb20dcc82ef75e07d336d6205932f9f81fadbde942aa13158e371471f0b94079b666eade3a6deec0f49c2f536e0747abc838c28a68a3424143935c224e2bda0b5dfd3b5", + "0cdb5e6bb8c80771b3b837273266c66eaec84ecf99ea3a9d487fd0b72c5b7cce49a966f6a5bffbff885d9d8a71bd011afeb3980d3d8a6f89594b3645b849589c", + "037bdedd3be21a207b550a07603f47be5fc1b0a55bd250756c62c030fb8d6a329828187ff584142ffe9910e1b9", + "0bebf9d5644d71b45cbb42130e843a554e5e42a08aa83c629782f4e496badbe1815ebb135d171a24afd11cba255e9b2335381e25d85d4d28c71b54f34c3daef9" + }, + { /* i=6308 cDividendBits=2054 cDivisorBits=1885 */ + "16cc4c45f99f5910c1af611aa95e7aa0c30e7567cae9728b2923f9ee60b395f85b5bd3fcecae2b39362ba17ed158cccc9fa2df53e0ed6fabb2192ac7e3f05201222f7484b69ccb16667b851efe9f8a8c55bd6f5f276656560868f71edeb45ad742d2e6515cde638e0bd89919bb375544bff4a8e7d206beaee914aa70dd9f6022dbd9045af0f4bee40394f4f6daba916004a8e52f5e7349718a6d36c84ec7206f8d1c6b30c654b9c8fcd7dd5e0a99f4118c61b923e5a9b67fa2f49b41f7fcce13a80af0c407aee5b3a2d03b7fdcd0852b14990021626e8c670f231c65a2d1f22e2cd48edbe8386d23738cdf06046a6ad28c9b20aed37c03709c2755b7e926182844", + "1d16b53e51b244cc5841c748fe5dc075c1adae863ba97da7054a482951a54522c932441624d6147780847ebe0f46ea98bc9c83bfa5821098404b07272291a42554849acaee3c75280538fe4d8e4d80a01f9997b448ff75c11a17ae1bd3072551320e3b75d8c5a74bff8ef66795ac0c245c44d1339c4285a9ee6a5a0c948903da5fc6a43835a798bb518ea41fc83b6fc1a3c36b1859599129f0fbb39bfa55c08167fe8f841ffbb1bb1f3b9493d7b5ce62366b8554841d8a738687b12f1d94f320cf8175b34563bcd44f15e4c592eadfded9daea3495a7dbc5e9f264e2a89b03ca480d2a9daf8788ab00de1314", + "c8a3512095041d4686b8d0ff63f370f54ff81c752e", + "079f453431066d0c2e56886c9788d872c43b891444d18af05d578dabbed221194ca65954ec6bed8a07b3cc7abb482ec1146465095ffeea4613e4f0d8049c4bd5260eb7ccf92f2a80218847149e9ee8b2c301a7a4cd52f700af7bc620bbdd7110d0ca16092c64fdeeb633d36d8d021114bbce396dbd6a856c8a7aa357bf0defecf5e9dd64fa0b1f83848a6d5b0c9a9bdd8b298b5196d8f54ddedcccc07c3cbf448ab484ba4f84803e370ca3d1156d680632bfe6373f5606b4b28609dcd9fb63a9852ec73645f062c38a5c00c4336fc456fe3664541f49d38addc8a9877154728ab17ce93aee6fbfd8094896ac" + }, + { /* i=6309 cDividendBits=3385 cDivisorBits=850 */ + "2aa0ba771dd92949e0c99cb072983e7ef2e8103916d9ebc8854ed5055fc73506a538fd1f57b8df70c66dbbdddec10cc5dda8ad7647953240f69559f46c7ec4cdb3777df72b1e08383c645237314d7fe70ad7a423d3de8bdf53e00ff6f49c3d8fd0db02407d75d4635b79e69d3f4707a3b26c0dcbac80404416b0d6d9b64b8fe52794843220fffacdd8257c7cd35687ba7bdb13d48d0383001c3eebcba9b1f7ba42773d33e98dc1bf2cc3189521526cbfce0d2291e3874b990ef4170eff8227ebe3f82d8e0bd0f47e69cbad6d973ffb803ce0c68d9422acac0951aa84699f5ef5d636b9e120cc68715872c37bba27bc695bfe5b42877492948d2648d73f7467aea59e982eba38c5cb9cc4491f5dfc5a19580e0cd81598552c066e924b256ec0663f20aff6867b2b6c53f581e8674b95db7a1031a831c2f31095176f9b9bce5b9c7a9f282735862b927b4b16c5543662e6e1cb9dfc166719eb8a19dbfb89dbe951368187561c9db59300c3d73cc953859acb4cebc8db4fade35ea69a1ae37e1aa646f12fcddc88aadfc1aae8e45b0f8ad0673fcd2160cda1ffd20224ff21fd3a50c86e25845f643e", + "02e4bfb6948bac85a0384eff02b14531810b432d567f514e1396b29e27e27377ef0d74d05d717565656d0a9f884a975502643ac4353b7f79170d1e24e6827c827c6ad89a6ad7e4a7a3e0349a9d95e7f83d4bbc481535114eada74b95757454ca064009918bcea808e2cbfb", + "0ebb65c1dffe2ab78f04f6e2624f3e4a4489fd35488d39308af212b26395ee2953d75c8e5e02e0018332a815256a7607d55ed3ff250cb975d9c1b5052c054afc825c2fa503c847dafa99376d16c08c63bdad3571e1f33ceb9d5a0a218d009da459f48f1d9ee91439353eabb269d516f5372fd4432663e5e049b71c8d0d2c491f8b9caee1bfa349513e831216cb4fea47f93e84fe691c49bd320209f35f679a579c53a9a7560472e2fd1a1f557ca42d87cf7765205712862ed697b5d08cddc7a40e791b8f33f09d0308aa0a53461b79f116684a88b438dd44cda7a1e96ca0731e49743744779ee4fc878f2d642b6eecb002f92f3a4b84af9da9cf49205d37011b764f429530f9e3e95cca53c0449b3badf49249be24902a875d310a8661ebb4db8939c95d1b8a8062766185abc3d1bc5caebf83391d488ce273df0dc7f1", + "01c6dd2d6f8d6e61cd909133b0bb0cab76bc5b13c3b263ce78cddfd2b278d97e4f0dcc1def6d2dc887ac30536423809187cf58f14e64de873edd4c8d081c6b139d0b51ed396df18b9ea7a3c3454d07d465a5bb88f08572cc5c8f3b3fc551f4210345cd65070817d98e3ff3" + }, + { /* i=6310 cDividendBits=1587 cDivisorBits=813 */ + "030f8da5ba38f514272d47ab0df0e45af0cd5a3d7224cece21411eaa99d3a3d25c19cd5348b4befa1fffb5e1e6605372f72d2f39f10bf1dc2f43b2b1f07c516f43703e4ff9e40f93f03f152cdc1c2fc4203af267472a99ab27273df9352d2e59965122bcc21df2130fcb19a4ccb6c95c0b8968352ac2b697bf75f649a61779ab384368d912d91c3fb4277fd173839f1479f350800b5b5e2d95cb5ea7a9450644903bf16aa8c7bcbdea83eb2d9bbced41df1bd73c77270302e690f66ca0675e983c14b48d88f9f4", + "128441194342a1514e742371580f08e68fbcf5d3dc24e4ad2c938a271c776a09fbf20471bcfee6611a4c33b2b2aaa5b841599e457d35d32ce8ef819a300e165a3d8ea9d70194f3cb555c000c26b4f4d3a727c321463339bcbf2fb9cee5d31d6953e777cb0a74", + "2a50f3d913458afec40375dc292b8dcc72930d8d488b05c2ff184bbf905bd06833aaddb4e646c337273df6fdf1cfe0dba5ec553cdcda2070c3fad09cae5a72f58d74fbd95800cf1079b12674e13e1f5e836526f5ed95fcb91f59a6c880d479b099", + "02c0841839e55f220e029c99ab1b55e44cb79405219be3fb2f08bcb53dbc4ee7e781dec4ac60716a32be4db4100481080c29854cce83435568a951c806ca340a20e87ee6da57a619e799ee623178cf90da2a19b8692f5bf292a2c38ba20ba2162f625d2bfaa0" + }, + { /* i=6311 cDividendBits=83 cDivisorBits=16 */ + "04213f230c06e31eb650fb", + "a012", + "069ad9ff8ce4c4dafe", + "2b1f" + }, + { /* i=6312 cDividendBits=2544 cDivisorBits=1267 */ + "81e8eaf01cb63de04e15e5addea5259a542ee32212539e0b4a8083a6343b7c3023e1bee32576aec038cd38687dd4089ee03dfa6465b47afc1df345a263cda59ff9f47c8c0ad191de6be768c3665bc83f623255751e56d1057ad5cf5a47cbb03d78c2dcf0c8c26352dd08178b626d760cc59d37f228f878c6df12535fa4139eacdf3ddecd437f6184d7a363fd264569130b0ce21323c07df0e643c6f1429ebcf3aaa26abe4247651ec6cbc9fa836dc74a88eb1f0979fee0ab143014c5d8cb5bf3a3395de65ee26967f26aa06f161e4e31bbecb8a8bde2bb12c48d464623c99f08eedc4ec107cdba8f71305fd0fe3230adc435b6f44bda3951e38e385a17c5bcc49714e77b66132d3d63484469b91a48987bb72c208ed43706647dc6cb95bd7f8d49e43b905d201c6cc317d8b7a9e485bfa0e7a179410ec527386f11f770e5", + "07f00b63a66dd4143e4486320723a683a4baecc32ac9a55b31f137998a3358e3afe647494939ed38a62fe316b31c609c29240ab2d5c02634a0e05e3b3e31b9cc7f2ee8cafed0462fd90b0c10f48a94dfc57c0964efd3be03b6a2cdee8752763dd8114f2a153a344e409e601db87384083b428770057811b8ef4b60315915cf7fdc0ac474a4e09bfbb524347de0045929b3a33238916c66b9bc5fedc4cb247e", + "105dc19465800fd0d136d92780dd36af2b8a214068e007829670630e403df17c7bb5fd83d20319d763d009c8ff15e381b026d227f59f6a80eb811481073ea1910e743419475970c30f207d9e74f9767d80c235c3b845c0502fcdb8f55b9d910184c0eb312bf811935d70857f99b7a0915094a56e30e12192d443ad04bc0cc2431d0f1bbae1771f63e10216ba469faee5595aaa7b260524a4b989b9c516fbe955", + "06947453ac821d3007bf04474ad921883ba5734f0b9c0f686a5126b5aa091208439cde15a45d4111a9cd659ca3b7ab9a10fbe95e9afaa4c9a7a1ab78ffea5d4b22a86b1b8fb2a2a4bb61c838bb522cb54db860c2f0fbf089e97ab9f7333b1db6699aba8dda7b2ec8acbff8d067d22cf2ad2d86adb0f88faa3c4aa7fb6818ca42322b2f26512a80b5cc75c9b277f1e840de7f851a5f9bf956226b1a3ac3a50f" + }, + { /* i=6313 cDividendBits=3623 cDivisorBits=620 */ + "7d1951a11dc80c8009c3a4fb18faa08105ac636707bad33bd94431813cabe76621ed57ca6897d2bc8ae88aef792450f6475fcd9578dda6748af93cbc5d30562336df8f8164c01a9bbd27827298537470367b8c18cb43d2c3561a8ca1d1ab7c1ff004c2840a69ae1aed498b8dce16e4e996bf2975d1f83b7ff2a065b9c0c4c633e1e344de0e58de9750dd0a21f06723c15e4c509635b5af6fdaa9437523ed3267e8a8a13b6550f572d38687f63c2cc3916de374e0eed65f77d0ad9cecaa9802e0d95b15696d4261e394683a51bf1d81272446f61afa9c921929d3eea9596fbcbeecfee3e38f37757bba395292c2335ade77b980125820141869cbaea6bc089ba1e510d90985f2c880c8bb01f4f08a2422ceff131d4a50434dc11672199c01287aad3583a3cdadcedbea4dbc37c3688125cce16243e89d751e892d9cf196ec510d29d156a210c7ff98de4bb2b70ef26a39a4b960f44a741d9bfebde32738646e1bc9be078d6d47b74f130ec6286fe218c80f645238cf34bf4c64f36fb5f32576ee9b06bde2c536ebd4a41553839b8fa999a180022a2922f95a06c6fffdab61090e43c654898770b07650dc19a5cb862d9ca301b5721ff6133cd817b91e47fa9b88943c865a98", + "0f65a6c5191ad903afeaf8f77e8b6ea72f0057a5d62c18f24f8790f8606fe7f7864c87cc5b375c9cf4bf0aaf9e1685f0cb7be9677d378d76fdf208ec357fa3479217f0b438a1901f4839018017fc", + "081ff609e2b5404427f0059079f981ec2e8e60874a2849b048e87b8c95a74735ab12cab6f1b7768db1b589a48a2cd69920c26b053a9ff5dad3284068229a8bacb2734bb9883d18bc008b840962ba63772dfe549b3a81c4a46af76081033d145e4d578b5f453e93d8f2f320bad78936454b76e586795efb1e77ee9900d8df1524ce0bf0d80f2d48e3850de24ce5a082107a8a829457daa1b993f99c01036d9a226a9d26756a4a2f4bfb4dc8b4eb5fe4288002fe57b5293734300e36b808bb6d39527d7c46f9a1a15e71ba28c26f43b6fa2eebd0996a6b98bb16b898b454532f013205b4400e4fe06f536ff46be3d54bd2de2abcaf1b2e50114c29ea346ec836d4714a0047acf9160527bb3e1626eb3d4a7a16d1a1b506cc8b880a4b2e79c96bdefc30de1a4429d9c95dfd4ce4c0f57327a337c4d2330a59fcbee454d0779771adaa7223e2146576a8543a02527c4fe3e159e5d537de65bc4521d370b3b3a87577b1a2ca377f3699544b1a451d82e454cc4e04ec2a52057ae9", + "0cf8d1934c0a818000fbec851c4adbe7f7f1a219cc0b0f52b3a00256608338cc474f4e7d9529f0ea30903b608485c8737c54cba382bb8681f0c7b34302e4a2ce2317bbf17df2bd0f5373a3966e3c" + }, + { /* i=6314 cDividendBits=129 cDivisorBits=101 */ + "391a5c33ac3b11d221783fb3f6b07857", + "0474df547d9a930beadf01183c", + "0cd03594", + "035553bc2ba1b47db94f4a09a7" + }, + { /* i=6315 cDividendBits=1400 cDivisorBits=795 */ + "8ffbd6dc114007ac8842def36c140393f727ce5b5cb271b0b478209183ab4a83e7d8c01a1736248e64ceb4c918e1221001db8782aeb65281548950d40738641dc1d0d543a45d48570abf5b9f4d18f15590162de1853186d2feb0ecd203b7354b1af41d267c85e904878ce1a38f58aa92c28f22ab614fff9311f495b120526e3c8d9009a1c4284f87d071178d924ab58bdab2d65b1c6eb8463a34d933e16b9e80439210db61fb0c73a12f581ff9031b", + "694ac09bf5c9782a20e221130a3bd072e35b3cf895a9c13bb012db2da87acf29cf1d16d11a7a3e6af9754c19703f262b9e2f7fd4faa30223bc70c79fb7864e3bea3bd07b92fb1ee6d908ded84bf871f67ac8928d42136fd24b6cfd6e02ffea6cedf5f8", + "015e129289c5e661bf4197c65128f68d55c037a9408cb2d7c8e853304542d663d8c7f6aa26906a7ff8e913e9629c294b3f7660d7fbce5fceec47656a7d8ec518df73054573bc3fd93479b242ea", + "4c2a38a2f85e304aacf715ef5f5d8be2eff39aaf05ae4a1cc9c76bcdb8c29e82c9d7993dd236ba92c5d5e93f76c436484f76baafe9f1780c3340c4c323ed25d90627e3d90e6eb917e04041f93cddf0857cb2f4d1d12f6e50de846fe28f6de3f69c3e6b" + }, + { /* i=6316 cDividendBits=440 cDivisorBits=168 */ + "9653be94521b03f320f5985cd1b70cf25b2d83853f42beefecfa63185786c7910d6903e91c809a3034930416a42b78801f38bc01ab812b", + "792b5da6d625524da365ff07a8faaff0bad3f845e8", + "013d9a538194a40056ab83563f71041acc0a501c6a0dab7ce16828fe2e42d303c3c7e4", + "5003a90ee0d402b123c8d6cd687128ca6a427de68b" + }, + { /* i=6317 cDividendBits=2096 cDivisorBits=1916 */ + "769c69ddb1ae476e59c0155403cbb23edca87a53cf1f5050cdb61a2350d395fc8d7e1f0690c2fae676f4dd7f83d8495b2d4723995d3bba14048c2a9156f8d7ffeded79fca88db0ec46bee4b9f74ffc230167502a00841de986b84e0e6cdf7c7aa2eaa3716bc0ed83fad373470d5684e2bcf56c0c8487f15bebb69370818f8d9dfe3d521fd176171b9d76a3bdd58b1e35c48ce8a38395e4aea551b376b28cd81c5f8ed4c79c2a38dc5b9e0f4331c54d94125927a7932326e4aed0cf71726d2302691ae8aeae6c4017b6bc54dedadb26bae1861619f05ef8bb0fab9728f2bf3e0b4b2636ff63ec161b04fd992cbb20e08567777f8bfbc635ab8907eb073a0498c20ccbe1ef1722", + "0887e09a85f3d18fcd4e141d928fcf3cff4007fa3d23241684843ae7d788da32a4a896d3c84fbd6d18fcabb7fa618c05074d28363c1d1dd7887cc79993b5497f0f6f8b839a9268ad0439c82187d2eeca141038b2787fe3f3d810dbce242a2a5b26a193e101f373414294ea098239493afdb1ec59909fe6e5821a67fe7af71d92bd8284d54ad3da731c553a7aef0abdf229501920725828d9a6a04d83857fa0b9756d6d657aff4e67501b7adcd4a711c2c4db4c70f9a779cf8c5d7653a5ac7d06e659902c5de49d356e575975d3b2f762623c794e3f25370ceb991e0a0bc9c436658a39335cefcb8b59a314177ec7be68", + "0de7660653884eedd849733d2292953d53a6d879462f2d", + "0737f790c485d74be5b934bd4e9a847b0944988c4fd4088ddd338a480249c83db78c72475146d7c325742d9254f55cb4498000f1053e4eca3a304b74fcecbdc30fd7ffcf4926d4d574712f6d43bbdc6bbe46a89005661167f3e843a361ba4b82d3945f47ce59a6f9a62c09b4c5a9d787a6734b7bacd35a5ab13161f73f0405b76e64137b451af335407476e1e81e65fa7800db5196c7bbe1ce23977cbe22b2e9c7ff9743a47403e6d131f64ac5c044f386c822d890fd243f1273e747754f7567c7d572b9951c8c30b3aac739a802fc40c908c4a7a6962705f57a0faa753dfc03ab918f34c4ec40484b560906b46d86da" + }, + { /* i=6318 cDividendBits=1214 cDivisorBits=139 */ + "0aadc5ace0bca739fbc9ca9ff65a2b0daf79756bd338fb7ec349ac09abaac65c11e1b12c2377271fa48cafffaf9ce25408e8a9a5eb0cc8030893f4cb9d94c4b31c065046367fdeaca48ca48ac34cd1779f612785ceb46a3c1fc5f18393931ee668d2c6c10fa905a97b2d694930871115a94ebf863fdcb5a07c9598da6f92eb2d432a775585cb0f8e72901118e57125c91715a69dd3cf5969", + "02c5e955b5d082ea68fc47b826de67842b3a", + "03d9d2314a5c17173bf05af6a05a6296fc78bc2ab0efb5118f7d6842cc5bf642d6ded47345b20093589a3b0fc561081047a2a821676cfbe8c07da9dee798df519e35fea695303dd93137883d173c01de346c0bdd108aca22a4839ca1183fb412652f91e2fc89c9658ff9f6c38911db505447d28bf2bc1598d13f7069561a5ec1c26744e67421bb", + "020c891bd9f6ce63551f60531eae7a694c0b" + }, + { /* i=6319 cDividendBits=2766 cDivisorBits=2102 */ + "3d0d931b3c44b940fc9455f06fd694e51d0276fc2b58550fd4df90b75213da2cdfab78688e3f90ac6b5b4a582afde2856c55846889efad77470e0813bbce6a2a99174383f76eeb9cee1779ba84d19e6c1d54edaa5cb2b3f0afc829d4874b084f552319fddeec9141880e85626524b5db9d153b74190753bf4afe9849018bfceb527656a967a302a863c6c11d33d39c9fa51fabd73fcec75a73ba9d9deab40eb208d1624682b1bd1206bde58f4bcb6a06a8e515f4bd8f1befd23fce23210afff797eebd7940230a6760a2c52a122a76d36234805ed9a341852a55a453a64013e84f38857b6e09951dba6a7a2947701fecc95d696101ba8e071449a0fc3e313b7ee6ae7cf746770b65df7d97fab8c5aa3a4b3602e8a69be98d1d9d6d94a6a5095577e5299fce73ce293a3643dc1db0fbbb8f94cf558b4a4df6dedc6fe568a4c1e58af53bd2a8b469db2ffb0db8b28383a00d0a00ff83f67c23dc93", + "247dff7c574104e9790cba306ce91084e56e9c55f845a118ea642250d5f1fce07d60a899f2745b9dd15e78f2238010d675408299090b7ac9631abe4bf32a4069da25ee7149a15a38df97c2afec19a974e59d509f8503f3d0ddbadadf9e0b148cdfcb4a3d9d0c974158193263df7a3b9628c6cd1c8a240c612a26f066572617a73ebba38fb1236fdd954ed18b7912b8a227d3c34b36b2777ceaa6f4b0860467a50119e5927abb682fb2d7129184bbd82cc4b2c38a24f09d9a77a721c9d0216b679a95770f8c5326f0b094e3bace47b1d0ad158e72e7ca2115f35868660a11dc4e847e5b0dd0eaaeec9d0fa25bda6ac4f27269dbcf78d31f69618513e728fb29aca44f17dde63860", + "01ac4c9e4456788c18345033c113224103de4c2d667e2a0a3b3c7ec1302e086866b3f19c6adaf7183f5a4d6329afe41a56e6a0a07c17d89e54c73d1a9b6602132259bf7a8ee2619410b35396f8df7c85822be88b", + "0d8bef7f190167357321f4d1382597524a5e9560b10b12451d2870e52af89a5e8cf7f019bd93f97f319e476fc40c3f3984ace20f06a583942c8bdc2755ec03c48ec2eb3abd1c39e11a4e3aa17a34647b6eb46ddde03ed0bb183a51b7f756c27a7c1628bb1d0052782d8a9bf1b94d6ab25a7a1ab6fb1a51d76f230ec3e1ea1f3e5d20d83b09a0bdae7c8c75f9389c873074600c17c9f1ceb578dcec21b00cf5fca6af9b28ffc582624e1609160270944b085bf964d7872b4d536ba438605998c729a071b271336af91158cb48ae7a608b69b91b7eb5cd87085c7c35f05e56afeb110ab8168084a95c28af456051fac8cb14489eb71881c82242efd7225c57e70cdff8bc24ec4073" + }, + { /* i=6320 cDividendBits=226 cDivisorBits=138 */ + "147ef67244b341037228e850d10ec57f314d139d0df86cd756a1326d", + "03952cbc736a996d309d8e9b8c7f06b704ad", + "05b88596d05fb63afc972e", + "0126cee7ec4fd9e94c1dbe2ca7d861b05057" + }, + { /* i=6321 cDividendBits=236 cDivisorBits=151 */ + "076f252e2d3a46560fed54d84b5460540a9a1aeef3cf583422f9dac25533", + "6690300733710ef72377292ea09648f09e563a", + "128e4a713223d03e14534d", + "3def9dda89071f27f72973417026a55ca597c1" + }, + { /* i=6322 cDividendBits=1339 cDivisorBits=352 */ + "04fbfe3e41072a3a58cffdeaa01d89f9c897129636b5393354179c4ce0ac297dd7f4da11a6b91f2510b840ef6813d924298af201a28ff2ea01b28c9ce06bddefbb49823e1668e7af0ecd3df482e9cd8cb81ae1423cfdd1dada8bdd9dd8a35c31005b76af36c642edd25a1b4457de90dc0526469014a6dff0db4a266160c0d7584f931e1169eee3a30a7cf7d6f7352444c6efcdac4b892bdb0451a44e0cffd2d03ad3d52518c7b1e2", + "a717c89e4056bf845f6ec32d00d132aa1e040586879f2cdba94a4c14017303208bd436b9cd9d69a0288c6b76", + "07a2ed060f131d92dd12156818719967b2b518f8f867429581baa9ba779656ecb8a26a8a8da334032b9e2770f8174d87e15e328b5ab5bd6240039cc497927a380260fce9b46f3eb1956366adc352a97b0d416842f3eca197ee1d727fc64535efd986755e0fcd28f8b39f55ff3c23c78303d00ae10777fc723b758e8b", + "58cc0e0d4b3fa9f7859459a968550af3489994fc31e0dc24ed57e0c10111862fc4fe5b6ea00fbd33e1ffe4d0" + }, + { /* i=6323 cDividendBits=2458 cDivisorBits=1987 */ + "03184c7cd26122ef028c89a3d644787222c91decf189b59f6312fcb5a9edcc904f595a6b35b3d9a5d5a1524b4998a27cad8c39661469364552548d02ff5a7094ee6187d169f02f48717724bf85d5e9ae29d31c489b42b4d7f0df6f81932ff60487c47bdad3bc41f843aba1565ef9c55ee055938834a9302e3662220ee6450c5627411956659da1110e5eeedfe53d180f56418db6aa46775c46a037b9d03abbdbfaa3189a2d50513b4e4c05a6ddbca1a10af6d72fc8b4292155f062ac11becab6b06c42273ed3bffd3a071cce892fd4c42b7e0f1f3d8dad35ec4811c8e299e95aeaf949a5099759b1a0501b27073eb01a1c8a7eda1ecadd878ab5b21ea9d58e305945982b05bad9dea23620692ab790afba29342e997d8eb742524d4920e381748ddb13eefb78decd5ea2f2fd2b496a1fbe3cb8bc", + "0450c6c0efde7d6b105330a7caf17a341b8ed17349d3b3d0934acf9eee50e990dcffd8ac8f9e59833f1ee0acfb5f44108bb46303af299619650de92a75c7560756ee9dd3e815f3b16d8353d844edfaf379e5839f35bb856233a136fc66f8f170c0eb409aa1c818967469147a521026a5a1c44ceebb14e375a54e648a4ae7238265deafa1dc28ad7d886b40e52cf4e2a1f3ec27c9db7c5f08a2910f51653027aef9e612a127c27e25519c14a2e06a9a3d684011f76b6d3285716e86c7f29ae488dc9353cc687cff8b9803f82b2a12a3d4cc7e6048270ce30ca19f12454d5294cc7a291d653ab2d35d39c2405161a34c87c876d66dba7b5a7501", + "b797a3fb509ce23751ee56544b7ca84db16c74de810bb77b163798d3db0a06d41436be2ed0de9166a3693c98c39b576f1838cf57504d4da61f196d", + "f9669f1fe9bad8e32b4f9e3e4640e66b277d287c61d8b1989c325f455eeec0da08b232d46b6293bf8e86aee38380d09d364751a677c2cfe18d524c58f60aa95d4e0b8b8002a9559de4e6f73634a0769d62ad3d3bd99e71b7c9d5bc5fdab6e0398ce7fb0171229b2df412f6197611eaff5d38f45c8b12c8d289eb50b90619a25b96923cda1cb177e986d23ce29d74a2cf44140f5f58e518117a0a3a32aaf21a120dbfc125b01047e1aea8f28331c40f0ae7a432f5c0e23f1062b2f32dab88a0d9089284b071df2822b24742222556fcefd2ffd0eeebe28c72447d7d68bfee319063d60c07c7a42ad394d5774e18ede9e134fd658d922cce4f" + }, + { /* i=6324 cDividendBits=22 cDivisorBits=20 */ + "0c5c2f", + "058ab1", + "02", + "0146cd" + }, + { /* i=6325 cDividendBits=877 cDivisorBits=771 */ + "1bb97cb18db77994ded78e5fcdc99995a490f71c5a90d1157624def002651056c5bf7641d903e7d23dd64392452782553bb414c33b8391be776c4a63d2b01d92e606eab00bf90cb2867cd9cf42a68a961e180a638743ff13cb36374cbaf9addf6c13fb4a236f45c2624d874951cc", + "053e8f04382ad24152029026444e3f5cc50c772d670a5cdcd02904d9553d31eac55494294848e10fc627256e5c6d6e4e7ff710eae3ece49e09cdd81de6e0a78862481660888e7604599f4da73937e03e9b1f8d67ec1bb09923e7377f314e234267", + "05495a8a6de2f4d3c96ea8c60353", + "013331ee03214a4cdb02d67e0270cd49394ca1a50599257073da20f329f094499d41093381a66348940ba6deda8245f88a4f990e3134ba85c1d734459cfe0fdf5479da34fea7720b939622646f24c45eabda6172a82cfbf6dfc3ae974bd4699567" + }, + { /* i=6326 cDividendBits=2909 cDivisorBits=1254 */ + "1c79562992a3c4d2f302b91d05233fac6fb63a44211f4d20f4d47a3b6c08c4cb6f40ca1b1cde7ee8a27a2d4afc7f5f5d3deb298eb77f91ed88d8f3cbc4752fc92698d441b5a33b593a6d30e5b5773206661f43592df4a9d6f2498876300186f259f185b06871fa113c8c00c8bbceaab25c1745619020ec6c0f06d5592c8a21228aabd9a2179624f09a9a1d732c88b65c3df0539878a06d97568bf9adedfd51e9c40821acf6997ab33984260e1f6d0a7da83e96da510f68c1404791d88474ee3e1816cf895f7037f8b499d76da1dc8a12ef20fa8b938d95b438d4c33ac8758e6c958a65830323604a2fa7ac04b55ba9b69acabffbb3593b9f28ba735413ed805bdbe3192227dbdd90288c3257d6d8ac03050878c24017c9c29d6d5265307248ef2883aa68dd52dd35de78838d4e4a777da1373863eee6b7659bd13a949e20dc8e7906dd2df360ebfd31500075442b6461199ce040c1d38f5f3952019a89d0c5e14e4ef271d21c7876a6bd6dda", + "2d3196868a2c673063c2544397ef2819fcbeeabdb4ced32f0fb55401283e163de6fcf4de540e3e1d073642f91cf36c1abdb119520481cf3bc50122a6093078cceaf1cc942b9e75768cafe75268121f9a263c031f92718a38ca29c54c8739894df2652b8efc4ebbf6c79dc24d29a98ddddb81d55afcee93a5b816beb8150464c1f334dac4f867eca64357936195ed691ea48761036c7cbefb6e6223d21e", + "a14a7d89489749de98e55c747eff8e68ddbfe7ead8078efaa05304571ecea26593d972f5f28e5b55c4360c94c2b583b2f25827fc49539daace772466700bcfa892699da15c9ca15398e1cef43047ad863a361ada7a24d53fbba7d2ed23d178cf3a64389aeea0be85375fc8cc8a719677a677f50d2931bea2b04f3690fe1380d3cb2269f9045d3c453c9a28a01f29da1d19e9b0bc6e1987e46c89a367d0ccc36f0fef66974063c6c68990431ac62d6934ff375980a350f07ca1fd040e87e62e79258b272e0728db87afb71e58054b09", + "23ce1cc4568612c24add330455dffe4d12afbb7712ba0b0f7b778342be6b578d8bfa8adfcc22c261db37d6abfc4d9f3dce5a8832f43c7cc2e6509015f141bc90cd7c87eff1b3950e0f4dca0029424a20d68d5836c29b1f542b0550865ed2a3cfdc6af2fe99ae40feb3b494c4d0ada53e28a4563ecd887d1d4c4e8da4400bec565de8051d78c0f87fe4d0074d54426ecd42d9462be110effe634a5640cc" + }, + { /* i=6327 cDividendBits=47 cDivisorBits=7 */ + "2122d3d5eee5", + "5e", + "5a3e2b207f", + "43" + }, + { /* i=6328 cDividendBits=2011 cDivisorBits=1907 */ + "06598589c565503684efbd6ffe4b5d8f42a52e519a9db6b4c9e8d6405e7933acb50d223cc2d471a80b2461f4f5fc31d196369daaa467758b0d72be6cc0c17a7da7f5faa1a3c3ff8d73d2ac47a7447f6fd4adfdb8046c11c9a703aaba6e3f32f30b84bd941dc3fda5c2fdb99623caed8f995e8af82ef9e9a985506f20e245f1a4c8d947c4f1247cfa4dcd8b1531ce07f6c05093e7c7abb1d5c018b6eaf5e1452faefca88a5f248fb45cb79240366fa37ab182b2bc82a00be9509e37b00be61c30ba7855e770691838727a8a249a5ecb6ee58cb452dc52ce215cdd0045e5baf4eee80a40b48622030c401763a8dbe411489bf2cb8bedf770128493b2a5", + "1641bee760e7f0bfe519ecde273615e7a5e4e596099c902199ef48a188d60fc908ce9055971fd442499d372a63efc7f33b0e02a3205b91bd6e6099ba7288fa9873d8d87bdc886796b404b5ca33d05a40be9bcf98f12fc21326aa7d9b511d4c649642cab9c9ff90de7e3517c53cef98df9146f80224447e9d35da477a36b4fef98e2e860935bdb47e9488b388a89a495cb30d24102ee1602776e701c16a8c4c33390e45167c251905cfc75dc529127dd9bfbdaa36f63d1673c6a99a541312b45a481a545d3b24130822bc0656b1aba2f81b2ca85afb52665c897fbba479064e37ad3025e206e72a3c7e3e936346ec", + "4908e692be06db4718a13dd4f421", + "0c825ba6247b2baef418df63386e5b6d430de216da1baa86e2bd3dc2ae68a595335b44d1eb8a178f82724c7a0516ed21f1d2e14f6727c5acfb875fea767d4ec5de9525e9ed2ff8440b20974e86a64372e1e11a8b84429f0caa35aac52d535056e18e54a82e217b9ecf3864d7a4737d48b1b30f655a57db80416363a7305200fbddc5559258c4a2aa1412e6b725bca1898e43ec2c6f204f6b69087c87e93b8687a379a8c2060933510844154c184a9f0bb11eb00a9034cd8dc09c881364781e5e25df821b9e5914890bfef8aa5811a53f117acb6f05319dd8542d1a927bd31c27fa7619db4c67cf5d14fdedbe9e39" + }, + { /* i=6329 cDividendBits=264 cDivisorBits=229 */ + "92334b0fdfb54be9c80faacaf2157ae8b9bf51f5cd42b29ceecdfaebaa0df3b2fd", + "1afb0f88b1fbe4e59747d94672f48c9a37af602bed2dfd74523fce7c4f", + "056b2ff4db", + "09b849ee7e9ef9d077c56565f084a5b45c78d75270e87c9213d2530f68" + }, + { /* i=6330 cDividendBits=491 cDivisorBits=391 */ + "057b49bd1601f74fb355deae47e59292038e4bb69703ecdaa2b5d26b4af3f7068487542a5603a2139fc7f30ecfd75c978f4543c7d427d89bcaa32b700a79", + "38fea8f546a835722226485a96969f23f28f5bf13f8d6a0e73b0d0264d30f547f0b23833f2c4d998cf3bfde39d8cfcdc13", + "189f10c233a722d2675f361d85", + "1872194229232a0bd2a734f1727814249d6c17897b34ab4a7d69d1ced4278550f986807ef188585ab2aa93fc29ce218d9a" + }, + { /* i=6331 cDividendBits=1861 cDivisorBits=1211 */ + "0ae9740d26ac2b974eb873e851ffc6d9c1591d71911cb6683cca88f1f86f1dfbb7112981071064dde98bb840d23af26fe72306fcf2ee2f095a395246ef84844584b9ea29b7dc06b162de8cbaaa118d92fd3e95f148a250da0dfe5709ac6c496c9c734c36c2e55c382bfaf4566c9a28bd1fe6c6232cadd0cecd526059435be43011a652ac5c3d5ed20407c2c5c5928e2f9a9eeef57d6050faf7dfb8b7bad20775105f66c6323e3d3071a27a923c7e92fdb7cbb05613d0d53fa4f1e0bc611cb8008cba22316093a9eb4965a61192279ebe2516b753f4c5237e4fa6699150f0a986d24b50e133f64c86c1", + "0404667e54ee73df10b6e8ac46affb338bda697a8da8fae5b22c10cd85a632210586317d0b4ce5c6906281c4da629123f643f4f0c359d547d24acedca7a011d60cba09c758c96a83bec957f85df937c5d41860d8159dcd3ead7f26cca6703e027df84c8dda559832df32633d880dd76121d147917434d4fc1708f8ba58503db17cf2251e9b4bbcbf64e98e73359193b36384706f586a6907", + "02b760096558243aa1e5084adb9f87bc0a257c7f568d88b8fd2ab2b5d0665341a60bec7427429d587525f24b885993e2dc7831b1db4c8b360f05f37bba0775d9bec2a515c3dbbad9345841e14c44523f60c4", + "0204c73f521760b6f7260cd66d54d3919b2a6f5aa208e42b9f6baa459476baacc3555025181bd4f0d35c47e0117eb0453476d1707a4b70ac4bc29d7e02a87cf5acd346b103c20ff96f09564008f2031ae92cf9a36e1beb0dae16129f1c8ed0cb2dc8bf4d748038290c06d64c0f23729b576ef835a41b19b2e5669d5f8c89433cae408dc363c410b5e69f330290141620f06f391c46b87d65" + }, + { /* i=6332 cDividendBits=1831 cDivisorBits=1097 */ + "378d74faa7983878a670b9ce245131c83b62261180553527a452b3685452d3e370cd32f7f5605ed0e39a6d7219bf3a9a9919e5f27e08602f2a182ec6e555d536a387d92074c741cb3858b3945333cc19d7cf3772673c688edb4e818f7a17902a211c8e7e9ad04a934fcd679ef3803e72d1306ea6f8d19b71bde715102db89ca2e71c47f0beceb867af8277bca47cb728f9b9f797c83782cd36c15c4707e66466325ff7861046247b4ce7d620cbe35653e2410e15d7b469d0adfe924b0df52c605727e0ce1ed46b0a0b0c2e4c6245a5b70566e5bc4130d1fc3bfcfc0164901cf9016f1062ec", + "014737467f630601565cb24fb891456b7e5fa2e1c315ecbc103e45a1cedc22f257b077956070c86e67576bcaac51db1202b3c412b3cd0a3c68d8340680ff2804a275b69835e831023fc65d80db7bdd3b680f002b15c59fb142189f0772ef2a0dd3fd9bba137d82acb09ce838bcb4fd2b4d2066e6c1ec988157074b2b396c04da4ec5dde9ed1b047b37f4", + "2b76455cfe8fff31ac6166a3c4c28e72f4d5d58c2086d0db4c72b49e58a932949e19807926ffa6cf161cfc7d3a33d7c4566a55316dde6ed2d46ae9ca902d864314ad4152cbe128d3b8d71589dbec5a577a1bc52feed61787b3ba3cac", + "622b1c49ea5da83dc25b2d1ac9d46e990075115ccc33bdc11e6f42b3b3199430bbeccc0672b7409848613fd9e6980e698813be672d773f95e63f45ece41b35201562651a7908033390fd185a6d1dcbc6afb4a527108a2cb52dab9ef3118edc2922a6383e5240f3e23bf4e3e393063d9dd028593ddba19b867f88a74d92c9171a386ca27e7b47e19afc" + }, + { /* i=6333 cDividendBits=1426 cDivisorBits=903 */ + "0319b3d33644c9f3fced29a7633619f0feaf4bb18d74e9bf60af7f66c5305a289a081111c8ab8a3b07e1aea810d5167330fde92b35f2dba520a0337fe930267d51de7ebc6b5ac438dc0930257d2ae50ee91d402c6448051a9aa1c07a516244c213d4016f100d5674871b74bd354b4789e591f1650d7f2361a6b0b05ebce610f67ee0948bc0cd873b2ec687c77559a29bde4485ec73b0c6ffedeb6078dff8c5f41e379192b9d991d7ad95c34cd9eb1511b1622f", + "173d50f9b5dd8d33bf29fa1dd30f1481687362e58815fda9e537b3136e4451e82d78be4e73957541e82485118010eb75af24bac4dd690355f988577d3a737491bd522b2bb175256f1824b41010ff441f7bdea3a4dfe1bf1b55d604b1caedb6917cc6db7f2d48d27493f514afe5d34406a2", + "22273418daf3c598aba7b5dfef7fee22e42f5fb49dd8d194ba4b16eefea5d0bbd7243d0d61a82944b0e174e596ec7c3e2f9beb9c4b0dce9e65bd96a2c3590648d0f2", + "032053e846f5afbed69ad30b27eb22977a33049e1abe9bd57c19de8609b642fc407df03bfcc04b3c69f7335d2dd68f907333cdcf916edf2d377cfe7122f41ddcdd5b5bac55010cf9512640b9b46298172be05a50c0b3e1007e127d4e8cc4f4923351a083d18d6e2d77929230906c6f7d0b" + }, + { /* i=6334 cDividendBits=3806 cDivisorBits=580 */ + "1e3ec28fcc4a3880da46859fceb0534d7fff1c004700ddeb143e4b2fa7b072c13db345f26c711c8130999e467c862f72b188cb240e7978a04538f53e85053f6706201cfb4c4547292109fadc74253b8326881c1b79453cd538dc8721de5fbcbb66c0aa48e0045a2e1a95b3f2eaf589f9c7bfd5f6972e26abda56089b796f406fb636d4eaef0e8ae68e804c19e358f2803ba35da828298954f9b331e8e87b8dc4583e2f42dc60e5413cc02ae13b4215516d9c663f70bbefc1c0c778d0748b2398e8c217a71808c885cf02092748a1a079c3f4615986bfbca9e00e3f9a7413b5995dd827b6e57bd7245ddfd8db54b748eca5bc3dbd0d987c95ad8452013e51b312e085d8ab5dca72b0788560a47ee60d8086a11e65418097a30862ada8ea605681063d24af6fc8f509986f5f89dd810982d25ef7b5be02834f3608469ac6c14dc5f05454c02208fd298ce68e59a61ad65b135fe379ce5f4033b08f9c20d167e97428197eb039bdbef6d8736761200ef53739a3bd3a0e8465d3d46405a00088ecf8623336cac10e18df1b643c9c8554be6669ec574d1941c8aac2397d2427c0859d1d8063cc73327356b141dcd3a71af6c2418058b1d0902c87f9c39211c5fb4d14040f29aeb85bb2c24d5c4b4bd255563916fd2ac3ae7fa999ab9b0006", + "0c797aa710e3c0469650c6ea34f6909b36491daebb4c7799dfd2953d9e0a2cab62008bcaf79e1f028c55161dc45d978b70a3365c55f5d5f29e8feb8c5e4a40b154498f802a2d928eef", + "026caf84c71ee94a86dbf21c14cdaad4c74669068281b35c50f14e75e5ca0e1f82e0cff82849b04b3e2b134f297dc8d50457234db18179543c27962d18a25d97201c7b35fc12ef19589ab6725d00349f71e99e77e81412e6cea23aa14a8a94f407b2b64df0f9218b8d1a60ab4269e9834cdc90d56fc21bf82b4af771e640b2f567d0ae270d62c1c5a3b4af8d3c11aefa5eaefac09e89d414629f946970cdb558682d7146749279ecdb0975f9babab1d1fe686cdff89d79762fe7815a44ffd84d973b31d11a2a29f2e753e403406ac593cfe88414261a7fdbc512a71e3802202364c3aab4316bf8ccdad1d2b5e4cf95ffe78b42d17703188e6d0e1baf5cfd644f272810cb2a4c817654308858b522541a6778f031a674dfba6f9cd7139e9cc4d12f0cb7d9ea3c345100199e8fe169449dbab758e41dedc4cb8a6fd525b2b051cc15649b29756508079be28dfb46fcdb6bfb6e66e90971e2eb7f7bb3ebeb060f9dff48fdb85d5c87dc2d0b3cc428371696a349577a1f5410a5fe93719132ce8e154da21f9ecde5a18b24a82b039debcf87928c039e", + "06953aa5ea0edda27e1a274756502f857b9cd20bd45964591fb5ecce742e34cfabaf3f3069312e86e67fbf9d3dd8c3a1322ef7c64421eb75ce96d9e0308d647039221dee555ac5fb84" + }, + { /* i=6335 cDividendBits=219 cDivisorBits=52 */ + "0298d589f5657315c94cec10d922db9821c4a55da367bf9ae39d80f1", + "03a34550d5f126", + "b6c2255ff17c917004b0b7b8a14cdaef59c86e82bc", + "03751d93b71d09" + }, + { /* i=6336 cDividendBits=2887 cDivisorBits=2157 */ + "53070f48f555c80e410accb97fbc6d76edb42c9fb4a97aa099814683cf804b1c6de74c68cc5914b053eb89dfd5f5d5712b6feeebc0732d3997cf7751a40c613c9968c1f057596a52e29bacd1922e311e29859818953829dfcdda0fad17cdddd82f4769f0f412e6d1d2045252a97c636670b20d0aad2611136e1b940112659c2101db569beb0808cd20b6c4808a404419ff98431faf7c19399226b01d62745c6349cdb264c8b016d7910c0feb6a41c9fbf6cf1ecc2367501c27ce5ae0211dcdbcc40964bd414419ba5c7d57ab3ba26bdd1e7ab39245cc28e0ca32b86bd39bc57c0869de6681bbe33218bdfc7066b0d0292791e41a1bda08bbbc78ab67ecb0a085ad325ed74e7c15b58b538c84a926d15a86e3a1eb9635b8d9a2b5156e09600e2599b7d6f01a61dda0fb2a4883e321b64103e87aefd20ab0dadbf49edb7bd482efba980285b716e59de73bc3c60ecaa895a7a24d3f4442b50d816bf54a6fefd5833a1314d12ac3f6b337", + "14ce0528aa73e56558f8d5077feaea00e7ccf681c56552e1d85c9364e9f05a071e96967c00c18b55e4947be712d496ce0b3e0318f6fd488946875d0fe244bc33796ebe205735896976bf6fd041ff5f1ef22daf370436376037543c80691287dba5b1846420a546cc86dc2a46000a60fafd3fbf80def66868e86761a70e0a9e2bb375f2cdd5ac92dcf6870f25484ac103bb416962aba66b3ad83cfa3c0cca78adfee0864ee0de53c889fc62e72db0ccccfee3bc8fb5b0597b3eb4a7b7b196f9697ad92c0f2e67799c4f674ff9cc1891096a09b60699cbee5e42b07f82820cd3b7876dd5a008152e300d3922ba17e767c05907622957ba6caccd7b147b6a53d002393459ec642afd05191bd6959add", + "03fda4cdd735164397fd51b88f8e228e8f09de6b07b9e042e2886f4d7ea59cb0739317bf16990291b109dc1b9cfc777472834c38a1998420064023d10af7179ed8b355cb68356008b1a3d02695050d376786c3897f0933d950d25e50", + "012721659bcf324d08ade53213f950f4c62c81fc173d22014201915981822a0994d10f8807ab33a02ee23963261815ee3e526238e3eca660c0e91fcfccd40154a76c8ebce2e86032becc85efe7f849527c32e3322cb89cb7bd7d68d3c264bbe600e7687a560799c1b156d587fba33d293b5c26bde19c8c0e3ea004f606c86006636806674946f6ab8d41a1bd8c9a918adfc9a0854eb6f89e3fd2a2dece92829b27b3e7779d6a2f495ef08d29033347e1b854e8d87216aba0fe7900b967619ce7e6478f81ac2e5f499d1f924235c6f306e8667e8a8ba40ebe85f66c1aeebda5bffb6d28ad6e24958997a43798b11c2da1e8da528415c90879d1cf58f1e7b22ac301e97a6378280ef0ac39ad0f2827" + }, + { /* i=6337 cDividendBits=3883 cDivisorBits=2641 */ + "07e279bf1fcbdcb8e424613ed38221ab8bd9a9c05445c587e7e39d6f4a7ced3aea696de362d56dda9bb1ae7927e870afbad5841dd07f19e07d16f78434ed78dd7476da9167ff98639d1bf2cca383241c3d613240936a30676422f90ce6188504b32bc29d230344639730ba10d64e1eb7ec6cc574c0b8c51e49d627f02ecd3a8d5ce457027f17f4aaebb56857b77147756cbd7ab35972e9757eb7c023e23e38bf464035f50a064c2cd45b998dc96ed5de658dfd48d02c35da6ae945c22651df3b6c7b98914576a78898beb759b39eebf46f69e182dca47173534090bb7a8b0b7c1a14a3e2d0e54852dde33000926c93b7a33c9f67625d4656c6e00d6e981da3e1febf354fd5e7a5f19ebb82c15edd9267e5872a67fefdc2c7aea75a5309bf0316439498147794396f8141b41a5f43b8f9dbac2a4caaf019c1da4ba8fe32bc8fa68c0db87736b44301ba3439491d63a92fd783ec2c1b67a76b36d17080dff3cd4a57891685474348aec78534caa4d14d30f8826cf5c45a3b38693fa9bb27dc81c4daef452c5e6042fd4ade48ddd7b185fb961f681096c55feb13892fc58e58df9053d8112be5a9afff322a0441fd8d8155c6646438bf81d02bbeb3aea990520eda42584690ff21df407222284075bfb92361fbd80fb68d7cb37459cbf679d7b0db8ff1758037ef", + "013e25b41211140788fe3608cf3935ccd0bb862408165942c097842283cae66b5b2c3614a1250216abd3dc4ee1b6194471598883c03548f0ef305d72f45faeda703b892df23190d36310fd1a1e6b7e2e188db3dc9443e32f83f4855fee5ecd275271327db1e9bb0aea2093bf55c1a0f25d6ca4265446557df7eb7c98fcd5b9ee21985944e28628a9b376c0a2f39c659d9875618263d934874382d68def753b86e5635f15295fe6f5400d8c4fbe98beaac7c1a35225a3c2aa3f6d0fd9a8609811e17b2ddaa64e592e928f75fa1d2a9e6d8dc947889b2c004cb852d11a533b3e2d24b555fab49373d8600a0dbee8ca9f7fd4a1467a3288bb795f649c74947202f6b7a241626e04130a492571414cd4d1803e25272614b2882aac979b5ce7ebbaf262d2e14c8858b86cc04df44f0e8734b9a629c7a3f4085d2e74863e97f0d6096087e92a6aab79b39f6bc0c7", + "06582f2016dcd7f67a1b680d8ddc86c74853485b25cbe7cd5c29ee789c53b972a6f221f2cffbc6a7d51017f3e1d2f947837c75b9dfc447958107ac66a0ba1a8dcef6627fa2aab9391401cfcf2fddb1a3504a380177245300a30befdee78f3d4bade73cd3403db640a92e84bcd06e4e5a9e5914e417e3fb06f4287724227560a0ea05687997d2f5a70f34c9913eb7328c15ae74e43a6166284b53e034", + "010676f0859f70171577fb989ec4c0c3c71465660aa69c4e5028d3d291bb2f486077bfbf5ec1a4ba158f912e5f30395c36fdcb43e0697342a9ba08a62932dc407378fb866dc9f2d301fef0f71179a32b268f28aac8882483fb0269b292f175cdd391f1a4a255b459514e4fa789ea8194e68478fac2992e3122820a54d707d5101315f48170caa492b5598264926a5e4517b9bfdc324c81880bf466ad55c9f1de304c34c84d7336715b6e7a6f79935373189a2b772711295cdbd4bc186319a418213e802043bc5ed541a80f645b0cfdda7ba872a86237f9a6ba3609ca64da1166877b2ba021bddf3cf7d1f0924dd2aa5fa17651f0f774cad90c589b85868ad60daeb2f9ef643ab9621913ce655d046dedc90b53a2096916522bad2c4d1664e8449dacb5f8d5cab01ae7794c987f61e66ee9c56f3a43d1a51a22b9682befc9d6484ae950ed8c0174fd69ef83" + }, + { /* i=6338 cDividendBits=2340 cDivisorBits=1222 */ + "10043d7cecd71b4437e110843a3a97e755a621fca392747af2469ebfe18a66ddbf9c7b6d76630662b70c67f55af8210dac4dc790c59c7cc05c4ee34b43506ed588f1a58ed31ebd8c193a40deb45d25600fc5ec30a23d22da1c49f2bb16ca3cf105b89d51dcb9ac4f22639c7536b0fd1438d9a24036fd183b7c629f3b28cb21e5334ba614d8ae8f92a5f06d39a15df40afd09634847ffae07f8f62943e1650b38ad542cee98dfa9cd7cc8d6527588e58c96ce57ac7f9002b711824ab459bcaa590239765a8e3c23f68c9e9bb85b239b79260b4708d91498c62d242c0dd4889bdf73560e151682771d95c2160e9b105a867c70e25970eecb8761de522059554fc53e6caf14c83e248bdb268b42a768a7c16daca0377c77f04d050ea2f58d1da35d045d154c", + "0aed5b16ad08d9f4ec6e2873e369845a7708d3f837118070cdaf90617e78b352d377646bd0bfd050474e2a74401709edd94a14d4eb532c656b1d9aa644593208b36cfc705bbd2f5e73a9d7e2aaf9be08b8e6bad4aee46ce469e6e2410c7e5ebcc567513c40c8eb94aa6b0c330269c45d38f78a2cd3098fd9cbc28936e10a50b31ad89966b221975c952d1938197827c2d6fe6a106e3437df08", + "01773bc3b97aa5201d07b59cfd370bc2e7a8d24ee4cfdff816d448c6129497fead0fb08f33156dc93c9ac43e7055bb452c1beb275f7b6efbef4e596722b709060e0fe800237b9e2bef6ad2ea1bc1dfcc380a34a7fed84cc53536c75830f320770c7d15744c848b338aa3c17e9c89d906ad7a019f29d87675d43d22940439e912fe57293aff757fa8df0134f6", + "04147dcf7e41f616f3cad0a867110bcbbb8a35b408fecebfce387dc62f52c296ea9230cc9f1a1920c158237436fed800c152a1489a504f389dc90fcef61a657214cfdd3d463e01f66e1bc22df89c4d7e5146738a3d9f39740d6846e3f3e0f61fd3be9a428fe3a1dee8f478db159a3cabb6131e33ce98419e0c798624fc467262eb582f1723ad8c0289fb03ca3a1194913994f9421ba657239c" + }, + { /* i=6339 cDividendBits=1901 cDivisorBits=758 */ + "1a36498caee2187e71bb957c9d9620e5630379ce5197d1daaa9d15374e70e4d56b8f324d1741ffccedb90c7cf47876f1ab0aa65e8e573a9dff1f095d756b5abb372e4fb4902ce2f094a202084092686f78205cfc119a34c31de547bc601bc0e4e7d87ac9ae9679cc01cbf567d6bb25c1d5c83b782fa8dc25b2f11afb617bc15cf774baa29c760a4a01a6d8bd57471e26f4317123635e62d1c21883ab68c0d7847bb5a3ef69110c8cc2d2d176b28f2094ef2629a2d827456189da01745a2eaf9a2c1ee639ef011d428a5220360356a913fc8199bbecfefd3f80878e8e4b2787dcab3f932642ef2e6757c02d31d50d", + "04902ca23e91525e68d1aa470f0dae5a207cc37b6cab4abbf20399c358817d50442ed4235f1191c8e4db31c629796c989625af4b5989ee28b735007480c2baa288b7a5f593789abb5b039b6aa4c250f222d9cbc97ce06afefedf36b015cb43", + "05be8744b42e0e0fb69b49aa44d54075a83b7ef0c3edc7150e8ab60a4dcc8282f2f68ef209507327311ed95ef05219f9d7a0e28d3355d13502d6eb4fa83d7a35eecbb470fc4f27c945c5d55833d0722fa9a821bad17d4cdbb97482d87f2c21413bc23b9b49a6b408bc6d5a68556ca03e12a4ed5b59b991aed2c8330611b2570bb071e162123ca033b5a298755afa3070", + "a0d715b7d3b57f0a8c924a2c12d615f5c6aeeb58d9cee949ca3c159f446460bc46e705a8aa35c73a7d39a84cdd27e7681fa81b8b14a0a1363f2f114801ec116e7be408b3999c7eef517eb68210373a90b20f6518b38b35b02272001e57bd" + }, + { /* i=6340 cDividendBits=3805 cDivisorBits=430 */ + "15e9637926c1cedd93ae82cb60fba9a576fdc0ab654ca352366aa2290098393f79d86a793eedb3d4b05b078e2d171683b9408fe669b708033aabeccab09493cafee407496fea56297c2587314bd7023d000e2cf177b1f863e1be46ae15f289794c1d9372c24e1e4346cc43ada996658e8191cfec9fc817a61e553c9103b3dd46afd4b05ac11edaa44b8fe60fb6e79c366d429005d1152fdc8959a4ed92a2b9583d4a821ec66b37d6eb292e417b852bddd63cf51a7d40aed8793076ef466a2353781d7e1b9157815d64da39b42d8c580f28a8320ead7649ba78d9655bdcad48561b5f540cbb839044236f53dec662695c5700a1ec98a55e9537cab56d1ed448a3d5919d53ccfef0100ce937ee5bb649ef3daabf204b21c83df9c7c62dd4f0f63d16831e09e8e0553c306a0f474cfb765026432e1aec2e21015038bd9f803e5431415a707131db8bae06f64888cbd4600e4bca540ccc6c6ec9bc97efb5e5739a7ee1c405e52729e8c13cd010d67b414d4c12a28aab204c0ea695805177f164fc7d31b65dec743766bd814d4320c49cc110ba7b03aad14f3cb3ae227c19932a24d5055dffd690b2b07f9a43537feb8f8df68b5a47b6410d508bc747b5157924e597153489ae9d54224b5837b2ff3a317b9d56cdb62f5fbdc94a4253832f", + "3fb9cfc640d2abcc2844f9a35d83740254a20d46ddc9ce9f21d126e9c71ee8a59ec45e8862140a2eabc8273f4febe08bba7ccaed6e55", + "580616e19f539bb9f71c14b344a37f8e9fde5d6bb62c5768d2a56aeb5c1ca26b4bedaeca093605b0c117608b1685dedb251344067a5d4b42530a3f18b030903cc6ab783df93062add8bbb8d762660c6cdc966ece830f3efead0dc76fb226d700d75a4da46c20707ffe3562b5dd922a14e0906999dc10e089b80f7b9d6a54aa691fcb03da67209ded32172019ceeb1da1f193f85837b653f4c647f51314da0dc1e450a49d2cf99aec8fe65c90fbbe34ce7ecd5e0ecf8fe91d084b59d4ab1f6e67cdf54f9db005e5ad13a6332e873f57f0249b618592cb8fbcc63be4e29615be243c4ed70f4270634780e14be2c81ccb2c532c7b9ca7c916503a82d70015b3d62173742a7ee6700f8e5e3fb0f725533b0be21bc6d6355bba919a90555ce66d486c7fbd834d13b66eb8f10090ed4239c6b4e42fe272229a153d6b8ddc8753d4407c9609f46b358445120414e2d525fcb71fe522691074b475ba4435737d35907ab6b14381dd20f22a1b8ad3e286967675b5c2bd400916d2fca4a3dc502f77471e3617abff99840c5f8f9481dc460e820ee4a61a352e7d01529b535b85762112ed119ae9b9797a9b", + "0bf98245db13280342e963c1dda1fdf4dbe49f6cd5e221f561526413fe2579bce9fac3ba876ec3690371f0040001f5855ab4aad033b8" + }, + { /* i=6341 cDividendBits=1531 cDivisorBits=541 */ + "053ef13ffb7f7b1cfb875d241652e3d8e0af1f34bef72bd8160aa1d22bd32eeca6c5cf84666a7798a9908977524b3703230efe69b73c6778c23823311b642c46e65016765243f86b5839a3f55a512b914a722eacd29552e7dfdbae62c1f0462f3f7f26a2faffdc8bf09c333fe2df009a32980bbf572ef35f13a3d08e08b702d3453d107112cbdf6fc0faf209c30c87f9b901def759601f7af8d45f5862594349e7d5bf2a1208b89b8557dbc2d5d67199fdcdfb960359d66ff7dc2d25bf7f8619", + "148493e5c831c0aa84377546970deebb594893f0b21ac4ee1fb1f1e3c277fb0bac914ae493b45a4ad4071cf914c548cce7ec801c5abfdf01e221053179fb898369abde7b", + "4173c96525a2159ae36d09e47bcc52c7ea4c4124d041e7e535b07491c1b2a2cec4891ad4a390a601a0f00e88c5fee67958cce04e24ab53f4848ac45c5de22250de9a8563dfc77553737b066a00e1e9392a149528a02914a16696e780631699235e361c020f5621e49245b5a3638efed841d362960a67ea4014c5ed61", + "12465567cf1ca323604f07a41d4e63a0365c1fea4ccdac53351dc2b2dc377c194006aad32a07e4bc5cdc3e5af2ae23a2dae893c758b458e2b5985f18f50b9e22c7c15a7e" + }, + { /* i=6342 cDividendBits=2270 cDivisorBits=1740 */ + "3c4d0a6280ddac9ab0963a87b54974deb36870ebbf544cd7f196fe339954e269c93529160e485eae002c5814a857f53d8c2db1c8dcff566369b5f2a43b44f112b36227c661e41db990274d497030b55c0948cc67626f8526d70e9ac025492cad8bbc11c2c6a020d733357bd8439bb94931279d766724a481a9ca5004bfd627b97b651a30abc6636f922d7092b4cfc5ebc2df6a32e2174d3583b8271683dfc51f9eb14c44539f2fdf98adaece7f35b8c425695cf9f4ea22260cb74f035b1059fd93101a4731411c543bc69b0576d02c0373c67272424fb1dc4e3d06afcc9bea20a7b73f575fea896b01bc6d5a9727c2c6d99146a690ef0e86980cc6316697fabd44b09874cf12b19cbcad476c88c6827da217e8534565fb444ea7a5e9", + "0f770d3e3f83a2f710719af6bb447e47a84f140797aa049072ca70636bd21feb514eb329bef6be4f60744511897f1fb45805f7d213bea15b39cacf21c3415ca63b64db7a2debf79ef40cac0271a31b7bf4baa9679cadc0cd7a41aee41c6eec072c08bd3a4f0a63211d6054ce2377fbb391183ae79fe76ad4d91241eaea12f6857e9fcc63fc4fe23e7f396cedd01795442a49a38222527a7a09035aef255cf18666b95686ccdb51b60f8302b6dc35ed9e932a33dda7f6c60dfac3c81b111b9b5e15fe17259c8e6f3ee62571dcd43d503fbbaae60641c6092ce58d", + "03e6306a8556f74d209575eadcaf2ba3d101c6114b721ac22166896dd706bdae1cc44d40b0447d17d697f2938c270b47b5f0e77338cf5e8477a5166f5408199ebad7b8", + "0567f09cf606217b079062a286315d8e81ec6917b125acc13169669a8e34e94bed33efa812b81b53a78455c266e8ff192b3e2e33251afeb945a13707fb16cf3e49820e93fb11682a68dcbb05c7abe2a0af01510ff39fa7603215888e780f327daaaad4821f92940cf6d31d5f22ef0875c3f3bcaa3031cfce423e50d4e5077c14200f023025d2863f56ad5c9e35a984011b187703fa262ed1a8feaae098052d922839abee13ed99f12a4b93d373314e0929f5c3dc74026415dfb269aa228a007f8f328b05b38d67c69397f72af6815b8ecf28ea4a302833273d91" + }, + { /* i=6343 cDividendBits=3505 cDivisorBits=2620 */ + "67289374b397fe9ef70839fb99a8c2dcbfeae49faaa93edf435515bc71e8aeab907f62da4372a4e9ab92a8430d512155304e34e0284a8003a0a9f9e11897359a8fbc123a5fb63c690fa492ed11cb910f03ffda5702b30e6c3cce7415388fc8fdc036f13ce805e15722bcbef08325ccd5f88f07f0ebdef50f592be0b6910abaf3d5b3b16c68d86604959aa43142affded4ce30641c8da9acd4d80ba109f4c556a9ccf02b70e4335700c47a934ac8edda053b6b07e1ae6e90a429841f04c7c8ff0d29565518df2ea1dfc6e8f08f46c062cad2bbd2cda859eb39e4827c2ed34989a4064c67513573b32a5066719d00574cdd1a6dddd7d9de9549db449160911540e6c88049722e2a40831885636823ad972b00dbfb87fad001fe76d79789d407cfec0eaf9860df1fc7ce1446cdcaf74b17e1d15d72b81e8fd9cfe4856eff8b1d5c323c5a18dd0b0df27f5d98aba671c7b7ecf44823b2b5efb0553e2733a587c3fd843b9fb30c40069f050796d90d244525bbe947d3dcefea56d6120c639e34a5d71acf2f9a136a6222b1fb5aa180821b39869752e684e872d60326b595f8d7fe7164e117b439224ab2043df1685c40a19952e1e62408c59", + "0ffe0bfae160fdced16a1482a16adb60a840a60d547fb20d91d0721bdde01ff2598e40860991da7a0b48988485c87b2c5c9c565c22bfd734c09ea6883971bfdef420617e9f769b7c002eb85db216d9fd640d525b75d3f63b171fa56739b5be60faeb01a9f1b95dbf56a8f33c230ae7407e5eeead3e727d7a1487aee9da6c0f55bdc4a327fc280f5e2018138b66c86bdc422566bec864a8273c275e68a4fd250c92db56f121ade98883935b69fbad2631c4c842370fc56dd55f3e4f420e0f3730b1a9e8e84f8ed6402a2dac93a5e8c0f5e5374fe927e47aa61cfc89f3d7f3a83218cdc57c920be5b69eca5abf090a275f28dbf4db479d6f0ad6e29b8c53a74fcef67f05eb45c4adafe934e01facabd4367a7d7440ea8f3e14f8270eff3b7f331b2fb398f93e57740cdce2ab2551981b4eee55c6de80fbc68d36dd26a5a16d49bb0c8adf3b21519061", + "067352cd3728b1ecc15e64b571567ddbc01dd526baf35e4a58ca1546249ae119e6ec3d70860296781d3cb99ce7982f388e0e954fdd8526e206d5038b6270c1576b38f8e3c78e67a699d803eff568f9c8734508f4ec7bc3f82ea12cfd2d50a8be6f3d1fa2e7f54962cd619ff137014b", + "0a857e3fa6d286748a24823f53305bd3b31876ffab799b46727bac7b4f0b3189c9e108d7c7015bd91b36a0ee696bcf49f5fbeed6c6a337f4b43427e30d47bb83cac81ece817bffa3cfeefb28c6b56badf8e325c33226cb86e68ee71e6189428377455edec521b83d554c7963bfd671dcce2e769127fff9eef5195e223b95ee9b82fee189762b5de87124acab3f8921908099a36233ea3cdfea85b8dd9ed80a4876c7d8ea3980801a5ccaf64f8d0e7cc60ca8069a6a66700a322ce92c85d2f83a2a1b86c90a1621c0dc4ab893590c4d4115f8f146c7f76333207085a0a6b1add6e3611a6b39473ab322a963ca7b9a66363b88cd90a4dc0280eefe76027f3060caaf3c6876b5a6a45c0d368e9a529dd5e73c83b7f82cebfa68ab75ed41fe57860516a3a37c079521d2d9297bd08480e57761eb668b7bca9ab0ca3655c769520b9be8ea2df9f7f3deee" + }, + { /* i=6344 cDividendBits=518 cDivisorBits=4 */ + "37afe90219ff3cb04de9f6f71a58783b1556c39e56225142df9d397505e594e461610f6f828a70fe9f262c1d9e02078104edbf7133cc745de9fb8dcf1f90cc6d73", + "0c", + "04a3fe15822a9a64067e29e9ecdcb4af971c904d31d831703d4d1a1f15d321bdb2c8169ea036341537edd90277d580a015be7a9ec45109b27e2a4bd142a1665e74", + "03" + }, + { /* i=6345 cDividendBits=280 cDivisorBits=242 */ + "fa78548829d5c6ced56a65c11f2a77bf7e77dc75a2ea47f25bc2ee9d8a5049a63ecfbe", + "01fceefa76062a5feb593546fdaf8da6df3b31082ec0c68404d770deb3d7da", + "7dfd568c33", + "01f6c39500a442a785fa256c7273f3cc6839e25618768800eeb8d3f9239750" + }, + { /* i=6346 cDividendBits=578 cDivisorBits=197 */ + "025e1bfb8c3b629f62f3aa9a313f647bac69c9980c465d2798fd5d809ae7b6dbc03bb4b7edf5fa04128b8e847cc4d32a52209c406f528690b445f6c9a53817f650b2db3cecd9e7aed6", + "1d59fceace8dbde64e44e60c935ca334ac49a78cb7d5506bd6", + "14a6678b84b8b0148262cbf93f13f2906833a7fc3ea594f316bf4b98c1d535d456183a2de8026afd45deea3fd71175ce", + "014b7b0ba8b21fc17f6bb572ba24d1b92feb6c21ef8eb21aa2" + }, + { /* i=6347 cDividendBits=2796 cDivisorBits=2357 */ + "07c67596b95fa8d543323cdabe9d80f6ad6f59cfd0a4c366ca71c4b211a162f8e82d7a4d762fdffd999992b0d004dc2a732ba1d78d8b2e7dbe2339b9c7ec51b476716b620836fd0c763bfbf83d34ba5d8e147eb0ab5811e82fd59358d833defe75e11a1be8b88bc008f3ddcb9156663dc5b11b77121aacd609b2dd381312f4e119b483c1b22a75cf257fe5771ec55cc2f36cbb78f74e2986b58b5fdeb1a70d8137e77505a9cdac04b175258467b8d8424277bc36015a095c6a99f1d83d5ea6f49c0c7a03b10707d9cfe56ca0ac8ab80064050187d2eac40e6c2324aadbfcd91ae6598e6e253cb7774084046e9c4af5360a095ee7a7e0fec67276a2a76cf06c68d6512b412ad3093edefa32655b2c5ed3767df92d8dcd2b1714683f9b3237d3ded34afd3b536fc9ada1321e9ae91829ef4ee54f3f13c28e4396414c4351aaeecbea24e2d17f2ad7ff68162581364c1d34e9bde470338b5b8fa1d687f4fbee", + "0cbbb4fe0fbae215a2a271e98c48ac52cf0ffabe1f23b6dd4c679e2942c6f07336ce151a893f5b70e3cf9f12abedbccff33d7ba14929b26f7cf0ce8bc210142c72d61cf602d6621018bd0c94caa9f4867f98e23d520934453188117bf7741690e1d625361ce7d6c19f782f442c3d345fd2de5a47d71b36de13c79ec02cad2635ee0084aeb0b60c33461a731f1b85ab3044e80c5b1353229d45ead85482abe59f69b9c52ff996b9d499e15956e3d4fe547d42d949b49e94cdce0f2cd7674f74c5574790e4cb577ed493c6f28c6fbccb418a4aa4709fb636cdd6281828e8fa9ec0eb5620d63a367b08bb03effc12946b60dbfe5027f7e054ec5b2299986a0a91dcb02bb2e74c03b1199ab0d887c7b1908da117990d350248b77927d38aecda1859c39efb24431fa5", + "9c51ef5862978ae67586ba8e456ecdc9f2df9b4e97720084413bff529744d40561448661d5d230a98149fa655a7e924bce142eaec0e37e", + "03d1fd9cd5887fee7ef85b76ce934fcfc2064488b28774e99faa7351e75b449f5501a870453d9d798819c0337f42092e57841aec48cb3fa99b424aa27f2dfb326bea26c4fe81349a70b341b04b5a95b485347e694637aa64d28bba096ae388b15cdee597d7037d7bd44f75ab432bf21285553e38d460f77da813b4cd312ee47e0c36e516b65d80a48999eeafc4884c733cb8ad17ed4bc5d71054ce9879e59b4f8509bf3ab9abd85f430f486d7aa8c8dd698782c93518bfbe733623f5c5140f5f48314cd5a8ffab01d98e15aeff21b6f0a5422269d3f1a384e4867df7ac41fbc32123a1bd24a988cccff076b66046852d7d44b80f901dfe746a8f07ae018fd2081c1515ae9565f12bf49a4aa4e631203c4cade4e73ff2b7c08e74e3830cb0d837ff4b93481c19b8" + }, + { /* i=6348 cDividendBits=2907 cDivisorBits=2210 */ + "07e83e4089e004bfc4046b38656b45a4c05ee5c2e0dbf52adc3b1cc9975326bcc326b1dd06f55ba7b1f6a1909d320601a745464df6145e5d98fa1667ff5e686c5350c0e9e83d2b7ac2f36e7cc52887dd088f1b736f3ef5c155c7896ad5c9c0c8628d1878622cf33512883539e86b87ab52a6148d976a68778db2d2ad1891312102429e1449405450fcf46390c9953d503dfba511a29d19779cb8f4044d9d84fb4abc9240b39026fe11ff9de5aa3540a57dbdbe29a24c5dfc82fa911cf3558500c5c819c3cbaddef8f8cfedd19cebb5a6d3d36eb7bbd97164ebce92d85f646eaf7b59c7707b3aa1febfff97356a4713dc4421606621d8c9a70889d6b0746242bbfd8bda38d39a4d25f08241c0d8e21dfd67abd96abcc1094d76c5a2a63ef1dbb79351a14b3ab8ffdc562fa438bd9abeb6133f51ac6fd3df804a39a199e64fb8370512c30a9490883ecb16b079b2c262ef51a27b8239663852f4e59d10a09509b6aa2129aba33d04e40adfe84a", + "6b90e46c2143205f85bee2b54c5116153d9a8e6bdbedf4ba76aef50e0fc5e634a8a791e28306fb1951e479ac33d86431284cd65908d5a3e209fb0aef20f7c6abe41dd6002d9179f30bf5c7ead85a387abc3e3f69771759bbd9937f4488b76532b9b07d0798db76d3c430c7f0fa230324a3f890c87c0f16dbfce1766eee91c38a8c266e97874f7166a7d27aaa3d8e00d2f2628a05e788b63b77982267fd00e9b20cca4c0ce5b7bcbe1ede0b804e4931e7150222c7c78fbdd059a935a3e1358405657bb3056711111c008c39585401a16e4fd19cb4cdc98628edf4ab0ec16fdb595d7ed1792edcdaca2de2ece7b8e8e1f26622533e28e9b8a62a4aa94d78391560fd73487635f4bd1a88d0fd870ac465086e8ab1ec", + "12d190f0401a101b1baec4cb1913c13954e6ee4ec21623df80c5591aa70756c1ddf17827a3bb02fa489e146fdd3ce4a633c38ca3185de0a73a530676697e602e5f09c7e4b9d4c6a2eeb98e748dd5f4fc47aa0bb594708847", + "64cf8ca2bf19aa4cc1abccd2c91d8179109b8a671b3db98d8899f46ba39cccdd0ca7390a5e7af0e87a845d3aa2109f8e4bbec5b81d96be773c12f020881797e97d57a7cd4b3241db8ef2b8bc301277cdfd36aea911d8fabaca39a26e7d191f74c7290a23753c3afd95ffb3a0d162ecab91b1afa7b487c170e16bfd6faed2db329107d7cf1eea73745d240d9470efa8312a61fcfc6a22384aa012c5049db1d692baf145b9a8004d2d4df2734f5b6eefdf2465b95b43f15aa35ebd39d4b2c29d57177df58d4bcf156105f80357cc9f744e38c252c2fdfefa378d04d39d5fb348a4d4c392a5806c4cab1b5a29712311478bbfa267efa0c00b1b484edc4d7d3b8910cd6b261c8c9cc24b31401bb18513096d6ca32fd6" + }, + { /* i=6349 cDividendBits=250 cDivisorBits=63 */ + "c789ce17aff545163783fe22a3fcb471c21190c977c81550464783731e6ae4", + "05f0ea748e919c42", + "21961220680bf1f7368e60ac1e23b10766ce54aaa8b088de", + "02080c37b875d9a8" + }, + { /* i=6350 cDividendBits=3252 cDivisorBits=660 */ + "0df5b72529c4dd6770417e267dd5d34346d53299f76363094e27b27e166f874199b07fc81d9ce54d3de8b98c4e6247a83ce718a83357851fef75597e334618a168e744f6165f7016521b40beb598dccb4289fe1f7f830eb695bbbbee668f77dd96cf2cb0082c408dc0d63ea09860c1cb98721a911b5746a36f23378afae42062e17c54ff261771b31090f10b1a2c0766ff72106db55b298b15ad34899fb779c5185c458e48fa36048bfe957623c9374a5aee427515c77dcdd23a1648333cdc32ce9794e2668fd8d4767f6c94f593afd3962ded0cd183fee412d9861cd8ed950f62af63e14b657a33fbd7c400d1c23db97214c8d702239546ddd3d3f03223afe0fed929f038179511b1cea5cfc1f016c8fbbef5a699bed08fe5a952912e20fcb050457c177f66b67916ce3d75907a066787b37661bcab9a725614ee6d19be9d8f0e0064775b21826c935a01a065c78522774d6d4d1b63cc0e8d0db50dfa6c83fee516b327372d2eee40b2e5756498fa9ae2cfc446ab288478cbd0c06e912ceb38da3010702a02d7cf2655e8776ce58583ea216165aa81c0", + "f7d64c058d21baa3d9a54097f079486a93e44294cd41f1883e4c06fe4a5c76a2908c22f05addee44457ee9a1b77a5bb2bb94abacd7feb7ce1c95dad490220d42f56e01be34cbeff83257953b30717b6b081a", + "0e6b6bdb83d5d5fb40df0890a812992fdd4248b31607128b9e867054401d539696dd74382346b2e9be6a2f59b811331bceed5ec61257c38211d3cfee2ba20ddc20955f694c269ff2ee31d9eac4d037a9a13c454882dbcc21afe83e2497f5571b18f102b5663fb9a83d62da3cf4e5cc54a8a7dfe0836e69cf30430bea01812ae58aa7f8b6faa6d3e393ba3dbff23a02533d37147a6ed266614a44b238adfd67c58f052558b63dd2fbaee0fa7ac3df35aa9fc414abaa318f732bf2a2c481b6677fd0064bcef89156bf20021bf253f0c804bf6326a705c7c1c953d77732cab316837bcab0a323ed9a103f44bc984d47613bd32ac7b48a69f92d759e78d26d80354a46dbdf06cbde664e3e50f7acf38c164ec7d888c4501fb5bc21df2aef7ae1a5f5ea987a82e05e56e44f1827242aae0fcf8452ccb96b0f98042f978ca4726234c5938dfee6f4", + "cdaed4c191d307a51621a14a7c1c906418fb617a8e98c9d7fdc0ed775470ec734a5e4acb2b890298a90bf705ffa4af3a349d75d9a0a68b88129fa0abdd71de5b4ef88a44ec90c0e81c00b36defbf3e936cf8" + }, + { /* i=6351 cDividendBits=993 cDivisorBits=648 */ + "0142b3947fe85565f0302571bd9e810ee0bb348c7a5275a7e37e347c26c7c7aa421c8508b356e6ff7c7256017beb47162468e0d4b586fd268b63dc6f7648f1456993badbfdb9f5d7fc0482328ab4af1d7089bbccd98663d9d7c4b15ad8164b7bcdf1a9cca0e3148983dd9bfedd9761ea472017410cadb737daf13540b1", + "d201efe5e8626508ee7ffb7f754e2164c3b3ccea43a51223e2b8aabb73bda9d56639412784dd4d23f0181739ce4d3d64800c516c830b03e48b9a9fa909c376b56dd78d72cd0a1e5ac9f22ff6dc65efb03c", + "01895fd24720d771c04ba2f41cfefda7dcfede719cc3ca666157e8f954c534b750525af3c8b2b218b9eb75cc", + "0f5974bc530ec1c3d1c9145848727734b11d72dacfa4b45ca09373afcb22fc2b454b28669c0b5a18f8f8a221eab0f284d60e677278336b2270f3b0b578bf1e317d1bfe2c77cc4aba2d40f5bea1079564e1" + }, + { /* i=6352 cDividendBits=3593 cDivisorBits=1796 */ + "58cc37b76e5f7650647ec20fa3d9d7b01a79958d6b5b6b221d9ed5906d8ee96502ef94799cfd7bbfd4a345af179e09dc52934043fa1099db692718c504000a21c976b75443ec24b6a3bd27b93883d5f9e94c2a01a6083af06fdda025f14908154b9932ba8e852259b1062c3b16be829a9f42c96db79a1ee5f75c38514177838f944a20a5e06cc917b2cf3b1782075b4cfd80b91d5483d729cc43eb04183ea184b393d4326ffc7eac361e5c1114dc6032e682b36bc212dcea7c253844b03bf144e6663d055923cdacd8ef1d13e79e2eb2f6577be9bc6c7d828cdf80debc15098bb20d4ce6058f20716043bfbaac2820e670bb1f41f440f455fbb4eae47187cf0b54490a3c515956251a4fb318d856cfab9acd2b99184caea297f949a1d3b4126d951a11b7c6a5e902cdd5e4b483fc8736596fa5bb329deb12677abc5b2c04998a224af910edf90af879427c25c8cdefb58d4328085763b9a7618b324341a181e7e4d46c164de28365c3598e5a2f58e126cd8d9a5c60fd8f4c8be20c5019d68a324f189907d8d303c717699fc584a35acb7f16cf5e79f5c2114f1ab3469f25dc05937df78e4748456d3848af61f397d9b08c60a533845211b93c36a9e196ac1d3e44", + "035998efe24025bfadc74d802276985f6814b49aa85f76c02f5b41434293fa5d14d74f75ca3a6f82cf243f27d800a44860d85e4c081d16ba712ee2919a1dad15aaa251c678e8c2acbadee47ee4874c28e513c973da08b6d62c8e6a77cd1695e2691713ac48bedc888b60d3203920e68f406d69fbb2d3ac168c7737ba8e7ab46654816fbb7bc65b1dece7668b7c57bdfe5985f966969192f5e9a8b83eb001aa52b296668de20d0f467542ec550209d1a82f3270b8fbeecdfca7ebd2e0a5e11204c1e754ecc3b6b7f83cbae6083aae1873021846c533561a566256e6f2fe5b9a7b4c", + "1a81c1d156032355d9c9490d045f75b8f759f697ae6a78c0faae2bda60aabb59ca755626dd00a3bd4cdde3c91972c009e1fc94b0f63884cabedefb8dd3fea4e1caeb2d91c22eb1fd4f7a610b77e4a54d30548553da3f45b4944fd0235cfe7cee27caa08e18c1c7d7316782830c5f6e1614ee8876638238473ed930a58c29bb5e170347b05cfe0b93f79a7d829c4b2f12977fd475edab3d919342f5516880eba4dedc970191a86b24df1fb0e0da3a243a60f507267f32b237abe4efe457064f9899c427f0157d3c47690e0d91cc0a31180783c67916220a0f2f5c323a52fe9908f4", + "ef993267543f919995978de7d2c9f854a0e7b480c01fd0289459181e1d8570c4f4a058adb5b384a75c725555bd144c87123388f892d7e3cf77c2e362663019bc872b283ebb3416e51239b1caf0a29718c1dedb36530ba1f87031a11f1cf11b1a5f37abb8900e6c52c4cd4da27ec703f9b660f3f0f3ef2f3efa1bbbe576b1d22c1e40ab72099d0e27c3bc2dbbc00d8e70ab793bf8cf42544fb263f7636941ef4460fc95c20a421d78eb153499dd8eeb6f3a972ed86d380b0c036f7193a8ac45ba31f4f6b8a844b630cd952e0a3c6202729265ffd16c164600d5c79849709959d4" + }, + { /* i=6353 cDividendBits=1415 cDivisorBits=718 */ + "391c5d73c83f65c907281e64a18812bbe0da381743a1465c0160462f4fe053b46798c67a034c0e919740fde930556275f5855aafab3de8cdd8dd3da1c9a8d39a8ae12cb5ee7e779a5d36a5fcbcae0993e627d06fb8f42c471b82dc2819178ee03f97e904fed50dfd09af491c3a67b6adce39e768557b5fbf55dcefc20f2c1c884eab804825adc0debbaef17b97ad8360351f957720d7d9d1cbbf43c6db93aa0d00e871faf306bfaaf907786ca235fec9a2", + "2152c369baab9fe8388119dda02df967db139afcf920e239ad398e84ea7a70f9685d380efd507defa0ff42c2207d0c3b17e3066ad55cf649502e851fb3dd2b9f05b0075b8dca7666572b0d013c596712c1b478ab0581c95332e2", + "01b6be3b0daa357ef2baa2703b0e04ae43470791997264d9256e58e89614546258c7a8bd6f33addc0263aee4a6dbcb7b57b0a92574cd4d5d8fe2558470c014c980b8051ec70f5b7d889cde0eaf7d89689e964873d4c971d5", + "01f8f8703219bf6696981b21a239d557a3e4364eeb3331508e84b4277ae78e8cf8dce07e975078f27d9d9a8e185df0c321ef57a5b070ebe02018853b7f6588f487b58c00681374ec0bdf7a492d1428f48fd2330329cbdeddb198" + }, + { /* i=6354 cDividendBits=905 cDivisorBits=661 */ + "6927a09e3518809835f7adca167c156f772394da5dacb19d3e0fcc1acdee2790160ecaff95c63338d217669495376dc8464154b525a2ea1087c13a1a27d7553183df04570fef1745a7c3ef8aac02fb1fc781ec4cff37a6a85e7d801ba5c99a4dba90829a457afd2065d586b60dda405b2b", + "1bdda48854d80e26ced44ee15c86f706fe8cb8222969960bd830d64f7cd6bc90b71b029171c8d7713919123098ad569a3f6b8bf0ae783653dbc851ed5d6d481dbaa99ba7a338bedee1323b15b8e8244be5bd4e", + "03c60bb0c3ddc2ac18d9572b878bc49c80ecaf1685bfefefdf2d0a8f7b8ae6", + "0308a323103592666dfe57608497ed7a8728a2dcb8268355aeec745edda6967d4ca20bdde34b875b44188de135a609170f0cb7d9455b4aa3252ea08fc5b81c997198970deca7ffee5072a6c23aad5b4b523b17" + }, + { /* i=6355 cDividendBits=3184 cDivisorBits=1059 */ + "c2794d73d2d6e794a2d35c3849c2a6923faad2754995c19298472c617622dd5eb395d50dfb6ece7c42a1aab20cebfbdaf5b631488412356987ad74dc4c6a30c027c2c22ffe4d22ca92233464610e6586868643727919143c445a6b716303aa85cf130d3f7a4bf7dcd9aaab2b464f42aca5902c1f19125d244e16df7d94c2b20e5df5212c46dd25a8ea0e77d92f6090726967d44974b12fbb12237734093b732972ce7788692f3258885da7d56c6ba4cbce7b16edf995f506dadb46b35ee61389651ba1c632dd7e7f455e896c36ef1a34f66cd242a405e4421b6673f03656ef4c2809f93a74845dc3a0a8e5b7f33024c8a4e4484491a36a91f141375763bc964eba936f59b2c1a72eb1c1398f50a31c0503415463e6f29a7187fc1db8303333e7127d7587e686ed1fe8ef3e5a54c3179927b9519b79b312c52e3d21df78e38256d851794dd6e1bcc7a18784818106ac48d943c4bec76e5990c3be7c32bd4474f5e0f3c53734c4691d8e81f65f193c537bda465149d9e8eb01e9d139b1bd0a3d373b629a857214d683ad9299c078a1", + "04f19ce5de4226c29ed9614ac5d831d023efa965b89566fd881452d3de30c7b870c27c0aaf1d96e842543a6ce69be8026149e452128453bf8bc1edc935c416268bdac60b4d49e6151ab9d18118ec312fe9533e6962af26feaf55fe65d2460387765fdc818f5309811de0a20f38548655dd805132ab648dd1654a723e821bc76f803cdc1a0c", + "27563fdce8c13de680d3a05eebd20ea23fc99b3ee5c6554e258fb251b14a10e0e0ec89443f9c068d88dda629696fbbe9a45ea18996d3e0812a494781acf8cf939f1ca50ea715ee2304fc698501f1bd60dfe80247705bcdac2d08086cd6ee6786db920dcd55ac73bcd19e06a4900b7fe5c9e73535f2895e7b780dcdc5784f342776c4a53d144f423094e5351b18fc26385343e35a48ddd41d1874cfd8e20f54e628c1618825d8a94dd05aeb5e0f4ffcae466fc3da37167e99871d1ff150e8a42dd03724ef4d806b9ff190580e1e39b537c06bdc0459d9ee942ce4073bb5e216efb7ff394ce7b9affe850c227b892b1a780492fe51473a05711caf9926ac592dfe51789de7a1b8dc260403", + "020f65cd16b0b60007e678eccecbfe2a7af64fd76787505c0426961aaf14b9608416f195a6aa856b879eb217b2332c930e09fa97b22efcfb156eb2e8369848b254965f62992284da783a78093fe5a05bf6cb5eaaf23b1c18482bff2a8a94ac9010f888438be2785ca59b27b646d93b7296ebd9833ec9e7cd881531780b9cb0ea7044fbfa7d" + }, + { /* i=6356 cDividendBits=3437 cDivisorBits=869 */ + "12eee6119a06b9f585439722ae42dc8e549f72d98f1194975aae46418d3ba03eeb95b5a6cef5cf3ea36969bf01612f6cddd1f73d6633d85ba10477c1fd7859f26a4b6a1ae1663cc266ed1fabc1793182686cb8becfc26bc1f00e0028358642c776114874c6baced73db2a386996b1f8ac05b612e08679509117b3176242037ad3d922ce20e26c4b369dd6285ef309e2b9f0b9c272cbc80563ace0186de4e7ee1c9e09975990d55809b099105f5f9c8ea1fa1792940653350d0b8eb33dc847117831b135de7e36eca6ef91d4e46e94a17f7f4425810e8c2376fbb41c3a197acf406c9712813a7ad5e7e2d0849ba4c78ccf35a47bbca3bbaeb4e7afe86a0cafb1a137f433d8b0625e5d51c5baf58e7778cece75317eff2eceb5301c989211aa5353f574a93fa2553d610980ee67e562a6d9b0fd523d5730c36c04f6bd0170f6bbb0cba2413d465efa019a2acdf8f294814311a9854cd3ddcf2c02fa6ed62db5dffde9a35dc0ffa6721a9ee1c2b229c6172eb5c05c9f95ec93e838b5085f75fce398da8122cc859e5bd650465646c85ac62d9d10d7d9b87f516a829095fe833e736b7b50ebaac785e6c6868c1379cd9", + "16210891380df227990b5743677009cf1eba9974d6546af85a20fed8e65f2430b78452e909c7b928a1f3bde8330849311b9c31426a9ec3e34e4c085f634d982a329248640d7d5a5fbbd650ec9fd25c6d9b998287b90a4351af5b76acac943fb5b8205a53b894b401f282bfe68d", + "db0766398eaf841d755ca6699a238b836889816d36f170032d92aee027ddc0ed34d214be2aa608d04988db9105e3b3a0d9f602cb0cd1deab50d1e012b5a5679422301e8257a29284ef613afea4f507b9501b2227d254a682baedc8345e42c2f2131064872f92f1b2c11c04e75531b09e77f965879e94255b11bd8202559e5a993e6b0ab68097153d1636d7b7cd2d42417fe0a102054efe83d77fde6f54346a8cb19737c2f92d779db902afd44651035a40d6d0fa1c9fac8e6369c4d35042ebcbceb2fbe322e5fd204cd2406380d897391fb4ce8785a871f2e2b1fc87972f040f9d74f3e786488507b8d164628ce57442004d6d4e2fa15ca60947591e6155dc05634150ff65af218da5bd20d3988314421492af7938640fa669ba905393bb20a99daaebe668ed68f546a5857c12adc626c0338693e49b14fdabca07e49810996633", + "145f108c8bd13c8650adcc0f0882767f4ea6a07ccbe6d3d552f13a37be056f35c3ae824d09650ba1d95f6789e1d247ef7fdb91074ef8ac5310db0aa13255187c20ad61732041575dc9c9f529de20d54ae39fba1391072448e61021abf5a8184b0ea84dd6f4988bca2ea4db80c2" + }, + { /* i=6357 cDividendBits=2265 cDivisorBits=19 */ + "f57b8ac85e02d3f22a97a9b35036e9e44895c735330264dab5d084a4e4651197dbe83237236fd5056b4ff7ac873dde3a53ce97d62b07a2e6036ff9b8667e02e716638d624b42ecce147563215296fc2ab6c737b53a14f46f95363436c1562064c0399fa1452ade25f7e89b034f1f857185aaa073e075a52d4699f4f33d10e549f24ac9934280af3d4a51b966038daba21769b6be56fd249711d018e17b5e2617846e78af7141d9da72ca0cd38a6a01cf2de03bc18201eadd25dd9501c3b258723c5af305cd9dd21d961f1d5a1b718676542bdc6404fc50f901b55e39bc04042abe67342d1369eb7f68d3497cad77046ab424935649166dcf1cb4fede2b80bd334fb1367feaa602cbd5fd86b1c44fbc3cd1de3d14ca7a3b9aa196ca", + "03f908", + "3dca898dbc6efe5bae5fb52a7403d92d6f4d5a9115841553d58219d23552298a55fbd952666a6299219c8ca82ed107ba0b12f0f5562e0cf412137c60ca3fdbfb04eb758f629e8b6a687f66bd527b721b798f9614c6b770b23bd1c4820ae4823406b21223ebdfa72ec16f2665b9002faf7518a9138824990df7fc87305579225c59768ef1d9f9ed3a9eb4ed8f60add9c9f3b0fc06a95a548504315428fe4281634c1a33d2246bea791bb0c12561bac3d4f880ffadd1532999c359bb953ef03ca638ad7afdb9708691d79d6b97f9a1489a1175619909de457b4d3de96b17941507525b4812d5aaba50725c0ec0df62ef77dfe12f25b5f8a29f1859abf118e996409875eb0f7fa9eab9e55cf9a762b1e0f51f84780e5ba2337c5b", + "30f2" + }, + { /* i=6358 cDividendBits=1789 cDivisorBits=54 */ + "0a3271573b929cf66d399be5837b6528fc857214c32335e8432630ffef4596f8c9886a65fe576ca841e1ccd13398b87581e2bf0aa99bd9e5844059de4b6c2ed8f408aa6478252f3d7f82befb6ea6673b897c49476306a0c553154f4b37e664f31ee69867700be76bfa437622d6ee3be17e8ada99514d1650b388808c34a462ea6fd4b9636ce9ba12d365aef308c59f2ec086124c36c04577d0557039cd05e7a091bcc63d8da35d4e2cc96a730ed1fc796a1de9d3b4ca0ada9156d7a9d4734966aa80921e81e82c94d910d16abc71dcf974a1ecaa6567bcc68621e038779799fb", + "373cbb758f5969", + "2f423d7c6e95d823ee3f1973e2834f890979b0fb5c07c3299dcda7c81363a33e8fbea481f020341666cbbea25b3bf269875eb5cdaeee9f1769ad9ce4c0da1bc595a6ee5c197c328df4809be143b40744042462ca04676887bc3d0ab7e8108c0c5de99f546a9a9994c4ea99dd1f92751927d222d8ffad126dcb56d22def071f01cbeb31956abe58e40e7aab34ae660bfd5c1f2190163d23c6a97ee679a65a6ac9b75116718822f16cc4a81fd594ddbb627f4bc00507128cbaf5b32446ca91eb526f7c4d4ecb6ddb399736814ac8e16694603669f5fbb9d7bcfa", + "036cde6bc22d71" + }, + { /* i=6359 cDividendBits=2746 cDivisorBits=583 */ + "4692f2edb8ece4698e25e49f0260e44457b82d16cda9a070a3bf052e7c45d3e47069e4c8d19897516667acc0458a6404dc6689d9d635cfae80be48ed662d5b8063978c3c6f18a105b171e50618c78bf085c35d8b41982063335c2cd4979463410b57a65881829775b365ea90ca76492bf1c2759d38eb02b4da3e0fa9ced9bb1169db5e5b4b4dac35e69289cfeb36d5b7ad37e21ed74b1a3d70134912c0eddc214c4f2b90e2fbb8f8da1f53eb7d12800de9aa24e9260a18a3a2e4a6f21925ad5fefd7966ea9e56aa93d5a19afc9b77eeec6af2671c708ec40571c03f139ced7c8ac101ceb644ad4e8f0aeba33a177cb018a080210517e8b4a8805ce05bf0f326939f41640eaaf38c8f35751f13faee41ae6fd83cbde135905b47aa54135cab9b95e3bb921748ba858d072f0220d1ea6b132017d10880de9dbb2ef943d95d86d10086ce919dd925281add7fb87157744352fa7f955dc3a2b", + "1a022553e2d5e53b7feed9352dda1f9e1dfb8c544a159f6c4d92296dc2931dc170c53d7cceb586b533df005aed649c466a47edac59faaca85c0f89a4d38505b8b0896a2af09f648fcf", + "02b6a8a0b5d971893176fd0ee639103fd7e4253ef3e69ef80b61af84a432f534eb379bee2323dcdddf9686941e2afc4cced387e8aa15278c671665de5deaea59c7d8a08115b6b3ea514f8457d1413678be579a9b2a370c340be640f422e8c5219e42a879eab8359c8101c74bcf8e1a60462d50d6f20fcdeb16774ed2c85dfe30eb9017c838807f140b6b887e10b624d0d8735cf844688233b90d3e70a30f66d013798fd269d2343d6eb3c15a5c4f6edc1f5bb47d436e9350aa1fc49a8a0a52c79b8d321de39d77ce33c997715e21368b876f2d3b4c9365a4602791221ef5a8eeca620d1aedba2991058045857e3b3483985de4ac51a2360d8e92c542e65e6fed4f1e38ec7470ae66c0c751ad849959", + "0d96b3374fab142a5b56a6624d5a8b46fac50f93df7aec4cc11825e728475640796f4e97cfbccd58bc01812af66c872efdb9d4be44751c396cb92d8911ebd0988d4bf85c86c8378434" + }, + { /* i=6360 cDividendBits=330 cDivisorBits=278 */ + "01aaf19614362e77ba9b85f99e6706be04191b9c624d86e1569e5c85896091b427524b3176b9d7663f24", + "0ff3545efac957144d197d0c02bd9dc0ffdac67f739935a68731eea48875b0462def23", + "1ac44bb957a43d", + "01780b502ad0eae4ddd6ae65c8a48c6e9551b8bb2d512338834797458f9816215cd7cd" + }, + { /* i=6361 cDividendBits=1649 cDivisorBits=1213 */ + "82cb5596172eda40abdaaa7fd5137b96a000f5c26a69b2e5abfb1412ae5e2339ebe346befbafbd910b4f4d295a10db9d81adbef900c970ffbfc92637adad5c970af2a6e7b015381c0e1a915bfd62bd8821264a6dd30d0acfb1ed47f14ce6138ab8de84692bf473ce606b378b6c5f87d8f2a844df4178d2c6f70cc1ea04685841530e052a592ad3b8191dec98efec5099a807aa3c2c8e121087e68f70d8348b5bb2f9308532dcd9e5d88ac9112262005c5805fc919819f303e42b63e389fb542180d1b9826560ed407da2d059bfda", + "02576de90a76aa4f924a26e13961eff470b4eeaab398c00985d1f06cfc182b1d0633a356aca2c799f3afca4c952d7ae59beeb48be9e9b92e31985bc50aac754578fe2f974a1f9d54af340c202d12b459886aece0ad9421f60322322742fa1df6bf4266332a2eb295c52303ab7030003da85c7ee93ea712f925ebc43e31201add06f6f709bf66c0741283dc7507a3b8c5ed68b16071b40455", + "37dbd2c207612f0d243e3e3eae8f0ec05019ebbda6b41bb78d28ea453f4ba1410b7408f00065f3588c1626c8910383c07483de5c5b3334", + "ade952fb3bcdbd997d4b622543921dc652a3e4e7b0ad73a3d8747eb71aa1efabb7a844f453f4fc45d36ed3470b70c0b28f31a7f89768a7ce03db89c063a5c3fbd93a3993d9f683bd285212f1d5d1af5ed18145f9d8267d75e015ab298c066241ed7eaca0ba2782ebf7017c46d4bc65160b3eb6014ee3d8188862dda9f330ae9fc6b7f3921e93ced61f5bad6eeb7fc8b3a9e222c4b4ef96" + }, + { /* i=6362 cDividendBits=3777 cDivisorBits=224 */ + "01fdee0ccc648899c40a7f3aef0f138423f8fc6c85881620e54e9bf3a7022aaf2d3200a9c1a58a14b1abb7810a4fec90c40aababbfd41c4d3d7002fbaeae9d521107bb97e9fce264583ea4329f97c73b52c17c1a631290967dcfa658994a9864bfb35ebfc9c0439e9a262f11a82d5aaa6ef349dddf41831fc862edcf7748b14b5bc2dc14cc954afd3bea47f6e102b831bec80aff74c179a51386d232e324b655306b6b76ce2b2597237f350a31ffa4c4b96c6571841d01fb7b441c0a7c4e106cb112c2e6ec12883b31c091f914916ab4b00446d0fc59eb33f6d7210429d66b9e4af82dc7129bdeeffd4bb7a22cf5f504369c80ac01c40d3b62c07883bd2abe6b84c7d2aa15176f1c425459f03f8bbee50b67cea6806ac9bb102f95fe27bc8282dcb91cf5e56355f3e5354f4aff60d02e520e676db44df7643db9f43d6a6e8829b51ca5414ee2196dbc109fab28c9f7cc7138c44a249f11ff741a453f8981cf0c9f688d54d006a9d2ce814be3514d478a001ad630ea808d19aecfa8a77703a2d62eb9184600f7087720d80d6b5aeafcb369a8d9d2d54988312083c03c6f08787c78b2a6edd3d3d53f117c90ba68d7d36c01753566b3d9a91b2729737f57b366483e8df742cd85aee611973440e6b47c7dcdf6c82a7c3b4ce5b4", + "417209f7354c833c6e164618277f851086fb3107775be97b9eb9a263", + "07caab4e3c830401880ba7c24bce5d9d75158066765b83edd8d7254336568e47799f09fb120cc40dcb52bc0e0d739aca72e858999b9c777c8e7baae8dd83809fb269d464b5701fa66f4dfa2f16fcd8a801f795d9b81ffd103e1dc9bde1b6daeef48607dfb350f1bc67437e17ab50d172f5f16b75e3916f3a895c7576d4c69279b2c9bd199c6e696811928313963090af2ecf215476ca397f577d33cc8543fa5f4208581b609cf15a09222e367728d76475ed19081b960dac5d552f01089f06a30008e0201c5d74364478099ba02d7f7289b8e08a9858c31f2bafa05a482698363590e1cb3770cce68530f2f2ab509b4e5bb6f1ae0c591a6c73051d1dc6dec1876d29bc7b930ca8fec239d6cd71dd4dba39920ce349578c4ed8f78cffbc6312a387ed9ea7b6d33601ba4eb4bfc5c49257bde30acc3ac375c488468c7ff25361e7dc9fe150e3f62eda2a140eb7cfe71aa973c37203782ee7c00b8be2d6af60a7d66c474206f3ba1b6d70aa49ed1c14ef88754c84d394d6e1ea4b03e8d8926f590e92c90e24b6d8e38216238a2ddeac9958883fc6534bd4d6799d706712069475a2114a7e27acdacf08ba3775b1d11467cfd5bce8f7b2d8f4685d4b0013f3", + "0fe204b0653b457397e0fd1664600511ddfb16483ef0c4d2c90a68bb" + }, + { /* i=6363 cDividendBits=3323 cDivisorBits=3043 */ + "03d5a7c9a314530916abecb15d1a8023eb72535d4e6b3cafe1425859b9e1880050f8ba205cb33ff608c3a9e720f66f7be0563a34676216bb0b4add6b1b344f84f9fdef85569195966771136bea88b8eecd0ff842bd9365af6a66983e33f641d72be5a07488cdad59253f691a72aa0ec63ab1327e9fb76200f205c145ddad9da4c79df3b860546919cfceb38a1887e7e6039db64685c78cd3e2cc606da35b6c13196c7bdb42aa5aec4322a87e3aeb4af70e811a04ff3e65755557dda77027e0fd8c431ff9279decc48ec92635672d26309678c97abe0bddd64434bd649ecf7ccb1999e36a661352102a5701487fe03d3b1a4a567cfd5e08d3f996b7d3bfcd8444bf72b9328b5ee0c5ddda7c17fbe02efea0813c08cbbb848cb5c9c7e995c156b3b66c3ce86b429e9e1b3819f6e981842d908cff58f11362b0722b2795721292b4e6bc7c9e56a3edbb5f01b701a2516015492f1fb77c401e6a8a5b756326c2fbd13fa286ea86445e8c23dee06017e7e5b138113500e0610557a057b9b8b2b19df3cb45fb08d7d4d676214ae38297d5539f8c25163ebfde541b3cb4d920688f8817", + "03eb33ab7ba8dd50b6df90edf1f29b1946cd8d665edeed3830a9a0307486e74729ab1b9339fb0b53b0d588ed4ada6a7d24bf3b5942b0c02598cf865d5fa5e3ab3f320ebd8c89e2eb927966fdd345f1753323b616f01340d786329ca4d61d9af7dea341b43de092f056b07c712804d0742bd91d71a1184945b4757b519516f5d80fa30a3e4c9fe29127c7cba04801ffc692739082839544ba428d86aed9ce9db9da448e9485bfb6b808fb55f7a3245f512a315edb4bd0a06f7f375545dc2acfdf3b7997327c4fb890b18873625ea7d29b3d4ef88d5e50a5373205192ea63d64bf6eeb7258a52d8527d0d5a79aa0aa5af063b790472840d96193510572d5048e2ab1adbae884b944408ba9a8cf667a2a44c74bb136ffabe2260bbfa5bfab9150b5f4d13c0b507489783d7193d6b428642deeff37b858a04cbe9d8a31e620f9e787397b906bfcf29306e9912a83d5823ca77b98d6ccf8a8f603227a11bd36e80230e8af4333417963d91725708a4883ca3be159a986a574190c9071ac42d3", + "fa8070e08db771566a99c2b98dd0886c94b7099b6b331cbe9045d68e1bef72c583346e", + "02a6cafd95462a6088e82010dff4c3aa26dc377c43efb6531ba265ce72a1c52334819c7619fb555cd3f4f9ac303ad5c41a48e131153010bc3590fe852fdf88ef30d33643d08882b0030dd30648dcf3ae718c3497a1b27c3919efa7fd2e6796ce7ecef85db680469e9d8c9b566b7bbed7ffed6a102e7f194622555f195137f3c226bf82e559869c4c59dcf1e03bb8cdc1a24ea1460d59534f27c951af6b80b22b742a2ac40ff6980496222ea935e73b6db8804c0ae64743329f25ee6633ef9759d84c57d5e38fd60033604ba827264dc31c423e3a96c5bf13f533bad8faeeb556188f1d81cbac76320cc46d6f3062aa913f2b65baea408037a1572ce884093e8c0243f0ca2016289aa9011913d799ff21a2cb14004e64ee07d46ed1e4a2a21f419ea1c2c28cf187f1e6c4599fa81501faf5b8005ea1fc37ce5045c085a022da1af0a9e342a463037308f8a3910d462592fbd1dabc0ae5394dcf5e82aa00c1ad1799e4e567b3c50255bbe9e9622a1a701c3463cc75e126a6a27001fef56d" + }, + { /* i=6364 cDividendBits=2948 cDivisorBits=2025 */ + "0bab5c0799209c67e5864d87f67aa31e1fb97bae02acda97290f3c532bb9a9b600e1b1a9549772ebd805f6d919576f50ec0708df4430cdef04d7dd2f967d369b8758d7f02a32158f261754c140293972832292aca542681003ec6eb06d93abd0a26df346a2f4c8c9d4cb2fcc6ba2a2b1748a3ff930c165804da9a220e7785327817c5067e754fa81a2196515cd1e8fa91c41f5519df69b60a137aacd45110149222ad36327d4625ced5f938b603969089b1fa0687d91bc4a64eb0d3dbfa86f33b4393a39974e67bfae1e39ca5cd2330ac207ba26056daf6951b818edf21c64f6629592b2d35113636a6a7b33cb5dec36317bcd2257616a88e016c327ac2e9e126cd86a5bbb4383f0c4b20bd28362e83688f4d18ef38575b2e9efbcfef6fecaaa7a28ada39d6db3d6a545beab56522f0f78d228e9b3d4cfe51e55424ccb06dbcb73efaa9f6d080ae5e8c6dc3e9e0c9ccc59beb0028ea411ea4c6b7f2af7ef7ddb602b0c09d53b13a5b2687e2752d59189cd", + "01583138fd3d8792f644c5ac61b5859ec79b3ea73a156700e53716d3dd8019f2e46b1bd7c512739b01a4f891e80a05265ad7d3c1cbbe76990eaf03fd87ba5fe926d1e3c692d00995ae94349aece9c6eaf3ca53a8b7ab891fa8653bdfe8e7b4c2bd409544c70bfc4ddbecb1adb496a845a892145dab7d7f07d218e8af883912d1073384dfa948ffbe4e5cc37fb28dc6c7c6c4c6fbe98c8e61f86dbe58b8a0fe0251db823b6b172f667453acc31f3a12946edb1e35d3ccde9d1c03390302bf1991b6825e1d09faef38f81ae377fc0b8c6cd4e028f39fe446b3d8a132c13f34d2a98ea9d7106bbcd28fa0eeb8ce2c7671a8181ba1b4b876e51d3489e9d9a364", + "08ade8c9fb3a3a7092a67b67476c8ba70c45f0ccf56044c53637f91a2d00de0f1f32c6acb76b7bf93ec4ee6f49495712b315e813beb96582d3ae5cb06cccc561cb6f92f3708d311afa1c7b46ef8db6160ab61afdf39f661e306a474102e016476ad0d29a7f6eafe2476a04ba54233c1cc83ccfc5", + "0150db81bcbfac04b7df65a5f12e860881eac13974ac454ce46a40b594ddc05083c22eeb4af159168077633b77fa6e02b4ea9239a7d24aa93c12262266467fe8432ded995c37793e082b1235adb9b79ea3090905151e68ccf7b2cca791381096eb274ec466599f43913d2bf858dfb6d87019762db081b0a3ff0e4ef0726fee8421ed187eb4cdf0a7c269c118bda96739d845f9986e20324b11dd2f8003d6dcf55033286c0b41b16ffa79411688be2162c1c68a84197724365833a26729ee83e8e40c641cec5bc036cac9ec68d710676df6a6d013d76e418edfce96dfa8fde8aa378e213a71864669bd7c9b521af84f28fcd781ce5022afbf0f827a88f1d9" + }, + { /* i=6365 cDividendBits=2115 cDivisorBits=1502 */ + "0244f3d7daf0ea394f196d4616da66349c46117215eb38348c5fb0cde2059d6a42a95568f0fb9d539c277c1fe9e6936458077f5274527ede2e4a626f349d0c7c663e61841d62e4e2b8f3e514cbc02399c7a5e67f4dfa7603abd56b8ba8fad46548dfe0e651bb03716f01017855157b510fb9d3c335408191e65d6f605dbee95daa511bd55db5eed205bc4e0712b22a782fe5c537edd9233749f5a2ef6a798de8f94beee353e3dd4dd354078a0033ab5a9e9606a6a9484fe0b5bc37aeb6e455f73c1d7ae18706588d4fcb6dd6edeb07ff285739bf686f99ce0c73c0bb4a698a41ec883a2365027918b64c44359757751596db85f78afc0b6ca61d353e225ec7d5a8bb5ec309b3f15615", + "0ab02d65f501513e5027d8703a622c1ccb4cce883647cd90f1e0cc5d3e92b20d1220e6aac8bb7af7de002bc7267d88ebe85d71f32177d824f10172384afa731f8c1d0f9cb75bf357af462dc3a4e658d3baf877bf8aea293462c9d3873bb706cbfc26f5751b6a9705bd726bb78f4e3a0c3a8da569a750e1f8fcdaf90a374166e331bfcac97758984ca05a9681696b45725af1664309210cb25a9e1d9facad3d2ff88eb8d3525447f05fc74dbf0f3bb313a30f56c3df1835fb3a5d446c", + "365ac7823fbbb460a090713332de4ede23ead0c0e961b20d58781a35b08ba257092298fe0a2e5034d0602d8de3cad7288a00696bb549d8b9cbb4b63798a894ac521943b8c5e87397ab7f886fa9", + "0229c943ff8112e86a9721c946b51ba221189e33f76f51829800bfa7e4d2bec1c79d72eea76b60fe96317dab63de9bef52ea73afdebd7cf082d4bc9577d7bfb70c95a46e17e26ff7a2ce595c8ebbd70878aaea97f89d6c30b7363d95d021ec14cf10793dd21ef31e1741c1f5205d4cb8f7f0b85c20fd18562edfbeb11d0f6b418ca186914b6062a429b62255092d480a2f700210e704edf33a38dbdad5a82b5eb3699cc857252b8d34f708395011a7172e52d5ba0963833fce5456c9" + }, + { /* i=6366 cDividendBits=2742 cDivisorBits=1964 */ + "28e6f2e138495b02b1b05ea5e3511832bba1108545a9242927dee44dfa41845ca7c19dab20438acdc1dd50ef26526d840f20259ac5132ddf87908f498fdcbce721526dc6a284c1dc54a32fbde3be42553212c78e9df8a1950e769d714450d055caf5aa26c2afb56e7bef1857ad35be608085da76e408228d6e6b7e7baa58a8233adf8e0cc61d8a8b15fb7f3895a87824a349e0aeb230b4f90edb7c9990c6e4e2837e13e55d81064505a3cff2494130312ce38fffef35d32bce918b287242b73c06e04ea9b7a368003b090c4f3a1f3368109ce819fcbd3ef155c668c8a113614b0ff54f1f31da13cb7427c9d541c3c96601f80908b3ca1bdbbfc1bbb2fb882d555da6ee7eec953d77f90636b0e0318f1e5c2c06a09999acbdea86f27b2c9b3d060284570b8002483c40d7c4bfa44705d70c2ae7d78e19a85cb395075fd0267ab3f0f6ce388f9ba94320e0dc8975133a51d442581a04bf85", + "e6c61c4d56d384bc94f8d237a19365fe4258abbe4c3c2690e1c78126f688fc6f91f1627c5078e467b6326e532904ca94af91c310dedfa529a3511b478f4a234653f0027acd5e1e4812c20fbcbe517ec89c601c9f3f1315ac13ee6fb3bb756cbd67f2f29579827bb1b9d067d30b2bae5a7c5c6501737cad1b8a76404b9c4c6dee1e255e456d3e877f157367038ab6b14ba0f8ac5a3fff10eaefbac19e6d8fb26cfe75c57fbe63942437a6981f06f96638820a11cf33b1dc1fda9318672c5086fb51f833ed46892546c92be73ad62d4a11166e7dd2126dbeb98d53bc76f123504374c3c01dd2f8e5ecb0695d3736a569327942796ae2", + "2d5f89fbed528aebbb48671083d014252b05189ea9157e3e0977a59aa257aac382a9bf33f6da79cf11a814cc8fde281f1a67bdde6a2f87c05fa64a09f998dfe3b0724871fe18a9fee9339fd96bed0f34f09940e4e0b38e0dcb332c182ec1646ba56c", + "86530b6160e102a1f8505409ddf85d299a00999bf37109119707d87ec5cde53b44351080bc4df41a4ea44032744131f9bf900ec3358bd1a8c4143744d90709f6d63a55886aea2a89f0ecc64ad930816f0af5cbb4a818fd661379a98a7ed003250d172aa6f44c10f3f6793abac0930ce1b4c657dd6bd061616176170ec85435725fa1992f895c6bd5b035a5e66f3a87ab83a222917115fbc7f4cb979451a9c38a900d5685cc686e66cca5ec219c4e56b5735b18325ff3d4f6ab2f5e5c9fda35fb2aa2a86845bbadf90f7ad58f0fb8c1e96866a041ce632958674148aa9729ce2029f5795f3edd386b32177fe2bc79566875d871fe2d" + }, + { /* i=6367 cDividendBits=3127 cDivisorBits=881 */ + "4afb9ed11b6aa44db4cef780335c0f4a34aa31a7e5383449e4e0b4e12becb68733d2c590c6a3875828b3b8eb87c0a025f54d63e3ac0af775546183b80ba92c8f48fd561335cf90c9fd2907741660280664739e420915233d98bbef68db64a9c5f31b740809b08cb16f732ef5fbd031cba7a6423f7795697e8abf843a630b9e62e9fa05d99d74fdc196fab76d2852a07aa1741b6270eb2924037a6367842994b8bc929e0583062108bcd1c2127ac7d19f90ee14b4d19771a46a1759dcc955121f737b0f65ac0c082251fa19af91b7dea9b0c19030cdcdd35a51b1d3f0ca051472283dd077f106b1f3d5c32f6d2d78cc86eebd44ba429281ae7e352d3af91ba73c044dadd32184e0e51557186f22019ef596e505ad286dd8e6436b073533a078115a164ca5ac47fd883291e438202ea8a1d1a2a40a1ef1324822b25fa812f44aebf31e509ecc65569d2a16a971b0184f7f386856d7ec4071f45f207119df5cd2f034d341201bc1924ac5d776fbcbdd42cedd82a09b8753dfe0d3fab1d369ce163c379d8629ebb3e8", + "01e9d3d2237ab902d59fca73a09ca55fa8132b0cc1f19bce4a0ae1047d7c9c0456b8a615cb09ef6c27df63ca9c4d8fc89c257186063d21a83b2c39f01d909a44c5fddf67159c90484bccda984ef5d3b14f7421902a0eeb5837b782f64549746ecbd65fb9304569d1d2952825112ae7", + "273043fce211ee1719d91eaaaae35631fd5edadfbffdc24eaf406a5b2a7a0f357bb6a522bcf9847b9273732572f1bed832e8d09859ff7df3135966250e3e7ebf08796eb7f09e6ad829495cbb0b178b8a9d3a7de103fecc70a8358b7b3cfdb9b52f87291da4ebfc30d0b857d6c6e52ff749f9eb8d2abede35d2ef105e4907cb9aa9983299792a140ad6d0876882f2203835b7cdf85acb98d8171e1d4ccba9512945fcd51dd2fa127e58da0c8f9cd53f4115d31f9205def621ccc86e091e64de486e9e026bff383ba74643813a8504cd3dbd8c801912a746ee785827174b80a79925892ad35748569a7de69036d8692bbed22148f3d0a8dd4181b4fc7babea4eb09e7fe322adf44f3e535bdffb91e46b1e3d5a05e10a6bb4fc6a", + "095910138086178b74a4a9ada992fb1ad106b6764c4790ac91cbdca06695c8363fe4789b1b7c6799dcc380bde7dd37a09d0948ed4103f25d5c03b4c80a92191ed8246695b55946728c39d9f8f3264d7df6ac8fbf1c960b98835ea75bd2fb4e81ef93c7302fb5d296656333288c42" + }, + { /* i=6368 cDividendBits=2625 cDivisorBits=2130 */ + "ff8302ab6dd591f4b365b1e042834ca13eba0f64b27b29187a0b33f2529d1ee1671c3fc8bd6a68d9f6ef4170e3ec29fad6761e54174a61c4cb6c7e4f6b51e6d22f56b6167538a6702a7b7335584712be6d730646d3c9ddffff0e8df16e3eb7fe5d07447e60a67c6d9a01aff164d3cd784a4c2542041c261b99974481dc7ec6b544c36d42b9739b4a371eccedd4ac73356c2316d6dadb91b322023d475992925b710f5aa0e70d71d5f247b1ca9848d5f64e979caed828a92d49285691bcd7859e877c968e55d62483343e34cb8b62fca4da066a07b9dc52abb635cacde0681085eda43a1404b0363fd7969a90bc31e570326d83c0ac1b84fea6f6f2b7c4a6ec273fb59492d4f8174d09293579d0a5c6255f84ae76341f9e735bf26e00988d8decb924b564c7153278ff52a89deb4872f6051bd1771fb12559ed3cc13bb281abb4ab43cc62cc024023", + "03fdb1978f6ab460d809ad8aa6b93f82622354639af8a179a7f5ef1b8d16178465516496a367c7bed5efb650ca8a86ccb5464dc416963fed38e44317407a346f4ae0511916dbc19ad71e115299c8f6626e11ccd2887d9a700eaa7efc450c3a96f798a6a5710012d5c38b3a171a379b20a8e7a1e9ec39db0a44a55825ff1bd3ba6264480ffe5ea4593e78cf2b8c39c3c9bad3d336858f99e371f8ef9e74cb3e402118f027843d7030f7fce4feb84d478d761a38a423ac5be2e91104d8e6d847cb8f19d17e7f75b68b4abdc20280f14e45babba29b442de2b0ec3763a0e9acc1344d910fd13b4a3a334dde9d171075ba680206379e498c5e31b5661a6713b176933095e21a2f48092b4afee0", + "4005aa762fd2254588a1b9dd987b136249bf3d7cf739a85c392fb8a5ee749698d93afe2e286470b636b978b69f20556573becc61e9e04e72c6fd81ee1d41", + "01a9b78b1df0471cd2ee0921a2804f97e66a3c0893206d9098968f697db6d761d157ccf03e9e4524f69251050479b2afd44adef3397df95bcfa74f4f6bd9887d36012d944bef23ce02f14a6318a38fa511ff0bafdaf8ace58ae1253ac2f3c115885a483c27337758584f7838a1dc571348839e7561ac5278e27d7348407b54d97c0d3943502cac2c75d325fca2c3b5ad00a4ec52eaf4508ddc0dcab8e4ad609705796d635b9804d5f7239d2aefb509807efccea53f427ac1964ddef2484fc641c8dc2087beb96b6c8251d27fef59b675154fb18ac45ddd42e3559b9df0d50939c3443793c0b2fdb603e6d6217827aefa16fb8704930ec1295ff372cfae89da029a877988c34a9f7ad82943" + }, + { /* i=6369 cDividendBits=3238 cDivisorBits=2350 */ + "2f937726db841abc3119818b889c3270152b342b728ddbf4c425fcde7732d92778998663a9b6c8a4b7e4270485bc1d2d71f900d14702bb6d4c39f7c066fd009f9a09360d619bca0f58b4b0861456f06c034b646265b28b95ee1eb66fb57b8e198b9f961b139a4241d51500c7bc03ad2a80aaa44b5c88866793d6d69545d3f6aa89a1e38d54d116b8a8b5d57cdd8840af0b0b29915744f614850ddfc599257d3cf05599404e5ea6c89a8d130037b41e8e16cb23854ea23bcc12f7cb7561444dfab14e772e8ad296d00c743f8f927e105b71f9e578e57279021940a973d7229d6097f91390ffecf001dd271fef9f8a2338a0b1afb6002b5e6d705ff7e1279afa5f5821bf84dd9c3b0e126075bd552f7fbf7927cdead8ebd8f8218fd27f13abdecdbd362497c7a54a95fb17fbcb8c6354b158b96dca1089eb18873367ca2b9a928bb5140c0cfbc8c3f7501f03d729dae846f35f4d741ee9dcc6af6d1ae00fa2590068e40da24b313a3c143b46048f3e8263bcd4047c7a1d9fe9795960f67c7f813c0e8710e6bea6c2fbc2b6ebb2a7f51a5760a2b6cede", + "20d4589b91c9ceada5a8a59a2e982a29a5bc155ccf28c7e0f71735cd2ac503348fcc99599dd47e8019b2af025f18794da926952d05fbaa83a35141a4c6e5bd3c4da939f92a02d7c661b438bf1f0e6fb87de83d5bae947d07c76953e3b5326b3d5dfac92fcbc320b6f5501a39a3c8e8c7ed1e94e2ba631feae1cf153d0dc7225f98f6f79fc7f8f51d7f79b29b12a5c29bd43a56645618e28ae3a388cb127c604d8f67a159c2ff3a9a7b472a356ec232f27cf0f2391c6e397f9d0e5716c7d2d1d9daf0a895ca68bb2f1548060afa2e6800a8691c6d94312f88105379f1d12055c6064b7e965356208acdf61a750832fbc6417e1e243269635f4203a480d6a4cf39037c00621afe087bdf5e7d8769e7f4ae446b0848eb68f60418fc078e46262e07adb276f2377f", + "0172fde3eb1bc828fc7309a84fde6037ab9c8785636fe9556d14604550cfca03881a73c0a036d362d71c38ddd513c3dae39233283875b077e4f6cb45519d16036f9f2c16bfa7297431afcbe12fe254dc0c8a0536fda99e320b4c9ad2b1f79b747e33e32b3cdde1a136cf881358543053", + "124d80ebe4bb97479548f720a6f3fd8aa786198d675ab26f2cacfdf7688844c58f238276191c4edb3f2fdbbc9aead0229ffcee9993fb3d5236f98543212e382e9056d5db86876b475e17bde22cd05022807dd9837073861c7c9bb94aa7bfd1c3212d702fb090001bc9567f9a8940ee0f8f889e87a3e274a9a583cf7a74bb0195d97b5c764ab66cee86a42dfc23b77f4b270d237315c9ab34e0da486feb4256acf8d854131e6ac230afbb2b96b5011fb70246dfaeb058c0dd618d8667f6621d8df9974b0a42a4b076745913b15ed03d9a813f32ad32b316ab962d57eb3f29294f210515e58723c135768eaa7afb8ad2e24e0c1ade8036afd2a95f53eac65ececb6321226e5346b6941e33e622aa7c8cde9416da234fb9926a6e7a7d4d8e8d1572af3bca1b00b1" + }, + { /* i=6370 cDividendBits=2812 cDivisorBits=334 */ + "0cfc61238d6bbd8de13596aed759c202b4ae25ae0bfc2f36b2d30c5c7dda7347cc9baaa483a7d33a2ee3ac031dcc2ef1f55f8157166c8ace2e14285200ee782864900764a9094a0b1a006d143c7ae77f916f11d134b357bfbc73050fcca01952a9f8ac156486fe0b7cfc63223846752787a42ef0c7d1082b8ddd613065a992acd14300018d586ee4bae4ad67908536b611d749358e58039ef7979995b6f91617f96498feeb8c5d44b6d9f7adbd8e0242899056c2ae10a5b2d772bb08edab50dffbc2b86dae623968ec0ca7af7a97188c8c781831c76280061ccb91fdf1fdc5dac4ed54d7c538f84532173d80393895402ac387a8f7f5e83f87d4657c70d32019abeb152e5564c319b6df20592a96f10b53c15976f5a2f4a153c790a0cdfd5fd53802ee633956b12d8d091a7c5a888e20f1d4b2240db6073e77825396a5aa41a3a6ee7570800a9506b0a6157c8355e5af5b70feec35c90ed52dbb6d552927fdc9", + "1fafe437c980770538fe1e3c2f7ecfdf052f171f7595113b3a71ce2b570047be13a316772f3d8f383eae", + "68e9ac60ee4533aac61f6dbfe4396f699175b6ba84ea6c8753374da9abcd7c1a5a565761512345e4e6bfc1413b26abab9d4376e7f5ae55ea0a963ad93a856a7212d582a5ecaa95b2b8e5d2fc442a31fa3f7b96da5158e0e99f7d91e36e0b326285f0d42f386b37cfa06c41f101f8fd089dfb3f03fcfaf8ecb1aff28742da366c2182605b2630b460c9183398f3920b18a35f770c6c3cd54a5bb0f1556d15268af2c731b00de29c2e95f8365dbe12ef720caa4c3586d83aa37fcf3461a2c4717008363af81e3185dc374df1b649d6535b045e845d5c0151ba5890cc4f25f6d2150ae93125db06f9694b48480e2aec55e8f92eb44a457dfeae942dc3b2664f77f81e2cbd3cdd98a1bb6ea2dda1c1624499050e4249d604807a3dabf13d1b4f26265f1469b307027e7392f5b7f18b1a5432bd2e68b9cabe", + "0d3e3a18901b7b194e0a89013181320a0f70f504fa5dfd1f6c7d2c933bcd9b5fefb8b7f6b84280362ca5" + }, + { /* i=6371 cDividendBits=1492 cDivisorBits=612 */ + "0b0b95db16719a698e5c4ae2d90154277ec4b8f6e37cf54fe826ed845d7d9ff4fb4b5548f76ec6220cdfafd47e528f8ce52f8d755da52d2ecb14ace733140cce07b6c2290e9910e21ca4c38a1297fa6a2e8ad4a9bd73a4b6caedbd5737841ad1a1be65b6a6d54c6908cfbfd79f1e39504415854356a2e7a9bfdd0f2b656c2cf91ca1e6fa4cc9661a528cebe40ada6a03fd0e6060b6a9a6392e261de5fd93ca06ff4ce47fd243ff69346c38469c2677e51647f17fb8b5ac2b3c991a", + "0f4fb03426a4440c81ad12c9de7c0318ea9007f540b6bb6b75f26bed0fb90166b9a4ff62232ff0cd88692b1b80bffee6674572691506178c5bd89c844f7bcb8f01db99d6ea374dffc822b58f86", + "b8ac5ec7e9d81e10ff5ec2ff6f6316541f9a6606dfa40ccce8b45cfdad7ff81dff50c71583a19efb4619407d665da9cf7dcb95805f31c37140b7665fa36304db29b2b8be576a14e8993ab288e9583bb9815bbf1f7e7dbc02afd7bcc98eb5bbc32ac0750c1a43ce6f051aad3bc38b", + "0e659d7765faca21a2d4ff18667392d4e6b8667bbf65de532870d8a7ba1c05ab4c7a9ab1746c14bbf59eba3392d48858898186696222056a5b74ad8ff0f204dd79147f8486ba9c7e1f64729958" + }, + { /* i=6372 cDividendBits=3242 cDivisorBits=931 */ + "04d90191b31499cfd135cf06052e49fbd5e1e9c0e0ace9f92bd0e8369d99a1c8ae14c5faab589de7ce5acba20351549936e74cf5b45994e0d1e9f4bf19ce7aec12d176318cec1e2a6cf0b10f64c90c80f04814bf6b04ab4094125923dc6c81189c42aa88854d7c075b82f7d1f28c58664f220a5e172d1a40d03c70a15be57f68cb23389606e9ebd0e93e9afadadf04ca1f360ebfc3646066dd911d5339f1ff1fe22de2b433e0e656e8a4758d6028bb71bc37f8aa83bbb126d0dc85462a61f6ab7c0e28c98674917237bbad90badf2165b4a36cb558d604e36da49d021fbfe93ba3d259b7c00791779b512409ce74c356239251715522707bea13a35c4e071174320711f19ad27c6ec8c17ca5cffd97c1812b1a15e443674423b6c5bca2a5f0a87431f5b257fdaf14536f2276407525a799c974841ff6657ee5321bcbfdc3f5f77567593b95ca9d17bc7e3a791e75725baecb657553390c8d9108a3b42e4035df6e5ea5e02b229976f1516ff2f976f27e475e7c9bd4adbabba949f246a8bc56b4b4495b74099fa6fd06cb7a6a66aa18932acba5efaf", + "01779178a9ecd6638137974ad2bf272b84acb895efcf8b65c97cf2ec00f0051effd313a3e1c7fc8d0112235e866286992536145f0e44f8c69803058e7b0c65cc795cd3751eb19313055ea665cce176b9d4a1dd446eab2dda6c0c99a0aeb47b8cdfce3234a62718b04612e4ce2010e0c611f5268f1c", + "034de964358a5515f3db10401574a2749889cfab932108b3ac9d5a256f8a49454dcbc9e5ac6bff0e3d698157ab9014042e6379d9b904d4660befd6f3a902a4b73737312dd1ffeec9fb4de04fd299c66777b520da715ad26991525ecc409a99d6cb82750a0f443a33b54352ec1541011c28733f8fbff0c2515fe745ffbd32b7392484938a01ca48cd6a11d251d2d72ddd3ca82540533878b29f92aa3a46a8b0788d7cfe4c1fd4daa846e84ef47e6b5a4c46f8dbe197ae8dd9b686e073a74b0d3b90363f234a3217d65e29f9825f822cc51073e42cf85d4727058497d466a12007e29d9750cbcf8f21183e66b9862eb18969ba31327de96bef6b5e91865d414ecb68630739e816c3bb8f43f23743cce454468151f50437678ed891b384f6ab07d5f5", + "601df940f2e2ee34ebc5534d6c1ce8d2fb3c9d9c609e34d7049cbefe5c851d0aaae2c429f8fcc8614e496e6ec0717d178627c415be48c79bd87d28c5b844a832ae2df2039def8f5f7ed0981c009f45995d133160323010dc56879f2376db73e546e38cfc05dae099ac22bce9b383a8747ae8ade3" + }, + { /* i=6373 cDividendBits=909 cDivisorBits=663 */ + "185e33a9407eb797561994c2094987a4704a26ac01972b6a72c34d5c5660bfe3cae0bbc163e084eaafce31d2dfa81d46477dd6ba1ccc4a8d6adb1e2a0b70db95ea9600e90a37c4940cc7ba7e67a8d63fac440c1bdfe7ca57e61d4ecf4547dd1166c2714f6e0fa88056aacc72072c4d40ac26", + "771ffa190bc5816d7f8c64a0e91e5b680136ea67a02bdcec6593b513c1f12c5a7c4c8b93529138ee17ac3a74148cc177cf21e37eaad55a29047433c7d0064fe7b4d45faff8a68518fd9d4cb3d697b61935ed59", + "345dece9e03b5de856e1906d9ea43f6df741d47e15acbaf0366278f2e2060e", + "3d35496a3d46c37337b0070f220fd7573434e0df93b7c5d71dce42d40fa09ff6c140861082351871a84802094ad6ada3923532a4254e936ba775fa9639fe63c3e75287e4d2d91efb905fd5e5a6e6edfe2b9b48" + }, + { /* i=6374 cDividendBits=1804 cDivisorBits=1429 */ + "04f83bb8fd7d4cf4003048fa61a4687ee0a002c81e41e7501f43d810dc87ae4fea8feb70e0c5710ae2e58719e28d8c223c4784820beb07fe4b2ea7b9cecb785a98b2df9806297d869c46ec5578d5ee311ffe1148762b155c12231e4f5756dfad84bc1555f430b00aca06aec50a2aea1634850520a3cc864decedcd4e1083d647c52bacc5bedbf2ccb7c217469fbfbef44334ab089c01d20d2b8e23ac9ebe50beed78e99f80fa5399e497d18048abb3dd82a9ffdecd25681cdcb9564c7d70865fee33ed1d7daef8074d45fab4d70bc65296e9ce3d76032cc8b9c1cf68369e9d7d0b94", + "1b893d1dd30dfc031a1f35c07e6e1b99d6374e34687cadb36562900f2d765cc52b508d4eff2af8ef24687ed0bcb2221a8629c0d349b7c8c5a342ad414edd10c8ba26ebe80f44f148b1c87989c4e09e10d4cef7bbe28b8cf2db01997f147d38ce175b5a7834c219f093f17238d58fb146046d4051687106fc625caf543741a8863c3757e5d74cc4823266714dc7c94c729424d98409f9f06bff18c268987c4c8fea5fc3cc5dcdf46150658ddc0c7e2e58575572", + "2e33d0409adc14d525cde34b753aff23a94a1fe96d6f59016ef8cbe21b0453595a58cbc4d9946da71a0361433e7980", + "16084bf845334ec325ccf9a1d1c6bfecd84817537b60b68006805757c67e0e0964d2b3a53cfd251e6dd21e2dbe5e0b65dfbb21970e2ad9553e4e53b8f90911f0f876ad6a17e07826b5fd9e914bfd2dfe6c8d8a787cdf65b28d9ea96317bdbf27a0608299a08c0c4b956bb8350f11fa0b7b03b4f112a847f53eb62bfaf9219e0edd2ae80e18177ab933d146d0623595330e7cec3410223d8aad03b567c385663414a658acd6843668dfc006a68140fba2d37094" + }, + { /* i=6375 cDividendBits=2209 cDivisorBits=1662 */ + "45e4256f5f91b049e510d88fab15b471205956dc237c931e3249e57dd6be7fe0afdb1943866758c761ff1d8a989d2f397475a610f1d131c46f5da49a2b039f306b2a6f0096e8150b313b1585467c01a4ac97faa094017b4ad55701b3c3cecb30b44d97eb1415abf638d37d95d60316eddd4b42d91b2c9f762a905678b21d22e9e11f6b47493f51e06a26c4c42d73b564c6aacb846d7cf8bd2e6b08f55933af550dad9d5674137fa43daa20d5e00f31a1564d81d65e6ff9e405b23858c34e909f3190c0ba09a12161d34ec5f4990cfcedd435698d15ad042584a06b61f4251fdfe2646e06ab3785abf916468e747495b42a382305e6773928f3ae3ce0390b95cc406f2e2936403344966e98f4fd159ead307b7240", + "2f23ee6b655cd570401c0d59869eb2f71cb77944ba7c9edffa7a3a3996c245e754cf29e748d2aa691b858f92d0ec383777c468a96f5c05be33e0af4f4cb9d6341cc1336d7543b327d427de44f839f6c2322afd7cf8e1d1effd5579c0195263aeab55cb4741666f6b380f452d4a4c1e3a1a7844f8044e57e700d87a7ed1e696c5ee0385023bf17811084506e862cd809a654078c514b456e76785fdc52460b6d45f096cbe2be6386ef67b0cf3dc6967e19b7225dd2a71c56fb38ffb21a970ddf48ae9bd626a5d09d2218aaa862dd24bf7", + "017b8ceded764c9bdf8d01ee33183aae26c3c6c2904418523dfc408a926601bdc23990ca399a34e4174f97e06d1e12d921df599342b3d7a0549963de0bbe4560fe7883dfae", + "1751f1936b4a7bc64360a720c58b464f1ea322fab257e6b54d3fbba39da2e35c7edd6a059041b2c03ee039712242c7633dcd48aeb2a395c482047da4bbb4bec281f4718b8dcc99211f088dfb21aafbc4e947211ad10490405d8e5062b39c4319212cb2aab50c9ac8dd6c3c3626267b9ebcf89f16785857d378f2b672acd0f2aa5e8fc15e2339c353605b571d6fb3811e05fed066b89d51148350cfd112361506b19dec7e4368089e6099c85ba6aa3a3fffdbe8c3ab59618bddf1eb4a8262deed4fa1d13b904151091f6fd04533faa75e" + }, + { /* i=6376 cDividendBits=2614 cDivisorBits=339 */ + "29f85bdf2ad1fccb10c551cfecd67cdd242b32076eac95d70f4765983c97b1b442c704cc4c72c21eb59fc88f30ab13b1e23ec6c5eb00bcdc2658555034413168c0538b43c39178e6d0f9fb301fffa5490cc491239d5a095efb5108a990b4e052df53087b953744666811c90afce0d5bb0ee42708eb3a4b50c6cfea2d5a5f7ac170b4ec78903f4960ab39571aebe3b8b6851d9e7b5e8d16f97d3e94034b9517a47a238a9c1f0e1af1b94a9c428bab10b3ac4f9f408330512daf0b7654773f120abc02137016879d521fb172e1068041acb1e2326c675f4282f02c67c489c58c54fe79a0e96b31b5220aa9de7dc246b4f4a1324ec1a5fe464e1105d60a5810cfba108a1ba0cdda902ab22be0aecc6450bd944a9a5c547dfcc66c87ace089a70778add90673bdfceec1a73fea88cdcaa98128445a68fbfb3f36612bc7eed2e1eea0faba9e3399ccef", + "0651eb529edc3558c5c5cb90a02549c6832f45d5e63b9046de380893de4161bd46bc6b0685e129819b0a05", + "06a40ebe734dae7a28d1f084e763b3b83b7fb79cb710414530e1141477fe9cf9e8320d97e09fecfe7b773122a3b7ab8a3e0e323c903d650f84cc7e2d6a7d87b19730bbd122a017c4a073c4cab5e188aff121512d894f47341bf2212e7896d51020e435814849fb6b9622b3244e2c0eeb04e236984b9222a7551cf05258bce73480a1d0e316b581b2c3fa45ac8fa89f4e5744cc1ac901ef6563d07c5529c82a1fbec620b7a217c1fa5d0a87490d58002ac3e88c629a30a45a5377550b3a95965393305f7bfa516d999d230615535484c4e058b68a7db4873d34f5ebccd9cf489d766678391c3004b1959a23f78f1b4998f7d9eca5e0109d61286386d077d5d266c1430ec95b0ca76b845a98bd71ac60f3744c218b75aea077b36e4440f2", + "03c7379f9e141284f8f12d65d244389734c39ea657793b945b71f8bd5d3a2b5d5e588dff3a20ff1d351435" + }, + { /* i=6377 cDividendBits=2139 cDivisorBits=2137 */ + "037f6c80a1096ea1b05dc5aeedfcc82b8baa6995db78d3455489bf2c3b31d7ae69a8793af659e248e2a78873831b7fd0842c0b5e3f9d931f37b55e7f1e32ed0c617c0043e05aab6ccf5f23f495a4277ed98cb845d81dc282efc1b98c4b1a74f7bc5790a867dd129dd320585190297b3ed03d2f6360f0082c22b207e44bddb87ce501013ba485a0ab980fff270c4bd732e5052f5189210057224be63034b38534fca825d0c0fdf39934a894defe392bc8fe123089e18ba36cc9b065b15271716f610184af497af345d34b25bc90da9b6c51a85a391e61875cd1e605742e07c212d711d5e813fd116f7dcbe68d8ef55f628bb08043b8b3c738f846bfcc7111c23d6ab028930d93ed5b8a4335f3", + "4ae73745684adc15173921732909ea5affa09f81717ebd4cd917cc67138c3d68b4c73ba9896e38b197630d2aac2731f83416175d862629a23b1f16ed84c93c4d1d79fc59cd8b8041ecade1f4bc4417e9d63fd08c554a378ab5a55ed4de36cb989255566132d90fd0b59d816d9eb6b49740ec5c5a12cb1dcb82c5f7a720758e2edd5b45ee32ab9a18f2e6a60d008d625d75ae6a168cd1aa095535502c488b542de9e193544648daf65642eaa1722a70c581a6171e420e0ed871cc1d5f766a25ecca419e4f0740ca1c1b59739a2f30e99d67a4c9660a8f5f0fde70498c1aa52e1140ae4cebd56228645ed9e6d81122bb670f4686418002631c8c6308152fccfca27e1fa9d141cbaf523231be", + "0b", + "477d20a58e372cc85e513efb395b19a2ae82bb4b9861230735b963cd5ad10ae9e3e9aaad7225d9412646e2adb5d0aad9ef185d3ad9ef553f2b0882e97e47751137c26c0485ace9fa33ab3f118d3a77cd57fa4fd073921ff9f39e79258e1a382e0de5f23aadbeefdb5293c1da57a17c5073076b82214de4641386401d78ab60e17e153a6858410c85a016047d45c3f8e0f6b0c29113fe08bba29bbe4d958897039b747c21f8d2309ef3b4ca0e5158f081800d8b94b508c97ccca06e385ae1ce3450b2e1e42b2a969e1e4dc4f0d381628e344591bbed5e472357324b28e2a918194a5899f1d1d9b32db889a24638e1551e08787ee833acf6be3e7e738803f3626f44cc470fc02cd3021b12c9" + }, + { /* i=6378 cDividendBits=3578 cDivisorBits=1953 */ + "01c88b7b83e9695d121f42133ea7b0e967ab3e91b51159a61590e6698df29a8a97aa98995ebfcad613107fa0e9bd9a4ec43b89225b3e896374178b26ba4c1ca82aae4e21aef88929e9482a14b120ef6ab8814013b9f08f1968cc2e1c7223c72fac7797d882bcb95490c7898a03491e94da7c92a207b16d436cd344736d1a524d26550bfe835d068c379a439445030a25a8efb988aa489fe0a62382caf414c907c1286020295f9fc40adbe3d0b6972854568ea008317157fcc365b5174a2988b4c3e13c9a8cf56a7c2b1c2dbd8d7f65a1e80a0f9214630ac99ce28a3e0c316ac1da3876e19ece870bef4751b7f5c07d18867afc506cf2819143851d90ff3c8baeedf1ff66299a3c6a4a2c054613228cef70098e8b6894c0a2fa4259ab69a0a0bf29425ab2f4183836b83119a826a78a369c1690144d0de6d84b4296280f45f8534a27d3bf46a0e614c0ba076e5740cfedbafebc57d7635d4073c60760ece4f11c03398b5483c60925f96874f139085b979af3d217fdc2fd9d6c166c9d03e09ea419fd007a0da05c40068dbfa1874bcbc451b1c47ca6d480a8e176f958126a651910efc41ac1d2e6bd35f9625198f0518647aa599c49ce823922fb7a9334b1e74b", + "0168ccdff8a4f63fef5bcdce576c7df1a82206963bf7cd6cb956486a32173baebecdf651ee9a80581ec82aadc8346e6feecca5a21739ef2d21562c7757f77f561a39dee11df5a8b4414dea10879806f6554b4b7044c6dfbc5baf5342112a014558a2c7a7ac82be74512cb30eefabf3e72c9d8312284a4f926231ffb33533f650fef24a5a16b6a7d342e280f3efb78c28fb0eb26f6abbd7f6a08a55402f2bf39657b884a67e1113e3e7673bacd0a832e784887ac6f8c2324c2509c5c5755d67f68c7ebd7df30078e9066ea273353e0d7f79e0ddd628c8905fffe01614fe7a786d9edfb8d37698524a0fb9fe303c3cc1ac414aca664f", + "0143ef1ab7f901705d0d331161a33886066b7f8d6d5ceba8e6065a49cec907f263f76a22783cafd6272e4696fb80c2ee63ea494f6921709be00dc803970187846f193ee65592828f6422790992b2836c118c181e61956b16fb256190f3d4ed5187386a0a8b67039683230be8925fcfbec7a50a752a102147d3dc37073cd48bfdc7f6a71a0c3cf8a1dc9f499c49f9e0a5fe645b518a7e1f3dbad7713719c0d74869e4390283a00dcee52d97eb2ddc618388047748bc8b4a62541a40bbfd588a0af84ab169e019a14540aaf78a", + "e213b56fa59032719bb0771a04942d6487164a9777d516dca5e20dbd201e51b958c511bb456abd41bad3cebefe41ff55d39411e5f8909735df3790b6190b90a7602edf9f580267e20f50f9db67f7da08ef784db7f047763e9b6221ed5b08bbb951aa288bad5a7c8842da194fa2bc225d49b91f7221a42e1e8281b8e9d4ce5cf1de9eed99acee60d0a721a251247d6a602af5e3c8965e167698280f781f9d5134d55488831e5b039e420eee60473b3b15930f602eab4d8a5d8c68a2bb1ed87584c32633af99df97f22e808385021377e8569c676aadac2b6e455b04c1b029b5b0674cfc661bf0d78bd51d25223eb719f0ea6a87b5" + }, + { /* i=6379 cDividendBits=2975 cDivisorBits=279 */ + "30509e321f9d6d65ea59ba4371c8e91d83e4cde7d32b95665355ab4a5f1b108a291238be70d65064586e813e87f643453d6cdf9f389c2496d7c6b38d482231661bdde6e3a6098dfe95b5d20bc2923b8350e3f33bb4ce8c683835023d23180165c2882a14406eb4131fdd408418bb2d060fd4050e29d5ddd11b18d1b5a5d2c74fcd8e622eaa3792d8755d55667ddac84f2c45036af7f03743eae37e8e4dfb45d19bb163a4f4afeb0b4ff87417794fa5dfd25433e03df03423f9d827ac3b40f9248ac59d79add5056ee0d24a621e1bb8850c78f94a4d509bce8b936c6069e0b51a3d24b5a3b7810efd644727cbddb8c947a1c57a9907a5ad52b5b3a1e9b0e04d76dd2cc5423fc475a71b6f71fd82adb781ff0f2c31d4365263cb402eac3203363f272b40f8ec9bba16370d7128e3f61f0575a0b62411af7c165f5fe23846e2b96694b9cd6d2b9bd8d9c9b7abfa31745c2c8df7d94b7d907deb0e0ce26b2bcadafbb5af7ea3ce2b14005775c2335cc5ce208b7d3f2b", + "50f65c0405bdbfa3e6613eac660277034207fe72fbe32f08d59711bf98a5a34e5a9f25", + "98c51f8e959c4bd833bcd6bbb3b69be7315b6fccd5a0e34718833189b064912d92cf97251caf41ff5520f059692073708e81a6a963e4b3f90d28f15f856843779016f04bb8babdce5277421a294c631cc9c607c93b3f5211034ce23591a5d892a34b069ee49c3a92b789c4d0b4802270d03f56fa2c410c1cb74bd77d46a132140256045810d6c14adfdd980d8b8bb61b9bd4860fefd2f512f7dcdaaf6e7e4903017ec2a22fd3c3acf7fefa66b2846ff130e054cc95d22a1f643cb11a357dc118d53335f51143cdb6676389b85b3adf6940404376093e473f1b02eb407d270f833e482b01d52c6b7df98fa466189cbb4e1b43c1c0918eb748a22cbb29c4dec30aedbdcb5a4f6bc50dd03aadd42e89e65b9884a968d1946961108270f75c9a5da1c979ca9466289adbcd56729c621b4ff4d7f71169a4930a8686b9ad2a7dc918cb08e8288e00e864c29d85ffc1f813c277e7", + "27121d1160b7b7b9cac8dd4472e975e85b518f7af4317b5613523ce7d743045eb371c8" + }, + { /* i=6380 cDividendBits=3063 cDivisorBits=1713 */ + "3c032df13a4fdce61689009c8222e9ad8a638f469a980c2bef18e9b92178620dc4f5b872e43a84682aae4ccb4eaf820cbe3c6a56aa47a525e533415ee9e7d7fbb269e44f796c148f858683f87f8c3fd1f5d6db09cf58bc56ad96d53485ff500ccb03cd7d9369e6600059f1e50f83e6956b45a014eb205fc8e42993e5f56898fde379fefa377ff1835f374b106cf6383ae264169892225a2e1a2fa035084f1317dcde62974373405652673fe57851bd3663960fc657fea8966b30efecc0690362d8c034d7a45b93f231f0a3abd1934a52fbecc65d4eed31287444dc3f77ea8ccc8227b42118b388aa260a01f5f7d04acbc4546a32dc18888897285cab7cbb210f4d7004137e18cfabecd2ee793f61bab209a32e9909af35e4fee1f8e421ef6835d6cfc94b62e81a4d0ffebf4fe05d9f8a5795964acaf9d0c142790d846777ae8ab5fac6f449750401c0e558d7b95187d1b0306393673ec600374e8936f87d0f94f3a676c506072ac2be1f1635a7057192a0b3d9d3944703c5e294c30f345f48", + "010761c3fbd32adc84810dd258e0bf14765b051cf9882df282eae6713e15a2f91cdb1e3512c1bd660098054fbd2e05b1bc8e60a823a3fdee6299ac31ed023cbf6e1a2e7eae52e4266b5ed2fc5597c6ce9c7f487234bf0bb8c33fab899cc249ac8cd77e499d0026330eb8653e3210e0ce498398ec7b4cb7f9c49f2ba22eff45f315c48e90c137bae044db717700fc49a7008536adc972d64081aac36d0dd5f35584bda7c6b27686999f175124d261022a659172b6259d71b47bb0994feef443dc13ef47ab76c04dba888b0d05ce804dcc626569a5f65fb0", + "3a54971a701411d8c142075846d3438507ba71e8932c7068a8bba68e2b8d45d42a9637af9b38a58815d15b9ad5d5d794a9acc5cc9a44b5fe2d4b903d1db13fe94693a89a316a20261a3d9528f2605897a786313e8471ca3018f539c4851d4ddf1546c3442805615a12d253f815bb290d85047d7d2b0249e1036ca6c918ba959b156beb77eaad96716b3836e872d02d854392ed03503de4a4ce4e35d1418e0bd0151c2b4f6a233fd614", + "6cbe555815bfdb97b4aefdee02f571dbe8da8ea6040f7ba5b083549673833b366f2e1f46d0acefc4aeeb3f306edc5c4ee8e50b4ac61f068824448bb2f7ce01d3937ca3aeb052dfa0c46fbe36e39e2f11fb6d16c36842296417a033e6ec985d1cea85af3d40cbdc0a4d42de29b5825f2bfc9cfd10a70252e1c3996b11f095cb288a08bfb8447652fa0f32550cad5a8a162b6b0e07452e072ebe4ff6a43b56b450ba0aec4dc7d8fe8e710bd634fd2e8f8e901045d1dcf90feeadaf5e287bdd4bc14579904d04e5480621da6da633c214a0e22f87a7c588" + }, + { /* i=6381 cDividendBits=5 cDivisorBits=1 */ + "1e", + "01", + "1e", + "00" + }, + { /* i=6382 cDividendBits=1261 cDivisorBits=284 */ + "1702c56acee02f84bc8a6cb4cc06e9047c56f5b7b21c08af93d3efcc9db5c3e709bc58f444d2ad54dc40225de9aeee485a8d61f72e43cede8832e706a49c16d729609366aed1dd55560782f186c0f7ed695b5dc51cdb371105b466c57e43fa0e35bbe5bc0e35b5d4e52c938b3edcda80ae46cb2806f7226ab881aa34de41fc626781be601e8af42d62da323414c8514e1b315482dd82a631a83b589f628e", + "08634ad57d3e0d7a537d52ccf310c1bc0763890118ce73b3ef2625480058ca0a35c2bbcd", + "02be4c16504f4b6a1b9b001f2c8f0ae237a0f36969189504ae86916352367cf1b43816f66ce9ba9f16d76072ad218d30bcdd0b330831ee071eb653f5263478dacc7ae85736d59bd1a2c7aafbeb22b3a3480802c1b8c6bf36c427dde753dde3dbe6cf8fcf4a66149434890ea6ea0742d2fe8d5c65a983c899bd1a5a", + "057abe86f755c10c5deba097010bb81da6a8b77aa7833b0ca36d560dbd38e5047fbd8a7c" + }, + { /* i=6383 cDividendBits=999 cDivisorBits=660 */ + "5c76db88022e48f84d8f1c790dd99541fe01196c926bc3609f417214a01221cc6a21a76762b0920507d8ee8ee0690bb2c560bbb821c113c727d89dd9d8026f2e5ee728f7f317c38c0d0556231a183c76f576c3a4efa78de19b346162a4edd8f6f3f3dfc87a97087ec35d7156bd26f076ad170527401ec42a36ef9ba4f7", + "098cc94a48dcd7ee3654676a5fa4f40c195f63d50f727bdd62f461fb429246145d63ab4dad005edce1e34648a6b3a8b6df95aea0cd9b34b7d07cb4d08fd390c868dc030e15e9fc172e1fd1e303b7e4fb7f73a2", + "09aea3420d445bda55704d60ee925611bebc4caff382c86e231e735133adbe9afcff02c6a50b2fb5a3eafe", + "0935c21699aab8dcd9157f2aef25261f34bd6891d54e5fc7ffab90102f05d6c8ee1b53092fa689132ad28a88bbbd4551a04e331afb76e75afb4acaf51f659cfc80c81e84d065069bb1036b0496f77cbd4ed63b" + }, + { /* i=6384 cDividendBits=1480 cDivisorBits=1078 */ + "70d9252602f2855fc23d2550cbe96f482aae4c5b67d1d8dd5733b547ea36361f3ae7847b3c0260b093c439ef05bd0f825160e98c402a381028480696d532741a5e876b0be97bd706923cf349d2e24815baf1dcc2abe7798c17c59912610c4541406b9e1eba81abb200aaf289e350f559c786f16e3f73c340bd66c5ed49c882e5bb85f2d7c725af9e7385c5518b3e803ff3fb9fd57c8618539edecffc8efd6469bbddd54865841b278fa6763b0d7703f2a6f10c9828e0018bcf", + "379e17c23ebedc071d706533fbcc6e82d4a725d6b474a5daca66fbb16daf59548251ea4772b1d52f702320e412b177c9695c16d154defa4a30f2b815d8f14426da72f5afe3d8ce883150dbb404666ad3a678b64a89e067ad77e221fc629d94c7ae03d29eaeb3106dbde9b01d2dabeca0ba4acb9716851f1e8c1cc1709d0b4bfd0d5707e166575f", + "02076ccbd7864ffba332d6feba69856dadb41a8305a85a5453539fe1fffcbba9dc2d80fbb5246a3628a22d7083932fc8372c50", + "2efd42e0a937828c1b509e536c663be2aede16ac664db38f79461a88aaf88109173f144a0730af732bf4b089b9f686f7ba8f232e3c41b256837304a3d06b188059ea1b0465066f593bdc73f055f3c635cfcd8b544b7ecf0f986b6d233d6a928c50a2fa20001764b294bc9dd20ede3cc5ee92d9bca3d41e044172be4fc879624b901244db98ea1f" + }, + { /* i=6385 cDividendBits=2259 cDivisorBits=1173 */ + "d3693340e48a8e51c4eaa748ac5a9c36697e8581e9dd8d0485c0582d7bae7efe91c8d3ee1468b15a2c9ff613620b3f3b6f3e64f0afa12441b0369b306e5cf4ed328cc7d9bef438a8dd0d9b9a158c3a8f3e9f81ec981bf2a1cf72affb2b45296c0e72f4a3a52591c3038f9ad780ba4502be399502bae5c789743a85472c7774f216cdea4a69b15ea08571f0ac27fc41e5a3e02cacf0e02595431a7f8dffcbc35248a84ec3f22048bdbc0b1de0fe9b96e7367b407fd9885ac960c97b64a07c1f9e2d49426ecf04a6c0214570d3dbe0c418c6165f80d0739848754be4fa5f0949cfa0ca357e35163865ede1e710f4643f5cdf5b51f2b259e162f078644a088191b1b9753706af623fba9cc9a098a3edd45ab0ce3b7e357073717a90", + "0b19402f4f911f61b4eb70174ac741413e50ce51333e5e19fd15b6efe15d6c49706c4b44017afb14686d131a757e398dd72f3d763c8487af6c4c958c80d2a17ee8652c0ca67e21ea398736a37cc475bf16aeb1923eb62e430a97baad924f6e50c40feb893a8f9e6a34a4cbc3dea2978658bfa558d44f4d39a77a98cbdf2dc4fc42e512ffe57261e8d13b5db4162b31be672e8c", + "130c62189d943b3ced34e11793d9328fee6b71b5c68e2c16179d21cd374ccf8220921a6f4665e3e2fdc64cdbd47f3209d91c24f62847c5ac5f0a3e57fe75ffabea99b270e8944aee672a8bad49b1d89b0c30ec36cf0a3ca990da179e7943cb4a1d308020c9256242b6844230cae1c8f80c3931d6883220948355607476da8aff1526baf1f302b4d3", + "075df18bf7008e0ce809c14def1dfdc74801f86aea7c6ec387f0f1952310c995ac96538ac69ff4614465f13d1d404e0bda9e58e743fbf5b0d49c393bd912efe1a02bc7cb8c8d1661b9831b4aa84ae3bf2ae2c6429d18402b0e93f51c8d3eef77d7708fca04ae830859b0d38271d40e4e8ca695de8d3c44b82b5743f3073af141823c6abf5371b4d4240f050cfda9c6b693ad2c" + }, + { /* i=6386 cDividendBits=2530 cDivisorBits=1446 */ + "323e0265e23b8ab0678265b6c37aafdde7f10611c21af8e781e445712ed7e4d9ae55d41342500a4e687af88d3cd18d0fadb58daa7543f25fda27cce8d119586f135ebd9a554adaa821a5f55bed2489b221d12a65539dccc845cb4455eeafa4b50860443d9b56f44dbc83390b14f7af187eeaf71717fc90554dfcfcc8d86a84ad44021f28c0e7a78411e5134e6a8a7068ace6ad22a9ecfa802ab0e3c2f0eba16d5de7a3c0a815bf1ba82a807d9d6502b2e4ef295e9ddabeeb3f357b93dc7d21ade6925caf3a6cda6267318333de2644f7c426889d8a7044fefb129d98ff6662637298e813ea2f6add21d555e273e4ee6a0b9284b3e2cc3f9057bd0a4ec733e6e45c67b4da93cdf23c9eebab466deec484dcd6eab33e8e1562413da3fb9b0bd4befd0c354406992e699c672362e8559d41116f6a61f32bef75327006d8", + "07fb3ef0a6e0ba7ed4004bd102b69b6dec2a18f88cceb5319d7ad7ba8524a6fd33cf671ff23746bdd14fa212cc78b2ffa1119501c5ed9c26e7b5a7a88ac4720aac91cdd348aa59ff286b480765bd9f7161e6ccc6ce10ecc39c13f6df9b6a4d0fbc82bb1816112f28f98c7a825513f76a0ab6e6f92ab124d4ad09914dac1f4f7bda622153cf0f857747c4a51d70cc08298cdd6511f54e11bbf02028716126d04d83e42da09f101e9cdd593e90fd3c7f09ff458b4749", + "064b7df509302703541e93cb51f4e4655388451681bf40546fd6be1ff9657fd0dc368c65a7a4e1ddf5a2529d67dcd482f5f15bd934128b28d6bc6d3a620b6461ff2892a190267329a19aef472641bd5497dd1b33289b1e200f5336b6c83876d9e72e8df8f4b6af292ea6690cd0f0b8e879dc623e28ccb8651304282426840358a196b53766d7aa40", + "013e9db80c250a6fc1811c2ea5902d144c30efcdc693428023e0236af26097a6028f7efc63c64772f07b368b484ed3a011f225e55ba0d3cd7fc6356b57a144ca6ba85d3a8f5e3917287b1965e1558a38b6669d9e9db7e50b1cff83062ab69a18e9a6af565a22982c452f1216c0a73095a6f7388dcac8f0d90b0a4702018d755e50438986358637029bcb89cf579cba137bf5c0694b7349be19c27ec209eeabc639ca519c6d9513993531b43ead439417665df8ba98" + }, + { /* i=6387 cDividendBits=3920 cDivisorBits=691 */ + "0f138c1350e3f8527745a43d12a7844f5537dc8ce2552b213349b71cde250f815040357382e507cc7059e62237158035d48b23b8852b0261696fcf29ac394ee06ce232c2f999214c2c3b8aab835eea09ad78627c62cf5f598381be9ff0e1679358ee9f5e921d3585346204846b04ac337143838ffeb0b2289a2db8f20477b15d878bdc38e39bc2c1f7e8d5d11ca8783f04c0ecd2fcd093b012e8f7d87c57a058be2132295cc38257422954948bf0aaceb74d17979f62e4840d5cdf8ace818a99488f90f0bb8484d3ab82ee639e7a98b39d7c7cfd0f3e3184e8e4e1d0bb876d5f36a979077b6c6c36d06314b6c4061b8e69deb0301c9f011177b08f0ae2c9507b2486c3d1a3db1c902767600f0c50216f31279e10a80583621225eadefc29254f77fe56db519529ff025d6173a3f04cf03277421aafeaa7cbf58e03bf4caf853f730dc04ad2d9bf7f21143031110604450d01b870599c2adda1bc7e0c944fa654d0453a3fd58452a57827fbdff1fac9b0b3e7ce1a56e86f7023efb016e67c421b809907147f6916640d356d2fe8bbc631c34494bdc6f13e87a8df39d34b3bce1617080d2b81c10f15ee562f6656ed916866e81c85337ddbe37c664c2633cc9f24e8e6ec3043c2f45a9e46e809cd84ceacfb98292f9d035f3bf5dcf95e552873533d93ce1b141b1cab62ad", + "04acb701c842fcabac698fb6753474c6c030f161ac8ef9e34777f85322a166f287ce1c62fbb4aaa769434a5b6caae88aad7a2c811f9c65ec98fcddba07c741bdc60c5810978c26ad1f5817c819cedb6feabfbb9ac8aabb", + "0339a15c4d251b5fee73abda0f21c2076c7920312affe69ac160d669349bd0701299229eb4540cb0b6f1b0cb373b1cb0097c23072df91399f5aef3371de472a863b1b22a50276c2801f14b314a4dd177391fffff75c2da26e9898bc62c0ab0988d4772455badbce5dd7b1be9a7c14f53eaf47d3edbe6dffe8d84b59a762d73c6df825bd491e175b4fc1e3151f3d31a93e94b16ba527dc57ea75f7df23535daa2fd459ccfc5f1a215d01ced898469cab0e9c754eab9f9356175f0c437a4b6db78cd5a968f1fe5aad925ad25654c67dc79f6ac026a760f239dd7329afb2a3518f0b9d8d76ab29fcffa96b78bc9153e943997d327dba27cb0849446e978351de788daa779dffab6ec0f2ac837d57f1fa3c6f422e277b6931b8113f7fd7f9739647de821581be9779ad2e6d0fe7b11c9aa69e2c965c6588e379e1963c1f0f95f4286cab34a39236dbb2b783a37791e3e299d1191685589ac98639288fae759e50a2dd47717d8c79af69c09b8f3d2ede5cf5012a0cd0cb3132021a84c67ce4b23399e47abceb8c29f95cf5c1a097221ba7355b8a10232", + "01b93552af5f5a9186592a2dee89b9f996e755414e61ee253f580cbc6fc593eb6ab120c6fbe9ad7825e1da0cb2aa310f049690540b66ce54de78f7e5f8466706f88b717ab50e1f1eb202b3b98925800054e64088899427" + }, + { /* i=6388 cDividendBits=768 cDivisorBits=562 */ + "d4ca5ac78d715a59d65079ea18d2dbc9cbae07f2cd37eba5d6559540478950f6042d1faaf83b973805b435517a1e1f6be7b52ed9dea604833b03b4f47c7b923e98fccb6dbc3266620acf08082706edcf49ba3c7583bdec7c826493ede04d8a2c", + "5931659fab341dac3e4853ed9eafd5213b6b4448cd6451b90ce93c38e16261633b6070a55431aa5f8516212e2e2db53e98e3812ea546963809e9cb2157cdb1980aab5ea63297", + "0262bf4cd900f0c9b97c175f21b8d7fab0a767325f07cb6b241792", + "017fd8ac8b5eae014f70b356e7ab32c0e7be1c9f92ce3e579489edf34592e63bcd7e76311c2d9a8e319a9e7af8fefbe828654f0cdb49e573bfd73210419792db136fbcbd1f0e" + }, + { /* i=6389 cDividendBits=600 cDivisorBits=548 */ + "c966ac98a6d5c06ecf87970faa8b68fa26880db437129b591e3362175e1d19216331247be18fd0448ac2ec42992eaa8a2bb0bb3127e6417a3ccccb9d411a32b2a142f9b94536184b8a31fa", + "01d7599a44df5a31439bacff65507abfecc55dec3b712bd08d872710cecb37bbb6f42bb1bf2d0e14060a2d4ad77d42835362f8e029e233053aa045c37458872877d3110020", + "6d6296c6a83115", + "bc7e5407abcae69144224e10589a7c404be35d7dcb12784a42aac63efa6b98a90d24c12be3d5ff147b15a624ccd208e9ec9ebe20ae658f2619f7e03e1febf8dce51f0f5a" + }, + { /* i=6390 cDividendBits=3420 cDivisorBits=3177 */ + "0451e8beb865d020e5b4b6978517d47361a87d7d65093aa10526a8c2906e980151e6eb87f5308683a0253b0654f9f0a01f8e60258ed22ce2ded02193f37fa9700647a5c837d390881ba9f0cbcb525af504cc8df69e1bddda7565143559e898f2a0d10206a1f1174dc2792c737fe0f090753ee8bb66783fd277f7d42d8477f0bcd9dc11c90818aebc29707f818f877ef4126671422ab2dceb9f52a32a5e8a6f7264d319805182f5a736ca11fdd70b2352be0078487d4860184c2ee25ea6c311a4f34009bdc14ed51af245d78f8ed503ab5dd663b108e0b6da0bdece7c7092d2652b881ae8dd11f5cdc223b43f5ef600296cfc0acd41beaff220a89dc66f13b3b8b489f11a858907df40580cda2e96ef3a63cdf20203982068da52edabcfc20b6f6caff6c8c9eec93b9ed264d4b0a2caedc19368dcc33de92d750ae68bfb7fba74df9e33f07d07c711050e40f744635cad29e12cae8b93f3db0f290bd522e7b96bc24a43d2015d85536a406f305ae334a92fa66b5f9819204491e902c4537b51bf79860f0685031fdf2dba05f7da02774ac6b4189e59c665a90371c402a790b37f9c2daed6f4a6257800cf0c6e", + "01821d739c6d247b844a3824589ee2e3a847bcf1e4259c27a99792e0e8ebc95814096aeb7836610200acbde2805e1021aa9c4d4523df75cbe352a1d7d1bf7f230521cc8e32143af5d6e721c40a14688e157682466e5406e5ab07f265a7a1ead8a82bd02ebcb94b7fcb766928f689e45e56b5b4762d3eace7d2b2840a9dcbfb73dd75c7d4acdd5862f09d0dde1fd22d9533e27ee8387374bb9421155e63321ee02e85008905bd71660ede28b1cda1aae58e39b7207c25286257196c0154dab92b7aabc98c23353c833863043fc155c2dd60060234acc79df48fabd48afc46cab7e41e9615b7c4dc4231fda81a90cabd13ea7845e2beb66f4a60c91ad9a1e5b43d9f77a66cfc03d2d77f3ac3e571f4f356740adf68523086df445f4d40e22cfe655dde64d203962c7cd820b0fab65b1fe2b9c29d708668b95eae758df6926281471aeae0501306dc48c8a1dff61fc59ba89dc2412e06fc45ebbec828ff0ad6bd8bdfa774bbc38d5c0729e0f3a07e4722dce76e9c5af28e208ce05a32bfe4e7609483bb098f4936b3cb246050901ab3", + "02dd3bf299d511ee084e99517de250d3bd7bffa55d2018d74fc05a826f5c43", + "4bf0078f5d755152478fb47e72d544da845372d4dba8b17e53bd23ffbda6352f94431cf5a7a6a89c78c6957e7a1caf48b183ce3fd29423aa3dc9abbc828806470b7667043df48467880f93b2945e1ffcc4516553fdb5c20117f37faacfa51b97726997fda36cb31c1c194c6c4ff69578b8d01f327987fa1d125c86e3c70ebe5aee0342cd057fa802a51e868de85aa776a763f98be2c45bbe2403cf4d62a0d92f399a2371f684fdc3977b28a7f791880c05e2bbbd3cabfc060248c1fcd90d68a1c8bf1372de810c83afac63d4a376c0a34a37280acef7716f87f13bf72ec831cc4c2b0eb487a0f2a7e914fee3fddefe9eea8fe45c557e33a806e775c7b872e9e9e5c7d147c770605395081f62c07aebccd453c843b8440822c3953ab3afc371d4865cbda67a10c9df7ce47f838ee041d9e829034348f4ea4fea82b48bec281b2422da2734687e940a9f7ea40bb1f36132e7cf2e08c047de9119cc3f427e7c3f68b9eb3843cd2667830e25d764f2714dd36cc00e97fccecc83504927750046360c87c663f5663dd04456a7e2bb95" + }, + { /* i=6391 cDividendBits=3633 cDivisorBits=1711 */ + "01bf36242f9b0f4c893ca5a0b539e31ae6dcdc0c3449ad2dec87dc64049787aea3e2e79cb9156381b448407732bb5fa04989f4888414ee3d2d1eebdab4f6421f71092343fa735851df72c4f836bc6e52bcb4298d3d20ae92d314b42fba569ee2c4169e0d3ae2584d3ca2957cbbd3f0476c1e0d7c4cdc9eb73d2a5d95ea9d498b68cbb21060b45cf2323cd23a5119f609b7bd8888f873f7c1295e4ae58284a40c852dbaaab8f66bb7dfd3244f6a93489b8b9b1727ba898850ab80b4d65c1acac59ec00ca98daaf7400a8205b64e7afb183546ebee8365aed6695771efa769da0adec16c7ae89df9af493ff92bdac385b70a52a50627dfac52502ec7c329af41db56c3ce9e15bef837271beadbb6884cec81b0ca152474051ae49b615997f3d34cab14017345f40279420b2fc7f61dc3f5fe06fac8d76691944bd6a47dd5a98086cb1cf0ada0bcfd51322d13ac4f0122388d1cb366a7e1cd02f7e2efbed5649c0c591f800fe27bbc8b07ba87dc5b18ca78fc3c683b6a5000c7fe0cddf5f8a90c6dc7e2e45a90d286d49a5292b9bba80507d0f8483816b66a18d58dd10699aa3245c01f36737ad2343023915836b176790944b431de4f3e256733723296692ad1808c66818b2df84e", + "623b273fd95e00dbe61c56de0cbe74bc0e7e47841add6d8241090a03821398cee66c724de8f2d76144b2f184820d1c33b3444ea07aaac8cbc800c7d586c398a346a1748c7c9cd27903aff11121e0fae346bd13ef5e768a770d06d5ef01c4e66bb485999ce15ff5e7d35619328e5a38973d3a80554519d68ddcc93d7ec58e9142220b53d094f368dcdb2e689c057099185196eb4ca1c6934f237c265e8bc065f3ce23ae70b9fa7a6155f1296275ffb1fa6ef198d66f015ac79b528df6c05ee941935784431619bed3bd1a90ced03ac674fa67bd2fbf49", + "048d7a59992ad9c4cf2873f74843a9565a6dbefea09e9d0d1211fead305abe9994c3c47f213f03c4ce622a3b22e174af7aa27a7de4069a91fb4709be9a955d9ba72cf1a255672ceff31a295f885e88376ffb03f57c19c265a9133c75e9809b2ff2b19606eb95977305bffaac336fac798575346d58f60c189dc40593752713e36851de27ecafc185a2c69a4ace64a14a92f728ddeb4cfbee2f508bbdd393ad8c0113aaccb97e0b784aed862c1d33d084314eae627f6fa5b794cf912b4e29f503a81f0da16eb8a1afbb42e42eeb67bfde7a3b27d5e858977dc1c4e18a963c4d1948cd201991b1d37c093014114e3d904897", + "555da343363f640fbff089c024ff314b64e8d06cc6b532c25963a175250f3784262deec9bb99c65d91a12254bd3bb5c56a1757c7bb804746fc6b2f3358d659fdf07e5557878f5ff20d2f0b76c872a59b7fb17217a281f6efb08c569a99564502c0de2c523b9e49efe50d2c10fcc859ff371dfe421e7fb3797f82e228bb37a9b4c68ae03dd217fa19b7bdd508defe97421c85d530594fbf1ad08c70a7d4dfdc3c95010b0194b725ac4ed7b65186fd7882e8aefd629c4732b338de0713c2a9aec1a2eb363daf908278716eb6294e8886bc996d88279c3f" + }, + { /* i=6392 cDividendBits=3084 cDivisorBits=768 */ + "0f88fc50eed07810b8678dea521bd11997a733450373e0ef940fc44691a3f27e13dfe36db2d4e1020e4c9db7fee671d6b7dc0e24c4e6d97542056e8ca77870693a13316c0304216fc6b74fc3e94fae6f5d87ba0128801c17878a4c2557076298f7b760c1fb68b4d091c8d093853d822bab35d26443ef69b2ef850d88b243cd68eaa26a3bfa792a3d7821f82996a5e96463b2f62ed6cd0f50f531f62fbbeb8d0988d53225a611f73a3a1f5c4187f25215feaa7aea2e8ec6799aab8be6ee4a92f45682ee163fabdf051de8fec82b85ec12e531e59b748b1d2da8df2be668583e7e5aeaf3d6c39993a070cab924e501d4ebc0097c59425f15876e72b2cd0b4334b95d310a4ecbbd9cfc49f641a346572160305ee80a7d0ac1b3e49a00985951d27f4c6b7e5d0a2828ced8a2feacbe5c2ff8a9f2c63c548bb2591fdf4ee02248b2d6a4557e8a36f463b87ec72675222186aba448cc981363f2c50c372e2797264d8aea305b0c8045fd1ff59d0f22104cc2067385fcaf3d7976aea9d7ec929ced8dcfaf08", + "1fbc0e116518751f41217924099a723c878eacfd25c358b810069430ed3643992ac73cbf8e11a1dffc51db9c6d788fe1cc2d031362a2053f2830fef82eb523dc3a01a1cd40a718a0dae87c4979981762c510f4c6e8b88a1b5e2eb7fcbbc2bb9c", + "7d51f9a1f1f7f3759a88691fefb78c7fd4ceb74a4ec0ad79460170bcb44ad4817f9ca354854a026ea7d1683ff82867f526e173e7e558448ae92da950013f54b15062b9e0df54a0a96f683baa2409231a023c63d79b838253027ba4d923546210276272a977f00ce5c25625c9057cddb23e617940e9811ce54f420c26c49ac185cbd22007c6ad04c01c39938c740ba51ee485bed5e04c4ba798f310fd0fa400eca8511906b2160610a0061cfc0ade87a4e79a9d975f67f41c468b08735c49e96a79e2cd7670972860c390c74bac2a0650564926705a210deb70e8cb6b4cce53f5939f3d132d7e74d6a06b193c181bcc37a06ee77f11ca47843c73288cff8db129892aba6c1a889c41334ddcafb6fbe1e9773703d2f24a5a5a9d49ff658bb1535514ed", + "1e915153bb660dd8b040abe5fa69b663304c9dc41716c9289762986efc058bcd43c3d961378689023d7c0027d1d285294b51ace69ed9388df817f2906d9a2576967c0623e8107104978b27f0a4c15ac27a8c509b480e981b171aa3f0a513cf9c" + }, + { /* i=6393 cDividendBits=2853 cDivisorBits=2192 */ + "078ff05399bfde7e8e759185493fbcd450ae91b7c229388b7453506c46af1aba76e7e61a571fb68497356d0f2784150c2929c56a1d8cc5f4e32dd9c738318d33f9715ff88cfb2cdf79eda907172ddb3b0ecd7b4e4110dccf5e898734a2309e717110c322277247549a1cf541e4999a3a2ff156737ae5bfe1841654da7ae01c5ec1e5c3efb8d095c7b3bf8430dff86e7d3e4cdc1f131af5c9632fa2c5c75a353cd801ae32263bfeea8e6e84fc20d84924817cbc431e37ad4231f457f393f2e7ce05bd6384a3b6e0b26da99287ec22b15392886aa30e8e0d8eae40aecbbe53d7e23940ebb6b03bd1aa67f9b98a662348c0002b4db108a63ed0ffef5538adde4c1ffe6880bdae713ebf7c0a3ede370895649025d80830f962a6ffef14b927957a83eea967b7222691e3a8af745286728a4db100974799156764ca3ecb7ec1271dd989b93048e7d7cf29b8d7129000383368841b65bdb5b70c668fbe83a2b60092fb07ee15482f", + "d9828ab9442f828c39366a9a358effbc860da3815f4227ed8ee762e02cd363318b93891b4fffe6325e04fcc6b17d2fbda2743ac10225ebed68fb1ebcf87857897dfc908105055d2bacef0da19a2f9b850bb0a7b65e210577627666272d682b3868b744f594db5c0cb73e8a5b63de26d953b5752cb300ecdaf84513821b495bc18746203e1b5261f10643947195223903d4c12d209c2cba622672b7a5e3d4ae6f91129ba6ff477555ac915f01b12bcadb7fab94c0f62987982e18f577835f98b1b61abb5f26306279f8bfe061e53453fbd893e8a9dd5a4823c73c5134bbbc60383b88e8cd9bf61fa7b3d1e173cc4e0ffee2699022cc1dec2d36addfea7064bc07dbbce02aaaee4a41b08bad85b0cb838a05a6", + "08e684a6f853c6952f483d7ee003d68e0236b9f786a3e28827af7fff43fbdc7a1faa0d71b6469a52fe16972e045e777ed90271f000d0bcecbab1c0277dbbcd5d245fc01cc8a86d43d62b9cc0f65d92e2ca34e2", + "a0e6d7d661366a1532f71a7e2fcb746be589ad3cc44eaa6ef3ae31494835a0e224d9ec7930d77620a60335aa446a143f468298c613c43b1b5426d461ea060728f982f63ac162c069c160279c55eb72883f30bc3df48d1d481fbe32c9234105e99098123041a1cf4cdd1e3445710d514d1df85f05bf95f1aa983fccc4927dc7ebbdb32455959d5494d0d7944caadd9e3696ff20df939e940fdf5d47c7d44c94489062156f7efa014bcdafd10cdfbef56bb0434661b1819430ff569949c88d205404039ac2d67a6aa2b8e41ae22b9d5c12d69cb6c881740e9baaf6426a585dd53e413c21fb58d9af27e7c271f0d812497fc852ca5cbd4138d5ccbcb4bc1015ada58c3ee33dbb03abbf75b667a56614c41a93a3" + }, + { /* i=6394 cDividendBits=248 cDivisorBits=194 */ + "a418d821914937e9829a45987f1a5bb02c541d061e668e3cc7b2facebdb0c1", + "03b4bf198aa41a2bd12caac3945ae859c3f5b5a3f1d942e3a5", + "2c473c1a232427", + "02adf229483c72f414e31b068d2ebe493aafc019a56bface9e" + }, + { /* i=6395 cDividendBits=3542 cDivisorBits=2052 */ + "06aaf3af16eb2d7f1f4a5eab6ab80b1b4631858e6f5f9f40cb95496719ac469d468148e95ec9dfb99c96915e7627a04b1ef42717b11d3757ebd09a2b6a55c728c56f966b68aa176ad294c40d3c5f4b5b4e8932ff53b5f473e3c9771bed9ac7c8fd3a7ac031ec45abd3388fad666615978f7d52148bfe83ead2fd222ce88544993bb740a1578fc28fe25e05064132bd70a10131e62e3c24fd6ca017c3823bfde16a8dc45f6568c4652cdaec64f56b5a05025aa60428b499e418d17360bdc4b22a85820a9f12b443521d46144d7c3f5606e9fbda40fb4920c392a4adfac5806f0785ae08b30e2fd25d33686fff651cbee9710517f7bdd2d026e02fe8ac8fb2941dce1774d246a2a520a9ee0d476454d5574bdf6f09aa0e647c19897aa32b067d4fbbe5db13fd916e2b6f483c11a64202cc4e4cb7e01025e5dae7cef62d37dcc277e89b014d52a83ecab0203b3b6bde0715fdfc836612d5bcff87a530a5d90f921ed82f879b41908773b8d25e629f6d8ebc91983b7a2493f4fb27ed9779bb99b1cc7a37f183d8adfd7e56a6388442efce9f1094ce5821cccd2d8293958ff9f596c12ce0a57d3e1611f9f7de71a622172f20f9285e2ac96de338919092", + "0fcef370ab7c0a692c8520a878fccc813449957485e1c1f9f4293290d67a35f97e497569b0df3d8f3762a03c86f5343ba29cd09ebadd6c966e8072d8363f19ea365185bebb2cd4bce829c731dcbd35d25148c881d63d2b6c8e3e7afc8c01a5de795f2b989f567928bbc2901b509c00985acf516164d805a9f4a877c9c101d2754221bdcec71ff11002803d0048bec62668da3c8acf8255f0efeaefedcf80bed88c80a9644a78b6c168ee067fc91d9363b7396c9a0ecef842032d5769729cfe8a8c54bc517fbedd2d76796419c2d88484270acc8ba15973918464af004235bbcfa1d8cd7f245738ebd342c7d44a52024414d23663b4126dcb332d29326c30b50866", + "6bfa3e127cc5e8fa03fecde7efc5bb7bcf746957d004225d813502b0140a2a5b5dd95984758af8b0a8657103f2e5280219d72511582613d9f601f7c2a1c8d6bc2e59ed520a186903c7be7824854b0a5c51f4574ac2d3096674dabd55edc4e822c1e4288c6e46e3a9e535aee3af7701dc87571ed82cc1134828772bb472e98121539445c5ffe46675d7b97babff875b9317ed8e778fe1fd03f19b368c5ab8a641c90874709a8cfc67ab1bd0a50bc3e54e1724071d2fd5fa63d57d", + "09276ecdb4a03f508ac0e117677cc795fd1463cb8a13390727ae01ba6627f0027bee90fae3ff858e532f5b2418945183be1a7f931872123769b018acf60e3ded58224b27759a542c2393d7cdce23f6473255e6d9ef3530c2733634b42fc76701eed160e2042e414369f91fa24f9a8dfa03087a10ccc6dc265193c386c65c887f73edcb73d967a1628e7a871f4a1f4e8c2cc608af709946a9947594abaee98df2db74d1f27c0b6a5db143321fdabac1faa5fa120bf93a16c988e4386ed3933d8024138c3d28b71e341d2fb9e0d07d5e76ea5a7455454ca6a6d740cb577a46217c0b1d50843deb02c07e4c89f7e7b6227218127028277efd08972e977374f4bd98c4" + }, + { /* i=6396 cDividendBits=2690 cDivisorBits=1075 */ + "01bb6285fc283684ed74f8ea0979bc56f77e279c5ae40ba6480231837d6115f344c175da7eb0f87558cb85672af9a9846902960a792f4a76a3347f386445aa8034109f9660db08f74a4888ddf52c7a641243af28b5e47645725fb8fba842419d1d5d8ee47a62b03b174d78dca0414acd9c0e514535851642cefd6f391eeab503cb47322258609b4b719bc1d5f5c6c1de21ef5e9ad62a0d15de702cbb4fce5f020dcbcb49532f4c675b2b39ff28c20b9ac32091f8a613bb357f16dd8b9d0b3e336807d659d436e4ddd8be2a7b4a367efc89f4b189019ff3cab6949596430c1963133e3252f3b52d4a63d08fab625a5831fc787415cb22f24ce95ddbc4ae5b461eef1e6ea9708cccadf9640104425564526e7e75a725c367c3cab473211eb49c18506990a7d881cea4ee60bc3c767b5648067a87cca7dab4f28d632a132c44b947651c46f4033ad5ff58828c86bdff61a4b6", + "03a2202e463bd03a5687bda48eb658eb6af9c7148762f29666cc656f67e0afc70270c45c2e0a4f506fff307949cec2cf4e0d9c135df719d1ad50c4fb2904eeaa417b3f18cdb83cef6ade4e5c5a33807859fc8036f022630a177df3c277d7933e3a901ea9c96d7bbe1062be3d8eaf335934a4e995f16909721484077c82a2d6ff1174b8f84fa5f3", + "7a08956e3ba83b682eeff642275647f21953ca5d92cff0d1c3d0fb26cc0928820ac2a77fa7e4fee72375744365a1e4b94b35bfab8471ef287b610a2188102426e977e9fb3ca61674ee42b8015fd1dd677dd766e60fdc747c427bf5775c3bbae584199c0eab991959e11e6552ef37bb300aab2887ae207ce93fa00032d6d24beb61feae0d26a2b42943d161bca18bab21be958ac2c4da4e737eea7c212a74efca6adb8f36af66ceea5b474dd3fc6f3ddda83dd53c98626e244716aca304b8ea0e5f4c18b7b563a9ca98d6", + "2b600157728f292f322b465884e359338e11ecdc67b224b5b206a67d1e595b24a396b26d3f84f75748aaec8e72581a666da3cd5f84fee137c7a76d66633d5e2a1845df9787f50d9bc43ab50ab5357aa4543c1ab76bf05e1aec75fd0d2d1ed69e3f5bd1502e90bcd52519108364eb4c4e0fef85589cca103af394ee9e199df6efa14fc586a394" + }, + { /* i=6397 cDividendBits=1580 cDivisorBits=653 */ + "0ed3a9b2b83223d41b94bae7f33152a1d924f3969341cf5637c63d5501bc0bf688e423621dbcc18d7b1d2bd90c65bad63597e660de23d492de3f8c3f141cab024d9bbfa41d75d61c1f1323b387f8c28cea367c399828ab61e775e7cf424670e61fd10e59caa6373bc53887c61dc732b3faa7371b63ef0465a83d5d376d7dbc2f803e517bd355860de8e2182a193904f793965ba865ebae979706bd4ef3c2a5c08082637bbeed62d9b8d99da2802a2da033f4fc07d01a7c7aba6b96bcdfa53b2443e29faf927b", + "1c57549fa9d31a79bfefe179d0b4d7c504054abf83d3becb2706e06256f9625597cfa86f18f1956cd7912658df63842cc21a4d3a7ca3c17cf0e3d07f774c77d33326b74c49f8aaddf20fee5f06cd1ab9e856", + "85ed7d6a7278a274ada283637c17ae8a07da6119d8950b57993bd7ba8436301ab0631bfb27ab13379c67a41e1491e2218a27115df91e07818c23c4cdf4966ed9e00a1f943390c45dfa1498be30871dbb11caf37427e57084a42816d67b466656406f92c41f6474a8645ff54200bc2f72e9b93889", + "1882fcda03320d421018c8cffc8fb9bc9ff9a1177e0e2910c23668f5e269046fd77180c388133ad789504772f8a29e6780398eb60de7113b3a9c586ce7e748017c4554d877faf528952ca1a7fd2b7b396c75" + }, + { /* i=6398 cDividendBits=134 cDivisorBits=106 */ + "cb11f335cead6596e37b9678fb1311c2", + "02ad9f8dd53a21002deae194dcb9", + "4bd2aa", + "7a098c72dd5fe254d666f5bce8" + }, + { /* i=6399 cDividendBits=3731 cDivisorBits=313 */ + "0796a9ea9cfcad1a445c5133e85aa84a6468c029e1ef25227ee98b69a11c7a4dc41ca79e286fa0ef5394079f85e7a3c34699585515abb87baae42d50b15818096a5a3583ddab2f889e713f332e315153abdae34f4d40275809de50d2ad6d3b773c9f79a2a9fb72973f1ad27a4ae8884e19ce163536d8d10bd194ed0f715829a3e7e833dd265ff29b73109f27624a240e7c9e9df07e25de8d3d55f7fedec952482d3b69fab252341a4b7e4e2faf060a34095e6828711acf74308bf024705febe74ff775fd17ca8365a4da19ff482c0c6aa60977afdf20658bd3d2b721f34bc3f3675eeeb3f3207cd84a8d26e1064ad4b23a7a1a8ab23bf14811b059c67809a8217ec36ba42282f48c3a9e6833a8c3fbc71d54492ee7903f84e797105dcf86f2b62469bd427112e923dc3574482c0ad87b31784bf1b3fbe074f50a7f6814c83e75e08ad670cf1df60d5d39b3b45c1faa9e76ed63dfbc755d7e458c1c1a4204154e67dffdabaddd137c66f34945aeeffe52629db03f34d70669114f6a24a1912338028d68524e052445d2a1f8cecd5e6af7e7c50d6ef4fcf176710f1933d5b9d13fef1098b7af7b7ed9d8b39536bc9785d3d4776ab8bdd0db6f629e90f61fd053cd5ca1f82ca09201e4a18ce6f89be8d6b9249528", + "e13cca4636155eefbfac2945c03f36047275f7049178f564c031824a7d40c6cd20027434e5f2ae", + "089ffd46236b4d759b112809a7639be7d09f093e9f3a21d9a7a21d3a0388be1577af6c46a6540bf86f2385cd0b8017deec2a0fcf6447c045b7528636c7fcd601410562155586ac94b843fca95b09710d5c9bb6e9265e8695160c29e24a56051220340b1bcb9ddae23742ade0155d374099cdf5413830e7dfc17e5c0ae5f7212c1edeeb3e5f64475efc52f034ce550784e0e80aa5c61eb519d2156aca19a01bf135ec7922d75016454ca2cb26d470c1e9691539c6895385850da920e9cf132bf3b955e18044a0fa6802351dbe20900c8f6274300304bd2125652f328ba80ffaa9d7d20008a3eb9487041295d0a40a51d20e9f1a580822511c5f1d59989778e7e10d1d191c7a1ba8f6b22ba4d593fb5ec24c0809155ed8144fd5a254b1c6535bb93a59bbc51aaf36152a65abe0c57697abd4174c1de9dabb246234a9363abfe79de05221635672f3c2e24eee0d14b5277c31cb8bb36f9e7d2719a3025da7726c65d770e9ca7e12f011dda562b53069b4ba463d826a0d09745eda87c094506f0f4c8d056aafa1a7c60b3bc5b19d931b1ad3c4a479074782d17cd46591f72824b12733f538bd60cbd826df3b7d59", + "dc5a8f039a3fa38a420f741980f42ed3dfe59c4ff1030e70b281df7bc5fb6cad8cfb638d9a40aa" + }, + { /* i=6400 cDividendBits=2654 cDivisorBits=674 */ + "1bf31f910b8b803e8293f34ac11e878b65c43a91457fad970ced4c65a6e129da98aeb2a8d295e4480fc74917d3c353023c7bc999a16c08ebdce0ec0866b83c1f17ce23835b7a68621fb2acb27aa27faefd05c70daed5ae0a516dcfca24a8c1e49d290d0541b3d69e095b4036810aace785f007bd627edc5f417c16a21504e552186bb5d988ed1f778a8a1d34c033da6136be1b2247630ccd19f6fc80c54dd7644cfdddb00ebc51e8e058a98535023a906d2414cfb410c0144e1fe21e3d0a6183c918fde334254747c788a5d206bcd9d0a96133467ae955f6e25eaaede9a986ecf5ea06b2b29d1857399e9d4584399e24814d38af70798958bc3a9a798ddfd17f2227f084b3ae750c33dbcf7b57a667c4eaad71f155b8cb4396d40533ad7cdc978e9252f5a3efcd0fbb2680365b4d9096a2e0546b188aa7cfe6a2b85a432847db022074b978dd36a2beb08a98", + "023a2f35f86c6c3f49c4456385ee6d9cdba62c94903125e8a7b16f352f744fb30fe57d30b957d9d59f288bf24acddd0a62d19e5a6822c94f08c843f4f5663b12c0da35c02d60161f0198655d8638dcb99889651882", + "0c8c7d5cdd069761007d1927c49a928e73beddcc74e4eb28085a6bb860f3887644950cab5cd4e4f0bd11dd4b186b7ab85747d9b00d3c8013f2e620a8c1748fbab54a5b32aebe75f04fe92195acf623b9b6d87ae50095905fdebaaf37dd41c4fb5a8c6c854b244b4c9e1a3a2e12412438f6b71f59aff414d625938e67f7659857733ddb9fe755d9418490c2286eea272cc9219efdc4f562bdbabb26b72bba1a8e468e0bdc764e720604642387fd3f627251859aea97e1ede9f8108039ed7a54729926ba9b25e4c671807ede95f830048be575af9fa6a593440e01b5cde83b2433db8959fb9beb01402ff05912b7f2d5fd72e11d097d0c4164", + "6c6fb129875b716650a410ec5a6cfa5279290e53a74d5cabe6ad3f19203236b340bc77209b8c48cdf1a36bc7507a61e061a771fbe5b7506af26f0223296f92f402bebf71163bf605c5806fb752b197e3c7e1f5d0" + }, + { /* i=6401 cDividendBits=3531 cDivisorBits=3483 */ + "05c35462ff19c0849144de37bbedc2d02a9b11727b8b43c5d3a4e732e419df6cc8e0201b16087f756f50fa85e2220faf8a75be94e736fc41b1b691a5aa1cd72aa5d3b09a34f38de9fb0a64d92ebdfe6ff25ffad82d1657b245579de26e3d0d1cfa1b155fce09396c2f032903f1f5a59be4f3bd7122bc5deb7168dca568c38c5bb7f998484d34310807abfcef8db37d9655d659fce46ed4f80d22457255a5cc914fade72a16630cf70541ec870d338749c9cdb9443802f486d83a96ae95eece5e5f12a43b73da7f6b0bbd04ef029b34afd18c7e31f9563ad5cbc9d54de9924a0231b9867a0ec29462b1f3a20628b79b71e0345002000b4c91c32455c9763d1ab3d849b0b3252a7fa9ec04a03c2a48fdddc75d0f9d520a1597aa85c1592f3a5c623b40b735e780e4a50653de3a5a5daea4bcf9c0dc7b2307e352cf9ae1f4dc419ab6d16e9df6668f62f92f80da5cb9d9332b53ed512c828453b4443793ab96a1732d8e9b9305e6f39be40dbbcc626239b6c04d83f361be8fdf9e6c2955c02c7f398390d7f71e1660c4687561a783ad29efc7d0933e65451c70616fca0ee57b7987b9acb49a68b7f29846ec5adac801ec1cb49a992f1967088ed655", + "07bcac485e5f4853fdc73ae29d8a1bc6f6c02d4e90ae7bed351750368a84f85e57bfcb900d7d307aba493408e64bedc423b7bb1d5308388f8d58da9c956869c85f1af75b9e671f3378ba839800b5a9982f378c33921b63c0f6de85f0d4af23e991d6cb3947c01461876d4b331e58eeb558ad103658cdda9f79f9dcd888a2848f81effa435d40b330fb672e824024985848b29825fd0e4574e6ce49b70286e98c1f04d4b81d35c73181bf7cb8fb94481709a343336cf87acbb971bb5cab116ca93cd402a57c19c4c8efb67942fbf1e1ed3fc7cc45e2a2838592d2bee971cecf686e72022abbc2bf73c0747cc0e28554b718bac08eaf3263c4ad51df0cccc52da05e8368f62a42bb7da09dfbf14c95345cb010dcc80fd61bf95fa31e0313a01e30c2ff018f46ef9bbc0884544672bd2c2bff8f285388e8c810f659eb80a5f3513af78ae45f700d047c8a62bedd121e2edcc68ea846ba8b47f7d01442780dbd47e983bd8ea1569c622b7f3e75efce7ff3f9e28d6eae9665c0b9d20beb5cd7bbfc9752708b058dc05f50b0781d0dfe70840297a3c63f9084091239d4665c2f78558d4817e476866960b06415ed3205a6978c55c2658c", + "beaf543520f8", + "07710a23a750cf6f43d03486d8074736a3f2241ad8ad3b6ea4d626149aba84aef867211947fdd0b7f87c51b9ca81b1a231f6aaa0b885da52896f139339850e02f546bd1bbe9c8e8f4a8bd3b308a1bd8f80fb5c95c5673ef1f3c6b743f758b5f99e1af3eaba3cc3c7b2d46b1e3c78a7c326de33c2af24c4665b8df772732339e0a280c87df42c788eabb80bc4e25a6b2389bb97bdb846beac403b95b378e8416e1064549c9b3da648597ab8e63a31d49b8391142783c9980edee542d1c7e13e4f430dfebc9b6125a35730eb6fad652e28b434e1ad20d77d7f4c005b1e19cc9ae7f8fdb1fac318b77faeb9761d13a81e2a271068c3e166812d4403dbb97708c2b497a36ad741746c57386225ed182d9dca52eb09c697a4ca67d8ac57b4e0c41cfe7418481838e8e6c77d949cfa6c52bdfb7254bc7fbfc40ba25d5a0062c8e0213d8988d6b6a554d9239a8e16fcd8f2bc43649d672499e3b53d7e635b5962357399e48fea2b580b6784eb838bab21993ec7e0ef634470729fa05645933a85c95a452a7486200618e5a425ab1f86a15b5b230d6e691a4119c5c9b38e635d9788f625d673b8e5624ae0dc32a715a3f967e176b18ef6b5" + }, + { /* i=6402 cDividendBits=3302 cDivisorBits=2454 */ + "31f19646b635c502f7fd2993381c84ba46699f449d0a3f9ec9fa26db677ca011850e9538b130a3374cba0506e168ff11fccdd3471740d42fe8b0ac1ae4b1850afb34c5dad63f4fcdcd60f2f9e0108f062c3dda6f73c984aaa53e44e227b40c180defdcb828392d993a99e2ae4a5e30a7e76e706adfc442c78c77897692fc664eedfd0f40bd5256f3bc9da86a7344c47dfc5ea8222a76e5017ba8e09195e28e6a1e8ef0f0ce36624509f3ed0ec586694052b020d1bff3a8fad58099409f0e2842518a8cf957188dfa94b4fc3afa9c0f8dbdf56d6334f52ea597418967eec96b4aeb6b03b460af14031c4b88e60453a63b36eca2dcb25b18b1d02be25a155e05dc47fc3cca2638d2b8566f2a5fd9dbd362221b664590fffc733dac96c006396ca1911d9d57f25e5d93dc55de90949ed5695250430df2d7fdfc25ef53be4bb345e0bdbd10905fbadec063895398c177b752c5cb4f1738533a7b8882b170d1a78d469bba5a2d7b3cf9f004edb13c2119500087ac9df6156069b8a4c3f17b4733f304f4e8d83fb7e0a69c25414f5811988f87477c4fb758ea254e6b948162c4", + "2e1014106cf0ba370dadaa5091d2d8258354d766eb04acc6443e2e9ddcfa651c899687346b2f888fc52684e57cdfff8107c2aed40f53b10715ec5263167d3e4ae7889c09a480e73bf9f48c9b36148fd65513525440600e5271954e474418f0f4b4f5915bba211f51221733354c9e8c920b3f5d7bcddb6ac61fe618288efab1e7611f3718bbc29124dfcfc1e08250dd70b44f9d9cb6b90f4c6296c4a4a5ba82645cc3f1eccd7e7f20ed252e1ceb1a730ec007a49c6b2214d45865d4db42253058d5bde7261dcf4d3d9dcca86b226f40f7b7d8fc61c9a1067b00b91f2bfe5ccccbe73ecc4bcc2d54e2fd63d31a32714c707054f085b74adb865e90563751838a2f40cb5c8aabf0f4d424d2bd6598ea51b1315621e9a0d5c0bb77cb1b4f09c219d1e6cab3f1cec57a8699d8c10e1e1a58898eea38", + "0115918d7e430dac61cddb6a1da2c641e5d9df0ce353b999cae0292e8c6234f7041719c8476361060c14fbc98856c64cc02a92e33b5c91a33dbda661582d25338fd35f19b78377afe23618a6b77dc7a046df3d0e16a789a4ba50706174f4b36873fd60b324770586b00032", + "0521b2c53d8160b3d02b1303b7e6c5198fae7e3b3bd161626c833501e50067586c043d60fafd3f199c9506da7622c294fc59c10b6bb643747d866f2d54a79a7170faf2f139a616b09eaeabc984715389c87246e9e6e150f7737af9cb0b7f2b5d0cb0a04e7f54705683a316c097e23f8614d4f870a02d989dff72f0a482993b6df96e18e487ef543b731d1818ba4bdbcdf32dd517484ed11ce7ba5b3cc6a124a71f9f2182beb8e0a6762ad29fb31d230665f773bf6294ad930b4930f058fb7ba0ae9a10b685d6c4c163db404d16d328cb69c5130d9acb24f040d2508790fd28dc42b34373f757dd4a74e73d89cf78df0a2f26b2e10c80328a6d4b4f883c83c1c72284ca250be29e6dce2f0ff98d42dc3884d09373a3fb8a2c0c0a44a9a65a7a2b990ea6422d817a7474cc9d7cda2d2e6017a3d4" + }, + { /* i=6403 cDividendBits=2113 cDivisorBits=2014 */ + "040e9c0e50fc40dda6553d6a3d35c8632ba82c7a33937f4f57956089978a295febae19e3d6beb154949f14a1e50a7a399e6800549ea84d84b095e321d1f73faa07028a8b8bc443f03a485020d493aa56062b440b272685ef8d250c5bd52ecacf2c149313b98ba0b32f7679a0c676063f38751d57d337331f8c191bd861523a292c356c75c303c1b8c9a7d26c22bb2fbff11013c149c929f8f4fee73ed493b92ce5999f9944331d259008253215cba4e565ed482efe12a263d5ecc4bf298ad028a751479eb65af9345f6cf43388cd1c8bc9a690427f64c6576a17d0b40b16a49ab09b50d72a90409dc1f80a4996c2cecba9a8e6702e1bac1ebd0203114da896e8a194bc8b5bef393c", + "12555d321c5a9c230a69ee860679a887a31e0556c7f40a835af0d4759b4d63e9558276c4f0478a540e33b132128d5b24483c23b18538352491109c3b7af9f79ebe98d3bd777191e878efd732ef47fddc4b46ee08a8be3a084392e24662354d7f16fb7d4c4d531b874a43459a0fd78465fa39bee2e29d876ab3719f860f850b016f3af0b68c8ad273a64afa728c870be8ea3842a95413621e9cb872e85bda9e73afdedf1078f1fc065058b012f481e6db9077c2ccc1a9109c553528ad597ab865377702a826d79f930dcbf68a565332be362e772104adc6331bb04b58fa6947c683a9d11a0a7e2a0213986fb1849632a57dbd27a513a6eedd4569c240", + "38a6abf9fb72ebcc72b9a679", + "068ef958e5aed2b68156e9db262aabbfe0f5c5c9087daad54e5ffcf06bafe236ff87fe91fdc9ed8aecffaf5bf150a67d0cb60cf45014a11a3bba1a6ba536430564fee8a1062893c5a10de0d3ff8606d663faa287d0087109175af0baa787034a7eed416722ecb8016d8131ab8fabe8b05faeeba35902bbd6e806fd407b12cb3846af72152a55fd64ca3c5ae5996f11ca9638be146defb28a0727c5c6105e0d3c43a01f2ca1c7788509cd808499f6e424636cb29660ca21fa1e27880d3a13e6a46e0a13551bbecff37ccd682cb5fe80b6e154fed1430595db1e435c1c3c036b1b7a30b610f1c5abdb7e57418e2018d52fb87e834a4be28e0518bce8fc" + }, + { /* i=6404 cDividendBits=570 cDivisorBits=354 */ + "e352e431223318799169cbe3a828f53c51608c44e9cf059f24906235e9c28751fe8020c80ccb99069bef8f2f66e970706d82593b57576bff72f0470eaa6b124156b9f186ef43db", + "0338c1a43dbd247b3d3c9debf2ca6cb5a82fd6e146292b972ee6d543793095f4d7c43356df5bfa7c612442b1ce", + "468f626e4ed05af9106b66070d8971e8a812ec2b54fbce4c642a7d", + "03185f8fef6c5e6841a16631069a0b3b7ee64de8377c1e844c27b3c97e4ff97df45d233bc54f5209f544baa645" + }, + { /* i=6405 cDividendBits=3812 cDivisorBits=1464 */ + "0eac4c07a9ab9d4e732bc71e35c268216f481b8a53bade06b5fa2f96bb45d50000f09c8ba2e3dca1a714e1f233e48de3fe5f8d80bfea4d30fa8afbb28e67d1e3fc3edb5e43169f1057c8dcd2534727465943ab5afa04df789d0a158988ec55627dc494e5bb788ffb8076f5653f01447f436f47e1cb7798f4d4563be23c13c10fbfcb570cf3646c169a7e6f34c9a1d7d54be4d2942713f4b0347938d116bb754a882874f4fff7e490d5271a22566bcddc10a831b46d4b9eaa2ef16975a67e638d763cc2e9f8c47492a2b0c015228f3ebbe995145f9b235a26323bf6b36ec8c37efe6be80b2127bd4be67be5646fc5e3c4ba4694c0f24d217f407423fc93a9214cdecf0ab3596acc35c795f0aa585dbf3ac4d9a9626c89ad39f1c63cd380bbe5bd6ee3f545199f7974b1b4b4eab16602186ea9e21225c6c55da18b1c63803b78e30816267e4bdc7477241c87c2c544228f6ca0137a6e2028eb778db79e2b57d3a4b10ee43f9e59c31d26675701823c756a505a4db3a49552f398d3f5ff934d12dca00ab9510dbdce22a8cd8ef14d070db0bea9e49bcdc822b1545256b2c19c226ae3f20bc736ead69cad3b33ec36635a94b674bf5386f5532c7c2c6843c748c50b6df876138ab28c728cb59203074e51397addebe899bd270649eaa748de", + "f58c8e5f644465b309a308975280dafa66bbc96567cb0f9e3bcec0d94291a9d0497962f5081577b64264d5a060b23f9959f8c96f276468fd8a661ec2e1e076c5cec9e947a305dfb88c50ad016601917b08eaf96b712f94c9242068945bf5294e259cf460ff559cfbd58e8d11ac93b755e4fe76170ef41283d77c2d0ec539f0b6f81c9708466273270f224be73a76678e794ff71a71b651403bd1eba5a2a5a64bc77a4506cc64c7596fb03ce20dc341cfd8f33077e3bb6b", + "0f4c2bbefea35c6b700c53e7dc89a202e7d2f17e9cd107798029df57d30972e3bb4fb2ae45e52acfc80b30398242faba58d37f98fa132d85c042da2e6ae6298417c947f2e8366d7a25cf3c3037eebf8f103987b2509030dc66e3bc5e80b4652649797f662527fbaad30db21aa9f7a3879a1678260783e9897252c7b91a54a8ea90483273a7e2a95af64352cf5f98aa04d40b3f2ab471b28a82a0555bde494a89377453a925cb88e387b451d21e50aa813c4e0594fcd55869ca06152e0e64680e3177f2bd5a392d973c0231409701bb781902c3e139d21534745487a722965641ba72f4f27082f97d29213ba4148e31a92d7ed1f1df3eedca767b4a3a2c6e13ed87446507e7e7bba424545669f1b3b161192bf622dc895f423a84b88ffdb0405882073fca46e3", + "7912c2ea1b7137f1017103802396335dd886e9af3021eb76762afd3fb21e84a229db93f57ce086c1b71e3d2cfa511e317d34073cafbcc1b895475eb76431aa8adaf81eadd57a3609e6e88cb0509e0b2a3acc844b108dc0d3ca93a675ad78fcaa3b0eadb415e82c62d7ade9bbe2ec2cce260a4547fe1c72b6a33898fc1a2ad10d5e8b93f66aa16648ddfb733b9f727dade65e9952d988f408be7aa6df9c0c159abc2b4e46cbd6fd40187a27bda16078325a06c91f0ad6fd" + }, + { /* i=6406 cDividendBits=2326 cDivisorBits=1641 */ + "268b6f0c25bda563bcaf059b86dfe7a8b11e7ef2625d2778ffcf217cd479cf650d88b9f7aa1981f412e035a7cb88e57cc9fba75be9fb4b7ca64a3d211171f4fb4b0d27f1e640a46f1ac04377f17ad467b75002d0c6f642c659c10ca756831e841a619b3674315008b73c99e0800c239b987bd620fca89e8f69f10dfb7d95371980ddf5a31494e63728f860a6c77ce2a02f4dec0b7f8c7893d8e318e2a9c8c7db24bda891c21bde85d3da2dad1edf7c761e513ded69deb22c608a6a69450b973d229d8018d670140d35fb231b15426da9ab206eb450a1650d46c278d14443949c3feca1277ec4b5218405981229ae1326807f325c734e070c9f2c69e0820360abc1673734bea4f22dd78fb4acaf881028d5e60239098daaf7e465696720e79ae9b0ff28", + "01da6a6378434cd24202ecc5cba031d0d5aaa1ea65db3075b74cf8093d8135e4d542b6db5adb608df9d8c54a996b198392883e76de131f8ec10aaa09ae6fdac5f8de1406e0e7682707be5dbbf3c770ddf1a8a36f509413a810d6939e2ca949f3eabacb3dbb75bdaabd37f87bec3ebd9192ede492af9b871270c26d5b8cc07c4c25b39cbbeedf7e8659900c74856ee5abfef4ff08b99afa7bbf4c477b62ec8a84fb61bbb5e7f1dde58ed8281475d2f52ce5a63334cc3538513f631adc135cab36d707c1b608a8dc886decfa5b268e", + "14cc941f4986f5a4bd229319fc95439bdd986932526c6a47e7c5e3d954c817f555a708e5d2e56b4e703a2c362008635c9774bbfac52f0423a01ced64e58e7644f1ec0c14f7d912e3cbd086d66d1a6631c4e3ec16aad7", + "01775e05e36ae577a6963db6ac2f2dfc55028b03282a543eb97e1309b9de58c8999b1df3d98a988780d1e3e78fae89d80294c5b942d10da0808c69303bf08b5880ae8f50d5ce8b7a7c7855532c2ee48f292803b3698ff46ee1c5a70b21fcd16a7228406d3e978b835ac9203aab6fa427b88e5bf3b9062e26c3034bc8db88d6323bc27712d86316f3290030e291eb0f03db272bc5af42e081aef89a2bc7159fc335dac7f414be082e767d8b51b05163cb3e84469a23a544243cca2b57bf74055bd4fbb9d2be0af0ddc409e75551e6" + }, + { /* i=6407 cDividendBits=2131 cDivisorBits=1237 */ + "0773220f1f9ff4d1ee283bed2e5bcc90039b7dcbae5abf260b9f65b39f53a25e5878623e2c8858b1e9ee3ce55885db30dbb42b79db749089b128a31056d5422d768ea70926bb39b00156c9cbd669c9af930f058270ee50a16d542335d31abe5102b29e54ee3c28f965aa8a41071aca86e6239bc94a61cf0647706b2bb17136496bad0769c43dc486b48295251f3798d736f0d4f3ddb6e4add8bd126fcdc1693cdf949c3fd62a14d99c6bb86e7033cb9fdf0eab0f16d87e4f4c384a5952601763dba808d401299cfa5d70cb3dd6c2648816897fd1d4e4002b9069fff238d149ea2f5a0038b802328ebb333638a52c260bc26d37025082b943a76c631a6a98a10e76e6a1d52020b5f878a0c5", + "1fceaab612c9be7509933bbe9f28a3abc9489c12351b9632f9cc77b93aab32a00858fc300d373628e213acf7a6ac7de8215a365babb187194106691ab56c3d21d7d4b6857e607d58485d8b17a7eabe3979b9792092222ad92839fe481942aead93e99a2b89d8d0d4031b8849b1c21f4f6b1d289ce213f325a5b58d4a94da9a106c15111d47637b9ca938bcda951c137fc935851a48d6bdc8d0e0a1", + "3bf58033ed91b9ccf91537792fa36e1ea05ff34b3b348286bb809fc2b1e0738623b0ab191153e822b6d678409726332fa4278b599275f1be0f05f255ba9288a8d636f7ecd0ad97c98269f22071b0e9ccae483d7509c71e390479c3dd1fd8ee28abf278e8ace2836d512b6bbac118757b", + "045eb7655c00c62c8eea8acea65450bf846c8565d8f0b9d1489ae4d7267b786781beded72f9de052ac12305e9e1a260ae8d3bbc54f6f4be062a9e1e9c7e6c66ff4ee6d062310733dff85236c782231981dd19f60f3707b2b60bd2219287948e76072a85f91ae0e28ca575d4348b8b49a91d72ad532b6ec36f6d129c4649463b8084560ed924b498f6384cf366354f9ceecc768d21a69d6955b1e6a" + }, + { /* i=6408 cDividendBits=2347 cDivisorBits=586 */ + "055efd4d1a7e338374c6ba6bb3f04663a0574ecf90a4126ca4463759d4baf0fc06db85704569885189f5d8bb4828a028ae3a2c718f4c5ab6fb22cdacdb2ce53b90a079c51390ac197fdb4313815ddbb33b35117d923361fe7e4644723c3dfe65eaf7738f337ac35bc6cf33bdf9cad68e5f180526859058618df4abb5d8009718862997ebfdeaaa4274a789e5ea3399924b473098ba680b861286257a7b3ff6feb3654ee10a76d97f3bdde13c0461af55c174ee31c1279505af7f770b297022ab685952bf8afdee89ffc218199368bda6993f13f9b4188ff453f0ec5771cca018d404a6b24ab26562662a4b2f09f8e2fb72029cae06d745d370ceb295f8282a43631802204056645fa18a6ccf15723b3b2972456f8f1e269f6725200abb0bc74b4f025fe316f4", + "03a6c1d6b5cd74cafd9b89ad2e8fe49f37d73d40c685ffed6f4c01ded39a48af55c4c0698e0311d074cf8827d7fdf023b6a1af54b5c7cfaca18d928804198e56356c05abba6165f10b50", + "017890c448ed846159669c4719f74f1a37563a518f7ac35ada7359adc713fdca892fabbe6d142eba1cf61b608db1cf7001a64955aecf866c8d30a14ae7ad64e463e0d5b36135ee9c51e1b81b94459620cb61c0d7c66b7e3984035767879968ba8d81879aca09fadef6f9134966070dec000e6b2e4e3f6f53e90b23ad7589702241a1fa9290ff58c4f7c82ce8daf116690bfa4185f53c69defa8e5a03a4024394cf90be4ee8484618708abaf1d65fb5fbe25fc25ca2a0dbf6b2e64dd4cf63d76d0c76c6a951116535f9cc335a6e95a82303f70d2fba92d1bdaf8bc6cb92", + "034fa20868625c3a8f39cc5ec03a060ff51c270c50f69428def3be3b6403a0abb196717ca80673343b98654a44c6d2f92fccdb051adb5622a10e49c9f2eb29f70eb6d370425ce8923354" + }, + { /* i=6409 cDividendBits=238 cDivisorBits=81 */ + "1b487c2a96eba4893389a5426cd1cf37b397e8b73a24303897e912d2ce42", + "01674cd3040ac2919bd9f4", + "13706b82ffe36000da14875a7cdcdf70ee579d4a", + "aae5363ae1067d2f29ba" + }, + { /* i=6410 cDividendBits=3334 cDivisorBits=1449 */ + "029a5b291892e4c7f24a437d48750ab0adefa405b50783161151b33cfa1490e8cd3e5b8315df3f942b5c3f3c368d2e32c8e08f8b5454fddb3fe6bd6f18237db71b7c322eae6499f709be46084438cd3d702a5746efe6b02647c0ddc7890a8eb99c994ca64bd14161d1e4bed32fff54ebc0c0788687381687a7d55ef705c50db23f08b489fff07aa32a376f019e46177dc8862c2773d8cbd495e050441e619efe50916a7c5b3163633f3794c31fffd9e5a3ad601deada1f2e6743e2bb6557925bb1812fa8472c38285e9a21e2e7a1175a34874df259975920fe3cba683ef743cda45e88eba81ebf2d3e4b094ff83ae8eed10a35084bceef061948be5670e8ec1057f6b882a1fdaad71c81587afe73f5e8aeef06ab087a4764e03df431161f879e3c315f34789ab3ee04d30b1ed8637ab32f74a8a2a650dfd400386cce1538ede78e3a789c64c293a1a2eac0cc9094722e5f0843e4c5bd8119a4e4e9c2baa86868c1e4e828166b4774145f3ea8a101ef483d1f5d5d8d29cfa3d87194d376b0133c6bf9b8b6676ece01de7ca09bc72fa7469d4dc5427d98c69ea08d47aadced6fc608", + "01e923c636872419b86ca97f5d510fa9e54edc48685fc73a6f75da249a4d60b133bb16bddb9d15defc9228824beb6f1f72f464a1fb227ca5d223d90252de18cb0fcc8305c160adc802f23be5d60607f1f44f794fb953a0d95ccc9b02cb7906c4c1f72226a3d5390d6014747263e19158700353414ccbef8d8fc4b76222338edda786bcda352d28e3c95f32bd88ac96724c3868f680076527bc93947e01482f74b7f3e0b514cb3be3579041f3c0954238eb4119499ce0", + "015cbfd4774bbf1578d6e0dab1c89a3814757f7b30e92a40b2afcdad49787760942b6e279c38b859e5723d8c1859b239e2ec82990c13305dd0debaacde493416ad1c520a109a3ef6877128bd981fa4ae62fa5601bc179b69042f1f799bb7782597546e2539894424a2e989e4fd3ff84176a580234aba2a10da37b7fe033b9cfdf442d413c26a8c9772b12c778784ed27f814e094e93a5e10962326a8286cc82023c375a4269f7d3b3a59df36eaf690a3741e07a6176f72d6c3013f0d69176d7bc1882491a26cc0dd8d6dcd52b4f4011456b8e8fdbc0f85eddcaa103350871f779c502dfca790ccb4cae2e78f", + "0112d120c01da303038b24c9074ac22b89c0d160ec723d001d0c41ee7c3d5768c172794811c9885298983ccf65b9b69abe815fd2348b6c71a174583fcadaa60a2d5beade93c278a834846f843c2ddba36a2ba4ea2caeb829264c42e6a2db32a314c754ac132ed1189e6111ac036d717f2d7bb361504c02482e5c2e8e313c63de073ef3501f6cdc902cd37daafcc563bf45e215f323f2bfd83d6c0cf29bac6e4a5e369e145d067ee30ecbf22da77357034d69230304e8" + }, + { /* i=6411 cDividendBits=2704 cDivisorBits=995 */ + "029f78273cf2ea8cf54e09b36724a64fd66d0873fdb506f9cf1eb7bf613b068d37531c9d01ad45672c8ab80177ae40c1d8aefd697c751b598ee81201a7bf1594042cb1f8a8077b8238f810b2f97e4be4561067213227a65b7750411cb63a3d4b5b6359899af8f2ff2dc8c6d62ed2c2497600ecbb5d718fc3bee417df752d7c72228109257336eeb9d152bfe1ff0b77e8ca1cf51a0aee928378851dc4e508dcf0491896099803c6ad0d5c8c4919412a247f5bb0fb269e9537e91f7eddf76ac0f674a9cec00f5debf055132634873abcc846846fbb469ebb65830ebf9ee89a10456ceef7a19b5ce1fd1bf161fd10df9425c79d42fcccd4f2665ca9f477c69b5f820e81302fb2b55b506ce442d08b9fa7bfa0cbd231a894de98876b0a3036ffbea414dc742a7e1ced90dc615015e7d75efa5a0c0074d07c15fea99465f2a9e95680947f29cb8a723cf8518367ba6d66d9618bfd", + "01e1ebf80f21262240213944acdbe5c0d416abae43d72d17eabe18038ac62e327cbfa12088d280aa350244f6c42af5d2e01f9c552b83cf71963577e3802a69fd292749a0236204932b8d9ddbf059096801e1b08561b80cbb7275ccb2cd5c5b83b3ceee06fdc24368f5b36ce17689b59ce6e421460265a30b620f9d6308", + "0164b05d852507928fef0bcd9cd9348f0003f400e8a590e7a24d87db32cc47ec1f5807b4ba966e1b7c9c1d4f7e16ff90f06f3d4190a535b0a9f62e57e79151bf5107509d90fddef49b9b816a0781171b014c9da2aae0ff1332a8768e8c61b0c6360055876ed80043277ba6e98d466078c55661f587a944da729d600433185170ad8127383c836588def4c77d33bb93b62058b6163453568cc143e53497693f97073a9f25f47e44bf9ab5da1ee7eb340fff49da5a1af9fb161496b7b3e5f21c5dd861120564a109e33b013878fb94e05963b56875abf5", + "016ed99968b33111b719faf67589a35755e6d0c31058815ba994c0e395fd12daee182a841ba404f32188f33fc11d2f84675b73ebb9dbe7f1aacb4d80eb5d02573d0dcb1e366589869225081442065d222f81a9636d0e293360116ac8e8586a126dac802abbda3bb9c05acab2051e473e5487b4d1d2da91d84e43f36d55" + }, + { /* i=6412 cDividendBits=3211 cDivisorBits=1106 */ + "068aadd1500005f394c8d2b8ef71019bf8570856775c573a17cbdfbd83c0e6ecd3a78ad3663a349437dbaa21775443b3aa90afc39e1ae5e45395f8c487157c01f21d511136b5023372da294e2c471ae7d55b770db65ddac858f19d4c31d4ef876c3d7f8975b2a545e44012c6de050da9c10c44bd7818b5a9297a446be1ab3cb86c93d58493bfe3fb6d9b68b8d58db325dadd8a6e2b145087572721faf2630d3b50f4e052e508295e7760a800bcc4698918da4673ec16e4f24eb8ddfdcc12cd7e92053e6b7938db9328ac061eda1f08c8d3ebec915e9f9e36142b0ee0c50d925e57bcc0c0ace62382b584c011e2af314cf461f635803d20d3e98ad63e5a96bed5d0c886efb94482f5c325d9a57c9266db18a9a3ee1f98d3806500db7915718fd77e3dcdcbf53a775240caa948bc86905c823b02b35eb94914deb6d678747eab841f025f78e557eac6754109321a0a029c9312123585fc8834eb00b827268c13ee550230374d621d6b8aba6795c50dd0423842621776015df73b35d56c067db52009dfbef88fdf4d6b4f00bd9f2fea2d675626", + "aa92904113136cfdd8fdc48da0954fad27f5d97366e67f7bb8e05e97b38457f27f04baafd2416145368bf8e68ae4a6602c4af09748405b175952fc8837f33664b9987be5c6027da2188c6f5ddd8f0d8eeed7af8b1eb138f7b58a37f127cdfbd8794653c3df7173243cc84d2b53b04dd1a672acda666f5003f6a8a2c8d502712b3f6fecad8db303fbab05", + "09d167b186d0cf1dda68ca51a2f923e0cdbd70c00bf58dffccfa65203b908321d79bc6b028c9e045e633e5ccb25a855e34909aeabde0ecd60f839245800d4ff3899e861e0696dddfc5773a303e713f3145c0a37ae320a90d1361851872ca1d49207affe75916fed0b4cce7569f5678bd3bbae3bd2b39bc55aaf9e0fa400259da8daf13fb1e71dad251dd1eb0c67c00cd56f80395c5018f1362e208a8a6bb14029a7fe18d577a68a4f93686f0c3177c119911b5c71813abb498bf5bb4a55af2afce5889f2534b61a5c36d4e1730ad99d70a761567dc5c04c9085027bc0847a1f3f3be10d486558d73b99934e6e25640f4159327be6d07fea8a89879dfbbfadb5e3b042822eba44090", + "83296254310942f55b87f7c82ce60011c9a06d6929a9a7006353d77f4159bcc7cebd67d522c27223bf41f856bb601a0441877375f52b2922ce71d185abaff55cadfc99250e0a9d237685b3b3919dfe86827361ed7b19f467b2296112cd7fb4f69ca79b6a5da1d98f39d2f1cc11a803b8196431bf2f52ce51607feea516dd01c4c7097002a857dee1e356" + }, + { /* i=6413 cDividendBits=2787 cDivisorBits=1316 */ + "023ccc9badd7afdd726c0cc8c1d444de5f0b5aeacdd0eda44c02d539655ba272556c76e9dfb2553d2a7e3b38962d5d1e1e7ba72426ad102c4fbeb6f0c653762528d7f952458e6518a4849a9c024824822a189ca5894ff100e6e73a5e5dfa18f07f814acf04109957f988e43bea3e94ee77abeeb7ce39ad0dc5c5859a5f98765779edbec920ff2576343bf9ee2fb18e8042187ca411a149ef232fda20e573d4ea83ab025a7f1389e32a78029e134971397a1ad3636f34c8a2cd7ca19b5f26605e1ea308450cbb8424baaf2a8f1751779205b10da7b357e5d84becacaac608a87b9eb8ca1ca2648fb3cc59d8d193d8fad03d9ca1cb081d15fe516d0a7f5b28b78502d21540e362a11c338f92f1f9d7360751a25122c98381181e22dedc319ed3a8b820604b509a21154c9f0a6adc2988a803d6d4159e34619cfaa64ccc83cb5c7bcd2edc32cc829b2af3716aafea6f5e5f9c84d6740938a041917329e483", + "0c6c9e3c3c29a74831ba9704ffd064061c1ca18b9dbe5dcda0280a09b841bcd06125ed5b442ae0c63620b238356f6c7a59e12153b35778bc0f38d067a43515f310c9a8b03966147e2617147182df0f3b0f651d0f6f37daf4aaf3e4ceeff7734f95e680fe9c43c61bd085e2621d0b80c44d992088e3d3713c2810cc1cb1d3a22c96a4439476e45e83e7ff75c7de020c1e4a1f1902eae22455232af06f4d2aa290d959b757ea", + "2e1a69fc168195e39cb40d4773aa4cc9f678ca097efa454c26859813663127cfcf6500a837c27d62a4baba8ea3a7ff6cfd266382bfe2abb1d5121e66a96de965e8f634fcfc8ec431ca6d0a39e489acf4b75b50922d0de71d039898f8c5fe4389c634efa0d559c5ff45de7f2c80ab671ac36ea381c869bcd2d8cac67d97a8af829e280754c6a5b847e63a7d99eb61696f2eba6f68832781f31c824b2572dd0f22418fe3a0d2d5b3daf2a2dad4eeec2ce118687571b1e283b4", + "05c780e195d13f36be781569b3cf49cfed919aeb0b055b6b3682f3403734782c3a1ebc1336d7c1891387f6b58cbb64de1d076dbc289ad8644f20b6c0171d2d3a9abbf63e04e8af167f2671a4e57d93f1fb6ad49e6b5a93e4773c28cf298d2961322c183379d7bbb764649d0430bfbe99da1b5ae419aaac4337e224febc0657d4d12300d67658f2c7f563f5acd2b14ff2e38484e760cbd9848b629645f6db1e77e725af55fb" + }, + { /* i=6414 cDividendBits=1387 cDivisorBits=641 */ + "063157773a9164b1aaf64cb7005f03ee94c586ff0dea43c666f70811fbd3f3b44be4baa3c046bac26a1cd46912c941513552edbab276fe5083422c05202288b89fbb4ed63f7acc401110427e803a615baf89de4cabcfbccc7e740021316c95785b7fbf5672558306aa0b4765a0074cb2d146b2178796b6a7e8b3f03d181c719eae47ac83cb0feafdb549e9c509429730aae381d66606c74102f4e9108cbbab347fb520ca09ccf5120e1721ec7c1a", + "a45a017244c73f525798a9a4aa1d5bc1c042e811a08a4aa7109d66ff06ea0fb89436dc63202b78cfd446ce4d5fff0eb5010d8e4974ec6c03ace814cbfe143a5b34edf59b3b1ca0bba52039c47ed38ace", + "09a562c26e2f93f0ae32bebb8a5dbbb6f962cf97cd5595ca16fbb1b93eca3de5639e5a2b1da86e1a58ca686b898dd56a813462cf19673dd55aebd50e43e836994d3e999c2722434e967dba4cd2a514875a2be61c98ea7429dc63b69c6244", + "3f49c109a3b1e7a24545e65e68fcea75468949193ffce4a3dd64059236e77d183b1da9bb62e7e860464843eb2910fbddc8ae1c45b63c4b66b7844501674ee5a05e1fdbf67c8f6afc72681a176d10c162" + }, + { /* i=6415 cDividendBits=929 cDivisorBits=636 */ + "e53cb6484fa4df1bc19243c6da16a84fb88f461bc19d96cce57e8cecde3f36c54f4e2dea64c39034f7ca26d683c2e66e773dcd19f8468328f93322c36388d0c2617c19f4d7ab580112464ab0689c015ce0b4f9d700f002169b4275ddf2efb8b462082b3a9645270070a943486221b8219cac31fe", + "013519be6a5fa5d63e5e06fbc8fd08fc8ad147191f94d54ab0e3cc552dd53760dfa46d0251dda9b03eccbcf15a8ebf5e0e339942b9fdada97a10014e05664def7f75bf4595b347528d4eb57c17aac144", + "bddb3b5d8bcbb1b6f6c0e7a97a59633144b47176ae5431e2ed32c87ea1d69d7e781a17508a", + "012cc852fc14ea95e762d19e2b655f2707e5af50c8e5d4206b83f048634b2f5155f12cf7ebfd4d8d00cb6e57eea97b074d0e1c801a6647f5737d0cf319353cec14911d56b737e942329193ff391ec356" + }, + { /* i=6416 cDividendBits=3786 cDivisorBits=2413 */ + "020487e9ff0c3a3ca88b0fd4d719066396ec9729fa17dc670cea542f2148d51f73aabff12da0a5953cc673d18cf3e2243c7884fe45a3429419d785abf25a84fe41ff8f929b07a2d59bba68e836d0f6cff9b73f8c07bf3d7112d38eb8f8d3afbdf1b6a3cc76718432e9abca8ac3580419bfc90db6c03c5165626b161fa2ec489e51c76d16c6c37c4cb361dc966790c6e98ebd2310d8e339ad5b7b407a64d17b90d9da04684287c0feee5e6cd3d994871235a09aa2a584285d03abbc1b358fb6d674464e02d7cc0a17c2fc430a88c18aa5cf0f8cdf9ce7360e565eeafa7f4476a8b76208f035bced4b5b83139f94b0ed79fea339a0b25f5d8dcf632ac9e88965e4220fc9c2d92232aeb3c034f59df1cbd751865c60f00d7eccd06ef8cebc55308bb49136471f71f6c5fffce8f9156ac72fd4141cc3d38b05637f5efc79875c0846e8ed9a3633f12f64fff540a782f157f45700d3358ed10b47c5094b69dd584eb644e3d1fae74fe97b14d08c7b39d88441f7338c96f5b66a225439208c9079d29b9f76d779f2b630cf4750faf219eeb6be0ec415d6c82e6f3e43a6822471b56843573b114b2ca214f494f148208fd4fe904a97c31e167812cac02f4678cc41709e92865a929593ada681ba6acd42f61af5518efb3bd720d0579348", + "1f990ac5bc3966a28565b457d2265d93ce61853334fea4059183096ccdd484377f6aff14df45ef9d5a3f5c6bdee40cf9a898789dee5995d73cfc0e546ae6408bc12cb7d14b68ce54cc8bad6b09cd30cb67544abfb6a99dabc76a1b5060df9a21ba9de46ae9ebaabe17effcd7b295e6356ff4db8fd6d62e7068ea47200973ae46e94760c304cafcf81c0af6d7e6497504a41a98debb061e488eefa9046e5f70173f9e7c7057497a727e11905ed35b5024fa60b3172538dfe6d919fc3a3b64807e9935dbbeaecb6c4028e8a93ceb4261c03fe1a22cf086fcb3f33e5531d61f018026a08e0f62c0531d0f9ad51fdbee9bae5a6548b4975d4a98a8580cf83828617a587a789b86134eb9c4cb2386d85eb516ecc9c35580175a0a7e361a8d5dc907c48f502d72cccba764bee93b21f9a5", + "1058d7c5b63f0445416c88b0aa13de2d5d5c366481968d8447ee94897a01aaa30165e7a713c481f837d6124cf60b3b709c480e9c7bb098de6620a5adb4aa2b189faa8006ab93fb6d1496781c3b21e7c1fb1ece89555ee61bc2ae57e39cd7740ea1abdd73626613b93062105d51edd4d7587032bf4e09193b66d20afa194bd7572460a7342eb44f234b8b6ee5f8d359b3b14a390facf487403660ebcb901608559c25d75dbf7748198a1cfc0a", + "187f009ce2136473c09439a114b64cc21986d9e1116c67f4f60535999d428c6df4d5df003ddaee909ddda370704cbc8ebabf763501e6829607270530f11fe82779eeceb3cf19f86a74c6d29e9c3450470cf29c99233ef8e0f6d89776c50d2529ae8131eb857fed79a714485fb80044bcc2023b899cdbe9263db6fe40454a65dac5e78dc875f2975be4d26a6c0037539ac2f16701eb4178858a79f6c35b257d67e212641fc77acd7753f635903e749ef3c33f069aa53370738476c9f48589846aa70917a6a485d5d712f53ba443a39a2ff7c1857f554c7aefac0466da4694c64a2e3cf4de3de3d23b5f5abffbc782ffbfc3920ca2a9f9f2b5ef0d3e0c5c6079b4a018a29500f83c2a3b0809e6d3fb27c8d85a9ba3b37bc98ebbbced1b81c3c27919b00f72e37e2ec13a67cf3966d6" + }, + { /* i=6417 cDividendBits=2163 cDivisorBits=980 */ + "024a98a898f22bf2b2eb08fdf22e99f1d216cae5013e1607bb1c2e7f9d104630245a56825b4aac351c10b2e69503de6cd0c51c17c6bb34e57ddd256fc05dab1f5bb5984b5d3bf6bcb6f75faaade71457724d34901d9bd7e29de87cb743a35b3eb72db04b19ab2fe8c282bb7715c54f7358c432f067402b027572fe261b1e665fba6d0ccedacace291a0e70fbf653b5d7506ed8eb2db139a8130a9230203ebd9afbea5624ce6850e66373b2066d1a36be2de7d0d20acdc9a6dcbc8e253eff88cb3a24d65e4c8df47163198c76df322f367905c4732408978e27a860a732d6452d10bd0eab536ff626ccd64f682ad86c8b2aa8485442cac3b008330d3f5aada5f8431fa924c75b10accd54bd21dbf71a", + "05bc05fd355fcdabe86df8cc1f1670262a49bdcee1c6ffff0e83d138d01cb7401b90278331cf6f7dbb00247d540afb9fc241ac799c50d4ab8e9304f5453b31bf944060c5f13692ea97b399dbbb56ed99ae1caac4178aaf8a74a228a0f06a0c7a4e1b6ef17ba864f7f3ba0ed328e9f90b3e37f9d8e1372ba4977639", + "664b085cd39475779f79dfa4a59142a9f0dd958df7d3bc6f788a16e52c27a7f24a2d5278ba0d89b3f900cd268274c2bba1b2325183e7a8a607726029b79dd19ee80ab7c39e9335a335fdac60c7e6a762806515b15621f6c254b7b8511df25f1fd5a4a9082722b9ad4b43f9641fb6cf3c4d73c1da6bfac3a4af498e13dd9dedc04ad4df484c6ad115c148abef0b00f7d02ecd62a8", + "0259459246e661fb76b5568fdff1a1fa533e6f1513e6d99da8966c1127098e55e32e4f4688731214c15380757184bab7cf7a23d4ba0993bcfb8078933ae6629b39e439a686b19fa182710f66fd0633e809abcbba4ba567d95eb5816fc5e4318fe19341aca04f86996847d25b7f7752c8c7f241cb3b593f398f8fb2" + }, + { /* i=6418 cDividendBits=277 cDivisorBits=21 */ + "0783a8a29c9940c40251ff0377392f66e1df845a8f41d8ad0bf7c6082b3b28f21ac23c", + "11baee", + "6c7f0723162641ea2badffc1ea469b17732da7369899d36fa9afcc076bc33aed", + "0cc7e6" + }, + { /* i=6419 cDividendBits=3534 cDivisorBits=2289 */ + "0180a9154fe6731fe2c90a07b9ef93962cb8132127216575abd06efb81c3cc18aa35b1318a8aa9b11e8fcc3a4b54f0b5c48af4587bb187cdd82b8db7f598c8fb0f1a2e4a7af1aeb738c10ad86bf6f3beb88f374794e463afde5b9f6c93fdf39a13690b4785df89c79c6a01453ce4974433d90fe6aad6660086d90df9a73e106011eb199851a7c395c2f9ac6ecbc3cb0fc01ec4b1deda657fafadad67a7300bfc903ef7afa461a1bb3ce2204b33f63a7645126f6fe40c551806442bf84dccfbaa6ff23d8118a92e8a1485fd0fc3aec39f4e52e2b40c1d7d13c737cf2ad66efaa62f022ed38e63100d07c250ece3c81f692fe582817d87de50e7ab4420659d1cf0ff744b93707d7baeeba3725bc30c53849f2e9c9135667e10c2bd5c7115d5959d73455152301b082ae1dde6de32c2f242d1a0ae7c46baf06c9b63969cd37035fe8853f2dd131b6a33778e921e725a87bda61176f3647206135b8337ecbb62e93a2eb5582ba142d7f73cec859b023078c47ed466f7ada7fb1e257121620206663d757b34cdabc97d800974e8d0b29227dbdf32af4563fcbc38ccdd4feb92361dc9e72ba148e74e369745e766e8cb304f3ea60b5b91bce534def3dd", + "27738e5e15c671066eb9c80d862b9f0b885c80eb19d50139471bbfbf583719fbe7154f0128abb356d41df0ef9c2dc4ffe46c5ac47adb9e955d2bde0b077034dc162ef505b1c695576a55ce5427d1d73f0cb022270640e41285d14ffa3db7e6f803e94512e2fbc0fc31fe71f256cb0ce6854a840a7b9a578d7aa248e1f092c1e2eabb9cc965ab4a57ef37d3d807c753d8ba364f7c1f799609c812eff4c0757ecbd9bee08fc5defbe7e59a927aab27fc72e7e13bfe84c4af2138d2cd249015b7954456b79a2c7ac8d14efbdaf079fcd12745ccfb3b5db30f382951d3347de9e65487c0e6e6cd7b655a332c2cb339701fc1945b94a01254a024c021e9cc6aad567baef6ce65f0434005ec7077754803440bf33b70c2007d2715360ee1deee8e", + "09c00fa53249520e8bc698ef825e5109def4b8ac5b60770867b7bdc9d90f8c9b93dd0e16454cd35c64e4c1918d1c027b185879466e0b8e57f181dbacaad04aedaf98491978b05cf8f6feba75ed65b2697bd1c0c31f146722c367197832d498e20f5eed6a562237b1ff38033e254ca3729f7b3723ba409da0a4ab3c8ecb67433d709c63c7ef8b7ae61ada7a68bde9dd190e7946c34a96ee4fad9f3640", + "0d75c934f0f78caef2c3c99ffc6303a03313a3d00dea0ae4c78f6bbc0280bf0da24fc0fc444de969b3df0f9a08a199335b069f2313018c8701bbd3dff9a09074a9b4ca2956866ccf56a7453029935423fb94ea578edd80925e824a279d8528bad85d03063f97e956adf310bdf6b6a18c36300b0f094cf7a041c6735a17e2a4d5d0825a36eaa144b6d1126afdbd9bb4deac68cea5f9a6aa99254187d6eeece9816b5aa92ef0c2ab67bd1e19a895be9c2b74778aa9d9f36c90722ad7b9426637c4a1aa7c22b5bd3dc64cdb62ba222172a4d6f8210762c825927efd419993ffcdaaa753b60230def6cab203b7baa0361b5b702cd1a917e3b00a3e8bd898dcb0261e88d3624aebcb088d3e8ef869abcc9b44b2540886ac7ab2338309969f5c5d" + }, + { /* i=6420 cDividendBits=1154 cDivisorBits=624 */ + "015ecd25f562a8d9199b125577194c1e3a0d822900c630cf02da123ac2602d3408b62049ed2b27420b4c0403867b9c675a118792b5e5a06d9c58e4a26f25d58de8411a6529b86c342c4692ce738ac35f85cc6a8e5e28500e1411b6a3c12018d8d800d8da252b79bca423ec8dfe5237abb707e3381f0a60eb73a5910c3fc98156885fd8ae9382698d4f68bd01d9b7894911", + "e0c47d0b3bd3c1edafc99e765cba49a03e19f45a0437ddfd27b1860e0bc9767c2b21e95a4e96a186969dfb46ad09336ab2739c3c6291c4676335b8830d9cada12b04b2fe1cdf3de3cd09a4743d26", + "018f8bfb00607bb744e20fa5c342847313ddb8b1ead9471634097b92c08445c801f422a8c27bee2657aaffde4a2336633f2b503f3aa3d0aa18213b55333d0824a4518f", + "d0506e1ee65d49216ffab9ce4625dd69e7db5f97ab4b26e9ddd370e92f28c751916dd3c0d79d7b2f4e3a857e9da8dfe4af10004ca349babf3269c2fe2c061026b77b1de10d8d6a89c22d8eea1ad7" + }, + { /* i=6421 cDividendBits=1006 cDivisorBits=780 */ + "2aa52bbafd9d11abd9545d6e25fef543c845df7ef97590706dee831b800b1fb9b57d63d9542ddaa28e1d6cff64750f59b40b4abdb8700e3ab859ee8a6c2d707c3b911c30e66f0c4cf888228535931d12ab907d0383b56987d10d997512b0c2647d7312532564d1040577025a7d8e2d09ddcf3faebb311c07e4cdd3b7bf2b", + "f359e26976b0a4ad4e93eb6f17bbcc75f8763b63399ff8960b61173a86a5f8aa954145172f13d6d358364023e9c2d4ff634dfe017eb90a4d7278356903ff9503753554448cb73eae59a0c3c826f26b26bacc810ab0b29b8d70f0693f5637675649", + "2cdc9f7327888d343d3601a3169fd00985e136f08386929f8b0faad352", + "504ece99c20b504a4e1225b6e0fc958d2cc2acfabda61630ec9948e62a85b44596fff4ddbddac56a46638852e01a49e790678ba0291e3e35af3b03b393c6ca4e4840d11f62e266d5e19a86e97960516b9ccb61cbfa8a5e4e958f4882355505f0c9" + }, + { /* i=6422 cDividendBits=3889 cDivisorBits=3026 */ + "0180feceea7a60c2ceb25ec00f1f0f0f381139a41430ba7f02e548babd03e21bf9d5ac76abe2fc860fb3024674a2ae41d2601e7cee74cd8ff82628144c1037cb5808099eb388bf38c82ff2919d4b7ca93b49db9f37514c2c03521c29414c14858a169c8b15b4f192acd63406e84ed22a7eec05f822ef63d38cb12e5c81504ba653b40c6ae1cd79e77cec49805bf441aa4f310286bf07ce71c3bbcab37f4ab17f5a9d1bf21afa9bec0218de745d8c6e6a66791f87991d8e86601138fef4252203dd3108af8b28f15417948b28ded762b64dfdaeeac1aaa5a98aa74b8dd5de094e2976c2e9b48d9604f5367b2e26c172808a42fd45c272c1fdadca795201988c6c75f42bec303871a0c4cf77892ce4bdefe46f67add9b69cbd69aa93323c949ea4913c91d4ddc48327714491c4852935247f803d8f8ae7d9d71c9c08935d3d28e33963e20e0bcdc6fd152faf64a3d0d3d3c3f833955bd50687e52a71a600e43770d04ab9fb033196bcdc5c75e4edd37fae9e294dd5069ec56a041a749478c085d062e7caabe44cd770cf435b637a52a814471796acf0b887e811cd6e1e5a6ecc3a5a00863c7fd1ff7f23636dcb93a026e508f8fd5349095eab709efbb9300edaf3af778f5896b2d89ddf91a4cdeac05cb2cde99cd6e96d63c033a5f9a440f17ee43166cf2963ccf0", + "02dec54402e49a4ebb144828c40f58398f9fc0a3f7d71001ce23cb790211f64f31d255dee20fb6cfaeac5c4c3d70e8d2488d09427651f256232b2796ad835872d3c4143b9f1e39e4efec5b53175f2595897d8c375ea324e7a92a5419ff43470f374c362a21e6513c10fba458c675d8f815f2917e9f052b745d30324609dc6ce5dfbf3c35ad47e78a83291d6e102d0024073f25cf8759137fffd153004222c6a7a4a6abf3dd02df4b4ed9d910b4c3ba130044cab4303cb3f1de2e7781111105cf3fa024db670fcd665f5fd50e2579fac3b96adacdcf3235ebf140246f7fc8032c5ee6ee5fc8e67a69c8e5e134fd1f43ebdc181daf8fb1491d9ee0fe984d0f5068e46b5cab4bd14c54751c50583a8417ded4f1bfba2f5e60c736404b45af1a31bde3404c049b8bac1e5805645841b514aab2a2fc7ab7e116126c161a2deff60c6975b47503a15b3506f189566be4584f1da77e311b5c3bb7ea7bf178918432d620024b15ad3da976eb9df4cede1a898dfcbd312a86ec7f2ccb26a471", + "8622af4a3d41d841f8b20b0192bbf9358c861f4abb842cb821b6fd6ca793ec7663e563bd99b7fa599bc3d5767121738d1569da369c78d7f011a55c011065c5d197c064f907cff58fe8311f2e0ba96869d2ed0217655e7e0b029a6df087993c1391fffd6d5e27be89464ba25f", + "deeb0a4db651a203d023b81d61a6051b79dbb29a281e3c3dd78e9df01d2c8cd18d43bb0bb3bfa815438da23b2290524fc121cf43d7f079d3a5f726ed65580c57141a8ce1fc59f9a85ab778e0bc93dc92bf6d3a26e2ad02b181a459b0b49365f73c1b1e7efdae434fd03058db4201010a5b036fe1ed7eacb7a5901b52b421abaf5922de1a2bc738f0a3823768a31d7a6ccc875cf93394128df6c944ca831efba4574e94cb1e1a7954987c091ae8181f85cd7641a0edadb39e060ea5fd20778902b30814abe831e37e1736a2f811ff90fa8e4eb01bf0d1f4f43f4309b9ce75c8ef7c5643e4d5f9e0e985decef981f203a15aab9d43cfa6180058c4cd2e39acc7c9a84df62415841a576116e936966fa0e55971f42e01196a0b41808a2256e8df32a3324165ac0d1518806d385f1a999e0b692f48a0a4c9bd9b78a452b76bbb34a3eeb8a74cebb76dd3e671c2f86cd1e11aa39354816bff733c0de4712aefd5e45c3c68bfad297714e80f8068d55afe0daf7524b756e8df3ee24501" + }, + { /* i=6423 cDividendBits=3200 cDivisorBits=2770 */ + "bc0c7159525db479ae6696d89500755d46ca9492ef459a3120e76731ae6d10eefbf9930a9b19977e8a43feff8631e5221f87bffa714a9ea93e673e3a2fccee6da3957f25788562be8437911ae7401a9a9ca1c3b33fe50ef9dce176bb8208b1fbf7691d794637c51801356074c86744be357322c6eec7ce298e763a837a666814e0bc86ccd56914f7b6fbc1338daa0b84e22f17f6e3f5a3a8da01f3817911e4a88ccfa50d30035cc5bbcf2d926f22c4caf644869b9c177a182e61c9e1aa2ec67beed6f9285e5e9430b0ef95ad3bc6ecff32e058726e2f467f0d297f373b837d07cfd8b2cd84e8f4a8572b60671cfc0e7f0a494863eb5716e1ec09aec87d22e49eaded012e996a4d94aee330bc4a13238242bc5a292319bdbbc1809ba107c8a6b1c60640bf335129b4f220f7594b25b77ec4c55ff2460f250dfdc527983d11d9a0d4e7a69ded8bc47ad930936bc15900f54ed3e6144ed92bd664f0f86bbf9b3c6693a8cd69e9420029f9ee968490162105724d86dc9abc5b2717ab1659abd2a216f1013f1842b25652cae48106ae5ab996", + "034dba975979b664276e134dd5981f8ec4b9715ed941f35bb59f4ad5d1f4e8ab9739cb61231cd04fb4a01f5929f971171412d8c120eb9f10c96ccfe5b38be896621805d1fcfbee317a0a6ae49ce4375da6ff9210813da2e342027415274afcac19a9572329eb6998f125038df7ac3b2fb7a3a712b4e34098b5b402232a90720e0543ba64c5b5c3abe1da2413b0e5dcd0db9c84a5974b7246e237e5978addc5d133566ef51938a1722ad5375caed36d3602a8ce843b50d4ea09e82e0ec832410911be88edd38936dffd0b57864f73f222d9b2542ecdb5a17f04457116fc511aad2ade08564a84a7af998b6bc673b00f787cf2f6613e37de12ebf9f486ca35581521ce20f9a3f1c1fc6262433a5105e986e3073ea255f52f8ef511afd5dd4a77cab0150fb1b0685ca42ea3b6eafee0fea5f4250679126abb89f148b5496524bc70eccf159ba2428f249f30eb410cc9fb7f045115eeed6602ff223049", + "38ebfda5b3204724aeaeb24cefaca38fd656554515fc37ab14f0512c7b0336825582115efd77e6014fc38adc820840395fedd258e6b7", + "01373edbe3b4c2f3583bf3bfd00c1c928d5133ee76f929e2d995686972d5841f056c203b6fa429cf86f4e22ede0154b34d0acb92afa1629b52a5d766e41ce5fb53caf9138ccb0dea8fc807ef092c2232a583fa090c05d84c4f4c02e0c7ccf3a73542e554827dafdd695307203551976b4bdf9e57a1e2bae62625deedeaad28f7c291e8bc8c63f5b031adffac55623a654b4edf7394f9158483743f4a0d84b7c062b7547c27a15ff1f1b5b825669d206ceee52bc0c50613825b1d27652677a6e8cb2cb8e81571a946e9efa51597ad6944dc0f67d8380b714c77ef729a1f86d4b091d1d5b334b06f8b4a260093a481654b0281fa46c687d0f2d70bc93ea72ef3029995946a8153a38121248b6285b2e7ec4387474eac5861ccf5e624e8e85552126d4fc0477341587a033d2790d597bc8f4424f084b50989048cd0e826d3c5b44a29e9ed1f281ad4e161ddb5847d3f32c8d14f474c6559b81a709f67" + }, + { /* i=6424 cDividendBits=924 cDivisorBits=682 */ + "052825a102d64f36beb0b14443816dc999dac55d10a6c679450c77e8de5143eaef784541df09b5161dad8baab37293e7b96a401c6ac2ff6e9c93ed80529591acd4a78ee497cc81729e2c3abba9e54044be1abe462836202368c650391f108a55d836a9bdfb6d6a81b78a92b9292f11d6b9f218e4", + "01412d3c13da05011938de9bdf621382e91a1def9d77162b3edff716d135358dffd907eb6c5788402fa0b1341acef9cd77243dd1134ccff0e63874a5710b60e9226bb86884f7bc0d610175e3e81481735bd3e620f638", + "041c3f8f7885b2bd19be7cd18d86e44a4fd0720d1332669b98572b188337b3", + "5b6d4ae354c341f770dc90b31f856697958e261dc1ede350335617cec0dd720fa04a84f232de94d1e90c01f0ab1c17f40a3a0041149ed196c47f6dcf7b84ce23034e800ecb42670cfb9f94c32c0d5318e07d57e7bc" + }, + { /* i=6425 cDividendBits=1238 cDivisorBits=235 */ + "093f7d2d448818b687c39b8df764f9c4c84554e1cab31a982eecf1e04e7697da25cd069c33b58256f127fb13a25e24129cf6ad795ac6915336357848e99807b2479c5007a05719d83c8928a11eea3cae76805b4c551e3f7bf7c125a6de7198044e03fc0b342ccf5453bc2ba87caf44b786e71016436b04102ff4c8d7f96797c14ad80eb433db1b07447dfc2e3df75edab70d769d020105756b7eaa", + "05f217e754d1a8380787620baef47bd39ffe4c1465db86262d096ab1599b", + "018e2fc4a6fe76bf4fca72629e91b02836d1a15ca998ff5828e367f9e3b7bcc5b344950480e60286868bf46367168d24edf3817edabee0a2f625c4946342314c68c2d59c31c6323e321a6d5a2e5003c841a6119d42984e30b170a28b0868cc853deba6d3c3b6583e4a301d46ca195f3753368d403b858f397f4e28ef8001", + "0583515649f7a05c118503a93d7f7677c46ac99731fc75e09ad67e37a50f" + }, + { /* i=6426 cDividendBits=1022 cDivisorBits=194 */ + "2f223d2575f74dbf1f38e9d3feb7ae582701a8a2d43a1adc6ccba58cf4aaa38b4436a0d3d390a5a5b97aa0bb9f3cd9d91d2e32a78c7f525ee68ef52a263e5a6ca76abaadb7314de4dfd4a7f31f78df46c9670859458d7d7dbbdd85270b4bdc7daf1899b0eaac9fe1cc1e7cd9a03aa8e22f18954e600846709d0bdc84f7ac1111", + "02482fa4ebdddd572c4e26ae7643afc233fcffa43c60214a77", + "14a7a0074e2c303360e6a3ebf9fc66203f3f70cad4cc0bfab87493a56c531a05676cd079409b593ec65851dfaa4db721c975bd72d3e3f7b62c1c4c34209a62c1e9b05c018fe1a1f96ff7e8c2d09f84e380a708435713cc29cfc43c38f15b0745fa4330c6d3dbe901", + "10cd0cf69fd114f894f912024915b8ae65d4afe581f7779a" + }, + { /* i=6427 cDividendBits=366 cDivisorBits=288 */ + "372c42fbcbfa6fcc93e770e68798a24e65bb7b263d5e1668b09d2f5f56d07319b986e8e611997f004fef711c4e08", + "85c0c3eef61ddd745235317603258b7c22a6c26f726c291c4f48e011d410684dd5e7783b", + "69997f1cd07d5b0a64e2", + "2644fed819640d62424b9ae75abf95cfad131be2c4e2e144adeab94732888c13847f1df2" + }, + { /* i=6428 cDividendBits=3820 cDivisorBits=4 */ + "0ba44ec6c3f4d5a6d92fcfa909bc5ab68ac92e670046ba20ab50cf52bd95064cead1483ef9904b92fc6bfbe3f0e589160c70d3bfc9db62fd1f292b12515fef75c73878720111bea40c0f55c3bacae10716abcd00f73abb11627b61a47700ff64d61719b419e3aba3b8a5995817cf4bea2dda00caf9a43837a48f8db05446d13d416151d1a98193bb9dfada1eb702cf22c5708b959c2ad8c4bcfc5b833a7893b27df62f45860c809eb38374141067e73edd95171f436e26ebae47d410f7b6c44343b2770202ed745cdace7162ce3c6fd2a56b3ca50839492bd00867803c9c3df5ac7f89178b8517c8a095c5b0434f1f1e2f3e62a78e36b0e1407be000ee4ec9175cb2e46b36acef26243edb76a553fac325ce00186a33570af5f384ad02cdb7020d0ad3aa999df5c8cba1b22d458102253cfb0f1a6808352268c973edc25159323726dece5f475916e5b9f1eccece3fba8de247f21ebf6cc70f8c36d5caf0548beda666d30250761c63c3594cde204764ec6d8b0075beb6c24b970d79cf4abcc74b18eebc7f59e98283b85bbc94fcb1daa2963c094c6e5a087e68ba0eec126b4e5c34c1b64e8e3c2f6dc513b3f99a4973e38fb65db76e662acd8d650be6552873389615035d0c9fe375dc87afdebc8ae56b4c29e241ba6feb72aee135b0a4", + "06", + "01f0b7cbcb5378f12432a29c2c4a0f1e6c76dd112ab6745ac738228dca43810cd1cd8c0a7eed61edd4bca9fb52d0ec2e5768234aa1a4907f8531872db83aa7e8f68969685582f51b5757e3a09f21d02bd91ca22ad3df1f2d9069e59b692ad53b7903d99e04509c9b4970eee403f7e1fc5cf9aacc7ef0b4094617ecf2b8b67834e03ae2f846eaedf49a5479afc92b2285cb92c1ee44b1cecb74d4b9eb34696df314fe5d364102156fc895e8ae02bbfbdfcf98d92fe0925bd1f2614e02d3f3cb608b48692b007ce8ba2477bd9077b4bd4dc63c8a1b815ee1874d56bbeab4c4b4fe476a96d941eb83f6c56e4b9d608d2fda5d351071425e72d03569faaad26276d93a1dd0bc891cd2865b5fcf3e70e35475dba2555967088e81d3a8961cd5ccf3d5acd72347199a53a177459db236402b0634d4828466ac08db1176e8a7a062e4330931252265368ed92649a8522277b549c2506153051fe77682975e78f7280e17524666788062be5a10a08ee22505613b7cbcec80139fc92061ee823ef7e1ca21372ed274bfe45195c09eb9f4c37f72f9c5c3b4ac3767b9ac15117457d20311e264b3759e626d0a07e7a0d89dfeef0c3dfb429e64f3e7bbb1ccece62ca66386bddec3ae2b3a2cc55093a4c147fa74c1d0e7375c506049bd51e8727ade481b", + "02" + }, + { /* i=6429 cDividendBits=3150 cDivisorBits=3128 */ + "0f08737f3cc8097096355a170028c443b845c26707b946612c89090a3f5bee6e862aca8e393a6d5ea758729c2a91dab6a1800c3e10045b393afd63d3b4ccc94b5e30ac06fc80415900acc15e1154999cf88cb4563fbfceb22495080a510596c9a68aa085bb68a34383077ac89d0dcba8b710d53e838c155600321f4deb6c656baa3c2cf03082244dfd54930bf82c9c59fa660a9f337647088ff96c6aed22adb596b2e6ef4e701dc9da05d6c1842a4f9c6ccb68b4b3f7756bae8112728ca0593596dc151bc4361f8976794cd533f80ec843238de47302b0077cf2969fd6718fb999b40c25d8beba6cd4e2f4bb3616f4ccc126e80d2fbc58611607b46437214bae0d575addc064b2050e9291bb7efe4dcaefdb2eaa65fc9794e3f608c6e7d5a1dd4c551b3c96c99763a94cd203ffca487d197150a6af2ba253f2d64d0c7e69e6ec9b367693ed00aa7689a0de0a405a3e7a1edae135d16e3e7f5e9ae907f4af2813f50a6645b136b791946379b23f86591f19d6902d01bddfef3355c667f44d542c185e0ce5a674bfd4ad47", + "0a2d7a49b8c753217706a745cf3218fc2a1d0ccc8ceb1de069a3f356c92ed70520509b73c632bf12baf06404364b393962f27ba49b94f0417b3b5460b757142c01c262b8dbd890ab212fa40e99d436c26cfee6dc534d53dca7492ee549c9aa9a8508a53d9cc9331d6e970fce499dba901ea733845662f84f09e589de025799738a4e2ed37212cd81a2bd44ae3981b03aee055b7db12037ef00ca4ad10e53499f3fe715e2f60f4e0e71677c8ed2afe92f28b621cbf8412328448a5772eb4b54e2eb255f37dc3cac7c2e6b0fd20bf5a13a718b22caf3e2baf1f9b54d9f40794a66f91a3620a3f571f8318819b4729b690f457604c776433ddc9601fc97e96204e23695de760c6bd1b2c8cc14a02cd4e6f3ead8c88b640bb184c294c56d4e8786e337e8c45dc8711cfc0456a5de07bf59ece6b7add7dad1c002217b2da6c62c5967d9aceb1b24f0cbe1666b101662de1cf40dbb87d3ec2f1bf0ac3f6a4f22d810fadd0de34538517856201c6b7b6cf961256b485d235813a82ddeb9dc68e5ec438a4c1e26c7c128bb", + "017a20b6", + "02c3ca3669132cdba6489343cea4ce53eebefb12b0ed4234232073ec0ec6f215f8899669fd0922cffa8ac50037438ad70529cff73ea009d4362c028847f5c024b57e97945e456e999421bba4de2c607a1ad91493fae05f30b7de119536cb8160dff4ba272c9fb7adf0a5550a227527a87bccd310e7e52bc401b032ec399a7b4db28a59cb6984ba9a4792a8110abc4a7ba45d2b347dc32ab61912a9486808187c4d292f67afe34697477caab1869501dd17d1e13cdf85459b4d94aa012c5cf02eaad0574ab167c92116f6ce8b832f8e5e6782cb2243a315a3d2182730de061effda40169ce59db35a8ccc08dec495fd1adc2ac8788dd6fb3286ebf5644bbcfe6ad91724041434a70703521c764a8c68527d6443b8e05bd9a8550fdbfdec957ae272157ed7f380c92b2fd2acec48053ad6f9a57f1d07aea0b870f67f147a8f42190f85eb330f0b47bc17122201ac3b7cc17299a27f710452a3acbbc38139cf35e9cd33d42ba972a8449c5cc6c10869afb355bb0eb688792ae36160ff27737aabb1c06ab4734c5855" + }, + { /* i=6430 cDividendBits=1949 cDivisorBits=1455 */ + "10051e754bf501510dbb3afd20be897c8ee046309e4cfd03eaaa7a4ddfa3abaad53d71e1248a6ecdfc57f8f8706bd0dff8ca9eb57eb899943bb57d3daf38c895b0d0cd0037f3d818602adaa279521229e6735c9d58675650a724408bc53e590b5f720ff2bfc5ebc6adc050c83cec778eadf333292161be53663e4a5772266daa9e1c210aeaa97d56573ad48a4ac48a1dd9a49c8ccd4efef38906517ab9d4c0312bd1a95d9d6da2b525d2fdc3cdda5f6bc7a2f3634420d625860934d3a992672148ebf1d80a6404c707f03d2e43b914fa8d2ca367970857acdb44bc9de9f4345bfbd47c9957434714208a0228233603b9f649ffa2", + "0c22087e9114b4df85dc8527f30387dbb25123506f190902e2e57b75936ef3b74d695d3303fae647385879b83f99f3a191f0cd54e61f22a29cc5cf58a301ff46f9c36a7e7bf089c6aa448fe1b3d64d86e5a6a2021b5fab8f5b38b19d317f54a97c92e981f28a8e15ce5196a1d96826ad071ccef57a27a717e8c732801afdcbb2d221731c21925ae3595a86ec708b18a8c97879b7c9bf167dfd7f05e4984863e51b0b650e87bbdc8928b7e8f7402e92ee0ef44db90db8", + "015203e4ce53c5c36c46d7d593e5aaa7242dd6005134f70a3d251935f270cbbb135ab03aafbcb117714ca989f07f3fc559bdce518d7eed07f3eb193ca29004", + "07e8efd24d646f4530384fdcb7a3cd71c78dfd308c2cde814498284ffa95a28599c1c585c92fa28f1f2b22f00f3c031b72fdd807ac18f23e5bfc7ece03e27fa47d84c33e5c8fa5750cafb3f7e2e7d4144dec20305b817aca854261a1fe239fd50cb528adb44a144d52427ffc628bb60cade781ad30f29d46888772476982902609b328a0e0348905c2aa2120e110d13240bbc041b2ca2a96d3ef79af8658352db39e48253894b3097d195040360cb1f18ee6d93e48c2" + }, + { /* i=6431 cDividendBits=739 cDivisorBits=332 */ + "01a4fcd7bac7ebf1f885e1f693de8336ba096495b37872db946eafb8d87857c7af97ed37b6378520f74e9f0e6e853c7d73ac051e4b27bc769a55519dadcb1aad438c2a074cc642bce5c279f6d1631841751e869660dd070d732b416940", + "03a0a2d38d4105dda1cd1e58f3002fa73b8354123a4678a31c7d74c766270a009574e1d1c2ca3580de44", + "740e139035e0d286051a94b3a1c22aba7d8202d73d6f11b483c5dda086ed549672ad059570c3ae47e1ff06e6e7ba23885fe1b0", + "029324d137a205ed82d0ee4e81f556ad88b3c00c57926d3541edac407eb7a0815222f1af4d358412d680" + }, + { /* i=6432 cDividendBits=97 cDivisorBits=47 */ + "01823f6a6918f3d055c6fa057a", + "5d3bfb652b04", + "04248c2dc8eaa9", + "2a2908bef7d6" + }, + { /* i=6433 cDividendBits=1446 cDivisorBits=1246 */ + "0b8ef7bf5149acb2729099a8dd91bdbd16ce3ae08984569673d667955d9b01237623f65f8f34c9978f629b29fab1e1ba31b56843575edb5f364d358f1d649dbeb8e6e3604cf11b4fc7759637364b7493ea1e9adc65374c74058f4f053fe3cf062e62008f6a97bcbeb106b1314db40b54f6622442ba5d7741e0a2c20300e47492d61dc6b63c67c46c4ab271146ab426e8559a26a32f783400e3d3e7754cea4932365c978b8b0eb55a58849c38fc3830f2fc66f17d70", + "395d9c99c88e6f3fd8c515a4ebce72882c01ef9a2d58e0323b06de74e7393c39bc0d2f7b594f6e6cd79fa8bc6d8db4a94432f66c907c2d82134fa889bd0bd4deba9fdb517c88774c9be82a6adc9c2f51ad52cbd4ed1d5f6b531878c86070f14272c6e4956ddfcd473c7c72a3c1e9776dcb4f16011281adb825c8f34316fa8a7aec3d6e91220a2d02d27c9321a628cda5e063d6709629b2ba3461a9", + "3394aff6211dcb260e47bfed90a009ec11c42df48eee625fd7db", + "12ae6465ace4f592c7af22863655ac37f99c7a7b18f8e68c1bf070000dbb3361efddc3f7b26679e0d43472a12a367054e1bf404f6356ca04b5adca2d8cd1f108bb2e1a6764107ea7282b424f055089d8aa90c6cbc65dcd3c987c8f9827cec938af568c820d878e06d2987de225cb34af1cace4c0bf60a920ffe63b14ff6aa348c909c7a99a011cda6ca04a16226acde2ecdf5df1287cc42e6602dd" + }, + { /* i=6434 cDividendBits=319 cDivisorBits=255 */ + "2213b772e982cc47a8cb10b98623bf3c028206776f72defbb5c2c807449137a9f416e44b5c11bec2", + "64aee06b820738dd73b3bd373b6dd1589d685446d05d38601941a90725830ef6", + "56a5312f7dcc6ab1", + "01fc75d107db43f835a173fcce706b583a3b8d66353ea7eadd3658ea1e3a8aac" + }, + { /* i=6435 cDividendBits=1140 cDivisorBits=791 */ + "012b1f5a491dceffd7f8eea9046b1b4d09c888349fa8cd15e5da75e1be1deb42a6b1a50aaae369c02a27fe23b657b40cd647f397086c8f622f355b599c5693af1dd1ce1ea85ef4ef9e97dc7738109773ad668da892d68c71370e05342aa7832605b6db5273c83ea0bfbf677123947cd9536eba43ca7b9bc018d1888d6969e4c13a37117cce6ef5c5e83875933a26b4", + "09a75da1d5964eb1eca3708678c7fe1341f49ea7fc9451ab4104309d2fbc4477e67adf7402e9085975f03120cc296c4f56753c57ad0d868efe78b1cb8fcf8f36db0d7e5bebcad9f495e165cc6085f1af14ddde9fc3dad83848d6daad17bfcf4ab3b016", + "1efc2b3613e3c58f21de8a66ff7e421e815a724598eece404cd75926be8d6f945921a0a5506dcf502869a4e1", + "1e0992e638f03ebc342961915befc857dbecb8145077683805002a600c20c2b4d440817c3f818bae6dac642b08dd3d17f719c23bbb9a5599b15916803d7ffd6ff0fc75901c4d4d1141b8d326833b1e5fed17687e2ec885950b44e08f4f5325784b5e" + }, + { /* i=6436 cDividendBits=2988 cDivisorBits=2186 */ + "0d13bc87c04c5e61b67a91b1b89b311c59a557f911a92e91cbb6336b1bdc820bd8942c66fc9b2ce4c861b08adbec615616e84f0ad3e1a94205a8e4dee1a56c7f46206f0eb2c565702b0938f471d2c469d89cb06c2d939e190ceaeb17da904ce7eb7daffb987cc5f79f4ce3598d1288df86d8bcd260b8b9a14c9e5dd23970338d353ed373c711a40a6b58eeea2466599d04bdbb407d08ce9b8ba535939d338cb5a6d3a78b7a0bcaea0d0a2148673f8e6d57393cde0ef3b84e5ef49d98354f1e8ed9d0fb9b47119c316915c781b33ded2d685ca5b757b48315ad58f1b1eff2e275ac6ee301b53ef6d87f68224edab2909f1af2564de487372daecd61db58bd191e6071d5eef3e2d922940bd2297ef0fb711e64c276b2e79478c1961f273badeb7c2d20b42dd84dab3a5d8d6a5ba46599e1436f7f2ae28bd3a3229740e0788d5aa08a07f0283e47e03dad367e96e6cbc8f8a3c63e80f8734206df9728c72a72864835ad0b21f11ee4a97191c2ecbcc15b6a6e35ba6ee055", + "0bf38687e89c3ea9b51dc1e4ed584e7efb425cfbbea50b70396309853fdd385683b4c1fc6aafe2a64030200ed06fc95b43902e881311406ecda4dff448f1a8c59b74793eca3b96f2abe125dfa003763d65533cfe25835ea8d84f1e3a01836683bace9741baf273a309be2f156f38d117f4478b4387c56a307123a8c01c9a64e8e196f8725afaacf3336cbc59908c6da0fd68e4c4b5d77bc9872e481100eb7e4544abf750721ea579a3934e22d3a8f65bd62080a77062a8f5065fd2126b02e66a23a251b070bbfd9a080920c47386948de07c541ccc3ca56bb274165e46222b734b338e48530e832e753710b184df48496434bbb755d2f6dcef5cf22697679e2222b7f4ebcbc17b7d5442d0fda20887fbe3", + "01181d91a9cbf079d4f41b973b884c336530c89201e85813c5eacd06b03d02a1ba7bd556ed039e405c4bd968579af55c0d84996fcda3cceb7570bfb802f13cb77263cc829e2d96cd8c234e063ccf53a961be1b637a41328fa26d052df620645a357c0a18f13c", + "0b71c841513f8602cd11c31e2a7702733afd398f86d8afd9f5e40073411feb62ebaa74c4bd5a70f53bbded6495d078bad68830c0da5eaf6999bc8d930f31541e28ccad947777b2d21c3be230aed61ac98c3d25c5121c19b15b1f00fd7eb9eb484882d55a4857ed7a6d3efb507e56cf8f3a00f68b94b9475ea70057891f8f1542ec2e6dc81d8df4162cd3c5611782706df1f6f30556236c1be6b71ab3ffcfa7b5d7593a277e4976fd4942600a7fd0d09d361ce8ac0cd6fda15f224196f41667adad5b145df6913ff1f8c3031f28f888b24c3fb13620ed154fa10b160096b89475b84a0d89332627341d6f6c685359539db2f6fe3abc0f88423682b4ef8c28d455e63b89a912938079c7555154a93b272421" + }, + { /* i=6437 cDividendBits=233 cDivisorBits=114 */ + "bfd53b5d55b1b67173f921c04b243edc1d441ddc32ee1d6452d0ba7dae", + "71e6647051cd4a7267a8cf9307a2", + "01af293b438a500d1e7b80467a2527d8", + "53b29b028eff549e0e14f8185efe" + }, + { /* i=6438 cDividendBits=1657 cDivisorBits=1523 */ + "019e559ee2ce699a83164206167438dbb4ac780444ddbf1fcf9b2bbad7778befa79a135b116c599ffed8be9339968e19e01b9dcc952137006511159adde067015455958f506f86876e1955cb6e64d6a0882adfcb2d16cc41fd885252c9d9645e4e2fa61bebc2297ae1e1f0aa0b2e6895315d5fdebdf18a85bc2b5fdcf85851f2d081b1d9153b3a203c8969c9782bafd59dd1b78bc28c71bd7ab22a7f378eed2d02fbb13983186c65acd49d7adbd253d5e9706af98a8708fc4f4c2d46d547dfb4e19af358b29e041ff280fad27487b837", + "9249a170226b77ceb729fa20bd2fcc2f2ea021eb09f10ee8eec78f48d9f05ae2150bd8aca5e24696cf8819765c456c3999c07d3bc02355bf47cd9ec917d725edc1ef8e24565c404d88d3b12f6622248240f94a28561aba50dfe4cf9b0e491bea861feb2bdbc5aec8c539d80ff24c2943dc124ee5853a9ceece2ee2a7d9ac3e01a639c43f6a09f9b038971210fd9c68e7f82591ecffb50ec3254f3188a5cfcad64ce8a756db4333e88f6feb1cc20397f0955d529579eadb730e1bac13a98b", + "02d5136b23d75e5ad368d115d804318edc3b", + "62556d61b8a1ed011bbf224e3f8b32ac19eea8dca2cd4c64fd968b4b4f899b4f1af5a7b471f78ec3ee6afd2ec40458875682e3c5edc36ee89355b43d8d35febb9bd9844956671f311ad33583b2d60839ff9d03856582fb738523403d2c351eeaa9a9cb77b7b8a88dd4bc00d5e56cc8e74c365c5ea5b4fd520aec5d17910cfbd50cca36ee3443257b2e2b9dc4e3b01fd670accd28f4a3d988958a348523d5b873870c328162204063d85da90c3232c28642db9e1128c4b4d0ce094032312e" + }, + { /* i=6439 cDividendBits=566 cDivisorBits=177 */ + "1098f1b77ea54d8f93b99952f6cc1c77c4003cf459cefbe95a55bf32a7c97b96fbe5b347275cffff45c379afed8e8ec6c0982c4beeebd738b694e6fa39172122f2fb72f9ca6ccd", + "01f7afc1864bfdeca9870c7378247e95c35f0f6c461e61", + "086f8976972f9c94de408a3c3ea3ac7be0803e92e9adb6a088b101c7e29f5e53ac98ad449c395f718b0b8fd216f2f32a1a", + "c0422b8db4ea1dbd2024b9ca251b19638e81f19c6cf3" + }, + { /* i=6440 cDividendBits=2695 cDivisorBits=224 */ + "4df8caf2c6331789163d3b1423462c6397601eba3bf5cc1862e6c1230bab6d4f3b24c2a66b0b5fab9ac24e3364c73300b49b1a762c8957dec8aeaaf245905c8d85a54e1faa9d8055864ab3a91e241671336dcf42d4e758f7753fb249b95fd279e809c8d90b0a3a3efe67f6d2dcd039abb9a6e5ad430e6b402b7defdb622e1c9d2f092374aa5f727e40afc99d7741fa6e3b2192461073dae504d004449049bb3013945dfc1ad244374cb70272584dc6929f621ac088b724a0036148b55783cd36574604d73715c06466755a1fa8c85746a4e14e7bcef0b669003b663829803256d74d1812968326ca67b436968c636a5d2d25376b7891dbb50744af254b7c6baced87ac3a8d380a3773af4c92b0561e37613690537cdc4c2daa0f19beb956e4963bd1ed97cc6560b6aa520fdf31fb441117fa3c4c55b0460862ecd1e8748c95baad8eb3cea6e441e7465025f90766f8b9cd", + "ab5d9a54ad42fc6f1467605161a3b79366ff2dd2ecf498b6b0d0ff08", + "747b107f954672989d541b696f43c46ee03f85d30cfdb64da99d33f8cb660ef53ca5e98920ad75b75e6043b8cd8d73aad1f07e516d230049d87ebcbe8c9704edfc1904dddb15faab95ef6a3683ea1819bd6852a5de560c9e7a5b1f05b07fa487d2d9f8c02cd86337a30b42c05985675230e1320062cfd7e0319c0900e3e0d059bc381243435d0f340e7bf17788a431b4f2358d8f84ef78382200a5f75e75c7c8bc7fc7e65d864d0fb55c1af5d16d994bd4ccba6f829c9156c8c02f98c1f90610aedfc4776cb4e14d20cec72c885d04d18a483deef33b7679486c9030a7bbd098ee753f683bec44bd64a892e91f3d34e3e9ba7d28615d86037ae2e078f5014e9b297499a07677ff06b654542a97825d3190e7d515c2d72b0b4a31a647f04f2540d5d66af39f86592fb69bb017c200aef63ac4232a9c", + "363475dccee6c4beb20d191a7aad281b08da6416cdd5490c5fae00ed" + }, + { /* i=6441 cDividendBits=2381 cDivisorBits=1479 */ + "0882f6d49f2db894df61984bd6899ae75c4f8b787c5caae789940b74c87ec7ea9c92eea83bc805ee3217e8dc51103a8e34684e41d96b5c3db4619eeeac8b37c1bf644647dc55383b905fe0f654160d696588cecaba1fad0dff2463413c8313dee757806fdf0551c288c555cbedb85b0a5433ea022052e5de4ecaa54494214cdf21115ae28fedc9a18fd9cfebe6323c402ff08eeb68f312091ee980e1978864cfd5ad1c2dc0f939696ba942d6c00906b747ed59adca71dd875774c627f23a1e1bb13bad534612740138a0ecddb68f5d147d60e30cfae9a8c30382dc4e29704bc15792039881dc0b346b7553d92ef0c3ddc7f1d20929ce51f0bed0dd54235dfa9dbe7a4307f13da14d43c0f4b8b63650f55bedbb6073b55b181e000dac06515e40e5fc84726098bc0759b2", + "26a773294c9332bac9b84c8a5238256197206644056dc8a3c793906e660d414c8ef04bbbfe87fe3161eb240db87267c1bc478e503a6601ba7285fcb5ece972ff2e492359c12c62048e99a9dff4584af85c441a879cf1fb1ef04d7ef986886db7741f8c42500b4429299ecee30ce5a2bfda931554c2d10d7b9eb5b3b719eb144f36bee0268d316622381b925c23043ff2b7d3db138421afc9ccb0d677054236786e548acce279c2ad6253ce5ce013c950ee71c85fa017fd06a4", + "385eef706696a4c1c1462b8ca1e01d40d9313cbcb17b7282e4db5da31b903d80bf404e349a5917e7dc2dadf26a1d4df9c4bbc74ecb3950aa64ca0f611356fcc1a149779277a187ddf0c61ef17a410426f2125e3fbda7c3a4735e55b2023e957155b44e80cc1a17948b077b1112e0e375f3", + "16b8fd66fd48656b94e99225a4e66cd14cb976c0ab570e25df3bba8fd923bd691669ea33f12b742062ab830e5743a405d70810fe0e00f895930dc2aecc4dacc0eab8f902541782dfd0355f51ac65858383a19fdc0b022c4b2da20f8ca1aed2ee2be7185877e72f0f9c0fee753893fb7e38d2bc8e7cc8faec083a0ef0b80bbab9c5e200dfddd41cb9c83df1808013eb03417ef876534cedde9f66b7fcc376c6f92edfaf5113440ede5b2a4f7726fd34a9a6e59169f6ef651806" + }, + { /* i=6442 cDividendBits=282 cDivisorBits=99 */ + "01b81d919897b5e2e46bdab2c34a813d9b72ecc1407c6b0d0d02d3aa315caaf9b1f998fc", + "01e2f58ac71ad776236e7eafda", + "e94a415cb788cb94e6653e3fedc3284834a0ba47f9ea6b", + "34346084ccfa46c8353ed4de" + }, + { /* i=6443 cDividendBits=678 cDivisorBits=641 */ + "38ff59cbc9d53165ec55ba237a763075d327a692eafb2159a039db15d4d5cc7ae27c5c9ced0e9f15b127b74624f417198acdef92e98c3344cf74c009d25fb3b35e200d429eb51b6a7fcf3d13fe908cf6b19301fa69", + "760a434f633408adae40d2da09a48df0528527ae60769e4f737ce053a1d5cccb15b9e671e4be79bef7c49f05066c669f89eef59c9ca217ea49722f89774cdb40870fffd321192aa237a27ce1ce106a5e", + "7b9d0f881e", + "40bd711951d494aee5d33cfe414bb4fef51399bb6a5f3117c51dc368f3f7b8a47eefdc3edd1b0cadfa40a19955f6270fbd9935839d6a9974b1eba1e90044a50901906a9cd8f1fdd3eaac1f66d3119365" + }, + { /* i=6444 cDividendBits=2146 cDivisorBits=1035 */ + "022f5c471b64f84b0c1710d7c7c823fe5b68973fa42b6317eee7e228102f0fbddbb52f72bf591caf273e9cc45a19739f11f42b42bf31bcb9fe3e76cd97166dd5d89ffe482e8b531dec6867855917b6a50be199f375815ea10ae5782327196bcb183928db7bbe961e5d8ef6061eeaad016921dca456b47dc10ad712a99fd1234f00f19b4578e3fb79134c091fda97e8fab29ddf577829c9eb783e5c1f3bb0b4a34dc03b0b233d27ac9b727676e0a0fb7fde03dffb43f89734bc8cec6ba7c1e7f0b18368488cc213e4ea2bb05670ace7fe0b1a99fff64dc0d980af14ef1ce2d28b467ac18686eb9cf96a08145cb8db45ccbb9e0cb3d63246864f5bf83e21732195848d9305487e4d1ecb3c6f6c89", + "03e299c513c528e1828ef29d020a2958adca345edd12889c60992b51daefe8dab195501d18fd2d54ef1327823e100867c3ebbbb456ea8209431414451a92470add63d48b572c8da298f42b6c97f0e5aa3098f7dd4902c2a29cacf4215734f87204a882e267a7463a68cedb833a37ad39cf5589919f28422d49701b75f63d381ccfb4", + "8ff94076f87fe8592bcad43493d9106b8bd322e27a20c7bee79758aba1d99285e31b514bae404e262e33d70fe241be01369c3426b4a9a5f86b8f84367719d738c1be7e8bd430a9908fbf14910aae4ecd4f13c3e07b8ffe5a1db7aad25f5662b7fb900212aa699ec3836549ddb4076882ff6724ca120129a88ea56a9da137c2768b51a68d4fca39b17cc493", + "0198ae83a9a8c19707ecbf42b3a37bd4557dd8c2e7386e69af3829e5fb409358e2496469193be1204c98ffcdf98ad3d273f80432435f61a1b404342552baf67043e2fda6dc75db7c3cb6df84fc280478f19176e3924cc40ab84d893dc3ad6674679d30f7451da1839efdbbf7c1febf9eb417617be320a68f349458bc7a09e5ae582d" + }, + { /* i=6445 cDividendBits=3371 cDivisorBits=3199 */ + "078118ae5b22a7499f1f69bcfe339c77810c5d382158b6741956e0fac33be132ab91fd70a0f391b68fbc2c930d2819312bfe03f24048704b10585b4d907bc46999f01c27b57e3951680847ab3a4bba766e24e99fdf5cadebdd6fc5f3fdfb8651766dc99d523df35d3f281ef815f89a185de6222c2c18274f046603f8f10a4e1da4a29d5799db0d5254ea57e0a2637f79b0fd44dbf7214d5d7609a3495a3f0da5a411af4c000a96708227745178e8097e20a4ec8c960f9d315e5ea307d754fdfe994c251444a8f1f4fd0554920d24fdbd73d0295b9969cacb162f74a44450d92fca2f123ed70d73683c7ba32b8fc563f8e73e32d4035d789c80db7a89ee3bf5a8bbcb28dc2b10fe4eaef0eb1c37e800026919bdfd1d967c2608d32fd47af266b612bedb889057b49432406dc4a6f2495930863fc1d4b204a4285dcdd22fcd12b245834407168216056e8dec68e5c3abc1058fe14f64676e3902a2ea0efc36016a26c1e2c266ea39432084c62124a6dc6a91d74cbcc96f4c731493316a84d78e082c32eb706b6011f77ec28488f372764ddf25b268dd8ea9d956181803c6cc93cc52d54c893044", + "4423c178664a9faa3bcd6c0063158519f42f733bfbda95a18ade9d04d75c7f083d44627efe937359055fe6dcaeb7dc303c3debea0d42b13bed7f903de5b4fba71f4d5f02f35b88f8ba1bc1d14ce8f8575c9aaf9c210c58033dee21e182cff1aea8cbd4b0f61a6fd636a42b5152fdf6bf69a71f7651ee26b44ab45b77a2961a45432bc1c59ec1a218219c5cb4cf37173c780991ae30442c8922eac41563eadd4a3d8b4c1b6fbe158cc602d851f0b5e3ea0615b512116cac446818d6f2519535516aad88cdd72379c1840fdbb80e20308cd81372c5398c963c4db4e80a898a2370ad330886c390e86392562745cba3361918b78a7610a7f1a792f555eaafbb97483715d1344bc6ec4992162134f54755cd85aeb3ef1762aaf8af3a68d8b5a03a8ff5b409b0049ef99d98b5787776620561cd0ce6a200011c68d42fa1ed0a4b33e00c15d4461b2ef0e94a0f4dddebef0e35a50a15857b4337557ec9c076e0fc8cb7887d14703e82a70d832a9c55bbbc72f37b9812265e25ba6e4e622167806a797b60adbadef7da6032a730045f917a1567", + "1c3189caf4c62497abe6115dca9f86359b2a2ac4d98f", + "0ecb7e0be6162a058c7980efdc52fee6f1fc17eacc74a1727db20163c568992da6f77f0a7fc95dffc3e0946f385bf076787c236fc8981a8332aed280dc6592c3582b84af764835e160cd8a91f18ee0c4ac78eb2b2be8e15cbe499f2725436ab464135e5c04adf059646a788c3cced0d583f59ca58e5566049c568f1f8a5894547e18fd9a3faba6787aae5a8d4c7917379fd499e3808f67edc6a9e477395cba7b4c26b6d2b3ee91b8d63b4c067fd620ea0e6d0b457903ab7d29a3f623197eaf0af23e4513712d3b38e45208a818419b9b7add9728a50d1cc0ce1db9dc3555bbd789eaef845fc6fcb97f5a0cebd8155b491bc446ad516b8e3c2f775dd70ee6c297c179c7293f1acca219c916cdebee3bffaac1b2f3c0af2ce0b91dce0719909a5a7e672268b6cc656f621f2cc441224f8eff82193442d1cdfd1b14a37a4ad52057fc74e91eff6bc29630f9a882323b81555a3469a37f5ee35f13b94be266af89613f50ad7d3ffa92b3f8620b5c718e242c39e501b20ef0f2cc91c1fa7f431083f868920d3fd7b00e1853eb96414456ecbb" + }, + { /* i=6446 cDividendBits=1706 cDivisorBits=596 */ + "02cec246545688c792541665e26442ddc3524cbdfa6a795fd512487ec33cfb58699e78c33bbb7fd4e5a8d61548923a10cc4a12a180db103f5678cda97cd3022761d3a8c7c21555b06123eff77420a11119e7b91a0b69adeb63f4f78a2eccef44cca5f2d6096e5a1436f9e148b4e60d0e93461c066de28fba1c6a0268c1a0ae085038468cc6c3b4fded29c62005934e76a30b37020fde44f9b823354da1adf7a876d6bb7945909afa6dc52e6d2ccad5ac3412801cfa9f4c27e8dfa3574b0ba8dcffdbff5f66e0f289f770cb9405ca15d4a4849cdf7eca", + "0a61be7e02cd4c72de0c8b72ee93acc87a17071a8c12c99b2d7ac40786c731e7e8a55a3fc9b77bae9a7321b54782db80e17418611bc0c7c65ad631b0f58480191b3e517c5a4cf95b36c47b", + "453b854221e7354fef00a1120440a1cc96ba5d188015cbe437b8a9cc9829c47fa15c0ee1df08411bc04078320d42364637512aff755b52dba5b9598e58b36d6204c199f6b07daf6bcbc675283f10b8c67baf6bec62c41ca1d4e5a24ca96d735ff38e31263c38c0037247b2f9109aaced40c1bb52f3e6d454bb1d50c5364435dca0f7262f0bb6c405e36811", + "08ea590e5a5467bea4925df0a881dbccc3da8898b05d929088c10f3bd0186505d4218ee91c456e2ddc7d4be188f799d81cd5183496a0f558669a27b87453fcd4deb9d738c56754ae597a9f" + }, + { /* i=6447 cDividendBits=4078 cDivisorBits=1844 */ + "0c4bf9d823bb36e1f9fd754167278f21b4fc465695b13b03f0521e46f6fc32c63d163ba4abb2d91c520e2ff7778125e51add35b42b6d92c9b32bfbd1b8c68e0f11eaa440de3480b891038f2cbe9ffabeb46de8a355e1a6ab180e1b446b43dbf5112985178dd205338f365d78f2a5c014e75d32f4a4743defe91e5c5ae2b1c6fc94dd1e9758ea9dcf574ede2c6a4e8a9b0c108781d1f1678d08e2fcd8f1538675369b6bc8f8ec72573d9e92342ae855eec3d2bb15b120d5bb6f70e42e426813b3a29705b7b246abc1d0d8e184d24dea1f539d7f909524add2326af99d8e24f3e4c7c513a0a07bcdf9a3bed9e7794a1e6f569d876c9188d0533beef6a170a4e68647b9730168d85ead5d9161a95a550a046af039f22908462616bf208bdae767fa3ff05b35b7b71105ec558941d1f1d9c04fb57f200c968489a037dc4cbd863d1d41139f4a40badb68ee49f8775d068ab7f10250033678e463ad9d376b58ef081693be248bf17ee92f91e530312257457753663391a7265b71d4fe4469935cf867ec61c90031e37f441837c7151588a3af4d53b6d07092a40da665dd4d78e0e2967dbd002634198e37cc2dcfdc937cc4a777173cd9e8ff1b6e0bcedbcf4139cae1599c3679aad90a7a02dd4d63d723a7160f2b3e3ad09314bf5c28a270c891366bdea0e8df90401553bfe7a2f5960fbe41ae333ee0f8c3e03c2d2bfd6acead", + "0b514cd9b5f8b99ba5c5acd745a9077de457aa7d2d9248b5be4520d40653264db6980e8639f707c2777eeb052b3be42d86dbce45f92a58fd0ce4fc423f4ffd68d4679b2f45e769bb971d8fab6fa99a725b49d69046cbeba2ff0f223f1a9d0d8d4445f7414bf885c7befc1c4c75edec75caaeba6d2babcd0fb356139ec90e0da970eb0da9dd7c359e6f1cfa43a470a716b61adf16b44abe2f5e6e35b419e4eed1ee747adf789e3237cfdc6a5338f349aa9c16fe62bb490fcf5af39ab165119d5e857084330e969dcecc3d0fa53d8d95156f973f6e96f1626b103b6e6be3fb44949e6720d133b4ee", + "01162634832402c259022a0762e85c0cf89301000fbe3fdf627cd82d945c1f230ef45d994850003ea74a7c88e7dc2b6713771c1c7fb551fd657796fecbaf290905d68665f077639493358ebf85cecdfd15f4c65b4d6420f3f43fa5a59fe54e94b1a645db58c7d4748cc2e58191a6e5af1e3f38fc73aef4ebbdfb2835d142152549d86d73b631c7982e9e52613ee376decfeba0b7e90b9121771e0aad4651969a35263c3ea233dfb740c0e67410fdcf8e3d4559d298a835e17335f1600015fa674961c4403097bd9e2768421783cd26ecdf1fb1ef203ca4e1a7c06217578fa3b86660e5be7f6e20d17048e4b93797d5f09cc54cbc6b8f402c4595739673bcf403a0447df14a7105f4e466e40b713d1d6db74a8fd043dc2e78", + "052d47b309554ba7fda68389e74d171931c6f2ab724d8692bea70babe77b20e9aad3b94b986c359c1f6846cf97d5462c28b3955d884d9d2dd11bae2fcb4919c75d5442358e3e5ca907adea0d7321b2aeb3d791749de81d46892da97db4eb6f1ce2e54c024fa74ee96ea1131b0c54d5b6de4d149b1b56e6b5def80f531ebe71ccabcaf9f8b8c43bbdaf4c12d382d03ceb9a8a02932134f812213d44a69321413c68f07b0ba87b173955949cfa1a9037ac8d60095b7fef80efafbb475f6efab793104b6f2b967bc394973a60f60de14c25e32c2c8d671f109eb3e50a387722a73d9fac08dc233b1d" + }, + { /* i=6448 cDividendBits=2423 cDivisorBits=1856 */ + "7c74ee1d078e5d6ce05d5128e9303248f97355f56a9928c74f594a67474bddaaa6f96c893527843662dce2456a0845a34ec1d90787e93229c0366fa4836a6bdef984e72124be7796e02953743d26c13222f4df852001931f7d94825ce6e51b01b2d31b39b2a414b13cf63810285ad3d453e0027cfe3398329c616b47fbec8ff08e7534972eca9a640d8359e63c9cb84e66ac06b55e9e9a1d9ef1f491bf66acf8538ce6e2d46c1923f8a75669c9c5269cba1838de41d9a2b4de5d94c5b5d593e70bfd9d9d5c4a6009be28048bb84f3c5b07b515b3bc023240fb9125fead2d760c7374b52fc61b344a5e34cc736469c02a7637b16dc275566a687d8fa9210d6ac76c79481c6fd78c74a540adef0dccb7c5e2af2a4c199821ab51382d33e72043ef0a7856629c6e87f9e26bb7ebb23236", + "ba90f0318d63d70e6366092ae7ed9719a12ca5db8722b8bd9ede5085015d4ea926950e820837753efcb6ef5e083f13da402faafa254128b4502f5eb5d726673b632e51e379a6006c9260cca5882ce7a9e993cbb3d1dd3040b916481238bd7835f78430ee76951f315d4637e1cdddc68404fe77a2f95ffb4497ca154d4ba3858acec4cd32a3e04537beb2c5188edb09ea56419bb8d9b53bb5f9256521d34d46ba27db3093ebe4bd0e58f5b53fdefa58b4ed6c0db345e87a62c4e8e340e0c433c8a1ab9957415e1acd52b5f0cf15dc0b9fddf03f7a2cac5ceb7e6405297dc50836ccb308f5754e42f5", + "aac6872bcb8841ed3cfac9e512dce25651f944fad4252183cd75a6f2ec31abeb5c37676b7fdb09c8fb83dec322456777510f76b6bf575dc2c13a02d935f7f9760eeb63866c8d95", + "a0256669f59ea9de0dd121565b76c1630f937b1398610c93bb0c1a2055f8d965cd4610f43c4773f3802b747695ff26cb6f9f64e76ef50acf3f39d00ff9fcb501ad8f5f33d8674ad01cc9bfb6b1a77e2d8f7c2bf11e9483df113cfa0b0ec32e19b912ebf6d65a41e55c4643e4e78bd06dbc89ced5c2cde17d1373f6739a2109571a1b08b346c2180ff6fd6067dd8b7850ff927c07b72fad35871455a86b99bc995869034cf0ce5dc8e968326d61b27a7d8a49b285e51a6ed40de93eedb1285cee1be5fac90cf003e0ecef8896b9b9162f2a12272dd673ddec9e0905ac39bd9b9f2aa9c36f0ce8489d" + }, + { /* i=6449 cDividendBits=3811 cDivisorBits=1601 */ + "03c3dd563bb2a93769587f55ad16dcf8de9cfcb914fe3ce4fce32119c509ca593dc4856fe00c5a69bd38b4e24183ed5370c58c04c884ad07768022c030e7a9fa2bc54cac9765199c54cc39c9480758c043cf6623ff9bfbbb7a9efaab1a1ddfba9bb337dc55f6c3057a54eebcccfa09a66ab9c12eaef05d6baa89b0688ef6a222f8b91a61da4c49faa683be6203b44dc809b2eb80928879875c0cceea569986aae9c8fa2d0ad56d1798b118ad21c2f5b00d1549da5d206b5eb4774141359be5f757f07735225c4def7a5dfe0a43a8ff2fe9f80e846df382c72bbbab0e7a5fff5823d5e82ab503b6dbb3aa476167dcee4525020d6d99c37d3d424df69bbf1e7515128478a79f8919b763f29dd19c2d70d9a308903fda73f88ddbe578f533ae49c6408f20f3b1afde2fd86effd9d16d796f663073e02bf986546ab9870f31920dedeaa4cdedb412af14470639a3fbdbed5bcf29e4abb3137f22ae85c34b8b6e35b5b500bc13676b41ae3593d85c4f602beca71f99f4702ae41d8c7a2bd6625f18cea2009e240111f6c8f3b85cb413081637c3f75088026c5a5766cd6a87a4b4b53f564ea5011dfbd10a741d02d615f61ccf9fe97580085940215b1b0cd22a44742dfa56aaded8050cafbbfb2fd63f5abd304fc1942705b976396eb4fd20f2", + "deb0966ef732ef29c134d12e57054dd0c63bc21aad05fc8b40bfe04064d2015c914d8671fb1e4176639735a11ebe4de4a3a03241aaa463eb9514a8866206dc141b928f28675dcc0985fbf22eddd3349b8826c753fbcfd58f755bccc4cd208f719bd563e286b75168eed84b21966333f26be3725cceca981410eef34d5e9fdb42f6d9d3a2702b43e9c0070dc528ea79ce51eca43874ccc08cb607e1430abbeb6b3077bcb3785473eb70f8c0266d22d8d8574886b66aaab2694ce9bc6fbe7550e30330b506081218a0", + "04540a657085223a2e71d6977cef8c38fda41e5fc3fec62039db15e026c32a37b520716e5c8f81c00e475d9a33a074245ddf1c656252f4e848b6c28760f206b95fad2bf203a918577a16232f58db2343af94a12e3067f28239cee7ed0346bc304703e4858f76603bae4ba16d08123b86fc5dd1f3c0c03580f3fae2fdc7e3482e55a96ec00fcf0b68d77a78e426eeee11c826c2dde5f27cb37c9d798713fd1a8d5da77a8ea21c12cf0fbdf4061c72296a0e76cd76673a72bf7f32f7f7f4fe71e76fc6b024b2857ef16245795de1058612c96774878ea356d2e6535819a5276e245f028ec488d0706d688fb45ac00c1bb272964d21363a479030505c4dd3db7f53928a9b3c462a95c1fee17e624d994421a750018e6c", + "1fa85ce2e300086e5ea361560b40c645d1fa900976b6946231abd3f7dde070c5b1013a341001b00b789adfb564e506c3dc10ac16114e19e1977f3899df87ab03e4abf5d196e61c3858bf20f65ae7fce1abe680f40ad2257490ad3b838a84e5fc1a681187d0d408ef31f8d30d5b5aa95cda4ae91ec87ad8d81c7e38461d4478cc77f8713359b4f32c225b05d0c601ab531e765da765a89a79021d6e24c11f7759533174bd54e5a099e0e0c547a6f674678319cccf2d781d70d5d59ff4ed2e6419017a22452b11fd72" + }, + { /* i=6450 cDividendBits=1852 cDivisorBits=1057 */ + "07686f5f6a2f217a6805841d524f5499ea9cac120ee287507ee80ffc076a9de3cc2b71fa15d61907e80ccf0f4838e0ac91f602e67a214f0249749682147240f68aca3d330b97eebe9c6553de61a83c0ab0697387feb0786f4a6a2519d8794c0778661f46d82bf414b72a42ab7f9653d0a16defae34b57dc72b959b1c0d3176477082f2370085b6b65c6ed004a9044f35fbe313c1888c92bb92feaa5f79f70a48362ddf74d9d7f49e9aef2b40dfdda58245b24c91b26f93baf1b68baeef07370571100b491b3fb8614668dc1853fdce0acd90e2e247959a7d62c7fd129797404351661de464cb94d2", + "011e0ccda1d6f35dee177bc5940b9f6dbe60a6c5a68530f01e6e1dae690e7082701912f13539639ab96ebf192a898efd9e790c9c61982ebe1825c129c1df773d556d6c54010d82c4055a3901d248ab5d3bbe67d2896f761397d58bc4f6ad6c2416a62608b0f84e4dd7c5470f8feb02dae45f4a64cc38f623f70d6281f20def89d9004072e1", + "06a136253a4b9bdafbaec54310dadebe480899d26a39b0fa606e1b060d9daaec0b49c9d70e27a700ee9849243586a23fb48a22ff2eb5fc5b7097ea20d7fa7afc403affe019ddb0404758022b44094e63eb33cc783f1e424833eaef0823463ce3119243c3", + "657093e6ade1498235443574b8991d1675aeba0ba73e9c89240f93e5a916edb052ec996794b7a9fa573b7f2f3c9badc8d157bafa391bf5a8d863739118499af8a7d7109eba321e49198f968971b03fbadba8291bbdecdc5a255ee83973b89036325eb8f09e4f4e27fe779d38631fbb2bd8cf5ef94280f53c909071a27b7d4ca2e051306f" + }, + { /* i=6451 cDividendBits=1610 cDivisorBits=1358 */ + "44ff6a7f4825018e11e6fa4107ae2d7273b27eaea0893cc001f2fa9eb8f5a7b59faa6c74a0a72ee31369315bea8fab572f8255d972aeb04379fafed465d8df8872e0bfd3be7ada14b9352805bfe66443e49565757f86522a9384ab05e0c0011eff975dd41ad7cd3d137e31f6eda1d7f82eaa6764f908d4f372198190e066d39c3002dea2e025163602cc40a13da6070dd0733a4a00256d34531bc9da2f7fee793a32fa93ff2090353acac514d1a559158a4858a7f23d9574ea5c17364b9c4c69942fb1bc9a52135fe6", + "0caebd4d6bc319e22e82eb0540ce2a8ccd534787d5bbc36ec1e8e34b64ff691ce463915f4805436649964301bd5a18ff8b7efe65b19bae59f5fa918f3544bef48cff78fa881be95bf1e33e1c07bc468579489972f9834bfb6970f772755489ca2268f39a29a13b25adfdcb67a3b370e0e5b53d66b95aea8deca845cb36eb295a70f03fbcc227f69cb0b5bfa0f680d112d8980a29e38798aeed77a3c26cd2c9a276047c1572e21cf55814", + "0570bb1ec0bda8f5b5941e4a41384eb1c44bcb60c3e10248fdd91035afb1f08f", + "079292f1bb48edc80bc66eb188f5686193c73b88f76396e01d5ee857e8b41217e692482e7a5a528d5090524e67a4fe3686e0d06960e8464f88b7d75b8a3ee2de50f9d11b6b4fc5b8ead42afe43e9530d65d0621d94d30f9d48cc728d76e8e26fe09082577d7bf90005d3012998d35240d88f35377c035f769fbe0afa18141a6ee1d5698a0e78366519682ca0903e9fb0f7a2f88b2097d01b03ab1c04f3116ccef81f02a05c2a90a06cba" + }, + { /* i=6452 cDividendBits=4024 cDivisorBits=2494 */ + "61b66a986be06f66d9b754be21862972161c3f80922488ae647ce16c17cde2cb93f3464159517475872061b1fd9bd3e8a2d73d5d7ad8217eb90a978fd8f4d623350bf3a6207c9a320665a643397b877610307b79c7ef84e930ec641bca9ce66bb4fdf22b5a2b212f8a87c2f3bf86493e1ab6b5a04938339042424a9daedc8b69233973972c409456e07b7168b94030c4d3bedce8eeb1b391c673e35138644a0b4daaf77e37efdb8cc95de4a394cdac0b660dee6cbccd17c17ae6e2a999d1fcf69d1712eaf8c5b59c77d4a9e7b9efdfc3fda78f79be9bb337027107ee93d6bd50b57f432905915aeba6bc58e88b8af34dbd57d2b5d3de9b40e3ee98bf701688129c15ae43abe08916f63f3d4b0a2afa344c426e443912f6a7fad12108b7854c39cb496f91532016c19c85024106ec806adf38989c0744acfb688ff3bc2c4fa3014cdefd7eebb002a12eccd7c5f7e7825128df22d84dcf52488530e68310671232acffa999a4061b4a1caa6fdc66610db0144877672d90b49474dfd2f44f70f0e85ad7747b21336eccf517ec550fee75dd25c01de9b3fd9a36900d0adfd34be6727443e1fa5d5941de69ef94defe27f3d150e19d17e233e5dc5686d50fa80950ad27dd6001f9305da7d6aa527561d81bb74a4d4373eda302565dd82e01ab7209fe349106c05fd1b950aadb24332bfd3f834d5cc345bec546", + "21ad75ad7cca7f0ac85656493ce8b2fd6e34041605631b9e3478a509ba80c0ff0f40de8c16372903fe53e9c21966ffa5d29c4b9fd8e013529bdf38636db556e428560a438a782ec22071ce2c93a45776f7b18cd6540d8afdbc1c05f8ea1e0f5b0292cecb5ef31716e7d57c1e227ceb867a75bdf04f5b2918033c1e7ac010ad714df421395a8a321c8e600a8ebd81c83ccd36e5bfe5f8218a3de552545b60df9ea52634ca7775a3562c18934508d1df10671cee9fd4588344bc79d930caee4ca0e6fcba8c836bf61f4d7f961cc1b745f0839c17ac3a5d94ab7973f1d1f4db1f8a8dadfde81cce150f54f20110ae974d9cc798e56166d0f14466785367077af827857a67e569434677e7c72e07080d381cbab9abcb22ce7475243c8d89fe4ad643572135137aef88c48826b63dbf98eaaaa0d922cc0a51129e", + "02e6c302f01a8a0e1c3845a61fdc1d3aeb4349c0ca6b61217eb8e9fecb124341672586d1681be0ce2ab86a1b888eb94b2641fb2552aa2cec54e45524d737f870a3a06d0b8d5461e61a9f8cc3bcdc8bb64d48fdacefceec28a3feec4e3e0c12017628b23fb10b7d9cacd6cfe0d23cd2d6a80342976732b271d5ea6390b196090c6dff6da861727ec66139e23efbcb3e845c50051e376910e93fd11359b3b5ddb6293a843134b86f3d6a9bb6f2501070e576a84870014a692686f82175e2ea383e", + "1612b808d0b3db515232a923a3de92a89e24efc672eaed9653a4ec792a8895f761f348aeb2fb1b4c3df89bdf0c2c4eda46fc36a8d9c59ef955d502d7a4ddd308b90cb652359bc75d2c430dd64e8c78ab3093023d5195f2a4962e7d3af272211377ad82937506574c27c5461f1b6a8de9d44c2411292e34acdfc554d6d897e48ecb5cf50e3312b1bd91f5b7af2ce902284328fc4a011ab8bec72955a3928d1d9ba09a644fa6c6f31df815cedaee6c32adf4408f4d5251d9d78703866ad29ec78f4633ee57a8aabb0b2c1f90c860c10aaf98e0e6c86bc354a1eb385cb1d506a9419f2a98da7bcf8d25f0c420ba70f2cd22dfe3a149905a2d18591518709c1e32361da8926302da88f7c407cbde0daae33c25f75322f3dcd65fc0c2ecfa62cab2a0185fa7e3c26e7cb0b44b9fe66ab5e93937f96c56899db302" + }, + { /* i=6453 cDividendBits=3617 cDivisorBits=3249 */ + "ce715a734cf231e5b4363d89d57306f7dd90201001cdb173b52bcd6beae4209cf9ef328c64d9add8425d1798e2350c816bbb9cf036ca6614f43de933a91f0f6880cc598ceee2e1a14b7a01a97182bb69688b75f201cad3090501a3556a56f8b7295bb6ce901ac7689819036e996ccaaa0ca04a838cfc9dd26925bd13f3924f9372e41f6843ff9098192e8686ddb2eeee91f253a3b60ca609a09e19ebd1dfde58e2375aa4f715a405b18120d0cdb5d1f35357876ddf53690677b6c9067b35fd58a750ce1e1087ab2efe5121ceec690e751ce4280d634c9eb84faae3323bdeed52e77560e304ffa29939a654c671832bae1a992b43dd76dac1e430d94dd4b32a5a292b55a556ae6db3349934fc0c92feb9ba317e712b53eeb0a82e74cdab8619f02e83ca51f7d664f7aad7870f9955df2ef3a8ec61feff182ec14f1815338b1f371f46d3980117678a5f6fbbe07bbd9b8fc20d660472f2d96654b75eeaca7464705d044468216a028e920d6659258d12d7354f4d53e1e6575e944680d4fa284acc7c49121f88ef0a0354cfc8cd20187a399fe29b91693f16e4775a7c0104071b2b5f94847b37a1772ef011479b9725682000965c0b0b80617598245c2a3e0ff256d0deeeeb", + "2f68ce9a6e9c8ad906811760c43e558cf82ac631bc67794cf75a894bb8835eb1ea3141181789a0b3290002637ea603818e1094eb52503322ed608a88d65eda60071dd2b3c3ea716af286d50f4167f34795f56bfd9e98294ee97543b68e185b594870177cc79d7abca3f5388606c91ac4f564c44b521fcee493e3b384a914d596568b851d581e9b39d95caac4fd28aca89e0a523689bedbe8f8635ba08c72db28312c400779131c8480d4b1268dbe09e220da52b30bb34ac7fbb73465070b7cad376fcc173a938cd368f29f557c3445948b7038d0a3127362311ee8fd95937f10734ecc92f382f601f5bf2194a3cbad173eb79109fd566eab2309d9be83ecc43ca8028f380eaf8af672039dd02e6a10ac937c9f6f24ad1fad1ae11d05e95b8537f9751109074a850ad8727c828e953148566a48692e8cd110533b040b4b9b5ad33cda788a1a5776da88f09d56900982a6a07ea577808b3889bf9ea3bb97947124a6a68f74fac0e634f153870d28e4729d7f9228ce3c3ee8ec85064cd41038c26c09ee90bf921afcdcb6ce67a568c6ce6ce6f6b4e8af11", + "045abe7f86b5a7991b7f125f296f75653fcad5709830882335ba755bb631e0bd9d6e1ef0eee753b23242ac3bc22b37", + "7447d0be1d74886be8d717dd7f3f54209982793a57ebdb2978a76770478079b1ce51e901a9372e449d0ad2cfe6845ad19789aeae8948e263a4f6a2d58fc71d95884496dc331424e4ab6d3eea01678ff12bea70ede647bd943b2cc1efdfd5c99fd0b71e4291118cc225464abb6e0e31e47a3f1b16b18f848105057c8862cadf8a0cff22b6538be2c425b6a67263d4d41b58e735a3ed1672c268720dcd8e829531c3944f6de17f22cf1fadb4ddd861a750c9013059b491db9af0579764af49c2ea06f35fbacfbbb52aa1d98396f5e02f2a9e44a5187cdfb5ac1882eda0ec28ae938655de5509563c52a1641a9a0bd3589c6b7e50a09812db7b58cf99aa81d7c4737596930c12a00f8a76b18d224c1b971c5ccdacd1118576c6592539493107a7631d53ba018072dec93b45068675749e07e5da531d16b83fa5b42828f6121e8fe040d7f19723431af2db5b9e9d1a98290251d8c498dc362fc56a5d2a03f48c9b6ad7aaf79270f56842ec7e5977cea07750ec2c5ca0d8b8988eeb9a8764a5b216bb8003c60adb42f86ee298deebf12a6e28d947977744" + }, + { /* i=6454 cDividendBits=3664 cDivisorBits=3412 */ + "660e0c7f40da38568d4b36ccaf8ceae6643e747e32fd2df75986903478c91e0a45f304601f4275cfc15dcd5241463722b51056684a9193ec9c563a7f0b2671f12ec2e3928d17ae0e7aa3446218594477bbcd74f9b1ca4002ab2ce17dd832db95aa932f8e03d6049e6ebf94bdfbfca1c3a8bf823701b3e70ef3e0af8295a7e896575c196e87793ba17646d536401fc2da2c53288bc27332575a56a21ecd7d7b98628c9e10906b9c984f8efd341a7df1bf15c78be0cf45d978242575154a9f0973512e60776fa4e75784b1fccf1b6b2f9a43de6e1a2bc736be547f41b33ea370baabd8145e74dd24baa2041b8019dea80779e88edeaf24d52ac8ea7c974172b818248fda3cf76e839742eee0bab522912eebcfcd8cfb8c996f1f0f33bee5ec6be974097f985412f80a891aa1bdd568bb864a2ff8376cf155a101cbed34994d9fb90901ca523b6c458c3c3e5fd46676968622fb58427100112d61a91ff371f7a988345ca29fd852d3ced60786f7edc850592ffb64f5b55553f70269b8e14b128f053fb4ae1bfb280da3aa2c42bdf8feaf5f547bc45a2697adf3208b4f20272034b260c8fabdbdd2b9be5a8780ee348328716ae15a2c3265bf8a3373c73b1b8f63ee8c88221400c014fbd78f", + "06d7bfb36a940bb72cc6a2f163796d733fc933697fb6285465c31927776a12fd20ae08112419a7d65cdea12f55b8dfb74f089d51b5bc8971c96e2c337a400e06ba901cea997155f0ff6839c6d168d361f4f8a41a220c38ddb045decaf7d8b28df8bdcffe26f8727c8a4a207be97ee53c024126485eaf4c49ea642c250357797b642669551b7a7e225ce47454cf12fe85eb50c565d91577d4c147aacfc712acc28c3c3ba7993a6a332dbe24992a0c7ee39361035373f34418011216ffd125ed571f5f0870f82b33c44ffa429d988f40db4486f17cc0564b83d9969df81c2ce8b6b88baa469ed39a7f7c607feb7bb5014dd875f3f06ce32595cb7adf4d78e6b78f23305293e6257fab71859cd9a91c91f6c73fa011ca217de65519ba37eab5e84533a278d04beb156ece71cb58e099d29b73a813acc5c6006c67faf6b85e6f469be3660153ca4e784ea43bbedecd0da9cf82bcef845ef952828baa1aedc551448039dd7cb0d449421e7d08dc44342469d84ae2b8964a0f679554eafc9f113e890f3d6eaab87da014c42a127f03d84209dd9db359cd0cd5ed14da41317867e6505d6f01be27206cb4d07e885b", + "0eea0d5da16c7366cd9a807c6a9d38075f05c9e52c76f7a010274794bd61ce62", + "94888f0f9b33c07412973701f2530246829a8dbc476553492205f59902b3df236f38e7ccc9444a0be562a16e6de1caf5e551868624808ecb36a45e327f050f7baa4c04e8707be3cbd85f464470e47fb9f625470b0cc681760e473a05613993f62e93d40eca35c353bfeaed8e1df02532213adde17244271e2623eee89a60c7740f597fa153a7d14f7bcaab19c323b7ef7c722183e3ad3dc3f7612e7fd45b919de69d5aba8d89ecf89c5776bbc760f81dfd9957bf228b2ede3b19ce128ef9237c8619896a41163a8e815408fc01ab4590f6801fc705df04c2f037053d7476e2380f488d467416c1b1928d815c6996cf9e0c472442418b22c4ae5bd7e6bfa41d38cb08aa6a0d5980ffedfd4713d3e47762f639ad41cc52e46b944a1e9772714170edc38b694928d2a219bb0c37d2c463003a6990e78fbefdde9b09cf957ffdf3315558c8d1fb3c608ae1469c6391d0b8b7ceaf56ca06ac366c6eb2359500b62b3390b51b8a0423be2f4f581657ea95be27421ebd465ea518bd4188a2bedce220d5c91e9949d6d434258eca3b18842e384305d92a50a07d0713759851448268e4096aae4aeb678999576ab9" + }, + { /* i=6455 cDividendBits=796 cDivisorBits=130 */ + "0c44aa146baefea1aea5d80ff3554f9894d68abc59dc850800b4b135b6ea6f3a404f09ec089c8997c1c48ff871ca8a654512f1d676d0b862423b29c23e35043782fd06107ce2fc2b8898519c253ca4413dcf21e50d4dca0e328e7ae12c238676aba5e9ee", + "03232dccacbf4ac58717e3725b9cd455cf", + "03e908ec65ddcb4550a8ef4430032b5673b435005c9380c9b1fb6a59f76c5e40de9feedb2e11f27a147bd8345ba41c3ef4022d013c4fc36ce3423d8afcf9fd8378769263982a1bf5d9b61c9a7bf2f10c77615240", + "0211a77f9b62bee8b49c9e9247b6a5282e" + }, + { /* i=6456 cDividendBits=1638 cDivisorBits=160 */ + "149bb5266fc193a549fd12b0ab064f54d4463c6eaa51c49bc387aac3c6746c6c934ecc363a80cd6a9819fe99d6440527a160a3283b74f550dc720085a2f7a2e44dd4d844a78327611828cfb5f7cc58629d977c402e8744e491bb7a88266927205ab512c55eedd94e321931b744ee7429573fb63efe67fb754ad0509af09ee56de182dea2b1873dc6e0f488653f69ba979d8f25739b999469c2ed5629c69d18a3fba8296edb44bd837c48a8bfaee3b8ad80a75c48db16642d9032c7ded460b529bec07247b3984eac1e602acb63", + "3db96bee346add93010ea54a30fc1fb3c01d64d3", + "5578dd76f4e9f1ccc330306b1777ae53c9d4618fc0aa58423ad0de8c545a55aecf26673c8173e6e2ba0ccb2c5f3140a4101d51942f5cb9f21abd1e2b7ebb14c8876e7622a5b02f5eed6a9b8e5ba0c17a74be7fb96c450b434c822cb9d1957eabe8d5c9bc449a8232c2cdc359079361c079fa819c6eecca60e5d2601ba60ce7f5d31317b2442e298ebe03631c3391384b8f84b2cfa230f522602bbfe43d96d6ff7c480cabec2d348a4bd91d70683a3d7df08527ecdbb3c275b4", + "05be5f385b58b2d557f6d35ec9c252a6eb857807" + }, + { /* i=6457 cDividendBits=2617 cDivisorBits=2047 */ + "4483d2511a3a9515c3a31f92929cc5311f6cb53e87b1a8036d611aaca485338f9ebbf5d4931d4c9f30a3076ca12d6fe9b5de7f355e664b9da1c80349a9236622ebddd399a156d3b8dd899a10d40e8f72394d40953f726b02d86480b8c5c1294c5f9beb5e5f60c0076464efea6fe5c82b467dc1b6f55910c18e5836c0c4ff20cc0ac286dc018acbb48aa55413385fe64a9c1de6954c683ece10907bda4674a9de0d61c0d25a507880a6dd04b76e85ec9b4c29b90d3e9ea1fcb1e8682e8cae3c135062eacef0350a617abff48160f266443e7c6a68df95a7c478aacc09d17709538758c7c0f821d61f9529c4300d801b128efc59bdd3a83f1aa1fe82130621b6245ee262a9ea46ba39c57d9c296efa1dcb0a23c950e95b57ddbbe690b74990c09f8b7d8b584a166ae730a5f612ddde78e2ac8fba880b2850a81668e667e0155914f45ebab9659edc", + "3778905fda988f2f2ffb37f2bead6e00872c26b2abc78ea66a59e0d25ff2fd96284db3a5b5bf9ef3af4e4269e913f416e6ee91fa1c775c717e768e45eacbfaa220b76dd14797cb2339a01f026d34c187a01870fd22d6295e724abc3aafacd37b07ec4f347444143e3bbc8efb15d4db22ffadb02ec008433088040ab992fd4366aae7d2b70e127bbdd4da5c6fcfcb22dcf56ae5cbdca762f8fe3060621e56cb0e2a928b22a9e9984a7348a50a93f59505406feab16dafb754b1bf936a4b01043b188ceccb22efd67ba4c3a9a9a4bc8740694fc098119f452ca64d0612a377a95f393086e13a658c35264abfd934f5ade94078d61c3f76fa5feb569d262527777d", + "013c32c466d02828d603f14fa641216f1027083b4b76e890a8ef40bd950f7a62014d682ae4887468137e26ecff0c358180484bff7cf6912ecfde3ed10845973a3ed59c9165e23848", + "082ea69714872deafdb1d1cb30d4f3b6e81c8a97e1764e55cb2b2525cbc18d5c47b0b4c50e96d6792138fd09cf22d2c53bb4fe7620b82579bbfa3c6321f45b144a23475b515561fddc3ec9db50b9d05715693780d39805337c32cfa2be04a273db9d25a8857e33c8609b6700ddc2b40b62a003d8039855ea267c688c06a4579a47d172cd588d92e9e8ea434280b650dccce7becf8aa8a521e2f3630aa50b14addb286d144f2f99ad0375fc481e0d2f0c9787deca475bb528e059d7fe889ce921353674a2cb28e2d7be8dde060d5e22ab14dcc3c3a6f87b25dfea2193060e93d3605081a5cfe780d88301cd54882224e96334d169c672391560b69b16d6ceabb4" + }, + { /* i=6458 cDividendBits=3835 cDivisorBits=2575 */ + "55cf94bef1208a112da505e9e925a83ed4b933a52a7f0038e428c7b806b2708487b8cbda0d93627e63d3b4b27a5923e9a54880c420bfd1f8f6b7f2c740374f920d9d2a294f525ce5c02dda4189d2b1f18231c0a01ae1cd5a4697056e46c0236ef50658f089277fb261b71fca15722bf4bd811cc8ed5318a2e3d08f984ebb5fa95a767d65ae4b53f6d5ffd5cca15d26afe895601b40d44954b5c21475f418e481b0df142f0ba58976315eb534c7e77dc4feea7cbbad6b1d1b732c8693f439de1eb3dacc546d2cbbe1609a5887c65e5e14d696305df5010a4363557ba8fa6f0a84c63f30be0f140396838a2d16b481697566bb1dea941d70a16564564a78099b6a9936333c04cfff25b6babaf588752b190b5b37ab5cd091fbbeea14859f521b0be3d72d8af41ef7130fb2d4f3a84d8a9266837c956541f4413fd913f96559595c8ba7f8627af26756dfce0e96ea5974e9681362587418d951c0dfc842f7f5ee161b79a920dc40edf5b2318896ec2ac84b7b69094ad5e7808e49670a0523ee83b64ebcd617145f284fb831842e5795cbc144125c3b478154a6152aabaf5eb878bb4d0ba051e3fa3254d136f5ad2915a23b30e48aab9ab271459f0f10cb9ab32ebe17651aa2d03afbde552ce0950459204d6d319478306ccf185b44e84ad2bb21", + "38c4adc09291b864aa0be498a21d46b34e9c6e226fb676ce5889968308b31749b0108a7d85873af81e99feb25dc0a1b7fc65db04813cd893b6689bdb39fb32e0d70dfbc42c697cd27c06ef612f3c36e9f39a3f08fb89d2ce6feb48c8156d3eb2ec145ca67c5c3480b5200f2e54520409a0eb4772f2312c1b51ecff28c4a1abbb01c3081ea4ea4c93d110da0fd2695b4c5435688298c8dc78020c24c43a980f3c48de5a86481ca06e57a758942b81b227452544a537e9b5642a30ef20c9896225e770c1ffc14799cc8868ca5f7343d357e6655ee38b83f5f0ab3be6d02135764531d748fbf6993e9e2dd6577c75a7a87ef9408df60e43f31db3f2c9d2417133868c205c6097b2c8a38f3f2f0eb3e2d5226d5944d65c501d48623773fdaa1f8446798afad15a7b7f0a28634f847b6ebc0442524e75ca33e6b38d77d39bef11cbb50185", + "0182f8251a4a57ef4a577b1b3ccbdbcfc3543e678a395b22b8d59ffb641cd273166b6098b84559e5a24f87d61bbbc4e86b0091ed9c437e5fb11c072f940dd30d93fcaae51dec0bf29712b1ddbabe6299ceebd1f02181b5958f46db39f4753346e887d59ad1c5ae31559f3b72b3bd071536ad4d346a1db67e5edcc2b9d6ad16dfe193a43d50bb08e937e0c800e5e7bf75e0ed12df9e036ce91369f28641d3", + "11fc6399b9b77f6cb4bd25f0c99a0e7476a02b34ba6c2af95e4900a0d866e3c7f745b6b630450f5e016f7ecde3ca5aad1a3d39656313ecdeb045d48f4a43acb0baa45d685537ee98b6f7f5c52bb91b20b6f366af9ce2ab5069d4f2a4227a117837d68b7655b96597f4080417e67c6b3ae776cd5f1c4019cf4d1098407e59044ab0514acd7df2f919a253e64548e5631b284cc252d6caec2cfccbb5b4682360164eee0d2464638b02409591e4351e0038dc04a8a068fe0d304d8d5f1554c5ca99ee4f1fdd82bd1f09a9467cb9ecf768101c7e2ede52afe1ca904e042be1180af9c21830ae07a859662d6d74afdb369e77a73bb4e437b86b0b291488a0bfa1cc14cec0175a2e96e64cab0b3a0e8f3d106d22827a7cf5f0e2babe430bb45a34d544d8879621847473c67a7abab0a6ef75808fd07261d3082ac4fb56a6d879c8e9a1b582" + }, + { /* i=6459 cDividendBits=3385 cDivisorBits=2269 */ + "01af7eea4ebb6b0f6ea18f88e46131b2cbc8f0aed1d0ba17d1ab428a9f49d425272388d291a7c6515c14b2ad6b69c54d68f1d4bc03fb22390cffe6cc871c1f11ee08b2bcc77e2f3b1614ab6c233ef74820da85fa7614d0050a70d4bad0c73dd06b94f9292cde651f4c5e665fb99a4e89057f51e107a1738cf4b0cbaddbea9ac6d88b2b37a4265309390a53976d8b773922e09c272a7ed85ea51598b96de844131f6ba70d56b0e7e3c6b175c736822f64bdb3987e50f437381b471c030a55e951ed7081a23108c39cf43b0e189c9250e0f3671563c3664bfa6fc661e882872c39b83fb66c0630abe309e4e65ee07c0e056ab92b5e1793ec195b874787f1544cc1646db5fe49b49e91b151f982632350cab68d3657bae4035616dc9a78e6aab84a77dbaf099c689830749cdeebec12ee134898db3d379f559f7767b4bc7fc88a6bd019aacb4362c2d558515e03e8d3e3a8399c4fdb64202f0dd306a55bba58f8dc7f390436d839c6b0a77499e5f1182316e39a53c944587e1204bb67708a72791973536efc9ecc397af847412f3c9a94b51ea158595f0d19d6afb0526cddcc843feadb54fadf34d6a0", + "adec6d3315c98d5dd6a55550b36cc6cbcb36d288d0e1f8fb64a9e461db05a0996e5677b8b672efe2f6768d1bddf5529aea5166d0fc09fb0e92c6413a836d29a3ef59e56e326e0b6e2a189b31b8bfc31d081eff30a3b1da49b2871e4cbfb81c0d501d4373e797894248c8e0cc26f69001352365ddd659bc2f19ddfde0ba2ce6a076e08bec52a72000e48d4a87780ac41226c505aa5fd328b418b538b27c5ec86c071275a3d19882571c8e4d951a72f77e535fa5900e629fec907f7310a1bde85b1a91f66143f0ef3cee859d2be7cebdc7ce5e60fdcb92195f368b9ed0a011ed2a598cc723d8b9cb0909240f9dd12262258062db1a82ce3c550642f89d447836135ffa6e6fb12b51622957c015be6f140a179cb20bee9578917504fb", + "027b1f98cd3506ff32088286b3f373d6cc9366276512b1baad325bf5f1c315594ed7396c6423bb8b76351a14fda6c80eca722f5bf40e2ba7e3b56de2f63e9ea471d64d3a62f6bdc3df597a2fd3e8dc161c77a7219372883ab702d7d40f2e89f1bc6197f46906e89a53bf978102c2034aedd59f5d90bdbcfbc91a81f82b5d80bffa33c9e2a2d0637198b2c5def9", + "ad231b3b703788a4037e7eb694bfd7e74b567ce2c5a6751d43b797026391eba3065674429630bb9ab8f256ca756ff77952b5070e9025ef4ea3b29ed40d9c9c4178126ddef5dcc24e20a86024e179f6453b25e78645b2f16242defbf11b91be98221f92ded7dab8948175427ebb908abb0bce3fa6dce9d6afcd83bda39b757e3c5f886a48532bfde6cad46d1928aa75a32122eb405d6ab88075418be19ae31857ed0cbeb03963614062b21dc9ee3c90ebf8e6156f00ffe4b03c115b10810374a640c91eef68026e5d903177bd5cfbc5fcb6ed2f17eb6646cbe32c93a10a2ffbc3a6d433727573a75602e1d59d9bffcee0495970b3391dbe61a85b3d5e2fc5df658ce9dc327f1e4506b6c084b9e4f2abc3ab9944ad8358068eea547d" + }, + { /* i=6460 cDividendBits=3596 cDivisorBits=1435 */ + "070db8b3b5a7fa3dcefeb2e7859848e5dc5952d9c6e2754f64f5a509eb7df84c62b864a5e679b911cf53cfb1c29a7d2637bee1cafb58eb0691987b4639e237777a70dac6a38cc2e4e29dec74104bd262c94d5de749ef7d08b4c346efe7574002846291c8c880102503ef6b46791fefbc0793636a8c504c9c1e00cb1562043269bb920dc06464ee878e569106ce5b2eeaee180cd7d93bb9530084b983fb00333315b9ced7aff799775d31fd134ce097c957dd411185ce3e4952168a4591f698c268ddab7e0dd9401914d9bcbcad84ee35f00af81f31ba74d3a86d849d77418b32c4f27fde746ef0d4ccac9aa5ff1543d58e8da3ca40757adf953ed950878f7919e11ccad45befea7589a01f570f4e78c68d1d126342c7a42ddf00bf2c07a7d312cf8ea2b637d17187caada8e058ea967a7444a520ac6e668b1d7dc866999647ca65dde91071b2e2b2ff4048970175c7d325b3533c96721403b40259edd2bb52b3463deac7104941913119611801bbae1dfd77c9ed5ccd190de83f7b1652624531b0a0d71cafecfe21ff74a273a14c5297d18f50420e878312c1eecd410e934a3c71a4e12f26c9d054157f0419d765a3b29a1dd517cd7e3ade7ec2506f4f791a5bb4b4", + "049103aa231a90af8eefe0fb07d10649c3b6700718277fb0064487152706bbd3753f7e328807d11608a5b4af923e7b6e5123bc2ce8600a02a9c20d51421dc417494705367ebbe97e41ffd7c0cf26f8220754377ee5b6bd6900fb15bdc68141dcdd48641219f6cbcb78d993dd6a6890af72b6884da41bd15365a8383de239c9b1679e8dc5e9faa75de3c30eede92fc4d2984528ea6440be564dae6389497db6184d1969b2099a5e39584ce16ad23e2ad96e985652", + "018b6e615db9f1b961bf108f6d8ab1e60d6d52c82c31c10c5010f28d7eeafc60d1a461bc49285efc879c540a6d695006a0bd1a96a429e63af9ab8b8148fc590ad3cb4319bf1120af283d43208e74ed10c2e619a754effca9e7596e6c0cd232af08301e9a6da233fb5f838252a0035289bc76dee82b0350c636b4b938525c835948a6150fc886ac57d1c59bfff12e882fcd1d6ce7073216207045a11b2f9dc7b9e9f992cb919ae325df72882e9362d9250e85eb05133bd13ec6e96660045109e41def18d9121fdbf18635fdd1fdb6cfe06d01022cf598a167530b0127246c051fe236a70a473a03342074f7bc1af22567c82b74f163fc1f808ea835f929ff39e4662790d0156da77eb166bf59dca4ae", + "01ba9f9e60c010b8041271366c7f133e2d52fd22bf9baf40e33485da4879ecb4e237470c9c9e33e74001e0e456733149d913a4e8f61567e81ded2ef76da54e1dd26a7449e7e1cd3eb44d6abf092e727905aa2ef79525a3820ecb437fea62d35f2b121b02cd8c516992a07b4b84eb527f7cf115c0ff126de9442a7645460025653f9b7863fd6ef4bd7fe61e920c862f74491ad0e1ca21ae274b75ecbec22a82b7292b975ceb5048491e3c498cebadd0bba70c80f8" + }, + { /* i=6461 cDividendBits=3790 cDivisorBits=2400 */ + "1ee71deb5279982672b15d517700c9173d333d46dea5482e602fc9877a3d04fae7efc2f7f658b0618fddb5e7bb4f223e9148f45704dac1004994f1b73cd11c6560d3f63f45b690d047d9e37c7500245d072e0e4b8329526666899d39992e7a1c99edd8e267fe397f86b042fe197ff6abc6389702afe75de86b832955887faa138620c5a520a4a8d57978c5fc99cf8d2249eaae4433da48ddbe3dae7813d23b0952ac8a50cd8236a780f294c82333d98c09294f6bf2f3577d0fa69cca12974bfa956c2da083609170e89dda95f39a55dd50de3362d463ebd67aba93ff30584f0537aed46e117d952ece9f581342863d3dbc663d41b9f808eba1fd98cd253a9895066257c1b650b7b4f35215ea112d7c67d2c49d95d89e88906a5e13d5cef15e34a0cc821ad73b12e8264f58af9c83b9707167ac57a5a15949771fe159da1aeeb4286b1d6c0594cf65f23f087736ab288095db0251ff24275fa7329d81195d99dddf746f068c4dfaa71d49d989941a64723de3d11efeb4f321e40bac8666916c3bc02016e559413370b3c33e287cbcd977d4e157bcfee4b2d475cc26783cf2ceb32f54db273f2f699614a786b88d06d8633b05a22d163db0d2d96ede0b473dd27cf7eba886119b8db2092487e1f120229a78a210fe9f03018eabe3", + "8b7c2bae406bd3e0e6dad891cd3bb1294a5dd5b648fa8873436cb70019b95e7542644115322085fadbdc51eb4e1b4801807f5ddd29e80d99ade443b284c8a0265848306b250ea1b05a9960525c81e2f07387213ddfdde5219d162331389bc1c1c34d97624d1a2f74c2b353387a2a578cf8ca911d6807e38561c3554ebdcc6fff81cc57a9624813872d8deedc83be8a3bef021e3cfc02f4214cdf80fdc50cab7bcba12d20ec6c8490d9613d3b5686dcf937a1d0398d80cf82b387f7efe8c158d01096f517da60de22f860abed5f745a3ee31a730de2a570aa878734e8447c7180796ff4fdcc3bd1fb1bcc2f6fb430e90915b83f634251d6f5886a52e9ff829fcbd25429c9a584242ba961faf5b97dabc275e9c61e3a3f4c246dee926ec05d3212ea52ba1b2318ed48e3a5863a", + "38b772e4d653cbd8c4e64f4d62fe0f395d28da92542e81c6fcab590911d49bb218f534153f1143306750a8f25836192c8ceb1e39876b241aef0fc03531b634590b441018810ff2c6e87aa133c230d39114551a4ebc40036daa2c3cf6d6c540614526dd320ac993acdfaffef9c6e1a06031ac1d264775831c75d1c7b5456251f3b380ab1e364dd4f248b0d9cd2c443bb7e4396b1af75973abf589bceac33bfa9b689df89938ab2918ea8e43124a32", + "6980ac9055c12325a653cd9a936f47bc48cb98886215532dac579ff6cd8f6918cc8aba9490b3980607f200669bfe89cefa6353f8a0a0f5ce36b0fd7edbbab37b077c7d39ac26300b4b1b14fa40c19fa60348108dce1d4c2dbe6217b7dfe5a9c5d1df565ce3b7825feaab1c2c6b94f00bd0018a95fe4ffe9142b20884488daa6dbbe06fd8c2d572e5e99e0420d1498dcc9012fec19bc92fb52bd9e54e0771ea81459eded8b3b7a90bfcaa5d26939cc2b34f6c435afbd636c14af12479aa165c165d0fc95ea7b1a66fca3288d33824d1de0c52d63baaf4e939b0807926bada20bf494d7184f054d99d396c2b7ac10b85aced6d24fe8e067b5bf2f185d662c33b0d331db54988d985a0c3f226ddd42f3c3a8603be7881d05e23c2261f96129284af6af3d80fcce369081459b08f" + }, + { /* i=6462 cDividendBits=2989 cDivisorBits=482 */ + "1ec10a09a682ec692c5f6b98c19e053922861c8e4f2c676a652c6ae275a874134eec583decb8f5f03b14b52af3083eef6f413c7d1a1b49c97a564c7be57729c6377990a42ee85c60018c0f35f25f62126e643d03b0ef9d07514490bef2a466e781b8e617a2c5f7d94740c13b2c8dace99edf76fdfe28cd6bd04bb425f04cf0eb554030fcc529e2f965c5a5a5f511dee692563ebc7a28ff54d871d6dacf50f56ef1e5bc4ac8675a8c97edd9e6e4a96fc4cb29b3d492316e2dc22081c9dbc3eb45d2be84d22bb7398299622784426aa5aa8e0ffabd8fc3b434ce187a06b40e7edf628cf3a95f3582dad08c75e84abf45e0dc2eab028c4177a1e7cdb54d5f190239e734923ef599317a1bff0d5072e281ad23c3ff0b4e941b9fdac5bba500233380a159f8b2e48e334fff5f75bba882233c5bfdf153b3def62a377cb5bd73810e1f254aa76e277277e9f8a3f4a221db289a76290a3575e2db557ef14e8d93294a2dd96bf4a218f849d637bd267e620673c53c9696387569", + "03b2d80c5b856bbd493470440504f6eda6d302de244f4c6e513a36cf0f4ae3628a833a2447ab2d4d1e4f746aafd6ba10926524f12a21fa5a2d8d7e55e5", + "0850a60b94d32ed1991dbe770663a36ab82a3f9903e78d6f8d13f78154334ed27f9f2e2e37a097dcaf45d834771f5c7f2fe3d2b75df2e3387582ae5bc2e4d44d92aaa989d4bac59233e247d5340c32df8a338e2f02b6265caffa181ec809ccff37fc4fa7e14ce5dcd3055e4e053461b1d4bebbc883dd4547ac5bc202be1ed8f9ba9f24a0394c07f10414384dd3b780383970525018b4d01a547d3d9cc2abcec9f1137c5152522f9245ee3e7f04377609b48f3b2d7753a4727a1c299b3b93a8c5191962892e388b06a37b219413f54a7f57ed1f6cd09046561921c823147b950b4c38c332649f6a22b29f39d941cc4037bfd7332c5979a88c4c774c4e06cc5996271e8c59d669d9e08a8022bfe33315e44f584494ad717ecd416ec94b0ce5e96f6a9926f7feba769abf7dff5d86bd337b5b4867cbc86cb7af935a", + "3085f74c8ac41d6c3ec612c7b602d5075ecf01de98b97fcd5d7313672a4afbd12bfde23e01aed1c6df56ee90687d766f0cb8fe31e6b232f3e1f0c3e7" + }, + { /* i=6463 cDividendBits=632 cDivisorBits=327 */ + "c5160937ab8542f15c1043baf525756d1ff8ba7956beb341b741a38e5be931d1662f95b24475cd406dd4eac9747854a2ea08ce24beee5e3817665393c4e835c3e5076a9e4144dd6b4566c3116ee27b", + "64877bd401479a911c21d8b128a1166d7fe4587a7ddeb681db4eaf2eaac95775f94418c7b9f12e5d9d", + "01f5e25c602a240767ebc47f8d9153d5038cd6daf9c289d4f479e1d0f95ca947e59c6a2b9142e0", + "5593d9b5daa2b97044b550d307828e8340ec4f988954106309f8777be02e8a3692af94dfe3afcd7f1b" + }, + { /* i=6464 cDividendBits=1429 cDivisorBits=967 */ + "12e4c264e419fe63a61a6de9f163b504f01601d65d37992616878cf62e799d46ff9991a3eaafa9b6ee1be75ba9f0fba2dc80f267e98604ec1f5eebded86849a5e70bc94a1c47b197731af1ebe0142e82438ec7e0fb17cc4e0f531c635adb715f04dd3b094c3621ad2014d2f511dba457f33a43fba3297b30c5b4abffc2522f4cce9d19c0ad88684ec6c9eb7b1a89951a51742cb91a47b858bb55d545324dbf022fe52a38aab600eba7ab997b00097fa99d041e", + "0fc9800ac734819d51940b92d01f7dc27ec67f7c763292f49bd258ad03df1c894ebe1db64c9ebcb901b3326255ddac39d7685f6b1f2de1693e16c9a5d86561e1940642d945dcc0b6f0688451433f38842997fa228c9349a42c04437167e42e52a2b5cde206a160b40ce6d28fed2b1ea25f9081863d1037d99e", + "01325fbb96d92a49cffe8ba0d9449566fb4f7b0f287ca0da8a172d59f732e56d906674423a0ac3d35d32ea2c8f2b0a77b1c01175156b855b07e6d5", + "08875e90936e0274630321288d62d9acb244b2f445889271e6195a16bfb18edf724a893a43c88f8a55ba7b33640fd49ca3f03120b67e9cd54fdbd9fa1d2c55231fb490bf32493871037fe32d8186bffd989a86693147adb09c11372a28b3d315438c970b32cb54625be1a788301b51a5f6ab421726e04effa8" + }, + { /* i=6465 cDividendBits=3090 cDivisorBits=2323 */ + "80e969367b84257d8789c47011e2c56386d17d1eeb9415943e402eb9c4fbd5dd0f9cbdd71698397b027ffa405674808e43d8f90f4301b5622b0d45cf6889c107213329120c218c1d22a7ae0d88153904f4e65af304347d0bf20bd4b36f66a63dc5615aca04578155a5c0eef20afff744a7a33d54941db4759c09bec7445f713056307b36decf8df7b17d747944c8abd97fa391b7e2490a4c52eef6e9f40831d1bda1864ba8f2862fb4a455fc20e3dba05ab6db5b65097531c50d56cd194fcfd60efdad122d736896504820463a3e5bf6d83fbe07271ada5d3356941b85ec65c1cb9505183c00ff820de0bec9e27d11625095f769c564484e6f275efbfe6b09b99707730223c298a085f012b8bc946552ebc9cfc5c9c8dabafecd90b15f34f10e5e15e5217aed57648448d018c6b058a962d4d96250829081ef078f8d5bb3b0130591f35d62933be2ec6f86194ff095a1e1f8cd60d3cb43d6a4e05beb696d46ff2e61079ce2949adc00554550ed1af404070560deea0dd275a5aff604c9d144bc32d6", + "019c104d6b8934408050480e6645413c2e8164d6c46c0273af1c30e0090b504924e76518ae2ac015cbf04c2761371a53e90df5c7e33d9c9c78d8c3af96a21d75be67e573eb2d60ae80b68c19408d99e5a05c81e46c77138cabf69af761f0fb5c1584f9cc1759e336afa47069b11f2f7229a1bd47221723319a1b2581b0217f299cc8c59025d87bd0124fcb94150536e93557a43bea61045d2c04d77ae75cf8e4f1fc58f4e07ca87ff8bd70767a402a826e44575e9e283768671a0b9e14ad548fe50ef9a339591822d312d6680bec05100413059621e3f4d458351139370e4bc661e91e8cd55b46fe6404bf09d259874723a0374f44893a06dc2a9eeade8ee17d1b33a5ed57f2e06d6c16bcb502408f26610b281b1d18a658dd185d16d529f6b1a23792", + "50168fe551bd33dc42bb9d8099260fc5e4a7f898ed502b248b870110b5e364f2f3182df0ea205d1b79f0dbea5f5f7e216c1b3ec1d5ae351a926a5e6dedf41651b26e6cf09c9678ab897b212e56b6c05f4d98833bf8cbb2468b092a41ff3ad90f", + "5d0e6865dc6f287b537b331fee4d4d75c48e6bc794a726e081d904e9d0999c973dfbc45857b2d2884b96067539e2825cc0e0eea1d98d0911c0f1d956955b5ecb7f82633236d59b1bb3fd2fdf9b9e7c1ea74326c8fd9271877c9179673bbbd4b704f859dfe25a3271ca69800a0760bbeda6c61add9c57c76740827fd294846ec1f1a812468d3b91e3a59bf37354fe2709f41c053fac9579df29a517ef464a1a283e1c3fb3f921a9dc6de9fd7088f59ad4450f1da389a029a1a2607f88bfe122c31c13010ba147127665e6bdc83dce4a66ebca61c2997abd96784869feb5898555a3949344c23150d77957ca93977c6ef031c696b08beb4488ca1d2ae08b8f8fead83d5d16fd45458f16fc90731e85ffbd3dbf079591e0e61ea534c0b0539d560c2f48" + }, + { /* i=6466 cDividendBits=282 cDivisorBits=47 */ + "016b0202a11224fc1b4a6355b980457eb6e9398df061841a7e1ab9f4851dfc142773c8b5", + "20ba6168767e", + "0b1775f41ad7a854e593588a86b8284bfac560631d6842f2309f3a3c4f73", + "0cb4d76dac1b" + }, + { /* i=6467 cDividendBits=2957 cDivisorBits=1580 */ + "0d0690aa50920b21d2e564f44c3d9f307095ffdbc337acf00742010b1882eda7bbefc27fee0b9d42f40a6ff0c1ae7d597e2db832fc1b861373b6fb54c66d1fe834abf5daf87efe7e02606460822cd4de4a9c447a5eef5f98c6bf35f673516df28f706b8edaec0aeb2e0b56fcbbb50775076537168cf27b6526c43f60bfa0419b46afd83e88167efb70a5d3405af65b6cf0083c5540ca418a548d3892138af4e67bd154b8dfc75a358cd910fa94e19c482382bc80d29bf9b8becf91343f18fdaff97f865a4bdd508da1b89c439a7d3956868fc3398430479892ab461a5aa4e73029eab21ba0cad3959f8efeaac8599d691bdd2d632d33dfb0dd4261c97fdbb3b176dc29d41312b58773eac7e26bc6f8c586600b5fc9039c085ac410d145f1abeb16ef68dad835bdeb2ab1905214cc872771697f2b339c12721badb16857f0169a4c475b5bed0522a4841e7b2737cc60fd9f6c7292d43442360b24639684970e473f0d4fa9b0d9a9f1d2be9e07082da6ed15c0", + "0f5a96e0c56a02c9693d2f07868e9bb2c412b8832a9a4875d1cc76de04e91c6e26b0c2e7f67453165343ff3e0d0b02750bf591e548ecf661c3b4b6d876a75f6e711ae666e7c4328c256d22a31685e62d6dc669509bc9e81cad0ab80ed5c0ae68082c90ae81b1dfb5f125fc57bf84cf7eb2cc6784fe5089c967f47b4b2a6f9bfdd8c1258b52e0545aac7caa386b51ae359f5ba84671e16cb8b998d937294e2f7449a2610f8f6ed4e6cb91f8ea5133b0bcfdc11ae4c1109f08b0cf68df0dd2ece152ad6d6cd3ae", + "d92e4af1953194648b57088bffa6aa6c01f1cb3bcd564f5765d11592a8a0f3f11c0fc6d512bfaa87264cd9aeede53caae5068a42563d2b16864d634de9752e330426e5e47aa15ed42cbcfd002338a0d0d70ceba86a2baa7090a325865dc6ffee3ded78fc824153b8c248c98ec113dd41f90b1fd64539ec7c4410e94f565d08e0cc3732b929ee7b3a816e7cd3a52cd17f6b99277e9215e6be81d02252ef065a465464aa4a86bf5598268e6f24", + "0bda9f0d2ef690e7d161ab56f53022512d547151111f816d34aa7ed5715dfc8208ccbc2e4a2bd09ed933847c7e918e4755fefb77ae4db24fe74cb1c2ed08f9d5a97bf465d8ffc2b17165a92db5deb217e006821b32a9a054351e7da18cdb621eb611e03226bcb4b52c78ceb7f58cc87952add9ebc295960dba896d78eb6c4962a057dde5c6205fa764137aa9ca363b13425cdba0d5fc224235823ba829de5890781c85170165507eb6f9a13d64cf59945686ae0a5ad960d51fd09e859184e354e63ed552df48" + }, + { /* i=6468 cDividendBits=2405 cDivisorBits=1311 */ + "0be6999e9a41b2f9b211ca397e07889769203681409e071c334390cab9c6b7b4f862dd9e4fc6a836c542963c0ef5f6a6e6d6b6d351f3fc96be81f936b6a2549314bd4a5cd317c4c02fafefabc172b3beba8fab94d3e43477a06e576bc65f199af1c53fdd7a02b650f6e21ec623fb1abb03ece1d6f3dba15bcf6d0735dca22ca194b2874395ba6036b09cff513e488654bdb70fdb53236d035bcada2035b917a8bfe75fa0f79798fe0c186fc112a0d934ab121029ad9aeec9a4d210878ba886519cdb7de3f8066f53caa9a1562e1b36af5b5926cbdb105215ce00a439d73a7ec7cdf328d9a6c6e4ea6877bd403f8b34e88d2f6f1fdd64fe6de818e5ea5b726aca3f6573a5b426109ed0c9d82ea483b89b168f20a0881354bee2b2d0632a2173ab3131e01ff4820229fd0bd53f63", + "5da72ca7c6c24d1b51a2b19e780eb74b0de8d4875df68dcb685d7b76737a741c5e9f6bb32aa8d2ec1abc8f15c581dd70f82c6d3fee4b54653de82d0de884bb1a900fd41019a4be5a167c467c6b7a3ae6a8d57cc5fafe6e9d9db5103ea904f79ff586a67eba90c569152a53e616b4b0378b4fbee45637e0f247e1ab44f3adb53fa8da0c656b2b8fef1c90bfb633ca1e9697a39e05bc08af53c9d4ff57bcc2bb8b34ad8203", + "2087dd153881e9c2addb8cc65d6162a27496134992709fafdffca37f80c606987288e6f6d0a009653126b4067effe4d4bfe24261e4c11aca3b8c55bc04f37992a361e014204531278083899ae19c60a493e6396a1b1df950397948168833f79e53856e49e98c1dcb8fe54405fb4824ec768f44fe1343706c4b8604e81abc51faad3a006a01b07669ad", + "573b0c1ce4212ed49a3971077e8649a7a9bb4c615464dcf839e3201a4c6bcb68c1328938b34c5963df1c987cf692ad0f7b3ce7c85d49603d52eab9bb16c85cada298d2cea1753ff4cf1d137a1d30a5969fcf1f2fdeeeb5bd3a173f6bf38cf3d2e3b5fd3bcc321b9215c87bddcbb7f5ab03fc2a875558b53e288dab5119eb4183b713e9448583cdfb63a94f11b24c4c46a7fecc62b9ff36df227939b5329902f04adf285c" + }, + { /* i=6469 cDividendBits=1751 cDivisorBits=1415 */ + "794cf27c707e074140b49cca3dec870c454aa195221070d0c31babbcae8c4870a4e71d3501155e2c9f45eb9ac30f83450b013aa208a1e90ed00058d1e50ac3079678c8813efb82919fa2603b76b68ee3a739b7661e4689fe9b303ff6b1dcfd1830bed2c5c93b2f9938e96f8534c9c0876acf03e14d55d8da56aa3c3f3ba6e415a2a6fdbe8e5aab5463db464629bfec22633e30a6d9395f7e82a50cd8fdbf341a977fc849d63d8e50242322c13855ea7578e42663bc4a3e7710ab03fd91a4c8571bbf877d00df295f50db40334c1ae6ecfa4e5f39030fd51ced8078", + "7b7bac83416aef751d230f9e4b2b6b82d43caebd0f1498a75e4fc572e3ead850866a5804ba726e99619f28d94a7fec241e4c13b4ffdadb22ed45f2a794d63c7ea3901666f14396a37863d43605217d177875e1b72a2655d7d0b3a56ec1101a662b23f4aaf12039b70c96d2ddb0cbcfb766bc0b851d48dd93379a6c810f43f0e87b4d16b58cc50ce7c80af421cad9d6edb53b5f620ec8e7f23672ebcf6384e218e1c0888bcfd4e103743d40ebd8c0972ea1", + "fb79abd6c66502ad48d7ef8e0f8a793f2f6424bb97bc9cd582bdd89c3462e4851c859371ab0babdfbfd7", + "38fd66b7d88713eb04313c50e2a754f37546c1c53d005b7890569c66fb2555ad57e48f74ad3c1300f085f5292382501bca8b7f0e225d055d1273fcbbe2af87ddec4ca3a40166134ab46e43dc41a03395d34f86a3a747db34ac4423cbe44464336a74ac4884379daea5b9210d0a373a8e50dccebb76edb688e2599eff282336737a53029131a90c8fc0133160c7e85d0a900ac023c89344c509a98b3d02718f07f1197f47d6d55f61d8d25bf95868ec3841" + }, + { /* i=6470 cDividendBits=3740 cDivisorBits=82 */ + "06c085a91e4afabf3a265b4a3ea39a8ba221e141421b24c232a044b0d14a9c3da83f301e91efdb2415b08995e402fda273a8fc0e0c1a042635588ff798f12f727dec5394c9e931f2f38c1bef86b743a28b82623a8e662a083159efca99d05ff3c60a80088118c487ef929db5e85bd436dd6d7a1528474693ef45276179851777da8010ac2c34446e91a1f554fb108b1d41cae0cfd26730b5755b2a36961354d19c9adc31c8a5c387b507c62c56d47144e3c187e9e181e4ec4ecb5439251435a99b57ed59ffe0db7f8bb42b5b9801a15ced1ec17888e68c6e391c7c908c1583ab83a07a85e4a8a4654564b11d1fd384d3c63eed1107097e365d19f850c285c93d11879dbb906015e916c0e8615ab307aada95a5fdc2aced1bcbba1c914bc6fd7196d878dd61b969323594268eb025338044285e813d3a24e81cf8005d1c3ff2f33a3a713c9f297d697a683032a5d1bbfb2189117d283378624c2a550b9a41a7583276b6181f392bf7c7bfcf4d7d4f4c9ee24a6a06cf9d88c5875279d00a66b337dadbf437dd03f56f5b6fb1859545c6320f0a8b9c8435c9215bbfd9724ab98eef4cf4f66d6b638f8b372d975984784e812ef7bed447192dbd61338f47544ee9ddfb0cd1c16b77ca05d53fde0194652300d47b8d14", + "0209f593491fd64d5ffde9", + "034fc53d39a0ac6635a1b3c00b830968b8ce2f86a8d561d16dc601e2602a7d055b7c4ed394c05af4cf819d76ea3facc77cedc7451eb61da14ec67ab41fa043e559f8ffe1187db368c0bf24f8e21fb4a69db58d179c06d901ff793c022332b5a950ff16f20760d88a9566d53742662cd63c89d49bab14835c30a56d924fe1280c9cb44f409191b966fa4872b7c180a9d7dd5977bf2ef8bbd1f11d86b112258183bfd3567e582f23d0b848696c668c2a2eeccff2c7ab0b14a71aad2c3b0baf432fcd04ae00596a50188dcc68e6bd0b08f0e0de8ba0db338e4076e4e526f41073a9344bb7748a019761c63071b72662b4c2c5954e067677c626c77047cd5fe37487bca24d98e2e4c0fa13713a41b403f27e82ba9f690ba4c67c94c56638f2d0ca2c5a945143d0346792a0f3eb945afe728c3e3e777bec267e391dabda3d8a34d28d0d729e6fd8e1f3cee5a35dd28edf2bb3b873df1bcceea421811e71f6f65c2dd9603d23b14b2e836d06df1ec3b6ed807c483cb6300d720cf80f639f986f0b57929ae174947b800ed45184b5a2a4169b855deb70529ed98d60442c5073212fdae808ac8923c8790faede21d0022b30b2ad7ba1dd9717e5b49149b0f78163a998c7705da96a5bfd96f3b6a1", + "01227aa26a4f0e626e378b" + }, + { /* i=6471 cDividendBits=2865 cDivisorBits=575 */ + "a4be9cac2cfbf93bd73384779fe472d6dacded5c2d181b32273aa6acbb2570c4c150d62ddc4dc946c9a2573d6ec5b55e4b672e5b689840ba488ab9297883857f2fb835d57163aeb7ee47db459f3c2e668395fec545d0d30a502eacc55a9b8c50490f5a940b4ad167af1c28900cb95489fac8dbd23c33cd3a521fcdc8e261ece21092932e1ebc86380b60f49211836b58f67e442c630a348485d086c1efec61c6bcc797c152787185831742b2a706c434451387bac3d747fa0a990adabbbbe3577bfa05cea5b9807fa77e45dd118093e10495185dba6bca40d167a0f4bf12a8cb3271a7bffe927eec7cb3f8f83d0ba37d8476a8e026473280eb03d6375162beefb3656061f53a9d38cf07f7f9d66be8b897ce148e6f3f65a3169d0b65a91a37c880030a0a9f65660927bb13545fcf055f9f80bdabc92b0b695c525a6b2bea9fcb3c9b03590dcb7b9c292c99a86e1fe11029e3043d3951a03edeca099901eef9e838e735ca1e9e", + "2f535057d51b6cf2deb0ac203d85a7f7b53bfefbf8db7353550f82d0eacd6b486473b9b9edc667f7c1d61475a6e404886f469d4245fd84be9eb042795c60cfc50427bcc0f53da310", + "037b2954ea13f322947e8de5514a605c75c79c89aabf6ba4a8f3d26298a11253148b8b94fbe2139fb1270657cecef1ccd4a61ef7479768f1c9986c08e57031f36d33b41366e6cc360c9e18b5894a97ac3a2c43271452af58482de2ade47eb69dd54812cf62858e09110b7390d468274172606b6c95aac54765ad11db42beabf995fb9836b2c765cd285a80778c619143c84dd99523f4d11cf29e96abf6d07e378868fc27b04687e7a8f23ccaff5e2e591612e10eba7a8d5d624573017ab0f5c8e2a7eec89d3938e7e825b72e63683f3769edc967eabb63f562d07c1edd57a8d5c0e0d22e3dd915ce866b3419a0dc2b9c1d69bbfdabf9e3c9d0e04823d62b0a9c4f05e6455c8632659cbdbe73a27ddec0e61750a4db00d1db1c4ec6aa104d64", + "2b7e02005e68aca65ac76506f1085542d5331346e608ff3cdcc72d643f1ce148509675221686a2d0cc23158f78cdb584dfb5159b540104fc82476363050f7ba27c9733410eaa9c5e" + }, + { /* i=6472 cDividendBits=893 cDivisorBits=594 */ + "040f86614da213c541da1340fd5ba65fd4ad9d04d05135a0f12c62abee6306a5a25d3130f2314b37e3cae32fa08a173b8130e527de202ecb30db4b26769d8b88472d23676f2fdc88d95abc5d3722ad0b1f6eac0e86dd8fbc21d23ada1ea39ac01ac20d9d237b90e4031253de5419e902", + "299e5b32766c6013841bd6401157f6fb8891d15a21663e3475aeec88e88457291ce968ffee0f3917037db9b02f54cdbcacec4680e3f0e88a413348fb78f98df2d3ea2236727fd8bdd952", + "18fa3880632d791a6490395a23cdd3d8d57f530cf37a8e2d58dc3cbb1bc2759b1c639d57772c", + "a7a2fe6e483672efc4a41a2e782559f95715d0590c30df06dddc012a3dfd1bc9eb981509c2b41e082c4caf479796c9ce196b973a21f610566f4229ead813f4b176dd481ea2ae9570ea" + }, + { /* i=6473 cDividendBits=1217 cDivisorBits=973 */ + "27958d54c5acff7e4fb3f55c63813d6b079535c9b90a03f8fff0055421f29dab994c28498372932e5186b29a58b242222226539732a049a0698d9b3a020a4a57e98fa429762d326cd4946c80fc4eb8767031ad6b886aa6fe27f1604ebd82559619926ab039bcc9586da53c339ebb319aff267d19bc5f339c62701796dfe7029a897b7e6ec6f75dba0c1fc16265767bfeee2cc74afafd63fd", + "0fbf7b99fb47b7b11de948fdda8cbd7f488c864d1b191e94257539052ce59f2b59e20b4ed9364eaaa2fa943cd5b713508fde25d15274d2a7b342ee54ecc698b7cce362b963f51beeaada0f463a1fa9760a4665905bc039d416d63bea34ecc4f2f25b8096ea215e05e82d4e45320a8909032c362b7c3698fb535f", + "02837b904ff2b8b804715e36fd41f48436ba689cdc7caf74c7dfb89f270a6c", + "036d4e10ab26c1bef1950bf445e0273809fd69d588cc4cffb71041f9be538ea681a087e987d466bb5c4ac893de6200eaa43fbcc3b652b08636bfec99923d7e9462c3af96fd722ea3d294f4845b9a787ac04add721a754e86fa5e9d72b63be0ceb4e37ee80dd871aac924e15b4863541c82ddce8829eeeb3b81e9" + }, + { /* i=6474 cDividendBits=287 cDivisorBits=190 */ + "62a3702d843f6dc91f942e0e1d90b4edbb8520f8d5cbfa05b17d57d42dc770dba19bc64a", + "13c4cbad3ebb3143b5c59220014e0f82e22e2d1552bec7d4", + "04fd579f4c13bdf12a01091942", + "113c90362f1db11208ec3da4bfaab72f3f76b802d0748da2" + }, + { /* i=6475 cDividendBits=814 cDivisorBits=486 */ + "0cad072a0381b2dc3d62d041181dcf86b0eef5775109866a691ed8bbceff60f18141f24fb572f7f5807cb3d01d457c89dc96963f0298c50c7fac2c560b785bc35dba3104383bcac3f3ba7ec48bc7911c3b0f392b621d5fd24178a0c712cbb83e2731f1abb146", + "2d3a19d011e7709c711a7196a28a7ed83ce466d2ba3c3b59e0df4ef033e63ca28cd01dc3d7750171e5e481a0cfb02e067541d8337ab9971345038cf21e", + "47bff71c3e7f5f598228cec2905e3b1668619d68db64138a3086a35c035c72a1e37c1b14a71d1215af", + "0a5772a8c00b6dab42353dd9fd623e73d411df8106eb46f893d0e57ca2bc15f7052eb44d7137bbdd77f7ea5f6b305fd67fa3717cd4e41bd0d18859b8c4" + }, + { /* i=6476 cDividendBits=254 cDivisorBits=235 */ + "3ddcd73dba53c9c1ac8c31c9260a82ceec61a381dabfa601e18f04c5dec42714", + "0742676f03b41c8bcbf8d04cff46971715c28da9c7a81b445770358a0f9e", + "088590", + "06aec1543d3e9d2aaf33ffe685e24302e52ab94427254e2edd868a0e4834" + }, + { /* i=6477 cDividendBits=1193 cDivisorBits=687 */ + "0176bf179a604da3ad7c526fc749c618df829e5c48b6ca1367092f9a29084651456f4b63b6427048f16d6ca43c551bc82a09ce1fbc3d085b029c3295f71f51f5edfcea78ca60b29affd7e7b0837a8ffecaa9087b85d2003732a6cb267e66534e5eb3cb8513e229e041c517f717a49e09dc4cf808759078ef05b9691a0d5dfa4f248e7e396ad0fc8df7f5e6b2bc1323b6346f895276ee", + "5d9b7a6175c5def6bc0f72ca113334a03b1fd12793549df0b47023188fece9a19f908b64dcfd6ea5f14719a940d591a6e87421408f327fefe667201b5b327265baa5253c9c55c9bbc161b2251f6f4e43ced48e2515db", + "0400de036c4377220066f3e4a986c9a22753cabda6565d47a5828e68e23cd7b86104487c4bf5ba6dde20ab1b1660b4ca0e7ebfed63dc832ad3daeb0a1d5128fc", + "1dfe65914f3221e19086f0af059dafc8641ffff32a411610fd60e9fc5adba26e694ab3f0953a8dbd57b5290ef1414c1ca5393b6bd9b6e271bd91bd7f9559c918488ebeed9b02c9cd018fca037e154549543a181bbb5a" + }, + { /* i=6478 cDividendBits=2663 cDivisorBits=1915 */ + "4f0e027fd1bfb5d954bde13aaf6b4401cd40d5504d28be9e2529734892a0e23969923dce62e59763605e43aa9500492fc2472ecf89d0bf2eea395cc23988742f013492499a9a005432d02c49cda00a85e745d5bff743b7c776f767ea9eeffb7df4862486dd2da9620f799af30f6af251355f27b90671530c1fc40b0c01875e9501cdebadea553e43702207ce90a1624450a6f3cb78315292e79de567a86fdc6891c639148d56e80eced27e3b7a08a1ebc0c77d641ff4dfd80d345899f301fa318068dcc51c160c8acd53d07b0d0c19ae8ad8ca73917d5d425677bb04d1c1db7336c2e2a74968758c139e46c09411286dd9cd11d24ab4d759ae556efd20046eda2fb195a6484975b879cb82bb0dd5d8c8b8760e3e05a09b3cd5d31f879d5ec6b89b2fd0e6b7269fc75383655d9fe422ca824f6051e877d6ff5a70fcd8284979c31f7db91eb52ad79bf45e8991a6", + "04879ebcb94170fe91c336cf6f1854c63dbabdb37194c0cc0cfd6e7dacdab03e3d2fe38bce14339ca16db42361278ea6d8871ceda98ed0d4d1f37c67d102ffd2d7902a714547c5bd63269aae65c7524259316d5adcd6b869c4ddbfb902f005d95f2065b85054f83771cc948fe6afbeee3e9b8b33cd99e60ae0e7d8a432e47adfd926a7bd19bac832ba3471b2dabbb4db0ade2fc053efaed528af178bf1f52d7846f1816899edd6bbad89aa3588a31904a09e80dadbb8ea1c7042c2aee02c527cdd27dc35e2d9ae227064d2b07ef25b2cd4a0c6e42b149476c24bca1e0a41d90a139f180f875e7580a3c0c9cbc057dadb", + "1173c860699268c8f9df822c219c26b8c9912b99091dd92271dc047ed5636b72d3aacad486cc6493db12ae498233356d87836f0412eb48f684283df03ad7078156d080beaa8fa38e82745b3bb9dead494a97e34a2d4b48e24791bdd5f73b", + "03219381b3330dbe826e8e141672406bf800edd50421a13e67a6d307a9e76ea5525f4616d5369b0e8b773ded447c3be03d4b753a7b0af253fd3c3e07720943f57b07ec59b3b790950f6cfcdc1762ddeea0ae5af858c3f5a0ba3a4f11f2cee8d6c68b4dfe842ee6e669d76bb57d9899de5af09c647d373303d9da7d9a8b7a2ae9beaee0765599b5cb5c322b4049e7807c4c3b601f689e3809dff4c7181adee177e0a927b9c7224436afa8b267445d82a02fb194cf980f8e9727fd5815f9fb7cab8ba543966e00eea48b96709b079aef298380e5934255f4efcfbc2cc7414dcc35e11604397f0168a6fa61eab27ee9d42d" + }, + { /* i=6479 cDividendBits=1719 cDivisorBits=661 */ + "3b493fe7d83901f8c41fc10872c8c60121223a80aac8f2b63c83d8904c384a8873ce6c64ef7ded36167e926908216fccf4f79448245c8b682b13951b080811bb9ea1c531e86880446082d42fcec03c3f82ea0f6133691a270bbce1696248e61c29f12e89ac227983a6d7308e01ec50ab17883847f763a509caef4a8c381abd718ea2e4c45984728e4662d4fe08045eb270f7eb8c53d2444d1d3a056b682cb189999bdb797e04da4e01773acf30c813108d53ac7e4341c9e208da939f271654a3f40d4301fa12698aac22225c9fa78b93e523d5b4b7aa9e", + "0f3a57c8b83e3141133542b640564fd3ef2dfec34c90d09599b90a5462aca2f89f1bd0002652651879f6b398d52315e78386decb843c19815612f781170fabfd8e7b3f28066a059b03657d6355e3f728fc1437", + "03e4ac78906e928b70d6afe03affd2026481cefd2068cc4ddf8ba34e45724a5d0cd5dd6a02dbf3553ebba9eacc3eff7130ef81741b5dc1dd8f450941c307c216fa622e416af04d9f9daf6a9fadc976244f23b5ff53e4b7638f7fe041bcc3f32e35d62a5df9e1d6ac06c8867163a5cecfc02a1bcefea6bc0ee553506c8df16d8f590587afe4", + "022b10ba1af1e5e552a3ae5b62c1209965f644d7ca85a00fba8e0101b7fcdf09524bab2a4f81d40285eb6bd64a2916640a1508950b2036d4a006c3aba1d90c8f55b6f82bbb2131b09513bee813dd3e266310a2" + }, + { /* i=6480 cDividendBits=2405 cDivisorBits=920 */ + "1d5de16e4f5ae14f78343e6850bf321db53a8547eddb040643b7086a223b9fd0102cdb2164db74b1ffa6535dd9ec60f5b6614abb7bf0b37c5d2aff75b0660a0db4288b88d9e8bf6650e78745fe478b958ed65e1861f17a9de25e1a6bddf9025bd87fdcddffc48349a0ef2dcac26d5e08beb8c9e506593cb190db02b9226798e562689154dff89bdce19cb8289a98ede024c3339f24dfca2b6423518037218973572a452858fbabc4d02f3bd5d49b87f677590bb9d838662f950cf7ed9503be87af094296cc56ef9b9f8a4f8448e0f2aaf03d2707cd3542c5b1b00f7e4c906bc5dd95ed21bb2df6cb214a0912b9be8b3733aa1ae0008d05ba58a6b2a0cdb3bfc279611f35bc2747eec70156f8c18a836253e3ce879f24a3cebbc1ac5e558a79698bd543eccac0f29eadbed46ae1", + "d382d96a12305c93656d42872e2e7c9c6c6f2baac0371e0213041c1a54b879469bf5617f92dc0af54a7db62326972fa75af742691c0a3586e680749b347997c7e3e57501786d4c2d858c4584c02d8d75a356de5107b9ba776bcade6728ef1758c529398ac59870a515b7fa536073c7649b5799", + "238b2d9494286f087b006bf81da1d5db96f7858bf92e6240d83d2913d57a9bcf970c045713c52b87ca9e124097ef95ce0e869f4b4503d78ce13b4262005718ff24338504570ea0238ad77429aa36d14449f203c40e8eacd9cad2b83864a0a419ccb262a9ef36a8e1b8a38ea8507f37e55e134354e190163eef45018de82d4baa1bff742e52cc13906d0b8154f4046160c8f86184d5e3991d44b28b76e15af3dcc690f5c3261f1250006d75cabcb1c3f4659da5333338550aa7a5", + "8e03433f52e0c94f360c58bf292d9c0dc924a9fd95e8d1da3b3d43e5fd2ff3d46f12a69ee45ad601f15d73516e6a3488b722f2ffea75c2ecbf694783d4e979160be9f0a08eb0413c113d277382ab6b44c9dbf77ccaf63731fc955bf0a75b06bcf4deea4d7a4f8fe76676f35925c5e957962644" + }, + { /* i=6481 cDividendBits=766 cDivisorBits=479 */ + "1b8c5926cf87186b85a04ca7943c6c0ad01080bb75c468e7992b422d31549d52c1e206ea5d2315c4da79020d44a15004763944914325d6a47716693f67029858eba979ddfd822fd2b0b4afbc4cb14ed2540c444c6d1e6e165fbdf2eaff260016", + "44f364c78c709e0718dd5fceea47dc7ab55fafd4694dba2df5d9257067a51be4558c1db6e5891d76a5f588d39692b96457857931067ebaa0048358a2", + "6647ebbd12a5820485ee704f7ae9ed47ec2e500e11386fe2e5624bb169ed67a91849316a", + "27907c8134d4eb6924c449b5823d6f4420e23bdcff06b3a8bdbd3024a546fa14440797b69e062bb9f2ae9b7c8ea77b305b87c17fe225c116869a4b02" + }, + { /* i=6482 cDividendBits=2681 cDivisorBits=1930 */ + "016d6f61bff1dddb85c377dab1f035be7265f1ddb5ca2ac8be5331778ef6da0d57ced5c0c13597785859d5f77067a1381572c3d8adf6653001c395d5cf0f4c61f13cc43a59828af2927a7a116e8bbf61e1950ae06c45adc7f196432b8a9077347dce69e8606b1d56a4ac74ceb22238f9b821bf3b190c0f28c5bb0f0b8d311c743c6f49b07a5fa316d8150e197cdbff9fdb48c9296d512c24049b6101e7981c2e642fc29247b14d3225e72ba939b299d9de9823bb500021e1ab53203b4ca3e26a4cf38a6dcb15f1d7c0488206fde213722c12c6d19237d0b4f5ed8ee422f00426308231d9f33f2a0cecdbb168ab024a18a8bc4168b0a4dd32aa799e50568b31e449230d0efa8fdc009d3ff16e96122fc71aaa497902eb93126d8f228514fd01f761cbb776b1b7bd0adacf7ab1a996ed8e72930a2ec051aa2adcaf842a2b212c95367dfb4d428194da288cbca2d043d8f7", + "a5b05820763e0bf3f7b6dfa38480ba359cec08bf8a7493a7954bc3888d065588ddfbf29cfa22e0e8f66039f2895d83dabf5989def801830dc72b281be0c7f5734271f70167a196e4f237cf37df9dba76b60daf30ad78f73b2dc8819c36c2d390533509cf2a6a53610b2a1e790eb400ec533a05c00c7446002cf0c953e304ebda5eefc1cd72fdb2480c40dd7bf6c3c03f2194f3e819b6016f468b4cf4f0f92195fb93277fc29ef8b100aff2c5c5432707c6c372b7b7173727cd9bac1b1b073eb5ceabab3b9d69b8ad5a4f278e8fa307160f9f460db8dc942b7bf2bcbc8b133a1b8ebc4915aa88647e56c2494cdb0f3f3570", + "02349ef233819db8025eadd78cb82c89aa0d5074d3595c6a7c2456d64b1c963a7a28d599774914fd745a82c4914c5c019f6ebc797c32608d65042e41c5204e8131748d264aad0ba3ca5599512139c48c85c9bf5a1f8aaef8847875b176fbc7", + "1f975a9db9b7a9e6f25ae5ba68bcb344abae323787e608cbe22164a9b270fc592393f275fde6d7029471a011f99de08940584be07b4502a8cb7657cb4014e4217b409aa8596b40cf13ef4c6ec52b29cdbfe93a32e1c8b3ba16c97e5695a59ecba3d2ecf4d865d81a1892e4574d9e66c4a7373a81f9d1d65cc6f7e5b03b5c3222f1b16742f0e5aa1eda53d52a1dc88aba44fde158afcc124b4075b3d29de687b52505d76281fdd6c25a76c6ba3033582b3a61daebe958a6d5e0f10918b9479e76bd7a9c0c73ad7b9de66592e653d72175f2f0eb32151132217afb988eb030385a73c2fcca40349d793eba038f21eb1c7ee7" + }, + { /* i=6483 cDividendBits=2955 cDivisorBits=425 */ + "07390a2e6cc01df604f1d2ed173e0149e67499ef6a0bad3b934b5bc81d86b601527be82196bc6668223bd8747fb8d7a5304dee5d6ea7bddfd8353f9d8f967c3fc662a76fb0ea6cef08db2b0c83583e148fd1e68111530335fbf216e6b416e0d4e354fd0b397f762eeaacb5109505a29e613d64d850e83400fdcbe4cbb554990ca23dfd3fd950bba4af809b1bffbb74a227210e744f299adf9ca9d4070efedea0a06aebdd239b8b83e1cdc68aa7fa38370633211be033a3d7fee42323fe9497877f044b499cf724941efb5a441d9f8488d8c8bbccb6041d66cc636ba65a34bc5c219beb3cc049e8d1c69bf801dfe39e90fee6ca7f7cb8efab739f26c1460f410de733fb28ea23bb1777ae09c4ed04d733d04bf3b903c1048d2ac66c2e2e14df6f3a730fdfef6284499a6c2b791187f224f56c1011a7a094847ccbd6446e8392928264bf786243e1bba6fbdc4741fa473e8e88e0f7b7a158d91eda262c35c5247ea9ae41e35375520b831986bb896050cba77a", + "dbfa7e9082ec5fd70ac746ea81d338c5336289e2464d00055666562668ec510032887485a5be7fe9acea560a7eeda6abeb20e2e3cd", + "0867d1fd1801c18c35862a2ee1e21c33edfcc57d5715e422caa673edfbed23b0774094a71c736f70d20d51ad108890ccf3a2b783c4b2c5af87aec8bd9656699913f80f0ace8430443454a86f248cdde8f1def40d294a1b85ff45ba48d512c4412ac0dbfc06858fded1188884008167aee057151d2a0d3196b6a7dc4c2c05a9890063b64269b82e46965c9714e9faaaf6360237a94008dce099a204f48e50e9a08b628cdf2d95f87e2eeccefb6e6f23256b07a79da2fdd7d6acd9f9b3efaab8dd1b79d14e7db62a3bae560525cb86b2fba998898484fe7738908063d2a75a413533adee5c710029d2fa7b7862628dca94206c814afeb4dac586db26ef5b3bfd5845cf5c4312277db83cfd704394e437849ccc536dde874c9471c075547b8b9913f09509fc45c206c49c1db340bee1f4509acce390ca6244d2114b751694", + "11485190e42b1ffc301d10de56285a438fea102f212695af9b8f57770e0f51051dcddbde06162d576d5bae24ef101e2591a25b56f6" + }, + { /* i=6484 cDividendBits=449 cDivisorBits=40 */ + "79bcab1b4f61cf6829522c55e0e3fa3204ae4955a9df24ac4de97d0271f8ecc5b0a4201e5ac946af667b75fe23824eabacd4bd5e29d443cc", + "52048de6a9", + "017bf97878b278906883294b9c76fc1694b198b0ce4d8e884d6b4ffa1f1c2e4f7a05762f5ab9c10e515e6ff27d48078a1f0c5258", + "07de3ed7b4" + }, + { /* i=6485 cDividendBits=4024 cDivisorBits=71 */ + "a470bb825f740626f6e4b67a3abef5fdf6c465da152f3cfb38f6e862405e136d16f5778d64ab0f5d0799ac80fec7271723b71d43f589006198f857f925fe12e3c070149397b2162caa30d9f12fedc20ce192f41fa5f8dd1aabfb23872264675983364f2ee06107efbeecb5a9a0c691e89e887e6a70d436a2f95b5c8a48880396961071955d3208c418a768553d979ef5aaded5ab0e4adc7c8cb7374a5439647bb0ad4f97dbe2cc8c75f4ef7e3214f113c4d87ade768b07d54a72c2c9eff95b3302b24bffa875761b64f098c2bc8e2f516b1ccb53037fab363ee57e2d10a604c03824c5848b1f22dbbe2dddda838dffe9231b328d1e083ef9e60c0ee21a65b0cc28c44d56dea6980af5d3a070ccbafc86a9624b650ef9a458c309f7b5cb8c41140ec8564fbfd788cca7ef7bacdd17e395873eb4d455c91f9d2428e77bcce69c9ef015ba2e58aa78f9b81df162d1a254940128b1a6b05a3d23d59f0613dd10f092a1f4d51244f7f779c2d85defcb247d411aab3bc7092c65076833821b1ebd3ad28765d50d2f18a69b3d36a84dacd4f127f3a7b3a474ba392c3c84f34889a5237a09dbb76884098336ceebe0e246debe88cd3ff08c7d4585ade5e65e64d2d03a9c782f53aeadc9c3918f741d01d7e3ad13d767dd1feb85336c451e8607e7c5b7b6cdd3525ae6fcb2a5fadb84b7e474e73ca03c6ae3637d66", + "4dc69f5247596743d7", + "021d41ca0e35564ac55e3bbd3954dfcec9c82392d83de9b4e294913867f7a6d8943569bceec99591292f3c6cbd0e9d1100d8af003119d7bac20f9373fdbb7407071397c4ea6a3c8fcb76dce7aa73c4cf96afaaff28a5f54e7b7e77b71d61d2dd509d3f01771b10d2d773fdd6fb5b6aef110f0597ee8c0d79304a98e4c5f5ee9bc1344787d7568eb5dcc47193c13a5371fb161435aea3ecb4ecc02d6649721dbc802900d408b979daf9e95d71892bc85fb77c26c3eade3a051645a8b33a4146a917c936949ac2afe2bb00f17a78d6e90428319d48b73d01d95ad5e6df4cc2b3074c417745ab1efbf85e59838f166ca301862b73ceb63344db950c9eead47cd8c99e3a5afba88b727892171101332545297ffcd05421c4b1cae325e9c7128b1c6e440179541825d855916b66c3782d60c769a81d18155312059d2939e46f6f4c3501decb772ee571b0777fbabe25305323f86dea319f47fded4dfedf8352da2f99fdb0b2ddc536fe66a877d464f4c19760ff3b8520aad39a147dd73ee879208a9aa869a8eb1e38317c25976c698daf8d305c7768e8432de0a867ed16f63e259cf7b1e5187040ccfd0a1dd20ac7a6f369478bc713ba9667996e181ed0cc2bfbb99670101fe41213f0532b97b93de96b23b47342b6f8066f0140cde06e67e077228fed7923ed6943f74d99cc155483967a", + "45e09db14a83682ef0" + }, + { /* i=6486 cDividendBits=2846 cDivisorBits=2363 */ + "3ab450fa5595ce6d7082df742fa92934113f840201a4c03a0b66bc9544dc083084f668485f911809b2da84af025f89db29ca5cd5266211cca102dc5a208e09232aa76236fa0772a1c65fd9c7f5f79678ebe40bf6d00f2a84840dde0dac92c0cda051feb76856365d07908e2b7e512c4c9250c4b65ea681954b480ed0d7a77589ee99586422a32630c5ac175c5e88c51e2310d59a6006040f7a733a06c4698659aea5b5b4f84aa7cd38a20d25f9079e0a60ecd4775bc9ee7417fea902e184c5cd5b4f427db2f200a7e4f6eb486f3c5a7b7db6fa3b506b20cced3ec2d4adcf73f98e449af8aa7d64ae8a0c5a299e212cc83a169df1f230fe390a83319c6b92365c28acc291d70b563462767532ed54db144ce34bbc9513190907eb7d4f4216deb016e0d98bc72f47ad8073dbf4e564a0dc796cf073edc51a6de49267adabdb7df7cfa065106684a408cec137624c00a646b329cd36837315311f975570b65e08ca7ba2af6b", + "01cadad6a7c66100e46751850e005e57ee23462c94e0025c4758ddb32e36e6a3f6544d059d0656aa7700a51d27450b47221ed37ac640648d9c6a908241c1716be28a27d81983f0fd54c9f399a635028cd2166baa2d5dd50385c5db513b28174b96d72ba5e244aed063a9e26c41c809bb261302b2d9e6e0c87d2b52b38e4ef5961a0002a2ef9a2ad4172e920b8b0a849bf75f76a695f0c00a52f526e4e74597613734a90ac63471fe0c0a1186b8aa9196cc098ad1109122674d69f54b3ef953bbef0228e420188392de27bdf1c8355c1ee99625d35345504f1607c9f4eacbba9805b12eabbae756fd6fb20c3b3437ff44505152ce5428a4702405347167e18ebe82c190f36feb82c90f5454b3fd21690ef1dfa72fda3524d71289ec2e5287db37a36903ad9a64018a", + "20c0752bb70c1f4032e3ca81c41e58c800aad048b72da93966e4566fc147db6e998b16d34971a17bca7ec33607abb462b74905eea21cfe479e352d665c", + "e064e7074c08b68bfb617a6a6022c22c3571e9b692b0fd75c6c30612c8fb7f95fca679b568c0794c587d3468fc013c9f2c65d6e822aecda354b842a43a6cf78e40d1c06075343b65a355f24d87d7d582c338c3d3026b0fce638a1d78d74e12a147f8e7385b67a2e620cb6c39e8de2b643b9e0cf2e8bdea293f86543a3d5844023c93af48476cd3b4bd8b9de8b6e86fc98c3683be4e96f5e235498f3a9ff12cea67bca400fe77af3cdfe7a89afb88584c156327d7558e5ac5adcf9feb8dde6b575d3facd9fb99e8f9daf0552fd22d69bb6bc474ca948520b982b1ea27bacacadba6aa4c808f4a7e71291c1207fd90a073998836f5e07e2c669188f55cfdaf3ba284d87f2c2097234a34654dcefefdfbc51349a45bd283980f6d94b49b6f1b6de99c79d14fd325d3" + }, + { /* i=6487 cDividendBits=3969 cDivisorBits=2590 */ + "688fdfbfe25851c7f07c1c802188742d2dc448684a9b0d0c9296ea823cc61952299e96d6276b8d07ec780e5472eb182dd69486b234a3b732407a3cb8048a21a70dd5cc425997b3d2b3d5abf43cc51592b1425710a89408545cf499aa7a57869a0fc4d9e03c2dfa9b57ba0510cddc38bba2412b65d1ce8afb5b0171c1005937ea3b4e1a3ad4bb6c9e4de251a061cad0353561f15f9f7b0bbfeeceb5b0f0cd60747012b4350268951c745cdfbc5102c36c9fb616cb47a5f1076bbd99275c5d758f1c8cf512b03db126100c17a8ae34002009a42c867cdd177ec6a8ae11582018156ba49aba34ef2f4b4cf9ab2be73cee9fb6e8bda7b4d7baeeb7431ef291cbdc6dfe72e3d0a51ffe4cc04847bf2f41f2b93d385fd67d2a44e306d6904a0c62fae3bdb3336e9ecd4e159160919f21568d8aa4320ccc8ba8b5b6019dd00955c6c7d544b5f265842d39fdd8f2aba42a0de71c5812848a759ac87be7e4bd2056bd0a91e3ca8957f1c043f0b5aebd79feeffa77973f435c0cdd07c5254d5c3cbc2e269196b8b8d4bf908e7ed298177ead29ccdbab47fb808718398c12a7e4922b46c491c012e48296942a96980b45fa7cbd0f6f9b61a268613f146af75bb6c2879f2428e12fde4284eb970b8ce21e229ea64bcdc0da72e1186128619df78dece6b1d6cdaf5ffacff60fe6254b6e1913a531c29f", + "20caeba9e673cc8bea8b252a1970ba5a263bcb29269f4f14ace6c3ee2f2b0843f6a1d3292bbe3eccd425fd5b805211332b7553f9a0ed21ae3503da61249fc2c0e6df65946cc09c5deb58ab4b47442f89882dbe5a564ef768d1a76c4ee8b3e6e02f808bee6aa5a9bcaf6629069c8d8057b20f149c11b631e51b56834acd9da604314bab7662c0cf7264b07c27671f74d277c671b9a2f061a05f533953b136e150c6b85ab26e7b661ac5819f7551a9273892dfd5139739108e4348255647c44542faf8ad179c3b0fef396fc6929c3e1920aeda635dfb3aeb224fab6d64d4f956442deecbde592a89428c2912edac751a34801adafe4dabbe957d0b4b11bda017fee20eba292873099c7b263d0b799f247f081c7ea72328f7e41bb0f137a06c02dd86726a0f9a3e63fa147cfed4592297786452c2236491d11da02f621eb8fee1ab662a7072", + "033046c3d5461148aaf30e3d6ad110a2a4d31659d731b05dc70c1fab80291efa145f6ff8757f2a692c45e9db56f3dec995aa5006c4923ef1f2c250594e184618c38c6e813fdbe19e94d9bf1688641a6871d824884fdb0910103e92b93ca62137b5d526ace8299e9a7b33d5c927e4bb1ac82564ebfac89a3c06814d735d1c50a13d60f84db4b8830dc4c9918f93fab645d289f7de4c82e45030d2a4f3482aa0e3c5db747c6df64d05c826b61424", + "10d2aee0514caf1a9481a1824e685ec95811c01c9542def1f7141411eea4f2e8f7e2faec258fc2c2da3550de33496cf7def8fc3783d9a702adab4c6656fcb70721e77b74fc615ff7423339d7cde2c9c5c58a6eaa00fc47ca1fdd985bac07e7c3b9d2f0acccd7d9ef340cabbb74bfc52fa8070f9b46939dabf980e422ae6f5608d44fba45cedfc0c5cc0b2ec849aa0c228f4425bbc629d5cf47ddb1b911496ef5f6be2062c47b50dbf8256e5c818aa6dfc2ca9e269b6ece9d40d8a5f36d229ec1d5ecf31d94752f466cf31889bf729d5ec852f4e1dfa8aea2268a452093eb57a835763e72a4195178df951fab3cf99aece0f4c4c171f22e10262c55d488997047adb752b4b26d477422530edf0346a35865d19351201b22fdfa1218d9aa9c3f3c62b14d450e095403d178a144a210ad7a453e24b0a33c3221cbfa1669794bf71119650a97" + }, + { /* i=6488 cDividendBits=3223 cDivisorBits=1260 */ + "1762793824fd392423a43f56eb700a95820c0bce3da9332a7a9e171f8a264c8a1b6bc6c4218a161f9f34d98d9cb4a61e03ec48174caa277a6ad7932279d87104944b5da50413d5f45fbf9a7291d07adb5228f8589c387d96539f7060b6f4b33debc38f1de734d1ca76993597c59a605906e52a9201b34b66a4974256a0ebe3bd211654d8c5bfe797d785d1a472a0554b44256b8dd307737cbb7e7e66e3a34257a401617d8dc2519ff8e3cb7017c81daf2818bd0ea501d3ad5809801d4e36c426fa6753dcbf7f5065fdd1685941724170a9c270b85cc18bb4fe768295a856673b6da5cd7a9baa53e0ccb82cf1d47d8e81ef94e614fea2e34f0086cee5b0e9692692cc09f9ad80f0fae06ffc84e797551341c178eb6e44e1571dcb2a39e1c032b1fd6ef7927ee9bc3f9c8cc4031fe1eb08a719846e13ee93ff491be04a7f949c28a58817401eb059f555cb647ddc2afde6bebae18f9c5c3251a697257b1e0b27f4ac978e9c0bfa75421b193274789465e43c7104708cd8b4144e1df4dcb03b0efbad6b0283be9c21885660233180bc8696405318", + "0201be48a74d853f90a7e0b04daabebb60c32d12058aaa6aab4d491b5b95f2fd71e15aab7c4540819ee534f42f94a62de9b765c17fea71a551f6ba0b0fab752aa2d16a5d25e3467c03a603943bc4ded4f85a6f625e7b924fea315caf80791bca8cd7145709e3bdd54b24b824d94f0eca665c8e1db13771e15f9fd6d3f9af3ad1506cb3f535eac46f7ced33c1241154cd13a6f72f4cc3bf4256a11d43b26e", + "0ba71469fc89e7711aef087d56699ca631f9bf1f981d07157537dc029d4c589df618e0025faf67e068a7fa5720d129573db6aeeac0570d53e3358376f8ac12eb919878070aa4d45d106254c2a5ed9fe422614b3da0c937f29b2737d1ed46eaf4bf50e92580b80b2f1e7968b83d36238767b23728e588a123b0af906d71951660c54e2f3fd5022fca1d09b45e064e73562343f6c6809d071ff8d695b19b166b2b510c043284102165707f5a244cdf70418fdbfe22e842fe85a94c9533d06bf10bc10ffdf72eb027c58f7164c06456f2875dbbb29747e961dd2ac7803d2865cbc43fd47d1a1844f410534a0a269978c4f3934ff03885a9", + "c1146a3aec5bc033e514c8498d119a5018bd310f7e15a839704dbc24b00a25de89a0ca6fa29e793eddfa3a9c31c73cc08c14364b0a8813b2787aa481c5d1040dcca96f635ac3ab8cb25a3209574e9b0047f6ea9c8c2c61ec83ac2454d6378613e8c9df7a081f368fbc7ff18773e56b6cc707573c70309f7c528291f566077ca0d62bad7ab30b1931cf0526b73920c0ebd1d0d9bbddfb42bfedf0cc627a" + }, + { /* i=6489 cDividendBits=2729 cDivisorBits=1614 */ + "01d19e57560adce1c1cd21a8f287d8990494a54363f8caba21e0ccc00247d4634a39e82be99f515e38343efb22dd09109da058d1c9dc2c441e90cd4381b1356870b85e25dcf1821c4e94e63312d3070d691c92127ec8f834a82934af0082cf6e04638d08434dd7273254cd749d709744b83025bbe81b6ba78ca73921e00aedaa5513af4bc1472da345df5f8aefc1c6e60f743c691673f438d9f5fa319f76bc6214f8db6e55c0dfaa61a9a203ace31d6697e02b37ec118541b21dca9bce98bf187f8eb26584df2158027bfc12c0cddbe52c9cf3eb619f20e3141e4370dec50cb88c0081b1768f27d411185ba7fdd6848f80977c9718dc32a6ab7f7b44db8a0594e7b6ee2d76a21c810bcd0335551ff4e72b132b184b0efa77a20d6438a9a144509cd261209004c9c10f0bbdfece69d9647e597ad6cdab29e9a546eccba8668e45c3a34e15944bf953d1ada695d26037b07994e619d3d8", + "34e2c588431217d9036a9014a9e2b0a73b58ada6df96310e9125bbb0ec79bfc6698b3e83ee1e521f3488830207cdd398443af59824bf01cb7424586ac38539ee9b4ea7620728039b1e65173cf368c379a7f8403d30fa81780e3be26eb0e12448d8c964e4bdf9d9730be6301972cda8cacf93a6eccbb1cd6fe9a1e1b86a39885ac59b2e7b8399badf5adef56b2aa356edfd50d589cee3cf3fa7111efbe52a5a451606ac99110078d40c5c0467a4225248ebb86efb25d9e0cb3c6264c2113e2a235461ed884b858f37cc61", + "08cde1722cb28e467468a1b75b3e3a5f2e6573a1d7c3b7def5d8e0ad004e53220c9a9b3b504958fc202d5b740dccfdad67fe599f3f05b82f88f49f01eef3d2ba32f45fd3a7abd4ed891efb13ce6b0263c41950654fa05ce0bf94abd28a3439a990fb0e12926677486913e35aac22935614f597889e9840d56c7314a6ef4a73552862a5e0b3e0a0ee74e50d5f", + "2fc5049c2ed381ee948bad1f08690c62fa573bd94a1b17ceb91f1d97493bcc90b735c26863a2d66fe3921a073cba998a0652c5efb764cb862dbda2beb09db2662842c828f770a244381bda7fc73a893cdcec65d4effe35bdd3d7a283654ed6a1a6519deba65ae6f92e25d04272811313fa65d3d6f2a666c5c9f4abc553499a02dc0c457857d0e831832ec0ca3ac7eea1ca9e2812f807ab256c8cb01389d4a742489ce26af50116e7e6fe2c28e6865c2b8cf1e057aeb79fbfcceed98e9f64345aed8c656ba30b243f0ed9" + }, + { /* i=6490 cDividendBits=3263 cDivisorBits=2449 */ + "60f13e6b95facf8950d4080edadd46486dbfa31bbedcba9e4a6cdc48f8b437196cbb3f040f5c57a1dce1bf2e52d60b9d96d7cfd4e0a523124edb76d26f7d16f9ca3a77564e8c9b97acb7c29f34b1d68b73ff0ab09e43bb2a641590f7567308fb3b5f10ba49a64957ec7ec1af4c9a9cbed6b6a79a23eab4fd27535412ea33a1760af70aa367d108baf12e5ca751642bcb9492028b67350abf60e2ba69a5e8c04a23759bc8bdb32b2e88314c9accf18d1244e0f43b3dee65bb0b5a4b5bb038dfafe2fe2d431d2403f9078d8022c00ed3c26070d5cd05ce1d57d0c598ad7d809d13a80ceb44ea5cbcc6d3cdadeaede20cda1bb3d45039100f8753e398a65c2ae33ac4a3ff9dcfcd4fd879dd21124d506183f72f159b28b0280388eab151ba6295b03158aaeaece9ab8f3d8a4597c134a1b9296ae90771538172512c311887c395089a65daf7d53f13360ca12522d7c94171b66f3d8e678e61051568276bcea8229c179db4325eb6e3b54766da83b7bb9611eaf09a3b603d8ff9ec13dac11d280bf1c1135a7eab083435a7a8cbb42a9386cd59396dd70410d63b", + "01ba918f04b8c96eb36ce0e7b4f70c341d85515be562dd0247b36719b6cd695e542124d27ed4744b1990187db82d625dc21d56dac7580007e35bfd1fddab5533c5b6610e2a25233e0819ad411d7168ac7bac04173cbf49eba6f49066e4060345b0195898d49fb71b119bcd147db02660b3d709a3464caad654a8077d1ca1c26ced85d1f4e73fa7159d7beb138df3788f2ad41a6e3e49f902a5510d51b34fa99528db69e7056d0c1bab368d44a16f729c9a5364cdb7ff983ec0b144c27c0cc7c4649bbc6a86f78a968f65460acee027aac522d4be67878e766aac756372fcc747396a481a8daf7a389cfc8a111a5b9d71526666e0620d377f7065a3fea6d1870acd5916c832eeb4ff283a40296b7ed1db9ea0ea530ec80df3f5fcfb9479163a37dfe9d05c78e5a246bdbcef48a3f2e0665f26a9", + "38135254a254bb0c68e848a20ff8e9d29a4fd3a6d1159f4a28c81cbe9514927b8e7233b14c039d36f0651c71de4167e263823bf5b94c411a3bb6e5d52508982f64275769b9c932e2e523d970a80f46f21b37968e20e7b11283bfc2718f9417aba3d657d6367b", + "2f1d215713db2a29185d65ff6c2d72cd3113bdd9d95d3cec9a06e9a76ad538aed1235feedd385db50d9ce1ad9f0425cbe23c045533d376c3f98784782dad194fe2b4f473d3be2c41eca1a3558611dbc8a7738fa43ec03d7b72f7953d31f3a71985d8e49b851798fe2a9248a579079bce7c5e66091ed9469ef302385625772566fc18cbe2e95e88cc80fe80863e10e23cc7fb09296476f0a8612b91da0da3ddf8fb7808c503b481bd22e05a042c087bbe27cb97fec7a4a38bdc67a6981916588f0996066cad0ce5c55916685b12c98627f0699e96f260b006f0bc189fd58f97a5ee63fba1314869d01312751d887d09be1203c4180c6113c0a553c3c2c9e97c4ad1028ae240ffd1971f4fa0dd219f8965640ec69d07ce0a76fcbd5f49ad386900b6057f6eb114ebdc3e6b67cd907a01eb9d08" + }, + { /* i=6491 cDividendBits=3469 cDivisorBits=1153 */ + "7afa4f5239694ec2954d8eb7cdc0e282cb890d623af89f27ef159547880c5efcda6646da055948b46e4e21b5baf4d614aca1e3ebf9572e71413a141061ddd678fb4a66218b62e24a4485b93a3a879d006cb25188a2c681e1ba131ef5b5750b8c1e875394153153ba9af279e91a0ac45d5e1ad42bd57a4cbda8c2c4cf2e90ed7f27d6dc07acd0e2775ebfd468693a132c2f2eb21abe4d77f9f849197822db7991f3cbba90c8b84a0120e0898fab560c9268a38d667c19cbdd2234836243d321f537e19acbc70c697e4ee0fa640facdb25ba31b4e1ee36ca336a7e3a7c13fcacb00187ca83be5946059112966dc09b7b39a625d9b2e0ac98fd90582dd5b82ea7706059a2d326de2bf2afcf2c57bb5844714f6df0d71f29723123c2f2eaef84b630bfa08d669848b7d8e06d89b8264a4cadc537da8e54efe4c3ec28da5097eed6612145f2bbb051bb522875a976a00d1730c37780297b1e832d249d53681e002925293f7d2ae0f0ab7a1da32fe28f915563e2b53482e2e2b45466a79f82d8fcea970a8410f5ea69109b783fd13278604f5359871d8605f2db3059a4d8c187fa5f21c21658ffa6b26f083ec8c2fbb4d6d4ae80", + "dddf2e215b6bbc80f86213515af96b7a1dbf01a034a4419e6cb12357037434a79c04373c1b290c6067e09fba82fa09ecea3e30d090907dbd81b86a3a066d8e369646cf4dc4aac80a3423ee0d8438c71762627fcc47b93a0f7f01a25565f22817ecc3c9135b3a976750a5fbd9480fc2a3ed4c738757b3f38781c58da5e519e2b9186ea405bf24c732a1e917b458887065", + "8de4e6edfab6368470c475a3d403aa95fd9dec9619bc345cb4fb24f9f50041817ea4592bff60c39f2e7a9981bd6b2d7d94b79cbb82b1e64094a40db327493b343592ea7897c33e0a1fb4d95d9efb991086020da39d1358e4012c4a646fac26c05c109f8b81d882a7dc0db57f6f55ec5e7cc5333bbffa6e8811152ec86c91e4321bc990aee3ca198180e7488c4cfbac0f4424ce880f4b6058aafac809d361510545ab69356a1665d3d213954ed290294a5085d3bb202c16a0c25d24ae6062211091727edc45e7b8092fb689d0ca1872ac03bb8c6de7ca6196d3b182a287bb9bdacbf5dae9cdc6f68534703110e0f0250f3473d795d9bef1e58ebd0b9799342be16a004d8e90fdfb77635e9d13cf31e6dd95c3b3a11772897dfeb4b033ad241371a1", + "03e45314b0def8dbd96fd70987fbdd366a06b3638b413de144a3160ed6452ad5d6e4c13edc2f62e064fd4bea099af244f93176b71dcfbe4c867729a4286db39c890667064cba2439ece46271326d18c6239449039c224e3e755f208ed671db886b19e242ebe6060be429ad683e1c81eedd7e017948c08ab23a5ee1edc88668b51d84b539ce1107bfa6d6a30563ea69fb" + }, + { /* i=6492 cDividendBits=3508 cDivisorBits=3407 */ + "08e12a84e0e0b6cf21a69af0d6a106a2e6244eefe413bd569d32557b49dcd22202fb47e6e51a809cad8d2fb1160eaa2866edfd3fb4a4607a40bb4af6dd7725a18bf77300f5ce26e7db1450f7d5a818d68b3b4bd439b55f7e6337061d2253cb93f0e0a401cbfd5ef1dbc5823e23709e1e5fb86ccace23a3abf4b80f15de1faa1dedba2088d5566b124ac3d6000a991a516378aadc36b96dedbccbbab09ee29f6cedf8f825d507affcc074277032c52254b28508efac24600396c570464a66292f82bca17d00ae5838d236b3def382ae084cd2e34dc21e1e95f43ebdd218b7c4cfe0d9a241ccc38205a43dd900d6b14b09c5d0617b27dbce8690990e6b813559d320de050c5671f42d58170a35e79672b2250c94297ca3de9079532b55fa07e86c42420535885f99957b495f94ffab17c66a72e3cd51890aaa14179e9d5540a660e9f4d784a213d894ab4c7d9af285a6e383fec21cf1abfb7c2e968fde7c44bd282e8e90c68c07fce838d73fbcd09694d06b8cb18f0bdd888beef93a1a6227a68586879270eeb8f19b8d0d098aea411260f3d6b727eb03570e42de73a14746359cd64a05fa58a11836ac08fc0205777c3a1fa074db05280f", + "72095b7469e36e1c21db846902d171448056fbd5f9eb1aa596bb7fc6060b50231c6a516ebd443ab3b67f7dd22aa117aec7fc243317d5622d0bf9edcc3e3f653d67f05ce321e616b89ad4a5a4ebe40765448d58293c68395058550857b06b960306ce18b3c4673472a6403734545d602d2c3b6cfab90f0664e5d8ad7d19a3753b00be8a161daf6ed1764a75113f282994aacf573270ae210d549468213827250d6035942aef295933f1d6b7bbc96f7ab48cbd87706dae32e297dfbb36b4e4fcbcf6d94da18b4da7199402d1f851d12667077c36cba84a2a99279fee391a8169ad1ea8a990c781bc287c171e9e2aa47c6caba08dcb3ed90a3d1fac11eacfe5a64410c25df0475eea6e9a8b57fe26c50c0562aa153b1e6e3754979a1093c476d9811a3a736072cc228336376dfbef93ace5c7a7de5ecdc86f42bab3d26b5edca12e14b08b4063c858d1d48f0f442ddf9ba7a98421df0b73444f27a540f397ec2a4fa88845aaa8772d8fe8ce63308ab25af2297b7fd5a4f66b40af5c9a242f0552eb344847a4573ab07ad3e0b093f7f4a9df347a16d655123686dcf6f0f9f5a7feff97f3b77f293701868bc2", + "13ef047ad1c7a6a86edc9fbc5f", + "01697e4cceaa462ffcbdefb1fd0fae1ea7546007aa2b2fb2167f7b11e986f0c3bca82088af62e301cff5332a7b84ba98d7c38e93f2c89372735b623710389d32145f394e3c5d6d6446b159bbb7715bd93175d48df8075ff69fd434f6dda9bdb42bf91fcf8eb8087214196aac1dab939ea57a4ddfd695cc2b126bfd16b29f259662119c9cf48d27608460b5a0d973e0e2a8f2396b83327eadf749506b9ca08befc623c5b3eb2115c325c1f00f88fcad51a0704b41465a13997efc676cc2720bdedd296e8fe4c7bd9e1f5067bafe2f29e9710b0d90271b002f22445e22f3d8e034bde9b263371c0d86350a4e70f29a2374805711c1085ad3833f9b36fa3106d5e3becb38c7a3b602bc8e22f9b1f1703aa07ebc089431857a9f3f3209c2945214316a4aebd7e6b4963a0cb9c373a0b36229a21559ee2511cf7a2b5068c4440e54134ee7e483ad69bab4f772be3f81c0fa9764ec0ba8230a440535f6732df06a7b88736fa14133dcdd6b4ec90095e694f1dbab09ca3c42d0a2b45c20ec8f9f49d714c5ac6e10399a4611fd7b08537a0ab48ba0ea9d7384a845271fc7791589cc697fe9fc7fddffe4f5f6d311" + }, + { /* i=6493 cDividendBits=3980 cDivisorBits=3740 */ + "0ce436a509b02c9e5a79665f7e68e0c06ed822e4c4897cd7a7bc4f4b7069ac92193e8c4de36c30ac73a68361f0acfa2ef94639a94f621641312bc06f6ccbb5091b437bee7f32464271e2b33ee9a6eb83d761d6619deb49f2562e17e8fa5311da61e3d5a3852b95183ae037a6f66505c132553207be254ce67b0d111294da0225366ba5fff3797923d9c96097144869643a5069e6ee38a88979bdd3ea1dd3f8ec05f2ec1341eefa460002c6ea13f6b0ef6489b066f0c3e5824ba0d673d9e26c00eec596ae830c80d343b1b0839b8b2d9a49dce63b88363b46998c092d4778ef04f1ed23f2d001829fb0fe4ca8848aa9e85ac812a70c5ee59897102e430f5a7c3c645f78121aea84cc016e7d9b11404aa215c55764953d4600d277869df117f21fc8a25403c68d659f77c00bfc0ded122a5872eb5e5cb227640297938035f9d28eb24d53b895f3dcd07c3c82861ec2663934c56f732b34f61d444be6d3e4dc76c7dcb6d2e5a11a27bddc079152638d50277c97479d72deee827d20b7255873dd1150877a1be4e13eb030ac7d6086db836b1ed1aa5ea68271e462bfdc1620f6a4576ac014d5f1ad276de7090eb3f6893c6af46259236d789c7442597b288229853ffc3ffbb5f523808e1f07c9b9281d227dfcc68f244ff9b0e9afecc2b6fe62bcc9bd0a8e7542a0ae9376505215004f983a2e04", + "0c7686b5c7996a4f2d07a53687c5a3d07a7195590535be64c9799efaca198aed612a797b23bbc63d5db7bafe954f647cfd85d401c6d0772b8a9cf889fcd6432c77ec03da0393256a5c4dc682b6b0008d073acc3453d8b1b838708cd78d04e80cb21515de5d347f002bb4ab8b5f295a003270fcaf95e4f9fc01665d66ac5933e4be43a5178221e119f9efc702ea9266bea1314716b5df592b06dddc8f83f6c384904d84856acb6ad255688760857dc75fe6b63cb77cbb307c9f79278a58a8ef696d7bfffde3abd7529fda5f08eb5fffd97891713737dc6bb914716bcd0a48e8763d9c5d6a2b8f8269214fca7366fbdf38e013a13507250b273f945694fb24ce1c308b44f8086d132d468e54848f4c2cb1d50ab6ba007c57986031f14a9b45a7e968957c62de16d71b7001c190ede01fcdb9606268b3977120d9c2403e42b57f00a12e396e84eb28b493d1a586f80e2100633071ce90696de5ee03359c108362b6d6e2eec8d70de4cb6e99a242013e5a90f0b4e58acad54166f291bbbf624c831fe7153cade6968b69617568b4fc6dd03b786df8c89efa3c7a455a2ffd3303d1348bf791f76d3bb82f7cafd75d83727a314426137f7d50738097329a8e4caa125554d3a3852bd5552692690916c1d532b972aed740", + "0108cd10aa69f04976f1fdc0ecf147e0605782bdaa0fad6252eb3e719c4476", + "01d5a6866fb852ec9ae2af5cb0f479bfcbb9fa5811697feea5c63e59dca28a45932b41f1646c8e2af036731bf13e9e20b8cd9df8a9859688a3cc118fb2b97d8f33f9e684e18547f9a4728d4db64a742e364d9504e7cad7866539ce4ea983f165954615a7c7a1ebc55ee5da9c45eadb4ea647c75cff76122d850583f80dc5b48d2409e19ca5eea3a7345c397304ef5ea0a303b693ff9644308e640dca5f64b93c4d34d39d67781885e339c5038e7a7dffc1586ca0c961e5ea88a93542c06db07a4a919b6f2134c8735d9fbf4df664ffe3b6e8444944b745b20e3f0e6a1913c15caae815ee0e18ff1dd39932125276e17b7f3004f429bbad1d5850bbad909241af2b7856cdedec5d7e7a1fbb24424f647b81157141821313da3048ba4a6b7270082708f30856736ef565de866eba046f4dc27623181879fd35f643d5a0fa80f339fd7fa4aac17b97074581fae85b2cf00660616d80d047025ecd812b6a8ac41c0da0b282b86749016cf437b0005e9a551f9165fe01cb837dfa3757672251f84dd08752e386af09a26a70a73b7a3e09f6488f7941ad26f355f808f76ba3745afe16c941046f18c47c3cf27a48d7cbc86b9842c018a130c910a3a289d0f5020091d28fd0a9fed14cf339e28d9b2fdb456b4fdf75f684" + }, + { /* i=6494 cDividendBits=3666 cDivisorBits=875 */ + "01e7337bec8fc6a20693a32d4a3d1667d88263faf2536ebfb2773d0a6229b65296a6604b11ff9c23a38a0240ce38fd84fdb0b180a54a156cfbe9eae074d26cd08bb543e014952c99b28a90f817a3ae2861fad47e747aeed4c8b255c956c31fbb481492c589dfe721fb4c0b70d1d5c999a6166f051f9a9d459b95bdbeace74e4b7df7572437a0ccc60d7a41bbc73f6231a70b14fe3ac03e392f24e51cad5774f62898f943964cc2558e715816dad6ea16a4b3f72919fc7e595842f19256e5375517749413b94ea7878bd0ec80fb7407c41280b91ec62f974abc10f4c187ea0e8c62ac17284917f9ebac12f4cbbb7bb018442700258f5cbe33e60a272a51e83a0d9c8f0688e92f1efa891f0853f1dce1e56366a1a04739ad69f8ba3ae5e80f6da4e6a4d68848393a0c92f9d285527b42129fbea21195385651c0915a8e22a2649ebab47c0372b34192f8b75022c342d052a4cb66a1f8f7e8ca58f355c1b8a75794dfd0f5c3208790cfc8392ef5b294cc2e4b21860f34f189fdef295c2e432c17f4ab509091c7e0e06fc395d66d88da4e749620871e6fcfb222475fad1d57229e9dee9553a4bfb331233a017d89a63594bdd7f5231c40303b366e9855a61928780c4979671a50a89a58350313", + "07c84b87c2b8e8e63a330e197ede5558db3da4bcf913b8fc0f1fad899fbce432625c5a71baf5817823875e3c9a0f8b2ce9f8305095ee02b901f879919cbd43f77b61ab11a17d9c45f8e9beeec2b43c2919949098932cfa0647c800791ecce50c38c50ef4411cf621687f212e14ad", + "3e9a58de4451c1be09c49283f901a76639f46ce6fd525d283f10e01e1a99849673a9f3755884b62229fc99cf65eb1b5eb6492b57e10402f6ea126f26b67c7df1054882389909766cd1abbd54e0b14cf553e2eef4e9fc0a4dccf9c766434a39b2899823f72d43314d8a0f01ab64c6490d73c936f5d7c41e61daae107010539ff4a3913a5bf5644f9068057a1cb001e6293bb5dc18dcbb3993772f8a90aece44818882992b8f001977e722899bcf090445c2470dfdaba9909ef58efab3fb57e28725f1c862ca5afecbe82e577d9d48e5ca26b7324c0dc6e1a1859125260c16cca845620dc9121ccd8d79420be7aa2043f74ca2e12e6af590e24ffcb86a3e51da6667c6fe22987b434483ee612191ce0c9355ed080b204ae178bab4c085e5506d304720edaef1563b8ee9cb8c51e3eb49948c2371988e6ed37e3158c2535a0df466a93f72635d7788b4cb16efd3f2c9ee6b81e03bb2ff556c3de7680ae119", + "034781072992c4694368a4a5b2bbab2a8257f3c29dcc45d31fd6a4f36f9b7f989228d0d321a08f83191a2994bbb1b88190b66eee07a28112fd3b3e33f977529c9b6da2a8eba3e6a106d19e7983cce838edd7f2f7d297f191a089c05817c4bb69d7ed053db53de445d2b883c6f12e" + }, + { /* i=6495 cDividendBits=1405 cDivisorBits=1316 */ + "0b2b96e7ca6acee157533cb4f6e2cdec740b3d65169eba15b3a7f374472c6bc410a614e085758467c736e6489beeca4592495d95c92ba1c6b35e29c3a2b3037ffbededefc53e0bb42810c6b4976c2fec8aa4c6d4ca2a6c04e50083a18a6c7376c39f58257064e4a7f5469f65e262bb2ba4f7674994e15abdba26df11b483849af55101f02c53a1b9361ab16ae2f3f6d11eb69661186a2bc9a01fabc61798026febb9047c62039c426f6c13e04c9e6e5e", + "027f52e4fefda807464b91b9a89b9bb80734d5590f2ac593a5ce145f05fdff90455ba2d6512f7e5dce0c153908bc6d818434b8a62c7312a3b3db3e7978cb244a40ccdf5e8a153e20e19619ee6d78cdc21ed21e92c0ac364a5c172857021a7b3cd7a8810dcf9719c3bcd10c4e2f01c5a6228994b477ba840179374bcfb4343eb5f79d4e6626f06adfa38d7863793853234b7f1c55a0ddd10995f10ba967d7aee3261b37651d", + "04790babc8e67cd43e481087", + "73670401b2180ba9080b539a037291eb83e23422fad94decb00f04880a0185264cfc916823a02ddecfa5fc7c126a486671bf5814d91ee536665ff8a697230bbf5039c9a734b34d6736ca238421698653dd554760b235616315798f27cdc5ae2ff68e955ac91947034a99d0c6dc43bc0f804770ae33d1c1154dad88e0b531eaffb9e301f48c9a7ec7eacacf07e59d56ae58084008bccfe19ac46daff1c7c90eff05ee4c13" + }, + { /* i=6496 cDividendBits=3205 cDivisorBits=3068 */ + "b3ea7979277914e247d9acdbe707d6d54d27d642210c58c8d370a4049a3886d1abf625a8cafaa5ecdfd39e3acc999fc6da3d84bc33891ac50bf3021f5cb80e8ee97dff5d2f0e62d73efe4b98ea4fa816bbb25d3c58a951fa59951276654e4749072de6b28296f7e2436aeaf1197e3e2a2d86910957d05ed65881a280242efc17144dc90fde6729db2e6c282a481e8c86779fc926d0e3bf05bdbd4f87e31aca3f97c1a52f246b321ab754831e716d84e42ce553cf55e37a1053598556144b7fd551136e9c8c8805e954d509dea5c155905104be67756ffc6677ce1484b2792edd7fe8822c472c97397b068dfd504506fe78cef840e77af621888151ea28cc2d8e01b4237bffc248ff37c7e692b0d1d624943dc36280badf8e59b8640eb90d7417701d94ea7df71a7a345e5d7683f20c03c6ad7ade0d39401537e6a3c085ae26f09fb80e96b976ff5914a6eef216d9c8d6367758b83aec4eb79027b8773c9d2654783eeb2eb5d76abffaad485745df0a4cb8d64b461b3e18c80f06c65a0093132f17aeecc6527161474f204050616c9363", + "05e9f0a9a18bf7bfced3901db8afd92a4090a98217820325245930c349106498c3b665b0edc93916a2073d1201f05d907479a31123c8aa4d8d6d04678efca1cdb6677b3ae2112054021f5e6fa1d1b58f0a2c7cf5ffb92d7bdd33080391b8b748f463147f7243df81de6e61bad5d22077e18a80c40891dc02152ef6a29ca5de92e3f3fc25af119889f2b9bb352e9b22518584701ac6a6f1d5af13bf1e270b4bbd4db958dce112f48f68d068ab093a14aef7a946de26bd2017d1fc448ca4518913b54d0f0efb682263dbcd932b7060b424251017cd247a819803d25de55cbb8ecbebba632f21c1fb17c87884deb4130955282033473bbfa2015188318e2f534b305c042575b1d1e2e9252e0adc7c5c49cddb2cbf65aec254497deab16a2ce217070066da4410761aabc30c1b0ca8e55dc4d53cb20572f4a162a8f2db8aea750322d258e1c41c90dec66dbc5433f7ed30a3c5a7fb52ae253a715e66be27dc6231c5cd1c4a6194bdcfd5a9b12143be811eb58595785ec2897a37605c277e0eb4004e", + "1e6c445351a5070668fb3708ce30acad13", + "01e43fc6aba33a5673d1a32cd83be0a82c655ef944a26a840c53f44f6ef7a06e38d3597b788c4f3f5495c824e0de9d966f6c835ee9d14ba9151f46ded1f6215994d7f7b5b26e3ed43cdf8ecfb1af17c5ab61ae022e9a0767acc3d6fbb0812c5a8a629021bbfd1b03dd03279ca227c2834d88ab849c1667e5d56c85ff0ba30b972f610bd3810852394147248884cd2d43f40dea66d9a559b6d949c1edc3abcada8763907acde5bfa79f82b91465048923cd12268f1cba387a700ab76cac16a7af84602374dd31f7c60ba5d8c96c567c8cbb1f68a4e5906e27d34145fe2a37a3c55bbf783e9cc11326a285c896d90d91b6d8582bcabf3aa6be426acc1fe3154905ba038748f8aa94aee1c60749063db4c2d8b16186245de804d70a2b21995dadf498a124d1b6d324a865f34a55f97a04aa6fca509317b23d24deae970e0a2e66a8d6549fa2e1810619e92a22192dd7be60fe1d4e28e2ce13e183f511a44f2e308b273a8277b6831f856c86e96ff504b7488139898c82388d2cb688d242d173d799" + }, + { /* i=6497 cDividendBits=56 cDivisorBits=32 */ + "3895557a284be7", + "1bc8f76e", + "02095603", + "14d0719d" + }, + { /* i=6498 cDividendBits=3074 cDivisorBits=2671 */ + "024ddbc35c1350a912f851866366d55c13e1eb208bf3f97dcc294bb5808f1f3d15823f4b5a92a0a553ae76e1a57139e48d79102340bc13e6992e010b577f3eb98a63a97f3c2b42e33c9f9f05923ef51ac13aeb54976b6250af5d6c54ffc6a148c7e85265448706fef2f8c8ced343406992487463eb049f2a4f3def2ebec8058cd1df82d880ebf197d6f36a295e83672772e07e65c545d90e8a201a651572d9fd82f7e32fcede61fb9b90f4c1ac8f99cec2d263a8007fbf77a8e7a2e3b7fa72e8cc21c4742d467bae3801197350e3b5981464755b405c398ece2150f53f29dda076ff17985b8223027c6f9164c944172b07716350ae184ab31a7bea1b314701aa0ecd9d84008f335a7d18a00a02cbf577f721f1ea55af2619fe5f6fe009ac5c31cbec1d0c8a502eb54039515942ffe892aea0c107b038b2088b464af8ed99a52ae1b8393e05ef7290982a6992548d4fd3ca4d86cb06231449a2601a3d87289b1e12ff0a31b1d7f74944f1a3c6e7bfe7bc3750d107856c26bacc881f06a3c02ab1d0", + "0415e21b392a7b4ba9a0557911d71c09271082329302e369f0061372d58a7658d2b3094ace3a896aa0236148c06bd488b9893aa575a8bbb400a99e0809bd014d6cec7d276c661151e58f57f45f21662a59120077536d2cb0bad52d09fb8790900a1f02faa545b63fb5ca9021442f00d99193eded9ea4932e35220246ff30aad9ddcb3f722b5505f25d17aaadb261589ed0067fdce36ecd6a6f6b22cbb56b1f59d65f21dc29bc9a3e37b26903b86f003e1713788d7a326606649d61f0842b66e56dde114bb8bf7410fda51a09f42293a38a28cab2ebc7a8f40b601fc83fe48bdbae656eada6ccd387cafddd0f0a7c1aa9af456a5eaa9aa6bd37be00d2d46ba80db2cad69c6ba1044651c44a9d6cae8846ac3456876f7a8dc281c8a3464f97a05db3b17d0a564ab256029515c4c72849644146b67ddce516c391f4dfd78b384aacd0329306bd3ec4d2588f747ec7b5", + "906111f5a5d8879687f0b324d8152925a4d2533664e6c17d76e4b663dc308c0906b4d398e543d2c04302d41bfb5be20ad2359c", + "4c9ddd474088bafe9b5b176f6e9783977c9814e540a9eeef50a5d4d5f71454293a84ee72643d3d5e3adc59912082a5aba8ae3601c13fb40d6fd65b53b4eeb078efc6635de824358d534c33e55c42ae3716e14c82d271b02c145dfb49978fdaa67058cc049f56ec671c1e1e4863d524c08e3fdc7903ef33fe9ad64df14ad8c464c2db448ee2bda039737e0a93e21395884d34c5d4824e6231d4ded46bccdfa1f2482434da19cd2c2e6fc038701fccd31b35e454dd9a489cd00fb195b120697c7e21fc0f6f65454ed2233aaca61a2e75031b96dad80274395dc7ddccfb9a0ffbca4455b715fe0ca408cc80fe63a88ca53dfcc856c4096c90407241ceb3cf723f74c00dca3b28e805894fff0ba20c4ffd1b5d5a4a6983c6061867bedb9c68245c353d8a3fa2fc38aa908543537e540c1a4dea07f8a1ccbe0d92dafa7f91c1a5ad0c3dc5a62d7afd0033839f168684" + }, + { /* i=6499 cDividendBits=395 cDivisorBits=200 */ + "02ff67680a953d6dbe88d486fdefdc4cab3f881f1617dbab7da2c052cc2440a8fc3bcf3c06618806f2a0a9fcb98072bd6166", + "5159e3812ef4dd764f0dc6c6250241b94b2ee394a8b5cf4254", + "096ee830174420858c76843bc0450e9bee5d05f8031f485776", + "43dce8e35e348f496209f4a8bcf179b1afbec67ba4620a42ae" + }, + { /* i=6500 cDividendBits=884 cDivisorBits=634 */ + "0480f66d34b05a162e0825d9682e86a6ba9143b552aa38bb7fbc83823f77d14b3fb74729a9ce780f95093db82768b0e8fc5a04faf3a6758e705c47755bb0c73f4802d0e935d207227cdd7616471a06e694aa48486f60f4752d0d8c0173318af71ea929a3961e9b657584c3c2f3fea0", + "036203177b8a9c115361177e48d2ff54242dca4a8c4acdf2a1cbd6dc258bc7ba56b448c535ebf92833cd562e406b63bafa54b970044f9ce015704cfe1f009bc12a5c6e1dbfd7a64a4c9f0c4894ef0893", + "0154d328a31bba3a616d3c10869904e63bde975423d5eec97087e128c1f2f3dd", + "7978ecec21a1606ab9e6046e5efb361afc94c2ad8ca28392174d563f8aafce6ecbfba7bfe46700d33c3b2cda8626dc94770b3a8807b4114456b822480a8fdf157aea37ba8879a9c1327b575d800eb9" + }, + { /* i=6501 cDividendBits=2745 cDivisorBits=1332 */ + "291c396bcd07e54c8761ca816fc78a545f6d33b7a00389d2d5469f09f1fc5f61e69ce39932b98e90640ae5a590db9e7b8ce1fb4565aa32c5fae350b25bedc1bdffed3cec825c3521a64871a189ead76c1aa55c34d8e0742d855ea1676a7fcdba692828831499e5b9a47d832ecfe4a16030a367e9b18425f812f65d14b9da7d0f3c0391490138b475dd72e2e5e618f74fd4bb7a11dff58cd8bfaefb7973b50cb2f938617b80657833e88c77889118002e3ae2d47ca9dfd60412fa9a3225248f15498d9cd5961b94e11a8a179fe62ab14ab88eb6edfaf34239ad0f682ae4adda9f287dd7a7da6e33c9cd139d899599606345cdc8b7e033801ca23a571b543736c278a1cd543065bb8f28b11f94375465fdc113efc90a9629aabbd17b38b925b913dfa70128ffa8de079862018de8402ebb9b3b0372f5a438f8bfbc4d22c74dc32397134dcc1a3cea4af998ae603c5e22e965734e9ead5292", + "09b3194d60c79692017e296c6768bd664c9bcfc57178b7f0551df17169746f3981983389b30d9e612714839678d23bc2ff9f9c3fc464994376b3906298cc7e176e59f8d20ef9c3439460da224a09e1cf5ccd20a1df22f1467fa6cff85d26cf9882d6e22b2d6f810be6b2ba0d5d1f0e12c762236a221b1e4198f439f3e0e7f15181bc0141ad914ae73172d54230f23c1b8a9bd4b73efc1f7473a200cbcd475a956ffaf346bf0f86", + "043d040a2685c9d2d8dcade9a1d354d84b8f6a2326b6d6c84c9c5dc9d2441ffdf13eddb402c27fec67f7c1892bcae5d378db1694a705f01a320ed40eb4d48360ddb9f9f9d16f196416521027859a77bc772d846cd10bab04c39dc95947ddb332ed27259a22120b18671570b875fdf1be6cdf878ba98efd60451f12f636b2121b8f3595f6a620636a08c206ae9c0c431c1095fe4750705f29d5662abfbb1a6587a386372a48b34e85b8a454247d2e658ff3", + "06156e45b7279eb219a933c179701d57bae0639cea5601cd117cadb77825463584f8d38ff74e0a854300ebf94c2ca909c9fc11f2ae2b92a5596b2327679287232320f4ff0315ce2d539b7030b08b40cd5cfc5a280c5b8bb20e7f80febe5dcf4aea292ed771c44e47be6e6c281737946bc351824aaf6b287c79952ff16779aa37615816bc78bd8848c5d8d009c9436e23ea10125cb59b4e698979276299d3b870c9af4489c7bc60" + }, + { /* i=6502 cDividendBits=1022 cDivisorBits=246 */ + "0f058581f5117d123c7c04194cc0ce069a7f66a710d40e8f9d72606fff4b47fd43fe70cca40b5703adf0b42d9c1d864ae6d6601caa100b14ee61a1921dddd1e7f04f53bdc50fe1ba80c8904f94f40f01dd9676b5ce32e7586a5b65c6e3e66e4605a032ccb8e3811a1ba678627091779e54fa531c014834efe7669e4bf9a8ddac", + "017c71cc1a87867501d21a83fb918cb28564a49ed6a35f6acdcec3515f2d3a", + "0a1ba3df5c1d2d8a47aed43fbdc0c36b8da3771f2aca3e6866110e6bef9819d285c537ce5a37af092b5f830430b5d0ca5455c90980c111936617c0616a0d190e057dce49458f301850628a7399f936988f8af1f4dcd96a3610d78e8213e1fa280868", + "6d0905417f5dc20f26c859596bc733d9311bbc393ced50e2cd643c84ae1c" + }, + { /* i=6503 cDividendBits=1462 cDivisorBits=850 */ + "3a82a8a8f12205a651a05291bc016700ddcda8e4a60797a6689d11725afefcce0a8de27c4bb6cd623c0ea7c164442e789603a2e7cd079ef1f70e197439374388326c1b8131b9f7d8e1c7e05ab5b1c87426372d40206f05646427f6b3f5da04aa80ae781019f4284d7fb5b64d256d7d1dcda39afdcf506d8b49e764a6771bfb385a0e6c2d5e428eaa89491ab4852956fcefb75a76c53fbf1ae5b31ec260a90936547831bd7d60f00a5d3d5ca0951fee15175f9ce006f35e", + "02e528a397dba5dd6ca6d2f725f4e4f59a8106b98396e15c0350cc62c00ab6e931c400e9ab434434da7b46e3a67f61b04466b5df449564495354ded5229234e44b9398b606acb0261d7d3cb02d13a9234d01a7df12af95f73e1f42c6d7801e105ace542aaa5f9d335c93b2", + "1435b47659096c34a67ae630cc5e7479cd19fb15f56cf2af9ee70994d62206c06763390fdc96d4307a9c3d3b7fcea6ca012241328f31a977b60bc6f731bfc85df37c79f1ff2039558b59a43d5c", + "02e0ba9766c3fe7946ffa94ecf6fb2257e3f15506d3d7ea3d60f12a48600bd84e80dee1dbe64ee03d6520b44761a97203eeac082368325588db18594d05d5a15c88c7a932ebecab884bc59997210bf1b2d52b0db245c448fe5dde3691101cea7f78c577c942b93db887566" + }, + { /* i=6504 cDividendBits=2142 cDivisorBits=742 */ + "2414d8261a723ca3cf56958d26d8c88099512a088c4293fcb01988976090cf807ff0eb2e950292791b75f04c8f621cfa462825b148f295a24363a9bff500fe3dcea1a4527234aeee8bf46af3c3cdc583ad8dd8790d7e2af20adfa6923884c9704a767e3c560afe834f31570437e6f044314c556cbd2f340d0e5bccb214a2cb9b1669b767354382a34f4415649eb119a7369a25eb115df34c8a8f2034de333f1d6c31a5830865bb398651a5ca663d07eda1f8985154e46f58ecf6a37143f69fce7ff51e8e9db3a57bbce9a0510fd25d277be6b9a4cb65ea52ea1c2471be1a3e65e072d421c4797b8f3173862b1ac53bb86ba58470174fd36e5be4dcb7295f8f16f2316f863f337569f388e8e1", + "3451863add1b1f4aa481cbf505f935fc80e2a08f84e53fb825c04adfd6ae46fa814797de3a9e374cf3cb66917d18ddbb991bb65793723c3af1bd30cde4a4161aff90bc407dcfba786ff7e3707e0a392f75f8a680838edcfedf9dc533e7", + "b08ce75b53e318b2e2ff96c818daaf8fcb031731e36f4e0f84b935ab4f360380654d1d77b52a74288fe306f3dfe1bb19ed773a361c30e91f4f0518e2d0ee22d7386c928fd3b41df7099c70e2c34ab1fb48d9959812225254d9ac66ef477c224f997819eeb2a7b2b7a39cf6632776af911c3feda47af3b6453af22ffff11e27ab2e4b5630cf81b5500d72d0750f3dc517b04f12879a94c656180d6439ec82ed22195c05531a5e80c1738d3469b623f1", + "06cca0fe285b9fa70f903371965f32227d67e708a6aaf7d5b279b2879c491e5d1aa66f4268df1a9a81dde3a4139dce2dbf06605587f474d58cdab4698946da3cf0217d52a5130b65a9f1b1258dccc6cc027ef700f47e351febd190776a" + }, + { /* i=6505 cDividendBits=3944 cDivisorBits=3497 */ + "901c9a9fdd232a43d3e1d8c1f34f3575adf2113e7a27c0f6528d1ed5a1643d13895c8754ed776c95347ff55dc4a57b532869686e19595937fb9fbc1a1c0c13b1de39e280fdb77aee90e5e2e19e4f31fab0c4eaf3dd28c1dfd1e528288dc24c2a4b8138b886657501567ff712b354f0669d74419283af86829b1d72dd2c352823fdf06092a35cc381c33230f65b468f08a4af3bbc86791429eef329153f0274c18ffc58365249888ad90e45b35e170a32bf70f700208dbce83faff495097881037341f53b5ea22b6ce4825665cb78170130ea89aa74bd7294fc435940963422ede2e06fc5f49ecee43ae2a469be844243e21a231558920b8f1ebe801407ff76954e381f728a4414654875b6d0d612f1b54bd62a3211e0630a25a40427982a3d464385af816a762d565d7bc6f2c67e625533791faff0d7a90531e4180822aa31f200b74b922d8345854549d1ae81fbfff271cd792a4405819f61bd2a3ce6abb13cf3a789435d062c334109665ba7e94915ddda63af2bdd4c9ec5256cbe7f58c1f1c122cae7318506f1d58e64926b71dc7168ece6bd7d3b4929f25be8e73ff8e3890ff822f02052ea00e93a43d74b43f8d49076e8ef807cecf81e1242eb2def18637fbab0d501cd55a2c2e06063fa699489e4808a0b5cdcab13d1b56f90c3360a83f1b9a996684a7b25ee28c79dde", + "01bd4ea875ffd65d0fa8f59a2cb7f3a7e85eedc18aa7bdffab91492738009e462ecabf78a8ef078227984d95ad9dbdd7455329b5fce27ec0411771d072045b763fd4ff54ea5fe33d9ea5910fcbdf433de42913e8c1d66f2a4d4bc93ea758bbcebe7944159a802edcdd9b99dbd7f3927e145418b4f2dee90c127fb0988d3ef0db2038c0715a9ceca8c0c834270ee51ba3b8f8dd509f3d50df74f76c116f77533a879cc2a4197dc925ab5ea9c5a088484161942c4448dbc731e1cb87920f2fbf8b4df9b22f1478f61cf283e0940378cfbbbc06b517756ae5b8ff59baff757fdccc5d7061ba4e4ba7e5da903d1e81b18f9cbedea52f59ade516d269465c9892ad52bf1acdcc48a7c7c7cf5cfa1a6215b935105673189ea4c27ef782218ac230bf58d73ec2b7bfcbe86517f4d9a7497ed9134be6f8cfbbbb93ef1ca4b592184df23800446622abbb5046d1320101840dc5639ff418c10806c62d95b51cca4c2a680b7c954bcd5c9342016ee26fe3d4a6df86154831a20c0fea1fe757da13dbde67004febc8fde63fdc4fa520d9fcecf0b67d9a85b07a81e48ba8bd5e12d9cb9a84f554686baf026dc7881bcae730245048a76b16b28c6844", + "52d8f75ee052d80d3103d28f30da3413ac7e85e8882aa2a35ce58d79552e7ab9457d77c989616c53d71f2d4754863a16aae865d371b4e371", + "019a98ddf0f122e91f4497a1aa209e89f31fe406368c3bf402903c882e6ffcd38b2635da83dc19d45a40f825f03b10a9752cd8f78e7db22e782c5e6488bc5b56f40d9258e037f606dcea1f76b9ec845fd1c3599cb1f51cd531976665a9ddd0d654367d6bb8ed578d74f361f966dfcd925a42648c8c7f0fdab274ff02d985728e4320dd6e6bca7e2277a40da01b65b6f3d52309ddf3fdc36a77db5e860934f916dd82bbcdae0e6ed1690c3fd57e15176af7a8ee1a1e83eb87df5797f060238d0734bdcaa5c8553548e312297189b5d957779972b4f3272df325280ebbf25be03e369ac421ab2240eaf28774322099e4fe6d3a866b8ed3eb3568fb97ae06b7c7a9a805880e09f035deb14c573561fab9f941e8eae8a4479f3087b19a1246fbc8b7aff9977704563ad04275a0003911bd832c1a536941d2b417c33708bcd30b26318b26f8d993032634d4385f3702760f38719df1505dbd9986eae88ef89af0ca3f2f9c03473406602026e643dd077a5e31e420c09258930908a034e9c6b935837a9da9dafdd2551945461036460be27ee528a723d305d44e98c46fb9f3a4732c546bdafcc155c9f6f927dceb08c0153f5d77cb84894bda" + }, + { /* i=6506 cDividendBits=1659 cDivisorBits=1222 */ + "04d41c3c9e723b869b0598dab1a8879fcc20703c229b91f93089978471389016e975cd9a575a1b0dfa0e32d0d491ab542444294ca5a6c8bae18ac0d0d8661690b32490cf0bca90671e613c75f9107386ec7f4011751a8b7c19b939a7db75c174c9cf39e33ad7c967607e9ca0a28d857f6f1be40cca5f698d7fed2fb8e426fbc5a0a51721fd0d078838abba303c74f8620578a5170b069985f3e7ffa6208d9957ef139c302d165f67f2776473d83cf6039713818ee43a34e3acb484e541e941f2de761a182cd37fe1202774fac2491610", + "8967886cfd21332059b5af116b746d1647807185080091644fcb2164f01f79a18ebcdbc99492aaad20c87497f0405529ecb638aa3acbed61472ad05fb3753de5b9c26e282c39ba72ea9002d409a84f241b1518915decd98ea78d17a43000defaa8dbe4c6ccf2300ace49e4155bf5683e3619782c82449db12135ea508f98150870abea59ec0a2f3b8a18d054f2430965b843c040e7418592", + "08ff036ffc6b846805575c3034333cff59da4bf45c09c63c624089a6101bd8cafe8462ca9b93ff405376b9dee6d46d3b511131094ee39b33", + "7fcdb041b427a7b2c94ab273aab3b6d1eeb7d27c27da5a1a07a0a6d320d9546da89f6b759a95e05fe8d39d75966a75f1eea09232fd42e42fa59f7f2b772fb71b94e6cc3777fb920fdcdf00bf50bd3f68c786720e8214728ea21e871da678fd7a77ce959a3e1c559f2f7454499eca8cb8479567e2c96764fc8b2fdee1585a0bb81a0ad9a89749ae11ee65cab644e6c99668ad321a17e613fa" + }, + { /* i=6507 cDividendBits=3514 cDivisorBits=38 */ + "024465385075078d370ba3d79036f879316eb4fc6480a85d51b71559ab1e8802652241f50b9a0de2e54ee517dd848e57c0ba9604fac7bd9983cf87b358905758cf42a171906613bae99bd57e9ba13ca747b24b83cd15916fae41554087db45fa543e820f81490de1d694a31fe7afc80c754b627ac34f8d25af9db57e7acef7c7899eeb5b7be1cc996c646ea10d785efe37ca751e055a3bb7a6b243cd2107813bd902c0c14aedbdf5a9193576c019e5823f31fdbcdb3780c8d83ad9ba5285d08013c8fb43e659359f496869bd45dbb562a320129e124b10747b59f076f3749bb5dd36f624071ddc147c42c926a435d9a786ad7cd4ba563d0f8543f287f1807658d7a378d6ffda494edac95cc734b0f92da9d94162e282ece92f4ae0cd8bc9392be2389c6db0a58415cfc40d96ee526c44ba4afa886ec804b9fc783600f749592765e6710e819adb8d9336920174cf8c09c0bd657dd94cd8057b1013608e3fbdf39d71d395bf2a2789f4980c22f1a390336f6e2f7cfd3613ae811302b7e4132de34d2542918d44c088478e5ef2884f020046c44e8aa8b1bea02208e0d97e4b0ac26f6947947ae9814ae38561ee40f450263fb2d507aaf79e39", + "3a334b11fe", + "09f8ed0ade8c4d314d29e5a11cb196bf722aa6a872cfab520f51f3385ca8290cb2a95e057060286d835f1bb1021f362c5bfeaa8a096764f516ff5b21e299db17eb14404d25f995e4e9382393b3736e3df444feba0ad1d11b90eb5af07f7f6151d1889823aef345eca4404fe3153496252dc3383b5250f7eb0950503a0991da54453ec82359bdb792b3d926d4bd205ed05fcaa6b66ce0ec13d6957572cf13f914cb835a40cf240e4be08f88322ff393bb7ac2c1f720c43a670d748c429f33540ff9dcc0864dc4aae66ae1b32f6503cfe2c04e510574cfee99dd1498e19ee248719052280c0183d32b2e803c00d30a5d72efc4ac6040e7d5cbe677825e39172de3e3cc457beaeddc5b734ae2c0e32b77f0da3e5401e06f6c12bcfba292f5af7c56663bda42e9c44002dec19f22b494522e3dbba551d9bb9aec1887a0b20a90f6ccd6da1281df949c80ac40f1c74fab3702991d23a55cf567f1237fd9e1763cf73d8ef02562c13079f59aa3b4891b0fd7c68360403abd932431f13d754666a4cf39acd6b8247421d6b3b23f7c1f3c4089ff7d3abef5643d6b14a362228263ad92023cc07d6da8de8c26a0d37774f2f6bbb252afdf", + "2c4bea4ff7" + }, + { /* i=6508 cDividendBits=1410 cDivisorBits=615 */ + "31eaecd3afeb54570a9789fbaf25c6a7bd183c2be4339968ffa185766b6aacd25c5cc30e6c4dea59a60fe75386c0291d8f0037470a1d74f61d58bfd90f89a270b22742a8d221e56421dd3eb16511a4029de8c2be3a20b642d83075c275e3e747f6a342d75723eea0d6ac57df5f8131f21de8946fffe1a9d41a18f849b663dda47759e6c771048bd64060a53edc39022845af7c622309a92bcca21847ae57ceee833bb158f93b7e89ac171ad2781fd907", + "0cffe06359d3fd2ef7f8672e7c6ebe64a3907b0298c97821b4d5fac2f8c773e49a7f491db83d59bebae2450125509b76b18c3529b7a4cfd7fb9b967409142b1c3b49da65dd30932a6f55f8c088", + "03d707dcdbe36f18b86cf660ccef14c0bd856b7f9ec92d48941184ede036d063c8c2f87de05a7950e3ac2d49715631bc94ff4046fc383433b258b878b3aa0929adab762271e18ec54082b71a495b9caaccf3bbe425fc3cb2cb441547eb6fe4755d8db55f", + "0c91714930c80b4fe9f4850062356c28f4cfb7c997ae7b901b72abda382ad69f72a7c139a7087f739ccb7c402208f5d4bf6d06758a7df555e1b2065ac69fc0d67a96895bdf9dcacd9d3dc83e8f" + }, + { /* i=6509 cDividendBits=69 cDivisorBits=2 */ + "1a3e710744f8c1ea73", + "02", + "0d1f3883a27c60f539", + "01" + }, + { /* i=6510 cDividendBits=2642 cDivisorBits=448 */ + "0276911ebed3ea26dfc8261d84386a73dae065e2c00afb1f2015e54a5b179b42dbb0aadba28b13c09fe085bd2b6188c21d027863bffe731c77d06200712c91be506aa3ada09da9a350fc4b6867a7b69018c9118c82abb52b55e807d5c591df09c56b631becb4d8b6986ee27ff0ec446fa13ade2b589d6d5977216bb998dc626da2089e765a07ea9d58224e55102d85448fd232df1dbdde3c0193528b78d455f27ee2fb64c2b4220545473ca1664905974fa08dcb874d04072bfb4c053d2bd1ab649d23e3f372bbd9dda6b626830b063f9d944bebba73740abe4efd560cf6f28768114eddc1ea2ea2b05f2d7be34ef864ab5a00d79b27031c970de5dc9174ab1580c3f0d8b7a080fd6a876ea3b8280dd39b1f2f6e77750711d3f1251098cdbfc25e582a354cfacfedc075c15bda49383ee3dbdebaaf4a91d236551ec374a423cd3b546af7ba10fe98336e32", + "57609f9ddf49a9722c0dd38b9cc91efdbd40672d6760b3e77c711c1f9f2f602c7c4aea8bb79f556dbb94d3048f3684c752c27828c41ee45f", + "07377240c5f72e19fbb38ff41d530f50853cc4fb873c016f951095f98bf3cd99b62a5997b9ee735b265226b40bb6499f6c5c7addc6c3a49a453c18fcead9b015b2ddbd5ca966db94e19daf77a0602599922443fb85a0abdfe14fdc24759d50bb36e0436950edb6fc2d2b7095a0798cf166bb7c00981348a583a7879c978faccd4368f02423644eca2552af70f08ff16676b5d9764f0e7f195724245d97a4ed8bc97313ff461da9b6f3444fec3aad9714e16773e20e333a288fd8262a9066246a2754d47591bb34e5232ffc07004df7fb3e4d7ab086aab45dd60a2a9597a1a88ad31d227628a7e54a962cdbf9774e04197d5bacad45abbb329e4c3cc4dbb6941242c70e2d7f32e2fedc85f5c8642c31a60ed244", + "0fcd7c44c9fc703ce1146d21878792a4b5a32f55dfcb4862447fb06e656c122686b0d3c5aba35a8de0c5343f3865431f2dd3e9541176d6f6" + }, + { /* i=6511 cDividendBits=3358 cDivisorBits=990 */ + "366c84f95d615cf81f2c8e3a38dc3e55a247a6c8dcba646822f9887bd91736ec2146d5867a43ae358d537dbbb7ad221289733f205bbe29eb206abe0b98188d46ca18a56c5fd2cbd6c2669144e0d850f99441a9e32dfc0858c56d39f53d8f918f1a2c03ce6c9e2a2349342a1690bcd6dc39528860b05e1aaa976f5be72fb4806bd0829b4ff87a6f3ff82715113285e226afa46d7a59eefe96ad3a1f076536fa4347f59b17e84c784424a8a69df9b1b42b6963ca56d082f932b45846b5fd9b40cfaa1b255ce0df0c74ea1f81a72842a004c314e9eb445b9b514a7c7f3dba9c6dc102f48d0d3cb94854768eaa0ffd40863bb945f12474b2b7a7802910693af97173f7e8eec1825001b2c8e1526c615ad38dd820b8c2dd7bb2bf160eab896ff965d66cfc38c78dbdc80fa7f3ea01e39336d943a595ffbcbcd72189abb48052207be18dc1ac90db722f1a819090788b7a8f3b9db977f950289e28dfe58d18603c2b4ab8b47b21e806487d8cf2b813a4907c417e92a1c6ab9c767d642884ebea853c13cb9c9064c0c569873b55407ba02242e2b304f17a789fe7c734eda51e8327ad1a97ec6f3f", + "01891fec6e044cf64d94484c37a28051c7c80c3fcf2d4c82b6576425803452b9b870d520f70ed15ec111e2d0c44e9c6ce5a000d55abcb4e6b568f8f00f83b48858bd69160e05769dcd7ccd6959890f8ac62bc9f5472e9ac87eba1d094266c907ae80e1ffb04ecde0a4d76f996fcdd282560d6d80e0cfe7c85ffda50d", + "2370c1d961421a3ff3a865f594052a608e74c816a0d709718b71a558e0753ad1d4fa509a3087170781228a40655d052d18e6cc8e5a1f7de7b13c05663c36dc825e5e967d31926044774e7389493d6a88aa49ca3be96259f103e4daf6367e5390358a2384a8ed0a0b453aa8b0d0bb647d3543a16f6168b32ee2d9c0f22cd4243dc8e7c1e89582a0bdbf278ca2b76940a1d01123dca6dcb61dbccb9be1333cd489c5d15ce218d529e3a92843c77328db238a898b9c6ea3e0d522c7c673836cb29d067c3ff6701ad7c4c09830ec019f036e5d367486f6b04bfaca7a57c6ec3d9aa028e62cd6add1a29cb94136041c4e6f66bd672d479932333ba7c76a392fdcfc870e6395102ba6613c0117113e5ad9d3ce8e0e8065af3d030b8346c493e0f520b779cb7a6f2fbb051e55", + "c5f4d661d1598cb0a91615d751928e50e9adf12c38e720884ec6a3de7b6e4318bc009725a432570111d2a7ecfdb285d4a13ead724d621ff98e0cba6bc1072cfbc9e17f810bd97ab50cfd5062bfd63f7b8055bf62e4e191b00a92415161eb631ccf8b9ebb8facbb52bbdd4ebb0ad7c940204e4d0a9a246b471c1bee" + }, + { /* i=6512 cDividendBits=3639 cDivisorBits=2488 */ + "11e21ae52350b29b77b366015b54cf4fe08ea2850842e1a4129a71c132c9fe10ad13c210cee9d97db577f58216fd04b8249094a1dbab013e18c338793e30c2dddf67ed4edfdafa0cd62e821223f6d012ae223ef0fcdb168bb2ff6905ae40ca5e8c1d1b78759f4125b2a77edfb75e4e527575ba64f5fa94680486abd67049b06a580f4415db96a16f65489784ff6c381024a83196d910af980268879e4c3f60fd619083a9780fa0e327f6afd170b1138af297fd4feecf8aedc17f15513415ae0634395220b1f064c58276ae51e12124b3418de3cd45b01486f10911832ce4b47050a399fe4ef10a8aa09c77e9702dbd32804877087c0de69b09e744b942527440911c3be58de0d379398c774afaba761eeb7f1868eb8f181623772e061f77ac183085778065e2872255d0525da76193953acc619f605766c5147e4cc98c2718f1c5684356e74b15eb5ca4ce0fda4f4291abf7a1979c84451e624aa3c2edc05c9a9976ff9b435c065f3f08910b81e3f64b72fdf0ea72b884447bb67a9f8ee4f846642b430ec468300c3bf13d69d3b88fe6e1dd8b8f0f4954af54b9baa6614fe9335b48445602ff9e5af7280a68a3001ba4c99fb65472f9689fb372e657fbe0972eed15d106b5a8ff", + "a7ea215a68d8a8f6e7d7c8b6379c75333058496e549e62e0dde3ae31389546ebf32a8ae263d06831717f4fd29c8761cda797a19b0a99d38b3208b8e78bbbb63b115d3502426265d19241b7f1c9bde6f18bb7eee1137fcc412b8f5500b0f9c2e8b9e5847d89836c27d84183e472779c1e5e90481c33feb7dfe7195d3469355c5af86582a9ad0af4e68b0e0bcdbc62c4b700e868601a50544ab40a3e800ab9ef4f16a65c6bad6dceaec256acf1bffdbf7bf2e4bd33ca64fd0e63debdb4e92b7c0313e63c1763a7ae73db892a73a4d365b0164f983ce73b5b31f85bc9d71dc0153abcd0ab6d1a29426fcd05b31aa7feeab5d4b8de9894f3d35c9fb91a403edf620a1e0b079bcbc923870d84edbbffbfe404e3bb146840a6dfe1cfebb5af294ac79ed047d25cdc876de822a396cea8ef0a348de8de5b059fe8", + "1b43b594659fd28f4068ddd718da1cb267d217bffad682ab3df2ed5f85b449d97534a2729a8482c58dd92e6907e7431cee405e44f42dc75aec6146fc2fe743dd8644e93175aef28980c0f196086df7da028c6c2572e70a76ed9e002dd1051354c877d9478e65cc3325731b4d594bbb4f8efb032d435a2e8f7ad270a48e3d68c3e1a42469ad151cb5542d9d54ca557f8a", + "7e6a1221f346fed44cb1d50dd1a82360150841cdca5e985dc312868debc47f20881fe7f7a8457516573f7bbf93d292ac7db89d77f840eaa95f4d44ea8501ac8fd09053efb276be72214fb02509d5c2225ba083b951e3c70449aef6a7bfecbcb2078da637eff811abad86b59bb230d7738637adf5f0b9e904a0700a3bb353e035bd0b422db937e5821686675e96c9fd06477ec9d4cae843cdaa960e8940a6169bf8ca59ea2cc0b58e105523aaab5cb0b59450b17b929101273fd066c1393dc50df0170552dedece39627081454beb233f698a360ca0bcbe04c688465be44db2d55139afdc7734719b7a793e4ace8714d1da069a6f605ad31494f3620c10c20396874edde67f9261960fd97711dd34626c07c51f5e6f26cb9bace974e063a33265c4162be5d8b039b1b09797aca579e1218ed5a103515def" + }, + { /* i=6513 cDividendBits=3088 cDivisorBits=1249 */ + "4a62caeab1048b77613bb76bb18fb88c300a665bc7418bd8ebd78a0b3bb795efb620a269737be1c69518c7248459ac2f6a074b5f30b91dbb2eba86e6fb47fcb556aed445a6dfbd6f012f1e2a3ef4491e09dda3ff6f9e5231b5b68a465bfce54ce892c1bbf5480b16057f201fe80cb5202faf5e3b9897942453dfc8ad04bde96b9e34b5d44418a28322c47a60cc5a1076aa4fe25e04a218d014a0fb50c293211e3e027f027921deb01f8fdce66ce8716fdb94b1fe3cd2441d239e0eade9e07ef4c929020533e579741dac78b38b4668285a18a72eb8b70d3690853717af7277aef22c08bfe995333da620dfce65b15e6fdd540125ccf5be71409619502d0d687bb7a5f1b8839015d81e92953897f1989b1b3b9d52e25389ef5e80120c17b27751bedbac29890e7cf7aca191354822405610f16cc0636c5087527174d63a45e0b43574f1acf510ff612e396735e9d9b7ae8e85d4e36914e6ade40de0004ef71eb87a358bea506262e10dc7a99244f0b2a11bc2c0e0d480d97e525df7fec1dafcd4db32", + "01d17734c97b5e19d67e676021338c534fd2c0e11715bb5e86a2c66ddb9c1e81614d8b96dc052b9b0be357c531677ad242aa5633938effce3b20e13edfde4d563642d8a616edafade760f8cf2a1998aaaf202ad5f668d1ac69986472ca2f16e9159a6e6e6cb487e86ba3c22274244a98b82854db5e34bb6ec0582fc12d49614e3041e1f11211ae00a7f0d88119002540245ead9633085f18ad232f635f", + "28e9493e3e63cb73fe09cfc4c7b072001565f4716aaf8093516291241ba461f93d4c6d2db7b0c4d125ce92802a4b2ab6860d3f325a22a6b5aa84c6682d7dafb9b1343f874d08888a251855043950c098f2c7364bb6661dcf3754c4109bd9baf363897f8365d56d404e3e6e0d687682a7852ffbcc43250375491e3ef2e8f337863281239567c8d40b93faee098cefc0423fee434aedd4498668c06c8b7bc0689c96f22efd9dc67e2ca9aefadca8024622c69454a53752f00fc4affc522d4057cb6574a5d4e74b8aaba06b4581b61064ba4292296213c6f545bc34c822b5f6881d60c2d062d9d7", + "565b8ba6636e3731fb857d2704323f417bbec20aa0423cb5de5f07b622a695f43e583457eb2f083d2dc3fd6f7c4dec5c46663edf51ed1cdbd4ed3bdf5f63ea33f8201173613b05c15e05c97bf0cd19b3091ae9a7802886244312fc7f4ff39e0fdfd6a71542031a3482f90e8e010823f01d96e4365fd32716659759ef93bdd282c0ad30b3434649de1a7d428482c1a60bb804011c0c685ec00a6edf69" + }, + { /* i=6514 cDividendBits=1251 cDivisorBits=888 */ + "024aeaf1416f77cf8b028d3725864287ddf05c065b23e3d48a06faa41a29599416c13e9a09b4d128cc8fb3f9c5aa5e7430907a34ea5ae2d81aa954092870d9bb658e3284f77610855ba226851f7339e5ad0d5bcc935fe1352b807cd3f3f5465feeb4c5dc37219c82ad945bc9515e0826cdf317a629a28f0160115fd0bea8868f8aca533c97b39f6175d9732c43c4f8ad0739648bf6d33b81f9b39b756f", + "b1d417ef480214dad4b7d6a784218ec19a3dc24bfa9172e33b9d79e83e55901e94c67a16b1a9a40fd0f38633e40a3249da7d939478ca47a2b917ee5a3f936f33f3b85718a2fef462e0d67501731e5bd9b16838026dd4639a02d2f5ff3480f601e4c7f5b24a92743e16b47d1e724485", + "034ceba7eddb76454e71895c5e1d1f3894ea0713b3ea662619cde6aa5e3da8cb024d68d6a1986c89689bc5f25ae0", + "71ed29fd99b68f7989c617c56e4d1e022beb0aa2b5501e5118347d24bd67fa167401111b04256693c0e808d4c1807391d8cc35b5827aaaddbec8ef9c2f839f54906300a430c5376d785e3404196243827ab16b85ff6627df73bd6d6ac87ecd68a85478a9ff6deafb025c84c4cebf0f" + }, + { /* i=6515 cDividendBits=1929 cDivisorBits=550 */ + "01adb6cd63b97c22e4f7c4b7b020c7b89a1d92d429948c1694a9bb86879003b16f29ca5eabf7513852b1cb667bfd31fe6b1300c9c1d261843332f613b71b226fef37cd28d299a0d4fb346ba7b208812212480cf0c02886d90d2cdebe2eea6cb540412ad8318143e877bc2bc4333c1028fc203e9dbd3bb2781eb69727de82ede81f182b65d62fab8354042627d7f3e5548b3164438ee5d15f760c9da64bb15da18de9bb73afcc5368c927f7d55c659d290a1ef23be49ee3b28e678485db35b1ad6e99cbeafb9e3d81401097d445810beb364d5d6918414dabe03de69a06d9ac2ea0a8d2c978c258c959f688c5aca873c556c4", + "167be3366420f2048933d2c198e066f05544d60253853c8a87555b681730c69e122f473b70c25426276a74f83ddab7e7cd6c6bb224a9e3a2d87e16fbaf3d12ed2dd7102155", + "131caf36cbb3374257cfeca831cdea9a56977afa5abe9a15016955b5f62e3165b6aa08cade09e05d75538812d9115f1ab9868170c8b420bfc37b3b865185c6d251a6f520418dc751ee6fdfb77a43604f60634ce526000375c7b18d26b86da1483b17171bd568000ebd9a8bd054ecbd1b39c84ee639992906340cc5fe1f931c20585ef8ee28fff3bcd8d3446287a50e399a18a0d47bf25d395e81f1f8f33f8fac76b45c1d66d2cb2f93cd9aa5fa", + "03658f57f03c88913d6a147c55a373e272560adf708a6c32c1323c1173182c4564e283fe19401e9f5fe580fb0242869e05aa8eda09787334412ede6f58b1d77912ea6700c2" + }, + { /* i=6516 cDividendBits=2714 cDivisorBits=963 */ + "03076ab3e6a945574c6398557672d3ce275c6c500cff2b6ec1d37ba4413ce746bdf291ec2794d258ba8aa229cd0ec4985635d488902eda907449a50bc9bccea872f1e4a76dbdaf549c9d4cbadd7edd45c21d1fafb4804d4905182a899812d5d2eeaf5a69ecfec6f69d7b0aa01cc83a610829853169914d1e449cebff392673a9d7fc579432166328b56eed1b5d2b6b71cf94b23964da0e7c0140f09126768de9d582bdf333d57ee74b4d7c95d5135c298c9bae19b18c41e4f1666c7287042019f9f801a7ff760546b1d1aa2dd1d3428a0b9029f8a4e4d9946a152ed3b05026b54c9eb6aec10c0b90d1d369d9947ffbb66be9330b39eeeea097368b5a9ba028cabad0ab812977d9b15cadcb7bfa3c6cd62a1a312ef7504c9ff75a3f778249c21908a019e1dd68630adb17052e630fbd0f6221a5260b51b61e25befe759e85b12273ad89a07e7b5824fafd314f0a76fa5b1d43c9a0", + "0624ffcca9e7c0bb8b952a4954ecc3e7a5a438cdddd4c90a5594270ea65779cb36c2cf533ff30ffc9b04917fd3c1349d460964b4418bfc887666260d28dc457d081548ed21c05d99bac38f164e8c83db6ccd52302dc409f7b3d100f848a5040ca9d1d4df5756c7a0a38fc68b4f0c64e377fc1b23371efc0e93", + "7e32419edbe6466d306d4a7469bf4ff9556c719eaa9bc3529f8a68ddc0bf6555726da79e9c3e70f00a81505eaf6b7e2e437caba0cee8d204eb2b9631a0eda2560a63f11b6c2cc439c4749d8a6a3b940567e19e3003d989a3aef0b59c5b06622a2f150238e3ce5fde83639e9e3a5ecb91d687ee04d8304c465e390be683afaefa7294a2afd00416e90b831e2d009aaf2fa6af512b494ec5a82ce9c26af0d1d84a64eb0863c7c1b90b0baf13615d200dee7281fd3f919f717292defb71daec46f2ce6d2453804c970297b0633777f059e633d28ba9ed760fcfc59684", + "04ee5f3b28cfc33ab2c029cfeb7444d50426568177eab6fa9d51f8ad3b263bd28d0451b11e008c26e5b3c2cf8fbc8d47595b61e227b08bd318e701d2148ff337e16d27d24f98ba3e8fe7e4940eefb8e0cc452310b6caf48ea08513be223c372417e4400033d9944d59c34b4a3094189a10f1ca416a5ea323d4" + }, + { /* i=6517 cDividendBits=1144 cDivisorBits=406 */ + "057f61224fee6b9e1e11205c20b6c5ae1f42da4849cb9540d28131c325fa59fc2b4ad17a545af0866d2f4d30b46a261370071e84c058dd468a636160fb25ac06022dec30dfbb2bc022cc489b72a227fb767618a3466f594e03bfafdc9db29e5b16ae1c4c66adcc7a4bbe5f7ae90c46ad9b1173df72c35bdc1dc6abd7486db68026e529c1c735d9a931ba2714e6aa42", + "0b15b359886bef363de7e7f982ce0cc9929e23c57f54db03bc021699ba8d83fb92f2f235685dfaf66fff4f8b25b5343ce47e81", + "7ef7154effd15a2d5a205b9c1185a8b09ff6fd226ed70833bd9f58b50ca787dc923deb2116311a401e3656a24d35867196aa7b10f4efa24c0432148f8dc79de44f66955f06a1d281fd6c511aab222652342fc65c690171445e25b9ec", + "078f421ab54c2c2560331bd68f95dea9cea50d9fb9b1c7b1db3c4ad844077f708a17fc26ac6eedc09e06165389af402c31d256" + }, + { /* i=6518 cDividendBits=1428 cDivisorBits=1008 */ + "08389f01f1bcc8755b89fad317d0d0d9ed2bd488cff3a6b3b4ff8a716fe2e016621ca56b7812c85d984206dd7641c3881afef00e80d039b08256c4200fe7934a5d28408e222970899a1b5050c5ede7fe5eb03e77ecf874be408e50a25f5909db4cf8011bb0df268e11c5a40782b423cfac61200f4344a3ad16790b0d2a5055a9aa51492d8f8a09dd8cb5c57f7a28679a63ab0b1a50080272048d8da17d306b46919cf625db66becbb10c98094ee8fa70fdac2a", + "28abd246932c793a248dc69866cd9df415e9e139fc9174181e496a79fe62bcfda91a03a89dec2a307aa3659f23f4516d4901d9cde36e403f2a9da8578f28fbadcc77a357c828b05c5b0bf45655f676461fefa5ecaa68bfb1155ad02a57ff0eb443b76114aee5d9642dc939c796473d696d6cd2c1098050f3d1afaf2127ff", + "33bf4b0a741b833b98e543af18b3df4fe42c1264a75924b1e8ee5b78e450aa3e8ac2b8ed5a7c11d80636aa64427ba5d051fbcb61bf", + "27dd8c8bec5e814309cc351c1b91d5ba50a3a0dba8272c44bf996150c200b226969a6b81f36b85025e3c4daa9be3819b79f12cab1a977b97f7cdab7c1c91d8701edc9de3974b0109391da62bb180cf81a3f0fab9c7a84d92ed170ef6722f2167e74531414ab664dc91ad9c7c120bf1937ae7568b460b1394ac5a7ae435e9" + }, + { /* i=6519 cDividendBits=2253 cDivisorBits=1264 */ + "1116170a086fc74d9103d43123797e4cf4bbd302f93da4dedf032246f1909cbc39d9f305ee652aa6b7633733186f5a0a18654b8c34052168bccb5c959fcb17e48162c204b9d54379321e2692b570009a204a051bb3e52b5b05f5fa0d898c3c25daef8c3959093811a8d081cac0c5403aceffdd4dad64380e22ae00568fcd5f3b201ee8b71a64c24606d1da5cec5af35302a668982a1558f4466533c89a09fe34edf2aff656939cb4a9d3d35ca762fab69a88b8543a641d31f3e9dcbfc810c0e444053fee28058bdf199fff5e269be4d1d3ef6787b3360f450c4ba046d8b2175c146331f8bc69067d630871a2792ed4190a8e991d449627926a366ff6291c948ad8bc2b7870e42ce61ad99b02e5cc2b6fa9fe40731e6685e94fc9", + "f5811b7d5761f76f423756d0cd36e50b4ca7d79ec84b133021e0273e17ce0e62138237737eec8a1f16a2624ff90ec7d0e76a99fd00fc087fc3189f90c6e02c191710764ee2c6a8375a6aab2cda37843c5d12c11ead8d41a81f55c70a906c8681b25328562cbf9e08f4003c665029a7be46ca36cfc1411dee396a7c38d43dd69dde4934f8839f87878226fa51a112acee5de6007261520f0b1a9ae9759a4d", + "11d116bdf5b2a161fd9ada28d4fd9bae0542d14260d61a5c6f0598d8be22575b7688605f36e659d464ce12e63c8c213058b2770ec2bdc9d7ceeff669dd90a60adc449894fa7714ce4fe8fcdf8f3a8f7a47f3c468ec03143ab9bc29c361f04c1b57d1275a563c1a511d8c479069fa3c44ca94c4a03eaae5a94851979a", + "eac57c59f45b53f1de839317a20116c0b2ace1f70c2fce90e0854a513854dcd5bfa84b5776f47871adc5fc13d50dc509d5e182178681ffea7aeb52fafe7f5bd2041fece2ee4755e7d8d7a9a479b738214986d240866dbf2376a1417872f19e0c6de7d72591afada296828ea8efafae0e66674e9224d9d89e2298021f39fa4dc83a54a22439155ac9337ac174d97e1af413689955cb113b9b0e113cca1277" + }, + { /* i=6520 cDividendBits=627 cDivisorBits=79 */ + "601c4c374e4431fd24fd65c8af7881abf96d4faa3b99b7aa2079c76b35b97ead249e50ce3aac9a3a5f71518a6fc2b4023cc1f24b52d2245a94c1acacf1be904476efb328f061e19a32e28c599e5b", + "672fe3b0b57ba5465587", + "ee7190e0b8fd45a504dbd0f151f61f5c2faa9a81c8146fab08bb9cfb04288ca593e80eb3067dbc39538bdbedae2f9b10e9e53843c501f5a23a44d6240e5680fddde406d0", + "36f5bf58e7a7e5f6f6ab" + }, + { /* i=6521 cDividendBits=2300 cDivisorBits=710 */ + "02a94c60d5db4d7718e917b0cb8697e54abda168270bfc3b353b851b77f22588704303aca4377a2ef0167363de591e9369f14fc98f38ca52aab3c6070b109d14991d192e605c458dc506865f6dcd4113fb2ae8fd8136d184b9acd5de4120b6f103f4c546e8908d60079027d1d6dba8a99bb0c990714fda55d64265e59f03f3918d34d89a5ce1ec64268e584f2fe3db1384bc07527905d9565c2893df287c953833c21fd21a22a8dbd6c54ffc28d31a909ebe0518987c9a4e13b6862a2772ea93f5c1bdccb90175a1bf03c033db6c7156a603abacc6aaafaeeda146daa9e3763eb773a8d56130b915d0f406c6cb439b19ec6c7f30dad1a1166609bef1506fd63709e2a01975ce8d29399d1d6708fd294cedb1ce33c8961fce28f5f5db9be1a668", + "3b088ae937a943b41908bbff1a345a19ae8bbc2e3d1353eba7e64f556782115db663d1ff1e398908071be0305d97b5a42963a7b7958ac1d2199aeeb2cf4428d68f3cf2b26e165e9beec26af6f3a1f93b1ff74ec50d18a3e07e", + "0b8a789321816423626b173c154a0380cc0b65a4e3885921f26e8cd0695a00507acd628f58bd9d661cdd4d883a1e1dbed245ddca3a47d5ef906e09b48bb60c1e5fc1c60745233015c561e33c65f55360dfa741d925596a2facc4a0e213cc6dafd36ee82f21faebc37d5cc1b96d0f2cffd2dc7dac68f8ce544335b341f42a1c9443aa329b9a9287f17ce39c669f3f1d00d0f05658d0ec63853c93858b1bca74ba2c6a9f798ec49b7865d6c801e1d6fd832be2f32ecf1db34155f4e8582c7301f680a793455cd422", + "1f8edc63c9f45bf699ac6a451a155cd66e5363601e8a8969ff829b8efe5927c142d0c587a6cd2669c26392df8c920e37523c3fd0a5db9ef4d765ca5f16d2bbbe5785ec605eaa5c8b3b7696f423e63bb9975c6bd0f5fced7dac" + }, + { /* i=6522 cDividendBits=2244 cDivisorBits=2016 */ + "0d7d737b9b405ecbe1e1b9bd6bc35a66cf8095831b8d306146a21064efb3179ee75ceeac8898290476c92f5d1a36d4b1cb56fc52133866d3362482d0eaeb24403ac5da8e3e85419d6af7603a91e6daf0f0eb379c336f2173fc32b5eb012f0c5f108fc3a43fb3941c371a2604267231fb33537aee076cd520bb8a57f5fbcdcc0c8c94675b24a1a7749b8f88091deaa50bf52f6db874d3c5ac1f3b309e968f5d997adfc7a4133ce94ddd404815b1876eceecf3be14efeef7c1e195e33a6eaf66f3337573837414f1f542e2bb0457a50051ae164c7e2ba220f1c11eda1b16d200590b018fcde184031e0e628f9cce19510a7374fa0a9cbd3576d8351ad1954d6d4c8aa9b3b0bdfa4703a92d9638a18d8fdb4cb686abc11e9352c2", + "f59467bcf4c3cbbf6e03f0ad628f125d8f16d3fc31f9c41f5d2a6dc7e91a4b73c774d5ed578dde1be3240a0fdfc41cc5da036da1a491dc8e2b971ade2b353b1d64824779f694fa74f40ac2e9cb2d7c5d218aef35aad2e4d8a77bd6889bbab9a36f194182f623a88b24e5148a0f17d4aacb6ec5183b65333e7b0a680ff77b570a7c3a3d8090a73087e124ef1e90956c9b961ec5ba73a5ef367a17707c4d3ccac7e3070a38c3b770ecf0279cb751765ba5e805e7198b4231770a07d6fc8d28079360a9f75cef60be7ed7fb36df1f38526460ae0a0b47d14bc89bfa565f8f9f86f16e9324556475885b8da463f3f90e0a60cac9c04b42bbbc38fb7b7094", + "0e0ffc6324c87dc1e51d082869251326c693d9957d9097204aa37900ef", + "4e3a88b4b79b76ad5ab670a48a0b943d337886b13a81a42a8ae21d36fc625d9e445cdbc746f61c5c7aec00efcbceed07e187ad3485e1c62ce89cc1e8de09d2810acd5b529e36d091872b215448dfeada3785d9e318dc6b35da85002128ea384295a2cbd551ba5987f3317cb47946e4072636604499f44cee7119a1628dadb43597a5fb4d21088a2dc078adb0451dc7507704d4afca38b61be4bdd8b046274e3b2bcdd5586b65002c5986e7754995ced537304d37553630994988cc86819bbf899f99d12c4467fbad708859a175b3494849c59680b2c8e81423de44c05c72f3d94175fd52b10f3781c748efced63b1ad28a07d826632671bfe4613896" + }, + { /* i=6523 cDividendBits=1644 cDivisorBits=1511 */ + "09caef293022e7b25d8165c2f74c146ee4196c3f8f56e866a171b1c29c2b61442875b1f1b88e18481dce57f4025dcac1d5877ebcf11d8dabb9a56c65adaba4a28c017b8a72df681c3cd97b4d8250521dbdf2a2f9dea613b5d02e78ebe2d8027ee7a14170f42ad6c659e59c8c9f036cf3dd0f5bf40822a0b44256c3370fa66792cd6bbdade1ed471a172d4af8dd6dd9b10dd2d3fad6413c3aea432962db6b4fc37a46dac60921ad3f1c02e28dec8d3eb4188919cb884fecb7a58f0f1d2bd9c79ecfb5627ef09b70ffaa9d39f8ca90", + "6a459af6cc93b9085d79ed7892a0459ad58e58b6e85bf766b267f3904316240300065215bc9ae6704778be47d0852cd5b80f1bbc170fc49c008d70dd581c6d8ccd5c922698520c9e813f0e0b9178d45c73284168206512b002ccaebef76fa8fcf6e99cc85fdd937a8a4a044024b98aa55dd688e5e7884f43ec6b4b4d86b41564f42c6136aea9c44965932aeffacb29915fe5d9987a0936cd9ee9a9b36ee0363524991e4706fa6e0ba66631d7dbaecee3c43c558d3d87a258608eaf33f1", + "1796fe0798f1ae0cc5f92c9707ed48fe29", + "4f9fd95e7a50488e543a3b9fd9cc4ca4486373f4c983c8d76586af99b2fb460e68d7ff89dc434d9da42bdeb73f0685be43cb6e3ac2517f5d133dcf35da4b723cb9edc74de37150c6ae8b6ef91989b49332de25a8b0bde6d504e1f61e7fccea98590c0200a8e3e1896bb4b8886746c2976b19f8964434884f5d75cad6fe488b7e03098f8040a9955ca44aa58a1dc99117a3289753e6402190da1a4bde259aba96d3259f230307d2d5b6e700c5bc55b633fb61c640ced035cea0d1985af7" + }, + { /* i=6524 cDividendBits=3646 cDivisorBits=3425 */ + "1f2df121345e51723b2975dc4e9c2ca58c994d87cc4357967a4cf2985770799c4392ea74f9c373c48f0125b8f7441719e62c80904514e12077750a3d59760fedf29a2ba832686963670285895ff413fdc8d3e20969b405f930f0605d6d2ed6922ebd0826e63d16acee1e48dddaaa226c22b560c69a530b662903fe28b733af22cffb655e90465f9b41a49f02ad15a30e75383a35eb44c4e9d96f8399a8aa5f455eff4276b4d910ba3ca1fbd50c53898e7454e7f12b2a39ec9e363d666225a3e1728f4fcd83705f8167200cfec2f575f74de2e719e7c23b74a84778a29f2b487cabbd577ef01adcc1954f8c75af37eaa21bf480e57ccf5f01cef420bfe345bbc4cfd14501158fe49df43c53b6fff470539c31ecb9658ce67dadf77ea6ba6e105a88fd759427a0fa4b8282ff1b9eb6cea751d682f1240414ba08c38468034a40f8b29bcbae1e6780fc2c0af87f65e36fd36b32691ea374e13bbf0b5e3669f48d93c40e0e59caeab6217070740218c76b572875cf6dad87438a90dba7905b8be9faaf999ad022d06aaa110f36155ca6d5e6845e9730dd98f27910db297e8c077bc11c6d8fee3f46b8261cebfe32e53711b35f918a2f11a435eb69425cc89666ecfc98f2df398d493935", + "015d4c0a323d58c0cd9f27f055be898376e87f312514784b3eddb4f2f826d7bcde1ee1bef5311b537e3cae0195c4e18a1d8d6a40a684077402c281294c5b70a3b44fe4a602646e19209594f419168af0319ca94bc89fc098192b75ad3cb2514fd3ae4062dc4bb39242ac3c8dc5fca1d2221feb4927388cb8dbba881d146f776ea87f3018853045988f203d51ff1512375f3eeb93f9301d600dc35c8c943d0cc67cdc57237dc465bf24c9bcd60b48c3eb92cf21a98cefe0bec7809692eb78d344ca2f3524791720b5b6eccade3a753a59b5eb1d8f02918ac0d510373aa90ae1ed92bdb6c91adbae6392236609eb2780715de211432a316be738f5661a3ef6e7408852a3e1af75a6c391689edba658086555d302c0f74403bb8e723f8799d3299f5a07e3ca28e174458ff9f8bef9d98f8f1a82ca3f133e46ff4dab7850031a5055ff70463bde3faa3a8d5f97fecf82ea5733d79662ccd257780b7c736a1986df261e4e06605e8ebacfa0f7211ea5cdb57b4e271a867b2873644a5ab75ea072b4bbc3d7d267135035ac0327f63cd1c93dd4d5082694b5f9d2fda3cb9133a1709773ea1f7e26d4459b66c72ad59c2f", + "16d9f84e1cec6e7184f24fd72a197057a2bace82138217552e8513bb", + "6e040a9e92b5ea067b998a75c3562d77c7b3db1b8889fcf9c2d46f7cbb77ebcb58380d414cb22623e57f2c7464938405f8a2989b47c68d45c98240f61fa75fa07850ceeeaf176b9dd4ab12592c4fa66ef44bbf912f60034b6efae820049dea6830dbdcbafdd34d08bd86194a7a2c3e6dac9d4452326ddf66db7e5cc32cbf54fd5aa9e9e866686a6f4fba99e16b0fd0f5e9473fcb8d3eed8827d368593c3e0d65ec6b3d96b83d96132c2c12d9873079d0992cebd2a19bc5c2826a708920bec1b05e66daf23372a3c930caf16b9c170749c09768df4f20d9afa5da6ece3b57a141e18201e23f0f0bd9fabce3ab3150bc8b1777e8e6c87ff65ae1242a941c35521349f7b568cfa2af6ccc16e777b0e3a5e49becec285ece3528f84d8b87245ffa5114e6ace4b91511a949e0e4c19389ed64bb2794f180325c47b9d232b6023d4c9d7721e7feb8831829e1aeb50fdb8295ec1829588abf176bb21b0857185de3fed7ce744106b98ed1bdf776c20a975bc483e39f5a712aab537e0c28c87953e7935e80144f76491ecb51f5399488f4d606e520a1d17e2a3650b25bd8847a4a730b03ff20f6a5d1cf4be9d23da5e0" + }, + { /* i=6525 cDividendBits=3220 cDivisorBits=1532 */ + "0166d74606e8e5383529efcc6a6ed5d9815e3c97380c021ad7f4d416de2e75f29643369d758a761b2cdaf3cc5da390c83ce5d39a735a9a3d381d699ef0ffdc089bb89a1386dd2457f47bc8a868b4278591290e7c06b7638c526f5c821eb052a03b48a97c8206562335d7139cddb974254c239e38baf8514113b0d85d19e325419c100c97a554ebfe5892d522a47c445cb1d338cdeb44744a20af8db4af33e06189c48fc2534ef59350e974d70f9d3b21e8d540b59cb62e503f7f3806b490d5f7251e6631daf198fde35c7bc28b6a540110f9ba16df0dccaa5cb2566f15f5a92402e3608c9dba99d176d2e1d76292c9f45e53839f4f69a9460e527d97351720ee53365cd87b4e1fd1fcd8266018dfec835383170c2d4125db9e060a8aeb2c2f64494cd1d2216c1467d14ac9a4464d6ee6e6bcaec20280bfc38ca5256dde2f69504335bede90fa77a6963db3bcc75706e89cfda4c8f1cbfea13ee58f6d34d4868d9e8c70491143a6e351211aea672a4957a7be20a4bf15e9b175854ec364b8f75a7c754f0ae02622631039cf418a0f744f9a99c0", + "0484271ffaea66bf37b168618d1b0124e69bff897d197110f1ab6f8cb9fd4d6e1a25814d878034163e6064c369b472f07169cb7f89210ab281ac9de2d2da3d773ca7caedd03691f7d8cecb3666fa9052d42dd36a40d75dd474041d87f0fedae91d78423044200135bb75502632d7938e392968c6028d7009b9bcd8d5322159546c8687f7af101a5d84b2a0ff5c0ca97988b89e4d5c8ad9176d64443482a5e54a207dee5fa6fbdef8142e0e58da0188cb9190e4433b51b9973987399217abd9a0", + "4f74bc1588e0a98b2c6ec16371982834128ede398c7db977477b80deb7a4c1cb07c99e900d6f1132708ab06fb069252dd17c1d87d51c3dfb6252351b02402c427e48eb16e284e349372f9b305505124fc0cfab3159afeafc8cb72421ad841cea380494122c0a8ebc28326b5ffa4c862fb3dcb6fb66ee4cb58c0644168d2eff0a59d57f1de66b93f8f2a490ad71a915f9aa32b7378ed43709dd2a9f2c9e062db87eeed3cfe4244920b1aefb21f29624178913b380078808b3c9f7b6cd3f534d318bfc32d324af38c345eca749f99103a04dc3df", + "03bdb82e0ecb45def10bdc48259608375b73d95a51b63ea422b82ec18497c3d9bb3b1a89ecdc2de97707b9a70aadd4e73bb3611d0f04bdd276cb70104e9f317ffcc03470799905b439903c850e6508823f02720a0074d7042363ac0f1b47586a6440c0905e9d37f9a673f21d673b9251236242c34c900fe792f327baf731540aa40adbda52747e9d02632c3ef943eef559960acc526c133578603628b6e569e71720883840fff4d3ca1d6df594ceb625745e564bce2ba1e69a40ed9555032760" + }, + { /* i=6526 cDividendBits=852 cDivisorBits=840 */ + "07094868818c4e7e1917df684e84c92e65c8896f6f160edec0e759661bed1187b68df240e31cb23728c3cfb9157acf25e35b7abfe1a3194da0ff45606e2f37368b10d9d86c49f3d508fb9595f74cf41198f36d2d760850ec9f3fa5153695e6fda0147602765f01f48c5e2c", + "b479e4338c627c1fd9684cb71d98d87847430a5d511028f90fe4ae00b6d75be249522e858af86b78826528592decd31abd6b3c972d317f345208728c96536b223d1c985d94048f6e38efb921c00ef04e43d5652cea437d2f61fe3d4f3c48f8f4464f9c138e8ffc7301", + "09fb", + "0bdff312339147390b72a6f064b5ed594f56fdbe0295d325ba117acc3a25ab1c2b0a944ab4de8d06681f636d7486f77afd7a28d30c4d11d08b112d0ee4a84c58ed73be55aa5187e9550943751ef93bd46a64aec2415a3758a0a750c73ab0f21ab977bf2f2ae7fc9331" + }, + { /* i=6527 cDividendBits=1372 cDivisorBits=29 */ + "0296a5a39f01c6863a4afff96cb5a45ed66174bf01bef7aa08e39fdf4daa7ec88e806952c319e0fd33c065e41e0924dd3525af45c4ee002d4f70df61a78c6c16d743e9b679bcf154aceba22319dc7911fe03e7981adb211798cb0d7a409a79f7b3c5ebca75d51ffbd96a473eec946ad34f4561631e44e066b21067b3195831279e7977010ddeb5fe92324149cd3686b477eb106c8cbf81dbc6540e03338efc7dea7eec1464de4e57542b855e", + "0ed1cbe6", + "2cb6e833df10ac59676a9d52d33a01e4eb5cd511fa9e97cc700bf83f83c092c2fe7169a43d43e333dfe1f2f5e6bfad3f474337824bd9531283a5fd14c50cd5dbf80f24e44093bec4aae93fd2044ad91c0cee875890dc12043cd857be2bdc1dbf5edb7642f1e139c5074c6e78287ce9c9715c5d5829da344fad89fd378499d31585d246f0b9e183cbc4044e0a5b8897c91e0c7ad04aeab187c65a8ec2723be15847e92b868103ed75", + "0ad36740" + }, + { /* i=6528 cDividendBits=2873 cDivisorBits=1429 */ + "01a4dc15da9239288798c2f95b8fe16b6e8ff978c665439bb74f8faa112ec9efe309da9fd253b43249cb116e8f3589898adcfc22d16629b63a330c699a8110d9b0f7c40e9a7db4676cd97965f4734827929cdf675afe2419de8441c2dcafe90a0b27c4502abc09b6eb2329c55985cd305941db1eeedbb1459018fb0070e9e4805e9b681cf489552c7c63611359e79e235f741b873a726570b70624f1a61ead7633fa28d7cd63182758b94bfdc6b7fb9ff2708499b0e3e16aaf897725429fe3e43a2347bbcca2de51df2baf845909dc20c2bab1d82dbd5e0946942ed07a767511a0a77d4b9622ee44bcc171a7abac4f6ff30a2a3c79cf228d2d5ab64550b5be8300a1d33a3d6f4708302a32ce092b5c652c767d0a4a616db6d63b540bed601310ae0e5ab32dee99b972a4e5af81b6fef60eab50473b5c3976d1dce192dbba73f3f23c727204599fb0c01738fd1931f83ffce4f5cc3ae6be495e272ec1b9a49088755273a411c41cd7", + "1bcd32efc068a7befe0bdb9f0f0b0667c23a59b2ef8d3f94017b56aa6edefea42dd75cd44d4e1d168b456be8c7760dde136fdb36ca7dfefa16b051256217e34daea4a685407a36918804604e5730b76877af046d701c4f57d57b5f7e183c3f3384d3f4593200dbad5e64569404834daed57e7b3918fb58cb5501c55cd70b5896d22a094806c50f249b7b388cef4bcdec3953c9b5514188b1ceee98d74beced1068891a9c9fbf1f200633f7c350940e6e3c86d0", + "0f23534c8ae91dd8714cfaeb8010b7974e8148ad6f24b1232b85674f2a1424f049179f83a90f40e729f62a647b67f85ccf26e939d2c78cfd377c325da7827c3a2f2e6f5dc9d8cea1534cc52e26cfc97c97731becd02f6e6644f63dccb9e30967854d834e41b7df98ac3c6d6cd12aecec659bc2acd7fb977784b588a195e6f87d6535b762a4f8edb43412cc99f7f225e669bb160063fd0e106e595a3e18851ac04c476c33e66350ee8bd8c9182d6079e138d43e3917", + "1386a628d7a29c5a883cdbdd42681144974cc167bd075a727c919f2e34faa0d0a8b64c29d66b9e0bc2b7a15b0830f8d39b780408b31b0572b70bd6e1e839f1be8bd1539d87610b56ed6b2caf0f7a8a1395b4110cf8e8cef7d57c1f19d128525417e48350ae7c3652af67ac2877a8563d6072c2a522924261600982c916b69f99d56a93496fd5e6fd8b5441ec31cf782b066bc14192a811938ba4eae1c92cff085fba63bb38f3be5d42a0e4214acfffc9efb027" + }, + { /* i=6529 cDividendBits=3315 cDivisorBits=1176 */ + "015514728ef2ed860c76eedcd6109ca53c96e2d340062dc8bc0d32c4b398e2b1b755978780462e93872a20335cec626d386aa742c0b460672a042d85f79bc7d0c719c70a33b749a48cc2153c57198381ca30476472ece767799297e39da052deb06f9a67a48ac5c965885c0ac7dfc1cd351886de3084852e8a9442b6f95cffba23cb4082246c7d1dc3fe6e2ccdb9f890ccbcafc28c22d8bf316f16984ad2d9d517fb80e2d2c3e5f3cbae5b0b0decf9ad84176def656baa43c8ef1b68fcbf52a0b8b15cd7cedced34fd14185a4314a4ef6a1e8ef1027c1c21278135c474d1567dd131a7890da7758c38deca1978cf57682bbe4feba124f718d057ec5e08746fc616ecfb28c816bcad60adb940cd63918aacc7eedd24be418caf6846abdd04e51978099730df79905de04599b103bd274d1794612273e44fd54a397405f40faafc652fdd14a3a392f03adc0cf5d44ff76aea08b4b5897eceaf1f0e35dee15d25f45dd6145d4d995d833eb051f5ee650b230809be9ce2262069a456f6232b31018b082b0aa4eee90e80f2dbf3fb8e4fd47e30795bfadff4941328385628720953", + "f80e2fb76d2566e5e4944af48b9e3429ce6efdc415f76a523af044bbf9a3dc74c562a9fa93c8744f3ab50c4a8a70d9cc5f45759ee74003d5fee93a9e68f4bc86a218bef8d53f35020c94dd66d0d48e2533e4fe0d6c0cda6aa60171ea71ffc5641ab2ed9cbafc43c678535519ca4d1226bb3bceeccda0fe2868da178c714a32d31caf909e517d5513594605c3a7026a48f9b49d", + "016000f8aa476c22e2ccf65b199ab2f9bcb4fd17634c3e792a5842c593947624f26a7673d3e3092ebc55fc1e44548287e9233df62e07601f08329f5128d0b805bf4a4c4a8de893a1fd381ebb974c66303e7666bc688ee65240883170ab02676f2590d716604cac8922438b56b42426b7498cd05496547b851565ae25dd45eac2be26b031856525d6e7a65968696f39795cbb3a339102ccad34f68c7b9a6c514d313fdd242bc2e8a4f00fe6e7e0aa17639823dfe0dfcb4e976b9ba5219ca01ee3463e5adcd830c780e14b5283211dedc3460e619431f840fa5e007ee88fedf0447ed4568cb7b772e4d74a798331f7ad402a4b9d0371429e7d1efa276ec63ce4bb8f3bd1e0ba30867b2c5cdfc8", + "d34438e45d3c01d55725cd3310e04535517267e51c02c4e013c6d79e42977558e9651ccef3181930c3754772899c8875fe1c71999f906928749ba6add4252da39c714aedb1a62001f6c1e66448dc5d0c32c51ac712bf433833932c875125f594ea4dfb34f1260555d647c0df8f3965a342b898d53d88552012f96956ca454d4cbb7d90e23f83f8cdd91885e6e2a584bc9c2bab" + }, + { /* i=6530 cDividendBits=2393 cDivisorBits=400 */ + "01faa9d756a571452ea052657552f7815137bfaf35b89b10788f4ebb55477ff07eb1bc5399066dfdb050dc114e09bc4ef1475827d4efb43ef2480e0abd73ecd712aa0162ed0776306ba4895c11a8af3a515271c1d3540ec807c641cd8da69b3b835cecce0f48b472ea2dc90828f3040046816e01c168780dbe05e9d23ddeff25353b06f471260630440b130ad1f44558a5877d7f5e200bb89212ee0587a7862d9cb788e4a7ea0776b4239ce7c43118842d5bea2c9a58684aabef1eee8a91d306c7d7bd0887dc75ba2a566dd8626cc57aa0361ea273305a18ac715af899f6909ca40da361366eb4d0db93d22d9ebc6503352e9166443f5c0055060521a3d9883926f962c31cc280a5adf30dfa4dffd7ac0c6f0624747e0cbd321882cf3b733c8a1dcac5ea39887d7b80471469", + "42435ea079ccf1d7958c9b92d6fe342b767cea2cd1c44c16664bcd19e2d692f66e2f4fec93dab832f42d450207c5227c7c68", + "07a56f637adc6b05c3abf2a0d3ca82b97c8f85f24da8c5805faed5fb9772c2a158a9e4f9084f3c9dae1b70676854be9a0ef0614d1f7f0c1f7d1237b0da26c0e7f104240f12a42fe8ddd879d43296741cc7e9d6feca1471eb078646b3b6c15bf66b3375d212c14cc7ed5058c2273b075f49317e7939c52092888f41278738eea9d1229775c05fa52f61df2dc2eac15418651fabac9b3486a111583994abdbfe3a170b48b106b650b87b356a297b21a0402cd14e53f17c0375bf2d3f1b0e91a3887043c45a17c8a76990290ba0d8d758ee76c6d06c9b6e56ca9a779525449f00b9b208283dec61cc74a370a56251b5f20323e7408391d6c31fd56e", + "066c3e96b901ac697ee53add25e097d8287e1f626cbb8b79d313735a7fe694ed3d2404ac1e088488e2e8c84f3a4ed2af17b9" + }, + { /* i=6531 cDividendBits=775 cDivisorBits=162 */ + "5f7696fc2668cffcee4c8db94c297d5511c0fe4890019aa1087a5e41aa0ec9a25d40680123b258a98852b2a9f7bad1dc641b43c429ff498060b0935fb4478adc6f46d556c383149af1149947c6079de1af8ebff503f057067fb27608d8c4677844", + "022be8e43e4aafdfa896e01ceefbb0d37bcf2f9431", + "2bf620a0d4b75fa03104002ae10c12124da43afcc762c80b26745f19cd9796cae39481b034e9ee8a8030bbd3331b097fe1f42d2b6d8a02f9ffb36d2e32e2eea406f958faa94c7bc6cc0f2d33b8", + "eceab567e7d9c323394b61017d422b7d7412320c" + }, + { /* i=6532 cDividendBits=2146 cDivisorBits=1756 */ + "02f14a6846eb58cdbc5806cfc6f2a99da80987c723922fae14849cddfc95f241f7b19f54f924ebcf7d82c630884e57f969c687464f060c1d4a2f69164b6b1b166f4570de9b44c568a5af7ac315bf23a3682e413b8819f56d450566f3760732cce27784d3f8ee7ed1a70b82c7c2b3898eda4264bbc5bb63da0f461a590444d4392f007647a5c5590788316aacb13466eca9d56f6aeeeb48898e77147477b6f98666868bb9b2bbc25d448933101753ae23e1df94a5ca0e8a58ef1a63d5669f7d1238942d488e232a993ed248e4129c32fef5550e4fcb63c85144de8fee014f6ea7ce49aa8244a4656ac89113cff22ce212ad89248d3f75bda1b71e42903d58990ad782ae9dfd77852de4249e08c0", + "03b46a6f9536dd4e9d3887ba948fdcbe1ce3f9b46b9cc5aee57f7ee504da70520226f5240221edfafd8f1f0865b5e844d767bf5ad37032190e8091e5e07841dca5ece80ece8b02b03a3620556668722b8954c3ae4622213c0361742c9357459dbff86aed1549676746b7aef365d1e03e6c04b7a29057535b2597107bb665879abccb4a6d02b88fb33d8975e933231de2ffb7b79a53b71ea6bde8fbe21c3904bab4ab821d724106d87960eb80da82461678290cef201e5d6ce5e20fe3502e1319947762bc4a56afce46aec76520f63234ce2d56e1fcdf0ebfb8251feb", + "cb54c20a584f2a6cbc362c2be9c89337ca55b57a3173fa4e256601354d55a7a0236e231351532459907e2e84802e5afc40", + "20f665e3304cc8ce3cb7ae504fb49edb6f8910248db37770bffdca32d6ee850d7372c58cb2dd28ab4bd1187d2ae9ea82573a39c2cd9038ef796f5e4eb2f87f22d4edef4df6795a9e2dab78c17d939545b018ad7bebfd718dc8bf12e3ef08819887ccc6360057d7137e37854441bf95d7ed3a514a1dc9884089486718bb611b9e80b612d2f6c7655296aafa3065f55d6c1b96dceac8c8f99c7237a84161a9a162881a764914356f076f737e67bc8fa29216bf8108efc70d0de19d2da29e895e2dfe930d9e04e9f3470d10e2edf944a08db137206d803a681d4cba00" + }, + { /* i=6533 cDividendBits=1891 cDivisorBits=127 */ + "0290f53986c3007d51775f5b4fa36b5b64b74f93b845ca599c195139abb64d1a30a3413b2155e9aa3b87b031582aabc3a05c6757438dce5320ae5b6f8edaf8c4960cd6c57f93689621ee786edffce7babf13a273726102f9c708ce7372d3d455e00f9e08dc25f6623c2fadeed3f5af774cdf7e07a29c503394686a8d662107ada5294b18e0394d008230d2e298256919af7568b4165ade8a6636dd67964c15e6046c70dcc0933e30e383ce4b0b07358250881a4a7ece3d8d25f162c4cf0652fd77032ad469e2858dbc96019811e6c006939e1851ae7a0842502e397bd362ba5b52461cc1fd1f2921408ecf62a0", + "3574c38ce3b073ec661d46890ba589db", + "0c4a27c7421e59c47296ca00063a98dacb6a56421380eb8c5a5d5d6e77598aefeecf82c47a18964e4515be43489d2b4ebf05af6dae9d27ae28aa343e03ca83589a1daa254d48d4437162ffd975956e7724de9e50952bf5cb1f85aea5f95c3965de41e3aa38e430594d114fc2ee3132865c186ff5db96f36b348386781c496864ab2c6b88d2f54f78a3ca796a05fad423897fdbb8a14e01006b6922d27ab707bf5ffa5620947e2b4a8f8b2fb196e4144495e5f9a07be014c39a8b3ad24332bc1cea77337635f05de4d7227419774b6048c5950d97a7a4a6316a0253db97", + "326d9a48780caba8b6173806ab3bb973" + }, + { /* i=6534 cDividendBits=1168 cDivisorBits=648 */ + "81c0375707c63de973724d0cc29aa5495be8e3174511f4d0fd1c0a2246576559b8a945723413f36591de56e70433fee52f00d502586db9ac3f1bfba2d411c401bb2e473116e1a534371dcfe8ebb6a1a6b2ef43ec722ee3f097046cf0e9ad907b1e1585481dbd7d0d5f538d9ef16b99dba899569219a1f024730fcebf31a68d97c872829fdbf4be3277f696e9e575b5936a3a", + "ce08bc753d9537f1de57c555722413396e1fce2490279d31320b45bdecc69510398706bfea852fc5e614a2e6e282b9381ab4b64cae31d4fb670969b7892e49747204cc10a306ed3f3ecdffae534848b180", + "a137914cdc91c0afc6d358c9b5073e36663d4b21165d1628cc1618dc0434c307baa6169fdef8040947f8bb0e5ae565ad873f5b5315a31d43d288a105056a7aba1e", + "7125bded57637454b78b172f319fcacab53a656de61e259163231619d4d69ab4b63070fa0560adc844be001284295621cb9364b408d7eefd3049f79994f26b2ba7926cbeeb96742bd9a849718ad5179d3a" + }, + { /* i=6535 cDividendBits=2132 cDivisorBits=920 */ + "098b701505cb549c88c99e7f04b689ea2bc6646dcdae4bf4323fa1e44a3147dc03f4366e39db089b048893eb9f0f3447439c12a0056a255f54a100d35b9332acf863f13c887739e8d1d6e1a7572d8b8be5f61946038303599e3abc66f6acc48c454cea41badb5827778c6e7b1c53d812c9e4a905ea322f299da75d4b1fe10a3dd61aa30a1fe7e87f13191be907d6acbdde16d31d41f76520b93be7d37db55eec8d5d6b8d78e77b7ffe26929d689c811da5a2d2c0c746368379129313b8e8842b704f86af593fd484d0dd49cc4c29628caa0658aaee5a3355c01920d49b11e14dd6a9de35305d9e59f76b8f77917ab88ef2aafd53510f3f653dfc13b93764778f5eeb0f11cb1480f12eea3e", + "9f93a78988485fdc0dd7f0f68318ce66d73e1aeb9ca76186240675a017c86938209b7e794977301fac5b446726eaf04ff798e8c3d7c73c9bc1d777d59d43d29602841801b9ab2817510dc9cb01729e0ca1aa2e861072c26d19fddf8fb13babcabb5f9b66938434b90d73c42a5724f9aebcdd5c", + "0f4fde824b8f78704be3890598f5278d080f27d10cc78f26226ea05362d171f85aa132ecae574f9d135dfba6caf28ac27c2c4d036bdc2ce2d30df48fecdc73c5f3615fce17b9b391fd3fcc5538113857d2610b511068af7c0a61e7f9074bb56fe1e625b97952d1f4419046500e5acba959b2c6454ec213fddc406ab76fb7dd15a5742c55ad5b8b3d9f02b03299f894d46ca68931e999bdea", + "160ad397a2262c9ec16d548c04f989cecda0ca0927d7634c4e04cb2ae2fddd86f7e5a523f5cf7936d568dccde36ea0171c2bfec1e94dc55dd2c60d64d2c0109bb5802e0e64f5a8f461d644a300bfe1e2d1472d2b86bbefa46e5f3d2c9021e59fae7be54798d1eb613d7969d04f0350c123a826" + }, + { /* i=6536 cDividendBits=3869 cDivisorBits=482 */ + "2b576962354449a12663269d7a77cdb9ca739c9cac74ed5aefbd540a59460a0944ebe1621220cdb8a42e1e3ff3e7006b979cc0f8694ce5f159d80b4a977edae2c658713f024dcee5d1a981472030e4c6184dfa6fde62e377191701627b20c3a4fa4d9e6d6f8fc3a928505cb382fe8fac1d6eee3a41a90df6ff6b1148799fc0c00575ae25b598a540104eb7f3c0170a05577e594c04a0a54a105959bccd8647c81a22943851f377eabee2e351fa6f74f8730b1fde0adca65bc979df8d17cb7d0ce178d9de13275e63e6a0efa3fc4609f6d382cd9d6d6302a8f014dbbcfc4aeb454327d46bc697ba3ebb1da8ffe6673058b4fd2001d8f1a15e4dac531357dd51a2c6458e3486d867b0bcf192438f5defba64f134ffe4f0930e37947f51ff6ae86369690f2483f7dbba8c50d1cbb288b9f710c6eee494cacd1cc683cc155837cf0d3ff40b2fbce131e7066d9ef4d403ed855e6d5b55fb109dced6cd57c83bb7f26cca5e3478d3dbae5591cb54cbfa1b5f06ecaf594a3050ea9dab1cd70c3d7fa9c86f1edae8f2032bf4553559121a2e2d5600fd08fd8573b6d6849d0ad5503e48bb38b477fead04e2d21f398bc1c4318929667d5b3c37e4b0827b82bbfa16746bcc2abb3b143e33e1ba1c17fc8460e12ae7ea416d0e180ccd8a428b3598c221016435eaa6", + "0183ded1543a86c1c4221862f498ff02befdb1433b30b8fc76d9ffcacd4ddbec4a5ffb21c23446462853b46861cb517111d41e93cbb8ea7004dbaa2979", + "1c9b2162084ea56aa4c90fb3843b229756e7971e0d482d760b22d7d2d200b76e520e19cdbbbe71110d544c9f040dea8202cbf11294ad989fe60690947c4388edd6cbc0d233f43cdc14bf160129418e3fec0c8329cd0d80add3c1a9b764837059f734795ad8c865c30abd6cfbdeba1a0e59a1c65e5bc131360f5ddc6a99abd184eedaa5f957952f252a4d98f1c61e54e2eb83e74122fa4b4ff9a7fcfee5ff9955f76cd27640f54e43357a36e53374108a7383882a3bb57c358c973cea359dd3f7de80182f51b62ab896ca91ebb168601f260da524e94f0d4b07ac97830881095bfb7fbc9da43da09026265eac06b7962fcc0ee99ca92fcbcf8ccb3bdaaa2c0d5cfac96b3eebd2489ba8582f7e63a01ae1da61b2bb1a78152fdbe92595d6dc6ab1975d3aa86f279bbc65698c348840ff1f684fd96f95675273094d2315dc502cc3d782f70bf9c6cc974d65f0b4fc6e5257934f11dafd92ba120d68d21d64ad4e33ee4e75a2eaf9c3b0a2f959aaab81a449e36b9f442fad00cc248918c9728d33eafb1b4aff4e84cc0e5cb21804f746b0bd1f1551979f42d3f2a1f8ddf48910519ffcf0aa7bfc38cf", + "012d0472a4b5591c8a5ed0ba44ae6f84a7fd1cdb5aaaf2d21f4431d1a48e247c3bb4d659e5ed72b10524fae597be77f2916fb842b9d060853e966fe9cf" + }, + { /* i=6537 cDividendBits=512 cDivisorBits=142 */ + "fb6db7f9482f8467cfcc1074f61206af401236a7f8f0accaf2515cbd8f34340638e12a42469a74fd393096f3bd2076c1884ea5fb1f1aa23b0422dd040e7ea71e", + "3263bdef5e28d7609a04ee10ae3aeeb19594", + "04fd5c59d1e4a6d22f39ca61d1d00a5fba1728b442f04a0ddc2a24684cc2deda578727ab09f28526f9439a2744a48b", + "1bbd9fb16262d728b1534984561d68ef9fc2" + }, + { /* i=6538 cDividendBits=569 cDivisorBits=462 */ + "0140e998140942c2ad3a2690814e5024c8e2eae7577218b039e6449df2126de44df3cb0beeb071b8af7dfd629dd44ebfb89f4dbd0154799d4922922a78e1f21b678df7894251b72a", + "30f260760cf62c89d04a6f150e7cfb8cf0101770c5153c39b1d320808242117626394c74aabb3c03a1275d29b3805a4f66181dfbec47d205371d", + "068e6d41eeb2edce34196eb105c8", + "1021f9cef27efba5b3e810a5d4f0baf8c5af849c52bd995c1b5cc17250b64baa5790c488d51d8962a9d1c02b3162793ff5ea112f3f34831e1782" + }, + { /* i=6539 cDividendBits=1141 cDivisorBits=15 */ + "12fb2233eb82b090696be1e70a465999326ed9cf936734b37488a1a75bcfee92bc3105b22948b8cab662e919c1c309288d7d5808fb8d3b540e11a10a319ac1c35628d60f55df6b605fc2e01c82947226d8a98feb5b7f808e72218c9bb762cf4947ec5cd04e07201f8297ceb7a93d3d7b5f866fe20dfff28051c27434b36e949ca6e7a7601166c82bfeb402072fe17e", + "089c", + "02346678531bb971e09256a36e60727acbc81d0421d8e16acc0693f020f72a1d1f9d9f17f235fa8443a54648aee5deaec1ea51c680a5145d649894cbc0ffdb093713256875c38885d9dfcfb18a49ecbc7f6148ef330c7c947e9f13959247e052d96db0a56fbdec802ce75a732f11cc99b68957cc33cdd0e67bca63ea3ea8061c6abba98290311b6e939864975e4d", + "0292" + }, + { /* i=6540 cDividendBits=2602 cDivisorBits=503 */ + "0204fcea2abd4d09bd80087b3caca3386008989c79d8910b971004337f046218825d428489d66e99eed9a5cf43bb11dc2a9ac919a49107dce404851b7939d89bcb7d2e53b47425d5b29ef1d7957240842f19ca99f1e287394d44f2d7660d0fd377949bbc8518b891f51d21ceefd53fc6354ea2f98c36d45e16c5dbefc4ad1937e8559cec92b3430c229612381cf99e788adc217207a8574e28cab06746acd35f682247db816e3269380e980d8b2d1374564b3a0cbcc85f8692e86dd0a75169b29b170a71026175bf43c8935213c10ccc8444a7647a0973b78a782f8437393a0723fcc4ad6d9c1ab6913dd80c7f62ace876168843d8fca107750e9dbcb23f4139ca84f923c370846d01661f396a12d0233a75dbded25c568850dc8a20d541458587532f679c4d5e74c76582f182322a0a84445e70b80b80677e28989a61b34c4dd6fe16ba6039", + "03629c24d1bfc8193d93d1f43c88089e25d2e08bb4465f6ba551ce2dc5aeca9ec8ad626b5955ba62983e9c45ed22d2121b484317d141ee171be6ca8c88bc73", + "98b86475ca549bef3c1b8820f3fa67c84fce4a22b2ae5d696eac62d0a8e59c5a8e7e35e3b9f99b1f30174def6dcbcd19f2eefc134e2319417d71e84d30f9355741058754d4f7d7ba82507acc12ce0a3bc903f63c710216c877a52059cbc5b0f054dadc9c41b81e2aa9d2f2fafc74cd49e54fc19410a37e2b7739511f807781457e20a721daf6046077cb4e254b4d87f4824004981b4a764d401a6d649f4d02e6797e51881560569405ad6fc69eb40cc453579618a70d82748a3ece2f609978708b25ef6f5c66aaf8f12a59293c1447b5c6b150fe3993a0c196cc0cd342da516e2ea7b8a4efbacc769c1b7b0ba184d3232ea3e19ac397cc297b4c3746477e0fd4183926551241e1", + "02e7b1f0674f67cf5403a03e589be1b3ccede89b51aae024fc75568d056f099bffa03c7eef46d18c8de252af21077f98d8831d94f9af02373db5086b9d8c26" + }, + { /* i=6541 cDividendBits=3395 cDivisorBits=2738 */ + "0119e366865f66ae810a77b3f50581b4b713cf6d444c676f501f9f5e13a0c550d2c57ba4f28150088c6f87e2e375fde5062ffe3b894e701efc6fd749a1b9c9ec600f585df23ffc71e1d95e229e27bfb7723363ea2b0f7bb72020428eb105d5432adbfc1021361da746159009b425b2ecdf7528c0d8c6fcca0ee7ba42cc28a669ef7dd87afd7cc8a6462b6f6dd549934563949cc76f5d99cc43c274fa48df04bdc551bcf692abe300d19eb5a668f701d1b47fe581ebd87e71999d2d165f48267637dc73dd5353fa5f14fa25104ff13e73c78f47c6f9ba232b01bbd85bc4c4db22649414c6cbb7c7c8b38bcd17e9cb18532ebe9e63a269d09b90408a4a2c8b98911544b0ef9796e9f3f35dccf9bcfaa59b1fa4ab102bdf54baf6a8d1d8e3f3850c730e3090de66224b0ef73d55de10912ec8f2ef189f4f493dbe99cf4ec5c8c64d9e0f70a3d1881896045b1d13279568b8f9fb8d86d4ee720536d898b33e5fadc906abe0eaef80179d5b5e73e62025903e412af04bd619e269173004982354e26c08d8900497057c07a04b91a99fe35a332e22d924bbd9c93a7a17bf7f62bd9b236770933d931ee0337a", + "59b53b771ecf1679489acb64df6179f5f3bd4410893820291262dedde7ef3168b3b81f9110ef3cce38644bf665a60f52b2826f458fda795147401f8b2610e5cac352abc63ec3f17fe525828b455d4d6080b3d22936d34b7677ec5007c7800399015bf57116880ed5022a63903301efc0eae10c163d2c46c501111f1b46e4b49c192bc3cf9a2c1cb052a4e820bdaffbe8a2243904f65c57c17730ef6439c075d754a8ec3aa0b1873c73e9f6664598c3cf61fa4519033441556a50516d936d65694c5fa752351042994450e11114c84baf357f1c2726788e23d7d0cb2f24552285fcd11495062b926aff3f99bcee64a59b8c7ac2f521a79036337ec066b401c7b9a96d4f8992e0d44e8fd9149f7bfbe871e5d3fcef851c54659d5d66aacb7d89b9dc49228e514c83899b6bdb045fbf3b0db246c92bfc24b0221e7f42b455739dc4dc50272b78f49d830d7756651db68bc4d592eca30331", + "03246d0ffc0b85c4d421b5c4fde46e3f327d67e4c691c614b486c4f1ed6f40f61da2b912fe9c6e935ac60f94e30a7e494f7a3f017ec8adf471a6b3192afdd6b1c147de6e8c08fa7d12d9735205a6b7c97346e1", + "3f438ddeeb0aee8216b9323821c441d716b2d1b92664758253e5739fb1338ba318f3df94c6313e7c1e0664f7b68053748b97c7dc38127a5e364557e6c388bd7e2244c7f0be416f720a20d61a98ecf5f23c6c57d3582ade71f0f6506daea0b4149de80145d457568b6752acb3984117c0dc8c71638d667b6a13d6f822c4fad0a357f5a1218fab92695c20416c2368b2ebaa17c9a83dcd629e461f9a14bca625d07f16d8b40493121b2cfb47707c8f0f8beaa0424fd479952dc13583c039da0d701d1b4e9bac708e109842c169ca36ef0fbbd598de7d14bc6b4b102dcb90506a48acaa73c5830b2f2ff1170d6417c448d1d29434acd010211c84abc9928299a9689fff254835d077cdee70bae543c9b776e892e205585708321f64ec05e6b399f918bb9d626829eedd21d9274c77f22190e9cd029c95c1d3171e17d2563818efe52d980db94ca85122134912a006f1dad301f9a8b7ff69" + }, + { /* i=6542 cDividendBits=3382 cDivisorBits=1112 */ + "1eab0614dde3a8c50b7aacb1ded0a0a28ade3bf92db52138570a65483c88a6226f8a43c8426f5216ba7d77e0c1d166eb04fd40539e1793615ada6ae3a99d247928b6f192e182ae2b1fffa7d142d144694bd797bbb899911d1a9b14ea1643a3c989be228b5426a8d1049bc168d2ae6661c9a678ddc435a5c6a2e2211b00daf73cd3e0d0fd3a25b4aae439e5fa0fb7c27e9db60c48c2dd2c8ef984005a909c311942bca124f66dc41f85dcaea36367de5f16df5063c89e84144627d3ee0a49b0956bb2da0a73dda3fa05bd1c006b405deace511c6fa06b4286ae53b8a8579f0f821f71a1f56da6b73ab70e805a829c3bc057d940da7acd23f05da74b02c88e6d2d76d86be894a5d2c2bc3ed92a561bb1710b682f50af32b60345bb498597c665fc0365b64cad15681e7c526987dc59f3c5f10a3e44e985fe833653683a25131b6da23449237e7c0f183e27220e746c8db024688df8ff4a0a3bf1f6eeb991954391af021b78a7661435ee355d0ad36d5e920061f6fca285ab3069d86d6be0b12cc188183d0a366c35e564a0904697056af62b4f53a4e3b9e0fc7e73ed7739d6ef6f17b6ab22188206", + "04389c16379ed4787a3f0d824207898115fd60a1beddd9521959058df22dd55f127dfc0d96e310c1aca6669a70f82d4bbc7e0450214c8cb96b5a464946a0236b6db1b2095c4067e1b479ea74daeca617c871fc461257af6b033f8a42d3dd131e55f9e4623b5f2dd56e8bdd8bbb3d2bc08a7aca2dcdda016a8f251ea09cd85b95267bedaed25f964284bdf3", + "0743eef236e907509caf9e2bb60d48502b5566b77aa6714f4c6729549866eca6922393eba1f5eda327aa4b85ac2e5a11cd32166a19f17f623e88cacec29d1809e765d5c07ea4d05b54e52eff01ff4693b0aa2a813f2a8d0eedce0b267cda14d96aa6f0913ae32622ab859bfbb52cad74deb90652eaee5b5a58f8bb95ecbe8c63ee616b4a9bf8cc43ef978f61d6fac129759d3348b3a7cea2644d0d3bcb39833e84ba4d40d4d9d90e90f081e48cfc4625acf131c8c8b90a9fa0a7714b6fef124b0048fea9d76111435dc20cc1b87b3ca5b7310ee511dc74fa24b8d30c081dbaf374eeeaec8f2b804723dde6d3d3de0b825cb4e5af996933975271c91059a92a30ee774d9057b2fcf30049fed8d691e25a1800041cbe78ab323884556d97", + "1cd8c408735bfe68654e6a52916b882eeb85c16f46791d29550993d76e73d9ec6f81d2b113f18d4511720de3320a93c7219f3c34c115d3ecd60d8d2e43f280ee5bd0135335d6cabb2879433b6e3eb156967931918cf4ff68a9f54704131f1155def59137d22f48b9b21dc0afb44a4e24532e349a3a1a75307ca29685e69aee5e8d3f43a9cf8b033d00b1" + }, + { /* i=6543 cDividendBits=1498 cDivisorBits=991 */ + "bf57863024eaa6cb07d369972b0e1fadb6a468c79865eb033b297eb9a59276d5431fcaf23795951267c92a9d75772b31e08a1796cd7335dbbde2b0b5a298afca2ba8d9553a99f490ad899ce2cf126907f2f1944b0d93cf5cd9c9153333bd90ebb0c3c48ddb5aa15515ccf89141bf6e687fcc50c303902cd8334b6c86711c89c86ef39d4374877d1d850db815baf5bdf67bda26b7aada41332c688e539ae3daec0842f8f27694cb33c84171b298081be23b4ff34e2a01ac4be9463c", + "68e9fd9f46deb5d5a2ed3d3693309db56b4977c2654fef805cc2866fb33414a6aeca1dfda7e671a3443c418e847550f5210737c2e70bbbc85f768afa6a47586586a5f5d6468e1f0bd7817bfce88832124803266097b9640fa4ff475e64678d852f63dd651f39f2a98fcaed970e6fb8b9e3e077fa2934f1127bcc8379", + "01d2e45d033afe75a2fbe85f6d9c2d6c4347530ce9af4952312a70e6e6ceb63328e5be64ee59d27051869f7908732790dffcb0c033c07b5a7af7b723271f0d1f", + "663a347d9812ae27431c23102a9d5a3de10a840cfe0e5881dc335f09a70e1a84125d8c65d92bd71c337a54590793f7e8b64f9613f761a874dba7b46666dd9b22273930a2dc8f6d8887ec6ac3aaf08f30f3d6fa48d65ae46939f1266c473a228aea0b0473ba4f5fceeb155453502732a2df2b95e2fbb941cf90d13595" + }, + { /* i=6544 cDividendBits=3726 cDivisorBits=3530 */ + "15fc3b01819c60778cff0a6a7cc4ad314e2041e041b92311e1f2817efc2fc997eafa4cd8bf7fcbb0bcbf968d0bad5eaec353a6fb6f3b9ff23b2f72f9a4a8665165d456a578d5c2a1c3510eff75db161aa4c3f9ac826affe23e3eaa967b313beb7a5b3811b7a542cdcb79c5d2263da84ef73ea3cf41888a3cecb813cf5c67e8fb5a24d176ac05cc01d5515fb6754a8ad365369d57861f843c6ce1042ef4cdab5190c9dbfd5192f9170aead38844e0f20216a88135d1c58199d68365d8499ace3b0a6cda56cc46c3aa92a7ce469cb98e6137f0abafa83e781b0ab5d0e5e6fd5cfd5f4317b8baee9ea5b8dd51c275fe64761c4be4ec49889fb0c0fd528efe8ef6a4b6adef9c33fd48803b961b0ba97ad2f255fd811e14dd0c9bbac0f84f32ca4e0b44db1c701c077f7e5ac90f84325dd8467392b859885bf6eee09779fb111c238cd61f0b6d15ad38a79ac0e591f55bb9d3d93b0bd4c954e81050c4f1ef71cc53e940465c6259aad910b793cd6a8ab3f00f1755db41fbd9dbb9618cfe595b0d1dcfdce75f5c69883c59b84fc9cf5599a6f3ec18d56e37b1be943aefeb4d049b162a3b9d18291d12cbfbbbecb17e0df7a290bc47efc675d4c22bb8d9223bce9f008777abe730a5ef2dd573378a1c45213f9a9611", + "c68f62dde4c8de8c9944f3eab9092969857c0045b8ec5db096815041587e9494509851fff6f9daf4374ecf8e753556373755b50e7d3c7d386150298b31c2692ad114214b3c6f4fc03452d0dec2b0f47898e7df97116ee6f5e2e90b952f206dfc3309f31c528431c087174e30408750cd8edbb0cb7b7598f600953ecfe6177d33e8cc6e796ebb5b6335e65cb8c8a374a13412538b69d89a1f3618c0a46ca6ddb0138ffbb9209584527038c9b1a25d32ba4b14a51ccd3bf31081c9b758bddb903551498c8cc7867f4e309ad691951ef72ffbaa7e927fc59f1886f575f4e452666ff343e4c24dd105c64c83af3e76aad6141a1c1116da6a8b8e8538ee8ddc3934a0f12b85f02349ec6ee87423d329ef4da0128a346179ff6b673590ea210fdef283af23c956e829aede98368d6e0d68cdbff6c73e997e1eb857324a00ca93400ea296c2e89d9c259a2199f38718f07944b33325477313b825a87a229b870c9f214869b24db27ddbd3835355e107638162a611a868e9cecf3cc2cce7b70625b9177001fd04d83417e82163874df4a1bb18eceb6b40ffc3a03df47107f7d12e768dd838b2b04faddac6591749bb77568067b5a94e7b83d0cca21d31", + "1c5860924f3dc7e9d761b0343b7452eabc9e2bfe19d754c24b", + "87973160f132462d570e63fd5c37752a5a7f65c74b6ff0ea78a10510a62b493f35161faf695415bfaf787dad0a82cf1b5847e99d864963a89f12f037874645bade7483ad4dda9ef2f9c0dabf7d37843db9ca70b6decf84cd3e1c5d404ca449620cb528e6c9304e1b1b99953d290d8fb26b2773e18dbba3f6a1bd40bfafc69990bcf1a75fc03776a779322b2e4cbc0de56dadf7a6c36898fc831500eca3182cb6209b0a1e58a655062b26b9973219eba88da5f9185a3e945b08af75ba0614bab3b5d011d64aee6f16fdb67650a022d9655fea32d8d16676f72c68a6b916d98e76922e4370f5ee29e5808fa558022933c98f9543a121a0b16af64064924c009ee4fb15f08f1dc7398c460268a1b9aad1ef1c3dbf3a4fdd6486464ad604cee3055f108c56b2b89b9137ac8bce0e1ef991f1fe192756c59d88ddee73ffbcf05de68040f11bc825e021fb54756383a9530b1ea79c8c4af8bdc8fdecfc3e00307462bd74771b8fcb6b4011fabdf61575f649b49572e5b8ea832560b9043d5d6067008c165ea9ed5070d65b3a861bade50a35853923cf38b28c52ebe87246f6baeaa1d190f1d336767ab4bd20e3956b59eeabbf405ba2a863b6e8e6b6" + }, + { /* i=6545 cDividendBits=338 cDivisorBits=286 */ + "032db646fd3af48a7abd8d3985810274a5d7b5a8ab26ab495ad02334c502a0c31e1e277dc08aab755929be", + "2829f4fab1b038b46705f52e1294645f52557d6d4625a49ca4fbec08031cec0ed359dc32", + "144281868170ac", + "21438df722ab91ca8156555f73f8eac8409d75bf23bea19c1956094b29fd118203715826" + }, + { /* i=6546 cDividendBits=1447 cDivisorBits=70 */ + "7907d4873277549c649ac3925b5b320a3d31b4af0003f650751349752a0520a5d5b1aea8493b409dce749c9c17d92d187cb07cf9693714fbab3ee45ba93e404b68340249c38715d38adfaf395a4e285f30b04ee4caa35f59e499ab7dc5c0a02d34c794b5c360b9cec1537579f4a9708fd08f79b119dc3f1d74c5155a5fcf8266db51c94e19ff8a3f3d2a4c2b7695dee3a2ca8de1a5dc742bbb445fbb5d4a922bb32e49b12fc3ce03bbc5569ca2d50cd7e1c27ebd02", + "2328340f6619ae815a", + "03714c44af43190910aec1904b2e52e66ec8333e4486829135906f344effd531f10a16f95bd4315768b1f09915115394f0763630edf0a2ea5a400e73fb59973fb0daa6db31d47983b56f21a6fcf49a5c9ba6f082d0d37095ff4aab74300697b7f7aeb42b4339f32c2f69865b06d899fcd0e95427f849a1d0054202aa9623f5ccecf7135b50a36b7b6a4cf1a8c0abf106c4c34fb4ba9f52fec5280b8936d3e452b9cd0b3517ccb7e299fa217171", + "05d3357ddfd4c4ea48" + }, + { /* i=6547 cDividendBits=567 cDivisorBits=513 */ + "53633f0f77b16254edaab1523d8478ea6203e7e2cfa6e235c0866c2812ebabedff1855dce21c9e78d5f73821fbb59f7ff6a4cca2ab699f7c29dd1c69b12972c850052dddce27a6", + "0104559a734f49bd3e46d7b0b76ef3810d66d273ee6b85fe09509ff154730d33618fdff7be41fb248158d45375db5b4a0867865983d3bafa54875adc7381219a8c", + "51ffd453d381c1", + "408ab249ca4dfa486d1f340e5c9f1bfae658c10fbaab063c93eb3d2edd8875e6e9ac54ec5895094c86928093a2ea0b216c877c2f7ca6593d7e96da49cf34181a" + }, + { /* i=6548 cDividendBits=3277 cDivisorBits=1032 */ + "11ebad74c99a14237ed108bbf1d8e018c83db8451492b5170c1536ce64214f9734738a3da1a863d554ae43d2cecf8b96a1483e59d8df98919aa297f8ef424ba7d6a221ceead32e372aeaabb234f483e49aab2239739cff19a2e6cffa03fbf020e406b088bd781b6503d19988d1205e79c5dd189d54f24fa61d27f13673b7900adc723ad27fc23e6b32b2dea37a75c7d322a911685cf34cdee1e7916a930af713de4b0ee4e884992cf1673d8b2c2c2606fc9bf7b4a511ab496d3621036116633ccbebac5c51fb56ec08390919ab3ede32facdee88dde886893d26346c78d1d5eccff664aee560a3de6dd51633d118c855afccc3ed693c1bca278553cc6da165eebc1a1bf3d2c7db5e1f66c339b569adee17d99d4b5418c5390fc7ce527cd34e9e6d9ea403d8f75968d819c25dd0c54544e4ec7e2fce59fa844c665f31fd828bfc215a70c1f80f276a0f3f92586e8b7ebecbb822baf774b57f24c401bea5685d881e5e68ac99078a00595c031154170b76cbe73923c39269f597c5506838a36038bc32bcd175a1d5201476e8d3738ec571ff5611c0addeeef6df8f", + "68343cb85def38d460a9d2e26686d88818d4def2636b2d50604be0c75fa500cbc7fc6a319e33db1f2f215176b5468c84b58a3911e1792e30a8a79248c750e55e419fdc0984217db89033094894c06d31abcd97a7b5b459b42c1ab4906ff9ce67d817ebe1e9623b7863d1436661cb0b8f7b766312b956853ff729be52e1fee3cf8c", + "2c06a1a42af40e5136a852f5dd86c48062d6c5988756ac83ba97a60fe50686594b90c8b8dffc730617dcb4473513416e9f46923673beadc5797efa3ec6d9a2701d631cf30c799b2223f00719e106e5f07bf3acab5e1c8815f769c4a32c7286230a005d9564a5fab43512a53c490aef200d042f444fb662021a000452335d5d97092e41b5663cb4ad52545684f165e418e390a8f63a0fbac1a1a797a7e395fd17c02fcabd0388aea4b46318cb4268200fe69f340d0a21a213b91b9ec9643680c78760a953c5d090de8c5ba19ee38232bc0b438eef6b9dfc0953ae97ff8ae26920565d9ed7c7fe736e31eec488f4b116e4b9676eaf7e9248ff10fa9172590dec7e6ac20a52428fdd559ce572c22e561ff0ed2501cc588876d4f9", + "36d473dbbd8dbb125b56845e33a0ef5a8a987a3877498565486a377b6397c0cd1b3cfb3a277f46b6efbb4d6b22c74e71b0a7166ff6e854ef67ebeade7ee69b2aab7e0f4dce565e871b1d2722a74eb49f949d4d0e648e437c8252982ea9bcc3e00316240c8227e2cc05665d83a399860646995515a3c523da4e642b7d9550fa1063" + }, + { /* i=6549 cDividendBits=3664 cDivisorBits=782 */ + "4efe8e617fc3020d9ba3f342c2e796ec8b67870650b1dc14c77938e734a869a6ab28571f56440109c01d9d71f2fac2ae99b4a5b4b0b01ab67ef3f8739e377e1ede83cbf49aa5bf412bb5e6e811f0909003e637ee8a3143e31984eae7f9d753e80687c6f1a33bfc55321764575e02efb1ec4be91340cbf4e4fd5efd97e3a18b93524b3471eac33c7c30e3f9e4c128f4579b7ef209c0f3f43d9accc63383aa04cd1715463602242e026df23e5e3b841a27244a2f9f65b7bdffdc640cfb1f5816c6008d1c63663f0750cbe32b5a970cc8e0cc72369b719e5ced85806781e3f4500f4168a98effda98f7f26fb3087c933769b076cf4f1be20f1b1f645a8cceb236e0959da636ab90637883063b303947e3e229f7f258bcf97cbf181a6c07c24814822a19d23079a4f055dc35516f74d4f66691b4e5a447c1395e9a3a483b4b7ee4fb824d3bb475f9ca3d6bcb70b7517c467db8345a23bddc7e6d839ea3b6c75f963fbcb9906ae437f14e808c24885a861a445cc9992f7412eb87be3d41d43c1ad32e78f170504c18f39266d0d13c21e72c147a1403ff440faee7757edfe299eaa787b51e6d1d705e5542e2ccec8e7b8c4dea98ccd4dbb4881e8c5ceccd15ffb00279f764e98a4b0316a6eba6", + "0621a5135c2734dd1a730b563acd870bc1b7e5eaf4fde4c9da203485d91c88e8f5966715435effdcf37ede0036735ac3208a8d2e0d9b1f0edff40cbd002305c9bc9d798532a1a12c2faa3e4a47f8cfd6be3497be35a2bbac05cd162d492a83d4d20a", + "0ce22e9a5b4c5567873e034552ac365706df565829ff72199ee23c8553b31cc0c3ed0852ee4100230a27edad8d92bbb247f90ecdde1576c679180aeea63e6e4825e49c2da636e119d33bc16b5d23c213004da674252123aaf4e4f6d7effcf4c01cefa881a17fdc9c90713f7865c0d4ed68aad4b649d29b4f550eff19d82fbc10c1edacbacedffb17c0b507d7e1707db9690dfa7422f959c74b5875e60c2a05240bda7469b74ae731b3165d9b2771444a4a9697237adbd0b30601353c4bc419540e995add0e779390f07019e5ec76e6174c19c60748ece25ee9435c68640eee14d873508d6bbe2651f2d64a9418f99287e8d9035b671ef69519c30207735a988d2c8d766912eeecdbcf7dc6d05264c3b62f9c228d7ecddfaaae981389be1f657ea05e95dc34182c3a3bd1262ce3f7f21007e0043e68b655681bbacbd7115ec758f9a2800206cad8d3b572860dd182ac54370753565e09385ca0cbe72750029d7e117f7715b035c10153", + "0305bf4f45ac4c6b1b7409630561e2f9049308b1105ad71da314e2c421161eae4bb4f3bcdab5c320a7020f481a9c2814f1e824f621142f6f2b6ec27760d07ae1a1ca81b9c9994ea2d83c13db6283fe16b3921df0d4253387abb0e508bbe8184ac868" + }, + { /* i=6550 cDividendBits=2942 cDivisorBits=1218 */ + "2134dfde1ca6dac1baaccff72406bb1776b2689be4674b9b8aa4c8e2142be3237f79663034818c3857375cd67bf32a431c2a9fea75de408e9ed9e52db31b766289b6064bce4621efd645f28ed242dd8b890a97a5e87336c7e86dd46d1022bc9f0cbf113bb65ab1a20cefb8720680da412c5b71ac2750339aa2dc79822ea61438e936b8903aeacb0c1b83f8e4a4f9604da3a3883410699605fa541297973f5e6b063e9bd710ee9ad098f3a13d6becad801964d4c23d9f8d0f3791508e9a7a9c10c5660fe84d11c0d3e9e1163c32695ddf1a8191e98d3ba12bf18f06af633ffd2ffeabc8fcf4d183fac3c2e617fe09bac0042653402b9b392c557fa90cbff72526900e0ffa74faae0b07bbbc8f59d44fc4038560754a29d2ae20e06219ea449e3396fed1de790906e492fd1d826a3820e7690e9561d87932272936ac50f7debd8316e2e130db2cb6e26b2308dfc3fddee700311a96c1bd60528a442928e3bcd5a18356584d5d76d51ca3ad1f9c3f1aa9e8", + "0360161e434884a7256acc5e44cf695e532dd18484e74c4f0513a4d79172001c13c7bc269972394000e47f5683ceb286ba6f4e8ff3565864500018ff7b67c6c76fb98cd7bc35a7c431dfe0e205dac3aecb9944a9f399f209241634d15f5001b83b3cecc8de33302f6edb350b6648357bb9e823d49bec1fced88363f9d28ce56ac71eb75d7442429da90ebbc55ac44fec685ac43b989b7a1e4b", + "09d6869921b6eb4b1491b86e8d540e0b67a5a452f43cdc2cdce0de936a3a94b0e7a220514a06b9d8eb9cd9060b4d822f669e845b9d6418c795f2399b76ac65809f8a8a398d1f3505e9b2313bf5dbd4e01bc2b6fb5ef19d2f1ded9939c9382b63b807932dce5e5d5ae959dfb716127cf9b6cfa0ffc2544901337afef803cbe4e58a4ba2abfcc1817322f1583500ff1d2491adc41ac09ab8742ef375e95ff4281055aca5ed6db6ec454021545e1774ac7c16ffa2e8876bcd62e924b9bc6e68b29b5f6a551931b87388ed20c67a0faace9e475ee9fff5dc93ae", + "022424e020252900a03e407368525469600d2f13f7b9932bd56d09d8da40dcc6f290b4b911586641c36c85aa5276ce3f38083b5e4125335bab4851b408b848defdd09a2f120b3eaecbcf67f09dfdaae58f220c6ac3bbb24e066730cf3a3689d1e048c4cdbb341f82cd676df2c2f881afcc54b37d4b90d8a523f528e6fcd68a033ac4a54f1b2dea6da4f6b73ee60c6e28570f6210f6a34101ee" + }, + { /* i=6551 cDividendBits=3867 cDivisorBits=2530 */ + "05594f3aa9832e86a2cd078edd460c775a276dc66cf3d08d686cb3bc30e5b30d775342080d5fa7b68ff60671e1022cd8ad82787d98191a5c9f218bbe8c3e41766425bed0b318bd9b2dbd1a2dc4cfca3a897a2bb8709a9827739a09bcc72732e1df6f675a7ded68609f5c63cda0c7056c7f77b62d4ac35c26ccf73201e26bac4df8049da40f885eb6588433982b1a217e732ac261488ea0d47665b416dbe854c13a004cc7e749b3b22306035707711cddd3a43ba6e5fa1ad4077e6a1f6ec88dc67b5c299a1c6f20d04a1a997445c7b5b9bbc6c847faa8f8aed1498ef2954d4a7c42884c9aecfdf2f63b0ddaed22b266656d70c290e9a6abf4d6eca4d5232f4cbb47744ea86357275822950097e0f012d4a7e14cd7ffc5d9d4d0191e0b5497ec088ea3e7f36681652de537e87f696922a507ae6e565781069ab4f5af2e6e6c1970a936f490176bc59096bd9106cbf79a3db1dd608ded1684939374dcb5977f00e367dce7672d04c295057abe30b7ca5ae1d59cc1885bb5eca59da2475c16de1323b607d476631ad33c16b612d5c466e8cb68f2a274b3b92cd891237545229faa33618bcf0776035e18528c77ada4cbde9442062f01fa317bebc86db8e8bd430750fc71db62e4e644bf7e9dae2ee472f2f026f9b36802e1ed667c3c9647334d7e55de066300", + "020eea53312b1acb6b37c94eba341af8d8afa614e0c0667e2ad1da20ac109d54b4f90b6528789cf04bf6e68fa420f36e46e6db44066661306c4462880148a6a8ffcfbaa2c0248c6a4d24f80b5ac0c91aa66fc63d704e2719912117fe5ecea3aaf07e7d1c156b627c6e1e5418ad610e26eb7c1ccaaa0936df6f062f53d2221b272cd80c74713588f898d4f5ac4f7dae7468241ec39e241eecc35e682ec88db92ec9e98c0ba17aad10c3060ce77fb99b6818b6e2e894faec1e41df277ea777ab6577dabc36ef556849922ba2ecd5a3022c6b899a37cea4e82eb6d33fa2384a65943930898615fd90485077f0124926f4de372c76495a4e041b5277b03896fef81015679bb38ffcf383969cad7f7fc6dd68534fd8aaf8fc8074ff6179da619ff1604f8c3a94ff621f1f0af09b82a363f458ce0bcd3dfe1a8c9152409c874d", + "0299463897f6fb4005d21ff6b28e9bdbdaf371650d8d6f224adde83803821df73b4ffa4ff2bd4653d0739da61a27b34561e25d234b6309c123374450303145cbcc6ef0ba1401e5a6a0c362563d32ad5d05740e2f9722211e1b25ee2440facb4cb6aa95484d6d8f8af4a3f8ba9e56a90b5a4645ad8eedd7048f77e4470fda80494c8fd09e168b5b5f3cf730f3e0b500e35cb5dbea326454ca14f6817883728c2129682a856c363364", + "64e2b405390e5096b6fa75b8f8e6010d4a16b6cc16e73801c67d9a0b9b6f403614919b18ccbb388a460b8acbcba171cf12ef956e5e57d718b864ce443efb141f20ce124664c93268b18366a87c5c0a533a954ec004a01e6cfd76fd434b5caa478806e6c8a6c772d4b55a07e81678b7887f3943ce75e748f2b21998a1bb63db6cdfca12a63dded1b586c2c563c191f279836f020927e8c60b8d2d70ebd4a39f7775a0b0b3880566052aec8746a5abb70d813baeb48e561d6b3ea6db271efbd069933ecf67a39a0263542c9c052d6b3c787f728b43a024a6ae5b51de4240530a16f636fb1b54ff8ab115273297cd25635b7e506363be735cde6d6f534ead40853a5a57a55d5d3bdea38c6c68947a28735eeb53024e84572c2bdf9178cdff77daee83c966d85e83d8ee9f2aba47a7311c650fd1fc40ed08c03b6baf31ec" + }, + { /* i=6552 cDividendBits=693 cDivisorBits=182 */ + "173ee4a45089206ff1c72a78494f11809c6b5cf46d262f9f6ad4a5e1b3b37a276fa3fc47de83dce3b0c5827b0fe6785192d3e03b38adeee943bd573b72834ed46a91d28ceef654698906ba648a370ec5d4cd34297c73fe", + "0107a285009ccf1b9f52227f0d8802c071559907f0b4c8", + "16928e481c61781635fb4a5bbbbf90eda17a2763467724c0a6d17ae6c697137edab91ac3ccb26da17cd417ed27239821f5436c8fb9cbf529a31ba606b224be4c69", + "01012635a7f51912baadca9c02118fa9f321f225a6edf6" + }, + { /* i=6553 cDividendBits=329 cDivisorBits=240 */ + "98444b9f1e4e18b823b405057dabdcae6562eee8964fb2d3249f129c710bff348dfc395895a97ad0a0", + "67ebbe87e8ef4edc0c7a5d4eeab39f2f63213cde7d7758fe28baef1d321c", + "0177188d749540cf107f0d4c", + "5f279ce676947631153d7322bb353ffbeafc3a2a91eb4596cbb095608450" + }, + { /* i=6554 cDividendBits=2771 cDivisorBits=770 */ + "050aa9f482696f15f1dd327c8d3841e43284d03c348aa6b6b5224d53f643c185828bfec87caea7d5c227f146d9a244d0b2f982fd12f216e79dff007f092718d1f0fb14c14cce842d9b14e297355cbb8889cd90d9880a3345b049a4ad8f0a4e30f9752e1f5076c30c9f4c05d34df4799f36358b23d4695cb3eb1c07775a2e81ef2ad53fb770d9caf485cc04112fde13f31c90be4aa8eea4057d0fc6ca9ad947ef81f529280d8f409c7f566f4f0c1383609908baca88dc46d1c96aa0e81a597f6884b7a7a2953bfb203874e4b0a74638f03c6e492fef21d5617ebbe493b80399b805ec2bcc8b7751693f261a66790b32fc0024a1cff1baaed87ad8f024969471159e04487890af0200eeada725968e62eb986c5c50df411241ec17f25c2e040020842a7ab85890b61141bd345702065323fa345731faa385cdcf6adb6459e12fa0a84647b8b14380aa30cff63a391a07db36b3acdc1fa320b036f8e3", + "01befd6970ea1d57640d94d46f60193cb970b22a676e07100ad976ca1aba21542735a120c65440718c7f51d7ce3e7452d7de549357b1c528e98d77b428b8b9f0d521444b6d8006a3118f97dde8da5fa3cbb2a8d1b9e9eec04fcd8885870cbde71b", + "02e3305a4511cb0e054eebb297fd075197bbda1084ec6cf39942afaf1cfd337d6e27c279dd2b30f5802c7be26d9046cd7fbf0fa304111b1fc2bd475adaaa79a47c1fb871982f8254327b46fcb80c28331cd1a72922cd16f03500f86fa98e004702423c5576929bf47ba1a6ef161f6b32914c53c4a5bf9970fb2c5a2f4781019420c9f61a89d03f74c3d5aba54b4179b228936e33afff96aa5470e4e40fccadd349556777565f9c46c6e63a6642134a72aae53fae84e536a918006c7062c417052182b74b06326dcbe5057fef7f75d56bccc307d552dc132bbf526493f8c4cfaac23eadf57ba753b008a43ccdd15c3991346c7511b93589e5d310ab", + "017613acd838f746c189c964f668acdefe16189dd478440cff4a9056109f30054843dc586ff3b0993d19101ae31645e4cb84e37faf2049c85e7734ae3cf8c68fe5b7a5c300b48016f37139d48ed296ef20c032aa0be32a7ab93ce45c6bacaae9da" + }, + { /* i=6555 cDividendBits=2749 cDivisorBits=1511 */ + "09175db08e006f3e03d7d1856e07dd6116dbd132f2784f2af6b86ae994aa740cdcbf10d5ef398ed37395f18086631879e208cd0f1a9f82734583a2413a2c4fb4ac00b2b4a2a112ef92fea3a1d3f90474d317c64d27668786abfecc046c60cc37399e903b3b430b7dbc7b2a6b353e8b8b8f6a673817d3ecfab4743fc0328ed1a1b900caf9d34e5d42e30eb8f8384a06e7c781618def556e66522193337b3c908d776cb575070a89149de616164046e383e6fdbed32241a278989348932e419c7b919500b13ceef472a91fdf0856f68c6d8816a86cd48ac1b85403e3009c01db9c1e25806022b5234f8f914b5b917899b01ee644dfa4b7cb9b52f42abf1fbaf19462d28c6b997ffa449dc29d9b03045e787d231a80bb84df97c81c36dfe5300e4d9db4b8dcec82680876e49748d9be246ff378101e700afc05da4eb9abd5bb73a42710781059f55749e0d709f8c93eeab03adcd9eb371d0e91", + "7290fcd0b460c19ee5b59cb823f93006bb3e10f8a0441a2df3d4d432139d361e5a0756b0a72468050f8152b5023141b6f0a0a29975beadd6d49641502cfedc2625ffce53d26374541fbd1af413806d9993cf5f49192135870c63b17f2af4db72671cfe81be8cbc54dde1cf0204c5cb5dc522b409b614c506650a3eccfa3ffa8a2ea2da59a9ef8924b2fc0bcd24e9687c8d0cab62224233c9ec2b84f64f965421c5fcc7d055951898fc3e08ae5cb2c077eece7ba596ea7383ec3a8e21d0", + "1450877a6bde08b53cdc782c436360ce3bff2382abd6e067c08fb0767f46a97e6e3b0c358f1bb461cb12c82fcea916c9490d3b0d5dbbd3096a7e8ad994334d2e9cfc6c29506b58f64e67208fda16ff164a3d5743dac6152f412cd657749936b782c0209a18696b5d1a90af12c51539ba6a417939ff445d385c662b774741b5437915e897953b33c31193cf265f7543056d73f8b2a0d280c93d546b", + "5bf465c55547332f40d4a10b5785505f2e1f57c9fee0a0e10a02c023c109ae2a946ed26ae0ae1f6e95feec133917b5024152ed1012835322be31de6297caa3d2fbaaba3f9261b91020492a7f7eb8c6cb97038114116ec8a1eb665de841fdbc8827199513c5513b71a9723f7ef5e319d4d99e0741a5d479564469f84e1e9ae14e7eb529d297277ac4f6538fc2f285fb66124d9ba7ea060375d263249d550c93f94dcba7d80889abfe4c22330fd8544949753d6a4395cb3a1e8dbc0caca1" + }, + { /* i=6556 cDividendBits=3191 cDivisorBits=1792 */ + "37d54460b27637a09025df2e4f1256bd0091af1dc1c27a6626a41d1e6bab5378dc377113f9b897f89f1c549c4769f6e27bca03df0e3a7271bd6224b36b97bc2b623677e5f76e2387cd3879af924584796b1a177f0345d46ab47b9952b0234722b08f82a3d5c31934c6a2d252573b90aee78ed2fec6cf1cbe07c2d576a72c7927c99da9b5f43826d640bfc41ff9169de8f4541e3c83b3bba0a7b32f6d18d9164b1d2548e72099e060343fc2a22e35e1d8c1d4b6e050348be1d91833e6a8d6a9d6c0d9143c0dd59adc61df8f45610a6d79d3e86f368594063e7f6a17f4fe144c98f13a3433de69c189c7b629205e7b51a0df783fbc2c4311e02af95afc3eac44e6124cf8d91603c773733f72e9fe1b178ea6f5510e487d52ce93092f55926b4cc796b15dbcfea482b01fab5e51722a52d5409fb494a93b8964fce65824a2c765692c8fb36b27d1de281cbcc3e7dbbce10fead2c36cf327ebd5375c122f9894bbc82057c4df9f20c011180f998fa8a2fd9dbaa35197a519299608a8ef1517845959678cd6c0ee02ed26acaa75c2e28534", + "c955048ed643b008499a2010cb0a04c6742fbc889937d2d621b4c9e24275e3a1715265a0ca04050193430e560a22851de8a1e0d01d622b2a4a98a2ffe675e4650a2ca7d9f635fb30f255d200246a1c67ce0d71005ab2f7c76664cb2a751b45f4957a498552173345b0e1607b4dde670d31a466597fe539c5e6c039600a07ae017dcc12844d66debb758f2db779745ec49508b8fcfda88f2d073cc71f204c302f210a39708fbd9a7b3177953ea3664aa1a6c55b30673f5c92536b4a63f3b94d913ea753d3ecc5ce2c8de2f97a96485288151e4be792336ffea9219a6a4a8eb8c2", + "46fe54e8f8b9561e8c647c90465b7e248ad8dec63c9f6dea841f9656645280bbf3f95faa7d34e32aa88c7a1a1601d6c5d67bd018e396a12a502021f8ce16ee3d5b758cd1491d390f53ee9d1ef03aa4a7630b07060369518e42532ced6d46d24f93dc7eb8fed9f63cfb8aefc95a6aaae8ac42a39f87bbb39035b5a3562d3b11038773aab35f11d94118f709b4e0388a9b7954d92a675a2382946c50a80cf5a0e685d984ad5cabd4978a307391e93cde", + "43635e8c381c940c27b37b2b98cc9887d2a83b5040f8dab0335fccdf94d756fd628a479301c5890a9c780b32ab0ab3a1825bd707cf85f5861815a2e2c1123fd0985fb9de072d5a4b8dd6e6afbb7f576501339a634b2ffaed76198563e94a85fde7c3dd18a34a20f7ee3dd0f49c278a6358837c7c1fe97b157a5c0ba4371135faf5084c8ddab96ec967a66376f1b8832333287cf9363e9d327e784b89c3f4ce2d4022824f3141ea36f4dc51b5ea8e22e6f6978d60ef54a13e09c1349f3066bed7d2a0d42eb4d9b258dc5782d4978bd7e83f135f32f3d9fa1a9509c71d9d3ed4f8" + }, + { /* i=6557 cDividendBits=2804 cDivisorBits=87 */ + "03df7dcb6f292912554ad5448918e496e236d84b682af67d59dc7401d9e60accda036f6c16a743b9890712f570c2f7f4de0bd0dd4b96f9ce59d1dfa46f42df49bdd4151c4f82a11dd54d5dcb83aa7c21b9fe562e7ee314a5cb69cf67b446c0eff53417f7bb181e41f1fe440ed37e78cecf299862ea7ca2df9c053b15f477455d42569738e4a19754ea3895c39522b01303316146fbb1ff3ba1ff93a2879a356d27c8c614363e1a64fef35f1b2b565ad8639dfa7d8982e742ecc7bc45098b3a97984a90fe74e5dbd0b7e1826c803bbcc059e9cd023b396cf2806d98ebb28e43b03d12a3d3bbcb83786c7e1d27976d809eaf01a17a5e15834d59b445934dc2d35f65e492390a2460df98aa149aa3077631a38528cd1b88661a405dec3c141b5760e6ef87343a7ecf845ce844382cb2ac93c9f595fd8c8b4de052672b265dcbab9b4b9034f42752ebd3051a991e8af220cf0d3613f78bea44b0954bfa7b75aa2a", + "012c9b66552774703d5f44", + "034c5d37de25d0193955107ebaed5984e8e08ab41536ee53a26027f3275e3d2737f4aa2c3f400ad9f67ceeaf55bc57affe3edfd6940cf38ae532fe0764df87f10e1d08acbdb49a60e2fea893dc3a0b727e31aee99904d7c7e07738033f5c6ed992143f9cb6f4b67d254e829a206f673018f0798d78923fa2c30d3e35dc535b72d1b3efd7d882845e7c9ae02dfd7d12b61edc1189cad8ccbfd556cd2654bb5ef80c8d16a4323389f775b0cc838ab7a0849b036b96457b1251c0b0f12b8d8fd691da0e4d19e4dbb5955bf24aba6052a1e60defcf776520c7a323705c1ee8349625411a35ba2972e5188f1ec442812d51bd24e30a6083f5ce58f20417689054ca9ee3a7da759156c35056cd16e850696ba056b1be0f111c69652149d6fc52cc626a78d0dcef4b2840599ee7fbf8d5d867e9b04a617fca9482e67eec661c57cf3645416a348b0b6650d75973f7af1a201c158832d2d75a", + "868a823763b40d181042" + }, + { /* i=6558 cDividendBits=3909 cDivisorBits=511 */ + "0f5008e56ee9749788dcf16ffa6031b379bfa16c163ecd32afee5cd93549992f208a0c028801760e199f896dd4dfbe7a51acb1d22435c8f4a3ea0264e1f06e568c8e86778bbc98cc46c2206335f3e3d14d930d563e2470ec865afcd57824f512ab9757431059448e49b19d3930498af2c9135548c51012b50c5803d109a2985759d06ee304e66f53379f5955d95ffffea3def613ca8b8a7fb20bdb7fb9bba7726fffb34f0d5fc30c8bef7787cb124bb430c0eeed99dabb84b830d74ee0b4d842ec71839a40ae3f56c74ab5c8482f3cbe500ff84f647702ccc42a79d0c90d9248f2c97f6183e502e9241521bc528272e2cd8a65152f994733b5192e2e401a1db247105f2f74d8b01d8d97ee75a5e9fa041b9c0a6bf92876c458f0463d705dc51497667bf138ce720854dd58e04cf000d19956207ed627a12807cff1c3337b6abbd452dabc2d4f0885946bae24ef4c3b2cb61f93efffd1ab3a1021182bc2a96ee60da9b610f41a51c307edfebcd82f92c7c3ca772938fec764de037d9b611fc53d0adc6185e9f2b2d99427bf3de2daff58a37bc1aa8c18ad1cbd708b1e545792d03a4b44b4825ad768cd162de880c6e4a8f057b70e1a0bb847dd7ca11a0ddb4ea2e621c59b710d0a5498da22dc654803fa1829209c2b8a92a6bc9af0450031f713cecffb68528ede05cf", + "4a68e87c833c951ed57ace2d07c573644b8214f945c0c10584ab569436f8b7b6998e05a6b626729ae03af2ce503a964b51fd52bd56c4bb38a96f0c9af4fe9671", + "34ae84001aa8e680046a901198965a747df33e5a5ffca0faa9cb26d4edd8363cda1199137c03caceaa6c9633171d9ae9ebab79d21536d262443ab9246706eea1d455d13261ee1c959fe5807cad816489994c2d7c45087055292732ba1865da29c3f581f1e3386e1b1894d0c4dc5e5a9ea833ae0b04915e5b094459723d8c7728560841c7b89105d4b9b97545166b0121982cfe2cb6a4eaa1c5e0a99384bbce2741640c6ece6cd6156538f45c86fa4f20c6b58780e22f8065d4a6b7f2252b1bc19f553a9b1ddd2586639d51d99a90d19632200e2fe25814d357185d0ec39cd941069c01ef1155640cc5a21cb9176e3d11c70e9a5a4453589a21700f64597db9afe6ac14e47e04ad9d193aad2c861eed85e0fd07caa9c070984f7d6c4c52ed1b095d2dc441d920a41729ecc13049ec766d7f178292b3d5d593e41bcfa7c6922a25a8ee047fbc27aa4067029f9493a25bd17718beb86578ffad4ddfc377b971597548080b5a36df3388c90afdfe47a114bc70bbbd321a798289a1e6d53c86683538d01a97b6f9286fb51af496d4793c7c8a30a37f83c96ecda396537a1f2c347a7a77a74214edc18eb995", + "0a688ee739f0da3bc6308f0ee1bb7cceb5ac4b67abdfc7c8b2c013db1e9ff37fb2dd67ea5dbb06e328b1bd73806f86a7d14e3f2f3a8ba862ee0127d6584acd0a" + }, + { /* i=6559 cDividendBits=3123 cDivisorBits=2378 */ + "098caa55d69cde2577a7998fc415fd4ba7955a105484b9ede5de27cb5fc512da6d5bc36619265722596904e648a46e9d890b7926a935dccc19ff8442147014e8c1aa64844dd3733b532bcbcf66933d11bf573a5af3a92981626f7dc899c9f4c068002c0922c884f7f4a09cc4266423dbdd821a57a3d3d47092a23c290eff3aba8837bbeb8a04154aac50145dabbc912aa011af3bab2046c9e239c11f533ec807fec5e4e886e9cf40704f264830aefd949e44e0892d3e4d8c060f8805d324dc4241784d05cd776c19a799e3d352f78818a642826999f01f4b68d3276c1b27b075d8c3603c1a8f1c104a1f0f2112b9809798f5bb2c85d078ec10d1234fb0288636cbe85fe5bc9b856a4773b3630f58eb291a9acc0eaf59b32f68369fa8c00d1e5bc9ef68af983abe9344537129dd72a39af337b8d5010a7226d6b6ba94c77a423932ebfeff029bc17d7e7061abce856f78138aeb36cf3aa34226dceb7c6072dc976b80d16e125b21dc8af7c0f76a3df634d45a5230cf91f60499491de7fff28db70fa54c927605", + "3bb435ecdade89d729f6390b88b3f1e6f5f57e45968d8e8cdbaa62c03f611715baba12d0cadf8c3a16d91b327c3f5a0021b170963591c7fd99b871c2065677b32f845fd34728087b86a5620e2475e0bfd086c2bf7dca279607206d3a2b4321eea7261843f8a9da5dcd7af5d3138b877966662da18e4cd022587630e6e098e8b9b5bb41be8d047baf42410d324b1a898d89a145aa45280f09b3ee8718a074f442ef4da9d57f087587b6dcaac1de2934b602d5f8eda08f9270f9914ecde56b0762f5846f9f6371b63f2672972932b2203dbac62f6f5dd9084054909fb313be3866baf4ed2a30543efbb93780cf06bb572bcabb36d6056d2fc0e98a9f88109a0963060c9894350f04150f62a8165a7ed157dfcb1424e0852a216a6c16cac5bc0f4708a1914a2914b2f369", + "28f24b44da0460562825b1d218178ea63516129eae37febb33c2b1fbd37f008966b004956a8ece65917bb8c906915ccd5c6edcaaef54b5b22949226c11a59b120bae2bb08774ca434d7150198fb39ded0bce18bc8d19af7b39f8563c68", + "2d517b86f5220cf75bf97418fc75da97ee8b81931d4c31a5d4da6e6c70b989af7e7e638fb9e46b9c07a61aa215e6cbe6b44154851f396caee03432dab9aa298b522474600454d1276bd29a8494e91f03d7aa658953ff3ae22ad8ea48b6f51978e12baa5f798c48d45536ef58cc122d395f2a73e8b8b0379be6bf1b0d3ce607c6eb3ae860dedfd467c1265b957c24273d108b53b612b6092b0bc3be0bd21700c3001dd3a0e4c4f911a371394b8e75d63b5be9098035acbef0de92329dc35d2c32e5d2e672f53e04c73a29692c122fbaef4238f39d7eddf963a7a732bf33be76761a0d44347e7db49b3559e0fe5a32bc4af6528c49382e6619d3b2625c1c88db25f2d51fe1cde85d229190f7dd93e7d24ee30c70dcf7933beaeb77feaed64b630ae5eae258ce758cf75d" + }, + { /* i=6560 cDividendBits=2004 cDivisorBits=1197 */ + "053f56b8770d9d4871da29e21cc477762bc99f9b70369a2c0c13c3b9bffb6471f32334e69195bf6ac1abe961051cee1120f54cf5619b8d9473a00083769e3aeda786fe426c4dca45abe305ea72fe7c51cd82ec1af788a9d5389014af027eb40d2f1d3cc8f0cafe0495019a50d1d31a1df5d427518c3ea11b5603fc13ed9582539b9c65be0a9dd4c94ef5c03cc66bfddb6c68e029ede36a416c1ea10d6b1cf87eb2647e9e443df20441a800e860286714703df6e09da75351cc2c3cf8c86e6b65fce69920639d6954576b12ec9b12e905d63d23f500dc3d7f282e0f7096f46ea963cb3ccd1297e918d23b0fe1bf0e471f42b6058a377d60799c3be3", + "024a3e54ed161ee02a7bab3f55852f46b8f3b10c0f04ce964065c234003cde9f18e76726fe8a503114a7b11ba3dd3d67a2b04aabaa7a175b9a3f952260548e0e5a64ed242977e82fa72f69b487337eed4a3d152affac06ad5f773de51de1d6118bfd418584708fd30bdeaf00b4d516ecc6a27b147a956af2bcb36435797da439c93c9a7a69466589596e46005ac5a97d6368888510d9", + "024a9b7989c1db163e5057ec28bfe0dd59a35caef6291e322d9474e9710fb4b2a9c319dcbdc6348af70092639da830dec73f5297a4d240c996e3fb5bc4616917cb490cefc6c8d099d4fa09e9f6c41e251d3df55a41d7aededb8b1686e758d51b8f41937fe6b7", + "b62d4fcdeaf14a303652fa207230acee4e07ecfe0ccb4033f6e18eda1bd37a62ce5f1b981d4bd0b4badad30c2181f6c3a28f93fdc968de4a58da9a3bac7e48a91b6a3cfc143fac04e8eee4a2a9ada0cd52324726603cc00dcbf3f7073f0953c3267595da2709c76e5f5200c1981df4df95b8fa80134ef51917929489556f5eda63e1dbf8a9b88e486a3a8fceb710efe2365eb33ac4" + }, + { /* i=6561 cDividendBits=3940 cDivisorBits=1874 */ + "05275d8b07fdb81855a246aa2bffbaad9c01eafa954a2e604a3f13f4a12bd607c98b271746ed3bdf99de668a8963a4ef87521e372215b4183ebb16cc1e30da9fdb9935a38edd4c683cf3e799db33799665d44cd858f4a9ca614677e12c275036925e3aa20c84dc6dc6e7a4211b629dbc219f5181afe4562033ed027ff562aa363f3e1609627499984f600b49df8b190bf1a998b9caaa545decc8e7fbe8178fd8469e1f497856fb8f38a66131613299102e9b4b3629cd2843e18744604ef35dd3291f28b99404626cd1d676307403f765ae9c736ba097e80f0d88f47fd7fdf539c858038177b956607db886c75b2a82e02dfb0901501b4c974b25b9ba5c10078cf3395e377cd3509dc7d731f7592d5728638550942f68fdc2b50ad2b669a7c2f9fd241cca12c7c251a11e348858a882fb994bb993617b89af73a6fc4c2b3d8bd97b7422d2bef4515cb489265587a10c010494e5813c0d0ed3f51b1c59a489da68ac28316b3f16c3df77751053791a872e22630c1bc89d663c3d8fffbaae2547156cbf46d755382ad3b98c11eb8ea72c3700acd2d0887d4eb70b8d81076761cbbfd48adb55933be1a9f197425a167b034a9d41391fca263acf16d05c38623ef3517b0f3817b1f103adb924f842896170c507cdf508134ab4674c79c607bcac1e8791adcc56144f501666c0b19659", + "0303142a74611a9e6a63f20dcdb9b61cc21b0c1d8b8bd8c1a3e38b75ced1ad66f3e205df2c9499dee43c6576020b1ddcf8be54ac30d843594a80f9b59f364fa39191cb24c9e55d795e842cc4a7341c0ec53a28900e0484cb333e95bca98e8498ee79289d8e39445dcf6686e8b9376ae7e8f50fbe826dd73b0dbbe587c65be8e3f87640f0cb4ffd4bb9acd0d39719d751b285434976f7ab971c008bd03a0c8616d73554094577ad044f8cc3bdb86e7ecddae3b7c5202d3166a0ab83373b4a36dbaec08b476421c57f10f6095e050bd5ab611aa9fc45c67169430d7348a867d3c9c6d558f0e8b75eb07900c4", + "01b6085044244b6063a8f536ba546f096e61bdd2d55ec388167e5cce98201f0be744ec9456bda41ab4cff3df50942e1fedd36c0aad7dc9a8947e0b7e665a51249b01e8beb5721002ef034e08fb6410d1d8a5d228f9bf5f85b1e9e381350db23df91614958930396f3cc60286559617d4a44beda893c5fe0d901d0c9a0daffcbdbfa3a3fc5a937f79c944303cb79e6187100ada0c948ff7ce0ad17e35725dfe16b3956e541597825299c47ee8c380699a1850a5d4dca1f9a2524301d44719f43f7f10811dd12f291f38f2b753dc53fa04477dddf4ad2b33d14a80c322ae29145153ae94c63cf6f5bcf978a9a48b48a67bd238b41c2cd76959ff3c6dd12e27136b4eb93d", + "01c74091772180160c5de3c2f878689777f546c2a460a6fc35d68efacade092a7e815278d71a103b8f6773a3f3f043e0244a031ad3186700948332f80b14c3806675797332c5129a55d4c6d88569eb2976eef8d8df208b26ba0b8b8ae861eb916fcba9bcffdb658b2188277ae231871b49a75f8c7e827d0159a272aaf00ef7d82ab2df82836cbdc73fb461c2a9d0c6337817b06f44217de8695eeac0ed6fa9361ccf09e74031804aa6ebde2350aa12f76c8f78e0b22d503c3e714ca24dbda56fdf0438646e3983a608eff5acb86debdc0c71ee123dc50b9d69290f067a72d8be38c282996bb4931a96c3a5" + }, + { /* i=6562 cDividendBits=3688 cDivisorBits=1912 */ + "ad367438e205d8c004b4a1f4fe99be6c74d3f5b2c4c7504d323311c98c9b26326b1f24d17a18e07ac81db8aee515ded8be57d9077470f9d0da1f4e5c6bc12967b8a57882ae87f758a3b2ee85bc182130ba1ef30306e9505595d4fc2d6d3a41bc390453a82af83c9e6fe5d587004a081bba3caa682aa714ffacaee3579be1b25db4cbf3a4b85a5533333cb2ab0d31f10ca475e343637c932f82959890bd42c6ab5d8778692ef7e5e8c999c7a4b5bec54aafea814356c34fcfa52bd28da675af7b4a416094a1cb57b55687de87d5ef9a867130c0e34fd1b8b6206332757b7909f248ea126954ae7740e189342ff28dd985a39ba329c1c44d84ef9fb29f314fc1d5a0e6badcb6c096b4f2998a94884af4e46e0528fa0dc7d4473f706a0b8bfe4ee7e7f6011e685504e3528e3bdcf57c3bc9fbe3530cb01421fca8647cfa19ec45c37b8c06bbe4726d565fa65c6db5df66600ad27351be56bac89c761ea8d72e7d21b3046b6e6c0322005633baa606e8ea2c2375bfff80ff46aee8633861a5a3c333939151318857b3487ad524851b3e466a3d68b786b0f393d42ac06bff73d8182b6d4972e53bacde87914d50ca1767b58fe1d92f14b2055e975efcf0a2adc4827987ebbdf65bd054f944aa4b9ea7", + "8192a3e9bf1bb673d44f1e2a374fc8ace6c4b7ccd706ddf72e4e384cffbea4c8ac465252ca716bd73650b19b083e87c3778eb9825ad907e108d916be16b7200936c4eaa90787beb3cb34cb87a7ea95d9968bcf1163a5f9dbc4a04b283432041920aa8d71b705a81969fc2a3af3d34ea25bbbfef96603b7669e24e16c98b5c106786c7fce5b2ed149e00807a29d80a9890ee280038aa7c7e129876d8b6e6f0f6d34da10f69a3593cb3d49b4a9d412fbaececb50f71ac7b9b3f9a2b0dac5d5b86dfb586c052549e2737d756e8561795e36655cf48030938c14928c2fe11cd732e415f129ce1db59f85bf2a55b72f12cb", + "015638690b15d586777ba7aa3d9114d649e947bff3eb0ee86842a9470071fd24efa470e387887714c1fb71adff359330a5bd4d734fe47f97b0a2e853fc08ff2b6c4d9a3dbb3e42877b4054e5897e2a20e816817c25fccde3e78d2084e2d554a2268623c54e450aa63230a057eb3f7ca86ceb841cb58f93b7b78fb15a391e031dd15f8c06fde2f91e959100f5c64baada4358a232e19f7fdeff6db3df033472d500f359893dfcc851503e5abe136fed90e38c70626d641df7959df9eb4ed8592d68814cfbfcd04d62df601abb0ca06e29a7878c21cce9765a14661edeb514a6", + "6996eb650adef8952468e598c3037c8df0c70b79105d1f947f503e74dab056886cefa8218ab8f5c236aa72ab1316238c8085a680e9127cf748971d57a0b9c138e970c249fe2e7c69473b6733845bb45234eb723efc1188d38c0f1870ba63972240539aad3565d49ec1c0d8a8cd549d2d73155eb32c63188f02efec38a941659099620353d7d5823f80886c7cd832054c779ead6238f2dbf8cc029737683292de9e35b91a6e1c7e2fcd8ca34d59a876299f9a2d3ab60dd23981dea995277ea59c61c9a8a823e06c18a19bd187b91c1c1cfa455f270014880cf2604e884ae38aee2aefd37d94fdb5d4be6701e0c69305" + }, + { /* i=6563 cDividendBits=3500 cDivisorBits=1961 */ + "0b63565f88bdb040a2190da727e0be7e2276d85195179afb0d2038a0b7fd26e0884d02011d283cb8c1c868dd0a96329083a325c153881fe528d3fdbc48fb53371ce8939ab2bc0b6e0f32a24e0f8a12bbc6159975a903afea6f2ad030225ac0a1dfc9c97ad2d07d135ffa37209fc62240d94872142d618bfe7e1936195bbbd0a6c0cbcb4dcefe4b7f5afe7842fe8db27eb5c342db1d6aa20afd39cb2981c927b61c049c5f8c334a1bc9d9dea1bb6e5f8a07f160b8fd78f2df156fb31e83cf0f1f85d2a5978820c86a00a5b373735f0e6b002f3c81537325eb94bbd8cfe46525e9f743507d869455017a4b51a26507e890282837bfd22d76aa62101fa9f03b6e606def147140ac84ea5b3cafa8208fd34359867b667e2215575ec932ae8d09b15c4a1f87036bb124d5d4ddc23b4100d7dc50276102992b1346fb143ced8937dc05ab4c21178d266c90c38767d01cfd83eeb9365eb2094f222c8c84b14e085244276fe0869433e6491b748d7890161305efe1cdc595c704730e8565ccf5dc57c2dffb285030c7655b15b5c3b3b1d196199f86c47b63fa189fa2bbdac0c5f6a11ff4ee6a19c10e53ee4958740578ac6125f59fe80cb90e57", + "0124cbdcb1458b089626fb7cb0bbbb58c09d8fa449c45a453c41c8186be2febc57c5cf3e576d2efb0bede770b35aa50c605304e8f11a81ef090934728382df0c5fac07cf70ccc78d7f02fbc978d5479ca5dac84a4e7da43e3a886fd9c2a8ccbf1f4fced56bc6063ccc5bc79637557a51cc9ec7a645d855d9e88de23b950f93e47e0112335dfce2a5c4c21e0109ba5256f67c951795746884a3a1949f6bd7762c43ed6f0d1459f9ad616523d47819136e13c45fb727f033671400912d012bcdeba91789ae36016a87b22ca395784bd5a95930c5a5a512ca80a6a3e1eabdceeddaa402d5c2e6f554b34e77ec7f841dc086d4acd98e91c0", + "09f4f5f4aeb4f1d12e23ebec5d725d9c1a4bed951e530021336e4a27a4bc965a0987bb809c588b3231324034bc51b14d6ad536e28b116e3093ebad380c5d23ef5cb6838b6244fd20862c3f4971fb00a827c766df178400bd189e8d158cb4449fc20a53caf7a92b6aa16b529afa6ac678d7ec55dead2b4cea32b61a61813313c72d26ce09887c7c53d8ad65d39265f84da0584ba40f5dbc4192e44fdc2d1f053dfeaf4f601616a00e708eda1feea83e2a267684c55e666e8a858365e677f3ac6e95", + "de5cecff9416a3d922a64999edca97c05a354a6eba27702f9028e4f92ea2e56a6d974000f54cf87253de7e2d7201184f794b19ab991ba10a2adeff053169ccbe96fe83448e3909afb2afeb8f314d501405cb3c1600eba4b9772b0217ec80e2564c9826454bbb9fce67b742f8d47c28cc1951926064eacc67af9a4afb1d7726d04b8c9a983a8bff4868b74dc9523391239bbac57b4bddb947892ef308da97380176b611ac68cb6b9028ec83d341f24bfc034d55d2b1d78e519e234e89c210aaa4eed8372f4a4f4d14b314fdb82fb9e0d376fd290c3bce73fd7af0d39c55fa2915d1198d120df9c1e33693557d7b387cd16efd1db997" + }, + { /* i=6564 cDividendBits=1968 cDivisorBits=1180 */ + "2f4fd831a3506e53db9302eaa7081f594185a04312b7e0dd5b459be423de2d775479b9169256afac3a0e2072be3fbdd63832d9d6f0922ee23383f416d2aea2f49e232610fe717005bbfc569ade8eb585ba9861f6f511d20758e7e506060f409b292d00f7ca8218126f70a429cfb70595fb1f0220192424e9a0d1412eca342103c556b716a072d78e8c887ba099a8868249a0762cde27f6dcae8f00106b1414d10d603d958b347598a1e67ed490b088ec9b7ec438092c41a308a4bb17b5d2f25bc6758010c40d0810c5cd6d2e754f31534e161f5ff5adadfe8987268abf7d9d3986ffe6e96f3c5392d413aee37c65a219435585c0ce5e", + "025be9f5f78d5ab31d08d07ef9b475d5f0b0914b19e21960d882f04a06e8522e6efdc20619424bf82dcc15e30f9d505be383f1b2108d97ed608e28d7f54a2a85fbdc6147d8dc2efd62c7f6afc78f8f5ec527a9858186fcd1e13df4d185ff5c0c20296971a9d1a24fbc1ce5a01942b5dabb2c8e7c19bf43bcfca360813ad94703048e04bd046a3d955c229630fe42740c7e19c34f", + "140e3a93732859ee468d4651b8ff6f460c132b1ee8dbdcc8bab3d58cdf43ad96f7c9781e4f7a2dc693e35efff39ac9be3c4a1d477bcbec19d9d6608817997271e166871f1d413b17c8439e279b24993d7358d5fc7f0c2bc0ee92756cba6c6186cadd96", + "01fedfa2ed05d487721f3013ca416403b2e9c4389714d90d98dfbdc9adcbe54b8daa6f8cb22272802d272def202f26d819f0985527c0b9bfcd69f343e334821cd22cdd11023175633a5fe095da3e9827fc6d40f99615567689b78bf4b62054d176290c0cc815d432377eebc8aed0bde32eac6c8cb6c63efd7f9cc1d9a139581477d40ca88c546cb79232badc4b8f29a8eeb72b14" + }, + { /* i=6565 cDividendBits=3452 cDivisorBits=606 */ + "0f46f2edad13682efc472c20e49ee69c1472bca3194d4c2879beceb38eece5e21ee3a36f5df1be4234ba14638ae3e85344b2a2024d1d1ab4cb6229d3268d0049de9976b0a8a48f92b7302f220298aeb08b2401b27fec21d8e1306a1dfe415d0bb96b250ba096f83126cf8fd75c5f34cda486f437fde5b1d4f7562aa9138b6ebf0e8c4e0fcd004451e378cfe85d9bd7b9f9be4f1405d35c3641a704630c45126ff3a356e8348f1d46bb02414ff5788cd3de474330c4e361d17642f823690a96b522979b5e9e1bbef076c1c070823fc88349d4ccb69bbc059cc36b307dab3ef5401bbdc13694c2980349c2bd91f854bf6e62dc7217455a04e0b58549b298a9bb0cfa84badf065931e2dcf5bf6a9f1ff7e9df13e9ea23418e864f18f87b4ab18c06879b7c7869b3ee814180a0882b3f04f1c2d57573c13fa2b460881b166d9d5dd73efad07ac2f1001421b0708957f4465c0add8ef2d5369c71711bf01cc4457bf78ae1dd2cc8f38fad29b75aafd56f74361f00ef4cf635a3ea4e597ff2b4e9036bd35d7760ea0aa1a65e30c949d2abcb36e184d31568c9d8dda831b3ac7b941f1171f70229cf532979d7c7f490ba99afb1", + "3256b6937db8b87ed3110c05ecf5bf511b4d7e21392124d2bcac6bc6c7562ed3173aa964a79020ac12b14b95bc4ecab609d5e279deb1eedc72beb207c10e161f9093543eab6d2ac1db9eddc9", + "4db151ab175e20b5abafaadca958f7e373c6648fce4bcebd752e341dfac2291b5de4e9bf7aea4dc124f59f6fc5160ea3978a2958daf6bfd6b7ed49f515bacdc0d2e32d80911d83ee4530bf030dbe3acfd7c29251174058112292cbb5968bc9231a272aff2fd87972fbf3f524edfbb07362b092e90e00ea99ee224faa45af99738445e341c57de3cdce600e9935dfaf13f122d1bc044c44e5b94b3666169322328f01108c3bea57f6923daaceaede44416ddf71345c44c61feaba301d30e7b7b113f01f875bd0fb3c671f3dc6cdd3515eb6df7ee4d66394a5e802f46a6630a9282a678088af93dbabba22354a89904d2b416f0d00756f920fbd46c717919d929961b769678a83ed10137e35ea551aaa77c88386bcf031888b7ca48f75ab3ba5f626b2ffa0a969a2492b3280ffc2662a423379752239c78d3c84837a473c42864ec4c850fd4b04bd71e00974e50374d945dda8e51023de43ab63b7357c7f54fa36069a2bec", + "08fd3072839c846b9d5ac65127bde2950175a120456be8174154087e28360d25612c160c765ac9c18fcc1209b2eb56c0a9c7eddc3a702bb271a88a7ab2397b8e1fbe0a5b402510cc73fa7765" + }, + { /* i=6566 cDividendBits=3710 cDivisorBits=3687 */ + "1ded1fe4fbc3c33ba8a2053ee732ebc5f0f0d5e8219a239d78da602c27020030077223e510399205e566a1f3e5d3d3dedc49f57945763a1690a8701499d5873cf9477412031f568ab895c160ea631405680c84a7a52ddd7b10814fb0d52a627dee1959a29102023531c9c88ec2bbac552530b7bd47b3736b17dd326284d4a8a7976bbae0f5349430173c18f9fcd4fb7e792ff4cc5c0369d367e3a274be0d5eeaa0160841a625d0a7c03ffc97b36bf9cee7cc883c6addfa7df32b6c88edf0c6b05ff5a21af557496d9750b9aa5285d31217cce040004a6c5e7be8727c690f440b1f8a6c05eea43246c904b2aba38d013a1f3eef07a8421a4958f3b061e81deac52ac59d02bcce904c25db6edf66a419fd8c6c2c82723b6ce5a8cb19cc85a05ca1762788ec62c6f96419ceb2c191963c4f1dfc8213dbf99502e7c2e9d1f52e1757cbca5e234279ea8579164ef78738ef1b05bb9874c3dcb4517799647abee814d5f53e35e90ba7273c093c7655747dd27c801faa6daf46b6f53340da0f9e2306bbca502a6b8e151fc2a3903313253a5548e099d265a2d0cdb7b7b07e81f4375f97c07ab77f2ddfd1f456bc5e1ac2cdc5c97e1e276c782c5f4484c9d07f1a8c2bc7d3a58de388945d787be932442ae5d694", + "371e6d4f6c5681fc2a9000f9309d713dc0dfa651592e8e7147563ceb17f4b5fa8c461cb91c7af54134f320b24230193423f7bc14a70992c1693323dfdec198411949a7ef153f22812eaf607c5e0a1e81625898ebbd70adb75f6062494fe44276c73c4fcd767213f22df24240e6fa951b66e2f44b4a1c05b1fc947f6550360fb3de508a20b10f856b6caac5924c11b1b43cfdfd455ebe8b2af66dd554c18178c0aa24bdd1c68833cb4c17e8314b13f76e60ae1cb3d517392df0c1bf797e4ee530208535fc87d325cc03833ac53e75ab22ca1ab1db8326e087832300c5b63d7e1c8c9df69bcb683987f41b6c8646e67154f8dd5ccaded2c687ff487b97c35d4264c2e580e3c7777e34465c481c5b19482bbfe888b2e0ea1ddafe8407758b2ea2264e80e95c4dff1c1d65e1070e88d6189be8a64210fe11ae136050c9b38afce863451b7ae5125414f010cf89bb70fec159f32e2d88df398082f109a9374c5aac98cc12939f33fb70a17cc45904a137fe0e1acd7c41a6d0fb4a154ba3537889ef7943f7f909d73bffa12803155a661d6b114d5d781dd0f00214d5f877b1f01ca9f0a1d8d81a6072415b5158f02844ff9846d80e9c07255c39a38c0e4647f14ec93517f98bbeaa4342eda51edbdcdc", + "8afe28", + "2af57b3a673d2ec3311b98e0ebb201423650d3d8b3cdbf689f8151958c2cce04edd2b81b5e31d6d8d3602c60383b3a94aad18a1b61331e459056072c4691447c830036ddfafbdab610bd38e2d7cfe4f6f2ff4454704002122cbc009db44a7699a534d4e3c3079dc34c2f79473d473e02cad8e10cf71e38bae84d2a1a049aa9a1c5b3bd6d336139700e69cd1c423bb65cbbfc89daf264ad35fa3a505720ba574ee47d54a2937d6dd5d103c304e2c98180e7cb15ef54d2deed772f63f120b4de09c073213e551f189f3b2df79a4f2798864f08010a4495ae4ad998886892ffb54a6295e1da12218c78d14b257469dd13687da45bb3521f6213f424ea17ec675cc75e3524a68a1457b5722621a7c46849941e0e261d5f67a52f0320cec334a47e2af4f2afa4ee7f53b7c3924cc93d3409b1272bd54feefb6ac5e26c99cd6c31bb79d38c1c9cf226903e2d66d03474e32f5e18969cd71c63aa92038870cde62ca9d803da9b28ebf2279809f514f4ca13fc1960e6cc4a1549015fa4c0d207f343f01b846961b0ccc227a840bf27086cb8fff8d1c7d575d0eb5900067387e206f1eda490a9f26a4a6a1171b0e0213d524790d70f869078dac2039a905c1b0971429af3371bc9620d76a7995424d10c34" + }, + { /* i=6567 cDividendBits=1781 cDivisorBits=323 */ + "09bb1153b0c71528db3abca3c91a74120881f8eef03f24b52c86257a17852a5596370989bad0ad3964f9caa85d7552a22076cfcaaab44938704c892a7823bb7be4c1d35c35d80222cc344f6a647bcc3f71481726007cc3c00772c7a9ff71cf55a81a80d022de49a4c546ee0952bce8d27f64f4c15a81d79a1ae6f529eeff1c9ad9c1727de48bbb8c3902b551098f3eab3f54d7f18c97949e6290785323e22bbad0bc79c1b11251e8ca76cdcb4a8d20dd9ead3ef7bae9fdc8f952639f9d10a20d7f5f850592d0564699f3ca1b59b3aa3507fe9fcab5a67f11852b9922630190", + "053e88457edaeea1eb14f9b9861f1d8691c53237940d4df62042cff6674a01076e4b32a573a3ec4b08", + "01db01ff8eb4dfd38f6fd19cb7d3b98d8f4d12542d77ba63a535352c3c83d0476f937c036336964a642d2881abfa14638760c0498655e1caf0dbb3e832f514ab4f7f21886c3802241e2c914d359a9be5a4fb9dd0af49035b18410baabf69cb77ac6328740765a58e85f8b10e00ddebf8fb5037735a43338efdf5e316c9383df5ebc717324227ad956a09b2ca3c6ffdca71f1f8c3726930882a46cae7a50256f30f3fd4a162441c82e255c967ddc4872b966cbb1d4b8bed", + "0458f199050b3b8ae855819bfbaa1cd3ffc796c006bc221954ec4288fa09d80b13a5673bf7308c3328" + }, + { /* i=6568 cDividendBits=2052 cDivisorBits=1576 */ + "05cd833786b9909297ef012608f83125cf6435787f3a5254214a7cc80431cc1df014db182a75313263b8430d4e0e73249a81d046521155cc2f66397178264e2d1b1394eb5b4f2ae946a3f6973f28e9b1e358088ee04fa6c9a6bf8842b8011cc94422975b6b2c8392697f1769046a4a7d980d243785341c1ccc87b5122b7a2397f9ccfdc6dd2baeb5c5a120815c7cbeb178abbbd22d054e432ee88d85422e84a642828dc3187f4d7d988a7190a3fbfc8bf5eddcf95e1309069726bd86b2e6c6237385d9937fbe1fe99bf70160ccad886fdf4d09d19c673af75d9292069826cb7cc461764dbf9228e50fdda0c02b3fd2a8a8ef4d93cd061572ecc1348995ab1e952f", + "b69603de0ca5e80932ead8b714ac201ebd8b320f246d73c53956e8a8f150f49ce9926550ff3e30b8eb003964393f47dca9d5dd6fedc142ef40e2abf335a27d99cbb8fe6c67e913d65fea2f7a63ed05b9fc988b58aa5384ec6c42b20e0cd809471b4cb6c92bc7ecebd87f02e53f81405bf52f42baac4210094340f13f828277d748e3d6b5aef0b9364951a89736b06839f9af37d7dd217492b3999f31b6c9092264fac74ea922ab93918ef9cd343aaf0ec2827ae2c6a1fcb822289d0eba99da43f40f75f5d6", + "0822ce58d556c0516d35055690899cfc09d084da0520001d6bf356857b178321ee9b5ce50db7a8c752c28eea016af717ca4524bc1e385e5e85520f68", + "aec08fdc8b6f9c91b6c3b5fa976d2bb7b6eb691ff43e769a29d7fc3f8143aee06347665ed37c59fe785949b74362777680bdc339997d297e5c29be617a6f686ddd53f8d0c38fe70466e419f79dd6142e56c3a2fe2aea5f444c63f792bfaf13389661b57048d672522dd1e1dbae523c5783866f1d22a03adfefd23ec2105553265f46b5755f3ab882bd6e395ed9f1c8320523836ae87b869fe1dcf54c8adc6b9ad2352d563f3e0fedb16a5f264b92b21d4c9d70a7f284a6f9757e8a73d30df38c728d3f2c3f" + }, + { /* i=6569 cDividendBits=311 cDivisorBits=139 */ + "2e1d229da4fe6d8540e19c46aed6fa03717e58ba8ff3ad9b03b3ad35d27d1a61bf16458f105a85", + "04b37b27622762da7cff2f972a4022829862", + "09cf24f029bebbc0646efda28b46c68662594849ea43", + "03a893a85d3073c73e4e1d8957c623a6e4df" + }, + { /* i=6570 cDividendBits=3646 cDivisorBits=2248 */ + "30e86aeeace23a57fd981cf07a5e1349a3d1c8da8823dd7747b763669ad8500e0f05a8806d1233560197c0f8c7f4854f233a5b06e5f36f7f1c0d2c37aca0585646bcde4e21dfe7b782e0cc02d6923b16048ae8f0ce78369ac0f4dccf7c6083f7122ae720125296ab7688b00fd0a68e8cc60a7a140c48f79712797c0197a6c1cd9ca5b1165cb3892dcccb552c6b369d6dde811ac6d918da29d1df69f85e0b075ce73a2f246ffa58615077b5c6f282b700844ef4c27f53bdce5f28dc998012d79ce3fb320b5b17731ec77252a1983826d2ad73a83c08c56fa5d05840c7b11245c398028b87bcffe3b04e19d167467faec5cbfea2df87330ae05aa63f30e80dca24b5f64481b10ded9a72d7570851da32dff991e2e9d751ba497c3a457c502e34ab4eb1835dd571d0c815bb43546743cac44d00aae5ac0ed1087439777a0cddf0676b815454e29f942c717d0ac6ef41bd24818cb6bbb721ffaf7e8dc422087e770396115f8e50cef73e26a60b4ec7d828d321d6de07494ad62101e83317cc1071ce756e328b04bbb99e80305130abb1e48f4184551a3b2a1d3960cc4535db85a4db7c4816f2f97d39c73267811804d3c40048d032a1f6566a68fb10bb70e0032ff6a4bb921d0eba1925", + "b3a97ac912eb5de61b20c2923c932d4f769e9b7dd628af0adf7405b934e8bdc2f39e916ca59feb147a73f2034240d7f46ca617b790aab889026ae55d553aa25e1c082558cde3745198f5dd204281b2d6a848672e35b93c90dd4233861109418856f7f9edca0b5d5e428c3cfe0830cbce3f6d0dfeab0e30ff7f9626e6205b1dc809d6ee91ed62eb485d2df9fee7be48302551e1cc7b429ceabf0739697c44d423050c828516d669cd9b10df91fc3dc6cbf1d7441719eceb4cc4dedebceca1e2a27631d38db03b6c58123ebb0c22db42a7bb59589fcd328ba564d81b8f9b56f38f4579c920668f19104bb4020f2328160a834cdcf826657a41e0ad4332571118c3c993b4d866f19f7a012e01ed76a61c400441dd547935b99b0a", + "45b05040441e40ec7b1369203f2882cba89af8944f66415c1aa8ea8487c0ef7b942d9dd7b7392b20dc27ee75820ecdf9c5de0064902f99c02c3c95461b4bbacdd6802a912c2a09d86d665bcfb20da430c7b8e0e846a12e20b4ee185f1dfe3584f0276244542ea833b30995b0c4be263cd26ca78efd523cbcf27e80a327619142e172ba96651019b5cbd0a5fdfaaeb71549a0b7f7cad13129b2ce06b43ade9c7e085a6c43315443751a2b6dbf67a6d3", + "3e5c2bec8963ac9e52fea8552606b5bfacc96c44a962acd01c3549b9c782b75cb79575d70664edf3cadf1473a51a45192fb4f374419a5cd3251f7042700ee754aab69973e1db7cfd14ca39449d5eb5d2d0243c922eed50a8baa370aad54a2f6948b715ee8e50d98548cadf998574498fb983db64309991763a79a4f42a6673ae5b121601de2fcc488d0ec49fbe9beaad3877b3d3e0819c8577b40afcc2b02b99df018140e01ce841033be15d1d41ab1e15e268c58eeb7ae7077b9f2260138fad6cf58a1c53fb890fa43ab133c0a4e671aa3caf28d260aabba6beb5976f15ca41c2b984f06b3bb956801e42e169ae4ffb956faf15bc48ebfdb74d59b67877142b991231790c51bc35b0637baf2c42b58fb60c988fc39530d3e7" + }, + { /* i=6571 cDividendBits=2823 cDivisorBits=686 */ + "67656abfd5bc964a16d89bbd99634c6c6cebc6a2439d49bd0fb9e8a1c4f97f874e91b0f873824f5390bfd932bdb13ef06b9ed2d9d1c451ab48c9c8f1fc83d925e05b6d0d4088139f98e8ad72df9f1147eed0a9e58d8cccf5e7a3aa4c4dcef70dec280cf6fd2aa8f8053b17048a1ea2329d9110b5999f9256e5ed2c888157ec24362dd200815cbc34f015bc69540441c8e0337e2f21e4048902a75b6847e93b8689794b3f6b664e8a2eafb8b7e1f7e44ed8c4676016da86f8daa4ebaa61675bf2d2f9c7dc84348b9d49c12ee42500527c0aa10cfd73c10e516fc2d0e8745f0b91fe3cfd33d0141c9ce13e5fbb7af8921b3f65f7273268eff98b2df508dace9a5820972f434a79c8e85f142682f3195cc6ee5f8cb71a26a4d761f4a8f00cc53bf7c6f689c56f38453ae338a3474c6ee1f5bde5ab7961a6426f75987784be19ae2581dd4e50794743479088012d8f1b131fe33a4aebf3e75c4235da631435e55aa42f", + "0ee4bdbe8ceb9792500c66717d4a01c6057219c0debc5a15caa18a9e15bdffd34356e309d64be5eefea41d4c99806d56c8a073b35cfb2ac16e10551d12def285a176f1fa668a9b00b684774e3d89d46c7a3cec130c5b", + "06f13e6b93965e60b09dbcc8396c94eb48e5ad70f9450563770be272a32a2d7471a927642b39237092d09ffbc37ca1578f9cadcdbb28b8ced205bf1d9ae103f56b45a66722d1c21decec1fe78021de6c2ea9a41fa9bf239c1055a7d96f1388e2cc78c7dc0716a9b9f99cf3478b41505d1c84efc2a23a0a0a141d8fe3142aa52903c59767e55d58d935c71d0c1bffd4eadac49dd6a56443aec15b20528a69b001e89ac44824d4eb8ba67edbdeb2e0e2ac870d64d5e557f4ca66e75292afa5fcfe7d230a89d6d26bd0af0c3347162bed69628b8ee04fbd3f8a8b5253c08d0af868afb615d59499ece2a0bced16c1469a4814f035a48514e05c7be6f0f97be2c7054128ec51b9552787b38051ae", + "e5aba8e80d5d429ecbd191cb092eefbefd8783ca7bebdd11ead252d455f26e4e475795f2f71b12af86fffa91a124e50b3c1587996b0efb467de1033383d619dc04993215ca10b6add276f911782c4efbf49aff7355" + }, + { /* i=6572 cDividendBits=1945 cDivisorBits=1799 */ + "01645c5300a124addd1c80bcd856731f72744c85a3dfaedf10db574bfc487e11b2a19ce6a7a2769a03d970370229ea7278501bf0bf043b051c9595c857b826d0964d852a07fa9883671a2bee5e4a0385b5b00d7213fdf2f7fd5d8f33a27fea7fd5531fb932277724ab3545fd317696fe3019a4c40895dfaf6a84aaaac5a8268d52411b1f006e3f5170d9640445c02f9d3b3543a230e87e4dfab2f4e5cf33019637b285df24ba03f1e3b3646f8d2119ce5b0a10a533e3b0d5de7a52f38d8b081982552b37270ae9898c7f6b01c39adf81e01ac305795ef2f16d33efdea50ae6808d0fa3c1fabf67bb7f6110dc5820c7ea4e878478", + "57518544e508948c069da95094ccacc39a610e18ee02a4644b726b64ed6cd2f0955035fb54e4aaa42d07aaa368e646623187a975c7ee66fbdc35cba5e9bfd9fd200c1eebd9d77889d9d80b5d89fa2ad5fd53ae6c9b4ce4d31c70587af39995eabacd9c67fe8b194c48999063e8790b9393a4b6a6fdca541b51305407e0908621b0f06d6ced2eea9ed52949ddb828016aa2d2bbeb0d1f855d2b9dec147f56a6165ce1c6c541bec7ee75cff915ac60ecc761efd4a59fba3cfdf2006c77271715e4bcd717b26a0a28b94e4c88ee1376263cef6557018cadb7a963b7108f9df1066328", + "0414c6fd7e261c9fb756d14f9700d421e3674a", + "470dac57464ab10a4f711bc22b08661eb40a0a691454af96c10d13f014f508d5eb78f7c61b5920cbc4085a8ea38a446b984ba8023192ad5fa855d7d666718da5cfbcdf5d74a993a6b8325e1d4c85fddcaad3f4ba3e02a0e6f4b0264f906d925ab59705526ba954c7dfaf14f34cd13c04523a1c2032c698f96535fdee51e0eeeaf475be1c3b8d137ab413770904827b746ed742667e578416dec7b324c93140eb1d304248ca770b00359bd02fa1466812dde643780f843e7254ad7093eda485f155dffd848a2ff9548e664db6929b4e5b4233f5ec60a2bf0f5da08e0fb6fc51c2e8" + }, + { /* i=6573 cDividendBits=1263 cDivisorBits=234 */ + "341f60892231c5c9a33c56893bde601518646c4e97a854d1e82a502be9fccd7760d679211ef5cbfbfb25254be97330d71e2c0653fe9cae9ea6245ae98f3f7121b30c1bc7af41c2c0ccb1d489ff2d5491d584a867dc7a67bcc9d067c9b63c93461319fb508158d722c8ed60669f4f137f988cf99f3526c4ff437354352db22d4c6d138f403449f546913815f3569fe65fc084941b42afae9b898ecac5caf1", + "010f37f65bee6d1eafd79fb84db85b640678e3f299113edb9fa779a33442", + "3132a77e6644b5f9f547984d9ee0435abdccb53e3b2cdb61e59bda6b0f85965fb7ba30fd2d0564adb0ff3143cb728a55f0a89322b7d8f1189d82bd22462336e87fcb644ce4f908419d5cbcc80bae8c4a223c34634b9ee9daac1d339e5872202a539f18b2c8dfc41c30c3c3c828443256b05a8fd39ee641040b9ae864a88fabd5db", + "14f24cf3c9d35a35e990cd6fad137ef1b9088e6b2757bf1f902b972c7b" + }, + { /* i=6574 cDividendBits=1655 cDivisorBits=384 */ + "7f8e02587207dca711491e5ef394dec325282e9e4acb760362fb0cd466bb96935371f94227b278bf0bc7e8659e75e420bbb02f9be9880fc56fbf6e3ccefe6cf57a33edd005d20853ef540abf614a569e2ce5ee801412fba077f9c18770a5496e417526338477706856120803803262974f83fdbcb187f6541c18eb5e2ea345f40f8b93c91784a178ffaa8538f66f5f6c83b2a44706453cb1ba152269eb1aa705cb58c46745707030c2143fe6278a26227211233992bf93c1dad17fb47c32c0778f2e1572b8bcbc2ac1840623133b6a", + "9c584df331aafc177b2039723e53eb0554e3f5dba32e9ab3a420aec37b9a2022220a92a614f905d7a78603888a3ce6a1", + "d0dbd744c74971c00c2a67a80ea4adf5f4b0e9be9741d6e708840b580141a3bd5f6e5ac0c705fa4e753c2aa59f48ae7f451236d6596d6eb5c4dd80e49dcf17912e4f63cc0a2941ddaf62c08eb6da6f833fda2e391679a882cbbe78b6622e46252ebff46f27903d43bbf12d3b181d0089ee4d5fa3f73f06dd4261dac6c3e4e7576b1ea97699bd864cb7e5d2130c3ba9898f4c8c106f1e9711f276b9c556a804", + "5c940622f03bbbdc54c37a60ea53cee65e01a1743030f0e9ee13b2845fa97765e49394fcce269a72aa95ace3a3aff8e6" + }, + { /* i=6575 cDividendBits=1371 cDivisorBits=1084 */ + "02d121a692ed58e6968f59ec6169ae985f76fd6e89a52f28c825b60d24c2eb534d5d96cf96a35e2b98804f991728100acdfc75d0ae12dbac04058b049511b015b131b96081f14d9c67d4e6ced38b6cc3e3fdab95a69a0be7b1925d14eed16b024dd6d3140498bc6c3460fbe05e1fe831f79a05d02edf1962d865977b760bd7b79fe169aea489bc9f2dab5bf56cdb1e7a0ab72f639da4e14464b04090b81f21e6b9de6bcf91a4c9fd7dfb4635", + "028ac7dbe85c2ea26b46144d4350b90a80afc6fa72e51ac722006576b7733f12a1b58e6eb7715f51a923e935f82a3f568e28c3ca0a18160c0e4eca33ddee9024865c4df014771a554e111963e59c76b0f646537993ce7b3d4fbe182c90dcf2b2a2cfc17b922153bdd7b15c39e5093b938ab6a396520087d0b5b96257a50255bd530549d1d85c53bb", + "011bac93fbf96fb5e55890f74d25c773189294d5c2801a0406f487cf297c48f4fc21f5ee0c", + "012b29a8ef54f8a249d36098d2310a823f959075437f1776f780f0546f93f72a7da8dfe905238a35de1c6873693b4f417a8038e35f8288397e5afdc0a6f68c8a0ad00e6600996b78c006eeb01d19b8be40a44a054567b2596fa295aa5606f534ed525aab4ef9ed4aa212f5c639f2d347a5445a3e38405426ef7e93ed7eab63eaf4c39dc646d87f71" + }, + { /* i=6576 cDividendBits=1767 cDivisorBits=1699 */ + "29df2a8d0b1540cf1dde9a0d45ff0626549fa3bc65cfca237e15e76d3cf93ea8497520943620c59ca2e83d167af55fe67befe9a493a831039d3b0c3d2ca166951ac070c76cb3cd10ae2a92e2c48c3528a6afd69022615356c489ee5e5ebaac1ec4ceafc67724808b21c922c8be199b50ec644c75bac25f2daa8363afb83feae696469259ddbfec52ae12d437a589884b5afda9dd706159d2d7fe1707563a87dd48d8b32aef3195ef9a203af67a96095dcb91962e16acc6047f247d6c4bbb5f0e91a2b8d1352988c8039e0520173c3f04c9dddcebf1c491db4bc592f053", + "07da53dcc3d44bad521dc70b139df3f5b4bea69b99203c5338cb07a5c5464e6f6a23180ae89d21fdb621edb6bf6c1c35229f645e85ce7e780671551acc0daae645f9b5c6174332abf6edbb95ef64d12ee981b1128225fc56e8ac945b120b2c9221dd5f88c89e9bd1d269eb69a7e084121a70d4aaf5ae7b81830ebc613e2da5bdda47d56af408f1ad313517d997df8af918ed43f9885d5eb95dc943cc2367e83bd99d901239255b215bb8186bc39660cb40c10b0acc4256d6e2eb0674346b070b0fe2fb6d962207361947a1a11eb5aa449d61ff9da7", + "055501323f80960114", + "06aab9b247a7ff57e40149646da3ab3e3ff18e7aa314825409d089f6a04cadefccefea9f20a9a871cfa312890fff149c7bc24e15dcd1c27a841585e53a49e0dcb782bfeb9fb1153ffdead86fd6eae4a12d3297719b810c7d79c491ec8d28343784715e187d5e037619401cf35cec0af07c7c23685a629d7420187a4eee2c5d319b7cb0388e71b271c247224377366ec6d4862fb601b4175a570c160ab49a7f59dfd4d6ce91885ae8162d62309f419b69788057f55fcb1ca3397c4df77e70d644b1d6961703a3d5acb57a54ad48e86f3ceb3e22f847" + }, + { /* i=6577 cDividendBits=1405 cDivisorBits=1178 */ + "1615962022fe52a834274708e73e21344fa9650634131d5163f89a8a01c5bc94543d0f5850467e7e380c7080173bfd99af9f63e1551e385edb2f902b59e873d7d4c72f1f1b6d0f942c26c3bf3fd7e0fef4f97c277d37c21574c865af0f4da6f9f9ac64d00b087b9337af585214026e77b1714d1fdd49dcb0324ea8322c2d400d6cfb8d756647f3f8cac3b9d79066f40f3a36d2e430fc6497f83387f6d9e784924b56984ecfeeb3acb36eb6f551e96c91", + "022b2c8bf4645c98414958a43fea854c8d8053bba3a8b21777482458ea72e1d9d69187487a4e3214e208f97912a168b158c1e34ece67540bcf7e0b366de51ed5f97aa4e8b468b0b44e2e6b5f95bddc55dd55834e234d4b74ff3ceaddd44bb9f7ee4c156be56b97b2564f434abd3c06d61c298b23fa06357e14604b4f904952024697008d50fe4953b2b6bf97625d4f742357125b", + "0a2ef689b4ae1ef7d0b817830f81a806ab66dfdad569cac1c22ee853ea", + "012858f4a204f7d9040d501b0e48744305e9b93b7100e31a4ac017cd1d62f03a2eca4fee3a3533984372428b101d02da0a8e5f503aecfd2b0c531db64ed6f0b1377f987b4f1ea32a44862b9c683c4f1f832652751813fe47749b1b9d5ca965c2a5d70875109dfa814cfce45f4bd782612068ae062a5ff4606db335ec2b9622486f99c5c983958d0d5bcf73f76e273f2ccce72463" + }, + { /* i=6578 cDividendBits=2878 cDivisorBits=965 */ + "08f9c59c1257e362aa01bb41cb9779f1a25f649e36268cba5ebe88e3149bea48207b4e9442941c4f60b1c1a36f60bcb29d4f6625cd17156b3f45cce37c7adb050eb65e19c7c08792f4757a2a6b109a587eaa5d9c9c839a0bd1a2b3dbe2d27ebcb605c3258c440a5b12fb8eabb0ba617b4aef61f9cf4c5b29ac3707d6d2ea6991b19a75fa5dc1f63d86fed1c2b44d06797669a8ffe0e72dde57325fe6a4dab708a266c38022db48a1f3446e650a2f04ed3a44f80ace8851f560743415cf91742350ebc1f661a2f64811f358104488b2eb3ce1a7715979ae30267cbcc61a0f5f660a45f6981ea96edc56bd6ac5d1d3b82365930dad284500a83ca1ca8652266f5e73b2ecccf352d17904cda373548154b0de9cb993ddea7a0ff4676cd85989b8330f292bc982ee9ba4d11e75ea20a511766da0d3cf4bbc3e42c56b2dad6e90a1df8135bcc405139f012fe60de4c875d8da1a7d0451fcb54e6aee2a6d09519acfc25434b5d60f2ed03a", + "135f172c42fff05a506260ab659b3deaa8035a36fa423e0e8cfc709582090d4b3e1f4b57a6109cad68c1021167f050c94e6af6d6fa66f39f8cc4ff2484ad0d1f2321bb98ebb3fcdaec53af9d72530afab54bf052b8222f74a734d306f6e5b3d8e15aee982af651645b93862b5cf8a93359ace37e36a1bbb85b", + "769dce4e802269fbd43dfea6488502380b989091b311d83b206b9c598dd611122a80f4237b575e639db72f3b6853709e20de625637d8aec08349fc912dbf2d81958ffa5e9fdc9baf55ab176b87a28dc1b45df5f1056c18f4b596304edebad6c0186e2c2e03289a437048962bf69c91838a32eceff994f76b3b78fae1198440c1c8f39c68a0bc4eb5439208e6141744191a5810261384f5e34c5df42ec0adf6c515380c4dcfa151e2f21d3a5c4db8548e46f1169857a690046ea1a32e01e9dc679239f3e5e0e39b1552e41e06e0c3e6e18c1b669b55df2a2c5e4dc79fc5a9e9c71dbe37652967589f83f592a780680a", + "0edb9d5b3112313a24cdd43f908db6762393f43de91eac0e90eaac82cfe21db389c95f9d8716c1858521898fe9275f18ed469bed8d4ae750b4dc6d9e62ec61de71cfe84f4803446160dc655244ee3e335fa1da0fd8a3e20e875a9b11f0510b506bf30017647c41e84630b1e7ae4e4bec27a92a07f9f074a4ac" + }, + { /* i=6579 cDividendBits=2706 cDivisorBits=431 */ + "4d09d4295da96f5d7a8ee7a256888c6a7df60b115bef382d04ae54545a35e9341f40394be07f1a476ef355207040a3283d6f6d52487bfc8b1acecb02e64d86f244f1110d344bdcbcbd4f75a8bd474ce483ef7f47f4550e019611f533bed67425eaf5c039a312980ec357778a306ea4e080bd5b4eb4774f16a958e6ec59b0c68de87ffeb731ac9d13e227bcd7f0bceb47f5d528f33b90481412886af159b894789c5c2aa1bef9f5e2e19c1911ae967bb53a348a1a6713f3fe9502facd4536935e4b5900e36f5041903985780f94bf092c43b4abe676139a04836b52d6b7c3794ee21b5a9dde0a6719de2cfe229db6fbe7186c46c9a5382a17df9fa92c6f54966ca282a48757f551d77b22b1c46342efdf2a11d449170566f62f5791e4b00a17c85b800776a1bc2484d7e69380e52aebb5ac9c7fd358ae43b022fcfaa0aac4205d1156266cfd03ac69fbc00d7eca269c6bd210", + "274490057ba73e4145f6f5a7be8176e1d5db82f10e95410c6f22daa29151957a399d6b04fa91985a8b27fa4a77c6cb5da0e584d8169e", + "01f63d29c5a35280c24c28dd84829d4b109ff03691d308ef5d75b3d648e54f3e84f2a8b5d97936911e62f9b70b26e15f2d2c00a9567d7ff5d730b32f38e8144861986b8bba2c1ce5e2a079541894e8499e91b64a8879ee3f81b14420c5bbcb3e04056ebfe8fd0d179db89b6b6961d178278225ecece6452b7bf9765fc9121649e7dc3a878934c81230f2c5d080536e1851b82f0805d753070e28a9f55fbe0129e4d722c93984154a02d87ea9dcd13b3f3592dbc2f3b0e769d9e7364e2df2d72250586ecbbe3c9388b0312ff19109b5db3c8eb39a79041896c5b757fe539a6de623ae011679d367152a7822c5b49506a300b1c46f71e5cfb9277f476a6e48867ef758f9cb44fffd3ed165cce9572c74ba9aa45dfc809e183716133c2f55", + "078995b2f01e194b21e37c3e501ca8e09b0be2c7b708d375d248f93c9781e71a7cdeaabfed9945e2ed062b2f4e0a1df92aa6cd7d4d9a" + }, + { /* i=6580 cDividendBits=1759 cDivisorBits=458 */ + "38579708f670e0b092782edb3d4619643f1b2755f5e912c4bdf78355a7097fdc9ee50cefcbb56cb50f43bf0b154c587928ba1333478d0caf5cf1c0cac8fb0a355b74eae9da861a9b9b6e32e8f501521f766e8b2b3a2f82897103e3d6c549db47e716c745eb41ee6174efcc74a172268d77c921523c27e315fae0554bec535727a1370d66736cb536df25e78be16d21ccbe35dadf08c1c25eab8e27aa215ff3fb288c6b69044015ef1d0d99b3078b0c9238bba810bb924dff3905ed9ca709ab628f2d0f605e4248b98f386f9e913cafc91f689fcd03937d70452e238b", + "035657dd3d4fb86a52a5ff4393569522162ec63a6f8e1d966c753ac2d7283bd8246c6794af529ddfcc3adc2f4368ad9d77e8757d8b06ac2a8b5a", + "10e1f64daedb5f1989afe52edec0bddec8bf6877b31ce8e1a7d02352f4d0076c478cab6c865886c6faabce1efe28e4189f9dc1779dc9caba27aa02453cb8dbb7042d5e580daa67398f21e28b5b4a46ac57ec6b71cf27528b64666b913019e5f06c5b18a4f3265875b82ad743eb4f777559db8734290446af4ba1dfc327934d9faf2f22456b4e770135d7433b64a91d64faa1058bcf8c942aec1ffc04c22c071427e6bd", + "0340ea8e44ef48addb2591d3e5d2e4542e9aa4a94b6f9ea55f5c0a8158155b00a994d81e6462bb78ec8952f7c0c5ef0862d9c0330600addc6619" + }, + { /* i=6581 cDividendBits=216 cDivisorBits=208 */ + "dce657deddd01a9aaa4aaacbea8f15439722d09a0cdd8ccdd481ea", + "22ffd5b8a623ee23801d07e657f1149b886a2829b2555e81b8f1", + "064f", + "1a6296fdb36f48b51385f5c5c53442658d1d3b00d4fd9976c98b" + }, + { /* i=6582 cDividendBits=3647 cDivisorBits=398 */ + "416e4bf59cd5d895d78ead7e21cdf8832a3f85f13bbc6c6c3cea99a4e1ae3186dab6c4d552fb612e7525ad77cffc5b4f36bd093acd190c8721a0435c798d7b05373fe58d35fa05eca00e83c6cfe0dc8e0933b03c0cad504a03d4241e918a561ac776ccf5453be1b976027c26eccecb1383e2051123519f89f132c8a644842c5fe015a9d2e9afb7b27779604d3b335f436e60824f4ff925879b45cd3ff0d50deededa9891a4f51b8810063b8bbb694c7e255cc39e6ec216b7b410295b16c42f6660e945d9663ae64a6ad9b8877f9f7f637483ecc2bd07b5f52fb3010cab16ae49eb3b87a5f7eb977fffce9156c5c8f4107dee9fea59ab67ef46105b714c6f9dc3a3a237dab2dfe55aa445660e8902d391564771a29d64c95beee33ad4c16147afc3e914fd2b9178b678e9ac66458bb90349a3e17506d030028ef452beccaa7095b0fe0a8344c5702fd71b0552237d416a90f3f40693648013588352a6d748849a5bf6816ecd77c27ce427e471f4deef0f47c2c4df5dd3be0e120b02ec4d9185bb8535c311c314eb002d7106678a9e666855eb60b1745fbac0100c1d63369adea5c29be22a0b0d78d6be97b27a9807aa7ee48bf45a14dc3d53ef04706abe8f213e9d3d41605fd3199f", + "2561878d6d3646d1adda064c1fcb92851383899903fa5b25b62fbbc19ac275ed07a4eed478f22fa4802249024c4fcfb8c395", + "01c018cab525f054b6d5c7b583a3305bae892cd650d5b1fe96b8fbbd4e62a0409f94385ec5db8d4eee8ecc91c4ff25a95c5fe6e7c310513db72d205425f07e57746bc23902234ffa092e58efb57b6f830372f88136f3b90c1cf3f67f31048d5994e00a0a2e419f0e45790c681a6a4aef066fc8c11d4437e045031d9e379948287a1243864a75499239da0c8d437c8e84c36c026f3dc8baaacca3f578851793b47df8b6d7999249547ef339ae547c78d7ef513dd9506260c2bff202a187642f661b7fccfd2b0a095a5dd21ae7a4ccbe720951aa70bb25a02825eb22fdea3db9c7f034120b61ff588ba33f4f7a8521875d452bd23074db38d4ab9b02bf4a5f1894a015fd00ddc9a1601da5810d03604e0cedfba1e6f9699210104635dd4eee2f9bd42d5ea1536cd77ec458d2850c908f05fd394882ed256950dd8eea623ace27390e68c794b442377d34800bc34aae66bb82e77c639ff9babb6d7435c8733fcf3adc06225551eeae3cede4e13cc3afd7a2f3a8d91050ca3ee3194b2949e1a3128a0402a500670d9976815bf88be57200011ab2ce37f49002", + "016e68a4f9a9ea25237dcd8b54e97184f11370dbbeaaddf9ae93a70eb60b775981849d440834cda0b123cdcc19e36559c275" + }, + { /* i=6583 cDividendBits=1114 cDivisorBits=643 */ + "03974c1393c66ad91c1e4aed2b15fabb32b3af3b084d516c96546143910f391820da9c6d85ee47c22c92fda9afa5b6914b6f751dd15d69ebd5352ac10048f3d63aa75ac8acbc1fbf52e7450b6217ffa69cb1945a41440d319c49070cce276233e8ab6f7526386ce65f699ecfdede704f0baf1c23d8f9602dc7f7c5f819e83a9913fe1d46852bffa9b6663c3a", + "06a127e6b326d52485879c22cea761108125aa41c36f8adf535c41866c4e2b02013fa671b25bd803cd87033be77cb2e7352f54e3eedabee2809a71260342449f4831e5aebf1121a620690823333f10af41", + "8aaad64d53f7b11f7daa2f374eb319e714f6c384cfbfcb6c04c989da5d89510c641ca5bef552f5af03fee3a5ea16e5e71b1bc14efbadd0ab8ec181", + "047518cc4406c89f8b316819043be8527cace543f73a4e57e80257aba317d1c4094ec544db0aecff90de211ad9822d36adc887fa7242d257671ec89ba1b859912de50ecd6cdfe124b78d432e29b9cfeb79" + }, + { /* i=6584 cDividendBits=3521 cDivisorBits=548 */ + "018a2c52dad8496c4eb664fa3a7092f045646c23d59f7d986ca3a3fbbc0c83b92abfae06ea6c10363870a5853414f3e6d2d8791c8450b69b4950c43f62c7d1821c382f7c5a69f24ed8dc6f9761867d6170a6f352ea2002dac888778c8fb06a15d24537e63634e767ecdc8765b1a7c4a3b93e6ff8973656b2322fd4dbc65c5fcde2186c035af0461270fb3ab448acf3427197336e63a420f88f59aa85feda6269de6cb1e0e4842060bad130e3ef685ab6010047487c5dcd8eb4e1ffb6515ad5b77bd26a6e3fbd10882ffa299787513d4a0a37a8938bb9decf39edb7851e806cc44da53c0c2e7a2b75b7e56193514c328302fcd77d863bc8043fbdbf6d6e7e086d69d4ea9903b1a4608e1a8c13de84c3da7ab61a7e84bed0476c87c521941363f6f6494db25bbcb3d2d2510c613cf6cd91ef374cdcf01012900fccc07457d8d06fbc2a36a3f888857acdaf705cc2747f794dac63221235f4ec765a8e17308dae140ea2ba9cd737cf3f70d9345fd087da8777c1f4e594883abb85fb60a4de5fb730478763a4150e5703f4e65983cc1f16211816dacc00ddd328b5ba7fa11bced08ce120d5cc0a3b3d3736acc6056ed2bd634c19632dad6cfdcc08", + "0b3365c1cf807ec80410a0b030b0242021023057de65e907c7e27f41adfb33ace969552b8d2ae87e17137461e7b2540bcab1308432f2f7354b502b0945dce53b009f7f7fa4", + "23310d1d08e52a312218f1e37d21f28926786cf687924af2a8c6d1ab63001e03d18aa439ebec6ae9595530c89887bfb7b3e0f36b14279738158610c4e0dd01df4a01241023b91b81884892e7a1be39e724c7ec18df3292afdeb9b378617012308d927383d6f77e4efa3db94f2271db36dada632522751e7bad48ed963127e37cab9e03612a3c8dd416329032fb3eb5be9b1cde5d5a9198492e0d21c0cd2120f01dfd1bfc18a1ab3b95c90ffe632b1f2bb59f6db9b028b165fbf25e2f9c12ca8b7ae7b0cfa7422a77569c168e2128d98accd1c47c741db6d14868592eebfbc180d03fa0e4dc05f251607c7155530fa35312fb4cb5265cd2bf49d640ac19dcff97032d901cd32702675d9f833e3c52cabafbe2b578909c4f7207543fcd4b592c17d17c97ea8d176e359d75d80bc8031ab55ebabbf70513775be540785524320a487f7d0dcdb45c4adaa327f74f7ab2b4fb54e66594347e25bdab7458897ebaedd0e99282860e8f0b8bc85ba12f84877507365aa56b", + "029c389a45b34b7085c6016bc08b059ac7a893bf3fef9c57dc192a12412e5e4a523037452ba0314197f2bb8dabf2033af3611fbe6ddd3631835fd6259da560b4621dc6be7c" + }, + { /* i=6585 cDividendBits=2902 cDivisorBits=569 */ + "2a9d8baf403f7cd6c09945a630477d587d73d195886fb331ab1ad07bcf1d126f27a81175767115df40d8ab08d767f62e9a6aaa96f7778138a9596c65f08b534ebe7a3951a9bcff81b89abfb0794008e51e37f0b52573075bb9f6ffda8a6f608bb35bae755f5a5ff9106d012e37c66a7a77d01b9e433282d3dd72b4ee868f1df7e1ba0fbf2a28ad6603a3e313a73d31461d7af55c181a1c5a9f05ba15042d8ad6668842fb943ef1bc595e53e75dd38991f9019a0096b1c2372be8e3897f4896c3abe2fd9de12a32bdcde3a6b5c0357906cc42861ba73e1dfa7f36458b79e370d8b446e1b5074f806daba3b53c4263fc4a83ea93d1f00c40330ac48e1319a09927f66a92bdcbfc1851151de77f398036f6c543ea669ff621092bd3cfb7440c1847609b6b3abd8c7fa24d46297bbc06e3b74b103aebc8764e31d36f9cdde48f6b04d22fc1fed5da5806b05fe97ff96b37207c13ac640457872cdeecea9c42b03df4074266b1aa95f923307bf8", + "739d2dfd5221e9af4504d4a447cdf3cddc377f6478fe5d80369f93991e4d7705363d067b188f3fb4bc81b148ba28daac413f7c58e36546488be7d7e7d7a471ce53d514460ec16b", + "5e5ca01dd3788795dba6faecb3861fb3925e3d751a2e791d160ce166cb242a56250e3f6f9ee01f99231583a57ce497476de0bfcc578a793e706a016e3b7adf8785a73e3c0fc66c038b95aedc62b625655a174c79aec7cc4ed5b9fecd992787b9bb607e91cb23efb1ab5bc79b79df950d1a1ab0a3c32561650319ae057969318408781f9a47bbe60ac4ae1f63e5bde0ac2fd2257080961a5aaf90161dbecff1a6a09e66973ee9cf33a1be45abf1c2e167bedc67bf679af14e5add8baf43bddc153c744bbbc01066ddd7232dddb2587294afde41d9818234840ef54acb363786d49ef9749d08cfad1760c6ff725eb6ff4c75d58f423ff8b6873a76209b807791a2fbcb3453827edb41444c42cd791a979d83a93e144cc2a5330343d922691c70c1592b3c6b", + "6e496231d9169d1bff6f6444394047c0010e2e1db82aae841735317d1ea662dcf8e3b6da81e656665a528f7652746370b9cd4d6561f1986c6b101dc9377039a77a3eb0b5b7903f" + }, + { /* i=6586 cDividendBits=3773 cDivisorBits=564 */ + "09a8a0d51be5ecf493a3f977cae47b7e215505800bba530de521aeb176c480f8cb145c47b8eeeeaf9e4ea5b6e36c5b97b45685e1af4ae1edba07fdda019a2cdb4d552ebfd65839f4c6964c9e39f8aa30879640e8fcdd2d16dc34e961c09d95103ea4643d81d5215c38692fcd946a3571e2a6b11e044b9e5cd4855c225b6a9e638d21a3621d1871789258cbca2e6a5501060e8c94fcbd4a409302a2d04d7c8d7f7631b234dba297080e6f61763ea06342e82f67b4687fc4cce9c273272be434f438b3c29b09c1eb1934f39e27cd49243f5267db902869a2659aa75f51265746905f85834cd854ce45fa83408277deeb7d56b3529e1691b35885d6c1bff3792b84c33448463a1c790b55b5d176d44114baca99b25b22d7614a684997370953ea81bfdfcf142aad56d3a1648cf376d9049c2a1b22d14322cb64e111faff96824ebca50b4c825613c6eb8b71429d46a079d40a23cd91df3c80bd8c86b0c10d65a0fb22fda6c2142ea6b8923ce8a06003cd4fe93a4beac19a82e113652a6d81906a2209d3a046da025a2e121d1989fd1bd401f14a33c0e07765844a6a12bb7147cfd66e51ef2d56d55b0ca84410b8dfeb87188e9a7470bafeff22508c6fbb09648f985e708aa4150607820dd81928a3ede1ee8872de5e87d33904", + "071e739ec0170ec3ee952f15eb3fa3e413b78b4bb92af9ccff3fc76d4af1a3400c174ba72458fa0d40b5d11a25a959643ecbc3b3e01470223bf5b958cb347ae49a391067d83999", + "015b549431cf4beab32b31f223b3ed06b875eb48f64c1884e786d1181293f321308810368b51653184d91e6262657298320bb6f7feba41134fa801db3897bedfd1b62ac999c7601e1bbfeef27c3ef883e8df9fa2e3dda30c8482bc9282f91107d2a62f22ceeb8ca6584a4382babbc7ad0d04bd36d0850b81daef74941b98257290e6f91c7026bbd8b4fb8ca62c027a73adbb0cbafedf01b735809add8e10eaffa5557b7acba280652b2d20462fc09ecb563a3ae6e404927cd9c7edbb3072f5049a55a27f12414654782460203c31fbce19a1d40fa35f5c896c87b8407d09476611c36f6be30bbca3c75e94bb393283b2e0e14bb8492ea184683ead9b53e13527817804075e2c8d5c8b0258fd664e59df77d30972e191f55557c0dc8a70ce7b18eddb5aa992243ae5cece7bbf5f6a8f29f804ccb2a389baa208b49126532e2816ef0d2f0ecda6fe89d8ccce53be468047b02c1f196553c654d6a72166f15cdba0697153fc39993ef69933955caec8fdeb824388a452e95c037e15378d1cebe64bc1a160effc45aed3abdaf3a87e71560f4fd2", + "01ddc5f4d7f836d163cace6b1637f34cf0873c5001bc92838b11d0d4d51678c3c364d8a9208c6c93b7ad0631cff9c3b6b94eac0d8182a1a69a8f1a92d6cd2845488b4fd8b6c282" + }, + { /* i=6587 cDividendBits=160 cDivisorBits=48 */ + "11832391364430e73ae99237a94d6da02e5df361", + "de6635a47cc1", + "14287707720f2b07888fcb962431", + "6767a440ee70" + }, + { /* i=6588 cDividendBits=592 cDivisorBits=228 */ + "977a052f424ac2100577682444a1029fe6158f50518644643231efea3c9493a517113198355a6ea86151c79f5d92e762786f9f1e2ec7368a77d18dec8284f945cfc4ada824cc2ee2b472", + "07e7072ce36a58b3873decfcedb0d95b43671b8033c0306a29413bd96d", + "132b1619b7712968d07c926ed329a95aa99d1e91f1d8f9761004d010dcb7c46806e0d9dd3a58445245fad74c13f0", + "062632beaf495b37a2fc9402c41862fc7df8d60b314f6437767e47c742" + }, + { /* i=6589 cDividendBits=3651 cDivisorBits=2488 */ + "013c4f9fff45803c667538ba36a2974e7834e3634e1ed8078cc0e61a746221363f17ba7dc22cabe7aed0fec6c7b396291cca9f0c92441c76ae6396295f08977ea9f629909ea49eb6f5b9518129225a7051671086406d6fd723a224c94d1db17f858da5fd6f5773a50b73d08c016dfaa22b55e49854997cf92eb8213df5df5d4a33d1281eff0db91b607b5a1ba0686126763d2745ba76021d79d4b778eb6e847c01511bf859a393d0d82846a4015b8741a661cae1193edba7bb47309f018fbea6567510b893078e5e700584bf4a701828054f4519e732cad5124e7609dcea9a7b73840afc0d1342fa358248ee878660b85aabc03d8caa0097676b7661f263159cd76b5dd066488cd1496630f11e429e9b5e5dad28537b4b520c096675cc0b43ea376beb9779259693864897d0bc548f06fceac2138f7f6dc2252073782d98d99effb8fed005b68f4671fde413e760674346028fde3d300611e383c381aef44e51ca34cc2aa331b518cb752da894e8d92e2ea66ccdcf0c6ff4e6a2024ea6519d51bf687fca95ba4236c1ccb9586887b4598afef61b61ba5fde67f427f11efe2d4b25459e21e904108b8205529dc92c1a44297568366bb933699a215fab7ff16c87a9357669957e146209", + "9c6ab30a0d30677abfe9b7e92ecc9f3b247ee382d542251be0f6a7c3e19e2e0d946eed9c8bccc68fb3bd226d3259db5d60f5f9ae17f27a46d1219c93df7839b2c246932ffb7e7c52236686399b9a995063bedf1de9431db294ed1cf5bd3f6eb1372e6a894373c8ee960ae22dc2e3191d7b8e808bf4ebb50c08b1c273d4ffa04b96df29b47600ed54eb2f104dd4e134012b79e97d073d26170847aa9a867e6e0b51fcbd9625bf1837394c515ddb02c5c7bd76dd859b81722a2c6cb09afef2b334fb8145eb122829b1cffca2d4c4f7e3231416696dd46903c3b17e06d111eda1434cf49fb4ac20251d7c648c1db2a7621b18a5585086ec675c278db67ae66ecb122900b156d0e5ab74e7d5a4a02b2fe2f34b2c29030d62437629a7d7e8c289fa57b9cacc14d7979978129438b1caeae6cb2158d3f7db0ccf", + "0205b0fdca049e00dc286963649ef9d4d145cc2839d5c237769c2c9e82f63418391743e2963ad4d13ee3502897a6027a0e2c7e26f5ec02c0ed43fddf1d58e25b756a6733fc867d4e8d11bb3a711a2fb5768ba1e3109b3df40d0ee5a4087bccabfd9649cf56ac09e8ead9f6f772d35397acd3053619dff446b309c4e8e5e126a0c5c7b82e124010eeedf6eb82058bceb17618", + "5fc9b17063a8d0065c33fb47bcb5ff39f57085399d47b4ba56bdc080041f2719066ed98b4705aa77cf4f6564926d9c9494c88d945104f5f0132a1a5defd637d79acf1b1ea1cd7326db8f9d021a1904eac9925c850afa8dfa9da72dadc1eace8aa0a08ec15cd10dd7a985f3b6f62f00744bbefd72f8219bc17a08ff3f8bbe53c6ed4c05fee098fb4f1f549008c6098851ac19d3ac3fd35dc334146b82758d8975344ef35ee98b483dda5aa73284f935ba29e4315203fdb88702c7950d177422753aa8e998ed22e2adbaa73a50b82be56d9c4df4e764641a7f64e0897db48c20b0635d468a09eeda4b10fc79637ab92c19cdded2a97787d5b9a1b2ea4d7d5457bb2436fe03d08ea99fe1768f7f76c7f7720fc5be0d4b2a7d850dd20922727f3e9bb990fc4a5aaf8936eb24cf2b4b96046e15bf4fdc84c4a1" + }, + { /* i=6590 cDividendBits=1637 cDivisorBits=1599 */ + "030ff73a43c3ce23afb809586af972d0313b13d6d2121935f21aba4d0e342df8d8a041736c5569706f5c472124c2e3a950f2c55c913c0aaa8af4aab7de3c2ac9cbc9b160a568be6cb57fe3a1e695d626e4e287a4069fae63180f12b04ebb830b9d92415384fb76ffa06cb3d6314a310e182fe4fa4a8108aeb5a495749b3f099893950418c97d8d3ee1b405eee7348ecafd57b800ea7565b3da84591b0b441d5a1d34a8e86b1632c475c3fd8607430a2d8adb0c3c60984d12fc91c7187e8386f28e90f095ebeff60d429f7f2401", + "4372ff862154e574b38eae8e84f24e80ea67a6631a7fde0bdbef1fd590a12a7e5fcb226b566bee99fb6c1c758f6b269a2f44c0e2d2aa208a180d9397765783082c28aff49bd69ed9c0013d9e8886ee3d8b86ee7db316286c266cb51ac82b0f54de013de4101946f3556c39caf19a2a6479ab4d452cf1be36317418ec38b7d3bfe00ae30e40a6ad4cc006b808107545447819bc6e75a0b4350ef1ed284f94d1281e403b5995fb7326b2071cde2f7310af7296ef3ead305dc05bb74b0ad134d28a32b68b9a83e4ab39", + "0b9f806004", + "15c5981d6fa9196127844ca8e55a8a7aa7943d1ae6a887e251f825de1363daf812592692cb5293abe21136856e375082571232cacb3c9fb9d09d878fa1ed5ad1dccee71ea9c912cafad96f23cfda05bfd51b7b23eaf4fd389455af6f6175d414c31eb5dd6a5410a10bacac97c56c167ad57dbe6f65ad418952a3fdf1162e4bb1bfcb0f249e8059aff425da17c9fa1d290e23f775b70d789e466c529a5c4b069ec43021e8dea78aa157987fd7ba9cdce9363e2b626fd892601de842d234b8bd2040c19941cc37171d" + }, + { /* i=6591 cDividendBits=533 cDivisorBits=468 */ + "134e847b198c6a232f59edb9e1e6763868b4788eb60a92eff2683417d8ca48cdb34938452eab8f67aa4c4ec4f67bbaf11bc945ea74070cc3bdff9bba8a89e85d4c34c3", + "0716a34a6b988db236a562f135845aa8ddba23a9f94d8b38639546b4ee995984044a9a156de6ce2e0ddce7685fac3982671274054f537c6f95b9c0", + "02b943fbc8546a1e14", + "03cad129fa99748e9294aac03ac2ed6a82884889da77fb922852c4eb04f048e13f363690b066ee52601ad5b7c17aa1378aa6244713bc2a305531c3" + }, + { /* i=6592 cDividendBits=1223 cDivisorBits=56 */ + "4c94b236c5eff400a87539168ca183a1be2d392b06c5d34f7af07b0d27648183b1afcfb8908d9313fbf85deb59b86e68551db0c028bd4895d5579fe8e569360fefe58cae4bec15197dcbd94bc3b8b21d564841e0ce0ad9217063fa77a830677758bfa0e4c7668f362ab06425e22cdd2db59465ff1b1bff113d1e2960a0e20c418b9fe96c0bf71c13cc207c2bb3a2c96b78b90cb015ade52cfd", + "fb3225eac82f76", + "4e0ba28e8caf25cac10f9a4b15591ba80d96cd57fabf67ebfc187fb6206d0bd0062870cb138e79cbb45176be190b19849414cb8f76d1d4561163c6f17f8452e76514e313ee1a1c1622e248c24584bbc455a0a7d5ab0daec1f85df2c6962be9d53482f6b26a50dc4ab044362f2db6111e9e733ffa04789f43bd6da3391b9faa3e0ff6e69e7c15270cfc334cbe6d2d4fa95eef", + "a997ef3cad89d3" + }, + { /* i=6593 cDividendBits=3186 cDivisorBits=139 */ + "71ab06617a61fc720fcd392ab05d8edcdb743c0dd336bde7070842ccd3e61b5306d989c461fe17e52da7edb769fadf356aa205cdb396539c5f171607bb54de5e862436d45b819113ad2a499f6208080f81e3d69f0e66167f8029d2d3da259c3c89888e410ad1c39fb53d3a1b68af6a6f0b2630eec739bfe2bad25bc0a3f31f6e5e3e592629cf6d7ba6376068a0a7c50e48d1861d7de24b39398d848d93339ff0c749df5e4da8e84bd394d2e166abe5d65dbe0cdddc324cf2f4218b0a8ddb6601c56438a92dbdd6108ec2385037fd809131abada5cb050e2a97b04f43b43f43d77c9f24062414e1d3b591bf7c91fd634e3e0993fc1175288a483dc7f8f75f05bddb9a98231119e20f0ae29b55848400f38ca4247149d943856d96a443d8da288a322971205c61cc063a140465c43a01ca00bb024828c27f20019313c4eb8ea42ea97ef992b70e24d996451fda1bcdf8b61c78cb81c1c1d3a31d6157c893b83ea0dc7044a762ee9706e09d2f2c43182a6818021c7ff2e20df18a4becb653c08d692f3a3d6a1c6c44e016460711757f", + "0746839722958d296dc41663ae82a7f471de", + "0f9f9efffad06e8525516ad33eb03d228b76579dda8b05692681c7d521dedd8eeadf27c57bc11b4f5927d46758d5a4877e6f9c429115cfc59dee7976ab0cc9502f1f57a2ed0db5f3e84316b953cfdb3f9b7f0bb1b483816492df9caba7c9b072877a2204fac7512ffa98f6a06e845907f3d196e899e41f7c0f1e2d4b5996d6ab56c21af1d58655a3dfa3b2c65a3bc13456004faa91e71e2f49a3f3d6d66aa088130e6d8b46a3e35721032c96d6063201358f4bebf84e3feeb69310865cb86fb64e648b849803734a0a8e32ffcf36e4a6c27b936ba83b81602cd9f2651572de1f71049c65d4383a1dab903fae9b51ebe2ae76332a743e3586eecd8c4cec916573357e671e1ef1664fe05d412ee63949ff24428fd08e89fe5c4e6486faf45a11b9882e30e96c3939b22d1d2911c9d6c6e9c60fe94155b158878ec9fe375b53491966260842c7a6cfeb8b54395d7cd9239e4a96f1ed7a456a09cbd2778cb67c9d72fa0cb9462cd88eca2a1ed016673cbb32c4bfc62787aaa17de1d84b647d", + "01a069ea51fc257d413905fbe80fdc312419" + }, + { /* i=6594 cDividendBits=3205 cDivisorBits=255 */ + "16e9a27947d822e4711beb4c79fb82699b9d4d1100c30816f60d737044cc304e62797c6585626de6e7c27959dc21420c8fd202a7b72fb62ffc300a0b5b627c89837303098616808d6c77cb20508b5722ca8d3bfc2219ef59d3862826b645d5991341cae0f40e149ab0b5dd1bf03332e2add2d7656aa24b2873b328fafdbf785e36f7d6dbddf750d0b6c091316190d60aa9a1c8e11a8cf5e49aaa96fb7382b1d8c306bb5f8753145a5faf87b7a8471515f8bc6a5ffb9b71880499bfa96ee81e0125b8090e477490d470a656c419a53a7274d54e1d94c072d9fb6ae79e835d9c7ae665e5895bec524446b0fb25ebd8cb2d835cb750690e504de32eee14d15033e87ee8584116f0ddee60d8a021cc091969efccad6d38f2cb329955258961223cd55b3d803c4840b5e63cc59abdc67b526e7df0c1995b12da6fc2dd02f4c1965b11a9ae809cdcb577017709a725ae904e2404ae1af5d01f866c295d1065257fcba1b5c02f499011b422a253a369faa1de1a08b60f6c422ca252dcd51c048e6d0a64a85fa424f68eeffafa4a0d3ec26cd43d64", + "7be53b97f84d5916ce1d596817fa82f0ba4be694a7fb53394fea3f35816d130e", + "2f57eac9a7b0474581502d15546a4cb8328c4e06dd7b28112c4f0fc064af9eea06ec6cb4cb0babfa0d0d025d33c0dc1ce03d52c19379bb1425e0256cc3c1e07aec89373462340c27b8eae3811d68ed9fc6a707eb4ee44d3d84159bfe1124f6b762b1bd087577a78ae5e039a5471607fe1e9b7aed33c15f4b9795a81e38c479975238d7099182318d7d8a257948c8623c26a98dd0a3cd8c0e2adfec1a0b376f10989749c323a1bfc2f6774d79ecf4087261fa5225b03eb840cfd816543c8a1453e1254bd2e1efb62f9ebd68458bac709df4970ff6a47355486191d3871476f2c519e6972d1f62eec6660d8070dded0aeb0bbbe56c01ed72f8552fbb319ad1cb60961d42da0609038f26da7204d656988b1f5f197f338cffa4d967744b07673a6f56aef88244472c5ab10a068ac13f3d628a9d741a2f9633db9d05d9f23d384d18f674b33690ace4e453e0d52d29a8a72d7e5cb6aad7c03385cfbdcdc1316fcb0ad4d3cbf6846001db3c5a701c5311193555", + "3d4ff28c4780b801bccaba72a5dc6c7c45e6dfaddaaa5d2061cb96be144d03be" + }, + { /* i=6595 cDividendBits=704 cDivisorBits=351 */ + "0238092a4e091cdd89880e0b6915d6fdbeeda20a4bfe838144dd45833a4f534144c0d173b73cded2c7567fd446ea54baedb780984ca1feca2ac6c8be1b70d0ff681f592141a28a9f04326539c1558eef049ba843ed308e65", + "249f9acae84954f6c6c312abfcdf177e5c0477afa904deb7cacb4261b96d829342a8eb31b2cf8c640fdbcd7a", + "0f829a1a8c3676bd06f45fc813f9b766d0af608962a0d5bd98a8710b214f8afcc16ff767f65fc1c0156bd245", + "14d38b43b50f302248368b54c0dee275f953bb3db1a82c7026b45c566e3160147bf86b7c9757fe0f74661883" + }, + { /* i=6596 cDividendBits=2419 cDivisorBits=171 */ + "04cdae137773b40f7b156c291d8a9a524e77487909acce0ae44082821899d6da5593950fdfeb605a2e5724d12619bef7fbf9b9d17e3e26819e73521cc9ff2546d0797599f26b0bef9173c770940a48d7911b8f66ccae45d8daf47ffd32120ba4bd53abce6abf66d4243366cd94db9350df8071009b1b34491aae2018ee0c132d8a5a7b9bd1a6fce6cddf56e2d5291d6e57f2750d4620ff2c4c0e5499cfbad0853722a526e4d8193c568dec6fa9ba711a526d0c55f387ccefcef1db2d476e2df66399680cbefc89fe58e6c6d32bbe973d689832c3ce0e269880abd4431a203dc043dcf386310fa42e02f70a0b7878d73034592cf4e6fcbff3fb0c65f82202f524af66681bd5818c2e8a9014b497bc54a675e85816399e9bbe5ecf8ff7661d73a53bc7538b8e3796c39b3d419ab011d2", + "052dd56a79a6f1e8a9d71c5a85df002d56f16a542c64", + "ed6f1ef680f390fdc3a05cafa0e042ec3fbe1ea197151b025f7e794ffb71f28eb3d7cc0a77cfbd969114ae1c3798e99febc01e4c529bc12c0779fbc28a7f6341429700ec2e73d0e9b048746c0bb2cef463cbaa4376c8fdeea562a4ecb8521a203b336b391fa5facdc3e656e700b857ea8fc4683cf8a330c8092a826210e5e8db69cfe19612527e19bfe277293787713499320e1521352c61a950e8d2cb23ac132cbd7d18e1feb43a19493386d8b558db5748cc368aaf9a4eee5a5da1ef49483f3f8165b563d5e8f1d5db0084ad14d867cfb4d6d91c14a757912eebc30eedd184f136804f9e715cc5a178fe9c9c295468aad0225cf569c60939757fded6f3d2055a89e3f286950c23b1427a887939a1e9a94e8332d780863c76", + "01f25341953f7c7b3df6a5c8ef6bea4406d1a1242bba" + }, + { /* i=6597 cDividendBits=2107 cDivisorBits=1748 */ + "075f83cbb6941e95887ce20b7a8136e522585234a2ac351d6c20d1ae89e54be44d28aeeab82e8632fd1eaf32a012a28cb55b30146d897c6e6926835fb34d2ae07b771c7857e1b65403e85149ee4fb35c3965671b3caa30f26e3d528f768f5838d579cd6eb7a81940c8477f8d2832599d10f17052df96db1885bf4761542c99a66f8d1ff04701429b2e114ecf54365e378a74be17e045aabda3212bfc2a076073c4c3561bd270c7286c3a5b17cd0e0ad678c14aa752cdd3fa711bc24aaf3cb65a9cb7309b56f25dfa17a57f8f69d6ab5c8c606e77c6bc77df1ac48ab7b716b5f77d9a599efed88a89f60d4944f9a69e77ca7ad186361390ef49042b01dbf9ed0bef1412a77337af99", + "02f4e043c57052c78612000a4130a4eec8a08ab2ac12f41f4edebf93ad383d1f17a3afe6af26d6d63b4fe7a9c88ca94288f6a788a51ddbe3fe64a8b81fab29881addc278e9d28a961c9858c7f155248c4b2c84e022577e629f23d9a9a33a556b3a2433ca5d5b3249b50bed255be14a8f81a7586bfb04f2c241263043fdba8f8c88681a91bfeb8fdab747ffeee6b20208fe534c2ff9871f12a3548a9411ec80255abef761047ff92f9c92a716c37984eedafc5a348bbf7f720e1c545f6c27aa479c07fe5293ceb6c1a64223c5b963d49aa2d4c7003a5c090f1001b1", + "027e6b2e5d518505031ec7015e891f7aea09e6664fdf5925538ff98f2b9c7c2627e0131e6646715427dd3a0fcdc8", + "c0e058ace773b0cf4e939c91b4065d98257c0da555f432e56bdb0df18c2ef7f9c446fb0c74cef59f87a7a590016f708ac87558fdf6fc7c6523e9b5ba3b576fac7663d71273370cf13ebc9b57c23c0e765ff213a64985c34658ac7bf2492a7154dcc352e9f5ae776b6c8bc9f48f1ce973c0ccd88fd50a9af9f6789f099f9cd77e6d0d99e62281e501618328e4540d2c892e7665553cfceabd8760faeefcb28fce8ce78587697509eca65128d883e58d4ce296a9b9afa54fd17df18b0a5e79c9512c2b5c10c5844ac8fc470104f65ffcd9469c73affb64a9fca051" + }, + { /* i=6598 cDividendBits=2404 cDivisorBits=784 */ + "03bc282d30427474c7a3ef04d21defaf15e30a555d8dfbadddc24489ab60bd37ff3d933675a7a8eee297628af3a165c14d408624570ab5f6a2fc3926a0d102578921047c8ae26fe592945c4e9bf3d8c52762ba9237bf8da478f10e9325923d7359519b4df016b31fe436ffe32c1abd025227a9c9059d473eb7756c7da9762584b5591bf51ee2a9d3cde54b539d4006146309c58e680823f65102899caa864f1ef0b98e263927d96917fc7a375d85cd95f2040b44b7581cd77852717960e37d4e24e230167af7ae6aa2232f90e277d91548bc1ea79977826abd8253624fb49d336ba7fa46a8881c9b0cfb7b94d6d2e88cf4a836d75791a22ff73af888bad923256966b204a9f990f4dfd09884e39c295a9b3ae69b4cd3dd2161ce83429be8e1d20c6f89c9aa8dbe7b9c67c98381", + "2f207b9502c967c2479dc6c8a21e0ad48a3c1fc8f3391d64bd97e284b02be2064111c387e7fb9b6ace222c604f6d9a447ca0fbf421ba63766b4d84ee901c4b52d62ce6df715caa76aed4a5a6ca9bd71a7fed895dae2b8857bb78c0f44e9d4ea324e2", + "1449fb491bcf48c362da09e84e0624244f176c491f41965736dd0b4eb29a7356e36ba931e5e16cfa93fe37a3931b3b801842f165f650f6b15977dad9eb57a7c202d56fb7be26f38b237069c69665125128ca7610434280c37f9fda6a55dd35991a1a67f40a451af7c31ca2437b9b46f888d28e44561e9180ca4195cc88b51bdefacd063b7ffcad6b9423d3fe395fada2a92acb7c70bddbd7240e03e18f5ad22401ab8e45f26a020f2630fb0fe7419e18009cd9d31399743b38d5bfacfb8cdf7385f9d33f3fc7e6325f570e", + "2b883afc32259d2a29e0b7d40c26879e81ac745e7874f4f13d186984d44d9819e5b8c583ed1b79e1efc63dfb92338521f46a3acd9d5744e54c22b0dd8193f954d7d34fd5e464924d3d5dc419b615fbff0f7efb4832df801b8b83ea11dc7dd576b125" + }, + { /* i=6599 cDividendBits=3341 cDivisorBits=2826 */ + "0243ea3030434637004c65bcc7f981661e6964475604569a5e8359c4939c0b89ae7dec8b896f480735c823234af30885a5b1320775f9e8815ad37c9b2d708e229bd33fffc64c391f5d8cb2900f2356ca811eb9bda710d796f37090ff4caf79fe81dd73c58217e13d500beed5a500b184f9eebcb4ae92eec1d1212f58bb3181b11ff17cac1d391267fcfe899ccbb673ef2c65025c7425838b10a317f4ea96cfca0fe7bba9fd437594ac912a34874689838be62ab0b6d8b2775b330a797791a2bfbeb98abfb6477eb46c5a8880c342a46281390a035a276758ee0b36bd64b4241abcd21bbda1cf85692ef881886f8052c92a9fc2bd6d41c5056f2796ea0bb9391f0066f5b65dc24c00260a7a24dbfacb9831c11fd1ac326916d8b60574782f5d1c968b5a53447b2badc0326faa7d760c72efc15456293f75859824dca0a07aa3bf21d8ec79d783743a94e118539bd4d13bd9b6bcf92b21090d9b1e709b0b815cc5cda70d7a5229f08e10cc82b3e5cc1a65a96edac863df5c99927eff268a17e255346ab65d3189010537e88a0254d289409fa3c879d81629f07262a7cc540e3413831a", + "ec2c962d5bc0e584ca8c9a76b3141115739dbf7a13300b2ead7215266d8e13bd8f6e5fe537b86d23ce8a5889e148b7e305be1c8ca6210b7c9e999bcfb8ac5f5aa09881931da26442a7461f4183db9ad93f2db9e6d678d5043b49ac66111c284aa31c90e7f5ea191b26379bc7e25b1e1b1303adcbe314063cc389591290a8df4a1304a5bed95b31bb56dd1dc81ead6d7b918d5f1caef6c4acc78cc48c36e0db07b87750c6dbbb3fc5262f29b84ef8ee5d95c614c6e8803c7712198d3c967293f7fd0c7a366f7faa06e824dbed83d821d3e64e609219127e2e85c0d4e5a5396bb66270a0e19a1024eb5f5560ceb4efebdc1bef30247f753ea628156295f118e72f27f5d9b28b705f33df0d480eea46887e11e534bf8f71a1dc281c34ee6f307baf54047fcdd0ab28c18d584cfae8be412c2dadb10116cf632e1f205652579a8492ffeb6851766beed0be0e93b953e6db37cd4f79c7a68b7f694d7dcc606518d34a33", + "027498a1d88e34a4dd75e570bba511595316dbfb7f8b3b1718c40bdb63690899638894d84c87fedc98b7e94bc322ec2a840fd862234271c76f30604e1a55ee0cd0", + "67df41e734596ae2c0231f9a44114b8719147f18b5b65fc68034ffc14701035422e5e66314db08bd7959b523f975a350c816fef71d0123970a0aa635ab4702485d7fc111453c7ea76109a5f09794e505ee53776496107822f27a6f177f1e7bd2cd48c3d4f7a25f6fc2f11bc0fac8c3e0f47c84b9f6f7dd260125893713226b3545fbcb215cf0670878cdf068062143bf27b8a8e47fe297d4ea75cf25815b7aab78a89acfbf228a72381953ff33f804dabc6a107c73fbdc5d0d22ce4d24c1623a4f194b1889d7a448ea7421fd285ff8b7c480db17927b77085bf487658fa3d7ff9b8b9308a90e25568d34eb00ba289815461c2c63bdc58f8f46ba2290b58ab1c1a3ba4c1042cd048c369b4a4e501b2a4a1a744205e3b29bfc81d694c5169552cfd458800063e11832888babf98b2fbfb408191e2782349fe650cbaa4d2aee6b9a5dcdbc9ad4b982ded00aba37c30bfa2af3ae738b66292c1b6c64ccf5803682d5aa" + }, + { /* i=6600 cDividendBits=439 cDivisorBits=291 */ + "297b7144a4e3dae53b4ea4fecc25e5393a94cae1ee2d3547030d149d3e782378171eedd059eb5f6e23b05cc82c471e1e7fc11149734ba2", + "05e824a2d8fb3d784cea0322bc7a46f73092c7518b7c12892105da043219afcc13eeea3af8", + "0705d4a720ada890e0af4593a3f530cb9708ed", + "02eb838e5c71fa246652f48b771930fdc30b127a569fbf9c064ab0e32ebfe723ba587af40a" + }, + { /* i=6601 cDividendBits=2035 cDivisorBits=79 */ + "041a268b2a8fc28db6020f822355af27f352675fc59ef626e692ec383a6b480ca3db249fbd86fe33f25d6323c34a09e3bf3e30ee7f0b0e71cad3459399ea33ef1b1f6cbb427ec45ab67fddd6a5a6a85a560a6954f954ffacb3a3ddf7cdc160559492a23f456f1d6054977d48c7c968f2df694ac6cd3be587ca0eebe515374bc4b6c81c59554399eee397dbc4969752bff0f1fd447037405ba2ec3ddfb61af64740cb330277c07e3c9f3c6043b6bf2e5f5277e2879cdac8f0c044b248467125904fea39aaa8b53a1606f3ec8a0b21efe59e58e1fd2724059e355d0d180b2186278ca151d8dbe9a3a12e48d8ee152e0ea19fd198c3c4c92d07047190b4128ad5", + "591a8013d477503a6d59", + "0bc926053a6b5a3c5a9845426b7b596fb6b68c238e1a6bdc0c7d5b389cf3e5e0fa17887df2eaee138e66da6af9735b9a44cddcbfbb26eda82672d17711a4f13108c1e06ab3637b11c5de0d7a20e3e497bf2cd72bd0c728897b24591c0836c5cc24a05b4b635905a69141ce884f78fc410c69b06e45022365f012415946ef10dadd4538eba71360a593ad4deeb13110b5139520aff99b64b05fe19787995688e23a7b8db1b8e6075fd844ce21feab9e2a4b7bbed9dbb8858665dd9ed18ecc33e8f8eb8257cdda2c4f76724556bcf7f8dc022386405f996aaccdf167fd77271d53e6616822bc3020fa75b7b316b64909b9184a4b17fa", + "1fe477ca46c5581dc2eb" + }, + { /* i=6602 cDividendBits=803 cDivisorBits=735 */ + "015e942b407df0354bc30fbac81695a85b4406ab649960ed58f267d209f36113a8a8b9def936cf9f4e074361ba9db436e02641c6318c8ec3e05e1ea87453c8ecb8c44ea879328b6698df7021b5561329aab44fcfcef3220df6d09a6d723842cdf7334cc324", + "7a72691dbcc7f246d89c89050c720c0e1abf2c95cd4d9af53d6c4b383b8e835c9c3644247851a2f5a44364a94b65778db1d15961766c53c7c550b390bb89ad2cc6d4d470050659e20bd7ca82b21038766bc61fe6c5167aeeee6cd4de", + "02dcf4aaae261e0f6c", + "157111cb9ccc3a39e4137d553192239aff1647f1154154871c2ade502804c625dab9216f17f2fc163e0a0c37ff97052fa4b1db17da31327749277fd2cfb0190b5802e5d5af030c46b51b31d799c233117e755a88e342bdf456e5f37c" + }, + { /* i=6603 cDividendBits=2495 cDivisorBits=93 */ + "74a9cce762e3cdb4b6190e56ffa1b297c37590bf3ea12dee4a1998c486ca295a2b5195ae7d4e7e244581bb51b04e979446e7fa81f3ae32aef5423882cbea9f5e0d6912766d9c950908f7ab353d40787dd27e0ca70f44012437370d212043cf1a27a843aca710d6aa88913ed52251fbb45756c5bc27cf5d5591f6c620eff4758f87cef3e6854852a3b594fc41c8501416dfd4548e57e6cb095a833a28e2f681a061999c9c8465f030322ea557df468d0fe4f7329f3cfa5db983c9d425a09e3dad2526fd10b910192972ce535605d9e464fade69d68fb6e94edbdf35a56e847251634e7aeb33588425230da14a9fe77c2ecc0f19fcb5288efa9629c52b1d1fa5c910617f0183393e749093d47cf8378bca12207d9baf8fb740e352f567e8094835fa246e97ace052abf1631ae9139754b64d77da6eca8ae49f", + "0394999e1a42693de70a5b7a", + "20954f3e78bdce365942c42f37195c96b208f886bc916331af64b8aeac2c9571d5bf2dccf1a7a1a51cd8ddc987845e44c3f7c67fc7a6c7cf0ac0e1f8a9d17bd6c37a7ccfae78efc7c61d1b300e5d59b88367a2552b48e980cd66960c6bac9dcc97cf5188682396860fddf648cbf6008c3c06d41be9241929d4f9c4b28584e3c80126ea112b81d29f6bf50cde67080651215e6962bacef550e94171105e1346e1caadabc328f7dde2fe1904ae1071e95dc69b49219bff3ec1a2cef3c5102834c9f439d0b812f6784d44a16a6fba61cac25aa0199b7d962627ebf1ce72f4badb8b97ce2d4c015e8db687ecaee3c1b82115fa8addcf2714d75f0e2ea3d0b5e9b3e488c89f40b0d95105c075eec74be68bce357cdcef9bf2cfa4e8486887af11c51768cf747a3964f7915b2d661770", + "02cad6771f79c104e32ee93f" + }, + { /* i=6604 cDividendBits=2109 cDivisorBits=359 */ + "df8db6069f5794b2d410ce8cf7f02c3c206d13f4580be883f0a1e8a7e3c8356b616a3f8a476128e11b9664f0ba16d9ab1c4e65daa77e4147c04fba49130065a6b49d0b11bc0dcac42aaaf9178d9dd2853d261388696ba479e490024b45f3041485f92c92f3f99c443571b0f14b12ac9b2d579240151815aa7e55fc67a6532ef5de5c8cdb6ec6114e8ccb9e3091bd2bccf4319f1e220e2705b2cdd2a3b3d355af2d577a7cddff10b504a55e9e9469baf3d35b827e304ea2f779d5b3580a8f15d05230ca485deceeb655dfdb6f155ab571d99b1ced42216d3b27d2c35ea29af9096364ea55b12254fea7e2c394e8f29889a846fc6098de3739b9f10561847e95dc08273f4e5d255b", + "1cb289c6c779e59cac9c5d2cae1b270b2db8ffc75bffa533caa4d5adf226b3c27c2b982b12f7e8e10b42aff54a", + "07ca3f0860a471f45987d3d836acc923b78aa83a9a7b269df6fbbaf057cdfb59e0aecc16486c2bb7906d10fdf074d6a6033d01df66d304444ed05d3c310a706276c6498a7fbae39a4025f4c3af332580d1d1ccdfa5612622114eae2bff3a445575c30f84167822920199417284cb86d7062d56305fabc1edc8d34c2376f59e13a10ade1aba119cf89c22a3c0aabffb651cc0a745c304681a3bf9be68968b430567495fb9b5504d2a07f59f437b3bd053e4cefd7fe86a1b586c7288b8f7ea7159ea13f90cff4520f628038156153081031d0457acbfb938e637f46f", + "1099fe6477b45a998eaf27dee97c5ae8f133776ccf0af85bd32f247a334afee00516e263f677444b6f7f614245" + }, + { /* i=6605 cDividendBits=3948 cDivisorBits=1138 */ + "0249b008d40be7784f1044cae978e39cf33e1c8af7dc172d53525756e82223ec2122f0912ed879a648e33a56b6b5faaa82c30a813697dc5174c89e8f4d7744839fd5310baf994f00b04205587fe1e7870091465a1a9f4de09f28253a12549c2990c51b7f9e36672ce05262aa27da25aa2c753607e99add8871231c2aab66687f21d6b1684039d0bef8c2ac0dabd7ad33692dd1a9020969b8456fd723cd0daffc96557af9416f9240548d6ebdc6b72bbd0c0b4df1b6d384a222e06af47126c8c80216189fbbc8469dadf9f70b3480de961b4db306341d27fca27cc8e750e6e832a9d4cdcc0b7d8d55e196788d4b1e6da9a0db65d1748d7422aec474a1b69146428eb2d7469527fdbd27cda628d164dfda03960fe22c296cdfbefea0388e0ec9532fda1f858a70d0abb0d64c9afed5199f70865a013400214b28524e9290436599b2c8cbf3963410a89db347429b227d093097257bad44df5767aa3a74602d297936feae8d85f8dc9c3efdcddab14b556f8f0cc3c2a2976d30fb632fb06b111fb6988ba9975c17633cd698b2f1f9ed732801733b5cbbe2b0e9e606d199ceecca900162acfb89f9d0b1f9d1ac2489f17d6347ed811e6aa4060f99801cd1c65b70fe8a33a9be77236ca85834db419a2c57fa0bd8f0754f4f6fbe3614ffa9088c0194e9b02c2aa750eec23f127e327d99", + "02f7c3e34b0c6066a6eba00843bf50b890d8dbd88e166bcd6705987a09966f7e6100b5acc9bd821de8be55702958d6896773b4f2f1a1a4eb9e7366d807fb880334a69a80a9ee620a94abdf9c345ca60092615ad6681897e3368e04f62b3cffb2759e9453f3d085c2217b3acc0b101e72bbf9a2bdef8873ae14d4981ad218dd5bbd832854ad68f60733160caf89611f", + "c55860e65f236005f478a693b13d7543b02fc5af9187abac8429b89326a32bd051183601e68360737cf2b045653b95d829542e85350a006fea2159c842c05850325493c27db8481e47e583444c74e37919218bb079bb1f742204f1a96cf321a9d1652fd286ae450be7c14252afd363a4a671ef822addb67acc1fe2a5c1a4fbb15f84c14326a3d7ea1b593ab9910530a55f05f8f4022d70b5792d3297625cfb025f44afdb640879de5074dd98031bd154ab9f8f20d46873e1f3ed204ae59230a693fb6b704aa196b8ff9f7e1de546ee481cc29438272741c3b2328f620cc3efb7f3b1fbba72baa489e15e664c10f78b7a0b0b834676750d42c197d65a90a9449aeea473f117a90ebb168f2775ec025d970ca0ab80c02f67ea25bdbfe1a9a8b89dcc761ba93f4e26458356e2f96ad525d209f9084b3cb0e15e5ab24597cb4c1e57c7bdf385f52b7c01ccd26014892ee38f8e313a389ef3b2d811f5d2bcaaa043", + "94dfccef0ce83a8e956970e8f805f869558c56a202c3428ff6a5e7281df2114de93afe6f5250a8b1e68c8bce91a27bb18d7b7833439f6c99bfc8cacab18be0ed34a8cae56dfc47d59e6f4dbf38db2e3bb1318df6fbcb32a7a37581fdd767384a57c25c4619785c50dfe58f2de9909d21f0aa900c2af49f43bd66b14a9a3db956f5c41bb65d491592c10f6df4b27c" + }, + { /* i=6606 cDividendBits=3653 cDivisorBits=1386 */ + "08ce44bb819901a409929394b59f783ace4bf1ab2f9af86484b413a50af62e74551f4ab4d4ebc9d8dadc01aa9281af9afa630112142016760c4b9392f24844e3f1d8831c2dafae26bccd94b688d2eab80a9351d1448fad273050d026014e4b435034359205b913642d94440d46473c417957ed20759f1d1f4a9b06277581a327bf33d94de94e3e6ba8da233a81ce246234705073d14f29a970afb17c6402c7f31d13abe6f06098b3ae1e3d072282dd43d3038d60adb449bee8edf0e7a2fe70e051e19cc6083b1732256109298422d479273512ea9a88bab9f9e0eefe7177453b29a5911a751741ab30c317853894794cfb799ae09f7eb108db21a1dd66f749d8ba94becfeaaf8ba58f7ed812db6d5f687f6ab45fbecf25b2537b4f1907d0a64e762567acfbf711c7c25a3d547d4e4b8a550c3d1bb9e290792f671eca9842a0f4b6c9bb10f061a7fc8d6a751b62e56d4217ccb9f009c395d752fd17c606d41fd2344d9e8cd025c6be823d3c67ec9bda545f1f54e84782d0d31672d5225274350f69931b13ae53ad30d435fd9be5a389e92fc40000d96982592d61b0c9ef761afefd51a66dae848631a479c31c4603185fb102ec2590d6432eb9fb4ea035344515ef33ec7ff04c1b42b7", + "d64e871a2428f2cd12eff5247ee8c04dd40f3bc15b7c5a037e5cb8becc95d8729e5945c5bb95efafcc478a688ca37798606ff4fb363fe0dda738d1503c596b5d4eef07f66852032406c2e11c6e604317b99aaaaf3dc135bca404383cfc71406f7b48475d5de88662d94360e59d8f2b4e49c0d2c89ff3135ef5ee40a9d0e5f11ef07dbbf859d87b0b0492c359377b19a039c4233f87d6d2aabde097589d9c464f5e0e280a53bcd69b1c43befdda", + "0a84d5c811dae62d9a60ebef6e4083aa8766d550b25a2f3da09a0fcdf28954652f1353d183af1dfb14122703af157d8f1eb010782ebfa1ac57f0e49622eb732c09e6ed1a94dc0d5b5ed91b4dacf31a79d173331a4ddd64b3ad3fe6b18901278c74041be3b742c14cc1d02b8ee708809c554b7a39646733e3da3bf920a7a2eb3711508d0c77004ff10ea567c971ff5af465f1a95e3219cadfccde173c820ab90186f3cda869ad82a525daa20f97806568205734cd509426121172fa9aaa796a3dc1857ec947610d42511b44d67147e8dc98e5678ba59ce0829747ac17af2214d0ee51f5a201caac8f3bd60264b2e6d1803643231a32f2285f0411d27b8e6f2f7299a613db40a93d05385eacb3dbce664245dfeb2260cc94f5ff4297ff", + "0c6cf1321781b621e0684f13dd470ce4d015a69953d5bcd1bcbdbbfc98db33f2b8b11e996500d1c1ab3c08313a07b7a2b9e584c1222ff340eee078fe0e255fcbf3645e1137f96f2f18dc8bab4c91b47644d95080bd148d6e4c3f3dc1bc05582b902f9dc622488785faef4bf66a66a754f7bc78cc8a3fda1baf4ca18fadbbed263cddd704a1ebee05382b4919aa1ac13cec39eb6106d78503224ee44b9d39b2f6213553babf15a2a31790ecd091" + }, + { /* i=6607 cDividendBits=1416 cDivisorBits=616 */ + "3a9cff0f8ed5a9b1c164eb2e1985c45b5cf1b86ae9b9c934d13a445dca37e81fe597154276b48297738c52184f72804c749acd6a13b0bcab6dbe17d94c2ebdb633316eeed32daaaa529f7e000246fb1fdfbbad93c4133339bc5bb48dffa28b2e250821754560200fa1bb9f41ef191169919001e9f51c8d46c5e70f5d2ac1e65943a6ff4f40913bc7fdb39984d20cc35854349f6043e816b81fd65946a5b7f2a516c5815a4004c80cf305a4bb96fa56f7e8", + "5bd137ee9570940cd991f7d4ec08ce8903c36490bf318ef12d60e3aecd4a1fe4b4d4cd29d00d79eb5226fa12bf92280ae438184df644024f2b67a2e0aa8e94b9db0791a11d8e6a80ad24ce5556", + "a36c21f85f3065edbbc790ca9144e7cee83cef6403ab6ff3d51ad430e14ba01b7f2f28ed9daacffd34352b73958e95036831308c12655893110832337087989472295b3cb9980792a2e1e5a47ab298338f39dfa2d596814d779d8796409b3e21d64d5c9c", + "5b60a572c22cda9ab7442d2fd3b5e814d3934b3abf796515d98d615118ab70469947f74147602bdb3843aa7d0001019c1fb7933d872483681963264acca59365aedea0a445a351b75ed7120f80" + }, + { /* i=6608 cDividendBits=2269 cDivisorBits=570 */ + "15177b67a2ed406edb07bfdbae6c3f89cc2c038ff196199bde515b06403f2daa891020dc41dfcbf6ffc4f3fad97094e832ede1acfe55149d4e720b041134113d621692a84d6b6c094c095c926b3c823fe7ddfba2c68703096f925dd2d21564a5aa8f5b15df930d55368e3f5559a082854c91aca548163a69a22f4d25f8d04354031b6997414ccef76e9e84630b6934b9cc2b337df5e4d9c635a796348ba24684ed37e6b57db55a4d7ed155d432642209a63c40fc4aac99503a6445d56df35fcbe7d5f8b6963758cad712bc3f35ee0d9941951706fd21603051e7725a47a74d576e228a7ac399ac7813e358eb011a1a6642cc3f2c04fcbbb133d1e3f0d89d93d6b4a174c81664aa0cff8420c48117292f02fc37b71c08a37f53c77a36", + "0285cbfa203bfe718d32cb1aae9b283ad3c02c6033a535b8cb89d8c7807fe7dacae8876074837288edf232dcb955cd226cfd498d730d23dddb9e5f5e2c7f541226fc594381059fa4", + "085c67f8d09a18a2abfc1935fce8fa70c4f37bad5fd7e850f638381706b702cf9413d4195291562ad80769e277f0723cd9ab398f1614c80c8bfac7ab0020020cbc5da6637061595fc2a20ca1101010f83dac879183193772fcd38e1f4fb7dc287ec4a4d60ccf9f3e41916684312fac47d170032abd5e0902b3bebe0922b766905aa629f27f610e8e6f4065cf3fa0c270f00c9ce1d9648ca19b457c559148997558f6f3cf96c2497c01532891fe1875b062985db2032e746acbe810557ca0bd5f983ecc9cecc117ba113d77fcb5af605d16d37a3457", + "01dfa64b9f020f1cb87e7bbd0a3dddedb7c9725cbda7458f5c830fb1f105c192e7cd2c765f3af7c9623da4599d958ae54a220de0606c12266de4e4844fdea8ee51a72bff1648e97a" + }, + { /* i=6609 cDividendBits=1862 cDivisorBits=1789 */ + "3fcbfbfbeba0d265b501b1556669720108612e23dc2c72e45d0266f13407db99e9a5798f67e8187ac36f0b0ee76b3b7dca4a7a93915cf5cda9766c4e50025cd95eefa49ef1ef70efed405b6e55cbdc9491ef1266ebbd2f2abe9fdfb38a1a65c3774ce07b124e57be0d4f98a38b588c31c7a2b7f6bd53c8b72a856d23251f0650337dca5fb7510cac4fcbe3f578844f1295384ce010a6650a051641c142ba4c9ba0c98912b54dadcc4f5a75e72170c587c85649f8697080ba8962bd110c4fea81465bd3cae0b1bdd2b4018bf5acd41caad01dec28b95b3578bd3c404bab3751fe69979a68d88fc8b07c", + "025d475af97ce729ced22d008d9dc2e44c3e6df4127946ee92958c15a69f58a4efea87c77237b68a817ef412cffa2452e125d3c49c25004e7c3d641f47988abef01ef5513091e85f8b40f5dcaaf6131222a8ead2a9dd65788da154083cdd0cf8f870aae56df981221fc0b20fac3867507b4b689830af1077b9f55267d5ac59a81719747fe5834f2ce5f5f1fa5162ef2a11d58ea194f4dcdfc3462d623525447652705ab13be3774e73915fbb85801cae439fb503683602d6b62c690e4062cdc8ae53915b5e42eda89b033f896dd1378af007fd43118015cf5c9d2b9e3d9ba606", + "1afb8aa2607ccbb26bb0", + "01dfbb6e280a332c5dbee4eb68565602acfb93482ffca2e3460f922c1619e44da5a5cb6e9ba8a185c6fcceadc3025069a757fd8aa261937c419cc087b633094859915fa31ee656410aad7a7962cf1e021ec85d27caeabc8cb69d33af0bf4b1a302f872be407949e026569e5af47a4e05658fcf7be55e2a45c3571163fb6eedd8b062bcc5a9ee4659dbc590ddb1080faf4ea3a65681e82204b57b21b4f1ca023ff177d820f6dd08658a9269894ad4e76c2ec357c7a3708b5d27ba6650aea773605aa0c87797464ac72f757166c4b297eebc7eea5723388da4e9fd5a85f4360a5c" + }, + { /* i=6610 cDividendBits=474 cDivisorBits=393 */ + "02b14785875176cc4b9cd6b4a9c00bce4e9cc70c4ef939edb4f81976681a0125e80b1b2a28296ed7187ef9ed0d7da764935c8e96a5e5df146286c08a", + "5f22cf03aae1c5fcf96a6468abcb8322e3dfd83826d6a364b0e75ffa000f02a90a58a7437d76a4cef2091add1751a074ac", + "073ec5980ce0c97549dc0b", + "589ccefb82b50d46207593fbb809f25171d4e9d85f7d02466ba9b45586bd5fcaa396381ed47cb742c562a79dce1b51ed26" + }, + { /* i=6611 cDividendBits=86 cDivisorBits=81 */ + "23fdfbfe124c42209a0535", + "01cbdd4ef7cbd856138cf5", + "14", + "10b1d2b65f5b67130211" + }, + { /* i=6612 cDividendBits=2169 cDivisorBits=1676 */ + "0227a1ad545c5950ec6b653c789d400cc2e1d2dbdab895b4d0ed2fbb5121d3d99c80a62c83341c84522fd9dadc96f28bcf6aa1a6a43d0d69a07bf82ff2ccc070fb4290beaa39c110ecf1d7fe5c3e8501f40608945980770250572ae1a85b1ee8517245952bee5385f384f2b21a6c9bdf49e4dce7c58b908c42a5662bd948ea8cb6dfce1b080829fe0ba922c386931ae5f2b3d27ee145f0b05c79e3656abfc378d358273ca23b754b2ea4f337b96f428fb760ec84ec04652f6e010bd3c83ef3e49f350a3fa15f61412c34752dee99c3d50cc0aa972e561f25e98d5a21d4f76ca690b52cfae17ab371625aed894f141e779b374ebbacbcd42c6673fd74da3b77f7c1d6aefc7e46066ac1df0f9114cf06", + "082a8fcc2982d1af271787395439d222c8a6c24447fe7b9e9ffb86cdf4241372f8ea9d9ab2c250f91374b37f848ab1eca448d161d9ac85cdc467078134eea2382586cc42f7ff77184d10a9668acff428d3e91e986142d69d18fef199684dfa884c5dd0b9546bbf9ad616351d6749576e79e7cbe3ecde4d78de4bb2c97c56ac3605a004a27876e6442afff976f546fef4bff3a86f8e838c10b4ca7d11c417182373f96502aea8bab9b0f311e62066536eac61a098b2f599e359f580354d763607f9a6f548f18eed4ea1199cbe65477339e759", + "438cd41fafd61ccfb39a7b15fe4436d00fbf8aadc6ccb5988466e373ed7c2946a0dba1d4777b5885d8afe195d4f8f691bb05e0fe1d57994d0dfeaf7723", + "0416ad856aa7cae1b93d2b99e46e74b53e785907fdcc9debd4db328a88d26fdd4607df46a01a702f8c1363c079daed6f52d5e2a52bd4f1454ddd02137420e0894ac731191840b5b4495fddce05ccee47a603a7f3ce8bff67d819132d94081dd570b19377e7ae04c0424d81b1856fa6f76d0bc66231e8effa6c6cab1687f522a88a0155f4c79373c4e669c8ad1a36d1bbc25630bf984c39776ebc019eba51d64ccd73dec28508868e57f462dcd34cdd27a0c446cf8c0243b437a6a7736d182d0272cbb9a225f7bddc986c93c3131671c8cedb" + }, + { /* i=6613 cDividendBits=107 cDivisorBits=26 */ + "075e7b5222059d92a73c42e9442e", + "032a4dca", + "0253ff6fe37f05540366b2", + "0322b1ba" + }, + { /* i=6614 cDividendBits=626 cDivisorBits=539 */ + "031af25fce3f15d9963ff0454bd249e483d1ed08a6567647f9b6d6e9f0b1b16743c7b48b3cc168509a035fbc831d639e9d17748394a5195da4d05d6e5df80f70d8f72ebe5381bedc1dfdadba12d8e4", + "011be9d5f9c8ae0fc9b96b39f36550660b496e7da96bf3fab4402737ab6c39179a249fb577d61b81b392452672081ccdc7c30e17ab5cf314b37d1c06046982e294884e4b", + "02ccca4e4b54c4b3e743524f", + "5736d996e5781c981655313baa054ac194ca7cd521fcc3f49dfc78bb69d3c29dd57e569dc4a31395d0313d5ba1e1cbaa4c539f9294cd408943df181d71fd6b104da9bf" + }, + { /* i=6615 cDividendBits=1992 cDivisorBits=405 */ + "92d7cbadc0d9eb5dfc9fd2d558003bf84b21d351d43eaf383cefa5dfd11031657ffdd94b510b908ab09d35ceea970fa08153895e016e5c5c37ba187d2229fc5a30c2ea30301808c23ffe992456ceeb1eb2a42ea1be872b04a418258eab53fd70d5e03dd4c29ffab274131783fc89ff483cddb378f51e54c7bf987c548ddd0631f15dbb32236a3d08bfd6ebd41181543dea75b2d6abda91bd26031b274ea5436fffca70595f1b70cc058da6cf157a0543785c16071d3b869d59dcc06b75370260e99e9e00d5c534134c9ff9bd08fdbe1a112640b078441a7a9fbb208fdf9908c39a818b1f2a4bc4c51ae94658277b1921835c7fdaa0bb2c8f45", + "08b0c77d2eabe21037c1bcf6c2c862fb2a1358f756e89568ef8ccaec21243c0cdc980982e1cb5c0646d87f381fc0bed4816dc5", + "10e598f8b55228c95e0ccad27ca07e7c64fc3cf68aaa8c906ecb704155e0b1db1079325e5df5ad61c752e6731d80af46112df3948dac7c148cc3454fa1ff7a5721389ac0701ebc9ce8d5fb7339975ce2befb485307e755668907d5051c26665de2a42bade9a8675cfffeed65bf0a7a8c0bb2262a75431abe5d2860ba5679531d5a4bea181fb1a8d1581148bc9e53f5ae0647ee890169b944452e6517d616592706d3084851bac3369f63cb0970e9cfe587439a39278b2803f8ad4cca8ede2498ef0f83c820e989", + "0221351b150f27384eb7a12963d6bc1ee8a83aab151e70cc7417692b133acb915df9ace851d3b6e6d954fb789fa058946083d8" + }, + { /* i=6616 cDividendBits=1764 cDivisorBits=1018 */ + "0d10a694586eb8203309236d678bf798cfd37e3d65e0e2e06e98a57fefd3d3cd55b0363a0b63427f395d1170df9edf0de216ec7a24656431cd47b9719682a0bec8f64dd2dfa4db8ae12123e75d71bf73b91f6a973d5354bb02f3cb88e9f80b4c0475d382c926a75bfde9d825f7db6baed2d37093f3faa8e0a0d6b07328f03cda1f2f6cde8bc3ab58f3839b2d119588f8d2c71b15401804a2008f3e4101fe10e1cb0bd45c554ab97c22b99e24917a36a1581f8f53d6430024d4ac46233acc41fce5c92b51d49051411c3a1a1d0260c7ea916fb97d918e988ae613e103bd", + "01928a9e5265e696b6dfde26f48e615aa594d264c734cb363b1751ddc5f16fc133ded2c01a2735347909e8becd3b7e8bf5798a13d46db38a126f1e1ae1a94a18c4747b7e9bd360ceeccc0441d94af6ec0e71140f72429c8a2bc3c96e16a1d3ee4fdfdb68b2d4776abfc2941fb65bbc05c999db84570bb1ec119a626e33d95ec2", + "084f0fce8dd18b075a5a620714212ed842dcf2f4ac4cac12e5f58620b5f0badd75dd2c3e1c0e6f12c322a6efc6404c85ee7bcecdeff48eb818927fe2dcb6f676da0aea12521bb1f5326a5c06e369b2501242a820f5e39fd064e0b0695461", + "9f2a36f0752ac34371c2540379d6de3bbab4d33632f0eafcbc2694ce00e517a15356b34c4e5647db8a510e257657523058235b81aca8d21d6695de954c9b2a031cf1ee629208c343b1a07bdd4b84d76d1b9ce637d1a65f1cc6e91850e93e0fa5fdc4a3e39e4b5dab44fee39c102e536ea18a060d06422e551daf13ddda743b" + }, + { /* i=6617 cDividendBits=1415 cDivisorBits=801 */ + "285411a265090aeecaefbf27269bd20c1f1a5d7bfe17b1592ff2a670413e005594527ec9e6bf159cbb914146fdd28ea314784a22259bab9d7ba7ad0de16d9f200d68a4dd2b4ae062ffab5b707c2344e3f747af7af3194ef50960850a3e4c11a80d33076645823a55940c6a190a2d6a0dc6b4dcc70a6795863f6de7bef0d8f57cbfdadad3c459abb3edfdf342b293d38f23fa5a76b7c00b3f500862b1aedc6a5d0420d821f837558a1ab874a0d35b17de45", + "01996bab8b36779e1940c58b76943d6316272b4668575bf2a9167dd1bda5e343485d61d461dcfb05804f82476257267512a74ee61204a4fca69a78d8e37a08053a1ded09a32bdc1a2e7d1d8111375e3997bd87a9495c53769ee2d74666bd88baa325336852", + "19375ee29aebef650df89fa3ff5a39159bf80ac4adff88de31f6bfc85b144b95f4683d21cffc583f3d86fc72d06cc14ec93e3fddb0aaf5ed379a44a824ce19841ad16e0e8fc7a832cb7139c5e6", + "01464335c0afb74ad922f694eccea4c6b6e8fe101f8b0112a8f37f8226bbf6759a27398e4a210d571890ecd9707106cc1ba747336cad9ad5b7763f063c676b8a4d6a259832f0965a200c13ef99ae9aca2b5dc68bb138c8319a10b2add9e84ab01af35f0a99" + }, + { /* i=6618 cDividendBits=3676 cDivisorBits=2600 */ + "0d5739471d0206eaa21a187533c21e53796e3a0a9dafa15e62a20dd9c80b54e9d9002a6d8042870efc6f696e3f8d47ed4064e63d37a82a4f13df510342c0d32b88126ff8a59653b9536d9ad6f09f3a652f3831e4ff4413e18b34d1c5e429c8bebba136d32fb0d0988c13b0de0dfc7868f99339b9fee63bc837e995a18a966bfafe631beef12b12a3bbba9ad70e76f37994ea9a46cd8255c09164eed6d608f42c89b8122defecbcc01f8b008e70cd2b818415981f208767de2ea9dbb7090a0e68eabb29606e43febfe6891e6dc86469848ff42cb9f0cfce367f5436e11b05b6626a740978dd591e700940e8623d36f07588dccfa5a7e827389732d30fb484e7754ff1fc86128bf13ca9fb329a35876876edbc39981eb019830997128f36af1992fc3a6c5f1d91a87a672b6fd6be2de85d9759ec44a1fbeb2bd5a0581d37ee83d4b52aab7ddd3d31521c76d6587f7129e7dd6638b0506555b8efe147e7f0fabb4bcf71657ef94ed59b173343a9a303284452824bf313d5ef4df88e537fd121d1e49fac0c211415870eefb2156c16ae6bb8ce23b4abc03f56c172b76c3ee65f7dfa4964525064414a64b22dd10335bdee199b3c0a641d43ae7c226f0d50cc26b365492d0f970d66f920a889f965", + "51504e4869e0d621f6d95d1a994ca5b651ff468b838d51d56f8b92aadf26bd7de3135ac95d9893050c8223752e9eed67f7c7e9b07d86c714747f90a2afa3ed16668c91d43c5c8523b05227391ff1c37424af1c9753a1ff7ce8af0c6eed688d7ff18279102ae007ebbb9c5451aa85ae87174fbc64672c55120a5d0064c6a881b841954b2d5a8166c491d850013202699623733c286e90ea5f7a4aca5079d5cf2e009f93fedb4bd9178ad66f831436e0d4b48e85b121eab7c53880692540a1e5691f1ce9c3673fe28beb1c1c38862f43fccbab53f012ba8a7eccfd1387d904627d7f607f81ca6057c7d6ef94cab6599f7ce6749a4bc3f38d32f0c064abdfce95dee76ddea5699117d152d065f0ec5b2f7b1d5705f65cd62774d966f518cfacc78ef4d54b4df2ca824dbb15cfde11eecf68365df7b0b294940bb900c124b9400160149adc0d04", + "2a002725c6ac27f15fc26733dd636a69e3cd68564a318e1e61f9f5c8f37d2373ab49836e218dd69fe6736581e5ab44d4e51dc755ab14db1b53288739b94d4b6f5b4edddedc165c8363dec03fad368afd4a1d4244b37eb2f5b7a0996e8b6660e77317d3a89c905bbbe69f4cbef3095f5ba700874462a8ec3bcf920b5c0c7f509e82be4f0433790e", + "2977af9d3a59bd0f51fb0fef810abee77972f58b16179ae41a5a3ba37eb7252b1ef6b1965a28702b9fcc7bf725cf6c056fc67d1d38b6b2c5f19772ee24ade834a18c6164719c9c05aba42263f54a6c1255b36a2c97b962ed623aecbb1ce5d4e9c13faf5455a7a716a6fced306807e634e5ba0d311663f6554bc6f7507461154654adad9ba1a36aabc10d2dffb4e61aa9350a7f50fa7df4f579a2560238c657a1d596969258377c21cb9b1f715e317c5a649d02fbc854e0eec51280e42525685f346279a8b54fdccc075c048a3cf1eb6872cc881da3e2590066f643ad83c0a2cab10a2f4096124891a8432adf717cfc7cb6b8dc202986174533ad0233faa6cbd08fb019295906571d226769a41f97666126b1b113bc0ee3c8de7249ec628d14d5cfcb68070d7fe16d6de8ce37316998ec9c88463f30b762d8c5db2a461c40cab487868e5f2d" + }, + { /* i=6619 cDividendBits=1568 cDivisorBits=1090 */ + "b5b81aa50762647312b742cb843d497f4a7c242283a2a674f6768a49467bc4c1df640c043e3a4b5b2b2a21b96b606c64b070ccd0cf2ebcef8e32a96be065899eb2d9c64564c3f9d7ce9fa73eec7dcf1b8f5170211ac985acc1562c1a4f7b09068ba0219851c2ba1d04fd480fe596787073470a5e673c9ad6390d3860856636fe672d240e4acb98dbff3be497de041fac1ea27f81172e5ee3319164d9b9894051cb3620ef43047671bb88f1f316eca5dc7ec620573d1efedff55a3a30c7b30bcd82f0f6ac", + "0177eaa16eb3f49105f67f1d778fce29fd2f14f1d626024351f0179c1b881c5230c4e513e3eb3bc46adc66a7afd1b78f8e43e3061728b96182d523782dfdfa9811ad0c3ad7f77252dbb3feb4925e1b24f628c6dd8b8b5db25faaeb764223f253cdcff8c6fa2fcb0876306248ecca0b411e96ba552153dfe0d1fb74c14ab955d3e27d86f1b9e1a1eb59", + "7bc04baa44a36a1ff8236f57db7b369fd355be89073c1422e8232eb888428a063c715663ccbec33ea0127eb7cc864e0f9a6eda99d8651e63cd52e95c", + "e2908ad8acb51e0e59ec0b7ae27bfe4a0486a707b470373bd9ace5e49f0f06f7f9207d8b85ac9d0de058fbe8003ae8ca847c385284fd8f772669411fa5f3d0e51d4f277d70f9f68f913911164185e47167bb2df0160c9be9027d7fa784893222ac76b5093c3938bec7fca546abefcb35d07d1569c35b895d23b78a1408f052c764a99de5660a61b0" + }, + { /* i=6620 cDividendBits=1344 cDivisorBits=378 */ + "0a3a345f8df7a47f708f1499c03e1ba6479b3624f270947835dfae35a0743ab5256ba9790fc33c24bd11f4e6ac44878f2c72be6107bd37567bb91628ec5ac7f75acff277924fc81d8fed67c8061c0cadf2b5de6e9fe81e3c00f9eb8673696065db0aaf27cda2365e8dedbfde2e2369c9626ed2f826c40d119a944c75c1aa7128919603be94d12e225a142dc1a9c9299127d07bd85bc52be08e3f9d180b59d6e2947cfbf74ceb74e7", + "0328974419ed69e5f79b3320ad16b535099c5940d3353fc5dcee77b4c0e14c98c578c586c0e23fb954925a88acd36bc4", + "033cec89fcc422f3370a8105205d10beb8ff2046d17f56e3c48a6ec397d2af1445a81ba1049ccb8325fb0ed1659fbf6cc5e0fe858248abae9c4452eecac0f11ac3fc18ac660fabfb6cdb3d679ce6dc0d1926db88afaa8eb5954d0ec9ec768c73c7560bbb55a4531998c9c4b2b39cf032cdbe1aaa6ebbad0d06", + "01dcd4465e6aa47ea5dc8b5dbbe1586f36fba441eff88c871248b93a4e149b3604272db846892b4f138a3b2c8409fa4f" + }, + { /* i=6621 cDividendBits=2847 cDivisorBits=2411 */ + "2e5a9fd1b2d39bb37c7afdca7a2ec935b5283aca36bf41679e79566edad3d09cc27eb061aa11afd2488fdb5a4c3aa15dd9ec88636aaec2b1e990f7456e60708ae2b4559eae37e0e23851cbf4a110533791057cb36bda5c82c4d19089ad6dc09f814541c22af2d8a3db30257e0e9646e0e1e1e4bd3488965fb8c5ea7349ca3e41cf2d6ec7f3991f626f31ae2e43530bcc35c7a01049dbb1a4c11ef3b4d3bb70dadb729e6bac13a270cf7605ba56b92dca90e084603104634e3ec9c046adab247d77da43aa41533d772bfa5c76313de8b7ae4115c50723967fc1de651e369424d3d0da0d752a891e92fbcb9fab37dddf4d06b52311699d33bc29362a2a053ae703e9ac949c4fff731f6ef6591b173b8e59e33f92f732ca0b0b527d536b7f1ed216c62abe388589029d768ae5b906e6879444848f82cfb685838d6b92c97577489d89f2daefcbcc018f7db537b9c7ad495343f1d43ec28516cfde13d1a555a64cb6750b3884", + "03a997fbccf851803584b36f4dfbe72040c1fe084e044ce7d27e17a694c97d85492e1a063a4b167c5997cb85a3dabb80e385f578ffc78f97d107b83c12783328c1dd6464a2907e124b8a8a4ecbe4342a0d321ce30eece3e2354e26c334635e8bf1e15a450a2863631dde5fe57da43818bff84a1243c48aacef2f23b82e56e49400509db1bd2c97de3048e4fee12bb79a2a83959dfd5b7dd6011b07fc7f51767c0bf9bce37b1d1b4669d319ba19171c3b8e91b3d1decf1eabff5f63e20a5699eb6445964fb6bf597bbfac4d67bb808ea74785f8f38f6991adecd9da1d00a02b7c21aab20e1a48f02987cc1cb9a1ee1bc5c1c70c9cafd18b50226f7abad555da2df7e29b1280c1daafc0314f0bf5e4625cd4c102648fc254bcf6267db8d659ebb105f17f443793000e136355434607", + "0ca80e460b4a0ef859cec25ed00fa64d6a8fcd4453e20d0f4597b945bf248a883e015fda4c5ee9226cf6b28d6ceb1abc9ec113ba10459d", + "0273cdb4a3965ade29be1ad7c655f47adfb3034e0fac977e699d454046f7cfaa49ecd6a409a90108ad8f278331ee9b7eead4dce2a151a905585d69a964ab451203d875e0aad5e25ae1cadf6a5031b0539c04f538d9422e1f575f56700d03a93d02a1750d679a73c6b0ccfa3f2a75e81cdbf48c419942f927bba02dd1e204f03c6e8b9da9c92460f61e634d206371c8efaf2516ed7ae893879316c50f108c69c27c5f0248617c1346d7fea0a436d3433dec766037bbb91c8806841f87b23c8a986f0ffb4b2ee97baa6c87219e4f07dcc2ffe6e854a8f563d75f8ba74942ae2c0591d8106a3f37898404dc0c357f1c6cd7ccf8e84bc2c80badd4027cf35822b0934e6c4b840cc6fed72842276bf7922a96ee3f2dda0123678f8d1eb22920c151f2ebb5cf61fe33b786f43592796339" + }, + { /* i=6622 cDividendBits=662 cDivisorBits=270 */ + "06808ffdf92fd00ad2c17cc96cdcf4a18068a6baa55e99a8a39532d699a38a420270664b69d298dda0342717ad5e6bb5661a3870661204928ac77cdf4503ece4ead1957d6aa5c7ea942c0f32935003807aa120", + "0346f2eaf0d53d21dcb6f5e7542c6ae05e5fc0838fe123a845345db1bd437f9f4f6b", + "01fbee497de1cdebba1423ffa012adf8586d5d10b84bdbbd949bfc632e48b6396d871921a728be17cd8693a957d1027ec610", + "01d932f5e7b4e7998b8db95defb6621265af0caf6aa88c296719fd2d04b3626ee870" + }, + { /* i=6623 cDividendBits=2436 cDivisorBits=1124 */ + "04b7daa72173cf63602305d1a4bab09422110d8823ee7a83f3a7e99a42b0bc250f600c3fd84e299fd55f2970148cebeecb5d1d37ad294f00c3010ef5a4a27fe1f6e79794904589c1dd2fc89d302b9c5d9c281e1dc6042b8a7cd4519a4150199c24a5e7d51ef178a5274667543a8dd59e99bf643ec2b684a7aedeb14ae6c1aa009c7891cfcd087a06faf390e3a576cb452b5602a05d6c7780c57d2751e212eaa03102296e698f2b42c61e95c908af2e96b35b2d7e4546de4857a738fbf8b767767c205501508e410ce07bb3f6376b5063eba08198556249807e6012cd0d61f92c84436e0746580b78384aadb3bad66db0c3ec3b1abff1a987c60d52c0544937a6643436682bb05a8c7ada044a54f1d243c4b5d6565c4f4ae27cb27bac0a897e59d022d581b38fd735bd8b4c407747c6c6f0", + "013b8785dbe6e28a5f9156f8b57148ffa06bdda9ad3b1cf2fbd6f4cbaef1545a246ae2d783dd3b9529eec5aac48e3ac0d77a9daf6a98618888d030e8ca41392c46d62b7ef65bb81b5d3c3a9a7890508ae179d45728ed2cc98c486a93e4f46e1a19e160f2f7bd1170a705d971d3fd181c2efef3821d6e186c75cd56d8a59571eb620a0571c93d03f2a2fa998188", + "03d3f9641fef8f7acfacd24ea01fb996540ed6a99080897e4005e494eda771fee446bd075b09edfd4b5fed9be17fd355f63e344550d19e1c528f120b1462efb4b1dee0c6e534d55bf0c0720f15628a0936e15dd86079e183903704694d12c4265f6bcae6035f78dd83fb36fb7784ea914eb530c9804869207e9e744262f30d867616ea7cfe0ca606cb0648c7cb6807017ab2eda83a4b3e685f39618b86da47fdaf2889623f", + "8bfcfd4cff6480c1a0bec84957250c9e3593efa6a2416f6d9d3d97801e63c02a5a0ae94e723df6e19dbca222fa058efd44521dd416e4a5ddb4ea05c440091f1cd25910db87b1de757ebd7721dcff3422ab7c6f410d6486caaf722de47e0bf0f4fe452f2b96db5ee4e442017073435ca08e1ce83ccadbf1288eea52926dd3f09d196819b1f3661a1146a1d678" + }, + { /* i=6624 cDividendBits=191 cDivisorBits=147 */ + "5396317e6989d89686abdeb5431cd78f43bf7f69440d59cb", + "c17454357657a24404afcac599e443df10f3", + "6e9c6d11fd74", + "1897411e82dee21c86997ad9f2cb781684af" + }, + { /* i=6625 cDividendBits=3039 cDivisorBits=134 */ + "5669a94d58d872dba73fe1a4d1030aa2ecf5f2556f15718a813b6c67cd99a1406baf073826d681fc07cb12a4f5c1e17b4e75302bd3a1a0a4664628295b4f220971f2b74110d4189488054858b665a8e2673c11fab7148e67c276488d86589ad1358afeee8cf422a8858af7ee9caaccf7b85f0d52e2efb70ef8c3042d050922f19f5da3e91379a3b66da89fa28889a895dd4c0630c076987bf13e69bef1f271c5623250925aa968027f76144d31ff4df1411c24fc5569d06299306523f1db677563c0c2048cac413a4956fc8202efe47b5b9ddd053ab38bba29a45cbb2821933a3476f31b339ef8cff13d63ebcb1620c11baeeadc58a588e4dc8591db722cfe4d2242fbbbd977e310ca7fd3d56d3354725eaacf69c92292a33bf997bff615a42d4266b50facb07d6dc8c7cfb239c5bff5655c552ecfdae7d3443e5fd7b09ef3cfe964bd1f6d8950f80e51c3d53a4f2f5613c1d934cbe1b745b681435760c25d25acbd294cf6e3d71efddab5c30c8558788d0c7d750bbeab7c38283558", + "2ea551bb07491903340a5e673b8c105b84", + "01da3f74d631ef46f1be577ecdae1a2eadd21039076defca69ef0cab1ce290a44c5e89faa03b83f7f8e3c28aafc5ee7223e2bc0440d7fd40866eb93bc1d3f7c213ceb3f62e4d785fdf599738ff12375197969c0fbb8cd6276f90c4f6e8cd574469d8d10b76f3fdf2351b262fd25e82c0ec58fc4dba060faa6abb8fdbf0145377a47302403a38bd075d2bd0fa083f74feb801ff3d899bf05b4186ceb9afa2a8deb3ba6701247e9f1ccf1a33f0c8e8e9be9543801c1284aa704d8a7ddaa702672819ccc465b215b86840c186639d0dcf1a3272a85dbaae89189a1ce210698f3493bf2a540e995722d4ca69c8485d69755566ab1ba355650ff0d83754575c93090568380301c249f19bb6a0968929d18a546a228094001e7c8f93ecb59c3e1c2a14e6e33f061ca5115f168fbde4831a511ae65dab28391bc99104ee0415bfec49b9389b58cba05da56db8ff892e96428fe2f10b2c9f6a8e54ce4179b5ef2a9bb75c7609d98909fd22a7d71cd780", + "126df4b5f8a36aa63ba66bc15294ae9758" + }, + { /* i=6626 cDividendBits=1543 cDivisorBits=418 */ + "666daf9f86283e1ef31357e43c70ab6e1818ce8f7d95ae82f5511d0d9479e7c6a1bd3e82f5c84c5eb2e48bd5b2c27b8fefc130df83faaf5d85a2cfbdc66dc421e5e566df8cb366f6f80f27ccb42dd833e85c2476938fa2fb8de8bfdbbd24a4acfa6ae96c38b0a5e538ef9c084529c78e810ebe34f0d68f6407e5f1e5096d099abe96501160a54d393b79bd9bbce043eb46d9e83a5f76019ca059747efba2dafab0808a835cf8c0522da557ebfb0f1326844b8ee731a7a309d3b8de350156f8a45e", + "0167d41dfd4f528cde92c3f1d570a3a67dd0033c7579fb1dca4be91f045c1b8f3b29c19a14f759ac3cf74376c36617af05c6f058b5", + "48df6a4d11c4508292e3275859e0bb7a5fde5c06979bfb61723c48a0f425c0d088aeb843f7aafc088e560b4f915d96a9c3e86924a0481ab4933b6006d8586109459acc99b7b3ad607cd1482818560a7d45027e35ce8f536c53ba0cc6d58cb1b70bbacfabe186ab10bde556f661b3dd5b11a7a209f50eabbc58802dc9aca62b41c420dd6bb4679a427faef5b0ef", + "b2d6650fcf9bd25fe00d7756b78ee911f4d8661e1bf3a1947473fecbfa590b6b802671d238b552b50de54de4dab269bc74606363" + }, + { /* i=6627 cDividendBits=3145 cDivisorBits=1013 */ + "561b8ed13b5cbef0065671c5c403c43cd7794cc5e929afe4bc0a81ef558c13521c34bf6356be5761d4c70053dcf45aab668409dd4752df8a150b78028d717ec9b587249d1e49f10ac0c0f186b591e5a224ed2e46249a3eac8697f0a9aea4bd6c215854005c1b186c9530c7302a84a50feb00f11c109a60c6b3e7eca17086c19f6b0cbe0781f6a8bec715c681e9cd9395b667ac7962d7e2f34e6ab0211f6a73235485090e60375958887c5745f67878f135f45312b8dd69009b5bdef65c3b9486fec75b092ffa818c0844c6438e4cd28ce4ddb6e30e53e24d3cd99c8b8a74d2e52e3c622325829e3eddfc991c6ac3f9d6bddaf6fe8f146e163e578b5f2e2704beb7d79c8d00976fe6954fef82e5d7003439ccd8898f2c7ce6f697407128db36230cd910ae4132e0e5a3717a443ddfdfc3f1571d848fd2a08e34804e756d47ffee673b47d4e0676016f35a4023371671c38fd896043971419c5282410268d820f940e6762eb8a588a393db8476358aaff2cd1b4d7fa1740272ab74d45111e874c3c0ec98a37c537de173", + "11991cd3427c02d9c086d5253a6c83c4d0a239af21b4f2f56255557e2ff66cd7b21cdb4ab40f0d8ed00011747dde2488a5f12e78a202b3b9503c3c9bd9cd7ea45730c15f5fc908f7c44caee306ff4e9bb811e021d7647184d5c4162cf9f51c5d7255447980f8c486fcdee11c390882e8008cb89336a451cf0aa22b72950a37", + "04e49c420e8cae0d1ab7216ef639b585f7b68d06a911bec9d4ec5a5ffd1d979f1d1009756eb4ae2290cb8a84f2a93c2a6e25efc331bdffaba16c65a6e314be6c3a745b73742a231e7a6801c8c80661b1aea6900e80de132f39a19c24e0e3b5fd93865825cb861f66cfc5611769e2b6b445cf29657634f07f668aaec1f09d1b050ed8c8cb2773208902df9ad4228edd7f933a16b947d7840d858d0f97c8cfc0dad21bc9c7a2b951774b5203469ae7d67e31832fa2bd78c95bde7cd0c421a72adabb8357c8ddea39a205da1bfc4e21321156c1a12a8775c8319f42c3fc2a6a407fffb46a0021bce2665e41b9b2a927c6ba413a6d256154f1783bfb12eff63a103ea100ed3f61fd0efc6c1b15", + "010bfd8181bf1bd109a55640472e855add9f55cd881a4471b34ffe4faa644b2901e29d25c3ee0121091976791211e86df113f78f4e174e9c88de30a8716fd68e842f7eacc9f2ed8a7028cb4cfa63feb3d27f60d7ff0665607630590a8cde4c4424cd12b2de63f43c4fd47a301568fc956e1eb46c3e7c90ab69c9e5c1fc3df0" + }, + { /* i=6628 cDividendBits=2135 cDivisorBits=848 */ + "665ce510535683fbc75197962e6133b482e30d66588b69ee6beb05cb78def8462a4a6759a46d432ae693d66130d92e4d1dccde1d095f4c20e10e259f91a094f4f6bf0d460a79f58679d995885fb6ed59e74ad956a4625c3e08f4e97ccc9fc195f93b2f6765d778012af5893828d10ec77a706958b39f45b953f4a0029db7370bc61bef0f837f6efea27e012a5eddf7353205dab15c463a93036743e9817fcb0db22ab235b463ebbed373edd352e4273a31305034cb0a0eb84846ff5e9b940726b7393483109aeb67d6f1f044130744063b80e0bb14ccffe489bfd734816418845394aac7873c90eca9c0224b7b4b8f9460d0b29ae4d5136d7d42181760857c46b3402f047381d0ab634924", + "a1a4c405b9161bc16113949d59df95aeb7feb1b39801ad33b8d79b62fe834458edcb57d5ac962f293ed508b1088d91a0583637dc843404b525302e20612ecdc888a5dc70526ccbbeb89af410ce47a91f01a88e86f4016d0301c875ba98cdc64e0147e569b8d517390497", + "a21d80d791fb68827cc6d041b26c2042f040c891c4026352ccd447b5ab31ce7e36b364766398c6a692c456914ef83238057c9b769e472008f7f3b0e86f59952178260a9a28ae8c61e078d41a95ff9fbc338e151e098ce63143641034da174616644d6f6ba42dad8daa78626ad1cd55a985bbcbf591d7c9993b5952022d95b89e05db6f158ebd26f253a8d482688553e37b9af7e736fcc8c78682fb016b4a0dc5ea", + "01dca61884d72ea7b5f0cf22389a14337316ac18b7e709f99b42375406ba2ad845e6831b0663f90c3702e1bd5cf3d0888cc4cbd477dccf07ec4395bda61e6d0db1c3e70e2606a5904bb2cd756eb11e7c80d959cd61cd0236cdf8a6a48f7db36ef3b2df2568d4af11e41e" + }, + { /* i=6629 cDividendBits=2934 cDivisorBits=385 */ + "2105662099a3c3d160ec8438cd65d040659abf2115c535a7a0bd3ca80476b989f3407418a28640b185fe5d725c454d1aa58bd4ff28098000f08dd88eeaec24074e68704f9beee54ddc96a2873233da7f8aff3cc3e8cb00c421b14183f107c099c458135e8658d23a46a5d56a332b1cd32a7ea4d3e0eebd86fe16eb6b90561f725b8077ec248e3a9b25b8a5d5846cc5123058149a6357f2f4282218a39f5e02764794c357b7b941eb7e0a4af8b5ca09c38fd0a831207de453b7657b830fc20c81717c509d40e9df41eb04689b5bce193bcd9c31c2dd42a752a163031d3238b94fa5937d2e45b51a120e0116b79f9bb4953a091a1c38ff59fab057a3255dd38c4500b95fbcdaa25f6e7e8e8501c3e4f754e78d5649c68e71fc325e4b60084021e0fa17f6229fbd9a8b52fdd2f7102f92ebb5a4dee6b9df9d19f0f1e153909d5bf2d417ad5faeb9b18c89f68d7f351935b8ba93dca45ff77bfdfeaa3ddf93c7605dec426c766e54743c45e1f6751d5bf3", + "01aa4ee472b395855d3b70964f6b79d4cfae9a033fed331cbc528ec2078370b2bf3d4a110a71744ebd5d95a5fb3c9bb2ae", + "13d44df81cef4edc8309a26e56a85cd1f009c76196dbc51b673b6df920ebd454465dc399bc32433263cf0d8ffbbbdbcbbb9ff75f5115d76f9dc161a97b87f7ca9b361b0660ad088d1a2d8c86ef11eeaec163b14fdcf5517200b54d22cfe6c10abd07a4187ff9912519a0b8794726fbe5b200f12086b5c261e4e4511f8ee4c42dc4e59c97a5d69d9bb82fa39d4ddf2ba4419f3f23e711be647cd96b01c1a62aa4090d4b91f1d8cc0e2b348ac9facad2218b6f0cbc72169e2c1d03deffcb23074c7c6b43a08f74e3c6edbe97864f224bacc6cceb242a984b7e3b11b3c6ec32a75ff840cb6a350a71c3f4773c07ec1e378d4f36edf7c53e54bd8643feddc86a5133c7a9da64d79c6758c377c1d6d0fce5a3a6554614838e995dcf5e5250e5ed72ea09d516c836a9423395eb12ca0a260a372821ec5f9fa0c790631611cb09c328", + "0189e841c444f9554e851a10682e6bc05bd5b7026ce5a0ed420de181c55e409dd02651ef65a82f8cd52f9529d32190e6c3" + }, + { /* i=6630 cDividendBits=1360 cDivisorBits=1209 */ + "45d5af576ad9f0526cec3189f9f362e4bcec8f50fdc4ea4d3790cd6b8106f7d7eae48508fb4c1ced6350206b894b21e2effcb3e178e603fd78835855a91726557c3bbf21b9f0273fd2de1547987340b719b400a0390de8e39f050ef1f543755e9cfcd4357852f6b2816bef837f05f148c9d9a96d26e17a8e2f022af5a10469e4a570479884f8cd107fb65a7c928ff18200056f6654a081bb781f57ca18e1814db0d4c7ec944b374df066", + "1c7ec09c2828ad2fa421837c7f7baf9f4f2a25beca420cffba93b6e51daf1cce1fcc4b96405dfa29a6eeb81ca8bcf532f6f0134d83fa8607ad8bd5005867a4f98fe4200a4a99713041f8f2ecf323e46cca9425cb36e5ea50f30c7e7a9401acd2d4601521fa2127d44506a1a09d3c83d0c0a89eb66c28a7ba6bfccf3030d9447caeb28a77a21dc4944cd3fe13da567e050b9295e291f292", + "027364fc505c6452a69708f3c6c86139961c18da", + "15cadd17aa2c034d953aa11cfa5edd08ab250e4473d859ed37e9cd1f9cc9429d9cb95a48244ac84e543e9203b06c1b9f94625ff519d0395afb4372d5c3e1a7d57e93ad7e78820a82e42d20892b5c079f02daf29c2dfc2d24d5de6660551e345ebd760b454da18ecec7c200a567e00bddf7d000f7abd2e395dc736c7a848f71465e42e78702bc7e6a76ea367fd6c1725db512d0844fb012" + }, + { /* i=6631 cDividendBits=715 cDivisorBits=508 */ + "07e49b463b211d20627d3d1170929ce16b4043f007fd294582e0c5c4e919334141e13fb9509a9187a9b3fbacf3aef23773c89470f8122f4c8505aabc12578ad8bcde2f5258f1868c0480451171ff9b70ebb51460007d275d1fc0", + "04655136ffe11663d7395c83d234160f28b734731efe340a1d2a61edef5a89c07120aaa77aacbcaab473aa692c0254f74318e7f699c171e0c479c1e9facfad05", + "01cbabada8f6a2c996f729f6ee047a3e68a9a68537a23038878553", + "01260f718bc39b5bde86b20eb57d4ce30a38f206f69b2683e95e999b59252241824d941260588c5fbafee505400639e62b04bde9b10548cb766646059b816e21" + }, + { /* i=6632 cDividendBits=1394 cDivisorBits=1332 */ + "018e8ab8d1975d8592f517f3819f2e4eeee9116fe21ce8dfe7d6bee4e8d72a455a8ade07032259e4c88ddf00c968637b1ce2ddbbefb7305e86a7eadb88d1ebbf4941c9e3a1d7a442bd47bc25d6dfd16cf1fa295ff3fc5271a1c8a86475334cbc99c6fdbf714209892fc24441a1dbbfab2d908becc56e94f63b9eb423f83f069ba4197d091b77b5aec1fa93b13db86c0eb6dcfdc8b49ba18d9b9e16c8c0d80934acf97658ded0a65144ab79b616ad68", + "032d8a883772e7deba2897223ed5545cdcd0f93eeeb442637cafcb11face0726c895a79bfd6d324d8645a13e4e9f91fd1c8d41ceecb0d42a28135b5f5bbc46387438f16489a42eb1a10e0653748c91fd229454aad61d41078018e0fca8a7ed497c3bfd4882b716076c2ca439a7904436b0bbf908449879f3c451d86746ce9bfd612c1a60a4b04154b3ded89ffa700631c57c1b74eb46ba9ce80c11db3e735b069222981cd84317", + "7d69203ffb8ca04a", + "02d6da36e28df039736e7a04c87bb4af5fd95583ab198e92699fd08dd3ba9bb9293c2154751f1015bf8b9d40c28032f428916172eaaa62e5a9723388df131365b04745ce02cd0b809b816e992f1145f871ae0183152d3f4f8ea555ec8e6d5a7875a03907621105deb7710f8212a1d308614092286a07b8552e91a3865634b12a354f6be09d71033ea4d63f6fa5b2a4a268917500a6d28d30ff60f742bcbfe524e566c4f810e8c2" + }, + { /* i=6633 cDividendBits=1167 cDivisorBits=390 */ + "48febc98a4c4f9d5aaf9edb2628335450cdfb71d5f14f1b305a382dfa909fb13e0a1604d1cbf2ac90bbb0a546072ea1fdf68119e3114db54ec828525993c26fe527d1f51069bab2ec91af9471aaf797525b5f109bda95e8b633c2bc596386d77cff386760c054946addfaaea6ebb6f0aeb119bb736d178e01a5cb99291edc65fec25ab02ecd10909556a8b5abe95530db59b", + "2c791aa8cf610fd65d6cec21d86bc815cdeb7656e6a203c67152375afa40d0da7ad61778bd2d869b15c60478e2229c95b7", + "01a42e56e77e797374e3c3fb85c2b61e62e04a40af608f4b5a4fdefe1aa70c47c85f98a2380e20466a730c1e739849c1bd3afbf14e478dfdf57336764429c2c8bce67cc71c10d7d1b957fc47f28619c9ed9dde6eff86c6381a365bc3722cb59bef28", + "089ee60ecadae71ad214ad7e3e6a578e3ba3028144fdcc217dde223ebf44a13db01f8a2340fa9c0c98956ed8d2b2037803" + }, + { /* i=6634 cDividendBits=2384 cDivisorBits=937 */ + "e6915bf5398ec0752de6d7b3a1d1f2f7438f29538b827dd6a641119a35e1d0ff5cc32d329b778a9ca89d8b3e0be1190c2b02e00e35d63c26153277c4b199288ade7ba17082b6dfdc1561cf6388cff8eac1251cfd5c6cf95735eb2b5ab98febcd95b6127d75217afe66fedc6f61c8890ffe77df05b9b2c6c5bf5ae0a86210a2187367b55a9c81ba4407324b1da78edb549ecdebfa553524d7f16cce806bc5dfaf4b28b9475d9b0d49d98044ef0138c4073520425e094852e6dbd26a625339a91f1eea7ebd2c1789366b9045afdc09670e02ca05d16c6a508a78c39ec074ddc0060868a72ac18cdf2c15ba1ce334cb015d3533323567caf0b81b6c346b1147bf2def786244791d6455e97f00caab3f8922ba27073cae26073a5fc0af06aeb23a4131cfc788f745edbbe052", + "0dec0c17d8c06de9ac2fc056f120d116114de7bd397abd1fc778403ae719063bf780bbb808fe9704ae46b3046f1622c6156434a9bc347ea193c9ede4315c85012f9f449506e035f5455c0d60b488ab76c6ca055162be888438734dcb70b9c7ace08e65e46e6de45d6480d9bc275608e50b80374106", + "108fb3435e36190f1330a41e2e5845a1cde8a784fd44f78f358e1854079258a72f0577e2efb58f264089d125c012cf1931d26fd0a9fedfaa5d646581cff12c850b1164cecca63c32c47b018c588d248c8b25897c75848c3ea1bbd5067cba8c3e96c4ef214a226debd5bb120cc8abe0714925b613d062bee89eff4fbaac76dfa7a8c099b0164ea6d010ffe5f4e67f49ddacfb982abb1c5716b34fe4feffd4297079ff813efc8d53bd3fa8566b87ea72b752e8fb83c65f", + "0861b2ab895f44747ddfd310411bb1a1c3ed46fae59f452df6d7e0bb44ce55fd4b1d4f09f08b633cc9fa5b0e9825a523882fdb45e214f2294efb74dc09d287d5a9cd9599006afc8f58a89bdc60c63cd02aa428b9e3fc65d5680323fc9abbf389f23ea50c4bcbc69247f566161e714b705f74de1b18" + }, + { /* i=6635 cDividendBits=3995 cDivisorBits=3804 */ + "024d9b5509a6cafc740db277de2edc1284db08308ba278f85d20bc5948b4b48f458e68cff8d0ad1d794991779a2aecf0c82d137c713a3910bceb891845209e38499cbb426bd872593378f4f58aae7de02093d238864e16aa37f1c270a9ec49fab60a61ea88267592ef7a9050c1c10cf28d5db4edfe312801f69d3ab3d136e2a778ad165901b60ccb729641891320b5ceff13bafb4313e1b265a83815d28b1a0dc1ef27dcb82a8535f3921c954c161610ee124084d042c7f177344b6440bec750dcc484795217b8e6d124a6d87d2f6c0aa1735c593dd8011d7be233ca89c777dde69c549c8f4a5411c3941f4e29bc87ed4941b606c0473b6246a0ea9c043b5eb5aa4fba746203d9e2d11d6fb801959038c38b0df9e057bc3fbfc54a3f10ca7fede065c3ddffb3247d121ad97fc9e2059207954f93aba630d18a2f56a050e9a150d13e8aa4845808c302c87a29947f4bfefa4f38b7a46b421bee65e38e129be2a31e7b7a306149ce880210b38817ce6817e2e2c8c3cdc4db5fa2741a6717fb1b60103ca73d64361d1bccec618174b9ae7508868f29ae5ebf7641e758c8d2b15fe18a0a4402c3d810a5667ac11af5c1242578b65947c93c7bc8db59b529e8f3e2064ea7f68a1b69f2c6cd617afb1708a3e39ee0fcab0bc489a7516243d5d181a525749ed04843ca06b3d36edf7bc14464deaf39d8e9", + "07d7eddfefc89958a7cdeaa36bce229637587d0907f62c2c0564fda2d7a1851d789df830278ccd25670095f671459ba710e85464d3fed3a66370c3f99a37cc992f8e68d43ee91fd608a4e11d342a68dae6ed0dd773b50c8e7f5177c9fed43cdeaa4f366b07c261010777732c641497a04d558029af76e33f16201ecf2e526ec3f33ae2dcb5b9f3fb9f748711db1eb21b34b57bd3f6221c6bdb49d8036b787fc82ce835b539093825bc72d69b538cba0cdea7f1828585d8045119dadd047c1093c137c3c48a0759c5600b3143d1134c5ed6ce58f3e16493a56e57f2f1423f832f9fb59ffd0bd281d277d34ea5d798de0a5f6b0ad39b2c5ce92c2ab5846e395a44c239093c2467ec8449b5d280d750c813da7a6b22bcdccd8def458c11b668f2354c1cc82e9f681957163f56c065802ddf1b86368ccaafa942a06bab93690ef553bafb0de288aa1555c04c989ef11959deba9f820d081fb54e0b50258373e3716cbeb0c92e7ec642433950637eec454ab35eed001168e3ab498c4fb0047546947184ef9ad95013e8e42dd21a915d19001d30272a690978f90d976d4020a7ae17ec13932d51c17ca460a6459a9deea343a180d318c25526cf0dad90fa7e6c1550c4263a9046a8e84eb14a49d5d3d7af296b81c043ddd0b2f20b98995468", + "4b2bf0a4914505bfde30540098cb61d428de4e919e35f9b6", + "076a2e0518762702a881f91a18b19f3fd64c06c95a632dc14bc6a54446f8f52d8203401960a991bb8924c92ac894c40968ce29598e83b7930b9cb13f4d1c2ab831db7e04c85ee990b6292db2af49f2c16ba60c7e1b4109bd313c891bc7ddd9e43e74850f5fe4fab957291d8331d1083d9ac6180575d033a84e1d8dfb2ed2135e3a15c0db19e463e34146d623cca3a7d76110f7bfae3d7213ea78c25571371415d3598598d8f5845db3cf37a6b0f7dc49f6a934d787bf91419d45fde98ae8cbec943cd19c462ff4bda0513168bb80a7fb568b4ed8b377449178ec407907cee2df95b20fc5fe6076180d81ef71e98d3ef51a207255970cc27293baf0d108194e62751d9271b40b33992c461833df2068e306a0bd3e03fc5a2b721ac66821c58766f5094bd6fe13e24c41b6a7a11becf5b0489d2304d088c5977494f4a58d0c1179f9021839f24ae5c74f961a6a90f7101b9bd3d4a6cb49be526e0f81c6da34858fd4ff97b15340411558dcdffdcd610f798f7d4cfde4c95129fab963275ac1315a1908347cdb365823c85b4237a4730d1c0a68417355d509f0542dbbe0241f6e6646c3cee7caa65ce74ecacf26e56d6c12c030c9106c5282a0a8eadf984b1586dffe2d4d28f95fb33e1416d44f4431830707930004774950746596aef9" + }, + { /* i=6636 cDividendBits=399 cDivisorBits=97 */ + "6d6bae03894a88b2a41b6dab622826c702b16a2755a5ab576a31c8bd56279b0ac742785361a157d6c70fbf217ea78ff01056", + "f603069c78e6e8008f12b958", + "71dcf7233e15f58ac7c738297e5305bcf387e789adeb35c8024a5c927d7a306ca25984ed0705", + "dda333fbb810b73c4b09099e" + }, + { /* i=6637 cDividendBits=3660 cDivisorBits=1300 */ + "0f67c0540255d56ef32592e504dc633ee766e63f54b5ffd424051fcb56e375f1f89ecff24a86016b80c549b7443e9ba4b75ede52065600867b7a0eb6238c2cf88d1bd8e614d95b289a291a149f88485ed1f5844c1b002241f2d6014c2a2410d2232244b5bf7984400a9ba2d31b43eb6ada8c6220719027b8fa69117b19b71669c98c92d9dbf6a6ff307fa9aaf00cda43ad51eb324c09e8df435539ddb31b16e4c7d4467f66081baae82b6644766e48630d7c6ba65e1c0323e51f2790682200f2c5ae1c0df4769ee03b6cdb2e4d11dc90da0e72ff669299d2c0f2096002cacf458ebd67cb9d7228481c9becf1aff3aa8a570d6992990d049c141fa45c6e86ed4194daf2704b8ab41643c4d1fadbabda42866bb8c05b9c6ef3139ba5f52ac9eba145244d9a0b4bb2691bce0c9a383c081c93185edb98ac8bf7b2c788841cf2086db8eae0373bfd5bb00603976dc25ea70126749fe1d135c9d44b7f8e71840d6282c5a6cbf510a654c9b4afd7e177c28be9bc704a65fda0ff961c9958d564d4915d4cb2b671c60b9659cd8951a629d81bf426cc59691f2e03f01e26fe66fc88d0968949c33b53e542e39cdca18c7631988819b64126e24342df55a38b20ed0bc0ec052744f2e36452b54bec", + "a97e8bd1f06de40a4b3e7ea7f0af0ecceafb8472fc3ff2462d12366045f91421d8afe07bf70e1fdfda7519128441885274961006806dc3dd239da3c129747052908850e6c3358fd20532b1569c46130691eae922fab73fd6b8d9848e13c1b9f5def30c036de21da96592e126bba7bb55167deb1da61f6a5797221cfdfa082dfd680527ef33a846b4cb651e77bd469f0b0bb4144679c4bc5e9ab09821647eee7c92cb", + "17448b2f4533d925a97f50f00d17eaf54e685370b8ed075b63b459e19578ebdd66d199b2537b0e38ebb0d1cae1d089f8c95fe38ab81bbb0afe2a65d199df4cc418245338240f3f3f375ca778d29f1f2177167dde6213b6bd84d555bc4c8c1888f7915cacc2d73c92ae5a30fab4dc5a5b2e3eaabec0a583e9d3a027824e636a2cc193667c1ddd065667bfc030560b75ca99399e81234b4a0ad22494d0147b9d0f9a85e961258099bfe7b6aff319d3d6d01c5f6a6597fe254730f9b411720f057969cbf52263bf806d4d1f8b3fb3425e015abce5f4afce381718fcd8aba1f606eae96063b8eb9c3eaf1c38566b7e023f0f229cdcc020fe1a74315a61713f4a924c6ebbe51cbf602cb9ad58f1deb45804ffb9dac400c244965ee78500d91a0ca8c1435f6e8cf2ab96cd", + "54f7a1eadddf22d0fc3c998b4f883f69079dd71046671126a47b18ce3644a061c7cf0bd9627bd8eece742f941155f02cfe40d88365095da01e91e0db5b5679b948d39090bfa63365304efa295d03375a139ad3237ef04d7776f0111693e7f7db4536f80693e0c56011b48b7bc69376fde4c8a2fc1fed0f63569e678e44dc747ba8771b6bb56ab60c70a64f306c61f5db1e319bf3e40c1c06ffb7358f79046757cd5d" + }, + { /* i=6638 cDividendBits=403 cDivisorBits=95 */ + "074a223410f2bf619529b10b044e416d5c613bab24b14df74af0054383189a484c89480914899ed5823a91b1ed5ef1e605d15e", + "7767b8e47963388795c95e7f", + "0fa0eadb5ab338010608c643b840a63bb75b032f6408952bcd4f82a6a24c3873fb55a6bd707ad0", + "21be649f42ff2f2f20d0842e" + }, + { /* i=6639 cDividendBits=2170 cDivisorBits=231 */ + "dd9f9ff1123da2e6c0ad6f61b4b25a1e4c32926eeb20a655a2dda2044094d9f0a96e893c7d334aafd87ac712b8686f0d084d0be6095ac96e710d789638ca308d0c2f6a4dfe6d3cafbffbacb28c1d5bee21c17e6056d324eaf608b26dd4b7b1f55608a1154cfacbb96257ad4782815c55bca370f7952416494ff50b69a6c7dc1397a475e9194051f120ab607c43823a10fb3f7a32b87dab100b63778aa066088213c5713280d10e50262d5d54fdf23abfe106d38136e14470b91557374709b31e99e0676f048e464c72c07f17345671274c59174d719009c7a0c52f560f453d12b38c0b5046390c22ba635705fa5d462eec8730fbac9bd16a7f499c4cacbf9b77e300295c0d1b3df31d14127c756584", + "55dda9f284c04fc1a6566b450be535875322e15655cef6390aa26a083b", + "0294bf3fd818711708eadd57cf543da3fbdea9d58abc2f2c6b2b228b6e8587e8de44d18f067406127e66bcbd8640d536b819f78d86b0669b9e17cd68757247f2925c01a7a1ea37787eb800d87b23fdb77b41e2a1e4a9e3fcbedbfa216c6de8783060adf668a5e34b7bce82c29b40f471126157be1ceef97dc648bf2a163e9dfffe66adbacc9bf935f1540f25eaeebf14dd098b0fb7c72067967e40c64a57b8fcc3f8fdbf8d3d1a6acf3bd3aa2fd9fcfb362b3609708892e20eefd098abce6ba749c88b8647f6746990ec21e16aa949a05fc8e9e7c193e1b02daa67f3271709e4c6c9bbaf4437c703b7c054c7fb7e36b107cc4d", + "122b5f955bf9975f3e898e4b7e0b946bbb2f33fa7032bfeb6a1f64e7c5" + }, + { /* i=6640 cDividendBits=2999 cDivisorBits=1149 */ + "51f52bad35b7fe226da930ef256af1b6477f3ccfbff00e81fc45af25b99c113d5f691e093ee59bbd4de14599df4cf435173a54c958c9f812de96355a30e9d0a767b93d89792270874ffb3f01438dbf9f57f87b76eb16ced5b2eb61f60a69dbad72d315bfb5a0888ded4ba6940caf2c40329814a32aeb7681e5661d4cc941423efa4dd6bc8f29f75cfe0cd0a2160cb72205a54fe83a18a6ab28f424f9e74d8fd43aeb55337e5b3b83b17a22266cf569772becbdb5ff934638fed986445423d5e2de3eb54020f2381fb962d5c9b27d7ec6fdd19aa381acf53daa6c7994c31430e652e1a281c327db00087b02b1edc95bdf01c8bb9e213e8730a45351f77d2d99ba6c6915433a56dbc51dfb7289ad70cea64486ea3486f5250c456833f5590773f1df963a1d80aa870cb6e49bbaf81fabc29495123f611d47f4cc2679e1a6b11c6aca09b6e660d32f15d42b6f09ed630fd4e38b33adfaca79920207d0f2ec2ad256038b8a6e008119782855af2de80002abd1f0962db15084", + "062f1dbf1168569b38d1edf7bb509cd2d2984d5e000e0d0e2ffb746329c7b6ddf817de284f83e7eb285f10d67c505692f41a18039d39a6cec2a319e695f752ea51658cbef6de9cd0138c398f85bd89237abf47646bb315eb5531131c9ca7d383ef607751f7a8e7be010aba1a2296ea59bdf90853eb5efcbdc3721639089de1deb735bf465b31f060d3cede723afda5e8", + "0d40ca0ee41d90b109ce3db803b0d94becc08e7f0f6519a6f2f172de944afdf74a920db4d750477ea8753ac264432fc4dac681add9641f1af8bc74e4e12e6e6467c672a266ad35a7d5c00c0683c6a2fe13574f3d13309094de956d683b35f45cfe4e5b3e52398f7ae5d6bfd36fc4110eed64b9c43521c5e544c0c4eeb97f6341671b4a4d9bda0cdbb8952f7a5536141dbc6701df3ff3323e5809cf5ce1a235e6322dfbe3b86c148f78292c354133c7ea25f2b9242e7e01a5afe01c6aeed1a2657e9abc7215c91f5527f00820bdef86ca36181ae3c85a3edea6c0eeee02fbea1b4c76daa77a2eba08", + "03f4dece7817de6e62151fdee0680bdd94a7d9dd9bff7546c015ab47e960634cc81a747e43131864213e491e377e874137fed956b145c43146ec27742887d7c9e3e6e232ceadfbf5492fa80104cf14edbf16ceebbab48a376e893d99fc0053e73d75c2206083e0fe9ca4e2a5b033559a98af3ea3847c51dd42774ad35fd89dd948f41f2060f20d858369b92bab899144" + }, + { /* i=6641 cDividendBits=113 cDivisorBits=40 */ + "8d3068ecdd086b2ae5651c5115b8", + "080f48cfb4", + "1184951603dafc06da9c", + "05bcdb3c08" + }, + { /* i=6642 cDividendBits=3204 cDivisorBits=1382 */ + "0b55a954f81024b4b0613d219b9677aa0903ca5d048aa2a6982dfa55d82bff2f28c5ee651ab31e475b688eeb1cb1fd3fd06892fbec9a0c81272cdf84d03de044816ba3d879d2f98d3411498f44df77289aa92c7c51a61bf529e61326dbc505ae71496f93a3f720578916959bab83feeb1a345fdeea63b7b3aebf1c0d09d4c0bb8f708feda4bbb12ef5cb41dc0bf7c15ce91f00cfcd771bfe49659b10509bf0ee51694f084fa5c14d3435c1b51737dc1ce900ead59b9556ef387054106403504c976be35f8f2031401c09cfbfc4bfb3111ae18cfc62e81d1c131ee792c7fc9f125b6392026cd562597a545f563eb1b0e1d9c959697be51a6b80d53c62a50186b5ea664381817a238fa66bf35f2603eaf1431755097c1ccadf9d640271ab18a7933293e2ba14ee4762ec36be93f598e6801fa60bc0f03af2b64be0eb23fdcd5d9d48abeffbd54f31cdd7d45439e70d8697893e1d48194e316b3ad69ae45bc1eeca6d2be8619bfed2402386405aeaf0a363b6eda315ed83e93490d7995282c8c5775dc4ab5e6101c93271af60929843b74158", + "3b03e17e0e9401b20c03744ea566f3e8eec556c52a6ec1144315036a497c2684fe28d61d787a17e600d37b8fe5fcd3a2f8db7549115525b3e6d0ad3d441cffd1c0d3b867b56372fb6c065211d9d47a8905d63c85e87bb2d7368643f869f15e32e4db0e5423209ead1fff78ae4e9b73caa165632b458229476f92c62671927d5d655cb9efae67f79850621f0e2f2524f0c50cff656566bff56b354500be920b920b2bded5d3d74ba00448e8f615", + "312b069747aef1656968fd52cd54f2176259ab8c2c0f22c86d5f23ca1814225c549964a1214e22280534bebc1677aae3202fc2a44d0162a6b1f6fb179e4026f36a561677485fdedb4389a6b799423b76aef56c7a5b705a32082ca5282a3eb238b2f1de2b90a147485a229d9739c7e71694878526969db9795fdc27ddb7bfe204ee8f443d30fc031011c82df9b7179194c6cdd12c141f4d8e404a3c77f5dbf26e8ef176cfb759d69649178c5f51365071ffd3fd0e547664ce041c1f78cddf54a8464237ddd720584b138cbb79000e47ff7d8786d279e4b14fb7ae3826aae26898ef645682", + "3848d9d7b4c989f1d01362bc9b0b6c9b37dd52d0b0916f202b8a4a2a192f205e33d45ffb26034182a6b91bf041e2ecdcf64452bd5eeeb77460d501d5d34535ffdfbb2c659ff81c6e176188c61be3ade10d8e13cb9b944ca839599dc0b4b53fa96b308b38c5253a8dd784111d3edbf951b976fb6bddc0484179c9d90d05d8ade49f551c75c054a18bb6d383d5508da83c8f1281b04c5acf257584858a693b40bcb5da40ce4152a542b73f8b3cae" + }, + { /* i=6643 cDividendBits=1046 cDivisorBits=1022 */ + "2dea07608d3c378f6f1a6a25eba3675ac5543a45839ced03f729fe0ba7fc6f28d5820760f8c8b67344e4dda18c94b086e05c9a0c498a9356a5e266bea9addca28b9c6ddac591876ea3f650d8171c930845c0a8a8561cd431a33955ea56e55731de9e5347b67e14b425342c9070d7e212f2535df94b7feb33a90a235f1e463ffef29938", + "2cb5c71c1809564677b7bd4a379d2c030e597b82a9fe1b09b90139eb22139560a4145c114f1129ed6396a66672ea2126c5669ce5379d03ea3add40515f6fa2c5278ab9cf02b4d573163548574208ad42f2bae823ec58586556ee63cd754ef2de2c3eb64b64f4c080c2e60131f96372ca774287829969e9829e6ccb8e754fcae7", + "0106e4fa", + "0af32bd1795b90edddf1c48a04f4f0e22866a5dd05c8c279023b226b8fc3a2aec96089d30a369a29e7613aaddb076de94fc142812e1b34cc6208b9256cc898b385f2f9e34828499daa532bab7ef881cf924b88d63cebacf89060636bc31649c5a6f4000d1de71174299def307a61d95791f9d75a129488236fc88cfcb5e6b7a2" + }, + { /* i=6644 cDividendBits=1211 cDivisorBits=549 */ + "631a9a2e91558b8a3e1d5d8d0fc6f53f0d4361452adfa13eee67015137bcb4782cad9ae722374d9fb666b842f1d59b7b27c358cd3741bfbbbd66607e4e124952a10ca09609ccbebc532908ff230381c6cabe2afd27faeaa21657fa62e3f86ca5d0125ee4673e076d907edc19830bc06ba418d2b8f289e4fcc136484af4845a4a3506d0c269c96192f2036c32edbb52f6b799616467f5c6", + "07de74c9629bccc9e43135a31676276ed0d32ff186a817ae139493867012f6e75ba6dafff4ccf18a5c991ddc9fbd98bae9e13054afc6a83ae6447d1b02362c6e3f0cdd0bc0", + "0c9821fb47cd9a7295375fd3a6e8e7cab5391497e6718f0b380b9d687efd3bb3aee9360693e806a46bf753fc7fd816bf4c693a76cc0ff2a9f50bf3b82ca713e20b4b3caad358f2557cf69e5c59803012439c94", + "04397efbda2ffa0a1874c33faf8546ea3618f824751218a4c86a0a9586a5a9d80f3864841ad50920c3f964ab973b28e920b319df593b18969bfe0a9bd4435f5469ae342ac6" + }, + { /* i=6645 cDividendBits=3371 cDivisorBits=1612 */ + "f1ac4ec35eb55adc777c169b106e14ac0e6aa26f68b00d0ff54991ede0ce904a7b66002ccae27c4781e4d050146bb3094d0a8fec16dbd04c73fba73926665703969f4240a67b4256188cd8be7b31f6e32d52858454ceac7d3c33c9d356b3e6781974e1c6979be64bf440cebdff1a3b75ad7be2e70acf9d14f5f1cd0bca98c44427ddcbbc0614be982af78631c9eac0ff34c3a01db2114947cf8135552c873562d025e0e6563089d05a8e275cf33d36185f8f9457fa1082845370452979512803d7678e5129d6d4ae864087fe7c32574869de875a6fcfe7e002e6fcc53a57aedf5816cbc1f56f4e11bd6bf462d3e27cd00f65bf4f607b06fa4b187e8d1e78fa7545dfe10f9803ba7500e249f41acbed1415fdf93263f0a24921080095de3563d033ee30f9c4bdc676084df0a85b45d18befc01d4a2035c3e296fe0807e7f08321e3957c47bd79192f23dcf2297269f30205564e1946187e01bd61152199240757bb98336a702e9e8bae5c101e89b3f743d2e4ce30abd10599542bc34d97171308fbc3d889a06143f110520d180707d74076191f2bdb0f7bdc08e373fae62bc6b5b497bfd39c", + "0d07cc21c0f80242f678ec4278ce79205977320f425e980c0de9e65aaefea742a2e7c1ce7fa275adb014d447def494f42c6dd548b4fb784ee78546af8be0df3c2e265480269fb165bc47bcff3094936d3a50594e4ae714cc6972e41ab46087675c44a93985a540e5493204ec7d01572593474457bf159ca8439ad3ad68b072c2057a1e87313ff8acce93b14019e171d933c21d0c72e844551925c920b4506beb0111f1976c753271cc78c2231f45f3d15a490bc5990ce92daaa4f18843c3821449e22f2c886df4e73926", + "128bf9eb22b58e1bf2fe6f45969c2632059800e8327f7dd23d2d755c6a0109006402d69ef331849e5f959b0bed5429980161e272fb544ad86d5f8626fac8f685110e76c4b8be692e12240632f977d1aad2ec08f0f61c5a6bc4c608db30cc94a3fb11cfee1788d6fd669a07fe886c673d69630867f29881c601af9631c3d5b178d4ab12c046927e12fa31a6f9f8fdc4bde769c7799a1dc52a8480c4840cf4b9d7ae8b16ebab30e62f08fb9d2b609d34f45dabd82d65ae119351d1f5b1d4524195968640a5d5b5bca8b729a78de0430a513ca4ead45aa48e48a4092efe", + "024dd42a79daaa41958d15ecec08c42958e70cf460a83332b2a68e91c2bae2467f33adcb75edf08db20ac48c5dc34b00aaf1fbd160cbde1f538bda5c65a371d9d13843e38741c6c29778653f382d69894e5ec51b443c683dc450de873bc518cdbe21730ecdfcd57e518d13669b95fe84eaada75851a71c094055b7ea8df6f1c19cfe10bb5f2b3a0e43aa1bd4059ac38691b5f5cfb16f0972a850a7a749ae208dd415f4580ef86e8347b9b2bf061c1b02553bf04b45a3f93abbbef0f7aae6fa123d95053eb32cb3ba4be8" + }, + { /* i=6646 cDividendBits=4089 cDivisorBits=1851 */ + "6735616549f1e9c9a23107c31d6fafc6b90c9ed495c4fed031d98775bada90040397cb88defb8562e5b7b3baf9caea6bc2aa6d41e8574b33534a5d858fc60c78c452c1f9164e87ff7963f486a0b3b13b46ea686c4455f7bad828a9290a0fc4af0665cd112a78c3cff6cf1f328c89bb6f9cb595609b2e11500529bc66b5493bc1b6b6c76e94476d6aa78fe294cdc1ac57c0af3a8c68a498dc69da7225354d70a440baf7602a0869342abb783ac389373bd62a90b51ffd9087fab284bcc24a1dbb0295800ccdbff2c829f51813d6c2be5d53921ed74661783af2cc0c5f08aedadcb937ce9238247069c0a0a354f60178ab738c3d7b8870c73b4a6e3a0e7aad4a4bda1cbee5ec41c797f87aac517ed9b86595f4ddc0091105f76f0167a387713cfbe8c666525b4e3337a2e99fb8a3c08aa5bf4fe7167bfcd1e143af2c3209a9b073638efc5f740c7ee4c28ce17050fbe0ce551873a24f4b711541bcf77232433c9fb25c776ba086e28da1d80f41ccce4a09330f9eace59089b2204d6c0477446bf360cce78a5d1b8181a8bb0e69fcc9e2a774ca88277657364e1b18cf86c55b535558f1da3e671dd77cd0fefb34cb90b97202c593ea45453425047796fe474624bda385ffb7a531b91eaf3bf199ed624458f89baf613f68e8cbd8a87971e449b143e12a21774e098e4f89b1f15bfe101ea2b30b95e27c68b6661a55276d2c3896", + "05aee3a2b518a25ee9a5a85401559c1b6ec73f240b1a334451ac4dd9c5b6a6f8b874ae0cb952170291f7468e5c674f383e4211cc228dfaa1e7ef17ccdc6bb885239a65cb5709174f2807bf22737c575677cb9b257d1f633225704f63f52277b6e4c2fdc3dc590222caf60fdb2a128579639fabe2c287c0bab75eca93c756761f2a885cc3c97478207b50d51b993f87034239a71274fab372afe3ee7642b3b531f884b6356f40102ae2beb462838988868c3c5f18c19cf891a39a6ad78ca19db0c9e09715b469211bd3d6191f3a02d86e9955c1fd9d77acd1d9d372c990a7c6dbf480ad9447c8b468", + "12291073a6f23676b0a242aea9f8ea4029419ac35f84c5171e2967757a1545058699738548201211ce042532179d413dc80b36b2260fbd57dfdfd4e64eb070547a3c0c2b08c72c8947ce1b0441abd19b1fc52f254e255a6e9f17e3a71ca8e12fd34258dd3d8f552ebff4f2bbffc7c3ee1f74709e1a60dffa70eeb13c5de0e0a6d9934db18e93ad84b8507f0799953b596316b6ea969e7699b175c75288328ade86cf9962a8c7cab2ad50a29e07f0078a55f7c2cb0b6247a75c5e19d8ec645dd9d8ae11fd1c3dc5866875f2d18627d313b5315ec6aa865f606bbcced4374844129633a227788093cd0871409fe8f77af0d0ff59a83d5132dd63e517c6aa0d619e29c8536cd5db5cf4995170e58c45a9e4493b62c9769d341b", + "04c2c2a300ca313923b4501ec1cb97d2a28e17ac71869c3973f58f6c13c52941f14637bf91e5e8e89b25955ed8fe9c3203b1faa167f86e85f82d1d2f8e96c25e458f750c6da86407e794c5da92cc311419833090004b99211872bccf3ed1824b13cc9f9f7b38c8f6ae0f323cbad8e32b55d5a93f67ffcaec28387a84fd175bac323a3d917fa6c111f9609ad55a07e0b23733ce7e2124c91d9f5f273ed2d871095fc276d68d94228d19fef24cf398d17587dd530e2adf88e4ac83d0324f7acb14b5a285edac8a60f07d274b2df83d8fbeaf03149160d4f7bb34bb18b2c1cc56b23ea1e9088294119e" + }, + { /* i=6647 cDividendBits=3174 cDivisorBits=1011 */ + "247ec4705145e54a639a2406c5b88f70f2fb8f3dcd01b67e736ae95f80aa20cc0d9e396ddb18e18d6f2e5f50a4530bcfe75e6e3b189773eb6b63b1bb97c46d2b682bd02a8e888e4b467de32926f4ea946ccc8512ff7ef44cb3c7f00519e4020cbdd5dfbae4c4b1da442f8148d64ceb835acafcd169bdf772d36ab7d476f71d9a1807480e56e8b84e7f20123cc95e3ffb9ee9ed3bc40771e84a09a86d358171374bcb25c30d6f550a363009cec11c53d7cef95c87084a0289d8ce24e6388879dbf1c4e4246d24b095396ecf89173afa70c47d7a64251c9af634d66971e104871796fbe4be7e2ffdb4002730845b6cf02b85e3c317d84a81b1fcc5e6bf72d7acbbe2200c35a0ca4ec5ac505178a90d46898432d11d248de715217599db804f8fce901609b84a682e4a30ec05b2c5403dabfcf602d3874c9b7cb0f6c3f5a26070693be350bc327c9689c745cc148471f8b11b44b679bffd8c6ea54d35473ed6947854548b7c7fe9db4062483656afc54b9594bc7d7f8937633544b59619d5e404ad04f2e32e0cb0207e1b9415d9c3", + "039daf06f99a01a2016aa6b8898cff4e07d73b57ecd444a1c1737be25ea1574ceb13f3037db823ab3c65961b002132445a382c9c1671eaa2e4af91ca96b6851b4854337d23f7cb82566b135dbd7cba6fff8d2d0a3c985e1e8b70dbde5e41b420ddccb51d576dcee330b1a8ec2d4783a16bd91e0c55e483418d2b3d9e84f442", + "0a17c3a4ff16f83cdddb860df27a295f0a3b5546c8b4734c34e3725b4a0a225d5d98e07ce498798eeffcec7807a003da3dacff5f50335857d66d4a9bd2df75b2a13738da76ca15be12aae2063627e0895072bd57511efdc7650aec88fcb06dbfdca097c13c3bda7bb65a33faf09bec4e18c510cb06cfa4abd6979cc9df8735e78806f11fc5b82b727a1705695319b6df9ce7d6a9136c5696fe60057ab7c5fe5a25dd192ea8365d7de66eba51fb60312fd092a9fa3908e6d1eef1b70a5a1e47f2521b69a888003bca3d2b8fdc232f3aa966abde4659e8e47fefdcd13cd372062b7e423ecb210b442946bc1c01f2206666e3251ad7cb94d5633d217e5ba119ac2f6280e3a868a684280932af5839db9c", + "a2d5facd8e39828826921db31ff039d54566b4a4f1077ef4dbd147819ca24f2e4a3b8ab289ca982a448c8fbf91e1d6b7484608ccb24394e36cf09e6f9e488f88f14a2351cee8ba75c4d6d03a5b8e4783da4cd1c2954fd232c0a975964a1b86ad9c3e421e47c8c1f15519f9ebbf50d63fb1d6eeaad6bceffc91442b6a8b8b" + }, + { /* i=6648 cDividendBits=349 cDivisorBits=225 */ + "11a332fff5a3278fdb9cbe113a51e40a2f10a37fd8b055f07902c1e5ccf7be0d0b62db37f7225ebaafee636a", + "18e3e4b45804173c40c7eb0aae04e67dc730c7b2a2dbcaeb653c46da", + "b567963cb340121a916e53a7cc156cf1", + "18811aadb7ce855772145e6406ebde088786220f31aacbcd6c69b830" + }, + { /* i=6649 cDividendBits=3773 cDivisorBits=3060 */ + "13b51b388d2335a47b92c881ea4fa97483c3af3c9f80db92dc6790ea60c502f734cb01ab1df5323b10c9ca6c423760656be341d179068d1c6f89ab3189461d940b99507cd1fc2308d54f7a77094b87b459b8d9ee0e4ac351f3f4a72ce334111fcb208426bfb265623184ef2eff176dc4687e2fc091d2d3a516f22745dcd1e080b2b340f5b8bca683579394caf422989826582ba54621ad41346dbb87f6446e3107b94ef4845a0b31f582522974a7ce49ca3ddb5005731d30291eb5d5a86c794d92cb3e6e313aa114eb63a33139adf41fe2b3bfcf8b9e46e1cac5afca6f89d40ffe017ba7cdaef4e17d9ab1f0e71a7716b010a7a060300d9af0a0f76938facfebeb0643c90bb0b22a92f28f35b85f0baaaddfd34cac2255e6231384c8a6057b93ab5a0f54920f3400ea3bd33dd0941d9301c2f841495e93dea1375c7d9302afbdbf885a67f5006b44902f08f5a1f8885dfe1eb1f556d41abeb48dfa1676f7204cc0cb4f2669d5a8ba3e8fcc0cfd7b9bd3e55c091e50e55af7c44072221a68702f77fc85a94d15290a37f2b4e6c5e5ff54baacc8a4af115bae55f4c0a954d3e3ff0ad51a7483e36311fcbe875fab68572416fc36e8c0b75dc443c62efd707c380849482a4eb71d71d8f5342c936196b3ed709e3a9402fdd85d", + "0f410a5c99a1d9c7a46ceb91a7b2074279db213ebcbca74a1690b155b0120acae47b075bacbc298f9c4cdc9bb6b3ee75c3c05bb8a6adc9e8eb60693a9478d43a765fee78bac60d6584f848ab99bfb4617861d6f0e190613d653a71419fe81f1fd844449e1d1a78330824a0dd72f9829234a4bf0eb9507416ba7836fd41dd79edfea9a4f7a1330207ce3496cd7676566c32ad210a01b449520472cd1da1ba93088444e34ccdb4d26bc8297a4a400552e3302707e5ff28ccafb49b1b1d52689c7e5e559183db037ce980930bc4a14c62292e4ce45948ed68d98a68af1cc988991c941acd6e083ba29cf1e22748dcb50f6742d005a1c93b7f89578e3157e04c381e4d8389d7e55935b0e31ea08b05af6e9a346c3442efd0dd2c6f5781076d7df2ab3505f363b246ea2563af32af853aec8df6b60ce100288fca88b067f06140132198d36ca413990af4356e38bd6f1c4a234b715eaf48d72f2106d2862568148f5df7f2ff4a587fca27af844486f8cad8a0865a37a8cd2cffc2739bc705f60898", + "014abd0e31f6f5124d82cc37920b8f257fe27c7706ff868766cf3354f864fd682d02d79ba442ce431159c0f106287d52300f261dcfdc9d26510464e73a5bff18f2b65fc18ab2ab8b191c1415c71ce14d83b0042386fd0b01b5eb", + "0788e49db6f7a99b231c2564e04f7149480541d8ac6bad74533b85b73fc80d8693b8bd4069e52bd2c262e52c7a95031a14efd0503c907fb15d19063ea6bef530d86c716bc63fdd211b8d479b065fa1a727e6afcd88b738aaa1c06186dcce27d40d8f08cc79cfaa2f11333226bb6d6be387ab3bec78ddf748a7728de3ba63fb45eda85a4f8fa136b3ad2fae20e771676ca4c1505d553803c92fc355e0c6766d445d62255b1c4ef0e45811f257c64d4591c7d1ab7f033c3a2d2ee3988e409b01c548e844dbc41cb05489cc61f4861e608a3c06b778351b91ec2ff66ad535c577916e1c3560b13acf45d85280337cabc376d915d4b9831234b1845dbb2fded6d58b0d8e0c0bbd2d409ba951f8b2ccdc264a2eeb0698e325d7a1a750a1fa61ebbace3125fe0d3698fa9e9904170b5f9d9ddc96ac56eef4bc3e6850d11bed9abdcdbdeb80e776a911781b5c87765b0271f3e5723983c98c6d04efc92b589f9c53d97ec711564f10c6ec07f8e155ee97f21163edb88decb65c6fd0e3dd1e05787cd5" + }, + { /* i=6650 cDividendBits=3568 cDivisorBits=3364 */ + "b98f101e4fc093f77e8c8a3e729215dea1dd549a3929746f387b19856141418223d0a89190a385c9856012549d2cc07f97d5fd498601e9f96a80943e2ee8239ea147dda97a535bfacfead5df9d4f89c2892301af735041ca808599866ac5e70ca4c9b77a2fe5d8b8bfad1a204400b0ec643cab3e8834ff3ca1f554c535721d5d591d48df73fd19eba1ea59b60f3ea37f3af96cdacb9982be8fcfbfa4404823a16c0fe4bc03fe7421a2911f1c7bce53470055935746e03164a44507992ad91ed369e639977b4e98ed43356a7b1d01b29617c5b0b231031c344f03b7e35ecb9b21bb217eed2e2e99c1b184df60ceb48b6de40be115111fd1cc17ebb06e2617cb81cda1a205d8a90d33eeb711d5ca92da15a5e5b9d576c234f3afd3822b5866265aa4b840c8561cad84fe6c13349ec73703e3f2820cc9b01b0a84bd00da4a5bd72e879ae2c0ef83c261b65ab254f286f09bc781fde2f29d647ae829467bb8bd38353f088d68304cdfa0e5bf87884e6f225fd69887e72a7e7f96848ab814259fa15c06f06afa8ef6843983c752ef75d8a58cfddcb054131dcce12bd1c8695baa11db8cf3edb8002dc6f56975eeb5485d0303034b3f1b960f152664bbd0de9cc9", + "09c925c8ad0abc0ef30f9140d7397570ce802ad571ea32582b248b290002e2b0284a2380ed2f1400b3167ec7d4a643375a9db48f4bbd83c27180a8146960afb87cf67516d49dfd825c68c3ffc4fec785bdc70a23b5c41a1088f0b35850d05641fcae930d231d208c14efcfe96c22b29659c8b6b7873fd16fb88429ded9d7b1195bc042147d88955874896901c535ed1916603c1c39f785529ed6ebd9b71294a02423d242f55c3b6d43ac9214ce718fe1cb0d62661284cba6df725863866169b2a93f347538689350dc9825a5bc01aae57adc3329118512b3507effdd7dc5454271e48becb5b1a150ed1579f5c4a180fa0ba53be316f2e70aee72b41ac3b8f315bba4b21d2fa6a9030976ca9ff4ee51762bb357a0a7bbf7d9f2e8027c1527c8c4b0e711f0b5c7fe5a06efab60ae3755012e420a32b0ba5b196a59209a51abe23fba3bec41e75f46cef2a29c0ac40b171e49313bcd87c4c80fbf40f289ca73ac367fa549b2b01ad51b8ca810116547de8e009713bcd633027d6d912d920c4c59fd4274139c0313b6aea74e18aef7ca61b77854c1c216e4a89d1e8c6eeec8510d834455adf595", + "12f6518444f37ec1d956f9d62a70ab1e83e446b26c5a929a6340", + "04ac291db83aa57c2c36dc7b5317899a2275acdacde06af14d5b90496698e38c40a3cc5a5a5196d0f9d0870120de4576b358b2069402cdf50844ed617b34ee5e1ce287c49cdade2babc3c51d83cf4d6433fdf4dd754a23f38103f12d082a1c6bed5c4f93dd5dfe23948e1a9b7a517c8cb75d8b953dca4e5d6b542aee9c1a38da471ca6fe3ed7a00b30ef7f3958f52bdafd80fbf12ddb37959dbc061e3c6bd6dd804c4b95b86dcf693c192577a19297389e53ead97204e74db690025e5db07cd6fb72fa4f28b73bf2e402c12495edb726d64bb79340a3360af9c8ef295dd997daa64ba5ecebf461e99bb05eb08be2cfde7bc0fad89e43a27c2c4da1d4d9914c27738e285c422fb95a2a6edc11ae0bbefe52e25d1a1e63bedfc83c0ef77d7e5a6274ea8cc498377bbd22db75b74ae578fb78e9b92d2d7c8aa3ac48c06cd1d1ba1e01a67f6ac08edd1f6b3e7ce46c3f859d247d0c3033aa7f766ca61b81b1549b0711c75bf8a210b5a8a26e24b7c19d2a3562c991b2be242b10e1eaa6aab3523484a8a118db3be1b37629cac4863238c6411ea76020525b0ca935912bdfa9a5ac336d69c69889" + }, + { /* i=6651 cDividendBits=771 cDivisorBits=31 */ + "d73646f795b3d6ad0043bf48507651528176fc1842cd6325ec715c2f12dbf9ab5ef052dba5696bd801b2c7bd5c5f0dac446bc308434dbfa99da100ea1a00eb95a792d5261a0e4d2d7d15a61f642a40cec36ff9a532576c3e9c2fb2117ec7bf2f", + "039a8335", + "3bb8d3dbe0fe1b8179fa978b5a2d58f97fd34664186fa9a26e0257cc42f590fa43b58cc1422fe84b955c19753ec78a2738d98ef9a14efff4b1d1737bbc77a1b176a3a570e29443dbec6c99fd40e2bd7569d2e284e4a267ca199f4dcfe1", + "01f1929a" + }, + { /* i=6652 cDividendBits=631 cDivisorBits=258 */ + "4f032d4c23cc86f33e6e5813c7bb4a3ddbf426b8ba93047bb756e439a9009deb31f020276ad6c751b5ff0cff32f2048f54eb8a737ff73ec9c8c31c4ed01142e1f780b1899788e0f5d17c34fcad2beb", + "01c9c978b762322bc1289651a0efcf0d2a47b8ac9aa5426f81f4376d6bb6550164", + "2c2f47e47bc65a7fb005ec7f0354a9b324f008d793f22abbcfbe5476b7b4fadad92bd2bca80386c48adc2ef6381023", + "a69ebb7553c5fef7f87cab7a1b81494034e3e44dc4a4fc4c8a41092f5917bb3f" + }, + { /* i=6653 cDividendBits=1036 cDivisorBits=976 */ + "d6dd9815d8f4217532e0c0b0e6485fe0cb690802b638a7a53c7a55f3308590f39994008c72503394ef21a4fb23d8c48a50309675cf9b535d9d49d41d2f350abc4a606388a2e7c327230256ce3974fa8cef00b71bdc7e9a96e1c6f12d1c31a57d2bcf9042e1d50348ef028af1c86876d1a3af1a37bb47bcf75d13ec7990964aea1d", + "82973e8d6f966c31943a4575c144c1b0a40b89a483bb8d65fdebf44c9da35f9b6dbac03085ce89dd4c77a3c22ec244d8771937eba6dd4342a7a783c646889d617f2f66862ffb3dcbd1b948136f78109bed1ee447587b5030759329a3aebf8d2d11f1ea1489d94e70884b194adee95b87184b0a8ac3d1a37512ab", + "01a534ab845c07db", + "2dbfbace9853e72a354fd324d450cbdb13d36ef26d10ddbd4418b6e96f0e43c67697040f8734f63df6dbff9f26cb5ad12bb5c56a0dededda753358af70aecf6d4f4244a254dab50efd002035060f64800b99658f6672b1c6b7772d8a7aca6a3e63f9384ef997d662a8390951c90d9ae099472207e9d5ac2d44d4" + }, + { /* i=6654 cDividendBits=734 cDivisorBits=536 */ + "3a4da74a45a8bb1958ce9d7407414b1473779ed2c5b504cb04e17a66013277dbb37b069ed7b47f0f0842566259f071d399723d037a6e311e0ca34456404398f8ef26707f2bbb4a6f41a44f671eeb9125faaa236e5b0364d9c06c5ae8", + "7d45f61cb0a5ce216ad7c0c22c861c94b12126f74e3df8008ac282ef50b3fe3b8bef911e2299ab05902a8ccefd15908d0375364427b7db01160fdc8bbf98e352b704bc", + "77250dd83affc5975b53046a557ff4a1804dd56499eb9d594c", + "08a769fc19d76a2af300b3a8c6c653f12ede0b5d460069a76d72379ba93898511f10c340e5f834dda9292ecd7875e55c90717358aaeff89f2286a667fbf9a916259718" + }, + { /* i=6655 cDividendBits=241 cDivisorBits=218 */ + "01b7dfa824d76aa468d00d4319dd5a91aa1363e10af4e7daa012005a210800", + "ece4a27b4c085f3ddda78bcbba9df75496102403f7363ec7d61b0f", + "01db5a29", + "5853f8a19232c68d4fdf143b53e09aa0825a0ca879856cde7e6c99" + }, + { /* i=6656 cDividendBits=785 cDivisorBits=160 */ + "b0b40eeada20335a8dee837bfd7e7474bfa8dc7a73d3eb00bfe4637d72fad2730de59a18c7f9c0405eae2a36263cc72e447abc1ef5910d8fad4053ff88930173a953984dc697f5bb34722503e6fd6c4a568dbeede694dd6941977abdb2496e644100", + "cd433d4e85dbd7eef9ed0d4180cdcdf5d233edaf", + "dc619f5548417f299e0c53c747761fdaa971ba25f69b02cbe0245011d91104cfc368b410601e57483798198215c4d43673f58e42b62ebeda56a05e5ca0acaa92658f803b861af663ba416d474590", + "0f095ef4f0666f20e983f6dc963bae51c3956390" + }, + { /* i=6657 cDividendBits=1348 cDivisorBits=721 */ + "0553ca1daee03531d760d550fbfdf1b030164aa2127415195b9bbb0ab1be2e0de79c80f5ff38dec9d486356cc5e4fb930b0bfe58569405d29a918bbac86b427c70e6152eee071c27ead4e9d02b28a6a6743ba704a47fa1da24cadde4d024409448caa99d5640a7d73e4d5cb9f6ed50cb2bd70dc4662715440a447d2b81a52aa84565f1406323bbd44e61110555ab3ffb199b1d442168035eaceed0297fb8b8e7dcf1b1cdebe17946a6", + "b8f107c692d35edfdb4f7751ae7e4cda6555e8fdcc5d5bf04c5adcc48f1fc478123360b92bf44e126d68318c5750f87e53e25736d1b98d8fa172875a169b31097572ce50b3453fe49845e9eb6f34f2737325626ed5a40bde3430", + "075fc958c215bc31c59c405a28e54e65d47b1d930c6d246f4bd5e612b7f36e452c039ef5b246a4ff8a717fc89494ebd22a7a42bce17fd79907a700383ffce63869dd398fea9603f0748f838cf71782", + "02377bc542fd94443526844b9da8f8be96f0ca01312f572487d1e7449af9471755ccefa88db763834a97b5460b6febbc27d2f287751fe1d1f86d9ea63e110e7d673fc7546ed28f31cc2e93b2e704f447198350d7170e49a27646" + }, + { /* i=6658 cDividendBits=1928 cDivisorBits=1495 */ + "f867a5fc17072f0367a0521e37d1cccf06f649a36902a1f23508061a702e5f9af5159ed055b8d4a6ff4491f099ca49c35cfd22abe3c336554071814622586def65a145aef40af4ce02db20dbc1f55078efd864ac47143960904fcd597ed90438a4f20970764c3c0ea3a23a38844ca44a34a1f2ed2ae70a15a3d381f9cfc643244de8a6948a6109c8ca142a6fd6e2c400acb9fa3792a79875457d131e677157861c98e2e8eeef9e06c9ae51d3fffdfb70a015801400f6b11fc4ec49540fd8dccbe4251e623588da404773bc363811b74151d3d4fc12e86ca427d8e98e301a8140dc5373541e80d8ad7bb39f53e8f08fc84e", + "6cd01116d3822a94053d24947e30c071d36e367f9fd920e57ee25bb31fe648c909d56a3a9accd8e7e1ad6efa61541dd51ee1117f48e192036e4680a60b4c2be993b8499216fd54d8668b3f45baad5337c496715cf752c548989749a8b78a0ce6d84ce123bfb51ba194d487356398761062c9e2a5caea0244aaff097e02785d946983f0ac756c2063a734dfe699125bb81fda91cd73d36d66b3158f683400e6cd3e84223af771313a852302e3ead0a63d0b6965c7aa2ed5600dfc28", + "024869dc59dfd55b416e872d26808965835a2671879d66323e6036852b593c72e9795ba065e708d853a1726b804f8f88180bdf737e5d37", + "4325d420d10f746a5b7e20e54282f19e0557973e5c4e4b7d4d161ae53fd08e43d2244dd02e483be1ef80b8e089d30459b373b13875e99005f6c6aaf45c5cadfb510738dc8c924187bc51f33a6e7b6a7e55e65a24b11d0c33a14dab73a27231da022d15de69fab4d7721a532f7392afef109ec5cda28b89275efaae3f198b35c478c578948ca2d535359bac817c041eecae4e93cdbb2dc5fa901317b035f66763cad7403ee76a350164208a57bf4d28e466bdabea1bd22c254413b6" + }, + { /* i=6659 cDividendBits=1449 cDivisorBits=205 */ + "d61f64cb40a7842bc6d02004cc5ae836fcdd3923f93386321e0e0f8a68bc7f22d22d343d7d28e880060ba447d7ba43d809bcc6489c1161205a8483274442a12cc23cbbfb9904c54a01d8a4ce570e84896312a98b04de0eff7ef8ce78338aa913bac699433ef404bba09b81456132dc5572425d4865a56c4af1925cb712c4c2575b50d5ff9c2268c784c9af55052ce6af98731a6a57440ee3bfd79e6fa78e2bfda91d1a045de4feb7ffd55b7bba4e988ef4b30163e5", + "0e81df31677232caa78c0e40674ba04e6d166cd403113d21f07e", + "0ec277742d24d7caded5d480692700e1571ec165dc2314be06623c73bd00dc76ac200e70de714f4fa9b841ee8b5aac64509a5258c55a9921a7d955c00b0f34857c23c1d1069386267dfa90d69c0ad0be87c7c42e635cea2f844370569fd71004d4cae39be8ffc7f1e28f289f615217c7687bf3742041c9a14480a0fd50386c8bab73ef33d8ec0a647bd10d867f0d0c1d9d37972702359e329c9b33a2", + "01c6804c5bd2dab1ef51d83a5e0ae6a8c76c2dfcc028dc541a29" + }, + { /* i=6660 cDividendBits=2871 cDivisorBits=1883 */ + "3298ed0ccbbadf195dfdd4ca9e51347e2d7096fe449b97d2431e66701ec5f8b26fce2da614f8c7be7f0ccc51183cd276c77cbb83ec389448e24382bb22094a4612bedfcf29566fcfe390f2f5483bc6def0da13abc77915d4985eae8a37e70690136415a0030c3769b9247994783462c6bcb4f234cd7e9308706f0c732ec02124bc68e366423bc48e4617bb52bfbddd9ce44e831db568fa66607296ea740101a4994a2c8420dd61dfbfe83b6187d5c8672e41dce9eb2165a713c5f7d64bcc3bc9e3be6e909f4b1ddbdba8b00e1dc7ec3d5af09e1b41ca6532dadfca29c5e9ddc124b1ff7c3e383f6066bad2c7b1f8d99be5e158a9991a728ab323d13889f6086ed679df791ff7ed9ced20de77242cb1efaeed12e8d8d825159374cf152b2efc4e61100e7b754ec6b7f80768db94ab8076d7b81b934578467a1029788df5eb07fc448c0946ab19e82f2c73e909cdb26a7efb499984c3a8b3a742f8a8d986dfce181940673f7ccb2b", + "0439b69c668d7cba645078790be3595377874f7af6894f5ff96fcb0135504443bb41bf964989739dcea45828e9f1d75ca698fec0569d03d6166731a1a3b2469ba7e69004c1d0c6ad8ac5e13b0db8cf3e02e59fb6caef00bc78eeee26a12c52f6286debb54799a9a83574bfa893ecd168339b808e8e079002464a86593ad7d76f5193fa5851fc86f2478283303df27710b6080aeeff6249b2756097249212d83bf9c3aaaced9e77d8ab77aabc2e73dabe290c194e9b0f651d1b3945c65c730b77319cde692ced40888669f2743d9fe8fa28cd19dbb272a2d222785276c4d37d435ace970392d4bbed4c88edba", + "0bf975ca102bd475e83d0f4937b9df57123f47cc289be9c7fe9bef0a7be4f916e18ec18a43df8ca277144d1dfe1ef9e1efe325a9cd002f28c789c5178914fd230e1542fd517d903f63ebda5bd3f772be016b9096bed8e16e0d1de99d43b0eedeab8ca94cf62fd4116d7b88b9ee7f304f5def0da4c92b4c9f7bba720a", + "fe42d092a29983b27796fc5e89b97852223f37d39e614661cb4fa1d70bce3af968fc6f00bb3a4ca00e0cc6c8ec19c1132a64c93b29454c665a1c904bf200e5d6583bca46964aac6396f32af0ce6da73c8efaad1248ecc2b591249664a27ee7f4b36f85c505ee4be15a69345cb801013ad8676c53df0e98fe07d81b5caed3364a0de68852cddd6f269b85ff6995ac7a1ef9e48f4ccd2b1a24f389ebf9c160ffdbc817b64dd2da63ad5fb78c6468f825382ec33a09756943008ab2bf4d59301e2b2fcf235185dbb1b93f87a332288b84cfd95caa6db6c20b324305f2d7596d5623c13781ea0df8d23122ade7" + }, + { /* i=6661 cDividendBits=3414 cDivisorBits=551 */ + "39a257cf4c6dd205df8d65b981032db258660ff6dfa284f857e387b2d878bacad13e93d9ca0b365c2e95f6f3989b0443e469a3e0fa67dc231921566008a29075ffda39fc3a2c03b20c6405eaeeecc2cc285e2f2c96b6d74a185f2c47a0738f8e7a4a6aa301d889dc50ceafc2cf4f9afd97e55d439801b04bc4f4fb54e42cb8493ef07d683baa0e28cfa1a4504c24ddd12a42d94834560c036c87a6e35552370c1f312fc3ce8a035b1ea98c2bba4407b3e51084672b850b03c08180065f2d734d8a4903ee665ba4d6cd5e04bd9b472fc3bf01b60fba32bfbbbd7cf58fb8417b9ed1c3e6f4db81b99cc3022edcd874169eb90e0e0b02ea953040cecb4b9d1adf58814fe1d21f06d1255ed666b28f8040091ab165504ebc81052e9e5b50f4ce240f314fb912fa2cd544186616e59fa45090b6b199cc35f56d06b7150f6bbeb4eb31f46e8e6446c619f4853c74bb982be7bd7433c2d6636ef39479327c41c95c377f7d2a4b073348d63259938f2d1a7c1562227f56d8dc54629d9aba9af9fdc717e874d252832a62b6b7b58b62912dd6895cd5e60891fdb68a1c6929532ab6f0bdf45991816e649177d8e4be6d", + "7e2c007d4b3ec9ec502f345e415bcadf5f4220fa67f41259470c1f380335a5358963b38d0f9a484a3a4def573f9f86f8edbaa234fa99d33516cccc0d7c72ea71a73322b143", + "74f03d8d2db0746f2935c9494fd786f72cc6945401b89c028c0934f5aa7c50cd38bc0986b4388a1c18e9066db7255516bdf3e2a5bd4b31f8e34be3d1eeb0fde5575258fe0ca200e6110f652a65ccc7087e9d7506938649f21190c03a125084cc94d285e203b530dead272984ccd3102d2ca7ad314477db27841e36f13b4ffe8508a4327087eb6f20cf5ce5630f580407b4ed42f532e2618ce45536b85c6c6deea3968c1a2f7580dc77286633f474f6f5d34d84bc2fc8219702cfbc2e2adecacba01918dbad4789b317007bd8e7f6a16dac960deb80d8227f899f95c753b37d173fae5e2a6c3b73fd3efeb17c46adbdca92f7128f4ec7f3162fa1f2422ad301a7c7cf5ceafa04681e3667241a1bdc19f014e5b32e41574cef175e6af69925d261ea023687f5bb6d1c4091e395d89b357f0b13da88a008807c8d3d36c7071c436f434e0351ae26970ad0e326e28f1a30763ece1dc262008c70e272fd3aa3069dd8b9a0cbac6767", + "773af007369ee80735d8bd250c330a212f88087b731aab6256f269eb5b2af038e03aa2e359404b3efd2aa793247c3fa04f9ea917acd75fd1ae5e21db8d3d237ee016997778" + }, + { /* i=6662 cDividendBits=1178 cDivisorBits=840 */ + "5f025db08090bb85d6a2bee33f3ff427b6cf38f08575a39b346c47ffad6aea45711ef5ece73a4beb4ce1ba5be8d9a995c39b6e5d7fb6a6987cc5afc638d3249c2bff8a3c98438c5c6f5bbd703210b40d6b88eff992147cff3b49408fb27801045ddb8b35a0315dcd9f9f50ce4b0380386366fdb6168a5d06341d924680eeedfc6f61d6d564edfaf3917574852288c8ebaa4256", + "0aa6bdceb3cc9e947f96f2e9e4457c061b270b36bc22d5166cdd33e932da76ed9dcf38232112ed184f4662d5da4010662274926d88b78857fb8883d5ba2a7f68e860b35ea9289e292e7df029c8f06fd5f63541782738d8b6c48c572b099d7d591f98f15841088ab8bd", + "08eb81175464e0dcab47c049b7811bb02edb72c499443b9e150a498612ba5dda93f7ea4687c0cda2feb02c", + "0a2047e835f2b9dfadf461206c889801d03eec2c44251f559392f58eb383dc3456308c0be13cc82a4c0659f20bbf08f3157067e55986888443f4bddd19900ba4fe083e059b70ee5705db34bcd902d2162d2bd726d4a06d8e32b4a3be8dccf5d7a89bbdb5d82f4a91da" + }, + { /* i=6663 cDividendBits=49 cDivisorBits=41 */ + "57b15fe04c05", + "d39d927861", + "6a", + "12213a73db" + }, + { /* i=6664 cDividendBits=1334 cDivisorBits=372 */ + "0bdd55e671ef353709ace675880956349e6f27ca230b134bb3da0de63f67375253f58aaa94e3c0265386be075a8db8e0f7b8e152e818b33ea51cd72dfe80cd6a3c6fe679534b402093fa03a8ed71dce16470c45b00517d4947f005e0682b0baa6a950dea0c2ee8f3a8883354a37101b06f894d9417f9d32b4456e8f458ede73a0601aa975dbd111e52ce093e7c0e2abddb0a63f5e4d4565ef85fe333baa77747eeeb8d7df611ea", + "0df7abd1deff634f5691f6feb34cb9ba2875dea1e21c2172faa3dadafce80ef0010c5aa25eabd5780d3b099872d514", + "d9753821c0124cfc787aac838ce6504f8d62117aa9a720796d185dab99f5d323ce56a7935aafb04f4f3b23494907fe328ffc8feb4479ab386c68f38b17fcc460f897f656c206ab7fc87c92e59c018516f3f85f1fc73c698f3aba23c05928b5f8716cb68546d68566d314d6e3c83ec04ff0104a96f74edc6d", + "0a8baa27d18f7ee6624469291b55649d7be2ec7fdad23f004fbf5a115bf3aea14e67db2373649cf66ca929addc2866" + }, + { /* i=6665 cDividendBits=2487 cDivisorBits=166 */ + "6891ad154188d5d3a7e25256fedb2c8492e2ba9e795d003091d9cc009c6eef15da6c2e92916d6bb16f1e72a57ac683e46693dd65ee92c250280b0ac8488388b5b010943f8af95ceca6c03b53564525978c0466c9bf7811cf5688e350868cb7d5b7ec822f7c9fa97c9054f77b6eda56d628f97e38e3bd2b6d22aaa78b219d3b28573d203d57b093d3dc7866ac504b934c3d37b7c0fc6d24857265af9f33f58da7c6bfc2c3af1eb2b5d20408d1c0525111fc7ff307f25636957e61f3f84fc748650fd3016911b9573bd033b23033ca49a61e35b7b50ba4f2cdac0b61325d7456e51aa0adff7f90d08e4752fda002e52ea1e06374720b5fc0d85f041f03a885d3fd38722e4362c6437cc42a961dcc30b5958508ef352667f2dbe488773dfa94ef8092511b194acf5525800500aa8b0f7a53030aaad37ac1ea", + "20984f7cfa9ab13ddf5c11f3bf2799e7cc6553c6b0", + "03354858f15e13e0ae875e4082492fd97eceaa95bd73446fe210c6abb11b1bad04f449198f32dd90dab724a9a26a3fe5391d51ab29abffacc623945968a579a1efab93a8d33dd565ab86149ebbe757af3de2330542146684c0d864b73d3f138ff6c4f57ea906f5948ec16f4101a768cf16cb48cb6de5771a32838c93b44f3183a44517957455de412ecadbad4ba87cf147224ecd75eba071a2f59f68b397df1bbd0059def3cab978295ba9bfc2f9df6824578d812bd0c192c3ac56f066d8d73a9d2f3716f100f403053aabc5ac9db2bcd091edcf72382558e907cdb097871bb25a60cb5c8ef1c0e8beb6e5da9edd666964846eb88d3d204239892853fcebe35da433a20b76d0df695f891cfddbdb868b18b06ff92ad46cf772af851b24cc7bfedf9950", + "11dbb50fd84257437d26a392e54d77588f643d7aea" + }, + { /* i=6666 cDividendBits=2241 cDivisorBits=1424 */ + "ab50b80a8da673e8ed725b66694fc2c188b0593c37ec7639328c14931b1c6ef5f6c747e93b744217232614cc70a5ff515453487ee100692aef28ad381bda7bb88ec9197669c22237419b7b3bb254c4f5621e8bbab5fce01e9506efe4685c8c8eac72d958b01c03b7a93ac35abab11cc934e06673042ed503e4198d8df23dc593c958bd86c31d0d82826b11a354c56efdfa8faf594ede43f8c9280baa658a82915ffcaa040d4d3db7415dc1fee8cd962a9b909d99c14354ecb2269b0b461630b9ca705b54c9eda57bee9f6663b944e12175453c9439f481d83bf8dd623cec9a24f235744de28e42742a7a2693a2190a4db632a5d5f6b854f8185c714124f0f036191b1ec2c4d481c1b0120e240203ecd4573b1a200426ef26", + "c9993fb320f72b5d277e8c2c7de6d1c7ca240d5f23f9bc5fa47797c43fb8d21270d3e5524128f601042341d536112114e8b151996329767a187a558ff5c4d9960b2db88382fd0fb0d5d698475a6b321397b262cc6c90c1ce91a7dec3517868b7a47efc90add7529cebafaa7175f494d67ade125d89f692e7a32e2bf790c79321dfe451926c99729f6b6bf394994ed2ecfe94a50c0de19300e7ecb7fde0e5fbcd5e74f3465f5e2da3b157e15ee896a493f1ee", + "d98b73594031aaedb221314bc62665a09ae1e1cb42b72b6f9a2aa7d7207115a1fdca0e85a80e9d38579ce5a3bc09e9f9c4033a4be6e06bdc3e84affc3d9caa3b25f2ff3da248af88d0ea666d73b9aae54f8c9875cc08d82a8c37d173df33ac63985a9c532133", + "43227db0674b1aafaf923e13c442b1fac1be792030a2a5b018c202d36b634117688699a35fcb41fceb0c7a3687530e236939ad00148daa86bf852473ea8f1ae1a64751b63cdb932f0b85b1de692d38c2cb4a2c8b60ddb8068ef287d2c6f884f65926d1a1ecf652aed729de1ae2d2d6ceabc9c1a2d4439c1ab12a68201734a759269797af7b2351af0e1d97b9e97c450cd41c7fcb032c967309637cd75c6f2c36c5f32a798331604995e9d58377d5b0540ebc" + }, + { /* i=6667 cDividendBits=2595 cDivisorBits=389 */ + "052fd0ee9f6a9045c18a0dee2f36e37364a4b87a433db416e0ece2718adf5c4bfe2075fc83837de1dee50c0fac4ecc2e5603f8ed3545b0fb7cf3726f9d526fc79333c7d9ed6783ffd5da97a08b9fc4d36acbcde8936be8d03d6c64b8f94a4d69c5a178adb077a02d3420cd811018d5872e28e8ea2fc251a56ddec852f90bde515ca61d8b330d0b02a8728c78deb6f983a028dde1fad9e2332ec7294b4653316617b731e5f3ff0586d1bec8ae6c51d4881e3a5b03fc8dda520892fb3d4b50c32fe3fc34b28ad1008b66bf8d6b3f472741b1af19e7f1ed0409ada4fabe8d4c90096325ce3f6f04ea7a4bb6cb4a228af6ee11acc61015aae05acb7e344d139474d2b53732f45c37ae351c5fe721ddb60bc4948790c6a7ef039ab3314e2541ac09f64a2a05841833c2b2fb5d0f3beb7b023261575fc619a2331bdf1d6f8a566a13fed2f811bcce", + "18bab2322f26c6ee5af60760f307dd3bf91f130ec8bb8da0283f8e5ad82a30d1098ff65d6cd3dcd33fc1d03bf20f0afaf6", + "35b1af8abf8973368c44ea6ecf2f4c7c76ddafdd9f0fc161c726c3899f20bd7d21840dfeb8ba66a218a10f93edc68530d9a07dff40f200c01f02f0ee5e913c3257718915e05ea048f6ef1025f5347610f05321bf43a3632e28551adeb77b2821f9d6cbd5cbe8467e0f11b865a9eedd1f56a8d6738767442977aa88d2da6c1e27a929cb19f5e16b750e064aed9a4c837ee913fe953171752b7857171ce1ac1c0d63c34c1c50819b1da1d80b12427f6417fb33910f30eb05ecb9899df514d5269b2caf6ac0ce95b8fdf6d66afd077b454d18d3042d735840546a73fe5dd53b1595bf2fb0cba781aeebed25b8c1e48e24bc2a18e76c6cfd90bab2d19d37cb0c8819d9ed1ddfc03094a4969424c8b9ed3df1e980cece", + "0c10140597687ac238206073b40912b95f9f603f223d4216b4e4b14d49eceb1d68571c799e431a2f39b8ad9672a649d6da" + }, + { /* i=6668 cDividendBits=1710 cDivisorBits=193 */ + "0245f50ba963de5783b08c18de0cfe7725692b5abf9e73d106d48eebb5a1582646ce68ea97a2b9efdd7fbea455e40219356ed9bdb9cb9f2a4c181e5411cb8f2e469e8dad331f65a723c22c5a9a9c608802ee4f0e79bb765f88693666ed692ac96e69e0e9d1c2b8a25274eb3b53013cd292be371e63e383cd44813b257c9f684e7045f5c8ec8f928d7fe53fc474afbfc8712ea55150bae065c85ec9a7fa2373c4aaea9898c33a842a8c7fdae10c9d64da2410c6872050f61da3997cbfcd835c0a40804e50efc29e85963991acbe70a151a45ae211fed5", + "0187e467c12c36fe883f85ddc9b0994fd448560bba8107658f", + "017c28815139d03cc367596d7bebcc755a737b6aecd7818b044a6085eff0e5c969038f83a8ba724e663e108949ea7c3fed57e7390a90687b2305f6818f5cad1600a6727686818742d27509a6d37de03873f1333eb42cef65d45f18e93e95dffddab0c19c14ed39eb77e6aa089cafeed2f4ebc162cc07cfe192987bfcab8f554444e75f1a80f1cf04c4509a50dff7e1764d7fdafa06f964c33c88868ea44d9d87c385b2fd9b2a1257d92be70aadfdacddaf91c0b6ff23611f3cf871e44b0d", + "750cd89e5befffafcbf1e48d181743cfc42b53229794f192" + }, + { /* i=6669 cDividendBits=716 cDivisorBits=641 */ + "06660c83b946b7c517c98ca461c76114cf812d2a6483d029070f46dde9974ddc05b5be74e65f14e5bb536dbb8b9172e0dfd652927666432b9e354cccc8a65f271d6b0ddf49ec214e44dd037f8eea920db21ea5c90126b6788345", + "0c0d6c9ff409df129d1fa943ed5101eff1fa8cd18aac8bda8fbfb27c45175a82738092ec75e75713fd2383c065720ec7ff121b4579a2b52940641378af1da590bfcdc1e79fd07d572bb6f6ed6e74e128", + "87e9004a8203e1089e1a", + "e5f66a9c028e29d8302df3c8c04743e64322e6700e9bff45c64716bf20bc70c577f45dd6fd146364f5ff35bf4365d181df47ea75b221720737c77a77522466a831599f2917937a280841da2a62f535" + }, + { /* i=6670 cDividendBits=629 cDivisorBits=496 */ + "03e14e43b5f4340a90abc887d1e78cfd840adc2402c954684e212b247dda17909d0fd3be074ceb3dc0d4fc60bda65b8dfd587e08218f053d854cdd9c8541034d241201cef8607df22ee6b718c8d305", + "6bd24991beef8de9998624b47caf8c66165ae68a0b4383b32251ca915d87f12ec7733d0a5528a712a2d17ec67244936022d7cb843c801f78f8af47e35a13", + "093666db1acee67d1f0ba4131c48297de2", + "631776c04ddcf8bacb31abe021e3a1ef0dc5748db55ce9ca3537b09a9901b05210c633fe16c4227ba0d36bffe30f99f40866a6ab205fb5f20e0cda0d073f" + }, + { /* i=6671 cDividendBits=370 cDivisorBits=104 */ + "02c0158e198d1a25fe858be7dc2927cd86474768ec345decaafbd7d01ec4c6ed254637d67a0bb0fc3a8c8bd18733c1", + "f1fb60f41444985169ebfdda3a", + "02e8df354580cf20a18dd3da5ce39635c8c9743ffb1d9ab5b7f4dd5896d4cda63c65", + "e8610255ba5a5d980e439e82df" + }, + { /* i=6672 cDividendBits=122 cDivisorBits=3 */ + "a5320228eea41842fb8f1f761ba779", + "02", + "5299011477520c217dc78fbb0dd3bc", + "01" + }, + { /* i=6673 cDividendBits=623 cDivisorBits=271 */ + "5005be6581d2d72cc052bfa720461479bf84416ce93baf5f5e355cc25745508629aab1102b0fe066ae79fe43112b617ce083b302e6145fc3ffcc645cdd09eec7d3c0594087eeb69b079044a1ac5c", + "6f3b234253e45ca50624ccc456983edc5395a02080b2ac25eceb0ffff7ee76765e12", + "b82c4717df5355ab769f3fd6eae3cbeb06fc4a52df54b767125dfa13435f4db1efc9e51f040cc3c837c2d725", + "2bd87c692d561381b0d95aa797a18fc858d916d45cf4dbc0858be84084a294e0f5c2" + }, + { /* i=6674 cDividendBits=500 cDivisorBits=308 */ + "01efe777204ad73da785ac8fc32df36eb590c58ac8d6515cf0b8e24013c37e7418e757daf779908835e86de26b042fa4fb5b8e70d60e87384522a365b41cd8", + "0fc5cda4b0f453826659a6175e292b654268fb568a0022271918148fff6faf6dce95922dfee497", + "1f70d36451f65feea807dc8230ddb2bde676231954063142", + "0803c93c530e12aeb5f920b4196af2de25f2accbcaa441621880d329a7c574871de96bd8b246ea" + }, + { /* i=6675 cDividendBits=2519 cDivisorBits=1071 */ + "33ef0b6bfed44b7798b48ac41d63a0b6d91ab48b7848ee8767c78eef224cdde09870a5bae9e131dbafcbfc8519c2db04543c57a2473f008f769b4725109b520d3bbe21b5da89971b4e1628bfcb27282c540d996918dbc7afcffd376321b5905ad2b51f325f18270efd6d30cef130d1b86b634e9c3a5c011841b8f3a22a25a8c0c7bd5a39a168dd6bf923d306171e4f0b4a1e9bae08c4f68c263d3268a38c99f4819b70f06b2f21ca570ff30bff70037049c418b7baa5951a30bf60f007a3451cb3de34ff60a2d4bd89363ea562f1a622e50b73ae3cac13bc34db04320089da45096905abcfc859cef4794fd533550e136375941963c1d6e81e39fe9e200aaf0747470601b6447d169f885f6ec5b9168e68c48edc9c4ebc794384a133562cf5b09a9a11d25a58b613b532bdb44ae00a4b1066bff12dada2427256e9", + "3c20c1b636705de9d6dccf95459e30c86483ed72fbe76f7d788462366b42b9c845a414db2961412e7dc2adcecc9f766c341f5a362e50404d0716941cab4d05a607d93566860bc10661cf5d27a4991a46557eec6e9996ade0a532d2c88c6d6d13d3246a12e6a356e0ac76980f4a45ed0ac311cd22b5a08693ec088f9001fb6928b9e623a8ec5b", + "dd1ccef7928d0ca7986b5ac82d65db01fcfae08ec1aacabf814993847990fbdb9067998c12422b43e9cdc03b97390a70a3b3d7653235a56f283e6f584bddb25010489cf417ad55bea4b7959d8d8d3b437924ce1e8b5a236882b8bf0176531704f934d97ff80e84a2fc4fb55ece8ea4b1135737efc0e6c4640cd7ae8761e829d7d735a32a9866cc9d947ad43e5fcf6931cf63d815fa1a6926cab8215b92f89cd9f0a4530c1f38a716ab01dbbecc0f3d243346892b9e", + "036889bfd0bd8a5924044d953063e72033361e3178ba1ad60d7a9a47acceaa679b198a2f0326360205040795bd4a1bbf286f379b074344fa1ff959ec4927421e1786b249033482fa6156d6e82615e170468bb73efa9e9e2a633cb92ce2840d4feaf5384ad055907dd5dc062eb8895426253bb619735eb4868d7ce57ddbd04655217281ca2dbf" + }, + { /* i=6676 cDividendBits=261 cDivisorBits=17 */ + "04e2a2c9d344ccb22019e432db2392629920901a5fa833fbc8b878d89fd3a6823e", + "bb9e", + "06aa77e462fe39368150e0e60f4349ba4f9730fed09e0b8de62f19b4608389", + "40b0" + }, + { /* i=6677 cDividendBits=1361 cDivisorBits=78 */ + "bcb871a16fa6325a4f59990a60cbcb7b6df9216974390a7be24f77f0b91bd586a5e743391731eb0bc3f85148f3a7191c13eb49155f736dad316222ff225b24084bc01ad50efa08c22ca2d7115a3617f4428a41afcdc7333fee2fd233a106d94e99973d43fea742e2fcaae07e6b7b12764e601ae854967e83a3059c22b4efe7cb7f6c341eb1a1799dee08f89f25847370a6fc51eb7ebd7f92107e465002f56eea611357595089b7d121fc", + "07f9373a2844b87231a8", + "17ab208c18f8895ed8dac4e1af4d17a5aca2006ed713c5fe319a3d0df81f7fc341754bfe7133263ad8ed0386f852fd93def20118917a2cf4403f16ec78e9fd6194cb7b1c6f12d01407630a38de3896a376adfd521d5336c1d5a591f1d2e8ebc655d9673d5c6970057acd65c90e4813de8dc488d9e132ce39685bbd5cc91e04ec4d8f9bb1cc7e33c776c4ba94d9045c93406485625c1904391e24016c68ed76c19b", + "039cf359570487cd6944" + }, + { /* i=6678 cDividendBits=3031 cDivisorBits=71 */ + "79e61bf55ce287ff4ba987a07ee868d02f6a3b10197b88f283b0768a5dd057060dd366755868a2bc957f99440353345d696093906a9139060b97e34abc93a88cd67ab647ebf7e88f89ef37d55153b5a5fa48d011c4828b098c71b7c4a1b57d0bd09060799be5b8326027328e0e821f495da1a24478a623e678697c1ee98407e4c692e4b1291c74a7100d46cc5f157ddbecfa81ec4ed0ab652b7ae7eea2cb31f313e7c74426c1dae38fc47fcbe490463bab77071cd0f9b26c3c799b40e2eaadb6ae8cac345804521d32084a2aefad0b6aba611fa7284e7d089297b3ce688ec8745783150eadb0e03f8136bc218ed878aeb0573b3a745d7b1502125fedddddd773ca78c1ecc298bf7f6fb1226c5e5b4a59fee6c7d4c69ace45a78d35d4a850ab9a7e3ccace1341b7283f088722937928401784d28c80425538af7c8453e93a0a1317a9bed34faeb0c900e89482a205954a5be13a014fbd9ff079c4e30e82dea5bbe22fc2353f87bbd8aabe29466e3e2951411d8c7cb388170d138ae0", + "03b35f16afd5642c74", + "20f08eabb0cbfd1e94864d38086fe7fc17a015d27ee0cc078868e6dac9507a8fcf4513e232ec4522132e3503d7de5194ee260592a554accdfc5216554d6d25c5b5c9d38dd7622ab41ec9aeea1b81ab1777e0298e783b4dd5c393da1adbe5cb3c371300bae995aee874a126a704691e9c9d2e5d678c349ad39dfe2784440ce454852515ea2c5beba83862e3c36aac94aedf18de78fa9fbde5f90f8abf6523d687c77117b7b22fa0785952a7ecfccedd5b3a601ad489164b61245999dd67462967abaf3dcd5e3203fa14908dd7f7b90a2274bf55f0ae87b27a1f7c62a451e95756c582fc29b5aad0041dfb029d1ac4fe8cfc1f1632adb24ca461b0f72624c694003098d7e10e16cdc7204fd9b6cfd77a095a35661374fe7a2cb32dc61fe95fe73aa2e722794cf1c5fa73170d02b0e8e273579f0d036070d2fbe68ebfd46914cb8d73cf418becebead750b78d4599d447eaa8a66b7be4c23053a286bccba1535b6c0159a1375c781fabbeedb086659d55af42ca52", + "0368d920a8e601c5b8" + }, + { /* i=6679 cDividendBits=3019 cDivisorBits=2677 */ + "078ffc8b014d52349aaf4890f9fb8cd7f786af86f29e5a1c6c2734c3aeca0c74a2f3cddbe098fcd5fe2d88d8980079a464115d511e9ed6f3fbc8a2fa6044bef0ce693a3d7df793f441d58fbb9ff1d9a10e20f1cdc6a513f4d1115559c26d81d2fe920c357b9b35bf9380c551ba54903ba39c3f36075760a28d1da4db26f9a7367ff7fe095a1b5f5696f5d4cf2289e2daea64ba75337bc7f9fbb371bca1daf6acc965a1547dc9eff787e66ac74c5cc45e62b545237c8ef78d4c8c36d2ee77bb42344f5a85b584268142979fdd9c6b661c1a63a6db56d41932c21b19072e53d4e0500a3c6897f0e1649a6c57a3b033ddb974e39245e4e96058969216008626b41aafb43fe56145208b075a543625e7e8536680c95be0d20811d4cab0321ecf06d4b29fe9296e3e7e4188dd3210b8796b2f934329e8852e700e06a3f4c2ac5ee144c31300894357997d5982ec16c83815a8b219f65ffa56afa21165e3a60c111cf652082b34d03d3ad40565ee5b7508ebee4e40851f9fbe68037a", + "1f03cd9d8ba9a8c9a391a9158af0440f9d6e55a6d125c8ee76ac51d66be290b190e432b6dd716afae0de55f1bf0004ff86fd4a9b1d3d385469962521202f374cda50c0ac85215e6bcbf5bb20a87404a036b0350a5c98ced2ce52fe55f5eae74e9647ff2379da298bf170e5182d60ac6e7451eca9058ff06428e31eb7f1cd9a1bfa4ad62abe2d2b5ad64e2f31985155c6f134ca07451e94fca3d9fec2bb2c756b64d61bf3708ac4b05509a8707941c6db1846dfee32f749ffcd7cd1ac2c065584f5132cec3023b5dca4c941e0c45013a1a4342c4f264d6ce4dbce21a983bec5fa3338ad13c96d45991345ff8efeb8d0e5a202c3489fc0f51103f19eb99e75f1d77380a8e69d5c1b1ab92d46d3ac1e623f3b007c63ef4bfe797ceff346cacb01bbd56a50a32fc4818a16a9419869bc4833565a25cfa05dfcda96747615c13eb2f301a8f3608de1a95fa4cb978bb87fa6", + "3e6bd7e4c26fb863a12f082288fbcbb2c79c8dae5dc091ec5a0eaa63b0519ca439471e62b60d395f27bf", + "02bcc205a02778126af223f961124d8301764623b87ae327f943a940c9b7340c4d81601f17f63ba62df948e2a85fe31952e6036088087adca78ee1e2af33f0a8710b799d447e015610897736cec2f0e7ccca04ae2c70c798a7766ecd222895b8095d6d95abbeeb592fd7ed6e090b1ff5a4953534fa75ebd218e34b890756a6241933174865058f7c9ae9630c20d6c93f629306d46df96d511766d48cfab4b5e63d89cf96aa199fd7f54c6c3d7f4d30d34e8c765a68894b0d00a90f2d45e41bb6c3c6160b29b3218a0e4dcd0b3e9f731b6ac6478a0481f96d4f91cf22811105d4f671e9568c79198bec669cd5629e7fbd2a93c28cf0ed14d102ac7f7ad3093970f95c2bb5849f06dbe36b26b9269b965e854c84f74aa8921f93fca77f0d3dec7555741a43e7797602004f0d2abb7458075f692648420c8c36413678766c8e624ddd5915741b0739e989b5f40fb47ca0" + }, + { /* i=6680 cDividendBits=1624 cDivisorBits=1573 */ + "2dd445318ec80911da5a35cc9434d1e4068851679510fa5a7d43f97431c3691cef6ccd403ddfdb65a680fd85b04ab2b36957c856b8019c47c7394b229f06a5c437530f6480d1f9a9350f604ae2e71ae4e0192dd5fb9d943776edfdf5d4ba8323083603414b3bf4b1ae2047ca99e60deba170d4ed4ebd1d284317d25409e9235c7e97a962f37e7b72951d17e8c263a70321ef8ad4883840b5b5d855798c8fa4b89e79bd39219350871b279d3ca7d0e26a7c5681c672104646f3b91778d901d18769f7a7c26f7915818fb151", + "1c824a330d75b9faa0f021560da13a11b876735841b2a2af7a0153dabf5b3f97847c822d747625f657ae922619221124c0e91b6e21a8ff13740e9af2f5d8e43cf1bf0e5ae632e1d80ba37ae33323e509ba0bb05a749f4020079494422d60197eb960ec3522b6aa384d2a2c5d1f0f386e122c64637dafa47b156d063a0bd8f152bb38a78bd912817bf0968b4d22e86735ee53c4d99baf4d9fbfdbaf114bbd70a13945eff85485b5995445a5effb4371c92c3a0432ef68916198f749cefe73aae8f6cfdb5ccb", + "019b8789f01e7b", + "150b25cd1332bab40463cade8228c324a9a30637946ef6768cf3fdb7b45a78362520da4242bdb857c30ae2e2ff4d4b67e22af3d71f3b63a407718a0bb7214fe63f5aaa3add1b17caf6efa7e698c5e6dee8ca562080783811d6712de9ddbfa9991471829c1589688dcbe9aa5e7680d5218dd632917250ae169fa66994584097c6caad053957dd9b3e041a0d9abec230cc620073e4dacc02f6412edb71cb0fc4c27eb2fb3ec5bb5e3974d00060146eb35ce67d344f9aee922f7d7319b114e0bd83c74cfa51c8" + }, + { /* i=6681 cDividendBits=1991 cDivisorBits=1758 */ + "77ca6b813f9459df9567b3483f69deaec83243804f2a5cd5b34491b70a69c7b2344716563c463de18044c2b0a841749b692679f8927632f0e015c0a08c3e1b8e443844a376343674cd12d2ae6e64303e7171fcb64357b94db4541ef61ce5cf1eb8eeee08f56e7ce570de882d51206b446bf3b358423bc1a24ef0c28b62d7ba9c453f682b37a6df56986c71f95afcc12b2b0cd759586c764bce97233233db66c5a6853a44012c557d4bd54958bd8a40a5aef38fb6023fa87aaba059d6502790146fe2a342df38201abd957b4b12efee4582170b429570fa619d9753b51dc67524bcece9be42714f8613e61277f6fb627fc6e6995ee229399b08", + "141d2b6f980efe091d49d57289e0229228ca37fd0110e8ac0bd02600dda1b33e2067ad46125bb015ccf910da051722e3d110fcaebe9d3af25ddbe3f26cf0bcbfa7a0cad53cba7ba14de4306c1f91d6780daadd1358d9639584376e231b30aa41ccf018164b976aa8affa6c75c8f7f3748f07cb81ae4b34e169c45386b7837b06bfeae5cc58978fc3ccd3ad761e4ca4718c1ee71b535ff5e5cadc46837a72352150525f66d9edb6de5d374f5e1fc42b7932decd47b7ab013c886f32f39b2b3fbb94af563616aef21b603b699d649dd6f28be0243320c38e294f926603", + "05f4a28536660e2e544d4b8df5bab8664f1af1a40908d6c14f9d81f712f9", + "0bb68b2a93f0776c1dfa8dafd3762cce04fbb336b02fd5f2f20df1f3852a1e9a7696927c7e157e3f34dc2fbaa85e07e9439a1dc02ac53af31b9d8f35d74aaff8a80ff35757bab5b228b4a5eab8d888a107c05ffa055430eb9a4a019e5e693e123325ad0ee26dd9cdcd0e523eee11ca4e800fd0b44fdd5ca4853c8ef90aefdb97bc0f321a70c31d41fa0a7974acd6920a2157985d662852796259cd1d817923cbc2e2b9f2702dd172d76c96c34b613256756a7c9cebb1fd3306fbb4c386befd17e49670a6865f44e9a9b680b66b564fc38570f1cbe8ea289c88c32c1d" + }, + { /* i=6682 cDividendBits=2764 cDivisorBits=1653 */ + "052d94edf590deade7f2c20439e2abe162a84c5c3b6eefc88d6d1a128e14d15ef3fb0af73c5e3bdc9c195cf4c1be8d8f7f05e608a028bc48b46375011b09d7c1c2c1682017e99a4fb9da81ef46febdca14f3c151e6ba62d09c459bad4f10325b0fbeeaf52fb9a06b7ccc7ec9ca929ae33c283e7bab1f6534448c534a6feb572b9181c8f7083cf84071a4ad78d1606eedbc423908a306bcb61a1306087cf94deef3edda815a288a1a71273f056ace578514902714c7f413fc6adfe2956720f4f6b933b5c2cbc42a91e56d1271420da33f72a287235951541a806344bc041ccbb6c538cfa5d6f07ed5f37a99e836b6d61167ce99bb1a6a5e8b8543ca0b5408c29080884fbdc622024a48740f965cadad2f3e581c8c7fcbb5dc7ce11105824084f91e1b5fb8799f138418564e7b185dc1114425c47592a3a5786e6af5782c1c34ebd5dbd3a8839d888a89a532c77431e58817ee2d7a51f0a00f8033", + "15368d2869845bca72d8f92ac326d4d1a5f20d8b86d895681a834e4e3f0f5bd43ecf92d85d76741cba3d3eb4f8f90e41a6e38fa06f6daac0dc47b89ed0af63f99bc1c789b64fc45be329ba6779fd7b412088c9503543ce35d21dc5b08ffc65c47153a23614b7bf9eb9953dd4dfdcd05885948918bd7a02cfdd8a57fca02f4b1011916f60bd785677401e94c95adf9252275a607ed44ec258ab84dfb4fc7bc586001c608fcffd67b13cd173ea2faf144ed259585111420870db3442f3c54d34971af7760a4ace053a1e620d2161db0d", + "3e7d257d0ef7eb234370a12b0707ca917b108b8c51b8689ffe264f55e1e6c127b8e8f8bca0fe84a83d80b51b7109bcee7310d2885774fadbdd1df5439f9a2b9f22f27cbc78caea6b51b9b615483189e18f544b9298a20f889d8ee83aa7f85ce6742b7177ea246d12c0d84b9ac755004bbc2e4102379582e8ab12a4362ae9a9bb50948fa42bdfc3093136e7", + "07aa212daac59e3f6716e489123b1b4847351d57391c49f40c703badb38f8b82bf0cd971e74895e7e7729ee91cd36ab27ccc4de5e7ea1fe2b7873c919f12f3b33533c9cf1abc80e9bc2a11a4f9ce4aa3b26c97f73919e196cf54a3343b8baa8852f9de93c5956e0319ab306a55a3c0155d241fb83c510721810a1138351bc0269e65f888c1222d3950981934450cb7950944092de4aba078c919271bf2f98bade947b7a48db61ea79dce08fe6ff9de03179d3e05ccf207045ecd8c1c126fc0a57d3c9e6d0599954e2810b77a111978" + }, + { /* i=6683 cDividendBits=2982 cDivisorBits=2905 */ + "2a015e3cbf209e01d02c53b2a6cdbd624d32d4b04e2760f4154210b6965f896781b21bbf700f6499d9de49e6a0a91af1c2b360951d6f9fbc94435435752f5c2a31e866b5a62e909fc2159c662f20300389a38ceda5c40757b9fd9c946d7b9aefae0ed4fcf5a2b2fa904ce4329168f876c176479d39208acfc83707b4fcde2fc40dca7351035e3ee77a99e1284c9587969f356e02434b8b6f5a252a2c9f00e0a8904522fb0ccdf00406aaddf7e042f31fcf590cf1d2db1ac7b530fe5b21b7189ee39e0adfc8763a91e260a12f567912abb9c365eda43c52bfdd0e1c7d8d41467805eb0b83d9e698a58c3cd27152b5af29234edc2468d4566de12f16606f2b7a6cdefab0de6ca5fb2ae47c11ab0eb347c09750e36fefe16d0e4b53a85c7e3688385e12332912290e89dac2c80165ed0e52bd2980d3114595bfbfc2a535cbcd6c1d5416ff79c25e2efd61baae5fa64a79e7afb11c472af129c9931ef7e974a70c523dc000236bc900e2d7e324f267bb439373de0678c3", + "9817227d0361b245c840fabf6204c91e730a0c8b2d3a65e8a17a66ddda0da94daeb67006b365001e492d5d160197c038c17a7447e821e9735c224a0b1a293f021ec1549589755535feebccbb2df90905c9f3642d8fc7b0ebdad5d47197a88cf25d34ef7eb5f658d0db725181bde2bb41e1d6dd4cc106e143304ba7e2bd69f8f63ad7fd8ae9b786cc7e75162f5adb33712d4f141dde3f901ae4173310b9243fd8892178c9abb100f36225a8579fd4f009d03bbe700e04e8f69e424cfcbcbe64757ef8d327b466970a38784b5d1323a9e6df42c4a13afd0425e53f69e3f528c2e4e54bfa84b13ff4d7bae2b438aadf17e5f9068fccae05f3cd3609997a3534d0f702a22408d84c703112ea1eb192dea54f95ef0875ec1dbb95b97142244aef743e49d33fd809772066e43e1639bfa6f40b21aaa8f770b3e5dd98eb2f4a1a540c48cc716fecf5542e83386361ebe624cb1671003b1e1a64816a4111c38b9d63b713fd83ea42db52e6b6ae5dd4", + "46b42cac415c90a03187", + "74ee54d886ad1a18fc2a960fef301bdece7b015d8d5607fbc72bd9affec5ab48318d2bbf4e4fc7e4049181be1332045cdeb322bf835d2848ab347d5de55696e0f7cdc6c3fbbb95bb61a1ea15030f59af2b8001c46609c1f42a55a2bc1c786b799419e618685f05964321ea28b79bc317aa47931f008fe69b06fc2e903df921c6aabcb2d8d5baaa56068bd87533e2062296f64e9a2f247f1caa85ee58f1c9c43ecad2d3f36d4d01c05d42220e1a9b1ada17ff6deccb527d426fa8695ef9ee4c3c0647ff7679c8dd2321f88fd2ae1efb47bd4efc857eb05a29de2c854f035bf6b53be48d45e68b6a2ae012bddd4a3fcc8bc1a84e4aee055edc1ecfed886f7e9ab2e0e250b9546d762930e419c898dd26f9b0ab3e5e9fd5ecb6c4d7411b98081d6f6de83f0914caa2586681a776dae77a32e659261991705762c489a897de5a1caabf763bb964d8ecfd959e65cd9a037b77a04d8fa9097a3230e46b404de248e168a65db980dbe4e0439d69f7" + }, + { /* i=6684 cDividendBits=2311 cDivisorBits=9 */ + "1404c98c98167682f77e8702a4991c8dc9d1e9bdb45f9c5e6d5141179ec804a7ee22eea9b1b3abd0a6b0eef0d5c93a1621c3cc8ac9f54827f1c9d6bbc65973b3f3b651ba398e92c0903c0f05246c1a7a657b757974b32aeb1af6b48c53fd928a9bd98cecb25c86804eb3ed985f5f9b3edc7875e23980394a6266d5503c21e625203f5891a42645a4951fa7f4a39ed6c23c13b11854d88d7bb7a1e978766343d55f3024751b4b597dc4c21892d2e37d1971e17198e2dc022dfd8e64d423a79df00f3bf16076a2d828255224ed4bbb83d533386aa322740201c398cc02a6a19f45757f861abfbdb541913d7acf1859bb7b89c8a3b31d24bb7990a405117ce7473efeb8728da73495ec4d522ff28463c2ef6e23893a42f6147a5e743b56eb05070bb5", + "19", + "ccfdd26c7bc74ceb2e05668176c3b3c0648e783a6a39746ac5cf67584570d38467cc1b448c4e8d774ec1e0ac6435860159c0806e7a7386b7c064bfd4bbe5e87a6373e8ba9f4d8cd291c3292a6ab9610e4c9e4c89c9ba09677a821a17d6f161b45061cc07226bc7b13a65a9ef55be87a26b37ea543854362ce564b14a15d6017c2b7e6c39c4174405f706b7dd95b6ab9c00c9a4d0319f4263815b42422cee3bbc20a54c5d4074383b1200fba209197be5d5d15809130a53c27655f4016d1acc2991c1f99e586f0bd88867e0882638792b0241b49afa667af358082910e7beb0dbbd6bc3a1450740100cb2fe0b36ca0f2e78aa635315f304dcd35c5cdc09404a3326190fe7f7dd0973bb9b8494a7d498efecf10254993404e50ee3a75114ae5ca0", + "15" + }, + { /* i=6685 cDividendBits=2829 cDivisorBits=2333 */ + "112e6c028a94c76a4b3c8edfc1d281a17c2299cbb2f4c483c20d5b6ae22308da0a1117b1d57a2668c5a629679546d5ae000f5bb1fdccd0b9aef18afaf9a32de2163164daa282e1311e999471943abecb9728c4898143d4c69b250d5609622d661378f093895a5006e7c7270bb71a587864498d1a5ee0917066df103dc3ee889b67a8e7ecd58604274e443ceba9f26e726032ca147545cc19305c2cfe6c746f9146e1d63f3ce682e06abdfcb93a4d89b2c9a442199276107503d6afbe8d6fe1a1268020e19589a7f138ebc1bbbbde58c29b64ee9cc8ec91198004361c2fe17947c1ff510b94947ec38bec4867c0cbf84c3cb9c5b2bdbf80823747167f6091ce9b68540fb7f2a54c34c32fbbc24c3f528bae9c7a7534b29c1dcbc1afd5a2838bfc01105cac52d8fa2b6b5dba672b4cf80cb9f22d04273f456a05037f72c8304952556cf827d348f83499a4b0ab351115f4ad8fa44d62b0abca4fcb3a01eea4a4b06871", + "099cebde7579de535eff00496e921423b28d355f18352599c2d12ddfc5cf0b320c24f07818af5c640c854ac6601f875e79ac97b81b18d3cca43b66dc35844a3b9b4ce4b424f86af16c0e8d71bb725f91d5d2723e548d3c4dd31ffd04aa744734ce82bcb5fb145ac65767fc4c57d4899f5c9e9afa5bb21a36f20382a3a0facdbda7372f8496982803347eb74941c3978c84461bad7af07e3bc915cc8fed6fbdd00829588f87bfbce8a56c08877b893fa90026bdc19df77acb7885110eb9a21e7ffdcfabf44135f2cdac0c9e9b899194d5230a14fadd11c76e42a0ad9579c7e0b7b5d7c827bcb8b7998c5ca1630faf37f1506e9bd2dccbb1c91be30b82534f47d0966b34b467886803b8c9222b76658a3f29a45f650a03fa049392e1b18f390901e5afc7e2", + "01c98cf3274046afed990f483f6015455b7c5b3e53dbc1d7c99f68bf5c9cec154dbc060ed1df573b2e352708ad0bfae88e8b47df307b85e7ce24f419e69530", + "07916274085d0c4246de2c76ece5b6df61c3efb6d67b1b82099ca8faeb9daf617adeb1d6f52d22075e60bc9ccaadc89419bdd315f2835056d5e94946b5c9c07271b61f56ecc07ce4bdf5969de4f9b34809a12985a57d75035e85b43f43bd6cfb8bd11b0be6402014b8f2865ca1f54c1da3f46a80555142d467546429e906669a13a58b21f32695df80ebd49ec9aeb97d7d63356e4e8624fb804fe354d84d247bdd4120045fba0d19b30bf020a702501997033179fd94071d54217e8cf4df38e543423a34e3955a75f1f29ca1375ff70d8a45758516f391944df519f351310bd2b0c4c017521d9180c962c58d2b95182b90bf2ddaf638320bc516643d76830e07d49ff7fa57f615dec48af087aa719b0efb5f1ea53fa1306fc73aadaf7c6d51bf9d586411" + }, + { /* i=6686 cDividendBits=971 cDivisorBits=588 */ + "07608d22f87446e376707b45b79cd421a1fd7f7392afc101e0b8e3a7fd5a1ba9cbd46ddaf2130e009d9ed70dff0fd6f2a4afa86e1a80ad6daf924ecb67c744e11abfeb72516f11c1605ce2ef314aab599353b30d9126247cf708c145c0bf7091ea9334ba54144a525d99bea84ea23350e1a3a18ba036d31a4dab", + "04e9479d567d2c5dda4a158019035ffb6a342c355cb4a553091f8be2194dc02b7484d1ea429516628d0d0a82e5f7bd842996062c778693e84e2451cc5f0986bb84b596684cf5e3c23679", + "0180892d8938dbf5f5bff83f9c38ede73f45c2e6fbf534c4e48a630aafff9df5fbc0bd6a795790f804b52ef8b37f950063", + "a3c47408f6174441e22daa924839581fc5661193f6553ea09128ed26166dd99eac804d6e99e589b70704cefe4ccf6062d7dc357748d9cc6efab10142b56aecf2a7f3cba57503923ce0" + }, + { /* i=6687 cDividendBits=3 cDivisorBits=2 */ + "00", + "03", + "00", + "00" + }, + { /* i=6688 cDividendBits=975 cDivisorBits=728 */ + "67f094d9e030baa2e12a19beea32d228250075f568f56a8ed161d1bad16e55cea5db9cec8a279a9d53288e3aa134478c0b582abd4884f3c30947340699dce5fb6e6a8fa6145d0f0dc70df25bac83fe59b81c286e5735d6cb3ed607ab2eedd5742d9d31843c6dd0a317c7071ab46e584fd55bca905c3534514ab6", + "80ef54d21ebdf5356b9d32829cf527ba308d7d5a20ccd235bee3bb99de34d1d9393d2c8cf545f5fa07b4f6694f4737080e806c193fe8191ad5d4803e10f404ecd9d8f7e5e0a98fd5abe1bf37feb1d6ddb58dd95592f4f9ed21daf4", + "ce5f4b045f156027e0695137cdbfa147fe06d4cdedbaf94305ac68ec0e4b2c", + "13facf084db4244b536652e012229f14fcb45c143c0dd086009fec91efbfa2954e948a11ffc00c370a3841ac3953e98e58a12bcf01b40f7ac00d70fdf1f246afc9b47b28bfddd5c71907a041ed5df4e6a271e903a1f7f49e022cc6" + }, + { /* i=6689 cDividendBits=3052 cDivisorBits=2997 */ + "c865934270f7809459f85472bb2e640949a2599dba5356d0b53b087b8e41de05f2cbbcc8eb397ef070e7da4dc395f79c635c04540aee749e0e8a89e1641a4ed9cae969bf9988a2381a13bcb9d4b9a8e4a9e06af4ce6f81de3427c58a59dc8111e122cb543957aae7684cfd046a31fde7648c5012bde36ef926b7c9de8a5d9689211fc9df7ef3f98120f3efbe95b8eae6ef08f2522e6aff08e2f918d59c98e8334f4d100743460df8f29c9739fd9f2674a3c4411b0c6413de13744fa082c6ec0038d96458dcd2fb586c813ca8120a66bd9e8de174678ae26881c734f00eea507d09adaefc797c6b4cdf7cb8555acda6933e72eb7d725425a59766e425194eee1a59f32285e3c323802b653a4b551525711820d1e9e3d12e9987f8a43d7b9c8488ecd096d6dae0752ec8b7ff25d80b1a3f194fcd1a524454f19bef90d07b112c9d6a0050a9c31ffeda68c34a477b3a2733789ff32858df3a7ba64b009503866b85dce3acc1664bdb4eec26a46f40999d7b1a306a4227d4096d8074ab62ef", + "1d1a5bdb9b2ea7ee5951684ddae09c646896af93b65a6149226cc24f7944a38bca3e978fe206544a81abe3a165d0b55e69613854e6241cf364e142fe2f5c7e1ba7ffb27963e15ae451a8bae6faa81fe2e7f309e3759a7d1dab6869a2757ad4620dde988f33b7e69cf92c74e4df017f9273c100c67f5998e8af56a513fa35a2ef4bf86bc0bb52e25f95abb32164c9382377e0f132f6ec61becd4c370609d83d5b6e7223b779336337801fa85bdeecb7042de174ce70d5580326fa135ec752f7ef2409df6e83d2e9058641d9a9d16295355ce09ef30310b1f0ff31f0e2456f6342871bca77b4bd914a378c8736717c6ee22594cfe90a7c45e08627a25319e9047992ebe114b8d3c49c7487b5d848e82a74f3901379495a3660176ed1affa07131130f158aa96ae9a3a7352d96c58af5ad2e9c5d40032d7eff3b6e235ced3d6f4257087dacd1719c12e881c71b72d64a0e7405397a763268ccfaa12d5ad0f9c127d61e819cb2b105027d50e1d3ecce4ace02c96543469f9ae", + "06e2c2dc4c43a6", + "03b26067cf2113f4791ba9d484b1c32ec2804becbf4c64a8c52a13a7619047187ac6462b3b960599f5acb260638adc810838c6df36211bd31c045c99100237e5b476ee249392785471b634c4daa8f821a5de8f3ee4519d479da7984b8e5830741d0c6e28256dc13115b386007629a7b6dbe87d842b2160b94218f9821538fb2ea51f89373ab733a8b847880ab40208d5e4d25f81fa6d96e583f27e6aff5dca42c027707d6994f90ca6f65c57483b7f4e5267126db5fd1ce8e3fb88410c5f59502bb29f38a7da4dde5a09cb72be9505189cfcff6ecae1fea3859e2a1233505c05d4c4c3d9ab7a45dc78e3232bc691c83a8b6a90176a0b280882993de5b0f5a62fe1ef1722c17b38dd01d3485d730213f2066a45833da0c3d1ac16d1e3f1edbbaeb080ae3ef1d69c01d73b3ae36a08cb4e133e24bdd9b313fba51711eab2a4159d7e9b32fa4eff3c0443e13ed294b588a84c4bea64d5f59b8d010f4278c3ee26ef74ac51ced1f910daeac9669f426064acee754b13f2f21b" + }, + { /* i=6690 cDividendBits=1743 cDivisorBits=198 */ + "537c00c7eba5933796640d529101da15e2db05b0d21abe090fedb3f8c5e8cc6935ac6f3c4d230c48cd0c80e70f9959217b4a0489a36df43248b2b296fc934edc202893d5638e7fbd8711a4130afda9f4de09c509b9c116c53da25c07623d6b5b3adc6ba9712736f5deab58f5444deaab7486f6a02e3e3f221ab4adb58cf5714a7cc5bd8f58e913c64cc72dffbf1eefa75b20a01743b7f15b33f9ca3a08c1757629f483ed5320242b29a66ea984df761c9a0810f82a31ad3416d0867e93c4c91544580e019f6b274f99df46d507b9a81530442c4081e475ec4308", + "0e9557fbac4520bcff1d7809827d1d2c553246810c216b1e97", + "05b981352aa2b1c39fc66320c95764c1d34e560d8ec1ee668457b149b8e077c596d2abfc789228c347d9d591e05ffe9a03646ffd0f81f5ddfd1ff0a581c7eb147bd9bb4d8581faacc929d43e5c4a4a98516dbe15b5f371c3bced5dd5d47012b4565bb7343f6d45c7458bac6fc3f5a8d1cabe9841da50fb7c4d3fde6d6af81adc0fd5248367c60473bccc08c8c6fed556cbaffd82ddf6f232ac70ba6252b598669e50f05f133f2f97631d46f040bdd855ae8492f70519fef996b7fb29d091e726e61d", + "07838397b4782533ebf1393abd4412de6c1ea85b76a3e421ed" + }, + { /* i=6691 cDividendBits=1183 cDivisorBits=270 */ + "6e0bb8813f87575c0fc613c7e39477c90d69eecdbfb200dc3513e76e6723599e3cd374474680b1115df2e721d74b0c4c73fa825738f3518a9ce243f8aeb369bb8a5af4f4c8ff06c657edb255e3982e42d0dedab0e7fbba41847d44f806f901c35d407e1540858fa6cc9ae8c249b0938d2d988fe3e00b65295d53ea88e0fd41329fba363d93997dcd5c90f6eb8c4305bbdd2d2983", + "207d2a98fd4d32bc92bc444aa9e29763e2832673f5b0c9803099d7c958e42cbc8acc", + "03631e1441c21464c4bb630016a1d1bdd397c27086348f4d3a66e512955545c4c85043fdf67cbf44beb83a641a1f71e0b8c146b5d9d24041114df04541cee3800ed9bbe1a88c081ac05e8a487b8bb03a89c0e80453bec2d12b3fcbb772bb5f2aea1876e3f500f1a2a7fa8daf19d34698e08b1a", + "0e053d0b900b0630979e89c516349bd5541f65da5fd467c4d7416874eb1a602a4ccb" + }, + { /* i=6692 cDividendBits=3906 cDivisorBits=684 */ + "03087ccdfbcbd98aa61163cd5255397a8715da53a31ecc336f8d0a3022044a2774c4154b389c6010a72e8198785eb146ad0cf63ba1eedea5ce93c60ff9366e0c2b6f89eafad43d80e9dece190c4e94e4417bebab085fe051bbbbe5d3af3143d76bfdd6e90d3e42d48366f7027d971dad78c5f61c1d84677a7842bba40b127b599102e81c6eda3e85f6e31d10c73cb2f587e4270dd050247fa5cf53189e50ef4e216aa5d44e79ff9912117bbe869bf0598353bca3161d21100a833fa7308bbd559c1c1ad14720f7d9f738fb1b7e4a2a59b1b3b72b94d04bbca140726cfe79a22a6d276e94824528568114e2fbb0dd3d055825cf74c71f68183fd16dfd1685ba784f5f36780230c2f2b55af0ad352af41ea78ec81a67b424eb41e85cb145bfd3bc382b594179b0e9b347ebbd69e20af51e1d110e08e5329aa04e9c9150a48304c35334891ffa38f0766178d7fc0c666e5b1d12c482d526eb25f2f9655636ac4d4399fa1cfdf889e18ee1c0af921dcb023908f318d3c2807cdc5f9cd42386c18b35b3ea46c62713f931de9d6a3009444b0829f4a138f257cfefcdcc26ccf27f4823e14cc36432f54d5cf21db31f4ae432b235744bba9fec2547e61b07057db0985c982c2f6177e51912e4603bc119a86d9d5bc56566c4ecc70e6ded189811b21bf1b2cae229a0d4875259", + "0a26418e09bf6a11408d36c6a51355598aada9ca4129e5e2f23814d9d68808f8c0b7d9c1368e9aa4e04e5feaba6fc9be09d146243cd9290767a929f4ae56f6aa2e2f9f20f9ba94694b69e6398102042c50d99029e79a", + "4c81668bbb96d11c4adcb920e07753e85b073b6bf93cbbadb56d01ca047b3639cd6c770bc31e02669516d5af7931112c075a5ab65500700b58b425cad897788e54c1ee9d2126aad8257dd2a84e240485234552b9d64f971cc2f4bf2bc0eda2f98055e2447b8d072a540467e64147b7c779902c7258a469949e91cfe92b9f950b8192d75b9841725a105e08bbe017aa67658818821f5fc3cb418358854c7585d0118d3ed11b269fff6c1822c7adb0ff500f46a2aa578ffaf0d23d749693ec0f468af1694de71047d8649b9da4e58ba8c2fab1716d7898f22861653acc008577ccfe3ededad326087bd28f8708701d28714e96bf2f2dd78a0ed48e1edf3b5cb4a20956f4f7e4e6c19077cef35734f430fdd62eebd7664950731eb15fb74008b080d20d413f6284c2e664b6c1ca1051d75a0eaf163a4af47a4e53d7f807f1a43a1e4286c364fe603784eb5620f9bbecaae64cc7f1cc971a1a963e03741717d4aedc7fc65b0788478936828734680b5dad10085ae98e340edbd6d8d099c852c93bef3ee73c68784169d14f1dc1bf1e91b584b150d6", + "03fa87062ac85150b9a9d13cfa2d6cd57417fd6df032169ed8229e71b1f023874b9a6073cafaf4f35b55f3ebb4e41935e91d902b0da1b97205d3fb78e823185fdda70ef3b3ca9ceb547c8ea52217abf5546eafa5979d" + }, + { /* i=6693 cDividendBits=3718 cDivisorBits=315 */ + "0d968664d70b2abb6a0d6ab4613dd8e89af997f88337329eac39257e7746e25ae1eecc2f4bcdb4712354f91ca719642f7ccb38c892414bad102df7b2ef1107b27151b780182ef6818d490737468d909bde6eec1c2799430552b7931604ca22b137c8dea57676f7238e00eadccf0bf76e043770641b68d2d02457cbcbf4c1c65d6cfbfb606a9448a944ce05d82c379d0932a8548c469a1adddb4be0a1a8fd00867688235a2608cbbbebed47afef7896dde177a6e5f2df44f294015131d9fcf82f70fb16cc569ee6a734477f0a58d1c6e882a50b5f3e903c21df761a865efbb77de3c111f586843bb2e8bf6eabe0a8f33ce7a050fd13f632b5e3f15ec519bb39ba8fe9c3c2c7d8e1f302705a7aa5808e306ba56ac75a712065ddd8e695102e474835f23e617950d5df1112424caf58b706e51014f951bad5c8b7823e44473546fed13742717e44badd970fb6a29c7d0169b2a8a78d7c3000ff3ce46c86ab4f9ab317197d34abb90573fecf013612577d7b58ceb14722092d2873e31e6e23260a5a874b52f3f6c6c920c91c402716c9cc9bd7225c4e5ac164f87aa0c7d5e8bbd2504a2803377976313eb1476a577faa417024c35a0a4dd5bdc2de41bbac078b7acda35ce10f39045b79d2511e1d3af53fba34", + "01b4eec99d281eb9764d7017fe391ea13663abd2058988f25242e4292fac2a941baaa9782438a70b", + "07f61394de0209b9de17405c9e1e7a2091aeb67885b4d13c268921eb18a70e73b566466216f98cf4b970dff6ed9ac661b0a89e803b269cefdba3d65a1da3688d14c1f7838bc55084f2c3f3237768d7ee36066668b4b3357025f259a79af4c7befd59d6456ccb0089e70744f59cdf661760a07c7c4367e4618b73c97ea647492e42571b388c3dcad028e8d98d9e8acf1ece04503f9320c4fb51f2294f5d0ebf467ac9c8dd02ef23da1bbd2e859411e94c9db7aa5a6329fe242f590940c027a5b1fdfb9d43e0c7da7045c7a124639670e9bb4578d2a5ad196df85d0e4b7e3434677b6744b876d0d34c93a9b4ac7ce799fdb20ea9b94fba56676d66da772fbbebd80604d9e530cda1b66618bb241cb0a9f322e844a6a7c0dc9b7390a653f2fcb21676041553f6329ba75f1a52741e1f527bcf2c32e972a5b2608b0e2c99723ebf39d1284a9bf2b95b6eca6175d6a16b1da57ce60c49015597747de95166ac0f8a9815dbca9fdeee15bc07b14b362703819c6029859ce859fc3ff329a2634dc7001e2c1603bedaaa1a243886a403ea82c8d9269b8d95e7d94aa772e2fdb275d71a77a4d953ab8d2341e99c87", + "013fc58b95cf60a1b5e13e8cc11bf83f3ec9e11d1ab894c334c2cdeee8fab5ccae3549528191ef67" + }, + { /* i=6694 cDividendBits=800 cDivisorBits=661 */ + "bc53836f8d3ed8ed2490f3009ca75f68d2ba5bae84e77659da91746aaffb2f1ad1eb5ae4cb48349e6fb0c7c1399057c7dc388a124a74a47850b928c8485a73a090a1945fcab60de3b899698bee795b25774c638489897e1ad55e5746463d8a1269c43608", + "071198814fa0a86ae9ec7aaa8c241f4d875e959f2d356c05af720cde555bd6b618b1876eef069f06752ecdefb6923740d405fefa5a9186a195f430dfc5ec8c07460923ad16f2e59070b7e445b42443b8c6eda0", + "1aa463add080b2a99798b46d62b8cd21517f", + "012d8fa2c2f759751d8372e61595a139f3f15132e28ee6cf4e318960b0c74b062e229051ba8e661549d0ae269703a0122412eca02cd20b2851a6d313e1f81d11ca20655a3afd07ba01a58627a1f6150c44b3a8" + }, + { /* i=6695 cDividendBits=4052 cDivisorBits=3441 */ + "03f3dccf7f8e6929724895e3a20c5bef4914d91766dcbff45951351d3d4e23786e6b87c061edc80796748b468ac823cd0888f570614e36c3ce0b5c3ea8b9e620c52b22fbdb0505cd96b1bee0f6864c421f0ba489b4d20f4a5e72b16bc4ecbfc8fcd162d11bad5656105ca2bd6faeaf6a766848a38fc704737a07976d232a5e2c1a2a3422f4b62bb11832881e4e9cc7e8ac48448e3358a47b4a82ef87ec18b355071725d256837b6f3680bab812d24a34ffa841c180a8ca360f8d8cf6fc960848e482b15404aa62eec6c27f5f85f54982563d1d7f46bf2a028505be6ff61396f8c7587ce71e0d52ed89fd19fdf6fd9477953973f2821d81bfd799c853a02a36abed8337087e242acc93b8afb2b364c8aee650505485735ec7dcd100f1f8a67821bf11f97fe2ff113846ff7218354b75184179d41bbc5cb913902e02734f901c63a4e5c6165e1d648bb1da13eaf516c3a143f088b3628f8b0d8b64bcf9399d1578429eebc33dd83b52e0b81d3cbd26749701b8f01236dd0aaf4383f2dee9df601b6a1aeee98be2cb384fdc8037468759abbf70730a34f9cd6f6f426138afa7d1202ab4ffe56c70b2e445f59f8e907383a214230b1a0cf7789eb0d2c49d7481823bf6aeded01534e7039c07aa8023ce15e206aad3a20d065edf28c96aabfbd2884b179c614ae6c9e2a47b69d346c5ef771436ab56f1591e31d2795141", + "0156de7f81ff83aae5c73f7a76aa63fdb6e8c9944aa6faba4b57dcb6c2a0f9898593e102bc3aef6fdca9127d124799647f2d91f710b2cf6272dcbe1c128a30798e8374597a6533c9a14618d74b1c68d053612d60c07f569ae39d9a845a55c1a254bc972cfeffd131b3c58545502943ccc15f806ac0bd3c5eb95ccf1973d11aa366d2cbf294cb66b5fd88b1d9cca736fd61e5bb73932a3759db66fc7ec811ad579e091f5d466ded1bf21b57932e60b30b51f612bf0de2c3b16f7343ab67780c00a7b61333fd0f341cfe254a88620b405add3d6c3d2822a6845f950a73edca881ca1eec805a42d6f17aa187de5e32467b30e32c7021011f38badfceb9336ef9c0fb3a9a894edc9ca5c4e38131c4e52049b44914a524782d8249b2cc8dc023b6d0b7f278654c2f368908eed2c2ca045b75db996d80ad62f4cf5892edc16ba319fc4f8defcdb53de80f86c67fb3d9e6f6bc72402d18fe67d3b29271fbd436f538c4a84cccdd85169deb3f279838b034573e949e588904b2079ba9e6b0ed8f30665f4a2b49c600b8f1a53f55b967dc7d42505fe0d2ca11f3b262c51edbfd9924bbfb7c808bf706e2aa67a9927ca10830a3d", + "02f37f635afcfa193c62320672ff4f5313f2562b49164f47cfefe547037a10b54f693dd8840980be2f3bd0eec0ff154146aadf4f263287acc17e090c3debe0c896405e8d12e9a629c218526fe6", + "1172714454f9fb9ef0161d01aa8c6b0f4b0f77651dfbb27128a91623c86da03eab85c71af2935a8a7c73415260e0dbc08771948ccd17c81b00cd3ee28bd0ade752469421ad1716b2e0042d102d16984487fd28f3d2a2ce4b244b029127e00dd4aecd678e7d350e923c349f81faf14f73c898577035139000eb067ae6fc11fcf4b0cbff79d2cf5c6a66dccb9a7eebcd211264e58c95087e4c355a018499366f6125c5ee7c0b681231367515cf326414628332a11056a27f171d4046166416e0a522af8bc24ee28bef05f4bb0cf059c5896d6a17b8bab3c3afb6509866c6458022e823c61bcaf46a5d040546dd881039543e954a08a562cea4199869aabc87559598059d900afc143bcd67aff254ea9eb4a94d95b15fc642d7f74a16af289bf30ef7e9fa81866a6c665827bfbc962e59bb6431a197e11f448df0db548dea53f4f5c31e233be2386a791c55a5eff08b6753fcdfc9724ca935857a9d04eb193b5c9738d248f6f469dd1d6f7a1fe6d0865e5fd231cb314a556a2c82ead45f7ebb9d04376ec06f86005c6e0632e346ed3bcc77a6a587223e6d95fab8e92973ef5b8c6348648a2ebb790ab9a7552bc3ab73" + }, + { /* i=6696 cDividendBits=3403 cDivisorBits=3157 */ + "0257a25a9ebd0bfdeb7d15d54109e50f0f4af99754bc3b034ed4b4a4d19a65d2928c3f54f8ea980ecbcce6d1d529a0bf13730f36e020411712887a96cc65f3079388dc333cb8f8458dd9985e8004cf1518135124798176052f229437962f063190445fbdb249b3b1133be45a30e7a2ba5929c7f7957a73f3c24cc5a07bc7457b336140ca5330eac8fdd57399b31b98a1782872e2a876a4fb9fe15c666853da599d5a5333757e19e3bd9b16c0dd746e33b1c0f2cbf45158b73e1101414a83fa52ce0e9a1bee0b8c6a28e430c8e23036ceee02a8a617ae4e048428b63c77b9f31ab8860809bce5695a50f7465f4a9184e0157b9865624e795f519d584302c3136cfd3afda853d04e83bf0308b47e2759649449188ec8e9920092a5189b76e0889baf2823c4b1c912b8060041eaa442282c2833dbacee1809966ecb3cff343c7c8ff5488dc990ab271dde9fbb30c5705edc501a3726a440a825409f44e2667e5d2143e1b966e860bc4730c9db18249c7690ebc9f71f12bfa5253717e00df472765fcb3c4221d82c10bd4d0eeb3726a3a8da4264f1ce7ec6f05c9df22768d0bf7c8aca0ba66325202958b0e3", + "01683f88828cc2d7a71c43adbe264de8b6ff8d6cee233c27f4eb519fd70a1e20eb81420647207c7607507a5cedffad50f50d22a08b904e714e1bbbdf1b8147f8cfb25e727ee5ae457322962e5dbbddadc1a3d923c5a3301d9db75b50bcf047a0d34bd6de1470b752e7211ab48890f9645fa8cd236a78bfddbabb76a72bcc6b502ea275459f95dbd0fee080b40d5881aca0a7bd19ac411b2656d85f2505d1afab30a41fda83f37ca2665d47c5dd6b8fbef89c1a40f523c6c8eaa6b85dedc54b2f97cf86c2e27098eb120e870438c812206e1cb099f62814f1a0418cb66810536b94712b77419abafbb59ae25b45d68e5b8d58546b2d3fb14f38b931b48cb118692686b68ae70c8ea9b14753adcabf0aa9d3b95b94cd898d04b43d4d32d8693a04da143639bfbda8e3d67443510ca25517d309cecf2e4eca438ed3db7024eb5ccbec259e5ecdcb3fb2f30d187e0a93a79eeb8a08e3e7812ffee57a5da8070e1bea2af31ca82e2dfb7a284a828a107efa37461a86a991dfee66bbc8e68869bfc17dac6514e85da8a42a79b6c7", + "01aa1cdf7f5bbdfa182e9944938c0e4a8d805c929deb47a1248e3a458ea7f506", + "2fdebf6ff5b67b2b4f826f0fe0db3fe242f58be8c6526757b027caf4d0187130346747f8193146b37af98c16f77bd5a9120c1afe3b1bbe1b92ca626d115b4c61da1887784cded10586d2c1b469ae621f8f7dca1892f246127edee22dd2f66465a01ea291b762e2390f8a4ff81866db3e9223e727c153a2d66e6e54f2c8cd8cefc76209a64ab3fc1394bc34797f4e6fbc53b740f05fcd5f4eb3dfc207c5c561a82b1a131cfd532f65edf4706679897d02bb847dbafa66f2da93ca7b1d39c34f95a2c0dddae235a9d7fd37f2fb6fe825f29846d569541e32dd852d46e419ab4622bf941b7e85ba511d4fb7787a5df1fa015a8a3ce8c00d5dc3a9aacb074be774c01d65b36d21a84132fbbaec5865a9190ed22d24a9fc8a77efd2e8ebfbb6af84fa6ca74954e79ff10ef4ccc267eb25603e87904f49a6b173598e024e9672198e2827eb1e42ea174d8e01f21d98a412560f7e6c545b719767f7397a0cef5cea9ae8d078c45230fbada49197d33e472692fbd69e2722622f0b08e13dd5d1831f3dd5694b1a8b823510c0f539" + }, + { /* i=6697 cDividendBits=745 cDivisorBits=685 */ + "01a8f335ccd2831a2601c8a4c01595ed9790224a595f041c9200059b540ea3a9cfd10274f591c8bdcaa7f6ac54189d16fb68be91be2ead2ec15c24add399da893716ec4022156d8120938b640f46c1c2fca4fb5e892afe600f574c7001b4", + "0b96cd763bd4af8ff1dc1212e662f967a6739d0c4ae60e37fda15471116c56cf79f2d8d65e148ecfaabd54c95cd735d81990bff134ed72cb4b69d54e93e233b5e5c8fdda70417297f4b7827351df1ceea8c31c0488e1", + "24ab0ceff34536e5", + "0627e3059118860c1c5fca7d533fde64358861822adf9a7d4eb9b5e9f65cc2c928fd2bb2fe3f732134604a1de01a63d9d9acf3c39584151d9073682b4d72a928a16aa1a34a54ca52f75fc05ad838a429bfb0cfdd1a6f" + }, + { /* i=6698 cDividendBits=3100 cDivisorBits=2890 */ + "010d36c7445c16696edfa8477303539f1f7b26f975baf8b1e110102c0429c04ed96fda269e35f5b26a926e26eb08e837799626f2bfeb2f3764b83bdb6109f8c2eb9fd79eaa1a81900d509d67e0166a274ebd71dd5376d5cdf832461f6bc896f4fde2d168e11c82064629d9d84942993a07e35f03423a95909cabf8101ba9abde915773c660b9a572cd6d967d98aa45e90082dd5e71a8841f16a3d7fb48d4ecfc6328cff74824b84e2d321251bf0139d96016103a81668f5c27a09198e2fc7e83080a8ea2eabf26a12b5ee569293ea606dce31115322ae5cfc640fdf281229c3bd09c78c23aed2341cbc0850987acecb3c55f74e4795bec8aed731cd21515d5d9ce40569af460725fe4e75d9b53fe1f3a4f34b1590e79b37fbb9f7b436d48c5adbde2bb88204063af9769a538cbcf48cba2898a78879d0e78e4f34f59bb8c057c88bc81a4b75ecfc464b60f178c027d67c414ba1cbd80e18b56da5dbc62fed47493979b9d66442a7b0c8713487c910c053785b37cd02d0b64bb87221e8ec101164afb407e", + "01db295cf583a967256586f7cc4033d173e52a4f898f9e208ec1a719520f8f075d4a8b6506acf0d21f3897fb8cf815afbd109136a3ff2d575e55da7d60a6b24fea790d02efdb59aa7d9b1a1a1858512252e573ca8bc4acc2673dd4a2035807b705a45eabbe083173a5abe934565733fbdf3221dce8dc4a1e4e9c83436c8383b66ca5abef926c543e9f0f3ee5f6062222194868c4ef7fe089632c141f6cead2a23d616163d1b2a1d7e05f46f75f17e74b52d8fb36fe05c2750efa96a3f059919ba58757dcffe18b0cedb2eff06f03d98b5818242f97a32acd88e1f0dbb4763c72ffc2f778e337e468e3973451430da75ad0b8f26ffba642c1d878bc76e69145a75ba6090fb7ac76107ca05cac83817885a2ff103836202a951da0a7aa6f1ac66964dc8fcc61d509991954aa90e6217fc111c8969d2ac80302c0e0cbfc82b88bb6e4d02fe2d08879a73e38876260bfe2bcdb70d7c32a018a68337d69a862b401761978752ea9a96cea5d5f", + "910af6c0d5a8c5dc5d9fad304788efd0086d222b8f33b0ed35cd", + "010798cfef7c7345aef4073d27d2a8af3b70e19e1c08fb3256fa872c188bc4a1e2bc6f395b576666fa95e294dc7861031d775b10afd73d782415d40ebc3a1ce4a03d5a9a5824c1ca08dbe7db06572cf26c2548561b84e18462561ca06d3f9fcddea6ed5bebf5398d83a972aba49f7e0110eb22350596260830da59b8897dcd493f02ca46eff46e9d3a22b5e51d636d1d1f81fed9019f81b138f59e501e7c0edab0ad2395b028a6078485ae7ed9e64e9913264316c295e9e62c28fed453746f247a6ff0b929e7274a490c0ac49f60a2486cb98860581063c4efa3b2ad4152ed86c607cdf9aa806ea132e794c9aa73dd9049630777a6342f0e760dc8bd74c12f46b6164bbe96ecda543710c01e20b384c7bf22ec98e80ace20d1bbf714f127db1dfc6b55d7c390882a23aa8242e747676664c5c1bc5b7c9aeff28e63797a6ba164c31f866679a0af43a17406ddcd941f228f9e5ba3292639dff805baf92bac0db7a5bf98ba70c6cd06d06b" + }, + { /* i=6699 cDividendBits=1563 cDivisorBits=822 */ + "0144701ff40d8c5fd611730864fe07b9696ea180c0625dccd026667a51c0da8adf65822b3b0e3c1202a4e4987d040819adff36ba6ab6b14859bccf448d524ad2d728035074042a6fddc888504b742d2daf6aac71d6949f5e153656a7febb97e10f31430a3554b3022ca2b497a20d2894384d6a320e695962245c834315fc36d070412682a5e886f1ad2d84680feb8bedb7715d9533006bbcd2c66d5a2d1d375db1ccc57d971a8c4e821d4b65b28057e958199600fc08c529486b0a47ea129a2cab48695e", + "3096d9b497bd444cfb91eee94f8725e06f455a262428774c0db566cc78a40c326683c0a317c0105079e5c78cd4cd30d5804bd33f71e3c29a4118a0920f1aaccc61464a699d7b96ec76394682eb1507ff842a6a908840d707c13a65bc9fa94a232e5b08f09b83e2", + "06ad59fdb6bfb4ceaf52bf866c8e79ef53575caef7ea0f333bac77681586991eeec11c1591b1aa8f340a9afefee842660c96a7b44541e711ea71f3c2fb28e52be42697bc6ea8e55cc6c93fc1470c46d7e0ef93651c07c72be4c110829d", + "21d03db97352616a125f7c33be4b3d4ed839ab026813fcc4564da45395545c219b6ff68bbe2ed24cb3ae09e0efd9ac40461254f7fc5c452993b6aa695654722d1e76dce838d59231144174d64e256c19bdad05dc98ed2dc4b441d58774f7d4421f881482cfc3c4" + }, + { /* i=6700 cDividendBits=2974 cDivisorBits=2353 */ + "0b1d903c3f9162cdfc2aadb3ccf6fa809020a4ee02254363242f7ef4fe2472d0ae11b4f922fdf7da4dee98d9020907e6443b954b86ea55c35a2afe34e75b1048915297890aa068012678836e6016d7115368900af3732a84fae84f5bf33ec44b073b5a8770d56e16932be893f96f5592479b332883a0446c28b94b549e5060bfcabf9cda130867a46dbb66bbd73f35fb55238ebb701df996d1aa76f58f36ec801603a1af3a3a41aae87636d02d73d1c465f20e3e1af13ba6f69fc94cfce9f57627f3f590c77aadfe82c34d6c5431fd354f7747af83990f2f7336a084989fda52bddc4e20486d532d82cfc2d73478c37e8f264392a114248533cbfc79ad875ebd6af4131e243875c83945ff34d0c75c0d3fac1f789317a9ffc3c72ec8443f80d25a16b6890896a6ed9f9779574a15b3de7afd8c1bfea809456860dda47562ff8ed0258af36534425c676c5a4db3065d2fdd3abe38bedc1628b5a0d50d34ee8b1e792c3e172402e745a4b115875d108e0e2b7da4df", + "9583952e9739582f4758f5065e3b354425480007892e6f5335cfff5a84c00b523951edcb07fb30b0a5a0f3870bcb29f1d1c61290124e29978654eb34f56bda31bdcbb0095e723ea849c579e7b9d6f4c28c6fdfc5949c11825e6062056daa3e3453361d7c1ec9a70b2dfad0bad0b27dd5d04d3c37fec1b9a3a7d920a2635296a670c937bd4190a975197c387a5d5c27c2c986301b2733edabaeae098125c42697ea133214b252099f7c6d1107c32a05976c5ec0c0cbf02699ea7fcb389e77a9f67fdcbc32d57cf4daa64d2342e4eaa3e8c20ef880a7e51cd3aa8c340aeddbc9372cef313fda46b4ef083fef6fe760b39d6d2e1070d029775dc32ca510e959d8a83d5fa31ac1058bcb57f571c4974235067b5bbc9e26d4eae2c48b280044dcbe25527ac1907b4c", + "130836e0f032d3053205d2ebdfcf12b3eadfa2a6559c124186d961f691ceda039329d5875d0df574e172c46d7437b5a942f093ad44314c5603000cf5c650565ef12ca15848595de73efb794fd5b2", + "0e944a405d934cf1f7076e808979d711f0f2726a70cb0263f3e5b0e9a23b20a96ab3911118902cd5cf38272e681febb0e0d7206e3a2bd7abb22464e9d6f9922e79e4686bd76f181faf6e13c01bcbeea78b4882f94551f6b8d176056e2c9b3c495b6a6ed14781198c98a87fd2a07f10fce3ce3ae0275490e511ca8436e84be12cc62463798b1812e84af6bb3dc134c25e2c880ca20d2a3def7cd52c6336eafa31c6337e6a7c08ebf06b36b81c78fae810792ac2e97255754b3081c6c47837da3910d0db9208016f872dcf6164c72840f58059dc6865610c99aac0d3e84fb4884d6b3473f267fc9dc4def326ea4301c7d8cf5ddc82b1a609e1b9abee30b92cd35ed0d912317b55988a5fc2dac1e81d2781800f60cd4ce2dbd689176b873b82fc04c04565fdae07" + }, + { /* i=6701 cDividendBits=867 cDivisorBits=731 */ + "01ba59f731d7edc789358eb6e2f643df4488a1ba460ff6bc237702dcef54aeb14bc1b2ef912d3232881f018ae1d56ac03ec76daa2e3186b7648c9a4c145ee6a96dd687ee50a494be999ba18214ddd73882d69ccc72ced7eb763d4e1f61dfea1e5a4501a30a5aae2acd2320550d", + "0418afa0cf6de5a160049fb19024c6bac1688717430a4f1c331f10454c677282825d94b76f26c443d0b1530b847b689785cfaf58f769ed0cd3ffa059903f2f842036e993b3444248127a21abd31b7157ad96df6bcc7ad52fec0de5ca", + "6bfc1022a1f413cbf6309cf5b02933236f", + "0216bc79279649a9feebca6fd38f1c3c986230ff8fc8fdadeef24cae30a764a7ff5c1c81c21befea4b0419015770325c9f01f4680f378ddcd92c30b400252a3d783bdf855242f4418c9d5520f928ddd02151be35435ba04dc1711477" + }, + { /* i=6702 cDividendBits=915 cDivisorBits=544 */ + "03403749474a8e1574a01926a5fe168d6fee8d7afc545cf65ca7e56f035d1d2f3a52a5ac8af2eb40f13242853c023a0f4eaa39b731ea05b8dd5845b2d47d0b719680499010d4433cc90a3f44067e73454802a2aa347065f18b876ce1a9a876b829b4214cca7bc7fbe02368d162870dd651ee0e", + "170c1e90950aa321c7b3bf0317c8a68a53251eaff14a6eec122a13619e6ea079dc62884bf7727bf203b7a05bac41f1afae41f1ca6a6d5fd9ed54ceb64f95cb633677ebb0", + "241be60944d4b060232044ee94c1ac1db7c4f1c5a70eae6eab216bed10d57c125dbad94c84bc5921290fad7d692ce5", + "044d2b9f6e62caf87f3810658cfbecf51c4d071f7ceb059801c3ae98a7c8e7c4db694ba06ada7b61402aa089ee80777f3ce0853251bb30c59a447ae2bf1b0ebce559d99e" + }, + { /* i=6703 cDividendBits=3122 cDivisorBits=2393 */ + "0345315bcc116565d800b097e5655ddd91ed00c0d426a8a394a61d6479639f31b5fdcee4d6b4247c04506d083091fcbcf0067a5c9ae5b6b2c197d94ba03c610eed84f8f9b0bf7a138391a3f79999919413d62f9bde08a7b177e1c1cc9e48789bc156da1ecd716354f9f1fc0ffa326aa16ad8ebb1c30e8410a7b510aa7ef7c46dc3a9b3d61c18c7fbada9f3eeb7b6ee5205d972993d776c832279cadfcca1186235a03bf741f1ce1e1264038bdf6985ac15595fb948f74ba95e91e69ab4c3ae3ebd6985380ca174f87d000b2e18cf55ae2609fdeffdbc96c178030e05499bd556be28730d028e50c3c4bc2113f4439877e658719b91a914decf8edc9f26a4730de861cc228d0c79f8942473462e2b0cbabec3857b6b9d44215f1e32e5512e6ced595c9bf40f784823057ceb6ccb885b1ccf80472276eaed5c8a7f6932c41779c880baf816f438eeec1346fefb34b3297c55a0e442f6912862a9b59d53a3a52b59f5386138481f792173bcc0493021063517c63f8305ecac1c492ee375247fffa473a3bc02559a10", + "012b405523000841a9b152f068e22d471d03730ca2c8161162b5263301bd42a48733982e1f12d280a4e18614288eabdb7d91b450719a5c9bd0baf8716ff91cb4dfa904480aef2b71aacb835d8acf2c8e4bc6fa5906684610586d787422c568cdfd7ab4c0dbcaa64b805e0d65ef38ff8ad9cfc5e95acc9bcf8aa278d784ceeee650f2b7a6b57c1d73a8000664bff34caf49d772252d44765afb46043c9261bd8f6d722e67992ef1253cb4bfffd2b5797786b94d4d3d60ab0c88c2ef692b77c1f8e8e66abd41911786b3c871267557a34e1f93a4139b238e21386dfc315ec2e3f989d58144acb57229803273ce88a0f6dc6c37e337a62549618b8f486b6340dabf7099d3400dd318a84f889a2ed8e619d742fc3966692c3c061db3e36cbcc27bde33c9e313c7d8b25c53b9daf6", + "02cc3120d24eddfb0304fb49ce78d6fd3c51ccdc02f7b207fa280532943432a08dbbe0992ee637b3155cfb2394993cc5c3a5224bc17f3f3279c8e5e0ac3ff3c9fb2362f53e62f4c0695f5168034072eed2ad4bd1537a2b6a50933ae9", + "246a8f1eaf36f86f934b22385d7b32eac5d90ec417e4b7c03b46c59040909c0c391a2212b73e1e6ce63d4b397016d725a95c734df7a55357b106d814ba99cb9355076ab6714575541fc9018dca38ba927367657f37bccc74f83cc008200190329c37125f8146bebee5c1e2b98cb6fb5926ac5fda93fae3253faedec47fd839f8c5704fb6b08a003d26fcd5173db8dcc0a6b1ef60b06292de07d3a31908f42ddcd8bd6240d276e8114b3468e7d149818aeb205265792b93c6000ebb3b8678b3889f67377c994e7448b2ba8b7e946703200e519b2f4179c256defeb53c75664df40c2d32a97d18bdb14d714dc62479eb2f61c1e1b5fe6b0783ff22d4331e3dfe404bc8db187a1c9b643f6204d02209665f6bf476ab9820cd34a68e7a8f719d595b2e84db64aa3eba174f942a" + }, + { /* i=6704 cDividendBits=3234 cDivisorBits=2907 */ + "0218f705f1b86fb8c03a6a0a878baa53cb5dec098ca66fc17b94fa512ee83204cdc3617d15c43834ebb197769978d3e0f475af2aea71fe97fd59d6a7000d7361f0f876b7fb900fa7a7e4f8bc1ec721bb4283e49763581cc4434a0f7728c2903c10c1a70eb08e6226f1df0052bacf87cf0e2a3848853617479e08d38f34a56036809886859d7ae77738ab3e0f79e68a7d2cdc20110c2beb33d34f562b6807b34240e312dc5063785e6b4adefecc4addac5c7dbbe55077f0fbfa2d01cf01642fc6603254be1afaac4212bfbdc271af8f517bed1f657fc276fb47dc5f0d68ce8a62c26720a0caab7599d56bd44f787c839373fc32984b2e14591499e8ce157db4ec3bd5de75bb49e0e08620694a693f5bc701acea0399cd4d948cada2a360cfcbfb0f5116242fe37436c21daebf8be2692f60cf65ce26adbd154a3de196b2077125dd4d516fe61b82776cdd8fa97793edf723482a1edf7c6b5536c37b814dad41eff7582efd63421feca2285419b435bbb1be8c50b401e9dcc66acc649e35a864ef4740b51676e1e534ab1915f7e770257509d919740a", + "420dfb1273e91b991122db7bbc54b3819213de5a11af7cd83b9caa8867f5c7be5b038ebc33aa31f320d17a56313be90b22b91e20f69b14b62eb86e4225275255dddb1185d5d54014eb08b26c4e5eab93df467bb11db1dea01ec2b6f042464b5acd8f2b1f6484fb3315d05b3e6da5ab239c5c52edb03a2ecdf922da8d56e3d53927fff9d17c5b9da42e214e1b2070f9d9d07181a31199bec190843a076e7e62884fa7c8d732293703f7e7546b0615d95daa9dace7cb33aea1b5dc17d60bdb25dcdab317da73f4c8c682d0099e0e3c401ff5f92078d13d84c37f268cc798b73a32bfe3c0feaad06b609d91150e3a45111469890997c6a9d5e795405223a552102e4f0524f7be7ef6937e85d5b8d1159f5bb9f8ebebe22b8bb93d7fd84976c6a41b341fc39dbf980a8d8ade2fc92da1714f550cb997123bbfa122189f7d6c1aedf0591172c7c92b860f99683341b10aa8d07d963bb768f1d065b0bd3c306f69c347ac65bf3da7685156df8f69", + "08210d14834b96cacb6861a628be2f13fd1e863e90d7f0d6f933af8a46bd5d3c13250dbea0f362a94c04", + "3ad973129d0a7b821426bbacd453deddac0c25f9e2b5126409a9be30b4f279f52670141735b6fc37dfddbf4ec421c65baa005ae981e3aa3f6a6aeb9a8e1ddb56daa645270ded041bd53b105bf73039ee42be62267f4f473aae0f364ad309e83118c60f5a5365dd42f27c8a8a387654baccde38eb1e0aa74f1ffd218a3a4d8345cbbe32248d2d6f0e6f9ff51f9eaa86724bc406336eccfa8daa690caa5d3878ade5e8b46cba4fc9a9e13b96451d594d7bf920cd7b8769ef483e41046c1086f6b6d34acae6a22b0ce49510765a74f27bf76327f545b82eb2dcd6ebb95061928b7a5da1f02284928ee38ffba2f6965f641f5876446aa5d76f67782141742e66c0f9f735ca4c997589823213bf00874fe955a1a956c65bad6af741c8f5dfcabbd86ef9687c3a080130c18d661c1a468c717ec8e23a9baea39ec75354058cfeb70357ef0a0ba9375b868e4a31d68e066d4f95bdaf3d1f17bf8587387835c7ac9fc0cee29c46d0d6fed340b70a66" + }, + { /* i=6705 cDividendBits=424 cDivisorBits=248 */ + "da5932b5a31e04b00ad03a7d69194cdf28c83cda6e1f9562271911c239f284e4364abd34a84afba49a43a2ff533fcc8ebb64a4fc37", + "eba7122ce8964c6b0ef646989c285ddecf0ff53924ae9b36d2eebf59de5418", + "ed33a16e1f19434182a62b550979e5ddaebd043f0900", + "cd9957430d5b97cff9e04b65a882ee01b37e3636da60e78fe4d7d381c82437" + }, + { /* i=6706 cDividendBits=1111 cDivisorBits=977 */ + "2ad11230c3a23d362fb45fbe7c0ee47ff05d6fe0c8d15ba2694ea3ea98f0a05f5a1ba4e319dab081ea2a901b4b27e9dcad2a7801f61eb8d56836443b98a303b98bfb56b6e54e654e8c656a726d449d5b93afd1797f80b6948bc48a06302e887352c3d7a777e420d8e0e39f19afcbd2271b056a4142a0329966f550c586aca60987fc203f8516b89fb00ec5", + "01d631fa627a6b63c16c82617bc5b95370e0b870e5361dcf68edc3bc4a5c0ef26e92f7ab2d9ce199157faeade763ba712ac97ed2981aeb786d9356ba18981fc05471b2e7357c45724ae2c334018b0388ff03b95d1e4a86bc5ee3e33d5c16ca34195798c38fd02e2318787078ec5974dce0b3eebd0c32aa1e1303bb", + "174fce7f17f09337dbe580c0fca67405fa", + "013ab78838a7f57a392b4a35f8d61a3567b137d5fa10ad61f05c8840cc6e3cc714e4f5890043984b521213d866fdb478994a01f978699cc5fa9a379eb18b169d5369bd4952beb26341147ed731b34b9676e0c2cbd8104354a57fe36cca548469b130e692aeb08e68b3633481ef8a4b976729141e0468e3ef4fc327" + }, + { /* i=6707 cDividendBits=1637 cDivisorBits=1297 */ + "028a2ac22a8eafc968fb08f3ef5a4850e5b5638457cadb7e3491a52d7759420199276a8bb2b4318f098aae5667ce3b95374eb5ff635a71d69c4ca391bc66836868eb25644e9909a4b2971695e1f688ba272bc6dd7c15ca68a42c5ac3792c45058b25c71f3a68f226c996c456c5d4771d6e0f87fa71553e9b93dcbb1a5c8a76738558ae32f8c02569179b7a11084ab4bdb50ce610bbe1de83042552e88c3172694b967ad5b54673bf57e5a7c47e1d7e3b1eb0de2d434ef73f0262b911e0f57f854836909507282f6c288b73990f", + "01f20893004293c19673cde9427d1b5db617cc6375a0bd1ed46756a728d59c413e16422e2a11af2f139eb3c43d821dabefe562568af43936f5ff24c777b943f9f98e2a669576fd9fa0627b04ca81e5cc90f2be02691eee2d8053c99d280d0ae1d12275980baf2e77a819590a3eca24268c9288db546ad6cfc89106719bbbb7ff70d278e5f6e4ebf1cdc15b269d376e6b98d1977d79a1764a3ef5690951c96f1159df2b", + "014e332e9aec09f4664282a4e575f25d8c45a7c33882453d2767373c401caed81c097cf57a7ede30bda4f0", + "af360b8f109244285f980e46620e53af1e12915c5c7a5ef038386e66817c98b6ae45f317257f743dee2f849b2bf0cb99de3d68125f2da7dfadfb3b9c9ccf3eb7e273e84930c92986c59044cb21af6c2622c7901cf6be917227549138061595a9e04fc26779896a49e80232279561bbe1953dc729140d820b900be80110f6d4c029e6eb3d1c57dc975f279687869832dce9e68bb0ef228458c557b2f2126ee17bd4bf" + }, + { /* i=6708 cDividendBits=3492 cDivisorBits=299 */ + "0732b22c133dbdfa1e5cf1eebf6050e084a251933262391fb62d95700cb8c70edd38fc3358093cbac677e88bf97e54b0047bf8d5d0f18de247338f760a1d14d6c6c1583fdb1cc0e9b97c5d6395603abcb749e6348e56470410b9729db85e96b6b6796a8ee0047065bf3d511152ae59535e12a4a661aa59436986135fd6b50132b166be3e28bdd0a4422620073239437af2f48f7c8eddbc467fc7e7b8b10668bc2b6a9d4ab834f8b9068e0084027beb1c39a3efed3fd6835ca30a4dbaa3360b8054e84c3423e4bc6fd78c0fbbb4e2b1574c39c4b00e51a70d17b6e410b4da8ca31715db5ba3dc49ee0d5a00f49f9e99eba9f5c567daf362f469ff8fbff81d6dfd5575160319133d4aa76d55a551b9630d7ae4d7074489ee30e51782c5d70dc6a6f8f44d3e46c9513afe8f4410ff128215cce75f553220469302151af9461ff6a2b5c7f12f3f91a8100c818523f18261e50625e554b05dbbe6fe0ea9a1ad0559ef16393a0c8e334a2efd0ac4d13ac7ecc6d87cb337e92aa1dbbe987186b89e8c089e597d7c000ac84e2bc039cf84266c4cb2fcb3b92fcddb49b83a945b0f4fce34afa7380da9497a53c637c17a59a282b7dc7140d867", + "0251d92ccf6d725bcc4a8202ac7a6cd7fbde2211eacd9be559d58006bcf1d0ed593f6aba5513", + "031a5c81c6e1f8b1277ccf5a959afe61d19e66374885ec91c92c2f60271a21f0631fdf5fd7a72032927d339e29ced340ed0bd299fe533e584dfb445f1d68e7c9411ff61bd1b641a2b7ac1576c752fe2b946701e4ec2e706fbec3cfd36a5fcb060f0b05c3e5011d69d495157dc0e189fef0d13caba8103f060dceefa7d17abd852924060852a7efb8469ab03aab1bd0b8aa54f25afa58f71c9a3db9922b4e4e7cf8d6042db33ac0c5aa454452b0a9f1bcd0464dd83ea5665f42ddf29b4f836cc943488b069106efea84f8ac43c6056d4b894dc364355c9f34e3fb7a091c64f6f62e85d9d030afa8bb1a673be643587ecc5c9068b2dfc72b250347991dabb24a679add2842e3ca38b9f21a9296087f3300697034e8c6e210d6817df1bc4e920aa1f1bfeff69146a7174b22b0f6a803359c7ef86dab756d6097c06f900da7ec8ef5cdd6e44e1245d1e95142ba6024407b8297d34e84acbda3a9d423734c7399faecdcf7e3a4d121a56cca1e15a67f81a6e469cc138493e41164ffb4f4dfd22746c0632d4d0edee1ab8ae3a8dd7f2db783e0", + "022e52128be14028cec2cfbe4f1b103366e63b5627733c537b2294917feff0b7852d8d18aec7" + }, + { /* i=6709 cDividendBits=3284 cDivisorBits=2604 */ + "0e6d90fbd9f457c2d585dcee1769bfcee3a6f6d8877ee8dcea935e910fc5373362832918c78e4f4aa7b1b7efd930f45c1aa0221f4808b84cedf5cccd32d29c29738f06890e3f396e14f259afa806c5feabe5a3c5494cbb2a2c4d77467141c8d05fa194c446540219d86c4f1c465296ec9e494b5a4f34d5968a2f722915b6c218160c1e5a8f159f58c74fc2a230abdd7206e47236dc391a66eaa8c7cc9079b07dce762a846afc17986e0e6a8415187752d0732cdb5e28af173d474e70c820ea0dccfc0eee0ffeb693a74c3c7ad24c6fb5367aad44cfece3b17e317078db208e8d9e877203795dbd59ab1d86de8c10a916c10e1239cd70268453b48c96f7987eebbca54887498cbf3ab6b9336b32cc3e21cfa731c95a39ee1eb9dad0bea7c78447ba0897b208561b0e387b6bce51f02516f5cf4d0722a950c266cacb1d4cdbf17c8e9e0bbafa3d2d4d86a21e94b4c723ebac30659b85615aa276fbfdb73939d8994852f902f3f2bd3f6e9e860e64711379948e39293280a77bad8008da58fe6d793abb66a38031beeedd2063de50bd1fbff987401af666a4c1b04e6e", + "0ca9a2844331175818909438cd61e2e72bb96ec6075bf354551f5c35e959ae9bed93082a4e0c1723d9a115ae3c17802127eb04dc1d5e12be72f8c41fc5478ddc1d95da5404dc7cc9730942406c4774b969026b654024057cd29a9772a3bd75783952fabbdb04036662d481d522b1f2e265c12a1340ec83d4cce53f4645bf369aa86f5532808a655dcd9f8f8e15b25b30cd8c0167aede4234a5ba8468d81ab5d6e2dbf57d12767b1dd7c33a59075467df6bc27b5f295a3139d041743baf49905feddd0df02adbb4b8f898ed0104fc302466ecd2950d37d35cfbd878f86cdc22618a34081d330698c326e9fbf0ae6ea459b8e233cd4a22183f8ca3433b4c68cf80e4c3d0d7adde6353481e47f86c176f97d3d84aacadbf4627d8550ba7b722a5f5b594e6c4c25ea213062c69d636bbdc0152235affd4887ad9a4ce3d0fb5ade44e1d58c665d630", + "0123b0ae5a8461f75514a0a7550418f5ef01b62b4a5602bc19c42f442ddfbf8eb5df3bfbd41d59ecfda4c31e6ada5dcc7f113a925b7336ec7108873c04c877114f26f9852ede12f36913929335df40d8aaff6f2e6c10", + "08873e7472b0e9425997c11a75083ab085b858b4abf3ac817c9fbb9eb376ac7cff40d67057290d00ab993aa62b2440665c3d83e68dbf57b6df86e7bfb23e930f433d615a390e996102443a1c98094158e488e1de93dc3185054671d447aefcd937e02c3a7a7aeaa4b44e356ac77ba774462ae890f62a086dca7d96d00a7fcc062868894b1f38dfe4996a09166b68e3075e302e7b16f0fc4f809633aee9af3af4b16eb2a69e161ced824b7ff27848428de0561cc30a3b0ebdd35f144a975df26358c67a95ac2c2d22640a0836ad4c4d08e4112e399d697a1306d510b4753530ef032407b070f3ae61f253479f581aa9b107b8c2625475e74a80ed0305f0f4a43502dada3b8933f93494a24c3f28c9cddc9147d7849d5f249399b40b04603d05f567cb08cf033f8fe591e5fc773cdb41dc0af91ac3e9299b578335bfb15cd8258d156a1856ab6e" + }, + { /* i=6710 cDividendBits=395 cDivisorBits=349 */ + "55e9f1b1fc8e2ed47fff9b041f2b99f0a3fccc83c65702607e2b2a0168ca95706da6c89a89400d6dd427bd8adea1d91655", + "1f0afb6f0ae8c1913d7cc04e3967d9d88b0e6356656320a35d5a9d0f139a39c9d0a87a735d1da62a17e8e9e3", + "02c48069d3a2", + "0a48024f30715fdfb027d26ddd64389f24bfe4790e3fbdb1dc46a66f73813876eaa34a6b77a697411993fbaf" + }, + { /* i=6711 cDividendBits=2997 cDivisorBits=111 */ + "1100a6ef3ccae69ad16670fa6b4b81359b7006687c6ab2758665de71896fee1393f950675bad01878f0260e5278d110acd8882ffaabb97959a9dc8ec1cc35543ddb81861fda352e75b93d68ea887899481a8229295f201da483da31572858d4b9226d63bd3e8f6dd5bd8edaed59ff3341b340460c4074d19088f03f64ffeea3298f08de0c744931b3474f0ee10b941372fd6d0a48421665cb4f7ce571a89a928c515800206d6c8eb29ffc8d9df9b54bbb4af17e38e20683b0d984fcad5466cf662c967b6232c0e9dfa32c10871d8938dcaa10cce2aa9114f8890b53137df36116fbc9cf8795b0e9ec46f34bded3897dd595fa231c5ebe09c609f6c767bcd585448d5b322b749ea3a16ed7ced6558aae6117818dfd33df6d0ec303ea85a5c13695046d5fc4ebb4a6b98be774fd59cf6637e770dc45a23b7e7a5bd87fe19b721e8252993a1d75aa3f264cc6267ecca5fb070e0ae01512df40f141704f538bc75992a10d09835e49a5ba1822786a711e8616575071fb4ee8a", + "086ffeaa7c88c83c9e379a0ef35b", + "0203df01d41ec73e8f1b2df4f19ed76c18e76ff76e405fe698f45323168f431432c5de31d332d7ecccc659119d6e63272ab22aed6294a2a847d79d0bdfc3981f44712874b6f53297bfd765e4c62f67396348aa6b3aa980c197c2a7a13ce5c814636224ede4a89e132f1bb0bf92c7efcadc8d3c6f78408f2925c7035837cc360ca4e607904fe77c9a48aca26544ea82ef6e8371d4040879c3cc8d6ed8e73b8346e209c29f4776985c9e93a40d75f6cd7758fb2f50a238f40304e68d18cf9e9947f1a15a032dfdcfc9ab4c6671f7d3551403d45cc8fd613ebfd3467b561cd655c81fdf45abb18669161768be8283b3194f25815f5d2544dc511e379f67e4f628b5a454c063d2cd1b799d84b525119d3235296ef2e4d78d021c310e338e04acde52ec95d1ea4a72966811ee69c66c8d6a7072eb1ded71e42651363316d08340b54b151496605523430b4c7686de3aae966a716e7109927a8649d4070b94de3364cf6109b71be12ccd2565a6", + "03181111d60ee535e18448d93a88" + }, + { /* i=6712 cDividendBits=2580 cDivisorBits=2219 */ + "04c9749b83d3796c1cdbadceaef1dfd2c350e54860ce4b26c30c5bc50350ace50878d5e3487277e93eae5ed83992da4284c437c682815b63fb6c71c14f80c9ba667454a49e71c97ed5d670fffbb893949f919be31e4f58f9570a5ec1819df08fbbe5e29a06d45b4e8b9130ac26d60b69ef66f6fce5bea046106dab117ab52edc5647a424a8370af1dd8cfab70bf5f8aa5e8372a809c73fd2a2de69533d05fa76dc4bb19ad56ceab919b1bf7d2c656bb406eb14349aa7ba983a93f4184980ce512d907290dd3ce99d99ac3da74d5a69fbb4482014810f2b1a1ac426dae3e388ea38afdab7239cfdfa06e5db0eb7817c9a6e769928bf6dfad420491d928059a1312b07338b7f806177a52406e4a8b8159ee7298df627b09c29cdae1bf12cd7e8303ab7ae6d9eb7bbb5a7e5ce4a34b6c6a91cabcd287c5da07620216ac0d96cc15e0dc4dc", + "0135ecb0ee8b750745d86683de06028a09de9032c2303d952af3e9fdc5673e74f90098a35f96efe5563943d14d3906b538bf3df849678498274e1e26923a4582432c9c02af49dcd7a5d0aefc3c5dd2cd9f5dfd7117e60c55345e41fb2dfa4cddb80e615611f84a6f674ae4850f6a8d86b6e3c80dc9ff154200795d41dbb6b3eefb2b214751ca86029e4ff8ed86f19abf9ae4d120f83e79e0880d0d47817fa036181e6ac10b8e08628f00e23ceff084bf865fe5974236695d479c58b31210d1333d907956223b486a907e4c06b2ddb850d9d63ad2e3a9504c98cfa8a93c3ea8d10375861ef2c612172e95184dd1f918622f180fc8984915ae636400005a4c981b126456347241cbb42ee754a34a2ee9890c24d3719f89", + "03f43c3f47211cc390b21ba9026e48f99883efa47e7ef5faefc71d6b4888117d39bc4bdee9755252241c17803644", + "715c27886df9796e8f98a2b025e9d96e57cb00efad615ac9afbeebbec4a062c1048dc3cfbc8394fbf532a0fcf59836547a3fe2fa4b6d3cac1760916c3e147dca5bf520706ff4090b5d09d9face066cee262bb490b637c1a023b5543fe7a2a9e8e9f9c89dc69c68bd743abebd90d1ea7b8c0526abea2d7d5b457b799a37230829cb128c3c4720e34c50d87ac12f2233b88d0ee303cde4ecef9e51e186faa1aedc88f052d7bdaf8e1201f1fed2a5d648247eb2060076070b57e4293591c28294d2b98dfc12b6b10f4e2068211eef3845743ae77fdeee0d29ccad38f76adfec2b1402d21b6e380cff37c73decb37a38c3dd8859ca773bd81d292cc423557ae32ee382aa41dd676fe954193182373557bac93e28b87e78" + }, + { /* i=6713 cDividendBits=3167 cDivisorBits=932 */ + "64fa33be32dee79fb28cbab8f69c3ca8a2b9d3718a67979bdd879f8ed8f0eb26319c35704f28be5b14ed74c3e3797e230388517bc7f727a9499964a60d69fc026403d0335c9b4cf66c2a9ad5e79a8bac1a29c535d91ef82152087f539092b0af9ac9a6fe030c73ce0bccd1786899f839741f6fe61131a2fa629372d90956b31548f22256ba0de6d06d3cfa026d4afb8685cecc160a6e4a7db21984e5f856fa7c9c52541e74265fcf8ff76a6e9716217bd0cd4a67c45160d0441f62666e442d984d6ef548df596da8012fffc19ca8d4ccb0d6fc18b3f33b31698f52e00c2fad4ba0b598973ffb71c7b68739601c0ff15cdbf5039eefc728c3cfb1f71889fbfcea4340fab432c0ddde157cb3c6decfad2c25ffbf67b3e2405d8c53ae574c6803b2e476f4a7e055c136b897a2a1e1dee03ef59c45da3949be6dceb77d699d58a18313d412dfcadbc4c634cf958a7de7174707201b2cbece4703d4225af4d504907cecc0e2575798fdec1d03cc8c66a12af86f48b74e9a2d3a9dfea689d656f085b88cb40fd4970d8a171fd7bc5a", + "0589b1da19afe2d04da8ff3ebb9531572e7322f52127a304e72ae57e7eff0e538ecaf918851269610b71e06dce5bba24f9b3b6c8c6cbfc950b4187be24e7cb426dfcac23620b3e3ce29cf6e2d77af94db9bdbb312e6519765f0bb1e65d91be502597929b4979de2f0e9d2e6c40c51b1110d3b90a44", + "123be567d6261ac8323e2326ec939fe1865e3044e05499c9ef996cbd9da7ec7d303c2c9fef314d72d46d5471e9e8f5a9516bfc14bf6a2853ac0aec0a2e19c8f21b74b3c7e565d4415a7b5dcb90fed4c0be9162152d62b302fe14626db333e24e20a446c8bbf83feeb8bc1d58cdab8a09a376e7dbe724bc61d4d68221e49b906b3540e247cb7c36ac9fe4b3bf31255142ddeba2d384ac3b9cf61da6b50a92d1753155320c266fb6e43cd404ff902b5b84675512ad61131a113fb0f737965a174806b1db20c8fceba58d4e2b25f3854e912872dbc2e07cd87345042cd95ec7d64a7145d39422a42c754f0b5a34c3437a695781568603734a0d3bfa5f7e515b8dd6f14be97db14f75f1ade4ce03056d3223b15583bac660ad49", + "0278bd4d9d5d0f7ab24917d98ce50eae4fb2dc2a2f84616230cb746cd6cb8e788505daed7a8299a67a0f0a909f2f7e50211469bbad03a04c51d93f453539bb6b2bc96a2dd1fdd28273e3515e6a62f691ebe95970f5dcbb652529ce577d62e6f3bd06261af8807f340d84f1a468bc76887a42a3daf6" + }, + { /* i=6714 cDividendBits=1072 cDivisorBits=467 */ + "50034a784ddff9c79f3ce98bc4aebdc931a9a1af30cf3f55a92a7ccf034dbfa374dabe010fc85c3f22f5111250cf7f727ef1aae8fd97aef2ff84e64263782ead580590044918ed2bfe06a7b194e18a12329ce3594cdd8a33beb2ef8420f7224d4a8a942fc20985fe3ae6b23496b1e75a338b7c9cd64a3eb8689a711762bfbb981e4edba451e7", + "028ee4b2d207aa8854633622397d965d579f71971aee11477aa30cfcbe75acfd9a7de05641e3ba13716510811718bfc066b8f2dab9e21fd5ec759f", + "1f46fca22a847028ec4e4c0b814affaf64b9b34ef72a5d5c84df144610f023dc207b6d875d078a23cb104fd934dc2a6a33d93ebf64067b8cfbc660f203ad40b6f7c5d300cb95b3e8849b5ea0", + "0289a4c407ac9165a8b8a0804ab502781fd6a680b0ef2b717124c5d4ea4ce9166bb4afb87c9be52cfde5fd547292386720172eb3bae1f321656c87" + }, + { /* i=6715 cDividendBits=45 cDivisorBits=17 */ + "15802ef9b4af", + "7f9a", + "2b22bda2", + "433b" + }, + { /* i=6716 cDividendBits=1036 cDivisorBits=725 */ + "03e0f21528a40d7b5b493a1657a6ca72acd58af36c796118d1548820d78d7e4bd28b94f8482a9b75280f9254b3012533959369b204367d4b261ea47231c697b2b600ff07a6edc0b7665393b72241378531e0fc306026fb4dfbd2dea2267e717a0435c900afcfe8b773bf7af78654ffa3bedb67a151a1d690fffa49893a5392a47a74", + "055985ce54c937100fd4e7356894185d23cb2e6a3b7a20d87b51320bca8c6284f0fcf4bdb93d521a1bd1b6a136d3446d54110b3f5aa88d9d3fff7799ed9ac42d1924cb244b4c5a215f9d3435e8af42fc7124b99c302a124f0514da", + "b99b985a1900bb4c0442fe487ec76251d516b3d947a3cafe47e37ac23b856df4dba0ed4be2478f", + "0113f40f655cf427530428da3737be3f0fcc52afa7fdff22e53e417821557edb8bd9b6660edf5c492a53e6134af9b3c132217468e758ed063d54a93b820d076c07a85f8730693b1fffb65452c3941736760ac13a6bd8c4bf915eae" + }, + { /* i=6717 cDividendBits=2455 cDivisorBits=2280 */ + "0fc9768934d0cb889ffc61ea21e7431c04df82b0a39a3c961bfd599f34e4eb4b865796a55b8b26c4041a223163da8cd58acbe6cbedc1c714011edec613332b6b893993965af3b1c994bf3b20faad2b135bd1c19b60bd43550facb9df49908b562fd4b30e628ae862d9c073787b88f02037ef7dc997fc1720bb1e51d026c8d368d103f002a2dac55280ec50f1c96e401f0574161172c01a36e574fa37c1281c6f38f3dd0d0bbf29fbd4067699e37747bc88d14ac31f60617f98963a5292211cdb2f887169758106fafe04135c8639cde56692c6a360aaf881add40e9ec425c548c00ca9b86e9aae4eccb9eec8cac97afa97dd4df0011416104b2ecab6225ea99cd5a54283169d6f03bf73b2657472369db8459a9c4d037f921e4f8bdcf15ea57a0631483e014e0f2496c2568f5051a758f3d7c8", + "6bac395c886c4fc1b170c5c972baa1d6493f24e07fdf0b6c0b20f1086cea0ecf3f89bcf48206c2450ce2640dd109b3610f5d615aaa7a8f54a7161d5b35937750c5bf75d405efc6debad6d491b13b091d3aca3838177bf13f143a073671f29565b062528105dd2aae4a3b0b4859f22a22b7724469371620d0dd28ea45091225b88d34bd10f3003e47a3c60dfbbf17c07ab1ab4d31bb078308bbf1f55d9ca5ed32c7bb0087b8062d83d199579ee171fb821c8cc12718446e4207898addabb2b0f5e42a96f7ce1eec89ba6ed43970128a3206027c71c5d7dccd61d722bfd367b6db03a1709a0e40099725984288474536295843ada04bcdd13b9880455e93727d40fe004bbef3a5c21d868fd4d34a40a45aa13c06883710a71972672d3162", + "2588e1474de35c902c87070763c1a098a2976b34ece2", + "1675ff8568a77e769ce8f74c7b701f7585b5b104dc876e9e7d10f795ea006345e9e1e978137e04e8a525b5f66ee1097eec21d4ca1ab057329151db238b825b97e7719fd2e8ae63a86a135465b75625a7b2078c89248be18ec44ec6833e0e1eb5198f3696db6dc2cd339b262f93ecde6f42b36a3e6ae9112ef0cf1ddb61f1c7c1ec612fd1d2fa13f1c926f24053302ef2d457b5e949715e898091956d4a154e7fd4930e8fb7ce15c1b2aadb06500ba4ab79bc1a5194a6fd503afb1973ee328d06b145d9337db45acc4bb3540d133457ea3a7c65d5fcc04b5ad6a2703b970be4f27288385d34c62edf71c6c9797fa4e7a7914df01c607c196386ce6e06df05c3f94e71e090e89df97198c81e896cdb27d991fa2d7a71cce165ea9b9fe744" + }, + { /* i=6718 cDividendBits=674 cDivisorBits=346 */ + "03e5e87a7ed97febe60674aba8f6dbf174c60138e9ede6697649405c5aa58b9b2a6e03e6b583f79490cb9f5c3bf9cf80b3709ceccf0de7a057f5fd775b9e0f5b9af9579125c821c380af8014d3b7c66806c02b405c", + "014404c9357158d4140935cda88bce4b206e52852692bcaa463563c60ffc2ecfd276222804fcf433d55a7dfb", + "03146cd4a25bf79ab16fe2096a426cab6852bb170c04bbabdc804107abc06a9c0f389cae582dd06c6a9b", + "5d948dd03f3323ccc26d1a9923c311f7753dbd8f062cc18d57ed8b0d2f380d591d08c4a17920a504530b63" + }, + { /* i=6719 cDividendBits=3641 cDivisorBits=3605 */ + "c960e4602cbdc36074385b7efb13d999036e7f456eff2c93ab76342941d203f20baa71ff629457571d76e8f7ef4f17adeeab0927b54cd3ff64d374af660f23b75e1f8adb7aad64f1fb2ccb1d367098606b46aa9d4dc4db7dc4f08d544f5192afdcc75bbba8bcf8d3b99fe19fd6ac47d2258b1aa25632743e1fa07558244a9a59a2132f2cd64612f0483a9b9d220b27e6c7a3b6d100225bc2f2cb3f1c1fac569e80afd2ba5033096f756003c0ae2e1a07e25816786353e4454135e3b8fc0278f76838e607bb74eacde809f23d622550f0b0876dc325c3b1376c4ee2894c911f6577e3951bf8a97bc2bec67901cf3c298d0053a53ddb21440fd5d901554c7f5768afdd4355a1fdc987769163115269abee7349ff98eb2b7c4d563bb35603385942924a48a1f00a7c62e1b66502b49559e95165edfd8970a87b91de7c9834135ed5bec9b7010e954741d3c47dcd37a8b920b59bffe20ea6d837bd59050a20b094ebdcd5be4cac8c4777854437f1a2257bd6d35a735b3f6a11d1b6a11eb89a3fbd7406a86c6c7b3e8c9c3a3d5607b6824f2b5ff4c4b97d2ba2ddb5860085fc6303d94db7ec3d74905d0d61f5498e071dac438a6fa6b242e8a81f2ec60fca18f417e2b2c461557a4056", + "056ab556da490ff051607b2a6bd0c28ebf854b4c1bc440919958058a6a2af230de42f9a56c5ade4ddf4123ec2945d7f057976bbd54cd6ffeafa90ea7bf87eac80fbab600ae0e5b8adef3cc7e2f0acc057c6330d0fdbe3942a18eb734cdb04bae44cc5f9f87c013efcb8d85ab3d741c0b952fe2e037f447aefce518781108f8daf04e30288ab0c26b7509f2e76735ab88d697411db58f6d64522f0179879cbf0520ab063de3ea174564e518f35b2a596b2fa4bfc7722f51f9dea596d2845028fe918bd685a6536f4c6f1635e4c01b49f861b948ce321b3a4085ad095d6cf7ec94cc458e5ac134f97cddab54188b0d1a52bb0f82ac359adafc75746f76c073bcfb6d8f802cfc97c4b6baba0404ed7b8f85701ebec3d1cde34784b790b2bcb208c917f5b6a6bc9faa555dcbb279fc02550c7a8388465b1d3fc395bfa2833f35ef00f1d497d73a6a7f76d3defae7029fbac1af99ec2ed4b1c72e05ababb878287e6d99c01b5ea5b478cd225ab2564325c9b871bcf15ef0ff3461b301fe537e35299ca210e9f5eac7a94ad72e87a3f6b90908884ac7da9b4f77e2971db21079825ce0998f92583f7c352e3d043815aa6523cd15fada6c8e0bf938bfa795fec11c1ca088b9a5", + "252d2bbe21", + "e11d5d685b832227fa9036b936fd19c6e67cccd51bc9d18e3e2f75176bc4b25ab21500690550d84c3bc42d98beeb6d666ae0a60521a743a6e6c0ececff06f107be7019e0a1109b33374bba2156e9240a8d1e9432b40406c7714a1e36faf6036200cc15bf8df39f20e02c07bdaba015f4d618e341fa0ef4d523ee55c2e78b2491b74f61c116471544b68986c2d7ffc3adac655c350668766e9d02a7fa62f10d4d3a80dca66cafe27f1b96acf45454153257cc578b3a9183ec858c2a2fe8a4ad9e7861815b1a84ac8d25d663766f0a7e5177a64f4f3843cae5a17fbdff63897f3a2df3dda11422488a46a4665a14d147436abc15db7a194d5441da44347424790f7856c71c9ac443540524c55d46a72edc1847798e22d983ab3dc7a8d35149733b90d2cce471b92c96bcc700ea554f3cb248366661e6c7842ace5ecb4e0e44e451ac02b05601d24a48596ac006c37c728991e0cc03103d375926f61898948d4d175c7d15e6bde8f41157656b617c5a474ab8948564b0ae2969576e235aadcc7093fcdf8c15bc0a522d2fdc048633592ef9b23e3ee663097d196f15db9c8312b8d581d1aa2260049c2cbcca15454277b9f286f2ae72d17ce5203a2ac4271118fa5adc11" + }, + { /* i=6720 cDividendBits=3960 cDivisorBits=2599 */ + "ae7435b4b01889d79bb765bc5023a7b86818e91b440fe60e615db54075400e936795c83b4d788c8dbeff92f1c7a74b9612691992b5268a7c3fb6edb0114de479d61f1006d9ee1028e6748b087d8465ee5704971882ea7fe03e93acbf5e716d0c85ff41d52290cf3f99baca62d9597328a6f68a6463af175c67d6bea734ed81b8b6a324d85983f4a8787cd206de552448be55640751b26fa087ad0c120dd4dd1c5f9b389d4b4e9d8787c7079ef93d6449c3c3d48a7571246db1f99c44743a4cd956573b689442dc0212a794beb42e398dccee3e0108e3af929c885ea69ed04b98277667c852963783cc783fa47291cee938bca11d223ed2b0f1d15e89ab8275296ad2a7693a917eb160862015ac55f902e4fdb8a67ea26a8f4e39646e21269a6963aa2a90bfdb73c3abf8d1a276ba0ec1d551c9004d3838b57612d6d843d28dd5926d3388b8bfc70b5b57ade96e8731f06a6b9038d9d71c5663b931cbba5ab8157400be7e5eb293f585e96de827e312be9442ceed01c1e74147181bd724d3d878e85dcf0d7675b558d49c628802aec879704e2b62603d009b98c63a27bde9ef841683efbc5983cc184326f765cae0261b7fd211b24a6225d7c3ee2480d1f2142512515d2ab5306fcb91407323ed1ca52e127f0761fcb2f8dae355514537bd0cadf4f9111f4ee25369039523f2db509d", + "7e294e017a2dc27f676262ef8d2b57c276601e90070b250e5df2c3a920cba646368684b58033fc880fed1cbe71264d3f36cf7862180516cd819af214d881737bc456552cbb1fe0fe015edc621458a40d056d32e717c6c9984a2966e8c30d91312f326d04446b9c7cf0c36d08ffdae3a91506b597e727c71a70245d4f23de5284c537ef5fa0e33fddf7cb6e90a52948cfe7ddbb0bb64b90db25d0a62fe4d011db7b6078633a9f94e97dd9c3834d5880815d485ea8356508df511bcab3bf870f69475c4f2064ae21d2f9a376cc8890922c7ab59d03c6189575bd44db9fd8cc2a82da74363faec9c2893a8ee96ecd6431b1a08fb756a539d8c1f2f851315b70bf25d6c44ad5d8c231deea470b75f2f26f8fe4fecac5f4494b9de5b511927bef0c42af28b0977f2caf524c249eafe40d15f00fc74184ca23b44e8d51047f5b8c690779f5ef6b23", + "0161fe28e8f28e8a51769d22f1b2898d81695dd84caa8da723f2d4b9168f006c0c8f7fd0f964115f3e189a56ec93c720b369e736f9ee749410bbea4b183f778a022c171b151a631c8d5e79e769f1eb312f5b3d0ab50d2a16ef4f3dd50b60ccab89d1371c2ed98b63730df68d0b17f2228785ebb9ec26924ef228dfdd47db83ee06e97ca76b8b57c3b74431f8d97c25471f6fd9f9a1e0bcfb6f06c9bd90b3107392ff7dbe4bb57eb6f5d332", + "47303d3b89fd2ded7adbab293c00b4ad5f3441472796c1324b37070ff1d94f257bbf24b2e7e658ec5904fae3a483397eace9f614a024d820a340479c8e2bf9dcc55bc6ebea7c5ed317268e83b3d3de3a1174217b4ffe74fe6cb29afc7feb051636b01648a6ed400853f0b94cfc125243f0bfd0a3c59c564ac7fa4990c0964dbc00cd614557bdfc9d49c4b10131c00d279c2073dce54ae7e281de0401869e46719e01e46951b109933f41aeb285baad6217d3c2367c37e65b604137abc0996396c881e5393d3d45eaf2b5ac878db56f91f49b248b42e17e1b3ea718620ec593924599db321e2bf7b850760ea3501d9aa95e815d3063a1dadab7c1e66a3ae656e28f6ca3bc2272b631e92b0e36de3e7d0520f9031afbfa3250bf156f8e84d676e872857685c2a35591e1113f0beb21215bfade58c5670688cece2732ad39deee8b172a4b8ac7" + }, + { /* i=6721 cDividendBits=197 cDivisorBits=99 */ + "1ec4cfb4ce79b5bc4baabd11f9274f086cd218038b6d9a7ae9", + "057fd5d153389649c73c20ca18", + "059850acf1763d4085dee3fe35", + "02559fa9b524b150d76f04d3f1" + }, + { /* i=6722 cDividendBits=3183 cDivisorBits=2454 */ + "03f5d3b4685f033b653ce45e79b6aee871511b7f855f172e336282ce5114bd0b9a1e8ab71fc954502c7d4934fe10420afdc17d45cfc1137ef7bcc8fbd70f6cd869a3bda35b4eb00d792d1bcc28a1c39351f7769a44251304589edb1b2ce4a7ee6e54a8b990001eaa8721ea1dfac55922b690f11cac5e3c38d5c15466017865d7c9518534f28bacf5bfc7df40d72f368a2494af467f306244dddbf8fdb5f6beba341940ed6efcdccf8200b689d6aa3df961b8e7f33baf1cb3de94b8df3fb9691ee595e5384841eca755097cca34f976340458bc4233fd03cebacf8d95464981b9fc32d749f4604ad8482e07749e5bb236bf6373800a8c62ec32721489057150d2b833a862193027c3c89765025f9e52af0108df7e7ad562f6f31770e078a5aa7fa09a20d403faadaa3bc56b8e134be51106d72835cf0e5306956c7037c871cbd747817822af603557565c4ce03ecb0cb523b01239174cbdb212f1515de80d983857e540e24caaf37f0b9c3bf1aa10fef3778c5e91bbda746e603fb6eca004356d5603996d412f7dc83303f77343e6", + "30a1672355e2fe9f00b393a066d60df630c65907c6457213978fc4a93d9d468db05f83bc8bc0cdcf0b0d4af93dac975d9163c2a8ea953528a924894d2a90ad1567c4db0ccb614ba56c4a564c2220d72130983c1281516f7fa0bf647f44dcc7eb3d54e8a5cf13e510c959234987c7135ab55f5a069961fbb3ea33f0d8bfe57a63f8952b4b04c34832ea76e9d1c1cb67a5abe080c87401d9f2ce9f8fa304e6120d3dfa758071cd9972681ac95522abd79954ce387d13a783a772c1c7973cc1f89eae507ea7174d2c0bf3c6ce9d7e66ff120759c2dc593c6ee2c91bcabbec4dcd5587bf27202bec9b2cd409a4ee5f67528f0cdc8f6286260337a2adf1c65b675637763e36369b264fa9f5b03c69d2be8b5ac71b0d80f2a53bf0c75eed2d7a03905c7f9a265ed1e4d44084110e65cf805aca4b2c64", + "14d8f9db2c80d08ea02510bf3a3b23c44d4e06c932ee56326f0a4b440b67c1d9435db4d59e1987f9e71133217a47fb2dfc7fa6c9ee8854bfb0d6dfbfe62577e6bd177d1d792f6c49c348ca090f7e6ef517f8a82cbd27942e316719", + "014d8f3b466b7ea52d7379351cf0163910b097733587a0bd68a512e0d96dfe7791f1e451e68b980f4e35812e96a41c19b649a991db8ab33fe50a9c5db9986517b4401c0ea23bedb38aad561512c8add38fc81a31680784739f0cae5513b6d68173c3588fa9fd1f7e925b30636f5b3986e141b628dc149615ced5b1d72b0b98e81b09a7f86f0792eb075e4e91505c9ad110ad55037c7169705f7fad66f7b2778fa5ed5ed8e3afc1a716a4a6f3ab0e0e3c509ed244bbd8d516214e52b010a79a718c006fd2699008832ad70052a63ee5d762e84b5829eebb9cf411a6dd59821689453e81049cdad203df8ddaf4f3ede072728fb7f926f66c0a1cde752b381575648b073c3389f17ce87e2aefed30541fe0c9a6a49706bd2f6d885a7ab259304e7466f3d8c948082333fbb5f9d1190294801bb222" + }, + { /* i=6723 cDividendBits=273 cDivisorBits=245 */ + "e72b63f3edfa978927548be8b2a544ae3cc3dc06786328630b6cfd61051aebc25b3b", + "1bdf1156737e1c3928c48e21558133c5c2941d8eb7da86035885674c8cb51f", + "084b4e0b", + "02201ddc181d9da496824b504ae4a6c26a8af0cc8a138b9045fd75ba7220e6" + }, + { /* i=6724 cDividendBits=1141 cDivisorBits=1139 */ + "1fe9919f9e9f462291eb82a51f323770cd7b99283ec71c17eeda6ef83870a8121527796479c31e9cbb65cce61def933493eb00872d2b93c5778333f99a00c1d03f6a0ea0f6a1eab271cfe7d77c633aae1c83602b11499e5b0efe26975d82aa8fe18bbc97c810ee8882ce40a072946180269460631fc253f540de0d9ebe4ef7460dcb91a89a1a10e2cd6d064dfcdb37", + "0351e8f81f8c88ed45a5ae8d2001dd65608957d7fb16e82df52b334927c9bfca57b4fc09b6775767744f060b5d1cc801d177bdc9ae7415ff9e63f26fb4580cfa71190b6c7dacbc48e7f344331e67b78d43df394ef8a13b3f4ad44c4710b44a97786a93824df541fcdfabbc8c544f90389ddac6f9263a241acab42f4a48bf64c2b024adb525cb6be71be3762941ebf6", + "09", + "020860e682ae75cb1f185faeff216ee068a782906af8f27a5055a165d258e9f4ffca9d0d0f910bf9a49e967fd7ec8b2436b554700b16cdc8e5ffae0c42e84d024588a7d08b8f4c224a42820b6abdc6b6b9aa5c64539e89216d877817c72c0b3ca5cc8d030a719ca4a5c49fb17bc84f8299e361a0c7b70f04208864022f946c6ddc81764a45f345c2d26ddedaab8f91" + }, + { /* i=6725 cDividendBits=3570 cDivisorBits=191 */ + "0248c315624c4840e83bf90b72e025839f019135453f203ac8834a111d209334f16122db02882dbb00f7f84edb7c0438cc9976a83938096aeaf7ebb70f5c021c5e2a260b2451d6933cdecd9cc7493c09513c41fecc79f92bd4f064daaa6ba14d39f2d2b6260209db5bb01558a3b8bebf4699d5db00e915fb2ecfd42d93574ff9c7bb0f0927ef73cb751c7689905339952703f85380fcdc6d1a171fcadd500036d80b83480f42e5143985aa40261b686e66e952f3b018070b5738404ded7f68bb7133794f77186f37e2764766586a5980ce1e2f6367b34dc8097445510bae13e89e7f5a4b9e6fe484b0697c3eaad86b0d1b3a00ce6516b175ed934e49d92f760ea09e1fe90907d1e97755657207e3ae39baeea2ce33bb21feb63a498901c4037d001c5cba407d11267cdbb2cfaa57b719e82e596dba03d0d8d76859a1711ebd8f9ea25dd918eb8f4f58639379dddeb52558c47001bf416dc306a6b94c7589f8ae1795ecd42795e4258de6d321c19a9ccd287b0c6eb6a18cad4fb9c131e5efb03262f6dcd13b3af96b1541539328e13285591c0df598468646df7404458732f258273a5270802fca95f806d6f9a166b24758ae8421c84a574c0dba6fd725e943", + "40ea13de8c09ce7af9b484f536fc4d1b5469d944e98a5654", + "090219db0d9ab19e363657ba1ee58ea4a75f7909a84156658e20ea37c4d8c0369cab51cb491ba8ad3a979363bbb29af8fcb45aee021900c39a607743b8fa5df77a4a7e374b2b9d37b200088721daf6fdbd77faa07d429aea4ffef85fd47355de9ce60ba12870aa98eb31fe3746bda8c3e0cece123b5612abeabd6f6038fdce32d9a7c2ee69b5306b94113ad1f4235905cb8d8126527c6f793aa82f9af1f300440949198b9411768dbdfb521c3ef1802c19cac1d902ed1de44470e70716b4b4a881bee1654749a4fe6921c20be07fc76f289ece563ea3103208ff80335db111c26f0e6ccdf5b354e00c91d1b0af45d1c16ba63fb2fadf9ad355dfdecb0fd8445e48f4f5c5d87049f6ba1588cb83bc839cd56847a3ff3624cc73d45bd6c3d40f552378ea2a14baa401693d2b5dfb3e9a7551fb18181f38ea16e19b03bd82f61f6d55d25e1928aa8448fd184d06124fb1fb1ba13e90777463338fdd6f68e3d64e50ded51e2b3dcbbe7c31112d237d0b260a7d0e1fcfcdf48f86bd52d59b3225dbef4256b9d0c98d846308f603a2d0c335243fc22d4df587760750db4bcca6924fd759d09ecad219af", + "3c9e0f7ebdadbc2073aa726cb26823588df23614963eb1d7" + }, + { /* i=6726 cDividendBits=3783 cDivisorBits=3242 */ + "66699cb2ec6d69613ea0b8031a0003a6376dbf098a87bd2a3e3513af17e60e9ea5f349fb398b1ff9348f742dc47aeb252c0fd8ec2a8164d420664559a08239550b8f82f18dcf75fdc9b588df758c668ddda1b9c0746600757f0f02ee09ea264454fe407d1d97d813d9d4d1b02f2741aef56fa6aebd60f0373abd304c06790a52288acc1bb834969c0892cb1d8be216c17ce1cbe45f5e0b09633b4a4c9d00fbda4a833b2bfdde2d00fc54dc779422fcc6fda45e2a5e37864170ef0bdb0cae582b44377e43268f41db6c407173ddf2c8bd9caa874f8d622f8f2abcaeffc510337631201e22e05e7a65b12a1390aa1440c084b82606ff1818f2117053280e8c656c04a73b2a5f7d4d63be829ae12921f270efd8e8e7aaee89797db197121a27c6978226829b9315dea9736d8c60b71540f3fa5e80bb259bc38d82c6012de91f68dc8ce5174db33de18b41c216c081e3940582ba46b5b6fa2c01d922ad1bdd6fbbaaf6b2401f5abfec1807eecf21a917caff3203fcc22618bdfd51d3ff5ed0a580deddaf92e74248a2e5478021a1bbafb6bf0db1cac8c7c7fc18f83277cca38d5a018d83b0636bd471755db151cb90e101f1cfbcae911e28e08fc4836f61e01af73724603636f838ad8bf2b35a51b45c27299c1b8ac4c564f6a59e", + "b7732f4bc6fee128fedb88fe2b45ad5c52edeae16261ed911511f04b10176805ffae923a73a5b7f1d1d6d69f626e9e25174a4e2fd7b89b76f6210989edefd623ecd1b277e4ff0f892831009723de9b511f1939d809dfef86274a47000de31b99c9ba47c499746bd63c90fcee9d698c8f3e450ada59361cbde2f4b4c9ebc6e5216d217776707e0481e91f86fd31ddeb5d4f4c28714e9d812893443b5649a6fc9f663fe4d3a6dfd0c8fdd4d07988541794d28bf87ff496848fd233203692ec8ca23191210ac0ade8548ea398813be7deee5738e2e6ce9917ef309ef3cbec3509fe6306290047d6bb0d40e24f91a26d8813c46a48627ae3d5c697c53fec3f6a56b66d03aa12f9362d6a02895eedbc2028c16876cee4af54eb4a3376642dcbb1a966c2e076ca32f33ecbe8d20d3a5e5279c048ac8ae698e6f83d0e915544c24a43c11cd99fc5285e9520e110aad07065ff225baae5021325a058a6dc00d1abecba372850fc0bbc6757bc04720ca16f83ba0396918291f25a239993abe0301a941a5a9495b55965c51ff2e056a4e395c12f8476340d781f", + "8eea0ccee4afbfa8a7c658a180ad0bed26056dbcc34ef3292dba01bf21dbfe00ec752cac306759ecfdda1e7489ee0f18894a33b5958957cfb714e2a1cf556f82d509a8d4", + "34f50a4d4e3ecdc8b94894dd0f27c0f67b05d93b26a3c3598cd635a49588e37f8aa87debee95617903571b02433d3018a3f12c9a5c07f40a4d5d8ec27afc0128cbd6f03fd71c3bfbb849bb1598fd2814e08dfd5506bc7ce9ef60021816075b8cbcda948eff7b7dd5997dcd739bb3796340b94af3efa2a99e1bdda415febf3c577e0a34a7fd39f027d2d0fc6e4e19d3263f24a0e4153caa26022e3c76aa9dc1864c360b82c9063f9d09765f46914add9eecc683f4f0cab70316f3ba730e05b4fd4bcd8decc4ee66025cff96ae0efcc97acc0697ecec0cc1baf6154865d7ed7a2a645eb541a60033c813546e2a3a7b4760e0423f907bdc8b1f02f1b5ae9c2378af08420610810fb4bd68778124d32c249e44407b1133f51b1e543c5d1c4157db6a6af9af500b3ae1fc9736337515cac11c317b3d4a81e46a135c2495fc50a76f7af7d1094b8c46e6933781f500829372096cad699140075399d972b8be7e8cbfc96a8469d4ec2780b6f7d5b862dd40db6a2071a7d951c8e8fb93c5b3bd1de2c3ce53b0570966dc9da3ef5c697c3db69506906ee3d3f2" + }, + { /* i=6727 cDividendBits=3467 cDivisorBits=235 */ + "02c33a97c779c52361ee8b467b4cc0b2f8c9d60e1998b47208d05cfc2cf56871e50c761717918bc8ba4f8859f514bc90ebe8d267830e7bfc63feded089b3f81fdf64e28e9249efe3fd8c7b1d4c30f96e7832a49880dea14f31be2f97870a71aeca203dce123e0b1ab29201ba04215a3da15489b78c9699c88e39a039a8b18192fcfa5d17adb8604791d9a501e771fbcc0996e6aeb79304311ac55fb05dcc8ae7119e03474b61ed148ce745624cb3513c2ad48e24d497f3ce379187738a6e4c68806258c93966b853da2795a6996ca7a95f01162ce3e23b04c51370f8040bef9c88a8bcc9a62a1a9d7f5dcef44791d6c7389ee50e926bea7b37cc94029cd8cdbf81e68b8a7f3a482932536a8a3f97513feb7b40ea4f5ead11a4d46ce7b6048372803a9a7e83bb9739393f7907fc6b0d2d68dead386d98e98d5ae618a9d9f731cf5f60d5650a1904c248a7558dc3470077951a1175830b8939bbf9d29200dbcbbe2214102a72f84ac4c14fdf4b1fc264ed5db53d0f23eef6b92646d854811c75adf5bd7592f1547d81724bb532aea006603c78b6a992660af07c3c49eba6bd03bbfabd62e6f91043c9b6ae9cc8e634a955649f", + "03475f2cb219b826bf3bc2d8445b888dd6fde6d2e00a00bacd2086756546", + "d7b29eeb7a1cc1e3b4bcd121be7597bf7dd7f3fbb0d83e512f2657b4383d3e74b9c14c09f7921cab86145723baf4ddad81f73d291150196e4f0cc7e8664735606636d067711101ef346a35b022b4e0f733f28d8952026b670585b06d9fce6cf102b42467e2f0fe586d9b6646fc73b0367c61edf9481fc53dbe55cd302d7e35c36cf9a806015bb40fd8654169f37d39aee2aa2c2bb7cea63a883af0265b268c63377841677b0255c14e7b2d6ecd07171d7be7df5fbda7d6fc62f3622ab00af886113f778ea528de5717eeb7754fbb810b96e6b3896310ebdc2f0939d2d9dfc0606654a9add43d516a974cd1dd49ae4ee4be144ded10e461eaa581595f8ce3cc3cce710821e4020573898d396ab37f487f39fc1768ac423bb9cae3594b300710c75b1ed43033525a048657e6226b9011ca203f52da25f0992eb78b55931da75458e1d79ed5b87c3af64e6086c480afa2e467fb43981f642e082568f25b52431d2625e1c59c9cf0c6c0ce0dbb2682964f49aceb426dc2543696b882370cbd8c8dbf0e806b71027c075d5d620c5e6b2d396adf759526", + "01d77079bd7682a3e10e4be7098e04843a358a4b3ba3d33649431cf89e3b" + }, + { /* i=6728 cDividendBits=1327 cDivisorBits=1090 */ + "0b61985dcd72319c1c7d4e499c74bf970fc538e07cc7f37ce212362b6a25d66d0d58f058f0bf4d0cf69a0103ecb08cf695f6077eb199f9298d88cf850e1a667b672b28101f4dcb4fd4da0e000d9423da0cc6f1569ad2a660a5e3c696fbcfaa435cc2e21b604c741bcd4424a274a4d2c010addace7841754525ae74374f17347a8f41a4e3a49b3177b829e887e2e4a431c71f6f22671ce3a90f5c4ccc6ecb5af6cec9b14f970d", + "0110d1850d949c363d70754b9d2e57e7b999bdab6ff32b691f45155407671ae7d9ad4a52a43487a862e60dea6ca52fa5487e10a25893c83f870c1f622d0979dbe696eaebf9a33fadadc9da123a09eb9eb4b24c35998ed69a1ac698e92b0942eddf8fb3b4b459119e705b209cf3f2dc7b43215d0e8fbff2bdbbd4f0fec4643cd5bdcefc81e74a2d4b61", + "0aadfb158424087a67412df6d6d2cc58462699acf9448a1c9b12ec621573", + "6c6eea0a488473efe4676775bead44affa0f8604652befd45f0c6edc0c85cc04ef145ba0fb196a07cf76eea1057221b309dd5d978929b372232b2b3e1cc51273fd685e252a578e346ea6c1b9289bb0f213932e6f711cede2ed00379f3daca809611989ff254cdfbdb4be429846952e72538635a01c5115ea9c0d3fcdc63fc19a89854c2760a5c57a" + }, + { /* i=6729 cDividendBits=1177 cDivisorBits=795 */ + "497d6bb9bc6af1c637328089d4512ba0d3d3eb999b6b99ae4ce4991ec498b2bb1e824cd59a9f90072a4991531bf5b00c1b0ec4eea409392a4810725c21400fa1bd765d173e065e3c734cccade8f9072c807b539194770124015db9799a598542aa7cd2b3f87ba8b4c7cb011bbafb27f819ecda419526d1eb469bf3984c2239a1be395f83ce3a2345c40759529734be741641b9", + "07bd3f6f997c223db7e961bc5c58c0fc6548789cd1d689f1e20432d7b2378ae917feebde3295aaae67e96b89bbb1fc3d154d18a2f082672330dc5f7cc962ce06cbd54802304fd5b572d90bc108ba605115158722294ae3c24511764855986a80a92d5eeb", + "097ee90b11fcdbf592f464341771ad288d6423ba126d7b0f5e0f9d0f52076d0f1f1bf786c3f32b874dfdbb58f0d8c708", + "05ae04f951306b25bf6f6dfc7583c6f95cc4f0cc4823c84f0c4aa77645ac1cea8aa292398f2207b570402e53889c1e92267be73a4efb0dfff951aa1a78106da227db2a64fd502e7a0da911d4fa7bbae64493f87aecbe2c0f46d507fbe6b34c2a7f9a9d61" + }, + { /* i=6730 cDividendBits=1553 cDivisorBits=1299 */ + "019e9eb04c430eaa4c400b465cf3280999e9595166d0ee3974629ddcf7906a66bd080117e2ae4084ae47e17bbfeaf37c8bb1a9e77a1f8efeb1aa0f6c8b2c027ce4d0c61a9789f4edcdd17988ecf80334d8c624b1b49216dcbcb42e9010081ad7f3ef73e0a589aaa2a5512e74fd794de71bec1efa124b11d5a65429aec04bae5527e298bd3fa276d9a592e60a222e9ec176fa77e938af4e34f08e8dcfb16674b90406d3215e346b6ec7bc08db540d4d96875dc6d0de58d8bd768d41b47194282b6f94e9", + "04182af69df020beff22ebf467d833a2bc1be32fcd99e20538b4126db5d36c29089640f72e95cade9f9bff6f16b4fad1608815cc3a3d70e91593a5388447c76d85530396e22b67e89bc799d8d0574ffc4038f490f3c45668af08d0522bec5a0505efc19b0a453b4a03df1f66fb6733fbc5a0014ecd4ec34aba752a6ac672a204539c68d672314bf06ba39a482eb72872e0963550521baec88a9ab0ee05bacf10a57c75", + "6543d566fbf8a855a8c331cc18c1f213ce2363f33a6dfbea70cbbf612fdce8d3", + "040fe56b1c89fc5e87cd260aa577a4d1e0b6646718eb382a89112104869ae5f5c9f91d262ba6af2845a6d9a6091d6cf9f5b963b84fbce97c53020433cc342748bc85ee89d86c6dd11b7eeb052e662dd6626a0c41eb1eb10bf15f0ff80943fc26073de2dd42a738743d56739483bac6b8776342b0af5c71414345c0ad50ea8939d0a6a9bc4b96cd84bdbd8007be0e9c727b65a8412cbc534326c2001f15d1020ab3f87a" + }, + { /* i=6731 cDividendBits=282 cDivisorBits=280 */ + "03c83935e156e40ce9a9f9bb7e870160123a03244d30ae05f1281df8b7632f2b254ce01d", + "bf24aadc1429480e3be01ead5da4b20a432d352bdbf87b20c7a79425d59692bca39b1a", + "05", + "0c81df94f215a4a27e99221bb2c9e5deea211a71e4d39e4d41d813fa373e4d761ad89b" + }, + { /* i=6732 cDividendBits=454 cDivisorBits=307 */ + "15785ab910248e6caa0c14ea0f7c3723ac1e9efeea0183b37892ffacf48b43f6251e4d5640b92b0b7a15796845a5680a0ce0b544f34ebd8165", + "0627bc1e6b033d4e7899fe365a053d33cb4e74a159fb86bcc2893b43d36b136ebc09c12fc90738", + "037cf585e06e8c507800801fe79b490f816e37", + "0564b37edbb3eca9f54b193c8820095ef2298682b1f050c343cb6fbc4c0bad6abe5738be3ae45d" + }, + { /* i=6733 cDividendBits=2735 cDivisorBits=2469 */ + "39ceb70e2322dd6a4298a45e138878196a237d591c95b9130276907d52f41297cfebd1536e52758a63c93df18016669a52468dd27aa91e3e1585cc6995e7de6d6a50221e3f784d160b6b8a7a6a96a6353c8940d57e0625cd9e372bdf2c44d77e2c53a33148ac26de30db142c2113bd12dcbc57812f9d2f30514aa136a80117030c9b83875395f72cff85cc92e590b7f1406f92837dd7db691c7dee2245b6291db0443f28017d9767d961c748b16fa5d239d69498a84ddbc210749d5d6e5cfa44b23a9bca383f9eb3637887dd72a8819ff530e7e0f9b355c20cae357bebff62b2f5f9650f651762c4457cdcb3803192a884e60f4fa60c8ec788a4c7a8790f8c67779e24f2a39810dc548b65aaf6866ffb83cbd0d1f55dc8131db8792e5faf6bb1ca4a8e409858c323cb1c3679737805ff0f04ce8d9304c309055125c71d0f1a7edc07e431409ef710ecea21f2ea05b93f266e7df01ba3", + "190982a856aaf52a8aa743638a83822c48bdef801d35edcf33c89b2f681645b9f6f1fb78e9e9207c4b9d9c34c23af829c7dc6c3941c32bb2b6c791432a5fb58fddad246a3526875b2b116dbbc53748ffed2660a1709a37839a37c094f129f84c162544c4ebffec095e9075cfafe4052c1bab531c09e08771b32d46b9ec46c9e10342bef03147b7d188e2128cd0036136d58e5022fda38793f0c4b01b54be49e6e882900af443973ab87210582a98d4b23c56b11a9cf96ea97dff16c5fc40ca0ef7aea04578294a384d6366f366e4ea587f33933a8a0adf1e4ad391dd2192a3bf35ce0511725a4a88198fae45f285dacc7da485b1793b6e7f9a5bebed6700ecfb3f00354bf64f3619f3472223691cd1d4d748c64c7fcd9fa647539c0007e176f9304d57776fe1dfa82aca87c69aeda1f2aaeacf018e", + "024f11fd74efadb55581f33c9efa959536b19f83c3dc29b05b120707f639b604a63e", + "18584d79f0c0b25d0d0bc60ab01d5b21e848de2e51f20763260b61b805535e65aa8ae331d2564333e139a68c4cb06dfc077511f8ebf8619477395273125f7a727cd1ac2d4a03ea9b2c0c19f96722a94f236e7a87a9b4aadb94ad38ee990b1fbf3571eb03d900ae788e623aada3b51dc11c0ad67554c618146acba2646074e66dc5e1f0be02af3ab6c0e2da7beaf1d5b2c70354e1f9faf5edb9f9d92239a8d627a4190d4a2648efc4fecb37f9af4ff097fbfec747fd43724220823d91b0e319d971a7d2d04e3b0ddfbfe716ac4c9cedb184abd0247fc2a7c33bb5e8cd96ee29350f182c0a6206fdbe555247239308cf54f88db5a76885e7b61d0d25fabe55836f3d58674dc2dc0728485eb40f12377b7c29621577a699ae21612125a258f0fb5c90b8fd985601e1d4ea0bd890faba98e9d26a93a73f" + }, + { /* i=6734 cDividendBits=410 cDivisorBits=239 */ + "5351a8e0985ce978ffc048b580da8e4067bba6e8ccedddb7ca7a2d521cc32a79d3e946bd303fd611da0b0b64926d571a0bdedc", + "61ca77e9a786ffb765d89d6783778da695d6bf6d47a09cf94c722d9ae093", + "da1d701e001e9fbd6be4350cf4c947b07508789265", + "10721ec2158c5db97bd1846ff7366119188180262ffadbb93b7beaf56edd" + }, + { /* i=6735 cDividendBits=1697 cDivisorBits=1568 */ + "01a2de136cd1288e6ffcb359a9ff56ef56ca3e2ddd327e197ecd703d5d6ba9c2c9243e79ab5adb9be1d09585dcec9f4681fff4021aec19dac807ad9e60c7e56cc08aac36dbc541ff23d56461a6a05563fd7d1d4ae7d3abbb60700081f41ccb3449695f04d9c6e0085dd1817e8d27988834e2266b580e0ad755fae41294752267f997b7913a075e461442252b7d112ce8ed0f6b594d554c46ef41f905412b73733aed1949d4796ad7e6023c618bc503f8319895c15572251bb6dc56f374be6f14b1d972d7f398ca7955bddefbd0d75a775f8daa04c2", + "c3e5e8d98686ff8a03023bdb086b48292dfb5351696eb888b4f5c1a13c9cb41a43bd6a1292586997ee8fa07b0c95b64477470e715e1620db80c54c07df7a0c87ec49b6e0b41b739430f5b1c481de5c8a2c585437c9a0d2efee79ebb31a77c61d637daaf1f519616508dd0c27eaa09fb9f072e442b2541847dc4e68b572b1c6b49f16c742f94cf0268e4fae30a62cd8ce2ccd6d14cd4cfeddb55775f90f315811857c4507e349742e7433d859f9d85efc52b721ad97d1b52a01aabf1c7569f48d65bca831", + "022360791b7e8aaec1f4eed951d4b614bf", + "60449591c9a4ba27467914cbd63b39c22820a82505654ce059298ab4167e57ba5d7b0be638354b3cb5bd65a412c86693220e4046f9e165d8076933c8edb8d0a7322b2b45f2a69953ebb062cb4803fdba15a300cadef9e2ec785d28e8cbbb5de4093c198f510ce554d7913e5bbebdbeda39373b867d7ce1f54aac581769c1f65e7eaa7bcf7e55a79145e4ab3fc50148ac75aa2dc54404ccfcd53c55bf459f8de2144a9844cd4a9076462c742418861bf63b8f95feab60a1afebe037f1d49aa604c1eeb433" + }, + { /* i=6736 cDividendBits=2341 cDivisorBits=625 */ + "0b7dfbb8f1f1acd4baaa930f07115dd0d43d20a22c9377ff8a35fcba04d20da969a6919b22f4a78afd90a5eb2d68d4b652f54672c6bb65f079b05a8c5c3a58be93b0217dece74b8e504deed32cd64e30cead5c3098bc0ff1c1353b5dcc112f2c93f07fea48761f7430ef063fb683a0e9db4b457db90163e9e9a2e140b8afac1b26133b801824c8464bd5b40d4273ddb0cf4d10861fa3bceb0b08f4658da6c47dfbab66d9b5a093dcd2973760356e6bbe8961839ca1b58124ce5721e10b7a17f5444ef8a6bb83d2dd6feb0915e942ef5dd9cc9e20e6bf2752169ccf01a7a5e0f28219862e1faf5bc75383df3835d2de7e6b947559b76a4d623861ba16de66b47a448d5e559462c8332c2f3a650941965f1435d7c8c754605b6d161c59c51216bfcccff997fe", + "dcdd48fedee4e10c80e717f47f0a1d1ff5716f3587e0eef3f67f841272b5160f297e2ee4d8efb793b2eae15429117292db49360fc664c4150c1d6cb56b2bafd9ffda2950b0b665be75282c46eba1", + "0d52002820ee4bd2860728eeec73b7b74a472f6fe5f9637843227e191e7697111f6c5313ccae87e766441ad03c3bd0ed1c15f363b179bcfac9288593eda697d1fe2d396d2e142d6028e44a9e238577c762791fa69e0e53a8098779f128a9c8c2580191a4360ec1a672977201cfd1c10322d7124adbeefccd550d307ac5eae10174c57964e3128465d8d10d1d7a578a06b35ac1b29a169f6ea3c7112fee0fe996f6d3aa85a779069eee7ae37ed77cecafdf5dce3376e15333886b58f9a56bb34bbb8aecf15d61bd44ea5405c56a9a36db929ea84b5aabdb", + "809d1d6b6903df0c941630adca78cbd199db3bdea184280443215d506466ceb50c15a832948a7bcc3d36b00e3762f7f3839bad0f0eaf762208d74e87a832f1e0e0c751a89ed1ea04593c8e4f7a43" + }, + { /* i=6737 cDividendBits=2627 cDivisorBits=1102 */ + "025f0a97b8ac36cd21623ea248861a009b118e87fce0f570304d7c27fca09926956fa517542d70fb4708e16bd0493afa17cebe74567de81629ced91a6b8ad999b531f56950792078c4c0a37c06127a204822d7ff998ccfdb01cd139db15a669f1c2143117b6e7711381f387a4c40a9af320e181a4e486a6be2cb1f4bcfbbbe0e2cb37f85980b95146d6a708ccc4fb875e6db0f98dc1e00d06cc81648b6d55e7fa2618c2a319c6d6003fa17ad87efe657136e9b3b20123d10f836d06dc051012f7b7c2c104643d992ff219b0c8ba8c64cf045811c501662656e3d9da24457a7f08fe5af3a0faa3553087f3a74f3f0ff32b53b4bd8063d46f66e6d480750166041c2f2d1445ef53ca919669b53a22200908591f37b4bc9593ebeba05be751d5e7f33b2009f997b3338e970b6a991b076663f97f38316ecaca3084aeaa471d88b0fc0de51ec82ce98b005", + "1697b3c5b298f82d362ecb5a4f8e6bea819cfb15b4b22d610d643f75c427efc4dab1064eabbcef05b0a074080ae7749582ec1bd2780d9b0902aa914ce099cb3f114dbbd089e6ba2b8342a4504c2787f365d1e5839e4afcbea3881e9282b04f0878699073556ccf722944b474f02192bea81678a0c8c1d11dbc8b044c2bc646eb143bf94109a0520ca5df", + "1ade7a271a2af45b3b882bccc05e0e92d84a655154421356daa424a4560f54b9d2eb3f99aa04542165728b8733fedb730b6482de0122db1e978991e8aeb661d2517f24fb6a3d038ee8587c24ed9ac4a47ccde5510cdf1990d8587990302dd82a285ccddd977a5afcbbfa4d1ae97d797502a4204631e4e7e07dda0fb6f221707c8edf324f9c6e2f87462887fd5e5362cdacd029483e08dd329f9aa285ae9f819b9794acce6be6fbd8800e82eb8caebf0cf41c658471af34ce1fcb9bdcd34004", + "048c7158813fb80cc245767e6048d882087cba99256aa4c732bf5c07edd4d8afbed67f8f388b432224641a4537e962bf7a8513ba8060e1d2ef98ed534daefcd0763a048f85dd417b929dd6cf9a04fecf29c59078c39757a3732ea76d99d8025646f6c20222e87a375c2b88f5995db602c8743fa4a2182ad254ac57a8782493563730c40def8102215889" + }, + { /* i=6738 cDividendBits=257 cDivisorBits=235 */ + "b18841af6975359ba6b996aba2ca729b3455039ebc6adf7191af0cc79bf8a58b", + "04202f2d3ceab422c18b5d9229c7e200eb4d17750a4f4ebafe37d4dfe6ef", + "2b07d6", + "e4818d9ca59bf8450f66e4182ebb2e44e031f9dc95f10a41adbf5810c1" + }, + { /* i=6739 cDividendBits=2139 cDivisorBits=147 */ + "0194c0163427639f933aae493089ddfbf7c55d1b4e02a2b519a093c4e67b7f83c87c0be85a6c2de0ccb06f6eb64ab4899c316c90621d7c3c5c68fe737061f2d1d6679a8a452d81d33823386971879f272980469ceea08bdd74c50e319424bcb8916029b90c09db8c5480615164f8208553e8bccb9ed97b6ab0b823aacee03e881d77dce1ae6a8ce2b1dba54e431d40bc85f041b194d23434cd6b36916de047d5b0889c2b510256b65353752415d84547f7b849f80ad47f70f74d22cd5b57da2bc28fa549ab6396ea6f8042153559f330aadd5bacfb900cd8452b328b8340949f8dd5ce14abccfdbbae3d8318250d27bc79e8d38ecadc774d0e2d4ba2ab5a5105026e6fcb6f74fc39bd9b5ac3", + "017be625c471386a4721f5ddf2e40c68c60c71", + "0110bf13c99a5496bbe983e739c7eca029a265529986b2bdd5cdb08c51de1d128da1f7a88d83d456b7d508f54db70ebb434e13fd5a1053b760c70394b405fb17247680636f269292b94ccb6f7668486ac7853f228e39b8cbc8b9300d031f4d87a86f52d1c35a56284f953e58e75a6ce1eb38835fd2ac12737da58b6286a514f9b2355545f74a1b5a4fe7d70f203f4fab7eb753048e44739e6d8550d8af48f692b82c06748016817776ca2f802bef3e805e5fac4d8595b86f80de83b55a95f4f31d375c93d9a2e2090cf855ceee0ba5d69ecc7029c4efff31f5f8e465a403ac25325f62106cb3fc471e19e38a37054f0d0a17a342a50811cbc081", + "011dc5f7b09e5a03e906a3afe34efd09df55d2" + }, + { /* i=6740 cDividendBits=645 cDivisorBits=611 */ + "16fcb7f1d450dea55f0391b3bbc09da34dd29b44d3639c4b4058b8733c8f7a97474d62f91030fa93370065e218dd1ba3b710e77f4f1516601f9c6de8ba47c78cd959e9452a027f14b5ac3fd8529d06c3f4", + "07ffd2a36d423f1b5fff0a7d5d10f139810cff4b0212d7ae97c5c2ad81db6931e6b178bc0dce9d6e1c6d8f0db82aa6c262d8016ee7b3bb3667cebe0de13c86cd71e5bb3d20fd866f3caa5bed2c", + "02dfa74988", + "020ae444ac5a5e4b3c49f0de92018e78aacd2551ce2f8e790ff7eb3ad4d93e443829fef41fe544170b289a3ad4423b04d95586a2733629dfcb86256f24b9d5347efa2dd6d1e96b639ad9db3894" + }, + { /* i=6741 cDividendBits=3875 cDivisorBits=1750 */ + "061bdac4bcf6e0012a01d82509c25c9431d21a030d51ead939901b81d4e388061cf24348b157ca33000e0cc5e56166e18e1301c7cb291ce9da707cd8cc8e9140272c60e65101da1b9e4a25c3da31028bf1d8d056a0548b03379cb9d033c4057c2e44411d61767166068ca3df1e68f3b17841a1617a42e2e5fd9723b645c5508597ccd9635f7164d18673a7fb8cb52f75514e557fee02dbaf9915301b3915b2f19dbf8a599bccef3a0a39f429227327c50b291fcabba90c24422290138bd08722aaf0f88cb7d3b925f8437b043e4159e553b210c0dfab43d0ccb5200893435e2f273b527beb2dc4d4b2277493cc145f45b92ad085a9b37c1840ef3b8a85acb271c5e2cdf85740a97cb2929a3e136f825874aa62b15e1519e87d76ac0e387578c160402a989b8c21dffabf30590f7455b5747f8849a737cf18b1bed71b57134c00a692cb9ed62363b26bd79241aa83f6c5ba9a13508d4871844657a16f20e83c7642402280c01ca885965b52229f772c1a006db980c1994c5f9a747abbc96f9f24b6b6733466a3d6bac3f86e58364d5c7fe1f31a0b5349c76d4ac62c3b8745fdb09cb980ea66d8c8968bec7e854fd485a0e60b590477bf25b10471f2c3349c34fc845d461256086bf067b7a59839d211c78f38dc1901643ac25fd373ef638e8e43aa44a8e8ba", + "2ac205ab0900841f63ddbe1aad970a7a968da39981eaac2570102ad226153d36f67c646f4690c5f9eef7dfbd35ff972374dc8a2de94695b3983757b58d2ffd595c8039099f2dc4de4a499dae8de6293f5c7a3a7826c8205d1b3fbeafdc9961cf088c4d9f0bcc84c9998d1b039c66baea1d4ac8adfa8a33d43d49a710787139a1ab08ea8eece4fb8d9c2386a24906324feef6e5939e14e9571463ef2be8a6f088bd5e92afd1327104be8f4322e05f3df62d72de5cbb7b08656b577a37f23b643769477885ecf6978d2e2ddbc2e25712ae344b22fdbb16f9bcc25275", + "24931b4da4d51bf7b379622c2a876d1ddd14b32b6b7ebb27cc5821583e39f6cadf54ce6b18cfe1d3857bfe539f6e2f0f66acd48f0deb133a2dcb6885ebd19954bbc460c76f56a532efefe3b01384be59f3a8d130c4fc4dbe1b0229fd284262ee45ca48ab1a9f1db9e5885bcfeba5ea90811af913bbb0d8ff6e815e4e0b545609cf5ca69f5eb39b81f2bf60e042e29b444ab448d4f2cb533008d0f5590ba97008382a3a40a9cafd7d054789d520ea2960d0c644ff2212da4ed9cadcc2254fd5b9e7d6ad62d29922887d7c60945d5a81548b469ed5b255bad087f3891c501eb58f4d1877d7bede0db3886adaf68ebad191429bc3c60e10941beff69d1df5a1a3590909b4eb0559dbd80b4d", + "053f4b88eaf2a7b64861ba3d33d764e882f140539b2eda2509a2adbedfa29df6e4f88f40f51c37b861d7a442f7695cc605364ec14c6fcc140649a6bfd5a910040199d0fc1274839334b5ccee4cb0efe07391d0812f6a3b13103f9a37e74f45ed7d2ce3c74cfce8f2f874826d43908d7e0839f748782ed20949acaf159db22b57b96c4c13eddba07532c9b006b3f751a27f9ca395cc3c6fc9e09c1dd8ed635e9179c12b9be00ce4508a953548a3bfd99fc2272785279267db31ef776c07ec1bfadccface3325be7f3e0cbcb29ad01cbab0ae977cb882b437af31489" + }, + { /* i=6742 cDividendBits=789 cDivisorBits=600 */ + "0fdd3edd9372764ffbf3de4532fc89ce9a52042af44179fcfb65df3bb9bb9b582cb43c503190bf9e27a041e10e27eab1fd825ab7d10ebae83e7695385f6154dd823e0ad9ce958f94a7a564c44541b56bb6ee62bbb6e8e3373442c9b4e1b224f4eb534c", + "8fa51b392afef04d4351576bb7fe4124b016f702ff40500fa075f6af008f0b4a4d8c3038fb141237a8f58ed0a65ab57c0535427a32de970670be4131273841fa56c4689ced4a670366d44b", + "1c45d68cbba37073815a825bd5cc3833f7b16c3b82d2b3ff", + "47b7dcd7939d89533b3e9ef36d24eb695f20b8609c7e75e0ab66d8b25b055fcf0a8f5af00ec31ffced57fb8746f0ab1d5a60df9d7fa7ee57f28cb2a3464c8b17aa5f60d225fab66f876b97" + }, + { /* i=6743 cDividendBits=3083 cDivisorBits=2329 */ + "05fc5078ed27908a3051d0da8f61de3bbb006d8d10e07bcf7f52ed3ebe049fa7c22d2696aa5e525e4c214b1e1f4064c62618341043a5963bd6ee64f4d6de01ffe6b1c5ae6ef4503ef570841d5eb1526090c0593c3cbdc538d74f737ab818e52ffc730dc7be670053bf9c8445499fb0248c8c99771df42ec1713afabbcd5ded105514512cb2a936741d3a8daad3cc83549a54c037187476e04e56fcc3fc81ab5a7d0b7bff639b9a64e7301127c36addd1f3bfe76361ece3769d43dbf46f8e3bcae81b239ab40efbcc8097e3e86e278087e2ea9bcdbed56864f17add3799631b001acce2a10a7080bacd4fc2c46d7e342ce33adfea67e444781e7959800e847ee290fed2345c1fa05744b13af64ceec953991a3e4ba29dde5655efa8e499a371ed98f74fc6a73e95cc9ca84e0b97993f6499556d175f14018a99a807088ee63665bce7775a8d48a4067d1e1baaf599c7dbe0e896dc6c566f70470e3ff643c2de9eecbcbf553e1cb144e26713991bbd9ca17315538a538daa48df12be193c91cbd5f436", + "01b0278880d85492c6acc1a1d64e9ba1579a772b05f2d887420f5501d3886bc2a0183187c2e1d3672f1483d9ece8feb947c4f6a4c0bac3bb6380e1193d110def5ab6d8f02366940ffc487dd5c896d86d0b41542bedbe1c1f558568f83a9caeb5c4a189dc90547ddb466eb74bb9dfa2425a34a5d30a9345eaf62cec9ca29a21c297754f5a7500aa81045d8ddec02bc9519a1f6c76e5920a5a2cd601d16e1023e2bbca7788eba57a1463ecabc88a1912bb615e37f86cc0c3ddc66f2f8bc56106a675cfa2e4d05e5affd3498cb21fb06ae26b3027be05e56d83b7ea78802cced020bddf0b8bad509ae389a2fed6b906e20d3a34a246f8bef1c1de559f627a1919c918aebf2b2b0a7f3662644aadc7c803eb025e4523d43a2244b7b05e34e30eb65baf5fb13f", + "038bb6b1d43d3fb6c1bce557cc8637e0a77cf3431e1abd3a725429eb65030638564917510d1976544a1c91ffc94d2a8bb4c20555fe9d95009d3848dc8296d56076b3f3cb705f8dfda76f01570dfdc4169ca420f073c8a7a7ac4f696f0f254c", + "015574e2aab2dd3da38c02a1c75dd029a7e9cd974f9965db3c549ab6eee55fd16aff706730eee4e320cc2d5978e8ad038e305e26ebc810c17f7431c445cb4fdc574307ce6568b9770b01e723de5a07549c38fc1e563891397cc0f8a361ca7fdc518b144b59f40eacb239ccd8da7e97bbfdacca49b8d32365a6b1478b8352c7019bdee63e9a670c8464a27a42470d5b705950d3636e4cabc5f0218d61e0f2afa48dbf89d2d141e01d70a71f547aa72cc5cd841aa3d3f30f1e4a807c44399df98c738b6b903ba5501e12d67b3d2aeaa723468ca4692ee613a6b27db57f71c7d077caea6ea74e99382c632376b2ec7874792408d6bc87562d02458b2a4fc00ae1cfb36e44fe5ac125191e794067665c3015479a38a36b0746f7573f63e21faff0b4331e3a82" + }, + { /* i=6744 cDividendBits=562 cDivisorBits=531 */ + "01afe566ea33d16688961978128b5aa74aaf9f0537a1b20d9c90bce64640f4b78d492edd64739e4973712bdc7d226483e00a317a9a1a1026dde6a3df1f3dde94f95f38c033dcb3", + "017ac695453a337cfec96f793987446a01cdade46325a0c07c4d7fb179eca8cab610ba58101a7784eac7d13b3bc631dcf4f87fb9682220a3bec863537aac8d59ae179c", + "0123e6ebc1", + "8bb97f9285a7a8200b9627c89d4ffd350c1852186613e5f49036804fd7420f415bbd798b79fac5bf42483de8de34934b903904933a8759358aff55281015ca1fdc17" + }, + { /* i=6745 cDividendBits=1373 cDivisorBits=1356 */ + "01b30a5b0586fea038c20111968c5a8bff26351ab779d47cf3b6695c045f0754925aec6cd9f1cfb59f74b94cefa531922b28eef051c87933a946fea06a9859d349f0a2d1b60c4084f5aff09318bbc1629eb3f15b1a94c77d4299a8d0e8722e80608fba0c1ebaa2caa2bdadf3eb3b82b5e1a216156ce33bb75017b8dc6d54bd3e69c640e9ac33a16a31ad0a49ce3958c39c64daf6ac4415586b83b0553e37fa1eed4182509dcaa0296b5cdf45", + "0593a7aa1c89204705db6bb4c536bcdfe3e89182bfe807b305ca3599935f2ee3d6dc48391f79b72983229c43dcb429fb78183c3b3461b52a0197b3aa5dca0c4758f1f20a6387f5dcad93b94c73ad6a5040fc404863ecdc93c951e41609103d2c7b3aa7b62c1356df1e6ca5c8c278f1fa324cb338ff2c3e2179af7d74861c932bca923ae4aa336429f8af250e1948253fda76f04153a7cca8b9191fa24f67958750a92f343e7718b4dffe", + "4e02", + "021de180fdb8546b1a89ab0c22924df590f3bdfba254588cc172ce44e04cc91c20b2e1e87af38b2d276b09de935f389a9c65cf5c4b3d7276c2b31ab00e817448392ea7a40c8bcd1392f65ae403a3564693cc8b91d46e821b22ae698329bc58aae47d4de0662bf9ba569774692409c25a52e0a8b1c270a0c14d43f18efc2debb61dd38a8ea47e9f93bba138692ad9dd54e8d4e4444dad69cc967f8ac1cbc0879f549c5459d9b41db3bb49" + }, + { /* i=6746 cDividendBits=1459 cDivisorBits=873 */ + "02088bb2c0f49ffca368bbc0662ba3328c3573cba28b8d3904fb4575e0f7ba325eadd93b4c9b4596b9c6ee3a1e8e8af7e051a1d396b51863812360067495bd36e86530d77aaabc7ee4c25b5d363743213e6711d17a4e0b7aa89f183409952acaf085bc8e6d934c56d528c7b633d14dac9125d25795813317524c6f60829ef3a20954e158c87dfeb92fec3d6bb531f9de99c4ed54631cd2a5f01dc1841560cc621970af500a44db09211cd9fa1e8b06f3b7d6d352be4f0a", + "01e5ea3935ae26a66d7168cfbb7579f196b42a3c553e1a415f84e7e8964eb4f01de4432d20b2292ff646e8c5f995783c36259fb0dfe2f241150f9afd22b20910782d4f5e8b2088933bf748af4296dce8a9775a6f2ef2e4b298ed44bfe87006a8d1a8f0be836b5273c67c30aa0037", + "01123eb27dcd82fbe127d215718d8fcc59fbbfe0e50652e14ce0ff95df10127c4abc7688925ae89b9d4069c9dc31114ebac972d9779eb0a8544c39229d82f19d1df4873541e62dc3898c", + "01d93a2519464b9e49c7e59012dfde238cef4f67689a2ae52ea7b69e2b51bd99aa911947f399afa4bc826e2851c530a06f6439ad9155c05b93ae7b0a12a55265719ff2b3a586148c66d46412c138099b7ee422dc15487aad9e442ff7879297cbc223c9c91077f2dab8ebe6c3c1f6" + }, + { /* i=6747 cDividendBits=3448 cDivisorBits=1100 */ + "d70920173385743029ec614ea8dcaaee1ebcfa61fa079a3a9044a05731a0f8a1754462bace5307645c4a0529e0e67b13b7a55ac2e0fad75c34a5ff4a4035e372726a8521704f446800785fb44faf1dfeeb6e47387739a013c2b95c9776758242f3526325e5f9055996f97473cd0b6efcaf0ad49deaa834088c6db7e4caa9d97c72ba870c6630542bd7e6bb93b063b8912d91d21b3dc8cba1b5591a00440129d90217ef93393b63f72bafc01f53117cabaabd342deac7af32a1a0ed5ca7b083c352d02acc94c49e8becfaabf1679616a3ce8355f49d23914d67ec009db30125a940b219a893d93a98a2d35d2d2940d088d2f23841d6836846525a83e9020618f64fbbfda82ab9915c5c7b4bae5c5f23ac935b5f62a24ba80419ce79f269049bc05da975dca996b2f456d8a565713bdc2ed62b78cbe698841a82b48019a7bed0c7c673ecebe13cad1654fdacc9ecad3e67c9663b940a9881abe9651aba3de7553e8dd67bee70bd27e044d4a5b7f7f54920e20bb762f766cce7fa9090381190438924126e660dedcfedb4a306b43f2683e4e57ea6b96edad8538802008c9ec5908319b6df9f8f7f6cbf6c0df9e736c3b4", + "0385a9479643b83c2ddae6f62a9cf60337b36987573b44998764313563cf918bd50170d8139b1868db5d0e7f0c3c89d68251ba955b6581814ec402c502baff1680840f36628b32ddd80bf41334b1b350144c2e2e8970972b9e5a8ee630bdbc8613559fd1e1a33c4585129c79dc5aa80e77f23cd751a2ca903d13772a671d263aeb1f69c7b2ededff1ef2", + "3d0d917dbe1962d559c6e9224f0c9a16a57766b7145f9a120ae85884f6b4e19c3ef44c6a9b11b3f0a8897f481819da57d490d4cf7590337a7ff74a04a4f4948110b7b838ac49a477cec275930bd225237f077dfe9dc163ab8259d7849b322faf199e8eeb8220626f8fbfdd76a153559023912dfdfd3481740870f5e486d117edce2f244c2596c2385e2ea1d38e493d1bd0a458fc67f720cf57efbc71ce2a72fd8c35dada2493b45e1b7bf51d5422730c4cc2a8988f178a6b1135cdb0abdfc73a7ee74a0c980863e28e3fd11005f4a00e76ec044c8f1235cd0b011eb864b2cb16fdb71aac0bb57c2138094df7f4651aa2e00e84a7bfb3d9ece4ceb4cb2e49404ba795a2fe7c167d4483ef5c20e1bf58bd12fceb506395e3e1d8a3bd69f099f45ec9e661c3e067", + "022b94ed7facc628537a8887796b447c816ad01644cbc5d62c3485fbb21d5bf7ee7aafe86dd2ad535e9199716691e4dbe55d5ece89d98092027c3946267c5f048d5f1b9ddba72c5283c1ba198c6db89c55e30365ece991b51c854a5e5d5d76054ca2dc6c89927faf9393fddc5f5b91313d6da3b7da0823fd2360ed9655af9b42ade1d9bb1c85a6279056" + }, + { /* i=6748 cDividendBits=3546 cDivisorBits=3236 */ + "033b2387dbce05d8dbc862e87f120aa003e337e3013a2c54cbd98789c95eca502df91b5c447ec8b36ac33c92def353a4a93af7e52d8f2e0e8a81ac008e5db64f31cc45c4a423e4561f5a05dc4238ff79b74f11bd40ce0f3ae867f07061886d1c507f0ba243d76de661bb05cf44294c27c82b3b4fb23fe8fde7e5c5fe79426ec05a2c825aeb64084d92bbe1ffe8ff9e744d3757cdee0c75137f0c5bf9bbb493d57d55223e9243508f3952f8589b4a457c12a908d8dd2011a2f75ad876cfdd1420a0e4f7f17a5739c5b2888c269f2292db73bc45d8d284b66680b7fa68723990dcabd7ffdfb2767faa5799825bb7fcbab1dab8dd41e8251de4ffcfe4bda015dca0ca6a4b421cb94abe7ead7c13deff38fa9818c98003a4b142c9a530f455aef3274828590203fe6a78eb55846e088897821e9d3fe3654ffcff58e58711cfed18a7aa656157e1a94fe6ff8a5544ce61ca0e4a9601ca6ded60c20334f0f5d24685fcb187d2e057b17308cade2adb4e399ce21a35409d3da3b35a4c55bf4c2b186c345a5549b07aff693a4a7347e8f5c72263939bbe747f9aa3fbc11984f63d77301d19ae8f08ca21628110574bd1f2fa2d7b5e82c67c6d15c1031eeeac98", + "0b1cb24ae467dc28de19cd3bdeaaecc0d88b646908a2426e47cb91023af73f19df469cec7f3a0a742c018d046658a40092b13937b345f551e75720f32c4a67bbdf5c769c95ef301538f1b3f8e1fd0e6a049d545238d0e88cbd8e8680cfbcf5e6ffae9eab3f49007165a232ae355c66be93f737639963179d4bb7b289bef1129232e517fb343b4a3fa503bd38ca966c1b6bd960714c8b2339f08bd0780efd72450f97961f57c5202140c43582f87c9991f207bd3364f3231f832791f1560e6016419528a88e26892e3c7aabc6698e79a6f37e343ba15c44f55e71e8cb7a7ca953fd116a81e08d99ffc37dd9078955ae8fe47f964bd7ab820395d54fcb27b8035032bccb5d07d83fdebfdff14f3daed712eeff63332c130efbf03b14483e060a3ec68427f7bfb3dd8fe27aa15d31cbe470bd5eeef1312e505e82f19b346f02274842745b9d519443af29f9b4e6f5a5573d74f46f795f653dbf59fc3ab04ee98448c6cf42b74c10c384784f3a996a3d3031b6eff90ddab54e58aa481c22d7b77c48366221ac14d8cd0e9795c917b5be6c006122127d1c", + "4a6f96e86f5d9b47dcdf6d72de15e4fcc6b8b58a3d53335577f3b62b099b8b4024a2287861ac06", + "092a7c0dd6b6095f27edd02eec2ed40e4381e6c5bf83c677ec2177feca3bc5620794490bcd5f9de64b45b6bfa82fc22c6e3ff5fb4109a31f4703d29f1e0d13c70d62cd374aa290bd31b6312599a5f8272bd09dddf023ad7f2d9af5524ad99d805955b72bc8045b3e3e2c62063e25aa4645aa2a84681c1e773db969db797a4a3245b9ad72c1ebfa99a1f39e9dda69553cb0d0d10a0a6e8d4853c329eb26c20af951e0c3d0641067ce163124e9c97aabc33063aba8fcba3aea6e435ccb8af86b569701f7e52b03eabbdf4f892dbc72d1ae934ce006cde09b0b8cbbaab65c5a0f2e83b5d5df39995a1b77c82d8ebc58ef7372f0ea4643d066136aa116017cf46d92709dfb0c3ede3b81880a339f791762c95b95fcf7e720837eb7c5cedd8234d5efae0fc1f996a8b6f8bc0097814ae49e6fb96982526adaecbe02c6f076d88431903ab56cc06cb60ba3517a317d028a49d5b5677e2fcad17e651aac18d66cd62e95dc831f583ea0629dae5a529a1abee689e7ba44c4c75e4e40d25b1abb6c6429a08f1fee3f81be34a2dc57ad825e1b86a3d15ed4edf0" + }, + { /* i=6749 cDividendBits=807 cDivisorBits=618 */ + "17bfcf7b0894332b84e0c4a1841e4c780e12471642b00bf486aa5ee9fdf493f45f39f745a01578e091f54f784f6e27b0568f0d941bca94d4eaeca767e3ff581ea6dcf15dd2db03b9db87a13254b4e2be24e9a3b1b549f68b046abe2f5b03919bc96d71366d", + "0189d8511ad8200b1770d1d714d5bc51187f92061a77614660307d4ceb2759cbed0c21b861e065610956c21b16b6b29b18fd9ab9fe5191fca8ce077eca10de5481cec4ca9f463375a196e5700726", + "0f6fe3755045a47e4eecdde7b9b1e334023de40dcce50d01", + "18450e325aace11e4a4c9134c09b4e16a3a54767fead5e18424403cf107e98781aac852e6c78f5a3eab7417b9c362e75155d88046da4ec24503b2fd5a4d962c558890df0009efa98b52aa64147" + }, + { /* i=6750 cDividendBits=2959 cDivisorBits=1219 */ + "745f1353d36474261c94aea72f0f85fe9d9d428e532740e77040f45395128a31611ad639a4aea108b298fc021dfab180971baff1993e0583f085fb698b4256f04f584e09f0b4034e39cedc103d612a93c2e1bdf2ed3dc18088a2dc53345436a2c0374e25146131f4e360bd719812424303c832f3d7e9517ee922c59d42b350c2ec56f76adb2f53b41ca2576cab24706a1f8110243b45a7f1b5125fcbd6a80d8d960bc65f1950556fa532242868f91e44dc2fb1dd52b49cdd6a76dfccca358024d648577190d1d5e0985dbb38bc83a563f68889ed1336c274d4d222105843e92f36be6bd2de8f69b9e4e71d4f4084ece2a8d6f3cdd4c99cba644a090b29824e0c9fe65477f3eea01301a5d11c30eb37ba2a0ccce33aee0ada3276f5c585bf88c3581db128dbbb74976789ca0dc198adcd33bbbb2471ba95756769b0b0d1739b44a76d0bae546d6e11759fbd22d10bc789409a9b322e5b42125e046f9a4222d3d90cbdddb373f1e4bbfef96553b57e121ca38d", + "0671ec4685b85774e68ed8f7b2b93051aaccd02910cade30e08cb14fdfd428c306adc92c197d9dbd470aa2eed957f4611bd3c375e13daf9341b05370980e56001664b6175512d543de0918482c53e783731acaff7449c513e2cb58bc8764d6f74ed7e34bc295446f0a2293ef2d60524bc3407b9bd2f22fbc1e17845872a793f58c48a0c49e2da539fdb1158dbc659808fef43baf9bce8d312f", + "120e58aa4355bd265a211b83cf835925416c502064b241cb55e3d222d5b8ef50ad347da29b41fae1a4a9f9bb6b5a1ffd96c0f80ab6008c381120d5e51ad8e2fe471cb140d2edcf9703d906fb70a522f05c1157c097cf7372f2cfa928cb392ec7de673c51f6d670754d3768fcee9b944cf1844ba81e297ee8051d1e48cf8d18a58c47519dab9393df981fe3d5efc81400bfc2bfbd26c26b61ae9cc1def2890770becefe2643f3a21eac07fd48d7dc5a7c36d49e95cf4846dcb9331a7a70b7fa1c69d8aa76157f332720873f7a296d71fac5b433c228b3f4ba3176", + "046824b35f0d44dfe78e7fce51e9657c9bd359d3c7bcd7de81cc3172e53c39b975c195cf1ea8d2c4f60f0b0327d2bf4768e1e7a480ec584cd855a960bb63a3741081247ba5883aedf53676edfe97bf13e7bab428543239bccb833e59b9c57ad1ae31801bda1d5fbd44f9c87f7acd316b6342fee9033eefd966eaae98bae0047aa40f6d65845643a4f0ae865cdf8c7e2be82e1a8fd04e77f8e3" + }, + { /* i=6751 cDividendBits=788 cDivisorBits=660 */ + "0904a8ca6c935bde82a6a98bdedab581299855044d172c64f3fa2f32300ad8bb84bd9c657ff82b66e4619be9b78b74d196e6d39607fd711ac0941ccc365c914b16b78b51bb64b092113c46e14a9af417d2d8e442202d980cd2a1773bf1dd269f2671d3", + "05b845da180d0008a6e9438b760b52d03059f40e3b17c789420eef39d95104a848293df3b097da938df3682b9bc0930a293eb325310bcbb4dadd7ca5df64e97aa6fbf38919d0ddd5f87b2580747e0237c5d2b5", + "01939ff0b1104b2f05a4c22c9f4072a39b", + "01c57f86978585e807f0407425218d760d219f4ecf3df82e4c6e01d12a0f9e4eed8db66518d9fdec7070d817aefc34786bc9db202bfb006e3c78bb30c535c5712013f99dbe37ace727e1325900e31bd09c9f3c" + }, + { /* i=6752 cDividendBits=463 cDivisorBits=111 */ + "0675e755a452e36fdf64b8652bd5e6874d89784b8f88d70773646379cdd64e2b28387ce9c944e79849d01cb8d8acf1afddeca20c84934111f995", + "39f92657a8920b15349f950a5b2e", + "1c875ba49392bdfa33005e0dc5aa330ab389e0ac702c9fa1d780abc691b8ecd8df06184aa1a4594290bb69b3", + "1c1e54fe5df09d65132650d45a6b" + }, + { /* i=6753 cDividendBits=71 cDivisorBits=61 */ + "59cbb9c389634c4ea0", + "05d532d31477d1bc", + "0f65", + "a2580f4abc8b74" + }, + { /* i=6754 cDividendBits=3948 cDivisorBits=1111 */ + "0cf12e56516a863d9a77799e54f531cbcb39eaa9e79c4dac549ca5f0a708365ad678c4b53c4cfc9b0ad6164c7e3138d9efb1b7132559bbb871e4ab89ab8a82a570af97cd2955aef43e78cb3f8383420e3878fc3110c029816514758857d801fde43d60ebf1cb8d94c53e2b8833e46a5451d84d60c18cb3c200600e3d813f84a4d8a23063eb34383c0f458e7da3f9c0236aa3daf6814b36e0660b542deff5d0b45e4bde773c086841b681a809f3f502810815356d5de05b544dac823b98c912c066b777ca96f486b41a12f935584e4984317bf0c9160b3a3b351953bf3e91bc8598c5ac2a6c63d882baec7819d982e0f556ed4cdc8962360778bc7c5da18149429f20eff7ce8d9a5783cb23f22a7dcf65e3847f449fe1f9d79066937454cd12a147aa69cd3d14a6ee27c2dad755c9f8b3b041654070402f7e920ddc6682a32b3a9d5d00140bd40e50510522f3135671ba57689843ce9fe6cc6d00d0b1efdb2769848427bd1052a0b2aa11a2b566fdb7460e04c777c9f247330f3c503d0e66118ef153c71e5e4eef7b8ca39c12532f7ca6941138a1417ac30ac4db7ae979ee8d6c8c8d7081bd93501d5f490adcccd1143a1b14fc8219603b5a47b0d1715094eb8c81b5e85ae3a56f84c0915a267303cecb81097b85957ad62deb55a282691b37625c115380d4434ef225e06bee321b", + "61fdce0cf624c45ead102ee91f83be3f678c5a9f202cefac1a1db05a7a2935d25a52e6bec4a79b606832c696e075bf1d15e360fd286543b00346c577ead9eb652f981cbe15382dadb1eb4168ddebecb49efaef9a0abcf1f34f920fbdb6ca13df840025a53cb277a4cfc7152b4aa33196b6829c03462d1e97d2ef4c2123de98e6d6cf2d09304f7d6e44e419", + "21cf98f6757d8e5de4380f1776bdbfc67def4358b1ea2db6b71eadad19ef20112dccc6f37e7f302ec630ce989e6eae9d371e7385a0439203d29b247fd995767bcbba62c85fc167176888454ec46a0ddf768271e5eb453fc134dd987c513fdfca48b73437beac8166bf50c8a160f4bdcb18299c120e864762c687f8d4d3878c91d787a05720e5aa0c502af85120a984aee23df521c82ec8e74ec2d385e143f284f73e08432b3c247f8c43d9cff774ec1d1506c3b3559856f1be197e14b326bc67248e40526ea818da2d08e9e0881ffd417638f9eae0627467f154736d85aba2144ab93cb6a199155a6227dec7310a99f2bf79ee5e84355ac630b37313fe409310d508dac29de1b10b057a8a64516640bc8385c97e6abe54ae90c2ce5348cf76cf9c0305d22be342b66af29ed1c5a7ca1fa49eee5f2e76a386be7e3eb7a2544b0b9022828405fe9e2c87e9f94be1219a198c5792cc2b4528a2c3e5269587d744317958ef", + "130dfe147b36c0f55769fc629bcc87af5b15a0a7a30b8fbed31a22fccc36c91cae84bd994947c4a4f97350bb82869ea025794fc7e8eda2f6e01ca0470c48f83ee43884b4b8baa119d61d7ab4d0c804fbc25a0d5bf2a104ee27f0765da84aa2a08013a555de6f619eaabbe1f5588ad0072d1dfc202ab9aa6dd02ad0bebaf960ef786a488f13ee023263a6c4" + }, + { /* i=6755 cDividendBits=2114 cDivisorBits=1059 */ + "016d780cfb6794265b8de0de9cb100a5e848c094ee0804651f4528a2afb08813845b3c0237182327378a383084bedf8d37b6372b52485c0d27657b3687071625b01a1dc8599d96425215c3a697bfc9c4a02d55ddc3dfbd0d3596097992e052644684c791446d13f8fc4f14aec9fb9bba189bf0712f02b1de22374444f2fdfb1f817023a5c07084e9f29b43138d1259ecea7b560a7a7118e41eeeee519c853cad9efc9c500ea00539c285864357b1dfa963ffc7746ae86c3b7d99d2d80e58dcfa186d310faf21a9c685aa32f7282f439ef371580b60e713032b797b8562fb755b8711a02a9ca1f4f110f5503a8c541d13134fe5db2aca5857a8c334be1ea3262e3ab20ea564b4fb4fd0", + "dcd585ce1a61d6847a56e05df80b9513b6b6a4ac42f521cc4118874da08e2e03607e1479a44d754f11c17d1872f17eb549e4682acadb08eff56003e6bb3cd4725e8db85a36d41001af21af14ff7bdc7750e0da810dd8926386994a268327fc12b2b6d3ad956aa3d298a64c1adee7a66f6768c039ea9b7b12e49c01ff373f76bb51726d79", + "01a7aaaf289cd55d50ce444e14422dde97e4d3e4a9a6746832f4f43b528a1966a8fdfefab650c4932a4d15d854876d8a4558ae2b00c0a9386b79ee85c01324f303782167328551f9975360cad92e9273d907fdf7bd237800529153d319108c43b9822e9ac770641d1c60d0e309ac4f4774ed565cb1a24936d3fd3d68df0b942e5438cfd9ea", + "64300ab0493c4da79d8f330edd7ac1901e90f83558aa7bab2cf9934e4e96933ce53e2b03a43633a1e7393b3c37b28fad5d221a42ecdbebbd435d73927f0e9637d921deacbdb8a23b984c10bb44efa554e6751bb5829ecdba13ab2f441e881b3e7da9958e22a7ab4ce717b5c5ebdb2a7ab916b14b54744c93aa785377a4f3c8f546c0ae36" + }, + { /* i=6756 cDividendBits=1359 cDivisorBits=428 */ + "7d7b171ca253dcc148d1b927114b83808884ea558d8d029565fd32c32e2835b4ab7b2c532b6396e9afc18dd87aea55f7b3c96639adec80ff6de41a952b8b432bc718b63f50f39f9ad0daf4f0359bf67ce1962c04bc719bc6415e92840e43d5265d30b009427978336ea0b4924f70783fd3d7651c8aca8c60a48e96457a9637e1053aeb8bec11ea9fedca274e30335d5829d56b5acb80cb9d45ab384cd9932f9b82746e0d91ba72f09a29", + "07b40de39cd2941c747b9553006cdd71fba301cc83cd2295a5648c6dbcf10705c1c773432e7aeaee2b8f2de596e746e8621aed375d85", + "104a05d32d4c2707aafc7e98ca508906ed69fb3f9bfe9ea5d6c7ad0282aa5657fc5ecc6d001add2364d91c4683620eb2d5582051c7397d07b57a508074675a01349e2886074c548535b1d61855765a95a1bfb2da01b7d26af73d54b26bb00f58e415d6fd41ebad7327cfc62fff0d727ed991bf8301", + "07256087a7171e543d28fc6baa870dafb9186c6aff443ca382e8d7882a4e792c01b1ccada397bc551b4712489cdb104e543815a32da4" + }, + { /* i=6757 cDividendBits=1863 cDivisorBits=1170 */ + "0b9b27da5bb2f477545727fdb705a4555e21aed563c62855e573c60044a7ce3d75109d59655eca31b1490980711d1c77b0f5b6bb37c75d6e3066f205016eaae6007cb0467442986fa89e0eb784f707e4a1747c1885f7eebc1e1911430d17cd6e7f42510fbfd58702dfbda6309a1978ab90cc7dd281a3e576cdc83232bd2fb721206ae7b10c4c4d896b2f6b3791d54dd95cb7a207e1506f094f8d5d228d5a0cf34b573baf22028268d32c4d0d7197d106401092e66dd833872d62644a174a94779b9588f26b6102526e280aee74185aac737fd7f28d6b5289ebfd7f526ad3cd7a5d7228ca6b76b1acec", + "024f34dbe14d504fe2136089109efb08417f4d9b3fa0ef1d37a12386a7c792ff078f2857f33d84c1b1eced8226c4bcd8f47e211750d96fc3902eafe50ade105608863188a1393c21c2f579e0423cc1a0667ded4042a29b56294d2ba8c4588febab08318599ef044462dfb03ac347150562ff8279957a107be25cf85bcc0c7e444cdb0c7b6b8871a5a154845dcedac28f9154e7", + "05068c6f3d60507859f5c30feedc38271d8d9ca9fbc797f3dc1aa5302b860ffe0fa687dca98f070edef3cd674d9455c8d9dfc56f445abb6258535b1a30d7aa561b9214c6f3524271091a3ee82540a523807af37d71ccfb", + "017db72e0473a7b236b1a66b263e7178c923577954b60dc6040973a79abf3bd8da5e0b036d4deb96081efac4a476f09c543bfd9d469cdb74b03e3de4bb4e89a0c21787e5762106ccec4631736a709b501f6d8d7a5fe7e5914678a12e307fed8ffc2404148ea857d7c4a537170fdc45d2624f04738cc19e9624ed60c35b538ee35be27584b07ca6d93f3972802040609e945a6f" + }, + { /* i=6758 cDividendBits=3752 cDivisorBits=724 */ + "6b13427c73426d4fdbf3e894e193dfeae3971980046e9c0826f312b8aab1c7002676e61d7327623575cce039563b31d893aa5f1bbe72c3d0e53e76c093328af2745be2317c4df2a0826ebc5cdd04d4ea27387deacabd2eb644a50a0e340d25f8c8031a609770771ddc37bdf2f456db3bd34c51f40e5b33e637d594e079b83311631c148860da39bd612ab97947b6e7a4a88642827ba56dc579b6883297226979caa5c74fd4bc52a3433d2da6678371665d078a0c5ccf0ed113b8f0f4bb8ebdc1afa6b9b64241b1d3b470fb09f4adaee4d91378081932975db3527a54ada77a24b557c405c9d5a5fb666c83ec98a2993d020328452d996a6920fa0e2a1b2c90f8434198e8b7535a969ed3faf9d3448ec14e7d5e34834a05c62b95045d586166244408d41cd58215cb29985439e057d020f6e2f110c311a1820e92da8147b77e2a87d902b7bc087d049dc4abec53c2efcd81a2c41eb0762f65e50a4ccf01f9111bac4f3b28ff2f59ea55ca337996c73466b5fac8ec849c82341b3b6fcb92da09d5f8bed5b1c236d0d542c2560769763eef0281c84cda154bc375d14c230bdaf340c0cfb83619e1a30026d7f3fe9b802d851ec8d15f69e97e68efaa87499c6ca02628068b88bed0277928d8348310c5bae4f752c8a8fc", + "039a20f55f2aecf32d0bff6ff867bcf4dc871bf69519d66439e365ec769d933c2b1686030337d9a85571a550c95f202c35417c2943c727bab9bde1c929549a97891680203d2dc8cbb9419fd1967bd76850dad0181431993636ccda", + "1db9df728e79a10a46521087f13cd793634342904f15cc9b754d84a415d52b04e58d9d7cfb3131fc16f35ba84727f069b97a4159c979ca32a003cade7a7b74c3c75da8c9092119346d6fe81c718d912eb0097e631e6a360603ae01113b8b3a74f748ac0444ce492af1ebc2a5512a75b0c973f79facb2842ed732ba4790ec580d651130110f44c1b5fd61ec28d5c972962b5f3057814bbd9a2ed764ec0be1e720d175a8722c45c030ad963b7dc34e820877d0d96044b2a52f7e58d94e61dc7b8a0a8570813b66c4d0df9f57d7d4d4a69f683d9284314ac2a3c786d1828e52beb8099cbb4a2721148010c325af0a01c69cd4f32d8f7de8d175b5202f07674b4d4bf312e7da4f775f1b9249d3ec58b51877cf10356759da222876e1c50079fe9a0a1897e572284655ebc837b87b236fb36c62cbbb4adf47f3bf7e7594ae331a19c160cae6849f851e1b7109ccfbfa3ca7d53a00b05f000e2fd6cad588357425ce117c55228a3de756f86cd897a2580a93bfd57133cbdf6bb282142c3e", + "020e47a1518bbcbd7cd7b6019da34bb0028c9ba32218af0d1f0df9550470ee76dbb9e552cd9a7ec226d88f44b92a8975bdbca6817cc127eb54506e6e3daecfb4d3f3641b9582890349290240557de2f4955ff7e130eea811459430" + }, + { /* i=6759 cDividendBits=669 cDivisorBits=616 */ + "170f608b9e594492da0e9bf743b4e43360847737cc592c33d029fa3f0c187db4727f1c629ae3d34df9bfb97af7c787e4b0ddaab8bbf579ac7ae80e72a58d8f962f0fa8d6f4a28a64c86392acca9aac0dfc1a2cf1", + "f7574da4013598996841bfb26ad8bf2f4c91141bc3bbd44ee4492e6f63c7e709e6584535059f773cb6a07604292bac75896e23679f86d98c3a624b8ad89f62e05dfa18fb6c5c27096a40989a96", + "17de0b3de5a55a", + "93b43ef537e7b279734acaf7c1a70fd1ce1a4e8536c967d0cd8a47a8c519bdf2a5dc0900fe9dc00391b0c6623997adb5ab2fa3dae576ed90a35dff7be118c35dd35f4741ba7e490346e4a32635" + }, + { /* i=6760 cDividendBits=2278 cDivisorBits=1226 */ + "2308782c78436efbf3719946b55c4daaa976e24dd67f8890e22851439c95233933678d18c647bdd37abcc0681f41195782118f650c27a87dc2f0b67b35874011fbd092986a02e4824ea4bdb9d1d108e18aa2041c50ab90b60db85a6293a1f1bd265ab6ce70d906f2431be4d3c03557f8bc6d5beabf45fc5a565c24667774b21867515b58793c93da3de1c7c74ad8a27e05ab909a9034d3937e193c6286697c94a6b8015654388d1ca753cbde3be6bf2f7662454d58504b54954dcd15a2fcd45f05157cf5097909a217360c07b08d32063df9cf09acb14d52bd54860b0bcf6c19cdee3b6e287105f0180e70d846cd02a8118ebc908afdcf4c6182dc981702adb5a266ae302f969ecd316a88dabfdc43db349e60a5aa1ca6b4f8d1d3150a", + "d0092318157ed94be0a6faf327a287174de6623764fd73a46497ccec3d0bcf1209b570c10ec8bbb8dee8ae151d25ea08e1913d69d5af975789cb9e474cb9d0219561ae3dc272aab9edb30d4d65aa2d709139b81f24081dbccf8f6aab1f61f05d75bdbfb218eba067d617e82788f592daaad4531160c7ecccd202b5fa0bf8c3579b3e61e18feb4fc615931963c3f4c0adca7a52e8b7e4c705de", + "2b1c38f3248254428cb5685c02c8476c3473466f1b4bbcf374ba54e77e25832791e37331b7e0db74cd8388ad21de5c0c3887c5b3f7bcd70b59b123758a66396fce827a2de54d452cc036732bcba7c67e738c5a8a234187400ebbab258b03cd0ffe618f3a78e74a798c519fe91b54d2eb17267065edbf77366e702ef5820181ab16d70cfd", + "b416da0d0aa32fbaacc4e8311a58ca6fe4cd3cd2ee77a24ae820c29d3fb2d7378126987ed7e04441650ca41d906c4e03a8cf4fbfb39031bc4a1fe6c3df33352d86f5d8b3107dacfeb8e8fbd55477f228aa37997c9f70ec99c45207f780a98eb40eaba8d3f84b4832760e7ba47093a578b5bb54c2f8d65d5811fb6729175ff88ec1babe09bfb2e25fbc1e717667e60df6dc38f011916369e0a4" + }, + { /* i=6761 cDividendBits=1724 cDivisorBits=1055 */ + "0684748c24294abbb204d879f791552d46784c06c9801b0f290b8f8a6d806258395909117bdcfee01cb32af1d5dbf358a0b7792ff5d4c7e418dccc9913f1feeb47a34091206cd04df4c83f19afab64acd04f92d208bc18f569a9fae62fd66cef1a550a14e9e5b3e7250df6afbd8de84cd5756f9d92de97ae7520bfd3ab63b7cd1436633a0eb491147632f0f8bed9d96eec34431535e2b5b282f2390e3f57e7aca79a378cbf5ce49225a52f80dbeb6ca87135f7a73fb9b21495d051e609f4a2cc43f7c36f3fd8d595953782ad7d407796ca55e2d93671618c", + "58666ddaae30f5d696574ce0bdec87cb20f20e4397d3ede2b2e51e2fb5e733bb9370787eb4a5e82db9a79b7a396bf49a749c2a9d072f37958ec1cecec87707c57c7d5ee96493e8a037e4bad06e3a898ecbbfba226c050cbaaaa822d41daa157ff0998e7c8a586dd632b868b4f0b99b4eff056793eb1b2f500bd9d49db6c7c2a8563306c2", + "12dfb82cbeb96f603a13bfc4fa7b29cd84b5432ee592488368fa395e1b640d6862137165b6b5649f4ba6ea13c13a0b7b0b2f999c3bf1e73804e5d6e9c50799d089b2bf33334e9fd9a8775bc4b2b299a8d58754d7", + "2be8ab0de85403a6dd5075161d41dc9c82c70ec2224dd121659c53c9cb806e6d344bb3846fe566069e42c37d1202601e33c31dd55dd313410810bb46d405dc4b272c54cbaf57b075063c9b451508f750a297b8e8835c7f0314fc7ffb44c4a4514e20b0f25441817a5b3f2bf37bb7d14a10482481d38098ae653ba8285ec9e05819110c9e" + }, + { /* i=6762 cDividendBits=3540 cDivisorBits=2892 */ + "0ebe692304b5e47eb0e84f96011faa23f84cd8ae8f7b1a68af5c5c5d167ba678a4eca2a918cffd6e37d1cbfdaa91cf6b33dc705c8845826fb880b610a28d3ac423be24d3c9344940aa97755d5837cda5f832485b95b794019ee738a59651217250747a022cdae8965c35fb8a0c0103509f26429225d4d76f8831cf784f5f14f7ba0661b7ea7eae1e5d7b9c1558af582a999a2059a19166aba50d412043a3b894edf9cd5767970e86da7c66b8cd35048a88a9355b584b865594014faa57614081dbfa6c57de69f6d3f57d9464dccee8b2864c9207c89e6a28307596a568982521e88eaaea71b9ad4cc827f2874d1d5d0e522ecf444ebef76cbdba8a8cbcfaed34d6bf856e4118120238cc3a8efda1101706b87369cf7abe213f8968327b15dc4b9834c51d6bc9cd704da93c9465176bc91883ff352297b21ae7ebac3715911f91c71631918419804ab663554c65a985a1592c6da044add7b27324697d4cf42164efa7288b07d456ccd6d49267ecbb49473bc7104ffa2367386cf5cf7f2c1c9ab452380e0ac5fa0cd019583497ba866bc319b1b6d05da8a500bc8a1b75d8864b641c242a10273deccd01af2f7af3cc8441988df2650fe0f067bca518", + "05bab6176a68b7e7961762fa2d7e0397ed6fbb084ef78b29180945e62ce40aeb810034fb616adf3a5cb9d88775a70d3d43895f172d1d3ac4390b08aab90f0b0ab127f7bcc600eedd8a7308333e58d172358f0e300134402538505aa7a3915d226a5cefe05133135ff7fa2274a29f2f174e4d142b9cf50ab0d6f231572d1ae45bf3e24794dc6209e5d05be482b5613a318ed175917ac20d52d896fbca19c043be036773002b52e71db0893069733d9f5dd5312c753b627feac3fd161a077aab3f579e549a0c6a34d1bfe67486d816e06a492f378f9397ce5138f20c4366ed3b0bc8bcc7b5079f3daa7362359a94421a14d28c23590281f42e4d9374bca7b7f7fc961231b2f5d39a61a9de8e41e400283cbf6a8336a9c3b2ebf587d6f07c82fc694e3b4d9e079b1f6e00449a71837bd7dc15f96a23585778733589fc763a45251f2d7fbfc16c97aeaf8d97c8e88bd6c671916a1548318b05a7512a09c4f2a84213b5e6902e1408e4005aa6", + "0292c9435937fbf193eceaa4f88c0241412bbf8a016b014f8612cdd1a94eb26f5d26c45c8b1a1ef844133aa4f04654968a6d76b0e9563437b286a6d11c2d5051735ecbb39284c96b0c7a612e3556c2958553", + "034ee5fe4047ce4934d0daf0200429ca80a1870a951e99bbd8e5f8b1e3842d440042b8c9b2097f54148eeab4761afe529c594f52fed53c3c44e7a32b1ecd83cdf2f716979940e4aa7aac5aee92b7a968f6e6c101ea113851e32d6d59d34c94787beade1f4802fee36bf7956897bae6ad21fe5a8fdb9dd73057706d0c6d6f43e477aaca86a6af8356ec329968d67540738d4a309cbcb97a0f5475ac81d3a632891d53c84bc6d040d588ce88524bed2c85d8a76c842f4fafb7592a366467a13cc5de85483dc9a6b8437860d392d2d6a1387428b25abdad5402721e460b3a5ecedcdf7905ed38b8a11bff2807bd370c3831eadbe51146267e1e7cec969897d3a06f4c07d12fc529dcf2576ef52b02b385a3e248b0856b686b9f65999f13ffff9ed40364947c8598b950f0fb74ec6c715f8888a60e53f4dfb9534e91934d8b946de690ca258710a9c23461a378bc90076a3c8bee252b90adf1fc00f7eb1a274d27d44d93750af8efbde90346" + }, + { /* i=6763 cDividendBits=3828 cDivisorBits=3051 */ + "031b6d66dada6bad6217264baaec2e399e90a759e8ae09cf847df9a08541b76c81901afb7304194fcc4ab056084c2421369c5a2a99f73d7b1f698e02480d5501543bc79b2a54e0a6a869a5b4cbad93fcb2c8c29f9b79356dcda2a9e20922d30c8da41c79dc4e4dc996feb05ba184e621fa7017ac637ca5d5a6009c09dd618de6fb063d1df73c8091f34a78588e6ae985b8ffe18524e973d00c20cadcd7200767eadf2426ac69634f105336d4812a024928f77d25d2741a05138c10ae73743580f08d0ffa7134485d5cf745739a774acdf544d475505ed1ababd1705dc3a2ec6a0aced7ad19b59967b5f9f028f9b07296682993c82187458394921c275eeed3daeac087b4406e9554083409044a308c0489286ef64961e01ee5dfadcc54e9beffca41fcdfb3c9f83873b3436c6ff852248ecbaeb483595a4b105967ec93b93242f84777aed6ec449bcd7cbc0b1e470f2cfffef163d079945532528a6512d1d592ce036161657648327efe2fa1ed4bf6e458ded21e32131e8d202e40f4f8c76d75b6787cc244754a6d7221a8d932e39d606063bc512f6c8498d8591c7fd63305e46ab6a37e6db06445fa55779a855c4738a626c9213ba4bb57abf14df1fa4a2f168ee7a54e058d87fe286bf7fe22db077495565a0626bcb2d09754e1106f6c70", + "024ce6350c5f00b2a058294f3a7f385754009dc6636367c304dd72967e384ea180d3c2fcb89784898207309198c7d02e2456a4c4643bc549ea620bb53e2b86bb57c67edfa07f3b8800fafba185709be8610d2a1bb3ef8b509a1091f1234731eeb58e0b51b543fb12424bbaffd52f726d113f4cea25d9517df0b5cee8ef19cb26d2041ccad554f8f388130d5fa8b789618c16e2ee7b329cc11ff0d530a3b41b901886edcc3ff4a5d240f1f04b180bd1bf753c598f9eae2327437165ff1baa53028cd7ddf8c9db7c047461c1e167c41ba21de3899a0d447646b19ed7e40963f6b5eb89994669b609ac28266d40af2a03d2774ad3b051ec8529ab83b3eb6d4f516234273a573c5ae175767ee568a40e80acea73d8c0ae3f8f09cdaaa5cf32b557e36eb0a233cdc672236bc58156354a3c1bfae8f1ece15481b9253d92137663d9d41fc32cc896e39e5a35ab001b4a1e921926dc01e2044f712d42a9de0ebefc3081a41b51b93b2cc8c2091623cae569ec0957f5f879abc67caab4a1d71417c5", + "0159c79a11275f925650a80e9fc1802100c215fdd4de9fda6bfee7d8b8508cecb8cbcf8f48638bb143eb3ed5bc0ec9d84237524b16be8a99fd8a4d0e9daef556450496b5ddeea9b6bd496a06a6ee1c63de92832be09fc1d0445a1d29d5d2e5e8d7b2", + "258380848d9e1e37cc0695731ce6e8555cb5f1262201edf9099f161332be6245777a38bc23ce797fe6340624a99533d52f0d041158ea9bdba722b9b35a9d31ae90eaacc212231e6372e785068966140a30045a39f0b8d24b34ef3d93cd2c90955e77b600e9911fb46e8124953df52bfa1d71db68dbeba6f66dc02db847aab89d7064de4157c41f3c17d2298f25522225c83b659e610fb4e88077bf243026afaa018471fb6a0b50100fa15010863a018b74a01e495001d91d9c436acd5bc36ed3fb4f01624103c3e16f94a4483db37a1b8b2c70b62df868d2711168fe00af511ea750e85571b35545395ebcd96245b2c7d8aea332d3f65a5d24d317f006642c30150d5caab8340961bb34a8d73394e5a98727e1cff0c57551aa639de3e19004084e1a3db9a84c65373aa0b2cb37f5822b737ca96c537c437503cacd59656b0d19b961ee1c9b15e0a2e1130e16001a169177fd6f71b84e350d4e57112037cc753d83acc1cd871adb490c09a00729c662b0be80d7aed3065284a4e0f87276" + }, + { /* i=6764 cDividendBits=1755 cDivisorBits=1264 */ + "db9850d43a88beb531364370b525d17a17fc940d09b23eaec5f4be5280e5be505275d6865695c532ac633546c6e08d822158d0ff8791b127ebfa77e588880815591bf15b5379873a442373726f322b3c7c3fd9c1c2578c322f3a8111c592c70e7f36a90f3c8dd59b1d92c468370c41291461cf6c1afbe947ca70521c10407d8b3921cacb117ca9df088b60a7c4d482aa7bbe2ecf85c8ccc8ecdd21a54d789b9bc65a22927567f38ead2f3c5c9ee836ff6121c751bac02479a0b1f2916be313d8d6226505fee72b4b786ab99280d2ba1daec2c8029d51e73892a104", + "2c4212ad3cfdf26059172442e7b6b128241736351e23af71c9915c36d07d0c779cc58a57388313d467e07c055c9918332135f0c8b53c036bd6208dddb9f6a0e5975fa85c8d5dc44d5b6e92105ffe9522255cd7cf0bf6cc108953b55ff0601f7a7158ec950d75d593dde12bb78ffa189d81f7affd9e196d2e59fe5bbe8f4ed71bd76ad7c30f5cce8e528a392407f44e765b52e2ee22cd96c55d83054b7a30", + "04f63159d1bb31440633ffe7948eecca04d47b338f4bbdd5548a6bd6743870a8d50333b18d13e82023b3bcf79e6f54c6608aea239b2805fbefb20c25a6ad", + "075f0158854045551fee27efc4b691c50705493044adf832f1200763a254782e7a0c6d7ec84821e8d3b4bdee2ce2e52dc4b7525162f37ecc88f03d2513798b17824b76153763bdf6da90a7b6f0d071b8836355c160ebf03a42280c280ea44dce45ca4b003839dcbe30a5fa093d096262d7743f9d5cc24bfcc1a40dd47e2da62a68ae7140964833915d908e88c3f074410fe93bf8ba3d99cd17eaca65ee94" + }, + { /* i=6765 cDividendBits=1425 cDivisorBits=939 */ + "019cd9294c1f616abd6f96967cb7e4c4542d917d8e2fd77b120776f31abbda95d909b32341ac797ec9ec46b52ed03473a842adc755e42cc3fb0a2354efd37df6c472bd68a0a29f8f77d52f5e22de90624509499bcc73ce67c1f5c0ec0dd811a713f5cd43470db967729407197392e66c4316a2a34124df4393bff43cdfc85cde3057db29cfe2044add50494e1fb8dec3b88b709a7f0f181c857d245424c043363263fd98c4fb50e7c40779d028f35215f2ef1c", + "01aeac998e1edb4b34a5b49e678d49ca8fb3d199b362853d7da2a54777f5b9f12fe80c6882e71cbfa54a42b50cdff00adff8dae3212245464ec22ad68affaa27b12939f4ebb4ad0d5be14f316a20e14064edfa5097b8006bd869a9fc879648a0f196f911ec330e215efbc13262379093230ef90e9424", + "f5676a56b3936c808cb9f1b4e38812a349f11704236d866c91dbf1f6664146faf9f6ac99211e246b22822b90321cd2bd9ad1467a667e19b56b797c1adf", + "0139fdbcc6276d6b5e06758876a51ef625372d674eaaf0cdb0785dcae5727105a8e821fb51cb70737b7d0387a6d69284eff1352e1c9e0537a8f0ec07fdffccd11184178c07814aa021e198fe2a25a030161bd958e07c55e5d05ce142c1c58c6b6c47fd28f9f901479a4154125685481bfddae1c43bc0" + }, + { /* i=6766 cDividendBits=169 cDivisorBits=64 */ + "01d8abb822e9e2eae1b04314568929f636356ba28ab4", + "0c888249a634654a", + "25b6a01f9aa8058b83ba4bdb66db", + "017e6ab808266866" + }, + { /* i=6767 cDividendBits=549 cDivisorBits=100 */ + "0c20d0cc8b420e4ca58f9ce33a6b303f745a35136c4cef1cac0f570cc5027824a9ce9fab50569221aaa7607df6e93d9e9848e5ca466160f2860deb94b2ed757046cfbb2a8c", + "0c487f7e749efe8fc523b5d3ba", + "fcc4f5bd022028ca5f6661a4232347a7e994d2ce92c6e4c86b51a1d6989fef7738dd171c71216de93aaec85b79003f3b5319a0f495833e8b", + "0abc86e670f9f57a07c88c288e" + }, + { /* i=6768 cDividendBits=1453 cDivisorBits=64 */ + "033060a334db07a571db05fac3ebd927ffd2c7298572ab96eb2fd3f0f1d1d70e0c4efa07cbf85e68b29b327b8638f74b54f7ebdbf8ae82d928a832e848cb0d7ee653daa88017cb31a861076246abf1739809e56185266e8a5baf41233285f834891081fad3d986413ea701baf82166d04b9ef4a8bbac65ccbd18fc528119c235a50ea9b6a330751e0298c7710785354d530be8a5c99020dfba456f807c537a7a01caee66fe300861427548bfcaaf557c13d53b48b24d", + "9aeba7b549d795e0", + "05450801d0da555d056e2c589cd996cd085e09b76b3b27490888f665e79310414c52469218c6dfc4e12f709eb804b9314a5ffc0bb70d66fa2dec3ed03330825919bbd0c48da2b0ab37e3408ab7ec0f1d84b077a3733aa3e785fb1172c405e111e153f221f0ff118dc94d65489a4721f728f84ba62634a45a29d9073d503e9b5b5b956c037423e2cd46293f91af1db12ed1a4112819857236e14e7e79dce29765cdb36bd517000ab4331ecdc7b226", + "3637e7ba7df2b30d" + }, + { /* i=6769 cDividendBits=20 cDivisorBits=6 */ + "0b097c", + "2e", + "3d6c", + "14" + }, + { /* i=6770 cDividendBits=3355 cDivisorBits=2284 */ + "029629ceadeaf3142f6d58cae175e5db345585d0744dab4f0f04bada3fff3e4dd4cffd833bceab2013a2411ba3bde41910bf02a59e63e3fce28ca70cc8fbd1a3c060c4488c2bd31c7de8b7704f1a66518da6a28e3ebf63687826097805001ebea99718829d6f75d9d22abcf8170a5441c600f007d0a72a5575fbfe1c62a0e8ef2eddae6251a45b1687e061a3ff59557f24fc00e944f0ebdd087434b74ef2992f6c8613e744d71f018859478e2ae8c9cb031555b722f114d4df9635a7081d887842fdf5994ba4847b8cc3a275606168221d4d63ad22f9cc6b89915b8d79c1933c133dea015ca86a8473f89287b8a3e3a71cabd99e4d9cf3def4f6302c1ddb899e5ba86dcb8791d85bdaba445c1f33db796440f7f0246043e47b0ca838c3b40a5a3cd5c2cb89d95f555064e8c489ce096a80ad6d60471f5865a3a2a07cc491d94829d67e3fbfbabb314ba49b5c28225e3e3a455b88e0f5b1d6132f57c77b3e0028601ea133c33d714fa1652a371a2dc9d9b0561bb57a162104748cb9094b89e50c1a6f18ba716da2d869df0f851a71858f62e9e631e58fa3633773fdd44899b038b43aa881", + "0458e398cf695e38764f19ba5f2892940280840e2fa6ca97eac42a76d3571a733c65b097bd254ea7320e2ecc0b66b8c69ecda649f9ed2a554ee4d20c7826197bc3f709f85665f6105390f317715fe2ab4c95417d907744f2f686f2d1ed5162ec78f6e930afc5e74428725de9aa0f0032146b1a7905ea1ba4efe5f030014718665735362e3dd1816931dc011a8822fac4859e3c70dccbed3c7f1233c9a99712baaac6a1d507acd5d1f20e071333105c31bcd70618b290ad643d62f40b6a1b8f69cf883173a9442bb8ad1a0fb6d3d3ea8aaf2260f66b4886e175ea3f7bcc853d787901d9a1b37281c58612dac737c950c0c4869b951bd486c044e58b3003492c4a2fde90f7c747bfe96581333d1e4b6cce7aeac86f99e7a73bd2adae28de25", + "985195f745c05fcfe9979a523aebbb2990887029198257d7386bec1aedcbb5ce294a635dd4e7bf7d1fb368d2f329021880b030bef3ec546b6aa120c898aa06392567d92a15e22572ca8e9c6814bf025434697343c6ca443aeeaff9b43135a66c7c446ef9011c04c434bffd51b7d6ad9567ec27d83b967ebd3e5da090643cf937253d7f014380", + "040d1c860d66a994c79cb26d393829ace2ba7f3cb580e4e832b7659bf67441a6a412dcd70023a93524227e33a4bc6154a30f031186fc1f78ee4911c977b621ae86833e52b7e40793e89c1a6f2fc14c323add365c59373a39ef6b2a472fe2adaaa5d5e1cef6b0bdcb3dcdb4f558847d25447bf4f6d5a9138920928e99fc41775d17a01df74beffd3432e4b734b8b82dee88e8916fdcfc18aec59b02df5ef741a03a716bd77c15b35de57b56872e89634c71c120103eddad4de4ae70481c933e39bcdaedaf4967106160f7d0a32a483e3040cdc5dee93c89ca25f7d8f88ff9dbf75073a4ada1672c474ec2771acdb71356cb0bcb16233afda6625949738c38090c3c9eabf1895dd81bd785f7a0513a38b4ec9ab6ec1767e7ada89eb482e701" + }, + { /* i=6771 cDividendBits=898 cDivisorBits=320 */ + "0185df82a39d649265de058797b3f94e6ed14637dcb712a82fe1043f8f9980cbd77a7bf95b78b1102406145cac1a1177ba34bc1b82c515d963bc00d93f08cdd8f3dc84f8fb05639e64366148cc135b649d89179c4111f182b452dd1643cee7dfeac72e9fb9b0f0b6f4160540557cc0e40b", + "ff9872e0d0dac72ea0793b5ddc234fb7d04733c7b2d00141f028fbc28d9b0a7521685314fdce4f33", + "01867d7660e9b11ea4c395f29a19f5ce0717f6cf53da47a4124298efbe78d2838705475efe4d36d1535ff2fc3de3e968ed9ddedc7e52d17b7352741c007369d8c937a4852b1fbae01a", + "1c1eda4f1faa48ba9d9c781b671209d41e2b6eb6361522364d216f9b9381435afe454211787238dd" + }, + { /* i=6772 cDividendBits=873 cDivisorBits=452 */ + "01c03a6faf7e9e09f49cda5e0605f3b5400198b57c5f0adbc302a8251bc16b0e678f74089157436b19813a6ba96ab5a6770dd19f6e526ad026807b67cf9905012fa4a734490808eb3771f984bf7585525120f2a3bc7da8212cdb54d45e466886312febd378f8150987ce913452d2", + "02bfe57f96f5a0c7c986ce941bc0453d11c77df77d563f09f1361381a22693fa64ff186806cef4092e238fd7fec0b3d3ff92b16c6f374f2715", + "a3041d0b6a0871ce6f41eb6cbf4b9f3a8b330c9211111747996ea38e50a85f33cfba491224c72fed391ae8954694967ebb727ad2e3", + "022059c8f10651a08e91eb447a9411ee903d2307cd7069aa9526dbf2413c80bde2d8939befa3c7e5b1389ee998a2cee5fedcc5a85a9df37133" + }, + { /* i=6773 cDividendBits=3503 cDivisorBits=950 */ + "24ea69120f1964a5f5dd30c6d9abe758a872ef526bab069cf1cf72e91e10aaaa1d046e00a7a991d479c938431db9107bc3133899b654c8322994f66bb394eeceed4c636698ceb8c80e070929d3a028a0a0c8a924788d622e8190e30e81942eb14f6057d7f2600716d1fefa1ce79e2b4be4d068f4eb7f57f22c406a77289934d621de6de3307d50ca05a4e039134e81423514af69fb312e41fb3421d7ce0717f8e7301d79b053a1bc06e4faf8216bad6b5a460c1561aa8d979ca1b556e864231fb79c1d8ed960349208bde1a5cbc8b19f191c9c733285c1d9397394a1da2cf3810582236e96d783addd6387f91b9500e3a7351c5dcf61a55fc5d28ce3271a7391d85b12b94f8bed632b2548c39e4fe29f1e470aa2b00d3b20a77acd27c58bd73c51e3e80861fc0355a8efcbd47b0344fee9f608e8b62b3e5b3e19837ce0800b8fc9427bde179a0d481747042038b540686c85011041c17f9486f7bf841fe53340393b92833de8d528e0d9246862c755d6907ffc1da05a6dc440ef3d2dd31b77d21f367e65e407284ae12d24b46d9f3cac8e12362ce4a0f07507065966c39358e20581b2b97def4f5f2b96eb22416385a9d2f1b6666fbb", + "25eba9e8a5fc17c858d37e239240c8496958db931511e96ded05f2be8745f390e3e9ffabd60bfc9943ffdb9541680d4853704b468aa93a9fea6bc36de9159551109b1814c57917bc72f491c941b75504b167b534615ab83831b2820d884d6f18930a0bc076e6bac0b708ca796515161133ade58a941f92", + "f9374b744afb8eab2bbe4976f78e4d0e0002a2ef9f93cc4d604e9d2d1637b60a93d41c0d86fc6af68d60517630472a242a6dc4e7f43b718fb058f69c158aef7da00f748cac35ff833acf17390decd372fdab370c214a948560759c1023b6880379a93034225a49809033dfa882f479c11acf71e9b8f5a6a37c354141e9ba29c23bab9bdb64cab6d644543258d03fad26c4efb78320a9819df49829db09a0b0ea4deeb6f2096ed21bf6a36259c74f9ea70e2bb399dc4511823e12640bdc851cb5f59722dd094451f4fd51e979b57a741227d5edb6102350c05830c5b735f8f190228ae4ac99023c61530f93fae8810095f85c66901405628d873ae75ef7047a18fe13a69381ea7436662a2718eb08b1ab8afa20714bf58c01fdbda45d961f33bec1634b586257763f09a62d03bd123ad74c7da829404af0a9a1ac8184dc9d57", + "17b43692947a0c4072ca8420f7aa6945fca63ba6b13888158fe0636e07a912452ec867ef16ffac638e12e62a3fbe8b60d8a2fb478d153a189c2ced6558234b9c8563de4f057b3462cd568f134d210d526eafe42e9a25335d81c8011f2cff2cca4fafdbec49211222956c75dfcd899d98107bce5d3b2b1d" + }, + { /* i=6774 cDividendBits=2029 cDivisorBits=1847 */ + "08f4dd66f7d3e009f676c92107144696706e487cd089a51e1ae7458d7f4bf04213c0f5f010e6b1c28aacdbc8282ce9c665d23b51e9d55e2d27af2a0a243507f6e9e1f84b773a847e97fa0046d758d9bccfe74b75375ecf174c8e9c27c48130d44a841482a04a0943a60c8c713f28b4d18f8055ba89aa1024503408bc36f9e95c552c3692cfbe541a4ef9eedf06466c90d84cf842dceb7943130472115c9e06d05cb5285eaa865a77c5e3758807f0eac056d4e4f09f8071f59d3bd0842938792c387f965f83d3fa8746ba7c4153b58d7b8214538f6c55e5eb9076cf4198b8efca7a727ad770971121a525af9a8b56d32de5f0765e25b560af78ce652c2f7a", + "400a7f07f9da5bdcb4a66826a077e8c8e8d874dac102ec632f2418b9b42ca6304ec7dafc23d40bd2f1c3da17071e2e0c5c03485006c70bd36ea0c121e0874e83afdf500733e247e98fe29726a14a2799194e63af98a1d3248d8abe4c92b853efccdd706f2a1412a471a3e88f7ff8f9cd05127fe443f436546775ee3b1ade351dbf370a44ebadf56900d727d8a19549baa1b4410c3ae3406a726649a8cea7e26a5c81c76f7be3b1903f8232775c3b4c73bc979d05b6e7f148b36bbe6ce2cc404627078f9d2cf3eca4e5b5d85016172edd8dcf34e1f8f2089079f574f71500094ad315cbe8e2d1d5", + "23cd966bf1b1102b65f54fcdc2cffa6a8833253dab7442", + "32e8bcbddbe95e184d60743611044d7999c8d89eaa5f7216b28b3da3a3a3f610e16b68b20a9a72fd435a7ede82051421e4c80d8e939f4df05871c54ba39e6d6db36a40901053e143ba696a4046158f97ac05d39a8d74ffe3ec32b7657eafd9432df9ed291ed03e8eb6e960329ad5fbbeb8065fea5ad584f37f4e54799c33585028e641fcc642b9895e63c93e86341445891c6f8c93696f6a5e3510d1d9c735778a96d03f754953c516222013eaf788670189d16a0c9a3d4c2ef3f6f3c268d3079ee4ae63c6b7d068aa59d32689b6bfda80ef8a43cb7091a9ecad49b7b517f5c6f3166aa9569290" + }, + { /* i=6775 cDividendBits=2107 cDivisorBits=831 */ + "016068f20a1119ae7ba22c3bd677d056430037c4402cf643f7af9791d1adc648a3c29b8150f18936d33f9cce1d7a339a0730c3c337873e980c9ce9d0dfc73b4bb17ea62ab7564c7e18079c5c25191569c57b49e53070722afa4143ff9e4131cb87be3b0449d8dfc654ce003d459248a61c3e664c7b3e029a3d3dc7253e9317cf4c0d27a7d4bcd78745466d9943467e297a5c9bc5418cf131c147d8418444c341ec6946153147c5b082473f34f6b6c42821410148f603f4bfa3d04588deaa51928be4da8f0dc3528b60b424a122431bb0396c031b63cebe8c5f1d656ec37b997e2f9194b7c423e2edb27cf3fd24b1013535a0ddd7d0285d040c59bfd3947e30e38f82d4f48ac716c4", + "6eecb45784713404d5841da0e29bce1c520ce2096deb297146c74e652087a89cf7c0ad8beed6e04504849bf83df52c009c7df0ce3d8f3e665d702b0209fa7ed996a010660ca220c1997352c5e5fd34533d3359820407486228336e96d8247f8f22cbe8d464573e0c", + "032d514ad133c0e51cf2084570875a7a5c49d098255346009b25beb6c1819e99fc7f5b0560ddcead98abec571c255a6f67fbcd4c4a1520ac994e8871e083f503dc48abda2176453c261e5e909b5014c786a9c8bd71f6d1423f8abcc4aeaec897ec1b2f7bfde6e8446ebbac78ae5b28a064e91868758b49339211cc0a5c683a08c5699b83300748ca5269191f922022a1e2d06e314d7e7ab4e139869ffb9deac4", + "5af3d8c08311768e7bad76dadb3cc966083835a4aa7b074b776eece1557114992db8d388950a8d55293bf0f1b5af0e1d17de0f9cff33b2e93bb456745d49a98619da8729a3f6067e0ff762d9e10609dc8bcb8fe8e637f17d2968281c073c4753269989d527e89d94" + }, + { /* i=6776 cDividendBits=2834 cDivisorBits=826 */ + "762bb1d247b0e1207ce2cb9e3d32257b48ff7d369a7b0e82ba126da4bcdd5f0144e0c0b282c174a7b8d703f7acb77b0cad4f6d4ad73b34ba47f7f02c625815bce366b3cbd3a04a6a091f191399aa536bf373ef7b09c34f239439141384bbe37ef0820b8b458c16768838364f05f48c43394b06c457048db73844f02dd32365ce7e05584d1f65bfbfabd4a9547b2caade76a4f99f869c690d8b27f53cf0bee0bc64f08fbcafc2c1108f7212d7e572acc29dfd2c6f0c985e0eb810080f1203ee323a1cac1fe5443444159e295e4481206c791e077d91ff2199edbe408bddc4339a55e34f52723127c097220bb97074eada03646432b83fdd3cd4b893c8221cdc6edeab407d9a1ad4a5c82e7cba9da3df6ff9b285cf5808bd71bacb1d66129ee8855676f9053feb8fbc415ddc396267aec49c8e57e92963e9a3e708aa6ff4163a50c07e8518a4c51c60305fc5dab5552f062cff2116a1d740dd3b9650f962b3a5b01e37", + "6ab665b167e0d6cecac3d20d5963dffdb8c1f4f62ff74ce36cd044025c36b361561db3d82371084f026f3fa062f3d1c48c241b17be3b495c9995b49fa8174b50c391d7509c4499941a56c3509793924423e6bb854a68a72a77018bb20b29e1de0721815b24eabe", + "011b7ce4084bf0d7aec28f0c0b85da4917eccb8a3d9220d5d4d514e2f8824e9801ea79c9590bcb6b0dac7b20d2a8e80d5ced8fc2d9d443fcc500808d20c8ec237301bbaa03737268e79809e859734c5f39ffa0a1509fb37573b4bc83bac8a40f4e3e9d8470bec7322b2a8686f2dba9ab7686378c081bf881a927db01f6849d19fce43cf1f7b9b17b5a13174e45933ec6edb0ac4b87147d2548929453aeadd69dbdd6eebde614f013a9538cff806abff133249bf53d584f87e333a6fba864d68950e4257b26da0778da41741d13bcff7a8ca2a75123efc00ffa9e8c9c8345f4ce07ac3ca82c085d5a88785a5a73ff01525a9c20d28170e22a31c076ef", + "19c21001079d9f46ae706a3a73ea821064145cb4da7934275b889e1bbb06737c5882d42ba52bf60ea47551330ce2a3e11c5d42cc6c3e93b729a48b2bb1e2d5839c389101d642fa2e795d0e06606857a22a6827dd3a5dc018030582748fa6a1defecf221d8562d5" + }, + { /* i=6777 cDividendBits=2273 cDivisorBits=1284 */ + "d5b4f0421e0799c434c7745249e9f31c3ae9c6f87ff79e4678baad713b4e065687f8b10c9a97cab75e9177f290360aac6e94900109b541101eeefa6e343417a0545f3a3eebd3468829657e7679d2d15dcd30977654c1f001a6368fea4996a195c48b1a536431246f2a06d2b3c1ebf5864a9cadb1918b88e4256c157c779e018ed6dd2ffe0097f861ce124457736b19397325c8f81cd289eab3302e13aa699493ad6fdb2353c62dbede3c0df779bd00b42032b4466afac7675d140dddbdb61b1f46f7d0ef79a2851ae7518605e69d1259d88953cc48220b76f2302a973f60b6a59f4e4f5d3e809becaa8d0d413c5f66b18a098feee5534f26fc21c8c2e12b8d558881dc823acdd04863983e4043dc228b053eae70f463caa7cda5fe4c", + "0e2129a1a27d6a0d28bc21e406cd4f7ee062da8f0396fbed8b9ce690923a43ca7468bb5cddcb657b7a9ac26273da29c9628a0b3b64e41c3880345069a9453da76665aafc378a36d27bcc80f4b52e171ef037afb0e99e3f1abb9dc54fb895c4ea8d01e414fd504fc54a5d3a152582d4899b3cc2a3bbfc38f614e6873966e55e77d80ad4f1a42068df4bf628860a3b2ff36b03b9d14ea0de8c2fcadc84f16e048c04", + "0f1ff44af94240863dc0e36e17c1b31f151e65f3b7ff9c2d406f97b7713772367629cdf321ee509f1b7acdd2cd27234e2d5f85f8a03702427db18c07136295dd18982384f060af39b2023d042cc5241f49020d009946d4fdd6715e3b01d904a0ab29adefb69d430eb63aecdd0041ac9867a727ce2149f50421fcae97", + "05ca7f27e43e5a24c7ec96179eace251542677721afb4a9a4bdc65f0f83694749bb0e101b4ca94450ad276ac6be64c371a34d0a1026800ca4e264d6691541f7e87090d0bc1eb571cd814bed3faa280f35906edbac62ef75f2fb5c8f9cd83bc693ef3b9427344fa0dbd067abc8cb52bc5db3a0171f3d4b36c78d0d6a2a14f846be314ea0af5bef7522bfd502d92a1f77067562fcf0f4c320587e9e860e279dcaff0" + }, + { /* i=6778 cDividendBits=3173 cDivisorBits=1498 */ + "190a06d36b9d1d8c87e7a14c7948cadd041761aedb8b46aa83e0ef5748f5e44bc22a82a97e3ff00f8e7ce3a6fb7ff2227f854b26f12d2ddf6b2986af23be7a66a1a0eece0fd8c3f9221b269cafbcb638e382160dfa0c9d5823351d838cf7815b767d1d6d0a7ac8a126a455c3ba3d45c9f0267aa0656d32032a28e39f87163bd055441f3347a35968b22956b3a825c66fd459593437826bed57fd775b39e45a19fb40c792c72d0461473d23f4ee850f827c5431c738b2a2a16e4ea14db9eead6287806960cf181bd66aa52c93d9e0fcd58584e6f2d96eaea33630ada0b64ab36a83904487d044895e193b4f1fb80fbe7fc2890b434b501a5687d91c0e26e89b2773c316a54c5498fc9ab28c08a8bf4e2f69a3302b13b585ad5fc4b373d92c2646bc405f48d002edb032a7ae1949a4efd0d295fd0e00054f4ed244abc28f7517bc6df3aaaab0a96edc30467772006753d3c8e16d070dbf0a936760d13f7338ac1a37ea427a2464b0683ad19a15ebe34ff135e5df23643ecee341e0def30b428cd744308377bc66d14f3c68ff93d9", + "020b5a3c7fcc907587dd04dd5c58df148baab36a4a25224a4f0a90f07fa4fbaddb2e0f2c1c9b42569c63f575d48b8134589978afbe80deb42ba03514deaa0f2fd2eb359fcd4f552a9160189c76bb4a990ccccae9b5a9683ab7df86b666fe24eb8d35bbac3032cd30a49cf45275bcaff68d27c184fbecddad35075fabdcde87796db2d412b4609002c03dfedc9aceafd2b1cf5d9f385d41d9566331c26bae2305526ba49087e60c1d389220de6b9a74c5b338b75cf34e3bd9caad7e5a", + "0c3f7d9b4c038331e7455fd415988e1e64346e3c6fade5e3f5317ab56b611ad8fb968c733645974b8f219829e2bc4f37a1fa28bfdd4035ae3d2f72b10651df72db0ab600db3cc49f1d84cf913acc9be507c4cc0d7f36f31a4b9844e89daf20404f71ec4ec393352a69e96324817d7801904e4c3adcb66ccff644208e4f20d68778cf4edd783e7adc27697ad96e416272f931b698cb6acc0168d50f854cb9cda66f34168b5c6e27645dcb3f0c1ac5d667c882b05df6bea8f657661e9ba426da4d7b2ca3cf772cbc050084be1de780365405ea", + "01ff842fde81c50e417c413e14092f9c095567cc1f95a47d3255e6aba627835abee4dc00bf943324c607b105c1f9a1e582d5dfd69bf0206686d495efe6a4528f6d3df08d6ad594d0db4691bc9be47795e29ff7e1f7ed59e3d86ea40bb252bc1f18713b9b38078ca2f45b38c4cff1ae012ec5efe30b17cb4784b4f35d11b60fef2ebff586947e0ad751de4514ffa9bf32277efdd457c4fa847b38dee8a931f0c8174aa65ebb5238fe2336e8facdba8284c0d5631be5f7dc9f516a5395" + }, + { /* i=6779 cDividendBits=2 cDivisorBits=2 */ + "00", + "03", + "00", + "00" + }, + { /* i=6780 cDividendBits=1978 cDivisorBits=1174 */ + "0396f28fb229915646405147fe278d6a649890b460d174500d61953fa624131a05171d5f0935038b7d9ea359d73a197f94c7f639f84b9bc0fdc1b8c388ed1384eb502d1136e22779701405eb66e168c7a9551639723b3a56a6a814df00a063a0d8e76a556ab77100d03138e1660b54d969ccee65b9fec6d9a0bb926bb597e0b7a53c7b0caf84294c7e9aee93dc7aaa9e17075b90100353e29083b68f17132f2cb9ccddec653dcd1198851874e2a038df9fcd5f4a6b3df7c96e62befee33640a33130172839c0235e50f81201f0c06725460655be98293abde597621fb17a8cc234f5eb22fb7f4f8d425887bf3b134ac7a00104e5452c0fd4", + "22f120fe0009efb677a8cfb4198b72e409f06d15089f7859f05f4c8773f521f9fb0a4825a7fdd627a521b3eca3a49a89e09e2cc2dc9022d6ba7e7d1d4e1cf7e73948b7f1c5929452ccc80e0138ecc3f190842d64fc07d91ba44f2e83566b0d772e555c37c92e3baf31cdee87c57759f3c1c02c05ac53528453e76bf6d4b4ab067aa15bb92a94fb565f56950cb0a577ffdd4e8c", + "1a4c9e6ff7e928ef3bf4c74e94354b36f1061616e764ba0ebf763347a797f7680f8ad45b34d4a9e54ea24fc6c9ff18bb03ef61ead99ade7e35426ecf2a8ce80af90a982b3c07fddd58868fd6d29459280dd36c188baf5a88b4d831debe7fc5eb58be5e7bd3", + "01f76c9e4e736d2c325cfc399139583cd9f7fb9eac38e1a19e7b137ae02f2adf9031adc2dd7da678ebf39baf73386710e0a7738a3d67dd9abb35339cf296a98e3de0e32755ed58e8895f9d75be33b3e128b8485c28b0e33cfc1341bbf5074dbee76af44fdcff791952313c07e03e14214cde9de56c3527643094ba3280133c0a41dce7d80657e676b120dc7808435f4d9f0e70" + }, + { /* i=6781 cDividendBits=1386 cDivisorBits=754 */ + "03f0a33cbfd80a8b06a958a0f1e4f7c904e89a90239c443a667fb33ea8ee46100d89e9b615051a5b1a76ba8f454691714cc9f2a4b7ff3176de347d51407b8d9c851fb65ae6a148274dc9f8d05c50f6be3e0a617455f9db2a6172028c8f3370e6817cfbca846d5e39fd1f98f8f44ecf1d2490c62b5754a89a210af56bebf14937c4f9295327def9c60af292d22e61dbdc3114b12811eb19d0d9c7f37137d42859a7a5becab1a89c1d15420de5a9b6", + "013fd577f56bdb1eb7f8d58b7baa250499a61397274925838f1890e1a7cb0250f9d197317d2e8d11dfe1d95db90a6a12ffb5890db58416f2c294580a256ed7673e4e9e23345023473cdded4322372e5dec77867676d2fb59e46593588ad353", + "0327544ae1d1156b3a7dff421f0786ac94c47271072d01bdb9a49b85841ec793c74b957501c1c78f76073c0f030b81ba9c5dd931b1e184b96ede20349b5ff6a4327e37e67fc8b3cde8f367f3160ec282", + "cb1e083e3104d973af3a874bfcb169931579a7fb7bcbf36ee98175f38d117f8693a56f3e07d53e6089d9847bc08c982e9a5d4a5e8bad0644ee7e82da897f599aefbb72ba3e4a9e43be0771d1ee7a207d8e96fc8cb76ff2e714cc32b77390" + }, + { /* i=6782 cDividendBits=3463 cDivisorBits=3169 */ + "4e9b54a44d0af640b1673862a9b45735a8d127cbfc14a7a2ccc63274b886f1bcdc63f27976675fc320c424defc8e77eb9b15b9614dc789427f040a8e1b826ab1063fd753f1dd2324ae58ac01fdae12ab4a2a5d76f310a198bae59a2de34af602368693f829aff222a711f4877366f5bc51b43315430ba880941396a898e4bb408658f086589669cc49bd053196f9ddff8352d28824e02429e8f185ef9d66aec64f016371253fb6e36162a41117c0871119abecc0c91fdcc8a23883b2ed9de1e59106a9d6afaf514ab5d90f729aa5c6313e55ea5c9e0be257e73f1d328dc8afa26ba7ac5f3369d64dc30577a7951bdf7ba78c387f6167a059f22b29bf82f7965a9eedd8948f282b71001ed3980654cf2a0a445076dd0ddfdc03c89a91948640f279b6f8109ff9e3e99241cf71415b06a1b843227246d3926a5272ccb8dce0545634c2531998145f203938a5992b4969c1838eb3d12057db3c487eb3d1ffc3c3e5c6da21471652c0ba07598fd39ababcdd07a50e8a3a8789e1c0d6f77c38acf664f4848c0234b4c4084ca485f6a22181d9cbe8661f5dcff2647bd98b2f29b163847b4983a00b8100af9f32949e998561c320", + "01b08fadcf0234a15ea9c95a59d6b57130e80e690ad8e1f8ef297b23f8f1b4458e24ec2f8b21a52f14ae71167679f45904b463b97920142d3ac366c6d6b7b27aeb9752d3ad3ea4144ab07d991e40e1d224420ebe4d17586b4c87f4e6bcdfeaf7af1c3e9ec9809ad94cf9f5b58739c8d2f7db70dd483b4e86272fbe7dbc7f2d9d62078ec1fca9538e62ebdfe8b49a25e0666c74d72e789c69980075c985b74f4df925478b2e0d1b5ce1cae8797d966737587e0e976c57cd1c2d1f3ccaf4709188475dd75bc31693257fdc12ee205b813f462ccf817ff234f0c435b44b9461e7a758dd6bc7539eb56ec9f2e1e6889df91c2bc96dfd00f3e6d03f9adb8812f216f06038d9cd59ed0cc1d15725ddaeb3a05145d6a8eb0d7b4effb50634f3517845462288ad8fd9cbc21343aeaedea65a6ec073f5a6be6d2b96723c2db2dfcc0703f91239dca1a3d6b49bc290e96216494860c34ca07d47a3d833a8cdaef3b53d56df8f8c0546a27bb21f5467b605b3de70a4a6fa3c1657dafb3546708c88dd1a6204240af0b95bfd5d7572de88d815", + "2e8576d1418159945d8265c488764233eafe57047bef00265ace3c3635e7cf9abd03b08f50", + "a178950fa2c8b100daefc76d0efb69146e4abecf21e8658134693321c1da381c47a53f9cc0c02f8db3244e5668f10042bff887ed8050d3e576426f4d2eabba61dc6aa590b9d2429dfd650ee674ac4d875093542803fc18fe644d7ff15fecf52e2984bf37f3833287a22f85344eed250d4a26402a8017012b539255831c8abf64ad147ed24fdc97bc52479a1d2e9a7fcc540c73888d245211590ceafd89f7b38979155d1c7b6adc2ae474f23972669ea8ba1291a862bd25288d875eca572be6dad881f60b08481aed427e6c585664668a6ed07c7a3d0e1bcf91e393285acc1fdfd491446559f803c5b3dbee1d25c1ca8cfda70593fa61822e4b8cfd41097781b73f5fc50bf6a9bb994624f5dfa5cfe692a0c7ae56891764c6772f61f8d0511fe21b826cf0cab579126c226c8454b4874515dd5de3c7668c182319a33ac9227b8751d8032f9bddfc43bf8357fb39c2a25a942ecb5e15198dec97c0a224308b824fe49bdceeb9a44677cea5ddcdbcd23b6330c0daba1ea43540ff2589f9f7219110badab2107030fe47bc7a8190" + }, + { /* i=6783 cDividendBits=3209 cDivisorBits=1014 */ + "806eb10883208cb02a6b773c27dfaee7f1cc18465606b957676730675da3a14eb60062d46f33b0a0d5aca71e79a69032d3095fc4e289de6545c14cb654bf5bdfc049c73562103af60e1cb3df9fecdd1c5526a865dc806030cb85eea3ffb384dd6ecc8ee0e766fc42bdfda167cf6f2e48328b913be206018eb3d9f5c1686849eabea4d48bbc23b0706e68a92d9a44379754a859e9375adda63e5af955ae647d3633068511dba5105d962bcb8793f3689b197283a7ef7f9981eaecaa23988be048dfd81e175d711c75a5888c5cd9a5f8a817a453d33f5d5d8bafe745bb2c8f1584c7a3ce06a54ff4bc3d409286e0e4d051e979cfa26c649a56d116652f5996a9192088e13f94f2ba6245d88336442dab0cc9f5b937a8e4657a7efdb181fd492c052de3a524eb36380c086c95fe26806b7f2a53b24667e99eadcd7c323d93fad022f0452b8a076b514b36d005687532e6a99b1eb0e5e5e86f0ce67d7af1ef00d8b8f68ce6c99d84e587d2a3a211e11045ccd77294f217aa3954e9c13c0e020df7baec06240a9620a597909d1daabc8a5ce9db", + "1d2c22a56c58d09d4bdce2b796ea71935a2276bf83bf540f1e0292c6598ab7a37dbeab1446e7bde313e9f9242eb9a2c507015b62c67dd72e16e1533848cf2266561e173a7700be8fd0ea8f282efd0d2fedccef6243c0b23acda1d38a53393dfa5a4afa0d2a394c773d531a14f400347a21170619714540384c696fcccd8dfd", + "04670c38837cdcff1be5c3a10eb8a5409dbb0d832df7ab67c6c14d4777eea4d6fd32bb6ca8e4ac81a8af941470bfc47d9bf3adba3609d88c86c2b83f19afcd14e95f4af9c44f56fb00bfb31d45afae1fe97bb23da637e92c6ded24e37fbf30845b670cb47678e52eb55b2e5d0fb209c3d6e347c278d712066298eb9443aa3bf76ae9366df779fcdf92c5f3d23ed891f9e691ef9fa93892286956c040fefd120bb2c0322241e0fd394a51d8123e22950576ec592bff98469eb65ba0b5f98273476b0be2dac6be93d5d4b0a82facb0be1a25db18d53dfc4c82124254107143d4b685a1a751326b4685384a8d45eefb183cb90d4e7ae575c6189e8941cf6ecd004f3e7e136394a080b2cb9e7bc519a669645525ea", + "19a6dbdd7e6d52c1ab7faa3066abb67b5e8de3591267a70c7965abef25cc8697731c1b95d9dd1f07b183b0d9f015064f5f12f832ef34592d5ddae3dde378317b57ef9c66575ed63b67e14885e2c8f3682a2a8572887e7dd57b31b579d5640f56bbef1d91a939bde74c72d3f283340a2903f7e2ad8a2d9d94d28b75a7f28f99" + }, + { /* i=6784 cDividendBits=1027 cDivisorBits=497 */ + "0689ab8040852f3c039d084723e2e2f04a9d9895e3aa92318ebbf6364ea6a50ef3c9c1cc93d8095800e971f4c189e0f5c9893ea4a4b2d7b8fd163785f71e78904fd234172a4cd1849c90feb7d1ada24411df0bd528d7e513caacda4e2ea5f42057002b39d17f7c54906951d1b72afd3072342706599f64f162e83a6dac8a6ac1c2", + "012e8aea43fa84727cd303b711e45c12b38957783d85db078324b17d58e18e7b66f43b549377ef978f7ba375bccbbe0a665976fe9c4b87e9009365778e5e6c", + "05883207e6f7f1725d30f58c23d845f5cb3f4729b1f9ad03c0c5fac00855f8f77d05bffce06c70d626f71debfc62a20d7a2035e1eb877dca1be116315dccabdfce4a6d", + "a3343165d56f2ea42e0b40fd019aa6c381cee2d0db714816f1b06e2127ba266c83475a214bd861ccecd0241f9c2847862497387b782f4101fbf56c9955c6" + }, + { /* i=6785 cDividendBits=3327 cDivisorBits=3210 */ + "57ab71f2d2c5a0ac16ff5323b68c5fa9439f7ed51f5b1965e08131109c05dde12a6529cce8c73d4df9c77884ad875aaca977e6b1eced591d506deab064abc8a5424d08811aab913db7d9073be32a6cceea4df5b41f7c696c4af3a9bc0f8ee181666b8e4a8280dd5a13eeb262069c6c88c571a50dd18a04a0a902069804a91d3b379ebca2a50c653f77fb25bb39643928fec3ec9bb598f1aab850d976ac33ebf19062dbaac514a9b999b96ed580c29912e62395cfeaa6be324bd95842dc0f8402d752f344d76d8edc20d0ef0c377b60f061d3cada00159fea1450312f53abd24c10eeb1771c48be7f4a61a5a3da28f10529867fcfa7a543c6cc954c8af3b50e09d047a0c94876869aefa51180137a776be8308dd69f9873794da2e0d5e7584961bfcf3ce9ef1fea578b2b4e350aa1d0e10f48722305b834157ca091494311dc1016b932bc91217bce9af1fda49b3d23ab1890fe6e9d3590af8146c8fa0aa35bdef3897d2e9c8605d74d8572e27bc26434ce00c210da822748b10b4f35e15eff22972c172bad4c72d978dcee3f1b4323a23f300bfcaf1d4d884518e79f67097ea5", + "014e69a6711de7038b8541200d8ae8c5185a35517ad8f581f79a4a90b14b8542d5dac419a35087db8b56c5e39edd4bf350ec831b474e83b2320025f66205c3fcb2a567bdaef746f3db7a1efdaa663b689bfb4d4b959e6792a6be2908c61adcb3dce389890dd1092a90e312006e4095d353269f85bf23bbbd866d6d68733dc7ab4ddfa86c5612fac2da7addc6242bb6a69ce1fe07219fde26f9fc6568663b53c647a1d0d602915e0ba612ece81147148958dcad0daa52fa78e4b043faf2d5c1cd9b2836c7302b27a345d9f72bb3b7d5b1cd9f46b0aca41c5a321554b295f99cf08467b28119849011aa7f414f180bda998e83796201be92f1c6e0c8707cb5a16d5b9c21ca16cf47a83d08ceba169cf41efda081948ea567566e2b92c98432103d6a198fca75e0c4b250d661d8bd0b3e8ca63327240a805889669254c6d3d261e39035f46201a23d2a94fcd65ece4e16266b7047ce81a426308d61054cd2f3576c915d28d127f3912ed868efca2cd693eb5bd524b58b4bb2970c24556c3e1af1cb1519efa632aabc14fc368bd18e08df80dd5d", + "431ceeb6ccf2d5641c2f06a502890e", + "d582fc2fba4d5a92ec31f68a32ff35e003eb1129e97c5b285b969d6ca793bc0ab7431742095f6c34c0972b734a8904df5eb19a79b212d95a913dd36e6a855050a84d3c6da4e25bfdf0397f6484e15a087185895472d9650248548f645b607634442a509904283c232322b296507262f4387a906843cecd54769abeac8d97d65aa08a50b48c4ff1517504b78831774d14843aadb8f2bd02e79c1ba2910c7f28e1222c1bdb7da6ad9de705bd6f5843db35b0c89276b72a36c0468c24672cec2d14f91b15aaa0f194d015849459b7afe04eb35e86009c8b23379793431790a8d3b76aac9e08118ea987e02ff565381a5f867bdd30d6d54ec199782e6a693dffab046b34de05830acf4fd75acbb49073f943d8eea11060aabdded3d8194d788c83316d281c848dfd8be4b18a1e924d2a2c8e21ae86a3af0cfce1653fe4128e0327d0eb942a60086588afd72385b37f510f9d9a3293d46dd42c34f8ba07704fa3bbaf9f7856b7335821aec20aab2f0759d878c58ad9412cb929866b35408de1c96e7cb7de1994bbfe99535b36ab52aa8bcc9e8f" + }, + { /* i=6786 cDividendBits=26 cDivisorBits=16 */ + "0398a3b8", + "d0f9", + "0467", + "ab89" + }, + { /* i=6787 cDividendBits=3300 cDivisorBits=1352 */ + "01fa38d9737baed6ac7b4805759d40265233162be2b00fe453080ee602480fe1455b4cbfce7bcbdb70cf8f4021eb29c059e121e39cef36e7a7f94d785f9e64099c562e2c176c921c620c9e6a9aed823fb5b4658b38c35fb5e8a83da0ed889b71833ac0d2fbd64a9a9d926cb98e77fa05179fd747dfb1b9d7705247fee7c6f97cae205fa9a1a59e08f38a9ede5be66a064757039fd76cec0e079c21e87a2478a12017d2520416f39dc641ab68c74f95975c918f4377303e7862efb361643fb9745ba921678bf613c0a3055bb972a7a3a826accd53e8e6c0864d54d38d5240894bd8a7da032dc370449d9d7a132df2a377a5cb37676efbaf31cb1f2bfeb6d6018a4ed2a68c11be8590ee58dfb1c66580bba7f317a7187dc07e55077f269cdcbc523ce79b764c3a40bbc3b1fa8059d56013c914dd3491b2a307fb9c2a6cb7d95663c0b598a5414fc40acb12f5b7458fd1dd3d31d447ee9b1eba162b58f974d24fb5db910bb14b6aea2e697bd236470805fa0691ce50d05207360c787f0734ee69605aa3d22bc8424af175b169c597f3cd355568fb89bf3f7e510a20b5cd1d", + "9406f7f8d0f1e8f4ee7e9ea555cad46570b9d382d9500143fbede3c4dab5e63e9e0dbe33cbbf601f6cadddb6d194a08c932ea14412b2159c5a395155d5d9aac2ddbf56e3a2c6cf026519fd5a760d0bf99d6e7572afeab837241ce38c616c1eee450dcf12c561fc6694bf572a174df017eefe4873b7b031a98260b20ad31115530f116ea44c5472941b59dafbc1b9fee90ce4098fd005772dc63475ea8e3ad966d3387a9422cdd28a01", + "036b7761f941ec4b154c2c5501d00741c357cf9bfb9c726e6c78f300935a64d07fcbda0399a8c5a4b405f6ed94f256cf13b4dae73d9721671c19cd06cb6a726de3885df51e606e06695711aea6221d0b44da3fa70ade025802eaf897b470c9ac33329e79c9d43dd96493f3a59eea1feb7b0b3816cb7900a04a72985ca66023c6a90a3a74f45a6d7707608b3da831f198463ad678741a4595841099c9100eaf787828b1e7148b1dcf39ee2be40674b33241cf4590ec493f46bcd9739fe1e987f937aa9489d5c2ae2579bf3dd6ce845dd3adbbecf71e2853c00b505e151a2f7fda1bd7cfbb0d74725aa597152b8de4b79ccb541d7a", + "031a611d666623782d255987c3ac3171a092716bad1cd549cfab5472aa4d73030b8937905199ee853a3d23b20af5fec60be3f2900e3a684b6110961962a54caa347eae3a60737f0d7694df98ec42e7cbd9ec8e2296d327ac809c76baaef2f983e00b92afe61e4387d02d142d0ebd0d583aa92a96b8ec407a0efb3f98428125bee105f484bfed7b16c35f00561aab6a764ff639f10976bcf6969ca358f3796930f8dad37b031d69eba3" + }, + { /* i=6788 cDividendBits=3208 cDivisorBits=796 */ + "9c779776b610bf85cd5798ef93cd48d438c9fcd063da6ec99e479405db7b2b1cfbcc5675bc17e0bf26107b40c537494ecdf99b0452d572e619c7158e0a07eeb4538a29b318cea0f281aaad8847a54c9ded4aaaab4289fbdcc97dd672e891801e8e1bdc0a565471f108d10f2dbe9f1590652bc5416c8fdc762460546c5fa3b60f6f2c5dd4a0b881b810d42e9699c1c4394e14bc5b2d6226d7829b025298b1caa26530ab42607a30b027402f983e530c881d2bc73d2596d66768fdcef1bb8269b651d84d1f5484b3b2af1507a9cae93bbe413f091775c062c310b6883cc235ece7e086017bb4c672bfcec8decddd6d41b5cb0d3302d3060837d22b4cb9ffd0f9383ee4f9ec29c5b4cbb1a1940355c70ad05fd03e4175c79887777996502e290f4daff4afb4edd38a6ff2eb39956d9591f181453e548b4d1c71e5594bd9e3ce53754a83814669021c0005de8d37c1452ff67568524aac32224ccb9f14c1a24e6b6519058d12f5889dafd876c9a05fb457bde79ae0d32357dd013dea08df3dfbe9f167265e4d2e97b06785f31e0467f99ec4a7", + "0e7ddd8bfa921d4649cfc5d00e3f8e453238133f5f5df6754705f10f827a716b6b8a75aa76d10d3342d39d41b28be0bcafee9975d37682ab80209c17f68388e190c0871743f8da77e48ff226811380524fb01eb171b158b4765e0e6b0a3674f1cf871d10", + "0acc0b47691c45b28a0579d193f050d8d6df3bd95e9c01d59065d918f957118a972d3777e022435c58a2961ff2e799dbe2ab14726bc29d9236c70b4a96a35611b50ce07e6512fda0a8987a66d17736f1544a63b59cc5667489f8c1dfb4b42ac545d9de7b54f59afb721fb195326cba7f4e456d29a167fdc93b448bc756960646ccdce0f41d6e2a7608ad806b387c33f64b1ea7a9f167a1747c643f43851b9d86c6e199b60f74f215296d608483a6a5e7ab9cba792e0c9a8f93eb7e86648ca1f9ca31dd6936dc40a5825c27e7f6e9093a5d2d9d4381d08e9306f52fc6dbfeb7ee5853014c98a51731f81d1f5243208102e1e2550556b8df99465e6e178bab5ec8c3bbe358a5d63d48cc4596b0e35768cb1eca24c019f679300f3a5150880b1129300003717a84d2159756c7fbabf6", + "084a25205f8900b090fd4cb2b40c39551e347bfe96ffea2f69962af68c124b3d4104eac936bfe09b30bc1ecd3ecbd05f23ae29d41f32bd565744c569b44b83aa6a9cbfafd3863638632caf397d8bbd294f98977d3a7f2254c2dc51ba356b69fa5eaf2747" + }, + { /* i=6789 cDividendBits=2378 cDivisorBits=501 */ + "02d0ebf045912a5c247303cdd4230c81648dfd58f44547199c19fdb4101baf12255fa2e34dd7104fc2f38d7074751ea2a73c5ce0e20e00330992a746668bca9b5c0d0cab5b1e126427bf0dd8046cbaa2741b51183862a5b685cb815bbd17061db4c8a1d97da6a378e4be4434d2b92533b5e92b1b35633253513e56014528500b388a51595ef8bbf9697ca22dd299d3d872c4011f8329ab7b471aa31e099c5922bb36c4f788d12c2de0c242bd1edf87f5ef63977c7290c06b8345a0c8d42a3b686c0acd3ca3637cdcfbbed325647a2c8c88d4c7b02ef5e7401c456e63bd5e39221c99f9550d0d1fab6aef139d8eee79cf7d1884b55dafccf486b9f215d1ac6ae05b7017c39c9746d535e2cbb37ed6bef715bb210c124c1613a103a0d0d19d32eaf99d6bead65680d1ed2e", + "0c71234c79b2624b4aef05dc431315ec2e71b19a4875d2862d355f5c217b97aaf91b7c93da02f0b0c26a114f2ab6dd1a50a7bfd1a5dce9359d7ed3800f18eb", + "39f15e09afa91bc485b926aea04eea32d55e9380f91143ee4839cbea79f934ab3f061831e28a88e3dca728ed6f7e635828c8d8e4d2c63b18f05813dd7c07bb921c90e2259809e123abc7b75185678be24a9b0def4de5ba34c463c5b8dd5568f64ab4290afec220d660f1e8e618eb4a25eda5b38c61351a7282d14d957b192492fd05ce01b641bd9ea0ecc7a140f8bb481c1e8f04d1cd138cb04ef8095f4238d5a2801ceb6349d29bcf17eb1569f8d13d311dde7bb27d36cc04e55f8031eabd67e3a04737bb7b8baa3b99ad2d05a6aa2a241239d56dec2b7eded7f0729acee4c1d90ba972299666daafdbb6", + "05f304eb1a4ceb285af2d72ec3dd174b07f570392519f9a5f5ff8684fd76aef10bae31a7181f46d49f73b55fac77d6ff747b5a09bd69554291b84065202d1c" + }, + { /* i=6790 cDividendBits=3594 cDivisorBits=1494 */ + "03e9a369bb020b9e1d18123df87b70c462e69cfaf9934b38fbfe84a946db4208f3060ff3d0e3817207487ad1a71ef7f1443d60ef53f3e13fc36baae65bb0ff4a55de9b1bddccf18c862192aa57891a6456f06006537c36b86399571bee96b25ae2bd469e85d6465dd1592eb9a3a0eb610692807f70124ec8d79ef99471e0cf6b703dc540baa7a0adc864d37a7b449ba1b563cc164d5a566fce03c79532ee2d06564158a13d98fea98d1c9e1463ca9e9ef819aff19d38171b04cca13e384e78ef83a972a6159b10bd79892cde42afc06a80ea26128e794fa1d56f18fa74e0743d8535aae4796f04b71ad7ddddcaee7eb304d4db5ff9f084a40ca86af22b5ca8eca9b14dd585a9070758f664215aafff9e7e31c0faeeecfd095d652ea274cab947ac9eee53225874b9b325e939217a6abfc6d13d131e68e78ae3714bbc696b0b3f61b856394b921845107b34646117920054005adb1b69cecf302de42de35087abc3bd7a5003a457b308d4d0c673c99bddd8b399e25a91e105f7dc82a1ec077975e810984e2d2f582078f876baa48bb084d3525dffad1c39b5662e6fc2ce750373712cc3d2c7dc7f92c2b7f62e48ae0ef0c37a4c25ca0314eaddba7d32727a8c86f965", + "1f0cfdb114a0a1d41bc7c7779e3bb8bc62a020af6f66b462ca1a7b4e8e5401c35a6bb29b8cd929f1a226d750aed8c0b8cb345cc55aff2ea07e0fc8389062da73b3f8a00ffb378e9ed1b2012f2c3a778a0b89ce6740aae134fb2aa9353ff6fc6347f70ff613e0ef6d51629c9ab4b66df1e0b7ca9024888da7247c7b07d511376c52b1427a9ab557ea87a5b6232c2f276f13bb48b708bc8e332cecbc4c0d5e9e785c7ff64c29c1354afcae104c0082c272e5a18cb65c4545b801019a", + "20421364cd1086770e89f1ba524d8f67577a96092c97117ec481aa4113e1edc07bfe7b5ed5f89c4741fdf8fe1f0f91049b6d54d7192e939c00edc3c217e185287c289bc9fa783b525934cabc14589c9aca56a637379fb776b9b21714537981701109360125fcf9daa9beee167bd6fbc06f9c80db2dea74ee368955a6fa402e5a7158c39442b12f4b9eac3b98904beb738de738f805c33cf3dc64bb7763afcd1b7a8ecdde6d1d00602912dabfe791d4fa1e83ad5bc3a6627980fe57a01459edd3c9e8503b795abaa8a270b929e7893829ab9f14a037c2483a84077595605d01db8a6a6142ef6d4d756b976bbd0f37722767156a2bf9fcf6c00eb2089bd830fa5f52cb2b92bdac21", + "1591bcc979bc1e1436f937100c71a33089c13edb5c39c99b89f7fcec01c53febec6862d573e6cdef27674c92668604671574c95ee113612c259d668342b8f541a6c8261ebb42dace433c1f293a10d4043578ac65f6462312fd215005bf97fb619fd51ee436654775f0d525b611150dd4723c61412af9eaa6d9fc1eb46a3de694e414df58110e98726ee112893f383251e19189eb8d0fc6c9bfb8322d8874c88968f515c1479495ad78545348d36b5d229f9282b794de5724a04c8b" + }, + { /* i=6791 cDividendBits=1286 cDivisorBits=436 */ + "171ae1ffda3bf978ecf83308ef4129b557e82c1dd1a34308073688822ac9c94b5cf4ffa3add69f422f58430585366990d5915e5dc8e0c1b666914ba61c16145a14663c0e538b4b8be446b1acc75fbfce481e33e028a15f972fc38692acaad72eb2c5403cb608392eea4ffd0b01fa6243a3d1d741a77343b5814d18bbd3914e8b6866eeebf0a0ecdbde9da4e593c40b48e81bde13849c0fdd34b1e104acb846226c", + "061fd4e55f16cb1b2c846a4c9bec49e4ff5edf9fd83e40a3000651ef39e53e19d7768937404a774c18d580fe677e1c00389a1e6fda7e39", + "03c5cc823b17a20b6696117b0bb5828591323e0c01e0ed6311de67d452dd0e36c375fe791fd217dc180f8bc28bbb9a831a318e0bb5a2233ff8fb457c3f66e466b5eef0c81832eab4c77d7f709aeb6c31752f49793ed311f487b4b7fef8101719314e975474c1b66b3f9f7c", + "028900cef23e0014c7e4718e1f14152855f7a1873b88bd7ab42dfec88d4b69a9539da3fdea0de3c2e969417073f726a42ce768f30497d0" + }, + { /* i=6792 cDividendBits=3243 cDivisorBits=37 */ + "01c40bfd40dfec095c3b69b772b233d39398f9649e542690b2179cbc7e6fc8b3b3dcc37996aa2f95a25ad488ec54e993f939da36c6f1486d78fc2010d89006125174bdcb3d36f9e10e1bf6306917f05abc71b2914e414a6f2cce130315ecf90004e278759741943416ffb4429dcf5e569d8ff9d88968f269dd18a0f7321e6e70459eef661af2cfee264f9f3c64b571d6f796de98a98d97f5fb085979a0a3484d577022770211e234957bd1e7547929cab0f2e2ec27bc9259407d867e620b6919a8303c7c2954c7d6c0e8d5a777d85cd5dfbe0769940c88a71a57ea1e25a6838ca8a7eef83d6fe8e5d926324abfc06991493a65818cb6ec679f378141eeb3d6ec42b894e9b0f75855b0bfa24272add16f937a1477dea8a452fedd960b09487e85cf825f5f411ac04e8ce41a9fd5a6377743d697d1c75fcad4e57076ded70f3264e07d09520857a06e3460da9379862a14a5c7bb3a4a5d23c673c15deb49d1062d3a25be315f06de4205cb71d6c383014a663dc9b8f26c1aa1d9f89b0fa148269dddf93a21c68bf2af09f839da7d4196d179aceabd9e5e", + "18d348fac7", + "1235873ed16a4b36c3bbca045d3e8823852740d0276de2a71c45de0df821e7a0d6fd940d77254bb48cea7a618a9a36709314872f5acc4c84f31e06ac1af09f0f75e8df7977386ff5ec1fafb4843f753363c2895ff55cbaab0b1a0d9d2fa9ef6c4da13e5e424c8a084b4adfb7610c0c0a78f78280f1f98de215d02c7f303c066bfcc334fd4c570c602ce899173a2725ab58e2264585d0d0c4e118089ef2c41a53c81a953fc06a193a8a2e6ab40e07369fbfaafbf5c3a2856fac119dda7185f28ee1969e021cd5b23500081234ecc2fcc3b42128bc2bab528a53e0fe3ea63cbf0b6a585b828c3b549fdc2ac2771fb17e85afd8d9ba3ae88b4196784fba2e923abae1c9966d426d734b7b9401df26add459de7f22e25741ced3d5600d02bcd2626aa75da4e6f36e239f90bb02d07465ac7dbf0d956555eaea2c2a72cc445739418f4d079a7f5193282b76cbb1241c8c450e2fe852816e851a29b6a0fdc0ed575d69befa392c7a619079c4265e2c3bf8fdd7700ed81d49918457d5f7592e2d78bece4ad8c6bb448cc0599861e32d6974d481e8", + "04d1701306" + }, + { /* i=6793 cDividendBits=1884 cDivisorBits=1248 */ + "05f2e6cfc146529995d6b6ec29a77d52706de917727cdbea7fe4409442039b226cec77bf03a773518b2c852df73075380346e1b8d16c2fe0056070377af2bf86525543c0bb0ffa613146bcf6fb8abf8fb9626bf4bcd6aafc6cace0efd8fe7a3f155200cc03ffcb2cc4ca755aeacbe7f1c8a91b9a6ca9e414adfa9156b9984b2aee929182060df8d7688bc9dc9fb9d0215fa52637e5127e10bae7e6ed7a20b55acee0d715f3bc8e2c9b2bbdf212d6614a09c06bfc2d8254617192c2f2d6d2430666922b8f2d066371b0e4086343a37a9b927d8845176bbef48ea11754e416efa07401674bcf1a6e433d46f419", + "6daed51a36eeeb09e39b59e0b374248d1ab05904ea30042a2b169698d641811aa6da9da3f4c8691ce43c60428e6bb7111e0281a58831652752b0d6de72ff56a2bf63f11bed606d08f37ecc8c719e5d1214efa944f67792f1f3283cf2760f83fc154b5bc89272d671d7e22c68eabdc2fdb3a3009d803d2030fece70e67442851b3be5c2aa6c84389b3ae78eab0b79ebc56417c4dae81322995c64d055", + "0de273df7ec6f0b0df053fbf358dc4532d920fc1bc3c485f1857e8f14e6c89104fa594d1251a00b73d3919bcf2896f99c5269e598f0606be19e41c8f4f3743f45ff0a7d4d8ec9b72e58bdcc68ac55c0d", + "283c9194345e9e8175a69412c5fb17327c4f255bf32809318f32c0cd0c6e7ecec3503d76747dadcb62d09047c5f73ac3684c0fcad5fdfe63fcc76bad3c876cec1344242e73288f64835085ecb139f1c10ca192ad9afab9964e13179135a74039cc684856f78b3f5397b5f8f9aef5f500d86d741962fc5e3a8f31b0975912d65940e6919f57d83acc856a64f9bf6a35ca77a6b16f99b6efa52de0d3c8" + }, + { /* i=6794 cDividendBits=3308 cDivisorBits=1237 */ + "0754ce1369a2b053cd0c59c0c0452b3a2e447eac4a230b36922a26ad428c9ec3c9b01abfb351f160184aa848457575674567739d394abb327564b9bc5d9627d5b52ce3b806bd0f5bc71f3ceb385ab5a68b587763f3142bd7afce2c9264446751e4013ea86dd4074c37f10f198f82496b784831f70c1898ff54026dc930c8cecd6f02cb47bc89b60fe02270a98a5bdf692a9b896e6227dddbd9e81ee68824d21891270ae65ec1e12cbf3530ecfa30716a5c0a6bf1997c4777a6352f912068b0c31e80c4db73bca2eea4bb2ce14a1bfca55f1d9c60ff3c1c2331e61cd36203710165265ac4826df25cae99284eb93b1508337293ad86fdf201541cd8e474ab88bf299344f59acf153c1bb71c5493e6190d7747966c9ad9a337cb38ee2088e1bd646843205a78a760fd6b1459ed00df5badc0dbd5bc999da1ea1f0200cf10e14f2ad8ccfa886c0a9e133ca500c31d325da77e8825ea8c62ac466c1455553b27dd79c97a91caceb23e0ba468e5362c7a8ec902cce1d6672a4611a424accfbfed602af0680bc2759f720ddb5edc36eaff9ce3386e227d7de2617776f0640ceccf", + "1bd22e136764d6be747bbe5898a2806e9128bd1493547ceb17d7bfb353c1b4db8c8598b6bf44300aab2894431377428b8a7561d4d39fef9a63ff8530733c62b5a2168cd519affbe9f974aaf4d77bccaeaf3fe299b98a2beebc1cf2b82a3d13db0df354b742f359683f17c88e01c4c61b8b778784bf1d69671d6dbd5deb5ecfbf9d4f461a7b5b547caa599ae2fc8f0d1bb9dbfdcd39d8319f5b0294", + "4375c0d989eed38199e584254fe6f9fd79ac65eb69c8eae10ec0a6f5863979f914baf4859702d56ec0953ad0f3d67be7b2a18f1f51a53d62141246ded3a6f05967d87399ee2b0c9965f45604cb826ae87397c83ea9d790a736a28f9ec7c80a7da62115e052fc748f2b3020c13ff4db3b6800119d6f5d755afbaef947b60ad02e4c436ae7c9a4a3d46351e006a60f7483440643d6a519e88fffe9ce411007fa6088ef6824fd8612ca8fdf5b70ad3517f15ed545b29bea770bfd82540d49e52d206b8b392dccbff5b1372e0b881053977c355c02a7d0dc9226204852eb0ce911fe6b2145f4a7fc1916326dbc6a069dbcb4b1f7f14f827d6d91b2600c6da06366a4fff85d", + "0593a50362330e70509a6e4436c6cbbd24d2d9b254df86b0eec147d90a3da30916a414c57554cfcd2fe0a969f3c9871c305fef261d8afe10be4ee1524f639a5170996a25e77ba30fac8ed7174d9e2b4d4d6ae96f5a86172d8e5d66c4d2500f8158214965c5935e5808ea295a930ff2276a6d3df6bc4655087dd11ee9c3ca71a929db3754687477dae66f0a1ae3b735ade9ec7055bd8e42f4119d0b" + }, + { /* i=6795 cDividendBits=1826 cDivisorBits=857 */ + "86a01bb15eeb22171ee27a88885d1c86504a7bb5453722a953bdae36f3a395e789a3df1a58ba7ec8209e71547fa6d2fd1321770c4b8e9b616863ce51b56be99708eff6643f2dae7456ec6057574252009be06af6e06bbbef715a0a1f058f93a77157fd0a88160641afc2858a343a18a316591526f31063c689946f3ddda1a87d8b7311818329d8a372e41861c3baa7ecdcd009b317d9858b2e206fe69ed9caee979e202116253406f1ec0b75f3b080d996e1ab805125ee2827be7897e06864eca2326896412cd94ed62a7a537e39fdbb82c434f3b7b22dd77b36832dd97f367a899b2563", + "0160a8e55cca226e37026c41ef0508169bad54dfe0f0dc5aa7b5589eee3b09496f5e70d5e9a84813844c38bee2cc7efdd482bcd372179c1acdfd24c5adcae24a9ff1ca27a55177a543b913a7831127075d07637eb65b61ce2f812c77c9428b2ca3fa90792cf45a63d2587edc", + "61b9ea4678d203cfcd6263c3710bd6faaf8113ce85bf4b42dc11d2312ce99b13ec02324cd7352a673ba84dcbd5dc96457654af82524bc7ce80c425a611802168d9deb0fd948a2f9be10fc459328e4e1ae842fa7abb11528da036237efd4516d516a3ec57ad75832a0d61c269ca7f34549894c614fecd40ba8b", + "010a1e81fe0484da98896510d35ae9f57e8f2afce6e2c8987a236bca61ec975bf4886693c933f7ee514547525198a14bc859e31769fe0b15b442a9787c353cf45a3604c54130030c8175bda1d26d2c42340e020dd9b75bfdc4c689a8f66b4d5916ba455d72e1197524626bef" + }, + { /* i=6796 cDividendBits=604 cDivisorBits=551 */ + "0b9f58db98e4082f6885c6bfe8c04ab98f42739397a7284b5db4a55328c4ff60687678d1dafdd39fef9eaf2a8534c2fac8cb612f3ba374775c712213580dd798236bf11952361309a7357f95", + "6d215d9c7a75ba1c703cda426320e774743f839fcf99b4ecf06e8f1c36b2364f9b97c2e50254722eecef430401c3956ed83d517c36774e52b41974a8dc3ff9a31d6c242ce2", + "1b43a01b8a64a7", + "04854d347516122b19f0a45dd8add33bc810d8b0099a5313ab699d6c550c981b077f3a3e630b4ff55b23b88b98f6a48ee60a3abe78178c95bd2f10e226402fdd1df23ff027" + }, + { /* i=6797 cDividendBits=3343 cDivisorBits=2751 */ + "38ef7c9661afb10a6b9e908fd3c046ffdf92496dd9b3a2a1dafd7a251bb14cad0dc9296caee4dfa7e8f2c7b51a184e14925f3136943dae696eadddbeeb280129c5725d2c73d7c8a1ae05825500f583afc5ddf75189bcd45e0ce076b37642725677c160be536c6f99c623d43684b92f7bb70719ff43503589317f9355eb2e8e1ab6bbb3308bf373ea7e3d77439edbe6a7c1abf9f64d84e746e5f8e3b2b4a9f8cf394d1f649e7f4a3497471b2fe39fdd91e3fe9a9a6ffed8117949378444566d4fe9f748ed645a0ad1c8690d6183d29b914121c0913e296b47bb9d4a2c0c429346d1e4b2744c3e97e989e88c9bb74e5431f318d60b734d1e7ffc7c68edee847fb3a1395598c4eaebb0c1ea82b9c378da8f4af09a5ebdef660554daf858c4d980b38e3e284a0dd7255b5985b3fc4867bd1e732019b55731adfbb82c40a57e42b1f70afb02e5e3bdc2834be5603d262a5ff22ac391102cc785c2e2d2abba7026be05c15de96ffd766bd0aaf49feb41b7740e8811355335a3ed34f7c34b8f975458ba83ecdf5dfc4e0ec37d651edc4657ae5008570af86ce40176972dd569238477022d01", + "726ffec497195d54a810360e0eb0c950ae736514f1120ab756fa4c6b5b4dbc740d2a931132a2420e2c93c5e30337bca93aa1bf7841f41013d4853bbf41dbb06fac288bd71f1b97d3ced5f2dd4d6dd7f6b92d62fb383e91cc6a7cfa7838c49b3f273ebb743c04811bc49e335d99829da278c01fa13618e604b7c85541ae2ce36503288deaf44eac8b30c31eb09d52ddbaf704e2fd30b6f099414d3390248b66f4d6a5ac449cc65ad5192bf214a7d2b24940ed1d1846f5bb53ce24bc69b8e2eb48dcffc6f2d3f474e9f961cdcfe614b00026ff6a1eab335e5e1942559c1664f3bfceed9f375193c950e5a91193ea066406ed7ac271e7c70b82d7b557177b93ad515f96856da21297097fc8304cc7b43b9cbf4f588f88c66e2d701833f78fcec60070181a534430fb1c199595340be10a53254e664fbf9339cba08224cf15de5fce81d7e42fe6e0db09fbb512dc5d12f8bd76e2bc91c6085f69", + "7f5dca7ae1bc77906980334caca3013a4b5e4c53b123387bb6c3d410e00559d33e99b14f98046adf8ae7b7a9d90a8a3a1ecdd18ca0d975e61c35f79e7d73fcaf5b2c0567ac966127cd49", + "377cd38d5ef055da212760a0cc57fccbd16cdf995f594bb21d1c5fee5fe35c4d68263d0bba45a027389e397d98838d65da6627b36188e7f6b45ec3b5b5eafb735226362a30a581875652038355c3dbce83395eb3e91d504db8bec71468968189dc94046c1be97869775618947658cde456542e18c89a247d6d9fa5bfa435cd234918165fbd4fa2e8a86529aca4d120587f3d9feaae9d7d90b6f1bdaf34432014e36f7095dad0818e59a4f0882568d82a097fc0750a77760cb9be4e4faa9e5b311452524e58570589e230f26e54a7227851f7634304a47b04e1bd3e796342646aa5e9226ef6e94c080ea48319b6ba27269e22e457c3084c2edee0c93d7e25353fa216d6c28daff021a34c3bd4702ca89c2ae430f25ff5d5de6dd29997e2b48fd19058596b55262ab1079c957f8c1525cb0465f4b6135088f07e3019484d1a458e550b1e918af2b47828dcf05247c1ec364e40d76af838e310" + }, + { /* i=6798 cDividendBits=240 cDivisorBits=220 */ + "88c0cde4dbfd46ab848cb7dcc7292acc4912b876ecef6fdfe8c25e24b24e", + "0dd05b30c537eadf3e80587c0fe1b5310fef3ee986716fdda2af41be", + "09e651", + "08534167611c6f3f8564c2b3fcde50d285087c450cafab4f1ff23130" + }, + { /* i=6799 cDividendBits=1820 cDivisorBits=970 */ + "0477f2efd0ea629fa16889c1f8917b98d979cad8bc416d3ff660610c42ab282dd13261fa55878bc3fc5780caa0dd727d5bbda27e83c1465f8abba82808a7bc62fdee72a56f4578cf78dbdb285f9436b5e53d95bbd3a3d0cbd07664f9ffea72f451b52b32c091c301ff633e1e966e87bef69eaed993a54f644409b0274b299f091d34e2409a42b5fe52beb89ff6f035381d0a4d7cb7489a55a6094fb527be9a147b505a3b5611f12d3b78e3ad863397601eac711e4a3bb21aab6d87f758af9448659735c6cfcc509eb293a6acf9b7b13a4608b4b890b998c3a55b5824241634cac4de7c2c", + "0114917b3b01392a5451cac34ddcf1026338cf49a0cc7ba5bc57a6bfa250f05759de45a3d5719fffb935929a147e9ab113ba0d69b79e8aa74333546970d56b3297e3f8291d18b6556c1aac48cada68573c1351086b66f00c1bce4e5b47acbb02c4abfc7c57aea0b7f18218051dd06078d738ef2a8936fcb43b60", + "0422dfb716e13db653b6531352243ee0b7e61dc25e0d2cb082dd04e8c7d22944b4c0968f1a65546bd1434242a3a31151dcdc7340c04a7cb5dc2cd4bb64ec8d026bb9a240daea86f9ea35c3356122304c6023c7e496100488d928c45548871fcf43f0f32b3c29827560a8cf", + "1acef477e68a09d4dda5d9e24da36b5566b18aa064be4f091922418bbf769b14f42937ee47d4f715d3ae21a27ad8592744dced026ba0a799e263b7378eee98b1e78be5074a278b60dd900a668f195ba0b77e2ad20529bdcd732150742fad995a6f7a89463f2457a34f87903e23f1f87ac104ff8205042b798c" + }, + { /* i=6800 cDividendBits=1575 cDivisorBits=1102 */ + "72e31770038cec5283f9401b942cc0a0f2555493ad13114bff47b4924c9e9f48b9ac519cd82e0bc04f06893c86c0e71132235a83236b122c3f5454052c05927cbe7f8c60796b52c2370afde88b62834bc6925c0529a9b3f238678bf5592ee603356e05b1b0e68e0f98ec717228a51415b41322129d1ddb906becf9927471c4048b4a66f3295515b0cf1518a95cb7f30af66aff1bc5035dc03d58436db8506f751b6007ff5169820530a0b986efaa38f6ecd0fe83937f9acbfc2ed745e003e6a3288816363c", + "231e423150b8d477ffbb85fe49740441bd9bc23e27a22291ccb13fa5322c30e3eed1a92e0ac4fdcba17aa84829b2a2eac9a56c0745c8ab57212ff44afa46c39709cefd7db43526d0b9e65e952aa6fbc94fa274769793e2becaeb7b6a41e97ced1cd32ed3b35380b136320fe89cebce6ea8323dbd556ca23f369e497fabd664bfdf716acfd6fc9f7b7a6a", + "03457d17a5be3f0d09fbf7dade7be6ac2ea715219b4ecda1d8fe9cedee7a668084571ab9eca56fa2916906d1c8e09fd07670c59ee764aede62ac19fa", + "1c963d97fc8d5e3c7a6901eb809bfb0754e0eba460671f75cd491846862ccade479eb9252ca14ef132abc23fc744ea6114be8f7baa6d31339db1e69d996491334ea8cabb82fff8ddb4a469f2de41b2d5338ca41dbf5bb7be0c32d936bae2b62bb801fb3cf934de3c0363878fe0c403a4acc4e4f5435340dc808ac3bab5fad2d1af2890776522e75450b8" + }, + { /* i=6801 cDividendBits=3844 cDivisorBits=2134 */ + "076a7903e1b8e7c049b0f77cc7a2bc1d897e082bde0da6856ac153de83f375b7c179e34d7e354d6ce2aa7f5ba1bf6e20f6b145c06f6c7b7a668ceb32fcc56683fc2ef36b791c553707540e35a94b8e7505f1d8366e504b5adee262a854c012330ab89e053669c8f302a73ff2274df5c790d91238424cfc185fcaefff9a05bdcf0ff6aca216813c570a436a00ebb0ad635f7565cf4e4a72c04f84b0a71f9496c546f766440c4faf249e4f40d723c503ae92b51526a4381fe5ab71a5021acec46a10757af1816674c173d44b81208282af7c40bf7f4d7f92746b4fe56745b949f83c28a02c79c56f02aef0b2ce5cb6e1988c8068f612833ed0f34da64acd8db265748a1d699b4fd4d0eb20e2bbc0168351702f24d39020a2a37516d21faa3e7805c4dfbb45b808abf2c557f8dfe3f94a311fd669c283dd6d02756db6c2ac81ce574576941ed4a946e1ac91301707f91bb032ce93b345cb8de30733be72584e0ca387c021bc5af30d8468bbdb5dbffaa3ebe2cb649a572c47794cfeec114fc92b5071ff173853d3e4b032789b6211a7ac6cdcbb06b8b54c21b46bca096224626f865ecfebbc91ba0134f120c53bc9aa7ab19512001fa17cfe09e1859868dba4fc1f8ba9c7f4df187433434dc0d52bbfce55e6406459dadd3967092d91f199ebce7436", + "2e8c411ee0741209c6939c7f00d1ad2a4d40f23f80fe0f9c22a1776ac707794e15094bccb1becf2e98e277f966017ae5e99adbad1dea79aed5c3fa870b987ac1d5a89c7b6128f7bc14c34644c2bb7f75e13531ed09ffd620e82e20d6fef978004c38566ac1bd6673c6954c7ccaf850ef38daaca18d90aa9a7f1e6c64c5ea8183d66610693bd9c9ea06dc51b3c516844b1c780ffebfbb1c8f49a78149b98dc3974e307d469ea8fc71c524085fb96cf86b54c83b288e33369059be072c32fc5df439b18eba6ad7f68dd66932e17afc31fed296c34d5ed85ea8893e981a33a1ef2e0f0d6800d4a9eb6d1cc078a2c67bd27f984537fe010520f543d298717a2d98e3dd9f149ecc91dd9bdde062", + "28c90ef366ed54d4331d1782f5654945f567710cf3967cb8cadd11ee0805e09721c323f08e4e81b53653baf5d1fdbf72c22484617375a8811f394a3b0a623bd7012c06013ddf3f9167ff7e4769621f2f2ee94e50e742985c14fdac419a0ee31875af5b8670cba423d06e018cc8d19e65336708cb99c5804d06a87a102bf78dc91cfc4edc5fee8d8434a09079eb165521c255a980b68f8ee639d334a4b47139fffd4a9bfeff6487ab0abf7b4fa179c8597cb94d821e824c60b6ac5f5d954a4ba4292be6786b2f022ca2b4fafa49f74ea927ac6f5432e0", + "18eefd6aa183746e40d072da95de6abc47a68f1385a7b5d5179dc0aa6e4fb6f79088a8b2a8c5cd2831f006835ad7b4f11e4f2914d0120deebd1986f927c581a73ce26d60a4a4b502f897809df42176bab97b44fc81e99934226361f735da33d74f0e9b9f9d6cac10fef94c01ebc315fb466e9d8f7a7c1649da1c4590a39a3d6fe56826a4bad0982b46f61cc71a070a51265a78915d379fb23d5bb8c75aed50dcc959f1da84f38dd56fd0e87d82a9b7ec800ef7eb34f84c1a9585c84e9a4366af4be8a1aa52e06ff7a81da9119349f97c6c396b190ec7a0468c20ac0f36b71f23641999fef3d3103f588f3a51170ef563088fd7d969a2261f65808af008f05de665ab92cfd4fe5015aefa76" + }, + { /* i=6802 cDividendBits=2630 cDivisorBits=1327 */ + "041668622989851001bc8dc14388ee95a32b9c385462ac1f64a1d55d7ac72a875b0d78f37cf9db4941cb949ed6962240a653350531353ff6258d9f1e36af823b891ff0a09a809177f44818afcf2e4c4bedb85ea1d76bcd862f88ecfd8b0bc8afa343f3eccf6d56504c607849f9bb224a4cfd95e3d85b7bb8f50188db8b4b16597855d3dfac6cc1778f6155c1be30f29c5f2930e5596f6a2844b682ac33c281abf6faa5e047b6192762a2f1b72c1dfcdbf13fe19c48834a66bb83c1263a471f0126131200ba4f1c5213e7a41e79c4a0f0778841b0a89ee86f4a7fe8ed6c1218cdfb6ad1bd430ec8258efb2086b9d620507c06c8acd93d21d92f0af7e705791a7830a20c49c63ece63dbe47b28bec7f8c0c02e5423c3adbc9263db0b2c6acfb3c7b4c6de615b6612689dc7121da2001140462ce8fd15dfa53e75e258fe79ca7d3673bbd84dbaecf4cafe", + "31b8974d5992fc22c69b2812bdd415f3c847086844030b871a5ad4d5479175f3a3700a4f3853892a2831cee34466d6d730ee530494bc070df6573fc0fbceb941f0ef9179e7c4b2633b58c12969d4f30efd2fc21e27e6154a2a347de03765e2ad100df352792783f1e70a093a45bd9cfbd6bbb58a74c435d3f12bc806466af0ccbc134a202c6ea6ae230d988f82d22967baa57567ce497b54ecda8cd4a193f5d4379577cfa4ee", + "150baa1d8857c224e9a0b04a6f7b4a9d051539ca757b645aad765e3b0e2d4f5c6a64ed90bc584f40916288f917e40d5d1490969552ee27e647c5e4b99ab01c5d66cb6bc262f1f5647c6945a95ef10226db9367e6211b560464691a01a67c5033b3808678ae77da0363cceca6626b2f9d6c9c5a724e532f4c93ed23a243de0227edfa95b1e072bd5497ddf9c669cb110a794dbc193180bc7768775b69f687475e0abea7", + "0df0d54d642214497e7c662570c0e4eab12efb9e1719f986489eadebf25aef127fd377534954a3956191cc6ccb0f26f5bcf95c6e521b2440233e81810a206d5d68c0bda0a420efc41bbc66a2eb1ce0c4d26ce87505cb94730ce03d4d34223aa2bf303711c7f890221f9acf80bfd123fbb5807aae5cd59b5ca0ef8f0245e162f7a9a030ae74dee0ed807deb165406687bf79514d374010b860ab8e9b5ac5cfa0def9fd2cb8fbc" + }, + { /* i=6803 cDividendBits=1710 cDivisorBits=733 */ + "28eb0a99f50f55076b4875b0db3f1faa56584994376fd0bf3ece0754c36cb0efa01b81394eeae4e701da187668a0cc08a6cb08e7688a1c71ee1b3002a8e1b38dd81b0b4ff162477009ba9f4b1c5c0cd88ccc12408d2dd653338b86dca425890c9680ec15e8326099b3e09a50b071c30220788314e87811c5266a3e5cb0af854e51437405e83fe91627d95eb82fe560b23ed3f0f0dfbfeb4ff49d87ef3b18f0a1a37b48613bdefd4e4eb520afbec1d7e79b8595581fb13ecf98bdbb5ce9f275e650ea2c8b8c0d284b733eb0f6b8dac75206f487bbebe2", + "072ec022030c9ae75028e4b234076d735b798840d43a95581d374ff602983be6a0af1267d767291441182dd9fd3118e9a67444b408f898611239e2f485188ce517e349edf225e7e10f2c80b8b93fc1e2ed4865e7ff070fb73a9313f1", + "05b2632d1a00ad9aec2807ce6760aa0b2d98e35ea355e70c18bafafd3d43ce06616ec9711b620051a09b30bb1bb13980c376ee5a6f6f0067f0729a2396eb35c92b2c4e6b7cdff7dcd5a262a57c5c867a3e390e3d551c083ffebc8f3c1639a8f55edfbee3a8e0d547f044d83e3ef36da6cc5fb4058639fe2451db5a", + "04829bfbf29345d7858faebc4d7f838d8350fa91b6c351af4a0a02a8ac28bf0789d1b6ac71e5a73d5432901991d16eead315e26df68b170908bc853a1759adbdb152ce95ee9f66174da85c55ca3328f420a55e0354aa17f8eab6be28" + }, + { /* i=6804 cDividendBits=2383 cDivisorBits=941 */ + "3e1c1f14c8cb0a982cb2558ddb684c25b08ee9a155fa985777acd36c482c9e3066dbeef1143d388e0ebf49da1249809dc293dbfc0b6125a46cf62f34e39a13b49346dc9d3b6e12ad9f16a1f886d0e6fd3d8836be3fee21ffcdbb96d1db4ad1d84041e6a827792f1b35da99a617f06da08caf5cca49c045876fb77051d9979529407e33d99ef3155671da394362ad3d150cbef861a23a29558a35b650fd8e1037f1a22c4925ae146f0661503884f1a69b75abc4cad35642263bb4b7e8856484f523e5c09dffd4e23ef3e42255904a62cb78cb2c2565e81a2c060c72eba60184752be168b430063a6045151d2200c3fbe5087eaee5aff53aef5e75d3df146daefccb5ce71b1a3e67b1090fb60d0fe3f4e25c458c22ae9540a5c5af29efb8055617fb15286952f7fbc3cb48", + "1fbc43534a23671a3cd50269096f3688f8186dfbb4d3c14f0ff10024e6c0f2a72e070047eb75b22dce59c44c4a5ea4f1b83a087a1d48b8d0a6e589314a5c1679ab2f130a6fc0e0849f74f3e53dcd1ba1baabe6a9864aea76d802505d75e21ff3c899f5c7084d5c823a2520bb575a2cef99366b05b5f2", + "01f5058647ff14442c4697051336749344cc2c8dacb749a36f0c4235232baef01429d691b870a130e4228a88a322814d9f1780452578d4b8d4af74ae71170c698121d2b62af8a4cf78bd984ae3abd9b6d87e9a325d61bd021705aecbe5359a56320c641f5d8da24cfe2ef82d55a130cc19d82a45c40ca1fd8126e1b72cbeffe8dfb0ce9bac3b3ece4f74b8cd2083561b51a9426da1a791c91398528d5570b83fda918466d21a9b79fa5ce1ec465cac558014b8480b", + "1487e729c05e75e91f1fc829cf92d3ff8ef3747a28e2746f7fb0cd432dda1f5d7aa71e4609354356369a1ad5fc59e187cdc11a7619589cd1679db389ad2747d14359c08edd9fe2b31049a91fd7f260f87db0aa407c8e62c38622b8eb49a15a08cdaf96774398de30766b7b785f3fd8b0be361968e9e2" + }, + { /* i=6805 cDividendBits=3982 cDivisorBits=2460 */ + "22f8a58d096346f36755f060defdf9bef4a874d44a19dad08e33f86b91cc83300d96763993a959f5197bcf8f10e0b62a5cc6377751bfdcce6e18ce645e6d2b2d6544e203c90328919179f504d941fe191036c371872d334c8e84a88600c97b3b50c1466caea7a13c6cc4ff4a5dd1bf7d7311f1b3abe092a2b22a2457905a8eb63aa16750561e2f8de0d8c9e85b1a053dc8cce4655cc891f569265b1d3b22e8b10f9babb9beca23db6f0aa9fc7ca200a2b8d2ec9f81b13ecf2e2d849f5d6cd8f7c4884424bc60388ad6f4c9356cab3736ae88d80b23fb5f24c922086ed39b424ef2a47ab70269b015bca7088d8e61b1ab14f3c02e195a792b500a4d9488e622cc5a741d3ecb984e22fb01abf722ce7a43b83312da6639e1f81a18e3f9f429696711bb59c025808ebff011ba047649ba031e194219f556606995caa18964d3ba0d1f5dfd9f5730144e871752eaa2ae512607ca8cee94c4c650db3ae749e86c121b59bf7cf161dd9e3ee92eeb107f1d3b422827f328ee259531edbf83c6e28032e1786b8485dfb7ae00cf3463941e1828353b6ef4fd0d6af327953eebdffec79e32a335d06ed20f0697c7dc3f41059b1caf175730fe37ab98c99c4f805792115666ddd9b8622f621cc6f9be76ff1977659a09171b00bd2765435291cba94da1dd11cb9bc4ba79a30ee5b8d5fcdc3c7bdcef9f17", + "0cb3910ae92ff215ce2ff77c59548e6c1169bdfc934227683f77c603ac57185e221764d94db68664a672a2fd748dc423921cb930f7883adf56ddb9556e1efde3e340b3e16dd958c3ae01ca5a8b72b66e7aec744c068c3a69a8de86a265cfdf8806496ccde850a89155aa2c64e872240809627c8956be782bb4f2d817938d8540d127a99a6632456793442d9077d4a0384b333d64aaed6baba523b6edc69fda6c4f7e11cee973666b917c8a2277dd73fb95a28227096ad9b8b420259dca26beb8d029bc696fe1be99c4282ee997dcccb432af178f8578596bc7dc291496ab4377812a3248632acd2dfe149e2b03496c7e86b7f2097e224546c63b6908f4eec5aa192c47c7d8467ad87b0d00c54f3bb8585ab779f7976b3121d4d32579706fe1e8357d7cd1f4893f837887e19c8c3cf66dfb53a370", + "02c0da7453b32ee7e27af5ac2952d7f976a4978a8ba073f8adae21c50a2115ca65529f7fa632509a58ac9e3b262efaee7c68f59257b1af95f138d9b2ab6f354ee56da3c1eea93faec3080d295c9d11714974b745e8e696f9d007ed21770c8c842842d84fac52ac564c23a80fe00ca35d2815e7a9ee5bc45a5fc309054c52cc0717b99ffa71fb94954b51c33bac9d6e8ae1281f9caf7075bf77e26799beea4fef1c47cba4175831a08f9128ef133359c0f42e99fe8a1a75667c2b27b870ab30", + "0991a4dc7f0b3340cadc404906373a1db0f258633c723f3a9684f8ed319e5bf563725bcbf76f8a961c7ad626c6bca6c3aee53c350d856853d9219ef5a16dc626a7f0707e19300efc863d06758256d40de824704b1ac77c679d145dae6d813ad17b4f7787bdfac304e54142f6f084bed4858951d41d088964c946ebc41946cf5847a0288d434f98428ebaddaac5ff4301fa2d4a20943f50f39422903812f6723ebd87014cd9e5c4c97d60c61d5dda42d4c549cfcd96e3afb0612dfdb67edacab0cbfe8f8ee688a3df716d8cd126ddacbbc22c45c74bece6210492ba3db51f76dc3c7bb9e6fc231e8087c5f222722f0d3c1b357504d62ce2e0a2aa0ffa01ed9b9249d4d298096250133b72940aadd6124c2fde189433082af52b564ff4d178013159bbb0efdb7966c618248839fb9ec8dbde152a17" + }, + { /* i=6806 cDividendBits=1843 cDivisorBits=438 */ + "07add053011192a5c992641883b17b9a748418cf42f246a8a5d317360cfcf5ad0c289c004dabdf13c0c8e2c6340b7a3860887b9a308055ed74a2b3ad0cf169178c975559b8e5558518248e149e79872ddccadb74e24dbaeea1daf4bc67a30b954de38e3b1af75aa8c49ee1e30246e8a0cf1b4d1cbd3f9874027dcb56a168e0e3ecf3ca68cd0e4b71d0553bf549da92fc1865e8f3a468e53c76da11e36368024a2633c6b5ad119587575c1543aa310ed856002499c3d9e13ce7176275462b31ae5a8c89eb76b51cf90d7107fe1cd978ba0f99f3e3cc98e74c3e9633bbabdf5a715c293da261f1e0", + "09db00e43b86c5abac14a34ead7cb8effdc943868516845780b11d1cdbbef97b30675c9767e3d2cd5633b1b3febed1c5a26ac50f4e2d48", + "c776c79a380d4d7ce961a2cd5b5638b1ac74ca9cfdb03e227d5759130416c6892f231d9078a4d7816855857c1a3803b9c1bd7d33477af963c169cae391649f4e470f23a5548f718c940076df3c85dbbea4c68e13574724b04684af46aa840740112c7ddabc233d4af3ab8511b1b9ecd2709662a6c0abfa5694643d43ce16d5d020adfea03236e67508a0b03fbe7ce096df67c78125d566cfd5225c7d210219e62b3bb3dab273b4528f13cab1a7470758", + "135ecdfb7221d9f29d1bcc595312f86e86c775089afdce4701dc7f492fb9be7faf9345ba4ea195bd1c960cd687a90dd8b514b54d6920" + }, + { /* i=6807 cDividendBits=447 cDivisorBits=41 */ + "04579742829598cce15d3807ca26d6e0735608a0acaa7070ed3f2f10c6252377e9dc0df5fce6ce297084a0e6b8502a4ccc2cf0925e2122c1", + "016b8ed903fa", + "030eba8878523c4039f8aba1139a25902a049ebb3181029e7d02749778ba30d1395e234155cabfabb0c552ce7bdf6382928e35", + "9a326aa3ff" + }, + { /* i=6808 cDividendBits=1879 cDivisorBits=751 */ + "283a02c34dfc5414f70a1240ad1f172732f115ad50889437d70968a367a45ba659c93ffabacc0b26654848a6a5057a03336c8f54b819be777f27f585f1900ea1fb11a4c1faf90b41df219f6e86bd22dd66e5aa4788f2152e5c5378730ff4c668779a71a896f66fc277c6f057c373f492fa2602ca009debd31833f49a86521c457c1bfebd47ff5a19c7e153d084040049969a9eb90d22c62cae4041289ba4a8d9d83faeb5ec3b1eb10c35c99b4cb0e0bfb0f680147b1a878bcfcc89c5c87bcc3b7036b2a7949bfdb28f2cf6e8521b19b04e1e22c0ef4a0a622373c02a7e04177fa43607605382a02fe79106", + "7f790c85adf69cd7baed3db5601cc643fcfa8e2341a1760b9f2d47f79ca6a576f1942d164270f65d20acbdd6f8244c6c612c8a20f60a1a0ee2dac986f58e672490a37f36e8a10d3bae288d4fc19e3ae5fdbdeba8e0eb06ee81d79a3c26aa", + "50c931d1ebda634440fd149edbc32e0752247cce61553aef95b70599b0062b8bd74b2388026de75c941d7d38b9267152158967eb9be9c6c6865fcec54acb7b4f786c4b908a3da4c237426dbe4db0b120065b1bfa1fc0dc0672520d70479e249cc1f1ee663f868945a2e1d8506d4f26f1c395b98bcdde339c507d253993706f41874db7eead3311f8f80d7f86a1", + "40abe246fa914c4ed634bdff634599ddf33c8562fc35bd04d3ece3ff72ebe70ba6b0a7ab6d4f6dbc7c52b929101ae3bfba99dee8c1c3c4e06db0cad586408490739348654403753cf66f013938d4b9b6e7a01cc122d0b08e48cee380441c" + }, + { /* i=6809 cDividendBits=1056 cDivisorBits=874 */ + "0c11eb4a67f6254ea23a3c43b2c85cb186cefa7600c6311434a1c18bed0596e25c548048282869b573bde35c1b14ef466ca0e9d051474a640336e0037e04f9ae73bea500b727e14f19e16c248540a73cbd204e07814d2eead6f57b103dcecf8508ff3a163c98a96d6a93b16d41e8b9c6be18c0d3f5ad092e7478b4be1a63d564863f0899", + "02c917f29fa7aebd80c1e629fd74daa60a327468cfef9c15aea828840225c623077733792dc14c7292606ece66b3408331ced5c20e7361980dd5b01df3281f154bd91ebfa20bf187014771f7d986fb12c9a2d6ce030d6aec83dd72c93d9610af13ec5623407a6f2c5da534e0851d", + "04554747564d96b832deaaa3e57e2b6a22a89cd805c04a", + "025e54779f1732c45eeedc5fce19887a9a6bd6322d5be9339321f280ca1eb4f327f1ac0dcb9d57bde04e0be47c2ef48b5712f67cb97d838997d9e763efa1733cfc1f87c2ba6ddac1f43c96b00ae1f3ce9a108213fe7384b8dd6d2fab6c1b058dfb4eec3b88e938773d9bc7f1ce37" + }, + { /* i=6810 cDividendBits=2802 cDivisorBits=2208 */ + "42172663215879c6775c12e7392bbf4c2ce9eb3dceb03dfc7eb952ec632a81ad9579387bd99d22dcc60009eab652c61b2002491bcd8fa4e78d30c27ad2a7c2c07fbe99a3d13a14bf2ded12ccbb80df90445dac6b120fcaa5e2edee6052aab27d8928dc06c92675de306b8a70db404d6789d568e3714337140f5d1d886137a2efe3a4452697e2ca8426b834565032d2b0af1c5c1f224177d8341c8c2763b71aad3c3f1869b51a3942beb7b6d1c7d7079ba4b27134ef46b2df85fa2a20665b177292b7e95a606539cc5690d172767bc2feea974bcb033e266de374d3d125c25051c5547a68934c971aec3195019cd0a99567a743a5437b3b6d31e66365d0789632aca3dba316fc2b07ff9c8fe5737fc180ca8687ae226d0b1e3dee51f851f646091ee88c0fbda86b63f9ec3a41326ab2be0d885ebd54d03a9434f0ece35c413832882dd38b41cb809e88b636c4acfc35a21dbb74422b72ae71557e4546d2ea", + "a9b2cb92ddaeb9571d2feb2ef4ee6c88ddd561e4d9c1306edbe3c44913c7c9ff284701f73267eb4ebd03d1304b3f78c92b255762b5500a0f092cb1c9a8bd6c57576fa856c2534b00437420304bbc04b1825aa40fd884607402ad1bf2fb3647b7dbd18c0b0c4c8ccbd5aa5433b1199444922e10586d2c096d679e5ed16829c60e0fc81fe7d6031521394382001988667b6342a7a1c2197809de07b527c0a4a675b45fc7434ff2f83f41e53cb8ce50f344f0dd81e254eb9365a200a7c316ddd62f4438b7864dd6039a9b0ec70138af9483b09f5046ad4be4a3454066b952f2c4f6d18bea8aec7efcee7c44e51096f234b24a4461db9b8504c3d7ffb59b137a2432685d7bd24b6f8c4730a555773ffd4e4c0739c4fa", + "63b3873be5da226d556ae4feea04ab517e7e49924001dd0c1b9c2042cf734d151b33461e4149ad50e7db25366340203a5070cf94ed3909c4d72656ea0b64b2f1bfbc31fa6695a796bee2", + "09586de4d7db5eb32369cd9079d32c298b58bc371e0454723acb2b7280b271dd282828420096f035f82711f2d720079eb202f9f919689d5d6bbed38d13d4e0f411a0fc6d01dd88bc63c9f4fa6e5403026fe66c83ef6967dc7d90834ebfa298d8647f3a5524cda2a8e271c91f493e9ec2f6d9db66ad90ee2c1b9331de075fff744fb04754ea094e3d85a67e09715427a1f91e8838c8c1ab3ca106cdd27b208d20cdb4e9ac37b4a6d60fe0c8b5c2f0804689d928ed8d0bcdfb3fb84d48bb8ffc46973b3f60429e484fa81252272995743afd81fb44d3f3b37d24084d852ac4460c3ab573d6175a016b8abf4a6ec9b6dc47dde093711c1dbbb3eb3bc48af602d5f95cadfd86d207f8ab1341525748339c2883996236" + }, + { /* i=6811 cDividendBits=979 cDivisorBits=666 */ + "055ec19c9b8f5be33b332d9928fa3217f6471ceef8d4b66d7c31f55a0d745a678cc6827e2825c0dcba4cdad10d655820fdadcd29a8bed502690e07a157c5159993e409d7c202ed6e6df4c88a6e9ffb9cc27221f45a1e8aacef2b39bf437e9c38771469c8c8a040b3ff9d1c8849c2a1f8207b5a5c411e9140276af9", + "01cb14ee72334603bf556cd541922b4529bc84698e9d905142a3cdd06b86baaf7412a8ab1041000eeeb7d071ab515fa60531e29195087067f0b54d407aebe5b61ccc3cf2594940edd7094499f9c2f1eae51aefa9", + "02fe9caf4ec2991b7dd706ce0391c4a7f45863afe4786cd1e7aa08a0ae15c9b1bb88fdf9b3b7e928", + "01a479f04dab4a9e7f1c6aa928b3a124b5c8291c8221b45a6ddb4e4dc0a60f74c20f40aa9d88b4ea8ecf3bb14aae7ac979eab5c636dee8b0fd45de596945aa2f86ffff43080c194375098b597fabcb2273022791" + }, + { /* i=6812 cDividendBits=1842 cDivisorBits=666 */ + "0298f0136168212631e10913ea99cd41842437812658a7b153111726d28d95f6c23cdbac7a104f84adaf1f0f670b9f0fabe287fc90d7ad6361d84f5d98e37bcf6b3692ebdb10362cfd1f6b935e2823021100efbe0c565807e5973daa82d08699c9f6c5a7d17bccb36383764ee4e7c8afbe1b6d05e4fe727068a23b14a146771898688a27c03a57dabf53ba03f0df1d44ff5e995a8aaa7bcce558f45e00c7103d9749533cad8d58c50af0d769a8838179f13898e8c8a9b32afff74fb60a1d85a4b1ae672677092dff02843c86e69edf994987be9aa8067e8d69995dab29b75bac77537b2514d06f", + "49451b096065bcb0503ddecf96adec3cb584069ab4997eb71a6b9c2b7a14ed6882ec70e67fe65deb5c864e46af44d2c890f520df1cd13dd4f0c897c3f19d8bafb29bded3f107b82d6d9f8d33548095c3fa03fc", + "09133ee0afc476dfc1fac93c702a65521fed660bacff18b68c9f2343d9a8cfd0568143e27780c0a70b795fb4e7b08cbdf7ed0933d687b8a7f874f8895f94303643b5ad823ee2d91e6661def9ebf99e329d14f6e5e1117868194113661f30d4700a7b73191fef89d9c3d477657e963978f1e2303cc1fcc7f33a2452c1ceda6b8a8017c4ebe664be682ac0421b8ce62994bf822415", + "157a68770b1ecdffe5e623c80d813bb438759cea382dd9c9ec83f11ffd38900d7c57aabe6b154afe511b2775f8ed1195f5c30394202a099efc7a982d3fb8b2f859f74b34c533350f29255bcf990003df0b0cc3" + }, + { /* i=6813 cDividendBits=1128 cDivisorBits=687 */ + "e5a2d930154a95672844d200a900ed025dce636ab58a7dd3bf2f03f6fe0dc673539c9364130fcf049998e630c0891231afe8d00d961d6fadf97fc76807c4be8117d26133c6bbcdc8ef27ccd700328098d184ace4d73c3e0b046fea78baf9c73dd4ecda7df1927a066e55cd39cac98f4b208753eb9190efebca29f3ba957e9f4cf7166568f02ec1b944a1d876ca", + "3c614ca53eae13088f327b2fa1f4fa4e7e479e2ad2a6bab95e4d74c70f90e7da89e91b552284063c3fdac6f46c45e5a10ba1b803aea14edaf4511136341559d75d9905ca8150ac09464d5804b5ecefbfbfff2eee6485", + "03cd9d0519f0793bc6b061a244f3e57375219790c2d87f6cff0ad1b4e6139cdd1026d909181d89346ae81f4934298e4c6fba448ee6fc2551", + "3a5a48b99b4c67dd6b6877c2c0eb3fea3d3dea9c90cbefb37b5bae9fc145159a02c1e7c6c17bee7c08fcd995b7aa60e48cead037ca96737c3a8bf7a28245add4cfee912cac2680c390b24207f6c74a68a0fde2f76fb5" + }, + { /* i=6814 cDividendBits=4089 cDivisorBits=2209 */ + "01f31dc3a68c48f1a016469ea428633b7760d6ec7e0d16dff4913603cccfe162baa1ade214c9853f24fe496388aa0d8cde9d07597d072dd7abd00b140c77bbc0d48b895300b8fddf560e7eae14ec8d92f55af34223788fb14fdc80ce134a7482bc8fb1600246cfcfb52c6b3aca10eb3c07b6aaa3dacd4e9c40c51621e9ade38c46cf0730382e389177e110f5054dc8858ed6c1408286a30de24b706bc9d7d70c1aaaa578a1c87e3d1b945fe4d5059db2556c8410ded5fde30ee43aba49b66a606743b65dc7f48a1ec1c6e5b778dd9f8937f2de304d2a914fcdbbe3508826d427cec07c02e7921d19bd74094a170a7dd15b63a70d6e1c19624aec8529e62ae7ad6cbe7b4b06e75e7009b1d139f71543320ff03c20dfc1c009ee1a1aaaa7c01bbc4e97dba5509d82591adc17cd9161032b18f7b71f5c87c79c2cfee01c0b39cad59d5c425435ea2242fff69bc535b43986db1e52a4928914ba07cf7aff18f5caff7677090fbccf51ffbda42259f0ea0ce03024c7adfdaa501ecc65241681209bf9db8b3b552c93b23a8437aec538110b07a06e3207407c2d5b382d5789f72ad80cb3d24aa77a8c8e48a9e8e055f78fb696fcdc6190a6c4e9ea89fb87f11df9574935206ed79cc6af28a840018d8f3450eba24d07fc648cde6925c1542045f34bc3b3e4dd1d1409451d4a847b232e5ee47ff2be6dfc20886b457e391edf6fc0c8c5", + "0180dbb68fdf5d6e4e1515f7664778ca69bdf5959cc5986faca51fbacdaf54ed4f45f0f9b22eef28704d29247b510a902310a9ba9da1414aa3bdc19bec4028c234ef07e0bebbbe3d4cddf98f6caa1524f6c44a93d199b8131b563e0eacf3dd321c82a319bc80ddd356b09a1256df5429a31308816562325baaebb842801e5db27d0ad6f0b4cfb216f8c5c81fbacfc952c20da33e488e0cfc7937d59d47d9e478fe28c9512644c4f4d80e6c772f7748f9b33418a66aa00bca79aa25c265e105af7e0673753e3758486d6bc48b0939012dfc7aad5753e8b82a8f5472147b8553b390054e1ce09757a6b9ea375735c9ea7206850d14c135ff21e787834a4f657fff7a6557abaf15c4b382199095a31aca9a39c80712be", + "014c008c47b62616b147ccb2e397dac5760e1b3c3d0dfa4d647ed4caf22e61f2d423f431a6e7e7e8ba35fff11331272325d0bc7027af79831454f5448554f6bfed15db7256fb3f645399b9300d5e30804a85a63e622c855b6e1fb8b34a1a4342e56da7ad65f13833eb7185f873d82f6f5e1fcc65a08fd8f019c8b9c25c3bb4af29d3b90cb6109523f2003c5dfa529bfd1847cc82830ea3c6505f1cce96a4ec8bc8ad77c31f26098f2df82aeba8fdd5a183a70e8bf49ed9ec4e6ed4613e22e76ff0eb1c17f6f24c6ea5a8eaca60223ee75f90b6a05ee9f0e430e4c4f062809d867791c12d4a1f9c858ede133a", + "42d47a504f79b2b48281302789b7b94d0db248cb066747c66baf46003f93994ae59156bed610b09207a214af66f964d8acd3311f34f4ddd297ce9c15284266981d1c83138016e1213d31555dcfc389ac7ca33e02d324bb374a4ec046bfe026de393ffd07630f751c2d574f5843c4f5037c15d3c729a8ea95bef42f5d914772f98fb46a94366a29d27aa3a7700805bbb4a01600defd1222b06a406ecde7516c5e0bb1b51b1a001f5a1da8dcb711f36b39461662c19315fa02a713b48fa0f604e54d4d8ab7bccbdabebc6d91f44679f31c292225f27ea1e48df205852fd38e960a6863707545081ab8d6dcd7cfca5b5a1fadfbde7d21935826fa37ca0f4503dd9a5bc60a111e4433eb2e51a8812bb5fcb1f2fe6fb9" + }, + { /* i=6815 cDividendBits=1500 cDivisorBits=786 */ + "08888579df5e1350bf39d16cb0298625bc2a9d9e232845f2b2ca906985b4bf85cd366229c2422544b6195aff231b817ea1302203d0408354e7c3a03707cf7659577e8bf8a3c82bb88e383a19dd1ffbc89deca19083d95a43cbb65e44204c83e98ec934b8af15dfa86385cb8d1d58c46b6060f9c5a5b4884ee98560d4deaa09c6f015ebe5b90875bc3ff2c2f92d0d53a7a17eca42151987fa3263983f8fbb9af5a369e92e1a0256e5bd22bec40828b834120c8e83d2f89c27a78f6d21", + "02a780dc4e35663cfe7de30149f9413ba52bebece514d6e1098a97e3378c700d5cb526e1169efae428b9eb64963cd4e3b59476a1b9852d7f9d66b4081185d54252fe7446e671dd8baaa52ed7b6ea29016e0bbe38edeb70336581d53f3e39c2a54afb94", + "03370256e265bb192ddde8972090c6047cb08f45630a467eb00663fd7b2030dfe6825c78545b74c03995309c35a147739439a9b6b2bf8a8f9413d05993879fa261253936041de7560efcc0faab8049e954760d6e8d5ea2d79f36", + "0140b9384b93e08ddffbf55e8bac5bb452da3420e1df952da3361cb12761d411e65f914853f8a043cb1dfeafcd7163f4a6c2b2a7ee1f1ecd192f8a0658bd862401b01fa41f510abe815d911cb1a88f9e70d948105e8b75076075b78b355eea46316fe9" + }, + { /* i=6816 cDividendBits=3409 cDivisorBits=690 */ + "018888a960d85b0e95def6aa9d04bc11087bb3d984c089270cae1e9570fdcf173ad1a66c16676a4b21e767abe6fe9e129d0df17bf3598b7089017c890ae5c357c0965079ed49be6feef9255bfdcf0bb2b1ba93c3cd937149941591762838c75df7e0e512e1c4bf98857e654b62300d0b725b2808e731a344dea9cc36934da48d3ae20052b122a5b7b3a5ed6719e7d4546ff1c5ff8dedd990d31c566593f5a89cbb61e541a9e1f734c79eacff43d23493b37aef15e9849b5441e89a4a004ca7fd732c439976dc132c8cac0b501835afdddde09f181b88f190ad1f8d2a49d9f5c6c421ab8dbd5314eebfce238fb2b00ef9fd05525b53a1a5edb17e80574fd4f3192d48643562b20a76e7fc5627216452b9d64d3ada600a7530935fb0a9c5349f9ee4f79fc39088f342dc637c8a28f68e23709631a134c7b43378da4281b1658a1bdd231905443c4e30aae0f93954689058140109fd305c0193954b21cf14b5de48d43d4375bbb5de828c8e779dfe152bc0dcad7f8fdf508c57653efdb841e45cfb5dfac9f8668a1691b4d6de7bed2b902dda055eb1f7317fc5e9b49321b7d8759562fb85cc482cc2e97e0530", + "d9879e00af25abc1a4a37706ec3df930503076f7de1f389fc0b860524e814df854de42c9eb4b08ab451149d32cc8eca20721f9343ddc1e28e31db43afb72f4f67ed58d7132a9330f606e59dcf04a239b656df55b009e", + "01cdf421a563791c6fb92ffca482257f7d190abf10e93b36c38a0f5ee8d3e8d41e38008d0027a9369bbb0a25dd061c4d46a0c6c1753041b0306cb25badf8c4232868b527856dd52fcc3187517c742d9f438a0c4432e079c9256be327a8ef7453bf1622d34c8f414b22d680df387e12fef3c8761f6ed91899b4dff607c476c098fa8668ce1137f2172e11463bb280022274fc9567d758113fc1962b0b56a504fa2ae644517e8fb93e078fa96e15946e29f0617665ebca54562e7eae0ab572d02c535dfac74b38247741f014d5e8706d5adf6021f6d4ca396ca267dfc20514a7cf32b7a30df36bfe6e69d78ecb9bdd9ff6d43d7edcb0cece256d17a3bec620e825d11f08aae58d9b323868141f26b5306919d460c50e34d0f14a0d95485b598164bdabcd439a59254e8240f40ac959bf6f9597d0c6f4534d6dda24bfed54d7fae4df26339b0e1a75b729f3ab25b3a399e905a93438b0", + "cba991c18024cf73a74d3745b6d89e9bbc73fb0d08e083325199014d897e67b3e6e4b4a0e787614b8bcb1d9e060c4805f1f8f2f2b3acaff28176864aaa306b571a0cd7c3b1f3686dc717dbcfd6858b2ea883e4b30890" + }, + { /* i=6817 cDividendBits=3537 cDivisorBits=797 */ + "01032f8636a29e6a923b635a2c1a8a07533e43700dc637aaff2f7e984eb8cd85f3b754d2a4d2e5ec81e760577400b56e870c067c7bb1ce044c05285e92a2569cd3dc9f67a5bb299d0be41f388390f845fddba6324e0b93c655d660419a8451fbe2080560a10ba3289ed13235150a0c5218b5c5bf0d1e830d6e947e8d0beadf037e406c468581f3900d634ee7f3336dcd137c95ad88351dc4d0e2ccad6eab60a44cbd0f1304d19be810620fd345db3f4779535df4a803b4804b7b5b9c5ea2f2471a64a9db2dfd9eb9edfef15674e28a0f8836dad53069b14e97480d912fedf3255f2da20fd08e271a2fbf90123b838e7404bd77097400bef2991d69abb241b303eeca8f578e293e77f0ed2c8c3fecaf75ea51d9c30b0c717166baea418fdd4c243204db3a61d072a6a2acc690e02ed76d25d720264ed38176d68754c58cffacc96d6ae331b2ade7c2b543d231c1e8abd9996789d423017603b15c03faf802c654e3742158b548f163dff83a88120c86ec139e520a23afa63759437b1f6721011ad0863969b9c958188aa8f171ba8717df91496eee92c905b1c7258e4ea7208e29dfa4408031a18d01734f30a93b15fd5e971cef3b9b55abe6a1fb3a", + "03fe2eff998202170abc3507287844683d4400fa869488ad1aeb3e0b42f7bc5364d04da4c695527242dd0d7aaa0b765789d6f9d89ef5c26f28ad70cc35d2df3900b6d0fe6f19b491fbfc5d4ac3b318d91a32aa785289ec95bb3af5e6fe3073ae72ad463d", + "40e95b8bfa332babaf274a6f1f735a53acef4c487f600314bddf7be4c8f9e88c9add256f103409afa2edd7e2285c5c5ed1f84a7072f636ec04a9e3c9cd908ba98093e6392add210e0e7331b5c6a6a6f2740d78cf71a59627021e84fffa063d2ae07b2af7475db08c04549e79d5318d7f49df1ff5383ef3dddaa0b50ecbbfb096bdf7010db39ae2f0f00c17a6666cbc0d8e482fa3df7a49d7c2d39eef44b9f8d038f8d33fedf38d24652f27a0689141b2e65a2cfd78488d7a065bb65e249df613ceb1503dbed9467d651237789d50c4642548f36c392b202af185c7291d1b0aba9d9ee54f1dd1de077ce108f26a12eef5f43da74b2cf4496fda100edce0c034b3bb25b1033b2eb57a0429175d68b9134b12422acadbf0a0b90e33d64c9b9d3240e9de15452a3a3391659a81d9227aec4a3e3f8268bdad44bf94fde3c68dd2652e9584fe7d6bcd90915eb5a518255e903bd0513e40d6f525", + "6877e79ec01937380cfb1fd70e3001fae860cc7ccc7a094b26ee09e2ba34812f24faebc38928f5217abe307c239a6d84e9f7db14aad664241ac1c8588e9c4e66a5784bab3a3149646b960414c2cf9ed7c9b9ede31ea8d27c82ad0a15a52b8788607369" + }, + { /* i=6818 cDividendBits=645 cDivisorBits=138 */ + "17a9a3b07f479f652892a6ec2f691f49195edcb57f760d1e910b9bafffbce8a23f560fe4a6a6cb1f9ad6ad5d932cd100ec2270554722986b6f6354cfb3e379425acbc12c855f0b69bb04e2f72bf0f23152", + "035615b620adecb955b808d749c6323bc362", + "0717b15f15c34be4c06df69d12e40515ab8a6314dcd441152692c4df8396caf56d084566fe445f2367c8bfa7b424b000428c1c2fe235a7101bc7dc72c6b6cd7f", + "029a95687cebf2ab0c9e8c8c7e60762ac9b4" + }, + { /* i=6819 cDividendBits=942 cDivisorBits=822 */ + "0978eb2a00499df65c9529f743701c03056e858a6d152a384bb1a77c4019fb1cd91c2238c3f8cd07816b75da6114938bc1a5b9f9219937eb07281fc807f00f3accbc4d570d6391c6d7c9cb3977a7ec5abd2778df51c1c74ece34a2bb61bc7da8762b8b01c25e0cc23ad0e8bc254ca4d2a177f5e6cf31", + "209bb33f16d5565a753d3b1828a54662ba700e9f99c7c457b48db3796d7282f30ba8494bb133992fde2479067e949f440ae5ff4424e74772d5f900047bc2511964888bf4334c91cb4ccdeaae7e3a8a897ef9725782f8619790875aa9ff092fc5df8c619ddefef4", + "4a5d83cbe837fa64bf3f5ce0724659", + "104cc61851b4cb4bee437f3645b218de27fde218b10f3c217ff83e61d4c852e8d54312cdc3a55f56af020b109792426684d6b2f04a5870a972aaab885c67c8106684af96af23e90c33e1c77618c0bfcdc3e155cf5699137a25715992176705a72f0a4a1101745d" + }, + { /* i=6820 cDividendBits=806 cDivisorBits=345 */ + "0e91907829d5147553fac517c71217a4faf0e2c942b3e5d93e493dc0b16588f350f97c842d7ee1006bcf788bccd9238b1bf7b95a1ce02e32b033e581140e3526dcde01265c3890d7cc81e42d552a8a87888fbc04d9fdcafe01dd128c10ca9cff33988aa4a1", + "ff8cc5d24ad797cba1b8549142034869c8a608a919a2288ac6840f2c9f373a823554e37857acc96031c3f9", + "0e9822209143944af00e3d955662f2103bcf2ca7b787802c705570061b4dd69321619511505e2f3cb8db7d95b5d3233966a49afdefd8902fb6d8", + "bbbc4b94aaee3888b923f657b6dec04367aa218d6ea49b0aee92da914181391fb13dfcd5af927002834489" + }, + { /* i=6821 cDividendBits=2874 cDivisorBits=2684 */ + "033a7c1d55efcad92ac5810a46dd6aab9051b4ac564c8a34a07c2abba36e3050eed95a4a4d7736f3c68ea54f4ef88a8f7f58b5cca9aa08c0757dccaab97b7b5363ff6e4fa066006e858d3e7e9c3fc534a23995bb650dbc7d4139c0099e153b5b05cda6262f2329c68d95c392a48ceb4ff4e5514390e4d3182827784cde41f4b637df52e5886f1342c64c0cfa3db2cdbc2ed04a0b354f7995674c5dcc641d32c9a7be8ce1cfcf261f8bbfa983a709142acab892ebbc18bc3be9f8857806af7678eee44992025584662a09ec497a9abe99d1a1e77d55a92fe21d3fa33f71d4244635a8e805727790649032a718e5a9e5d82511e7f5413ca01cdcd853a095cb2a97e2eb22214d968574dea7b5de1390a825ed594d7eca79f3eb01517866f34f8d1c596d7505f5559a01310491e5264a5cd824154cd13d762e96e17424022a2052d0bb19dc87bd25cb0c8c0e996eac4f507e902c3bb15c3c92122b2afa35c5f1b56e6610ea85b8e98f72", + "0b3e452c5d9947844e0a6ddfcbc20d91c60067553aafec1e2e865a2745417c41e95f170650906df60729279efc41dac4ef86a45dc6861d66bbaff6e1d5f2bccafd90ce53cdae2369901a102a2db79952fd899876ac6a6079636277b769413e3bdfd94c43da198408f7d5e6aff8b3a3e9cca2fc6f0e8ccf97de61bdb855acbe84464b849174af650bf72277b10ee5e7bcbdba9719ecc60f1ba6ce757c5b7c0707b149726611d24034291c7cea54bd600b77d3a9917ccee3e113f6b865c744aaa4e15fc424654653b968df23ed1be6e6b9f13f10ccd2b9709ece625448112869388991f5d074655b63c98f69be8768531ffc359137239b21e8daf0fec3d4e3b7f32e9de6c46086a4c2924cebed4084fce07671d66c18530a410cd5a078ce70ace79644fd6ee2fbbda066ac4828cf248f1def43ee70f7d1975585e423606321e2964f9090e8a2b111f342a393b0203af65f", + "49826c8f27dd17fcd7966b17ed0d8b298c753e857611af9c", + "03403be107ba4fb98cafe50042b5c1d90db01ec650aa87c0be922d11a6f414d0f316e8a9a870b3c97eb6147d75b6724d34f76cd2899dbe0930f5ba64db42c7b58ff3ed54799a7b06e2f735bdbafb1eb45e7af3fd2ef7611b7c802d9ac9d88362a9866160e0bb35890dbe4d628054cc1509191e0ab59ed03258105430d2a0133bf4f08b824de95cac9313366a25c2d79948fae023f7864967956c6d421e4c9ec28cc554c19c393a69ecb89be8ef4c1b6f2e6bf595abaffcebe83012989ab0f3a446d86ea0cbf291b775d931ace2d955b30f62a6c954ac90431ec36c96feba6ccb71359730cdb87057077b4c959a2a72c7091deffcf008d398d7a94cac0e78eb30b16fe5fd062b60dfcdff23d75bea16d5cf145702328628a8d7fe1d8d143912fbd6b532fb72cf594429a9e778cc81a6fba110fdba5bc1ff13a9a4e7415882e23ca281b8d493fd417f67283254a0417c8e" + }, + { /* i=6822 cDividendBits=3156 cDivisorBits=772 */ + "0608e810bf7a160ac51c9b9698b873767472176eff724888052654b35af5f54fd220ddfe699e13b48388d04ed451b2316bfc81cf21f0891a3e1715df2fe4c24c3d5d48c6b6072b537c85e79da5872dd239239d37e20965f5097cd077c907f87cb9b0f6401aa79bfb9850a97a6bc53c97f89c7e1fa294432d9c7efddfc8fcda22941429028369376bbffd7e491b882277d43904579973f1d941c99d09d3b13390020324ae368435f0d82fc3455296e196a4bc34034a3d13475c2749d9cca4b69568f58ab66d44c312f0778529cc59c5d9b8ab834cc03bdf37d73049ab87979a09a2949978a4e138d06e6eeb98bd6d6be0f256982ebd43946463ecebf2a91b5539f476117c1290c1cbbf2737a3a88ca974bebc59023b0c7fde691c823bac630affa3fcea06aa3d0ba3a9a03914fd7ef3d84e877a0f75411f9a97f21253db3e1bb1d49362c1380b2581eec53c3561a4f5e9f440216cd60cc0ea01f2772eef2ffac956ae5446c7a4165b7dd4b5fd28e4b7ff7d190f7448e6bb3d5239b3a0ff04a33692806973e329b75c7e3549", + "0ab04c761a0776ff0428aa33b7d68540a2e35e747e4f2e24e24e860418aa7745545dd975307e58342090abaa63925c27c6b8ea99e11d0c0f5fbec04ed84254862e2b8d7624f309b5419d7a189440d4a1cc00026d28cbe756b67da0f7505eadb4e6", + "908970c5fbcdd049bfa574afa95e9e35cd5b16d2c0e5117609f0031cecf5574c9b134861e5793f5d9ba8b88179e4c14604f43dbea7624368ab54da253f0321d7cb6179aa0f6713661b992102f6d4cc2c41b1163a2aafac6e6ee3dd65e571c1d83729b9ef65b427ec8b1949af7cc976f9e9ff3fbb6ff39f37f48b9e434754e5adb0e41e11ad176c3a8e36ea5e1e2bf188de646c2ce245d8ef838d2f5bc273902f863ad00b472bb3158cc4a12027e230317943c940bb08a823e9615d4a288aed62c3f14e458c79a8919f6ed92408660d824a963e85b315a569e86c3d8f6b950f1b3a78922fb6fed871e60a9aa5b29019557d9bae796c9fd1e40634dab50113373471888472bb296e8f993562cbcd7635352d044f79d77ab575c11e3efeb408ad786fb4c72d7bcce5de4c42", + "68bc6ea4730786a4f9a3a833267ddf9ba7d9f3894aa45e1a791d06eb4c92864cfecf9460761afb5c7d5effa9f6fabc3675dbbb45051b9140e4f52f8e00dfdd238cbdaaa0b1675fb45adb3ed19659e73d5c8c21a80358bfd76bcf6426c48d49fd" + }, + { /* i=6823 cDividendBits=2227 cDivisorBits=2100 */ + "0788f8fd523734c2c96d14e0e900d279dae8d8b2aa1c8e0f1c77293927472c67755b7351cbc09be446474737e0a70f57b40d5d836096dba0e62745dc21501f5aa44b06bf9efa4097091329e0d5d93b6296eae704c5a7eeab66bda43791a10d49edfd28a6f89e6317e9ce412b63238189b76d61692d7fc21ff9fb113644f5483a74cfbb3ce70fe4cf00df18b76e19c3b5edf8e474c15a3ed4a5ded13ebdb57a3051d536ac8c08eee8392bd25e2f12ab0a9930b7a43e651e9e8d7aab76441aea5deb08851dd4dc60f59641713b997774075fbbd7e84d97c600cdd261279beb83d7939110a9e8d8052c6a353a9839cced71a8c3f680500216c1871a6c569b24fe52caf6febbd280b90ef0186594d45e65cdf228f7f085aaac", + "0825b067c4e92f576318efc6cfcf0c7cf2728780c0d7bb0313b03249b1abffd16966c9b9401c4291fa3dd138d76ed9ffe9731e0c19aae314588bdc1ff5010413f354bc4e58125f7e651e40fe2948cff8c801a06e0fb5cd5cbc881dead67f37adc935788c3c4ebcaa4f6a4674bd2c951be37f6bffd3c2231def584a6a249a76720b64c1b45790e5dfd8e860a32a17d931bf9f2fb172bdf67d5f945fd5cd9e8e05d1a7a0a5fbef18af48e537397b8b21b42b69eda589b1e191506b883357dfb7a6dcda191c31e3175e8f2e8b1943e616d1b53774dfe91462f1bdbe66a9f3825b9c9711f866dcefd5381c86746b71e6a70b782373d3d9ff91cdede5838092b36c05fcb603ec1cb9c2", + "ecc3b1c3bb90858866e823d1d5ff3bd9", + "1aef8949497a9821e6412b29612ac2867be99c44fecaa0e40c454de888fb5bec34cff3b04996f945ceac2438dafead526268db93c20f8297ec3bed05ba881b866305f6216c6f57ed0fe0afd5599292b05eda3c2db4de9f51ad2245c20f23e9b974fe7f262834e385480fe41560bf5b312c2f47cd93adb31e28cd72ec0d5e14e15a291643e5b44fe7c376f3536cde3c547085ec93fe26fa65c6444b2ff069299d119ac0f0457b7289eac4da789799cf292c97d909135a10a91e9c517a977cb2588149ace385e8a8c30bf7507225799a09a9e44db5d27f2f4736fd4c054b103eaa99518a778cbdb4b70785be09108afcee34041746c866344295f5acd220b196c3b3acbb1e7f3a" + }, + { /* i=6824 cDividendBits=1889 cDivisorBits=1430 */ + "39108021e586e80c6ad1c18255773054066a3e2c088129cc3aa5fca059db80f19a4a2ebc03a4d87fe7d9009e58ad81a30b020ceb8c12e700d60860f9b450c6df9fed0c74ad88a8b5c78f23c07e7b8cddb6f7aaf28d270b4ad69c0d7f14001b76c69f90d5a29af9c9d1f7af3d5b946e5da2611df813afd753a58287d849f7f119e0d571bcec2554a358f72f9246225144d15b288fd4a5af33120a3e1c5aee7f99a019986746d1a83119f63d8cbf6c909c11bd6eaa4577a87ffa1d23ae5c088fed9cfd053f2c3db2f3469dff2277b9ee5a715a4cfeea19acc80f1ee8f49fb4545442752be88a000839c4319af8", + "26a6f67c35b226af75b35b9f5d618c6a26cdf924801dc52604f8d6f48b4a178d0eaa520ca87067c0ee7a10d1c8412d7b00c370e22a20cb591ceefa53220ff5c16f8c6314605b3ef3f31544431a82f6f0ebe26f046bf646d2b9e2d2ef52a51db19ff38d877acb3b26fe96b276d84f669d9a681846e2c3e75851cae1d1f0927cd051e2c1b3d0cc372485d778377348f48861b9d5a16ca1707a9af8e9e0c507bd676027f44d87bd6f742dc6b24635753581588dca", + "0179f28d27d2e04eb791a62d3dd57127a6afc56932a9c9b94e348a1961b760e801a4217a12be7d7bc0e0f236f933253a0e62d91e442fbe2b3a98", + "200a2c86d0e47fb7efc0f3301b0f3e4f27b1f8a5b0d1f763c9d183fe4555f2f3411f841e71bfb4a809745fa9e983e4d576af6640b13ea96ad3a510092c275fd81037de029a9ed48434de221aeb9fea704a094a13463af1e6368f23357053aad2b8d65007eaebb8c5804ef261fc4f89dc5d81d0e1bb1dcbc126dceaa4ab111b9c514b7eae3b920c21eaf2826cc56acf8fc5782b752e6b1c852795289dfaaca68098dec18ecd1d525cee0f1b3b202df52a8fa708" + }, + { /* i=6825 cDividendBits=2806 cDivisorBits=1512 */ + "15ac840f6a19928ba768127a46431bf502fb8ad6c2f2f4b11260d57c8b4b82db8951609905a64339298c0daa3c895dca5470f96f3a19d03c575c6e58175468642fe7527196638a666c9d27da56c22cf4338dd6ef303d091a21f05c698fc34bee0deb26d61fe5cef81b2d091abf03f523849592d772a90f6ef203143129524a352a362086069f0654c1bb7a2bef1f470990bfcc356887083c688743a31832d03aba46b69036e87ddba9738f4e01fa40d4eecd58ef537b2a2b702c0f6edcca3d5d360ca2c06cc0c34420687413f4f8b8cb4e888995e569ed610d692959ae756823caf5b3d8dafb4994f955bf03c0f6103cca24c88f6d526974a5c410383e57911071a7b8d3b6bd457bd78af4eb1624ad5a7b5f7110b3f4ff8c307c0835e61a8c5475ec6e1602375102603cf9ed80922c3745ae5d98e8f29e8f2dd14b5c90ff74bfd46d123c1b756956771678ac293aa202d5d9040c087a3cca9f749e52e55c25", + "7b9f34d892823f9c6011191a49580ffc4fcbfedc21de163615594e4ecdc9408516f09460b8946bc84abacb98f2dab3c7e07c46423bedb56f28bad3cb7c1f61b6efe3a081bf62e3b175b04ec0c6fd8c10464c9f7d669edb591ae2fa85911c4cf4e7a5ac475df880442c10650551c692b8b49a350229973c9a6cf2822f1f9cc7bde80a087650e992b2cf67acea667cdb0af934e04310b546d819505ef5a14d484a5ebbce094ea3808128d17cf34aea01e70db750d30d48d0d0341f6b42f9", + "2ce2092b5d72f88271f199a91509530d1ba4f190a28b59480193c8ed177f1ec2b6c8d85de51fd3bdc5b9096fa9f2144709620258e3b7142a3dbcc49a55f24606adee8df34589201543478ed8a07528cb042204893411bd9937c5b6b3593b297b3e8de47699585d2425a3870bfdb2aaca4c9667e7ee5822516651dc5b5ebcae997b832647a384859e97fc33cd8567e1107511e27a4f26a313af08e12394b2d16de542", + "52da542b6d3b92583ae75c3dd83cb292df675888904fa63c204363494a51a0525db220c036182d3dfe45e98cd3a536c92d1e93b7d686e76cffa874e3950632c4229c010ba4cd24b230c78ea765d14f4639dd25c130bcaa1758f006798f4d7edc51287b91be4890688f61bcf8853d75a0aaafaca641f82d0cb4e0912b4dce72365d22473d170e9e79b7396762651e5ccd6d08e3056fc6079c105dc785b60a67e8d2cfa4587643389990f636ae058627843c5562ed132a5baf9879505af3" + }, + { /* i=6826 cDividendBits=3239 cDivisorBits=1214 */ + "4c0646bcdf88118a3dda168ed8ac6587258ecc0c2bd4a7a7ab5c145915a5a68eace1c182c8ec278f1b69f72324cb5bed5f7e5b20e0c6e0edcff61fd9baa13a02f6edd53f66432acfe89f30a4d8048732ae014c60c52e3a89482d2f6e8cbdbc40ea2952d14301afa1b945df1d2f9fac5b63d22662b7923149d6d848f46e753b44b29b21d38048c82b4ec2387bfa70cd46a828372f3f69698c3833c2eda770a9b649990763c726a5f4be27c0e592a38cc62342a1641c3674eebcfc9cf9eafa828fb3ecaf41d3b8caf37f15d344e6799d848d76f5667dd65d17e3bd15c09a909bf227adeaa52e94158c41054c98390079861b418d2d7bb7c7a1e24bd25880b52f36d7fa3d7f9ee4c506ec6ee40c9195c1b127c9662e917d0f3ba0728d2c30cf5741ad04ee0ec8942b69d8110ee39f3a5e5fc6f228cd2e40c49e04d09af5722fa1eeb09c6b5ecca35ad3112947213b4c948c1c7c3af78e3d3b90e69fcef53bc727ae41cdabe264a5adad6461918bfbf1dad8b76132c679807898256204511ebbe4b39b775a9eb6d2da1a1028753e73a5fbf91b7f0c1ee3", + "3c54eee1fbc2e06e9367eb02f1d4a876404d8a4897e35bf6686bc7622ed68a0b0a60c9beba627b178f19295c1b1397ffdfe8f5596372d3c1713770360b602c38c1af269cca39ac9cd17ccd92be03b77b207b9617d0da1502ba5eeabef6446e21db5d305fcfcdc699df099a6da7489289ae5e11286693f074dbee2917679c8aca7d6aade082515fb2ecf111566c897bcf1852bfbad9a881c1", + "01429667f82aaea52b28041308179c98e2fbcc5596b175440e235bbccc6779cf5c0278a2651bca01a7441ae2e540d2ab0ce3fea70eec83385487ec02f024e37e9c10fdd27d7a4e6d6ab55a5d64ed69cb3e92c7bdca5f01042d3599891aa7d1c9c9f5b66990a73cffb4c46886ac9a837c19048a9fce02e825144a5dc25569a2eced79e6a7c31a6f9c7ccd390897bf85c41aa6265cc76b9880cc549ac268919a3a6194a474e503d59fd21a5dfd83abd534d17e8959f8c4d721f958cde599d212985d07639886a964a31f926519557e6dd0d563ed5e00cfb93f3c1391b6fe7e68f823f89c1e59f9ef0f1ccb7a6b229975a0a02d0901cce6f2e8a1e85e9e558a", + "1136eff8e17c8da8f30c7cee98f7b9fc514f21f84746883ef721089912110ed52a46cff637b034fb867fe853dad0788d0898430bad1a14688a13361b00e9245e1abf7b982b9b56ee7c8991e7ca8ae23d206a07ef7f14454bb2fa2c93461225fafebb21537f36817cc3a509b6809dcfca46cc18124d1a126d3d63404c0d7b40af2aa7a50ff4e57eded4f78471f3492947db416690440317d9" + }, + { /* i=6827 cDividendBits=676 cDivisorBits=53 */ + "0d3b58d310d8eecc95360f36bf8024e0f12bdeefc57ef35a65b6c5a450adaf4281e05d4d4092c6c79e3a3fbc0461bb504e0b3c0be990d07f56dd6eabb3345ca5d74d2f69e45a6b81e5e450d12da67bcd009bce659d", + "19d24beaa08af6", + "832eefd07ed78f40690694ffc2ab15c7de915b1e1949ddcdad1f1b38a9bdfd64dba71c70858a42245e22bab23ac52ec3132d47799da843a7caf503b19151b185851a84fd1c5a4c4d7fafe80ca9d8", + "b96f3514c00d" + }, + { /* i=6828 cDividendBits=3492 cDivisorBits=3137 */ + "03ee88574083255135c132fe29e95749ebee3291e0cd9911ac20b88c04345cce015b731a69361b1672b3abcd8cdb463f888acb0c840b01a9314fbcd5284d335d25e98cddbb2843c17fa51ba129a253accba455529c170b01cc469b27dfdd00e9c1ab49abf1205a748c7b9f827200d5a8b078e6975215f6c640e41a30194aaa1cea730d681101d404821d41e1744f37fad6a1330457ab19bbb7e114e7ee230a8e3a353f5ea44972388290258a8ef4b226b938a5cdf724b7ece0434aa762adf39c25069b8c37480fe7562378f67c7fbb6271fbbed08eb69dd7498ca0c8874d4f91ec2a3e4b12287fc4f9f93446958d8672181c8854d516f89caa41be98a2b947c3511e9c36fa3f5c44675317c267bef486b5a47dfaf4ddef621f5bd48b8cf21fc54317c072327b45d0959fde69d6f0618135afa56ed3d38d83919e80934e06049c9419df22ec8facabc30f70fc54b60e388a91c9f4a3167bf1edc82d9886fb17f25ef10eb0412beab40a6c7fd65fe61468184068bbe07e2b911f5b93da332fbb105e143e022941c1e633cc063a16dc09b9bef8f8616c48ba8b1e8b28aaab2e8d2740daa2239989f18a4b1bdcbf5974d55c869e048f00", + "21be75d5a2370114137ec415cefef2747de8838001c1827079ad04732685aafb5b6bea8d1970a407be457b38d31ce20b9dffd4579db9d5ea3d15bd6c0729b6d496c0d70ac48a0998d18d70051c10593b5da5043d5fb41b9b1c0e47e4f06561d1c9e0751d5e6ee025db0c206c248856da2e6a86be00c31fda95c5f750b2322be852f8fc8b7a05a527b60f1f5e7980a6d540d2cb57e9b1ea3e6ab6fe1d67209b94c5d6c09df5ed4fe4b8dc20c2916cd54697c89919d28bddf7197ac3658e320a5435db76ef7fae6702e3a027c80b2ce7b54b5b4718157887aa7b5dfc9497890961631b7a249055a61dd1b04922191f3c5bd778cfcc9767c78269985134b7d4480da50223fc079172e56fc81b591dc603bcd945519452657703840048aaba6397a50742da9e0cb0d592ccc3d881a903f37916710ce65ba1fda9b478408ea89f463d5e8f626ba3b05aa0bcdc34acdc80f48597229be4cb94c6b3f8b6ed4d35ec8232042d5c8bcd1aa8731a3a2f56cd1ea82b57a9dbf17a50ae5b348a59507a84b454a75ffb913504fd09", + "1dd418c9e865e1dc3d6f9587cfb5d3fd3730676ade6421d3300800be6a0c50e7e62d48a67fe9c2bcb17f011c9e", + "0d706cb591564beba263b67e024cc98422f52f43bf323e51b8a21ebc350562674a3a6e41eed3fce8563acc4b958f1b47e1edf25fd17203bfde399e1634791f4dc4b656d1690d6d1e810c886ddef283ce5b93656f46b81bd85a55d054236478f0549232e3565d3c1b843759b232c7bb4a86912715e661b212be1d9d46df4d38b0ca971e6832f6a0310fba62b788539a7dc402c287fe6fe52c82a9bbc536bc5c33fd9f787d40e8874260e5c7815df80c703e949bfd893f1bfb0fb98011d6f5a0578fa389aaf256753dea54b65d1e938cb323be6f019264c02c948349d9317e3354cde022d7a260f8f76b7d47d2ee1a914ccc13da9085a3e5b95e68d88483f0683940567b4b3f51fcc91f01a34ff66715b77da11a9841e51f78ddf80eca927f1d9954b9224e2036666d57d4ed9d1f24ea761953934f38f596f5bd6c7d78d504c9af0bf86c0b45e11d7030b883ea47891a2ebd229686697312d5262b906d259bed5c7a6d59ddfe7eaacfae993d79c8a39ae06f8bc9e9faa4a235a7800cb5fa6243bd5f1df955e53a6772" + }, + { /* i=6829 cDividendBits=3301 cDivisorBits=1761 */ + "1fc18793680706cd1e22625b6623b37fc62df7898cbdc20808255dbcaccd21cde02e339b9fb2dc512870c626d0e8e2d1ddf464eaaa0e33f533f3fd4d326284386c64cea26201818a21f2de225988ca9e85295d6eabe9f24af35635f6999797a632254d43599bfdb86e43cc0ea43de9032a53ace2d3565b3c7cd352d892e73b652fe48dbd74802332e5b8f1ec71dcef9978e54fa23df1aae2c2fc033fe492da8e60fe89c5d11f7992764cd34b708db389dd3a80a7a69df98f4ee7948272bca90f03e95c4a23676587acf425e7fab57a4daf90b384d6083ebed07b8f12c77abbe623333552d9e85502c93b83d07e2236782e0a5d846cbe7553ccc15579933630dd6c261b017d0ff61ccf85ddf71e833b3bf016b7a83a7e9a02077093c871a051f93d00ca23891c5f594428dc84b3e636a3595b795a347bf326e360cecef9fd44d328abbb4ba5ce33d74c8b21f341abf5a096b134ef14f40fb30fc4d00ec44512e2d661f0c5085864ced70fa0f6a001392fcb5d89f51cc6172f5e11b8b45b8c24d8047bb5e14c85189eecbb002c786a7341d565dbb0cefeec7f4f6e460d08", + "27bd85b928c2df91b5d47099de8499018a95078140cb483d5edd12dd8696ab3f5e44bc3e2e413f9a32d5290ba00ff69389f4743c2f2df8df2369cfe8dd0937fe97acd6da151586c6e22d9f1cda1e810b4342156a60731afa95ed409d3d4e745a2d947300f96c55d84b9827f6431057235b7b17c7614280fe7b45d7203707a333d20601ec7269a5a610661deff13eef671cf9c33ce9034327838a66fefea87fdd625b030ba84fc15f4122b7c43817a4062885cf0cc674f19dc415d4133ef4324fb630c055913f2cd73192fff7f1ae73bf62487ebd11d6b6f0f60ebfb4", + "cc90f76c1602f24cbf856bea2231f1c5062ac485509a4bd5af899c150faa21369ee202086dff2799c7d8bfbed5ee63922c78036c6b8c94192b7a26413d7ea101a6957ef717d9a93fa44190f9607e052fec983d17d78a5979c41b83f696aec93e670ccdaf2e6d90139c6f9b4659dfb0f2e846b86ecfb6b8f0412c999dbbaf17ec718905c3bb143a7adfd71313f0afd733994d0de2c51af7f016020a6af1ef3d79cf31551f9f63dcd721111e2ebe5ab6be4389ca901f3d134d443a9e4d81851d65a0", + "129d8df5c65a9e323d6ae97e67e0879580a6a731aa74da9b3a1006bca44ee57a0cd3c05b970da538fb9441c6ee046b155ad5fc5627d78844827e8630ceba8b7c985925d0d72af0c775e11da993dcc022b1b72136eba1d274ef208113b3b689271b27abd504c9c8cb724850aadeed70a8e27cc65888e7f1085b1e477e108678279cb1dc691f4371561ac23804d8971921c79a9365099cd83f2d9652943709df2ae1bc381b48caa81d2f1b0ec7f8bab5d103d50b6540a669facdc6218a383f721615d7e3065e1671505be4dbc29b66e931cc3c6274b33bd0a998083888" + }, + { /* i=6830 cDividendBits=3825 cDivisorBits=480 */ + "017747eda5291716759f624a014159a32c92f3468a2173cb6f772556f7dfbd0774889bf8b1fefd540af127ba5df3df4dc606216da3abb35bc7de0378b3726d16c81cbff001a585d1b1ded3c70352af331c1c8d52e1dfc4c0e24486c19753819ae6d08d3b094375d682f5f9c75fbef2e17ee60cd472ece0c8d9773ef767c6ba7aa761a2d7d0a94246ae598a8db6aaf251628ce7dd3c7c9cb5dc431811dd947f5a8d276688eafcc1a4216dca49f0ffd8cf5bbf5b8cacea6eb624867b837d6662b6fa996ebaab3f7c98f00416b9ea1f0095efe65275e462a26abef9c068e2041b96348b0da013645d7cdf439c9842ac8cf190fb8fd876454caf66d9ba3ec6bae6b7da1c20249b2683c6d45af1848494b07a8973ea8a15df9fb33b13449fffe0d5ff00784025b7432bf3120ee606435e5fb82195d9fe92e208fe15bfd456547596378084a5b57bbef03f50bce8ebb4e18e55352f5bd944d315e6f125bace7f2a9ec20fdc56136225310741dfa5f9bf201a43c7d71f527a07c912490515cf6f72191e3b3a9574d0fd762d89c36db6dc27b6b09a78c13688dcad36d5aa47865cca1ccd6455c170da46cf0ce3644e664897fc1ae4a8189a7de081082b80b090613bfb7b8b1538c835aeeeb4051d4e23f25d0ebe33037eb80817cd9544d698c96095f1", + "7e016e27ff41be11b867a0f87b50e8fc18945611d3b13a3d8891b9132eea3ff3194e6111972be5de2d3016a39e307303447c8628074a41b3f9bf4453", + "02fa711aab5862ba2a579df1328fb1bcfe8d2466cd489ba545d98a797cef6140d5ab9506fa70340133985682df78764ffe4f242291f93b20648f7af19878333369c7fab24e1dcbfdd67a434a29e3d4c7bddc4c11f47292fd4e0ccfe47f4152bc8f9afce20a3190b01100060b5b00d4998a294b6291a5993503338302f2b5ae4028a7f255b1126f2a5d409a982210eb14bfe54c75b6de988a028870be25156663a7065f8b771cc0e6261b43b95134df3085b4d9a5d0186209639595b0c633ec00ddd8703270f82c042f99e3a1bdbaa1625426a0af0fc0547c71cf748c72e237b1db2fd13305cf93a58ba3f31434352bc4847a0688217c1598df7ee1821b213b1eb1090159bfe673298ae63488f2f8688850212cffe166d38d88775735689df51308430d0704104bef231c307bbc15ff6a2a21757276c95ab6eaa936089b3065772c83973b9b29bef98f2db055530473a6f1ee3f2da0c628cb7ebf18fd98868c6d16abf487f34b7e49d1bd766e24d3b5f3cb98665a29d5058b0186a617cbfe8c332d94038ba5d81745ef027eceba8abefcf2e72dc0e7e69161f5720869859419151ecdfb", + "6159c1511aa2aeab5fe96dfb2ac64fcd7f8e6cfa5e76e15ebcb453e39a9d533ca5724f2f0e9ff53ea8451a03bc05f2697035cbae00f8af04f0682190" + }, + { /* i=6831 cDividendBits=190 cDivisorBits=78 */ + "3d272483271df0f79278b7117be37221ec5d78e10364fbea", + "2ac824f8781db425dfdd", + "016dee0a57f7b6c1ea932811432b79", + "b92b8a2a453d0d0d75" + }, + { /* i=6832 cDividendBits=1336 cDivisorBits=104 */ + "2d19483d0c11bd597eb5db21932d7ea58dfb46c7d6c88b9a7097a9731b4b4a325ba2268655257b183b41d9fdf78dee4388a237fb6820a02272785528ec8a477bbb1ee10f36566905c73bbc75948e7545c505d5e2036ab9b46aeada8b698062f4c39c761b97bbbfc2f5738ddb470ee06149ce38a91e42eb2dee862be7177abd0ba9462590d91a101f3067cf199d479f5b34d37fdc18bcf23c1c1a2282046763a38c7de7d2d9603f", + "3857b23bccaeb0c9e3c9d6f7f6", + "cce98a1643cb434d4dc364f8369f1631c35c1ea60e79d0df03edd5c806a8911aee5147b32b1f1f609411b7f944310f7386274a96ffe23b23a90e1a73ec08475d2a7356e0fe920596ee125b52128abf91566d30a5185438822777f39bcf625aaef03b394ec4b88edcf202101abb5046de831e101f7ac81a0b83a06942965aa57acbff2e452cc8d60c27d37c1b6542cec89c4b1849be2b5a5e9bca", + "1c32ebc28a52ec5a87dec3c623" + }, + { /* i=6833 cDividendBits=4034 cDivisorBits=4018 */ + "01c8a5d3480e4ffdf8e26d784bfc181c3382e7c7a05df123f922be86855c1ea6b2eb479d1a07ad1d25e85775ab96fec43ad6af736a5400643229085c73ded863f7f93087b443f95957cd308d135ab6601a74f9b243fcd2585cbcabe54af965d867cbde27167e3e80a0493db45564584ae27bcb8fe447416b6e8d5ceccb3ad9ff6c5db14888ce7f48b3d55ba071e2c350451d91ae834b90542d189e3cc7d13eddc6bcf69112f7b54572a7288f6fd55b520c4522a36b262387f3d2f3900dc7016ba7c6e1551ad40d4fecef6e8a5bb69114baa76719bf3b0970cde0b93cb3209cd8eea5001d15b6d94f545b63b00e8fd0e70784c716f7ad8e94fb0b33c8f12070acf46168501dde4d3a310e326a8726ec6727304c84ed2bf815c47870acbc23462ca51c696baaa2c6084b32918dab01b13d09026000ec6a97c55c04e110a1c68a71a900754c9723e780505362daad7953e3150f30334d4549e35283d076bc89a2c61fa911d0b343f8701a1726ec52843889cd9935b9cb8c1e9b5fcad27abcc23c27431c5c55ea5cf24ff1bb24006fd7afefe3cf7ba79a829a5a07ab80958fae993184c8b8d084c5a5d4f4659de8193c0c0b2a389b590b645ca632d773f5b2256633ef5456f0c9da374f6d712f12a3ac590b8bbe1ca591a315e3ff791bc758aef0c70f5a50648bb39614832bd185fcce4fc731a5f87ab2b7a608b2", + "011507a8830786041b934acb609cde5246850f783cbd1306eac696ee5a465da19b5298ba313ac1871655b7d35c0b26e0bec9506d9d8e146a67f9f6ae6f1d831e76231e2dcf501735b73ebb57e88586068ad27b44a17d8e7b56468d67751e8cf39fd91df5b9596bb2eeb99ff5e5d7f1868f1cf69de78bcfeeaf394dc7eb74d14869f4a33fe7b441f4fd4c40e930d6ceb85def0c28377338c872d65fda25b446c525613e08753b8ce9d473ae8b82e281976c101615cf8680724ba274c7107d95d9d4e26d61b2f30fb9d184931a1b8eb9c5b8836633082b818be24f8a0e45625e134f0a08238139405e8da4a181e107cf825738a0a0f7fc6798793c25ea41eb96c82b1d4035ede4e4f88b649222347e60ed8205a4ebab3d895c304edb95cac0d252886c5ae5d6dcbacc02a8324dd5b54a800a3d5769fc091f5e70053f2bf48bdd682d9fe2b68dd387a9fab57f3d7e5ca0025be8fbf5c5e28af42868ff83c14e2a6b89dcc00472334a1aa0626ba32de6ce11e7d2f0c7ca4f043c7aace900a0e833053d949e8efb9adee8f5e04e26a8df271f7f21e0bc2f24b44908323386cfd5819871b271f70c9a24a46f01c34c82dde08654998a130abea3f31002020f2cc753495946b9109b9d45c0cd24575937aed4c251920f047223096fb3e744991ed9387d1411340c542b3a57f20aafababbca76c58d82af265a4e1", + "01a5fb", + "9ca65a7838d1822a0d80b264b0eadef0e0b9977377f141f79a8f33e3ae210928772883c83e3eba7a1bd8fd68e582ba8ecd4abfde8330d7039aba1c5dd350d39b77c76affa73fc85bf3d2c6260cefbeb89b8a1f00ecd4ed0e2d82ee53178f0e16019cc175b6c541e9a51c4fdd5eca32d89869ac4e63095e52d3c1ffe24a241e7df4611ae11424129b1d4fee9ebe63df594f74acb5f9dbb57a6b0cecceba2cf8653557e1d525bf019d17decd881ef817ba8be57b796c0d60a13c307b4eda801ac97230bfe022ec2ffba431cbd4a26d5b67329ec27abdbe8d0736df07d0b0f0bb01e4b763ff51b8b6c5ab1d2655fd39492268c20853bda92c6b7586095fb8ef38080978c4a140f421227cff499f17877e88c4a97edfdb7ba3643e19d6613cb3d675b290f01c6ba4cd5bea583e04f86ca1751aec057a3d4c346b086883c23340d3c9b316e9faffc35e18a6cb601bee5198ec6914deb6418eab855089758f5fae80de991f19a748a83a0b696f09a65a4fcd03ef27f4d12ac2c02fc440869c959eb392dd506690e246f8308e3c3921cdbbdb1edac87904e12995e8a056b6b4bbc156c96f7fd2cc709c9ee100ca00da431d6328bd5a0d501cba33749ab8a0b2cda698804106a80065f80b48cb46a03cbd6112efbe88938f050c18643746d277e6fab758ee3d31f8bfade5ee266e0fae79dc4f5de7f5e5d75b17" + }, + { /* i=6834 cDividendBits=263 cDivisorBits=31 */ + "590af967a192c46111bf07694960f44670200a5debab08f1eaa21a2f4c0c22c683", + "636fb6db", + "e53de5afa5ef135c755265513a8c03c2686ae4c8263f340c24f8051a33", + "2a081ae2" + }, + { /* i=6835 cDividendBits=3497 cDivisorBits=3173 */ + "010b6f8662e6ffe1b32d50bc622507e04560f2a786a09e0c5eb55f0d0fcc7f29dd46a45eadbb290cc0342105cde6bf1c732cca8b563628c71133cd5b3a49f78ac0a2c95c22bd6eae5b4243f748cf2824ac597a1a732b41638718b3e211bce32e5e230ca7a27d870accb444d5e0d74e7b4b780af917f51138d651724047e5cc98332e77069cfb4819547177c874a46a04245e3818bb15b6f71fc279c68d7861359da9e0ffae6a2fc835cb6653874a4e53b00712557cbbf243cded2149217f4cd93c11102bf39ab4a960edb1a3b46da41580df341f898223e856feb41af8d43cd5e749a6abfa6a091f2157677c846f03e07c7f7fee0fb79d28262842e9665d8e307700b28b5bcd3496c7b3606dd207d5c92ba2ef6a03404b8630a82120fd5e5df4a71182a77a54960a9a9d7c93df37716ca404d1ed1581e481c6b48f0fd95e9ea307273079574822e9e77e10006014e40a08116e406d4d202c1fd73b64efdc72cec55483c171f42ea81b7593e251e1516ea7b45aa4e7cf906f6a49351234ed5c0a802fa89fed781da6d87d0d6c1f95101e7d7216521f333a4b7f5a440a43314d5ff45209381a7fb0a1e162b7de990591361fa594a82d1e", + "01ae9e16d16e7ba13e64d86346a1551c2456fa123ef88dcce3d2e1c80da6a2fe255b2852479da65686107fb1b3c1db89b601d562abf3ecbc826cfac6faab20ea9fac660ee22934298d79c6216384c3a027d080a11a253810f9ced9b808d0391c26bad6946538060fa31577690b3ff28371caf5938aa83a22fe3d22286bf8d8ccb53de758d47d89cdf52e4a2afd0cedec721a35ec6d35bbc1a5df77145cd2112e296f3fee9aa971ed3161104e967b7db9b96758a1a062836a7ee8822146a922a1e19eb28e4ffbd4915487c50fb1ad673f2c3b26ab07f91fc4029a3f3de170769c6376b14971bb43f65c1d7a726d566cc201f7840cbe05acbac80048ccb6d197d31165ac6135650a87cd7b4b9502da93bc8f12d6d1b19f1150a1e72ec781e9ae2d0499b9c5fae4f8436b1cceb7dff1ae3793a0bfe26754cde6f9c3e07f140f2a28c7ca5183aa0056af2d13e9b28644db4448f08954a2218acb23f1c3fe5e08c3f1f83adc54ded0e31d7fee490285d271de2ada70f9de98e046e766ea9c9562fc3b6cd709f559514328def15db158", + "9efd3a4cda9d4534a580b5bafba4c643661bf8cbdae1f3b0ee89c8ac99163bdf191b9b7cc096283f35", + "ba7e53726e610ca63f62c11f94fb5b0985d729b5565565306b0485fc091b5897386aafb3d11f8732721459321fbbdbfb6d7716d1e40060fd07d5da280e85590673ce2723513227f89bbfd8d4a7d225e90b91116f5202677fc62eb6359449cce439584226596f6337942bc834fc83c93fc66e9b4fb75ab31e781b3ada3446a9f4716ac8d9a7d30a835a0732c70808197b7ae01fcf0014788642136c5bda1f5efed311fa46477c5d5ada2357e816b5ac6eeef2da0cdd3cfa300271184056ea4a44b8003b2aaaec6cdd90d3606858f2ea7557cc00782d152bc19e3581d307cfe8c25b593ad0cfd994054341089efea815ae0219bfd2dedc505a65c7330b70c034df7648e63f666348e9ba759bab1885e30cc277782d082c9332f4409e1b96048666f3c9bc473877cde135d1540ade9b3a19f136dfb3101eb1a000abb9b8e3459c17cbf1c8e9d23dce989b65079fd85395e4d1badcf2f321e2782e279e4d0458931a2e192cd77c457d9b7bcbf1ec6f82e1a18c4798eae75bd21cce78907520a3ced7b85622f222898d8a47ddcde6" + }, + { /* i=6836 cDividendBits=3779 cDivisorBits=3563 */ + "090dcca7d0ff6fc90c486857aa97a09eb39e7fd42051273ffaba74a7a7fbcac66d2b6eed6a0251197a3e62ba01784844156a23f6d3720f006422f200324ac002004298774bbed0fd4a4b4482e670d3d610ab940d80b7237dab15aab4a0e79b72638ab8a78526384747d717e36e8a4cb006dfdc3ca5dcc1f71f1494202ca17eb45513a24e9755b89655766f60c40554daccdcd5474d74fe5c6960cbe0dd5a793d4ee0519997008d286bb56f71f21e25208ec59ff8446a0f2b8a359b6efe50409b8bf30d9a5b11276b2ad9a043c879910567f70dc45efde5322b661758747e262ea03c4108f5a54c5af81b463b8b06e5bd8719f99a565bde298202b60ddd6e96c7e30978bc8b1f79f1eab8df37fe982a52538a98c4d83026a4415e912f96ac59e18b6bc9f282146f16d747cebf731807a7cd3ed0ee75a08d382962f3b217859edb030dda094da45b926d9b13dd691999a6edd6f9b6a4b0696b9ab419cbe6e10948d835fa530e739a8867e3c7a8829edc84d5db50aa8b649f1cf26f2b025690379209eba7bdcaf48f9ffeb9122c5bcc8f09b18886977585304b3e462729e32133eaf668804c9947c5acc7130ef8828f5b6474fea7930f1ffeece39bbf5fc8bcf954130794b9a64f1f9db23f04f5e1d6330a190f58c9fcd70953", + "012384e51f213b850d1024f8484ddde32664a9a68ee65a6149bfdae9a2ce51633cb04ec917a62d6af376e871d43cb2a37e1af4681435925cf321279785d8d47ecfe966943f76f1c56806409b8cf64998e96f8267e8081ebdfffcd6cdf0e756fade3ac376ad8c99a9705f4991f5cfc6ea53d88a053ceb698fdf07437db5b6c9973ef241211b7bae893f8a9d2a9894582291f6e44aabfd7de7f9f5aeec2d20c897f16b3978038b041c484a6f7f1467989fae50124fdc23a1308d9d054d0bcab48a4b5f8c6f534c9082c889a5a77b22ebd8842b6bbd362afae3c1d6ee2a62ff6f46522a1be1ba398316c974d59392956bd8ed912268e3199f96ad6350f8f7ffa015dcdb47cf150d329215a45f13748d83da2053e8d7bbbc3f4823417eac5a02497f34332d391cee60c611693308314b990747660b0afd943565e7963d594e8b24b9cd6ddfd1fd35db989ca16b2662edf5cc4afb1f40435526b0fa2fbea38b067c0621cb9eaaf32c624dd0fd3f06168c74b1c1e381ee2941c63c973caed279547d81cc3e63f2110f8bcc9b50fa6765fde557aa0f8e27c3d878f4a8d74a33f10f212adf1b3c01f20a4d1404cc263be1b8672f1488d8a8d955cb4146e39f7b7b61", + "07f36533da5efd492a2d54e284ab0ca3ab96917e41c39ff5318ebd", + "204a3120ddcac4fb50c09bd1d6a16942b8ec889e05e1db9112053d1068557cf3fa1f09da334c67c7affed479e8fac52b10f17829f43ceb102233dcdb4f07b45e38cafc98061852218c55f6d6e3f1b44901cd039f587608b697153423395dc0acfe9ef67ba22ae461348a8c2e76b2619584028749e3a5846b91b062decaca71ffb44fd2d2ee14df781bcae1dfdf51068d2f78f7714867ed80232b25bb941ebb85fdb9837ac7fd101f1f14b3918a90f6c7e45ee2d99e9e1ee8934835541bc7018dac079e52c1319dd01f3911f4805728585d1f750dad19622dda64a499393692b2720ea8c0e6777cde2d6d2340a4c6c8b3eac028a696f2868a2e8fc96dabda0e8a92308b3c9871576d9b69550673cd32387a841e3c294ffb662979501fa0c273653498e0d33f32ee035000e1b7852aa3b3981725465b67b2e6a4528cbf3ae21113ea4936fd571d114e69b320c9539bef9c3e9716226894e8cc13228c2e6359bdca8564429f8dd480901a1564787ddc31d7c1c9722b5397d686373799e0b1dc9ccedb12b6bb06714dbe90b722bf5679b4747913e447f001a5d9791855f70920093154d47ce382a9b9f970fc2f6da90cfe8fe6b4d360be3d0b88514dac24b6" + }, + { /* i=6837 cDividendBits=2946 cDivisorBits=524 */ + "033606f6923569576b10b27e6adc4bbfa2616714ab00977112d5e3d013ed3f5ec28a772c010c110733d0f664ea38895ca8d03c845f920d5b95cf37fd5d54d9f21e820531a0174e98d63b179c7d0d4a124c58fbddc4052aa9aabe5f4a765773cc0da2660b14c538751a3f030982eeab68a2beed8258b57ad7dd5743c788ba13bf82c9d723524ecc0a4cb8ece85a4fc322dca8185c05f2242b409f94c93af142c03fdb20f223ce181bd9403c99b0944f5cb12b7ed87acfa06bc7435381b33253ce2305fc5918acd3ea63dae7113a2c7b299ef027cbba35cb3aecc49ff5cfb5c57fa8de4e8813879571d91b104f7b31ced21fa37b05f0356b6233170d77d1e2e0c5a663cadfabec93585b22a25d14d668f0ce3fd93bd02e849bcab9cdb3699a398155c32a1c02ffd9053403a8e9a48503b3b728f08103c4ba75977ed6a93f331762bb5e6f6f5e8b8e7d2f5645fb1987f7caffe50c76d894b0b7e8afe6781930dbb95df69b3d3eb3f8f9126acf43dc3b13b81a", + "016c6bd8549f6c81320bab99b8baf11cbf0b9ebf9206346d2698fd4c519614fab603967a209a5bb5f745d37c21b7111ee8f515fb4c6b91bdd1b7f315864fbc96fd27", + "024175f0bc9e57381a0cd900d55e1ab76659b0d85ef25c0701c0301d1e2e248348b47f065e9aec3b3cfed087b6a26bf9639cc3a138a46a25340ad193588111be56804e04a2f9876240375f0599725055cfc28a115b577a569b751f9c14cc9942954a94971683599c0c60ae788e65b4ccee58f0467f90894e1ba3e922de8d78b08e56c7c09e87ded43ac5e58babf85a88d4eb31094f4a076baec5c1968e9e613565b5453790be88cb05ceaba2fa4eed58e9422c03c428aa118d95b86742f23594333502cdcef78adac6baa182a6a67bb7daa7b11e626c74ef7387611d149f7a086ffce5f022a4a020df85cf3db8c14f680624ac93b94f83a41b861f94291a1ea53526a8adcbdc7d4534bcaac67b3ba859b0eae80bd5b762132d850583998d7a8cce9e330553baf2ef5fecf9740eb7e582", + "5553386428f64782952bd95bb89622f59aa2dd9b268377cfec603ede3db54453516e33448080d344405b73c622b827f90d1d65285b0db3785f2fd205384d12474c" + }, + { /* i=6838 cDividendBits=1903 cDivisorBits=615 */ + "197712d6170f6495c94576f8cf6b7cd0bf450be0d64e1c837f316dede02177aca36e0acdf6efdf6db7eef6e7ef5eaa5a48db23f5eeae447cc1c7ea895b897f6cd6dcde9c0536ebd46e99704ad61a795f3687fe9054ee5eedee6a972f423d84fcf64ead31a36aeff3e2099e2a81f7e4f29d0f26e3a7697562374694e504a0678f142cde48f6e01c18626b3140ad09d146bc2489642875ce1ff961d09a65485a18fab985930553395845d4c8b0ec70defc3d345c58007db491023598818c9bf958c30d8d8b3fc21df8580563777a230077a82da49e142e38a6ea63d05ea2bbece80d3d763a70cac7ed14d8dadfddb7", + "1cfa5a77e5ab98b77e0aec0745317351b8870b9f75f41d818726ce623559fa5cef08d90f66f9498c97f31faa379325b5b3431968fc8d2afa022d2dcd50e3460c84a916e3cab08c19b824e7bd42", + "e0f77cc7e59001ba886863eb028704590b2e5997dbcf935513fb37a7ed8b966a22064dc0e4e10257cb71881d561aacd02aba80d7f8a93530a0663ded972aa524ef441f564f72f511907104b4a08a71ed5ad2c67b97d375593756f1641a23f2e2a8ae88fa89f6c7f7873b2eff5a1451a0091b2d0ee0c874cf8947ee4ad631a23a60efd54967017f687101304c132ab3a59c5d139afaad141e0f1756a01e7c054d7d", + "114b95b68014defe5554ee1a64c3ec013210afc6d56223c6a71c8c1636f61069f235acb416b2ade80ced037571c5c6e9a0344c32af51f8b20761e830f8d7d546c83e7acb2911b1bce677819a7d" + }, + { /* i=6839 cDividendBits=353 cDivisorBits=311 */ + "02c5c759bd6ebceea727d05626c6aff9eb33a166a7842c81d035e4b60f4c1e6b114a62fa99684a873f4327e1", + "34a5f4700ccbb0c1bebd68defde4fa6704c2cabb980aa9411aba60900a2311280d78667981fa43", + "0d7b450dfb", + "03eb4979d9a473bdd7eeaa2168767cf875bc82a956fdccece100f99904c070c97c2134de0e6130" + }, + { /* i=6840 cDividendBits=1015 cDivisorBits=329 */ + "2fa6cc8983d36643a3d7f3a48da7689fea56e820bd7d8b80cc5ee709dffcfaed6d8b30b1876a84f34b9ebdffff2f9988bf053b5cccd3c23ec1d0ee7849298dde2b6434d8f6aebf4fa4498771031b0dcbd0e3db8b1c69b8b2760465b5b5f2cd6859e65ecc651e55e4594470400ab503a9ec16a96e6eead2c862de7b6fca5a28", + "016658406da38ff6211d51456d1ca543d7b8cdd366e0627a7de4561e4bd7b9b1f6ff03b83420102fa748", + "220ac58dd332eedd4ac33f83ffa686acd76ae372fab55e7b2a3f68865239de59f2849adc5ffbe292baaa399b551c7303f8325586cf93855dc58a4cd19c7ac6b2c3cb16ed9493270b64ea25c44af232fe24839b27bd4c", + "012ceff3b2fccc6d8a77b5fe769a47f87326279269161d9ba993c4017d6f8a0dba0c4f2fada05f2c88c8" + }, + { /* i=6841 cDividendBits=943 cDivisorBits=238 */ + "785f79ada99e869c701ce0659ac6a3ab5f0ffa4e4eb26937e1cb29f10585e4f34dd4d871a4bfce87649d64f6373fa0124838076efdd5e8eee38cacf7081213f56104c15312a93740c5e9e47f81d175a0197d10dd6738622e56e6f7e95da1cd21f097e18cf215d23e85fcca788130e2777be881ea2423", + "1089141f9990f1e6756d67dc9b06c845181c13975c3f38031c578e9a1e67", + "07479961a6294cb9bbffd03dbf982e2858f1c0fab84d6e0d3926f53fcfeb72c18db9cd390d4dd4663cc55966ba71049893b288407f803b7b2d2cf3e922e0a58173efd76df1ecd23943a2e6a2d1543d12ff526a0d888ded8556", + "07c34d9da9034069db9b43cf450c6229fd9dbc19a974d3073043a7fd6a89" + }, + { /* i=6842 cDividendBits=3729 cDivisorBits=132 */ + "a07a858628014c1d07f059684ef2fc32d9ac17eb6d5e6ebbf32eadf55968df714ced02f232dcbe904a5e64e5cdebe54067472d716cce52276f2e5ec73d255c5a8e65dbd62504c4253af4bc938d917bb269126ded4d515e1a30cc88577b5969af76fd2b2a84f565120a4798fa17ebc80d5f9515b01b88867e512c72037cc4b57329b7c98c4dc44d4ff7b5b7e14eff4f5da8d50ab2316e8cbc151fbc37c0467894f3a383d8221a8eedf0e628d8a2ea306d9c3fec22ae48f62905158b44f483fa530296c33328dccd0c8cfc50567926dc69409945efde315fb0fc0774ac63fda17b3dc7ad78ab67d888322957330a4c06c192d9705314b8703d78ef21b80acf1e0c516d16643961772db2a7e191e31d55c649e9e87ff309fb365e5cac89204527864dc49b75492971b349b552342d8d5c30ffde23d0b70981953d85a23b523bad80d591f516eebd59e6eedff1e0079d510f643e210168878e6b2b8107d6c4fd78f99727f838df63bb8be0176ca84591055d67bd833b0758639da36a7256e94800658766aed966fd9c26cfcb297d6e0a5a03d8691f42267633984b66a54d32ff50b5c9ade7ac197604e37a2f17e08fdb3a62d6e33dc2f7cb8a0923a00e4ad342accdf33692d7cf3e1b67fc1c8bc94f9d959b0f4b", + "07018825f40dcfd8c60303969a6ce05d6b", + "16e7eb493783b9ace9f0f859458b7d6f31b690bb727cfa41d786c2d9be708af9de2e9fc9523ed2f1648dee4dc5562f0d37390f5002709f9ae69d101547efd8364f7670a894471e391dfa4cd99d8555c477c3abc13e9e3af376c54b70ba4ce18fc7c69702c27adf782775ceefca56f40afb8681758abdf8f9ee70f3c1d00ec4586b019c6bb2952aaf68dd376c0a2ad13b30e6af47d687cf3950cdec7083dd41e383e32d78ccb9b194292e1d0260812eebf114fbaeb11f080deaf8887314c1cc8ede490424dc18c55f3ca29491668c2df47a165285d053820bec646e269f3ff0e700ad26e265fe6a4506310ef505bd2aaf7f43b2122af80ebcfd331c6f878512622fd99a95b3849c0eddb8fc06d717a33196200487623c373167c9a18d1f1b5f93ba33e6b16af6fce9d74abfb26ebf4f281c78db11a50b2cc1121d392d37a1272bf84f1d2b329ee0b88dd16523e446dd08ca5b6d7ebcbb7e8ebfe1abaf53670362442d262b70e60740d8c2bffc8d16896c93d5b3a507b9e998a7534f3d98d172cf1413241a09cab940e8f46c49643b6a4689ef48098f4b31eab88a63a68ad914f72bdcbb0642ae5fc95f74943cb1cf1b30de704ac0c3fd0ccc7b79cb8930cce8bba1cc", + "06eeb2d0e1becd8c20422bd04482e75307" + }, + { /* i=6843 cDividendBits=3412 cDivisorBits=2953 */ + "09fe0e782fad0c90db23d6ce657ac87becc7480c0db0f5c01ca5f506cd549d731e90d236c93afdfba5694058dacf045188ec85eaf0824033e2381bd512a2adc6ce8c2ad46d773a9d33b5652a7d10fa9b8a3406b7eea49a3f7970baa9b32ea5c5a43574e434e1764b44d67aeb16a18ee0c91885543c36af3ceac24d026d8539b9a4fa1d753acdef76f8d6bab2dcc550a16fa1f8528423d0b93d1af8d77e706c8c3097d75be5daa73c48a4551e2e423698d3e2be3459d6933b61e5ad2e08fbe3ee879cae19b37b7f5583aa924774ae544bfc0789544a715c67b3ea35627275510732f0e0b782e65f1fa5da4109e04362ec0afdfc7aa180929b6e7c03c8d8838e740aff3890f841b9e0996689eb9f678e06dff499ea6d4e6b284cb3ee0704c8a17390536ba8a4dc9107d82c010b9656311bf7a250ccf404a4328e1aa204f273e5d19d2d5434907792b876c64ed9e8c4ba9e7eed31401f9d9ba75c31c82e5fd9074c4ef6250fbee6effd7242e9cebe07a6f7b51a4693ff1f992990e40e7a8ef269e06d2b65a4b1ba6d15cbfbafc7a3e571c735a6c968055757553f9ccc72536e82125fe86adf4fef487e960537", + "018e649af5892312b5d50527b506a24b38107cea52c4991758f7bc35a66edc1c8f3e3f6822b664e22f893ce424bd210666408fb25850dd5f41382ca2582d8d5ee6b1d61248300fce46300ba101b0350ca70e8fabecdfc4994bf2c228200e8eff82e7f176bcc753fbe1e9cc974a618f118394c58c6796ba8ac7a94ad1feff44568bd13435dcf2df2a8148f439e83534336889847f40a9bccd4cb876d25a5680830ea499b6ab3ff7c2767ef1ddd884062651c29b800a6432a12a60574d53c3109870c15d6854abf64f54d59660e1a0fcced28265f1f0056743831d3e3b79b0b162b250960abda078d082716a6a0addf987660494a163d8b89c7e0ebe0b7f8e4e1f6d5a6484209f7d15e519c3ee94d07e4ce6b73fc652807f6a150a93f248b0df7c9c20b3048eecef07a2c3e5f425dc46916022da55cf7ff82c8b8cbe4e615eb879af9dfa519a80b2b042fa0c25679d4a85b94568270216c371c10dbc4a0e519c2f76d40e50c99ad8a8cb4143a0780ef8658ed7", + "066bc290da5be3ee30596220551ecbe74a89c0877d754a203548bc14b8d3290836c237e9db9422f61930840ecf5b8a54d1804a9728ecb1948351", + "ed8b01a023e7a1d8f5fb9fec2b5520d1fa943207bdd51469019d11550a831a495a6d8a099766e55df36c2b019754d4983cdb229ced472c1741194af400cfe2b0edb070e06816158b9a27699d74d3ac57207f55b013e48ef33a7bb78a6027d5158016e32fb88d37493a58c9ed7dee1031af63a0e58a2cbfe98e695d182e4a813c5cb4753a71a3ca630db6ceba97103d468fb4c333221d194fdd19c7a853624b3c6fc05e5a390e2342052833f83ce132db4cee07eb02c94366b6cc395c17dd3eee0772fc51e471fc45e02501b6eaeecaed3b9eb3eaae42e309b50c78ab40a9303bc9221cd26bf74933c8b9fb7c4c4dd778a21f9ca5acdc85db52dabae15b943e969fe5dfba8883646c37f78c8c0a3f062626a7c491b0020884ffbb2a495e05a8812146bc37ecfcc72760a1b3aa013040147c31a050e96fe796cc5755c9f115617ba42615620dfdd4ba4b639c64daaf4c875d879a42ff8013a7090c6509996c2c9e74ba72786a1334511356f230c2b30fce30" + }, + { /* i=6844 cDividendBits=3877 cDivisorBits=3656 */ + "17504b61a40331269893f3afe82f7d4f51a55edf5b5a9f6d028b12ba2298ba7433deced3b1902b1f2603528d38bd6a8e89e144b6aeb6c3d9ad65cf3b73f7d911651fe110e340e74b8894d64be1fb716d7ab785eb43c1e236744229e3853c4afb1473169addb04f0c07bfdc9a6f608b95a3518509bd08e3cd547bdfc185dcce79a25ba6ba73a206ea63a944c60b58c67135fc6d231a2045c193ca1a68bf941f1814e68ca20236dd0253e1e2c80e3abdf6bcac9b8f98adc554c23b6aadbb1d1193d096570cb024e4355e6360fbf933162f4df10886bfdd9b885073dbe2937fe4db5a81b6f881ef9379ced74cbdfa6874208d5d9307b6803406d0eec91d6e3c4e028fbf5b51da711030cdc9bcce95ac9fbb14471bcbcd9e7f5f3a3e1f0af10f32d063c2b9ecb8f7e63cbf2a0d33914740dbec9bdbd110bea6d3531c8066b7261329f65223401b27addf36d2f684afdf9615ac689e9489bf8ba44d7f2c295a8c66178a33c8db1e056ea9fae454af6cb35fbc0fe02490f695b7405c7e9bdeadf354aea811bbe833d6556480f259afd82b87fc2c073742fa90bc6dc901637f112e9e75044228e9cc937bb8ac4c5e4a9d47f55f3145d319bc93fcea85dfc1f52b3cd0a96a2c03d1cf6f767135bf9ac114f8c06c26bc823f9ced7287bc9ba8349d8204b5fcae232d28", + "70ad1bc3174b549db889d458f3a9b8968646316d8e17c2112653b89ff8630824fb1faf2cc3c3a769258d2dac0688b308e6559668828ab1570a7d7b0579dc0f12b915a238b2a2fde165d29ea8d31626dbf0ab14760a6fbf30e4e4e8920accd0fa5d73e564a458460e49ea24427d10950174e2deca507ca76e67257b071d53bc8e255e5dcb03e1680629241b552b999dad3be78c336cecadea9f985dd3e622e3f63558aae29fb453368c7e391cb86d682d9ad995f709d2c4e831f7cc0b0ca450393d2203b2ce9519a52cc53725fa697697b70668d335a8c791a43b8b5e35ddaabac6317c819153b4fe8f255927f5a7ef91dd12c4df8cf277b79ebc7e1eb96a347af0593a1dc17e1e314767c0570369d0f2875b5af37217f253b0db0863a8960accf4d9a211841848e14455298ba5c9f56a193b75e57457a3c85ae9ae002d44e31be8a8ae899de8816d0f1da22b17ac2e3f469b931a7e84231a9c054b4b2860cb4b6bdc24f9508ed660f33e329354b83a45c839e7279c49aae7197a747227a9ecc1de6f86ad74ff918f47e0f1964c212c0e5539822e1d7826d10741f4190268b3e4e5dcb85b83787e50f7a8ff5809db91ea6c485a4e674f48ecfed913fe20d0e6a2b4fac0bd37b257770f", + "34f7f277792e0c25a2817693ab4de78d4e8e753a9ee1b2d2e8a90e2e", + "13e00c971b686501351af62ecd9c6a8a1f6715d2b81776ca0f592397d1229882e23bd654df9a558daf703da88a253aaa0c96c7635ab2d2a6f7420af9bb477f01bd68e56d99c38ddab31cef81c664b6d1428250aa4028d6750720727f64ea56212643235eda911c085730db4f5f49ba96961d147ebc14bfe69b6c84b4d75a01e4089c8ea1afd35464e7b6e630499d0e885ce45243b07ae93141bdf01474db21b2bdb8c75fd4759ef0a82d3a13a2c7c76730e5bd86a1ffd702fcdc1a2787bec4e9f68e017ade7db5c5184840c5d92c4b27222d184cdc108a7ff1c9298892359fbf3b13016cec5ed3e58ebf2bf442acbbf5da1090c59d42fc8417ae99f7009060b622448c8e7618ea15e6de24b27cb4676bef2d651d2b2daa58d780e0fe5c4c48f5bfeaafc225a48af8b0ec04cc3b3fed52f75d79d9ca956bd2317bad584443ca0489f5a7392b8211df2c8523cb22b3f3888cc100188a68b0bcde851d90819ed1076799eb19154d98a1011d2bce1c3d848fbb4a71bed8b5c8b97be05174f093bb0c11c590ce7c1d03a9dff43867742ae64dae9543438780707e879a5607fb354a8eb257a9b2fd7fa63807e28ccb1b5f1914ec4293416e06c3dbee16547d88a75a5d3882ee9248a901f676" + }, + { /* i=6845 cDividendBits=1861 cDivisorBits=673 */ + "1bda3a8e81d40f8beeb252a4c59c8a669435a09a7f1b2f8dba183eaa0fe1d51cb1cb8d91c30b8f2bede9c2b19ef0cda46aa97380c4c2a6e2b7cb0e9aaa669b054c1891330b102b1fa38b5bfb931d61c70881fea4abc7d7e58f938244b441409d0e9493309cca323870dd42e58b926bc4bdf111ee2e6936bdde68a6033e6e25066064f4f8edd8fd50d17101ff285c5aa884be8489394ad89c6e44d376a3a188ea0d10562d0a00878d007e358979206afab4ec0ad3509ff5903eac7326f9b825fd2c55acc80db8ccfc46108f886d5d81896036793747fd8120e0ce8eecc4e260ff6ced79f5abee19bb22", + "01b333f62288ef32775f7802b747d795bcc3ee072fbae26cf34003c88e2732c4b58097328f6d739f96ea4a2fbbe1e8dca7ff0ce9f20367a0d64fbf7a4bb3355cc1d5b76e0081fb465a858d4e1cc5d9f476b87b7b8b", + "1062393962a1f19cbf2ff1a6af314b001cb76561cff32c5497dc9d107397e31c22d26af88106de2aa94e6d51c7e2cc3ef7b0c56648106a997b5c59d9808f87e4b3c447f1d36bd130877a0f93cb508000f7db05435531a4cead1a055cd5ca1f39de8f3c70f8660af4ccfbc9300fd35f06a0a448ca5a59961967a4c6c05257a92a5a5bc8fdfa1fa096cb03c209042e29bc47353daaf9", + "0123a0fe868df98d1c1e8f98e68d5ef0f48b29cb376b4841794e812f8b938f35256a4d6130c1ca7535d321ab736b034e0036fb7680767dc13d3129f38096e835ac6831a0396e31017eaf801bf44f6c7a2346d542ef" + }, + { /* i=6846 cDividendBits=1020 cDivisorBits=557 */ + "08c80a9b1e1aac61766af9d022451e1a7ada80a122b138fdd037c3a028d3de13eb0a85ca29b07e48bf9bd0f39123d93a144731e5600dc7361519ddb27e7c835e18b6ce716939c38c84d6cb0e3d6dd18da265c7af5ba744408d5af3b682e22f7f34051b9c9e57d3123fb92b9548e1e554be972ee29ae8bc02f2ea35da875fe24e", + "166edfeb05b2f89e2679812a26f29a566d95d6d4ba7d070d7c36b578eb92247e6f7646978d55aaf80369b8798e186991dd3fef772bd076999c9fc653e97fcb310a4ff6674cf2", + "6435fd268e4b0b7ad7b09de276f3d0d8334d33948149a6ca8e2cc289735b39327dc374cf6bad74a53ce74282c27ed59118102e45b517c7a0d83f", + "12b05f13cb24558b5c52834b874faf9929a172b0ccb21ae26964e5cfb46dee49caafc8f757431e8c29a1c4610599b3063f6982fa11e91ea3d151a028654290b7e32785c7c2c0" + }, + { /* i=6847 cDividendBits=778 cDivisorBits=689 */ + "01141fabc0305cec9bb0ba3d20b508a38dafb188b87f5801b52393068f8ed30befe21c1f05fd931a1d89930ed0773b7ac1ed16eb0f1176f3360dec6dad8901c188d050fb897585a8b347985409f6c064110e4b9537f1b5cb0ff80b4e4803fd00f219", + "c0aaadfafdd6bc1dd634852df96eb61b32d88229938aa3d2b5aeed86ec33030fb93afc1751322858dceb473d330691876be00d82717486e70265401bcd4638ff1ae049bc363f959df244081d407090884efdfa124060", + "016ee413eecfb550e23c8661", + "5a6e505d91d30dd5cfdb74150ab072316586930fc189a4c42bfa4efdd4af2a48382ba5f33f6b445071598b6563d41d8e80a997e6b5ce84bed6e57d1474b0ee801daf17ff7d3d0e262f7d76c3cf12d92cb1c6d7e44db9" + }, + { /* i=6848 cDividendBits=1299 cDivisorBits=842 */ + "06ae94a03e523d3010a88b00c18ca67e20545f564f868204fbd9609423f36c9bd16968097e78063b520ff2e9900fb260d77a18561ca218fbb6fed3968b7829426fc20b64ccf3602b6f8df57c3442e2da45903fd0d330c0a4d4289e8ffbe370a8f7ee100a05512107de309be3dbb93a3b4f3d16383f34f55aa06c7de7e9436a76375f8afe03f13b4c9d62e710fa7bf5bf11368f20c79cce05f2cedb11b80fdc1d9988f1", + "0348817f900fcd54b939695b1b894d6e70da18140a0715b9264892e6fa1b96c02bacfb30969839a0d30e44623e08839451a622eb145907c1f0ff23a7fbf2a65d4743e1389055d9f4b7c18c30aac555d631c32952b637e073644821a30e166f9b03abeaba3ce70db511b0", + "0209018bd721599b4671892f4e9ead8619c80699218d3e18f7482e1f3269d7cad6f529323351697e655c98b7366a4ed587ebf0c7a5d1d84a53a6", + "014fc27407d56e45321c7979783c4f892089de5d260f2952f931498f011bcd1750584e429d805d9104f38ddd1ac33f9abeb4595d6f1bfe443413c862fc6ed692f280a14bdac087e8f0bb80efe9a8f03c700fc8cade6c507e52cfa03282683ec199b047d10aa3e89400d1" + }, + { /* i=6849 cDividendBits=3036 cDivisorBits=2251 */ + "0748ce93ba742fb4eb143cc00c6948d62141aa2e80ad66658e6251b57737a60edb667f71fdd3076b75df0d496977df4d63aa2e14faa477d3a72fad9d8575cb237fa7b9dea9cd046c7637aff352a5780c7279f9033f7bc3bc49d61e6ed57fc2d27cb47adc81f75af3aae7edd0236f19474bbb39c5f2caa4a813f9a9171ca6e34f5c6acd4149eb46b57bb5fec628dbd3b5efaccb008c3d91c92ab05f416d57a065e4ec28da7ce7feca81ce7a0f825db121210cfbb3e5a72c2dd070148fb312f4a7ce714f2827845b7a3d8d6cec5c4f18410d568c787903a6e95167e6a4f9e12b7f4b51f5f900ebc86391d4e5d009f7ca1678c33998299917a1c673d6aedb74186cc09b1e4e65d8d6844f70065975303258b0f5b30e17b23465ccddc5e0d3f454be40cd2cf9fcd347035a7649378d5bd7901313cccf898a55ff1d8b1e632d221fbfdb367e9bf16552dc0d90ffca20cd13914adb2c2bfb2de4122a0c8c7a30fc5e63e5221466e89a5cf7b478b7381c79dfbdbbc9571bf20be0a6aad6f792", + "07842781b10098f7917df5be273973a5fc4bb34444eb8d1ba28e9f21ef27b4d0706bcb5ef8c529282d579de7c7f259b259fb434e88565062efbbdad66bc70b2f3615e0f7e2591df9afaed1316e481c0a4348156e03371070c21ec81f19df9703ee1e99bdd82bbafe1cd46ddf5036e3889003628c2d88801f3cd4ab63b422417b6b51d665d760545a99fa5d1c51d9d044dc0dbea1b208e4c3b136c02c5bc39717779fc792ab36c3a3629f88b30a78ec4febfa2102f79581089708491ff7e89e6f02bc6f1b298c871070d149608a84454b938dfe37d3246640c26d0034ed2e06abf1f51d2aee85b76863366303817f1aabb29f912c463f295befabeb67ce3cc7f6818b62fb027ee31982f0b983225b1e58f66c598304f1ae01263a", + "f81aa6512ef833f71adf156bfd8b7fe13b6c7fa5c7055ffda4235f660637fc608c95280a12d238951dcaf628ecb7ec1e4c816b3746be1b26c066597a4c4cd224f97a0b98763f26541c39d6f793509cafd6bb723c2e220094757a07c63248ce222ed5", + "03644f39d40a11b6c185938c023a3a7148d3b9ea73457939eec13489da4373c244a238194360652c0a59ab7a8f4ddb7b844393988b7d211d0cdde916ab8ea05ab557e2eb0991462cec5911f253e6ebd83abe63642767113d374b911d38bc8d580d13c14fee7f59e5249b6e238a0f8067a0f32b3b22ce953a5bd9f50b47e67a1f5791fec5fb967be757cf6318959b1497a18208ddbbdf1f6d126d8caf1e0cf1dc04e6485a7b88cb279f88c63d5772ccd77faf8ecd78183369d41b9367d5d35eb229ec5d71489cd8fde4144ae3e60419c636d7575c29de4042ca16168246813954e30aa680d076e62e2c8b016d686dfd346a3e9ef5d76f0baf54cdad3995ef230c52841d204338e10c801e583d1bded60596f67a613912ef4fbd50" + }, + { /* i=6850 cDividendBits=3183 cDivisorBits=1124 */ + "47ad154189cfea5626c6faa9ad68705981e51c0171189e1f5a7bbe5d8523c182a91e13869bba1202bddaadcd2579f0626e86d74bb2ce3a515fd172bdcb9b54bbf8de5915baf0f8c7e2b28fcb62bad6ebaf18095dcc11fc62c4fa0f199ca619a099e8c281a7b2864c40fe5cf113e757e7fc012e90a83e9cd1aa76ab3e2fce22bea78981990edd9679f64122b5a77421bb5a4379a83d37c4690992f0d2941aee623ecf02df2db9b328a5b7af385dd3ce6bd7851054c9dee405042a6d371ad36d8c957a0422c30fb8731f2db6b541735ff672942919c0debebaa8d1e1b6ac73a9aacf2bd9b87dd42e7444c68193e644a1e847570999d97ff78c9a8f09193c1b3368772a8f8008964d292c8eb99ff29a2bf0914dba77e680f738d22437b80203a01fd4e4896c50e8f3de78ea64a9e9b4d77b0ddcab419cbc69e3dbf03cd3fe21a4c5274e2a28391371ef4a3b375c528a2b52ec9267bd6a93336826b6fcad565663c97f82e70dbf47a946ffd29645f1ae7f7313ae18ea421aede0e4e106e6c0ccfb1dfd18c4cec7458671a23a259ee4de", + "04fd7ed7f9cddbf549306e8762f68492e4df1cec2eac610c984ffc817fc1bb31fb55c8e947b3c743f89ac8d7a0941f2339f64e55eb0a4ff75ce490b58a2620bd75e443a34d285c4e4d4afe0e111a4b86ebfbbd3a6fa074b4c9df7a623cd0283829367b2ea43aae4b827cec692875e14769998762c52737468bdfa87b4531e3469823a9aa5766694d6aff0d136a", + "0e5d02e0ece3b165bd124998db65aa8c6a76a662a9d048b99470179cf879289fca0d5788e606da93e200b49a7adc496b1e1dd922e0716cc037310892f98dc67a66228494de02101f1fc4966d0cbd004aa0f477d682a9ce10f1f3f35d73cd0fa0900b313f5a479829901b48339be4010b699e803392d6fd4ccfabfb3483a3458264c819fba0eae0ffdc2f07c0b435d95436bbea4e12b3ab0a171c037e0c896e5182b9cc8967a671c729bcbef58ddeef29a047aff76113df96e658d786c353ea74056459e13cb9ac069142497358c5d80b6ac9751380694d4452eece580872cc13e806ed5a8f0aeeca7e619693e25dc09b404f6703dcef5320edaf298c33cb2ca2e8ad", + "04d29c416d0fbb897cda839df024e980f1a15cd26f67956e2ee4a5a063e59378e9128bb9b41554582a8c46e67363edac962b362d9c088b9c8402c4f55748e8801577f92e4431e11721e113efaa649542469fbda97382c00bd63d15319c7e2e8475af61b58bb2f545d9b0820d9dc2ea56b22acf3668cea7f83f1d2de07d279e00792e6bde140f5f311d6f1cb63c" + }, + { /* i=6851 cDividendBits=361 cDivisorBits=69 */ + "019d7e81779187bee65421d28d964637c62aa76bc1afedcb1b886a6843034033f857eb595215221d1999e591acda", + "179ddf1e1adc67fc61", + "118230ff70d124c026bee563afb64a36324f60100e6b0b643cffee559d769757c072e6c87e", + "0de485b8a03c11ad1c" + }, + { /* i=6852 cDividendBits=538 cDivisorBits=297 */ + "037fb08f01c7f0c731d818181d016f3e1d9eaf29344e2efbe2d9abd129b3d84a46c6948f1f97d22516490c758644520d905af703309b9e904dd11799aa90c69c3c68c071", + "03d8e0d7c8827a4ccea34cd20dfbe0aee255f8abc911b1402c3250794bdf7ac64a26a7194f", + "e8d130d6a2de484b8abd73378156059e31dc2a37cf92c86e97c516cc0ef73d", + "028d9e402ba01f84aeacc8c3bb98cf7f5dac6019f6675b05d3230765e63db3be8d76da7f9e" + }, + { /* i=6853 cDividendBits=2824 cDivisorBits=97 */ + "82f89ffa1b800516baf37ae204920cc9a6f723a8a4c74059c105123a5a230b0ec9322f65e350cbefdff39de0c61c3c2f87e58838d8a2b7f2a79d5c01fc4b4b817d20e0e3b5c076f12bf35f99f8b4529ab40c918f42d0666084cfce8c40450ad7af8c579448aa6837b0bc5367e95bbeee6706e5fb3052cd4d56348ebb28d039a9f088ea76a7381afba59fd2b52fe71bca450706c8ac119c9deddc0a9986126080a225aa029aaf0e0d46e636165973a03108fb0af21f97161fa3b5fab3ac802eb204db0669fcd8b2e4aae5812a7d887129309bd2a82fd5545e2e04068a66452f4f4bee156fbb6084cd6e56badaf14a34f108e01672857f8552d4a332863d196ba1b0026b888d6bc4d7b3f9c5f18ef696bc731cf7a841f5900350f70148e09e39b60e590f56f33163400c9d04f89e981e5e4ecae929ad436bb131b327cf10d8bfb2a101a83c809df255681ac441e0294c2e5dc123b6b6b4aa7ebbc1bdd1f9eaacb02b", + "019e85c79942993a30dbf339ed", + "50e28a0757c75b39f983395b212fbec1d63dec2ac00c2a247d782ee288e860b54a81c3b5a2db0cbad09f9c6ad8e907ab4b8039c07a991d46ac0c37ce210ac076207d70eb6828482d91c1bdaa6b38044a7a16d51e863ef2025956551188a1cb69a9f55fa2f28a72b3e1b53de1bb9c1b8b15c92ea11a5090a84f74ddba77c82c18e7afa0c7192597afce97e84563798b27aac957cde4e1d80ecfeed36c67180bdacaa53a3f55825735a54d614d965f48b5a971f61853b30deeee800c847bebb226db4ccbc829834b713ee1bc418fda183e32394fc8f79fbff483d73b525a20174cafa1fc5a5d9025fcb507413d9ede479611378428c6f2a1948310c1189c5617f591c7852b75d4376162c34626eba59a4f03a49793f7d359416112a47920de9c8e2eab5cb990c18c61221af082a69df69cb6f369962413c6952dc244665dae43a5df941aacda86c05d0eeacd74eb9754e151df43d15d", + "5c496695828cb98dd4ff2812" + }, + { /* i=6854 cDividendBits=1311 cDivisorBits=159 */ + "0888a17bcd8ff7257ce14175b96a51854844261f0f2e3ca46b34249f1d3bb919662128ab845bf9218850d150b0d55e0465390b98b12cd6a467817d4f1c0d5db6413e9f12942e5b80b4caca9f23bbdaeef0b0b080babee3f7486d0f0e5a133f462ecd6c6df4b0e994a43c9ab026fb37c942e7bffd7b17c1d6b753985c5324f6dc4aefd2d459800c83c322c9f642cb4d9b72e68ae122f447b5a93bea0dcdb0ff43e2a6bf1a", + "62a00f3d06da7133e8ba4a28c174cac44e8f5a2d", + "16269cd1a0d0fa47dbe3eab32bcdda1230b806762747f8d06fdb74701f711996fac8b3c783775599022d02faa1e168561c6cb46a5aac0d6bd3a23d5c342a9ad1d00bdd7a7279633bd30047d1e24f39dd870db6fb308e82540c76716b5d6fed673891c932854973a93be3acd395495918296db0fc3544bd47cee8d42027251b4369cb15ad4fcbac11639ec4ade912b0a0", + "2556854e8aa484c9af612cacc54ceaffeee572fa" + }, + { /* i=6855 cDividendBits=454 cDivisorBits=336 */ + "16548f1b02e6930a531fa7a35155fa09f73fa5100c4bac4b458b16d3b50a4b0c6f9e276708856c1ad480b2bd8240ba7ec0f726f79dba4718a6", + "01559cc5e36a7988f1cca109c79e1b78fda7a10a400af365cc082442ec89956164d4e22a894ab15f7983", + "10bbeab90ef35d39a387943506e93750", + "be618566e6de7177a823715cff9ad6d4302752593fe39be8beb7d0e0bbd451d3d00920734d1f1afab6" + }, + { /* i=6856 cDividendBits=2425 cDivisorBits=1695 */ + "01f1e4f32d11a0d3391dcdd59ca09ad635fe3e0076f00e8cc63f75bcf55ac760ab16a4000f284ea42ace5fde56cc70cd190e5d15b6ee5268b40a6f0f9b62d41b68dadc2db63157d0b204bf9861d4ecabf8dc0469af4596a3e0bc870ab62ac76534b8bc5b2ec0243f3f72da03631340f5c29d1828459847d03e88d83f96ed709fff4ce3a9f9d8582d19a65f22e8db837a0c31c3f2534663eb110637ea87892802a4bfe4c38caf17a826ef17dbef8c49eab31ad816a5db640281e7eea6e995320cb2ece747d1a66f872067a45a9a9670a0b4fd49ddfb908458d7a48b25626dc4f9903380695a494d8b9e2393538ec0d9dca04a6a0fedabb22c1229382bf6b762f8478ee6edbf912e0fbbf00c044392c257b79f6bda372d38597a6218554c3d548ca7c62ebdc1ffdfd118cb2503d19794b7", + "4c871afb7462b49bfe8ecc348ae9448014b8b14ecde70c60a39b15fe2db98bfececc485a4158e2ff63d8036c3f01e98b45a2280fd701914d7ee6a1928d26a7154516a4f75d5b78cf3c5a62a7051a591d88f589e5a9c960d32ef5dd2729a5b1d818b0afb987e8e56ce59a161837527f951f3824833f3272cbd5fa8846873f272315c2d93295ec874d592c82a06465d145a9e27a0ec2dbac586c553700b4ba433b9dea583effb094b68a319606766f2726fb112ce8b9569f66daf415d9361fce9f82a6fff7ba960c34220eb720d6a87a042358f8ae", + "06818d4a81836f80a07112accf534462ef24684e51a91e41f827711bcfedf0d9fd6664f90077da09c61e6e323428d3efa8bc476d09f349c06aabfc8a7bfbea21c01dbb493e421e5759c0661a859405425a2b7be4f7328b43359f7ba2", + "1b5b8a77542857a841d6949e1d4cb7e412d97ece68ff04b887eb479df0a303ade8047813555f4fd3c6aee6d98df739d1a443b1b3e2e1bb90376403295ccda28f29bfff4df9bf92bc4eea20391e0c9dd101ea08fdc7576cd2119548e6d5a7f2f7daedf2c826ac9a761b96b58a9b72f6b8285bb1cff7614754a9993268566d864a252bd3435932f00d19ba564842339a61093083c9f8d90466e4977fc874df562b06b3905cef89dd3c17072ec97d148617573e53c2f3972a454f1008957c4b95c20de01412aa8896a7f1a7ff70a85f022139bc9c9b" + }, + { /* i=6857 cDividendBits=3852 cDivisorBits=462 */ + "0f05481eccd217c0b67fa0faed66c6bc06463a9937527ad34ea8ebe3903a6b161d5ec16abf501247231345a96c89069d2179fbfccbb1002d059a2cca091d0b812421bb093f0d936cb20d62d3c09f56f2a85902223c5a55fdb1d5c2304549ef8c9549da48dcdcf6d21304da6d9bc2c4dee3a06931c2122312efba2add46ea74fe2d9910499e531dd864511d82ea6615b76f4788344ff6b6bc515c43a0addec61e7039ea4d14bdc73ce2310bb8dc4b6fb2e2bb15687f1e6bd6b3194ca45ba2c6ed594f0075b64aed41533104fad7513a3bdac50595e7a6004efa6ecd07cf0c30e5c85f2599cdf5c7ac3437202d950d56f6f7467ab5fcfe4cb145f023fa0ab6dbc948038261d5eaa5410a3e145e2146849344497c38c45f5e1b8a94a6333522896f3b37d7ce6cf6ed21190b76046e82648f1cb8120c1b21fcc5f28297f4e622282f6ee1e1edfef08d419a1f11f241b53562e2f0d30cfacb15ae3e90d8e9c171ccbb660ffab43c10585216ebac1840e3aec4c39a6b2fa49c44ed03edbb956cf56243e889292b196e95ef2c63fb9b34327d93440063257ddeb3eef9610d411bb65789de46bb15dad81ae153eab973660d862d95345541c9121eac290680407ea8b7d7e32e3a1a3f4d83bbfac8d388f3f0bbc7013a6d3b438a7eccd0439710371e65efa83c", + "39792fd33400142be255279d012b2197a654d1c0d00d4a3fcab7a83515feb82ad2de807bc7c2a5a1ed3c8512d1525dccae73468a0abd8148e0c1", + "42e7ca64890449525d9e2fe3bed0f3453f4b1bb3bab549a49840051ec721fd2c7a1d8ddcc1e707efbffa6539cbb4fc066520cd9950b0badd441bb08819612fcefffac955b38ab1d56d5d05f85016292a0870c8e6e91bc48f1c6270f1e60c24c7ef8157910f09ebe121aba1b1f74344ea8f5ded530bf1df6f5afb5ddf471226b9290cef1fc8bd97bd8e5bd631ad9b2edd74d5c0968eaceab616851f01bec4237f841df6ffcd0b3df1c10db40e8358d10c923332dd67248b5076d1e0bd5ae98f4ddeb939c394f3d21ad5bed116f0f4a35a356cc1234953525bcc21520f88f8b4b6bf604630df835846bd74d269d11ff5300f891618536347e6277bbc2587eef7c4f4b33ab9ac3e1dcb08c16ec126d8bf7a0f688ff287683b780e6f1a3a082afd5eda0d07ec40b58b89417b6dc89fcfc0a54e862409e06d605c1a43f6a5125698526f293247857d685ae7d66c75063001caa568223ab802bb635e0e58598615f5934a674bc012019b9a39ad3b1debcd7d0cb8105c71a0dccd79dc43773dc56d5f477006c9c7fed81ad6535c9974caba7ed0a18da03a9d390894ce5c7e8541b97d22cbf23c6070185367", + "342dcff34e5d2d1c2a3d03bce7f4e2f8200e7c91b233611a97727fa4b94c404b3ebc1cda8119449c0abfe54ac4693261b5427842ee6b3ea6a795" + }, + { /* i=6858 cDividendBits=498 cDivisorBits=403 */ + "03b84ab97c36447c8ab53969b1db7b58ebf99467719399b06d0c104477360b70fc9727a0af39813268ce8155bdd8b2e93e1179b600754c09a5d3f952655400", + "0236353261f885d01f9233a528c8993d3d75f13149c3da11a7a1afe58f99fefaf19c899e0331a4fa8d52b070efbc737669c3e2", + "01ae8f7e357fa1cc6f6b0b8c02", + "d6781642abc76a696380de511df8dc6efea2750eb4e89243787b7db014efe313d5a97750917bc2dcd12ec22ce3e7adbc343c" + }, + { /* i=6859 cDividendBits=3387 cDivisorBits=1316 */ + "06b7fabb05f2dc679e9610813ea5fa13ede4bdf3bcb96be6ae01228cb32f7b081295c699ca3013f01dd5b55a1b896fee94d668607519776124d25ec97234aa18f4af7fea29281095f5434385496bee8e43a7236fe3a1bbfcab2f1e432ceb08679ccdddaf9fb8c82b4ce43665437f4cece6698cbf4e99797286615a69234a35581d6058fe35c9341f1e36da443d647b7cb115dd226f0c9f990099aa3928263d02d17431fa8704d0978143b00e1a6f023268383ac8a1dbe8a47c5349f3f2fa002c1a1b7543fc8ee4c57bbb051a8974fee5ce684befb1b79402040a84827c3cafb30842b38ae005b59f65792e68ef3e5933a68638f2ce47bc001bd6222a5a2aa67a971972ce35b3bb30a6cd65b4bd24417656f1e04ad744d316852667cf12a87c015c47aceee41d676c39cce06a9994eacdc3deed551e3eb178319ebd4f40a4a73e52b9a44ecb6dc44ef3ac519d8fdfd3e8515f137e157d9d2c68af1c037db4bcacf9dabbfc1118d314ee7659bf40cc4216e544271d39af0231178eb6d06286945a9de699e22a7147a3a9c3038730a118c668c837db2e05a26ff69a0675bf95b061e72c4a9878dc7a2a", + "0479d016fa5c4e47daf4023c620f528f3dfe89234d7f9c7f452bd97334ccba65ec7839179bdeded36160e5f72ccd79774594e19261e7ad30c9f2cb7b7575fb3deba4a0e581fe16286cda8674eca3ddfbc2d7a0b71124c1981f0f230dae43183da35773327d8586f2b29617de47b90cf3331175e396e381029b847c07d93c52ca809ccd4d866cc6c4b1028cb8936b9349ab43475abce17874b4039a8e04e547c6709a2331d2", + "0180481338a344cbd3e6205850e380daa01c5892fa033dd05858818c742f432695983fe377c35b7d23cd486759972f556f8bf03a3066c0d54eb9d494d316fd5c90df67e478c522cdb0be7010b50bf2be88a90fb798102b75d00fe3b95fced28ddd133234e7a7c1aa41b2ae85417396d86ee5a473b03f2627d247170866460fa5468a0010708b76fbf84000a03bbab7a98e24886c9ca5c64b2a940013e58d27053e75463f56e5644be2ec7e762b4f21d9ba729f3ac74bf4090437343fe332cd24ba3de6254bc7ca491997242f8eb23caa81b4c484ed277e7ee3b28ffc1d72b5cd3b78c4c4cd2e0ae92dda3c5a9c6fe0192caf8d68a95660d60b39b6ef2d063b0b72385a18", + "028368ab662c1958936af0cfcc09651c036f5a78d32eb5c8792d6d857e3d19902e7976ac6c052f7e45d54a876827744595af08f78c2d943a7f1837cceb8903916d45ec5d3bbc46c2489e3a4e8b6662f4e404469ed2cf41324d70d3ffe5035e5efe93d0b62b988fa991f2e3fdcd8c16bba023a08f3ff00a0dadf5f94ed1309092cc498f58e014c43d2d5c0807e3a17bb79f314bc6f44d136b6af368733fce7e2bf13c1bfa7a" + }, + { /* i=6860 cDividendBits=273 cDivisorBits=140 */ + "2333c25ad57f6f19d0917bfb1cefcabbf68fdc1ce8bc12932801ed6eb695f603d515", + "0a1245205e6a332ffb32891853e490982d10", + "037eca40770be6266b39fa61dc41e661d2", + "091b9245576e560e99e85a25f46423bbcdf5" + }, + { /* i=6861 cDividendBits=1947 cDivisorBits=1799 */ + "067d290636aaaec38a0f93a7536ed07a471793d398eaba37426eadbd2f44dbeb3e6c438e2d2182d40abd385ed74d03fe05632dd93fcac8aa2aee72024480ee110ab2f94de5e4c876bd88f1867736e7c8f1dd83115e6d7072b222048b52dc60dea391174b686b71a5baf43e5edf4cb14cb991b97950f8f3f8f770f4bbac7d5e69341f7e7a7a413c48513b7f84fa5156697a03fa19667c9dcd7d8546c6b94df373ca251bdb47989e83c92695401da2dc78f30a5e1146014a052c633edd9cfb7f478e466915b61cfc71089a3654c29312e13500ea076e6607b2e5180cd5bf52847e87b95ae64fefcabbdc16acbd93fbe2ff4ca81b39", + "3a4abb8c24df33ba73a97d0a29d19e4635eb3e588e36a6a5093b0812d1a90fb78b81637abf6af41d9a784ed21b2300172e25943b206373d905fd2ffa906c30740de999bfbacc9f0b3fd73c1f478cf73f03d229d1ef4a53a8fb789090d47e24b10c29c52a57127cd5005e25c07eaf8f6ec09ca91723b6ef9a053f32d4bafed4241460d326f24ccab5bd77edecff9b4ff9d7dfeda21ef681dfde62f1fe1cdc8319de1ed35d7d8f00881264295f7d2163a18d88c7f493f188febc26875a2883a24e8befd738922d2cd15ad3bf53714831196d5292b185d8e0f40959fa34646c9ff3ad", + "1c7f4c93d0af7d1c7a6ff089f2093351150c0c", + "362a5ba4bdc9a8fd2fd977fc0c10c87303ce7dfb343662c2f3e59df99e680ad11aa4275ce788b8c53768a91563a29224eca546999f526cec06a491151d4bcba4d34cc99397a1876a70e93a4a3cd20eca7b445c3aae01305c1b50cebfe4862641c5f672c091c5d0185630e084240c3f93dd65b60e5fba06fb2a4d7b53751ce430946bba3d401a5a9a58997ff1f2a34661f933bf0e4a2350e8cb73804950225a64b60350f2c12cd1de37396c9b09c526bf2fdbfce9f8520746265a6d647191c877ab8a9fc42ff0a2d1835de95c4f79d3c9e1577d2970f10f8a5c5d389382fb8b931d" + }, + { /* i=6862 cDividendBits=314 cDivisorBits=235 */ + "45d93d2125bb79a1f578e840f35b9c7cb13dfdbc753ab8fadbb3a89640349693c96f315cfbf189", + "076e4c60973177559910d559dd0018d123f30f449182aeb2082dbd7d3c21", + "096659cd3299eb017b14", + "02963fbdd221ad6051af7a133e04f546f6f96296b88e09cebc2adc2e63f5" + }, + { /* i=6863 cDividendBits=614 cDivisorBits=445 */ + "22478eab8a4d4ad471ccdf68b624cf327a8736e481e9d4e100219ca1dbee4ddc76422a3d0750c9c594f3e06d8887617f6a0314d1cdb987552c1f126b7a503fe9fd76411b5b02fa6449957dadfe", + "068b4e6cdd70406e74eeb49de3072264d9b257520de4f23e09588ff6b579f58119afb16d014f54be71742fd3bc7b603f27248fe25369eda7", + "053cf968476e8926a2bb18e35067f481538aa27552c3", + "04e5c410d0c9b9e0388b467a8a053c27674bf1f4ff4629209f87f8d6f4b8c5e9f240e6b4aa89113af1cdb96b31efcbd24482e358d25b29c9" + }, + { /* i=6864 cDividendBits=537 cDivisorBits=325 */ + "3b7dff3c3d43cbc7ca1b8574cf82ddd3bbe8048037b4a5a62244583e9cb52820afe155f394559a8c60543a8a07e378fca44d6bd7708345acb20cd12cd61e17fa4e71a3", + "01c6e8c9135faf8b3766a2230950a7afd69201a3e26179c77628a3301ccba9cb9d3e13ab696d0089ad", + "217aac6a16110b53b10edf6a367fb5b9b06bcd507d5a8d926f9d19", + "0197e70613369a0446c3b35dc02b9e1b1f558d938c458cc7131c424e0cc21c2ce516be80e9a4cee6be" + }, + { /* i=6865 cDividendBits=2690 cDivisorBits=2221 */ + "0104e5d10c3f74f675c66690aafa17eafc2242b4ad066f934ff73f659e463966f3959e6f007b25f8b51d6a0b6a1fd5f076102f2a346029e6de25a414656cefd9d1e489ff9efb0f9f5ae37068462baf41c8ced8fd575df092e9950b024dccf1ce72bc8cd0704b1f1a061984e0e2a4574aa90de777db6597a499a6fd87d15048c2e844e3cbb1efb704890fd2b8dda3e89e763d4295111651bc1bd76f42e8b6ba1d695960da9d078963ad89a976959cc589baf6b392000a8f4d10f1f52f8512c7f20ca4eaec53629b9b8012a63cf78ace594e50fb1fda85cdc1e77ca8e7f4667b779f2fe0ce02b6c57c39e139c479c6755c136be7a2ec7292abbec36fe89d08e139b2098460aaf9e8f3eac44a9ad4d4ab9b0d914fe85fe942b6a570f8dda287cfad9c2f03afd2a3d0e4237e0be7af2ea4bec3d63cf21dee64fa207f4360ea3dc61db7f7288ee5532c41ab02b6d051d6223579", + "1f8818eee9bafa60fe3093a601ff40e9bafcbcf6b04162a27ab0fbfa80c9406afbc6b7942a8b2725058b5201b16ef874ad11ccb1230f6c1d6cf9d795c06e7b807b8b874ce50d17da1e05eef7eb2bfe7aaa387af7f6f967b267fc6f3c0daa7cfc632288a1aafb774cd4940fc0fa8bc58fabfeb2a5b313ef553305dd7baa614ba0191d2a0745d6c7469c02067c715de4e0582311fe9675ebe6784830333b7f39f80249f3972d4a93d688f8187d8193de698f5f1c10595a84657ef98faa767a24a30d5539826c8f48aedb6298159576969b1ebde69fdb1b216bd2efd2b10ec2b649e36192477683e8ea0bac10a9ba11a99004aca3c903c387936aa514b8fba8405aef9be7e877389a6dc83afc017af054e90db777b8ba97", + "08462f474353ac062ffe4ec27f3d3e68586b64d44606b74c4e962019a95ce1b9cba179061087d6322facb94adb3e382b3860693087d29effd01ce6", + "1bcde8e75a5c52ae2c733c503cea43979ae1088987fb44bfd0d8b517f92ebca35c8a9ab184635ee9e4107347f1541cc9664d8f33a3289243082404585e8be654f0471b7c6f9258012402ef5d23498f88e0266dea938ccffa60d8e95288e6ea2a5a06e1c4e14f7f0859fe64e119e7ca55637f7d4572a43e0261ccdd97c9f859877e731d96ebda44f757f190afbf7148db84547acb7ff8ef8ec9cde28d47405810a024cbad53d7945b9ebbf988dddf0a45add9fe5c60aa1ad86611e59ad43aa2bd54ad4b662ff3e24f2b25204fb94124fa1bab67683415ac5eee66b524b1636b960dba40d5d3c39c54e7029a84c4fca79d53870d9196a07416c8d70532e5771c0f770bd9b60973e482744bb27d7da933ce1d3e0e120dcf" + }, + { /* i=6866 cDividendBits=1956 cDivisorBits=698 */ + "011f54794c72e61d93b8c6952678d5c00451adfa59ffe26676ad4e3ac413542acbd7ebca8090018c5cfa099c23abadbe83c8b5f931a47679716beedaae4ff29f14abc1c39cef02762e2484b36b9d56f34b984c5d9f5e921c49e08d063377f1e870d4c8e5d2a5a1cc731f1c8c410cfbdbbf17f40a7d822b153062a9a69c0d341db7fef93d617c69e4fcc1159e7eded7ab2a1aec5018bd55468e4881f89fcf223d87df479f7945ca983e1c5dcf3ba5b1612f8b07e541760bf148ae9ef01b762a4f935a43e5710973e6e876d2564fffb603e313d49671cd3611152dd5fa57955ef15398a34d0564b4cfb3e1de1a1727e9c51d41a1033d", + "02a3d38b68b46ca749016a72a23d72667dafa38b527823475eab342c4ef005782fc952974801fd3229219401250445b39d7a32f9315b82305b0d7606e29f49a799521fd9f302416eb1bfb3779810e995cdb4c1547f0eb713", + "6cd6dd1541bdbea15afcbb15c508f8865ea7194c8f3b339e10a654d4472ab6b532629b587933faef1b0198fd02087e19c286caac4151414ff053e92e4abdb69829e18e4861eb3d4dff4be44ada45c09b80d1195a55e1e717e3834888da5711d3e7aaa7b6157506a28fecada45726801b406446e1506f5bc9c359cbe28d60bba447479b75011c399f6525ddb16f9c1c93fe84a41dc2743a6317b7d8c595", + "019e88047cb3ceb312f0a15e5bc8be230316e95b8f564bae2b6c1b7e54756392db988369b50299b547380797370ab6026138c737dcadb1d6e8c3e12ce955b4b3ebf501be822fd9089915e229af0bb4799d63b42aee26d62e" + }, + { /* i=6867 cDividendBits=2077 cDivisorBits=952 */ + "0c68793756ab4f76d87da986ebe5e3fc2a1c04a403512e8822d2037398613b2425d7fbcdeccb5cd633ac4a435c62a69d1698a71d99a6c2786ef9ea7b5287a631b4daf17b0f0bb4d3ca8d1931f377e337f890fde7c2f3b39fb7355ed89010a4c5b3a536e5323521e347ecdf404cc29d32bbda63108fe61dca6df0a77406b3054d49661182f2a1fb3fade75395e009cc5c5e81eb900906e2ddd80087a597a8e81f9ee4ee7a7ab29b26a48440d2a1d994f4103c7661aee3aee9c33e74818e59fc56bdc81aab806bb6843d31bc8864fc3a0e8c06a1ebd26953417bb8af08979312e626ab0f717b420fb4613c5e11db7e36bb0b311d814d215d7350f748f8f69f1c1e9c1fa24b", + "c30d8dae8061e7af78ba4eab2355f5f3cf29df1f3783e99d963aaf03d3fc67799569af6d2984f33ff93e649fcb3b5404f2f289fa7c353e69b789e2227f48ebefbb58626fa3f2f2180e4d03b51185aef03358e47a8dc9a0a5a58fca796fcb341eaaeac2219abcf1dfdb199af54db4220ed6fd688a6254c1", + "104901f6b6d6161436866d2fd4f07dddfa7ad74028d7e1f44a07b1729323c108c5512fe232eb305d8535c75f99c634114c0184380a9630754c2f34ef76f10e528f8952ac26b8477a0c26616b2a3440db8444705348f020f0dd6ccebdbfd94985bf51a76c765e7d9eae33125c839ead74eac67b3f3e8bc0a3494b49b7921a40a4bc5275f9063644d622a9460fb0", + "b46b497e8579994f5ac388e47237b1eeae3c090338c7e5dce4a0feb7eb30d995e8a66e129a165e6d2c48824a001eddcc0bc10ec68e89def206df0d072179a6b348110a1070b7b3df7c380deabf5998147881dc98f2f86cc291d711a905937ad037978213f3c2aa873b6104e29635870eda6bab1fc80e9b" + }, + { /* i=6868 cDividendBits=1073 cDivisorBits=58 */ + "ac64f595d80fd783712a33b3742d555ee66bfbbcf85b61cde9695647d21a066691ddffa15286584f0f8f2bf321b565f8dcb74d98d5855402916769600a95a67afe372799c27d1e06cfa56915c37eac56b26711fd10cae6db7ac887324d95c9b0f6e61ce6906265a0def30d73434285348acbaf4a3f22904f2574db67e28c99bbd43b3354b868", + "01e91cfe38e6b3c6", + "5a3b0582aee503d8041d09134be8e4a1ce61b1f48413767ca32cff772ec7e7d84775780c8c9dd34025eee6ff8a3301cec2902a9a7d24f00127162717763a82c68828fcb9a3f380d4940441ac03d5d8c3e8c2bab67800def03b51b858d65248c06d1c3095bc5b2c1d5be39f9e2a30ffde77d8393742f4e289168d7a840990ee", + "7330b61dc43654" + }, + { /* i=6869 cDividendBits=2896 cDivisorBits=1453 */ + "e4459802b5bb33873664326ea06f11f68c6c17436f6af3768499eb177752f8372dbfe09fc2d03e2b86f83dbb60cf420cca620cd5984bbf47764cac216fdc245d2eeeb105e9f39ba7599addf1d25b0a24712243dae3d6cdb56b3826c49dc72db351dbed76957132acf165c9a849145cde6ff49ae2ab9acbcf00297ac3a35c3e4eee4fe501a38cf2e78b5c2022b0a5b3acd57ae2e8fcc42a98400dffd886388b535fdd3edcf319b12b9d684fff99d7714c529cdfb44a77a72f8bea7c91c5a76dd620b7369515166d12239cc06b46b57952d35171c1c764d78511a21095e27611b81e2ce506cf999701c721a3c5e702881c21f32dabbc38cb1221bf16efa47f9520bc1ed83fc3c278745dcd5f6ba72ab0600e7c5951c0f12881cf4e5ed5011fd7912daae53ac80995bd9c76c359c2e9de079dbff6738c2b827b4616e9e6e45757fee96a0efa57fbdefcd60c1c68d36f3d8fd83b909afa36849ec713be4faca7001b09e27ea1ab3c0b6bb2e9", + "1d67198ca9a92bdd880052bf56626695c7bb8784ea2a65a12d3b38bba01e90b5f5aa062b4d5468ef6b42786256c271714984757b06e5f7167a1dea6cf2258ada06e529cc85b7c7e8e92659f1b658f40c0fd1654287f56ea13d3fddf9bd69a85b4cf2dc9e7575f9dd60adf96610411fbc53596b1862a85cfdf44bd21a6fcbb86cc7bde7388c67a031bbc09ba1718583c3f0aa0268597b8c16bc7fa94f435f092fc0677ed903512ba7454cc19fde56e44e48c26e573a3a", + "07c37d0bd9d708ca70db4430ca48082608aff840fc95befac77cae945adb73ba75844ffb5e2c1b6e066a21617b3baf79e06ad3764dd94970da5cf0b481fd768cccf81c9ee623a0ddcc461cda7369c8161670cbcdcfef7f170f084fdd639fedb346fc9ad5e0d7d6558214d50d04f4b39513343443ddac9b543cdb8c1a06ed64e0448d919d3a2c05c38d7d7be5c70fe9e2873031d602784489fc4ed1e2c5ec97b7704817b6be9f5a4f3734c731bd76ab073fd5017031", + "080698301a6422f7f76a92584bccc1db36d2095ea1fa676bdf6b7b90a63a1d4979d0b519121cebb4c38a243570589d62a48a1c1cca83f7caa18658c7ad8d8926f012fe8f1d7895c0c806bba7946729221169677f28f99a1d6625895110d7d804169404a69bed577f1cab3b087ad4a82f0d203f7d5b34bd82463705424368acef44551674d7890ad9934cd625fbf7d6ae4f3365af7d5eadee2e75d69f2e66bc1e991eba67e77dc6808c6b155137bc5272c1af47062dcf" + }, + { /* i=6870 cDividendBits=1785 cDivisorBits=1090 */ + "01ed7bc867f8adc43f6aeb5565cebde3c26914215792513e0e842808d6692e631a60f9900fe6ed3125322ec7a95eb6b092616c16c4b0eb487aecf425b1d2c6e25cc2d4362e80c943e8f80176309c15693a0395b7439617e002fe9b61cdaa27ce246fe3feb0f816360bc6be63999fbc65523351b8f239a04117e49472747a738d13845b9f50db3cff31abcd4619dbfe9e7894849547b370b8f7bb4d53d0a518e5677f3c27f12444125def80ebcfd5fa0014dd896676ed0cba90be99b9f0ea6caae484d8e21cb94a7405999da4923966ce8d3cfea1cda127d5385db83033f493a2", + "0217eb785b7318572ac0ed003a1616ee7aa23840326c4a9910d42a9b272bf43145af48797fcf3f2dcca82e49209c79858209020570fabdcd8d6c0bd0a7c32c92fea1ad4c68f944a591175c5ea478d8845af365249b2696fddd8d654f887fc483155746fd362609bef5fab264ebe172471cd9a163885b68735b0efb989b6dee36340393dd0fa9f1a865", + "ebba98c809a1125d266a6a0a91613f00aaab9590a2b9f44f899a6c3dd4b7d14872663ab6d4ec36d01e8b4f730cb08946ee55d9337d2756eef13fe6bd999a1d450793599630b4cba74b73bd6a94569a064e12e86baab314", + "0138548be00b5bf22cb0506114a71ee0971b042be319cbba4a2c3357c328c2e8655e6de8bd81bbea442889f0b44ff7f4ac26a72b6a772faf1112558fa3890893dbb52730397cdd225a9750df5852bb879d7880e9ad39419e080a6918ec2280c6b6f1db1a51707d3cb9f036e1eb018d42826b53548ed20db5c3b0cf3ea4f87343338731edbeea42ccbe" + }, + { /* i=6871 cDividendBits=663 cDivisorBits=635 */ + "06b8324b60993db50effc827a05d7e86d68d1c2681be0b4424a46f7dc56db444240ab9263ea8e9b07395db0a9cc5faba372fe97551458d3f7d42e4333102a269a704159f8e3a2b1e0129e781059fca39a78fbe", + "07f671612b684c96848a5f6ac95261458b8763f2421784adb02c61ca0387852d6cdd7801ca75a1df770b5241423791bd08deac779164c4d22165f222cda483e2220b13511c416da20ab4ada28e5888d3", + "d8085e", + "015b4e33e35e579ea7bc207bf4deeefa5b43b52e50cfd9b4e7f83b125de3ddc6ffa9b6ad17a6b88792d2a90fb5c24857b9478814a50a3eac72d3809e7c52cca47a72c24c31d4cf9f6c18aef3bed6ba44" + }, + { /* i=6872 cDividendBits=1256 cDivisorBits=231 */ + "200805a0ab23e437458715b58b0313548bb0eb9ad8ebd31ca722523e8fe4e09b16563fa4d29b4fc358dd8d2d113e99051245bf473bc50a8ee2ef692e046b286e9aec917498d7dc83e0ecf977b216f3ce35cdbae40f4e3e44ad81c7dfa7edbc1c2da40de715613a63c003f4def9b599e31e620669d0f1720ae76fdc6a904a8e9c993cdebe025c5f1277006765018d77265aa470dc2c1a859867bf1511a2", + "dc2edd54099b15acffb20e9f574c0a3df70573e2d0b320177697a31b", + "253de9151446c99779ca0780726886f53ca1e667066956b48eb975c1264f909486814c7ba551de56f50496616c3297d39e6421ac2fb26f4dd4b106cb504ec6c1864c658c9070c5c06c5790f18c86206e9ff41e8aea2f27fe9134681b342f3e546b170637035ef0d15022872c1ad8caa5b058fe1aae33d9df9361024b9095b48e1a", + "5617112565b5658297dabd73fa1a89503256cb50b0b70580313986e4" + }, + { /* i=6873 cDividendBits=3764 cDivisorBits=2271 */ + "0deeea7de42360aa431b131829e0503db4d866386b77ae43287e9e9b656dcbb47461d9878b8f9ccbf520ff10d1a2cd60bdbb3c755e24d54ae0dbed53c1d9cf45ad6aa84d71466c526df40ae14876d8b984f5e3381a09b7418fd4d963d05a6658a7bfb3560946d4b2454e9d1fddac645b56c87ba953322df69485dc63fd305b132bd9d310d384882e3e5cf93e68752ce0b5c2196c0f8490df5a3801a29fe6be2aa363a575d93f7da0e6722999cf4c4afcb1522473be2953a9b150795a3fd9ba3176365fe8991ceb8e839e47cb3cfae6a2a0804c1083fd9b7d834ffd7514c2cc57e287314652307e8240dcaad6f655b23c1a219a8c1633fc28e1bb7d68dbe9d551771d5d5f1ba759333f9fc7dd67edeb054f541526ad023a6cffcddb9f63c4e4b96dec67cbb24b7f46de5962fef5a23985a536adc47baa2ffd4f9e8cb827026b03e3b739b575d0d84b3b4eb8943103c5683e23d31844d65269c0dde71509a2c69676fe8bb2b3367a71db98fcfadf25e01710c328e1ee15f719c1a6162d2b3281855aba076c50bdfd1b47ff8181e6ecba1e057b2fb7ecaf67fc88246b1dc9c89655066840f9425fec13f0288e872cae3a482246b8bb5e424f2efd10a7a6e0d078103391978baf45ecca9a9fee75ed827bf4782864e2bd4ae1", + "7bc62552bc39b39215de857cbe3f892cba0ecc26aa5a6d39b2d9120a0ecd2db97eea4fbbd078c776ebb4d138150c428af1116116c55b4280c6431aacdf5f413e720a86ee1f518bd7ff46eb07bf483b6f15747ca3af1498dfd7b574ce3b51a390ebb8a6429e7e5ce82816dbd0258adb10b93124380b2529180be4d629c5a8ce63200ad0152f26ad105c9eab073ba437704bdc188abcf8aa2d7731e38c319e748715b769ead52b65b1f521e5f86e19da61ddd486bbe1a9e3a3de4c4df9f8b95a577fb520c179eb9ef9f790863eea11aac5a6cebc5298ad72916c1b54b6d5b82fe989fc3273f318d7947ec0a127c751cb9f0286f02847b8e54ed3011a32495bdbf8540a3d78c7f052d5f4b34b3eece1b64785e7502e4f06bdf0db3844b3", + "1cd166ac8a960a92e2f2625bec0af3244499c03e2b56b71b9f4393816068b164f8a7bfc04956c37c5728cd7641b4777740fa908e1ff332cbf9af909cdf202546bf55f79c64e67fede668da501eec481db2fa33151220dd928fc52bc20e3119201350669e81138a8f0912c2f82b85e761b8d34dd61ccfdc1c06e75504fd39e5fcfdebbee7d5030489a134b80be7f16edba9df4f68ec8c2d535e8075a15c935af9bf0e8f88dc244552bc77c83f5aa537ed91a12328b7003bb842d6e0", + "344cb9c94da9fbd3d4bf3730d954cf857ce4485436fd2f8f2cb2d24f6af76542b862b78df2cc875b26113bf0001d7f107752fe35314ebd32291bb626005905c972684e37adab0faf979d781a6c3b41c86e6a700eb50ffab925d878a1d3be097a1db310b719817f94ec8f03367fe1c7303e8ecc6d89caebe06231bd7266605f496f971fd8739b4825738bdf84e2ada2420397e28dfc036bdfb106ef9b9610622a740cc7049c4de0df1ab2d6bb2c2b5606dcbecd81204c29945a7a06a57fdf133d0990d728997a04ba7804192fe4ce6293aa51191a92f711e8d50ea548ae94cf8af0755dbf553ae2c188fc25a454378b178ed5d5bd682f0033b1169e1442ba1eb8d93f9fba2fede04e3510ba02d93db4405d7f2db47c34d340a9ed8c41" + }, + { /* i=6874 cDividendBits=1415 cDivisorBits=685 */ + "750db332359dcec56242f2e127c517fffed97dbc9a1c6d806e61419121c8258a1fd648700bbaa77408bfad6488e6af914e95dfc6c421c7cc505e0adc2e6fe725baed7c5f484717441deb9d5b2fdc70c9d48a4b8052315b23ba6814f576e2977dab65ed2d424c12e3a065b30042fa164b67c0ae7e02dc4850b30c6310a669eb809b84392d57de5a370eb31cbac656b4d92d841114aaf74e77eff19f56033a86b4915197d71beca47a4c40006c0fc2c46fd0", + "1ad026796426e3e4b34841a65cc8e44f5243b4d8401f1420179fdaa2b19875e710c0502978cbf9e97bb3d303566e73d2c2359e6be5175911330c80d743204dd38164c48680418f51c680bbe862c8a7a01abf822fbaad", + "045d93d01fccd65935f8bce8ceccc7fb14c03353b00e4e420658ea11741eb299f3a736eaeb0186f9442121cd9c0ad8d1ae28b9e6d08382c145172ea07b9ee3549a3b326a34c26c1d338f5b1810019a653e49b80c38c21e6804ca46c6", + "0b544765a1aacb5ff022b14bb110b6cca6fa4f9178fb0345ffd606834d238129c260a7c55ce67c03d668c4d08755fb5b0c6d56316e1388d0297c300813ecc395441ecbfe950c962b3549676bf058ef57c97c044cc002" + }, + { /* i=6875 cDividendBits=1192 cDivisorBits=1108 */ + "31cf898e2e79e62f1489dd4dd79db884999725542834e2c4b6b52e7f19c221b86b623beeb0980a361425ced23046bc32827c8d004704a4c352c567abb0a256d6079535b73038b515889827a3af65b43e9f26e01206f87adc54df35323ec7790c61e62ce13e549294075f4bcdbb684145c411bff125018f610c35d71881f322c5fe28b2535c2b2903ed2a374dd45a503fc52878640e", + "b53165950d52eaa28bb6f8ddb95c5f5fbcda7386f1217f02b8757120160a829bd5211309a4b6cd300bfba1e655202cb574546d3f162e44c679e63775271a2dfbf0bd6009210491278819029c73b033ce048db7b5dd1913465130256a9f5ebfc8903b89936dd89c37ecbf47d3cf69750b2090a95db5e3d87bce67ed7cebe789d914c45ff899ca6d345a51", + "46601e07d4e4fe91072881", + "39648a932fef5c7d86286e0040670a8faf182b5e8ddf03c921315aefb7a1341ac492540e2c267cb27d5dc22a46dfdb23c31f8aa80b6607dbe04fd144c23e4749c957dc7cfc32d153bc49877a7ff6534056994b8b6136ee3d5e385d81b63004bea2e1b33fbd74722d8031a046f62f115a381fed00de58663825082ea8aba25674058d4d29bbbf99c3393d" + }, + { /* i=6876 cDividendBits=515 cDivisorBits=505 */ + "03fab3017968bfdd535d7a21ec214c2ea94e0d74231ff5fc61461ba4249b52c1c3ec18215e21a341369dd455ecc80ab5cc771e67cc56173863e8c6c856ab06463a", + "01589c99bd5b48ebccd8b385a1ca493afb340a5f61a1b9aacd5f104dad9bc19879b119fbcba151621453622f4a2cb3ece993494212b98a06ca414e9bff5a1578", + "02f4", + "01048b76372c84fa6d87fb4a57ebec7b785ed276ce5daffac95f7ebfeb5b0b7c8d1765c8c93eeb9297966245bc075e2ab02a10ad0a2b9c569feaa3a894fedfda" + }, + { /* i=6877 cDividendBits=1292 cDivisorBits=584 */ + "06119040cbeb7d67ca151d7ebe8b91a884b99a7783a15d5352b603280a627eabd4eff81a34f6399a6b703f226a45438a96f482b61d2196374871976a07af5cb9fe7eaf297067d0cfe0abdb50fdb89975f285bd1eab38e1554f7834a12694136c4ac4f9c712a2be25e2132c513777442153601414c274560314fc83c6d40bd39573cceb27a518e4612a224dcc173b138b5a57edf3368da48739e3c9c3e19ad598a2ff", + "87fe25be23db6409e82fd19af62df1a304544031cfed950b3241226f0070dfd2133f39d36d02de99ff6406fa32bc983a674715c2c486dc26daa2f7acdbdd62ee5c23e5cdba8795f949", + "0b6c82aaa251ddb71cd981465f206ef1b656d7cc8cf7269e2afb9ff144c0e33ef4d486d86bef6e4627d995fa7a8eb233b2aa11360576a1ed9230f07434a3b7f16ad8256702bdcb0f141c42c72475d157c1a52543eac289fc6d", + "4e1597671ba8d32d07ce8cee76fd4350553fe892a2eb89746d560b00874f4a4ed201f6b32630f9473cbfb664978b566a7aaf53b077ad5efce34087e9aaa0a0ce1192f47dd1bf48a2ea" + }, + { /* i=6878 cDividendBits=741 cDivisorBits=225 */ + "112cf8c76cbac01b15e2789fe105b3f3d9864ac63e1c1542a1349586161e0007795a5ccfd7e4ac825d2e584ab467f86e645f62f74afd7fbc979034b85b2648fac81db025a182e23f083a8b8a5823d048c1f9a9ef813f349b9f9e31eb87", + "93b824b615ae159dac11d29d0730e34b95c91fead37aa35825dd7e50", + "1dc4064ce7133e6aa35ff0056b97190cab64dbbff1f015919a6b25e7e03356ba0448cff2f5e04481a9ade0592f25578f3c9729efd94e1074e9c1c8c9ec575af2b0", + "7f67f807287d31b518d9d4e50053dca26f3e6872bbc223ae9c637487" + }, + { /* i=6879 cDividendBits=1937 cDivisorBits=346 */ + "010917f1035d798407163f00da0388fec980612bfbb069db6b010efaf089a9f1e4303bce5b6406caf34925ad5241da2e8b7e28b50de222aac8395b4bdb18f9e59cc5d94ae19e5af3523f420675c748528466b76df66e0481656d38bfc023f87d5776cf675af79fd3b1c2e12ea5be14c9240609273868f6bc405ed52ba733add23b668fe36fee72925013675f761c53a6a0ef7dcba106d125e31168715edd3c589caeeec57eafe6dcccfc742702bb04788423b032c9b100a90504c969e6acb9f953aebcb1f0791c3191935d298cffa78c6b13b72bd1429308e75f74c68fdb6b9f25cb33084d4ce12fb487e9a8881018070ed8c2", + "02e8afb52456586f3e84e33e662b92b32ab5f74898f93f438d289506737ac8c2101a698b9eaf9b385f76878f", + "5b2182f7782cd058d2547ef74a7c3eb547b60040b2092c28f928ee8032cdfff7a02fe0ed5c9f13c8240e3762dc44e405b97679f2018b9220936baaaf8614bc65efea46802cad21670f39488e04d1fe6d4e7547e99c8905d32cb743a65d5f09db069261a7e6ac9d5d029a91e704ed8fbf451f77dbd5b3084ef70031249c3418848103fccd9cc5f93b7b6b9642b1eb7a141a042ed3dd8284a92f72bd2f33f4177ea4e15d7614f755dd03a2d7f11d415cda50dfcd122ba8c6235c915ca8b93b44f8ce31fb896c12ed", + "f76d5471511ed0225c5079ebf3be22b75c88ea708f712bcda3608769472488fb367e1dd9f1696f99774b5f" + }, + { /* i=6880 cDividendBits=4087 cDivisorBits=1507 */ + "5e7fd83f4ad471769afe97ceb6e6eb26f15ec95c5b34e9c07eb90036f33e2a9554e042d9abaa232957e85e8eb81f4b14fef310e1ea679533a08821370eb111bbb9b519dc2fada070627f500bfdafcd30bcceacb841f94c2889208e84054d009e0c3511090520bbca02d2df38110ee02167cfe186217500fd9d68562843f7f669516c90b733be898b5833b06fe181e943be8bef125153a87b164f5c93fbd90f97cdca4dae52b700a57ece8042f221b81addfaf631dee994d2b925f61f214fe53294da4c20e26bc01ca28299fa289be391c793eef7f641e2a5a755990966bc3d09a9712e8e40810759068e908af89afc9bfde44f28d869740ee5032a16c78dcfc6fe3d5c42de1984d3ab6eaced4f8554bb51c33c11ea2ac59bd0dca5675bc4bbf9be969683006c465259f827c20029e63138b025e1b07eed58e0b5e7aac21a45283198c2b19884b51b940b71eb01491ed0fe7f1e00e4155fcfc37c80830aad7c604ebdc90ae81133309adeed3dffbc148218afbda33b9c78737f3c02b9df7eb5af8cc2cbf85c7a9c486111656e15860cbad994bf1ea16fbb05e590e9612217de5ad99dc3afacf0f449997d8491dcdf29ecc8e614798940379e7257edcebecea2cd29cd7d068f07b2cf2dc0efacb80477f2de374f866c7157b5bc0c2ca1a40a486d51816323f5d603ead08b22514e60471f9194edcc38675d77d4cb7f0b459efa", + "067341e779dc7dce0693d6b4211e8456f074d8d0a042c78e4b02e3f047e42e6127150675a1bd6cff20e23900c713761bc8e7bda3405576d5150201a8afadb286cd3b5e3ecf1da09832f7ff9d63b8c0dd5db1a783c5f1d65665801a8e1d07c16cf2cf550f8a3cd4592f85ff76bf188e153f1455cae47de86fe4f9c77d0d5081441b3bb48f8f8ca8a72a8b1f6c3f758f24faf2e99ba22cd1eae3b645487abf0950255bf1d7759e4d6296487abc3d25a6edd87dbe4d3f66326ca2a82d73a8", + "0ea68b0ad0219dc1dcfa82923b089a4d277e840054b5b48e9596363b564bae360a77c1d118c61a86c6392f37ef3a9a7a75003fac9fc7a1a7f47c510ce60e0084cf887856da0b865a52ba8c2b9bca0ce08e376f2933d7b8b43ace169cbfc6f7f73b82b0b3ee37afb7f08eef934c2540a611daf5f18ccca598cd25e0e7f57a76b240fdac8d04ab4dfa1561400ef4c4bac53f9d9e1e2d4dfe5b2759bac744dfd7bd2154b27aa647b7253719f0ebbd57ba5698c298c8a1a12c466c3b8c42238772e54b32d367b2d5541222dbaad2d1d614b3ac8e62e09d087795635a374e3226c6793baf38c71db6c75ec08784dddace6a8b496d5bbc9d632ed8cf3a55a21e64fe3213cbe265c5ae8df27d6df51361822733fc5d22b73bc3f6024a3f84e2c5ce5709fae801a560f911143924a63125d6b620b381a90ca4546c5c88deba4d72561d82b8cde5", + "02ce06b0aca00dd0cb151f0ad522c9d16a60836852e9d0bb9a0e7ccf2353f11ef0d291e7526c3974bc77aaa12c151284959f83f03a1a478a5e84020fe4176899e6ae93a4d742685c8f9956635fc323780c8ea0fea857433b1e520e6ba6634af9553c4526a70263100e18d800e7a0f0db4e989e03f7fcc5943e14d22688c58460d050292ff3b5a331ac5c5ccabd91362362ea9bb62c21c4adc0b47fe5a74ed5c4558de9d149b04a2abb973fb12842672351f7df3e64a29adde3c43fa1b2" + }, + { /* i=6881 cDividendBits=3400 cDivisorBits=2661 */ + "5cc958406efd93c5acb0e55dd4cdac56aa94cb4b57066f349cadfaf701f5f9618d81412854d7f47a2d4456477fc99d3dc96d78abc56fade34089c36ecf97b03d6fcab72223a4061bfb68e1a336e2984e4b5865c3c2a7b23897f9f36dbf390ea52a645f732497d4a1e3badcd586ea7611136462ee4926a74bbafa965283b85a41db91b4a2ae133014075d303135ddd766eb9159dae837017d31a5b8368f24815fabb8fb8b3e702b1fdd7f0b7c2558ddab7311b4c0251240fdfc1dfb835f086163fbc760eb55a395076f4bfb934f1287caa0614ca2971d1f41ed1c0be2d94895f9eadec0248c4646ce3086cb46f018d38eaa9ff1a7713c7afd5e0892b5fb2d4eef057a6eebeb3c9488d3959fc9108d472b0b20c78ba26dd2c012743373cc722ded298c2c977ed9fbfd43c0dc2d2aa20c31195a66b1c61fec22d8f46773af8c6d3b5b49ea6b3e88e10f7c39b10a38e24e00f6fbb944a18fc6c155d54fc1fec44c69786b72d0a0f8603b0b3cfa60f215e7e9d6897ba852e1ca9e853e2018984696a49942ff861033de9614592d88534fd34f2cad5e662c3a9210fb09dd3ea815e2d7f75ab498b7c00ddf63", + "0d4097944522ee993729b8999cac8b30c46bd69fc89aec6b7410881ec414ba695847192c353c44c6211f4e2aaedc9eb9aecf0a2fba6d50743f5780aef6268d83c8ad45987bc58438ea1f6eb14473fc9920c431bec6041f338aaa8235083038c3ed1104cb3084b1b107f178010e1f692cb9c97c8bcf7530dac68b6eb1007fce7367a286ef7eec46757a8b9acd5c9fb3c3de1372e9ef4abfc06df26ab6bf240ba5b254656cccf2f91dc7f1aaae36590bd03f571e81c6afa93817f9775571c7cd0220c70d003d4d6ef225410cfd449847a6de565544faa6a5d29c364bb3061f5ecb2c951be8a8f6b9a9aba6338d63a6c60185084aff747f76630c87a7cadb9dca68a1f417b8b65b726c155dafe960b3c26213bd780d695279b23e7f3f795ab8a5e66db21be95f64f51618beb5b8e4b18b51038e20a85cc6c15d13dbdf2696a7a92fa794433cf441af177a39637f19", + "070064734010f1a4cd9b88bebbf93f60b30db8943ae63efecfc74941ba8bd24d77bc490032159b58abc613e9be38f7f817a44becc72ac84085d0530cf5fc93b83c7877365835a2c795ceffdd337e7b395209e411ff4104c71ac3fc168d", + "0a7b9a1166161d2b6887acd2df2b146747d402af01442d67fe798e1d793521bea4c88132971a521c48e1a26022227736951d53ebe833a87d86a5def03b25649e08591c44e71e11c100404f44f870530e9ae8d54032287baf18a36ac6f95c57533b9db0f089248ba0232c0480aa73087c7763971eb426f32ba0c0b7171e47a009677b8346da0a4c6a21269d086d5df5fa519200c720cada427c75d6fd3ac8fccfb4362ec74a86ff87272b868beb7ee5d668fc1c05f13cfb5675f096dd98758ac1839a814daa396c89d66055990c5d4f117290a89074b6b6f074b5a3a5ffe5b435e06543a430f34980b920e243a617a8595155081409647a7f8991fafdcddf3acf87906154f66855051785848108521b851468bf531c8dd6b8885a4ef91cf9646cf93cde4681cb777ca17f56896d27caee46b91f2eb351b3ecbdd73eaf4121f67fc990d06fcc69ed8a2c6fb8b89e" + }, + { /* i=6882 cDividendBits=2011 cDivisorBits=165 */ + "06b06f6b355b295ed1460c1485dc9f36e63fc674d82cf714c5683d4709dbce46418f31c7cb74723f7bf74d7b05a3e92b11b718945a2cfa53ab48a6a1ac7c350b9c806f8c8c8f27e46c5a640bf82c79554e16363eee250c9b89d8d84973b01fab59acb70d4e3bd234f1888be1b7bc3f5b2bcc19be7d00f4ca45fc6e07d122d58839fcbacd68367ae7354e66df8ed2667df6d7bf034fa728e5745b3bb53df9d6cd23ab3b72e6a042720d9eaa1fb84bc8a174ffb4685e84fca94e3a9d3d09a967c77429f728564bb4a4d5d1c99c50403ec20a0ac87287c137ec9b00e0c389a58c566c7b1ff18ea8a38e01e0af9cad456a4b8bca2a0101a90ce62300b832", + "1ca63be8ae6e0290e5dc4bed8df6d64dc2ae7d9ba5", + "3bc5afefdef5204315642904bdf4147ff79964738e25ccc55af2f3851e850fb1109240942a3e241ab8505ab893a62f819419e7eca817aa9f9c1a58585c23060fb1b95da892a5dd79b7c14c12aca76ca3726ce4a0ddedb7cfeb55393f97e1625e16b8df4b8b4a8b8da2d76df433b6a0d4e15cfd5eff7bdee36326f09fb25b84265e4dbb8e7c28135d7350631383342290c0a90641af8d0ccb0d4c2098db3f7cf0086542606f4619897404b5ec933dacfdc3f58ad7496622cbad0dda0028b890edce3a06c8e27c85b66e1a7f5893231dc63bd3fd236f8db7c15990940792a9ecaf6c9c3dfa948695", + "02690219404d348f8f419e8e1f83e3b652b708c329" + }, + { /* i=6883 cDividendBits=131 cDivisorBits=106 */ + "050c6e447375eb19299ab958d0ddbd4b31", + "01a4f155714b585f46fb8af24d1f", + "031200c9", + "019c207fd079479a015ffc50bdda" + }, + { /* i=6884 cDividendBits=2505 cDivisorBits=844 */ + "58ef45c0656a98c9128f8ed5cf13c1eaa335033d1b985d4813e32396dc3a2070f8cff06575f2d6c5f573bcac483fb935074810eb6d953f8ed45c4010bcafa97fd479e9bf3b1457eede2a00599935ea21b3c58a34d9110f4e9d70908b7d9eb429c43b1c19affd9ddee4fe0305be2170b57d1cc96415e2616a9f78310895a9be63b30e5904fc024c4a5471cc35fdca8982395b28565268253f8caf87fffdd65a357a23701c42b82178a15f263558fbe446eb0f2c9bf15005402868fdb980f0c3e932d4318fbe630c97cb45c27c8592ebef3eab30448e0e028a56fef03b5da99edf7b5ed3c67ecac65d985857be91e0a366b7580fb892a36e8c3f5ce3495e7a93ce7895d62fe63bf4c97cd69182a75cb510c0761c9967a2dfde2061cc6608787d1a9a28f6fefbfaa85b8700e0b66d9b9b4ecc4e0779b956e838a1", + "06ddc7c5b875be5aae5acce78136da72131552dca8f52d209a82711b208a59fc23a96585c16fcbc2401dec2c67b8c3129f949e4505cb53ae495d2a90e99e8ba545e01e0e33c745aad018fe0c616e4671b3a164e9c96696aece9799536ce007e5bd7f776e0181720ed156", + "0cf3c8f5b0f8c8ab6a5969809516fa84ba736abf56a573cd187c8197db216480b1cba3c0d3f9aae559a9592542e75e02e4e6b3ad0b8dafeef3bdc3f68f0b431602a172fba98a3f71a81cdf54c6da196299e8d7c8fafc90bb8b23772e9e0a1e206f20d64aafbcb5654bd2376d26d7842071c9c892284cc8d35e64a69cd61adcce3800983eecd6df47521ffad6b9f99f6a31f2329c9f321d72d2eb3a4cdd487e71c014291aba99c4d69aada5b64db85e0dc2e72cb6e3113deed23ced6b2c9a81c09fae2045d099d5b5ffeb8f7078405ff6", + "7cfac9e7406661718509437198022d7c1f451a0531fe2ebdaaa6ddc16bf435ff7ee26b116190adbd4a04f14b1a10eb5876d9b6fc7a5bc534ac6fea8bb0fdd02ef6ad6ef50bb87caf692b3d669a1149518ce254f7502f17d3c96e94d373a9367f83a892e88d977c25fd" + }, + { /* i=6885 cDividendBits=4038 cDivisorBits=1609 */ + "267b8944ac51f069bd569c9431345bef3d756ff4236e54658e9a5bdadebbe9db363caa7753aaf8a7822e7d61bf30c91d8026952335e1248357f07e06d51d4182200b9da0b9e535c30d393e56b5a4be5ae9a7e57f202d4a27ed694c850838de85a194badc91bbdddc72c9bcc0ea17481021aedf48dfe0b811d1e7f96ec254c77ae46891492aba97d69b75d361e5156041e1962e2aa84101cc3a775e7e017ef6972b29c724f710ea90393bf8e3e5f45a59e0b5ce0803dd01f01caa955c3e3f98494f5749c4bead8b708dcfd9cf6b9d493f62510c2d46d108c5f24ed168c60499b203d19480fa518bc8421000b4e38be97ca3e339769b63cb50e53ff0d6cc6c329fa0ca12b30d2745e28bf820b3decf20d89c9f9b86568e8717e43f2fb2ddabf2656876085d704f226d74b96d5ae6ae1c6c51809c599a8a2a890ae8452aea9c2cc26a37e7abe1a4e8e817cc8086944b1848efd0fc0d365fd4f7626494a23d65ce6a13355bf2b941244b5242da2ad5a585d5c621f6302810e7201ba1ba90beaa185323d0227a32ff764537973a038c2c48a5de4aa7a768bec2c647cbd9d5ccf2bb061c6bb7694db9212a816168259fe1da5c196da1acd3395c45c32ac46b128484626b4e940c96da3027d74e32241ddba40d06ba21d34b0d9cf183bfa6c03b8b7b7f945cc5b01e116f3c627d97ec3c75959c1559d11b4e035ed793", + "013ba88519782c74434b608ef1d3e72c9130b5d43607b749bdbffe9a2a4c0c4232133297fca3ecb5b5372a04c55674e240cad405a6787b261aec6717dc505a4dbaca3a9d071c7e67a9fa8abe86e2cf6a58e7369a6edaa73b01d4db735d3c519716324648966473f25bbea0373c5ee7b03d2a3d16f99cdfb79e6a571e460d34931fceb9daee6c68f759d171ee9464e97d44643c4421e8d315865e16686b0144f88641264d94beb0ce0e252362269f13c69b029b6e7d293fc23cd15a37331e4456c1f25d85a0422ecf5f6d", + "1f35a19a2195ed9dbf046933c717eb11c907d6d2e58ad299d164499061d13af7130f68fc6c15840653be744057095303e491f8716ceab750234d7bdaa74968baba314cdc99d9db782691cc8cc3d6e2d147dca7ede1c40505a9fa17870acf73fd01c9f6a1d7787a51557ef0b71e9129b33ffa387763f46a98020dd3f5d4ff9f8af844ff92cb5aa9e21d5b8b01cceadca5ad45b061db8c60c3ec3530311854635310877ac46c1a9955d77a17eaa62d82d2427cbe0c082dc31877156f99f6ab70bf971d7d44560e75bc021c4186bbc1ced4e25a1c589d3c95d1580ad1c1117e2693d12e3d2a931734e1a0718f9abd1fa0a1261f78fef9163ab84d283f03e67b8742fff7d2fde0b6bfce72af6669b51bf7f22dbaee637357028533972d8a1b348a47b1135e41f4843b59c1d8340b2f2a82d9", + "75e1b838f6a93c8b99df621839e2367c6e231769ae27d9a843d4c2bca171085e0ba3017740196f435ed5c936422c1f2cc4fff654d1a690fe612e1fdce9afc5a9b2a159b697371fd7bc3c1d24357f9e70ad769970816d746e56a3f52a29f5def847a9196af4e4f5aeb791f363dceaf58fe468fbf88ec3a6b2940037a8a09f4243b1d8e0aa10bc8d7befa9a5def2a0e92140fbd1878131b88bf7b53ee0b612c37c485150d38f4a1dd627f6e125c4d6da6d4265704e500f1116049f4adbb4b8e7cba4f373a9355c3f9a2e" + }, + { /* i=6886 cDividendBits=2975 cDivisorBits=1759 */ + "2ceb1ca727272aab17fca8cdf903c8416933f8b436c6f4236560e73e1664a32301fed28bcce3bd2b3d24ec463a5ab57f08bfb859eff0bc50ce4add3b4506a0676930472e18d63e185e1d6b524ffca9129bb8a8e8179c0b29d662d8998a451cec21959e00f4d7b54e40110be505b4a1bf24f86a83c23c5f4dde6633bbfb5f98ecd510efd36b1cd3dfa4a1ec5fbe9650d833ebb44772f4f62ba9c5b5a5c7e148234f946895463777e255f0163dfbb25d194a1689782c5178a814fee31e42eb0e892eefcc340826cc198ace738fdab3e3717f75c239374a2768add3a2aab28ca7012ec26617f01e6382ad880950179e9d7455e493b058a57703c8cd5d123245eed52012fc08d350cce6eac73879a246bd3f1e016aebb54ff9bc339a97e3dba3317bcd028c544500b260ba48a08fe870608668465383e8ed5f74820155574de54cb4623c54b74dcb42153cd7e6a772de95a0e52c5ac792763a318bd9587c59b15b4d36104fca1f379c86159d2aeb1364e029f369ac5b", + "317c156394ac2ccc72f04e45bfeb0df5d04bb39b4206804d41fb4b001794a617710b08bf06ea4a94ce9de55b586253fee83244934e42f803c5215ddda2f2337e8e2df538637fc72656dd7a5aaad41462e989f9ef27519eb4f09085df57a9fec86940a0c0b320b781778c06befcf2c54adc8c52e42219d58959f50b77d2a1617116995663b5cdd87ae5412eb16dbbb2d4073d1d9ac3c8048084d84dbec08e3be416e2ff4bd5f1f1d1ceea6c4818b3ba88b66b2163e600d32fda3ab0c18acc374d4e0ea2263e1a71ea213a50a27e5af7c2ecc6f77275d58b5c43e7777a", + "e8608a52c38d669376ee22c1888f7d95d1efc58d8f478e8b71d65d1897165837c56e551935a03929876655a077f93cad12bce77f78308d693165b9e14fcb0e97f53db904ce30834f6c92e7050101860a3726d15f6b2837b7e604a45091902d7bc6642ab9319c2e7acee5cdb509ff26b18cb702c81eb734ba1e6cbd259e3d4875544e746c3ccca1cb8eadeffd8f08ae0aeac4f0733ca401f2", + "115c6c63c0f780d09ead432d0b3121639e43ff033a6643fd65113bc14b242b9c48717416445a855203c4019a2313c037393086e75770f2093b291b6a8fb97654a9f39709a530294e441cbed2f257e280c472babe144c758554bf545ac70fcf36b0b9ced433392c94b67ba64555e1ea663614b59d1e7ec7399d6bb69160bb6cbcbf2652de90ce4ef0dd023114359fe894f5cb378ffd0e2a444737fb876b4a6ae49ba06b1f91f86fdfb75281edd5a4d731e3993510a1ce8f7d29f612237e66be505bb1a40396ba938060acf330af90e5cf1b45037e7490fa96b8fb4107" + }, + { /* i=6887 cDividendBits=466 cDivisorBits=102 */ + "01dc447c12ac2fd112c3540297fe7b885585f60c5931315673f86e8eda93ee98c255d6fdd69a9a922919c661152fd8e40bcb10aa6d3b93642fc44c", + "0da37af7398ac9b19901849041", + "22ebaa7f9c4da2a03c3bad1a24c59d9c4d7c7c5128dafcfebf0dac9164e2aa1643a817db2a00ea9b6f6d286c9ddb", + "0369173af587d5829cc7e47fb1" + }, + { /* i=6888 cDividendBits=858 cDivisorBits=821 */ + "030d2e1d61fe4a94ae7fdcb5bd18a77d453a358f3f025bc9e764ca4bb2572b78a11726e400b0f997343af0d11dcad225c16e48d29ea423948af0a2423086b5fe57166bc94d8604c15ce05ffff25283af7d92d4226b5b946ca58c56857330355ae9285680c0bd84e372e74980", + "1f696fe32f9b7eb2d5fdeee4f19b38c7d3ee79b08132f6f441327fdd18bf15f03c97bb6705498973cfcfdb24eaa4601e0d84b2e7b302fac006b2f56a5fff06496a1d64d26b50e978220334c16ac43b19f6919b607a93265527ebed6358b853f4f148bf61b09d93", + "18de73a8a3", + "0fd0244c14fef1bcb247ac3ddd34dababa8d16c8d247b2183269153a1165e5f1849fa10cf23126209d306d41a6e1fb22dfa41bc03655605753c50eb72b28fe8ed7f735e333e180d01ffb7e6fa2f6dde1da78ea73207f72dfd55b6fdbf4c8e2a61fca2815017ce7" + }, + { /* i=6889 cDividendBits=114 cDivisorBits=38 */ + "d615997bba91dfb6094ff35a5344", + "23d3ab2d86", + "05f9bc76fe149df72d27", + "1982fbd5da" + }, + { /* i=6890 cDividendBits=367 cDivisorBits=312 */ + "45a2d8c81049495745ba76a4ac462ed5c3b68d0f10929a38422b0ae1a8337caab3d13aee6c55d9bb8c236a3a53d3", + "254c392715000749900eea66dd51026a7e883718129b5a970c129f7b09699121d7b59818046396", + "01ddf5ddfc32ad4e", + "190da904feb15936bc310a9c5438ccc09f404bf771c2dec18fdeb7e1a927e5175ae630064b9e1f" + }, + { /* i=6891 cDividendBits=2783 cDivisorBits=720 */ + "151d1ece59868696ad28aac787df5657ac2a91db0337bd6002712f9baec515745fab644ee82353d7f64ba942ce86f340ab468b71547975aee3293ba346271c194844e2202ade4b08e1b45a411d829344fc0a001fe2b02401d19f6821d641f67388da3bc196669668b5832c9ed2e8b08028ba3baa1bd62caf7b54eedb293e6a7d1f64b8a53feb8e29dafd2203940b068bd8a31ce16beae207a5083b59f9393e205d9bcbe5c181faeacafc6e95f721eb582252fa2686f3b22c7a05391b207141736a662d2e0f0f3fd03ddbd9cf910014d8e69f2e370190de69a27ee09eee184033c99cb48c1dc468d80fec7ef526fad0f65f467b3037639a8d113a2d4a2cb65ee1f0eebd1a526dffd1b5da452902a5c5774107d0fbdcd102770ff12bcf33ee039fe6499d847dfd6f7190b4622d47c68795b943b6e6e0ad6cb5fde1fd3090d691d9d51e81b0a0841b659e953ebf51778e16a5031323fec0587cc8d6f906", + "2bbc64c648c5e07547e8f77a555f25f80df9af5118f97a0232ddcb92d59b50da9d9d43f424bde5592e9f3382042fe65a455a5be43d5c0fc2d62c19aa3ff94871f4f77c8f96f38d5e61eb29c7f048a0de374a31bd88735cce7077", + "7b95dce18097c29feee9d892e729c6e26aa9fc979e3a0fd3f9ec20c31ae07c01fb77735318be362d616732d9b076647546ef95365773bb8847398fb1caf6a17416a0194b0be0631f22ac2c461097068ab49c56df9017b3213b0f7689aa77b5cae327495f48f80192b5c2d6b0257442e1e4ea32adacd547c771a2a8b8d15d299df71c317c0b6ace54a2ad2228bdd0e683977f11a520ba915d63840ad7a5ca37ca7efdb2d0993ac535330a3e52e7dc2c919cdd1001c50878715b81f9a5af6a45692424a7517e396759bbdcc102174dc7587d6578c70f96d876e10a98a2adca6b1161163f28d384e1c8e5512ac2ffe696303d2651a5932ef13f71f295a7cf827dfbbc4f", + "064945a8906e8b2aff7dae18b399d215e44ce448cc084513322803e6505320eb1e0fd15d68cab6cfaa3e4c1af5b45d70f9db4d788b1e5f7007252ce5fbde443a6d8398be3c33554f1584b21e5fa124df1a03a93b63fb2adde04d" + }, + { /* i=6892 cDividendBits=2665 cDivisorBits=1281 */ + "1ff45085db64027ebfd5f0a1f4b9767b01896d1d38aec4cb40087f7c6fb48f439ac41f9a50964a3394d7f63aa6156ee8ad74870ab17b745d400802cb559b7c21d26c7058838bdd2a720bc617856a3f100176cd09cc61b03f7f185fd2c485d0964293ab681908610244d8cd6214337ef09aed92ae7f47a51a89fd36902aca42a9d73b2adb4ae288a402f58b80d89905adb1d49333b49ebab4f7da9910be8efccabc73e710c686f8a5c979737ce51050eb38506f2e7e5fc548c6613458a64060433fbb7e77b9d98fb29389f35c25407e0748df64a3b71c60f18604f7756429b378d1574e916d07fa00b6123727481871e541e0b5a0866c8b5c5322152d47809954f7121e9a3189fa3db3ae2781e7b0d94d0529e287268e7a8cdaed082664f53f7ab2f41c577927999a69c7cb04ad4fa88534278fbac4b05d9575b21eb61d1920eab9a5c607aec00a9ed8c7031249", + "010bf62e97ebd92b5e9ef2cf51a707aaf1cca7c735c7fcb613ff1eeb9e3e81f89cb123811de7e5717c4f54579296db2ed7b49c33b63175e7fd2f64befdf063f27bd75d762da9b1149d30c4066ea5d20ba7ef01b1a40ecb84ed99e1988c0a9c0f4c3085ded6e0c05cbcad03ae5828f7bce60e4857525714d619a3b5b83569c5ef583fc97f3d2e16ba83f298e6d09a0176fe2e4b384684ca9037313b05e82b15ca27", + "1e872671a18229901597533a63888e36eb3244d23b1dc2c6977a06bc845748ce06efe442db889cc10f0e824780f49076cac3836d9bc21600957326ad94cf421b9db324320e110550e235e98d0b0eec73df904d7785c12623e67b1b1f172252d2fdafa338fd77a19d9063de5efbe5783891e15cafb893b6b98d0120c3a316cb3ec1c48eeb1869f5a13511fa39b23993a7013ba4ceda585772c973f4bc9626d441e3ffbce94ad536819690b62801", + "11f7e0d28e5df27ce8b126e111da059670f9136872398057b801fed85aa247ad0e76016223431861c3920bd4d7e16cc7dcc465e51ad7be02931483a301cf37c8bb33315cb28fd48d17c0e71abf1d5b64ce57bf19a91d42a3a40fa7be483d3fc48a151cb2196352dc3d1ad211501b029a11a8a9f1585ddff368978efe9f5f6922599831dc3b362e5fe29a8deda5b53119c87301c94f350aad39bc55278c9d3022" + }, + { /* i=6893 cDividendBits=844 cDivisorBits=758 */ + "018587c62f91fc0c4702c0a1b0ccfea5f5b34570da7b47e8ca5b100440037886d40cc5d9c2ec14eb9e20152e25f738b8fbe23392809649c3078a0384e691a5730d48562f61c5a0f70bbd1baa142fb51a0d73127fc458c4a097dd52bc98d08f3e20e19a2423ca9afac721", + "0ad711ed9198c1ba052c53a14875f088b19639de2da19e0c4fdcc79b1484adb5937d7437e45ec703e42c231c3ab93240b6bd744602171c1a0e9381a6efda223da36b70750116df6f674182e1ad8b86fc9a54fc1e92068e7d7a6b682cbfefa2", + "23ef2440549e80f927071d", + "0664d24aa4566d35c64b9573ec321f47bb758dcfec635edd39ec77b8ce2bf0faecbc297d39ca8759e9d35f0fc80ae2634cdc04be4aefe5d88406f7fa6f38b758dffc472268cc2da4b888f4e9c4c31782dee86aaf09b1d062ead172360133c7" + }, + { /* i=6894 cDividendBits=3429 cDivisorBits=1196 */ + "c0f9a6805f2b9b7b6aa7bed93515b90f929554751f7af571716155402f8085448fabeee34090d4b641459ea3129eb629e67cd5f253d9d92379035a5d3caeb596dfc307797e86c7e8db344cea2026d46574a82225d6e9b77494bdc04838dd80c5e6da96cfda7cc6ee59db41b100f11f35ff1b406a86197e530bd81218ecabd476755fac3a94095965b421ad3df8c967997caf23fcabe3c65f892e7a0013890d7078508dc193491e3de1014fbf60f6f8044c3b67d56762006ae6b21283e6effc11f1375a6b6dad73f9298c3dbb4375da775ca387999772e8f810cb770c28c51677fa68868d0c06e5b6a7f9024733737b2c0b28ef110fd4bdc0cce95dad321f8faf0bf0a062e48b906a2ab018234e54a65dd940733be0b1197cc8751b9b04f31e4ec70cd8570ab1c571372a44cb4bd72338a0002aef3d3f0f18c6549892ff571216cc65b05ea38f7a975379f42bc46a126c016af285c76209e0ac5770e397424567b3bb5d63ee66c52d4bbe6ea76781984992bc8fbe4d3b94e92a02b3611b129897c230ca4262be06623a9c9850c1f62ec1c7e3eaa75cb77bcb2a91a54624cb48b7593e9a231ff39b2c73f247ec", + "020a668bfbe8a74fc2f7243c4b16b24764fa555b7e1769e654c3d9eec0d404d1c5006da2e284202a796d8c57e1f4665ad6743c838564d5e91e513122765a8b02c56019cf5ac7854ef0eeb7094f76fc2aa047f27d58489446d1fe3db62997c052834d217f5736fd49c598cc76a313cd351031e7436a664b7da291e59c54dc290c85c5d5cc8dde839fcecfd8b8454f3262d534e4d0bf08", + "5e910d3d70f6ae5c4571814c81c6d5580f2a87e70e6946dd0938f686675eaf0678e03202ec27dbd6108c3f995af401fcb926f6a552a372e638264ed11c473c25f9558f619907a40474ab79c03ff7381f4b56a4693eb98e8b3ecae74bf81ff2172334a53a393ebe17e6dd6230a126955b2236c2c1a2499ca7a90e8175b921bec2d4db30b714dbfde9ff2eab28cad2cf4f68111735297d3b2cdeddc3d5a0a040828aa603444c36ea7ad82c7e783ae42a6204216d9c67c560acc8f0e773127c62791aa3f9d8e1d02fdf449d44ab0ffb16fe76ff1d53c97095706e68f3c4e7ce17eaa555f00013061864531f88367ed845c3895cbfe896a955cda3d74de842c3957fd4aefe2271fbffc8c26ad289f46a2a963ffc4c8c5288d8", + "d92436b75e0ad8a4e3bf14ae13e896ab59ba78e89b0ab161342eb3f3591eaa80456838763741b5dba19ba612aeb2c393a74aa778e21e0839fb91aab5732c29b3b182ffd146d9f68575f7bd17fbeeef131d0e688fdca263f5330f81c10521750483ec1efb543ca603005f827a3cacc1a09320edb7e87571e3736daf43b5058cd5b67bda63a03a49a1c00bbf38bbc63b9346edc4d92c" + }, + { /* i=6895 cDividendBits=2090 cDivisorBits=1627 */ + "78448299192bddd0beadbfdbd8afe5748921a53bbde0fa28d5a85493af760b64eb5c90605168a4d46f7099730ce8437f05bb6b746f46b83f604d88d43a372e1cd63bbe323ee87b49d32cf7a0b2ef009df717347f0d0c8982df7342511674992075324f352d125278a10372ed17bd85530b2cec41aee44981588eea9e37f51dc6f47010b0921e8865573f71b737d076d735666acd2ba040a7643638cd53975bc280303ffcc19274c92f3badc7f0957ba5f3a4615dcaa7fe301940f224452c9f9975b8973f115a873f37295750cd68b228a771b1481248ac0f59535aeaa604547deba4c60d13d0fc2d344b7c8fa59ca9fa12ae2715c7cac11a47d9d2aa6ed9378869ca8ca4aa", + "04e174b2a447eb640c879cc99c7b7a03bf703af2eadc8d0b39dfe968702a770eb5697393615a7a6a2705ccc7f5d7b10bea145b9fef6b21ff819deca53f358604b090234da77314d45d51930d1250eb9e92d93780c0d025472601034e7a6d7f98a56e56a6fe229f6a684b36a2493ed9b78f6f67df255e659841224e33d3ff4fba41a7c9b1c09975693da15cff9a23475d5241b3a37dee0181996dd0b616c41b233dd273cdd71aba642665151fdf67742a18bd8915954ed92566d6f93cb3f1842086323aa23acb7179272b89a5", + "18a43ba4309c70f003ac6ac23cd0c7ab8faed670592aa3bbcc56ded375291e87025a34dec6a1d9bf358002928a86af4aeb60daaa01e82c4f0cad", + "0262c43253e01d818789932ba125b3cd5b7dab56a2a833e53c973f3b950858cbee434630f79e6d1d16c22edfb3a3967644e0fcaf939562e2a81fbb87ff3748e1260e29f470f8de0c2769cad2f79e4a5f1aa439626fc7763f859505e8ee55dd9a7897be808ccbd2badca2d600124a509772a188c59f47512fe786a9a523ec8302e273aa595317186e15937bf9c98e266253560ca5d694cd9184f3cac306abc0d3c3831238ed78074f3e35d4cf21398806727b4b17a4099a10c317abad6c5b5704fef6d9d028bb371471c1e429" + }, + { /* i=6896 cDividendBits=2240 cDivisorBits=473 */ + "3cc056045b713e93462e9182cb94fce2e9b61f3a413eb9f940effd76c6b572b2e57f271be478c75b092ab73e198f89e26339caeec863e74965b53e865dbef733397fc468237b39f5643e86e9042a6aa96c3ab296546820a6a5b4937bcfcc6d2641e58caa9717270b2cb8a65ef673e6e6925a77acd406254d4e17b79b56e155f336bb3290e3c7c459550230ce32ed3198a1463408045e73a5ab06e2f24b3f47ebaf5774b9ea7108a2ea03efe6dde7dac36a68b481953d19e0da974a353bd1398ab8c4184c8c3d5cb421355a7c13f8fd7f6c646801a3a1fdf48db852fd03c185730d3c7cd7b5e865ab8bd40a276180c76debf445b5fd705639b71a23178837330aa91d7ee753e23f929131bc591443b0575f17e2094da7220c", + "018601234cf26ca30f329d1b97992e1d0c3cbd6126dcb350f061fa97a19c8a3aefac47395b4205824d9e9618bd04955a2aa24dd62138331d83e7e468", + "27e098b536c16ef38de1e7c5a8a717384556c52826e67c1d1e0954b83ed883507b73fc9acc91fc4eb93b50cc7fd13949d5f9c7a3d9d7c0158231255e9765e9b4eb4861d9f76c139866653b1d97477a0214d887dba2c75638c5655056bb624d757d8677296f5156ebf9c275b25e0c97010f2245797f37d44eb18687ebd81a1741b18f3cd9e6211e44ab6ec5128a0bc069db226d2795e67068ec2322156cf20e3f4c8a88d4a4b6d9d5358d69e221d224b77c19db1850c0b2e9a890324a3b7827d8027a7e051d45d4783b25f8034745be17fa96ba208fbb9ae01cbbda4f84", + "febf73f0643f3a5c008d0374811e7f09b72d90e6c521c480dfe7fa52ed15be4b67ba9e9a8258f4fafaa1178332c624a35164671c12b86c4209446c" + }, + { /* i=6897 cDividendBits=1450 cDivisorBits=549 */ + "019276ebfb061c592ef4714f4b48620649224f0dd81572873e88a0b0586abac8aea3fc9e9dee4a1c0440106f2b56d34de1aaad5e3074c88b8a7dc8d52d6c5b50bef3548a5320ee99d4b6b00ec09f03eadce08076f1c85967b3005d804a02376e472e40b1e0e4171882dff02f042d5e636a629e3d8043a48d9b41b9d8a6f0bcfbd4af5a02ed39a38377e4df2a950c2b81d4b220a28ae1f128ef1b535ced49686d868bb1d3cebb00e8a02c92f4709bcb4405d21d70a8f0", + "0d8e81b64d672a9a1e62c748639894516603d0a0b23e6271153e8b1c09f6f07f7089ebf1388d29fc08fcd2c06864585f57060fa324446e4d51c596330093763696fd50e696", + "1db004ce4fbcf5a32a303dbda2bad4fca3dd99f62a5110a5c319a2685a45ebf3afaa005491b753a030c5c41e6b37da24f99f90918d952073d48d613367d00f38c7ea9593fa8cd9079be9753596f7ce8b927ceb6cdb13114db3efff2f1c9e381b99991a01eb0f36d27441c2eb690dd6a157", + "051c0baf7ad2bbe92287e04f25be6cc048b69333b07b3f6c977a7fae050bf24ec532c8cb6dcecf284a7e959b4ed678c4f8d02a13eacdaae371051370cb0b276055c689f5f6" + }, + { /* i=6898 cDividendBits=361 cDivisorBits=57 */ + "594870b7fea3b1b83f22bac0795424ced9cb7fbc718dc6f9a11a25026f1bcd5587e552a09733b491fa460aec61", + "d9338963469226", + "693b49a74461aa5d42c2c70b55865b6470b0ac5579e20f64f2a3c426dd9f165db453b0560e75", + "c48840d2080d03" + }, + { /* i=6899 cDividendBits=3851 cDivisorBits=2810 */ + "021dae769ae0a77f11be3efd37ac59625a8bdd4298615ec5ead585cf53f102edabb6882403187ba7097c8a803492ba6b389bc480b7ff6af033e095ea22d7f86e17d94b638dc915dbed1ad4d760b304fe7719459decd65a4117feef7b91832fdf6bcddee543a0635eba2b62fdae523713b04a49f730030b887a64680b537a0e6b3419c03db85264d01b0fa81787dd47c0c67e502940960f288b3ca5a673666c4fbfd2e3337397f5066f885cd667b8653b9f4fb1b38e935dd255bfcdeac48893e0fa28b35c907947e6f6c4154561c034ced51a3fc34e45885da5a9324edcd419755c2bce1085a64e7421cf361deec988c71abb655e39f918f9cb29708535b2d74ba8611d4749ed280c5e3178345932c9decac053852ad4790a2cb3301d04a1b5b4620797a44944c4a9d38068ce621f61fa702ffaa37c88ccb2f0525743fc2448843d2b67588a7dd4cc308c31652f3661b933421eb2365381d36f8a1c9af83079226640974287e38a5b81351745b6d187ddb013de60b05c58499397a148219fcac4599b5149a1d1f114f57dfa136b1453fe33242b75553b8329d21ff60a0677f4e8e04cd4a524b2ddd43b0e38ce81763f299354fa53254f1fb728b88bccc26268182c389ef18cca0826a6978c32d36edd5c29986443a3db8417b6f472bd8455821a19a1", + "5cbd924cd81cc291599d9416a732a3422d0787e29f4e92e53c8091691615fdd27fc46eacaf8b2811c86c1a20fdddcccbf8773205f6cab3b95d067def04eb9f8bbe455834a8190ad21578654231bf8ec00790e621c24b00aead23707f622372eaa543e092a282b1f0388a513a61761868dbc55fb41392e8d5b9f75562f84479199b05a7b822a10480cbd44ae39a2468972edc79a1bd7703004b2e8d526414f6bec31829164cb8581e0daadc6bc7e5c48d48ea444cbfd44ea40d06134753d9c6936b0e832f7cf64877379b560770d9c64db865946f93d7bb3dcdefc830a86f1cb80a65a45f44a8f4658f010c2a214ecc2dab307c3f4f496b1f263f2d807ca6bbcd6b9082398af86a2cf39e72503e9058f3f1cdb0f3af509871bc93fb2e491d73a9e5aa97bdab4342bae2c312c4acf24513da44e8e1f63517c52482d694b9c880b43aa41423260b19b6f5d040514ae31405fdae0adbba3e9713dcd5969a0a97a1", + "05d740949ff5d6bfccadbc7441ff7030e3fc1ad7660b3546c46b5467d68fe994196eca0f0d390d0d9ccf25b7a1c6086658f0341c618492a522372ff92c446137db1035688988b792ccebab7c7b5bd25226307cdc04ba8309c906e6b629d1b6b1dd46c8ed027d8cfb19ab8243309ba4ad3b80791be5fb2ec51e669e06e08cc3de89ab40", + "488b51e9523ee9c22e5368f5dcf116c3ac82cb073f61c7c28dfe11a48e182a45c9379f3e7d94d54101f0750a7a6cb938ed162cd0acda22df7753ce8455d3d4c6db20076905915be827806f97adbec05a7dec56d6912c14ea1ef4f76023e01eaa0bc7e6878df38c6a10b91af36091a6563eb01540bf0c2fd861471f6120e20022bb43cf0a98a36e816303e4efe6e12fb556bfbb8e278ac6b3ae50b8445116982ab43be427375276c6a52d2a8ffc3f16760405963d8e6ab6e346400e6a0461fd276f56f05a927456a9f36febce685de42d51f3680eeea627489109c9e51ae1fdc8a6600e3703d6c66d4609c9fd5defa145e34d5af36fb90c6a6701446709cae1c7ca30d77357c6209020e204ede5768653fa6448dffccfb2e77631585c4cb46258e275a251fe7c95437ec76980fded6a3a4f728c16f02481d9816ae0d1522c3a81dfbdde0d6d9fc558bb784b7f1e79fa814dcb11656c325e7dd15afe2902a661" + }, + { /* i=6900 cDividendBits=183 cDivisorBits=179 */ + "6df23c88f33bae16d6d115a2ae631535277e51ec03d973", + "064405ce5d99e1447548b5392ef8305d2ebf36563b133f", + "11", + "036dd9d4bc03b88b0cfd0cd68fe7df050ccbb632179244" + }, + { /* i=6901 cDividendBits=3981 cDivisorBits=1415 */ + "7ea054e1c13f5475b8e19dd7d06271fb3b66ed40c7104e9e82bce42c7c1e093b7c767624fab9027ab7af0e9b31fe159a6bf22aeeb2ab8f75059286e63dc8e4d19a4a8c7176d300634259b8faeec0848067c1b7784916e6732e069dece172fc3f695f102e88afb17fd16144fb57c0e9b47ed4ab6ce35b99729f4983dd74064933dad55d2c429b2bb069cf76123826741d6a9c90eb9ed2f4426420f094a1f98c0838d0bb7615d90bef4746a0b746c58b1ef0b5174d2e9409112f2d9ec6fbe92f04cc13b6f6823a15c3be606e7b0816b3e6559797cbba3800821f25c47c80a9381f545a53209292e97467547bf947f2fb446387acb9351eca247f298d2102878bb0d38f507afcf1bb4733bbfbcd212f19f4a846616fd074c59838311c210db2fb76c3ae13000e5d6ed977671706fc41b9db40ec792f5da61b74cf88ffdbf6c35a9a401be5e33da42805fb64d55ff8849ba310077ea614945e18d4fae7bf67ff9842db0d19e5b7578f9b53e698b04675f59aba241509ade7eba49067e57650ea7e4dd7d5e6567e364f8da4358110e3e8916768765d90ac0cb954f74d11af114cb2bcd63b92ac7924829b1b97954ad109718784ce731b7b1fb61ecfb24750cb1c80b64d0c4e88a317ce651599c59fc2aacc7a48ade0fefe6bf52d0c42a9cf9c2c917a487a00bd6e9cfc773924bbd4ae5bf8c47f", + "553dc7002767198dc8f8a4ef2f7fea09e639f56bb39fa9a71cb7a87feb0d28f758d9388eb25a4b863cb493ffcd47c4c1324d0c313013940b90d17c0413533b8d43c7f7af1fb40fc293d3ec5f0536261e98c2bf77e296383367c55e976d303a077490877552c4cc3e6668a67bb64056ba4a47ac9a61b6d71bc1545a0eb6c109aed11a6b7b221bf59c56239f322e15ca155601e8d24fce59b0253ff983d841be661507afab48977f7ff0b57e901d65cf0e69", + "017c49f8e40bc041e16be259b5f5f5a77f60551121c9c6fc74773fb2b0c2a1a693b9838c24460658105567432526f5ec3087e62e8eb9e74bd47aea9b116d86faf1d8e217931261919fa501b62b2a9866325c2df8b9138da90650eb164ea2344cdf6a44c159b10f1db193802cd185d36f2ac889796da7fb374fe26c1965d128a47e6ce0b45aa612f40481529bbaa2abf3bfe3ca3368c6c921ca6b0885606d35793e4e09f26d928295953209599da281f7ef20c33992d5000f430bf269c6feda52d104a5b845cb43c3159cd84e72a80b33967293077b1d946e2b0e427f2fc3c5a19ab63fbacf0982a0e5c422150760451fd840fdd0a7b79d2557f07d6e996e31dde43c70567e970bc95434496b0f2dea4ca8985df6b8d37447bf8bd931a2ad2f9802b05deef01f34aef07b07db251fc0fb6a7c7f993d6636bb5ef857c8bf6efe9172", + "3543170b216e64c5067a44d91ea85710053b0dedcfe372001159ef437beb33bee5fed0591b4d0c04604b28b9766e4fcb3019f0c283541c7fb6025e1d351f810d96b769a13b7e25f522c1dd5f0750a80f65101bd0aabbcd51c6ca8d9a5f91fec8b77fd3fd7d6ece580281084267a7885c493e73262e1bf06f6cdb61fd2f77b6d2c13914f57fe2cd67a9c5463d2df6c2983ad71aaa27aa92b6a3b4fbfc27415158c5e361e6364f970761ad683cf4546ce0bd" + }, + { /* i=6902 cDividendBits=1633 cDivisorBits=1290 */ + "013de6b11f9fd0335e85d0daf0c830ffeabef3b927272a777608bb818d59463de61f5aa6770e7b750c6e9924f54a7e84b899302035b7f7ee220b7109844dc1a7931553f7e267a967dcad72728d928043a10a41b3289249504053315997da126d1fd0a63689fc4dfbf413e628d6c395aedea37408181dba2499ea8fe0b4c21ec6f63a5d3b66e41a684aaf3d566e62994e6b3a33370a4b730b998c3ff8c5c7ceff2c3d9fc2ac5e9f8273875d01cbb6ac86c7604f09c64d35b6751837020a53d8459cde0a5e87a17caae15ff72e0e", + "0301efa8084e3a6ccc8cace7f027419c1d10b723794cd62d5b1d7883a50235d21c4b9604d964cecdd6151242682d3620b467900a778f3a2feecbe6df489ee7998384c9d7bce99223e4b5f034be22631b60327c7f7fdc7f4071ab4f18d295c663df9d93750994a5ab8d2439db9bcd292df0ee455fe8e593615cc6a24c732fc717ebe4241fe67a22ab07b207adbdb00cf206abc17c9b7eb1cc3ee67e39b423ff5ad22f", + "69b358a75c0a9ee0c216c39766918f6710864b20dbfb8d59dcf94e4a22c04de0de4cef82d2f98553af1166", + "02a9b044877b57ec65f319c808cc497fb4e34ad065e81d5c869ed1878c379a38103ea9439eb785c024eb64e02f4a9df1dbf8fc19ed86792fc03fd6f26b7ad24d2cfeece09828ec6405a02745ec07d947832447905552e429338bf928620679e893673f9b6558edefeca9e60f3d53231ec5fe713498ca1cce6742fb8d932b3d68adf79fdf772c2f266542e001ebee77c27d1cccf32ec139a7a24567f595eeaeb15054" + }, + { /* i=6903 cDividendBits=2730 cDivisorBits=979 */ + "01133c79b5de92838d5c289a958fbc3bf1efae5a04460e7b60cbc2391b822fcfc67a5d1578e74dce4fd625868ee306a26d5d037af30abc98aca71f4a91a6a49e48a1a6cd687ccc987c8196f390c77578523ff10cc8e9ed18612f15eba68a5cfb9181633de803a8e47f4f05d6d9d367a30316fed1b5d03b4c2a53b6bb24c8371e0eb230bd545e11a8587eae199e11cac6ace478250a7f929f907f6bbee79c45e9f0f38148c61c9db14b11b305a165ed60f5837976c4aa5c4179ccabef10718de647afe4a89d0eb2b2b51e3be55b6e79263b300f8620709c2d7f5cc7a75d3c897fbeee270e8ac14381bea3a963464727da554fb89578aeca6e65c602d6de32c72e3f9015af2cf59250fcd3f71d4adcb7b944ad9cb81d5e6c4645a48f000d0eef14a7be53047239902e5faaad89302406dfa58df73bafe44f1c2a0f7bab6288ecd0a8e4b5b246fdaadc5fcb4a1cc1025bcb203e120a9234", + "0472f5a646ab0cd73644d04113253169f783e907ca885c4c338ce642deecced2bf587f0cc8980b9b43297397a28c88303c70b63c966d13f10004c9541b6e08b66be12628a1b012801bf8ea88815136086c4e74f2227b553c18d42557a1c52ffa977759eecb96998c74f41f3af864f034e3a71b9f74918359f3d82b", + "3ddd283d28f9356dbddee3bc71dd4844ee07e465d4cffcde0c299172b02115fe4bc759fad26f36a1d0b10175ef77affd3846da27802d38021712b19465a91231d534a2e31cd935c35695725bfb34a598bc70488cff3f63ad3e13d08bb93e55c8e0dd6615fd44c18fb70b09bc33a9aa6f4fa238ce823b737c137613b1181f8b11b657c989d1ef6247a00352ded38ec103a76a5e14c79bb9e24c5f42715889d0f7d082c3924c560178d01db2427b8377798f80dac7a25d215ffcaaf0426eb5485f9af87a9d99d6f98e8783009598b53b41376285e3c87b96edf80e85", + "027775f85bc25c4a4a1a5d61c7db528debf4ec54809c4bd881fb8f9c34c2469ec88d4c4fa7b06b6b5d9d546289872b4fd2051b6da44ee63585f190f0a1bb01473b24617995322de001dfd741920bb1068e998211b20f127c88c3bf5d5329c96b7b794bcac312330015ec6b4615561adf0c6697b26b2289c7e0e9dd" + }, + { /* i=6904 cDividendBits=234 cDivisorBits=213 */ + "01d3b31755e8f720cb5e9c9e23d2497e5ca8b275b9146c037097a525130f", + "08c190ac10ff695dfc483866ef99465b4ee36f76f8d7454cd154b4", + "3569ff", + "0690b5b89fb4a29105c1d0bf65eccb4d84d3bc4880aeb7bb9fdfc3" + }, + { /* i=6905 cDividendBits=2906 cDivisorBits=1952 */ + "013d44ce4aec99562820155840603904b63f97f4daad9426fa6165a113a1cc0dffcc74544c09bba29dd1ce0b9b4c4b6fa9e4328467898bca1ca91498e80ea09ccad09e7b4823f4adbfefa7d36b416dd655236f4c5bc7d68f1df13280e2292f94fae344dc5645dd1c0c4537c7a7c2f0e65936954cfc9780c9705371862a9f40579dae027d80114439be2eccb271e0dea8d8109584220358c8a4bc126878c43bde34d8e779d55c41de2e12ea1ed712abf64aeb8f04d31abb063b0907ff7f0e8c81628ce69291f21234f306bb26f582e157c457ed6c1085041fbe356baf296b65f51c0e8f3517eb47554413a4ecd54a7e33d70ece4e88c25bf19f5ddfd4cf8257fe0fec05a401b6b4845690346cc836b9c65bff0818a8d60aef9d5f574b8a1e5809c65496e568a6832001a743aea18fda46f05d8b49a9de044dcb8ae91197f27203ceef5091f0f54db5e074ed1fdba575202b41a5f338ca9fad49a383e75869b9f1701d77fbb8c90d0675a023a5", + "92d33b6fb1c35bbeb5371413c25336530757ad22e38562d40b1fcbf2a0beb550ed1df63ff671be6838cf6af9f8772560afd2f25af5667648ed21cd47fbe8b16bb0d0525f4f6d293633fdf1d581d98dcb67fc4804c1f8595101a8348b537f5ab502d8cf91db545014db0ab36e9c42bf7b9d3168c61edb5e04e78db55ca0f7548a78ab7dd662ded89837115d23e8329fa280073a58fbb9b9cc5dc2aeadcca6407952edc973a221a2501f2afd07421bbe1d6a3955d4f1ff69b519abf44b36465a1b968cb45c2bf85d998bc013d1ecbcd8372ff7a1bd471e31bd20a46fa645d0d50558637fbbe6d198fc3efe2c331750fa21badf86b9", + "02292e397137e5fb88c6f30c01eca813a6181633718644ce2e0a46d2af804ec670292fb4dc445f3377df2188c5a106ec8b900886d57db5c7e16f56fae31c814c65fd8fca4e2590a7ae0580aabfd9a9f73a3ff0493a2ccdcc96f2040f7c5d2c3aa51d9982cfa01c222b00b3e9f44286e3dbeeca222fd949be", + "736bb361c7a1760a7d83552ea339e92205c77998619645f6d16aaf45ceea5ce3d08e5c175586c0539358c7a3d9001a258ccc7c217633ac291a7e7fbcf4a217d5f7418d0103274ff737e629620586cf1cb2873ef60616185541651171054e5a877875c0f4018b94dea51494c9e473da243163a96e2cbcd9ba2e0e4ca9324d237e76856b95d10d6727dc467fd23394742bded66b762501b2fc27bdc46e51b37bb58f98c39b89cf110086de2d8a1cc2842ce195273dbf5de1f5d8828902dcec2a18701c1fc8c42d208a851dc3e56c532b1765545bc10be5fc2e011997db20b28344ecd198326794679d338360d0667979ecdc7e6557" + }, + { /* i=6906 cDividendBits=3377 cDivisorBits=2870 */ + "e262d0f9794d464931e231a3a65aa0736e5d5fc08152079475d6dde1b7e459f31e850683214b69c7321f89a3124afa9771871e01bb8e7587120f1e459331f07f5adca81d7ec8a3d11c5cfb65228cfb97459d18f3c5ece4a67d4e0ff8026b28af6c21df4deda77bf83bca9637b19fbf31a366e3fcc661d372bc4836b730f9eec5e6b5618a222a0a39aed9c5f71c6d30971adb5baf0f5eb053ecc772d4d2a05c7b0fad8ffb1292add0fa90d717f1b9da4ddffdb7d7ad4f737843a8887c2c03647357bf8135be4ec59d22454593ba50f801ac1cda254631c96a53c24ca0ee9c4c568e02f2ed676f72a9583411227b98b6473d9204637806ebe37e2a9dedfd9e8c129b63a0a0c2763410bbcb8f9bc3fee215681ee284f1c8852e5351aff12458f1d223cc08610ef99900273cca58d1dbbe4a230fef41101eb01006ec983eb9d08c4495da974555c11b70892d8fc788d3b86c794802c697deb27a63b9b64f4e7cc7926879062573ec495a3c63d40121d7f9e4e0cc2ee9027c71cad32287208c10737f80b7a44e160a9e459b0bf9e54edcfe278dd1ddf69a5ae74aa86b6d6c35aac475ed9275f0f718", + "1c80847904c9e9f79ad74bb6f5d487c05d099d76d301590e1640c821ea40f27efbdfcd1e9a5257ec4c8d135b9bec62144a3f2f8b2a7ef18745466827027ce7c4f6bf1c8d7b38b92d133b2ee373804e8fac98678ee18fa2fb590a9673ab9b94a09ebf37a70980d044fda61e49c46d6efadb5267657595884e4fe70057a213ca92ee0d1a085a567bca75ae96ff17f4bc241345b154e2d89d1ef7cf70165eb23acea3154454a88ea2315f2a8739c824e9c177587c58624dc1a56acfdcd8da7b32d0c24d8a20de890beffccfd1b0b8f727145adf9142a2c2c30f7394aba270ea2f13866473d0853f17cb9665bfeb86b6ca53da806f720ac573e580a32d9205a1bb3c6fa92c44dab954d8c703b02d2caa23af1f57938a2f71f071494ff2fb337800c2f501839f3a44e12818c98c9a33e8155c789f0cc7fa218accab7fd2312b4d66ab57cad5a9ef3c3df10c2d9051a9beb0f6108ffe01a71426f448f8a93ac9dbb76f3d4a51eaa4af1e", + "07f15bad163c1033cae2ebc65e0fa8e465c261b8757d76b5591dbd5e04b6fae9ad3fb28e45e37b19622e9ed8b90d62d719750295f35d045444275627096e8a0a", + "09293685490fd332183b09d2fe2343b985296f36e3de2a14ce607496762216c026eb2d68a44264b519bce61d6ec867dda753ccb970a0b077f5d3df012b44cbcb6268f3e7bcf1328a70e4a96804ec3cb64112e36ed87b6216e40e1017c926238b8487565b4670db8cf1e17ba81e408b9d441c9fd797465f9bc37ec0486ec6a7201942b73d5b28cbd604d8cc3fd6ad5e684cd1039253e021cc248b497eab9b140a888e7a4538c0d774aab379500b1be13cf7f8270be712c6d66cc179bcd5022c519b37c03a8680d74b57900bf332ad0f8199bf0e774d8ef73f78e648caa00bd2a32d7876a0e5f2dc4b0695a927223b69662feef04df3e7226d97b14d3708383387b103a8f9569f70bab219a74d8ef0af45eaed315e8eeabd7abeae43584417e20b430eac03e51aee1a05724789c4ae55fb6a8551dca57a07b99f574c40283b2c9aebe5c2c6f65c8a8a6ec7c81fcab74e088d5a40e4d3a7983adea7352e9587d5da117f653837f3ec" + }, + { /* i=6907 cDividendBits=620 cDivisorBits=616 */ + "03e176b5312f6bf7f81546845bbe8e55a8f679c303a1dc3be7e6b9e1c08a4ac532c4ff9fa92cbf25dcbabc873433192f6427109768c42a1e0a13183bd136b9f2dbf1ae56f7ce7a6f82d6c15c5c92", + "f25b8a67d1fbc0c6b495e35f23b6057fd7cb461b76ce9549f45b0445716127170dbd2bd83933cbb71d6326081223c42f10b80b459587ae94348d59f22344376e6e686cc726a37a378b24d72ec2", + "04", + "18088b91e77cf4dd42eef6df2fb63fa9974caa95c6a1e6c0154dd0aac4c628d68e0af04847eff700452fef13ea8a1ea7e4306a526e0b63b940e2d408a9a91522380ca3db33ec86a4aa2dffa18a" + }, + { /* i=6908 cDividendBits=544 cDivisorBits=103 */ + "d9a072a7b89e4820bb443f8373aaaa125978798b16208411379501dcd7d6e615c53acdb93521a4ada2160501371186e8ef7a294981cf873eff86b799d023ab509c25cd93", + "5e1c649363eb63d62464a16b91", + "024ffcb4f0b4f3c61d7e3f2c7bab94b1599adf73a87a29d33f5f71aadacd1a91349cad4ef9e1a3e1cb8e5e8cc3be889acefdee0ea907506e", + "3531c5302707c347e043354545" + }, + { /* i=6909 cDividendBits=13 cDivisorBits=7 */ + "0bd1", + "3c", + "32", + "19" + }, + { /* i=6910 cDividendBits=942 cDivisorBits=597 */ + "191cd5dbf7c64722e3d6c657894505d94f52c65b6f994a692047b0d98e1b19dac5deb593ca8e61056cab37c9a03728a5f33fceff6e22305eb66a05aead030f55106ed461f2ef67405f382893313d1809f491b1116be562cfe60a43c6301ec7a8092c2db4d8c03291d99ea95ea8e8b40ac7a2f409c7f6", + "0a26a78a3d5ec8647ca7996547f9665f2b607fbaf5a0b49d0a0956b2662039641b3f2d6521a73d0c99eb2ce0b437917372efd06764d25b66b01b83c1d9dcff43529d7e004dc970dc37d7cc", + "0279521e7cecd084c7440e41e876a2ed309dd8bd411af033f61698d48f13f4c9a4935732b386775a0e7d044e", + "f1c8bf65bbe38a89333a44059bc8411256f10c8d51c77db4ce844a4f6d8d04d723f28185ea4401c0241cb1fda839cbb29b355ad7a49f0f19ca26aecad977dac53a81e3515d05750ad7ce" + }, + { /* i=6911 cDividendBits=370 cDivisorBits=160 */ + "03a940cdaa8d0715764cd2258342b668fbe0cb68a4463f0e821a1f7941a7f3533186db41bb52c28011d05f290609fd", + "163ea8dd484b497459e1517db902af0408d67510", + "2a2236f9ee9fed9360e2db1c2e636f4ea214f37fd4f215f00e09a1", + "07f716b9889fb0b6bd9cc56b5d3856bca928daed" + }, + { /* i=6912 cDividendBits=1715 cDivisorBits=1458 */ + "03541a1fd73dce443877e6948893081dd48758c26918840a5d3c971f7774cfe40e3196c0db25ca298041b8941baa92d75b866336b53d62838afdec9e580b5e187aee9062f35ab5d3560847753965504e704ecabfb6dcff0d64cdef01b43b92376f6e4530c559e481f04dff604c312241d57e8c947d86386cbf6c0dfa6ef52dbb1eee5544152c51f0007f955726e894af83bb50dfaf5e4587a36ad55c78376bd77e3358f0147e1ccd2e2a582204965d78870ad6c2d0abfe1fc5d94c44a09a7c18e6ede831afd159ccdaed8c4f9c00184ae1c8ccfc812a10", + "032b5c00a72c2a2b913a91c29d3d92806c1c2590165d55834afd23e9a42b3c78132b692ede3583ddd97685f3923f66bd189df3442d5772a68b634ee18a6dbc33c40beea29245b5e2ce65c417619004729cad8c607b627f61bce11aa6b3faf546683bd5af1c2d06651b1964144adafc3174c32161c465330f7c9aad3fdb3481e0fbf35c290642b71e6a387fcfcebeeb8bc8315ecbc27351a5be6aa704bdf2e9311971cec7b11a1a1d51e49d07dccdbd7d84472532803ddd", + "010cdae91c0ff38c5bf086af49b32fc70bd7d3b4b1f43b3c0f93b7fe4f511d7c6c", + "021f2df738955103b03463c925e7109aab0b46bf8382cfd9086f1692cf1d18d01d3f2f744068fead3d3ada7df1a574d595e1eb98f1d9e099be0e097e326fad682d54b8abf77c07db1e81718dc2ec0b7ddef4955544a4086390f59a2f6c6abdffe50e4162b06ad377e68ab45783d04b14fa99fd6140f8efca483bd98f89173256c5c8c0f76a68820ad1c4f1d20721877ac792b608cb3a8434fe56c4dd70124b24ba06e967099115e80b909fabad53217d7d1758a16704d4" + }, + { /* i=6913 cDividendBits=3671 cDivisorBits=3023 */ + "151ccf4b7bb85531b74f6c6eeb18258190a1031b488dc1ec47e9122e73b7fdebd52b77ea8cb1111c4dd9a742564a57013017dd2f48648a10c4d0559e4a1a04edb6ea5ff1fcb7e1f6e98885176cd54f8826daeaf047a872fe375c9e700c5ab8a42fe1d182d1cdedbd1adffc06ccd4eb6a2255b4a4b734fd1e025dd41b2c2f7c13672760d4f517dc692c1592f11806d6b259063e2012370d65062a72ad5fd78f23746f42391a95d3da2d1b8ec87a807f88a0f7ee1028755f25b04e12a6e20a534742927703144b0570f6b63591ca80335a8f74a1194bfc0bbd643ceec2ddd90c6183abcc312f3387a42b552a9cb5f6be966402e6f2e70e08680845196ac944f6bf098f5f4b7d4417434b0dfe4cc66eea172df105ba418ac4bbd6cf3f27d0df8977fe35dfe0422a439fbd2564c1bb3e452d198eb49bcd9ee9b787407c8978a261cb58b5782007346990bf01d69d20717bec6c40248357e1723b74593837e1291616a2078d493523ca72d98da2168534b29234dee2c033feb94af3920c0fde039d21eb5a3fbfcbaa94f2f7297c896af0a4503c0ce7654ef996ca3bab5c51ea389ca1b53fc76512ddbb1e2a200b00bcd02dc494db39597baaa4282a0301d7ee537bc03c21cebe3efec9e12d301c", + "7702bed564014a3f5202bbc9e034571eb7fa561e700fbad4dea131e1ec5ecb3e051bf9bd80d47512458b9951203339cd3eb717c60c1239612efbf0341c266a94146982c1a6855c7136543741dc7ae965499b9c1f4f57939de787242da36a697ec4bbc7850083ecf92a6eec79eaf170568665af2daa2fc9e6b206052622e77890c41b662de13b490971df80a1b5e17bb7de120a75db7244958800754fb80d09928f1ce919711dd61c3106f34ac11a93d31caa3039f1197bed88ba35b8ad403a28f3036df3f3fa4149e43efd999898bb6b6fdb265cbf1d6821fe05c06c78700e4442941d248fea6a657cec4bca34aadc173d736f0702833c4de3ba6987b895298154ff297c40bcee169c7b5f06573f06264d137137245a77b97c578f62aea251cdd076b4171ae5931820c248ca7801853d97458c3d5327d83b27709b70c17ea3d4f9d84702e893ece57e8ea433c0e7168c008d16b9edda262def9028351fe176fbe70a0eefb591f3c9f5d3f0f71d1f810f07d2b5aa87559280b57d", + "2d6a1b21b330c50c4ac62f7d18150a605a7f863dbe2fa8a6642e25aef7211b0018cc43af38c309e48a60a5703604c977832c19c321a4c91bfe2d376a4a5413a264575b6682a0fcbd9672b374cb1c54712a", + "0f2da94d01102306e3d4bb8c4424a5a6b56f4d81e9f641d055809782ae4aa7a4d62cb155eb854fd7ae8993b852cdf859f931eb46dd317079a4629e16e9922e8db1118779205b4eb46414a5ebed7c8d2b97f5709b2a9a200ca0f0f6b598fada89bb916d9b3646e7bd9e5369f31db176b7ae2d1707bee90f26acbb100ffff7a5f0507e9400e168c93d93d2400b329486b7e4e77372a3c25254f215796aabe90652392626cf118b3993d1eb49cd20963ac830d051d7dff087630b239bc491dedf81fbe51e74803f3ddc6b429a5a0471e794ee17e5998e3832f9ffff62f93f25287d1fa36ca440f0e13729e3346f640a530719098aa2cb45883de10853f481bba08dd74cf4d947c4925b82a74db9457e36fb1a31e821439f7dcac2337be9d9892cda3f9c46020ea34689d9da3c74f4c82fc9999d098d3285d623fc2b7face9022890e4b2f3220b995ac10c009eb8c6710d48024b47feaf2d12098d91439185340ea1a84ff12d5022114d8b080fa5e8bfa03c1bfed7ba50e0ceef3c9a" + }, + { /* i=6914 cDividendBits=381 cDivisorBits=37 */ + "01b3ad64bb591b5dfa8b18b8140187e1838d415a667770fe4f62df6118067b85282c17ef35e7f1dad50d1fb4fb35cf42", + "1135bd2dbe", + "1950c33ea9533f3e9079e02b0e2c6d90522523207d2a3d23724a781bdcdee5e94baad3b1ead280446804a1", + "0a2d5512c4" + }, + { /* i=6915 cDividendBits=1877 cDivisorBits=180 */ + "06015b8332ec0981de953240903caa4d14fb04833826e698ff0f9361a6a0759f32d0aa6b7d0000572e21d419ee6207cd8e34a51dc8f12d225a0e56166ddc44dd594b43fbac7fc901c0b49c529a9ebf941c374116713ad520fe32b4fa7fc221161171ba4b02489e77b5f215c480c3fb621cb4d47bc21974ab78b7a24a8bb75cd083d0ca2bda15bb5e05e7ff394b65d66bf33cf57de8c8f5bd54e39e9ea4fcc917adeba582d695a2644a35aba0700c6799f75995f416169f8b978d93c1f6048a7ae49ff643ea031b770d0d47d63696c5ae748c5cba2db4293e5d5bc31960e3ff0599791fb9ab9731b19a2000", + "0e367c50e10a1f664c7b17c533d8888969b307c4284c15", + "6c2ab66b1c19b219d2e4f4f7324a9e0267e0b23dcb07dda2fbf0a4266b2704bfb2d3f18e0fb68cf5bf15cde0cb2680589e92d7219c9e7b5a5a2f2e7c94754914945c00780e93fc98bc8f82f198b43c0213235a66b0796b8ef084a37696a795dca5d4321151011419e2906782212c8761de730e5ff81663b7a1915b4d549ee78c062f1cbd779834ab2bc67b9a519cf4cb1d1ec5b6acb059d9a40080399954bc007e9f5e8364354ffa4a1f0fbeeeb664798f2a7bbacd99797ca0a07209c7d94f351923d5e5f1fce3ae200e2c97b90f00a7d7455575", + "034aeb146b22d31bd152e77da57a747490d80e85436167" + }, + { /* i=6916 cDividendBits=477 cDivisorBits=64 */ + "1c8a21dbff8ef82cd57e9f501d4c056e46dd8d47b70d0f48fc77ed193b6c35e84e67dde88c4705ffcd03bc14b9b1649e222ec637e1d925699ea3dce4", + "6fdc7cc68defd322", + "415070c51bf1a034530a249d6e057dfd9e1294b46161ce0658cd393669243fa94511c9b3217f59347579275bbac2f6f76eeb46f6", + "238e3a203a3dae38" + }, + { /* i=6917 cDividendBits=1184 cDivisorBits=750 */ + "f1171aa5170b4797212fffc839d0b5e89fa755d1b2857fb93c01e57c5a5fc44c4799c797b8f86a3054a2dc6d4abcaa3152299bcf5e68d24b9b5a312d303601657e9a67e621c018b9291a71f8472c4d5433c0dacbc33908a54d2f9e51264aead06a3f6c44c6e4779db342c2cdc1bce4611e8899145fdb3ec2a10957395b9dc866f6ee7f57121863fa5aee2234ac8bbc2cb947fdf0", + "39c549e0a9fc38b28ce1a57013b402c2398928a91797168dca98960337977ad3ff19aa1a6dbb48099599d0a21490747d35e6c7df0542b39692fa0a38247367f0d0def68f195b393422c8bdad4aa9235e399a8229fc8b036090d2fcf2cb31", + "042c58ce9532701671e0c488b98ed1fcd76d5d133eee04d839d058b5343dce21daf337f4d4936280d5f0610b7de2de3f03d713646d46ba", + "2f276b03e5514a1064c5948cdc29024938dd5b3ddc7acb46e423ae3b5adab6132e7feacf3fa9caf37455cf5a6d4e3cd10bc7eff70947fadeb3f140115325f4382c842d8840c95715811433994360a6d6728d7c7d5a279ce60b53e573f656" + }, + { /* i=6918 cDividendBits=2706 cDivisorBits=1278 */ + "6069ab342325126936f2f20786ecf1af52a3e75ef0b25bed67c48ce6faca7bb89b8bf8b45e74764e6de3c38e463f40948849f81eab33354a6fb1ef950eeb2dd2ec8b08dfa96497d72237e3fceaeb6e320fd41ca5402c6ffc858ad495e965dfbd26f46e9d3ccb115b9c15a9e444017502b5cb6d4e38c84205c8ce10ae537ee3fd5bb9551ccf79b14b568e1440bf45facdd45b472dbe81fd40e8a22268d897e2db9afe2d63c95977a41957cd8a640e0a786c7ab606a09b386f64a6b256d2fc73da4a69db825447cc22eb2730ecf2994a988b74b482e618b39955c40b573f1f54ae93cb64f281cbf0e065f4a5383e1ec530c4d7f8ca1abeb9c90661630b1b80210ced0396f2089882e03f039b1e73ec8df1f4b3ebbf16c77ab9dc47b3afc7243ab27af2fffc730a79457dec873e358af788b85cee2c615aa677bacd8ed271c38dfb614d0be4579da0f4ac68283ea3f5106b5f46", + "2f4637e713ef0d6efd956e32ac80cd253fc820ade177fd85a9687c30870c53afe1431ed6418d14a40478cf87f65a9c7e34fb05e14d3011fe367a9d943151fbf7b97efe2f6da2bd0fc9bc810fe9023a4ad52cfd0986716ff446b195b0f52fc81ea6f34bfbf4092916740566547967b99f0f6d9f001e9f263fb17132d2ff63550451fccfb03c8f5a4a78baa8439db605d8e4473e5c17282dc9c9b655ef101d695d", + "020a184f3bcff28abc10158c819d652b8e92a6139df5d55126fcc785c5af7789afa4d4a7c17e354fbe3725d5617c2b6adf771ad1f4f7c25775486ab1e09177c9e7022b7bef926d7425651b7cc6e8ce43a5c29c5a4348be881197f2df0c98de4ec318e92c40be98d1d3d9e21a54711c59bc9b8507ee85542677df98f7a8f40cafa03067c34b95dc1dc55e1466158bfe3947fe8c690197f4fe524fffc01f3cef0cc341ff8b5afce64e0c9c7b2f983cecb7c4dd26", + "0f3848c2536384861f0f6744ac189f00107cb8631e919a7152dd0b76d7f8faa129cede370dec94031440370a18a6ff6fb54b6933030f409e80aa5e9d143ac1dd7c659bf34eac19efa0345fd8e69c2b76559792727f84deb66583a78d042186576713dc4f8d11b158d62d4f871ed30bd6542443ba2c1d0a058378772d565b54c37c42184c766a2b6491892ca44f3ba9e538e17e67a8f262a2bd6a36fd21e47278" + }, + { /* i=6919 cDividendBits=1250 cDivisorBits=1110 */ + "02c6b66704463054f9aa5c11094fd8fa82a8fcb396a0badb0234cba4cd299363e3746a31cf593baab6e704342a9d5760e95f1483ce19a7e446a216e0e56d5257499c09987adfbd9917e0eaa3d6000d4bd1a03eb6e784b8ce264c5a26b0cbb0b4aeb234322265385b357df439fe294c59342dc4b4565a69a4e345832920c04910f6b81b5f402a6aef339f0f0537ca6f29832db98e62639e20c441fb17a9", + "2ff64fcf7a62830dc5da2261ba1c5dfd741503c4d3618d0b10c997edf427663152ceaad41a8f41124f879d65cc922ff0db71ea046453858ce348db6c9abe71bc870cbdc4082cfda2180c4df5b41f115402e281b680915c9e12a7f3f5629d6d1ad0db51859261491fc21cc6a48dc51a1c751238248268826838f584768a39cdc8899de03b5a97c16d465601", + "0ed175250b4fc22c62079feaf4d93027b07e", + "205b0c902b22fd0624194cdab912e04813cb474e3f2a5074e53c1feeef4741c572ea0794bda1835c8c46365aa3c35eb066cc29de20112b002eef48734fb11d4d7fe278c69a6ec57f728af805a9c8afcd4c0e7b65655ab92fb862f43ddf7259069e1bc45a5eb4a984dc5e2d76aa6e26c0d102964cafca5c38b0dd1cb295f464cf095d1c9b3bc3bfd415132b" + }, + { /* i=6920 cDividendBits=2548 cDivisorBits=2077 */ + "03dd7e478a846969b121a7f77a3d5a040d4efad1e36d32caf1ca654097d29728bf37b7fc532408a446acd08c20f16c56d9453e119a68043866b9c9edfd9359baac486b679e16a6d13530df4639e87d5ffeba8c0c29e9fbb0ff13e117a87b208d31e70d3e5b5aaa608c547e28dacca6324fef8f3c864f6b0569583bf06b611812fb3e893ffbcee9c25f78b5c82b0d77b1ccf33aead7145acf4501d6a79e312c2ee4aa1d9a9aa441ad2c7542c915eb5fa627acbcfc479e27d893949baebd06b37e051d734c91b038d535eff1b93cbd885f25fff2c3ed05041b77ad6fb42721b5fe9a1224b7f9cfeedb6591840d9dd5d1487db68242e0a55c1e0cf5a7de246a98db59414349dd00765311e4451ea8527ee7f41ecf7abf620e5a8df31b92d36072823bb65e1b2f1d314e357d811bd44c9b230e5809d468188baffb5c0d63c6ef23", + "0d4c9eae950aca65ea2e9b9b9ba3ec6b77606f0b8531531ad41ef4afcd43def0371274b08b5090345850af5c53e218b1e500789a67f17b433a7f23924ccca4d9cabd51f4a661b3e8f162e4de1abb2f5088ab3dd52cf16fdbb2511b77180dd3b33244c53536e50fc5299ff5fc86777b6dc4b96bfe575ba0a4e2489b8b86d11163fa6db4c0c6d41e4b2f23f770250b2a474adf1116cb5a8a7f580cae65458770e5746974c392bf8b267c14f5073b18ced53432a42b7b44e07af1a4ae1a724439396352edae6afa1df88221f86cf3b7173732d84dcbd5a135939159d68dc580bd93dd8dca0523d02c63754ce075a75c4b3822671bc98bd4cf3de541aa37ee3782da9872c1d5", + "4a66e4b90370a03820e916f6fa32a9717ee31995781b1bbfaba3d753ead06864e58f6100ca0bf64108d9c06fba0ff71c00e9d88661363beb07b818", + "04b9256063bda21931886ae05ecba6cc876d04d9c37aae220af5753c061c5aaaf7c02f5069579c819c8a4552d29713787d66f4b1b163916a4eaa9858ebb8a88bcaa150e736de8f7db9a4efe3dc4b26bece7c11ceb195de388a89d3019e12cd9980df9f20064f5372db4288e663935cfa17fc51f084a1bcfdfd67b886a4f497d174f6fd6012d3c9c7173e111c7ff8affaf3fa63422f587c3a0b137fc88e44e01d16f4d4bcd1ee9e0064c0e21bd6747a4ae3880877c4fb4429e55361ffd1be30e2556b3e65659654c1d9793673270775b554446973e30ed736b35661fd820c7ce31f1c9a1cf4e75348f271c722e5ea6bfbf18a7e35b2a31ed6286ff53fefc3dcd3c9e0ab2b" + }, + { /* i=6921 cDividendBits=948 cDivisorBits=873 */ + "058c0dda42bfc80bb424f85730e919cd29d7af951bad1e7fea72312eade78d8799461fe13f54f0489e450843ea9e95cf2e9567722e20b4d3a2ed92c450a40180e0e5a9d7d4a81aaffc27395763dacf96d3c024287f019fde9a1d62a68c8f9ed63fe9a34f73a86cde43e09e032955ed6abcd7a56888fb7a", + "01be060ff4520ab32b4592b9eec1f50d7c741c315004a4d5cca0ef4ea5d6b42eb8798cb69c5d81812bb7f32a6b248811273ec3c646a96003f0bd70acc7403a3f8b97049112486487c72bd5df6d4dc8221087fb1a6a4a6c318648e03fafd15b0f82b67e43adea88301bc3e8770e92", + "032f0e179c69ab3b9e0c", + "0151b8881343957fc6fc5a4f84269fcfe86ef27db923d724c6deead1256ed9ac3311824e28b3ad4d50f4493b01e77bfa554e4faef1d631a5585e2640fa07c4174c14df79a30dcdf21fd9e9dcf6a8abdc03b0d894c7dca4088fd0a119507bf40c4ca61fa25befe41694ef265030a2" + }, + { /* i=6922 cDividendBits=4081 cDivisorBits=1666 */ + "01bc62df65599a2518c35d7a10215602f0613d42e62c01798d0a756db1f973d61b7305d573e669607f49167a92950e0f500372c9dd0ffd9d369d279bbaa25c726e3a6e919e7e88c3c2cd3f9b66755315b19f5af0c30311f2d5d74e45f55091f9b3699b8f1d408e49b976596db8cd178b3a518422248f3bb7dc49009e169c97aeb7a19d7956c74f6443d0315a132aac61d8110a8e4bb82b39a5db6e3bcefd6414fc46efbf159c707fbd1982e80e8ca91f43104e5852f7302df1fd0d8c666b2c759bb0a6ff4ba93431f9e57e09f52119b557e27115b6a6a0545bb39bd6be7726405260fc3fe6f076160be5c21b68339b54424f94171fe798e8363f7beab6c17ab53d08a5a4e7324583c88f0fef4c701d5ed625e7f43a48ae92431632aad9b6b5735f97d7012813898ffd08b15a0d584f9d71ba962270b00af342ae89589bbd495578b3a79e9bd6ecbb4e2af2ec1b9666b02160971df5d77909a9217b586a68379657c9311e158e4e9f49b7a2bd92312f98f3a60bc1198f565aa745e97547c5e9cced3b6e13999a2dd3709d6e318893e5e78f5b8a4da8890606c67bd6fe31017aba49c3e67907ce5c33c714c320dd2d6790b90fa16945a8c35b69d0c71f288c00b5f146c6d05671b7f3e5e78d162b587136119cf1bb97102423fd208cde1eb6b81338fb67415292faed8b26b48b65a938c572ec17696cbb5d96d579bdfba99029", + "023883a2860ae3fca18a0a5bc85b39f1f6732ca667c944133ef7ef48690a85d5a93b45e3662a278e44fc80260799f9990121ba1ed28372659e636ef2ce9d37ed9dfbbaa38b0d0487127e2e01c9b4cf81c8d50006072e069076b4d6c9a338e567f45f13bde029edb1f60a644b77acf6a950753f98e99cbafd3f2971b465c2f0799052629c24ee10c61249ca9b02e65c97588df313ca9ea289d52410c498967410baa429436298b79cf50c76b084f755f5c0624fd9807e0f2453febdd197e9680b37133a4409c264896309e147f57716424a", + "c81b085953ce77626c84ee7b6959b510bcab15d41f97e308f9159792a4bd81aac040dbe15c1e113a3b018a1a5b6ebd6e4fee0d7d8470028ee1adfcebf771b2d3eb1bfeff7a1208998b2f927deb52f3ae20cfb28a457381a69c09ea15123265804d9a161a2c28ea35de0fef9aca692a283267f98a34415a5a4a430d8fdc61c48e672d51b2333d2c16c9f58f762eafca787de76af0f818d389ed40f6461a3040465c4da36cb61369b7edbb4303ebbdc32928c031e5e7a5bdbd1241878211fed207b5748551a68832cd3b4635abe48d4e4cf1044b983cb4fa5c5a860b9ea3df45eef50be11c0a1135924eee99bebde6265825e2a649a4b8d1b339d9dcd2c6039b3aaba8a5f10212bf021cdf00ed0d26cdd1a98f45b9a169ef4fbd708cfa8c2160ac53f555853363cb246926ca71d17b", + "e4f65f0e6ae794059378eef3073f81a91bc4557453a83fb9b0dd711dfa33c0308649936cea415ab1ac5d3a3c7911aee8be10b95cde29ff6021ab18da0ae2b86e8cd5b4b4464138104d8b79258584af9982cee833f77a2ff130943d13a65a0d09f1b3d5bc9317681516a538bd7e11cc2a81e024463d78b5a6722aa70f50597100ed7c8f1bae96fa50efc5ddf40676b440b26d036d7048617f3b44fec70cd7fc0dab053403ef4d0724e53963d1d6db3607eb9ff7dc90d9a94ed5832e5de7d011503923a96003479be6a9a12e76f12f4c9b" + }, + { /* i=6923 cDividendBits=3397 cDivisorBits=1648 */ + "08f73a47bd1195133e608e6e1123c3e4d396e93457a2648098091891cfd49dad0221ba7fd1833226888d335610cd0878b7e26f90e509db4f73eaccd7180f9cf6123f38a64d012ef080a4d678aa25b848f5a0a36c20aa9ada628d9dcb0a68300df53fbd14c3b8f925a18a6a3ae091bc624071286c71252105812a0bf777543c77cc3efbfc06158b660f905f1022f328cd0deed382ffe95ed12f69da8c7fd4405eee2a6933238e720417fdc88bfeb92705cbaf74d35725e51d6b72311f316f92427fdaba2c97957ab50b41c7c0d37b324642d857422bbefc4a34c841a0c33994b64e2d5b27b0e774778ace209770ac84cf4b33dd62c08d230cd4d2752b4cd0e9278417e0ea7803a930d368aef47e55f15e11ce9cefbb004c796c5104ae8ffa20f9efd1e1bcad79fc29fa742b70a11a74d9d7f159f65d8f5c5538194d1629614a09758937d2152c1db1609ae4b1ffddaf194b76e61af419040b46f5659921eef7addea3b9d7c62d4e50d9d5dec6bdd24c426dfa922d3d0b13cd64d4c92b81b0e864b158dbc212bfe8522a897aac4ff06be1a7d3ecfe140cd14b29d0ea7b2a0bdec7a7938e891b123736b9", + "e67dc625600385c012f76c86be4708b59278199eee564aeaddf897360ea316db0d8e92fd78fab7c459d4ab8fee92214371311fbf083508d3906b9a3911030bd3e1eabcbb0d0ba4e6f2d36012fb685a5ad67b6b145c610552334161af955522c6361dc6563a98c3b7d44cdfbe2d65b4a89d8a6ad7e5e64ce73520df27e0a46deba23771405fd1411bf28fa3251d8ab065d479a9906ca98f407f006e686e92bccb8349c69b5cabd6fdea45b3461614f65421da17770cbed9da753e9072412c29790a8deb8f0719cadeedcf79e05406", + "09f53e22cc9ecca73ec2350e22cd8666a4465d8234aba15a16a9da0d60a0f5a59e98f451d3485c662962a003f82da7b039104715edba852e3b337fb62115747a36779508f1780e0c3d54576b192a2326ddcf1f8069f3fc60f87a8ddbf56fbb0e184a2aee6b0d7a3ddfefae12856a8cc8b2c2fb8ed6cace3d932a202d60e635ac81d13af65d40116780a82f8e0030ff6a7ff2edaf3d6b72d150ea6dc2ee2af5d07f74cc7a975c5d6725716ac6735cda5d898c6441723512d5abce90bf8be8ab4969651b7323bfadfb9cbfbaf10e0dca62464ded9d79dd2a07c40c89", + "a1f776e7964a303bc3cc6115940f68e55179a9b036a5d95140420debfd8df0ef50c0372099845f09773de5740a9ec2dcc9c1aa6f0997f951ad302347189702f58cdfe24a2df7a2b06b6e76040d863c9c960836e37a1b60fe2169edbdea61319e2ca799c3cf383b52638beb478df548081b0805ae14a61d195a48c2f53b2a697ec2001695a6f41ac0557fed319ddaec72facddb63fe332678a253a2ecedd791a4d2b89fe7fbaa4bb1fa30f17b345a8ac3205fb09fa0a98218663c53804782927082eb2f6d73cac3c02253d6a1f783" + }, + { /* i=6924 cDividendBits=3568 cDivisorBits=2978 */ + "3a9160f1ed1433d2c482ff7562be5f5125c854f7765cdce6ae9503a39876a78bc4aae632afed996f2893540cf2b14d289cffce72a33ee92f325bbd291a910b00cae541de75a3f9ad4e8194b546d1c04c447ba803c62f9a08f8a781926d4fa519c1d1b6b474995a5289c262ae3ba603a1cd9de88ca1382a3a6cf989a47020b7f929b55537ecde9d9a1b624732f415876aa0dafc3567a6c569d10ce583754a23e9fb4c4f7b9ab3021efaa284b0975862cad39e117591c3e6c8f3ada125872763dd4a1da5ac1b8221db8f6020082675212311348c32a185864a0e560e14df2d12032acd31efc9453f1a1c3d336b9e73496602bfc07559dc18497470c154306411b95385cd8d167940961e757a0cbf17bdd231ff62fcad2e6d8590f6763d127af938986f77c07ddc86f2c8883499be9f682d93b36c91fb0e65a0d4dc2900abbf777258a725b6450ac8bb6e6b68cdabad8c4a05b4f83d69a71f842570e24c6bbd974c4162e3d11bf095109f7de61bd678e62758be45c175718095f7ca3d6e05dd16d2fb2b764500526cc0c86eeeee6111221d6f11947a11479afe46fdb6f06f8473042eb8f98145a4b6e7a742f21e41cc935f4ae3e2a9fd078a3e32e0ab462332", + "018e8019bd632b41973a65eccaa5f3bd8b1de8a76d6bd781dd1ba2d5f5a3de3bbb9059256ffa1673390d43d9476abf9ae0170345df859ea9fb7f440c20fb60e71cd17407c8de80fe790ff2e63b4b02f1e5c762404d413eb3f88b7b09349674228c7d08a05da0a843ff974bba8b821aab13cdf06d735425a900bd25b4abfa394b2bb3bb9b5ce4f76072ad269c7d226861b3e180f89909e8c09b2b79096085bff7f74b81bb7b7e9d6050e79c44698b89199eaf7f392c38efe6ef706420fa4e55255abe894f1e2c7e4fad446fcf64f1e9799ef190f304908eea5b0f8d321f0de8a828646d689ab803a2e3c3da09bf9c9c1bf61091108910a3560ff50551dd09dd91f50de5303b5b8a25f560a0e2664e15a8d6bb30e204303861fb1b45a1e703296a6def616c4e5802d78d701cd2285df9a35e63570c4e2d8321e2be4ee466cea10133eddedd4de2c5d1d067e23d3a0f9f4d4f3ad99aa49fe7535c614859c40011f32b9a021a8ce1dd3cd0ff3dc5f0780a6d2d73649bf4", + "259fdf575aaf1ee84bb8f6cb3cd66cd2143a5a09aa4ab79ebe5561990f39d50353d289fd0fab053c3704ff36fe2329b0667ad3aebce53056bb4d53d7d2c28f4fbcfb72114453a9272b56", + "9a40dd53b6b34729ad2f5334cf8dec10b8a17d6dc75c843c6aea5083506b50b8fd7c4b71f03c6f9d671230a4ba27b0b2ed21555fe3ba94a2ddf946a5ce925214d4795531b9db7b5f80a84a4ab06fd943aa6e1358b39b35d67cb711cce457696d8583eddec373891908e4f7ced7317119197404d704e8815a4c9c2e9facd75e4b177a420d54329da6d42fd98e3e79f6c02cb5fc173c0f7740489e1db90ea0a1d597e31cfa819368370229487b8d3554091a7e2988bf39d342e7e09bd294497715609e4d88b3dbc616ea57b28d8eacc949e00310eddcbc3f9fe7c1894db058fe0ddcc8c23b57aa9787b7348992a3454094f039ed06d35915bbda01524269a647573c8e2bff18d7aa56979548e6de5bab5542f335410dc701eb7af14d7692cd06da0098391adbaad10633969eb618230d08a73c93c669a68dfce060d4cfe3efc25b46765feb2a54b9d7bc6b6a6bc79d0dba688422624ee1897a3e80a4ddfb2d0a5762934b316a7cdb313c87e6abad0d83d62b1bc33a" + }, + { /* i=6925 cDividendBits=3441 cDivisorBits=1390 */ + "012455584d97bb589c97c9656ecc5d5286376b985f08e61627fc6cb7fcfa63484727dee5352f1ee14b8ee603b508fedff0dcd045b1a3e6c962d6af2fb1366496e74457c90994fcad02bb237b756f2226cb952f5be06086b97db6901574e488bc09feacd2721017de47c72d6ead019fa61c8651372103c1042aa453e2bb095367f3e2d485b2d714b82ffcd49f28bc04ae1ef021a78450d77231e846e33c75547b095527c5459a1265129c6e425910227f4158e0ed5774c4f68523b444d5a03d62c69dd127288eb2ab675f9d656177db771fcb68e08c6c80269c0608691f5c7a17e2bafe3fc1c7106bfc8e94e253aafba57462c26898bee9c95fe3f8d101d3d5a2f19fcf87540f1b2873b2b058e4893845deb0db551ef3c8d1f130796f35132c300b481c993ce2bf42aba4d1c162bfd209714a377489b50fdc80aae6b96b1532c9b060492115bdc1d4a01fac9bf1c62bfabc0fdce176a823e3c688cec95ff7b53807cecdc42c842d17af7344adb00a34d75a376b2fe7d98e35f64a7a360361aede4995da6ab825bdb368026196d69839d11e7f1734c69e45e2e55754d1261f39059f6057954ecea47d638b581be8aa62", + "0ca986d4f70fc8705e31bf6387be525c48adcbacdfca76177083e9250954de58ea1bfa77346dc24e5c841a2f92e848b472849fb17d1d0e221807de04d13f6063205a97da35429d1e5c6dff12b220a43f275b070c97e87904073776cc15af52174e782ff89dfc3c1f881b6fa7ff7f16c846ddbbf5ee0f2941e880a035e7a59ceefb5fa271fdeb24824ae40a9d176dcca82ad1091efa7e305a0f977183d3a8778ea11336e95e024033eff72d3da72d", + "17164a0bb29ecadf708db4bf90c8da18230e6f63f65c930e72619b420b3f431e2c3caf5fb62f0d21a7d35ddfb494266bb36b034e033c38cea0b6db6139a7108e8cd525852ecc190ef4055a3d7a210df9f867cd18d6b0814376e0d0b0fcb2531b2d4be87a9ea2395fec7b77ae36c5633241fd2acc33f8162abb3f99c419b1c0d10d0b670463b287c134c0b8415343cdfb90d47d1164677d02cd1d1ba75472d7b3ecf3aeddc6ada3822f095a93f880482fa63cd9d565712757af2a9533d8abc3d21d2835f042dd10772603c0bde40b9dbe4ab3c3315a671578543fb13893a4d14c72697521e401084d1784fc2b61b584eb6fd01ee64e63a1f03eff51922d971f3ba4", + "06fb53d094a2036fcd22186aad9cde2647f17d34cafaafee92861af5594693aea3ba847f6e5b8ce72d5376abe9d7bd6890456f047f2bdc8fdf79c783fa3db2e761f7a20fc6c0a4a860528abe84301f769ec597c5e7f4e97b98b3e15ebe6b3dd18619aa1ce83b40aa7cfc88cb5c490bdd9a527ccc67c712823fff3c9d974b5bb745431e412fadd77aa382427b26f8f3e89e189635d6f21b31cc8bc5d94690ea5d18c891c81a64b3c6f496216f328e" + }, + { /* i=6926 cDividendBits=1498 cDivisorBits=597 */ + "03c5c2c88947b423fcfdaa409628ce9a14e0c5e80c16279710885d460f6b2d8f4d5bc4df0604dbf242bc4fb97aec832e7f0466be8bc09baa99fcf8d717ace6f67bba77d7d805928dc9a67f9bd659c63d20c67a0fdb413f8dd8439ebcf48840a6cb8816982adbba3ebb938617248ed8e2b7395b7b3ce3f995daa993d9308d3f80768a5f8bd5a95637eddf5213c3facbbbbe2f374b693604ddc1157020c86a82ed3c707734c835e60bae09f279590622998dd4b2d169aa54bb4616f903", + "1d7b9ca318d891abce83fc832e97f4a85ff41af264c5d94fb8ea07c753744a31b89f14d0bbfa582590206555abaf78965dc8636a3dc31e3cbf2b479899e58e5f15531bea8156d2b590e1a0", + "20c1b6726f394d813e239c1bb2d03ad1a6595b76aef80754dea170dfcd7ca9968b7a0c933fcb60e4b62a014089cab8faf54af75c7c055b5d25ee78dd823fa7368e19d80408634466f82d7181ccce6a82fba19c7f3df4670160e52eada9db1910eb652c6a16bc4fd4444dc2cf91f28d8af4", + "1596760c9771e832d755e3b53a82183197d8c4c1ef3965a33233e0bdc8112a9439f8a3c11468d1dc6086abdedf1edb3fd56535a96c95f11794392803562e4b5a30da2b1324dc50993fac83" + }, + { /* i=6927 cDividendBits=2582 cDivisorBits=1694 */ + "2779c9d8d4375bbbc60f277f42294f1569b93b6a14c4b5db3b0e0e46dcee0dbd594aa5f1cfa30a9eaa0a0189cefccb1d11f3aa5175a62ffd375f5ec708f9b3d00f9922f03f2e66f4eb547643ffabd67f34c1036720010e595ea6f1d664bafd3a7749d1b15010f160f82d4a6b089776bd1c55d32d192cd793d3b6e15fdffdda843458b50c9ac4dfbebdaa3c2975236de384d5f59c252bdbaf1e5286aac9baabd6079d466bf207515703a37ec82ed7871c3907f128b846e9e3ffb97cdfa4ad721045eacaaa07dbe003910402b0dcba5f1a9e131ea6184f44cedad19ce40045b82e853251db3b19654508816a5e8df50d6cd4bc2231c1f6353eed7f54246aac88984218ae90496562e6381d80d323e0069f743740226245918b959bbebede88ba88e5171e763273ae33121464c7b415944c99ab7118a6a6ed61651316477c6a16673e25ad", + "3f87ba7185a876c948f01be3c4eb3aad79f0116414ccfb99430a309240afc0c35b72b98a2a0d33398e30e01646f66cf2ffc4c4a7aa48a27de75147743d005b8eee2a813f45e7ba2527c12979444a2c98996545f7d11afa42205ed097083eed291330163afc5c4e847734bb1da8907bae420e27ac1068df8c78762f7ca5642586a9d37fd7678bcb088f9d8635edd91d19c41d497e14d57ed0e60ffb97b22127c3ad980a1310faaedd0584784cbcf5ce4f7e5fe1580394f4e0ef1c0ced9584e6fa85b0f319a0c391f7b678d7bd30a0e38c4de44f04", + "9f12162e883c4e0a46220877c5b001f2405ead4e01b1e7c5b0718e6985d961447125c755eb6d25af77736f17ec920e3e6d5520c8f105d6ecf36768edc56af876b62315daa5bdb48fa648183cd15ff46888a3ea0839cee77a4949e59afcf1b2b1a4d049b22978046bee21e2387103c2", + "2e7d5ec54f8851ee595af45df186e8504340e400d94a2b0e595de4b009fb74618749ee9db7ec56687173ff75ce4feb310b3b98986d7f2def751a80dcb784a70d7ec54c7a49ca9a08640b748ec17f64c5bae85af330eec5d2d5660075600863c5a5e4b5cc2fc66aaf84de68198a4a30806d418ca364790878b17923bfa073b963b970700e06d6196191e36dbc28a4a69eee8c38b46592e7b066504896928dec7c9b41da466d5c23a74cbd6509aad9f9f0653ab0cafd3f2b9670573d2caf55dc5862736773c61987368988ca1b1577bc41f28938a5" + }, + { /* i=6928 cDividendBits=3002 cDivisorBits=2137 */ + "01451e9b37519c408632856ae04cbd207461a9002f30b21e4eb30203cc35cd85aed990c0cb9af9e6bc7fbd821c13583742dcb494575d44d79ba82afe6e5c97e646e0565a1aff7be2e7cfb3ba25a40fbae2a68108ab583c779d6b32b3a2434de1fe2c08b528f06b1306f29cd05aa16b0dbc63b2375036a1510aafb39a8e84c2b21e7932fdcb1bf23c6da9249311a6f348def5bf24105c0654efe6d25d13cde8e453326afdfe298ee392aa366c85ca9202a0bb414a0b36172ad984a2bad35b8ea036aebd7ab2631fb7188cbc927a7b67e478e2881675e032ac14dc2844e83babc7ba30557a4b0ec591fb6602f12db0843e6a0a75a5c17aea4f07b4076f621ed135eb82458847131089f5485ba6eb1792ec0a533fdd50801ceef709b113a141c064d31877e98f76aa4cb91993b9a8cfeb212ca060c09332e5a2d1b2945bf3253738cdcf93c6dd7464d20cb7fdd138072f464635df2b00982dccc33f5bf4e15bb02e56f6f959d5ba45687b916cb577c3375234658e46cd68065b", + "01689a5149e530ab6220e0729d9e74f911833c7fff40977440fb905798bc6a3be9064c0463f26a7b5a43f3ddc680e7cff39029445990e8410145f7b6eb6b966a1ba4e6051f5558dd8ac4e0ea2d93c9706f6ce0232a97c1096d48851f797f79d24d3f8245203a385424b2064bca1bce6682d7d9098f715fb6e740ee936125a32b5c6387c9d5a47bfd0b29be81929f4d3c8689ef7a96aa601840f1e42c2b5176e0107e44991368630f51a8ba761b158f679143d60fbf7eb86173feb67d4c76553c523f3729cd5debf2d454fc882854f5cc3b8443ca41dbf49e32534ed06ed9444c0d2fc57837931d6508565eeb5c4f7b2196fcdbe006386a6bd08130a9a8e59cb0d9299cd36eff50f466007e78", + "e6cf45260e4a62f622049a795b65f2b27a7e7ad1300d286e51dff30cbd6d639d179062b24e834a24b4a47cf48689c3e61466c29e74d60513719a9e2f9551ae945b5d25cd93a336da9c759d51c398f24ac952fb43ec21c8f2c388baf35fd1c6c7ee029598c7f28f5777181b25", + "bef1008b579279c13d8a51a1539f13276df411ed2072e0a432157838c7455df1e536fa030f3d753516cb62ddc61f2d18198854746ab03824d2b9dc1d3ff3ff456ce6caf9c46b2a02fd6b13cd710f478252d61f80dfec5d971712a47416a7f4a515be4acbf522fa34f8e4cbd6994a71df1ed40ec7e76e64e82a158980c1afcbc94c24287acf740c6d862bf5d1a4855d32b8d8e9d5fc0bc6c6d7de87985e9b10bbf38614db5310a2d532a719296080bcab82336a564aecf6efc894a054ef85a689d473cd39095f8236fbf4a61ce983926aa1cc354cded144880d5d409e0de069ed11185674d8f919be8c58fe5e96a4664a120ecaaa19bad720900c8b7fcfeef674a3636d436146945ebf1703" + }, + { /* i=6929 cDividendBits=2836 cDivisorBits=1283 */ + "06653fb41202d4f920632aa6dc9d2ed4b23bdef860e845dbf84420599de87bfd290cb56a465042f59a3ff2a71b60078a6f762ae82c9843686638de4eaca48b25aa2b12bcb042ebd73133c8b0e12d04bea84ed85382bc2ace5c518045758935813402e03320b8e707e17ca92da0a653a972c30330cda80346cb3e42da0aeb0da7651449c2f64ca787d390771db5eb11be33ce04a208998ef441a2330b6843a33d4dbc4159c190cd8cc118d609eee03bf7030450634e6da06f3287a92ae888e251b49d29492d08e63c5f78c7f2cc624d02ebe7b4e16a9dec6dadb59e08ef96d8b4dffe72d6d80bd0aec4487f277d5b3a803d44f050f4563fe37ac51ebbe56109eb195d73460f88780b5e6cb05475e254f724ec99017430999626755ba80b05c3da94470665fb3676d3f301a3e0f894137cb10683d366d78ac968eec65fea60a74a44e8c3c005277fac5272a8b4b59517bc1457a902a5fbae975da01fa1e1ea8d41a2a806", + "0796776417380d2db774a84fc88d171aff1b0362e89a2f32d666b151b0b764ee1d7889bccdb0610834c8f54b6657a2c46724f19149c0595ee2e76984768d0d2fd395b20d12b1e392edf4de5b5e578c84dd9439077cb1b74c14216c22fa5a99cddc9da1239126d9999d8fef80d199847a0edde81a4f65a6fc9d6373e90dcc0c33756a6829432427f4e78e58679ee54ed5e6c411068a07f83cde96627e1af3a497fe", + "d7c66726187cd3d4e0d8be30079dcc143c38b39691258a49a6b909fa08cedcd0c1deb18140ff4d3989e9f2488d976b74326a3de149b5749986ee36544a0a24b398041e97aef127ccda683060dcc804b3d8a527199958d3cdbbee8abbbb8b1bd04b4e7d60f7103cc5f52dacff3b33b9201a5233216dc3242071f2d5ade20753af7fee0e9a2a701c909fce753c53cbaf6d15814b00cb6135a9ba0aeed9054aa3f3b9a65062aa463c5dfb3cbc2c93f79c4839b0a5fa151171958851623932793b7cce7e", + "04ad0b0b07c7c3d1e98475a8a43cf7e390a541443c9676785bb59c5048d965038d010f6d237743df41b17aa9d45fefb47427e5e078a73ebb9d6fb5fb92657608e8d3d0f00ef7e575d8d2952e235f71c3fd3f1633cec9b8bb8b92b8aeda13ef0394533419420228c7a5c80a4bae8a6a1755d3bfd55dc31c65186a193d6eadf3f01e24e7c602dd104843e072db9f009674c5cb20948f4e9ddb42aeafc36bbb497502" + }, + { /* i=6930 cDividendBits=4024 cDivisorBits=159 */ + "49422e79560fc6f6c1998b30cf726f8e11ceb92dca9b42d60db4484d066100065e26cb9f186dcf56c6af6d0963894bf2872d17c95d64ba789abad659055968b43796a4260d92c786555f0765d918ad03f91ae845cd6e93f287ac4f72c379d3edb4a998195e52ed815d3f96d94f9abba195b3f119f669a2c28c4a1ecdbb06526a9d1fb65adcb803000dc4be53775311c3c8bc358dc3c334efe5eb3b397d528612af2360589ea359fe2e8869e39d34121c4384f31c51587453c044f8305521b0575ac60b13eaf82892e04f072d831b178f27e5f24ff842ea9c118c6fe43124a4ffa7017723e6539c4d1bcee9334a8cae9d6c6b52d7d911f0564677c11e76049045e043fbb2953368c045ef3eb5d7aa01561e321d9cb994f6f888736f80b3199afe48e81a1f69262cb409af0c5e27aaff21fba340a00166bffc97c69ddeb31246c6fd7d8f5b03b9df76cae265c422f1dd73b52a1b9f53610e172863ad5cc3567374ffe793e89baf3fd6cb2c2eb196cd89547a9e374955dafd23bd50702615b4351b9b942ca690033b560eb70fca802a0e64be8d482d4023b38352cbe408b16bbc570f5b55dea8e59332c0ad561d6b55888f1f868cb1031623c0f905c86fc3c5c70d955379eb7f51159c41a1c397a41ed3a15f83298949a22c65e2039f2480aed3a58c4e30f8291d0b75c498f93c5cf0b82d162a35fd0def33", + "742ef6fb1c437b604085f78b7e107bdbc99fb081", + "a16b2f68ca820fef014be9d9a8fa638cdc2348e52dccac5f696234c5d9c7d1bb55ca123db5509add640fe7df01335835ee47f38e2ae2027702a8f2142b4596b98dc978dbd6a941ee2d6fe829bde68d546820a4024722d382854d519e8ec86b08a9b91057bcc2fd713983a0e3f3ea8ac758abdd3849ce2ad9aeaafe989fcabdfcaa86b2e2a5ad8d6991d1b21ea2891ccfe2d5817cf13c3b3b7378ca40e7c13071a74e8a8d1e844df7cdd403e5c316f5ec045606e40e5240e0c712c341ea3de06c2fc23af836a8a8e12496ecf7353f3c4824091ac9ad4e275d4f880bf92fb6cd8ac76fe068517614ee52d7c31fe3b59379cec0a38ce830df4e71ce789fbae5db67265231fae80b93a7e8258867564a351d7daa373308d99b46bb0315a89638ebc7f184a9dce226c0ff3e0b74063c45545aabd4d0fc6cc24ae5558f3d007393dbd8cbaed44084cb930834a0a8214c2036232a5d210040134a5cd3f83f072d2f2a9b9ff63d955599ac8177c1ddd43c008ea37547a186fca5fc9abafca580870973a1f4905e61311aea535ba7dc704ee5e1c8877ce4fd671e17cb5829f012851f5639d94f06431a60cf03b1c00879a68315cc04d6a5e0e22ac9e03af9b1579cbc2405703abc6424c6bb78fdba49e2ca84b2230631b43a928049eecd0d098bb7b92694f6619b", + "308e482079c017d6eb1bba31f8f0671937873018" + }, + { /* i=6931 cDividendBits=1671 cDivisorBits=609 */ + "561a9c40af25dc38504cd3213ee566be07c5684c2d980986ad296ff9337f1cea891b225d9e9104c76d492d2a652b00bf5f765212a8388737c25723cb7e9965f511a509c163c073938f1cf7a3b0753c32640ef4f4debffe8fd95403033f73adfa7faad7e455030f6566466d18a1c7b3a356ba9faf35b0507314fb5e668e27e433e3f0b03147b0a05941bc846f069d1c96155667b1a7f4e33d7cc041f55c0fee9f16ff62af624aac502d384cfed461573c2f67d5eeef1a8d9e424be4631b864c7dea3506dbe69070b0d25f728b3e5a8d6164", + "955955a4b29a82412fe587570cc5c5c84679a867d6114fbc87e15f1c83734a024e196fecc732576d3fdb54da9a7df9766cafcc3802f11d57494e52dc6b59274ea2e1dcd6b1400a0479c7b9ef", + "939760a4b793eebf83fc39e8f4d350ef57e0c8a43d7d6ca6efc691233f6d489d0c349e29bfe643d759ca696dc62fe062cde8490bdb79326cb38d2f788af69de7e7c195b3b23b4b0f7a01bd23673d506b98667f2718a0f3eb5ebc457bf62b49705c07309705e41096a598cd1189976b94217c06e1f2ccf418b44f73d2fe919c05d2d215bc36", + "872c651a4d84a8cc7f7e1e1d1427897bb7a946aba2d264d72f25deae27fab5a0db19186c60690b298616789b74848f5d289bf9dca8f4c04ec3361b52db777440df1f31b0fd351fe7af45a4fa" + }, + { /* i=6932 cDividendBits=3992 cDivisorBits=417 */ + "558ca9fa19eb338bf4643842b195c8cb3bf603d6101b4a1768b5dac22ffe826d4c633f273db51e3f96e3b21e5c83bc200963cf8032e7d4809c00c11114315216c877883bbb9eb7ff26d864f993b5637bab4e7f61d8b9886eee54ecc6bf0a736777827db54034f2d83a21e0df29176eecb1c180d29eac4e2a97a1266797fd35875125d0cc21fd0eb626c43350cbb98c9834b7d7519b5cc3fa65aa3243003ec69dc7b6116d19a6be4eb6f580b65acd4c56a8340a35871b5d2082a836368a8ac8bd091684345e6da084bda44aed511cc1ac93b740bc50ba496d34809443df9d257e116ae6cf07b31c1e86ea83d71656cf5172dbc54c2df1bd6817c56a589d77a2d3517659f7609b89bb5f4a3d1b7782857ea26f780972488bd377fd46a4601f66e38294f7bd5182163143e68bf5da0d96d6c6d5bb3ba8428eeff9d8e6419a239dcbcc9cbd58548af4df8e71f2a89c237c37c41ee96914c9843f92ad935c2d698157b61d7c7fc6f9c976764d76af404841bce17728ab2d03b19dceba8b10b2bff4d7cee3db3d04d98ef42b1ea708e0947837ee6c39919598a4ac9546445e5b70063ed790271471903c52180b838956ac87c3cce58358476a9083b13f64225eaae043915f66553767fee5a279fe5147c1c0740aa1d8530ac1cd7acc849c925f912b86f93a4bcce04ca5fff76a2e4ccea11c5f41772c", + "012f4f59fa1739d14d95cf84dfac9489fb552613c74d27f3821761e3c2a96f30fa57c7f1e081db308325a5d65c38c9016c81ee3a87", + "48349f24769f3c6aeca7b60b2f0a38c3995545757e854332d0877bb82164af92e6a418424cc0f90ec159af179a87ee2d1a470b418b15e465f2e24f72e0c1d72761bf1142edcf98602d8d59777b85363161bf8ccf090e32e339ea3442a7d0e5e9f14af6521f985d78a766b15ea5d4f22c37de43c70802ddb9576475c83b516d0fb2cd248a8432742a2d3c0c0ae24e717adeb52a3023a02b58ab95450daa9581e4231befdcba3c954a9fc605de263936d2ce9fb9d66924a5fed2c45108aab3a73b73f42d192c1588aed176e707b420ac6dcbae3493227a762a62d9ce9665b676ff69835a1ef8cbccca380af3c736dda14e7fee7efd48fae99a9df8e2c3ca59418a629aa3a64a4d280d81cada323b5d70315a971b9ef3e05a07be7511a57566434f8cb11fd50c07425968424706cb589794829af06815df7ef5b4de9604109b6a3fdca3e5cc95611956f4e3aaa85fdf837bb1c585eafa1465e05315f5b5ffbbae52a09ed443c18004ded6d2c3b6bc92de764af6863c23ca5dd4863441ecc8dfb4dc4a9d0c05db11e35172ba4cb81f0bc607dfe8b9e0f40e2d7a780357dcc89a4699f87d0f6ce35699f4ce5977bf0df2d47d6a9177f5b1c9386ea4e383947e3dd8", + "f08b88829cb61d3d9596ce48f8d600563436ac4f42fcde1b9ab01338d05f7a4582eb44027c657e50eee0130cd40f3d6d1fdbea44" + }, + { /* i=6933 cDividendBits=2901 cDivisorBits=1566 */ + "0ec84246900455cdacb288475b250d892df7dcfc891e2cd2ec21600a26b7173e4766682df2e6835e63ac9baf6d2f08bce843814fca2086c42d603712d44a42754ece77e74e6efa86786be957c2d743ce1e89fe4084c77ae77b52e305f94cb81325c7e007a277321e6c3b5ae6b60a2878e86e0ef428c319ab84fc9f8a84b94414e243612d9a2dcd83621bfda7061b8562bc067e45cd7d7d8c3cc413bcda628695fce07a9e0efc8241c5726d1fce8bda7973dd20ff2effad703b44ac6686e296ec9e68ea3924be17704f9f17a066c59c260f486e9f6820ed9fdfaaef60d8934ca620f035ec6b384df5a7175f42ec77f6e354a9f83fedc88407d7a03cade5273ff3632188eaff5018625668d30793b2cd88e66dec612ace0c23063a16ad59a46eb04925288a39320041018dc52b39317c0212031638be531502e80fbde0bd651c5dbf12624675e42aa2eb2e64b562f3bf652e49d237a843e6e395254e401037254a2a5187414428402245ff9d", + "0bba75a517dcc484469a50dc1923ce21ec47064d408b233de8082acd3071ac89ad720016e884548be9cd6f6900b93ae178fee9dea7814a5ec35855c7d5c97ffac9470bac081b6df011e675fcc84ad1be63a79043e3b73dbfb66f09ff94c7a7c8bbddbf8b5c8dfb32fb19b162f270ef15fa3abcad5c4038a90d54e15a37fedf09076ed68579f778c8c48963ab6ba594b3e97231f382db7e74ca0f1750fbf0be4854bc1205f4a02d2ea0e7f712c509718a427d71d4d995aaa1e0240d2be6590f50a26ac608", + "0142a8ad3ad861068db147bc17864c5e09ff461a56ebe8df95870c96e8f0abb8023015663b4110004598fad591b419744a2006380948811ae7efbf6ddee92b3861b1fc9a3e6b53a486beba792075d429fced393387a9a5a4a725ea5fc930248d0c208a65f0f0aefebc42886a09a879567ee9d6c6cf4e46b9ad9f09dde7ab4cfc684ab1e094cecc2dba7d7f0b2e023449e9cc278712c6f0e810da9d38517618cd0d62c037ba7caea5", + "04068124cc13064a6ea7edbc9c4b46a5315330899d89c9535e9c77cc76b2f55202a0be76ebb50541cdd2ac3e90bd64de2e7630f8ab2a7c4b055b3ea484afb97abcf3ae1a7f6c82389357ab4eedccdb5e45627fc68236cfe32c5ee7ab14a6906ebc69243475df295a5c2b2a500f8b4c4e5c84af2588db519199fffe44d60431ceab01feb0b1e6efc07ff95f6ed8e7c4edcc0f6890ed7d843dc35358e37471ee0f70424b02064213d25c650393986f7617832c80f6074e4bf2ebdc03ee0fddaf9124faec75" + }, + { /* i=6934 cDividendBits=3747 cDivisorBits=93 */ + "07412febddcaa3b46753ededda9a88bd7e9ce03ce5e5d7e0e316fc0222dc01859e6030ffe08a7e6e9a064d0001386da632a544ae523691232db0160d7f3d9d9465df4710ff77c1cfa879f748a39b0fad3ed01d876d1ffe0d76966be7caddab11ebdb28e713bf1daffd57273621e07ed0faba40cdc3554099f43fb8fcc1c5aa92c538ead0d9e28f1903017afd81998dd3044465ee522f882218f67ddb65a34df4f2405c98de976fff89e5c6d10ca4b922bd106001e414f9740ec8665eca74f2bf8501444c36760b48115e99eec817ae24ab0b2dab06cb49bf2478fec54795d1887eab70e9905213f9ce97ef91b790f665a012ef151e3099c6e5b7cfd6d2a64c66500dacd8d3cd1cc47e01ce4610e7a5449d50fec102c89a74ca68a8ab0683d757d7ffe85652dac8df00cf74beee59169c3dc504e73bc5e0a83e02a75a843674a7d0c9270e38e011cd600516f617467abdde6e1743bf303bc0684825d7e2d948fb2e54a3d7129df6102a4f52cc548e9442a469e709c4bb972d087981065b0ad629c1d8de4ff7c686b7955a66e67e6298e9e234922e54329dc59eb6f1db6317d3ce0eedf5085fc74217a747cd9cfc3988dc5ade63d1550f0c50ccb09e3752ee26a284e083df157e36d81e85ad9422e99e8ffb6e6c8766", + "097046f79be732763ac90e1f", + "c4c3f5d309ca7c6198d4b33ad060cadfab9e7d11e46dea3159fce53e9d13b074ddd1b3380d8fcca1e3876871f9c6949b4261152f3a7619e1722f68e189e14c94d5932d3ffc9dd0c1b3356e1f15d72e50852e90c97489cfeaab8831743eb9fa936f589296b7fbaf522c1a54f81796522aad76d71901fcd07334da52f3ebadb27da476eb417d50cea9f859e84e819bf7ebfab8af258ede6dbd411ef3ad79f28996797e5532b35d411ef9a6d0f84d038c9a491417635c15470ff9bd3c2bec4248fae5d8b52b936075d383c463b507ce1154ce579113c78f725b407905c2fb086e818bfd7d9ef9bf698618349046e16e9db61bad7cb0324550560632008dd8d5889c58388a8de656fef61be4b3e2aac8ac3736fb67196303ed3d7e6206681d57f766c70d0a9f37f0ddaad4360b6ea6f281526c1c95ab135af8e54d47c4b1556cec713b74a356af0f7b662468b253bcb669da8b3d9609e980aba4930cf32b08ff37cb66583bd0fedaf55ae66b50ca76b0da7e7cc8318b1cf88387ebfc33528f7fbcea0bfec76d4c9c3d1e6ef8c1b94f6a10ef0fc83287e61f2f7684148058c67144d1c507e3c0950ea4ef5f9264d6e84d9d86c1d31165e2d8047c02633959d5d40d36a9f0f6cba38fd2ca9f", + "845db0b961d39c5ffa4c25" + }, + { /* i=6935 cDividendBits=3551 cDivisorBits=2790 */ + "51179569db0c5496d84d6e8dedc8f3bbc8d7c4e14da8903c790d027dcf0cd260161e459c16bf1ed81d4b2ce0c4945c5fd6b59a62e7e827a050a0704bc022211837ffcc9367642f868931f38388bd7474034d526a64cd011bff4827a6cf61e7e9d61b45635777c4c125e71a77dcd0ae79c71a3a33e40817ad32072110b9e30a35ebda6b7467f00640c542f0896d26b35055c138e2bfcc3bab18156b2141a3a0d2f255b0a7aaca2a4f3b2bc82e5bd16853e63e440d2061255c298b8a8052469085f01fdc6a3ebb9c082236c8b2d692de3a9e728d1ff092370144768e6bb6d34ddfae416b8dcef028057951fb06de1628b6002084da11ad0223ccf0267d7b9cce8559917748a30e3647facff989a26b020e9491df4e2d80376a530b786193f8e16a5d9d4d166f71939b63fca8bf040ca37790087f8f566068a638306c240acf021f934d09328404d475602a1361b9aa08e3b71be2b0928fd304fa36b27e357d239392baab963f11b1c8cabd277d2344c09a09909fedef680b8e0e4d5ecf89e8242f06a84573498a477b0cfc1e27c417056967e2e059fd9997b2096635c7a23304bd8b31e8459452101ad58b69911127abe4d7dfe9efcecb85adcb157555", + "36c303c9b4695810962ee3fa9a3e2d4c3eb2fd378b7d4a35a9da162e183650ade52ca97e833176dfd7cc5aca81d96569a4b63610cbc35195bba8953518c292213fc6f65aa0b9a3c2df634d28097527c0ef7a8dea1796d7155be88be54e6766e83d6ddd050a22e46924d6cc621be447d7bcc502c23459c22bcdbcc636a93634a3ec05edb820095e30bb04e7de56724bceec61071480fbc8cfc3b3a6e3fd459949ad9fd10db6777e8f2a38d5d1d0624c16af2b5dd4c5ff5b4376ca5caaeb0f98e7382311c54aadde7d3dd995ddbbbf5d43bdb43b90e6bbc64a8399bf760ed704f9298508dbac1d764a343fd2b06c963e80ad4910b102ff0403f590641f8e0d029cea241764b968a9d7da6bb48cae0063aab513ee59929bfdfbc56c375c4e84ef91ec85a06b2f2d1d108578431e80f3e3e49177d174dc3c7c33fcd7ba0f584db49e0d2133799624190c0467115c911bfc2f754805533a7c26db7b1a734ffc", + "017b16c48f11b36101a88a9c958ba04872cbdf61fbc990109e7a136897e3a1debacc708e62ca78304d520027b8a158d27d67357cf65f274956990b6e53bf55371bf13e9b6f4dd99126b375a85d41d5fb96fddca707cf68d8de8f56c27763ab2e", + "16902d694c2c4aa75e5cb8a31f9b22d47b4e4cba884cff7f6f7539c67bcad47c7fee478cc028eea5a6736330cc21a63588c6a278e6a7cdb74272467aaadf2ceca1354a9f970dae388ad45d8142e928d887b35c758ec40a5d1faafd70480a15712b39d1c1ba6b4cdb46c11bec918983c7d665b31734b86df93ca5e452817822fed76c2e45b62597605c5caf169f9e31627a07e79205d776ce2d29b16eefdc924829dc745f90ce532ccabb2b8d6d58c425f6f81a016375ff24836f6f05d75ad19308a5be04ec530e79df557dab9c48e04dadcaf0c5f57010e6604cf2b088c86ab3eaef27ba9e21046726647126f7f56b000f90750136b04b05bb2f11f994777d6acfb5fd5fdfb3d4ec84a31a6bbc2f954d8c8bf4b993ee62e343cc176f415c3cff1910cac74d1a08054cb0ee4d205822d33c99e5fe295c205879bc18578b220b071834219b2d902ed64557bd62d8b5c23b77c08f80df7348c125f17bc20d" + }, + { /* i=6936 cDividendBits=3936 cDivisorBits=3510 */ + "a54185e7953259c44209802bb279d844bf28bf5addf95cecda0d18a8305d057e35347e99052ddbf71f1eac85c09a05f9dacf29a745a9ba9e379b8e6cd9ba9891c93d9040d77022815421ffa8b1db2b1269562fff0641672bc6ee4dc1acd151ad1358ddc3614920d08cd61e1b3572819344ac67daf3c8f8bca906cf0c23ed87ae2adb9eb1d6c11fd225747865d53115a06b9d3270824a55c6027303b07ac965ef407824caa69126371d68a18fe0f6ae58d2745f8b55f44428c3bde3d64485c1d11363713c11c55fb69b69ea46df43d46f1a15e49a0691290db51c1e1872e02ad3acece3e35435c879260c0668174dd31358aff72f7267f9493ea1a366eaa0c64818225c2b8f753d0a0eb8d8ae41b8261d33eecaa358b96b11c0d64941fe892e745f90296f39ec4c008ae4d848516a4a10f07b5488d06460427c242c88e394a70361e189dda7017b51413a6fc200124b55b53560b87ebb59d3b83c1f5610bd724d20f040d1083d370fefa09048ff56b7f2914494c182c3c424cc95c28a88498414b26538ddae8eddf2a2913cb5a358c2f628c0b32f00a53795f3dcb4ed229d5861928df8d6266187e4c3b275f3de77127f064f36ba4b30e5cd9a4967d847aec663cc3ebcaa40e9e5ba30b87f9b8e6319876ec825d351fda7fef1e6601e867a16e961a3fc748bf501bedc3dc384", + "16fe44c414a78c1bea3e14a0f54437237cfc2aa32c91158bc60a58ad936d83be48ee8db22ff3034d48cdc907f10b91a9bfa58446ba1baa7acb8c1e6633e4f9b7f6f43f44a56e2eda758096f21faa7ec282244426baacb8e6fb1ba0d5f74df858209724094bbf898fee4cd135e1dd7908e479ad4701ddeceb68e4f0117ff75d200096ee7e271ae3d0bbbfb4c7b8d404fe99e37c8eeb052a5edc5b76b8dfa2b441a803f3669ea70761ab5cb91b81e89de228c6947a98e88f7300ebad386c38bd9efeba28dca1e67e5c6583b53984f6ebf26285c5eb964e5e2ab2872936065e82eb74e92cc810ffff9fba968f9aebb46f332a0f6b81745e1602d11ac3eb3d84a5f88d6ecea0308186426ae0580c885bea44186ea914ece62bab8121b4d591047e89c6e274c7a0d755e5fb856e87cdb7a2b500a0dbb0da02aa660a4ea506a2967fff92995c39af1ed5e07e6379fbb596237e8247ac1df9c591863347a03d2d38d0dcb47e99638a24b7cda30dae620a6755ecc22eb06b6eb739009e3a374b22f2b1d2e62b40ee7e16ed30232577120bbf1295cc5f01bd45ff6642829f0fc41d46496ebf52010891464d12a23faedc11b809f66cbc709731b021", + "072fe95e917b78bc4bdbe88ff406c34561f683ef4d8a3cec9adae4c7f60e7c210983e4754c40631bc39dbabc3b203c860a6758ab1326", + "018b6556cd7ef46fa5d972cbe388d90dc2443b20ed6ab0e1efd7416d061b8fe588e86e9ffc43aa249849aaf37ac8e909f6dd717a11ac3bbade0de9a1b1fbb469d75b90f2658cb96497ead6cdd07d6d531bdf4947befbd17f8491d217346614e02ef6fac4b8c9ee7c9f726da5319db684fe9cd898116bda9845275706cc664c7ea44a750fef1a8961f0dce7c017d662ee3afc38fbaee443642043fd321c3350eb2e0d4ca03c965c2444784dafd7c068721043a999b5cbf8f7c8b7b7efcb673edf68fb72ecf552842705090e94ab91bb578a94fd769a864c5bd1bb3de3db6741d41b0953a24774eb01a079b665dd2b72acc8dfe0bffc4184dc193438e1b6d607a9c409bab9315611d729aaa9cbb546fd47ea4697cca5b223bd19cfbad9140ffe4c6e8e95deec3236d7b91f4a7bb5107b61a7f2a359438d4f7d46e4175a359e0f02a3cf564466aa7305a8183bd4d992d457826ba837243742ec8baf6feb5cf4ada481d04eeae8d24cc9d52f25058ee9cc3be5f5385fe7dc85afe14b6748f7b851f5ce78a696d4b700df3db6542c8214d160fd2e8c158d09974f182a77e595cd91372f3f747f019c0b3441de30f37852a89f8173ccbcc02b9e" + }, + { /* i=6937 cDividendBits=2326 cDivisorBits=1256 */ + "361e024f6305babb46556c30a312c126a174212f84954adb07012fc15456a9414a2dc259a1f3078f33396d8be741e32408b3470fefecc220b0180197fe06d3e9bab4d8716f5b1027b4ea8b638c8361caf5198e4e0d90a975d6df2f37e148888f117aef065084d90ee4878ecfb3c9fe831975782c37784a31bd390684e90a864ba6db70987576eee0c6b264ad33092c48c15c15bfdf82e81f8fc943c7580f9ea8fc795b7f0abb69241e374d463a119e51021c42d57408f1fd9eea2d2452cd0dd6e360bacae40c1060e52b07fdb48e2ec18ae95ad6217d7b10cd28f8efd4b8e2f8aaf0dbe593b58763606131444f96d3b1d3dcf785b7c1dc52dbb5d123ab04f4fabae1db0371fb58364116a177d60b34f03463cd3658f82dff6388e92506c73dee06f0b7", + "052ee565705a08c8edbdce6a46c89a77b284af6da6acddee4c1a8e6d536aab5007740f5326874544a01df105e95079e55b0dba669af2f63345a99114307f5991f23ea11de8d615b064d7475ff8bb7140f6c182eb040c2b1c50d6da9cd6e11ae400c13f61aa2eda1d0db65685ad2e9b27324160dcb901a84db421f61e5cbe21719668ecf52593ab63d6e221c69e3ee2a3a4306988f60f594ae908f62e3e", + "0a70dfcc4643714f53359c41c282090769332d3313f8b42a8413035625dbd636fed0531891a4789829d182eef036465bb40579cc256e0356cf243cdf0db9164fd835a51663ba81abe428a2a12e5affa120e03fcc67204df92e8eb9f2f14f801748f3f83510af6d48bb44ec9ba1e3fdecc43061738a65ba828148ce1971b1e2becac2f46defb55b", + "024aa6deffba33274c9bdfe6d84f49da5aed0cd5dcad495f49a9feeb6e49d72df5f6b763a92096effb3fb5384d8e40395583f8016ea73768b2bd29e1d40fd546162ea1d9c776ab1782ea4d2e68a832afa1601594f8fa2e88d3798bcbc6592d48274a897c36c9c350c50c2c811a9c6279fe1aa0bab322ca175f2e860073a36ce1c6a36202752607fb840a56d487c68d4a8996b50f1fcb5724741df0aaad" + }, + { /* i=6938 cDividendBits=2837 cDivisorBits=178 */ + "06f1d3cd96573748c38a91d3a9bd1636a28862841dad07ba5e6d91f042347d0b18cc23d23b083a3c73faee03c129c15ac2afe608ff8da4db538f60f6f2b37910ac852cb3187656c5b0c0c76bec76b199dcca29077ffc31acea159389d7f3b70d6b6bb41880c3e667f3972978f8a33e8eeac4b2df4bbda2e61be5379c81f2f17f7ac1cc7f7a551b6571b1f139e7f869c2a4c3f4ef9ac048eadaeb52dba601a783f4953da71046de5f3392436538450fd226fbffda4451f0c6993249704b29bbb66fdf53440ae56c5fe6da1a7d502660decc6dc08a7aa7241bbe8fa01b77b6e70e7ce4947a7b8b452ff0cf2ab7313e14cc706526d642d3c71406ba5b5e339d1755a549b63a46be7107e552644f9e3de38176bfc7246e034be44b8755af885816a3d43bc2e312f135a98f9c33552010bc3c6da50d59f71fd6b5c89b4ff99875b454cf9f1905d3dbf29915042860f64ab95a7d69840d85c930973699d8d7c3ed992a729103", + "01e0576e8d8924c31cb41880903ae5e0ef00e437901641", + "03b3801baab09f7f4d04a0064cbbee2b9130f9497f27f8dd96aea34f1953d458defb2057bfca3f0902730de8684b1a202b9acc197d98daaf3b73d951016129b9503204a38f5503a72e7ee49cd354a1a7375f29a3346deeb9b05a823b85c9cd5282a2ed59acf37996a1181d7e1f073397b0d87d1ae4c99cdc4dd61d0791ad75dddd55a2a0c969f27d56fcb777477b8ee5f3eb1f4c752881dc45ed021eb373b85ffe088fe2d98d69b98763764f203492e66064d266d73351733f0aa41ea39e94609559abdecb5751e2f952241ae94a00755d061a456005c3baf48fae8287955d64e6a08af40dc167266268a1a9397d055c3bb47e2564816095997e36f0d5e0cbae20149df585ce197fefe4ea7e7e4cd6ae17271fe5ed92aa373c24ed194f643de112116d95287ae14b0985d7c6707481e117b529739c751171f870db7ed3b416970f3a194d6d24998a0185f365c2", + "bb314ce169291945be78af9911ce59647d2551c70ec1" + }, + { /* i=6939 cDividendBits=2509 cDivisorBits=1313 */ + "082c7505a265e685cb01b0b2ff7318ece31dac744f4e3686d838e66279365b1d35bbddb7888a0c4b2dc77008383554996e4ab1ea0043a3f685408375d2cf88681705786ada3b802f635b450e37008f3bbe7cd791ebb4b411697ed10a7ed6402ab08fc2944d4c241c4d7817a750e82665802253322b2bfd8628f8a885ff0c3c781891833c125d587e762f0f28446a54aadcc785a514e7ccdf5f744648a80aca8eec3a28cebb16a6338c1c6eee7cb280a8091799a321fd00c32f6f75e6dfcbb0553600f31ac5a9b46314f70378e8191e8c2b9daec4660ed9f33bd6b9d3a67c9362f4997e2f21e2b132639ee5232616021e46a025e46a319b1f6a73e49f74d6e30ddbda90f4785b441023728ed3a7e568f9b62c782ad4be5e05c3349dfbae2df8bb883659f2b4af9288f0a9da7d574177919568e668bddefd98f8bc", + "0103b72438c521a6cffb17a53c3ab1a7c5e616ed956b8d7aa97eeb49e5c5d22461ec830e2582f5ae6cd1b17734e33c6f8b06260620e58ab339e75d38b832ffe2a6fa91a1b8348acc8661414d09c11ea81d136528ab318a70aa791db5675214d7ff70b1a703ee06a2e55f56801b9b47e93e33a7031510f60a0f80e4f32ef785afe98eb358d6201ad97928d5c8b5283f78e79a753566ada8241d240d6ae9f9d56c0467e57380", + "080e85ee4608b2102fd54422d7be6a8d5aac64b6a24037f231db674306a4e7ae125d581fb4834787426f2c743c0b44b20e169f28efaa62773ab827926edcbaf748548c3dfc465320bfcc1b23d08e48fcd10bc778a02fb9ca1534ee83c98a446a717a75313cedec0a02ee29afd3bd5e7806cec4b268260569390cf8813fb6557c098240258e63bb1e48e1c92eb5bcae778e48c08afadd", + "3b9456bb42b6e2c0cfd79db655174b467f09b60e80b1328679e9b75c02368a91a0c037c927af1a16a0290aa1e52060d96c161e473a07ac39a9ab51b6c34c55b22ca8322bb8b3371674441e54a22e93640e53107469f15ede98ff0edc767e79b7e9af7b59b5f79813ed38bccc9398c1784e65bfea56410847dcf79ba1bd5c90c6bc45a8304045a989c4d5659003122c53c3ec9f22fc0d625a7d4da85a16489c4af6b9433c" + }, + { /* i=6940 cDividendBits=1370 cDivisorBits=169 */ + "01696bc1537cd2c0c63ae40553040a743551ad308871ac7a748785a50a6faa25b939892dad5fd2ecb392379ee8ba9c46497f20483b0696d74cfaa2d4f9d87b55bda262f7dfc5d5aff8469830704f2b4566c339db36c73a52cbf504387c56189c3135757b2a9f3586094b2b7b1d7fb27c810b0a20012c3ab83fa698e832b39ea922a56c40cd1001a134b667f53fd3e6035981f8a0337f7d734c31cd3014dc1d05bb7decc9f3c820bb654b5c7a", + "0135f287a209e68c25d5fea594a3b17a27e69d9ed233", + "012a83af605c44fcb502f463a85b6e54b94249e9e2b3aba38f9aef7581eb8538a1bd500f01fd10389b3d8ee6f94ff7cdbed0ff8e98838d83afd1feba67d0c8de8649762a66deac980f1b6329d509ef9a0b270a3fd79d054d5c8649b3defb7ede1b3e3423da111658177458d3b8f2ca6b1a087a37e6b841c9e6262dcccd19e400df580a6fc0341e88c877b28ebf1a90864d3fe76cc94254", + "474fb10369bc4e9525e4ca5a355f7799072cf23dbe" + }, + { /* i=6941 cDividendBits=2080 cDivisorBits=957 */ + "164a346bfe50ccce4ecf4a9fe2af44e1c0c30293c011c4f368b0433dbf20b5c0a6bb6665ae382c607bd0d08179a6d3f5bdd810543d10d9b9b32e492aaa40e00a0a29ea7b32355363637056580ad9a9583b331ecdd10a945845ff33ecebd0419291420c750c1385fb89e964285e1a76168e0c79d976f94786dad0babdba7411b12719b1b1fc33bc8253bf5fc369b91ac76286554b27183713a930e6697f9ceb0c28814d89070d87295ef372ef84f34865bbb2675775fee3bd5bec5b02918bb57c242b12c4e7d87839710f133722a55d16753b20b51ffd2d626ca8bf98e7953973e204911c0bddbff8535fe356357c7db42a9afa49c52a7dd87a4d816e4251050e1cbe8fa7", + "196435a19d9ae9faf4609fab796dc568971a60a79dd7a378790d976de21a692be822b2c6e4097268d2d0287908ea8bc3036b542b3333a3a7edf3741be0498770b82f3c5523eab3ea10e286af9097c01ab29504329b2789f733da9e590ca417274994607d4cb4ede841ceddea55a26fa06b464ee240e8c798", + "e0babc650abf5c4af93b63cf2d759ea0ef019875689ae616bd87e2d21a5947432d9957caad67fe0582252af7d79202859bb95d420dcf00530f7348c8d8c686fd30a5d0ea4cd4f4aed1b4e22174195cc613b2cddfb7ec099795bfd2e7aea26ec8ee9a70e90570d569a42a8fc5f4c76c5e2ddbd53685f2fb118f5a47ccd5ecf8f7f98490e9b91f9e57451316a3", + "040f7b78f72ac919de22346683e3b34946436b34985639f005561ddde7b568ef0ce0fc28732d45bb9a8c73cda07d1671c5979a3ef16307984c65c1e2cce578627f1e0a601ebfbe1a5f2460060e2beb2e9b028edf6d05bd6bd320a33e48ec3dc805f5fb296aa38b76219f66a2ca110ade55c825afff1869df" + }, + { /* i=6942 cDividendBits=2842 cDivisorBits=2386 */ + "032be0fb5797072e535271cd926bdd2414d9a72ebc42d36453f21de7a2a4ba3cc2b3ee99862380cab2f901b0a68054efe476b925f10dbffff400cf188f63975cb0e581073c216cf7209eaab1fc8e30c1bd94e128f4686d2df8f0ed3f9421269af24f16382d62874c8d4614a0704004f1d3123847e77a8b5985f83125f74f0891143f95d104ac672ebb34b4b23fa27cae2842b56f402567e7da88c9eb20a2b25d6345785b4d612185a931f66b9e188b91d642fa8882331474a5845f284ba17111a6ac59410c8209447dc242a050dc7dc60b59f607bcd526a9353e632fcc7d15f7dd44f6825fc2924b353b1cfc2756122f241b057fcb44fa52efc84821ac93ebfeb6e158bdd6eadc7fb820f73508608ff23b0c991d29bb32874457e39478148cee5fb857cedfc822ff8806f872c5f2d91940b90beb7a675afd19c238d32968a0c9113282066895dad84873776569d594426b1eb57eea1b9db3baa0c75bf11556a1deb81f71", + "a287c6823336f88599ef87ae9d161845456e654ddb9ba31434ec32c9b9adb5e6b696fdf25eac8a246ea70b7a754ab8afcfbbea2e6b82a0f51d8fbf036c3ff4f4cc791e4fd05ea3fd08a980aab767fd2f87cc4f69ba60f2a62206c709ed15d8c700dc840aade53cc9763caf0e063637a4568fab1d9a152b1f57faa1d2afacb0f009c958cea5972def03a610053df090827f590e8d935be12fc6f2a3aef889be0e36aa99b8ecbfbe417bdb6d41edd0a9ae3b37dcf637a4222a7927ef5bb6aaf0afe384fc1790c1461cdccf70fd7f985906adc482fa020c023435909be7aa3a4f777eae33819d7227cb7dcf67b072d5e1854e470d438c739127301f834972a17a7ac492577bd594f2503b5c0c8c392b7bd85d80bad3bfa82705e4af2a9a73c53188bc270e72a7582d9acb14", + "04fec84c09c98061f13b1e12050074d9852f19fc6dc5d2e03f74a8ece7ae6c34989557790da90d38dffd2a82622d4e32e55615dc5330c9cb7894", + "32dbcbe2c854a7bf5972545d2d68380207cd3f15f50e64cef7bfc97657088603aa0ada73cd0573639741b8e9190cddaa936631cc9d6b4c9d8978fc81d82ff95d0b5dfc50f2fe0d6fe378f8692256b73bd19bb147a02774df15a08a6ad18948741d0e44fce48f700a1c035c624ae7b31a2d37c0509608441e4a518f3bba67f4045808bcce8489aeef19abf4e888eeeb563668e620ba43cc5981f331ce7b44e53ed450c18b2533a8dc015cfc755a6c119cc1679dfcaf0b9cad4df8a1fa21cd2b4c328c597e4036d782628c2938c77af3507a696e12280b71d3eccde5a4c6c1f533589d37768d58ea973ca9db0a5e6c90b5494700e7134a8fa3a94ba4ec736b0c2f8090ff1212d2c287a15550dd5753ec57bb91dc5c86bbaa242ad617765504a93a3ffa0392ff55352d57e1" + }, + { /* i=6943 cDividendBits=1717 cDivisorBits=1682 */ + "1650e6c1ad26269c397badb5f7392a8f713ab7fb9433a6e0e17994c24d5324a1af12fa9b64dfc1d3488eed1e68899e738650fdb061f8b0a05dbea3cf81f5deadf75e00682bf5c0cc3ff5abf1c23c1059e25561a4cdea8aafe0e2dfc4923ec006f7824d2bb66dc84117131c4f22c96803387b12337f8d89887a914d49eeea8ac358586acf6adfe8907c4d55a06d2035c6d270010997ca28f9b43edc69ac0a9e8f90e3e8319eae5cb03aba465ba5e8b2663cec37cef3bd7ef5343c11434505e7234449e6de1d611e93cad0d8f423144cba5b25e8cb56e389", + "023337512148ebc35aced2723e45b29626e22ad11c713279e43019df62becac4b7a992a7192f08d780c59b69ff771b34502abca877bcc0012ef539d455dd7575fc8bc1cf0a8b3987b48d5023269eb0cbbbea1783beea31209981ff4c4438e07901722fef79c24e4d8d14b14b98fcb7377703ce5a531a83748cfd3ec019d4a75acccd80f6de7dbad723613b7c85d1b494acc70d5de6d2f461b904517ae875b740526cda5c9442f191ec3449439cf9d6c17fddf1ec79e3056843d8e4ab1c3ffc3d4842776b6968994522faeea0da91fb10c68515", + "0a24b2ffad", + "7f592425ae5160c2eb13e32088f455bae4c1aac0fa9e47ec62bc7414eeb9aaeaa2bc73ee4be4d29ae991aad76960a817d21738eeee504d1545d98c37b246990295642f4e4d137dcfd7d1f7cbc278904db2d277d85b368f71400db10ead23773b4acdfe663304194d4038e343bfa8f9d9e8783d9bf346acbec36245eef989c73cb02c0357dd2d299092625149663a830af7e2bbb21fefd15236c8d1893cd99cd9c6a439a424392a5cc02adec3f9c7193c57920ea0ebf292363a70029d6d2545d1ea7002b5aa7912778680d88ea1f73a050958" + }, + { /* i=6944 cDividendBits=1585 cDivisorBits=1321 */ + "c11f8fb48b0ecc2f5d6b014681f5bbbd1beb80edc71537b9ed16e7504ad5ea392dc6aa5d106893fe935d629d10dbc20c612eea047089fef856d7a58c8eb2b75ad89cf64023af1be064350955d01864645c01ef605bc06605ffd42cf401b284a254f2fefc4bc00cb56dded4bbeea0f815536d30e68d64b93380759bbc2fcb54aa615920c1ac9c8469ebb4e5f36dd4da0fae919b0acdcd7b1fb53dd597167200f519d2d2e365fb609cad13e2ad4a01d66c724fdbaa34dade62e2cd370292750f68251b50b715a9", + "01e05f35a319dbe5a5556b0847c3556c586c73ae51fc211b7ec3424d546d3a80aca0b2405b1db9a964f13a20b8f3644157a54c38eccdc27af37dc020c02f3a6919022ad50f8718fe0d31d1ef64743c41b4675fa4846767824d3e4351a0d0e45c08d2eeee5b5cbbca97cd41187ed29b1c51854ffffa81ff0d5a13f481069484ced468702e59d5de3f900968a4e91f369061a99724a33a188a39ac4c17a1fd2d913fa0039e3805", + "66eb5a07614bf97034788bfff08c2d50410382dbb862f549a5430fb8e73794d9a1", + "19a302586ed347cd5e7083116e33bc87fe42db4692bed74caf0735d8a41fb4e7255269675f9db942fb286eece5599dc4918a8e4f84dccc1890726f02c301cd557b7c5cec14af11c03421f23cdcc7f2b08bb83a088960b4d05d30b3ba9138593a526fc34f471b611b2b3fac4593ec21d03623b2cf318082cd21f893215e53cbd6229ac5e4ac87af8012aeb5d4dad42d834e115cfd5b1da1767c2fd2f6d28b84446376d59d84" + }, + { /* i=6945 cDividendBits=2442 cDivisorBits=172 */ + "0250a175ae32afe1f019ebecf6579ca25aefb4546449bf787a96006585a9e9fa49762f368f0a4a5fb819c328ef6265b9c8d46b0745bf33c3520f1edda7cb5df6a13da0c374affcdba095db1827f3fcfc1a8ddcda5a5ed386042f84b6b9f5fa54877da0811f14802f7590a8de69c0d271671acee8138b959eca63690f34cff64795ffa7cc33102e42b3fc58d30d7244a1ac439cafd6f1a261f2341b36a246c2db192ef5611afc6a0b029f1b6246f85d90d3449be0260de46e7b514e6aef2a8b8eafe6a8f8fb729f5295dab56ffdd205aa3fe3831b6bafba3b22ee71ea72104db7613a173aaf5ed446f87ae9730a021b6f0492b52752b7ede540a9200f37eb5a6608410b5c138d629c3c1256f9b808717ee50aaf956d215a245b2c48a350327ce1cc86ac5d1bdaa9e4418c76cf5fe5697d5e01", + "04a1f1e852e50ac32fac6924e8d8cbde81b851fe59d4", + "7fed1d0708ef0064f9ed0f1d90cce2b7cf63e7fa436697f53993dfdec002d1d1bcfc4a9bbd3fd9f1d5e0eaf017be6435f1ffad2f1527ac5818809dd77d688ecc14ee15594ac2779a8f22938eba4d94c4ebc46c185fa52f5ed0c55b2f40d4dfbb045d914be2720730380c80c5fe7d5015799db83b04bfb04c1c0dfaab6166b32e38cd7af0464229b638138c2c904512d6f6f1f47d1f382d64615c5479f6414adf629d9a1fe39d23ef8eafdc11e4b850d37b792138ebf2e2b82ff2f502150ebad4ae24763c71c9dd2ba23a397c4abada33b4261179c32174c7e6acd3d8d36609d5dadb22e148e385008d5b11d60f828acaa37555677f09655eded7ad33a29213daafa4979201fc1b2627ec99ef59a5c08a725d90eebb0b4a5a4a19e23b", + "014b5c1b5df1ec1e66c0e52d023d07d05db1eadd8225" + }, + { /* i=6946 cDividendBits=1290 cDivisorBits=1105 */ + "83887fcbb18a39276a5dcdd4092badc34600b2f3db3d527a28f940bb2708d5b6932286cd282697a0d43b599f43450ea0c9e29e8d7e5125c0646129cbb932b41dc3ac61a6dfb30bf92953d2ca990b60f06d43dcd821ac6c2dc83a3d5ec5bab30d8b9d5db56f2c73f6a4e17e939ff71f180d34aa08275b9817e37663cd8aca49543c307aaea1ffe6a68683af594fde2bf6b1e07817a4bb9423bf1455f1e3d450ac12", + "f70e066ad1635e36384520e0321c2a895c22b21b2e6920d60b5f3288c7c979f099ff5722528c1040ae591a46ceb84421bd7c4f14428c5cc1b85b225a38f6d89f813575464f3173fd6aaafbfb61cc4594c3d0700c0776607d68bf663b4fdf9137d0dc906ae27c77c12ee96c4a459df7f3c01d38a3548501cb60dd6d2d8bcf5c7b8a59989d51b8f77cda2c", + "884bb17aa7bfba2b602586fa12860d7b4f4db4fc71dbb4", + "a150a6771f2ad916eff8c109a04dcfc3daaa88194fccd9e142dc17a040ad2910e982e2ce5b4de8b0620e271e2d846b861857c5e079d1f8fbcc94c45f8f32a3b2e12a43eec6455efb4636d42501bc60aa146e7299afef40a4411e12b8847d1ebcb2a6ba64057c9b54c2a347baf4e4b5a57603ca5bfd157a47ea561dfa337ccfc36c39018e784e6477a122" + }, + { /* i=6947 cDividendBits=971 cDivisorBits=523 */ + "0327ab9ac763007ca466d101eb954828916445e5fa629b42740e21172a288c9aea1dbed050e1c5330ee158f233b07a07c936b870d70382c83557f480655b4fbe2bb3e5368ea90c3aa8c4c206acb4fd1179abd4ec9309e092bb3b7d9510a13d3461c56b5e067a94027e112c77e6844cd2f5ce4ecf695c5d82edd4", + "040831ae96f593fc23fc2f23b22731023585f1a3ba19ebee6f691b5475ef20e396ca5b07e7167dc30319f3abea0d33861007415833529bb04b19d6b6365b00db85e3", + "c8508d94b11ab612bf1113f57082da5a6bb99f590e8b15030cfc80d8d2fd799167494799fc7ee6037c9f7a127ab25ca07413d804abf543e7", + "03367b16edcd42f13d9866f044e7adde016dae71e9549cd2290e9bb3061e2131026225c2b55d585eac142a1033169430d162bdbc410979efcea0094177f36023b4ff" + }, + { /* i=6948 cDividendBits=1998 cDivisorBits=519 */ + "1e84bec3ab8140e952d177245751ef2cf2332ec1fc043196bd70f01500352d527aa67be05e9dcf2c216b16a94b8c12db8af55e164f9a3e2fd6d5c0d07d3aabcdf247bb009169387521ac738eaded69e75498f9ccde1d3d5527534a1a0587a200b50d0f8af30ae85cd1984af960967af5d3c37825dfa1221ede8e2caf47dc9686ec2b33c8adbc01950191f12d248047034861cce5327a138f19c542bce5fc69e33e7e973d5b6ddf678a970ab11bbc6628bad93e16fcc756d776372f69c8235ab2522c5bfabb090fa86b5bec3ebfe74222ea1d9cb4916bcff05d5c060c7fc7388bbce548660f3bcb9389f2c331594550e11c628abc736342308e7a", + "537411e4dd7d45315df6a68d168d5293469054e9e5874a68577aea1c1b950443be2b3dd702e4ea1692091bdac7d4b35d6c6731de98da0a6a8a1692605b8c116db4", + "5d9e3923b4ca8c24cb39d357372789efa4294f37d2b70d37326b6124bef663b3710d2cd3c6c2330bf3b56647a8a0e26a02e246944f60f4b268edce484c70fae34c6532da0def1a507d8e53f62535b08a88967689d32224c6641ff773fc35ea9440879810f09d893e98ff09c8b54e249db92355683b0bf91058f11d5ae531a9642ae8ca449a064ce03185c7e8ad59e96a30ce941974a465cdb7f03279554c5773c1433f350fa644a7d18b7df80cf52a99e7b34c7a00699bd6e3", + "255bfd3c9085648a9696d56711197e2f141bdc975a865b5aed1d577abeeac7119f1aa5eba8eac85f54a705b139b1a8ca3beea53544addb89de8acbbe933d0bcfde" + }, + { /* i=6949 cDividendBits=705 cDivisorBits=678 */ + "234beb65b3723c8f411468114373599c4671ba553bdf214f24d16828a1743c02bd90cce7984d5c3b7e9bbf798f8e31a2f1a2b2717a121cc1f4d28e2a1dd7bff9db10761ca855b156129f2eb7bd2c0bd8e7cf4f3b3be4601c", + "090d738469696fb43b79907bcf2e2a1d57e1d4636f0f05925ffea51fe92de6226326fafd6d5f2fba5f5804f3e7bc0684773f59786b5f523b443a7b58cdf760469c58a204bf6ff1d801dbee44f455576ee4453aec01", + "03e629df", + "0548abf960e50cf8879115598fec74b5a0dcfb2a70884acf06f678285fd80d00d278b301a65f7dfe043ec69c40b3dd3ea084436a62b4b70381383a069dad62621afe227cd5bc1c55ff2f0e267d41fd439871dea23d" + }, + { /* i=6950 cDividendBits=1729 cDivisorBits=1225 */ + "c8e7f388cfce78b957b5ef459f21c401b347f1ef14ff45196383bd95513802d0d386f03ac5ad5a4bd07d6f1e08e6f1f46c3b9cafb1de026f2a8901e6caeb38fb9410103f3a996718755582e867c678b7869c635c874623839bcc81c5008dd04e2fefa54ddfe5730c9f6497f48c414a7ac4c1ec5b0e976f2bc2f2f15f0ef10764eb072966221a800fa043c6cb90f8947be8ce86fccdaefc25cfbb76dd52726feba76e87a559eecfd792bdca698a50c13eb73ffa788a2de5b5d594e42bfb92bbe7d16bcee76d633d7dfc515963b187cd768d4fa942aaff6e99", + "01ed1805817a49561e4a8a989c5d2d57ede8f646540da86cead7d4544a0f91caaedabb3ca9fda1319b0624d1bb04aed1fc393b27dbef6b0616ef88f06952ace257ed70b57310d69235c7cbfe4784e90d3ea71008091e94a0969ad18f7a0b9f97626841fb132f8c1b2737d43b577802e1a2973131959ec35e26bdb0812930bcfd3bcf381c155ec48d0988fa2bbb0c88e7f09bbba48e36b606f5a8", + "684df9c244dac83e72cc63d81e2bad9a3c15e983ec5419293713b23778a0d64af2d806763a3ca2f5a4c335ea8f036d3bb2bab7cecb037095a550ce772735d2", + "d191bb9f48544150a2830c7099b1ef735edad0c75bbb39b9c9a590a89636313897927d0ccf9a4dc3b0b0ca3a7e72f61a8a70986f66610d0688a64afc4dc395ac7f11ac5aa3cb1ac3bbc3ac8d5d6f1a787384c5aed276a9572c1c7aad8ca39cbb8086f590ae29104c1c5bd98274eefa3e555d5db00803d7f730e80bc33bea1a0e7b335a31fac1bd80b67ff62c6fb24bc1d0b248884163d622c9" + }, + { /* i=6951 cDividendBits=1365 cDivisorBits=1298 */ + "1e6062d20c2474d61a4dfc970489830317c0ab1d6889c36201f9f6b3b7a1f813f05a7351609f8986d2121c250e3f9c57d731c8ce72a744f3b3e48f6eef1db77a05dc012820b74725e5708c718d50359b1170a275867a10e410c8328fdd4d7b41a7333a375aaac350e1a1a17839ed59d1e10a9af79d138f8f5ce4faf331f83d69f29c8f4e75834a7b1585428790445b37bac2fe6bbd1b271b8526e782e9acc1d71564fc2d804cd01cab7ecb", + "026d1f394fa3a465a0c7f3a2c3dd17d026c442427674de964360adfcb22edf0ca7742af00b908bd00fbeadd064861768daecc6c35038284e6ace00015f3d1090a00b58bc2e9b74336ed0e45e2c1e7811f337d099e5fd31151a43bf9d0e0b9ee6c8721e73bd13f270ea28d00bf4790a0532cf92ba610eddee18c16d38ce173fe346cb889fab1a8735b1e202461c9eb58e9e3bc1f36e9c7b586333da8ef39499806d9b4c", + "0c851847f7bba2080a", + "b5dd9f5b608e4c017a35ce9a21d0d31588d4e30ccfdabb585bfb2f7f36de2af1f9bcbf47d6b67ff079661129370d69cd613ba7e5cacfdd639fef7889af28a6c8b12761830d4bf3e7f730d15105c76479fde66125438ee19083a10269373459573a75f5e5300a28999f64696a10bda276370cfba24ba429a55fa8ccb2b1f4088322ba97f9837367e6b9f8778253b9a7a9776984cfbfc4a460f00c767172ace1710dd3" + }, + { /* i=6952 cDividendBits=2917 cDivisorBits=1658 */ + "0c1143e595001fa29164fdec844f829db687ad239d3424c69674fbaa6b96e7bb0df547b8bb86de6eaf0d5d329e8c655884a056ccc58c10bb7b428aa023221422ba3b802aa85ec7a45a12b3d31c686b0aa40a18298874e93ab9e3590a1975e2b8664bef228e1a125de6983fc69d1f6875715af8733ee01af41de65e2d6f420da4bd1eb2f5ed19c6b278c935013f1fcb3d4f2b30207cdccde1cdde58ec11c80b8e10885d097082aa4595093427d7cde3cf7c996cf563afc82c8ad459da255d910bd4fc3e9f059809c610ecfd679bd4e6a3b138f4757c5c2e6fe8efc74483f448834b06baed15290e36b2ed9ba9cfcfbf46427edca582088e5a168b49576d869d64999f9087cde2fbc75fca5726b2de07fcaabc840d3a755d154dab22d4c2341014620c3c5d3bceeb99c643072b641bef880c76d9283bdd6fcd70a12b634866506f6a83eae38c6a4815ebd1e074f511848e7de51d8d5d09def34fe0d69a6052e73f15e8b8d3ab2b11e36b028d28e1", + "03335dac6272defc33aba0338c19f972916911801cb06faa35c62ee8d8b1cc5b5c009cb3939f0b25f8455c336bff0750c4d8ee2eedf8e224f102abecf4ac00a5270c581e73c63ba5d46d620a61a3d29692d21ab7c56838a29f533216dda8ce1fca2d0164e001557daee61758869f0c4461e2cac9820ca48532f5ef20fe135fb6456803c7c7cc2fd9a647db6b2925c37a1fdbb4ce8cfe3f4f8c98d53051766237f7a14d35e4cec8872da804acf88ee70bea8af348b662d793ad18c40c18e747970610d454ca9213658619496bb10ad0a3", + "03c5332cb69abe14275638d12b18649f718bdaaafc6b8b1db2f02edcd29678ddf7a1ee682b94a8a800568503bd323b6d258166894e020d9caab822c6d1dfbd10864a78fc828343def3f3578672186404d59ffd402c25fbcc773d227d041fc8d3f7827733816457b395105e4b1cb91076c00c9fc8564f4a825e066e371432a62b70f37c8d822af5fbcde9b50dd8ad6196d7a335786dd928fab35dd10e7815", + "b1f8dd11443feca01661fc8fd56496f0c91692ebd7dd1f9e21ee7f22c3838332d5ae545d21399c973c002de6333e529cebc8e26609d6679edc3c296a60c7d98a7e5a8c09c5c89f82703d04f9000c089284acf7b1168cdf19e573e5fa28daa5c8ecf32ebf5f312de12f393ca40199088981ede834f76d2ee8ce926b468ea4fd331fef545645e1db29525934ebb66537e81c5ef40cd18fdcdb1c7e42f291cdce37cb2eac35ba2a2a08b3548b34e9512398fd0ef718589a974b1344bf910f7bbd99cdc0d2badadbea49291b74eef3a382" + }, + { /* i=6953 cDividendBits=2028 cDivisorBits=988 */ + "06b9f6cd31a65f15d7dd304bc9f0430fcb0195284113b23f85dec23046069750a27de7a420166acf21d76a91d1d570e904e123adadc433847af2cd64f5c14d147ee05714d7afcea1ff676d23c34fcd55f83740ef8dcc9c0ff36daf967091e6c50b9281416f101a32e962b4644e01bdb0097bf7771f92a21dc64bd50d12ef167cc04783289bad0a5e98bd779b32118708709d23a3c40b2f1d8c36dabf1ee47f33ac59be07780eb4e45116e3c7f99207511f69d3e02a3d36ba44204ecb0b4f3ee30a0942bd75cd8006859c8e59897efe441f5baca1a0dd77286acdab63cde5d109ab3d505996aa4c16d89f4a7c094741527793770cde0781dead1035a51826", + "09b60fc8f3845bc4725b39b8b77b7fee3a896a6edf2a4b75abee65cf04a44ad8e3076d80d87658027b3d94bd864f7e91d5642a4343d9cc7899aa322ba72ea7c1ddc69b8b8e47b9135f296248ae5577723c3e924d458c01f37c831169f6e1f19634db538b7116b31ef978250a2e2461553b8c2490c95ed5362d2aedb1", + "b15156866c0616213ba0a38eb6e8d1de1cc3770d0b0951d36d3277e8ea2424d791a0d7701a90631b559bd61fe6e276c4e545fe129380f28bc38a92bcf387a097ad1321a9608cf8054751a4a15cab6fea29b18ff47d8666ade8e5fec29d8de813fbb9271000829653982798fd68375794af7f0d0af26cd4dcf698e35e82c70eaaba6e", + "07ad8a481566a30976b7ae1969e35323462d228fc1f9b4a27a147b00b1f193602a32eb940709616ec84bec639a0373132f52e8c1e5fd6ea579c61236a0db9649bbc19fc0e06b9a58d4032a6aa40980bef5e2134906213e2909607bb7607d94f725c54ae27faf9858a43f91e0bd03e9f6ec2aef3364b2b4df16f65c18" + }, + { /* i=6954 cDividendBits=3783 cDivisorBits=2807 */ + "21b89ac554663ad96db05461504dc01a8834ca15ce8e44f5f0b3103c99939f041616619ab35e08f51a0bbbbb949a10dcdc179c9e31a376199013b786908d26ee6299eaa795d702dc0d0b6c6528996f8777f0e86e4946a548db36694e283d8e2f98b004084da478da49772fe4cb0636dc41366020e1fbcd3110bac60e164fe042f0a40933feee96eff0b0a6c654835ce971e45b8d626153c57e59a957b4433d687c01cfb0925141983efe6d0cca2c10faf0414baa4bea66ee4ff45122340f84f029008eafbb5c10f7988c97c2376d44745cf82b6ea43f38d93c23d7863ada146cc6f3a3bf45da047712390a123ca388176e55ecf68b5bfcd1f8d07b23de67d37b4dcdf02a4a56abaa988d29b818f1aee3ec3ea37e1dcbe8780e983d7c211e52cfc5436737fcafdc81d71a8babca2a59f32b7c4f72e03ba47729d1fcf2e6e10cbc9da4b733e2ade458463d26e0999f9be5673e341b65c04c4e466a408572302a88a5756bb78a833f6ab24185efeee1f5cdfe0afc1de322e6bd5bc384ca65b667a3691020c414eefa3438ac49ca157a9929d5cd4071b1458ef3371640430eb413bd2abf4e1602ea43882c3729565b35a841890ce8d0d08f2dfecc8556cc487b16a6b4ba250eadcad83526719fba5f93026b7b07eb12b4184bcf52", + "308df9d87eee5898a79ecad3f3bde0c19f64717baa3ce724d6682564acd7a1f1cbd5c4b1e896433dd705f40030144fa3c148477cb8629364e6d38b977442439f3628c6030e681ee476cdfdbe6ca4a0db2591a0a5bd2b844c493e8839036cced45dc266a91327b83f28b642137294360ae09b1d797c22155533159fe3bc9ae8ae54db3f8a590093f433fa48f7503cf1089e6b505b218e3c611ccf403b01957ae8c8e16ba9f7b958f986556fde3f9d3a0baf151597847b3c61645776c2074337d14bf3bbd288df0ebd7dc1f6690b19dfd89eb6541febf32cba2378aa8faf50773c9d9e8586b077e7792cc2e5ee9e3d628c5d152066758b10f164066b6ea39bdea837ae6b339a837305f164824d2747a8dcd42c206640fbc0367d8bf893e2edf5046562427d39785400ebf940349c5c57d5067a54419e93419f5737036f35307e4d8423acdbf733d1d207f9b074ab78b5f820789cf1cafd55481b5b717bfc9390", + "b1caadfaba391b549ab8363cd39437a97865c4c127eac1f0bc7f8634a44eb90c15ee3833546465fc522ec4576052323c568736aaa12f590cd4d2944211e000242dce83997bc169746cf91fcd462a8ffa05c39d1c9406f89ee83e24da02b5f53d4c59a3d459d8d134fb01f54ccd2d25858070a78a6773dcb21c42", + "227e3131c92153884b6f9fa674fa898ba0a8dc62511013dbe4f2f908dc28b79317fbcff3d060b5571d3f161166176352b4a3ce05f472a2ef8b8e525cc1f85ebf5388ca8425eaa09b7338763f157e0f7149febebb9a2872610710c543ed1230dec8320a687167a44fdc8d37760966d5019462338b70b6d04a6cfa4cf4d0cf4f8c1e0958760472257e8d8ed17dc047d42b08e21c6084ea9272c374b875cb254f93e024ce8a4151246b0a97cafdc340cbc1c938d37387a1de4de3cc22235813b9dde7be8c0cb7a517be923b3444d0d9eb34b9a185a729e373f8b926b9ee3a59e67ddc5db2414ebeb0cbbb3af6f3ef2c6697c1696449181e3353e871d0c5f8c5fc3543a241311aaa9ca51233d2753f9080d9af009ada08b8fa496c340b5cd07306941979a0d073f3a98ba660de62c8464268349484e8b430c59cda30917eb2c9247eb4ba5c40de77f29eb3556a7fb88799e4232663de783bb889f297c426ea0432" + }, + { /* i=6955 cDividendBits=856 cDivisorBits=610 */ + "c58b96a11fc6bca7146e8dd8f3fd06ed21d7ca3e33eafb11d7169134a48f210fee6352f92835ab133cb21bc441273b92e0288a6e3fbc570b256bd2308a85e85e058fbb7e7dc5114033e8fb74522972af8a70cf08459760f33cb0441fce5601aa930d44393533bb8765c7f6", + "03938ac264f3cf51f0c30b15dd79b620f204d5fb3393f15a82c229f1f433fb8c43067d9b497301071cb60729a61eb648448a647567cf0bbf36dfa7ff448e7d51bd4ee5371a553f5c0289079ca3", + "373c9d3d73e32f1e65a0c01236220cccd12fc21fa8b48f42d58b5f00fd7d1b", + "0235f15508b402471f72182955e5cc3f726f214d7b6b8199381cb4ca283574040d10130dfaf953485f0621c99fa725fba73d58feeea9ed5c0c6c489479e2c6a53d4b3488230799348b8f05abc5" + }, + { /* i=6956 cDividendBits=1039 cDivisorBits=8 */ + "03cef1bfd2eb4904f482bdfc4184e14c08f7cd1afad3091c020f32bfd5a0e53bd9c6259d85546647bcab644d1d51c64f17c18f99e0f731d48f253c52b10637a9d78e385b04e791ff28449506206fdc49f9800112482eb15575f64c18d07d6737ce72101d608d9b7881d330e67c3082615d2691d30c08fcef4a32885e0a32a986caf7", + "44", + "0e5660f047398b5df2dd25978d3f8c698b2c6d92bf56b8e1e9a2a0f0516cc868d9808d9c504ccc595cdf97b8e6d98129c2d8b3343fded9b6cf9b3d738b62b37058ae0156a90d70edc4c5f4cbc568e2f86000040897465f5fda35d3303e145768aeda97052f42494d340c0363b56b54415eaf522996b86cee44820162084641fb74", + "27" + }, + { /* i=6957 cDividendBits=4067 cDivisorBits=430 */ + "05f922975659d3b42729fac85fb0dda0c2f037c898302128b87caff820ab64630d0d11d3093967003a49e8fe0369fc6f80cb3d677702de3171e9138ab85e6977b3c373eff4256360a05f89936711fb2c3b473be8d235bebc4be5b686fe6cc98ed4a854d349062afddbe4fb703c24ebd99c4ed17d04463f78b4ec254e8c16689eb296886ec132da08c89acfaf37b8ea634dac08e04c69f61a192dd7481b9c9152bcc641d49e5de44b8d602549ce95b438e289c112ec1bd52b633c9522d1b53ad91029c8267156c978ba9668eb62fffa7617f03c2be316d248ff266489312c33eac46960ad3ab7ea9cfe045a2dd4e210945e2fc22a8dee1b6390b3e298d059b43ad67bf23dd0af227f3de0e967605a2204d7a1b1ef5f50a35840f556d34ae3a04d8424b30fcc64d7d81dec5d1b3b5f93e042b34d4c1bc764f725f8b88d6bfd73ea14da1b6b27683b5913ea2a1e865c607e27bf2589d0d99406f17e06c5f19eb9b7b32fcdd5cc74b5398e3c9c4090566e27c6c1f2f40453bbbc7be0ccd884a7b55e736ef03221f44da4ba9627cb2ad5e1b1f09d94a15c80f48fbdb7092488a7369fb6afd658b0ac0d41628f20ee2abb0e0e684dce3761433c758f3986b3ae9505ff827ef0351b4ce078d686378634e5475f3986ee16b5ec8fbc7088a1626ef37ada70d043edcfc1110aa0ad7d73eec0129e271a310cfd7ce920b47c981698", + "1a266d980a0c83a5fdfb0d814cd6cdad31c3086acaf604e3b99d01ffd7cb1e9a194ee5faacdf89f198d48229a1a0510846dd2ef2005d", + "3a79ac47302bf5219c74cf5edd6384766abcde6a4ae96b84909e105746bb21e7a8271833ba936aed601d5320633531b16d0291a4ca86ee77f95211a88f24df9d2265a6005cec7788db5c84b7e8e395894825aa61a9e20f0dac1a892542156542b4900d11bd852607284fd905eba10d224e05bb159136b5b321d0b2e155e913bd6f3b374974b8a3c531f21a1abf06d5b5b240cee35fc4b84442113ebb459d04463156401432739639168b41858e864cf7003d33a1ccfa30f48bec2e3acd78c2daa4bb31dbe8da7aa6c3fb1cb80a53ecc9b5c7201e2736e547763f43c08786f2be117e9817f0014233824f8cdd231110957915ddd413703b96b3e62fbdc23f34e93ef8d7b0e69bc4b20dcb3ea3f5ba190a2bb3bcf0d276301e029e18c9955a618667ca388dbb15f7cf448c236577cce76848c914c1385be15f7a47844a3189b630f741b0c1e543a7b5e7c370b4055e561f1e8317a900ec3fa89cd159e46c3276766206a12226324d59052ad5cc66e176d2f084edcb9af0d5ee77143294a707e47520fd8684bb58aafd0bbda438cfc7643e146421bf07048bfca0098f4d34adbc2b719221f2f5fabd00fe955b311ae9d9b29b4b5d5ed9210407d8dbe2a9031903c954795a9b0071f2", + "19d911acc6d0bec18cbd525478ccfcfc6a4cbf24d86c4018a06e7445c287707d7f156e748da7c623d594b7a18809499de5fafaaab1ae" + }, + { /* i=6958 cDividendBits=825 cDivisorBits=279 */ + "0114b8fa9432fe891c68098f1a1360a7d411f62be0b44bd43ed1a5e5f7bec20def2b5c727b16f0a8cf934d6f2a174c2d87f64b085a29e7244fe860d20ac862855aba563bb820a6dd191e5b629637e583eda176eafaedffaf31e1738a0d436c6886604db591d3f40c", + "0e72b0b90db4d61b0c6ce2b96e45ea8c2aa1ad97fc7e62373930d6f67ce0183c4239b1", + "13272a5a76492e88685f03c5df816637155a8b7621d0d4853e16934418ade8eb64a868a4280a4198361054417f3a61db7961ec8e13f12a5a2862bf6615a661c4e1a9e8aceb", + "0d36975ef21eb910eadee44162009793d4a6ef336e2dc7c25bcce7f8fec24ea0de1291" + }, + { /* i=6959 cDividendBits=2858 cDivisorBits=717 */ + "7ee314420533f75e45df8e4d332921cd574c65e1331d1107200cc920dd5f04ed0e3e9fd3052d7313f6af057edb8d0da790754f8c0d22d4d20070411e44e4453d5d7b3ec62935a5b82e41b54856fbf996f802983e76567fccbc111658c5010941b2a111ade17e2d692c8f1dafb87ef014278a2ff4649029233a0af57648fb98b34cdc2a4692e5203dc6159e4d91a02fc2b6cd56222724d8a945647062df0a92daee5d54026d1f3358dd969e2b9355329a4f46b7d9aa84d7f2a37fd89aec03f64e759c5b889ea157cfd765fc0052109e0362334fd03f4cc5453e87199ed0e5d228ddf5425167ee0c7a35095dbb2ed679848ae3d6f8eef51a334a35e62eac7f58d5776214bb786f24c23ea7d6a82f4e869919c363aeb9c7b24a881744331dc349690756ba842d8834257975e93810d9408d8151958281a0d6ba661f1bd1461ee9ae8089cee8e394d99562aaebc31aea77240de3d6c0b84eaa66b609cc809474e9babebe837a5e", + "038aad9deb1bf3e84dbe3752175788a87a22b7ad453039968e641e928f91dc31d10ae4117e49ff81f8586bbd35492773324f66f2f88063726838e59122a3099b3e23f36a91ebc953f10d22a3af080c3b21b6043ffa8eab64c2fc", + "23d3938c0d434fc2d126ecc8721878d3c4a40fa43eb0bc7e720acaa4fa073c57b219f1ddc4219cc6b64b0761953e86479f4bc2a8c31b0bc0d40a4add7253e6b3b07beb0200f89e5a0145c7324ee3fd17cac2479279cddbd3bc0e62e1b458252c16e9499cb2b8df3f828048ecbf8801dde2a1b0c9c804d39f93fcde047d2ff8faba70419c589790a2c86b41997bd220ae236d4bae8c9371da29f1f083243759a2a0e04d37f7b64875d7bc470a582ee74dc47c0bc16907547a8fb99cb9d79c6fc5c608040c432a8fc50a0b3d1462ec413b0c45a78c3b2044aecc4af439d63e4be9869701932ad6f64be4876328b725e26f982adff17880b5d4072304a8821be3df261276acbb42fffaaef6ec1d", + "02a6640ca1f6519e4fae8c24dce8143284dd6a1dd75f020c06d2bdf5a8e550daac317dd4dc1bf14032bfafcf6b6721390be5936ac09136a6a31adc3ca8f7b12a51929d7e9c3e7d6e40ea022abce29fe5917e29803521ca3113d2" + }, + { /* i=6960 cDividendBits=4064 cDivisorBits=2404 */ + "f9194619badc5446b24d0fe4755d467459bb00656758408a74dc9176e8f67b13c5fe5987147f82f7590d51cf546924518b318b77d52a10449b728b1fe639814a57b845268f9b554ab450a585be28e1f2979d2d27bb4b34ce8b87703bdfbe9bc2cac75874ae687c3393407dad103672a24afc79d4c1688dff9172afe57f17bd3d7c36c955f4b3b9b486b6a63da63b8bf79c763feab97286daf3cf566e1c6b8e4d349e37b8092d17966261a2f6aacd31d5b2b6c2a14de4cc351d958d1a3832eb507c0a38ac3b3f112d7d7bcd985fea176da892d883dc8b6e89fa0020e52897517c02414fc1fe0f6cbffb75821ba6af707ac9e39ea652941fde7136d005c37611b866d67f22d09db955dca27ee2a75e6ee73a165dd15a68dec08a0f646cf948d8be4eeba4c71eb75ccf023f0f0246657ee8317c64c69fb46305cbe5aaac582919e06d4b0dda5caff8f6450401509fc46d1ea1194cbef36d8e911a2d055b321c90e661377445d3f5efef7004f8798be4eb2b259a0ff29c2864412ca35160731a79a6b5e6a991af4f3ae196cec9cd5f2ead05b7e6dbf1ae050f9a19b96b0d430ec03cc326f194f5a9210d5b1f3b834897344e0e63988e7120a47d63f0d3ddc77db5a7a2bddf7083fe62797e4a5aa5ba05ac2b618e7be1a3189d0637376bd083bdb24b2c16aeed78f6bd4d2f2e02eb1bc602bb8c36d397a0452bc1aec9f42f", + "01dee71ef7d690822d938eb90f20f5a3c134565c0152712976ba702967c67792dc7283d0ac20ada1f3395caf0b2a8037e63d06d8d7506388b5ea5e0ffadc6fc21ec1c30598f7c2c7a568926796d62aaa03469ee6dc85998eb4c36120a8700ed1bea2a2edfa693f70a77fe897e4b1bcbce6993dbfdb1ed165dc5a08bc71beaf8950ed2f57c21b211a4bbbfd70d39579eb3d3d5641c058e1fd5d57636ccf8c6bf4a3364cfa0beb5bf40fca1e4c68bba84a814e9a5235f882e8b4b1691d4f9f512c2e5ae707466940869fd9d8905cff946ffc2f18e64ce120f21b9e899fbefb9a63522068abed590cc9e397c2806361b29ff99f2c7b737906505606649b9b78b3958aeef66c62744ceacdf2667c003ce8d416db5d730f12dd946de9fcf1ccf7e1b6d3a4f3b7a885ebae8410ca58fb", + "852832ba8e06bf199e038835a9966c6c5f39654b779bbdf34b8be356ab3bdcd5f87f159ffc0ce7c382e6515d76b7e03e9cff4662e54692d313dd99efafd0148260661218cab0e43702905940d9b88d8a3b6efe05dc663d74bf0fa2374be77f4ff54ef7507f750c533ae5b257d095ddb8b56e72a1a1a55a9194c45077c5b741b92b4314dab6dc6a5e389cbcc09ccd3fdd2aef1ccd8a037b43d37ba7a3af0e5582d249837d52bfdc7d3637c9f72fa4064fe1d7017fc332bd09e43fad5505306c223f3e0f744bb76de868d6fed219311879", + "0e887f913706f7aabc00c0c0189ceb372f27cc2c99131a67b5066198958538698eecccdb9a73c4a00c29bacfb11ec28ab6a031b7d34cb3b0309789e573e5d40999b23547a67230510a14c2c11e2f1ee4375a6af4aa94a8b32cb66d2580ac3c48dcfe2c747d11660cd72b957cca1f9e36fc22b827606557e89e86450e82ef8ce798dd5a44717df435ac3d1969257711d85b7373f70da405c6662932132374ec5c02d90decace53f3bd9f2cbd109194fca5d5bbdd794439ce4e665ed5b304b8eb7f1d3d2a00b8b178cb977c87b2f6173a43ef78dd7be227f9dd216843a9eda18f0624e26db29103c8ca40f59254ec81316c808c0bb52e1ee2fb264c2fe05091fb5c2ceace9ee2fc832832ce6ac575712844fba6395a0e55b681da5cab510fe20566012a1780a804c713bc35d8c" + }, + { /* i=6961 cDividendBits=3215 cDivisorBits=2150 */ + "5c0afe50476b1adb92222f169083486b61170c1fb444edcb3f3431437af24343332eba552b5ea26cad22884e896ab5d6cff578d215a02c8068e68232646b143a32c99e7ba86caec2feac75855354afbc0cba720c850d8a9e3e00f91978a78966b445ddd2e677c28311f0be4f4cfa2b4010734c39cf68980a7162a48dfef300945c62175ad5bae796ae34a1408b047390c433400da6d6fd4977165b17908422f9776d8a7b89e55daef5a36a5344d67232056ede9e9510ba44e3bbde46ccc225e76549e11718d2fde6cf9ba2edfe1b87a40a1cec23a6e850dfeb81a2c991f20499dd2f19db4867d6b8fb7d66274ac83481f0821b1d9b738bab8b4ed62a1184776147d1135f0f5efdfa794fa3c1cfbef7cc1c3e3662ebd832a0ea5f226f492c2c20919aa4404fd34df5dff219609ca3b9ff4601dc7837566b474faafbb3482cd8b19758296a226a6bf41ea26a407e43de5bff114f8ad7e21ca810d2c385efba5248040b90b8d987a57e2d4cbaeb1887afad2e18c512e7acd3bb7dd8355822d835b9f0c622ab8f57a5ec66f8cab38c5f310ff1d0", + "212f9b8ebb02cffdbcb6336f6d785db8862dadf91afc7be2850404a7a75ad8c9ad9250775c645a38a771b34656407c28538a65140ec8dfc9298ac8c4d902540025d1e8cc33d6b96df5949b6f81d1a2d2620642982eaa3e9d93feb59aaa1942feea08519aa8c214ca76020ec4a0dc59c7d8882364eca6ff55efda30ffe2ebf51cf2b840e3b4aef3030214c5e2fd921788a3b1ebd4efba686f4b358e0e67d144989f226fdbf8d1c0a7e0b9820cb722f20ba7f4a0ea28f5895efd483400956ff47a10a3556972fe583f3c80ab79e12696ef605ad72a2348b39d5e8ad88ada38ecd3ae68bd0e5efa2c0f385cc2aa7912e2439cef6621d9e281a76d20abca50a30729a0d08edd7b12837aabde6fd7a0", + "02c6076110733601c315ee51b5e5ff89d6c4ed2709f6fb9e4924c3c250edc534ed4c53a16385aec8ce15d428fbebf437a158ce898b133b74dc2dc304f33afc18d287ced7dad3c0b41c8900da8697d6f470bcf70870c660d747d385f1916f0cfa2a7f8fb10cba9110257a6206426ce039b62efe7f2fdf7a1765dd978224216f1b715ba4da34fb", + "10ac01d9891f43a899f81291dad1d2e4b8237ba3976662c714511bfd8af0ee460c2f4d13b8291786f1e3d222ca9a9da7d5962b42ca971fd2268064b801518ecc10fba595d7d721c43ab669e74b49d75e78533167821293135916b07bed394fcb83a86f888a161db8bbd04d8f20c216d8eaeee5b3f5f8776e116138c0c21215ad4e64edb1e311835359afbc15b4abe94e46a10ae7211a6795992696c9835f74f40c1875619cdc6d3f0cf7a1246def6be3b8143751e530ae0138fa681189327ae3242e8f447467d2f72462e7cf827678e277f9f5630a8974b411109a6dfa6dc53fe9aa6377f60b89f19e02a5c03451fc51033f74d8d671b5ab1645100c9a2068c33e58bf88ccd035056d435b07f0" + }, + { /* i=6962 cDividendBits=3778 cDivisorBits=454 */ + "01cc67dd2788a8a1a501581daaac71fc54ae32a0c0930cb712bb48cd4b32decb7b90a25479ac459a93d161b09643b5ed292fbbdf77bd9cddf1f53c7b2769565aeb39867a34c1617b4e12d85ce2f266d28eed63eb0aed2460d29e3e778aa8c2e58de7af5d0dd87a8dcc96a4ea2eb66b9904a8401515df7a731d4a40b8681e039f6fe7c3c4fa1d976eb9bdefa2341f24d4616ea45e47ed0c81e5909065274a2faddbf37a67938f0f220a30f9161f14546487aadfb0aa07322e79d66eba1fe61821d97c86d5398e9c58ee31a29b9f8a0d198b83a010cbb5f7691b91578b94eef18404a084f68a3b36ac8532431cf60507e62f8013399c6e1cf08c1215d528477c6faddd6b114fe7dd537972390fd6080773db9010b1a1ce434f4b41cd24806761da726647516f3ec594a5d77a09815e257cb0ae3c1f0dee9f6672744dbaa0d9ec1d37932c59d871e60ab4f99528bda7be93826abb0e02dfe01832d1f4fcaa8e639b2b1b0eb7cb51d0546b174a5acfa9b1b4a7dc6a986b104a12a49cf373b3c2136cf99e6a74c3457da7581e8cded5391e7bc35a75fa6e20bb217b100a32d4d998f3ee8a29519343cf28b9358339bbedb0b813a1d98d854166e4a08481218319b67e8b91f6d4c97787414c05111cf012c257448c7891fc4ba81b86", + "032d21ee602053561d7c9205b818e8cf7ed728bd51077aea643943841b285b2e468fb300871c29668a4e34a3885700c7fe0fae2cf16c80fac9", + "90f34b83fe64d417f7e0c6b688d1c50e9a730e0352e9290f5578d6ac10755ffb1bdca66f9bd0391e8b855612783f34db2f5a02af0cebe9c7d5bf5b73ee1141ab2632aa452cf04ca494b3f7b0f0e9aa9053896da068e5582b8fb52d2e090eaf5018554ac58c1e572045600c0462c8edd24f83d0d10c12c0ce52ce35e5c54090049146c24323c05e672a9679a0b53796788b32dff5229042701534467fdcbfaaa796222bb836b048055c622154b80cc0af3de6449f337323dc295abb38cdcb8ab916ebd6baedda331ac1afe05bf96bffc1cba7b07fd2a1b6943c81d2a5d97435c8bc2346b109b5fb3f36d2100ae3b24e1f292b5e9b18e84f17d5c717a82dbc9b3f0a42b827a5d68ebf6cf6d4281e167cdd6d0d318ded2e16a5553d60421d5a802274f16ff009b19da5a2c375f302b6e4d7f74bd4404e467ab6aa4322f5e95220fa2d95703ba485f8d7513cd27c9ce7172c7349bfdd0dcff8e5c80577ed5737c644f63b2d0fcfb0bb1ec0b8d0074bddf794117f26c3cd274613a00676f381d5797ac3011a954b1babec5bf73dd16652967f150f632dc3d9820eb6850884c8606f81", + "02ff67169a8df2be3e35c9609d4eb4646f312fcaf5c226ab5ee44a9ff51e74b7e59627288f640b859d1aab3b0cc78fe0d97e2532599e8c953d" + }, + { /* i=6963 cDividendBits=613 cDivisorBits=474 */ + "1c2c1450f9b62359012ea9e16247399797669ddcb862d33d01613349a825755b1d2b7b97addda38f7391639d2dfb0620a607b4e162ea58bf43123ccea7df6bf9586027f190c49d78bf00187f64", + "c2eaa0be67fde29949b48a4e61c0a78e85358b6a989acf481ed5ba418581dbb77d48c3b97c977351b1a84d69cbe072e31b833def4dff77275bf043", + "25003895e5c96917aa4aeca6baf73d1c2e84", + "a8e4fd5b05203998b3ccfae806c76bedf0a4bd2e65be33ea7f1d00494d7bbea84137c50d9d9becb1cbe0d40478b450a9081b30b15da148f13092d8" + }, + { /* i=6964 cDividendBits=2282 cDivisorBits=2167 */ + "0390f779e413173e9824b1a60716f2b80e6b594acc39a27aa0e495173a4e34b94474ef33e4fbe1bdcfeb50ef21aa5558a9ca872cfc7ba3e6d3e89097a1dda993e61e0913f67d18d5b6838203fda499069d38ba3bd50ba7f34bf837d5a07b79a8f0491085b9109c22de5cb29a884047bab312bd6d47d2d1ad566be048644ce3844850944166fdc456527a64d4f41643350d05be1e05d423849794b13a4c34764a8224284756b8049beeb51593751fc3ce16a7b160718a57b50a7b0f2ef5bc88c85427319c7269269d104610727c11028f2b5b2af2039065bb8c262f65cb4b29d6ab3dd9160bd035eb2572e44998275f9e617475bf08c6ccb60c0729aaabcbb14659485e6cf606ecdb2e74cc658823407f8740c71a25d44c55e301b4c9a7ff", + "69955b294d8d2749cc6c905b2cbe11f7834708f811a3de3c52635b8a975db48705f37eee735998e46015b165ee4389264ea1650d5204c91c4d3a86c5bcda815eef76c0e1cc7b90e9ae01f8cb5385a30cac1df873db28aeffb5b8b2a52cf6d90d4c39495604c602593bca0dc15e051f95f0a08ec4a8c1e46137219cfc6de3f4aa1ab7afffaad76c0f4afd204a370c6982778364dc5f58c25754c89e103b48ed9c069234f5337a42bd8f0f60cf9e6ed64d6c611547f17468bff3dc81485bcb86e5ab106ec22a503560a1ceeddba5850341d139a8e7fa89be4a4ebc5d442dbc8518181be4aa9f988ad79988d0d70d026ebe5c6e6e0d132244aa52db2fb927e4d23a9fe03c28cac34d00a31f9db0f9f4fa", + "08a599a16e99f7fd5d061fb20e88b6", + "6729557a3080902e14ec870fb80015bd7be1b5cafbc6b26a3a2d7b937921721e7df701c5a46ee5dddd1d838eb59d9270911fb381a8deb5c7e1b5dca62aa5acbce9205b92ef01fab9f0b49a976ace684a5556c5cff2c314ed0a8213b0b05167cc93f504d63026c2af58ce2bc31e4654c2d77b809dfd416c443caf1e63315ea9d4bf5f3f856608cdf119ea8d8da4b52af08d727647bb0e523315304384590825b52cdb94ca71a9e3ad6f3e1b98b490c5d9db4a8abdd6b48ca49f148281c943f2fd5dafea5ebe1d140a61fceb58e1b606194b5c1fe6d5ea9dffb6f87bb572e1effc69ccaeef6109f5cc929a25202de10ac79b1904d1889edcee69797520c9a63068e28047f9db507a750fa299df44ae43" + }, + { /* i=6965 cDividendBits=3590 cDivisorBits=1047 */ + "226b68c51e54d3869f036b2bfa755a9918241a25b77bb5f33d5a4f4ac716eab339c2623bd0e7ef0e6e95ac70410e733ee6e3330499674fb28f9785ec93865bd09dc86f5f94e057d049a1289b9308897b53f164887584418d8c4bf769a73904388ca3a7611b9f49f760f61534fc3a9905de6a053cf818e09665673bb175dadac079e7219bb3a0bd746fd5633080ac7c4c3b8e86957e8ded80f978ce88f4d8d612b88948de7e66384ba49e2711d80c5e6437123183e58691f4607617497f8e53574f352265d10b78c676d4b3d8002500bd6f735277b5798a8a4b7e563e81316fc0abbf479fe599048f43ab41a38e488cf3f4b12cc9dd529d1927f088396caf19de636e76e4413c96898bd498117d04d2b7eb93c04fadcedd3f2da7fba5fc43be64f78925df63422ddd03d1b92ba41580c8e0ce91522f516710383c945c0a5587480e4ce904f28a909a86cbbbd78bb8892e2bf006a122a5b36ba57f336f0b0639bb5ac95bcde2feaabef887dca23c86c983f958617f34e453692ceac9f373959be01b4f8e715088c14cf6a9ccbfb66a7016c29a6067ac3c4cbfc506d3466065aa19797807b72a7da9406904216ec5fefec8206efbbc472b62050a4022d7f50b71ca88", + "5d9cf42d412ba324e03fb181af791c562b7d08cf7033dee2dddab94ea6527d15453aa49caaa5ef82532d2bfbbc044ce5dd97574e6480f80b9c8ee6b5bef31fc8cb2639357f7a289f996d18a7f2c01a4d9f91017cc18deca73dfa3b22e294c28b82369291484a09be6b3ec2d23973bb04c12c78393f726540027522fafb3c8b2f1f7af6", + "5e20354de5aac349787ea505024df9d0944ee7541fe5b1c779a0d3237cc6e2fae1e5f16e7d48506ab0cf4ab881a3cdcdebee45e751e04e1f73947ba14da5eba6aa4ddd132eaa67d32345edf7217c2b8ca1c1987dacbc8396c80e6939eb7a1abbddabf561d435e000a8c0584b1896bd76e825682b47d6016ca2b949306c625427d1e44a47a4ccef0e0b890bc32df4a209f256e5e27826d34873c3128fc053351211d5aaef724e0847eb9f3ac6b22ffbe1d8976037bf2082ce672e8133253bac7802bea00fba63516e7876a6263cf22e2eaeb591b67b17383085758b6f5cd381efbd014141f48ef6cb579909e71bc150ccb566b5c0d01ac157a77fdfa43df292d28dabf1e2762c261e23f1b62c1a81e8006099408ff63f9f5c95773a1620dd21404f363b9e59cfa7edda763ea4143b06b9c9006ab4cc2e5f14370a226aac9b", + "10e5d3500be8c98a5ce888b8367a799238cbc8096936afe1e3dd5929e552b97ecb71e0292830412521c681848673a4d0559dc97a340d0024b0c2e9be5ad5befd3c9a05ccf1a649e2ec0764e10f871d1a82d134a117574ddbd6b6ef372d13e3932b993ca92c5b7705b7e4503039b57c5212c3b55311936695958c4f6f96530cc6e90f96" + }, + { /* i=6966 cDividendBits=404 cDivisorBits=392 */ + "0e334cb2023164024c20ad30eaeba5a6b9399794f599161a7fcb9e71653faa0a637a0ca1734d71a54eada18175261ddc5e7a34", + "1b8708e0a006ccbc04c1bab19fe38429e03544ac07a7a38500de5f92509f95846bc9b9c78902eaa33bcde2148c94ee39ff", + "840f", + "0f34aa84820b5aa881936411f72c6329fd0d3b9232f7568de8225a1aa7985923b804adf6e97d6446f7de9d75164c819843" + }, + { /* i=6967 cDividendBits=959 cDivisorBits=22 */ + "77f43a09e18553fb3bc40d035c64b63bcca2e175a9914c0cf898eb466e261731cec23d95ee3bfde893ef28ed288721d2bb8577f6737ffcde623ea35bae236d0cb7c3fa6d0307982e0d0d74ac1dc895aa10c56d79426de22d36b12e501f5f22adef34c10580a2007478139fede68dda2ca90bc85129a7d03c", + "140baa", + "05fbebe16d818092ad720c6fea26940344b9c355dce7223466784903570f3b2d473b4503590f28f43e8d7a22ed74df08105f8649b496fa9792b6de1e718d58eb1416fb84908a157a6061dcc28ed288e61043c9240e97c89693b7b5acf3cd5edc792df724d70be2644a83864a79e49aaf9ea16019e95e", + "13cdd0" + }, + { /* i=6968 cDividendBits=3935 cDivisorBits=3916 */ + "4e516fd670847d6120b412bf677c5f0e5396c2426fe1c138a1f23b44d07d994b5262302bbb066412ca82902d82e229bc1a644e92654591463633c28146b38f661ec258171357684e2b8e31df9ea78a1636db9fe08255c559d794f0867d91cd64928a613bfcbaf5b7de9f32f3b945a9b55e59474a11e5ced9c4137687db7bfa6ec9a8651a9a5daf3939273aec110efc066bdda0bd832fc3eeae0e5afc399bdfeb3f6c59dd75c8cf4aa4317fcf3739600caa57d1e039d2284d273f4008231cbae0d79f9bc7db98c31b22868674fb6c09eaebb9d87fc1c3a24d5f788ffd465195dce155e3bc82ab235b3dd3b849f3f97fb09c6e6094894e5d886bf2c6f832773c25df0c9be3394701970a9d60a71c9d892b61a9c99125dbee485ce2e790fe75e61e3aeb832f51425357e2c803d84e0a9bfec0a0bcc99a365770cd85db4cbaac0debeae0b94b48525fb440ddb00c4e058c2337df2b1b23f1ac0cf228485a925bc36346da6cafdceea96bcda7f9cabf7444632c831838742d434d1c8dac0010adc5cde352ce9c007d5c6b8322cb1212705d72698ce95ec35bdbc83f1fab19821997cb0f427f7d6996659c16754d44d04ebb0c9066f60bf6eff24c7f231599d50823797ab6665fbb648c7c54fcfd90e31d4f21c16ae13211e8dc497b1c192e8b670f44bcd63542e2f1bda29d8a71d0", + "02e624cc6411ec842c3236c3a62f2d0367e22c76442ad414360063d392413bb01bef447e28e9a789074f1bba6ec5d976f73b5fe4c907ff7430c61b0153a1708171c815b07ce1c46b90642437d0b0026eb7e2032e13f5a6648d5d48b02019b05b079ebe76c806b41388b6b7d3f45b62cb461dd431afcb3599da7f7b334864a1aa739f3ac74f21161aff7e5ba5fc6e1a35dd31fa29e6fa475284cdcb2d8fc5deff8357c9fb61ab1fe9e8687e6a00d48204af6da6bf0b73202f5577743bcabe0d3ae5b550a886f81cf7755d945327413e82381bdfc58d44561dd568fc7e7ad1b3c5aa8ea043fb4127db02768dc01bce66adce798a80f80e263a900adfb542e35da25a71bfdcc7621df5812facd4e20aa3e5913d7dd6188280d6e2b661852912b9f3798d4eba0ac1d33d91a42da1b0a7eeff819724d1fce41e0adec9b1b442697f2a93d4ff325c4234860ac234b4b76e4901e1c786bfba1132c6b4d49752293d33c508994ac1af994179f3e1c947549ab9520fa501830d148da9500fcdf0dfed7c956fb3bb8b2a6d7cc85ff53014ce7cfd125b36525246b8b3f9123348569c82676f194c41767d988945afd753161e50a4dec8fe6d50bd33b3c3394a588745cdb05b79f140c7391b28c7de94339ebbfbad281e556098689f9c1d09c8ed18966a08c1280ef0f17b83b272c02b", + "1b03fc", + "014d4441d40618c8340aacf87bbb052a28a01825c871ef608a66a4a191ce8e76a98883b6b5a77f3184515932dde1912020df1ddca4273e5c9409db637a82dae6b5437c561d6b546b10fc4db3cb1f20e0a17fbbd5b1fbf61b06457d1c4d701a19ee3602c0fcf2f58517948320a22757488733117eb9f6279ee430588a7c8074b883a70fc1128c334194f5481871a7a8faeb3167d5f1067f90c93886348293e31aba9163234bcbf9322a4972745ad81f1c42d5a37c249ae70d75c6a2d5886de6d4db943ff3f06e57b040d4dc3a0a39f1f1af9a446fb0e0be87a0584a42447b9cb76c4a73eed7a72eb4f4aa3bc5e0fab91a18b685f3fcfae9774386ce45da1d422d0261be436dc30c676c3ea5499d90097ed2fb2f0eafa51b774fd91aeca2d382ebe68a818e2f93dd26e9a4dc1889efd3a7846d397b8f639af071a9af530817a5c4ca52c0af3dc7d84f4332f558fd8584545de5a037f4919003d3a54d8afdc119a1477c7c0d1aee32f007a6daeda041232599f40cda348d3c47f49fe6e56bceb7f4f6cf4874270c35e863f4b85af28275aece414e0f18963f5285a2c741177f458ecc2956637f7f9916ec0091ac8e3c75e898cc74ca22b536737b1cbd5c6a48f1cab41e9bbfb7315f00b555631d0d20a290d4f229d289476f381b060040d46aa1a73042d9e5cacd57cbc67c" + }, + { /* i=6969 cDividendBits=3476 cDivisorBits=2076 */ + "59a2d0ad557ebf906efe309ceb13dcf031657ecc1bca1df874c3829869243c931af62341013e5aafb4215f842d0e27930c97777c590b89eb9f7c6a6d5ba5f220a7cd280397d9962414468989200906bc6176d09d474e8849f2c5d57680cca3a1d16948027734159f1ec179fe3322b8386ec495c420f20f5c19afbc8c608dddd6d7dac30b33a5100d6c56365440ca6fb458ba312fca4e75270f617d647269307bc822541d4a5e72ac0a23f1ad7890810dec37dc9724a78bc0ceaf228bf7d1eafe4a74094ccc94ca51b7a0647d155edd5f18e8e9e209c2928b259ea81170a37521327468efe571298c6f9f2944f3c2d4bfe83c721af7d220c93b1ed5a0df5ec615705f1e937cb0288eec61c416f9f180b11fdb857d5a997f59b1982182538e255e6e2c95bc27d72463a9423265923c18f63fdcfc4ffb5ccc3c184a077dcc964c10006be2f67fd9c5c5f771515c414b5f6320d057a9af0acb50106e62107dd6ca480a6dbac0112f6ebdb881f2f961be7b3c0405eafe4947b276b89f0120a2ab933ecbdd24b6701274acca3fc775e15aa6fcbd7e32abae836dc863c81395a0bb0a8973054081262285c14539f04025f625d0107b", + "0a320fe0170f44c7f44e64f8cc39aa5b5fc0b03f5279860472daf0618a4133d632c4da7692f6c29de9ee5e95ad96d8bfcaa3d0ba8a8d7d5ca5e571c8f9c7e73d1aaa212f5958a28b028089b2f9c726a2aecf17d4ee57630518e9f987c35f5ef3c223905dc43e0ad9244b8bf510b2e1cbfc1b16efca8364d2b455e18c6fde73f874ad7bc53631219e888fe0f803e80ef48c8cd54ab7a3cc801b2ae28532ec75c3964a43b80754986b57106ffe8397cad725d7e1954536965afc83d35bcd9a1bd9a75fa83a61495ad17d27c42653671fea0ce873344f1030a3435d4d0309f99c97857549039d9db35a87c351f159f5de74f9eaf68b874d540c1b2990d4dcc70ca892c4b740", + "08caab2ae158b551b5120d4ef7ec89def9fb3dda235bfe90eeba18d0a5fee7d79dfe1887b548111e36eb6533af0e0542e349bd0d39c3742f1c2b5461733f37ce86f1c310d925f3148ec12a75d12439835d7f3a69252e0a47e5df3c01526e13ea0de95a02be6c32fad5c1c22209b193ce3dc36722f0d4414d77a66f1022bce4e939e374018daa185914de7ae79db39dbcb9ef9e55ac456d4a7d23dfaa4c662c804fca5e30e21e9c4e4fd5894676200a", + "0181a11d23ece7f5d3afd45a3ced73c57de70b3a375f8d3365e9618c3c52831281bca97365781e5ff66fe6c3c206cf5accc52b45aa8c93a5ad933bd2abbfd7c24e9f796af295bdd4434e041ac4def7ccd8a01ae280bd13fa8f9f2f7bc5a554420cb84bb35465b9af43e8f63eb7021c3e53e57ff7671cc3d01e3dd3163aaf25c9bc2d67a3e2df3111b4a1b46c4cc3377310d99afe2307b83545b9866bc2b68b669facf8a0ce29e72b86bc5baa6d5179fd76cccd20f1473c820e0f0a4031137c1a01887fade40ae3c7c2e27b7f29e71375137e622142d158a55d6b6b226ea69ee1614dacbf8106e612b4d6d085e9f665a9b7fc084745925d2b00e6623c3c90d2ffdbb8e7fb" + }, + { /* i=6970 cDividendBits=990 cDivisorBits=951 */ + "15069bd991541740f69943a7ef7fb058023f3449ca5c12500e617a16645c591090d0fb9213c61f7862e4ebb75a53db84f5668b1e1222517966684321ae99ae0004b8fa91886d9c0f0a02fde1b3399ab505e2e9811e25907343b25f74306c9f2474866beec019679eabf3a46ccdcc7913f171ebff7ee7ffa267bdb30e", + "6c23813bf89d1dcc02b492298658a00de7c6090a589e25b3c541794aeadc23f1b9c589942490aec945bd546c75a244223969b09a67ed636afebfc9d9cc948f76675dee7e15f26e0c743f698e236ae065fd42d65d8543449c211b0ff1e63f0dbfb45ae12f1ff6b3da4c914e91e804f3a39828cb9e08d741", + "31c669b545", + "1a30d37bf984a2fa51c64e069c485af9333fae2d6b5d0f77416dedf59b98a9cb07df4a8d089d1a15a39c49c08ff675c22ed17190435c3a41ef46551d57037d6a9d940f9aabaf7c4c0cbb9ec160f14f73ddaebb4bfbe902f7a9affa467430521a4e6d434ba56ac688f0831cc9d2bbba5a9d2e76ff81b989" + }, + { /* i=6971 cDividendBits=1367 cDivisorBits=967 */ + "1e5b271c6c03220df2f253fd4badf01fafe425ccf1284419be1a2eab09cf8bbdf7bfaa5039665c9e7d4ff612cd0aa5acbbfd34b90e488963eee48156378b651628bc1e66d66139ac968b180f5bb8d491f73a5a81e52eaf777d0d373ca20a0cd54633022fea67f8fd35e77e1945c1d3a2dd9a0a07ae234749c9752fc58b40eabf5823a3a2f32aaf5ab49cf00a926c4f1a3fb92bfa48de4a0150b6ce8a7af63dedd4d9b0eaa63f9f837401c0", + "1501e2af0bf9824fd50291ee3da7f3161e0efd66cc3ca0a5c09e29b91277ce5613c73fb67763f34e4884fa84b7dcbfd234a3fd24b8b7787b9f3f7dca9a073b853634418becffb460bce165322f47698ff72ec72489f793e03976c4381df3d995e7099739307b2cf4e0751ea52de78d67e84061c0b32018fdd6", + "0171ecd6d5f79ab32c4a64952e5a129b6d791e809b3cba09137a5794d01b184dfc7cb94e49be07bf06bce2bfb9fdfb96fcd9cd", + "0611e71d428e560d2399150fcecf1265a2215a24dbf139a7e16cbc39b19725d1b9c14073e4d10455012781578dbcd62252122766dcbf5ab6a9688bd3884be7a7ca39ea8ba65832107bbc13c485fd02833fa1ac982a25706e77dee222e67d80d4d30a2aa3f99a1b271055cc4ad75701124895e17dd25d9e5762" + }, + { /* i=6972 cDividendBits=2843 cDivisorBits=182 */ + "065395b8ae4ebdc57a0571342b21e1683bebc2b270f2e089e77f44f90d08cae1e51021e6b1bef0fa7e881a5ce7d45f2d3a0027b552914a73208ec65caae63b393bb350ee05b8221de2e4954142c5a5e89d4e8065f53c47bbb085764bc064fbe7924837d4ce31d4c23544ee7891ac57ba037d5a49eaac3e660abfad5df12b21c88e51ee1331bd577b5d86cd294d57f573dd1eb77d683ae4278b8292f5c7196e2347104005f21af28d142cc5acd403fb6b9616b8a06b26f3ba84becee3906e64dba7280a7e734ab3f6e1a2d9449513af4620d85f882f70f1637710df464d0323fc57df8367d7a11ea97199c40944e7b1d93dc04a81ec28eba901da607495b32dbaaa41aab742b6332e8465d350b7db6a10ae42d9361404e11169e6ac4a8b605f4a64effb86f558a648c34af9399c8166e6194edf4fc485475c90f882773d1971dafca726df0be0a35943d19b81d35f11b5248a19cbaba1f250b39d7df0d7841f2c8b0dffda", + "368c85b2d9d4f7b5916841578efa7faebb64fc16fed58b", + "1db0c4f3a3e3ce92c955b6e0ce49aa72d2104fbd570db60b089a1741768cdeea1fa7b903e9dbd3fc8124ea4b1e60b6825f513d6acb1cdb2e8daee2ed3aab6f2e1ce56b8c8c386ae3700b4689fe8b77dc09c1f1275041f087c4c00319d2ae08d8fbddaa4b2684ceed6304ebe57e21e8d744939d8147d23303af91bb1a754f3f685513d3e83b2504eb67aa5b3deef398416d3afefea1e769a85620945c6bd33345db2ce8554076a04a7605069fae3db64f5e086f0a730437d14a998d5be55dca7931c116d9dd745f90827213dea21ad31eb76505f7ec1832f1723d3433ae3cc670443acf546cfdf4065f9ee424f8a4f7d33c404306e77a17fc21bad36f1b8a065ea40071b7adb22287a834dafcc4fa6d0f532ecacdf03accb5ad08e4745e2b3da7bab18333d7f13b582240c183b371f7e771e6e3ffac1af2257d87ec220805c73af504284eb87cef767471a54b3e", + "3454adaa5d7523e97eec7925486263b03eabe4532f8f30" + }, + { /* i=6973 cDividendBits=3470 cDivisorBits=3335 */ + "0581bba3ff3dfbe1524290fdcb71eb96d1174534b16ff1d221304d4f907382c082608270d285b5d23144cf266496e680144926b1dc4528d1948288a8f978a4aec3cc761318d0ffb71d7d15320da403a03c996fc8eee365093ec9d357a4378cd12a90b8c22413db3ab4ed50bc04d4aa4c9b57c04f4f303b8387a04a540bf0dd37278034c07971e79608997439d17a5bf5b3999f04def90a0220d74daa9ecda90df2e4b132f70c0d0bf62b96e60e29c27586173b8a04174a9a19ec1d45103d992008fd983e49e61939e17eb8f8c64778e040e2fc1346b84ddbfb33b4278e7ceb4103a4ff209e853228b0e99edb4d81b9e616d100722c286dec72018b669709e8c97e1270d89f0f0136351fee7382d5e0e50cce21a39a421ea6c6c82ff46fbb97f1d761bff8786f695924e7b95f5aecfeaa6e9472debdbe45b9c5ed2b807d5c6942b0e2c0e0efbfddb48c6301d12a8136aea77d37d94bd7e3998520b58083c1e11601a4e64b20580ef34f92c6026ee27b4f4b7393c2c7b4028e4cd282d9cbdc21eb1f6544e3807c793ac6c5b7250dc1189557614d2600993b778ca2429395c062839969b1e9ec88915a54f0dabd1b47b4dea762", + "73069753ebf1ea9b125356e9c2399570c1363457002b81c9e72b3672fa36ad114bbcb4db8815a91f05979d5409e7d20f220ec601a6bcef69ce9914cffd229de90149f80871984143d87deb37b63c69f8c16a01699ee51bc9096374587c4ea2934598ad7a11d7b56fc26aea1ee8c16e00fb0337a0886c57328dccd7d2ed6f6be9de9955437368744396d424d42697ddb737eefce7bc412b2b2f2e54e4f47f03c83a56214432b80ce14d671152921b479fca1b1bd7a6bd35492de4418c960a746b0642a350b9e588d0ecc0ce33208a17fd59334e9e5650706c3b08c04d4028217a41d0645e4eebefa668d2462009c2ad40f2d3055b7801ea2d8242e5f5d3f03dd2bc31098254a40b576db95ab541ad1efe2a4bf858e2bd6ea22e6f68f4f882ffada264213a9263fd097e367d5e09952855cb2f5946dfd2cdcaa88b1d4b577bec6a23572e139d470ae973e7a9d6de0216d4f5a4ee3816692afc704a6ced734a2822e07a6a31219335cab7f2c22792ecfe5cdc4f74c7677ffb33fd9d3258f118cf4056221dec00b6947c43b5238459427907139bed52775b1bfd25bdb90dfa97760041", + "0c417c5a050622a0e674df66a8ab0ebe12", + "3d029e61c3d09e9bc1594da4d7d2b90b16bcb800e5bf394d195bc42014810916889aa424678b763fc88e4d59e20fe8ed8ee3d8de041f1f9ff84f87d713ac87af7edfb4163d94031d0fe1bbb834a3c07934eb38290fa473155129adb96c115f549a9e717c5af25933eb720abb148a2ea0b40c33b8caabd41c766c7d7deb83db9a86ed65fe806fae60c13c58ab1838d66976550055a5bd20edc79e30c1ba51c755631da64c3fe2246abe28262b31379c6258ffc291e9ef891e3bd9788e4727b5f3ba88562580432f92ee15080aab469fd4000cb2a2b821356dd8f07bf7b48dd4c6fe42c3c5b73793d70088012c79bba022d734c61eda603d952e06928da2446618cd633ff239b571e7b3c4d5822859ff1173884b2bd8f06106bbdfe94acb6fdc3380610b6e28ebb697080cdcc1d65c833ad72f05874ab813c0adee225d098e5814a3911fbc99320853fe8e8068f2dec16a742af426ef128b3be637d9eb69463955c8382415de3112709b670e41551c27e4fd8bf07c413780054019e7d9936c6c798b3bc542bba5e234e7872b89817af381b9e2daa93ffbf841eaee50f7f80bd464d0" + }, + { /* i=6974 cDividendBits=14 cDivisorBits=6 */ + "3ba6", + "21", + "01ce", + "18" + }, + { /* i=6975 cDividendBits=3686 cDivisorBits=2883 */ + "29bae980b46f5e1504486c1496e9cba1fdb5995f9e67299f6d2ac688fdf71719d1533a76ea8d6ef865b50d38dc7866ae60583326cef4e1fe9771605cb7b10c8f807a1db55982942faa43d0770a3fdd759362ee1728109bed9d180fb59668a8481232fb7b15bab376545fd98009605699967f38c0531902ef9078bf1d41555288ca989f0fb3637610e2edcdf3f3768e847989a8e8ef67be23ccba1b443093de5c3e6f9493c0e1a4a1a3acdacba8ab1d362718714e8212b3b9134e2344104b972ab26b5f551ec8fb8849edab0f82bb7be7582885e546a5281ae45ca46e8b146572d515ee05a62b5ef7d20ae705dace9bb762f3122271ea068d54d1f1d97fa5f1164d36f19d1b1984102b558cc79f11de0270f322a9ee59b6b7600ce2201336a2b2705a6f4635c0768d5e6012efd6b1f80bbecdf4ac60c281281c70a4ba26c11671144d8f486ccf882a5bffb0beab1a84b1c5f0e50949a7a6270a42b6fc5831930fd956bbd1b14264ba275ecef0d14556ece71cb116d079cae66a10340c0790e0e2f9653310a1f80e7e1c33d5fde54c75ab51bc82351db9245284ec51a4713ab70091f7eed4cc5bdb24c98ada70bf5e5750b3745ceba1456bc5641bd692df7fc8cf1077f99885e4a4263d6739550c", + "0354529e979d4fd5d471984f1918de01c307279d08cb682c827d28716381fe20979b67dc6fd56bbb1954358d8ba2a0e0365c02fd64e8e65ae7508e226fa9f788a2c1a846d93f7cb6c1be9a76a6c7d14bc9ffcf7d55e6cad1aa303deb9fd04db96ae845c45de4f5c3321c030606a0180d0ef6a1dc2cecef372c6853d883b5cd7645e650f812ae8f05bb870f03f60d79c2fc50a64bd21fc51e714e07ae136daa19b74cfd9eb6c9e12730eba60f24ed86d2f083342a4cc583f2f08e7d7cc0c2b3cc3e041598f4fba93e77a97368c5446acb04cc2a7f4df9910d07910099b982db058200d727a6d0043c6cfb91d44d021c8e15d9658228399f8d2b6a949d7587d46777f61f52583eb6c977d68206b8d64665ee2059dd9c5c3fd0ffeeb069f538e6ae530e2f2a207c1bedbc2761a45656d3d3b1915fd75790cbc854d24457edc256f4a3751d93e4158b4b5d0d69eb178322d272a1dd071be006df363693e3e646cdab2a093beab27a63a535", + "0c88ac7516e340350c157a878a0947e099421b91975963abd0e82cc767fd571644057cfdc45503d4d163335da8aaee6eb9811aeeb9c48eed67166f26b6715f0593e8c837ec97e398c5644530e2cc0632aa95780073d11df4c91677cf0d5675a347cc80b4fb", + "018b1721152127d12c56a271588ab8f15a173e2b90c14107368cc71a5fa70e22535253e53b965d809e56ccb020d4565e2bb1541b7bc1ad581c43b8dc690cd7781cfa6c4dc718229435c38d8b248db170a230150ac5dfaad7da54f0b95ffd1c9daa7e3edb36c1305b6d3b84fd3dec1c38888f9e79526c827effd177eb7ed1d43140b849e2c74cfc61f0525d048deb29541fe532cac816e7d661149169c1621adb86e3f61b33422feaed313a36537b9e9c66968c14ef9422e18bd03d8a5d5017233fad1f42296f74e257e73dd0b579c503a339ddcad6221fa9f38cd220f3d483ed46f70270a476b44ab984b0b198c6d8d14ee31db805a320fd62f59be62df4d31f70efa84a2a67653822a7e2ac255608c4d05685321a77f5eb9aefe9687151b50bf8fc19c3f764f15eec242fa5b5e100ea23b43cc90e62389038c5e6a8c1115c3096c5db487883a3360b0ff8a06d95220a705cc8069a00bd3ef734a3a659499377ac700e610580dd1615" + }, + { /* i=6976 cDividendBits=2682 cDivisorBits=1456 */ + "0242de0bbd2e2420b0c971c6c51f7e3903fb227b42fd9efb5b29400f394b3ea24d24a3c2df12757c042277736d4ff9fc2b35e430fab791d5a298291fd214bf377c2faed3a832d41aafce55ba3a55b3d5d1202bd6664df922204507f6a5472aead79000e7ee783bdeb333650ce0cf4575834e79c0eb0c6b85e44894cf816bc60add75599452e4ac0a96e07794c071cf0507646a02ccc9c03d9fe27668ee5f1215bcc30ec9909cb3ff3bb477045486f089e3a6d67fa2672c007daaf7516eae20f3af19d4b53f8c952d30813ee7456ab7ec705bc7b8697738e99e10aad7f97789d19041def982f6b514acbc175d3584ad9621ef1d79007ea5d2788a0319c13660467f23719200c34dfdedeb01292e92b8a3d300a87c5afc9e2b1acdff172a165c71d24a8d6d41933e4f7edccbf0908aca61037e0a4839ab6f390d579ed08c34ccfadfc7052056b9e2b0638e802c13d7f7c1", + "3131cc504d4a5ab97d733cb333b25a5978957ae29fe92482334310462bb9acc66fcafa4677047ee9f4c35e199bc937263d3c083b8f212eb9c9d8ccf11fad33638e08daa6d29b89916cd7a6d51378b0cd83e03d0f779573c0b4ca3e5a75512fae36e9d7c5afa062bf342e9793e5ba521b412aa5b5d5be4bb809e019dba002d9118a755ca1cd0de1813a468c15eb8d081efd4b639b338341acceafe347d8e67df484c0c463ddc669e68c2a98b3bd383e67ace47d43bb34", + "0bc453fd81af7c4b87c23e3dc2c714253ba799d2be9c4c79488e605953838f444c3944c252d8ea8fafd0dcc5854bf63831de13fc114534f0e3b8ca23b4ffaf73f4fffea749ad00a1eb241ea2c5d0ab5e8867da5044ee32f25c28282e39b1bc9802dae130085ff26590ef6c3263b522ddb51f6f9322e3add74d1c19febb09ce2dacea06029716df6c2e40b1226fee2bbb4d9ed72ff8e4dbadc29a", + "15bc21391434ab1eff1f967b5118f57d78eb325852436bea95aa0f274c5e57ed47cb7c54eb0772bdf5ace20225667c60752a3783f904d7bba77cfc9c4ce1a9c9af68d7d873c61147ae5881b08bf4f268653a753631a01962814f5a880bd6548cb7461e9d52648317d5fdfd1e4ec52983dc95ee4109b47f9a5f890aa48abd1c0c44f34ea086a2ced2bf39a3f95d744a858d0e999bdae619cde8a7a4fbd06b971884c54dfa07752f5907b377be2dffc260a5906717f279" + }, + { /* i=6977 cDividendBits=2411 cDivisorBits=1299 */ + "01fd4382aaa897aab6fd8671fbbd624a5ba74809b7320344884d6d099edaea5a66bf30ced26a22f65dc8f9bd8f4729cacc3bd8868b731a428ab019fd438b797a8339aa4629ba298a2aa1585fb526cd58c0dfd79f8b42d74c095957b7930606a930cf03e222c7e2b6533636699c406e0996402476cd36f49b757b831ec8e4f9a6ae0a82312e73bcbdc493e9302f3e46c97f055ef60f63852ffbee03176903ff3f1c83516c4d55e32f30abe4c1bf585043695e133985a80f642be6664cea83fe5905743034e46d160b38886e07874fc9daa542689d6be78bf0755ede259cc48998e1baa130cd0eb21458f71a9c7159f517c9a0f76bb26cc85c868c7ff1155d43523f4fbeabf7501417c035072877db9888032c5dfae928b37d7309c30eae25c70033446ee456f4bef008d0b42da527", + "063dbba46fe0383773b5bcedcb1be5d733c4e02a837524c1424828ac46032ee9c704caac00797e1e1e512b4774067f75a32a65c6cdb3b1561670b710a46367dc6a261b8a76b6c4c16d55512a6e7b1f2c6b69ec23d58babd7c1a8117519f3354fa8dab553fa8740efcae136b5571cb2861609cdb089d0a56e1ffabfe6875f249c4f49aa3944b4b6974fd41a6347e4c45fb396044c2474815ee01c6e1811a4869f7664b5", + "51990a034f2d9caa6c889b7bddf97a418b6c21c3a9d0c60d0497b326c9255af2880ea45f8d628c4a61ab489a2813981b771259398189d77eb03cb10958d2e95a0368f59b7a5576f36a7bc6a9541ec52d6662ac49e58a08bf11d615d131c8752080398258c2ad0eaaa298ac2c07b689dcec55168153e8e11b3ad33587a024636694e4c9e5384abc65a892cb", + "0416190f9f6aa69f6477a65acff3df137d96716312645e30cdd7fe24dde6118977f9b010e0e9a84a0f172290b3acb00cee33cec5e5e27ea88ffa93668211429fe1b1f9d62ce659c4027b9b08ca47754d0900610740c3ca389661602dd602b782b8cfcfb651ab899f0b9a3d5b3ab91dc57fa3514af98d02488953fc05b71d8b7ff3a2a8b5110af2958a4334075adfcc2361bad8e115c4271e5273623f3528c53c148fa0" + }, + { /* i=6978 cDividendBits=2947 cDivisorBits=2796 */ + "0252db853364379f6a5e48a2babae9e2ca9b4566dd957ffbc7134f5c8ecfd9d125b83e4a7b44b0c1b0c4468fd861ade89bb2b7ad33d5b6ae8b5cc609a873bcfc143d46ad06659b5c4d3be700b1692e564e13e9d78a081c0d4e73cc23000517c761dfb40c275b946f0694d3c22067650e2168e2cdc24f2315b8adbc20424a3f43b02a955b7bcdde5abc4853eaa87a43c8ca13f97dee7da83b99dc326c4a5a4918eb0ca0df75122aaa4e87836a56aa2da5d1c27c6ece062c71e5004b679335aac02ed6adbfd4fccf4d2474b8107502b9bada5e5c7e331a3d11559b8f2fa0dc42153d9374f3ed159c1930a6d049c14e5fcf3b9e511a17da7faae398c11c3f846aa1ee8bcd4797a42616c252a22f37897cc15373b38e92ade4fe0259a9d890930dd398e683ee770508a38208bc771e65a72f34a1fc0568e1aa3280501f28eac5dc2872d4124c1e43f398a53104a4e5f46123c6a91d1d88cebbf8950ba5a3ee1439b64239ac0818208562f88cf32b3272e8c6d0", + "08386fd03942baaa231b738a9746bc4c312f9f0184d43b209e6db6f7b495eb6c720f366d0a1686d03d76e6f47bfc487c2dd0de18afb4244be450b286057ebc5ec6a31b7aa4c8b06dcaf3e0dc50dcffe4ea02140f120611c039086055a0fd9db81fe7f3a2bd453626484700efa3a493932a9caa994ca5eb0b4b64019ef023ec9c274af98ac042917d1ba9b26ec7e23555e2382ff177da85f80c9cda1fbea796b3a3c3b6546e42a6de4ac3118b20a04c713d1e04b10582cb4723bb134c489348ecb163792ab13227d4c7eb8701e5ef393d9bdf3eef43b3153a7f80418dc3f6adbd11877be18e6c8e0644b23169a3641d31fea4655650e10f04a0a8d76d5b0b16813da8390a428665717caa299d4383e4320bf70d0807d9a910b7603a88a00d56cdd4be3b20ad0b1fe4417c94a2c8e769aca3e1b50194443209f38a06f01df4ca4ec232348fff707ccb6c6bd866b209565a65024cbb4d0b050292abb999d8f0", + "485cf29ef6d38d54f7f1b5b02bff50baaf17c6", + "06de7c2fb6eeb3d91cb7a05f2c239f35014da44bf5492d5c03cb61847596c5d9748cbf34f2169e414aff0b9004396dbf5e4e8d8bf903f7da0949430839f8b5ae5842e830fca9a1df5a35afd71f5a0acb3250a7e56dedc6815dc8e413136856478881483cc77e811c125a9092bdc1db57ccbadf81fa11b381596c630f24a443eafcd744a3f26f9eb39a9a9c4e3847d96dc88db5c207a85e1d7d7626bc854e56bc1b62a0fae49ea01ad18f1f4e0cb0b887d4b705673ec159ec8608d111ff4b44a91db91903124135748fd2eb3f63feb8ef8130fcd5f24b668f9a75fe5b9ed98f53a047fafceb8cda18020da433b1146f03ae2c480b872ddedbe85aad348d3ce19aad1da230b874073e14578b7669e3aeaa55fcda5cdd83fde390acdf0f9a922de0f3d9187ed3bf10495260e0c040cadcd496a37a90230c0a37d65216fa6703d82f125c4d603962c811679a53ac7a3d162447c155a65c75ba0fc9ea675d6d30" + }, + { /* i=6979 cDividendBits=1287 cDivisorBits=1196 */ + "74ba13be171c80307fc7c3bfcda847a1c97ad27e65e1ff1385af18a6e3cae679f759c566561f34d82e038928e367b2fb9f973754e4b0a9c81e18c5bfb7b845ed1308944ad76364e9950292db0862504dd482984f0cb319967bbc7b4e831c240ccb054b81dd1c025a2033fa94b7a971e954c901d8dfd1c6122bac200c150f67d8c0f35fd4640a640a6abe28fc5318cb71345c020fe77512b2ee10364875f58b497e", + "023a3f8f4fa5e1739aadcdad002074bfea9897edbc495b4e9c8a2df81c949e7291e59998abeb4c6153fbde34bc50a88b04caf052d49288a5f100de919f10092534b5d1aa6b224ab8f6f2e847cd270f657285762870d23e4ff05c0430fda3087cd96ded411a7f8c34ae334d7f17e10463f160bb5daf7cbb6c4baed8fa7388bffef2d5d22f7c28955fd7f9b762c23782515e08ccd4f639", + "3466e10cfee0630248f0f4ac", + "5a716c11eb7c745f9ec37d51f300a71132fd70ec1acac1c916793c598220d7128389bd4db3c8b6745abfe961a70826a492c53e7563ab1c22e32e8ef254bd53734a21378690b5f51da72acc65e44791395fd5a84cb9fc8fb6407cd42ada46d88e1523633b17dac74917b25e9cd1538011dc20647062177a0795bf664a4b06ad6ff9c6da4c536bc07c7e78e1f11a5d4cd2f87e578732" + }, + { /* i=6980 cDividendBits=720 cDivisorBits=58 */ + "57fd3c6534e64f21ebf64108cfdefdbdf77d168db56113c31bfff20299d336ff3c29624b954878e99d6c84c2a2f7dafd09fece8d2df084744d94bc9770e5c69915d5fdef3216ec98797c6b5764162ca571060579d3e6151dd5e7", + "74dd6474c735d3", + "c0beffb92fae34fe3adf4e5aab8a4c597bb2c23492ce50ae33f39cc9aa43c111815249a2f9f1a9cc666cfb9f5a21f6739aae6eecd3759d1419e9ca92909f5ea363092f7f7ee2c251f4bec7562c248c6d1a6acb", + "6ee358b06ec996" + }, + { /* i=6981 cDividendBits=2700 cDivisorBits=2235 */ + "0ea7566122b8cfdcdda5ea33a3a47f11715d74bef772ecbf1b201d60c918a001feb940b5412e5c4463a47f87dfa8ff43e1cf23f4e7fea2ef5f63be15b6795da71a9ed08a5e1f1b60b782e05c6f21481402572d4a3b2e6805d35bcba4bc0b3cd7431afc8146db49622de0bbb5043dcb68aa2d6dd6290d1dbd12c19f0760ef636d6e9cba0ca503de7c24e9160bf697fcae7e75317d4b214f2b939de1b90ddacd331893fed3bb6a65205dd2bff83e88ed991ee641aadc36ba831395892fbb7bf83d1964370e63324d36b52e213b5ab82ed3025f0d1d0c7f4e59021e9af54b8d75af11fb15112ed3d5489abb2a9ade12d139b80bca8eef3bd72fe08ba3d605a30ce5d6a556f91a0e8bf5f37dc19f5f8c0bc8a0d5a6d67c2a0736acf92fe66b87cc5593af7259d5663da4bfa79084517d2a944f38ab1c79c23100731942fd7a40cb3146d42d191d0a604521453fac2c0453b25682", + "077c6722b2020a6e955bd02c6acc2ebeeff4ee9264799afb6d67e32e6f89ba333b4345ea6c7513eb9f86cfbfd3c01d8ca1a752afda2ea8f622edad42dff9ceb371e78c27dba979ca479fdaf9f931eaebca1b7fb26d7895048ba465f48bd5329c2199dab3e762f55d55c63f942f982cfa839edc35a3afe300967142c20591ce5a2e55a424e871171929e16f16192d5df83ad96a29fce893114517f696428339fcbfe93a90c7376c5984c33060fa2f699ecb71f4f2128ee3c8a0dc588b7625c74db3ff0c0bff2ad121b5e6b52cb391647d4e8ba155795f60a266340155ad156916e7cd0f9712af76c08f5d79d0b147b3514de7c62d50312bc65720db6b28f03a1ed0083d1410ede58a91d0b45d70e9cfbc2f93bc93b21fabe0", + "01f51dfeaf2407ee8fc3a01ef9ad34a843fe8fac96ea01117b07946a41b50b3f804fc70d6aa3ca7daf044648df6019abe9b75af9f18652af94368e", + "06ba99aed04208fa8e223432b220076907ccd0970d202c80e2e43d0ce53a83ea41869b3bd541fcbf9c8c8119a6a30ba01ad2339934b84622d28ed254a213e154cf69a7163f3a715d065004d459d4042776ece632709f42961b86fca3101f253057c7693f5cb79b346fbacdd1fd24d89c9f17b96ae2d87419c1ed414a044d7567632e3012ce6538559c0aac493218074dad451ee10303f10d6da0af3f9505998b4b017b5ce7de038cd143f8db60e0104a29fae05b6e246084e097b3d62dfe063a71cf0f7da03f27aa38fe19cc6e6d6c6e69c8a31834585fc2608b7dd40e312ea1a3592d2091fce72584a93176d35de4a688a44c0371145255b65197bfe1886df50f7546e9a0d9720f5931c7c49c3df43e65cf7bf75a5fc042" + }, + { /* i=6982 cDividendBits=1924 cDivisorBits=272 */ + "0d64ee5507da9ea5fcecce6083008e7279e16a648cbb208a3a86c8b456c0d91010b4bfb956acb87259fb6ae8b4d13594518bac2e7fbf997e22509e8a3647ee2bcaee63b42e3d02ced8f27a42050a70439d090e4dbc746b7963668e12c0975481abeb5735e40bfd486d46880c9778045984b9898de7971c178253f9c7bbc79d48df5ce3b93e0fffb4924333d549928c149e8b11f684b0668d824c2214e5a06b0028d8bc4eba1fb07689737390ab2f84fe6cd746a0d92a650285c062efa8c06253f273e19abf25506f68021c2cffc2fcb5ed15fc068fdc0b0ca16b48326e1e562f2beabe70ed4d83ba79c612a520ad6c3f63", + "0256cead606e6451c1dd21605ea6869bcecfeb6d443f39eca9f458e01fdc9f776ac2", + "05b9ecab253f6739c639c250a6f0b88053b608d864e97396e338b7e216e43956e60fa7827e244c1fafe352f9b7c721b9f6e2ce2c037d9e64a313309849c9e04df7226fb62351bbf394a21ad18de444a939911fc1a0b6ef8c3129f386077280e4a4ba627cf321e713fafa5cec5589257468190c06d04672db560021aaac0ffa6bc843d55728f0e5c44977c592894784161a69713443f66b715d471cfb7007f1207cba753beda8025f55031f4ee354109f7151e5f5d92f61e33c973a98b1d2a7fe71a71ad4b8e2c34d96f3526cd2f62258", + "01017b3f4448d2ad6a8f0cc46458fed31da1ad31c60fcac343c2534203f045c5c8b3" + }, + { /* i=6983 cDividendBits=112 cDivisorBits=14 */ + "215cfe7a074a796e6d124595d62a", + "30b5", + "af5abc646c3529d4899a919a", + "0448" + }, + { /* i=6984 cDividendBits=56 cDivisorBits=52 */ + "61f4eafcf4e1ff", + "01ee0a34da2800", + "32", + "0176ecaa5911ff" + }, + { /* i=6985 cDividendBits=2143 cDivisorBits=1873 */ + "323705c73fc0a16dfe7f4d2b39fe39cc042e01dd864754d0947f655e05ba6a22ba0e5ec20c6e0576f824457990905ff18cd0a4d3f325deab5e066b8583cca147cad7c080d7f85b6f4d009f6715bc451a9ed772d9492895f4e1bc5b153cf8537944dcdc137c7340177753f506f9a6cffc065f0d07a52b2ec11873f94df519723c631a93c8b9a31cdb07da307a0c22ac0f4df15ac7e16f8d94381e529a94cf11b965ec7024a04ccd0b6325bf66886db05e04ae0837deae4f0a9d979fb3f4af7a54d5838cb4c9aceb680540fd6f7bd0adcadccdbe5f9b8a2e5bbd00a8e92ff6040410f4a26ecf8f8a08cbb694f34e7ba2704fc698140fc978e4f6f3f4a56eae14cde0fa6e919f51ee2637dcd401", + "019cb557efbac3974f6ba99870a799556fb88eaf85dcf5692b4827abbda0afdd338654650d77ef1830eab94a86411d73c4ce77b3eb3c1de168007185e6cddbc7b257a3cd72ae377fbcf285c6295839cb4cad4c6095b456afc910caeb018328464d87c5e273c840a0cf69ee51090c25cb53b9f76ecd36eb16f3d59f7df316f987522c82c58111c46c2ae11e31e57012f62b09fa2e1eab132b1cf21c286937ebee79b56f06bfd077114c41629ee438f5763833e244f521a217492f173b4e2767b6cfa9f3e84a81540199c24e41bb9878494cde626e45b4400c1d7da73deb6a8aa22615d3307370aaed673ccf", + "1f25e07f0ea06fdd73e39602674759cfdeaa6f581824f27f4d2b8302f58f110ab13d", + "013e48469338a234058865eb0605d06f43bd9a3b2b86940401173987ed910f5aad7ef98a52f38262345aec2dc79430a3fe0b15b908eb415b636f8e2a60e677b8360e11d8eca64f01d7d4dcf2ae51a2353673d0459039ea15d61dda74acdf3b65e4b59ad28aa530d0cfa0853d2bfe48e164afd9ea4bba84cc4cc5de3b7e0060779cecde7fe8e2c875cd02eb727a83396d69cf4911920ea590b5f50a1e80a8f7efac6c1e007d7ec93e9d58fc14e4eb4565801ad663a19756848d45975837fe5e0c40786d9842aacc42bbf89b69d4fca74fea53a23b0cf2f51030e83239438fe75de4fa61b1fdb394262237ae" + }, + { /* i=6986 cDividendBits=2697 cDivisorBits=1288 */ + "611709e60e7c71c371ce22a508240fb15ecf69d9a1c2c53c060080305a80ebb03cab047d7e4b9ba32e18581338c47f595367193aecddb3629c05b82e61f8465ddd802d9e9110897c5945c9b6993eb3b453b61ce0983ae88cb74d07478469a37c8c94c65bbb338ce5ef2276cba3b2ff474bd3c416a075023859a206449f5f11f6c22a993c47ac2f7540220464a180831482865f9e615542c9f711069e977b351859819d7adc05cf78cc245141c914c03973839835041c615352a45ef4f0faf68b7bd13bd9b634c104d5661ea2c19307911fd059eb30fe72aea2f28579b3ce94ba98bbb9393158b4e3e67f1f85495729cbcc629be554367d8f2d7841a695b8f94dc501e97bb52a44d9bbd982b6b87b2b47f117a6bb3d00e5fefbab1acf5afbba5753538e7f1afacbd155598afc6b41da7b576400cfa1983ab22535de7d911a75bd0f19bb2392d4758ae8db5c9d52e154ab76", + "0774c7ca264bded259302159b7e392dc2cfb8de531f5a949e6056603f4706d9865eb9d640b64edb7aaec4d40bf3381b5c632f7f979bfa24d82ded974df67d99300910896beec154cfb66c6aacb376276519f8a61413b7a6e0fefeb72a0f9393e4d2b379e9fae5556b3f873faa92428d43b7984f29aeb4b6a06a0606497ba92768af180c6e8efb18d87762a3ffb53e652fb65ac0dbc9eea7c599a0198140b67d6dc", + "0d057c05af6f203e71a19de6aa5452b5aace68c378bc6c3790879bc0946bb8816cce30199f8dadf4971caf5a3d00630e2f5997e3031840752bd91d4890a6b71b00150e0d0aca03830ee3578b6c0924a8ad5b452870ece62c2c67173e6d3e8e5d27a47f18ea20ca0c3ea3596f19a1db73a74a8251d4b979ca0525cfb044c7d03ba414e27ba0cf1793a28fcb85efa63f27b468551c1bd8e8980782a1294837f1c22ce381256fe568d3ae00e240a1b1a4a1cb", + "0752bce6ac05da1ae75db1702f2755b551a930e3d5e8478a40688eb1f9f544af066fb962ab2c1f011cc5e738aa097b7f4474c2ed7318bf4b8246a54a8cc733901c9dceeced41f8c58d31ff9732705dc5e4b236f179f4322c0accfe28345f007481104a8664dbf8a80d927876abf21470fbd9f1547ef762c6a5c6e364d52fe257b88d2a35de90f833889c5bdcd81c6dfb2ab693c2ceccabbc2ca27d2fd1c6ecef02" + }, + { /* i=6987 cDividendBits=2824 cDivisorBits=296 */ + "58f9b6d19cdfb0614a7ef61ca42bdc154eae0e773fe5bfc7f4a4fcf3491908a75989bce319d6fc3615ff8a36f4b3c40f8d5d71a07f4d27e9c6d59575150fa49ff54e5452799297728fa18315583b33414486e851412f78ee2343f26baa82524fb298adfba391d93cd00f1ce5a76cd14d68cda055d81afe3fcd9f1989481954969e614c13853899b01c17501b5f5b1917e81074c48fcc17c6459bab79dd4ad996f771e4637bb784bf031eb1659c8cfe000d74633631b223fd2b2ddcd2eb5b225efe26870a0ca741d38263e85cbe205245d4339115bef3e7fde0bf6e53cdec47a6c1b75f0bf33b6faeadb08470d59385c4575e9b16f87d39fa9daa868216ee1d3a502e855fa685326f71bd255d61a9fb2b82614dbcaf02c6803e70399487afdbf4842d23990e2400238637f25162063ca292d0b80fd715a409f12cd11ed1b33d18fb836565a0977f2fb7812dd49905c40da0fa8ec181edfad10976cbc75b941726af", + "ba3e8ded13ed83427b2b6e320681d24d55cd07ce90aa6e0817822bfd8cfe579324d4668939", + "7a4cd744ac118575bf713fd26bda834e9819292b822db2fced72c4f48ca0dd3bcc16d91f545dcc6cf75b7e534f9d67b86e467bbaae869c03020771420be5169f5dab92b74e99064b45b0abeae16be286d0fec67d6205d25ba61c3cb521296ad7fe9c91365ac17ffffd3478c6291bddd38e4db9b472422d24d2492aed13849774abd5579aedb4b7a2c955bf5b01137a93393ff8e610d59c44ed70bb2c25503648ed423f73f78497d2ea7c0cdb276b1fcfe4b88dafb54d9d6034a83adbad571644c2471bf79042e2d6494ad79d8f6467e2b32525e0cc4cde1f8553a7cedc16d2304e712880bc5740ae61f85a70adf4ccf018145c171851dd387ccb3a39b15eeb5a184e51d72ed1ebde98e89cd7c9b8c8e993da454c354d9a1027bc40744ad4e84a9eddc26e3f97e14653b6bd56b31719d49d465db69e5dcd8a88438d9d", + "2c7dbc1184efb37ef443c8d181176122ce1136dd302be23822747d0cfc88b39352a5b599ba" + }, + { /* i=6988 cDividendBits=1456 cDivisorBits=1105 */ + "4677f01ae0b27f989aaa7acb8e48eda8da291363e985ab33bbc7d191727c03f42fb9e8800cbe9a1c929bc74722faa26051bdc87a657098faabcdd864d8b3d2b0ba8143b0f52568502a09fa57274c2c71c48ffa0caa09eadf8268bbd3ad47c17f6b4b80acf09e3ae1727809ed3467011bba3cfbec369e114d0060ddee87db7deca6e169115582eabdf2bd114806deea60468aeaee673842c39f0b43553260291a92726fd29f7eeebd75a14aba34073b2c855e6a7f5815", + "df83134e140aa76893602771961057e6f954c6a1d7810f96229ef9bd1d44d9bb2d992452a96854961d704cc5bb1494b9d87917d0bf840aa20deae78b344e524fca2ac9d5d9112df8da951f1f798809a31d482aeb7a2e1cce20a7b4d6865cc4404e40d4ebff96a52092fcbe691209fc7094826db4002d63fb0fcdb97b1ce9cfb6a3140210898c80697836", + "50b615a17f0745a2745f6a2faaa29c5d22ffb476192bb9ef9717aa0007d764fc2dd314fed2757e09e86aaebf", + "47d9a9a0a96761fed4c9042047754f1205221cd14d2c7ff69fe1fd2a11936a97c27414488f4924a40176f97ce7650307d667584a516b6016759790fab6301f89393f8770180d133e8285946979bd1e92890c7c8d2129f2f4992225e64528f03c8c5fbfd1df7d7914e4a313104881e38d46b00369003541adefe76aff19d3f91667a9813dd7c035bdf3cb" + }, + { /* i=6989 cDividendBits=1070 cDivisorBits=393 */ + "3b3315c96ad442dfb731d7daa58be5a74ffa66a677e8fc5cdd3dfa9a9ca3677447143848c50de510b1a08f32e0e929e7ef4d54a777a67071943b99551bd236931b4b417730e974ceaa11ffb67d688e4546c08ea07c14b19f52e11e65f48b623981af873e38e9b9a2e09ebcf422df18c5b5c595ed4c7086ff6fa523c96c758b12339864144967", + "01e7b645cd3a2cd75ab608023aa93619b3b7f2f31403c33e9c247bb7f231647be1ba3d352c585e2c6cdd09e9f9667bc4cdc4", + "1f12e73a5c6bba8a5b23f0a3c3bc29bfa1fbcd141f0362c292a06ea4c3e3f6a93190cda487e79ed163c5f3b69a21a96491bb63249cfa712f54fa6237e6eaa2b7c0494b7bd14f61959b028b98022d1f1e9f8ea3d4d1", + "33d6d100068a9065ee775a9c03f24c70959294837afd4c9d5652b71dcdbef6760a62cb66cbad47edc9bd87fb40a235fc63" + }, + { /* i=6990 cDividendBits=2005 cDivisorBits=691 */ + "1db734f9902acf0ddb3a6387546a76d79a9dc46a22ff2d135718f4b2c51e6fe47bc72e0e07ecd3035a16c0248d38afcf732acb35aec935896acb0b6f78267744867d78aa3633357a82db798b1df9ef1976a20d340c5251afc5586ec87cfe08a06a4ca83c109a3b8ef3cf6717aae0482f1eb21feb0d8042a7ca9c2b368879bf38c13143368a5b4fabe3348b829cfe9b054591393e903f6735d5a2655c16e2754399482cb12a7199a18baae16685b62aadde48aa8d1163decd413143d3c89ab42442eccf75a52f002276f569c406b4f46c50896fe6370f67751782d749636b7752d6f1c636c7b0fcca572f14521dfa2ed7dae869522397b8e2a85979", + "02f2b530a6b0251490b72443db6bc2442799d35cada02a78f04b02ce21a1fcb18720e9657899db56f5d8edd2fff82d7c23aaf0226d653e78157ee643d70ecf94f3e5b6f2337aa689b4d4264ec4cbd3606057f14ddc5d03", + "0a14656500e06e6deb1c0a36ccc5e9f320df635de2010ad2160f82541f435cedea04ed443454dd66a4333a23fabb7f7466ac8c732e07ad49047875e92b346365e6f642f2ea7cfa0fa25c37d6ee63db23557c227b3a2bf9b4f96d2e068fe5fd41f8b647cff9483d2324473ac41e6bc786639c01f4399158bbec9872f4fc319401515703b9df85b7c2e2f169d5088a8c2783be59ff1c8fc37a724cae1742108e828055e2415e", + "bdfeb70a2098aabc1c19a628b6a1c8e020fe27858f06d4deb7e5eb5450cc22419420a84b7b7103c1daddba61f6c95d1baae3f30ac89f133daf46f34d15efc9dbeb76fdff5d631e193234df7b9b10197a196d3c7a6f5f" + }, + { /* i=6991 cDividendBits=3916 cDivisorBits=480 */ + "022f5943325e7058b3cbd49560f8beedf2d343bafc95801f859c3af2823b74204c98fdf5e4ed7a7e2a5ef7b7e38dd2729fa3b0be4143a86452335680af773002fb5803e64a7c9e82417c46365e9d991a1cfac11630cddc3fed3a7ae4d2dbb7999afdfd604b558abbd8f945ed498e2292522949a8771f9ed61afa1081d105097087b3b27d31a7846a068f314b9d5254005e69db1a02bc76d70345c5a1c63332ebf573d1704ac29c6a052c96512895f1d25d6b08e316b92fd2da634b7b0989f5a76ab16626385ac5176c0437c2c237e5dea5cf99991423e4a57761b2089f74da83b38b1106b39ac5154fbb848523b16eb59eed8d6679c0520ff72c29cd846e80924bf197593e82773a1efe1f630d420ff6b430165f2ac1860c94d26e2268c5c6d33daae3f035de59acfdcef8d27d1a7736693d5d8cc6e04e3d3e8b28e143407996b1fbb489c0df82e4ccd05022cda1e2219781a214ce15faf93ce8196363b30238513b22237fa27324e48807cc73b95617b1776b731a1346e2454eb7406f78048045a7939e3f209d06c39369b96bdd1ddb6888019bad1f589dd90c10dece383bd5009fad72eb16b6b1d166b8a6413011e2e6ae41813be42546351ea518bf1ac7b9f74aa1802cdd870937e8d254a984340bf5ed5515925ad0426b2972c5e91bbdac904e6225b1f54caf1a97", + "5a85e263977fe4cdaf86df75241f7b1886afdcc1b0bab05e6e4ae026ec9e7e0dfe90378dc46ed87c278c9190cbd81f9b91349be98a08508530091e1a", + "062dd81f660b5f30f6af6e510d484d185c4e28206d1d4c06b5316cc50499edff4a4d8b4f89419f9bb01281aea035a729b54a7ef40c6f23a1b64d29fe31ec5bdaddf50227db1a70dff3cf27b871f942013ea0792b144a5976b815d9cc6a89a71ae75bcf5179de2a326b079fcb191790953c61dc32a24e18bbc51715013334172085a2e1601286f7288a437a8a394bf559a62fe5d1102c40da6458de3ebcb3b19ffe3134d27da585a8c4abe2a1d2244ef7eaaaebb5f40d5ebb48e5dae87aacfe2a7385a29c21a74a0cfdf204bcb37823990c6762d9fe7c2cab41a726010df37d8308850e0d56f1d6f13b2f79478f56bbcbdec7dbd5055c3ca72190209b58c0adb70f41dd638290bb82e215856c8a9f93ec6d342d92ff7c19c307f90aa2ace3a696d5e054ba10a67024e7c8ca5fd8f2c88b03958ac8d2188be2b6c2dc946247259fdb689a5cd78f0dd6f49d930eb45f18a56827a14a3703e2ab4f9f0375d1eec8826aceae052392860b4297c0e9ad523b372e75bebd79cc5b610476f80749bc6cf8d46cc9c3b956fe68beead15a0271aa957e88ece189423961d3e362699988b3c875012040ce96cb1c60b7c94b1c79", + "37230e2eda5c9b349bb08b54e23ec9520d7c023a6e4652edf051234f54c05a918e2cff4eb5316b019b0663bbe36ee290d818cfd8670691dc5d77084d" + }, + { /* i=6992 cDividendBits=1906 cDivisorBits=1231 */ + "03f5512a64d1b42b5688aa0343310713c96f9e685c2a32223bc0ded526782e2031285e7bbbeccae335070695856c530e15deaa2fb49a8d0e946c4bf721f8d59f3fe309c355b85055c01df8bcd8b62eef6098d955df7a7d8fbf29c1dd9ec8eafb39abe39be6a009b3b96ea465227285c78e82eae50776d159e06cf0f24d8c06e6e3d3f34868021d5539b498ab153b9ce0c360b521c294eab6c97ad89412edbaf6639ae40eb084d9e7aaea3cdefd9d7074f11614d60223946dd9f23877a5b3b12806acb1dbe1498d3e687d074e087b4e170a50b0a834841afa647218a9092b1c385f940205b3242abc81692b63930fa2", + "36eea898b7e3eeb460a6ab346150f7891c90eb4c0903ddf94840b5b4b2446386224d98ed0e1ebcf77e051dda3b116369e76273906452b9eb0987c71ade52802e374dbaa8e0e239049c8ea2214653adc33f4a2a5f5f1ccbdcf500d546ea6c2b5cd018a4f371f1fd74c01a22e758e3280e001ba961da979e575d0adc5cd259b1af519746e3e2864c4b70f450eb6ed5dceae36d3919bc14d768f1d1", + "127258b39a089082af0b7eb979b97aed74478544446643d556daf6c538e7b89361ce977fae4d93be6ee592e9e7ef74b0f1b02f9f12c7ec2d4c7e8ee2ea90f4e13d659eecc9ed6bf7f008900efdda80a1b6817f8afe", + "3490b1902969552491fea90c94693b4d05ae2eed506528951c6d9edbdfa814a6d5f51e2919919a24844e8569d85b6e9ab1d2de3abf4625d96052761cbc950451649eaf466b7f17cff5ba87196ebd2e906817ac17f2485b3e70b75bb842fef6adb229e3d86f3ec4fdd986a998919522d6b2ebdbb948d259299fd3e28cf58d90d389394617dabba75604b7b720b41a9a27033d5f8275decf697844" + }, + { /* i=6993 cDividendBits=1481 cDivisorBits=1380 */ + "5aca9a6c3741cb16fbff3bf71bf6d7aaf4c0aa69dd5e882a378268884c544d26b27137177869189dfbbd8a4731c156032bbab736e9a2248ac4e123f60c1cbd0cdc22a6d85f7c2a6be32aa249e556ae8ddd818c8a33f0e4bedc285a2d780001dde565da75313301d538dbf40ba46a5ba17895e56ccfec6824bfcabd0d6deb906cf5b4f73ab1fa5ec08a39d6fbb3abaeb61bc9a729b33434eb07fe7c06e374b1d78d5948e07fa04449977f817f418a5a211f25315201afe4ddba", + "042be938d34c02ce3eb3eafb0701f54bbb5b08465b9bc39bf06eb0bbd106015523bb0fc8c86e3f9e25b04368f05fde185ca371471f072ebb37f161b165907fef81f63122624ff17ba4af7648191727d453aa6b25e765776f967e307f137212e5d189fdbcf36a48c0ab0bda00a8aa302ef21c74871ea37193b34ee82bbe843aecd2fdefbaa3b58388cd7a7b6662f2dc15ba50eafc8e5ac561408efd36f7366026f8c3f0642bc318958b22bce46c", + "15c3b99200f55e4e3b22e6069a", + "02efbdcfec9738d8b5be312b872e1b07fce8053a88e88f39111dd87302a8a78714ac3e52f3d851a357391b0c4675e7bbe0cf9a1d211d9c76ef33a55df2774f60b28e7f9209f85d7908ebd1b8e462cdf68bbfc586ad66cbce2d0a42c5080d119e120602de6327254777fe8db7b262b12fd4815921dc98a19d6ff6e9db294aae11436a4c7bab6b1aa054c6fb18d58062558d017d2aecba63fd026b0d14847ebb98e4a44850a8947e408ecbe0ecc2" + }, + { /* i=6994 cDividendBits=1290 cDivisorBits=521 */ + "02c18a9aa5fe6fdd7a4fe16df61a8377c804ee6b48da8c98067c052ea3724a6bd4719e8254267f3f9e42677e7ffeb74ab5b1a354acd2da1dddf5839d88853734da97d0e7ba3e65c92a1cf03f4bba7ed6f29a92f2f0073ee7d6200ebe58a913b4c5a104949083908e086e796d0f31378b325cac923b648929ebfcefd16a3a2ed9393315864c421b628f42c1f9df3f993d18035a37b8389e2e0f636ea6d31ca1cff8c7", + "017786f94b04f4b9d33a4b39cb8d3894c2f640fd867bdcb227ea4c817dbb31b1d2b3aa4d1e18bebba265885bbc6c373d14996566fe5ee6ee64f2e067c881087ee239", + "01e0f92eff5eb693de74fe27e9ff3de4ebf743e2882e2a9983f027924aae54f64b5169c830fc85212bbef41283eae74b5bf747b07bc1702f515837ab1ed56a83a1a607ca69356a8f0e83f9c8dc58e66b55e2c63bececbb998baed4b195b343e8e1", + "7a26a31094b37c78ab92778412f979461c3fbf37b2ce871fc6e36b270055b5e1e2b3d4f4268f6a12abd769cb53ad53d03765311ce4024bd76fb18da4711d5c7cae" + }, + { /* i=6995 cDividendBits=2147 cDivisorBits=825 */ + "03f35c2d421bfc8745d111eaac3f853fac9f5070a095b4cce4ac6e197c72faf05aeec571d29eea9bd3bd70a6e802d5de3225485c001fa1e8afe70bc766432705cb0b91e193d270faeb86af018cab82e6f223b02f37b123228b5f2902e81a7c66e630885242180c490d3ba27d64e69475f3a9290cf4ddd10e74a3f9d44a803e58ce7f813bb8dba8fd31983eb8072ad0d1648ca6e4131639ee7d072ef5dfac6c4e2735b5ded5f262741cd347cbb96f9aaab40579974b371a47174ea550e038d06e6881b7c385ebd89ee32ce47a4a74bd40a6eaf9cd21378067d1097314690cd96baf1b64685ae9e0014cc108e8027e75dbd846ddd61122c608457d4abb6396e5e03404151d8c40abe2bb0bea1b65", + "455cdba66df85d963e9a62674cf42e86bb3d8e2619d2e866f7d64e75c4ae36694c8ebf035839d9a3ba5f2ff74d19800f028613ad81d97cf966717b8537f1bbbc80d3a19c1082d7474aac64097e2a5d76d1b16c4ad035ddc49f5866c6b96ef794730ab41f7c88ef", + "0e94ab8cc8b11f8b6bbe6eedc1361d276db807702a32a305e1235625f170e7e355ef04874ad1187cb8a0e6822cef07df4298f43d2a5e4519a9ceea9e4cda6a50003c486e74c943e6192fb1f9ea040be6998de8783deeb476c1bd812a498a689a5e1b7c1695ce3c76565249f27889ec07ddd4503ad6f1b42c891001cd774ed573ebbc849414d2c3a2242f1a19e850a012c77137953f84c4211d7cea9a708682d11b04c50d33f9", + "30878b759ebe2000271a2836dd163291158ca6109e559f074af333eac12da99f8f7994016ed93a0393331d709388226aee7a197e34b4df328af5fc7f8f701dd50778f63d28040d4e7e56a4c625f7015b45be524052a69eed5d960d2af771a400c1cfd3bd5e4dee" + }, + { /* i=6996 cDividendBits=1144 cDivisorBits=326 */ + "7cfe82f477c2cc8de9e315a929887d8fbfd17bb1bad2ea3623fb2cd83d3357057f75062ab61358ab67f292029485451ac5ee4c16e4d5639eeb6264a4dadc0495303f704ce2c7fc8407c7dc590a8c8f7dea0c9a3afbf256d8d1eef33141c8e239fbf89300340a200580f9cdbfd1191aacbc5ebde8f7beefbea5b987d003592d271102f855d5edf5f7154f5d0fb336ad", + "29f7d9d4c0c641f631785396c8344d7dd1c7ae54ea456f8dfb4813f78e8e7bbdc3b9f0be1508504c7d", + "02fa727b317496164aa49f9718fbbbf49083661d162dfa0613bee017d5c691bbfc615a066435643f42aa504b413dce3e83690f94d464703da9ab1f36d063b5893ba34e0f597f925bc8ae4a36ddb35129dac511fe88893230c4f5b08a258051c7fec477cef2e036", + "140c72320b872f74ef86b26439f19db1f41f9f13020e05ec91c46fbd00348e509f147f141727abb44f" + }, + { /* i=6997 cDividendBits=3219 cDivisorBits=2787 */ + "070470eeed11d6d86c31e47ea93eb559f006cbac2cbf7802fc75ed899705a0c35c321d7c4526b60adc77db7bfdefc8b44a8de3159cfcbe8fc6b839550da65e4483d664d90c868c0a1739f21d4e42363e2914b5aba14af53b63bb34ff2cad968000adecfceff8fff8bee74a416d50795b37a7f50ab3e9d72208ffba7540135c2159eb39382fa20e95955c6f4d0cdb69c61735b023f5be64a1235256159e8fd1331031a73c8c8e82bc04ce3ae1455cc3de50410fb60f03499e6d70245337ad59e0943a8d0c978b04e7d74de7a1fa7a82c98543552599b7e496b1015d72eb9c944c8083ea496431f93b79746f75b5ed2a196dcd9584f81b699fd62ff665760f3bcb37128a32162e519acdec1ab7330eaab09925f632ef0d002f2596ba1c41c05bbb0467a35f859100faa30b9ba7c868a8e37d9ba82068a0a32510459425c363e1a4db04d4ff8e239b7d3fcb5e7b71d92a7975b3d22604bb2083911235c7bf3b27e9068b3c76bee8bd474fb3bb941134618c4e9b86dfac6d770d8a7d19edd66f7733f16c96dca1faa232f58525c348d518e77cfb3a", + "02d7807c685b732e5f7972654d0bae15a5382d31a93499c6f519d47c5849035fd8ebe6a176b0b324dacfa97cc25c9501a392f00bfc525517657c9aa153a1733e2906baf844af471a2060ddec45d9dac398738367509da2b60e9f832ef05db39b7d776db1470513ee05de383af96e67d9085312a5ad928d699292b663556a301efe879e924c244f853cad79a59abc4e593ad16149c9dd3a587182bce024f78eabef57f57f0f4d326b94a93849d2312210ff5790dcf861766e2c187dc874b3e5b4a34a897281824acf86db39d72a370007bb1c271e3f516e2e259208e1c57e448050198adbdeb16c054f62396a9d42d4daec2e28cbfef0eeca3bc0c75c98c259531735c7d8f9e9cae58a1638896bd93e8124501bbc2c51fd76d1caab1e1d53d2afba205c05077626c5cccddc39b8ebb343ee4a21a40df11e94171fe7022de94e2a1164f7921ac08789a3b7be0338ffefc9c10247420d595c19d1f964ffd4", + "027825e907921ed49c396e88c8eed332082c24bde0365d986ca97b9e772a5a182dd4e73dc6e40e68811b8513d785bed2a0264f19c9cd21", + "0246e2932f342fdfd73d7e68580213eef0bd6d6ecedb53ecd7cfbe458924f0c8a66d2743da97c9191f9c86d822fa94d220dfab7b9c2ccf3fbc710e24b6eb913e0fd7064cbefce909734caa83873c1f10b4db00af785f7da27fb2dc5c7f4e761fe9a2424ec1da85bb1386d3a1d76d47f70d44b158d38107b03f464fd72131764882f76434c5a5e002850f51b7acc31133f7be9da0610fb41b512cb0045ef6fb735befc72cead692953395999be6556f6064e6e438c08e54832d7ea88b282678252ec9977b3fb21bf4d3a6adece10b0baa9607ef01d420e5bda105c8e5298b2f8b6540b067c136c36f354cb006c9890289455c2bc6542a35940792d6aacc830de10432aa3d198b514c83ec7c93ae86d776c0c5527d67984871d4ff2150a71dfd9e187300a8d935ecb48f4d5b9f04490c3f337d73fd359db9961f3920b26f0752058c3fc38d90b1c87b5ba9984d4a620c6e0ae3af49e3f5e0449d4f273ce6" + }, + { /* i=6998 cDividendBits=3732 cDivisorBits=306 */ + "0c69cb4ccfd9c3e83f025a822a21396b5a9195e18b81763e54e15201b0c7d67e837b428b10851dc79e227db46059218adeb8e27a4f39c21897e1c4745dbd456b2b81ca34a98a5e887697a741199d49c154097edae75ec99da2aa6b9c5af294d1d12710e86ea7229f2713bf23f017c7912f3fcc6e01b6b1a682b9918ca6e63cec4defa601fa3f582f0b91fffded21141319f13dd159336ba2955235900296aa32641f2b18f41747be6191dab71d625884bf0aae6fe930a138e9071b49fc91a07db5e03454b4e29c0766e8c0ee904c7b398fb5cff5a67a34abe6d426073e3f4d9b8fffe7801de13e2fffd62f06cc44b6818525d35ce2ec0ed2c2563fb212a40537a3ce3a21d8f91bb6f7bf8fad81185e4b9b93eed694dae42ab309d07d6e786ea697b1ac8470a30b044761583554963d2f4cc477b9266411372f2fc0c8fc305590e8f8286854a6b95a36c23a5c453c2f71b4dd18296021087ee74c78a0dc90c9a37d9f62dd62cd9edbe6cbdba58361e009420227868136df38a75673eaa303b276cf776f91916e83b59c19a95a976bbfedf03e111842ce8c681df1c02cb52a7cb4419a47cfc99a5425bdba397c4e31184a41486427ec3da5a827fce39c86058c5808eaee399e8e62d827b5655964e258be56c24c", + "03264c45914d922999c9e7b7324b366d8a1ed7232e898e537096ef60c79022aeb34e9faa627a11", + "03f0f3843c7049651cdf0bbe556371884580140d408c1a88597d3815d9d61db64b8a1300da7efdf0d08de466a5e0b621e07d41adf6ee57b52d944727e28454cf1070fd4a418592a4033dd4102f959184d8f8cac41cfc2e6baa76ab6e0d897e014dd48f790832c8cc50a73770fe04e1a931d21a2dcee580e6c5dd4a7b386b8013fa619ad0d276a9c79291e959f27ba6745bef754cf0a4792e5122115e1c70d306ec808ac21c02c77504b434a3fdd7b58385aa86696400010a14eeae8bf463608a1d90caeb33f9e0f11ccefc3fe865e7e9b33d35d157b0e7e5be8818d3e5334f2d176cf1280e9c9a3a99b52fa344ba9d0645c74e5960f71f882fa16c6e879b45aeea772c54e8745c2359b96580537d53eca30df3795d6cf419fe62ba77249f826be811d07eead35bc7bc96cb39e0f6f9d268c0e2d12c03ee952b17ba71bfc2b4bcebd6dede38ec1dae7f532e0acaabcc8014f04e7a748d4bb0800203cf7b24e27c00ce067a3b709a034db1769f9b2a5d4ed22a3688f559870e6a30d1dec5c152a6ef54e0e81a8b642cb45da7662b810ffeaa6ad55d1eebe81bb47341ca3640582661c7876e2d2f0695d111964234", + "0162c5c630faac006894815ecebb57903aef0a406ede094938bf22fba343cc8ffdd34d17e794d8" + }, + { /* i=6999 cDividendBits=373 cDivisorBits=101 */ + "1e92a9af394ff4e68b08da1e6a1e8eecff515a677c9a0b2a7e591723167a6b7f175bc2e41f2c174ada7057a33b81f5", + "03dd35ccf18741a8200eec471f", + "07e97af4acd4d94a3b6a0cfa5e0c9eaa078b002f745c21c00715621897266867284ea6", + "02b3905b386c35c2e16281f1db" + }, + { /* i=7000 cDividendBits=3052 cDivisorBits=469 */ + "09c8d318c7fc8ea274720630b07739f5ed1cd4c911f0a1d1164232e3e6eb4a2c9eae22e8cc55de08ef83699cebae9462efb1c68e57305ed177ba146597962c60270081bbcb2006b8978dd86df9c2cc8765f0c18c6b2a7b02638d0331f2d0383c6ac69d87a776e64228edb1044f2fd7bf6bfa67a7f6765d8aa473c10b4c3554fdd38fa41c95ba75aae6454b5eb9635c31280ce54c4f2cd6db5b87d6de8f472d6f52da9d475d597361527a257cec5619de4c0cdc8e70d99752bd7a6c4f45eff2c2d3a9f1b3d867117fdea97f8e89e2311915abd973f0b16d1fdca8acfae1da9d73aa614363fa83f598e542615d0179946e154c10c546a4bcc3582db18e1109f10dd8b094591cb9a6e4e14b1cda9eaa20fb73ad8ff04aa15e996b92f7490b70307f78a49aacbc3c975bc206253502535b09ff1ccd3ab8fb85574f743cdd0929fa46f55ba5e9dbd3c6657fc5ff5f04acf63cdd37a3569c97ee96c88d2d14505440a3b5e81badc5f141098b174cdf00adb4297b3acfff00590ddeb5ef9f8856d0", + "1eff9f0dd90e7f11a2eb7d4da1a87c08c50d07c9e2b6613687d1e581e5f9aeeb9481327a0a9997e561a700bdf410bb7cebce6947c603070058cfdc", + "50cdfd7fadf6bc654202845fe81234bcb43ae6391818ad845a6ed70c64bdb93f42f2e8d7adce82f06aefcc343d16cb804513cb5ae1f968c05f5361b21bcde0249833a435743d6410f528af37d90220b9f3a0f76ee205b57104dc843d07c367fa971001891b901806505a7b2476fd4737b61fc0b0873aa2b9ada8e13dd5e58c968849a57c14180112c66b40ea3c0b5883240bedc489c3ef278ffda5ee57dd29997fdef27b20b33660b85041d5b420ea72f474e5486fdbead0791d20a6eb4ebe8d9ef80c0fbfd6311b43db94da63b188d2d3f6c6881c7957d3f10879cd1b307a2fac0c0f02b4a7e7a557d708cc51a772602149fc3a71108c4c3ba0afc89b38dadb0500f0579fc0923afe3c0efb31805c12867931d4ba0455eed75ab335c13e895a0a1631bea2ed71b23a5fce1108e9388a0ee993a890d7dd95b93672d185e147806b7352", + "1e1a05c962e22041925b7425f390ff5170e029c8c95ab02a391ef250ab7c32485cc7d6aff8572c793b1b023878156494f8f00d985e0978bcc1ee58" + }, + { /* i=7001 cDividendBits=1031 cDivisorBits=973 */ + "05a8302d339661de7f464ac71ad30e9be474f6c2e8785662507794a824c9a3b6eec66bbfba01f328af9e59250021de02a38ebb21f561382b657da6e01beb1e945dd4488b294a84639e456695d24888876a8664437032cf478533e3252c4d7d150e054941204ce785a889e5eb5e9912ccf5963c3dee51acf2152e7d5d32a8283262", + "15ced725f0e8302609d2ac523c3ce304c24747f627ac46d0b5ccd4c3f1c17bfa09ad65f4d1350eb943017b00bc72e4e125921d3988b6cb11c0cfdc9c2f4a83d5a6f1638049166c397d290525b91fc673dc31da8b75db999782e28d4f60af0a8abb44c4a52e2b1c065e97d1960c9bbf7fc651e72a96d8a5cc58ee", + "426807fabe0baf", + "03b8b94ff4859992ba7ebad701a1144b63c56b37b856b3e6322211f0fcd4d0fc45926093dbf6aeed4b97f740b6174078faf99710eb62924b0804008a3ddcacfcc258043dc802aff46a02b1ca4c106e6a2ffc64ca241f609301f2630f94d19a8f4b4fe8e4309cc2ec8a7f2356ba993bf8d047531d34f51d012db0" + }, + { /* i=7002 cDividendBits=443 cDivisorBits=103 */ + "06721db7dd0439cc0dfe6789af812a78ad15307efd3d6272a35e688dc8b28c2e16f0fb09c1bd490c8c0a58c8571da9f8609eadd4a00cee42", + "3163fec1048393c7f764e16945", + "2168d5d6026d562678a348ec8b42dab52ec31c42a1e906a2239540707b0b460e59aef363a1e8b5266ef394", + "1a61574bf9e4ed79c7dd29935e" + }, + { /* i=7003 cDividendBits=587 cDivisorBits=364 */ + "0686217ede8d4ba02757c8925e27e9b92fa85c35626671ce941a25936b0a39475662691126e7c4547ad4c341c548b0993b0370d82fa87e6b787d32d47cd950a892139426f9f60e4c5e53", + "0c5c2d19c7ac44d7d0cb0194c1e84eb9cd412a383c3fce402baaff0809307020486074745789692f261c24e9affd", + "871f87a9ee2dbaafa86521cbe5ca4f5167e3a9f7043f1e0e7305cd59", + "08957a93fb95954c29416ee3f1e1018b3024acd1ba79651b7591373a91e63a082cd466a3edce33723829002f965e" + }, + { /* i=7004 cDividendBits=1653 cDivisorBits=1440 */ + "1d57d934f03e23f62a9dca9af1af7cdddea1c4e36c2b7aca9cd302423b8b20636016a469286673dd5d58065b752ae2f731c710d1e82eca997e9b6094e43521ad05901d5fcbdbe162c3ec48b7d82d6c8e7330a5551c3cc75280052fd35292c938a59f4260aee3ab0605c7393aeaa7c2f46504e16bd5aa5b0d1e6da02c594c5176c438dbb3241b5b370bae131f74d2d0694836c3bae841dc86bdca281f1ac47ef8c53790f2f11cbd19f0509ca40c422977f61cbac953ad6bbb2dd83ee71eeb12bc24162d34a8371435bd20f9a840f2af", + "2d05d96c36232b690bf4f1e23e35808971b8ec4b3279e81358132bb6fba8bc11504bfd3e93ff285b04b96a52b3b84bbcc8441ebae23dc016b12a02fc5299bdcdaa2818c69f1651f88f46260c7524f847741d03828b51648962994dc11a336ec2d1b6172c4a3fb57364b0d1586e68b8cdb4ff37b6eb8d1709fd82444ea34418e37e49b71753e4921533302c3f5d0d58b1c960149715a7833344cf5e7d5e51555ad924d3e02d7463abb34d859eb6a96cc8108e949e", + "a6d8624a6028e1a86812bbd6e13a0c8cb82db8bf9a1c1ffe2cab10", + "172335fd138adf73bd4826a08287950f88db6cb32eda0b9f19cddabf68e085e67d722e94a7016cca8574dc9b298a7d4ded7ad59b65cedf4bda1e5d5f5bea1034498c94e6ad41ee4d25c101d60b930e3fc1443fbb6d26ade3aa179cd4acd7d76d0d0a21f85d93352d46577d70513283e240043f33c66c0ff5e7d84daffce9fa23acbc5bc3922b6fe9378a1b1651face77e20a1d8b7e1e8799523a1cd0da8afe76465f5f883a259ca13bc25dd78a1b1a5112ea1ecf" + }, + { /* i=7005 cDividendBits=1651 cDivisorBits=1385 */ + "073831d7969a21a8531a147378a8c6f259a8aef479640f5a6ffae65c95d2b23c0a75a26bba1d44b95eed4ad3eb9550e5fb96ca2df4b5396b1da17f960df6e7354892ede8b8f18cf478a1b3d98abe9f7b9adcabfff6a2c8cab81107686780ea61dcac3e112ece7650aa0655038bd33599616e1f6c75371b6cef1442e712e37c0cfb8002f4f3f863615c51750b7ac4eb465127987a3297e9660dd62ab5e4fd0e2d66a31716be932a22e2f30801d53e9522bfe253b79d907b65d1ceabc2ef774576bf7bc1afcb621e2d0d803c92d54366", + "893e120a1e9af8cac628efc1ac9ba5bd5323082331c84dfbee4b37cabeef3e3dcbb0ef877397c93cce6fcbe311f70755b6a7cdd148a13cfa6bc2c49d463f79573d36421e8c53e2d1d84834b094318ced4be1aea3af044aaa51d1a8639f403c56a838d0d8c24c6901b361edaeca7247b25f4d0e5e45da12cf46a1036b60ac322f74004fb7e6d86adb11cb5277b1b1b323c0cd1cb58b8c3cac6a3b4d7b2901096a303035f0a74e37df7100208e60", + "0d7775a69c683fd8414f5cf0848dd6c9ec2390213d87a32c78ab0445a375aa0c6430", + "1a436200f5b0216f490f01cd26d56b250962c4ca97228d982a95278b0e8a530d901708993c8ca8ae7b363afb9f8ba0298e96a44a7e6a78856895b16bcac7e6d0e6dca22ba6f42ae74d11bb988b0db9d953cf6907be175e02d2195f5734cc3abdc59b782976efd6142188029fe71c26e334e024a7bef7f64d9d667051f3193432f1da962d7d5bb467008c7102439a55c49a0ea619811fa48a832936c2e1ca004651f0a46c588281a50d689d1166" + }, + { /* i=7006 cDividendBits=422 cDivisorBits=80 */ + "21f6f321a2568a52ebbf79563780600d223adc3df0409ec494eaa7184b28f260b8e05fe2b8fba4a5f84e98f46d7fcdbde3caf7f943", + "bdd23b10d25905280549", + "2dce55be9f634d82321d0735cb35934ca2646f97de7f05797f1ad995184608ab98462bd79a5c3b2125240e", + "45eef7bc5d01b57c6b45" + }, + { /* i=7007 cDividendBits=3244 cDivisorBits=1991 */ + "07431bd6d90417472ca37085ac5518976b85de5367a5a97d4d32dc803f44a9cec7506f514a7f36c42025323c6f3e905ff4682f580132a568b40b61ad2c036d71b9220a70c17d05533ac8372de879059063ec6cfb7ab6398f88437e3991a120f87a36ff25d8686a53f4ada89222c8496a7ec400fb98be6f4657e1c5aa9a580c2016baa732e1f869b631d34aa877d6038f67f8481479b2c51407392072ba0c70a5b2282de8a28265a5e9fd51a842179c6f7a6a246cce45b9812e06e88ba6f08fcd2c0efc9a4483441fd7ecdccef32ec443d470335f5cd6fe3fa30131e3ab8fde9ee4fe4eb0cf9348abccf348771cd020a34c7871ce54a83fab8a7e492f2fe68a77eca0bd5d364461c7a39d720023e3e187dc671ba69a5eb95d6312859fc1eafccbe34e6441a5680bcd11d945e5cde8f99b79a7e5e21a40bc4e908ee7dedf7f26eae600209c14a5cc1abb1b82ebdc1a0c396d48f22985868bebe20a6fcd39c54f018b40921668e379a273efdacf85d5b96cd5c7826a5f85efca1262311ae129f93651b78f5adb049a12436f3a9c95bd70fe4e88ed6182c0", + "4b028eec406b294b3fd007fd9b7d38555a5f6e8c368c968a443f1fbec5d7242ea3e5ccbde3eca04702c09999db4dc69f294ce43e0bf4e193ad8961f3b2e92dd121a908c5df14d940101088647ab3b182ef247242fd2301b317132bce34c85593343977a0f132c0ca4282e76e4f1818ac9d1fbc5ddf6ba0408d15716bda45c3c112e09498f89e12cc6d880d42b3de1b9c0edffd96fae4e981280f63a4d739717998aaec7516d9d6ecad23ce305f4e3659b15645fe31604fd882f5e7bb1901a080f3d98581416c34add372e563e152273e2660dd22662241460e6822bd6cdf63c838497efc7b8d25eff91264850f29c36b33b9760d57f717c46d", + "18c8e9952f36baed06f6a6bdce0c84219d7a637505f86dae21fd5ce860b840164626925a0df72a3419b7bedf8bd1ca318566b316ad81b006985f0a3c8e3b2d746d1a8f7b561b05c71bbe691ed69cca8c6a711687258474d8774a9834b5532f34b292dc7c40859444c1dd11832c9cdd77373ddc1847ebe2cc48960a1e15bb900f9ed260a9c7370fd4563d7c7b27126e76cbaf6e9af59dbd5677e0ff1ca3", + "352c24dadfee7bc1f838b8eebcb53098467791f6ca12f8875b4a4eccde105d4b9520c911e784d25078a8576764110fa239b5f6d7e2b36ca32162d9cc24acb30817d9cb7852cd2e185e960a08d715f0ccfaaf9422264d2e9726fa7ffab73384a978369026dac52deb6b31a87223ceb19cbd786bda8c302b324c8b522c5cf746a53139fbc73e02055e9b3b956372b289e11d458b223ee79c4d13b661302c98edb938248bc02aa2bd09188befa0e438e827c7469e6354425b8c65c3d8e900236688225fb1acbe7884cf4811e4f776dee83f3fa7e2b4168720b44ac82c5a6dd26b91a1e3e311f730488c92d426a751de13540779085748f7308559" + }, + { /* i=7008 cDividendBits=2799 cDivisorBits=2784 */ + "22739060046f3e6aef7671099bfd0c00cd5deb2ce3e37acd2a6c97a59083c6b2abb0b978de8b61ba6b7ca07c5ef27f6f20394f682b038cd81300ec6d2fd9d8f7080d3f513d2df404d6cd186de2d93662f141f842df3d13a20b6cdb82f951af45bbfd58ae4e7d70cf8495b1c4e67affba454920b7c397415b7d58ff49da44f7f2b5b82e63c174b1e5221b83feb3eb15e079692c175f7ad7c661124331013f71ba43183452b19a29d4eb7027e8dcfcde312a9631e5282967def613522b80da6afaf7c06a1d7e3da879180f384c1b9cc8b2b938351f7e0196d81173e73410e503486d1ba6e59f001c8335ba3ffde64d596dad265032fdf6e8bc844359aac38e9c9eed6596ae6e1941e2440ed8d1c802dc2b4541f0d8afae3beaac9cf36f56ae6783e9ac8527c236ba4fcefab9a684fa7f5331f25215c277e30374f7e6d7f4a172c49af1f3da8f6f1cd44a1050f6ad979e78375f3685678f3569966f1b55cea7", + "80c1cd8be87d469ea3525841e17627f935e1a70dcaeaaa6c395294776c9f7febd101931ca49874f0f6a1d14f75136339a5530c6942f762647665deaacf0c7fd7627ad91b2848e1fe92d7169680f10179141758072ae38bf9554a75edd174248618c09ae131500a8b0b8becf571835c27104aece569d96b96ac00d136c40e37fcea7043d1a445371d5339425f41df2bdb85570d280524a3eb39d459b89e4ba2b94130f1de13cb7075b1f6a6a45b3a95c77738e899a8238b4af586aa410443d945bf3ad7bebaaf35f7890e1e97d23c325ae1b4c2ac85b189c6992e55185133cfdceb8899134f53f73f37e3bdbfc846859b8835eaf452bdded80ed7ab7cf0f866eacfeb23ec8effdc677a24d15ea0aa861c5b276440d7ea8568bfc32e7561214d7a34c116022ef17505eea4f853ad7c3cc0cb31a93fc78dbd8d19cf48f6cf80fb6908de26a92e61dd33badd936b7ad3210103de0f812838e36e98aae3ba", + "447f", + "35a1e245a182c3618bbe536acfc4c66c3fdb5a257b1ddf82383e306a8597922f9e9d479d3b08666f4a9c6d6e447596b63be90d019dfb93b720be5a1dcfce660ac2b452019bd51a811db9b3ef3a6f0cdacd4c4c4a5b916013c43f4cb3ecf3fee3e7fda7acb74d5a89cc692690cb152d94249f4da9fdeb17e9734f8405ee05c0fa0eae6cd1d0eb007404f5792a20836816e66937428f0e94042b03749cd2fb53dfdccbb72c4e08ddc75a4889380c57e0f6eee0f3458d3cf2abbf23c577479ba75aea9dcd08813791da7a2a9a737f759a2e38bd16e81b2bf73d9a9d6442f75d9ff285788d59742ec285079bd2f642f414cf6b0a88c76d599322b31f8091160d7fadfb7cc5c25a68704778f0c763dbf334fa41acba28d322aab5f9441ca65f6a04090f8542a94d712da583d919626e8dd854537ddad23d58f11d09a133123efffb7b8b60712f1b85cfc3c1e1fea59af692d74f3d67cd24c76203fa116d61" + }, + { /* i=7009 cDividendBits=3362 cDivisorBits=797 */ + "02027af317344b2f2663a3d7e9ecea467e765ba6323738044c08d9864790e86ed1fc254daf94744ebb913bb5d1888ea3919c781f077af3cead0801ae8b7d342995b77687d41a2bb659a588fa82c5b03533a08668fdcbf0684cbcf8633907350ae356adf3081ca953b04dd98e9d06e415fdd65fb9cd365aba3b64849501d4ce90d7110c031eff0b32b9ed890019bfa201d1431636dd92bb4bcafbe37573e25c514edb24ddb81128f15c4421e0dedbc6857d29cf6c4bdb555200fcfd1a02cd15d84a99f656134b75c14e771cfe8392760f9ee189ddef1c91886e14b0d47e2e14666756de5e4c2035fd92265ca9debea54323f6e36a779264e51d4f85560a0bcc81f07642e400f20cc2a4973a6fe17bea69794513d76d65729babe7768c927e6bd56c7a07a22bb335af18fa69bd07df76563cd28ccbf013d3d04664c952359a5520a96c770d4d14573c5db4d01cc4770a6e059a03e33b44486c85fd916cc3b9e52bcfc6b002f400876aa2be212877b5a56cb0d56a569db887f8c4f8529c9c6fea8ae07f14c7286fad9ba455d2199c93589e91ac000275264342566cc5f5171ccf10be2143280c", + "16b32365917cf6e53e3d8ca4a2082d58567f08f3a84e8967856d7e37949785211f64a1c7ee6bc7e174594ec049cbf40c57a92bbd2ef1e9d6d06628ff245a84a49b97d56e13d28338950527bb0c543298d3175b4974e114cc38546643413d07f2526f0d95", + "16aa214102542626e0ecb3b39365841fea63b1f143be9c0ab7b55eb96fa08528205150a6d2fa08cfb1c1462848ba42cb20e3194150271132fd4fdd4b6ded81f9ddee52faf6ab8d9130b52a36c6bbacf59f43d487b96e6ae97d44f88535455c59cc22eabd209626249fcf1f4345cdb878402b1ec6891b0f604c230b7d4f9f23f87635e3312c245d68f62780d794383816fed1ad0344ea1f527d1360c8d03b5f5b52fa51e30e4477e6f7ca3f2d98f51057e1b36de0cc8c23bf0aaa41b775bffb70a99bb4e49c2f9c0bf773ca81139d3ab2764ec0edff6fe945f2742af086f48e1c9a66667c068e351ad1bb9dc0feed6056c62d36f2373e71d01fe1366cab93086ca0b7f98eba07dce1eb3c4ccfe752b51df055561ef2c32a6697a19c9c494c2c10a99d444bf66e2bdb40a3961cca5298d20a9c4d2e68a9c50dfd0031a99a21506854", + "0f355d8d75487657646f60d6c573590ccbe36968121360802f5e8f12129097aa8f1e086677c3fb076943d0d71986b95cbbcfd3be1c6acc2a670c9a28d1b71e0702964e21e6fedcf93f638c4369bb1fd65c4b98ea5fbd630e0caa4eb8b0e967a783be2b28" + }, + { /* i=7010 cDividendBits=3533 cDivisorBits=1959 */ + "15de3bdc9ff6f6f007d554c6f1538c7523af74cfa02eb2cd38a95f4c7c4083e3182661ca84a2bf1ad3bd57a8147acdcb0ddd60e349ea54e01bca38d5617b6d27715e74dfb2bf78b64d6f74946194c40096aca9d7ec0d3fcc4db244d0d573f86f814e42aca00ba054ff6778e8e14de6db7e315c8d32720ffe8de045fd44c5643f451f684f1cb8f96c1da70dc76ae524b48dbe8a8e13db7ce7f0a0bb46b6b0102ec5945bfa74821be15d174ef632a2c80fad3deeacf58f691a6387a2fff001657b03c691f3a5e80da88ecc914f2038093bba8845db75f9c2c3f6d8848c0136e47240e320685d25e926cb83d89957bb31d032a080c00bbeba5943bb8b78fa8f4b7419166192ab9c84b50f037103dd9e5e0b520fdbf33a73da14fe025129abbd51c41c6ebe3811fd007bee584e2fa3495b78154aaf72caca32d72852b0c966e1ef912c917a36374926c655dc1415a925d01104323ced05800fa22f8667dd28b532f3d6b722e373ae662406b6c023e9cc79995ce11dbe9c35687b74c9c6867efc9ab0dcb5745e255f7d730d03889268d96771373ff07890a7b650cd7c9e65152d159ad635185e338cadcba672d6825b2d6433c79f63103ab3371b4f63", + "20c5c4c59399f6155f0f9658cbdb4f2322b24bd85dcfda5e6ec644f191ae19510c5089faa9ee3449be63f91891f6909c5741c4d1f815c39f3142e2ba1077bdccb3282f6ad2b446c0175aab77e414560e8d31b205494eaf571449fb169dabb73b7076a3c09f43b0fe13776e673165c0e78408d2afff8cf080e554277c15985067cedd867b7372af739474ab48a2a5b21b9f82e049244283887e83af330c7f9926dffe57002966692d03cfe782a43fe99cd7cd91a1aeefe4d00f581f42b6b3dc6c9b789d4585873614f093fd87669f88593ae04a132934a8e93dcfeef9a6bbb6c6dfc53125d07cf8d4ce52a392ddbebdd8fb2f7d1c29", + "aad226c08f4092ac6764d0a862c958a98400286393fbcf0d81137d9c02ff21fb4c3981dd137c6d2fe1189bd7e05140c663c4209bb109a717a21382f46d8282ab38d42775c0628cd185ca84a47d5774221b2648866765845e0a397e6716a5e0ca811805386ca52067e4ab0ae7c3cd53d1741518a255d009ec91661f4834209a03cc366055b9217f089397c588125e655321900825dc5df28dde75623a042d2d6a31e58dec60c8544a930b54a8a46c62216b7f2e795187b05e0673fd201d7ef2af7978240dd3", + "067ea1a21a496861a0715e0eb50b8bd9976fcb8888ae9d2f43914e302c4b9dcb35e7895c93e78ef0c2bf4d91c190fd918004546e6cb0e274e35096a889c163fec26347ebdad7fd2e03880d6e20e2f95338b0dba39372868cabfccbd1e130b41a3104621c7b31d134cdd56df099f40e110a5de96bb29a6316e70c802873a272ee235c472e39b4728d52a4718583728ae189a35ac6c75d63e462073142ae0872f485276e8a887ee1e456d38489f6b75cd5b65bd7ed5b5e217dcaceeabebf30c6adf5f1cd86e26d3c6d009275e76f1256893dad3ac4e5c00743a8f87acca12c7df480c7d50d600efc9af96e3c9acd81d7f9158acb0498" + }, + { /* i=7011 cDividendBits=3902 cDivisorBits=2185 */ + "0a59c3bf7672ec79229f0a37bc1beee6a1404423c04281f083e950a498c82660f0cc1ad6ff7efca8f69996c3188f1280b2d84d3f2223ae60766fc009ecde2aa1e33cbc9213e31b01734adfe395235d07320a7cc03dfde5b8f7cbcabac19eec02a3838f5c2153b6542e58841b086be2b093c031235c8c7b17eb96c258f0621a254ca48fc49ddfefb1a18ebb8a84d643d9744e2e7d191e51bedbdb56c5d6a0d0ec9746301b7caf3b632930ce17fb9a8120427e9acff07ff6bc00ea7483fcab79a539f41a7230b9eb33585b6a5a40b82c1d8799a84c66ef46d6136c732074853a580432914a8693507307b8aa5aa047ebcb2ce7b5ba9bb465b0bc2fe6ca4ee49381337a380e45bf1aac34d91d507b8c45445eeeb5358ae48b35bfb7c1675fdbd536a00ee12dade2cb414d6bced495e4b9969591da843c20a8bf5f8c5148729d4c4240976c5ebcce288126b2f586a8d7fd12243737c5f8aeb945f6761893e87bd4dfaeb69bf4d69d1c10a622ecc8587748d5908d16d5cad94bcbc272095546d18f150b140685e011a74ff26687a47fad5c076b8ac15d9b7fdb021e83f92b804d7f00254cf673484542b113ffc340f4ee97f7a856c3a6cecaa49b7db61eb14d1413910dfbbd1c497652d00a4bd2107c719b37815fad04e98f6a11cb523f3296fbd47195b37d2ecadacde9", + "6e295e48fd4bb73fcb8ecadcf2e7ab7e2949622b094db51ef3f69fc81f8498da1ea625c37c267987c1b986477c450f45730942c497028a57f3d8c4e4204ea2bd19436cd98499feb3360262c0cd5a4da7c59f8543906b517b444ad12c64fe65d181a299dd4cb90db4683154512508c85099a155fd29ef2ff0ba85bd3b3844ab594e51a42efeab09cf09e58a3ae26fcf5233c5d9f0a0840f561334edc1184dc18a7a6bfe8b41d3b8c565c8d3cd72bfe587f9f8be68da734ae5811b9921c21f950d00941ad8b73ac4fef263153ae26b11bb92862ec1f9b9026c1bb0170f3c51d7f92578fed323f956441039909cc5b30b55f9383bc79a6d1072fd2ba5e98951d7fbb6db6f42df686b029478161dff6b6ff508", + "180dadd7d4b809aca19acdae984d1e4afe85e07432349bce18a084f4c0bdfed32ecbed079f5694fecb5c21ddc76073dffb53f5dc6f5e42309c4323e864f8b772504e415add658c6558109eac45f432fdbc1b931592341c448d2cac0ad3d33093c52be890d5c32d0cff7cca47ba61192746564fc0928db25780ec2f0681fb559da843bb82d589bdea50a671b772ec105608fb9d97f75179e618e034517dc07c1cd2f767950d7904fdacd4e5322125a3a9287027b375c398af33f5609253db175797db3951df3af5301bb0a14cb33f9d50299750552dd3cc", + "2162e5d7974abbf114ed2dd78b7fdf1ff20db92c2562d053e5c5c23e0229d7a9e80b278d582b6fabdc267f5a85f1d2e4e522817cbd621217718667d4dab47130deb9bc23334c84a9b24f9ccf49f7cd4639ffa901a79aa00fd2fc6dc9eba2ba5b82bc6d5f26381baf36e459c52de94916fee897ac68416c98186b7109cabf4010c2509d4d048a9ae6d71fe52dba4b33552339d7d0777415a776a0baa1720b6d95798d0bd6990f96737d6ed180aa9f74968f552f7127c5497d38922d129bd745ddb1c4fd44a335538524e990d8fb8b509af94939071339946b31b6a8f87c6ab1a93f5a700a3d078864439d4dc5ef4c85f19c144490f6dd8e3ba2aeac987dca62017ff62f322716f87bb539fbb68e2c45f389" + }, + { /* i=7012 cDividendBits=1587 cDivisorBits=1254 */ + "03236f503bd4eedab64f53b83f6dc169fef0ac0115a16a282b63d6c8b87b52788048c396e73225610a5df008346bf1fab905fa1559491ed1618d025cc63c2f499d4bac47521ffd2fac085539857eb47cb7f6abe92d900301602e5ea43aedbcf20b52ceda09c9b8b5ce7f81834e2bdf70a861268426806dd92f06b31f130766e3a51520936e62edf0d12499c79e4ebfcfec6f2b191fc1476f4d969092d65d49040892cf8c0c009956589a5ad180f61e9137249d45ca9d4a458dedda26616721d7bda206ea8a1b9a", + "20a83a1e7efaffb3be135b79dec8f9cb3ae8eeebdf10f9c6608bf17455568c4031fb2684823a396338e231541e0c323bc7a01f82b0a21808b8364099a37219d646d7ab5242dfcd145a565469a23753e635538980b85c39598f9008fb0d253850b9a133177c5339f98671fb118b5c7551e6fe677eb785b4a511dcc48a28bd8239e6896a67c6603c5a5d67be5a03ff25c3fb6b2df56cff0a25f012f08aa3", + "189a24930659730a7d9459a59faff812948a975bffe4c54140d41d0a338c2743646971f9d5ac208ee339", + "08f14ee154d3981403c6b801f2a016e2d256b9637bba49dda0a3d1b1b1a1ecf86104b45715193e782c4f20b848417ff26bca5076d9c3707b8beaf0e07d1b29579995d7ceeed641cdf908e3042196b4eb71ebab3cb6e4d32a804987118f80cd0d1e40e406498942210d1b38d42b70ad7277247aed9440ec0b3d837c074b1fe7a28888916ec6b58856c72036b9a9879acc884275004558ccf78221a2b44f" + }, + { /* i=7013 cDividendBits=1952 cDivisorBits=982 */ + "b2ed862d7920900e7b6363018f85486803c50e622d2fb700767381b0f0553a2c6a439d62534a28885e7c7d3698085b7b85a9ebb5ace68d0ebc52bba363e6fd7001e9a1c12cdebbc8dbfb723345b312e1a6756ad03e4d375ad5b1bd866b721744f3002626631f86088d71e702e7520f3f469f7c586b2743298b03b20e51e2b50c33e2b6d46c1b526d8ce0c8776aa7aef1aacd0f7485648b52a380a608404ff7a4254a37531ce08ebc97ac0ab156ba887af736b561c2b537346a795cf6b8bc807860730761d1f5a3fc3e0bd9f1c003788fe09677b5c4463dba7629caa620408217528d69c18160c277f4634251772fc36ac7ac463f", + "2a3c44efed62a2e2529bd3ce6a55d718c73cb597f44e5e1296ba5ba7b6e2871077da3585a2dab4dcb15e735ef2fd5ceea4de0a1547fa6c2ecdc7d7abd79f73433bbcd7338eaddea7514bb33b68bf7e6bd61c2436fd0115fca63616dcdb0720d946810a46a219a75eab80481c4294432f7670ed17e71f9142ee0839", + "043c874bb2ee57a5fe5dced339ebc39eaf2d3c18e93e116cb0c7bc2c92e99233b8ec91a803ceb3e9708e1b92122b95e3cb70daa2cf05f5f3212d1493725197ff45291a2a9cea773aada510e905396f19c3bb0a1c43329076a2f9df01c091f52c2bf40b70554a845a7deb1335659a0f5e6be6bdba34a43c2e5802", + "0f77ebaae0d36226b568fac209dfe076a57c8f3d4a30aa4b6a94947027689b789575975a286bb78a79d6ca0a5eba8b912a0136dc90bb968f82b4563bcb1bb669bd7729926c25f9ea5dcbc48237b33fe3558de502154397ec720a6fee35bc0ebe2c77ba0431599b64c04eef2ba1ae3f96c91b70d42aec0f98be9dcd" + }, + { /* i=7014 cDividendBits=326 cDivisorBits=113 */ + "1e3fffde955600dfe282eb36d1063bb3632619521b0d53bd8858b7c7ff19ace4a379f137ace0912376", + "3313cc9b3489c504548408a46ac8", + "979cfb31d45a2d9255f7f8863a3b10d8847ff62d8effa083675037", + "1952c8ec3431a9fe3ad05567b27e" + }, + { /* i=7015 cDividendBits=950 cDivisorBits=253 */ + "0646ad9a18bfc0b180b64df6711cfb004403c399bf5f30faeb7b710adab893f1add74ef2a0b6d6ec50841c86096cbb487fdeae7c7ef65192db12cf9863f3aa935f034b3a578de5027d4e879133aea86b41dbd0eaa8fe4adfe625205a1fcb69ff8e45874ed71a17329d277c66810e64bc9eb489452cbaa6", + "04ba2253011e4edbedcc2363a97aeaa97b78bee5b260aad7af4291f8bff97b85", + "0153e33b9a2a7d2515f117af4f59a9e3dcb8c0a4e45115dae38a621041f7ecfb20dacd217c41d2815a64ebaa52269d68f4578bc8f9c4999c9adacb05cc8d34aa462c9bea0e8078ce4955b3a3dd2c65d200a7c46be542fc83", + "014d599429b97842b05fce3be053010ffa2a22dc956217f68c6606dea1a19997" + }, + { /* i=7016 cDividendBits=2553 cDivisorBits=480 */ + "0199c3773e7a3a14e1477b840f9baf41e7119a1c4ec2059b93e87857c066b0a013be41606f70bdd5d02ff8b04a4d460a5c9122f8b8112e08064c6b3764e497fcdfa6b0449ad5731c3781129fe15859a297efe07dd4ccb75b4c32097e64787ca19a3dcee140117fdc3e40d03358973e1a596b2b0b2fb111801079edd8c2c9abfb0e1529154f5df0084e681f0a2f0b23c43fd9a93ca3cdb8237b851bd69bf5e5095e19da0149f88df1f177e14efa2895b4cba5b3fd9968af28719c0d3f5fb4f97cbd2ea98959dc60c5927aa1dd40e3f93d94cf64badb248e1d3fe5a578a456f316c6c32b53d557c96cf2d00646e54a85a302a4e3bacb4b8420d288893e87e422eda8d0fbac540a262aa59d963757d4f5477bde58b26114358d797923f1cb80b0d27a513e6a5e573fce8d690f08a371e7c50cc4f9626e5b3faf319d9053cafd48ea", + "e1aa0a16b4167cf2ffaef0807092337742f451f31fcdabcd99c8bc02a3c79303275242e097f2b6c41f5aa94c00cbbeb4293b713ab4303ed9068552db", + "01d0d8fb430a8366af32bbd25819c41b0b81b9ae98d14c56b193dc464d6152acdf7661f1e349429e0d55d7fee1079e9873b6ff786a9a6a6b3fd64e22708bd1b1e71e06349e8d5dc791c8f1a40b316bb0901131c0651dbcb43dae324816e2d57333a11ff3948aef87418bcfcd499702714c308e207b04577bdeabc24177d2683ea4d6dd9950b5d14d606b5a65dc4c6443a2ec52340fcf64440be7a79a4d42cecd3f10017ad3b1ed048893475d237c44706f8ae6883ddbdf276c5f1ba53bc88de2f2a082f4023a1c0ef3583ad1804427c10bcc7416d53048302e03f3ad7ccbc2fd03772a969cb8ff82b6bd41fc27746e3219a6c1a3b8dae1e1c5bdbbcb44e20e1ca1646e6f", + "a9631471c21c3649b9d588fde2b30acdfb2d0e3e96fefdb18590b6447c151b0038047927199e601ec6237247a3e4d20820b59cf8f95da048950841f5" + }, + { /* i=7017 cDividendBits=1084 cDivisorBits=886 */ + "06f9e77e670c9830027159521f0e44eab8e3efdc20f948637bff174a42ef64b9aa977a33c97f7a254c3e8c9b72720ea6af47612e28f938484298b502339226aedcf9d875cc85a49ab1b569e26da1b4f9d8009f6f0a9805f700dc572b2ddb98efb91dd68d23fa7f75f613a4faaef487cc388a105814173d425ecc8c92e067276d33c04d93a50f20e4", + "3ad7472819bf97d8f5a93a0040f98a6c509c687953c15564ca0484d9a82818ada15efbac3841b89ad0a6fec29af8c63831a02b1a0a02409d5f8b7bef4f192bf49a90f7de117fe4a138d0f9ad4f3fd4e03e6fccda61dd87686d5626e904fb76ca71c56926081e408de0be6655bd923e", + "1e59f4ffba59f6ee61d3ae5ca56418c98b3b9dbd14ace07b1a", + "04f98619594810a4ec3855f2dbdc0145fb9c46ad92ce0a74bea747b2b5a1ea240137e5f31b32410f0863b09fb78c7e77b30e1d3ad1576e1862f953f7826ee98c6150f2c6ba7caf4f87c4fa708e6be15cc15eead7b4d90abdaa36c1336a85f529170ef295052333d27e35033c4a7c98" + }, + { /* i=7018 cDividendBits=1839 cDivisorBits=506 */ + "71e5cb5459b9bf2daa85f3d537b348da6d45f77e4389d7f79125b5a56fec83d035d4529231eec54ebed4dbd1306edc3c070b87cc875ea273dc3f73b891f75174e4b8524754fa2cb591fe03ea1ae19f9285fbc4dd9c71979e0b03818c2988c83ded2447115f911d864bc494e4a12cc345cea0bada668d915a1b180754fe554c1e40af6496f12461a1a7ea47f42011a1ede6668e4feec8b658efb13507c3eb1cbea6938dc40938b072ed99d8a0873d834d8e546984e36490f3f394560b137df1b71c37321f1ae6df667b2625e86e383e0953e7e7a9fbad65c74d79a11c9bb79ee0cc06d5fc233c", + "cf44ff7104f2cf0fef63a8e0b62b138960ca664e8deff80b1701fe23eccdfdb66c185a3974edb1435c21e83846e21b322f80325a5fee61266fcca1094c0a84", + "8cacfd89ff4fadc5d921a266c427940ba8cbb0d7633298e590339bb95e27256e09b1c307ce8bb1fb3266a81aa618381e2f9078a9bbf1a3963df5fb1e8ab60f21b82281923dbe4cd0ab14edca950c35fdac596a23484b9e6d4f71b22dffd2b7390344011060a22d184e28d18c8ede01e628768fae7bfaae0710c9b015d2cbcde1fa0798f0590bbb6bc0cac1201b1bff663fa2727feecb2c0eb8720ff771982b6c6e44d7e210b26a", + "8e5b061dc2dd81cc1d2e7b6e44dee53109de2785aa839afccce1ecd4cd60da3be7e571dce480a725a3b55be8b674e19bda542a49fd6821cda87dfcecf00094" + }, + { /* i=7019 cDividendBits=357 cDivisorBits=189 */ + "1297ef373f0cd3a64eb9f1f6c1ace9e9b5c71e16149532c6b1cd7854ce63af4d3193f6dc47573871e90bb707c1", + "02c6e876751ae8dd03fb37c91effc15f2381d6c7bbb7a0de", + "06b210dacd2085aee8592d90966149e9a7134799eb8c", + "5725cf0e043344688a8f33e31b101688fec2861bf14459" + }, + { /* i=7020 cDividendBits=3779 cDivisorBits=3686 */ + "063541ee0ffea82e9ccd8bdd64245570d7a7533c8dcf785c5d6212394bda133d8144d1677812bb639ade93e6728301dd1a96e883a253b9fab440bb7f6b1ca6d1f9ca130f1dcec7875a7ffffd081b33c37121bde53368a6e5c06aa31ff8635ac90a089f41769117c8e77e4863a2150203f753ebaa3c09de47b1a423bb3bdcc6bba34d21dea0d2b80689db9b66d6536bfad197c3780e68856b31f24d35c5b1dc5c883b90072a614452fa99b8067a317db4658cf70f0745bc7acba53898c5565214a86420eee342466120052fde503d5d10455c9960b316352a94eb99ba29735f8aaf81762bf233c493ebe641741568feaf798dfa44455d56db30a1916083db59e7a9ae9a44757d19e9d6136637ec50b84ab7d7fcf80300c53ba785f12537f6ac003b5b7e7528882716bd147d5322b041490cac042d534ad8a78946394da981ceedeaa18a84d2f66bf6f81478b403d0b8850dc701e3a6a4b11e9135204b87d4f80a671313a3a12ce81217dec0e8294b45f339d85e29f8d7ef04304f4fb59f1647936d31b4d5f99a2929a832c902dcd9d4228845adeca0856f3c67591ea71f8fdca53b8e1f8b0945ba7e13152b5bd225e99e1a5a25fc35977c0eac8b36a6bc06b31bf90220d53d9c3164c5cb5f0439f85104904903e6c0beecd6", + "2a4d6f64964521fc61c93b22e3691e73c15b3eceb6a887265a0012f426a95aa643a987e80f30fc29badf5f5e9832db17ef2869e9aaf96841108821745719308ec60f0d4a1182deb95d59fc508d0ee0b3b79bcad38db73910c119d6d6b07bb1eb96771695791c126b7553897ecf9349ed56e7b74e273e6df2ddfbfaca7b83d5bc84d9ca5293688197cb9fbc809a5aa71bb2ed4e7f0d8c974c1d9c299fad4a6dad2a6f4d0dbbbb244cf37940408735cfa6d4e3b15f8814390d41c370ec50aea7ffef532e4efd3520e04f87e553f899525eae3d169a2a14652dc56f1d2927d2b6ffbd2b954d29b09384c5798a3b4ca5272d6bed988627c76e44b6d0b02642f1df7d8f357e3f3b66232c75066678165992021b358a3f2c3827b8d2772d364fa42fbe653df9d247fb28f7bc5ac631ba0d91a878f6d51e6b48d24b0a4a0abb91ea52907cf2bd8ba2da3ac245f18accfdd737af3b302e907460bd95a4cff87f9ebe1ba8e762935d224c8f297f688a4d63003f175b8be4084da52011c164bc16f9330fb5054e0472a03aad5e74be6055577a248f6284074c6974a51665088aa8e478888c456e7f2004017dcb0ba6ec39eb538023e9f0262608e5c5c9f37728af63c081f6e9e86fd7570d953f3236482ee1", + "2591a3373af23ed8474bdf", + "1be426c45fd9e3ee2cd2a03056ae55eebb4b636fa7c513d143245efe82e6efb26e05726b68fddb78d5bc5d5105f37aa88e6e0169ff56d4a8334264e5c2742051c1913c43226e2fa20fb384064df3583419d2f8718ea70c80a17e31fec4d27cf2077a65fd75d3ddbd8a36e1d6e6eade6c715edd8b5a9facb39fd9c9050d70016b3f8d539f815b5cbfef3826c3d1084bf6b79fde3d4f87d6dca2e3b9465d1a61256070557ac33551cc867da19cb962f22ae7a26329feda9a20cbd1603044c3fde29753f9e6caf2d923e03a8fedce948e8f9e7ab559c5dc7a60de85d16d52e92c3fddd36e04ea142f159c3632f82c269f5d4a87f7a9a97aa2868b33a5cf9e3e840907033d4ee2e9966129b0922173e1522b91aab3beebb83335f3b33e32d44c28c7e9830c90658fd9e1df019fd6a9bf02fb37477b52b99c5a869691201cf0431db22a6bb4272d4211cad87080e5e43705276f16330d7f9b8c415f7862be65d4ec60a99e1acbfd74ac52e54dc23409e583d45f445bf036936d53075c07050d31149aa6eb7fe1066cc60c6e0e082a518c6ac56e544dbd34f1a2848e67253568fe7cd19fd4864d4074413d62366de5e0c7ceb7e35d148df31476e630921c270d56e1d0fd1be5ab54c5433f3179bb2bd7" + }, + { /* i=7021 cDividendBits=1670 cDivisorBits=311 */ + "2fcb52fda93af90b5f62f7c1aad6a25736e612d6e3354cd3f781b36edf2759fbd334562f85bd7c7fd0feb1d1f7b5238bd0d16894ff201c18550c66770264bf1c4fc51fc577fcf483c09cbdc618423276724e06140932d9c5b751bc11d1c135c13a9cc33b35ae91aee443e6699c1bfef13ebac0929a744b35ba32aeb9fead0aa9b791c87b736dae0d5f58be1bba011416f1230a45131c6321e51f67eeccdc4e6a40da44a940d6aad4b1038794b99454c262328a6171b4748481dacc5409da856f34739141d2a3660b07004ae99d289f03a4", + "59ce0dd2f12d9764dd70b36f67ffae6d9b4507fad31a248718a83085363f52739a127052421a3b", + "883e4f15d836e33dbd9a4140eedb26f4aa45fde7ea71e44f8cf241b1dcb3eb87da3eadec2a1046631ae5e3a74757b54cf60034f3b36cf6df643043513a215d874556828bb4880d64ea5e7dc6b2bd7cb2c10ee1df7716e44832a2b17dc2585a8181e0446e985c6b30f45441a624fdcb2d4280c766fe756bea6fbfea0a8f6525b61e5cd090995c440e3d3f396c66f5e1d7c1582ac5f37112f6f4a1d59f0d7ce33e49c67b2bceb785167b3d", + "1b866c364389b7b01eea016b5a9f7c5e312208b1aff6b5a1d1a6d1bba51b31be0fe9d7e4326a95" + }, + { /* i=7022 cDividendBits=31 cDivisorBits=8 */ + "6f5dcd43", + "1a", + "044887e5", + "01" + }, + { /* i=7023 cDividendBits=3567 cDivisorBits=2968 */ + "509a3999e0464e511235eacc8237f09e3b59bf288a5e7753423436cd9242fec559979ad33d80ca5bd40be5c90f05ecb3f0488e070e6b9fd63464f57d83955d09bf1c982db9a89ebe77bc11a1fdd43dd1c9fc5c440263463801fe5251a21599f594f469af77d2358219624e8d8092bf6cd1a218a6bc713036e8d7e26ae0433d956744c099cf4adad129d6f5d34f40365fcab3ead7d8159165d829f3104a2345118957d5867f54c8ef41fe868f74cebc27943be4550a9cb6c7f66aafcd0a624d1cfe0cb854d1757f6639f1f88bd48208461cb7e7715581fb76b0a8d3f23e124e813e7b0b89b1c71c37407074dceaec83e7907592d5c5458f49c70b818aecce725cc14e672ccb95d0d1cddfcc587ec6c52327ce6dd7374fd5412cc99fbe8b4c57d171b4e3f25f29e766a13d90a7f6b671344bc14c8b9a4f95e1afe631b8ceccf2cf7eae50b623daf4ec53204ef6d4665f661c43b34d579821832072b21b24597b2669047471622b309e39d0bd59e64be6b8c000009257d55bfb5eacda410c5cde6b0f6c23b4cfbb51bea5349c56c55c9ad84358ce4f17287b7ffc7b51611a1f43dc120e2de84397822cc8fad88e5668f732dda8bcbff4da91f7a4b812f51587", + "1f001e1440bcbcd961adb8fb58615b37ec852139eba08161c631af10ff86bf121c7476c4b6aa85dd3ff9bcb6ad1551e729ee355ced0fca7a87cb10c7ef5e4612df2c526be51706824bd626729bbcb2ba97da2469c10ba4c247a1ffa2bc672a425b54d1e8bce77232e36cd5ab7f83e914e8c53a4664716758380b1a00e6b97de34581fc3b45923ffa65ae6355e29b154201feb5340cc3d4f79989ed3b95ecee5338b5f12e0675c768889bcf842cc08a2e48d9aa44b4d5d627a5a13a2a737de0a38e740ed9a3786479422da93ee59d9903e39a030d9fd5fd8cc57b617cf7f51ad37089eab2c64594d5569d17d6c0e5e1d8b4cd51e1a480a6f10bb5b375d4d5f60da942d562a713b0928c84d18aac1b144bc655d36cfb8b6d0ae464daae6bf798046187107f1ee99b7c529c0d0f430922d75f0c884c6db2c5e07a13b7202930b34ed8d57d3252a73274875227fac29412defdaaa217b04461668c6f16aa7e0fea4160c0e224367201b672e6d0510b43cace050b95", + "02999c3d0fc2d5e929cb845411a9cbc2152d70cf78c56bbd970b33e2ff3f66725d160668347d49c35281c92eef107395f0d4e8efbe001be401b95ea6cd49468c5a0ccfcd98088726c62f1e57", + "cdebeb6950fff305b4f40ace9d3fdba3628874c437b5ec2392e5f4904e6d85d86114d89ef66427e9da4a94feddf9b1b19e5f755bf78fcd5e9c9c303c6efe8e7d1f21c867cc919085cdc1e64db90c627025f57d306469c37b5d53333e2d64b90c95ef3551ac6816dc1587ecc8df7dbd6c08a5805a032d8eaf66423988652a5fe61c1ac93ae773c5e32d7326caaee7ac3addfbd87adfcb42ad577ff37c6235eca7e789e0fe75bcee4a602b4ec9bf1e3bb01f4f0c526e8f60d6e0e8fc6b9c8c11ff56e54f1dcee9a1c92edbb849c4fd0576e52cbde22c5531ccfcd5c6eb65953d01eb4af850721f5ac3056424258be413570a511d44c389e7a34683c6e62808172c4cc68734a035264cb699b7c16de6c7884bed1817c14f5aef06881cd5888304de7d4ed3825b7237c33ee999ad500108f1b40032ab935427c3b263563848c40591eeca2eea378b00a59005c06170f8491d357a5d050525aec788efcab77124b55a34c14c51700949404ff6551ad1a71987afe4" + }, + { /* i=7024 cDividendBits=987 cDivisorBits=870 */ + "c98600ec4cc370cfbf066df9701ef289d794dd4967a519fac1c76204b1f09b57236804a0bd061e48526223925dc4fbec03c88e9892c38a09d950c4fda38391bef1e193e32f00aa547446adbc65ea571f0488e521f910448e890c09371c01787f6794887782e85e86510f8a7d4f209b4f8b176ad28303430c9bc0ed", + "3bba5df44723796299766d472e27791ff60292b9a5e1b049bd32b42f9e79871fe8219a6e71d3b055d1ed568fa79f9b21d96aeacbefc452f483fe6f4329426ccf3025d16e053eac07097d502ee1cf18811fbd8b65e0ad63be5296a92c54f5006db41503b38bc8a18cf0af092293", + "035fbfc5cabe0a0b4ecbdabd4e71b9", + "3926d93b950adaf5759f6a33f8beea720eae416711ac7bafb135f3dfac19824f4a9d61ef273ed625d9373764cd042de356ed12224a348df391f0458f803a1d5b9955d9700e8bd86c135c57b8531579b6d5c083385e62aac61581dade16c78fc94d53b530ccbe02d69476f4e1b2" + }, + { /* i=7025 cDividendBits=353 cDivisorBits=32 */ + "01611658fcbf7f327da4204049fb321f92078934e55352b24c1dce04edd0736d648cc6b3854e991ecd0bedad69", + "3c709946", + "05d78ae1520ca239bb9ea1d6ee498bc9d166bfa805058e2c63049c86e6566af7502d67a6e1d85d3b80", + "21dfe869" + }, + { /* i=7026 cDividendBits=676 cDivisorBits=518 */ + "02e83e7f52a95314c4c0f26c690942cca30a3d38f0deaeccf812feb9a4f2b11c1bf9d082c029cf49b9764abca535538f9e9e2ccc7ef93bf1685fd84e986e46109c680f8ae3336433ad0d6f17243180b236ee997ecd", + "1c4ec705db1937315774864b355869db7f4042b3d14a6ca2133942ba86e526a256ad9680376968169a4cf5ccccf75673e0367f3ddb7aa8696f3af975903d9f326a", + "1a4a8c49673444e993a78dc2b8dc6cca29297e22", + "1b9b6f3bd724af41d7aa71030a96d59aa05edd185c63cbf0a5d1466d01c66c0f84e60bc1668eb26ef50e577d66c38aba0d05d10e3f8eac5c605a8f398457aaa0b9" + }, + { /* i=7027 cDividendBits=287 cDivisorBits=133 */ + "3ff107b77044bf267e69e38a6e51495861c3b6df642ab789c44ca14f05f7e30876f83873", + "0e07823c3c5ebac9b951140942d8a3013a", + "048ec59fcc5ca30784394745818b8c2623dd69df", + "0dbec97a42ac190de8da083273e8675ced" + }, + { /* i=7028 cDividendBits=3537 cDivisorBits=257 */ + "d92be437e606e6c7e64dd2fc14bda562e95035a9302cde1c5d1d7e9055fa62c74b9c79c46708f94f2baa2798bd1d5a9a0de9e44d5a486211a5af37d7f5aeeaed757838d1e4ed3fda8ec6cfb40956c9890333d1e7a13371f166d43c3ec3f0e56fc0737feb4ba9cdf5450de2fa32123ffeee8114697439eff8b56e85df425dcf1e1f6b69159307f809a76d80448ee3e1b776f51df9b498da5f809725184b6a99fe8ca906a4303557de1f749fd0a3b269884e5b6e4f7d8051c3c0c792188936936e2ca1921e3f5c91b737ee82b03612aa29779a21cb14c8d5fe3c6a4abf3b35709c65e07919b3534d4bdbdd944c2e4f5b8ddab3beca1b76222ae97c6d04069840bb014ddad13b91f72ac010e886ad1b25e5886d005700da08511a6cd81a2db6568c77c56894249b74a42eca929a3e99519172714a833b919d1fe90e32757238d639895fe3a84dd33f6f1fe4983e1f489122e4f8cdfc49679db17a8ba5a020d1000b06f8e466d2eb4ee2007c4db6df4062f3c6c5901defad49190d8739d2c2ad6f0cf2a806fa7c5dd1ced6e6fb3cdba41922f555104948971468d27414758da0ded767fcb6e4951ba2e1eba80dcd67f0fb56104451570cea68982fdb", + "01708f3123a4a87c144854c542476b73186d408463bdb3344ac52f394f44c43cb2", + "96d8b5046247ddde16e05957295df78809b04c4680130ec77260869e2c41291da5f830fd97526c5c7e66d0f96663409a90111c967260a4b55ccb7e4affc18089dbc3c156b47df980c8612ea19bed6f7b3da10d7e3b96afb4c0ba70e155ff202f213f50834b5ec0a686cb7eca315f37161d3ed2de1aee4e506a1bdbcdab0134288eb11dbd8922ce56bd691f570d616ad21cbcc3edc2804f6beb9df97388f09d770eec14b3380d37c586cdadb4542b2be74497cd60b7974310c56792abab98a11774ac5eee0c0b7c410276edf4bf1d8c2a80ac42b155c993eaa6bd334697438aa6c829f2ef8ba5a3d020391eba1573d22dbf13c48a6664521451f3fa10a9a0bd827f9199e41f54770449f2e1b9d217cdfc9950a19319911d08748693191fa76260ad3b9d64d2d7dc9c35c3aff13337bd197184bb5dfed48f5567eb43cd5f6f65861794f018d4b3eec287d20d7b394906ee0ffe59c431eb2fc6488fa1ddc7cabbc677b79d6e27a8963093f78ef03827a5f81cf3cee8cb94333e4759c5e26b58cfb820b1d1acf2170d9efc283d02c80e737779d0420a77ec38a7464e", + "fdf5094794f26c810cfb553b51bc012ab360790081a7513eb9746e934417059f" + }, + { /* i=7029 cDividendBits=2905 cDivisorBits=2631 */ + "01bf951919a8426ec427466ea5697af9b4026608ee0967cb0221257db8763f9a9034eca6976df6ef087f6df342f5dab3423376cd59c7c7e72de533f401527b904f95011c84c1b9e55277cea4152abbaf9960faf5ea8169df071e76b5e338b77cc7e736a5a4e360987a1aadecd34be9c89c7765ea70c92a410fbc2c01718328e671e4d86d6af10831b16734cc11a427f4cfeeb27481e07ab2c06481bc311e9a16fe6e83fc509f80a45d219b5a782df4d9dde95c7218565d2709cf65015a18c663618229c6bf51e23f43c4909ff182c681de01d82f72b6d98013d468d4f5a3dc90e92f9d43238ad1dadb86d9d2c5e55ee3a05bb0b72c62f7dcaee593c31f48b027dd36e65159a482ee561c06ad71499650565ea56d93524455e036527794e44c6949cbb57f0a59c448f7a6ebffcd1098770155311859bb529505370f52649d13528d32ec22d3c98aa0bbd6ac27c44d2b5048843d1e65839df8ab0f9755f396dc86c17757b8b22b3195349b6b32", + "0c246a67855378def8b9b53d9a11df8690f91660028500f721a8603a4a2e4b07657f64adf12fdd6d978cbbe1fc84251280aced490495d499fa9ea00e4f51a59f313331433a379d3ccae607c70cb6c8e3e88deed0daa9a918dec2b5e37c8f04b6977b6eecf4b4ff3423c8751a4101e074565440d4cbd7d08372ea769ec05701d59e6fd8b08b4c5dd0937a2298dcf7fe380bffb02d29a0f7d731fd28b77c99c84422b25d7b9e37ae265f566bd5cec488060db11f9adc56c179d6360fab8ddeea48ae055681c485a8474c071e568686bbf6a142a0580ddcc59bc481b687e0a1ba81a7a93a1d2fd150c27083066973449079326fe9dbfe62800ec57f54b9684c059263ba68688d03a55cc3113d36bfaea6a17bd164350adb3267ce11f2508580ca6047f8d148602a48ec8022d9267650552fc5ca36e1ee9b2c4337195bffd94aefcfabc1725a6cff1fff05", + "24dc90372fd65ea08f325c0e5d61836ad9d9358225d747bee2f0e372f20e5ce8a0fe50", + "23f30933223c3fecdc7dc62c56270b703665ae3e4e037f86a6f0ba1467c0f9ff3b59f6b4fb4e61fcd3e56168fde1ce58cbc8a731d13723f733cbc432d5b99da6313af359906cedea78919f443a18b181af6230e9466d5951353ddcc83f400159620e6f32c341ca633bd7fd5f6e89f42cef05518a2973638412c40bcb80f1476608c8a48fc4ea23cf6ccb0ec1409e63f68d8c4c95e86d1ce0ea7a86e3def342a22ec4041551bf40db3aac8effbec50e4004bf498162b98c171cfb3be898d18e610363f4e158068f7ec8e3a5333a95d1d00f8ecc9e30955a8f9a2004a4330b1461d7a5c1c1476690c6ce759803e6e1c478ad543f102d48444f66219c27fb3562007f09b9bde026d4a1c6185b21ca9b3a5661bd8f05172fd773b13959dd3d0f4cb8e466dde4fe739b923ff8a21c8582c7d66472765d2ebfa4da95b410c81843cc53c1366b7bd074c3a2" + }, + { /* i=7030 cDividendBits=1784 cDivisorBits=875 */ + "7b613ee384ad7ce46acf15b2e8fcb2e0b2481abb696a351d2f78a73f4dcdd062db1066e28dafbec80d645ad7f0dda784e3eb7e3ff333b86c81e96fa0e268d5b887b879a21586799e3838fc612835a09d6df7532d768c99ea207d52906fed7ecb9063eafd681ca53d67b5070658e3098ed823a53d6e6035405c0fa4161e650b8d69c5de43b538f09503eab3b809004f843cd0d73d70411d6aa45d75810c5dc8664fd9d5dc42f524d689e306f06bc5f3a01c9aa9e5184e75eaee8604dbb3f87ce0d8156d695c73ff7f052dad6637127ad06bc64774183c7ac283b66db19b10c1", + "0335435482c365a64c8862a305c17153b04f7d0754d0e9139940347b5aae1b62f2090925c3f9a6057036117b2b4e87ca884b8ce5728574d26d2d5c043a983d6635fd2cbb39f084bad43ac9d1f46a4afada804077c9beef0d0842ba1e44d96714b7e591117da5a61b89ec86a93c5e", + "2675984b97cea9627625bb76ea90085957ba375411b56f03aded82b16b7bb6266548ff6017e6a46b94f146fbe8051c858d6de7aec6da58bc349f2a41f56ee558cbd66f31e026c2ea024b573cc271045b1132236a017d4747fb8c4103ec91b93ccbbff8a97bf02ca25dec57a9553e62e7ffc0", + "030af31fc8b88e7985f61b2b5f9ac3d6452d7fd9d17684c14a8e25c810cf44343f1659724c4697d6346e25d4a3c5b05feb3ca55ceca4327acababd6eafcff35189153a988e5399e69577811e9c2d0b7ed0ec916c7863ad6469d716613cae533b00d5a7f56c3f25698a50aaba2841" + }, + { /* i=7031 cDividendBits=3780 cDivisorBits=899 */ + "08842c83fcf51c138606b907ce7bde929d8e5f1485b789bd4a3b40c0f4efcc1fc11711fe9cc65acdd6e1c5d67da90e0a2b7aa1c9ee88c61b8f5e253dc603950220f70f2d82edb4c651b898a50fde6ca23a385e5e7084c2d886e6fad27681ec3cda4ecc8d74dc4d09415db264f1341c9981126985bf993f158d49e532b13d495c133c1f871b03566cb6cab64a1e3c2ef8a037ec2f19cfc1130da46cb8c3e4f4872b9186c998d952adba07868873435a6abe25c10891b9cefe47709e4851dcae1a690b7c9ae1d7e1206c4c2821cf34b7b79687a98e85c200cac346054090c50359341b9b199e7f110844954877afd6d00f472fa3f9c3b85644f234e8948a569ba1aa2fb198db33bc34b7fbc63f1f84b7f21b3e87512bd9cd60bb6dd7eb900f878548aeb0ccc202cde7838ef25b4f64e1fbe8a5be60a6809453ed5f0895679835aef0901e7ed881fbe12c4e6ce358b742195a9a91d07a3f846af22bc71227490042c9d793ab0c9f389545491b5885c0a4f94fc2bace68458117162e5a19be5fb53fb5e2d41ea3bb9166fb964015bd8b7ffcd39a222a2a0dd92f3fd91b5c88c3c7e5e7e53c406633da609bedec64a383e486a18a7db48d81751b681cdeb7f8e6b101b4470e6ead19f77164045d8a0d35e340ebe71869fa1edb7e2c", + "07983469b30455f085bcecd406ca66d0a8a941e0f2b1484a282681a62c8938e8ab89d91c90ce043e00241bbdba3838baeab927982b0f1bd24cb411d6bd0963a8b26826ce2eb12196c04c9938f185cef660e78c1489130355699ea34e7de5a74aaf387cbc02e96647c527aac0456b938037", + "011f122386a86177dd1d70ecd90830841dc58f400fcbb5767be7a23c3d27e04a8d4f9ac5d21e7904dfe5e45016b8d6919cd975273d476942a598cd1d132711a7e707b2cff920ec5309f80749b67a7a06912349944e4a7ec0d636edc3d311d2a17d00220884883b6b7e9a5fa67673372fcfe9bdc5b27e226554556bfd1b1c9d70f08a0ccbffaba61841a8e06721f37c76647de0873e73828ea0f37685c3e96c2132328dc9dbba859531aec5cc16908ffb090bee45cc3b6d936b2cac58fc3e865b84b26f6d5dac8d9d958b45f4a6cbb0709cfe55651cb5dd98e948f314b85cea71ae6094d20dff6368d59de46829d68bdaf7c4b141792a18cdb71e550045964ae99016555ac918b6f36997cf5db08a65717ddc076f965f125ba0fcd1d43e3cd170baa3cbd802b464ed4e2c3cb2aab45f70b81abad826a13e59639357ddf84f1e26aab87e2a35da34a47e4ca0cf77986cf142b64aaf2bdc0025223dbe9598b8ad754ef3f87a2aca718057", + "030635d1fb083369c8723d08437b90793e2fcb36c86d9dfc2a5e0050d60f496f5b213e9332c2fd39aa4ab230eacdccf989fc701a48502d0bc6ce6cf0150ce81b023626a866e1b75a876a03d5154c0c8e64eeb556dd40e13de141f4bf2d7525a15384bb0e9b1933fcfe0ad23e4bd1586b7b" + }, + { /* i=7032 cDividendBits=4056 cDivisorBits=3255 */ + "b2dbccad9bfd3414c7db5a0be000f65b5437d2142ffdcff314feb5e8da4321a8c51b4e067371deb101a07f30187112632cdce531b7d8cc8b4ccd49a278621f39dee4bf42ee24eac36a827f7ffda64baea731cd469a4d6359cc88af08c289697dd94c8670111d2b01b7ba56bfb36f121b45214db5cc68f0df50dcc5f74f093790549054f842f6af9394ced559acb3dfc1fcff911edb071c6489908ff145924fca309004c8d6bbeea2584a5a9747bb568187a51aa015fbc7c73818079910e0da77f26259f398376bc508727b1060586b7fe6fdda8798ed246c77f1da4df3dba7c759ed51c5c7961f12769f958e902e259a524559cb6defa78b5e74e66fe1846299d7dc3174427b4fc9320d5306305b142eed04ddb6218595a4902c9ec80f8e8ac85f70bb2abb14cb0e26ec40e3f86f2656a1d76f0962ab6bd080ae20b815839336fb01c833fbd81b108db7ebc586741e3873297a51f627fbc73e9f07ab69248261bf79e169d0f245512c591fbe8041fbe6ae4331ddd44520a641b13f915c34890abd3bdfb6610ec33088e68bdf29ec71b042c1cf780b19e029ad2184b04480c78560ee9f0b29d272da7ec44382fed5c116e4f9361060b2cb69dde3c39ef169044beeb4c441b1a75de8f4d8479b3832a1e0c96a1210e69cc15e1ce0468093f16b11b9657075b8dad21c9c4e42d1d4fa141659030107a8532e445bd988", + "247abbb004c9d7e9c091f66e356e1ae8563faf65a3e7069ef50172c77fdbf19bbbc5835bef6f91a132219a0b4da8a396d73fb6da89045357fb2efd165d2eb046448ae6e5149fb8b6834e7bd9f0d17b3f5d4738f008f84521632d131e963dfacc313f7507c3adcdd3d1429ae608c65faf2c5c16c78d26b73ce69f4ecd74bbc8d253e739e76a8a58595698af5b9c19a0a9c2c10869b3f7b0d045ded43abc06d08c731e8a3885f13adf9618b8d2e7c37485b78ccd9cddceafbb9d0e52a78056956a8956c5cb37be9b80c1fb06a76b653a8bf1c3f516720c1a75f8fa67adee8bc90014191cdd4199a03f280159571d024debae374c875bf767d49fb54f37731ac9539cd1273ddccbe4c66ff48d173552cf38bb345386e519b9625cf3f060634d5392ae14b98ea69468f9241b04fb9b38d53842242efa3d15759f9bfa2001d55326d47bebde0b3f14134d097dc493123497d4ac5d9d886ed932f15afeb0061ac1e3febbcbf9d5e749f230bd314029413840059b42fb824651328855088e093aab4c2041754ba477cdff26ccfc94e407c488d558c861441eba45", + "04e72af1a4023f3bf90d603d6e12b757f100084424f2f6a61854baaa4b53395e97d78b9120fac3fd191eb9fa5293e43314fa76fac7da1fb3746d6160f7e254d6ad205ed618d32f9d598af53b359c3e397b038d67c7086144cf01447d43830a19aff47bb505", + "235a7ab92e7d18ca7adce085cd788d5956b1ca46978b63508abed9a21d13de714b9b8b608b799a31d0e3781e13924cd6f89b82414a620c262d2b91847fc5cd4a8193b75cc731350174ac98f19d37e4e172ff7253d47b6cb49b3615a8ff2767facba34ce841cf0f0f6c5b53e2d4a500fdecc413f9d14da44b73885bd59afea20240626ff703fc826778837eaad52940198ffe7ae77f9ebf78dd0f20756db8a1f6af321974acebdabb29fb51cfcd056282bcbe3ebe87ee4e109ebdf5e2de1fce5d980e5904d7da8d4f8a50729254fc80f671c22fe086c3b41f40e707b9844026976a951809726d79951b3ffa00243899ca7c8efaf05e1361d863d05d2258b5bc5fc04c9cab3a8259e28dda03215ad90b16eb5b9cffd3600e714a911d26ecaf74f852be92a07f18e937d1d71a16690b7b77292f6a70c350efcc0271f03b6912c33bec7438d156176a8f81830fac5dbffba740cfff75a8ee5a771e2d8e9e3e16e1330b50b1285c14bf3f5dbb0c4e6ca15c1ecd7e6d115a8042a6a623696bef013d7132ce0e70be517ec0b23c1c99e8ff1ff4b28da5f2e86d2f" + }, + { /* i=7033 cDividendBits=285 cDivisorBits=35 */ + "0d961543ac24bd18c90b79073cdc75b3f4b50c68e77a987e662dbc7f2849cfc16d62d70b", + "064ceb40a5", + "02280934b249fff0fb19d91fdc3754385b83c24398ec532d52f8a2d3b34b54db", + "021f9565e4" + }, + { /* i=7034 cDividendBits=1969 cDivisorBits=1152 */ + "017256a5b8ac70b9aa8660e91df78eb3b9e2682346177eb8fe6cd534296a1911b92f984c9528d5860616cfc6eda600e29ba890ffe40c598c8a4669785614cf68b3400e41a3509ce54e7466f26b6cdeed65982021fdea6a5279df6961ca15cca333c1b2eca985a88041c831001a76378fd41e782849e5bb5b77195c1108c7be2fc5e3f323fe703cc87f09f3ff0f942eba13642367ec0fc32774a5da7de2917ce3fe3b0fa1d5327e2519c562fbcce6092c611d72d9ed3385739539024035ceb9cab2eb637796c78c1474114129e6ee9a6d365b0ed6fcfa2b6e5f69dad9fdf7e24baf646416f7bcf157d1219f44f1060c0d4074043ed02d41", + "ffd0f5dd387062f942d9c2bdf188a24242877ea7c9aeeb33b96269f012ebb08395689383c5c22c74f1e2a707c5591a1fc5a45ca4ae33a5ebfa7276310bb7085e4fc723343a5505454d9474df88d9bf27cd39ac38eaea64a83c8d0a2f758d2c066c6b07929bf910b266f057dcd04b410341a7095115db1dc21ae241ff65d3d3690ad85654372a54e5f9268bcd277b9c6d", + "01729abece192eefb92a24be762b5ed072375b547985d593ff3711c670324ccfc09289ba5d746d042f4ecec356062dee75f19ba56603c7174a161469435aa4d85f9123d1322725ba21d807e9156d1951f81a39d0f86def6a7647ad6dc9f7fcd15997cec7a46900", + "01eeddbd1b81766cd380893241f58aaf8dbf385d687cb17d2170cfa26a9ad647059c0ebdaaf37d61f4106b7f15fe50816db72187110c07a74e3d4d543fd8bfd856c48f6bda66cfaac30cb553144961ec191d4ce25480c1b8165802cab4ec6ea6e62fd34f5dcb819104f4b0e9b88e13c5e3121dd447b68e249ccd4bd741a5f5cd733228f812e4d3232729c2539ad37841" + }, + { /* i=7035 cDividendBits=2999 cDivisorBits=904 */ + "6cc950000e623917763a5dd2d6fce9374a2e081e34f563f1fef4e797b51870c6b01ae72a17b9f9ea778326bafc73881d1419dd343354b54119c8a4636b1a923a98f17e99b980dff51d966659f158396aa2e992be4aab437b07d99f4a0709241f1f03637227a25f722dda6707ea4e71c6617ea86f69e5713451056bf311eb4863ef5a0e57b5e117f6699ebf137b08d4465ebfbc44246b3473380bae16beed93c07b43d7f8b032b488f4c2dbcdffd6c7e72157b0fdb622c5d5a3233b971668ef48577f22814ad0fae87747843203e7b9dfb112df740218414ad171ee25c5b6f1626b48fef27c43e5af2a2c013820d88211e6c96c04c2ed4e46ea367479cd594056ddb76c223c4191592304c816929422e2ed5ce1703842a0eac76fef2f5bb4059c750246e88022b867c543ef9c4f35da8b0539938e02ddec62a904beb050b9e6a16668e52a854c01fe5f2a3d69b03f43010a67ca5e1dc34450deca0abd826eb85f0f9f1573c0b57e8f374f0f129aaf095cd7f7e44a4c44d5", + "9e1f59060fb1d2793bcd0067b46dbe8f67560220a0dbb968b2ba1ef25e53db581fd630bca5273aa866f930bff965c848f5ccb6045ea15848d6361edd329749564b93f0b31483040dd55e65a2fb771011c1670fdaa235f23ed079a4ac1877a8371e22a88891253779b47b73911e8730d4f5", + "b01ffe2ef5ec77f798dc5b27406e882b6c866faf01ce1e132c59202cec03fa1bcdc15040ee6fac0ec4cab4563efdb7244225f6ba896a13a3c562eee617789a1790103289ef79480ed75eba2a2646f04b108445096f1649e20b0e37e5adc7c04712deec7e4d9c87adab8d7a53b518fa6642dd0bcb7801811552892132b99b10d0d9aabd36319b67232123693585fd8362d44039f995d6b95f36ea4c1accd29a8087dee1afafedebe8bd346c791bf1c061b35cc2b583c942a5d3f812c60b451fa40d2e06ddeaa7e04ecbcac42419ee15a5d173f9cba92a9a9b22d063b6b2650f4becc2ae827541f3649866b452a575d683ef4e348afb66ee0cd361a1a651761e109fc1e273864e", + "99df5fd345ed8605fd343cb4b59feaf6b7d88b40c129c4053021922abd16efbf42b0bfec7a04c9818dba17a26e43bcac8c1270c206e2b880e44a3c7729efd95832739b3f17f9023612df80a8bcc569e5b4152e9679aae17d3897e3c762949cf84a07a65fbf422b6e7ad837372e95e4242f" + }, + { /* i=7036 cDividendBits=2360 cDivisorBits=82 */ + "324b5c0aa963ebe677460c32a4366d2ce7019a0e93de95cdfe8210047fe37d43c0751f73e881c019013a12f28833769232999a7290230e2d8e6e680d5eb7e45fc7564ac3433fac6efafdc112e044f52449af8cb8534727c1ed2ab674ee12b1a92eb01a5be302965efbcb8829d129717da7fc167bf91bb44ce3ff55dc8f56e37d019dceb0b771b7ebd3338c601e916410fb7d833719b7ba1607bff9f64c106519743f8be7297506b994c6bb9c2dbef30d3309fd87c455b531036552e275a67efc1fe96dbef5d73df639382821e9c93bea1825cd2a910b0debf421e8c0fb60a140ab5a0889756926067b72dcd9ead039fbd6866e8207ec0d66bdda1d24667e6d237ef21a7b86c9e8511d0b9da908c03a49b5c5c0349c1baaf9416aee2ef96e045b1932b26d784cc9", + "0399895683c3fb26a27b15", + "0df8bc3c5da2e4c36cef702bc013a19da0431cc8ccb68b8dac0849b8911f7c2ba26a11354ba9ac7beccf56d2096f787d5c3c5bb2f58689998c7398e12eaf494c3b784ec131396135163ca0389e212c0eb2b2d53aa3bcd279c1579206656edd1fd65760edfeca4723a354f377c93972f219672f5913c234cfdfb757da037eeb74d9172d98c1f2b3b6c43c8089634d1f17b07ae94c84276ed6d9c9a1657696bdeb1fa57f97502a6fc43c92321ff64ad2b432fcb81257a123e6e8f10f1aa263debcc2fd353f9ae5fbcb9014487f75491fafe0127e5c381cd237f2699a828648cfbebc37e0849b5a87730927efecda041c028ae0e628ccfc3a9a9b52389978f9aa5b542493698a8b9c9239c1f96946a747370e8493111f08bc399fe43c04a3", + "03807d611f9a6fbd2b9a6a" + }, + { /* i=7037 cDividendBits=2546 cDivisorBits=683 */ + "02c92c69a5d3f1310f7503ce041d0a577a87bd69551fc8f583d55fd960a7642064b4bada4e4b9fc6dbd88db8455e140eb5738825a6ee9c890cada3a716b11089473a196013dff084841e26e2f28a431a24cf906ccbdb52715ecb02c35a4baf559d0f7e34208cb1149947e70d055f42583deaab811abc7fb910ce3e32437ec3f979ed0cc79c3d5ab3c17481e52b7b9b830aa1dcbf50620711aca2ae8558ae241de68aef99dbca5acd75e29cd31438bec78ad83b99b44bf37434547e40f3280cf9ca50929b72e007fb2fccf71c86efceb7c79febfad14919e6d089c377e25fa8ed1b0f4de3abf0413cf9f196a32056694fda0fd31c34a0473a6f00866c46fa9c5065604d55fe7d0a5df059c7cdef869a08a017e28e91a639ccb5d862b99e80350e45a12133bb1bb343d74089bb3f98429eefe8316dc13191b46076ef56408a15", + "0b4afbf050c00fe724def942bc4daf058af9c2bddefc28436466acfd572d350c07ad0a9fb3cf528da4782a5e6af3c6eb225783be30c2cdd8145360186c83e9a30f7934fb1dd939ce767717e2e5937f39f428d57932", + "3f26ffbedb5eca1dcdbfd3692d6383df10ee8af3ad46737d014117d1cd8a6de1455b9607815569de7ff542bc89db3c1981d3b62357eba77fa2d4fe88c2c9d9f616f7ca7184b52a4152de255a7a4b5ed17cbfb1903a04a8f063f642abcd17a434892d4d8290ee797e81e31a640d696bbd3a75be3222857905fa258893024aef8eea4c28c000554bce0b2194a1cb4e020cc28bf1d2948adac9d52099bf075751e256a2700e823341942c3ab6dc00e7870be200cafac4bba1a8e1d466697e3738246b947a4354d7bd003de3b83c3e1d3374be6444fd4e816e0a5128b0261983603c905b713c2807045e528d", + "581ff7ba13a1b42016d36099e16a64068e463d56eb2a07430353fb53c971e8190835651ee3ec0337502aa3fac9382b2b0d0241919a6dc060af8e8c938b9a784c21214b500cbadfee43c2cce5abf4e1bb2f7ec58b" + }, + { /* i=7038 cDividendBits=2627 cDivisorBits=2451 */ + "7deb39d42648f8d88a199f8840c5ab0d1c1dd042f245f5d2d37d638b217206b98c51e8701f0d30a0519fcda0dffa4e199af579dc9c012f8b1a914191186e9077ffdbca629d24308ba56560fe384a7897b7d5fcd3610f908f5d1f7f3c3737ee73c79ae6194d2e96751539283080392cd0b281dab1a26e119f579dca359b440055ab29a856eb3fc646f4338e3e5dfe56658a291ef8b3a45f719aa1eb6ca5c87fb5a4d2ddfad076b7d84aafa33a812510a84e88d28f06acc601c1608c131dc9dbeb498eeb453061ed0c1fea31e7dfe3bc717ea66d85157b0da2f02a7b5369a89eb21a25f693c263b0a8764b9e2f65dbd8acba18e37a12cf475f88250a4326c1c07ece1925098ade51f9482569970dabaaced375c651ad7075c1152278bd9483abdb624ca98d45a39d365820afc04ee667ee09f934dca83a43bba53ea44274912da36006c5ed49e7775e", + "01edb3a22fc493e3c23c5fbb8a78bf06833357ed9ece311672fb81f3f67e1a79a014092ffac0558ca4a548f5ad38451d10af812b819860a3bf1b2660473e6d2928b2acc97032c5ea57d0ddec7d85738b5b8968d71a4b26ca770ff86c7a86548995c6551aaf34b86884562e2b6037ded1841cb81e9476e21690bb1f52b80ca6c9b8641a04515dc505bc3c6e74664732822e1fc8b6cf0f50a338a8258f3a5fc3a9d1d10c5985c602675ad1dc0ea95d57a27dc66ec74940703a4bed6dd4de64a45b18bc6aeba76429d2affa97dfa4f7b7a8fca81c79050c8f9a56a396e72d8f967483e7fbdd34dd0092af18cf3ac96663d36341954bce6e67ddf95b0c51ed9ffd7f5d1700a62a47cde6b3e5fef69e527f03eb8b0af7bc66eb4bb3a8b70fa1989ce24e364a4b7f72825cba6402208973e243e7a489", + "414afce663d448c89d2089027df972743444cb05f1e3", + "68273a3fd74d9cdda4c2d5f805cd1d8edae96b4b2f5ade1314138582523cc1f61e5469df117aef056627ca9b25a0a15b6e5a71548a8dc1445a3c134a06c6ce41d6434a3615a65408b8c81fbeb23e5a863b446a872a31e71359afdabddad002efd516925762f4ce592837437598b3b752a5a5275c0d1f03c3912bee7e7a1563b258980847facf833499e68414ef84bcdc6e1433a893995aa2c6de0378e8d003a518779a5b9154a682113e114e729c93315e8cf62826f8406eea8ba98333cc92146c073cb155c5b64055ced00948ff6264c6d579797abc93ceb0b13289c32a96aeaef40236bd30d6b041b2b0f40f76dfb39f6a8bae2e893a33def6c3c707d71d80d997a1655a24010a3238ad6a18fe5a43f7fe2ec69bd8443b1c97a3f00abf58c0eb5bf9cd8a2488c44529c9c176fb27ee98e3" + }, + { /* i=7039 cDividendBits=842 cDivisorBits=652 */ + "ec5846ad7e34da21fa3f2b2fc3e31886a9bba8f6f8d9ecec104d00bbce94c0b2449169da6495a53029f6da12f7b67e560371f649d2130f3a5419fb80184b085835573693a946b85288b40f6f25e91dbbbddf59ca9dbabedf199848230a4c74e535327dffe9742621b6", + "30eac5337ba5ca8512f13bc0840803ecef88f2f328182b434f25bdeab4e62657e754be3519c7ea48b547097c1851facc8a1aef95432fd0d3ea9668c4c3a50fdd324ffd7bd545f51183f145d727f5f65a9f", + "04d4dfdc1c35843a5bc3d56b04e3c4ddfdd685edd1053963dd", + "0cdd0753f428478a1832c8b744f9d54e43eacf56889081ff0f3663eb88b4eb6bce8cc82a6ca758f2b09fd98c4a318a2eed78fb38b191e834bd076af15adbe37b2429b57274b705790958ab0bdd91076973" + }, + { /* i=7040 cDividendBits=2935 cDivisorBits=2251 */ + "7e0884cdd3d83bb65ed54cf9129e16b400746b5befc49cc85714bea377dbe91a401a41ae6f8d464d18011ed5ba4cc689c6a763a5d5984da1dcd6d53d7aea2e2fefcfd6514904706ac016462674a15ead5be6ae53345a9ba2c866c2b0d0a7fc877d59314bf69357f8fd2b9f6767af801c3a435b8d858f8543b840edc03dcca1ac6286b46324d12d5ce40d50a3be6a750ee5d8bbf501166269615e2d54253d689795a7874b0aaf174509a2c7473b3133b7e09a3c6a06d83c85f3ebe5a7e5b5aa8067b3e131b3230ca2e873d60e7bb9d66f7b766b2a5654b95bd94feb964fb5e2121121ba25b82c111d7939e228c76c5c431ce05229056b0ff6c9470781b32e3facdf067e66fb315fdda1de587f0e74ac9fcb6b5c41ef9befde6ef8be548100d476167c272c806b59f7f1ddd9c87cf85a62897069ad0c0480c9265852daf6accbba9796d8bf4f025deab7639d379704c763301924c707a54426c2c2c2086254c3c6b7e1a30c33eb1811b53e709f9b84d9", + "06621004633a9713fda2384826a4aeb87c66392beacc68175d4bc6dff5877b4ad4e5dd195e29867bee987d375088c7e44c3c9f082181a82a09290534c6daf568bcdb36822fc3308c894d27f5a333bb86f76b4e61dfe83030176333547900181fed9661055f3666d12b326c35732eb6e5489d6fcc34dea2207bd3145d5ab47c32f81847bebafb461752d64fc227f40804ebe5ba58073ccfd2448ff909a3752627bcced48b49fe1f6cd65f3b551e3fbd957d3eb28510a7e92b22fa33c8b8b1fe398895f60948aed2803062b2e03755d2e7facb531fead81e8a2db3c95c26a9c0246be33e8963e8cc869fa0ae599841c29a88da89c406da59c0e1235430e44a147e3e27bfc8fa4247f5942d2736144d6d85d8078f658328d82534fd", + "13beb67346e575151675e8b3f34516954b34411d7253866806eb33af545c21069c207186715335d793577666e8fce99d5693689f2361c8b5cfff051b44cf6467b0c0231f45097f96af45ca9a1121b573768c01afedb6", + "036e84b3805280d6cde057bcdd93f82827c0cfea0fea709e36e74651afe06ac96b7b282e7e1bfd291d58c2f5b381b6601937711890c5cd33e812d70825fbd82cb5ebb530dd5b786807c4bccabe9181ee70bde228068c62fb2737b2bd38c3a9210a27d6630c237581184292cd819ad91bd272c97777a782ff1c3fb34859559d364be888c2f08b093b3bb6d0bd2c7fe1669c78472e9f4c6cc526df9acd7b3026ff48a58959e6e2b47dcd698123603d23dd0bc28a3a061e60b261215458216ce658a24785b372c1b4b18aebb81b088116f67260daadf78732bfc5f990e6dc1ff2385b2414bfb45b6dee1a8ba569b9f046fc4dc354f9f280cbf3568502ba522a52ad31aa5dd00b1d19bd66d211275349b7ac534d49ecb04c4d269ffb" + }, + { /* i=7041 cDividendBits=927 cDivisorBits=192 */ + "15717b891cc9923e040bf92521f61f9a1141afc975650149af37921126d95ea907fb881feb47198cce39928fc2bf8cf292582f1f84c7294b938d196d93c1e497938057873866c768607a051820d3fc5744a81d146b1068644e56d7042e6405b86526f5dc701cea2c90a603755be53cd1836c7728", + "a399d91342d2936cba1d8628c116577f5482b7ee38cfc2be", + "218dd937cc36dcb352328e8c45e75ca4fa8d1a89e49647efd6d72f96ff288140c717f06c64df7cb5282960db315a350cdfedeb8567505dd6e7e2df665a09d08968fbe9129a2a2fca2d04109e687441fc74b335be3aeba6e89114494b", + "83006f21abcfcdfad82d8ee610b02d1501629e1acb2e3b7e" + }, + { /* i=7042 cDividendBits=1006 cDivisorBits=675 */ + "31b9dbba02a1f5771935b853d7334eda343c4b03da65fbb4e0f18e0e3600f09502d55a3d71e7ad6e1b89e4d828692411ed611ce5b945223913da05db50788e7055cee8ff11135e2f4b0d675d09179876103d93175d0b92c434701891d7bb41132663ebe1e3dd0417b4fbb13ebef1bb27f14e3d77a1bc164a00d4ecbb34f2", + "0332798e04c0c9979934e1dd946e17afd49ad7c004d308b2639607b80d5cb263f7ceda06884bcb683bb3f6085ee426478f92bfb83201ded95ffce4bb731f1968ebb515312638de960e058cf3c3c4f2e1f2cc8205a1", + "0f8d9af7871ef52bbef0f71e2596f6a63ea442a2d175675eee9ae459fb3c7e094609849ba31d41298e0b", + "968c0017d4737bd9dae102d5b1e8913ec9e7460370484258291623c4e6d3abd31ea4501c716f2d51b2715deb8e3426b305858c7f7a3a5e2ed6e8319d31d15979d3654be1c5f6997bee3b13cdafeab3783c3ca907" + }, + { /* i=7043 cDividendBits=1232 cDivisorBits=24 */ + "3c0ad0df0cc99c09c9bc6530534f83beed7411499dcee0908d6f26fc4189f4fefb534e55e033637a1f42c104b5f9f73ea88179c4525ab08b244a3c8e0987eb2dcb4175f3eb3417a24c616c830f0af12296be96e3224d3fcb7322ff04a48e65564e7588c34347d1c71f6b11e76b518c59dd9d9a0df5a744d910ae9853b23a36bd62beeb1b6ad91e190c8fa2bba68b6b5490fc4f55294c9564e656", + "6fcd9a", + "897b2876e9739f2b4cd3c73a8e01539f8467f7a7cc039cb3a6c2fa4f9d4ea25b7b28b5637b34c692221a9afa78552d5105742a946543a4ce5c058e694b0eedb73f74447165fe28f148bae48e16890b27b4717d98e076dc71f9abd269992e9a3922700e8f7038e3a9b9c6cf7056a76396e1bf90f3a6d8ff55796565b6c59a9617872f4e313a8e198f387f64dbace1a0a434b6eddc94ecb4", + "365e0e" + }, + { /* i=7044 cDividendBits=1218 cDivisorBits=14 */ + "d66bc48dbbb69f9310ae17098831782dcfc8ec52b6c5a6a94b1ea7c63203e800e3453c456de469a03c392123c6a8acb9e9e6ce35c6c4570300198c75fd7fc9aa4d1d5851900ee17d3c273924a131538261be2b48872678ddf6efa7ee32adb866b1d377e81f4821b799c5bd43b615f04a10fa680825e04dee804bd22bde8ab488eba6bbf0547b79282c5fa67725691ef39057d0abf2c1d217", + "1e04", + "0724c5ea55f2183d674d5cda565c88bc18836dd1fb295de80e3adb9c8665ad6061200645bea16577cfe62f36a178a05737e6a3dae0e88e8f39b4e407a98fc8e25bdb2175b95f3f155d05f8934711c4ae6379136ec2897a3b5e2ea18378b16e7d397f61f225060052e079ba5858282d51c276f39b862042902441f5ad8159c6d8fbfd8f1f983416b1836922329ca1d1db1244c20dfdb16f", + "0a5b" + }, + { /* i=7045 cDividendBits=3356 cDivisorBits=1531 */ + "02fa94a8faa938af0dab9b4a504d234f5a8f3d37c8b3db5c345abaf29de170cf7044699db701ef8d61cb1c2f42984b15d23c4a7a647efa56b4769fd46ad8f354001cab7407c274d039a6e6eb694779deaef18528df35cf448d54f652b4c0cb58e0290c540ab738992419b54b2b99c74fc7bed7fbcc18e3d353f12d38c3766856784563683b55133c22a0e336cd675b6c18a8b3aa4ac58756e7ae600b5dbc1743b67038587d19ec6649b7e54cfa3c24e303d1eaa5fb2990999c5332795efa83b5d176842854595918e3acbe127eebae86aaf52c3d5d6b0a0f499a7070f19e42ede66ff81aa7f47a9002b372b27e6f644cf78dab9f2764564ffc07b8dfa9f72651e5b171db856528326533f817fb7f94bf6443769c7caaf5c0cb02e8b5d07556352e146dc5b01b9d26b007240440282f65f0072c7d2486717931a74a29aaadc3c8925350eee0539ae9dc4f043f0495b5deb758f4f90dd011ca49823bf7302e9ba028abcdce18b224db20a70b98c49d51555520c382019ddb48d120c5fb12968250672a352ae556de6e3e625c5e48ca957ec06deaccded311a9fbb8214072197fbc9cc675aa", + "022a71ae9e54428f5810f3da8649e9d500c25e7cf0b7201141219de1c54f1b6a9fb189a7d90c5696752f11e6a1cb7a5dbfc7faeec9473df5a11019392779b1e88a60431a3a446ae7866ca022b053c3c1e8b9a9853f735687b48aecadee92adcd139c2a147284f834d03a52d2a91721c257475556968476662c59254e74e31a73cfaee20c4f72ab922502e80ac3f4a9a1bbcbd46dfa787c33d1314df75f6c2c6746056c632bfc74a1057b2e8a8607432f50f6f0833b60f3975494853cb889855d", + "01601a044f294fe576aed0fb0dbc2851b50f3e78119c4db4356bbac1dccfe8c81ef6e2881f72c4ee21b0e0c4605eb4fe256b6ffd93d2b20d8acda25570645326842d53ca5aeb4da8cdf142e820ac3750e8abddb30a6bf138f721f3ba7814a308b2385b9c24025cb92b2c71d618765c54008c4868881443a3ec93b6356d145f400ac4e366f55f53c9545425a0d9f6771413a85e60cf5106371a49481ebe5749baf06136b2885aeba798702a0091328f6b5d5e2cc58916cdb774fe4f6063d6a8e88ccf71f137d0592e3795992e8c7e3525fb6ec4c7cc7322d75cd6cb162e528bd67ada3725fa", + "01b5f5025a3d89176b89ba3677d61801432ec4187130b49161661fafd2c58bbb006265814d778196e4c0967fc7bbf7cb6301ee7d74e49c01f4ee7c9b407f587a4e7958c525716a96cb9202a6d2a167b094f150469c902d758f4e10b9549e4fc37d02e6b9bd44c6469195f31c884f2b4c7bcb63ef6ac43ca89f645e9ab68dcd2d8e0a776c8ae96f19cb56833dd42aeaa874f69730779663dd5f43d1f022bf79e60642e0acf201eb93284d56eca9c0717beebc56cc0e244593f2188e55ad38c7d8" + }, + { /* i=7046 cDividendBits=4 cDivisorBits=1 */ + "0a", + "01", + "0a", + "00" + }, + { /* i=7047 cDividendBits=1827 cDivisorBits=1194 */ + "03e83ca1293b82495568d40a7aceef8e9eff7276a344af092012e74c769a4485b98c93509f8fd8e3e62304299f571845a94aef6fcb2f6cfbdebb95b4c30f9c3ca4162ea6471978e181fa5b1ed263c5402529ffbe32e2a59ff92488a6bbdc1a1f64e16bba05693e02a24289ad3ca6c92787014119ca7de4661d4fa810f2b2c08291320181dcb72d00645211686715e55ed36027a2126949fd87d334d8ef4c980572bccb1d6b6d61e3fe8b8776c1d240a99fcb1bf17cf12fddd7333155efa51ae14072f47504a1162f00f06d2559108152cf426d2589dcff5c07060ce9e8b92499bfda0bc5eb", + "019d60db36f36b3e79ef0dbbebea78c8a3da0d3892a778cc44168813b8a56e72a84988e0389b9a429cdfea63be21cdc5c70449151fa81de8faabba424d575514e07647b1071ef97f3ea7e55af54ea3c49aefae5b59e7fecdf6e3961ec84758192658b0d5d47d3ddf2c4db9de04e96b0d3f33d23b3d13fc1e4fa0c209dcbc4d184402c32bd4aeac463e388708fd35e4e5823f0d409003", + "026b6f1f08699b904e1f04becca657875c6b7f1164eda822c2c5bd74eeb92395f0cd5a1b4984d221930aa34878fee2aa9c9382105f9e25905d2c2d7c56f020cbb1164e649bf3a31bda712579f83d652e", + "b7de10e2bc050a8d8d9d5fb2faf60f5e6eafac37a917ddeb03f5cf09db9f5e01b988fd6a8d325f82ed8af4b7a25ad69229da0fa091f0368a7a7433634fd8c3b8a047e2cb649ffa6ce9d1d479d054d9853d9c8d4645abb4967bd4e6c54ecee4288e956b66340e014dc0984868c5df88b0b73a7b8366a4261ebb9ba0aeafc362ff0326256309709f52a41a2dabe336001de0c6e9b661" + }, + { /* i=7048 cDividendBits=1149 cDivisorBits=384 */ + "0a8cf7728184dfdbd68b69f0e81337d099ffaa5b96d9dfca538f85645da70eff02cc7d6ba24612b621599567eb2cfa0c873bd474d3fec2ebf44776e6450fb4c51b7d5d9b260687e5360f6a91f012b82c38c185b3257fb549530012c7572281a1745b22b7b98f898fd9c0c4e930ec2cea5c07b9821785eae1234265d38de9d3217ee4bd321dd468124505a5bbc2f52360", + "fecdbac32efac05f2cfe3fe74d57c0225a155dd42568a6f40f68ad42b2c0001c1b310514c9fef4416691233780ac8686", + "0a99a5f8d3581e9b9068e146aad58eb51a46fca9b38a4b8c052551e74b092a5acab515f11b98609bac412cbadb90bffea8c2a7a45d57657f9faa56797d547032481e4de371643b20514cddf340e24c4bfec4e6c883fda329cb4bf7a64b8988fc", + "af3019806b24fc7bde525447de1b14a87b963333f3cae9a51c6c52c61f728283f68c5bc21bf30e65871e921c31f38778" + }, + { /* i=7049 cDividendBits=327 cDivisorBits=268 */ + "661fdf1389dcc274538c0ec5050382eeaa8cbbde01287db09b26ea89a3278954ce0d85a70a2641e6dc", + "017b958a40a281ccf852d08550914c9e2ed678819ea60058e9de85794fa96658fdcc", + "44e0025d39d2762e", + "07b5f668cb2f4ef1232ae3c7fa9a0ad9a415f5b8739466c86cf371b0ce1ff04434" + }, + { /* i=7050 cDividendBits=2140 cDivisorBits=514 */ + "c92ee6105f01831f8d7e11ef3abc8dd4cf24250d451de9cdc317a7ebed97200e8a6cbfc7e722e4db261693f9d56802ffb75d77871a7257597fbb7829eb5835d886ac24d086d5d10ea149d13b822ec5899edae1ef699f577b57b654747214f4a4d448c25f3415c0bc1c8acaee0a0270bedc3a867b105c31222d8bd22a220a2370e55ff9072309a62beda01cd152949fe659a193c097a1d1c7e6db35e46e5ab6a280834ec737522fb44e11d33606c51f18c0f7f8eec3471a192de16b9bb9b9099a054263fac84d024c34d96c2e746ec5fcf2c569b059aa1f7f581a7443906872f0654357ddc40f528d55cd40329c1a9c1dd653b42f2c2ed60998f8b5a72b02fc81a8ea1f5d207ff6ce6bbcbc", + "02bcf0d8b0877f163d8afd6147c6f5d4897f2be4bb5e714bafdc21bbd2bd03728c6068baa79f66a853675276a8cb8616ddf758f8c10b266ff386b6752bc6be7b1b", + "497a109dac045de955457dc1c2090419dfa51409b33b3f140311bd48d86741e3e71de82ef63c419b616dba849d492dab61f9667a47b0c874d60d480c8a5cfccc6c93cd0d1d33ccbb8d48b1869d812572513750bcaf7bf338ec7943b61598f2b2dc92b0c422628388a327afd4872c571773fc9c1e14beb189d10ce222a483f519f5d4c5b1f01a22ee46668ef1d82e2ceb8c126013abfc596258c41be737a1ab9115ad6de48a7b6c73e8bb8e809ea6e8c44896bb9656b578892aa68271744733460334cbeaa36ca023ac5e75", + "d41e56eb87c8b7b03563af8baa93c6fd4590b810d815d059328024cbd7566febb293e64ce0f87d24425364119d022ba3ffd433dde1936a5373f3f84ba1058f65" + }, + { /* i=7051 cDividendBits=1697 cDivisorBits=1138 */ + "01f35630a6907f86f39982525a992419d1f8ec1f54f6dbaab544ea68289cc7bb5c452a1dfe2598dd6a158b0cb765657145d524afd335d700cf21de3e1583c38976a140ae87e46d9511766751b0b11a62fb24b80f54b607e916572983701185c643f50e12cabe11e3dd05d230f4777d6d9a2b30a9e538b97503d760066b231dad374aec4d94489171077a4c60d1c33119aa1e1b9c2d79d53ecd855fded8010c9395eea29c993d377ca36577bb4602b2f12e96c852ec845314c03d9241ec6370dede9a0126162c28aac1b86152ac974d7a02c3b9663a", + "0298e08e4496e2507364089afd31b20f01de23ff17d6833ec3ae03d1667a361ed3cc1efdce9d5cbd2441190804f1fb8f7b7069614c8a31e04087a48af779a41d8776a371476156664c1b00a3433f602379820e62d63da8e5ccf396c4adb15cc7e3f968ee9bfbbd87fe77867474876694b4ba301fad616b98e88c452ab81f346646b4d9bc11f803d6829661c48c3bae", + "c042e894fc2898c2686222e70dfb3d8c1a8b9994d175650206b28f2468c604b6fc9ac31e4df2f87700338dfcff9bf4a15d8b6f2a91f28ec27a57b674f1c0380bc91a27455fdc", + "1be073d3709665cfe377bb774c7e4a4326b72fd0e569348f2fe4486cbe3ebf16ff407cab9436225a949749e8400c655f7f594e1f9645624993d08113d6d08272c07e3f39825539f5d4dbd193181197c7443c9af4275129ceabcf71b469be3a3852ee5dca332303253507a9c6e17e5e732b64727fe8af37950123ff8b260895cc3f70a87453d5aa66f17e392a8ab2" + }, + { /* i=7052 cDividendBits=3739 cDivisorBits=3200 */ + "039b5afe136396372563bae25b83115183f75983a8da9b5b6f2f167cbe0879f23ac404e4f82f427be6cc7d520523e0a6b201746d59b293d49dc802ebed7735441ad230cb07e7c937520d845b8d25b6c9b119bab3644874c439df13ae0bb81bf0de19d65c669b50fed292558bdd50e49eabb7ff325192fbeca2f74ab0426ee62f0057b227a3c6a833fded598914b2357dba1860adf1a6c5591ce24a5b5ea62bb33ea75e0edd83d6ea88f97cfa2014d6f8b900a2e102e7ca85c28ad261f909fca57193ce621c2161a082726acc3a4772e22f8ec56848247dad9c83fc98469f8d57d86c1870a5af44bdabf00a970971298e28f827e6eab6d47ca37b791ece912c949583f41e21b1b0d85955a80c4140d8deb15f4fbedf8e30e27de035ac95a6d5f562377f09a92a7a63271b8d6e3af0cd034dca44038ff096d93302020747b0cd7f261ffd667aacf0270c9db1d6637788e99dfde0ffe2a0f9f725e5f5aa0b1053fcfe443b51892cd1b1ff8d612700f05c333faaa68f685ae43ef8a05aada56bbb1a1b82e9c684a20d01d878c49e295159c84dfdb055a5549bea906615df5c09ff2c36a6a94c5daf7949474f2ecc620f461778e58fba6805c0c29cacf0cf18348079485a0286e9dee7585b8eaf6651add04f6d4e10d5", + "bfb4d5f1d57996946ff8eed47e2ab148fc702ecefc6b8fefee10bf68919c8cef898f8850c7afd485400c3cdcdebd6e0e0d065f535bdb084f230b75ca37d4012315dc5edcc45c2450294a117e8b33e321ef7bf3316f6350d3a3363e5746ac92b2edcb149efca0631a61bb6d849d0509e058651ed2230a58946e8311ef56b6708911756e034d0c30ef2dff1d5b3fcadf85d65d2105027e0073db31baee75e5f1abec7dc12643c2a573b5611cd6324281fd2062e21b39e45bcd08cc958eb72a5c6c662d47e98bd69397946209d19ec039b8c8f3b2271c0591f666329690db0b737a84fb3a8998454c1d481a2f459ead0525a5f09c4037a1b0df626f0b70277e6bc4b9dc609ea4762947f73d096d46f415dd7e06aaf82c0962b9d1a61e8a0c52377f7c1d9e244c5d1e7829f56d975a0918aad504c639dd3a28c17c030063141b97d9b3c0a32c302f6ea43b2fedb0c2650bd9be3fed825c907416712fcf724acab344c978534dc40549ab842dbac4f9ffcbe517c11d550f33bec51571cf26ac5a05e5ffbc8df6a2e2637c12ccca0f8456a791", + "04d106b22134f88e9c799b2758216bb2856e36466e6afdb5c60a5b649944f385c1b47c33888502bf68269464672d08fdc6438cc02dee6ca21d8b40b98877eb4b1aacf0f2", + "48c38780ef0962c8f68134ce0ebcd6998006facf6ca0f98714d12845441c8cb3cbe9723078695610e2032f5f3ecee0a41234aadc299554fa83e97057c88714a0d8ad4e976bc6f0d7f7c95a387232b0a1ba80b8289ee675ae8fdbab2ad9e8c07b3ffe698431797ebd88fd4bada92d343462544a110fa180af773f830fb43ea3ffa371390305168b99b9eab57b85bae3c6af93d65450a7a9ebd1b1a19bec12580dde3d6c0c88458f41dd714593ae51cd2873f244edaf0c5ff9b5688f3e9e0fa62dcbd3715520f049bf4f055dfdb8ca04a45c53e477520cc2f7a4e95350808a9bbd797cbf6fcae12cfa72f21dccae652d56dd4749539905f3829e17fb4c4630376a1739da561cc154052d0d23c9a86a61738dae536e8cae1beec68dcf884516570a47211056f6917be9e481d7d7e7560a65e6b8c468717359697df5374f4e7339ae31aabfe5b0b3073cde1ed008eb4b610a51be338b34383322763d315d99c7eeb46037899e8779e5fbf1a22dff79c58d69a339e3dea2a04809d67ca3f3b667e3856fb7b20c52c48e41fb2e57dac6dfb9c3" + }, + { /* i=7053 cDividendBits=1790 cDivisorBits=870 */ + "298e797833dec7df0d21c9d47b6e149b7ddad374a1db25606ce22da38a55e2952677ae2e6a1d003a23bab76199ef05c30d16a8f11876edae3564282ffa58d137cc50829c612ea6e216b51ae373ad58756673d3212dc9b7a63ae61396a557631b1f52536502576c3ebed44d2d51dd7cc56c857129bc087d3815e35c4eeb121aede5bcea62596523f7dc69c72762e262f5f11c89a4793618edaeef5f1cae763da5a4eaa90e5bfe92b51da4fddcc6c2858d19b3b993e85c3c060ec577d098caa8f2d8329487cec1da3d2b5fb15d19dfb05b0156a19cbd0830564f43b2cd07301ba2", + "1b5cd215aa3e7700d1c755a8c7105597767aafa49e20e112b686e68c38fdfd0891858aa9391853c6b8a604869e851275de3b4eb657ece2058c94d7d399f425ae88012506c750d16dca7a946283991afa776b626323e7052edaaed37f778795d930e3cd570cc5629b631026d87d", + "0184cbe4ced5eedee9c2e2df3108b8626c64c3db5265d660ffd1995bb30ced066b754950a54e534cd3fb35bbd0f49a7d999bd519f17221a9ac3c8787ba365831b2ca6a679c8dfc3353a1feaad3470f66c150fd0f3d76ae292d58944ad42e43748dd0db0ecc54a6b1a4886213605d2fd5a15f4f1f", + "17a8ff30468d313c2a26c0a1e9598a50defc1dc07d15a53388f5c40b732f3cd6fd87c7291dd0fe0390c224c7de3dcf86fdceab0d0a1ad12a8b984e2db16de8581a9ecba4985eecbb619e4be07f316c9fc5e82eb4fade0a68b07d904998f03d74345ca59d99ebf9d040224a517f" + }, + { /* i=7054 cDividendBits=2129 cDivisorBits=734 */ + "012428017365448704bbe0fbd044581e6cbccae73a67e8ba50d19c3eb1e535357244397ef37ff19545af1b317dbe1b7f5df26d021be8b1e639cc1bac68b12771d9173146df5a8e5942018b2e34dc129e87af879b3222d59edd187fd6a8485bba7eb07ac122ff4f890c44e04d3e557d76a5e1ba8bd6dd77785919c19aa0db25febee62d95ba53f6b395656e399fbfd15a8776aea91a8d70931d466cc34f3f30a4b40b3be21d3ee51ac493edccfe0364caeb2a5059128b9cf72cc42561ce503b99d3670380a365499d1a0d56c0fac45b667252a2a4cbfdfa93156ba4bc05604ccf31ecf00dd238268591720972781cc3f98c9532c0f47074fcee2b709880f49ab7d1e37e533dbac6a5267057", + "2f255ca063e4c9a5841e63829044fc93c9369af3a8dcc758ae7674ca854304da39e37a086e4ea95b7746a9336cb210d21d4a46bcc81988226ca51724aeff13796603402136158847f36886008167625316c9ec7bb5fcda519ebf5e36", + "063264a85c74e76f571ccee663997763cb42bcd9b9db77c55b383c1d881534431a0ac2fe2503ac7387e2a21401a243e5e0556a975e60e3bcd92fab1ce4569be71ed13b338284767f30eeeba8e147da1cd9e6e1756d797e5f9104ff3fb715fc886c49377dfaa066bc573d47147e08c6385045df50285c389ebd44f077044444ea1c7f6f2dac7ed2e65e3740d62e227498492b616a0b841151fddda445bb5efb5c8b70119bea3321d8ae004ee4eaf36c", + "1c78d2d33245bf1ae611b9ebad2b2e2d55f1e5faa471bc405d64e9a427bd746925e3381843aae126f2834db116a761dfe0628f9be018123e890ad103f7f34af71f95ec4227b2b11aaff908234d189645fdbd5c9a5255e75fd0a16f8f" + }, + { /* i=7055 cDividendBits=3416 cDivisorBits=45 */ + "1ecafcfbe7dc075e2f481e0cc58cd4fe545b749b9f538f73728f3b48d62d40de55f8f4540bc618c421ffef2f203af81ca459035843fb3fd6c4d47ef35f3eb38341037229a7e3df0e5064c41b9af65a742f33c8a6762288f7b6ad0701e3368ee469852b47876d041b88fd0851d913c5083e7f4d47cedbe7b529beaa07945da6177b96c8d04cb54842690bdc45476e87e033e131a090041cb40b7b4f9a1fb14295d8d9707bcf7015d5a0477cfca5c69639f6ae182f894d1ec6cd2620bb58e200e98261fec26bad4fc0fe829f744c02860e159b3ae981eb40646aefc6be0c1d9c7bea2e780c954dd866befc1e5cca6ab3a7783dc584b5819d42f0fa43ecb8a9f62cce705b68c3270a8b4c099afdc178b0759b3003db9b43429476711af43b4ba054acbc41f30d85f44e17b4bb1916dc6ed92daea75bfaf21d4b3faaf1650bd101f88db719cfd8be8cf436f348cabf2b376ddeee322eb2e423fa108fdd73ca601220a4f0bc67939869127967e8235234f93a432974cc441963bf943c2474ebebee15e29a7e27399cfc6d6402f0ffcafb545badc68f1ac5e2e052555bad1383ca11b5b46c03ac7b4e3cdf9ea370", + "0dbfbdb56852", + "023d59b4a9508be61f9c38d227c42f19ff9825187ad2e1296bcbb81ac216c512cad89c6cc1cb45a5e57e0eda12ea472dadf1e9550499e547688a1a9942fa9b0d42f3ce4bfcaf84aec28d1745859adfc4ec7ee77d3fa1bdc400ff54da23003c2cdda13b3856185d5d3756895061f975c67bab3e0eebb012327759a1955ee0c3cf85950d8d81ce1b19120bea3cc906a1ccecdff5a65fa3456bd3e6fbf0f45b749804a361f4192dbe248e177c6e1f2b1d150792967f4e900ac391d237fb61740cf8206bd36cef99dc0be55ddbf74f63db23022b7e5a3c222d36beeb8b1a9ae692c27641a201fb5384ca4e71cfda1ce2c65b28e846d2b49708eebcb914967b1dd41679266ef6a23df1c4926e19d108ad0c526665ae72800e92b971c466396b2fd4251f8a99cf63c17e9c532aa89c60c574fca38df7d67ae4c30972fa50e50df79ccb992b4a07a62a0389b52d8f3d4248532e1b18a28d7542072fce0207ae354a0abbf98e67aade2037fce674c0a90f32f6cb743e497839062580c123737b14f61e3b55880f1749fd8a31cd5afd9be340c1e5564c78b6f7407c898c362c2bc39209948b755e5ac2b0", + "0b183104c710" + }, + { /* i=7056 cDividendBits=1192 cDivisorBits=978 */ + "d267c1f8153fc93cf4718178ac83c4ba8a9685e13888ae2fcc178cdc41950eb3cf0f772c63f25f22934421a034ec4280cd8d6750ef0a569dbd333c4ca01ebe5ee5713d3a0ed402a7582e3084e064f1de50c59e1eab31def7eca8dbc26b6d8233542b7cc2a4512812859908b3c170e6a0f14938acdcd2d45c6bf4e6d314e051817566c229c65677758e6964537b13ddfa03c8ea9fc9", + "02a9c1ba64298299d6a19dba163eb0acf1358eb10fba4e303d649d1d5895d030517832a7de01bedf5c2301a8b5aba87f39d31e7d0a888467b450de786108fb96bb05028a2515fd7be8766508dd30bee8f2b0339ab6e65b66a5efeaa55fe13239ae6bb5236b5ff26b9eec336098bbe81c72d2bfc81eed8c134ec941", + "4f01de2e5ab8b1cba0418aea8f99c72e716dc7efbdbbbd1a07af8b", + "027eb61a79e2071b0442ce73aaf8f9526921f6427a40f8c5182b4b719fd0ff3a10ed85bafddaddd1d03a40dcb22575730ddfef8e5b733f4f9d3451192e076c4d398360c65064e303722440e06d2e9ebbb6e974345e48b425063debd51774e0496a2718e4812ce056239edb9164c095acfd8e797bbba62d56c8ea7e" + }, + { /* i=7057 cDividendBits=2571 cDivisorBits=178 */ + "69396cb66f58f10449e2fe1eaa4f9456ae70bfc7546aeb6045dea2d142529e6acfeccb94015f8ff764635bd839a1b1d35fde1ee6383b212e7e69de609a52c18d284c3fee99ee1358122ac781e85eb01b9890f1af90b4a5cd869a1bd2250c060d8cd1d83b5331ce90c2939c51056852c8ad7936966e3ca34d8a594431270cfe044684af83bd73aaaea50f365538473eec27f6a432d9672d3a242b91dee7ef2e928501e1a3bd85c26627fc3550eedac39bf7aaa17ec2628110d3bf8fe1fe994f98e42ddd947322e07d87aa14a6ac9e453311adbeed0625614a647b5358936fe44742a3e965a693e6ddb114871b78baa52269f674c32d7b9379e54ce3ed803ccde17ad73e45900472c206d96a6636c151f16f528e88a35ac32100590dc1246a4d585f1d1b3e95d0069447f202043e71cb2ce4c3ecf50d522c24f9fbf6aa6a912fda6b", + "03d9bae81b28bf9d30ae5d4114e468480ea4a6e132ce9c", + "1b53cf68f82f0f1af6a616b3bc07af0f3662dcad1cb9204a3db97696a955513d57b75d17626a8f891c7d64a0ae33c0ae678720f9136de045d4be985ce01ae645ddee29294391488b664d3b9f30924c7a04ff8cf454d07a21a291e784aa05450925904c93d0b7cf91abc884130dc92c5f17c94feedfa26506d7fe220bd98856387b0745d4dca8817e6e77c6030b2b95f11eb695017e054e8fe404037872a056ca20980fb780e75dca2053e5be230f15bedf8e01d1cc2e13b8b90dca5306a8290c8c3784acf8f847a5b7f8e62b062b7740db593aa818c477db78fccd945d2cb85a88a87bf62734f3cd1b188a1ae2f0eae664589ffd5f8a0cb06ba8f6bfa75a7aa54b0058a4cd1dd4d0dec28c170a2867bfd41aec1a44538f173ba9d897150d936ac4bef4cd5c550ff402d89f", + "017939df3b2a03e8ef1efc12f1656a4b5b824b8715e787" + }, + { /* i=7058 cDividendBits=165 cDivisorBits=88 */ + "0ba61e1be0e108a9c412f0ff32ddd5ae4d53624897", + "17f168a5c7bcd4a78bc217", + "7c8cfa312b7ed8118549", + "13c1f64e7eea40a52afd08" + }, + { /* i=7059 cDividendBits=1272 cDivisorBits=591 */ + "aa4a32a63861c497127f6871d4373e7b4727d312ebd72c25ad03e9635be6b3d22d1a7c7790e1975c1a61d0793859ccc50272b6fc013cd184262c61d43e3fdb8450226222766cd39f4b05be34e45ffc257c311d541289afe4d619b0aebc76148adfce2d8285823d8692807cf1e25af1d89ea04bb49a62efd620c5a619243dc3af0cbd4e33cc2723a35c0c6263b12fdbfbfa5f967ff1ef1f3912730a80072acd", + "2a9782eb3d066f31bb5fbca47b0e2218e01ec0161771d7467291ac35c92de643e12e917393929e75a64bc7ec7fbcc83ba86d32f96c7cfbdec4a6a0d676a3252059b8ce94415e93368035", + "03ff88b448bfa4845a9e3208406a5eda4860bbaec5c32290a3316bc3cdded75dd9fdce1e41146c6e497489b73af7f7d66badd2087df62121d5fa216387812d59e04cac245401ec7cd89435a561e87291b54657d43907", + "20ffedea0dab7eb08b4333e909e431e5d495d5775a790ec1534cacdc71c8928322e7c0fe8eda518b7717347ca53177bcc6421ccc3e38816333e7da1cc21b0ed33625488ba47b2819dc5a" + }, + { /* i=7060 cDividendBits=2982 cDivisorBits=564 */ + "25699ef8c967b7dfeca52c5c7ab3dad48225ef0b33d97660c0e6f3ce3e2aecb3a8559df36f404f2856eb75558fcea05f4201375cb08c0babb810e7fee8a640b73b8dca2fd659b047063e345d84e0debf822f8029dffcec802cb0d0eb7020283c09dbc30560be3581f8d33de953e922831f21050d26f0d65b15c89c04deb4e9dbf7d78e2f15c280f955b0abfb43a81a13906b01d053ccf5fca19c091d9d284f0cec8fe8c63aa3a009034f057926919e34001205b0851a74fd49805c78f47e828abd6b5289ca15116629a30d56d573bc279db1e4b790444085acfcb2120cbd07d727df4c334f103f5f4719bbbfe77800b8ada9fe28585198abd0233ef964f21452f77585c668a00b38deeb40879b16faae3b824716d3e1ae3c98063f424d8457b0ffde2c494247ec4e008461368407d6d04573e98294f922a6066934bdbf4dde232264d405c2cd55e5b702a0dc990473742a4cdc5e52396792e64a882e338f94540df2224a77b144d698dbb3e5158b3dc1eb8b3075f5", + "38bb42e455923e8b6270647d5be5ac91da8678f8ec01262343ef0115b2c622ebcb66756550a30e4c00ddd30888be3b06088538c4de2d5910f381fb385fc4da3bc81160d9ee38", + "a8d2df316706c7f9de850a57fb4d0414b147b69f02e48b9ab9644f1c6674f4e7caf0a60c0dda56a1f8e748ed33b1bd05cfaf9263d37806f1876173ba9cbc33e57ecabf694aba93f3569893bdd978d5a42ef70fa4161f8c7e4a944b55abe54dd03b9078a878e35cffc345f585fb3bd6c5ff1e309ff292917dd6eae84f05d797dd5fb26f9467aabbbc4f340234bba00b897930011ea0aaa83faa8887f9e9e2eea1b657317ec329f169494f1aa93c31e46887c266e5fe199f6c247f8387b7a107262b4dd7de838beb4c54bff4e66ca53ddc96812a5e565847c3db76b82690d4006cb24fe631d8a06d2f7de5b2bffc30a24cfaacd1bad65aae6b3a5d3c8506f8984eee448edc5b452f188441d79afeb3ca9c6bbc8831867c883dc8175aa9ad9b60c0d0baa516bfd23b22d60516a5653951", + "1640c36db774533c72fb9fea0564970f2e373869fe1a369aee8b9cd84b3ac21c25026e044b63cda2e808c85e225470dd6d7a0b36683e9500603a0b5cda90e54e58864c199e3d" + }, + { /* i=7061 cDividendBits=1934 cDivisorBits=1103 */ + "11ae3166196302284e8b6a094fe1ef5a2cef2f31f4ee70d134ea1211410871ce9a8f6db90c88fc756b3016f60177facf448eda5268df8594cd878453e9189c4bc7ecdd8f9fc68136084bec5ddef248f520f5d1dc270ac6144613aea97f005457eee1990655f70d04a5900d288706fa8c2061750a87df53aa58858f2cef3edf5ce5d14dd553f706242616bbee7726cf1982bd65316c77b2830080588aa078746a2621ac30979ee38b5e108756750293b58a752586b7d999ed4c8537a9c1746b26d032a4539c7c8d8bf3af8012a585bc2e63ef012e3431650be1c5ccf8f1b1b49ccb6d9002bf3fe1da51fa5aa004452c37f56f", + "64a9268faa4093d603061417213635131e19bb933671f5eb3ba4f897cd1a9831e044b8f7e294232befa48b0859e94c891cd0fd2d7540093595dbcf47dfdf5d693a80a7755b950286f581cdbb4d639ed0382063f8254f39a3b907d3f78719fd6f8fd0003d0e1ce58b26e870f31336456c90a52676cf94ac8957257b825b532ae64d0cc8a2f154d5b66852", + "2cf6fee6378b504928320394611cc3ae8a6606db3795286e4f543dd0024cc2c63ae0c2d037ef5cddd608a214be8721423c565120d44249f79e33ada1dedd72715272db4c65fa81a02efdedd15da90896d0861dd66c730efdcea02faa3144c0374e2037637b24c357", + "0846ac75b20d519c773b0491f69a99c82e97ab200e93236a592a52d71569bc0e87d9c991abc2f710f47fff3ecb398a4654d0dab982b9615bc4bb69557b3cb619df519ef1a60e81f06cdb713ed626fe1d9fbb7c9453cd9e4ff46fd197fb56b2ff849a7a25504f4f43f429cb5aeee86a3456c26d79e50eec10847fa683eb9229e823037e9bba2a883c0b91" + }, + { /* i=7062 cDividendBits=3050 cDivisorBits=965 */ + "ca7b70eb5c409886c4cb71fd42256afec842367fed58c5e8031a4864cd54de6143314238bda0b2953553633ec2ca93bf6215b13916408ec62f819b2046eb6f1824d70e9e798bbde3e654c9979da38ef3df88424507bb50dfaf1432479820a7ed61e413115812efbf626a67b0d0937ef4cae01a4766bd38afe3ef7bf90842abfbaa0851e1033bafe324d64ecd80c353a2cc7c403741c9832c693c3a7cd961ff9160bbd0d6f32e156a0f4be5f2a1b30816680147fac92691cb05fe1f5a1d6e0b08b7082cd2b99589fa4442ef9ecb0d99819cd7536e1fb0ca06f0c1c4467c42c29841dcfea8cbbc25a6baa2972a551e6817f92b14e632140d547606854675594e24fb3b0396217a7716365e12ecf76671a5a57ff66d01b197af39d4c3b526e726cfb5c90fbb84ee27d1df9eef0672a0e599113bbda8d4d015632c54fe9a33d0ab887e1f781c4bf7b4307dc53bb4d08215988e99921e8aa25fbfa43a9930b1e6fe6a333ae10af805e7b79376928460c1d75c88f13475fb30f740481c9c5db4", + "1bc6d4fee1552379e21eb25332f765c05271c3e050310514f2bed05bd86169f562a3c0b3208afed9b4c014417ac3597529573a637d4150ad5ec3346959fba3cb5f4a3d5686aa450bec99175162110e73936b97e67c1fc76eff80b01f60cec8685d7ef174705627d868d82256200f091d2475db3479f3579703", + "074a262cdab897cc30d039cfe2bacd06776f75986c3503fe34c105a7fb8547075c91d9c19172044e2219114ca982d25ac982e59c5fe2147fae4240e6b0f9164460c12d0d5c317366a09c512079b52d9ca7602b6cdb0acc6f6fd6b2e0d5fb7cd0a3c5f23b01d36b6df6e8d2057cef6cc32f3d74ff2c6cd7adba96cc4133261d8403f026d174f8e6317b43cc603e3af2cd4d1beacc05151dc30ed87310bf895a840fbaab106ee7c7a43e0689c9e3bad543ae056302351182ca773071850fde33057375d9dbb9c2506fd2b21aeb05e99f401f53ad8fd44fbb5cd93df0c25dd7f3bfbe6cb935c5e41a38efc81374e9f13992536634d9630b87d0b167a4121d2176ba79b266a001", + "0dec1b0a6ab29b09ce3019036234758bd0948c2097ee92474dacd1f19b8050357e37c2aab8fab0af2342e3ba59f48a39c1cb47ac272797481d17d68517feea8d99d8beb4f3e38dcf97d5cc57be1717f59b173897ada92dad4e543669c30e6ab0d3894b2ffcc14716745bc75094abb400ba6005696629b0e6b1" + }, + { /* i=7063 cDividendBits=371 cDivisorBits=359 */ + "075afe943540726b9618972849426a6b4b7cf11b14c84917144ba34efeaf1e1c3df33f66df7b3f67563cc9ac5a1da4", + "3df8e20ef8208058c8ddba2608e92f4d235ae14ef3c666d49822631021eac3f745ddeb1e80ea1bdbd0b45c3a6e", + "1e62", + "1acfea71a6f00c91b67691a7ad9c25d0c1e993fdb716cd155e892e889f463f1a7ee54ab27684e9a1c1d232db88" + }, + { /* i=7064 cDividendBits=18 cDivisorBits=16 */ + "03f348", + "8470", + "07", + "5438" + }, + { /* i=7065 cDividendBits=1373 cDivisorBits=528 */ + "0ec26d87f101d239874fb78751341c13c481d8352572ccc242fb9c5e8bea6a314c5c2760166a9d2a7c028ed4531e22df1eaa3ab635c58f23579462c32c1cbc81c942ee78a1b041b0d9c2c096582f6d7d7fc75eee082a3e08ad5212cfa51cecfd6afbe77bc3543e64592c44c4269018e65c5b64457ca9e5c724982adb44cfea77692dbded4fea747d4f1f20e743c8e6c0d6fa1774cb5dda74b8852cb0722ce0ca63d72344a46ca72601b88a62", + "981afbccd01e5621f931f35e155f8c4bbb455edb0f1e1ebef8fbc7ea32921138c9459c6bcb8d5149f576e29cb905f4243d901541c8195a1062c92eb1a860ed7527a1", + "18d74214b839c346d9e8e7e184fa5e8ba9321ecc5a54ef3311bfff162292a45f6bfd65412477e85622cec393d03eb791005b0e72be5da33c621076c2ba5768cd97b90cce09f5862b7aaa7243968c97a45ec8c479b6b7d3f24ab62aeef31255daa0c8dde99d075cf7188f", + "14f0625608419ec550be3a3da11fab3775c023ae3443f451ed1ebbfd6e89ff01e2dec11994eefbb4c734a1dada671bcfc910e372254dd5ce4db036807a1049394f73" + }, + { /* i=7066 cDividendBits=2385 cDivisorBits=1583 */ + "97f887f475159e7f4c36fe1427693d0985a9d4c9398acd188d20c6f13a544c9ff659a9a547c29207778e183ec8db9191705c07da23a573eeae2d057e4e17967a7d14cab36c4f02c663acf9349112d80d62821f5cdcf028eb45934b49bf811f8248fbfa9426c3c830ca58acf177ae1ee591176e65735dcf7f222d0fcb5151060a2ae17e8fd027057cbc994cdefcbb16d1a0da8a5429abb584e3904b9b2698cc6856c7b78efb9459cd02696267512c69ccdf8279f85b2ac2d79d1ff5aa8567bc1b7c843cc99bd738da50b130edaadc364687871b3e1bcf4eb7cce4c0a00e1bc3e3b912fc5b5e975d1a6f5b11ddaecd5a9fef0fb6f5b63a91342307082517f65ca03acc6b5fdcfdd575dd3b3a38f5e7aee40ca362e956f01d5c54c22a9d0efa43b2bdce98c00657b3871a3f", + "677fe0d8c6d63e33050732828eb679708dd76b0c7b74baefcdf1ac11b4f6f25bdc72645e310b1968a020fda9e35de90c28042dc91725b72b95d2fd2478fc5e10c5c18fce8b90a7528d8f1d643cca385955cf367e89af3c5a642774793bfb0a902943af6d09e8d3ddff03b95905b30607e57bbb19ea15ce67368b23d6da643ded3eeda0c6458790447aa1d97b56082eae015d10647b37672c2c17004007e04b88bdb0f5672e4f1f62dec80dce5766f5b7bfb68601e87166df7d207d3f997d74e8420e08c74d69", + "0177e4130a4f52859249ea10379f0099a5077422f3f7dc23565a7448d6bf2dd77f4db67fdcff456377bcef719caa861411ebede88e98f2cc8a05b383f47218591fe32db7cace165276ed072c05f7c9eb03585d9587c0ff6eb60187e888d0742ccf8a5412b8", + "0d894e1b3444c6dec22e46b01ee482c5b62662ffd60ecba99f9a1181e864d11f26387e066297eedde55a8adc2577be609c6931f7644e048f21110161a268e0710067c6694c99dbf830a8b90d1b9c25c2e0eb50fbf318714e809dad64e4acf114c84cc0dc0194eda4906e83eeff99965167f0d1e6824e37023cc2c88875efc80fc7c9407dcc91d376088b3c5430f2c4ded50cfa4d083e36cfce193a7e0c05205e3f11ec228d81f2312120d6b53871f554301ce267eddf0922bb4c7af505c141cb9a9c606214c7" + }, + { /* i=7067 cDividendBits=3242 cDivisorBits=537 */ + "5a938ec6797bd6ea2009520cb50791ffe1476fc9935f34e7e1d5086a2a06e88401d86bae9ec04443b8c7e63952071ff4117001c348f43f468b9bd2f9934c7cc1d84d8209ba787c27f41913129cff981d4cddfb46fa973f9cc3bfd7818dbb1b0b3d5ec080f9bacd6cf18f2090d3f032bdb4884d7f661f2999c2153e7d4d0e3661bb8b5443a651a6be35d8d8516195a515689558fc598728a3f7eed208eb357d7a99d269fb10363774151234d18033e0f413a2de6569f0ee6b4e1b4cd00dc68f3ed18c8452177fcfaf008a4e4057acc625258185486e3688b5fea264537dbc0b5cabd5191cdf3ad3f841bc60b7a7ae4cd31bf62ca95be70c38500145ff3debdf98d04fce04b5b737f46a81ba9b3c2ffd468e17eb78d7636e0ea5b1e031e246902b4e6cbc43b657d5a6d2dd46f1e6e712c11262bbc0bf97f2400136afeb6d8f81a4c9a7b52981808ccd88b62ddb9c8c79ac418d6711fd3f240a1aad8d290e43c3f1705288215e575645085c6170d191b7f73f55d0745cf3678f51e101be57d1385b6219b2e279054a1f5e73091f1a2322da9ef0a3a5f8", + "0139f7afb33310f00453b7cb2bb5079e2495a8c8fc2e8c07eb11c28e1c162b3cf864a575d69a11017c8436292f9d93e2f452177c21a2ec0da52024349995c96eec8f1665", + "49da7607007582cb34e11d2453ab5300da669ed4f86e938bcb8aa2302a34cc7b291fd2e34e59ab8648222ed1a72372903a6c91643a8b2609fc327ecdbee927e076da3c3b423f1685af0a2b0420494d59954f315b0dbc507cc8c9cc3a1eaac2f91689f8d0e250b52e62d3548365c97b9b8c4578940a7624391a0c7ef2f72ec390f309bab45d851fddd95cfe9099567d44158d259c44d0a35e6c11801cd053895d3e9743479cf55af8ae9f0510a3ec36679d6de9545fe12a4c90424526a77b2c74b6eb9ce198b585925d11838519146e421581476e92d030569a504dc9225e3b66e87f5039fc27ae77b66a458101307207d27639fc4cde19edd8f377eb231488f87fafd760b49c739938034dd19df52056d88de45fef9714cec77249e5cce057ed015f9788020939bcf6ac783766cc4cfce671c754cded469b6247ffc82d2a3327b591af4bb768e2ff72bb2db7998c1ff3b510", + "eec4fe04310a379a34833ac9a5434d07b85ac4a6bda6c14059c1115fb3deed1badd658e8a74264952ce6609ec8879d2134a1c2ea46f222ac9fb39c59955aaa7ffdd6a8" + }, + { /* i=7068 cDividendBits=485 cDivisorBits=386 */ + "0530a93266969fb62b7ed6ba5cbd7bf380b4deb2fcb3a909c4898357c4d575eda8ee7c8106ee8d4065ebc8047da9d179106c69c63c1c9060776fe07fc9", + "03d94a2846a1d2bf3a629042d6f2cdc615b29257dc914db567868c7dee76fa573b84b70664e569169ac4719a4ce4440d50", + "015937263e4a291e475f446cf1", + "95e91c5ec4b4746cfc633be1c2ac7a818c8a4b9df2d8c24fe300d41802782641dbf5b62fe467bb073124b9939cf23779" + }, + { /* i=7069 cDividendBits=1783 cDivisorBits=1491 */ + "19d526316a469e4ca44fba35f1e1470721d48c73f96838e72ac31c01d735fb1021c94044474d82f90bbeb33197a25e473e440c227dfaef48355a04e8e9afebabbafb66e111017803ce42af427936eb84a6180ce548697c715a3642925aab1593f7f72dc8a5c8297a6d4b6b6f934baa41768d028bcc50a112b204e1006877e3f8f6e3102bc9c3dc0beae243454ca1e5437bb070833acd1504894813e490ff6bfa576154cfabf883096cd77df7cd37f789209d476e080c7b6b70694668d292ab9a90a9ebdf2e36538eb7dd35ab2a6ba4482e714cff79867d8a2c578101e11229", + "019a2c59b652f8bc8adbffe2f0166c96dfecb61c9ce0b8b2afe1d9b31fa7f5a6e5c2ce9686a7f1607c21f37a5580d631f0d6d79b7cc82bf3caf169695b1d13b86a37f68a62539c97038741f0b523eda72414a52d0a9511ebca6da35cd4e1a1f72bb29207995357940cbf962664f0a6fc67f5680408ba947d8ffcbdb30c6cfc3bc178c64f8640147f8e6e190329e06441e53011fba2b4065183757b57552aa7eaedadd62276c719f70c31af6fed19f89c103bbf2270858f46502b4a", + "101f7119f375c3b03e9cb2237f210e1e67134c7b387734afbd8904b8214aa5e213f182681f", + "94b6abbfcdfe345abfdf7e32464b2e919e4c3464c86c84099055a0af2251eaa9cd55c96a28f93bc5dc092a42d3b31a991acbc29688d43223a110c4ffd003b559be00eec89480920df42fbb8dc67197601faaa27619b086faec7affeb41b2c90b73e9174f565d5ccb82a02c2f8e5d654f9100f29255ac1b03ebe27a54896ae94370018bb424025eb38a79659e23cde0d614afbd19d915e968537b8c7e06c036921d32ad49d4a0dc41730d857a2186e038910cab7a3ea24701c433" + }, + { /* i=7070 cDividendBits=450 cDivisorBits=406 */ + "02bdad25c94c78427b0086eef8c7857bb52e3518cf526fb82169abf3386627adcf471f3166c34860a499c44b594df5ebe3cfd0f579ad535d3f", + "1bbeed8e1de6743c96feef6302f78e9b11cdba03063c67f13fec040ae12bfc0fda5c1d153fe06c61cea61d8f69c9a05f4ecdd8", + "194a19743388", + "063865829a13f7b457b7ec535088ef86b5c7611023f9b206e63dc22fdba2e9e14b5337db8112e03b6a865347976b0afa93fa7f" + }, + { /* i=7071 cDividendBits=1838 cDivisorBits=255 */ + "0d31986d587eb47b224a71d728b02a456772d3d4b1d79329f2a9d417c5bdbdbf8cf72c1dbd0b04b96ef14f912fe3b18c277ad268508f29e67154939c6dcc09fb301e7e3600b30eec48249aff183e1f0302963f471eb5ba2ddf5654cc582322c0c00d3c1a2d4ca45e82a3cb9c71c763724966952a4deda406c101fb5d529543897b2d41c15e2dc7a5247a1f9c420fc253a9900072db01903cc55eb3488fb90d469df77ed042390711b68601ff332bf2ad0f66c48d7a30cb15c6754792e7a728b02d93d8fd2b081bb929ce5d9afe7ca50e94b5747769cef0571cd58bdb1888a9e9a550b29f4f54", + "4c0bda2dd4f377944c7d7fb1eedd2cbd5a0244866118bcb5369d3ff6dcb95061", + "2c6a3ca97fc6b7a001c2bbba9542d3c5edb1f68aee848cf049082f6c32948c8e9975c2897b6c0c81e5ac7595a86c9235d6389801b8bf75117d8ef9d85ceaaa7bd25dac2c73a85edd3f52106bc11159b82bae6de63798d91a2d4a86755afbb7a22d12bdb4c64a32b8b793aa87572a8e3a24e6f195929f8b4cd10c56ecee67d5be5f88ff1978ba14cad05b2d2e80499fb06402ae28a16328fb96c4303afd5db90288712863dfd2b12bac254d799b76b4f44559dcfa8587abe526c57ead8092ca9890da22db952c", + "1e383f8b1f3f4bc20704914e21d0b1727de11a89a170a26ec88b869c420209a8" + }, + { /* i=7072 cDividendBits=3305 cDivisorBits=1973 */ + "017e540a7fc1f0f7fb26ea1edb0b408f68f0a299649c5df847ebc298460916d39b7155a46efd3a0871a415cd5a060d4411f511f2cef2323dab2fe0164520eb948b8176c8e71e5c2d233be851985f26509913385a965a6aeff9cc968686f9de621566252b301195e07b718904159ce3a367dd2d67582093cbd5ca370dcaf24dcf6562f8d733235fe2a28bb9b21f256a986e5044aa991e9a10680bf4245479bcfc2a15228593d823bfbd67f21ccfdb6f93627d3c4ee24dc20d64599d28961bd9ab6aca7dca4a1a46e4ecc6d29026db899d8e5bce29d6c986d6592fa0a70956d953e6e5ef40ff94e7284ddb79665329fea2811ba46150fb1973d11d22c47c3efd2e72b76ad5111368dd15952f8ccd0d39a5baf0fda7c4e75e2f08236a253cadea347a27af49472579e61459155e3b67935cb089d1698007a374eac987b89230a263ff4291a203f38958cd05ec962903a81fb0408aae150fd53b0adcaeb24ba0b30e25f244766e690d2c30960062e62c09d71bf832d33bbbe4e12d7ff1da2b70b00083847d6c881d4e81eff220c0529ad5a7ca081f3d8ee2a556bcfd272d049a", + "0566ab2cdb2d039936f7b378dde4120c16f5c350eee099d8cac1c73dc52a352359445ad0d8f970371097d6342b4a176723c9be82ca4afb5dc3d3c29ba7788f739b168aa5d7f7fafad82586c3c1fc1be36dcedb8d713b10501892ae4f7b21aa107913244c2ccbba66642fba8127c12c38dcc86656e8e1e528bc4593aca3f02d9bccb3303f23f10f09bc435f80520c664c84fc0431fab736bcd4d8cf19517b3bc108afd8990d1cfd11a8394d1b79a2a557e8049662ddab573647eaca1b7ef1325d6a5e469ec828cfe27786e198ae6a2a292242b8ce6faab1b05806f55a8cf05e7ff9bd0416d3aa8517f91aaff9d6fc686a237f8ba7e68abb", + "46c9abc9ad556ad2bc3c872b209d5528baabc1d7074677cd877e4d64c73d67d46d11debb64f23287653bd5df31a321daea68e139ab878c3e5306b51c40c5a601f533a4e83eb24ba90e61d7b19111e97b7bb9202e7e626ead6ae4d495e0ebedb7120cb18d51f09bef5dae6c67d5088d4b29ca92b913f1721380594c2f406f49adf9534b00e8a764b8273b19e8c895808860d95d4ae2464ce0069bb531c49a8931cda487778ada98", + "041278df1633d28649bf6ec7536110581ed1ffc0480cd8a73e744091d649880b692636c0880e5921b4dd3c44d9bfcccdc34a29576b0302c78417ad9c8d4a9a28504dac5f00dc602b8ba5f680052b8ef2fa9d9106ebcab34a13a04e2d3b96ec0dd4eedc9342ab74fb2083b0588c3ee586ec1a3c1ded95129c6763a44965ba4036920e1f4263a7b83f0434429a5bdb1af336a46f08fd232135684a9a13018a55e54347812e01817379b4ee4d9476f291da645a9d3a4ab0cc06bc173723daed30ad6fadb4318fb4f0c07ebb412dd52a8424809432bd10f25dda7bd9af0271a19f58a6d5bfdba85620fcdc6fa7faa004a19b1f73b66e596792" + }, + { /* i=7073 cDividendBits=2803 cDivisorBits=2720 */ + "025ae0ae82df3811df4bfe0807000a2eac2740ac0ac0942876d2317a78df9141430f6ad44f40475e3f504eff9fae7a8daaa1153397eeb39dbe597446c52254bee01ccc9142ba90727322ded3a8674d002631e8973c8cb3915245bc71ba11800bee058c66975652beb5148087dcc9aceaa55032f4745df68ece25812b2f8a9e1ea1c064089db31a0aa47d287945352f14b7894705c516fe3132802331b7b152ffed0bd7378c2896210efa03ce7ccfcfebb452cd699bc3059a1a22b5c3969c268b37e38c05d54f4084f8fed86c471450b5ec0d7b29f61a7973a631a3ad359eab3b455bf67ca16dd1cf7d2d801d519029202ef84c2994271f7c402be58970399553923fbd98368df53a00c97bf89b6cfa27824dddd3e46ba9d8c9724e749a38a556fe9fc4de3e033198ada8fb6f09122514dd4753cc2d37affde0a5fd71a9958d1b446f394aee2a06a94256eda80c137aa6dd5e9f161a36bb5cd2683a165bf79e", + "8ddf4d9fc132d92fd9e02fac557cbd3c6d6029fb8c9807c55cd7f2298b3e206faa9cc5be87c6752d9a760c99514e29c177d13cd0f8ac51a85e500e7df1f8d85cfb54ba01ec18aa5c792c2b10ec9ef2c808307fe941ed72f534ee75b0f6a2284001ed2a7345ea5f3c05d07742563adc7f4698c800020e4e68a6121d114adc05228f5af407a3dec6ccac8971107712355d79f8831a5188c4781f5f7d6aac2182688265e54cd1a4b3b7510ffd3fca248f3bfcb6e36d2702952fc7a597fe24ee8b29ce5167b63038a0a0a618cf50a9424642c6e44b19f1be133e9bf8ed29056c4780b2c24ee9e7a7569991541dc3b324b07ed40784760575f3a672ee95e617cf0ea02a7561133ecad516f5a2cad06eaa375333b73d77680c569040094edc83b17805ff5ef0d33db7e8c22d73e6fbf4f802a178cd4cface3c901c33c6e1585274ef3c6a529c5d50c420d04357ad224434b872b94aa4d6", + "043fdb445bb308853283fe", + "08a14f4c1f032cd9d5dd284cf20f9757a06be25bfbf585c6b849b1466646f56cba46c531b0e2116a0e5e6600b13fdce042a285f843fa648bd4f173790785c109d3c7724e0146ac49a68542f9e46c1d4d719844e98754e333db761f8b5e346e8014792ea92ca2377e98e7fb750eb2de5328ae81d307a65e374fb0702f4111ee72f350a15b1855ae0b10b0775c1985d9b781a8499e2237fe772c8c32ea826c6e460fa11e8773ffbcffb7cc83b83cf4772ba4b7f95285b0e355cd7f74a4959c951bd7fd48a03179d8cf6d9e0178e02aa4a60b92db7c4bb50584438cbf47daaa8e2913cbe191fef2ac9374c36b31c7e1b5b748f999f21e064dada9f66126995b92a3d2e9d3042034565d5e51ee123492736610f2cf2e9dc3d4b08cf218c1c8d9aba0d6c1020542a5a8ad69ef2757ba44f40bed08dd286518392917f1142b92210e4755be0789496f000c4c01d62ca9cbf0adac26e94a" + }, + { /* i=7074 cDividendBits=3094 cDivisorBits=2255 */ + "2f0b1bb77b890c94ba748a291ed2460a9127660f5ac894e3e2c92b615d0035a9f6cc607d8f2735cea26600ccd40d6111bb8d1634ac3360b0b74cd68413f4777b07a1bd3c1a846927edd6c215737b79442a3b9c3e97a831bba95fefe9249e683725a1b8b3ab5a06ce5631913a7fd7529709b5908cae857497541cf334adc1c276a6365de69964f522f5be63afb429e7775e23e5fe2e5609407457364774a492ff71389171efe702fccc7b4bac0579224177fe1dfc83802ddc6ec22bd868a17cbd94645454687d2ed79b44deff1f551381c7615fb7745e065dec32cdd4f766e64d113d41fdd2e7f0b728edddf216a7eff85a664acf290af932799818319733ea2ee137069524ced7492f56d7fd18b903dcba02f1d5f7514bd0706c40b6207bcb810bc68f2958cccbf658bca66c476499cf3fe353d80de6b095c1a8340df2ae0eb55b1de88b46c82794f87caaa91f2b68f69c4aae8ae05c35777d7cce5f1e0e55903a3b510442aa37e2f02cdec1e7f6a7bf350fa15beb6ab16fc06831ad7f124e4bf47576", + "4812d3a874b24f9027d26738706376ed94c9f67fe6d338eab46451b23f36fbe4788948406fbae17835999a447b05779c08713d655ad554cf78f97cab0225cc6c0a50bfa2021cbbc20ea3ab6b7287aa24b7b88c73c51350d206046d7b7b9f6bbdf05b7563337cd9dbb1f3e092a01d43dd2168639ad1d13e757aa81165c4333fb4068bf7fdd2a10c4810e191750a2118cb33393aeaa6d79829aa616b8dc803bbea96cb849dce58cd4fecbcdcfeba22a7f516ff86ffdb4a20af4167e0831727f396a5ea9ca909bcd6a9397a77b13b097d18a6227e590c7ed0db5543835659b2cd1fbfb61ee472b6e540bf74f8cb933110807925b6648337aff8ee94e2ab11bce30300d67e213b96cbb468db750fbbafdb6fe5e60b3e7a892d14171e", + "a7183f804772aa3e3efcdb093abda7924ffa1e42a27d3bf3a414768c3fe92993d10e81897062317ff724c27c3e642fe6db6791695fa6db73579bf12c28a726c719a20264db852c1500b3f44086ce4cf3f369f25ca0ae43c483b087d81bc78b3d4a6853f354e32248c1", + "31761d64afc8bc6ae088b8967cf4bedb74d7fcf4c21b30aaa4f78d5d0f7721c871d46e88e23ed68cc7fd6510d23257df740dc45fd0517d7bd92d275403a1b7edea2276ed35f3cbd1ee69fe92f785ec36d980a1611ed4a1d82a1c07d921c726734efb7a67d60a6f1354a0bf7db4d5efbff4778113f12718b777d89b23291e677fd9382e09e13bd09e8da635c45a8c949010cc5fe47aa6c3ca0d358502d24852294c4802887258ead4d2a971d48aeca20d4453e184c0942182cfdc385083629d851e844165ea5b9dffd0cf288dd920a34386d733df21ba43c73ee9a0bf28dbde4f5a9b4d940bb8de0a78111996e4bd2f022a1e4ff1c1a355c329a3958dd9f23fca6b1fdc4a9b4dce5cae5fc804510cdf0077452c7a3f32fd5297d8" + }, + { /* i=7075 cDividendBits=1142 cDivisorBits=887 */ + "0ae2e705d4881b89bc90ae7cb1132ce5e90a1b6cb30b9e0bdb07dc094d5f846848931fdebe73e5ddb577b19db99bd9dda998ec69b57f34bc5da9e453352e311ddc30865a19d22bc17b4431f27484fccfe423da2b0a5eef9022e4b40d68a5b9c307f6c2a84e2efdac3dc17f589b4903eecc67a18d2e5d6348034cdc6ba2b24b2a27afdecddd64cd3f6ab5e2484cd323", + "2c1f6669b028ca08391454a6150a7cccf9fa9ca4f28e16d63dca73d20a23740c72f11e134d071677e23d5e4d145c488b1926c65a0ae913a76c76f2dff5496854f8ccdbcaad7a995e083a5a44af4c96771afce91aa38c079c506bc321157f13458a0e534e698da92f39d76387dba17b", + "3f29a13dea301056c8f5d4a36be5e3aa8ef1c9a4db93326d30668750d8e9296a", + "08a1c661cce31a323a415e1815cc07acdba7bd1d3ac2d38a4c9b6e29f1aefffa51db69fbefbcf0a8f572e34ff67c0f06be44a85a8f2be774698e97d70af8aa2ec03d230ee9a3238c4073d2268d785561f50b5e42dbc686b72f98c8f220a942a568c40c512af7e6bbf44b54198c4335" + }, + { /* i=7076 cDividendBits=3972 cDivisorBits=1667 */ + "0e6f4eac1d0f02ae1a43912295c60f48b2bc45e0d9c5fb25a82cf5a263536dffa7c95341df5f88549d2fa3044b370a1daea9efce74dd6101e0632c7bd755962675b4782c60c88020713fc4e99aa36cf3d25ff41ee4cc4136b703161eab249b798d342a752eb9a9135e6bee753ee2e7582dbfbfcff6cacdf01f97d69ed0247119f7ce3ef7cc6e5795e07bcdb6e009de3fca4c059a3328be426f0ca15c209b90a83767afb59cc532ee0cc2878c641e3ef053fb9028cc172ac69a4d8cc2bab40bdd23bd95c3b11edfc917cf1e6c93afef7d423b217e6ba5fbc2818bb61f0aa825d3da878f562fffee8aa7114f8ad136bdc68ac6cf4f76713a3885df8e43efcedf69fa638804fb5051236652e4340c7d344bd3f9b07cac6d46b5936918870d9f7dfdb2cdba596537d94b5122fd8c2ca977a5ef586903f555e814be222afaffa04d17898ba6dab1d8ff0a57da9b76ae0c4650a76bd092672c52570efb0c16f81c00c460084c40db2bbc0a69ac5cdc8889e9129a7c2690a00db2eb0e20645a0f44773b7785f15e6ec8f8b173e57578e51b9732380ef26ea837f7453e21025bce1510e40be0e18c3066c18da6a5b0df890a1ee74807a278f8e5b28f01f7e1ab4f75dc6d1a73c5368d256eaedcc1e1fc3dd462ce2df4248fbbe3c02a4800accfb09559aceb2bcb36b5d5fc130440dab4dde5c000a7", + "05b139978aeaf23e8744a9e2a91c7c64a50ba5b405d90076a7805f8f2c3eac477dc3a0fb9da9f2a53f0d2c8c2adecda115ce6b666509adc6410f37eec2c0a78f0b3e8a4c3e510228f0df91f6791f1febd198adc5dd4f7d788d679e8ede4ead737c367d3cffdc91f726a9363835b0c955f50de38088875c433816f01e42108044c2f183ce7617bf0c362ecb167e0dfb5b26774cf602f94c2cafb6752ab6f48951ea66d8dd039e9ddf2ef3fb730897d7230a415a6965c6e1967967b66830327d5360852cf4cb760886de90c65a7189fd96e8", + "02892d9e131872849b28190a4205cb77dcf97ced33d3ca29acb1450965c8994768f8863f36889bd4412f9b0797a40ab605fb9766646d0890112f8986c3df28de2624cd034f7965349025f1ace2269ebf170a427734d2d065a87fedd6d48dfff744c22f917927f86570e3af6d5b4be7f868e280496966345f721b5e6cb4ca68fdd854438376656d7f876fec262a129f5ef70bb5d88cf59b59954cc3c3ca337d31159c7fb11e76ea2278ee24ced1fa2c786877846e66bb086dfc1384dd73126c6bccbe4b4e0a4d4b59ea05130996955b209407a54106768dc75f5c507ce54c0e8a49e5d354686a6dfd72af723aa150ba79965c56d0a246b5d5a5333ba5be108eef7c19e0d1062c84c6ade3a6649ce1b80a20e8d782336ce6bda9f8fb94a9ef41419a", + "fd1e7a9e262e221149dddc38799d16176371dbc1a98ad143cbc3ca6992cde0ca07c60094abe8703eb1e23091763488730e5c45a817bc59952983287df8ce96af4e294ce2c3aca7aaa951ff705ceb019d5c08e8eb5df2634221db0ba07efe6412aeed63e5d4ce764dc45184e565307ec716bb5c97b2adac269d242d723b018c2c247bde569005e8f8f08ee5dc5462dfd09e1ccd087e654ecbd29f019c842112fe0e23e1c28dbc35f45603078dfda9a6df2cec1ac118a09b75c31806ffdb7b99ea6abc30fff37347db6ccaf01996fa5117" + }, + { /* i=7077 cDividendBits=3563 cDivisorBits=1751 */ + "05e3474aab5f1d81811b20dec3a8b93809a1a6d8e51fc5b415fa00640ce74e644f7377f6e3d9c0b4327e90bc74c51d7216a59f37bd5e1ce6a1645ca06eddd638a4fcd8f9f71d17460d1f04b54414e89ed5ecb7a77c06fe0773f0e96bcaf62f2e7acfc2d1ff3ef6d74afc5d102ce53b89a4f7ca2d5a8f53fc13c582f69fa8cdc8a80a869e8a655665723c0368b4b8d7330b4ab0f53669f56ec617bc14ddd716bc043532863618e09482671743419a4e7d9c72ff11e7ce51b6317f7b3c6543096b05f0c49b3c14b497d3e01b65e2912b60c9295b4d967b32f771dd76ca40443ebc68d9aadbadd47d6eb5a5893f2cc891bef3e25996a058a7dbe1b7784137562df451f291166cf5674a98ddd88b5b14b709a8c276941a7777f92ec94b55f2583c183abd81104c4d6535083f01de757041a4168dd37aea7e2d1a1dd7ff7796ddff370241d1cc8cb19fae39bc03969391eb69d7c8d21bdfd7ca2c76771511e78169686d08f1a4bb632a42659693f206947fb10f166d6050d9259184f829ef1fbc967195ac2ec8fdaec6b13c7897a6812be22ff6b4cf74e4263dfd96bcbf279a533fcef6c5dd4cb724563de62f21986cc625ed6584cedbbeb606645d7a9035a1ed", + "64583e22000b17d52c51fa9b2716c12ca34d8d9f90932b32e88ca0a6183b5dfd64baffd24200094ee8da42d2e1036117cb7b1b884eebc7c154bc80c5ff1ea6e70078b49d6699ef4e7053368c99cf1325a9fab1cc8a0216eb69c45f1d4ce16f983e8986ea0ed209a20c995048d9e3ab456b56354781878707c068b61cba6dae1bc3ceab246ec12d8a66116870c2c8cd07a4e90e46ed271a46332280c80007e86448d404331d43ec4b47235def274470e8b5780168d2c237c1109ac24690a88fd6a3b3c973e4b90587ee13717533dbf1e5529628c53c835fb578bc40", + "0f0560c2d7a9b44e6b038e11d23de88acc4a3048f3ed44d49214f7b302b2a87754ef959fc31778feda7ad7f5ff86f2d2d66f4c5c20d6416dab6c597bd533f6f0619e6b27ed1c874a8420817286b73dbcbc1b43632a6eb29bcd49c876b5d5504d671a9804c61cdaad344a203b8aaeb9cfaa1ab0f79bdae7dc5281e4b54ba6d031091b1329ab6beb995b16fc24e8263bb3e907d0aae5fb5a2ea2b7c748bae255b1b70f17d61142eca1ea7baad77b5f2b5c63afecb074f2f61e07e3779bd24db9541e6fe111824b5ff9930762240caafd9e0654ca7dcdd7d585df2d3244b3213664b96621", + "06b25450afaca6c0bbcffbf4400b6190e93d6efcaff3d0c4346664163b5a99d432476d158543c27f877ebbd7ff2955275213d77e3297e95264fa063c07a6af914d1f701ffe9a0a64939bd4eea04aecfca8b8e5afbf0a67dd9d772de3613c8dcbbc0a1399615f76551540984ea282f195b3f8e6b0faecfbd6b901d5f05886ebad15f0986fd37f0718c711bafe3b19f5fefd46e79e17fe55eafc0c09c56b7ee1e30f23944c44735c2593d58db4669054b463da7814254f594adb850492c5b05d6b29bb7abbe5f7ee0e0fa719642d199450a0f250b1b6088d0663ddad" + }, + { /* i=7078 cDividendBits=2572 cDivisorBits=2332 */ + "0d5e6df8bea0a8985a7284d1e9890f2e85544fd283985befa8e9bb4f59f28c753b4484568028263a4be6925000cb69aba3a19972b3513fb95dcc83077c1033445ac1f558a99b91f819b7354a3dcd005012370d7e97a681c8fed7a55665d782c230bb858d84b6054fa7a2a5776c41624940302c9d216927d921913c340eecf639911de15a628f97a9b0096ac36417978cb7ab8cd8da15619fc8d953d1880178bf2ada230f19c2abfee77984a3eeb752a06aae7cefe7686fd0332c3e89f485e47d6b1394ff08d09f1659c4213e4f9f47d6d3f9c62c3731d6caa09218ac3afbf44cc40bc44c36105b8874163f5760edbec1f8aa1dc20e4a1728a30a07e1af8dbc16e8916848ca37b51d4073eee37a3a507d94abf98d0d42004affd937d72fde83a23a9b56a8d4b9b905c3fad496198cd853f1ea06f703a015c4d8271e95c4eff8fbb50d", + "0acce0c93b0c0b308b57d22ea325e3738a10550b23f6755de95982113a13cd838f77d98a460485e8b6a158ae37d41ae13179aa9e62c51b24c932bfe45730185b2874ef84708634671421c7b16a08e284c4d5012f0c0dadca3f1cb81bb1650906f603575f68e4a736a7c454ca0e89bd7a0e6a5318c6970971167c248c8bd039fae947db2b1cae94790b67387748757253dcd5e5eaeb056f1ab2f890faba46aab8bade5df1b1d8ecc161bde299a89d3cbbffe9450eb900eff2e65707077eecce68b11b974e439d190a1bdeba4ca3d71841dad9b7d45e539d2c141ac18853625522f3487b21f93887e0a72ea535996fd41e7ab3cecd35261add4d207a7f06d98f3e4d79b3dfee88b0ff87d7295d147fb7a20823d18e70b47fa0205687b4bf48527365fef093", + "013ce1f749b37fa6a78ec0da0f554a3fa48ef2adc0113f834310694a59dc94", + "073f0b0479d8934c55c56636b927454ca4a1868319863c793e65cab6544c9750b1d03455d484039c13d329818679747ba73de13d8dc7755f89c3c624a9b5f8d520d6d2eccebaa4db97b7c7eb456c3c933c46b5fcf43e2c5ccdb6e1580c0396d84a834e15784213e51d8e56c7c191448fa7e3090918e15417602ce67d4dc835125817efa5b3df71121d2d2f57bef5f02989889e3b1b0d0331d880a09a86c65b5709ac45603c690da4075e4783feb31d6baf7f06d3abd560a84d9e144947bb5735c69567c3fc708af9f25bf69f8a827e4b50843dd133294e294e6ed115456d39e3f8a6fe08d9fe9f4cb232e4502ac8fc110fc3ce614c2214f9d91a7898b4997eb07184bb185b8b1701912208a2064af2d14985d0749865a5d431d08196683deb1ac9bf4c11" + }, + { /* i=7079 cDividendBits=1090 cDivisorBits=797 */ + "01dfe2dba1b097c7ae02e215954eb413a187e1b9ced79dc64ce4bd432a82e1afb713fb43097e07725d1229d521a8251a3243e4d037685b84c4c66dbb0e12fdc42ece4f07cf60dd5dd6589affcbbf4f7b39e403fd14bb4e9459eeb729d6730961569aba993438a2cb4bc674bdf5a4ffdc354be78f6be00043df04fa15309d5a9c2868c52f220b36a121", + "191ddedef512e3f668372bc48d2dcea85f27359628b9038436dcfa1cb3776dfef9300f916d895ad5ee01310ccd23107fa46fcdbe84e3e674098ea61937a5ffac02d40b24c5c609f26f8ba02d8a916909a2b1a61cc8fa579ccf8d88133028873b8908d389", + "131b34a8487e557e023fbcdecc8b5f11f7305c760d40e3d18de7f5bbadb9329055abeab303", + "141b87eb43c92d3d9c3611554e210f6ea5ec1633cada5cf083d00dfcfc9f87cbc4e47bb405670d03ef8b6a64b8b25439abfd5e293f73c518223b18ee13707b7e227a18f6596a8bfa1c3892146e79c0bd605dd29206e224bfae0ff2dc581b84c365f95b86" + }, + { /* i=7080 cDividendBits=2165 cDivisorBits=1743 */ + "1f7e1f89486d266e7106b06fe5018352cf6872d7780a15ae26fa581006d0187d53ed9240d8d89c58643df238e685d11b5b5e215ba9eb030fba1cbbeb3bfc356888771f242da1630ce5d64db9e580e5895e22427feff7f0ef5a3e072b4be88871dd78b93ba4eb59121c5c5bcb977beff9bdb164e4b4c83c59b82cb9b87a2e1047569a89a7fc304f76d990dfff9851c7c63e911a5c5bee2c9e1808c4eb77ca480fef24737ffe36fd1ce1f7fe073e1ce5c209e0b4beab54fc0e23fe72c765544f1466a595a264edac99ce9191a44f8e20c2724a7fc83b40b4ff9936d31d9ac4057aa85a9c70fff264730ca2d9a9c69efc26fb2bb5d4008531cc31393aeddf760a4d5968c6059d92804d99c4b7c72c338e", + "0f13df2a200af02d147350d9bc627e44d030b20adbd1315e547124eff3e3832bafefb253fb672c42d7a8ebea9f494160f29c456a79de132b7b4c418192d5c83612e6806bd78901d50bf232fbef03e05b69b8780d5dc6b4cd81ba6e96ae76c7ee60b2879c1edbc17006950991a5f8efbb7ab01a10bd197a07c69be1260ba28ca67ec6050fc59ee524274bab688a6c66649d26dd439a92ab2b3613d10cfe7ece1f3094c91215c7d469ee44f4a2f33c53acbb2410b4ce3b13db16a3248a8c1ca4b34b6752dae1f29236698c5b0ed26343e147454b1ca58db7c0f4c8", + "0216b5329483377083661113488991571d02fae2e4f7317fb51053b57456fba3bec4e9afe703ace6d7607b889c9e46ba2a29c0aad176", + "09eadc8eecf609357c94d845a324d9f086ae19c7eaf36754fff4134776c04d6ff9429372977d2443ff60996fc2eb9d117bfa83c96465a2f265f56c17ea34684a562ed312be3b3a78589238ee957a0873df737dd3ca669d9a6bf974d42272ab53d5bfa3771a5b49bc0525f5a37b98213c1a582044fcca8994addf7a2da132c2ba1cf6ca9e1bf88737f0351f2641da69445ccd7fad7437e5d6ed9498ea76b8e76cbf627197475941475a450be7f05d242d667a07579058e2c9042597917703689982dbd5cd2a98c1af3c65818a7c9fc6cca471f0009fff94175e" + }, + { /* i=7081 cDividendBits=1856 cDivisorBits=1000 */ + "e9fb1e964ed1c747c4f4ba90ee180a326e5d155162ee80c0e54f94f3e60c6fd8015e135056bd601fe392ce849a3f412648c9d140acc217142a5236f33ab1da908d7c4a2514850bcd2790302b90d42f4ce5eb187233c03ca5086bdf12317a6280cd5ba0596dcb8b10cab784ca9a4c5fe29d298b9b175323d06088a0a78f2667eebf78d80714e9b555591d9de83e016149ef6b4649633a21a910a782ad195ed445284bf6b7d87da35533c0f2a7dde661cfdab958272a98718b8f99f1876111c2f9038477759888f7907316fe466498e4472f77c51029cd1e30fe250678fbdd101799d7bab1f3634601", + "27aafd0ded2b62633d70a2a3e28c078b2e2cb62bcbaf1773b6f44e692f86c069262663479c6f1f6deedccb1cfe7cf0530a79ce4d1e29eb7ace25e235375b540d742d9014480aa8989ec2d055faa22c33c6ab1afae65fb7846a594dae7322a1e2b0d0fe77418c923ca60b2ecbcee7e9fb810ec9ec3180e33986d515161e", + "05e6039428f3621cf75175086c6691ec22696eb4192ff8af41d1d800d34d969bbfdc514df2e78be6c916dbaa59ce1d9541c180ac0881d0ae248c8c435ebaaed3fc79416e4a4eec6f843259d93db43cac03c3c1961563a2cae404528213e1f839a435a1258d8fb28afbcf8279", + "27a8c717d8b3e6388bdee49c5a7c6a2d88cc7d5d236e9358a22123daf89f164bbbac0ad8a5a2fb374fc62b25b98cb0b8d195d12470774cbad78bf282bfad4462fade0b6b43c66139c3a39fdf04c586f6f675d1413c7055fe34a2725937e77707417672eb27f81d23df04cf5c23ba55107c35bfd0f82cc850da3aee95d3" + }, + { /* i=7082 cDividendBits=1901 cDivisorBits=683 */ + "01076ff6872c15aee145f152a70d57d6befe283d7de4a5922c3b0043a812208a9927fcd904ed63633deb1aa5d8127830c1d3ec6286afe92e9ade2c3de780f6213068117e49a032c96b9a738d46bd62671d218963cea15fb6b31b516c86dcc8679fa10cf025590b6e953c60fead7dc4ec2379e50ecaed93dacb3046eba666760ece1187902e9d8ce839e0b0b9563e17c88279834a4b31d1a5b0e3e4adce87cb71c183a58a99f374cb27badc74bfc83b368b74c1585b047ac2562ae5d0537feeee166829d5ed285d3fb23ba9560bb95a0fbbfda2ac612e5d6a7bf7a4b1ac9c26684aa9d9c81f31844686e93ab76bf9", + "0149f9c7e5578ee1c86a35dfe9640df874b885baa56654ce7512ba8429bde72a0056ac633865b9f872f9a7ebdc4f87f83fea691f05a2600996d16a6a3ed94b0971f0dba5a725ec96b54cb89e752ca9865d7a071cb81b", + "cc60e9f605b36f8590f3e70907d2dd0741183a140f918caa84d0704145a9b784bbfe3d05ca0dadbcdb17aab3ecbfd3a20fc568af2fe90a0fab36d75fd03d0feebb7aa4c8d70725948afd20007407bda72292bba3f6b9b8a258fbea91f3b4a05e0f2d551294d1c13574089e45d4207c9626ae1796d33bc68afdfb396bca3d2744ad9596b694c58e795e1952778404e24c149febb51a336ac3", + "4bfbc50a315a4156b2893e74b64375ef091a2b7e0c989534612b6bb33daf5c2189fbc703b91cee1656ea362164a513b06249a28c16be17b3fe3d8c38357ac9354c76aaa2a5a3fb4aecacd0b1ace31c8281803b0168" + }, + { /* i=7083 cDividendBits=2857 cDivisorBits=2796 */ + "01c3a2853ef7b752a212408f7aa4c6975e76c5a6cbfb789e027196fbf0c573947047a8304875669847e0d32ee49e09eb4a3bd4243a0c5bc2867bda4c20473f4b9fbaeed736392d6681ee535c430d187102a1eff0a9940fcacaa14ba5c724643d699a0761f947ff9ad37412e81c5ae80530738ee21c06a3ff400c6663775c6b50ec1a4ae280fd7903e20e3e9eaa6d8549f3faf2159598567a0a2a5ac88b8f308c535a13239c19de3cff08928908c4005702e462c8d18a90470b620e617df0a755cee5b9c546ed11ff55346d81fc7e5092e248707d846587b156a1f32825ea3bb7bad5b4caa87a203648a16cc964ebfd29fa4ecf9e7383a4dfdf1f47e4e87a397bc557247aa9ecad86fadcccd443f594146a1508d38ed09ada6f238a0d7238388f8e57ff24ab895602e7a677da991676612c20bcfa1cfca1df7e81b7b3b94a966a1fc585d81d4ece499193fe49b3d0a1bfef00a56517b49ea7d7200066d1162ad5ca759ef6fe37", + "0e286b83b5f4288322bd4d3456256521fa27296678aef5edbd8da1f629ea65073d736e4b9b76b9e44993cded43a1cc0f110cb7b94a067f2eaef40e98e6f291b1498adea5aab758c3003957f4bf87cb6d11bd568b867398515d004a7f41154be819e2724b68d21db250eb3569213ac564519a7bcfa60307a1d48e3a42b7348781f0a5af4602ba14f3fa6a8beb1438e9c60f8d301a6c7f28a219136962f00452e542f4fb0fe2cfe4a46c78f05db072068dba337870822f12589f7e97359fb3f8bddcaa45bd172bd2e02c4a62f7941aed832c954d1c6f30c8e6753d145f1805a8b855a8583304c8c3d3b7cab64da3adb272f9f36ace5bc7d0c52c525e49219e28c89e7c26d6b38bba46effe0e0ddbdd9f24b532f87f3cd9a5665cb4e498b28b739fa7f59e1169df5f25a6af56b3308186ad2043e2fdbf7a1d188a683cbceaab5bc01bb66ce2580b095add02d75746ade06532829d2eac6bb30b1b74944f11a5", + "1fe65dc73873e929", + "0d3cbe55c181f738dae57274d0cd63612d2a37cfc47b2e863095373450b88518a83319a9dbb47ade10412bafcbd919c3556b8c9fb8e1a66c757a130f81b23bb6684a1ad5d9a3f2898af3ba19ed8c119703e5355e1299e93f518e617b17dd9213a73b09beac275ef87d44a0cebe5012ceeec36d26f8e2d348b04ea3b3d9887e466729b7748adf154d2f8c4d0a683ae488fce3b17983949bf745d0d5b94ff26065e103f92b42e85534762b4ee38f4e7560264f81d6db266a8465696364aec306b0ca0200274602251549366a5948265683e4497b7622daa10bc5dc66e96225525355c0fcb0ead8048e94d1e657286b3db2cb77b5167d232fd7d3eec66dee6dc7aae8d2fe3afc01770e8e44e8e113c4be3731df08e34416e1ac4f7a2c4f5faff574264040b27fadf75105f7d8b4ad70b295bedc2e3492b62f3b1c1bd978479d9a8ccff264599af5dfc0282b8b7efeab390eb1655624ce35b423b629e21efdca" + }, + { /* i=7084 cDividendBits=3429 cDivisorBits=1236 */ + "10cb17e67a827ef45fe13fdbcc07d002bb1405ecbd4fc13c2b9ae3561f37a11e90c1b66dd35986e62f1c0034ad299a3b142693e6dd9a884318a55dbbb9934c0c6d617475600aaa4b6c6ee16034d4c53c5df87b0b56262fe9b41ef7894cef2344964565654e3a2ed84f481e12994c3afceb0c1da9d6cfd640255dd5916b1cbf621cd0e86508c7d6e604054da321a6beb3329806a7fa13db75e1f1328903c86c2b3dc626e22b9f84c50eaea8ba4c06e83bf941c058088bd4af453435084a28cf1252795ef1ba5fa1a7f670d5332b35a6ca164b2628d8cb5f2c537bbb777fd09cef1bfa41c4275145a17dc06a640537b3594a1cf581123e94900bcc67b3ccede43c982e7a2a9eb54959144e8a59a151cc25aa8aef564c5e2349fa1c7b97bdbf8f859344860f54867f3c87cb11add3746053848fbf52574b903bb92fa2b6bdb27faf59966c5762bb4c12c569fe5d77208aa1e2dad938a0201ad935969fe9de7c6c7dd7c548da4f6306897560217dab020869b198a19cc4323ddbd55095a0fd1a05c2434762b9698a3207484b5ac643b57a6c321d451124844f7c371146ea1d6e33561e551e9ad989c108484a126857", + "072c62db4559ca3b3730d3273132853beaee42f1675a46fb59c2f73063b0c515038e989ff5cc0b33f0f3cc24b35748db85d9564158bd3762b424b5fce967d4329d4c396fcade698e47c3e89f055830c2c716a553d4c7d481dc0c7ecfeafdf968ef1c386bf72d084467566d975e495f63e6b6516aff57d3ed33476872919709142a5da82fa35c55e5d5c90482a62d6fc5d648b9497d094bc837b57f", + "02574fd25949276a835a68f32200129759fdbc6c4a4e96d0b195da59d5ff2b82fa51d64644d033eb433c8d52e2a0ee81ac644a609382d867c1c0085781466ca5a3fdb44543be85b47af90e3bf75a1452d7274ef098ddb8199d49a293110264be60b7cf26758de7506c111629fdfd70582a82644fce0706a01e1d222d4ff6a86ee27421f07cd9fb343dbd5e5b588ef143091c3295814e3f6c603d13fadcdca597e217d525a9a941654caf66cba01da663aff75df237981efedd6273bd7f85efbc27a2ecc7d432f5a567112d328f5d99c8f6da8bcfcb0950de68b4189172c9d14ee7b049d97698128eb4e28e1033fd9665b5a79951155ddc180f5b8ecb0575b53690d9da7910f6a0a16155ecd90252ac275776d6", + "0233f03d2566eac765182f52f26928f3569aacc55fdc1b1078e6232a9de278e43a0ee5a431a3b80afe653bb21f698920e4864b38a4f3236ab99be87d79fc8d27d034a83400f7d1d85a071e65c83f69b0a0e8ca16eb6a7abf3026bbd995a5aec668c30ad4298ebb2b24a15378df67ac63e4267273d726bf936412d41e5067e7a71e85e3c4f6d48c9768d6547a1013bcca4597c555222dbc36af262d" + }, + { /* i=7085 cDividendBits=623 cDivisorBits=618 */ + "347c051f72e90d9154ca61668981adda151ed6b470cc89c51350672b297366008db70012f816783a4db952bf64bb45b6b0fcab43edbd5d12aff2ca03b5a340c92c1884b66ca8aff5171ec73d591e", + "015fa04c5dd07409d147b9ed075c6dac15626986006f9c064e574fbad8d7a57f99956c30eef760d3cf581b1e7a14facaa0735e751738bd5a102dbb68d8584c28def71ab53695170680e11959374f", + "26", + "4a39c985f7d41c4424c83771c9664ee8832cd0603b60d5725a916ef970d50fc188f0cf7f5e18c986a54c39459e0ba2dfdca5e27b5141b44928f8739887f2b8136a8dd0528744fdf5b503ff2364" + }, + { /* i=7086 cDividendBits=966 cDivisorBits=145 */ + "27cc019c5ba6eb868231c56755478998b3421c7f836a00c834cb08ffa4039bc9c6014c48d752cc0e50831fdd486b3c48e429a2ea46c38505abe13e4c3d4aa0eebba039e1a50f676ba245d60ba27635c5704d8d0b2bdead4014dd9a57c27310bf8bc56e03c0b8638ad6a65e6533445dcf676023f61d523726f8", + "aa1d28a566c10c19f48c64ff13026475d5ba", + "3be3aaa246859b975b786b546a5012a84c937b7501742bbe481c4c2d4e480f98d42998bb3cc11ccfae2b1899ace010af285a766212277e0b3a6f88bb502d0b8daaa7eca30c5cfd12f74a8ddc1e6ccde0cf5800dd6f45d38f8af0cd5a8ee7a5f6bd4cd189994208", + "18264d2b33d76062e3534b1af17c87448528" + }, + { /* i=7087 cDividendBits=2538 cDivisorBits=133 */ + "02c73cfc2edff7870c3c764cc162949b093f606523feeeec5919043af53691909b66e1e260d09c271ef3ea8a32d4d466d8e3761bf0eedec1ae9c109dbf4bb86f72f3b7f2704475785d9c3798f5698976b6be7a167b0801131aaeca87783da0450dc76220dc0a816055aed534eadce81021858f80f637a2ab105dde27534b655ca71042d2656253a697b525f98d7f725374eade3dd0e6c7f24f0e5b6873faf6fb7b3bd97aff7d7ae3386aa4162706d20d937a1979eda3c8f7061b6d795bbf03fe30f48a89a48cfa79ca5be7db0fe7c1ccbb495666345e865fa0537974d0fb6d36ea4f54e2f7f6985c43a0ae296dc3fe2d769f29a173d3ecb44cc6202e0c9f60e5f36644321faa2f67d0bbef539ad4095c44e48891d1ec0955a413565a56e3c6268350139439e1aee89e7dd41ccbb4c06ca2f9eb12602a5ab1d0b3f57d6960", + "0da3f5dd1d7e1ab7fb72e0aad01f48df9b", + "34244ad411a50da0c8d01aa134241f906159c909ccce6ec1a504ad8ad261a4826667d545d40f90ea0e30eca7357bab1cb637a5781cb2ff5b265fb0797a8a3da16567a703095fd0e06244f1108998b6e3fe28985e450374c3a48b6f1666b76c9f98522c4dad0be532c30040333246aace0e8f5618c06e84a1eafb8817fc53bdb2a32ed0f858acd65f73b525ff61cf8d3adc64eef1330365bf432fadc39d78f5b4a26d10ae9e40ad2062cb5a2b04b1458bdaf65f2ace041ce3893d4ed7b1ace18638a04d62e68b0026618fe22a26f0403b7db5d601860eed42664146c24a76a05df6e95c2deb009d61c6accb8088b859fbf309a91d050cebd92e2b446ec547c8f9f653750651148e5097781d7edb0cc31c75152f62bb8d2d96c765671c23e3d21f4432e7f8f07213bfe5743ec77d", + "0c29a0f54f5e76d177f81c5d23a58cbdb1" + }, + { /* i=7088 cDividendBits=574 cDivisorBits=423 */ + "2ca981068703051b2576b63483a67d425581c3e15450fb485deeecd872df2e2e09c8cbfa3f746d69e6286702b9ea3fbad230e00795c425bdb5006a35641fe5d79f6ed7a5252c0994", + "04443655756b49014f347cf65093e13abb8b5c6b545f25353753c5865e7ab0e76b90ebf10f25ef2daf722672be940222db38e87392", + "0a77dc6ca4beae38ecb073d60666edb9f74502c1", + "731c56fa66c0850ab977cdd0c2d030bae4cf49b761b9282f82f2cfce85a37fe022e137d0e21ad07338f87d5251688d4268abc482" + }, + { /* i=7089 cDividendBits=230 cDivisorBits=212 */ + "0162aa0692bb4b6db1e8e426c484ca740ca126fe79bf0ac026524e9a37", + "0ed67c2993e9f83a8e0e79ed8c2e7de1e40f1e21d67451df550951", + "17e7", + "0154ccecce01724f682267931f312a4f01a53ef2146f3528bceb20" + }, + { /* i=7090 cDividendBits=3906 cDivisorBits=381 */ + "01204749782150a90cedab97ad1cb0ad170e316cc372c4afb48afdaec3bc8a50da98b0b4839d765a8c955c03f5bf3599ab3cf8756831f82b9a19215c502e32d80a831c2fe1e82d933ebaba85b1a7dc217b1693d06c6d7351a0519e480f30fc02152f06c09e706f81a4536280eeca7c2e54fbdc0cc10d42f0a6e8b3962d6623a14e9ea79290c3b7d3ffc6712d52350e2a56086cc4221a7556551a43a117d0b4605a9cca2664a5ba2e59172e12eda71a98131e9f796c0fefe59630cf5024b6b4b965ce0d90da235958f27146c7f59c0be235de710b5dcbfc9c4a8607304847e87c943d19c51dba298bd076641e508ad0aa8c24aacf1960203e6e1bb71c1253bf8c9d4211a974b9203faba2eb394e6b83ffe394a7f3768d07c1e0c495c2aa84d3d2dcf962794c3cd134296959f29d0ac8e4a9351a979dee1de22d2239d7fbcb2065f41bd64dca0ea915742d21f265a20a247970b7d6705e995af2aa14bdce2bcb46e63e00c489ba794c1e12ea8a38604aa610180bc915900d8245f53c6f143ae5fac287c8f617b3f9975ca659d2eb6aac9e32301afc7897a3e69e2681272277be14225af5068c3e1e6745981e8ac1fff1967609dda0c8db7e90d9d4895822ae421d844f64eb3bc9aa193f0c0eba3995ef19701c293e5b79ed327487e9daff6868c4d25e15a3fb5adc6213", + "13a8777c33e2f4c848d2a46eacb54846035d7bcf87b3c1f3567b28d33d8a600861f9bbdb72c5cb19adbbba7cb0d15892", + "0eaa2581fff0a307c872dbb6901428d6b7c4365193bf65fc83d31d5cbf454e7b9b5e4ef576edd51efd8ed02bbca7084967ab0ee7ebcd9f933f94942813330d78ba1646e6127694f3e17a5a0f4090768c70d510c553e0a2aba493c6a7e3c55a283f08ac16764658d0001bda2cfb566f8dcd13eb9509ba914f590935bef1d41e939a1fcc312d01289a5e71098e57fd600f14dcabda1a22a10005b54ec213c647752f5f1abc1ec4c50ac3b5347b4526ef7e5d1a8943617bb53dc6ffe2af7bdf032024a8028bcdec5fba266607f1599a542a7a6da27fd43105b3799c58d60842de9df3f9083713f0cafc79467115ac36c7de5a60ae31dbe7ece53eb2ea7b270c6d8b6b16f641e932958622264b3cac32b4527149bac04a80928e21e8ff21341e6ecabb237ea4a280ad310a14b75e1bf8152bcf3f018afe49dc94757598f866b71d2abf13ec17c8ee150bbae9c2b00ca7606aa33eaaeb0b8117ba845616e503dadfd15dc451fc63d396301e38c93755b6d049cdd5436376a9aac7c0ad4bc2994fa568b0deab34323a2817a09504cf30e29f01d76fa4626f681c72259f595deba5a3654c60a38651373699049c9e000e56c00dbe767bbff1da611444", + "0ad0c3343ac3ec0fb1f7ef52ead1cac64a552c8741200fe1fce6ea7821bf67805e96009e9dadee6a3585c8db2503734b" + }, + { /* i=7091 cDividendBits=1828 cDivisorBits=1522 */ + "0d8571f87d3ef84fdccad1afdf919df47733c10b7fae456cac12e7ae4b19cd8094e3fd622a7db791873ccb844b143c918be5387e8d4c7935d0e970d30fe66000ff653f1c060ac2dd304fae87c0cf0af5b0a033534619bdae9ae4deb1e28da928d135b1246957b48a271233b443bc75b1368ea4b52db91a2ca81f6671e0494defdc297a90059f2ce642823605ffaaf19529a82ec2c66c054af0103752f98f861b9912f51173fb1008722e525ac60da73de5ca9017940a97ec5a78446033965b0578626a3234aab07c8f54e42f6fe029c5fc39fbb8c35855642f407d4f9571ae707b6a6849eb", + "02e83ae853fe4ed306c98a183c64f7cd3ea601a8382f354225745d37b3397513b107cb418e9963a0f267ee68500f93909fb10c5e47748fc56467155959aed2c4f8fb9f75c16800c252b29d801ab64f84e97d86513c52ba912a61bcb8664058b667e4563ca397ee6f029f6424d5035372a75f35bc96ada1491c4e7e9c66b9114de44ccb4a3557cba7be0b1bfaccdf09d9733de6a0e30f2c6ca2095af9834ab1a6fe7ba74e5e268c007ff21f16f90154022048c1194ec08a0577a281ba6c7a20", + "04a6aaa9b8efdf729508508e71b280159a587dd8d6655fd6ffd593ae508c1a9165698ce9aca207", + "1d8ac0f6d4c2c04865a57e84eed2220b09b25d885bb05003d377c031b37cf34e264a91acb462136ba7372c2f2a1a925c511a88d2c559460ad20d2a391b8fd9b2921ab6a4d65bf3b4326adc948596039c3c72e0484db6318f079ff5eb9aa05ff4d890e81b74bdb7529c8b38ef770fdc7e23dd465db771cf982aa398fb55b1cab3d076346517943f955b55bed40b0442ba3b9c251349f0f92847c5f76fbc508f4182a20d7f9ac71c0d578b82a580a34e00835ceb212b6f94b3016d7ea8b30b" + }, + { /* i=7092 cDividendBits=8 cDivisorBits=4 */ + "4e", + "08", + "09", + "06" + }, + { /* i=7093 cDividendBits=1819 cDivisorBits=1608 */ + "06e5721fe6658ed5bf54a2e5fd747336605ee73a5c907c05fe1133053c9639fc11a3cd38f933cee6cd68f3a8fd5afde51e6c74fabaf876e29ad8b6a896fc92d5a03d1dd142edf1437fa88358d4a463582b7bdf02062105966ad46c981e28b6bea37c2411d8a78b605beb8d867e1177b6b79aa9400e88ba0f3e9bb9fa971bc08902995625a658d5094452242b6f4c1155fe016be275d46fab9ecdcbd80b51968e6b6a166c4d765ecd08347d017173a44e36715849bbd976b3eec3eff7941089b1c3164c19914f853de963fa23f8fdd6c8e58e02e1868612eb7ad2bd42b0e826e4274fd595", + "2127111d3d57033e714b24dff7441b5c12784dbbb31c61c5baa37a99caaad63cd3b2510e7a9782cd095c74754a93df67410792ede843d2cc418e2a0a58c89762364f7f0a4992d106887cc5f9f05a22160ee665b143e5d9d05ca136c5494a797b5d3bc3a488ec983fbb3fab5bdac542df68a0b50a56de41799c7cf97fee056ab99e74bcce8cc1a921e4838c3d78d6c6432efe3f1a9dcb164b8572d44c8a2eeb3bf9d81a54979cee3c2db7f5d55a90adf61920f03280f62d49d39d35806405ecf7ea27d5f9b91d02d9c0", + "35408990191fce708c757001a560ee45dc938e3c8e7f4ec195af48", + "12e4d5b08a1ada12de84f2918dafaa601f90a9b9cd69eb3a48b8786acca3b1b7943f208d186781e78ee4a441f850ba77cba92bd2f8ea5ae3990fa5cea5aae1703e94208e04f6eebc642dd386e530d3075dd9dd7eb606f0623346e16529b65552b794526509e2da4872222fc1238551f31362e2b2be14f36187079ee30e4078a89f8a8f7750b337e3f87e1f1680b73a7b662edceaee5dac074c17d449618aa0909d9b02a17da91d7536d1f40c969230fbc7d837fa898a4400623d92969b3234ba744602beac8ee85795" + }, + { /* i=7094 cDividendBits=123 cDivisorBits=44 */ + "04e11fc646a22909673988128431018e", + "07ab73ce2610", + "a2dd31653b3293e116fa", + "0785118a75ee" + }, + { /* i=7095 cDividendBits=1384 cDivisorBits=878 */ + "e28a1caa985a13815441c09f7ea85deeaee1e6981482ce6f3744893777968d7028c6effa483efec030f16d5f903652aede1866cefc837fe95ddb33968f8c59c96ba16f08c284e0029dddad23c19556a65a9ffe8aebfa8aa261e5940bc3ff192b0b22bc0af6b3dd172c0954ae8b6964a0659b801e2b0e0832415c0e5c5b2e093bfe467327aacfe5a6c4cdb18f03838eb5e55909461148ee3b5f844ccb0069ff9978fe7ca36560df26037501018a", + "1e54d1ce821fe0085d73f3a94d2208ebbb83849272c37053390b167adc510f4fbed84af1efd00169582f254c10800447ea72727ad23f1f514a8d4fce44375330f8a6155e8738e3947d1e89a69fc78a5ddcf7e158ab7fff9b299148dd6fa495a18e3b3bb8b30988a74d209625b743", + "07780532c6f3abbf88625b59520ad84795bc2df1e3232c60df92562b7311e7fc27e93e6360180e91b7e191b9ee66fb3e8a5db997af4aea6975ca4149d0193aba", + "0bd332edb25006258ca7135ec1c1927429805c65b4774311a492132a0684690ea195fddcedfb44493623591214f94560a51d993691a08a54d44ff10184f535964505a7078c2ee302a9fc5a5a059655392091daf909497b50533e74f85e3677c80e6a7ecabb178f8326a17c89acdc" + }, + { /* i=7096 cDividendBits=3112 cDivisorBits=164 */ + "1633227d093183aaaa74c216bcc29635cc98dc1c4ba58ccd45aef951c9e0ff0310c30390dcb6b56887bed97057217f3cf9149a49510f39386b95d7af635e5f88bd6bdefbca4c09943aa81af82417e2e431cfae7a48e2ff246e6549513af6079665e500b4054c647c16c98636bfb599d1f1747015d22342bd4473adb48c3f891f98bad9c44d85a2db76a5e0e57bfdb0ba5a9fe75dab502a6e5c98e1777250e43051d15c126ba58ef420aeb77bba95166748519d6d29394a99d8a9f3dfe0d5b739a4a0abab78db2620a95e4d0f6bbb64dc2ba3d20e6f0857c8491cf293dee0f67dc702fc6ead9528b339911c1dd940856798f4d83d5432ed3844f4e7a30e2207e6508c7fdd9b561f00c594ec4f94c67ef8150859e3586564e2cd490dc62eef98b50518ab28a1e05da510ed812cd5199f6d63cda73df9e4fdee358693ab9c858d031abe32ff04542d6746e00e79b52d0e884d60d8d05a62ab4ac9c765e813ed6876e4a5081e3e84fb8ebe4f4e90069425619ed2d21e873120a684ee4fc7657fc8bcb7589ebc6f", + "0f709f4c1cd2e4f27a4fae08263b09cd850a1affdc", + "017014903f7c3a9cd609b217f90eadaa9da20656490b46945961f139d04ed4bb92852ff7a055d3de908f4b46c1aeeacd90cbc97c270138212163b94aa4df37d344b633f6c7ab2eea44441671d6f60717cee4907cac464a8762b2f333d409573424d4392c91032b8692e2549cca44f4e87903286069df3e64906b339cc5c1dd8b7e83c59a8e80a07f0577306f33ef507d74a87b1720fbd190bb59b9fd3ad938232b2ae99153dda34da4b8181fa24f613c9dccd9c33a4ace30156a09979d4737c62500aa17bb948dd3b745838a75fe0114909a27ea8707ce414712c5f83702d65fa0b5c4df6389c97f0d5fcb0d8cb08a53bca89fa7b8408431c5fd44ca3a47ee96934b638fd93826af38990aa10958af8ba4748640ea3f5c3d1b8221434ebbe75c47ca110de3fb658e504e5273d5d12b76f95c7c61c884fae6ed435f673372dc707f523df07274763da2d0de3759f08d48de96de496ab26ccf195b2a5249d90b8d4a7b79aa78e829b8fefb017f2c148e8de6", + "031fed3ac49b5dc795f1a810e8d4c3fbd84968b0c7" + }, + { /* i=7097 cDividendBits=1364 cDivisorBits=989 */ + "01b67f29b0aa38f2d2a2fe89e53b22d0ef207e9c57e07eadc416e79b43c2dd0f40d7c6103344f9ac824cb4b4f4d1f822eb39f938de755c97538c1347d52439a78e8cae4bb12f6b1cf2e5e8092c6ca278a6495040835f4f9c689b5813df136038097f3fa37a8078c92a570427f7e25045278f29fff501fc3d00e3f6be9fc01350c89d5ab5b2eb75bf79478fc4b892d176c58d3216bbfef690aa30f097f6099103b251f39e51b47c6729fb96", + "0609e512e239e59854e0875d0631bcc818410011e66703bb36616aa075fab539239c6be10b735e1d5f6ecc2ecb8b4dfdf2bc5e1ec7f0dbacbf3e76aaa6ee9b77dd5825e62dc1a0994785dfbac40a7ce9b9d6cd70b4a162cdb8a439c10380caafca947d07e54584c93553c1664602661a68a2df38632d0cc861db14ac", + "489d71163f49dc1dd34955a12d7e036f58f5f77d11ebe25fbb19f5dace326d800219b98ac0eb855b1c38310f4fe62f", + "023466da508b44119fc1011c947bbeba4ebb105d8d9d5a5b2def56cfb536498db1b87ee356bc96d3a130fe8a102ce2f884e5db55b74b00475269a358797c3e2d5e80bae8260246d7b7528f6ddb46254fa16c653f8deaea9d76fa00bb28fa5a1835a3ea9ff6c06f1dc4b07cc6a838ffb9a61df16a31b9b60a264aa802" + }, + { /* i=7098 cDividendBits=2780 cDivisorBits=2367 */ + "0fafeb78144239fd65f17433934085057555a596053005c414c4ee3970e389a24bf901641a8b7eb06d9def35e5c05a2b9ede9c9b95f8a12f0e320ed299b2c982793b0d5156fb3b822a4b7967f070ca9723a438ce50a2e7313e28bf42d973f664214440a87cce8dadfc6feaf135230291e3d24b60f9a55afd3c3fe0d63d971a4a061523fb8d8df72687dbaaf7d6a5e65373064114b1851202d94585a7e7ac5b59f1959c5a6b1bf27bc34bf84d8ffa15b478855f599cc24d5a028e06fd660c20589ecf877dcd9cb83ad414256249e09ca393fa2959cc8e7c4f0871dd0faa00305c6e13d989418d65ebdd1ef086e7971856f6b5802c3ba5b66b797698182cc774b5a79da1ea164f5fc50f77376c16136c0351a358a2fbcb04e73db731efc09752ce7d7f021c3d4bd34fc06b11aa2f3d649eb57131a1768153f514465bf2c7a6171455e230f52fd95d11375498dd3a3bc6959acfe19aa88395b298c63a46", + "7de44392517ed3b3ef32ead2536190e29d87094c472fe4e30630c59557f511878d9b1a9a51f0a039d65cfe8bb9dd93a6c0aef236f59d8a5538bd5b2efe5b64b1c7cf12e01bf55bba7b4b8d87b4a918c52b1af7605b5e603e1da8aa653eac9ea199f3e3ab9340a8c4d7044f69f176f9731a9ea37417ac7ef94afcae4600e6c1eeea1e17ed37614232a585e5c3fee24f77ebbdeaa25b7688ebb290f9db9cd5ab2089b1b7c396f96bc240f9709ff3dc9b80a7acff4c5ab86c8be8487841f2487ef8b6882737eeddf07519791654c431a3f7bb598453773f9f17f3f753b646c4b888c41645f66ca73d519cef340850c767c7fa1c5276f6338938fb59b6c7ae8f7ad9ddebf8483e866ce8c22ae1fdd1c25a682e0929a47aaa24dac61cfa51cf1dd4639a5bb90b6fa550b4", + "1fe659e459c3b5c9535496a9edf14e972777c76773bc52572a84854dd200c6353e8527c86f438c29e46cf6e5ff031ad70a38551d", + "1eb39fee5107ff217d20271d8366570a98be4946ea31e25a407d007e480363d296862cc65406e9202a262530ee50f6a8ec81ddb55039afe9403429d98d7e58d4e0d32fca68e743bb485e14ec805effb67910a36f8bfd9af15d9fa35e196c0ed07016c757133638f7da5d2b2df50bb62c51db2388068241260b68b2452fe7e1a77f7db756de2f14763c28695144fb25e55ad21cacec6bdab7511d3c02b5fc1f2beb313b8e152c4c1bccb167b7386b67fc14f0a692766419ccfcebc991d867594c567148db036f60f8eaad8db127435d9b95ca7fa8a8f3680ad06c6d08325ffc15c303623284eaf4eaae16a5c181a05f8c21ee3996455c4a712972d9ec6148b7d975aaefd152bfce1e1e7a8a77632bb792dad5ca5005acdcd59b75e80a498eb17dfeace2d85fe051e2" + }, + { /* i=7099 cDividendBits=1356 cDivisorBits=157 */ + "036561c327bee34e333d30d1567d90f4b854a1707b6810d121fc68628abd89ed8602218e1c3b41907321c73a9c9893780a80d892809b6260499044d05b43d177b78e9027e884252fd10facf399d7f7cde01d8b76019098d06cda8bf862470aa2e990dbdb9eeffb5012763cbc468193a01cbda9a199eb5ab98242694092668d65bdb8f46a9e4a841fa862ae5dc57bcea692a224d45e0bdb30c3b3e88a9f1f60b0d6f8863effe858787628", + "1b2fb26133c11465c7c9554dfec45cd9e81cf8d4", + "1ffa89518d4424d50e96a39d95d9640b49e042454b3633ee9a92997b83bc1581c733f12ba7bc1368ff1b49e66244c1357098d722f0cfd7ee6ba0db2cfde9a34e0441c39338a2dc0395483596a21aa232af68330fdc0fc9244d06241e427ef41ebdbefc1b0a50aa7d54dd27874899ae1dfb8a421dae26523222716a6500df3caf113c9047c713c445843bf05dca004bad30dccc913fe7", + "74264c51eddb97bc0e9d6be9007246e503c2dc" + }, + { /* i=7100 cDividendBits=2129 cDivisorBits=1058 */ + "01abb2e0781e59a6967d64a12018692d29e6957976dfed413486b941cae9bbab5e1a59f5d5ff7cd7c5d6b07d7191e12b9ceb3d0c7293ef9e546ee3b568f2e1c547da27eb0d63700e2bde5a3aee4639389afd4f2e3b06c5c38313cc7bb038169c8d0d7c2a451cd5ea4c34d6c3f79bb18abfa05938ac11297592ec04a28f8089b5cbb8771a82dea7297343bc1b024453708635fa81f1ac99e1aad32cababebf217e8ca012ecce04689b8d77298c5a37043eb07fd85b18cd0d77a8e39bbf7aeb52624bbfe9d3a3d29336ab7f39d91cf070ee7750ccded8eb562c70348f3ef758def3295ae65e91c43ab106945146387baf15d06e218b7feba87595514ac8560c4fe254be1014e77f268eac926", + "0112fde24c5723199bb5dfef0228de4eb80ace44466cc60447e11610d6e09dc02b26583b4666bfebef6424dbf777b64c5fc4c02fd6ac77114131db30103b266290c1568c71530e6308933019ed286c70573afc225e013aa45c4d8fc34852e6dbf5ba83c7eab471d0020d365e839ad89b1f75f56c8e8d26c0c3e8ca9e4b43c19d6a9c9ec617", + "018e291dc6b08e58484aa995ff6b09f8bc430802f48f205c39e24d36fcb4a2f9fd8a7a4a0e02f6e2d6f255f86a4adbfa3aa65a0a8c25d6996d032ff614f5f47fcfb66ed093d809c77eeb5f469f0e354dbecf0eebf80ce0b7ea6df3ee5200fc0ad9193667343fcfa617c51089647301f34e9a4b1ef32e52704214e6b264e8c68e90af81d1573cb7", + "683d6a0266de41fd88d938f793c0e3ec7810e2b0fe7930dc5e25a280b06881c1a1b2511a3889026dc13b4ced3a3a75f8381c9191b7a5e49ba96e447a60b062cce1f54799ce44932c27a58200f53e5fbfebdf0ba6eb83526597359e96360daad591fd9fddaf7bef89cebd97025f1dca2834f0683be5c5b1ca46fcfb1e038d8fc2242ccab5" + }, + { /* i=7101 cDividendBits=3003 cDivisorBits=2856 */ + "051e6964cdd7238de6fafb1b1b9ec046cba6d6a7302eef883ff64cc22cd5fa1aa06eab5a9223c33a605b4e693e60801d3ed1d79389beb512381b9c8facf38deade827a3b9643bcc259b42a555c0c6fbd5492b343ebf668607e17609d20d74c817ab456b45a29c405c0e34b2db2747e208c4ef6007232456164fe8db01c90b64e4eb0ba045f323f4054c7dbab7bf1cb7c3decf4496c55980d50fdef2ea12c9f0d87f57550a3849a4684b2b171e3c4437b31f0f8a2cfe1154f0136a45db9501396ed365d0338ef011d4bacad9c5ee154817e916cc865ff276b86d5b207e479bbdc7754d96bfc3a586bc537694636ce8678b6f564627c3e026db30d76cd3b7bf00b60960526a833c901ca4021cd5a51f5cafc006010c2953e050304beca1b518d2051a929a91447bbd583afb1eafd1e73e2f6139e0f6055fc5ece8a61de0c4bb54b384540cbb67818f9b1c67ea4ea6ca578381e4d23530e0e0b2dc6cc0b9bbe3a99f520d6b0f9556904ce0027f063b39dae901ffd95909ca6c7", + "fe02bc63548a7db9a2f33340d9e2243e5a7f53d8b26ee26290642436b6e50817fe975fd6982fb9e9d017b15b2647b36ff3dd3bde8ebca69d8df7de487881a8eb158ac4b61d069a1308bae51e44b1d76aded976ad83a4aa9a24346d1da19d34406c759b3f9842055ad5224b298330faede297d11a23fbe0d0be6ee472b951397482ca894c798100c337dbc9f912c6a26f38163152d99a4b574369baeaafe01f1e20856d21ca6586a4ff85bef6a05681d90ef817d74927d69cddbc2029cee4e093789b7df6ca0aca4587a0bde8ae739698153bd1899e62e068842f0f20cc205eba3715a32b5aeea78daa0a24c8710aa188bf0ae841112e4107f0142b0fb7172c3f43ddfd70adcc4e44a4e8316286948a8bdd930f833a00806f87e066224b30adeff32b1815dbded368fed283108ee0ed769bb14e168c694122047e52a4fdcd74786228059b5933dfec6b568814e88487619f1f95ca3bf6bfd31a035ab1989fbca74d6eb33e78", + "0528aca0d70e8f53237c900bc269f6b24054e4", + "c1bf38860f1124c985ab1e7ad713ae7d20f1ac28097f804cece2a5faf4848d975acfdd7064e1722f2bc8fd3bb25c416029bd3905c8fcbac6d3a3c2f752192cf62805650bbf429faf6be4c6d48cae65ea065ff5f2b671c92feec5ab73674fc0e8c5c8db014bdaae617aa01365ad05fcd8387052436b34e329395b23bac0633a3b90a1f5bc6c4e84f91448b318a76c0303d77b15ae3b5d878a140e1bf02b14ade1fa10ff2958fd462e6c7a37da776b623d27836cbbb62cc9c8f3c83fe0f824066edb5b59d7770f5b41361e3fe94dea6bd5580e8a7360071e3fd1f2a29182d8cf41ee68697777811726995148fb54afbd15be7e6b682672694b299a0e59059210d7db6ae9282f0efbddbe8c4f6583d2d14a613f5352ac952512ad77472d79f1b0d8a198cd35b204873bfe0d2d772dd00652f3c344e1221eb94db3dd14a856d3cbdd083b544a01dd68da421d9cbd416241fc39ed425a685c94f9369999e004571406bd1a79a3e7" + }, + { /* i=7102 cDividendBits=633 cDivisorBits=418 */ + "012c1cbf7398fffe384dd0ed64fa68abfa1d98b1d7c1129e97202a42f6e6519cfe631f156832cc61cfd886ed87aa1865351ba0af21cc0fe21373365232c676d15c63a208d91e8c5438d2356b189b9a8b", + "0136632038d6f45db4fba2d93187ba66cb01865fd4212ca77d56688e30dad3c258d7dd48f5a95737fc435ea0f54b059c8e5b9cf3b6", + "f78686d4cba233fccc19809ae06e91a917d6383a12bc1cd6f488df", + "07646d259bdbb8c4c57e06c5200481bdf69352e073e3106138104976531f4c6dc8a6c79450e1e92b8de8b5ab048e5f837bf29f01" + }, + { /* i=7103 cDividendBits=1459 cDivisorBits=727 */ + "065651cc7cfa6115b4ae6d2a964111559bbbc87559b3ba0c00e9055a7c8e0b82c028f8115ed7499ade8ab161c1dcf07ca692dcb1cdb2094bc97711ce356c835683b70a57fab5d062e6e960094a901c41d0eebf676fe6889bdb9bd1fe385a77e30e89b4555fbcd3fc7b2dfe41ac002ce9b8b9a161ddee213da3eef62cf573ee691a30cec60c3350c63c9fd8a60c70c3ca0260697cd2423df77125697c9ed1c3f0852cb20d97e39ba8a4d755b7cdd0e8f1b10f77e3cb6fb6", + "20d02e0f005eec0b695133d08491605a8b5958b41666f4c0561ddff704f83c43010621d3c22ddfe8955f51432bc9373ef4d7ff4b97cd93a64be52baeaeb52a63ee90247ba183133cea4bc791e7ab11e8ae20ecbecc968f165988f3", + "3170e94df058b98f9c8b7afcee701d05a9d2208322bd11d17114007c1bacb8914814bf89e888e2512e48ba54d7d2cf8a89da60d27a560b97d8d904fd740e3a4ac88ce865bb3418f09d86da22eb43c13f74926928c144d105b66aadb7", + "19e11974866ed7ca7e9747f26ce14d3bba4012c21d804c73d13b542983b5ac425c520fb98e03762fb4bb29d50ab4417331180982422c1826774f9e4161df171ddcbaa2a4d83b584974d7c7f7410918b8e393f21e75c4e5f1a05301" + }, + { /* i=7104 cDividendBits=3660 cDivisorBits=3170 */ + "017b27fd21087d14cbe87589cef4d18bce11f761afcf9108044dd2a33a5bc2dde6e1e61427f737121ddc9770a16cc4db6266232e166888a908e4d2c4831a261bffad639ae4c636080101f5369be667f0e13ff9e7b014a7628df8d8fee58f2c640c3d9cf7e0cc86558e504fde4e0b5a75b62cff723d8d97a70b8f145d7990d338e0910064112484ade344bcdcc3c296775ed521d991b231336a701579ee17e87b3384e9d800aa8ca81bac5609870cc8afb8ec147770af100e93fcd612a13e512a0609eaeb98a9250c772a82a7ff6f275523966759df42a57b1b36bc03d3ab9fcfc1e2e24a355424bbf53211217438b5ef15d49aaabb315f5b49ce3b08315cc789b23f451e774652989e94dd730e5e1ffc01f27c8cf9dd2f39233429f19d99107c75165ff8e60f25468d5b06e1a3c9a3626d3cf094c58f591b2a1a68c498db4edf1b51da7a7999bb61e20e0eaf58ab4b89b844defd569117d361a27bbd097735b62da7dcea174c02949d4771fb4d2dd1b4f6113f0ca81b967a22fe6b1a262d7dc07be78ef97550287d0025c86b4eee6c643d8e49759c042287c11cda55a58f85020fd5912ecc8b9bbd3ba0369e8c1156224f32ec6d6596283b597555ea16557c3afa6dab45266124d14cbd", + "03451f582b1db9c9698beb2229a89941930d9528d550becf5d8cdb045df7ab5fa6fd8adec790ea2c39ceeedccbea191bcf42851b26477095e61ada09fc3dd22a9ef01c04230f70e78a134f1412535cdcbe98a430f585adedca5c1eb433de57179add8cd7f34b4ebdd5974dc3130b80eb1a2437dd5a7b978a91bda15e3c69271c59059df20106dc073806cea38789b1d4d44b85b46e71178ba78e94776eef4d2e48ed2253b9f65a4496fe42c33b32d2fb06df04ad2a723eb0d27218f0b82d43aa244324354d4cb01ac36fca968300a7666c3dbde183c93524052af24adea1a6545b5fc0372d5e24d176110e91e20bbc12f32f7770561895d2442cd3e45c6f14100b04c13ee3a1e9c40a129d9974a3b2343efcd8faef95fb191d258cc6d9581ba7f7018b1caa48a0122782c3ba75e0eb0d79b2cfb994c7573a7388fa2b20aff540a7bf30c432f2e1ae6b17ee2df11f239cddd8174acf3b8dea4297b300b0f392131c9f26b24948a4fa258881846764af9510d376287695fe673a1bfec64592d56ab35b4a2797f59fadf6281ef28a", + "73f3172bc76506c609ff2588d69b355a94223d88805a17a748ce9dd9074c37fcf5b54e05d15d1c1c4b355525f18a8ad5f4d7787057be710b527fa89589", + "01850138377fc92ba5277a24123472fb8adfc091e0f14517504f36defd2f08daefdb9be1899d956534b68a7a14144c4ceed8dba83d3cbb138a8e1f895d7c4c15561c339bb54eb86fcb4385d06841dcb5046743d355802d83d107523712216255cecab1112d9311a12de8a1b13252c8622195505356dfe36b4f8fa5c9262c0ac19114b7b471c3e6577a49ac1c58cebf282d91acd4276923049ec8617c659e5fb2192f2e9998bb2016df4086ec3d0f98ac7f95a34d71d23774aa467ec16f7bd66a5ca80cb6de395a8b8d5457be46a4952e5308a1ffa4ecc47322617131be2d2b51b1436ecccf1ad467ad2f93c23416facbb06d8e0b5f68d0819f18b35bd60fc28cf1acb785fea94a9c839dc475626f8f8821de4ebf2a9d5b668a76a278260106033ff982dd0b851e28f1e53318efdef44485aa0594a8571c83a1cf0dea3000d2d9acb1483d6723c545ed5be8d4a4412c9e3e9798625bef9c5041c951022bbac37930ef9b0a4782c574ed462a0d621c07d3694e39e8d539462e3c68cfeae41ea32725518e28ea57df7b7608872ee3" + }, + { /* i=7105 cDividendBits=1453 cDivisorBits=732 */ + "04d19f169c0c4e72db8648a9371435238842ebc823a1a120c3dcd4280d655bb9c2fef3e55c03ccd0bc3207628993f62263f8c25013e096af9ac8d963b38e6662bf4e957b92247571017b3511779c3ab7f799923270018f64acd288b0b0ad57d2605a2d3776bd2659fc766773bbd5807539417647b19b0cc7f3f77b02cc4cb1f73425cc4d14d7bdbe06e0c2f53c68949ddaf38d40df632637d2bfcf4154dd036e458bfeec2155eee0924542aec7c7990a3261f59a1287", + "0cbfddbbe2131649e9c7bf796a4a9413f3b91a6cf6a5669a1ad79fecc4bbb305ce6c3d0a2efef480aaefb880379fc3a7550b916a75560fadd38eae5f9cd304cf703802ca4cf5a3b0cc890d1e754c02e43f973d92dd226f3e5ecc69d1", + "60c232fdf03ea9987613b505d53138b4549d672091f33b644abe942d86962494892a6c4ec9953ab9f4d87913c556b51b3a3956f7001aa40c495311947943fed05fa780be3bd21600bd583f7af92ae34de7a75c4f749be26fb0ba", + "0106e947eceaec428ff20d05e191e853103aab060919c4bb9622eb7dd1841de8d59ef96c1aeae7907f1d92c791f03a4cf5442bd5e9c1a7f424bb702191d43f69f972584721122513e82cbc288d91c0390c4cd7bd2c99284d28b680ad" + }, + { /* i=7106 cDividendBits=290 cDivisorBits=17 */ + "02891bff2dca63fa264c345c5a6883919aa43e74c04d3069399f46da6dcc5912eed28dfcf1", + "e1f2", + "02df73c91303e2c374a84ecca4ed58f9bc5fc4c0032c967bfbeccdefcaa94456d9007a", + "4f9d" + }, + { /* i=7107 cDividendBits=2071 cDivisorBits=1607 */ + "6c446a09b25811ebf6d881859bd03f7e0a4346c698e2cf1b7fc9c0d8f582b282de79911f35c9345c6ee9ffd89fb6762caed78eaad2853c69c826cdbe500164a757efb22d2c16da3f35a805ab6796e3530d3e9f33843c99a7d15bb61bad23dd39d5e6ef8689ed51d4fe5ac7b8b8875988378ae4fa758b8432dea99c546294c987513cd9900823b98f55d06fbda574e96e1490c3807d48f4d3014e6e9fa37424f56b798caf6f15857a992cfa15a083a515319f365bc7a6f6ce082b99fca5808d8e7205ffcf325de8917dd38aacfe7df3e9fa316025d3203caee673e0363fdbea7938ca586b7cf053653a49790d85ed4988645bd622443211d81342beb0bfa6e92700d476", + "52b5bd1e01e18a87ba2e5ad8a9219f3c3e3ae238ec7cfe40adeffe7a37228815789f47832ce043f1c310db467632c0b6921cac02bcecec0ff63a60b95c5b34f21309abf393c38be873b6c741cdc04205f42f563cbe2487e35ff8d525392f77b25e556f79306e44a79757d81b4650ae5b27f4fa63c53871a4a32701ccba81a9f0ee696dfcc9d123f3b561211515df022e9ceefcdda4bef9de652fbfdd805753a57d8f53e0bb9e3ed5508245b169e461a825faa039a230c0fafac13bb874683fea329739cd80ab6f9e9e", + "014f1a97fac895b5fbf35a3771a0ad1fb4192d066325a30832022760c13504090bc6aa869844f818c4e45cd69a7e5c7f1d1768da591157d2de21e8", + "32a283e749097b369d7ddffa131d73ab38f254a2bf201b1d4cf2a8aacbc798ea96ff0678895a9ac1d78753ef48f3be66f2141907c5c70a2178bb441e5cf37911c1cbd1cd65bc712949c6d4ef773181c65ce81dd2e3fc9deabc7be085d0fac017d246dec6ff86cabf74edaa0c7812e93d7c87dfadb87802796f72bd1cd8dc5a7b82a6b7a0734e419521d1f5e5c8725d3acd114bf2c45bcdd49883c5f047fe3b0a4f6ced86ea1238b7c315ac7c779cef6daf9ffc295443a81aaae976d67a43884586114433993d62b746" + }, + { /* i=7108 cDividendBits=847 cDivisorBits=197 */ + "4992ebff96bb89ffd20bb24b83cc8c1f51d679f2b2b67eabe2c2fa511416d635243d50f8707b9d98afb01966509b006aaf39f55c795b49f0fb42635ac7030ff863b3120293e6c639c0a2411be26bcb96181e5d9c4d0d40a5c2646bb164bcf3a5ebadd283e97f521c63be", + "08948384ea4decbff3755b9adbe1fa8b4b1af14cdeecf2b954", + "08932db9864de412ea987be8667e127a0d9535cbc64d62d0687982ead47bcfc987e901dfc7ae21319559b867c0d3ea61ec6d6a589e54a8d5af7fed1d6280f7084639ba6d877a439214e3c3f3393235260a73", + "4a85c5e37f4284447a03a9b0e9fb1bce8190594b7f5ddb02" + }, + { /* i=7109 cDividendBits=3284 cDivisorBits=1662 */ + "0fd81866cf6f8f8a688226e8f70bd317ee1e766c71dafdf0e57901b4cea717a845df3a516add7a2977f56292a4749a6d6ecd8bf2a5e5a03c78b86faaeff1b619e4423d25bbef9abdecc2cf47d8f3c6daa9bfad7222ea6d2e30d77e8619b3b6e6e50db4182c5198cbad6acde3faf73f75af087c36c8895abea49d025a1e805729a2cb6797869b7999b3c3cc2ad44719cb0147ee8e7cc776a5e608748961219d5663607091ce1bd90a1483b4e37b3ffbd47192a41d21a1a2755cc5764bf78e6713ba1caf9f676fea08a8bf6b91421b475a3c8c7634777477e13dadac3e02d409cf17180e048ed76d0ea75e07c3b6ffdf9eaec2603f762d1f5d766545801eb84fe695923df4bfb65c4a759977c7125594b081cfd7503f2e1e263003e83ae8878ac0add94e21f26ab0b05b4f53e844cf1ad58ba254116c69ad3127496f012f6542048662008775c174017c3fb7047cbda685c78bb75721e906dbe90d62a290a8d3d2c19836b27fe050b87d6de6f88e64ab3d1e930c954bc72648c3167ef1fd1a97f0a68b50cad5f373f0e2e925ef44ac4dcb7992632b68ef3ead6f6dff", + "323d6c2a9627297eaf49470674746c2d081d932c5bbe12939f68a38d60043e9cfd02c17ceeaa8ed398bd258f3d54422d17103c48d4b9f6642d44307143f59b2bf0979375a86e2345d3ab38dc41b4f29632d854840d06004433e860590f52b6ce98676dfde0d92e9e74c71ee85b052b017e692f3da87233bc1411bd883ae5c8fcaf0a0934f43a32fa2d8f7b8b7a9fac7f6c8b572e1e8c4140a6871341d4a156aaf8c63bb08e46beac4ec36107316969d254a68d91a9e0d8ab6b90f94028a9d72a60eadd79ecac5fd0890f0706f9a609b1", + "50bc079ad7b38b1a802acf274aefa3a00e676c73085f58700455d7ed86073d1faa4a83bb8f51e3939ebd8fe5bf0e386baecca6983a0dd9a724fbb6d83c223a43610b6158ad179b25e365e8c010b9db18b48ee7102c37098ee9e617f087ba58d5cc1816eb54ce3ce48b31281404efb944fe50e839de75daca9db5a2f4e7dbc48cc37b23dc85f64df9874985de7604b0ec1562ed3469b2836c4ee35aa9802be0171ea80094ccc6202a79c38d801f30833901d7fc42570c24d4eba6669462092c1dc17e2ed1b8875d23577093", + "015c733f479626ecf6cf78955c011d023809d572b124ae3bb9c29da6b4692820b2a9ab44db3c093c6671df7fc3fee74a7280a6c9cc7013f92762ac17aff5d0518484fbd5822a916fc006d162b9c2cbd4225f60141d0236b3e58a8c49ee6f318953e6afd48100d3eda81be8c717ff3fbafe4bdbc9b55947109d7923db60d2b563f5c3fa153d978ca1603d3333b180e9fa85b782dff714a76c385eedf4274f4e4a2f3824f763baa0cf77827ce90c411f7f3d6f5618442bdf715dc86de1effaa560b373feac01ed9b5ed48e71f730b36d5c" + }, + { /* i=7110 cDividendBits=3703 cDivisorBits=188 */ + "7c377e3b1969806d1be5bd435d50d033f07202933d3b7b5d4aaf72a9faf89c809aac3218da6000b9919c9ab846cb95d884041e42b0c5740bdd046e02929f82da0cb62bcf125f573177885dab8425368d74c4dbe5bc3d9a341171c52114d05860d46cdfa7d1e5e8ce5364fd730364e42808cfdb3724e3fc155259e93bb9712ed8dae94d2865befa67b5f7190545f2bd2fe352b6f2abdf6d361e1c0b6ede810be36e3d73ae75830d3040cffab60329055e68fe1aeed65412f6fad3e11b8fff02999987aa7414702d3538c02f3cb0564ac7b1225ba1acc123bc48c405b149cd752e9f3f80044f91d462ac4c959d31f129b020e2e938533fec47c6891cd5f64c3091dec01b6c79125826fd84391ac26b12b5fa9f8b66ba3568bda411e0eb8b6229c35e1e5062b9d5a29b159f017bad90a08d4f7199a9f4031df1bf652821e17ee3fda1d474e387e6139267c00cbd9d21a88f62b561a00a922abcc712541ed248a66618d14f1cdd90c3a1ebe19694c0b7337f5bbc197f21f5026009f536e9d813c3c21983217c47c4d48eb3b630a447aa0d06f3778ffb36abe61e325b43040012e881afb1dc113ca1e9a585e8d60b4e5f9df46d8378ab155b3a5ad802a7688cb92236955ae8db55592fb33428abe0226666", + "01fc116b6d40aad2d8d1ffca27614e282a13edbf712d5f03", + "3e96cb910df2cd2b4ad728dbbc0aa74ac187242dd675d01d11cd8d5d68499b31365737a6f9f43583e57f8c50a7f65589e7a3fa891b8af018ade56c191f190f113cf34cc6263177a82b0b6ec6a27a9188f49dcee6ca9feaa356fb1f660ad218cd4ba7664a9e929147c1843ed6d41e09e94a7e052704f1650c70febf7a66131a7477dfb989d68e857e371c48b37913d34ae5fe0fc08c04a88bbb81b2506d6aadfa08647eae311f80776d7882806a9bae27173257d9636c1e85bfbfa6dcad0de96b5797e505aa84dc4b92951e14aa50ae9d33f0ca3460b343932b37380a4d24c86c607f05641e1064fc3a9a8aefd9bb83564d32fe369dd3df65123bb451e8b24720f3f8680d5357d5b9d7d8a680ecbe0abd8dee9e94d8a117cfc752bf912548dea72188ed14159f586cc51be80fcc2e4ee5c468d88146a602c85bf1f3361fb7f4b488bb1f6d4cb6f1d407828245c062df58f092e60b1d3a8dfb1030e11f0f9c07cc763eae8896652ef0b9d6402be47d2edcc15fb2a09965faf237dc0730d2808d10bae57d033563fc48121f9f83c7e794d7f8ac2a579c99301a5a81b9ccd5ac849ba8f29f67cc27bb078a2549e09ee5512bcc975bf2f561524b", + "39d77e5372948198f404733d79f3ad23ecff6050459a85" + }, + { /* i=7111 cDividendBits=359 cDivisorBits=330 */ + "7438cf96995893aa0a9b902876c2d41d363f340a4c6463155d672787f220247ffa686a9b13964a76be916c3252", + "03201664a92fef9ccd89046530aeb6453989bdd808cc63ce5f11616c2c3445ede3234864c7f6c031ab9f", + "252fdbcb", + "107c96d78dec9a8770858594b8055c80bbe29a1b47bfe8c192a9d88233a68773c3973b58bd2f07163d" + }, + { /* i=7112 cDividendBits=320 cDivisorBits=250 */ + "f54fc649f20b6bcfead75f10f58944447958b6acd75e31a328705fb0509df69b18e9c76bdbf4efbe", + "038cd52fd1f28a0d2e8bb35b351e54e359b4b888fe6e9eb7120e73e775d75b47", + "4519708dcd940e80ea", + "034dbce5b4433c7bc74be588faf36b53a7a4dadf6d7785eb5e2cf5876d9600d8" + }, + { /* i=7113 cDividendBits=1625 cDivisorBits=204 */ + "cf8b6dc52d65f5cba565747f885aab32e25d9090eee953fc8c6103559d8bc139a029bdcecaf00b83ee716d26aad865bc70685f193b4980c561b30afacb27e608b23ceabd8be3950ed97f9141ba4d504c8d374df56563f762f3a7053935dee91b6d1748f41e354c6169b0be15bbe80932aa38206d27cd8b3ecac38c1c0172cf670d9e17baa005be43d4a3edd9caf58354870b898c8753e14f9c281dceb0034e31c6f6158c985fbf85659e08c6b2b7373588effed23d263d784cdef631e8bb4ab722304323f42acc5ba86ecd", + "0a516bb32b5823ebd4cc6b845a7bf0186c76b6a3730f50f20672", + "141d5e10c3018d6f51198e1c0882ab09e89d2333fa6e8024ed0d84d7f7eae183813869f4d59116f765327664b12f7e3db41592cc3c4c19e6efc6a3777ff4dde204f1984e6fb36eef3440b9868da22e5e83e5e5197462e8b9e94a68afd883f06df36a0fe54895af687f358daf6ffd1c85e472f1a8dff7ac0a74e3a2088df59e7b5d6cddddda099989904cf1f528c71637fef4ca286d4f0ad409a08f59b429cb6ad95a091bccc11e76337afc258c44b719b1e0", + "09c372364511919a17f68012acf09036dce920bbede8124bf90d" + }, + { /* i=7114 cDividendBits=1650 cDivisorBits=1555 */ + "037eab0c3159eca66156fcf627e52b8959daffe933b0db2744521e317731b54c8242617b1680173f47f11070a97747bcba1e43c211693861c6d5987e383a4a6350b5b1d1a383d64b763edb56877d0ee43989ee95267f335074bb581bb3d4b23d58e36c4099122862467f7e340dcc4549b0bb3e2c7f79856ec429e63e10ddbcdbc3a385bb654d706d3fbfa6bba6d9912819b512249d85e60f8fd8afad82f2800e4d56d6517e2ca03020f24bf238e9f5fe1cc1100401459a884746fe98099f383a2fff63f410e79a6b21535e588c4129", + "02041bd092ff607859f2f2ffc391cb108a130cd7b3b6f96f78642206f34996c4c0758059939dd9b4295f48c253e84e62ca8562947542250150ecdfcffa0e50f73b444709170fa1ecf1ccc36ad87d08ccc54f4a2b92c7f6620e6864ad0f26e4d11a9e3db50acd61bd6e09696b559897903840fa3e51467db5d25b42ad63e2a669ae530b109e73aeff107738b6a97d0c40e8bb7d52e1573e7ff89fa465e628480c413367b57d5ced92942414680f68af062955ef3a67329b591af0be29e20d1e79ce85fa", + "01bbc5dea45b5cdc49c224edd2", + "7c2efe4b45d6ce77d508a5184356435ec260efe537d926dee319c3b4dcf709a55c57b7f7c2d51d65c8c04e2f08e7dece5077e4f2f8b488b870608b0baff36da6c1fe2223d2854001f0ecbe6e5caf3d3011fe3bfade7639792dbdb00c9ba11c4a4ccbb386f2e49b4960a6de24cab7f087b9a11ce2d0bea8fb445b1d29ac1456cbc335a1e3688955855593334c932edbda37c4507fb9c2c9b2d3a7cab2cc5beef8a8b82b2ee55370bf4588ac56172d5f692b1d92164b325bc16ebc9e16aabdeff1e815" + }, + { /* i=7115 cDividendBits=1650 cDivisorBits=268 */ + "6ee771d02b7899cb878cfd11b83f1ac5f6c7151337800b06e51840905c52a10408621e321eafed8c0b342968f38d49dab3ed5c0657ba0d6b64e44975fc1d344cb9edba6972dd08e02cd8f1ee139599cf71dfac58bbe7c6e724404ad7ed2d2807f9b11b72207d1a8b7ecc2c3f668e99c64b4bc0b64275b090951504472505eb6ee29e6923ee3c0c2e600b1f49ca1244ba05c24b318288e67eb1fb243b16bb78e86152cfb03d379fbeb8d4d9f898797efb0ca7af8f2ad7283dd15ecda217e17041a36175b4d58fe38c49f9e2e1ebe4", + "0be81960ced759d9dc30a3cda836e343bbfa154fcd6968d3b02b5c74edc0563184c3", + "09508176beccb6d9909ca2183fc2ec3c1a84e05d05a7207f1b5ea34bb400edffb87e074f876beda4d6536b044952b707321fa1f134cab98e437d9dcc0e54ce9151a9eee23541b2f034659180037f6fc77f5beaac95e41bc3c2addbe5e4f3d6b4ce06f98bcc1fcbd8bfe0ea6dd177d67d882e4dcd09d190e2c5963843bd4abebfd422b46e849a866993f87bf50147d360a1dfee52b52bd8fec20d1df472bb279934ab7e2680fb62aa32351334c4", + "01c42897a422333975b2b874b2afc49ccff5fe37acd6ce300b4127211ef69c87aa98" + }, + { /* i=7116 cDividendBits=2792 cDivisorBits=298 */ + "244172e92247f85f9ff443414711ce4166f921853af639b276d17edb1042601fe2ff96df530cfa071aabf66940c6ed2fa7b187fdcd027071fe53ddd22ddfc0f81a3f5ba1d4939adcfedc466a05e8d07d344116f2de495431e11bae9ab85e5dbb453bcc7c11cf5fb52e565fb2f25abd99e6da88519078f4e2792c2e8a86d1f8535d5171355a65e0ebc838a6afd615a31398bcf7aa8bb7eb022375382a74492e345ff0c1e20fbb0b6a2032e740c7925224571921b9bafb7a32e14b7a46f7a9d56f25997985a2e2de99d839022d49ebb81c8e7875f134b665b583cc00a0a176d3d4f1c160dd97cbbaf0304f006f8c15b82e87aa367f4b0ee9e0f58909567ec1019d3c74e49d3964ea211b4b75a4c98d41e543e011cca3530bb3d3156349a5f75093fbbacdb76b10001c426ca45d39d89cb3e0bd357f74e29d8534fbe15c0cc4bb8b233d6cd9d871c17a29c6a02e1e981b1c6b1c8490f7de593ac522f84308", + "12ab89ac3bd85035839b2abeedc878aa1a0dfbe2cc21f2f7dc8d3965b774fe24cfabf33b72", + "01f1213df8b111b35bf48be6936e5f036d9b51c66f1c4c98cc0a29c3d7915a39ae021b443ea07c14a1a174b70d70152b33b8b80324b44a33a54475e03b936077bb75083fabf5f1e5cd6073674bf623d3585769c73f714ad25faebdcaa00dee1da388deece5fa61c203d98904f40b22ca0bd3f427dbecc14005924ee72735ec353671b8b1f8898e2b9050da980417d2a6e977afe904a9b691a22c48de8e012e703ffdec16f5a7da1ba2e1f91fe0f9d31758446239b0852fd49b68f1300749c41b4c5571cd00d552636819287f65e2c530721478336dc1cc3095cadb3580f1061f9af16721afb9279e0b9d67d13bbe2cc76c081a37c34ed4d5e5598638b6949921a3bae91dbb98518da655c20c5379320d0104044fe44a5623f4dd815a66e6a93e9fffd526e40856e655a157aea38cefee7e06bab2d3d8f0ba17", + "071f77a0df97452f600390aceb4b060a83cff312ac8af4580b375c6836435b58080c0d17ca" + }, + { /* i=7117 cDividendBits=948 cDivisorBits=23 */ + "0ae193bbecee95607394b7e5541044c71a1d98475c0a35ac4a6aab39cc25e92716fe9778d0794068d748981eda28429c2a062f70eaabeae7ae166158e1d530203e2af6068623867827278a49fe680f7235d4cc23d73404ef22bed067e1223e30f4e95c20b653957c4bcd6cc3d3f41ff9c47ea6da04d753", + "021014", + "0546620db44be0b3d422fabee758563e3cba9818f5608108d43b31befcb75a9556f253a7e4896799930c2c341277ab472ae44889554e2eee8d4f320459ef97f48b2e967d767767574fad3e6d25c27a4de4b9a985234c3f810de5afbd29de8825f92f7681acb37039f40315965f214e3de4aeed2e4c", + "7963" + }, + { /* i=7118 cDividendBits=369 cDivisorBits=37 */ + "01beeef62cd7180dbd740e9b8269d89e19ce76509996b4e19d8ef5a8ca120272a7656512f65f9af3f1596ad8e1a30e", + "1bc3fa6dcc", + "1018c10a0325ed07e66eaaf4ade7e1305c6a02a2e50580bc5113e8c208607851a0e3c56de9cce79a7190", + "01f0d4d44e" + }, + { /* i=7119 cDividendBits=3793 cDivisorBits=1706 */ + "eca962dee5f2b9b4d8fce8f4624252788c0866b57d44d71f91ecafa0311c2850d2037e7fca57de67f5e888835d500ca1a6609f308ea6a6d31c985c16a39a8463aaf94b9262397dc39c1360c44a96c2bfe249c42d5a86496cbf24ab2c787ad59a8c4dd94ff32115c332d2912b52cdd92befb8750d206a3854fb9fb47b48d61846c55c31cd71ccdc8b8d6948f483038323042eb217e5564b229be94245b0c4aeeff7b3af4de003fc90732b81eb8578d434ae6043bc75a7c8809dc3721b53ed117e8fb057a74ed8ef88a32b64b9a1b7ddfe4ad408ee74d646d6d2e01bf05991d50cf083ccf9b31b30b4f0354b9d5bdbcbebb830c2858e5b7f565678e0658c9e5fc5a1819dbc3e8736cace1a747d470397b05984a6591eea7e9e6354db360c95e9474e8455b18902dbeab5062ede6b62a06b005416dfeb374be2e64c6be39686610e0705141f1a688ec72e2cfd181761ab646f941d0252accf0f526a881ec39a1be16ec7b7799a1d86684e486de3e2abc0cb06dfbb4419fba4d1f2edf160f51c51fb204f961d56c98dce22148e27b0d45b8e67f7be8375f004d6e256beb15d9596a8e5cd33045caf3e93432271d6001c61209188dc11cc8d10a31a7c2a63c2447d62cb5cc8b8279fdc509c4ea3fed78708c0e60b790c64bc607e3641", + "0171ebb390ac87655c2a2231ecf6d37c6ea38edc807a9816de5aab454a1df97cd2db309a593c47e5b7e4110cc2bc8c6914051b0f6248a4034fcc1ad546116b6a7a572329543b6ca7fda0f4322a72760702763632270eb13fedd2a7461b083716df721f6933858f559ca46ca82d1a9774a06abe5fed395b27d31c394b4992c55cd905f3f9839c60d7e0a176973057e4bf1d339a5786330cdb03e33dd9b5d2cd0130c4b0e6ddefb6d3d7d6d9e26664cde94478a6dced2bc0f533aaae3ec3d423d071e4ab665359cb0fc4a30e87d3d8ae8099261317feed", + "a3c785c883a0ca1dc1c277810090b2aa828b4b0da2042393c5cd1cb721aeda1d07f425af057a0879eeb2417e1e034d9937036c1a183aae2d6b0437302a13202d42e89feb1a4002b55a61416a3a4d101301c1f6e121223c32c1e62da441c560628015a9568e58daff3a7782bad203fe0f21a89d0a21e032efb041678fb3122c4065d7335f90e85db865fa7710f1f5321a8927e80209f5613e2a8416d894356b5bfbca2a516c6740acc1a0b000be3bf4344578732430c94a033ba40c5eac07f13c252e3254f90c51d9dd721e38c40ac1cb811e98f4df5d2b2f5fb3cbe5e894458a8ea0015ce9aa7248137ac8febe988251680d78909946de90d85b53bd4de7c451f4257c9c18", + "81a9494b7f47634afb191d4c1c68ca8eec2f8e8595a32a2be3df3c74a88aee39c6f9c15edc09dbc8ccdbeed3fa9579975a8359c71a9329cab1f62e87b6450efc37cfb091f8648d57ce084ae8d7e9bf83011731cbdd877ac1d2238f2ad409e2d82de3cbb6c789ac5f3e82d781ed73ed50fa9ccda9197b2014b08b2087ba5d3523c607db3b55e69b2a41ffc7ebce38d19cdd3aca9612da038c2f24203fc14f75cbb08e5a8e3ec612a7760fa2aa98f91460604ab617a604c2fa61f9d9a969ad71765347a155c38ab7f4abfe13f2f33d7b272c3b19e409" + }, + { /* i=7120 cDividendBits=972 cDivisorBits=480 */ + "0324b0cff515242f739050df2ba8f02920bb4773e6dacbc88f9af5a44f11578749c6616e717e4a5abde50811761fb9a5c05b39752cb635e25d922aa1f32a9fd0bd592588b66c202610c5cf27f4f0dfa8e668d0240cf3f0e6c78cd24df593591ab221d74a107d0b9c1d220f0236e853e9eaa82245e02523f95f37", + "99d8277d79a6523d5f019da31108ea26a724003f22c53b5aebb24bfcca17ca99074cd81be29ce7fae792fefc8c37925a51556b1f2c2ae5c3d58e591d", + "053b055d7d9ef09d5f083f52f916ca1ad02cd1fd364accb37a0d2e130287000f03805fc6c52f2dcf8ea93992819ac2a2a9e9637159f19800899689279386", + "91c8f9da83228cbb605d6c0c7b1349bc312f1006fb4aef7a7570680d874fc5e08a32c2ce9c1c1d9a7f8150d1e3f6c5f8829f563d0caab5a485e01309" + }, + { /* i=7121 cDividendBits=2598 cDivisorBits=988 */ + "1bbae7e204b12d791f8dfee6b93a2b7678ce8dbc57adcd0effa302df79146a4985fc3de3d018eab37911ad56e55878d43e58adced57344b5906ca57061fa6d1d0a33142b39c7f7816c9992662f52f07dec35939e8caf85fb50076179f34f70ab812a89efcb57004a7e5f4e45eeb46b2d88f774495fafd625b7f6a9ef808a1ef6d633602cd4b7d786b8d0339e425100e65f125a36a2ee09b832864b5074776a0407710ce9d1f227e9ee4ac2d19e864ddfa6ae8a19a6412922ac91753b0bac01d29909c8e49ae46921ea2e938d1977f435b1a95d7f559d2bec5bdfb1677981c6c17abd7e5b687d0efe8a1fb70d7840c16eb7ebb549a400ac64b1dc51c84f03e5a7b23648159a74e7ae2ca29311099b639504bfc5062de17e4e47c3182733f07c60f079dae3b57e78098543bd960be2785896b4e0af3bb30df3c29ad29ed5c185de23c568f0cf", + "011636ad9c9a9d9f20dd03b7d42f18610c33fb97a4c7694743a1e351fdebac4d8daa708414b4bbb3cab4852aa8aea6cc2cbf595832da50e0e443d51f951d0591c34585d9636617e14637cbfe46975f37994a613539c5239ef326491db8e85f25e1daf3b4bb57e12631c01ebea9393e3379995e98b631478b27c759d6", + "19841a70dc2f1f7995721fa25a05731e91b9d1a21eff07e2cd9c0b90a33dc87fe062d8e356ed05e1e89c830b15b8a867a617feeaa365ac29fe2723f4f2f1b2c2dac787f1b17cd42bc95614c9bc7555cd34bb6c7fde6489b407fd7f0dbae04036f9ac87606de4b978d3439be91032417c5b538b0f8abb253b9ff59b04e5831cdc89f541c46546e3638e9b791b51dec81702462dd5ccf4c0b3462e2232883db9df3395453d4bb3ad689aa51eceb5481c4eb68237599ebd2f3af55a034239c780ffe3aa9887b26f9762f00c", + "5f0d54cecdcbfdae1212008a5613049254ed9658cda58e15cf47a9e828fa488b3f1551714c16b8d4640a2072bc3ea301fea410ebf2591376f03a3db6a9797a4009484f56f7c3f5f03e89418e704f56625b8c62a808034a16f7bc3be18fe337184d355628ee4e7d13c5139980d78bf48cb4ac3c40a77e3b65ec1ac7" + }, + { /* i=7122 cDividendBits=2258 cDivisorBits=1050 */ + "01c3dc10e7dee6a1ae283e9102654e1a972122c35b5b35fed9011a26ca65f8ea605eb0fccb07155db35b011d658fae121446dd3e5354c10da82293899faa32386e9dbb83e1e3e2f0c8d94d94d173dc1b41608cbdec42f7e5d62da80b96040351f932fa9e04c6bae9d1e42321c747fb1fc34b61baa312864217b38c4b18069fb35414ca0714381c691ab7fac5eb0b353f8566043b47d2f54bf02cf9991d23e010d311e235eea55ff7f4eb7cacae55d1d65499242e13c9e21423935ad9476a72a5e57965ace56f28bbb78bb19dc89c9298314ded5a75a1bf986a941849a26454d8c3fbfea20d80f155c59e777531f5154ab48db9954c9b46ca1dc1d00af36c750416470debdc085558712c3a6b3a36bdcbfbfe1395b6b4283eeaf603", + "01d9c975e7d20e2a1c56de84d26c53c4bcf1afe157d54b84d3f54269ee85f271c94fa962d9ea4047df1a79fac6b36cdc832fa0bd65ce1a577d0196d3129929c785abfdda395c0618278b313fbd09ed8daa360d21645feed14bfda7a0d7c8fa76c30788540cd20e30654bab73ed5606db5664c88de905a804be89a268321dd692a3f50166", + "f426ee1498df7af31fd4392ad15aabb4034651419ad3477187d2456b77b3933cc1955eb8a75e5b7b35049fe06ab8945efafc8209cc3bd4b46cd9911b164813826b0a63cec2c13dc89795e01bd01221f38539bcdb2f1ff294a5eed2383cf462119b7faa45db239674c47e58e1b6e20bce07573659d9aa566abaae6514bda7ee16d007dc1c96f5d8e6efc84517c226fc126f335f4d522448", + "014e128b5cf889b3142a72a9f3f8bd322ddcfc5104351039b2e132c79fc587d682b45c5b8fa374dbd0f3ecd0d8c7a0245ca0e94469e544a3ef7647ea64bf8c8577921b937e82a316ed8345b5b690b845925ecfc335abc3f8352e5ab46c665a06105671c1c7f6712b47040f7ea0d645d00e8e7fd0e09cb2079d5ff5cf066faf1b8d243953" + }, + { /* i=7123 cDividendBits=3296 cDivisorBits=616 */ + "08710e4ce0ed17ae646eb755e16d418cc572fae3ffe539a5d6cd0c871d879e9e27251a8ef20d4a96311b1bef01d6a1cd0b19197ead040c53b4bd3b1eee599028d4a14ce95091c5fb40ba4b347001b84367cdd8af50ddfce1d464c8adfc0f803102822215341ede08d839aef25672d916a78e515bcf809f917364ec865851495d400fed43787c79b93aed8bdae3c51ee96a8f9e21d0d32e7f8b9de5357141abea49927337716076b116b7cd10db01097fd1b8e500a4aa45b229cbb3c94be26e61f92fb0a63666a0fa52e91e9a882a6f7476098bc89251fdb00fc30cfa38ad8a397d78ef08de792294c0339c70c2aabcde3bd497f6447e0979c3dff113fad3f7426ffe0f047b418d84491f4a8ba6af19829870686b71536817aa6ec908fcaafae0b438ae385aafae30309fb8cfa9e4add0ed8078a490765cf22c148656d3b84f6c2d207da982f950cdb00dbced320460fc8c42f622af739be21e68dfe4f3529febd8f2ebdbca40ff0350b79364e48b23aff6fbdbbca8e5771a755da84257ae6447cbde500450c6a47db5499a6e0b33638e95df60ebae41619e958807be", + "13e8c94f154f3d237da815f63c1a78c5c2fea2cf24aed3dc95e7d02187c0d43f8ebe3cf7065afdc3e39d49e52f1daa25b53cbd2b0994979b0ff0b1a0ccdc5d0bcc7301bb7e7df7e107efed06fe", + "6c8b804ace6762fd47db116120ebbaf8d3e7598bd859455842f9f3f1386454094b7cbd29eba2b4120631404b7cc6a128baca4c93cfe189621f30d6811b6df1a3778dcd631e6bbc86e1e1ef3efbdaf36349f69d5ec6aed8637076a45fc181808454f5a9db634239045b74ea72fa71693fe0995a95b67581cab11bd4a43b7c611d96c2350c8e422b588cb1ffc2335e54654eac1c803ec6e990240b8e7223466d37382b5f64fce579d4d7cd20927d3f62071ce4a9eece7dcd48c837111aad2fa2ed9e95cebc667b3f26cb5e30845dd54d84dc8ec7734950a1bdf6e49db9741b56f02500d2d4e2375eb6c9c0accb635f033d0b1db9a409994214e5d55f80d32ad64dae58b60177f2402b18616939da6954b83653cde1d8f49e295553eff41634d0dabc1870dc0a7e3da3ff7a761b5462baa0ce79283bcbaf3d49ad26478999a0cd845743a0298854d26d9b88aabed6c869", + "081814a0d49496acfca8df0f4c2e04c5c2fced1bd0616845bf05992ad2142d3ecb9b20dfbfd15fb9cfacbb40c1d624b11f5f5eedc8b035cdc276aac2d4df7769677faa75d1ba2bd1eba385b990" + }, + { /* i=7124 cDividendBits=1896 cDivisorBits=843 */ + "c5869fa512e63268138157e6fe29588867bf89655f2e3770f8bd6dc0010c64240819fe04e43404471d59b211b93b802ecd82f635e0651b7bacfb5f6dfabc3ff60f109337b688814fa3e74ba3b4c917b49f983208a810cad0159926c8cc63dd3824d1f0670f9bd235c230b4ff0513dce0f003e7f7d556d64a8d91d29496f1fbe1a991442780acb1bc1abc326e3d729d5ac040baa2788d3fda4e5e4a5635c2106fba73dd68fd6dcc1f96d6e3a55b5dd741c8a5d0d46ec2668d98259a713394305591e00554f1f90f09d362337528c53581a8195ff838c47188f3adecee247209e0f9c63db1d2e2b9845ef1306155", + "02e87b652ff0152acdb506ea1b3c20bd4bd631e2d86170386c79545846ea1c65d1bd7e5f68f9090ddfbf8b303bceec9460976ff35e8d2ac0dff1ac5cdb0dd5d8346d10a56025fd6d10bcf2f8382b462788b61c0b2cede6109682da90bc65d0e38ab30a2f6e0189c3324b", + "43ec00d3e77a45d3e00e4ac9890116c38b86cd8a1237d97403193a68444a6dc5ba24e191751760a204117634772a4bd7ffe591b1ded04ef4ac613dda403a161b23001a86405defd7c507001e5e8c5bb742ad9c6a37abdf7089c918014fd30c650c522127d67f15e63e38fada7eec542342678997eaa3d6d6a72c1dbf711a7dc16d4956f9", + "34646508d334542661db60b940804e7424d07c63a4cc2b8a048155a337845fd734da9a88bf23ae51d3de8d23bb157a95d43fbdd67e641dd28c602cf2cda9bcf061875888f65fbc9a59ef2989913ca90281c50cf7b002919546aa1905b23846af7ca33511fa190c4462" + }, + { /* i=7125 cDividendBits=1277 cDivisorBits=15 */ + "12df5c3e501f7a3c0005447609690431f43b70266fdf8ae7802e17ea477ad692890ea98f9ff6e8db8b981e915737f238a6dd9ac03f963f6b169588f22e9ffb1855f2273ddb35deef888135358afb4dc11f17e4fbd6b72c346324c8f0588620aa74791593e627fe65ad930a169f5af7b3bc9c3ca2d6a2fcb876acbe37dae777b17064ecfd872d5da0fae5ad241e12b8d56cf750bbad5e3337cfc4c3bef02c5cf0", + "2fd3", + "6505f6e3cb8c09de961e296702c2ace1d4f4a628c58c1829525db768197c5cfa055de5afff79b153d1bff1a45b3fed1c6f4635d3c9ae65ba81f75cf2c6efbbeca2e431e356402bd1418937168a5e017cb56982d475a9e5b41441d811be183a43b756ff4ed00daef24b8c5ebc22454a0956ad306c8925d751aad41d5abf3b1b1bc174f8463d763cde4a8421f5cc289528c60b5937406d77c9f6c6185bd706", + "08fe" + }, + { /* i=7126 cDividendBits=3298 cDivisorBits=2107 */ + "80c80fd7dba62b2b3258e07a1b363b84f9fcbd51271a007c6721ac333b8aca17b511767fc26174d91ee8712f1d14a29500bb0f844df3ccf507065ad66de88266092190ddab6510e67a34a3a3648d8303da11bfe28a9a57fe11665e79616cf10c7c7f7317b4b77e5f89513a4c5da466353161473a7aeaf42887582daf85314f4b45697f0a1305a8793807f5a414d5723c5122a04c97ba068f0c11ca005d061cdf4a4d5fd57c2f8b77268b5f5e269af04041767b0f41dc71dd61e9b604f748a2494300609b686c7d985ebafd42148f1c255334330b78039c4a8e849719ddad3bcaebd06176eeb08489eccef34be65fb01f230c7b2c7b3e1997b8c71423d23cc87c1ce9ea2deef2de02c47111e18c86cc1d2af87bd35aeb56c4aa54a977258afbf7989e064910c776dcbec6b8bcf8f321dfab4cb92302e39a86fe418f61ee6254314ee7a490fbce6d5189d4c27045bf070c167bf1be0c0bd36e045e76127166424794e7878b558bc789d611897e1d956f2a6adb8cc93776c575af2c1d0b5740f8a6e8b185ddf583c8d1ffb2d85b37bbad4ebb4e4f76680fb63680a53412", + "d155065e62d09aaa6e767df4148ef51f7a3a65f7c498f85cb6bf406f7f36934280704143432971651b6e78a7a583cbe1a2a3a722d7642e250017a6393639016117b09ffbd64858101054739fe0a03800e8963d0bb354904ee1dbeb4f0c895ad347eb54770c63f51077c0e9bb1651fb9f94e17305d57a5762efc103a949c592ce867a4e7c43c110eb6d1a3d6b1b06e8810f38c16ccf0084b1482fdb1948f30b1dddf8881382a619ba252641df64e6381faded4e71b665c8988520925a8ba87a25d00f1c7f6f9c19ca1444a35a7d51eec099aa0f92ad898c60149afd5d7baf66ee4ece7f813241b295facf64c2f258cbe50efa9a8b3a09e1140987ed80928bec7115f2c0d37e8f3f", + "9d7ddca4d87b9502ee26294421151754b9342ecaa05435d7ce953d075328a5a9c0b83f880f5c6181898b8657e36ac0df44e980c1a3de3df0bfffedf5016ff7a2482f68b739be37c03d6cf2e622eaac924aefaeab939e88ac3e93c1824bd8f5905277c5e0c16bc9466f0a2c10e74523ee51e0ad80dafd2f0299540d1ffe141d023b45357d3b2b4d7ed812f7de580e32c3e50f4e2ea4", + "4690cac417cb98f4ea8fc453ba049da05374eaef7e19c399351e4c724c6810953288141cd5e5e505f6a30d32fef4f11cbedf8f588823d5023489ac1052f51d615bd003ac0693f15ff2019ed532446fbd8715dbcc0f4bdc5102c2d774c647078a9c9ee516c9a99fd3b20ee80a4cc17ee985cc512325777f223d000b395baa009780814199fd2e6b5dffd3b428a603449405ca7f8cac514f4c98578e5c46a8f24f489a077a48e656a47bb24a53d5ca5a20381a994e38a813f2d6e8a3b2bbcc8bd346982e7219c67919894960d4a9a9547eef3372419ecbd3aaaf83157c8923354c435e7b0908ee847a952d190bd18919d23b40b1c0089d01590e1cf89e554ff6bd9b915eefa21db6" + }, + { /* i=7127 cDividendBits=2516 cDivisorBits=1337 */ + "05c118899124a6c9aaee995cdf1facabbad633c0dc83dd8898ed5f0bf899b14b447c87f0154f3caf92d59f5ea4021c3b2187ad36874ad644f3b273637b52ccee7b9074f1c74b80527e44e6ab5ef775bd3b07433ffc0e92d3e2dc06e77ca3c4b36d1b23542c5f7391dce0cb68b174fffafc52934f455ba923f72240a22dd3f4a0b8525c1dfa7727b304198b5e5d72021dbeb1f6de45a3c026c6f63486378e4099bbb2f3c7e8ced9bbfdead29893e68a23c393266a83f4d8066f9b67bd7cfee95e71aaa06ffe9c713f6239260a078072b2e2720913552345a216b1293a418d1657e16230f25d95ad53b2865094e563ced1f6558ec64edd8b7860a499b39aead49282f3d6db80e232790dfa533d6ff2ee8e5b845db524e583758e9716f1a4e97d0c96aae3c42e28fba1872e341caf8bfd27e5de7ff8147fc6de489454", + "017bf0e8ec6140ca91716ae195f803b834516c9ac797610111a0d1667e01b23c40b82759fbe8c2bdbef57f5cb6e5a7dda775d238e1381bb06e0422ac89e9c0671797c2e9c74fb20c8567c2e4235462ed76f8c002ad58b69fbc6cdde09faf786d6e06c761ff146793e49ae19e5cf2e6bfa2e491ca1da15d26714a242ed34754c4ad35f3416decdbb4e1c0a74bfa97f59b79fd9996e0ed51cc644769d4544cea3268f00170c8a80f0b", + "03e08e2d62cb27c54773c79daef1d0e8ba5e64a0dbc839ead821ad88a924b394c5cd699e65dcff4a175c72dbdc827e83a306cb21a619719fb640f40b99a29c23894ffedeb326397dc9c724f4ca0672be7592f9c8261092808a6d64cb9f4d0f95c7e68cb1c1f1dbeece89bb2a1ca69cee5d8785e8f8e1405cd6571e407c74e485125bf73eaa6ba80237e986e3c1a1a4647b1ad9e3", + "38eff24cd916c9f6c4ee79e37ebccee08be22bbb0b1f356ba45388832f1726ac9af06a5e8d49660b1bec3e33cf9842047cf8d8b1766d64343be45d35bb8db636b27649ba6eb9ff7299fa13a4955791c60f9d0e11781800cb0fec98192eeeee97e859701113b42eddd8a0a1d802ba6a808af66efab73da7f3dfa5caa6cba83e94137120e405103bcde29d72e0181ca3e0ef1aab447ba724ba941ba892d9b16457f99216ac64ea93" + }, + { /* i=7128 cDividendBits=1399 cDivisorBits=1064 */ + "475116feba36552bd370b8c0a65324832a2ce9ffe90f3e0521b9e91b23e9b90ddb66ce530f78ef7512b56e08b9d34de2a492e244dcbaa7465d8ff0917d2e760ce85afd82c84fdf8245df8083ca6474d6a29a0c4347ead825ac49408958cf239b7f76cfe47ed78baa870434bdc535564166ace0cb463db645a026bc6584c0c2155afb81db730a434e43921466c806b53522b1a32ab4a5ea9c884da3d3611fd2f6f9d845f4c2294f1e982dd404856ebf", + "db0dcce8d453b5beb660c0f9c1dca96311c749e20c6f1028e9d98df47ac75bd0a4d856767346117f958de8472c98fabcfada4a8b1dd069c599a94370b5ed5c23fd7fc137543680d8406ef69da27178a93165fa29e6bf58cd2aa719a45d6199d6f518a8053f3164e2f54781ddf31bcb86c103db17930a46a925f7f4942906acbb3cde2c24da", + "53585e723809dea61915f7dc1f4db91566c023d3ae390dd5e88ba2089c4b820a5fb8de3ad668165dca45", + "baa2d4219b54f2111e8d27582568fe3b3e2c8777a746978b0ff5316635212fdcb5f10a3850f62be8ed8ad9266e69513df6d32ca8053ef5a1fc4b6e46ec57691eef09d1a0265ae70718a30841acbcb0768f94d77a86bb19efdce2f81e03301f1b932db73349082ef7a08eecc769f49a9556a9fc20342f07828d4462a30c37f5f9592e597bfd" + }, + { /* i=7129 cDividendBits=3514 cDivisorBits=477 */ + "026a02371c1f847e4c99cb67887b622a41c17a317b95fe1eb45766c06eaeed92fcbf84adf0ce756154e48a2af8fd07dcc4d3e977bb0e451dcd653c3b4e43a26f2420ea67def6fc97fafb1e17dc9c80f8226f1638d134c5259291658c96ecfbe233672e068fe4ebd9c17dc638b4ddfbff50db4b000b845369f2336f5f578ce17d7fa9c41264bcc4cde6f2eef8cd6aaf615c933a9ef71d22f21c7fd66e200c404ff97139010bb65b3af029b9c607e1d661455358f997ad83b351973aba1cec535f1b18f06efe1ef7153070c2c4fdd63de52936160313414e370c9117803997a97597778edd3f2fd490d81356705a4a58dfe154e498bfeaaa18b108aa3bd03ef7fc787a9df5e3e0785b6cd3c33658f7710a7751d3dafb3b152a425a1940eb237051056901aaa32ec8769a9af99d58e2ce484ee1d7d953151eb42794cd46f2dd164f39b327feb778e8b86518f1e3f4d5ea057e2e3239d4be9bf04ed3a30948456139323a061f06fdd6de9b1a19a391e9df9d2f98f30cd45a621a971b19629759d9fd96603c7a8c5afc6bda3e563f0d8a993e13ecbbad90a31a57b3afaf4b31e5ba3077dd16dbc910f9681bb9eda1a128ae753939fe5e920f9876", + "09f2f76bdf08493f233a4d124370b0123c7d2b7ab42e359fe527ebfb41740d5f891e5b9a6114195cb54029069a713195e7336055db7f05a289429bea", + "3e1dfb601e86742bd9ecea3ea477c1236b5db8a890379ef46730a83527943aab5141b78b09b12fa20c672246ca32dd6954199a762f44356b524f6bdc3c7090e80d4bb1a7bf7d70b033f7d2144fafb7e21f23267faaf53e07afa87c4d1e34345f402a5cbf0ae71962b098816ecf38db68d0c8bc6483f3d0551897338ca02e9b69d9714f9c54cbb2893427a39a7c0e59d7d2779a8efdf75851520c7a5156596dadecd2eac9b7d4231508477cc24cc3e64f8ea828329440750ea28734a96ce652ba61633073c62a2216cdb8b438e5353c04f100ba8eb7608518e39ef6463037077c8cf8b92e50e0a9b145e77db9095284b471f3a2269b00f02720e1aa0ecbef9a15c6c209313113d968d172fef6dcd003c30a5cea44a1338b558de08e6b27ffc3b2e601efd1c08a2fb62bae9be2227552a155d067597feb2031419c281f70b167350661a1cf728d96a8cbc37e138d416f4d7ece4549c38e5efcd4ba7ec1181c5ea9afd777f56bbb77119bf1c0f51f7b29fbb5df1b0ebefc4b269fd95777", + "0150a75042dab1598b499a2421aa5d41cf78504d279fb0c4b95b35dbf40c05398b885b5d773cfb354b36d3651170cbabf2228f5c4254b822a1c298b0" + }, + { /* i=7130 cDividendBits=2392 cDivisorBits=1975 */ + "2b3a2be1d1dfb988defa497d715d8f8a7a9b1ffb5d6a17dd1e722977850d214a17c9e4372309261fd426c5dd3be480d73410ded93c054b4f3e61ea50def5efce2b6bc539636f56384284d2806319ebf9af1b501d61257d0b7c9aaadc658c089adafeddb951c00da7ad00a8b3d549941879ea2e9dedd39985b2db07d640e71020bb831838e42e7a8c40d4db085bfdca89dd913626aa55b752c95dfdcff93c620afc5922ee50c4448a89bba4c54264f390d60867252118586f703d5754e3f9111e533ff506cf5aefeda32b27bfd7ff00072cc0abbe2f67e122c22d99ff7605f154b7530f0c1e66d4f929394b6824592a20e173e7a2c79194a8d290196da32c21cddb9d382879a809fadbc2524fe20eb6131ad196989618c9ac70303e8d91d7c028f3ff47841af992d9749c67", + "7da613606f3c752e791ab2a98adc237a8b4d840854843914c8c0451a9b2765cae14860b6f8c8ae19144b722dd9099b2e1cdd6b9f7cf0de46195bbfa198120387ac11d1515668ed8ce6db1889f8e4ae9f1cb33e874c83fc809fb2f35f26cde26d57c1e989dc98153b5a5d5c1aac55db769d4952ff5d9e3313e4b5cf5a6ca536b365ad3280503cd60168e60964516c041e9d8eb1513fd50c361b532647c0907827ca6b1f7a83246bc5bf321c62f139a2ba85cefb54f122920eb39c18f67b0d9fac3b663931be0829d5c5e72346109bf77a64b10cbe7ec571a6ba7988bc1d57241a299fd7063a1bf4ad903080a6ba2fa905b1ee3d5e44e9ce", + "581281776fd6f858ce3caecd9d927a798d4d21f4bd0a07ca6bbff0bb299a3d69f80c991bd5be306a63347e081d472f93ba29825e", + "0b20f3c2b671ec10dbd368fda73f1a49e77bc548f1f72ba06a389a2a37e7060c6cd4c593e58076d446b2c05988f8c03b79cdb8b6ca8a4d42e4626072e860a5bc0bb91e0f789f67b111e5d393d716315f95d95bb1af0fc646be87d82522eef2e7bd702b4124e72c1adfda71838c7cd3cb6ad3a114cebe2673b09d025a3de070128804e0bc7a68da17569e6cebd1e76f0c5792f8448703e37947e8b2e74b256e2511dac65576e8a0eca5710be8aadb0675d7d506c56aa86a51e39796cf09cde14f6b53e4cfe148a1ab208e9057c2189f8f5020d50ac06aa2768c5c46cdc0a17c13b32f81528c6e8f5110b4eef87ec2265cd716f81f6e26c3" + }, + { /* i=7131 cDividendBits=1743 cDivisorBits=1032 */ + "4be83592daf776fdcddd0b87d0d9b3f4cf47bc125542e5273136d599fba684f2ca173526f630e0a712d55a4d30b91fe1872034972c5d424c3d3261f109485e5fbf5812b031fa8ac8d305d2b014979f3cf13ae68943a0b73a18df9732314d54a51ef2a095641987498d65a5cbcad5e5a1106f4eaf373ca3ccb3a2efaebfdf373171f4c42362c88fd366d639ad5db117f26e8d9ae49f36dda00fe663e98cd0cc2a52627f7052f6773ac01ff3eb7c4d0e9902223f481d2997a2b25a0c4e6c2cda3f8cbe9315f8eef0ce0f603c515fbd7079664203d1e63142061c77", + "4f6c9997465a57d4dc4c6fc1ded5b555184c6ee11bd3af70108768f2c2b46055709b8033536b004b39d50cb859f6dbef63880c6b2ac83c77ba2c2f304fa3acc6d69c8a260273d8e9017a82228a91154e1ec5dd422b5a34312e392b6e89395dbfa15fd34759fe19d29dc47d83b571182069bae80534b4b0981e911e9e22ca0fa1f3", + "f4a9dcc13a9924d47a264b5a8bbcee400ab207e8a7d4ab0ed7d57253ceb74e8640e4c5a34aeb71d3a7233017494247387bca1651623c147605a62217bd5d1bd40326573ed7f5bb93ba0f907e62935e8029661193c0a1436660", + "453ec6cea3057aa5aac963b67018b09b5cb774a67019cdf73a109912c16f35a374df1d93717a3b985c47aabe37602350c685f55eabe7458d56b92db4db9c27afe21f8071e703ce5e5089ae68f38601ca3339a482c0ee676b55e0f3717fb0ba8082fa40f7b0f872ad8b5be9b3a34869768704011a70521546e8084b06720c098f57" + }, + { /* i=7132 cDividendBits=2209 cDivisorBits=61 */ + "3cfd20404892c46bea5da10251f818a155922f30bc21f8761c1e92af3ec86fca4685e413ac32a3cda31039edd67d99447a59fa6fb817c9d5cd6dcb7d2454f55bd3eb2ded1e11b0237a440a6c568a9eb9c0629b120c9da6c4f2a35f950ec10240684d6e1f92d38800d8e68c0a636f10a7e6f729eede8a1b3f9f8ee168cd3302ea1508480d4620b5b586b0292b3fd77cd39412533a75855450e70a3119531ce91635339d743a44089c6ececa0ad9e8a70c540ebe7fa34abd04da01c63c2ee1cd74419cc7f747a3b7a4668302a15814128d11b4b458832973b55b430517286acfe454f7436b8b01bb5e44c8c9f9d664c59db5e816f576cf7c98e55b66104dbbea0429aa36ed0b3b3e50dfaabb052ff01dad8bcfa96e", + "1fb92973096ba116", + "01ec2a82d4cb6f60a25ee41fb29327be2ba823b2e382f955d3cebbbab5ade0cb6a975c4bceae5e8d4ac494c9b41122bf79baaa347424c677cd0c0493957484d8fc4d860076ad38a2a32c406afcc55391b1b3164f024180670004eaea15b61da85e3a1f23422562ce66a8f41e8d16e4bee93acb19da3b518c1c1a247d30024657dfab085ba3f2dd2800a595f23293b9dce96b2c3620f73145ec7fe789f22cf23715c945ec91ee63e4abde7feb5e164e6c23e2ae761f7007c31dc14f9dd20be3e383e090c1056c258b92802f0a0cf98a9fded086b4d10e06fc4ac24bceb314a36f2d41ac35f6796148f9dd5ca9de2598f6ad05a5dfeeceeea5ef86a4318cf354f5462f8b1095800b10a3b88eefc9", + "17bca61280b6a528" + }, + { /* i=7133 cDividendBits=1401 cDivisorBits=162 */ + "6d998db516e4e5b0a382e8f634501b5424a457752c8a8070de72d967666e16f484c79d319828bd85d8ae1f0e17223016bac7eb24d448659e1f2d49e8e59b18e3f4821552e49ea832be975161129b011fa83dd4a004760904b7600887d9628b2b39786d0345bdee2e022dfd30748cdb24666c85efc85cb90b36566f467587bfe5c0af2fa00f79041c9d2fb84ec612d909f5b653b1b040d2908e5ba04d7916f29d32a42f912dc56f2c64ad9cb1ff4bc8", + "03ff0c83278bf4b2e47b5682b921181de16b1e3324", + "1b6ce8dd849204b7b26ca62348de07ed562d2d7f069173df7d931f06f0dfd0e5f996cd5593857eea6514c9d288a4afe1eb38a3953f71f5e40ebe3d3afcbdf2bc07eead3f763c17b0968ffbbff1e3b7e3a3ae55ea4cf006d574a44f2e74c69ef10b51f06cbb77c1feca66b6d1c5d519ed840259554297033b4403ca025e54f2fef7b5b3224ab7d6edcd3a5d5389e59a87e12d22551909fc9c7839e4", + "016141ae25721ad968b610f84c8147a73da8d6bbb8" + }, + { /* i=7134 cDividendBits=2881 cDivisorBits=2477 */ + "2e4889ab916761d8524f3654d124ea3ee9eba3a90bdb54dae6d1b86c8e05372a94348facdf635f04d93aadf259a5af7b9586170fbf8e53763f221507e345ef7bb53c53e1ade29f19b37ce1788bfdffa871d0fa708a3c22c9ea7ace67401fea19131d5fee77b6cc22287cf9d256ac6a1a959220dcb6873b7a4ee2a1d63ab97b9c98a44e71a4f39dfa5d94bbde85348edf1e81e6ade49e41d26ca5face965d2737095f245f81444aaa0ba1f70459a012c44cd344185c504c067ea35a0305a37fa9cbae61ea1efafea423fd6ac1a02b9bd7e7e5e5e7a360808b25e68b255b2426c6701bf577e08d438cf3935085f5fdd961d314db14b129bcc2536084265e3e63a4be87da2361de69b82ad78ccb3f0d74cbc7cc06c63027371dab3c80aa60ce34b586dc5e2d90c805b7873792349f344330b174a306fe80cac228ec837aa0b6ce5d4ff1686a047a33877a07bf618e87eb9e1409a5af5b477338ce575f6062fa8c0fb44fc8e9156b50f6", + "074afd5194aa629bf93e87be042a4815e6c66240ab646999c1083d10fab5377c1131c3f934c912841f82eadbbffd8d17dbead98c9066bd7736bdb93d13fba89d3fbde0aaa4b02ae15fbcb675c12f7f6356b32c8339ee7952a1171a11182fa1b95d834386054c1bbbee8e90d1b2eb42714c075cdd19fedb4dfeb55877c37b91a205be7f11ce46d18ff53c48cd580293332cf274ae17ea573c7b23736e7cf1b0090b1264b22e34815a617891d7ce04ca4395614601c29fa2bdd5fc959ea82dc5bc62badf65c17513f5c95024088a0a342412e97f9738ae49f20625b2c8f936eee3b9455d69049248879fab37a91b59cf3d7207614113d7beb82f7372527651f2f8b204c8f23627eb4af3c2fbdefbec22b37c551d74aacda286b32ceff87f69b7187ce70699e559b81f91da73361f062a516f2cc7393845", + "0658a94c596f7cd8055821c6860a5bb4ec5791bfaa17c17d6e5f8b1260d36cf711fe8fa8972ae7fad29e698b35a0f02b96097e", + "0490b9a14ef236d6b993f29f5e43c68f4b962a740deb7aa443b8de1e5edce5f450af60fe8e423490f788ffe00846aa621cf6e9c206a08b124289a5bf7419cbc1b3cd2b0e40d4545ef0f768b7808f0f71107245c0bd1b515a6b070d5ab32b1f73076fb9980a3a87a86b142a3d1f934764829ee967cd2a9d42b1f63abef84d99d67cbf093f8a2691bdbe3042c1828bf96ea42508ca24bb6c75e29d28ec51d2a7d3e0fe96b78190a6ce80a0986f64f4baa6f325676d555891f8d64020766fcc2ba0f85cfa138bfb1c2a3b475300e109749a9348bae25a71cc72f689e19d4493109c152785b095b434a18167d5542074e4f80a98dd6ea62d72b0d48716317e229d99d7c8d8b06618d9d5f3b485df85ce94582449a353a15194d865d0bc04eb91308efc5a157554692413c1f5187564f4b386453374d93200" + }, + { /* i=7135 cDividendBits=3735 cDivisorBits=1463 */ + "7aec0d7640f9cdce4cd6360cb90eb600afa9c27181436e2b2355d625e6703124b4faafd12b4dc42187ffcd8e32c2c2f1423c359a0a3bf147e7f0f1c20aef99ee6f8754a3bdcef57aab39df3dc6f89db28587d1aa1de883710804521f15dd91ac4a5dfb5ac76e4831cc0a36a673b5e4b5d4a31b7f43d43912dd90b376a87593aed3aee07bdb89e96578b187278bb9bfa3beb33a388e10b85dc1f9d7bd19e21555e07ddb0b5cc4eec7baca8249d7aab05c0eda52c35b03a6f7c796dd65d9a173a5d1eb36003f893d422e55d59360bd56c6f5ee2645b84e1db941dd2c9058a5cd55da5d7a1bcea680b970ae7961ac6ed32f0c978aa74123cdc474163e942985e6ccbca1fa4322434466900fb38a68a4c5c1c9b272f3eb8d2d1d24d6b1cc2f46a81bd179b7b7b0e5b2e08eabe4f64cf6eda2292c5deb938c9785adf06f94ddaa36217ad8cf062c968b59cbb719def28379c1816161a2ad26e5ae726feb81e41547194e2caabed7b77bed4a8950deffe0270e07c4d7a07234f006b387cf90966eb3cb65900695032bbdcc2fb41e5be8de4020b5bab44ff8791042ed47e985a44ee8b90d7dba211787c33b6d5437e5808a87d7a515bf337c14f624244a4f28d9cfd1c6d3a202fc746871d00cf18c759fdc38c75b2e45", + "286234d8af1c4d3b486b1697b579aeb61d8125d70036e2a4fe7236d5f3625456885023bf05a4bd1970807f633e150690d31a736b8b01b0407d8cb331ca8a6a923a335b32b2f12705dd86b9e9b8a159300b2ef817f32c027f079e923d89809af840754148300eb316febcac67316b912968baa357a131bbd73a49113ebd93b247543c97d37ad72476594defe024beaf3ec0145d0163ad946d0b1034c78570e3f842335fa9235e1702d7196eb354cc104e0fef35eb1a8b3a", + "030b3a67f9cc667e50187a2adee11fbc1be9093e6a4cb01ac7f564814ef0d5999f9b7bb1486fc0ee9d6f9f573b3cc59b9d74e8a0a20daac43824b49168d1639da71c5866620d9db4c28b75cbfb17e28ae7be48afe05519eee2331cbe6beb0302a631a8056d01d2e3505e046ad05b3ac5cf0c5905ec6b64379dedff5a72ce6403101d02d3d910da58fea856dd44d3a1cf62d7b22067f730e3841fbe813ae0148c6e6719772c57979500a3b71decc92883aeb2890f0e67af3101d26ac00a60e6ac72013d349f5dbb855d6e8343a5ddb617978464e1308869eadbcd916fcf4966a1d0288f8ae31da9f228b99bda005968497dc298b5e6ebf1c39a2189bffe30328e6bfdb83b1a6a9e8c55afece3c43a9c415bad704cc2f49d9d6ea62c4b2d", + "022892018fd44cf2f6cb00edcb0faa75ac8fb732a53338a4d236c1c8680d211b6ba64c5c160a80c37486e59c3c8297ba40ff06e2481deeca7a9a8a920cca1f69f3615cef6cc5c88f94e6194d7d7b96588cd5bb57e129d166f90a61359afbd7bafdd191663e577189bb1edea9987b4b61443c321b50aeb81457abedda0d952cc77a915120aea0fe341eaeb1b35cf518de9d1768ce32ab199e1fa1d0756c70ef3216e944a8e9557b4b34a7ed3d6a7bad06aa001a22eeb713" + }, + { /* i=7136 cDividendBits=3909 cDivisorBits=1774 */ + "0dead0935ab74f3a26cefff7e336509064cbadfa9dc0ca47b83f63aa23cba323c04e25b043208f948878a61c9c02952a39f5d93bca3256c6dd116dd483b3f78d3b0b2f531a5d6d0d13c77cd9c5e6ded0bf70459a206f112ac12583ad68934c8e5f5b5b44456c5476c6819af007b5add1f84973d9bd9afc661dd91dae7a868554a595e67a3ea67e8da4ed416fc685c72b7324bc079af71c4a18a4e878ca1142a78683d54824148121d1945710cb45fa8bea9aba235510328ce3217e4c3102141587fa91d217f859a7e1a7419e7e5f6e32515d22e8174ddccf3ab3b1a4407b7aa27166e606c0394c0494750c7050c0fe78f04d6aaa0cd892b4c5373ac04cc3f19c34e1c7b3189adbf4e4ea333800ca86b9b34af179443a9e0c97db3ac07dceff37e077005837d610228168bd1b0f6ef8c502b6775598f4bb603f90b472ed07615e3d87920f71b24cdb16413739013bd18c6bea1e8e86aaec47d28caa9b50e9bbe35e89568a12c5cf5dea8612d063b0c76361b4250f7f6086936e80bf979d5428686be9d5bbd13808ad4dafcb8252c66a2f9bd2dddae8758cfaa26e622cdfdccddfe43a195fea7e5d3fdc859dd7ce7b63cae77d856a83a2ad19343dc1b35e55f8e672f1c9ceffba329fa9b94f0eecd67912b8879cfd56bb6044f1bbfb8afecd12dd6c2c17806a89f381eb", + "1153ccec0412de026d344ec69124c44c50525fdb441eac3561e16b3fdbd928ea86d9554bd62ce40413648cce77b3d2cc30442b8d42d75d1de08f45de8b0b1efc7c16371054d89d0af08c340b64ab633b579ca1dcf17632e85cb1dfd885b7b229b9aa95cdab597b7995aec5a32a86be5f8213e27d87d0e0020d9b24f43c215ea4dd0b87a3856bcc5737ee70459b21c203be3142695a15f881231c430e5b8688a7b18c44844eaae70f21de62c2bcb8b1a23cdcf5abeffedcfcca00833ec38ea12c54ad4c2edbf05b60e3eef296247a4b149129fed09b92dbb0a3f973f214f4", + "cd9e37832a8a6cb8cdd3bcd9bfc3ea13cd07fb376a58b24e02501ca4c7b4ffe10b67bd86dfe08634d8193c506b92315b58809bcea8205edc21e142a07578358574ef7d0fcdf7c2d8ecf49d9796544d8119bbf16fc1192ada81ca30204e5d747ec36a512df70d73a7c0c91698d76ce3dac4e5ccf364d9c7b3d664cfe923ed629c69d0b10addbf14d95802908e1d53222471cab25f1c3eec5336370bb17136722f9b81f8d599e21be29a7452a6eab31edfe8d379cae363a92f64baeb5ce83e8e692ccff486ac961e49081108d310eff68fd4e5d35093a8dfd285484bd658f8c4236dcd3b9957ea4a4bf880c97b4925b660ec5f2d9df8a2bff87321efec4ced9817fe50866b3fe9d7d5dec6f7", + "104b546ae561c6660d8fa5c3d1b0969bb5eb436deca45ac1e45daefc2bf62a55995a197146acec21a9f0cb2c07177de5b4df84137d251c57a8ba41d79453ba2997a45253bff737242a545c0ca44432f74952612e1a2b0531fdb665c8dd328f9ee942e76e3b8672a25347e2547099f6f200f6789f70e38ada4103e4f327a0e034f7de8905994bf45db341eadd6122540ed0e0a59682b04f52b8d7ed72f6cc68b2546884b79be4305883f275539993e10b3fd59630e8571837095716d30143b676a4b87a6bde521fa10128225727c29b7a56ff8d88011dfc9db6c53f94927f" + }, + { /* i=7137 cDividendBits=892 cDivisorBits=463 */ + "03cc2240efd0375974bb06e1bf9b69f395105c3c675a9ae2b03cf2be12277ddca95ac1b2510a1c7a845909bc4ef61ae71dbe7e016332a616c16712f80e7a2591622dc017dbe4ceb786995c3428a2885cc4a6acea70fff374177755fe3ec58f49c676042b929d69e5cc1f4afef9c6b6bd", + "5b04100a14c096d4036f5482df6ba2c949a6852d097aff19477cbc9e154d9d235eaa1f12af42956802e7417ff86e3a6f5e69d2c0027c462613a0", + "0aae5130d105d58f2f8d57746caf34eccc546d382a2bd35650bf8b319cdfde66601def4bd21dfc11bd51c9d23ad5804e0615516b8e75", + "3fdf16d14bc2ccd6e5970bdc573a2480a7f64fa1522cb48ac2e8a8d932ebe3147e121832bda6129b52487c243b07bf4e9e36fc847f09f79cfe9d" + }, + { /* i=7138 cDividendBits=3555 cDivisorBits=1374 */ + "05524e09e24c80c05e3f45591df5383d4d555f5958fa5625c276f5eb1089dd66a3d1331b9d2f8dd92bc52204105b56b1726c7498e37a0935c6562fb062f99b4abcf986c97c16f75563ea64550072ab3862822cccf2245f87d00204990447e533809132537c940a5432e9ae6e26b862e8b10a5d33dd46115ddc4d128ce70e59672a8dab6c197a4a7e31ce9c1dd2a13bb76f9de81f8849b76f02d89509b45fd81920583b1e03239472f0b8bf86610bbaee69faf55c42f39a56898785129ba6ce031aefc3e72ad4bf5eaf3889e639a34dcc0cd9c2eb050dce60f3d69fe4b32ccf4965a391a8f8121a56f357865a266f33b28c0a7ce46b4fa092b1bc74c36b82a80ead5f681986e7833966bdd854466ea1a0224ef79b69fdc38a440f045cb0e600194e679e2ba1a251577e8c6195153db2d6595940ff3f6a9b434265e16b04db84f283c4c9104b293cb291cb7eca3248693acc3b38ec0392e3079e8f47629d65fd7d977b928add92c5b842a8cacd9a6d65e1f41c2a3c4ec220521da157903aa197dbbd4732e0adacc42d493f6aadd10adb0ffec2348b4338f6e2e474c2ba1ff4c8912f0b171b303b199222d01736498d1bd98acb3a29758f865bc5bbdbba09", + "3cf65958b1a60903b4f295eccbd0049ee0d82583ce1601842c87a48d93e8c42f132d8a1da50fb17546b9cbc1d955c4cfc248d281645b9398e21b74826003eea3f26497d1d6494eda84c841ac1fb6f4ae1950a8e570281a680d1960a85788ecb341686d01d439ba24336063f240c88c3252d49c1dd2f63060e01dd7d760d4e6393d7a85df4301d49d33de09499bfef7b1b51983eb5ec19f5be8763a0809470fccb2919ddb49e7c8007ef67b66", + "1658bfd0ea00edcc126c12c2720923d37b06a3d719ee434b4b5c55b763a904feb3153edf51ab4ad2dc99eb0fcdebf52a6fe05705f592a5917728f8fdf165739134a3f3f973b67a86461eb2839e8d876c3a1224751ca60c127845f821593c9a64e5ba1c476c52499476bc9a64f00fac9a6b3d4b29821a8cfd61880f24f77c4f7ad8de4236fb4d3d0299cbf7fb01ea2278cfc7d7b303927660bbc17147141e86414ee563da680a1d3721f5266384e27a747164926e49a659aa52fe1952fc77f8bcb68d6e022077fa943f135e89d7f0f18158f26acf03e37032b1f7d0b86034205a8e8306550357e80bb7361049875da231e31c2b42dca6e38ed1f87590b701ef87ec45ec74b11eba6587ee805ce2bb8b1955", + "31ef476fbedce0c89ce929dc1608d60fd3ae236a78ae3e53dbc37f775a3721397b06e1458981c45d552b5e5f1d266bd2704fcd64cf4f4f82a90431e643983df35e91aabba1bb236b38ae3212bb1d5228fbb9d6c20fe95052dbb73828ebc781e2f48d10b3f688632607ba47f147abc3940190cd7c24b4cf303b1bc8172853ea5eba7072247706983de13062a66f74708d251ebf5ad5b28d62801ce31c25035a5c93db34ab3d145330ff95cb2b" + }, + { /* i=7139 cDividendBits=3205 cDivisorBits=899 */ + "10d7ce45ed1142c4d58d8a3b9abee18ec92e514d21ec8cd894a369ef7931795bfb6ea5d10680f306ca9d2f7bccacbd7a367cf265db23323ededddb8d9a433955ee5df1e9c70e94a3582a2834c96cc7cfa21a68a4cfb9352d73d1e3933b1875035c5c4028d2659fbcbdfca1d9d8b64728aed22d6065dff6ae279fd1d132879c000af4f1bdfe755d9f7389479df6249bf8fc5e512fc313c5a1c3c4ffa2c5e9c64caf4ae23b46648f49036ef59b2dce062ab1bc22af3003488982d2dbd049a8449ca3dccd7dd1f1eeb0dc3c926b9a5797f78a882f34be868034233890bfc159698a2024432a2cddf217854634dbd5d2d1b7f5cc71316ce14253d79699c30652588d4ad9a4ebe5ec0d9fe4750b2ae1ef9dedf211e21223ba932590baa49d2506afb6034645378997904790cf77ba33c4045c029b9e465d5f6ee44a34b6d47095e52df9e4ca5e2b368086f499211ec7ca05d4ca383a1693674d0b6c0fa370dab0a1adc6183b9951040d03b86fe9fc4e4a16be66ec88e43b3f40681782ca98e9f2a572961c05503bbfbf80a8a17e95ef245a8ff9", + "0532ce9019cbde3c832f4c8aadfbcb557da7727770061cca50aa27181444ef26dddff8d122b7d02ec64582a7fe23473fd71ac5aa202b4c0e8c8da4eaf4eddf02a537974fd15d937407e5553af3ebd5ad6fadc7476503aefe96fee8c94594ba882aa8e2b0852e049757cef043a095a16312", + "033d7037f63f5a6c7d5178e0a305642a843dfba24655604a44bef7449d6815ff1b5e0d35ef7b923bcadbf618862c46d890580f901988c165de32f2fadfb92f600f553687174dde1d27bfa1e80a20df63fef9a4607672f9a1a6fb7c8daa0e4eb1f08791f863e318137a276dc5fd5cfda4bd51db7db619e02cba16d0aca9de90210233526a99582b865361f8b873b1907a9500a8ae0fd6dc290a3dc3c02b3fc97ef73773756264ec896fb6452b9389c172a3b62b683f6d1dfcb5f8ac5e8e918c974966879b56dd176ed0af01405ed5ced2e87bd5174f9af5550313e18c10a1972761e1a0ca758ff0fc911d03ca9283c09a8e1f3cf59cc21e6d7a3a81d0ac4cbb5cb2d162fa2ce95f0562092bd03587f398c40dd625796735bdb974206d99e18ab762", + "02c095b15b3ee3ecdc43f07569b58e4e4d336f8ce7cdadf25259d6010c16c0f5b1eae74eefd2fb68d5f67cc2230796d3805e0c7324b39f499025addf2b6ffe70fad03909213535fc3a1101a504655c56d62c8fa32c9e4fd109efb33e4c7631d068b83d5a4cdcd49167623686ab450cc515" + }, + { /* i=7140 cDividendBits=229 cDivisorBits=106 */ + "12e787cb0b76a0114a93de3299d1f5f05a24b21f1aa40b3db2040acf1b", + "020e4740b8c3c45d26a7c98697fd", + "09321d7a8084d6925bfcaa957dac1a39", + "56d2275ed256ee00f8d2a745c6" + }, + { /* i=7141 cDividendBits=2921 cDivisorBits=2514 */ + "a39e2c25f90edc23b5b9df61375f06da6912b586f326b295aec0afd06232d470b3de9f4908041002b9d206562ab6a0899a591890e1f32c9c2863b7ae184edd532e3af3d0a70ab9c4f92363b699459958a5d86fc0691824f542ecca1ba3fbbb90dd60266205397decd5bb49d8aa2a71e2fff1d9dc591b1ab74c92e2259016ddc4629668331ffa1b7395daac6ec5a5a3a27d405b8b44abd20a2a144535f08ce6fe442290622d801b2de5a7acace9a1618f5d77fd771b2693cda0bc35b7a60ecc7cca2805084d104e48209ba06b5169c1508deb21606e8a4ddcbaa05d75a5ed3d4bae99ba68f6d1f25d7c973e5383c1c74c900922e0e2ed140768796fed473e26ff091897ad815b205109a1e5172da00f563a230164dadcee754d0ebead93e3df3c00bb744da0a9db0ef56f7959e2a413090ac215f512f151d7db83ac9f2ad0fc53b82e490faa18b258bc41cf30cfd58ab48ccf047352aed6cedf66f349a3ad56c138ff6634bfc144d2792797133a", + "8e019862de83cd140d5d1ab1d48b39802c807243a33d67760a18c995dd37836cb19d10fd869516805b47ec63bc712dd54e57c57fa48080372e09ebbb000529e60c7d711423cbbd0864b4979591400c2a795c9ebf533a9664c76088141422ab1f5f002c3f7ec89238f696f1ef11f74a4c4f02738aad505d833836bc9a01b05865f448cfd2df727ad611dcb45e8dc105477bca7b5a9ddbe53605d8de150d54545b545bc44759d64f435e415854ff808eb266ac73ff1d91d64e947a85079751f3ef2ea8c4129ad16e10648d8d5974153fca6b448adec04731418f3339db373e3636fed0ec799c620332bf39b37c3a0aa9cd551e0cb90c185d27d46d4744da2d58b41687262bf4ca124763ddfbfc0b950e1395c7215e732919b0044c5572a3d69a9d5d7886254b3352aa15dd96c2704b84921e0c15a0336703db144b", + "0126f5c936b08134e863747c7504e056fd95087b79de68fef5c6e0f261e6725cfa6bf61582433a657cd6a87b2cd630cd24b41714", + "57f4e46e5ee7d9e2ca668263ff345a02f75800e1cd94e9e3c0771b98b7e168ef5ce1a52d02832fdf0b1576f1059f6b4c88c634c358198b4918e9bba4fdb42a000a8de0fa8edf704a6bd700cbb02ee43563c82b5816e049924ed6eed3472a4367b1a551ff43b1caed30683a685bbb40751d5a1271a1d913a0ca58b5fc6e49737a630c875f5c8a01eb65f4d7db5cfac859e7f3bbd2b612601839508ab29a1c7af1b70dc28458958bf56fa45fe0f0f3fe30e77e5c9869bd1e318a736d1c1025877a44cbfc119ec9fc1380f7c732053a64237f5fc66dd12901980414d66f51f35617db41f6a818e44e8accb074f1226b75ca3e8aebec4aeb97a445ad6a9e4fed7bf8f0040842d546fd551c8ebb5dce78383e3ff7dbb8fdcb48e39e493fcc49bed2b4f1c604719c0b61eea6832882db61bdc5b71e0639b8205aeac05e" + }, + { /* i=7142 cDividendBits=1899 cDivisorBits=789 */ + "a3cd4ad465d302eb8059131df3997b3137803895c32bed60cda33d4d30056a88af65835ca2910e1a7bbe959578d31d64cbd7eac5f3c3322cc102c413be71674a8c4587e15c90925a749d17f70f0ec1051a4eb833151cec6b7fee4569c2905ab5f5807a3597eab269fe8545c0f7f68dad6fbcc22c738581e53a4f98cf0e146eae07ddce4a52e2d01d276d3c5740fff3ea1abce4fa951dac94b5bb3bd6438b1b26c159dabb36ea05e8cacb4a64f1ff99305b1625ce8f0f0624c50de59b095f4d391b6b17c45ce860651751c39203ac3c3c899f9482d4c25cd7334d104fbe78c460587ea865b0962f83ded63e4e4a", + "12a02ae58c2b942858f1337f75dbde6e800d5492df2f06b8a0a9bd30dfc84e5fa05a0984df610c68ca9636145c963366c94d095c1099b174c692e9e62a4a8ca1e5af07dd864ab7213ca28ed7b5255644e22d6249af0223c47ca3554078facdae53fbdf", + "08cb5f70c071303e8ee50359aaede66cb43621b68c2b986f4c1c0bbbf5b666ac6361f61c7461780fa18244c0791f3ed3b50fb59c86b372de50a28378c67a5d9f6655cb6329a8c67d59a1a68ddad4c829775ea992471ace7bc67c4741dddaf453e307065e58683d90cba330e2856864a674671fa4ec88bf2299337c0420c8d275e76a31959df9dfc2d2fbed", + "05da34ebfa3f2bed77b6d23698c660a64fe55b57652c4ff66642674c56b96f4fe8afa6f29bac318781ee63ec8da4a7cb763340d8d4a40edf74920974f503cb9514f7e93e29e335fa508921fd1964f6ab412d614c58da0c1ad029bbdf8bb5837f9c7bd7" + }, + { /* i=7143 cDividendBits=662 cDivisorBits=345 */ + "1771f74adca91b133bcd4aeabedd0345dc2a4106bc665914988902f5813442f0419421dfc388a7696cf8ddf1737d7cf9446156681f119b819f5b5dcb69b212ed9334fc34cab7dc5c81e17dd2c6546d764fdf04", + "26f201578492c9cd15edd8b78ff88f5ce3b1ff364c7b3bc380603c58e4df89e102956e972759878b162a8c", + "9a1cd27358e43845b5d0ed9af9bba7705804b2f87520ba490d83a0c67eb2b98d0757fa838ccf096a", + "1f84944fe26f33a2dfe2ea0f787324b0fa9c8860a9054f82f2d18bc334c239c55db79d3a336a95206f550c" + }, + { /* i=7144 cDividendBits=848 cDivisorBits=454 */ + "1b1e505025ab18ae0c4b9b950da3da6a7a9029f397b346505b63a1182d726d00d6ce4a9647c41bccf48bb1af4dc9dd95b2cefad6acb82590639210bff00349446927eac2586f5f378f0fa5835000f697bfd88d78e67fcc64257ce73921015fed8fa2c189495a6ba77d79", + "0d919a795eee5cbf16c97c9b9ab8faab7d30180ee45375ed7fa4528b0f96c38540662b27bb7fca8f0e4e0d5863a56ed761df5d14555c633ecb", + "01ffa3aeb45565f8b35799c6b5a3775c5b3ef84522b3eb0cb979528bc0cb07a8b4d97105d37b8ecd64655f4d37274465fac2", + "034db7399ebafb0ad05134d24677eb3b29c6eec6ea21cb3f0db64764104e817cc298cc2bb749dd431f2060acf2dee6ca1e474186aecb08a9a3" + }, + { /* i=7145 cDividendBits=980 cDivisorBits=539 */ + "06c3eb9c00341b9c33bb05cda830419a129b88dea4df277e5d6715246add940a4ce5faa255422bc8e5582e70b18552849121fb7b98c6be3c9ea3b9c6c9915bd90a3ce93fa224bc7b83ca221d79ba09db21c57aa76b06e710e250ac0a32a5d865e830fd65b2d5de8dcd1cb31bb909f795ff449fde71967e2f8eab55", + "1f2c674e52c4462095343be96cf41f75a2f6fdbbab26dbe060a9cad6af8a593f411ca66a8eb6459fcc70f444918c6efe6bfd0d2ec601070dcda6eb6ac6a56ca4fc04ea", + "378ebb1c36adb36ed737be1707e86647e50a5e910f9dca320ee1164e9949b7f37777f4b4972430eb055be2f1adb64f8a13782a01df3e6907", + "17664fe34b6ec046a3fca376fb579ac18c8f377dd1c1425cb760c104a71e09df89340d2a238044d10ba202a6471ff1f7e4b3f0b50e0dd06a10e00d1ba79a9f47fa8eef" + }, + { /* i=7146 cDividendBits=549 cDivisorBits=161 */ + "0cce44b89716e2771c282c6ac705432c98ae2b84609fdd7839743408577277e623f8b5c0bb5460142f1a9a11039a90df07e957823cb0da501caa221b4c05e8d331608431bc", + "0150cf78448cab68c8931aa46814282f63d6937372", + "09bbb7e4cbf14cfb3a4d1d1d13979d5064825a076eacedd5065e91a5f556ca47ce6e7611247cbe5a4a46e7fee9e877af05", + "76648f0c824545a0ca676184b63f18a369ba0282" + }, + { /* i=7147 cDividendBits=1637 cDivisorBits=1116 */ + "04e0c202d4daebb387d1cd1594f7d4b0f2d3e1ee527d9011855d57180e78dac9ec84c93aa6198f92d2fb160e230b680287ed8bd62a5b694f6bfca1e05a6d22b3ec9cae536ae284b857c1efed5a87ded9aa661fc81667ab41b20bc0af58b9287cbb5e33f2395d1ed410071edacc02e1d996b3f05164316817b88449c292405351072238af8cfedbc05f29f27cd921e4e2b9c95fa7dfc7af2e62552aada8cfa5f78ab7048a25448919fed28a4c7f9eebdd7c0be3e1a6377848d582d313608a06e97671db58c6fcf713e8a6061271", + "02a6d882c36ea1ae65f11dabae1dc616df4ee0d89b3dce70e3c295e1490f688d9114d4f959370f3591e504b30f09619b8fabbc729c9e29c7fab54cbbbd91da6659fc5b13c04b4a7246ca966eda6eaf56da54ee874f13cd4f04fe460f40dbe2e9a89867e6cbee9a57f5adaf56ca3e617f8e21a757e70912967f5e59e1296d354b0d3efa288631625c73e17057", + "01d6eb827bb80583793d5d1fd67fbff72202ba4791438632860f99fb99ec5f4928731996b01507853c88267b79c16b021a0637e14e5a686f2f356a8ae4f097458a58", + "a43a550aab38720be3372ff2e2f3723c61624952cdb8324b53bd10b2caa723b95cd6c42a746f93f056845c902b06fdbc5c9fdcd80c6d617f3f57d78550a28d0da452872158204a5a9d34ba95672472b2796fb43b7114f0cd56a3f5dff9dc055b9b58430f183a4e27fbc0186b07ad3be95c605ffc51cf424d1e3890bf12d8c0168a9d3f31656b12b1858e89" + }, + { /* i=7148 cDividendBits=3587 cDivisorBits=3016 */ + "05813d213c39401b3b63d98c67e7b9f4641e2deb757eb76810e1d33d62fee93d71692f14427704ad130dec71ccac0c92a4b94c4fe3f66895f45a75b77a8e64822696574ba77a980efd2933ec70b334ff58026e4bdf322d54241725439907ada65c161e89ea8ec6b2a21a577b470065631192271e99e248a0727c398d4c50b077f38f777ff2c140b2d3b95a498f0a892476c813295dd44e1c745e2bc106d5239b075889ffef9549083190dfab62ffccbdcf3caa4abd440b9b730ab537460323935695391844c0da70d1bca3fe04129340ef5ec2aa482e3e410000b71d2dedd19e6f5ff915d5010626f6848715fc35a0433fa144d9ff8679f126e0054a9cb1ababea3062704228b9ea8f6d8e15647ff5281e9852034ff1fe71b6dd0e7b6dccd8722b52bad6e8220a3ef26c81c2bf7aefad7d254a1e8dd090289ac1eba10b743e856f07f813902b3e9c6d29e8372f0d8127cc8b124af906c1b7175de012d8d2edd616051f0b9f3756ff12a34dcb081f9a76d23e42cf2c95e86ec82e109b2eb880d7ae29852d40d4678713132fcb689ad8b9bac73e92b87ca65e65bbb8db951924456806f8b425081df9dcb17b599f0b04c3ce020e1aa0dbf42ad594399787a7e2ddf5", + "550bf78ae21e61a2c9a2410b015e010582833a610eafc41567740440836d484b5a6d12e62ea4033a47c8ff0f169fd8ca1ebf01b89b74207d0fac98fea7719527d2529965d371f41c2b0965a1af1c3003e8b42e58f446960f6730f90ed621d68fead960f33e21184b1bcb55c9a2c25cb6ca6c2e11cbd14fa135035aaab01912ba782d411d51466a8c9ae0793f262ac24b059b22f4e24e0dccbd431536ee6e86afe028d159fb91ab04c62931a197a9d62e3078cb441f0127001dd5df4a4612e8894f61f1c2f764d2937504f3f252524d4604935e8459eeb2ddbef1a9b260e1ab24e17f98ea57b7f5e41fec4011392d04cae5c9a72e85fd6fae7cfa0e1824af8bed06f2ee5e4ea2eff492a636773921b041eb7ed93d56eaae65dc6556e7ba3e2a0e9b17a9ac4a12695b0c109c49a4d49641c288b6e12780e3ee4e91fb956531d386deb6c022d3a6a3c0d3bcb4eb49b10e9f2288fdff25b53233bb4ed85b144e0f1fa5867f773173a5b3219995509dcbab4516c83e7d91af9b1be2", + "1091f677f0c843d1e0895e4369061adf9927e2ddd3b7ccc957fd4eb3647ec4ad5a6ed9fbfd1c9676191f3cad1366d2c8ed07266cebebc0d43286a80db239fdc2f50ee85e8d495042", + "26110ca43019298774390d4cb3da2602f8bb43f5038acdfc1619126bcb84d54817d0c419aadc7697d0e8580d3215b0ff41b90007640d5d36208b7e21c2b24ee223385d7e4082e507ee64f7ba63f382e9e0b6f5173d520182a45287f4f018a168e6bf9bcdd8601910e08feec112c38611124a60a2c83fc76c6aa899885cac68a0d505d3fa5cf7c3989603066ae11ff2437cdb7b9b2bfdbff9d7ac955a65cf9eede8bf1d2a7cf1efbf04f5703421af801266d0f687184700833dfa26cd5b519d1ae5f6edea974908109209fbc7696aa63d3d8f68f97a40d9513458b849aaefd928aca3b76fb6ab3aa9bcc497fadd5462e00bccbdcdf706c2cc397b178db8d94974a95e7bf86debc8fa87cf7a8e293e22d79c2ed40527fad941340c855a2d8cfe0281223579230a71efd9b63b45036579b317c139bb9ec58303d51ea7c92428d6559df5259c9fff9be824792e21e009c2bbb813e9faad8b79b0784a81689ff812b6839c4f4d77b962b359115803a1693b0d55840722857bbd0db1" + }, + { /* i=7149 cDividendBits=3342 cDivisorBits=2134 */ + "0716a7cb35537d035cd22359c662b48f6252daf97daf4cfb41b3b3d0ade8ceeb9c97ff69d7e10d3abbf59aeba40d5701bef44be8e6f27e50fc46190741443a678f5b0a018c645f401b58661cf206ad96abd68d65cf81dc20cdabb362d81f6f0c9948b996eb5162e8efe2fdbcfccb58a9cc067743f3d4cd3ba9cf939e73271237979d862587b37aa36dfbb5b6767df55608da1c6f2c9f3be2d0f64ad151eb0165f24a2c72f8aae817b9c5ca4f751c6f8a78a5f5fb50562a0f2abcab2e003a3a7fd490aaad3cec90fd9ba46469f87cf34eba4b42d6cbc5ccdc6789f9b3e49da4fda6224706f35abd896f009d43319f6db449ce6ad60176d6f8b77f4d21812eed4b2abaecd147eeed789433a46d736965d6d7b799b8bcf7464d294c5db0747a490739e5d563a97da688d00ca3e2fd389f7036b735788fe78d7c321321d334f8e65237301d4bf20cb7dc2a643cbcd9aa71545d9ec16ec429de7cc4d4002a2b0773bbe41917f17b6eec4039a7ad09722ce54498c9fb19ef78659d925f25a98d0027f23ebfcee06801f77ff2791cbf1f988b369f772ded4abbe38178d952b61ae20f7b3ccb", + "30b836342d197fdb30dfb5b53c54d565b09978fc105cc6506bf57fecc6a57fe0a6d09b16ed7f9e36cfee3de52ee5747842da31538014f9341ad27af822480525539339a2f217af82b4bf86422d918a32ca2d45f2619cf7c582076ede29969ed361d0e4a3134808666a55c19866d93b6924b1e2b53b193ce2cfeaae45046907f6a4729f8f68323ecdc46bdb81258af3bbbdb241769dacfbb5a02c04def2cd66216f0eccfe48f99cdcf0391509d80c06601a5c6b69d2035605b00f6383154dde863be97b8602bc130ba77fcd18d986f8cba333600cbcc5b70990593f2ee0493d9098af78d05409867047f1a842082b4b578493b1328334c514cb365b386e9bc45fb4b0477f55c9c737b769be", + "253f37d621469b832414c6c888f5a491317e539880c8cd8ba854b0726909a6057cfd15e763d956f8c0ff4cc70eb27dfe530682d4c42e00b2ae8fac8db408a349a73fcf32edbc7c87800d4d9a1471bdfabee1b37e3e8d9a0187001873900a3f2fb4c127dc25f8562c4b8a4d0d35930c003f06dd1f4598f0511243a3616c461d5f455f68686b0c3d9b019276a10d8587b493a452ec722637", + "24422834243baf3ed07d5ea03cb14baee30d532ced40cd09d1eefe8c22647c4a48c69ca0d5369e36a81093da437c274c13726c53ba9ef7226e1700adfa7c9761374cb7a79edc46b21beb1e90f6332ba51b37d256e64a5471d976944090454ea5a65ec14e763b208db7b6168c054afe03ecaa14ece173970b6bc6c3247e3a08ea33edf0f2bfd56a95988135a59c396907fd7159d363072f700909da3504a6f43515323a4e93354517c63bd3cac689da5025e6bfe0db8c088ec791ec06a05f50977328b3fc9ef903a51781afb90191bfd876fc4108bfe692a5d38e15813b5e940c60bbaf3cd6e6b29b05ef5bf167e1ed0a0f164b4a7118de9cc816fe5827985be0ac830010a8b2cb9ec550f9" + }, + { /* i=7150 cDividendBits=2880 cDivisorBits=2768 */ + "d091cb818fc25f5d0eb0539fe5fe3ff669cd8a4768c011e74a208d2d6c2beaf8b918975ce721eacefa039dcbd56d62fb76245f2b42fc67182255c013b609e2c0783f95e107670fbe9bc1618dc4449bd14d4b4d7021f5c5f6abaf5207b5692f1159bb52e649bbfaf69e2538b0d9fc600849f90fb046f1df998325e56cdcd6c18a55703b9c6d95c50c054b9d4a33bf7a7f1ce81a1ae944fc5910aedbe1bb1fb3f152da9989f10f0d4358d9153c06f6f823b55b4864c66bb1dcab229656b0eb117a3621429602745d11d866006b666ec6a81a0627006424296a4243d6701086b81dc6c5b20c149b73bada3ef8da20bccc6d38bd8689ff07c24bd449a79ba84b36e9286ffd8b35e38c090a4a2b6802e8c88e57b715afaf819f7d4c5607315ff19b78fbbfe75c492d2891f1657b96279fd1da20562f2c7aa340cd3177ac70852aaf768b464ae778c29f4d5f50f0417367a6cff8ac05c78259fd067f18d396083f0123f03cefc3794278cc", + "cf584cdb99a36d92ff27710fa8727043179d97fb5d49020cbb7943a1a6441c5885296865ec74380e3a2edc973d4a30299386556260eee01201c1b59dc755b7fb8f1ab53fc2047ac121edf172b30a41251a609a2136848f4d61cee82899ade7bb36ab03f6f0a455ed61e3653ba3ba6aa33385d84c298ffd00f15d22c98c0a224e410c6a0d5cc7eb351dcf3b0aa5f895a4d5788223890a254a890e056fb14c8d664c0b61233e1c30175ac5a86344855088a9a60441bcc74ccccedbefd1ee9614c19e81dfb8ec8fcbd611a59e61f36f462098b34a15c2deab9ee8226edc99e711024779f5641f40ee97b68e48d88658648b6a78943fc55161b7701fd9772ea5a8173c91d50e5aea161e5f5d36a71f0d7652058e4482322d8074d0a72197b4252f2f3c382c926c7d2cfaa5a4ec34c8fb07265d49c84169e91078897ff6fde493beb401f615725768efee0b62d1b0e30cb04971043781998bfbc25a8c", + "0101830f0471ea249f11777eea58c8", + "2b73e55eb5ec5fc6c76a5f33d8df8a3a814ff4dc281ea02640db99a50b9cc6da0ff6b827b5a73d5cf01de27a8d03563c1d879b61b3464f0a7ee9697993325b8c3cea813169080284a78504be26fcb1db249a99cc7fe9b67be82fc5de5596a62e56183b536b70ec67d69674bba5d5c60939d1f9bfdcc1b2e38e33980ce86c0e9d29ec101652f74078ba08e571deef77495de5389c293dd5c54fb496c70ca828f60cdff4ae87c142cd2b3d1387338f335cc27b89ab89a5e981ab5db26bc125395ed69295d71d6acdb75d8dfcf789fa2b984957b46aacdd146d88613724b7fa8b371b545702efca61816dc56f3b56548855f91b1d900ca48c82c87f2b259527de5a57881e33cfa9b17c957fb16d5f1a1114ae93a7211221f896df052ac172d011fae2045758286ac5245c9e65494714fde01e06abb6cdfa1a3e228db7c7105bd4d6f6111489f56a17287570fde3f085b140ce86ea07b0904e539b6c" + }, + { /* i=7151 cDividendBits=2326 cDivisorBits=1859 */ + "3393ac487d13317e8c2232af9477fd5bd45a804df6de23e2600956fcda9b18645c6012e1380751f9b8a2f0145536c93dd8c05123bef7f9a0b24315cf023ddfd1cb9137aa17a3da7de518baadbb7c796557510eb4e1584a2101fa9f45e78db5b5cbed7cec3dbcac5ab585fa8c557106da552db6846f47aa973db292f515e59d37c7995b9abced3ed987489f4a4b3d9b7f3c0f8656b2852df06221863ef6344811d7e3e192097aaf663fbebb17294c64e3ddc6f4161b946a9c0955fe5b321db4f730e412fdb5a651582f1d6da22af691335db1d4adc1a8c35990ebdbbb6abfc77f0fe6cedce7db372695d9117ec5e3ff9e7f873ab55f639513ef3f669b6bec8956cfbba264b36be2000eb5f7c79804300ab336ec9f0152129427890b28bd54dde301f607", + "071341a552b9ee89ba29909e8a2f06ee888b855cd49c3caef710b858102f053c1fbb53b2d0a9b0c80b530d9da46ecba3c2849b7985732676f3bea21a05789e850f0372a5a4e197215d015ed21729c863707729ce2f4c983371971f54ef2394c7cf0c858be422fb6420238321332991ff4170cb9d8fd05be01f6c92dc281565adeb18e43d6a94138d7a2aca02576a1157d47609864c44bb49b16c2071881b68d9e882acdbeb715c40cf359dacc5629e0e20103d55c662bf7b8cdb6197d0b1e18be95312b28bc8dc795aaced92fe10bc8776a1ed11c2e9fb9f85f7ccf359fba619b6bf6e68c15e118774", + "074a2f75a5e46258389b75770e66aff64d183d313c2f486935d3d9f71c4ea7444798dd7e089a43bf8601f37c99135f184c4890d928e2f104ce2c05", + "01e5bea606fa0f63aa571603f34b3e48d2289fd6f238e085548cad1030b7526da40d2d254a7ff1d9db05e8a3f1e863d7e2415b26b9772f87cde5353fe29dbbb29f0b3bd61785309a0434b18ffeed5acdd85718cc1bf614f6a09dd769a3eaf2d93938054caaff9d1c22ca8c44f4b9c76a5244b01a20309e4cc566f36da4cc3f8df2d1bd0ca41fa6af936385a840096d32ac1fa55bf7b1293d174b954d261f961f061158a5835609af2d89aa4225ec0f341befbc8797ba5c321fdf5c9b9a8e4d718a81afd0b4a4452b663c06e719e8052ef597e2daa2e7ead0348d4436bdacae28339a4d287f3a0a60c3" + }, + { /* i=7152 cDividendBits=3032 cDivisorBits=1481 */ + "5cfe10cdf2c6fccc31a2404ff2edcdb3b8c8c0834ca63d94b29c7be9e2dfa483cec6c31b0f6889f3ec6577a32311bafc68092be4ff2448251890a2dae834208b95c403708435ad0fc7263d4b6cc73649b55ae5b80288d21a48afe686669a96757ea7285a686e1c7fef142cf34814af554da0ee4874bfe1c7249bab3ab16e492e902b880be723d92bf57b4df5405128ec3b766f4a511adcd02de6366b79ffba45d741516b1e6f6ec4fe03a46ada3b3d4c990f16c8cbf977ce6b1d22d0d90d1a2339d60308521fc9314c5a99658ea5cfef9567a6484eb6e8bd9ec32d86069903ba7b16affc84155fe1b3bcfc0fe9d940085e466e1c6b47d08add2ffe7c2ab4a57d46ad6047ff4e980feb7fc4c1df78747408d8871674817a9b223788767e0064644d5af38290c18f733f9831e957de0b971193240ed42740ef55cec371baff3372525f13ca38836689448b7b5c61d1c9c1085dad215963f8d83260b91bb62bc73b06151e7b3ce3e03cf77ce5a4946f0c6130dd95c0442c506dd7cf5f", + "f7f6dc37fe33df957c1a675c6067cd2b268d5c0b749ac98a94a2d59efe814c9fd0de33b7039552ec1ccec9820b3660f9bf1779f74ebc25b5337d635fd1d74f57b4882aba4cb8b7c40be0092717fae51055559719cf5f19af6f4d969b0bf653fcef719a4173312c4c2295520c6bee2e2ef5b90e1933bee7e13cde7806c2a8021cca0b93b7eff13090b9e8b17f7541111cff51d3789b3fa17e7d43c448ae9e8c68f930119bfa176d0a844084fe957b6818a177552720172aaa37", + "60018a9be961660d090036bd135d8cebb82651fc3b485737b4273775cab321eff52896b6af8e993dbdb398644a1452e4032881c2071c7a86e05576b7114e84f847f59d2e6d5fc0452e3e672bd2146e7dbd869dac0e40071a655c837b6a882264006968ca9bc1f184179dd0e7e78b0cd7fe1a67ea856865e97b641d9a4dc8ed616b89aef42d4376981e10bc3edb747098bac10f475cfc8f585e24d560fb1a2cccfe300901125719e431b7e485612c8eedc4cd128077dc7094697df9d2d87423c2c137", + "b497b3b07a9e7251164f1bad1ffe8a0ce4a489e76cc23cdd41a0bd7702730ec80a3055d7d97882dbda4ad85d5db4eff1a95b38b1fef026657811867f6e296a1c7bcf08ab313af3fc51fac07b9bae4ac3c7a51bf92064a7408993985ea04cec59078030516e4e1d9327dfb07f202af61981f998ff0bdd27d18b6d593d4b30f64eff04ba09c97e93407cf309efbd45411cae4b9da04337c5e7f0c12ee5fb69c5876c85b50b682bea723893d9025023aeca8c41eba66dc6abc68e" + }, + { /* i=7153 cDividendBits=3861 cDivisorBits=1304 */ + "1387d3d6acd9dad54bfa03c7ff5073d5063cddacbb25d66ef7551409a4d3e87c713503fd9000b63069625bdc3c2f7954a428e84008717638b1e0ddf1cefecca418523adbb1cae9b8eb52e782b48a297ad1640c3d83e703b74655e77637aa131d0cfbd1e0e1cb519587a87ebd91d90b2cdca85b2eb215e2f5995fc329172ad7e9786adbf6a3b2776f20cdb08cb01847da7fb035f835f48d8a3139949b06e3b06a13713d079362dde136f2ae234052b97688e08ca42ba726f2c526c7b68c7317d817f9307d7737bf6475bd9f02243538db26c6ea1f073b6dbe08150d310f445cbeb971135d68dad91d6cbbe61651bebfeab1212b66f4f06e3fdee4855076281d7aec44500b942d11c4975be8b4ffc2a3f3c0bf3331a9ccdf83b620d0ea5bb71da4f949c98721e5c385614988cebcb0974a9759ed0b0caa89b23ec2e0cb82f8e1ce220d03aa0939bced29192620b31ab86a3101a95dd819054ad6a8f25c265feebf7b6eeea134b6984e49dc9de096ff53b1996d370174213dfe3b48106c2a319772c7ad9b90d67da91b9b3696ec94e14d56f91cd7cda71ee3d9bc33903a15544454c90b9044cb80fcf25a59eccd1e311e2930c68cde0588095c0b93956b3e13f29e4c8948e173f03ccfe1c862dbc7a735d3fcf9b681680fa49e9747075770633a9f09c300", + "7e3b2489b6c965806bd4bb5efb4743abb07ff9bc2b23cbe458bd12d79979084a8a66a918c8017bd854ee2611da527c461ff66e9bdf224649e3a3de04adaf90319be559e2dfc0ad155cc49dda3f99b300c55980eb4da9bfe7e09e3ff962608a6474b3bb8078fcea99e1f3d9e948aadfc6c52162936484d9e93cc768a635ff119f034e447a90beabc03694bafe2a71bc27a86f908c57422126e8f528f5a9fcb7ef1ee7ec", + "279bc9b6cc9aad05177739b00893afc8f36dba2ced8f19524a7a3be6091c76e0ba3a17685a80f230f8ff9e38b3594884c53684f9892f70053a4266219c3f9476a73d54e3f997e3f1647180bc509d9ae824b814580cadf7ad72c3a5a43561d5458a3eec93eb4500fd2f7c17cadc33f6d51c0396369d8d5fdea3605801571476fd11f1308dfcec1bfad59995bde80e04af08de0c829b07a8410b111a15b2e7c4caedc2ce561a787de04d919bdd3dc55bcec615d117a102b92efc7d28896d749d74c1ca31c2d8192951b7cecb2fca1f84257848440a094048accf7b7fa0f6dfd4bb77159dd74bba0318fca1576f4268b174a9538c4e2c529dc1a2a65bc201242426e8d64e1129ca973dd6a7b7c4609e9d2e9066900b6368d79d7c5ed83aeae2a10cab73e32398a30954636b5c9e9c5ef22d5f401054d4f28408f941730bd9dd0987", + "32a86e7235f931f102c629e4beff4cea6626f372ba11474b178e85f8a5c6bd15f547dede4225457671cf44e3f6615f9e5b62f1c7a899fe69ca20163df234c32523371471e529d652a74fd42c00fb282096c2d64c10f26e0c860537ee80522c808c9fe04325c19f4b5708b52debf281a5af4b1ab2e8c07e3305c061872f22c68065dbaa01d8aa4f4f80349b8f2591c3fe4e6e2955d3170779c430b425000b6a2cda298c" + }, + { /* i=7154 cDividendBits=168 cDivisorBits=70 */ + "ae46a4d08d19c8e7dcdef9ecee22e9590e69204724", + "7c2a2558b95246a6", + "016751863c4fd3791b15ffc8d5ab", + "7c1c8a549eb2f842" + }, + { /* i=7155 cDividendBits=1901 cDivisorBits=1780 */ + "222166c20b32099793ea730b524a63d90b133cf90d63de069d68e1a2fb4a764b0dd2d483b5fb09ab4173c3ef38b497cd936886cc3e4ab04b723d0deb0c7df417933b33cae77ef89112a5621c1bdd96a1a635856233a8a6a6047fcb9f4fb379afce8c4beb93e49cf93f48fe1ba9d96f1a4e5d1154faae0a79be43652a0d1b61a28c6dd24d52a5f4c1186c86b7f3f485964affedbbf7198e5e1f6a7cb82f17ab8c4fe84a64c379af9725014da466e2ef9d5455995376da922807ae673d19b6adcd3716a12720f55ab3f3746c7bbb3a5ee93d0ce7dec08c6be16f922f950615bff26a4c993ab2cb564577e9c78e98", + "04cfcae18b485e7c4283be9b131a3bb738c08ddb5ebd18783292eb7183758bdab362528d92ccac2d4aea1522d22460a16d70f0c627181b5ec74c57aca05f1ecc376554bf11d57948e624fd9bf26c6348221d546bcb63e9f7c164c8ab88ce5d7918d30d97957974b8905e43e0641b91cbb6d03dfa1cbd497b9725cf70a6d92e6f7d794049d3522c6036364da571b50979ff770217a95be44bc06bc27b947a0f15cf98e6bac93c701839a430080e88bd7a04f3592352cc337274a652d5d773b9efc72a8f656dd84be7e27b6688d1622f3202ae2ffc5a8e0495ebf088184b628f", + "0717dea88e25f4035000efdaee3181", + "020b4a0d4f57d8ebd8f415f53b98b2c3e70566fda2b8b8a799327ac289010486bbb04e530fee1428834fb781f2e6e49612da414816065a19e0761c639623e1cbfb5d0dcf3cb6320ec10d219fc0eed8b0fbb56dee846ac385fadaa663ed9e218036c861684ca6e65edc6b04b4ec1a1d33902b78037df1ddf51bbf43239ce012e9e0a05cb391365ca87b19ad0c7f0e728ea2a41774d4dcc73fefa39b43c1b994e6a35604ad7b2f8a724decf368829695361ddeb1d333977206b8160a8c2ffe98cc23a49876fd526652a937d53643420f469adf3f9359d9726b2038b8d6fb8589" + }, + { /* i=7156 cDividendBits=984 cDivisorBits=881 */ + "27ca8fc8341167ea8cabc854436f8e684579fe403cd06d9578028908fc6d5b7acb76bf49dfe85894265c606fbabe99c7e597431e31051e5da90208e318b43c2af02bb2995cd72b4755963132e65fb9f857dd00ebfd2413ea65d4ac0b03569683d9923ab969ece1e230ad97d0d61d8aab1103fbeaa764eb1c627256", + "b984a2cf4a3156e02073a70938f35055d29707970920562a3b0e0754d16f67bd375d85aa6e3d6d4913f1112f109750612a175a761fd7b4268865cb56f838627bd06dea5310ca032cf4e0a2c9aab5814554a9d7cbdded7989c4e7c2904a82a6ff873b67915c63bb79e75bbc5ad40c", + "36e8a1c76bb9758b4448f9512d", + "2528bb293418882e7b7f5a5e4f3fa532a360e26f752ff3e738b5d3c372df3e0f65f58aabd46db20f5d79657929d3bb54c03700bb4a4d7ca3a2b6d628e410df167999ececadcb3e86307be5cd511268f82f78e3f54b7167c462dea7ff0fe52509f32ff929a417a0131c06a3a7603a" + }, + { /* i=7157 cDividendBits=3375 cDivisorBits=1447 */ + "60b04465e3669d73629f2c07eae713efb37295c96813c04eff7d21cf2ace78e114bff5aded1c6bbe2061976addb5bec3f4efdd6b470fbdc35544e3bf2e44132f17269c3daf8ccdd56e39c7ae59b228dc67e2edd1748e79a2c8dcf3a81985d3d23cb4c4aaecacb705946cd4c40801dc76158cd4eda1c5b06a479f6ff9acb43728706b29422e8a5960ab99c2a1ca31b12a3813ef6a5f4acac9f7d00f48d32be25df25d57aabe6d5995656484f64834ee2b3932286b9c3e190c5e1453e17f89acd1aff9ef724fce8fa0f2bb6714f949909d530329120dd78f31ad5d8c4a1423907673f81f50c38086a68bc4b13f7b138a2ba805a866f5c776e46b5670eb5a33d01b99c89d09591de4d4b1d3c5f3296176c76cf19c5fdfa7b8ed121a1696274526f85ce8e2c0748442b43408876098bed5ece91759317fbdb5e98661d9353c07bb31e571731cb270ba8515aa86a19658f3e3b59b5977a1c057d9db77f2431633115071417459f3a609577e12d5d9007d1784a54a73ff111a082c201abbc4b09527aa807d06a5487a2c338ec50d28b56ae8d14c3954e66cec96278c36dab79c34a78a2c6b0001d3fb", + "6439adfbaef549b924dd8a7e8e81435e79f837c775e9c46196665fccfde567faf55afffcc8def063b53edfd7b837a22b9cc4fd8bfc3484f748f8f86ee279c9a2fb48f0ef99942f567720baaf47d598470005771243150f6ddd99a6c41c4742125de03a7dbda70991be2b1562e77d897a6e5bbe0c78a26270ae504804bf48de26a5abfd2e5a3addac523010f6cdf1009b1accbf43bda2f15f86e5e9f570498cd0193f2a55da6098af631a425af04814f13e5f7e8bed", + "f6f75ad3b9c899c3b9299a7c68d30f16d779cc1633599c2e8e9f5bc9f801f0d46a81010fc1f404bf4acb49b47fc8232ada5b9019543473cfa505e27c053e91c64964b17e181e7747289bfa40b5b1aa826ba5664e622ef0595245144526ebc6d2f8f246e1500adbd80089f99b5f4408ba41026ba916399e7d6f8668260c30d08dd873b676275f9aa13add2654be8b85c4a0be8a266134dfd74d6ec3136ba8eb62903b3b0d5fb6b5182af9cad8af933b6c188cb12ef9b83f1fa747a01e10165ede8957a3b4a3e24e4d42f3b76d398e860248e3714a952aedba6132b0c007f10b23c81e8801443878474cdaac1b5eb5807de3", + "39c86d09629477abebb921065b161fe09c8366ccff68d1840429b2cb1f507ac57263bdeb192a3e37b11427ba2adcc569e43e2d9b44bf231b5a5896b4fb72019501e81236af349936400080a95f324ff4c652852bde82a6dc5b54bfa1c3a73bfef3a494dec500dc2c429e7bafae7ac2356ea7beff5097d89c74a309bd69274979ca10dbe3208ad0741b4bfe019c50497b05d11222a3aeb2723125f33efad7f86c2e671dcdf45bea23d30e8a72658c03354100f907d4" + }, + { /* i=7158 cDividendBits=497 cDivisorBits=462 */ + "98c9d0ad6182f93cca0761fa7de8fdef27ee080cc21ce3ae80ba0b40a18647f99ad428a8c181b8765055d8b3713a229e3550baa904e25df35b03f1feb709", + "2daa2b85df8c995c5cdc1338203808750459a6dcb4902131c9a764f4cbd6b526cca5c79cb7130950e511b181f4a261024d21059d946828e4e568", + "03588b1506", + "14c5769ee880ea7027f81545efd71953b7bae671f24ff714d1d13a361e94497ef6002148e94073ddb3b187f6c966f8928bda71c9c1dbe657ce99" + }, + { /* i=7159 cDividendBits=3481 cDivisorBits=1313 */ + "6de2bd597a7363065349c31540f9b710cbd6bc070b3ab1e2bc87c137420e72d69267ac09de763e9aa5b8547ef65a7e104ea32709ab7b38e52fcd3f065031dfb612f748cb563dc3f38a1c9472702edab5a1a8de8b7b02494097f8c5b8b05c0609a73fae819bfee2ee66b30f272d5520ddc009f960f8fdb3e1c04c8b00bdfa5a9cd855ef4537cf6839a56bb80f2a3fe4cc05368c51b7c2940eadaaff9ccb8c1d37b7dfb6bfa1b6473daaab52c97ed9b23c80ff0b3f06bfbfa8b41e739da30d8d61a1fecf44fa3f5268520ca5568b3e32d8878e41ccd513fe9190c8fa635a03856692c7bd6fd5a8ae4048f91ec3ff4bbc74efc033664be914097724b65db29359a7f158e9c698a7af7f922e3b557974eb855283b5f7eec560caf667fb6c27630d7e598a9b028aec884fced35700d88f5433b276b5a9fe9b7f8b941b6c42af26eb42e16768901fe0d781c9edbe8f2cdda707061c0e301ca0df5ecd75159e139e869baf59df4cc3bb44eef8dce7570aa0b6a0b170b677c4db4ee351ae4df2a15c251425fede050a1a647586fd1adbb8139f235136c876dc7c835b33e2fd297bf64b50444582defb21507b5afbdad752c50c573b6548", + "01a2d90f54f1a25b92076ba49ca248f7f5c87928b53e14941f57fb761826d7044bee98b94dafe403771bb8dd4d9232fbc335cc3b6b8e6176fffd3184a30e3cb2fe267a8c6169300ca17aee4c2afdc25cfa3f60f74e88af82e6993bdedd9ac62929e6949e3f633346bdd07622a51305647b08ac635a6a02c824138ce88290c51ad4e63610783f2a18c9c0e811804ea8d9b5d713673d1853fa1ef54253dd033e5e5d0876fc33", + "432984fb1fb59335d01c6d00cee5ee75c0da799dd3e622a62596676ee8dd8a4f0d015d466bdaf48cec207a2c664cbe1a97b68303c10bcad98de3776a187a5645209415bf9542787fe6055e1ae13afb56db0a64ca99c5d6eb07261f48021a4b12f92545ad8da1bc63617658262ae35361a90d5f684d046cccd0320f423ebb004504ea3fe384fcc9875edb19d9d6df141499b8913598a0ca01b425a922d3f1aed0162da01f459a5a14a0d3cca7192adf31acc1d164ac355a02132c69ec035752dcaf317ee70a77560cc72b9761056cf46f2543abbc00cf6c81201d8ada95ecb9c25c776e36954f6936bda122f4e79340b32a5baaf362e86614398838378c94cf32fd25ede7d90f91c738f00c85972fa7", + "46972833da3aa15bfa64380ed5b79f4a53cb438acdf1c778fa033b027715e67b4ce09cf89d925c852fcf93af80cfd9cd4e3e5d9c524d832cd0ede8fa9c794bba013dcf287379bc8a4454a1fb7b82554ca51ded744c09b6bd9bb7458ea4afccdf12154724e06dad2922606a7abdf779989b5fa184ff6c1594ab3c047af70fc301d71ed15e48cf25772f957336cd002827e38078cd79a38b2adfeb900385deb034b83a8303" + }, + { /* i=7160 cDividendBits=2672 cDivisorBits=287 */ + "af83c4719084e9412ab66bb46acd74901f390d208b50bfce09c7cf786a8c8f4120c21eec69dba0961d12d5fe752b4f9b7126fc15343a6a1021402c7e90b5988a5f56f7d12637963ff5285e68825de78641f5a044dfea9ab85f11f8a1c48edc8f738635b1ca1f9eadaba14676dd5b24f4e804531141a7b80c1b2a06078af9a88515c8218fa55a2f9846f4250686d450ed1e22898eb18a45cef271fcb3459f4a92bab655fc72074381ae28419a03ef9ce17f669832bc3e0ec7e656f00c51b32245653a7dc349c8e127e84506f8373526d81b67116e8f38c98627a2882b9dcd3c93d9fa39f304dc21c93ba02efbc10eefa4bec447cda68bdada4dea4fb0a7c968ea1d8c454f328c6dec71022daabd1210a1ad411d8f1d95595dcef935eb831c225ce02cf66270a0d14c6f813a99e8523dc235247740c0b559a285289ccdabb60333f3403c05dc62cd68d69baeab4ac6", + "68ad4c985cf501dc98051f4e5052d1d400125820796f8baa7517f11cb8a7d1a49018a6ba", + "01ad3e02baae7367d6f9ef18d503103bc740c20413e1d763a87d42fffef1786a70fe665dd7235a4ff3b672f5c03458fb0fdf91c75f3f84ffed6e09eca4da405ebe9b9cb30aa1d296aefba3b7fa29c4f5997fc2b9ddeff6a9a3665783bbe5bab49ee546a11d79efcd631029a5db18654c2663f660633eee414955ead8935ab173141e52934f84209625eb95607825b0359827ee4a4bb161444b49c5a8eca164a29d944b7aad0ae962344c76f864d7d50353b2d4c52b53144e7bdb8d784922f8b68a6bf4a2c0a91b0adf93e4f3d58b16f9cd15fd3b7d29da0a53cb40f64f8a6564a94010fe28a5ca6df8afb4b80162227874ae2acb9d014a3e3627b4b3164667e923cb6f4a8eed50f9f6a34203deeeaa340987dd40dec286b2a5c9797d200fef16a6089b29fa209ba73699f9", + "6859834b7d5216158659c4d0af2aa73b2628cf96dc59f21975c5d1e363c3e6d849cff5dc" + }, + { /* i=7161 cDividendBits=1978 cDivisorBits=700 */ + "03fdfea83dfd1458a55fa5dc49cba0521d89bcaa82c2b0a83f62bdb9046f7a0648f59cd874e2c6a309eb6bc79fa1e484d9cdc9075a90f00ec97bfc96ed76190cfa8733672180df7fba46c9a39d4a478f982b546043b96fae5023ecadd5ce867d6991c9d14b0e9c16364eef8827f238648b000cd9c71ce0906d40de9ae57f0b4ae62034a7982d98ac0e1709e99ce5a2939873d689aa0f6d7a8a790f8ddee2d5212092765e46efdfdc0795e475ab54091a1502a62b2648101ffb82f4203f6f29e12d16b38ca1a5be19069a6623237822554e2b2eb462889ccd1dddf0374f9751b91af2f0936a8c08fd521a009146ec3951accaaa5fe3bd423b", + "0468ea531a196a506410accf8ed304f9d5ae1a10b150791dd4853c014de5a7ec5dec0eef6e92a9db7488b7ce3ca92dba758280c6ff30a73e6b6988a89b1f179471ed81d6cb0173eee8bcc775f290b7eb0b89c5b5042e3978", + "e7c106f0366364a051b0ad34ed9e8343fc8d64be22c0f7efbe4c528de63f4e43194adccc7a62c879da07309fa162aa86ee9e2306657c7e5d55f9d8f28276e1e7785c399373bbf2c6a7496503911c2e4520d58206bb0f1ce517c503c2c5f9b6d86dea69aa6d7ddd41eaacda914e072636343c1c2adf5871e492e5da08f35b95ad4937fee8ef786135b3459f7057c720e56f28bb24bc08821d8b6dbe054701f140", + "0336f346a473ac906c594f6e5e67ddc713b5608e5d9ebcceb86d4ad9d815e2e0a5df414902ada99c2abb677afb7d2f8783995524363fa3deeb71e8c51b0888f897c457420599b8511ac41fd6ad8b2e3519b5ceb8d29cec3b" + }, + { /* i=7162 cDividendBits=480 cDivisorBits=401 */ + "3c02bff81c7805f2ed952257b6e91cbdba6010c73217a68bc53c95dd8f9c10ee900e02803bf011e96877685366bab5b77a50938eff546e7e479705bf", + "dd53dd65c7eb37e0952daba7d9332157f08ebf6094e388762f8e3c9c20e7c02a30ea7963cc402c61e8b7faf55b439c2aa310", + "45696c9b8f07db2a4628", + "4b6c0e0610e5224e9679abdfb405c9257345af58d0fcb0df6a305f7df44ad5e6b6493f9df64ff590d79c5169314cc7b72b3f" + }, + { /* i=7163 cDividendBits=184 cDivisorBits=140 */ + "ecacc3a23037f7fc7ed847f57a713d995cc421dd048280", + "0e9e753df5e9e2bb17df82574b8b21b392cb", + "10308749d572", + "087b8e76f97cc1bdc8567857d87489073d1a" + }, + { /* i=7164 cDividendBits=551 cDivisorBits=368 */ + "2d3e72554ed8c15ba6933d8ab9608b1289c4c6506011d84d4610b7ca8fcf8a6e8cbc3537099133dc42c8c942452d2fe05b56a08959af54c5928bd884f54c75b580de6fee06", + "5c03cb21d4ea19dee12fc3f1ff6f56e3b5c68069ea4d998016c457f9928089220b194f38f8c284bd932ab5f9ff2a", + "7de039f29d19c7116859533c4f8c4eb3333f74df86bd72", + "329282e49bdcde59d9c2b9d76207b23e6b69467077b28d4a50698d63fb023c382eb8d1d48cc1cf12a8f91dbe4b52" + }, + { /* i=7165 cDividendBits=723 cDivisorBits=284 */ + "07034919ab71cbb12277b5328780a5ab53773c540dc3ee89b7cf14f5090fe4756eb63848d2be9bbfe87819f8ec10d4a127de234f1b5bc00bb731c3984a07619854ff590ed6006aa4a058ed4d53e29de8be60be22ec657dc327d95c", + "064c5494033978dddb28a846c116a01d4e2c884e12c5e74d8531f9fdf02ac770e0c3bc6a", + "011d0c88b1d3bc93486fa7d9d1e4a7131e10cc7f17123ee615cd7e68c28720ed4259ec97e2ebad6577bcad7c60301f3c5582bab866407f7e", + "04d304d1f7ae22fcff6bdf4b710637e960cedc8ce1dd2bf3f6c7c9373bbe9e3cb1d88730" + }, + { /* i=7166 cDividendBits=1671 cDivisorBits=371 */ + "5b2d45a0c151f89008dbfe449601da200c3cf54805321d14f955d125828888616c8945cdea9613cacd6ebff38ba1d51c0eacc0ddf782b070d8aeea66d38a86a20393e8be0016d064677ed8a59bdbe774742d22d1c2a5a261e1ed266d8a519729ef3647627649128fee41d32cb68f25d8591766cd9dc98a0c3c95c2db8e0ca9094f221950c14ae6a59cff17f50bb8645699a61b0aa6fd223c8d9473652d9fa16ec2c91c11021a3ddd3a572d4cbe57a1d95ab95cbd6ce4a5be0cfde06c10548e196ec4e7979b46380459c1ea2be22d104f6c", + "054fca8aefd971ef9e92aa13645fc1fe4b79cebf1e4589c05b8b6b70d743a48475b225c75e4d0cc5a19214953bbf0f", + "112a536ef4d43704d3b72c385958ca9c90143ede84b93b75df7221833bf2d903e6ad763b1def5fa20c0c92cbecb04109f3fd025c3fe04aa3b746668692699981aca2db7096e28bd9c4b4d0640025beb840dc64a1c28388fab509410de5ef0f072271330a68ef92d90bf0d9fec435f3583ee8293b43fba8aece91280c91ff9e825d9bfcd64a5f6af06e15dac459f2a30250f7d3e0845861d287dee8098868e3ea4a1b84", + "049f7ea4ad7a69299afb4dc0fabee64149578dac4e3f16836dbd987bf23209b2323fd84298b2c325466b51fcc536b0" + }, + { /* i=7167 cDividendBits=3419 cDivisorBits=250 */ + "0514866629c2c7156d228dde86a8014e8d76198d62a5601b21f60e2b1e4cb27bc530223482cd9f26e8c4aec9bf33b4a30346922867830f3ad71454d7ed51ef2823a42a6fd345539d7492e58e51f0ff478ebfe27f09f3bd3cd25a5115d5a2b0b0b6cc6f47c0b1e6645e566169cb32ab62a9e68303756038295db9b0ade761d19eb9bbcee2f52b45222a8670c2decb609b1b46af1b7fb52d69101f3ef402acf6affbe6f27dee308e88049c0e3c990bba7d34c05e9fad1d1f46facbb5a236a2d645b6470bf3595883fdce83ae201dabf21858063ce9469306afa82e5f320e78d58c86f3c6eec788a820ba47a2b64bf3427f211c02959bbf3754caed5e9126a11646ac6e7a7b3953d68a6dc5872527db5e25c3a88887c96a6de5ac03d5718e3f0fdff583ddb26074d0f29df283c2a075cfcc48b1861484ddeb11bae19418dd1f2b9139fc506837a54a93f11587045eb890cc980ce6805122f3cb149b5e03cbba7630592349e025ff8cf788946e7b1006663c3c8836e7dab27d88a528f295cc01fa6b77a7f299de66575e701585751c248ab109273efbe5f1a1983227bfdb3f95b0942b426ba8a605c7d91f301309", + "f4cb3e39937918a3b579142773957d608aa64b1710cf69c87ea1fcb0c1865d", + "05500f5783f26a3b7ab505dbb5e6e866fe32b6b75a92fb0bfa68b7bb4cb63c5481dacdd79b426d9508a313cc38a87ba6e8befc81d08f07f05da91015c64809f2c9f8ea5b1eeb6ffa57dc67f37e3d89c0153dc545bf1023a1045e2b992662fbd1db67815545e5f77b2d69b44ee3b8f1fee32f671b2ee4cc131a23c04a1d518a38b605d2666b1817769e276df1943fff9014b974e60dc241101f47f4b5b2950f349cbfc43a36b068c67ac89f063fc144f1bb89b28b154b1384687c901d184b3565ee9c3e99657b686e5b889f5d29f48c207e064645a2f58a791d056f4749791fc984d2c17cfdf33feccd73c2726f53abe7dddc0e7b1196b848df70592e58f7921e3c1573c3bc7bfd936e4ceb71b3346f0d270f8ab282d8e2c3f34b8cc266232c2b66d45bcbe74866d3a932f3a97a0fa9d662a9489619c0a4e772d874de5bc9cf20fdbebd2f318672de91b8eae3141967a8dbfd87a4105ffbeef5d0c1de46f865ae393d4905671486c809279617fae57d081b15e3534505b0592b3fa49550923df63e10d7c70ffc4832c8d326b2d1", + "e87c2f4e45c6f1dd14dd15e2d9f746d51952418dd71d805f38f485a8f6b71c" + }, + { /* i=7168 cDividendBits=3152 cDivisorBits=2667 */ + "c5c39e545eecb4fb43fc2faa06262adece6158249ec6f8c8d66290d5a090bad8a161b3f2633b50d9a8c3a93ab3573b742fece8830e86eb868f7cceebeee7a255b627fb906a37cdb34fd33a789020c2cfdc1aa73daceb74eb9726fe7bcda089dd6bcf0890085732006cb03b1619f0f628812aad77b187ccb2f8455fc6a1f27e02c9618095f0b548a5ee24332b13adf4c2249499189d1da89ebd42b719a5f1b7d4878384697b357b6175e93796916719d57ea4da9f49cf59cbfdfffa5c2113537cc4c5feda34789b5c2eacf4fcde1e95e8e2e5f2f3f9afbe8f4c59288df93ee58110214ebbf415cbc3dcecbe56b2059a61e2fa15ae9eaf2a117ad48dd2bd65e1360dea6dab1eb03e1e139b76e5341c5a17e5d9e8476afff10b5b664e30d0742ac0e073eadd1863d40bc978a18068b2a39e5e40c950b404fe707a24abd101f93d770708b239c5ffe1deef712f66bbfc05b620fccd0bf0b3dc67e8464d2bced01f5e2e4a122bb63a9c4f117d22bcd959f37509480c665ae62d7c4fe5dc8b5f22640e5dee5bcaebe12c7e7490", + "0503a60cc4faff04dedc720ac50ae990cf8110b543d602c13585eaaba86541e4d1e8c3c9d03f8b945a978b133ac08cab3dfa63166849d4a0a8f31f81d455699869dcd1c506a5d3721cb71e4ca90a5f04ac81a5d29fc864ba6b9eb9bdd2d82447e77fa300a4b968e0d15b754b593224ccd2603c770a41a4b4415437ba7ad726fbe18437be42ec408ed823654512aea90bb5c79ab7daf834439e719093ddca5366504e4cfcb46bb243e2938fa92c3f8c65cb4a388babd2f745480b8daf4d99632ec63fbfd3058ba9c0b1eb027036d5217e9b08667faad82549f8fddbc34b430b2f72cdca7219901cb7a0889764bdbbf1ec408a9ad9029597dfab059828811cd255efab014d836babcd06fdeaf0fae755735d628a9e4dd86090ea613a1b76125c624e8368e09265dba68ab668c2e471881af9a41c2ee3de3ffae7f85f789954c47374294dfad8e55c47c906e9b17095", + "2770be348ea75a55f25637fa7801103dc2f8ba261118bf90976e5ac79ffc79ca56ccdff74ef74f1c4c3997465ccc654a06c27ae4662e0dc6fdb7f1bd4d", + "02ef1156f339351c8cb1677237abec853fe57d33a2053161dce20abb519a5eae63b1620e6eafedf3580087b984189b3855de3ef3f70e4393729f293daed26ad51d2d2e22c34b4a2ae043999868acec31fe7264cb4f0b3bbe71374f8cbcb978719e076a8684fdf30276f2131cd95cc0d6d592e013a5a9fe89d77851964c76e804683c3a521dd1c07956541ad61207efceabc86f2bddb03a1b2ad4d8eb61bc81b2ec791ca660a834eb71f3a7628c5db2edbee4e71d3cd7404925de3ef7cf13b7c666242bb2636da5a664e519e488e9bb4993b529ee6f147aa058eb781ead11a14446545e1871fd69b3bf9cdc3845986810e1e3a138cfbf86bb67e4d6b39083d25035db75dc21aefa43f911b2eb224e886c30fb0326be42027263f06a0b911415d7dd4490aae63c77bb640a178878665cf49d6981bb08ef5b89c8623e2fc7b0af0513dfb6d84758bb39017e62bc96bf" + }, + { /* i=7169 cDividendBits=1551 cDivisorBits=1206 */ + "0581e77b11114f9bd047236eb8b696e0aa7e2e9f9a6d9752a9fd1676951fd0467ca5a8494d0711aae9d00af39bce6529d69618ac937d798af8775d641ac8abebe4810b594182e7ebae13f1ff73a8a0e6d9cd04f5c372123425ef61784df25e48ccca7626f8790cc41a0e7c58ea36fa30e1fc6e4a2a96804135e2243032442f6d424220c229519b97bfcb79d52998b9320078aa28e6b429584ac9d142666bb0dd6d4d8fce6a0bf93a950adf96e43741104edc7f9fd513f3e58a8fa525e5ff2048dfc2", + "3856430c2e3b4f222703e77c0a933ae8cae194345bfe7451e3855d3bcfb9cf0e51d09047db6aa11a96249140f211b6b6bed42c102d046909177ae873b55c63311ba09919fa896310307078a47483a211d9731c98d39356fb4e46012bbce2f73ba2f6cc8d80a1ab49148a687c941c8fadebdf728b7aad86decc53cf7347ec1da5b933c31ef806b8250964d8375809023b2f0e6785f0bedb", + "1906b9e79a6510ebba2cc86f3bd2f1d4a5d26adbe4b88d4c720a108a00b7d1ff16120a34419263f373a252", + "1f561e1c204f9d468873473db6b13b91bb00b3b0e07939d62fe67f92af796156db930cd4bd771708b8bbda7fbfe2b3cae48187bcf8e731cd412cc0659d8a72f2db2dbd02198676d55f94d5280dee426170fd312b15a1dc392644f2fb1c58e4245e04b553cfcefe8364fd10ff4f8c8e7ea0d642cc2dc8c87edab608fad6138e4ddd1228790b56a953396a283c449db621c361134304279c" + }, + { /* i=7170 cDividendBits=2469 cDivisorBits=1826 */ + "08f29e02a9079d77357b31237a40982038303e239f92b92eebf012ad501bfa0b46af45477f9fbae751cfb5a76bd73ba11115fd758f68bacc35f8a64a0e11bad5885316db02afc9875d29752ff4e5e6d79238b056051e7a3d07ba9c4473fc24e5c655de56e87f321f92a64ea4b73a981d59d1852d82f90c4dc45fd70b49b5ee290e844558e1619af8e14be5c000043d013f0a099152a9cc544c8d0060d14660df13eef22371a5567c27ffbcbf306462f2097e330f506a30376d28680ac645b4c359d52bc45a1fbb4d4a67cd9222ca721e42889ad83f056799813e25bedbb2ac17fd9acc5f514ae59b440bef5b47ce9299fb06ec102dfe4b8722082a7a4fe4de86389e7e83328faf7533ccfde4ae4617a726a8f1e08f7b6bf35d40fba85df0288ba417bdd558116967a020d4a8da0b310657abae3bc2", + "03a94644a338b5ccbb8338ca93be43ef2f8f210672f708a1f880a397b7ead02aaf4d425e72c1e35a4ebbd56248d12857437e03ad5b6f888f95c2906ea82a1701a4bd6cf8937b0be4e440643e232ad306bc26160918024092607c7fa73d7f6474fc78879ff9ab54c7097242e44276904b9aae9116a27886ff28e9b16f7b3c957ff6abe82308d853d91300be9b2900c07640b9871d329f842265569d0e9116b279d47c9e8a0ee4fede035834a1c01a34b3fa38d05195fd01a5235a4113a584896c9a9de2c6193aedf7250ee832a84d5f1cf48b73786696843c1afed938cb33a8227881501abb", + "0271a44708c31dde0315e829e0b726917e50530b1f88c2117353c2fc5ffefe5e8f98f723f02d312d8d4de31696ad3b8f12bcc1155f5145ed01a0bb8769feaa8ab012759ae22885706fa6ce10f79569065d", + "0291385bbe20e994cb2551d54be11e2afcdffb171d48dedc7a12d1277591fd1192db4b5a1e0d0e9e6f3a77eaf740369de1dc75929755601086539098c9ef06c373f5e75156b716133f3b0a20c87591dbf5963ae2f11800f1058ff54a1bebdb9f7bc35cb929a375081d36f8accc4bff0d261914bb63ad27cd93631a4ecfaba50a562cc5bd31d04f0b0288eae4a91bfd9f643771d1e3ef4982b09f99e96458d3ab9db3d627bdcfd50133b9bc7ecfab57c26b71ed86399ec5346218d082073687c84e2f7d4c5133328590d149c4177969d6b2224ce90f965c6f0e71660692852d89b2034123d3" + }, + { /* i=7171 cDividendBits=3503 cDivisorBits=2327 */ + "3903e6a4ead07eade9d33cc9e8c3d09532d3d6d20465e3a4edd6d2be7d8dda5827d5a2b02fda7d3cf3739ed4472bf2fc551e01f2bbfff1de739608619e3e8706fcb7a11dec34b056ace2a195d452ed8a9d704a11b90f8b6979d480dcf11282b96b37e0bec28a3bbec18006122096b90679dbd60549adcacba0916de9e643dd58c4bf32173349b0f3157797c0407ddfb1a56526ecbb7db9ae7a64a8acb86dc57a6487e16c3726231c127b11e345a042506e6775bbbed1c92e7af5ebd5da8240903a7dd6061c287513cadd8cbdb4ae26699926993c17dcc5e66853ed022121014c70e61fd200e71ed15af74da00acbffadef2dd5db52d5db2e70fa0090d7dc1ddacf4b09db872b75aab426edc3ddc605ac310133bca8831b8660771650c4a95e4d1fc7fe79ed61eead661c37e36d23d4274733da19f64fbbd3c28ca1bed0aa9576a61a92c53212b0498256164c03a5a7765e7e3eaa9945a251f1e8b3ef029ac2cdee5a34d8e3104634e2473ff11f9037f63d50eeb30c8052512474c9a86fccdf5c15a9524343393534ef10d2dd6e0e334bd3707942965db6a2a28907426e36fd67f76dfb9a020103e662e07e3f7fe66ff1171e6c25f4f0", + "6f33191031b8416a6a3685a9c04af01566b3c7be960aaa3595774f86bf0b21438826dbb488a49c3eac200ac96543fac5830b9883e4b633b76ad48b29a54029d83d43ad4d0be73fa17978ed92b4e00402482b1996dd933a69af9afa8fea3e9d11f1acced1f081e0014688aaf5f3245f216f0ae0481ffcf57131e53bc09d6a1f9598d6c99e5d1a589070ece49affe1194eb265956fb5db3065bb2c4ff76f58db29e275780393473a92cf32722649536382d642ec3e8cef297031c237910fb5dee69f970f5a0dc7827b8c33e2213324ad24cb3b688ce551af0cba9b40e1b8861affd829b6bfa9ee36cad6e8cc84e0bc6f640ad7e404ae5fff015b62634402be99ba964c537b19511e012dc9ad9f9f9d8601aa6e396fd992a83edc2b8846e404167923609e", + "834231d4b175e1d2db2fdc2adead186c12de33be1c43f85d696d3787c03611958d378e26e1c796ab5a5a0e0b8c41e55a4282bfa6174b55f01ec40cb2a0d4d99ca2bebe9f65a52b847fe6b1f054856588ea66586dea578ffc5d2d8dec973b786018c187d6628b7ac711c7d7973ea8bdb92cf737733b55271a384036f0d60d69899f92fe58e4bff60283be341680c08fc9811ae5", + "1777a13743ee34d03f3b47a56e7942bb6c87c180be86d67f6465547b630a38d3045f5fc73a7c0cb6b4e329afb905b052995a9d0388c18fd38c1a2cc33ac5ff8b1fb78d91f9c77c21f52b5e49db8b6b0950a486fc3b38d9fd83c513828f5dc5d0a6ba0e7921e66c79779c74c6f188972c443bc0096e4b7331a426347667faac7927490db58b9e146a4bff9d18842bd614c809266cc65a84bd9bc0b39bc83f2ffffb4936f0c3de85c646786c37df72b93fc10aa5b8923f76ca1b6968da734f82ee2558bec08457f0d0a19ac83d647e3b8132203798e8acf174e6efdf6d1f47c642da0b72521a7062d56debc2694b1f468b4f9f2f08b828a2da4362f3207e5a6b5598b72abe0a6056a7cb7bb36e5441930aaa2b0f15c8800ed7b8543212e5dcc4ba127b9a" + }, + { /* i=7172 cDividendBits=3317 cDivisorBits=1804 */ + "0ab2e111fb80a651bbc88969efc4f3ba6b129513ea4d23d971532f1b7ca89ec1bbcb78d77d1b33894d8516c142f52aad830aec5b9eee12b19f9cc6f90fd9d92eb31dc3708f0bf5020dc343aa732278de4cc72915229d546e5ef0aea751217fb040da1ddf95a8e9792ad5ad8961425b6f6009418f2c7d2eb4d1abd09f5977a0b9dfcfb28ba8f847aece65ff843d63703ea04403045fcf6f94ca6e424e615ca5127e625beb5b39472a58f13d96760828bfe335bda79bb2fe275193c860fb72b5a3cec0e5ce9abf9266541d2a83cdb8d5a424a0797314867fda2d2147ef85b6cd1aa99507c6f89ba9ddcd68a92eb90ad2192c34460d5bca4279d652d8772d5c4ca7a14cfb50b6081db9ac5fd2c146e6d0a9421b3f575837da357c78af57ade8dab8870322d9df3c1921251f92c2441dc18cd7bcba4f46844254a3b14aacf80f6856bb348082966027235ec6334d03e3089ed513d370ac25b57048af18ec76bc99fccf7b7e69efd160623ee15a2801a2732469842a7d82a1cc1b7ae2a181e16b04830e2d84da2c94554c5299ecc3356a573c3bfd8e77bb2558ea18d987e50a6b02", + "0cca641f75e72c4814a2af04c4d0151888283f623b22e058b32772e3a26e5ae2a3ea327c188d57b55dcfd57103f5ab1ca98b446c33f819bad7040587b57b504045a88f69fd30979cb4f81de02bdf3ec7e3d42173b227904e0b4514ad17fd51f4af1d6e42772e1659c286941477e9c28507856b4df40471d5789b3e7e49c6f2e4bda81be9bbcd18e568878659c74df8f6bb28872e96f394292acc20e5e4c6e1050caf06d5e6b14a1380a81b786b760686904c8959cc78dbb1fa15882a6ce647d5f23d67eb5d20bd3ffa83ac2546d2f0c6f673701b52e6396f90722fc00ca3922c592b", + "d621e1da0acfe6a37011eb68f8388046f23bfa0ff0289bff0b47185decfd95d2aba593418581c53dd15e8b0298e22f941c30d22553dbe421beb99f0f0ff35a9ac2936714b43b76cfb0c0632612efc6c112da5ad61a602603102753367e451f1ad265a4b998010cdfecfe651752c10964c1af44e37ef5f54022823615b2418a5e176c490b3cda5f4c3277cd130909e6a672c6de2058d98c86e3689fa28913d64f4ddd01e4721a82d91d960021344fabc862c43e6f43cf86c7c9ccb9a505", + "0a035bcd2fa743690459667508466e8d54e0beb7950a49b76d9feed618dfe2f921cab72d9466b446b61684a1316489431b6557f04bf94181b605f35064e20f544ca4ddb9893eac4baa7ec2be18f61b7a26f224d25eb0d861b4529c0eaf0321170da5dcc5f221b80da66323bae669bb878caf6f1d97628c051ebb077a0592c160d93c32985a1895b4ba963421164b9fd9daf07b50ff53ed2023a956d223b1f7af80e0b236abe2f87e01cda19ae0d7d3c5ed80ec54645924664a869d2804212f1461e4955cadd5e646cb4c15a6002c44918ef3cf3bcd2266c5c0dc08dec441c0a0f62b" + }, + { /* i=7173 cDividendBits=1246 cDivisorBits=314 */ + "1b8f1212c0650090a1d6c3f474fed042241dc2328bcbc9cff40a91aa62e73b032b2f9852cd7c9a21f92988b6b9af5f6df51de88d876ef6e759262164820207110c6a0960115e3ea7815afb14d27c578000e7434d0047109ef8ddee5b7749a17ff31517ecdb24ca92214cf15f437ddcd51db0b1ab326d44bfcdf9a2ba244e5391cafb72107524f27f5e90c7af891b7d8787d187dcf531bd6c380d3f27", + "02bdb8efc7b9c0245533fc4f54c5bc5c9e1ac0c994135b297e8c217fcc45aed5c0b9f17023fd2439", + "0a0dce99efdfc5f2ab5840c28eb41456ccfd8d6e0e217d7fe37b30ba861b090267946bbe6d8a80f37c2522c8483eaaaa2d945ea70cb894d40dbdd2506e6acd233e72b358d1096e34eae2fe16636a379c8da8ce836cd53baf78e83f32a71cf8781511c1e4e3e40263faacf9618c439d4e88efe6620f", + "aee95e8a9e5a0a722a1a13c436dfce6523aa7c9a4a06ce07a42053a9b18ca87e0c638b72244dd0" + }, + { /* i=7174 cDividendBits=470 cDivisorBits=386 */ + "1f45498125a0723db438fe0fedb5cbd52b36dccf4a1e414a87c7ccc4e98f1eb9df727d91d61b52f3bebc36ca5e6f45d1befa468bf0f7ed642c0251", + "0312f057993c976ee7422c182a8f7944af4481bcf46f9935356afa2eb622e30c505e49c4892972f84019a221db793e23e4", + "0a2c359a4f7161477fbb74", + "0298c30e07c6e2c9d5704d33d4eb61312ffc91f0bd5b8b5e7631ec1f2e67e8d5b9858978402f6bdd093b7dafbe05b03301" + }, + { /* i=7175 cDividendBits=2890 cDivisorBits=1130 */ + "02eb24c85138ccbf5fb900473dcfec73846d76915f4377d8c3d0525f6b33533c209653b1a4f568bf26954c64ca1a487866cbb832cf3017a9a3365f9528a24c0c55bcd4c5e270e7191fae6f3091251942a34daf0b90194babd81a3655792044e59e617c955af6f0bf48e67e2d4432647ae897a27e37d001eecf8676ab59bcc07405e7ee3f7878eec53e2dff1d53555b7eda31e242758cdd387a34132bccb6e4bb50349bfc2435c5dfb73d776c85ac83e7ac52c5778fc9e648ed3bfff054729833d15687c2707233ce3375a06cd4ffdffc51135c70728930d1919d92c677c782094c13c8a2e8d85dc115e224a5e8ba82a8567e18722476888154fa641c9eeea1f0ac3d8e85350b43133c8e528e7ad9e83c6ddfd9e19900fa15239b1e5c863b0ff5000cad229b0834bfdfd335295db11f1fe8526f5663b32829cf83bcf3d0c80ac1535d54cd5932151432ed521f033c23292d638d108edabd33dae5b61f1ebe6275782ac9b1bf7d36361c60", + "7a7bb741d3c8755be53b2606b7329b230efcfab39e3406f1e7edb4ad935b9ea96d867661a2adf6cd5f014c0dfecd881809eff7af929a8771d8dd642d7c337b1e682c21d7df8cbc149d6e6c79c8469c9af9143ac636e552044b038f536f17d61e78e27d30207103bb9c223fc202dd79189d5918204b41e1fd4a962a705ac6178bae4b1e3aeb476206f2c86b664f", + "061997557ec8575b1a7d1d857c0c076467377c4444c86b3f5b12d19ad84f4daf22d70abcc4eace8da5a2bde1a85eee8817b3636426bb13daedf84cad8bed26580de211257d6ecd995b07b4d81cc2992802e4324d400818362deacf05263a150807eb1c1b6ad8c25188aee075ae31ed65182ad4732da878cd5c0b82da30f218f4827dbc0a85558ed9b33def807670dcd3bbeb20c3557588760b0ad43c668be1823baf437fe9450dcbb7cc8dcebafbc884c27659e37335adab91c559ca3e68ae8db5d9b89dd184da328ff69ba3b757eadde2f8a53469b5db3bf1091ff633", + "1f640d0f2fe25d0224331ed5d2106237a1abbc1c6e9b20e3a92f4e1af514bc7f8a3751123e58969a830da194667540df35088ff0d6fa34e1eaa6a0bd8b2aa3bf2b4f1c0b823db036eae3a12574f2530ca6b22d4d6599aecbd0280da72f0486cd4bda9cb156c8c6cf809864b5892de7c3aea05c02c7a86f2e5cbec6581c4413ae0614c9a9392fc67f8ee9efd0a3" + }, + { /* i=7176 cDividendBits=2930 cDivisorBits=2703 */ + "01effca99bdd9cc5316f4104747575bd297ae86766a37a83806619fe869262076d1070739a9e7b2ab19b311a960388481188f0542df86f6a62568ca989e542976ff496f251b133f6f4a3e3f085289263c19d21a7defa7e8bb616222e34a35dca948829c2cd13f763344a4d96b539ac356f5db6c3b9d4557bea8cd909170cc53a5023d0cc5de7e2e5a16f1f5f854e87e35b364622a5add9d7a298638ba28397a1781ffaee0e20301b8967dca6f8c9b87ef0894c3163c2fd9a124619c7cb75ca80f9526f78dfb02f64cca34a8e5fcb5d48602621b42e28d30efac99d59d23435a9801d40a55b514ad77a334cba64791e992dd1300f71d10eb21c9a1a9ccb16e50bcc2123af45362835ffe4f8cd33af61ecb6f1d3a84539a1bfd7e4183c24f35ece42322aea37e824ba04eb41e9b3fc9db14699bf9e9113f70fe44c2c3ea0c01fd11e3e080a85f7476c06011227526b8cab7e8f6b0ee87b5fb8d056545227b56caa97064181a9960df79e1c8d4895e1b6", + "4cdfcab44bf26a9a9793470a1f62850abba5bce00d967038fa4004d478edea4c1da7dc0f3a6b6b30b2ecbcadf2cc031db663fd6fc88497e6224f6297e3efbc6ac8ecda02c5e0e8574b2c84d111c4ab1d71412bcc3a1ae110d2d9d94e1737631ccd8b1ba07e042179e97cf7b55652974359e30126aaea4857995eefeddfc9ddc322c93203ee75440f6b7229c497570a8b8a16cce40f94bbb5c4a216ab9ebdfbc2e834da163002c0c82cb774dce40c783b87a52e7e1ea454c4c5d3c1cabeb28eac1410ab23ee4c3bcc420b9242cff59092c7c589cb918b52a86e5ee52fe4c986e74b188659e2bb7ab3b198ab4829c7203d76f88295825557c82e425a1120717eaf45383325ade9b81d69aab3c8e5c58d755c227692ae7795e53f9d78f3af886806daf8bcdadba2b2596d573e798c45a3403c4748b32266c85f1705c03c2bfb4764aed74690ab95f3c960923a7e66c29b892d1e", + "0673b1c31f8e097b7f4739bcb1c8da8ed07d2a8684a80c70095e05a5dd", + "0d010c163b7ae4442caab0b350846c4e59dac04b6a77c98af1fd7649c0a71dc24dcee9ccf1a247a5ea00eb5dc2e0a1c441ac3d236f6a410ac8694bcc8d43fed5a684f998d53f4ad060fc78fbb6ece6a5bdfc51fbe1fa7d76f287c87dd5d9cd2819391858d1c1b3d134c499c73993deb715005c99a18e23400f22ecc054d12da7aca85a5f6adccad64fbfeca77f8026191be6c8d5b5fb347582caebbc98ed94c3866802bbb4e3fb61fda620fd2bbc95511fe71004836711766ea1bcc768c48eb789a0d8a9676e6b16a60867298a17debd04b6e1400861beab85c24f4f13a7284582383a2d7fac46d49ee0517cf17d771705794025f738491299b9bb5a787a690399403f5b150e7f6187b9e7b0644f1dbc413fe39a45529e065bff4c30f41a50b0ad279fed741437a220194611978010d3ee2293bf2cd7385cfdbfad669b63edbc5e666739d585bd6061854062da00b37f98d0" + }, + { /* i=7177 cDividendBits=3524 cDivisorBits=756 */ + "0db8043852bafe908ffa43edcba4bc2e151049aedc371be15b5e2f03966683ebeb83d262633b07071ac307dd473c3e532ecd996b5443a7c96d8d2315093cfa0f4f3ed2345fd6cca7de207884ab1d1b53aef969dae3d5157f7ba1359cf2e74f1664965baf15003f2a451a756b6e2c8db5b5a93e374bd736bf1d301099e1787719ba71e8b09ff527da276cf199cbc5aab9151e99f9d972bdcf9b1bd5b07344e8f4ad79364d4e171868689a19718b3c03a037089826952a0e97daae349283cdae0d44e7b3d9bce647a7dde514fa8fd70aebb3bcf5a3be98ae24780f86a9a6ad5c7627c5350bb69bfbb1be27d4180b314fdc4a1ff3d5aa59a48dbea0b5187af0e16ea2821ed5d4abcd834a9bdca34150307e7e68188072c05bfe1bf0143d1a8d8e41c17d444c40cca54e8f82262c769f135f56fa515dcf8016d897072445839454167e1ca0b0c982a9328bf2c858e44f044d01c294459fdeff31430c318d6e38fba65a90e3ad2abd2bd6dca2cda15d4ef457e2999ba518299803b998af16d282982d68ece4e74135f1a7a34eb69789442e6eb9a9661a7d0b116b6349e2a281bb00d528371301a3c676c9b607f008e0cdb59bf2609caec7c0d032b7", + "0dd92e2cc6c6b652ef55ab8427df74e418ce81a8350ae9501976e2c0428574fd879be5227e356254d4960a0d874acb2a2abd1ad10b8b57a235870714f4517ee1afb1caf8834ad57bfeab23c610b035f356160ffcd01fd166e2ddc94b5b8247", + "fd9aef2ee1cc5473fa34e5494e57e8c1e24b35c2fbcd32938068579c040dd8a63e55e093643d9d5f160a0337558877b270429484aa1201bd2b45cde309f75ccdc15051d49629cb66cda743bc603dc0f024b709f06fbed07f3635a61e138cd6c26fad04d3f8a8a57227d3498a291df12571703c892ebac539da8753fbcafc93022174a4c66893817e446c724fe63a57c3894522f4fb5f5a6410461f3387b1b7054597ef101e565987dcbd4bc502035d4f3662335338bb63ccc0763bfc52d3f7ceec69e72385e2f1cc85f3ee8772936f1591b0b350492d03b01f582534302f5eac4eeff9bf34248bbf386d3737d022d352027dc862459e5cf0a941b57b9c83fa0e0972ac7fc9dce48d4a42b32d22d5ff54729a6dd2520f96b3c5e401c397520bcc35f501a71a135578d72b7ed06a6af35bf7f71b6d11190c9d0f53d1ef251648526dea68cee165e9a88ab679e76b4a37f08af4e9e9655aad9f24ab", + "5a16e51ccda81aaf2bb546728c3ff12ef80a917ec403ddeadbe4ff303b2360f031a1d56432f948c77db99f12f8d9c204320fc73c4ac5094b577088a7d008f9eab3899cabb5a72b4e6a21419dcea2a9f0e98b1a8ffcca2dbec5e3a745314a" + }, + { /* i=7178 cDividendBits=1620 cDivisorBits=528 */ + "0d1ed167fc087138e8f396e0300a68957131a5dce3b079dbbc1a770a24e4d7ebdf3a89863b012c26115349872ec30a22f0698651e7bb6bf0d998f5e9d3b99e8f0ba2a201bbbafe4aa05c10b846272a6d22f89ffc14e278d164480f185cc7058117a5807d162393509e21fc149e42024496c2f497a0bb94a328494ecf95b0ce4e0656c9ddedf8f3a6b50e9c83d8d1914c46c48003e5ab448b010c5edc7bb82a18e85f7eaf3d4888558535c415e60a789ba58c95ffa0bf53a889f5df740c6e1c2ff3047d6349d04bf92eea94", + "7d130155102f4efcf78bea627502d17eef6f849ad5071ffbea05a52e37951904142424da890bd9bfeea6e26f1bcd9b3d038d05095146fe7f597ef9700a07630b6a70", + "1adac6b735e7a6200c8ef552334d34155dec0fa18066beba9744ed0727120e49e77e85a8de2c32aa7c3ac224d8182d17540a4c858c1ddf3d081fd76cf60035ae29b5cfacd9f52c8897b1a4d2f2ff0ecaa3334ed4e654305031ddf853987370c9f455a2838b062b5657af0328d48da40d7783a614c7748918234ea9a2242c7689203c8604082752f19f", + "4d1e4f2ed03db69a3526b7fd4980f506ef4877b23d2886d598aebaeb3009747b207b7dea0b04d7c51fb4db94f26a7c25e2a0953bece8e52dbdb06a2917188e045f04" + }, + { /* i=7179 cDividendBits=144 cDivisorBits=133 */ + "26245633a787455b2fcf143c62c778e673d1", + "1129d34e7486fb5846a1f37d34776caeff", + "0238", + "0f895d94fbc7af5317bffe965e7fc22e09" + }, + { /* i=7180 cDividendBits=2406 cDivisorBits=645 */ + "1f57bd68e93825ddb3c020a7fc1eebf42c9366cbdb954ecb6eea4bc9c9aed04cd7defbc06de99816268615a9bcf636572421f20ffd235824658df545755c72e5b0a32283061e102ab35a06386f336ed97dc176f00ab877fa261d40488a542905bbe8af8815303bd596bc60789861c8ad001097a991fac8956db0a9dce2cefd783b9e267a0fb366e8e1b7bd3b97d7757381807aba0948bd3fc7ec81cc470fe2738cb07e2cd7ba8c194ed49866c0223939bbcf03382ac368635a019e4c476926bea8fe413e3fa47d1a7988a06085f5611c8134b79e9bcf924386f350567c1847355da4bbb0b3da33c49bd46ce06c0d81a9b6bdaf7ad275833bb18e8b58b3fb41ea248f8e384497a61ddd34771d576055a6b4d5f3c28b703228fd39888354f2a9124e300991c518378fae4def6613", + "17c0bf3985b0b1a856db39387d81703abaee7b38c899ab1740d0530888ccc7343dd141ea30cd8ca7dae81038a546adef440fae91cb15018b4e9f54d9625d3998fa1ac653ab5c54a5eda5ccc6604dcedcba", + "0151ccd87873436ca7d7ca337feefd4c6d0d179aac276fcba4aadcc6663d6e1031ad7eb872b0f707a03d8005de365882afb095ec2e30c9a31ed5ba4383a8b552d8c560a614e0b64366e0a2f741bc3e663344bb8d0be38ba8be00669d54e38bc6ce089b22fefffa5b9744d436455bed4a4d2f257d318afd1e60ac954ca86bb65dcb8f7ad5d9c91bc0116b8300a6608a776911596ec4cdc8a9accdc7de3e80d7730f8ceff36a80d5ead7ff083bd1ec248661babb2550e12171344e26959b1086512bd2931ba4514fe5ea58e8c24ad8d1964af2c77a08795b4d9de9d48fa2", + "0dd1748e28340de2512bfe0df263758b5953694d70f19b088eda111d5368a83790fa5866a5b1c88cea14fcfde82c6bec88a8943636e7d8ed5fce3b37adb84724deb87b04b009938a7f8ae135006fb3d25f" + }, + { /* i=7181 cDividendBits=3095 cDivisorBits=2190 */ + "46035e0b381c4b584d9942340918fa734f9b4bae7f7a74a6a62c7117485757561825a281e6707a6bb8f13a471a4e849dc80efe445cbf6532a53f022344871d89665e4d5b4506ad5be14bf55ab7ab440a959527dec5d0e9a8628648d2f10049d40311f6f3ac4858acba1c7c9a81ce9234e0928714a77ce0111e20f57bdbdf758f42e281ab42be862634640b5cb245d2d2700b06fffa8bd70a45e1739242b836f0dc89af5646166a68ac02a6445de834e145a52dfb8e507d2cc86226165fceebc28149198db2c85dced3e6b2b9f3f3ad1b50bd6c78fc93e9be8894522df8ce42b3ff6da6feaa696475bbe25dcc7c9283b4a0b360f743e95e5e8bcb894544f4d226df90f28f2b2dd0898df36dc5225a4fe0f96e3641c8b028b19337147f60a5874727eecf98cad7d32ebae214341ee8f54d2fd186ece0baa4a03109cec171c864c3da5070511eb8cc5b3c78a2132cfc25544ad0a05b76cf40ce43387f348dfff83b0e74107cd409130a241a7e8c795dda2152e93bce978e1c311459b2f3fc672ea57d8f97", + "11d7d37fe42e12ce55841d743f554adda6c7fa233e55092fed4d202bede47cdf93bd853db5d2a1badeecedb6b6b8b2ae405ed14040fa905314ede32993db3e092c7904f5b96c264a1f4ad5e4f91286693d702dba5aa43071e3da83963ac51797a4e195fb8fbf00f0574340ccb13dcb1c01ccd3cb455356ae26594eea6f720f995f8c82bdc3b4468fe2b68d7321bcee4b1915ff8f56adf20a0eb6dbe24a455aef1f64d83cdb3c13a6f210534de8ac3217cdb8958dd1bfbe6d2634ccf1ad7e4368a6e3ce337708ee295a2aca606bee5658bfd2001d078547750559630f20591ac65c6840b30ebaca97a5a3f0e1c0ffbba59581405dc100f3413a4dd7bff964666633e55d759aca59708810e1bf36764bb486ec", + "03ec800968d974de63dd5624c2fb7a1ce1592ffdad59b2be1b70c4cbf2db52fa82b50291e768b085959f08623ed2d20d64b023b4484daf307f5ea2508980148f19ec4d9f75062d5fab3bc65e0b4baddf57d8f849194ddc5387be9015f406a858a987a5b93e7507698ff7ce88265af1d82462", + "0625a01737caff0a6956a2e0ed6bd2bcbd4db6319d8deafd32d27bb6fd7c4a2d6d717a080027da934ac8754d4959dad311ee03836530099b9095a97a11522b1d0933d664f3a2381ccbba0eea82673e5313b3b70a83c183b46c118b0684b1d73cdb11991992deccc068df829ad1c6bc4eb924f8f6a9c00abf9e333bfb59934117f271dc3efffc3be7a6ac87580f33db377638ee849f2438a9c0a74498e5b1350728b89c1f100d8b158b3599b58323e72b75d00d7ce51b2e18819bf869850343861dc7b1f17d3a4b4e1dc3ae55258abb731b14c56a38a4478a80c147ed42f8cf0e67f7cc0706189cba921a2ae7267b4f2e0c79a6b0d519ec25d6b8325462269baa9d124041df28e1b034e1552da0f24448b93f" + }, + { /* i=7182 cDividendBits=1878 cDivisorBits=1720 */ + "0a0489b6f6b33ff163728b8c4efda599157908b4a2350814f37407f070ca661075b42e9ec808bd34e013a9165202f0efd27ce82ae2b96bc1dc43534f2d37fea8e11e027b493f16722bdc41fa549e1b343fcd8d12a874d6d94cc996493fd4ac0ceb9eebf7cee1fe939ff68efab5ae60bfc7819e2a9ff021f670f8faf5b2f7db57174e362e65686562c0288446fa1b046959301263459d2e0e8d8a9397fe071d5eef47c6e4fb4686eb5d5934b8a9b26dc103139186076499166f5ae0731ff86318d3044e7f5f08f1aab286165b457fb7832046cd6556d7d9442b788a91e18ec65cc68e4b7cc16044de8b9737", + "fb6acd8b9e1f4285fe6e9722ea35288ccc83b4fb043431feadd77cf6425e856447df8d4caf37241b2d64b71ecd0b8283133985e5f93e4e10667a73eb15f8c28dc276fc2e363452935dc00b6c442f008c436960188f15ef0e6dfb39d503e2845adb9339490d5c43f982f74bedc99b68d79e548d0fe74095441f7d81788711a8b0c39fd2f65daaa17d83675ee271f6a82dfcfb7802314c1e78c4b062b99af652a22fda5a31493cd7c3de72c1c61c739de5ea3470cc8be0295c1b1d5636cad97731167790c5e9ce0daada082a65507eb51809aad80b11e932", + "0a3348b5c6f2ac1298d962723a68940def6cc9bc", + "338677e5af1912b6d405c82833670dfe5e779757d9a909916662669b4f25b7fd29b8eb2ed48fccac4e25a4eaac309d871dc4316b86fa876450262c16f5686fc3f2e7b5030a36f20e7cb68ca02d80585b58460881257366451c7edda9ad9f65accbc3e1c96966eb0966c7622ada08df7c63b3901954a9c04f6d4976f206ffb3b0d513d1173ad65c1f67430245baf706a2be0c759f0c96ff7c36f90826bee912a1047012c625bee1b37c670c10ed6357ca454d0caa809beba06db2bd1d8a1e7d339da46918d92dde46e98182ee2c091b7e00251d9e34147f" + }, + { /* i=7183 cDividendBits=2067 cDivisorBits=1097 */ + "07ca36d469ba5fa29f5e0b9b2e0b3f71c164cb3b6e626e7d2d7e895789eed9a9aa562ce256668635cab6b153901d0ab630979176adf9c7fdb58771db9a347f014ad9f6ff074efc6c8b7eb8b212e49e31e0006530a309f4dad88d37fed1a6fd32aa8320c6e7a07fa64531411613d3f72150ccd7bf08d5676f2d0534671e9f6b912e5dbfc8d0cf58bcc4bbf2955fbf9554bb59d7afb07c742f05520cb2a33822c75d8b9689f08f29b78e5a6376010cb9e97d4a4b605700386dc7cf754109e1acb21faade075e81d7e707a3c255d10cbf934948775465c70339069ae628c465628ab5ccdde0d8147a771061005f6c195e600562fb3e4d240f8a11cf4e7c1b2cd2723e32ca", + "01f6f15fd0b54d201b28acb78fe66c38630d957a1d247573455d130c04610202d7133a7252322d37a91e3b5b7c4d086dfed72ea906cb865684f4708be27a77255ab46586bd6692646f48cf8b95997027b95edaeef21fdcf0670e6220bd5bdbd183ef535358d4b9fcecf3402408117b754ed995609e45ce8ea32397a714abb9c7e1036b242e10570e6fe0", + "03f710321a84fcc059328721880b83310d67d58b479bc42c5572da456738fca2a18c5c4215b91e12c8951e71075e0398a922cb57bbecfe0d0356f19efc913a2e0445db15de451fff96f5e468c7f7a3c20162a700a7077af8209145aa0f87442fd7eb4f0db6d5b8312b841466a04fe4a0fbfa412a739932c272c4", + "01460bfbc10c9fb89d249b39c0b0198f2789f6be81e76c5e4d5f29c8c88c4da17c4fa64be3c9c7fad9f47e4c7c6b5c6afec5a529d87a0c93a0efa94bd8d822a8d4c91e6e7b2a5dece112fabf6040ac2f4406b7b1fe24ab57da46c0fb35cf09be45b9ca7451cdbf6566f566889b22c1f517a8bc90011e5556850f82947087856e0e2a7fdf59e0d59ecb4a" + }, + { /* i=7184 cDividendBits=1734 cDivisorBits=728 */ + "2c4140bb35ea10acdb52ac92eddc0e025dbede226557fdaa0644cb69baaa1f2f326a094a80664b8b637e67871647573ef944e5607ea1c7f5bd762145d9f67ea3559d3275b986236fda6ff39c4651aab3ee8012f19e1dfcab0a0ab1de93ca2b317fcd56fe8e11bd7f85ba3f706fc82703bef10e3c5b171bfeb6a148079a883dee32d859f23ebc7863edb4ce3eadedf4f24c502d65eed9bcaf470133fd440fec6c90e421894ce3fe833fbd2cb5f3738d6a94e8427665488c7d097a8e349e6a8ba785a1bf1b9e8b956e82a255e5db3680b379b1aaf65b307a66c5", + "c3a89a55b46a77ed6b40a5b03a64dffb22b4d973004c20a21579e04b4633a4a24252764f0266c308dc9033569046dd283c5b2977a65fac1cfaa374b6462b6fbbc990677418e0fd74ee314e2079955057f004b7955037fdaa46e9ea", + "39e735f20018c297b4f1721c0b7c6800ba7ca2bd69ceb039f159a070014ee5376aadf803fd621c859a2d2e9c9a35998c22f536a6ccb698cadbfb8df21818a9b7d5b9444ce19c39f6e90329231366ab7fd78f99787bf79d9f5805e60d30671f9c11a8adb271141612936d1f35fb4594d04d75c5278f0427ca01ce1cb3251f", + "1966551b245c69cdf58114ec03d76b5a2e613d75cbb56e854ad100a9789b0db380ef2b0628399e61dc9b8b310a9287c38c9e333cc67b953c8d9026fe3eb719e9192a39c7504e832303ef422f5f8b1b3ac5d86a9b408f902b77416f" + }, + { /* i=7185 cDividendBits=3949 cDivisorBits=61 */ + "074b2cb77443a6a1032a9adf51800891c3449279c3582fe1ab4b0baa8119cfa8b422a527febc24100230ba6ddd4df87eb92fb4a35a2e8cb14ef23d556814132bb7954af5091df8da9592c705546980e1756b725024bd6914e390a23c43c7e118ca6ac0cac1ff21cdc6435bdb67771a682b5eb7597295ab9a0306ba7b0274349ce682e05d49e937a3fd079ba3960d6b7480968631e15f71d0d2f0950460b72c58a257a5806ef1c1a8f8a68538d5e13a9ed6838b795e169f5b37e53b3fc3c880ce862c9bb78b19abe0db739621a921314994ab1ca4f9907987b7917ba5141e3127233a89a2a9c4bd69f1a3c4bc732de250a867494971edc22933d912ebc1da3224e8d26eaec1455d23a28304b72cdcc1e869975ae5567e39f155cb27f3c74ad045cff26e49057cb665f34ec27eeaa637b8261e592ca3dfa66ed3097d8b51067be79fa4b262b0d198d08ec6b00b36385190e6ff95f25aaf0141874335ee5abc80622a11ed0dbc778e74eeae105dca6b7a7c844fb8f5546ab98d50d991fef4e25ba966fc1b29c005503681540be084e19dd90be4ffff77c5c033e34692885b89f25e5e058ef048567595481d51480df8da81ab74260b1b90e5c1cca81b08bdb2257b28fd7914428581f7fefee7c356773af9e773426e0929dd6f5dba8c6d94fed873e6e9245cd28a36cc5a22deda8121", + "189f873c2c54b89f", + "4bd47ca1cbe91b5d8deb13d0558c9c36a73fc008ceab05adcd333dc030a219e1db93168a05898c0a7dc65b16f93e1a139c5149164bff028bdb797d9aee01307cf1a31f1fdb63fa166fc5747bf86f8f6501ed258f075b50cd8eedb6182cfe176219c6a0fea1a11af386ad39215b0902f150e6e143dd228bf81a07d7fea67d3e51ebf730b9bee84244fa9cfc0efa0caef2fea7295311f7635892014797c20e5e535619e8aa312813708569c2fc1f95e83f65c060c5562ba325c618c7464f13eb02348b45ef35051e17ec50072af191978b1308cf298257d4e3ddd83642c96cbaac8df6c09a72573a4741f9b98a6b339d9877751d9260dc9ca6c30aaff8cc72f66a9e0e203a2c7b113ceb6b4ccffd50a07b49216456ced9fdb5eaf2fd8f1f19acece17f8d3519dfab58be1f1cbdc4f6cc8371f5972bd9363def033f139dfb96f1194b492ec22c11c1c4b464224dda3b341aeaed0a02bcf8a4e707df116c53f2bc01b49e3b312c14756bbae6061d6f37bb388e7aa77f55a3e209f52d400032a06096c9f9f8bd985360afa304b138b728ce92f29a4af0be35de9679eb7b23e3b3c772dcb8206fcaba86ee0251bf97eba85df68faf06e2d8ad9a6d7791bc7f720b39185cd0c18ebf09ac4e913d013285fa46afdf383bf87ccb1de00cc80183e0c20316cf3e63905f26", + "0c79f83183541887" + }, + { /* i=7186 cDividendBits=553 cDivisorBits=476 */ + "80860e7b45456a4824e1400dd868571e10c8a04515b8fb4dd21ff58677f83aea791eb2f42fe9be825075c79f73aa9dcc40ecb3656227e7655af1b6c0245caf06e32bf88b5c", + "0533a7242f6db41ec1448a5a2ca2d05ea15173a40fe30e282e0fd33721821648c5cadbae22f40aabe05f93aeed60c3696580f884e5be3a48a2bf5d9e", + "18b52aa9549ee10f490c", + "041c569a97f7fce61238b3e2c19cca9011bc665e58aeb256bceee6ab28aa562dede287aecf40f6fd58ab1c4e40b9ff536dd4e86521b83b109f0c19f4" + }, + { /* i=7187 cDividendBits=3334 cDivisorBits=2440 */ + "13dc471cdc44d8c8688b987fc8236c5a42947e415ade3c0b129e634f42550a25229409d0ac17f3d3975350b9684c97d66aa0d812439c62b28f5f129fb0925526c979f48ead5767f1fbb09280437a9abb2600b1cf88b54d40e939210e149939f25c2c10cbc87bf85cc0ec4c79209d8b0a5d881370a42c7adbaca01b5831bc673e7afcedc961cf82ec52864249d635cb4b1e283b7ff8bd9af0cfd29f3f9c2cd39bc3cee8dbd4cee723982c78cc71b8ffa58ea2a97a066a345c8b04b5c0ea95bb6bae3cf1cc37957e3a6fa7b245e8b6c400a51668abccd60a80998e240207f8969a497af0248f5463d8c957f962e99622485b5c546fb7c2036523726b99165be48035a547659f96a8dc309032b3164381b52efed2dc7134bb6d687c92ccab1dadc110d59287a01edc938ff5102850acd5423f47c2515c68f40bef67133590eeb7b7f95e0b251d7d20bb4d01c4ee597d7ccf2235ef72902a1c47a4e22dbae3174584fb2016513226c9b7037cb709f31f64ee1e3953584d022629ec79f338288a261b94806da8086ee0e7009b00309ec96a9ec677819c8861d969082bfb8a31bafc43b3", + "a57bb3542e5fe55ccb08f5b68bdecb21d0b69d5a9b33ac32e8a3d28b8cb9e66c441d61555646ca7514d11487c38243382090ed195c74dafb9ea91e88a7bd7632b4c6b0eec20ffbed8057bc0ea78736180ae4567ace8d068a76eecd6d574e24b3c70c2240010fb6e8e295c99071244b2ea4850020ec7e37fa8c07260b28fcba5507844e01c6eff2e0ac3d69537a9640b3b3f8dbb2b44eee1e8d0757eb4dfda02846543a2860eb9f9a19a7709c9c52fe52ded7cfaec43ef34c53df3c4ef3e947ce114e1c0ccd47d35709fd6ae40ce01532be91da85ae4bcad1a841d98d4f15ec18d11b6353a7f20a3dbd700e86ddbc8608eb90129dba626303c8ff3f4f33daad18e7511d89177c8a2b3ac0737df91a88f9d2f741d68f6e884116cc4cf4e841dc1de4a7df800abf12ed66ae37591db293e5da", + "1eb94ce474f04e552c2ab886595b1f313308699f69eb57e713a8c639569e0ea8ca634f8a7dc96804b5fa66ed18da3d7953737b1a7dc72b9daeb0fd79a1117023914abfa6b206ea624a39eb8de22934335cef106b40100a57ae8004cc8aa4168f72c515744f5320beeee94bf47d68f929", + "7d3a3cb8b67edcf0b49d56d2490fb1f408aecf06a3aee20c21e5a89669fba6791640012244dc532c730a5a5c9f1a81306a15ca4a9482638e05dc18e7382399d440f7e010dbd05cbfeba89d0500dc8ca3b6b4b476addb931bc6f2a08fa31b42aeaeb03dae3d3a8bf0bdb8b19327685cc8621f16ba98e48c7572448432764d3ef4d97ea07be2a0f675bb3ac6927dec84fbeef4ebf2c44d11afce61b4d2664242f408b0a4321cdb93f0ec0fabe8155aa9a9b3366dbf0109a8bbc2840488cf00456ba7a6074283183b9bd4801c149e1e2737349e46e757c404f4aac76a01a30659ec79801cedce4b90bf4e243562b864ebe43ea2641bcdd4fd5c6570a333c315443c83b761c1a0fbb71b939677b3db11f331fde14a344e989357f54bebde1bfdb495eb72e8fc31fc09336a5275aca5742b69c9" + }, + { /* i=7188 cDividendBits=1003 cDivisorBits=904 */ + "35774a947cddec7ded125e40b60932bf7cf7a9af2642768e87838682a655f052bd7375ba3ef2d26d250eca9b2807414453e0f9b61be45814f108c1381fab31428afd77cba003460ae21ad2f2d326adff06a4b23c0bcc0bcbe6923cfc9309b6e4829c512f5a6b7e83511a0e6b48e4bc4d9ef5235c949cce108635d4461a", + "be2ba25d92d8bec6b36cc09d336e7119f9b19e126aeae3096efd3fcc7b2eccd3ffa9a065ff6449faddee04d0455dfe68845d863246913249edbbe69c505a287e4f3bd6703d056e1465e1e0511d8a119764c7dc9d06727b3cd5ccdf8ab6f381a3f75ac8180dbe95ac219f6a4acb5fc96d33", + "47f94b87ba818df04435e907", + "59f99c60d916dd4925e307d7b1f85ccc30740261930f10f3de257a5ed31bc1a90d47219fa74d848e7a45325623c658d1fd0ad6dc103c5e17a8c35b535a4723f6eaf39e623034c4fc42a10ec51309b02a762b624c5e6fa3b37d4f54adb04671cc2d06aa6a549f55898a2e981e431b5fdeb5" + }, + { /* i=7189 cDividendBits=522 cDivisorBits=53 */ + "839a3c6a3ce5fc622da584d1f61fb3b20c19f2713671f7198b4bd165134018446ec0ce0ba615eeb649bd3c9d523958a57912a8b59ad1b4d47c042254642c6c9e69", + "0765a18f960537", + "11ca954dba05db9870282d09c7c98b2baeb224457b1b1c35780c29eba4ac323ccba0333f6061a429e4ae139063f11a58200241a6bbe57edc709731", + "041296a7922de2" + }, + { /* i=7190 cDividendBits=574 cDivisorBits=518 */ + "3d00d835bbfd7b11c7fe0822c327b74f706bc0047a2dcfa666a68dc2919172d5c8a7fcb72a98050a12dea66c141ae41eef7c02c9090e61a9c00eb7fb9ea24d4d0d9525d4d8bb4b47", + "1e2f0f20fe11ef42e7905416eb8e3a7baa05990d1f4afb844f2b919f301f13b69a39ef4a63d3eeca9b3a59dac04d779a08b01ecca25417430d0a76e95be9d2e140", + "020564244044c3dc", + "166f753b17017f0083c9ad1d9c4650c7b3b4211fa01cdf846a43236c3a87cbf2240bdab8085a4c3ee079a854053582e60cacc6676b5dfd4e0e5ce0166870edf847" + }, + { /* i=7191 cDividendBits=3308 cDivisorBits=395 */ + "07c13288288251d235d331e83eb8147a55078c75f405c5ad9627e40e257a45dbccb5e61a50e68498d39f9efb6b5d83f2f476d5314ca3a0df9de982de13175e9d553889174db0d76191aad310d52773bfdb79328fa73e478be869a3b9317461835433f6167f8e3f16ab814c2b0bd8a27370c9e80ede79341c53e1fe054abec7929bce5679f5a66ea7b2af2717c7a1c2840e3df26f442f8f4e3f39cf789100941ba08717a0ab6228cfcff0db93fd9d14d787b6edbae2664b27c5c6c638e33f1f2114ec09ab9c11731df141e1c4352d2abe25d986b5045cd079aa02538a7f6604d37698d92374183ea5506fc21e74202c36a7c20e080f2ede92fd764191868e098897f5fce7ca8324988e49d5078a41ea876d235435729a6aa0f82618b6b2830a36e8ffe81afe2aec2ea074b50ba04be43eb0a06bba67991bbd8ed6cb7773a6bdea7509173c451d6ce5a301f89cffabd4d7d39961780d2241f861cdfbcda1ed5d08c983774e6180cf7be3496bfd14cfde4c44d3770039bdbf761df998c2bfc6c572c617a3ec57638e20efab1b6b63231710dcf89328ace30f761ab3ee09e8ac", + "05073043896e34d33a661ee371327570a4d58c5d3d115bd1b50fe1c7e1700c2eabd5790d8c560334151f81e6ee504adfcbad", + "018ad277da01e26f4e328e7f338b9ede0cada0168505fc3f4e521b8f6f91678bb3a4edab0bb5d4e06adc624574b4f7c5cb199314d6da443b610ca291382894a993f96634773f14f765de663c46239fc530001e06595406eb9c132702695a343ab114545db886718a9ec382b9d0082397d0417646b98b33387eb8143df8e5b194d6bd85fbcaa4a56e9888a0a9ae60d3d2bf464e433ed67b2a35b0a91d95c42db738a2bcb881c632acf5e14a4c0d5acad75779ebd2caeac45665e3d4439e27fdb484feaac9c94abfd364ad8ac9f54f1a752ac392e3404ec5d6fbe87b4d980f44c8f80c075c2f8ec60c9af3e4d9ede59922f5ed6cf337fa203ba475cc9870452c1a7cb6e4c5cff4efddb28466023d801aa5aa8985c7eea9d3f51393bbe61f546253108bd0143e2556627503c1ad4f8ca96cc6c6a0dc19a94004ecddb9dc96947a79b110aa819c247e09992865f3876094a9c204de8f7589650e225e9e2fb6ea0ea69ff6f8fbf3d37b303f52c2b77e", + "03b14bc41c9733b55e61ecc79bdeee53c843e2185db9780eae399c478f7941e4034c9cc32206ab6941c4e43a6d405630fe86" + }, + { /* i=7192 cDividendBits=2063 cDivisorBits=920 */ + "38b22c5132bf30ef798eee4720c027f799b426930a4aea35745819b7674d6979d67851fcf327de3f92a23ef7558816385ae62dd8b3eb96a939dc7b0ad35084617276d2c630dad2de771991b7751193fb177864f18ed45e3d9bfbf1e049e0debd1f208850d1179ae56025019af0b8f140afad7c99fc7ce39e5ca9e32bd0b9c63ffcd1f1b8e93c33e0188514a2b59cba7359e90bea32dd2f5a6625a16797a29d564e85b08972e1accdcf8677a805838a530ebc0edb57632e560d48f090aefaf17749eef73ad9f3f2243b7c766a4609bc5e0541fe3b655494a6101e60dbe6392968c6cfcfcb8068856855c209c7ccbae565098e3b0045ea602defd17018a1c73f4bc6ef", + "55e6e8e54760a81c493421f44a3577754e69aaf9e7b26faf9657d216b542b2633d49da6256f776e617e3413bb9c622e7ea1748a9ed7bb941d17421a7320540c38e368dea49d8f7a4f7f76a3e1ec65f53b523b39f193ecf57696ca9eb8e6f555741a013c52151efd0768c3fc9410cd3a3085a2e", + "a8f6464ce08ceeaa23af0c979dc0645310444eefe8e803c5f5f6b257b99aaccfa3566c8a7c6bb2631967b12ff28d7c484cc598f6bf7696c318ecfaa9bc03638bae83123726786da2972996349ad61048885a69699b408d795674e22cb58addc22b346c31d99e8a5a6559666f59f95b76e57c2e18c9bd953fc8088ebf6070a3def21b2893ef3391122c90d127801849", + "449d285875cc1669e85566c6d3287de87e9fc0e15ff4f9b537726b29c475c8d169a370f5f584ffa0361b5b6ae5d23ecedf63dbc4c49df8859673bdb2a913f2ee4b7868ed2584c1f546c5c2bf4bb942887fa6506636517d2c24e1608c89a11c5f68530afb7737dd61df0ef6c33cd8ace075bfd1" + }, + { /* i=7193 cDividendBits=3029 cDivisorBits=1602 */ + "0d646d3e9cd06c85e05a9849f7c78565e5ecf7782e57d865465473c15cecfefd50e150c5ab931fd11cbf1ff9bb22e8f62a51c45621969a6cab78a206ee180d5eeb9192228d8b07175ff26a543b613a41856cdbdb45b2905a7cfe036547446338a420a2b5b655a8b4f6c30b3312ea1c455010b8a5f78514b05a8045d85c9a0ea112f929ddcc848015cc40757bb4c0aa8695719656b3708dbcbbf1aca745ddfc17625329a1f480a8f1d43b3f33c46cd38a8675f3a47f5b82bedba735ca759de1a0923ce2974008a298a77ecf038f5a1ef755aff928d07dd8bd5616cec18654849ac564527f1a470d66774cc963243543932c446f9cf5a75f816066362c9047afdcf97150b0b532af2bfefcad24cd5dc1f5e065ca5b4127224e0f3a6923506a749d3723ce959fcad8e4d0b027fdd6e89d764b3a6e93956a1392b6df3d04bbac9fdac1914a860dcb0df75a460ac71076ad2488a42d79f87d6129083f3be5ad48fa0460017e885844f23689b4da727eb064c96070a34afa213569b963cc", + "014d9b8bde51f16f878a3fdcd29050ecb1d1548814a7878b0b733540084de2c5da837e7841211bf1128c84ee13e575157e9b2f34c937032bb9d2e33512a4ae16ce5a5dfda1fb07de127b3cc521277cc1155c0209cb0ad779126e0088a778e916ce8cfc6ec6c66f809313a107dae4b0a2a3626cfc1107d0ef370846d49e4882c2501d09465c621f15c06131eccf6068f1b0048f017f84ce05f6104e6d17c3a2d57af355ceb6fc3edb1f5f208714143f7c4226e17baac776ce745e7386df14698e349206d6551d8765f1", + "0a46ddf5ddef0d90e77b02869a626494903c50d5e99f15a205d6e1c245611267a26980318be48531479bdf96ef63be400321b0fdf691e01f933766fc092bfd4a56db1bbdbfc3430552bbb7e8cf5e9c731c0c002d8e1acf2803e5cac2ae85bf6335ea73caf7b9a8d18f93e74f74903fa28fd7534b92092d8129db6a09e6abe85458ef7f32e8dd59a46522e24e0d60ac743c6fc95d83318d3f05aa9cccfdc8ca8b9ef4ba1d30dcd3c2876d557580e739c5609275", + "1e4d252db2a6dae71f40d9ea12e9b29163b6c09136725790c598ca2d35b64845b2dbf8ce26e170e7b4d27ca3cc1514b3dbeaf8b9f75775aa64f33ece101a9f42a1903fc054cf2189e2bc6ae97ce562df7e4288153364b23f5dd22bfc10062b157e6c474b233886d2765e45df96d53735d8d66378866e58883020467c2f34cade66bcec599688992b04d6c02c0426f7086ea9cf9ca65d1379885e12486a9606e857a7ca8a859f9d920128f707517e7e317a27c187c47da79b3162fccfe184cfecea57339603545aa7" + }, + { /* i=7194 cDividendBits=3063 cDivisorBits=405 */ + "69f8e406bdff91ae42a92d122c9961fd9cab8938e4e52d2ae06e2c5c2fb61c0f3a3307b558b66758d2c919c22ccb6b03ba4bc3416fe3c4c24e3c60c3db0ed3948df6b9f3fd55f73f137e4808d177ccf6c557b5315f22350aa99613f7802ff1cade985cbbe2e4c76ac3d4fceb88ef2975028e70dee5b1272294be3999720be9e112348f5c071dfd87383399c0ac3cdba9358e75da7983e1df95c301832c4392cb7fe7d849e3e96a035279b011e8c14c049fec598509ecc8211dfa3c4837fd6cd34efec646190f337782eab0bec959ed38727a813b17c084c660ab025907e12f9ec5eb5d1d2cc118e5a3592de7b8405b754a4a9b3317ade1f36a36d446970eee2cf8a7b92146529db5c1ed9b7a4e11740c773bb013e6a22b9de36418d02464c7d6cf239f9ed5bec23c7c6ef983f25396850136ac7db03a469977eb37e0fef215a3efe7b955507c40e6d8cd0654f674d849710f9ca9a9f7622f6ca3c84a3f449ee8e4487ab5b4d1d845ea549b86e667a2b1c451aa2fc840ef668cb08b7530a0ee", + "1ac499e23242c4692725d1ef86e4bda30d29e6d2c23fe7a5b0f59de24ec167d596bea0a1eda862c00ef68c88e00b047f05a246", + "03f57bb24ce635cc19dc3fbc49825ef7cd33d7c360673f300847b5efe428b9b5581f66931a850ad8c03b21f7f44c1e2602425bda3f25f000e70a9d83e2ea4ea0e96768445b11ce82f598d0b8ea1786d8317fec4ee647a70c80f7b66818998fa970692886a91dcac0fbd2d399f09824aafcbd779d2ccb937ad413ec5d4d5ee18acd6c89759fa38d64802e5b850c9461f1aedb464ae151e5ab3fff8643e2f672c7edabc4c3876fc731c06d4e0a474a1dbe660b0d30d77249debbf68a2509bdd722f9c7671be275cae1d62681a141e5df42cdf4757a08ec8dfa37a1ff348367daa074d5e76dab172111c97203ad8a537a2e4a2ccb51004b22fcc91f2df1456b087839876da865de33bb4532232ecde96db9ea596bd2232f1238772faa7def5a839ee0e517e561933239dbdbd67412560a967bcd5ccf9cf468a4fb6add760d45a226c5b02d8efe8dd1b39bd26659c6", + "08543b0498ad2fed5086ae5730f353a7f0b542bcc4b1ff70becffd83e800096b1e64b30cb460321e53ee61af6c2d2a2d86c8ca" + }, + { /* i=7195 cDividendBits=2642 cDivisorBits=2577 */ + "01f59d7324b801a17f02c69270fabb8aa375477dc59469b1741465af81b599d5c3529c68ea945eb96387ab2e580c6a14dbe0d37958a49d0914e58f88b5f2548d6b83b92ecc18cc5fc5e2bfd7406c71ef26e2c15899e22ae97580b2f046c0b72a2118de0670284d157c572f24a57dd44df8e61d2e30535a711ee844152091de96ef727eadc053f0e8bafa895ed615c96b5ed128719bfddb41f591ceb827609fb5a8fd4a13e4305d21b6cc961fc2e19cbd0a208b6237112d2a6075f37f7c1db6fac07ce9c45f2a8e3192a4ba6f9a95b3cf05b41302a6666d0570259d044b84fc3790ed7b80d2173f621171127c84fc66170873e624407e097c38e01d27d0cac1e13189f2ee1dac58c800c3ddeb4da76fe8a1d7ea1afc48d6d247e8c657eb8f29b7bf6c70f1d6b0c3e63f1e1271669867a2e28fd63e89cd131d01be85dac6d7e4ef25b41f662cc1b257567de5", + "913b5e1e323b985a0581186c76ccb3c8c2ba789121a3f9cbd56e7c68a09e2617a7bf372f03452244d5b9c44bab9fc19425001862dd7c102c1bf879aa53220cd822f50073d002f55bea54595208059911f58b8a321f292bb814d6629a20e3361f1ced930c65536ed02057e36c7edf92a641c79a81d551aa1e7ff520d08c1c194f35171765d7f055205230e79b72ad41f1b079b646c4af8de885fa6aa0d837334fe504616a1419395f2ef9150af8e6ba09dcb226dd462dd25778b30cf5a8f05518425b52e0e7b38c05d778c7470dcbcb982dcd5d5496769d3993945b5c0d9bf136f20e6384035534fd9437c89e76b3fd2383e23a0feee9c44e11b9e8a9d5511bde61fff9dcc0e397204b1c8854fba521ac2ed5be2ddec647a1c10eec7bd17da6f09aafee697043bb41dd6c2e3ed5acd103a65da64392e2a533f58c11e744437650aecf", + "0374322437e812f818", + "1d91b50598a71ad9315576eccaf08f193d40476b6f2ee5e2d79c354b26a451d043e051e44c45d05bcb25f111cd95e0c785204f6f04c1402bc434117e92ad120ada6d9fb5973f593c2925a62d39c372b17c134709f1151d3fd236382cd0224db812eabb48628c72a0f6ad3b0027700077fd2586a7587a2dc02bb192c4824cb8e8441dc53b3099bb4f1c41270fba057d6a92dd131fed186ae673c1eb5c488dfa1e59d9f536264db630b0b88b170d53cd364524af6c267a8bf8b1b8e218a07399ffc1a0bb433b0d2f9a36e79942698b415d27314133fd1127e1d341f825ab58a7c57cea31eb87e165ede8fd087b820a740fb4bc0b8b87ad8237e9aec53976fa91eb7fa99df0f77eb51c2091fa12a74b5c2038775886a3ce2d20e8c5cc16e893fd1d351d5f2fce7d67a32c1e1a7a9f73de5460d4a49f43ec404f46ff0a0ce63033df927d" + }, + { /* i=7196 cDividendBits=130 cDivisorBits=68 */ + "02ea37036c45db26adb89bca552108b23f", + "05aa7ecb6177eca7c7", + "83b3569a5bbabbf7", + "65645364e98e743e" + }, + { /* i=7197 cDividendBits=3697 cDivisorBits=3278 */ + "4a993c5028ee43a6492ef7297b33f5932f3b34d54401b73e12fe43c5e85be1ba4b1bf993c18efc46c3ee4bf988f261386365a6be296b17bb06f5bb5578a45ec6cf42cc3934817d4928263d36f3935843f853b39b35341c21ef250a374cb4d6751af311af55533cd5219a23c0c842910f61c2ece50ab17cf90f5d58864d0b20684967ef150b4f728e9be51ff3fb744b16f54261dc9b0d686d6acdb8d7abbb545c7e5d76fe05c0b335bee34e4f86918a244390ae643b4b4bd5f1dfb8938f38909f014ae87dae29682ee9a3bc7131a558a29fc3e20950f636c6d263b085b7af1140528bd1a34ebf67015d4250ea7b92c65286cd54f3bda01dc7a75abae26a20d53be452076103f6632c023b37d9a786b43494f5ec07b4ade54d79497c1fe3fe731c8cec18c8a4db4469e2eb64149f7756ab257bbaa54dc4014d64b8b48ff7012b79e1f903da5e5c5015d2cb3cfd4adf88d87fde27d16082978e2febe489aa2b7c9e62daa73dec0ea4e3c60296d5df52531c28f89e4b17170f70f5ce831855c68d95a43e1cbc7f8ffc0737fbef366629b8129c89099bc45d47951d2ebcd53b521849e2441eaa65e60d16f9f1fab13836db22b82b0d3b65a01f0c813c112f584967e034496dc4cd6dca57aa2972d2c924", + "2f6d227c86519fe099883a14b2705e56cfd24a7f49b05b8b6aaa3d8a6ec0a5880161abf49be08d6ab6c9d68e67f30cc629d2e5515b95bd0a61c0c0073a64c99d1a4dacf9b6e0d289bb5b513dd00d1a9ff30815f9f7405f96cd42ec363171d8373273488aa86e28486b06292ae6c20ef7046d6bed3ce4cc2a3cc223a3c71f27fdfce92ec667057554e7701850a07b6588d1bf9b7d02315a4ad77ddcbdcc04408aafed5db29cc4d3767f0fe847af3f7e5e64761d026fca340773db5b8fa211040709890f481f0cc97bf1c370ae05ec99e935e8c269db3d4eac6fc33e7f0b9824016c72d26ee994bf629001b81c96eb078958d31ea5eca9196a58ac9be028e3c070a85477b94866b1861fbfd1b9b9ed6e867acf8843e5fa68851b4fbca6c8da341b277bb10df5dfd73e2ce82cc35f1522e8704ee6b6688ae22c1df34ce953d98e28fcdfe1ed3e7be53ebcdb45a5662bf6ba3a88a3ea304e7f86c4ba21ead68fb0a990d56eb5c91335725e84dc7f928409d136fe25afca08e620567a9829ee5d21481ecbab2a8b7189aa8df5b733f4b55850f431c8812df2fd0664eb", + "0192abf9b47453ecbb940005cb292e2c8321b16ffdf77acf516b3edf0b6b075e2c661c1a3b65b303e859f8353aea3090d60121e8a5", + "1962d5800bebb2910c2a5ebb2c55fc9390d3221ad4d8b2a4296850f70fc9d3f5741bcb468fbde8a77e37c46ddb24c4aa61cb8be31a87d5539678df8a3281feef21714c147214dcdff0323c6d9a866222a70ea3865bbf10f3aca7c996b3e5d338bbb10f9fcb439eb60dc6f7a3468c5df05dfa404a09fae325f8c2b889f9ec4f6bf5c21a60a8b72b96227f8e4dce0589f711abd5d548bae37969f3ddd30dcfb3af6b4811462a20ad09c99e3da992af9bd9a1816bfb37df24ead01f239a30a2a161cc23e1d7d681488730af75fcd272da0768453e16b30e9829bb5ec13abe48bb9748980654fa248a472b26b2259eb7d548775179b12a25001382dcb15ce5da4fcd95e8f4db95d4078e4ad55c7426fb2666ea292d05c24bb2fdcdd36dde04cc8800f6b7716943336c1f740a8f76b3446ecb54042234f9f59bf5de6468752383e108635569f7a2451d677020be9bc372218a317a3768c6cf404d083fa6f91562f9bc63d599bbd5df7cd8d2a864af2ee97bbf76e876196a2828d3acf373a1f152dc11f463dbc2bd4601d0630c83d35cac5c6b0caac7f4a694a4f3c5ad" + }, + { /* i=7198 cDividendBits=94 cDivisorBits=70 */ + "257def85b37fcaca10c128da", + "0c924d36dbdf096b73", + "02fb77e7", + "094a0154a32e8dbf15" + }, + { /* i=7199 cDividendBits=3495 cDivisorBits=1356 */ + "38355291b49139538e4d9a6d272889b75233e74fcaed7cdc7eb7f72124ba6590a069a3aa52bdad8802b179940b5bb48da4856467da1eb4eaa33ece6f2b6e017bd1e6e7ad12c81df16dc1823f30485101fbbc7ad30bd057f2e5a90169974e9c1e1a6d3289296314b43393f4f2fa3d2c9c4ea73cd4e587a042103da4e76b11a1712fefa649feeab2f6cfd97196151629ee1aec3519f37a316a4ebacea26ccc393f5fe83aa3a52b4279a192f7dd4efc1996b1497f9a47fd0703699c3473f406c147374c0994ff9c20c455a1f8956edd88985e018ebdf2b43062ab39fdd3a575ddcd23acc9ab9370c1015f7fa473663368c027485570d77e8572d1b4a8f170da75781ddd9835e8d9227398871aa7b66ccc9c1ff655c966d9f6fbba93b2ff764d9c5a7817d235a27a1a4184c6ac8471e5c95610b664164a9f1b703a1296435e5bf2c0e276998d918a3e80b3098a4c3043f8bf0f0cfa2b7544f4dcdab242737e6267c5282d494b9e8c9720d112d59d91e3d4c896d36ab74f18953290a59d9d49a3750d59a7bfcc22ebec52302fa3ba9cadeb6b5b6caa3eff66cefc9d74d83ce3a5f4772317f90035614d84337bd436cb3e5a6f1ce51fe7b4", + "045ce4904aa1e6bec21cce9483a06cc6a6547d0e8d65f2012411f613acdf3393157b0134cbae070fddf7fdaf753bf0bcb87146184784c52b00239afaf1d0a8ac1d15bae24abe0ad9de53122284a3faa1ea7352fa2a7ecc4d1956328acc3864298ccf4178a255aa49cb4424c6327a7c418681d562ea6834e5a845719492e14b40088ef209eafa80c7a26574f5292be53a3af5a6743f437d3d08abff7c8113c4bb6c1f3e2eaf29ac2f9db2", + "0ce2234dd54ddccb4821ef211a73cf6d0d50f14497d035abf79903a42a3840de628c70c7ecb9b765fa8ea5d68b0780d455e88e504c5918d2da8350f58cc569c377666fb1cee720f32d4485d67b1891485ea458f687f4da4b02d8681c435df894f5297465bb8ea1b3ae716a60f664753c064cd831c35280712dfebbceb8f568d31f9eb57794b4bdb7c01d634a5acb5cdd9c29e2fc9e126b5836fe6daf5a9a6690d984db93c86d8540c4ecb02e3989eb051c4130e088b3e592438143a2c384b6d49dffdabeaa6c4886819b7e5756990e764cdc1b728a02b24f022c54951ba7c797046808066c42bbe2b201bb59b94ccadf980d1b8bfb17f67f81dabe901b030555896f10d11ce6794f619a0ceb", + "0221989b212bbc968548a7c2ba43797b96e791a050f936ffbaf3a8262badf109c5cdf69ec5c7aeecc22a093140b409ef2489e42e7552b89d4ebcc783d628ca1299202d3f3e481438cebea1d8d423b15c2eed9001e987605179d06fd5d35573dbc0d7e4dc2f5ca8c28d88266da3c7b4c246c40c8a9e22bd011ab65505cafd9ac07998ad2ae294cfee46c4f1e6cddd67fa46019051e5c6f2fdb0595d760c0fdaf9e02705d344764af1cd4e" + }, + { /* i=7200 cDividendBits=3292 cDivisorBits=2835 */ + "0cf55aa4e3a1327d313a898e07aa2cb85b47a4d89ff3f222d40ca14e29dee5b27a272ab5128fc2fb18b55e8c0c0c2398547fca525150f8fcd7cf5db05741b4b5114d6c9f552fcdc7b77a4f5f9e69d25100aac1055921cd134ecc27175aa5c11be8572a30fc36418b53d073e9fbafe650be8bc498ac4344ac1dda866846aa66d06932fd239c1e839e204a7a4805d59612210bf4ad43a46e18044a341620d83456f9d49467f4b2f724fec97059b54dcef5aff39e1215bac0c333f81249f6fa459d395a4cc7883257bff99879080afb9ae47285d4d062e0d58e3183150c2f7b192b11087a4ca2ad3c449773fbe665c9e07e81b0ea78645d9eb46e3eb308995ed2ac6b3e4c957312a0901b13544f10abaeeb33f28426aae875d728c9b07f5ec462f108651bfbeaa7c1fa93d359cd6fa65c429249101d5314766951db79560a4bf05a46bfb513b8565aa3289ae1e6d388723ac364c175c28106dc5aa51432e206cae505241c905584052c8bd30800d885e1e44d474135f7f1fd9c172073165eb1fa77b84bb2289cdb680ca10732280d9d944d215c827da0d0f31f1f5a8178", + "0314e85db9fe6d668ca076cccb6755506499dee52c1e891fa6be8df67b2595c29efd0a4ef74877453c8010da8392204a594fa0d45a894665f83fe9b81092a2a9e7322fa181d7a3b8472ccc6afe525d0e76eea79540e39f71701858dbcf903a34197568c3ad1d031a13105e66d45c5e0afc8aac37fe69bab35dbbbaeef8e1f3d3f348c16fecb5e9e06b1b2e00cae3e9277fbd5f85b0c337308faf946ea1fd4b85be8d150f615535688f08d6fda2287f806994625c8c1eba0f99665b125152826b9cd10b733f9f29fdc8a49c4407c4e1d24e8f57e1de234126408e6e25ab6a3541c0e954877be94731b9968a28e82a4a48f5143c2eaf943dc89e5157fb5c111f6eb8a095b9492793d4223e770b44dda18a3a40c4e66094045ee0bd22ce5462a706433d944111c3c15be4c7ec3c8c6670c2f6ebe8aaf01b16b2ea4552a47fe522f995d905e8332eef07e6add21b5a5ff9c26f4f8642e48e6bf79184809a9f8b2c7bdba240", + "04347aa78253baf5c59951a5b4bd1b0ead0bd563db2b85ac8141cba6bc5dab177bde72a0deac5ed7486928933f9b392a14a9b05703f31397c28f", + "0118ec94657b1fa9fcf879cbfcacf01d645acae2e13035ea040c4272eff4e801fc93b53a09149e9e7861b611a62dd5d5cebc3241ab300101716f8789f585989341753092489b7e3d759239c2cf4c72deb3c39c2e1729bf796f4db801e00390ffd8ed09aa6f03e04645c983e7c2d15335f48a8dad617f065e749ada58dfd64c6fc72520175e820d9b1c2acae2d8d5b905b4cfc0a0a6e8a22f6e38ca99e15ab33c4c774c1e6d9936cc3611b063c07561dc9627adb688729d06130546da88e4acc80f1b5b882f3a71ef9dd7a5c14df741a56dfb98a68f801fe82c6cccff8a9cff42b644467063fecf246e4391909db7ac94e9d50b3cd7b217ee6891830f3abd9540aad6bbd7e528406f478688acf5872d066fe4a36ebab0482a2e1f7f99ce59440ab44ba62a8dbc204969bdf7e13bdbfc88ef8061338f26c37193443985a167cbde4e54f2b420e0d85cd1a581196ed06ebac25ddfd4894cf98cd229edadaa61120af65fb8" + }, + { /* i=7201 cDividendBits=2539 cDivisorBits=2527 */ + "019aacc1fcae1d245746e84add64f4e650cbefbfac7c3e53e2c0dfc2bf25a36220922f7f84f0d7264b92519b8a0254497d1d7f03e5b862983876d9aafd7d2c7a17c0e41dcc571021df86e11698073c6e84972fd4fef70d6f4c0e001ce3a3b35eca845095a1211e8a92bab965261925ebc055a7142dde0dae2f1ad5a5c135d1bced205ef57fa8eafacaee91061b83cd796059f733cb4ade876a600e972588eb1c5489d1b3d79f1148a8175fa9b186432610780ae957a530e7e2e2117f548e6889c11f197a4b71bdc5dc7ccb73534f0ecf7e6cd50586fdda3247aeb39d9da9f2c80c8ae9d0f51f90caa4455955a14644e555b2928e78ca3db8d613e8d116f4427b26f2537aca9f8e4dd6b69ffec26351f726808843fdcf6d017bef100ca065f15cff90219b7a15f198b0b5bb2af45dacb07ea1c601cec5c3d9956445b3d411", + "11ba2d1e1733dba76132cb4fa4be1af44e5afd5e7ea67f0064061246986600a574c8dc8b9cbf0096141dd3307ce080624a1ed360c9e1f942572138238851137daab2db88e2fb81998ae58258c9365378ca5db38b7dc37cd97c9b5e3e5cdbf6e13dd8166583350b37227e7544fc1c78cb5076ccfe4a1a0f29c7ad0fe9c435aeb008f52316fa5a0d504b96e0ba4f3630989c7e1b0bd6325b2587cafc25160b879862a7f0be11821fe5513a7193e9286d05cdf809b5842286e80a5738f730bf1fa4adf6d3ebf85ea2759d150016336abfeb4b4adacc6de37d09274709abcea7d55a730477299cb25fc1aff55b747fcda18a02d1b2e74e109eac97bd9072f7a3d77f2f21dd0b46a12cbc23b68a23840d055dc1f844bfc35009874fa3dd7b9a9e04aaaa9e924b6645a89b664369800eba59c8bfd048fa18489ad087446e5f", + "172a", + "0a28e1a8a5e6441565b15a86d949f1ace80e9d9a819a03b3eb1f67df789727eefabacaf3f6c2b72456bd88d5abeb985490f785b3f6205dc0922c9669866c9accd10c7b7d3a39d0db78b93b625804f897915401c7db25462d9927d310b41a0d01c11ed5afd3d4c795b41cb6213a65aabfc72bb37d8e0af14f86d3243ace3c7370e096ad65c10264f79c147fd4f037b140f6154b1b341417048aa27278440964ac8b8544dd8111d22bcbdec54f60b8a802f75870fe691ee7e28911c69f3d56c47961f1536a7da6a41422ff510c080dde0ec115439462a3f1a6e01797e8f713eb5ea460ab37d4ec87af6fdd28add3a56ecd451456d3f0bd4c20fbbd0fd7e93d5ed88d10836d7cd798a35da2e7b27c58d8b1675b7bcd3104c39446442f3a6104e63be472b386e8051106e5a12408840cba7697475d8f42077306ee8f2f7b" + }, + { /* i=7202 cDividendBits=478 cDivisorBits=275 */ + "125028b5f7923bcb613d16e6c17f80a600d4af6d9ea1e8a27641021e908da3a153214d4b083dc22948b2595e64dc35d008f55a0c75ea27337fb666c9", + "b25f3537ffbee0727f13f1fe68aea55359b5c4f248e9be5474b35213af9ec19d93e8", + "1a487671fe7308d08d5cf70f25f05bbe57c0cc9ea46f55adfe74", + "0505f7fb7161f7db642ea548b9f5f62f65b3805131e87c84dbc148e923f86fc731a9" + }, + { /* i=7203 cDividendBits=3400 cDivisorBits=466 */ + "8aece8834b3d1b24ae9fcaac4a45daa106d26bb8a75080a2fe97f8181fa8c68170e9984a053cec5f1ac58f619350892f2e85655e6a78c2e33ec4eb1685f7359c1bc96dd266b4c1990cf46663464583c6ee76ef4c73a2ac98094b41ef9de05178dbec359995a4378881fd3d1a7fa3994f40658d85847191756163ed012dc4a0ad1df16bd5f6a8a69d8909844adebadd46b29f98a7a08d04f0e2091780bc588df0d61e2d608dfc8e994bd403e3a33f88fda00ae1aaf465bdd8f0af8b184501db1b9119341b0f13b71429826eeeccae1e33a5cdb91473b20d1c777749f7e3ef6a074af65adc900a5b17b6a5a7095ebeb14bd587c2071a8890f00781db273dff149cc7d0ddfa44c783ec7de7a640d4286dbdacbdda2653bc77a4409cc80881a806194d8f9bf40c4877e4e570f24b2a395328a4bbbb18b8d969d91a745a65a1300d387abdc5b4de6375c4793e8dd7004d8f3bb48eb2f919c2f45430facb668249f416c5a48a9509b73095d31bff3f571cb8c3f5e44392b58580a7bebd2808fb69e369823ffb50bf7cc8c8867128eb0add62efbe89dd5b2344abaaf9f5ed0405a30207a8f4ea1c2264eaf00e", + "03044b53f17f43d0e7b454e38c35f9adf94542365a9e2d0a510500e6110a5a0fb1875b8c20f43808af020260880098086e4f0a88198edb07ac2c88", + "2e0d0d20c1103688dcf75568e95512767ea370942d526208887b8c51a0130ccc22446c44746b53c1991d3b7a59f78b18e43bab42664692dfba978cf435f8d8d87cd51113d02a077abe004ca8f3941b16a3e796d6dd50d612b018dc2deb9982d09246fddd599cf98c177403ad1258f3937cd8433cf8a21084d664cfb0a539d6ed61bcd19c2967efa8b00aa6ee56c3ab590752a8d962863e15be8827e66ab0ccab26767cbc9ed64b4cd21d3135bbcb0912e7f44b5e4fd5011672ba8fe0c55e7b7e419291084db3016ec0cffc24a117672bcdd85318d90904f16380943a73287811e20466cdd21aa195cdbe3b6f654c50c0ad60ded29f7c92ef44c77e8331b2d0fad802d6adc2b5b3811e092d4b6096d36d07842ef20c8a8bc32578e07339278dac7133ff4b5d07e569cfce63c57287a9f0c353db7e402a44ddde78954c2f677050092393be8fa1bf9683e998a7b59585edee18088fdf957d4d4e3581cc0004d4689b662c6f91c268c93c80356a99b118", + "010a0ddc8f9c0f76fe4ca553b942739da7eaf7ffd919e284273e17b585a388cea255381cbbe761f2c46d613404ace6c89130658fe12eccb4b4bb4e" + }, + { /* i=7204 cDividendBits=3058 cDivisorBits=2023 */ + "0115d6ddc54f8901d917db91ad4df0dd499a6e65403dc808e3c7504e40f4cbdb02bea1d6828e63a5b109ac9592833524a1f90bda2de74f2ebf1c5a759659513ba8229d4cef3f4c2f698b19df62eaa46550249e47aaf08c8e3307fca45538aaecd709d951a9fd2cdf0526426fb88b6c06032b1cf01c917cb67728fbf2e7025fcb0ead447bc6a99254349c6f6bffe591cba555c32546e5ee281b78309be275bb462719b7568f75f22dde794ece642a49f264b62bed4bbe7f8cd831559bbe14d840fb81158b5da087c2aeac2e0d4c7d77e33b0e2b2f076acbf5ece05229239cd2b48d5877ae4a3ac7a1771178603c6c4706086b23c466eaa6cf49919d5b4259c56a0b243c82d8e8a6b4d22b465cd2c4c458e8c251753b739bb4030bb12e3d79f5f9e419e161d874744dfbe5d6ddcd7d1ad92208ac93b0ae104fb5b71be065628a5202710889bec2323eb249f31f88b706da9215496c65057f2865132da79f6cac3b7d842e87548b07002851ce41a665dd7e68342729230dbb7c5529977d93b95b", + "31029e940d6f7923be7b00c8a65a3cfe174f91af7688c4b26768f38a3565c29c0e45a61eac8588a75a951527026b91586f3afbcfe9826e1da48b1ce270f2268ed93a1860466fbe063c0352354f8f2abaf7cf147cd61859ca25ab94afbfe3fad2a31034bc6baea25480ad7531017ba3c1e8d997a856d820ec2167f378256779c2b47d344e405d358fe317e106e529bf4afe38a1613d1a24203ed6a946bdf681008ebe076ff50be7a39ed01b8840f16df878bc0582e703206a7c95600cf7d047309fcad3d1a93828b74b73fb9f080f733b66e15aa13441165e20322c29dd354e220445fc1cfea9e8d38e50a6561564cef2cdb3179f6ce9bbb9e18113c503", + "05ab440158e8a2b333c4bdfa935045714d994b40d760efa5b4bc80ecda1d79446925e6fbc2218cb5341ee5dc2138a683504c8ab1d2b0b818e31f8de320fe7eb6108883d0ea0d5cb3c16bd67d75c99a1f8008c1e53f61469f4395432d50f78d3f1a5c66b610e41d201fca6394a7c1439706eb285fab8a89546f5ab7cc10452497d906", + "12cdb686cd02374ee2531d436dcc161c74fd48d84fdf352b5965abd384637c922c8928cfbc17846e8b411e65a2572bf8db3036897fd8825df2f7b38aa4494c8116b9d316783fde465a838e149d0df1628037799002dd796ad3d4aecfbbfb4591f5ba4588701a91a1c6f7ab2431b13d43282e74fc0f671d1864bb65392e84f93f4cd5eb469764fc30ed0778f8e3571a7f55b9568298ee0c48760f1b536d7e11e290bda2b95ef909516f131d4135c8eec5f6b2d045dccb8402dc01fea5caf0566c4d9175db08dbd63e4f0f4a9992009d3d92faa229bd2cbbf5f127d42c90a17a4dfd9021ea2c8798873e9a189cea50fdb2f454cafbb25d2c73b814589049" + }, + { /* i=7205 cDividendBits=3624 cDivisorBits=2681 */ + "4b3400cd3a798b82813fd5154d76be2a28c179a2d70f37675d45d75dc762c056c272980b120d3c461e657e22eb5a25600fe1f65978875b547258ecf687725e26e18321461beeb94140ab5e0203040cdaa0d8ca213f7cc9a5fec1952516d47a1f29535d7caa88f9ba210330ad9c3863fd685ba26dbf8ad76e904be2d8827b0e7efc040bafb8ea6f2875c6f9b3c50767db8f44836cedf608f77246c6411026f3f949deaef931256bb4684a2bd08754ba9faf0c8daceb013a90108a3a90537ea0ad9d219110906dbdd578cc4999856f1bcebf43a78b853ed1d47e0933e64b48024a8c3401ad3e33e35df0846672dbdee95beeccd655541fde8f5b9d469ca2840f38c7c5ad269cf64e010ab2a59e37b594b469e746271eda26727880e65860cc20f12dddb443dab45d8c648bca4f8a3cc13f07fb18af3f096ba18f5a72d3613fdf179ec301eaea6e20bf43df441ab235c65c3a687079ec2ab5e0baa136a5628127f5e9cb5dac305b1ad7bba2965dcb6798a8468bb9c86ce6fa9ecb460d138db98bfaa09d6c44e451e5d1bf2723f04e4c1b754d78f1416587e51b3d791bbca098b11296eef07f1c83273ff4b542f9b68565c079e0cb848afb663dfd371d91d324fad4187b035f52", + "01aa78dd4417cfe70185e111dc53e03c1f6a5647a1a396eda55ff06bf527867bd7f8c7cee3112b59f8cc1c7a9ade7d881a7dee12b06a38511515469c685dc5f319587190718de7032d49a4c80f556983a466a1364fb2bc2fda743defcc46a82fa14801302a84614820846571e174fae6d1fecbbce39e076ec54d05eab72429df5a75bdc3b3fb939fe571d3cf051368dd98c120f51134df570dfeb122006f54aea62c8747b81e1475501281b34b4b6cdca870ebe755318f21d06749bacc1adc66d34fcb8737bc9771067dbd7113f45b175f9e62e9433fc71db4ad950f4e77c3ea19ed0a81273d87f1bb86edc6daeee30c36c14d449f7055dd634ffb1dd7de6a496db237e6d662421268d99e0e9313cf1ed303211366972739b1ee9fad6aa1a9e4957e6060d153772866ae6e779bb030db65cb7d411be8e6be5b0929f39ad81c87b4ce33b6713635b88d6ab4dd3fa8fe7b", + "2d247899f69179b1303d916cfc5aeebe3155e92a47645dd25a3b14829f71e5f1c649437de55a9a62462ced8282721d6c907b9d95eee4ed2ae63812a5dda4060e702d45fff7aa9c960ecf642f3b67837899e368e5e819dcff21c91bceb206bf2d47d503a05c49b2eb86ef6e23f959df29e0e475937aa2", + "0188c53923ed5bfff251d95312c576093a63af58adbf5edda6771d077bfa1e8239f8c751c2aecd22e7ec88cf38567a4cd0eb86fe62dc57b62f9b1a4d4c51bc3005d904fe27f047e5b37a3f137fdea7e08f144a719c7e9358e169d7c80a297c85c9ef85c2b7bdebb2d90f321542fbe0d52737b06e72cef1d62568c15c307f60d30b6af1ada4538234d90beeb1055c8645283967ec53134f5553e6fcce2ee7ba6f775b9d6ffe96abb02f8335926a3f4ded485df6b475af47a97d2cd033fac1d66ce1cc674bb58f9da397bb7b1ca1c21cfb51e9c9906d8d0f16bcf8a24c9845e9a83ffa35e2c76d830fece757a8e8c9977de6c895956ef5399f5304c0617b562cf1298130dec0f57e9767028882ca62ab8384d27e947dbcbe8602597d0caa7178b54bc64f4fe7e0bcb7644d41dc331770bcfde86fd3dd5bb0e918fa0645fae0f064d33a8009625576745c3ddfdb512ab77c" + }, + { /* i=7206 cDividendBits=959 cDivisorBits=407 */ + "0c32a0ea3900826ff2d1b210bfeba5f506734f4b074225107c330ae220087ba0d0c263d11309bebb2caed31ce992b86002cb1e0576546cd76eb026be228ea18c98672deaea8511bdc878f9041b660129c5ada06c0a5d019ec0a372931dc1be8f6dee92256c9506a077d86fabb06cb414dfbec476c7edacbd", + "55eb1407ba1b6aa4e5755d1a6b8617e74b0b996debcc4207ecd890540fc59c9e757a50963656c91ebd40d97f5a0f37625e482d", + "24581bae2d88d8b3df2813282b33cb2ad0cdcd95047479f7be11a9dca4b5103af4d873c6d1b3c361657735886f14693457c023f3411199598e1b07ccb6e98319e32b637636", + "07a5a490cee4992ace148c0929587e2665fba02d540140ce4da088eaf3522cdc6418ed7bc29adaa91f2c78fd1dc1f41a5eb53f" + }, + { /* i=7207 cDividendBits=1760 cDivisorBits=1723 */ + "52ea633c145febae4d57c5a637ac8ccf1f229a1ce0d2df3efbaaea764b0ebae3711d3d7e667fc844131b819afd47bf9a2185744c374456518bb2b16e0cf3d7f99aaf0e887a1dc5493641e6e1bd35f494db1b4cae5375d25ac5b1af772f1c2924b8d8965771379f59e6bedde19c97fe7e67baf619383f7f4db233507a294022e4f8922ae6386827debca64acd847dd6ac6540753dae9ff32f276b55be823dd378524b8803974593917e49f11b70b69e54d5c6f46b121a334ac3b532a2a781471ffab1a40328399a23e22014acf3651be661fe38de376b5d5a95bc7884", + "04aca104627e402961a5682c81ae4b1260086200ec9e252ec69e000d378acc7fe490502cea9a0682d86596cbcf8b3ac928ef3957bf981dd39cf38bc844e670d55c607f48be442622096b29d4abccb501918386f9418e72dd5c21d7d13a84d8bbec38272b64d81142e5a517200d000b6b935197148f89ae25b62ff8484526c545c6bb95af81b79116e6796ebf9d0dc0684f142d3cf6bd003f3e79c1d1f7a9d07c9e9132d05d1756d517203c805b75786977c4363476b63eb108b78f1ff61c479bf90819abd6e81cfaa2e1d51f8a5baf720b30e478129cca91", + "11bd0d7e08", + "03684289caa46807fea824188759a36e61161d2b23ebfe4ddf33599e684d6d7f6ad11c13a1efe5fc51107d40e6ea1b8dc68f577a85788cb3bf33c8a1a58121b24ac37b7e088f95bc280b193eb8606a21d066cc903c332641552dfe91135a448db32e4133e398522d7ad30b843176e82e132e27f2a99428174d40925aff8b2336e5005994c11ec6ff079829b5b01a309696eb72db90f843cc5341a230e1560e5993ddb5cbd4c95b3cf1162f703a08bdb562e1f1ede48aa3b3d41ff1550b404dcaf289052b98a1a9c4699a8f0f1579c5aa5130f94c7ec5c5fc" + }, + { /* i=7208 cDividendBits=1418 cDivisorBits=1036 */ + "02741fe67410c33f234b91940ea149aaad01e37578141f41eb0feba8c3e4887b62acbe8c26fc05e3b1e8e45e6f92ac985fe0dde5781f961db5fe9a3ef6fbffb00cbb2bd312f6ada3aa7a39e5c4a0bb1847290ae23038974cd00bc09f239eb1147ba84573b49828f20737788986a2ba416aedf854fd70db19d7a01d3b0974ace1bd8dc79a66f9223408bc40b159a7406c26a5b6404ec239269f1d9fc5e33c8a0b4e8cc665d48c7e780da9bf2f05c1bbd1fd15", + "0ebddc849e415a145c0b752d3404a70ca07554f7b0fcd87fb0a45c621b34f36dd8f7cd3d772a5ac7da0360727d4bb46c05f2218ed0243d717d3b9a2749c8e149409dd58fb296e2a84ae011e500255b645b847768d262d50d10bb5337e1aaa1eb8f53dc0c2512f87968efbdd0c6795cdfbe0c71a15f30390fd716190021348c5dffa7", + "2a9bddb26f8c61a995c85392ccc47d0a73ae3faed323d7a379630c283f317ed50a4b20617d34b88ce19364a9f6d6582d", + "041e88d6aafa534c716ec02e919db8daf30260687f0a95ab1a65ade9b5d94ff505122e2f850f14fea8a9bdb0250458fb3882951e6c55a2a07e3c1e20b4c5ad34c411a30f24bd17f10dbacb3a5689edb8a7bdec12fae12826def6715fa0689c079ff8ea3281b48cd4d4316739581ff533b3731b616d1761931ea6181f73c78fd0a4ba" + }, + { /* i=7209 cDividendBits=1915 cDivisorBits=249 */ + "04a939c324a2350cbbd6e6ae3d9f7453209640b7eeb52e1a77c132112ec42509eee6f2068ac378853e678a896b0048b302a0e218da5d318bb78af7d69953cd4439c7c568d4b7e8fb90eb8b3e1b3280767c2ce4785627884464ca9777f495dc8ad850e7adaf5650227f1ac1889ecc5dfa293f563969b6d6cd2f6ee3a164bcabddf06eeac7166540caf5f2cc1352f74bd9d4dcf61fc9b1c96edb447c4550515ebba544634f6e8cfe26c5aab993296f36dcfcd55a9a7a632b7a38a59018646d7b70b24310e08ef191d690c2a147fb991536f042efe04c386428f2bb7230c162cb7dafcf0d0b06ec18b26e44b19e30642708", + "0137ed618877b10fd9b932488dcabf68e695e93e29fe948a12bfebf2dcb56693", + "03d34903aa03edb6c48b8356a578deb162789f57b81dc05873bd72a010f0cc81c0d3c8d1240ac77b249461d451d5b53cf592788eca3435af1f827b98607cb12e7d0672b3f8bb675d460355ee3552ab778fc5f654ba0da7d70634767b4519f3ac67db76de8fadde03d3fdb605eb378e9ac262acc8842043e39fc0ebe9282656a2539e008f0550e0030eb0945b89196b63e121338e2a70e866bd848941e5f7859eece91137e3e8b5608a3fad001e7a765f5d824500ee9fc35fd660e4643444f4af43658cfabc1ccdafdd77041aeb45ffab90", + "d2f992acd23c66ad7c5ef73d28e05fa36ad31b23f2d6f73d11eb4d13694358" + }, + { /* i=7210 cDividendBits=867 cDivisorBits=190 */ + "050311c53683cc2801ca79a4ae59dd63fdb3162ff5792bab10dbbdd4b876669fc97db693d40167d12036672d0926f22e345e988aaebc96481dff822d1891d2d74f5eb67297d271f92419d91fd7dd259e73748bccd0d28bb62f063098c4bf9cbf6274ad38fe6b07b16fdd59e1d1", + "295b24f0ddcc3f50d9ca2f733cbfff6e75503ab75771f1ab", + "1f066409c23a3d97db18183cb71b5e630771aff32eec2a65b1f46867312de0099644404a53bbfda4ab9c5c65c412216d69abcf6eae61843056e3d2108d69dde32d2cb098ef05a793e67e8c90dad3447f2f37df5912", + "1cd89bc90e64dfc5661ed9a543d592d4063ff892d95d70cb" + }, + { /* i=7211 cDividendBits=2758 cDivisorBits=955 */ + "0e3f56c251c1b20e360ac1f9e760f540b045668e40e6d20c0e02040b5dd752f59051028a40748554be016c60fe5833d2313abf878e0b8d54b54cc068f7431b347db3225d89cd793ebb13cdaee841b52fd3eb347c200be4abfd8952edb6eba4d83dae3f263f11f72573bc33a48bbf593e779955f0e2414c1a3df2d9d8145dd3da96ccd3eb459fc466565218fe9cf7b696f55051a8f6ed3f2d6a5e9dfab1e5ae44d19b3d9a728824ddd0016926d3488462274276a360dac3cf108b7c55cb10a60c5fe1478148bacf797c9a52143b7634e5ead627e09c61e9f61df04f35ffa086b6ee6002a21b0fa0e9718df4f7c4b6c0487c074f155d816dcdd6b7403ff13a2c61f017a263f688ee0ac091a1af8fc0b4f9701fe928a4e99b8f17858b3a14406457e78a606ca85f95a0010e28e01653fed70dfd1814bc032578da7378d33d5fc84fb77441ea94c558a30d7029451602861c9d1f5fc4f6995967fb", + "01a44aa18b0751af9e4d72a446bcf36863244c73ecf3cf78d545951d18a225b33b6374e7cdb2e64bcefe137603f8704ba84c00e9f7ec0a4fb92c08dcb215145540e5fe068754e6f46ed605c10ea091c9e4c296bd737e3c3ab6108cdfe8fc2c084370bb00d8c5203fa8a1edcb42206557fbbfac17dcc5918e", + "08ad990d8625aa4bf65d450ebd25962d4702cfa5745f2f8f7fac685b718efde031610a9d90c0e74b347a13da53dd0b95179321e0861a12b826315b47bdb79c9f541d8a5849f626956558177c487a8b7c2432eb0bbef741bc5243ef78bcbd7a6d1aecd6b9137312cd4da3366848931af0c230a294946227320c2f5e03197d249cdd9bc380c52fed4dcc417689b7a64f446677cbcc10dd6470cfbfcb2227cda9cdb09297aab2d24e0ee44b4fc662b0b58a663dd0e47ee758be239403d0d1d2f8f7625b2e5fcb928601b3ea57305fba2bb2226b909c1312e876ac4e0f6c3898c3a487e0", + "eff7dd9f589ba732823057bfedececf02c397060a5e57acbbecb738d25eb62b1472bc779282657ff007e5d2a57bce1a9153936843f5d91c08b447c8ca58b03d0e9652b6fcd834440a2e594737f015bc26e453885af6ad6a063e098c85ab08b7bef23da108e0edbe0e51198eeb5e463506731e8d3c029bb" + }, + { /* i=7212 cDividendBits=1459 cDivisorBits=1391 */ + "03a3a6ec3601461c3170fff71aa44afe25ac4fc8e62638c760d905d0453528ea5f57939cddb0a653f303cc6c0561130da913125a10a08ce309d49206fc3e4cd36601c00c48383b04ec65ba10f28953f2de63f1781d22306ed5e969e8205d5f4610da16673dfbcc9b8547269407e060fdcc33defb2ce24c914b93717bfd27fafcca29c7e3182068b2f30b826d7a84ae8ee07310cb2ce48a4d5340e71e66e785e317daaa5dfcc2218aecd2f0c5c9e744c7e2aaa11cfd3864", + "2e37fff2866172aa9ea0bfe540aac871682fa3e6a38d8a651426d24415a99263f1b81505176c83bddaa0dd6bc5c35283785073bf598b65359506a79f3819903a8d45116854a6387f37221c48ba2aa40631de39b7bc41f8c3c4407786bd9191501d7961b89f332dad1e469e76774f8ea68a1a98c5887be304de7025aacc21083fb8f25ab16535f1eda136270c351997b2d606ea4484949fb8151532b4db163107fb25a8e1ac1f14134d307a0d31f2", + "14284e8617e755e64e", + "27187c6b619bc17433a36882127a068772f4a98c8606270b4338a6fcd8eea10a9db77cfe17fc114e1402a5e7c6b08e31ef19a62590059b26be896e9d5fa0e36d5e78ee27857c8ba40b46d0ca3f0c58f6f17b2e78d44823308ba0101da8838cf9c7ea889b36b496c761c6b418026fd30137612cedb2a19ab57554f9d74890ab5900a761feae33080ea5575f34b07f18af6ff1a5db07146f4c3fa27ac4252ee579dd76d5f1febb0c5d01031ebe94a8" + }, + { /* i=7213 cDividendBits=39 cDivisorBits=36 */ + "11f06b8c76", + "0be9b0b04a", + "01", + "0606badc2c" + }, + { /* i=7214 cDividendBits=56 cDivisorBits=30 */ + "c0a652f8ac2c59", + "0c3b6c08", + "0fbfdf17", + "0a427fa1" + }, + { /* i=7215 cDividendBits=3669 cDivisorBits=502 */ + "1cf3422838ca67ab9277faed59a819e71f3e89f2ada16dd66644d7b891354c5f0f0f7648b5325fc29ca4a3dd65701fb6e0a184bebdc099b8886ccdf7a12a4796bdb3fdd6f0a06b76ec5aaf9328c5faa04b51afbe7d60d4ed4d1b2adec0ffd92109f81ff335d0e91d6ace3a14c97ad3d14737efd03653615effa7bb666be6eda85f4afd2eac22ea7e0972c9eae252ce1e7ad4aa62c6b693c5dfd5456056b50bdc8e16ff53c297fcacd671c9e916373d594aef59933422c540f3e4399d355167583a61713ab5f8ac5262acca86d947220077fdb215eefa47db0f0faa64f71036c5418609c21fb8ecb373f0671e205efe9e0dee97cff523444141b4dd2b575dbe8c57969ae97c8ab96658041c20de53894afc204e96b97570f841f9ec2202194b155d641e1069fcbc2a09b46fe457170223f97ed09cc4f30e18878834b1759af011699442462582aee5abc47b81fc69adeae118d6b639887868ce9285310c2be03f9abf41bdc783213463ccb08086d67e30f9d1301c0d31a3dc5139c9d080d2062d74befe13cb057a8dcb510292a698cfaece59716ee16e8c2fb3b0fededf5c3134ce6f5615438e3474559eadf764d5aa6eea80c6a3313e1f3f7fe5e1ef5378015a4131b7c9f5ae9fd851b388", + "3835e7e9bd7f3f435e47f1b96dccf43754800d2984c06f9ccefbf85bf8b8d89de7f68d4e6f1a8f606c6108a640b63945492bc528544c1ddff2ee6eb2779e1d", + "83d91eeb8434c47086a669a7bce2c6037f9345d24dcf771cdab1dfaedebb14e8f43cb1a7114ab2376076b8dd581461108c6626dc5848fcbea05ac00b6cb9277f16bb810800ba7cc0661a55f137fe3c715ca1fdc1865cdba8b004c2f1f0e353d306b9db5739ee63bef0328f54b146d66a4d0880e91d1751e3f1d1cffd23d695562c59b9d0f45db342fa836aedb5138f4d84db432858caef6e38c14ac3513b3d5dca613b307fc50f91713c6d2b832b4156306ab700228bbe588cff8ac6e41f4921979bc95d86639a1c07b15475772590da09a654201908d251a4e11011fb7a0ca0c0a44cf1fce9c9da7119a92a2af6d5c8c92838a92c9752b6b7c58191f0a493956bd16e2290bed6fbae435c6927064d9311f8b43029497cfe518e3d875ce6894f58049c5da28f3bdcea0604f3897058714be1a0cab2de111f8839e6343d139616f400d5dad581b2d8c5bfaacd9d6431a424d53989434992051b72043d2496507fa9060730e372e2a0eff5024ce6df4c4d98300612a5d4687aab2fd59068c6e56b0f2024cd5c21a882fc59cc6c", + "30ea73f520e8d2d55989a3d2caec727acab3ebe0a17d2e80b314e61d9f6aa7238897a4d18dd5bf39c55a2117ea68734d059e3d6e4fdfb1ef10c3c0b7c6e34c" + }, + { /* i=7216 cDividendBits=158 cDivisorBits=65 */ + "23151600f812d8d8fb1d994c10bd7b2c8128bd5a", + "c025bff026b0b03a", + "2ebd97690c287c98feae9580", + "7a346732fed2de5a" + }, + { /* i=7217 cDividendBits=214 cDivisorBits=202 */ + "1f9422f23b83b29ea03daeb9d42c536503bdcda85c0875d6892dd9", + "3bd64202e3e55bbc78fdfb757895d02cfa5c22557a64bb5964", + "871a", + "1260010a99f2eb4b755357a713662725ca31cbcee8cf5e5db1" + }, + { /* i=7218 cDividendBits=745 cDivisorBits=460 */ + "bc07cbe8661c106ef1b569b40a3f7279cc296cc51018cb46aa40ef169fc8b39f2adfa05982a1ce4fe79cd66fe8597a37c9470482db020ccced96614d36d3879b14c254e8274330e4af5ff973bbec0307156188df51ab27277964bd804e", + "0b384ff9a2cf2677d4b8eec2023f69d9bb818afa0a3945dc4daac9d6132deeaa04d1a0b37e95b3e68e2f0a366d9b907661bdaf8c2481394836f6", + "10c230754b9e13f7f905f51acf91721c83fa69ffbfcfb3567638d564021c52d49476f9a8", + "044ce66c1d45733c66d471da8e25fcecd8a31f60a866a61331e098373346accd52c32b3e70405df26e1fa79bb29293c6b19b1eaf0b2d028028de" + }, + { /* i=7219 cDividendBits=1260 cDivisorBits=278 */ + "0b69c2258917ae1b9361e682da913533669ef423c1bb0ff7ecdef6733f8bdf210f4640e70895e91d22e4db298247831bb5d898c4f6b9ae445add95ed7ae1fa900fe04da3a243e41509c9be003ec777e819523239bc3bb9db9c2d7e7edda52a5b9dc0954f00fbcc8db21350a13cef02d8fd2d410e8b44664ed8e02b5014435fa4af40c4e550131dc9c47b717ae0f2e399be5b65c31a0c5d204caecd31af47", + "375060f93abe2561ec1583abf783f311067dd4587f89729cf0126eea86057706eef814", + "34d2432b28e1d29564fb7841a9cb419d607b576919c508634add2973e7328616c56a6849a72a8de62fb3aaef9dd958f5a60ab207238bfbca7d44065a457f6ee0a9dd16e4287aab21119682289b5a5fbb2e5c9ea3006146d9b7eb813a7c13a6bf0f96a7ce84a6d464f20eacc26be50c7432d3cdf3d380b754ea5360", + "2cf7d2323191cb1c471ef86c7689b955361b50356607c14a75c61c04ac92ab66de2bc7" + }, + { /* i=7220 cDividendBits=209 cDivisorBits=170 */ + "016a0a31ac010a3798013e535ac845127b28cf255cc9a20ce0d038", + "03f237affd56a92ad976cde29ec9141e954bbd3cdb2c", + "5bbeaa7d87", + "6b3bc0a6db6c51bc46031c1ce8faf55592578cc004" + }, + { /* i=7221 cDividendBits=1772 cDivisorBits=1729 */ + "01fb47852f0bc0c1accf7c50804151f39d539e7a065f9900ea16370281dca36f2ca6c066d1eafdb5192891034c5a5cc49af4e130273b199fd59f77d7d96767771db882dc1abb3df49df5a1dd2a296aaf25176eda30ca7f17540b158c2f22796e0e48bcd92ac9c1cc2dfa6a41a61c49ffeca7fbceb748481d5fdaa15efaec75520d0edd0cce43ceff47dfb5c6be10f762f514154f35e25ab7fe9adf6ec2b6e3493d8110c3cff9a91d4e8ad21d9c330b98229eb312bc45175908ca213c56e5c4057f4510045c84529e65d5b1852012039a580bc64d91c8f357f60b6bad55df", + "2122d32817dfd8b6e08df769a1909b328a51b567bd768c48f472963befbab2ca3a6b814540383f9a7eebbf092867095449a5ee7b0604dde2f36b6cd3644c64f1a207d0719f29af9e738eb8ac13c87ea67759dc293eb0377777024521cbbe0e2a147156b7d0687c075372410b0bf48c4e14efd44a21e64796da888651deafdaed402676753a036329f0c3a2b8639a308b01dc0e3fc921fd60de4411d9a9ac5bee606a40c3ce1691afc40fbcb493fadc88b753b1b097ed07257923a626fab8cbcc9269dc55921e547257ba92b78122fcf5c628050e1e396d28", + "0f4f1a469528", + "03407dd70615d6f8e4c1c1c82ad72e16e03dc71ab1e5c60daa4347b7e03056a8cc20a401bb204d48a5cb189008f3d8492b240ebb8fa1a5ba30dc951cc6049cf94806aeaa5d35561a778b86a4038a64fb7ca2c4749139e631366cbbd43044d494c7ad57a3ef31dd70d35e5a87f90268e4e41c77f1f8471fdfc8b6335cb4f3a3bc003d46be89b41d9f7d263132eb05b9fe8cd653a0f688d6ad17ef870fe8c5177b3cd8524d5ee885c1f28f8a59e746e4e07091789233c11c317fa7a5507123a80b064a5f1f80486a080f25497f9ba15c773019d41d5d3bff9f" + }, + { /* i=7222 cDividendBits=825 cDivisorBits=613 */ + "f1cd461d6601c6c8b54d5a743535394e7a8e298837787f304eb86b0026edfcc8253a36ff50d9d69e089bef3ca6995075ded50743159f5dbe04a942b4d91ac210974bc2288fe696e76a7582f9f1d7f5e7e83880d1dc7ba346f8f6400d5cc4fbcb77b4ff11b2ad24", + "0e5f2177443421ff6c38ccce9ce7bb6bf0ffe463874beb6db6597a439245c36f5c971f7c845a2f199e5ef009c623cc205ef69abae07bd861e7728e9de727ab5039e0679a2d71a5965805ee9e80", + "10d331688a9d43959ae79b4fb8274a68e27988a07f297f4db1055c", + "0cac9dee519094c05a055bb89b7384266479995f7925d872194f5259a20b3d99639be53a6fef97630f805926fec463549041918d7d47e7f91e4367e66b60651497c13ba0aa811df41730593724" + }, + { /* i=7223 cDividendBits=655 cDivisorBits=444 */ + "520e0f80d0ca02ced5de41555ebcfe868b81d97dc4ccbfb9e3e3d2403e6f64569a8c70309737b78423c8c4ec8ee3c91b01b15abfa8d499f34c41a1d8bf85f947732af8ca5e651521f975e7f628abe3321209", + "06ab860887eb504722ee4eeab43254854bdfe7bd9adb32d16d4d18890d25648c9defe02a10380b66d43fcefcde3d2a977b87a1e601e06433", + "0c4d53ed182445cc536fdf4cefc18f8708806d6e79c6475d783d29", + "0324b17a452c8882bbcbda470943940bf922b9c7cc8938957b2affb89b4cf8ed7556b79e72b4465a0d062e5b61b69d4d0253caa89f79dede" + }, + { /* i=7224 cDividendBits=3366 cDivisorBits=282 */ + "1e407ae6d07872e6a58feb40550a68d313f20f3a09f8e974a402c9c16197455fb8965b294a1a936fb4417bb227b4463de2905866f0fe75dc7f35e781ac321693ffb140d256109252ae06aa8bd33e3c51b74a918a633d9ccf87e9c85660b2a37100f6a2010cdb1c531eaf2b15a7e78f3be9d02196b3b7ee75f7e9c5b7be4ab0a299319b8177657bfa1b35fcb9f8f05cc1c58a9a0ff3db0e2094dde16f366ca2c2948b572251c178c5249618809336b6d091fe9d66068c11cc4a1b791d01e8dfe0e0f99e99bd2e01d1e292c4d75190f1e7d2eaab244482a1217fcb52f8f89ae4a788f0f24a87a0c8692d794b02c11b3eef9a690cfac9d74a0349ce5b82d0f3ea68b6138e1f401dd38194e398d07124bf75f4d2421f90e04ae33f0198ae5e9b9a8c06d30005147171cceab53a58b985c718eb06bb4e2fd144178c43a5991f7af0127ca293c2739f9c9cb7c322889fff54086f8207d29ba9ed2e8826aae554754ed98561959af44aa1774c74f172c1ce34d80362db3f35774acab102149678f451e850d029158289c28b136b4ec8a38be45241ce974ca7b703cff5875fb41bb671fa3d77e77103", + "0325504bcf22262b01f0dc8d1120f829daeae6627fbbe46186a6af8f907937e37967ecec", + "099de1b2cd49259e91cbdf3ef9c8c865bdad87af058d7ebe7dfb0dec5ec74e319ffdf0e134f615f9fa94cf6b7bc3c09246d6652e4ce63d36c5092ce20f67417fff5299d333b85fa259e4bed3a6d6e704220c5e25abf81848ead701265794f50065bc7251b701f6673ea67b00329d9488ba2a3b6ad266b7751f40d29f5c4d85d152472ae1331d84c1146b416c2746cf45cce8aa6dd8aba4b9ae443df301a1b1d1b6e851cbdc358c624c0f7f59afbf800c7829374cdbea37d9851a1bb8c51010e38f0d8bd901face7f6daea02fcc4b9e62edfe2348e4f96a4fb553a80a2f86d0b526c295b667e242cd7c7660f07981685f4d5374f1712a428e76845d5123ba80165fbf12e1ed968cb28c184c7a199c35782d38776e368b7f1b27b74b95b861d08eebcd8ebe0115efdf6a00818dd96f1491bb94fe7c620fcba69d1df14c87ec3b363b00f93d5f7abec4d2bf0bf3d291fa1b95335cce1bfe3add26fba9e0932e770c6492caf059e50c8b573c00d47389a01fc3e71267d525b294c2e62518dbda6d2f913a", + "01394e49163c39e4ff3a8feb095220562d46da4a5c191ca7830a2e1d98914a031dd6178b" + }, + { /* i=7225 cDividendBits=2703 cDivisorBits=516 */ + "094e5d1597753c3bb0dfb44992f238b3e30ef4b37a48f19a2b16a2db930aecf92d05d70a05fffb883a4cf4d333d359a97658eb836cd81898c5f04ac18a73c30f3320d6b8adb6e2d56f94599d4dabe84e9c9889e946125fcb32ba272840162c9a14b49fbdf5057b913d99e6d574307c1bc9535f7b09af8ea0402f78c486c1c74999ffa73c8e916377ea3074c9218a1ee2c53ea5536b10083e229167e73c6af7d744262675b0dfb1189942d489bc4b9659b573800d42d245c9259ee4d654708f9ee95e6bce025b27b69443bb11383b1168413ae732fbd9284e3a44eb1c7351db73b2d8d2b1ae16715ba474643032303e31786c8480d94170aea3e6909bdb0b94cc9195c244418c72e45a068970d37ab90a9650f657a9d363578396e8933513c04d0e5e497a82bbe532a605def8e6ded7bb32755d8a49b5f9499f9cb3a167eb9686a98b448be10dd8f6e8711f9d4a959cc7bf91", + "0e464d30947f15b1af654636dc7ff39e4704a9d4c8a9dcb16d5f03dcda5020f634440e8b783a283f44b19e57cd69c9ea98f8e538bbe9dfbf1087d31ceb18043b29", + "a6e526767ad1d4ddcba7b61d38f8a6d2792a6800f8280cc96bc8d7fcc3a8a71b5d5ae6a01ae730ccfd57cde4dd22be0ed4e6c3a9ccf009b1a2cb84f5aa9da61566348c605ceba2f4885aad98bbdb85e53f44c6a53678e93db183b016ad8ffe47a894bd84d01722b98fdb05ade9fa9ef9ef5faf322cc91227f8393777fba4ea3417dd8bb6685f346c630cc203cc79a958d390d840e24180d5ed8a00c1d495738c7bc2b9c0fcf70afc4c8dc9d5ed93ac6f2a2d1d6ad58dbcce9c69e7b2e62a5c557fe51a0d11e83ad6257d4e106a088436dd3b624063b268e635f57b06c1e5136908d4f4f5cab962e9c94513b0009ca4133e4a9ff1e995cb3704c145e7fcdc549066733631829b8fcba0dba90ba07801e0d6", + "08f30a43d4078e80968026f0666db9df4762f0d0255fa19ebfb500c0d3db1dd051b53a34866a24a7e9b295d87a3903727c93e87aa3aa9f1967396798ac62516b4b" + }, + { /* i=7226 cDividendBits=2195 cDivisorBits=2190 */ + "0709a0c37dfb5d4b25f8917e1acf09a05e09d214cb06524fb69c9f70302aeae159063a4b9a55db19c147da5cf92adf4de11030845bcf6cb8d333a85189c4a2a2ab76cf4dff4e390c760fee4de4cfbe431a9b616ee0977edc312daabb3d816e7cbe2f353c2c60a9f85cbe90ea517ef9481bc458d7a063f4e8c2fc97cbaad4e690e7354ee84f2322aaa07335ffca40757906f9d3d49bff54690f95ae450a61dc91c04d38b4fb18e39c2933f4d5377b60fbb7bae987ea87a8f13196d1df95b3d8c7e1d72d854f24ef9e0a9cd93eebf6e95bded8015bdef94ae8ed77c782b375ce8b20e47da30d90ebefd9705c6ebe16339fdc960ad396f1babc7d01165bff6f90eb6462669b2def208f0e5a6e2193fc0ad4ffc4cb", + "0279d13a9369610869708469cdfa9b10e000142b87f77f4b526017255003a0dbb383f3fa5569154293cafa48655ae75825ea92f1c24f7590538d1e3c2b367e1f1e78316273d38961ed645178ced1a8b4503015af66454977edbf1825d3d91e6ec49deee176c6070d4a06a40506d6e96ab8ef29c12e43a0e0921bcc9d6a8f43d9720cc0b175eb18dac10c82b47a30aeecfebb90b5710bed3894b6a3f4aa5168e7eabdfc3da4aa4a05271748a2b068700584473a446c67edd438fc5528e180fccaf9b3a2c41282ada506c370dd4574525e5df8878b5a82cc8df14e19c362d110d229dad6fa6a7c6fe97d3c8605f1338a036767f2c9e7e45381319a4cc70bb8b0abe7d50c22392ddc4963865f6233b2b2a657e6", + "02d7", + "01af96255b1abc428a0975a2dc5b4371e998cd2be677d0cfadbdb539f09d116e3a806fb1c86fb9af926d996155b8528d630937ccffc5dbf5ede774ab0ce2784bef7b0f68607de75ce80aefd17a582b0ae2d3d9c528bb389d03fd27d0e3d9102dd2b3d9e4144bf19f85b5200b12a86a089529440601e70b040fa5b8a1380ce2645317b059447f156638aed1434034b5ff932be157f675bd614302a93ab4aba724abb161ec794b678730d58f3482cadc0d14a30f9aac848b83c23c087d4e8ae376ba0a4a7e93d47e6467d3ba8bb99371e1fb386f20efd801d532fc58d5d617c64c080521e9298a1fc6c97bd3de1cd6b031edd858356851989923e652bd26133335046125fd8de3faa4b7d541b32b917e9c26a1" + }, + { /* i=7227 cDividendBits=4006 cDivisorBits=1461 */ + "3ceaf6ac60a6079e732e0b297509788d0b611243f393e68fc086852c5bad267e62a9b8fa327a64cb3a8118a566bebe93ba291e89032fdb036d15d91f22c5573ba040435e6088ec20c7f6e9702c6c1095ff6521d7bb18c297480d22be1317308d1088ced26243ba717782154cea90aef999358885b52c9fe2f58d44f4fecd9ed6d736fe8cef0eb3fa3720f6d73f8c55d9d13f3c414e9e9bfca3117d02558669d8fc528dab5951b571744a622d5f63314d50120e699253eaacb4da7a9f86b276823db8245495d243b085f25857c0d2221d9686708fc6c7ed595b5bd4d64a69a6b229ca3e4c80d9ee73c4b1747dc6554a743818ea9996d31e2b744731152358a23803a13a02d363cebc9f43df8af7adea204b1dc55898a0f8dc4c551347f9948caf862c00bf04525ecf4a354152903e4fc45b0d176960dfd513b82b6fa9cb1d810cce9d130bc938463a0d41d6986bd7c4ce0f32e1ef1d6b3b2eaf7665e4a88d5c203ed6fc6b87fc326c299dc53927f4c9e4b3a258709bb20ebacbb6790ab31e225a845e9ae24749cd12bb6d27fa23abaf568826b81cad7b7c5a4bcbc165cdc5590cbbc75e2faf367b9b3c49f87f8a13c79a6b0c27d44e57135a55e84666b45b46249cf1a527b0b6657b0de9929a59af276af97da0d0a0b2a08cc44ba84dfd2ee210c210f3c840f988d85f3db783324bd1d74c70efd53a", + "1147edb650ac4a43ad424c7c2cf901a2e42307816689b963a09014697c9fa207bcf41ced683f7560f6ace7bdfd193bcc931f9034245f2c58e078eea86b8dcb66b129037fb81b730cd82e1414d4eb0d731da9499cdd20cb72e718c931d275dfc122ddbced5deb5b9c6e1b5ae1ce2ddba6010b6a2bac3e42cf4996ed8d255328567b2cfd576a104cc28fac296aa9909b4354a04a3a271b6ce8a6e112c2553514cd683016df41900411c4b088bf0a6e3d61c0f2f758ead844", + "03866f842a1d568ef1af9c24c6f26e46bbedea0d8a68289fb7635a5b534ec4b52c8b9ec4f4425dc3e06674180eee855e7f3c8d081e289a4bf86eb509d778e5da92bfebebc70212d33101c19adbe89727fd92f69d86515ea734de04cf3ab0c22a17635585e8015727aff6ae8f49c2b9a1e6e37a81e68d4c658cd4eb1d92f6afacf58955d9c3cc740826624a525b66b17ea0c1dacb02b4c69b63537f518d9f8d4b3caff2a2fc8a93ecdf5bcb27cc342d25f612c2f636e83ae7a112f9c2f0e3c00bf1124b5901bc169c9aca422aac06afcf71eb318ae3edaa99e6fdf92165e5e0ccd1ad1794d542994d776b69170c9ba5c64f3ab8ec64743635067abc6620115381f989ab4d3b96107066a24e02844c4e8db644eab3212083716ae17c3cc984f56042d53a7751107374414c54e9f1fb27fed819efd8ff5929e8cc8d0412f5e9e3", + "076f555d8eca66626e4079030972ebe1af1aa5a00ddc9395cb17b003c968d588d655006eefd8cf4794af6abfd46d98827500dc4de47c9bbd6375b4a14ab99c2a7b96d8599bc7a8ebb8b31f881e0a178787f9cc4b0c4eb3f4369a085361257b92402d60dd52e7f7dd2a724db84beffc90b973996dc9259a76abce30239456e17f6f0380e4eab5f5be7a4bd977e8cc1246ef156ea959f97d8e2abfb6e4ddb8823ff68e4c77f3f88b173ed3594675c83162a5d50518c82cee" + }, + { /* i=7228 cDividendBits=518 cDivisorBits=295 */ + "2c0b1c6e347489f120b38620fc60408612921cc82363adceca0cbcc76b589c78dd39eaf9c9c60781a8bacb145fb2c5560f989951de1ef1fc895f411bb364da3dc1", + "596c882ddb97df9a91adf50d5bcb013a118a5250486710c127ce1b6fc4dae08cb3af7251ce", + "7e1605f2cbc351b3ece0c1687bf3d7da1d4e5b2c4ed998ba5b9ad821", + "55321d81010cccc8572d5c0c3d216737695a00dc8e5c93eca1c4ed3d6db8e26efbe22be233" + }, + { /* i=7229 cDividendBits=1848 cDivisorBits=220 */ + "30ff7c83c96a6f28d701c2fa7f017727a8c2ca3d4200d0d06512c85dc786a831377e162023f5eb958587b57883f754ab0be1af971a177de463c223b00ccdbbacdbf7612720dca65827d85651bed633d33b07feedc1509384dbb8cd45f02d6dd21972f50db4d1529987d76a2631dbd4f6ab40fe73bf253c9feccb5e1c2623a409d63c9b1d6a161369690fb96cd192d112aafab22c5f6a58b980b78a540800bcec24c921b3b6c2cbd1fccf1823ee7b3e8b2412e37ee4f4d1e64140f1cc925632eb46ac55a16b059d2f0260411711a3b2a78ae3373432ce950b5ae8873c7d780af84a77616c303bac", + "08ddd89c0385918157b55e9a7fa7b64bfab80d34c988ae4a27204091", + "0586b11438860fd3d5f3a9ead157620163643591e5d8aec08ac5b4b8b8274e613aed112f332e65944980e233c12ace4b7cebd2f6d2bf7cd3eff295ae56e6a7057f3c3862d00c4950c54e8a4159a076017c3a892953fd5f6b45c6aa3bd1bf4157fd4a9de102c1b4f4f49cec0ef6e7faeb558b1a98820f1554fe50d2dcb4eb775885e588745ed6229ac415b02410327ce3dc82b6c8680b62f57eb3e2b672be265aa9c4783d4cc9991a1c48c2b649768682ec376acdff5e93f14dfb44927d9d3946bba2f428a42608054dc1059b", + "03c9a443eb199ce5585bc40b43811e86cadae93354498026d0154ee1" + }, + { /* i=7230 cDividendBits=1211 cDivisorBits=554 */ + "06adb556c444b059895b010da98ea4672d9b72874935cfbbd3b6f2cec9aece677063094c1130bbf59b6a4c9fb1dff5c1650b1fb226abea7fd4de9231407e3521cf2f8ac19472783af7e002436c553678695c780b85f2041cb20af28fd833a6b353b1b58d8865f7b43063e3b19400b2ab7512886b35c6b6403ad394f739464a9cb3dd2ac81cbd5b6839e03331b0f3860809070f806b65b2f2", + "2a17dbd3dd3351f4fba6076cf63257417c3ddf957b2dbb2a527f5efdca726235acb16366edb2deb502e9ad96cd3b62302a23468037afff91453b4577b9dd2db2628c08a51a", + "289e019d7c6712372b0346650fb0d19debc0d851a8833947c42a5613ef17f6be4337a745465d9943d7d28d0d6c8f3ddea0e19c6f89754d9b1e98665bf2b56d2d76d93c7fc22ba9138135419112dd06bb3c53ab", + "1539a8fd4cab8ed913f4e2ac150987ea074dc3dd2fbef4f4fdd2f7d44171bf10102274e3c8f1fdca2e8c37ec900b547ceea5e2db44667c20a948d0c53b9ab8810963fffc94" + }, + { /* i=7231 cDividendBits=2901 cDivisorBits=2508 */ + "0e09f0df46a8b3e4e98a11eecfba9e516300ab95ecd34f81d017108ad910bd73331c42909a6173f94eefd61d77d578818e229271332695278516a4b06fb5b08063682bf7d7d3cf37f6bfa9e6bb15a960c32ae6dc9ae2fab67a5548a170c276043fc1eda963c47c2a0423f16deb1b15a2ee11f123d6cc310c7f0829c4c5fc975aeb4a3be94f0e3e4a8f474826f87ccacd9d1393b4a1e4eb3004eb916b8eb6d49c24defb066f4b9f6849249861b919faf944bebfad99375a9a2c0d30b20fbacef6fa0934fa3d2e4df01921e208ef100296ea6a938713f152dd81cdff06cdbc1d1f077e0d33114578d431c1bbded13cef2c41accd445f19238a40127ab58afafdb012f7fbabc9317655f72825fa82c63e803c06cbb52fadf14cb580cd446448c4f6aecd3b7467686dd2cd9a447a79e035434fa53f4e2108e9afb8ea9eb6e12585e1aef3dd19f121321a4309985cd1ed6e5ea22e266371ceb35375ad0bf9fa36806d1dba42663ced6012b19a1d", + "986acb830a7ec532bb4ab9914f936d244a1fad741bb2e0735b947c0ecef90d8734258b1cda9d002b8ded2834f67948fc75180225ae5912c109afda84386a406814f275f691accfbdeef3809dc03258fdcc2a7ff396716a6a70342a77b4cec975ef46e0c6d8023bf7fa9ead3072cf851d6a949ca25e3d6674aad8b12dbc19adabd03bfd9dee98c0127c59962def85a07bdb343690fe76155b63a9cbf13b07e87988a1375ab1d1d83cb93aa066e802bcc64a7712b2703a6cff80bd2cea50059121136349ab7ad982acb53750376288d3f2ca8582a2a9651095ca90e57bb71009f823e367c267fb821ad9527c87440484e9c7c96a7c5fa76d46f78d5a908472fa924af606b572c724a453ec0fe2ae4dd4bd7e273044f21f9cf7a264d49bfb83fc0435f499e981c30f9ee9e0da3aef99daa15fea3c9c7650f16c6a", + "179462d6ee210aae5d9ccfec41464c290a95532f61fc89e9b2a55b09a25d145b863b170bb64e8375e8c4e7c3b45b020c8160", + "0fc4499ece3540a465e647773122d31bb8610ecf29883b82656a8f111155d53cfcd859a358cc61cc5fd8b6d25c9930997bb4a4243096eb9afbe248cf96ccf3110cb8d33316cb2fc7ac770fb13affc513cc72f5e6d5b31d056167aab5b5c3d9187d79081f4e13352a31d12e6afc8ef5f8e8ab8a26bc5348e04a9f67ae3eb0b9074d78aa3e629d9077b67f69cbd5672d039ff7459ecd7a0ca3a63b303574f000ee6e5f0d750b104396cd2c9f02b1cca75711ffe4c2fce84aff6b916b9a8ae7f5992007eb1585fadc81896986d2b929205229e561ff939630a89f365fb3668d2934847ea956d5048f9d278291199544aec02e191a728a67b2c3b5abaa2258e9274d1cea6036f5a773e73486ae6272b117fb91d92a37ec401a21a2e02eb0c06ab3dd022a9a0ce824fe1f3b5e85986adf3b0c5801b2e260278f885d" + }, + { /* i=7232 cDividendBits=188 cDivisorBits=56 */ + "0208873cd0cc09ef1a22f2ba9854908d1115d22ad459407b", + "21525529389492", + "0f9f10388e7d5d0ac691ea97b82cb15c3b", + "191d222df88ad5" + }, + { /* i=7233 cDividendBits=3890 cDivisorBits=87 */ + "03c7f4d179f5a735eae3a39e86b12551c937aaea6cbd5f8d082b8bd951a19c4fabd04affc88d77360c28363e3855b6217e93f14620ef7c05132b27c506fe5b162f3b41be5165740ba6ede67111327ddf7e195ee167178ce425052f80cb8789fe771fc03fa8e180210b880fb8198c82253acebf3e8fac4d4745111cd9047486d95a956529528b294ac9f1ac6ab7a29ecde2d14ebcea47f72d3fb506f8935d875036a7965ad026f383fe4975a93453b8d9e15ccbeb654706d3e3ccee117734809eafba44888d28619e46425938c48b461559b5de5879c697193b7a858dde86c71a029e504394c1d16ffd16303d25db53d8dc64ca915b927d1ff9644b685934eebe0f9d337157ed222ff958411ceb2e1e3a1d13179e028abb41cbe7dc2847417324a147d03375c180b6c2a6c9e5f468f334cc38057d131975d5172b751fa8aab982ac872377358616cd0e8e5de31c2d48fb38fe6cb423d5a79b5204fad7e70709985829fc33aa88322bfc85987a76d4fd03e8412d61dd58063dbbc451ffcab908e3b96d7c0191662868294dc00acd6ca41395611476486034c0b26956a3f0ef162f49a61a06880d5fcbf4692c5126eacaa9148824154065e12439195c6a28d13c18069bf913b80d13f9c9bd2eb3a2cac46abf08c82aab2f79d2b3afb2b5188e02e300d21add1d90e0", + "094eaddf92620bd3ecb9c2", + "67ffce007a6dd1fbf7107564e552215d687974fa1aa16f9d1ec979715636d9e6aeff16bef747a4f0b6ce4d6de5a085c68db4ceea7fd443dbd0f662de9a744c4b365a5cfa46dcb98394ad9fcc8c466b48c9191477666912d3b395fc5fe472bdc59b04dbecc5c9fc52d2ef7e8165d2c0e918d8e4f513c8afa19090544fd0944879aeefef64b9ce89711c106c7a3495a6e1945605abbf3a258b56c323bdb5123736ed64ad20d6a9e4e6b92c6e3da2e2b9d2b43455d3d868e67eefbd6aa0c2c0a3337828f109e5140373aca492e6960e67a83044fc9c501039b7f1671e03e5fe9d01fef06ad00b9e117f26e99272bad64efeed920dc9460848f178bf3f691cb4a64e1cb758090518f63d5da0ec081dccfb7fefdc92d9ada355ef552f69622eb30dd90b007803a3268e5e67216420702ae94a593e346aefe707a300c2aeff0a864faf43b2d3c2de5ff083203b028c1e7d56e67bc4f27ccd7f61da5a0f3ebd743f257fddeca8a1d05f2858ddb693a0324fb79f905c5b1d438bd3e6af8e7edc471e645275398e2144a1b4748ae7b665ee4257be1211dacd5ef7f6f7858758d4d4f5c532b69cf4ec17b5154107a8800d3ae4a4b6cba716a8d6b5bb7e3e24b66236e1c6a7aade715c47a2477a75cf62744b6639a6e9ca060990b612db68f7def1", + "06eac0f12c115d07fe753e" + }, + { /* i=7234 cDividendBits=718 cDivisorBits=343 */ + "1434af0fc962fc12be14bf58c60da4074a51ba2325c8a91cd0cf2f2880c0f919afa3a09aa1849459d93cf64c12cc11fd7080a7e7c5e28202c23b9f2111820ca877f2c5a67fcc5ecdac2f6c69a77041faeac0e2be8967d459fa97", + "7948deaf293a3c314d2a93bbf51865006aef7ab9b4795d559c51bafbd20f6e32d2e2755e30864c063c36ff", + "2aa62ce8738514833f94eb4e482281aac66b61be0be093486734354b422f2edbaaa35e0b22187de358d3c10ee03c14", + "2052ea3bb853f99d6d3f7766da73581aa523b920f5fc0dd561768d0091126dc2387146233bd71029a1eaab" + }, + { /* i=7235 cDividendBits=2154 cDivisorBits=1992 */ + "01ad97a70d2a71e2222460f8e1ddf7a30ff2d14ce3beab9371e185206c1d2d3caa8f693351531ed273c7f9e422f0ff3a482890b516a66426cabfe2a30cd62e7200299cb5232de3f47f4feca7c92a591afa2f9d1c25e33502fc24bfd52d323c9bf1b02cc97b073fbc4a603649f83be320ef6c785193467790122c1707ea143c6c620ed737e95895b3da7b16aeadaaf311b52dc708fa760bc226fdc36cff238956ac80dc4afb175d031fa1f5251dd6e8116e553d13bec3828b6cbcd0c3f742eeb973396254e00b8c6c1d64060ba62ea22c9c587d98e7911f5b6584239223a9e239bcb3da2dbdc49e41e4dee9f2e1869df90bb1035d4900261e3c9cd3faf9883625fe0a618650ebe793ce0a63e64058", + "3c4e6e81bb96ba1d3d47bc57f613bc50e70d18954d99a1bc1935927a704f6d131133db2d79614c67a68b27258b6a8ae63176bf57b74bd192bdb702f20007c7e641a61392284f0f05cf8fb21ab322c127f64468ef98253d134eec78a8a38967876bf57570eb60c1a739452d12d9f04a36b8d90a974205bb0f0ca230f8509f6e74bd525e3d20767b2558125c70a07da10f5a65d176373357c4257191151629826be9d0428633f93f23b79e8deed09c55a3b67d85f039d82e79f3e0ecc883337be17fb94a8452d18a6921df7dd36717c7d0081a27e98b91ab94349d0fd8f3cb6d41c80a6607d3173437b0ca219f02243bcf687491c717d5859522", + "071f9da166d9c0b32017adf7c43e011a5d4e597b6c", + "25e85823ebec29c6e49e3b5a27d00bad4f269e07f6cb4a6e69de6c447a91d698daa2931f698b031bfce258d236136301d96c45cc478de6774b42db49e21728677f5ab687ca55157f381aabccbf2fea9a109297e121efb3b727ff4d8a48d55eb727b0c6f8f1d9723dcfc01275d5ef13d7229d4d868682a19eab7948f0d3f8324b7eb97e4cb11f1c4b4f9801ab3e9add74358a1600b6c9dbdcc9a9d1af5650672c28c6627d46c25da99b8e12c4bb68209cac4ce8c1e0baab51961287c84f2579fd8144fc526c26319467038a483f197b29b5ef6bce1db31a405a311add07fc2ab445b1a745e30ddc3b8027e134fb85aec47d4144cc29ec120000" + }, + { /* i=7236 cDividendBits=1267 cDivisorBits=1239 */ + "013880e70266ab8bb8f40d9bfd18bb45a28d4a350d5791106dd6657da1a14705d30eadf84f46fb86188b4023cc317d8651782f3d3ed7cf33b92845fad421a4a1f19ecc166e9389f51d765d74d7cd0de1543c96c3ad3bc999272898538f51c88c88747d7873b484312e02775eef5e6802af6f5df69d021aa1be7d39dcc273ef1522f2d1db792d6df5f0a7f78671815cded55a71c4360d1bc333b4919cd8aa5d", + "111928ffc31f5cef5c39a1b2c6ccd06e32d4d29c82c09735b529e1488988e616587343077d6f41971e93f42f725de2a11380dbe21f0ad877bb0d74952e663bb0f3540e11d22ef5ed94beea93fd305b1711fd156c40c2a871fe05b75e85b25efc5aa9557bac41d27326dd72ef39315dec1e7e03c7fdd1d52a0c64c4d104c325f0d6aed5203bc50b4e65025c5fd021e53c492ed389cb0ba45e4044fb", + "1246e2ad", + "0c8c9d56eec7ab4f0089df4bbc6e49dc3999c692ecc650f887f0c3f98a172c8ded57f3b18cfbc065699fb6e3da89707948a257cd8fd6320f2d1048b49257ccb8b0b3863aab3255e43b6d40ba0291f395a023593377e0449510545230ffaed2959fe0d6c00585649becd16fc12b733fc1a9fad60abb22941ce91d619954a091c981dcbfbcfdfa553c1a870efe567201bde2b42ba72370dcabe276be" + }, + { /* i=7237 cDividendBits=283 cDivisorBits=99 */ + "053eb2cea1cb6028da8fd57a9128c2c1663e5265b73911b6259ac52716b33697051b2466", + "062f1eeea9ea1ee8ad51636d5d", + "d91f4ddfe4443fa8cde512c2e0a593ef7040303fa1e5c8", + "0288bd586ec2b6fc7fd41c82be" + }, + { /* i=7238 cDividendBits=2149 cDivisorBits=489 */ + "1bd7d04acb670c0d29df2fdb2fd60715390a1b93651be41641644d1d337278dafaa7c98d9887caba81ac25494d9b8df60d3335ceed0ea318a349a360deb83da48f431d2a8ff78ac324ca2bf72e0fd31e3938f08429bc85dee7296175910ea97132189edde077875c30489cf287fdfa8fdfaedd3dc17f86d6ad126fba5bcae78725e9bde70003fbe9a8a8dbe37ff6df0b8fff862ca0a440d9e9c0a49faca88090ebe6540ab386c034e98f6f58d5c20656c7b1dfbb447e898dac504e9e2e4b01a1b2a36cf3c486e2aedd60d1af93ca5041b6a296f8406d95536656630293153d5b7323d3d52584c057602595c84dad95c23e80b3c6f85413f414f1870b9ce4e171435c2cbf727c34a7699e01a319", + "f69d57476424e11d0bdfea67f5ae3c3462db569b54447f67a90634142a2e58d022c5f09fecb3435fbebe4bbee8a7a068c752ce739666e15ef6c3c3126f", + "1ce7137c1a4df3e41f51598d4adb28ffd20eebdd2cedda818e53fcf1248e6c8d11c55dcbfede3de8e172a29b4345519f4fb14db9ff401edffd8b1ac53fdce5709e0a6ec500a44799e716e51d7722d47d8f4ed23afbea7849c00854804558cc9c491f009b9055fd72298a0de70fc9b48868c600900bc01cb501abb529dcc43001a03b0d827ea67484f733cce16dc4fa92881403ac1a224d11608990d8b2332f9e3a243e59162ecbd9c75e340241574c7711afd6f7bcdbee7f985204066ebd2f4343fc180920ba6b7b78979ce17ecf72a8", + "0688d53ae7ed99d1e6894982f1148749a01ccf02a49a9c10a2020226765af499b5dbbfd6e96160ae111ef5bd99869c581a4a9fcebf88fa4ceebe071c41" + }, + { /* i=7239 cDividendBits=99 cDivisorBits=79 */ + "0257c5675b9f05f882e9fe545d", + "3abcaf59499abcf63980", + "0a360c", + "09b1447fc7df52a25d" + }, + { /* i=7240 cDividendBits=3703 cDivisorBits=910 */ + "44ecb4df588bde8cce9ada2e5512d145f2264659399fcf64c182c4a612884ef33e0bc53f17a5d53f9097edb6d22f0b4ad4d570d668db17afa2ca792ec94e12fda4d69423b2e9319e4408cf5a2c7b66e1f7e56260ba952070818b1e9f187d5a0bb7f094e1bd18a3f174f9cd63979b333cef5559c52638741fa4a75c6fb9a01378430bb43c1fb29879398aaccac110abd8832458c688df59bcaa90cfa4373877a7668115665ed7a8e611abe45dc3348e139b2c066c16c30373f62e696d16647506e59b8983d487453684ad3966a2209ba208da7bc814ec0dbeb516d23f5c808823553b015da74bf1b68b9edabc5c36c01d02a11133ce6262327217abb44dee8e829c64970fd8fadbc5ef23706d0404b58fa0a172417063813207d76c1d40d4eb7a21476e31da9821b441a4ca049c6a8c00d4b2d2d0119de486e752b19d15832325aea11a6f52aa170a2fde5a920c31e70008cdf7ed9b1bd0f3eb634b8baf76d563594c2c4590e2ada65d691c1a6588ef8961ea16c2e3090e0701124b18bc5ed6474333b6da6a83472c31da2ffe426c67ad2b2c368b71f3b101635c892a0327a7d8c8a6b23e76af7308bcee338fe90fe54274a74e5e4c5c1ce2aca1b81cf45477740848d76a3b047204ef29dc390ad788", + "03fb6ee5f3adc1648ade61b53dbafea14305e2130db1409071de09a38356a59fe3dd07c24c3d95675da7e48d022799c40ab678363de8cdaa3081f07255a176634ea97ac1e464bba27f3aea123ddd40b37abd96253b587e46d240f37fac9abb37316f8a9f399180afa9c2e3193d792f6b3eaf", + "114ef0060f76f7cafb15af0fad42e603020da4c28111febbf6aefc27c029e6953a1453018d92ef3e649ef7bb8e99103666df3553fea1834d43c2b8ec69abf4bdfa385d5bf0d980cc306d1ea50dcf746c854a4e842ae2488b2c28cd6e64d71e4531421720b585b32098c1cbb8bbed9242fbfd9004e4880a7bd9972ba6a9dfe3ffd9faa5e6e9dc95178ec83da8b6f4206cbd751edb5b38ab14a42de9f7adb5cba8835982dd22accb3c41ae58c0c4178e1989a45c509e3035c4f45e5ad362401b52ba1114bb375929ae773c25f3a0dbbd9cad589eecda48b133de384e004641f4a3f7d1d3afd0eb3ee356e2bc46b9150b05cb54ce643944832e455c8a266ab4e29d3ae66f84c046b0b34514458b0b943a1ae86b069caa0a6ab26ba740f49e1e0824d543fe2b0def0abd136c73c6e2931dcd814a281d7369ebbb0f9b93e45dde309d75b1a2382003b7ce278cbbaa73afbeb8888e211ab05dd78048ae4b4cab94", + "022dd4250921ccc1739160f0104420dff5ddc3bbafcd51bd0ca24aaf9cb36d266b7931d492451ce862a3629791dc9b3ccc0c6621efbc3268f01cbbf40c72507bbbe6c45d18634c1726effbadb9c3e87467038fe8eb55388a3c3391232f293cd3ecb1e0e52ca15633270868635afa4b37b55c" + }, + { /* i=7241 cDividendBits=3884 cDivisorBits=3109 */ + "021e9f0a9a8a3d6e4788847962d99850245e6d62747656127b07020a9ef9bfcd115617394981aca25a2079b5800375155b5a13331da3986a629f896f04ae440236f7146be511e0152ec19b9ca40b10338052638292cd968419288a9cc73e1ee5b594feab050c2c1fd894f5b4bc92a17fbf643175b7becf635a54e33d182f8751126a955a213d4bbe97a97bd5adc8c614afc79ce86e6bf7402f587e19de426a61e5db0b458e475670dafbd68b20e261f8c794433f7128a96cdd16ce4ce43dabba7c5b290dabb8d286c92ec0284208d470b9bbf70ef5b34355bc8301bd8886fcdbf21950b45dea5c35f0f0f9e1cfe29eb2bf7251f1839d1278a3765b392521df142d1c791756ebad649bd05b0a308945a467282d16bd77c59a69db32c84fc8f27a503c7264d95954e77faa2f3e633e4153e42b68f748ce912e07198eb631f2cf8b1bb3334313aa7eb37436316ffb6991b7acb40e51aa783fdefbe76cafa5e17098d6f7a72fff6d879fd1b957b4d567a982146f0891c301fc403950ed4ba4d5a625f79efbd85a5274bb0d7ad57d559757312ea82d6a8f86acf3708e4ac06e338d81c3af271b51e1ddd70daf3f5b82b8d5a0eb5ca58781240d186a52468facf17d64d56a3a1e8878199f0968c928b6c5f574264b545d70ff520647f11e6d996f4aa0cab645c66b80", + "16e6d9cc94d6e637449797650bd7f8622f1f022bcc63b3de34fa4aad0d5045fff2ae49c0cfaf3e4ebc22f3666d10d89c148a9eb50e65a290a8a1a42710c620e27f5e6782aba185bb041fa2498b243a1ac37a51057e71cd9895f49d82674005a773ebd08a2f9f5223c62774d78b81d16a8381fcb0161f1a143b164f350c900054f40d37407991bc76ea14406b426100d02868276ef9b9abbd378bc866f2d4649a9335fce81342ce93c0d49fe00a60b233dc7312a3ded8d8185ae7212b1e090ce2e2bce260e8f1b1282c7b334ad6260c2196563d1be10d0c89aaaec6a73f4c0cab87c98db3971ad3abcbca7ed4d4946948b5c60026bd4f2d89e0d4420c53e84f1325976b7a0be44fb325fd4358809eb0e44eb3ee9a0a411e27449eaa5c22c580c11a807ba35042811869cd2edcddd206d9d81b819954669cbbe5c2bcf757622bf391f6c073261ddf5ffb39b7cd1b55b77b663503ffca739dff231d18e3a15926e552aec3da7ca0c1c213d5141b007c8f02e532262acbbdf1f324093331afa21922e8cd65d33f", + "17b184980f12ea3f1ff2463d28cece8d69becae924ed898935cd40c1fc6347ac0393554ee2987f52caba82e9ca27a8f7da055548da6fe424d71f1fbd920198fdf4ade722cc4652f7753dd4a62dc8fcebf141312f60e10b780aa4424e22de4e9ae2", + "15791a7bea5fc92d9df8f540c0e96ba014e81c8d7751c375d438f25ffe57a15ccf641c6f5f030dd1f195673dd2cbb5747daf17bd7a00ee5b483833d38e8f023641759f369a7e219d8200a53ddb218dbbac6ae76311859354b6ba5a49f18462f0979351ec341d22d88be315daac5f1eb7d8b0288ba4d56344b59ea31a1eaf5bb8699fd7d9e19dd561eb099a8fa5af278b6b84dd733ae6198d790a42a9494272da4cdbf891f7ec2d112260d1ba977bb56604f11983eba8e36368a2990d140a5de6c9205f233b28356a5c9e87f75007ee3c40013bab8edd02bc5629c3f80c0660a43bad48761eb8b5a1ff479441e32caf625df438adaf20d845e399a4b829180461be5e2f82b231df9e1f86a25f307746c41e6eabe169c69a2fda71a89c811be2bbafc0f9fc0dc31f3309cc3d72245f61bbb01645da9dbf11a2450312bcee2b9149cf2fcf8abbb57deefccaffeafb1afd7e2d76a2fd2de4990b36a69d0ea8d97354a597238f5f9a0cac8c2e667cec944640089c15f0a13c3e284f39fa5b656c41cb0cb19c07e2" + }, + { /* i=7242 cDividendBits=2107 cDivisorBits=14 */ + "070eaf7d9c11bb3f34fdc048c7994f8f2bfe9e19642e07bf4f686b39e607fed1e24b1df70c9ab187b4091e19f76af8a9404c1d35bce5518003fc9fb27d9d4e2d5227e4fddcf7ae85e1d95abe37dff26e67b069ad480eb25092f57e641b6fb36aeff0b79f468864f59c968ce1ab80c6b41d46cb59a6f17548753cfb1b79aa7070afbfdd50c208da544c6e73b5535a9e4d9ce65026cf04a2a50a21f3f433e52cc79c6ec441d26a18c2475b6dff95d649e3757e79956bb516bba5c4bf9273beb915d0a4bb700febf8fbe42cacfe4edbe09a2c4a5ae8f8bcab291dadbc0f0eee29788450f7b582665b1cad1a892e90c3e58ecd9265ef0365f98a98d749fcc6f470217e31777b5f698796", + "1677", + "506c3c412bec615c7fec1204b35c58d025afb37f739aacc5cb399c7651d1079b5288bed56d500f4cb2fefb0eb54de268cc9766c56a397d65892ce6b181317682b3356a9adcdd42024ed99e14342b050c5108aa74e574c633adcdfbd20955a9dcd4cf0ff2c230075f3ddabc8bee0d0787282478f93b3958bc9dcd20123c616a8d744f1d8be8b66eda67a61198f7421de56bb17beb1fad7fef5b902dc4f843296cdb21cc2d83024dd2a7f86ebb7c572748227997fd50ee2eb9589257cd3e2113e3b7bdea8c099d2239f709caf3f995a36b287aa1ce9f4d043081861f90221adce6c64ef472f3f3da48403689a9967f4a546125b34d8fa542933361cbf40612ca6d55c13652dbe0", + "1276" + }, + { /* i=7243 cDividendBits=750 cDivisorBits=387 */ + "30cd174a3443c3a3bde5ff5d62a6aabd587ddd2f12e82794b13ff217fc62339fc39fbcc1f77b17ed0163e80344f7dbd2c29dc206117967a21c890630bd0a6b005818f667769a9678a94365162b2a279d7f0f9d3d1ed96be5d105d53185d0", + "020ddca3ca0c3969a563ec8af4b57e4238fac3617243725ba9136abf7581a1154c0c80685e40c0ff3ca8ef673d50e9a943", + "17c1e27c08f1d8d14ff435ec380a6fee211abdc2ea10e9dee718bb9154ee53ab3edf87b6ebd8ea185f7b93fba7b5", + "01ad046b7f4eed92db2d08c16168fe482a2079a55db155aac4c30c3a19954c958b194849fdae98241bad582167c4e12471" + }, + { /* i=7244 cDividendBits=3344 cDivisorBits=3307 */ + "38fcf325af65feb6a48de0ca339c2ad3bd3d35f78b678b8a3d2e7c686450a2edce917f40b898fa81ad704ba3c0a9c32bb6ad9f1ccbb431bc2f6a35bf7b419e4e1d405d3eefc1d35bb5a709268fbdeb7fec97f4474fa5686e24448674ce12c5d71196fe2c5a89123debac674f276fc4352301559b7e539babff12e42d6f157e94f26060e2917854cdef4ec26ae590576d53cdbdca400df9da2a82b5618b8e1787e36c2f72f15df4943b03da86b126df7df611fd029f7747206c6a5a351c1a4cc7523215049296f33ae53414bfa45fe639d18bbfa8f985e1b24ca9132538ed9ea014f9da1bc06888764b56e86c920c60e6e91a89fc43cac929fe4d3f260671eb036cb10f8b25802b3d585a58ea51c5c9757d8b2aefd20aff65f874e7f56eb5a0510ea5b5dde5da56b0d12fdb77c4cedec0af59b38e88262e1b53bece9f8ba74ccb1919b84d7772d4abfbaaeeaaf6d588de6d3d566ce67ec914f06785505e621dc6ed2e8025734e68ab437cb7e60dce55081fca5af8a484cab12b0d188ef9f15fe789b96e910c7eb908c03b56f9aa19692f099ed34f61424c60fbf9cd69572efa4cafcd", + "0718a67ad5f77131f1baaa57b015cf007a13fb0babfc152dacf58ac16dc6e390b9241f0e5d630068880ac976298aa688c0b5358f848e860011219ad2c1a5c92abe0eb473ef5d5b1c28bc2614354290916f1e1406d790c4fda84ad226769294ff43266175d0eb4b5e4d6e4c609426730dcd9c0988a2327f1363331f38451c8d130a34cd4dd9d1ac608091b75013ee0c6ce91508d5733ebf0ec950460392e5e5009c507d71892337fbc7a8896462934d2a5c81d949df855611a7c4b56d7f3b6ecbb21f1c8b8db300bd348eb2d9522ea5006f487fc8f600d208a4c0536c9a7291f7420a4a58c1f9c30f2b98da9e1c18895144c0b07658bc967ea62d90c0c006f040270194752b2c9c481b7900c55cd6c4c6d5734d6d79b44eef8e20eca81ab9673eb73c939e3baf50df305095007c582f08093e21dd4695237db5cd87ce4d6a71a5f37fa6f9966d88e2bc2c73f250222651c19bfdff0c1aeeeadd22cf6cea71eb0411f00d9d9f3b2e23399a1bb738e626952e14dafbef30998c616799bfeecfe3c9be759ce6c98fd33883d2bef56a81ea7cfa47ca8695a3bc5905ecdd3dfc86", + "0807db1820", + "060b52f6f1d7d3ccdccbf406c5bc7723f4ce634d56358b9754ecb2920560249b503c23fc438b7963dcdff8114bd07ffbd52d8fc715760a90edc507252a7294f2c75c3b310d5bd32f09d45d89e753be308bbcbd34e8c48a04384acc77f6e4e5ca3cbf54a245f57fcc869dc7c6c91b33973407801ba5f3f41bd5d901311b5d5e54c683e98dee50772188acf929a0aebb6b25e29600bd17d6f645b2e55d2ae7a8e227919a00c53f8c4393078541c498e4b5ff63a3f7a0d75e9c857f6ceced480419ba2c296ff400cc6a2f276eed8790e860c4d008cc68f5346a6f5b30d757525366711d0db5fce2cbc291a73b3841bd2804a399dca5d24ea1c6e0d1c868454df6cb919396db3de8379f957cbec34eb6c1e54bc18b6955abb2ccb2132068923ce70bd6f7ac271feba203cf31f20f21d967b15352a2590ad731e1504d4b651286f129b1c999d6baa4bfe9f4dba44024450db16fd391272e96075eb670f52d386f684cc4faa70c943d4ac6e8748430e8dfb64d3acd0d9d7996c70cd95c1025dce9fe6061a582b5b6ea236007ef8a10b5656610c0f4fd862f21741c8ab6d23e8f0d" + }, + { /* i=7245 cDividendBits=2976 cDivisorBits=706 */ + "f020a9d72fc69461342897c6722487da0be1fbcc5bf8fcebc35d4771ef203ae1fbfddcadf7b6b2a7f3490618a5a3201750e5521363fd3bc04f7b55df059a5e6c64ecf97c7d9c332314a16d8cab29c201b4e783b88fb998ffa448b2c9d5ad5b9e21504feba6bd87c95b38742d9a6527cc5fb0b10164d787041d5ebd8f9ef656001f7e96eb140c0805750d3ea6d28b3227977d2a62a2f9bbf8fcceef0713461b71b6ffbdbac32bea63701d708d74a3ed518c8f013e1200ec4d45ed5da9ef4db934e552ca51331d3ea27f900e825ca8454d1d779e9ee119c4ee9b1c54c5e89c95eea501d8e1234bb51478cc67c621564253bc1fb362ae5dd63e56f29697ecd66ce959a140fc99eddb4db0dbd15056ecd4592485c68121c30cfdb7ee2da7332a7af15856741f12fc6ae7fecc020a50198540e42e92a4359eb3484331817fbf80236a27b6fd10cba658de001520e4dbe8286a9704a8d2d15d7f489002a2d2f79610b53031928b2c8e05b84c4a2fce3c688b9c97d4ba0c", + "01418a65f0dd920ee9c83d2cde0400894346c31c25f9391af6ab0ccb8a36e6d0102a22e33d4deb838fd55fd585ff01995668e1c821c7fe734ecbb3ccdcf738c07e212d65a06bfc2c314498960ceae8820e38338daa240f0678", + "bf2e801d6d80175ac5946ee442466b20c761b9bb53c9e6b344b2bd0f8653d00867d5d568344ce15c5383983bfa4f3864c7c8b073bf35364abb366bc0f8a0800df49d7c522f7e7b873d3ff9636bbbbbb85458d63216e1b7fa482cc9e284f12cdbdd08a1c1f1cd9c3202fbe8328d5529096a541ee5f85ce89a803580dd13a6a95dffc1ddf2c362686fdd23f589fe6db77cf6410c6dc6800a2711b452f959ee83400eaae06339e6d7632fc162dfff5f7c6a2094fa5b3b6042f929b57d87b389e1ffdd723eda5b45a39ba56be92271851e63d109658f42674b0f36f804d916f8a372a235b1e9e0e6dabb7ae47e9f41709df98073d80e35bd35e407e0c7141781aee7cfb28ef4ac461e6ea4f15ab0f3dd2e2d510a52aff048b0367bf1c84c", + "a76c8b02ebc2bcd9fcd82ca50a2569db1fb23dc2bb98b86ed47ab9497082e1c70996b4e4b3e1709dfb50f41c4d79d08d14a9e85947be1117789eed2d64676abcce7543918c20077bffc8fa75504fd913e890895d67590e6c" + }, + { /* i=7246 cDividendBits=664 cDivisorBits=447 */ + "e73bceea9283b73b49745a8d86c0b17b25d4661f64bdc4254067d4518b0403368640d499fe7afac4d1e4a8863605dfb18848c77cc3ab80517ea1d90e0ad30d83a7f9ee9aa2597a117fdae01a0c7e978ac0effa", + "728a655b3bd4b9e9dc4275c34a74dcce22e2ac7d82ac50c6cb2056d4af2cc09de40687603e876baf5152fd9c67edc87013c7322bb6918444", + "0204cf87b238ec3e04391545756fa70d4c690fe23496d53bc578bce6", + "354c01ac20683c22b72719634ebe9b1a150839253e69d1a5cd03a99220b0480a5770de51d44cfe3009326e0b2975b1896dd3b29453022ae2" + }, + { /* i=7247 cDividendBits=980 cDivisorBits=770 */ + "0b6d7bfec140a02e7da558346f58ee5a08e1fcfec7555fbff4b18630492f18d29d619214a50a9922316ff0ba368a7be9c28ec04962497d1ef99b71561177af911b9b9e28708d3a36d16e6b533d71bd84076b0ed30d15a2bb9550d378a86d98aab5afce1b8853616f0225202cace63be22faddca5d7cf0bfaf3ce29", + "0197c7574f7d58314bb781ba0e3f97d2a0451eff05a996d579c50fc8b20cc0b9f6f26b9505de555e8a0a182ef68e139a7764eb3d0b369035116ee11a899e53f91cf18f21a6f56a92028f0f6b4703c7963f4adb9557992b60b283eb6d40acef8c62", + "072c98248c2df14055a03f990b8d8f35030e578c4d89404c77727d", + "12e352bd1d7f16ab6b3acdd81ede5f7e6c5502e751444f2c416b6d4d8e138d5cfa4e3b96e2df24da9c85b9de6a1065ed784a8b1841c337d54f2b8a51cefa31fe6603127062de53bbbb943faf6a97a5bbad72138bd336be3c29579ded83ea9e4f" + }, + { /* i=7248 cDividendBits=3069 cDivisorBits=723 */ + "1eb84d15958a7cbb8f748f5d9c0dbc16f4333ce9299c98398e592cb9a45ecc6c29f9b2e6bed7037c429edafc43cf7add182b2f1c8bda6af03ab375381852dd58673aa3e23781a5eba3ebad63ea9278b15e83c7ba466e77c7c8d9c0656ae2af0103dac33a8bc61ac97b7e61bf56c4dfcbdf67641c58003f1f907f7d0de691385f25e02625192c01a9c88780672275097ecaddbe58abab56bed47cb25482261b6f9dc9130ef4527a1cc3a8271cadeb4efbe5cc9ef0a2ffa7a22d6637608185e79a8bf45b9c1a05e7e19b7a999e47db8da0026cc547d75f9eda501c1c4f479bd9c5212f8f74e953c26a23b8ad46ab7cd10829e47a6d3b810fcac89b434542e5302a95afe0f18b1582e3b5345f00abc78532cb93af33177cdc620f316ea26c6d7aa1c23ef460471ac5adac0b4b755da87dd901ae3255ffb231457a68c98bb7ae84757b59c092b560e1259876c0772d4d59beffa4e1c3f3c3311e82d9a74840f7c04681b30b2a50746c04f4b4fbaf6ee4e1da63bc8fe9f19198fccb90ccd630143c7b", + "07eef58f93fd9e4503b9b7341eb02da543a0f2424ace02e2d54c8a3051a8432706648f0700904dd8713a0be7b70b2194416184720743fefe557f9928a82ab45d3dbd7c75f105ff101d154e0a504f0536b7b559219650b2e6c55ff7", + "03df492bb55125853f70bda0cf635623b54c0e5aa9ea8b2c53df91a9c167c8a0c9da807bdd964c37acf7fa0f09c8e848874c040931938577462b52cac4f78abd82c15670377e90e4dcb5ed15737a576fc8b2aa1dc35fa9d156d8baa09c76e1655fb32a818c175caeb12c78fc207061fc8cd1c4f86cbb4e605cd9e39f4e3833ce7cc362980227d1d2affc3ccf6761547ce24044e410402d438bc21b4f5699a1e3e3ef5c843d9b8f09b7f4b1186175347fd5d5b9375208bba8fa9e0742b62c7abab295109742c89a9d99170b609157cf2008d038bc67e03914d3060253c149d4ff4d2a84df70c6864c60a8dad120ed9332b4f532c8e2d701809c0d9f106a69ee9300f411a49aca0b5cf3ac0218c0dde35bf4f629ba4fb9f88ab32a9e0fcb0a46386f1b1f50f5b0", + "013149e33697fa3a2181c64b63aa635864c8053d1192d8608ab0e16f77102246d0cf9296d60e8ef824546493cd5a8aabb66c6bb027550c71f4df04ea79b50eed1717a9b69ad923f54fca511d8cdf62296ec6d383aedea2bd5adfab" + }, + { /* i=7249 cDividendBits=1622 cDivisorBits=1153 */ + "2e5b9502a8898a5b7ba8757749dd29de2e95041cb9ca689c1d053b082b7416ac88900e6eb24f5cc8745d03c61192e4a7cd8ee4f3d4f40c8a5cca9ab1d9ae0359784285778a4a05d4d92d9911342a98daad637ecae8b4b193a2c77edc5b90774a38128b63099f7a733aed00b544645db8a5fe71aed3c37fb228145f68de32312209feaf7b8dcf79d3bb642cd931c8bb0e1b3694433e9acb5cba782e49e4e5978238a5ac759eab23a915cc9bfbff8f1dff1bee01af9021800ba1284804a270da884a4bf100cb6e44da5ff67d", + "553fd71e4f9cae5fa477602cbd0ee880b0690137eb52ff803d9917521411e3b43ea04d6db3d84c62c46ddfc7cd840d6ac0edd84d86eaae54852c8c83f0c8daab2a629f3bf56f328a210d1252eeded582d288d99ce4a5f594f661bfca80836eb273161c5d9a348200d5516d3412952debd45b134179c0fa780c1a5fa66f0185b39669e59e28d52e6fbd2214e1e8a5cd40", + "8b35cf2d2ca73bd0bd86a630ea10e78d959f6cb434a575c9842a116156a13995fa9c0aa53ca7981bf25785b7232f9f59d4a96411db680c62f3dc31", + "1e6d455b0eb12934e4fb71338f4f460d96899f5518687fffe33f42fc79db644344ed7ec4dbb859c9739e1fa4dc2af81e651c588d8fe95c889f30cc74f437cb17ce217eb4a17aa21a4d8fa5ed3ff0b9c504bd9628a21f3d1b7959a4fef33ffcefb8a94b09d45ecbd98ff16b134c2550d2e41e90c2f5f7a18f7d11a64fc754471e18ccbf80870f981a1cec5e248280ad3d" + }, + { /* i=7250 cDividendBits=88 cDivisorBits=35 */ + "5c72fe90084e75c97c5ce7", + "04c0a092cf", + "1373f4d4084b3d", + "d5bebc94" + }, + { /* i=7251 cDividendBits=1863 cDivisorBits=433 */ + "4a01926292623b6f1ac107f925623dd6d0048d8b861cbb232c21a48b56288f318be5f009bfaadf7981333115d69284013ed478aab4f7132e1848f652f18f2e617969b74e07a79e56347ffb7b43abd01668489455ed6f395954926b212445dc8181eaca02057fa2b46af94a1725b524def251e66c9e02f1cef4644553a2938681477e015cd0630a87b98d2e2175b2107d0af6fb6e90b7364ea5314f9cdbc6f041507bdc07d9711616e7087a04fd7cd476fab57c7489cdf23a1cab161810c4f3329560bed152767104aef9b94a57ddfd8ed5c597f2e1cdb2ed456189ef8b3993e0041694411c97077325", + "8b13f0c7fd54bba0cd59615f32f7f3a6d5d69d6f85238a77b77ae427f9f9500523cd5c17ff215acf723143b856c1daa443c66657b63b", + "88390593db43582db116a39b1097526bbb0771582fb327c07bdf820357f323523ea2706c3ee4f0d1041e0c4745decf18969e407a4670adc6b0ec17f51f2531c9854611de9c25a73dee963241816db0e58532806bc10afd7cbfdaab41e455e09df218195de41a5e6cb58ec02d0db18f52ade3d51c5c227302551e935834acf24d24b51d40eaafd1c3dd583a9cc7f9cb9f0809cb556943692617fa9d6ebb189c4c4ef39aa97e086d5d1c2c4ce040240d6aef67b7", + "7960d5ae99685248d965dca7811cc3141e659c325b91994ffa63a6a5bf06b400438fc1bbe08fbb8f29b1d08cceb0907490c594ed71f8" + }, + { /* i=7252 cDividendBits=172 cDivisorBits=59 */ + "096958797cb2b2310b72e52d083ff0957345d62e304d", + "10a80c1fc1eb44", + "90a64807a96294393293abcde3180b", + "067301397eb461" + }, + { /* i=7253 cDividendBits=3221 cDivisorBits=943 */ + "195a75d5736cf609f3b0503c7b20b263af772bdd20a8ce834dc4f0303ad88677c7b208dd0c47a993f7db3233ff8152b8abc95a320e4f73534d149f62c0d94012d54b77b654301fcc84915885c4976c26518432e9fa1b36116aff300f7ea09265804a856b3113d129bb4a8b1ee7c065aca3fa00ef877e69abbdb69f1be2010149de1bc3c4259e0770c6292992f2800a7ca42f08a6ce2b13040f1d03a5d0bf1fb39abad04af9311ca2e75b17b760ef673b4463b9a5fe4d7ce88d08415f2361cb362bffca47764708cdd2814a1b9d99f45929b1e39e1e8b053d8ff758ef1eb33923fae9761644375e148ca6e74b812ae5c16b28b3582851e3bf74d8b47da60aea7b84981469c15ab7cc0dc0447e13a294134a3027f526b703dffb8a65b262fa3dcc1ff0d9e7a84d6d9c4ee3f267eecd065385cabb7422953a7eb34e22365ee4251e19c54b6dc355ca1561c55db9f85a98ac168166dcf903da30f4bde20951842a3c39c54c870e04aa31aa1067d654aa113a21d753dd242040450ab67df52cb8ac7ecf7ec830c0ad58e93502215ece94519657182f", + "0ef7ebd48627cfb54bdddc503645dbeb841ecd4b9e189bb4b58b04dbe0a5268aba7faba98e26338f9af9ab93620bdc69ff620655e7ba0b2c9e95a4183ecd5e92aff20c3d157bca9546e146a604851ca421044aa73edfa47e4ca00d6f3ef243d9d26616de28b08181ab3466ae74611174e6be2f1e862d", + "01b19c0eeaa2632f0c6903c43ef5cc413db84576ec3d4a3c564c24eb8dce9183dc795ff048ee4fce035bffecad02adaf62eab69c8aaf16d33bc99df3eae6f2d9cfbf8da743cbccbad35d58fb3a04a926c8b811c95bd31eab9310150d709257aa9cc6150c333637397bf9337dc2d557da186019bc4259941204ab6c2258d89b0307654b020edcc8c3c346d2bfff857b455a3b93afd7cf22fbc3cb63981ecf846cd025a1e82f47ea0ee583f9b4b2420fd1c9acb0e31a7f83e2c4fd9b9ace524b143721d8bce0b2bc175fb746aa2374202db3fdc6f49f1d9b21d2ca740245b4c6ff79cdd1190eb00945f60a754459aefbde62fa6b01387f42204e05ae3af620bd005b0c28e078c5b7729fc47aa7768ad81598b74387af2dd4f5dcc49885ab1f", + "0a43ba4639ba1c692b4971bcb27f5c7855e34e317fdc9f1b54da89a8114e88d29e70fb906e93c114de10fd8b4a790592404d4e04b8d62233bdc0ead0bbd6c878975211edd035e5cd7b8f700fc467c0a1a632de5b32336b100276c2c155568af079b5bffb5f40507af06003e6c6a362fe98d610a3c9bc" + }, + { /* i=7254 cDividendBits=3056 cDivisorBits=1731 */ + "eded49d4ed15d5d97434a0b7d0f25ace17683b164a787c3a917c0fd32bcb71353fdcf8fc1ed6aec3b62ca8343086b7bf55a5c049a165666d4947ff7b4d10f8010497883c1deef383b3a51def57f4de7716f0922ffddbffc422405193a6d1de933c8237c91bf3dcabd5fe8bf80b4b62694213c6a9052cb6c815997ec4eaf74dfffbb2fbcba15758901faf8780e94444c8766642d9a599d3f039f704e8e892eb9f6768a37610e848f12212b1ac2d4592e67239ffa85b777f6eaf9a10765002d1092463d4ee3b14db0276bcc0dcc5174e36b58da424b65284c1eaf0df3a6a37640c0f14251064208d64cb76736085db2ed77950199689fff0a0254450113464dcbbdfc8db0ad2611c5433574eccc927da3e5a765a99cf304af17e0c80889e5ff3749c147a649dd8aa9221f9c1e96718ccaa1c7500adcc831d684a57abc7a6eccdf00a08df96a54e6e67e087469a86f1d959366a1d8a271399e02c654949ce63fec7b8e1f9fcda3f99a2639aa03baba30a1eb6aa2c983466e00a647a684a27d8", + "058e8cffb7cd68e5cdae8b8e28e4c2a65a9af6fd701f006ea0d132b8d7dbb10f7b9ecb39694b8945cb1c18aee201b24e43131b7dce54cf4e175af9637acf51bfa3c5b74b83dbf96413ebb4101ecafcbf214b6b3a529d58c62cdde0ac85ecc6aacd75302a44c861980a6fc4d03f765bc6be6bb044db86d95b43d2ac70db0b4cd58febf1d580a1ff0923197193feeaece3c6bf8cf6bc32bccda3d35bc77904daa23b67c479e012aa7b773c7596b7b9a1e5046353a9dd7155a83908c64c8402b7858f8ba2d3efdc6d988c4fdb649dc528f5c48f931e272a3b0da2", + "2ad123c5013c3093da6b23498c05a48132d5d15470c1a7b93653bddc72ecde221c48ad66d8faa550ea2099cf8c7cf06065b1aeb5c229df9ed912a5ec046e64cbca223055fdf0ae3d1809c002c23c70f3cf9f190bf667b28cf3fb5138efbc65672b3bec92cdab746070e97cf3ebb9f803f2ab951f10b534899dc6ee405b87aa01c9ff3b7b750ae75617bdd082ad9849b76dcf26e9b28a868c7368d9728b275ff3e0f6f9fb886c", + "021be4f4ed6bfc7d0bb0bd6a5de0eb835ac5332c610afb17f41d9928337abca695f04ff25e99cb0c09e46a33aa2846d72c9c63825597a3054d700093763c4f5d0c6874edb038ca983746565eb26649786cd6a42f6941ad73424791b4ce662c8ba7bab5cc0348dd3517ff33c4bb4bd1f21795a8f262c6638b55e2e8dddb5367beedb75da1a6ca7c1846a13de9472181a00195cb42bd9eb88ff5b97c73e1d2a1871b0224022d8b18552e6777bafd3da40c06699242cd640cddf305813f85bf983b2eb57c62b3956a5a39d8a83b3f583cf3402e082bb0484c5780" + }, + { /* i=7255 cDividendBits=450 cDivisorBits=79 */ + "02e1b9a6ef64a64add704eba60588cce9adfaf86ba37fb3bac95b7a1791ec70f2760351d4f01da5bfc5b97a49a54e6196b07ad5662e3287c3e", + "3a4d1be587f89afc4314", + "0ca7580211fa88d7034f92e5c9c25c6243bb536d977c3bd029e59cff0e30c25ff3593b2d027a41bbac8269df9386da", + "26ac25510311ecbee536" + }, + { /* i=7256 cDividendBits=420 cDivisorBits=126 */ + "0af26e68427a8761b720623aef1c47b3237244742fce5410ad5dbc9e3b359a40a3839df30ad43362e7e694a022e5f7248401eb52e0", + "0663ec296a90c31dbcc919750625d261", + "01b68b03c8496476e9595e09c8735ba53f9161d80948ff8c6b8bd1e4a16b451cd920c9ab32aa", + "01f0d135e09211fa62ca0f08d9ebac76" + }, + { /* i=7257 cDividendBits=54 cDivisorBits=19 */ + "1a33e02d698b6c", + "061a66", + "044b16fcc3", + "0307ba" + }, + { /* i=7258 cDividendBits=2978 cDivisorBits=1445 */ + "020e336cce9a4cbc163f9600c3e2a48b0c36b8f1fb16e0ade00d0c556e0459ab907ca047856970f525b8b0db011417d7c690194f570cc95834b416d25d64a109aaa76799dda47085d44c5609f497ccaf62cd243e43bf21997b38706ce6e1e00be4d9f505c6fbe43b36489bdcf846f9ea143fcb1deb0c1716b1eca1019dfa06c42ca3758ac5d959a3a3b045425b3a0565236e4ff2edf3ea67fa0fcdb4ea025e26a9fe5accb72e901612521ec815c8cf0c6c88cbb2cf992844668b1b77a280ae75b4cf4de8f79c74a9e600f10e6c388f7744b9b60fef48aeb3011af11f716eba6b6810c5848559c8fa8ddca3da9de8fa3752079ae3a3ca1e9fe2fb5e1395ba310cb150b2b927bfa372453fe0cc21b2a401649f71bde8ed754a156000399c2588c6b1dbaad4433851a6592a70826bfbd969c9c39bd7f9e520941bf8af5bc393b1f88bb4d7d44643fdd6290837630353e1f8ae867133d96102d373e3f16319bfca8c453496f907c4f3494ccd32dced5dc18beb5b8ec284", + "082794ce05ed390195678245da5ee4bdd3c7c510add3d49e58b17e36c890928ad87a5f4580623cb6434545ffb4f504b60564623219610c20d82f49946ff559b87e0e5d3ce37b21290edb532b7909a0f4c108f6a5ebc5339ceb14a39ab68bc4d78ca649523f2fbd2fca1d40e2ec35aa37e790f043211973e02b590ce721c2fe7700abc38593753999daecbb06e84d269db6214a84e9f026478065ba13e35714e3d3a2d3e84c5e77bc4d6033ebcaa0e92e287d48a5b5", + "40872a68bbd26f70637194a6e11a7d27e9019558341a4b900b8f8aa268c27c89d8f425e3b2609bf1b48a675aa552b185fe107ff8f07cf51cf155319b9e31ab9c2ec632a0448ba26d171080f4f18af0c4c34e38a39712661b23183ad4ef77922b22fb9fec87ec4278426912ccc9d9d361f50a99ec25b760574e87fce6a69dd37b51dd5b30ec1ea467fe473279787b4f4ede67a2e3124a5b8ef0ecea95dc010ed17f9c1639caaad2059e275c046a5e943841be7585ee35772e309695510801da4e", + "07c3eabbeac8e36151d90c42e8948545f04ea6e628bc65f3e6c780c41b15de962b6e5d224e1b3cb388a73bdacbf52663115a671232a4b791cbbc3d134e9ca215139ce7cecb5d6e801362d935d8a5ebf826726c73dbb04ec8a9bf255f19bd4e19c56b84b020113cd2a5831c4bde7f078a3548383bceeba82b0110feb34d59e61cf64c8d4e60df5a96463796c217ba740e4388bb6347e21c0898892a2d592e9af1d8e75cde9452381288e45a70eb5ed7772a049b235e" + }, + { /* i=7259 cDividendBits=2647 cDivisorBits=738 */ + "413812c38238b4df5f45740aa60b503fd6b2a16d7c0fb37200479e8890f175378df6ab12a12c4727b2759fd1b68b122b90d66cbedc3bf6a6aa4c88e82810306770c08d63634b5db34a510ef1a7466ea961dbf567a07ca2b0259c6d62b451617d4a55e3006f733cc6af26dfdbf1cb2efe2033493d7b2de9ff5a0be5b4d93c2c2de4db39963054979c117f7e79daceb0ca2dfb2fd236630ef28beb105450d65bb669f83091015930bcbb9e31a45964dfaf56874a6a8d87e82453ac737948661a8acb34b348f4278f99d506e71358805dd51c99e92ac1cc9f0e7394168a4043ae01d4ae7973f13a9229753f1abb684d34a1a130f3e7c16f23d73f0599fbfd2634b6f141be151ecb3c80beca27c8d8cd3ee597a304b9c127a8ff08347ef0c5bc48919971f56be69054f2f3d67a08177c90ab0f1c7d3c644604d1c240d6f39b241c90515a9838430c21679ae15a", + "029e1790263bb65aad57958eeb1c1b64afb346c950d0e26bd1e51d60ad74aeb300c657183d77f82730aca5d0251766de63bd2b8e6011967a51287994e7bac89efb0d5560b5ed682b31a96e7f08dc3eefe5b16e6e7e737b0ab7c2c1766f", + "18ea84d6b5b770011c8b5569d07f66f9388951dc5d6e3e3e1294ee734a02978298d0e1d332493d710dd13b8afa7d18da9643a08754b28f481b9a5f33fef9e407af185c0ee37e8d27ea394aabbc9f499cba991ab582ce7e36ed846dda496a1a4835e53010e24da93e98ea6db098cd71837b50efb6c9e7244081896960073ce952277fec558c97a8a5829cbcfb825adcc6c2a3b3e5f7ae836f8164a80e8b012440ab92f1e496363fb2dc711ed840f86087c7e59ae1254c1d23a2133b2ffb7caab6d25f0d540cf4dd2c97b1976b91e94f8a0a522d1026600b5d6fb45e27db179aca8e28ebe45f9d71a30401b902cda1bb", + "013891b0dc89b5687f563c7fbac79430a070d164d3facde87a532ce7844e08748b5654c194712d02c70ff82c05da72a37760c532bcdcd230319b47f632ca8f4b8ffdf5cfef50f6bcf3bfdd7752557ff22581f1a40070f7295ac3ea8f45" + }, + { /* i=7260 cDividendBits=2832 cDivisorBits=2634 */ + "6295d2de753cf05b154424c81ed3b44245d4d3f4f38ca741e8914c1241c589ba1ed37f670c6416996c7536cbf37825c11eea359253c6e3773f65ff6601dcc91a94910508a36f277e2612b4ebbf066ba22e6c51ff6fc7bc723952a05aceb2b22b80cd74ee28b2e579177f9544b2e43b5b8e989edbc6a27bafb44728ffab16adbdd12cd20aa2e4309d550e0e1aa9aa1df9d8c00a6c3a3294a19a5bcd014ce299f6c1da36168b04fea81f831e772be59ac3ceb04a0cbdcfcd30aca09af4752b1253b428581e43ac2784332f56ada8fc370b26b43c50cb802ef9506625a02e781d5d61b160475600fea0995991fc7f4bc3120b885bcee9a2d42c9c39e588628c61434daa618794539994665d7e1188be25881a5632a1c05b34c469ba2455d0385b927cea6a7c8a9b36a61648b88d343a468edf2e4d2ab90f7056400e69e3ce6c7758295eb4d9841e2004d1bcc317b0059573fdaf049c15dfa6cf85563ecfb1b73e4a6777", + "025b0d911c776a6b5f2f14add12c9f5263774c76f76b424e02acc9a0ff0f9689357b89c8e4ac11fe83157548bc1c809e4443ab44e7cdacc1b570348ca39c720aa7e1655572dd937216e2697eecca05a7f08f1bf6a7ab470beb07dfe560027ab679c3fb591e6b486af6f4411b722ba040fa52f73753e780621dd9d071eb929bb4a54bfd235ec2075dd69c50ac6404a016f8d57cc8ca5ba48d4d95a6f5f3cf5cc1bc76392cbe3227bcf42932814cc002764e71ab4197cf4dd23ee8978df12f468d32c104ca041639611b09359c350c9e0fe27cbd639bd8dd3296cbbb1f76176a34356375a1c1674b99e4cdd33150ac7d17cd6ed90897c623e60b28db0d4b05c43740a7127fc9e6087e2fb93a447b4a5e3737b9ce62e139926ab49ab6f91e4b32c124aeea8e63eb8c0d344b5157a8ebc234827a80fa713b3956dd3feb46cb658a730bad2f9cfa90530bd218", + "29d99fab46615c856e374eeec3ecb02675f1b8857806daf0fc", + "ef7ec2352d1175d689835588311990c3dfe8241630a0f3589f7a5f0304866b65ab43faf4a8379875391d81fe6a2d422628f7c37a7f6cd14402d777f96c0c4d14ecff52ec35b7b9132462e24374c6f841b43537a13e7979fa125f1fe3baae0c00aea963e0a6a78960ead50e5de5b930e6bfa453d49ce818277d81b464e27a0ed1d198101b521c5e9f6a404c8fdeba4d5d084a2dae2be8239a06a19465d9611e661df1efd419b1e65d2d378723135fb0e772ee1b71ed0e6357e7978958cab6245a04ecbbb3b6b879adc132bd3c9780a98ccdaf031325f27009c7f37a851850f9724520a7f272ac0f82412a75b0f8deea379d06ee786ba54547d05483fb7c9057c2cdbd45c4123760084372d6e7b3c675cbc8116f9086786a37b86b5a98f758f8800e4b1010cfb6ccc8b8afeb4bb8ddcf646326a05003eef13c9b92df59e066429b9fc997cb8cf14117d7" + }, + { /* i=7261 cDividendBits=2209 cDivisorBits=1604 */ + "6857bc41f204b8a5c1dbbd7ff3f7d305ff161ef3f46803acbcae97a526b92c542958e4e3c53d3e6bac658f81b4f6d66c30c564d0dbfff74cbd0fcb315c0a1d9045439c8a84e5cde4a2db9afdfa298e7cd3fc813b26e0857bd8170c88c1dbf57dc1b036166bb72d83c1461b984c3b192bddacae6538f829eec77dd7d89fa6732177e2611833d97e80f6a28ddbd8b17151250b7955faa6f74e49f07fed2fc1969d03ed985fa9082fa017cb1a977706dacd9cd8dd3b606f3f49473544bddef74d20fc4c4c136f5356425d7b65b1f06efd559845d6f4eceeb3045af96094eb7b4a36add34714d380e2d733f60d9262a21e06a436e85c83db48db5504dc9787cec55e99e905adf09a1e06e781ed889bda604e11ad336a", + "0ffa8b99d82e077443b79ff55f8a0d1e98198e1bf8b1796ca86b24e1d8d6bfe39bd2212d1988149d21db0d5ca3edbbcfae302bbe3f73ac93e1c463235f8520e7a927b83700ef086480f2f0164a62fb250a6f9dbceecd398a263a242e1b4cc997cd1c2eb65d8c9615a7d34b98e6556970eb7f3d53b2c6b3c0a97db46ae0a28541a07c1783a96561074f0b842e3eb828810581d92e858a36c4370459f061bdc6ca8a3b024099dcb9e122cb41ea675364b4fdf33ac092695821e80b2873242351382ba037e2ddf316b6e8", + "0687b5ae7c3ed94d0a3becd3e365773684c4712c8b1d786bd10c195d028f10f1ba1bc423c280c570e31c8fdf76c17a2169a93a8b9a12367093872e5bacc6bdb2f926bf0bd4e0ef1da283cec0", + "03bbfba88763218ed3a98d8db8a12d8516220f6a6851ef533a8616e8b972169ff9dbee2da8b8a9935fe874d8ac680be8297adf1cec81d7b8f7ced4b8187a3332016a01c727e79a283b053d992d2de03d6bffef8944a260b0a1baabd67793f9d366ce696ea2787d8d692d873ed71057373d82891e6184e53718f8f0f39b3259a2aceff157d5d150282b7196ffec12da938d78c9bdd0d3f2af4ac8699d706a9080ded4aad026a96bd288e8418d3718f42948c67f82d77a71ee5ddbf4ab9be027f75304a48b9510bd556a" + }, + { /* i=7262 cDividendBits=3204 cDivisorBits=1252 */ + "014e2b5f128b8a6441d9cc2b7ee0c7c230cfdddfbf5aba0ac87fc674f98e85ecac1612d0032c41a7cab8c6121cd0c28d4f064998e2ba706337c05dc8dc9a24d8e61b6a192cd06ee30fa208ca79871ca6152cd008d3d53b2c12c8b3c8e070deca460989bad1c471ccf8e852de2c4de5f8fab50a51f86de333fdca18acd2aa322ced7094416b41900463a288653da69db64ba3d1b3972a9a5727f484a86478f5742ed00da763296ed0af46008fe81ed3b815598718163af0e706adcab510a8406176a017038527cd47b3bc6881bcb9b7d18ebc358d647b1cbee3fb725ce88d31aff7989c89d3c79ffb5caa3225a7e14946e0bc939d65228422d9c06b9f964144663f720d2f21f44d2153f8760da30dfd286097517b6b86db975424c1eba551c2ad6e8ab2af5d62dfd5b7baaafb38ad1b7b6750009df4cd197336b1b5d3bca3824b8786b829c3151e1ca4a14ddb5dfb656cf8bbfe3eba247e8a4b2b86a095514b90e220ef678537f8572eb733a5d83e22846b10475bd66a697d9b419d69dfc57380a7c3e6a24ebd388c3a7d9b0c9d893639e4", + "09680dacc36dfc043b415908c95a6b31deb687ae4e1ab9e658a2c019d1c4d16710c2863e9702456568b847a3ab6a65379d2f9a8605f9acc736352d9084b79778438118cc938225c326f95a1d5da339bd996d9def3e188388c6d3063cdd42d26f0ee3a26f7652ee394e1cedde293555f2198e8b427a583cc318f4f0e7e9b80ed3738a4a9ca643dc0d40d946549dd4daa0ee0f62b127cdc3fb9c6406f6d4", + "2386891097b1875e2cf02efd36ba572e217fa3c04befcd0f499026f27dbef0538b2c84bb594e545e90fb8254287656eb4f812299238fc1e1006be3650dd8ecd3ef2d1a9ad00c0b932f3d067ed6e253c015659ed1d8391840e94413e4f90b63d92b3e800b53ad1c8df571269e1eb79e4da3f7b4869171f58cecdd7afa2b6fa1b8783fbe8ff5105efff649dddc6e104dde858ca14d0f22437085f285c73ffdd4d67a8094cb73829a74cff917fb3dddf8d99c920040be7f57aa833d89c82a67940f83e632fbdd6ffc39f434bb42b8f13809c21edb8f10aa5a62c3b2c154cf4b5b813ec699aea87f4491265edffd48cd4241c50b0a6c", + "065b260a5e4016e2cbabf076710305ac255cdea0576fdd1d6754d2670a0787252c702212acdeaf16b591e2dc18e003597d2a602eabcf0f29a343915bb031e5e6f3c7b97a287b82e6f8834d6b4444afdec47cfe576926588f84d7349d599bc3ab82c78863847d70029f15c0ff50d1484b9005c949ccb75a58438672caa51ce9b57ead5559c0db8a1ec771a1d2af2704ece1e2e0ba58653bcea95185d074" + }, + { /* i=7263 cDividendBits=2580 cDivisorBits=1632 */ + "01e67196cb41fa35937f9c7ca59c5940a7066f6e640976f4e8607f4cd09446259be79cedee4f94555749fa7976be34819029317b2a6597193ca2c504566572dc7d24d099f9b1ad5006cdc317c6e017822d9c0c7b6b7775e3dc08b95a96b815f7c15479cc75817f40a9412c7cc29148be88e406b674efb89e7b2395c8828a67e4d6bfa1bad094691ccb8af81c682ed5a8d97fcc70f11287daeb33c05433161c3e313fb380e60bb735936a80b31a3b2f82fac9dff08a280625a25112b3dce7555bf5cc07c12ac36c506320ad94996ba672036c73e9686119832624a5dad6b13de36fb10c465d20127f1fcce2ae5285f11ad1b42fbe3b9a518e4bd93d1194523d18473a6242df070a9ab95279b6034e117a5868193cf61b6c77ca6a0ac39df80ab7e8e1c7f665483c5ddb0555db124b1657bc5cf763ea406b57d06a3b223b40bab40e8c97", + "78c03a6e5dc6b3feeebf023a82bceed64a6be9d356093d64f37558cea70a7ac9412f92498a99c90b352dfcef4d174208d67c53f0365765dbd5d68565aa7423331b8d1c70a5561510b40687185aa06c058ed26bb49116d4c1e766f35230fbadd967db6a32db465fbf2a64b4a3f76a55ab8fa38f60317dddb1cd87713f78aae4f020afd8abbead8d840980ec785545b9305f8c4b141e542ee57f376ae96e8318c6b64c80ec6e25c062107a7e3f947eb16ea6e13248bc0896d7473513ea69154287ace9396c9d0570fccc6d20f9", + "04074b17a62ecdf3e1653b2aa9377607624df2fa1d015e0956b1ed216fc1292459c66208a2f286335b8ec66883770c84c636ca1b45d1c8e4f0f6315b3a1a56e250be7dee1af54e10622d019366e2ab12108a67b8b157bf7349c466737840f866e692538c9ea7a14c9bf33f601c4b47d8d5a181990d7731", + "5448b7fef4d9ff860570e39da56dd2cfc93edc7cd02b44e8a4ddb650a67f4e637e967211498de88a4b0dfc21b3641b3e774341359f22facd3d8529ef4e0c49a30520cc3fd2b08ea4c1984cdabbcae6af18c90a75bc24f15eeed4846983f82ef8b95818bc19ee781f251e459acf158fea311d99c4b2d786513e5882ae54145f9111221b2db157398766e72599773b0b1d02a5fadb4547e901c5f3eb552b328065242af619fc0916ebb0cd94fdb6f76771d4f2b880d2a72dbff0d8f8fc9e5ba5fc805687048dc04c985b327dee" + }, + { /* i=7264 cDividendBits=1168 cDivisorBits=816 */ + "539b8558ed1d44679d53dbaf130d9edb7d05e352f02ad7a3db545735d3728339eb1726fa13133a000d430820f4312f5ce76f05cf6297ba6e2e95b400436be11d7504c030781a6c441746938993512524fcdd0df99d77a6055e18a376521d0c4691ce7625ca8c007ac076612f02dc2f542f58c97dccb4b33136451afb936dbd209276ad73d6bfde45f1a2abe4bf512abb53b3", + "0c8915b8a10617c34e1665d4c94cbd50b2f4fd301854984afd968cd544e510b60a324ef010698b0941334daf60dc679469355807ce8f6b915ce1688648fa831cffeac95de631653b8bc3a9aca4658c4fc7608ebd6ac8f0177a076d2b4e64c990273ed9f76b82", + "06ab6f2a4fff1a1bc75565b39f5a21f36438bf8cb5c47aeafb8f17894656573a962150f3e2b1dafea3c87c158e", + "02f15462a7259d47ae28c7c7b4cd22bebae8e6fadae0283257cbd61125c774313d7bc6fd0bda2ad588044076be535936e69bf2ac3cb6d19684ffa9c0419f76be306538df2e6e8e81cf43b979e5ffe6bd552ca1a4681ca03ad7ab2c7b9aa33a1382f754b40797" + }, + { /* i=7265 cDividendBits=423 cDivisorBits=212 */ + "0954d79032a09b0ec042b71616d73a4837b56cab53e04df48d6e8654cd57ce5cd4e29ca519bfbeaa308dc7e07f168643717709719e", + "036e2319ebbb0af4b22b14783813d6194c2ff31309a8b32e05bfeb", + "02b868fce394958a9cb4241916771ffb77538b089bfa9b72350f65", + "cc396c64dff8a1452d26fbafb0b7c301e8d9450d6d1d96def4e7" + }, + { /* i=7266 cDividendBits=2015 cDivisorBits=535 */ + "6a01fb24fd6beb1ef14752579f127927d32883b26af26fbdc286025bb56d089af39508622870daf7259308cb3f63695df13557994e2b40596b95832b7cbd9e2395691f8e3e243e1b82d35124cad868be1a2b784cc3e441177e65bf2071c0fc3864fbaf18a89670eaf073e54d97020fc8f968ac5ccb1e0647380ee532344f3e8b34b70bffc4ce17fd9f3177915dc97e4741f9189047f8998e78f8b3a86b771b1af1f0dbfd00f3bad85e215d2eac8c3c85879d628f23ca0f0bd6899176cff1ac26ec2a09c55b94c1945e584f9880df9176c07d7e70918e61f0714053d438e3158b55db7a5e19324aabd8289ba417bca198d2fee2576f1acd8b298d3d48", + "4b8ac325a690ffbd12dba3e990b5f18f88d540528f9895c1ef8635e6ecd16fe5752f5fc9a5ac9f2d815af76b492545b49f80263b2ed41a1f3865e28c936d5a128978e3", + "01673e50e85b70d5e7bbef98a47c44e72740635975d2a2fe8d63fee43db578dcdb7d84c2cc9fe5100c34da8619fe82f0a9500ea86ae415e0d173e37a1c41944e5988c289c9c34024fb86105a8e0b8c2cf7602b011d749dbae22c70a30a00075c480c21aa746bcc020a319464979ea82b28aa33b4df7aa8e3aeeb56ccf42170416be92fc6f078d00b06a06a24fb4c4eb37dc6d34d22abce5ba053daff3dbcdaa6e069fae5c2e7b51665796075c2e579b429b48b2fff79704d397d", + "170bc2eeb6dce0a13c52955b556cf5cb6a8b228defef5948c76ce8606fc11d5456c07477b62abcb113241afdae1ed74f725d91d87805a5a44a1ab6868061e7d43bab71" + }, + { /* i=7267 cDividendBits=1940 cDivisorBits=1185 */ + "7aa997b900f6d94f3b205344e78846986cd18adab829bd3ae37ce91ee87b778915fc9e515d3e4924adc5a48ac7001dccdbdba710416f053fc8b1f98587fb54f8984663c24ccb3956aca29b594271eea52cbbcd3de7021f337a79f0562272cd1af766ec730a724d058c24ad3b327c9f9797f1e9980b251de27116a27fccb0fee50ab0eff90aa9f5cb10d63d53ed7c785b0a2a52bbb45812554cfda9add97d75274873cac78eebfe2c235974a3c937ffb367dfcb004a9da7edc9ea7203b07b5450a427c14f36a51e88c188e5f2b1b21f17f70b3f556210650ac3ef4ae1b85d0eeda88ed6b2b4f5f6217a267f58e9a6e1fe8574", + "01df94db0ecb8e90c8e17077d2dd0b2b46faf80c9fce3aa178a4fe97580338b9577125a1ae648a109e487f04c6cc91cc4b2cb44216a099f28de8a35ae49d6746f5df706e2d12e47a1a72992bb7d415f24223bda6ffb3b2227579e2b7f2e373abf700d788a5e3f403f062bec49dfdd26b09b6f7ddc912172eda7c0b416245600389972695df8f130e1a3b4a78455ccf6dce7718166d", + "417a21b7728b3ead5ae1405b8ce6bfd828cba4103dff13faf7af89cd357fefe5ae81fcab40fa0be43576df6b857191443e8a650751b7f0de16b3d71487cc060720ad849919f5362f137f8f310be52370270e012109db7bd7588c24359665", + "9e234029c9b89fd4edefacc4062320bd55823c72dea50c4d9af9eb00db45e66bef0a83a0e9f0561207a10d069c511566730323aa1df0fd748642a7ee56f6003c52a915853f1ee9b65b111846b1107704c0d39cbd40a1c1610a656e8e00e8a2281f1d1c02fa4b1dfecd2cee5581b47b8238185750a395ce080e7d486e704a44ec4d673b3ab66c53c5c19e5deaf540d6a9cfc8ce73" + }, + { /* i=7268 cDividendBits=4094 cDivisorBits=3876 */ + "0d454cb23b59ffb535b39e48bf56ee294293a03bdcfd8a15eef4e986e494d275ce4e0905cbb88433a117c7beb442f2ffebabda0c7f9347b33791ca9b60a1cb457eea5d268b98b1cdef8e9097c78524e6188c795112f34515f2e1af649063854e827fe478c24275474ffaf3e499a9e91ad2dada06681e601db924c11820d1fdc9d43882ed3db891287f745a3f563684da99aa3205474d8110c99348f2e95b71d99fa8125844f6c8c20b26fb7406091f6a7e0f675851f2422ad480bbf9528de8978834d8f769c964cccf67aec1e3e7465376b99e47fd73c75e77d86c93fd4ef5c1cffc202a2e24d51630f9ef931fd3236878bc634cc6cdf41a3708250c93c32839c79d2c3c6b07a1f065c35ff9bf9b779bf7373dc5081acdfd28d939ad1a17c7d9f339291e11e387b96d43d1de8fd93475455e8bd21d2cb6ab526af52a8efeb1f8b1dae1f1bf29f1fd88abb8159a9ea25c6f99786fcf2b3c4e841289339587d272aaab7b8e5301ec1cdff3841c4d58e5546005f3c2b6b4eba00c394d31b21dca673d34f3da8f41b4949bf809a94c155f7964590daef430a2d03176e5cf57fd2a6dcfd1b8b8f18f02257eba7c930df0633e658a83b78365b2bf3eea309e9bbaf562b848107bfec6bb5f8e6ab48c1c35cce7a990b4ca9b878197f017ea538a2abfed6e13fcf109cfaace5b449c0d62b458ad0f8270b684d525d1bbc325b26c5d1c68", + "0998acee0f1e1f399507aaae5db07443325b9fea630a136fef58aa7eb0465d0b45a10c978a8003b6235c53b85d38f6c6b0448c32e9c238029c221e3b9dc186b524eb3caccaebc411bad322795338bb4db437180eccd4d5075988034489642b24f926c6537f69d68e13e08413ed0ac81020a755d24d4289aa99eee9b6044b9f5455328f18e260bc8fd26b86c86fdb60b2f110498a76d7c425b7277cd49c69ce41a2bc0b3fda770a7f8aaf5f7d5a4f1d7daff115e8c0cb8cec5571f1f23dce048bb33a403621d3deb2dd2dedaa1f282a6c5e77d6b21aeacf784e084ed7d63cf424f5cfebe57af25dad8de8e5b7d1b0df3b453fded42d5c5d6b32d8b9ab35d09aeae3b2acaf164c8df6f7d51c1ba7b94d4b922c59cb98213c6619e44eaaf834484510ed0260c3e5c15e40fe643feb6725bcbb33dc8bc1c889547609f36e2a1d54304d098b1827d08a7803c81963b8ebb3b27e642cd3d128bbf0428040c3d70cec63175fb45fb4584bc64c1b9335ab6289a085a6c5104492fd56b6cd321d526c7035c4a6fb61dfe9dd41203e659a4d7f2d7b703021d61b053e49e084654aec1778a10eede676f7e41aee2164c5628f10cda577159e6de39226609c54c5614dfd5149ab5f244c494c4f498a16fa5fa03fa33078595a6b64c6cb54d1ff433093c11ef155f34df739", + "016204bf90d0bf5c30304ad7eb76c36d8554fb97dbea0f436ddec147", + "076986d1f0487c18ac4d4d9f4d33ba1047d5f2b2999884db7b40162dfd5d7a7538eaf1d6e4736104a90005173f96ef4b23c024394d3e25fb5f40fa43472c776bd02ff59dc2d57a7e4b13aa2a2ac726bf60c65ed7563e412485ef0221f739f783015c725e1cb7d56206d7221c5c0960a53d15cdad26432dee6d50cc4d1e139b04aac4236ea10ba724d0dace5e10b28c9ca3b8398d59d2e9644c34e23c293535857dda3b06f5c26fa7f37b495ad369a5ba12917da49e1f2ed8d71479f2ed9303c384cef8c70607dcd56bfc1405a604acaca296e7d9296dcc36e3d9b291b49f94787560067152548d112ac7216ec28be29ce14f46fce3a4ea577cf0811ab978287da53d4973efef58f8f91956ec65dbfac0b0a56af941de50a11d1dbff620ac6c5f256a25f999a56b162c8b5076199a4fdb1caa492dc7039f2758b86ad5803dfb4e88497c740fc0f99b5ac51c649526b3f3166bc518749f8d3b0f87ba8e66167e14e947c262827880e81500526a74f42f587abab7d16583b0e1177d5203a69d75258bf82ec173dd0c40eab417c506dceca489d7306764774bb5d91e9e920f5458d959ef223265d04153f45177dff76ba4eb162eb05ca8df88976a66a5a69435abc1d07fb081a218d4da87c8d5361add0a668447734bcfc46a9ecfdd30a286fb1d2fa381ed9299" + }, + { /* i=7269 cDividendBits=2079 cDivisorBits=1678 */ + "3edf4c03092f41348ebe7a57283d7a2db18433bbfb4b2d4ad002d88cfbfc57a0e35f1c72a2f1bb280d095440c17884a13e3a1c370ece921430e850831270e2e880899d3eda42b63091cc410db7c99dad47bb1a74e33dad9d92c2fd517789a5c166e2414216720f269b08bbe24bf6e92a5ec00bc6222de7f5b0eab89d40239d8729a0080a27d09fb6724388ce59ade7a8410d977a46763baba98becb59377cd74ab45c900e131926c7d4311888d899075c7369bcb75040f31da35a1f868a099678d0f260c6e83b3d791884a7302cc6d0acd14fd0a9e4d4ec51cc89639e1c7c048559c09792df560395621fda0f53fe7a41363c8b11b3b161a3b0e2f3136242203c18e55ba", + "1280d830a6cf437e4ee5255080912f99263f06fcb196a3ef294d37d04824db88ca11f03539080d04e4a06248347012a14028276ff94bb58b29175939914bf53f8022396bda3ab328b92f876e93611a7212712dc09cfb99cefb7816ed89e2c4d10e65c052dee05bc21ea27cbde4812b09e65c3a6858ee9af987cb2d61da152faf089677d8ebcff1a5ead7f6134a456eceacde457c618612579480bb8aa723fc2329925f7aa2c144f0556379fb2e1896e48051660c7d28edcff9676e8472048a5cae11523a7b457c91ca4fed6fd59f7cc94322", + "0365dc66b0901996844975c088a1ef65e5e10f6f629416aa3e0ea4eafd319babedaf658b3706bea4500aeefc223cfd1df60596", + "01cdf13597cde2ff3d59501be61b52dadcf41fe50194581275ee1dc3f3c9afd2122b8de02422999e21ed1024bd314ea0fa1f7f3c4ad5eb719f4601bcaabae5542edac70ea2220ae001b6456d231bd157f716ce05c047d542c4218a4d18b3e5d52eee78fff85aa79a7ed61ea486d1cfd16efea6f429344ab9b86495d095d65df06fb9e975fd0634be3eafa9ecf31f9bcd88339942cde8548749329d39df76cac0e4163f8d2fbab5b651c43b08eac63de7f1c4b9b1309df89f924f798a267b46db7c9c5f7b99e1100251c4ade4d28558a555ce" + }, + { /* i=7270 cDividendBits=2661 cDivisorBits=900 */ + "1333ce4bbbc58ba4d8024cf21c33665cc62c08393c788c6543177ab33170848d3f7b0dbeaf4d56802801326d4c1143b1c870b87d1e370ee4eec324869a44e9815833b344ea59559143cfbdde4f972511eadfcd959a423c8721dbd5b9ea08e0c2f8bc3d71c7fd949d318ac73b0d618d79f599281a142622cc9c0805f0cedd422ecfd6f9fa1925ab73368e3f32cacaefd28c4f5143be722a45462cfc16357ae509972fa2643d10d8b9a395cddd9fdae5d7ce976b48ed5732676176048818eee2028926abe8a7fe8338fa119a2f2a091c8de3a31b5ce13e78567b87a33e0d6d9ca919375a3544c3d21d29983701ff84ca77e26f95ab85b7e508d3f85b2d599806597294fbc890cb4ae94856ad385a4eca97664d3e0d612f61661661eba7733d07868895d4e3f7288fda5faee4bfea00dc7191b9b7096d4b17b72f68e325cabf75db2becbca4d4bd4486562ebdb009", + "0d2bdce003162253862619ad8c77093bcb80fe4ded0036b201804347a2b7ad75da8b61389d67d7756addf1913987acdd9b956f79e11ce836d7c1997fd8caa0cb89fe31d86ce738327c31db25cb2861bd88d97909f1acbd459a6f5a403dfa1844bd629021c2ca4f8781c27d64064edff3f6", + "0175384b649061f346404cb1dbfb02afc8be14c5c58e8ba2e20e684d971a148548db5019bc5439cc38de824f2a784ed56753b43b5f0e2c324d7f90d12e285308bd4bc88ba392f241b467a55c64cd5241caddf344f7e8dd63e4baa0d8d18f63c4c35bbc983acc3436200199a83c92d8c401d68bb926eae6f04b057e1ee6668aa679bedb3739c3aaaf64f05ed5181f6eeba0f2e5d8618e8b53e8159c637b5624d959e3dce4d1f26fb4d158934003fc2bf62e42677d23075e816ce29061166f82bbfc4529a7f0e1c46afb76283cdef480cffc225ab5098b3e0c042c3b163e", + "0ad0459197b3114cc0f480ce4b37888517f1ade2ebc9cc1d7e171d813a033f7108c3f9546b46e35d5d7d4535592dc052a0dad9a26bd80c931f2c43833fedf5b7541ab30369d5faba947f92ee1c23b35a788ee6502a43c010cef29a71fda522b0d064d2bee370a63b7456c7bea453d77675" + }, + { /* i=7271 cDividendBits=3557 cDivisorBits=2402 */ + "1c14123cb7930ac51ab05e221fa38028f20645ec718ff7f103a8e2c57879e433cc87eda379344ba879927d65c5eca69fd0fe1aa697d2f3bbfa29893de70af507f1cbb0b5dde6692d194dc275ad334b3001260cc6a5ddfa5834c04f87827fbabd843787a15825c37304fbea39a53964b6ae763a444fe46233c86fb829efd95c67cf77de9a6caa1490ac7b36497f76710da8938a4981c3b465b274c96d63df3db457384411d7a4ebdca2160dd16ab0f30a18b6a04ee5f952decc18afbcb9388f58bfc411029b2d0d61aada84cf1acdb0e259ca89ea0d3a33e8f9534ce2c5ba6df47f2dc435887cce6c9418c75fac85b4b5828fc437a38aa4eae638fdda156d6bd0d4ba6c6b780aada521c15cf9d59b545a7d05ce6225545c8eaba89ec98f729628f8217136a2e211a43d2e242ee08a76dcbabeaf3d23e71268338efc20f82c47691b215551ade2c6e4a97feb51d9184c6b42cbd9bf81ae5dcfdc4d60f1841aeb693b7e2de5d2590f4579f8d460b0e6e784cd59a424878764699ebd34a1374caffba03a1a24ef692cb4a121adaeb73f4b1dc20dd4f45d9553be557a843f79a2eb3810919c2b772e8b56cfb775e6b25b1ac48ff51b582ece96aae0240b98b6", + "02a695176bf7eae3b55b326a8cd3df43f6c43087db76ba81fd27fde615afd2bd56e2e4e003f0ffcaa8abcd6e41b725754292a91cd5afdcf3b9a0f7cedf6c226c7a504302b8d2d23ece709a0b78fa26ff9d40f369e682e0532b319f0c6af31a654647355bf158e1de32fd076a17899e8b4ef2ff7ad09d6bb00332e9a7c63fb8de8e20de65ca59353b349c861898c826caa47cd1d23cff0cc026f801ff0db95be1f39a85f39ad9707329c205f9bafcfbb1258bbf39e417abee1316c7c99f985fef3e98b6139a91a3a57b133549b6a26ea5355b43a3b0ecc0b78b66080a4da67e01d2dbb64013c7403697db66118c2eb0ee538d3fea94909b3694d357bddb1d98e89987d31c8e0e813e8e6cf70be8ab87f8ba00aa90ecbe16cdf2f4d343e11630c279c02aa31cccc875fc73651c1f", + "0a97c02af4e848254600d069b80db898b57c054a8552c4e1c7f191f0d557bb4d1fcdc3d1c89479145244c2823a715555f9253f91dfdb77b60d39353b2f87f62180911bc7037c72a1feff3444c5c157764e2e5c2670152d265b076bbf2348c6b4bed88aa1f355326cded1865553b003e1e8551b29b98ff79290455b483f7d42f13292b3cc538fa55fad6a2deea9ae4b9699", + "83d485874e3e734c072c35ff684487568a16ff39039c25dc6c43292e2e9a768d8e054167f292d831316c1c8ffa080f9e6614e552bd4c8e0a2d4f4370146226872cedda55fc50a2fe0feaaa7674b53a38601c7afe9ac8eb83e4cd7a32742f47a0d33e7356184dbb05600c021cabc112a4231e5e049242e45b6a09f633d71e180c4cf8fc7fca9cabab9392d6f4fc017ab1574249b873667028d6c005e550a590eca60b280fc8cff19df49aff7e3e9db79cd95c00992073c01d42614f3fad2b556d0d9ab92c96ed560cb53b1c39a8fc5becf994898a40b92623e935741b8453372c3f7fbc69c951e1c416dac532e9b6a89cc5a64ab3c088476a7d3a05d3276229133911182c04aa058244efac38a3f28268012d2799ca3253468795767a87cb6000fe7f7dc0d8ea512e9f0ea02f" + }, + { /* i=7272 cDividendBits=3157 cDivisorBits=138 */ + "1e7341edc1abe0fd03a35c08f852bc87070f6e17c4fee7bc0e51fc7bb90d5d61b4613eeab0a81ad828930bb43d25711d0d06949e648212f1312b9e5f365251da05704059cff0951d4f04972892bdeb52d2d6a1ce94f8fc4148784df6b423218c10d1c631a595bb82f11f4eed93fbfc9be072f5447f09b7f7dd5e885c1964b48ac3d33cd0e304e87ceed375a217fd59df7fbba5cfdab4bac69d48f55acf9254d59421702d821794178928df0773f09b50c8165eaa984209b77f42b54f744fea524a54836b7109632ecc73d07ede627f5c1d2a7b31c8c43d5ccb8567bda5433345dcd9f9b69dcbd2ee2d00382da9b0f673133df3dddd8726aa4fee33f0dd8b45c2d7bf775bc98d9283359f52a771285c240fa363298374d517eb78445c910eca6ad06e91f0accddb5d31e26599f09e6117d05332ca809e6deed57e3850df3064132071ff8313a61b6b40d46ba11e64f0279ceffddd4bf0cd12c17acc260a08e98a7cf6f34781542a7f8aa49dc60816401a494e719619d947b2869e3489ef83411aff90b40ee8b9b25949e701", + "18b092a49d5bf2b90af6123cee1347f709", + "013bba88d8399a9d2b81d7d0fa8d28e0e222363bb78d0b09e89c8a92a44578eb69671c3229642faed395d40442b8747ea9dcc93860aa404bce2ad7d8fab245632064dc6f60d05b2188302bd877f1ee650aa3f9896d14d95331d8290f9fb0fd0bc33d9c39c863ec58c9e190c84b72bcb469b23bc8798c9dd300667b853c04792698902353bf80f776b8e9aa6922a6c408c8d847c8e503e3a71fd7f67b08164144be5f6e749dd174e60173e9f9841e006d43e33956ac42c16256c5126f9ab8eb028eedfb7267ceef57105136d83bb94622b06ee20b407840d6b05a6602761f9a60ce797e8fe3e78435b6818426650b06209aebb654c079ec3e1cabf5a18bbac554e08844ddb4d033a1819e82b0f2c93a286670c6e3d250cd517ed231b15dcf5b73acae79e26dbb9e04b76b898252544ee4e13f45976d8e6dc5e8815f488bce6cef4f2a8c9b396cd5ab4a5c3f30c462f6b04e8d49ae27e95fc9d900e98a171aa277aec177d2743639d564b9e1ef7abc895e3bb71f59b25e1aefb1eb91", + "01a86d2517338026d844c3c1d92988b7e8" + }, + { /* i=7273 cDividendBits=1783 cDivisorBits=1267 */ + "2689bcf39f75eb24bc87b14c1bba6e232087d389e8effb843cf79923cbdedf318d3f065ca8c10a51c4e32f14b876a35c522a88bb60029f4f87ad2623834dcb565d18cc94ec52692d0c503b991d4d2544a356df05b719ebf4d04d6f4d068e3f7e6118acce8b939361c355fd750db689dea4d0a3944d3f7e18cb294bb9aa5e9efde430c84ae10639ea29a5020604a16362bbf077863a24fbf4a8606cf184ef2e023484e35b471b4705d3eb70212e7069ef084655df752a82b0ac2bef3708e61e215f51599a3248ea6ae3c21381ed9b065824545adc440261fc849a05c9838e1e", + "0107877f0dd9aa44ea916db49b70782dfdbb84b15e4f10db4bccf9bd4003368441805e5711cc9f91ee8a62212820a6743616603d6901bb949342530de48d15775ac59253fc8a95d7630d10a21050a409180aaa98e9642c34722098bd70396adf97d5f67f59d84e78899c53df8d52802321052a1c181e68eb019a612e1d42832ea3a558cebb3e686a82d39ea96053a93ec9d456fb66b894ba9a4a59c4326a9b", + "256fdd54163322f6c8fc75f1545f91f4bdad9a748ce353c59478556ba8f7e6ad2cb1ef6f5559e67fde3cc68dddc676ed1d9cfb73696e87d0f80c959cc847363d5c", + "6027e45e5b5f9d9edd8ece5beddd4b8f93570c655e1e503a6076d38a8bba0780f59b3b9dde55047873f5abf047f2cebcf13c901fd77647e17a1029954f594a08e7b5cdadc9f2d9006152b4fd615244fd83bca680b8f9167da1fdb02d7d1a4b76f2bbbd9fdf983597be3dcfdc3bfd3a31b61f4c1949bcebf9225b1b4ad0e07a4b18371a06fdf20b3d038ac5941f455bd6a7ccb7c1871e447062b7ca4c4f6a" + }, + { /* i=7274 cDividendBits=2184 cDivisorBits=603 */ + "47ae262fef764551a67e9ff3f123486bd39cf3715a7f19fa83829e069201733d2f899dcf7cb23baa9bb67abf93d72888bd4fb38f8b0b106e23aa0ec19849b8933a6e63332ca582154898586d4cbe3a8667589c1bc475740407359e44a018b5ecf1f7b406af65ddc1d516bbf79d5629653b259a69853a14740dba9e0d5cd99b7fb102e807cfcbc4f535e449a8369c98f37b10a778241396dc8651b743d713d91c414f413afa279dce19560f468c2540a4e5b8a10971006e4b673070b0f9a8075558939090e7ead009d103a2a0527d6f9caef204cbae235b55876f462ba9347a671cacf8845561ca9885bad40ea5b62405f2ef3dfb111869ef8db3d8c9dca366db7d181057e89cbda459110505116330bc8e", + "06dd5c4d7be5da3853d6bbe834f7646f676e14c62f21fff5b14c49ca4d43a886bb7cfbc0206fd1eecd356a14433c5926d65316bf04f3bd31b8096b0ed311df4a5d18d6fa3c01674fb26f91b2", + "0a711f16d450baf14cf4617ead1b5bf9ae47aeedf923cc47bea5b3f34710826afa6724dcd7d070e23c29884d8362f5c0326c5972ebbd5f4420e7f9193e70216b455fb1341b9fd65b24a1873bc84956e9170e698835e331b11dc6fd773fdf105c2c953f0afb1477cdd6cb14b1009a0e4ce1c77f3081f2183866edb1f2424306456a37bf109bbaad70a8ac98ab0d1d9d415c3eeae77ef47e0e87dba16d43ee28d413deed5c46b7ee765f10264ba73cb60878b84a73c454440d85cbafa0eda24c3db42ed17ca5be", + "05c3b51b0204e71c6d03349e0f362755c97974b0fe4af1f84f6cd9cbbb710bf3e3dae65f5151446acdfa10a6c639d4b891480e289e598bfa50d5c5dae34611e917f55daa73351ff02742e072" + }, + { /* i=7275 cDividendBits=792 cDivisorBits=755 */ + "52efbe9f85d1a281b326310a6cdbc7e9aab57dc37a7ea284e1ed2bf8eea2bfd80d8bec833c1663f2712586c4f921f4d9ceac66af1672cf0c9eada47e49f0b36a63c1be5c87bdb28ea8d517d299e3dd77ca159a809f815ec93fbdf4b2ca3c18a9d820fa", + "077a238841b66adc8f7a208bf1d2c9bdb830e38eac5979bfe3b7f045b4696a8ba28ea9c99413f6505332d6689cfb2ba9f24d7772fd20a1609146a00275e99385349bd3999a5b3d5a90b1e9bac8c4ae07533cc62cfa6af884153bb176c5f844", + "0b17915207", + "012dd154f6ddfbf0fc0b7cf54f37b54fab20d28c866e8c04ae6c9dde79b618e77376ee1db18c285ed3ea3a37a6766fdfc8cb78b1ec4fcad5c6bb6d4d903f26fee4e972d51bbe6c33dcdfc7b37eb9607ad4cb6ac098edd66d6507d746648f1e" + }, + { /* i=7276 cDividendBits=3040 cDivisorBits=27 */ + "cd6eb6da19535363b486a2d4629428e3bbf41792e08dc9b7319b91ddc7b36aafb52e2d1ead56494fff7b90fe30e8712247f584984e28da660031e53a1c07f3d1ce7f611f160301350c4a604c8493f5bfb145ed7895e226f517cc28fccc53a51138a3491f96b63fbca451b3c774a23cc7e743beeb78aab414024ac3d4ac53c1860697ec8fb63c979806612c035c7c28d8887ba6e541d55d744d648bf26b5f7044e77bbc299b0b922020b7fb5705ae952dbe92375a4b7fba59b6a6c6f2eda6cf8a8461ad9034122dedc1db2ca7b7db6ff7590ea94e4d8ab87a827cd9afb73ffcafce1f509154d680b2f195b5706fd7e1f204548933a25bfb2ff3cbc3126a92ce6f1e29cbbbd1b75f85d90ab10464f72750cd8b0888c21779f4abc8bf7a1d1290d300ebd75e36e24f0fd3acd3c768dc9600fc4c2fe43450c00b8c2e41a8bfb35fe67218297ae639c4b80f05900d2f8f1593c092381e27e7cc769123d123b066e06c34087ac87ba5be145e1b92a6d46aaa99e959a24961333ef9406981ee", + "0569aa84", + "25f410dbc84e2efbc8c08207896e88e52aeaa353fefe8c540e4ffbd14b63e48c2fbba5692fe8c0fa9bebd10d14f745561600d5ccf746f860f0fb5b81273371f12457693c18bd329c59e62237a91f0b43225bc55f3a62c134a7afb7837afd42a0e16655f06d8f87d7c8bae599583e948ee05a66fe0d775c946bf1af59f19dd69e9cda795d6de83c631b10d692cbc21be38574945ce7599d6af0832d6ff066c8be7e54f477acbc0241be8c648689fb7c95f743f685bd02a27f9ecbf8e7df585730cf347a56db17164bfa115d01d94ef55e65439a604990c4be3cc227d1a2c0327c6db1afc85c42e5b2b8ec5ca0a22db8a5366b0f59b0aeee6cf299dfcd11be6f6cabffea649735402cb062cc83e85355fbb31e8def2236faf9192162953e7fed7367aa82fdd6bd6cf86210915251ee936051c30baf04a22e9234b16be25b43d867d567dc993413a0c71a0b6315895d7bc7b08bbd8318cae738730c7109d5c7c7b8c1c6cc967ac642bf751aa2068fe61269ebf2c0dd17471f8f2d", + "049accba" + }, + { /* i=7277 cDividendBits=755 cDivisorBits=187 */ + "05beeca75048c028a07df7d81aeca8932bd534e3d98dc5b0da8671ee25709a830e4f18933044839bb3df5dd0f21a7b93de3a45a77b64c2d46adadc4f73d383e9bde0ff6e65ade43cbb4d322580e38a6423a06b13d40cd1308621f810097053", + "03a930c648bff476efcf4ad32f7907795db4012bd79e7b76", + "0191cb064b60d1c3b6442e74b8570d16251890cac4df8a920cf785b2c493677999b573e4208a5be4dc94ea285eeff71469bb7a7f193283026d3e54099730dddea39d89ec17529d7c", + "032b05c7770a73eb5018098eaa7131dca8a968dc47c2452b" + }, + { /* i=7278 cDividendBits=1800 cDivisorBits=1592 */ + "6c4401b08d941e875c3746af2f6910a41e6248d390bb074afc02615666b6b2e62b2c07f5eaa49ea21b6d93295a7c3033a26003fe97a3a7d742e1c78700435001e2d1949b698754b6480464e60a1aa4333ab4fd303c894ffa9c75e868dc9b637e593a9749ea125bf6a5a8084f1602da2170af9798f3e0e3b81c624c3e1386fc1945c31c5b0323fee22a5daf1db1dae5e1987e17d1dff26c230fd72ddf5076ed1b71fea95d65a22855dc236d6936782cce29266a52ec85894342c8590f32de1d7dafd32eda2aca42951946120250e28133d68a3738483370151b8befbe3c84c3fe7c", + "f7570a7912e32f8438a72a914cc0a17ea43285c6f46b6d14e9def58784de5635cdea56f102e5d1307f3c7266bd0a7daa841872f031c86c7d426379a637991277689737f77f81361d0bc551a91a2193b51081c036b46f140df268a8727df7c381b936152c5b379142472f390d36aa87c667a0c2fad37367270e66a67346bff51806527793741454aeffd990482c085de7212ef3cf58ed04710f0c4044835df3f4a3d52e3c030a69c256c5ffdf6e42a515216cc0a880896d8064cc0e08d7d6f8defbad1d5e2c99cd", + "700e69ee5fb731941b8c28c954b85b2115a4b0b5e2e7757bb8eb", + "bdccef6c3aefe4af86816a7b378ae9741a958ec0be75e61f3e603336e306fde5b3618fd2e04312d2db5170fa128492fbeae547c8dd35e131cb0c9954735261748199f73cf5d6e193272130e914c72729648707bdcc54de389a14de4b8887691bfea7024125b7860f5869b60e848b28366814753aa1f16a6b9dba491870eb0afb3182ca1c0118c304b0aba23b50ef63bbec5d0c747937857b94a2dc6c4fe1ef39fbaf3f9b6b43252f2820bd31afc66fc9062aa9b67f629acc4370684141fb1a555d54e36cc8774d" + }, + { /* i=7279 cDividendBits=1823 cDivisorBits=1625 */ + "3287dbb9c424a398562069b81deaa4983eb91561c73b96fa6215c98eddfe3b21f90da7a70d2993d8e26b783d454eae82aba76e91fbc9ee060cf57a5d7ea9da362317a374f2513dd2b11b6b995a2880c7af920f6f208c5e829e0f15833c7aee1ebd11bc29d2fccb5b7c7220bb738a302d2445120a08b29866de5a660e4d3ea7f37564a78e3b9f8e1eabba419546e05fd0a2c476a909109f909cbd6032b163c94c448c042c61555a2f97a22142cad209b6757571952b48176a148722cc495632be778bc6718fe7daa06ebb764b4c79e7b8e729d02b7143bee708254dd952f53c7429a47bb4", + "01032c2002833a96ae58cdf91892fb68facff3b97f3fe61c59cb724e3030afdf7f4f270f9ccccbf8c3da62000b55f3a76914f85adfee0c06a990c5165e009acac38acd1f40ce7cafd178b87c144617b6d29dc19bc9195dc9b7dbc09f5f21cad350647af23b8794761997b9e8a0b93dec15c31363c32e564e4e68287b50da0a8b6ab658749c070e82e2496ef69c319b3c1d0a2d86eeed02a6289d04ce7a97c96324696a1465e060a71a918d66bb436cd3cae3a0eae64bcdcade6d8c05aff79c892cf5212752ca6fe8a900df16", + "31e984cae29b8d0efa01f0e213ec1b6bf2c2d8070b3581d456", + "37fca8fb8b515dc7e0709bb75c063542311403eb4f39d05918db150316853c727e609d66dfd2e0d1f78b608f3302f41b74e84368113cae8a1700acd80adb52aba5e72edefbf967335d18321029f8b654aeb77d0989193f78eafdb5afbfc796c26f78395c0c4d4e1bc9117c5bab8d554f4c78f90e1b1cd880f9a8eb7b8e6fbee9210a4149157a02e960dc2b964cb8415f3be563f64839f88a8fa4fbcc6ce14171ab08fcdf759f7269d1f900488a1cedb124f4bb4e242f0bb28f9f58e28cc0ae51dc76b11f5970c4b2855250" + }, + { /* i=7280 cDividendBits=2570 cDivisorBits=211 */ + "014aa80ba35c3a687edbc91f216fbdd06f697c6e46613b9680a83ae13214a870b2172e2a093df011d325317c3cb0a397ce5d0f51b055ef0f6aece1fdfedbc8e611b4602affd306d721b29b3d4a4c482628d84d776ad79fc83cf25abc0baa2c505c1249b09955bcd0caa91b853036063a2bf23671887d4244c9b915d895e499715ae282dd2c440e65e335699cb71ac05ca55376fc7117c7b7e1c0e306791bc4e525b0c4dbbcbf49091e87ea38101ed280a720191a95450f999c5d7a3720cf06208b7fffa8ed5dcc39251e00ef5305be132bdfbd54ae1124c9da25a56b55712175f800e2ce03eea7ff22cac6251c707a077f993826539f8c4be41a817a2eb22f12a0edf1e16cfa76f52f584bc44a1b5e67e5df707f03411c963a18244da16876a7eb23579f8484709c0d4d29578af1c19e1b8800162ac4e7bb359d8eab80f6496e5508", + "06592e705c818742085227c2f15318c23cad64a8f153ec92dd1d3b", + "3415d599615c8ed1994790971094f2dd4b45d6d572d2177b3551ee0e7f6f8917a6cc48a7a97fd5c86987dd62f1ee922e90e59196912fade15c21537654c53fbe2113d52260c191bad9cdbbfe95b11a76950b3577d36aac0283c5a09f941b07c9c223c16fbdc952c150119aa8aa9c6119004f81e13dcb74c629acffe37ecde16dbfca3588dbad34944ec0bdc6059cbc9a6fe1dbc4183fe2a7ec6f9c780375eef7189ef0b42898655fb59fb2581d11ed66d425a0f28c29aaba33d031f4672fa13911fe90ee11248c968395da210c4f5a8d146492a3f2e42c88a4756a96aa3e23d1fda57ba7cb8f7a9b22e00aba523ef6e63a976dc2e7ce0fbaca0afec1da53847d7e1b18e12133c9ce9279370a39facaf47d0ee3c0a69f24d12fcf14b3f05837b9bc9cb83406300b", + "0597884180ba9daaff2a1896e702d15f9c3832a01f38bbd911037f" + }, + { /* i=7281 cDividendBits=54 cDivisorBits=41 */ + "2cedfc6cb5e502", + "d65ecd7483", + "35a7", + "840b8fc48d" + }, + { /* i=7282 cDividendBits=2254 cDivisorBits=1625 */ + "2fd2dfc3f8dbfcb3ce466806b74f81855b00dde5b3c76a7fd475cb6473e977c87a436bc6d965fe1a4628645205015efb704ed35070a5fe6bfcea3a8fecb8040c3de2c9cc974c946cdb8cfd84fb1b6f51daab247730b3ccbd35c4a144fea927fbdb836c6a32565fe2ceab9cf326268cf96b9b01fda8dc38e8a3fdd8eae049c096838351e1500d8caa6a43c49b581e108ba82e6b3f6cd7cc9c4e2f64ec461c41e3b48450023d12a81d363514910da8f3199c734fdbfc5bf61bf2363d2d91abc7e9f6d537770c6c67493847c5ae3c4094719069eb485412305b7d855365d7e4085e178fa752da591bf741ac6bd265663a88a1a084bff63d406ff6686ebf1949fe0955b723f557423caa492be6c1fd290f9083095863c5f1abb110f6", + "01b767d6b10e0a0cdba40cb0c55472bd5c3f43277375d58190f27e58cd7f51fe09fb99bf98a5637cf6a1a21139460df6b3ab4ae8d369107c2aecb10c121c2f8266c1d36d79dd5fef66894b853bd56ae0915edc5f1f4fd23991f835a079be71ef372378a8cb91126774159e99a648c4b4400d0d553419cc2b3e6edec056a3cdf505e0f91fa3840da758139310416f0bb993f6a24790cfd02eff7832db2eac804fd5bfe71ab9b92e93389486b03c72867f4d2e4b5a56a251f4f65e87a4c62b5614393be7cecb094fd2b0da6cbc", + "1bdcc31b35721b2e2ab63e43d2a433f20b81f33d2c6d6817e556c8a84df02a26dd81cf95eb5fdd76f9b7d97fe759972cef3a0cf2ab1aac4ea06b92a8a691f63e4d7ec950116f66ecfa3ef52d539167", + "01a7ff053292e5d2e2bb57cc0081b161e68935e4a9cb6d9940ee516684fd0f3ffd170d611423ed265bb35b2617e3d8cb307d66bf8525a661af8be774966acfbeb9ff80b5b4b068ce6f3de93e33054ec6b437f0fcaeb18ee39d666f726f6750204f574211162030e13403105190ae4ff5f2f8d11030302f37cb6b092eae5a23f2179e233cc6c27af5893122fef10649e9a2f69b6620481b6ab69b1514ef2830be1dbbf92bf1ffc7c525920f15ac18b5ece22ccd0fdae793bc65f642e23036f4f3b3bc52dcd010fe267f44d552" + }, + { /* i=7283 cDividendBits=2608 cDivisorBits=283 */ + "d48d79edbed1d8c5308e761a38ae4c6fd9b70abb5818ba29031cd7ca276ca63dddb50f86a9522458422a365c245ed1d4bfbfe76080acd704951fbd96e95b7f1ae8a9d621d6cf836326bc2d0303b6f1a60908137f3f6486438259a759ebe7d4c0297f4fd0ce7f8896b50cc99aeba8d397d2f88b2527d3ab25e0c2e516a7f0f9114b406a989744ec0eedd1946be43362acea3c573803393137c9edb0e844825fe091af142626bdba7f79365ae35cdf2c8d59653670d8ffe6cf9bee3e82eda24d70da724f2fee2b075403d72152cab3f215d4be96bf10b4f2233534fcbc9bb6b60aa0f763fcef1fe2e5d1357b421777b1090646d1f2247830ee2b8f4eb4e706d17673f622c1a2d4be2bd403045c6ded84a1eb4285016c06c224feee1c7c57f16774f2b32f0de16eee2793766736a885bfbca04d898c6278a9afa6c415192f3be0c253aca865c6e5", + "0636e93422ef6649a4106a34c8362a1862f4d23c82a8d9885c60786496e54d0907bdabaa", + "2233e53ac063385c9fd8eeabd99a27f71ca74acb9b8489ff6baaa9eea66523a68fec10efbaf2854070f68702afb1a7dbcaafe00849d5ea1750da4dfe4a4ac2d8f2a5291dcee91c743f6b0a0996992087d7397e521692965bc0b68a0c3b5a9052dfc4979b585a99974bfe7d53e8b578c5dee7aabbb0dfe30a95a54accf3298a1458977e455236d1558833d5ae1118250daa7bc40ce3d0ca86a5825c52be5b9fdabcd6ddb84fc98c0c3628b6322beed9beb49f3fd0950e8d1b9cd1609850684888a9225438989f1de11e601a426b896a41a5b285fb6b26c11efab823faae8d1d99e8a3374955016cb842ea0719abd9475655a8ece4f939535d44dfc7982464e56f20fc09b98f4fe21b776077160c5884689ff29c282a99d4225a1a239fb6ea4d99ece1f9", + "042959f0a5013e6d182f2e81220fd26549f118bc691d6db9bacb0ed8d53ff1819251648b" + }, + { /* i=7284 cDividendBits=1202 cDivisorBits=608 */ + "dc0a555c63a9979f032ce20708e51703e5880726000f1d899a526c97396a3dfc3d2f08f78f8420433f32ce42a9a2f7503d144c68fcb5825d5ea480afc9c100d9a205b07226cb7ccc15313514bbcd7ed9dc2997662dd769da324fb8bd53b8c2c0d7a0475b6bea78f4233cf5358ea215e438474cd0108dfbb29f7ff08871656d2183d2d45b8ae6643216466923b3378aa0f48955bcfa85", + "3571ad11239af53b9e6495cda600d66e1959cd0a028d4450acaa2ce08d1cbb48d4aa4f0f483aad2a6737e405289878ba6bbff1aa03cbb2bf37faa5b0b763a5e8bc08957ed1b46637cd1b7665", + "041e017983565df0fd8a0ecde9ff113bb7508c36e267bab2b35296ba8f8d6eeb088086dc85e46ac2370bea6e92f62dd505f62a64f36c77d65cf91f8294e468403587c120cc18ee0332e670", + "1aa08f6c044c1bc341af15302b4d7758de292bb81cf42f71dbc532b44513b60c91c36f329fda595136e673738f4fe8fd51fc7d5bbb81110ad180e73809e22d7292649ff5de732e329ea07055" + }, + { /* i=7285 cDividendBits=1650 cDivisorBits=955 */ + "015ea1847a7559b07892b03ed2681e99e733516320bb310dc8845b28cb10f387a081936892bf9e977e61db5cf55472a3b3b1107da67238ff3c7798d42e1950fae9490bf7a71f07549805b277ec9040aaf03945d989fb53c3a5349e734a93df4bba6fcd66060095323cd08a8cbc90a5838685af9c4eba6b8eed72a88a27b7f26aa49ed0aafcb30a9a12194d519e8066df912db3803094da7c8eb12c8c8a81996973250711c1a2db159f562c2bde69545d11633dad7bac120fa19554d5a2a0ec73b9fa72a3d202d69a804cf8e3619719", + "0650cf3a1db237418187afa683864b244b6ae46827f341c2e7658ed65c337be29098b9d102da535cc3137f277f6ffffc6520a8c852b6f2abb18482dec920884d3ea3ea996a8863369e1f06a842da621794d97fc9bbd3cdc27c723d4e468872d62458c12b3fec00056c6d86d05ec0766188fc1ed7f05f7a13", + "378486ecd093525710b98e6d9f6e408671dd6ac4f7cf5668c0ea7af1425a0c73ba6644d5760da689df2077b1c42dec66409e91078d743e2f0c2f211af6035115666d289f19de2f69756f48b542a12d791e52fb2ab4eb46", + "04f53b7e2974de81e85f4c06a51defaa4f30658124c89d73050e1fa949d6aaa79247ad2c4423a7bd2003d986ca702c9c6a59eeecd1786432b41b52332bef63116db72b80e5118680bf22b930773b6d057a9fe677be2a4723dfe2586bf35b79f9580174d5cb9e815de85cd5b6de0550250c0a307b90dac4e7" + }, + { /* i=7286 cDividendBits=1822 cDivisorBits=128 */ + "3e5d53bc2d959f6791e2da4392b350023aed309d1a59da5aacae4e2f5410a36a3ca9d8a91e85d09c96ec74f16999d7261c5716f08ea4cf944d19b360a12e3a89d0c77bd03ac36704f0889367c567a7bc3aa96693ed68dc09ad39865b65a78413af812adbc90b7c3a22b519091f9eeb57f79a7b9bef4401e5e79fe090d39dc0663990ddbbfc8139d6e59efd79143495df827b7cedbf8406306badf142bae4f4518b8024796c4764f7e66f583769acf146bea961be64828eff1e283cb2f49733fc4384c97ea86fea8aac26b04054772d6fbc57b8fd3ff3f8f8310848ebfe3beab99e96f285", + "fbe137a06781fcab8d395f74484f881c", + "3f627cd6c6b17a7838469bf0f08ee14f883a2195405c64eecfc0b18ac4b3aa2692f4ad978a7657cf30eff43e69345a26fb6da11a80b71f64c91b39ba328ead3dad99524e9f10322cc98aad5a9a5fdcbbff9c141fda9d7146ca836e64614b8329c860129b8b1f6cffa775be2d00405ded2377cec2aea176f15db3cada464a81dd4c3eea4987530a5da37526ef04c8b4aef5da891282eaf31f97edf802706c59e12d3da134d8b9f715ee280a8e01978e5c4fc9b33864714dd2da544b3310e689f76c3cb63e215d1a8dec686a7083660d0c4d81f25d", + "2db847690ba2dfc4640427cc28ec0859" + }, + { /* i=7287 cDividendBits=248 cDivisorBits=213 */ + "15645cf6f173ea7609b1173c331f0650a35011e1e6bf3c7f319a3e1ddce047", + "102a669e1c33abaa8d4739935ca5a285c49285a31c2ac9915e6e40", + "0152c4100f", + "064435388ad32adcd333d17ecf7f3b228dbd27499c857bc9706a87" + }, + { /* i=7288 cDividendBits=705 cDivisorBits=635 */ + "01a36e02c6406507bd3f6f784a0e1540c7b15fe5957f947734032734f4b301ba3abcabae2e1e8e94d68710718ee0633f0f74e1dfce5672529e7452a1ab9c5f1a44f16356d6feb2e20425ac8a6dfd558f14a5b0cc7ee9efe8bb", + "aac9901ec2babc1a87bc84f2001e23c8a63a35821474da96c22b2f267bdb7a8dc78f836779467a9b4bc97ac0f66645ad21f00d0ea9edee0a07d5d592fac397baa3b34cba598b715ad55221b97427c9", + "0274b333673988189111", + "95344a96990489933338e2db52b669822c44dbba219b6b0778af419000275840f326862ba76f533482131d3acbb14135dddb20be6c65d3cdcf15e8540be427139dbedeaaa5a24fad686b6f4bd86b62" + }, + { /* i=7289 cDividendBits=2959 cDivisorBits=2318 */ + "20890cd167464c9c67cc2333b2023544ea440711f7674744495dfed0d2a05a4ea143f7606045d57f3dc458047fa1bac4f6d9f7c369454deddf54343f4b8ae59a02f74c1fa44597c0fa128e9464d69aeef372c826f4c4ffb4c5a24c64c2203090b3edca8e73857df169b41359a8e432c18177a5291b43bff3091ee75a7b4ef4a38beb34ea2452874c43bf1e9a974de495b045b68136ec64a150d8f30fcd1766485cca93b3972a74683e2d94a20c84d088d288ffb620dd9fef2d45a53ae7aabcafda3f375dcb9fd69d3ac5738d2a375e13cb3bbf2138bd3478805569fdc1ba276f9a8c8232aaaf56406a0b1034f33ebafad4dfc5ce40eb6d9f2601dfc9856cc6e0b4af9e5b92ffcfc2a166167787c3c60a673504226c71884df6db094eb8e0c0b1fa38819ac6f7cb77550bfe054ad36de56be687f4e71af5c6193b0c2254ca62e3a0f2f595a4f3e22e6cad826471dae1c9a3f788cd08da64e6e14b2c721517ffa2438cc43aad3f0dce324ae3e739ad35b678e6", + "0fc0357766aa424d441ead86a24cb47101eb10589af45a93fdab9457277edd8b89dbec1e05ec7c7731788e8dc2c924afdb0c9eb487e4b56e44409f0336214ac8c17559e62335973064602d1fef1d3a5b6bf98ced5482c3f92ed00a45045253317832baf9bf90dcc10176f3bccc89ac3b161e9bd73ce1c9a224a90d92e25015e3b64f315cc760513cb873f48e40a85085d19378f99cd0951b00f936654cae933c82c0ad749ae2da943657c7d6b5f9fe1179c3942cac0efe1d3810f7a2db31e3ffbde6937ed5dbd14439ea0f2b2804f561c53ce41f45811b5e2a34f91468d11eddb3a25837442d265c191f234ebce6f3cc7e3ae13de9f6b26ee0f6795e2856ce8b47ba1b49e3807701ef5f852d8933430433093e02e3d78c98faa91f935a025a539fc8", + "0210cd1a6e908d8fdc81a52ceed0cb8e06ef3e5802d6eeb34081161e57f2353a074aa10d60187986179843b76c29c3f76135b6c3e592121d36e342551f59178082103109f67c9542f166f52382b4039b4b", + "02d058bc240c16c72b4b8e8e963876d3615ab3bd27d2dd72deed7e0f656a696c83d5bc4956322a648d045d4f19e0086d8234558df6f61d64120778bbb2866989641e05c374ba10c70c6fe87da966cd2a30579f9521d590b7852749c8c0b1cbb76c8ab85ebfd56dd797c57a94d16c8569183c8b925147cb2312af3b7df826950da04dc796a7d0ee9fda9fbfbe867c8ebb3b67b04b367e25961764b07f3ce64a10738e5101ebe202d33cd44401bb5e0068935266539a5db5e34748dea290f4785aa6a6d1f82fbb838c1b7e061713321b6d225718d3f1eae34dfdefd49d9a5af5497b8534994af586ca29c7fc92fca8ba31747c2da6bc8399d3f1114f92ef905c31d4b50061a1439c388a77c6488b21d451b864f85ae017a9569c17cefb17689e20914e" + }, + { /* i=7290 cDividendBits=1278 cDivisorBits=557 */ + "35a4266d0689a3967b2b8f8971f664408e736bb9cecf3ea0081def3593231e39f7ccf550bb204658b2f17199f94fdfb8ac5b33997c20e84224c7275940967521bc3de9929ed3e89e0018488be65b592b5a104ab084261b797c05f1d7c9c3d137c3143b95ff0ba41aba10d4c6a3dc27ff25443078d9c5bdcffb7c9ef1f3bd364673625ad746c6f8b4362a73e83742360e2adf759a6a6f556c01e38a09648c2d15", + "15131820147cc07501f289d465583e44bcca5aba8bd7d7c85c91d89540ebaf9a8ee946a65f78ea843edc66674e28ad76e0cf482c8071361c41ba664364e5d6a0e9e3dfc89646", + "028b98fbebac9b8f518f9b8890d83ada2a97bf925f28597339b5077de760a90e9c217fc0ab7ec448a973d9d408f170e738e94ecfc317350412c04dd3f26cb87ccd7dd21aace8051bd1138fe3434be577b425a424fa5810507a0d6c", + "14531aa905abac03dca59ee22747a989bbf86e9b672b3319231c4f5f74d6a1a9fa794f2571344d83e5f1e53471e7d6a081980550035b7061a31d356071c1150b829c4eef398d" + }, + { /* i=7291 cDividendBits=3193 cDivisorBits=694 */ + "75b11f88d07354d3b4e3cfca9ba9d425f679c3abfd453a3261004e9b3b13c1e570f6655a328bef72f6c589373dd851b191e26a69bd1b0d09bf9ed9572cc96aae0da25caef8058a7fcc6ded56025a6360db987f47461e22386c8a5dba835f0c2e2201047307d7f698747f2005410d007f8e56c322072e3edc0336c260f8aa6ac52de3a2289facc71e3d87dc65a159fc67b10597e8b9d4c60a760ccca47ddab68886916a9263576c80335cca2096dbffc60f8a17d76338a265d2dfb9ec5f26c67b595a34f9bed4e4115854eb2c102dd3c1690bde34024096b506c3ac4ab55b0460284a162568ec06a36436d76157f38fc00d19ed47885d46396b90ff6e5a1f8b4584f445403d9fcc0d6c6e6aa0d21183581279ee543f805a36e5a02278b40637951cc10e5f78003349d5794b2e7c4abf6f707a251b6a4291fcdb0674cf75970714d6ef9d2cbf88a4671b0db85a7771ede27cbf03e1a5a0d9a289d8bb0f1ffda342fca9983b813bb5d0cbfa1c8948f2aa757f91732162cb60fee85ba1ab7f13b6fd81c7829a4de93f0d717f70ac368738", + "352ddcbf07a2385e1ef8b915bb6fa6bb7d93409fdc9000a6707abe846cee40685ec22e35f182dc33dbe09b8c83d8e65d8e11c8b6369a4e4937d25f39b51b62bf646d53d380d4efc07788b545c813f5820d6e9acf902655", + "02368f17653e486f8d0f83c314d703e5a16408d08dd30ef5d3016ddda6ed71ecd3186dd702782b8e4d41ebe0ba9ea687181bfa6bc4a18b89229a5a752ea0c28edc46347ae624a8b5bda988e2e8826c4ee39a51ccb2e19601e90a40b19cec4a460826fb064714d9038f6e0403b2fa0816479d9b4e56f94255c04d1b503741e0bf66acfd2f2c0362a5473e5fd888a3604b48c03c3da0db6ed2947dc295a925ba9b0d3fd27a160d7119fb691ebf7baca9c86efcc749014aa2211471cd4d6219d03f8d4d82b1527941e62613e085cbd0cfd1f5aa36df404eec6585638b4b74dcb2007112a0648ce7703e173a53d555b207046a5262d46d087a0897679e3bf9677b5f85cb4950b85a44f84317770cff120e46e248ce16b2ad8a6412f80eb74a6bf06a3bea79e038776e375aa368db2d6744755a1faa927b38b2bd0a", + "1445619d52f7bdb5f3dec6600102c37922e2a1002075648ff6f7795df46ae38fce971e94f7ad43d0b6366d4ef9354d40a24efe935c2296ae05c6fb0af27300a69aaab293c2419ddfbd810b015a771999a622b2e52e46e6" + }, + { /* i=7292 cDividendBits=3579 cDivisorBits=1462 */ + "e4cd5e63d74c306f18ef1dfaea9c25f2f634c9acdbdbb7cb14254c9da948eee3f9ab9bc0f2bb5d1e840129ce5c561a76892b48aae262592fc1e96429748c6b2591e6147b01788491378df1c686a9ef6860372a6314660c00b251a86df4e0ef6c26e3a9651b2c739c5835bded2fe29e70aac86709bcc1c1df75e495413462bb377fe87f01eacf27379bac190b024b5648c2830f0653a5887e72e6e61fb5692335fd0d65ca3a8e2b35ec93cc5bb9102c3ea76f69d313b62177ca8761c5b145ffce3189bf82e4e790d1ae83b811e09eacbf99aec89032ebb8e05e97deb6b4fec6564893c64f525d338ddea4f11557e42d7b121bce24a96e481b80461618126eb31a3b3bfb606914989749b01133cdda726fc9e00bc8edc964ca7a29bf455b5e6e1a7b45f9550ae8e4f528df1142dcd98fc5e1ec2a2e97b0ddcbad7cf923a794daa27679016347e35a2f101e38b566eda4d13dd111bc2439f9dd2dc28b782a6ec7098ad10c901cdaea4abe091c702f59061d23c2e017bf769aaab0c64feae0febd76367d667bcc3edff0b598b4c5fcb1265e834fdd511669f95890e7de2c7b8fe2fcce771dd566cd5091fbd8dfa7104e909a643b570805eec5eafa8b730c5938eb", + "0f33d32e1c5ef884e17963557dff8263a909a81e78c2efab081a969f3405ace419020a6059afa2b9cc2785e35c7c4f755752509f54ad11645f0281df0b6f408160c286b9723a8a1f61a7192136efd5bedcfcdfd652e0a1ddfa125a00458b00b7ee444adbf1e766574364711ae12b67217af3c4211cd40ee1e68c14671d2facf98c381c320ff133e92475bae44d94ec139531e4edc1fdb8f37492f490894a594b90557b171f834fe74baa4cf9a3ff724fc36a72efe56dfd", + "0f0ce46fb034de4d093f6b6cc7cf5980d40be3d55af72c1a835bfdfc53bb34dfd76834b0da59e5df874f20d59f0faeba61f6499b62357e3aceece775c31c5ef78d44d54e7649a798c6e9e595115280d74123d442a5a48a271172b7c5baa846db48c6cefc19241e9ad6e510cfd579b1d633603629496015c56ac4c4efcea1bcf325fb4d29c9c2b6f3499566e7bf924d8d18bca77ef8daabae489c02ad62c51037705d6587e7860c3eae39019f73c672eb76a346eec7284ec0ef74112c7949d749b12366b5a805b39b06995d221c18380f9af1927f088148557989105bea57f7bf72ae8d954c34847d0ad9c35c12970e6f38fdefbb4c2b7f3c480b99431f699d23ad500bca4e4daaecb1", + "04feb7e13420f6d3040b11a71c80c44228e82a7b3980680eb097a884d885c86e2db25db87dfa02adb28fd75ebd0a5b86d350be856cfbf0b937c603d60eb1962eabadcfd67b90d9177d9d5ffd80dbeb4049f49e17e3b1dee3c94f87d1bcc0072e0ae9547b83abb81057084729e17478d7697c9fe61c07d9760e781d7aa23b7962267239c1c52a71a44ffa3829175439b5b8e5648ba15cbffe9f2d95be68db6eae69042b7eed23f2c63c7be3878f23e771b0874d8a50f0fe" + }, + { /* i=7293 cDividendBits=2828 cDivisorBits=937 */ + "051b4db3dcb02affac1deb2cb0d35a5558bdfb7f4ade40491013309e36845dad85ce4a31ade1aed06fe8064c9fbd977e3a5f1449e5841d5a2f0c7f88d5de9a42021e6ee57ffe209630e991236c8cab2e18de52c157dffa370c2b360a06e3a2363775fff6d03e7054826f25246b25e44b022f0016709059753f3daa607ffb0a4a6b12ae87c3d328f80bbda3217d46717da7bb8ae2b272939335d87512ca96d9219d3c6b5e51a5b42189ff88e52bcd35e81d743ac665de84cec2f2c9e5d1a9315470f0e7e7593a1af2fc8b5749346a56ab8a26e6d7cba04215668e4f583350b8c88d2df0f29d2aef576a3ac97e2850ce5cb86b8991ca22f9405a8d469fce2fc000055b44de8a514a05171661c2ae32c9594538174002ec17fc82422f0f83b023cfa47d216dca8d9de106c16c4e72610bdc5aad44aefffd53e658f3750138e6a146eba0ee9c3f648715eea1699c685da2b2f26332ec23be37b58adc359f4de3b53c6ca1", + "16424dd2b9443e4dbcd51d23e4ee743cc6c2577080f688308959d7e62c78e56ad3af72a6748af24f72337ce8d60756df8fad652197097be00dae72c590273154d2c43a61b11f07ffcb757f3858cf56b3594f574d9a1cba37f546c2a0d10224cdd72ee2b7df9139720f59b43b4dd393ce6619b8f8cc", + "3abb40d7076d82e9c393bcd5b8364884ac61180c9e391637e48b68a0bc34dba0e5fefb7b902de77221554f1dbcf99ede585528d7ae34462dd53291a4a3ff09a207e86412e09e327470985bcc3686186248430b4a4a60726918907ad6c54f11e50142db8a13411fada8d87808e97ceac72900b391fdc9e305a24209dd8c56ed430f452846deee81a179b5aaac25d7add6bb856baa34dddf959b7f6395ae070a9143b31bfe853a9a05bb0a5586916aacf8828196713a1f43d0db779835441d44b25df32861c4bdd2482dd71cc7f0a3eedb2fc1e1ef0efb8f6561d22c1d95b172568b42cf01ffca176a4a17f70068", + "03d33c9037dd7c77c8458a15a676b0bcbbcc3de48db62e9b37a59c5cc390ab7d450f3e8092e7f253b92d891bbec31f42faa16b51de55a80ae46e0dce55655425fde830a977db43c407e6bcd002c1e7efe18d57cd50b1b364cd20e7628fe04b0ab7d2dc2d0afd09f4c2fb8f34c997f0a19ee14359c1" + }, + { /* i=7294 cDividendBits=2992 cDivisorBits=493 */ + "249331fefaaf5d729bea2b1eda9eaecaec2fd63fb60d4e81590fe3443ae470c53e5c737e8e31136ffd82bde576211deaa2042db90628afb7ce93981a93df403430a21e27cc5c52094b9efb152b398432ac53a73f5e263365661b1080e7b46bdacd363d03b3a50ed15aa3eebdef2428c2f017ae554f9089e6d3acb462f3d83f16c724fa7daeac89c79b24880fb1fbe55a266759941f77a27a4954911670504fe24ab1f45a7d8f81f348a02b1a01d559443dce519a1a2733a15d854e5599f29ede7f41701d750507c85f2d8b2c1e143bbd62386ecb5f5f1949462c788d86170e170d67e54e90f38e21dde0fa10b747ad334534d475e3121da7090247881f44263117e9be566d6c07d66357f6e456840a1c5e08ab2de750ca5bf728e5cc6c3bb4e728020632924a4b6da0fa2ac2f9b50b8bf297b0d19b6f02a6e9898392c20dd7bd834dc5fff44c847a5fcb093298a66a5bd5a20aa03426161894e2f0d01c1485fbaafe581449b9356508fc4dd80211151b6dd021e96aee", + "10224ecba4d2d16698f8d08a6f25bafcb593a8489720a64219ee299889a59c717ba176aa5c61f737fcba5e2d139f3e0552c42e5dccb233f21c9775a26ea0", + "024456bd9b7d581eeb65e14c0f72f8cef07f489b531fd7e7318d3da15af723c512f7969a7b7db0b146a4c518a280c8f31be65f8d720b74a92e739b3572552f45bbbd14eed079ba1371f52e0837dff397520e8d0d100db4da1babbccf5ba2302e1ea477fb96937fb5a1aedf20ec768ec92a5995ab4eb7e0e85121399576330ddd9630a5889c6995b015ef970021b9e208c83ef9ff00aec67a342297c7e85769d626fa011016436feee4db8cd6388186cf702bc456c5c0791adbc50266da14b07bfadcc9f3c2b4f8aa0ca2f3b0bc2b3791c4eb6a4e2ad55fc1bf79ecd498dcdb1af77c60ce549b541b1df19d8baf51e010d7205f58accc1b95d44bc0baa6b72fe98bdc5a1c5d54f2f934bcdb345afea1f8df1569c8ef3404558c112d0850ffd7dc39396b2661572c4aeec01854927c43bb84aff40e37d170b82f", + "0fd1f592307a38282e5277a7f4a4905382e673a45494799be3b0dac8292842dfb8acc32f7ab01629f89916fb63065e42cbaf625574d5655bb9b3c3941b8e" + }, + { /* i=7295 cDividendBits=1817 cDivisorBits=547 */ + "2bbcce2ae74ea8c2ff44a1b52d049a0140fb7f01bb18573b9c677e43794a48c74def2729b5282a71690c485c7d033f7e10ac8d391d7ba292c35dc91d0967204c99a5a43cca113c19677c8d7b497b3039d13042261011e29322680495ba888f0d3bc08fdd80e1887e29c9eec2d78880ef6be2d38d2e295617cf5b7744b663f21b1b0fc50f2fc82959a69520636cef934880c02a7d5c215f3262fb0625e4f459b3eb8d1a04300ab1581313aa5cfdbc05cffa147bb686c28a70c21e4a9b876885482141b9fceebd813730db2388622bb07c84ed9cb0dcc044f87108ff8a0af7362f266ca2", + "05f474e6face62f478f26486e22ccee575d947808ace43c47108fa6d057667b6efabbb9c3648f19173a14eb6d71ec776ed32fb4139374c723ddec7d3a3f88e153d5d1fd3d0", + "075843c985dfe54575cfd98f00d4cefe6d8c0ae756ced5aacdb40473edb8de722c615b2e7d2b329df77b63b25bb4992c0c01b9c595b785a6f2b92b64b3731b45ca84e1dd7ef607ff4b3d8d5bfd661d2698787e91999c86b9b1797ae5d30827557f483b30d03aacb9882dbad19d1f800737af17dc7200fe957e7e0cd23e9ae7517890e5c746f197e3d38f2312f3214bd917e29991f38e6f902df3af6e866382", + "02c434a58b621f7201805e67737387ffeae09f36e23ff11faffaf2fb35ed78b421488fdcc2c5c0b13dc3f02dc008d35b0147754b0aa88a8475654ebdd7c92acc2d57336d02" + }, + { /* i=7296 cDividendBits=3223 cDivisorBits=2646 */ + "1cd3e113a96fc6bc06ac4eee469f3bec9d41a145e421dcb65131e0721431efc74fc8449d2a8d4210e0867cc683b85424ecd2de9c771bcf4778a3e1f07cc035a068bbe811736dfc358433e116c39f6d7e16a5d373f1d3d07c3ad0e0f293212d07e1b98c98339b9613e8831e67029e55f03853d369cf62b0fafb8a9d8c24736a50e2b07fab296f0b9c7beaa6f9fa3e38905351dc2688134a297c3ded1482d47d770bca254371ec78d9b19378fba1406e624535b5b69479dd3c2d5b5e1cd29932bdf81c4645ae8b91dfd2a2369cc18dc9b3fc8f65bf3c287824acbbec1a4481bc28d628cc468be329505d37961ff19be9a72c33827ed0d50706d9adb454a3214f71745ebb0afb244a176a435b77f9e3a7bf7c0966a18f863ac49ce78ab3bb045fcc35f699e7fb5ec65315af175b5a21de9e6d0c6d8e90c7d560fab8dd0688075fe36f22b1946c7e2d2afb01ba4e7990b222cc4185d9b884eac146ac145eb1b53c5fe01d585ad5749c3647d77367a7e6eb0081ba2f61c9f997dd3a60f523de7e5362e294740aa56b3680b86a1de36c802deb06036e", + "14a9a6689ce6de7158f833bfc91288da8b38162f3b1344ab72573c7994eea8528204f26b70d5a2f767347bbb0774715f849ddb2cc787d0f9eac1db0a0ed370dd52ca5f382c56a25b06f3775768de649403ebad14d63a7f9c15614ba7bf235200517a15af96d8c7719c38a981b66faea3e0c4f944f082817642f08e21dc7d61950a09ad4bf546991d0c915f55c031dab92fcb2d21e4a00e9050c9be6ca264aa2f5f679d4494aea646775bb9c96a449d3224d307378d8cbc5e9ed8e0390eb0e1f1538d694df548a3cde3d18ffa4fe0d7ecd2fc7e9df3350babbd0663d9051ca01f318593c36803557092d4068c14e89aca8946a92b42f0816e873e79ad6c560918ea5af7dac7f8d367d5426c4de66902f48ab9e187aa87567c319c7f5a5f79921f3c538e8e6f0c863eb442f1b45f1975821902368589f3bdcd51da2a0653b6b747c09fe036e1aa3bed94bff7", + "016528d8e6d84f292d3985cbb0d86466d7661dacb7dc4fc540d361d7e85fe0de22a459236067ee8a21108b9a429b1440d94cc2a94fb09c5c70c7558a6e3d9689118406d3d8341e467d", + "0caa50615dbeececfae0ea96cda67f4d328e6f06a7fb315ecc3b5d88e85e1a8d4351203be01dd708f71ce5037cbb759648360ce56a6ead301ec4f30c27e86315eefaff8e7f1715e405662fdf9047fe60db7275febc5590a437a0c6411947d408d5a2c3c24cb539e36c61ff21604f23acb3c6f432b8e7b6bc28ee24bc1011d45143c2a1ff20fc0a0956a1966c3f0ef0d060a4e9cfaeb85efdde51c58881af1ac8c3aa845963bad56f9f33439c0a706aef4dedc207b514335a580c6b901586f9c1c02b11c287af6c42c7394270c60e967a89a4613c13e4f88af66e4e668d075b5ac01fa351eab4e7ce5b15b37612002ad882ddb8fabe5210d805307c2e5b902f4f1b249beda5bb00acc36e23564971086a1b57201292834b8d94a262a730fb62a44f0da456b7daa4bd2e685291f10098ed703a24415426980bd555004eae8c6a9b918b5a57e3621f91f4bdd3" + }, + { /* i=7297 cDividendBits=2469 cDivisorBits=401 */ + "04799443246a61eadd1583cb862e032b283a79cc2a5f76c61c840caa916e371198fb58149eb27559be7e086d2b2a0ff3c2e5cbdcd2ac95407bd74a86c8dcfaa26afe8fdf92858cafd035df6bf79389013ee9de9a91fd59d76394b25c98e80a4e00720369d229989447080d521945b39bb9f8164a512f32a6cf664a5833496f5884a36dcf5d25548574849b9679e0cfcc083f18abd4002c0d4b548a0ce0fd3494660e7008e8d7993849a3eee134810f980cccc71037ae0e34482807a34614680d88beeae99208484e974ebf87afc6f57df3b094e43bbfb9a967ac6658dc77fd5fca8d85de65306491607aa87d4ebf4946867d784eac789200a3b7e348418c59c0f49feb472657991709acd09795d49ccc70cebe83f67168a1520b9c5d869dbc21de32596bb3e43d65a0861f6eec443fcc4deaf6b1a1", + "e18c971b467b031975a14110256fffe5ab10cd07b188193e66be7bb9820c51654e88cc24b81afeab093820b29c87868d41f7", + "05143da97624cb31eab72e1e39bf7dd319b597397b81da9e9e704e42d1a1ea3e4ac992ea7caa9bb1d71e186fb6a92dc00665b9007a490aeaf97f1de11bb8a9c952301b3c62e148996d6436d1c82d48af7cdbd4f1c89912b4ccb1ee411ff1caf5eec32a7c485808d4b3174cb9a41aca54f0cb861a2cbd39a495432855cfd089ae66c9455fa1a4bc4b925cabbd05ea88a893742401a302583cf0692bb360c00fa74f9cef855c62ed61506066f55a7383c702bfa7c2de86ace2e3ce57ecdfb671a6387aa05b716bdda35c5e4263271e57140fcc27767ed0491008f4f00b3432913e9b7a5d264707d5a182d6ca7423e2a56d5da98ae5fa5d038c0081a5b5515270e7ad8fc2", + "0be03cd5546be92e8c27179cbd5d1ce2943ae6aa461c3fdf2bdef5541a7ab3905b37a576caad4558824106611b659726bb73" + }, + { /* i=7298 cDividendBits=1133 cDivisorBits=1056 */ + "01bcb3eb5eeb7e5191c85748fdab3a77d3fad7c39a182fe27bab38aa667e835b74091788844da8d4b3f2605f69e3efde5ecd8188cfe7607969bd11b9878f52811a518966438155c466c2314374f07cb92f32dcc5c5bbae3e24d240a72c2528adb0b8cbd5618327f6807c6f03da3e04380ae5c30a72538eaf7eede0f518d04d26d984e4e55b1cef2abb0445a2c79b", + "a1cfb786b85eca98e7129620084a25d99ecdd43b43ad15b642f01800a374ed237c8bfc34f5b2c5b4504dbc56d583ea2ec9e706175419fd8d34ef3def0450234363318976f6ac1e53e33d8536cca385a177e91edd013a5798a54aa7e8a6d4a3365b996c71e1869906e24274327e4a61b3c0ef8a0143d2b5989741577b9fcba5beadd44d93", + "02bf8f319db831a8cae3", + "58d28ec0da2cd7164d1fbabee48271d4cc86aea19e850d72fdbe41a41b4f578183dfdb827920f094f98e7ce65fc48b711fe6de37d66dcbf46524c199698cfae1a057f2b9dcdd5e657b6ed16cb533d641d21a701a83bc892323b80de050400b4213b757b175cd363b75c34874692f3b62a6e618d81e287732ce976ebc2e18aef291b40042" + }, + { /* i=7299 cDividendBits=2396 cDivisorBits=2198 */ + "0211677e95c83cbb54d9cf929300ada1baa343352821c02278c3d05793e84ce2eb0b52217a6b20f8874c84b9de0bde0c23619d4f0fe84d013c1aba625c6981082ca5462bef954856fc581bd61a01f008644c810987db3eb92d03e737a6a4de46f5c58e2255e0cb230a7a07ecf23f28064f6d56edbedd6ec908c0f5cebf6f9af6cd843b42632af57646a8a2e2122dacd35b679ca1e306543df14d81941bc186f7643f7082ef16b898fefb713848eea267dc9ecc90805ad0921a71f0808765b37afb70ff3aebd3d97365d17fdd69a58f1212079b4f8c7e161dbb2cc7237c1c574dfb68117fef1034a1962e2e4cad6da76c911534c7b691d53bf7c28c9c3a95bb662f87993288164e1b45468672a7a83cbd54034c179497fbb54b877c8c06cb6d64e35be81905044d4989ebb6ce", + "063ff87ec9b815ef15078b9df10c245ddd15ae3688be46c7dffaaa5e94c3021e9e2e4ab2a0e25871f5bd7a6792b29a31d7b11526db40230c32f9a74d740e6ed9a5675e93df7c950e3414f5e74298d0dd38885b6b6997461ff268c1e1d288480f2c4348a22e0c03a458efe2ae0452525c6aae4e965575fc20a6cdf0c9e5dcaa847cfbd9330b8dbcdb5dc7a1887ffc14d63bf1d773de897631ee55f96cda2b5900c9c48eacd7a10eb2ab2e4a82bccad4bf3cd6375620ebc7c3e9e720155dc834fa40873e97345e795b6f15e56d37b256992c760604596a585f33e399801b54fa8593d7f70492ced33de60a20517fb744727a1978fa4ccfdf4d6411339b216df5556704b6108c41f34ff243e1c746c95d9387c6be", + "54b4cbe2a0a825c65ce7cb02df0c00c812e8d3a692531129e4", + "0469feb55c83a1fad0d795609a6a35ef74f014beb79c458f7a395fe5dc7d2901dcb9312d10b3408377daa8d7c758cffb8343c5c72415d63612f404e828098e72ffc8451ac99229da4c9ffe884f4f8809ae8ea3fb39790e6a47cc021d45d16589de0ff84ebd852e06130187d6d781bf0a9b56370ee4836e586ca320b39b8a1b473b420565edd337511d95ff8c42f12fd594e55055e564c25c3c1550deefaeadb1f97361210d35552105c36091882081f59998f6b0711fd45d98a922f8cde2aa4d3929e6c87ad4922a5b4b2ff7d4091666f3495b62c1204ef629d9ca6e8bdf0f613c81f914592b82dd13d1b08edb728f48c8aadf1295d91400802010755035e1f8e13a4cfeab1d517f8887b350c49b81998c4796" + }, + { /* i=7300 cDividendBits=1055 cDivisorBits=250 */ + "18520b71b95ea7ec9abd4a2c7dcc74493d0ee348389d06cf0a09ea3f3cfa4562baa006a8041d57d32b6cc264b1e2903ac70f4a2422ab82b68d39991db17212aa40805371ab3a099510aa2ba9049552dc1c26b1f3496e21bef8afb551d5aad47efc72607e391e5af66e44aa8aa28903bd1d9214c2172b0d3101bf1816200ec382a7add1b1", + "0391d6420b8bcae575cb9b1452a04d465e985229eb71d30fb43317eabff7a40f", + "06d0260bc32c23aa47a1c382b5fd255634d9909f35c35b16db13bb2299d6156bdda8a53d140364b29ac6bc8217f8a2e9ac123c6fb7b74d51452fc48cbea936b09f9ece072782cecf70bd077c2f6ce28301d93bee68eca8c7f310756e132790c3b4aaa2a6e8", + "01de3effa3415ad16629092b146dea5a411713136cf7b71a7cb0291653616a19" + }, + { /* i=7301 cDividendBits=1065 cDivisorBits=1049 */ + "295ac85b24104d3da01afc1d2034f86e4cdd6c28e14441fa77df30af9b488ca0b942d1a74d0b2ff20c5d891490139fbc5522f891b7fcfc46fc82629a9e3f446baa4d3584f74c30a8a6bca13060aad2905b127d2b57450df8fd7d542e1f92a44e6aca15192dbebe66c8a6581d6e8fb9bb44145d99928c3130378988e7e6f63386b1dea66fb0", + "c69a30a536ea953002136efbb0f8f98dbdca92d325335d285da4ed24ed4243015a6d9c79cf80797a9cfc474d196c528033a0c96caa3e10766d6c2970ae9d1fcf0d5bfe586b5283c3f75b8fb922a9b3976ee46a796717c2829f49fc06eec342fbb22bd15d3a273a800168b0848ec56a5d7ec051e27b3b26749804863fc09a1e2fee6ede", + "354e", + "594e1d5b00e13b0c543733e180e7eb62a80a6e3b4a0aba2f8356b4e98a91072092dc67f85da6a6817973e05273a6a762f3e0d9a243f573c5a711a9c388f61b7317d52a23683ceed14e89421520ad48f96987c3efb976aeb67a75e60777f1e636b967164ce756755b3dac349d5a8f8059ee0cbc0766345c8a47bbcca99c5192e70cb20c" + }, + { /* i=7302 cDividendBits=3837 cDivisorBits=2321 */ + "09677690800bbb66ecb2dc3db080550fbb9e694d528a7654f097120985d06d4a9ac42bdfafbef2c549599bf10add0a486cdab6361153e9faea7e6d9976af0dc2c715af3c9b134726b0750cd12ce4de647c5a3335213742654fb065d88a77c9adeec335e2f91d09b56ce04b96122868dba3f5a47ef0749de1b023a04308a58e3d55265438e82d744768b398e61cbea7e35111bbbd0e1d030187a4a493af55a798e59ac89a3947d51984747667a2a6c067fac7d836a74d9f06eb213991b49c24e7e4fa2c1682bd360e0ca63f8fa8062a0eb079ef7f8b05035fe55d4fefae5f1dc4198dacc00538cd1562c0035bb51f9bd9c5fa9e391c6b38ee0f426205493d897e9a91f789d661d0fd9baf6bf379eea80943c285bdaadcb50329fbb1bd908b8155246fd324bcb23fa6fb2c4e64d23b0be4f75e48cea0286f148c3dd4a11262266478f0ca4eb20cf5dfcf50351c9c2349d68281e9034c2c5c3e7227adbe5d02445d834e30afc39d95245010cfd95d55f455db009d916095998c6cb997810925588b07aa540f1a1a13077081ae1d9a538d82745e3cf9ed05e52ac1b8793ebc246e52fe72a3fd0d6c22560e9dd5b8b890539b888b5791bc76f8aab7d6ee81501ef1e9cce28fc5c21f7b95788e22a9dd18ed666769c79df195371793663fc382a09b8a", + "015bfba89313df851c6de08617ecc0f1fe91c16dac2bc3da5b8bbf8526aaae4075d13ac19ac513b12dc2116f54dbe69a7ae3818048cfe1e833447df5a1528905a649a2700deebf4af5108fc728162171e92b6ce18a5e5ee4cad1ae24f7a9ef475dfbe53bdafdea23f71c76c49d4edf4817b826edb407069c0f2fdce2c1edd785fdd62aac44981e79b91c70fd57f419ffa8e1803b804d81e9319d40b5ba4f95dcddd5af9250a4ee16fa0ef8b6dbd8d2c256f730be1f39bccd19adf17b8fa39bc95fd0e6f967cd27b2da6ed68ccf0c4b7121ba8a68f105d4be9e2a9ab22884e5048be80a1135794ee8efd31fe19d361e9fec7f85609bb7a87044efbcada443ecfce4b77a65b7c33db407c26385959aeb56f7f1e3f540a0b3fa2874959c1481dee6e64a5a", + "06eb17fb6022db92e432d8a2938c36feda34c8750897440e24b7da8340818abd2dc366e182d274c5e2fdd97a4ea3be6a684de546b1f8067a516b1aee1e435fb4c19f7a2797338eda059fa24b48c47a88f2ca674b73977481ae9fb3c1f754ac970003691089db49a27045966c9c0450a0ef7d4c1233d0da06d94b8cf8e1d4c588e642f932ee1a76622045aae0d78f3d3872bf30eb6138bdf9a32d8f2de1f44d9d68719950ee223e0fa93a2b2a51fe8ba973465e80ddc30d5b0465f6936821", + "20f35bcbbbd0761f817bd6c25cfbe2f422f791eb89a0c77ef13d8b9419697e8bb7bf3d8eeb6ba8de23ce33ba322076e81f249bd62ba61de3dd5253240c52b934651a47e5f4371522b7d00a31af154e14eecf9fa06b0f7917a2742928d40264ce7e85ca21710a50f1cd160788c8d07ed5184576b81f758e0afb4b997e6afe0dbb576d33dbd4b53ed52d2e773e6d2ca27ad1d8ecbe9eb4647b81f99592cd7bf0d187c3332188353fe5fde94c8ef50a39154bc53cf31f3daf1c38101ba26e2d37c61365820b3a5bd9c0e55069754a3512c0c713b785933d59cb0a3ea64c76d2995f3ce2214139820f28f4af4289e76a28620e21a15b11d94f23ba841ce223fe8f68242a5b65c18bb1ea6f6a3776b93c4ec81f9e076b7301426e4115a91c5509030e75f0" + }, + { /* i=7303 cDividendBits=3878 cDivisorBits=3635 */ + "328aa9bcaf30f2914df2a88ea4833d7e56d77554cfce2d457898b4bb1469521a0dd44149cca98049393e9b9c9858c27f8b3ba24c61ab29e372a27470ba2c61743da8c9287ec9c6bc69a75064933f1016b42b08fc0eec3d52df929d23d1c87f17c9aa676b8bbb2fe50ad53da36f6f15179597f0c410f370aa74acee5569cbb743b845f340c35240b5854bd3a77c8534d7ed6ad575eab5d0c0310e599410ebad71ec43ebe714280d11c8b73d7918447d1330759173029f7d11fe989992eb30022c636541c16dc0de5b18080b20b346a255eb147fc357c8626cd71696e48d048ef4bd95246ca05fc401c553f17262bebf15eb0950e63786519842ac25e2ff95ccab9be8ff9227a2e6f79ebe37f02dfdea79c694dbf09d470ebc6ce12a419f692ca192ee23e44c590d59e751e36b5b9808be7b607d700ac0d13fa97f24622e5bc8f7565d5fb4ecb334cf2306e2620b2e5c3170ed1ac8f7e680f61dc41ccd0338cedab3b25bc96ae5ce70c1754361db536813974b8c0dbcc3d0105999c5b321c67d5aeacba555a412dfa93412ccc2de1b419e7223f5406293631e21c3debad703f2953543dca7481df714d24ee6e2e0b3f8ffac7eaeedfe5a0722fb163e60487598ca0079e2f45cd554b5489e996a58527a0a6c0075208a99940e8d1688fbe7c311d333a7f7005b", + "05a2ca64771f2e053292f233c80d4aed4518791b23b534038314e8cc8798a71d05965a8293e04cceac3256ecde93fd0abbd32ee6f7d78647a73441dfb8d448e93a5e2283a3b9e1146ea6a8e301e393c06eecb07e1f18c058bf842cd817ca78f8f834e7c7bd42b7cf22ec77cdd2435aea11d973b22a6d63a43dd80929a2a5cb54d2f0c2b5f499176673764408e51bdec652a9b87f3df8bf548ec216532543395bc71f2b8fea6e7fc075e445d327ae91af46fc8cb87c1a332befe56df93b3783bfe341402fb1ded1b1172ff7e5b1ca4fc743dc5c4ea46b217a57514b813b778b7a5d46e6a56ffb18217ad6a11d50419d099e87d6555a3b956097e4579fb084e8c36a3ad248ccc636799feaf72ddd00a2ffa35ee328776bd28e8816479a4a08dde5ea87299e3e7744afb328020d32cd9bc03845a95066fadea1222c6df3e81e6b0994607964c69016f81c5c06f8d9e7a7726fbe14de4c75b14809abb4a4f4ee3f60548b83e3fa2a0363fe4973ff3c18c7b5afda4f409e704a1f5e1ce7af7c7ff5fbe42d7e448dafcfb88ef4615cd9f4a8debf6c5492bfdaf1c91ed9fac8456bb5c6d490369c9422e8b138d16a46974d85fe0600e90233353e95d7f25e09a9e260d9babd643bb83868", + "08f7c1fdfc94b522e9729cbba9b7cddc4031e651b2083fda716cf206633d00", + "02aa98ae3d6960218a0d1be1bb6fdd789af3d9fba2ce96f8827ec2d2f21dd5947499bfa5a49f0cb92025b15c131f40b414fe223783577cbcf9c512201e07040358ece1504018c8c00be5cce7c109adf295e8a11f02bcbc36041f43d80e7229fd107435b772c52722a4a15c40898e63365034ebf4431949189fcbaebf73b4cc9ea22557f9fcfc2387fc1d84765287e17efe4eb35e48a393637f8126d24455c427592bdfafb3a0a1c9d4fdbe691ca61aab6f7d4378d9f2b2af81dd66ffd51d86387e1d6359e4e74f498207384fe413dc0e319fb934ec249265e8b8d166b391734f321a8f3b606fe0174a8f0e886bcf84fa23a919facb2f3d7112891e621d313ae63a2b12b76b64065787af89d711f7bd05f1b3d36fe98dcdb8fb9d27b4c3b82091b920ecbfb7357e93badc8b5dad5e180551800ae9a3bd1949f716dec774ed22a8f0c7870382c6c6d6a999601e1f1475d5c96f563c37aff2554e922ef6e5f795859eaaf531b0f266cd742fb96318f5c9f3037c4b380310a0287a1f07776d4b5973067bdba398eadcfbd83a6951a9a0d0024ce9f59a555f2ae4a20405b054c4d9249d9ea5e90cd3179629ff21b3c91be001ced148a1ea2d35cc34cf38a819a47b0aee5518824e385b" + }, + { /* i=7304 cDividendBits=3071 cDivisorBits=366 */ + "5e55b402d3a56f0df9eb508ee06b7132063ab6bc5f9caa81d7eb7a1f9dfdb5f1443ab03e14a6f112175e8fe2d1a85c94958e6a69b4862d9ba17c59abc19216456bc83defe213be7bb96521cfa5965b5c9639f87f2b81916e400c67cde37d4cacaa372547f083c7f360933a77438ff176f9b9aa21d6a45c6fd30942c81f16510c7c21e8f271e0a9d9379252688e6125e209fd8c23b03d88c907e3b9dd45f8371b2e77a415fd82e1c005334f9aba12d6c1eae67c745416acd17d27c977c90969d15502c04636f263add6b26ec95e78699d1f1dcfac8ea001523e04b3514789a59403495577815189a0a8c5b82b7ff3df1635d2590ab036805b567ea2d7e06b9a37def479e5d582c2bcf2d47a8fc35edcf6437c78f9b5b1c95e6eece33ce9ad5d2f3e574a80ffc6483cfe5e93015eb58e3fc7bcd90d677e942863bbe6ec4173e7d368a02ca155ab729fe6f5db711398e1f3053a6c6da169a0332e2befb6cd9781d47100332fb8efad8c30e3e85d2d64ebc5ce58167b11a299b0428557595ba4013e", + "2a3256d56a3bee7b59855607895420a623a407304c4fae1c3a3d07048be01c56491b45611da6318132adbd7fda0d", + "023c503e409d91f66f3269c684ae51c66dd4646f514bc1f991fa488e8a3f6063268559efacdd249cbe4802f226f6f9581861cb6ad961a6c445bd6c10629e8b9577a32d0617287892d7728f84f2c088a2c6096000eff2ac556e366e91a083f44e11fad0717fd6a4ec062c36121d86630eaf67e67faa4e41d07cbe5ba0e16ca947f85ff3a9a2c5eb907c6cae99b1126626e003783647c705df39cdaff323e8281f26415f4b106e530e5bf70fc9dba8c999207c59f25ac95ca04a5c5b64bb6973a2e5f17cc9edf6621b81f31e2c161223ca5850dc35f114c1f4b4c3eee2ceaf77b8ba18dfcc0589a855e669aa1130d0916a4d33e9067e32697c058b0ba442666aecc2df32f3863c1e339a91ff15492b9e36c49702133f856b814a249382848ed189955074126e13daad4a13ddaa1a060e7d014f098e3ff525feeed09dbc446d782fbf9b139f1c97597b71d280a803bff17a0863c8", + "06e1a824f3a20bf0c833c8a410ad6b2a67e877c70ca51b9fd0ab3edfe285095e4afa7324e67a5e0cbc2edc06a016" + }, + { /* i=7305 cDividendBits=1588 cDivisorBits=1465 */ + "0283d5c721b08698d4cce5be7a398444b9ffd7fd51dacf6a445a8bb868d2c2e7a2a7b8c0a6b087b30dba6cf39f093ba9faae2eee2be6d9e7b3f19635ad5def3cd8928e7534f067fd580257b3ebb41a125bfd9523a469fbed8d2848d27c798de80f89dfd9372aa28aeff9646c3f9840987bf598c94b0ffb30a63b6e3503e6d39d374493579e60fd21eeb3be407007c942e3a0a0122dc3b9809f6ab49a6c3117592e287f0b69483dcdc5b96201aca93f2d31787aac25603a8db3f6f19052af8aa3a1d69905540867", + "fcfe2afa899111271225bddbc3a14d2114d7c635b66e60df6dfb7d9cc66851742b092735c1ed0f85ccdc474407b6adb971a4fbdeb9bcc7bb17ef50560430dfbfd3394f597d43d491b7cf3fa53e20d2c6ba409d3acc69ed018a7de70f665f203ec73c295a53a924365d61a9f9263db72f075881bfecfab9211d65cdd17918a60559bc3ccf19ed5318ca2f0e0a647746a64202e72d4d7db87c25fab911d9b102f18513f59b25f5cf2d529e3962b660528de1c39920cbd6db", + "028b7ce771c0a24d0e21284cac968afe", + "cbf0c078d20e3363612cad970fd1938df7aa66b484cb97e73622e466ba13559c9c11f1bbce2e5fb41d86adae7a99746302a9f5ee0d3b2b3e41b50304341915230c87db8fb0fa859c499d14c3c661c1ea0eb4baeb043b4a43b1141b2d58d31732f92a1faab1989b92df385b1502906f638ce8d1b14e9935c5427b6d9dbaa91e82f6cde23780ebb6c5c0398cb3a539bc22957ca32455c772e61f19c6fc050d14d1a4018495dfc19784fa4798c11b36f76a1e0c2d90f0cd1d" + }, + { /* i=7306 cDividendBits=3931 cDivisorBits=3466 */ + "073ad2ae23fbb622c9b451b595af1680e28dd4862994ec3f26a6c1ad04e8c757cea40d8f1c81a3c9bdc5e4f3f6bc4e8031bb59b553984ee9a50a968eb98f5fe2c255f18b1d549c0a2cc62be90fdf3b8932d58efde5c8bcbed39b220262d70d37ba2084620a06c216d3f57101f5412a3934b6ed8f513c306c099ea48e1812c55e03c26206013dad758698e008bfead19c7b2a5d1641a3824f2983c9f87d5d3421b5594733304dc7f473f9bac3f14cba45f74a575f96d84d3ff80a79b749315c73e6afa4ff1a9734951d566e79eb63b2b7b4d25878f92044d76f0319992ef2387b4077523379bc846ca8709e1ad969b97f61944a314aa214a5a2d78f3c28a41b3e707b62cbd4833f638200af361b9659ef6d86c37c49ba149a73fe3c143d46b5c62034a3c81b372e3684bf6493064d65946f6fe87f525ecff7a341acdb647d9d6df3a048579d75c6172063474f43b784134ae50fc86a85f3b7f84c18a470db9df4bbaa630b0b5f482aa97813ef25359867234455b484ae2635364f0d19457018c3c0609fa78bd907a0d03a49f03597c4bcfaa949c5c6275eefe2a205cb322b7c5ae0d921bfb5d1dd85218ffc01dfa5301aecf3b7a90ac521270c33d78e63680a54ad7ab9f3373b579df65808cda8bdd5aa50b49544eb51fe07bb3cfb3c79747c020c575f841e9eb439c4c67215", + "02e92687df82eb6651d36b5960b525b333c1b36b53e503512a717ce391412faae3cf361683de312f1acec6abc9ab8cf50f03cc8f44af742b63be6e36da504c0b97d4e9d28e2c37ee5f298e97af55ee1fa2a9a6a6ed58829d88f212693a4ca065a6303668f4e6949afe37c424d68b34d8b544f065d3ff00f71df79ddd273a9bc5ecf69a709e7d7091f5adeb0c82ae84cf4e30aba50ce10f6651b73453d414af71c59e1f3edeeffb32b77f2bf79ecfeea3ee4d063f57c7d9ea26bf866e80a23eb037dd2e6dc75df6932ff82e083252b1580c9598e77096638c19728d3a516e38b1fcf06638f57e64787bb50d9925708181bfbe211efd287746e7c9ce714bead78232a40415d53de052f2ad541e2cf1ccd3122342f868a468c9faaec1bcd8c6ef63ae518ea08f6d6194ef0709276c4137f8eb5934c45c338bc3eaafd69730c12f1ec0267aea477efa222be6a59bd69ed0eee6af6d064f2cfaae4cfe963cb5d0b202f29ff58882fbcded28d4ffde87317b127ed1e119ac0395802b12efd1df459b0b5f95945197df018c375ebf2bf7c525944038769e36f02fd6be6f7ae88b08080d32fcce48b17901fc62d2fd30246f2fefa773", + "027bdbe9533b4c91bf4db7e2820713f38e73d1948460a546b308ec9854842d999ea879f024d83e903ccdfa7de3241d0f2a9e631d3e46f3d414db76", + "721aaccc61f55ad12ad1c2e1a2b61c6364247f99d4c8590181612bbccbd49980c63fe2634984e0447989884ad25df658bafbc462dbc1d6393e7947300058093064f1f4c11747607a5b715c8c48b627d7ce2c3a3207ff6aa3ccda46be69ba323fb4633386bd4caf16063669905d9ad02d197153630ac6d46840e72365bfc6a907cb0659b9350b4255565c5e461714ce684c098a82b2b91161f3cde5f9a64bb8caa539bd41bbd5885375f5d42eebb1671ba9e2a164c45ae884d48bcd598bb208d7a9c3d21796a19bc2c898a21545ad9a6f9784b110e693df3e0351367f34b8a2d71d217c7aecf3f4859d3f89f81d9a2044c39d9f6270797c5e0629d234ff99b6d1de42e2edd1f3315a640c63716ae0a9a00e2ae239de1100a9744bcd4775ebded55daefcf06110796a13fe2ade7477f1956fb9d3140c3f8096bc86603fea32279060f091e423e13995d6e5c08f4c9a4dcad60e412ace425700c3b008f1ccf675fc445264a4c4aab9d9385f21d261d7dee14113be6451f065c59de0b2da2e46b1de81aa927b52433abf0af2505aa393ef071fed407ab0d88520364d4e34b83231941083d4f7f13466339ab1c1316a5713e213" + }, + { /* i=7307 cDividendBits=665 cDivisorBits=72 */ + "0146a79e741944f572f9e98a3b5cd0181dcefbef1ee862ffd8e2e9757a01ce21cad547854309a42c917ca20c0b41e8dffddb4cfbec9feaf900ed1ca06ca867e761e3f88261c8f45590c0ec9e36edf722f78c3fc4", + "dc9c910b1c157747a7", + "017b0db96647dd122be7651ce3e162990f0154cc1b0dacbc3e38fc608b6602103e42ce03ba0abcd8a81da415ea5c84a8d2ee9f0e1dbb482a8122e3a91493bcdbb2fffec3c647d4867e21b6", + "a68e81cae4a650c80a" + }, + { /* i=7308 cDividendBits=3194 cDivisorBits=466 */ + "e249a54d6d519fca881d6ecb65ef5cb69afdadf836c4b4e0afc9789f9b9ea25272c778119fb6e86434e852fb145c7872d4bdea3ea77a407813a07ed97636c3784ca5896c6751e141ea48e3e5939235393f73308b3ca2b03093cb033724c7465f3cb311cc16f48c570f42170e558965bf797dbabf9f544ce39216875d233878b43bdfbfb0e422dc183f8e8f7b76cc6827d64cf68db5c58deb8e2efac6bf0ac275ab7efe0f07536a6dc0e06b63c33ecad31808b54bd6da4283530dc64025a7f2801560683f5241ff8ac7203ddad21c7c726e27e47a88c071cb2147e281a91876a7b198e18d987686fae98a35e03feb913522901bf4a6fba889df16bcd1aa54e654b4c331290c64337985bf51da852e46f62f94a9b6b0072332923670f9ba32beeeacd15c70fb0220c3e5565e60336120421f7084ec084c1aaa26622bfa285f869182beaa4b75bb482826e7af392397c4d36ffd0abef8517c932cf8747cd59260bdcd4970103cfe5ad0f457ce7b5ca6a97f09fe5ba51ee5ced4f484a0b28e0d0409b87fd884df35f6f1cb5a8bca848ebb", + "02e1f8cd12e2d05f1b1bf04ee77ba272241080cc0af4571419342db06c08e1e5e6e90cb99b0be962183c261b610e411a52d467d940024fc65273d0", + "4e7f9a285532db048e98bffa4e2183b2e49a4e79543486fcbff3d85c120a95179b4b855ebb0619fc3750648badf4a4e29f8512e9fc7de469e1684e5d40cf6debe099e2b450806a2ead28382dcced97d07fa11853b1750e0688f7e5eb76f43c2933cfdae7cefa0c4d0bb15d800b72f340dec9fe1ab53b4f18ac11679ca772b45c51b6fae5102eca01310985ef531acde7a056a59c78837e242e186d033582f85426a7e2cf699091f69166a9a778d520c2f1e9963165c65d75ea9bc4848f4403280192f834e691b1d76722391690fbf6889b9bb6abd1d00582d416a29d489ac06ee4d48587d3502d234e698641e68c994b5585753df74ffb99bd9ef15d29c730951d9ef0e85c474c9df46bbceb5a5ef6a2bb4da85859cfc55d1f85f185c57a76f857bf56e6a3683475bdef081d29690739154da4a094b849bd084697a18bbc69f130b64d70a6561130b0a658a5d4529473872a23f1ae", + "025e8cee606b45490be5b5b1a72145e1de808dff99d5c65a28a19fe9d2643587b7abc0e4ca6b875dfa95d737a8fb364ce8c88e6ae987a96a03075b" + }, + { /* i=7309 cDividendBits=1753 cDivisorBits=419 */ + "0124e95559f7833cc7ce2e61b74883384457692e11c1c3d741164a7ba85ad771ce5e6f2e5d63a719104a7a3c2e9f8d2cad5d7fd5e34c8ac0dccc18d7e1affdb75d2fbf5301668d04a679a081e81dec898ebfbdcbcbcbb61722165b85b6acbe486ae66e6b88ce184d8ca88bad275b1dc5eb5d2261853cb3ddc5832305abe3e999c7a842dae7c78a047a1471d14c96ac94ac573af8a95be838ce2eb98c8b8926dc033414e53d6b941dab74ba9c8b61293282701774cc47b14d0a0ec9ba2de65ade76cceb24314bae5c65895c4e6229cd916169aa45f04b27aa2df17c71", + "01e86f712bd0506f48c037863db2a24cb39943486929aa4dbd9cf7581eed157df2dca16e1dbbf4bf72cd31a1aa9733121b4ace61aa", + "9985826907e635340852354316dc774df26aad1ae2ee5d5df2073b2690636cbbeeca613853db456d0798da87b7a54d587b9fe3a2bcc33dda790627d8f3e206704b9c9adaefc2540346f1cf17e04af3cc42753ed9ec2a995b7e77dffad46d42fcd9e6ac575eff5a85c7a63e35bb5f2a1c5ae528a04eec7fd9584365574ba1054d843c86322f89d5246f0e3fad97446087d7ca47063d389f7a94261725b71adaee973565b93d60b4", + "01920689d1213809251c31aad4a5dcc60a876079e10cdc79a405c527eba125918705e81226046e1cec5d3eddd28b1d7e9910b310e9" + }, + { /* i=7310 cDividendBits=3352 cDivisorBits=531 */ + "f2a579c75dcdc092853761e98b6463a8b13f678df244c0231692ce85ce70f88112df4435139acf081ac9cd6f3c9e1826e80a503ab155801eb395822b0baf5d38f1dccce01ec0da6d3443a51c3eafbefaeba7b8d12e07a4e3b46fbc70bfb5903d5f7e27fc1d6dec047054c5fb8304e6f63afc07c0b7cff7e9214fde4838d21089db9944274129c3fccc11ba775d57ab0c8f798174f0a209ce894ce7c360808c7ce3d9eced2609fc316587ef0df2bb1fb619bc5dd7424a7be82c75cb1f9c22e1397f4ac8b000c3c4e5bc2c5852e144dc1c4cab0f5c1fa20144e4c18167f49aca48f7686b326b49dfed68b6eed31a089a96323f2e1f681a8967cbf719b9b1ab9fa6268c8932213ea408675db8ff250a2d32cb4ae323c3826099792683954285721c6086f177932748d352eee47c645ce708b83906ab20d071087715471f5db30f083e63e59673b533f6d34cb34831d7d9e1ad6004b50748ec5ce567a20775b416e74fc02756673d3ce195376761ec4d714dfcf2abcbb4e0ccca1c9c3f6f0daea0ec737346275e0f1b7bb8cf807e9a6c058efeaf751e89ea3fb71d7e9bed28b865150b56cd", + "07e7f739f83dd85be1f7dede7b9354357797763396fb60610d95dc307c06d27574b3e2d28e186971aaa101474a98142aa5da2720db94bcb575d4c5918da028ad61b3af", + "1eb0e38c2b8bf571010ac649e6d486290c25c45656e7fd08130b9894987d4fbcdd9fa5818ddd5b0dbac3d22c4fbb056fe2475714e60b4d914485963e0bc20ba07dddc9f376bbb12093f8fd8217977d1d2e391d95f95b4af788dfbd900121c607309d509ae5aa92a3f5c5756306ab530103ca100dd19567d986bd7b4e5c7afc7a9344229a894bf18a292fb2bb244db7741f4936a8526300e703b2a02b2ccd1bcb59b975aec3cc4aa990cfa62974258449db97e7fc1b359055156973f39ecd6360f16b45815da915040cbec2a78d270e6036c6a5c6b03ef363ea47f5cb664a8c834c46ce845071a5a53add9ef052c46b7a8a2944cd5531821ff3055f9009e17ffc7ccf3546c8544572e8584350e467618245eebc22aa32aa6c76506435f5594ce721f8fabd7f17a412217e79bc0d7c4b55a573cfb7c8e7414ca6cee742031e881488f10f114c387bb0e4a6e3d400f3db683c52c601f97a2307186d2a0f660503784d", + "846628d591fa10854dc959a8a9c9bbdebb7b81fc3fc6099a5cd477489e14450b227e644ecf9df2acbe009a209c0b4c1a827dcb48e975c5788adc4a74b1819c61432a" + }, + { /* i=7311 cDividendBits=2283 cDivisorBits=1010 */ + "05d7dcaf936a52a235adca708dc8d8a187f92305a19bc2bd2d331ac572dc93962356d5848e44a1426897c43033e2377ca0ba32d2f3054b8d91e8f9726a2694ac7bfb843226b3c89cff78bed409e4ad1a31d733d27cfe5e14190455c7dc6551d3311204e7825ac12790466ec0f679482c09510673479604dd425970c8292c3ae4f777a01cb4479c0ce21f45e859d3c28ef49a21291aad3e96abb2e6d11444e03f343d9b2b4a1d17740d76129bea9449c5047c5f93bb37ceb3361a04d40e61bac47f4d05456b2600bd163286da2c43d6bb785b0ec165496bdf3a12ae3043c6edfaeb9eae89f77572195cabedeb9fabf4a5056d8e068963f439d99a5733de2fc26cd140f0b37260357063205a6031d0f59d0bd41f234a83784016f28e08224b", + "01abef5cafab1009ecdb2daf287514545a0244eaaef3b29830254d7263035b1a072224dda8bb0b69649b6eb0d24c06644c45fc3ddd86e49b68582eb73f570f445484bc5a2b97f3e8a1f5e3881db4d599449e605c67a62b45849c8b0caf424ce2d95e665349db0279e075acf658f0067ea2234f00daddd432340381890765cb", + "037edb6bc230c5db538e8e754132dcfcdd0c8f51b7b516bf2a1644356a5157ede388322cfe8c2b3610bdaaf7a567a65b357e67834d158ea7a04a57d50c4dedd189c3ef4bbc3466b67d0968843a032fc3abe9ac73cc70b586cd4209d1b19069373d55d2bff491e73cfc821a42f3b7fa6ad9499e67d8328d7b7c77ac50a7fcfdd94ef20596acf91525e35129a69ad941b235dcf07da5c9269393fc875d37679791", + "82c2720f21ffa80c13017096f03bf783f2c8dd566ba8d3168cbb47d1b8ac57a18d26fd03e0c6fccd41f163b0467b49ba4cebe35344e7f1afde40f9fef41f7eabbeea4af38ad6adb61e1b1c9e6616f3b8fe7a35d531401afd6bde6377495c514163ef6635d0060541c3122ed109f456dfb1d2a77ace69a9f7f229021fbd50" + }, + { /* i=7312 cDividendBits=4028 cDivisorBits=916 */ + "02f481e95d3fe07e50959a473031820da8b33d71ab3c8d90db7395cfca88f10a0ce27159db26befcb3e913b47a8fb8ccdc010f4a4f3de72852d6b21bbee117f6a9c8c77542bfe107671391fac6ddc552e0d0684a0693d1f88844d05fac3dd71b88f09acaa9e3872dc91312b1e7cd3a890e545f7021fa913c3fb552e74100330eb0f7e9ca4f06f5294f23012460a06dcc5cac067b714416aa0e1c31c2eb2453a2a6ddb3e107dd499111e1a6c677f588a1fed45d92d5c29af065721ffeec1e8ef20efa422ddb6ac68756492a6b0a27174eaa35131a2b1c86f83cbb56dee7662abbf144082ce90d877817746125a6437352816708aaa2f8926bf40d8672d001ef53f3acb438742703f34a0becee32824460145c2afc626f814a9afd5814207bed673dd7bb0b52215119bb9d11bd0abb8a2e70e1541716fb10dcc84d917f2231e738341e943eedd513dc9c316c3d2c3856aae6e1dab69b0e3c5f16c1fc1cb8d697f81e4c4fa8b967c892c880098cbb59fc50d7aca4e6851259e13cc18cd3cb55187e944269cdabe0b92aaf0cbc90da232b900e3921625f91118e489e6b2a309cd03c45cc0986dfd81a851a6e980ac97ab02fc75f7cdcb4c4239bc032d1c6ef1071f9a6648e4efae295354d8ff783f8bafb1cc1cc50e03b0f9be7ab11a57fa1a6aafcb3ff18e0656d18d75dcfde44069b4dbfce52ffd6520d8e64", + "07bddb632cea48c5a96e1ee17247af2d11ec7d60a6a8399fcd294eb773678b4aa10b8afb7dc1cb2711f2b828aa70ac3fd3441f4886d7b5ace463de0e8184c7527fd2cd19ac473ed83fe398f0f89a6e0e7d7ebc3ff585b9e80a794269141db79de147f95b65a070a18ac979bb3c47839a45e399", + "61b82bcd655541357e6adc159ce1b9e6f6b241dbd2b0be666b0248301957ff2758cbbf7793130de4d152298cdb8c72ed37e83569c7f9b47c83206a7b6a80ed734a1bfa2a56ce08650dff7613d04a1d075fc4c4e65278b7f4d520d3f721c27e0f5352eced0f21fa1173c668e2bcd788a12418bf5b5ff3910cc388149a72f4d3cda4f5352590cf7abb169c200e5e1328a24abfef7c629f9ad34453a7a41293589464a006a8aa6b29dde9e9d14b0e032ccb3ab685098df25d2661a8d4b6aeaf126086e16fe5814d7c0da82e5b9883fe1e595cb06cf413ddd4ec4f0530f35eb03ec2a822d4957ae1822a7bdd7c5271f6bc3eb5c04b95dfdbe0007f59ebfe53bcb0e74ea251048bbe2ee12001879cf659d417020a2e06e5f2728f43f1a9e87a0ac633b22970508e02aa6a3b6589da0b5b8ec59735adc8c4210336da04daff0102c623f18c49248f3875b61a28e8eac4c04600c88b4073b42261c28d1328234b0306c818c23b0566cef1e3cf8dfeae836a1d2cb71f24bbe5a685a5e663c24be3bc0ccfc814331dee", + "070cf22bb99eb1cba525b8f6ec66092947e69f7a0bad1a5e145a6fac72293d98575481b93fd19e2949eb604d92f97cecfa87abf961f9f7ca56619920e3831cfde92a52a7c235cbf1915dbb696f59a20efda735399cace183c2e3a4601a6648a848773ef9c90bb089e5b720501ae2c6aed0a126" + }, + { /* i=7313 cDividendBits=3813 cDivisorBits=522 */ + "055c0789b1fc48915b3bb7b3d7f5c2a20cbac431033d7efc8438e21a36466cd925470cb635568fad56009a225256dd55ea8b57b021d81ef3bce48b9d84a8a2289457332929c0e9dbaa0cfcf72cb716e308462b39f3b2cc125448a374b02d1878a34d666c1967c3a7807ebc1f64b313a289ecf512330fdf35244539ab8c509954d08a391676fd238cadab300b7710a01bf0561eab4afb5baba6038a12ca9dbfed39f3fef07fdce8def592d14f8f534eef38a649c8807267151d439bed3c8a4ae474bc3f591b0f8376bdc91e93dfd1406059d240c93df0b6a040fd65c193d90375bcffbceb9062afade35cd4a372a41d724f5fddf7a8cf51843b126b3014438ef5afb821311be5163225adea556ca6eb18cfa18fb0ae67894823ae7e2460ce83cc4eb44eb97f078876823759c8cbaca3ae6290d0d6f260c56515599f4510adac52ab30c4a08c08bb7c2da541d249d777bed6186da784589fcf19ba9a3a8dbb61a827284fa03911c526117032561bf665491c3c4763fb971c3f64fa5a5e80050efb1fe6b704e7c8d865fd6436ab3ed4be50fb47c7ff02766f8465d90ba8cdfc8203255a0dc321deb6d19b52bad66a0eabd4ebf27b80ef7794cf880f9db112a835841f782db1d8cf32a26edc7e792b465f2d2db85873a8c034ebb8733de51b", + "01a197efd92b03728e35554d61f945327152f41d52c20aca09ccf94315cf588237a4c50403f1b61f382a69798551c930ddf179deb2fb55f68a22498747d107a33501", + "03491a9b4c23eba7e8163fb1a1f589732dce0561a8f67e13de72887cad52e55cac9b171c27c0fe43c477cdce9e90065d7c5ce6f416643a5f48d58e75248d500fbb1f68d4559274ef510c0543ffe0d1c93f060ce407ceaed2b66dbdda1e53ec1f763cf83d1c19ab5c4bff2641d7f65ee3d3531aef8b7d863d28d5c99207b4381cfad8a64345028092111e6f02455c3f50aeb96aabedec05b7e89ffd89e8eca5e2a80f94cbb5400fdcaa415ee6385b6662ff1c30ca8bf8340a12236a91aa75850c41cb600724d5e9a8b79f94f72e6424e9b7fb6dffedb65fb845236bf22337869def0e0d30f13a94edca28872a676926895da656b3cb1140b4f82f106586a86e5498e2268e4886e060fc6da08731bee4aaae51c742fd0ff1c2450ea43b61f30846b12002d111d7595ca93dd22f1e91dcbcf9632aeb66edac2a8bdfc4830ccdf607113501da939ebe3285130d3c75ed188a8c4004b4f572b7126f5819d13e45cb0a104327a2eef0087f36c0c887c1664bb0ec0ffec8d3697617ffbba73db1e77baa5f0f2a6aeb8163234aec030d1fec85cfb4511b2cec9768dabd4bb1ec", + "9cf33dd8928f0a5d7447636e9e9404305c1a9310f769ca40562706343f9d1ccfd50de59dfb37e59981ce4170e97ac75f56f5649f50998fbc2713dbeaf14cd8572f" + }, + { /* i=7314 cDividendBits=1777 cDivisorBits=613 */ + "018732ab288f4d75a2589c0b154e7224d6c9699e991422b00c988980fc49d51a9703f135df961ba0bb9d9da98895453548146cc6d1ec948552d952365e0ffe06922eae0550e2885ab1e7506573dce03c527c1e49876eca71b1aba0ca64288ff83c2665bdb4f51113e10fb20782566d9b0ca9b3109da73f5945324879d4b1a4942f49be54c82f59720f1f2607763ccd6e8fa08c500fd5f9e4bdb1167183cd1dd0d5dbd632cfde8fdd3d50436640edfe9d0c681f5eaedc9042866e68b26b7e76ec21fd36ee657d274b7abe33882b5a1202844b1b1a4546ab93ac17f39d8a2d0f", + "0d7178876bce09b99d5b42d9c6e94e4133e9c2b42427f890a4b1abc9b0268eb83527d43d5384929c202ebf5a365aedbaab32041843c34a6e69d9c22657599a4da789a608954d0413c335edb7ad", + "1d19971546ddb74de6172090daad33919577c4be56821baf67d2a8028a5dc23299fdadbdd748b8ef3bc8bbd6cdb4b1b7e5f581d24383aafb9706024fc86664eaa026629e5d54de5773139235b094a5295b512d46f99886842f6328b85b9d26fda1e1dde4c68a0ed95206bc15331124373a28ed9a57465195ecfc793aa581fa00e16f2e847500045e3a807cf75231e56411ae", + "069a48a54a210c31ffdca5bddffdb35f9fa902ad8592dc156858c4d412f747a2f13eca90add05983333a8377ca426fa8fe197f39a535f779408cc9cf5b5ad5a7d2f90f465722d76a69ac30d879" + }, + { /* i=7315 cDividendBits=3366 cDivisorBits=1941 */ + "21421a31dad54da25e2feaada06fd65ecb27e354cce56a65c4b72bed5330d1c1f53eff7ddfac0309a02c49a26a0ae488f9e42c5cc971a2b64db8a22323fe54ba93d836661edac6dc93fcc1e45fd2460a068c72f50d0ac505b9dc09ebf7f91a84f9ab9e66fb259fbdd99db9572c0a6e9088e6b9395fd44b5aa2aba35d0237d9247667d16ddb7ed5a5a9a4ecbd09825c87b834f98e0e3815818156b3ae3f1d705d36648413850ee88fbee2906068bb5b4e4306209802cae559ce98c8755608ba4b8acb81d70a2a37b00d16bdce7a98d5e6c2430f026fb054d7a136be2a87ec383ec534faadd19be7bb69cea23e66f8648c529996b48590e191b24cedc2b73f27e5c0292a02f252d9ff4cb1e3e924ce313a4ff7e8d723d46b851c72278bfe8b086df96ac52d24db0ae5fd6cda7f4299df37ad17f42cdb06eb4f3f00c598f830ffc2015a97c197821938fef3e8759e1b364566a3cd13aa1f1fe621b2493244549e4e76d71c63f0c4bfa84d62773441e6265ee40f3c17a5ecf5cc1f737150b0bc1846089d4be5883143fe071be1819f1bae72e8ccc89a583eff96fc48df36eb94a755c76b348567", + "065cc400c198a0657e7d64f89e67f6d3e6cdee1d43b26cf12a6d9de523fd6d0743bb9acb2d75df65172795d56b7e834a1dc9915239ea8cc9a01275d74092bf8c8109db97f033a20e301c25069533627d35dfaae4c10bfdb6af95e260e80eaedfed2d43772bd6dd86cca44257ae341cd4b111a56bc6123f5ee7d5c2a6c53892aad46f5a63e1609a2bdb1d56e4cab0f9b99dda399a6f4e767f5a7c3654aa76b7249167f4d1af0e331301f49030d11bb0ad4aa3caae11b976deaafb875da48a495a85d3f5ff506422a285a902a8ff97ae4f0103fa1c04e16ad4870b516238930e57938f06b990ee7f65284189f84b112a581e81c0", + "053a32930e312303d5f82de232ae611076defc8754487b4e4d6dde03e2d4c87574f6dca660f495db9175b500c4a73245797b10b3735bda4e12a55ef9fef563fe847f2f413030353577987049ca8085398d89d6ed087212b3229c804bc27a058f16fd92c95530c7155ce6b8aeb80c4e069072fbaf6f376301723fe06d308a89db594495111ed6ef8ca28041d48ba18fcc11c58b3e68f9e5dd30620f25c2601267caa97e20c024f5e39a78e2221a02061f3703e8", + "0555cc81f79efcec63d64b16340eb440d48ff912d3e29da982d0a4a7a3b417bb250ad5b654487187b8b58083253e47d32321f856ee8d7932a208f2c4d263d6cf4e1f8b378cc18e25dfe8420317e3f39eadd5db061938bfe1c9cca25637e926b7a11ab4d7592f37309c2f7a54c29800cfa9a691e91b5109fecd7d2373a6141575e8b7629e043b1fb707e885a95afc7d1e640a3ceaeb24e3c1a63a0027f40fc851ca8c30072fee2c4cbc7c20a6b0e41fe2fc3b3d6e6863a5d9350b87a73e69cab5bcfd1e56753334e79f8b81996958a181214e3941e51d8d8d3ed4885b50f4741c35ed67da6d4fd82ec37d41e36d1d9b13c9af67" + }, + { /* i=7316 cDividendBits=4010 cDivisorBits=232 */ + "0239581c10bcaa0bf63ddbb815d25e783f80f93d70ff4f3032155a33640e18ece65281ca16fe9d784e1ac32064f8ccb123e70979003caec7d5615209421561472321001d4666b53e8434384edae8a0794e8fd076e2b90724289108818f83802ccc535739868051a7f9a9ce0373e7dc77c56b7cb8b760535ac639719c5a59c716811071cf8bade371c53636bc9a4fbdacebd97c167a6842879b9425927cd3df70e25633f678e36a8d6386c4144a68ee2997f09c67481278a78f88061929dadfc0145c4d7f4d09fe78fe8e66cac54d8d6b06450e7537533eaaf3008221cffb6580686ef24bdffcc7e9ab92d4757206048faa275d2583bf18e17ae5234338a727ac955ffb3174950519d84066e843b490ce23d1e697a9cd30cb6cb66e03121e0aafc532d211d8e6e8f97044ab1dfeae5294357ef99a05f48c2db413777bd60cf92e00082100e49656f3200f5398f7104188a034fd5750b2a6e5a3599277e5d2c31e13bfb970075f13812a8ece0f22c4b4c291236367b9a1dfcfb689715fc19cdb9d780a67cb8595263752d6a9c409a8acd71ef329281bba4e3ec41b0553b0ac4f23fc058ac5c622120576bb3b50edb4256fb1000df3838284884baa00ec93fe1d35c71b38e117486c0e35c2a11ec86edcafee23f264ef67d281f4365a8f36cc2e5fc6880c5450bc37574440f77e36f94ce9a656739a661a", + "4b6047b45f6c5d7923506fdb8ea50df94a04f96aac5803aafab3b7559f", + "078daa38bb268c4f0edca170d71c4b4996f514f57925a6d78393155fc103f79eb74f8762abdd3e8f29cc25fa5f025457f94a0042e892011b26179da56e9b9855252ea247bea47cc6e89324b981c7705866a28fa5d7ec4d55f0e7835f131c1795dc2dc131da7bc586b6cda80039fd95fefd5d1f527b9296d531221a2e1f9994bd1d9b2d8cee1941a42abbd679b18543e368a11eec8fd43d14948384f48c6ec12d3cb118af1f965e1282b15bcbba1fc5fb1bd13a42822a92ed936a3d84c7c8527d6275fcf74337fa5fc2c41768cef2a3db9eef82627a9f1828aa872910d30f5a0360775a1138cc91c06f8bd314ae0d587c176f401e4f50ad29334975b17d341c0d3c3423b669c12230df1fcef1689d5eeb27f806a49ce9d66a5a040aa03dbab5e2858f3b7205b87586fbf5f5ec6ec08f499b81f06b00fbb83d973e6b0fa2e004e6108524c5b0582d10214968dd6683b1632827c907124fb5b227a0b245ff11fbd60f12d839a96665391386c3a446629a1d77afbeac02a999a08535f7f458d9e7a595f0235c4982b1a5242e43691ff416106ec9d64f198eec00eb1b33b095209ed60ab96d7fda619c9ccf6301ba3ea8e79c87011d39e3e7fb00b073808aa4200a2d0bfe941e37332a4e018e91c978d8ed70c99d899706f8650bfb", + "21da567a3021b9be84212926254d4b9afb1d2ea8c9d711efce8e709e35" + }, + { /* i=7317 cDividendBits=987 cDivisorBits=30 */ + "035c6aaa6b53bd9f030b170d0daae134e8df040032c754e180856b71ea140e97510a366e06d0d155e1e40cbed670c9f7a66251dcde87b1f8e21b6b454922963cf53fe4dbd9721752ea81cc34c3b9b9d56820c800ad90f3d7c5a72dfb8dbafede65407ebcc641db3609f29876e014ae4bd1de8dd3d295effe278482e8", + "33ead10b", + "1092a614f2641ac0d6046e611c19f2d0a99c93c8c3356ea763ccb7f7a44a4fcc0b00b9ce6b78d928b0c364d0aab0178cafaa13caaeae344d0c869f076d1402e35b6c5c5f7902d6ff61823050ef76e7bfcb52490ef97648610405f65bfc4ebe83256e8efc070c9c1cd5d25262c15455fb51f4ca9cde3280ee", + "1c8aaaae" + }, + { /* i=7318 cDividendBits=2354 cDivisorBits=1130 */ + "03ec6699503735390533465fa745b673f2093b02b746dc6abc37cfe6a25582ec267fb0221bf36b6e4f9da65e89e799f3c6f7dbda7b222e25e54cb6d49f174913b22a65f216b25df4232d251d7d8203eb3701fb7340b8fc334a896a3ff22586975f0e50dee81ee19ecfb09b794b7fd5f4e4e6cdc8ee23d1c080d907d38d27548fd7fa319aeb602ae1d029918dec4bf001597f755311be9caed02d7eba938bac7288dfc3d36bfc6389cb70714825210940ad74ced1adf9ee0ce57dc5a3f7e419bb026ccc50655bed1e4b478bc7cf25014fc593f65e0b71d7fac8465229d2e12ce87e042dac44b473f4872a7cfb10dd12f43205d3cd71a6aac12e089d0095b04979fd0690e5ca29e01f1fe5a3dfbce0b1c03931a6992e19a66e0f6a12c84c681af2f9ad2fa5f56871", + "06d3ad9baf7fe014cddc523d31f2ef304908d175b84a17e46daba604482b3a1529a7b6df2dcfa57f302f6ba0e2a4ffacee3a442211466d5753cd0cd84494fc1e8b016c0c6a68e4c516c3378054f52bc275473119bb1beec7c10ee1ee4c63053e6be3b2ef989c2b2559ea6c1a31af0558d9f1619422d7943695ba8e6930b9a0bb02ce095d79fd8fdef9fc29c5b0", + "931feb60b5904235f6beb8a7131f24a9c5462854af35d509ff7c36a430d7f677ca6dc7fbd153bc24acbb39a4b1ba1e5f1b05aa9a615ccd4eb08bf28b1cf92ee8d0bc65399ba2646982e30afa5bdb6ba820c4e91f3df54f7336b1543ff1cb33c0059a7c06bde3c62e53e5c2433bd44f4c219ee74aa924704b1ce65b17c8dbdf60396a6dc373d9b58f638f12b53882668534e86484856fac2f0476", + "05ad60d7f4802e074c71553c740186574b7f75c6212da0017bb4401a9c6ee3bf6b7aec1a8cf1681f60b117d48d29266c992d5d0f5335de5f1120e35edfb629b6a956d3ac8e333eaf9e649d0957a620dcabe148a0c6bc4d9a01a66d52e0fbc93117087f0509291ecd9d44c82765b981dbff49ca083031e8b7a3b0292a08499dcf8364b06607354a7a37384d8951" + }, + { /* i=7319 cDividendBits=3455 cDivisorBits=2109 */ + "3f633034ec4953ee66519d24d7c1b1df5573d41f78062ad1d0ed05d329c565c73b67009ad4f0370b3d72fd3b0c2c045a505563bec94c2496354ef39ee11d8aaff595e4146f20a6c98e974c2d58ab4d01b9fb464761c0302f16815ca21c61f0c2ae1184d83e95eb5a56649512ceced8072379851c897e4749153ce8f46edfc7e2985186c963dd55184c34322b27149c6c4179d952f61bc48b7d48af9610b4f10c5979fb13bd6a6208479651c43c04032fcc11c4eac48b65b4b2aa4c8e8b915d6fe3113544b8ab19a5405c042d66fed33fe09c2fa0a193241f3a942a49b3e157139c42adf42fff956a20cd7bdba9c41eb151da822f65c1de58745b30bee044ba964b0b898650319b4c6f8d97d413190894a836fe0c3ef261fed8365b94b54e47635f98ca21a2052d266d86a6f586f26d953e0351cd42dc0156f9f038bb679985109fdf2c609c0d7047b4fe5e4f789dbe88ca55252945337b40ecddd3c0ef827381a83eac63a140fcf5990a71966c96712ab2e6a52699137c8c660ba901afaed0f256cd7a50a8f759c2c3e7b4ee1532826e364ab3ff9b5899c8ccdef114a15b0871fbbe9010369da68bb480effdc2a089a1", + "14e082f70845ad3fdff46796187648e3be7fc50f462e4f293a59b737d739a083e5cc831aa39de149db368bf5a95146674dbb3a6d7d19e2b82bae42f8dc78a20887c5d5398c5c5f1183727e79ef7c1e4c069fb22b9463eeb559e3dbf3a77cd5bdf25157aaacf3e4dba4da615f9fcb57a58c7b43ed0ead20f5e0d743ca761d4631d7057438a2449314469058ea0260f35bdb2fae7d46e7b7cc0113fe47740b8446b6a4cfe15967a85c77ac37b350d93c525d1901173cfcb9921863a39089daf7a126994611c1baf49ae239617fa9885bda0d7a15ded89fc293dbba6aefbc29ebbd2baa98564a53665bc1ad4655d9e8bb7aa8f6ff442d629950c0ada4a43099bbf8565234a8071296ec", + "030946a34e3b518a608fa896bd05d1be699d2823fba11618c78a50a16421961263144c33ac381bb8bc9a847ee57bfc64b1c8b8adbdf329ee14604adc5b231f95d448f11b4ed27077e5f67271ca3a9387ecc453e666df935bec4f85bf1f4d5b66b73ba99848291dfea5836a56359c8b1618b2c51f4793bce0b076b6ce2638728f370641997ff1de5323dc764fb6242452b957f489685e2d8f477eeed3cb3744c2e549b00ab09cbb31e0", + "0f497bb9733ca03c284beb6c6794b980bc110dc38e1eb0c9799a4a31521731835a43241172fe51fe760a0df1dfcea7a36b0ce174942938dfdd49fd1fb1a7d6a48965ab14e2506e90072f1e12279d402c977ea8dc55d20a1a66400b0e444e02366225cec073d6d9331d038b6dfb71da29ebad6ddb217416e46a64611ab5b988b7d168aa02205d04201b67882bc7d80570e31efa675b1aef3165c4786ff994b9a168c9e5dbc74ccf58b8842da70e14d6d6b3ab647aa55a4bd7150abdd2a941e84cca820739049456b0a08f3d49039590fea5e81a44d9167e9a405c16ee0138d5a3bde5ced5661e2874adc906335c64dd11503e8677ef156cde603aac72bf51b7def0853ad0f5154f21" + }, + { /* i=7320 cDividendBits=2807 cDivisorBits=2420 */ + "41d981a56a52d922d966ca6a7e75bdc606aced8d5ff3c652c7cc6ab333f76eff529d7951eae1fe50b3b6ba97052e36defd33dda22b3ef54e51b6b42a43828fa8c2430478092a75b2db7f9722277523e1e3e6d62464a01b877c4b2f7c534ed9dce4ea335e105a3d43cd126bb8506212c79331a96f9f8de29a657dc8141e48a2584f38875a5ed395603198ecef020028d2b33502922ed00b3e3b4a36820d1e2ae375181c2a49bdc985a018f32c2b7d3c7234479e5adbd6034771b94740069dc3e9e52cfe7155a1b8feedb2b6c81b46238d4b4bcb486eac1d3139e26f6e210b2d3eda34feb3c0aa58fc5a133ed1bb4880ea28bfc7adea8bca1f3fdff016a479371142668a013f447771ec88db03bc23c828aa659372f2e48af4422c40b6afe230e6fbc626e3db473cad91234c23f71b27eff6a51a055a091b4202a09c7f5013f31b5f781876e9b617b2f3246580f3dd4b930b215be9ab4e30e07f3e2eea425990", + "0d368d20a8e795a38464d52638453faea9c394cb8922238669e3c38a13e675b5205af99a6072e3e259a45e309049781ec1ef83810d6615c1dc95ff4cf01f16fac46e1fdb361b764e9cb4adf8d325ab25a0b46c9e9007fd51f96ff40193537f351d184a0d21fde0f7b85cc28b19da6ac50892b4f1c918d92b99066fca52e19e339d7d8afaf3ed4d7e41e30fa938948223fd9939c3439e5d1cc8cefaf99933c400d1fd500b382f992d3b683e1b8f0a3d2d17a9c192ecc13b1eeeb13aee8fe6993f9f3c4f8ab4a7a6dd86b67c13468ef1ec188c1408c74cbab53b7aae030115e4bacc27089605ea80e65e62d3514851a7129435fa5fa78b9bd82125548c16c00ef63da3f8964ec81c3c699682ba260c871ea1aa6926eb05e3280c00e2dbec4d374a4a96a8c054239b9b881bb35c131a3c", + "04fbd18c0da46c1a14a1c60b6cf561010d53da77f31e4011267ac2eb891de7f6308edd38e0d5262aaaa551f99ef62bd23e", + "083ccdef4ae5d52cef17b578d4e5186576c6430ba6a056ef5043429aa52e455181e0bce8c2defa473dcddaa9652348211c367a4a84d06e81ccc03039797d272a02f15384d6c29cbfcb8059ebcff000c2721875710f991f9f7e1d4a3d23c38959629286bcaaacde25f1d1c96f8aecacc909d7b88a5198fd7e3c1d7f09a9acf13df43548ae88f2355636aa2ce24b0287e8099914ad7b82f80959bc668afd1621e8b53a67a1462ad1db3046c27bc836a6fb52d8bc5335a75c3cdca3dc026c7f6b3daa6e5c56b6d290ed3f441e7ac24c08852dc542cd37452cf16e2b08f4df7c4535373492034aaddcc75109a4d6d2cadab184b49fb8c85212e733ce980d93b0254300e4f80fb480b5cf35cf47c62f429e80de290ffade8479ba07a4ddd48ecf6432c653c1f68cdb632bea07c3e208c708" + }, + { /* i=7321 cDividendBits=255 cDivisorBits=122 */ + "1a80049dd97a687bfe9d91a447c724a361595423a345103779249ae81de8eb1d", + "03267874ddeeadc32ffabf3d50b1e221", + "086977d96fea258aae8eb277464d8ba4d0", + "030f4a291d304f6649a273c4e3990c4d" + }, + { /* i=7322 cDividendBits=3602 cDivisorBits=278 */ + "01fb1e382af92abde17d77965ada93b78b53ef5e16db9400d50cf0466eb5fc837b34dbb5738ac712638a9edfa047dc9701b4ee2fd6e7915ec87a22c7077daa4bd60c68181ff9fa6c23ea83c05075e4408e9ca5cb33fe52e8183fa80ea83f0f95ab9ba65ebafb149fe910df8e4a15614bf46a49d90180365c79bc4f1722bff9406393c4fc1d38fbbc6f2b457943828fb99c0f53e7d5ed916525f52f9898eec580d215d3bd3800cf044bd33f2869407ba7f14bdf71155d3856498c2b31a3d6add8f1d1c186abfb2d69e75be8dfdf1c5bbd92f2f2ceb9e907a23f15a1cf970928059355ed0279f51ed84292aa6f67431f8c4852189e2fe6ea2bde7037ea4e91ceed9ac56a16958de9afff9bf84289ca467d26f61a8b0d8a2065e480a4b56080657e2a6e3ce306b98466aaf5ccb9e4451ae27ce7a873093b2f744d58b79af795d329d66a363618201bcc07c76bc71efcdf5418ea66546a468bac57b7f9d4276f603291e1268b7b5ec23c9641293fa1759079a9326cf93bf332193ffacf92be6d7a28edd6b9e8777a00024daf95cb139ffe3d09fd85b907c54bf1833dfa2f492778bf44d8421b0c31eece5f3b3c19f17faee51ee80cdb270ef2ffb55e27141f646f28c8b71a", + "3b98fc1a75eae6c52d385d5e8fbbc4bf9f20c5b0e38ff78746788acbf6e1abb3ce8335", + "08825020447ed605f68890eae6036b16a2093087916d0784b7a07570c5e7d761b9294cbd16958dff2e7f34a6033d085c3b915a1984ddd8a62aed7ef1baa67cf663750b0ff3c86f9a8d1ac5089e465359e717776a22a9f38dc1c755dac84f8ba6647f8e97efc641b13a3a638a95c3c045a450cddf5cfc6bc9dda86043ffc224a8547e8d6c96fff3cd5ab88bc701ae17f77ac3bc11833dd1565a3ef14f6c2d15551287e64df656e2a1463b001035284aadb02f0bc10e97b412d9f9468b67116498f7eeb522fc53d6613cfd83b050af52cd2a8e48781fe15841b31a7a6ea80cdd93b5b9a81410b7ce00ae413bd26d839043286177151c2880bbb2c5fad0a2bec796e7d32cc459e7a4fd61afce3f65a3d4f1a47719346ddd5adf71c105b237a8833e42959b03faad80017f4f09d0d30ce18b0ae60cc6c0f0187ec313003811f37a6518b73e7e4478c890e1caa910c2be84e04f5a5667dee403648527a6f8694317183954f5602342e2c888dc0160fa3115802ba598aae19d98232ca5ff3db2099a3a461cc6641f304e08e9640f0eedcefe02562747afa08750acd4bf53f1d8c76e04", + "358f4d7853009b8a534f05a099c93768f860e0fb572ae78387fbbd809e5e5be6fae446" + }, + { /* i=7323 cDividendBits=1601 cDivisorBits=1584 */ + "01df8796403f2dec3a85abb47e9da2c88587c9da91e6055085f5b7365305e0fdc3f9e6c9fcb1b85842f479b97ee02963f85122c6c5dbc58e18444790d3f43a1021d9848a095b6f5dd42e3a5054974805b1ae9b46f929b82eb927275708b7aa8445017f7555e906792f40d1272f2a3cad8ae8b5518c52ebddd08fb368d02b5b3589227595cc2eebbfd009c57b98734035701fe409f344564fd150a78643b22d74b9ba8a0b394a1e19534e358a12f4dfc7b4e427348b53f587ce065f39bed79abefe41eae6e91eb9663f", + "72e5f1bbbbf4e2d7a786791f693d05791d6177801b6f99642fbf9239898f8d08c3ef717b33c882a6a48667264d6873cf9cfc83402e8f8cba49a65af916c5f939db639d3be8e8a57782b654d8f723d43bd01dc8a7a3aec7749e846d9ef9ceeda8bbc09f89816de6524ee08bd3e2c550854f9c47565e6b6eb9fa611624e32fba79c6cebc533b4e0cb1947803becd09cbd21e72c1e70711c994c10efbfbc0c313f1984d058734c79c8f9a32849a66a969010bc3f63d015ac8c46da7eab8fafa2e8d3ce498931532", + "042c6b", + "43a90194ba8406a3adfaf277392ef797f44a810444f2e1a40b38ddf19e6375d1f77a4731326522723efdf8374629c66eb5ab3db338ff4728c4c4c31b9fa54f124370b3ba72486ff60425f98f404e715f096aecc99c9144189c5bac0cd34bbcb162419296e3609b5967fcc29db92618dd119e2fea34f9676ab9da062522a2282903b83cb8593be427bdcee31ba407580a8f0c674826697a1051c217c60bfc7d2e0ff7ea6a48bdc6e555c1640c1cd5a3a1c25ce6cf3948a2ccdd54053e1e3792d8c6d7bcd2f259" + }, + { /* i=7324 cDividendBits=1047 cDivisorBits=999 */ + "25a7416268383f99b11ad6443e4bd06914a40bc5ba4d2c22a49af04a4385c04df18e7cca6073db3c05dce54ae35e76930b388a2a2c8f7992545742c9b137b9314e34466b660fd187952c0bcc2e77687519b36da47af879d0d91ade0dd9d309d389f421c1810ec0b3f1201f49e04ba50a16ade7be06158a55e732047b03280f2bfb5b79", + "41c840bd8bc6f667c759e3a971ef3326dec2946fa586e3d26b139a5d3585b10ad1e0a7f273fb58dfc0f2089db92436c61e1962406350979bcc580b4103707455f4178212d7ad4b7bfc697a7d9b3aeda23406d13bf79c9ea3af757f3679e6440b1f978c8cc0f1e4b4441fc4d13992dc8b0f8e76b3c52e378251e81fc715", + "9288657c2bd8", + "3d93f049037e4ce4710da0cc4f9dd78fb90d37872f97ee8ee39425df3a13640b120f6d17f44ad72799fe3a7a150d2b701900512c410bd4da75140888246372d2118404813b5e14c7c1f87681edf67c728f80e070fec782ae10b4ab350a8530b192fc82f07c7536ba9b51949474e84157f41cff29af489cbade438edac1" + }, + { /* i=7325 cDividendBits=2057 cDivisorBits=379 */ + "01590aba1c9661bdbdad13497d66bfb4eae928df820ad8a15b94a7c02ec804bd573b313939f9e572a59a3408f6c53d6c8fd0b94d193772215fcb1121dc14ad02627baf51c2bd08ef826d4d94952d06f6f2aea1e18b63447aef50994ca84b62aa2c582154f1865b6f3ef35d2b43e02d7a6211f59b5a8e8642cdf33fb9f5882cf3d9707594d2da1c872a8a0ebbe5936e37a8e7b05512376ed48929ce4dbbc8f2bc51116ced993a8341803a4b9c155dd4d101a3da765ce5406225c35bcf1e51c6e149c6b806c5d39013d83a21ee0b9f318d4eb8ee03f7089e3018589825521e644ca8b5d2b03803a474fff369a0053b825510d548e544a1f4216c694ad4b06a60adf526", + "0687ed1e02e9d48351fc9bb40db370ff538a3b575a5bd3b1a6eee85e95f6d150ff49ad141b77d174868ee805496cd2dc", + "34d4eb225eff956a98266b067ac3d4c230c3f155635688736b4d94102eb38f9cf2ab35c68e8730eca68c41fc24e2490138619f3c631aab757647f7455b355e74aa8d16b31f8719fe591a0c9670d31553124798678ebd1c123e178ea2791093ecdea601e21186f08c5bc85400d8ed4d862b27f7ef91cca4ddd4269ff1dd4e631e73dce93beb201e98181ec3e68d126f22184bf96ce34c41b2c1b1c483c0047ed432dc767e75da9714f00b6c6b9ea7841514f7715cd96e31267d3a6e442b4239d2d9c0cc98d238b305e9384c2ac326b61464ad", + "05ec8d0dd46cca7882c3aa57afc5b76a6246e675f624db040f1c66bde6741acf4bb91540dcf211b1f425d9185e95867a" + }, + { /* i=7326 cDividendBits=1777 cDivisorBits=1436 */ + "01c04d5777c6ea9b59c11f93bbfcb4d44b29983021b2a8431c90bd33c7f6109c2e8d9ede218544596704da3219ba010ba012dad722d44e1e7bfc5495d405c8cd31b238fbdae116d4edfee842eb5bf35c5ef98d64c58bbbf9e7678189172902a56529dd2679be8ad1ec1b4711ddf2a2ca4fa6deb5a0d94fe768510f5922f818bc10b42020b5a73c2ad06799581678a002f67e2888f03c5c56ab2a687989d996c7bc615007ed4fd86371f2da3a05f21d1b9adbb0425a7e3119a015cfa2e4f39c20c32b7c156b9fe665541b6e1706d6cc0381d33ebaf11485546b07ec2a5f4a09", + "093c592cab1f21c1113caef364a719e53e12048d19fcd3b616864b0126dc7f3f1db58ae734459b1b3ef543cc6bcb682e1d10a9d78bb3e2bd8216812251f7e842e8d6e754dea2bf9f5341fffa14c609599ea12900ab3b3d52197b0d4f1c9bc4606badc25ff29b4c53a2f19beb6cbaafdb9d2ddc15e101f5d8adade10db21ebb27cf9a4f3885b201ab5a3a49f9998e5de0dd96624f43934aaed8818b23f91a22265f47f816c9b0dbbb5a2c49ba0100e5473399a86c", + "308a39edf65c9cf57d68a02060a8917b3154a75eb1662b892b7a1bd392fb6052dcfc1f61aa84027f42aa41", + "015d6dd86cb6eb514574498fdac9033b489522dc9c21f7edde19238fac2f74eca09b4347d5ef1475e4db2fd338bf54a07c6c307667eb38f0561d8b3402454622c333c5be419c3c62047633e6bfeb41bab23c58ba8ff56a35e06ca9223d4a4012be7a19927cce3225b611ce313322b8d06171341b37e804f6b98d2c32f0eed983ec4346b59dca94647c91964fca51f7d221a3b943ff554fe42164cd149ee3ad6041d2b94fdd8572729a03708ea637ff9106abce9d" + }, + { /* i=7327 cDividendBits=4016 cDivisorBits=2465 */ + "af2ca93f0bd634869b9a0542c563ccdddf1d6a0302d7ec50edd09182cf5e4dbec1cf7475f9545c452e0811f9ce30ff8f98fd14c0a1b828dea09524c2c5ac7ef6042e8484bfed7a371f45861e9bed421fec639032a88bbb6b4daba1745cf4888a447ce346f29dc5c2511b217d865f0920edc347b46d1387e9c181c4ee7472d264ce88c4a7bab7b0678871751c1a320693506871b2b98a89a3b9e49156d0354c4e9c999a3904640fa89476a853fc525d0109120b0a0d84bfd0c83aaf4c10c31ff1505c7c083a58903500bdb707e6772c720a155815a946c603dde5d20682ba8ebb5f2a1fa928e3d11f424af6d190a810d90980f8de6a8d02057621825cfd1f6f99e0b57b342911caef32e89160eef03cbbe08e67a5be6ffff0e9bfd5553d9af966f5a6ec77b75a35f334e417acf372af21de538d84977ac3c6543fd269eb485a0365e351e4c48cd2a470b2f2dc195189680e9ef0b6de19d4482cae975dcc680eac19481a7251ccfdad742beb0b319e480d576f6e4f1d9ad2cf03c05546f54e3208c79d1c672643c588b8ee0c94829aaaab5ab17136be1cf517f2b776f70c2a613693f4adc3940395bc9ac22a2e4e52f16aac8f5343a2812fa4717c3f2ab48913b8ce4f633f291686d6c05589f858dbdd03eee2acf570e315c0dd5c10ddbebaa7f00a2425d7e486b95b997709c5e7c4bbb3f2e24fe3e2b8", + "d5edd11f5310c86cdb9a45220d248b92ea54c3a70ea6939d3ab6b9c44fe45d7d5511a0f07b87fb4d6894ecd3b8a5ea27fc92d1ecb623018519ef7f64feaac1b0f96d7458be87f2787b8b4380ac6bb4fb16d23aed4479e34e47e21054a2b8d3bb52c9d874bde92da8af86612311f86c2c3df6ed95667bda3935066b53acb8f99a3c1c1ee591d08535b0b14e391539356a32a2f2a8fe6e516422b6bb19aa8fcbfe49d73cc5a67d5d3f3f4332dc1668f59e5c831358bf6594d2b3caaf78ec521f84beee7544af9a96be98b1d6d9f4c18afbefd4ffabcd216620166fbc07164a2ca1c2632e2e8febf1d19ad56a6f6124e40a94026583d9f11ab3b9d0c264c1570d72a260087b8251a800e9163fe8fb9804600bbf6739e0c501e1c65e4e87fea24f7f2e91274c7dd7ec4781db182ed07da9c3f6450372", + "d19fc2d43f99bbdc96558d3296765f8f4ec347d6146531e6dc109e092f8ae7879b7b18c19e6395f1697b4a70f786c4661c43d419cb9c0c45959ac7d2eca82eb4fc400d4279aa436b901e39ea1424ed867e6800bd0c1c17506d437cd7a0f279d1af967da80ad0a5354f1b80029f936d8c967343293ff70f107cb83eb2020ae8ba686e720ba0431c95ce660a4e1689818049d405d77c2676e20cb501483c00f75433558fd71d393e37f499a0b5c15ba7f29661964d29c96db341e759903132d27c16f0", + "9956b083edb9d59578df47f4f936ad57d07278bf56a19cb62b3b2be4529078c9426b852383bc169f0d43c5f917dea188a52416b735dfa11f6f41b85fe61478c2270f86975e086d5332983b19421d2380132f9278b061706010d44d0dc5492c87f29a5756c9f00eac67c699864c4628357c2aa0f49311b7185502daaddf4087df735491ca036d532202ce70c84f41b8d26b33218b9af4e950272dd1886a7a42bce86b86926c28d6c3a3b632d51cf59f78ba23345008c3987235094cf0b54b4176d40520f43f0262479178e1b3045df16876ed3d684feecb99735f55a82acce2d86481d95a4192e7cd349d58923b8aa9ba68de19aa1dc8a6f20ccd468308ddd896dd0dbd11b34da0754d5b0ef7447cf38c263d2ad577b1df29bcb7800c96835fc4d4f710847bd42ef744d8e6899d1a8f7c51acdbd8" + }, + { /* i=7328 cDividendBits=3904 cDivisorBits=1579 */ + "44ab9054ff723fca3eef48b6ca42a091b5c9abc4151c575c0a43c387433f2290995c043843f231784ac18a0a1c92ea00666fcf79d61d2abb88c9c63a9ef96b1901977bb5ecaac44f540b773327c917579f6fa09af2bc2b63abb88f66373277abb04987da405cb028d2043e15d3f178eeff43092837a0e6cad6408ee7bde348c9d4ac17596e30f35c1336e25671cf474394eff8ca550d4ff0dcdbd777cc0241d5d8cef054171cc98306e0eda75ab1a709b362ad5f323e79c3a73b66fed97f207b47dc6fe1f6c6068b7747818efade42aac85fb52dedc9fc37ab2e51109855ff2b74f1aea340d8d6dcbf61c4a0b9e120b0bdeaf3e34a6bd0be750c06c2b19aefdcc69e314ba53736830cee83d5cdf45fee058360a7a9c976c1e834063bf1e0c0fd020bbd9b7a03cf1a7950329193fe219dfc4653b41ea25d167d188f2b5a542679dfd62488b98d9eafffb5c6c6482f2a01470f130e3405139909b4025431eddde6d4fbefb5aec20a53d600f8e6693dfcbb5753cd80c9e01b3db0ab402b1e60faee050bb82818fc59c795d5bcc546adc3c12fe9a6072c1e7113f9ade02595a0b7f7d753072507d890cc3e78ace069bd8d2c0408597f96fcae15915fa7fa2998c7b6d4639b59750149a7b59b20161b0ee6a077d8b47aedf59bc863f043a66ce4e243b808e2061998d677", + "04cac4c98137c002203333b4fcb76280b1bc85d02832eddc39a6ea9218a989697c100693cca0e7a51e89a238cfa9ee9c8fa79eb9bb9c82bda22681b8869ea20287fc5362df3f8750f1dffd8b36f264e7144cee230fae89cbe8d447405255ce049197f3210c2c5cc0d7f1704a09c5733b4153e5c2b2401f978954ac63f109805edd35b6041c7b986674779a4f5f4670b4e5a842eddb72f2ef03319e6ce55a895a6e2250652a28e35aece1341e29840042863c70d2271dbc8ab9b40b0e6abcc40e00f2e211a10d", + "0e54793029b4bb7ce278b1569c2fa1f1e1b4d647dc1ea516ab96bd432eccabe84cbf97d6b80e5e5079729a1e65b1179d51919343bba3e81cb414cbc83ddab308ece6b048d713b9d628ee5a5b314a6c031a012c4386e96c1f9eb973f7221eaae1e5f6462bfc9269ce04301d62ca00556886f56ea25f557e5626a6eeb1a048d35bd4d23bb5d235d8c02143f568f97a4dd49da420656597f35dce7d7aac525ea4684f3dff8505146292f593a72fe20ce4527ed825853769177cce968cfc4cc7ba2ca3a9fe5040c4b33a80d47aba7a931968807e03e7b179ef23a14af2681ac16cfe8284fec1cf08028f889d5bbe0477207719b7f503b4990c5b4ef298964991d551d61c9fdb3ce899eb8a883c688b907f16e8303cfe57ca474badc53ce3ee01e59dc558f0", + "22c9591b4d5ed348b7e5b3c53827990ab1049ff1e684a42732b245c41f1f1c5b7065bc5b24fca5220f71abbf16d7aa1b6b0227fe66226ec9fefa657351f0ba06794f5147aa2de3383da800c4b823f5d9269bbffca00e7a3418c80f5798980bf44e35ba71d67d0be1523ddd7fbcd1002ffe52fc928c0968eddce0076b0320d93f669adef4d6bbd797bad9da7702635b803e79e40f9613ec82495fc6b6bfe299f38c6eb8706bebe92ff99c73608d380bc64ce0de60e04c4d086d528b1e26de8b9ba531b46247" + }, + { /* i=7329 cDividendBits=3738 cDivisorBits=3525 */ + "020838f5958928e53033c11698fea235de64c95413fb55d0116ed3c45779b4662c9d849421a414db7b0546dc87df2dc6f75a854a1cdc06e82a3a678c847eb69a56fbdba0318bcf2e618b2b425c1be05813c93357cd6112abf0b65a372b7e5eb1ecb4c55bf0eb67d3b4b001bc550e32fb8f9b2389c1ec337adb625a2b1503c7ef9e6ba5151f1fb54fa63f584b2903d4b6fc22ac3fd62740f764f2dc20d051768113f8af5d14a392a7c12ff1a25d88056b9caf46bac38111d04fb3a93f6b348fd785e38100d06f8021db68e205791338f554a276f8565251ddaa5bad6ef58c1c0685aaeff2dcf9fae0f2fc42314ce1182e3f89ffe614dc0dd0fe8166d1531974e89b96f07fe59da3566d9865b8f974f018415f310a82b24cb1a5422dfb409e059a9a00db6522b91c32f097d519c9c4707a21caacbe7c5f9343231053b30c9eee37ba38d2d458a3d4db5bf0e13b065bdf2238deabcc99c14ad829e3af78a44db1756ccaaf8543a1ef0bb559416134709b7b20446639f9796c3c97c60d0ec41bbcfad0115d154e20085de30e5ad1af7d307f2ecdbab9165f35558b7594b03dcd78d17eb431fdd027cb2fd9201b25f5266c4d33802fa373f86c8be114e306e74c11b6a805e63dab86e34e459f2f0297488863d4d56648", + "181cef114bf43de1f941adba1d2b8f3b331f0773b6591be028f36848bcab89b8ff45d58192b66163dded0723bd81169f78eed80eaf377ab7d6d990e4759a6ae187c42582211ecc3d7c3f5346e4cd8cfdab7f90b5043dba739ac24ba0928d4b24c2a54f5ced704d5dfdddf69b17ef2319f361dd44b36fd0f1c2d79cc0c677ac9241546eef159bf5d577c8f72ee6a11e9f0ef57ddb271b4e5060ec836345f6bf061c9e2eec227a4c4b156b5f21aad29db0dbda079965b26379ecdf740d3563b902eee2bc48fb1d84c551ec94b3637c1851d21267ca771c85e98824f00e2511b9b09543ab420a6a778811f5a00350e612440a758204e48cc6bf522e682121b32fe76f019b822ff028f314fbbf8a1ce3062858903dc2f497101240ea822d3fef9a00395932acbd0e0ca5812d2646c0c6fdd09b2cabee1419966154f00ba1049d5b9d6a799f623af9dfecac3fe8212191c1dfa3719f687f374dbc04444f825f330c3342e7ba6700eab65b9f30f2b6860065c813b80679c075419a154dca2f06edb3ff86ef97b0686d9e382e34593aeee50215121efaf34677282097da02654e23ab6c207d3ec5f2889272d39894c945a365c7294f36953effa552f4", + "159307cabf287456614a8f3dcfcedd913c090fe61e5f5d240dbb44", + "0ef5530b21cce7926aa541b66de29017a348bdfbe63c018c9d30ce65748297d9c4dbd0db48800a210107e430e0854ba1866dfd071ceaa0e3212e3347bf79c53844608b167b242183eeaf162b769e9175467188344f99c96a6f9b3874833c7d6499258ec7b00b4246ec66d8be3599c7ddb94c37c7d09784a2a11907639d012099d2daa30a552429727bb34a294c15db88bfb17d8cb7bbdd244785f8dae0d8c44546c2213d3b8af09a11bac6067989c9f8b9adf64f1395eb734077b11bbcd4fca1ca852b0a6e52d9e9828dc4d9a6c6bdfa39866154443198ec95c9731f6be0b6d237cef7ce393b311490d6ce9130f880440191f1294632e037e5ab82e9c5bc882af913689859163644d9ca82895dea7a7c29ce09581039652c8d58e22ef1256cc0bf7e9dba7826aae4aa78a41490a41d7db5472dd1e5d77a1dcec4b58d5befc3a06d04fcaa72ea416ab4ceaff7ba42741489de34b96d980f7e140bf53f554850ea3280304f1653fd727775cb437f7a81b29f61f598472d4492da2919941c531f7800b7e5d64ab50f4218178b75ebbe869b8fdace08e7c1bf6015200309fd4a00cf05a370e470cdf87f8cb1cc78560acce176142df536a2ef2178" + }, + { /* i=7330 cDividendBits=278 cDivisorBits=119 */ + "02291eee6cab6794a378173d33635b5df6712c926fa564a397723653b9e2cf7d053d9d", + "517f6a75c35915b9684f1349d1b48d", + "06c97576dfc934baab9aa261f0ec7dc4fde3fdd7", + "27f1a9e0ff6b43cd37a051cc704232" + }, + { /* i=7331 cDividendBits=30 cDivisorBits=3 */ + "1e48c4d8", + "04", + "07923136", + "00" + }, + { /* i=7332 cDividendBits=2365 cDivisorBits=861 */ + "10d2333d404e6741aae4059a39a22b78922ef1de6af8067f10904fba470d84e05ef237e091c84eeb9df6ce19ce1947f3f5d0e7f79647440f6ecdabc79164beb98de91e7937f2620f1c80ff5f51b8aabf118b3886c9c05b3a3df12d2881703e3c348751ed0eb582f81ad9d4e6f27c71b00132a38fc16c8d9c4ddf8f0e6c7e0e8112a5c5df5b61a36b99798d5c53f53e24738efc23525c6fea7d174f15ffece4de0b83584523764363cbfcc3adebee4e15d70f5aa3e91dd6ff6090a3538d178a747c6ca609adbb08b61cf5a4cafb5fd5d7022a1930e1611690630f80e4fa6574c5e9a18703ddfdf0555f321c6c9c4511f5324e85e1ffc1c7501bba30d7fc0298becc1e6fe7f2eaa95cc7232f243f0b42c08063b57235fb671dcebe0086ca360d3e2653b310aad2284c", + "1908aadb5f1de7a4fc06e14b49c9b9661228c1b1fb3ffdbc7aef85f374d57494fab743beb89ab34b7f407a510a7411613a42824ae79ebff56ba672b7f5f4dae2d4122d338e98e9383d10026808858b21837604df3298acf9efab04051e63960e6b8f9d1cf427c427556e931a", + "ac03da423e5e7c481d63e57d25355e71a80282a9931658dab9dfd02365096c60031aea7c5e0e9d5f394552ddafa7781ee0f58a0bd95fdf54e1f27a71e0a3fc026308a9696061f60a7a69316fee925ee6ffad61d9169d5ea59023b1fee22b306362c1a8d1a92f2b6c024775f622f4983e7ad4be2f8ff90ae6a87bcf4f01e4b974303b2035276709a130ca36924d9e0cbf6904128244bb8d4f5eb59ae28a47403ec9f3ca4623e7430aafe414a451210d926dfca03435b73c4f14fdb452", + "0736186389d497ff3fc0e4f4ede4f703f15b95379bec176a93fabf388c81d2dfde6817d74d286d0b8a19684486deef78d75b4463adc6bcf643f0aeab107fe8c57479c35b87a06f02a6d0aae79562db4649c9bf038113f4241c69fac0a8a46c2f76021fbb3cefa79a2546c1f8" + }, + { /* i=7333 cDividendBits=2286 cDivisorBits=1563 */ + "11a2847798126fc46d9a6db9c3b1b949a3b324622863399607590111040233fbd931b7398d6a2fe5fce2b3b2f6413fc859a91b40c555777a51667572d2075c7a0bad663e7cf12b9acf6a340229eb5b8ef8b34f455cf8b9b1b9228e90316c7e6f1a515d1c5e7372162eee19305892634b07234f09c0035ad361e7ff50557dc985f4b6ddd696c4cd74ce6a9ad7c23351dba32b5182b4d83d780a4752990d4e9f1641115e7d8d32a15cc6da95a5d952c2b403741d9bf40558f2baaba2776bdcd8a94e8ebaf125c717aaa8324956a2eabe8ae37b959d08d8099a5c111384cbc337e326a46abd00dce16e27f7c0689a0d786c7b91535f61dfa2863cd90ef99023ff368922367a52317dd6c76ae947537a2a7eecbe5295a894beacd4d524747648", + "02101f59cd73df3774692535b41a72ee7cc490478dc350348947b3b0e5b469f8dc55607f983cf6ad4faf04f762f8171ae0ec818c2d91ed6c51995fb6d6385f2a4d18c64e634334c35b6f99b360acd4d7865ba39d3dfd9bc8f4734ba066d5446dc00c025cb48299ae2a947006d0a60a12aac7680c57f58187f458530b3fa8ceae55368b79fc93c9bee18ac5521ef3a1edd4bafbef9fb98ced97067fc3450ed17bd27974cd3b5f26261838abf039e7b4fa43c0b470b1ee7cff54fbce056bf415ba544a3da7", + "088c597105d57c2a8eff2b2e24f573eab1b1652ca75d7eb9c224fd5ac2af0f2cc4af714d3bd34250cf9363a46a46cdb899410f7078600792a37818621837d31a9df33df3c67ca487a7b97b2d630230ff649d0f715fde47ad363a6f", + "19128597fd6c0ce9d62319e2959502fb31d012c3bda481f7ea3323e9dfae0a614dcb5fc6b185177f0607e752eb62394ad7654c92fe7a4e630d15e13fc656538ccfc76b086177f25b880afa87b8174b957e1a4362574fdd65e38f82178dc56ae7de822a49e44adb7f54fec98f2d080ecabd70949395b32ccb92b2439d695c96342459addb36c558afa0b98270f979ce9b69f85a3871bbfeeaea07ea3b5bd9b513de29743464ab4edc9ab9a7c10725a4614be7bc99f6dbd07c58b147c8a0534dea11e4df" + }, + { /* i=7334 cDividendBits=2080 cDivisorBits=718 */ + "5431c4a7065ee8fe0b980ac1e7f202ec9bf0af260092acb072042328a027c6df957d23938d80d0d0907c50fd630b632673836ba2261f790ef04b23be47f841789a4d827dd2b5f88ac25222c8929523af322d4571adbeda5d4add17c771bc8809292779421c6a318ca04befb76412a47de95e7cf5965db8e5ddb1d89386a7db6bb34e95924e89f57ad6778dd1ffe8d6e7b1153216225562e0b847084ae4c40266dd71c7f1cbf099943d52c0fab5ec19ff8b6d18a5e1183982c1150a3c6a81ec259702d407f107b836dd7e620289fcec01c5bf0b437c5306ac8552f8c3ffd4c3b41c2bc0573d4febabca9fdaaa8d72cd637c8f2b9ce8dc13c52cee710e9372c39f78ef6c21", + "03e6467e11dc8b7d3a8e4ea5c6ea032efec0862577d189d4bb70fc47711a99ed7bdd7842b4e56144cdda480fef0254241e7ebc03462d7a507a23b83751a2ba3ae26ae21029fbe08ba04842cdae6ec6c93b6f405d420f5ccc114f", + "15974c182ccd726b291c778f9f4ab1450e0d6e486aac8b1f06bf19bc215526d68009c99893536833ac34536f693340b295973c680c2f12ab303d90167f377dacba475702d056c7b015737695940f63006b9bebd615a67188b31c7c14f6b4207b3286d3b269dae3fb543d25915744886794f1df263c887c5bc5093f10b686403db762d08554b7c23b023050c652529a3c59d18ed8099504fa66b6794d00a8fcb92e66bdc39e46768df31b48", + "bc06078c005c237bf0328dcfa21899a084933cea47a33d2122df4c3e3f472589c21434d0b452736aed2348900910a3b61c02ca3c66c016a9c12a2bf4eb02c52250a2da904369a81c34160c4fe2b10be9290a0180dce8ba38e9" + }, + { /* i=7335 cDividendBits=4068 cDivisorBits=2668 */ + "01cac5f1d561bb5c7d1e92fa6d50de81b05ee0e86c9b4066c92ab10b6c3f79823652cb29f5f1506a8110a85b8088a0a95616a97157e46c0687347d2b897183fd182adfed9a5d2630b3eb5b18e3f58e52a7eeb010e979f1bd1e97dc038d068b7e5ca6a9f073f8062e17ca2c4c00dd10aac89c709a2132c6c81cd8968fd0174256c790ff37ea7d0aa9f0028ba200d0b3cba47e476c2040a0d4e357bb1dbd8018345e4d4ff0071a961d70c026d686b875832ef1f732e04acb0645878734f9e961850aedf46f56955a60b7096284964d8da73d4a2d7e4185a22d515905f0e0a22b9e5a4459d062466daa14fb21d17431af152ea88ae8cf27d9c7b1c5c9b12efde531b30b8d2018b454001cee22648c329d194ea7374b1bd31340db72768844480716629863a85937e75e0f1c54144291f2204447fce70711748e875e6462434b227637afad461962789fc723bba9d3ee942ba6d5d4c861cc3f50aec9f4c3f15b61bbb3e3e492c19696071f5356bf4ae71d15064ea5889047829ea2d696c341f371788ca84ba0303e76d6a5d6b6c6de0454ed09083b153c15bb1a81d13ccf7d757fa3fe4f74fa82b0ba2c8d22ca0e386d9326936d67fe8574ac284e76d09f0180ec698b4a6156f902f26ad3be0cd2e9b984ec7a18ad7847c5de0db0c27ed57781701dd62359d166a826f4ec28ff262343aad8fd62a11e407fbaa2656a6c1353", + "86d3ecb3bfed49ecd207cb7cde6f14bb83c0dab8400857e23b12b9e993a9bbd9ca04b630957e6808de278595025ca6feedfd0f39d4b8a45c900a44ea17c83f1ac5fb55a7de6e092a0946cf2c753d9816d38b0ef6ba92779028af823a686ce774df6e1ec3d2165c77459b02b747caa4b4a372fd62a5006fcf4a817533fa031d237998b2176aef6a22670ca4a7359fb49edbf1a4855cfb43aad02002a1cacc5f8f137424f36d64c30969f0a76f429b3ec3b285b0c9b2e2daf14e9556a9673a5b48db84b762a7e92bfef01251b36abcd9128942c5893ce0ab7467b81fb3d5ab917782b6a7346e756293b152f8720a0e215a4ff984f7d4c37e2ace7fab551360f06f52b39b18019da37323008b701f268a9f922fbcbc1fe3b1415ebc79e83351b78985ab096c6029320e77a637d4dbed1d17341110158034b95b41156edb39b684a9e71f60426216c20ec6ed78ad39", + "036714b44124ecd8d056ab6d1d4bc3257e445625f58bd8d90d66d7adec6f638c048e7d25aabaed5775f2ae913f15b661777e7ec35615b7edf984d53a817be110eb5bebb45fa55a7f354b60141310a39b8a130f251705b241d668270d2389450e8d8982f2590bd450bc2908f905ea898aafaac71edea191828e3389aba6ce9d1d6b273bb8f74262c60e835de7d0d802c9c75a469c4074fc1985a00343c25f2e33a3bc3a075c53d05ec881641e75f8828d", + "32d4b31b4188dcfb50d17d04e10f5cb822e3e49f2fac67bb52d54381c0e35f8562bc1084ae2dc23271442d3aee75eb292d84dede56902f02cdb6d9c746cbc271e962a68141ebf17d3d6447e57728138466513e022a1d3ecc5ef368e1fb445774b6660dad146ab25b7faad4df6e80d8991b0c461362a20aa60729901420b6bcf5b7e373fcc5a75a0ae580bc34887b10612f31a79041155e9c0eae1e15cf6d7083ced68b1fb506440bfd7aef234072c3d6b1d975178debb55d33fd0b3ac869f3156d9e3007413589e2f32e3f37ba5e970a960c7f065c39ff072891c1517c386ca135fa7afa90c27f8a0f4c3ca13985b60c89b7a8c27832181b03e1306e2e75b520f5dc50b50f21c9bfad180ea183a6f0076bb4283893abfb9f1908f8a1937f68e1da1b6406c0a8853b4c6f893ea76d7692adf1dd47ff1113d981d7decc8a23284686dca9b5c76691b57c7ac5b8ee" + }, + { /* i=7336 cDividendBits=3313 cDivisorBits=3183 */ + "019354b9b82f2d3405899e1ed9a6c7ef98944fe04719555bca252dbf2af3b38d9311bad01f6e747427e16a1c1c34269aa6586f266ff35608718ab2291044aa27efa7694cfbb938d57c013e1a9c650b28fe8aa4eaa628fe244fabb90cfd15e372ad847752abffa8599d230484ca96e34c3c8cb662ee820f71566fd5c7d8b030e074576ad52b68210e3a1b0f3f8cfada8e574f07c2e63c94b9f7f6b30bdca002d3a3227bef3b49b832f20eedd89328fbe528dc40adc75445c9a82b02929fcb01fcef31ba488c333f160d1ed019dc76736586794a7c1471d7dcd6bfc5d1b69b7d7d6c17ef88ef774921747a531a7ce6aa0ab654e78c8bb912a2ff0f30bd32cd53ddeb67ecbd3a2c093fe3a65e96947497e3deb6f8947f762235183863446dfd224f4049f134663736e7377fcd1856450cdc7646e5940cc9ea8b803155b0d31d0ca29f8c0a64fe824d35064978a6bfceeec401346116349de9f3ce9553124dfd18d09921c0da2cdacb8a1350d9446ea9db803c3091a55917831f9075a31d235df5ed5b57a03fd61a6220b0ade899411e8667d956819e610c631e18a05151814d3b", + "0b6f874d4a672e0cfeca556fd16ecff5c7be79fb9a4aa2e53c2ab22b3c6e519d8850565cea2858b29233a23e1921974dd1adc3bf719a9631274f98611e541ae1e1f17bb02d2792a6b30351f9450b67ee0cc208a451395f15bf9c0d88977899e6ea548894c78a6d2bf570f54bb987f28fcc21cf34125f14c46ba3cdac0cfac1f973ac36723badde1c251869d7fb9fb90bff019eb26663b82178b5d963171c9dfca67e54ae0e99131383de38d92ceefc85d37fb933a1d3b1f39e5189ae15d686aa72cf462bc163a6c3b6e43fc69a9624b43bbec1ec2e4ea085ebfb30f85b8bd05d2fb0f91855e9d5f98dea0a0458839dcfb1b24dee2c609e8f9777d0dc12e45cf9b6f0e7f9a9d0df7fdf3e76213c68a996b2dae4aa1d207929115832857a531b6a752c3779b9bce4b5642fcb50fc513444197a879521ec8114c4336d8444da635f28de5993d5807dcb72dac4876f1a28dc0d4f20fc792619abd9909137880afef47d4031c843cfef2fbc327cb1c1a9b3b64ff9c0a0b75213f20d9a60cef5d22c11cb745da1bb7587d9ce04a3935962", + "234503bb89239f2fff1a03e032d2acc3a4", + "0214c06cfb42ebe64c9cefed140935feb7afdafd4728cb848988a5a4d7e89b30995603ffcf79c1e00395e177856ea37ec20f10ee574b1beddfb49cedd86fc17cd0bdbee5a4ed6133555e790150c12aafbb92ed2d3913cbdf52150c4aea1981635ca810f67dbe46db0e0245ccdaf52988e9ce3a3710933270063d0fc37a34d9ad31161b8955b49853718da7244efb5d9895e2f94b094632683c1e6a6e06c8c9fe957a5af729e3d736ca845f355826dcb25e587d7953757b9e70888ba96e0266adc6c1ec3622e5b7baed9dc6a67bb3be9568dbbc877cf8afb23717c0bbf10af13aa28b99b1c501fa69e27f55b3a15b2df059f967aeddb51791ce9d4f80ffb2b82439c511590d0d015487fd43e3bdaed1f2cc9db135796cd40e7261c9397d28ac80071160c3e2ba23176241db8f94507f4c850be5030b6a1436770bf1fd73c26b8b9be448a2c9fe75e6fcbde1b2a575d0c36ba2b0429c9fe0c142f92b3e79444b9b39c6fed778db7eeb623ca01c47102f39a5846d36d719d643650eb3444f3aff6064102e0c48d214332148d82e6473" + }, + { /* i=7337 cDividendBits=809 cDivisorBits=29 */ + "c7959d1dfd6582c634946d28f9c5830d747a24faa4dafd08a72b9bb736cfa9040daa92de753a6ddc61c294af6e09021e014161bbdb7c345e7da24c606a73b5e31e9236ebd855d75fa7b87c62d85b5c492b248e54549469046b81cac341b585de7d51d0589d", + "1c0bdf74", + "071dc12199db7550e56e93c4cf7b0bf9f2883dd918bcdaff1e9efb72b8c92532034a1a2b022c01721dfa9b536d94c34472d441ffb8acae197b5db01e26e1f200760d2a1cd1e5c0a33464b2e6c43569e75038ccfd2f136c4a2ea2e080f0e76758a2c2", + "11899ab5" + }, + { /* i=7338 cDividendBits=2271 cDivisorBits=1816 */ + "204ac2eaeb1125538ffc2a9100c2e6e5183d5bd21e510d54f7bbf4eb791863995e82ee75fc06cd37448642fcfe654082a0726eb5bc0b6836cf00c5861a47c98f5754ddf1a2d16f6ba0d33fa8c2eb41af74cc63688aa231ae7b50e937e07cfbd46d9db6ffb686292a453072bdf9741f51025ff68ab28b003589a135672d254543e1e4ef1b5e648a57c5b4014ac845bc8e66528294b925db24f544d014f577cc822d2990f7a9e1fe5381ab2e58c1100e8bc0b585b4f845586edda664c7e31df76a0f453589caed22a87b3bcef81a5de56d61789c04acfa9a713c02ff1e73ae775c795bdfcb99b5a5505deab692fa89b3b5f418d60a9cd1f5a9f951c19604e691f795f99db7517530aaf62f5e8b51c4d7ddcf7dea72fe4c6918284db40f", + "8e19637aeeeb28eae57f7cf08f09629154c08408a0acaaf840c761860a06cc72ceb14c64771178e29ebf47250f543e5dfd73d7e99bec54a9f54b1a30329dabb15044fbefd2f41c24a6e7ee3e4125e1c92380dd8938a3d61fd14ebab4b791158b716fa6562d8d93b51a7b45d07680f332047ab6f685e1315748b8eab0b17ca55a91f544bf19ac0ac485ce6ddfc57ec9e4a81953b27464eb4b941cb52e0be0325c8df8efff40aa92ccab1840e3729c0145862a70a32ad3be9fe70eda29c5ff638ccd03ad1ee824790fe80145750897fdb3d746de318bccf17a8c5d75dba153d45b6fac01", + "3a2d0e43006fe5a597cce4c9ce270289741323c12be65f8d7e91804ec375fbc59b79a5b1a0874495a3133773f523be743a8b16969d9f02176f", + "3b4d203acefa6a9ffee613b54e05e60f6e24c325ebde0d128226eb31e161037448d9a6d1cc5ac2448e5e505303ed8248b0dc3fcab5709b41f55ee98c709049b60faba836f32e9c7c38016a0b26f59555978564a2c8166b73c8eeef3cf625d3e3979e51929e7b38149dfa85745439767a450046f0d19f45941574546799cecc31e1e0c8d25b1755d5ea0dbeceed6f33479da465ddf5dc9a1e2c4ef172da006e66fe938a2b7101c7a3bcb77f148fb89b27ac616842a6924ed9d0afef4f9a4e2d554ee7026f47fdda511f031954e4ac4358423d8a7482e4c249f72242e302d67c836c08a0" + }, + { /* i=7339 cDividendBits=2117 cDivisorBits=222 */ + "028735dfba8055d8c9fa74c5298047f7300c6ebfa04cf580d7bd7986bb68bd5ece97f65086ddd24af1a4f208cbd58ca72b09fbab9787d3bd6a9e6f60a35c8618d15477938c60d2abf2eeab3b19c36bb102ff1b9d367978a5f3ca274ea37cad9dfb5d16bf461bd4d476f3853ced7074911e486f7daed1705c71cdde5e6818fab0e459c3ccfda450ab5eb8d85e9e5850366bc7cfcd1adf0c0ea392e4848edb374e5f5c3c65943dcb00ebc5bd7d048b8be212ce99b9204369da3e740335c69244836e64e2e0e566051687db49bcc2e9743f6d08cc067bb7b9e5aeaa7f62d7b78f64359be9bbe7f7fc4ccf6698a5acd662431908742ccd7ead516a2e9887e1314d4b4f1bd93e27386b6289", + "2384f96c0e135eb0940a359cb091af61978fe032b892a9dd6df33c9b", + "1238a78ee25b438b89c033edd88d8b848ef6e1245233a20a00696b6a61b14b719ecc3ab1bc0daf0eb3839a1d59964ce86d56c030d0ef9d1406a5661b94a6a09e4195616f846ab025df7cd4f4b4009f25eaf65bc346f429922bd08a80baa6de46111a229ec323fad55b6e3fcc73a105b745d98f819f0a1f22c1871d789a68f17145a15c9a3288b5f77a9f0f3225feb052acce4bb6017db58cf56c3a6ad2b1fed7542895bf13ebcbdbe5f061d1ddbda7046e7ce76ca7d072617288b68e4549f197b1a7c2c4f66aab92ca008f3813741b9a057b44bb26f3c6ae9e57a867e6dbc8064fa1c74c748d4c2440aa797f8e", + "045cd6ec88ae252548621304980e69ef512f71d79534bad1fd2bdf8f" + }, + { /* i=7340 cDividendBits=2129 cDivisorBits=1884 */ + "01fb9985f02655a836c3e5968c38bbb6fd736fee050d6a0063e54a7604800fa3499b915d60151b93110a035b2071008bf09aae9309e5ec209d86046b1d2a323657df839ab17884e88ea28aefcc5d17860939010efcc621ccb46b98d7c073f49d9f2aebd6c12071d29b75bd79052c7cd3f9ac4395dd6e029626e091ad9709f48728169e22c67ee8ce2bc5fac5f014127fecb22d5e20fe1b6948753584574c48bf872ed901cf9045d8a1292834d0346eb274555238191998054cc72157d161e93d81ecb47887d35f46912498a0bbbf7e01d9004012a3b7b9bba38011544788b142617c81d0034fc6a65deaef862a7c04eb58c149e858a42d85c8866de48ad67a11cd7ae50aff3da4b05e4dc2", + "03d7acb323228c3614d38cdfa6182edd9f64fbaf35377d2c26fe9810a1460be2d586678e76e7f7b696f099ce4e664699dcb8eb0e71aab72ba350048ea926dd5eab3c87568a7839ca464bcf206ce2c0f078b556f4ff834821a3daf7db1003367df8c6da9cb570b6c9816f766dc38538ae4f9c867f925759928e43b5b0dd5d344e8163afac3d8dffdce870e03a77f524b398978629c90230f6253ab7d4141e711edcf25c3c750eb19f7b3de259afb191e2bc7c45142680454f9ab010a9da87a294cdef081d7942edfa211c0e60ba77d1ed0cb40dfbb1c13424dbca8c1f7e788cca67e81ea34fac171630b2ab9b", + "841a2601181f29ee1cba479996716362b3c2aa05e1f139d434abcb649512b8", + "03cb3cf4dcc165447be2a36b30d799c0fe36fb9082afe7fe3b04e7344a35fba4eab6e1e4e64dacdf49ac574dbc624a6de07f024cd62f75aa724de1c7a6bad3fe620385c2ea447a09a588c5180e5306983cded7471997c4b5989671fccec36a6bf22d814c14c4ae8208b7e96bc05555ae18c661e56de1c0398483d496f098865d011d88fc4def475ade5c1639dd04bee21f82072f32a2e880c88ea7d560690c6fc8afe3667e5bdc8b1092cdf6ee9431e2f0491c97d65fd9c36fad1565ac7e7e0123c07008476fa1c648f3fbc23e73d51e488c4c7cbfc52945ce9b660a105872ba595b45b164f45655b2ab105a" + }, + { /* i=7341 cDividendBits=624 cDivisorBits=209 */ + "4ecec77f39fb88e8d259cc6a7a096d7149b1d79e0924c6d965231508e8aad412d3e81cdabe1ca73326e221bcf002aeee4054c3d5e21d79dd2c243d32a3fbad2eb5e1881ad3d426bc925ffb1d6562", + "01ba30454613513d3a7f88b61db57e7c34621a9375aa794cf2d166", + "2d9ff51665ac0eb71a10cdcba82fd3b089cf859e6e4b7fde7164f6d8c8e01503763cdac542842110a3f6139ba19f2578b0e7f428", + "0167e99930c03bfde3a7274bd649c454f3ea825f130d33728d7572" + }, + { /* i=7342 cDividendBits=331 cDivisorBits=35 */ + "02698813be7227e7d8f748031ca1260e692da01bfde40628f76bc32f35c5ec62c710e0c4ed02e72b3029", + "0329f24734", + "c32ef219ec0e0c49e3e40670060f2c805ee27fae1300a0abab71e06699f80692c2e86b623d", + "467250c5" + }, + { /* i=7343 cDividendBits=631 cDivisorBits=438 */ + "531287ab26784e5324d8fd3953e5e6744d9c19d7af35dfec9047fd8af0f0f42233b8d3f2b11022fffe7dd7adeaf54c50a20d3fb0ca151c91f2f8dc021d95d7079f61f336a1c7ae7f252a73bcd45a8f", + "1fb8b92b3163efa142c14c01e76e9e2d24903da5a63284731a52372aa06bf027790a860ebdf18739fb537001e49b9d1e493608b9e782a9", + "029e698365f0f3684fbceff941f097649dc263050d9824e295", + "1385ebcfe357b51a76f7f05e1149d8e75c79ef97aefa4d1b54c1dfc6b6502b997b5f984df0c8b2aa5cf9c8b16360dae58f79896ff81c32" + }, + { /* i=7344 cDividendBits=1598 cDivisorBits=338 */ + "3baf47cce2ee8f0d471e22c7300cacc723827a0e013f9f55a47bc5b2c66cea61ef25e1d0222bfe8d0bebd8f2efa08cfae1f33d08ddbe41bdcc07ea05196361bbc835b9e588b5ec29ceb1536570aed8e357813987c46391ee8ddc4d2d515bd154c997832dbdbe24484181d37fd17ae643f366bf452dc288f4f868e9b0e3f99c0e9f1ef207dcb7eb10751fc94041165ce20403d5a1ad1519c4679aea3fe15a0bd65d6e4a8326ab20d5d802312d4cafc2dfa5f9dcfc6473bc88da78b205b00b7a235d7414bf17f303f8", + "02659fe6a843abced26f99bf8756cac772bd9c1a9757ba4409c46c7b497d0000fec06a3c557ce61dc8c665", + "18e66958fc55eb88010ef32267376a62fd460897739359d48778b3a6f834c4e335331280067bbbbcff857b01648a8c17983eef60f51655711f73673f039940ff12752d92a358484e8ec1d18268c57f9d530a261640ccf4b254edbbe9b749dc25f2ca3eda97940e81e55db2a19cb7e79a2d8124f2a1557dc0a34061222a12843f0b7beaa148ea4fed5a1be0ffac38abc7083e3e6d3d12912b309a262ee2d5", + "01e5606e2bf1cebcff882cdae2e01504fe6610342b611ee71b9ede622e58351b690b5f005992b46c9ac7ef" + }, + { /* i=7345 cDividendBits=3412 cDivisorBits=1408 */ + "0ba48a85c8f9f16fcbeb9eb6e0f0ea2a7b20499997966e5b683e52320003cd6db8812926d15cedd585da9edff1022bb72a7a70b2df37eca51466e1078e45e2eede2f482d31234bc271954a2d305e850f7d98c90ef2e800fe8ea299d293fe9139454393ea874060354ceb770e8551fa175673cabb0f8f423c1b12b4b19d0d6f2d5e0bcd47b6f9aae9fa6ffbd9e328de83c4c6981f0808ed70867a3e5fe383e668597ceb8bed8f3ae4284837a88d21b59dc7955b45988b51c580152bd62da130c8ab2f8c82a4017e887a381fde859974fcb212540e8c7af69b35c2b1d47126af95ba4a6af09f76da8735a1c70bd618bc1026e9b71f5245d79552ff44489c127d226a667d643d8bda67c2fe7188f25b70479586290d23c38b1b6f53e9d22ab3b5a65e89d1d221528ad0d6ca01ed65cf306f8b8b8e4e9dbcf2a456816b5bda371e2cdd889030c885504606a00f681dad642343c381d312a07f7460c3061043d58ba8d24af6f69fa8e2e05f787f3f0f02d78de4ca604c3d572ba403107815ce1e691d00165443a610798242f84989971c42a3be1839a55169c34fe196128c5a95ef008d894d47b225aba50bd821", + "4cc815cd613f77c20ecc7755733eb7029e14ada8c9abca4e4ebe4553d928e3fa56e619bf991b7637d604b3d702425b752d76f02165f73f4bec8c32c1224236d11e0b3c4dfde3343744fef3e695bbeeb3379db11fa3aacb0ba8488bb7a2631f6aa370553b712639f21962de2a6c85c75391cdeca16d234c09ef25e22dd93719b14c64104749dfb805f4065c7a7af5085edb0bb523ca7473d5129711061f088cebc3c65b0f5f2e1a766a864480bd00b948", + "26d18526817feb597552b77206efb4f7c78a288d0bc50176ae2e0552a6eac0103cde25c92079c44597d5e16d56e46fadc67801f1e01c65770449c6ed5122ad42797762138494c74f18999f9eafdc54f36ecf60230799b77257ed6487b868c8d241f877370f2b7a911d43258406924f283e7561e36fd3887810f34fc3a483d989b930540d0df96483baed672957e43119a23bc636908673bf65df4fed77e4e4db9203ee18f4bcf2253c45df72b73166d03a83194e1106e89ae0f5f0f84ef1f1613a7575ceef0a4923423f05cac8c3ae209614ea9756df7a215abe6b7204e4bfd0b52cbdef30bf11d96db1b0ea02ec24dcd04af8b94c0d0bad34e315", + "33b161f91fd74c9b4a8c0d04a240085c0b1526cbed2b5088bebea256d3b2a18fa879c69a9c4860be5fa56eeac7408e96233b34d2cfec086c630149f4ba1c1b135a547ab7fcac8d08830b101b477274cacef684c1f866088382724c0a84099b551c357358c3d45cc01c4e8ee8e84a50a8d2a211d9e6e18c195cfb1b48d760a0a3cf4f532fd59c6819a7deba58093712167659d50b1ba52fdda833bd8e7b6979540d10ffe06d749293603fe0113511cd39" + }, + { /* i=7346 cDividendBits=4075 cDivisorBits=3892 */ + "0483460b1f17d25b0893fa818480152b76afd6dc319042e92b4e200df127f0366e3092943e35cec2ca0475193d1a52ab7106083a76cd5b9715b8c4e64957cb35f94a6c59d6745d7d4e23616e2a8587ff6b96fe8586b0e5fad22ff98ed15148b102139a9dd1cdc049519a9fa9ccf02b93bc68ca6a8de34ed6d2986fca353aad59b144b9957e95bdf0772c10742006cfcbd1af1b7185ed372aea6eec75fcb80d64e60089a4b91c5d62fd2da087fb2fe7778557485b2329b23cc0b6b0dae0df059d4a95e323439446d768277b1b9a22072534640a72f0139695373347d50610e9728a4c6df7e2d1bf46b0df3f835c5e2eb69327968fef00c945d4b2bce15da63987d8ad604f368fccd592d510b2fd994e2543fffd9b24b79050f8035e517609dac2f6e335322c38d9387a7dbb9de2e2d29cee7a2ee127b764d8669a77899083af40de4818a0031886eaac37305642317eb3f1d641724c13c33270edfc15b98846ecca73ea377e6d993a3ba80d07fac65fee26bb586ad7cc57c4caadc5b4ab2ba7ab5778c4884d1720845111e5c551cb770517cae470a5eece2a51a91946ac25a07525876439de77de56bf5ba83e389843f296635a23af44bcef89e5363253027d4d0b42787fd51e1302027423d6610ee5b321614791434a98e8e9a161862d7479fe28ec0bfa65e60857129905441b7927ca83919fda6daeef5a8fbc58ee18f2", + "4108ddcf94af59e846264e56460448fdce6b6d170aed9c0279119768ecf377b40ee618044bb158df60d8da7c6d786ce18e9837f8dbf0392753dc9e42b21e8bbf826c27d45a95025d303faa2c675e3faead85be4c0091434506c9872c4fb818837b48432cdb3a841a14ebb7f09c5e4b6d3da74715d032c71c184cedef511c99772ab34ea0cd8f62d7d18a1252b97db6b67e75e78b587f28d35563442d80e09dbf21bf849b954b3ffc0ebe6719e253f3a9beaa3c353d0ae96c7d17880df0c9effd62ac336a56097d344822f451bf6255a4d009924e8b672fac4daf36c24677df5c533124cc1b36d3d241fbf579ffe560709aee3290118fac93d919fc71fc1c161fff3a2c7a734ec98f83452f56b215f08e8482e343c441a9d7547f9bd66d057f78d7cbc11b39f420f06b340496eb01df891dde33d06d26e43179b3eb5563b01eaffb5bb2a1ce6d1d6cc795584f8f6b03e08a67633f323107643adbccbe3bd43c5da2917419c503fc7e9e7a446786925e107936e5f60b575da246b44eb12d8267a27d85f4afa3124c47c11d5f5afb24dba8e8c1a68e5056849d568bba29fb72bc882bdb26f819419b7560c89904f37adc9158770994bc52f7f7b33c25a8b568ce87429dc827882cf38688fdcda5bfb68191acc1d6d567a86ab11eef313f662d72f257e5b8b4b1ca", + "11c393d9a23f5a482f8d31c92beaa4b6839e7c17f59cbb5f", + "088267fed4766c1988c96922fdcda4a453520280a1937c69e55285c69aef4081b661882872981132694cc79e7f4e58d28a0cdeadd3b4593de92a94f066575bf68d45be05f097a0904b789abf5e5802c318ed489ab6f05ff10c991bc7ff923b500a6612fe66790fb3b26a364fa6c681a678b6ce515d6e09b0af78bf9e4d64431fabbe134216f6fdbb13bcf5795601400a081838c7a85d3118c01e93dbe35eaf301b13f3af824ff30c5b110602f7eeb9c9bb35d5bf3be8c2048ec39347438bbb495a31dbe9459b672258b0293e889748e6e9ccee54681e093cfaa3f4ac7c63905e93f091463f08d9e2d3892028325d44ac11e66821f1385cce95ac74fd5f0fa8851d57d4c9adfaff0498b593a9991d9d4d210e83f4f0e71169f14b505ef3cf4938904ce2fd05b279b4b77d56f9f252babc725c3c069fe5773e542febe8a3277c207a2e88fb19411bb80e86f1410e6b7f32b93aeaf87c894dc5d6a8b8cf74c3b9458f5d91e56feb98f52c62c3c4edf7775e07860d002b9c4b2d0efc6f4d87e10ab0c2658e0241ab6c94a8f4428bfb922cabfd4c1fb24d86919f03d6e3d66f5ba9933f9ea09633f426c7318185c3e44abff130fa1aa59e2edab63737ea728ee94c405c3cffed4f05483255f5324b316b09b83fc541f02cd071c061d34056e6d6a06fd62826e990fc" + }, + { /* i=7347 cDividendBits=2820 cDivisorBits=1713 */ + "055bc3b16d5568ad4e2106d0c36cff64d7df24d687541bd3d2fa40dc4939cecad55fbc86864b83aa53c24237f0748549b3c97180f56e84d23bf39149254186c868f9f2609ef51c46122a4987c897394df0f1c920761504821ee322af0674eb32bd982d2c307ead950dfc5c2b2ea3a4864f50c29fe81be90d312b478cb7b522b95e9cbf31dec93db8039f67421ba6ec5d5332ea392b2a8979fe04aaab6819517af3a0cb69b9678f8a252dc2c1824774aa94a0f30a06dc89836801458f2a99d0305666817837f756d8ad3c7cf4b9bbb2123706e2a745910455d1e7ce4492534f8ad979fd405bba31c06e5cf6386a6f533ca3264f59bac7c85d7c5da8096b61c79611b5edffd16e9808457e4456165b2d37e97395c813686e561c5a9085b12084991c55311e52c96c9f86e6b07ca63a6332dbed3e9093d6b5e9a5b868faeb6e829348cb50cc4d36efbc9693d49eed375810990473e5b614a1637f78090cf5dd6bba9d", + "01e5da41dd24dc0e1447959394983890145d97a3dda99d5eef96f9963fc3518aba882c1ae85bccec7997c45b7cd19239430a124f6f199fd0b47990f2791ac249a070dd5ecfcb3945268a836205f7db6a29404348d0111a365a9e852446fda24c02b1f5a03ca6159c4341e2edac0685dacf96b68868538b299ff452e35fa4530084532b5ffaade2f4e77742cb2dfc84e503b2e8dbc80cbf3fa3babffcf5f21cce6d1110a52ba5f2c93ef67ad3d532b394b2f260ba3d0bda84c1faa4b4903e2f40d68a63d5b32572a067d9ca49461bc9f3081e2d1698c1e6", + "02d2cb75d100f36c4cab7e5bc3d3a16157b459f855c8dd7a258427b2cd8ef40c81beada6377e61a8a1ae67ad8f5e17fc12e5014901a7d904f2bf404baf0a80ba7f10217c1de170c504c04bfd6a1113520556eaef5cb0ef87b6b7fc74498620ee25c4b8df650b76a89197cde74dd3b9b67067e5c369c435ff45324f0d971fbd559dc16ac1e27676fbbc3b65", + "4885c58631cdfeb037223b039394273bfb1d4902157a5d0da8e71dd93a13ea0a43087015da22b75a9557d0c43268bd54130534e6e3afc8d839bf5437cc0c12588e7a28193c2db4f6d34da0a95eed27d2edc4ad20ec6d07d73baabddd7b3375f266d650dc9295a6b4f343bd26405e8c3c8764a08de0b1a8b04b0b8f39730b38f47e127f57c3221178c1358f055a9bc13debd6b40f169e74096166eceaf408b17b01f73c896af0f06ee9ce73895ac1fc6faa582196ae82dcf61f77fd18fcb7d1d931093095fff431122aaf66fef4caf1c6fea7d78f38df" + }, + { /* i=7348 cDividendBits=3440 cDivisorBits=2434 */ + "ec740e9a9206857db2e7f6b86588ed2de5948dc53fd44955759711dc698c29620ef1798ddced31a4f8f494949152d7ee208bd74a4e40eb9e8a57e87cb7935bc8f4663f19827b43590b1cb6d4bf6ec5be9f51cc4b58a0815bb0cf4f935edab217df46448e0886fe66f027771bd9df63daf3321c8e5ab423601b55db80fc411edca33bc737aa7f2d7898e6ab73ddd56b6f1f1f21674bb8916e82315e2baeddde3f1718e2ccbffa5968616bf0a71fe06797bfd943de7e112385df14e94689c516f4af346836d063046d2abec1ad81b391a04edfa077cd5c6e975cd096b089ddc916860c0cbab1c8ab8f01a65db68e7e5c5525220f2d4fa87edd5588f85f2d9f39a56c5fc28ef0fdcad81b5e41699973db6253a0fa6a80de06667a1adb7dba2c4f9fe6bb2abd39db6ae16c901255b2bfad7b904c5ef83210beda7ae01e4fd73128f958efbbee9688e23ee2ca809715b6171949719549703de682f61561f88958ee98790c9cdf11245c50f4827da3a902ec23e840a43d1af3104b29babcf0e7402cf7745deafbe4f4e999e215b707377fa74208030f6f7094d1768d3bb1c41251d98edad1535f2a1ad200e01e2a7186f1", + "026951889061b8e137a866cd85db26b47ff7c46ff211149ed3b7e65c2cefbc541bf8c24c40aec6dc29ed7d5cbdaca987e32389e176e7fdb67bdac788c0a0a0606450efae78b936658bccb708aca529e9e5a72961af2ed6ac5d927a26123559b08a7ef8eef7bac7eaa27ce7c85712b3b5f12d30326430d48a4e89487bfd652e59fee9314b4accd1231005262d9a3da3f321c90589c0c2cf91f0e4bf51e91d4ad18e6acc5b85a82bdddf3b69048feb36b4488ea01e07f1b6c758e07d94d72212b05e2defc12d2abb7dc1f1a61257ef555ba7c2caf8229ff09bbf151d50dd9bfa761c84acf21a51fa6fd03c6419b922d53ed89cb65501b93f1b32f0292e402d4b11b8226c0fe78867f931b7f8b10674d602c8e2b901f90fe5e87f61a1551d680d4e0d0d10df3f20a1e5f86112822366219ae3", + "620e733af8c6e568b15f3f8c820d1ac0321cfd5f08565368da43083bed4b4e7f976e181a7958b13bd98348d48a2ace4441a798a738699bfeee8f7a1e1f760a33bfdf198df125751a29438a9fc0bc6808b71e4d2d6bff68516e66399ab535f334b50575920597adf9ff976af7252445824e3f2a3ca22badf79bbfd1c3fdb5", + "02222e85798366c2376c3b0a518550a5493053e2f091472370efe0371d8a5fa983b3212ab85545970379b1975b016cd23d1c731e690807df175077bba09d4602c02c72cde61dd69a9cdd60f841e763eb3edbc5d88f963be613ebb7f041b4cca7d34935a2c6704cd99f8c169842b9824684a8288087ac7a18e51efe23a272c159554193d6fab9f9c0200a20583c2988772000916197aa9a90d20ab6f66463eaa0627774dc33495f87b9cc80c467a0f201e596b111d456258c7b6d8d7e130bcc81d173030b5dd5e3a8bd4fae36fa3a8f83b6d54d63556c5762eb00af645cefdd282de82f902ac5a9c9e4ea84689b9fe134f013e2909cfdb5efb122de7be2d10a096fe9e657a1f8361622b49a57cce8de658b90156dde08c763d9bd1c7daa7531ab31b4be783f388b9abe7a16a5be70b3ad72" + }, + { /* i=7349 cDividendBits=242 cDivisorBits=51 */ + "8636c188bc92c2562483eba1005df2352013491479b984649b5ef225a5f4", + "02ab26af9320be", + "324b6584c4ae92f5ebd4010ca0cfc3eb81175adf689d2eb0", + "02392f8896ff54" + }, + { /* i=7350 cDividendBits=2793 cDivisorBits=1171 */ + "01f980369551df46049942674dcda997b03bda16400dedaa9ff084b0c818ebb9cc89b217c1545a810d65655618f1cbed56457879c17dc2c525e6fd89182d8fde27a94db152df10743e6203d39b45c884a4286d12042f804f6047a20efb3a2e4c8e1070637f3498b12d3e7c8ec7ac2f5ca25f2e38a282256f86fe999cef83aa7325a8e5733ffc3b884848530b62c7e0c00ee5a47095aa407d0a2c7a2ace9a92967dd59b4723cf4e8be62611f22302f6996c8df000c3f9d598d8b983d94f6dee7954f50b898865dfe97ba12862dac29b7d9b7012c6fa057846e0c668f49c421b305225c81607a04ff05d8e9acad3af2ad80ca904ec88480f3c74243b0d2571ef19cd66f2129e35cff71634dc38412f01d0c36d4dc8ba3491dfb06d28da7f7595301630894aca9100456f370aefc98c28778ecd3c12faf87dded9fdadf62d1b15cb11903db9888cf5b194e24e0a1218b4ba81450f1e3366ca32b6cc1512725d", + "0690e6ffe5e3b10f8d291472d123a62ca6c3c1ea567c2d73243518866909c5dc7dcca2361bebbe633ba639e1ee7ac080a24ba0ed51aa401c047e8feb0e39ddf4a0f7ca6129a6bc47f79ba7d417b1b59d27cffa8e5a717c23bdb694edb77af0f44451c841e161133e5d327ca8d9f00c90e3e2fec63d70a14bb28772eb64158bdd239373ba4e858ca9348a7e1a76f1b079443c38", + "4cfcc2d31ac0cef347ae4a4b6dc1e6ce7909c36319a416cb2f660de80ec75a1ecddd42cc0b5ff2d4df9c1e37dd54ebe6d667e942d6e2967a0639cd9f60fe1a9ffb68088a1e0dbce99aba6781ab22cebc9642ac997999408f7ba7771018395552d6ec78501649fea3c23a43033e7d2e0ef79d9bb1b16bceb5c96f116c8654faf6c8d447791bfb54e31fbde91c049a0304c081a54ede5701ebe0e030bc23f03e0cb929d3ac531055bd50d03db5f00088ef14206faee16a2ce8500ab171cc4936f0cbfdee0c3e26e1c4fe49af", + "a6a1d8587f07f19a9a07d16e3ef0754696efdd4a4529a117f8b2f135f94dbc199cc90195e388f58e3eb484c50d2bb808834452d91c901b1d856490729a8f3da625b0b1231feedcf343059916cc483113258517e3bbb241c95e088ce7c9d6e92b8cbc0bb0fdf230e347a621d10af1f61712a270b0d2637519878981a11aff66a7d8f7cc16a9844d21bb13f28e5f8e1ab15015" + }, + { /* i=7351 cDividendBits=3372 cDivisorBits=15 */ + "099984a76de266e9f02ec22261100d4c20ac10ea0e20a0b5081eff21f0b1b987958744dd1367cde5c8dc53227e58fcbd1a6c4336470bb3d21ab8464523a994e9e4062d4c5119e055de2c26020df51e921d138fd685de35d073b85ee4b444cacb7862f9cd844cf62c74e194b89e6aa2ccf880282354a6ef8c3118bc859172015d64fc82becdcae68f226c1cd1eb6448af10e9296cd62e5e114b794a0afd96c2108dab6d72015ad588f4a88b186aad2fbac5933ac5fa8b69e8c9efa59d47684b2f8151b9653ffb70045a6ca5a36d10913e93fe209a691fb12e5a614608ed76f2d964890968a48375beb52fedea5e3e0352677dccf7edc1ddabd0bd0c2fbfc6244dcb7ad89532ae9bc2e310939e2565e14014b4b24f708607eac35e7be3fc1da7f1f8ce66b00e137d0266894c9fec24e6d72f32d5e48683c2c7a9c0d49dd034ffbc6be38f0eef84a01733f33bc22d3c96c2c33657fe34904cebb63a988276b3bde51755547236ad51847519097263d984e946e5a49d634050083e86e0ff67353fab7c673f10b893e2e0ac4299265ad689955ebfe5df4f403ac381e78e13f97e2830ca3773f12760", + "2b99", + "385e3d81049e9b82f39bc4b18e8e0286a7dac5716d2bf0cb2209d7d01f99d3e7d0463502594feee250f9a068ebffa6633078d0697d05d846865f0ea3130d127637c9708f26f796fdc770d3cd376b26e17edac4febc45962dd25d250f36a196280e907fa805406f1e0b757a1ba02f0a0bb5988ea7224ff2b3703f68ed4b2a2aa621e9a16d1b4af2b31a14fbb57c93d2613a5b0039c2720b5c4f35489e4d44ed5d6a354afb30fd5a00fa7c11888f3ef4b5b28048114e977954faec3e0d0f7d3d8755f04c167a5547bb6d95bf59af698fce2e3e72c9466eb89aece0766052bb8d7049f9037a6d36b2ecc877c66fc132e1b5a064da73525d1de1f82df855520c87d40a6ecc946b09be252eb0a6f05db7c6ef3fcdc66a4d5825212ce61a029e12f1d8e350a3ae065d60759661c599c006c3445b5ab6a2f4d2fe16a7f6bf61d4c38250991e0c7fcb425bde0d54ee22d8c4aded0934a3e9a05c0b5ec20f901fb70deb9c70258901f715b5d50a8d4780eceda5fa84046b0293200b32e8c8f37c52c90eeb9286fc5e9b017714db0febf61086e7ecb4485725126c76b5ef276e3636228c29cbd424a2", + "0c8e" + }, + { /* i=7352 cDividendBits=386 cDivisorBits=55 */ + "93901598299cab23fdb362f46dadc7c9f61f8406bc7d3ab86d550f91656e080814781cb1ba82329987f45bae72d2fe05", + "7fa089c6538fbf", + "0127fcea48ba8e9aeaa92d71c7d420248a4a8e6700857ab0a7a6b4fe52cbc71954f36c5fca4802bcda7b", + "647663f2004740" + }, + { /* i=7353 cDividendBits=3474 cDivisorBits=2006 */ + "03b2e686c2710ff001804cc392e9cb47bac791ae62da59bc67e9c73483a9b9c1dbfe72c237a494a4930565ec036ba5d51bc500e03327c86a7ccdaa067be82881e45a1e74fe3a8addcccee09c36c4d08848aedaafdc81964bedfc7a04634bf2b325edc2fe1fe956ec845f3ab9428030187c5fb2b31a6a8fcbc12930af54ede270105a1c082000c7039921ac3f16c262b6082050cc52f475d12b04b62e729c539eb9b2937270d910f9aa858b235905e6b5e503bffac75ee6a7bb6e75e9bb006b3c39a798288bed862ed1cbe61d30ffdd3a8e684b601c92caf83ac15544f9bfa988f7d276026e88b50e82a5202cbdc0921726b62d63f1569d87f41517ca7112f2c68ec6efde40f32083d8272add371c84dcd4116b60c295be6d75cba45e5c300cdcc61fa4f22bf3a6a37e98d9bdf7681b5e65a11af51f854ef426b629efd59a0854709ccfe3d4b2e34c65feda1d66b63a241015ecc37dccb30cf94d3b1fa7ace20061d47b5629c06bfc09dd6b04313f7c93cffea3bfd6d12b0e48b494b7c2fa85ffd7d5f6da88e259a70ff6381c12609372e2f1cd6fcb79858d0441d89d82fa83a974a02da01ebacd50b4f20f9d94eaa9ed378654", + "046607083be9836c1a556d6a8829ad455d20f5bc30a33c91d4ea8e2cd493f16f9edab71099798273900fc6725ce8b0a5bc689409af93be0cd8b8e439e601f2c5f2f63db44621f1e733e6708d12688ba1905123551582755d40cd83c4168b627ee46e02f2a378d9cd4beca054d0e71dff0333cae70da08237ccb1d49ac2e612587d09c4974f0b02d4e0104b849e0219c6cc9c6d5b57b00125669c91665e9d364e9e6f46fc030b9557d63255ab946f925e713b43fcc8ca15e82386d1830911d4b2b371c03330a1e3c608c0c8f36194edef908688a5030ca5b906e91a88eff788736ce8c56ca020a60813755950913ea5a4c3b1d455c2733b08a34805", + "d7469e71915c8eaa79c402ae195028934fa289dd1dd04edcb5333044d8e407d74eca7aac5113a0af65138697792d54edc66ef44626b35b15b3443912dc71a0d577deec8236250b7ea56ce15a66285ae673c586b6313e99ec93ee6ceb06caf7775d89deaaee68b949ec4a3025c363dd5b13cc458dc9c5abe95d6be792802d78f48f82acb27e3142764c8c8c60786a24b2f7172dc035f7dadee5bd5db63f158a2f54b92bab286b1e59c80a7ce83c042981b460d6d6c516ae30", + "01191d5aa6e310a16c5a6d46d6d3a7f966a938df557c3482b9a38ac4092829206fa1e5e983dbfbbffece5676dcff8bfd937c388102b4c3344a8e71ad32ac2cbadf021b7bb2c55ad5afe5e431015b77a15664ff644d87b9f7378e6a63fc5e388e998de85460b86c1897bac7a4a2319ab8fd8886df0712a1ed6264e0825409a3f9e615d00430bf8a1c3fa1a9593d9c9e95bd7baff3614f95be991483fdeaddc24ac1471062ea491ddc6effb2114ee452410867196c395d4ccfce9a5b7a2e384671a30662101aafdb84168fb1f0e2fbec9c9f1864d1f22ee5350028b7fbf2f09915b972d38b3262d5ebb9ec8402abfedef8ed769dcd8269174a389f64" + }, + { /* i=7354 cDividendBits=3041 cDivisorBits=1608 */ + "13710f1902bbe642d090e5a419dc920bead0df2780a9b3f4c036286b035cec398138f0eacc78c24300b92b6589357c8d1adda46e4aea73d9112df1212affdd50cb75f43ff2ea9dd37bec2e909e74fbc0cd0dda7fda6126a3a9855440e25f1dbc416c30a1b3f717b8c5c9e5dede423d23668f322e4565ce1d9e88daef66168314a81979f3302c65d9e138f006975d51329a5b3e1b5c05bbce94d35042c1b33076ccb1b17aa32b80c7d8342e21d89f635602045ab56aff7c67913484f495e53f4c5f7269bdae56d4eb60e67506f9f3d2eb22c4d5286bd7ad83a3b6ea67147d0fbea608c45a1cdf070ab8ab8ed448e61189e6eda0d69ad960469b844d53f4984f2a1c3841054c84ae383683cb5605277131adcea1a51726aaf9bea225566fdb529433cc0538cd6dcefe0b030d18386f18faf24ef5bef3caf554fdbe845f8ae99664d4ff61a4b8b9c4053008776ff31e365f89f67cd5dccf3f1ba3635f5ef5772d767cc887aca116d8aa8c047dd1347478033553b1c8c523d47ebcab824a", + "77c055dad9b0a933c24ddb55f1928c318b43c4cc4ac5e759cad898cbad839a144a1daf801a04c7d8379199ed803f5a81327d71da6437883f71a65dcf306843a05c491b6f8732b1c5fedac3ec38534de4a5423275db818617db668303469a7bcf510654e1d2d75aff1a42aa7b40da5b78b2afe9d96975ff96ca5b333e0829421598b3e305600ebedeced045d321523d9e63bab62ec4b4d837458e64c1e01382b2d99faab17cc3372bc738700a0b9e01e4f1c572410dffb0a46d6b68a64d90af299091155df5964d7590", + "298fc69eb6cd4018c937050e7de30c1214c490939e1d459f8dd7779db1874490e3db36c8b9c065e767e696ffdfd7a3de0b95cb9471a6fde1b4e6c272f9fc3f17330aa2fcfe71fdb6b4cea2d4ee8430d97e604fe635e54a4670b3c42c573e981e5078a35363c64600cd84bdd672d3156bba30827bf320ed603201ae96fa08df6d2c9b506a4ae841e8a1fc94798a5bfde86c709e0c1c47d74131b3784a9f05fa970176e86747c777f73ccb32321aaf2d7efb90db", + "384dd907d3dd2eeb41c9eecfd951b6f31d6fd9134b8ad92455b15a7c5b7706880e1db9c52e39d9451e35a1f9d9456a00bd21ea362c7067171e51f8ed20aee9186cc068ed28498ec72560b90c0295ca684d1fcc3480c0f02ed0d98816c6babb773ca5b2f344530f858a15172ecda5a9dcc995600d8f1fb789346f57888d81a89eb9109f127ddbd8d7dee36fbc0bc7c9eb90c5448c65a6a92752c03dfa5f0ffd9eaf3dec234005a7c72eed73d70a7aa19654a1aef31d4e8293a9b74fd14a1c901c7033a2b6bc7216f01a" + }, + { /* i=7355 cDividendBits=3459 cDivisorBits=1577 */ + "06cad8a258c484e4c97ebbed0cc9e3554f6c07c08c9854756d0d5f37beec8f51976a6431f3f8bfea0829f9e94669344482449b1c17c4c5f7a738ce5fd17877ddd52b93f0cf43cc5ec3daa1d631a8fb47a894650b90bba4fc0e36e016fb455d7abbf82b06699f71557ec7afbaa684aee79e480dc5fdf5989dcba74ec081f7814acbc798110640e9696b7d21212b06bc8857401cd3f0aef42cfb53029112594b5c1c6e3c69b00be229f96c9e334bd8eee38b7033f58218492c35317cf2ad2cf97e8c715b276c124c4abc4754ac9b85ad3334714079daf281fc5af8e22ba4cc9b8a6e47000064bbde5b643a7e7ad6da573a99eab108d145214b3a8b39343a62b0fcfc1ed04280f542230de0c567d12ae9ad9fbef63d4e654a4e5b9657c46cd9713d1ee6a3003d9a7c0230a09c7d63120c8351fab481bf7708f82a6735c4184ae20f24eecbcab9dcfc3f69e3f77f559bc63424973045caf5e2c827005f4355f2bab62ef4d1175c7912841fefa3d3ff536a301027ddb8d885c8a1bb2a6ceaa526550a5bc9e92089ec1b3691356c235ef88567c8f1c9d04f3ea0191e6122aa9250ffbc8425d2d9e3a400816eb35ced25f4a73968", + "017fb63caf9594f8d27a0a0f46866e59d79f7711c9510b6267a00ed73c3c03737ead20e20ed9f1c586587ddfcb254c3f38f4717eb219d98644aba7a48b0081a7a7d68c8bfa3058271dc80ad779b7352f275eafd723c70e7722cb42c98adc929b5cf492071d753c73cc915358da0e05c816fb83912112b21bdd97d494f3fd24ed9493f978e35880f5219dceda977f64fbe827af11b3731e4e99614b2fcfa1a08ce587d0ab8a017bb16ff29298b58a40b6ed1f9ca089b701b94535a928de173ea28d1a81e91a44", + "048819ef396fa5fe5b6be1e15bd6d29a3ca726692a215494b15ee8e05faaf83683c621375650b24f73df3324a36f63871680da99a30458aada5044dd942d2a2d1f8517a4ee53ee917f94b056d2978dab423096051282befacd807e8fabcd13fff03a1665120d5d2f5eda2b672721298b284b910694ea2dd70d2b3d33da51462fec2e0ac0f529292d2ae8526b253e1a531a1739ee3227b85e270af05e3697493745b229c624f3db82d3897928a4a74de58f0ce843f199d57d85c966bbb4cac947254ac240deddd16e4f41c67a6384aa490989b277c25397ea3bdd4f5bb5c709d9699ab034d6c8ff4a8c9298a9", + "f88e16ee1475f2a42395c09ad62fcfdd73ae087290daac0f436fa4ded766e6e6f0d7560056451053fdbfbc4fd5d71bfc330f2bbab4ed7be0c7f66afd7724d7e28298d0e2ef6aedfbfa828af785934807f5cdc231dae6c95413c6b6020a5b9c91e97ff0cb1e40246f50822b1c7fd6019c2175002165e3e40ef27e5aaca6436badab943b3c60fede85f1db070b5bbb6ab6ce7c5f71a9b5df10d2f0bd3ab946a73acad8585ca8a9786ea08bc756ebdc766cc3b793fc279a2002de937cd814c271248d9f648284" + }, + { /* i=7356 cDividendBits=3255 cDivisorBits=40 */ + "42aaf17a246ef2f86e0c0f7e77d025a36f21b588319c36cbca9bfc73239b95d4fd432f0423f89e25cdc3fca72c84701f75589ecda8c6890a77c421ad94922703c0a5ec3853c121398ab7afff6378d8f26e6149a59d11334cb92a93e5eca8eb671043a8264fe7f6bd9aa25e77f7a2de31fae9d2d66e53fda527cc8dc83772eaec45992f9cabb8736719c1a80678eb3373b4d831ce367c486e2d0705607f6fb18c527625da3b2601a9847b43b961e9138907ee4f24ff0ee51808e3e82c9b93490743e4aecc377748535c7b87b05212e1bde155ac674f18a297d4c6064981ddb05d621512a7b79655d862680815c36dd7646754bad11ddc1a5282d55750461e336c20b3684a648e85050f6faee8e3833556ceb72f3445e4d0a2d43e169b1b168f053f739d03f10401f0cb5e2f2ed5bd0c451afd138836dbe2905c6bff5b303dce77df799dcb87397422b912677e1f54404f0a92845f9aeb0d144ee0276da5a5a688634847bf7cd4aba6e96ae4ff16e2d67c6ab9db72b561900fd568930b1e53fd937f041018b43ed65a6a24bf754488eb03cabc4492e6504e", + "c7a60b08d3", + "557c231db484c3dcbf1b27091990d332201ab833d2b6206b9a79043081c427ff78ab23e67e47972a2c83f60b54a05189481f388f19e663a112a4d0377f82e0404ea277305e65e56e167e597c2247345120395a95eaea8d34f80618c281bdeba972fe988dc1db69725e4d66951cced5122cb9210b27ea24b01084b09d683d55249327dadb143a3054faf6bccab291ecfb02c6054afee9581258b3a1fd3a98b248d25903b20fead6f2dc60094c1e3ffe53362ce9744de65d0861d5f8a4f1597ec1e8d3d04944ce613b0df573b4eaeb3b4bba27d88adea2fb8779994ac23ac818f54aef9506c81618492098ce364668cc394c056bf4c841772c44103cc96374c627444fbd3c27654f7aac2cbe97a81ad2d66ee94cc6717a3b338ff82e6b3783269201a0c7d457f488b160eb485acbec5b0b329faa5dffd59625c22f3e51c38f90263eca8435880a26ad7469589c58a2af11e04009779a87e36b8956aa7c133f2335ffe4d7acc424ecdaf78daba692b213555b6e05e25ac3af67480227901305ba7280838d88370ffd0db22db6e0f2868e4153d3", + "bcdc5ea165" + }, + { /* i=7357 cDividendBits=1730 cDivisorBits=26 */ + "013de97a9d5b0d2f40842dcb642707170141ba047ad93284cc04ab39bce659857461d20314367e7e9c60351d90e6ca3fb0fc6fde872a436351f516591384ab9e9d3a850e5249d6327a38ad5e09294c6c4ba7a94ae0aba940d0ca6f6de7d999ed369400c31856befffd099895aeb71eeb47861bd82e7b87475305181527c80b2665e3626432d8a5c6766cd4168a7135572610665fccc1c88fc0b163456e77c8fb515ddcda4745e19c4ca53cbea4d001e049025911fc215cca3b5945b3b8c57be7cd9de027dce772770d4be7763621a633af4b7740b7fbce685d", + "02a01b3c", + "791715a34cdc1db91043b273fc8f571f09896c79fb03389e9659fb0d143d74a8a34fb826844b3e599626957315924938c0df52f5be0ec2bffbe23442a9ac3a8bb0c965f5d73e0c60246eda97aab179bdcc3b87e5dc680d05b9d217500ebd90ac261270162b7b2173ad29fc107dd47d189506ff0db1426da0b82bce3c7b2c2f30362fc3392a9d49dc7be8e48c18b60e89170f8c18e3eebd02978c7315df0cb28d8bd79787874407c792ce47cd4ade0b2b59340039dfb286d8dec761b4da1956dcc4a9048ce1577f3ddae118d3b76dcdc1d9d3c0206a", + "011ba185" + }, + { /* i=7358 cDividendBits=1729 cDivisorBits=230 */ + "21863aefa732adee0f04d69c4be671df3d88090a2904622216978e7b0f0edf0b7172d5d043f4418354eede2d7683887679583670ffc22e99f747ccc48fc9bb9477cc4c92fa46716e2485f92a4f08171596dd61728363398aed59663ae9c2f65b47d736976c6585bfdb86c9e092fdba982bbcc8a359b5d38533e0590556291157757c60e8f28f3d8b82565a8664bb12dec5625443d883ddca57dca074ac5b1cc9814afb7113d401997c36cede462ad095e7ba94b3fded882edde3175a1410f5d35f8b67efb389aeab4b2e5848ca26ba8d6751416c27ffff3d", + "134a17ed5a8ecff9a9d3e2f309bd15a72847aadfacc5fd12364247735f", + "01bceb3aafbc394627898b0b658641f3c83b5aa4fce75eb31ea121926b8a2645b3c4f23c85ad55bb200b363b90665603344792ab0d8baebc3233045c4698ee4bafdd8abbae6902a1efe3edea238ccf5f8d4999dbd2b23e1d96d71f7e26343f8caea4446892b22e5a78752582dc9af984cd895b49a13587b69fc7b537d43998da7c12916b2e8d8244d1331e4fee5a188d204dec353d082cddc964803719bf3349271449dc231e8d704f2f325096369a6d02b82c111ca93e92d803a123", + "12bd37f1ced07cf15a84ef13a8b48059bb9e608dfd864cc5f5a68f7a40" + }, + { /* i=7359 cDividendBits=2746 cDivisorBits=623 */ + "01b548b4b818a9e1d3449a8eaa63dc9d19dacb46c698330d77259588f87fb2ca6465fb777467fcca76ffeca5bac8a46442598d79f570ac6aed675086d1b18768fe268c520211a45bde9c9edb030b0a216fddec3a56f90dd42725874f8adec6ba2242104396fcc946c9e8e3ba1e9181d0fc452fb4000a842a098608ec66805bc7641dd1fea1d0b9736d5dd943b33a4655c72048ec65b18363b63fb3329678aa5b6c7479e1b41791d5129d0648ab58423eeea333f183fd5cd39dc23a97a6ca8c8c5ef7fb5b652e6e4ef1b37345b127eac3061c66bed1dddb75bba76c1d497ed2ed2593c433cf0d169cba0c2a52556f25e08f241dd1ed31860d288af8a2cc1ce42f0a1d0c05392d600703bd7aad9dd50c21282ee85c422fa208ecac0f7bb5ea85c2aa15bcc4ed77e32893ed2378a04c0979b4a20faed2caebe745ab8657f2625e689449260d25be6cb2ec70d35d216310caa4bca8aa59cd96f9", + "60b1aa2f2dfd8db22f14b2f55cc8a8aa350f330c1e9d0a463927b257337235c1568e1ad87f52cdf84a34fa41f8580973fb04276eeb7a15a124a45860b817b39dc73cd4e3c012a419985ca1debd23", + "0485b8a672bfc12392bfe7f832129454c8d809dc6d5e2045c0b680f3dd33cb8fb2d09c7e3580e36599f5539624dc87550f50f469004f461fe759947d18d37421c1330b6c5138680d1ed74a87a2f1f4df19f1ee36ef6688f5418ec3b6bb1c862bebc63094bcdee05d18ce151cd78dec720be51237c987e636f8e542bc518314dc0ae3f52a3548f6914667db9fa8c2d43c6fc47f4c0b7eeb04f18ca851455e7d1308132fc463f08cafe62b4fa8dcd7721db9454dcd87dc51510f3f6a604ae05badedf26491619fafaf92cf97d76d9d8abb069dff25a8177c314b68d1ff2d4fda6e3a95821bab38de55531b6414bdbc148951540a681461a663494eac330039a13a7a5c85502bccf21f6da2", + "46a9808a7e2ed61db83381f0acea2dac8f4494b8277e3cd2b5718c4be3d6a22bfd568fce1b4861f2b2a6e588cf1d19a680c045c220b66b20180ec1a17b51a8283bdd91f4968b313b0b781714ffd3" + }, + { /* i=7360 cDividendBits=709 cDivisorBits=517 */ + "0c8b33c35185cc1af82b8a917085372c5a4fd19cff7010c39b80bce0d46b4f7c9b73d6a23efaf9062ffcaa96d085700259796b19080240594a0feb5a7e98a15e2e7b86324358052a1294fa2e35be3c3b9526a4d9241ae003c8", + "04b0f31db373636427cefbdc4960a175cb1c0ddc454e5e329cfaeff60d8f96e02a000d19096dbb246d8fecceca38de181364c7bd76d5bdb342d4ca5b0e1eefc2f7", + "02ac83c6930b87d44161c67612be2af739020e6ad98b11e7c1", + "a9ef25d496de36af48a1ede4cce6389748e482600ecd454fe98623982e05d4ce6c17f52159f27a7d18e6289a09662a1e193097e3753974e653b7af6d5fca2691" + }, + { /* i=7361 cDividendBits=944 cDivisorBits=942 */ + "053a61ee2e81eb8fe697102800041320cdcc638e62bd4d84b05de1835b29dc1c206e19ae26893a72c2f310360d954a3179b93b49615e9afcbeecdfcc8878e9236478c07ce7faa29baa3050de49dd1463938cb0cac182a8afcf9a3771e9d7eca62243e520a7de52544f321cb057cfa8b996733c5c47af", + "3c646a6bb273675f681d6b688d1dfdc7f398a8581e6196dba48c84a007f551bf4aced0c8b3adbb99cb02f25b48c79b51a72f18fa7327b65b2c1c8ba3c19ecb7ffbf177c5929330be0fb0b3f5d596f237e8bf8a707acb6ca258b5b28d8b2c8e22aa93731649462c3793066cd724d128511260015ae07d", + "00", + "053a61ee2e81eb8fe697102800041320cdcc638e62bd4d84b05de1835b29dc1c206e19ae26893a72c2f310360d954a3179b93b49615e9afcbeecdfcc8878e9236478c07ce7faa29baa3050de49dd1463938cb0cac182a8afcf9a3771e9d7eca62243e520a7de52544f321cb057cfa8b996733c5c47af" + }, + { /* i=7362 cDividendBits=669 cDivisorBits=478 */ + "04eef592ecf0a58ada787a94668825db574153c17f952c20bc5709e4929de6646d8bc542498fa9b2d3df066a632d4f69a5a5dcfafbb7e4c135eaebe1e8a0904d382513c652b422e9c5023a206b90bc821b24cd0f", + "1cd464744ac72ebff0cd2bfd54bf9ead345e4b2a51873867609804874336738a573d3c1c60596ab551119d6844b1ec1c7dd40084e5335fe9c02e6c5d", + "2bcec1802b42140c91882f8342b18ec24e4e8a5cc4f2a229", + "03befa943a7f0e0685ccc7b040f45195bd903449000fd823ad289018806024a15a806b87fb4c62b267d8066db060015d6d162a90201a2a2f4f38982a" + }, + { /* i=7363 cDividendBits=3429 cDivisorBits=3035 */ + "fb00abb8a404c0c1e210a01ff043bb193425b575ea1981ed1245ccb474d556319241627978ec1c948dc56843055500ebfa40236db7a0f50dd9a7be562eb20bdf8ef99d9bfd8834d99e9726622b4786209558bed6839d1c0b2d827429fc25e4e552b6765b9a0296f8b0629a1f7d46ae2e23719f0154686e97d87d07c6c4c581bdded5365d038c898d4daae0615dd745a370b5112b31f0806a02ada6e1355532bba2e045ae06abec537f5828613317fbf58719638c18f2d51df74b53f4686a32116fd29128345b053598537cdd3cef90dfe4fcfa3cb5e49ce5c8d138f2235fa5dadcf559bdc4767f2854ea28a35f4184e1fc63f08316466968849419824850f8a1a493be010f9ca239e5c305c7eb24dba35df2c249bd20a5b8c25016bb9f80b61ae2bc0f92eb5c371113a0f582b95fcd0eddf4c0fb90e72aa840bef8dfa0ee4e39204c6ce85400ed84a1dc1ecdc1deed90df66fb5532ef83f261e3157ef544021c623c7f5897f9b9dfe567fc49690d1794f742247d8ffa1c3c0c93282808f404484caad9bee277f22c33055d4ccbdc25b303c040b1b572200f37a93b2a45698c1519f9bd091a623faeb597397e", + "071257609d58a08d6ac885dbcc0b3d71a472d4b38c17c53ecce11e6fb15609341fad0a6d6d143732ef72ff0346ea3cbc869ad09d9a12c449ea7758619bfb2117a73b8c0b2d33c4353ec2ddf407d278da1f4717bd37c280f8c334d7ec3a5a2cd51d0d05f2a50d60ee96da5495a507f09171153d98b225f0fa865a7ac6a8efe8f55c9c76d08450051b849409d559ea926e403bb3cee27f210904950e9c3fa152a04ac2ea7877f1e23c9185746245c1e8caa7d61f29b489a51af4dd658fa7157ecf9aefdb1b9cae0af40ae33ceffa898c1159877c1a8bd4f28e9346740604e0932469342b06db96dc4b479fd643a3ffd7d2299737e423971f574bf840e712e47c0558c1f90a1ba039cfd0709b44ee9b95f9d02def1e0a023477a451bff1d883f9b7d95a41d587e5516f67772eeb08f98d2b2b47d15cbdf2f1ba0987d95f54eb80e0f8f2884609a30710b28b42e182255e10942060de3d0d9e73b5de0bf441eb963f1a2310f2894a78b8cdeaa566bc3bd9532a5f8b8992b04ea3238b56af", + "237e85d861ee88005f29f0b2e6686e4f7a32ec7e0e3689b8b1237836a399004d5183874bb983e585cc573fa44483af8037", + "013bef176203818db20719a5b56d12e60733686eada01db3f5512cbdb3284e091f66269cd3ef00f51e96956e979e77bf58d0741de61a6f7c2358f320e0d25928e8fbd463f72ac6296f91bc001888f0572d180d667781520d8b972c35b1567207f836d4c6486b082b3c68acf56858bdeff1786d868eccc8dd5591e0e43c21a6036473b0186ae951c5274c43a51806de9ec8210c638dd6aeee275a0b5529d6123ed57a212b15b7422748a07556dc9f0e5463d4c2260650951b8367bfb510520793ae713e7d3fc148d0c7d0b5575274f2c26b30ff304edd8af08587f67cf40e1595637a114040e0d3fff09de06b9172846822e370130c54d2d8bdb963b3d5bd509eeaa379b42e1783700c2f03ab969274dbe907b50a06862b9c3ce48449427bfdaf221340ca62a584ae79ba9a37bf12614fa099d17eb67236d10506cc682823f6d6b4b185b3af1b00cc348067b20387cdf4f1d32c18470bf69190411b56f98c029b152cdc6812e94d95f36c49612508c5bfed85fc10afde0cc498af19e5" + }, + { /* i=7364 cDividendBits=587 cDivisorBits=301 */ + "06b4439ddb3ec8f0a237240443e4c4d88777a551812b1a930b1cbdf1388666a13a036fb9b22aaacbe7271e080bc4f0581bef62c033adb95b6a5fedbdd0131240a2d23d5bc7324ddb896c", + "158bfe726e615912f477a168e509e1670726e2f02f5c1c587be1e459d924c7c2753644292e7e", + "4fa7150cbf46fe5b13dfb3a6158b0052d3161910be6bfa7c1a551c90055db99dd5d1eec7", + "12bb65488e7b2d676f762bede338a6222c14cede0038b9edf4e866352af46a95bc113dc1417a" + }, + { /* i=7365 cDividendBits=95 cDivisorBits=30 */ + "225a123c51be8402e23e43bc", + "145e9ca4", + "01afb9cae6b7d27225", + "14489808" + }, + { /* i=7366 cDividendBits=1178 cDivisorBits=487 */ + "1670ab1bc1d13170d8d935f71afca320f1ce5740d61576576b8eaaf9977ebc5ebdff4b5962f2cbf25ddee9da24ce96852c58d5a8b7db372c248f588cbf067e68f7d0fc5f2e6256301a8c0c3e4faf4fed89f95cc2c3136c58fb30f4f06eda22287bed2fa4d84ac92ff1f1e94b76c8819f5d0533ce45223bbf4ad82c7f4af8fae0f13de79697a7a6ed3021e550b93205e4477c48", + "7e8ca02304ec6d72e7b92cb3fe103de8975c0fc1f1a54534faf0d38a8aad6ac71077bf975b8c646ca3fcad9cea5da03699feca8f281d1a7a80624b8a8e", + "2d650b14ff6e73633f64df5a06b4586de557e2b90d9e5bdd05030096263efcb21d5f0ea8e434471a776fdd0d886c8a7a69be45634853e51968aaaa7cba0ac3a4e666568651dec17969ccf7720046b88defb101f183d7", + "3c1a3d14f1257913595bda0edceebbc002e2ac0ce60b9c14c327bcc45f5ee28eca336ff2d84656b4a8e400e570c8060b913002ff5aa2c26b10b1417506" + }, + { /* i=7367 cDividendBits=497 cDivisorBits=226 */ + "01ea9e58d3ddc320bf35a5c7f9c5a7ed400b751e2ad5d9d86273823469ae17b93409efde0f66b6ef3a38d1b6bcfcb7f11ec252ab14a6b9d610e573300bb6c3", + "024a2cb9abd16a06be162c2530bfb489a77996d132b1ebf03de63f3408", + "d6448c83382e57b7867ad2d442a42003b79ffc009db8b4f2ceced7d0e65bb5b2e28f", + "02479fa7317bf08046f047954d3cb126f4710a12baa39707f13e964b" + }, + { /* i=7368 cDividendBits=2148 cDivisorBits=1665 */ + "0ed5a52d174404e07ddb9c4acb158d51ab67d202708a66d6b06272cb2c65ff0fa12d6a3b1bf62edd944c6ea733744c409f101c6e5f6f1b0aab1db1f284b2bb9769ffc467e0af8781236d16997be9031cf1e3c5f55eca8e0fbdf728e7d0cf64a10f242bad81bf6d57e71e2fddf15eb74dd5616a10fe1b5daf94ca53bb537df9878c382e87319ba2e539ca935737fa1323aade435453bda689f3b4ba83be9f9d5cc155384404685a9c65460952968f02eb5ec5a3888fb29182be2c896332c71d44f05b930ca210e0127c7a625e91f031fd3f4d443ef2208eb7af11d8a05def38468f62f7bcc42351c5746e8741cf5220347c976b6ac537c5a0c3f255dfe16f47e2cb167927c43a5d7d2bc23bf30f", + "fe3f8f42c37b4dd5dfde895900cd4ebb59355ff24292bfb444e40919430e0ef1dcda180671062240fe2c358725d0e3465be1bb75063e7a87b9dcc77b80410fa94484ebf601d4f9ae181664c1a899802b432f79b4240dd8912231a7afeddde0a4797b5d3c3f739b9fc61846aa3110d0140d5da3e445de6ea59661d9880f3cfea23815be0add3d3e7e1e11517dcd250f9881eeb2760a4d99d6211765869169c7556ba1a4fd7cea052f7086338d5231b3b856a721c74507585daff168f949aec42b3358f666791b550752f5d14587aa3017", + "0eefcf6c09a844ff75bddbcbfc6c5ece698f515e71531e97d66683a23ec590c0b0d87906c0ae02eb3f2eee89cf68a54fde5504ec4bfb5d8b49e080db5e", + "3a24a5c738d18119dd9223dd9763f752c5d04f726491f6b92757c994115dd205c307004636fc2b5664862f184785964dce94978f281defda39b50faf6d29a99a272ca87735c37c81f82c6367a30eb17d9361cb5bf433f2d2c027acf26dc26310f91ec1de71a021a7d0f701e5df9bae43a4041825740dab5d31027aec45cb813877a9f413c16cf3c3d47d5d2db5de46b136e8d1938f7258aa8a4df21e050105590fedd08bcf34106b76c695af13e987e3f2e5b732b62e796b7c72c1fb963b63cc635710def6e53ae1e39c37da2f1a9d9d" + }, + { /* i=7369 cDividendBits=1593 cDivisorBits=1526 */ + "011d78e280f423b6a31624d4277572a234a32454eddabc542f1161522fa61da9af81260f5922a0c7ba31f47b9b75443dd4861ed06969d22f13c81be7368c4f3d8123bae09dcc14b38a367c768f219307faa0c1b2f4389f1f406b92cc17a9978b3d623ff41949cf8c012635fa8dae86d496f644d4e195b89fe099db24f678c353b523f71e4b55f2cae97cdcb5b6cd58fdba878a23c411cca770c0128bb66a9b88d2faa2c30f41f8fbcc22e3945fedbf569aa803a08f8a3b48bfc17d0bdeec31a19c360661691b6ec1", + "36230a0caedef695484d50510a8bdee1ced705866c5b1e03049cdaba11255e79f747ef60f6d5ed02333d45d6b3dbd936d0dfb482c4586f6150a7a1bebb013fb7054752c9de1cc4835f6181f608de7e018dff5f4ed2a1cd32abd703edfae5d310ca6b0488116e37e153d45462b0204e20c094ea64599a3167fb1ad979aff6c6ca3d2c6141780358c874bb4a358260cecdca854db5fd372fd1ac528c315afc8d12b148a784c0547aad5b71fc93db966e5c81a0380a1f2b6d9837ffd43cef9888", + "0545ed97d57edd67cb", + "33237e3b92ac1fd77486e6ea46d0004d04a8e58855c7f000dbe904cc2b75be5b3891754727704453011a51f8e7a75b32812e0a4d6fc7d8a97b282204115eb4d487f292e4720b1e60033d947fc1a9e49b53ec4ce1f8c24862e45387d5a3fd0aa3147874d237f546bf1ef6ef937e63420f10d4446e37bd4cf9e05a28314244db8b9c19e3d9b74bd7cac0912cedd7ef30977b11f61301430c09078880ba86e7e2ea6e9913bee7e7e843645092b982e67dd2030656f41ead1c2b6f1b7f1356c2e9" + }, + { /* i=7370 cDividendBits=2396 cDivisorBits=1344 */ + "0ac2897483602367481835b26bbd4809a1d2b0e0f8a94b7bf573f08673cd06d56c8ebdde31615988437cb48eb6160f1564921bfe9a45c9e5072157e5e190df46634d3edc36e479b1fcdd110a4204ffadce65878e7beb449162dba975fe9e6aaeab73a52209aac370dce952d4f8c92c7e2caa1cc2af3f106fdfc7e9d33501652fd7a18110f5c1a484f43efebbf8b9e85d8c494bb9c1a393e043a7007e563922d54ffd2515f658fe4589b87fc4693a891b0cc26c58a7729d175772f3e02ccb955703d794cda4cd5169e679b17a77960810e27a2ec86deddbc4f8dba0b963148f49b91b61a04abf3c6b950d30812d12c87ca32392ef9ea9c94cde6d002ac54237612a0f49698f397d894813026fff4135b6193804127b6ef05c3bd439b1fa0fe0cd182ea4407e66a5c48ce71ecd", + "713dcf736fcab10ee6cc1cb93d7a44f8305f3d61e2f63d94c3a796a831e2784859fd0997ca979860cad41233d348ecf5d960457aa42d970d0f59ef13d3c0c3e9acc6eb89b2331ee8c4a3f25bada8994a22c74b57099d1f9392786d98191560c5f64d4f1ccb2b5b9538f5c38f6128d79f6879b07132cc0026cfe5055ccb8b3d4ecb77e48b8f238905cd079f4127aa1c59bd588adb6498ecdce436d1c45986a22e784aa9c37d27ecb5", + "18530fbfb9d18573f76e26a9a94ee7f994cce6698d6f25b61b6f1c5c5346b9d43bc14653a5ea1c641dae1e7b7e39a2e0bf91d605b4dc99375eb47d84b2ddc1b2c7c8c2914e450494a4dfd2253327f1096f993dc8fe78d4adda88d263af68f3b0d4191a7fd30caf1b0f1d5b636f32fb2f04f1b0e1415388bcdedef41840831949f4afc89a", + "5dea6874781729d50419f5e0d043c7f01654f7e7554428510515698c1266575455bcb4edce4768d7fd94c1f408cc8279f981a3da3f36a2cb3cbc0b4f8da0449a4aa2db10b0a4d75e4a2fa195e128e3aeb16d678a191d5fa76f02f9dec0b16ee11488874166353d3138d479337878d38a5de80a5cd822fff5887185b4d3e578bbfc4a3642df5de46077b8e58547e82aa9164af5df7b152bca07f3610d8b8f25ee75d003dfbe3a51eb" + }, + { /* i=7371 cDividendBits=2459 cDivisorBits=1131 */ + "05823b07f302e36e4c2143c193924c2d370da9e3d322beb398b00980fb63a1e07da25503389e52234fb02a2aa2102610b980dc05c004bd7491caf012d8daa242e07bb5a7b759596c5dee883bbef894b99e759d6535bdb52b25ee38e394d10324519ab6b4eb4bcdb349a300e2d001a803fb752636838fe5c64619e7e770ae8b734143d6c98239bc8832c762ee7e99d77e3054fe58f32c1cf397af5631adef1d4e14e8bfdb268e4ae5587499f9dd4d1a1d4313be6f66ea4804caa24382952d8d76c08f6a8b14e4c46e4a1b7b27d28c25eab2a30da54d32b6c7d6ca76cf6e769ed42defe0160aa13492184af86fd474f7ae52260988e30839dd4bf7ede96cc7d9662ba05b93e5e28d75e42277913e20b90a5500dca4c66bca55760e36fba024506d1155e2dc5394046acccc597f66f5fbb7b0c0a542", + "033cee852bf7b4ed8ed6127daa3bf622b995dc52d989f30d356897962a227eeac1cf89b7e69d632da12a21c719745aea07bc18fb29b23b57cacc8dea291f59292bb8f747e11252347bb9cf5eff8d6446fc796b59674bf89a500a69dfd33e36ffa8b575e2639870ce1a643b2bcd290bb7daa3edd8b5ca0e22078a5cd45404d50a9e867543f5950d5c57b2c13d83b8", + "01b385f3478edbae4ddd8ad4c4624c9891aae8f20cd6057ba0c89cd76013db513c293a939e298b199728ea67b92a157a64b69b6eb0eec6c4698f17e8eb7725ec7e979ce082d4ac36690003645faba3b01f909923dc3b813373bd885ba0e88e23502bff06e57748586b2b2c7b23344fdca62e1ef9652f415b3ab699c020ffa6e929b0646c78e7a1f78d04732eb83f5981f95f725f1ff45e8a782dd026c93fca95d84ea5ef6ddc08", + "0212cd0d3b824031a785bda74da9272233562f3c28688b51df07df0bc2969b05264602e96af266794214f68c91571c6e853b1d710fc0d5c24068737c0cd6af058bffa2128d32a6ebb4446a26a8c6f7be2bfd44133af2d7ef3b134f2b204e7fa585e95f1b2da8fc9ee0e4cb6f095e02d17816e9784496e794015d46cf0768db41022de1bba151e128f54eec4a6782" + }, + { /* i=7372 cDividendBits=1565 cDivisorBits=239 */ + "0a4bcf127b4806ea49fb53b84a51768c40c37d7cfb5c1310c029eae7721ec7deb734de2201eba45c3e7213d7ee168a9241837f580d4d0575be4453a932901ada59aff9cc315240ebaccd051b9d6133dbf14b4ccb58801827ee188f8d53b1f381cee68375705f15e7284e58cc9900bac48419c33f677fbdc5fc8ca5939cd4bab4c1587b8f7ec7ac6438eef6e3af8005832d3bc7296a9013fe30d44f773d97fee730012dbad06339927940bb0e2a4460dac3bfa981bb0c2db2a2a2bf3c047c552e8428c047", + "735b7676d51eefb1346f95db1599ff64de854d895250e2db6edddefe0c31", + "16d95e02d0a84f14bac7aba45a2cf0766509c94a97be79b0e6d6a63c72e1641e0e247ac170456f6d0c042b7de8c5467b6bf3d3678d0f0050b9990556b58d9ed907e86534bd793f9684431ccf89a262dca889a181f1507b1393caf04bc3442363481dbc2e9f9d395ea2d4e04f3497bfd1721db748dce5725470e506411c2abeed55e000d28688851c07903bcbd83644839e0a03debe236d81d3ac7895105b1d875c3104abb7c7", + "4deb3e6f94f67b57329b7a9587de8212ef0bdcc74082541faf0aa93b3f30" + }, + { /* i=7373 cDividendBits=3432 cDivisorBits=38 */ + "819a0a8708bf84e703f21ce6da885a6870e89d914d07550ce9a1e2e7ff36e0ca7b69b7d5c3d31b77a736c0771a04c9f7d94d4532b2355327b54fe7a4ae8b9cb2c8fb54639168f7b8130273e18553f3169fa59117dbf2d598069f55019cca6bac5639ea1668808101037b3145ea6eef250999156866becd08981aff5ab5cd6fef72e13570d01acd4e624dc43979df333232d750f89023fddf6df1ed318ba293f287c3c15f13b74d7e32e2da02647f0c6ffc9c9c6bd319818d7551bb824e314a489fffaa6bc9e221fd0a0b0fa463b59d48eea0cc4d651173ac0daa84aee1c5f0fc4fa2da79dbd4ffdb6e37e882fc0f60b9e679878ecd7984c9a80da6508780c2325ab32b5dfcac89512cac0af7541ad2a586a1de7872f21ba0d9368f1b4c3b028543e451b547d893d2adc6bfd89cd5b98ac3a1f41fd1d789dcaaadcc3810e1f53652f925d2789782d1fff700b140842be7bdcee5fd7bb8f0b56179a144e2c36d15652a66e1452c878b1082002ed77274f59f601405be347f2326d86a5f21765da1dbf0240f2f5ba01adde2c12ca5d48d878a465e716bd63729a15fb9fd45a1cf761faccb6c9f3710fe806662d51d", + "0e1238a644", + "0935df5c73178780bfdea4b6e6e1b006b30df46396769d00d4a7f37ebeaf2454503b67a6f735888944af94303a7933ef1c5dd48efbbf8b2917d2e0197c5993619ca931bd92e30d64b386a1fdcdc0b2f72d829d72e590276c18abaa0e653098eaff7c29fded93070f6ca195c68a3b49309a7e1ac669c9fa48438b142e11092197a46c98b7be0c550ac0dae6df02385824841a640eaca2c37a30fc0619dab16b7e36f62520090b4742962ec1ef1157e54f54f2306b93641d636d290c9a814d49cead717006a7fd1bb662db503f90620b0a2257afd7b2db4f343d06216572724d19a6da4731a361a9f54e35341878980affeb7559a338528da29ff6299d969395fd929ab6059bab75cae69504e695508c5d071911517c2dbc28ba37d2775f26de36987c8e385a46ae7871f70022fa47170e700ded474b19b7b119ba3ef3aec90f938d845cabc3b6fd08876bca3389b3734136f2c76c046d6051522be012e0478a848eceb4a749869bc9b6a05415e365a54628a496518b198893f46cca9c06c173198be473e377ab14ccccb281d8eb4d2dcd52f3b2df9ba944a423f646df58161876320a6d4224e53640d4", + "0d3f9024cd" + }, + { /* i=7374 cDividendBits=2445 cDivisorBits=2417 */ + "17cdfc18e76dcaaa3fe43f0d27cef865c7f24310f49c84e9f7c9a20b0263ad27be58df59c5a5a8398cf1f697f65b48c03216e15b600c69f0976f9a8588bde479777128b47b8575f849b6c0022f8f455fc795b0033caba2b73baad1e99ebdc03dc3bd2779116cb61f61a4ad233e33523f1581a136689c6c35e5ca1d298f0b080cd4b343f463f7c16c8638480ce101d7ec31c8b037f16de25ffe8171aed9663a88bad5bdcce4c3dc0054a8fb5c1ba53738269f670d908a4716c4825d77173bd94433ffd1dbb1fd1ec17c4ef0710f3ef1bb4a64a19478c97e51b0ac87c08aad4177c74616c3b7ee5f05895c2e8fe6c736eb1714943f4bca544a7560b498c3c53186569cd0307e1d341b9a5784e0043c64315671d10ab93dcac5bafff6adb435c2ff6790468143ed58e276c14753527969c2741d", + "01fc24eeaea1c066c7490eed158c920ea3c6ab8ad7eb872c892df4ec2d7ff44483c2c408e6e8c3db4a57a2fb39ff1d79a0d4b0a7ac703519a276931c9032cb8e935fba86ba73f266ecd8f706cbccdb7dc0819cfabd36f2decdf3d94e0b7e8ff300d410f93f4de6c4d5a29fde980e299e19865f53d0fc4d98ab6f7e70d1055fc4eb3715cd041bd9d07ad4e33de760855aae28412c6be65505b09ee3e26227a51c05c50484113aa348b09402685e7ca41291e4b02b07fffa6ed6ff9cc96edd9087027c66ac565c0a373d5499b96739479e374773ae4e380d31ecc66d3c2e873c073ce41fd0facb512ad024a53aa6f3eb048b6892e99f846f514464a9bc884c0c263e3ffbadd73095c08ed0c56c158775a717d6387443f624bc9d2867c19f72f1c2a025098c9da8ce81301aaf99204d6d", + "0bfe1cd0", + "01ad1901c53e74d02501543bf807a3f719bcb198afbc01526697ea5ae36c49201b5449ce673c4cb41a2cf36e411a1fd8f07843b4c63333095c90d5c4aa231f33a29d4124dd452f55736218c53348ec1ce5d89a426c1c24fbf1cbcd52cb0c447c0de33710be5ea928963c7bfe11104cf697a9cbcc4392284360395a0f26809af360a88ebcf7f16c77d6b0e2be29bafd38bd65a9cde950bc0ff7fe64206c686dab688c0979751e7ba6d3f92b5d3a3db3e2dc72c2b35a2e9b709aa24b03c14ffe02f4b013e403247acdde1e301abd8ffb2b9575b72265ff0a7fb3a95d8300897dd6cac3a6eda40aa32bfaaffc3036b3d191bc9be8e1421bdc06817ebd20c49a0ba26e4003c8188eefd27aa1d3c2f898b8793c37a61813d3dafa4d909691a3955c77d1d61b7de179f707841dacf5e59f8d" + }, + { /* i=7375 cDividendBits=2791 cDivisorBits=2727 */ + "2876275c9738134a5ddd0b1912b4ea8b15c3920a192641a554451470c757818605b6cd0675acbb781d12ae9b263bf13b68b34f4ceb9c3743a146d85f1694754e6f7ca33d5ac85d8f4e551575dc59d4a2e752b4255d33b20e009f32feb453acecc321e7f82896adf6f0de246c17622397a0cf5d20e50801353e83d219120bb05bb224d77d00a62885ad43e8496d80572eb0dcc06c4239e028aa456f234b61b22c34d1670e0e23a22a702be16fae91c7782f295fb9b863c409294e082958191d56b323d7d3e44bc1427f47e87a5c0b3e260109e90ca0acad6c2473adb593534e0922dc6f8af4ef86ecdecc89a80b0e93732b909b9449a4c83df4e34410d3eab220790795de2009b2de4ad5d6796e0c322bc387ae6756ddb29c5d45dcbbf0bcfa32f1ddc1da0cfd6201ff7cb82b5810ef063f731241ec496f909ac94f89e46fdea65e0ed273cad4da71690100f86824477162c91a549469461fa2a45b60de", + "771085480f1e69e53b4e0ab67d19f88f79570836761e4e4e2be16d04562dcca1d5521c6a1a6bea6976626d8aa4ec5d214385ecac8b22b819f53554cbb15ddbc495ef23bcee9e35427a5363a05aaae7ac7032be4a1acc0096e4baf7aee0d292c2d58d80eb49774631c149b61d31679d3d7b7dd03d4a4198fe5eb9a5364f096cd57ea37dee40881ba387fa77b10c8d3bbd4b69895a9ddf3657f5259425dd32c6dd17131e98e2f4abeccd91ffa77c379f7317afd9cf8a2b05e8dba13e2b64be6f8af1b2d2a0d11631328b57e50e83123b1be34cdcef73743f8766e202f83230847e07881fd4c0a353c28ea8ea13689b803517353ffa8d380d65ccca9b523a3340fc4a1fc1ea1fa9b6d8304e24c4478ecaab4dcffa5c4290b2c3d36dd419b12f377347234ffd588e4e519df3d2940e119dfacc7aacc41685357967c1d5e33aa33b7ed3b0a901fe48b7b7e923851d16b99f8c975be91e97", + "56ff026eb73c8a05", + "29d7ba6aa17d3963267d13388ae59d58efb384863cdd4dad68c821ee30fb31b80e600f58cdc392649a3b49fce7b89afc25974e94473b0b4584f8dcb2e5d658c5e1d540ef97bae2f597e43207da4013d47fb958cd002895d98ed2bd73422f19a7f2a77699809c74013f901a9435dff3701fc6f8ab9a405cd0102093ee15ff6b01fbf1da295547f87fcef05a331345951f12c57d315a8a8e3691e05f83cea5e31dfbd23c31645ea52685b323806f090f01adc8770c79a85b9156fea6d4b831b6690e035ff30d97536e2251030aab61697908515d06aa4de3f5ead8fe0f3344d5fef4daf7e63a40b5b5e342633022113562094c2dff069e278e2dbb8ca8dfe1a6993a407ae4008d53187b50832a9378464184625be6258c2af5124208ff1b66e05720e0923aef698542bd1986200ee1961a0cc25636d7629357f2bff5b8b0e211a365038289e50319855260817ef01e6046bf11ec61eb" + }, + { /* i=7376 cDividendBits=1541 cDivisorBits=1386 */ + "03661fdf8e7b6731c74e8540842c4477d30b0755050f9e382af77bbdc59c5d6c0db4e46abd5189f1dbce02faea4f9aa2a53955889b373082752a5ce020475d4b2c64d4e0f2d8c32dfae1919c2579e3ee6db0aa200e8d7131e2fb8b2173846129d307382e443f7f9a1c05320728ff98968d936579f6519eb36d1fc5e41ae9031551a6edcbd84f10ecb678f680d1fc39916c026765f620e14be11f7502a419aa2092baee36ce9941590840fca3a58793681aef37c1040bd29f9fdbf3e0c67fdd121b", + "03415c38bd77abf07ca36f0c3496e2bfafc517a64d985edb4e7fe44b17ad596666e0fa3d52e5d03c8319c1f6918677185ee257b1f8071e302fddb0cd9e4722d794187a341ce8fb8e1e885ddc85ff7701c70e7bbd61bf3a84ddec6207ec0c4245f410f757edd0df15ffc3fad1b65796283da8ffcbd334ed9ec8757981a5540f3a4c598bef9fc07c8b42014fc8bdb30162c42f6e6cf4a2b66e7dc1ac39fbc206ec6a43548f2e777e0e0f00d445db78", + "010b4b2a80bfe3cbb36704be54c85200dc1daaa6", + "0240fad7bd77e7b3199b3a219d1272f74d3982a1dfb196a2ddd1b941dd404c6a0ff67a832e0203284aff56935ba1aa984d8d2ba81ca2a81ddd432bb6633a82f6417602425f468b8900203dcf100ce7b6500260e796a57948f7d993bb8fff2708b1dbad265279da9ebbabadcdca6626aebe92e0bbc95c8517200711869df4ee97b3d65b28b4ebdbfb606f4ad6ec29a518daa8dd06b58d6f8ef9e3c825bf2bc57f4e1dd697fe4d294f14c17a3b124b" + }, + { /* i=7377 cDividendBits=1578 cDivisorBits=524 */ + "a0a4804e8fa7d2267974c81dc61fb1167a0e06c09440a32817bbcd7d020611a9379d0d5e1fef0b5d1e55973b232813c7f9d368ac48bf8b1cfc43d8bcf9f2836c5370e8b3f938e3825c2c118e88295bccb9e79b22bbd697705146b559186f4477466c980cde3a36bfc449cece055077eba2c897e48d56516920ec7f6fcba8ad773f7e8a23ec974265deb1daa9fae79d098ccc30faef5a0ef103ee4a2eccb20d90d3c76fd647350e24ce8231ac230b5c80804cbd18152fa1e06c4f89d0e0d1395461fb4d083f", + "08d1fdf994522d9b1a64a00d0aef60166300cc933ca2eccb849ff16aa2115745b15434b85e76f58016efee5c2cc6043f6131d973657f30770cea223e6d359677017f", + "12367e351d4523e92c27e29c3dd54e9e97cb53f77eb6a061f6427808f1491afd9d5bb171d520a7ebc7a99e6297e7986fefb265b84dc89c2f849b33ad138e3b57d63a5b16de3693ac8b07c050af17ed6bcbf3867de1a9dcf038d52e8b9901b4f2cebaed3ed104dadc777a62f98498fc5462aaea443c2af9b9e19d58a695dadfb121482e61", + "041e8b86c45cc049982ea77ea9c8e35b551f37e10fb0ad09803ee7552d5ac6293be14848a9e317b6b37984c8733edc75e9fb655b7e647bc5f6b11cbeff91cb38a520" + }, + { /* i=7378 cDividendBits=1085 cDivisorBits=456 */ + "0c373ec9098edcb582d6c9f20a85711801d283e9936e3a1ebf0239d77b99db8dba51e928c52838902ab5beedd47d44752b44454194d992ab8ef6652e5d8da059c9a19e9c6a7ad29d573d148964517aa12ae141670ee70c8ab5403f32a934a45f33cc71787cb7544005fc7911b80072b56b1c3d61d632fb9566da620a5bb2682fe5d93facf74fbb19", + "9fb65f56662e9eff756aba28e40385255fee19b837c1e7b8f514f27cf964b1f4def6c5724df8de9679624de2507ff32b935c93c67ea099c4ec", + "13949a516cf26f72c6495d7028b1161dbc35e86833a28624e1b657d628f4033c5ff5f87f81c5e993f68d440c82021ad1d4856a8a3887a4e47a5cbd474fb77bf118738b423c619140703b26e48f3094", + "59001f9d881d2c3e4609a9e3d7e049b52cc9667016ab3fdc61b9e5b7e03221a337285a2c64cb6cedbf67a4e5dbaeebf25194f8780c19a9a2a9" + }, + { /* i=7379 cDividendBits=3230 cDivisorBits=1335 */ + "0516b2346bef577cf44fdde42171c4e3e3ef95530d7994a3cb4775c665976be64a0bb64f90ff3ca4c96af5603083cfc4dba200169e70ebb597e2829db9d463d097b009cc66821a1fc1070c009b1e7e17cbd2a8e166d760deacb34911a1a481e6ec68ff37a8a4de6b8750a9b8a21388930c7a58cf5bd5a12cce1587c2669320432adcd9a671ce38686ffeaef5e5bbe835e2a67abc6f9e4e433ddc9a07cd392b1de3948eb251f1ce163b33f4c4dad1e232de769a541b15337938c4fe334205ba0585df2853846c4f67932566f214d2b82c441f15e7dca4620f8f1de8a0bf6a4807eb749a4b285498fce5fdf0e4433ff5213ab1e3f6e881da9bc5ab994f2a4bcd0819312d2b7b7186a8e67d1eab3a6b0cf015fe29b43bf73b3f4699a793746ec526e01861a14febb83d2c287b7f17843e3ee71f63de61ff8c1e1e7be40832a944943e1930a40b344851d5c80c7a77e2f5c84c8336572262266f67c8cea50a26cea5597b97af838019d25cb6fec61413b707f784524137738e9eb65845688d847bd348f82e607b5c9fec723b4486519c76de32aaef", + "67536297603e5400da5359f803bfd17716384ffbd45b74bd8dae2a6739beb60d48841a96921d1216f3b176623efc852aecdde14de20b308e09f73f28423920d8ce3c87903c0647326939d0ed2c20ce0edd915918c319892d2bec8c5d983bb5b62d64bec71379dbeb597fec84343ba2e427203017f9b89c179a082548e2d118bff1a8ca04f04cfcb37ca5deba528460d08f80e48c28b0363a7032573c57f9d04dd4287cb7a59d1e", + "0c9b8ff075bee6e348b931d763928226279d1c65c6ce625160128a5e47e0b1e98679b2c59cca28bd92e4640680585051b190f6e545922c322938648265fcb92404b132c7a61c062fbed7483b421b8a2ef92d4ec73930264faba704ca3a7526ec8a1e6ba632045afbf517a4a8acd2adc2b275b1be74cebceacc661d7c76b7f75c87e50f8c0023ae3a9ce57fced878b36a6695f0b6345c1bf1ce162efb458a0c7af442a76aafa8f87a4fbb816e65b0568ba111278d385e4bc0f8f0658c0476bf5c837de05febdbc05a1b797e683d7979dea8188a6d9b74088906b952d6cc6e64e1f3b53b0bf059efe7659a5dd0", + "40ba5fef0f9ab8380e02ecbdc41bae44e928cbd2e0ea0779e3b51d5afcabf1c811bbe66bc1a089696689b7264aa354f59ea5f15a752995fe2d967b418363e5602e18e9d8a265aaf0729cb1e555946dc1a04cc4e5b93b7483a82efaa3e1035a65c710a4106c0bb2ae07c706eb9c4f88525167455ed693490667278413425a7c6302beabe59a7a21c0cb554853e8db760ac9facaea391094f2fc92b88de551fe9432cfbb23831c8f" + }, + { /* i=7380 cDividendBits=2249 cDivisorBits=868 */ + "0103b40a87ac64162c6896ae2776ed2bbc212164d6f19c3050ede317045dc476c91452a9432da7bc556ad9933badf041ee1a87a03cfa6079b52b8a7784e2f815bef7baf89afde0496be444addad8fccdeb479b64ec84f7e38d411d7a7ad34e0a65c9a3a3688813db7b5880fbe86f397d281846a37e9006ac67437c4aeeec7748244937081a597bdbd4d8d674ea5dc0d290c9d09214a20b777b0fa018aec021a16c88044392be982ccde497af8be16410c2f6c5da4da144a9209a84b11d5357e7f44dedb551715d9fa00b4a497b732cc1407ac74d9d15ba8b98cd3895eb2eca707bdfd17917adb729171354bf0cbef135896df71e9ae1c79401509ec5c09da12134fc9a53594b9c3747c037c16832cd048d0f3b03926ed9dfefc4", + "06806c250d25ba6513de65f871c73fccba9be7b97ce8767bf610e2ed600f1fc42c1e26b4a3a462e08f01ef11843dc6b49865064f94ca9b893a5454935d9dd21c1da1c24e124c3361545a9e377dab68c0e1f58c49be05196ec90341b2173ab2d6548d2a4e72003d6cc208df444a", + "27f1b7cfb6c63f2bd037a6a2c3ebb0e237504dff13a1d9f99dd41b5d11c3f04c0af6bedb787019a732f9d20e37595684ab8f29748644e797d2d0e9fda6db21326a4e9b53e60cd9c5f65801a4d8e21589c43c43f8a867a1f913330e574fa1e8cad664c27445ea6c357e18eb9dd6edb02aa5930172f9f5032680c2812ba636c3178c58b50671fe147e9ec2d028b12dd611114c1d30c4c3cc14ac2007f460040fbd93258ac29293c24b707948b189", + "0415f426735779718cfb9207e5989ee1f55ba06232ef9cf86c1432c5eb55370fce0e1381e46773d2d4316649a2dda2d4ad9ce178b7210ac57e828b8beb15acb23aed06e1fe62ece87bb8db4e8e3cec09018cdbfbd1ab1bfa00dc8213c8680d69535c1e451acc6aa2038d5d3a2a" + }, + { /* i=7381 cDividendBits=2918 cDivisorBits=2510 */ + "3feaeb431f24b1037223c9fa9f9626a2e446bfe9da32efa06e0cc6ca19051f54eb501c05b3071b1eaa88fb118517463644e3045a7d8b8db84d5270826d18a21847cb81237a4994bb413e373d9c6a00ed367ad1e25f050e74e863fd9e5f34509dbdf405099a34ac882d916672e2d7803b145b03289f691889e816eae92ca3af86295eb59a3e78fcd047a1e466e890d5c0570b2804b1c5d8e4ac85bdac2976c6652d17d1bc3d978d339312c8e061327947f33a0567b5f3ab29904c3619e5eb6fc9fc53787696b32c44ca95cda59edc67fe4d842dfc1d7e974ef385072c2afa1e60d04a68d735fb5d4844fa14418d2f1b55cc593951ab33f7fb44ad31dfea66a3543d9db649168c0345b16ff9452b5f9aa6b566f1556c452fe2dc1a4f86b7872b469296890bbc5ea87a6fd63ab68d58149e24788d0cace0e676a62330423ba7af84f2cd51d594ec7a52dcd3109bf7df99a42c9f088fce77bf1ab661fbe1e946e7106b427ffb65dbbb92ece8ce730e", + "173817f99c72f023fae14e4791ebda048b086a20e823d824ffd7518c0eb4ac413c21deeae2db0d0f3089615103f42799aed42341b58b6b6f82fd11cdc67465e6324a3f63a66bec08f89681b6b93fc8b65099088675db3962339676f73c6d99386244a1220cbe8f5a5f436547ed9f6d186517f3f8df9c5e6d2a0899e32989449741b7e6ee368f578c0cc0ab0510186d34cd2cfcc12eeac212ef7ed41253ad59339075a247335b0532f800e6c8b880bd84fdb35765a9bc06e6c240a21afcee967626fd328481d5b0a5c1883c6ad4bb3a26cd6a0a03843c793a04272717367050b3a5641496d8c310e6942c59f5fea4c75d9100b13cb0dc5fe31ec29abb97c6a043f0e38a6c0743d4a07fb17ddc70966039363529e9cb3fdca883018ff12bc2bf78f322cf7002741d0ba77aaffa12c75b84b018bab88df04efe7388", + "02c0b7b2f89f7af54f982875b5d8f8caea826f1c67f89c89370c51832e4ada9b908fc09d00b9051e5810db91c1d69a5c447088b0", + "02728c4d7eae78f3d525c543633a62ba2bdd0f0b124a851905791740da42b617204ca2d7b1a2e7afdebe124e7522ab511f09e3ad21a71022dbbbc935995c9c065bbb1264c6d4a52928db9d9f16ba387b1b298804d630e1936926e2172f7c3d6cfe6c5636508b5895b3af473a5cd65b7cf0ce240b9e2b3650f6e919634c0b007b3068fc21ed5dff04c463aaa0ababcc17692b6081aaaf64904692a58ac894aa88ff1425d5e28fb52c908de64f8c6a86a0326a250cc216d95bc7d0b25fbf632df79c25d6ff63bef7f7b046085cd57c88e0e5906fe4f93656e7c6cede060a468c12a13982bc9a32d4fb97811420bd3f66cdbcb3ac0644758d2d76ac85a241607786df34cf1651d540262f737471b622ffce42d1d8b1df088703ad81c2fef2718b38a8d7e0346fad7581a93ee0ed012ce7b4d909f2b2d8dcc0fec58e" + }, + { /* i=7382 cDividendBits=83 cDivisorBits=29 */ + "02968ab3c0354da4ec0a94", + "1c5d0ed7", + "175be441b3f38a", + "0e56f5ae" + }, + { /* i=7383 cDividendBits=1378 cDivisorBits=1161 */ + "4139eb54241a0a4797d30eb0a26d45bbe3c2747cf3c9aadb8c955c837e24c216e56ac5f119e299470fd4c5959e39b1275c320a030fd4f7f003e376df61d7169f3d9a03297e2cb020d2375928255ef5dd0ec1bac6540c7df5c7609b79cb885c83ecf56bd7490b5de83af8208fce4a7239fd50af6a9c6f9635ea7ab89ded74d6a1633b7e196340904a7c0d420a5de8cda2abb6a16b7f305879e4969317ba8d52046c6a070f6b400b53bb6ee1ea", + "3aec9e57cab064761e5f518aad384868f0dafc4a5a6cde376534fa4ed697cec2e6b7c2beb36b6b41815f92a4ccb5efdb926c49c29d26202776b4084df953122aaec2b0f6b1e00c5ade958e2f097e416b98220a0a8bd8908ccb5a927fbd1c019567ee6b0a086ffcfe64ee7de331728835f9920b4761ca35a5d1b3fbd356e8ada622f9e9051530bd458b5ff99f56ad945c95", + "011b61141cb4629834d9dfab704e130ebf5206de55aeeadbbf5a0002", + "0421a6f1f01a090786a9f54140defc284cea43071a71fad954f9e731e509c5bc1c852349dbe1759222131a63da3e5ef9f2bad01f3a0e678ea0db9510b7317f1232257da6f39a71b70768375e66549ed489cdcc87c81e657a1b84de3b6a2de3ce235834ccbb859d04e09781090f8c513316791841cedf242833ab0775b12903bce13efa4dea6d09f1ba7a80aff3a8e428c0" + }, + { /* i=7384 cDividendBits=782 cDivisorBits=222 */ + "148f7d747c6eeecb5acc314a454366e2e5c45bc4f84a55a43a321e1f8677195545394757105c6ce11b9be7ff04e2bdd9cb6da746efdc325c8a1bc87959a33ea91244422a7e8f6d5be5d47eec80ec14ac498f2fbe401967742b47f441f3f7e3dc25bf", + "212a7185fa9d1b5537dfc82f831bf579b84984d09d6083d672663789", + "9eb3ce305ad5efc1621c1e410ea1eb76e2bb4c1d16298fb78c8fba141136c12b6689cfccfcbaced3ee4e246aa094695642824fdc7625081ce729c4c34fa1b41b05de602a5408", + "17739b732ae1f659fc66e39cc7741e9bc53ae5a8eeb9885449f77577" + }, + { /* i=7385 cDividendBits=785 cDivisorBits=244 */ + "23b5e26530f3ffc8ca75b1b40785311956e9dea34427b4d299d2cbd32c4db2bf7c70a23bd5bf66fb2364c9d38b509f26144a1d5602fd3b4641eddd41b6bf99158284401bf082234abf17a7260b366fb35d5c6b9ca62f9777bbfab4a1a5b95df2dddd", + "093bf88580efaadd924728445705296c28a0b997f3a930909c25c1de3de2d9", + "03ddff0f418c6d54af185f4e3401dbdf9093be45402379f68fa76478107fef4697c401f13ecccafbf8c2cf24df694fee47740dc475220dd824d2428c4150ed6952fc7402", + "02af1ca44cdcbed9df95eb6df62583dcaa6a93e76ce8661f11f9ebc710c42b" + }, + { /* i=7386 cDividendBits=3729 cDivisorBits=1834 */ + "01887d7c80dcc326c8c01aafc50c8c72128aed27b19b668ed602fe14bd018d1135f4ae9fe96c6211fb58183bfece6472e61a07d133dd84a1453d7d0a7949c618d1be18d12d38d436b2d9125b80d32775cfbc47e1bbb97629b88bdf4a3da3c7d81ca25416e422a49644c2f8c23cadf3ad5f3abe6775ed91eec3d8dead2c71c046395118a3d15557b7d7a41e8b27bed31935079d8db39d6af5e032857556643d887cee32f4c7e03150d447ea2dd384c7e7884baa9539bffd2cac4a17c92e8b7a7865d10998743df8daf4c7a14cb756ec472b715bb83297fc35d619b41f3585261b30b84996dadf5cb0673f905df61f180c96bd0153f2ecf5d6c7b9db9fa8a88c72d9c344805206c69b6aa5833f4ac06f86eeb18de5070fdd159a23b43666e0e916627e3e443985323ca792be551f900118fb7f9f7eb3d104bde126dc959b0d80827c3db178b1bacc2accefb3730f38ce9f7dcf756d5a65c2764cb844a493977bd32e09712daf91c2dd006a6b9349f297196b2a4d4493eeaf26edd7d26ca2c64dbe18db421ea62886bc77d3db228060199aa44ced239b996575aaacebe9d94c24fd4ad192fda3c1122bda1f45be03b5b50ffe1b20225ceddfc40a6ddb1c0aa21695be4d9e8626f425051a371922a89af8808f9c39", + "0218fdbe95a4ea79347e2fb207a2065e94a886d0347c6f6c6fcb1fd12ee274cc3464b7fb3742c8020fc0a45b933edccfadbf90c434d56f61ba9b140eb4d40f9f63647c47652fc73a81fed75079d5da94952f846a1ab722016900f1ad6d5efdf29a44b3ca0363ca783af8ba4e8855e77480ecda74cb4debddcf4ac165544c696a9e4ee7781f051904442471b3f143ca52c6c64756628bbe791c9bbaa00271e55f7d690aae7f0a5c34ef498f41e6dbf2c091c2e5779008e392f8e134a9362d625d6f419b1ffdd1aac9c4700d6e5966951ddcece630a9b0e0f86a81df06a9af1c409dee7e5a7c22", + "bb1caaec8e4785077ea016d54618934316be48c54e486a00e3b3f849ab9d5f2a380d0b6b25f1459fcbf773cd91bee5ff105cc229ced942d7774f6017eeb381b388faea1d9d9beb72b652b87a3fa6d9d423a98e4ad250b664385e599f2d925903b226f2fada5186355cd2f9ddfc1a40d525e6f7894e34ba6a481a8d8162f5d72dcd12c2e1b26a3c62b64427cc112e188363bd33fd557b10d808a14234cdfa03fd2a4c3b08183d1df9dec3e4908970ce23be63b650665a1cff2c5776de2f4e67426f1cafb111fddbd5e685a906787a25512c14a10b17aa55ef78fb72ea9f62056e03b341969dd7aec7c8226aea99", + "451246c779d0530c994b9399a3168dca4fa173370b1a817467362d3d3d4d87e6457ce742b57bc6e61a0c0366dc678a1e32d03258c3f1be7b614142fcebd50c7aefff276f49f10d2c22de02238cb50cd8c81478aa7ee510f8eab64ae45c7c28f811382dbb758d4b2513e2a9a04d42a5d399f3ebf0f9db1a7e673f07b8e8126a9087ba0f9775f98d76ae70fb9867b5370305847f71db28bbb69130009d3dfb20f05d5413e00af34fbdcfdba590641a72a5452f30428efde28a69ee3d8893ab9d3ce87baaa97831a987ad92043b28b96d72e8f6cf151ffcf22f94606ec2bd23da796c5cf057e7" + }, + { /* i=7387 cDividendBits=1409 cDivisorBits=680 */ + "01cf52da1662d62c71c123784150f812f53b16ad69513c770c38b002f57629b7ee1733fbd20816b56e76ef5b46cdd5e4403737790b312e9b1950266afe54d335e563317fab50109988c86ad01075be7d808b3f7a570dc24d768b88b2f12a41fe2a65a2079efe9d76f1cf8be61f2466efaa262cca5b7db944d9c8785b81bb03f40841498304fb87358405d69fa16c97975228d5d189bffa161bebc28a1085a79060bb353f78dd2fdc4dae29f505fdf9d62d", + "47aa32feee59031ca91aca4655d8e25bc01cd48f1ff0c4ab717849cd62d33ebc45dccd3d3799cf73acd6c2aafdcf8d1d68d0bfc22edc38da5a790361c2603071d9aa645fdd2391c11b80f6f7ac11b29d039f278c56", + "067713cacff3880d2cd949395fe4c689193587f30a9b2f6f673eb1b546587fc1d85e348f835595b575d32cb5509beb07538bf01b3592a850d1c7ba28f0dd0e3eaad4063ed85125e2308b4f7b072ee8b14297e7277bdf2c3b1d2c87f8", + "471be7c0c058cedf3f31697ca3a3deb4a098d7db7a259212d1ae54ebf379555e50a67915b231cbdc094cc2546a7e0cf640b087bd35cbc3e75f8d416ad2d2b8c25cf5293fcfa6ec697475977b9fe787fb1217e088dd" + }, + { /* i=7388 cDividendBits=234 cDivisorBits=141 */ + "026b65b1e59680253274ff0ad6612b56136040b4fcb01e88fd008f5ab3b5", + "10ab481b1fe97269eb8e271d04fea8155534", + "2528920fc12d4adca9f674e6", + "e65f6c9bbe8e8e049a1f6d419cad9c96fd" + }, + { /* i=7389 cDividendBits=2929 cDivisorBits=1897 */ + "e62927560ffbdbad784096fd81a6229a1177842c985ca42ef310d550af6f6fa58c4ab2d92d9a4d547e3b0dadcde01ab5403373702dcb79266a91bc44b4a5dd25093f773378675316b1cb962336f542d0e9205e8cd0df9bc2f3b047df179eaa8d2b77ccb7952d64f0084b0012e2488654e0f4dde713b264e831ecab1bc0a9ff79d50ca6b2d9fe140942404b9480854865510e963af2f115fd7fa8ce1918e048a2e4cda0188ee83ac3440672e1e3f49f6d01f01e1cfb646997c66b7a9d0a137cb5683fb472eb674db85f11d85617d2ee5d291de4cb7e576647f1abb1c199236c07b478bb180e6b768b7a6c8b9534df31e109e441b41a3be29cc0fd4e8fbaa4fcd7bf1595f72543affda9c76bf1cf2dc357ad7d0fca174e271f5f3e447d0dbb3dc97b0e418c383c3a5a352dcb17283550767af6324eabdcb92c0e9a9fdee07ba8cfe34632f16f79e54d180128b375d20e3eb95781853603de71c4701a41a92c759e7cbdc1f81e19a6cca33a8e146398", + "01bbd6c357c256c870802c0e3ce1462fde18bb71b1feb6cffcb14f30bab6a16425152dbc85305f6725541254e04ce950a38e1bb01e91e0eee75b36334a22703e8d420723508358c9019e19f9163331c35168edc7b5730e24c96986263f5f69f288e9b196d8154c56628e962fc656b564c7cb04e9c3dbe44c2a7090eb704effa0a42203afc9cd42112b0f792b475fe5ee327a97ff80cb416cce79fe04d5f8191aae2e63a89b7d3f00ea7e2cc23ad1052913b3ef5ff0430edae31ab39544099b521f861a38a4bbedd06c55f09ff5f6fcd2248dde089ca4fdcb14667c2c6f8c62dfb1ed28aa9b9c328538ac863ad90a", + "84c0e2fd0a885fdf8971134977ae09c21049c4d3ba88cb96be910479b30b8b975399a097c9c36ef993d51641244f34ef567c4c1b22f30f4fdfb7c28fdee03293a5ba1ac819e5ac240077a9bbf506f79da314aa25fcdd72ad6419f9b9c8de5f1c30bb00a0e077116cb1b730729adc1dc196cdc7f50377becb3ed462676916b15929", + "01e4a197139526e1b9fe74908401cb18476db32843500e3c672b25da5c49ef6e76da9b3bfd2882fb590122f200897ae35ed9eb9245f29239f2fddeb560a25da4662c2abf45f55adf285e300e2b9238098ead479f31dba89e6f1fb6bed5cce9769405fa672d3a8982d6ffa80ef5cc3ddd0b04f051adf127bf53154e11a78d53f89fc41909a8ecebc1a9d789e00595b1aec73170d6a2be5e719100c3398bd6214ee63978b23c8bdec55515489745353f06d3340d2bb1e0fdf5544d702e8a431a4be8d0202dba6cb70ef351ee5a4212bb1dc07d0d54affff9e4f4c83b3b8d766dce0f1fc83e1622a6ac7dad4926fe" + }, + { /* i=7390 cDividendBits=20 cDivisorBits=4 */ + "088514", + "05", + "01b437", + "01" + }, + { /* i=7391 cDividendBits=1897 cDivisorBits=1523 */ + "fa12757cd1db024f2813628a89e3a656debbcc522fdf145f6315b5492ef6aa7afcf89aafc48ad1aacf9ff57ce88d8682cdf621a7f193056a5a3c17ac97f452c0bc5bccab5e34952f7451e81af3ba5d0fc1ea3f45f5613af71fc52e09bd19526a209bf030705afef7687d2f036398ee7d68f20d6451d525b00c4ac9234f909af9ae5725f1fe337f97fb421bc4db2881c3f5d9efa802e6de363d6daed60633bea5bb4cd502b5e116ee5baabfc9011c0e4dccd2e1d2e35561f9239ffe85c8d5029559dff1921ac098ca7692da590289f04bf9dca27f69485ac5bfa041d3a827fb5947392e9498d58bd0abda1b69be", + "066acfd2d84e8420f69e874d41b44d5c17aba7adcbbb518a1e152aab6fcc410f796336d7598bbc35c9a013a7fe530d6609dd0b337e9f8bd508ffb74fc06c80a00cc35da34851f73820735afa0bb3f24f0b12efa9a0993a5a23ee4ba9123643111dc666193eb62be00b5d7765f45c1e6d509cb8b389e9bccf14154078f1da611f1e9ee2bc1572a9037e4b12d59eff382595a44fa1764e0cc37982146a8fc9ac5f95cb728e0699b0b14e279cd1e350412142bd3c6c20a7693792156468379e32", + "26f8056eb38dae39c2e16ed1664b48af5983f18a30bf464f2da9b905e3ad067dcf07e283eb876e3e9abd1246c77b60", + "5711ccd49132df085e2ea73cf50b569bfb7d6cf0d3b100627c0746b216385bc59dd27dad248e267f44ec2ffeb1c883de2b1bd4a7f0c24583c09283c5463294dd971dd2f139a588f4a681231fdb2e5475176f98d15b5853a081bb8fbffe75d90a6a7b28fde56e8c8ac6be51edbd06bc73c9d398e038d7e254c0606fb9c0e2fbcc399c93ea78ef5336c4486439b64ce16dc98c83d03c01d2b2b5984c8703c967dd386adaa1598b82011a6a9149b9ec4e71d1c63896f7c70f284af0676010fe" + }, + { /* i=7392 cDividendBits=1169 cDivisorBits=654 */ + "5f859971a21a39f1876ce9338cba949fe95b7aee9b67b0e9683df67d00debbe8e495b6cd9f53bddd6e6882778a44437a9c3699613df35987a42da102d3e9763d9de85f0a370f89011ba824d799c0a78e922babb55f8747a113e98a5f92adc4e4398c0eeb0c0b3c422487526381f1093245bc9f9d26359b384a580c1e28c3c7abb99fd9b4e25bbb4adae584c934979e54dab8", + "22b198b3ffa5553ab1c83f61acfe7ec2b5e6975047f918d779f3b65bf3b19baed360a359a71f12bc87c69c2aed7133722558ed0ba8e7c172c9ca06f0a0315b14472d63d38612fcf8c72ea76f27969a9d2ade", + "02c0d787741cd0f5f95334fdd6caadf4405ba6919053e5c66b881abe7dc1980eedc842b0338adec6f84be0e26c39a581d5d054275c61aa6ababeb965f0ddc7ec8f", + "1c1b0e3587e397e7e8cfdd3243a754ec67041d9b720007c2d197a2dc2f843dc3e3324220132e861f703ec852bc1aa9d6ad37403b6fc3bf0c66d762f716de8e77ce069e67ddddc41e7e0507f79ca0647340b6" + }, + { /* i=7393 cDividendBits=2727 cDivisorBits=1424 */ + "1e4b0ff23303c8fb01a844675ccdaffc04294d9b512a556f088b819ff5b124b696f8a2c71141f7f0f38c1d3a4f6285f8e08b0150fade5dc728835172d176224fed3002ceb7f1d13955962662ce17708746dc9336614e58f12a144288928d2cf907b8ea060662003c0eafb152596aca9c7aff76c99c6115a931bdf0fb14612f9ac31c48d83056fbfffed8d69356c6448da0634c25ea8385fb78396d124b208b0653e04e018d8acde9d5d338b9eb1b61555f324cb52180265cee9413fa00028b8e4d58ea335464763bef29cc18c50efa8f8323d3333d88e3321172e89a4adda046a6aaa0c9f266fec52d31308a1f78fb7a53c314b583ba8d1e14583b8957e6da37e3386107b114937d62d66f5f22ca432de3c71aaf3d5234d081b423a30691dc28a0629f43587bbd5160d0555babe176c3252001396516592bfc0a4ce248ff60913d655aaf2d6e18e0c871e6238a17dc41cbd57cec58", + "fddd12515816161b6c023d2cba50dc8529665c82a345b2f9b6fd5548e9ecb07bdb118456107b3193011fbfd7d8bd821d366effcc721067979e30fd942b5cd6d9316fef84e86fe541e97ab97470296c405041739661cefc7e1a31311d2617f114a0550a0776fcf4726257b92e402f23add59d6ab05a7bab194297960a050db93ec5f313ad6a9b94d8bcf4ecca7b2b34fb0f57bfe5569db2876d0ab06063f96a8483f4636caa8b86035eafee5137e62449f040", + "1e8c539940aee535cde3c158334e5fce868794bac35fc141e8aa5f7deeae4e2bab581b9d21d9261b8d0b2dd71530d411791df4785e228ab262667a8cac3b7381d3bb03e830fbc081637fe7ea0a2dc553ad4b1a38f22641205aac95ed84e21f4adb6b3820744bb1175dc58606bf2bb2cd22db79c3a66a0de7abadc399c37482137d315f2aae7c463069d44f910466be958e37743507d36640f358b5272892c0f5430253", + "4bb3f68cbadafcccca0f28a0210a9830a912a72ae14c3665cdf4329abf7e5ae6af14dc558c05ba86c212b4fc11a23f42a78a86f296e0129c47fe364f36d0310244822c4b8a9645c5149e6848498550525fadfdb500651e17b098dc8bfa96fa020e631c49f8d1e4504092c4e48e98fb4d624bcbcccdd5cf559fa069cddcb10bf0369b86071f0bdeb9f71fbdc16109d055ad3d2f4a9907b73ce2aa7e07ab4b45e639bcec0b31fdd70cfd2da2a8639e5ce38798" + }, + { /* i=7394 cDividendBits=1285 cDivisorBits=644 */ + "0356502f8533f6bd0e3fe97c0251aa57786f4658226d192d16e8af70b54bd4bd9552e6497645b996f77de95a49c550cb261f2ebc6a8a6aa4cbbd108220d3f38684e6c3cb9f27f3a7615a3ebe43a68ff920c1e08d6a067ce23c6c98efab5301011bd44436fbbbe33317cfa32dd5ceeae6de7fd1e6c55782e6a12f1200b10388bb97681a83cf1c32ffc95d487b389349f7ddc9763d41bd905040f8e8ddf5318b0fca", + "0432c15d3f9a7851aac438641cd975b15a74dd8c08831e9b965ee867c69494203388117daaea3b9411347bbdfd09e82963f1f29cc5ff6e5f1f7ddae01733e3478fe7d4889d4096eb5ce185accceba9f6a4", + "cb7df83c7b16fe0d48ca7ba59c71100a381cfae94ebeaef687bb52161ce0445342143334da644fc67db938f2137afbd9ba22ee8b2ef886053f08862eb54c646fdfa332740391a2a96b0017ce2afbc468", + "9d16e5e180807dbe610f8b6958996e112c5bf77aa0f059cb137efaee56a2719e35e21764ea5aadf88fbc7e10d877947d5c0c9db2269141bcfb1b06d8381c849227dca13a10396f0482cba03398dd4d2a" + }, + { /* i=7395 cDividendBits=989 cDivisorBits=553 */ + "12e25ce65282fa398cf114aa43f273f3fcfa6e7545817e402cdda7569ba4a798104063aed214b2b8d38066e3734dd2dc9ee31a0a0bcbbdf881f131fe74dd4711d50d29a2276eb1af2fbee5c21b076e0bfc9aeb0627e3818a22314a119a2cdcfced4b44c3cd14f13aafdb5a1481d9e9d629d933662a516d25cd4544ba", + "01be25a2c4a2049a03a2a10a21b15c4c01c2a0a5d303d88f36d5d48b54be2c2a2d565e48b7e183002c50849bc78bfb00910b7bb0c5145e0b7c413c0ff721e6849d9710843ee4", + "0ad5f77068785e416156a29174319280e87738998c295eb2eaf0165d2e420bc8a2f9f93dc3377b3bd1fb754c7b27a617068fd435f763bf", + "01b14e876a5054ddf68d47e8de3f2f496400a6084566ffe52bc2dd8a01e073e86d0d0f32e9ba8692ee1b8a520399fcdc456ffd154bb6aa5a2060b62d2a760f44ac9f744c2c9e" + }, + { /* i=7396 cDividendBits=1868 cDivisorBits=1037 */ + "0827c27cb0802625fce72ac50476dbe6da149562e8912ea182ace97faebfb9def036eb1472df4151d1e9dd6be96eaa9db587a64258e504eda6f528b61ef2532b21b46bf00b350c2a3aea832edf39ca630175b7b114313af3be1ae5aff8966aada722e33f1a9c1781d03d225d5d83cda1cae6ac3a7d5d73024a05ad27cecb5a82a2a27def99021742b1aedaddaddc0df7d625da90c884aced36aca432f56e377a03c6d4a9b8cd2ac92edd9b715ce1a0abd06f943ce2fd02da811c4ada3349bc9191cf654f0a8defce119d50381545e770a5d06867b29836b454710508fc9b4ef862fbc7209de08e797c97", + "09801aec464749573e3a4ccc5d53814d11dc7ab23dd2965ce16880af99f5606e44ea0acc2fed6fb91dda690cac82d5c92ad060b2a2f12f69f91b9a31071c8a4c1ec2f0f770b5bb8446d3ec2c201569feb4afbf2f595012037ac93f62b8fff9842695354a3f16c1c1c74f6b016bcec9dd33a4e724a75a6bd6efad6be3077b0326f078", + "dbc1328d5c8b453ff1f981b69be017d9cac3e30bb257f790e0f7b705ff7e5c7ea17b3cb9c357db4392dd15eff02f692ce83274873fe5760f67ae4790ad6efae34f923a4d5fd672232dc6bfa6bcd043731d501394a5ec936ed9b3976d34913a2272f7118aacba1888", + "057cd644e0812fa41f50fb204f6c4aef96b025e2279c68793e626692de83ed202b120c4bf5b26ee37c4002e992e351ff5682acaca0cd1d7eb6b15d278ddbe733141b5754692dd2e63038601c3acf477d4058d5579dacd2b5e81455ca0cbceb659244c5b2ab69499117fe98522ae90ee95aa267163430293c2ba65b950fafe40e7cd7" + }, + { /* i=7397 cDividendBits=1370 cDivisorBits=972 */ + "02191af876fbac5cb70a17883e8dc1f6f74550e61a131865ed3b4eedc12cb59d5c3496c725fafb87620aecb503c9eab140e44da6d88df39ce3d8a3291c32eb9fbc01d0f621d5fbcef35b732b7af9aeabf77ae9325a450b5a84f447bbf0767b12a0a066e886f336db35233c9cced2d1abfd20ccc5c1adf5e2b182670aeb1b25942e452e1d77a961a5c4be90760ae61149c33fb3de2b025d3b0d7d8a47f5f7852773bfff6072c083097731cf2b", + "04f84384eeaa764bfba155b71146928a283be685b8469f882c42dcf82997e2725a65314b96a63fd23ec10d88569c01d423f73eb0d1d086ed30c2120ed1ce277e52454b99076121debb95fe9d0ebea35152e4374326a90cb17c427fbe5b921c655bcf09d556dd6e242acac539c51d7863e07a5f222d83f851c75f", + "6c130317df3bcfabebc6816bdba53b43bcf76e75869b7d1c3f854b39a23417427ec72cba67a982d4e5c38c46bfdb0329ffa8", + "04122c2147ac457439681293295e4c96ef25f372b4b46b09b675eef496cfa6aab2390edc6f601a8fb29d66ea5e337cb5ebb6c76fdd51434b9169b2773ea129d832feb6b67062906d6855f3bddb12a96ddbe98d993c1ccc2a2c7f0346d302896c2e7f39f0a70c12cd1ccc7fce97086c8049613941066100b857d3" + }, + { /* i=7398 cDividendBits=3416 cDivisorBits=350 */ + "bc3d009aa7e117c295dcbeacdc5a962dd3fd5d888b5bee1d8c73abe5a8255c46094e2fe12522829e546d3d226e3a77f99f68350410ed44588b4623f64829033372d69f1fba7bfb52ad9b843ef8aa985ecf2615cf7a191b1ac0f8eb0a519ecf44573c64b9d64a3793a497860dcfbc3691b714b55c273d82635918bf01e40f718e38c555f37792a33a3d688947e3ff6d6e8dd0ce5aef0c23b0b6e33c2a5936dc4d4a022a17aa3a97bd70199e1ee550307c7a2c1b9928ddbb20bc9ec47520cb4ad7da7ac66f8a442c2f31fd9503091939b16a0bf3d0d5fdfd4c493be693610818aeb573ab7d935cc91847b9fff501973cdddeeb1d289f180a5b88bb690c1e0f45c402079bd5eb39fa6c7630078e1bb9a0f299b5ad4298d5769180c7533eed056f1b94a6c621f3983cf4779b537b27a8f3d0fa09469d9ff44b68dc0a0918c65a96960d5521b934be18aaa7d00a9ed1edab3ea29db6cfe5b6d66fe8d3fa7485e110cfed4f3d4b7dfbfa57216aefcdeb976998ffa528deadab5a71ea98de27b32d5aeaef8db730c66c318119f41f46192a5f026fa9a1e70e020e3c496eb38b681530160d293233b7249b63127f2b", + "07bd17b86f82b756406f32cbac06a0ea47eab7afe915d6277259c9a2f8128d84786c2b5f604023f527c018bb", + "18530f96495e1806c8cf88b0710f647d78415f320a06fce5f4b7b8eade6aac1f44b687f05836e0b98694ef43fdf3d3d769054f6151630dfdc25e9ff789033b7680d85e65c78b86427daa5fef1f614bd99c05b63ea495a4020579aa9f1621aeec3ff085addda298bf903f220c32d68ae3942b46346e870d83c106a5f32e4d50cc8d6f457fa820f45fea0249025da10bde730f662360ee49a6d98b27257132f1fbcf29014939dbdf613c64a55a23721c048b23e67315a17c2759b6c7c146427df9f82d66acbfcec32c9eefcd492f3c2b0fbb46236736b47f655326a019c930a2377acd1cfa95fce7f5344fba38f091af59ab16ad8df2fc2045ccca2fd76681a3cbee8209e90979ace380c050d3c17b67a7f4006037cf180a75c596b8a169e838987771dd89a4dbced7a4875b810e84acb7b04c36f8f1fae148dfc3075f88a108827fc0220ea23170b3f1dcb126480bb1ff1522874148bf863ea5638cedf1d9755556cd1cc295563cff5d438b280004c37343ffd28f5a91febe272ebb308dd51b49", + "030457ede36f5144f5737f9b3bed921ab9fb322e25132fd93b0835353be7ed4829d633995713ebfe3818b8d8" + }, + { /* i=7399 cDividendBits=3900 cDivisorBits=3881 */ + "073ce1954fd356af6a97c1d20cf0e9da615fa8f132824bb991b4dbf69fef32d053fcf7f952ca4d2aa4ee0d2826975a4f5c688b70856dfb3a55e5e1aab7d2be2d72fa4da2a2367216477dbc8e1ad1ce58fdf77704c2a1515a33905400fea846a2ab2534f7cfe0feb63ec71d1ffb58d41ac8793ac85ede8614bed7a7d9b3cf911d3c37fd5e693dfd9e73033b16958af888c3f17a892d525375d1a02f0c3998c91b0820a10bf6df8ff8dfb3bcb227baabf00f3b47081825f69f1be7c7d758dabd687913f40567e206b15e1b2c3d43174bd0eac56432a28fa688c5ca3acb76fbb6a8782bc703f6b16e6159727e1b44fbf8709a1e972a8cd741b41be80450bb3a7ca04812d9fd2615559fb26e86b120608951785411f5ee06bbd54c5defa1a4aa94295158512ac11a5515df065ae0019a849d4deded54d61aaa029f6f1c667c48385ccd12f0bc9ac79e6d3b0b7f0b9e73b98684db8b075146737ce9830de663efdba73ead6fd295e98a8ce2113757f53c60dd12f729c1fecd14b0954d1194c9ee72fbcdcaa46b8c784e4860c2f07e9377d6c996a31c5ef4a588521bbe94ecebeaf62a138a8c1431554050515f04c6d9a556c15d1e290072e0b44998058e06204de07365d45037476c679d48c3dad7e941f8215ceef76bf48fd9bf4c4e2ac0f302317a2eeb31505d20f470", + "01507e991271ec6538d0cbefd64bdabd5e5b8874cfc3018b6c43c0572d5840152d28ba531a0ad4aefb17db3fb1463768a375671200f5c55e5c25ce82c6114c822e76306cf7f5655d1361430b4ccf33297fe5b25f50c45bfaabae7967c59ad21677188a7fab9b277610da39de41bf8dbf3d4ab26d0e11739df9fe4527f827008345be2216874d4c2a3bd2445cdc3ee87ab7ea155565188f0aefade7742ea4559d3f469f3f749e7b8c5e7e60e179cb8194e4ed80af0abce49c333f01b943ed71e1d1a81cf1ab19f6a452fe1e25c3932e0c142ca3f676eeab7ee4fe07c81059d1e3e05287e4067c2e574a80ac30687cda890a1e16af3d21f12942d9c27faafd618de74e1d91d9a7f233033038f6987bf95629778cc218a1938d9d63b537b0323b69f81e322892b253516ff42de764e9dc65b50730d6d223cedb1f281d361c99b283d31666046217d4ee1a06389187e5f32f98df7e9b2eea6ea7276a1610aad08036ab8518c62db9e598644755d1df7158fa5355b4245b0877d18fc9468b4828aedb67c3c31a8f3c7a6f5f924f69014bf756646cbb16feb57a8fc9d4168f5d54f0336f11cd84050b0cac56924001e28baeb64e2447a99e54f1c28ac513decdc1f04829afdc7cd560d27e8877b1bf50976041cce237cfd0665f7a8ea1fe416dd7219e5b1d543f1be3", + "0581a4", + "013bb73e7f9adc0a299c5cd42255fbb96c42dc2ce74c35829aef97836d92b8dee05e933801a350d6e4262316525cf1b6a7f0669caa7b8c46c3d4a7e6a4ffeddc0963dba9f5fc1033003df5d43104ce724d1fe208d5509c0f0e07119491266f42d6f666961b20246338d2a1176a3a699dd6e3d693758e30b306546965ee4e6543d5f2941edfe534b49e1fb1d7a2b0671449288131646efd727cbd7e746c9db6206551b15c947225b1a08317ef915c8bd96d9e3de96f5cf1c92afd8f4d597fa17b5d04be568390f00d5d841978f116effec52a1413d7bd7e255f3a58d2e0e6cc89d436e0ebcbc538788ff686e1d9a859a48109851c47a18488a94f75545c5fc315bb3275b089fdc53412476524829282e683a7781da7345663535a0c393af902d72bc14fb4de4545abb1cc06f2b8c0536960eb31e4f58e14935decf233f65ee3d16ee520139c36554695b664400abdc1f7840618a41a48067eea7e851cdc6835a00133f54816ca0c845a4cdbfa61864def125e7e7927cb6aaa275f008c4e86331fb62d6118adaaf4656fb2c40fe5cca49054fd8a05847e31c8f8e36762adb51c466888e900347baa7c9ccb788d68ac0c3e6b55f9c5bf3ef99df5681b19a4b84a28af02f509cf0c0299a4dc10212e5d8a1ea151696ae4a896c13293f38ac3a011fc65d70c36b404" + }, + { /* i=7400 cDividendBits=2310 cDivisorBits=1711 */ + "0110fc99230ec9c05430b163eb202dd0b39af49983ec9b84d57de2c50e15e8238dab2a6ec7e14848737ad96f0c8605497b2aa67298984db172994aedfc1ff148b14cdf292ce828c43ba8d43174646d8b62751c32ddcb2186240d0d8b9e0cde579bda77be8c53efc4046aa19d1770d40a4f65c7dbfeeb4a9d9f962ae68aee0c1bdc4df4d87281c5fc5a8e429e7843f4ac0e8578cb0aab782e1f3cefc0a04fbb655d89775f1a359efb91c04ed6719dff7653aebd5ddc3b870ef36015077e3369ca98c7d87069843ddd3c4c1b96351598204f05ec37235a4c4947a37faed876d52933a0c5b5d3571133e1a1b84a87f3a2ffafe997f4006700758c6ee5adc0390a480cc0b15808cb59e4efdaa8c9962766b08bf6b23e9704d5e7ffb5eb8fec1a6cdcec", + "793d4228ad333d164e64d4e6d320796361f85daf3a96253e6cfd2d575e855b9f4a34fbe1a5423bbd71f95c69facc4223249106f3bf6cb7f34ff52eca1202592051898496db8f6862ce794e90ce3cba24234e988c0a05e27446f4bcc21398bda02c707cc6fa66992e748b6f0b12fda03f0b4592d057ffb3bdc074d617c7f8a2ce1618b3342614e669b80eaee9335141081a179c09ac48393d593ffc6c6afe0cd2c07d8edc2f6bd0b747f28b906234d78e22f228eb3f9c30924ef903c81a942fffea1bf1eb58adf54f590381f26e6733b57d6a9de76768", + "02406b31fdb7745f277db13200dfe133d69a697b11289017717d8002b16aa6de1820e3181d6e8bbb76dc27af57693680ec9aff76d0a50023bafec2a495bd4c84a10d7ebca7038dc0d57e2a", + "1054c014daaf5ad883a68ba0f945fa9157978f93a6313ebd0c751bda27c4efe01addd08d695565ebb494d54a91c30fee3ffdce18cacd9bf3801906fa5bfc76d6e00dc98f7547db54b4b6f1d6d15ef4550bb012fdd01966e31db737f697120925a336cc0a2c83af78d4592466fa5ba33ce91bf81b06089342034c99e0d93546b5b3656e5643ee1915cb74c4b30179d7fc0e398ada7f0adde4ce246c50421164941bdd37449a816e92396cca7edb69282683741cf36f9172cefc879fa17e5b1fd5618b8741b49bb3a1b161459468e512c567574408b5dc" + }, + { /* i=7401 cDividendBits=2890 cDivisorBits=667 */ + "3c28c5ef4ce2d65971b04ab9cd237396d6004bad05c43ddd51a02e2c92ca8cb97d86bd2ba346b92fab1ce06a8bbaca90507f4a772dd30b621831a7d7b9068434a2cf1d7b81647809c087063158a1380e6b9879ab9e704a14b312ec7974ce492f520ee82005480d82773cf70636de899633a996d2f16188c35d54d50438c82258315e0d681cc05c23a14f0b86384267a6e56a3c3c6c709a0fc67882898a7b9ffa6e91064a094c21b82dce77f86264d53c7819c5eed9e36e4eaa8c44e676d3dce09f41b84c5ed03789be9719a4db5f9c7761466cc71e99675a92b1f334baea2af4f36763cc916f001681d2c0f2947f043c689bd7f2dfe27fb5d01faf8b61013d70957477e06f66e12dd396cc886d4fa6ab4e47972ddcc03103ce7ce77330e56903c08a007a6601ebb5a9067f98c6419bfda95a724bc5da09778740138e7804ece3e0c858324f60ba1c6fde230f6c9d2ad68902326c2a30e971e0d943b99b361ec8cc16a0f9dbf482b3ae", + "03f18f22b67fa4673502d97849242e29273bb2cf2d2d31f67eedc6101c8865f5a1640df818ce2bdad766b7150c6a29a3513bdadf249a819adfaf57031ac1731b144845d63b3fea4163ac7afef8bb5ca2098d2413", + "0f41445a781346e65489a888d92e93f5d2537749af09d3e1dcdd78cb481acc3765b22289d439d80fdd804d40d4ffd8841516592b32d5608aade5d38fbb16a889116542c8b99a3a6fa7bb011868a92c561ac41f617323a927cca367bc187dcf73ae6a17b45bea3847e9ab42aaad0ff5103b80b0dcd089dfdbcf4dbb1345343ab6f7be4fc5674f2d8160f9fff4c6340a8c6c21b29eaf0b78901d4bf9b8ff2e069ef5f4c8afbc33b528c55af5437eb96d0caaa18aa8e1cdebb75f1cd8cb2f3e1078bfbd4fe6f9b0097a007b0fe640d1418655f4cea4d20b7413d5a47beb79a8db8c744bdf376fbbf745407d62479f4744111776fb52916ddb6be7a8269da8c1c81fa07ebae61409d522697751f003e9b89eea12b279af23", + "02aaa1b2270c6f25b38bad5647c45e485269245c1f0a7376d5c4ba94f65f85d86b74b691e6798819979e480eefb01bb3167414df60d491e8ff8b41834e94c03afca6e5d36802afd3b195cf7bf2d5fd0be792c815" + }, + { /* i=7402 cDividendBits=1406 cDivisorBits=464 */ + "071e79f6ab0ac3fadaa538970586c29144774e5e544f154872928621493b6da49b7f19dc61741643c4fb7d11a81e3fc7aac47855bbc0720761402d6a1dfac44ed33a2d0f0698e2e70ca1dba9010641284e88fc5bd3de5ccd52f4dc016c3be85a9246a77ee38422c7ad5f96ff88887648d87ceefde38c3caf67cd1de60f51e9907d9cadc449c24510dab53e8c15565ad25e25e3f02ceba62b882dff93307d81d21d804fcfb6fb5add96f3be8252282e1e", + "85a9f7807d08850b5002c08608d4e8d0c84e052ad3819271436a56102de9030d2345f6bcf2d2dd498f46a39d9c50d4f43cf89e9a1e53db2f1356", + "0da28002f1e7cae898f3d3ec3745616bad127fda51ca554bff38b71ed3c5fa4bd82dd527de20831521796ee8389c50f915e549865068eaa551856617c240a4b7051b02a3bbdd5865e2f599e29a0b494a1122690ba987b8cfcdf342ecb7131d25999cbedbe6880e2d344f246d0d5e7e764f80d39036fd", + "68087099e0b61aac351a2f16b33cdd47ec7e8058fad8206c4be78fc8a4045c20003580a0ca64178759a23af3bded3656b4a7cd45c8fc042dee20" + }, + { /* i=7403 cDividendBits=2141 cDivisorBits=1412 */ + "12ce5ed5e3c890688ab16861654c009b00d900a4ca8f7414c21dbafe622d0e8c4820aabdafd51286d596b641ffc715678addbdd11887c10310520f565298a8f2d390294a2177dfa24d1bed129d66271f7c596929be7a3f66e50d7a3f7ff3d97b3a1a98147123861a10e4ea5e93a18372e1263d5d4adb3ec163492dba3ee2cc2d060820d09db55fb9839bd5546b0c8fc2d89d3ea5a5730d68aae7233129eb422dc294e88389896e098bcde59597b5f27e66ed6f609c0c901f3566ff56e07f52d5321dfe407797f8419d2b269e0746303f8e7f5ad58feb0f6c2f0708b63fecaa1b77354baa12b0dd46d6a9b45c24699d69419ffcfd2b1639c26dd32da15f94550a32bf6871468676c87dd1e1ef", + "03f14e4c2a0d292141cf6cf5bd018d678b397c0cd22e5d9d4c443c44c5d5953455c0f946d0b00d3de9ba408ebcff9ecc1fc7179fbffa00a2d9db43f64d29121607ea569992c41cd72297ef43dad4990fde9b086ba861e6fb4f7ffce7bbd8d683add637d5742ee48c14ea672109a2f6efec4bdd7b3281080fa68450d6d40f6e4be6203df844432027f991e5390b7d33a1b51c7f40b12ba71e0534fd5906a16d64f0a8fa4addab4025854cc85494a032d833", + "04c51d859af395d726ff6dbee603838212aec443b7e9758adbd337ee1c748dc44e9cd12a41a1ce3aea6fd4f5b4ccf0c3c2e9244684f914d0efd0d4d2af28e4be07fd5da92c8c51601475665983bd51c1bfd5b06407c258f9bc931519", + "a04c3884969e95f5142ab70929507a7dbe329337dc745e3907037b5e5e8c3df90c0f4a307cbbd662bfef030f3e505df62a5e2792bbc14584c5aaaff123d5e5b2524fe593f6d83598f469c39e6a2de6a2c48cc0c5fdf8a645a37ddf392c5c4a85d51746df4c0dcebb9bed34aa67905845bf4ea0153179de53c4fcf03ababaceac847b2ee4bf3e58d773cd41d2cf1d3ff816e3d5abecfca85f830e7a9f9e0dfa2b4e8fd687999aeffc199cdd8e13d595f4" + }, + { /* i=7404 cDividendBits=641 cDivisorBits=479 */ + "b1d0696722d512420868e80afec0ee39317a14d020c0a65b2d62a71b8418e67fd211c5bfccba89a544c49cb21fe703f793e3a9bf9cbbcb4220ac39f333085408826193b6532f55aa67691d7c07025e33", + "469a7b0c556c205607bbb43369fae2c3f48c36f03a9340196347872a5417e3febaf8dedb8efb29c8fe2e29ea3a0a0f0f0baac87bd6e6a88d8ec93ba9", + "0284bbcebc3f58561d17e4ff175ad1a13f7480bf8d", + "1743510c292c1c7eb58ea270a05668543d523717f77b1709f1d415f922a228fc1c7fec2e210375de8327a1306c93269d34b00655b61e1ebed6296b1e" + }, + { /* i=7405 cDividendBits=223 cDivisorBits=176 */ + "05add2d42848879780966d3aac58499e5e61de06df5b18fa0213dc04", + "3e659ba1473571abca744f3db1df4a3f888466c04b5e", + "174cb3370dc5", + "34fab3b5d236962c8e8129dbd9c8d261f7f4411416ae" + }, + { /* i=7406 cDividendBits=2880 cDivisorBits=130 */ + "b0ab1438db2454d3650eebf0f60a5374a0f33b152e0280ac0f4645249496453a5699793347fa362eee3ed9036ebb524f17e80b1af28f0d5dd1ea61dedaeee1db7dc58e07effaa7050423a780f914c8ba2dd65498db0c3fb4cb1a561a0a1a41d34c404f765fff31639eaa8d9efd5db06a0a6133a7668338edba53c7a8aa32c780da16fdd4673c566bf442cd26b65d35a35f995c2871907adc6bccb753ceeb63aa506ab7906b930bb718fff6ee935962361ecefb001da05148df740c989360f93b226678db001c3cf1b73e968bac31ed334450b6238f78d04f488712825ec1c25cb46c50ae5797edf5f682285b685ad6d909e3c8411b3165ea44dc006bf834ecd1677226400b46a0d0ce730d636f01e80d635bdb7de12d7c43b1cbe3fd824d9ecf77dc6916090e95ef3c6ccf794ac6bef84abda7b169258b8005d21391a8f8ceeb26c1824b8ec28985e9113e7f4aec8e4cce40c166e92e87a49b50f98de3d0de39060f3fb14b259d48", + "03179337c184ac530d217d0ae799c559ac", + "3922b392a3f3af4f1303e225ffbbde6b45cabd0875e19d515843bcefa9fb7714881bfec3c1508991184d314784adf801bb3c7dc2e7d6ded64afb2767cd746ef240bd7921b2465afddb29a4c34135113aa6fd2c6683b7b0d5a547dac5c8604f41503ab8f18d4ba5f2d87d3f71322ce1d8ad9d2d6fb8f45b188d96d378e9fe9ef87fd37a5e547ef446107ce4c2ed07993a993a9954e28411298308f5c300089f8139931468f0f52e72dec3bfcd8a37fb1d8f42781676cff0ed73c4ccbb15824ad9f5b1e58fb68cb1d3d7570a073f5bce6abc13e9f3aa54aa081054d23d9ba970f77deae9c671ed1e163b7d1012da6a74dfee5e56467777d004c6ba1381e1cdffc58e6e68553bc3aee8c2c229621a5c4ba8342e3683db0f70da3d711049782b670bc69c6075b7b4216e37dc13b624b4491c1a4cfa54fe7ed3c34ceda1ebb407ebb10dbf3e7480e4059db9d41816a1f59a4ddc6ea48b10e8ace4", + "01038c39cee517832b905c5d43bb423018" + }, + { /* i=7407 cDividendBits=266 cDivisorBits=215 */ + "03ae15c0e1177979b2cb513790734369807b5555bc2f00c65b1f6a2245f0112e8232", + "7f5e9886e791d5d4dd5eab7305737b1aa817bbd29fefba8079ea32", + "07657f265c1b43", + "0f77a9e8edbbd85d2be931b0a45c92be7de12558a6af31ff9af11c" + }, + { /* i=7408 cDividendBits=575 cDivisorBits=263 */ + "4be7563fff6f5d3a87808d37ef5ce9ea924712d6e6c28353d5bdf7ae4fb096281327a53fc6d3815d76c86f39cce2b3a856dd41e023c8ac9fa49e9914e6250e44889935d21094a6fc", + "49216146d2f00c41a913116e6b1eaac0db5e2a800595d13f603d25409ac621b79a", + "0109b545d8b8368965440ab39a5ed32867732c657ebc8e17a2b2492e6caac900316b40deb6ce0765", + "18cb738bc2d6b6eda7f9da62b1c742de9f6c88b0955273d5bbe8395e21bf56013a" + }, + { /* i=7409 cDividendBits=860 cDivisorBits=405 */ + "0da633b6a0367de5b9890417bfe9928e300ff8ce1f228f6b732b4d37c31b5419265b01941f8387b5d3beb5658b6ea35868907cd82c6585b2479b101afe3dc8d452b015ab50fa81be93f553de54e6405bb0a2cdf9f77b1bcd3a2462483ee69e325a23e5a96eca028cbfdc2c7a", + "13110a17b532555638ef3a49d451c41fa9480941f3bb44b80ecd98b64a630247eb38905ae13eea4b407c913ed7c5de65685777", + "b7436bf08a2200c5b4f342ea6e4e17a981bf45ff71db5cd098df2cc11516e0d6a042bc2a6894f14539896822358b5b96f0d64f764c24760f46", + "022388c115cc2c7548d71668749b473e1ada6fe9bdc9ecaa2b451e718d0d7bf2839f35d339cf45286385567568a412db5a48f0" + }, + { /* i=7410 cDividendBits=1548 cDivisorBits=55 */ + "073555215bc8a86abaf8b39f139b8d435cc9bfc9df3a1a4ba8b91795492d934c9c80d3342d034ebaec9d0da352ef05afc47fbcb9cea6c687d208969adb60dc437b95aee4f7b627c0b233a0a13675822285284c17165a8e0a4f43a2c865616b6b291c0176323c768c6fe924a3b37b377541a135df7727197cbb020007b9f6719e29ac68664a4c88579da72d9ea0fd03c133a8a9fbcf0283aab86956bac04e0f1c28f4a120b7c82673e3158b8eaf8464bfa20361d71dab71584b1a1f3a439a39c9c616", + "492d49ab590285", + "1937a8a4b22389738f67295aca9f3530582981f342b640aa77235b0e9930aa04cb603bac40675b1c4cbc5a7b7511969fe4047d82a53fea2b3221dc06f6c79b878bfb132830e93345f6536ffa1c15a7462944c9792295a11b576b6ead472b3f47005a87bf99ae8c2fe91a17463e814bb372e5272445b15499805b960f36843174d4de2a485cf7fc10131d361abf8bfee9a67c43e86b77922af875e37e2d14da2d18adbd58576988a11491687f030f904e166df93db98b721507e5d3", + "36b6bd6588b977" + }, + { /* i=7411 cDividendBits=1323 cDivisorBits=1072 */ + "07f23ce09d9f53af4cbe7064458a134cd174068c6d282395a19a0b76f8a3f6a5b37d6dd04f7ba125c64ba3c735dd223fe655ad484f52f03798667b3ad5606a709582fe2acd9b30b61eb9e7471aa73f24f2e148f049f9728e14599ac3ee5e84b4998da89294d14457e2bae5eea7a62852c98cd7c938cd848c18d427c543ba92a2cf34ddf39b0666caed2b65e010df26087f410b7d91c4d30befe471a54781463e6558b03fa2bd", + "d034e3cc907c04f4b01ac0d8e0680d1da80d52bc1d945cec50ec4f5501c4345ed722836cc9c765d127c248115482ee13d1a399773d2fadc50f738a3b4abb6ddb76a1a57865066a39753c5dfc6cb51bdfc349d79531b567999bed17945fc39f610d0f4ace9601ab47409d1c153bb90f6c689ecec489c4143affb8bba5d45941ce7543c77a107e", + "09c53163988c53c4d5210021f890f8f0ce46f5952d881d0794daee474a00cfd6", + "b1c94af1d0896c5c210e9e3cf39fd7497f3998321ff6f2323a50b44ef3ba7f673bdf1e0bb336aad9100af042572491f833c0b696673dcaf3c3a6fbcb3c49381fe0b809a26a55babee021bad99c82999e57bbcf8dfaf711efd6b7903835dd96921f478be3b324a8fee11f4cd1e414957ae71311bfe498f1f7174843d5389c09b190add0dff769" + }, + { /* i=7412 cDividendBits=1387 cDivisorBits=459 */ + "01e71d094296f102292576ac29983bcb19f76a71dc99ae4c358cba121ab317e37b0636ebb29d4ce575369bed00ba744ef8e81d77ab8e4d20760503cce4a1da8d69e7bdc1a03f3cc4676197bde822f45c582aa835af2a844f5061f4d499c24a7aade092c9f05121509e9729732534e8458457e06619b19044439917e60ab7a25996ae13ef4178aa11e9016f04140186b104719b8849b8c7523a2584f8d037a1386bec3999b22d1cef0dba4133cf80", + "020ae002c92ffe6ebd6705c6040354740b650ca9d64a18983c5b758a740190e5368517dae326ff865873958e0ea33cdb6d3a324ea2a91f988918", + "ee7db7bdfdf628347832902539b01da133cc1227b41636e77358af20a9b03b37ff9ac147f9f1be62b195f93ec343689f581063f637a2538c05a0ceecddbdcb87499e1bad79348c697d0ab2c51be15aec7b49af35a90dd21b9d94ee26fe6fb18a87bf396e924172a737182f7e2aca03b768b4432a", + "dd30422bac37875e367977bd9147211f79097b9dc6a3883048139e538283d3f745226abe3555430afeae6a0b2dd3692128b720a39c016c0990" + }, + { /* i=7413 cDividendBits=3691 cDivisorBits=2777 */ + "adee824920aeaae058501a1eab6a76277a7b0aba1369b97f60e7f8931e1b7df8b4bf0ea026be63de9a500c4cafb4e45026d6e13dbb0adc842f44246521314dfe01bf28301685fbd3710d7bc74651b5d6101e3970cf8132e846905b87ee446eb1bd29b2b51bf0e5d120c9593249f191d36faa2615436f635b2b5d0c03fd112ebec15ecae7104c68c61efa6f7eb1752ad049ba372bccae7b62adbe2d50b324abbd1090fc9d84e38d634060755ccc47d7bc88a9cf03c40ad240d05aacdf4b32323514db81be0dc29aa247f0a3d9d7e805fca3d841f77514c9026d92af4286548dc2514a92249a23e59e2e7ffebafae4f4c95ffbfc61f3b3ca2329e4ddf34b150782e13bf363ebf454f095b5efd57d369e5af07ecbba36a325bcddea8112e74f33923cdb68ac24bd6843fa7a859fb30466a413695778ddd5433d89531092c1a178200a26b58338bab4039079783bc986d0fbd80ddc5ecffe214caeb2dd954b701124e84bec29abb395c34aa0ef047c0361e8da712433846567079a7f5ac493056a62b3f3bee3552ad59aaf59fd76006b632e0f32a4ae5e8186e0c313c97d845db47b1500df2a699e6ffc7c47079b484aed4c64a2fbae68de5f1781c4c26c332f4f11033c468956423ad051aa1f15fe", + "01cc002737270a42c7b075ea2e3947e8cc9630065bf91231ce3bd02de565b74562d1ee5081d4b476a090b512d7b6a78ccfd3a85cb2b4199b8996f33d830adb9e653818a7297604ea475c731f32c43a8e82c949956ba5f576ff55cd3eb62cae39af530e534effa78200badbf8d2c5aa2ba7f63bd9b0575266b50368e55f68157850bab3d4cace00684d508620ec9e831ce7eea91a960ee96a8a7e65aee210b1216d489ebcab121e94f5ba67ee3a55f8f7eae93a6a72961d2e996225861d439077e90a98f10fabf870ef2e567aab832ef2c53e1d2c061466e6eefc377d8c17f02115c50533eb94899370ab46dee69593e64885f9be7e1467008fe3610418cf3059af2905fa315e652058b852ee1854fb06b99a5f0b1b41d9307f608552d18f1cd6805ceb6c8e93400d305cc73df2b8490f73c2f4e8ba2ff4ba106489371f6a66d90c93f8616ac2badacde7ee76bbb24efe2f2074933c3378ea840de12b", + "60cbf01d9c1e65ce94b063c75bddc88cbac7c1e5cda4e7044bebd1e8d51382b1a4f0a551aa7178eee76d3c979f331b7c2367edea65b9c757b826be00a9c6c4c12988746bbbe58ad066fb845522c596c4306971d9a3eae3bc983efb161bb396e5b87656afcfee2ee2ddb78f2eb5d5123406de", + "0121e92059e189cd47b5cc8bcdb66b803fa05aa159c82a615851389a23e5ac5862fd29167dd4d52a6b201d6b4341ac1eec4f3453a540dac0f9293914a19f498dfd8018fa66f1d7471a6060e177e72bb915a6ff110eb8780f8157aa7b536958847d1f3c6b714df0a4d209416bc75768f35e2b9b787b753560afedcf83408287894aef3255e26f90fb0e5d3efe7328c38f9549e2a9d0c9d110e0e38013e930dea658da947d1b74e4fc96b1d542e8577ceb34c2159c7f94b67160fba9d7003230ea80be0fe39c32b90e93b0d600c6c27c7266ad360c9fe5e8dd792b0b778ca0c4618e05329d77d2f5f889f7f7eada0e2ef5e346cadb4f4244c57ec3d9aeaf98a035de246834095bbe8738c65086fe83dea8df66054cd11c187a84ed85b048174c485ce08e9a63cdc6196b67066c029c230475e6ad9a3c172114d79cee5b675dc61728e93ca08ead5d9e00e1a429411105807ac52ac9a15ce96d1012d0b4" + }, + { /* i=7414 cDividendBits=1284 cDivisorBits=502 */ + "09f55c1a749c0f1815d107f7ea849f667861682931507c9a40e40e29bbb1a4f8903b3f64e9bf3decb31de3798a3a7699ed66f2a3f64df22e35a8f0e49e6ae58d2944b14a45a264421fd41f2388bcb4b281300271735024f6007ce904a12675ec6d5af3e3fd09904fe8644e8e22a81297eb5034b5e6b95cd142b949db60f7a2f1fa5f070bbc04ca4e71e4c4dc03159302b8d5f8ca8e1bcbeedc24d119edfa4c1379", + "1ba1631b9cf8a2721203c027d583abd0f4d3c49d5d2d001c45bed3db5c457d4458100fc1a7e6a17fc592d1f1172f384aa476a9f2bb934285892f3ee95af512", + "5c44340d334c228bfba3582e8eadb03e05c436990238202b70735dc2b59cba491c85a21eb85cb1f54a182f172b2602494e358abfb207e227746c2f3334f85c0996cf8b53e1451386ccfb71959a8ab71f3f0a55827b1fa83d1abd714a4155c72a34e2", + "147af6f0455453cde3828198401cd34fb50a1df3e21af869b81a1c9605ad428065278de3d03e737b9161d12a8b4ffd5b270ca48681d8e15fc3ae964b441195" + }, + { /* i=7415 cDividendBits=2341 cDivisorBits=711 */ + "172a0cca46db63ff22b828b5676d57f1cd15a394a159c167d7b43daae6146c3e69b14b2dd853c76aacf3bb8f0cbcc3b9377a5fea8d1fa486b4260105b6fcbc53384b8de6125650b2879834546bc237030405ddb418af1422ffc7b56a6272b7f157cc5bf2c1605b811effc0d7bba64ecd0a9f9d26761c07c5212bda1183c1ccda5a0ed34b4ec7a1e92f9dc685c7a64ac9be2eef48a73815801bfd82ae64b18ab41267c6b91a90783043a553658040a3708582bd200b53e5717c5b9a18f0056a9cafeca61b76ae1ddca3cba6e51328a6e5f09e51ecde5d7128875671c50475583f21302a027f6d2816df9248b05feac2f4e13b11ed25e4b93a511b4cf0a351a0dac2172a714c0333eeee5b1cd4dd75cc9804ceb60a3fa87fa406c8575fbe77604b307d879792", + "5a276d91374950637d93baf06268a92e951fc528098ba32fc2b84b663ea8585b1230479fa6547db94cc0c066f8f8040c5f2d27a023f1b3688b7d3ee8cd9f6c55590c69d22c8c59786296913235153446b65d6b20410437da65", + "41c6e1ad3d38a30ed751488c2f8cc27abd1ab31920fd050a8f884b17daf7f9e8678b89745e74b20aa4f21fa9d742e203cc1c2e40dc772628095764c80026aedd91765ce1a0e016234a03b557c1c84490dd7fe7196394f7c410d4cf598d21303439ab53e00e4d2af82ccc0d09fd29972030c5f12155d3280e027d98e99c5f89865471c934942782fa73858ace5e133e718683195b1409947d380c8fa1d1b22e583932e56d172b19e634632e73e2c0538a61e31e15657a7397c2c14a082b7aa8c72a08a3643448373272802b33", + "41279e74add3d9e8a3ca02c922a367b10c1bb1deae5a2da60a592d1a7b78e6095602a5ce0e19d40f65f17140cf6915a87aba0b3dc90db6f5b2fc4fc07881cfa2b921756224d851613fe08279b9113dd2ab04fe9c9f18381e73" + }, + { /* i=7416 cDividendBits=651 cDivisorBits=550 */ + "032525e5478ec7ca7c09095f2980c2fbf684e8dd102bca8da209564c667cda4ee0d5f015273029ce5fa7b419d76cadc90115627e602b03a7ad0b61b6c7fed7207be56885ec370fb33d7031ef04b8add1a17d", + "2b557fce2d850b907a1b979cacf88e9b88e58274b29e51c5b45fc46a7fac425c33e38271424008e3d1cdaa23e59583ec740200f53b9a4306bc1bfda76de1c5ebeb076cc52d", + "12947ee54b77ab8ae9d77f12b7", + "1a419516afa5036887040806a874717598885e31cdb71f3a54af9a76bf260ca1c5e99ddd87c2c3645ee535108574b2d5ac3e2b8d7e4433c68d5153a44871af18ad1ce08452" + }, + { /* i=7417 cDividendBits=3826 cDivisorBits=478 */ + "01cc11876221d038eb7853fd1fac109ceaa9070ce7b558f8fb6005cbc50699041444bdc18c8e342c38dc975ca6e8d9b3199b1a07d39beb0e08ba9042719dc449d444fcd50c005039ace21f351bd35ee4f56f3f1ebc41a45c56a2f41b4bdadd1062a2ceea4a42bfdc015a28b57338b5290800674d271d99a13e9eadf80df1deeafe69844f77e8de3ecdab0af437c6df0c362a739baa90aa5e06536bde28af9fc4b9205387643f80a2ef78251f955e2a6c4d93b15db28715a1dd38bff1a8f2e57431f13b22ca26b4f08da7126035bb3df522a7fb4b95c78e96270e68bb12c46dc2cfdc9a5e5137f91c34eb0034ce55b945e1bdcf82bddd9c3867e0f2ce829cdd4244530d0ab411a12ab9cce479e7a06b375920675e8986a23b186fec1d95165b60d48c51d666d07fa8d658bfc14a32f7078e3091514ece570609ed367cab527ca3001f7f2e508fd06feea5b61c5b620294b572ea9c15b5b7665624c4fc753a7c02770a8c1faf0e02d6b0dafce532a2cc4b61934f09bb33343526a69d48def8957aa75b07aa51e9a319e4702ef4e27051454aee37b3ef89a535da2690c67933413bb49e31edd068249b19706b8951a75aad0f650fcb506a8179bce07a7d9c3248ffc4c1e258e633cba8a8c0b5290deeeaebdbfeb5bb1fea8ee5359d9a495cfab1", + "17b9f95be6d30b39fb70c09680916becc10200cbbcdf03b744ff9d307efa6418be1295cc8b9c327a01994bba78fbe7f6926c5c5e6bdc04c838caf340", + "1363f94358fb784f25c8df1e4e4c1f2a458dbe5bd49a4c58ff91c95d5ef303dab4a58a07485945f60cdc072a879a2031ec12854399c2ba17743a49f98300e55783de09f882ed49a57fd3e992b6d6aec8ddca8a29e8a1f2f55ebf77add924f7b107fc9b33dd965b5c906d30e7395dff96c88535c3445e4aedfacf56964ff1875103007a8e9f1cd94664dbf1fcc02ffa59a11b951c20329317884e1603a383a5a847847d981e5bc7d945134d660254bb65a497b16cd3ce55f3e79db8d32de88b9fda5b1a8d372a9f96dd115d8f6032b9d42d35c24ff05fad9f249767955e11445b82b2c6ec40d26ae5aa3dd7e7ae451ce9b8bf7aa66a90ce44a6c764187467ff6866e0c76fa1cad35bba40cc1c942d0c296df887c0782d46726d3d14439e715569ab1927ce5a679b888fbbce35b90ae621404b141585ad4c71952204f1372fe244c5537b4741c7ac61f724b76329ed180b44b1b38add47cfc203311eec5cf66dc2e6a2f1053a517588c743b1aea2011f64b9b3be5cec626fe4d78628f7fe3141ffba3004e8ddd3b363fde5d24324c51dffeafb4ac98cf0fa33f2bc4df8287282cbf88869", + "0398c5615335a940a8f263498c882527770b0436d5a61e35acc855866ee2ea1e2b779e45ed3dd1107281a38f4a69fed67844ad05250b4f4fc6e53571" + }, + { /* i=7418 cDividendBits=22 cDivisorBits=5 */ + "412b", + "0f", + "0458", + "03" + }, + { /* i=7419 cDividendBits=2266 cDivisorBits=1201 */ + "017c63cb6a1d935d78adf04fdcb63af1dad115b3c767ad90ac7dbb0514342215c075ec9823456ba336fb65f8fff9fa1340b01a180ba717e40eb0d4890cca9fd86e15aa28a2825f5e1b4446194cc81d8122c5ce936e2f4a31e5f36daf41673b1d3c7d18da1e0e8ad7bd4f3127f299c4aa1388ef65130e4978af31ee532926f40cf5805d532f9dde824ad18291461a20155774206a13b2e37f444aa02e04905181e14d4e59228449ace439f2b4f5293556b4c928e9f84321935da3834735a5bd02c77c8a524669c44310be37ad6cc2936e1a78eb645abe0cfa29579998907b98326d2e31d0acdaae1fde9a9935cd5d6eb8c446994a808cc6f4ef784a6caa6c1703de3178bf1a4e53797aedd986eed4c9aeb5b266e810d7a5d5b6f10126", + "0156e070b4f4a094ce9be9a6af276013fccd6ada749101d9a80fdd6bcda942e549f814a2ff86f5f2ce339587cd64950901ba194f18db72bfb9cd25914c4798865f7d8ff656d4b1e6bc1c355a4ab35e5fc9c8ad2acceae1f498fc5c6206b8777c4ebacca91d2f4e00ba6c5a0f2a1e0c76203802f92764919e5c5414c16e28dd97a9e5d3a59d14560c6579f40a78ef723f5641ab89fcd427", + "011c02185c2af8a3b2dd5564b447efe4b0d810de84d71a1469f244064e14a41b9b58c6acc6557e990b2e10c6046ed956fa81b11906a08f87f3e5138c8113176cc133ca66374e7a9732f91dea56afaa6293e28d548e8db442e554792545ec070a01dcd56a8ac4b60082981a98ae7ea28dd06aaf8ac064d232f30fa35daffc111a03691c37949e", + "76fb4426dc28defddc5046cd5e80d097a751edc9f4b4605f7d23188d1db83c9bd2db22b41ee8244b081d6ada5bff836ad20b7f1ee5433ee1c7c88a904661446f05c9b2b8e4a98fa8e34f3102af57f885075b80f864d7ec9dda22760cce31c3af86d10d587fc876b2a6204e96b4e79bc7390265f4e6031e8d32e5dd7f2a45dd41ad036c4def20361dc7b6c65947ee8a8c2cab89de8514" + }, + { /* i=7420 cDividendBits=683 cDivisorBits=352 */ + "02168e5e0f8b9292ccfbd3df1fa48177088850035534a6fec775cdcbe4a41b5727b1e32101c486db15258ffa51e73e6db6f918b6e3e0e97b8d5c54113e5e118a969dad912b65365f603b98a84d554ca49dcc68744454", + "2a6a95ec6051f4ac47a8d6ffedf5ba18f3ea6c82a7386d3c83c017a880abc8aafee7d99a5c80af415c3e7e9a", + "0c9a43ba79a6ae46be78a402858d644f613586543ec8f4724e79024b50e274db6eb49d6a920d86d5db6f", + "11488ff72f495a49b6b53227c471a676dd4549d6d9b29f9064c52662eca6e67c57ebb0bce21cfe7600eba18e" + }, + { /* i=7421 cDividendBits=3642 cDivisorBits=2120 */ + "02f212081b3fae89caf3eede8c4a84bf13b62afd93a51c49eca6d1c7b1ca6ce666d2c3e89165d49ebf35f51e74534d25edd2a86fea3b332b760260347b09b3be89ea094c552ace469a82915bb7e6e87f1b4edbb67bf944676706836247164b174e3cff3b8869bfe736b50a1e4f61404223a28a2e27143ae6c6eb6865e6aa3c61c791e39df177daf4e7a35ed0a8cd3a8df20426153809c37bc71e88466574bc14bdefab4e6d32ea44aa97598ee63fd6cb9008b056a5466eca8b5f7d56eb2e973fb872f36413c59147330b160ca29a1a045ab4669270a741bb41873a501592a3309b30cb842be1c22f7e281dc95da64b1935a55269e30599809e039a25b998ba5a6f2ce25f16aba29425188f693bfb7fadfce63b97c9bff550200e1c91eb24e7ac35e016d49eeac746e67a97c7b3af48a708769ef63f151e753cabc5c3df6e2d1080b290d87167dfff2ae6c4118d39b2f071dbfa3a99f84759a0666260842dbc96c776557e564ba85460046b810eb8eaad6970542c7fa0b1f1365b98d7dd9a7d54e03fb65c81af3d746d489c0676a2493924fa7261f672c4c8c9caf5dd458b534ba420f751e9746ed4fcba3fdfb1cb9011b035ce93bb88bd8aea69dd87f76a407331413de946f31ff2", + "4c36d2e736a7ab0d4c1d2de676654b354fa27b4c153057c477565b8ccbfe61d95763d18e8082be154ce5e044498e89ffba49d66426438261c708cf170ed5cedb9cee3547f4c59f63672a182c879f74b6db1a9e829d4aed8bef5fc0d5b49402ea8c0ff0088b3237eb5bf8155c665d7a99a9b923b7caed2400cff1db86510f05481915c450e77efa3b7006f6d10dd10c53f69e11a3c648ce3ada5ca64d9dfb8ba785b922f5e49ae9be98c99446fb78fd400338b950616f29f55989da3e41cef1c884fe9838678cc3563d23e5bcda256d03e147ce77af35edab7b0836ce2e04e98d7a5d9be0c70f682017f6d2c0083c2e795341e18117f3449ddd1a389cbaf7920527f27ff2ab1041d763", + "09e4e3b3cd1691fe7c64bca2329bc631db4eeabb1dc61b1c26d9a1859f99008f30a8a9f305db780b4d54b37ed4f14202f11ac1a64276c868ac37fda48703b004fe5cf58bbe21b38f59fce3058a89cfb87aaf2bb770bae57dce686899d120ee59b626ad61c9dc1d3f3264601723d60579451441e69829f9d5ae4fa221bfea044b8ab39951cffc66b0aa365fe4d38e538e52357ee0c181409727370f6a8c3dfe2f3b0030b5605c075dd018846b45c04926d7bd1435830136ed5d6ccab07d618b", + "3e11133eb09227884255dadc2904e241c2f0a84635a87a263151ff6974ab3dc8a168a20c4e1b8b070f8514e9447fee16c925317f2c5a682544ae989d9d6f0e6a0b153e3f94912ee259e79fe24fae5c8e1c2ee582497b6e08f72d3ebeef8fe44d7bbf372e86b3d724837bae8ec82208d68fec3ba9c45d6545dd8fdc0099c409f8c723585ae0cf96e97b5291c69081e1666e52f2650e21808587327f76d395992502de0231dd312ca996607ce44bda7ec8a627489a7d1a43d382d4ec6594fae8df2a50ea27dc8da91f5246991c19bcb69193ba83ba49ac3c759b3ac1df5fe525085f01d3f8c85ff56a61c9763852f52fde236c5ce88e33ddaf6aa43d753bfc089d867158bd86453faa31" + }, + { /* i=7422 cDividendBits=2686 cDivisorBits=1659 */ + "121cc7028e6e0ab7574c727a259cb82e9fa8a5bf656c50f2d8ec0eca8ec1ed47870cb1f4bea2f72bf572791ecf3a5ae822018cf15cb144faef85f5b9b91adadc20087f810baff08f4451de24c2f7067c3bd2387ca334d016d4eb9afea162bcc56e9c8e324f00b240db9cdbfdad0ff452e4c9f8832a108b891107e3c1e67d7d4f87a5f966acb34e86a3326d5c7d392633947280c3f009f66a32b6e1f718a03cf542daf775bb1b76f5885dde7eb56db2fac1993cb7759ea2ed17267e275363506c6ca35f733f6f366e1067d713be7d703cd2cd5dc5fff78970a823eeb8f70bda0ef70880e70a797cdb6e420579322a3adb69b274863a6e47a5bc3c2b4c6a902611d955869184d88ce4023226b943f61d7b0e56f4e4b42d23ee27468e4545d188df01f410d49110729ab1dfe69683909e7ea02a96b0a9300a85b4eabda025bb3f64112fa31d1e2e7bbc5cabf239b6582cdf", + "05bc7ea66d21b1b60784a14166f27f8a1efe3de9170b0349baf72b41d8eaf45850eadb5c8e42c26d57f6bc7d5457dfbb9b130b1ca22a8961d54bd40ad29fa24fed29a21607e48f9a5046a481a249f6d96ef52b04a46016a2fcac840ed9855a12f8412156417c6b46985b3c4e99b42daed2ce0fc228a0052efbcd420a4ae31a841bb3fa8b120ba2ea28e61b0855361159dfdfdafe26461592891986f9d9f36504770f0e5cc4eac445906c88e4bd88472ba1c51ed5690f7b4b54545061a0ca3eb20705eefa25ee4882f0fb8d1c34573df1", + "03285227deaef2a9d7f7f1dbfd4e4a762e77cca2dc3c590341ace93eb81ca2abb93e0612cd49e02db88f3bb23a6f983a9932b6d5858c37d8bde40f6aeb2ce293f2f965a4592607a43c513db89285867d40384669b14905c4bd1a8e46d91f82cf400308232f3cc29b2f629f1e8dbd6c8ddcca8488f1d49fb9b9df4d6ded60266bd6", + "3adc6fead26bec70e57aee11a176b442278a3acbc24250555107a54b7bb496839a16aadf45deae45b29cbd353247e31d963ffe7107bddaa00875099ed2af60341ca2e2842eebd474f2e125458f812b0c3f1ee9ee23171f7b4a1130f19396e6ecd07c62cb8e383211cbcc9605a6b0be9b068e2110eaf0d61495861fbb80248ea88a2d8c0e2b3855a08ad3f79407e7115981436fe72d625494ce00e3636a72c46b2d6013009835613dfed6ccddd6c15f69c68e4def3c1df2cbc0549ba501cc605649619cd058ba8b15f7c17aecc0aa69" + }, + { /* i=7423 cDividendBits=1999 cDivisorBits=256 */ + "4fa9d253825cf41a33d9222555689f3852b35c1cf09546c0802394bf83a84739bf1649205cfc865e7a940b11c3b8e0c288fcb2908044db2202c7759237783a84af932a16d0fff26ffab97a39fe36f6a2894e6c9e43abf28d9c359e9aa2a947961abe70b6063c2937f453c8067d8a52acda59315108b29235fb31a885466bfa32b27220077c6d09238efd3137b4dd06ca6483c489d0699567b7f839eab0045cefb1a5b1355422b86aa71ada089f6e0b033f0fde977291affbf0c577645b4b646355edaebab8b773d88f083b5bac8293ce1a8c102010ca0050855a9c98f9c4d2765ccf09414698b43e962e377debaf6aabad31262a40cb579bd65f", + "1c80cae0c4795a0603cf35a0a0a2503dfe407a6ca8afc70dafe492172d1362e7", + "02cb7eb65cb7dc7bbf66ef3330f91eddd081742ef8baa2c06edaf66d8a9facce841a4d97a57abd3b25afc1b943b4dd4b415dd072bb787c0278d3902be289806cc8cc016c47bff37471402c3019da131ced503c45fe694d42dbec23f6c85c58d9a1e05fb9f4045b22786847a6c2ab60639a18303b6e7bc61000def2fd8d03e3b9f181f9d5a0f23007f1aa961c388e1b37fa64ed9112441370505bd215650f439782cc572efbc92916fffd4792221f93ae55cad22792b445fd03d510f4939dcc718ca8fff0ed34497df40140a7622646e902af7e08dcaff51cda232e", + "1b58c010ccf25e64723d8bcddbcf92f4ada5f5c1c214aa9fbfc6c4111ae47bdd" + }, + { /* i=7424 cDividendBits=3862 cDivisorBits=1227 */ + "201ca968173e36b0735373277a24a74a3e699e1ce155d0d35af20fee427f6253fe08b7ed7cfa1fada95a007329781c1538822259d420db56c266d50941df8ab858c4120f1f4576a4b77521cb9d1766228430cd60e45883af33b79480bfee2cb3fd6d2837ed73d461d466d284aae96d37e1aca7cc88ed18e863d8dc9e0bf48c297260e541ff0c457319c268b0f5ff0b6630972ab4e4156dd104252097868f845d50c6bc02e7a3ce1f62fd27984ea40be314ff5e1c388361a32da3c0bc1f2560ebf3ca966ef6341cb243496c1b026212963355074ff0ff8f891865cccf01126be13ce38e1ca35a891bb51cb27c2171db6088d23cae3e8ae4c5de74e92be4f21ab4319e6fc3437b65d7cad9a68b770d10d1af10143011f1ef905d5566c87c816764914b1e145da3bcc162e2d921c65693af4033802b02dd4073e405cef3ccddd4d1db82740ca1e01bdc5d71363893f4aa9c914c8d791d46ed7fe431b031cbb0ca56b07b282ce2317493ff0f3a6afb75e4a49d8ff0695331b17448a20e71dcfd673495ba98897dc70177695ab2a28dacb4d7055898fbfa862b2b1335e7f2d51e16b100a3ab71be3f6bf57be2c6c45451caedafa64fa455e88cafa797a3e93d03045a14c405f20f7277877e0c5b7d88d613ddc504a3ef1cdf0f038ac723075b4168b02aa962", + "02cc71f91f8e91bc4a52f3b8174afc0d28eac4f49a18a0b3dc1c6352459dcd79ef2e2c61de09f4d107b4da89705e2d92a652b0dc6f1c206a682b0b8463e1df9a5780888b8a63b9e229817288367deb32c7af873174c9aa6497c1094bc8d739dfc3fafb7e50ecae74c58c032a3759594a75033aa54fa09e0a612b095fe5730ce59fe1fc291cc62b37d58ed6370ed7d192e92df3c1900670c7133d", + "0b7967900bbdaded4e7853b7903e02a5dffe99a914d89cb573cbfe2a5d53104f2221e87a7419bfc9a7fee852feabfe4059475cf68d18856b227f1ffd2530fef54d6df4f31d4844822211ac13d42b7f125cf68881856a0ba3ade10f5b89d8bc171110d59b85c44913178b51ffe585cfb092e18e909a459f856b7e3f53c2a1fe5fd50198867b2ae16b31d0aba6bb182a333215ab0264ce367b107273d0a1d9a0df0fc5b0daccd4bec4d36499ce68e5f0bae08b68334326c9453a3a3f391634485d5826c3c63956d8e746de1f3b91de8e33a64d83ce217983986bc4d79be8a6f9a3ceddb184853a1b3a060409234a18ec6147d88b775eeef5ae166fa8164f95f4da3c0e5f34859a9ec55e77f6796ff5bbc510a2a8645c63ffeb429396df4ff985af9edf597ae7f9f55e4a9895c1125f55945693d95946ce0108fef333613b202a30e98207937c508642b637", + "0163f0a500353af75fa8fc04c7f6f7585f2520a91812cc2abfc555caf570218f9ee1a488ce6609b4121277e0e97348ea14276624ab7a5d4c3823043c0ce1d324f263f3110ed37fe765b115c588523a99e899d0ba25eac1acca34bd243ca41a451facfe6fd6cf28e3d434a70adc9d49bd9222b8436d76e5dfd74fc2b58c043dc9ceceac6f60b0493ea5edbbf6a93a7db13b392920e56409fe2947" + }, + { /* i=7425 cDividendBits=1382 cDivisorBits=27 */ + "39387f91b9b7529d67c4842eb68f8c610c3c1f9d99f6fcb8b4e588645e87129fc26e2a02178899c300964546715e7a3a92696f1f535e9c1bb2db4dc43fa609eaeb77da0551bdea05558b2778100a0cd983dbfc9ae83ef9f87d3fda24fbec3bd936b5ae9be0520e93dd8904b1f68638ef5246e57cd52cb1c9368c184b8fde298f336fcb70c39bbb7afc8625fb6f6d2006d0d8097674430a78a500f696665e72ca1d22c39986cda4af91f065f8d9", + "0758e7c9", + "07c9ba9c73e24dacbffc8c0f1ee7531d9b4501d464e29d020e89c6e5d127e25f123bec79d3769f69ce902d7ada63f15f3952eb7a61a424443c067a1dd1465f0fa4ffd20f82f873333e12ea4d969ce62151093831270cd1f079857fe680c002a7c51220e343766ef188c7c15e73f1e5f0bc8775008802cc51ca6487095dbd08e75187070651c15c91ecd2a3895359e2841073f2eaa6c7f0a09dfa0cca03461c96e9bcead7303cc0f3b644", + "04348175" + }, + { /* i=7426 cDividendBits=3287 cDivisorBits=239 */ + "066472ea63952c8d95449e42a7d4be02877b1a5e0890b22f783f2253296ec78b0b769ac2d8c9b88dd3aab6ec6208fa32478c88cf7c0df4e347437daaf0cbfc4d3c1698a6691b6d08694515d109c982e54c3b60d6ee977ae49394fcea8bda4f61f72c321444249c5747f64404bf4197207e0e6350da53066c937ef5f0a364f48d7e9c3c121d43186d60a5d1e6f0b0a7dbc5844633c5280f8e023c3d3403eb476da47f2f48dda6c4e4d8ef82f84f789b890a5ac877f99ac5275798e12fc096553f4d6ea23e52eec4e9c3efb890ad2db17fc4ec5fa61910e70969ab61b1d0075618b6d73e002ad9bf423fb8f7ca7c1ca83b34aaeb38b8da90130cc1dd03e1a431cb6eadb24e134eee37e0e9d0352e3e4eba42d0b23ae67df7cdddcc6064a854562aaa393825a7631de3364b6fd914af9acf48d8adb75b67deb4fc7b546eae4a10d8f5d26cb9ce94ae63265be20d9a7265832c8855d87f83847b31d5396fb7ddbac64f911afed134030578f8760ced151f9d49fdbc2bdf6a84d4d36f7a1059fb153e95743cf073d2e8849e1608f03ddb1158b94546e805df640e6f07c3", + "012df8919ad89d0170cfc0379c0ef6b99791bfbc1fef896fc823d0c18062", + "056b52623e989fb59cc314b96edb3c0cd93a9cd9c3044e5253f3dde0894a4a37e971774dc0ef04f3499ecf84469f92b25ff3cd815749d448295d6f5256786d9c54cd85561dcc78d197b63e91ea0c44b98e5a790d8a4162367f848ee5d4d98e087e1f04f6e6118a1a12e7045a6549e67c69f6faa96a01e743d0bf54c787571688dc81f213a0dc375377faf55a6b13a7b4e74df4e74f344d7bb8a588a99d048bb953c6aad953ebb09894448a382c6e0de9e7fd2e995fba3e49534badffdbeed0106a5edee479740b084bcc8321b2ba0cea6694527dfe4f553e3b65aa6fb38d744063e9a1a0a3955063e5d4337be9bf14ba84e5d7ae43102370c2f1c3745d54a63bc6f3ee4ef8fc7ec98400c2327669ae9e703781f4fecb0cf3b657c35af10c3925b93deca058b61d0355b1861a04687db99b1ca6b34f69bdeadd218a9616312535dd624302f6641ea481aeabe470c68c0841a76ced4a3e4efd80d7c06ec10b41dc43cf23b7e2e654b53800bcf06707d5858c551fd5c82c29f3646751582cc6", + "107faeb826a34d45aafeba4935814ea40f89397f9a20c7003e3304e3f7" + }, + { /* i=7427 cDividendBits=3476 cDivisorBits=2329 */ + "0b3857c50977978cfc674b02d33b99c1b6d5f6b1dd6c95ee03f2c5b77d5ad78b14116c4d5dc22aeac06ec6570ad799a52748ed582a7bdd1c94e88014e1814a67792f6017a6bb358792076e42bd3c1f9723ff8f9011565fa6913c49c5784049994b19bcc0e53121a3203457bf7734d99dc483b5649d51fa2217d1f36312e32435ed7fe33f8bb23e6d119ed69f167effcb1d2828ab7803c4059188e24894d3010892a955828d953cee2f722c079119b707d45a2df053f4295e6a035fd2fe6a3e4b77cc7172a6f58bd839b8c1087e36a61fefccc23a4e04bb0a60c0ea80bfe00c7912146e944d75b00f9a5fea52c3f5ad2f78055aab63a9d1922b0dd9f18531ed6747c5410da527eb680c7a723318af81f088bfa5211fee751cef8970b0bcd3e981b887bcf07b9ca1034fc9242414025d57bc26c2828744e69ef31513077a30dc8bfab71a3f7b190a743e1bdee3976fea86ea73f9c0d0c3f35ab778519fab7e7bbfb06624f7f2b2f50d6d0e4342280e7e4542e87fabed816a7dc4a4fd277afc1788d450cb98e3c3103a05c156bcd7a4ca496a3811e38778098af1ebeb38c5bf1167ab85a7b8ae01267d552e4a939ea2fa1b808fe6", + "012f40fec3810c743fb8fe575aa6da2ee911d6e97c05206bc7224e5bbe045a55dd1d5d54129351f777413a599f81c3a75b4f94d911b716bc87f47a7854e2f318dd3919d6ce8ef5b591f5aef16deae94de833e7a777d1998c4a35f6b98fc4b6c45374a9f927c09176fa1a171228d79013576bace3601d284db1551c99f0768042e99364aa7b609f18348942269550102d80ae373779fb1e343ed0abf27f0689ddb61b2af403ca4a91c93694b5e59f1cf26d59ec74ca5bfd4331f6021a0d9d5d5c1fd634f196674af85775c7fab50f6a1ee53693f267e1eab6bacbed5f2e9669083880dea5e077a5f8b7abf6b4ebd5a4ccb29b36e4d1a67f10d061632bc1cd4d12efef3bb724255a81227ce329bece42b62b9d79e01998044d3b63680b9635ebc8ba38a475", + "0978c42448adcb3d868640c3c49c95414caf6af8a9fb0a1e40177832f14210fe7dfc694558bcd4c59b05435188fa851be2f63e9daf505ace5b4f4906d55abd263be9e00b4228a9f8ef06edd7a8e2e7413babed6ffcc6c5e6ecfdc7da64a2b6d99c3589821f612e49bb2a605de2d7043b6a2de7c7bd435d907ca5d013350c606d87392a4a7535068a33fc1f101aa0781f", + "c0b4f7459f2204371f39b791ed8526a5b8a8b2ba7327a3c2e1aba8fe399be35a184ffa18c9d875578ce83c3ffe6c354c3b708246f78cf92352598c2ef23a31e4b89bee3f3a57f6dc084a4f7ba25ffe3d9b3026b956ed8556b857b4cf21ba045771a24b6bed03aba341680f8cfa7f4d16b9255f1a2a47de32ebb345ff8df5def5f1458a02186bbdac007af194660a53f56abfa929e0f750601a508e690623e706b72f8fa6bbc48d00cf61f2f276af57d5d55138c9df7cf279a7f04800cae4d17a924a48764f53273f71c434bfedf269cfb4497a3be488531e43fc1154c89b5119b49e52a0a189958800adb745f0095fdb1f3a0d32a96787125ac86213efda4934f137d0723fbb791f85e9133996affa7c6afa0e2025930541cdc224aa9267f6566dcdbb" + }, + { /* i=7428 cDividendBits=707 cDivisorBits=428 */ + "066292964859cba2c94265d99afeae6d90e6465b2d0fb0c70147d02673674f0d75d86fa8749a6761d608fec22fa5af67564006cb8c7d9a0708b69ff4db64d9dc4b28b03a740f774acf84472a8a72980055c13096f80b2ca292", + "05fb3594f0beb21e1e7e38483db459066dbb66178052f96b550b2c9b0f796cc2547bb3f2de20673595dc55ec2115a44a9e9ae81ce67c", + "011147f733ee4a925976edb9e5951635694b331bba4da42e39212dc2b9fce949ac27fa2b", + "012d5f4c92e0c3bef0c5d9f1e0a06f2ac42c3ef51d2c67d0835953e87a737fe348873222e35e29efac21b4af18eb10234fa86858d3be" + }, + { /* i=7429 cDividendBits=3716 cDivisorBits=2499 */ + "02a2b563df75428394832c960aaa10ba3c33edb2974cf5cbc4356d03d4f7426bd9a42df5b371c18684207bf5a34a84af96860d354bf563c39f3d24fbddf7eb296b6e86f2075b14cbb31c7b9026a6f44265c682c4cd609e77e4a96df56aff4611aac06776bbe62db6cfbfc63ec3338ac3a0301a9dc89f2899da83a3adf9207618b584b4d9734a6580161bf41a9672e6dc9a259d5eae4e9a54b36a24ca827215b4d74b76ffe0e490e1ad677e2eeda4335127660f9695b9e4c1ddfd59cee69de9a30b48ac218207a1771ed79fd68925f140d4e064a1dd922a3a313cff585639d67e3f1bd455d8511113c8bd390d5727846a59e1e49c5db13eddd23364a101fb82567b2d7bfc6cb0201abe81a12d8a4fb25081b47341536de7188cfb43b36f21b7d771b513048fa9ddb69c37646a932ed5928886841cec327c78ab6f8504f697d38d36d87a4d4ae2f16d7e3bc3a4b103f3984e787366a4ffe77f58600cfbb0ee7a10dd40190ac112612fa45c520495cb4d4c65a58fd5a59194705af57e37a7a74124d3f6ffee0e478d8e086377b6d5d3f2e9aefcfbde68413bd1c976766f7193e2e13e77601da2f370b732f71a1e676edce45137f0c40dadb92e61d4b3663cfb9799d2b30604119d969d180d9b1d457e3e3350", + "031913c3c9d3dd887e040de6c5b01df6a535906d44c4c5a1062b5b207142e2c1e84fa7f978caccfef530d5d35ff637a19fe19dc6f408b24b4e9a87acf63046e5aa861e23e18c4e7947a829862dbbac7465344e35e44aea5d69c872ce3cf0395a68684c13bad053285282f20bf93df0144a59c88ac43a3b30e5d71e546872593fd876d913bffdb82f64ca2209b1e414aadaf683150f92e07bb5a53a1b14799647be1fe467545d91c7ea9b03b15855b6ef47e6f63cdaa7d88e5988d723d9a65f64d4b90ec682eb3f04c40f96ffceb4d7dab633300594bc453954bc7529fd486f1eb3c224a2c99580f8028c25d0cce95d4056f4621b56a0591dffb90ce98f36d14c6a1a410876e3c8a49275a456cb364225a98e5d4e47592394101f19890b7695d9852e92f3912aa63642c296d7e9e1ef66d78f6df52a761dcceb", + "d9ca98c881075c2087ebbbddf819483547db4e8f83a116c617ea0e8cfc52f54ec99e8864a225620039c469fc13312582726022287290bf33a9145b4e0c6a1d220e53976f435c35a1a2bdb4d0d7bc8768ef882c8df4ee72675b30285ad7493fe6bd90b2a9ba8ed36436dabde7b23f36c0d8b58080df4e1c802fbc866625c02ee622975085d74f924005001bc905cd6c28483788bf45753a76", + "01ee2642ab6441667790bd3c012c4c8f1fd21c11563d127689c835e512c3326e197de45f28c377970537af42c58995af6c5edc308c8b663188bfdd37029a5c074a551cfb184de725f0af7868ae2a3e6c1243ab13d293f68ea8dc341f88347e6416a470efd05b3058c359fe714436914536bb029031a8b7002d2647098a79223e04eeefd7ac6b30aad377318e09414bd8fdecbdd8b3e6328522b7a1ad004ba1e7d5d54b5ee7a43f70dcfba6da84f8cf8674031ecd590d8fba02c44999301263389988eb27ef553473d76e7ea472e79e030b2b1fd904a18c1244d1329ee2827e519b5e6f3ffb2913782e51e9c9099865784d882f1d05c02d3026d5e45d0c604a4e2ba1f74d340c7a508ae2d54ec8ba42e66e2d55fb8d2ea339417e1127d5f02ff54510503fa65c23d75d36f4aa7f60d8cab8758cbdc14dad80fe" + }, + { /* i=7430 cDividendBits=147 cDivisorBits=80 */ + "05334e27e1a124906b5c805019707f0e921ac3", + "50d2b4ef8a28b5754afe", + "1078caf689aba9097d", + "221a16f132c928fb8ebd" + }, + { /* i=7431 cDividendBits=1231 cDivisorBits=450 */ + "36c1ce37321a6c3d0c0183220eeeb743c6306ff51f2ec731fa9a0ec2cba48ba0f48f6726ba9e0442e16bc01ec1d6ad427c7fb7e730ad5972c948c87a901441a635260e406ce19aae24fd90199efa1ddcf89593f194726d0e6d01ff91f2c05f0b726fca0a61bd82728f197993a3f652c40c2de1d9deecdbbd01b6b045e0142cddebde8217ab9e11e8ecf0c00f6ac3b30759bd1392e28225a16428", + "038289993d289d8465ebd43fcd03a7f2cee87fa77e33005a3f5f62e83e9d17c2323f0e19e78949f239d05a6b5fb4abb041337b773f08b771b6", + "0f99c6dd8b90e8a26225c4795e40f9255ccc8a82d4191316f756089eb2919da3818eac3b629fc5a73bd711994ada8e8ed0bf66a7633ddb84a8d9ae7d59b92ad341797d5661a7b65799fc08c9af1fec3884e980c58c3f9e988efb534697400c22d1d9", + "59fe75f426a5abe9fa7c2f2ea9e14d96ec329db20afa0e257532853ecbb40a1e5973d1bdb7e2cbde29c7cd750943cc145d15cec45c206ae2" + }, + { /* i=7432 cDividendBits=234 cDivisorBits=9 */ + "02e8e4c7866a7ee2f1a78f25b0047e6f2e1634f61a6030de4516cb170b0e", + "c3", + "03d1e96476b331bcf8fb7b993098ef80e48b6e39e63ca3edf98d836674", + "b2" + }, + { /* i=7433 cDividendBits=79 cDivisorBits=47 */ + "76f38632a6904bc805c3", + "37b198842964", + "0222c47bd1", + "34d44f6f2f1f" + }, + { /* i=7434 cDividendBits=980 cDivisorBits=370 */ + "03a209ec3728d709cde58a0fa807076edcf734aace37878b782c0e55f63b6428ea8ad602b3ec3569e262c03e7ac78a223a709ab12bc719f01c5089aa01b35cc953c72fe82916b7f2bcad5a7247fa7c215eb8b167a70e4e547691eeee69b08bb068db1a8b39d89c491ae2a30c4cae4c665046f883ae678cff4f36e3", + "01aa75adcda3048adccb84579f78ebd4c9a947b185e63d7aae88beb560a3c41bf6e6efe896bb1cbf43c2d9c7c034e3", + "022e4b49c6f8ef1a6df100cedb0f0cfd05aaacf756539de40ac9de70d2177251da8dfa60b6e0b8efbacea64466cc03a2d1bd164de3a28e3d91ec10ee454b1531f1252cd5884ee1b750e9318fed", + "0175d2321b3f88dca98fa237d17507b7669ed397de71249fb3eb900a3a8b5f6799543723ce0cb79e3c657dfa6073bc" + }, + { /* i=7435 cDividendBits=3680 cDivisorBits=1990 */ + "1cd65368e6885f41ac37d569383e52216a58e5a63644273de97839bdb132eef37604478a1607ead5f4c76a5e159ebec63df34c1739cdf5823e5ceadf606799e4f08d6134720f9e888abad879b3afd14f724081f297f5d4599b87eabf2045a2ff1fbf1172a453971711ba2e739cee758c83520be91fc7a39ec8fb34827d8f00147cb105ca74855d502459017d79881d3ffb0f0e66da6ac86f492ad7bf93486f81c573ea484bc403e4c5f19ec3964d824568067fae5f56d4bf64753cc7e62228af2ca19386464fbe098b80abfd30a433eadf59a66dc59c43cf9fabc6142c70b77b6724d70a304b04b41c5a1ce2efb21c4ef6cbbfa64116d9df06cd8dc4b2aeea502ac0b07d1fb30a9a500f20d448339e7e2bee3703176728be93fb11e7e0ad09a1d2d2e624281c44e01eb15329e5cb200c23f59593bcd87cdb5f261f530d26df07e1a894f84ddab37c8613a6a6417719bc9635faa4f30046b77e431b01559889d24ed33d342e7ead89d0cfa90cff8a18fd906b3cc0f2ec3901b41dc6e1fd2e91e26600bb49c1a00810feef6616003be050b6b661cbf7a4d06d0f5f714bf82489ed9f4ed49977d6d11ec0e78aa6021e007344a4fa669661167698dc4b792652bd327bfb3e3cb7157ea711687c6f", + "032247774664d21bba3c98035c9b2de51176ea3554cd02cd026d34c95bb609692f78be1ed5cf0f22637545fbc3d6673dbc7db50934920bc9c848d3444fc212a33f85dc6354a37fa23dc0a63b33d0c2014530537946fd5ea06b27d7d9e216a3ce15fe77dee935eca99a20cdc3aaba16f8c26b157e8e387d9c633db8c741357519eaa64970aac6e7a207006791cc8e46f9e562b89af887798c0e361dc9eb6b0bf44cba92c3b444316ba5c801dc555587e557843c489c8cf5f8d651f9a975b0a391079616f84c97e8fc4774523ca8ff5b49dd023690ff0f63b776b4bb77e9044bf6bcd6e9f04d8eed1371b4dea2f62226d198c22fcde55e26e52c", + "0933a2176f107b34bc766d4a3b93dca6f214bbe9c4ad5284ca0146ba345e5af473c74c5aa331af07fb026113ef5bc5ed36b6e2259d5ce375742ee2b071f8621c0aa78dd8cc76ad9bc0e1f6b8d8a0922ef801eff8dbacf7990f180d00328227705c3cfbc11a0172f016486173eec8e3b00e7ffaa22a811bceb78267c92b3a060683d1308a7c92f86f75e61b6113798503b1a77a1559de84678d9170ecc633bb8779cedbab27d761f5441efe75d77a9be5c18a71a4ba51b704116f1f8734e5e1f3f4145ddce7f8efcf7623008ff367e95a2a056030", + "01296402ea5d9f75e00d227440526f42ee6759daa74944c63037303dbbf33e488076cf42dd2f3bd38196a542a608256696077b4fc3b04468f221be31b922ee5c1b645c7e36f3cadaacdc500d324f22240a474fac2f4518a2b1f9043e7b57ef1f0fa88494ec83a34879a20bb932bbef6311e0523af53f95602c144fff89c5480b5632d226e39e94f6770aa2e913b4d490befb0502f4817ee10799a609abbb01eef42df9d334138f96cf48c9e10aeab2ce59673e3bdd3bc59b0ad2c673c2b40eb2cd1e526c4964b01085b9605455e64382d07d5590efc63577a2ee74da9f3bd423af6ab0fdc754f487a3035e6c52d2a90ff841060a832251042f" + }, + { /* i=7436 cDividendBits=441 cDivisorBits=236 */ + "0156b2433812a544de3ae15937ee9ebb538f19c1c5329c1b1681ad44096292ff1a3cb202898c5a23a85ef777658f5b30439c3a24112a27ef", + "0bd1a61771777e0ed8c1593596e2ffb12df8b2020de9c5cfe567c8061db1", + "1cfeda737d57cc0a946eec29017b09a8f56c554e9d19d696ac51", + "0579ce97f78e30ac73dd8e082117b676be60010c3f88b8f226394f91d6ee" + }, + { /* i=7437 cDividendBits=2005 cDivisorBits=489 */ + "0c2313abe7d0c478564ca0b95458fba447f4e274fa0aebd5aeade12ce0d52d14b1bf2fb36226ca0f002a2a46396096d90dbd58daf9127e7ccf25bd6ea095593f11040b9cceb4fea3b20ede00a542700229ff67601bc1dd34103f8c624f052517e2bd39fe18e51b9d1708cd954fb3071b77b4bfb0e33915c6107cdf8cd18455c36a9fe6c9fb98a02d81598c99a79c7eb89e110e019902aaec6408b68b7a8718ec5833f778550709c32efc01916cb667e67dbfc8bd1d52c8c1ea4637d1c1861035b378e00beb55a1636077e29b8df8dbb3a034ce96c4d912ac4c580300bf3c422b674a28a288e24f47317a5f43018356d1dfe5c10f763b3ad8170868", + "01f40dc301cb0c7aa8b2c42854c4e339c228bf88e7caff815fa0fdf2f4e4c8f601756a2abdbc5cab50d64a8c645ef2a4c702329b86bc11c760bbc2e907ae", + "0636a6fed95bcefe7560e3f01c429c30abc5941acf05a5981d9199021835a6dd95fb47c6be13a68f59edbca45c10a038ac7f5fc638e9617acd1086f44295406e1af7d310a502e737948efb2c11387bc74c60deb8e2bb7ef4e6ee5419cf1ec65c08199d740ed8ed57dd3ba24ce16d7c50c2520806afbd8136625ca1ff190c90d140a25af5425da6ec874a761249692883092631ef52145aae9e3697eef08ae33f9a4d856c35e91c35f4a4bca9e8271946caef77a20668eb611e4d9d55bc80", + "7f1a3c7019adac060dce60f45cec600bbe01a48b6f8a6d869359b60ad0e4dec1857fce1c4cdcfc873f4efe6fb90aad0e7c1d7d2cc9e9efa5caff296968" + }, + { /* i=7438 cDividendBits=817 cDivisorBits=124 */ + "a1b452a3e768e92f0e998448b8cb5b917b94b9d42a4464cc8727f5c8f8218bfb8d3e70990360cfc4511aed42e3f666ac8fa5725ae83cee73042f1e153e4889fe3ae9a9b29d5593c5d51c6c3858d6d9867739f2988c67cfdd47c1f61ce605fd48dd98528309e1", + "0f3f3160027671684b91323ca530fdc1", + "0a9b13051ddb00f3511ec3d68b88edc16815f6660551155b28a231871a73b30e843fb9ec6842e81afbd8945e8ab334b439c5b235a628046b0844d0768e1fe920d0bb035cfc08b4a36692b370b70eeff32f8c5e34e95711", + "03d1761a7820c068599fe56d8b5c9910" + }, + { /* i=7439 cDividendBits=322 cDivisorBits=88 */ + "031c2969c0c1c0bda99a396aa2731a91423136c772e76ad46b8be2a8c71ad1d63343c5cbebeb95e390", + "322d49407df5c488bf448a", + "0fddfa2139cc9fe4fc622e112634c7814fad02b8391d0bd9a4740e871f2e", + "0f09ff8cb4cce77f24dcc4" + }, + { /* i=7440 cDividendBits=3051 cDivisorBits=1090 */ + "042878834795ee67713c2c9c54ed7c94d60b587430d3de989a2aef72fd4c8bf7b68790563fa1067b542d5a3e7e5037f905465a796679cbd86a8e799777de32d75d2616cfa0a88419c47f26918fc4061f66ddac9f1b37c5cb183c382b9f114ff8b9df895b53c5f17adff4a7206f6bcc9a9faa032e149d73c73be8e3596648054470bc2c45a60db2051c84c8c5b6bd960d2af2c195cecda9b35795e797a3303a0afa4502e39b6e5ba78e87787709260ee82f9a67030af0de02234334723244e4deb13c69d190b237ec32cbd22ccaed8b82fc6374d1e72234cde994b897f6e8b5d67e2c44e3e969dfba9084fc81a2d24014089ce660a9bef61ebdca40e44e21f9b2791ba0d8d0d8fb45dd997ac5169726616b8ecd3df5bd2c09e8aaca32c3bfd2c0acff2fe3a1bc6a021fa266ce0081287cb6d53736dbae99fc0c9f62db45ade4faa9cd15b0561404a06b45054f2e0ab6e052369faaf97f8e12d31c21d328fa771c62a140c05beab1e5c25f46a047edef73d957ca832a93e2acf554dae609b5", + "0333233e201196bd9393c53561b02e533068616f79fc36b409eb297cfd8c60cb2875b2634301421ddd3808003200e93be9fab95fae0611c18f76dd7f30b8a60d49b18f1e87ac7306bb412177e18b25e8a49d3a6325d7d6c73c48c491b88ce10cc3e66cb26ea78e91cb63e8347b5aafef0d0af1228ccf2ffdac7c5630a0bb5b08ab93ebf01459d425bc", + "014cac23f347c3a1120f7a159da2b5b882edd91fa94dafe9b9a726f22c4293364ef366070e364404622d7e30f1b03f0f54d4cd2ef4e9b4426015ab5d3a2b485a8d0cd39eee18ad8cef723c575375e97d21af3a0e09cd73ae600c3e5759cd40ea4128154c6ef136b2d785765045a2f9bc82b88762cf40abf9f6472e6bd9041916f057c35fd2decccb22b86c35139d127af2e5b87dffebbd8acdaef0965aec24f864b4830cf3fe9f33ade87d647264be3e5212055be42205927f324881da5adc4ece38d68176af70016b640d013160d522ad1d5cc39a0f78855d7152187e41c69787e297068af220477d1053dee76633870692c366ffe5", + "b6e13216ad920594e2f04589b381e0d9cf7efbf5acbc607b36044c75941562a2a81df720b9d3c11cb5f88d9565291a379eea26d4cf8a6e4d544fd179fdeea147286e96cac9f8bca6042d41bc5e93a56ff40b452962bafb24234c50799a9ac58b302caa44486eb0fa3bd2b6c66a6225332c792f2683377bec84da6c5febfc23dcd5ee9d28f1a20489" + }, + { /* i=7441 cDividendBits=1968 cDivisorBits=1118 */ + "9b4195dbcde243015cfba9314a22560004f7d09ec108ae2265fa1b81f1a6a78431294be4be20534816ca3d329077b08b58c94b8a805fbf1c1514ce3d357215ad15916bf1a76c2da222f87ad36ea3ee762c028903b4d2f146a802ae8889ce527b8cf94b2192834fe65d5e234f2025feb62d62f0f834f7aabada414c5554e3c6f37849edcaa4d4acc0af9c6d680dc24f98787810ddb80bb222a4cef393bee4291d06a81610dfea916fb62bca3ecb867257b26c2be0fec9423481a4ff3bf3e919565d4a0c3918f52da4a06fbcb412da1eeb2bdaf40e0132954eb379a08584d09e8deac3a644ce5c17dd8ee9f4b15f4b162a8fb087a49a7f", + "1bc04cecda26688695b6f3670882da5080ccf1e73deb9691db48adcf0a5deaaf18ca8158555e74b909396d998c01b6a84fe7ac4022bbfc96cd4d3d907caab3fdd2a4c4ce0a474f105b1123b52f44271486fafd84065b64b2f8d80da2cd5064a47faabc224052ff86c002ee0d196a7d66c5cd1d8ddb6335c0e519d91fe52dfc7dbc1abfb91b83d05201cf0abd", + "05983677e021708f1cfac8e04e763e548a1c252d85a04fe8b36f5a65c988dfa9798b3a645656e36173a41233730559407a8a3f0b05260b50a1dff153fa26f76aac8c926e07bacb9f6be2732dbba1b58653a84492356a3be2b240d69bdeb3c45b1c3b035233cd460d5acf2d", + "136cb21a8d062191f2afcea7140ba6d93618a7d4a41eebb8b81ffcd946c85b23951794ce7759e92845b57b3b87c52085c71ece52fe71b76c76a2fdc2f7aff8e74fbe5b84a42efdc2d14a023a050ea4cb51e0f12f23797050f73764311098102ba9cee32657e3e2be6f706c0aea8ace6dcf5629e9514204e830c069a1983d26648423a1d04bc332cc6d1ee446" + }, + { /* i=7442 cDividendBits=4051 cDivisorBits=2153 */ + "05a2c136ad5ad87d779655da8bd318355965737539e464fed46adf43e5ad84dfbc7e0c4526b2b433af8159b1251fa602c0cd42ae46c0ad7ba4b725aac8e39bedc3fdf14b47cd55debd36e02326be63fb6f9951d365c543639800b2a8e37e9a60d63d93dee533518cb3baa07224e3fc542a2aa3fa2ca60776f6ed794552de7067f74b6e6b05bc082b67142eab5ab1dd88578007ec866a696abb7c9743244fb301533e21881fa9be4f160022aa84f1bdec9677758153be2c1c8c5d34abd6c91d422da1e42b7145ef7c645eb8ff3a29ad85c9d0f25f83453212a3b86fee42ee5d2266ac12376cc198679ac539516aaf7f8aff574af8702dbecaea417fecaa8e119b8e91ca62681ab5620b7c81fe9cac376e6b3c98940284ed1a77abbb2a46b6320d48a8da8c24f0fd0e2374460dfb7e4517c41a00952bbe645fefecb014af51c3820400915cb9d4c8085628b092bdc5a81312f5df2ec85e49c46d2902e2a35902432f9d462c5d4660de114bb4bb885d4b8b935e476149df394adba1aaefb5f86ffbae9f86dfbdff1a8923d232897981dd1bc895031db32a5e9899777e3930b1c87e4fb2618fce7b6bce3676b8ae1ab5fe614515d1f534a7ea734fccbda2c3177448fd27a631fb276b3c9edebd9b7ec75199e23441b2e6023bbfa116e5d0a11c647b56b08b45a8a47e04f5bb7d8ea03c4c5596934117b48b02f4126957", + "012600eaebcd71cd7facc4ceb14fa4db2ebd9d20b175f3c474de4e9a51e6ac7863c7c95952fc48b8dbc8a32df1e3b8d2e175bd89d5583d434aa56507f3b67b8bb154ae2fd2c0005436327f30fe579c157e043495316ceb51b90197de3c74c334d3100795074d9875c15040da72ee73ab74a230e7f51e27052ac6f0a866cfc650ff0e9e4650bc93068f66196164242c55f1c1412098b7f641883a99c7fa133a4f3146d18d02f645319f255a8c037f4f14b7c8e01a753aab2b455aee8e8fa748ac9d5482b2447167eaf1798f3f761c37f4c656c48b2ba60bd504b2f51cbe5c490c84ab5ae2970360ddec80922b33e4f762cbb65922aeb8eff91454350f54cf52d337d7632a84166c7541e5b7ee2ae7", + "04e842cba138cbf8a8ec1780b43b9f585d1e4fae04c449cf6c59ce326e6e791e4390438394a6fd54fd6d131c50a20b2d8484388c711b4dbb989fa4e976b18f78ce67f3fc1c9e33af0c1d218916b9c9926f9bb930958a9495ffa7db54b63f347b9c7efcee7d0a857361f6c1f85bbb46698b7ef188cadc9721f6e27c6ea95f724888a364c700457b3dcb43bb7b0074321ac14e515fb34692778827355bbee66dc94f67d6b5a6adc7fcaf531a3b311325b9b46f7cf62fcf9989d2a9d0dea00dd6bce7f6be58d19f8dc40eec937fb159140dee5beaa1e2123d4a2535d1a841e75822183d9d5577a5f15a682fb98fae7f", + "0121c058b8a389cdc65b5e5f78784a148648b9bb919f6c8334009d0445c959d38dc1318a01561ce5d39b94072eec4464ead2ba44f5d01042348042eb0411f19a7b3bdd6604614126ba752f1ed15bed2d48a603880e73e93849c172097d809534f3a7fb438e854222cc00d78806419dec477c92fd3026550a5dacd1414b332b136b7127e0cf0c568480e30e4e7ea99b080c393f5f283a70788fb2f2666e376b8643205fdc3079e04c097c66229ab79d23f2a92c80ab28b13a6ff2e17c70f2f101b1d532ff9c59fde331460d300d22613fed5fd1aecf5d9d0c8531b01ceb657a660aa015344390f0e2f44c18e51b8a48eb1f4760d2627850d43e59a37dd0dc9ab8df691b742863b3242394edb91ebe" + }, + { /* i=7443 cDividendBits=3981 cDivisorBits=2424 */ + "1fc0fa13a458ffc5744d323f299cb11d39a62869ef8e3cb10d760c314f21c1c9bed94e9b8b68ae0ad6100b6f606645fdd5d0a2b1be6e7805035bd2fd7769af5e4d8fbb8e2aec9d4fdc3754c6f5c28c111fc0c39157de2f3663e9e135b5662c5996221560fadd3d01f1adecc4429ee407e7fcb51b82397add13e4d41d82e11c4373acf373b1577d4b42020d8498030105021a3acc5462dc212121e791c82e20f3b088562b5350facd4de5d59355c199e0f21b8ba43383ae82d67b2d475a12d379edf72b75d8240a88a02ec87b65ca28584ed111dd73f8f2e01d1a9581d8becf035dac2086f6b6c64004312a51783b3d6999f9782ecfcf08e8708e15da97a664ed7809326c650b6d06a8d1d3efbffb7b1b9f40471caeda3463a579ad32df72dca10d5c95eb4f610e2cec9272b783726be42e1ec06d290fdf43526c090dda0437f5d12f4d7da37cfa0c8947944a6b4ab399498dc69527e09cc25be39b1498fef5de21a3e04b2ab0f86e11a418e780415973c4c5d5ed93644b155a2b4ebfe94df75ff9559f1353519b16d4a47769941ab3b59a8664547ff8bd76d9a635343f2551b850b8f3d870c59420b0b99e1d108167e205598dd21a0e45e166a0086541a261521f72f6741274e5b03f2340a7bca3d5ba6c2e59eef44213fdd80786b57a8d6be8ec5627793ce7e9abd9d6b6d60d51d1541e21", + "d3692dd1de0054179bd3c0392d3050cad782e93ae75430ad1cbed801ad97ff0eacfdbadde0085130f05ddfdf65e6a91cfdd6915ce5332462f1edb7e3bf6ad1d8531ccf72db6f234411dd703b1e97f6cc37280d9bb727f19f38f58d25e4c48dc766815a1ccbc2a02c2e18c50fe8fbfe2ac100ff97a5613bb97d4a1394ef03c5ddac008300c3f06d90475a28b3574b6986bf3b44a3c5ddea99bbf1a7e675d24cf0afd9a1924c4a8b1d1b547cfae719906095b8cfab5da504ea3a95ebcf047926ebc78c963b70034555cf82cc0f479cd933539f891e3a3aae037c70a9b860fca84625ff0fc7fd9d6848b2d65cd14c1737d88bcfa60d615861ec3271f960b87d4ed2b27603d0af959f697d646e1480703b08035b308ac1ef3538777e96457d367aa8a06e66927b69f8d388c208370a843f", + "26737a55b6126dd19b80b8a720912563dba95abe7b49621db66746c069298e65e9277878403889c0eaa7c14a373e36a59cfbbeac564258269e74dbda185a30e22f968e977dc7fdd78f94afcf0d8f39c09b31989fcf8d0189b61a994c7a229ec522614c5606d3e4114b7492b296a651e389b533d70521f330bbdab3590499b095799322c7671989747234288b1ac03938bcef39eeb1124d06a420c49e1dcd901bfb814ab780ff61463dee8c0fab25a1f7b7ff6ab746fcc205df9bad0c3552e83718ab3b", + "2aadd869747ec30c8643f01a10cc04e90f8abe50c3a2628c57184bc817266d80b43e42e9b77094ac85a12901faadfc4e2a479abe829ec51df538a5f5ba7ac833264dcc35dcd3eef6b84c57c322a6ec399de270391daa67bad89cfcd3fbe061ff74144d3728d2ae492febb0ff1193e0db58711e9ae8fcb77a5d9e42f267494aa2ada39c12433f6b21ba2c007bdc0c642d9b8d165a0e37a8529b5f6b07725d17e45d22ab6eecf860ec963f1eab3900bb155ce47fe165cee89a13b3bc4f397dd2b63d892fe2e70dab3c3e102b452843ab6c011a9f95bb6684f7de442c649d922a65a03ebe9bd881a9418752ecd233bbc44cda06980eee02a38350345f68dd40436d957222d24e420a5cc53db0df3cafba8e9b327f3a53b05a391e8f101d48ba39a9f19b0e443e21a9132e662b2ca98e9c" + }, + { /* i=7444 cDividendBits=1707 cDivisorBits=1542 */ + "03c48364ff57ce228c307dd703590b6fd6ef7b3cc7dfbe938802ee31494bb8d9663bbb64666a670984efaec3bfcdee3db758abe88c22c63c82128b8b6b14321c438c44355bc73b59944e894c9dd92faf07a75766fcccd6d0bb58d566ca30a0b1362d901676a23e7546aa5405530f43ad0a44499fd8140de59ee451d9f834e45054195529dd276818755d19300bc76eb6030dde78f9a6e720a9aa16d2e85cbf1fe734907f130705a16ecd246c56d3d3b7aee360fc5414684bd0f166faefb0f02d7726381c81f86f24263e33e5db6c34adf42010784a1e", + "3c52adde9029763ffa301bd30f8088685bd5f13bc889a6add688ef040e170ce1d0941499d1c6b907a32916581aeccd1373f70b6fe82ee081ea0bf65584bbdb29aab9d3b49a58c87452c9182fff5c8ed40ea92f408683769b34c1b3836dd41b74050e9e302366eca67ec5fd17280b3ad3afbb27a737b0f2f493c868534c875264ea8aa94a5fafdef45e1953c7cdc2342cc5a67e81ce3e3de7a3cdd1c6006bac1682313043d7ba702cf2874f3d184d53d8bec6480b16bebf7b6001b80481db702e47", + "0ffd3946f049648f3f4e4d1968cdab1324e6de657f", + "3692c8cd9200966185f254ea63bf3c373bbad19543f3198a249c4cdfb6dd747bc8f4e38fa41cec44cbe9df37dd78111a2b50bf711306e3988f6b7daf7936de6f7211e85efcb6392c7e57665b7bb8c95d2a722feaf4b7641bdbb825b43b3376c39864b40936f357f08711fefdb79a3d740eecddeaa62608ef271fa374a7172d4970e4e40732c7a3854c8b0c8caace2cca9889cdbe4a8a6065f7e9826650b595fddb665ffa572f8bfd1aa3aea82c248dcf99b00780273b4e8a1b3936a04905fd51e5" + }, + { /* i=7445 cDividendBits=846 cDivisorBits=792 */ + "0812af00c4b6dbf6737eba12ddd29182f1caf08ab40ce3182832992020de2c2f461edc925b7bfb641e1ae32588fda0e6de214ead6b76cb996f79c9bb2b6fa920573e0ad909fba7a79edb3f4c1bf91f28d9d35052968dc8ca1f41d4b33cc1699f91b8c29ff4edb83d2e5d", + "43c3c2688230eeabb453a360a265e80adadd9fd1dec4a6661f7dda76abd91ae5a9cf3e880d0e45d90754ba99ca506708f6a6471409241b762e21063b473892884bac5c855786f85333dad9beea474feede4f27c8e8fe15056e321f33f21d1ee2e1c831", + "1e7f7949dabce6", + "300824141815b1e1e3aafb3afb74445968f7b4e5d389660a82d5e669f1a2612c269748d933df406abfe347a12b59408232a3cee2001f93ba51e6965c8cf78334d9930fb9c1021e038295d1c14751a8d81f1a90c0b937dbf3ecac72f9f1980c9fa55657" + }, + { /* i=7446 cDividendBits=851 cDivisorBits=318 */ + "013b0f037b10395ee833d7c3ec10a80ac44fdfd39d2a13899617cd2cb5e0c86d8061fc4a638c951341a97d8f139d5ec8ae06ad108a7b4d8757567a1b041962dbb24db19c68b706937a6b5d8617b285e6e172ff432d3338fc03e48531196d83bed9c3a06f514b6cf7911a7b", + "325ed045f61fb283cf0f1812ca212c1ba78761fc6cb7adf70b44333f54d45d86cb3eed3fb8c4f782", + "06413d490467ea8011f26d37735baa73b50ef941d0dec6f7f8341a3916ee51ed1f1db77778a645a2c44548e00b5651c8252706e8eddb27381daceef0d31434e8cc1bf3", + "2d3f44b23d1470ddd749a2c9ccc27bfcf76ec424308f6e7725e4b147109a377845d833c8c2e77415" + }, + { /* i=7447 cDividendBits=2344 cDivisorBits=1121 */ + "778bff75c8162768ce76050e371a42657bcd886ece61f35d6d69ed81a26cd9a3a5c4fa817bcf763bba1b9e05a554c491b557a343fd25ba30d8d5504ef2c44ee2712a8600767d9528d6e225b1c4cc583cc89ce65fc8963537f64c783e627d5b34855a7695b98e55d72a67f91bf68a8e41f46cce6404a0b57b4e68969407d38f43b5322ca83bec44ddbf6b4e8c57f79deb97cc9f37ac5e794190b5aa76a9414e79477c4effa70ac8d4b79355fcdd06073e38f732d13de017846dc7a0884affb4466ea412758466808eedd1fb9a287a5af76fe247998d977fac2589852d7513c7f8a1c08a93b56544e11f53f24c3ec152d75bfd5f5b8b483d1fd561ff5a14c9b924c7ebcb52c3e40fc0fcfcfbadd84864547074e231597be691a6e2902143d2af40427fdc11db", + "01e66615be08cf7a8a59d86be127154825ee65887d3a052f01f0cdf213fa7e1173895f937a5c6d99a875fb173f3ae977b06cdab855331a684b636fcce961c761cfb3aa1ebebb2ec67e4280bcac66f0f54c51dda7590bc2216f784b345de2bc12facbe1e1f870295af8cf2ee5f350c2ff440d409b03b558e94ba770784633a7bfcbc9c7c2c13e1c59d85cc7dc9e", + "3eeb68771ea47f95c84302e4065f5060de864722306e10509f36a3d5b5b1b9caff4bc6f2afef62a88803086f598480af00f6419899706856db2f2eb8a9d1889cc75b8212ce6aee71884ef85390712e4c29a9ea457dc36137f449484e65201e732636e837deb3bb66005781f5840860848dc42be18452ab44c9a41ff8ed21f0b7066d4ebc5d762383b17c5dca783df78c5f43b28a3ceecb8ade", + "01dc73667e6b98bcf19beda050f99ec485a9d25b0d3c9d39ebdc6516cd8d5f9a921e67dd2bda95eb8c9ae0913e8a4f25dc1fafffd5156dd530a2d55ff5bddf11e1b1dc94d547464b3cacf33192d135b6e7c7f307c7d400ee63b2e62127c6af88d61726ab7f4c6043dd26978fe5c739503beb7dc15a5f37406c58525f1d14be5b31f44ead220d3671ff785394d7" + }, + { /* i=7448 cDividendBits=2496 cDivisorBits=680 */ + "15883d39224dc0a465a5b0c2cb608b5c272c4dda4165e584710e554098f4322f4a1cdd8c90ce25610fd79c1519d958138a2151893bddd70c265d2ad8662106c5c723bfb377a240c1313ddb408a684977aef7156763e887d53de318aee75f7eb0b0d545bbf8d5f8c2b31f536e9175dfe9a277400f475a278d6505db58b849e19594f019d113077a74bdeab9c16f3f3caf6b441fe0962e51d05681da6ab86190b8b57a0e751e468c3c8462947e0b4632b1e5c16ec2700cb91ad40d728c07efb7cd39401f84240818febf5352654fdcacecc3e30dbf9208340abdb38c341af6b4cb997dc75b7db71fbe8c5da2026fe1a6f725c28b37e93b5a9317ec451d80146b793f5511ac7c4ac8f7ceb8e826d9802998e4e8bc21db6b02bf48fd9768d75678a12e75d9f791dca1f9b514c447bed15cf3061b17e14ac61b54", + "a4e458cb27b077e69b135fcde6f731c9f42f6fab1bbd02e0e116d9bfad7d5c1c50f2ef2ec2baa744379d9693a1947436190b264f4ae859c75be6e52e25976cea974e093403418dc7397c7a1ce525459ca7b253c77a", + "216decd73b152643b2808635be9d9d7632a10064f7899fc4348fa4a1b94652eb29cc8f764008b182e6c9605722ad72b103c60bf036afd754408356f3f20f3396123b5eda9af8998fa4317a517f661bad39f886632694def7e83365e53254259d080e094e58a1110e30609ffeb1fb796a55c719218b9f6b048db8564d5a1a03d337afda51dc33d473485bedfed1d26592255572d2666154b7298b27718c9d809f6944d02b1441ee5d86d4b7f3eb0fe78b109127b88003e896796cd43ea082c2b8077420614a7d9006dd0cf1e68ff927fd2e9ceeb7cefadb34437ba5e4ada41c56189000", + "2b010962eed0ea19f3f2dbcaefe777fdf5e94790a3bc170f91637f48c74ea72e937eaa0028610df2faf805d0d1666d3cc955b9512be3de2732509795fd8f9bac87faf4eae30194064cabb65735f5ed5c7b217b54" + }, + { /* i=7449 cDividendBits=3064 cDivisorBits=379 */ + "684c5e51ebd5540140e692219ec0acc22121b8088c4d9bd4148ae8a789b8b7533d3270104fcc5cb3c95c7ba7556a3bdc208a804fd354ee9243e124b7853b72dfda73ffdaa462f04cac9e981f2d6576617d44e5a37a92b0917880ec39c8b99ff469ab157f5c67cda89cebff4aabeb59c511f1b1b7d1fd49d3b53049d71afe0ba56baaa83d6f7ea3fc87860eac5edde4122b39091dea168e216455947902dc194ef1ed10a8fe3844b03b42183d61838c56f06fa2ecaa83f8983a666557c368baa8f238939a55c29e9a0990c64ec2c834b8a663a95a5dba07bfef73b63c6abeb3c3e809777c41cdf74f10b5114a268970b3f083436f082d721baf5c529c8830eac44aae7e7524dad010c46602180ef8baa6f4826c6a9038c061fa40331148016c2c0214a01d01670d19d0f8a562534ff7344bf20d6a2d6058c756a14cb320f32a59f0da01b03194f35991f2cfbd337b27b9cd7d02f5aa06d17c3b77aa91b69da968b0113edef5e5484fcdbded0277135b16c6a66871445f17dd2ead46a0898f1f", + "0406f615daf62daba40a4cc7e26054387c65a052186718466cd602f4ac0a56a9b066aa6de438ffbd46a719e6641e58e7", + "19e6053cdc3e87419aa9f5ed713a851cc74605e4ac550b89bb4ef41f619239cbbc1d12ad8351e035dd8e46c3f96b1a92a06a59e046dc6b530ce35b9a27249d7045913842ec4285ba914be0031364653818e67156679bbbf6d9a51f7c77688e68577f8a7579cc081d8a8fed62a2033186e7a52de8892141fa147ce40b8d5d9a6b587d44f824f8b29f83843d2f04a0aca89f96031526e476ee4d66e8ef2be29f21908aaabd4b30f69f8f2e3d0efde03677bac285b8974e2947a27fb57173568b9d24b58c2a3ed3f346ebe3cbaa48a5a883d4ae73a10c19c5618ae693d6ee13e268c7e006567866e7358385688df092632907f71cbdd43b8f6e91ff742d496864f4e2cf10cfea06166e44c8912d4b887e39edb05945be8b93d033d3fe6f437ece5d420bbd50b9b2616f6fe70cc00bddb4262d446c06840514a0126ff3ef8f8f776756588c15a37ef5a48b0914afaf23bc2c", + "fcde1ba5a849afa51ae7df45375c2ba758d573cf6b883c59d3f96e074c2dcb217b5c8ea08dcc7c9bb0c7521173a36b" + }, + { /* i=7450 cDividendBits=1672 cDivisorBits=1577 */ + "d984c3aad03cc9bd48a18e2315e82406805a631c3b669c29a64022c326e2bf48e2ad7d0c4e314350995d72ad86c5a2b8a6d8c28ed090e634592b2b9e0a135a2a2e1e29ec961ce978e119c046523273b23d9945178476cd774508fd36db7621a4f31c68537945e54302a1d1e5f16122edbece6b7f41362b38f8f11b70455abb976d2fb54bed02d77cb7931be9d627f2e133d13e9ac79ff3f9358a55e61b435bd9f9148ee9ec9d271750ba80fd294f53000ec32628c8707d3efd87594d9f4fbe73d5802711fb92a5c3b4cbb23dbc42fe8d91", + "010c8a8b9abec9a34fb4897ffe8a9e58c324e536b03bcd458c8db5d71896ea21c69cd52164f236dc4551f9e76a876496e07bb998c61707a3fec75583a73bccb9ad14702ef6ec8bc945dbf804d61993199f0126882ba3b19412bae5dd48207a31ae1eb8d2fe49aef197d334ca637bcb56c5ededa2cac6db52baf15cebaa675de1a27cd4781c5f79e72ec3996a9c8eac91c751dc10b0b60d8c2e92d987fcbdfd4ebb93dfc5c75873378d7e2a9e2189e831a48f40ba99b151f0dc18a05a708af79aaedf798cb4e7", + "cf5c383d3626eee622167f47", + "7c5cd0ecd9ebb8abf6add722c4daa989d60304266c260d11425bab3b15b7352c94aa870b50c82f5400cceabbd738a32197e7e709f37bd22347336f8b4f4f8a7b8ce42ad39388462b9da4f63b65edb4482bf667a672c5956aeec6d32d2fad4b910c3c506a86eab6fed858ab0c234acd1be0b6b99cba75ab32c216c19cb29123535b5e20efa735219ba28ead10c21f56edb929e6ec35416818214f1f675304bd76a82a2cb5b9cdb2b020b5bb5eba42d8c236d0ce09708d4d514e346d8df114ce74cc855fc880" + }, + { /* i=7451 cDividendBits=658 cDivisorBits=476 */ + "0209fa9eff08f9268897d72c642bb8dc02e8cdaf7ff5c25b5d1a7c5063aa83532d5018ae61ba74aa20a9d21e75d35e0cb64fee6d2a36d16fa95da1d6e20b4c08897a8aaf24e9a451df441b2ed25ce793e5dbb1", + "03c3f8a516485710edcda063b221b177b0ba6db3a85b9f3327ec4075d884e653bb9e1781a570cc56250c8ea282bdd17d7adc6e223ccdcf3ead9e872b", + "8a9ef71f65ef0191e08b7e7298774512c5d8b3c2fd57d8", + "c477a843fd56a3f0b1c8e15f4dee50c8aea276ef71fc9859c668169153c3ced3d441ee64a1f8d9d54eae54819e566f023daeb36d3dafd90ab53269" + }, + { /* i=7452 cDividendBits=2963 cDivisorBits=1898 */ + "04680927ddab769633d05f04c61341ea56804bbf1f4e6a8bc887ea8cadabc8f9fa69deabe602b0d33b4e9359ecffd60312b83c0656f1487361b1b32afb11094f5ed6f4b2a627d814d6c5fcd2c3582f342158b6e38b19d3c83078c033aad21b031e842a26b5b3cea241ce577cd2cada0d5fa595f65eea827cd7b40a8ea634175227ba89565fbbcd71edbfb7db32419755e68ad6bb5213a4b153ba9b2ae8f63a81f1b760c6d9d9b4195bbf2adcca51d630f6bf271362b8ecff69508c36c14d15e13c6d385d008d416a63157abe3d8ae4db428678f0617e7ead2127b6dcf74e13b4c258ab42bb87ac34531f15ebf30e4a3e197951faaf53b3bc5c490b3203e185afb62de7e9653178a89249c834aa842b5b59d18a1b3e5e99143b5dcbc5cafbf81c9b9f85a0f873f5f5d84593d869ad5a5dfbc5f3144997ad71a66671b889ee7208a4141ef178a5dfe39653af1d91a2371fcc7719f67bf6b5b18be30eeaf42fde26acac226e9a62386c71da7915ccc7c6e8827eda", + "03349a48ebd2bb71e09148bea5292332c6b0022fa3f6874e5e89c416e447a157a657285a070de9c4ee9635b53a8c19ee1fb41b4057337bc69b3528e6d0e30c7c5b10b8d473bb7815ff9dd13af3baedfda2f5d8983dfee37df87a1fcb54d58c67ad124934028f55df495d5f82302c5af09a896629cea6f703c521583e78a732a4192b02eec86dc34620dfb5860e71ec543c132532723287ff8aefde1075a6f97f73d5117c1eaec385fa8581c3c21d02671ea8807f3621c454d638e30154754618825cc0df77cbb66448d4994d1b2021e585bf24dc290a3efd9ba744b84d7afc98dbf7843400eacb2ba6257c573eee", + "015fe89b60f843b36d1e3885c95ad9110c10de5a1eef3c45b0059c882e67c98b717f1a7dd77736b0449f9327fc11f824e9ae89a5d7c64401d5d30a93d0d7224002b2a74da55c466e28e74a4e28229a0c3279849ac358814faca18d8b6643544c378726949d887f7553d9f2d8bc6ae068a062f47f24ef7898de034994b836a8010c89ff8afb09", + "03244c2493728b04e3d2fd922122dea49b4de240626e79f8391b27cd8b5d42b74114a338bf128fc6e8c39d681c5aa24eac794a9f8a9a030a1d6c6a2f8dc85c832b71f826313f16f41faf1c2adb191b29e5e08e24cfb4887706e31f04152e8bc03e3cad63066df3bc2b62b84e5d3878ecbb9e0953314fe44f72deb725f8395a8178a2faad1bfe6862df7ea9737e3cffd7c2eb8179d8abd89b316907b01d17c9dd5290e0e5208d0de7edf3224e8c238f3cf753b8e05c23430ad45455be4e282c0d0d00feb5d5dcab7634a3c184632a2a7daa0a49d305880977375381abb83f43aa161f35a6dd422dbb6b770071ee7c" + }, + { /* i=7453 cDividendBits=2691 cDivisorBits=1902 */ + "023b3f2850f2d3b619ea41ed0a1d05fb2107589fb9a02133b0654cde52718b5d9e307d291a635c16286a30127b01f25272281dd7bc852f4a292d8dc587b0a23cb376cbf7051f51c60247ca24651e24676df3ee06dd52612db485938fbc65d450f0a24260b5b60cb2278c1fc6d1745b1100fa8b7f4aaf10032eac17d95f72ed4aa0ab26be2834372eb404c2add69b067d6f85ea0b027a90483c86fdde60ec983c52b8faf4c9ef62315abe05ec003e8d9f93b477751878d3085140eb78d0a7f2f853f3075d5d2563ba21c5551170929ecb5f8368735ce0dc9de90abd1d58ea4dfc5926774cb033d06cb0f4e0c3facbe28593f0a485ce2fc9e2cc8e13046dbac00064059cdbb744599653a5b7918880c0957d6381b50248fda086cdcfe5676cee346f11267bed470b320b807293f15b017f8452ffb99d3dc351eb9d863e05de86491db4121b33539e1273e8b9e971a14e9388", + "04d3a4f9fd4a7819a3cc100b2e59a91a5d83b33c731984bdb92dc02139cb585b89040026e9cc81baee186f2927da04376e1625e42720f06d2f2f87ae60884c11d666194ca6505ddb0e7ee8a637ddb7d87ea2b8073fa795ec9cb2da78cefe33c9959eb2065da23b78a141c5c728ef8af26a94792cc1af893874a0c3096229be0eb299f59d1a05a64f58af937237a98153606e786ea9dc32a4494fdc1dd74c5a8c004b6725b2da6183d8d2922d8d3c938f79b5c55023815f52a65cc2d941f0ef123c9f444df20869f8192fb524e997ce04249af43e154b65cb3a5c0e15138c51938ea230ec0af28b43891990f9cd12", + "7659bb7112db175507531eb8c2ad104b6c6e56a1e86de8ea711b029676c68fdca51e27ff283c517ed3942067e2a1b5e369ca8311dfcaa1afb109f3a066387deb677eb61d936e2a9cd7b7dcdbfffe848e3b9ef5f572085b033bf52135877f8c3b7b0b53", + "03f3c11f12758e9a18e4d4892261e7208ccadf3cbffa02950859524f53dab22d19d6df0f52e46d3f183dcefc6a6fe047629a171c6b7bfea75510c2be7b4bc9650b3244c29fa0f6e0b3732b5b0ff54dd57d2f3371b810948f202fe33dd88440aa7daf7c3b294d9492788e38d02e896c2f29ff58dd9f117c02a3abb1b5a3a3c54a3d7fe026b2805a969ca767ddc4281cf537993280f3163ff46f84633a6b43e4ce8a45337ea4b6c6b0aac9e3175bd04092d733a040b972d94629fbf28fb8d533ffd33f472ec1a17d1c4074f974486ba589b015ce474477d3c48abc2ee0a293caeb506fadef226003680ecc36db50b2" + }, + { /* i=7454 cDividendBits=421 cDivisorBits=80 */ + "1aecff65114111f4cb58316e2be97c998a166bcfb544a2bccc1101cc1133ad23bc419d8cf667be6d5a3f8f231ce1206ce00ada78d8", + "822e9f05f1ce9e6bead6", + "34f2ea0d9af1cda5e3df3939369ad5011e9acd725d773a3938d6e5130dad7f4943d5f5810c472bfa7606ea", + "6b0cc3ca59477a10cd3c" + }, + { /* i=7455 cDividendBits=1485 cDivisorBits=92 */ + "0bb7ca868dcecf9a2e77042cf7fe4b290922d63b811cd96f3d789f8e0fe1eef8e690acab9b9fa831608c09d6879f4f78430eea720b17dedec9e6e84ff82af5df42fde0ebe743f8131582390c114afadfdc4956d301aeb7c8c4b92ed31c5e666b9ad5844afb55995e3ff270619ae3700cf8e04d6fa1306e104e57efd8ae656e32efa0a109242789391bf826660bd262ef59abc7bfff05af306d00c45be70009c44a7b9e38eb16ed033647fa39629e8a35d6c62e5f7d5028dcd8ae", + "0ef7d4cc5d602e62862a2ca6", + "c869938e06699f13e9febcae42a6e54d4b37efe5076ec591ba5cf31d5a4c60a4f16a1ea9055979115f2ea5a67e8ab9ca373e2f3dcb9a42a0de998e3fa872f92cda7c2410e596bebc7b0b4305220934f0f0370d3309422b49c384b4d025d42d79f78528b6fcb6839333bf4c2960e3532f8309011ef16a39acee72bf3bfb5017773bd827ef6ad2ed76efd013d4725391b53fcf1dfac62e120c50317bfd3042ddb0be5651e53b83f2de39dfc5760a5f", + "222bd6ac94471c66f3cb14" + }, + { /* i=7456 cDividendBits=913 cDivisorBits=367 */ + "e7c1f1a69cee12e2494c4ec34faaee49ccc34080891a0f36c95bddb092d6ee02caf286eb4716f00d77a9b2073ac43b4598f70b185629b98c36a597930f60cf3f478bd0529a7c660091786e3ef1084a5c84031abeb4f03e2ac330e426e85e6f39e959a4cc0cf878265dc63a3fbd9dc19665bd", + "15a6f7445cd15873ff3e1b6a76ea6dd5a3fb2f6fec58f407855dde4ef46345d21b343c3998c4b53c71ffed6ea1bf", + "0ab42222d3b0ce03e9c938b539962888f42bb7a33d7871e13a9c58b6668a16426fbf4eb1d34358c9bd6868d7d37a699c67e3d4f1cd9d262a341c97e0ad28a2de8e8f00019e", + "0138b41ca864dee1c03b2d0eca6d30fbedff11998e346770dda03de163f3aa441d5f916068c4565f3b7017acd2db" + }, + { /* i=7457 cDividendBits=3837 cDivisorBits=903 */ + "1a8f1dfc3fe5a3e4c43b28df23e2a86a7f999d2dc5e86c4ea49c657fa18c657de955b787538e0c66a3fd885352d4ee5677508283bdcb5bc63389ff073e58d5003fa711e58ddd5e2412d54dc98f074eb280e0cacd4cdb7146d53e7d083562e6798d5345397361888201588c25fb00821fcc0c9d123a923b7c20c14aa775250a7021f556059562444adef0e4fab6559fffdee232520fdf6762b50cb37f5925ef6396ff7cef30013bf1bbc06b593ca7160f5a88e8e31622bd7d6071840ca8210efbe0848740029f80e2d7ffa0928ef230ba4401eb36fa22fe8946b72a8e3ae93178011b0a79225eeb8b25c86355fa88db4ece1a63f2fd921d9c4252a80353e11591b244487c04ebba3acc15eda2919347e11ee1f83ae53545a4977e375f14c447a10b6d07121d5a2d436d99ef2857ac62b9adc44499b889325826bfa778d045678ee29f80448b0f28a2fa9a3695c47f3fcef5ad4d2ff14b9f30cc9cc35ef9f011208fbe94675eba2828a41852515ea8004a1a37e52c9bdd9e0659dc63995cc19cf285268b53843152db4f41f5e18ab91f1f64d8067a6cbb8ae23a15d36575b52607bc749f9c4772298f4ae737e5fd6ae5c5bdd3981b17749377786b49d8713e455d5c260e67dfdd334f33fb9da27f6c96f1ce2f2877cdd691880cd7556c70e1d678", + "41b24b6e0526ade5f45090b2fc9291b8ea86a306f3881e9ae4bbf577f6bbc6967aee0eca0b6459e9f6fcff2529ad95f9ce13805287da3972538560be3c754890ec0261a4c1c22b2f76c5204610d36f4d2fad4e76e4cb53e60983d5ee738b9cb23c57b4890fa409d02961c2081c5585406c", + "677e2e4d3c5eae480b1c493524f7d8b67eabf84529503ee83a8c67837cdbf3649582e7d59d113433bfcf85af709cae3e271e434deccd9723aae62e500f260723db3161417ca2b4bd0e85ca48765c2907905a60ef0b74145106c453db93a86cfa421a8f854121d78aae58eab5d49db3d2631d7f5398bfbf020bea83f3283186840308d27b6fcf00d7e37434a2647c07525733cab5b55deff30dcf0befb65f53c0c398fa12a3182b75730e12d9d6626448e59744a3b8e1728d6c2fc87b68c00a153d741871b74e815282d966160550c9ce7a74085ee68bf5efdea5709e46ea894c605e895605f06ac1028e8b8fe5581ae1f1e8e79d7dcf8a29838f788a01aeaff9ee6967d96d7ea80d865d53619e6fd8275f5a48e84e57ca7a629f0a5b2933b00e091247dfdb670ea9897127337a672d05e3af2ebf90231b19b7f2fdfe70479d20352ebe833bd98c0d42c2430c43b859ba88370a356500e378ea2a4575fbde5293fd3184998f4b28ab8ca66ebb1d82ac", + "34163f1953090dc0bbfd096f302aae68b187ce4ea73689eab3e20063c3e31c8243dd1dd44d11066166e8d6eb1207bad3017f739af81d001d8ee23306dd5d8dcbc21cd77dc7d9c945e2e88cb3d4d8975a012828e3639637b0a3d94567c7e1f2ef330d2829afae2a8bc5b295c2662067b5e8" + }, + { /* i=7458 cDividendBits=328 cDivisorBits=175 */ + "fafddf10a4b992575f82f8c3404bc700b06a506ebb9e3b08ee481fb7d2191dd0e91b098bc95992e6f1", + "14efd0d6d55af5963a3161c0a10cefdc69546cb89bdc", + "0bfcf274db0b4f5213a944956ec10a8de85e3e8c", + "03cbca55b3417c32b39c2faf086a3cd5d614941662a1" + }, + { /* i=7459 cDividendBits=1318 cDivisorBits=73 */ + "3a515985b713f611ac305b6c69f970f921562c80794fcf6294e61227c6ac0c50786369aceefe1529263cd177eaad74b7789d5b069a41b066e97075accdb7827a1d4be70be91601cf42b57b0da81c2242174df4875df1e42d657c398aca8abc7e118abc10a01c8793c44a5317112cab00f31e0f5a6beb646ee0c748b499897a048be1d543e397f5d33bd577337249753b083fc75d24fc4e02907cec61976c6669f38d2ae595", + "01144dc08b87d34755cc", + "36084a9057b787e0f7e1389a28ffecd5fc02556ff58377e650f3ddc6403696e238d91907fd8d7fdb8affd0c91da3093f314bd4b0e6eb88eeb21ca1a299354ace1937cea4c6119892db3aa8c9ef91914c7737813602105949862d45e1b54d66b70f3ff4fb55c40c1b41b7258e2413ba93aa00d500fa737815190469de6c8dc3cb96b791abcbe81594832368159e0e09ffcbf674795046de3b7371ce36", + "cfb704b33e1208a48d" + }, + { /* i=7460 cDividendBits=3903 cDivisorBits=432 */ + "3d43ec5cbe5bcf103566102f43dfe0d855cf0ed4897d70897769ff3cfbda97866f190d5aadc2455ac09890440099a7932e597cb9c7739dd18c41a1cc7b8b81895161f7d5de8aafd37fbc642b221c8f470e412440b7e6dabd2aeef76927221ca0ee23ca9cab3914c74a681c2933943ec8c30bd08cee915f3cca6f6d0da3d3e8c1ecff4456e33e02e6393361349429225d7ff9064f6c85ec6a217fdec14b91594c35d6a8f039103954e058eefb9fab401fb0d3cc86aaf5a0354ce57e7b6618ba72934f0f531fc3d168f40413ad8aa889a0c131f2ac21ce9d32db227a75af3e1d0a715f7c42ba88e7ac015a54428bd2ec881688e9beb62c436f7d892324163ef7b0a36c2057c054ef3e1d2aa655f5ef604c254eba6beaa58f0e07ef8254c3852e2a296114396319efec6644b704f3e240b4c5a0460305bef67ab09b2f758b79c49cb2bc0e244adc804db1619ddad607303fc845a0ab1e0018b13d48ddbd1a65f03fc2cca679964916db5ee618afcb4ef5ce3e44f65c3542c9fea13e26e7b23e052352158eecb66c774855e09bb1f253307b9b5cc7967d04bd15533df38427d372693e258221ccb348f2f1b0ff015a69d3fe86ec52444eee954828fe2bedfddbc7caad3d6fecb78a315e11231019b19ef27e26c91201a075f18817adbfe175302b83ac180e54bb396ae2", + "0e69ffc06ebec5c0703785c946a153ab523c6a3eaec2f9c3167bdd45c7f6e7be7e712f79fe51602df743a7644ec5a1acbc49de3f9332", + "04401959fa085d12ea2a805aabefe37f7e4385388af42a6e7afca01e44bb5c5d4d016f33eb4898c971b1855a8a110fc1804afe609e61a017aaa448df30e94bcf430d2ac06d96494fcd4d8748f33dbeec6b0125e1cd75b5d73b3a26fbf90a03f644778ce986d164bcb1d40399e5888515c709c060adf5a790d33555a05834978cd9d2ca8f8860d190a52dff981ddb127698dfcafc1d300dbbdf3f25652c3ecb1873ba616ee0db9471b52b89d5d47df92f6ea07c323af5b5d5e5a28de426672b2ad7d4a39ffae1d43efdee41b9afeeca23a3829c2ed517fc68dd4652a90daaf332b67791fc967c10abb5442a90e8a49ec2ec575608227cb5ba8bd1e133e43062fa9a70a18457ccb7bd5f43714b1383eb5afeee575c2c6d1971715af188aa08e56a588500fd7662208db83080aa33b0a770afe97010332c47653595b1526e9a0661f1fb15f8d9b9803b0e3667c5c4101f31e657ebda321d3aa30d8c4336ae66fdf1d240a47eb8026625fe0a456a43c16f9f277b137d5b540cbceaf208b71be4cdb565adc2a597cf8f8aea3eb908365c2a6e5bb3cc137424bf689b2e90b51cf3d9ed7de15fd4596ed4b5a6b97713701dadb7e7bfc4", + "09998de6044bffd5c8cdb2bd2404a9b085440274c6f232fe25e9e841b752314417fdd6f6e1c3d172b04e5e7eed09ce52a894939c6a9a" + }, + { /* i=7461 cDividendBits=429 cDivisorBits=31 */ + "12b0410c26740e357bd3bce8093694fdad882ae8b96c0f16b95d6a1ed27a39cf566171873a975dd142e7102545cbda6c980a7008d42d", + "1ed91515", + "9b1761c141b7496511e8808d08ee102848cb5fecde9a309ebd336ec5d94a6c200aa191afe0751f8cc776338cf252678a27ec", + "1d6131d1" + }, + { /* i=7462 cDividendBits=2674 cDivisorBits=2045 */ + "02048ad0b12bcd3b9981d1d531e0995f37a259d23135664880a3c99be35d9b9cd546d15f2f7b12c6a07180edf992b16427b94fe45bd8f8d3ffce8184725c4935795d748a521d4378b209192e175d9ad212737243886b06a6070e90d55e3a623295d411855906c36a62699db2ca8ae702d3cf29d4a3f76f6fa5b3112eac8f57325c30d95cbb66a15de373e19fb0124bf5ee5f27187ee6aeb5661e9d77b85b168834e7eb5d2871f9fc68b9ce15dafaec04faab23c924a1d9e5c1c115c92969117bcdeafc0dc77da1705a1ffedd3f61ee859291102d5caa7e5ff442fbde6f6aaa3844fa4fc9d1c195cbebd6b38953cbb8863a3c3f5c61ac08abd038c181416e4abc561040b50a3cd1398c9b1b477563183750a3a8258cd1249c5876241cb36c44d73203aa89205d5237ec3e095f3009b77b3ed06530d0ff5c57fb9d366eb960230fef7eb714f7e9bf5eaed63b64f65474", + "1d2163b0474fb1bf509a4a69689ab5a4c626cc56a512070e0e767a01f7759f29437df5e40c13606544bf12788a64017fc5a899cbdade74b2acea53295c8a38427398d0d01f253bf319c890c83c10ddfbb2d2ee8f271f675effef13650993a18b98358efed54b19b3ec789d5e7b731f9fa5afbe668b23ac22307ba58aecf56a448c2e92d75fedd470500d756e0f762fc4cb473fc1f05ee3f37d53fcc48e26d607ffd114349b2b3a29d085f5f0ff005d4cfb60e2ac749b1d62650e075015e475d06a68efb238785c2822f87c40996f6198ae82a732ae1913da5efb4895d8fd2b2fe94e982a3373c116680f44329c6e520b2593fd23d3e6400edb4ae837a27b0cc3", + "11bb67befcea1ab8ccafd0a75f1fec82495c71a2daa8ac2171eb842ec444e1f2a01e8e280cdc2cbab9c7472836344860be6287cc29cf2e386a0fab1332aad7d32ac960cd3eb2f0c3c1071c8b8318b7", + "18543eba954658f2a9c689024657c40e71c606470640870c2aa217dccb7e1f5f357e061352d098e65acfdcdd681656b207e37b9cc7d35965ae1dc1483489729a991cd56420d2344deee49a3c68a3df0e59d65683499b20124ed9039ff8e6b417127bd43daf07bd67a9d2c93607ac2bfdcbd7a89fd65e787949b05b7373e3197570f42923ab6e64092738aa61f88336b27efc5401b3e2799b0b2980fd8edcfeb034a45befadc0d2e09ae0fabbfe907c19e916ee4ac048d6c1537b0f483e995b5d95d37854a41de40caf815240435fbccda16b64cf2472374d8994c5d1e3f0f8f65b6b332285240e5378d7b673a390c3f66e6bc46090fd255241daf0014d04ed0f" + }, + { /* i=7463 cDividendBits=339 cDivisorBits=170 */ + "07cc26c14bf59da2513be696664c61e83e0e6feec1e7eedfaa91ef4c622a313dc24d9a493b4d1a0d0b6f89", + "0367dd41c9631a16a4f0c6e5538e19e6f0f591ab6dbc", + "024a1e087333e3602e2cff408c962263ccf3ae816c7b", + "01757701fb5cb37ab462061d910bcbfe083ca9a66635" + }, + { /* i=7464 cDividendBits=2745 cDivisorBits=1166 */ + "016e9caa33ece66f6b9dd758826989514b13c9b7833869b6dbd657317458e08aae609e5e3113128091a1e313f586bc83baa079efb7a808c8f44e0ffe6a4e86e86821ec769a8411c59997f74a2b7966a255fbdf064e416f9e16a7aa756d926e2491d1706d874b94d27f4bd343a977f0c279f2aa9fba1b6088bb45ee214c61477cc631400b8beeaec8adbe2eafafb0e07b422cf039ce424050dc0ddd9adb899ef5b30da6255acd9388513d024ffca3efd2693b7b0d1c1801825c51db2d8fa93f6c21920d74d4ebfc1b930cd588e6f019778040981b8a194e6c3c5ab65a03a4c1dc2f95d5e9e7d5a85359b86b195ca27ecd532cc0cec3a8013b748c19c5388d26fba41969ae47a56f41f152ba23fa41d71f1d10cfed5dcf9b32814807eaeeffe7af7ccba1ff4bddb4f38be91d8b1c897aea82b93be99567dc41f7908dec020c29a232235460f40de379148e3311c6af3ddf6198be48ff0753c2", + "14f227f717b8fd66975fdf63e49c4d45a8e56688a0d5085a46599bf05da2ab0fdf2a0320599690811d6b534bcbbb88c7a5c96b1e5d2317977d2c6f3cff54dc9fac88c78a6b02a2bb47270e751f1a2362241f88e75836ba06911771f96fbf62158aba7bcae2e29bf251f36496c928f55c8164398323f5a0f57b1ba9d37bdc6be3900978cf722e4d7c928cf77ee3305dc0d8f8", + "1180b6823608b48f19768b586dd8f167b5b21b0710a530bba41ade2cb08899a53437c0e3187dbd86f599d84aa75e467feeb313357413e8df4a6c1162bd026bcfdee8130c5503cc9c7f189e2f000d351b48f359782d91b061ac47af65a73d4ae4c19528d9c2cebe56dafa0e6c97bbbb153c049bb5ff77609c091ca160e377dc45bb9b499ef5c586ff18cb6ec301722d78e6180e54eeafc2d89681be1010af1e1c72148c9952a052a2a389dd28af950965994af59e3b29166427d0884e2bdd8155dedfa2b11685", + "06fea18fe0af2c22ccb3d6e80cbf583b1ef4dad1a57ff4b225a112132d0557e2b3af5ec420c7e7a03cd2fcb6a7b55fa98ae2c2d8135d4660057a66a735e7d6dbf52be4aab93c4e2d5e6e85da9f9ccf0da080a1b5c776a6a2a716f80e81691ee336247792266efbc3a3694040e02f8a037f52ee67941cef02fceadcdbf2d5fe1c40d983f0236da9f375fa4be5a26ec3b94aea" + }, + { /* i=7465 cDividendBits=2129 cDivisorBits=1560 */ + "01623c8b7aad7b8ab29bb8d52b5dac41c3c3a211e348d503d58225e86b407af115df73bd868fb695632adc91e98827ada5f3a64e5f5a21067e8c2d77edf2f66bbd4b962575cf2a1d798d5ebd54ca73f5a2b7dd8791a31f69e065e604f4b422ead14a803a939c0748d5a0e7340b21525c7b1bdc453779c15c502a850b416c8e3a74700aa2d4c101f6008b6ae750cda5d18fa688f017d492e4aa4e9dd77ac9a96451ebc465432e3e231f3fca7a1d8a87e62f80b6a972cf7298dd61e94e96e4491b8509457e3d7fd5d779a68855923f0000cb150a58a513ef85c2f10616bfa2f46f448cd41ae86c7c5585d7003da02dd1cc7354dcb584863932c2bf081cb973fa571b48b75da30e6eb7b447e4", + "347761291f0922f64b9e2f816325597af9ebb86871cd72d9a3a0f161607468559c50ddf16ddbab6f077ee471ee82f9172e4f3a08a040cace91a88f8661920c98ad69b3ce904b79d11fe7b211be77bc6caf231b6711f73d1746ff46e7547073500ebd8fe28f6a579e96dab818cc0ffd460b1c3975af0a9f3d9c16a9a196e9bb30cbc9154e1a12acad97d92c3afee8cd9f81225e10689e1e00273f703f5d819845c93e971bfb8b32be3c4e822cfa5ce124328d3f9ed5794db76e96b771f87a742588caf6", + "06c06eebe91aba89df7a3408b54626f591e34f6cf89d4651efa824444755b8c68267240a48b865ad8ec692b889d386f2d2966c9ab6616f8c4406a4319eaf3655a681e9ca3b151829", + "079f90fe8e442fe18fa07fd094b3ba5c04d166d6f61f5010ee97f69c3b9ff0e9b7f4b220915fb9eec62d6f22d532c2afd51e94615fac5d770c3cc207b25d1cbcaebce44b8573dbb28e66803aa055751423a1c4c2c164ecf4952a8cd27f5a1649df21522f4351f70bf65da798cb884860bc13faa0fb8943c4e05394a97153cc0706a06bb5bc284e2bf045a3a4c92a8b9b053d40508a62ea3a56cb3b405abd29a447cc8ba43eff50b68350ea9b9311966faa9d70f0de1416f62c1a05188ee7348996b67e" + }, + { /* i=7466 cDividendBits=141 cDivisorBits=40 */ + "1efa9228d65f06c99366b788a01a8f914c75", + "ca9b8cf26f", + "27247b96cc10ecbdb4b5c405a5", + "1c7500dfea" + }, + { /* i=7467 cDividendBits=387 cDivisorBits=332 */ + "04bf52b2352a07dce925a934a688fead68419d756db6f3f3dffd3514ff737652f8f6a465a33c1364a58e58d3c09d1d2114", + "0f35ef70ed58d487eb92794876f093d8f07f32831e2fa4540f2f82535d8345bac0f0b296a9ee20f5b7a5", + "4fe6385b852abb", + "0cde86f3f82c31e6032effd8b492cc7c70d2ce9ebcf594cc2e5742f15f19fe5b5750cf51bf5e29c5e98d" + }, + { /* i=7468 cDividendBits=4066 cDivisorBits=832 */ + "03e1e6843ae075a008c6afc1a47b345a1801a5f0d5cc8ac755607cb801c518b225df8f81910546fba5163ba5095f23d8d78d64a181322e8e9a1b32edd132aa76489c688d5dbae6a0f1e167fc9b8c8dc8df0080ac8235b1aa5770bf060ab06c8b56b8c5b764abe5e726ae625e26693802eeff8677513f75ccdee4dd16e2f300fff197b5addb52b63140bc6bd185819f564791974104bcb91b9e42ad5e8a01e7e718df60afcb42810d3d180972b15cf09217c51a79f823250d9fe5952e5d83d45743e1e306b6fc44963722192974c0310e35416314a4f35d0106056e6b9d6f0af8b4009ce29256a932ccfe76057c77b9d5db5307e0ae764e027dbc35801ba95a0232346bafcad6ce1407fd36142a975169eb2c61fb8af973aea64cfebfa96de25b1619576fa53676d5617e124baccf316f447059ccb94feb647852aa80d63fe931534d1dc0145cf3a59e9ea0d47f340e82803aa4e4afa080a25e2414e3b5010fa9825216b9c540ac46256ef386ecab4790c0251cf72d2087c92e59ba18009338d5e4baf596a747617621898e2bac97489e4d9a7e3a89d3f23724a34aa17d34f5227894c4a51ac331e5bca38453fca5abff78713916a39d0332853266f6d07a34f7ddd94da0dc8dc59aa1ebf10d042f435bd63c648d8ea26cdc62ac590e2b7e9d6909407939fd3f12d5293bcc2d904b7d730d9e314af9f26c56969f6c2c", + "76b1c10c345e4b4fa0eee0d127cf48a9f46f7c70ded6dab568b7b17840398c1d38095ed83129ed9b116e3c790e5a8766981833d9957ab5f0cf52b0fd1cd1caf0689c3f8e2721f7f8fb247fbe527113bc50e9745244d2c363e75cdcf52177c8253308b65517da81ca", + "085fa50a02e53b6345e9873df310de2a5372d37a93217b71a4335db779dc1d2e1ce81ef70bdc099c1de3608f0f8a34e5d6a06f5dc68bd4ad5d5548c3b05726d30ee9cedae699c3c0c78f28be0a36d1307c0dc949d7d3c7c117e0b4cad01e076c26aef586f44a47e27be3e591d5b082a935a9f65d8275e4bda7bc88b9dfe5f30c65382ced3493c409c1c520608d4084b6159c7346cc0b225e9fa9002833b28d704ba27ba493dd0a503a1a003037d48cbed54688bd85381d9f8e1987e4d4f3d09cc224eca2ec62ca9b27c7df3ab80dbed63681e1b793cf598e13128c7ceb4d0efa39dcac0437aa85f2ea17a3b538bc1fdaa00f4816714bb5aebfe4653ae9981aa163365e589b091f833910866fde53d582757c7cfce7ad3e621a08cd92780d9b6aafbfa3272337e8ab523b12535417b25428daf2062fe1792b14e8fc0df3f176c31cac0c247228432a5c3b96be38686aab819dcb4768f463e9855915697240ae39ceb4313b333aadf246b4b29189220d743a8b94fbe869f2d5a4257e5ce52fd5ebec749a8544d191b2de9df7a9ea9e2dc18058c0f7", + "3b9ad57644396a6d15dcbc072c3e5322ba16127eaf3ab691dae0ffdf300488312ca5f97eda3dd46cd86041d72ea3613209484b069ed7b00182715bd96eec1c396811dd0da8a203b5ac58d37a16ed5ab501d83151f70f438eacfbec54dd55d5c5d764df0d1404b246" + }, + { /* i=7469 cDividendBits=242 cDivisorBits=85 */ + "e1b78c016a862f8e4ef1c0c0ace0d2ebd3923a8e5f60345214f827a693f5", + "7c7402ee1ab337b8760b", + "01d04cad4f5ded8677999bda0251ef4716ec3f5a3d", + "08fd60ddc183d67d9556" + }, + { /* i=7470 cDividendBits=2084 cDivisorBits=588 */ + "0c393629135977afffab08c0ef94b0b59e2ff28d96e436a8a44d1f3610694b2ac3f89d71d10fa4f17b1ab6c635840cf7f902bd8cd17df42b71658bbc948d3867f8ac084c8d87c80931b1c71aea633dcf776d42b3dd2ff5d2decc17281420dee2bcd4207964b09169f8519515a4b0e18d9255ca302ab8663b9b6f3319513e965383d899f5c6e5a4fde814e6911b44e25713b71eaeeeab5e739f917ff4f41ee6246725152086070009a2dc262e8dca9220199206706f73a8023f1198ac5525f7b7c316fde575e510fe6e31228f2583f92018552aa775b57a02a0181438a2355c08c60d0bbc0b40f671d4f4aca1bc1343c919c1281486d14bf94a2c6e058cf6a3194a65c2b03c", + "01e2efbaa88215a378f968ae8b96cc3957cea2bfa46d60183d271233c0804a6a27aebe92cb5e242661a5698c7b63a84f0c0fa5c561deb07a30ef239af60775c83590119bea7b69f473c9", + "067ac3e3b56b65b4989703a3aca30667b2fb2c914c06f0b48a8db2d71ccc5a955c9a7a9f5a32a6b6b0e1121e5fffa1045f0d1f0b1eae08921c6f3133286d8c18cc5d449471fafcf95ca26a8d49032d6037ad262532dc72808417749c181d9740d273946afb9cf8cfa4fec370e34c32857ce05056ecc4eebfad9172a7a7337b6ac8535592169d60e160bb5ae75f4387cbdbffba350706283e94b4d5fcb2670de542570447ed27d9fbc73959a8a20585a2bfa973fa029c6fe7c9ba263e", + "ac1cb0c3577f18e43b4c82dcdf5fc7e35c75736ab619eb42f304f77dafce44c3ada467e954dcd74eb1a9599a9ec0132205e8d650ca156c83c51ba54eecddab84328ff171c88254cf8e" + }, + { /* i=7471 cDividendBits=3481 cDivisorBits=154 */ + "ef526aa6658551f543a09e764ccb1c57356d662abb9e159fb68073507f61adfb4853429de46a7a7b9b012edd34aa197add699889bd989882b70cd442e64ce107dc87612c2cfdc34aa89cf4da965a19c7b34614e73ebbdb8bc2aca6f4e996024391309db3f6d7f28b1de1b5ba3c046d3235118b4b15c3784d6afe83c92d8dbc5407c4dd3a7d6fb4770d2b89a44543e4a0c3fe25cabb220a3f492e00d8a9518b499d68a3e35572db271931c1c80b0610c71dec82e52da2d1429e35f31658d08313637b995f542ad0879d9ffcd3f781e53ca17d5136e47a31cb098534390050db94cf12ed793dc94b7fa574b4d98f8619f4b7167cdbac625019433faa568d9279f3e1a9f96badddf2652b67fe05e556242855187578e502643a81b70dc4ff56a7bccb7afc982386be9f6b9d649e4e20b6a65c7ec10f82d47b923d5045f1cef1fd5d14e04adeff5a0716c675e15ed30d7d7353620f2d648944a1652054751c24f3dd0d94bb5390230672af881a4bed42531e4a01c279c078f550eb81ce8305ae557c1b0b3972fd467213d953f339acce5d6bef045dbbb5054bf0e2e9107ff9e3e35c4b1763d246c1f4ad7734e69847d7b4719c90c1", + "0130754c3ba9878d22fd4ca7853ee2005db067fe", + "c93b20979edfaa188dfcdc6e17cac9c4f9e764472c7cef8cb4fa97f488bca1ca28006ffe0a991b4695bebce47402e9285d79ff8a61a73ca501e35f8723346151df9fbb8ea8b5591242337367faf08d8276cbcb68d356c854afbb47ea4c631c0fb0652db41add34bf018649042f549cebb1499a162c87dc4c793199e902e94519a47ec1a49b5b961453374bf712c9bc104ed5981dc4894803177631a0aa3cfea5326d498287932967626e9a994f428145ea52d2183f40b2758afead4a80d8c3e254d15fdefd882ddf1b28a53b33b9f1ce7781df42b63527ec7714ce132cbfd9897596d06467b9dc4bc76b76d1cfe5b64aa4fdbf9ba8c2daacaebf9b32ba24fff1dcf77a48196319b4d69fa145f3e9a74335e772dfefb62beb6a6dff5e59bffceda6bf6d0c0e7df7d47bbe60d75d2c38d3db60dee6cee898b2e2342f822bb5c71f48b79b5bd6e7d7cc080381e762ad678e6e13ca11b888bf1a876797cd068764077694ab974a10550720a18ae46ab8069dc7a1a9f1f7adbc2c82ad0428f99039d31f99eb307c8dc97c54d92b65d6457fa1f710bd8d7b9355b06579c8fb3676c05b", + "01080e8bd99e7cde1f990d2cc73c700552d51977" + }, + { /* i=7472 cDividendBits=2906 cDivisorBits=998 */ + "01848ad51a6c5826b43170076b62066a2c52ef75136cd2541c7937cc28209115954b0dcd812be24d916a836e92e119a9b9d4e4effbb2a4144b84fc9a711c0ce5ccc905a8fd937acfca6a13c431c2accddbfed93727811b5fd05189b12d2809dd86efd815708bf493e88d4116b8c3051c9536ea8f026c4d6766bdc5c8ce89c0f2a86850f16ca12796f1f6c73316e1772ed6e3d9937f5e9d986f7acf485d20ad3c3e613cef4c5f65253da93948476bf428a04ecc3ed2c69ccba1d476a5d15c4a2919f3ae988ba5e8bc009e6d1c447d03d015c3c5e055c73b8dceb1855434850624ee90abefda4775b1c1e98cef7b95658f74d71b59c760e2c1a51c4d86e844b4f23f2701a9f73952e260155c8392fe78096fe896cd3fdca9cc542595a7a810cbbf4c43efb2cd54e01f4e00960acf4413e743e69ed46a139b5992c366b8086b5a0e09f7d17a3e4efad036eec68a2bcbf80e2b9e914e1cdef0eaeb78a9a36c71fb1736a2409c17ecc3ddd6e371be", + "286721e8f81f38585ec284e6f11566ab60edeb07aa9f5efe68893c8d757ad804f15a188036b1444fdc8c3d07e96a31a4b48784f3e0d3f5cb5f514be7466a4a4c3c4043c0017054edd4f355295c18d5b70b37d0621bee277a4f4b8e6e9194b2c9a9692a840e50649a8bad8051b620b7af6063d3f2469152ce1b66daddbb", + "099de03e92d8b24885f8b5d3a9696ecc317cdc21feef13975e96e543c2b8daf2eca4ff013c9ffadb058de381b9db5dc078855899b94063a1e7c295e681c76ec821dec0a6274fefe5193252cc970c97bab39c1863e4c1a6b07c01abd379bf5bce7fffd2d4acf5167b54e55522b29e73e569f9e236c28164f06685040d31a87a6d0c80ba7ed34aecd818292a44c70e27dee8968f9d56d04c6a396590a7e6082766e5390f66696dd2dff75f6b1fb39c2fd37cbe0118983b5997e37f8bca8aac812b1da22b3bd937e397a8c25dd5253554a16519b0abc3d1b1d885cba7d5ccba2b21ce8fe2bcc4f553850fa1ca2e52aa7d", + "029d90aca225dd749cefa447cab5de1fdc169835f277f317614601f02c9072abfe8504137e9df582df44ec3aa69d11d44017531bb3009924c9932fda15756cd32a66c9318569d70ca718e68a057503de0bb29e43c0daefc6982c2330ba86d6e35b2d5e25c6299a19ad5ed6dc082d13767e7b343622414317aea6e0ff6f" + }, + { /* i=7473 cDividendBits=3675 cDivisorBits=3061 */ + "070ffec040d26890849f0f9311cae46ab5550619dd4b9029f1c311d79dbc343a82888f1c2514147b44650b2841b78a651c7a3c75ff671bedc997a82aa6e48f1fe157df50cee180e90050e438faf0ec522ea8cd99bfe05511e10885a553f0e55111b049815ac45b2e25652f2faf5111b0359748a802e0d42c14c49b8bb6847974bec4c2508d0b198d63a4314495ae79ade9c82c8ff81edf9cdb04381f915eba2945656c6d508f8d93f5f4f31e598c095f60782e97916b3114693a6f07e3c4d035d8b3644e8e9137980af6d206d3f617a459d1f844e8fa4e98ad47e651910a7eba1d0464907df4b5fde34d79e62772f3139858d7d3b3a76d30e3e0fda16e70a3235f717325eed3afc4165b8d0e2ab8aa3a7525f2e5998a29b3f022df88cff60724bdf24f5629a262fffbf84f4e5e388895d62b079417f8e47d976bd72b03b54af63f3a68bd8ba7cfbf327871864ea12a57a49e25eebb47bdb8b3b0f5ed1b9cdc67edc9c7703903bcfd2dd067cfd62569da9754f080f8599ed7ce5c7d07cca426c38cd6f04e7f25b4a6d34cc3861a32ee9e09166d677fc6106cfb3973778c07ce74f3b0f53efee35982bf8347499f98c59cce0edd0fafa8088a8ee8383ead14f2101d4e543b0de533e6d2c64118", + "0ec5168e14d8c2ebf06b3de990fc4c1a331c87d5319a03c0e4b45849207b39a73c272d42526bd2e7d58d8fdd4f353889e18bf8587f09275553cd20f7b0c5e216c1af43e349f9c777010d07f584edac6716e290f82c694dd27b915ffdb11adb9d759d01612be366b5ca38893ab76bfefd7d153dcbaaa66fba8e8b441b2357b08b33dcd02854537cfe7e73d6b5cd2995ff6055da46f55766d2220a2a8e09a20a2eca8324edc67458ea72c1570a07d9736a43c2ec7e09d1857b165885252dac1bccc922ea62f774fce85b1372dea05400aa5ba18f56bca0ea5a4924187e4b4377b237b4db1c50a4299295167e9ce5e9305810d16e458decc35fb5f6be16a70db7cb2e0915b92f752861e821673106965889ecfb6ce479d84af8c37af8eadd0d5ee9fc37984a8f29422773189d208c8bea6b306d9641529aefc04d66b0107519cef7c4ed8477bb8bdc0dd647bbc27f89e0c5c8ebb1c364f50a686c74c47385fa8a4312a1c276355a364ffcaba52eccb3471c3b090545ea349439447dd603b37922", + "7a6936dc705648a19765155f0cff89b8bf874d315486bd8306ca8a036fc9a7d9fb522ce499080cd6aace1ecfa59ac947f3c30db64eddb6449a7fb11a9842d6da0f5ea76fa5b3a93baef7e1b09e", + "03e405a49f8a66ff92cf83fc89e2bae8e44d721ba1ad59cc0ce9e88727af955d2f2da7fc7737a41e392dddd11d81d96d9b0ce1e7f1a37ee9194fa4d11e995b425eee61ee295fe420ff63dbe5a551b2b6515d40f37d3dd2364a853c1c7efb752b6fbfed59af6e39d6673530bd3053169fdf734134fe0c13f69910161c4ac56d1093d6bda6770c0f1fb9ba8d11da2b9f4e32e021fffa8e9623ec515ea30cd1c292bb4f0fab498d45d0f7d8ad6bd3d191b5eec61875892071739ddd14a142d655b93c3866b9577ab960363b1a2c11d88fdfce1ad95d5f4d391ca78880194d34642b4d1fb58dc8bdc7330f73d17db722eb998e231412532f2782aa8e541558b5a82c812c8acefb8d74e4091457e9aa2c121e36b71dce4047d5f88cb760ba3090bda607e2234f9cb11e15e6a4ee06d604b732b5b5b0f1f8169f9f9646f665c2f4c3d2301372148eef89251c31ef94dfe74df39fc9726f5528e9e3fd44924757632bd6d8adc67157a3617e6e4160e6229fe5726378ed9746f45bea17d18be1d81e1c" + }, + { /* i=7474 cDividendBits=930 cDivisorBits=402 */ + "026d16425c0c07271f4a0eb91652962a5cf0b90053ab539b42d1ae62e556c17f07b84f8b8775cbc18ac5b51ac3c113cf6a873acbe0be91e3690271f6b74008887b1576401f3f2e9bd7772a0e73ce43a79ff11f8cff657832998aee0d0185204eea366b28bbe30d71037482becb03e0f00eebc4460d", + "037112d24ec86f309ecbf59e966ae412976ffe3a87596afff8ef5906407fabaa060ad7428c6557139f39cc3cc27e6ac3a9a1db", + "b475ae9703800107661747508dbf37e8faee429afb138f8802120c0dbee1617ab3db278e911ef52b24c57412f5e4f2eee6d98e4114e2e5212ae18d00cbc0a9830299", + "01c2c0879045362bbd2a5a587bec77148b1bfd855b5d07a5742bfea13bd421450ab77689a60745e984076b214763d1420dd42a" + }, + { /* i=7475 cDividendBits=2131 cDivisorBits=1197 */ + "030249ef60016a205784b71e6b18ef45480fc442b3a8b5f8220d57934d9a340cc1b0ecc5a2a55bcdbb53f63140d5a89b99a6495287fac609eab459d4ff971710756dbfe515e7097f4e2a45731d6c55499020e921aa75de111667122ea5be43462786be6851823e3ffa015c2c02995b824419f824c5c79ccaf1a8023160533ef96018f9216ab7327ee04b197ae6dbc9bf17b470e41690bbe2fa7ee06e26c1f73d41d815160ba39a82eef8efd1ffdeb9adc508b7913ee354827085bd19628a42ffd6c56dbff4669ede3bcc06d8048539e16d18c459efa2bd6ef9de2f96637fe465913b8ab081a8e61bf9fefbcbe19ef899f56f92277cab0532ee573c47c387a9d371fffba122452e6207a56e", + "038f8dff8894e83c0a7e10dfe94b66e0d95541364ad487f3a949e111e7594e10907bba4d5f3f510fe8ef40b0cf209d800a4b177b312a43a03f392dc3a0ca4351d0c1aeba91f3f53f1eb6950b492d551fdee4bdebae155b63d8cbcbcc9f236a5e994b36dce3e6adb3ff17f1a546cabdccb340faa04f6f01fcbdad896838564705443a3889469010b58e55212b2e2a9dd63cfb77673662", + "d853b98f0801b0e9be54dd65cd40d2926ad48d394aaa8380a9125c64c81117d9ddba429c1a27db064850450de70b5090831bc69c56c44e212a66461e3bfc537ba6eebc337f500a64d139f364794538861163dace6b2cebe34b6eb6d65206fe4bb20996f1b89e7788e09667a20e007d073d1e683fc9", + "01eaa7e1dd23bcffbddcb3ca1e1ac08480fc72d002fc221e73ad7757d2f6426abdcda584504558d3940a20500708c9e51ed4ae3c8d479ad4268d0ac0a14cf1dd49f6ec5bf9979211f68dcbecd966d8267451f24ff09b92ab7e49772583cd126687d2494c6a2a646366d757a9368789144b6d963a12227e973827e6927666fb3731cf9520f3b5e6276d2d0461568ee8d543b3a7cbd47c" + }, + { /* i=7476 cDividendBits=245 cDivisorBits=105 */ + "0f690df6aa9a74e5fa1a7906d18d4086f463de5e30c12a397bd7edc66b1ad1", + "343fc044d5994e353bc77b48f3", + "4b813d4b923ed09dfbe54c000f721b16238c", + "19ae1b2ab89e15b076ee23fced" + }, + { /* i=7477 cDividendBits=1272 cDivisorBits=1259 */ + "5084864b577ccc98d9d8e57087759d4a003bc0987488608e1237dd132bb9e8c4f161fcf05f3ed28a1859c7f6e9af69cd57701a9e5fdc65da02eb004962d5a0872d5618fb730826680b1109445052671582501313b1d03d25d4ffbdd891d0dc7e5b2958bbec2215497818e62e011ac1d27c9a8ba92610ca7dc31df14ba622a59a6114b3056e24745ae2336094f8850f9edf6b9419d1599ab882356035ad2184", + "03b51fc51a907188b067912d337425fd73060b3660cbbbb4a1d9b02021431eee07c3c77684952f77e877ab1a7ebbc4c5417712c695e0368370e4e73b90cd260fd3beca08dad8af83c965773e476cb7d27746d96912c25d370f3b083d591d527e2cb4146591a2d1342a94997a1ba01b333255b9b25625d367e8cc744c50aec763e24ef41f490e35a0814febc59454b47a6960bf3ebc1b67e08e15b53fe484", + "15b7", + "02716a43a63b39ab3ff3f3ff2678576383831ea4a0578eaba9cd897971642226c5aca1c63b48c54f5b337a93b00bf5f6df71e81f54a619ca70671aed7edb057e5223d52ad0db2150c6b8eaef589b6a463c980b0b75a6ff3944ddec67b5222c7e6ef1d25eab8875af7815737339132dc2970849996168d862ee3fe67a1f59e069d43bf212c0e5da8a34e7d59089b490b927bb3e8aa27e0b54dbfd6741f328" + }, + { /* i=7478 cDividendBits=28 cDivisorBits=26 */ + "05a40c14", + "0376b65b", + "01", + "022d55b9" + }, + { /* i=7479 cDividendBits=3399 cDivisorBits=2387 */ + "654ea08d8f2362e4582d13363f30daaeb3d88405b5cd34c7a916150539cf2d4c8343a5be5f37d75bc90abc9fbd52e19ac4b2ffeaed686b8bb8b7f0a5df45703694e8b9517af66374ba862d543cd08fe2fd228e3ee5da96c03b7a9daff6711b772a7f42b6bc228d144030da80ffa11ec364d620d24554f7ed1795cd22edee34c2bc6bb951c67bce24becc3d02e4525fcdf8f3fc3f2655b4e5774579030c9c739650216b2d8ec862d71887979c7c0f9d08719b531f4c5fff72e25b0fde784762b53450b101289bb2b0d6f40ce05b5aa541c6b8ac3187344e5947058276be58920dc94bc3c951076efd69f349197ce886be1db65e77d2d7104e3b2fdedeef03b3dda09dd159d72ab90b4be762c34bc5c2016420cbffd7fe888952a5261881957741b69b8e6aef4d91e9249232478416aebd03b23da87f5acc6652d1254084c6fe33468e2bb04f232b0d6055c1816ef2f0cf194fd3760e12b903d2aac3575656aeb84e14ffe27ddeb53467e8fb16f8652b96d946707577a441c035524d60b86f4366fea556b31dcdec357df9d88ed89cff1a3bffa8b25b6b446cd2f4252895f4995e3119bb3ca1e06788e9", + "0751e59424d1ad70512e1e5246e2af3b30e75e78b3d4a256f18868009e4a02fe640c5e8be5bafacbd8e3b3236741e96fff515abec79c63de986559086c7dad9f621d857f8a8dbf7799d8d9662f4416a45710e2080578a2c30014dfa94231964ee952e88d4d7743836b69e3a41d2db9d488279dd873fd7436796a11f1a3a7adcbf4db8a613437943619faf335f92a3fe2baa7532cd574f5c527817e65bc98b55a87ab9818a6bf21b2e7a1ba0a8c7a8e379ffdec6c5d14ceaa58240b24a467b857d66b84ef80a1d22d24cdd9deda8b97b9dd5317c739c39dd78b9b883c0f909662a0b836274e609b205ea08a34b089439a98436b2a2bce59e07044cd9cda120b9f8c862aebd4b607e7b22b932d77917774c7818576a3eeaa8a1c86c7d4749ca9bf7b600f44db2bd50968bb52", + "0dd706966595370d19c97950e2e788ffe4647c6246eac8d4866368e7c4e909efd0b88e1a10a440566352d323f6dd7e55717a8d4b5f7490f22244e8a137bb251d468ea0d482a18920f5e92ce965aacd6f89bd69e55c13964a7f252d5be1242ed8196ec7915f0088e209ee2491dca7851eedc609ba9de7c3842b5ed009be94d3", + "6ebc0032502a5f96ca440542b6f952254876dbd0620caf500e43c43497526609afe6090a91e2c9d044476f61f19256d580dae9afa1fe2454a924563a0c5b3a7354eda20f76e16afebc25cc49f19ad6affca6f22634b21b4dfa78fb104144dcc47b9efa5ea5cafdca551e8e1f29fd0d6f6a47b4f9db761f09d0935093030aaa836147d6cfb2e49d8caf4d95d3a57e6c73e10a5c03926f95ccf03796c98ba647f894611f0e356c7be550706645ad0002c5e28002215f2aec296e52f112b1706cbe761160192fa413f5b213fa6d2c014e9fd7a7448650d13228d0c636008185b1ab5356fdeb071668675ac25d27fc94886875b1eef44ef36b720ef48d5ed505cab8b74d08bcbe102ea2f3cfcc0d580f0853b2ddda794379747a1b740db2b8f336b97567c5a6f9a9a9edbc53" + }, + { /* i=7480 cDividendBits=2510 cDivisorBits=782 */ + "206894f29ac031eabf98f704a69ed1bf3a1038c49b32ede0de5636cbfb63314ee3cfad69cb07c616564374a2b15903e2c3f5a918a326dd9f03d4fe4c0c8e1ac7184097962d3748fbab382eda9b5a4fe7eaeafc54bbc385e8f67b145e4ca7f32097ad685be5ce54f281109ddf5c11bbb992d0a1bf61dd2ffe48ad0ba3dc8faf2c9f639cf84c080e853adc2ee82bb79442244c5bcf58225723d16e3560b47b5c57d85d51d680055be348f914e035bdb35948da79f7d06564065d1792666aae52b32330d3a99a19b42524564ae906d86d5c06292e0588d96d969b98f7e928721e236326ad13a02bbab55aebec711db28c3e189f746cb62e81b9b7b5f3f688195f207cea214ca7c0e9038162a5d70a4869c9efbb18d9f385e27d1234a12ac7fbbe777782b0f62469f6dbe2a72573be0c0d7f6c97ffe18474b4b804ac", + "1f274c8132850b0946da3b5a8074368e8faf159c51a69bd4219c237a1576a37ed92279c0b5cf7c5595cc20c4f46f72750d05dd5b16fab3000b83b9cc80a9818351c6c705633c068d2a40386c2668c13e31700c9e331894783cf2f0c76140ade90845", + "010a501a1439e07d235ed1384c40d22a5936bd1457275ea18dc984d71c5ff4f9f3cbc0a475be732be83001cb8b448e9fd30b8cafc281d99fdcf7b9f8dd82a597e08b262bda45e6ae481e156b48fc26ede0656d8a3338cfb7cf3f7319c64d8a68bda4f36a50fbc8d0f604d83395ab6edd629b6136bbc4cd4849ec548d1da92bd441b5790fb9cfcda6783a6fdd0f289ed80b54dd2f4f3d68ef84d811792f4b6aa3b45e187b459dca3e31d19183926d5793efe9fe2c936afe9338fc7e29fadf4f042e295deea17f931970557c25f5bb6a2ed5395f8b2cf20b2dfd", + "1aa53b0ac86f9988e1a617cfb680b2eb89d64bb1e8355e81b15a6b297e1d20617b34f1b1b5bfeb3d90cf24cad3411d5e8b18a681d6856ee7804d733ab31c8032fdf4c2c162bb8fe6761874d63e20050f26bb3660181c62292066d26a634649ffb77b" + }, + { /* i=7481 cDividendBits=2643 cDivisorBits=146 */ + "da17726ede219b057f7d7e4367673739c4332ae7bc33945d8f3d7d671e44ffc885fa0ecdbe0251d54376f68d99975f72195ba37e08cba2913fe5d3a2dfe827cad210005ceaa97631df0f0bda3fa113ccaefc6eddf91924df527b6c0d85edc1275f29c32db684b1a7b3ad7398bd4009bfaa9e1f5af1134298148f482fc2669af9ce657498f0b48cdfb25e18dd203eea07edc711a5efdcf250fecfce845eb17fdc0624f6ccf0c846b713e1beac92b5c421a60f8dc8c96fa6520482a5a15875728de6e73ae0d40c59c7efe46d0ea756366234021261246686bce01502d89b03ac829f0547a01b03846a09be8058f88e834fd70c1f52dab876315eaa36554ce031b45495674fb010d13777e4375be45140c1f02c8737ba38e1b863366595d412fb140ca2f82800a77c314d12a1d959807b8920d8ed33cc54465bba28649c5dfdc25dcf72f5f2e0402236cbfc", + "a8723ff21bcdc7cf48f55c4b26310c3edd59", + "014b7315ee321770a29646f5522eca646375d8421567a327e1dcef461d4ed048e546fed6cd2d857807ff76cafe24a9d0fcd0cdeb09502399f4a1a3a6ebf26bcb21f7778eb264262876057495e9f7bc5b8526e35f878e70a0725cd35427dc13f6440b0c9a07d2a2cf85d07a51242bd8efde3b16cdebd6271583cfa0bdd4db7a387ef10cb0e52351efd4ecec0e5af93c11576fbb65c4368df1e5eb5de6694869b215a82aa392826ca4799bdfb5154516450291c07d54229da513def2185d38fba477e644f14e31072e9bacd0ed0fc5857e968ee4089c87c5f724f4d7f23b3e9ddc850bef33c4a25110688d165b32168a119d992f380603c974d4cb23ada29ae1585964a451a47fa158f567539eae2d7052e8fa90aa6d7f5b6fa661d5a72439647892ea9cd2ad3cb09b25876164415bf048f3d144c02665abfd7c", + "335f1f01b99ae15d84c5b43a50dc1b8f9fe0" + }, + { /* i=7482 cDividendBits=2194 cDivisorBits=982 */ + "035e4706cce65537d53085aba9d22b1c4a904e8c058b6954cc6ad42db0afb3aaa00f8a17a7a431894eb754478c73f0c2953777e611c71e8d92ced0a14c2a820f0ab9eff79dc10b41a0c604c3976ae5554369a5669b498819bd20d7bc0e15d3a989403b84ea122411697fe6d5460bd4fe7c3cbb80c839a357735f591adf3aa464fc5423f31305d90768f2e8837c86335edc489f36bab172aa0a6c20c0041432d524811b9ca624ca8bb5a5d252a3742695010cfbcf1035a5c4a63c6443a149502218a115a0c1709f1a1f8f78513ba5ab3377775458ee8016c5ccc5071a71e42e140ace770bd1a2f3f9f7fdb04f53f0fcc7678948b6ae7d886dd32cc8202c7ddc8b20cf66ad6050db4a98027001ead79684c70192", + "255edeee2ba1e2ed5ab8da394477e55e334a3d660e08da04fd8c3a87fce607dece00bf8a6c6c86f3ba63b229d5ca0bab925eee95d40392a0024da9f36797406c1f8d0b5c700320f26d25adfc808521260bd2641c8e91befbfdf3ba9866ab674b4b9343a20565c77beb64998e9ecc03e53564673a39c0e2b47f69b6", + "1712dd7345a0474dd29c92500e32ec59a1d966c567b155034e6591069431600899a7350a6620d38bdb193dbb65c364cc612fb1a02f3fe9b07822df64097de0d5184f6e647c54aec481853b8fc0ba19ea293b95e2abee7b40bae1bfda1223f2598965aa83949fad2ffa6db91e750cffc1fa513ae4d532ca0ea9287f5eb3735686b1f67cc4ad2ffabc6201dc4065252f301c64caceaa3952fb", + "1cc24df16ec669276ef6f44d41f800e47404e19842f87e5090938837c20bfbdb780397e5600a7ee3c9bc9641dbdf67d95704fe9547f3ea6a72772a0d527ddf7428d9335bb03556ed429c6ec913af23053cd2b9355a28e0f0be2bdff8e0c1be2a1b3d1abea003f0f71f4b9656bf431faadc6951f222a27956781020" + }, + { /* i=7483 cDividendBits=1384 cDivisorBits=531 */ + "a20997e5d28108759967af075fd9b19fbd5a9bfa165ed14c3530031950ce294fb892bec833c1c1ea098ca526c1687cf5ddcb40bf75b0c0ec4277c17888600c9a0dcc7cd52839385819ad3e8fa22de200b180b1d59fd3e559968f9d17c49cd3b07d38ce98a98ae326eeace97dc2e3d9049a024ed32ba789c17e9137720e441a7083153789465ea76efffe69505967ca50090d5b2e06a5349f72d27d1c1f848295bf0e1327bd2b27ec65d4d8841a", + "0238a9a0171cb37a43b5f2e2ea613209e1f7a1118032a46f0689d1973733a03302a9d89b029e58f6cce52bf39e6d78bb42b19aeda8e8913692fdb7bead8d6492cf37d1", + "48f225267a1e6115efec79b537b0da60132c12a35a763798d40d55c9dc50a0f24ab607e7e399a7883ea5481b2d659c7c1882cbc7ff7ac4eada7b62561385d0a2354841f6cafc0b9ea2dc60dc3c5f35ab78f6dc313fb0e9bd7a14d7c1f39a210bc40ab16cde6200c194f6d7", + "bb0c4763fa85d80b2d8cee28f9fb2b9eedb1e23d588fc8b225bcdce3defbf28550f9da120122b386904d65b6c6435b1ada398da987adf817704fca186cfa9359cd93" + }, + { /* i=7484 cDividendBits=3316 cDivisorBits=3312 */ + "0e4df6f025ea0e13309aa1b74eb4b8c0c5f991c2137d46a2546b01968f2f3a253a5d3772b1d8fe6a4147f4a91a2324e58a7bd1e99f6dbdf504fe455dfe982eb3bc9cb1a1fbdf0619e5c74d0678c6f4ed7b1f960c45db72b73ea9c30a0d05aff52d8d1f4fc68960ad24fc0b2eb255376ab3195f5dbf0daf789ed7ee33c76e6d9b23fb51123629e59e4827b41fc46475c395174728734453c8b907ef41546cabf6902a2b8f2a628b3bbf04d89f1d7dd64aa081750d8866f81afa71d50ca48b5151a0bf872c2d85b528cd1f8bf9ec429e503ffa21b708983d13f6c235296a3101a2e9d12c5e6fedc0ef09fbd9f81ce460458572cf6197a5be6edd336c2704a2717e2d704cfd5f6fadc1e7929029151d42fdb7a63856d0239ff711f9f13fcccce9e73063b0e46e465321e6c4bef14033bc6d4c3c1e758e00dbd03bbb435a7c7cc02825031dd3a0b408b474f52d3cd34fc735f00fe6ad889147dc7f09b543e462a8474b8750a9270707a4aa9f790acc0a93379d63b60e519bb4155018b5698710f27be20298a5a3833098cc409933a4529f0b901093e31ced6ff606083bc1c4f7e1", + "fb842eec295b7a32a1cb8aa1fac081d8e1759da095840dc25d8b7fb71f7df6169b8c251ffdfb4c108268aa70bdca2e6ddb05c30cdf329dbfb08838c30a814e3272a609d11b6f7d86f34d718e76c79fda3bc4d73f9dd0dcc07791fb3f6d843be7954f6b93a208fd318d05fb2408e14c79e40c1a6f53a5b628e7987925ae4d86ef9ed11a9279e83f670f39f755807c6b6e863001a047b89e07850dd59debef5960c750b2cd9a20ecaedec86d6e364240dcdb2d808e57ce7f414340273f862a91ab98c69050832a2d8b306daf944cb64ac2a205c4ec9ada021c01821dfa94a3b718a99c22b72a39e6d9d50fa54180bd89cca3f54cdb03cc4c6b17c6daf17211c558729ba0db6683c0e893cc289909deb369ef6027c076ef879d1a5cde6316c98d5f1522d6b833b808a694f160da1dcd4b0a68d453ffaa6f0f171635640b9f76e918586b07c9dcb6b42a74d7294ba1ca0eff5b190467cb858412afcedeab414c1edabfe399d9b5aea15177dd08bb5af0003499ff0b7e603806b5ea5eeb0618a503b9e6d124870dc0bf2047a4ce027be744978df9e08836f7ef29f85b02f3168d", + "0e", + "8cbc5f3ba70d646bc1802272fe31a6e9a523234b500de1b34d609a8b7656affddb8d6af1f540415a263b56efc2165b8881813eeb38f9548956d24354051c6cfa579d188c5eed3c847910d0ae480a2f8bdad246cb3a06a4b81fc74c950874ae8362c76db3ace2d46f45b772b9d8e53c08a0b5eba87a9f82622d9793b7e6303a094be19e337f3226a5528899175da7e389c0a711af583b244fc12d92b18595134543c1c7ebf4be4a2ed5e2a3168636be8c84f805bf99ad2568c452e72b34fd5a3e64ab47c65966ab30798c5fd010a6399b1dd0f2182050f66ead1785b6100d9f908aa2786b9e964f2054feee87da02bc547b652d9d70924101e68c2dd06578b3572bca315fd479352f7d65f0b693152dec8ef62a49a2868c7a88dd16618de42bfd3bc9265b7242a8ca9f8ba552928252ba8081dd92aec8fcf88457e1d9c43f68d02d436696a20ada229168fab076ba63f914886fdb6ffaa3796c651686d07e975508de3f3f177ad2361162908d117334bcf7c36d6858a3b75d47848f31b7ec47b76328a640c2a625085595ef818bf94b464ce99ba9ebe0e1ba73419879bc2b" + }, + { /* i=7485 cDividendBits=3107 cDivisorBits=3020 */ + "0385b5314f957ad12bfc9cefe11f6f709eeb3eafdbd69a46cb522749776bdc94809a9c7bd2f541b26b253fe95ea1c556a0986cc7a746149ab79558a81729810f69a41c838dac2f9f0efd15fe523fa52adef54baa7bc869ac5399328719eef623bf50028adfc8b001e6ef752a157181748ad39de032fbeeb504ad015d358b2f80d046e4af96818f8b06b6e582f2d6e0db94c7fb3f03ba43ffb1ba398c321443cf60a50920ecda5666943a0f49cf6bcdf69688c23ec7e3dd205c732a8ee7b47c6100e845df8eea409ca0b4bc01332e9822a6e258756555f7c57782c6fb733f2e316c09503e7bb07f5c3fedd6e64755fd68d7746eca7c3a5f889129bcafeedf33fe64c67aad8c8e2e98019821536f32cf3bca8c5b0ebd928be4c1da487c6451144c6073146fdd00e280039a3e1a31ddfb7b99867202bec25457b0a3ca9650c77708565cd31a5bf126f453d735d2e7d87cd27a01ef98af1d3f924ca9a7b6f7edac585fd63e736bdce78da87713fcc1147349dc4a59b2adfb4a474a754a99d137ab68d664f80575", + "0ede3375e0b82d6371f9fcd048f4fbedc0b2d5503b88c06285e518cdd8230f98ac0787ac2a08fc5e482407fbcd2fdc36b21c38a6761fc424acabfe4dbc543c8b4ca42092cda83d49c08799027abce2e9c11566e9e4d2fd73bc49c9018ae198ed0472055bb884c6109f83f67ca9e65b3f13c668c7655468017f4abc738550a22da4b911cfc63ac7c2d06558dc8d2e826d3e2d805421d948e9bd6f0782e19a29f223729d15de7d4c98c2a349f56265826e72e9bb55061271f65af3e76b364e86fe175f44878c8fd480cb3e042d8c279a66fcf6f43d354c7f9ca22ea89c11634647a2c72e478d1d2784353fce7e65c5049be9ae810f2e208cf4678582a1c5c717508a7f7536209b83403430143ab0baefc6169c67a5ff76f43616302fe713f0db4b3266248fefd451b89125f56ef54063d50b5c097a6febfdec80808e953528fad2eb1b3364b273cae42b528cb8a6e7a06a042a6e172b69fc381fc68ff8886b86cd21d9507b30372ca3e308968fb8cd50d4eb097b1a2872b2c05ba9", + "3ca5cd2c709b59b52afc8c", + "0ded3dd1bb65965630304ea98051398fd999a5bf5cb969754ab6a33b90f3ac33e7255ba300f1e4855e10c0070a2c577356af18ac0096c356655d96e24c7c4ce11844d7c9460ce68c05b99d5b2cf223f6171ff14c19161a270c792e9ade5bfe2d276a221b118838259557e3b96dd8142cb4f8730055b1a924941d50b41dc1067303681835e0c94db4b9a08c205c115872cc51d290781215d8a6a877ab1beaf0886c711c4d84ee8a8925ae142f67337ee50802e2f3506abccdeef0d409a92fa4579a0b887bf2823bc36f7d8b25412cfe65235ebbf8747114e0d39c4d6a294ef305be6b1aa1cf613255487db5c105e8f32938f3514ddaf092eaf4e5e64dac4d7d7e258777a5fe6f046b9847a305ec041171c2a89abf053f5fc53d2e241734aa78779994ffb73ccdb4fb5e4953bfb89c8cbcf04642f557509a2f445412f52ee8bf0fd64bd2b8c045a7c9d899e64f89c9c9c1cd46b609190343ac798db36096bee29bc2d9d19c7222ae9712994a6849f5bfaef137a809dd08c2d18909" + }, + { /* i=7486 cDividendBits=3258 cDivisorBits=1594 */ + "02d0bc2a9127926b1bff17723c6c1b285f1c8b7e3e86cf8c24c2c24f72bbda637a7ab48dfc0760be8ccf501dc3a3932bf78d8eb364281a06edfdfefff9210db7378a4882360298d16ae037275af333f41976ddead3196577b7a86f80eea6f0e0198db38d733857e2f5475fb996ced2a3c6e44223bfa142e5abe8d302103f98d5cb15fbf39b0b49869937103dea512cfdec46d21d69e4c2f5a9db3a4ad9c7db93c67227674610f67d9d9301f1cf62ec49e62c7ee1e1fa8aecc69a0938273732baaf73ecc9fd787f2737d3d649362ccca3403dc76c90d0c22f0c00cc819bddaf5ab0df10b1eb880d08d71a0a60e07172e366514bc6693799ad6de789a2cfb2fc7470892c47f8b5b0a1bcbdb9da6e2ee9a711fc9d8ab4499b05363979288f7d4e565e5f273d8309bffb6103e5b5ceb7eda2aa5493da51cb59f2b67959dc8f9b04c21cb0139aa4f59b93e566e3ad3b903cd365af2091d268781a085f43fcbdef8c0eb81d8150af61a53cda20163af1c1ee3669a2adb58c1748687a2e20aa887d3d5a49c2a39c37229163e6a116a4bbd6a3e96700ca0dc2d0ed3d", + "02dbd507ca38196d263036d99a6d7f6676016754445b8db0d564646528d9535e5e0f1e28c6cac9542d3c002156f26be10f03d653ae2e2244f19be29a2e61db7079fd7682d5c55df67c9bd837b1968c34d21a2c537f78433dacbe663aa419a5657ee5023774f1b70be573a6af62d05416a7119bd04eff77c273de7c395290f1a915e0a514022344f1b97c41f33bac9ff9884e63e2459d71e3e37cff729b25d652e54f9f05f5b292b2f5bc8c84e3ef510128f340cd697b740b66c5413851adc533f302e5b362521c46", + "fc1e3ef1391829a2946a7bb39aa9ad1ef1a44fede818edf4fdd44b611d8dee2ed27fc9679659d4c5ca697702f5864257e4c1400ddc59826d57d672aed3422bbd204460204452b4693c8c58b3fa48045bdbbf1fbbb9a27b338e17f6cc06ad7b3f6334eb95aefec1db9e151aa5490a09c005e998db25fc2c4cfedf5abe8f4ebb3b5c2f570b9ddcbb0e4fc45d81d07f2ec5db2e07316e29dc249aafd30b11cd616ac79de987845949d087d297ad1fa669adb55c27211e6666cb5ab74aca3e90723d3ec739164dfdbe3c7adbd72bd7044536", + "016259072d54f1701e897dc3b74465450f58fd6b96528d9a7d6a37111254c82594ac9573b72b301ba4daf377111ac421f73413fac3fe2c26f09f23ba2a22177f90746e5630f4f55920c000c933e3278158ab23ae0eb8bed80cb3423831281f406415c1ae1171547218eb38f453f95174705babab631a2520c4fe775e5a14cf3c5ede63b1073f696d5446a179363182e9ae89bc6c7d1e98a35f186ea4ac31020d11dd6dfe293f10c99c31a8b24d2b1381009ebe49bb9d1795e3200ef7bc01c0ab18aef3eda8c81879" + }, + { /* i=7487 cDividendBits=3310 cDivisorBits=1501 */ + "06d026631ffed78da72fe059eb821b5ab7721766c3303f05e5bcdf859eff87f519f2285614ba11345c0d19e349740a4864b56e973efcf4ac6a356309f9cc563097652fcb6581ac34ac4445f3cfc291c57103060be253665d062cd2756873a93e4bc8e9278e391b478f303e43b6b30c3f4154f51393b7af018bb3e1dae54e5c55b5a6628c4e7ec7e70e724b4483a5b4e5ec14e7d8d5a35a448baa04f4a4b6e0f05b1607a5b6884fdfa5d75982a75ed086d97a9bc409899e1d5a0f93fefa4bba67b235e630069fae0df38907c1c0496d661ce38a5db6cb2fd3fc45ebb2f02b4213202d321912dba603e68c7c7957a04e39d75a5341c3db5fa9a61a8d13f0aecd8541e9a99fa31263f47cb37e7eaa398fc7298fc01c23e7f983027ec503498db90e5936ddc85745515d274a58ab0a3df6472a508156328eda34017e386082ec67b4b145fddbf5e490155f0eb79f8eb0061947c188b4b95d808c0f62a85f51f289451590ac3d6ddab27ff8f43f883f6826c6dffda83bde9781cbd3d134164636a8021c69c78135cf5c7eff852cdeeadc25c3b45cb1af7df3e2ddd73cdb935256", + "09c86d83a414b49e777fd9f84b3bd958ef43f85b53254fccf77aa2fd2d4d750fade22b87ba6e9c2cf8f617f8a84cb420baf01368e9fad52a58f5f669e4796a815a0c7b60bfcfd1948ba6d2a8ce0e498f369c8d566d21b080ad55696b0a4008db9c057f27afe726d458add78770ac43c35480c8c3432d124227cc5bee7a8c4b83aac5b31456af20ce1c8c92505ea8e7df1336a96438ab230adfb4aa331a4a5effce48770662cd804ede467826f4d40c0880e7aeb30f174b58ac4b5d66", + "b24902493dc7f48f7e58a66b1bcbd467ff75dcb62d8a82b32601643a9b900f13915f029d86895ffc9de661af3b85b1428b852fec154d20afe3d4ee6a39791770016630ef23afd64bd784e3a5f45c97a6f32120b7da60e1208712989e0ec7cc769c719f819da3f4b2cde13d991931383d429eb0fcba243daa43fcf3d8524d0101dbd3bff981eb1dbc0e8f31f65ffbf0680502a8ac3e451eaae1c397f94f3d36e32601faa40dad49a463261230c3183b6a120c1e4893352d273154de381990d930ccc8a19b628a5c3669160fb8793099ccea2dd559f898d9665cd5978a77d1386bd807", + "02dbe91f28f8e75a8302e25217281a7b9cf997f6d10a2b57131d23e5a272d4e07136197b428b95854967caf959d4e9029b755b4758e351673cc7d3fbdc3e31da9020371f003a372587100342e796062cf39aaab50620df0f057e538b5b3823c356c6215ccc543abf301c9eef6552378861fe9128052eb108fa36e82c8322a79f48ca8e76e0620d5cce4e9eb731617b7c8898d4022cb53b148c9edb36bbcba005d7e9cf7eca076077fbcec43429c18ca8516ccd09b8f9cc3c3513b48c" + }, + { /* i=7488 cDividendBits=2115 cDivisorBits=1260 */ + "07b4bfb12a2870cc0614f3c083fbd1effb35d2b143350024268b42502c17dcff63103161faa1761e2c81af81fcb1d7a34e784a8f2c821a36dae36722c7d1e24ddef6fbc7e01fe860d397e2e75e0f973e4f54a6d636170013e6674e0ca197cbc039ae926b95e7d1b692c7cf657c9c74839f15a2b95aa41d467e13bec432cb9898f75449f8d4a065749c1b85a4bce0903cc465aae9dcdce6da7ff227e4213a62bde905a6704d2c01bd2c3f46832511d05f9dcb9aa6c60125de004d6cc56f238adfa62df17f8e89d48af29e4b83f1687b64f0215f390e5af5070678345c02cfdfd4ab2c8f7dc89a20b2fc465372b0423a3d1deb0f0c61124f6e552256dff4f13f5e6a0e2f696d054ef429", + "0721665a190caf74daccf8de1b29a93585c97b5acb108fe4de0fa491f2b60beea7ad4a9a4ee8bb465ac07b58646a52f4d6ca2ec12a29dbeacc2e349c7873ba70447cb7975bcae1139109c0fde12b54a006d36f098b96f1033305ea7fa3cea93345b576db9a59f61d726ef9de7beafb5fd74e03e0b69248fc5fcf70c35cdf9f1cdbfa6ff0e4191182cce119b2fdf1d79d3a909a5d82da805bc1c8e863100f", + "0114aa29cd068e046cb64531f7752252526bb72b2e0ee2fdff5355ac641d287c62efa0a391d0d9e4101f234a7c038c04e055247977bf47f889ae37090297950cb05bc22aaa72bf30258aed0cdbfc713844b42665bea7cf274fd2010f7325ee80dbd16f03630219fcfb42c334", + "048597acd59d370a7c56bd93544b906af7c323de79af2ae55be90a0bcab9162cd0f73cf2c1a563615bd3c02385d55860b8cacd3f9962b9befce1845ad18715be0029d985b08b550a93420af0485e693003cc739247a57952768634eba9bdc5000d6fd20a840f03d1e228ce5fec9ac2e77575c343c247aee5ef85095a859a83a77eb856fdc7258f6c1bf649c86c725f6fe4163f5719faca17b38d8316441d" + }, + { /* i=7489 cDividendBits=231 cDivisorBits=86 */ + "31112dc5669b206e583589177027428dc803440190a02177f7d721155a", + "096a2ea00a9633f856035d", + "053632db7a2e0418f8d49c173a659ac12179ff", + "06ac2c3887b74145dfc6b7" + }, + { /* i=7490 cDividendBits=4093 cDivisorBits=1923 */ + "1b294536db211fa5d26030ae2fe9ec9acf39cb6a1aa98b3604dbcee3e350f4a8e01be4c68dbd203688545f3f598f380021e01e0ef86cfa168856a6d77260ffada307f7859522aa8ffae1bea17a0a10ca09abbc1bda71ac8a6e9bdbc1fb566f9f80502197fd6447a18c6b0e7415d42bce451733f42d9658a868f54d52abc3d85d1e5033d73733a14a732b006370c947d86cb09f9488156a8b00fc543ecb99151bd14843a3cad8b6acbaae6d76798b4c4917dcde09a24b5053347ae538e684fae7ffd1615d7251fbd353feb18392a9bfc5bc7efe0c2f1589f064488ab2bbb8b779b9269a85ff75a64a53d0a6534875465ed480e2e4a50fa3f6f2ee2c9155cbca162220e643873a3c2bebb64e923086739e0c718260f9c9617e85d673f5a9cc76e9b5b4aec64598e98fdbbba5cfb4df08ed7871f32aee96416ca3c23d06aef25d9a1507f8defd4639ad019f6e1b2b8526693b67b71caf8535ed1ecb7154945363d47edf971cd6faefca9568e1a44e20dde0e8822dd864b6fc1331f88d52b654cd6e3d567a13f9b13a7fcb1454565e864a13846cb83163186fbe0b83e2066ce1817df9f863081140eec70da1363711ca9309f028cc57fe6e8588323c4d018c37195075e62ff5692af607f3d139dab6f39bcd60a4013a13f3067d446de92305c86c33a8f9821115296fd6a9bb75c139c705553f1ff90a2ecc34785a138a9fda153e61", + "036d35a65196b6096879c16d60fcfb7a682578727ca3fdeb94a24cb58fa6ccff68f17962c9f94e8b5096dc46e8faf4614d8b7a8300785413cf0f0ef5bb9752a263384a9f71be18cbfeb50b366356e9623ffa7da7f3f4baa7ff6446cc2710a7c1ca0411a0d12ee8974a2db669e273ff2aacce67ce9c53538d8a98085936d93d32771bf777218380333429394f8f44e8ea3c4cc895e7494ca8e300c3bdf02f0054397d6a20dfe0d63f216fc8fb71d4e0e91d37ae8b6354d06ea9af9ab74ef7d0031903b6b8c09fc127ed8061762ec4eb2d0a9b525c496a2075aa9080e6cec79e95aab9ba27edddc1fb02a549f0eb2be35c6b", + "07ed343cebd627485526208a0f3142568bcb71e584a2c701e6a27005add5f188e7a62cb76fdbe4e0ad0c7a06c317783932a9bfd33d19940537f395a02e9282832afa24e87e767bb63e6f9bea93ea3ccbbad3303f435c53ec94d6165e91942bb4fdaf3ee180d28f897adf02e92dca4dddc070f50ef0dbe67a1a651ad5a7847d6ce1134284527ca65c78837c130edd92d143cf2b7e9acd7a8caade638fcc2c8076016036b0f5637f1efb923fdd88ff7aced66ad44214aadd3bb3dde096ee3849d9034a2bdea88be43df47049204c24c9172393b3ff25b7d930e45a7e6da4e9612895caad2b3f8742e13da8cdbf85268ea20651daaad219fd018aae66b2ff37b1b43cb07f43288d8d36ed078e270c1e6162", + "988de64029057b5f41eaaa5b856d01c0fdb2bd3d1ce3c26adbe03dfec45296e8cd3a76af6f28261b28656326dfb277af83b3670243dd2fb4435865b825f784e45ed1258cbe301a985f3fc4153d9ac44d9b46d1de4788a99974b96f3f752ec7fb4eee611fc59ac4d350c208a6ae95197a9d2c30d43939d8d2223824a7bbfa4264b0f2e80005e0e394d7c4cc3334d7ab13c5371154b5cb8569c7be11d0f69e630f0f566e6815b147ad1e0c30f93d149678e43c18aa05096d89fa264ef6e575adda06763b49ed79fa5b486044ab792f58dcb505442b3590186cf5575ce7da4bbc7f29fe7bdca59e035a6b0af9b10e7d526b" + }, + { /* i=7491 cDividendBits=940 cDivisorBits=42 */ + "09255a5a2b4d0257f856e59876fb058d644e67e3e17b9bfee5aa72009cc7192bed05cf4a1cf128e78fe954b12e3752b01d88759e8ee38c2a35a714a0adff7a8e5f26725ad5359b6a7c31605870d1c20adfb49630c79002e8b81ba90a60cd95670cdd863fbdd055807af797625142fcc411a5c4433d0d", + "0136ee37a1db", + "0787b7c68555a6d0c34a926ced3ee7803807bb71fc3d34bcc1b6ba5df787a5745bdbec7d445c589678194cc2feff89ef5090580a292633494a8ba4304593937b758e8f7c16212e44c425ca85a8dcc8d463c07258f043b4837051633a4566d2e1c85a25fbcb89e9766a6ade1f1280d2242d", + "87cc12fd8e" + }, + { /* i=7492 cDividendBits=2577 cDivisorBits=114 */ + "01b07d383f8c6c6b9c9e95397d93f028628e0bbb8d3a7b08e4e632599c57dad1366eb2126f55d8de9adc168ea336c0dbb1c1fcb967ed9fa2e7b707017a11c814f35e4ce04f39f0bd1f34829eb5ae4c941f615599434a0dedd8a2fcfb3860b96aa9bd24e2f06fc73320701805ecc95a8fe0eadd87dc37cc7275d8c30b3b0efdccf57e777d32c0ede687e52aa24710779c5f917073445c5edb02cb6d9c8582cbd2d72799471ad0a8b89d4e24f9f08577d2e3abb152759c68825039a9d3d9fa630f92ce819334c1bd0b26248b16da5eb4b953366d13f908db54ba1941d952891530e09ce8869ed36036fa71e9e60ca982eba2201ec33175d2e28c3040ba5888a4174a4087047a1d93370b07a747205c69a9c7a3c1386eaba8b6ebe107ab0d9c0e0ffaa3639a6dfb95359e131a6215b4f0ae71921e87d4a68726633f77f9690827a1b041d6", + "039861470280abb1bec9000c5eb66f", + "784b8cdee613ff75b7afa9c0d2db0b9aa6e5bc8bbf033e1099b76e53bdc2780384366bccb3416ce812aba082035fc2413d6eb2f24571bc7e734446dbaf94d83e9512c40ebd12efc3647718b70929fed4db667a15cd8a5268e782ef076dab0b61d922ade41b7297a2aca46236aa4c980c512b529dfd341f39089a81d645ec21b2b8405a3bf8c7ba9554e64cf9928b34dae2c977e40b807ab5f1398f496533381de5fc1a8384760079329b3a7e0c31bb34be19c2134f785ab3e34c58ce23aee8804eee6c8e29d69d640b4a1ac439c03e3f3443cbad411679d5ad249e5862ccedd2e4bdb1716036b9f63f5ed0b26fad5aed8f80a7fc2b4ce36f3113747f6103fdfce597f777e939081b4f5a41b17408ed3105d3daac017afb2b495519644c95bb04b27bc8e16fa346588891262554b36c2f3d2bd835", + "031df7fc8deea7376568f31081d4db" + }, + { /* i=7493 cDividendBits=926 cDivisorBits=617 */ + "132f8b4ae5c79216e1bdcdac82460883c6ec8cbde27b2ac3d2eec05db1924cee353780b8799b2026e7dc1715ee749fb65766137ed2884088f24110fef921c38c48727754fdbcf279537153b8afee33743b5d12112afc5cd68a668ceb8be5ad0d68cf3658c95a21b1bdf9300610584206b166d157", + "0117624b8b4fa256f0d038173eabadff5b5ae45a02d0573a0d74f5a9ea67688eedd4b804490d854c51df1d1fa7e2eab51a60e87498fd6857a47ba4260033d27e22119e4572fd4ad105b2a75ef8a5", + "119474c8266b3908e67a68259308728dc63cbc7f1dc7ebf8e25bbd95aeef5f045a887b8684018b", + "7f9a9155a04d05e6f10febc5293fd7426fa4d13318012fd341e745711ed17a0529dab1805b5efb97267e0eff905e3c1744fe991fe593f6be853ab83ff4743c0fda10a57d2f4f5f54f8dec92ac0" + }, + { /* i=7494 cDividendBits=3923 cDivisorBits=2775 */ + "0215cd2548b780f8cc003c4310a9c55b881075c8215a01497cb481edb84ad7d5ada97f9016d8982fd0a23dceac75c7c53aa3527d8ca30ace07662ba8c8037c68566cebbd9ddab6f1f5ce2ca1ea01c34cf79edb62da736ecc0ac809629e3a6fc9ccaf3a722cbb343fe5b71940ea7ad2458c0bee933f3402f79aa28eb466312685db980374343d26ffc78260b2ccd8ae96b9aef6e10fd2c8de70804e74015ef3a60338c7a881f03016a11987619a160ffed99ca3ecee9014b08ac4552bec33e8e9764932a739348eedc7017418bc945aca0d8699fd9938f23135fbdd5cff85bf0ff290fde99270285acc87007df2e8357a3fea56a848ceb85184d8f22831c57443c6346bf1a3d897f54c207be580041d362ebf5470aa7a6fedd313b3c1a604d885490a78566f496aa4423ae9d17f5f08239ee9ca0aa9dd150b842200266e2507f752cfe7551f13f562a9380378b6771f1a7e2b317fe131eea78c004d8dd90224c9241d1691ac4bac453e34bb6008ff11fa95979f338ea7cd79b964419eaee2cf83c9731df36991d92ccf666c74aebe3397ade31ab025a258f8bea6ff62845582562936067342d621483f2b0f40e1db5f285bb390880fa40013a75e80080c464b09a7f186ce54b2940799fdeb5bc1a63f193025b4f1bdd8de7c9d102146f56009cb5d66402b887fe8cca0f358", + "027bb6b95f6f3f6b38b39d817c539e5cba8dff7118fc63a51ef92ebabbbef15680206c44ccf47bb02ef7451dc707249372b04b3b14d9d3466d5b23de03cae2856315cac0bcf7620a77514b3579fad85eefe934cc4b533528d08e396e60f06d11535a8ff9d821fc47bc6f0ef792ccd40adfac5b4d4c7ec0114fc42094e21e708e68700c3e9831c94469e3a07463e6e5e9bc270132e342c64ef519663f2bf18ef756f49a4863697b2e2b8213f1fc1e46de8fcc711eb61dfab2aad4d9f910cd5618d738a4e07b83030943cf4fd4a13b5a88cb20909bd619ad7baa86b5ff4928a5b53d915b3d68a8618ff47b6ba2af8fcb7f5a973995daba571913e42eaff44ca282f5d5df2bce7746eb2c4dae7ab2dfa45bc71571dc6e9b37d555b9708164fd8f66b1eb1395df19b4f403b420de1d297cf311b45de838986f20c50182143b55833ea5526de29ee60397ae021beeb4c8344cd9887d95ce31ee1acca130", + "d6f5ce5cd1f12cd1dd19976cd915e9cc69b4184075016cf614fd7bb8535a7a39b8f6d4e473de87eeacd285533a2a41c7a3dfd7519d04876d3e7453d78f328587b92af2b1528e42e7e8563c845bc71ac8c4bae6d1f6064847b3542b46dc2f6173fd31213fc7133391ca433c44f531f8876cda2f6aab0771e8c8e52c16abcd38397e18e2f1d833ef39a91d0e158bd5a079", + "4cb70c44967063a19e6ff16305a30c440adcc16209d2ea46c9586f6c09dcaed47a7758d18b4f01b62ec5818e9fc171beb6529878321ad2172b8bb9c19429aed67e6247218fc183d28949870e2a5b6f820731f3233d72450f50439e7690f0b71c37989232952fa8b9e2668cd460c7497f20045407b83581dd64b8fac40c218da59a38ddf3d207246ba07841bb43d7827fef59d81693f6fe7e9c2a6113571c65245d88799908bcf12323364c3c2cd7c9660aeacfddbadf44b4a90fa496a8b9f0f916d5b686bb81b9cb9dd0ffe8a6f59ef59d2a0fd9b43dcb0263d3fd3b4c1a22b01082cf492e3986e64e9079162d9bc1cfb3696b6d85e299f608b012628c60f5b6f8724c5a3d1aa18a89a2442faf706f74c8c42d5636281a1f449dea1f597f3cd81cd011d8e52496f39d2162c8d3faa402eb904e7a227ee6846662b607c58f347e20edf78d83a54a84f65499b35360bb7dda51542ad4e7103ac3a8" + }, + { /* i=7495 cDividendBits=3127 cDivisorBits=258 */ + "1eaffecf668c1517f22727fee4c382827463139ff3a70549dde82deccf012414248096e63883ad2e0ac7c64076aa70d2be64d3a224c4f3427932929d131a11c3e1746bc8c4a5a1e1ba380b1bee549290171df1668194005daa5b52331d5f4232cf1ea39f72c6716c357946bb38c98181cb3fb091e414fdd893ff2760b3b6d98abbd2a8051ccdc293072ae2d442a97359526128633c20c24dafc7827d1c74837772cccb4e7de2bedb9d786ec46bf1c896bcabdaa580bdc8763861bfc1a110418268328c554d9861ecaf76ee7f77fae0e35ba1e9920c62c7854a117702dede7ba7336de4b971d3fc2d88a2111dfaa7b0b6318cd85c7d9f396622854cb3545be2e909b82f9677b86ab3aa8c29509aaff0c1e1f904ebaa7d525d78654847a173183293979bcb8654d37aa193f1d84c3c75d35b0e03494459feea2e6d7e58cd0a534e9385483b1b6ee5b8cc5ab9040b47c0b1850ffd97995284808bd7a2274f651d6601c92ad4c34e39c61949cf0a7d22571c3efa68c0f218f53b75c044b9c0255d203e5a7a030bdeed", + "01f47af33f7e5e6ad2df809be1dd1457e4dd63b53ff72637244a58c3f5c58ed420", + "0fb268e4f34f8f75569d7779108163926777af18d81cf9cd9beabd98b35537c4d8c31d548ded93204de15764cbbe6f3fe396027cdc938823918c9245d63c78c3408ddb642de54c9c307b055047233b84e42cceccf9fd1413bb343f29d6a506afd159f766e221d9a956ec1a11db227e546a5cc0b54282585cfbe487b85dbf499afbe3c8dbbb6ab3fa1726b7af5e18003802610f741d37d3cc6f16722821e5ea8414fdfd83deb8c53e46f601b33dd2c4dc98cd86ab1986cec63dfc08b2903abb4a1ba84980362d7aea71574dab83d518fb2ab5d5922ac03f118ce83ba386c71ed1bb7b45db856d2716cff84c1896d50941190dcc9a21624d412d7bbfd7e5aa43f936d4383bd7569f94d59a52685c2b7612d71ce787402f02553fde5f2793bf3faa51fa8b063158cf727e4e0fcf4959f91ecaf7c6ffdc54d3b6fb8ed15e6cb565682a83e2729509bd4535f282c8619b8e5a3819981bc4ba4fcedd013e1b3081cc3c1b822e10f0bf0d", + "01f1bbb3656a61e0c416c3b3e2f051e18aa030247b719b87d2260387b08c87394d" + }, + { /* i=7496 cDividendBits=1348 cDivisorBits=1065 */ + "0212ed234315cee7916d3679acad1b1176192d44f1600b2f1603a6f3949bda5cbbf2e9b5a0e07043f8b1f7ccf77f87b5bce075a4976d0d6b57a831cb68a0b7e84fd34c95120206db1b2341d2b44102e19b9847a7b54e2e9dea4ba8fd66fe9b0649f1f45268861bbd1420faf3b18bf3d56a8a93f5e81b1c7aff61016fc84d1ed96281065d072425ff8fe35e4b5e52792ed7fa429b5e0ef30c0a0cc06c77b1959cc8cec7c3943fa5628f", + "01c6c8e7d758a4d6c24a4cd2cf54b96a5af76f8b4d6ffe409090141b64bab386817df8e8234847c9a67dec3aa3bdb15f86384701eda4b18b9b5ef543c4d7cda77160e697849ec3c6be7351b2379de47108b557279f5ca17e1ed8f269b5bbc8c30bfc8887df62fbc34679cb5695c4bebebefe3b544921e964ecf7e7ce58c6ab59f040380ec07c", + "012adc3f74ee5f23b446e296c12601cd3082033758bad0cb44f10aa0d103901a0c8ab64e", + "017e35e35489a94a13ec2a5d3005e6cd6064322f77798ef93b905b0de242b5ee79fa7159c7214348a8c0c32c0d508f4a70131e90007655b790f20365b2e6d9a8c416432f47ffd52b2587f2da6fc4b12d760f481a235a1ce4b2519efeb14be3e06e90c0302bff240b8a2dcff324fa785dd3a15288ac7538c9674f34345dd0a81ab2971b7694c7" + }, + { /* i=7497 cDividendBits=397 cDivisorBits=292 */ + "6cf95f9162c77292a75b5082e9ee3fc0805cbdbd9c4c75993b1f7a445210fb9a62bb965b757ba568d485abaf5c92979091", + "037fd12cb3ed6bc861dd8ceb4fcd215cac26d8a209604434b29ebe305f9bb8e09a90b5e7e8", + "1f244e3a2d5b3e896766d7b87b", + "01c99101c8dc95c558dce7df1c40b597f45a10559db9e73e08ed7ee24e6675339218aa6419" + }, + { /* i=7498 cDividendBits=3470 cDivisorBits=1122 */ + "1d4104cc73511fc1565efb2cf69614c09907ca06922570de7501d26d3fdf6168306da34e5734c6c435baaf82005872864e96d584b5679abfa6d6c0a443cf37f00ff9926af1a2cec20cee229c1b3a38a0824b87b25fd969022a5e560d5f85c6c6249d15c980267d3b59bcb00396bca710c567d0c49fe576e16f1237c981d67f5bb81042b81a21a5efe59611431e8ccffcef6c7bfa5b57438a2dd15430d977c71184e1bb477e87583a0da2c8ec4cce72485f0b9251562b1c6a6510c53efd44484acde1472b8303e96b56ab21f6c202a11c86be578cae11bd8fcbb04d91ae6fc885b9d11c96ae2b04a50a7d9c9f96d8cbdde28a93ed730d18d622cc435624797c2e72aab7f72ae290059daab75dadec73457cb813b8642569e75f0ba90ad95c402122f3214b892f4850fe481f1cf9c861031ccaa5cd60aeb73d1f35774f35075fd8402fb3344e185ff9005bea4ca8f0ebc5bf67e8a4af44182b26f4b8880af82aec1ddd93a70323f2de5e5f3c68ef1d8d91d8cc81d9662bba4f8ee054e3ec101ce0f9813fe3aab4bd024116fffadf0cf2489ac90841ca855484c48f8fe9a2cf0e01419a1dce8a00a681f41de8c4bc49415b416d", + "03be7592d3a81cb0e2c505b213a1e7012a9976d7db247d0af9c55ccadb846257cdb4d0c550e2cf4588c95185a1bba997c0561735df72d9d957e9f0b2f0e326f84ce3e4679b13f307585de805345232ca82597b16fc90567bafb3c1a0d6b09fe9e13c608a0a4fa9dc5d0f6650e5b95fc3474fd1610bebc6395e4e423a55b64d4b77748e032e46b40fea247a0550", + "07d0482f16aafbcf674856e05c07a74d0b5362b0969519190e461e8cab01f11dd3181ca31e1a69e46f7a108313e264393d62e13a2f52dfe80253541cbd149b262d04f262b4cb2fdff724f710d25808890582308098627f4c7c3461f1008851dc3e3c4f393075297362e1cc3c5de76bc45edd4b7287fb7ef21e00d6b027b23c75ccf745a236d9f2a16e46085af5c94d0b810848ecbfbcb9c4258525cbfc7b53485b09a62313152951cbf527fd7d0af185f307f1c83513842049a4cf6a920851c2ca490c2bdfa049914ca4b13d7e174b34ca9b6d0b0db0fc343ad6a8d3b7c6ac1804f2829b416081124613b1e42040a09e2ae2921d4ab4df705fb4f1e61857e95d6cb4715e5cc7e7ba65c24af38ed5ebdc8183917bb834975806ad57e3ca32e4e909b09d49e0cf", + "af67c72ad24ccac5883aeb1ad7631a04065177816e84b182784e2e514087905701fda49e0e1ebac9262fc77c6005a539533242a3de586d5552aa23209fc1afe4c451cb5463fb6ad6bc9955ef044b20786efe86578dd8d5815f759b3632123312d841be39c88986c6d49767b512b99e0a4f0e5feceab75da5936fb2d5f711fe0a986e170e99384afd6a3af5bd" + }, + { /* i=7499 cDividendBits=2986 cDivisorBits=1873 */ + "03c8cf0704d6004a5243e4eeb1fb9c929e57f0c54c2f9727bcd5f85bad1fe0038392b132c65c2b01d1141673c7944a77d28701cdbf7e23256113080c7bc836588bcc686b7e4366721121621f1eaaebba9317ad386db8db4e034271315cf0c2dd064a143b5bbe2ce020f867277c88f44e09c31400afa2dcee6f41aab71db6f9a1972a52366a3d307a67abf72d7a04403080d413098522d5c27d1d8dda2cb57e3b9eeb34875bb7059ed8725e3e20326690b70db3fea358c8a079d7a84fa8351d9d1364beea11c6051aa6390d25a0a11a7ee6424a3b3976febd3af8705524d9b43b844b4030e17d1bde0816895ce875977d45586cde7fd944d40d2099eed278a02b20f73d4b07227642f863c824522f80487e7cda36ab20c7172c85457c97d2c02403b198176f18851f1857ca26038a72f95545ed80f8ac8993bf804f8d02bdad3c5b37f01c14dc7e7e4dcc810292d68a95751d6e9a4018f36167ae4553c8229862e48cc1977c6aab5cfbe679888ca4e818585af944f424", + "4f5c75930f6fc37895755d5a1efcdbdc62f7a598477559a468bcd1d020f75ef481c54247d2ea0a970781bd07789b6dadb333d44a6606a9cee385022abd997dc0eca2eef9c351df265641017ef3d16d6275de6d3e52f73b1caa857cbaad44b1e0822d79b1168450a4abc0d9f34468d71213c511297ed15b5a41a017ab32e9eb785a3ee16a8b9cf66c9e3eb33bb882cea27d881eedb7c11e9086193c52b818a59860d4192026e74008f35d2a5e9ccc6eb5c8c540534fae598218f1838e5bfda446575133b77fdc5ac1ea6a4b820c9e42c2ab9e3109f3f226417e672ef1160f0bd9c581d1174760991a3e71", + "0c3524b0b678634edfef4879b8429a6b4aeff78c52948d6f45a1a42a7adeeab2310ae49275bbd7f4a5c08a99f4d437b04ea43a230040424092456e8058b79d1a1b9ddcd7e4e184bcbcdcfbf088009bc9622ba023a405a201a12fe698c87e3643919aeb7f2d831cc8b74df67499c41b2b85f75c3d603dba00a1547cc5e5504e9631d05563e8f0ebe5a7d5ea7a", + "0a3a079acc2680cdd5e751fb026f3f35a55c435173a5e89275df8eb1329a21561bff80e44fc295c50694df15ba4310c656d8b927d46486b696b476663e809694bcb3e426328852424ecc8d4f128491b0b651ac8a41835639d65a1db44387f0d354195d82577ff6b7509bd2f894ada2f1c3c9f1213de6231456a864c7a6f08c6d7e1e6044b85e8dd12a53de5c806355519dd0f7997c22137d0e4b66f79187b45a593321bf041f2fb9953935620225e78e498e7cac281abebf3950ceedb1aa74290af05782b97bca9b097e0c48cfcb01cad38905229e0ff1456866128cb89c9a7519e196c6f0b95aaae84a" + }, + { /* i=7500 cDividendBits=3070 cDivisorBits=164 */ + "161dffffdcd05e56a38e9841612ce69e17b04cfc134c016e450a7b46ae2897ccc618c382187375190e57fa51059f2f7ebb545319f700f1018e8769cb284aa48b132409f141da9dc9e84d210bb1656dd9a2f26b543fc47705a7ebb80a3e0e089f5b0c6e08bfbc58ce506664fe812c5aa30105aa5c24f3f1b80175c14db143fae2689ab3634e3f2be9c2a670880fdb7e48addb0d126b7c4680dceab0d6a0483735a03b2acfda722aa82f63225e7a144c8acf04c0e650303c541cf881459abd5dddd7b5881a5321bae17b7781c82b20481ccd3a2659276c9714a8ac5b1016669d0b9fb2aef45eecd8ca5e3b19797fa35f6029adca3e754c08c6f259391e619b09dfcaf9b4fa1069a096b7922cb066028f75aefc7f1c662e18c38bcb97040388b5ee9073a3c87b30a776f93d6ba40ef2b01d7dd40803c8d2c25277cf38eb08dc5878c12d293f79a65d8c04ab1d4baeca38672b79f8e7c5497e6f11e488a2e1051b9571d8c2269c96f4951278f040fff011a674a67658c901dfd167885299f63ca793", + "08b46975e9b1f609cd44cf401e1a0b08913948dd66", + "028a735da37e50f7e2f669e22418fd9fd38d8a06d049868e9ea9e4041699c199a9870c43d5f6821039e2403f94f5d3b9a5d8770faf8d18918e667bbd13fcbe987037dfc1a0fc577393dae48bbc12518e704d369fe8fe6dca7cb616cdfb841ef5ce13a98059f9bbb41a77feb7652d0a5b04c2026c4963d7ff101946b541c4b0124a9e20a51543fcc42eb3191765e57e0bff6ea56bb9d995a4c932e582fa971e515b95b787aa8b1e14de9a20993c4d4dff68db0c5cc9c27d13e8990e72ae1f11468735e9343d635288aa41ae151a8de8ed4e4ac15764d8d9fb81dc7fece4ba3d17b7951b18d5639e5b2b41b11b9df7949bf0eedc68861ac0dd919136abe39ba8f47a807a21b501009b5715964b543b37c0c7781cb38ee5ab804ee8b8aebf593f455aa18bdaf9ac27a1c13782f68ebcda47f5cea67be8691519b863703e5e0b30a323bfa810aed5d251f6c6226a20aa71511df7d055ff222b72f7674ef252fdc355d674017b3e7a546768ef436b", + "0549278252c4e9b10ef27e950f77411ae6d09c6bf1" + }, + { /* i=7501 cDividendBits=617 cDivisorBits=432 */ + "3638127343b89f65dfac9e69b7ef8fe4fdc4963fdfdeee751afb575e3cdb4d170e088c75424ede7903db5d4802c00826892e138c3df7fbdb4289b006787b561bdd33574bed9b50e55be27c9c02", + "d83cbad16ea04ecfddfa9e8e59c7f62383352a3487aff288baf9077df34ac3218a7cd7448ae0da260294aafd9fd082d127f1538cc5c9", + "4030689b55652822ad73b399371ff78eca42776d838606", + "39e219eba28fa36d6f933735f0594e4f826feec50197be035cb61dc4d565fadd501506c6df97d97e063f7c1972172e69304972cdc34c" + }, + { /* i=7502 cDividendBits=2637 cDivisorBits=465 */ + "183840fd11cfd80630466a07e669bfb4f6e12461a137b0555fde5814e36b886ed3d8f293211dba757dbebcaf09ac2db49f252f16b3dbfa2f12fc1c77611e43865e96ddd80e7a7f710ea4c2661fb44485acc0835636ce78dd5da9348100f8cdbf8224f99ad60d9618e718a7294d6b6a7e7f71741f670a913e17b7d36690dfb41d7b84ca953af06abe84f3d4f13f1ba7c215d640a063e1105c4c03d4c8ffee1be2948e6a2c4e9ba150fb718a8540b1cdfa4da44ea159a6a4437f361676fab735d5ed745bc801f71b101b14c30b35e070ab2fa24f4a7c64bdf8ea48d2ebb1a0b26a1d0227f18ef55d694043592d1a993a0b5208bbbc5feb4873a124eca6dcf2466964369103b182ca36fa2f7a261f9a385488412a4ed3efc97efa9b16e8ae0b0f6c067aa65e5022aaf03ddef14e6cecdb8ca7abb2e1cd0cabd7e499a4c661a1f38c9ee74091dc24b736cfe3", + "01f0310081c327eb64aa24015c8a797cdbfb63dc8cfaeaae009a28c7f19abd8397d59915ee14709863134616abd16b4a8269fde5ae70d1067f19df", + "0c7ee5827b073e93d9e5ea13decc805d601b8f66e2c770be11a316c540ebdf93995a5c5e426547ebd77af8f8732f5e6dc853d5b564653ab0b5b7815c7205b26a1d8c092eee7d8d8e21990470f64bd8cf1e0462ae05e31d9a63f7f0e58cb388cae437d0e63ea52909a71831a38ff4ad846e8a10ecad04f20fa8160664bc354d4678f8ff5ba2c61bd90d77e3ab969bbf0a73cdd3410b5d6fa35779a887be825ae57065242a88315b1f61b03ce3a44d2575e74ccf816d0bfa71910257c8bb5d1da7af0a0e3c9d069bbf9b789dabae8d221395571f67d36bc78082224eb734341c1f22845b26250b877c9438c94a680481622ede6efac0f4ff1c8ecd2258534e72f34d9fab8d999eea2fa5f4ed71555de2bb", + "cdd15a0dba7dd42d89085c2792ef745ce900495a91f01e9b82a5ed1cd75d2979e3cad9ff0ef5d45660f89d1f2e2ed7beafce2adb7d8652850bfe" + }, + { /* i=7503 cDividendBits=2361 cDivisorBits=425 */ + "04655493f3f7c16b0f84cb95c19bd817f1dae44148b0f1832acb2fc70966ffd5ea8e7b86b68af2a8c6add5c10a2a92edb4b3e3228a082206ae3b99099dd10a40d67573fe4af03893195714cb566d085eb227cda73e2c8432386b61cdc08df99059b51ad3077b07d6e83631019be726b2e4c9862497030fbdf2ac76b2ce9a5843216843dbce0dd29a38c90657478a60383a13e2009275d6ca8e270b33fa9ec02ba698e50c19a7a93a67110a128b6daab76b869a97ee9fb30d42dffe385f21104b5d5a7bd7fd21ebd5be1277cc8071628f8ce537e0deb7585a4b02c81193afff834d10e8912ef09f0536b17392b620299f632724cb4b74fee8bf0f64edeb85409cb7f1a6c7d6123a7ed639188fefb8f68a624df045f91889848894f70a6619f313460be1c8ed9d74", + "8a7972ab18500f981ab8270497dc3eaddf04f9eedb3feef1eac8541b6e602b291dfc750e9304950d285d3b453437e58ba5122a7493", + "08206ae1845e38ddbf740df6ec82b30efe0ec86b58fd034acf9f4941d017d2b1f73099c9bc9c9de5d4c73d6aea2a4defeda9cc7fcb2532910c2cee737a2209514c43acbcd8610f38eccc84c38f7a9b10e333506d85331c9604bfe1a7f89ac3fc4b3b39dfdeeb2ae4f8bbc848de91f06c3fb7b08d7f3fab890c3eac28b35e788d51c99bd1f02b448263c8cc9cd982bf338cc73c584e41b45e0e50f119e3f3a679f16b0709037430dec756950e04c906ec7fc70c185e603ea0e0b89264de1d3ac7fe12c118e47874dcf5b8ee95900f9413508aa461d4618b53ebf8445a3daa0a4d1f9308f9644d13bfdf6454b652e50f27dbb0", + "31f1241b83358fd76e7710c6532127a71c599a5dd98ff08c98c7ff0aaa6bed04f6e58ef77083701be5b407a9be5ef6350f9a9eb764" + }, + { /* i=7504 cDividendBits=2832 cDivisorBits=1881 */ + "b2c8aec1c71efb09f739d3293df38faec41828475c70a6fd67b392068e892fbf81d6bed67457476520f1801ea249609ec330f88f255943a82e1527bd132e3290122d05977d548a8c52bf2786d6ed2aa298ba5cce1f6ff876b9342f7e5198d4eaa467165a63295542a0f46553170ff3b9351c29831fa71f7259dad78395960120d85445b8d7136cd1c2232bbd9de16ffd906ada9ec3f98d5d3aefa11fce4f4ad73cd828e7afd11d691b7c709fbb78ae206008b21c597951a04e8d58f183e7324782782206d90eab56e373666abcb51438f7b3353d57c3b6a2b07c0724251f555dd6eef8938f9fb5c10a1728b527ba897922018441a9af6b2c029142c34e6feff938fe61c4dda2843c6adefc0279e9fa2d7d01e938194fe53c795e3a37d23e43d569734ea5a748f070659cfc3460ee7298a54a395b03c491e1bc084e6ed089379a8f5c83725dbc973f573985426b1369c84b982b9161d9cc2e8f9925d2fee1861a85a3", + "01ac71d5dbd56c8c4184d607f3efe3f95dfcedf87b65de7ee046e6b2687d3bdf29b4d519ba7b4e3a5668f0602e43a5000ebd6adb11387a70862892f9b442c25695145d5ee50d6b8a99b05754b367b264223d6c0ff8b235e085ceac47ff36a065c8c35a4efa050b35d021bb3f70c07f316b7bf517e4a2e3f2cd9b7fc06666983aff261f48b729f495d2f1adccdc1113ebee368875c1dcb2a47922f77d962680a67404089e73160e18c95a62c185e443d6644477533720fb529b42bea1ed7a761be93dff90509237102ca6718d57107a487ad264142dbada4c900b167848fe50b07662fe69706276d70192e4c1", + "6ad33f90483cc6aa930bcb523a7de24ca022ee3db7a6b46a4ce14fbff6e273c8c7418991841165339b8521ab1542dd027d720c7ed91b7393cc52951204aa4b4d9500dc42ff6fd360771a250311e287dd04d51e570c8516dfbd04472cdb76496937094b0259091d7d1efa619d61812043c5d795eacd7bc2", + "a580c3e65ab057e139c4fdfe325e8bbc9ea16e0151d358f4dad0b389e224b3fefe83d74ebf2213028b940019555af4f5e2b2ce321e91f2e52bbe09e92d89e02634387f6ed5e14f3d67a7976a42375b104af4cab0b1367e0f72998d38cc52d19c670e728d01d6e3b7cf58abc12c0e89946cef0533b02d7a931ef8c3e4c2b7a7fa1b6dd3677a85036dded60b502f133fa42b9bf595299ccc8d711db7f57539564c337440a1eac2d62963556551248e8a65c2ce70bb50392ac58c7826aabe97a0334de417ef08717b1f2f38a127d5debc7a5f9b5c5b112ef7de6be149b06d3f0c5405dcba265cdf2228537061" + }, + { /* i=7505 cDividendBits=393 cDivisorBits=209 */ + "01ef0ebee4f743974e8468292f017bcf982ae12f75d0d7b52ba8dd45bd8a2819082c356353180dd08e5543a5d9e09c4cd8d4", + "01a92dfeb623c2f47ff8d4264594b78e36e1f64d9882ec7ef53902", + "012a12c9ccaa81d1cc12d8c24db1ff14779a3322f0b9204a", + "36b620d5ad19225126974c1149d54d05159b8123d4b92fd81e40" + }, + { /* i=7506 cDividendBits=1241 cDivisorBits=1126 */ + "c75ddae40980a3ca713ba706f5d18ce5efbe25ba03310e55c0ed021128093945bebc9772b38ba1be4ca27e27a3775c8c64c9d2a948cba4c697023476376f723b42f9f78f20ad8c0bab87cc5cfcb65c9c74e515e316e229a3477ab84c0a3d45efc6201509826e7e288605fec79b847fa35985aa72b40614bab824c3adea184afd177370040fecaa45c851402abf3a5c04b21f26f854468dfb961f94", + "3404446602dab36fdeee6e52f573561f47f6f072ae3a6db7f701b66e73ef3129f80c772451f1e6265be01565350c60ca0d6035f45f33dea7f7228e3b7582886668e118ab989681802bc1147d4877cfa0c59cdaa50b084711953f3899d33261805eb014aa9aa3128ad703b2a3553314c0b9b6e1b8f9365262960c0de583d26780bd85173a3a801968e2aac0ed1c", + "03d52ec4f3f52c083f2e5f4aa0e112", + "140578d674142f84f6d4760cdf39faa68b47bfd6f099ac4b3f4600e0e2d17b464857035c1d71200f00edfec6c0f635297dddb555c4a6984c7abf69cf15d77a41c559cfe9540f865b2426d733c6acc65fdf23647df09f88cb7346e61746ac63af18760c6742d304b2288848446eeaee64279766bfd8c7d86f4dd2b81b3d05009f61743df3c14c3e2c08201fd79c" + }, + { /* i=7507 cDividendBits=2896 cDivisorBits=1332 */ + "e364be41d1ddcce532294237f08ae5a8dcf26d4aa681cd66d1b9b667a406e39ce21125f37df9ae46d66a6463fba7345a47d1705be990cc5a0334bb8d80a9eee62adc1ca8ac29a5b7bd75a25aa16a96365c4b53c02c8ca47620d4d9e1766d5ab72dbeb229111829ab5825ea25f75cb7ae01d954da1775ac1e2c922a1311f5efac2f045220eeaab2c06c0129658cbe05443fd4733fd988f9d5a0e2079856f7baf3e1819fd42b29d8bc6c218d859419a04cfbd3ef8d3650cc8d6f85a6775a168caeca54493906081497eb21deacbe7ff29eef88b305516b3f9a5668a87e8b40c45d6ba271ee4234962d2057e6abdf0e50efcb2d440fa00cb068338eafc050309f1697649944cbef0d6e3027dab805830b60d0a71341b8a63c39ec4ae52cc36f469c8e6ad9a348b4e99652e6a079662ad2afbeb149380b6b55d281941690cf3ed37623eaa2d347fc89070d3f283cab85c152f646a7055fc7d0c5a872328e177bf2b4c927530ca9ce193cb525", + "05198131ea8d80f3e03f4edcb4f6a97449dc0ededa1b27be496727ac4403b702a041c054a0121a33e353d9f2ab80b41e57f2074f0e50e439312f4f9217c3087c12492cf5be5066a468459f54537df64970094e86ecba42fff2cd9ef644fae70e93ede64158b1800e95684bc9031593afc2522557914ba1a41a1ee34befa998db3b1ca23724a4ce8c40aebf949617770c40322c1808e90f9f15eeea021a0f58dd1a59816b045a8b", + "2c9718cce848d048a10c7269e5faa2cd7e1fdb0b0c6c28a8e054b7ab3b3e107ad729d4faf07345a4c120d3e7e5b7fb7e07c9bcceb0cafa7dd35138c36ddfd6db5faf8428e08324a567494e91004c576b4273d47096c67cd07b2b3f05c9004ecd47f3bd6536b1785968de75eb537b915b05538d0f8cea0eb774cb682b5e3b1494b8d1d675f12ec8f6fc252d27981751c8d421a25d107765cd67aa14725732c1ac097d445d6309198c94795ca9831f8e848d5c3044d0298630d84e4309a5cec5855aeeeea7", + "02680b921ac83e8090e65137cbceb3f12a8c369fad37fbe63ad9f7a1bb189e0e7eb4d3a76649b7bc35fa69dde4b40e351ce8a7448283a64bf92706c868eb7215869cdb6fc3d16b26b43b919750548ce75f55a434abe2ed5cf2c07d78db63b446e9d102ef1079da513fe229b322c65e56b87d96a489e3eed450265d902ab2cf36e631bf93f7165a108a9b2d07bb5280ce44bfb974cf16e8f3ec46b47c34c3537beaedcb31fe6a78" + }, + { /* i=7508 cDividendBits=2307 cDivisorBits=1394 */ + "0604c5016fc44cf8d726ce1fe83cd17a4dd8f349482a0d394f360d13d81af710c764165efa2d834c62cb02081530bb427ef63d8f7e9708826e978a5a1cd0db779ceffbf634cce202e2209ae9712752cab36f5b890603fe3f31077d3509217371f72eac1207de21f08607a2e1bd2fa3523177a3b59a311592e0a41d6cbfac60219d5e106a4eebed22c1e3543cbe4acd27bd749886f88b52e2a33c276e1c09b0eb79debcde946f260ee241bc45d131f9905d242df1cbd672267a1646e40144f0a72731e8b669c2f769ac53eda920ea1eb01df3e388a020653bdda4c8c82e3e09d8a76417fa3921d9c5e779e89bf878d815b4e2ce10956704162e8264cef455602a65d353074791100a560f4e5c5b2e59295fc61e8064bb63017cd301a22300ffb832", + "02b852e6cb25d087f8715de0e0a5e4e0340f45ffe00cc2fd151dfea3da4c5b772cfaa5f4102e7faafd54c527412c31e3432ce7cb88a56f6d9f4394d13b6c33779e73d82be22a3425927bbdf19f461778c09aeec317ea1647fed53e5038f076e94da331d0b142718095b2ef3048328b9e3511a464365c4c9db7e504fbf0adb391824576c77ab5d28ec64382d870352a25fbd0de8e7173924f9c695b5105a6f18cdc32ad884a2c6e932a13f45c4daa9b", + "023674ce7857862cf167de2e8f12555df817092d447c2c74dc075df104751ec226069c15aa0ce65599556dcd9c4e7701543057503d458304d85a2f8cbd7a2c956f7805338fb253c9aa94d183ba03712eb38ab350eebdd80703ad320175898abf8db6cf491265b0a0cdbea2ee64abeb12771610", + "023bd0b54d3203d136064f3d6e062fef36f0433d96ad6b1cee2b630db07023c0fb0314449a12d6abc03f6447777ab29f8a27f00ae90544daa016b540e26c4fc7efb4af7ceec239bfc8964332c2d7a5684f2e4996309ee36cbac68a8ee98c2ab22773a72e7ad664e2306fc9d2335756e3fad807c2e788c5dc0a068ea4f342b99c028514922313233c7e9a1364938a9ccfecc606d4242bdafa4817ac37c7236a1e90b5e9b1128df632c7df8c5b6ebc82" + }, + { /* i=7509 cDividendBits=1526 cDivisorBits=365 */ + "2319bdcb7c4af846d8eacdaff03268b90b505decf78ab250474fb705ed9818a715da34433a0876314da1fdd2bfee7b6a8319658f601d6a3acc1ee5dd1cc03ef3ce5e14a7dfd5aa411efc9aecbcee80dcb7c98b65ed0da644268a18733b146d3ae9194016ff5d60ffdcfa3e1ff6a2ecce2c5d67c6df7a4da5680c35fd57c1cdebc274e7f73b9b18fc0b80dabfe1c526aacb44fbf7ed2e3ed75423915d019a12b40ba5aa1a88c19e3e47fa295754abce60d072ac702bee32e4c0fad2097ba4e9", + "0cb2038f4d9e0a0ecbc4d26b1e4e0632fbfbe50f885fdce63e0d22a68acca926700969769658b0be9b5f4a5dce54", + "02c3cc02324f8b54f22cc744b89d9d7a55386c7367ababcde4b0b21e27d3d92c6b60b20033005116bee0b5f7b986dd91566d872ea9159b7484dfa43a84e47a7f2db1c702c05628db29057521dc3e42ed77aab97395263d2e3e8f9921c4c4fd06c4b9095d70b1440951e1ae7490b090dcfa596d67141920f9b389e2412387d11e7d6d84bf3ef93d4136c77d493321164153e8", + "0467e3321317c5b20fbfaa045a9426565fe990e9aef5f61e758c72eb302be9a23b9d077889e127e800f99f3f6cc9" + }, + { /* i=7510 cDividendBits=2660 cDivisorBits=1204 */ + "0e7a6186a493805f87dcf62f4e2fcecde76d0a5fdb946826482d56b752b3e9530cb867f84d96a84efa5c1035fc97187d30ff6b38f8ceca3bd245cc98da9f4fe90ecb6ee30244d7c3a8e6162addf2b9219f8b3ff9d66577eaccedf6fa240e22d8b390c1397ff5b52f80ae51962b26e1e7a8cda0d54baf7492d895de6ad3334fd9ada9929c8bb2752bac125f8e2bce6ec7fe70196f03d272fd137ff79d8dec771e1ab2cae6cdc051559584ec3fb5892055a39613a0656b162927e70d3606246832a213aafcf21b4506358bf3ce0a677a878e690b62364dc991af197eb0a8b9b44dac200c39927d1e4ab804fef3b9de00444e6a67338bab72d44e1f6c86b3432c7c8753732aa86a49a58b677d4d99fb864cb63a1e48d3ed43f668c1e1d597d831e8ff8a3fbd561372cb401869300d798cd45ed7c543d66d60e64e4b526f13153ff6e2b6e28e44625e8791f06c7db4", + "0cf0813de58c54862baeeda98486329e41ff7c6c3a0384f7167bab86897e946ee2aa89994cc50d8e8bc599c88642cd43b2786ccc2524c8b51a305c860f5967f4173bb2a80422d0a68af9f649866285ed9d86a273c886a3ec8fb5086e6f40c69e19b4a23af63ad5de3d07742283919d7a8b3a1ac2ce0e3e1fa96f16361c9bbd4d53fefbcc4e827e0a6be6b457c34f7cf621fa6c007d50fa", + "011e709ca606b4cdb9979138af65470fd05c6d03d121ebcd77516c4b1a36edfda020623a4e03617238142311646899029ed411c0b956e8982adb358be2d5ac71f145426892bbd8e3af6733b15b7e8eb34f168cde8053540d793cb2dda5892da9b40483631140d51c3b6d441ebb221edb8c10e32df69c60a755e1d56fdc6c4b51ab31d818a49beb3ba33d3368e54c0af9fd54d5ad382f9c2c40cd9971570997cd87b01c527637794739d9d9e12b911b4b49090ba2478cc1", + "085714e07167fe7c68107db2943447f585b90adebb133d24a164af98c762c3684a9efb988f86496b3aa47e18d2fde6488620c182b1d162aa100ade7f3f42cb7bd8c9c13e7086fcab5bc456bb5ce29a823d03faa6fd6a5fe1b66080b5968dddcd49c14051c5d6b54b184f797a8ef0e7215f26da5f41cd91303e4ad0c48b3a51eb03ec13bf466abbffba29946f79f913af04f7236053b93a" + }, + { /* i=7511 cDividendBits=561 cDivisorBits=110 */ + "0118225658f6bd684bd49a6ac892bbf13b36dee44467d394603593514b70a6397bcea4f0ef039ee48f5f8bad08b02326fafd83e0ceb8716495ce7f72c7f3dc27f83a08b92b31f0", + "3ffe58bf2be1c40a236e7dac9098", + "0460a64c9e25dfc752649b361e5ea8066984007cca2e354cc338f743f101591a9451d75d063c48776a099753b98ac8ce4a6def54778e03107b", + "22ab72d03327e05004358c7038e8" + }, + { /* i=7512 cDividendBits=907 cDivisorBits=237 */ + "071dcdb61306e934716b4e66487ec4783abee796e599b5f2a18c1fc7820c42d3f917f70ac631e1ef42920f7e3025ebfd358aaa15481deb8cc94e4e5cb4053e9dac9dad9e8ed21afdbaf24dab838f9b75de2691adaa82385ee9c49add2f169054876b702a6005d88d800f3a430052fe613b6a", + "19d0964ebe819e5214c1520f97fa16263e8148fdae0bd2dfc955da74f83e", + "4692738c044f37d8ddc1aef0444d94678288f73b2f53b198bf0f90850353b060ea0850cd82067bdd8b51b0c470726b0c9e8571e689d6be5c4def719aa4ee9abc13fc8cd2144b2f35c13ff034123710eddecad50d", + "09966b3a1d95099937983f7c738f39d209401d59e683c211d73beef90a44" + }, + { /* i=7513 cDividendBits=4068 cDivisorBits=129 */ + "04ebb1012fd982b49427ff3f2ecce93d2252570d7503b3c808fe2b90368769fe3d925fb197f52fc56fd5fa3fe2155af992f738414d2c394670613f951d1956c3f95c55baa9af716a26c4511c43d6c9fedb0945070e83611287998f45a4b607357679f0e4bf62c4bc67ae17856ec64ae6f606ced365ecd1da0526dccee699151caaeab231428f28da3b09bcd98096c30ed7c137516288bf8a237674c4277b1afc5f2877ce075ae5dd0aa5cc09242e942a086177c4d902a1867c7bd1490d6d096af3235333c1041fccc0f64d023fac808bd596a633d190ca37a7d4f1bea58a74e0aad38481c5be8129878afc6acfd0e043e3db70a12097da956ed84a9a9f09121cb6d2418aa56936cf48a9b83ec8277c3c4a2566e617acad33a1f54ed9fa26e9e3ca0a58141b1a03001c2f07d41289daa6107ec32f7410479d40fc6c5061fbf21b20be4772c5e949ce768b9b761944c0596d4986872094fab583bddebf706401381dfcd24249ff3ec04acfc6c31001ca09526dfa48ebc197138c39f5d7cbc72e9198b2df55a6c7972d77122a3d06bf7832921229cf9320a5ada6f3e844b974116845620952ce8523c56e9dfa96c0c813d62db120f62a7c5d3cc380bfcf997c70463426682cb64c2938555b15b55f8dff6825e0b1288e00ba79b2f21d934b89c22ac434747a7f73ee154f12e286484b01517baaaae819566dc6e32207320f", + "019e2d7a4f749555f24ba80e235b5f75a2", + "030a9b03ac51a7fc163f0baf3f4124ee2e763012f9dc5abba853fca07cae94a1f89a908f2062db9b4826ae997bc8d8bff2586376d616b610e0b189e8d628a808a87cde0ceb358b9b448c2275e059dac1f6b099fb19024ea1200a17e0b661d1113e5215ce2aba8b56308520694be6eaad77bd80dce028b6e9471028802625ff09c61ee62e02a78267296db29de3875a9104c1b717d2e8c77726cae9e451fc3bbe155d9087971360355f0a9dfe2c3e9d113592e83787620dc42cc8b6bbf7e667e520509637e91757e0e22425d289cfc8f810dfa9e9fba1f9fb57d8cdc451335cc18ca67506e90d946e3c0fe5f07880c4c0141a9cf4486e216551d464ce74745f7613447d267eb56af52f73f6e4333b08b9caeb2d55a1630c6bb684565497e156ca209a1f0fe70e662a4575a88006d609615a13a3f71bd34c2699d9d31c80ace69eafc7a8a8894800b2f43af858a42aa05e4ff4673a4055f595551264fb2cbd20a7f2d87a9d82b5eee6a3503a00ec03d42bd70b0afd92f66fa24b4ba1bb4c283d89545582796b85afd8c436b38fd51bfc277ecd347d63760733978b6c64985c2f2da885be6af472db0ecd20ab325afc7c58b521ebe16dcd58c314cecb01bb0e66ed5580f597955a66ddd40b466c1091de185e3f9dbda406ada2e0a44da98f02dbd0bcaf7c43295439696a8f532978", + "fbe30b878c4d261b4a0a62f161eb1c1f" + }, + { /* i=7514 cDividendBits=266 cDivisorBits=129 */ + "7856baaa996a4cffa2128db5e4e317f95b164cd86ccfe6d65b43374aeac17e5234", + "01dc9971f9a9ad5a23d0f608700acf4ae1", + "40a37cde87c42f2a7aa27af15adea46e43", + "01284453d8ef97434c46741d1dc4ed0b51" + }, + { /* i=7515 cDividendBits=3857 cDivisorBits=1376 */ + "1ebf7a6834e2deef6ac9c3618ce4af3f926876f6c723ac3bcafe24f0f9384aaf8a37e0d930955d02c39fba3fdfb65ccb1d9fd4b31eddfb27ad028599b2875f655e612d8fcaf70e5a7a8708bace300d3670fdc9b39c04d808eabb2908e6c9f82bbbb2b99eed36053da9381b9d9e09134bfc1c1abe3f84582bceb05f26f7a35a21e19f68ede37d240259d3094d61f66e67f0211b27159b90efdd3f7ffd8ed2fe3a72a209808f406692c39ab0a0b772ae48af40915c69963f774027d80e50eba1944dd83257df70773f411343322c989ee2282202f0acb733f0c450f22e152d2d4c117479f4ab7aec8b2eb1b5146383fa2fa32dd807608ba446e6d0e084cf72cdf2bf773630cab33396dd42f1d2ffae39f1eaf172196ecf23160e4b38185187c262bdb65a0ebdb30112f0fca0d1d70f62d5322994e4464ff916db9e3e6a5f6e946711ae9c15a88b8d31cce1400e4623798d696f9aa0e06700707ebe6b677528766f266a33c1b830b4fc51691b4cfd72fb41bebc0c79baf3760fbd6f9f0460eb1534c21183569292445c411d2976bd7427ef34dc50f738f8ca7d72bd8e1a9d34b508c161302df51f294a52567d7db303b3bc269c74207bca91903a6465ba4926b065a7b283ef5862384e123ffebe8af1b3d8df3101c990831c0482fb42495d4e36e6498b", + "ec04229be243175af3bc04047a193c0a9d73c8eaecc549693eb3dbb97bfc62737c12d68a00ccb5aa19a13f558dfa10395e841b95605c1664518fea1170c93a702553591b2249490597bb41f7696fe697bee9fa352d93c3cffa9f8e03887156abb939900e93479c36f560ef0d7c268525c0b1a1bc87d856f53b8f3957e9ab8d0c55b52ffa9ec2a2ba3efb3bc930f1a1ddf05fe86ff1cf9ce2baa58a27c0a48c402a9e4a151b9d6c4951797702", + "2159f7db33a03c27ba1a895118a71f1a588ae9771b666ba496e21ea447570320943e6a498ec5f17c8f6979f85a80a30a4b0a3c1b2059d959e49ac45cacc626778318df3d68ef10f7071d960a58485aa86bed3d7577455a42fea26987a4b9c7d28fb252a366d81f8878494afb3547c004c6bbb4ee900ee323a8dcfc3f2bad07251689471178230bfb415e6aff4ead7a243a7ddcb5e20c146dcdedbcd921eeafdd214ca6cfef7b901e4d475c081c504368d51f0b62da32f39a9f6a3e205c5b723474e61adf01d290a7992354eb3884dccc16ca32ceab26ba502bd2de291cfc2357090295c1f995d4238d67b8cdd91fab994b7d925799a05bc650b71f77aa227a327984f598f59dfe6ebdd4d9517cd12473ebbc0c7fc67b2ee8d8fa8783462f2ea706d1e6728458f9a1ebbea4c228e44ab6fd6f13146801", + "4f012aabdcec488db88d5180f1d956fd3c7393086ab966cd8903e75f006db57f8ce029a3caf8878067b703b6b9cf563f2fe8f419b774e2e5740f4824bd4c2eefeafbb8871fe8e70735019cf28a83910c69547990621973da60bdaabc2683f95d8ac12a1d51758c14c7ef2d901b1112f5b9ae341d2835a55a2ec3a929dda60febcd8357b49dc887f1f7b9b178332016a57326c0478a4d1d7a5eef96cd059f229e8b5d0e7fbe3432bb1aec0289" + }, + { /* i=7516 cDividendBits=3073 cDivisorBits=1709 */ + "2c5229640b1e17b98d3c50228d66ec38980b6dad716db339a8139312d663e0d614ae87db9b517a9722cfb1abdb7336d74bc45e52395c1694ec39351629e4af1868736f6f9d47c7464ad7746aa71c054f8d8869bb9b4e2b3902c33922ac8c6eb1fcb819652d9d4c3e65c678ecf2ef992a09444a712a82229972877b188af50246197f4bfb53f719adee21e597609975ebd8a29f713ed9eb7786887288ffc773ca41ca13ae606f006bc89ccb6b648cbe4a8d9c2de644ca6748b1355541b70b0b72b1d73a02876c305319e0dc1451874d241859d4971acc2c2059ded3384ead0140ba29353aa5a91952812942706d66dafc2547e688736f4cf1803041461cf5b6c25a1be3ae725cd0db04d40541618653ec34adca0f25faf37d842b26f0c5a36118620206fb116d80701fd75c390a84d15ff429ea42ec0468cba9eb5c0c0c763bdb7093591900c8d8958a1a47bc1d66be7f609d3eff4ab3006e24d1a20fbe4217fc8a6641fa2e46cf081e47edb9d2bbdf160071f4f4d41c91f2112100a4dc96485c", + "0dcb7e68cbb54155c7594ec2ee5bab5d994051c820d67c7b6010b07733e60741b7fdc2183070e20de2ca624ff426f5d5cdff01226877fc8c8b4756159244e1aaa6d6426a7926d279676aa2e622f31fdfce7f5c1cf262abe97e1021fe3a1c8d51acfc69ad39b1784bff34db67ea989e7d733ee40a6d1cccf2f7b76dd6b0ce7d1db16949fa72cbf27ce67bf06561d967cd249c2fd807fbd1b60763eb442d59a122ec0cdf93a1fc647c877949ea7afbeeb901afcb44e88d5cab0fb10fb1955f8d73ac724d917cf410ce8e613b495eb4e89bcde0e083a1db", + "03367d5f50068a89ed830c50b58b88f78acbd78f43adbe94c57d04b45d2bae723259f59a8e8ec5c926f7de9aeba597daa881877dc975071102c064acf6235242f68292b033d20cecaf9d5e7ce1e48fd4807e91a4c1c9b9280684046e8f39206313c0c1acc876b9e5fbc2106c87184d1bf8c4d4f513f606f4fbb48d468e6b1c8aaa75fecc37f803b68b0da26038dc97ec71d0cf7e3502ca6064baafb635c406541ff6f48b52b504a6b16c24", + "fe91281b8b9d5f6736a083e3c4b55aaf89e9cd7424e32f075e59c90c64b456759da85bd02fc18621a84a0c32a53d750e16bd3d06ac8320b482ee59a04dd9015c02686d7bc71e020b765fcde26720d93a95d0cb1d9491eca84dbcba748a17d0139675e09dd4eef66f77d67ca7a91c4639464f322ace59193bbec99a2fa83979288d57a3d306391a25b37f7d73065183378b2b3c52cc458ef69d3bb07de427f747def41694f6829d4596ed680819587a28bafbccb57a9af1f356de03ea6a9371c6d1a2efc19c40b9b0e3f87ac31e21a839ead7602190" + }, + { /* i=7517 cDividendBits=1172 cDivisorBits=210 */ + "0b336d6be03dda7aedb4f9f0daac58aaf5e18bb76fe3e2583a649497bc482a075ca0f55fe3e67def72ef8547b9de402f9ebd8150b556d0a732fcf04211cc8cf367207910cc6fd610c5310d5d23c99f586ce6ff5605f11debe7977219c00b78c9174e20d1497deb43a2a0bc6d76cf4a92a345a401668790988b42435db6101956aa4ca6f5a1678f10ce85a3213a70f0b3832b9d", + "0164e94785d31483e511ee3f7c29367156879d4353634b46fcf152", + "0808b4ad2c21c70ac611c7e15ca2de1650a9d957121cc0f22842a852bc950031be5597e0bc6d6d485afe5b9816c5051108dc841b17a6f30803d465957c815a0dc667a3f6e63af8ebae1fcc56a290d65947e6c53d9688f07c85370f92dfc732c406550c09d9f5d5ed269431e77b0a751d4420f4fa27a74b025d", + "9e09b16f4364d5bafd3b0ed65c04270698f3bc712304beb6dcd3" + }, + { /* i=7518 cDividendBits=755 cDivisorBits=560 */ + "0127f16bbd9fa83cb7f079ede9b34926fc2973ab45fd4fd3db37da3f6569d1cfbfc8be0695fe41b52f7c61524e5d6e63e81eb7a25bfeec6620f0db0b28f53359f11121de8e84860a087da763cacefb3ec28330b3306e1ddd5b34cfd634d111", + "4ef9f33d3d81b3a0f34de25c904fc1986a4125a7000a680ec8c5223e12ffe84aca619d2cc6f0fbcd95eaae4f15f4879ac30be68507474acc872a276bf0994a3ec09f6d397ac0", + "03bf4ad3a4f2e9645d8d8d33ea64f8892fcf243f903387281e", + "18d6211511390fd32c58e482c54ef926435ae2b90f518c96883516b330240fae70178d131ad9d682c0fa9e3ef049ff2aa4307718839a959d274edda2ebf0ec88604c130a6e91" + }, + { /* i=7519 cDividendBits=2131 cDivisorBits=764 */ + "03d1cb79b0a915ce6fa300de8d8890d7c826e0e7d8f89fd1d612d041e46a06060bdcbffd43d98227074affb55c15385abb0446a7dee60798d06a34a7dc9ed74608fad0e9e94f87ec0fb289b52018091253f951a8a2bab1f7b410194bd8589ceb7798564fbfd250fae564546e5d9490da0fbb81d8aa15ac66b9f22be6f6c9515b19e6b36cd8a77c68964006e9bd044f65c2ba70554f535efc0d59d9cd7c311fab6d74583998d93a575655e9bf987f8f2440feee8d88b4ea56792c0494ab3bd4b15ff3c811f6224da2fefce7130ccb2647b39c65860b4454617526835a679bf6df516941d496ee4fd1b90f9efaee6ab6d2809ac8085f5ed6f92942509894824f061f5d5410039c32d85e879a", + "03af31efbf57d5dc38d37a5b3d96e9c6bf7a997c0f869c9037c3f5ee85d4a1fe5cab181ffc03a5caac445c2eb732aa0c82453e8bded79d9fe86347bf32449563cbe4a4130aa2cefac31897997e49b19c00a43bc66356b673a30ce95ae25f28a2", + "010964182882dc7d295f77447897b7830d5fc5718897fcea32306da1ecf7827d44c9a165a87a6722e0b4a49ebd0a8aee64d9f8d0781cfffa10d857b7cff7b4e50614b5042d431b01279993726563d94baa703ca3e1f74ca98a0ba4311fd8cac3bc764cf1451ec32d87219e3f593cadf459f89501e7b46a2782fc62dc0dba5828e254adedef0852d1e6f9d103c987f06c92c219ef237e9f4b4c8d95dc79356c0a74185612dbe447a48cc9d33e", + "0d71d30f9b897a4d1031ea3693e24300e745bf1e1b2e3c44ef55f54b8423327f59ee0a286fdb82d7178d501f94feadd77ee7006b811a89d257fe5af5646de7cad58a854e2745113d4b74dedf190e61b606abff49a9ca45d2e272e417a32a5e" + }, + { /* i=7520 cDividendBits=446 cDivisorBits=305 */ + "25855670d17a5cc98425cfe880a5a1a39669e77190e1ac5e1788cbb57ac9cc8c028f93dcf5470ccb25be5eb3b76d7a964f58ba90fd3169ea", + "01ef442c47f9f32608674830b7c4f56a6e11fa6135b69983fa450ea6f3d98b9ce13289890aff2c", + "1364f01c0cd71ca9eaa2fec52dd7736dffe1", + "4a91e79dc2e636262f93636dfe88fddc2ead3d8a6d3092224f48026b90f1c301fbea2c9e503e" + }, + { /* i=7521 cDividendBits=1633 cDivisorBits=379 */ + "01988f8656d27da96c31c54bf88bfb4288b40ac854e1b22ea1003ed001c5893764ec15a5a14f902f495b9e66bef71b2c311453874fbd75b1af82f6e0fc167397d140474cea842aab04f6f207b9fa39a265c20a54512fe56dbe93b66feda745249e3df48f65c2699fc6f00802873f8d285dda8357bcb7e51aaa186a0a2dd0c572c084695121ecbf1ed6b3b051c57cdd5330e7f8773f338a3862b3a6a2a11f62003af4e5a9b2ae4dfacbc7818f6da9b63c625ef579019bdb9209a92f05d7c478929f6b95b58b20a94c25cc0dada8", + "07e4d137cf54e3740f5bae7397b9734112e967b3802271c7cc1ee7218d6a28ecaf2eeea9885e46fc5e7bb5a06137f40b", + "33c1cd8a1216ff083ab63ea809c4ee1f6cddaab1fb5094f1ea383ce63062e4f39ac09ecc7c92afa047ef957ffac7bfae7e3d3846cd734d9b77258586e2c3ef8c450f3dc5ff35403b70c54f24c2cc160cfb236be2d2db50adaa2ab7cbbdf96db23a856d0e670b60086b9f51d975a01999a0aec9bcf2f2f5103ce9afe860e121fef0bafda15b31cd3e5ab4dbec25d67976eab78867b20915bfddac9ed6a0", + "059ba9b62e2ebc8bde109b9f37942288d9e540fe539531bba6092c55297e50554760e908fc4370a4baed3ba54049f4c8" + }, + { /* i=7522 cDividendBits=368 cDivisorBits=251 */ + "d106c8b02cbf5dc9e159eeedcdaab5889f50591e5833951b7f2fa93de4cf81c8b09ecdd3f83b0fa64845849ad4c3", + "05d8e55cc58754de7f0edb6fccfc052d30fcbee46b4add7331e59f6f4ee483d7", + "23bf71e1037a2c58f4effced3b7dab", + "04553b71d94717977d43ac6ee6dd5d99b0abc38f363afe1940c73209d009c926" + }, + { /* i=7523 cDividendBits=89 cDivisorBits=30 */ + "015cc18302dda54d59d506e3", + "286115a0", + "08a3132645944fdc", + "103a1163" + }, + { /* i=7524 cDividendBits=185 cDivisorBits=128 */ + "1a8c3125077a4b9d9070121e6aa95af4462ad898991743", + "1cd23ba697685ad7e5a7156281cb439d", + "ebce1c8f160080", + "18dad445cf7e6b4b70010c2f307948c3" + }, + { /* i=7525 cDividendBits=1889 cDivisorBits=1229 */ + "c9daa359a1fe4a50402a74daadae46dccdf5f83fa33307104359c0045287b4f0e09e761ed67690d1fd309764328c0d1dec5aa5445dbf9f272b13b580332facd312af95772c414bb447f74a49f39e92ceeb1a33811d335eb2ebda0a0939dbb0c4868d78b03b9c6f21675998be8c7590da2b5a59ae337338a926573e1cb605c5066ff724ff11363ae06047228b77c0cb67e723f29bfc702991148d9a50c78c868ba2a5ef97f9fe60d661ba5a07dbc7dea78af4049efe9705a1cfb0ba161ce121c688bf15c1c3854c92dc7c5e888710636216aa353d6ca080bda27233d97597d61148d604697936575d529735a0", + "056412896cf36319db72f6df58216ac6d38edf4a7ca25974fba095f89af5229e04869b31f448eb75fa746913faef41ab720ba1a1daa9ef25ed5ebf56feceba4d6db5cc5c6d6b0646f8ca42752dfe28fa9966233ad01d4c7a357e99e4ad37eb470add2d1f1f82ab38317d0c0be6d5ed1a038549df611a3369ae718267e248f7460df0336b8b32c555c793fa6b9dce6e75be7e82efcfd49ebf42cb", + "25718451002f76cdc2bc68b6f6d506cc37d7c57873a8be6052d6865b6a891ce126afc188e183d8156c0a5780e9d43088c83ccaf4b353450e6882c74b040b232a2583da82372b0920afa601b774a5ea981e1f2d", + "01311eead36a2b05943d70da87390866c0a1cb09a714fb211ee59fa5312440705b07ade5d5f775eb4091d9c2487bfa0cb1693c441eec7a3afd1df19afc9a16bacc919817e4129b160cd8bbf024a660bf40c2b87cf96027b790ea89d7983aae7ebb5adbea8ecddb8ee390e24635a94083a9ea417e41acdf80df6160baaed328d4ae922da21b3fa3bc2b76ee03443d14b1ebf20fdc0123e617e2f1" + }, + { /* i=7526 cDividendBits=792 cDivisorBits=514 */ + "b70f19a11d09caedc00a5545204d4d80ee840b2c4ed46f8bfe3db0da3d46c6620b67631df73cdc29139ce69026ff2cbb45eddbd67b53368ffe9bb254bf82ec9430d5bba078110597bbd1564f7919ecea10b551c7c397082337b648251a7f5db81fef93", + "747a81cd2e463014a89dab8ae9cf8dadf03a53b0d757e334450dffc74ef6447cd6320561c27a624344668e955c615a3f6c83bcf95f99abf56416f41c4c7cad63", + "0192551cd84e6db91f7418ea2ca03a9953f940f3931dbce123c4cbf305aefb556096972e", + "62f1c6cb278e0dbb80b0a6cc6dc00b02458061dccb95cf91e2df48532b418c82631277fa998b72e10f6c69c1aac15d9300aedfa3938882ab8e0abc38b77162c9" + }, + { /* i=7527 cDividendBits=50 cDivisorBits=49 */ + "8f7b4140a99d", + "c972073b70c5", + "00", + "8f7b4140a99d" + }, + { /* i=7528 cDividendBits=3030 cDivisorBits=654 */ + "2398bfe41336266f2fa2fa5dbea3df2d86a968ceb8f92b58f19caa1831ea0f932bbcbde36ed342a5fe3c30d547d70d71c7f93ce82870d1df22ac41793451509111110e2feed376b5b8740d7eba3b2916e04e56d8ae5e5c54f8ee3c0d0188c5bf5e4d6a1c0f229457f7873927d3bc30db4593b3eb2d79cd7035e326a8b187775bad06cfacab19e5e585668d5c404f9353b365179069710b942355fd41789d5903035f3755030baacc4125cece5eef9b19c3460868bc00f4463b5019088a2a78148ceb10a3c7a44612601daeac8f9b68e2beae5aed9da696529ea32febe0232f166e0d7e7819b5571e364d4a00ba7c8f9d1515994c1dd0d2426f5396ae97d610fb22b8cdd86906935e0b8c4a18bdcaccec1454d950f7458e0030629dccb6dd6580645240f0550b89038f19f68d6389a1abb77e4b16157f8fee714e629454d3084544ab562a8b1549434078c2d47d0f0226bad8e6ca6cd3eba1696da4d2eff9c86ea150d12986836d827a547b5ab8d1f8752d93f71af5b712abd33589", + "11288e0fcb795a432270d6da3ff9534ed24533107ccfcc8cf1281f52e8f18baf6e9c8c72d44b84abe5ce1b9a5ebc3b0d66e75bd55ce64bd7461c6e0c14b22580c0ce08f450f5370133472f34f578b14c12bc", + "02131850e497b2c4c4bf0247473080dab39ab939e9c26518806fe3f79f74baec678d530b256dfed0c794f9536be1ec8dd616734dde2a8b670e54254e5d7521c5b0b49bc1a1c93422f3f5e608810bef446f761b0699077c876e1bccdbfb94ad911aae40b7f6beab0ca9b713079b529bdb6fc65fef883dbad988dc3f7cd2ffa8ff2feffe58fd155475c160abcda667c7aa0f4e5314bb2c1c21f4e2a4e7e83ef4a3526f8f399740aae178560ce00ed95ba436aa5e85c99d754615dcca439642fd732b4beb7543e0c204cd40117860b70473a6e57d9d577c33f0ddce404b81d6f530e2ffe851ae38e12aef1f3a052c1d0639c9e7ea91c2af9d820e8df2acf60f5a2e14eaae35862406e1cb9c6fc2705268626887a551799f6c88feca114377e4809726072fac85287ac41f9b", + "036e491b643d8426c34e3ce382453940a8fb7dd968754b360593bb3debd5c53f78122b99ec718c8890013e92b49587e437540d33c22d9d8986f659b9cac194b75891d253abe4a90bf6f55356e0fb2c8f19b5" + }, + { /* i=7529 cDividendBits=189 cDivisorBits=90 */ + "15629d58bf218847d05dff00c041a4aa42c50f2f837d4bf7", + "0107cabce75f54de290fb18a", + "14c0e77d3dd2aac2391b9f5d8d", + "e183e1ea7157b55fa360f5" + }, + { /* i=7530 cDividendBits=2728 cDivisorBits=2467 */ + "70909dbd0d868d61fdf6f86bd1a350d617f0a1339b0744cecf672709fe5be7f36e3ba008d94bf1b8d495b84818179bcc16e768c3c2d2517becce3d94294dc2ab979a9d843fb3ea0f4adfd9d950ce94fa93b7036d08f1a649e1096ca02d29e09758c7454d3bc78778e3793b77d6e299c5bfb7943337103c4febf9305cc7fd12cc844c3aa70586b4d49adb1f440b72e083e41b3ab15147d95b49b81c5113b2931ae75b940792534224e24380dfa23086324bc0fb0ee1b272b471c25a49c1c166d49947a614b0ed2e18a2a946854f47652134230c6ee6901896a5269549cb85869de8669a9f5ba0ff7e9ce3c567bf7dc996f7dd93f5e8259654430e9e8b1b074dfef06afd5a8eea55704d5b938c9cf49ed5f2610359a88620a393ffb737a35175518156a792849c60fb123181867d2c323c7a0fdc8fde2f9e744ca4ee5c558323fc8d1c92466c5716bac4903d5ebd027be08c26af3277", + "0309655c0749a27980d1d864523900541c85814a1f3b6ffe0bce488bad8f0f30212c15cfb762d3c61cc8d81eba7b2a4201e282a8bec41cf425b4509763dac1626563312959ec989e3bac90c3bd3000b5ed4c6d101c21abea1a0b5ecb710cf161475c5fd6642ea997545ac258c7508cea6bfcd645e28879f3f024631197edefde5ebd48b526f749e9dc1803814ae5f6ac78fa68d83c49762f267b3b55982eff143085d5e827e394414649a3068f9121b045b2d718ad9b8a6e8a03a4deba79011f3f3cf9483b7c065f16e6ecc1a45673e1a28d3518eb2d95220a0c3dedaa2e477402da506b24fe6a72e28528295af1853311524853ec2bdc9805f5102500b3d5887f56b45d00ec8ff5ccb62900d9507d6f668962cca1196053864c4b1491fcdb746709afac4cab5ae6aebfa9a43172d7f1d5e3cf65bd", + "2511712f239ecb32adf733e4b38dd18eada7e080647115ef1d647c0f3fdbf112ce", + "566cbeb0ef265e22c0228a2352c63a5536a3be9da6073eb0b054f69289d60dd92864088d88e55f6d4e2d13d694b9e1fe0071b0e1eb3098bb4bdc05d87abedbe88c3c72c47ee4472798ea53a3c9d136acd1f386a8be51738e68a607ac605ed5b2a4051bd569c24ce6a94118508f76ddfee7854d693d7a219d9f742f5a056daa1c4cb1ea0a20c736ed27a5dcded06b9cbbca2c1aad7d592ff3af99d3ceb412915d516836adff20704103212c593f6a5c8f5af2725bf0123d65f19d51112f6a4ccf0a4602ab2e9378abf2174314422d2d5c8e3df6c49a6b11cddaeee547715363ff8056f48b3a831e812058b318f8461d64b30426bfe4a354b53400339cb0612b8c2069921b377aeb391249d838e1aad4fc0d3339f0ca831092d54ecdbc97156b252dbfe9eb95786ae2b9818a1a72ec3d9fcab70a61" + }, + { /* i=7531 cDividendBits=2741 cDivisorBits=2302 */ + "05a76a30138668a53d9beaaa7fcd97398edf94ef53f8e73d795b0b33ac8d55c1475bb41100a77b380a7efd553ac6a728543a09c5abccf9790331747fd255445e87f16ee7754e0a2e2eac87d8afb2d48245e75cf12e6859fcdd101d2e2296cf50aab11126dbeef283f0ae02ed9e389fd999d130b2490a447bad99fd9dc723c1a816570d3de6a031b47a54148ee4b21fcfe6e7352c6b1af7fc5fb8dd975cdc5345d52e6ed6ecf5d3e4d29d8097e74fd14b59cafdc8a1d3a2c3f134b0ae2f348e513cce3bb6ac7516ee0fdb953cee4d148aa7ef078739a768a805b4e72723d5edb8f1f577d31e4396b75f18afb5053ab9a01cfec9f19cd31361c7eba971f6e39673f200310f37d9e2838286e537bddcc21f10e29f4ee4c7245b23e13152c596629665a5f4c69141a88c07bc29454c3cef21d3f27807f428d82603068b8366233e749ed0d68a304247ae423fd1ab4d03099eb76af44c32d61e", + "2da6b47fcca4d75a89ac512ed511e4178057ef500ae8dc8ae6d343e8165dcba428aeb1b9ba91cba762b16797646d901f5ee289200dcaaf6bc189363d0e91b73504352f4cf2d795d6b3453ba2145ce30656360341e813d1bf47e2a270d7a2fe5b4c5e2bf14b643dbbe35596b21149fc53d2a560a7e83b739e1979dd11e2030a7b92d9301bcd315fa0b617fb3ab93e9497844e4212d6bb6544b4ef9e4edcd3bd166f8c9839fd04095e5a835b58675fa0c5e0a5723416f5f41038750f22c89b1041f7f06188b4d7d9f91c468a77f4ca2e533bee5f547fab685d700c2cdaccd9fc9a33eb3e0e443bc5b9401a3e73aa0e0c8672fbb1a67a91eb48c4b904b7ab876c358146a2b81bb8ac9b972d3710e97de42e966451c50c4a608003ca4f406fdca50c", + "1fb4b9b4a987eaad578d641743030035d0c4700e76328b1f6464ec56dd817b552395d889df798cd6172be7c75c897c4af822905f68806f", + "023a64e1600fcea7b06b31cbdde1c9dcc924f71849e7c7ff03ecae22c92359c9c6cced6fb79b150c0e2a4f260c9613e59067d1146fffa0a4db309c9df0109b691aa69451302b89554c7f6e50521f6a197deb99c51b0b85d828db18fc74c44f2a3b26c4af64d11fc53bdf03d393570c1d45421501af4a348df72fb6593fda6e1a8b90ad73d805f61b55a7bcda7660b07c417039601d3f48fa30284d691eebef460342fba5c1365a039f72779e291a02bcd1a70feee3ae520acc7886c0b877663f69bed59780fd9b03515c1a19ab25a59974c577a8ca0c8f13b37f3415f25ea262076306f818b4444db55afd2b1ea2d3ac40bfc6a6cf3b48cf994d393486c82d37a29ab085a4f7ba6a2590c9d548217dbb2815b54e22cae5aa21061472f82145ea" + }, + { /* i=7532 cDividendBits=2034 cDivisorBits=8 */ + "01143533adb5385a9d04f91a19c416bbb162fe7a3ace259f115ed80770e3bc067cb8f3db7ea5cb1e97e68e2dfad528e2467b0584eda5772bd3e9de42d75dd9bff9b0b8385be3b8d2ecc43f23a81524feed4d239cdbae9e3f051385e125ddf1c02a0f17e7d9c4013f4700b3215dcdb22913cdf152350ba7a6d4317356f1f364ce70ce1e36046a2aedc5e67237a50d4881dd0ce5b985c05bb017f18f16acc4db8df4ed4960c0dc1edd99d2c6c23f9a3d63d63b1ba5daeff21b2c1e375c1110e7bc67ef603a14fa7e8a2e274d1ecafe89e8f2196cffa7f9c896e7955182daed13a41d5b7cd2e8d88884246320bfc207baa2451e5f04a2a5af66109d3070c7aef9", + "d0", + "0153f2b5c21a1df95ecb0b33d0f1570e642b11d18373df88b2eae27f4fdd362f5e6d7ae6c3423511f6081173aadef73de0976941247ce17104d1118d57d5f84ebd284531ac2bf72afc053a04801a0626105ef0c10e60c2c3b77a7d63dfd615d8d14da744bd400188f4ed2b3cc2383dbc6724da3dcb22096addc6b557512b8fc300fdaf0767e52124a4ccdb582d9a31dae8ad6981dfb1abec6c3cfee0d4a3845ff25f1f3c010eeae95adc0851895b5f3fcc97847d5c3b029798c2ba49ed9ea70f44d7d8e506209bbdc2a6864d489bbd6d78bcd4ebe26e80b9ba90645248863f8ee90e2379bc1e31ddb6a1636229e220c7b787d7682aa4891b2823ecd9934d", + "69" + }, + { /* i=7533 cDividendBits=939 cDivisorBits=705 */ + "073a818175a5e31572174884b71c1142bbc280411c830b4fd5e9f7b96c0392006f7128762eab2331ae457e519b4a08cedc98719a499c46004f5ccb2b8d371bdbab77ce1bec94aa1c844ee372019921a74a81c36c73bf2239714f26d761ccf815c4c843ef951cb7dde89237fabf933a8d8f9c2f4cf1a4", + "5b7b41dd9de7dcd16f0dcbfc6c28d1e6b751c6caabf2c46d875464d8861691332a3fd77efdee60273cedee56e7cef870ceca876641a92c0c06cee025ca37a7f67f452a2ef9d4b16bf75366a86ea0d5933a9e5f427c1bd573", + "143a6b8de49531eab07e3e79966e92ead645a0fb3a2a1238cc276dbb9c39", + "0b9e360a14f550e5cb54cb1884455fad081b934ba23196d28cf63ab7e58274c6f5753012fca7396444b873435cf8382010025ffa99189dc7bf82f389145644726b77b8c9742339342c35de0869878dd5e9582b71b5075709" + }, + { /* i=7534 cDividendBits=65 cDivisorBits=62 */ + "016e05ebdd766925a0", + "0c38f9b6d7c558a4", + "1d", + "0b91a227050e1b0c" + }, + { /* i=7535 cDividendBits=3537 cDivisorBits=367 */ + "0118c2531212603d99f0e903f2dff83cf94e1aa4fd58dd1663c80f96421bbd41e1e7965def1e4a7149f97b145b1baf3893e47e85138ff15bc720462c549c3fa4867c571adaed902f9ee89a0a435fd08b38843a4c41decf31d973692a1db3ba8a2abb05f9ff1aa5dd511949c4ef40fcca7270701a36121fdd4e49f47fda1e252e71ef4475f41a37cad73348e41ef3cc6adec76f7cc765efad83a7c592f99b8662dfa8e2bf9c9d39104e2b2c0cdd63277875d18b563122f5a023e67478497d653d2a724f350f90d918e10921d0276347f7540f3707da0763b1d059b994f6ca6cba490dc92a077b25b752191d85e2ddd9299d4e0cad49912f6529760cfa0ec6b86423f8ebbc518f762b87f9f61142d5f837fdf6372cd3791affd144a45dae09e354e6fc4ce4e36123a2b82ae8e92aff69558a996a50dccd650bb8e9f5b97762b5ea0865eb6f6d6a9decc04d603ef4107a95f528ca11184e47d411ba2cc971b48d9d36ee711053dd8777bc5db6a872402eaddba0a9f3b2b2c794c409e45f1ad00af00735e4f7ec9d566d7bab00114044c1989d5ba10d1cc3ece16ba65ba90682bfb84ad29abdbdf7ed87d563944d8d54151ef704602a78cca159dc3e", + "75c0bb70ed40590658dd02201bd7b89d7d7aca3d0b16eb62524ec832eb96605907046593934e773bf77d2833cec1", + "026262016b92d18c26064077543a060b7a857f685a0a332a231f6aa65314bfb33fc25275c5db4e894d971d1c025d38668e328b8b9e81d091250fae31c52a38fe65c71215a47b917fdf26015241ecd66951e946b5f0c66a242c7bb1b12610c27beeff8f5523cdcbbbd35a58a70d16300254a701f13911889a566927efc004a41152dec3af93de3a53f3268ffadb5a8b74cb723c84f1abc07747c58ce050e5f0f07860405bc68a32675b14df25607025ce5dc01703349ea639ca331f30d7f6dc24eff8d8c7e83a4f3c6f4069e78116a99b0d952a03fdb4ebc3e934dad716acf3b98234deb574b058d9a12cc1018cf812deaaa52d8f4c6c7c944676966fa66eb092b5c830ae9bf8761e7a307abb066ce96188d5010bac1a725f0903d4fe020616f63653f3bee3e320f1dc745062d5a2abcc064f6281bcce8edcec53a7e7779e48bf50869990f51454bb62d4628c6bd87e4c93a3a0ee57121b20a602ef49124898b62aaf82165d3215dde6223cebb899a712b1bb34780e8687ea33ddeaed19b4644c2d99d4975252d5ed30243036", + "1920628c1b61c164f1ce65c8309f7908880dab5b630ea4977e625f588f354ffeb3eece74a94b572a71222c840f88" + }, + { /* i=7536 cDividendBits=2491 cDivisorBits=2234 */ + "c2c227400283228711f13f07940d653cfe23d61a3655cdf175a2871593a11cab31e5deac2fff20ce5a62b58818c2925b81914130aa3ae86ac85a10fa181f1192cb21ca84d3a83a9675fd0c3e3b15c497c6135547ba2adb479beeb77d5cda96aab8a229577c8596bcc9c54e25bf181172917898b84236d469b3a1d406a9acfa28e7693079121ba23ca7f6db003de19b4b0fbf98e161810acb674a76b478ed0225f7a6ecc67ea199afb8bb73b7c7f6ccd45047f738e008121cfc96051278371e59f6fd67075e726967397779492bd5c16155ec28868342222e167cd06c44f5ac3dc4fae15428f34d87048d0fdc7b9e47c07b828c58f5f3601056cd0d8766aae14e496cb3a7fc6c2896d5658e3aa3976f5c1d21cdede688a2079dcabebc0304c7814d61cd8e2a53bb22aec5dda75586f993d2457f2e4c1bee", + "013b4c7be1a2026015cbaa645ac1ac90197a6a440c830ea7d5f73deb51657c489a76c444c90f5de9a171398911c7f633569c79a78cfd5943b56e75de209dd61119d5d31a2673c9a4a53e90dcc58f5af077880d00f9bffab5f922e38530f0916682e24080db0d145a0ba50a8eb053307e42c2d4f27721a5b207b5a53733587d7a734b0929704159e02e75809059467819bf312b9f60d396811e73c47ef4d5ebb86d10331cc4a3cc2908a7e82a475e03a93b60101a3d5643807431e72d6504595e6ed9dbfd8c38db7d178bef70481e561768a55d3a0efe495b54e4cb926bcb6cf80a0cfbc707a30f5fa2fee469036155a3c19026033e76ebf9f3c7ff9b1a1bda51c00a973bdb15eb93f355d5dcafc3c11b4ecb58527e0b5072", + "9e213f469b1baabb7502bf9e00c36c466683cfdbc6c77ad8b1ee8f12b55a8701", + "2ac58030773b82866795b6bf73ce332e8834c4a833b41ab18c851b4ba0337a20ae6856b05e286ee47841bb8a9b3bc2959c9809a5c468aefe2f12c40b946cb0aaee8b3609c9a72e4042ddbfbf06f66fd000aa52227ec1fc5b39a25270833aafc72c36d23ec63ebd279cd663ed1277d69b6fe79cda7d476478d0e9ef81caa1c139d294cc881dfdd43b7ca31ebe66b6f49d9d387bad65ff592df282ac6c491e46d9a444d192853a9f2b3401cb84adde508c435ea79bf8f08e76cc8a699936e674996038bb1fcdf7db6d5b6dfb8741ba9939e6a9da25c28b17de949230c73458c34eae2ff94257258e58ab60efaf88c929fd7fe83cb48851199dc5ebf0a075f80da83cfd41048f41c52ce01eb4d17366d8de9dc6d5d6c0ad7c" + }, + { /* i=7537 cDividendBits=1715 cDivisorBits=1385 */ + "07b2ace673532fdfa262aa2038544da3e4c3e0b2de4f84c772c2694229807cff287be6cbfdba59f12c8f9ce1599c15b22bef79c2ef1cc553469c03ab8e5e34b70d10dc60f1ebda192e6389063d920be0e2adeae6200ba6255751938d414456d63270d436b82d66ea990941671b9d6273bd39d361bec86eab7e5ce65e81d513d58772a7e164b74d2138f929c905dca40648353c9f7e1ef8b5f5a424cc12d1ba1601ef1fb3474e7491bfd94c944b18d02e223c378d8f0af1780973f3791bf931c07d231317b2d13aa736095517bd3ffc6b3888128e492cb2", + "141d1232a6c0b5d7ea3ca50a7528c46738530be3812a27e3dafa6da36302dbbab4573356aa69cba9af3030f63ccedacca94109a635b95bd75086cb5e89b1ba4ff57556d1beaa550e7e1a2c9cb3da6585620af5aec21fc4c3ad8577b309650f183d77299c0256c3c1b248c9a4935b99c592ce84d3220a766fd4cf4acd28a2f5ea319e9d4933564dd51cf54e7eb2c20b5b0b9f65015309937e3435b804bfb140df1694a397127114a417e8ea5865", + "61fa3abda69fe1e233a3bd55bfaadb61e48fa7f9e8c6ff82965afbc0a15f181de3744d3fe61eab2503be", + "7963ecc5f0ef7c657630f1a01d6b52c9fd78360911fc4b44c6f367d02cefcc0c9c8bac83b816d0989c9687a0a493eb6da5e0b0d71d9bb692e4f39f3136b7fb31d87c736d1f8365730ad1d97622dd8157fe5d7fbe9d0612fda315f7d9b839f2526f8a1d938e1bb9da41652886630d9aa292ef41fc9be5ba1bc2002f059257f142fb12eb72951be1bf4bed3ebd463e3c12994675805084f70a3042aff661bde667838ea64b973529d8b3b962bc" + }, + { /* i=7538 cDividendBits=2351 cDivisorBits=948 */ + "4bf5f019559000b1f1e1e40b5b8078dd4182870f0200931b8daecb0de7aca0c2d2f82a5df8eced78ba9df4880b11518d6d74c64d27bfa4afbdb21c3052532532da4f2bcb7c76fc49d22c47967fb84441caca5d19c35b12a32ec752ecdf1f3f9a9456dd09332faed39def43e6f9dd1efd16b62f5163b9703850cc26ca2d11de3870da998625a46f9006b832b4c30283af80cd19473d5d234c17d88f5ed595ea74b3f4763c01b990e2ca4969288cfe8458ca1fd20f55ab1baad1561971715398a3fc0c4425f40af2f1ead9e15c04bc578bd851af4194374d1c1c23b9ca91596cb00cf03dfe740bdffa185a09170c048af025aa04412765553a76dd83b265c0afd7382fd616296a28695bb88cb7b29f71b3cda82e42e79e66519c61648b31902e3f57efe1f0d7f3", + "0cf94eeeff6063d48caa6e966a91dbcfb9a0e2b2542cd4fa5595f44e6058bb02364472dd8a8d7c5c4c9f6cb25dbe552b6c366bd86536108a0ffe6a028bd8632349f6fff8d1843b45e366b1222daa68f2736b5307c3814cb596daf43891cd1f910fcd157a1ce8f1506a73b0f150ddca6f2dc21d61637a0c", + "05dadaeb0ed118c808cf37dbdd474fcf834b4f1e1ea7279842d7ac994c55298a080af82cf752f32e0d6dbce90924fd24cec93e2b4b6ee9232036180bb64b479229a45a564d44eeeeaf0dc774827263de80a67f6246cece8410a9e5f95f821c65ca7a06c8911007b419998fac2b43e44254afe939f40e01e8e46b3fed6c7373aabed4708077d7324a04c286fd86ecd9768118df271b1e951183a6763dc1c4012fb1f2e6e084177336338a889cccd49ed5", + "0b0eed4d78e85844e39bacc10542f48e9f08ccbc83c6256ecb3ac1b15c8adeb79d1df14430125f3070f757903c0b7364cf7d095cf0f3a82202130dea249ddbb83ccc73924d68832ad68ff63e96a5e479c8535e36315d92fdaa029792aae71316972d00dd0d30623a645c70c800d5d2e582086fd2e8e3f7" + }, + { /* i=7539 cDividendBits=1112 cDivisorBits=866 */ + "94a3ab47b72be4e8d804a32e538785b969dd8dcc4597c59cd8da790a3e7384dfb25c5c5a10e6f14455e670cda368b9150cfe451f07ae266a0ff68967e6bdf69cb1c443294bb55102283f4247d5ce442de967d276b8cf6235cba204e1370fa4c46e89469272aca0996a259bd0f5eb3aeba57f4bfeb65d6bba312ed73e5535fa7fc3c832df20633b98086f52", + "0263a876315d5340150434313e0a1d739f4ebcce00d7c780fc2f3317e950490809415cd768c6a3572ee21b4ce715093e254c4c2f1e73985798c0ec753bf4c47bd918a9f9fe2f080f4e720855acdc3f321a34776f9491523750a3deda346b940ff3e8c70f945f89a14378f77c26", + "3e35efba4120829f161b48a88616e749fec453403ff78eb652020e2acb8426", + "01d142a410337461b8c26cd2c6a99fe50be7e2a88979c0c429a397eaef1fa033e9ede7f8f19f8e9a80d6b6db2ea8291ab2b11ee0f05dacca772ad65fbb913c9f723de3124a8f778e6504a0fe2d581cf618651ec6ebe09d1d6c444ac32b734bd658c00b0f1272850c26592669ae" + }, + { /* i=7540 cDividendBits=1817 cDivisorBits=1735 */ + "6aa644fb5de60503d83b39518a292774fb80d636093bf10341c78abf45cb57bd2af785464c9b5748effb4f13d719f073f577caed00c0502fb4d67a8761590bbccb86c20b100257aa8aede6a3401647c25d3f0caccf0237ee0c9165a648d9922a264d0204ba4b7bc4a198e313bb1cd4a0d60c44280c1e2d263ad943e73697a1b45798bb0a6ab01bd8ce1ab78bdd9cc4648ccc8498f1110f4ca52c918cb80549dcd7d36015cd9f574202e817c3348466cf3aed2c65554417fe8527577530d8897096505ab6e291b566a0881dcf2acbb85c93af09d345c92eb52cdfa9b1cf6f4efa9964f5", + "22658edce2ac6a23777cc549638e973a47e72c42407e9dbc7eba074f6e589d881223c5b28bba3802bf2cc54230f9c473b018cb0923cc5658b00bfcc1e8cd2f5facacdc7a17e9e38ab182adf7e6a90cf37d85caa3074153709c42b717feba5447e7c4499710daa735d2c19c6ed4806fcf9247e3560640f307b94c7ff0733b6dd4be0b27f378d06aff571e989a7f1b5e0ad8e659588ee8e8263c53529396c5bf1f18d98b1a95f8fb33cad45c47442de6566ac15f77829446a73a33dfa0ff9059145145a28e2fd8cbe49ee2ae43f2ea1cc65165b7bd60aa92ddf1", + "0319bf1b50ac3171699e56", + "1c28f8795608c4ec5f377d4f818fe10fec349bf7e5871e8a7da7daa2b1d366bd44657aeb59f876f8d96ac6cc9d22403bc00803c8de9dc9ad58942d5884cab0202fc1147b4d9227986f008915663251a01a6559512b510968d4b641e48b43d831f80bde9e7b7bc6844376feb0c3f676a6b9568c321579e5c5901f03effc34fb91d5a5b47a215a63ecf658c3027a1e3f1d44cb12507f02df71873d85d12f04ed67966d625e8d7eb64206f8ca53b715ec53c73e3f6cb0a96949c687af87dd5b50df0805cab086a85a68c64530c3ee8725135dadb8f6399f6f17ff" + }, + { /* i=7541 cDividendBits=2396 cDivisorBits=2096 */ + "0d670e938bd30b910a46cea898c7538774abc6799ae05210084951957836bcb68140acf160c33dd42f45f249c4a6e42025d4f23ce216dd041668075457071e78ce0f690a0060534fa4839b0bbf839767ffb9597868b94625d662438f4466b18fc445e77a534727347b877f6ba09bfdb640bcea860f07ba6c9f1defade376d1cda62e37fb641516e1b6339cdb4ce0ffae375b190292e415f4adcbfa2364455651a9e99ca1053aa97e5b0c59e80702a5bd317b13323520d61df12ed3506a2e76a921b1403695ac58dcd668a6d460151f1866bc7e6ffc9377d4f61218da2fd8fde61fa9100294ee7df261ccaa916d0f5030a349b5bbb45a91413cb7ea37c5348c832fc7377a9583eb1ccd958dcf29a7d2ce78d9583946e2306559588ef45f38bf1b90b251a2c5212f5e6fde0ce8", + "08a0725629bf7350d54f4fc0ba0993da8dd7a98a6ccdbbacf69365df1c723ce004cc8f58bbfebf6c977e72eed706bffcb480e0220296fcc3769614df9a906e6beb49d117fdd5db13935e6f44270473b06e6de4c3047e2a944bef4e6eec168e7e4efc7553988e8390040889c0677d7943a0d0f2ab66f5555dafa30677a51134ec3e1b66cfb9ea45e1b7cc3c9323e8a47bf9f39b1c62689fa5d0dc91e86158f92b23555c9ce16549c3f179dea64bdc03d446ad5b98d663776c980b88ac79ee733ea978f7e90770e59d626a503e16777196cb867b3f6e47af8418f1ba4c165268c6231dae7b255d0ee411509e3326850502d5624506da2d70643e3139dfffebead5ed9e210d213b", + "018db927196eaa74bf982c1b5fddff93ba9aff54fd2e7d0bd734c647e9bf5d75125f085767fa4d", + "03feedeb8c4756e14db2cf6499fde10476ec3d3c67c9ca3aa7e17efee851cbccc9b96e5ec765841b8ef057cf36c9767b5dfdf38d8fd2c018e9ce946b610e3ce6416798f1d56ef906be655c4b1bed998bd884013972175fcbe4d81313dcf4c39450e417310df53107fea7c546250a2bffd321bf76406cf2ba47551ab50e84ba1d165619ea14fc692601c5b652ff91031b05a4c5745509725bd64829eefbd947fa87f799b6d4e3a1d12d15dfdc3fffbd3b364e361306aa2185117613837db9ef904e49aa9425c87d1c39488bb15bd521e1d0935f70728bc449c4d5bb93ad6d046a276d94ae2dce067e986365f8226b1092242a70cf8287736e049f26523ec4abfd991c40ba7029" + }, + { /* i=7542 cDividendBits=469 cDivisorBits=284 */ + "117cd92a383eb74ef1a0e16aba91f65b2af949fadef46d849b8debe2bc78b794b4f0af78143e8059fd445e78f8128b3d1b0119ee6853e2af47ca7d", + "0210cca706487f8e77b90bee42649689a72717193ac6718649d8e609b0ba0c0e479f6315", + "08774fc9fca07b6ae2f37df8b1fb5e61e49355281b7e5784", + "01be6d19f2e13879e651e2f8ab10e9ee2fcfed3ca3c9dc97d94188776defbe009b1690a9" + }, + { /* i=7543 cDividendBits=2843 cDivisorBits=978 */ + "0276a0ef160f1f5bfc07f13aff76842cef018701ab88d019d5e73003a61100461524e3219a0a72ad7e5e05084fdb93b9f5f44f05bf1674ba6eeb8488e61f89ba6d8b9b88d96dab43663fdab66cdfcf3d98a77880cf123acc4c69135e563c721cbcf91512a80790be1809169578b06359469ef44a49f5e1a24871c24e0595eadcc4158e178124d604ba28c7be42a361a8a081999a00b115fbeff3ecd9c7bf845144d1fc4934b3a499f3ce2839eb46c01ccf566aa6b2299754be4f103b25229ec836b147721070cb79ee7919a41048d26874234398433dd010630f6bc111028649082a097f6748ddb4392206481b2068bb0ffd2351f68d12153cb268f3e7fc9b754246530b49dd76bfd00d710dae79f2b6fd73e6f1cf7d16ab7204ef3ca849ff188043602a014fc53678d2fffd481c4473f378c593182195d2a8ca3f5eab0e4060fd47365c935c9cf6e1a398227e3c6a7690c5c0dddccb6bf23dcde453db2b8c472f4a296a", + "0278c9731ca51e6aed8534c9e7da7689f1e1a35b1f9e789d9c94d0c008dccb329ec56e3503fc45db606c0e53f4465a085ecd9f08213d19fc4cc9f2d0a13f8b84288d1863ba3fd86a472dce727e4aaabf650c95e56ccebeb82304a76dd021e1dfe9832f8860f18240c31875d212b55bf9ccb5fec2b9cdbf6d2bd2e1", + "ff207977501c1590c8033a587e8c4752f5bdadd44d51735e3b3df7339eb62c33e0190962fc19286332ec9ac224fee624067008640561386b7c39bb5880ea863422c45f00e53c04e8b4455c418653d1fe68ce941be855ab6780f7f0df4e0440276787617cce11ab0393bed64e9d3b436219f8c312437e2f3f334397362a38adf8285701d4b2b8076ef37bc75973bdb7db77a406bb28f379a4e2c5cf0eedbbba5a13b47eb7cfa36bf6f8c0221c8af74c8fd041a74cf7793780a70309a3bf36e007b0f014a0544eacceac2ee6524948a5af93ce7e0a1bfca26751ecf15a9996140c59c2e05592ea02b839", + "1aeab5a8dfe5bffcf44c064cbf36c7545335d3cfff38516b690660bf4fe2dd90b2f9da0ccfd65f5812baff8cb55778ae4526b1c269cf4a5bd50914ec9eb1521091d326a34b3177bfb0696439038a515accd85fd45eb5321348fb1e3f43be2ac9c12f9a2afd1db91e37e12b4272660939685487bf43c511347d51" + }, + { /* i=7544 cDividendBits=2246 cDivisorBits=1892 */ + "03395c8159de28908b4c310ef68f2a0a08de04a3d7add851202c798c462a37935e7cfbe2cca7568b16c609c1d283a206ea3b5cf18ed354d0d082d6a904cddc2d54ed7d4968b17e195934083b3ca81c42bda3ea8cfd516703f4151916075ebfaf191abc0fe270f9e7891357192111b6854100259525009affd15f95f465009067dacea8551c065953b17d0f7a78f048f2e279cc0cd144b0597e5a842172fd35c5d52579a00db5563cc670bd28270b6408f8f9f59089e43c4f4570fd70fd4367be83ce4cfe8f453ea66198591209be3a7835576a55b3872c278ce6146a3e2c00d58f4ae3d953366e8e2222ec30d95b38c5eaacc9c758f0a8eab79dffcfa6d8d0945047c34f2d10d59f5cf0b2f191d8f347e0a335d0222f5d1486", + "0d2369d7227ce397d0c930168aa46d0eadb31e2bccb02c15e8c32ac8c8665af37ebf256c3a13e778b459b910c1b5ff083f0fc08f28e9844afaace7edffe69121da885b13cc11e75d657a8688f9af1b4141250e7034737c14fd4247428bb0f9c3cd2aa0e55801d12f773d16ab2c04ff37e311a24f077be387658aa049ed0b56c708274eb0c888d9c25722f70a7d19411a8d12d3888b416be88151b601879dc629d7d9635440d851e00357e45ee4423ce629e05961c6d15ff5e233e0a8568d229c6867901ab94643e3034941a045c8a0fb72814fc599876cbed5a0679cd8485ea0279f5cfb2d063610d755bc437e", + "3ed223804b38c20e7b47a2b3f6cf2d300a5b3c958344288e2ba8f507e647f32a7fcab5e5de65e8e533ee2ba6", + "04de9d4c1328cd9752d435eb3d9af3c2f2a86151ac20cb56c99d522fc728d9b3c53826f9c260048b0fff235a680b53937c0c682feea0fc939e48207aaf2dacf92ad64be46cbb24f5b1a40dd3f2d281cfc61e2f7f8ba55648b21226dc251e0c52c597632aef8a5ed4b899b53a25dee5a867c54386d6eab3099b8e073e909d15d2c6692827119065a7dba59a120aab1f387ae07dd3fa912b5e0fb0958af7ce890034c4d98ccf0358ea9f97c1b8c50c9d52dc92bfd29909cf25e3341a762be4037df0e26d83b596dc93dc80a92a97488bdff85255bb5ab4050ba56eca0606c849e5d6e8e48b2ec5c3f2eb1ecf26d2" + }, + { /* i=7545 cDividendBits=303 cDivisorBits=42 */ + "53427c0aa62f72bf8ded1badac0d4c695dbb7c331525430ce0934b4351c690f39735788ca8ef", + "03c5db3eb768", + "16116611973763eedd57891c19052d66649ddbf5f61da75dd243a6710baac69807", + "da527fe517" + }, + { /* i=7546 cDividendBits=193 cDivisorBits=109 */ + "e0a59452419adc2a98508185acce4335447fcaa6fe84c100", + "0cffe00882f77708c9c08769f791", + "1147fad39412d6a53bdb16", + "064af10f6aaca5af191131356f8a" + }, + { /* i=7547 cDividendBits=3433 cDivisorBits=3178 */ + "a0b317334a66bf760f9688bbd148419a0a7d183d47520f332728d9ce95b1417dffd1bbf316138a6abdd681670d5cdcbf264b1da1cd68c7e65d91374783e2dcb77dd386e582a4d6e74e49cc0ffcf4f863fee991e7915aec1edc90a7af78c6a213988d8b5d6c29d16fd53ac83e5fa1eebe4057627d4865cbb64eec7a9ad7f94833d2694553499b0ca53b57ce1347042ec4286649b3b6faab3494fd5d273686465c7d87f06d036d85b932afa0ddd16d6e6d6a503737f0728694390812d1358a2ed54f3b2c65e2bc85db936f31666de2cdfe4293aea5b00ea8c81186c80e5f05e9451451576bf0384c01f823a5e89832e528f86b77521d7ac1490d4fc183444b28de7564d37f3680a7473df48a6e94a86b5d0dbc95d15a5329b85bec0eec76fe58511defa3566ecc440d9391741fd11e81e8f8542c6ff6ebd31ccec44dc7e3569ace2d5abc924a44c607ddca57d7bf89debfec88e965f03992f8ca962034acc75113676c7a7c1b4a89a599649ddbb6e5140ef55e02d128dfa44c0de0109e153a6fe1f7cf8f0e756d7c7270eeb26988c0e4b46a833e1658acd3ca4f9a08be9be1b701995cf04689affeca9731a180be", + "018fbb78df59f3d03c157716fa4463cd1b1b518019be92efcdcc98fd87aab15f9a129288548b2d66a86514e7b843790e1493451244d3cde9f6f7af6e73b2f8aeb27814111b2f3a21c4c30953b4fbe9efa5c2780d3fcf40aade58fe59dd8de641bda7867c566789fcdbfa84fe67f559531da8bd1432031889e231f07571b79f52265cd061cd24380c1202a0aba39a2c229c27b49c3d15cbfdad9adac3fa311c73ef7bbdb3a85b47c2d88ca82d43fa8159e1a66539ac56e99defb80454be69a2c06ea493f5d2a73df356a1c00ff2d6d11722955d553c615208c2e964621fc950e734555112fc77e1b9e240ea6c63f4ac193eba2be84a00f8fb9189d1554f93d9fb722e47a96bbc42e4b7e3a39aa7c2bd4f6799f690eb34b8c3eeb636eeabf71de213a9cbd416f879c4e186c774006e2574a8e5e500dd6917d80749c26ddf22e068817e3000605124def5574f3cba5a8a2b6514098fabb389433028a1f988a0a9d356696f4506937546c22018f83be783f5251da5472d7e773eb11349bd2d4bf5dc1c1276203a9db8c376e6e5c43459", + "66eaa64e4ade91d98f4993b224cdf7eeb3552b29a69671c1fdc6fbb9048a6431", + "017041f7cb6a0dbb071b73e664a5044a49554957ef796098417e58bdd497a13edce9738bfe8fa6d2986899854e73aec93472b5425cb9641d17e963e7e8dccc6752b51afcc5f276b29cb65ab6647c3540f3252c14f7c4cd5ead86a549ec953eb1b8c696f2f4c010d5d1b3b5aa65cc19bed80b0dbf707dbaa6b8ef3ac104f7804c491168f5efe90a7474e18e91f0eb2d20911ec7e92b32ad189091fc133ce46ad6a8b161a6c15629a3ad4ddf1e7f525defe41f5f6ad607fabf8f83e775e692001229dcfab89a00cab665b35606eacb8b72bfc9e85763f7231f5cb04c18b2c26d75ff3c2d7d65f58824eb13222cd84f9d0514bb67e2f7c66b523713972128e4e0b4d26d0e9807e1ba438a9b447ce2ead00b602dfcebd617fba3baea723977f7905092f4c4b38dec1a6693bb8341139975a1c3adc2aad7a3e94db5b1c14bd2815f60849122cf5b288876c649070c8055adfaee9eec8b69290d00242d0404e15d55846cf3738b2985d4eecfaabcd58b901780e375cd89c1f89b6e0631f18e2ac3ea946a27914c1d3a6820d2bdf6a6b7b5" + }, + { /* i=7548 cDividendBits=2011 cDivisorBits=14 */ + "013d45ca6541398208430fdb7414a385385158dd8126afa086a6bec708aff0b0474a2e8342bb88ac1fd7b5b5dc35d11c211e60d98aaa886d6dcfe873a56a357cbd9b43e93aaac6de95c2b214f217e5d1a1c270c2b7b4f6873f3e47bf8c30c43fac7b31ca2f2331d67637faae3214eeaeeb57df86f98f6b1ae3998bac60b897c8b245c32fb6e530b4687b924df1f2ac63c58b948303a16402e04798c3b896bd43f3295fa438023453015a5a705f524c817570908b685a93e143b2224710f977cf0e1e822b8a9d1e5f249b2f9d7a06de4129b424bf883bf0c78018d9fccd74dd1d4e6d2f885e69390dd16adb4359974170d4eec5bee701038e3659aa59", + "0b8e", + "1b75563ba6caa54dbd73c8e8fc6b9ed43c5a14e6a7c89435e32892011917c5ddaaaeb12e1af6312b15f511fd3fae65c9bf1fbfbe74e1bf0ab71f05ae6c8ba3a25305030c852c62e28dd223646675dbcad7305ba06dd285e80c504abc569c7eac70705131f2c685256806769562390176db1ef132d9b260d58eeed5f8cae9a717905620dcc463118474a02270ad52405ea40d8b992710ca6afe68442c5caac6b3f0e3101dc5afb6deb5f2b5c6d25482fb737ff5e8d62987fc2a6b2aac22beba8258d6d1becc57c9ebf95a2583e597a61808aabb3e28d8156b7f4b7754131d59411e64b2a924f95738b91b752028c8e8b470bf96aa949951b78171", + "02ab" + }, + { /* i=7549 cDividendBits=1767 cDivisorBits=1418 */ + "42cee22ce1ac95fba7a013d3db57bb1ee6af5049e8b4259e2f12562ac0a3dec5ecee6743a3bce3814249b2fb504c79733bcb15fa463cee9fcb25fe9b82351bd48608d347e2b1b6163a9cf3485a1dbbfb00fb024dd4753db8e6080aa650de710aeeaa45dc5e56281a2659066e959de48b1b288705e7a480164d9c56a7d9ab81ba85197964985d7874f17d2ba7925825f1c8ea322243699566bd9b69d22847ed81930db9b2f8cf756a120ee03ef4b3220a62d5a81d55d69a3c0ef282b0999e661eb6f9f8087d9a3a658746635e3a02f0b88730f2206890c2be904896f8a7", + "7bf141056b02be1259d1ffcda6a4375f815f0553b35cfc8c062320c66949a11c7fde29957223cefcf5d468d112cd520cb3a13c76ff52793572069d01b5c7cc0dbd683f0eb5ca3eee03db018c956e27adb7a7050df8702faa968c7fea3188fd01858f95ff66105e1a608e26278f8b9973f111123bcea06226586bcee7779f7e155c5099806a14761af1dd97376a3e31804aaaab381d7c4e2c2b96c767dda1d06f42d83125ed7d6dd2dd858c2bb7896173e3", + "89fd96ae3ffb34eeafa7239475ba991fa5ddf9628c379a05d97915195ff17a1453f9397f091116f921f205a1", + "5c65fa2ad1c1cd8706a6b10391d91cd273528ca4f73512e788219101c70354473dbf0c70cb3e2705939b8f183034a890e136d68dd7c730e0b51757d9c4f8efe3964705ef29617c4e2e1357d374769087c0ab1ff8a9821d418717912649fed9821cde554dda49ff3c163fbfe23ae822289c62379fc8e983b045880520e038f18548abf0666d9436c0a2d78882a6c23fae7cbbe32182922dd14f0690196d92c44e4464669032cf14fedc2db902992b73a7e4" + }, + { /* i=7550 cDividendBits=3768 cDivisorBits=2116 */ + "c2f26df6a7a536ad9b2e0c5b70d27fecbb981e92c6c7d69616f25961fb5e7064d4bbec6dbcc0ce7a6c5f1a77f4d1be7bf8a9201cc3d7a731d8005e84aaa08b7d368040f6aedcb696e1fcc9a7c654d5830d3a578035059c6e047e5222e2bd28df0154eaa06d57c297e81455d18b624880ec1057f5557e145b90198d834eca15c7a251c70fa59df9f12666fb07e58080847972d23d928fec86f04e658bdde2dd6f118708209f3d80f3632d0e2bb826229ee0f08e5a6b27429c028b54b637bf598a0bf8ce4cb0afd489691be00b59a1204bda390dd73db4026788de73e261d11edbaf3fda90e3fae6819cce479dbb8aea27a0dbe2f3e0f759f7dd9bcc73dd831829b37ffbabd7acfae7d688e55c79f6062fb1aca76cb1506a348bc159bb3d507f2d794fd02002a169566ce5c7fd2cd9547c3056d8ee80e686e19dbe4bdeb5d8c81b11217144390f84e138a1393e391c224f0c25700d7e3c46c31eb59c599a65f1cc12824abb9eb0cc4a00de4175d67fbb0629afbd8df3577c38756d8ac0c1054999f5e0f863015ec3d28075910140ccb13c558c0bba35d5ce0ec5b9b8d5ae62c5d5e13f362bcb64cace27e251c21d56062bf08320adab7e3089b784626f647585bd22ee403abfc3f4a64b173d23a354710a13ab2665b5afa8", + "0d82a664d51942c934318e2ea7454441cd8fae7122ba5ea3a223600e7a03fce8073d444aea178c135826a6a07b30bfcc875aeb2c8a55c18fb83a3e8396cf56a21f4cda45f1d4c91bdc2798cbf8fdb7ce6b79a1910f1c2400d14d4c28e191eca33f2a17086f3701194a7a995e96000af5bf8c60188450a97e29863935e3812d7c4a4f46d0b193d47b09bf202e1d64d2fa796903166e97a881767e8d97c923d95540bdd9a3193cc2178355bc5467e14cd802693a5516f16db505e8766fa1df151ba5e04a2433096ba3b82f11f8c9b7f5e86176f0f8e9abb2c989e464e7da55a857d54753a401bf87558d4908f9a391a4256e67ed8db678cfd720dbad1a1ed5fae0d7f62e9d91be664c6f", + "0e6df0acc30cfe15b6a95a067ebc95fe34f3e89412bb9a5b1a264684111c2181ccda4cccd40402566016ba511e5690ef37545c7d2e496acd048004ae5bf1f67fef6cb18877e93c57a130f507e91aa76a196b74c4fce8646ed1e6ae72000633961bc92a5383565f61ffb2038d38bce12e5d7e74952a22b6c9423fa90059956f936aa75840e4454329bcf3ce82400721de85e7dc7d25d105adeee10fef6c92cfbbc8fcdf30dddb83d320b7b7953255579f7c1c9743985106640da75758c249a97efb196f041e99cea7cee9adf44f142f", + "0bd7ba10098da2babd3980fdf19c58d36cb61bc97a072a6fbfe5ad830cd6d4c03b2ee25d02fefba2ded6dc54c6278bb12a1f54e93351746a9526dc49f9afcf1359813cec884cecb59ceeea847bc6f7e51fc07a0f77444b8df52a22d3637936275a838fe38328928d875783d736d86c62ef57248146a8a3cb5f4f753ff48e4822facadcf8819db292b2da8cfbfb8289820a8a44df5c5cd423c57db807e159126ecc53cc135579b3ff81b950f1671b74dc29d7a5404d30f38aa31832844781ef016cebd1df484fee78f4c8002b5d0c326fd5a1356f3e1a4aeec515f4def53c7e510167a3f5f746b9201d128f463ec8df3feb4c9e8a12a80b1679c50eee725351dab4f8bd6a1610b3fb47" + }, + { /* i=7551 cDividendBits=3036 cDivisorBits=878 */ + "04250ce231caed924d335d63c616a6cf1448548ae18ffe338073cc20f1ce28b8da59a8213636c82e3fe638d14b73b0b5daccd8f6c172309b1cc85d904b2809db1618ebe72c5cf52bedb2c350433942f051f134f8da40ab66efe47afd856a3d4d4a55bdb6cc90e8b581f99b74a7ef3abc3f391f8bbf5aa7e5d8bfb30ac419f79f5c52ac17ebb897b73f82a8156abc5b75bae36a1982956ecbf8c2e2fb7b2d93af95eeb4ca05071b911f29dfa061e7d1269899907682d4c24015279d5f3a530f82896ea7876933a01de04be4a7de7cd195aae65cb50dbe79f0a4874e1bf5f180296dee71a8007891ffcb0e6cef39722c26464393ea0b5143523fdcd3abefa67387692a1af74471794ada71539c1e1bd2821a3d604816ee1bc12ead41b51d85fbd4ec3b8a3811e3babe3ca54a66d027ee7be02fcb2d598bee47a46f0d48e67df7dfaea1f9f29895cef4b78e2f29415c814e02f8459dd95a510bd290289f0748398394106d171194dd0f663d99c68c4c4bd9d788d8fd6c0bbec5a4ab9888", + "048a91abaaab8a6577bed087a647176b218a9d9be50ab4c09c419c554a62e07b578715e3f2e01a1c33a2dde913e2a1f45386246e664bd80617eb5fe44cbeff7608344d372819510bd6478a21ea5868904030ca32089aef7fd096eddd44ae2533c8128df539c563fabffd07d75cd6", + "e9a537b9860666e5d419855ba5aa308296e3c4baf9d86214e6a973a5ab1e393ffc0457a00d8d8b638b1f3d5f7cb7b8c8768bb213b53951aa46ad2c40784c875bf72ba09b4d3b47d609ad87e4e81e8bbf5f071d33678ef4ddf591641ef29901dfb53c75c0e541e5422d6f855ce860a3ae1c6554b8f8e01975c9cfe0ab61753d70fd6fe98e40d1b758e86946978ddfe80ae504a297126ba17653e94dd31bde03d8d25b614340b30d64fadac8105acedc530847b22739c2a558e889d8dfccd3fe0a565ba8796cef5e970d60c914f901b2de3f95e09824a3f80361f25976cd26a1d70149a156ea52d9dfd507d953c2fa4913d7887c48a2624a8c69d70f89df4de213a1ff6f4b8c51cc8eb85af223048c", + "7cfbdbe1d88ccc4bd8cb6ded4354cc7228bf9b55b5e2a5150c1ca4045047c5c74219cd0a082937d6a38a6e3d1e3165fc14f705a24c16c3caeeecdb134e038447ab74399cb348c16405248a30a2e27a41e0ff194efbd5b9fa292803cc0335930d2722abbaf7cfc4b0d6002f7b80" + }, + { /* i=7552 cDividendBits=672 cDivisorBits=484 */ + "c8e4119d0675cdf55aae4f3d1a4ad2652660489c4c96a4aa7aa1e0ace2ea6df4006d1cf48064a461e58441f556c74e64154be7437ee90ca4ff312c5d89d9867366357534e173d4235a8e8943337d65acf7bf4a5a", + "04f3fa9252177c9017114575e1a399ae7d0a67f4b8be814f364f859ec3358d6cc9792a0f3e40b29ee3d2a7e8f9c2d699b9b1567365e9cef350161516a7", + "288f20a9d2d359464965cf0f17c28795616141c9cb710220", + "0466e1deaed3b112d385cee4f12b1bed7f06fc3256fad9921ec67d9ca6962086a82875cdde9c0198037a1dbc3c839400d2f4b50625e645b3199e38277a" + }, + { /* i=7553 cDividendBits=3216 cDivisorBits=2236 */ + "c0c3a060bf40802ed2f7f5d54ae87196b2df4fb880996a82a0609e6efba7fdf968a6cb46b451af7db3ec2623063b6d82c1d37cb7005f15534298442a6c9a0ef129ae858513d4a8ba61a29e3d6fd4278cea3f77d07887df5ad0bbd0c68f39825ba3d59125be7caffbc634715b1bfb27a68fefe35c3a8441f34bd6b69aaf8ebb26927542b330d9b7798994fa29d5171eddf13f48175a9be116ca58d3275b780f387ff96f9d613e779e96ab09cd976ae243ded601cbc580f90b4060835ec2022575241377c06b090ec0b9e4072d51b65a898f4633ab2828f287bd26c598d8b2a8691adcf0572e491e001b5adaad482900258b684687c07fab423466aef0230b1e6425b394acd7a3c4f0d596f3cf91a744972509a6ebc571e99d0bad24298a46b6dbb85373eed1322864bdfaa781fc406cc39d55dfddecc3bc0e292258c65ebaa39552416b1a18586f2c578a119186db471f7c008dca94109600c29761015b2fa6cb5ab2b3ba29f6676c1d9353da72ee2b0656afafee9ad9750561f36dba4e71fefdacc2b4caf40fed9e98dc029b54230f92d3e6", + "0a911f0fa9f847d928b56f15f0f4a89faf4623845c5c51064e24fe22dc3bdac41f3b51f8843ffe17b6152b837e1c300525e80d029b8d5cd089c097b3d9e16492bd6689bfaf28057d0fbd6c1dcde92531aa3586110c44d08980363fb3803f95a5ecc684c090e09fe0a9737ee1512ea498525c7307878ec5d7ec0d66c407e80c832b18ea8d1daa08d768bb55ae1e8e3d4c89826c429ecefca5fd46d87445c4d1f057cd89753e2e1cbb4a915c51351fad371c74e7dc104af68dfcdbc34478826e65ad9117c8b2ac7a24fb130bef5063a0f909284ef1748fc187c079817f448b95aef8f64395315d0014bca29dd60b5b4145a84790ab2a922d7357a4008b9ffd9d49f71c0fbd6cd76e1d3e57b2694971f707e2bf98f602240e48", + "123e072b4348c41dd01b9e57fc61753836f4965938e7b67473b32644a91ac6c3fd4fdc09fa46da756cc23a1bacdb58e885928f17eb3e30d341cae2cd5e16b9309b1682627a7599a1384af10e65ab4711b0823e65d5405719493071d8e8d53b4a07402784824462fbcdcac579485b79600b4c16fb810f39ebde2a0f", + "09467697acf63239d8883e630be088f89f010d1666dbb3b28b9b47a7cae3fc8b4164af517e5d5e0f5555271d4ffb74061fe37bea3235143ff63fae39b1fc3c6e802983849315e117f2ddf0f9372e90b5c41ea1cbde06f576065bccf3b6d49bd51162494de5d1fd6ee80c8954709f7409ba06b28d3ea6b523d02460e37b5c533ccc84c7356b27bdb64a73d88ca0898fa7e3fe6747ccf25eddc7944f9f2c713958290ae565d90fc7aca6c0165925c00d8058283a79d4c48f1e8e6274d15b8dd28b1881657db73eb81c9bce4925e5a5e4e85bca562d47d85b6859d02bddcca663735d0e8b88c47a993f6cf50968cefc943053b39548cd27746d8d613de382b4d110af02abf85d5cdcb0fce633f8f84ecf5f6fd6a6f68aae2dae" + }, + { /* i=7554 cDividendBits=1648 cDivisorBits=1299 */ + "a173cd0bce9c2928da60a8773160f7e7f139aac92a53a060f582b11109fa0de345585c4a4125692e82c506372b2df480f8627150a6808c8085ec48cf4836ff5665448edb8e292eabbf4c78fe386cda9630c788ad62abbbb135fd12d220d4af21ad265c9797bb7c6f6c9a6d05ede70f5a2b937cef0b22b0db4d09d6a818a28cbf68672def65aeef6420b9424ed8bfc6cfd4e43b04eaf3473acf5e6d0048939211608e92e7a8af7e12a67ab1ce2ecc7aa828d96b18f1b1ab5b4861a6faf8e0c148030ce692b190c1f84fccc0ec4bae", + "066f674ba9a31fd87c3f63657c07e17cabcb1f967f175df0ac18742fbe086c0812108ac9df74c541635ec35fdbdb4da8d1e090f630742b45a17aae7fee2652d859c70cd99c577236e8171777ceb9d837afeaebb25a3f265ff7b705bbd212129bec96a1487cc9d8c9cd8bd4ec656f75dcee8646f37003708427d187bddbacd39c7d2c9efa540f86248260d472e0a3516fd32b4d11f5ae2c9f377f8b2c29615d8973e81e", + "1916cc7790cbf8298e82aa04d2eed7347703dffc8163a1c40aef475960f99533ea6f843c744d33729668b5e2", + "02db94dba95b6bd23e18748e23ed023aa5cd8f752efc3072521afc45386306cb962c0bdfb30dfac2a93b268e33a58a012bbdc94484f785951b0780069182f38e531b58ea9f7759ddca8dad1a78c96eb835cdc8cd1b4187cb3fc077fc7874b909122c6e15f7a80b62989bb532a0bbd090ebe8febb21ebb290197c571f33c4294357703484a2bcdb68c8c26ab1164c4569d6e006a45ca5451de2c882712e2096954c2b32" + }, + { /* i=7555 cDividendBits=121 cDivisorBits=54 */ + "0194c2720dcac45143a0a619ca4461e5", + "2259b80bec2aa3", + "0bc8820173a6965a03", + "14fa80f20093fc" + }, + { /* i=7556 cDividendBits=47 cDivisorBits=14 */ + "1b0c57375212", + "0c1a", + "023c2f884a", + "028e" + }, + { /* i=7557 cDividendBits=3472 cDivisorBits=3133 */ + "71ec8c57389bdedff5d8fb45aea1f019bcff557c2b0f3ec0f3631dd305d8e4da18ff3d6eebc0955e39c54c4c693425ecddb3fe76aed2f112a7a4ca016363c9d19311c81abea741e62d5130d88319fd85e0e1c40e579dce6b0fd20ed2c117db663c7407c7427eee0c18a748fbdc7d64212fb50135e48c80cc2109cce4004ad8e3bba977af4cc839607f202ef17b57a55252c8ce9c6c69ff251fa535bf81252b0be0d16a1aeeb463e334f54177710f7727c4839a5ccdc93cb8435e2be5ad0d9a3abec48e4e56a4d9be1da70970dc5534270ea49dd0b69aa320ec8d129a89df7dd0c38a07c4451f347a2c41183d290e2d04bda97004876dcfd7884249398622db19350255a47a7b66ea6f0c6a534c236312f26e33cb794f2089d7a71f6f755cbc8fe61168852c687aa8456e2da64f27431888c6761d2b91d8c0a34859d6346d77097cde854751637525e9e2e8dfeb3677b14cd0800c6395fdd44b793c0eb11d6acc603ce25fbe1c23afbfd4695a62d0cfe244345032310002b2fc021f75f8cb1609179738a3e7346495f6b08ddce393de97e8b1b5ad5532089fa4850a762e7b8449c4fd8f4bd757881b9bdc9039c584fc8c7cec", + "1aa7010328353422781085928b3d3501cf292941629fefccc2a5e7007c8f7398c8a9745203add85dc733480f70a4155807495d9dee9a846011dfede820bba62fbb58516bbd73158c09d6d35a0aa16a319c79e4db3b98f997177b6db4cb8cd8185a2e92fa90fed3d7a59366e08cab4d4a80dd557d123235d0c0da03da45e3a765b927548024ea9ed031568e8d68a825f2f73505adde08ffda42fbfe23c4a98e87cad3cbf826775098c0b6ef9b54ee3230d62af07b9050e497887023f464bbc4fd9b660b772c58d9bdf5fdbcc8cb6298d9c8d11f6b128ca44a7464412130272b4d7b716b769983a7952e333845477c537b958e67580d3bc91bbc1324b0f0e1036ff2b0c715eaa265e07bc523ec4733cb93fb4fb28558aed4b09237d3e1b152459168650ae11bb281dd79f6e45daa54b59cc01c4ffe07946db6add22e6095b12a32694ee7677b2048e14c7e8fc9629c224e59454afc5a2825975bb95b0f0dacb689666adfc386a7fc900c757db0a895278bbd21fba002e04873220e5f0d67e6eafd63cf1edb048f88f6", + "044641f5ffecdfebb0522e3b975dde7139820a18f735f99506d333fe16fbe9d8942b9bdae8236c87c3d193", + "0ab6b67fb926df6e7269516b9bce8c8424a732972007f360d0ed785f3971a972c93477466bbe0ce00114ee898388a1db4a1a533087f65bd33a9d7a8081e65aa447dede345a7682e19e587eb97f75a9146b1ea505dc7ef9606676a8a4a1947a8ad2f45037d889543d840002789c2cd0dbd99d8a02508fb1354641b304ae1b480c91a16d91baff4b3df2413178dc0be4f6713f3540328e75c25120e0cc3fae4a38655aca9086a4110f81684f67212424275368e29c194a70126217517b66c5bfb9280340f78a5751c7bb3b18149157590d98903c02ff4480cd41e17b64b493be4f7e6543656b635a518efb7a2a1924efb5f3442d6b707a7392e4c0d3a63b5cd3c665639fd36552305e6f629f61c9a45e7515659acc63b0252625f8e7ef7c559f87246b3b6135d53121d3d724e14060eace1188902fbc18bde73233671165704156eb7f6c9e8d5716e83ed974b9224f9c78def03d707697984963fbcab006600357d8882276b5c121477d8618ed7d4b7af608fe9f0724a8f1c21224b9aa37ebfc2900a6aab121ee01aa" + }, + { /* i=7558 cDividendBits=3014 cDivisorBits=2986 */ + "1affd2432538e5f0e6bd862a4d14f0bc390cb8bbd53ca72d39149516bb6afe4fe66831d82f355d80ac42cc956eb504827c0de303769861b7ba1f7f8c54f42525eebca016e00ebddb4afe0271514ceacbe441621806efcf427af972c83dba0572bece6009b2c628034ca298cbcd363b36b9b627e1cc1fa22faf6f9eacd47e31b991fef491ba5bbe703d53da2b5becaa0571d41d5c329606de1a70abb98bccc844c6a0957d4077cdeb95f63fb81d22014fb9e0c33bc1256220a25e23d5740782156073ed6738eda43ace06ea8b50895545692894656eb6dfb5e8cbe6fd52ae6a9c25a82f9518791277b14d6a4d634b5086b11c45165b4e07b6a951f53dea7c6bf38062716f798438949dc2976ad9350e9a03e77faa3c0f01ce5096371f428f2ae6f5c37d5a52616dc94a4a7aa9d83a1a96adc0b3d18ba8eec65a49c002570ab5522bf21320c424b357e27c802ff3379c9ef9a72ee81f17abf8370259865f7615ff94a44f8e0b70164b110cccb1cf01059650bf3cbe399dc296ca", + "0298dadf713b2421499f6cde6fcd11f0f64c2050b4016d93ca369cfaf7bae5d8bcba398c4e1e5b5a1bf73d976a015258208c94ca9f780959217a712253dd282d6a0eff9981c9aeef7467a617645a109e77f37d30f383abc036df5db5bb70e359e6a12e32b1d7345cfe1a110216962ff1992f0f8262be4d8ca7c019be15f7c29327303be963ff8b2047de967fc7c61afd15d3c74cbb301e7b489e9acf4ae2e0242e255207526385a3d815f690b6693d1596f10da320aba73ef5efe0beeaf411ed01983e4f6d2389d6ab9af36e99bc1a11e4bf07f37468dec22350634fe459771f5e357d7365dfa58ae321e1337ff5951e0af6d88a11e9a2732fa3cd2a7714222a4e413c570b09d8af073ef81f83c0cfabeff56ef91cf0c09c10448247a7d5116dee854a38c6b2e7a25e4e46098806fb4628c85359aaa401ee055a75d1a6dfc221833dabb7640de8c1ba80073d4cd89cabc2e551c4aa01760073801638b0d18fb42228df0e15c1d8a7a565757261dfdd4be3ff62d3b8a0", + "0a655f2d", + "79d8db8916c3336bc047be7dd454ab499688d3001a0fe28a2fa73b42ded75760b0052af1cb12a1b43cd15374a78b0a815da4dcf8af69ae40019a2ab61664620ac11430d3e7685713505061fcafb10f58f18c2e529f14832d2e7419660e31977a46454c996ca701aa33ab5b283b5aab47789ef61e68ebd951a815476839d72d0707c85ae125d7cf912a7edadae748304e6d58e643db7c6ded82414a11a4232be124f075616a8ef6a78902f8402529517eaf9e543df33463756271c3e140c62cf0bd0dc6170260db8419b39c75ad39dea64df2cddcd68613a5e5fdaf0c28d1b52ba1ab47d447ba8cf18b850fe4e7c812bb6fcf974600d3647a94e57d6a8941df43d7de79a9236699a71f62713dd9560fe47f48f84a4fb8a0a40b878c2959982a762fe214bd240e530905706135eea1f1ec5c0110dbb0f9a1d37bf4110d73327142f0e2c132591971a4926abd356185ff9b3c9bd3f87a8701b55692366b037621d4add89881fd89562a708da108fec1aba1ea95e7c2aa" + }, + { /* i=7559 cDividendBits=3389 cDivisorBits=2151 */ + "1149e25744b618101025754d8544363236b448384214fc24843f073fb689fc3f482379c3a22ecdc633f3a79483f05df7c4192f689c0cce8ce0c8c84060f12a6a3804e4b49ded57671758c3f6c89552c6a5feaeec667f2a7bea3e6a4fc4997f8710e558602b70627945997cedf5069e4b84dcdaa4bfbb3ed7ab2090213de10f7c70b151f80c3a7ce9728f05627d0ebec9f417604ca793e1d34a395a1a8c1b597aa0135ccebb3201042b79abe4608cdeaa35c1af1cbb58cee0acd6aa6085a0db1e21145d70338a9edf7e2ab77223da1f96af758bce1f462229591998a3467e974c2d1d3b0d48ddc6715b8b489ee3733f7425a3eba0ab59aa7d1d8be447b4ff7076977d141a03a3b1b76c534019fda65ee8a89749e69e5eb21e5f74d91f2d7d67fd98411e5475bb9c87b5cdf7538b22609a8c3b74aa9e39eee17fc15edaebf0d2fe11813888047d8c2ba6fee796c9b7f1f92ba26f9371896ff525f623ab2ffb76b31180b5e84136667eed7d11b7f23a16e167a9285ac2148edc8bb941c52e60c68e5e629145aded50ad1ba99ccdb13198966d5840c77124fb03298eb26360c610152c93b4e19fcb4160", + "4d1f1685dcfc64dc7ae33ce825816c41bb18c240831524c2e09d4ffca13e2510fafa52278af57286954cb235ef32a0b467bf503cdcda7295b7d8d9f4030d0c24c8db3ce95e4999848687678e036722df223795d861eb44b4f1a1fae8e7d51a05bedcbf007bc85ac9be685d37d0d97c3389e8e72b2674e3e79e9d437bb44588c72c11b4ff4884da7d60420d315dc402755d4d69197aa6dbe8dcc9b003284737decbfd9aa67ec13abaf712c7db4953157d504d29296c5d432c7dcc6053e19e75a4fb8403e12a39b23e395eda1c8f84742a3133045ad02cb6604c390f12ba68b6d513a8f8ea9b0ccd7818c36f45dcb33d59919527ded127e50f16d07aa161c5aebdec438b4cc368ed2fd6bcd803df", + "3963753047c1e5c4b9b1ef8e619ebfb5d2a3b9064b996fd84adce4f279d2ed0a8a611a73d79e7c560ef0381ce837ed5fdfc1aa33633e499b68a225c35ddcfd3ea73bc9ac82381bea1f23a21860f1f4a1054dadfa213f9b654543c5cae5db4b85f5f62abc14bfc0e980b823d58b398488a3b4397a5be23b1cd13a9cf937ea388acd3018548c20fe7e4af91d5e36d7d362582f367fff454b4c51f14c", + "0ce3bfd06b4f1d537beebf8e96d967e7471fce1dab14903af9ceaca0b2e5f27d716c996a5d3e9e453f72f7ff9c3cb35e7872140281f8797a90de2b7864fcd19f0205405604fd3e2a40631aedd4b50d37bb6799cb6a9f4b97250a05fbe41a1ea19e843c8ea92a53942d8d696d01d4938c81e90e5693bad5dc8c7311ca63ac27fc8df62c3aa80e557fd61ff8907b847d25feb4e387950324e66e5edc009e4e3ab54111ce16447dffa0bfb9c78dfb9de76c12bea99623cc484c774d3debdf0e334e4a062c2866695bdab22b71d59e0fc234b1b50b6eb4f3a6e83a7ec10bb82e10ff5a0af05b70b9e53515c53d78645587a43134762ee6212131ed9922b0c8e79f39c4d846c719d0a93a85c6762c2c" + }, + { /* i=7560 cDividendBits=3225 cDivisorBits=2358 */ + "30dd6e522fa7c39942d71d9499390ddab02d54715579e2ffc90bb3f1a82448459a0d332aff656bba82b0efa07317237a458a09badb73fef58b021171783403ce54e3be48ee6f34103c7acdbede144701e689d086176f2940e0d54161004d68500eeff148b562878db1cf4b9f73447fcfe929b2dcd6d58feaec8b2565f45acdf7f0898803d8732795a4db9f19169d6bdc7aa0935b4dc15f7a252d2b48e13abf6f5c3451161037c23efc12249c021a362fcdc716fc0b22d3e5ab52266cd582820a1b134e55cc97ccdbdbfc9f48328f482eb33e6019733265dd7c20284f01a936a41b9d44bfeae4ee3e32be5fab42236c6b98b16821b6a2368be1e4907e93aaecfd0dfd7cfa462ac27f3314038a16b9badfb98d14540b7c86486874907cfbf3f1630ac922f0d73418caed1fe474e753d68f3675102f851a8cf12ef8c215df28510ddad483095f593456eba0f914a1c911498ad12ca438c80549a80f6f485d0700906e63f4fac8ad51efe27c7e3c7ecd4293e3b8ab41777051e7a211d365128bf4beef4cbc34a6de98751682c6454da16834e72b6f", + "209e52788a9ee946166e4805697229735dc830f415bfb626c7db7fb46ebe2f2ed0344f9a22456cd0441550bc3af1dd6fe57d8ca11663f068bf53a31bf7c17ba5d5cd2ee8fc23477c43c17298a30e4129c9bd085abe3240002fafcfcbd04b0c4c543551088858adcece4795145483730268e3f1330622bf7ce716064dc4f131791a172c686b02fb4263eea82d0059a886fcaa2bcdea048bf31104ac2dd9f50de5614163456d04b191a286f310676d1e5224c57bb882debd465c3f6fe056859aba35b3bead9cbd4e6e495654d1574650ca293711d93954155c037c8ad220a0a7a58d4d7dd9f3467f46658152b24b7a6c1c5faeea88e17691374c4fcd79c935d268b88b7bdc286ffccadb240e9d387f02d42c4d800a40e56074f0d5580b28fa4d259cf85edfc7b0f8", + "017f82043acb3af48c5b37b66862af356bf9cf54a20fcb759aa5a807523814d2990766383bc743572755085b88ba03d797c4420541095adf592ddf8be67bc07fd699fc4205f5395f6d6d83fd6026f54c6ad7d4ce82a17dfc7075f9c8e51192cd0aaf3fe02b7588f590d90931b3", + "0bfe75a4b86af8ce8d320492150c795a4cdfa473bd85780f6203df6d5a8482f744564bdd766b5d9457513118b20c39b10261c3178f31c4f9227ad8cc149c4bbf3ca854ac40c3f97be525cc7b5ff03431665454bba41705af030c6d73f3e8c43e2902ec3bac59d956f246b8a94b6a70c9ca44f46d003107023f6a18a91a50296b575c7bb3de202484622999da245670cb0026495560361afdd2c7d95207f0c7111fe9e60d29d00b8f5baf0bb478dbcd4c5c470642ff73ff6368581a5c42ecbf23e4e83842a53fac311351972d3195705d3e8b1c9102ea4393310dd58b5393980a621975b2d7fa994a7bf7d92839f2a38983dc046d886945af0aa490e73fa4ecc2900444970f7e2797d9ee4a3cbe5eb93aba1deea4ed8d8ecb218c7186d6f86d6d8ac7b512aef607" + }, + { /* i=7561 cDividendBits=1895 cDivisorBits=1125 */ + "23d0130a336051f0300166e9c77eff2e0e8aa5295073745689afe36d2088ce8e2eaf0382841b1332288d520ba28055e0ca66f40f3f496571834330963ed9dd4907aefd48bf8da4c53cf0c75a3126055792ab77e047ebc446fdc9fb1f3dc749ae42d2626230c7b86ad79ef1aa350bb383892bbd4406559396d9b1e9813574e98b7ff3b007020d5ef2e16481c66f45ccd018445173022adc29ffe32bb41cb27e33c9309aa193c57cfb1c0420b858c5550a7fbfa6824833b31c53ab4b09bc0a9445b663a0e4f4efb8ba8fc9a4c3ccbc51492f28c23e17828a839789576e36bb0abc6896e6ab8facbc6b7ad25cbe3a", + "135420dded0e1884339388eeeceb8d5cf242f6cdc250130b6f5a5d72fed55f73227070ebd879c56d720b0f29f1972790ad85229458406db3ba1e927de51ecd5619b45e870c512b801dc62c3b7a7cbea9dee317498595e8f9aa233ef61168c3499dde7eb65e307cb1b268d718389a5566faf86b5606e5bf5df61dcad2b790ec33939f07849aefabba2a76155ba3", + "01da53833cb8f6bbf045e8f763af149fb92359847964bb65c401d142518ab557b90699cb24cadd645713071c2c28c37a88c23a8e787e34a74bfda6cfdcd5202bf73b195622062b5c6ad323ea65ba6d3b93a150597cf102e5fbd892574cb3515ab3", + "039ef7566ae9a01fbba19d8d03d6b9dc52325d0c8a89f43c37735eda6ca21fb9181fa9bfbd791ecd268dbce3ed511937dca109a4c565c5c68d2b22383df027a74e73b88c9384eaf4bfa21ed43c2ce729f3bdf217f0aeb46ba29e3f74fe259f2bbcfe0ee6f666e817574cb6ea729a7c2cc1fb7f46d35adc98f5b7f56ca4e56d0011e622da6904c46d0dc7a35d41" + }, + { /* i=7562 cDividendBits=209 cDivisorBits=77 */ + "9d5fcb1ce3b76f21f3c6bce3965ee181882efbe2b79296fd3aed", + "0e142b0e0651319c9cc4", + "0b2d98b53c8a98bf9494dfe797bc84f088", + "0835a0a55270a3c232cd" + }, + { /* i=7563 cDividendBits=3522 cDivisorBits=2100 */ + "01ece110dc8d30f75e6ebd1fc2b52cb0fad4ad4eab0bcad39c11fb4d8f5118f5dc4e5036e35a1f73aa8e0262ebb2818eaa960b4700035b91cba734c80947cd9c16a52552625ecfa718c2fcfde3a1be060b61875229798c16c2004ccd3b64a121b4311fbb0b08bc39feb46776869bba7e0b42fa8fc1c854eec330ec1d6d24124b80b79ddc0876121b18c8725234f9365473520510332fb6164fe50fab6c09d4e2b9d91a4648e9856ca3f8aff8b229621c8c2756f986f3cf79598b6f3260035bbd0fdf2ac71dafc650c9351670afc45ea2d0517679ccd7b4d04153d76fb00a77a932fbb0b3685b631d58b819a5eee8d4ed1423fff31d97fd91b48bdfe51c39306f5d56acce5e8084af8243902dd441c3abea528b0f64a9afef38887db6bc878bfbbc83db64352dccc6fe18d05445d6240d58c184c84ddf09ac7bfe1ba9d92452db691b0887d1addda9c780cd5ec5ff8961f6593b2cf8585fb0689c60c5d8fda4e2e17b23db2b1bf829218b7497a1111b97f71120412b313a0d65bc055883dd9cbc6e7b070d6443b21466e99f67819f8682c0074e4932b46ddd9520074472f3697a753a9a03903047a72663324551974aaf5da645a5153659b524", + "01b105dd5cb53f86f6e0412d32556289e0b3e70df1929f814c616d8aa3feffd5be61301a08423d6486bfb7d5b02f551b7c1bf974950d47a1bc6fa68e388cfb729a55b829713f917b68770fa6a9064637a1e1b4c39c5988eeaceef6429f0168a23832e1d5631bcf5b569f861d21fd45326ec5b305c8c55e5d5354afec6d93c9d863ddd4e404ca583137c0375a22ce2f997b3fa960f1a35ff0273f998cb59af945e3586e360c5c633817fc9cb7d198f9f0a361ea2671b69b4d946e00d0063541265b47a85cf9745c174b9ca4f034beb65e016b4aacaf423f82b7d19b03acd835461e90efa2ebb2ab83f21e1786ab0d861892b9a8469f98763a10bfec9601281cd181a64a0b626d44", + "012362f71cd518bac00f9ed43d50799bd424b859dbf37f2a3c0fff9cc5ba0e9abc41e2e597272903e22546fa41a630d31d169c4f3c436efcae08eed206705cdd39817595648f579c0f48ef0e4551d9b8d44b03cb067d6b4a9e12eb43de1dc70cbb80c93e656b702abf3767aa731284825a4e747eb8dc5780f104e8e08c5f93c6ebe5ab2655ab416c4d2363ff46e40cf8382fe73cf884d7c3c2fce642d007c8ad17876dd4e6eb50fd1bc09e19e22c3ee43f2dd3", + "54db3bf91cc608520a0c57ad8bc1ee50c32525d43a25f8ae977ec9fb357833bc2c6f6a16f0ae3d64c63f6620d043a04f7aa0c6b193ee79abed59a84da498c56c63265f6de113ed7f76700a8c51c899bb52c0e036f948e9168447b47d4550c95c513057490f8a4ed4cf89eb0122a2cc685965b5dc078a22185a4424161f7ed3397d2fd1b61f4dbc55fdc42d63eb9418196c180172947b4f6b8052618259e15da9f2c49b3e46dfa77ba72ae525c6f30509d3a7201206b05025fe61f8459ab0dbf009e2fa4e909074a2bca748bc95a528571529044e390cb3bcca9c5b0053eb2ca1abd3bf0979768f361727d91a81763465b31bbeeeaa093dcf0f6795466e5b892bf50c1348b218" + }, + { /* i=7564 cDividendBits=919 cDivisorBits=744 */ + "4fb674eebc83c8907584f0f126bbd1b5853af4e79e016d0f1fcfd9bacf9e94664aea392b5bda78ec7425c426f39a0c38cbd648b69591371658afab53e4a03b2696ae9a646c2e6d0bb7f97ae865bacb51113c5b6515c489b5d1d9a7f5689f6645d7671a5cdfcd36eb385034021933e57dc2b292", + "d89afffc8101128f543594452d71ad2896f20252f7dc59029cd217ad60bb4af00c34afedac2e0f6ac035a911ea01d9326ed773165ec31a6417676e99265abe995f74706b4cc58f792525ab6460ec0ad827b1972708e6d6de30e759b22d", + "5e35d3600cb65dbdccbdf9457fb78ffe4eec4bc1e05e", + "afd232a6fcc93f4045c3b2ad073b450fb514b2fc5ba3c7d769a04f850024c0eefffa6032cfaeb496674d6b0e1d8965fec2ff5ad223368c0607bbadffd583183e2a37c22804bd57dbedb43be6aee854ad94b30d2399df832a338bfee60c" + }, + { /* i=7565 cDividendBits=3653 cDivisorBits=2955 */ + "0fe24f5ba9e2b2df34f77a8d0ede6c10d90064eca976e13c97e36ff73028cde189036f66f255c58cf8fcd89a03ad3cbf169dd7518fefa0602c2812457e7dcdf1b3bfc8b3eeeab4637ee8ce33af549ba7099e8de8ca4aa7ce3b0711b1659fe5ceb56244e650d4ccd0be02f7abe8e63b0da96933d1c3b4274d09305e017ef3eaf10455a5a486bb3d5688d7ed34f18dc60d8ead80c006552d013c392fbef124ee64038e91e2426275393c565699aa122013e815e606dcbe080cec5c52f02b951b7fbeb51d5c774188daee4b7c35384963b27c43db9c52ab9a04962d012380b35bde4a0a00644b81d37981e1d4c3d7dd2aeeb2e36ad31c45bbb43baa23e1633313499d865172b17b2a6c0af55e77494770abfb25ad48b3a359f7459246f725b7a8fc3225f433e5b6da94fc07afa278d70f14a9e4a7737fc7ba1c33a27bd2d840d9a2a7e8dc9ff250a7641baeaecad8c5f41250fe57e87a4ca144e2ee3b112f32997f340dd66d54eb6d1e44e56122de12ab60d77b6117f5f39115ff3bfbee4f27a36fce425de23acefa2b03b3586a5ab397497f24cd9c2d156faa7cc04df00c4d6d5585e57980ccfeb96cc026c542e0c10ed4e09c57ce87daae5fd242e187d7b81dce02f83c333f4e47478e", + "01b808bb1bdbdce6fccc7272ae24142e473229b7c5c0fc543748b6b4b6f01c7303b1ab4a7beda8cfbed872acdd49a23a69101650b9f1fa0429ea1e4680ace68fb79ad1df77ce55dda933d15107620647e0621af4b62ca22f7e4f4c97eca611a0cb670e9c1ab2ff4dd5ff312f539512c6b3b6cd253c3558229be4463b5733375e3535c924d17a8c966127a7cf3d56ab270920163461ae29444ed004fd6fc1e8c10ade9ee14b0da5764113b4d5e953e963129ffe597799766faca58ac5fbec0a8d8d264593222fea39c5483f5bdcba8245626612583fed93d8ef3fba44141d5d43a655fea01d4e2ee464f464f6bc6a57a9eebeb54973561495c462aa243b9839726d4832208a7012decc82a500183c93de1e4cf8c499259f4142364569c5d641f9374fe13e8816bbc0cf3a410413d4585f544a6aa879fd8131d336456fd3f5ba5371dc2cb6ab9cfa2d52de874cc7dc50747fe4fbba56b4e479c8e3e4c534693bcd90b6ba64383d2df43fb3940a27b4ee298058", + "093dab72c3da24961dd16da7bf2bfb48c8964a05c0c6b5666ced1007b6eb1762fcb6d2b6f6a015047c72418696d06c81f678691909dd1775fc035acfba83fb9326a1cd8a763009f1e28d7e6e11f3ec196b1e5f7c6f1b3d3f", + "0ff8310ea078358826a41bdbe527445b569eda6baddc7012ca6a33ba64b4e78dd865b70b28fe1e5549c3018249388eeb2f9a3edffe8537ed8266996c1199c7f2e6f55e98e0d6d78ff5b5e5a8d06531139acdc03a1cb42ff512f6c0e4002ee5e8d426ebb0308959279d63bdc8edb5734a01b13dffed9dedada0389f769600bc80e0d685797d54c59cdeb4ce8f901d84749b21293e7dc088e652096e7ab27a7cc0720028a316ae252d145d81db03967c77743b64cd7964436f1dcb34a744d03de2a8a9ef722da2bcb8bb38017814e36795428d7e52042ca15ff51c6230d494b6c8514855ab632078fe40bad3a19a0e86093374a876e7158f14d201be9c66e7370aee6c8938a061de9c1d77f3e24cf65f0a1d28a37ceab6a0d0cadf2b42e760ff419b7943730ef1c1f7c839940945b1182a915ca5fa11dcfa1c1b70e3539a4fcee2eb2ac2ac87d53a564b464d9622f6c2958ef1660560c02dc768ffe495dc7af7e14af7f250cbb0660822e5e261521d33b9e6" + }, + { /* i=7566 cDividendBits=505 cDivisorBits=370 */ + "60a5f42d0c8a999ff52d4fc4e6d03225251e6a20558188d64ecc7b9c681481721fa594bc64de0968c9aea14980a9a7c9bd1c57b63ca9a05ec163a828db951c", + "020f0d26fc7ff72e0d0203f86a255496c7fb01d2673ecb225780b3f0654e9918e938b7705d120c47e44f5979710f76", + "2ef1b0b332ecb080fc8a90eb10774fefab", + "017e223ff4cac161eae81a6d73f0569fcce09ddbab73d1834cef391da54014f63706030ff541ce7079890fdd7d174a" + }, + { /* i=7567 cDividendBits=1214 cDivisorBits=214 */ + "2429e4279d485a4a2260a5cc7c22e77ecd52b5dd7010a11ce57cc37ad2187cd29081ab9b451b8baf64bd22ecde15e187f902b24bfc6503dfd31210b995856da1454745ce21f6f7dd3d79582f4b8593139bfe5e4763d101e10d9af5ebb3ce778783c4612615e163c98336555a5a474d9b2533571f472bcba915475dafc87f8501de5bfa4824ce617f606bca9eadd19fd6a9420b7795be2344", + "1d7d4e792e5fddda30cb272610b8a7f6b1c085b937c062a402d8a5", + "0139f054803060f8c0a787c56d1925bca09d9cabdf40d9cc02aa9aceb4b51037e083f0124387a133d7409653f6e07cc85c69e5943343d0bc5e93a5d4dc0b7ecbd0096fac88e100397bd3529756be78cc62b4a8a41ca91714eb3e21db4a30eb1f14ee2cf8cf6dfbf968f853e6e22208b73b61f2770efbc3b79f0e7c8143e0", + "13b3d05f3669202528a860c3535431737b32fafe5089d63d6863e4" + }, + { /* i=7568 cDividendBits=2028 cDivisorBits=696 */ + "0d46d4e3cdd256a812c197a95e562f69992d551a5ef672181d7dfd0227791b1796044d938a86d853d8143c8c4e0be072b0b59172d1c8c50843c848ff3a75b5a1a7bdf266ca5d032e19e20ec4f1658b52b0b300f2cb1ca625eec85b54cb19c364345ad97a5ba3b102303e1e55a36e28afaaf665f10ba74cc9ed9f129839aab81c816e6a62d0cbd1dfd8c8b9f4a0b95293e4dab32afbf065bd7a17ac92916b7bb56ffd6eb3e8babc247bf2dc0d8865955a59774236d3da25b96dd5cc62f19976d0b730dba612473eb965cebe9ab94a6d5c79c813fbf73ad1c8c49c7578500fd063bdbc8ca674de262f2b9c90596f9ad0207fdb218f557bdd2993f742aad8d8", + "315665b78275c81b19b3b9ead79d1c7a11c43d93a8078b426b2dee42ef32135c4fb36d09085e9f500a50d1b195528c904b106ed5ab8f16ff6b2438800a3de72cdd9ba4072dce11ede699257824e97583dcf14b8b3b8f32", + "44e3b1c5d806d8e1aa0be4a27a0030dec11944575172ade61c97f32e65aee360b46776147f9fc68f7dc06fc17c21faafc4a6ecce8e9bd9f73c7c5a50dd236b85c5934b8319219f68d92cc2c1d3d9f7f664fe71e4b55fc03471fd53a97358dc4d046b644b4192edaba729c10121808e237a193964d93be8ded4d3febbdeddec7cd48b2652a1508463266a81cccc6fef2064ed414747cd6276b2ca29f1665987db1e4dd37fef3659", + "2021997406df8f28c993b99b8f97cc2942850ade0625e399bff89ee320a09606861e711f9bb045b97831ebc28fe467a089818a2d1123c60243985250d58ded362bf3a3377d7b585dfb34970698e6d970d5287acd138476" + }, + { /* i=7569 cDividendBits=3355 cDivisorBits=2716 */ + "0244c7e2c06a915e25add324b1c4f3ac4c7258589b5645fbfd45b59d97ff7413c8977c5eaffa01eaaa664066e1f2c4e29a26b3241241edaa9a858e16f6c317f84f1230b43650ad618a70a441c1e2bd0a619ac69ba18a8f995baaa634c4c96f7073c17791cae9de1a41ebf78f27922c48ee0e0dfa4419adc33d6eeaa45c532ef451287b19f5a13b1db5cfaab2aad2c8b296064029c54492b98b3dbde60996dc9fd124b376f962396fedd3ebb5f5555f5595faf2a5a7f0c4f80d8238b38d6d22b397b24ecb0d66114d196eb3f54098893fca6a51cac6f09f84c27b57579fa43ac6602c3389d1bddc03f4b393657107b6a6b01c8475bb2570a7ac4d0cfff18ab2c49b061985fcd933da7e4c0b287d284a15a906fd9bff9bd66423203681aa499a60ff0b43c8e882b0435784670d6cc65bcc21b138e78c3c3a8cbd6c881afe8561cc6b6ccb39bbbd9315d9414fa8d5b4e5c7d35551a6a4a7eeb8e903601432210f1ad9d8806e897c2ec7b71a885d8dbe10d5f1ab05f90993bc41922cb8ea581ed7cf06b7ebb358c39dd93519f08bac7d7c2b23205dd9ec7e0afa4023a6830db9084fedabc6fd", + "095d2b6ada821d9968c495c1386c5e46e6d896d31ccca4d666946c86fee62f9c76aea644e8596f47ac58335107fb82b9eb19f059b70c502860bfdcbb0ed29dfd380fc0a111b67fa90dfd54083154b13c1b11b415a7fe3e3baaea436976277c6684b36cc3760836a2346ab7317e0c70450926171a2f30fd5e5ce6445ecafb40a2178eed580d0d650e15cb6c3cd140bea1f78dda665b12694470620122bd383a009908d0dc28e56b906822ae2205f97df5c4c161dd9577993de01c680b64b0bebf027822210395e8ee183075272ba31bc9f6df3b12bffac35f536a941cfb8f6df774ea80367218abad273bd713bd18b7ab30408184226ca504fbd0ddb54d95aaba766fb2d3a57a9af25e4c85e7183657e4c199bf41a871a13d496df142aba307ae2c2b411759f005a5a8e601fed511af2dbdf5de5de4aa187c6bf2d32bc5c37b1bffef3c012def71187df930b3299db3ea2d0435bc", + "3e05e9c58e0c1e2c34b00737cecff847eb8d9ef5c24683145ebf81039c195bbce46af53dfd306469794d7f799f5a5637f97dcb6497fb55fe4437aa08e66dc152e53a65b165aae9eca4ded28e10ca20a2", + "05502528bb5bf2b98b83db0b7ade7a0bb4f63821cdd88976e1a2684507a75da5442e4c13c3e7954b79ba2c2f2917ca07e67c2e7f35a956ed684c49d0446038cd829646de055fbf50afe0bd67bf751a4d5ec4d38afdba4640b7e578766198c97d3cfe927aba11811b34648cabb249b43c3dbbfdeafc9cd92ed2964354fa663eef4b09e8cc043117cc45ef62dc0d94fb16631f060fcc7c5056f25169f8f8b2ea7079eb95e1d16e8c0349fbf1612663c3c9d94e0cd6d307d21944993ecd351a2ef6f666a0b2919e14283ebb343b9624c13f58d87d7524477af5d1a2a8edd04dea3ccac2956946900854e624d476b5835fe96e8b81a17bd48450ed7b401a82e6eab5513128d70d9ccde5a1aac6e1464c71b47660f6d796b2857d354fcb63b5fec1958cb4852a85c95b8a7cdec47524cd7c1f9a4a3eebf8a717253dc9b6288a77adba9f36d27bf65476b215c8780af2661988c3f24605" + }, + { /* i=7570 cDividendBits=1604 cDivisorBits=405 */ + "070ff2aea8fffe0bafc16327bc00eebb633856d238986f1565a467b7ab2ca2a841e1f434cfc78d7e96fb1b300969d1a771b52a9125e3d1de8d46a2c110fc9984520411db1f03745e01d4b20990d907b5338c97991db3c64386184354e8419af18e8444d22a209946567fdd7e4c0359f28c1ac21273a0d919a0da5c6a0ce47971e9fdbde5d6293f7b33101b19f2161afabddcd562fc1f6acbffbafe21ab5fec5b94ce9778ba7176de9c3f7626a2c595833435a3bf5e8a39baa9b8a6244484710e92acb956296b6f1be1", + "162de793cb578065d91920b07c8a3f11562f578c2f7105397c1d711ea6c93f6bc7a7843fa2915de34d70220878e99ba720a7a1", + "5183da5fd8ef3e3707620fa32e8e21519456c1452edc54d548b1b2dc3199f55490f944f989fd438def8b1b956d88d53367dcdc8883ba892dd5c31a888dc0361f233cefb935b6fb7e97f32b74e4074efef5963e40cb6b5b71eeb56974cdd4e82c333004e82390f3aeeecb287f6b9c5c1a0d0ed6de4cbcefc2524e87893a371be8d5d98977c7aaec5e99577d645b9613cfab15b1e093b9", + "0dd9d0082edbb19d0ebc9d0e4b2c50e0c35f975e9ccc037b5e0d48dba26eb2ad62f6db384a5d1e9b9e5236149f0807e6b48588" + }, + { /* i=7571 cDividendBits=3477 cDivisorBits=1808 */ + "10c649fd32207b6fda20b482b2821e05eb75661ac1c1088153c24f0f64ac28148e2ef23d66c02a2dded5845224c66f4a5c7d9c290e6526b8937fb7a792657ddc0530ab2f6332f1d3c22aa0b98f309be3212b7327302976ad09359f2f77796852ecb672c3e0b24a3adc653107da4e70fe06ea911859f9e92b28d960234db3166962989a2d099311a109c9ac5b98b93e99714787bf0b51e829d344f8f609b6e946dca782141c83089db8e8750b26bbe7bfe0586f751ef4ca00513d399f329164d427a17710b8f1010bda63a3810ac00bac24df2ac5641a4fb9affa15e0d9dc117eb16094a8743ee3fe0cb38ea8fe12069786245cccb2ef239e421a78df8d6746f8328073d617c8712172ba365c3ec8da543b4a4504f816c7e95d1b270c700eb7879dc8c55cfcd0f9e2af9055f39447636b34186b3b61a50554183124df947a3193282e2cc00d96fbe43f77a83adb8559a85077ec20287d643cec19083acd3bc0f1e4ea5e26adfcf92e02c498c2321f384f5ebb214b5592e42fe8168c061d51e95d3a69e4558f4815ebaf8ee33e92883c8558b61fe9692417f680be13f85f81fe068cdf30f9218da98f4d3956c831e4de0ffec9a8", + "666c6a65dff1bd51d4644f0d7ea3f8c99f57f94af9be166aa954c3eab3cb7974631b889be6fb7e0bdf0c097c03399689161dbf21a7e86ddb9f7b2d67d79aead0b0379e03eebe9d0e72b7fbd88ac8504c85f17800bba4d24d245b27f16ef3aa5b48671e0a10326ec4cf175c8cc5769c9379162fab8a2566f1ed29cd662a048b02fe9067cca325201d5474e441a5662baa673cebe390c3d5910f48d5ff72b7923cba60e0ccb41b3d34d4b7c1ddc85aadfa35abb8d23e77c36c553403a5c7eff0a8b32ea8ab7e1726a8b2a06632e648d4ea146b2f1ed5bcc30dd056fa471daebed94931", + "29ed426f0b447313467e97edf6350dc502cd9f2d88b03bb3f22647893d640f880c9c83ce492e6afaec8b556b2341d94d4367e154f251ccf363596bea592c53b683141b737cf7abd39e4e915b9dbc6d2e908d08d1a7b7be4126ee4bea3f67c93c83c096e866bfd136555787e632a9f8c6242e39e483e6d293482ecf20dd693709b320cd64b7bdf21d12da64cc381b5bde1fa38c71a5f95dd86e9843d376f6ac1080c7f9d50178b86fa5abd2a4d1921d201be22d1f7421a15cdf00beb043a5ab3a1566038f6f3b15ab7416527087a10a6137", + "50822445e354f5c627af30d62692cc0d07ace6df0014a5e6c8910f12d93f8f08f7b9096d0debde4f38873f2bc1453cc71f0af820081fc46f90a34679ca975d0f3234c65ac77e764c5d423daa4b81e635edeb78f5eae9082c8ffb567d2d9667d7af98cc081920e9c93d07f0fa28db386dce4671da31becda675c95ad078d20ef7fc0dbb62b36d4e53c8403578d608aa8751550252235eaa82fcf8a1cd12eeea164e517057e2f037755dbda2ab19f1417d107f8f91bef55c1a92663cbffc8b62b32dfce039dbcfa7ea839d5c8bcb7109d2db1bdda197570b5d33a2a58429a70daa7f21" + }, + { /* i=7572 cDividendBits=3552 cDivisorBits=2289 */ + "897913680298340d6017a19a6eb2d9651684d81947101427f31a3dd15fac65db87d094d8913815cbed7b04b70e945f22aecaf2936ba5886eb8bb59f24842709f4555f8a682098ae7feca92c164cf94c6fc5852f13895cf919a54307ada63f486791e9d0e2cf24c494159a690037609e0d033a2e8bf4a4767bb76144f0dccde9d5648fe0cd4324fce3cbf4c193fc74818a3d2c2e070a97015901e402a23b16d88ef780caa045f23fd97b097b1d9f902d0e9309ddeb644724b5e2c7a47594f4133f7c48abc6dec362a2db4f695352f85d56d749866ac57c1202a50226c3767f751f58455db039d24c2f14642254a971f3dd420c7cf24d9521d023150a84ca68cdd474dc1e1cbc360c5d98672e5bb45f1ea617cfcbb40526c702a873a6ac786cb3ed8cfabfb8fe0c9b3e55c80c24c41a994f00aba2f2c80bf3c6878ee8b3294d1c427850395c0ddafb8c5ffefa42a0dabf2445d9faf5107167b4f4e057e6a4e017a285df5955fe957d234ce3d5f2fba0683e8e27a1fefa795e0dbf9108049713c3cc964ed7633961a5c267034fe268f753936f12e9b22672f8c208f3ab7b6cae9e9e3d7d9f3f7c6fc07ac5d8a6fd3e1096f414762a85f8c22546a2ca3a9", + "7a156fcf72012bf2463125e7c0e6ce339faee0609c5aa2446106e9d4c4943990ae129525c1c0e8dc4f5895ad7bd96f12c76406762f2fa18115f9a58612d66d03ae996576ac5d1e94c9cf019e0c9ef30966c37860a7f45e19ed5eb2efd06e38ebaf444f296a336346311580903475b42adf3092e8a122625da1409c9f18d77c8df4eef1d07f0111f36c66a4ac3962edcabce233b628a6dbfe973f94fa14f9ca90faf78da5fafd70763800b82a09bb665625415f79997579a8e0e87d12df64b6677ca56ddd1a228d53e97c642ad8c510efdcaf78b3d53396f4338d554fb7f83ef4171ab014b78ec143bdde96e9c87799bd0914bbdbf97a1480217a3d181cd2f5efb7d06b0a2d38eee1dd6053f2ef2f8f80b3a54d578560c48d281f8318cbe4", + "0120451d066fad811293858e4d3a0beb26fb73571da3df771911a6b4809ed08fd70e862085408d0d1de1dcddc61e8e13c7fcbb25ce9972daf0337e19a2b6152c3f41d6a250fe52fcba997d1bcc4ec3692788f2fa1bd22d16632c29f25980f44263e8589bbfac0e7aa94b3fb9a686466aeae85142425da7d4e055e148179f3cb1684dfd3a963ec52369cc90f5792505c43608269fdc6c165bda4ecf47714624", + "3b37c53be834778ad18223248ccaa917fa4de73131702c15a0ae4a08df26a8ad42af2152fc3d91a598f4080d58806b4edb7419e3c8847cdf1fbc9306ed55a1c60d80e3649da4bedb83f48a92ab7971b647574f5b0358e09df66ba1d1c9c7ecb2fc3ec8044196d6beda80017e7ac0540cce59e6785109cb6256f11448b6877b6f8b599c12b06d7bc60aa9d682b28b09f805c5ac2671ffb408c726d19e7ffdd8b5d307eb48f9fd0a43afd21df751c91b49ee3b20c9c08404c0380a09af074604c8c2422e701783bbf6ca8254875cc052864ad5f4562d620afb66c5066f595195edd49f6f1732878afc7d5fa63b949f04ad546b3c63aedea64f97d27a6b557827e61a485e0410b7ea0178c57ef9e1aed4db1503df640e427420cc32f74b9f99" + }, + { /* i=7573 cDividendBits=3184 cDivisorBits=1978 */ + "5a60f371a055db3c92061679d2b9f4ac9671ad43877980a82ee1a7169141797302d4174354c86b70942837317ff3f46b942503d2d1cedddb3fb3206aa032cac797ecab742b17f81477119df15fd72cccf9566595c49630a5427cc485ec5d407223f1db04d0fc712956b14b2b33ef8a8bc1c03ea455091765a70a0b8ae3ffea9c5f6aba160054edfc6fb3d0431a9415d026bb3e172d3076982f6598aeaa8687f59b02571914f58ce748562503678b778b6da50ca8cb0133a023d488f00ff83974f1fe135986ce490fda84ca2c7b298c59934ea83c4d2d9d0bcebb5b9d3305344353dbc1bf651ecb11f2f5f17225312402781c33b7aca2fea3681fa5610f9a331733646f64d8d61ebd7c9e5d9090032f10183cfd1cce8ef2ca9645e1c739100a7bf71ff0593147f1b2e5efa898552c7ae630165f395e06eede7d49adfbdea4194ebff2e25405d34ccde2361ad5639670f939fcfb475ab7f293e43456963c5422e3ed69d9feaec34b2e814c37561e7cf3fa72270e55ebf4bf50a59c30efb563adcd29960b1cb9d18fed7c9ba945765a", + "d3932cab5a0961f425ee22873afbeeec5576ebb997932540097a0e6ec36254b0ccb18dddc85f04251994e6cee9c540d5a081346c846b9c9b301556c232959b0c12fdde5475590af8c3894743eb520193214481526cdac0000ce2be3a8c4f9988ca671162d002b47f8e0507304f5a97b59ff367da3d2318f2fe42cd1680791913ebe86c37009fdfaa7664bc8ba7f6cac1fc2ddcd9b2c270740d53305058214cca1a59af6f253284680af98cc0ca4f1bf6937481d913737aec22287bf130f5416810c9ce95b9dd27e93627cb41cac519e6a108d0f60357152c05bf73049a11fbe6a1722c5750ca92c370e8ae401af9e7f96c3dfd0312fb28", + "6d5b1854b02f21a29dfd97dc612d82d77add754831b74c8f582e86c06aff0b828fc8639aba5bb3c8339a29c0188fdd164f528a80bb79721c77cdd36057ba8c867c266bddf20aeb89cd3c8136b894a38ea3c8a7f1bfa9c46ba02463c52f5b0fd21a0d32d5ba887793e86836a5bca2680bb71636f29f6be578482b063ad29b5802a4c34632127c38caa29d9d4eb947d3567990328a5880c4", + "6fd5f97164c436c10bfd657e6796fb853c91873aaa1cdd1f8333d60fa20fd0f04c4d086d283cafd3c4a1fe7cb3c7f206962a1807cc14df119db1e9afa54f36df7623b1411a7e5ec91ee36dede13b6226b76967c904c58f2fc82f5d7c03478b0f87b97bbfc78c79ba479b3c50ab41957de014d439dfce1f44572c357cb19d70fa36503097ed692b85b189366b74e0106eae99a5e49e81aa7948a0b42d8d7df7a4d919d787b2f3be968d4de934df269a4c6563c6572c54d93d57c7687574ba05f5837c4e4409de2653a4e7f5864d745065b76d436ff96ea8fa80796388f176f2c9e0760ed86d65ca6c1def612378f56b5a8aada1eb692bba" + }, + { /* i=7574 cDividendBits=549 cDivisorBits=419 */ + "060c07cc7575d09b904ce201846298cf74f3ffe33e88b362002559e45753b1d6298cb2eb7a2fffeebcddc150368f577c8aef1ba4821bdd161d00dd98e38480736d7ecea985", + "02b7a209b1e9add02f90af16cb29b2edfa55004a6436c2100043d34bc463995926cf545529e996e9c5beb395026482a493b1a3350c", + "0239b0e1c71243d5a7e00656473cbca4c5", + "01513f4cb6e6d59faa113678b0a6795fab677eb4dce327ea835864bf3fbd08cbd2a5d92a7f7425948df6bd25702a12bd5b796b2749" + }, + { /* i=7575 cDividendBits=674 cDivisorBits=216 */ + "0293e7efc6cad39355c759323df29084fc5c69fb3c1e41123733e879d191031c2c3bac1a2b1b75fdf281a36e6a0efc699006cb2c7d32a4649a9ee6eee80b3355204f1dfc22772174b9de7ea1b8064440682c0821dc", + "05668123b4775365d06cb7d47e8c6a96075b0349b992c44ed141d8", + "7a3211b0e203254fbba08e053f90eb56dd07ec2805ca303724923de90889f6e9a5041144407aea1f4c97acacbc59b48ef1a0760aa3cf8a32c1d9", + "03cb3541c6ac989ac2ceca559ccceaf52cdf8c08ebe0904dd379c4" + }, + { /* i=7576 cDividendBits=4044 cDivisorBits=2355 */ + "0561e880807266f5727300004aff9578778815adbbd9683d7fb4b8e64ea16ca4eb7d5624a3793d5a8991487c9c66fcd592f223afc8d6685f9a57fa1c446fbbcc73882a0df9e525c2ba793bd7fc4ca344dc690966b5ef2e95c6867d7d34ba81f1abede9614d2234710cacff8e41aa2eff02dd575056dd918da2380ff95bbd98facb580892e284a48988a6d36ff05047856f97022ed7ca1ace5fa1823ce34876416c31442fc92b09b62f3f96f5c0726ebfbb0aff5daf690f00f24bed100a2661db76e4a79df64c9b86e6676b255031ba8e4eca31cfa4c620afecfb80d724d06e08ea7c89d82e9a899751c63303a6a1ac1f739f547eef14c24d2b7f383eaace81c153296978a9257015d4f0aea73cf40e52887bc006a9bd7989a2b87481b3bed66498b95bdcf6e71434bd218abfcc2e928b6ac11edd0fc86391438c3c1deb6dc7995e3fe3d1cd4cfd683f7be374ae0d7cbfefbc4c0c175298ab0486c28d25546124385d8701a384c465a9c58dda862b58d7661a0689dd726c2eabb23a78c812a1c0515213c5c55179da5817a934778fe402069f138c6e1a26e178333e8b48e8af5fd8e836cba9550d1c5b48e1801a6a0135e908a767f838c373a47ffa31efc5a83dfac874ffc24f9acfad083d2e957e7e5e69720baa03b1a72c7f532282b0861b4d1cdb32a0f195f42e046210ba6870ee3fc51c23d7e95aea53ba07", + "0306b2189d429c46f3c0d8b7f8a95b7f46e8b2b5ed86680c87e19b8b4c50c218fdac9be6480c9dfef5191941d186831dd584b2f5e89b856a5cca2dc284ceb34c0a87683769626fbced632ffd542d2e76f84dc0791c51cefaa1507d34c5e2d2b665d0fb6542f47c6af93a15f6671cfb5f45a8350ab58f341175ddbffe0875ee1e12fcf0e5c5b7a2c04c7b3be30069873ade35441c180f46bb6dd5160e059da2dddf3b3d97c80df6d32978f2bd975b65c20688f20cb42c15b57e13fbc29f7e46ade4786dd2637d27664b60c75f7a688c72f9a047a793bfbc971b97d5fce2c48a9401480f66473d3fd1ec0b6c91f00ddb48f441d06a25dd086267a4d6816e48ac302be2328cde66ceacda497edad9ef21dbfb9bd93e89afcd5d6e493b25858b417c66e25cf91eb6eb", + "01c7553ea912432809c053c387da0c09150bcae23419057c45844258a9debf635f23e0ddb9b64579170d9bef90ae279c1ab575eb4dd771c7b2ab1d2923579a19364c74aff163fa92b37a82c72e0908aaa735b87bdd230ac0f94322002f0f6144e7af737b52ed3068fc7f4269705ef3ff4f312810074ef4f572f5e4c1d1bdb9e415f94faf1e1692c8e6a39ddf2b14c8761ba79ef7750c117e07a3cee5c259ba3cf1dfa32f71421c1811b181a0d322cd1189d6883fc3ca6ec5dd4b3802725dfb0400fee6125e297a7c6e3a9aaa089aa8e7d1799611", + "02a8590c104c53dc927f26f968f4fd6b7bfcf7588595df0d42ef18a1678dec2073ad681e2384c87cb66c994dd33e007e4d073ea4fbd9d9b0712aaff5d702dc90a74f2725699500bb0f9948a5a887d49bc58fb78035f708cd294bcbb34f12f10130c574097dce7a8c6188c749bd6a2d78d5240406e8e6075a1255dde4bc76f6c90341bebc6a7e66069e92732f634be135d08b04f403b14aed68c6a3220944d0ef21e28652f8db44f220fe23df56ff820d2e26248b5b1b9e0915c3129853d02c4e4d2f9ce40f216a8fd583a4aec78dd7b68957e67a52187a96844a79c2934dbbc5d5523864307b8e4d4f0a3a830657e737b33e227e95b13ae0437d0734d5c38784cd0401586877bd9692acccfde39377bcb6ef9c90dfca256672f709bb7e6dcf5eed4e4f1008e26c" + }, + { /* i=7577 cDividendBits=2766 cDivisorBits=1176 */ + "2040405d60d90223a35188d9a48c427d1e29d4d9117289440d1b7f6c4aaa5842cf36e80a928cd9f75b46b3f3939d8202ac56a1cc4b265041fca003890896e35a588db5571cc0f8788bd839bea5552ef4524a976a960865afbd6659e30e1a10aed2f128fbb2c86a990099f594b53808252e7086eb3beb67ee4fd735a69d3893d6141383b1a725c75667f86083adc618569327d29bcdd63998769148086c707aef0b83288e393cfd16d08b7d7d35ea98248c0f21183ad5af9323627909e696925fd32bc8ecd00016a89ad20715997a43d0c887d11b95cc3cc297f91636106c9d202228da6cff295300d6adaefb56108efe5f4fe49269c5420e3f0616fecba8a8ada65b610dc1c5ba3269e393ac7b5bcd4aac887619b99311b5017f0b503d66aea59236cdb0ffc01869eb8224e0f4ff85bd4c04504309412c1ef9fd960bce7b04d42acdec4bd5f676895edeb081f93a69947f1bc4af340f0a0be696", + "db4cbecbc15a027185f45c89bf2c548bd4e37a17a93392b8902fe80a5d3d50641cc2f34e7231580c27c9f29dfd618d8d39cab4445e4a26b8aeeea920d689fbbd854e57f5ccec1927d2a2638884708e0e726d03acbfff7bebd72c8e9e1fad87fa3f5da5e3a788534cfc29d18c976964579c0fb04fb6e2289a3e1db2c610ad66999a77f0a082984893d704e6377fc82b350f3972", + "25a5f32ffc970c8c17f315044dcb72dfbee3f4e3fcdde5aba86676a4bf552dbe239b4eb163da84872723696b73f85292e3ce457f7d355f1694b8f21905dd10b037222e649df6ed1c40bdfeff2a6e239450d0d4dae546ae2292dd31761b5ec97a9a735eceadc54e26e7d474a45a8a77f1d137f94595536d7e515123886bdcdc0510325dfc7b769b4be7acf49ac361338dded8f128255cb754cd82b852ebbe2636d29376a091b881a04ac0b6832f4f067cef973fe1096da44a8e17ed759c8e4bd064ef363225c0aa", + "c581e961dfd0cc42ea58c1ee4430defcdd3bf52eec3704ef3f2b5198789958dafb502f858281aa9026395031855717aa3bf83ffc463b8de4da788e35a7894e95253f2a0c4ceb4e02ff4d0649bf4fd689587aaed18973f1b57c81a1361eafa107d30d05d0565188f5b3e80e377f7ec2530b9bfe07a3119a64e03d62124e2ec830847e57e8b84307e764e15f3cb8af1ad16040e2" + }, + { /* i=7578 cDividendBits=3452 cDivisorBits=516 */ + "047ad733d33c32220bf1b3dbe8fd8a61a941840a8e8be30321e7e2bfe6c72c9073b1dc19d3a25ccf035366ee3a399657bd97beda56fee3651b2f9686cc09f72308c5ade8d2bf04a0cd4cafb0d06d790842c712c98c22facd7b9c2e8e00b53acc7710a8cd786ced94b979ef0638245e5bb0b58094bc1bbeadfc73552d58018ac82bd1aa02902e7e3bee983ed8153cff9785c9707c76d2d477d6be77cc217ea5399d22ad1e8b74fd671827b0f97a1dad2034dda217f7a47f3b430d990722c3f4a60bc1f0a51d88a0f75fda2a736a320a254d38cef91364cf86e9ce1e611470e5ce359acde7349e5ddea59f4d07160a3b7ed19c1a5f63a8eac3426776471210e35d88123b74b6aefb151a4ccbbe2daa93fa06517ea3b6e1919998d17d3b8e43afe807fa5df51d99f7bf68bc5b4a0d6448e425d221039d9c576d2dfafafb6f48358266540914e8d676e32e0d0e3050f89123b1bf117f4b0e6f7c42f989255d46f7963cec47f9bf3320735e9a659527607d849dffe8ef131fe216d483f386814dd6e75ae02781ea209a12c046e0c599d8c78b62e5c60289329078697c105a209c144b7338e17a82f44cb776ec64302d34c8e6", + "084a3ec319a983074460307aac0ca341c35cafe41e2fcc992e7fea56d349f309f37cb9056f3d4ff14eed2dd4c78ac15517315cd849900bbcc351c873b294b8ef6e", + "8a570442d76c8077dba35e3d4688a5c1b553ee522c6aad925aed2eb277651777e727dfabd0f618b29ca8074df9d7f6d8709d6808f5d361b225668e470f839473605c6058e85f1388db4ca60bdf11535892d24956b640232b1b787124f7302ad32d3558b6e5036e486a6f91802e83dcc4a2998ba39893cfbc062495036f322e8fa72972e289456e5630e3a6906453c7da80a914d732f14dbf78bc240a85d3cce018425c8e526352eca0d26a95c8cd4c5e4cb6ed83b2600a0708be88673f48a999bff61ad498b948e03f82e362c069c970b0fdaad76fc8580794d8cce54fcd356e56dfe0bf85bbec3e66b00db4a48ce4cae22f83c33160760ee01309802aac2ce73cb63b58236faa66ccc42e64c2df198a0f6d0cccc82ae39dcea188fb746c29b1811146980da6dec8c84479da6902e37ceb5694a5c418458660c2d4879c578ac54cc9d3fbf6a7e13b818b2b76988d55ded0d9ed28f1425710c19170e136ff6f21ec0b5007992952dfd3117f98957aea", + "060d9ddb3930759de9fa7b0f0aa7a208a50937e6175bef92a689224b90c7a8dde892fd9127d9387647155381dbf4bdff13e65587e23fd5d125960214b56f09825a" + }, + { /* i=7579 cDividendBits=1376 cDivisorBits=855 */ + "6d92ce1eae958f7fd94423237e8699ab81e7c8ff8973261e791108b494a523ff841284bc10e9487b70b41c635df5f4143705790257a43a8104bb5fb694a06f8b49a7367af58d95a43c7cf2a794e81a1080e187eea79361a0f72661d700b22d93e225064b65e075a64ee133bc3fbdeda46bbf031c21d019c6be1a0fc0284b864963d62294f41cb072edcb634cefaa15026f7393e4166d3601fd8664bc490aab072e6efdfa6bbc3db0e3c54ac0", + "4c51ad7ea743bd7c11bc060939c3898444b50594ea95e5dbca6a9e5f31d97252be8264966f51d8cc202394aa8671fddbb4f30f0352637c0248ee3cd7e070f83fb6f2a59c79cce385e7bdd54bbeb3dfac761e5b811299fcd49a0d5eac74bb2635d2a3ca362a36b73dd03272", + "016f8beaf910c29116ed0a0d12cee4f8ddbed562f749b70662116460de45a565c11dee7de5d99b998c1e3cada3f8a26d90c05ff9266fa0290ee91dec141c79bc02cf", + "420ace2430c3351d5000d260656ccc7f6167a029cc7550a46139b79abc6edaa80bacd486a7a67182e1649e2210f84448f08a60130de500a67e2e80c82e8731e06e17695552c1890743676d0a8346bbb23192b29e3a00b44a89a1373644e3aec26739e90e9557d55a4f9c92" + }, + { /* i=7580 cDividendBits=2918 cDivisorBits=59 */ + "05db360cc30f3875b1f8256501ac550a5308c005c1ac1f29dad102d1213569d3fbe0d10e3604b06d0db5853437dceae78ea583f233ecf8e9794aab07c8f3a6c9fe9bc745164f7b60880c4b319ba85b0a2f67573d269f67700873ca5f176c85726d891e38b45d8d84ee5a1d59556afcf7f03c2b87d2dc700d7bf31c46258ebe56a6ed76714466ffe48c94a53975f1583cfcef4a0ba3bfefa72f611106d82c99954d0c2c4c69b8f340c399c90adbd78ce959b402f5479fcc315907870cfff8a31e2cba2346bbbb0eb85a3c2cf80b4bf4676d794fc0b5b16f7d04709706a389b6bbdcee1c72c958b6dbc0fd3ee3699f718ff0cfd7af08e0b6745f0727a6c99f6105eb8eb7c13f0e56ff4cf97abbda770743ce78a03ece203f58bb5ffdc575ba04f69511ffb15d61f91f185b916dd73a3f38a06187099ab28785889f7b2049044ab8449f102bd331260b8dc749ab09ae35fac39078f787f225acd8c670cecc4c17901c000481fc6c4fe896b66d91e8", + "0238f197e699a969", + "02a2947a03240d06a2d9f0d36a3f70b90f8b3ae6d75c5c13f1cc18b33aa2f04b32b056b2c3e7c415569212e3b679147ed717b1eea2db6dd32b97d3ff7328ff86b6e753a281da230650cc4cc559c9340a8eadc7524fb4e4df312ab2d172d83260b3f6bea1eec0ee6592ed3ba39f49b0bad3ef09ee3482c8b0cc229eec952a60277c9915108f452dce1cec9b3cd55bfc1436a37594d532d103bb81150609da53e3464a6a7e5b550834801e26800646f18cb277dc3f360a2fc3d2ed00f7e82f3648634d13801b08a921a923dcfc3336546f936ae12c68db29628079a9d2409b3621a3f984a391d1db144eae3d42e710ae382879c0d2e3d4c48ac387ed3663bdc47ee4024e2ee48c521d6f63620ffe76f4b1667d4e1be9ad360e0367fcbf1be05fc58c68ba2474fcc033889748c245dda6f3b88d699c78f5b53bfa694f712ff45a97346f53243ae9ab4dab78abdf64c326f206696ca55db227a52ade25873233a1e682e9dee959d6", + "457f1b47837322" + }, + { /* i=7581 cDividendBits=3035 cDivisorBits=1732 */ + "06ff8d09554896e3a079a873ff7ab6b5621c04fb2d4b679c1f0abddc063f78f4f484423d4e0a8e8ffdef6d62a6b4b41ff32e8b07ccdb68ab5abaf7704d13ea2a5a05525059998af119c5bae75736bd5c0235790bb6d47d0a88c4972d9ab4457c50a529417ec016abc22c77c0e1a2d772839d328b8f8b1cf88380e69ccc25b8755c26aa492a9ec81a795f3b9e8f759abb1a6e593548ddea3d91191fb5ea953b38808efdca4cf5b8e4ebd16f72c9ceffadf4a1f81cac24ef251f40aa854979bc4dab7f2dfc4df80e6bcf4c7fea4c132bd89d84f2598c6c982f0cca2837ad85a41f7f585944976af514c0222f95b7dc082f36bfd9a28cf6c437e616983796148a2d3ba2db16494cda2fb08ad64a99fdadf2832d3ed13d18fb729c2c905ff5d157d16a55f205c1e5a9a2a2210e3b6c6a172022c74a15fbb3280f01688d39e8c8eb0cee89497c02b4a4a05077ced8c449a90e823a237e6c58dd6b952caada9be683e5e5a062c521562c54ccc9cad6e6a9002d422237b1766642ddad2469e2", + "08457ba2b89d76ce03f81a9a0bbe41f4f862c58070f38d16592028e4e0217e8dc0846c39f8015a19ab3af4e93e7ace1d97927b32acec72bdfe775b81019e781b15b2f24e4276d9484a576ac26d2afddbea38ea4480dacdf5e35d6d6cf218fc3200b9ce30b0866b461b6a2ea1cac171e3100a845090480127857622cad63ea553c87eb3253063c71f557c397a3bdebd1493c669e26164871762ed126f04d0f816e5b4842cc55f28159a724a934759c2417642329111a74395b992f1a127afbd172237abdd1aaeb30d28ee5d734606e4845a4d90768f96377695", + "d8986b311c95b5fe9319821854658e05d7fa71e6bb6b227d8a7de041f81701f0b11a2c63a5c10e019bbc760c885c18a7bd387a9728c216d4c8d593196e1b08948ddba439cd389c00004190a1b05f75aac554170826f9d80dece2639d022bfd1950aecd78f90ba3b1469eeea6102459da3877797c13236f030d87646c537cd763f6c4d76538ae3c54b946b395da94f1c79c240653118b928ee8b8e0a06b866106f73595", + "082c89373e2fb5f8443452e61c0b1d25cb42a975e8bb37677b810d214bc657fcf047d6956916e4d80e30cc9adf19837953239aac44a8d40508b03921d5a7346b7e92f8c07c204abb84c6cebba7e0877e16d9ecb1fb8c7981a78c05762ffe7d6fa909e3f7dda8612383d5a8b056544f4a933403c302f6933dfbed435bcb2176759c5557e407d839c24e62f3026927085168f21964082b79eb2560def2008b84e57cb56d100a7f99eb426a7155a2d36947d462147caae6ab03622c32b476f7a37a80e3a7a91064bb09e7359be77c664ae13503595e71db8c8c29" + }, + { /* i=7582 cDividendBits=3224 cDivisorBits=1374 */ + "4118dc8105692ba00da6fe9f02351537cc4f846888baf489c45daa098218ec804c7d3f0f8e22546efb9af08063b82838c16a07ace145e54eb3b7a125cdbdbb25fc03de0c2c9faf4a3e07e5ed3305fa2675f4e97182c0edf98c66fea6a77d989278e591af5b36f3e064c0b37effeb228b61c84562f3735da27103eac4e88069d7bfffc15ec05354094eccbb094a87ffbf5fb54d849c9923a61488cb26eeac90166c8f23630cc8e69fc28dcb65a3562da1eaf9dd590696bd9f81f7e627320ae7ae5e19644a3dcac0d00f3837b19d012db94dd31f31b6e934b09e2129e09e679a1316b6cfb643b8552836ffee474d31c6e5b0376532f1bf8c37f4a050fc0a8f13ef09e0a945139445a222076b3dfd99229c6f2205b3ea50aeac37c9bf2de43b9863b0b586558cb990c52795fbab8f8c06e256949050d8ced9202b0015ad8bdda136c8e8acecc8d961474cc87cee1c53504d4259ced5191cd46fcf63a418d9b1e9f244c1da7388c13647d00893ab15c088e58c7ef516ca6f299b5155faca09d587919a37683f79976a2abbcc79b81e8b3e97eda9d5", + "10e92d3f099aaa196c042dc234ad2164857f88994683c2f43e4973f33502cd59704e4e90e4e592d7f497535bc9d2cf53aa83c426f0ae48751a1e0ddf7881924e817112f19d51f295290bd81fe0c3777f611c80f5826ced9cdb46e4e965d8e1e4529171776e8b9f6bf07dae7c390bcaa623b2bba46635751fea737f2b09171cf30c9fe3d7225b4f090a39a842ac005f9e01bb754f387141392611b60398aaf8e56b09d64af948b5d865ccdfc5", + "03d97438d3670c77174c3ba7f069568b32f2f189f4792f98adc2508e00b9583011da5dafa77031957e53e77ebb0a4a515047894d6febf319005829cf5bb66b7ddaea4c2f9dafd100f5018a385408ff41f55ef47fb436ee1b7ed1e1dead38973d17d02a59e2e462fa7bcda9785b0ccbb84e58378c231605a956a7466d486c99133e8d3b046f48ff194ee59f7b469f1e539b2fe9ae0caf3ac179794e4b3fa8e5b55a0f2ed1d1689f14d5acdfe2ac5dee37d4f1454e2e805fa7479fafaea1da11e8e23a6601031d6c374ada936319e531678b91c34154682f4a1fbb4c0ccc957f24e6baeefc0c315394", + "0fd804109f79e14a0388a4c5a4b66f6b5dfc13fabb4befcab33860cece9fa7d23f9d2a0244fd222c1a38db09b07f5c03785d498a72e86623cc896c6794b4bbff94dbf761923cea4a7188ba1263a784185af34aabe4ed5f4d404567b3e3db16a39f9c0961eebd539e67369e5f4e2a031185cd08e340df79092945f89f1c0083c5a5ed4b3be929d6ccfd0870292e7c04c37785b167701f887d52d988ea4735dda8dbbb109bd317be82403a6cf1" + }, + { /* i=7583 cDividendBits=3695 cDivisorBits=358 */ + "2ef561a1f686590e55d464d6053f9cecce27a6e48f0896936e08165ae307e5addfe8fb5cd3e2cfd739973861425d8c691e82ee2ab8e271b7cdb8d6d63a8fc27ecff213e02c875f6811d64ef73d9d99a9a0b70e9eaa31715378eb7670454be15d70780c78141668882fc7200b7ea7497fb3b729bcec1ba36567e59b98ae86f5de52fae73f2191f94997ac8c54751112fad3b3602fe58559dcdb06ede3a28ec53b38c9a87dfd8fef4d78d7e055fc1b955af2b62e9135bef90f447bc3436f967704507e9eeea648d28e2c08bc4cca2ede1a1635ab1c66d93c9d74f86ee3c7de941b3de7ab6f78a0ad30070a88f6a22389279ac2700360ca1b9a96e51dcaae0c5886c46f7cbd222f14a5471637cfca5e050f21a417be3e33f84714d786545820339b5dc3e0a28a440fc2a2b307a9a2097b916df3b154bccf76d51d0d583f3284e9327af5d2f4736373112b4e739ff48816afa84fcf33c4e2c072d64e140640c231b440d4ae1d81ab09b6030ca6f766278f88332b91ba84052405c17e87298a0f778e9147e845a2257d2f11ac79e525df6794e155067aa937c11957d9c537e35e0e663caf246bcc783414eba8ec825b7cf377cfd1c1fa0a92eb393f4e8d5a6960a725746f5a3a197a7982b9f90d549397", + "225a7d5444a7cccec0afdb60dc53e58f9bd4fe180cbf703449698de81c617f6c3247272aaf3a84c361b37274fb", + "015dee99dbb4dc41d8f6bf30ce88e7cee171aa41ff86e3a059c71a60b0b0915cf6dc5ece792ec3e579b116d64326049e1396fd8b27385b61b0263c49bfebf1aa7db2613f21a627404a97dbfbe45059deee6a642d5d67d3eceaeff62aa56783b5b7126a5ade5af297a9242b6e4ec7363d4e1e857e90f308ae038c9bb5c840f2a85b349b3f70efefea6574b9d85f61e2906cfc9fd9a1ddcd41f9635b42671a3ee2d79b14eb208befafadd7ecd65637b1aa58a49374e12144cdf1fdd2782c00541bc0361c621a6e942c351b2b5643a62cfc5a4ee11294ebf26220350d522e2b6caf890a00aecbcf13e5a671a4ab6ded2fd59050446cb1d50c03b38087a2ccc478e72b0276d211143e87eedea27f08adcee88aec36b5972abd81e483364963070468a1f916f5f54d4a1f42d0a9478ff2902a82cf816237b0886291013f7d5edb391a5565c913108c3f4f3f75da58d93ae01ed00dc671aee3fa8654900c40af49b73089e629ffb427a6b06de8dee5af35884c12acbf300c03b61e69133a4bff23b24e322ca7868ab8faf237406f777aecf81baebf0a7117c3938869656b07cebfe1c4ed1e", + "058e443acb8ff2ce61490aff66aa9cb8674dd946ad150e5d0abc5299b25f3f84bb6019250e272923ade4727f2d" + }, + { /* i=7584 cDividendBits=2550 cDivisorBits=2251 */ + "09fc9b0b929b74f540a8663fe8bcd8cd3214817a50f40ab222a1091aad18bc89a8aa1da9c5ad054750411f9c81d0b624cf90d5dcae8c117dad2195de0a44365a0880136dd32fecd8ae253a62a752966d480c2bd3d2430d6753a79a84fb27e513a92b62b8ff037730c16ab551006c8838fec7cfd7bb3c6ae53f7befbbd8ab7cbf853771f4b3d60e5fdd0ed0b5faafab8fdbfa4ff68543eae57bfeccad93c0bb382560035f4bad37cdd01e095bebec18091e738bf80e5ae1d87470edce3716871f6aeb60e0537db184c8726e1129d1dd3b472c3ad920f7b1ccd4dfa1584535e6e15dc02b1d52e29f971bcf95167e985b66455e6c21d131c6fbfa00c58b0d59446eb7a715327310399ec2dd18f48a0edb227c51a0e51447beec0b99b618b00a3a2bc9886f3358e7b0603c1f27c0e2e55b2258ed32fdd96ad3e010c7d791d84c8b", + "069b42b9a7774c8fe93ea0492b3a5a9f2a4e7dd7b6f7825faf574810f61021bcb6146fc3ab9bbf27962607120879d8550cb5da28e20e879d00d85bfa992b113bcb4d6f9650bf197d593640876db49aa52c1fa43216b3533a2e1f254aa4f299f5b37eb269d62147b0b6e1591feb08a2edde044c81fcf0dd114822eef6ba09caf14b3048a74187d72c160ce4b64cbba16ae01791cd1e2d20b4d8b7e92678297cc79f73b026a71f95360173fbf970d0f72221445ede709dc6e633219a9cbbfe26a59de1c919f5d39a8d15ae92395364ca89dbab789de97ae27b97f899e3d2a6daaf4fe233fb85871d529d4c39d9ce719752bcaa6c1a79c9fe3b9b29ef882f90ec550b3a36b895e01ad02f7c2dbcffa7d26b455b7ce21008f861503b", + "0182fbf08de89620f67fd949c96b309e97c5d70ccf8610f5cdf9ccfa3fb7c26e2738e359f756", + "02fa075269d0f43f55f562b0243066f450046b0b30f4a21974ecc2cf4e32e6da67e4f1e02283ea584e374468a620b09502febf333c82ed38114d4cddbf3319955fb25e22e47c58472030ed58f527675640b205715a50d9c0f7601dd5482afbec037dd8f11bc0d1b88734d0d41ff9bb62d0f2ee94af68e5334c72b26117ac8a19011bc5706fad0dd860ede0f16bdfb4e038d9c5df123087adaf461acd8960c0407e5cf15accf0b9d8eb3b2ca847a1308b22007aa3e1e0dc1de80f8963438bc1f23b12fcae06e21572096ff9df39e32027ef2802299aad51e4455ed0d024424edfcbc28a8898cf90e14b3a67f0b4fb36f7760dd5f78d7d6ad7672e22a2056117661d91285f7d709186fa5c85aeb4ca4173c232ef6d8f4d073b6bb9" + }, + { /* i=7585 cDividendBits=2860 cDivisorBits=186 */ + "0995b4859155638d8f6c3a398f0875e3a73c340e30cf881092c9e636f322dba40d7f9e6a4a7ee5ca616b86cefef21963cea289e59b66b357384545dd331cde775004ad97c61c08baa85fce3de33439ad7ab13446ba5e5849e1c8d71d166b380b30bb60778db845854dbcfa8fe78d2acb6acaa234cf0d2324446d68c20d9b755a20df897d70b4bacfbf6ba7b6e956912d60c04ba8622877dd50004c27cef22e9ed678e616a5ea5b6d85050478016ad1c1d56609e3aa69088cbe1339dfcf04b22fa4270e2753c066eee320ee92053e78e0b14a2f59a05dc631a6c3adb5a8dc3ee247a390f02f4f9734fffd5e0969188193d65d9c9ebb9472acdbe52ae6342da216e11285153fca4d5e9b309b29b01c56bbce147a6c3aa0bcc9bc9404624e8909f3227b9b7776d3f6385cf4c70f06c573fbc1a01ce2805c74774cf7fc391627e35373f751b842141a98edf9e4b215193b7f97ce8c612baf81dae41f8ce43cce319806e659f52f85", + "018fb1326ac6e877785adb2b6ebc9f2f86e33c8cd18e4890", + "062394aad6baa55cc24df025d2d1d4704f7fa83e028c9caf9d9945d9c7885026b843dc5f424818d75d3a51cf36b69a240b618ff959048f0528dc21bcb4eb9037a396b63bd158704e84436c28fc9ba5283806db5bc0846a10418ede76dc689a9342b41fb27c365c66a915373f72da5a5770a71dcfc9274dac9096baf67655d813a32985095877d0ef114c9902ee12d4fb90422d16160aface1c6db8361a9a43adfca2b7e8dbad6904791e5c6fcec0de629177ef89f9296c8b29c6c8c42c3bd2498d73f165fda07b9dd57df8ccca309544a995a5421d098395f601ccbd8d14efb96adc8afdd214a9ad2545b11a3908d0ec7185e7bf34ba6a643f2935608ad03634cdad19c1a632472e4ae526ae9270f5f34e93f21ca12f6b021f7ab646a955646d8b0d63b2264c2dc27d117ee4d3c81e14e68474bda257937443154c81ee515da0a22bd36c11405cbd795de0ef3ff1a3", + "018c02b12c012a06dc8a21bf515f7d315bb0b233ae9d6bd5" + }, + { /* i=7586 cDividendBits=498 cDivisorBits=211 */ + "02b129b04271e989cf6acb8c137fd42be4fe232482a771cb3d3bf400ddcd8ef6419607e5479ef7a4d2c73eb6dfc1f199b1735bf6e4e9666ef5115aa751162e", + "4738aa17f31879fee1851472c828eba9a2f78bd1e968c03a7758", + "09ad257070a5b7e2175c8545967e077b40f3cf9d6e3118ad5b6255aa043121899d9e668eb8", + "3ed8f0dcda6ee1066c5d7a2a5d036851ba5b722b3d8432087eee" + }, + { /* i=7587 cDividendBits=1620 cDivisorBits=1264 */ + "058ab314f4e8e9f69624839c76da903a1f0c8870870fac1c1e73c2baa3b03560f8b4a1e03710513ae1745a9aeb1724ae813fb4eeb0f3d40df0db8c2acec16f63650f3fe12f9f618d4ced93ead219da9ab9899907702861b2b1addaebff094a9122a9837c80c135aaf19c375a2fd2964a441a4d064a4c3aaa125fbc9ae8babc630a0541014d86d5a6631d53e00850f264595cb3ce84df5008da2d7b060ffb86b73f85bfcb4b38b6c992623e5bad20d948348df6bdfbc98e2227ccc0017d371d73802ef1b42490e7a907c2d7", + "26322e8a46a8bd3d8c47553367e2b118e01fb9a1022fcaf5c8407a33aad67df19e598a92acbb3019cac75791b9df4b5fb9e92a164a0a01c63ea1f138cc32d4e293164061e5f9a5f41c545afa9e63a85eb6d3164c8f3164c34f6a34b5798a33e3932573b9572d393c1c1794b9f7ae10cd1a4e9afeb7845486735d522fc5e996710416ec585230dccffe644f5f9657567dd295065130f9917ed55411cee892", + "252481581117ffaa50c5f3798f3e4d0fe23aa5ff159a76c3ed9f60d0d68d4b6ae38cb76a849f04240c4995e01d", + "022704835d1e83598a7b32a10c798b82b6fdab29374eb585f285e70b8506df6c223ba62101c9f10aa4b8a8d991ae7f27aad4a6558fe28dacd76db28cc6dbea90905868e9410d3f2d5fb86b5c43d9ba879ca5c2ea04d791afeddfc1567fee579d71285e0bc5f2f7ea7b248ebcdfd8638d7bb5f5212304206b6b0bfea666a326957cf5e794eddd8b951ecbe77ea0658b5f5391de086e4ddc6b0a359a1daa4d" + }, + { /* i=7588 cDividendBits=1256 cDivisorBits=738 */ + "110fb1ed5e2f6ef5768999813fc2e5fcd1c335fc997b328f0c7eb1930d9d26cd32e4a44a246b9ddc7dded559671137f283b96a8ae023e707cccb72441f72fbb1b002d4277f4ef7ef35eba21ce29e97b4ced97da2097f65c9448b31ad10e84516a98eac46ffd5985a2fc19d427d76a7cec6c625f685093d7a62275a7d125d3678674430498e3541a96e59aa488b66642dcd78bf06cc63e6e9a96e36a49b", + "010c9ddd4cc9445130a983879be3ec85dfec89371ddf262002242354cfbea80da3e7cc8af3a7f578c11a02de29b8919f8630cd390d8339fb5dc98ffc44fdd26e983eb2a2ee434a228ad678468e9dea7afa3a71600d1c11c7a6ca8d1aee", + "10428c79358848a5f52c229671dd46b51b50947a6147777b067c71b5082884ccc37fec61c13085845676484e2c81e5e3e995f3cdcd1a69ed8deba5b9991379064e", + "87791b703f68dc74ee0804e55b10fb0e27c804557a6bd1291f23523528ec1af43766e071d960a951569d98e056c02a41a92fcf1ade5c9fc21f684f892bbe74b1577d50a581a1ff4ac82b96a242fc940acf0fc31cd0bee0290418dc17" + }, + { /* i=7589 cDividendBits=749 cDivisorBits=543 */ + "0fc00e404840bee7e7e488856e64cb0b618d4b1c604d321a1ee06178764d129fb793e3230a0b1f7bc37535d775cd41dbd51124b8f9202f7facf48df0720a3592c9f43280e3b477a958c80cd00243520bf10d8d8cb1f6ad2641c2c6de2efd", + "223e88d307b896e4bdeec78fbad2c5cb7d796b8dccf8c72b32f5e4f4adefdbd0564a61a251033d116b1f66a5be27ad669246dc3529434f31e9fba7f13547fd7db571ac61", + "75be726bef786a85cf12e51658eb7d3e4101bedb7880e088a4f1", + "06142889ad0e49b9057c1dc7cd23ae87558621cc700893c04020c14839daa3095de97b7140d82cf469bc49638ce9a736ec6332ed7ba0ebeb908f363d45d19275b0e4c3ac" + }, + { /* i=7590 cDividendBits=1110 cDivisorBits=967 */ + "05ef1460f64529fe66756f9c9920481a8d14db245e9e2087c3b763307445af8db2f4d8b6e7484670c3f2a0a7dd8976568b7be987d5896ae31e4081c8b77e258626c329b6556247d816b5db9f50ce18925ff88530c233c11cf66accf88d69daf4c72dab8540f8ed3ae202d01382c3adcb3b2c2a86fe88456ce9b63df901c58550044af77e46bd3ee66105c3", + "4826062f8621f91793faa5a72860cde18edd5754a6acfe130030971957fc313e9e34288d374acb15fa9b6852d8770183e3d2ce132d9a81ad2b2c8a651daed139fe28a818277d35aca474f275647507fbfca8c955377e419bad542f3b1bcda589f510ad142ad26ff60b34d054066a5f78b1b5a206e738344bf9", + "150e0d745cb1fb5ebf3e32d2c8896033cf46", + "15090b74b795a70d15d4507d041faad0aac9462a56b526e0aa0ea3a46b00786dca3a3f28f44cf486194282d22cef1e9be0817bf775b35f68dc7709be31c5771c197d054f25296518a07a020a8a5b2d2b7b121cbeb2cade9af7eb98a6ca037b18bdabea0dca5767e5fadd9b706d1245d1f2d7a6e469bc0ae8ad" + }, + { /* i=7591 cDividendBits=1706 cDivisorBits=795 */ + "02e2f276e56da997cc30facf3048e89d10a9daa7a66e7f8b016047404b89778640973579961530de51e94703940c5def58146ca40144dca8a01cef71f8b744023e048fc3e7ebd06435f51e534225a2a58e96cd3ea3697e7078b2fbd9a9a62284faf0bbd9d7d219f7e4c5caaa8621bb1025af3a1107bfa44f7a76d78e9a4727fcd4e898a27e2a41eaa0b53280eed4c85d4c8c44f74f49bec68b94f7f133f3f82dce321663bad4b81ce46c92d564c3105813a1effcf8695c7b42b0cf46bd2c60e8e803d6c15a02edc89e37ec1120f2814550c26798f931", + "b0d50e2cd7e07a69b792d33051a1f89b43d327e92f033247fd8c54838cdd19acbf77911259e15f39a2dda708e195c2ff84d906987a532a8b14810d19c088d0b241830c17ad1633faa46767c2fbc72d8070a8fe9bdebd7d0cc4404a4d7abcf127f77955", + "042dc60891915b6b45e65a11720eac197624497474434718797508cdbce947407688b9171586c5668a8e7a8247c55e4b83ff318dc225f376fb6f3c35b2c1cb63963a1feff7085dc01f6cf70a4a2df655cc953674afb4c81ffc3928442caf98464331f3cb3d5bbd2efe0790f07acd195143ddb7", + "4f79deab223dc725efe452e85ff16714b40867955148f230a78b0b6bf9a217ef617c18f37bfb3f396d9d20753c975bc560143d70873a9cfa29f3376970155b584d12f976c8f9b8ec6e8382b0b61bc5c8383934d5c4375627c6b8fcd2d363688bb3dc6e" + }, + { /* i=7592 cDividendBits=3529 cDivisorBits=879 */ + "1e7753990197bf998aab026f441ea60fcb1432ac3d67b5de9af2d875038393222a60684545178d77a4f12611220fe3bdb5aadae4bc9a3d783c6d4faad27621f656e0abc2e45464cea31baab9dd7ac78d9280b09457e54e1ca9ab14296027d6b48bb5ceb1e7e3f20f94c8df7b442f78369d85fa965e39cf0376e3e5067a99894682458a27161eae2aab806d43c11f5113bdf9cb9c1f75585984bc8e307db35028e66e1796cecc8ac9e327ed1d1edea31704e0a79b600a4e78cf037124d0ea2126bf94c0e82454a86f534229239df2556e23b3e40631326c803f1556976f67a455b5638ea6d377ec07c4a8b17bcbf31417b9966d873387d5568b3f0c8c7842cae62c1bb7b2608e6d62afd8a547761702b07879175e3e64c06485a07d47dfd508bdb4c8955c597cae469e23b9b36ff33a0f9dc3690f00ea22ae02ea5bef143c9be96a77b34b0dc59c906778b43ed962fac3c3bb13ce7f7b1eff645cf6ba8c9675ddc74d53ec36ab681ee2242de45218d120e93d217fdedf15cc30267bbb6502e61c6c40bb7acdc7bd7d7c06025dd62a4bbabc931e80888f8532a478c28c7d9b0e6ad891615a702787af54c89e5d7912d3025729147a1bdbd50201", + "180184a94b9affc163c349f7ba918d716d514b67c1e496bb6d392154005d958ac90fc1ba5343173348f2a9588fd2077c0e81fbafb6faa528d6dd3e8eb8ec1d8a37adf7c9bd117717b01725bf8a1ec56f43ff9182775d07f3edb876c8a5d20d0d3605f1756b45a7aae5427382dae7", + "0144e443acaebd80693d74d5b7bb52ca94965849af58dc17545af1d87a796a3f8f8b12f1bd7cd3cafdfa743021450f9a1218298c595803da60c04fcce7e8b2736e5777886a3261b07fe236d0cba04b55d29e2d9db80c060d9245cc0866ebd9bb9f76a776e5052df556dbab9aae37b94acd0ed86a004e0fb23323224d0853bbc3260d2d23b163792e7dd559e07793460f07e7625c4af5d209c20d70f08ee58915a1599a10040a5aa8a1fabc47a3b38642b13f9378fb346b84ae555a87789b6cd567c37352318086d85472ac6047e53e314aab286b3a2cc51a63e6840977f91f469593684eb263a86af2982cdb6fa17dfba2fa10999964090852d8f03c44441430f3c54bd62061095fad13ad0d1bdb038eb0f2ec5699732f3812ac647c9ba3fa5b68a643478f812dbec6c7d6c1ce18b7180d8e5e8198ce6a38dad2398f76a5bfbaa5d0713d9e8c90b3d5666000", + "16949d805aa9c9addee9f99ab07f19cf0a7bc9f323a90fe4c6d6ec747127468d71e45ff62409801d9fa944637f9922d05542437de4cb0207ec41c71101d82b16cd7369d4b3fb390e40c4190438a098c9569f17d0e85b95e6d4033a49c6dd366e54d98fc32779c890a9005eb46201" + }, + { /* i=7593 cDividendBits=3667 cDivisorBits=3621 */ + "02c4f045d351c36c7ffe83922a0a2925e9655b88ac5de3e2faf16a0d4997d39c8a14beba909582d6993b85eaee63e4db5942d6195f2c055260a8907272e571bc56cd7c1191ff4d6238919eda88ad57cc68f82ffd3fc95f3a9ba0117a0001a79703662ba3959da3cb1b8c782edaed1bcf090eb764308ff910b848f72e913dee573d2050f4849250d7d1b7157240bf4cc50ff793c2c04583da8dd9c553d34b71c71fde1eb7bec18e71ffe4435169f9ac9aaca3184deda334a61abba4c88b5e16a271844b79a008c63a584393fce099129f470ad5d628c4964d44a89a14498e5155e8e738cc29d7697655f3bab1456b73b41351c55af1f890582cbf4ef4cefc13fd72dde3406789e6c5f870816275b8d45cb8e090d5d24bae66a507ce56e1449a7d64283905d605019074f127370cf1fbf156d737da98e953efa9dfbf780f74923a9c17dc3ba1a9fa186140c8703ad18344218293af8f9f85d3097da923153e251995f9e3c16680359f3791cdf14e57fb57cae1164a3adae227aee3f15a0989b5a80681b2be80964e25460fcdd7fa80a07c5e336754b9726d378aebebc7463dab0446704619152249d71ce2a519e7ac5ea6c830b83ac3800d7c27daf9a12aa56f862660d9e466c75f1a460ece", + "1ce121aa7894e44c903231f565cf13ca65248899ffa613d69a3680335b081c48b3dd0e06e35b4b90c97add490482ebd73103c05870f232896574c4125c557f7e303720f1717e6866aceeb70ce508741d595e7c06d4fe33eda2483358f37da04463cd8bcd174e37e5c93f47621cb61553b2805c554c91a9655555cda6b3908adbd0a3bf89d0a800531845c35a9dfe32a21bc8e805755275e11465fe1e65c8284171cd3be91ea42693f6e6f4e3294fea15018f6ec0fa4db71a048b0fe85705ca1f5bd7595ed553fea7bf2c8c23ce9b92298120605d8920c2b0b07d045bca77a06b044140e5648a4efafc4e3235a8c185cbd7f9a1923a20d1ae6d0ffb474763239dd6462b086ede6c77bf5137a16052571e0c096f0d4e3a92955ef2e1232d749e426693f90cd465c92172a6696eade5d6e75519a9ebd7816ad61f27a5fb59c5308b724ffec2e043a468686a9d11e15ddfa87db7005387a446e0e93736bf1d7b2d4cfde3b898372cb34fcc156320316ce1808fa6e07a1d303968590a3b2f55a4e233d34f7ec2c20c904153ebdd7763310dc7fdfe53bf41f7445e86e6c5abd431115b2627fc0482939649d86501ad2332125a028dee52442804872f89af9d2a8422d944d0dc5def", + "188c589ff2c7", + "157014265ac32e1e2563e2cfdc987197932560c728138f749bc7b9b9ab7fd5d7c14cb135146516a5d98e5a92f5cc682808a254b0c3f42e9098c446c9c9e6a115557fb5d5cff989ad15f284d83867ca77e4316410be1bf6e8d9408a343d2f070b587315c3b75833e004c1ddb89a7e0278ad298b7afe5881d1b3e90884d6943dff2443562a7e20105bc48425a143706e781f7b40f65162df2e772bae68d073bce19790a16ec53697d426a37644877f2cad1be3d63e6b0582ca3829edcf71b607812a4ddd84cb904db06e79de3a77d4823289a378e02462570bbef71dc9e2763aeb4f5054a1306e8ad157bdb42af6ee39593726f10dc41b985249aa0bc08a6bfbe8e564af394a2da5eeea1a56baf31affea9628da618ae5d9a87bc709148efe10fd989bb1ca1be2a3225f8e874dd424261c5201cbb32bee4900cd24d1b59285fc594a8ce25a68aba7d5d007c773e9506da34f454213e03fb08e4afbb88fbc3f37573e57a7ea3efc26cb4057ce3748f29ccb9599de467d0925a37f89d66eef8e85e5eb75c63f0689942cfd6a993ddfb60c5a8d406c78881e72182ba47d6a3753bd098208fff216a9006a2cd04375fc36fda99308e4adfa2d39cd96b9cfb258c1119593eebc1c05" + }, + { /* i=7594 cDividendBits=3032 cDivisorBits=381 */ + "5ced9f4990ee9eeb4a5ede617034455abf745b0c4a939333aec0a51206b10d4e33444ef4f39216008e9d4420c297262270caa413b3e23e870c196a31858002e181fa1cc32feba8866e434dea13b421d66a943d690b46e620c93c53d13fbe466d260a059acd851c3d252acf6eced6ffd4de021c9114abac35048fca27ac7acf21e97b767407a95828dd471cbe620e4c2a7e96d840ee0ab5559e99b425870218e7fe93a2d4c367928069b41dee60e2c1520da64e9e689fef601c4070bb01f292188fabb3e75b49573344035e31d59c7e5dcf3c0074d1919e0955ba50390616d5c2a3b9ddc8c6ed3ecc50b5eb8dfb4640d1d0ceb0468c032d1cc49dc3ccdac1df99ce14c848f7df4a617a7bc96d37356f87510baed8a72de0bbe1e2994b1f09ed02841ecfb9f73111c7f8be31e249d796355209c49f6d9e8b9dd9f49facb03be4ef4f01eea9888bd818e26fb5ae7e99f8abd02b0df576037b50df34a0dc05e4132cf254f7ac16c30d17a6a8580faf46f27b8d2f3d7551f1619e71a493", + "0d3a93cca38370403db9c4dc956878370c968b4826ad12d66115ebf6c1455a9787ae1bbbb9ac2c38ba364409613c80f4", + "0706516e2dc098afc31ad85d51ae8c39bfc1853caf4bb47ab1e6e7942347dfb7fa706735406dd72efd1a6855e09563aef5b23e74bee3cf42dbb1dd510dabb99d9142e092d79ecdae7a95045af18f9e2ccf72a01ffb65df827100b556fa9769ecd521d984f845322bbdc26a207c64d5b0763723cdb826594a763e0b90835f60cd6442fd1155222cdf153cd9296c1f991d09709f76f39f8d48935812c2ba6cf6ef5312c38fd12d11d523820fdee15e930896433875cb9ff1a14abdeea6755d2ac124caad4f219c4bbf4f3f570110a3f3faa811cd328ea9cde6a62f298d9dabc86a44d23152ccd187ddfb76ced5900896075d6f370ed32587c315fe59f509d14519d72d6b2a3926b5e87ec66518800dd538e55ac3abe093b5dbcf6eed2477b06f9bea9440441b1cfe07ef13cb9feb778af335e4e986d4c24727eda7f79290a615a012573f8265245246c785239e", + "0427736efb0518d94b1e4fb5e78e23071a6d0ad756fe30ffa3915389e410962c5cf3916c765386b01ae7b3e7aab4b1fb" + }, + { /* i=7595 cDividendBits=939 cDivisorBits=91 */ + "04238bf0a2d3cff4aa06be097c46288593b6fced6538a4c2424666a73d61947c3d25ce8b50766d197ecea7a189a5a569a1196c9a5c0efd0bdb9f1c8cb2b3dd2b6b4797632c72fedb789f2b2d7097df1d2a8fe42c3840a34cea8daa9f4fd78e966a9ff5f7fc82390252fe925ef6d2bd1d867c2a98b265", + "059cffd26e7ab430e439a1a4", + "bcc1d6b61a7a6bb14e76d101ac852a3f97c7cf399a4b3ddb0ff138e331ce9ff1faa00fc88d5b3d67a2519a426d7d1a1a70183ca41e50d0ba6c191ac7503b953eea72a516b4d2d1d4191117f175a3d2d148c3232d930e162a34f25b315b14528448696d00d892571937f1", + "02a9743a8b4cf45569994b01" + }, + { /* i=7596 cDividendBits=3291 cDivisorBits=2537 */ + "07688a899ebfd2c9b981a93062135afd686c7374c237a03cedfaaf6b15230dabd6c96506511c774dc999e97277b58a35adf54f4d3a43365e8cd1ee0660fc48622c0a46f3d356a3f2079eda722c70f64728d6fff6cb0f8f275e6d0d665ff036211aa760f55f24e9f98b07db3b37baea8ac60ba2b21e584d63835c63455323e42b493c8a4e6870193dac487b08b2b65038a0b87a9bc8f467ff580b17cb2476f0b5398effd1a856e0073496c07e80bd1f42d810eba3cd8396c5b5ccc6a2ff7183163501e9c23626fd6031e4b474c68bccccb7f9b64b0a6619fea2ecb189737c8c5c94ea339416ec1b1286021aba995c53ba9bdcab7e8171587fd0f5f317b51f235e85cd6c1dddf6e7bbc4f25d4d3763ac6debe757881fb5b268550d109554ef2d6deef40e7c08571924907b720ab45abfa962d47affb1f549a1fb03f9d408f0d90c45309b3a1f414eb5484521e5c41343987a8b477fefd954d56a89bdb368ec9e7f55bf4962b0d1141f95c6b1d542c14d46d3dd55f9d9fca9d8d0bb239c5b04c797119b7abb05f990847cd3af10ee216e11ebdc48c9aac06121218a9f9f", + "019588321df89a185f48bb6ab1971d5d9b3de8494e85d7a03d444ad2b407b9c7589344702798975a0c473f2287dcc397f5978ad059ee61c53d714f6da45c75d3c8bc34fa6226eadf75eccd6512af26ee45939ebba77a06816dbb2e81e8109a45732eaba7e72183b547001c6797d783293a8614c317874f0b6d230dd80003d59bf43414128651c9a621795c1f3b953adfdfac94d04440981bf359d3430c5e05e7a62b7978aa9548cb6a62d5ba85a92af63190ef2b5b94b7ffda1838d22b58a1c18df10a80e6b44d72f378b4bedd60f502a8e937c9291cd74bd77e8b4145d0e98431b198e82e87f690d3e4cb2ad263f3aef71fc5d1d6b7df376c72b67c342b37ec4243f97d9399cc443396bd39b6498b73e6a988621871ebc0c49a82af34c1b3fb4f1a7bc806efbb58c29ce01808b11ff00df7fbf74a8053473d9553be4e2f", + "04ad3a875c70862cac6662f3c472581fe155fdcd83a1c1c596b5a6fe138ba296e3595b119386567c82aa170b5304b27b718ab01e03076574b1dfeac094fc1089055581a4d7f554bc0520f5763c55657024cd14da0a0221af6dbe4a8a6905ce", + "591ea05ab12f2f5ba0e6a8a9f21fd0e0ad205c893db4b4ed3d893d13f67d3929fb9409e1f99dc74bc116e4d654717abf3b896bbd55867a6a3d3ae305567021920c2e48258f85619dbf80c9c42e05d3f66cc160fdf59efd5bf632014ee42ceb4de8ef672932e01978ffb27184ae6637a239e6bfb742c99bf41e95c96fd336dda603502ff61199af3fc9f3739047153d9bc9dd0f9916f958c4e0dbf535e112720690d198892f373e1248c7e78b9ff5b3e45076f2d92e3f74a22daa9cacce169308994905c777cecf742ef08889a6e91a4f5b7acae8866448d16bbd5979a2d9b605238285f47aca185a574165046740021a2894a1a73d56bf0c0d11347937012aeb1d7fe8ef4921b6342dc87ef3a358194c5d7fa66a3599e19b2b4bbcc66fbd8387eff0fc8ad7f538cfa56be6e85bf7e99516ffc871a1a3c87d8b9f99cacd" + }, + { /* i=7597 cDividendBits=2710 cDivisorBits=80 */ + "11c36f0c42358a55b63691734d426996e85fa1c542e5bdb0fb6a072b7ad687c32d4bf620bab168086720d117a056d0d3034fb4222bba9976f8624e55d0f945b2455be26c9a41915644f8f693bd85b098d28eda0a6248e559986a22ee8f98c6bfddbd9f6b1d3ffbe48aac200835e2de573ae6856e39697b6b110cdb7bb7e0ff4558d7765f88ef6bb1208f863fb59430c941345da28da2fd596481aa05510dc4c0cd47a792d4997d846b9e19320f8869dff32aed66f1a6de522ddf76f9565981043affbbc986844de2ec340affddd9e23aeae79d24dff753bd17717c1b5ec1752e2d17d7828ea0224c43818a8a2e2cc7d57082f50826920ee41337bbc641badeafddf6c7795bb5541cba75ae0e8350c6ab351688949de2397c3dc138285559c54f36731747aa9f67053614b8a498fdc9e7ffdc5521db344227aedda9caf1cfa87fcb9d0458ce4a544d6f2549ad9bdc4b290d2b18", + "54092ee4ccc1a5320974", + "361cee13483e84aeebb3995c732cfac95f25d5dfceeec2f8d6eed99ed3ff2656eb4c8a0a2ed27972ee762036f4196f961ebd1cc77715603de49e0d442d24504f7cb3edcd3212972fe1fbeff3816d23c62ff717f5abcf8b2cf5d5a57f7f18b4f43c69434252a364d0038d5366b085217522ae6d737d36e08b7d75a7f9f02b7b9cecd307aec4cbe777860a8a0d3f9d33366c2bafb21d9d787c006659667ab74dc5685f9af40d427dbf429c065b829b644cc44849a79ddf682c7a6c00e0e3be99e03b9f792e43ae41d495247eb39356906303bf09d1b87b84c1edb9fe4fd494de974c99b7536f650cec456a77897c5f2dd5244e9bf75fbdd67b3309c4304e7d36abc1f56cd53f0847ecd8b73059c9e33eb6fe9a36251eb003f62887284c87204b1102b75c6ffbed8a6dd3898c3576578fed8b063f0f0b25791ceaf9711bb2f404caa40c3e3c3cf1a5949e", + "094e04a88deffaf04580" + }, + { /* i=7598 cDividendBits=518 cDivisorBits=133 */ + "3201d5d0f3197e32462dbf60d5e00887d20a8d8a3679b050a0465a71a3b918efeed4bfcbd119410afd423385c33ebe180a2ddb50cff6b790dceca14745fddeaeee", + "0eea43d63ef5f266f56f8afd393c477da8", + "035a505a16e1b3997538b7952153ab4015371b675dd1da8f96aff249b3ec6f65e4cc989d5ca82f890c1c7b9d18ad4c5cb9", + "0cac596596a9707fb944f9b25be72c8086" + }, + { /* i=7599 cDividendBits=677 cDivisorBits=158 */ + "14321e923a3ae2c510a11a7f343fa9a6846eebcb810bd6dafdb4387c96494501f1859e6013917dcf4d13e1a08261dbc116718f28f2ff24176722fd621f607c27ecaf0a463942116599d8ece3eb793fc1d8e3103c6d", + "1feef9e45e088bb3dea1d3da15c010602c7fa612", + "a1e7163cc4bc66647dbb2bc1c2442e60d3632d576902093ca91dcb186948474bc827df6a1176f625b66471c309f761826b4def95d46a3f2db00341c58585e2e417", + "0be4ab7fb5816635a72bfdf350b3e6413dcc48cf" + }, + { /* i=7600 cDividendBits=3861 cDivisorBits=3187 */ + "09fc7b5dbb73977fc8346541e099653df1d0ab32f0fb954b532c4df71bd0f45c318baa67196d9ac3cc426c01ca04ff06ad3983299dc42cd8c06886838df825d184ece5ccccbb01a38bb21ea137733fab1a5823592eb7ff2d6abb01c66a91faab4903ec636f3c410febf9b13111b459ae2e3db218979742c4b8f69b88e6ea32045772f97841cb82a1f8435babc5902f716d7c3bb42a342851935d8189632cfe7d376c996b81adb5392ce5d8eea1f759cbf93e0cc30b46aac878ca7d5de1b8968eaa04c5b0e060541c566a5b0fa19e246c29b20d24b98b81a6eff500815ba7b162d9c8be32b32774d0c54cb9d04803c36e373d9f3064887f6b725c9f79f766efa94e8a401cf12697db553cb4e14ca81249d459a52bfbfe3bf03e8766c927db0b0e87e7f73c871e5307980319edab6d5fc1f51c2021a9ff6ccc3ba3cf1507a3a12d1dc3e338ddf151682e65949feb20ea87b706ad403f96de36ee77b6b4be03677b993c4aa1d9790ff7d7f48025e5d7bf480a24e7ac93dd4dc1677c0626f18aba483bad6e361e4ee4ee7cb1735487ccb4cd54acb25df48cbaf14f4540e67d04b5c8a54767ab928878973348d618f34046eabf4e55ce6c8ba80f3b524e0c5896c0a819b39096ac11b79ab79c473147cc1c5388403bc85fbaea7e0d38c3d3138452f67c0786", + "01ae3d04f61f8c52476be629a536667c6e8fb85f987d436f8ce4617ee883377ba983e33745342d1bd97ba611a5d91b4168d83e5edd02d9d159389fa37ae3e855d6111b7e6da471d6c59bcbb2bf37bee5740b07657db09ac382334eb3486b4d6e0bc2ab89cffa3ab98e68e58f6bb62ea1044a54e42bed93bf9c0b473848ee453c3e7495cb7c1b353a2d03ed509f91ec6ad009e0f860a8f63e7b0cc3d44386420cecb784e77dbd88d5452115c88aa214967628b6a88554fa7a66fea1f8d2f73968d10c503b8721d683697182417616ea96daccc547f9dde695a19c69e6b45847a13e4fde2b1c1d3132c1cc91b4d3f59bfec55d5cda9b8cc5d3cc8d65095655a374febbf27bbdff85dc419d1e9286290eceb0f02bf63e3bb59dcac5dc3f424ab541b82ba369c62091de88f5f0a6e365f618cd86ad1a28589aeb7752309404c6b2460d77be6baeeca21e91b598da8c00957852ed86cf6f2a3477dcf90c5197be94ac533752d87a011bc1fb0a54151c84f6ceb4331ba99dee8b0863cdaea3ce60be2d9291155aec0ec6cb16b8c974945182", + "05f127c3243c45ebce73d1d2088f50190eca4dec594d0ef80609ef22322c9fa969ee0ba6fea4c419477d54d41629757a15d1974d10adc6a28bd2babd52cc6416709b2df4bf65e73b8364d302468c80eeebf1969d03", + "e9d5fb30f70c3d9a80d8380a697b1f5ba516a8e76369dab9c0231dfe74c9f821a5cc0499e122012c0a90f2da1458c3fa80f4d284a1c6b6afb6f472503a8a8fc60c42f2a02427a094360620c88bd8ff3bba590d52d6f2cd128f795906338c2fc46158d3a57642f7306bd8bebfe95f327228569d3202e7c0be47247228dbcbfcab6806120e66aee98551fac7c95899dcc165aade45525025355b1ea8c2f4efed314aea45780b9c92c6dcdfa889bc153e78184075661fe1e2e50c483ff015483c287d750311e31231fa1afcdbe7da17f2f51efe9184b3f4b57ce91059d619fb27663d6a21ed79912a308f271129bb81cb0d23ffbef464af09fd5a17e6416067dac0e0d8edde058fd2120c115e8e769118f099207b4bbbc00fc3361c63af8a43717f242c5b48f1e3745964ce1937ca7e420a57eb500658e6cac9f4c0d821ff43f03bc155213d213e8ef8218fb6605bf4344358987852cc9496a983b600f1118bb3d5740dcca8ef5486b3c7840e6808a586539cd2627db8b24f3fdf7e7f96ef8ed674495cbd141f04d4c42f7e7e965900" + }, + { /* i=7601 cDividendBits=3644 cDivisorBits=3553 */ + "016e17cae8c7b29664bb7d5f029ec3fd15a7efa066c1462886bc879c4a5511f93885a013de39d13ddf6795aec343fc23faa5e948201436e8a28ac7fa28773ddf5e315a0fea459f1d4b2c29093e47bd7caeb3191af08357b4cc9bac795149c04af3a6ff31115ab8a1000d3e8f0e202fc71b8c176dd6f49fabe07fa96ccd60204535b22183e03a4012b5ed8230b3acd1205fea53fdf79e3bb88151b37a9af872fd92a8a9cf4954b121c363fae66b77ee03d7b91830e1d9aca3be9bce954c214dfbabad8a36754d943d04cacaa5176c36eb2907ded76075f3f5aac845062cdb09423ca10a44d604b67e788a115dba08e790102dc43998e31c17895cf2ba31bba549649cccff31fc59a53ffde4523b2f358811b68e98842bf034b8d880de240be987c0c818055b7ec275740b97714f783c90a2eb67c216577a809222fa0b0b30ad9244a63ad540b8de03a2015e297e0e37fe1c95ad29cfbcffe019c09b0fb6e84c09144ee002cbcd02ac4486892841cf122781065a013e68bfa8d9d90daa9dcf23adf81f39b7806442ae76c28ab0582decb49cd5c86671a6da5b6bc8915882d94254094d14c93e1fb785ad17e007d274a9d7fd2414c663679f976dfe32de087f0545e0293241d3f3b5a9", + "01e4bdc456f2ae1084bca9191219354481434ab75abb5e67303b118861a21caf521f021b87eab134d9ec71c509c6f32b91e54326ca8954d5b88df09eb7f5c0d60ea61eb55958f166a1b3537e223c5efef9c3b2cf8b6fa9fdb257e7a4e6724c2c69d77d8c251e1739ab36fc0ef87196c43af5f7aa7dc755d1e4f582649497310eb4e7a05c98230440044768de1c1007c694c62c23664035044b50aa451843c83074a355e0dceb5ab52100f8fcc62332cc83c25683c0fd99285c343b9731c19fa66981b8f8e46e30b023df5b605b22bb6ca6c60717f5c7ebe653199d396444c5b94b835fd8588c94a4d89eac4668a21cf3984cfdcad405a1e47821533d8bfb2a2c64017342e27a9409eced50b51c5642eabb01b217b0229c5786ab5ab03ad7b05b0da1b97d710fea07facd3081e332fbbd0b7beff3058af58b64337f0d93059ec0bc8478bfea359c7ac8e365cc2de7961a3591a46af49919a0118d9a848365552e5357f30adf53680b2c7585d2463e539c1853bfa75bb327ec5b2bcf757e749cd804dedb26f6eee6e4ed92b55a007c39a6b56b94688d2751aeebaf5ff6df0079f3164318afbeb452b92a2c6da8c5458a439fe8655ce4866678abe7acfe6c", + "c156fea0033b7b3604e12a", + "01859f3dbc406703f88a4ac5866a8e8c20208ab9fb0689e989ee6c4b2f1d47c130eefeb21bc169b15898e39d714332a6937c9500ab8662813ad1da04397a0b1ade9e0f1f88e402b9db3ec881d3c13a3d85c6aa8be894ba057f155257c7d50d22d0532ee7247d5b2b1c63affe6482de6c393df6b4a2ddb520b665765cf98c433e5f75ec752b24502f31bf80c03b17dd1e50a944fe527ac67c1198e33c5ad02ee8fe1dfde698e446ddbe902c11aa5cbf49de8895993778b1fa3b734b2e9df5058e9b8fc397482b7ab5a75fd582f0705195faac5858c1bd825317c57a2060cc5e2b8d5d8a259bb420ad26d02993a2f842a85267da76ee0764c9ba12ec1cdfc24abb148c4c320539f19450f929e1cb9281ad399d72b11bec6dbc1429ef66e9c17d5ea4b525adcf579aa92b22e8f086f727650739e8cbdc0fa19072daea42fcf8382784a970dbdcba85ef1522bbc16948e639826d03c5d9d4b5bc66e9d824f45d73b8e2e162e81f8a60fc8f581c9c05877190a6b34d250a0a30e6d39a55b778837ed129f804234fd89692e6be4fd624d5278e6295e89700fe20c58dc5b2f5e3718e959fc1050f1e96fb01a6cb209de706c17cfe52e91069f3b7112c04450bf1" + }, + { /* i=7602 cDividendBits=2397 cDivisorBits=2212 */ + "02afb293266dd5e1d4b18c190c295b8f8c37f33f22578a85cba54b5b243239f9f9906c517aa45cac95c0a2c692aa4d884c66306a31ebcf31b1318b9bc9a4ccffde8c86169a16c3a2ecc8d070925c87fceffc90afe1b94e3800c799006708934c59a0f83d647a5fbeae27ead02d1cf4b2a3ea0a9bcaf1a197a9883608c18ce4bef18e30dcca7c0acbd48d0cf5f959424508cd2d7bbb264611505243330054d7864e2e276d61a151ef30df3aa3b114ea914dae2cc3a426a4e126788747a8db27cdc308581662c036435978a331db7579b2082b97d0466a8b084375f37e679a2a97da2cfacd3b40f58859e84c99652fc16ad9bff982addb0aff2430957b9de46c96f920feafd5190d04a1f617ed5b84feefe8f6587d33d53907d6ebb059a154b81b8f17ec0943bb2f9a09cb717c", + "01d49152ad5bf00d338ef026b08401675b5b663afebc9e911300fc9c2fd39606f79a721c97f0d317ab44e0d0a7e3ff5f72ff57cb332e64b2c08efed69780ecb5987b767c2106089a313897db953bbdc95a985cfe5a761f421078006d5e52803337adbd250a789ec5d3e74ea90bbf3e6e50b918ddc5250eac852fb2ff2bed3775f536254032ac75b601f6d3678448dd1c7647f9831fb8b8a8b9c0efad762e005b8c5529ab0b047052c59ff120be0419ff2db61001a43531ab957661e13254e76e65bf2fb9aa91d9037da1b6eea189955fcb5c77e293f104470415d4545c6c038fa6783edc1ab7f85d0c82a8e3447811862d8839037f199c6fb5f9b16130ff7dea0c90bace417b8b6e2ee17a94cb602f783bdbd501c2", + "0177b8802ad5481f13ee3f45c65cb8b6713ee81526969f1a", + "01c9361bcc5c1a5f05596e2835c176cd9a383a1e49539186061d318a8e39db32dbf9e2ff4d9bb04db90bbabdd4f8e10f4e24d5ee6f9458ee51b7d8f6022bfe6aa50e849f96bfdc5e939246bb13caaef97c4c902513f5bef44a448df0e4a31055c5b64d20a51bcd84a6c5fa318ba3437c5391f3995e6ae46401e38e32115079b6f91a5a9244a6fd3e5d4a4d544f4f73021c7927a9e87d05e6fb6035b2a732b59b11f31da6e6aa2d8d63c844b84789b047b339445570fbb64974b9e5449f5a2294e8b4184465c6dafb62958756d2981d0d39bf8cfea426b0609cd8d8b2eb5444b248d7be8507d3c8a070e2b3ed872f08c27b3443783dd0e99c521ee7762a4e61da63d85667b3dc46de36a2fb078f8c7a6a009665c5c8" + }, + { /* i=7603 cDividendBits=829 cDivisorBits=530 */ + "0543c18fd94cfbbe121faf439272329b51f32b0e1cd22fbfaf5c36bd3c9ea3f33a5f49f803e4b122cf5f928949014d7b06e2968641d9350995b27051028cc3d8e8ad2b37bf03faf3d8d5e1915ae06eb790a0abec4432f25ae15ce2ac729f1f7adfb0f7bafda4a7b2", + "02b7b67f4d1d72710d827c3edd855fa48cd5b47bebf783bdebfdb7f6a033ee67876548d945bb1f95a71f40b5897259b6e7fb77fef62ef9f5c3f8d11adb4b576efdb033", + "01efee53e8cd94807e6698718557d5e424b09baf18a71f414c118da3a54fedbf5447a41e9a80", + "01831ebe46e1f51eac0c4efee87dfc31642d3cba8d853d3caa20047e1f9a60f7d088c3720f61088e7d6387e35119041a9a92c49f442ad5f564cb00fc25927e90d3e032" + }, + { /* i=7604 cDividendBits=3295 cDivisorBits=3218 */ + "0bd5c96b97de8c9f924db48c676e40c8fa4fbdb489b0c1b46b80248818f0d16a06d5b41a65ec3fba45400c42b18916f0c6942019dc5269659bc4ffe71a11c25d2d7a24af65390d7f725f207f992d7fd8241aa7049a0be1eab3dc85ea824ebc3b3e24ba5b066cebace34563336a5a1a838aead1502719fa3799c993dd3f1883a043e61fd56a8abadc3794a37d559c860328fce1d7657ed2d7d8f6d051e96830340350deebf14ab466c855cede65e1d3b2008e57312b0f34da3a39845aaf13ba7fe3db542bd846fce08ab9f579c764d05a2da35546feb0b8ac7286ed8a180aa7a02c8e717a3ed14d3b103bba62f5d6a856ecece036606608e929b6254a17d9d162ee18b0be50ec562d8b738de817d4e612b0e856b7b422e058caa7eebe1b8d15ec78c77c89afbcdd9ffa4599b0868e87eed9fb09bcc56067eae8bc722ddd465aa654c1b79f22e0110bb200a9e160b01d5be2466ca032151e36c805ae79596a4536bd759545cadad8268af99a6078531c04b1b4abb4e13b6c103a12becafa24b8fef90c8893ef3c6e7df4d810bb9960e01df701f87cace817bfd8518960", + "9e2937e820d20742e00383af755027bd7363ad09d2e5de00fd470b7ddee5cda0ad430411a91dc2c10ed6ba775ef4d703d6bf82ebce01197ed78d2349a776eed8d7b002de26b56f6688544830cce11e70077e1d066596d685c71a8363963a6661d5ddc188e21dba0be02d359c6b66bd4e4b71d13984f980de33e733feb2728f41e232f33237354da9217fb4db5bd03a5cfda3a6887577d94abb2161d12dccb3f8fb9b3d92711889af714d464765088be930ad0c613ffa8a5db20caea02ebd04cddee54e1cfe81fcbda38ca1ce59eb06c10f7735f7b6b391770831beaf881c452c696dff416b625d50d4b7a8db866e33a1cd25d00a155c3794e73dca8fe54e95736e2ea26258ebd663fa00eb9c798d9ad7cec88f8c9eb127669984a2df9e10d340b9b6f74203d602dac246b837249f15883a5682dcd46b52bd2ec33eb3337c8a4524b5f42c9a6c562c193d12dc4d9e88fc2759dfb9d27c1a7e32dff1246d43f3c28a3bd8afcd42f92feefa496f9ba896d603e6f465db3eb2e86b130c55d97703fd9a49e66aee7ae86c768363d643fd2d67088e", + "13280633402a00d5586d", + "827947adc88b85ba840192ef9f615bf39c22a3e3da683a4c1538d71238e9189516dcfae3bda02bf05de4f677ee062b26859cc65c0eb59bcfd9fc4a2074f5c36f89f7dc1b4727d39c74d129f02e4c6a738154945d87ad3f97b5596563de6d0dd3d14f9ff0fa6ba0ef21a0e7f54426a3d6e801458ce0d41d6b298e4b491e78fafcef665c02af03610e89a142127179d9bb031f282365483e0d1e2341c4d079de6e6a6aa16ead62ec9c8fcb7baf415276435a06af37fbab28c35064264e907ee4b032c271aeec605c091562498d411d631dda77b4dfdb9573d35751b209d0c21cc8159790f6b2d8654821f03c9ffb5c10bddd7d15b000ef077d07e7b8e68d9e2b13c4b4bd163c1582ab185e57bcb523626e193cc29adb8b5f8fac424b4c8343ba8c792ef7dde1dc4932f033d5709ca4e5039762a304b6c529d488a5fd54eb3c42433ab9ad23338991589ac7a5aea5d68768857c6c319ab631b63a3436112cc76943c824e501801eead347b68beb53de46fa77faf3b45a1ec51a5e7cc532065d6a80497edf2515ebf2617e25b4526f51fa5c14ea" + }, + { /* i=7605 cDividendBits=3944 cDivisorBits=1051 */ + "289593c5359f00a3a8cb327ee188bb8038703a711e0b17001cc25b45f9a5b6e7eb9685881e7c4da633084fb8541f318661ec8c50c35b5070a8d525c52f966b428137a2ca7894d4dea33c8224ddc1eea6944c0ec46f28ed54a9d39d2f20b7fe608bf907925e04f6d1633b08eb21bd118986526fb740882ee957e0db306564a91ffc36fa15025c77afed028de93538c089fa05707ccf4943d5086038ae8a5bc525a9b673ee3a4e8cb2326d2f02f053639756a53f6b6f8505399096087d282b320a1fb01e0cd0f49636924371385bc9c4a2067b221542b6214c620acb67e8280a7e96d43e091e49f26306d0d29d18196ce1eae36d4e0186aa5a7590b9f59288b3298997bf4c47ba7fee648e076e00dc80ae526ea61959fbce5952deb68f7d94a2ad6751e60b558bfec8c24e526367f88a94abbe7535f1d02ef2303049ea6c7eb2b497ba22881e209a84f97a3238303dc32b75e02d7c2d2f935f5697a91bd064856c988543904183601d29c898ffa00d65a926ae1fabd4cb8a3b4d69ded8ebce5ec09cc7678e200f5603aa801af0dd222b0d91b8dbf4ca77b9871619bd5b898ffafd2ed3527fd2ef39fd34b7b4c4c2b845ec5d3cc3c41effd72aa7caa6d0c9162360cc99568330ac46adab7da77557fb28b428d05f024b5f7760e50e1fd4a3d557e71242de4c0a9f7c40e7f46f59cb", + "0462830aa86f99319b2c6f944c3ff85ad0a9cff1ac7c67511d4c6d418fc8dd1629a623ebb76f7d5eb8fa4273442bce840fb461dffbba30f6464d4d21d6e6dbac517a4bec704472fb02381257c846e71e5915df012ba81371e2a0deeab64e87dd1bae6368aa25ecca5eeaccdfb5e999fb54a59f5372f6bb492511afd28f5085753758ea6d", + "094172494252e3804a6e23b0a021707f73ea3b48366536db1efb310b56356593618666e65b829df5dda7f68abb217e9ed977122baa51dd920a0aed2e302bb6c0554ea6485afb128410cb7bc79d31f924e5d28d7d97faa4a4f376dd42817cca4795c7e5a35c1ef9d911169aa1c70beda681c198cae93d4137f596e13990ab9866675096a11e8877b4c9e12919a127a1e5c985fbb59a5ca7b208c7f62dc36a42f78244d0f671765ea23810211a0927165002f72bb6249891b9209fc8f6a7fc5b5f1a325348bfe7de7874ba2d98c4a386e6a42e245e158fe11eb102ebb8c90f69d328439936a4be73cc4f537921ccb04004dd32e30628afa4bcb9a14dbf6a18269e6235d32f9c7ab47c00d9f1cbf71cc35852fe002f16521c9e9384f6937db74aeadb7a112b665b4818e75573cefe0e0f6646fdd37782fa6b6cfb489d6e5a61c3b5a872832b6298382fd10e2919888ff0e09158c12cb5deafa27ada657ca690843ac14b40516ae20ed923f1", + "02ef545e3eadcbb39c0afd99d18c3a41ab299e50a432831894804da1284852398d937a3b29e4e43c35db168885ac8d3cff3db989b2828a0fdbaabb0d424943261f574afa3f1b1c6fdead70f347c2dfa62bfb42b4e3759dbeecef0ef670cf1959897edd316b28f461271e89769c1328263a6dee831671ec11701c279a0effb9930548c22e" + }, + { /* i=7606 cDividendBits=3182 cDivisorBits=1075 */ + "15d3817d006535580dcd7ea4e24158142e075b9868c86cf0d2c1a57cfa6fd35a4f65c3c3267e18086f7c3d5dc6519b8d05dd4e860846e20cd23ab0b88d7582100799622664827d0e757238e2ca830cdac632569c1c9b693ac4e6e0d4a74063a0b7e0ef80de7b3966eae0f3024750eb183872698b5644dd57a998ce6c2572e0bc1650d922c8003d49c8dd802dac2989f9d0e0b5adb1a8fa02cdefab018b8165ae97df2e3328501e9755978e10410b2d0bc27f87fccd71515520f19224ba5fdaa6b41f5e41662f50ef544f0e5a8cb0f301f7390548364ccfd1d07d2dda4e8cc70d7439469112acfb5f2237d38121807140fafcf7d21c4a509f7072533709166a2032f5dfe22dc91e6d5005740e697cdeeb52f14544b791cd369f5cb4693076178027d47dbb70acdb3e7d6060f858510282a0947b8a96194f0bd5972ea22c96e7537cc363f31f75ad1ddecf3d11b79f6a433a17b19258f3340ed6a86878d26be2a4f7af7c9368c18c8f48e5687cbe9d0aadaea9ce4ec7efa35922b4a8551185d0dee474c13966587f435c548dbe4cda", + "02cb57d4811d0c68ac1264a09213730f20a93bd8704442fd33848308951deae460395f2f492fe8318ef9e1412ce43035d78f663b4638efecfed01eb966d01c77d320cee9e4c681a760e68144f329707b6cbca3ccfc8c52190a456411950565a00524e4853e87bd0e316534f2db71fe38f1fa44ce3322cf55a33adec16df61cfba2aa05298cd80d", + "07cf9a1eb51bcf536d9bdfc9dcbb81b7b33027d5aedaba5cbd0099dbc35d9aa23350e4df40761bd25ae5a7ba200d419b7e66d57c6af08b63b9e95e0fe0de4559b386732f845a6e799e17277dc442700d185d072b74c52404b2a485539d0b6fcadf8a60a7530996836a2c7e34cb17fc2f757594d2d1d8e03ea946a9c7dcb43ce1fe32aaeac367e007ce4fdbd02fbcb7fb530684e833e8e7ef18ed7eba6b7bfb7cd0c95308ae1123a3309edd4f269fba583335b11b6442bd48c82bbc58779efa8f4b8562cb707af69ebeaf2a574e503f772bf7727dc8628990711cc0fe5ee941217aca5108f2551c7cfce753309475d9c0114c766ebffb275a34721429ea0c8cbf7b0d06c1d94e76e7", + "01c3410a6706d7bd8804bc7d7319c2781db8cb5dd6ab88215e764c8c384c024225005b22811dc98de3a58ca25b8ed5d86f406e5e08477e445cab3d2035fbf51b3a3beb708c3647210b8d450f6f5c459c1ce766ddb5a46bbd08b95b64fbe77cc7b7ccc90823c949519318059e2adc84f0a63c356b70bd80d1c7cfbb4dbd06006f6a54ab4b1b5b1f" + }, + { /* i=7607 cDividendBits=3837 cDivisorBits=2725 */ + "16790b205e42010e3c5b5a4213f212a109359cc9549a115aa151b0303476c8e245704a9605a342fa964cbdac983018592a6242f6c77d0e9d1d2ef4cda47f8879fe92ac2f7bb84609e826a27c00cb52f5a48a69b887612b6b8a0d0ea08af527ddb4b0a3bb5f1fabfd3766e7bd9e9b7c9f280b37ec0d0abab23d855665632a325b072b2f80c666e3b05f9471031de276acfe6a68eadf22adc01ce76bbcc937061560984f34b684991f854addf6ba02693050f090599495047c45a672efb03abff36bc9ba60876ea3a50b3466fa6f38767cc5ebfcf2992c54921544247ca33eef2a99fcfb199c58c0ef0bc6ce1086df00725995b7a10b5e740e7c213c2729bb746ce2ee369cf219fd427e8d72fa61c8e2fb67c2b44146cdaa2a5065a33f45bf782a58ab653d4a04d4e13f904aa216c75bcfde80a1f3a19bd9f008e52689ebb3aaa985192df097f0d12885c1d1261dfd5a3cc02fb9f88666472ea4a782c3ec3366614eb9fef2e702e23e72f0aee48737902c8fb1a257356c86852610d7005ea8faffab3019a84d36e3499bae9fc9bf7a52724bbb7015fa883a544754f7318610fc4631ac407bee49bb7265ad5c573d4e6874896de40ab75b71e3b7a131b6bc581ddd8a4deb17ae3ebc649ebfd3635ac49d9a3e46743c6b97c40fa71627dce9c35114", + "01deefb85d14d444f608c06a77c4f65f3ced4f37146568e50c1e1be2ee6ccf102df9d56683fc92cda800c0c64063e354080c02ffcb2e6436b6bea51a3ae4fad7da7fe3c2ba3cefc5404ab38ef64bef4038df45dc4a07f9829e9dbf3704371b083d2c45d2a316cac69b52b5faad944b183e4c6525db6338658b4d4a5562ff70c7bf5b883c510b40c24af6e8aee658e7724513964038e19d6bf0b11c60c9b9ea5cd936c3e79b22eaa3e50e599b366db02324cc18b26114b915a7094d99d96d4178c92344e94287d1ea4a856ac2bf321a425f714efc0f4418e58a4bb68696d3480e35227d8e1a11ae1e6fdc5d144a18dc6560f374c2aee847f5f9934bb70fa93bb869659337d31d17de5d02359909725c0d380be18b0bea2145592fff653712387d4dd191ecefcb9adb2c2406cc4c50f8555a86956b5b3d5b1bd9c07040b4e6c20a59bd695228c851764b1bf092947826f9ed65d6ad75", + "0c031a8d60faa5036ceef24bda303feef561b6fc1a33577f071bddfc24e4a7b49f8157661b535d54f3c47ef1e75c987e138766361c12d7765b1909db03051228df013f5d30e6ba8a75e9b1a4485f68eb7584b9e9c2ef2d9a9383d4deef6b8c2520a645630d7613f58a3cb0122405f8d3badf46d6efe69220a777a8d0ef02d1ae853aa7c090ac4365a3c11dba", + "19d3192c2d6cb91cb46ad9b701243c2a956f46c5d6fd45ddd17442dbb62dd403ef417587e401541c71f004eebe8850c18b02a4e82afb45c63aa44770427eecae3dd570dd32bb193e088f37ec6b59606394b193239181651e390b990625b03ef2fa2081c45101a8609bebc1cfc336f55b4462f910b74f5ec55a1546eb6812db8f981570d89b254ddee1da6d774477b1073b65f3f911b0d6f62ea81f5a470fd554b41ab11bc535bdd0634101039a39658039ac4b2201396928b41ee822cb726d3cf76044769e544582459c9ab0100f874cc7c4a0eb7e9b81f77a7128a18bf3247f5486900dcd3fa6d9de8d75a245a44d8d5127380de5e28f390677b47396acd6ee332111bdd76e262613c2a155c933098afee1fcbc3f06528e0028b4e6f84b9e6f95c3decf01eda6d20fb6015b51ee6fee7db95dd32a84368bb8ccd235c58aef14ee261cedea41163f4284b730a4ef276455ee0912" + }, + { /* i=7608 cDividendBits=215 cDivisorBits=14 */ + "49c3bc7e064f7717d0663713b0d2ea8b714b7845b0ec8841169b62", + "34d1", + "01658911aa59c5c7fdbc4c3f2805a8d7265d686c684da33157a7", + "200b" + }, + { /* i=7609 cDividendBits=1394 cDivisorBits=1381 */ + "02d380e9fe871451a1e488abb9a1bf2da289b3bf2934b9b72ae533465264acbdeef7b69aaea4b062fad7ad828a607901570a9a8ca8bfbdcc3d52e9ccdfd118b6268c6ed459205cfd1dfc1bcf3154fd1b1dd794e34f7f60e2810773a6b0db964d2eb87ad40f5854019c35e648908dfa7c2369456183a69c048b375f608df234fe17ab14a35335c8db9667a7bf9a0074808c303f8ecbd8d00ef7b138eea71448261daf8cfb15605449bfed8d9e7cc2ee", + "1d3d0442f66be7b7e32effffdd425b5812674ce67470413ff556a20c002085ba086c4713fcc080841108cc993c5de0ae22e67e64e8da91cccf1f5807524e043a42c9a5b28ba25bc6e5239f0f296dad5373715ed719803042abde164ad49473ebdc49b757725bc90ebcbeea14d4f4f56e59779a31728d02d2083c6725b3165a40635bad8afa77397460247a62878206e4f7ca6d791537351c90bfef5faebb828db6e3e1606ca253ec9099affa86", + "18be", + "153a8dba12826a1d83c9bcfd4f5d95725bde7b3fc848be6cfdc8ed7988113e1b4f940e1d0d77373a35cc52fcde44428717a164066de8d3e64048daaab2698d0bf5a2a18581e25ae2b475b831f574a71545dac1766f386f6f12bb2163e541090412edc9b8d9090193eaa4e120f5aba31fa82870365f18c28f98e0772d31f11290be537e94b6fc0904e133882bb159f7055d0e31fde41adeebcc0a05af04bdef5c72b8c5a07bf148cbd30e64437a" + }, + { /* i=7610 cDividendBits=3750 cDivisorBits=2792 */ + "083cdf12c1e5788cc565e1607c4d732bc180b9e9c2416a915dd9fcf953c4813e949a695a2b73d589cc0963ff5fc6419fe099b3059ec7bbbd0159ac7fb044bf8cfc315adf37e4fbb3f1b5b8e75a58ac82ba0af4673788e2e650d2c25ad2e7f7df1307276c7463050df8750a619c3269dd76ff1dae0a70449cdee1a6a73b8f3c7c133212ec01e954f8dd4402966ef5bf61f9c546b4c143bf23c7cc2882429f52ddb242f9002042497a98746b89a0a1ec4f0fb6df272a8d303ee8dfaff3554f67221fee06026820f947452cd16f3f19661aade3840e3134b096be54adc24bf80f1271a99a0657590dcbb6c71aa33ebb6c385fe0b7b7b5138669cdc7c3424544ff0fde2b9a78442e4aa8df4bb88cf584da9959a35644cc9dac72606a33ce8b7231b9696618c7730dfb9327ac21f25d9bb9c3c36d3cca496ba842d96bd3d7c95b8da6978bc575edd8d459f148550706c2283c8dcda5eba837d55379fc282074ef26be2a98395228c28b20c19cd2306bdc70cb601ca831d13075ceaea43e74691d362cdac00d8a1feeeff3058af79706ae416abb1e3d16e6a238612483e28b23e4fbc676e76d389c57fad4c12c2d47c46dd65dc6f13343e03f9050cb39d7e4bbf2b398a25d2db6294d71314ca0ba557e05570ac4d83f2e67", + "623512d88e21864138709058887224a4ab88f2d9056316fd717a023190a44f3cfa593a5e06ec373ea74de02a212757e6b6f0451ec7632d1678f9697b446de70d24fa2919eb7c5a0c4b8fb6bc9fdfb1031ddda1278e2b09184a76769522ac679720b6e29e124b65c280dc91733c2e9a14f5f49139276ab224c9f29c3471d0e2e5005642e9b094df49df04cdae21d9fe1b99e38c0cc196e883b35413743f66f7e20c57412920ddf16f1db60ba200619979c4a077ed3694876ebc8486ff736ef7709a1c916dc17119f111fffa21faef82e00eaa7365961903b3a30d0f9ea3f8fcac147cef9d466b2c032350eba95b6b43d4ab410790e69b6435d582fc0944248f497a82d5088013bc2639a66fb37d801eb8dd952f438a41b74f43eff17f202866479bc9a70bbaaa79c756da7148dd6b29880b57235181709fd8773d90936474e299707def6b715622999c101193ca4c91147bafb60ab93351e92ed91f747c", + "15794251db9045373b88975b41ee7decd8a7f5a160179a42c37c72efab0b9a82d256791d8197a1c3485c45e7cf404bf519a6d7d73e361784535c48d3c3f68f5d01d8331aaaab573e7a94e2c754a67c6247a5a11366bccb7e854b94f7c080327ca480d5f1843ba7ab09163270ccbdcaadc036b350625b8377", + "38b60fbd7aa6f16e7a583b9d36f5e42d1d9078cfed82718fea704a5bce834e099a597b01cf86e3d9a8f557209505202a305ff5b9d1197875ef6c3f7d5d260cebeaa812f85ba0e2a428e2cd4d1ab4a5171b5c59af471d989b0067e6f4571997a3eb0ab0d781f88034ba278f38aa4fa6f886551c2dacc957b0f43539eae50ac0f36e4b21a98cdce2ca327e47e1e357c6957641aaf7fec1d7ef98c7c0636d07c1eb42b676bb80b6a6355dcc2769e15725e13970154e98e8927640b8c5e08f5f303b573bc7f7277d891805de6349ca2b87c9fa410f0ba07d5df46cdeab3b1339fbe9e8977278471f16041a8d22111b9d9855b398e0e70139df73c5e08d78e5dc09a66e9fcff7ac4e89e157760baf4f5ea623dcb4c29690514c162f4f555639a802b6e993be43a8cd16ac3a0d4d512e73ae28343ba83398dc02c0f1f2e87a7d65290430549b3dd6045980e21ce7151b2d3908df180e668202bc595cf1f094c3" + }, + { /* i=7611 cDividendBits=1442 cDivisorBits=1027 */ + "031096c30277821fe5395432cab516df747725986e49307dcf1c4101c0eadf49320517ff6638e8b70b3dd5b956ac6e31bf6e8bd590b820111872264f56699183227329efd22ebc656a2d9214705abf2f818fac9511617f02ecf13c08953d61ea5dc6d65c54a5f76a21a6901b331df631e111b4df5868ce9612c0fc9beede75192aa1fd11aeaaeda8a64d131e4ad68678bc9ea05e434e36de0f6f2f18191d442e18ea84b00aae913bde0247222b445aad919d798b33", + "3485ba9e1acd1bb6c128bc2111fbb971d07c4fe0097c420c3fcbb634e483236d5f81a7e8282940db7bf0eb0ea816e993d72bc3884917865cb4b17c24175d7f4a772fe39e612631be157df14cd62fb38ffde87dca5f9b652e4358764a14cc1a0e1fbd1b0a46bfa8d561a6ed4aa2fc72d7957dbe6d8521097b9cb123d2465fd7b0", + "0ef02cc508bf15a537b3ce1f46b7201c0a63f191e111bbde694fcfdeb2cd4b0fd119be3085b7a56f7e95849dfa65b4e9863b253b8a", + "0425af671d4395ddc9bfad982d73de483678e44b667ffba96f42952b82ec1e147b7483c186e353c0788dc11585b1e58a8714a5c6795d7b5f37b99d4f0b21b1a604da1c98c4aea6f0a3d70eaa6c5e0fb93e131477c3e485e17213aab570e43d1d5587a39ffd7a7d69524b5bdc8e41d072a041791939be10162cc58f4fdaa9b653" + }, + { /* i=7612 cDividendBits=1837 cDivisorBits=1792 */ + "08b07d73bfab08a78b95d82bf421307896272d1d9ed6218c37f0cf8806106faafb5b24599843acff7a2b1ba62d764e33b59cbcdff142642cab50a3243bbe07ce671f5b214fa99b408b7c0d214aef1d1461833c9eabd6b104c44bae4578c5d6978b5f80ac614e8a20c3bf752e2208c5b2f77bc579fae42265415cb82d00a4e230df580fa2e548596e4a75913ed474e98d59d7b5544e3af97cad13093f8873cfefd55a85cd373ef49cee4981f94877dd5ea27f4b0f01068804c886d42658aa577d5c2eb334badeb757838c01ed25f201581876f4dc9c5df0e11057b0b60d60b9c650a0a68dc645", + "063d0300e7060af62599512a5a0ea846baa5c99fe69b0ac85f8105a5d2c16ee085cd834c4d6618071e85ebe678b1027f770193a32bef166cfd768a3fc2c8d344dd836b13e23ba6910241dd3ee3811c5b3f28aa83dfc38959dfef89dade57c296c1e4747ca743c1d0aa8c30def82477c58966bada54815be33e562031ed3517ae2bb17f6b03db3f27f7d48911d0087bbaeefe4fbbe60b826d7b0c46ce24a36b649a7cc168b9aced293818aedb576ce7817a086ecfef38c2db3c32cd0f1fa8c713dd63fb5a6f48a3d6c7f5d98df2dc5700b504ca498f3b332ef0656dfa92494746", + "0164959a7ce25e", + "046d6e3b35530c94714aa80bedc289be8f4422a07ea069b0516e4f448cfeb42098451d53a324ec259008f983cf1e10c09473af68a40a9165597d764319df9d92cc649bd480942cb92ead5d0ac83204608541cc45dad9878a417d4fc6e50b58e4ac722f4899f94cb37205a3c9c960e44e120ea8b53b167a29706f26819516857b612deeab2939e8ed4bbb74f4b1c56530283e021fae382026e892632adbc0e2fcde30247d05deff6d80c822b3458fdb50597638f5ee27273ad55c5abccdf3a81b38ddbe462fa99b4002ed17bcacd1724c521ccaccd676e65bdc4df55d9cd1ce91" + }, + { /* i=7613 cDividendBits=554 cDivisorBits=500 */ + "c86514f980a5d52cb420a45df2fcc67998cd5ba60b3aa67f34709460ceba54fdfa1eb02d5f82e2065e65e9950fc798659c912fdcf48e7b0787a0abe37e7097955d5f8028fd", + "0923c31edfc744b501cd9a5e6fc9f1ed5f65f7336c7857d43aa446f17b8d24408f843f6ab5db061229b9941c78844b4f229131d37a6e7ccc3952f73da320f0", + "15ecff1a677158", + "05ed46c1bbacd4e155a7b96b0a92d34cf95fb89b9b0d3d926f318da4b328c76943e9d6eca456a818abd6671aa7e2da08efbf4aaeff357af5fc81208d52e67d" + }, + { /* i=7614 cDividendBits=2556 cDivisorBits=1293 */ + "02f2b341520b1a664d66d2c55a24c0c2f4457d043346a5df4e54ea93e8353973ca325278ed18d6415a355618c2854fed8ba7ba3e4554ba65f9d373380abed7f8028a53104544d65b21b38a43a0cd49f51b96fb149955197e6861a392b718b1a99604b90a68bb47df7e09f23ddf3f3b27390a59fdaa05efda1bd3c760c5686386efe6b28e1a9a15e7059b008173a994a0a7cdc8f4d77145375b4ab2e760dfbe292a9deb5661b4f6c68035bd9675327d1a4fcfe275533cb2bfd14d067b018363b9e76467dda53ba29830d1a06559793ff56193ce7adc7837e3761011b7a9210a48a09bec0a0f5df9b2d4a46554214c981c3ad2a893b6edabc31e9057c30620421c712a89ca0f6bd98b156d6aaccdc6746ae030878fd06653e18af69dccb48d35dc61bfcd66713e72006d2e081f0226d076b79cfad2f1ebfa3444c389143b03998b", + "02236e01cbc7f387dcf84e8631ec67920fe731d890669ff77f967dcbdd78dee59a12fb33208bd5f729f4abfcd1a7545a5fb2397cd2e7c7e32f728c786dafe7db8a10821f1139d333ba3fb39c65d106b57e5a2b6caf578e884677747523b9edf218bfd21086bb7b35e51ab1a24d13868d309056fb372d8e5f0e2e3bcbfc5b06f7f5fdc912e43fc1536fc9f5406abf295b93d9abd8cc7db996b6c47c8a1679e872264d", + "0160ed8f1a100ec07137f52bc5d67690df8c4998ae4a15f98364c005977ff9fe754ea769f0055251bee091c8d192b91f95190621d42bebe9fef3f6545e4dbd450cf9cba7c6706386d96fbf5ecfd727a83dea3588a4aed5cf0c41b48a9afffdbf8521d62cf20c5140b6508d913286b655f53a90ecfa6622ff72a7d7ec0fa86097838864ddd8a5a878c7b95a72693058fcb7bef3fa3ca0a440e729a6685db51b", + "01ff7059b35250df32da150f9edf3a298009bba19c1f6ef00a47594b8ed955373dc39953d045372f9891f1f37a6e95a64396073b0ef1e817deb3cb78c4a9fbb588a84125eb1ffb300e04e215e31bce45134fe3c3a2954970fe17ee9c0f4c498dd44576ad01b72fd308e204b2a11d8c7752ecf3a13f0ea2302c5a2dfe2258f17b895a574b672b6a7826ab9835fe69c4b910347ac2f125897664f2fdf4fceacfec1e6c" + }, + { /* i=7615 cDividendBits=334 cDivisorBits=143 */ + "195bfd5cd9651ed611917c52832bbf0cae9fd8e3be26c703c5adaf3ec04b7dffce7162fcfc6320beece4", + "74d161fb7b8ba68bb1796c6cdc6d40758426", + "3792d689dc2bf5d521c821bb1dbe670cfbf9392d04935749", + "712adf87f26437df7fcee740761a5581540e" + }, + { /* i=7616 cDividendBits=1479 cDivisorBits=457 */ + "5f58c60af1119465675f7ed27a63934f4100e846f9d852da592acc7e113061872e887a15683de100daa42bc9bcdfe0c26c10b69fdc8987f1f108f153968d4fe2608948513c779ef94417682d6b66e4298cde243abac9c92d509c03b2d3c1db52c13915b27e4c2273123d8d3ee773f36b7ef48a05fd97af594900e36597796f20edf24b6a7e9462c5a93fc0c0656da097836d6757622238c5a95f76fda81e926a636af3b2fcfdaffa00a39164829e35c0e54454173bab9aced8", + "fb86fb0fb1ddd9e2df24e6fc3beb5cd49c51411c43985848c4c9b962a9dfa8b464076011854a41d45290de554d888c029cbe7fdb30e675e4ac", + "610ad14c52760ce3e89ce749900b1d61c9aba280f58c1e2dd20b2443db1288d42fb6268bf62b3585cd02c08a0da416622b39084077da8820f513f9aa6e8190f06eaf91f3a610ee405fd1adcd0a3509e0b587554867489d9f915187edb82738bc42a705cf8f7590c8aaba3992ea778e115b97fb84ee3894e88e7efbc3d85ab72b", + "8dd1e0f665b7ef792096a15a33ccade55821f26724344b463399f34b8da2ad7168c33f395c5daffaca09c2ab25031e038c75dbffdf2ade71f4" + }, + { /* i=7617 cDividendBits=1522 cDivisorBits=1457 */ + "9e12284f6b1abf08c09b0fa97a1d8b507abdeb20efec5f30bfc207caf2bdd4e9658fd2cf0823fb5bd56254e6e82d853f19ef2736b8e3a9bde12431243ac37bf0def1d95a377ee1649fb674977ad18cc5b952e61bfcaddf56c109562f2e5681a4dcfa92df38b4e7e1f49ef6fc233571d6b2c671ece2e9533d35a9cade854e3faa0dbe23a0a19a6957891ea55c559da539a0d4aa9a25abfbb99743f468f8c19ab54e7077d0f9e490c573f9883df7c6cc7eed578fd28ffe2391a7f9c918b1ed", + "381cd189e9060ea8b2de6cac40b85db9a69a96a428ac2b08747a5930ed352d16d37a06294fe383d4ea7d9c1b5de581bf8c4cc131272ec61f31eba3fe09f47c37b3683fc89f1919872f642837e1a38de76cf351cb1f0b281008813ea5033d3ea3bf4df520e150f7ce1ab3ae7f5596ccfa818a31cf9306376fe8622a1f1645fd11eedd1af9a7432b2c36b02e12c303412b5b1d2055094a9c5d3d61393e0b72998beff301d2515cbf59ccb05f7137b12b0aed9a0dcae610", + "02d1290710b2d3f7e9", + "13f266005d4e3c45c56e4698b535d32bb3ca24cec291c3ed0412f91fe6f8b02fd56f7089cf6b90ae636fb51f741452d16731395e25adb6fc330fa7edd7ff14843aeb48fee52b5df9dc65bf4b4eff63005c5841f1270f4321f7168031bf1fad784357abc83c884a4ed76cc003e5055c982c3276b7b258dce428be80285b3eb008404ccb2382d95367066cc0727d4084f68544f88969a244b1c10e20b9db30f330ae39779081c8b25712817264248c26468041b843dd5d" + }, + { /* i=7618 cDividendBits=294 cDivisorBits=174 */ + "120327395818e39e67b3d68072a8bcd0868e29d19236b99307c9a2f9a80a3771f8b4b8b6c0", + "3a8fd90ccd52d772fdd43b95d336720cd962bbdc457f", + "4ebd6411866a7436e4cb25f2964646", + "32cc72d09455f778599a0d56cbef20c4f47d5512fc06" + }, + { /* i=7619 cDividendBits=1854 cDivisorBits=612 */ + "0abf0ec3c47d52fbc21c3ccb9834695a335b5f3f54245e71ac62d935ef3d48e0025846149bdd4a6372867a4119094d936cb6d8ae94fbe1a957370d3ceaaad671a8450d40d8fc4d098e912a345a167f29ecc59f4a76b506edb4fb1c8ddad376e7c82fb60e259beb992883ec06930d48448942886da0cba1cd1b8b80c759bbcb8ebcebc93854921ce965e6ec5c96465a8a08c5b706b04e26b0e6a5841ef4a6fc500b9571050d55cae5740537039e52a6e4044e3c1e9b518dbf99cff3e72ebac19c2021aec099c46f3389a1f670810e9fb22a811ef7e63c30367191f555bc4bcc3a4a4ca6e94fbd9214", + "063d68cf6f181a220ffbb892d1bb180f83be0fd26f414bd3fef08e21dce48b655857fb56c1574f2e7f08416e19a14fcff3bdfcab11c7dc4309def997869bd9fdce4ba2aa7da5e43fa93088f0b0", + "01b8e210c7fbab4a8098614a2f47a440a65d363ec3509a2f63a9d7f4ef193dcd960cdee3bba25d69519f11d420748aa3763e43138781d008c2876aecda99dcda57dc65982dd944495660021feebac326e7a7f002ac5a5f256f56ae8c0fdb7ec8c7a3fe96c568a452334c2fc1e67dcecd85103efdb95e769555f50e4e7793424b821b1de13e0397832e631421959c7e31a2072129b704339b98cff084", + "02655c20a3b0d1380dcf48be6bb45b28c0878e1409dafb7a307f75d44758747dab773a02135efae73bd159d072f8bf2d0a94f0a4b1d3ef8bd3fcee2fcfb97a40008a804c1198b0ddf8c92c7754" + }, + { /* i=7620 cDividendBits=3541 cDivisorBits=1614 */ + "04c6b453af90973004adeb5a2495e76d4b54308cb59ccd4204666721bcb8f07a00f9b6434ee6366a8bd5df678b4216b1bac200a128085c9ab5bf13b681ac34fe8e664d431527ce2a1031383fbbca6e957d4641315db5c9c4dcbef84359fb56ad266cd1840efd728acb536ab2c4c7486135e753b0cbf3e2966b352811df12249a4e3ca35f1c3caab7fc056629aa2da13711385759832e903dfd0e85da6971889a4581116db3e572b209b88c1c164faec3d998b073816cf122ece3d3682dc7296268684b2210156bc392aedee3996e01535a09740c8501b61830e65c517015e437fdef48b4dc385373c3194783b72d3f57123200fa73622eff3547110d3a404ba5da2e83e625f3920d5e77fe455ca96c72ef0231e3d3c3f33397c082ae2a56df601e1487a15d7136d3cc2778f808107b7848957a3c6cdaf70df2785cf768901a05ab1360545568830e29ed6555cf70daf16558e2028a37b198a0a236cdd6b25f38908dde2224b998d493eb5da6a057737509f7fe2af499ad65d605fd190c4c0f7366c160e2545ab734ab8f4919169143c9c53c47bdd64945d4dd7143dc0c4664add27ad5d8745cbe3d053e16f0973a6d6a21513a525a54b5ed307f99", + "2962f46e97b6b4ea91514dbff908995d3477595299c808c1ff730b92c92845a814a51d2bec11d58eff03db793d9aa379589a45bcd4b8066acdd7e810aef92dba0a7c82e042ddf4c63dac4ee888a40f58c214ae55d2d1d614d1155d29418d231e75e95f1b48220b21e5f492da5463ac89cf13be97fc2d29246d9c5f1201cf9b5ac3d041a4f19f0c5488c47fbab01b9da2ce1ecb82760dc3cd54ad2364caa342eb911f273da965dd8825512ee4090a660eb78802e656f884b3bf77a3e3516576b75b2d860b58267b3ec665", + "1d8b248b51d1eaebf548a87c7acc18b6ffc5e92a2e7f6fd3fa1e638850ed21b38ab34b493328968f79d7c97b7068ebc7fd68b246a124778afd74b5c28ebded2c9695aaa156ade97629abe3fc0ed5436a7267ba53e35df52ba7c1045ae2de0f11402ca0357ae724dca8b2c26bcc896ae56aa7c64e9e4abf30ce4597285a311832553ac373e6f82011f41a5845e11cf29ad929bdfab9a53883b6345447c1bb041aff64199c8d8d34b175ba12f72606a9177f4245e0ae3e8234ea2c0ea81ad99069b8c5d468811793100478536462f671127d6e02b6a92767c816803798c442d7fe105f5ccd1ea95c9345290c433aa8cb8cb1", + "0eb66224c28e89d02bfc80d06ad24cb586f9d381dc30a025f8603cc03f6f99732492b178b660db77cd3e633543cf12872a972db16ffa419ad6705b0958cd53a9e7b413fcc8759ad6d62f14fa545d4400256ad89caf38151cda5b0b148456359030d28b046c8bef516e216843bcfbffcbc5ed789095c376c091de613633df7ef4f54b4dda00f99d21e1a388b1271d9dd83b924295cb2bf926897a69f9df557cd940bac437aa63f42f0d304161f24f8018b2cae485ad84a755a69b84259b91031b4cb0750707d8c83317c4" + }, + { /* i=7621 cDividendBits=3621 cDivisorBits=998 */ + "0c20fe43c5b6649b208783acf0770c50a6de2f82163d3fec488a53871d7b2cbd48745b6391c501957e5195188f49256001b426020d4cab08fcc75932e4c281105988396ea0dce7f57ea3d430d7334457328ee73ba7de30c34ff524881f9bf0c5d74fa834722c768b5edd2bcb2a0e2ce9a9b1bacdec184441b615a766f07bf5757d6514ab14e78efe494b337ebbe60e6a7e4754be3d7931f23fac1ebc7acfbd107e9a8bcc9c10a84c7f305d5542ed606e6dc4a826215e8d99596eb472d4fbfd1da8be064fc56ceedc022be812c1073698dbe3b0f4d7f3a07254e3835ecc143c0592604fde82c1264fea552f9e09e302306e090252a76ba265b855619c76f47076b9be8a9f62dac47d203aa5a6a2832d771b13b2a4b6719c720806d02d03dcf53671629a0e9b2ebe9f6eaca47a5a3df00bec3cedffd4451c9ee493f7428a6df3233d1a2079f64f56f802e75512ed1d8676606f9b9558669f2ccec3708d5de5a0175a636e735749a1c9caac8f382476b4dbecf9b068abe60f0ac17fe7ce346c8241047963aeea67b536c459979a166f1eb3548492b0e5b52b413d409c9c7d0fc2cb03cb3fbc3a66036bdb71825b08a4b7b1a1a7aef711f4f58333bdcbd1f192f078aa9d4fac46", + "2f2dfd85c88cb128111ff9ec27ef3c6d8e401b531d8852fd7da11bebda946b2c58bdcf6b687a9a333d2d5406cde12156e531a42e6b59baf4f2328a3538f64f7b47d457adfea2c4e7ceb44c55705ca4f2133a6219d4d778fbd0728a89f6c4bb290eac30da64620b37c0bf8bf9cbeda66ee46333ba0e2025810de6977fe8", + "41cfe7ba2859008238fff42ce356e477a60c8697d2d67e0159975be64aa4dacea1ed108db8e56bec8754191547c5245c91dcea00dc402e5c6602c435b175af02d8885c5571bb61dbc018ec93370a8fd6da8ce5fead6823a20cd81b7eba8e86bfc02a9cef18f09141cf613391d455d03ba3cae872c7913de6592c30507eabd205578258392c6976a233b47fabb026005ee0be7e4c071df8cf92ced9e0bdd4ac0c10d4754a9d58b18204ad0be76eaa4bea13c6e5718a8e05ae4c949a6f8fdef0635142728ad903cd1320bbdc8dea0760d4326d714e6efd58628ad93f4a6b5da9f88946d56dbdadd49bbedcfc8cbd2ff52d3635c48898a1b91877bfa170b953434eb7cd1560991d28ef16b61f9766c93e958e420fae34f714e007409e65adad765014a5b84a41029f8eb7299da84584d4157344c4e69c6dd1afd412d62a332013f56da7b475da37ddb8", + "016080506dc412035be4c731f66f269153c679722618fee18e6aeb14f409215a3c6ca639c4ae3fc3332cfb7ba9c64dd85f3bdf63afdd1a3babfd64c45209d5c0775bc738aa0ff3684970e3e23369c6798e1354b3885dd615cdabc204c42cb29b078403cad2cf9d620b62c2ad8b0475e97c7af9bd4665b4941c0c287586" + }, + { /* i=7622 cDividendBits=145 cDivisorBits=123 */ + "af4d25f1d52e81249efa23b4bb20bc63c35f", + "07efdc3b5f5bb9cf1ad913cb998c0a5b", + "161633", + "0721a946a81a7fc16f43185638c7e13e" + }, + { /* i=7623 cDividendBits=3396 cDivisorBits=1613 */ + "027616544b8dfbaa6a62169e1942c77c9ba5fdc8a025358378fda6fec46cf15dc93338f26a4f51ad88f2d5eed48452f225b807410e44cc96d6a963c4aaaae9a7d697c92e15f38b248a077efd44b455b3cc3e1bf168437bbd177c730f104373b65faef4aa215c3cbbfe43d8121db20d11f3a3666ed19604c2c1da52e04a052b3d26ba48a62d71ddb2d33beb20691efb1d49a76d1bf03cdf8c563ddd117abf192932e53fe0f8419ca09eac14a30844f58da179a2b12dfea34c857759d2c2729fae50f35f6a241e64f132080b18a9d202c44cd1c36f985738be5e877fb28554d2088b85aa5b6a60a1ac1b1db9c0655be9e0b2f80db6c91cc790b3a85815d3f99c5be3f6ee509481979916828db64d82b7fbce1811068a15d15176bd0f4f7cc1a963ec23f5f8bacc88c044825c87ff4f931f1b1c0a38005aeaa19e296dd4dd78ed2af46499aa57d03a2ecb108b8df8efcb9b411c2f96c605f0d400db3c71745fbf7cbc4824701b6c39f809a8dae3c41963649a3db4997a16b9e1c8ae55157b1eec6a368aa2b25a5a0111cb1af7cd9c62c50e62ec6cb43e7e5fec0bee5b5abf1db3cd7cfb57e0a313092527", + "1cbeef1949d9b574e9dfd38c09463e64f13c2b063637f36846df012086c1474b6d7c07b4096f545ffaf1dc0e432d80307ac5e8c2c6a99c0a33266886ef680985c7cd58e10b722c1911cd68d6646dd6e3b352b4e95e1b9030f52d38c729924e2e9de8dc27673eeda01553710446854a247d7ba4406c6e85b89ae27acd626378072605859e2e08816d1a52d517c398441fb6ea8ed4c05b41ebffa6ce40437335654d5ad3aea964bea0c95cb6fe231b99333d0cfbabd917cd75f5fce85389f8618cb5d45ddc824f237fa57d", + "15eb541b79eca053073e6bfc81de48ad71bbb999acc914e1c37f5cc125ed35b79e239189ec59497cc7d2154f93b69471b99e4e428f6b3ca0435b32a21d16fb709785c92e10b0868caa4b1b8bfe164d72959ae344b65a39751f540e3a6852747c7c4e0867c7ea47f0cae44d7122ec8810b8404a323aa208fa4d81ae6ea0251735a93f6f2e88201dee41684eb1e68691b4bbf41afeb362f091784dbfa953c39f342577338b92ab2730f0ad2e6c2a1766b4145c8203cb4f1bb6d4546657628b88d9fa9976acae2a4c1b1282c102df86f62281ddbaa3730966216fc7ee121f185c", + "165e74b00427d959994d410b5063a3031e32a6f86e69dc79f3ffa36ac8edfccd0d1e0df4d1c10411dc901a36179887fdf98d68d0f638a11abf68a3f5724a82b669fc60b57fdf9e82e652ffe008bf295dc7f5503ab1518265fe4b3484a6a37e67b71c8b56a20300fd5b5a409987c4b72c19c25bc649e6e426aebd74eea8c5f798168ac3d47c1ba163ba6043ca975585e16cd64ca53d916efb32912dc09ab643a483b0a8cb045d8054b2c3fbed5cf0da1659c7799b8aa3c0af3fdc17ef7565fac0d5da234a55908582f43b" + }, + { /* i=7624 cDividendBits=1628 cDivisorBits=1074 */ + "0897352b8c0540e3313a5f02031e221ed6a82f4622ef8748593f6e64f26ca3c3911b95e31d398da7f7a62a1d2a55022a3df2f4bef0ea8cbca1f0322465b0ab8ec551cbb9b0cc7ea9db57bb4eded9eb10211a1a511be2eb77c5ce083879765aa27210d0d2b1f3ec7bd4db19288539e1d21416b3a2892aa769ffa1434673fdd349c07ae9d4c16a99e139b08a314c7d7877fb6070fecceee92a2f71b6b9eb3e231a3909c749e6cf91c8856fe3729f63171947d4be1a7dc6609de96e8b89a23bd120727fe91bbe3dc25e9a3e5229", + "02242e70042177f7648e311af43bbd4a3e2d7c93181a67d4508ada17159d2de4bf405e65e51965a0e77a251b48e973f46e37d2cee4a20a9d346fe9bef23ea034c60177ae193db4457412b6c35dd9e0940d976fa1bab6283e96cd062085a0359e512a014af63b1102c3e39354715c92cbc8deea2347d30d43805d0e7347d21006b91c1da8798596", + "040306f2690a40864e2fd0e140b9518035261d3fc2c53d823453bed86ed7ced5ca375e04453ff9d0493900eff4bfaba180c30ddcda73a333fc8db2e6419b24cf61e35925ed71", + "98ebad665677f8245f9a2a2200e07602bf4fb8cdf3a6a7716e582332c1228702e2d6e75dd87c274d52c44c04ede42dbe3565005db4e503bae063983d7c6f83fb24684bb94dadc94fe721a4138f6b75272290138a525d651834ab87449f7adf09efaa3d6308255a7a963a421e42d9f5a08e8a11050d157ec147cef4f192477bfc014b47407cf3" + }, + { /* i=7625 cDividendBits=3020 cDivisorBits=1710 */ + "04cede31ff8bc638ff02454f07ab966c1edf2f6e767fbea0c9283d302c323c4fdcb7904a776b1e00b226b22cbf8e959d575d758c94e8c1e6e3ff48794b65c677f01949936ff4f96ca53cf31256bd0a0f6a794ce3ec112a9304e5abc97a3b5c12438da07186c86043a78cc642bfb7bab9738e8ead2a43d04f708ec8d278639121189d3ff5d06f2c52819028070fccea732ae7588ed5d0eb2fdaef29334b310475e2288402e353eb5fa158507a9365c3f60850dc90aed48df9c595e9d9c9e1bfdfe7f89a3e0e7a20da69659ec7bf45edaa35816efe47227a4ca473178b76fe15c64d860248874c579e45f0f3cd8adac47293855b057a573b28cb1f073a246e923ec34e0612cf041656f140cecf71c54d5999cf55ad8f5bdaf96dae4ea92868038d93abc1f4b9a25ed23f166ce1e21e72e0ba201dbacb59b9e6d991a836001cfe0fe101b60443a9c81e170b365149230cf9dc825a2956eaee5bcb883864d112012c3010136429c28cdd867080fd5c4cd2eac6c33f8cc3fad3280b30", + "3c97ef372ff61f34ae0e96cbf57194d6f29aad1c145f6b0e002d002c965f60af88ddd215a26fdeabcb6e0217f8a423e5ae9c03fa9594b4be84dea912303c7586a1f724adc00a682801ed659eb055ccce9ae31cefc2221862672e11d1248764ac0d78583351f2499e57d5ac1d91be0b0245f62c4357505ddf02745b577239a32fc72a496e9e76a1854497b9b11418afde3f1e8de89eae0da88a9bd8cd67db444355f138375e1cc2e68103f6c82bb1c1684bccdeb12b470b3cba8a81716fe8a07b7e2afd76d936c243646ce2590b6d6b23d9e124326a1b", + "145043b660e038c3ea5a274d430a2a708153fdde79260e196411fea227f486f9b6537bf1107d044f8ede4581021736330b80fff5389930d82ce24a340bdb06944269786897e2e531c19294135782d61ddeec5d28f2b4873f2cae93a316f01106468104a80a8fbf15729d5382e0775d520a65a737305b532b9f79b1e3e072da1ac7bc4ec1a97cb03881ecdb3a363ea0467cfc558a65fa9e59bb99f665ea2c5d4b5e73d0e0", + "03020c4dcdc42eaedcd0c6e276fa076c259f8d3a62ee48ab34830c5b84ee7b52b10f538cd40e94989d06f8ea57e9853de7a35fece334a85b094487490e97b748da4ce5f8a9482f7106c957b0bd872288a57adfbf74ddb793fd6abfd2dda82ac4016c8b4e3093473442c33a852fed5a7daa6e245659217ce88dd2598494603637b18eb7b63f486e564a3148f7b05303984e53af48560f4f74a331c41a429fa161e2a1717443ebb2bdab8fe115628981bf56249c0f908243a3bcad4c8ff4761ca0d21bf6c8b5b1aa880afe97ccd972fdc4870d9cb44390" + }, + { /* i=7626 cDividendBits=2485 cDivisorBits=734 */ + "032ed3b92e31a4570dbbd7d351199cfd7262771dce116ea03ed5a58158822bb28b759e4499944b776b1a21ce87b271b256a5c8951bec34dc05777219cda18ae21512efc916fa7c0848d4dc2f129cee54d81bb92b43d4e7645355371c3474c2e09112563ebdf5c78bff783525e35985dcdcdd3b969931ee945233d76c612ad336b04091b6b0e828635d98def59cc9f43a0599d72b1dae660cc81aa9e37a14c0a30b9c0411418a3a909c773ecd40c68c216d44279155be13267b09f895fd141e9fce89771e6172c424e6a39b2337a50fbb9f17a5cee6d3e0cb87cc94a9629d4e47fb4f01f0af2d41be399f595c9deec15a33abd4aeec3300f099d2e7415e264fb769cf128c29faa8776e93e094d65ed5fb45214dbbaa05ea2155918270dc8e59326f8a3a8147322dbbb5ef6d43531fd025acc806f615ba28", + "1458d8f2402fbde4b9469202118cbca116088d053890f357aae666b24f1418cf8436687c570fe599a4e99281c534984312c1aa605522578dcafe6772caeaa5cfba4c36116fdab3b297b042c6c93598dedccae0ab178dc0c89a877a45", + "280be29195d584b464ef6aeaa9d3aa6f34086117f464bd335a0c6603a8bb051ef6611574fe1a2c343563c63517da36238860f465652b6efaa6e4513c0b22cd9d78a57d3ef2725b5561fd778eccb78e69bdcb006ba87cc0b788cb0fb61d43e74fa249bc3bd60945e70a34e6d1fe468c7bdbdfa80e6b3c2c8b77dbf1c7af10c88330fdcefcfed0f046c4c2583d79a65a7fb7709330093c568ccf652b00edafa4ab84b96556e6bb6949bb9f756112a347d75ba43301c77ba62c781d24adc58e0e4ab6509ec7fda42fa3fff558da79f7fc1c1670e152acabe3ade04b85", + "1383193573e5723e284b134e641cb1b5bd54a1521beda700a126fe0aa9ce61145045568c2e42d7350327a6cff333fbd54d9abef80764b333d10ed765edb9adf7544095e15ff578e5bdfb99fe7962f6526a3d0fc75c6e942e5f80fd4f" + }, + { /* i=7627 cDividendBits=637 cDivisorBits=281 */ + "1505bb97d4a9ed0adece787ddf989ebb1208f9c0a1161681f7895273a086fefdd990c1f12b8f608c5b59f057bc31c411455a42cb99ec7fe95f1ebde06b183794d8e00eef8e23deb89192ddae793d9d6e", + "01f576a4760383b65106e69c5e8327dc0e38a99257b5816ec2ded3ce4406fac5c5fb5d7a", + "0abb67e3dd888cb7edc14d10bbe652313e6571b0c117b604e0aed2f1930debb719069d559056731e505c4d10ae", + "5505e9ee6a1ec50be82b014bd65a70739cf8aaaa9fd44729ca091a1735aa8f3cda7482" + }, + { /* i=7628 cDividendBits=3372 cDivisorBits=1570 */ + "0b83966f0eb258864f04ab191d39a3ddce6992b90bb01d86a45857d8d52a1b75efe73528537d8e7103ab3e1b0eb4a2a49aaa769090190ba4f0eda049e400044e822d50d26a3f2aaf7a0ec1dcb7df89fedba4ad511b43236dec7fa5b567e8ce8e03064f774ebe51250d96dd8ad87ffff1ff6b00516849ac0763a7e4d53192483b34b39efcc1ac08fd782127975a0d972f2c2557e3031934e91208a8289d76c0c8b80f64adabd1ab6e0ed73ae87d983e91ace088fb951f7143d599149e68f334fd567b7c178b7c836e818bc4552937ae1cfb060fd603b2658fbf03dba5d470f2d0290cb0a8f0dfb31b1730b6721b6df318d664b30e27232d055d32e58dac7fd7fed9007b6320f2dc4b5c635ece46ff2f1b047b43bf950b258ba259b2202ca68ad2862aecae0fb7e43c4c7eedc2829db8c0b474091b6cd7afa22c820c946aeee69c7a000960391ad40c160767de93764836c44c5fcb50a21b46231d07f28aed5e1af27bc26fbbd86af3ab2ccf64babe88f5dd1899e23c1a6c77c64f8ce844aca7d7c627258bfdd4ebff1dd20bd8e69e6334ab17be1e510a4692704c575fc6f35f2ea46747b3e612", + "011620929d6c1a7846ff7d0929bdb0449aaf2d7219bbfe1c8f1bede22a4c66141eeac98b53d31c754da32bb4c50b2ba992e981a85e9b4459f6867b7817b8a8e5a9c0e2ce810f819241f219b7f6801bdfb40191fe0edffb2b2d63d3cde8c1117735fdf22d99542051526e77e22f0387c7929f39dd86d7c907afc44dcf2df06ff99764d5a95b512844b756f9a22255e142bc0dc6951032e63596dae763a7b81c9c80d7f696ceef1438e158ce66331733243f5d7931ff68c60eebac93a543fca3fb6775ba1916", + "0a991563f84dcf7ec6ac13469935d65859dd9c9206e86a627d89904ea503b6265d8c0ce7f8344f623f3b5d7dff4321780dd6c6b68beececec95d665be1bde8061423f4967b7fbe1133a70e2c2f92a3650814be65ec525dfc2eb36452419148571b7b8e73a64ffb6ba5a4b7dfd126ff7dafa24801b9b3645c4cfac9b1a27725916be343487c074f1fe091ad5fdcce8818213af9beab797bfc8a9923038cd267b1598c11513a7fe3c01ba4c2b322b34172e48ab3714197ef1aa4e221f8c7a78435e2f77e0dc9510081b09cb8e7f086784b57345f78ebc159b71cf9a88814ec8d7e5334", + "795a819de43f1b563f54fe647e8f52e7bf47bb6539d3e47bef23881b2a1f771b817ad73195f2e4e500a6032ee30c3dfd3b62da1fd8a51f7b95f5cbd1d48ff26c1d0ca6970a83c2b5a6fb78acd10f84fcaed09d16ff3391a6b1706a95869c0803c73e25aa7efd03252fa622aee8339a070ef8558324027a9d5b62f27645178ff8983ba0cb8a3bad37479c7f6bf9c7db51f64a548b3e16874849825867968304b3abb952a8d0a249756f444af14be958d1b12fd763b9ff6f6c04ad2dc05564be8690f0ab9a" + }, + { /* i=7629 cDividendBits=737 cDivisorBits=645 */ + "015e426528724b8c1c561eca42d7823382b509b811f2a1afdcb2c9331fbba7636a87c90be6bf2b1e3fc3395113404708aab1644015256a042ae765df0547e46c9ddfb815f30735e107daa6179795dd03b1b9b93564aba20c5824446176", + "1c78c26f2bf472e1234b5395f7bc407b105c9646457ab6b3094a41fd0b6578ec9dbf2f52107ffc76bb7981bcf471db7d2f549a36ae7b64d6315c9a25929d5a51156f3536538f89534ccbf8a36a843a015b", + "0c4d508d68f949eff50d64d5", + "0a14820a0ef2280d65159050cd2301f52230c5bec4f045df9d6f967dccb856d965d9e3ffc36fea74bb8af8aecc89701300324d308de61f6f462ca0adc09c39d9c8f7fc9ad1c1074a8f52eb07de4edab4bf" + }, + { /* i=7630 cDividendBits=3507 cDivisorBits=2858 */ + "07547e3b82c3fc11318987d12c7cdd21a3e70a18b8ed513d24787df5bf22433a4983098559de0fd6d7ce88055e5279f1002fdc2fa623f45fe94b8869ac8672894e056fd889da38816fe8459f9e2bb5f5526e745c05c1515e70d34bf77ce7c00481ba720085fe4e90c26cc2fac81395dff15b2b95ede132d6d13fcd32551385bbfe10c02b85ac1ab6b082bb736461c46daafd6cd012b47e1c0e481dc46aa4aaf656ec7048a2983aa9543378e6763eec10d8d11e92a5f37d4b9f2b1a47095ac2a7f5682b7ea992d7643218ef95944cb3a54ad20981b4e50d62d2239f5888cca84691b304ef952661d737b7605fc12d1ec821fd3708d3ed09ac18d220683c920516ddc42149dd671dfc811a45046cace51a08506b22403f9ee399444b48f6e814680842f5076e55d6db89595c4c5d30e2f771f289730629fddab0b17dc7a24a08ca5d692296b5a1f33be31b99261fe3eca0d70aa81410af299d8bec7c5366042ada1bff6769285fe248c3142fc3e3b35c7c9ccbd5b4957702774d700d6588f8efc5e853161f637c46a99161a02a0374a806f34114516d20406b0059cdf9fe44f8e1304d46f92b9dd9257428aae9b340da9d469149f9537706", + "fa58ec619f4321e106275a20cb0a3e2e7370528f297cd7fd5a6d93d5ec9571f5676e3acdb95c5287c0019ddf9cb9cb6d3e22671f1bbec099bf2dab404773915b1b21db22b91ae43a3ee219c9cee8d5c346ae0da0df115b2bd3e4917d54bf25f58bffc1d2620141961b7153f6ac0bb7e584060cf35aa33af03310f581013374045f8e87c9c2abf8f914e92ea91ad0258def9b2aaab0b66ef66188b18625aba6104ecba16caacc1a7e35d3993acf393bcd034ca1031bb6310e9cbcba96d6450e052041a734c30dad5e0933c7520d0d948f4b13f191c473c4b540b1b17fdeb9e88fab72699653da38ceb3f4ee66a61f5677eb45eff8a03e383e08408de4ae57a340fbf16b4479f501a2ad704e4dfb194eb04f96d5ac8d8b3a23310e60646d6c319bcdc9b9a8c947fa6ecfe1fd047fa1c75aa8909baa63d1d9caa44c0b4e533bcfba82a2fe549d1183af148eaa35f1aa62e422c95598348565658e93c79f5802d8d16fe500fbe6", + "077edce10c56dc583de55870873b4bf166fa894709ce23d522b898d2bbea0e346703c12a489b6b0bb4aecf556cbff81c63054003084c85ae6825fecb790577b119405fdb3771397c9c6214912a34033db9ad", + "c13d3b8de8c54c2bc03b7b68e545e4b8f6749e6ebb5cd77bcf41b13bf283f6186c4cf03826dcac73ebd59b8ad44742a9308bb475a0e0665c4a46bf27f72d76fd8e409c8355003aa9dcc999e59a641f8ff9c3df8b06f05c46939f687238e149da9513484b1109ae13ef165689839e5b0892397cb6bc79454f38d1c7f7e72357084f30954947cdf107a669808b854192a83d0305d5b2efd8aed3fd2b3d0c6ed0718e60f0946c8396d67dd19b8d0a1ac8b9b231fe07449106171b295129571ab6906461f819aa13feedf611987bcccae52e84a0c2e11f36dd5d1c096c00ad0822ea3e627238f1db2c451f891c28d93bf59fbbb6ae714a5012a86f406c7b29026e1d549f8f52e039646a97c6f30a37b438114c06a9ec75fba945e8ae3eb4777caebc8992288350b26b1fbaa02209267932e615228f3a9794759fbcd1355ffcc8d7195505270c0e5227cb22a4cba530c6055e1ad5a408643ef27a1ac7b07a9e7741b146c9d20698" + }, + { /* i=7631 cDividendBits=1123 cDivisorBits=956 */ + "027c8955e46ee29862de1b1bf47dac9e98c9747795cee4ec67c459a56a10354f52f65b65a77b4772d7d6b34569175464dfe748282a8eb802abb626193ef937790ab632912fd9b910f48ee8f6ae34b05c36a9af9183c29d0d69bad77704107707b24818f8779653aff1b151383515f5665cc9c09525ce22b4f069c4bba9228a3129e131155134ae128bd84eb932", + "0be4fc6ddce8ed090af47c54cdd286fecdfafdff4b764e7e70605590ada68a6479c2d96cda2564af9620ef637ed494f070eaa067cf1abf3cc1f7dc82e2103af1b01d87f54a8674ec134b579f9bc4b6035cb73a89633b3ba5d7d791913b9d3b1cb32a61861e88b8248ca5facd226784d5877120222af1c17a", + "3583ea8f7d895b26521ddaf8710798f5bdcf16ee76", + "040a1bf516a0175f70d1da477fa38be88c5dc06c1c1a456f06c2297ac133c36b3f7d0faedf829c5d3dfcc0cf8854d441132abdda19d657df61e29e788c629596c111b6c92903476d3829ced6cf184faee8b42142d69f58acaa0fb62598b89bb8a27cbc2fb20f91b913d4f574b3591b42edeab99504841ef6" + }, + { /* i=7632 cDividendBits=552 cDivisorBits=283 */ + "44819817d1f7c87387ae43ea58ddd2c6e00c822558f3bff81e221fb80721b807b01020a1a0fec30a1005959b990b70245d0cd059b36cbd2d89c73a8b13e490091e03a731af", + "063f8faf0240acb74d8371b7863f4aee698f316bda7ebaaeb067cfa0e7ac7ecc5ed151db", + "0af6c8e282de683df1ddbc0885aac774641adab5da6ba40d2ecd2676068e8c140954", + "0498cd16f08f976a7792a1536c0fcb17b7fdf95c2966050cb43886ba66b6d42161fba2d3" + }, + { /* i=7633 cDividendBits=3852 cDivisorBits=910 */ + "0ba265099d42621f318fb8e3552ac8c51b9f68e045259dd7e3234e69d74a741237f41121275159da281c1cdefeac79d5ddb3624a702b1d408962a69c541197ebd14272bec85559324534b2ef1209bfc3811421baa0b36a7c2bc93e2c5d5a6eec90f007866d0879f4af1971d14f8e0326392ade6115c194ba9779d9f3b0eb5c62480141f5f4e489a2be2c4b3e1af11a1ae13ef927222f6ab8b711f19776e763a85f667db8f225068fc13389c81d6a22904ba8f5ffa1291ca400c33a1a6be378b1ab3f378076104486061d46cb9045dd389fe431033272eefb9d4a42aaadc133bec8a98ae60dbcd228f2deed99aa3eaf6ad84b12bcae583f35bf611f0b5b0387695b627a566aa2c37917f8d47f6cc9d35286f121bccf615861f74d8d7133db3cdcdff75ccd6ab7c05d2afea52f599f1245790e84afa85e7280e2ebda7e6bd02a964feda0cbc21c1089b6409da115a893991682b31c60818ad50c9ed5b9fc1e0f37c9b958eae62f1ff555dff73af481fee6316656301a2fa983efcc9b57e9b45adebda64aa5dd90d4fe4a59f1f9d323f2feb1fdab7b5d4b8a588f1865686411145d9a9106c9493057ea3a66a1c37b3d7f456271f7c32840c4d28904adbb42e74f7524ba308a0bc2b492a63a048b39135b5485df2a927fd155d8d2df9cb9440f2b820778", + "30185c08a7139e9c2600877dee2926f46239af448a6fca029c87a2c406af5b16a2d96334e5229b2000165f89a849cd18e3d14e32316e9ec46292a5656c3c916dbbfcf6e1ffa5f8358774924d39c5680b8778a95613d85d7a72bf43edfd83730c4d59752bd5cb5c4f915d45f5b0a96c749b06", + "3ded581fcecbebd98851c30ec84d3b503ef722df44238955e0c018d761f247041ccd03d8ab7243c433a4db9faea26320784ea795de3ffeb978de7d0488284d08f7f9f1ae491877b51d28786613a3cad228ef5a8c4c47e2830179b2d77b4eedd63486171731958086c12d54a7c14ba8213038c25c22a47d3cc514988e216b8faa10eb2777bc1dcd56504f4f208fe2f5986a131cce80c9dc0aea6d96dfdcd4770d11cc1795beeb63f1a417329b1b88e2f797477d7cf2b9314c0255a5d755281891be3b22781e7550244d0b1019eadecae74012e0a3f9b92e1f6ad0a61021ea608fd77b600552e039779ed6a6770158f11cfcd94292e8f1a8a42a6a317d7b2282e314027546b97886bbeb66a889eb14328f0aedd05bcac271428643be5d3494dd829706a3f9b5d85836a1dcb77cee814aa80aecbb46c8430483f141f1c7426f64c170984c9e2be3b33b6a00b55ca9f5793b1fb1472b95acb5f50bf23f83306b880e8a62f6f91246a929c63dfaefcac26e44", + "25f2ff0cae0a3e72205360c682abb124249d57cd0b440b0c376d587a85f566261ee6451b0d9460fde69cfbb8faeaf3282e5eb1ff7f0f1e97e12d64d8dd7e6360907e5284ef01fd4bc255b0770c62428c43e45d0d3cc9efc889e43e5be0255d977d2f53ee8d34548f0cb830e6c12a0b6045e0" + }, + { /* i=7634 cDividendBits=2660 cDivisorBits=1676 */ + "015f3559bd2dc75f91a1044cac2774b6d88807682b4d88faadee51ea92cf2fb1dcc51eeda95b205076763ca3f726390ad437b8989ee45ad3b4797c83e11e3997f6634ef9a213325927435037be08d233fb0df848f9ab98fca36362ee98d154947c76eedf572cd5bc94d0a00004a798bceec6f14e27bed19631ea949977d34ad9ffb4b6ce51c8bf0f808c3a54ab20c7d0addb2ea4d3a95cf47768a73dc0bc166a0c361344a4854ca98423ff828d7b69bfbcb31a24dbf69e9701b93a8e70bba2d91d9447f2187d301d7ba8df4a61109ee559481e38c062c87046f50661c8f3c4c25a6f903bd5295756539ba3a6436f0940bc9bf38b2c6bcab046a82d267890a429acc731cbb6c2c84b9dcd8f31e8c0eb15f2fdcf4e1dc2dd5469ddb02627b3b8ff7870a964ba044b38a75e4f1e75e96fb6c7e866eae0475d1e563fe46b7039d4b3290212d55a7ff1b008a8f76516", + "0f63118c914aad3f1540d31dda5836103ffb4cfbc143f6b9d03acf40f6be7b4c3dc48b7219922a7c0a0927aba4d6fe1362095cb2b71054c6b761122c545873df1d5d2535e92e9b7408a99edd3dad657853a2680eb9c58d0c64875cda2f73ecae77f5499c6be4c74c586f84dd59a0d0372691a2aeeb6348109d2979b4cee652fb2e36d3f960fea1bd452d47e7cb2a53418fd228e502dbca5e1eac3483f3ba111aa51342a49a11ddbf255afcd1c7bd46573e15da98b037be615c160b1826a4248866afe29f51babc248ec1ef714cefe3a95085", + "16d3350b62e61223115a815a485f3c0a17246658d0f1a9125026113f8bc8169068d003ade6adb89d7ba95b2b1792ef56e3bce14d7b7adfb417d3f84e784d3d7c413f756485d51862bf14826d1ddf7607a1efd3dd36b971fe617163b8e5e1ef5a67d98ae6c43425834612846320c0b44d851b1f964c14a6b7f61636", + "06a991c1c3a0f5bf1f613cf8574dcfe01e6c005f7f3d80d7c2bb7e1e31ab5461fbfbdc8c0d449513a37b6152eac6b9122a0a79707c137c84a674fb482ff36d47c3ac48b106db8159a7bc2c6a83cc509e02deba406bfcb50b2802386af8a033cc9948ab0c617c3044375877eeea6d77905684348d4f5fb5f2d590ca49b869dc0557810f00f24db7b27f3cf1837ab8bc925a3a08714af940f85c471591337e97eff932d1776ac0b63682d24d1ddaa17955d67c8376b4adc60719fc6cec4d7c1ced170435881b7c9662c51b279b705da386fb08" + }, + { /* i=7635 cDividendBits=3720 cDivisorBits=2875 */ + "3662164f754cb6de266c8eac309c41e453a4d38c3e779d95e31fd7862aa6bae2faf0534585cc7c42b622cfa8854f8fb92a8879333ab2afcf4179acd20c9a1b93ccc46e9291ed2d454b6de5b6fdd7a14289ceec7c06e9e30db86825565a27b5d940a7982b584c4847a36938e4e709f46c5fe1d387f3ed57cf61793189449dd5370b0c25dc66b077c23bc0b275f27bdf2173b52bd0e5206878a1e22eb62f256a4a0c9d4937a5c94866a19abab786471d3734f8de1481c4a3c1d6f6b0f552cdb8bdb62ef92455f5050963cfac95fc07d760572232b8afa83142b8e279640b3effb74201fbbcb6ed246474f85d0df06460833e057a7061e9dbae1702a108476579d76024e9d15ac424b454ce896aaf07267aec730bdeaa15db4b5cd7659c79d47558edc85ee845fedd16beebe8b0731e1008725373f2883f1039c70ae19cadfc123d6904add8cbb4f03ddbb88f7a409257ce3d63c1194512addbebc3473a000bc513a262152639d81aa5f06611f9a55342c31b1975f83e5cd62a66500bc4f431d7bdb63e959637e42b9560d7b764c71b3492c0e96eaeec041375504912ca91b0165adfcfd6b652f9e0cc4c12f0d523b5c3bfd3148c6b7a82e147e12e2c48f019c54fdba8d1546f7f920e9e1daafc986c98a5be", + "02c23d05d95c8d68bea4b6a2fa4f5603781c904e1b2ad2e53ff88db7a99142a1635bf477438479122d2d2c44244615d45d76873c0d14e7dc0b0a1a93f0399c8c304e833fe771b264b8ca3abd5265ddea450b9f9c5c533c0b9dbd03c5c1ee96979d9a8adcaae0a5d0fa5d3305fd3c5bb5ef1560aaf6e42c1a6399bdaadc361047acb04b83ad74650f87eaa8523f81dc1177209694cc9715015bd6ba548850d964f313b6b51b44c65baf8edef5614c718a62865756fad933785fc1ea397bb091cd940a29ad6b5c9007f8b60ddcc05c29781e1f173ebf5a3d89d0767279d528ebf52a53079d9f95a4665730c4b38a361e54b922357940a6eb87cddc58141d488b792b255818b4156f75f986c33a01477c72887c081e2d59ef30755f2110b222b6145e0cf5fc72f061a0731b11011f09abd0be5f9c2bfba4746b8a181e008e134eb60d8963bfb3460a735cf7d3b2bcdda8332c12300399e1d3861cd33118095566063f621f1973577a86", + "13b6881c2ecda6ff2e237d337be6a74311c8885e92b9df23f8645e732670e3ff134724383152495ab3bc53c8b35c436dd5a973503a26e1cd6e4564dc3a155d0438a69b8246603bf75112a150f75cb9ad70f3b09c4de4a2ed01c605357bbea16a6b0ff45d09099efa2cf0", + "020cc5cc300dfb5cf56f711273e19cfaaf35e6778a744b886028a781596b155924e9aff97cd4e408ecda0385fd1b9f35ce1bb1c41c252305f17352cec7afde2726345542bb6b4da364038d61b91d60aaa9db7fc8121d4ef0cd2e76a5272ec172a6f34e0a33f5810a58ede1c523dda000cc30c783db624f103ceaa5d81a651e6b4be30e5daf288fe4860f6c3cfc871622ae525471545be37bf4dcf9bfdaf2e41e6a9d3ddadf4cd12d49d468a4024aaceb2a0c8b10bb6789bb51fddf79345f781d4d990bc45cec08e92e63c5a2fb3c30cf8ffdfd14b8297b7994719cd402241bb42345ebaa538293771de02df700f52b0e8c8fae78f53ad1413d402fef738bdb16fe0a2937f384656e1e328ab84b864757ea427cf76d617bc247717b0d11760f225e93e26db4fcbcaa4023f1a40fa55178aeaa80736c3df0c7289a8e7e3d9da12634da6bcafa26471a59cba3d6dacf5fd4df2d1bf12f9660b1fb8571c405356c7d643acf26e6aac01e" + }, + { /* i=7636 cDividendBits=3398 cDivisorBits=2428 */ + "0112135607cf4b5245b5dedffbdce634f569eb1927d82b821282bbbe9e8126f52b6378f7895b4d26b63f397c4c53afea7aa1dcac0a6e1cd7a8974a7d732490db0d304fd9ecf1553348a122558454edc46d22757816e83ee638247a5788b55ab74e9998893bdb0a75e24b59009b1f5f701401d477d8bfae8114609d96437e50b54037f9a8ae4d2e1bd410cd683cfc7dad7094c167515c64e8cb598ed103993616b818a7d739676d7bafa46617aa86fb0994e8db764f0a65a70baf139f56c09b44ad0b8fa95e313805e6855510ccaba0fd1862f189be93e9f80baf035588382efc893bb10ab6e8f58a4f93e74abe432683a88474e1efdf2fb1b9f8f3a7da1d847fcbe76210652ebba217a46142d9952ba2683d99acd8537ca85f69347594ad274ebc309820f47d0274574780bb3fe8330709704edf023badf369bfa8d34b21005c92aaad167960164c3975111b5c86cc058e08d1863056376132ee5916b6e29440397e88dfee531f5cfc699287aff81481da24f0762df1e44a16924e62cd7c85452ac1120782cd0c36267da94a8129c3676dac168777a042669906c639b4a0f3d048afdf83c7e231f455", + "08198a1607009741ed7885d363d07f8c9e6e8f35277d1e54c04d9f1a00c45b011f8e15d1042c5b4796cee72e7bc4bdf8445ba537c90b7eaf70f7430081474e7c8da09a2405d11e87b2b52829e334d9937f5ad75ada83edc74c99ed6a766d1c4efa4b7f412467a22883bb7e0635691afbd99449815baeb4160d6b42e95499520ef0d4bc0443e470147d581d6c07f82b4c581956eb047dfa24ff01e1040e812014d719acbf6b72110012600e8b85ba549c3fed20710e275b5377e4c6a6f31ab5c542b1a7bce8e90812072b68dde181ab5665c8f408d8d3758c38bcce93d43f15c177828a53ed57c562fe8e066fbbfae66db515a1399d510f26a3b72d31c023690f41bafb95df9c511d10e8fb5f474e83fff1b25a561850996fafac2f9028d0e3046fdbcb0a8d625f5b3f8b76218ef5cebe", + "21d664b6ca2d6e2f41309a5d9e28a863f3f8720ecc5822a951daadeb8d7bf80e330dda34a2f1d6f0da774012238914cbdb83db8f0c42be4b305551d1a7bb23c29cdcae1a4c8201a370dc8d8679209427a3457041abb84cbb9642342fa07c675e7fecd347d5d8e2fb66e845130bd07c25062919c0c27d16ae89", + "031c474039d378910d9ff7aa247f77a01936b555cd071709eb9e158ef1d77771d7b866ca6c554fcc5ec8d66c92bb062e902b874590d81f386d9db4939f4b183f78fe04bbbe31ae9ccc643a7217d5f001fd7824b32afea5220df7c5489a982b583cf842c70bfdfa3bd693c555dc77299caa5305a781e5909cceb850adc2a89b285fde239ac7d1335072cfbe0b1d7c78d2944161cf3742fd1b3cb2de74bfa6830530caac366fb419351beee60a60f539d811255dd6d2c3405fdca3059987177a5e93e989103c33e125a7d98dc2b4d1938b0e9e47afd90724ed0dbc4320f77a13273d2ce17747337539c1f993f5e6e6f598fba53d59b30141ff6aa4fd95fe4bef8346eceb21228c9df2f33afab6f5cc50bde8381821538d86914151bb6202ff9406e52e66f24c7ee1600a5f0198c3cd2ca7" + }, + { /* i=7637 cDividendBits=639 cDivisorBits=347 */ + "6d707b1d46c2d10445957afbca9837b010742a68cddee23bd199ca28c9855207f6e4198e8038eb33998a18eb7f4b6e641467cfc1496ca31baee4cd1e263b4f2f7587c0e6dfab45df133e2e516b4728b3", + "0568a84c4aef190dd3fe194c086071121dedcb7dbcf6ed54e73e68e2c2b070bdb82c06666972dc573458b87a", + "143bc75f37a8ce14d757791d5b6a320de7277c27ce5ba15cb546b6e7c0518a0708af946359", + "033f7a2efdcca5ab4e87a1b56a5bbbcf1864d81da85e897fddc6dc625adbbdc37aacf59be451d78bdc8fd849" + }, + { /* i=7638 cDividendBits=3467 cDivisorBits=1708 */ + "0202a46ece31117320864853392796ae3c179d18e1cd558f1dddf5e4cac159a00db2d2546b175d9d4f2b422f61f1c74a511c25106c4901d07617485ebe0ab2dd105917b8bd7e20f91cf8a8b9fb1aff5f34399ceb081c039eb9ccc1f01244d36300fcbfccd33edb35354e6807b701903fc264d04f4fc1f662ec1b61aa2226902d3d4f22cce55e6a4293cd5a601882eaf71eb983e6a12e8b2ffe961ceff5898f0208d7b7a4c587edf39b4b86a7dfaf776f7082d3aa87b0f7fc154a606d94bf07fb86ffe7bf7e8e5ec23d6758e2c0e7786e040e4bef8a135e1ce9186773673382227598ad2671836d5736f21550aa11aa9155c3e0e74d5f8ae064143c6119379b81f625d8e8dc8dc0afd091b9ab0bc7ab62fb11cb3d4c306c1afdb665de69924c234bfd66b0afd3d04997eb550b6c33de4b70dfdb415403906b565d7a54f59d421c1b8c3babc61f6e153d88ea4c616c1e5350c75c843c277231523f1ad5dbb11e61d649157066d6e46f35d099c6c6589a84d1495a6a3157157f35e5c839b94f66892cd344c4bba7068f5dce1d5debc31a978a09e61926dcb3ea951f637a9f01f1e0a94915c779128d39e7734333b56fc3d29fb1", + "079dfccc38e078f0ef5753f3b1cb781e3b72ad6cc922b90726d7d1004b7bd7a17ca8372dd0c219be16b89ebca0a39911a89bbc3f4e07611d07c4b95781e4175c4f5ffbef3f1267b166d281912aaa82052e6ccbc2b3415539dbb7bb5fd4bb39753a94c96e1802af5acf00bfa6c42fcc25e5bc5de0e85936814d9588da4388bb8cc068e4d652be95ef8d81eed2d5d0185b5f7385116f87c84d7609a9f70b910071bf46740035a3ebe6ae4e7b50f974d00a7307d812ff4394908dc91924f28f03965d82943f6880afcd3c9cb3145e99fe7492c702d0e08e", + "439050c27c9428a944b84648d63f4d31431f04b3e6bcebcfc06a3d749f263d54cb09a1cdfd2713a666c316a45b1fe901d1afef8eee7dd31ff95d36c46bbe9d44cceb2bec68732dab49b79d4f824c8f2f1ca3a19c430dc427d7addc48b37f165a1bff0dc6b135918d7ba9775854b039ee4d9971008af789c065d327e2c2b2f47343d85332c7ed45def56fecf65edfddb14e59f478a5fb6bb559b8b2dbe590be87e9c4a38116cff28f8e1aedeaa1ec7d3582427d32bbb5043bcd8839b54f51a8578e005b54282602330fdc144e73c2a5e540e3bb3239be7d9caf733d17", + "02af54e05d628604cd33d7bc3ccfed801bc50507f806885a834b2f6049eda85cd89453bf82e199369f6f1439d10687eb6bdfa39368ca20f28a66c9d5082575ff9b5224c8924fae0f46b207ab061573d8f2db7e88330c56ab0e0d12321de828abb5e72b0b351f6265256f464be280e6c47d4a30f0e596778375b7643568d615ec9f22f95466922f48da8ddc0c575249caac69af9c029005947cddd3df8de46b3dfbc066cef8ab0bc39aee9ca99c3620e7ede576367de319b542f0f4b45f81f1786ffb4a09a8d09b3084e9def4eadfa91be004cbc29cef" + }, + { /* i=7639 cDividendBits=431 cDivisorBits=312 */ + "0cc7c2efd4a1fd98a0949290dd0b3f90453b636b07241b44c527d8d780c1fd79288b1a6a755ef573d4f0eb21165db1ed08544abfe91f", + "0ed673bf812749fb8a6cca213b4467dace83ab584318b0c0936d427c6cf90ed07d70d766fe8b72", + "dc80d32d52a891c86470aa58219280", + "0869f6d581e35dc36a7548a102c6aea764a691db7095dc12648843948c0d0d071b837076412c1f" + }, + { /* i=7640 cDividendBits=2499 cDivisorBits=1914 */ + "062c465481928392327e2b2db04c9b7eb6992ffffcf788a14c647e91f1eca4bc4d4dd84a6999c9d1434812ac63c809f31f2cb505adf8bc62b97dbb8a7bd95b6743a65c980796090c2d0be146a030ec3adeae0036284479f7f89edec65ef4327b4433c578ed29b2ad7c590525208adbcfb4a2721724658ac49c49b99db5643f7e98f228ba37807885f5b302e1a53eab755c434ca9091e6ffbe72adf65089303124c1b8d633a8af03f70245b9f813c8df8603c726bf30fdca55a29a35d1d0848dde2a3ec2dcd3ebdfd9b0f2457a5bdcbb94007511689d389ae1f8c1bd362472be361f8a3051e900a9ff3cbd2ee0354f09e2b1e7dacc2086f7003d799708b4cced5fd7ac132b4ac2b86e830bc236a2cc388b9fdf6320adb02484037b8e1e64e1aca7f895f2950686e275f963a360ebfc0e71de53fea7047ba3727", + "015988568c13445abba6a09c904347f9a98eae681c250b02974b587fce86d729dbb20c3cccc644f0093f9c7806e2bdd88ff174e68aa9b8127cb8227dd9f90b65ae33818f806f17432b27853a125845ea8afc4814a21bd512e92ee44257b64c1c3798017ded34ae3c9068bcb4cd76406604362e057b65d3e340a443b03d32e0a19440c04b9733f4cb94eeb21b18d97e9bec811421fbdaa069f128f344fdde353c350db7ae117ac7df99c3ee2d6e0c6fc65bcf52b65d08633e1fd8d4b80dc5a15715284a6c143980cbfa975b50dc560a36eef3c3262253b7f68e5c5677aa0e14e1838e6e97ccdfc1ab58ef89352d07e4d8", + "0492cd63db909c35e3d9aa69c7d7d9a9fc3d98b96562832061361dede2d52d95ca67ce84c11dffdd5201844898ccff98332cbc21698133b8b88da6f376984a49e0b692820f0242c965a9", + "c8c98f95bd5252f62364154911c7f35845eaa65a0a928feaaf6ede06a704a009a734a1ed9144612db1b35ac72593b26552cd8b9e5e998cd438091d6fc7fe1917d907cc49e145c0d92a571de0954fba98febe96fe4b38c564cdd551e9580de5dba66adf0b4d83f4bfad1a79f72e4e0198ad90b86b59a09cfedd45e6e19eaf71251915bfd732ece73dd2deab28fd0fc976330be6fdd32fc5b51c354d59c067f49be89e01e2a9a5f2c359ac579dde0fce1cd50e87589ccaaa633e53e77d972f63397831e23ba3f0c207d58282fbc5d0c026f4d5933fe9fafd4d38661ad310a032d0ffce1aa3209d54077785af12a2ec8f" + }, + { /* i=7641 cDividendBits=3435 cDivisorBits=2306 */ + "0561708847c098ff4e49f99ec74c60cc3838112afdb8ea5f9755682840f812d8008bfb3db58e33d354ca0bc03671cbb928dacc6ea1e301cc476a6fb07efb9973668fe8cca1acb13d91d50ef665b13e5592ff1fe9834575cc7a847c133560ec4d011d4b353265560740697ed24a2a4410a586798139dbf069315c012563bdefcb1320abd56097c15497952f9155b9c059d95a368ef51b525b819a2ab66e382795fc61e61d0c367bab4e882d120afd9833e496c2c1017ce726b3bf49e4288c650f364b87f0c7f1fab3afd6d39ef1727ce0ffbdf4e7edd07236946297545e0b4e0551007f9d174e19301b62fe95f63368f60aaed9c203b7a6221abb807329eaf2d9f0fc89d7591693e25afc37735a799beeab8f72028aa57ba7c8a866035038407e559e617f55db4303f5d3d939ea77aa13935e83348b1a69c1fa51ea1fe50d5ed8832104f20df25df2ad5ddfe14e7305b114534fc6162d251e311543a5548e2bb0f5135492056bff8892dd11284e100e3dedf4eb9eae0d61a097a41ab0c40e50a48ea2b759f5e668c27aaa77ab105a5d6ec01709b68d9da7754f45e298c6904a79fcb15235454f3f6cf4c23d208f37", + "0215ae8c0f769f917a6ee654317d9196c2e288cad2f9903332bd513ce4ca631e72017d59c147799ab6e533ac950b573c14b19ddcca5888ee36c38222d63737f10ac27cffdc703a2d589b9af5b903f607281b4e19d40f6d6fb41dccb1b68fa4e15ee9c760a6e32ab8dec3288fb121efac2929027475c98570da5f90c669d3917ca3dc0a717a4ec28d4ba46233d2f0e5500499b9ac82580c7f2fcda56cd34c4a2fa60634c2341edbdb285c88d79b2a0c016065e3c48a6d57682cf1a283ba191f3c87ae02266d0fe8349277d1ae34b38cc39be729f2d714c520b4e7531764a185c87890a85eaad120d6b3b96a0cfb1d3b129371ee375a06da08c0511a90e41bfeda138242e59a7c82fe5ea1c995c81834e7e12715f021edc4d782eafb3dbaf2c00889", + "0294bd3ff3eefb5bb9750f9f32d97b70c00bd5386424750395ada1f5de48583452715020fc038122ce0bfba3fef1ae48f86554f41f5b86eab1966600497b291445d77c7e1741bb1af72a09e0c9bbecff03fe9e959ecca64c859087b06cfdaaa1546fe7e22cdf34915f8b20b9055b87d504808b3ab3c04d2a9f3cd358802259e4885869bc349819b13c11cf8b4faf", + "0105cd85325410d44648a024c295926addfc60fd12bb520c95fadc52ac5921d9ba0477c253f5f4d198b211861d4457435e862fc4e02d9f0022c8dfcd59ce53cf3573e08e1177a22a788977f590853037417ba260c735ca67b54fe6d0e6a31a634818065d1e2bbe8fc06490b68a923110348a39c23851e4ca8a63371154a731bcb74062169935eaa7880a579240ee7ed0371d3df62a680319d6ea514ed2f90c49ba36a1de6c2aa348a8965e536a8e41a4494afb0221ae295b7dc6849e021a0b996e7e7ad8001709740ba9ac431b90394ffce6b90ddad22a4c6b6f4b1199e5e555f9ef505273f21f5997ae76cbfe420658be5c9a23bfa89b94dbb44c6aed9a1f4c42329cb37e25dcb246d0d15a41858302ae0284b98d239367b5fe5c4ec89fd57290" + }, + { /* i=7642 cDividendBits=2403 cDivisorBits=1286 */ + "013c7d0c5c962b99f1f323beeff3782eaca38220105e8e53eb6a90a2a6e05ab57a63b14a3b30ad25b4291a20824edabdae42de403e966d6cc286d9dbf58ae96aca0d2eeba178301074b810dcb5726f1452b9439634d4120bd381604278febb65801be0ba31fee7bc9baa9eeb2e4507a935f9ec700add4bc0ac8758f9ca7287854bb09a9e214b4c735782d638ee3f7aab73b326e8d059facec0b66f5d2983f21376ccc34dd2e3acb67762f209766adb78075ff6bf75d1a88808bebfd55146dc18fddcd0a5facb2e9fbf800ba826c5b8b04a8eafe1da4dd7307c01d6d223689479b839352bc0e9e0308f0bc621fafbac7afbe11ea427bb813a43e666ff7560ba03cb83683c4db9b56d10210220b5b37c82784833d68f40d87029c0cca81cc1981ebbe6516d2b7cc15f8b2618ed70", + "36885289633852058f47d0f8a5d77e15c6b7a677e2b32c64c8299eb9ad23990f75aa4216b24b203889e0e81951a9955a72601311acfdef8a7555639f513a8fb236153b0addb59c343d68f32dc84940aeb29b9ea839b53a26611c6325799483e375d8acd71d1b92a319194133401d2c73b1407563dec7b47c4f1487c1dce8b7ea17aa7adafd2b2940df66c1666a68a79b0e2ed91aed12c5f76e883be96c4dd8777a", + "05cdbd0dcd7df42b97129ae4d9874ade99fd9ce2a8c5ce928653f9443f75dcd71d99b94c3782df4e0329759fad90db39a1842d41a8289f446516942f6306e0e29ac213db773f55dd8b44553f2965f10f9df91f1b575739f8a7e5934ce866b975edf35ce501262ed17fa85ed609a2b87112498d6ca72bfa7f679d2591abb6b9be168ac42e45ab142f91d60d03", + "2e43ef6e449bc55b0656166e958b7f2f66049593d76c1b71812b8aa7a866a5e1801af16661aeec0ee63abe8b7590f43c4013aaf2a5850cf9b4637ae03f944e6cc9f073406832f762bbf345750d9f032f6d900cfb562aac7e34b9ffe42edc844a9eae940752d16d3cfaa39e83c51791faf89ff2b43b2e5d4cea06c84bc8e98a4d765007dbe6a07258cf28d70c3ba90b32f3495b76eec52c8ffa7c00fd4c44825502" + }, + { /* i=7643 cDividendBits=3695 cDivisorBits=3326 */ + "546aa998595f19fa30b9fabed52edf93ff60c4ee96e14e46dbc93c4edd6de7f4a8ae9b3c65d4aad909a2e984aa48392b66b141bc7b605f6e03aa83d31e15f1660c2c412a0ee8d7e3c8582dc38f76a8e280e6dadef03db5ba5bbe6c89222235d410c7c0d6d322a187fc3e6753a6d7488d26ce1a60a199487a4e82bb921ff09a87167a478411cd4403a526e3c34e4bba1aac8c855335953a0b10eae4b229a19a364469468556706dd4fad950d8e81968dbd6f5488d281f2bc2037beb829781b6e62b896c0705cbaab4191f88a31666192858e3f95fc8fb529017c64d10a50f57039601c0fbbbe43966b3912d723b8c64c38ae913d4a40fa09a3483f8d7b58779657cdb18ca45862dea399edb73ad8a587022c317fea9a928a14f056e23022edf2e5de130f0f0e0222d84fed3877aac5638ce1e25974919b8529e55c8e8721bbe53e6f615166381b0eff6adb23860aec56f80908a0b0b1820774d5d2a15ae0c76df076ddf784f063deb407eaac9966d0a060ac4583c97c23f72b763912e74c26cccab8050434f74984e0ba769e59f9088df30ffb05152c6c8408d3511eed689cf58a773f730362b1bba7bb0cd9382df51ebe5f3226608fe0d458c42cb95ede43d33ca0e5fd922c61705394a70fb9cbc", + "1e86216237a314835b38b22ee00ccddfb2b19e50a25552ecd72dc3a25e9fe6d17e1787f4e218f9a60dd6e9cbcb15bcd8c35406f717bd000f75bcb59b79cf9993f4f3eacfb77548a8a313a413d32650a64f83cafe9f37d7d1de7234010ad50ec3903a5f316a46158994c4507a72aa742987789fdd927d980ead0abcaf26fd289a45495c8b304ebdc9d80285548793007a5b03312e7401151d2bcd73bb382bcc8b14bf20c95d46993ad20b0598de042dfd032a8e7d8b0397949813ae713b5b8e0c71e1e65e20f858335620c9b3cbbad573b6779a25cf0fefdce1d3206ddd7f180bdbcc8302023eb7db5ad47a654d9e988805cc6f6a65192d74344ccb906e6e28ccf171183ab8e3804934d5e8431f15a13076e549a431530d08aaf5858d3fb6f305e4d5224d1aaf2c70a01a14ee7950cea892f48f5687759389c21ade06a9d43048b7146f4ec16f076b14cbcd25187f8934f303fb9d3e0d0a135f4b5e12e68dd1548877d7357e57172fdabfbe49553d68cc671557218aaccf70b8b5fe6db0dd141702c4dcc38e8184b025a0fb7931e80f976f9934b2ca07c1080d41502a0fe152ab", + "02c3fd8d3ca64a222b1105e60765eef9b0427b5094fabd6fe2c4fb6ff158704e9779fdd16abee69cb6e3730c2ecd90", + "0fb20d03e66d806c58289ed83f22fa207216764adb126927e5e842ce2deae51d3c85056c7c73f128ac3d2e66dc020145b90e83b3e2217a22134e990821429cd8226d448e78b70ce462d1a39e5fe1649379917e2ed097195bc411b05cb1fea31554167de2f51a5052d533ecc4b441cf8dee9f8530c587aee3237d62cd4daf8453396977a81a2eb2b468bda855b298c3b1a73607598409731fe8d050cf921d3bb4398ba4d9e609b6242d619ca20fe212b730f122bd503cfd836a4a51b40e9d108a7dd8a51425ddf8b6ef8b61a6cbb5808344f69a754e79ebb853008d196d9bf8282cf2939ebd2b4182d5618bbae533b5ddfbb809bcdd0d78ef6f0aff74adf1d57ca8bcb1c13f67387619ead28107af4429ac2c091acc900a6c39138d1fa1327dda85de85818570e0a0f1005545e3e6e1d39a482b5a2c857cf5f9b7710669cebd50d5cfb635a1db8f333b6aae4eb44389cb259c040b483d3cf106e1d511f2da87850457df566a2864553e0df833f05299ca6f7d20ab0ebd7dfa28cf8bbae59d7e3191201fa22e57583cfd48bda462e6ce332f99f03fa23d92f60cb144bc34502d8c" + }, + { /* i=7644 cDividendBits=2942 cDivisorBits=2336 */ + "137451431578d448cf9f80a8c246ca4f9af076af2b2fec0c5d6fbd6c9c12e13f10dff90a6a2bea385780e1a09b84a84d251d752a1fc708ff783834bb6895f0a10f8bc1d21afc433611eb9af297db0a9513f6071937764932217c88ae11ece94840b364e49729421f33098b07724056941398c454a29fa5a8740f55817a4e6e5a302663ebad286ac00214003bd67d072928be7d9b9ec1bae653621dd2e1f117470c8f3ff3c26dc32944292fdd073573ab4e287d7cf63e61f34e3c88343ab9ad06b3a8961c0f71de0fc76eae47b58344a43a9b467e03c24a1d660ca569bbab6ef70fa402e9435595c07a39e7bb69f93f7fa609c0541d5a7c9c1e932f3c0360133ca60236ef7a7119c0161fc045089e1ca27aa7a7ce08f48c482d7821a9a128a1abfc63c4f14b516b741590606767d77ed641724b8b7199d4c36fa16c57d404e08b61c2145f20a7232fe75cab35a421b4cc86887b965c1f500f3c37928f133187d1b30b0d14cc0496d87d8dffb298b2c016", + "b04a7fa87ad0441abf4a41bf9c1f4e27529cec81774bf89f746567738f2d61638c671ef459f83146735a8deaf94692f7153a88d574cecd314f5562e0323b711c08fff3e0390ab46d8a2c4413d796c6456b608ce3d5886e3ba9713ddeee996ae22ca979b747344639b7ec88a4614c3338bde235b7d466c0791ef56ffa5a81fcc11345b5af06cc1bc4a83c41cbed0f6fc82366fdd8deebdd14351e6bffc9ad83cd1caf3b30a74a32ae678dccaf3962465d658d79d838907182dfa55c098ca5211c3d41fc92d28a9b1d44793f4c69b1191d7e477400614aa9ed2191f1b3d68b3274fb578f825a9b883c7debc0035c9143bba1dc79d45949345619ed7dba6e165e998bb579ebebe1118d73ac173bd3c7b389b5d68211595c6848a1e9fb4e37d6221ed289f734", + "1c4023d4d23ac9a42d897b4213d2aecc144cba6a3179757c1c5d79d00b4283dcc0d10c9edfa6c004dd4b3fe308da684f930479bc1c5259c1ab1a7abc99ec1f6956ce90cbd2f5952b2cf16bfa", + "6af942ad6aa0bf896844604581f3e9eaf5d83301fd2ef05400a3ca251b9a6c31421eb6f3143065a113560a56b6ed6715583c905d7e9be6e8aecd51cc31c77a3e394f7c04ecf04bd3816fe81df89537a772ad7c368dea9fc39e4bb0cff123271c5ae2ea8af34e0e70a3663fce1354609f3007d0698b5473727c7a781892177f88c3806d8d81e7791dcb101638b498fc12b7596edbb5c191af3f3ac47a3568a8caa935c274ac7fb858d37f43a09c7f881700960a190e02f7b85a62ed1ad1a264bbac52866b280030727a6c1683f8069056abfe87beb862970cadf0c265953c00dc44a565955a76b6bde3aece00104e6c0186dbbc9afc6cfb22288a5e77225c96cd74ff8086b181d0056b217c282c13308bd0e5d4a288cb8830f5eb7fe62428177eabb09b4e" + }, + { /* i=7645 cDividendBits=1300 cDivisorBits=693 */ + "02d3a18123d0c1f426e50c092027e4fd1d1ff6b271d4683c590f88943f0efdad09b79412dbbcebd7aa262f86e09d0c8ea1511b988bef05881d8513ace45a4f3f22e3a22238f5968796cd6059789556680e80bca5e0ef29927ad13b8858fb646b66a6e8f64a1c49afe2873f1cb41505f463f4d43a05ba4bfc4c23d9136e77dccc55034374fc7f029563c91e189f46cbddba174ee26dce473cbc670c7f3ef30b1a497f3b", + "14e868e9edbf32dbdde98021d48c54bd23f5a341214e8451c1f3a36a07653d7f4aface9d1f61c7dbd136e289a90ce9babaa3f3a64bdae04b97b46a07e8bcfdb6e39198753476daf3685a26ef53ab4a15645c3b65f1ed68", + "229c48cd62d8df4cdf7b6c6af221ba9c2d849ec2c7167620da7cf48ed031efb619e0f7b17da85ceeb15a70db53e7090dbc5ee55efee7183364162ec2c483d36092e584ca9728356e3df63b07", + "0b18a01388baeb2debc7e60615b3a0f4b389f65dfb25fe780b731b84fd24b3bc6c66267ff481bd15b662f2fbb412cacef45f6835f9a2ee0c8475c90e921aa8e5a4134e4fe7ce8ae71ca840e0b6aa26ab859630a5050963" + }, + { /* i=7646 cDividendBits=415 cDivisorBits=254 */ + "1ff823c42757df7af3a123269dd618930afc162f495fec209967e38f7408ae8231c5f85139999af0b009a9beccb74c07996abaeb", + "08ead926864a5001c7c9ac9b79bdac5cf2b7a21eb22b016ecf816b57724b0948", + "0395c641a011316f1b121c970947c698b0aa408c29", + "07d31c31674eab05be63faa7d9871cd37aaf42af8ed64ac29bbdc0192052de63" + }, + { /* i=7647 cDividendBits=2351 cDivisorBits=1573 */ + "6531e08f911fc6b28922c27e486b0baa6e5c0c6e31f32daa22adf0b6e881bc41c04ba937e8efaf0d857d8db94b0048a630a2543880e099a5765e889227a44f36c5efcd62e31a00d1f3b56e4b44b8909716364f2a3e49b54071da303b24ff2f2ee3be2e4d53dc4dfa5e9116d35548871ddf68773ee1f71cbc660000a8ec342fe3c7d3eca8605ff91e01b9fb5336899c33bc5247069590cca69f32ec7aa14d7e3f6e8389424ad8e880788a4a5d5aeb282b6409698b92042b02d932e8ecca36abfe75acbb780718936b23a44dda0adedf1a90bba8a462234d007f77dca2609c20aa39df778b6b3251d9940da44f68cbfef73af86d6e2a3af189f682023c7f7c8f6783f5b736a26a35853e193a58f2d91d00383c9a513f2b81a9262c8f2b5b4f8169ec6f5a21d5bf", + "16f1d0063577d132c4dc35eab980a2850abdda2717c4fc0fc672fd5eeb2f5de3ecee2d6138732fa43d59f560f2cfcdad5c77cf8ace9ac86615fbd4d9de19bc2fd8c3dedcc0bc17ee795642c7620fe688c26461598150e8f393a33994f0f68aba4fe0ad760d394b46c651eaa56cb6c1556b91b37b8bbc75544ab627980736c318dd4ebf14326b9650c4b53a5dd0bd707b9b4a868fc0cd22ec08ea717bcfb81f707f336cf3987f43944eee59f49ec44434a0152f4f57a4652f5211b0e639068f89284a7f76a1", + "04691021c8f7b6e1de60bf7ba144a12edc1810d1b34af89ae3d0805ffb880a739ec1b7b275fd97ee911025e987e0de4946511b8baf4b6b2d16f54e442b6d00b43f8c6cfb0444f905807dc1d55e5f878806d76ed2f32854e5cd8fcdc5f28e0851efe0", + "0aba11c38aab5a1b2c86aca753f1475860f014194c2572d0b8195463dbe0cd169e7b3c80d0945eae56656872c032d1cf43467009781ebb156911d26da3f9651f6ded339d2db5042ed29180b89ed2c2bf49e48f3d2ce4874e1a1f0a4eca472be5cfb139798b805b3df73deb4ea806cdf1c37276faad6a84263191feb739c7bfebd6fc52e0017618c054fbdb32b92a4ed69725728180983e881afc0954321eed083030ac97a527532dabfe791a5faadee4f2506b87822671b24b890c5acc12f4be4999e8b9df" + }, + { /* i=7648 cDividendBits=2502 cDivisorBits=359 */ + "3353bf1d6bb2c897c07063813572c94e40f00a7b2919bd0aa9305b5164d0daf3d60f8373ad324aba1ec7342e08fbe36ef4aa06ac8d4213ba9c57164635989cca0806ac63a54ab0cbfe0461270311c7a8598020fd94df35db8270b2caabfc087ab0621d53eb0869f467d79dc35ff4eb9e431e36bff69ae800f31bd65c3863d853effa107c8e3904349c5d07986b965e3f15164bd3ee62fa5434ea26efd70230d037d518f0ebcd12ff83ceb9ac94d980bdb130cdd8882761ef89cb8f800201118bba9482b81408f63db7c9f3c59da178900e693dd93257805342deecc2861edc8977f01506937131706a8ac386cf73e59810ce281fc60593ffb7d341273c5a6e3dc7883ea4f949f1a8974b68f258c7bcdc1f1695d0e7f9204b05f1561376aa96d9492a5505fec0a3378672d8aaba817b33ab90ec909bbc1c7638", + "284a2e8922d3c1f87628e6d4aa925f4a460366967c84b01bc6d68dbd101e75228facfec3ffe203fac6d8006ad1", + "0146218da4c1e70e2c46df126d9ac95a69716d65fc9af7929b6297d637d3ed776abae1bc1311788404812e94986792ec07a8c7e561551cb314aa8387dc084d1fe84850260e02f31fee765a960123f28660369880a45afdd8dead51932fcd29bc3a1e680241052a01b0de02b99e843dfa7148a78903c42ebdf71560da62a8c2624e3eaf268ffbba82154d75c4bce1db62f519f506fa00d3d0a0529cb07aa1f0651e08addee18ff38d220dd1967a09daa5241010e0b8f5683807bfe34e8c1bb1f4176278e875a7ec13cf0490dee0914c38462995025f8b66d583d3f9ff494f6c1219677d818f9c409ca8f21feed8920f100f86e99cfe61df3643d58b2c956cc39027f2f3fee41b43362106b48488", + "1884fcbe451afd260dbb40d4db1c251ad2154cf9895d60a5857e50cbebf215e6b418e2c7ce865811dbc3dbf330" + }, + { /* i=7649 cDividendBits=1439 cDivisorBits=764 */ + "2195633e4ab7a98ae5e9047f6ca84c277780bac0d08e7afbc116bb08f6f439bc4ffa37c2d4261eecf8e1c5bf4de27e697823a60ab13ecd01caa2d796170509eba11647aebcc64fbd3a858dced8c8b2a12d4b93eb61ac4413f546b728c08a224e80aee55a1cc71d70deed6b625b3f3bf28b46afbc94599fbc029f598ecd98583248ec4f47a419eb0bf7c9997e76254c1bfb1ae14880482e64bed97d7cc745c1c1eb57f5cf30650690f5634e174ae59277c6bf22bf", + "e869f74dbeafdba312fb6fe64198d04cd2f8177bf35b9cfb5a01a8552d5c4d56477a2388884b12c589d78f5abdd07cbeda7b3f0ef14d92aa9fafa0f45a69b7a58952c27ace86b0ba58a4efa7fee0d47f4ee86c890a1d72fdbfcf216d1b7726", + "24fde06b19c2acffaf4bb17a7826a6b0ac96efa9e1ffadbf9db7a6cc291ec60cfe815643ab3c61043f59acd5681dc1fdfb161a55e8da5aad69afe2ef0fc889881c495722188d7c540b4b915bcf2392a0a5f2b03c33", + "c216f4a67dfd7caf5225e78247a55cf3cf50db9562e38843c89ffdddee621abea4ab654c03a2e841ccdbde0045878cab25663645d38f2e3979ec88b551c6ff41854a0a4f67ca35adc98973f1c0670af588eab49a647d9f262cf43ac4397e2d" + }, + { /* i=7650 cDividendBits=2649 cDivisorBits=1805 */ + "01a547acb6945ccf2caf411d03d6e698173837248d3c98cc0414fcbef95795fe5caa3817a11f0b00a96077e56d16d624d1f220fe8ab1cd26f1c8a0168779aa346cae5349941db43c1d763af9bc7495d6ec85904d21dcdd16d43b0a931f5fd97570e85f68c0d5a3994721d819d6f40894ce55732f5483a6e229ad470013f1e5fcda6aa302e15fea52bb87c19c01ed3a6146452c82c03727680bd4158513170c4fd5b6e66fbb784f0c0699f52cb12bc634c427a530d86bbac45bfcceb38a3ca98367dcbbf3f5f8e0f3dd4f56816f61460498a4b335f6022e92087833aa30dbb1bb8709c0fde3f51c405a919ad5c2c9ad089f5084a4c059871872462e17c4bc626269e4c8c753a6d88b4c4093f2c5568b584f35c33b5623b36fbc6554f5d6b6668ea61b11bcfb2b47e71ce7827cad5f83dd4480f71ef6ae472aa5198e8fecb0563212fe0ffef0007c89000470b3", + "1b9d0096db7950b9af511fa9f0929faf01bca742a993024dfe8dbac75b3bc5bf48a253bb2a8e80eec2814a782c4a9646125a9afd3e2efe8ce77ad84a7076e308f5d1bf7680a4f89496b907719ef552dc8f1eee78254722a6e5d0f609e54902c02dd488867877c7dee71faa28a8eaf685b75ad73991f3f87b9cf69747a4535b832a407989248d3991ed511eb06a9ca7f92570ab49eb3e5962f9aed7d7f9349c554f67ab24c4445db362a605c0c4cffe5eec4515b86337d8450de7bda978c8c6962ce53f54429ec7d452fb6e316ee5c6ccdfda27a27f117142329cc81bd7303b9be1e3", + "0f41a4cd4d144e25c0372ecf11aba4964362445ad40cf4b01ab0cd4f838743269ddc5b00a30d6aeed8cade8f13d7e4715a07163795eec1738f70be1c2ee0556aab65e10095056895049a7db131210c63634d3722b433dfd2b39603e67e013a053a55b4a34b5d244f9c73", + "15834f10ec242a4e00311adf337c225cf42f14e9ce694be5e3b22b18b3f6cc3ce3b95f3ca5bd5b55c6cca024b5041d6369efb8c9f7474f3bc6372fc4cd31500b3cba20fbc6a9e254bb36386404e8155eb90be0e628c0e218c9b2cc2c2f053ec1a1ce93d9695590897383dac62be76f98e8c356026d6b1e0b1c67947e1855766b67678fda84f603408a8ced63c246d5d575a7f7fb9492abfd63a27c112a97785ebd666c996b478f10188d7cdb41958e84a58d92934c7e7c8c413bccdc0535366bb7da835e3c3f6997b94164d69ec61b5e7737fd5e978e75bdd35621c18c359a4aa3ba" + }, + { /* i=7651 cDividendBits=450 cDivisorBits=239 */ + "03d354a3c807de9aceaf46e2b914b5cf30edd40f0eb174e3c26e81e630e3ab3296bfaa90041f3615640b6c90b22897f28cf9201e0b2ecdfc10", + "0dbef6de0853e470e1f25a934a16cdbead40180c62c43bb7acfed4e92888", + "473eb8cfceb4fb319970a47cc9417006be1612b45600ed1d994423", + "0455b8b54e70008e6d76ab37c26aa4f19f3b7773aa2e691997cd82e15178" + }, + { /* i=7652 cDividendBits=150 cDivisorBits=106 */ + "3ebcf647ccf35083c9a694e6181ef03a436b51", + "033f055eaf4a3a1e87787245c006", + "1353a80c306e", + "02606aa9caec95127e871c01c8bd" + }, + { /* i=7653 cDividendBits=2063 cDivisorBits=235 */ + "1a42ad507c1205977deb206f41609a51cf36cbe08030bb4b1c2ff46ede185976115a32ca2bb9fb0e12d2a112b0bc5a19c4dd2e213ebeaed9917e932477443df22697f0623f9ae95bfaa2673e832ef3526db358b2b3024044444df93c8a759bdea8e807088f778d2da18b4ac2d64b1430b0ea59b77924b19d7dca37e4f21d41dcfa418af51ba59d1dff3557705219f172882719d1c58db6dd3964e9ab0cf8d7d7fff07791ebf25d7be0ebe90fc6b542b9a97d452cd12c5e710d1deb091946156cb785c09bd012c2d2c384c13c9fec518949cde54db0566e36288b86c19c711271837d391b5cd3877672f00df59476110496456311b8082271672d849f7b16114c61a4", + "536964b102671570deded84951dc7088ee81a82029eacb31d40993ca6e", + "5098a9a212948a574d8d7e1a0aa3e2b202d6f06f035a9a78bffe2415823bcb57faeda59c0e63c9eeb005035526868478d03baf4688f65aca2f7e7313a0377f53f256bc87325859cf6c99201b555ad25afb47834854bbfe231c3f37b297d9aed576b33aa78ec611b5de58e43e96cd0c6c936068ab11b7cbb7a8fcf95d67cd5058b6283fa9a07d07ee7ec973370e6fce908630ffbd02bd948e837fd829a3fbcda13b4965f76a920e3efa2f341663fb7b3c9660b3aa4186664273a93c8f06d905ef33d18bacc93e8a9b8645b6f8d299b7700c25d697b93b72fa3bfdb41899b72aac42ccce1c1a", + "0e6da8fd64c6a03df7096104a2d259a93edddedf3ac61fa7e861a1ca78" + }, + { /* i=7654 cDividendBits=3005 cDivisorBits=365 */ + "18178f79a72c12697660c1252e9e27f4758c2616857da2707fb7a8276799cdd7df4e39dd29828d3c4716e42e4c643212dffea88e23a74d5cf409cc629d0eb891982bcf46dc271f491d7974c98200841835bdc8565082d7b1ffb1889cef7d22c751455f07c9ab2b672abcb1fed811f3cff617a9dda4adeb81d41c3250876d547d32b9ce73d7d823e3d45c185b093f70a42f6e4f623c2a0d1e1febf3a812cf9b57d439242b5c15d64b773927f703594e20f0cd5cb11e1ad7daa794edfa433370121d529919ca6113754e89157154f7ec03d60d05c01f21123104d7a03cee50e294375ccb01021d70331599c329ccd476568107369eb74089bc993b2c34eaf8c39bf754b228b60ec49914592c85f7bde88a00e9c85baaa3db2caa18f59de0930ab03d04bf6ad02a96e425ccd4b21113c4ad5aa1849f102102fa8804b6b4cd37561ecd2113c0be2206e78b5c3d01d3b6d1fe9a73144daf3fe1bca18beed2351f6be6f31d2e6d3fee35f277d74d0ac247a78e63ad481db5e3d892", + "0c6bba393277bdac104be10dfa952b0bd71ea6ffb1329762fd0169615766ce8a3f0cfadf4ac4805c5fe7c8aec7f9", + "01f08cf2410ed2db96a2b662d4b769a6b9e2caf4c182bc054261871c977a306fcd146c782eca8c7edd4216b243816bb51702a44d45c02d39609fa9d305e4370731093dd24c98886179643fa3769d961baa9552ac40a7245feb594f63ea0dba39db3d3bd80e42f04ccedfbd3d9e1bd694de0225d55499ac1d1c22e2443c6fa7b58ed9b7fd5e6627b618c986c06696c3824fc065211ab3fdd2488dd685b96be594d17d8e4c0f3881672c6f0753e9b88c8d5ca02f9c1031887de49690051528bf83bd4bba3a522c99bad1e9b8c3323af558e529b6fcb09ffc613b1df3c2ef1b021bd3c44727d1f88e12d9dcf7e8727295e8a959b714b5a97e23b988d8a12f759c2bdc42ff487db5c8658912f4eaa0a3b9c8717ca20dec57060c0dbfc0cbd1abcede30342aba36a55537ea67db5438776904efa796105fcacff1affa8c3665ebf1886c1a888c88cab05e6d095b", + "06d2c12bf15106d39c9ff7d446a9033a0b0ad981d7da052c2d80ee9651a7c62ea047e4340c7347db75a2a7b6020f" + }, + { /* i=7655 cDividendBits=515 cDivisorBits=241 */ + "01ce1a769e45a99b72774ad6bf3c82f516f736bd13f7ad7926252c46b7741478ae01ca27cb069302933a97f63a7dda369b4f6872e8a8830a0a5a6adbe2ccc88461", + "012b414d676dc8d74e49da572661b757ff483596bc133bec21db55fb9b2a80", + "018b4f4de043855f6db43c30bed91e9051927762db4bf1e611b347a2aa479421f1416b", + "010e7e90b78eda1d37de7b11dbf1f22baaf7870131e9f7c6b46a82baa340e1" + }, + { /* i=7656 cDividendBits=4049 cDivisorBits=1922 */ + "26a277a944e3cbe69bc9b49c3b21ea975bfb4501af298aa91b2c703024324177f44371e7af9c032df00e46eddfac08271574e64395902ba50589002161571bc23078efc536ce7e5b677a7ea1ed8aad561f07ee65f5c9280edb229607cd586076047c805b78e04245e56fb987bb513e715148a06558e4470af4943342aa424c3936e61178763f99252f9ff79ab62aa9571c7282123982e8c6d531d23bfb911c6f72a60dbab3480e692084675589314b58352068ae5ad2611c6e6e477b54e2742871200fee01125532d0162576c657343de408b450f823c3e5c66b2bd177fff7b37f5aaedb851919c9bdfa6adc4a3007ea86c8ac788a14933f2c5689754903a9deba8b7919db6d5cbec3972f0f0256a22a6a235926a37147cb5cdf9787b3cdd6fc2f57ebd2cdc1d89aad4ca3343a97d98c6dc96650713fa63b2d6534e702b8c78f0c04493fb52d982b002293d44a4e54f0958b82ea97753fa7a003452b99d29b2d729c717ef8724a6673199cf0ce052e5b2de0c06e9fc2bac502c8ba924bfb603b70dda1560502972731fa47358c8b6baa2c15e4f06673bdfa6e07cf1c7d2e1e39bc67d145035342017b4a821b3bf3438aba019111dcad82c58065ef683984e3eb0366838687eaf363f6c79edf53ba1fe108fab73ab2db7ebb9c46940f83c57efe00c1921d07fc3cec897691c77ec0d47991e4b62decc42188103c", + "01d9196380e611f516e61432e99dd842471a5ca09ecf18f15e0c0c89a0e1bd4e9aa4732457449ec2b96d618827ad5524391a1c1fcdbfedb12cc1602216a3ae762d37452334d2a26282012b7676b6eaf291702582d5d453decad5fb18f0af9e3f5de7187b54f0f6efbb6cf7645da1c014abf60548622103a95cc3f617acf959db448ee43844fc84bfdcc4d23eddf4fe3156807633f8642a986490e12abdc27b0f58268de859303fce5aeebfe6c8dbcdb8802fc765b115e854e030e0dfdb72e5c6022dd9c063a035658c954dc2b0b1c996db22690e2f96e4cd8c0bc7185e35d5ebec47a9c9ebed295d9b2fcb1759f6d725bf", + "14e7dbae12852bcb680cd0dc6877c6b7c8fcee3845c0b71ba3bc892391e4d128d31f3b7900f6380f91d9dea731edf6afcb1cfdfb0c320ce05c98c70ec157c69c77fd86ef3c7d94ce325f7e4a2dc781141f9d7053f9228b7b92e1b20f7afb05ce7e535a2423cb9406884c88a311ce2a915d4dc8379e58042cb2b08b6203218dc85943ffc5c43832595c87a6b52453e7b37fa42f68c50e5b4ebeb17adeeca60251bf61e548948fd375ce43291a5785d658546d66a942338d3f82f02aba4f0fe163e4703944e83d07c62be19924d38f87b8da7a62fee4cf7d6db7b8c724ab155c8ccb55f51c663230670c910f4cd01f066ee5fe5dab0d5cf5d13bd7e5a18f2d4cbb8ed021763495163a0885", + "b88c2dc574b481403e12d06c9ad29baaaa4feadeb4ac2cc0c150498206b640e3b9b2c2d7695080aa495f348e9db1783f3f5331e3d39a1b1e236f7f7f9ebae258a8ad516a30408021e11b72113079fa041192df54ba0db428162f6c8aa8d2432a952b19d9b506c8278f615cae0299347add83a79bfcae92c195871488b096fba434197087a7f448facd07e8b66681ff071878aa90d914d73b27f5cbb51d189896f53a94ec5a2c89b8bb4fa4e446be9186e682d64946e833e33561e27d897bd5a3ad5b70ca2a82c83cf3173b1d60355a490881704fd61156f2da4f448d8c088bf601a855bf2d4ad1081f69cd28334d7c01" + }, + { /* i=7657 cDividendBits=1626 cDivisorBits=1026 */ + "0191a52ef4499d4a65fd49fafcadaae69c752c336398dac3592c47f56dd7bca1eaa1ff0f4ee8774f58ed3e6721d4e01813a4bef362c20b503b78752f8ae0ba4a02fb0d2b72c3325259a51fec3fd667ba5f811a1a016ea0bbd477473d9e4c0209c0955e800ff6cae94b06ee8eba3f2496a10946cc39dac49184fab3e5bbe171956d9e605bab16ed4f76928fb6fd1e8dc7c9a649ea5e1674ddc28c26cf8d9e070590c98952107a9109c6807d4c64fee35311b53cc6327f07679b3b798dcffe292044952be03e99717533a35b4e", + "0160c75524fcf31ebfb0996697733c2fcc56b9ad4ead87375d3ec393e107519b8c6d697f10d18a17b88e5b2345ce00db7ee11c6deea8298021f340456d8dde692fb6bd7b197e040796d14af536ea514e98b45b01313effe46cd280585bcb4b08b9049c5e64818cb84fb3c788073b65c0a96eae904e0359372dd20150fec682587e", + "012375fe08624e1fd68f87693436ee2803b0f77fb75d2fec9564dc749e3622aab8cf395a52ba1165a3dbe9c234ec325f5af188c2029f989aa934b2d81393fae7de359807b82b96ef57d1769d", + "e5e3a8b89e7640dcce97251b0081e266cde06f30b9f1842699a921d1c98ec3f0aa9236b25908e6b0a7a1f8fdea91a38b1cc5ef1bc0ad0fda28478c9bcf99df17f08804ea8c15776caa9ce1f7920dbddef1861895373711835b52f8c17d759b527c27086089022f7b4e358aa5c7d441b2bbed8ca2824e2743024a8796500b0208" + }, + { /* i=7658 cDividendBits=720 cDivisorBits=17 */ + "ab046ee9fc5d08515849221a6878628f1b44d076385413e78e082b0e1f3aa9dfed3f1ad304490a348f97feb6bcae0752d45432bb0092ec87656dd88f7de59ec9c95cd3bf4b2e377db0d3ad10d3def9b932feaa06f9383feffe68", + "b8bc", + "ecfdc38e6ef9c992868345266fa4b9dcae3351c5cc9e58838d1c939320415ba7d0b4a4675995388440a7abeff582691e195b3cd6b61d78e241c4ef3765dcf5983f61c84318e9a1474e8de55f242d171c24a110579d0c681b", + "2294" + }, + { /* i=7659 cDividendBits=1299 cDivisorBits=795 */ + "05859cbdba04d4ef4f5a87e723dd72fea28f628987c06554a70104f22367f36a6c6a6f5ecf8159bfccc9b08dcb69c42b9a496f5445183fcce531334ec22fe1fdc887679eaf80adeae7be2281fd1c0481512dccdabd7f86c7cb0dd436b2d85807dbb5228b04a39582b68edf4f5eca0caac6447981b503fa4e0868876150ab0e98c2a4dea5b2a1637e0a50c0999f14cb5d2cb1cecdb4ce4c837d72cd50d646fd9a32ba15", + "0240fd42aa72151881fd5f1b62f685230e1013a5b407e6b24bcb564d489b19522df774bb7299d221342830d77a57cffd77c6826f0e414695beccd46636f108a71052f6a8f0509979752ce6a337309927f3cc40ea97e8405cc9af8872ca08a8524d4918cf", + "027331e47be4d2c3f09a2cc0afaebecdf439ac735de411e53ac582b825673e6fe671913c9ca82c4e156b4d96e39759c4cb26af605ba82cc396da58f61545481c", + "023bf90a750ca5987dc3aa9bbaadcc3480073024e8965ac2cd924cdda1703547a3406c1bc93c5c03ad5dde23305ee3f1ec7a3f6a40e38a56a30069f89ff690a7e2bb4a23abb4204eed8860eac928421aae962c3f6ed558c7eb10eb2bdafbe599ec6ecb71" + }, + { /* i=7660 cDividendBits=1840 cDivisorBits=1091 */ + "d3803fc68f717cce6a16a393b672e904fe5a3f57feb8fd7359d3a4d77f11e50fddfd7ce62c8311ac3b43b6774a737283d2525848e1d7658e19ecdff8ef05a2e94e3d4cb04bd7ff70c58ca5860d4dee2a427250051402cba1c17b88faae694128e4f17492c5201ab085a24b1ab5045d3236d0e8f07e19fc41c0ab5240698016e51ece713918896c6f8afc89a47cdfa36076978750efcf5e135d01f990543bd958b40b61cf246f2b83632486649deb4d1d606839723ca9bcc551b24749d422fb6a721f221f7aca0c71c708bc558a47586930a8d9d400cc5f945f8e440173c70c596fdad3cd6ca3", + "06dcfe58693aa5810621da4f45d1093cb7d71c69d0bf588a0362e0bd1e45aab77c4bbfea2c0c8b46859730d2c810c8c7b99a22c5c1c0e8c847082b7ded4700ff1dc65929bc281845c4b9398f24c93fdbfe495c8ad92208f6ce32e44ebe10f4dc574a2f7f209a5c639059efdf12c0f2c78691a6ef01a2d0c1c5d315a0e8ece7fafbd590aa846d0a2e8c", + "1ed100d710c365d603c250d97d255ef12f5603b174b7e7511e277a27afb96ed3d9ba04b54b423ad998bcc5daa8279f6df77b274d698eda7c6514ea02f90824167d9da78dfc9495215b3972a25ad311cd5cb91555f53c96c870239f449304", + "06a83a30748b1dd304ff634242825a9d843060bc9a73a7cd3510500763d081dac2c8782539de3461a10c7770a01314be89d70f0845765367773a5d651b11d813ca6d7ffde2fd9ecc1dd656850c83a5b39c0ad4b00838d968407b35c3ff5876029833fa9778c932feb851a5f5461b87734bb28766192357f512b6394dd0bc940c065724d46af5ba4e73" + }, + { /* i=7661 cDividendBits=4042 cDivisorBits=3119 */ + "030f1a3cf69502ec6d7a263468eb8a71aa61f7b64bb78a0b4cbbd76c4e8a320ea59e22f57ccf6521075402d2f9966fdd9cd1bfed85eb49323dc5c933db592f208e870900f5cfce3ce49a5464bd1d84c4b34e2eb68f18cbef425ff85d98d001e102db1905f98f1e4073ae4c5306eee39241bad81028b36b518d6501c5aea8fb0b50480c2ae6ee9c88d7fd47b6d1dcd84188b2a64abbc94d209082932c5bc4f12e808be21c98d07795c7e3e03c72c66b2030a420a739dadb7f9f48ddb2727ce43a3429f69e4d72349cfcb7571926863f36d088150addf67b3ced3d0b41779460090085516493876c7fd3b7471865427a77383fe5519db5fdcad98745f40870813c9804ae0e78d4f59bb419b9ba8779050dcb000440181b96311e9e602c74899c8ea616f09f7b60cf436e5df2233de4cd814d2160b4d4135992d0ab61500bd1bccf17fb7f0dd4c22fcb955e2665a9dbb79411168bc3b35aecf7d77b3759725fc6959b971e0120c07d845212d7d88cd0529f74faaf91859fe8059c921654eb4d6aa3a74494cb08eede411f6bc474fcd6eab2dae654ab14cd70357e90ad27706e0b7f08751a2fb009cde62a0304a96c9c6885205b551cd7b705ef07a69c5795508b6bc8d5228245ab4b80399a5740c263b0eef91af192d9e886fbd5710e443a01e60988e4889d7d581140e97952e9434eef62d8c4c543d990b18cacb0", + "23af8ca120d746a663f5375603280b9c05faf1af525d207d9731ddea120ba575598f82ae93a4f51fd1f56a3ffc88a85a699664a7ce5e1b431867fb5fda6bac349d3b19e9e703568bf0600fb3d66d9c8a55701f388ac911ac85646887dae6a0ef1dbd58a56118512bda64abcce9293534d6566336dace2c437001d2739482d7afb2f867e71df1b42613f15468d9e45fd0431ba467e3f2691a0a3af345e1bc7fbb48924ba33047bd6e4a61cd0e8273e50c076a59b0bb2bbead4c9657b6f5588aa5addf6c48a771bf98afc016a58cedbebc9e4f8946580afae5a0c7346d9488c3623e21d22df2de5531a2047283e1bf64c94f76111a569c94726ac59a2f0b77517aae605953a0285c8eba1db98e67ece10b9f1b8951ba17252b7387aa228f47c208fc8d48ff00d0f0cd92dfd10479ecefeaad27c6c376c115f5b12ae608a3537eac25cc5d57b9a6b8e5fd79a07d85ee938d2c611da34a2acc5dd7e79fc2ddd3ecaed189b6cfbcdd16dc742afcdf5f2d1480f433bb5ccb736c8698c35bb9788560be7d6eb15e2964", + "15f1c4d6dcd4b63417a0a361881cca73c9cef9ba4c5ebbfd033fe6d2a97949993ed83b2ca6fa63bdda9d1a920e7dab0d2cf4ff9a1a122938f8b8d6666d5fb4af12d89700ff140c12e8fb2455061327baf902ae6fc651578612139a390bbf1341a1d1932cfb1be48d809dd6fc479e07883e158112", + "14727fbffabaa9c9c90399a30aa0998da5c179e6398883e13e47aff57ca1a5512f45cad594c646e8328f605e54c3523ed150a021829c2eb365d30e3cfbc8a617c50caa133c15acaed3287700c311d63434230f2e2a090ca6ed086d465d1e56d5a012ae5c925928af885069070875bd98c0ad1ce02afa99a2a0b156f62c3b61d85248a18c3212fb6c24ab74de178d87535e6696461dd845aa34edb3e9f7d16ef44de03dd98a42b1c8c0350ba7ce968593863b2dcfcee86555100229bfc43e8926a458e4f1a3319f43c64383ba43a44a8b841417da04eb1392e23a91c4a7fb8b5bc6bab9ea21dec7ac57ea9aefb3ef2a07aacb2f43842367179961dd6b4e190d2f856ecce1485b2432a14dacefb923138f373d67187b33724b1031a319b9753206250c8fdcffaf0f9e6a26d0dc85e926bbc3d27b687907b3988b39d3c7f73196bc9dcf4a74b9f6e1ed339ef16793c2097f6940d335e5122c19c65f9d95792c1413f0ee674e417feb055b5dbb7386a1c41ef7d3d178731a240ab3566c7c81f2ccc12c8828de5fa8" + }, + { /* i=7662 cDividendBits=1938 cDivisorBits=520 */ + "026e03d78db6303cb1fce7c0de34679891d7f448a4cfdafe7d882f5102ff15512b0f52e1d95c1854dec3e37b80cbe14ca23bb9424440b8a4e77abe4e7c3d3eb0d0cdc9f5421f483385721c6cade6404f0dd07a6d3649cb4a15143e24eec7678be972e8f162153871e122a288e5dc659dfd778ba742215bba9f961b06a4355c0032264e023652816b469dab149ab88e31c76c364f0498439c26fe8aa19c2a6e75b8324924786d6d98676b900e964e6633b3d1b5860bc0d31902da6bcba730f3055009aa98e44553c179c427203c4750cafe641458b4efa82a0944af5fe23de300ddd8dcb85e8dbedd7e8cc213d2f008d88a0cd4", + "da66c6d555fc1851cb65583d5ad7578a47415cec3e854b02afe8b5508286ef23f7d0586e970210cac8707ab26647a172fef75f406274af0b25812b303060effb19", + "02d918d04d6e07067bc22499d4df20bf2b6ee065ca10e576bf758d7cff52fdb7dc40aed76e7936b510455e5234e5b4f5d354f2c3f916863c8b99a9c80e871bdc954b20c93ad79aa52ec2fa60d7ff47cf0ec08ad0cbe4768e40cfc7b21b89df4890617fffd0029be511c2f14626002260479f749a32f59e666e672577ffb7d9bb72c4784244f2ee6f44429c5d3c936832535f4d0e38b2720da9b0f7009c1556aeb1a82ed59936f7e11bd2b6435de38994cfa5", + "599ac26ac143a1f355f161e9d7de6faa204531b659419708046835130fabc46e989bd8d9347d28c43986b4a2d9f26f845fe19702a8bb285970869e8e2fc65ffeb7" + }, + { /* i=7663 cDividendBits=3329 cDivisorBits=297 */ + "017235029ed7ef7dc745dc4bdd3a96aceab01d4d4ca0bce4bc1186d2791e599b9bb091649356bf2e94351b6eb668d36e9764496a5b94ccbf3b3a8bcccb4d8344c9fedce6d150daac9c0a89e09612d2799368327a0e0b4b566b35b794e34dd6385d6a3acaf5155539b1ea391425633ee1fb7c6eae9e64f639fd5d43972e040d3546f1c05932180c52525075a1999f96c1c0a33d682e0a32c3172c8f54578274893bbf4370dea588c98e2387265f56c27ac45ac7574bd016a4a5baf7b734fe621b0c7a8d9b3f41699a28759e376a64ef0badf57ad9d155cd08ab6f87d0e5534e12974e307bdff7e094976b8632d9f45549251a4cda58e841a500230563f3c2788dd3079e8778df4813806ea3ee2a4cfcc3e76465ec3566c99307921d74f39de36fb25906a4b9991f34fcedae96afc2df7b9cf780fc35a88baadc42ea1779b537acce719933f6a47b170172ddcb302f70522f743a3510abb56bb4a5e89de8a9ffbb3b6511b847507c091ab0c32d550029e022faca91d37380fc532ce5a2bbfad0a0647355c323e0da8b2c4abfdfbec8fa5f8169c1f421749dfcb09facd452550a89a3", + "0143363a5dc0b6707b6e588dc8d69ec3d84d7c9b58f5a119ef86b06889ad8b124cca5f287286", + "012538fbd654fd793c78db6b94a5fea608e29fd0ada0eca661667ca84e76bafbe3ad254e5ecaced86e20d206f44f9996c046afe8cd82133760d6a59b70383d841d60a427982239cb735c145d424ddc9eac3765948c9d3577dfcfb7f09bf25052822d6b2902d6f890f9dc328868e9ca01f390ca9cabf43e46120d162b1bbd9921bf30cb5ef405e9e567be9e4916acdc6543fa600de2e9284fa9d8403f9696c61c80aec842980d1471eea3233d8848cef540688dc1604b2739a15f8817ab073c85820e449348b5b53c5560131e4c30fd64c5488167703f73f87da4919f6baad04eb22be4a86eca4bdf5b43967e3467a60e1f527aa1ab1570b74406c8e2ac2a42c4e6255b31336b019ee8c23a00cf3f20853075e9c2f4f0f3ee96df10c2ecbf8925fbbe4181fa7eac11946ab5481e7e45caf4d17aaff0d3caf8a0b5388272e4373095bf2040bb78ada49a5b390ec8bf8c25a77b0dbaf5161c9fe1409d877d3f37b827f5fc50ab63990fd7f80ea3bdb0312e5b038d6f792bb2d678aaa505", + "1df9886effdfbba90647698e6b077e691010ebc7e053ff1248d08f0c2803e1d67a8a73ef05" + }, + { /* i=7664 cDividendBits=1296 cDivisorBits=838 */ + "74fe235bbf461d0a9e3d973df067c110023cca27de99a6c2563a17799b1734f14f532f03037c66d8bba3f26f32ec930196031e11e2e161214264a8fc05a87259a40ebc79ccb30347e155e07649af3ac592d82fffaf7a4b78f6378c8f5349429cc4287d57f828ed903c9bc10717173c14943a462fbc5dcb597a30dbd4fb6301ae43f5398eb2251439d937f971cae97cb6819567c98a72840bff05f9b1811f01114189", + "14df64182a2d0dd25dd7719afcc7bca7f97b526c01775a5d5f9b293bcdf8dd5d687323cbd5c52a51413dc438f7b4fe85232cb0c70fea92757fb485963fb342bc559c7434309ecab8bbcb382764658d643978166b1ffa08661787fd3a4aa1bb52386585580c352ffa63", + "059ae692d12f352dc779b27ee9c3ba437242c20cc6a8a394801779e8e1dc6dc15d994bb9500b0cea49368a742cfc7b9bd697fda668ca2885ebf3", + "8200deea8a79a3dcf960b441084e5215b77b974acaec683794944fbd27b72772dba871453faed4d6f4f23a0968ed7be4e3363144132ee61889596d316db981d22b15be8fe97d1949942a47888dfb9458c5dc298563128281346e1f486e95d110e4decd8aec3eb490" + }, + { /* i=7665 cDividendBits=2211 cDivisorBits=1824 */ + "bbc8afd514d717c9b07aa6c5d179fadca9b1cb8b694100cb6983edcb19f7375dea5d7ede547d0712cab8bdca71ac0f1ed7f638457e0dc07cd222bf67aaeda47c1947a5eec1d0eebc413284a312df24ec4f8c5965a8c27e1e0869d9f7b9f7af9bba5557ae51b4b47975b7555d47648e758f50d5f4c32fb4d38741bef2624e5bf0aee5a4ca450649ddf5b8e07668941ad925703654f1b30097bc3673b97f51c608aeb0172aa89767c26c38a5afabf9e63459ec733d23d74135ff34b0d5b6d8f860a2600f4fe084fb6b24253119f19201a60f33b68b3ec48b7eb29fffefba127ccc66625c85046b1fe50e53791fcb24edb70a4fefcda8c5116472a6bc131c32da91380fef43574dfd25d11b9df7aaaa40b0b8b42513", + "233d0288fc62cc70cfa7d24b3910521d87f742e0a98f610438ed2d711392b0560d8cf360ae666d980fba4dfc84b240aecdaf6d6cffd8f17bc0707b793504e5bee82572995195f57b0f0fde24e4839c3e0728d48c26fd913b529b82a19c2c0ec55439f50f9e50a50070cab9b856ff1a5201a29f59f160320eecf15378f0ee8ac8ab79c42926046eb013694bf490a770099f023b84f7bb1f50c0d878b95c0a26876d40abb28e9eb5c1d9475a9d0956bd9eeea5f1a1314ed06646d0783906476de7f2bc47e6b770506e3d920795fa80657b750b2a3f819234e04643d47078f624c9223b094b", + "05543758c1dfbf2813a7b70f97b17a9076cf54ce65a9634881008eaaa037320a06061ae6140122e0cc24ebf779565078d1", + "0a0bdf908056804c5d7a53ad3bbdec6edd35e8f20ae031658abdcc430d016dc68ce4651badf9f9c0284572340f788f8fba45c49e45dcd0991d8e574743cbd12a279ec794f694134b00cf781f27255576cef68f1b200efee7b38ab7879ded58d4c24d7eda49f105be464329994fc3cc22afabfb6ffbf6ce46b177db98811a7ebe71c15fe6c6a7593410cf7a5a3a43db286b55ce0cd37d57eff6656336569eaf33aaa909090b758e3eb2a0c3bd2c871692f175edfd9f9febb61d92d4c51704c7fe8a57a73034548425cc4329141893afbb6da3548bd16b2c964ef2c3ce4065a76b00b666d8" + }, + { /* i=7666 cDividendBits=1961 cDivisorBits=175 */ + "ba7cdb58d94df88a83dde83ce2e33c85f987170708ce2269458f0f2113a628a9e4929808ebb792612b6033ce1138f03c904962d74def62f9bcd99902123b6f4c2255758978fcad4f76d82ced8c1d46c17a4eefff279d3dbfbba966f11d6a7c608db1ac564c32f48e630c8a2922ada2dbd7e3907094c5570ed6f83b860aa9e8819f759266c0ac00b8a77c43c456cf585b6d14aa8a5d113d13dc1f6e1d5843fca07258870f90e7d86e8c1383fc46d73fa292cef91d29883ca254847a2af89340f2b40abccde72c4b15abb62d80a35036c2c2915fbd49989f1a8d7e9d496ce03fbefe371cf373c0da9108f0fa4cda1e16eb17b4e219f1", + "230cfb5584f0f622fe41a3a9528e76174a4c21d26d0a", + "05520d1258fc42095d38b7320f953d5e090e322eababbd9e83a05875d604400ef27db29e57a3c150a8cd29da7a7037050ebc6321f06dd074e7e4bfd9f2669a5928215f554afae185476a0ca14e22fbb9f584eaccfd949cd2100564b3921b33b4af91e368f11f64824451afc8f489da4aef619a8dfe5e0a139d0b1ab26a8c7dd5254ee1f99d61bd49deb77a99a6c96f59592c4c9f326f035bcf077fa45a17849e017c0312b2acdfae6f2a5468c12ac4af0e829da168c7b37d8f7332a9f0d2cb39f5104201f3fcb3e8cd79376c5540634d29cd3160cb4e3b717d21ec4897d0962a", + "1f077880ecb5dc4e1628c1fcf92a62efa2af5e585a4d" + }, + { /* i=7667 cDividendBits=329 cDivisorBits=309 */ + "a8f898a41a7acb31fa56359ea1e41036d90cc27a77f98f451a3586fd565de92c816f18a397f4c730eb", + "04ea3d87759ae99c4022ec9df48776af3367ab693f1c38632ca75f585ddb539fed7a951cff3810", + "2260ee", + "03ce7bde56d1ae620f70f15a2a7ffb1f53d742b6d0b78f0895e517e34cab3f6a8ae831d85b120b" + }, + { /* i=7668 cDividendBits=1133 cDivisorBits=437 */ + "072e64ddcc42d17d89d1d2a1c7e51a10cf50ddf9e9cb3bc6147fc0450b6c73cfea879488d38c6b508d13e1048f920bc14a097e0af5aa8419a206357545ff0356045c3e277c2ef8078d2c01341dd90c11a99aa562ea0eef13439e7fdbd040aa3ae3c2acff888f4ee633712df3e4a6afbf76219426f5820c3c8055818250dabfa77f59313c3c18bc5403c59148e214", + "0772fdea7c6856a578bb91a8c8c68853040a5d86d983bda923560c87c43ad23d0d516c15d9251174aa120f0473cc6fa747890f0b764492", + "f6ca8e0b63cc4451a82a4b4787d7380e347e2c9a2ed92fe27c792a42c776b7034e93da7899be1948864294ace0d76456b4d04eacb7397026a967b83a9846f07f4d147068246bd71a014d0c0fbc609a84cc8953a4e5953a", + "3895f7ff2d2e5dfea2343db530cb449dc8a0a32dbe93df5d1b322602778c32fa60f3a4e0cab27742b657bb73dd340729d2a243fa5f00" + }, + { /* i=7669 cDividendBits=2693 cDivisorBits=66 */ + "184389645cb7f269209464409b7f9bd2d70f4f49b8cc902581855e3e65f354eb6839fb8ffc6204ae0709febf28d0031a8c28dc5c311f130ded35568259010cd2f08c8055115c978cc1aadd0745def595aa3ea8d06b005458e019ec90da7cc4976eeffef4f2700c75a47b23d978a6ba8b52667477d4e5f63374574c01c4ac7240e2b221970174b1b34408c3a8481ba3c44d46d814c83bdc3397a90e2e0763eb580a7a5bbf5ab1b42f12463b800402eba2202d98ba48d35d7f4d8e429d3ba281399695abb1fc1bf57519cd25ddbb27c2963c25ce845a36726325acf741e2af9b713a7fb8563ab2133bf45c39beea906415ebb1d67337438ebc19f1202000c4c49c878efe822b43a46116dffdbdf204a7422f1b69db1158f16f8ac6699e75d277c0b37e40c86896d26783b9cca3f668b1703760ff857636e81615e4a4507ddd1f3acdf5196ade6c8850396a160ef7e79657a6", + "0271f6482de224a26b", + "09ec55ceb54e6a4527036e880f1a80d5b9ef3b3f767e9038f278b393e75ef88f9d7b19afe7899a502a6beadd526ba62d53b134dd8c003dda2f09b5c41360c1cc3d091248a2ab89f2a6dac5d7eaa5f46bd3fe4a26639e22e3f3425d76afec73e841d3836c2ccedf755afecf99ddf7181ed9ef764db619ab83b46240b40566727cba96833e09ce6145dd26d6265b78723c0acea6620a5b804e70da639552165dac141a880cba5a74c9f7caac3a9d2f66baa363899f810a696040200d1ff51cd6a71bd8153a5f10ec2d60a156eed81c567150578314f9337729f6b54ab44fd703ebb1dbbba8412abf20f8e1d8eec3123cb1be8715e22c27a38cf8635b2aed4223510cdd0604adddae2c11b596facf3953b3e973ff41cb6a1971ad9ff5f58e7ae6c4adbd847997da381067e3672fc89e2b65e2a0dc4a04756317d949f36280891f3cf572db84354b5e2c5c", + "01e234aa6c5a379532" + }, + { /* i=7670 cDividendBits=1599 cDivisorBits=786 */ + "7fc3878b4c97fe7661684af42d620bf2b23c115c3c8ffd2107fdbaa18cc9a0889bd900fce921a33345097db99b67a29fdf3df13bc63824afcbce9a60d8ee77346eb1b05529e447086d65e48d94ddbd44c147d6e073a2b68286b88bf463777f6863ab57fdc7fb82a995a3da686eddc40b530b4bf069a14a2b92a89151c2c953403a0768aa46d86322c504efb0e3d971a661b8d591423c83bad22e2bf5a68017732e04e928ef02cece12f2d64f7614e65120e0be2a670ee86a2d600357aec1f78a5fea351ba9ccc744", + "bae0989745bfd50874c973c11b4db4c48f886fe91baa26b417283717007f3b2015dc394979b1c67abecfba8edc29b1e826f832d48c055e09b6ed190926ebbb62ba1dd37f7656b0d656c8e1762d4cb54c5b16c02db4e760780bc3bac6989f1faedf15", + "af0579b5db3c3da152acfc05ea2936968059054333ea67a1bfad6b81bd6f067a7efa709927f0e360a2f45d36735f72d33da26ecc5177b20178be416cbd406100b509dad75abecb142e13e18e180d3339c59402a38dbbbbf18175e536bafb1c6794470bda102f", + "1815a77e2532c05bec75e03c9a8985a20788f0d890c87e01e84edd6965211edd196e16157fc20a4374d11d1c953336a032730a5839c058159cd1bf94ee9bdc3b9bf85a572cbc521c58518a404f80989a735dd79bd72aa782cf75ee21bc970bde8269" + }, + { /* i=7671 cDividendBits=3229 cDivisorBits=682 */ + "1a2ac042e7c69632fa6d437e17b42f7ed15915af2431064518696d3aa569235fc8b02d74dfd53ca51e60aa0c3d1ca2cd9b4105da4b78acc47764756fbae6833011342dea98f908de29c5367ec46354b8a68aad32f765e774edc1c09800aeed8b54fe4a20ead3759ac716d7ddcb9b1b3fce9844a8a3a943fff029c1527a9252f0ef39b6413fc783d58f6cc1f4cc4196e832f99d1bb914c222293eeebb233c8569509a117b6703158ea8ff6a4c069856ad6962ce2f3756f5703d2c2bfa031d8f7fd13bb84533e64f1a5f11629780d89813231b68e9baf157d83a37e437f9d621ef68019ef65f18dede1193cd2430ae0c329d0ace3b538508c43a754c2a629893744ae609885aee3c77a513732e60866527081ab7a3a032784e750b9a580e37857e1964943ba0c38b80099290c74a6fc814d8f30acd9a0bdf1556dbb4be31c163fadd725c6ea1ba963154112a6b73da64465b526fb00525f829b48d3025356650114d3250431c5dd03da715257f3e31d128db5c3f3d89df6e60d5638f08ee644041b0acba67d1c3845bb5f3d02db85a63d66844f4a1", + "032f6b9e64c74cde7339d981b4cdc44f6fb4863f999d485b835c94e667e4d4df07e315b5bbcb9d6f0c7d0d6e4cba66384d3bd3f2add500fb863ac2b40c73fc299cc0246ea300d5fe93b5b1657a16b875ee6458c81367", + "0837101235818d0405d60a4c44c0a7aa1fbec147777050b9e5e2cab96237e887111211362d45b8f9cf6545f8ec48498479a86a2a0baf7ae087333596d1b2049cd4dde49596fb9f7e1adc68a27fd187d679803874ca1a9a91a55ca39f8a1f274547a50c485aaea866f4d9470f6023d78ac244b3a108e378f0d48adeac3b4f29accf64c0062d1c85a40b54b7dbfd355d66ca197a1c9eeb08feeb015b4605141b31c5bcaf0e45c95e9212db899b64ae426fca26594fc2805de502c374aff04baa539838daedcc28a60351b89254f919f2fa2c2402e2493a563ea532cb3f14745f2688bcb6d8e964a2335d75218ab163594d2a775b418e81239fe700a6876bab0d2eec049941f7236353d6fe825e4e4799f36c3534fa432c507bab30b76e5d8b5648c6d2d77bdafa187d3954ace9b18ec201358d9656a961cee185a98c03301018", + "01318182ef5eba3cbfe95f71e8874cb7c3114a8b07d6e0e9d0a218c5e3c82cef18d94968a310f40a853d377122efba9310fad033ffb366927086b019a984fc9b8f54a26704a0c6f5d6732401c03ef0ce2bcfbbfcb2f9" + }, + { /* i=7672 cDividendBits=436 cDivisorBits=6 */ + "0cb15f48ac78f579e48189e5ac583c116ff70d1a075edf785d97cb3deeb7c7e082da4f5ee4f04c66fed93af7c07e240d36f4a97f60cf42", + "35", + "3d4f14b12417f3cf2dea736d84147440e7ae224d6c0de075b0c0364cf4fa1c63129c1047f13692d956363ea30735cff28bdc8e7a94d0", + "32" + }, + { /* i=7673 cDividendBits=1941 cDivisorBits=634 */ + "04ca145c4ae950a039317b6374a0a7c99998ab87804106c175bfd43066d9e9d9f8c2619b74fa016732f1b7699fb01d44053a9b7e5e3b043b4c54b4d16a10d8423776d9b8e1e694445b320115067673b8f9538814bfeec36608b991b5fc366865ed189bad28bd05b934105d236c5d9a56e38279f1be2ec3f81fbfc5f83ce4e8c0275139cececc18cb3de8197ede7a2e1d3e33bfcacf49117766b8aafd528f6d11f2e128b6c6fc83d56ce657eec0b1931e32111a65e57c9a1ae4c7edd56bfc6ed869ab70138f3a64d33a09b2ce0f95d8fe7a558631fd95be447342eb76654f871012fc03ceeafb6784a30a120156a3f8ae587e58", + "02a80e844660f90dae13407d4ff0f2ec16e889b1b84325cd281bacd230ea0d939d14a52caa3a7287cdc7ca491a2dae9316d7cb9ae9811668a95ac95505bd61e012cd786de586d735b2814c7990624e16", + "01cd8b5d6fd51cca837ca8da8b5447fc056908461a567eb373cffda6ac2cefee1e588e2a8864ec30b4150bac2bdce284468e82339735d0579b3bf797fe08f410b1a6009df1394f709ff8fbb3b54a138c2b16f89cb656a2a401c812031e5179d695597e09d6d00c6022bd8ae695f4c82a8f4825caa65ffbee58a6e5319c08df06f84a2067dfe4be6038170ce9eed836945e2f54ac985bfc05be4db0a2a8d191be8ae3ea6e", + "010fa1b5bd9b4520399fe68591de2db1cfd8a5aa76b436041fdd24a563feda99ad5afe7ae9f61bfa05576ef3762380a71a75382d8f015871bda75612cbf9e19abcb04df42a5af587bf1a3a2baf38d4e4" + }, + { /* i=7674 cDividendBits=2233 cDivisorBits=1018 */ + "ac9cf36b9f64a3ab7634e38faa2f21c7df763ddceb6fa67a9129dbd667fe47018331983aac49f975ac2d80fba2e60fbe21a671fa435b6ac6c2059595db4080f0bdd144deaa9f4e3657c7fc305a1610f142ddc07910a963533d6804a631520d95d3b866fa0c690806af66d82042bc7c9d0c90e22dbb88949ddf1e5b2332ac8ab05d8608dc9fee5bbc54c28892b64443732b4625063727efc28365f8ea309fc7456c14b96efbd960423fee7822c9f42135d6d4c89ce83b33ed14c5f1bfa1c7324da34237f4529d48b299daba4c3815f75e65967f20a3226f434895b1155c65c93327db280d87537f61138b4fcf0451689c444d54987f8d0999a52c15a48f02d5d1cce5338abf6748fea6363d037da1d756076b7ff9b48239", + "013bca344cf3e4825885df8f266e61a56c0c9d995b65c73883f43e0de9620d13207dc5ac64d883fe099543c03adf773c58b1d0ae3b5f4a1b3eed56162b31b899b50ebb1757da0cf7dfb48e8026d837ce069c2886beb8905b78facefebf836637bad0de1c506e184f57ae8677d41cb933c6a6fea6177d60d5c872b2b0fca95438", + "8bee7732712f7d869df2412ceea11e6dc5c91e757f083499ef38394eb14f484b67ca2d37835737c16b65b5f5287c50aca11535b01364c2a6349e59ce4912015675bed1a4a64b7306c2218d9dfb829d5304fb395fae68e9da6b9e5c9daa7daab1ee7144febef6d20e1a44a790ddaaab18216dd4eeb8b8fa083d0124933c5fbf31dead1ae9ec2fba877077cf854e9045f184ec55364d729770", + "362830bb06979bf60b88990c614935272768d0eaffcf4e41e7cc954b580850f77259019cc275527b68b08389fb7caff2c61fee75e2eccf1526963cb32c6b5100427471800e1fe0b8ae1e78739491618f05d1aee4c911e793500dad7fd7b1764ca312403d8034bb3f12b411c303ec91408aa684127556c925550b7d3602a1b9" + }, + { /* i=7675 cDividendBits=3513 cDivisorBits=3471 */ + "ae23789fe17e40418934afdf2e33aae5703aa4fddbbf8d79ad1acbe92aae7eec34805f13e4c5fb6ef56e9c5d0b128ce165deb2fbbdddf67668c99486b1ae7f3e513c0f73d72e480a7f483dd7aeef378a09e7db8239fbf113104c05e60f7ba427c7f86c70a9dd0f65db2da58b8cd6a5787c5b9ea4c0791d4a8c0118b133ffc618c52cb21de699b8186be52f118fedbbc49e79aac6d05ad2a8deefa19a809a29178e856b2222b139a7a4c1e6b4501770da579b8b3686870a7b1beb7ce00354b7f251957896b5ddde6a819a4aa1c7e52f09010ab09d2765232d5e5d9c40de1c4a4c80c7576cc4a007255117d2db565fcc4dd80fb4c8ffdde642f52f292b60e46c838fb0d16ba839ed4a0d4e6ff35ab861438c8cc07c893808619934d4b55c9f0d2a22ae84d96fd3e205512a2b6e2c572ead0411e419273c68f0d647e46851dea9d922f560c71106f42cc61941e6ba687712df444cbbc171492b63c52813fa0613e06b9299c6e69c6e096596b7444d63338c833b03434cdf23e9908f55bd11fbf61e515959f2b128cf293c3680d56c5a881ded941dccf9a54d90349bf426d846401edecb8887b4e3c13935a833fb8f13910129826142724611", + "28d5710f5f213593233d3712124003ff4a6f457935d0c2ce0fe5868c5628cdf7a8abe6e546aa9996215a6fa8efcb85d9447f352faae20c47633c8d0b8d8cd72d4432fecd28d9cc8b7d0c723c4bee75ffc447177a033de7a49df8e48a55395d130e82797123ddf80d37c2a765d51d2005a7dfdb80859fad745e8bc3b8b2bca563a9370681cd7d6cd01f4c4cdf6fce437e3f65b681a2c1b66a8e07b20efe8ed62996dd158ce913f44d1d46cab14ad212036cfd9edddff40b45121f3b360b174cadf7a141775ae4260019d13349969cf97ce0df1675a4977951e738309977989625b7864e511d0fe9e8d119690e57e4585c2717278042df5073c728a4662d124cd6d2e89010c2d905b49379332eb1ed454d87cf11f4c9bba65be9a33259add3a7c1d9a99a72f349bb99119751c7a1c41fae6455c6230961c2318bf8a0cc335fcaf9ba0aa9bc8ee960a1d6a11047bf00b60f2abb1c33c45b8634e7df9168dd250f10ccece960fb7f7250fcac693c3e1d3784887ec8096c58035a77d9a5f948b645c730d503088dcc31cecbcf91df17223917d9f1591c5d245607b0e71474d66abe42b56706c70190eae39aee2fc8e1d0832a7443", + "0443bb18565b", + "07f067ce8d77af0ef890bdfc2908795c824e5176500ae1b39cb74aa51ea6454ec8258cb8cb8548780688dd0116dc6893b93b12a9e3de8d0a27e30d5cb8523899f648e88d9aa49e82f30b7d8a6f2042933028050a26a9a9aa0ab3e565ec55bbe6fd1b974150e21c9c50e008784055a54baba4b55dab74dfdf728213d8d0a00e88cc2c900c1a803189442197f6b60e575138c41198c6f531390786dba3a7668dae87e4164a336daecc87a602bbc306224d31142e889623cfe01a42e5c93801e215feaaecf7fd01486201b10d17d25f388a087e906360f7c646b2f5e90d3fb14e39d252da2a4cba9d159cc88989eafb7f78ced2dfc88536b1f95041b0bc902e51f8fe12568f3533c6df669308e5af2e4a9b285fcdff067600efb7ba4d57d7f494cd34fd58718bdb9e275c3718f8b958c95d9a99da0f306eb8ac695a46c73663223a9d7bcd8fee7a07581276df82e0d70c401df689f0d16adb32ce73f3c67e72ea16a4dea3d6ad144fdc1107231e9d8a192b64c2e691505699a0bb8f0a531dfa1fd768787db9e65143aef314d64b45c6ffaf140672ceb3656d25b6bfb00710d757561e74ecc9de2fde4469710f9b68c188047040" + }, + { /* i=7676 cDividendBits=3420 cDivisorBits=96 */ + "0aec7318355d8dda1173dc14c70e9df4556fd68667579ae3b4f991efcb1bcd2b932d8534ed14b64db4a90fe7727342794fc76c13070a3ae0cec9fdfcdf1cffbcf28eb3cdc3602ef33a4130cd7143e5a477ba1c0dabcd4bddd1204bfca171234a81e19e5b5ba9872f2849e27371ceaa59f08e5c9aea33e5297e62744941b94c1f2478f693d8a59d3f501cd914ba17499d758e46bd5861fe0c22c8fe6b7b2a7e5f4f3234eeab905bdbcef4128201dd9c5e269ceaa7ce6a290a3650c64d5f5925300480fde4ec104619ce8f82fda6d2308547d15eaa069b168cc9d1baf70a75b5d59fe6c59e5b8388c083ea8d1a0d41a34c1e182b86dee61a5bfaf3e9864b5efc11b21a96cdcebe315858d15206579a452883b05ce96d80f85d536fa62210f48f02eedb30e022e634f6eb9f21cf42febeb32891add0fa9a8a3cbcf2b160de2ec7cf6666cf4b0026c4b7cd3fb9f88d3d3d98910a28381ade46ce6d82c068b4f61962b7c2aa615cb81dad18b1995d31970f176a4c2f6c4b28cd225ab26d689cb6ad33d801e91b05886e954e90e6bc7aac454590629c09679a483f438bb4ba9180af2515d441a600e6c509e05a7a37", + "5a621ec61f6055c838e47d5d", + "1ef09d32e256fd434d55ab1054e5aeda94f6c81fce6f69f0ddad04e42ddf1c23f5d0648246b1a52cc8c1bea75e61ffa14e05fbcf8de6a9ba2cdf51f79468c2cdb67d7598c1fdb076199ec1c99694a9a38864b90a420037ce803939f81497124cafaf953047ba6f760acbe4385bb059ef85a0aaba03c5ee05db9d45a79f7fc2002035b954405c387de89a7ea3826d4617ceee2a06ff82647d47be3b84e6b82bc2de51ddf6a8f0c41b2022883e0f5c400c0f50f8e2843f46d1069e07dba332d088ca079359f27882da7ab649234b6c0f3656bcf06f921ceddc9f88913bee91ebafb2be3983730d3b4c08969dd4d4baedfadf89eca0e03ea8cb8195feba7233f143e4a3bbd1c740e72714e002db2770318058e0ae692bfb604e52154f140d9a9f80e985de9fcb76c1ca0a87bf0bb85594dc80df9935208414aa292251e38ffd1a87152098ec3c4f173d8dbab4335e70253e5a5e031cb3fb4d43e04236f3031288775772651577a0395e7c1571ae2b0615fc8252831798701ff02f585a63db9d95a743ec041a72fa3ea8a8df2cd92e1b63e562d9b07f4954a274cb1bc62f623b8340", + "3b3b9e9c4f4757253ca58bf7" + }, + { /* i=7677 cDividendBits=3226 cDivisorBits=1090 */ + "02a2de2f6da75745ad5f2d9c8a88aea51f84f5e7b2916f8eb78e044839366c917d6791fccaacc8eaf77e7c95f0a86c9a1f7fb0c7035d43f1977aad85ea1143fa2cc01488ed0f3b40d64d3a4510e9bfa82b1ab444577fc135ad94df7659bc7677840f11e8028f541f47e1a7e6e6228f8df1b06b4e49b14e1b1152eb6852d1a25bb8ee6242c502820a510d4b6ae8fd178a5f71c6ab6eb8b378bf8ed96b5211f9b7b8e92a3eda1fdf77c4dc5878408ea74841edc8d3251b0e838b9a63bfac169aada48c4206bb8c5fdcb9a1013f0fede747de32ff8cc7d728809d276c5c9f9c3620e7bf006a3dea33615401ae97d552e1f2f4d897246be383a873fba0c6fe7f9cf237f368fa6b3649611fd22eb8fdf89977ff73c50d7dcdafc51149543d8cee1fc8889779196ce1e436434ebf1a576cf53181bc1307b07754dc4ad442f9cc18c0e0dcfa1e93d6baa4f7502a7e0982b18c323c88721b0dee0798a9c06ed509509699d3ceccef99b5c075c6c400dba97add25b1d64b6f45629080ed2e2f5e5d523f8369984d8ab241f702926c0679945bcc02c4351bd9", + "0c879631cec73ffb6d8bad5ed118dd2a3ef3bed3e58bf2db967f6fa6cc00b72b62992b2558038853e1c112cabcba14118df772529fed8547d4512057f13cb36fea9b83bc8698f62e0f9afa3a0faa7023987601d7a464149699ebfb860e309cfcd3588320a3aa5dcce74021940a15cbf385c6f2be4f9221e2ba1aeca9f1f4c5100078dcd75ac2dcda", + "35dc9aad3e90e2dc949bf5b5a572969d65dfe9c19d3a380bfd03524bb52110c42021eae94b86da9798ce6d63aac3e42760fa8cbcab9647580eaefefc245ac3f7944f992944fba568c1c8b0dd4a930df5daf3751c458e2e770ca187dfb6cfdf55be628e98d21f1e98991e1497351b6ee2dca55fd580a9cb14b00d58b694b8741470fd31bd4281117c45748e1ae7e28b95529977e66976261dcfb6144b0d0c870285f83d8d4ed15bedad5e3123b1c2004ae18d4dd17c38a70d513229cb9ca8e2646a16287378793798214981bb7993f94c6eccffcf09621d2d98ebb2756745a7b1b73c8ad5f972c06d937125f3f98625ba00cdb102a91bb0afb672e30392062e2a66a4d149fb211413ef2f6e6b", + "05f6ef078ce491f883fb3e5132b4bb0120b008626d3545a4bace440fff45bbb2b41ef7a8ec2bacda9e9199075c2821dd1ebe7855702876147832049190bb207985c9827c0e1972800ad90f25d6e9138e8cf8a3e8f4be8674856ef42e73645f5212ffde902eb3e3bd680a63d123f6ead6185e1bd00052988d8f7caaa9be8fef52addbf2dc07d720bb" + }, + { /* i=7678 cDividendBits=696 cDivisorBits=362 */ + "504b8425e670f183133a475fb54eeebb6b2b2f2543a716b4961e21c8031d7e3a5e0e489fe32a0d94b62e8030ef65067094d50c63ab71084cb3eb0dad76295a75b0a803493a34b04bff254ec825ef20d551d99956723427", + "03b1b4d9293b6db288c3551d7d08ad6866285c5801c71fddb47eb26f5b978c492e4e0fccac63a75e3065153b1ab1", + "15bc519f1eed7397dd1a0243e6cf7f77d990f3383fcf6d74c6873cc0f6d9bdd2dccfc6d835e09ce9a9cb", + "3eaad945f126f1ca4af87f4414e3baaa1d94fe21645e1b6e3ad53b2c1167917db0044920ec0f28677e54dc30cc" + }, + { /* i=7679 cDividendBits=2214 cDivisorBits=259 */ + "0741ef7f3318a3a507532833e0f1fa96741e45945bd1ebf6c59b0d7814b9a2bfd56493874b9e3eb0a3279f1c715d13067ea407f08126bd9cd95b0f7de43c6f9ff19546b61d0be9a4fb88ae0051699a4f610675eb64c5423924e83d3bc90dfa4d586bef4a65f9900eaa7077ab55ce5eb9c442c1bfc0e6970ac4694c6b669538c43af394e427d198e574a533df7226a35c05dc727ad914e2348c615efe9ae8f4e91b2a63d4d70d5ad1d2e7f73def48914e794ba66bfd81aa4d698e1309260b6c16743139d304293822c8f8332ad13dbeb57f9aefba1c8e8b9b303dfd4a0489cfa33fb070905dcd541bf5960a4dd28c5d04f958dce37ed76bf39ceed59b0a4777505c7b6e4d7ecaa547c087b417474372212253d872ed", + "b6573abd2fc533ac66c96866d6acf8586d29f8eba1fec1d618c091c01dd2e067", + "0a3079ee10b468268054c78bc17429ac1965942c79eb365ca449d12a86e3a6d2361f954869588cbc292585a0c77ffe6856760eca8d563f6eee678b54a2b40286c117cf0ee3c47be049634b107ead6a65401c0f849288f5b886b0797979b3b0df389eab474ee34052b4ee157c615d204b3e50121e77a20d89f9b1a4ef3107785acde19460013b0bab9a54c3226cf0442c9a8e9bb6eede76e87127d426b43033ef166c97aec8dda1becd7f984b6e16d0de9e5b8287a7ea4a25c6ee969c8d7f21dddfac3abc5fc748e83ba0280dfb957a07b56a3dd0a5a17dfe867991c1976a651e33c5ad8f375f8f65e2e8ac287c601d1121b8677323", + "70c887aae9367963da9957ad5bb04d483f36638a070240f9c128910f33c47fd8" + }, + { /* i=7680 cDividendBits=952 cDivisorBits=185 */ + "55305a57a66d610b2737c47645c615cc2081befada1d02f85a2cf58b241b08806dffd55e1332bb81fd917c052a6a2b4dfb7267cd8656116fbeeb77dbd254b27cb5e2dde00799a418e0a5f0f17763c848595d6608c9adc574419b8cdafb78f419aa67e612064d11d48d7d33a7bcda01c15d4bf53b91a1df", + "c5ed756657a49fe5597c5c90321a4c34eca83722dda417", + "6e2ef9ec31838047dc9c004b86ea1eb5216849d20e403eb81235a4aff17cc0c35bd30bc059ebc760cd73c29a5b58f64213948457fe433cc4706fb74c5f9f171be57b40042f95ac23612e00b981d4612d0d8d37d7b7b95426f7dba42361a859c9", + "0d37d797be937c3190941004e76883529405c66767ccd0" + }, + { /* i=7681 cDividendBits=3674 cDivisorBits=519 */ + "03447743b13dc2530716fbb668a8513c5902e5687cae98a36b7b69bca4d882a30a8491dc4d1f92096fcf190f7af989d0d460a94307618af1b49c1fc41f37b39d8e5bfcf365650408b3e11cfbb15185459e376e901786e4d06e227f2cc71bd8ce6e1f38436245b01a83dee959597ef462550d0b2d05015735eae5603e13ef9890998a1da62e9ed66d71943f713cc3920db4e17b3c6b06d49d64220a2f3113dab690af3b7ae74f40ab76fa9f9154193eb049cd957b4d23734733c90bc543e007819c84566fc0c792fd5f1c2b9421e0205f611e9add6252faefe50ad52e870f31f8a00bb2de5319fb12e68e24ba64a9d16e7def6ec69811d2a2329a310bc40979c9b3e2ac80eac7fdcc2511d902f14720ca515f4f89e36076e7cc3461b23ba0c3d136d7a1f1525622aa23e7bc887e2ec235324cffa56bd4ad27e4f87e216a889558e93ec80366d101e9c6358bb3354e91e9b91d0af48f033bd75c70a184c66d4f0ed2c79405e30a7a3697853ca247ae178167928c3fcc8249e0e9536f9101b547acf6be718c70a53e7bd22b04efe3cc07ce2371112a3f5619cf07ffc21a3bbbca104c8c6ed11c51c1dda90c5b6f77889ca2dae1dc6e4bc4ecc1dd35e7e05174129b2d3d1c66095a29f01ea5eb64", + "45e47ae0a14ea84e29f329dff2757915092ceb63e911dd71e575d42a3fc51303215894bb6ce923a98b54424955e4b66f62e0c967645ed050a4aaa5421bb5a11e9a", + "0bf7c7c1ab71143fb384509bea182c93ac4b18618135d86dc16b871a825281e37ca1a61bbc759c4af69af22650a909a0ec46e8b2eddf0d8b58a54644f711355f79307b14187c4966880489e15e46a5c2974b3e72b99ba422101a1734ee45a08c7d561570cd0ccc27db48b3c0f7cc9faa55c391c15fec4f05c9723ba5d9df5e5eaf33851e85645f88ba9998b0db94161b8b7df8a88bdb09641e07dfa80301cc7b731efa6ea73116a42b6faf3e6fb63c8c51b136ee7b6afb3e20d0b5c5f2205dc8377ea2ef5033b7fda29c1b31dcbcaae7357445c2cb66c83490a5d2a6224ffb7885b391ce58d07b600c03ae26d6c92e2df6fe3202b0f9fd1c7c5873b2cf9fa0adcbbfdf030b2c1197535913c125ef10b24a0f6574387171f325220162c0fa4eec58f99962e459ea5c56d2cb9cd617488e6baad7f6a0a13831e3a4516049ae4da82293f0738af6e9b41b28a1ff52a6e7b5e1fd79c46cfb6bc86cc89aa3a95c2898d6d04284a2064f789c40eac96464fb35d690d621e7faeea8ea9aec856304cabe0b9c001917b12ecbb8344e", + "1a0444f2d3528012ce55fb9b93507b9939ff8a9eb62d45a529665f9d603098a2edebc1cbf99e1531a1f704ba88b5a50d21d5ab366212d2765729af1bdbf0a75078" + }, + { /* i=7682 cDividendBits=1764 cDivisorBits=1310 */ + "07a381c5924930c9741821c9219757084751b2a6f92dd5b0a4663be2501aa24a506bac8ff7496e0f900fa0662841c4e798186c16864a1b0e91755c253cd933cafad1c9edf7243fbaf0e283b7e8fafc4727c4da03351b875d76c93d5ef88223d0f20127d6a2262bb7ecbb98e712b0665f2767e41a257fc5b4cdfd35b6a73f1050120662bf8397befba56727d2b60a19c28ebb57c83bf0dc1d5fdc9730c88b49444d10e9cea2861ccca4272c82fe3d5a6f88e1f1283ef67549758a4ca6c47f0bb9321101d7d35256be7ec48c4cb0953e1dc6acbdd85862ed6ade2758dd83", + "e8443a4ca85237e22203e401e1c34d282070b5d5b5f253a6efd92437cb5b39b5fd1b421cac79f63b28585af820a27518ae5b73064577af2c7c95b898b2af49c7d17fbbf1ba7d9d24ce14b493d78a7e7c09580d2589d277a742c14a137e4e34bdef5afd81d14147d1c65df8c14f35af5d0fda76390e702b1eac68688342760eeb2821a400cdbe74395bdef17c2aaf1347d3afc8a0c8c0112871819005a413062d44d424", + "086b53240726f6730e875969c7c97623d850811cb7a9b58dce48454ba31cb7971825b9cf6105645e4c675bd74e69c0c64e3d261be67261a2e546", + "4b26e07ba742c2ff37e15c571f7a66a846e1b0b65c439c3f5bdb56af930019d0553ec60457a004f6aacb274019aad00802fcd4a0bac05b6d5ab59e7dfcdfa06f82f6d5efa37cf7131b90bcb0d49d2bfb3c7f9c960a8c91ef7473be5663fc3b38a6e9e632c5a2bf2a2fa6beeb8f565fb4110581eb84341802dfc6087d18961d2b3955103e5138d54dc7713fa1046870375c82c7c8a89448d71f5121faf126b751faa7ab" + }, + { /* i=7683 cDividendBits=1655 cDivisorBits=1614 */ + "333d7ac0e7cb0b9db2ea9b76b5c839e694ed692635c18dd46806fce0d7c1ed0928802e924d1cd3881fec83084f49bad92598230aac347c2d392d14dcd75ea280a14ae68690b0b876ce1d43a73db89b5b921f46d1e9bed503af534e739d8dff82d3e41659df1ce16789827a1cb090fae59931ea836474241e8e36aed37bd992e679f465b4f9dba3063a9dac7f23b931ba077702dd2120e5f2ab0630457117519f9d79443bbb0417a336deec8e36342682acf54618c832889666167a7c21c47f571ee45a9306a25570cb2f88c9351ded", + "259f27d97afb5a2c9ff51fabb15bdc7bbd8ed3e7e7a7c8f962abcfb313175556a5e7369d46529905aba5402f98e4a3db9bf2ee8562726f586381aa9369bb0b20402aff0f408a718bc2fb0f13525b7411624959f6e61532a0e53b3dd90be5a6e1674d39cb413124a5f6035e88ba387da6a615c69e989d06067bedb57deef72064be9cb77caff39b622b0336e93b79f3c8a243b0a7efa997385745cf92e0f6cdc4afa092cf8efd043961712c4c16685d158f1755a37d14a8132045558351d3dc8fa1291bb29825f6690507", + "015caafb0bf6", + "21cfe77173023b3160537948854e3327cae87ca16c86dc260bed88ec6aa966262c1d7aa9ab627622de2ba4525d45af0aa5145d86865385d550b241d01a01428d3d6f253ef48e272100c0c81719622ab236cc776c3940b7f3c985bb5adca82c7044cec34c3002cfb2642b46d82ff24f47676258d322beae262140a56eee23dcfa11e8d65f0fb9034aaecb3f283cdccb64c6eacfb51ea170995c6aaacf9682a71a3314afbce3cc1f134924dd26d81b83ed20fe700ea4f93a167f1ac7fa72907e9b6be4cd062da4e935fc33" + }, + { /* i=7684 cDividendBits=2550 cDivisorBits=927 */ + "3cf4991bafc0dfc27e18dbe42ab3baf68eacd1f430f34cd884a1d1e8983cfd959e21d4e1e97e8e47d49d06f04324d7020e2807f4b2595d2763e442030c9459c86e014912d250fa82f93047e39b1627bfe1aa61fb12c19d2f5b7b952ef65d542b26d46c43b1e420bd8aadd8485bfb5964213b80f47bd7f76ba0fc9de2638a6e4ce4badb94de58cf4574247d073e7f2c74dfc3e98db8132df875ba479d357c801899fdcd20316cb90395e4230ee519bcc8ee03842e31f6beff8c9364bc7edacc0a0b5c3f12fd14fa3539a486d3d04ac314311453caa03a32f7bc38cc2948d132b4b612fb3365c3b6664d2f4fa1111106fcaeba79fccd6a5acde66fc112c228c1bb77b163c66a3ca75b5964721943a000955f2633ae05a1b4018ba9661419f7c4dd364bdf75d61310af8207c1b6ab3ce99b54d299f45f78cb59ae4bc37fc26aa9", + "66093590dfa11bf2d1ea317203dd590ff6d7aeb033320be9ba2dea61a122715cdbd5a65526f63c40c6b2864126f3fd3ac966e72676d72e0193d10621d3ffecb443b010f5d58a0482c0224be62d000ce2221497175bf609242210d1bf1f8fc8afa109270766214bdac070a5fa98cc754d19c51cc2", + "98eeac77a09c5990e2488f5a013ba8fd9c6bc53ee84963d9bff67ce98227ba3a5ccd5f03543b7789e87f3ca44c04ceb3a1966759e423f098d616772296d6925b14583d4869bab1f8a2e4d66eb96849480d7ba97469a6201348cd0aa0db77e1fcfb20c2fa2701365f2a62dadb55fadaca07ef87842b6932d6f18036b315b7fecde6b30c629f0f9370786332b619aed38851f489d1a4d858278ca712614becf8cbf8259c62619aaeccb7b1cf6b0c36fb0f72580d64598d94dedd62fc36159d207797bb607e55b9c12a61b597", + "38565482b7f4ed7a43963595eb4e92e4037e8309897f22df35505d6aa09b1468462c2601911dcceafa9dbcd84780c83281949fc707a8624d8e85079ef1afe056b0ac9c8e71aeae27124e8616cdfa084bc3f77d5bea0aca6289c9a0e838a80be43dbf89d63050b8022901bb21a9e79d6735a74a3b" + }, + { /* i=7685 cDividendBits=3115 cDivisorBits=2533 */ + "06a00bc8936293dee0f64482d6836fe3435c52cd04c96b8bc774788dac4ffd488e8c99489fc47c3f9e3ed77b659c9a6d45674547662799e5d0d3a5e13681f508f6e1e0e5a7e79ccffc7616a1e7a65c235639e06af509bd6944a2073bdbcd23b5d314821ec50211101b7cc424407f0e65415de24040b181b51dd7571413d8a4bf87fe0a7c74ef248406f84971522c944e923b7f87c3a6bcb425eb3353d76a0a3bae7cecb70b5d89d10c002022423c12c4bda0e88377bc75eacb6972a44b8833b58ccddccdcbb443e9a0c214080216cd6efd539f25ab1f8422a77ee4e66c7192099c6fc372b5d5b18809f665522026afd9c18123da9141f5e079a4c756535d39a99de747b06942ff5206bab50b2c6e571e0cb9200a049ff17fdc4f531e644527478dc97e32529e47a7ea1a91863574d62af6ed0179742428e569aa95492c12871ba711f3610a331d42512978e20e2f433bb8898bd2992d52ef05f2138bd7ce93af1cecc6034bd212899a24fecfc2fc0f95efb464aa13c00f9bf3db6039af605e1674404603fb4e", + "1e26da18f07c071f09a42fa95b457a3661a0d47e09b32391d6952d10dc2469eab81d5d618e360c60abb03861002a84fa93580c2031f509f6d3324f7dec46727d58135ba721cf9bf08cb00d2bfad87b1bd69875dc6aff84cf5a83ca34d020d593352fe51f9c65fe48ef6170ec886354bebfaea9f62c37bf96825b7661b3c6e538b5f8703725dc7a48e1ed4900f8ed124bf078977e7561f05598d591cc492ae8fb50fc6aa088db45542107c48c6d8b946dc737831a49a10f7e077d85c3f75d2e4db1536438575da165b96d58d94c95e8f2af122b526243ce8451a0180cb9c367864acf5d8a9fa0b4afaf27d04306b01a594ed944aa106517c07f6c175e351af477661fd9e506dfc66e9495da353966c3799e0c550beb4b4ecfce20898a1fd4c7d1e574fd227e3749f0d756b747a60f3626ae6d9d379de6bad2c94d706c76", + "3840140d3ff404a8033f3fb10a29e15b9fc74432bb56f07df20208bc33197040d1047824016e52dc1590900db17a51f5a469610613a211f75e193f926ceb3e96f64bbcb5d8dc95a9f6", + "165c793d9040d7e4038352fd76d610160881886027ca9905cab6edaecb3ef5187c67d767e5a097cf09549cf2095894223c4fc4bea64a91b2cbda9af0698fa670945d68d184abd64f13ddaf55fce43feabcaf0be4ffb40b43e82617c53c137c94a294617af72b2bad636fa0bd3af2f225809eb1fcc834d3905d5ebec3e4266ef6e6565f21e679b0f9e509f17414dd25280d184ffc829b1d07c1d2f20e00f5284988fd4649da418c29c404ee55d98cb07041f0d9af86b7df5fbb31bfb5fa855d3299b76056e5037d535c640dcfeb1d1eceb4d4bcdf586644206ba9e449594be4c5f051b37e260180dba08a2130bf1ea8d82d6cf294898d4dfa5c04db980b2fa5244964c079aada3173e06d2836486348b7297f344c5015e2f2ae28e3ee7c9e5679896ee68471c807f616f6aae79b829677e0c5e6cf1d977f617c1bb3dbea" + }, + { /* i=7686 cDividendBits=893 cDivisorBits=555 */ + "1373aa153e8a020b2a7e362da338adf06ca6d678e6a070c25a94a63353d785dbf617c3ca7b7dd2189ef28201d54f2e1c7f38b8572f49e694bbc9b52c33a52ad648d9a993efb5b52c07c325ca9fc2ae1e579c6b920186ee6ff21946336528e5864fbff5c125951f2511e646f1e052b5d5", + "03ca576d79de9e95da98bb0129fad6e2bc47ecfcc783ebfd949255ca4f6faf640b4adbb6a10249ca320b140e6da0a46328b9a0bb0d94e347193e0e134844125543cd2edf7ad3", + "0521c216d2018336a59292ee7d4f9310c166f8add730ea6a9071fcd909937ea713220e613813a1a878d2a2", + "027adec1e957d7a008a5086cd58f1afa68815cd47878dda55d639dfadd8886acd9a1c4d4eca92d50c433f387dec993f9053b48cfd102f1fc2cf46faa761535908597d93de64f" + }, + { /* i=7687 cDividendBits=2737 cDivisorBits=928 */ + "95913798ccfec9d7f4641bc5d598682115c19e32c617013c89bad5ea4b633fe861341bc2303844c30559fda97b9e049552957a50b8223af75eeb72060898d4ce72585f8633afcd62f9db87f88b4be44a37da68f2ba1f2d2fa93f1f7428b5145b08a5b304d90fcc32c4b6a6061c175a9778f2065ac5608656d382b6d422e19579bb44c511488785a07325b8172de88c378021fb036e1e1ebf8d1addda22cd909503cea476ac9e839be38c7ad578751b7f4677bd39ff5770bfc781c05c5bd7b1973e7a39ece294e2fd9bf5463dc5617c2f6cfdb2ee49765c2d0e444fbaf054cc9ebac9ae6b4817b3184b2e81501229eb8ef5523cdbe7fcb04f185079cc78b36216842217f3ed989173ef5b5c0e5035aa99cd011e5ca3afc6fbcad2a6febd211e8fb3ac59d8b7b874892da2205107525fd4c670dcb16df2d47bb3198836807a7e35055a871d32f83804fb2a4d888c0d474768f07489e879", + "e995d5b68cbb440b726c5f5462fb8326023db40fcea360261626b45d19fa0f2b75b0885ac419894ed51fd456a3ac67923de87b57023ed75f94a1b5dcd23520694063c6501ed66a84414812bad6380c1953f7852c924bc1ee0f7126582e80acab92dd4564a57d87490cf29b8708c140f7d977af32", + "a3eb6d9268847c65213bf0f8c0a0a051ddb2c9a253e16406b7be4d759b0c7596ab030349e70ca61d95bb577fd1c126ee712ec8612942ffa875764dfb855c58bec5e721f7fdb747722bd6f038245b39d5996f3736c48525d4ebc4f7c295ee9718b472f071a333077e54a133ff39123cf1cb6756ac42fe29200626161aab8a6ee85a8e04a0274e2e031cda9096572546b3ac5daf3732e131ef01914c6c66c96b48614adc3f242f841070ec54362c36dc5bb1ac5f8b0a9c6c11d54b502248e4c48d0ce593b1df725b62de22b8ca6e0c16e907ecfaf52519a23a344439c0882475692428", + "15b9cbb81f5dba21b484ca28cdd8a3df3e0d2846f2d6a48f771118faf1157693aa759c8d22c6d5615bba8b68bce1a55b0a80062cae4ab5f30539db46fed14d4693aa70437b99dc397ae075c616db9e04e9d19df366896947ff600f2f46f2a20d670a55043e603b6c70aa18541e7f4f70efb180a9" + }, + { /* i=7688 cDividendBits=2142 cDivisorBits=576 */ + "31e5a00f6cc10c409962fa60be321e339606a4a17a58704bc8d53c9219b9e5691654fb8b2012b8df28a45cd6955be255b405b6f0e1e68b23558d854eba09ae8eaefbca6e97f3e82fac110fa67d4d23d0e3d1d13b6bdc0a16f5c6d59a45831bec9e089f032c18ccba5a8b6274f197c85f90e22c480a82b069c3055c45c0e914df290c15d31a491091bb88761249098cb24a55d2f7f2ffbc0fb4adf4e471cee2a9fe5e12c29033ede7c01bb19698dc93fdb6ed82a45189262a3a5fdfc239b9a56ea5563a742a3514b50e71a05ec223e20bb4f9bb1c77bedeb12b21bb659fba649b46ec3719fa552decec28b5ad6fa84e533ea75669110cb862c6c930be97314aa69f4e66f7c7a5d1a88af0f9f5", + "c99d67596d31276ac55115aa5d61e60524addd1d8232f38c8dac5eb241889ef66c974a57a1086465985ffd714d9a90bbd7ec3dbcd952e4a30f21597bbcc54059c44e4225249c0eb3", + "3f5b47f65cea3666c79e1cc3d41cabc57fea909113f04ab3c8deb7ef9ada08618a1d33acb35bfa9fe50aa028152c1ee7e2dfdc3a6a1b3e163e10818f25dce8896b627a89cb7230cd721ede1f5ccfdf6400388041b653347612f955abf414187b463c8f7f5788597e1ccea5ab9bc049039a71aa124d0e86e69e147dff1e00ada618c4f44d28e110eacd612d2b5fd19f8e5b278046bc4cb70a32549239834371275bb96c9c2bf860ea7061ed5d997c6a2c06daeda25b47285b389dbde61a98d7449420009a", + "6c04e06d9ab86a967d654e30cfa905385af1733a8f32c5d984e178cbc986be6732d805cb3f489fea236c83c98971a0a1e662e58c3b281df2b3823582eefd335c40aefec332b02247" + }, + { /* i=7689 cDividendBits=510 cDivisorBits=90 */ + "138bd3a05e5272ed84757e94021426c4bbcb47554597ee39737cf0041f10f66b8145db21ab31d7b185f31e95966c0cf19f95e00c389af9f3d00b29ec71d58cf7", + "016f0102fe1f49b5273bd129", + "0da25ebff6476c021cc950f78cba9d8072304b1d56a8280d8a7f355148f5cb13eca5b6af16ba78cd9f93b6b0f7ff152481c2d16682", + "0114ae2baa3e084cdba60025" + }, + { /* i=7690 cDividendBits=3316 cDivisorBits=1969 */ + "0b1e3b1a7916d1def3bac19503198095e39cb1416c1601ca469aa4680772fbcd1eab219f5cefd34a3f07e8c2244abda1bd3ca1459e02e6a5e62701dfa45c3ed2407e7dd60cc47c2f934460be68e3ccc219496cd9f918131cfcaafa5e21d4e4cb832632a6afcb866d9ccb71c23689df932199f856d18554deee48d5c195ad4fc248adbdfcd8794b92240c28810a9ec3b4ee4e790ce5892f1a5bba121c7088b53c6a4377016e7e293536515a4aa95c16498b126f0b171c0200d90e38c817d9f4b270a5ae51d755b62e645eb063377987f25f3074c7c44ef96b70bcc438fe2968d1425e39d82153142041e7aeb38173fd6c64280b1e079cf9003764ca25ad5261c05345bbbbda2a31c63f98a39427d2d9f715502772fd728334a152c9bd9a6f52bc67d3a59bdf572569e3c99bab493aa715b65cac6876516310196a19bc89fce573d11d1b759fcdd07b4483f3d45c4ac9ff6cce8a30617cbc5f062a5c833d491a8f41b620b83d4b18a63f73eaef258dac27e8c5f3c78178dfcce51a508c6528403887d8bbcb22a4f7b2eab673af72ec196e3a49f1b61f160eb3400180e27fe1f3", + "014ac0d11f0759079c2fc5d1777b498bf55910f4cf66b7bc17eb4438b249e649ff7a084a67a0b0ba8916dc0b69179d4f221d53ae4c3111d1568d92a82d507d9c1494fe74ead631f5d128c1880e0ea855dba84e4631c95d6e56fe0afb85b6a351f4ee2efb363c57d2314b39c4905b846348fe62be4f73cd07064661335a88d81ae5ba731c3334013e9e34f7a3d6171b8ad95d2b1344251619eb6ca13e74aa428d32cdf19ad22a5e2d405f9f52dcf2ffc154e977ad10f48d9682588d4d07eed9003291ad7a26962c4ccc5801490111f2a78bc5d1119a28b2c2f62873a5d4f7ddf19c68f049acdda987d705d787255fc6e80622f5d8b0a264", + "089af507196043b2ed28c45aa32c137f56c8755152b82af92199dff0f0ecef7425596bf72ad814dbd367eef782ca02ffb0a1de1b827b8ffa999f9705b7617993bc8301b6c5c2e72b1527c990aeb64997997e154386d0229cf25cbf2b34db4c510e169a500a685a0c2ab9264abc5243233409c9e107aed76fa16b64e57ce632dae8ece5be253e7b3f23bb275a91cffd0375a5eed71e74e220edcc2d76714e565974367011b031d0ce08", + "f1390bf57482e6f166a86f6aeed694a68b1f7ada9f98790c83373513eaf562a48eca2b872fb146c6a111ec891915b658bee2aabe2b28abfa8a4216d14bb8e3a470b7b01405980a560cc15d211d4f2d7b76d90f8308feafd5894fae4611e5a9f06d2a913a22dcc45082b2fedfa39dd13a9e9d1ced19b0c637832cf7d266833a64850e067a63b20551eadada82aac77e67411918ff43a9865e443fa4b771e62b6310f924e1153f4129538ede2b4f04dd21a8e28dc216cba1417713072030dabe867e1172bb169871979b5a6f074301627d36d5c2f6d6b30e3cf45b9a4bdccd01fd3ee85f59e906afdc27dad3f7923434baee1ae50e56d3" + }, + { /* i=7691 cDividendBits=752 cDivisorBits=45 */ + "148082e6999169ec134f97235fae3c0ede72deb5d7e27df5fe1a0f4cc2090e3df2248fa85fe03357c34b7d302da64cb3d9c2a0cc30e591cccd1caf5443098a5cc9e6368f77662851d853de9ee4594bb4020281194112c5abbdd735a98005", + "17f46e50606d", + "db19bcbbb22210f36b7690f6d4fc240ea96aba34778cdaf9c5a90c40452de01de668bc308f33d443c75fac55d669034e027031e99790ffd8478d4a06a4fe442c5af020928299619edb18007ffe3d94b3cf970896de670d79", + "03e1aaeb6380" + }, + { /* i=7692 cDividendBits=462 cDivisorBits=94 */ + "21789f9375c5afa8c4b23d22a30288b53f1cf7780762ce845bc9ed20efe2295982aa0dedf0dae2ce006329e6362d05171053ac7b3bd699decd0d", + "091c15902b5e329dc70fa65e", + "03ac9a9aaed99b4e0085c72eddb225dc6d63bc7d99c8706f438df1754a9ba93aeb67486ae27d75e5f1c1d582cb3581", + "019fbb6fee65fa04650081af" + }, + { /* i=7693 cDividendBits=3982 cDivisorBits=2398 */ + "1aad654e5588ffef6b4c5f818289042363625c03d2288788e7e8738b4a4817ea1750bf3c2b71d874b6ea696a4a3c163b3a9a077a819be5fd60b43b5ee085da2e86311e9801f2ec22fb75aa9ec37d8a21d9e18695094275c2e58908dea2eb15e64fd95ac86517d8e5e25d5634ff0beba79d076ccef99cfb95717bd06cdaf93337258c4ee0cabdedef0fe9017aa7c131f68477e4fdbb33cf19e7b149ebbab33d8285defcc0c047adbb1c9086080692dceacd718f2217cc3b1bc5937ac23aa875a756e310b52dbf55f22836f5bd2547761852e47edf1ec0d9d16d34a43efbfdb683dac28290f8fdf2f62e8b0acff02b6f43182c7ffc3ef7b55c9d233d65b349191bbc7ef809c4920bcfeb9fa05c2739d254bfececd8a0db530591468566bfaf4c3baf574f8402df642785ed07f4e76f34ceb3a3a6875a5005c97a8c0efa7a8c103cd8f23cabc4c05b2c6288bfc087fa526fa8947b241fe048351ff2da6a72f0e5791a78a7a01ee8f1e07425628ddd93f7fc017c534eb5f8e03004806ad58de7f6a287da46ed461c1c680c20431019bf6eda71e2b1ac6be6540b38ef0afada22b98c172a0c6c3d7631435652c6a0a531acd83f747d7711e8c49a76f0c605b2cc91f5531248d03ac0f401d28fada67b168ba46ef74935614a52a0658df8fdd4bf1bc7b3e18cdeb4ffafba2e8c89384bb11c316a0a", + "14678c6a67c5528350a9ef362123d5c4ec9004d18f4d56396ca5d1a807b8af7f11b0369658d4dd4b38cc7f86dcb4718bf2bdc61139ac0c4930fb904810776a2a09a4887e3057b53d4710a12c95094cbe21a770fb6c8182f9d348d41627cf002960567dca45dbceea7bee474283dcd3b318b0df0056279b1b2c56c324691664bee409ea18cc019e2d8023f6d9d49d2800990a3bca037fcc81f167b1eb195c0ea79d97ef67bfa5869820c97f02fc98361a66c167fa189dca4dfe7dd02872d6953692f67ec2894758cb474cda892ce6b84292b16aa3fc1a44d5a5948f00a6dfde324ffd196e63be6ce7f3f0093ef134f2e12b25c05ffe9f43e20d150e434ce9e9bbfc2b66ac8bed432cee99ae51dbb9175ebfd4368c747dc40bc5d6fdb8538344db1f8b032256709c139d640e1e", + "014eb360a95476368f44b6f32cab2dd357651dccb60eee4bbcb67c912fc49aab08081920a7f27696372459d6b676d775dd98651b548312997e9eabfce9d4cb1917f3c60af8c07708b825614e2adcddb7e58bd992450e85d227509f0b71483f5ce727f75a092afe4275e461f61d25b973613c1dd3c1ecc6572f51ff50d66384e86cff6ae17ef6b8cd246e64e69c97de9f51b5d6a65f12c0fb140b2a0e65253141adc9d473e34f3886a052404c7ede03c1ae4c3e33f9f2bbb864dfc8d31c5e93f47f5eacac4a0c01", + "0daaceb94a48f931d4002a5969223843a617e725dc35b61374e386e04c4a2e1edd4afd13f26e8d328224c83d1b9df59a1ba7ad7c47e9f1d55a4d2a67d057c3af060114808a7d35b91a197643157eef9ec65178808e14f7ee10279cbb4f06e749cda6e79552e121b8bcaf2da64662aff5af73f39f28937b17b07d9d2e16d2edd245197fd8abefaa9b00428626b3db413c3b8beac521976d8190db990de2faf895ac19ef75f32401f65bd8d4cbcb13fde3448818e4692ab2c96832d4781a5a82055482f31376ec043234c29c570fba84ccb55ae92c6eb2d7ec449385d39f256c25065c61a236f0f34af7f1120036523e43eea706cda2ac887fb32dbbf38f9254c53be2bef5350382eb38687df01168e16e512b3eb358c9328f00191a4c01990dde226747a88ac18bac9177f3ec" + }, + { /* i=7694 cDividendBits=1045 cDivisorBits=408 */ + "01b71bd9464b4a2a3b16b3856e309789e034cb95ffd8fc741fce741a028b67e6c3f9ea77771e7f9bd7ef9caddcd7f75bb7f13bc1b64f155b4c4ba9f680807d9c5585539fa8d9c3f81c90fb4adf6f449b79bbda73c609f6b1d583593b0b484e0548f56e916d8c8d335af3da8d19c664fc8715f1502619b5595e5d04584f0285b6c34963", + "f8c563fc75b1a52cd6394f57664cc1a63d700a60e3a6421f951e100a28987bc5bcb9777b7a22298614c7cd23b05104ff5a70e6", + "01c3de61b62d1237369a563a05e55bf0583542737ec287dbd0608533d0eac05ab914bf469dc6f4b5f5b5449b1aa748c61dd3a583cef227cadd8afc36d4deedbe4fdd2bc5a342c77ea58a15e1802dd363", + "291793edd8e8d07c0eb4aa6fde2f0d5a3b05d2293419debd50681d5ec0f1c971557ad4d46db2f16a49aab4870e5ba0934e0e71" + }, + { /* i=7695 cDividendBits=2483 cDivisorBits=1352 */ + "06bba69efdaa18a244b92e0a1a7ffe3cd083b89ade7ef57cbd2e3b3105a9bdf8dd9242b262e2bcad5816f02dc0663d8a456640065025c3446004cdb6f3d047ee7a7d956c0751a82d2f032681cc4084b24be355765d1d11bab874b442142d3a5ee5321a3ca2348549df52d5159d02cef15654983a00dde05c4525a5ebca1e900b2e2573d2101061cbda25dd84a3da507eaf4580b9dc1b2d5ae5fb87f9f169651357c6add2a72db922eba8aa91364200d79179f7bf12d064eae4d1b7b683582d05799bc8f071c72c791d925aa478bbd151b4bd9804e71e3070c80c69ed794be0a1bb67741cc2ba1c483b7688bdb805fcbda16cf1a563880ffd66903dfa9ff16644849e1f59a088c5f576a45ac60d07901721311b119a35dccccdcb9290824427bbccd4c68ac7b603db3d9fe98491f531fb83799bee807883", + "81ed9f6da885494eafcdecd0d60bed4f905cdfb9eb4743335782f3de26bcf74c939261e7290191dc61d0327dfec6f86842804746b8481fa3350e12c1ec2209809812c1e2b0dbcbbf01d3b081dcf1c7d40863dcc613a74b483a84fefbc626d907a2995a7a256b50eb068caf1c0b9ffb62f0d30a61a5a73d2437da8b0e87fe88f408856cf5021dd3ed1669ce2ec16e32a5b5bcfc7f096c6fee7a318dd02ed77fec30f695c04c4d1ed943", + "0d44244449c51a5328681dc33ecc81d604f2acb7448b6dde0467b7e304553531cce257a67de6a7b8a26fcfda2a6dc2c1bf852edc96f5cd95e5400fb9257e238c9b28d73da9a525011c148b3d91be4da21e58cd9bc6dc0f89f5fc4e4bbbdbd253a4215a3a9ca83a582cf6478418fcf550bbed355716fc8617f0be3e8e01f7c4637893b00b6f258b1354d2ecb6693d", + "5be3006961e6f9601bc5837a21ced707ecd4af4278c72eefce3042c3434413d2fa9b914439c5bafc48fc2b663a69f4a71bba5c31536ebea224b85f613af725e9e2f94a8685bb12592015ded6bab00ca8e791a09c00387ce6180a56f497f1c8f8f6ff8c4c2c21f3a02fddff8796a3d00f8896edf1e47e5484a0149e963f187428de7f6a2943158512af9fe4bfe2cff50dceae27ad44459fc6727a59ae719c1087d0dd0ce29dad68388c" + }, + { /* i=7696 cDividendBits=3677 cDivisorBits=3569 */ + "1bbbe67fb299d7c49b3d359a755ac23756e4ccde9f3de80bd5610e7f6976ef4c64f9262478fa3b6842318fc6d05473db36c3f27eb48e3a1ec3b253c37e7f120fc70a50d1bd3f30cab67d550488b661cd07c90fb8bc3f4e3288a0ba4a1152a0bde9880fba86a38deede3ced5e14b97213504307bc6c39709f9e866783737b3abf0bf80de1f42410d01779dd65c5cc27ec3cf03162877ef29ae01df1f1a93f40619a5ec7a110544a6b7784ad9cd9d937d34683d729c0140e9c51c8550d6ad66539d71fd388f735c914faca208ba22bec8357bf1331a532fec70239a68f6ee36336cf9a8abc1ead2718a4b91f96e7f10382a160e6d05daf6f327b79077f937470805d9cc5ea99a5f27f5d3d0b34aed3e1e37a6a694ab21fd159b0ba88d51419769e200989152cbab1555190200e51089876794b19c3cb76f9cfcbaeef23f7632c41eaf774d25119ab74aba4d19dd0b18489246fcd963d98d4fdd7fb4aa4e06c30427bdabbfcbc6052c64ec82823836629bcc19baf4f60139d3f7c0243538118da69dc8ab04ac3b75d1a573ee225cd23c3d5d8be771ab8bc4ce3cfc2aa4fb60118642315f82697db3293e61a54fbcff7027bac342cf22c5ea579d03b1c735e93c80e6fd4036e97e469af5d9505cc", + "0140d371980a722e2dcab0fc8cfc7f364a14059a9e37087c3aa3a88dbaf42d0e823266d5170d01a4adaf4ab17619b304c22acce3eb5d630dd0e84114ec0cac5614c891c7e467c114d0d24d5b36b06bed9732aaa88cc1232bd1323a92a87fb26b3ecd37c5651552d5b976ba6ab6810963e45e33444c270c5736651e21322234e75449b99f9968e3f2890cce42281195e940fdd03f18101db23a10b541f6bd7cafab0c9bf385e783bc88588f433e3f9b5f8bd5b6e9f22b31e05eb840fc71f6f4129951ea41964c2ab6cdeb73dc4228c446d4329085e2b854a04f4a9a1d925a786ce8b2b9144098c9b4a31e1187be52dd6783eafde2e1e9be7948a6686f19056198858589b0f3a0a053aed1b20ddf2ce2fb2152620830e087333755119fee455584406a08b5733d63eb71e7dba3e92ef6ae8e68e417cf993b1e2a2d3cbf506989e41deb726297f1ce9bde868fea63645ccccfca517e03112425edfa96952fdd2b00e7be7b5fbe13db052bbd6f3f5557abd3f75ffb286878cad526da855a39b5b66011a519fcb7fc857ea462e9a3efad07a613121af25d57b10995d3362dad696f2946b87089f896fcd3bf6685e39b3195ff598f3493268889400a8b131266a65a", + "16214c300c8e4d4a4f8b5d41fe60", + "0122e68eeee649b199782f09005dc87a8efac43a0ae9008edc7d1755feeed56ac2dda426352ce2b4adf0e5ded19874474bee65506e93abf696eb13defe8e4c78b16b18434e025783aeff410d9663fa6dcf24545eaaffadb21988ea6f01b389724e61ea96f86186a9f3dfc1a1fa651ddd88e2f61a36144568df513223913256ccd03c35fbdf1ea4ea1b35a3bf8d81891a5e44781abdf0834580536ce56e605e3118ef72b842323c80f01f56d5b17c9fd0faf9972d654ba9a43bfd58ab5608741b401d538036b796b76783d9080aedc9d359acd0a9c30931df79045041cb343444031ad654151be01983e2595fa2480dda4297e4e3c0e17e5e34d314ec77ffba68b97b909eead7e19e54fd47d5b02eb2ef8c5d08ce60c20dcc668a50f1d476580e56a70c8015d8dd4dcd0ec30b1bda11da0b14104beeb8aa1f0e5dfdfe647bfb2f88b5812ccb663fb6483a917cb1891f8207e765ad4d7c2709e426bdbb3092abd5db5ecaf6febd29dbff33f7aafcd9eda7445d21d4a88ed9ffd462a978d73a5e2cbd0836a0dd5faa2c60ab0e7fe8b71c4f0f2773a284ee277490727add2df41f0f7de3993123f896b0d3e6ccf7e0577bce2c3e1d9a7e758f0d5646e9af2f580c" + }, + { /* i=7697 cDividendBits=1972 cDivisorBits=178 */ + "0d5f08bb93741aa574f4545fc7f0459991cb79e1fa7b33f8de32391016d27c8d0a43db0c66bef3750672ff30c7a847cb59dc3b0031c4c7d412c76e4078cf6d1242135e8bb973a5ce03f589a8f9540809e47b02a4caa124f8c80455679c5504ae45dc4f755d7457fa5da63a675c3d31bb793b34c6c6e4d32ae98f5518c0e7f34f8cc6e058eab06511a40513aae887a5ba7c476584d29ee5be70377b2f6f2043f4f0bf0fb0dd57a4391106e241f2e34012ba072e574a87ceabe9b4af19e7b5d0857491e002a01517c8be55d4d167b167e794f3a82f9a01b069037267337f3194085636b7546fbc9fb529f39a6fd8f08efc88ce0dbbbcde52", + "03f6e46444776b819942e4b2aea8a5cd32f9a685e9744b", + "035f7032dd0239d502ee2f605bab59affbdc97776da1632ec0064d12ec620325da3a9a6054ff5ac291f1019473ffc2e2397bcaa1bbd173ef1522d31e3db190cb897c8b6259bb5b64ef65a9ea2dae0e9b8bf942783ec489bc6c7539cac87d2c8f73b13920f5dbef834b41d14c314473df8ea0856b45f0db07f2413d816f630ad831ca71bd33026a01cc654282e2ce6ed5835e90617b90c2e449126ddcd756c000f6b4b755a60936afd42e1fa23fbe7c2e654b73a4f12a2a11a374830ed0ed3ef1bcddd5e6311d5292075f19d465ecc049ba7d3867563528d5b90bed07747e721650", + "011beca21911e587bf48d484ea661866b032531f6414e2" + }, + { /* i=7698 cDividendBits=1524 cDivisorBits=243 */ + "02ccfa1d7c1699a8a3148504e2d51cc6527cf0bdab6981682e0d8f84302ba9c1cb6b6cdb85b95f510085a34ca3c193c1f237adc32b2f2550d504354e7c197b5ee9c8b84f7610d3a75933b712ccb831058a8c65dce85ca99a33f8a00d987860ff9572aaf4acb14efe9e30415834c1378a367e6149db8ef4bda9eefcf3e99d4d0c148aa214b234121164271bed5ce61cd48c1f1325f2cddba73cb5e69cc963d232687decb636216362a12c0b4fc7fe020be7fe51000359ab2b221ab61a4c9ae5", + "0122ab75989657bc94cbfd4ec1143132a45b5ea69050d807a76efbc7915a92", + "027775926f5f039176b63933d875c084d4292c34c813c042cd7b37670b6c24398068a1a22243ed3a4236e3f070cc2d3218739d37dbd3d83619c2e59ff38dbce1a22f3e9a8a180755956328a44a880eebc784125c1df1a10d0c116507a7ad02be242e1fc1e7477401d5c77c0fc0a77e813cd4f726ba04a668fab6866a4c8138f2dc2da6e4151e29321eae8ec7394c39ad9323a0b1f05091026426eac72e0828590a", + "0ed0bc8d4e3634f16ad96fdd0e7d9df70aee92f87c3a2474beb80f524f31" + }, + { /* i=7699 cDividendBits=1656 cDivisorBits=408 */ + "0ce4704623750a0a6f055644ef64ecbaee230a8b6b3102c3ac3f12751189eb455530e496d402b47ef9ad15f16b1e7eba2d2dd1d0388c08e3b0a724cdc8f141e1531577fe8dce02ea58f92e557bdc99ebfde50161067139c245bd6fdefd9fae6ffbfc0db96ed9ed0369a365a3e76924b905621a6cf3185e0bf8908f168870f2f2f616ca6f8de06d5060766458d852bd8512266b7c6dfc61a72f8c8fa3dfc95d59d38d9f17d308259493298780074abc48bfb996ae848bac10278428aa81fb1e6faa8027f4398681170d48099cc586b3", + "39e2f15121950e4de001f010fb2ea6518c45e916b5ad5ec05d963ded9e3126592d27ef07f2f6b16489fdd0e188fd62cde29a70", + "390404691111bc87be69cad86beb8b7e2d7897088b77fd267c2503dc798c1fc55ede64c02e12a98f3b04a9c1ab9d2f380697149727aba45b68df928736dce1b22bc8795ad01cf7b3dcab3e21d85592301eaee01ad6e1786c8b20fe661d6e2d4af44c82fd8529aadddc0ceb246c2dd301c84027ab433d93797e40949f0e784bf08e4ff6ade972fa9bd060d646b2084134118661f4ed02e2232d49f513", + "2c0c6b0fdb40e778c08cb87a3e625eb912af98d365f6fd56dd99f04d3638490170cb8bbf353cb0bdf17dca88d36296bd36e063" + }, + { /* i=7700 cDividendBits=753 cDivisorBits=136 */ + "a52e6b5fe6fc4cfc169069f579b6fc8722861fa73d44ea30740b79b081c6c857df69411b494b50df02255afe032ffbf355c6f4ec01231b5152cd30c003e6e5388398cd762fb7bd1abc7b7bc623df1f5d183341f5e7c5025dfc8df867c4fb", + "caef362958a8331a452cb803006db61c75", + "d05ff2f61763cdca4db37ae1b7c753bb67d5e777592af4b83709020c6f4fe604083243d5b4834bcc022888a62629afaa712d71bed96b9595fac7221219e025f8435e8097ef7786d790e6ac14eb", + "28ddb9e75190ca4f483dc799dacb668194" + }, + { /* i=7701 cDividendBits=348 cDivisorBits=105 */ + "78ac79af2b075217ba8f07ba1670594f422c541abd195ac1d4987bfbfa759b50016d0019f50239781748a6", + "01f7a0071b4619c5f51858e19f6f", + "3d5718b5167d90a55377248aae0d9f200a763669fafa8307dace5de7f059", + "1286a21d5ebcbdfd9adc05cb0f" + }, + { /* i=7702 cDividendBits=3356 cDivisorBits=1687 */ + "08057d2cedc51e52d73f74caa088151cf2742e7df737f94922c3c8e80300b9ef6e6b0cbb5d5c049bdd73124d5239a36ac6fca8a51f4c0b8f4a1b97cc2165b054e8d212942e3c78d6aa303dd4be028fc7307313af60ca4d3a3deb560e41801088bd0802b1361723d3018ef14d1fa255b4bda348128ff482d5f97eccbc74e4501a2459fbb72db52c634c80de4fe42f6c6d410a0c16534ccfe63e0cd082b51bd33e7f1c0fcefb384a6ce7f60cc4d6eab791971c393c07bbc6dbbc6ccf4d5a5853b4557995b4314200b84fc5e769f54b29c568424e54f9902d89e9ce64f405dd433e66924f4952535b2beb27494777e034461beeb5aea0562565820e7159f98ddc0f98baff5901d0bd6ccc7c826112c4523c4bfe95c6186eec839f931426ce592e816172535e1f8c438a3c36550cdd8206681671e48ab5f48421e566eca162ebd2b6d3f4fa407e0405a3274d06808a7dedf6fb37c60bc4a400dd40d1d9339e74c47f21762fc85574cf63ce1c949c9bcc5cc3529a39e57c5696832925ad5ca773ac32917209a03f6452b412f0c9c6af99ec278361ae74d746d91d233f51fadf49637764fe30ff", + "7c8a50a34f49404481bab9d4434c9a101e9c0f7a2e9641e50936c9e972ce7abf117f80a010713dc05c6d01d14fd97ca074e6f7d7eb328ec2a2b1ad9a7bd6f43467db715e51007dc2e2a335f3027c0d9618893bd7ae450a48f050569a1441e4588b56bc776dd1cbdce119979edbe8bf3e1ccb5000d0e8e8e3dcd6eb9b7fced8449917d4031ceaba2be2deea17efc3061c6af0420472c766bfd8c829829cdce2d742fdf494c1357f6ecaa2f9818ad6e72f6ae828c74cbed2f7d165e3f3d5690ab06e64037f869931d42490cefecaff32c8596a9d", + "107d11ad008280d503437bcd3ff384b105ec32ed5d5a6fcfc2e92f806c91e3da554154da3e21b221f4b4235eacefa4c9aacab6d4fd823333d1ee832d8a639b15a5c6454b2eca42b35df6b1d2677723cd785e4b873d90f0b3fdf0bdb9846073027284d566390797cdd22c47f92dd8736f419336d4e8e1175927ed0273e384bb63ae2bba08a380a0e9e2b2faa4554abfb65d7cfebda96aa7bb6836a2681a862d71c192ba82541b067f1c263bd7c2ee8653323ec0acb95cd15733a85be73882507e881a64984e7977e26339b7e44cfab0215b", + "6440e4a3a1ed8bb162201418cffc56dc0d1719ce0cd475e8c5a26ddd4dbae93627f38600f5ba7cdf02a517387cce8a0170e6b6558c2fa949db78431a1f932e8474689986cfc7344a7a5d07d4c4fc55f93694aec7a8cf1f249b9c2b897c256ed02a4003b456668b9022a0f4b4e5de79b4754127444852ad7ae0948f0b42efdfc4bdee74b2347d3ab4d182077ec3d021330047c2c04193563e52fd73fdf7d35f032a14e92ab2483117886b0e0c277b13ac235a184310b67a1fa19229c99a4b8815d39ff5edc21ce3f64fcde4ceef966408870e30" + }, + { /* i=7703 cDividendBits=2938 cDivisorBits=1651 */ + "011a3827a180119bda26441cc0299a38f9774a4cd3c501b8fba12cc45de381b4aef4928c441ae1615ffcac6ead5b83f607966b4cd99b68a512d48fdcbdbd5f54a1e705ba39597020e9a55a684b78ce2a3a7f5a56600bbcacafcb744ab73dd9036d23bb948df275f341d8a6ddf73fdad4b36d2a6840abf43eff5dbf3a67cd4cb5550b428c528a740375f3c3ff39d7b9fd5d77b8d493ad04675510a25c466d7088b4dc437803e158c68f39ffa169acbf86ac8707b4b838e9d1c9197dc0e2f2798977dceb67a0fd49eb1555331b11c6ea2df9e512d95aef523a9e3a5971e325057e12daab002707384ad47465bbd20d38ea1fe142e98a3db56807324d0b822cfe65a196392b831ac962f1aadbaefc3004ac3578126af5394244d4be5b5831294fd0064b86992d64dcfc6c6bd0b25398f784179512daed11b31a673c21eb073584bdc19b81fd51d66db5a215c000fe8baafe215d5a51878b76634c432cac9248740810d58c772aa3f1cf93d68b471253df9f", + "043f6fdafc53bb2db98d1d54e6f3c92d9dd10cd4688648ee2f1f69628ac58521173a7ca6f631cfbae6344b662b17b18f0fcc0f7d311f1788b1441df17fd2ddee3efb183db9cbce6acfafa7c5730527d3f0a64c4ad407883762624ac83a66a95dfb7e4c042e579b7e84bf5746cefac5daad7f498dca9764e7240a3e7a08f1ad35e75311cbd0aec9e12202b655db14a07db836e49ec53fe675eb4e8c702e91c0de1522a482d559cecf30e3c6c4392c40111fa4e71101b16bdfe3458d6e523b636598f76ad5a4858386e826c2d38ef42a", + "42705e38de8493feca94f624657658c5d0f8ba93914290ed9bd6b7b00f7bb8919d84c9b375e36f99debe72a7667f4563191dc0e7f9df57f330ffb2c1e6997813d0d4b244f85674de31a7215e32e2857751245e19bc3291799d0e0c8e8faa11c24c00c2a26286a05654a1d0ff56ac001407dc71384316a9bc5ce8a4d4da07ef34815cce1daf96ebc331b2bd9b447c81161d37cc2d85b807eb4d2e7bede53b915d88", + "01036facc97d3bb160b9e789e4b2b185ea7fbb8e034983a9cbeac667915de2411adb30a697588755d71145af3cc23f2d8b36e86dfd6862a43af8a68dc399227e2593b81f12b4886b86442ebcdc72a56cd3b0a6824f6f9bb6b930a245525693ad06c7900efa4ef29097df8a13f37c9658d6a692b91801201095ff181b56e693b196486f528b2563f60596938993ccb889faa3eea89598d20e5f6a7bb796d97b5c3b3da7d5598ba60880396829951c8d4229a6569054b9b226bc3f7b3ba0291e26475f0f02b0f32d44381b1bc5e4e74f" + }, + { /* i=7704 cDividendBits=1703 cDivisorBits=1115 */ + "634784cc0c87a6be300f9a63d9c0e225a79970d177b00d94d6ba6cc9529c7e0e707e5875abd8e6e7fa9953badbdec4230939b8ebb4398224e1e4522f4ac4f222d3aa968e59dca0dbc98f990bef953db53f16d8a3a8210f929921bc1a2e91be36eddce87e84f4464b3c47d9b89a2cd0912abbf664375c1772f06e9a7b0d2c9126a920e9a86b0344ce317b661e021008e5ac034a2d0ee2522b4f9ae913bb42a27fd644f37ac66bfeee660a6f7874589418ec57fa67c2387ce0b64ffb23901b619cf395659c81dc76108961496748d09e14f72307776d", + "014248c00ad04a9229df14475f7fbf7856b12693837208a58568e94ea83f8c7a80104f9d92a11e2377a6c6f141b8db558b7a382d4258012215e6b6aa288ee2e1dd751b639226f791a8d4898affbe1246d66881f143dcd54dbc4517af1ebc654942bb2ef678992f6fb7cc8330ddbad1c33cf8128ef1a8fd980a93af4107f00e4fd91a4ef6b2288985814855a4", + "4edc4f3ef6f334221489219cc296ed4efb9cf194bce34a34afc3131c779720d7d21c78fb0a7dfcd73ba529348ae6417c977c55c2d9ff7a4e1ef55bacc594c23f6fa3fc568403360b1c38", + "44277fd70b81bb0c98bfe7e9bf6a5a7e33a6e1ab111cee145db17d24b98b9f66b8927dbaaa65208c302005eead95a60fed23af8f488f9e0bb2c9e084abb7754526a0f0d57503d963147fab13493bd2d6980483bc8b0d128cf5a4e0831117f99ec65506665d8bbf102a015c26239ec44f2515e0bac0346010de3673a9b5a537efab37d5519a0486abcacb8d" + }, + { /* i=7705 cDividendBits=878 cDivisorBits=312 */ + "0711ae2f330c5551e2f8368c1d33af7674c736bfb946b4e10624cedbc963610ce869d5c1e8220aabef4e58b24e36c3e72724e03c2f203d5fed459e6f4b95c3d3edeaaddb0e8607bb833d1e9afcb239677dd3d3053fc209912fada757ad7cb7127c045ebebb4b6fbaf0f775b81dda", + "08baa6a69408803aa636ae86572e494e5e8bd393311eb72d674cbebcb68567e445af4ef3010dd6", + "cf50d0515311ddf77fb17fa94767ac556e814e0bc6f49a888f166460dfbc1d4e44909733d95be0b62ebec42539ddfa85f4173e040dc0c122785a99d775aac85e989ddc8c604075", + "2f9aaec3ac573caa02c973866abae675b93cf254c19707f0d23110dc69f8801a3f43ea874b0c" + }, + { /* i=7706 cDividendBits=3990 cDivisorBits=619 */ + "1e6b030b11275ce97958b864597f76556cdfbc5faab1e91eea171918ede64ef0994f8e692226ca6024a41f6ec6051a801373198a37225c487f00c1b2b9dc603d9343ec6b00cb8942649e0b1883c131e86b54e9f34fcae9a9e20de468d8cb446371d4033d6385cdd4b01f4efec34d06bf135583e2c564c055720be784a11741b7b6a600f5a3d1881fb5e11fdbc747683870901458895508de51f2a7c3682990e5b288fb236c173da727f630ba5ee123fb6952905ec6d84f9ebade51d4e7f99041860a1435bcfdc4fad8d280091fc98e6705ea72ffe20daa29a5867af8029399eb5457d2c535cc3199c92563b6c892a318c238c59e86c915339c0b1f4126584ba7298c0a45587cd48f6502f1a43e4530dc5798199c001bc51ad419ef62c873fcc3cde409b53c2aac2cb8ad9eb418140165565ac58458ea128ffbc1c5d107a7a0363e2b9329b6e95399bd5c025c70d071df92cc142c650aef5b984b6179d44f7265f231ff56c555c5cb34680f317572eae7be8d368d14ee72760efc21b27efe6e18809b84eeba8fa39c61b0b6dd2e3d8f0d4a48a48fba9bdf2e9b6fb7108338235fc3695b2554447d307b172774f5f4b599aeeea2c576551fe480fc27d5b434e75605bdf546afaf7229517c16a93aced5c7346b54daa4f4cb25c851cd32e2d1178007aa459bb376512cbb330cdb4111648cdcf6c5", + "061496fe16d53cb0ae99f3db4fefc697f4d72ce135c28bb3fc0c088d70de78d58a513c1efa6f5068387761c06b645c75c0fc55f4ff94ffad28c90c012fe1bbd9ce5e2eda63e9b86ba7e102b52ea6", + "0500ab0dc69aa23e6f8a9702c2260ef1e2a5df3a16dc5617edc63f2571eff52cf6f89dc0b1c71aa670a6c7774542b935e4f10cb96c459e4ea7c68c5f8b9b5c51d5268eea2cc3f8affb182ce4b5a6b1c98bda57d8998adad7cf92577ff0637a4c98c5d6f7da28ade0f5c14dd646b52ba167d818e7333c55204b7af015eaa71e3c7a3b6934473b80275904810ac89bf665a7e7630fe80c9c29f9d38a32947b7c22d38e235f96ed849d963455b11e076d6ab64295e1a7fc50d05a067f735f3d77e48cc18ea2d52b7749a4e59b3145261268c653238437cbc8111aad1658d16765084b3589c9c4e2602637d718257d0529ead641ff22635542c77d87e814f88b78242d38747de47e5d7b04e8886e26d2c74588887be704888de77eaf1d551416828e4a1ddc23719808b977d2adedcdbe4e80f1ab994af94d129ff89734c3d92adcc661ecdf39cb4c86d509ffc7ba3c3208d39a873cbcdf4dd7f0ade3256591a246d31dcd6bddaafcbf1ecc3a98aed53d52f0e28796715b7355e395f5da6e4c69cd6303f4842cb53c379a1deb960eafea95762d4785e8306e99b92f083d07a8240a74509a0932a4fa", + "044512b9512c281ce0148c208452be5071c296d028201fdc0efee085ef52878b01fa30252689c6a73cd8fbb988c40a8f72366282a0d95f8f032c296c85061dc066ea3a66fd4438be2408e39f10a9" + }, + { /* i=7707 cDividendBits=1779 cDivisorBits=1497 */ + "030c0b4ffb4fb396a0175ceefbcb1cef8fc52baca0f47eeb396a05b5d5b2ad88a5da26dd252829ca7a656ec8e627f33777182bf38776783ec506ee57a40dfbd92c5c3fd9c663725c45e5bf695bcbcc4a057dd854ade8960752f92592c5d75a629fa6792fc1e758737a4f5ee43b31c442f95906d90711043d8ac0c555b8fc8b60d8003a8c609551099ad24946b55cd2167f5731cd01a24149b54278828e3b1027d71dff2067466821465c9632d5ead3aeba18d00dd29176ac603fb9a11bb8fc90f460d1e5df41f9f734d861ba46b68d8331fd552ff20bf0e9d247229f7e7df2", + "f0fe0aa4db9595b1e6749779707c8438e72f5acb9c2c4ece13cf0682822f3058c3e3de48567758e2dd1323d6d767d554413ff6b0be751f0eb8afa1770c20d4943f6d59718456ff44deb95c65a593a0479022bec1b51a51536ee733c6fffa2463e5197542773a8d29ec64afb5dd0d6b6fe011e3de602da6e1df149a3e96315d12555ac76e16f137e2deeb5713ed8a06559a81a7a1ed814c3cf6bd8cc07b60e935808b075cd8e8ac3c084037b0999fa002498f51ee59d8afb569cfad", + "033c9ef7424e93b326a9661eef76c94b90569a98003ae4b7ece80105a3ce6d5be6d2176e", + "27771b1c6bd502b3b37a4a53b43f1a2225678f42a108641c08dd7f8c69743ac40a49e3b8d4e495045107cf91efcf8b50a03bf395479d730781c351f9d2923b3c5c9932e5e5eee0bb7a18be095b69c5f8b7f2116310dc772a7366f8ce08f1e5be595bb6440e9662fd8b728da6d111f3d07c02de5b7a89ce89c2859d1e04011de96deb6361ebbfcd360779465a7910b6cf8b7fd3ca1c7e9680d557691c43a05a2520d6007d3ebaa446f4dc722acbd23d8c59ef7c016005756074b69c" + }, + { /* i=7708 cDividendBits=2953 cDivisorBits=1049 */ + "01846cb8ff363a89f6c2eb008e478aa8ba98692725b3befa9440bcbd0ab43f3a004d7a4373ead7ea556c8ee7f316ef54c519d1d66328b3c7cd6efffbb10a8d25c6e21a5d72cfc202a385d064fd2063e1ea6bbd6f92a5d58883d20b06b58d6f51b5acf6f244a007f883748c4f250c1f1360ff3be30b31e26f43b9e999cc8072d8c3698c00c0dd063f2447054532064a6c6de67afa9955f2357054fd7aa47bcd49eb21e4f0acc3459ad4bd6826b93c7e3b2825e74a40f812a3145b47c4a705e8ef21d8d6d320a673e8c97f45452325c6627991478eb33b5d4c3259630bfd4fef48a3279a5793c0fc7a7324e7259911fbc9911c7b9eaaba82936ce0df8b1004da0db406f1030d3841a6b75992bc7e0f7878efd82552dc108b66b6c588d04bbca512615c00e12129583f459114c4c2e3d865610fed4c94c0db55cbf29acea4674bfe9af8b37e1939fd1127e777712b370f6c46b2afb826eb9c0039f0a5eef27f790dafd16c5905c36a6ecc6baf2436b32588ad94", + "cefd5b0370a700e0e73323f6ed51b3cb4c2e84eaa4922a3fe5fe4cb93f5a3e1a341a8a2c33af76e2e24a4953e9af27997f2f9ae74759e459bae796beb538297b6c8b4a1f955df3e1e688852347c5a34b4728e5c3184c02579b01c7a5dbac416c9510b02698445849375e2c0f8f9017aed304a0d95c63e147a2f24fcccce70e4e6c4b4e", + "01e065056df4e0ad8eae8fedd058aa165fa2081d85bcb99f5daa41124d00f0cbc7681c7e566c996ef211ea2ee6d8b2d60839d3e41ec5337b00d25a155ad86f22806711ad2fcd2d6b4cab3cc9d5276a32c9cb4504936b0c9dcc972570dcf1f9bf584cfe99327f8826bb18d5716321639b7cffc2a24caca940a5238abc4b3da1242cc4da28d946e0b8d48f64722738b2b19cfeeeb3573797f7322b32587d642e3741fcd27a6f533365de2bdae1cd22bb6de9af800e409248da95cde141f314e478d630ab7c637ecdd7f933ce9f29affc2980180a6ab99160c1ea4d58d3e836495fde34549bcd39d207b6a7def979edf2", + "215e7e0f931777a115cf9cf8463d04b2ab30b31aef87c8792d2077aaba1149063561c5bca3f39bde7f548409e919291b38c9ad9cf545c1276367b9f1e3a9f7b9ef660c411668002d2851b2b77bd144daf786b99780dedf3090c6d3f31095d90e6a1efcd6b508c518db560a5ba4e084a4cd6564edbca8e1cc5b3432f101f6804b9447d8" + }, + { /* i=7709 cDividendBits=1358 cDivisorBits=261 */ + "33a12424d9da16e217b09416511a6592b8d55db3ba13feddee7cd5a6988423fa6dddad6ebb51be75a47520f8476d93f4079ee9addba0875ec4117bfe0755b72f007475b88f43429bbaa7337c9135f110b6525ec5bb1977684e0935d78f2a60d981ba20f5c78b23fe87ee0a3e9a9a17d61a5b1e57db02e586129d48f018798e5e1839177edea92951231ff005e091d1dfe058b2fd1113490f0b954dfc4b7232cd012876351fa6c64b5149", + "0a319efaff8b61cf858380b8c80ca409e66556292122fed5b66eadbe8674515dd6", + "0510950aa852c1727fce184ff99861c7a99c4672d4145b2568655ac6752b983006f79e1b5720410fa0b03476c7e8617a005780c267fc70629f8118be10778c8fbf4a54a01b74fb1fe77ef97f7e3d72eeea65d76b98ef3693b0234f3c222fb27e9264a4adb0279b7fa2e6f74f7a5998f6696a1fc6f1c7063c802e9206038742b18b655e70cf3598bb2caf", + "01adb566df920688a06d41bf78800693bac70b11ffcc5067036e11074aab3963ff" + }, + { /* i=7710 cDividendBits=3778 cDivisorBits=1021 */ + "09f4bc70880d9c424a330636e8ea0d7e45bd105f416b93fbd97e2d4d3fc975b94b968a632d3929aa91afb07decba06b574b41a05791a90489738efb7f7cfb83894a970d5ae3c8ded48ba8d7119510014851bc66d50d1534b6fb9849888ab39aa9facb2a34f1ab6f8f5395a5961047a1a20a06ce050bc1b1f42f4124ba5aa08d4bbb2ee5245f279896200b4b29b5720fd3deea5f8a8d2b7744ba5b2df51101d27dbbe997a95dc0c253b6d32d70598fdf75420aa35c7d6fb9d7a499a43977d28b005c7e99ba300304188a4b77cef7259d67b6f0e3a0bdb4dae83695d7c4be7a60913d239b9661a0d8a41b7e5c5b660cd220ac73d80232433aaf7d6bf5da1955835a0eb12425161a9ab8d8113bcfeb286d97c8253c2a861c4c8c418bece9d67bd9af0dc47995fbd50c251ddf6fe0f400906e01c1cd0adafaa8e0ece84b736cf3389b3e790d0fa7d12aa327e7b472e9dffcc6e5df0de2e8ad964ace0ae07196a4ea88037ebaab1ee6e4ce6f5ae99b4d97decc3f39d1d5d7aa921b78805d2948954430424211f40cd531a7dde7395b0780fd0b3d7a59d808e0edecc3fa9afe622ba10a85dcf3c50210f85595ad00115e79559763195e2e395c5e5ce8ea4ba1d711914cfb31f48818fb70651d31c77806827a12ce5c9b4ce45cef8", + "12c88ba6b72a76fdcc9837170c4859627caf47fb6b006729cb5be1143ee263e7c7b0da6c3ae2d708f0110cc8232c5383f7c511d7f1a7e06af800a15d10ab97273ae866310606d91674638fc44085f5186b0d9e5f8b24ec2bea338745f4b921d9117f40200b353c415d66298f0d2920822e23c29f32b89f9a94a04d19c03efea7", + "87b0e69bbe2a62f7b0889909bdae2f2cd4273621827129f7f6b7acf6212b1104298ae07afca4cd2ec66fb6c73247ac05fd3f01d759591bc2fced82a0e01815ad0aa20970dae658a029dbc14fea92b4eb7b260945626235cfffb00bbbd7512afd2a1ccc2c892ec0e5d70f9bf1cf8699086217f474da0de015dd28079b0061aaf44ceb3a5e7c7df322734005abd10d6c378147d6623514fe9a2d9f45f7d48c9631cbe29e72ae2382f2ca7ebf03ffc108572f452697cb6204d2212aef7175592485596e5db47e7dd91eb1258d5372b03dc622426412b7f3eac5e36be19322314e601d40f1d123cf9746dac9b07b234eec4285e60127306561ca16a0ab5f2bf1d416073c1f59d846ea46727fa9f7f3d18ab96067113d842b2cf1120649e9232cce795f0a057a3582084c6cb6d2eab33e2a6c012e7912cd8bd0b361eeb053f70a2a8123984fef2a828425b74b85534df6c682d7bc09e29b5c4218", + "05d8e40d61c48511e6089755d46d8e9cd30b9c2145f1254e3cfa2f4a73089460762812b7aa29d98f5fca080a2c3effd5b04c4a316e9df3aee222ea22213d347681082d4face8d94acfb1f9b91fff670cdd2a792b44b292ad7960d56d687456cd615e569469955e21d1e77153b006debfcf2d9f46d264551a6b220279e9b2e150" + }, + { /* i=7711 cDividendBits=106 cDivisorBits=93 */ + "02148429b749d577da3ffae2f709", + "1313e4166c9745683132a907", + "1be9", + "0e00c16d0b77b13adbf362aa" + }, + { /* i=7712 cDividendBits=3134 cDivisorBits=602 */ + "110a9d0c35f916c2cabe7b3f29e826b41c3339a7e59b7bb4481151d9bd9b5d2c26339a2af808cd5c0f4e741e3db8d3d4fddf5abffe35ac65f93d20310cbec0950e8e320365f8983d1108829e8a3efe35b4ad3e70e635cfc47b4f6b42a9bdcf6f9f20b76bda7d01eab423a4bee111c2eded5b22ee0a99923e2ea139b4889b93f99ff103ac45ee0f9756d7ddb0987178eb33fd1e09d6e8ada8e4eb0fd9ed2c39615ce63ba9d63a6f3af659eda49a448ea2ef4649953dd648db2a311aa896e4059461fbc36ce3d49ce9a14735fc1ca76729fa25a1a74df9ad94b6a39476f74b2e7e5e1a865351ded4fa4bff49b7c8041f87fea11153021044335796ba425a3b79d3cdf843b7796c30bd7aaf45e3ac99f8b9fdeaac2e03aa3a7f94987c29b8c253aa328159c7d6a58481e4838f41ade410b5be47320eb98545f90c3f4147f6bc5f465d66739b5e6532d7eb7291ffe573ddbe163d228c7bb5a0af0ce2ac73d31668b788cc8b42844bc44d4b2347cf28d7092fb50279ac8cf10524ae3477fd76512cbfe26efe144fef93a6", + "0366429e4697efd7dd0b588755414daca32d53645a0690b94891a8a74fa3e1e5b7aa4bc9f990efab595a5aa4378cd0f5b76253aec6868fe8d776bc8e6a1296efe1751f1f8eac511f95526e3f", + "050353e38031bcd9aa58ecb0fe9ed8bce69d21356a8a9d63b5b391c9d50a2f0a492107a86ae1f7b9b76e071a180a53041719fe94bf4b421447e664a5f63f53ebb855c2e36a4eb98f64ca5361072beb4bd6ad88b370be94033df36fabcdbbfc2088aef84a0c53280f45e257e608d66df70f94360a3aac118664180a831b17d287f3b76c7f63e775e5dc6c914819cd4dc91218906af41d0a2249b5e7209923735b0a267927b9a7a92dbc4f469ca328256069d8ab94f59b089d4c1cee25ec93b343e7365ec6b3bb5a87a41ba085f4d610c83347091b9acdb78337a95de1fd7d4a5791d04e13d7a0d12a898dc2ad871decb6d63068f90a7accf74f9e13a613bbc78a38f89b70b706bb7536954e62cc3e40d3d9c8c70391cfdd82847a6cb9cf1d995f288ddc92e281b64e55a4444615ba4c7779230d867fa9661e295488d96a", + "2f1668300a0d59d83f7fa8c0582b6076d1247ee301f9ea2a67da8b11a9489535d1307c9af2c99285d97858b86524fdc1262d159cd344f9133c108d3a1b1f4549cbed263152375f5ee28690" + }, + { /* i=7713 cDividendBits=1067 cDivisorBits=267 */ + "0608c63465458fb80520d21ef5c822bc276a3d099ac7b6fa651ce47a9ed159d7dd2224fe9fd33cea2be8e8b635828e7cea124ace33f1982e3501830fce2b72da027c64fde52bfc730ccdfaa3614e690e8a87442ae8e4148f29270d5a4bb0ce02d6db129af35ee3127d4f04f1c3aa3e2e4e184611516b7c21071ccdee4780b5cc5749b0306f86", + "04d2f44ea93de4dc5f98246efdd77b634a4f19f065873e61696fc79bb08ffdec01ae", + "0140396230a5f5689d135e82788209ec83c5896b38eb7d01e2e4475b910fdf1b11747ef7e431f07a73002c80b8107e8767bcb086538ddbb688c6215a4da6e31ae998776e15522132650bb0a344e2c87cbb5345cc607c831c057f9f89ce5a8a9d04664e4136", + "2343340df96dcc28a3ef35513351eedc065af5ed52db896ba71f9166255cf6e6d2" + }, + { /* i=7714 cDividendBits=3327 cDivisorBits=3168 */ + "31897726b5fe807ed7fd8b3f1d63bb4145eec8b4a035287d9d38be95418ab6b08cfac8a59a39e6cae5c57d8302d140b757621c03e042e6d6d0171985147455ea9b73812c3eeffe3cbd35e649b4b14f7a9f347d6daecde2026e987d097f964fefeeed8b82f7e392ec165177085fd7bdf776ead321168ea073d6f72976ae2e5559303ace37fa82a2d0b11ba9a0b4fb79283d1ec634bc30b66872139e80d28adb526a79209dd220575be17ed40168acfb5d91f14c8bb9bdd019550638782f099eedd50cc1fedd604cd3ca23d341def1f57c8b13345fc55d7e5db074227e271da7a5a2ab3ce8b48b119fc24199de39ad0081b611626f15bea427041e0d6232650b1e9b83f9718533152cecec0e037d07eb537ae0e46d33289282f6e08859c369030f834692be4f909e4f2943b51eb4ed3ed275a5d692cbd11fd134fb64fd603de53b0cfe8dc4ddd574632aee01d457e44a3bfa3f5cd3d055858445c5ac3e58d337e917f03661c81d3d31b16d259e973531b980e5d045b5d0529a06a9c14f41270a82bfefcae20cb264debd4628e3cbc8a5f3eb3f6474ce8b1e1a67000bb6402997c4", + "74ce302b1994b7d5e33bc66aef8aca745666a70b4244bbb8989f90e4159e7daac21b27255e2f968aeed79795894bf4c42d27a7b235d85385dbf00eed6d6410ee876d628bd38d872e8a1fb6829434e5f057f7d9ebe5d89c33e9119cc0355b0b335305949e7381c2049bc66458a971195c31c4d26bc12fc9ed62a1a8ec255cdff74142c24d091c29e78f5087b2a816db710b9c046e879e2ba8ab7eef83378c2759c818d5d62090eba466f93955c148af2c79263cbcba4d8b31385bfe30fc34d2b366922a1878566d254b1e4609f9a1e8ee517d56cf993afd2e455762cf01614e995dc8f3da8848ac176c5e4665ac5650a46aa678b96b718dd5657d5d1147302c27c9e337a600c82ecf78a1b739c32253ddbbfd39f36fe88e4ccf55a97ba5c21607929e9f2c333ddfbb18d97d0525ff7db0e4e9e59049a0ba63d2470c9e7d95273b49ec5e9443e9df15e813a866bcef89fada1b696c09467f1e29489d5bfbb0459dc8d3143d73ee0182a57b34d4c16f69d048818c5a0cc1fc2c2ad5aa7e8d5c33fd02c8828f9616395c6f1fb15a", + "6c91b3d05f848fcb2f1426c61b7d63f33dbad7e3", + "5d18ec9834f4395d747bcfbf2d6dd3b6b6df9bee6a528de595fb31a78c53ca7eb929a513056324f87afd292c6268202537a008b8fb8774d0b194d97d2533cacc08cf344926a7ea381ffdf9bfa57562a1cba1cfddc43c6536652b5cbf7a75a3476d7403c7e6adc39ab6be27de8433ad94a9b888c18a64b6bf79fffcea41e480f7d45254152efc41db97aefe167d1232204e67f92f016b0811804ff746b1321868f21be185170421bd0f9a936676f7ef5ab88d18906b208f7cf0b9538b9b62d6b956c2159ec98c1e06f91988f0ae16cb62a2a83ac5837c7213600eae4a484aaf98d74a5e38d593d981207caee2fa2d3b0daef676e56208da000260dad1966176ee7bdd05c18af1a58603057489a7e43cfd34cf776a2d0f6789a1684f9b37f6a4d1e47886c1cc56fa50abd05b774150dd39d66d0a6dc3a89c526eb4c92aaf966d4898a6d8a5961ec13fdafdabb96f45fbc72b93404fb1a8e823198a1cd8488d6a0d7dd1486f628cef64c5f0d83a0533462cecd80972905c2ed5c68280787fa56c590502166a1fde1cb4cbb8bef6" + }, + { /* i=7715 cDividendBits=2279 cDivisorBits=1250 */ + "058f72cc0e6ecefb46500fbd4d00b654004147b85f6275a68c1a24430770564dc440d14642c8aca7290d147a3bfd29c881a30e78e77263f93f27ec7702b9f36c6edfd0a0d1d7ea3d2bdf9bdb14f7bb4e0ffe6d646ba15fa9016017cddf73534664fc1e4f66a86a1aca191416d5d5206df3a7023ab02fc632f2100847ac7a7a4f975adffd84192264fe1483e86393dd891db618b238ec1dcb796c107a58fb534e30fe1ff867a1a27f71f10378dc4eda925f7b5f3eddda2093670a85b0f7467bffc4b2b9f1d78c8bea42f4f548e0d9c5ac314be8aef1a3da5422e59a9e5bd8af7c5e9c587771ec75837519fef0e1f336bc599d0429240f8b97d2d06e12cc1ded0c45bbf0117cff2ba2676fb7d14844b92099d4f0afa188ed69e5cae37ae1", + "9ab1380c0728d4be06d6248d614e00b0ae8fb7252fba7dbae28dd62b5e9d0b076d930e656dc35d6458f912841c538125a036407cd88b3e3b3c5c7bc83f7f655babaf1b391805a5cb7ec0e0698fe2953eb0b1f8cc1bdc21b18ae1a335c0380116493831c6a8dd061b7fa9edb2f122733b24b88fc19aecb4b4bc7e724faf9f3f604b71ab73a87b9b693d2324fa8936e48f5804b36c901c229b24b692af", + "0933a9a99640d1702ee00b21af143fcd1b8777ebe3b9d4acc54b5c402db18cb6fc60d2a9a4c71e9f015b7c9b452296774b2a4affcd762812efd46d3e5a60f84b02245df33c65e31da7a5513e0d6dd393f8d3de4d5a715ee14ea28bee7c7143b0e1b933b6be0ce1eff0e9adf9d42edd4d4aaed4513850e050491dd013043d54a01e", + "6e4e55faaf9f9d3e3bf49be63dbd2d202dd2a7efe3a2c44edf414a9462164e2cef118d830d3a7b15d7b54277dbec83943c5bfb7b37a41bc90b04e606d7587a277a452de2ef3d731d61191b1e0bae6cf4ee12f6fbffbf2b48eadf091846b47ec0f73dd15aba155862adbc45464b3b6801949257175495f318a1584374bddde12654dc26eb7f31f66ab0625e510f2da0bd3f0abc5a9c6b902d8d64ea5f" + }, + { /* i=7716 cDividendBits=3040 cDivisorBits=2719 */ + "3f8f180e0722d1c0040ec4ff9ebd7ff414a4ff7099f731b24f3ec697a4328badfd116602bd5a5ea4f46ec703b14e7785644e2498c0991dcc453f86b99210809c6d7f6ee53a5ee65db88a094223ced7b6b868b8a029ea04a56bfbd13c2c0dec6027f1599badb05513a609bca455360b1111257a3d2a1873e3a738278c4c67990a4b3f2fd033f9f13cf4ea347afc01aa5f30b7b16a34511220dadbc6ad15830091c912319f5c73c97567e8fa8ff6e246c85d0c4afcd93664c8ef2ac8caf9aa663769b5e95c49b28f93bdcdc2de8fc7c7f941242ce14f4110254a6c76ae6809fd421db48dc58d8b726c8effc69ea8a229b2dfebc3a74f34ae6b5bf6a767486f9fc6add886b53ce45257a7bf0549fb6c73fc6fe49cd1b704227ca6e045426745b8205e1cb796b413ed968c9ace4be99c1a5e61e0761fb3d1869d1e798afb5755a593c5874d0d439284346859a816a8d199e2ca187a97f3d3b354f1e03c68bfa5d32bf5796be032afe63db9f68b785bb6622891271c817ad89407e4b77a14", + "139f736e56097c8da22cf98510d74660844c1eed4c15f0cc86b0718635b1d9a7326c0b2e045199897d80ec5e8a3e5c9248d93d98426d3c7269a21299d20f3207955647a4011babecb461ddf4b2a13c7c1fead9724e9ba5b1b9b0d52b566b6b2b4bf8362cb0cb33849685c09dd8ebc5819ff5f8324aa407f17d753ba70a4a78ebbee7c8f0d503182a89181abb2d2afd1ac74a1404ebd91813ba8b4133d86a742b864b91442cf6ed6061a636a30a55a25496666c69ea6d55d925514efc81a8b87e75ff698bb6f83b0236606a3fda5c00b6c953960267ac25b072310418c5d6223e3d13d4a615a3f02e4b6e7800f6d41977a81c0154696d643073da30a1861ff30f85169930d463007efe64867a6dc087c1578e15e613ef750d76f25103fb25560fb96ad50c68b12d177fc75e54289f110068a7c6e3e87c087013042abc71f3b8638cc8195de8426969d89aea22fcca2e0c66b2df1d", + "033d30e27996e54498c978b9a4540d78a3b7d578fd73ddaa7f96de4ad813c4da97c38cd4809f5b2301", + "0b824330a179fa49c286a599afc4446c7538f0e2b43da9b1e7cc5479251adaf953a46a889e6c41dc5fe24341c4e2bddd678b872840b924f8eac5f40df3adfddf5b3867861cdb95c326b778cc53dc1249f2ca5af6f2b692fda161679592a74570d23db5a78d6d888a74de29687ea82b0976cdf278535799a571333a37cd5d3a54244166f70fc5874cdf970b989643817c0337b80b1956519ef583e5123d788a87e80c389ce359139825ccfcc57971ed0a81e10dec273d9a726229109e6f56715c0e9aebda6478297d19dca3272585ab418ae4605fe3fadf5a75b37f38b33d19118660110a4b837274e5747e10aaa81e627139b7fc4e1be4953dad792ce6fd0948ec51b16ba7c78f0e7bd5e830cb1bf46bf7fecb5845b7b5dfb771cd21d65015db899e97c0a87963b94dc323a6ee7dac17ed4267c5848af1fd2679025ea94303633ca1496897b1bc6b4227fa3732818748b734a3f7" + }, + { /* i=7717 cDividendBits=3055 cDivisorBits=2177 */ + "3290fae018744999d847a2d553377764cda0f41b17a197c44339e48243972217838c774aa24bad174b2e83dd15a5cb1124bacb474503cdbdde0afd45326b3fb4319aff410ec402388b9128e392e5189d74c033ce0f2faab446850393a2773779edcce444c0b3b8af6d925a05d7c590a8f8332fc3d3941a07b7a3826f45c4ccbef634a259c6b08a70c41abf33d58e6e3e486fa7805b0f7f37318273a47a75bbaec888999ca46261178c803ff2cb985c2120bbf390daa71dbc3595002af2264a4493fbbb00d04276b19ffcfe163ebc706541e956d0d284375c80208f68172bea3bd4dd86c3e2093e45f2d4eabc3b333ef7305c0c0fef7c0c619f97fd9e95a4e4665ff3ccbdd226d2ed5dd0936477a898d70d5883211a804fabdde9bf36a5046a6fdc766201524925ef9102142021442f175e9850f9a3814803e2489a40710b45a4a8b68095939bd98a71b5e49555cf07886ac5733934ffbc093f1c1c8f4b632edb4afdd7d1f2f200266cc99f35451ef7d6c2062a0bd9f88e92309b8083e045", + "544a7de568c7b87369e57e1e016348b5f8da0b81af1272426ccf14433476b8dd58101eb05daa0eae2c3a856f16c628a3c2a019077eb09969b7423ec1ab25ffa73149454d3d92a9934594319523e523a46dbb975e1baf671523663993be81dd5c8ac58039b626c691c86d1fdbb41596ca2fcd65bbeb2bb8e15ce48ca1c484f837916b1f458cec1939cf830e1295182fa15a9e6ca633f736a0a740349203450c07fbdf5d99e7c536805885ae2dcd678f1111e70e2d828da15137f09397f2965ac16b594fb250f1be08c0ae91bfd9e22405f65fa7e95f0aca3104440abdb8439b7a778be04d6e65e9ea5a38a8bb96730a4a6a9b6b95a75c744b03ac6a6f498952dc11b92015969b4fd944b5690b7ba9ddba", + "99932d2032984b37c7bc1fd0108f6f2c005355d25f7f54f693be01f1871dd537a65a5c59f4e24fed336852f979734c66a5b446967654c181f8e3cf6af9b303eaadb3d5fc8f9c30069191509b30f1c34ca5062215644968fdac429481044c8ddd42a6839bf710a79b0df7e2547f73", + "04abce0351ad9f3117a8d119dd044ae235ee679ed91e0f6391b57407762366f99d7d7be15dd50d90640739f32b935ebf4f5c9174eed63cebe40b844b401eb93bdb8bc799b52d4d4bc5f358b0b8d8690cef17ffb0569b8e81736884290a52bb9a5cf0c1e652aa90ea1a85eea1d72968a308df96b52ab8ce8f20fb690456921492643481c15eab21116a8e9e2ccd2cec485d6f6c77c121f248addedb81c6d9d489f74e59598ce1062a6e0bf39805f85ab42afe610ad16ab8714cbb65b1cfc9112d68a0d5cbd4f9e559fe40e2ec97162090937a9c3843e2938def1d9681fb3cf144a8267eeaaad15550c06c7582e0d6f1cfce48fd7dd2143894fd37e3283c2ce505a8a2eab8cd8f8f8c90416428b92dffb7" + }, + { /* i=7718 cDividendBits=2004 cDivisorBits=1105 */ + "91a7c955b573dfdff743033d083a46101839337d540ba5da995b6e01e259073ba03f2bc7350c6a20b40f2c167e503a73dfbe931f58895891e4e58293546d12970c732713bd2fbb082fb82a2157bcdb79a73d1adbfd8c8624f9f16d923a87f9595af13edb56b7ab79d4371ab3e363370b6829d845cd47b2cd9b456141c4aff307a049242912eac0fbf3cefe0deac648a5460b5a113af31ef926e0eca0a8547ae6dc9289c8983579102bd44e22670b2cddc231a5fd54640c3926e9eb4a3c8d3dd2ade89fb34e94f5ac1a5bf0bd961bf7b7a4f44350a3602a4f55876df15b4512f8d52eea994ce0a1f49e5438c75490f37b78e4319686fb4222d27a", + "013d233863619ea7880028b93075e665562ffc42a0918c5224be6a2f9a58b1c0a602799df59735cba5a18d0ed1640f7b12ea926972a70e78adee9eb96e372b3d373a9d0e335539c59405d73de16bac85d38f7cf9c7ec0a2d74b09d6404620f67fd952532e9853a3e02c35cd081166fecf68bb6262a1bf8a838dfb7c9c83633f12d2a676b8d291c663dbcaf", + "7593788cc7723a968e4575aab638cc0bc8ff2f9e4070aa0196ca7a33ca414cbe4a27ef2ce0b8cc4b3b4c136dca5e3c0b7150d80557544b635fdbd73634bc73aeaed962aa755d69188a7be80509fbf80907bd70af477c538d04d0113faefcb5ad21b9e6aca3f3c4ce0ceee8b8905220f2", + "0111c2da8f7df44357ff652919b9b5c34d34fc8f1b4033cced7ada9d7b6ded97275c5f7fe4b516edc6c2fb80cbc084706bbed8cc742cfc0ef52a0458f7cca3e798c06e081e6512a7652e03484ba1fa33410d49a6563464f405dc8f7daa58a73ff0fe05f394e78e2ec6f07ec815641349a455bd5bbda5c987e80d0085c5f395b6b28f36ae566daa0422950c" + }, + { /* i=7719 cDividendBits=3110 cDivisorBits=791 */ + "3597ba516f0e3b8f4368146555dcb473a13506508664b4e985f7fdca94d6147b0569088091a8c297a8172713580ccdefbc279daf18699d2fd6c33e3a2b28e5cbcb886a2fdb3c5135ff83f75100262c895d48fab6b49bff26ce32ee44e8b7c1308b87732463724a654b6f20884a07875376c5b57d9a7a6fe4ed532c68a3c14365073a9d167ae3b2609f36a13047c8952d2306570e95105c81b304ad32992e31502e6b1f10744409482a92485a9c0d8723e2823d9caf766df0bb566d221dbff7be89473fa82f07460560ad4ce7beeb7c999947d7fb64d5165fcf241b7e791656a9336050166f6d0b631dc476338f4c45b5753d331b782180985cca57577387b14630166d0b289006f4e8430068400f861654e74043ef2ac238842b4aa3e2c3deb1a3234eba8edc3f4ff3d19aba3b03f3e3fc574fb4e4e1b80ba15f42067ebfd789265f149f37534501d9df4f75913fa6b8856e71d7e53217beec70328dc524ce1a8e120c2919055170a7fc1689b2527f7458a403682c1770daf7610f72eba0f29d19da108217", + "01af296c5a0351e2a90298a7e613971e06a076385e2bcd61ed4cd203a5809b2abf61c5e2ae986f36c18cc160f8be18c0b3bd217ca89d636100d08105dd09cc078db49e9971864fcc6a396b7f9d65cde3e4f612f875b88dacfdd5c2ef5b83ccc5c9004f", + "1fd203b108d9818933a91957fec938663c2b5e63fcac1dad007d2db9d88a20b39a12ee7e058699f9410236405193317c7462ef4e5c3fe4efc52a6290ac395fcf4a85fe45aa893b3eb8f9d48eca0cf67eb87f23d4a5df4fa32628125b0eba55a86facf4a1b35452674d191b366803bc18ba0c924cc79432d992a5ec4f0caf52f511b228b67b8bb348caedfd667cacfd94b10481e872eab66b5fec01038716d1d16af01b3172eb2f8aad3e20f4c2311d46065c8a57fafb2e2ad1c03383d1b1929322cb909c8123ffe569b02cfb5cee73be77bf14fa6ac927b39c57cc15b27d9e416e4dc31c081b14484d797b7568dcca4f9542bdf36a7aa6a1cee5d42945ff183b4c73fbe5b1445f2d4eeb9ee71673050562acf77b8d58d52d301c5ce2645990c8fb2d97", + "ad159aab8330e069e1587673267bc4a37481ee1aff9ce107f3e9ff9cc92626b168611ad6f6a8b1fdc3a23375e618baecc06f6880a398f5cd6b6ab72cea8624eb69d07d5436b28d6e2140714979fc9fae92ff8ba147731ea9220b287a48cbd5fe707e" + }, + { /* i=7720 cDividendBits=3548 cDivisorBits=2880 */ + "08b13d5a8eb9209f870ba4f36ffac2711b891485bbf7f368620e00af7a5be2880a19a84a41e9ebefd17c617ba52f66864725cf685ab82dc62c5505515847cfa0cf599dbc8334ef0f237f2cd3bafd9a5af94598990517e33113ef4b418e98393f6e3202b342934bab2c0ebae670c0e51004052be7980933641bf5872a671838796fb88aaa33762a1e78c212b422e861a56e7604447d34e3222c09be26a7b09d515321e5c813ccb8b7ae8ecf307d7788f8c2b0b40d2dee44aa3114ecfacdde2ab20a18df2fac354c2c2f57ea39cda2e8e90b40359fc59b007038ed062f59ae7377cba0778ac72fc26f866775bd18e2b35eb14226a713410433e01fb0af820fa6af06493d95aaa1f5549e8780e35e57003f96a9bcb1408936ed45cf0e754d18a539d3cc354bf4d03240d9d76ebe7a59b0f06306a1b8517c39463722c393746a7392441d8759b2d9b070afb4086cff3f964968fcb27418f019de61b4c461a0fa8caf22a1790750e52789a71036a27d08a1af0a05a2969e1b4493a4fc9f522bb4e3d3c3294c61929446056f4b4cdb6f5423ff39f25b4ed58def89e6466769eb0ad66158751687899d0d92f2beb68b47403e2fe7616d677190773234bda998", + "85831d8b6296980e28f45b866214fe2e35fd05316aaa0d84ed26a3c4a10029523330fbf84e151741262c0d5dfbd372d61b558c6689cb5053047fa2152174370427e1913a6276af981a57c307c917d2f34e52c2dd3b0b1d391ce1f765b195d5540ef814ba8cdeaf78b87796feaa1581b9286caf2d81a30e5b0fc8177b440c6c7d650bc279091909fbf8b2c9d1e9d46027d84db0d0726533c28b24d7cb1388aff91f945ffa7ce2a9e2816207b7ce7cba09f1e88ab51b50c4dc8fe5e85c4f2c036cc98be09ea593c31181ea2bd72bf559c771cbfd7f2a85a6ee4b132e9d21d8e9008ecd1ab99947db4fe46c9de2c00c329766925c2414ebce69726c22408280c9093740128b8f320115a789b3bfa073a170d9a3fb7e1eb2277d7022cc635ae065b45d6815c79b92c3663d1209737d92a36ac8841d7c50bdefea132bd3f0622f942bce7dd48a98e36d847eefebce127a7a0986a44845a3391552b23dfcf44fda1bab1b06d03c7859bcfc", + "10aabcbfa0110e7951adb26fab2b7971b98a0dc8f08051826c00f956387e47ffa703a609f6215169c31ed967e0f257bfcd2c224333b0908925335d82a5d2f4f9200cef415bf7bce0820aa808e4cda750b4698670", + "2ab7ae73e1ca15899801146d5617a71408a8f32a8ec0fefab3db23b26224d2bdf10ffa3fb60ae71eb2268c2a73762caff88ee88f6de11b20215ee8ec9180bcbdb3fcb2c8979cadb1682b9cc01be75eeae785f940022ce84527841345b7547b95073bdb90d0a026e52f9e94931d35025b2eb441c82353eeb2f7d35f92fa4488457748a05e4b89bc7c126bda4d07fcf88b3a55afba8c38223d928a3fe6f0750fbb984ea8e363dc3e81ffb734ab8b72314b5a2886b2759161daadeea73160a8a1d867b98623f42fb47c42c361d04a356ddb1e8187b4f2c48b18b5bf84e0e6b6bb12eeb6c0f58c6ff3e97eda84c2cdedd47381633380432703f7785528a5ee697f698d82fc0b0c025b937f4486b8e009b1b8e1abba4f67dfbbe335da4b22858c57533eabf1bf1f969ac5f699452557336e7ba5e8c5f0ce52189570b766a8239bf0e722cef7d821073269e6077bb688da91afb8d3aecd1ecc3be94048b8baa50ac8bb3409cd4ee1331358" + }, + { /* i=7721 cDividendBits=1152 cDivisorBits=102 */ + "c079a8b230b6571a00b45a18af96f9e4c633bbffc3854a73fea66c43c6aaf74fe60503cee3d574d57bec6e7da73bb8dee376486f01e18c0c0bd40e95f87ae2d10551a8024c05eefeb4c7ebc2bb93b5d38dc936a54febeb2c5d088b36146520a7c44da4a6441dad4f7cd516daa3fb9b60b156f982f9906ad390b34b083df876ec739b64c4d75e2d7978f15b0320a5914c", + "234ba65cc1e12a493f837c1d8e", + "05740833c494b42edf1e20491e26cc3c562e083664800fbfab5f6ac11fe64570d71f3c2143c078624b21e78264e70755dc78a2377e168c3d857d9bc21c33674b3e65c04720800e1c8cb4f2ac6edecc1ec52a94001af9f109562a30e4234929a898cb0d4f5c9bf19911561e9daab12906e95b5b1ac61676eb1d9448704f5d1f0e27526479", + "0f9a8f67729d04169b65f4212e" + }, + { /* i=7722 cDividendBits=877 cDivisorBits=818 */ + "08c7887ba5d58da587bcea81aee6935c3df040919b8b722a0af4ccc291cc698c772f5f8b38e6d0ac65c6c258a40f1312792f56c1bac5c00fed562b57d6efdf88d22615d863b658cac5c912096250ef094f1f4ee97984d46689b7f1880659efcb6475e7267dbe0804621fec25a514", + "01c2871b8802d80464a947cd640c0904241876b627ec0da6c2b116d7d1956a838ddba21460e8bab6882b5ab4f6cdcf4026f1fbff4a1d9dc6fca41c268f59134edf10f6e448e47f92bc969a6b9b706744343d14f994146e1fa60f6ecd2af7330a2f8902325e7bea", + "04fd194d58ab3d7a", + "9f6ea93ad7c3283eb7a49729f41a89108499913e7239b22bda012613746362366db5da94e8a454e5545c633b2d15e089a397adbbe8de9dd7c2f248fb03b8cf722a0f9f79187c2449511f195265d16d490bbf7f7ded69e1c6aca1148ab340152851fc3249d590" + }, + { /* i=7723 cDividendBits=2097 cDivisorBits=389 */ + "01f642b6e42703bf6ece16d30bda25bc76323c2ba945a3210278ad84dea83dc83ad0759d4a5ced9e41a926c7f047ff778962c29db1a9e0be13a26d820e26839d77196a1bd5165feb0b47bad5311c4ff22b2e3c712151bffd0e2fe30b924b7b31e04241164a84191f38718ad0a96a281c38d7d685abbf43c3317941e7aa5b69b3f74726f09b8b2629ee70b20b9cc020d9bb53f04d6c882150aab82d6b3a7a67857f2f17f85666a30aeac5a048236782909c298f1acf5d5ef77f2f76d56960647eb05d8e1b3f101b01fd5a13aaf3a49a9dd13cc8ea71ac15bd0c9b5386f57d8ef9e060878084e4ca8dc1e5c9da5a45b422221b8b40d0fc74ccdcd509477a0b7577a507ddfe61eabb", + "088a21901f112313b104011e5b86785ee0b30782b905d4e989f9dbad2d56f93b9d98bef83e9c6d5319effa846933b6a90d", + "3ad0ce36740768ad91b4ba260923bf00a5f58cc9ab1ff8dba1a340b7cfe88bcfc6478d5bd17c3c5fdaee296e05dd1d9bec4b685bd904642b8c57e99f3dabe75d814cba8b9160ea3f4c13f227d39f7f562a4135d88a55ad250ec7a4ce4f1c2fb6c9a37f3ada3061fc021639c93ef9663f961d5f4b3e923f6574490183005fb6053cc00a9a4a441c7b311234ee0a657d82b8178349acec871c0d0dc135477a79f0862de839e9ffb447eb7cb89a0c6d233e402bee4d30735cdeba3733f5d716037f6935a3c67d24790a3e9f9134709cbd3690a49052aec7", + "06b8e4a8349778f5dc8dbef4689e81bc3524f2df86faf5af1d0575e943ced06665b8117b6ac97790b7ed45ad032e53aba0" + }, + { /* i=7724 cDividendBits=2440 cDivisorBits=2197 */ + "6d60fe92bdfa1da97254d99ee242505fbb54a3d4055a83f779b701db01cfbc7b4027682338b6d8ed667811d21bd740eef877ef9e11f97adae86825af4a4ce2448ec34ae5f97e365d052f882a52eb97b20bedff0286f620b1ee05b00cee2234eda98d538b00b025a3ec3a662773f3b86843fc7809534c115f50f537cc898ce04942594fb28591bf84a504da0f05a793e82915ea4f2008efe6788def8f091681283379f82a5172856da70c58131291717ba629c3e2d53304d9ceb6083117f29571f72f00fce450eec0c55c5a83d7c32ec81a45721aa45567eef5125034f2b62ac8d8f4e94d1bdd2c91438e16a0642fa5d3c18a10ee89cddd3d285975c6b6aeaf656064612b0ac1ebd1418be79b13ec509720e798b578023c13df9a50c6f548ac36e723cf255a42fb176dcc770b720d284047", + "1f8ca6c40fdee3723e84797e9450ab0e9842db5456a170606d1c6ced07f68a4902fec1b9b2ec650a073057e941bf13f26461f183a24617c269b88d87417b359d8fec5145f2453fd45b59adf46bfe834efa1507a7fe3c0c4602da21fe4e73a320af0b3137180fbed1d5f477deaf62b8c539aede89166811116a1efa1d9481dfbdde06bf629ac9e7b4adc571ff2279634c279ad47e8d277ba9ea54cc4ed9fced121fe729f076cdec7253fb4dbc581e1817d3fb25f94f52c0a21619d2faabc7ad4a8eaecb1a4b1e1326bfd74c5caa5b4dd7f24a945564fc6c3478a4efb024a81b0d6232d4b6c8cad9ff33b83bcfd17334dc3a3caca8e25a30a640284d1a5a1cbb589b9461edc44687196dd1f0879fe7ddefc81f5b", + "0377872d4f1f75c5136cd122155df8a40f61dfed5f2b6918a01678c574645b", + "026b68939619aec2121e0acc2b3eb26d55ec3acaaa75e51b2e986bf78ff9a1cc7ec0b93aa1c8137ce005e8887e7d6d4d67cef76f2bf8547340496a72eaa02bce21462285df1540af5ffc12d204cff510ce1caecb01d8bb91084b88e36bcba31186b587d4ca989ff916ab526383b2017832994dedb12eee23e48d8df42bfa98ecd9e9d49bcba7096c5fd21e1b1e440b5bbb77e18157f52139a7ceb920d706af0af39e18762dfba06c5d60a02c90b2a950e20cf94575f4839704cb12b8fb0b9b8823e94fdce32fef9640a4f50dfa435f72f0db0a0b1e0cbb7746528ca24cf1b2cefa3414f4287f3ea038346e3bceae59ac70c711c8f16434e629e60d9f08ebd8bf90f19614b90221376378158c96c26c68898eee" + }, + { /* i=7725 cDividendBits=1312 cDivisorBits=650 */ + "bfc0d38fdc17e4cebbb892d5d0ff0ba3eca35e86c1837f2346bf1f187c5f66dca4df262c36843a6a03b1918024b87a8d625842c572e5a36d920eb3e3a5f245ae569210e347d1ddf6760572a3aa9bd7a3d12983558933a5211c958c506a6b17e5c7b24e413dca2ce8721c678e00f2b51dbfe06aa0daecf61723f6ae02014f3d8bd9abe7d686d9997226d755201cffd3b6c48ef4a19ebe496b2c9d229e90bf386257f8098b", + "01b277bbcc49bc94e840676c967a45213f16a964efac7aff7a909109544fc7aaa38729541c4ab3297ca03356df3ddd57bf4d143d5b93f4eb85ed5d8d659946bf79799881fe921d489a9b6418983c76160503", + "70fc73374a0979189809924de44c42b41262fb92547eb4eccaa565a70fac64243285b99e473bd6fd7be2fbe4986e25f7e923e39390428d638095a6d010d810d9fccd1431a19587500fd62c8f10e9e9de022731", + "337696d5745600c9489060a053086e0f9e92b3af49cdb7b051bb035c84fed9570e2c8e4b2d6df6705387fcf71c490a730d0b5822b42af6753f4f080f96eab36bc156c612b2d6501f38882e8f92bef79ef8" + }, + { /* i=7726 cDividendBits=3777 cDivisorBits=2512 */ + "01da4ae4aa3ec9ba1b87c2220b9a4d3319cb67574f9e84a37785c74e1947e59318dabfcae8d11f5d5af6d6c79e7bba817e53848e92e8f3d235cdd5633cab83188bd6c78fbbdd895184bf060973c28b8c06f7de461b320470ea5ae0fbc028a2f86c51f7ff348cbdd62c9f58b89fc6f3de280764221b8e575ab45fda8814519482918679487478576dbb2a25b474e341eb9b7ac3e393a8a3e1b706a871b4bf146b8ce738d469e69a9151c254bafdd2cba6afa7910b6f595ced2d106cd6d324de164ab5a158195e1fed6ee37c4b83b274905176797a7f8b492ca4875ba25cb6959100a9c3b982004737f0fc7a96ed0f1e82d54f028889722e2a85e6e1946d0e6678bacf72a2fc8ac7f51bf8d5edb2d9870d2d768877cd18ce195f4c69a863ad9abcbdf108120a4d5f24c193ecf408082119dd172cb27a036c1ee8688b6a5cbc9cd8e776b3a4d9d18780e09347b6f18608097ddd79ccdfe0d4225a675d24068a06e68c68b94bf908b8f2db98f7855300b456bd642bb2225a8a4ca6f554e4e0fd15618cb948f9e22eccf113af0d4278cd255e0e49e74abdf7ac2a5e208476a786b1099b493c9bd8d99c5755ca2e618292d5b494c9d70d14a3fc6a26a467f61adec659426e7dcf3e614e15f9003ac31a35591394c9d1b41cfbfbff60", + "0170fb660b966a4a103d3e826d5fada8495401f36f054a62f44089d403dba0fec1fde3a6610b701e14078dd25380f6536903a908f22d9d20ffa25420a99a070ab56b966e1df1a4c8f599f8cedf1080c86b5e62dd7748308c9f2eeecbdec5f4b58a5459ec5edff56a677d2969a7ff0613aa823f1edaff7ada0b2fa2ec02c6faf640900a3adc14ebc708093dc5e578de757957b575f5f684c422e08f52774e5b2a3161a74e8b0142b123d55e2992caada06d28a39ded5b0724671553d803df65356a8d9b0568558e2e006846fa201b1dd0a3a8a968ddc97cf0fd9a068219c758c61ba1312d8df84ad57f72c26a9f230b5866616583ef14a2c6d64ba37ea49e12dc2649ee6d5fa4f6216a077234e0335774f00d9ddbbd5e0bda8087111f9bad45fd685f1170965e5889b18a96caf17dbc71b9ca24c3bd87cd60c750", + "01491084621146c37de8c8368cfeb64e8ffad58d8812644565e4861b54225c8c5ec11fd7241d3ed3698440e109874244e1583d201412b154503ca7f4043b5adb1993e250845ffb61cb7a8a46296fe21721ffe0ff1ae8745c475121de7de95f0599cceebefcecd91fe01eea4ce8af11843b4880919fc29d5a71ad52f641ce258c0a18d3093bb7bd4471f1b521a8fe6194bc0ef77184bb9fe4776a2d7332156ac8", + "3feb8a8446a1db05d7ecb163336cb3d83446c0644a8f9b21db47e14d2809c1621f5a66e75f33e5b5fb82d5faedec0c5d3fd56498b994817b03d17b3e38b8ea449255b1b32491abf5f74bbfec4114937e7d48bb4fc972520945e69a7126ad9547f49948006c777b415c4a161b447b3c43fce1744df34eea711dfc1749780495e5addd89ff06fda70eaa8240f77e6623fa2718800e43748606f455675d1c7c9160cb0ef5d1fb16670707555d4360974c8c8a74c3fa5dcfab78ed044497d24f362dc8313d3efb84a985695a5f5734aedb3448c97fe4aa91a027e27d02dc4c1c0b6bd53af15dc9f18a8158b6bb6f8a530a0ed3d05c1df2a4ccab0d4dceb1d39052ac45522921bfca488629ecd373e3e93a2db1222812fc90c96bfcecc73c9380cc0c68fa3b62e775762dcbca7cec85c870be47f5880e2c7c4928e0" + }, + { /* i=7727 cDividendBits=1176 cDivisorBits=820 */ + "576148ae99d5e1712f7553904b64c4799b07269551b9e8a1366d35bc6c4318c2d73fc40675669b652a838c6394c4a099f809c4daf704c4be665ccd7b719ae667110e78a0847f46ad562f3d9a89734a7912aa6bb7832861bc1046a07c2fc42a2890c78eac0159fbb229c5b1b110eb14e2642c7274aa5fa38dde1c09516f3efba4598cc5e75bde36b268e74e426740b2b9fcb4e3", + "0c8dd99316c08ef03aacff1b039a9caca1c5208f5a66e3d63b03ee07b761e91623a0dedda0b6b05c092d767db0b961ffb7d1fbd337f2c2ef468674d4c864badb1cd1a2364948b553d2d19d9ff9700d40f6e73d4beaa63e5b496424602e13fa8a9102cb141ad0b4", + "06f5d4ae22cc474e25dd839f7fd41a12eb06b09c2bf13193adc9b79fefe07032fa3c492820037f31e4a8bae256", + "065b128728c55169273d684ceaa40ea9dd960540660221a1a0f725f1088c804637f4c43639f7308c892b7245b423c0854c3d65a5f86922d8f6a42af9d619f3dfbd68be9e73331b325648e4327ee2c37334386caf1d52ae7016bcfe705e4fa7b55a7ff889f3b06b" + }, + { /* i=7728 cDividendBits=1474 cDivisorBits=458 */ + "01223fe161164cdf0ab756642b0ceb515f726c7af0b99ad6ecdebdcd8dffc82c155b8d8b1117f8e272c96dfcc19d7c312c46dfb279a91a6f72ae25f13d28e4fe977e4421d1cd1fd28a38e08870239b5292b34b7440b19742de79093a2380fb4ffe31121af81855ee1da7f8a4528a9b36913d37e7d7a2669fc7894181b756a79eda76f6f40d2659f95c60b9154ed037dfabffb87d7bef2ddd79301898a2bbdc5385ae5527f53235f66b3e39c254f4aa161eeb9289fea795e00a", + "99e3cc8edf9c6576c0d454a41bbf80bba4cdad9c2be6a949ed29a6c290a7f2cf61ca98ae800aa3d35ba00a7ebc7e367d3c307777bb785d0c62", + "01e2d68ebeda71d40350026c7e7634afd2570a8434679b659de08b427cbd893503b315972fcba91411a017a045b55e5b9fcc000f22b0a684cc6a3d4d6b40c09e89e1d938cb28a1abd03e2ddef235d2bba2666569e099669ddf34a351a31d06d7f823faa5195c984fc66742383768079a8da01b1b8144e2fe0812a12651ced662", + "72e07c78e45b51634f4e70eb9779a90730380ae122daf7f7c0269321089038c1ac9a8e8c553022f2f1d7007d156d162edb84523945d2c13686" + }, + { /* i=7729 cDividendBits=593 cDivisorBits=425 */ + "0fbc4be3c03ba93b8732cecaeaeaaef62aa4be07b2aed6c11ae30a1409b9df7e649eb29064b7779aa7b5c958c9fdff3117cf6c7d2e34186c266b1c46a9a1c67bc3b084d6ea33fcec6b16", + "01a685862607ed362b4e1626b0d9c5a23862714686b7f48e77a098db7c499775999c9b3bbef2a06e4e78dcd4b87b548ebfb3cf91f95e", + "0988b07525ddf84e1419e581582f3066dff2b859f7", + "013c46531cefc3a185905ee7019a05c479307c2685b6c3e3d0610821d5788487e6070a7d00138141a831ed0dbbad8ddd9504dfd32364" + }, + { /* i=7730 cDividendBits=2574 cDivisorBits=1178 */ + "39f16f696abc5810e3ebfe4c24ec5cb17d4e1b5dcc90fe4ff5b26680805995b5cc66500ec40decef0cd869783ba6829e30b2df11931a3b99ddc463675f838a5480471f2c0622b4c232325961011fff9c1de67230c6d27ff282f371cfe1d55bdc1d6d55445afeea40b5786bbb52f94a557ebe799c03dd0c87261cbb5259c3de9d70dba23a3c13dc8a62983fa45511b31a387480eb3c63a4dea4350bc70dce73c4229e04f3ecd7d97e1e64db3faa7cbad3654c812420bdbf2e7d78d10c45a1e00d636d1b2200cfa42bc8449184848e0b5726c5dc012f76fbf744efcf63e8fac7f334d2cf6f41052874f2717a8022b8cde2d2b377070ff9855ef142b07eecf102809ac4f44bd2896b956750a8b9d81c1bdba7b6d16500b6ac866930a7ee4084a2da7f5cc860673fe428ad8c0c02b33a75da83e2d10f336261b24d97cb6c812ceea17ac9", + "03530ad9d953354f93178c84e5707f270921f0755c84705e80b976b048c434c72b7b319239efb053b2062434603436ac6c58cbf265593eada179f6398c1ba432b4e541cd90705c60903594a3404d55c6716cca844ff7750b90bce3bc67f32ac304eefc62283510e36b91cb404eb4d92cb0e4f47aee4cbe2ef05590604fd70e431b550af5b248549e43025da0a2bc321517c61548", + "116e027dd36a7f4287fbe90137c513eebffaac7c0d09d8aacca2e5ba065ab310985ea08917fa5e3acf166493269f19a5f5a6705012cc5a1cfdbad763bb04d8c3df6660dcbbdb980f607b4c139aaa93df3601622b1d3ef3841ffaeab8edb0f19df72d4457535237df7caef5282a4d3aa6cdb04c9e2b3cd085f29392d3f29f98531f40634cb16f10983ed43591d4ac5501f0425669eeff26e316daf62fbc575fa510e08f7f28c5f781c510d85db9e7a1", + "027aa589e1c9bf9487a54d29cb230204c551532139df95deabafc5eb59092d743b296fcbb792d7a1976ceaccc021830dbd84c42cebf958f597260c5965f9cdc0060c2efd552eacd004a6c18d6baf846ac0aad5698cd73c439c52ec7d47772167ffc473d4f8c04ea6a04f2f7392cfd44f0bd39e49b2e359024f652491fbb38b7576ec10e4a30f5e866fa4e09fae2060d4b4d22081" + }, + { /* i=7731 cDividendBits=449 cDivisorBits=369 */ + "01741dce2003ab2f1d8b737d4f5321e8a077b655ccc902d8127b00e686701e0971f6395404659011727d5e01b4e5172022c126d4ae8a2333c5", + "01a089e52179285c048141a63cc8d51c3c6ad929c741ab6dcfef80525f954335ae35f8718b0f09a1087eed32188506", + "e4b2d736be8093ac65bb", + "9470b1262992ea936fe6ac8a4d8b622e0204d20df84e924b9476a9dd4590d9c82719fc8fc422f27bd4cb73b6aa63" + }, + { /* i=7732 cDividendBits=2788 cDivisorBits=2739 */ + "8541607aef04ec0989c11f5ddde1f2d8e6eafeefa1642b749d0aaaa35f2efeca04d08ba69bd63d160286d9935ea17446a9b7fb9eccd23091d07b7d4254591b81de7ef666506f9d2493ccb2a36e34f909da4129825a641a2c76e332bc3fefaac17192f1ef719c426e6ab0f255c0747bac01b3f1da4a24bb80008543428cbd36973654bc770a6a8ea713b8e068f7745c6092ba0ef9041e1e839476644c2ff05ab4caa1c52ce559b1c6d48462a712b8274fa4236ae2e6fc382fc225e39991a2cf785749456c8e86113d49b9784ea8dbeff76fba6aaad34cabbe40cba192a3ac5c74273507ab23e950dda3331395e85f99aa01f244894a395d44ab13cf27f67179ad9d5dc61fe6b314ac62e59f45967fc7fd18bc61af4637dd058fe8832cab5cfc101453983f4342d9e69f50334c148d619dc07d2c16d88bdd6f2e08ce3c9f72c0bbe9edf4e036a38801b1a948cd9e2912e646f460a97e0527121d264d1b", + "07530e2b6c20041bcfce259986c5512f46ff8e82b50ef180223f6f989ef7445556fb444a4b888a58f82cee404554031cbebf8dd071c82bdeb271931c4764250fa7db8fd04c75fd390938fd2493f716c29a699b2c1779ab13a8435203cba18d8c700ff1a9115d1afa1d9b77c49d49db7d072b2aa59f12db301afa36d3b063cea9892e0c6c05a264abdae7c88a8acb500d0d0d7bf10df01a1a4e1f0423f974c5cc01b92c9fab50e9a93d750c0fa0e7686b389d5d17ae4c44092c150255c30175d9191e3b374d0212326272ac5485f19e1245e52c403efb693dab7fabb03dcc6287d83c40c670be37654c850f96cb50a1c1d43eb3c92bf0ff58837857506dbbfcdfe285501a173e7896af5114c58cd2f4cebd92886b9863297d39163f9cc590496f38e298c52297ae129a021d3a13c9d87120cfb27e7588e79f154f289c71f6d38742a77c5405a0b851e9187fadd1ca72050ae4079df1ed17", + "123179bec684", + "046305e1c679142b267390a4a7e18e8fdebf34024ee68498af6e451b3bd9cc08ca28141294c1e069883ef02a1e20df59aeda1cdc08a3213a3d42446dc190a63cf20be336729c268982d1934cff9cf0c5097f00d17a5fa7331b95126c9eec7ab85bb96b00e344c532d2d965fb12a872325a5c19debdcf5e56c6ac06c82d143a674b3568a012cc6ef420c578a3e228de7b7c047d70a1b987cca24b34fa1cc4d43d2c4e41ca3208ee66182fae871d553c3f12bccb1f8b1d4cebf5c8b130986b97c3378fc6823055c260ed1e94ce56ffd89d114e2e36cf42ba3692adbc034d527a9afd46acfcf33c6735931c65ae0bc37f1469d25a360c0b35f18992027227e146d42a99bc6c9d763d95d022dd22f694eb81e403bf082aa3d87872cc4e5af7d9ef5dd2eba9fa8c4c2c7b6260276e2cea69269dd12108ccebc335fb6e8c5acd63da5e5d44bb8b99382b8bb6c20e8413bb8b62c11cf6b8f6433f" + }, + { /* i=7733 cDividendBits=782 cDivisorBits=129 */ + "3c58496d686db34e0b34df5302ceed9bd788f861cd32a2a7783356c7fea8dea4fd30a75966829b21c46cf60d91775e80cd265e2cbf438d4613c680163ebad4ca0b367ac0050d826d3cd02af02d4400de8a02e67805f422fb1f0436207839466feb84", + "0108ea4d99f16e27b0a8eb07ad151a3364", + "3a506709ac2ab857343357e144be8963358681bc57678a7976b0596aca44a6308e586a704db2ac8e4ccdd0a875353f366f100594edfcd70df56578ba913100b5d81e95e3912d5a3d75f28e7b0225c556d01e", + "09eb0f04cb82e86644ba7afe4c04a5cc" + }, + { /* i=7734 cDividendBits=2549 cDivisorBits=2 */ + "047d511593e9fcc0bbf7b668864a8a380a427cf47be41ba53b9e3c36e6d06f05e757062eb597f0162e1e88eaa044516204b24da5cf2a30b9ace9660213a1c188e776ad9c4baf2534f2f7cf5385296a5bef8e93cdc3d652835ae119514dc1b7fd8043caad13e753ed1fa39f8b90191459e96ff59a1e981f26d6920ce3eaff87746170ed9e9487b48e1e0604300e7932b77c7cbf2ef99f3516e5c66fe27058e996eba84b3c40b9a290013ac564228080a9cb9be23f7d1ec5688a3f81c1cae1f00cf8a13ea9de94624ace88b5b72bbdc76d428b89f6255a08fc0c754dffc1e2c05e8f33b5bb8a97026e38e32b769ff8897e9308ed46ebe195421eaf2e2b502ef8a89b63ea54b305c042902ee79a85f0fd903a6ffe09bf90d6bbe0c58f0cc3534fbecf197b73b4ab3ed51c5dc442f2d15d4311dc479fcc22abdd792cb4d60569e3", + "02", + "023ea88ac9f4fe605dfbdb344325451c05213e7a3df20dd29dcf1e1b73683782f3ab83175acbf80b170f4475502228b1025926d2e795185cd674b30109d0e0c473bb56ce25d7929a797be7a9c294b52df7c749e6e1eb2941ad708ca8a6e0dbfec021e55689f3a9f68fd1cfc5c80c8a2cf4b7facd0f4c0f936b490671f57fc3ba30b876cf4a43da470f030218073c995bbe3e5f977ccf9a8b72e337f1382c74cb75d4259e205cd148009d62b211404054e5cdf11fbe8f62b4451fc0e0e570f8067c509f54ef4a312567445adb95dee3b6a145c4fb12ad047e063aa6ffe0f1602f4799daddc54b81371c7195bb4ffc44bf498476a375f0caa10f579715a8177c544db1f52a5982e021481773cd42f87ec81d37ff04dfc86b5df062c78661a9a7df678cbdb9da559f6a8e2ee2217968aea188ee23cfe61155eebc965a6b02b4f1", + "01" + }, + { /* i=7735 cDividendBits=61 cDivisorBits=36 */ + "076bb810d4e280f7", + "0fa70d1a8b", + "795e39", + "0c47858e04" + }, + { /* i=7736 cDividendBits=2393 cDivisorBits=2054 */ + "49ebe09c3bc7c768c8bdb1aaa0ad6755876f3e7ef3f97f5d04cb5fdfbae426deaa2ae683f9027a9350c823e5333e72d165753ea4306e9632e670f28a3be6846ea84ea07002f2264cd499a4fc554d74f51fe9792f540089d07634519c407280d97d8fd289c48c6627006384dc38d9892205ee560eb76baf6d6af4abda16c38e352505b9b49da7176dbdd13e223a950842579999c5da9f438386054f9cc4a17e37436acafff5ef45060aaa24c3a3dcd86e962dfb66e574818aee1ca998383c44c1e82705f364fb6eed83efec912e8f9e60eaff84ae52ba97ba1a205f86e359ba340130ba70daefd8d4b5573e0ba09ea697ef6037ff018b56bb877ba7fac4fe2d59587c0b7c632423813ef5970d2eaac36206e21a64a43d9a3a61a3ba3f8397163bce3eb07f00a7096106317e", + "368e911ab9a69737939cbb5be6082b0f008bf43282e208d892ae40947cbe9fb50c7eb7c25cab1e95366a2569926c3f7ddc07903acf1c089e26f530a33babe983bf59e474d2d2535efd3240edc58b93e8793b5a445fb2986764a9336451f5ff0f2ad4d456cdd3bf03a5fe9a1cfc66aa79d891437e3f531fb14882c4239ee763ac1fa985acb0f2529116dc030de7f341c678eff2a8e522e4b08b45fa09d85b9b4b940903ebf4e972ae902cf82ee86a8c31acaa26ade4bffdc6a7d1908c19653a549d0225019f44dbff5e31ad642e41acd03334c3f947e664cbcdbf3f0c9c44348e96c6ea291c068cc5c44fb74d8c5b767ea49ab7301319a5805564bbde433d66b687", + "015add6de1e93b823c5a3270b03800db259fa5bf2fed0b9557c961902eb72a81c5b8fa66e46cca3cec22ff", + "1400270f21a6049868d428892d0e623c0a1aed9a8053ed88ca2cc6a1e181264e7695d834ba63d9d561430b4533cd31ae61b9921dfdee3d55d327d41203f5c2ca78fd467c5c1b6cd342f45d94dec9a2264452ef784bbad102fdcc77c256879e4e8a05a582277c95b445a4023cf7229fc62a74a071c8b9b14c8a4d2f6fa03a56555c7266bed2eed5823cdb1ea253bf6d95403982533894109fac5e491ed2946a49d46a607be575b899209163d1e28d9ad8299eddcb93ec01d3f0a53f582e6a1620755e2bb4ce01aa5df9799241f564a6ee83a6617124c119f565620f3b2b0fcf04689b204ac5913b3e816e52f1b961b1e81513a109499fd589f769afabe9ab047305" + }, + { /* i=7737 cDividendBits=3117 cDivisorBits=252 */ + "08be3ebfb7f413d13b0b577e8dd23c2ecd8f0ae5cf8f804a50aba69aefa081c09b6810de184134ddfeed6329d1cdb778a598f6b0d350a2f2ead4adb649c085c30b32847eba99a716b66cfa5ad3ab455817d9d33bfaec74208e954e5b120cc14c1ff5274f00e5847e19918ab683358f8f76c51e345a92e6f8cabf08bb09e54168ba10a255da7d328002ba41b9e410fdb247313e7cbca134af830b30e005610f664602b20cca75773f333c637e33d8156baeb87f153da2efa889eb1f860e7f23efd1e156fbd9f2ca1259c51e0fb21d4c8e9f477d17f0427ec93c244c753c6515b3c9305a5c47f596921a1fb2d9121357f38f42bf63896a7131910a68d60cf6f17196520269747940fbb8aef818f7a15a7759bf852ada300a0992e717a126b8ab6c2ab0a2bb5a47d10a8110f198b0542e9a5d83415d3ed4d308d7e7cc4d21aa374f5854367c3ba0fa005f073f1179611757428c4483c72b4a412786f0f64d34bf5e5ef42d71c44ff842144dfe6cd17fb507ff9146d613819a1c8f80de13ca6fde3020450103ff08", + "06a832ae05ed6d1c4b91a8b212814e77914c08501cce633cfbf59d03c873299c", + "0150391e0c3da4e940895ed6c4311d9a2502beeea7704763bb16f3f1df2273e8cd33db570353a94bda6a9ff2770cee22134f6c73412406eba9b3e5eb928bd5ddb81575a0072d63bff21823837e1aad0f15f8bf840f16ddb9e70c67645dbd31d93751bcb0a82b8becaa4989b794fdf20e9a1820181cc5c1b2bb2f651d18f0711ba8175547007642307d27ca4a9216b4c3d2ad7bef9efa34e335e5bde3787da1e864cd8f05cf85691b71b2372b5c1a03725b53879455203c9c63aac6b4c490ceff3fbf2e9141b7319c47589359fcea60e0f4cb857090d5a2c70292323e4f23be268b7c77b5cd0d37ea26bd521f66dfc01977810a2b9025f3618d31aacd80b1c52188c6a88876ac42e7db24b8f5aa83d1e26709fdb6fe7cb99d23b4a305c73234d4857c4906b31f3ac81f22a91c49e5bdfebe05f1066f19920ffc77a3d8f97bd9a64d95bfe7794fa42da9915ba9cd419894256ec516dd39909856eef6a4ebf46ca1f0b0c94ec8638a", + "03cdb38a36f0ea595b3f488ad36c9142d4ba8aa8af2e8fac90c269945ff83cf0" + }, + { /* i=7738 cDividendBits=1044 cDivisorBits=139 */ + "0b06f85e804a8037646e6d7907cd4d0c9326667eed0c6397b94cf1c0afdc61cc3407a423b87530aab0680548e4a0afedb2ff89b70a48fbb79573bd76947d34d7e5ab4c306cd34d4172f3cd0a964560c44c43ca8743b4027a6773d434f2eefce8ade33362f1e1da90d4956ca3dafd8277e71c431fcdc82bc1fc373cbf115587ed3276ce", + "03a11969bca8b8333a6727b8feabd1106f9a", + "0309d43a4890ad36aca84adcd5bdb4cd17cc9986682eefc380aa230ba77fdc3cc112a481e459fedb00eb14b0e3a69739cbdb91591bdf3c452b3f22ac9af12219a9807d61f2a17f0f5ca4266a9800d6deedc2fcbb54e52b2cc526387113373212e75e557f565b29afa0b6ab40912e0a58dc41", + "02dbefabc014a4f9f0f0c8583a8f572dc8b4" + }, + { /* i=7739 cDividendBits=98 cDivisorBits=82 */ + "028e870f6077670380253e425b", + "1d2f5e5774742884bd2b", + "166d44", + "081c299b23fc9bbeb3ef" + }, + { /* i=7740 cDividendBits=1930 cDivisorBits=1790 */ + "0106cece5bbf765f4060e3b36ddf1a376b70875a2e4ea1fc5edbe1257519e4fbe98187fe99a0c48d1fb7c74c6f9eb5520589ffb2f133719a9b052bded06b48ddd6fa9b4f1d9073d8f67c8a401375515cd2a70318937f796714761cbfaf567f7fff4abccdcfdabe272e5fd280c9c1c61806fb85d86ae438d80745011f39747f10365a6fbeda265afe6acb4db30d36e75436ba6b0b89a35896a32953ad7adfd1ed8c7e89169a1188258c7b3cbbacd18df8c5314d0e096dd505e9dae8710f67a048cc3e4dbf2e8e1ad7c3863680a0ba1c2c50e384f955f78eb532e842ba8ec9fc1a89d0606660c84f0ab19716b3eaa75f933fa4", + "1f4cc9a0ef90139edc8dcad76453ba55109333f7bf858556dc5e5239779b9801802d2882e52d8b5ab4ad96e7454917bf0dccbe920f2965ed3bd263c2635336ce317426694a279c51e2431aee8fed476922d7ac29e928af95fb91ca8bf60b1f9c8465563c0064866cc1d48ab672cd110e4326523e849b0be61513a2c2493416a85b4b2dc35e258f0721307e53f734ecc1edbe8fb43f0796e380a85503aabad0ce4306881708909c40ab7417a1a0a329ccd0331e8c7b46378d8504057c408f56fdf4dafa1582ae7916c4fb6a57f84608e1d88e1b55a6ec94a8644285c49575c3de", + "08657c66f158e149a31f8c72722cf142398a", + "167333008e6d99cf66cf5755410084455fbdf2c48d5a4772a2d0ad04b832500dabc94b52593666545a2ab2354f106747f2a8744fbe2fdd3de865151ceb80f5277f87615f9e77128ba3c48b906829f0b3c4d4023a8d0c8650d9ddb72009cba077152dcecad5d302fba30a4d041eacfb6d51838533c990392750adaa3f812ddb96b6289a80cafbab40d013b04be6291770db834632eff96b717417c9865fa9146f3bd762acc2ae00ccc9eced30721f3078493b6f62f09505485d38f8272fe75a65da3825abcb7380ea3b055d9da4b72b59c0d5711fd10e07a0eb5a1d7f183f3bf8" + }, + { /* i=7741 cDividendBits=2937 cDivisorBits=803 */ + "93865603e8c2a68ed690774ddd2a0e28ea6ce06d639d96e4b838943968c09b0f657d5709e86835c868d88dbd66e0487a868d8d4bc5935f341140342fa83d0c7d0668f0771ee4c8a6cfa98ea400ef704f8112eff63aaf8536bf0dc510828939ac21fb64776164536f7d5cb296b209cd0fa06c4f6e40acf669195a957e50f8fa4939e4bd355bf052953435a551319459c1368594cd58f1f63ee4d3695bb73ccaf2d0a955b7060a6617984a96dba1b8ebf24da0a92fad2f31ae59129b025e94b38db5134906300354a1fba5cdf65e1b0aa3164e531e8f3c5944a4566d65e506233d93b240f64f9e66964067c5c46041da49cf3ce826f59b6a6dd76b64800ab125d55f732c44895f0de63dfc5019e06eaa998030b3c505888efbcdfd09a94c71332f2585b58c19ffb84d876510bbcab6180a64f5795ebd6a5d5c0ed16dec6a8a26932864a6f910c215dd4fec561e77f2f8fd1e97a58e45648ef139f37d86bd570e14cf3b20fdc2e7811e77005e7ebac147", + "04dcf5b59ce957537c555ba28d83d63ff0efcd4aa0b1bf3e944a514b54f4d10b45dea003a04be69bdb97c0c71fc36de3517f710163028ec1d4c335c1a613dd0520e952e4d5d05d62a120f03273115c0275581767b1705e45a4b757690127f73dce05e90aea", + "1e55dbd9262e1edaa6dd76219882fdd4514a28c9da37bd2d1d4306c2e4e431e15e5f7314c6693208c77cbb693f6cfb84365e23612880e603a239728e029448ed37c01ed32db04efefdb74a5ba1b75d84dd8d797afc7e232d1ad5aca61de8a3370b0431d30ee90156b01770f2f4cbcf2e9287bb8ca10dd9dde237490afa057bb23bfcaaff9967196f6de103a2038f96ba2989c3fb86ef05093591d3d08d52654ff2dad771178996502de5e08b034591ddf81d1701de1a71c31f446ba5f363c8a7d6a417734616bb79e702a29d35a4108b87b184b23e0dff1276cd67699bc71b2d63ffeb047968b3908f66aaa53d5dcbf05ea390021c4d9fce77251417a8789996a728dd685d8a39421df582", + "03f4ff3979476bbbd1eb5e9ad9d75721d77810aca7dca57623783a0206d10b9d8e634c4417af503ec6d14f19676c63f28348afc4ccf4f62401d2514251b3040cb8063554e360f0c4fb08550286279512925fa0a703c2b8cc44f84c94911f1f1fc6e66f4473" + }, + { /* i=7742 cDividendBits=2167 cDivisorBits=2115 */ + "486bcdc7d07441e66047f525b9ae1b6da6e161d83c0393297650f8de21a530fa34eba89eab7ba5224d60b88f4deb6a878289f9a58afd12958dd1068ffcb11f897365b963705fe74da111e79b13f175ef6f656bd00b7532b6219aada7d389fbe0febcf2ef32705fed0c3f8524b646a8359d4870897bf7d45dc78be1edf4e6e70113d765d65de91d536f438e7c5c112d7b6ae33d3994ccd93f471b9fc5853a9913911015d64a4d0fb4cef645f5f4fa3996ec6e4c9a48da6d21ba05e56fbb759dde6b1159e9d5cc401900e135b630875bde001846b84e20374eebae146e01758c49a07bd55126d1bdecb89eb5cb134dbca7b04ef09ffa3e8b41c3fa403ede9984ef90848c9cd631f36f062a2e357983e5", + "c8ecfe01ae1fba5f076c0106cde7c2d7d8bc50b8d7bf856fdce8a14de5dd3c5c362ee38f9c9b95f8236890cbf4da04b8dd79279f827b5308bdf2dd813acb5b6f9472ef7d3b862b89fca5972d64b5da4d37b98b63560f62c17fcd33c9834a878aa4608b5e042e826d778f9a86c34a05746189241544f5bac3e4c9fc8ac61796b795c2759aa008ae68e5f762d8aa7f30b8b46d3caa45a884b7b6732153caa7b67566813be026ea48367cddc3879263b9a6d8f5ac9dcbda6a45e4e2a50c0a40e846bdd4201e173e3de80d4c73a35ccb572d065d1be386504bda0003e1b6ed4247c21d6170c6a04c95acc8eade2c63de18c31bafffb6f04caa414983bd5324324d6ca23da3f75a866ef8", + "5c459c3b07abd9", + "4fececae5b7eac796f759f3595d6cd77cd4387e05774435792f0c67aa84ac6ec4d206c3acc41c79109955399e0a77e4c7c4879587bd45c76f5e0b2f6fe20b440340158989e4c3e34bc3b65a225c9e810c0a9efb455a6bc14d0eb6eaceda06c29aabf8729a407901abd9322fc377ed41ad279676676cc71de06c013f1cc65c29018efb758c05ff368fa75158ba67b1eb2dff73f1100b2c5380725fb712af8be77625bdbabd14d8b98381f12a4e93c80fac00588c5da04b0d1f4c80d7bd13e8a507e8d86bdfe3438660883018d7afdef1ec578e594745e89621e6498b788cd3426f55054d4433126a889d5c937c48b1e1eca5104644c3e8356d8412698c5783d93f7ab07aa7c9dcbad" + }, + { /* i=7743 cDividendBits=3970 cDivisorBits=3354 */ + "03b836057cbe28ac5713568819292afca8e986bac02b4ce1e845f773299f75d2a86615c435bc884d27b28c8a8f237235d7df0aed90230fc0256e746c84ac769617e385f128e6b97df19580cdcee563094cbed1381265fd61f1bef23790263a00b2e7d37324e41e54e4b84f1bbe15f900098f1e5b714601f29bef16290e682a7bd8ba6b27c8cde7cae10f77cfaa4f832254def6665d57c03c89feb40e6c09b5606cddb2269cdd050937fd5e56cd15fe70c05b72c3d48a33bb3f7537bc30b3ae645b5151f6554633c3660532b7cdf88d94b045b27002ee6c0d4c20dd0aa89d65dab0cc4df254a2b71a08cbf7ffa790571bf7f24789582894a208b08606f3a271ba64eca4bf54d0e625b5e89e3123a5f14a02011d891b78f5f7b9325d9bc62af65596668c7e12770be6aec8a0b6d535b27f05e20ffccd9f5817a4508cde8f2369a273d9e87bf97a25e3db971ca3869dbf30242a8690a4aeef94ea83a7317578c7e90e8602d6036d4bff10cda9a5fbe2b132605bccbb5e146987f1b93230bd86c1566b939cd5a978afb56dcc487a3c2e6c5d08f7e391d376c9c2cef8fcbdf9cbbef3f065e3e6fc534d8e25143eeec5530447eb56f0b376746f1fa325de8d0a20388eaeb24082762d98420168040230f97d8d6420366c20ff38394d06f0ff2fb32d2fa778f7a1f9b23350cde9dc18f6112c34e7", + "2d16facb1f681e396d831b957ece34801a480dc0c51b98505064e9ebc0640bb374dbb8526c940e74ded0fb0e740463b086361abe843b1c9d9c734e27c652463cdc0d6db874d774beacc9aeb54ee2d41a76c8ec13e9b5c4575753b0392f044286ed08a26f2521858944873f5fbcc66453166f077163d7ad8cd953e27a2dc486b6b495509a9d4e6f6bda0f0e72a0e430a52823b7a9aa6698b27beb641d71c956fe6ecf1116615f45082ba98af04f7d49774c9a908ec16568555b58deb4353384f6bdd544424b380a31184a996ec81bd0ce5313992bc199227429d99791f39721a76de687d87e5fb605a6f4ff8a334c5bfbdea9babf3eaed14f9a70d181335374d5f70e6880db1a881289aa049ae431399a571544182d45c421c54e08d22b21b67af10b9f2c9630fb921b47bcd7325f179ec26da8ad42ba95e99c94cb788e2e674adbbbfc3afa29bc1d60736bc4ae8f0b97d9bc846d11f76bd0caa11978c8acbde180698acea0cb1a4b34e2f850fe50d8616dff37ddcec0255a8300251b9e1e08720427281c640e212993bca349bf2dcce13618ff177df312fb32fd5ea1a5bc650b863e49", + "151e3d10cd57c7b335aaf9dfca413b250888905a5d5ca48625dd4b03d666d7d8a62a9ecb9f13ed3d481fbd4496b9f4eb65ca48ce2fc16f9a4796f9ed52bc1acc5387d1b23cec59760b2578c2622b", + "24ea17e4471f2cfbb3dcc7b3a7e0ae0e0419a3e5d8415f4a1b86aa5af4c5ab2962ada662072ce1a521c33481907cf09bac22ba09bff4a6399fd1ee5854453ce1484104ae334a45c9b89982d4606263f3588fff67d0536a12412ff47eeabd7f5207914e4c05684600c2e02a86ea5329ae2a0309d400f480a86ca4ed7bcae460a4fdd734658a6637ccf2237b600c8bf0bb094706b5ea22ab87b53e1750cd87e094603da6dcd0a44be5c0df8dffdefab82ddfec07f05891053914e16e4fff0c184cd5cd5c4abcfb0a9a73a68ebe98a3036f4ee94169f9608c1dc6c219d98a6faab7420b20d82ebc0246e38e3fb6bf6598c498ddd28c48f7e2806562fdf32aae907b4d0d64c4d865390ab803d33be06ad6affd12223003deecebc367102ddcaeff5075eb854ee81ee8df00b6eb41e1ba65fb44fd0a04c6105ec88638d9dd60def881115a3783e3fb8b17954cf838339ef18c3136d406651174b26c07d26f3fe0c6a1ed382c026b397b475e40b280666082247af9a3b5e25770d1c9cf9ce9dd4440babb0006b3675a6cbd70a9b8d4f231adbf05863306c8fa2a2c6a4331a932f9195275cca4" + }, + { /* i=7744 cDividendBits=351 cDivisorBits=93 */ + "74af986cf5da86f5581a58a8b63b1b52651d66a6ca7286790e3efeffdfaddfbcdfba9b5a41f3215fec0abab5", + "1b287ea0f4da80241fbf3018", + "044be9546bd64c049e980212fbeec0e8157e9aeee96638b4809c3022e9cb32e37d", + "0a68291b5981c343775af6fd" + }, + { /* i=7745 cDividendBits=3750 cDivisorBits=3593 */ + "2b4c92bc61f4ffc7f25f682e21202eba5ac0b8eb636ca9fe72f2c358fb84a34d3b883759f95e026498fc8332e6dc4a7ced0f279d122e2647c4317d1928d9dc5420e5f6d677a6bafb6fb92919d252aa91fb70eef8a553ba363c47c8b65a21bc2e317bdeacc8f577858813e160e2ceea5cab28f2b95fffffa69a31ff9f86b1c1d46d4f8727eaa14b1ccccb920e412835ca0d7bf16e3513d0a22156f2432581a9c24b0bcc5988dc987d29443ee170fbea404b8b6e3bcfd358132aadcf5144e211d935fe97c270a8a5b25194e6d82bd8fdf607d940f9fd78c2cc92c82885a94ac873b446819683d50567186599007df24178128a19e09f10eca4b2084091c2493766d8e0dc543f85fb4c51bf4a61283c377284835e9936e5f81b287ce90ba7934a580a0c23a6ec9c4c9429eb65d7fdc3fe901519ec072ef9f9ba00129a4c2655a6fcb7aa73d79278122c6e576996940529a19601e7713035b3c8412829f47904e5de949ab1ff2a090ef2e8f4b85d1dc55c6fe624c5e5d734f339931aa194a42c25963e2ce4e43f685596e2e37d9206c518617816f2b1e4dca77dec8df03df4e0d566efe7d3caf9061f7afcb9afa7e29200a914b02da0caf6df10f4fcc4f58309c4a5d3f242fdc14e09bf8cc1bf5420f7b052aebe385aee", + "1e94b13a06943007d2a7a6dacf86cebf2464b885a349e9d2cf678a248d71f86143531c9e2c790416ef64ab27511de07763e5cec99b5b1369cf335a72834e8ed11f2063ee8ef7a1e835fc8d18a046452a864a67dd086a64ade5b79e553db956f291a2387e3efb07f31d6d967edae3992a6e44f96c7d876e94532628204d70e1b97b66f3a8a5f7693b560408ac0558cc2d7c178b693472e412a586b171cc3be2a209895bbbbb1b03f4429848531c2a1980066746789875e3d8a1f055cfea526804eff50074f3d981ffef0fd60be6f5472ba2d391d92431403c4d83aa3a5f6a28231cbe9fb1ecff2e44c5e3913742446652df23282706dbc6564c8332ba89bcb193c15d20367bb7f8cb9031dc6f331729e14da3447b49982fbb24dc094027eaf9e8687ff26b6003d164435bf0778871d926351aaeb8d86f87fcca9981c8e588be913d8b3cf28f1c2abd9bd50179d501dd784dcd192572018310e44473f18a7407d7d5c7c6d16515b7a85dd3061b48708505982956049bb2fea9b121134555be7371cc01d9510516683d255da2a17b8288c75f00081c86ac38cfe238582d7a5631c5ae90b953cc884d0114f7834f77b4df01c598e928776e419b39758836b77ca8491d", + "016a77d1585b12caa696e69e25d8301537913d3649", + "167daad1c37a15b259d370ca486e3cd7c4db6a13b4fb8e361ae6f715d25ef3df3b4a5bd921b504920459ff36f9f24031d566cbc13fb6e5c8607a72cc64e00b4db91bf717de03608099acf5f5b6f03972199a17cc444cd93d7d31b0690b0e62618a3921150fabb7bc18a4ac9a832fa2193af90e2cc3e60160565a75ac191f9bf5f50cc7003a39e72c374670edae93402349201deac3f501dd695c8d976d33759ccd48266cfe251fbd381c2e1bb6c102880240bde79fff24cb2ec4bc895e3b4a8302f3eea35c79fba20846c46a36b8544b168f809145a98cc7e970d4f96ae781ad14f8e337da4676f052f2354fa308f13063de07cc8d6260e75eb27e8c9bd3c41969b659fac460dd52e971cc0f9b921e2aa294175d33f54ea8477b22cc676c0db0a73074181860cf4c5cb352a02233aaf1c4c4a0d44b982097545288a7f92386a0d9824a8ae56de3484befa24a68413d966c7538bd5906fd1d63a1613ae5014a45d74f2c87bf27031e34bc87fa2ff301b45958d76eee898d6c59211ed744ccfad84ce7bcb219052b774d0fc46c72ca195c6a43ccd74c436a7d6b37bf247dd744930ab7971b7c7243a1685efc14da1942d348c72281b1e232266bfd62e852d9e663a9" + }, + { /* i=7746 cDividendBits=1710 cDivisorBits=174 */ + "12e9dc82d8e592eef31ff227e69b1afed73a83cabed88f10b110e24cf33fe36328603204d4399b4c7261887fc49c0727d1e341f6dbadd0e9ffaa7258f8b10778ff15e915472906d18985b91d471e4b2f18605480c11c3c3c9f208cf606fa77d7d3462e6f749414c91f5f93727cbe8f8c20e8d93702be55ead392be898f9e681c55fd22675d2ed3c3891500472320d52948cda406c52922d9e6981ece69aeaf5ec147b26f61c140e18194a2380be028057971053e96952dfe6b08cf7c20c19865a0ea74de60d64cad9c90e1fa42143ba5ccb1707b2d67", + "3a1b49c715813febc7f549696109e65383a7292c176a", + "5353c5208504d3f92b7c6af5b0e17113373417d422ef0d5e4f2b64f56ec6a98dfcbf778203ce3687e742add7d4b12bc1111389205a84972cff2d203488804c394276a80244af42525076599a8d2780e175e2b277bdb486e8e9be11c3a737f3ab5eed08060f6fe830eb1ed60ff18d99f30b7fa8e1a571e5f608e8a477a8bb10cc912969b9a93b1f299b287bf982dd10eabad9a8d30ada99b8c9d9ec76411307f1a36aa984f16f7eb7931a16cbefddf50bc7a9f0b8f9268da177d018766441708a", + "091581abf7682bd9050a47141a0f66dc4a5e9a8e2e43" + }, + { /* i=7747 cDividendBits=3430 cDivisorBits=1878 */ + "35e6da8c69842bc8c011f80a7f70bd2dd5f1f964806b68b26ea14af75ea391616cedcda38ff7b02164cd5cde66d5c5a81362a45507e163c4e1d130bf6c42415001d378eca0fcc2d39b392a998d96d025e2c4a3ca797847415c0d9e55186191340cebfacbff4f7faee14c99ae1087c16ec128b247905bd88fc7bdc9eafef755c417878e7601c68c099ca9bc1e90cbc0d0386e0a840d7e17cb6ebcfd840bc83157cb4b50804c25e0decd1f9b0c91c02433a82e9ba92c2ff35bac8718cbb4cc325d87da1aa690b46288706e156fa71758fdbee13eb0a25dc0cc50bf095fddd8ccd232c85623b8a910960c00ba37d32a0510041521d4055b10155022e66173d6fbce5718396edf4218e3366848c5253ddeafcc74fba08ea89f368419f313e179d49ec20fe648f57950f323143fb957d70f1db2cd0e5d56fda92eb2b0518807a7951bad8da87646d2d8b556bf6449e26a820898e3ce3ffc65175d92a72811739c3c69b40540fc5e407101223dcd7b8d6a436f38a4146483c47f21365f5358ee4c855d8e042031cb48cbe5cf3c6d62c60cfacbce8f0aa778b6e4def161f1ef801eb93fce6b9431cffa92f738808483e1", + "1f87fc1edf52b8522de8b7a9b7429beaf38087858125a80ac13228997274d574824e7c91002d12037408b02e47b1c87736f98cfc8371a0bfac56f702fca1e6c24b964c3261db979474f427224c6f10acdb3fbc016623a46d506b75e2795a48dd701de42ac3f988145b92eae6ba9d20aeefe377026742955d62ea154427e46196c296e2e9054e7b0c846ceed81d48f3708d313ea23466dfce5c00fa42c3ef3b34745fe8d2f8a210a7d41c9010a847d54f02286bbb0758cb72c1270a6e0b6e42cc539c113c6bc3d047329c97bca6bab44175a9b73ab18f694b18252f908935a05ebb4b5f122d2db2ce7e8ce8", + "01b5a021f0618e3ef19bf595c455e6a440edd691a7fcd53a50039edc2974de151a24936042f58046f80f6e00629291da73235629297e6fe78f3829be582ae5f99986420ae3af2d5943161bb990fcb193ba43815f5740b98e999d9512c5725e1b5d189bc44df96e0739ddb527a0499dff1e7f32fee20f3ef5d6f641595c9957a685c358cf9176f1ba9018c95a6ace54a22db4b09b4115e30b4b2dd082087c1792645b7cce0fb1973fc7b5aaa5343315d2acc10bf42617efd21c5a333d3130e35d1296d1", + "0875389adf434ef98dbb368fb4a7ea5643facc5d3f7ea3f07038e48271440d3a0b7a3f1fb117731fa437c87adaa2f9f446ac21e2f5757ebe3ed519b69340233b8d1d2e3d808adfb88da00d592e03ad895caa9aacf3a290ddfc8f248958132d031b1eeedd585c2c1b70a566176c41e465906d72cc8b4285fb44fb7de59a1fdb97bc1451b47d85a9599700fab36d2e8f0f20591bf71ea413a8bca7c6045735b86861303df9d5ebd960843d3056a4d90eda10803bb3d14e85eb3733a76a15d065d92f700a2421549158f2e3db7c35cead0a66dbcccf4af73b374cdec71f9924563509e77b6a48f37194538a79" + }, + { /* i=7748 cDividendBits=2928 cDivisorBits=2401 */ + "0bef935f6a43fd4c1390a59f2713a411eee9fc11055f04d92f1c17695739ba174efc3729e1e285722fceb432fb22f46f7983b2b5585e1a1234cc6b740b60474b17a41759edad88249cd040921041f2f9798fd5ba3b82a88a8a8437459b67b74a0bd2b5ec40fa41ec820bd562abffe332a7535275859be5cb44707d96fcf69158d209b919d366e43dc4c4715cefcb513addc28b52f3b4ca94ab3dcc05e0e59a1d732d6a9e13f8bef00530d85faaac54f3ac73b803d6c9694df5607aa0e93686a1ff532d868542de8fe2024261742182c76cada2b2b0c7fdc1e4636e302db56f7792efd8e76890b82fbbe44d71714474896040496147071728f345e2d5c5f57b9a6922049b31d6fae73adb46407ff75597c62e2accc45fddf0e49ef70bb644dd1fa491c70ac4dd7490d0a9803c2fd5fa6dc4e9555ae92c81299d9e46d1e5a9dcda0df730c40615e096202b9a58685f96c5911d3f8089ef807f804dc5c0bad7586f4f2b73b98b266cd0ab8a2a401215", + "2727ecdf9d911506bd08e70f9b1599d34e2e6a196c5c6584f5ff3ffe9e71ca3f7000ac2075d6c95df0e46ca983d2cde1f41b4a75c2e1e3c2e2125842e68ad2092ad80c2cc4744bc6fbfeaa130f222e5829f15b277125bedf872dbd8b9e6065e07b0181091c32c5c6ce1f6e71b654442dd9a95937d8ac4353d64a88f064e59a31a65a0f2d7fe23982ed602f07c4fd027c87ac7da9fbc8d8ed52fd5158dd90f70e1e27e250be9560ac3615a3863e81ba09f17e36f098f17defc6d0dcb158addd15aa72aa78a97e43bde44f59d157a9796355b83d9dc227ccec705204c9d158ff3dcd5943ac868b45913cb4eeea41b66ef342ac91505855821249e90af290112ce2a8e0fd0c60b33e55d2965b91cd8dbb8345c2a3cef0865d655a5f7f07bda0a285d084f11f64464478ada55046", + "4e0939832f3a463f8049d5ce3329591ddfc256db76a733388dc6f37107658bb1fc9742921a22ec75d1dc4aa63e48d1c2c0c8f40c10d22525285a7d326e078b784fe9", + "165224cdda95b7e67a8dff7eb274e6856885079e3f8034397a2f647c09d38fbc77a629fbedcfea98b619b7699976d3c456b9c64286d59d9325da336837ede8876b8f1ccc90975433c1c994513886ee1ff22ca010f39dd72ed2f279054cf90e9887a799821b9668fa7787d969d1567b6cadcf6fc9203d572d19ecf4bd7d1d543f78a9929bdbff60a1c3b462d8c8db33cc4bce1ee78df9c30483d9b5b49e17911cc7ebb2f9fae385f962d9d8dc13553e476fd542d9f0405f3635f0c102cb93d86c97491f9fb4bbf76a705cea72e283ffa94b06d71a7a82e1a719b05f02151858897e2ba0d2bf58b4db56e6dfee80d1c5f246aa032286dc3f10be03bca90dffb269e65839798055741abba7e518cf4c4631b2d5900b6d32d1bb09f0153a44f30c36bdadb8833731ae207834685f" + }, + { /* i=7749 cDividendBits=1783 cDivisorBits=1258 */ + "7931189a32e31e5aab82787a3261ba09dc59cae8a918dccff8e789d99dec1af7be7369e0950b7704fb594cd595ccc0838dc68ad2d98d8812261332036811e010e57a6c4ba33725306c2bce1df1cfdd3c332130e0468fefc69b2619997cf265ff7f06d3daa4df75db5125e54ee7433ef966dc7cb6cbfdb4bbc6345d18aa317fea70ecd0b39e2a7628ccf67fae879ffd43afc552270ec1f693fa02f6e3bfd727d2cb98ed5afea11c801bd43d9910c03d15bd6a35971b778631d1e0bfdb255880463bc7c64ec0cbca4356460f3d451dec256969518add7f49fb5f9774d29c57d0", + "f414ea0bee0cfa33a009a7370a4274b133e40ad17b3e1cc7a259d082a470d64471d6e84d4404591c7bb36acac01222a9d32c691cd24bfb1338a1acc89abf0a3e2c9c4a05ac792eb8f660328223b0caf7db7ee0772bcf240061cef8d5105612cd255cd37a164aabacb114bcd8d13b8df2bb79ffb81ce6de0a2fd5b1b1d241ccc15a71f35b6551a982ae9c18950ff2e9f5353f03688b37f6af20ce52df4d", + "7f1c0682416d4a4d61114b7dc827ab07832a08434e1974c3ba1703846d59d4df43104e858c945b96ae346ecfafed7ef4d02b4c9efb10a63807cace0415e74b30a885", + "f2b82e46e3399ba0cb4b7d4df9451b1d9458a557f455d40669defaa7f996c4e998e05b0620a349efea9e60bcc936c7a76fcd61981ab8a8b4475022e4f5c0898dbbcc3dda3f46c4ee8b606d7915785cf235cd65f34b09a214f0dbc416967c0a5342322976eb5e80f9600aee5f706923eda0e8e1f177197e3ae233ace8c48795b92cd291edf454a9d4ec75192380b898b8c77726206826634d92d193cccf" + }, + { /* i=7750 cDividendBits=4045 cDivisorBits=2143 */ + "188fe42465cbac7105ee9d04d281cec0d11a28dc144ead6a534598e9c743ceafa661be61b1b1bff2588dfc8c8e69353c9d3e14580f6512728f8e542aa800353bcdc4143dc3d8cf4ddc26228ac2528f66eb8faeb53e118741c01ae372a6fea02f8626355e8017bd32fe0df49e0075fb9d289305b4d44de141a27215ba73ed4d50f2944830dd3b981858c88099fdb6b49f23cbf06715271a6968636b85bd132c018cd090b8d8e015f04ae6e044b5cecb48d35394f5101501d048072381f094bb31dc1b1b35032a2209fcba56c49a790b5abcb7ba00f6d4763084da353095cbea4d1d246eecd83ed82ef328234dbbf5c7dce964bb52aa6149afef0e38532b1c24494caa5d6bb0ef003d0325773b2fcb6158c9f4ac0095cd6e970c82352626172cb22d5a0b74b958041e8ce43d9c4f9d1ba0645bba82e1768995330e5fc014b0c9f15e50bac4ab75bb3da9804ec1db8d9f0ee968720d4a0b75558b076eb7b6112809a1e76208e31327d7a052eed2dfdd3e1aa91ec78d5cae6d2bfe247b2e39b4b48aea91d6d1b1b356444df332aba1d7bcd314cebbabf5d7670b5c4e349b22df57e3eb376a72ddf2d4c47f5888938c9a6d233d7b15ada3672cab03194d7daebf3dc5dbd1f0ba61bafdeb8ea4bb925c20b26ccec9903b5cde5f5a03888b47340736527bc8d0821e6e42bf909e022d4d401522b5078f23d6d0634dbe88", + "4a86f9f13702d78aaf3acdab3fb4237e95f9e08e6d636172134800235bb0fb06f9e4474386dddf09f5ea0a3e7672740c12c820afeff85b48433d1d288ec06d873043e2cfe6d66e9ac0f5c20a33cb4b871a79665d8b4e582c85adcc8d00a3e8022f4b53233f98d886f849682e03de913a06af98858cc52f65d622d862895e2e195f20c5c8c284778b29c63ad8ad454bd59de1744d741590050d69271dc8ab900b75dd5ed49811b4cebeb619fd1188454d5c8772fcde383bd3ede336cd261cc012fc370828078c4f7cdd75dbaf0674bf3995e97da4d9cfe21f37204b6fd1eef8989e9f7fe093b2342d183eda304d2e9ce913377c1f14984fa2155f7f687da24f2258a1119a2a0297eeef2d08e7", + "545ed00d120146d9de26003aee279f7944f9ba20691892494598db3a5fd1915978a53544a77c02d2676fb5981ee4d0ffdc0496a574f620c8ee885379afd35027f54a91bae92c85e7d9f1f115ef0b95675c4222a9e79df211d000ae1914d35de5fd8516697a340a37676fa76a141a81e51e4a7d63d76d887d044fff310b67b2972737f883c6ce6217eb8415e350fd533c816e5bfe7f4a0e470dba543fe906bb10c04778839775dc1d5c8471e78be1ef72239adb3eb83a61be37e05bda44e56343c33c857cf061d9de3103e9d61c6e57b52b478b61f759c37d1a6374ee39d5125514331efbd01cc9193535ab46b6c2", + "2817ab5a22a42b7acfdb8903c547c96d94ab2c855a801e6c630df63335d728a567f4c66ba8b45840a59090300e2e0f9a69165b7788d1c580c382780cbbcf8c139b0b92ae79d3a82bed2d0bf5177fb318fcd8b92fe694579c14e9f5aed0b3b043bb7d4648779c5dd8416ddbf1852d1ec15e137e99bf0ec89fb881ad793d4108565c2e8dcfe4fcf68c4fe217c7c74c980501e56cfae44653e4abe94abc2c0b723d5cf0df4a340da6173dca783f5d517266a726691d1f2c538f2505c430baa3168bcf485b22bbdd44e470a627cb210e711018bac3f636fdf403a97e327ad5d861a93feb4719d13d3356ac190fca51d7cc1b4081525aa08de3fb8ba34f7556e7099265953f80a756af9f62aec57a" + }, + { /* i=7751 cDividendBits=186 cDivisorBits=86 */ + "03e8cde4c54c87298bcaaf2300970e4e3ee169006140fc29", + "0d718b5282f331ec031135", + "4a71ee1066e01ee2faf3969cf6", + "0452eeb22c805253c4273b" + }, + { /* i=7752 cDividendBits=3135 cDivisorBits=1101 */ + "04b061ea8f89c1756787af471acf6a3045f366dc645ef7a9ff3e7c9f8ff65bc8eb62319051082cf2a579e95c74d3f2e552dee22981ef1b29b830aa908c90029af5b2a0f4d3d6ae25a04c988404b60fb7f6d99f5405cec1882330e505fc8138643181d0d5ddc99ba63c0f7d11337f4fdbd5f5e1f0fc1859b600d4f501e61fee9ef6b7ca0a0da784eed3cb0c5fffb0c2ae96f5bcb52366badbda9b3df8cf083edfa3ed3477caeb68ab44a3386f3294b40139317065138193624da3aa10125a255e61d9d6792f86cf6c8d57f2aaaa7add511a2f8a3ec95bd86162d7b1911beee54748730b3b0582df86f7532343edb0ec5fe223c6aab6dbfe802960052a09a3317f25c2da3e57cb98caef57cbded35259841bdac97aba45ef02c007b80611fd873b4e10803b0bbe127f3fbe9106e193a37b7a9318e58d92b99e98a0534d3fa9df9fc7ab6ba2ea3858a88f9dff082db903ccda1135b2382b6f07879d5ce2e6b5c45580b2552aabc82797cc29d3b9e29cc4d49f91cf7dd9e831a026dee6b3941bd57a5a989c987cae7332", + "1075046728d782f8b3160b91fc618c281e9831ae385ed55a98485e6b2f5f7f6c63d82c4a80d84fcb1862f446407009ee46081f48b297a71d1f7b5f6c606353e4ee0ac16c72ab9d0b6be7ba449825b03c3ffe92489081c8425a81b92f196c81fdea957409b4aaeb8fc726dda2031314ef07e8b640cc4833ea1d5566ce229bf89cad961b50cc74c0e43a1d", + "48f0aab63224c72b70df7956e1ffbd4f746a3c8b5507a00efef1313c6c88da90f6004b0e2509318a08925644ffbf777b83f49538a439525986a40391ad12b476a299a046c0ce91f1e2f8fbdc194c0583974ccd62dfc11cef38289fb47c076003fba90b66680682bc8c421b0c4b559deb2d1a0e292cfb15fcbc323afebda6e7fa8cd818b4898c073e558ea7e8e2f1fd045f2a65e59ffa3b305c94025b4d4a3c0d519c0126100523856cdad9aacec8f8a1bd48cc2f6fe41113928f27cb8142546d789ff2f836e90523558dee5ea085fb06b928f9076e8ef3612605ecefd8e06bce7c024e2c6cca3e25851119e8f4472ecf02ba0f2584370ac5300048c38e0e", + "0d69571b6ceb9d4089645f0785d7627bf63da3ccb4fe1e618f660f95d7040d11e7a73246285f1cf91a31d3e3890fb9fc55ffe285f2d66272d948ce830b40e15ed5e25260543b2fc10118e5cc6e084a20440f7c8602e7366c043dde22b3640c25507845f04b334e87b475f21b54fee4c06b1235b2256306d7addc15dce7d05e53ddc5d25f1d06ebe02f9c" + }, + { /* i=7753 cDividendBits=1034 cDivisorBits=152 */ + "010d0c484c265a8920083f687044307100ec5b6b4b1c03f0a6e97c50977f3db0ac3945a680ba06056da2444046ec2248081198c8798e64a51e5fb45b900adeb9c33e75c9e386a1f4c83e6e917722bd6c5243bc6c48c0272b39407de4450875d2c992eae0a73699e3c82e5587852c99414d3d76bbf3ec04d2d7c77ed55258e46cf0d2", + "8973978bba67d268f050bc13eae03ab31be7f8", + "01f5185573ad9943e5f9afc9f058db380cbb1da5dcb83901a6c4a57330f369e5bc457406cfefdc0cf9a7ef6940943dc3676e70d9ef76331abdbb833c2114dd1a0536201dc88e86ec594a466d5ac0f7fa1a3827d7d33adfc948d223250cdd91eaea69a5b8b5ec7e4b09d4edc793f787", + "81357ffbb6b817161f51894009c5a4887d550a" + }, + { /* i=7754 cDividendBits=2445 cDivisorBits=2380 */ + "1d0ba5e82665c425b72e1f4f7fafcb6c3d3f9644092e5abb5a3e41cb59ea79de8002f237a1d7ccd29efb605b6cfb4317513136e426e0a02abd9d18706edc693cf8ab9cc5789c64018d0948906c7e66d270c885c87b06ea34c00356eab783934cc3ec92554e1cef8eee279272af5793ea0935dfbb0f8368e500664a4e16ff41c83ee5f9eaa03a781333871ce8cc25217f4636eb9110afa52640d12d142452dab619886d4437323578aa2d4e14f6b72107dbb754038bf9e1881d35f3db2f0df2b712e08ba9ec85fceafa3cb2d5493919023136567fff076ec466512d98c6b2c302acd09821e43c2e0eaa09ea4e5ecd010a878f8d49109b9fc136ceece6c2a1cf76ca4ce9aa3b72ca3290d20a171094bc93af994dcbdda135a70b0ab419d1dc9a37539a0763ed6ebf30fb4083a90996cb9dc4b7", + "03b26263919d098087b8c949d220e586a840936c3b68a0c6b0308c5c10863d666d4597ea4941c9b744b80e71d925e85baff75835976012eee24c14fc8b374b4f0d500a2c330d11c4c536e409a07649ebbb0ee4f88f2a651160d6dbc42758acf8768680262b506536ce3c747fb07a79027b330f692b87e13e61c434e418e8bcc0d72331674abcb50f53b59ed697dc04af07f505ab69f754c94053f4849c6ab3c471d8beb3d80afe0d7d6fa8824aa8d36c8e9b3d01e8f617662888806b870be44cf61e9840a48e33a8522ead79de26377e5209f95c71be1fe20e8c2dd7c034df29bbe78ab40a266ab8563623031e9a0df3e5e6802365a8ebbde4c4aa74111794fefc666a0e5cb70b1bf91fc36c7e4ef6d440efcf9fcc523ffc1989184a46ba4f05108f812242fdb679cdd5", + "07db5dde6babfc5657", + "037faedd0eae73bc0d64752a981e65ab4e298d9b16d033b56ac083016c5f666675eaef1988f01ef292b96c0793ac62313606fd9179306f2aab760cdec572e102c03e181c42f54b83cc408bf627483a44eb54787235a2b47a584fa47557a73a7fb586344fb54ec2303f22452da2a336a4aa7b0e1c38073c090541a8cf91057fc69456e9459da5bc2e3157004e9db75696a8c94eebe8accfbe60aa0ce874b3c68236f17d2bc7f37377a1733e906ef48a2363cc7ed56c973372f0fffdd261aa4d17e72e2ec921a6d0faf447585aefc17d182caa9960bf899d934d256b0b3e811dd4d8f29818a05628581bd20858ac0188f68c935dc7b7d8fd4ae71dd0f5da7845ed2107b80b83542a0d38b7b6c1d8303877f5f8cf52833fa7fc732a0530b6ddfa5f022fd1174fa5f8674354" + }, + { /* i=7755 cDividendBits=1747 cDivisorBits=275 */ + "05e3f9e7cfa85ebe05c46e38ef4a860269486715c8aa92640920cd5cf081c60214673293379780d588cbbcae74f6586b15a7763780943372990129dca0823a441586827287ebeb4632643e4f68666cb4dfb3ccf39d8641b65aea93a50028644f45df5bad34b886e9b00f5a6bbf414d230c00109ae0dbed49a5b38bc694d1ed7837a1006b413b6e38d7cb1f6ccb9b32ef4dd70df80fcd5437f5daff9c20468a8cadb569658696eab843374f403ed5072680aff17b135f45565e48590c7e49fd1458b04c31f9065e98c55a7037c84581ca87c9fc58d6615d945fe8ca", + "030d382f8b59092ebafa3a809f579d6100703d79290656b95b45d0a8b67e17d92a0f7a", + "01ee27277d2a2891412995eaaf4fdd7e7dcc5d302d0b9af84070e40ca7ce85ecaafde170f7b444edf793c51400626d615a69df7a98d6abe4a87914d0b4b9294b6a68b06088bac776fd3ae9c606e3f7cd7a0c1e2e9bda366f5f128cdc0b47b02b1bd53d9db228ca9683879278a49a9f6976c627aaa053df0e6f9a03ee29401bbb7254d6eca2ed9a3b42c2530c13c017926f48b7e639b555880daa0201e44a7f14fdb644fea883146bba2cf1872dcf4046e882592c9f92737c54", + "01df96c211869105a6d4c81a5b9d04b8669435bed929e9796049b9e81e54db6b45bcc2" + }, + { /* i=7756 cDividendBits=754 cDivisorBits=138 */ + "03700f4d438c414486892eb8440a60f162ecb22097fcdec3a3f8cd67de380d19344053ebc8a8cc349230276b16112f5624d2a2daa720603cc81ae66ec9977e4419f49d89428f2671182404df2fb04b1bd6805639ec1ea65d962db062aaba59", + "02b5fc7a00ad44236753ceb603e39e271837", + "0144a3b234eb80a0468a666a774fd1011cd2c73f8dbed67d8996d6bc86a1507a272602db24bfb2e982ce03c915daf5e1aaa26cf7de623e74a5a27fcc5e5278bf700b1bf84c3e2878f1e1c5bf2829", + "017867c83cf59c870cc4025cd9618e96418a" + }, + { /* i=7757 cDividendBits=1471 cDivisorBits=1279 */ + "45385ca08ee6734fa3543f8c69ff42b90ccfae9b82d5db0161b3bde5b9769fd5525ac43e41e2ef707f2b4fc050036e301febb5fb9a87a209c7241f9249c25c1d65a01c9f6227c1e0ecda475a852e0ace4706baea39ba91423f5d71799c9b760c886cadaa6a8900f7b477d2818411dc9a39bfd3265427eb3dcba2463e1e72845a18bb1abd342276c8c9f5a1225c9fb74349643fcf2ea84ea3da232c1e6816a3d4498d35d4f0c4cc33ac6d0f092f0f84055762a4faf01deced", + "36fcdd6f88f1c1282bd6425c53916c34757add31bc8c641f2253e924a1eca3f48118023a7397cc7946752571a7f265ab2ca855a2969dce0f91897a81542848593373facbc89bd9bb2a6ae39b2e9cfb768f405c42c77da0b261c348be3e807d70e717a950558d50e1103e4266b829b9f00f22b34dbf5af1d8c84a5cc15a92f51fb06248aa8495b3e0a9a6cb03d0aa8a73b06b9d16a1f31ee530cbfda44866c2db", + "01424299381d0acc050a717430952ae329082396281840a97a", + "1bc59689b9be518535b348a2c3cedfd67192ef58f7b03fa3a568e401aa93d7208799e532798b621d5f44a51f9b552572480fbe85cec1cddd0a6f71e7aedc0e0f90a17998009849dbf93f2ed535a64310e62da786d7308f5399cca7a8eb12c56d8dae795e610e7f6c4fd53968cbe196c364b1aacda457b99adc2987ae93a64647355cec7ecdf7de7a6c25958bfcec806962bf0e992f8bc48099b2d0b759c27d8f" + }, + { /* i=7758 cDividendBits=1062 cDivisorBits=563 */ + "16d327165ac3545d18b5727714aff7d44c7360792903b4b9f6c5393d15ce1a4ad18c9be17225de4ce7594a12224045a0515f071e315ecb2468beff7d9d1d0b04f07fb251efaad6536dd320fefd00fb281ef90e5fb11c4c774fa6080b70f351f10280e7e0552fafe2688d63da7d0ba7da4af8596d53a016c729401ffda882f5a0ebac5e4c8e", + "055ca86368ea19d480138144afb4b8980ed4e6870cb3416c37c6992200b628d5a350f5c1624cc900cb40afdb97d00a62de8e04b763b5ebc748381ce3282a99519c464f9d960a45", + "0441bebf71074be6b0ab1139e62a5584215612a80944fd520e6e9edac1e35abe5069f18c7c7bbe8aa7740242e9079972f73de5f039b6c18815d42c356bdab9", + "0231222eb45afac4f767e00ec70ae2c0db9ede1946ad37bc14c5a4e0ae8c3836c982d38e8cf2ab55c8e197b4c5a62c7b9df99cb022d9c42765605163babb85c04c2f7e725b1eb1" + }, + { /* i=7759 cDividendBits=1959 cDivisorBits=1365 */ + "534ec9886d8437679e6d727f19eea1e0f1d13647dd80cef0b2317083ca12a47992648893681e63d0a13aac65e69933fbba248e96c2ebf393c3649fd699c30bdccf9a30053a8fa7f43b5300054f800da7298c77a006721c8e1acde6ce02fda03865e01160b1aab75ba641d0bad6e87f01ad43d05702ce9d75d7c150cdc390e8c59006084a2649a5b58dcc76023b2476ea3d7b746ef803b8b50e883bc8b7503e8e3cff410567521705d99f034ba9538a76de78032b75879e24fda7a3e6de4f04391d685c5c97bb0eef5dd619b2032a5cda86245afccec6d7178007aba75121d25a9f64f915441e803255e9aa4451e019724394b1b468", + "0a69127e0da251fd87e7d10178a49ec0e04951afa18eaab0b79ede06113c4162359c877ca9e749239643c4d6043ca7e68d63b30e0fbd4d75a4c4b0fd3aff477725b09ccd3b51d8a103f229e15a086be610d4d82209a869f6196b21153f3d4df7cfc5e422f9ad25702753f649803fbe9004ff2aaecc091309f185c7714b53f0c71f9894a604779423bd14b604888125a0528963a5a9aecaaa738f21c9097c084d66c8f9f8c699292f628e78", + "080098b13a62935b1c3dea11db5d510e6e5e6ae1c427db50ee1ccfa3d9b7abb4d370b080e6cfca433cf09f79225beb4bef0a18ead43001652d6bb0fa72fe21a0c021effe387e4b94df3171", + "0210d9755c5945977e8e03c3806ccac3812976e8398fa77c30189fe6c9ef0539c223e7e826e5eef092d97c52806e43c70952df538e1b2d0f9fcc3f010ceaed5be5ac759df7e45f57f7ae0348350bf9d58c5d91a67ea707c1ab3347c17606b6c83ceaec1584468cbf0d1ee0f15871da7e617127a25c90f8efd27a9728a1853a3d346a39ba26bc395525341429d7de0160c571e537e69487b710e0877ae4c50eb2496a7c349ae6a45263d970" + }, + { /* i=7760 cDividendBits=293 cDivisorBits=240 */ + "02ef70e9a4412a5f37a39d7882f9c3c5fb39e6e9fd88cb2afb726159719fea68249cc9d62d", + "c9ab59794cb055cac42058ff231e56fdda889faf219cacd7abc8ff123e0b", + "03b9e2005ed61e", + "82c2076e03d10d341f7cd0dff770f776cb6e8956146bea2adff4b0bf5ee3" + }, + { /* i=7761 cDividendBits=1265 cDivisorBits=527 */ + "0192ad66646f83f735bff73ef42983e977a80926e557ffad548f7edc1327501b7043480902e6551c17d04a439bcf8358c4e16540741a84c674c0299fcec8667642c68cd68f1e6de6e0d5ccc172218b28835179c2605fa39e6ad25c587aa6a53703fb8b23fc315c4626712f55b5c928800c29a4ec21f6c5fe68f669fc26f148114e9aecaf167817684ee90fbc367cd1b88d8dad82534f5839808d097941891a", + "3e865a27a4319af6d24d0cc1ea1646d340c2409d16b41c28bc4caa993d3708b4600ad5656c23e9ae2b183d99a2a97cbd02646aa9c1c1c62d1537ed87b7024274fcaa", + "0670b63b63068e47df4d6961016d02f00726ec690c6eab68881a6379202f69e05f1a12b6751e858a84ba5d42af64b37a6b4fb5f1a0b7aaf2cd2fb80efa92c71b84e33b4478693bd7f2a45dbb993b6ebb28891b11f83ddf956177bdc870", + "3429b79ef6771d9fb2c5970aaa1adb02d0f0b9d92584c6ac04ddf46bacae4109205c6746ece6c1aecd5291b7d2f1764fdcdcf4a993f1338966b43e1e97e5712c2eba" + }, + { /* i=7762 cDividendBits=709 cDivisorBits=18 */ + "173103030ce989bac4a7fa174bc6c8db30cddc4f82817c57aa69986d6e7fae3eac668cd13e39f2f854b18d00cb38125482ff0e30f7ad420324614ef0dbf345557f672d5b570d3db7be54855b773087a82b52e4b66a8d61bdf6", + "e75c", + "19a9534b7cfd5cbbc7ac04bbf2f570a704312780e6b6626881809d98b553b065290e2e3c89f0e6f3121bc0dd12960b88b7d057e6edebc7ca13ae40a164cadbe823706b72f385ca67120d55f58dca55454ab802dcf74ad1", + "43da" + }, + { /* i=7763 cDividendBits=834 cDivisorBits=122 */ + "01be566edaa7c9c92c44b4a6c691c29800e8ca91c2708ee3a18dc18dfd85b9a70fcbc0db97dd03e29b8c5bb23d2d06297431170a3769bc042b80c1e7a5defe649f17a0b46f50c80fe7246ad8cb76af7a726b2379488596a374aa3e0d8fcbccbf25e84786702fafce7d", + "02b710a63e94624ca20a82281a8d2704", + "a4641840d8c3b6028ece307a07206765a2ceef3d8d4a2fdd91dc78bf7a977f3029f257898f7ab26d466fe830aa2a6261408efaee806e67cb2369f4e64a92325e233f1d3a7dfdcbc9c77271ad640cfebfb177d169e23d9d6bfd", + "9e2c828d0b15caf2b12150116d9389" + }, + { /* i=7764 cDividendBits=4029 cDivisorBits=3263 */ + "109bd20121a90ae300dc499a49182fc3486f1d68edb2eac5155f7c51882919c0c876e964ff7bb2f57f7a4d3275fdc194871eb0c545be798d1c2fc3bc94245fdcd0ea8433737a58092094689b20ff027460d02d61130866d416bb37eceea8c0dad0e0984c4fd1d7e92f6ed3da54bb028dbcbbcd5896db7bcd533fb48c10e0dcd659eb74b1a0f68f713d887ec6bb338fb719dc05c9de929908b4e80afb2115bcb4e1e8f9420a43a2b0e1fb5b5172d8c67cc699d64acb80255c3b894fdae98002ef72114035c4fc58359451727c468e121fbf1f82ccdd01e68ebb8e2b13a59bc26886fc69c6d2feff268e1190750e476d81344145bba58281c43b79fc9e3bae5ded3043b684e96cc380b4b66c5fac0784b481162d2397767c0d3488f849ff752368ca086dff3869f8caa0b2b131a28387d170f9a3d6bbd55c51b50a5dfc9e8bcd520e1c11eb39aff284dff2ec9006fd25598ca768399da51d155b5e3f8cb8c6543fe12e9c9d0d972e7516a38212ffc9784c1a56954a1e064b7b35aaaa5bf55406023c55cb551e3f4dd976705079091d3aad7ad1fd5d78370d635ebb850f20a0774a8ec4483bbac335c48a1fe1e5906627e7caf20d170a959c92e86d0523623e247b195232a63833f025136ac2550ebe0566c98a89b13151bbe6e1f5cfce97b304595ada18d7a32a355a18427db77cab770508c83c6ca8a8d913", + "45a6ac398b972147ba5eb971bcb02647172e6647f73f3eb61e69786e2b5132f5e8468136de6550873015fdd700f95b5753c1f9406614669d9d7733e48085cf009eaaff1e2ca8df4a2ecccae18f1b338ce6ffd3a756e44cc737e95ea40b13c936a5610bed505006d61708df68d5ec8f72ed04d8738a2c87a84d8679468384c6fbe5a7cbbbf39c23f956aa29bf7e26b1dbbb178fcfe6d3250158fd472939a50c5744101ced19ed44f4e9be805e0e05e2ab99be318ceead6b1b8c267a40d0577fd440fd4d89a9f980cba120d0302b7c995a92d0718b930ebb3386c1335d68f57ccaee294c91803e2d98d96d5c3c5b5e250caddae7ee0c0291f1b38a7dc704d39a2026fcb00d8a73463435442a1b882e685e016fe536ff8e6e75be3f9e2d7644e9390a2f038a92fbfa46c1cd06ac55b73af3e8e9410e0b71008995539a5a812cad35d40f12f89a16133549728149b4513189871e04f6e8cba752f95066d38e708fb1e37f7fb3d42565aa1d5af3e47d3ebc4cadd8ed2497866525449183b13351e5ac36335c584738faf6a1be363abcf7aa3b7aea5e947f149340", + "3d0b69def1a9b49f74510acaec3a637347ecc73a8e5ba5e31fd353b8e7e6ea0996320d929c006775868b91d4f7a2508475596927dc782d4113cb15bc2e5bacdf7b7adefa560a6ced75586898b7f9ddc6ac857f0380c476e5f9eedf1898153483", + "413b8218ffe10e5980af0a8ee18cb2e17f736d2f342d44b5b571d72545b29faf4ae924c8641c69c647595112885558668221109adc9bacd8708c59a83499245793eb3ff5a39ea4b930c8ac8871b8c645870c38d0188169b58a2a3aa9f1e3301065569f03ef1f9ccc07e57f647801d0c3b94998cddbfab1c58856fa77d9086c8e06814ed09b4d20f4d4d231b27f3384da47e0b8cca4677cafc32449a1e0ed10c0c79f7b5013d90909ea45161f2e5c279db1513c406f995880930f31dd02d143b51d9f4ac17fd33a86e64c2226a85b37c0cbb78589b3af611be694bc32491703fb92b9c144410582c6cdce53e4617c2ab19ea7d5b76afdaa971bfbd9abd2f3d20356f26905b8d9f83728b571207ac8c528e978ae090a8b8c071ed2104c255101a30817b24f5f8bd15e5d913e4a00b8644b4610ff05c4cd80468ea7a5ddce791576a9b2cc5b465df819327ceee77495074d2c9ff98304937c144634c5e6720bd384491396813debd39ee136afaba4e325631ac26bfd5a368ab32edcc85b86a9e947ba0a79b946cbe90bf48323d041326f029e4e7a815ef87f53" + }, + { /* i=7765 cDividendBits=951 cDivisorBits=737 */ + "7b0b1bcf4cde9e70e5626a01762c6483c0cb091c43098af492143321ee82abd51a8dda0d8c4d13641b82e73fb2ac7b9be5e142694fd3a8b6ac68be58b0823daa4686c4ec966a620f33066ae0ab8d73c865c44abe14800460052be7d0960b3faa6f10a51b63c9b9da717c024a54770cc530285bbbc7af8c", + "0132567c6e6e83d3985f6aac871e4b4cc9d3cbc29eae913509df00e243fc604e82f2e9136113ecc90a6f1c96c24c689172fed2b01c2357afa727851b2c803017d8e786e996354eb7283a83938a8449da0e4b9f812c50131b22ddb8cd09", + "66d32238341f61b02ffa21ac1a616798f7c9a90e0640c0ccfa12e9", + "c22b99f0f6c363933c6a6d5a4d649f211ac323df87dc9e938a5a087eb2af29fad4afaaa36c79ffae59f3d347d640e3fc5cecfeb1e819ed73c68f153af2a44776339d15dcfd65752af0ff69a4072b5506c64490bd7916316d8960705b" + }, + { /* i=7766 cDividendBits=203 cDivisorBits=162 */ + "036611be440c1b04b0e4692e56e845b02be7704a565c16a9a502", + "017981810bffc52cef73484270ee550c9b363e58b2", + "024e064a78a9", + "012224c22bd87f4a1429996f09f068b4223e79a780" + }, + { /* i=7767 cDividendBits=2134 cDivisorBits=2091 */ + "2260e5710e6008a5d0e87521816563be7b5f55c9dace12da9d9bbaf15e98f1ff1907ba7c71317bd31b87ef7359f5b6745708fe270f70199e1eb738eb72cc7dbb7a2f0251203556bee50b6d24b38edd2e675c449e2e8fdfab5737fd75b6a77115fd85fc25f5e1ca77c294d6740fdc5cc2865cced03ab9a44a0ca03c98d1e11263847bd6a25101af2354aa815c3f66080f64565d8c4054907ea09014a5806211ad60541a3ddb37aab24ab380b36d3048940b372385fda38886642358ae5360c2bc7df2ec70f846855e0374b60d424a9f3ec68adb917aba7879e5281ba4dc9ffa70dc34cd3b082ee086ee21f7c027f1e3d51c4d3ec306afbbeed03f89529cdb400b2b7e27f75988fa8c683fe2", + "04f9ddd9cec52d975da8cf769698cd256700f98d7da4ab1f5522ceea6d20d56a6e3f88010d77984da56c2e70f30d404485997ff1696b694f51cde5ad38e61172112af9384f07298d18a2b2fec4c45d1d8047a90ce1ea1ab604c7dc0e6728b6fd8f9286f8b0e26a2de2c43a5dd297b8702633056c85a36fd0901b5e421717e6d0a3b1acfd857358fba78d59affd5305531a61d131fabd836e97ccc3d370fa29a4c87bd644da5e3c4a25edbe020b80b1c7670d3a040680df267f6d2b9ad1639d4b16546f5a6b683ad6521b72be669f68b1cb4dd0bfca628ef52e1b0cfd5d9ac1a6cf0d7d8e10c78a654753a6b2d251df8d9c61ab6e4a7ec4b3371c33f4fd24d7425ee4e7a34c5d", + "06e8a775954b", + "83e36e2707f4287775a51dca25bb88fbabbbc156a2f1be3c3abca39491e811107e59b444b9ba870c4c88935f20a45bf1c014727addfe5a114c0d4ea855c29dbef134938cf24467b8155b02b07949e062713497d0455e3d84bebf98040d9b930294564e699ae5e9edd30e4717784dcda0069f72f3efc3690cda184db34824fb8c671fa17167a176b95ea50af433ff34c7e930e9385565270d14d024823aed0074f1328a024436e616ceb9d5e941fbe6b1ca031516084c547d15dd8e8a2d5648eebeb0d691da3153dfe9df38cbed0fc4a2d39955ce13a18db2d907126e46dd70bae56c9c286cd401fffe780e78e0b75a3ed8502f3a46f94b7535de6cd8f6d42bba5e129dbfa3" + }, + { /* i=7768 cDividendBits=2448 cDivisorBits=2254 */ + "01a1c018c66f5fbf380c604c0024277ccfa852664db9f896b0cf39ecce5db095818d46da4aa68bcd6244a380378a42e927d2f7cf3bbf111cca68d613f8fd1ece1b8696c59b0b39b4c3a3b23c53a6f5ce689f3ed97fb1c6dac0e9f68e57f3382633cbae26b32e9231d6fc18bac5c71b04d5373e869fe80e5447a433c09223fe1b25439bf3baa04aba6af4b2448cd3686d704f1ea06393dc3de81f53f0c45c215ea4d5d4f5e85d1e5f81a088851216f59f37a006f7378d548c9e24bcf4461d3e6ee949dfedb799a3dbf96e994e5cba250911922ae224a6bbfa148a96259839427350b38db6147f4d3ba4bd3875f556f2ed1878fdab2031e2004eced2178d744d5c1595125ce94a03a2f9f6ba185a51bd50bac5651d76ee8714d67253a251b306b8be95b48fb620a1fcbcefdbe6febbe2192ad0", + "0472012a22e84d5f59d9137a9c04cda7505fc91a1c6c2c39067627b61d883410b338da7d86f699f7f321b21cd7d616acdb4172a6e34445cb7ed2b454363628894c78a9946fd3bc8977aa4e8f6930236c765fec6796c0edf1bbff165bc0bf7c575fac338fd6c8dd97e9f616be2b2a4d60669cf8d908f8ee4be911edcdcf9560d2973d943402e58a3708a9035615249b7e4216979143a5daa43bd60f80bb48c80e9b565d121b0798b74998634368dd8a4863a53f8883cc142a6c400f9d0fe91208b3f36554d9dee9ac53444604127a446d8da444aa3c9ae1c681fd2dc1c7686c1e5bd3126aa2b45b39c75573fc8fa0b2f05174a824f2087a8cfb6fb7b6f79348d0eed0f74b857db37a626d1136291b915c455e45e9bdfe39769d16", + "5df9a077e9168bccc6b57d966bac1f45839ad4db1722ce88", + "02eb23c4b1f60df98bb93aabf037b72e13d57122b7450a54eb5a311c805d6ddb2a0b9eb92462536c8b0c71fbd091e21d70b0eab0595bdf216a0cb0632a537d77ce2ff519162c2f2d837077e20bbcdab26fbc061f4d5c4cfc206e57e0403f88311ea8565cb5cfbf4b8f68f741e70bb2cd10b72ddd81b866831af46bbcf6cba8c94da6c55377d6f55e227f3c3ef5d682625e47efe951083101412b994abba26e6b52eee57e1294b940e35eb4d51a9c2dcd1e38b1cadc6e8ab2def18558b838197e1e97756dfc743440085183edc61fefee9e1094d907a34e9ab6fd961e85e046698982928e33e2902e6bf870a986c160ed9295cc3c70169fbaba29f128035d3cc04491c1d92f70c7ad26b395880ced20f068bf6a1f99c011c20320" + }, + { /* i=7769 cDividendBits=1840 cDivisorBits=478 */ + "9c9b922f9f1edb91b6aa71cf7731d7819595d0cad5fc2fc402ddcdd92a4c239969b5f253f92a984e39cddf056bf51418e497131500c2724e900effcf87e88a602708b8b953750b8ef3615d6b32e7095750647d9c9fe99cf5e1e81a1b5b2b0e58736ead668ae332c0fcc144f18d7daa9caf52280d7e34785f225e42af999095cb792b398de2b6a7a8cc3fa031ed23e375a09d27b02fcdadabf45b28e5232e27be7ff2f45c1d1be9e1b4e1ed11dffcc6a57690db0df13485b7e8365065efca5450cd8371f3b96b7ba8b5b7345944434df6fedeee37cd51c5c3dc077f64ddebb7c05c90e5bade51", + "0dfcc96bf3b7201a08f2d4a2595107b5706a12549179b491c0800e79a96f57ca2b9a5607c7b3ecc50a932d79d504bead2c67a43ef6166104e60181c6", + "0b3240dbd1b6977677440c7fb808c4a35ff44acf8b835c1e8c2fd9b42f4b8b364b28443bf0fd2ccf2c13bd267ac9a473aeef56a8b04894b0469b164ab6053bc53059f2ab82edc7d3dc65c8e364c7c75382bddac65a53412d49fb7a83f096a7fe1219eb7eb04d46c869b2ae802762838e3c2aae6307679fb1ce2148a04639003555d6644005b011ad84afd14ce3f1474e0adb2506212cd71b0e22f670eb0919d57bcba1c7c104c906064d8e", + "08374df8867203f1aad0133060716c7c5b5db708dd4307bc71362de099decc43a50978dadbac6a6a8b9dd869efc75f43e8b31533bb2aa9212e38547d" + }, + { /* i=7770 cDividendBits=930 cDivisorBits=518 */ + "03fcda9d8dcc4bb6eeec693bf3642ec5794b78ce2e343a7388807321f6dc34dae955186f0d427162267a4a1fc5e76e0084b52d4fb748a9f16d1efcf011e0a4b8b4274d6edc48229a41c6b08a6a8741ef05026ced2d70caa4ee29f573c12a6972fbf0bd7d48535f46547918461ef54bf0550378e650", + "33a9ef29da9eac746d61f3a2bf7eae495a142339b95987c30bbf3de0bc7f7729d1945a0a929136fc1f48025d1d30fe2a2cfbe268d460eef53dcc41eb5f293aead7", + "13c27265bdd20e0b724399eebc1ec9abcda9ff53fa31b142c65fdf132c50d985be43fc8d4021ba03cbb94f66a621bc624cc754f8", + "2cae4b125d0847bf5efddf528f550b3247f49b5472e550e964e1839e506bb9050b456897366364147c09a6279b4546b8e49d63c77cb90da5de80435dcb5c35da08" + }, + { /* i=7771 cDividendBits=750 cDivisorBits=229 */ + "036116148d90373e30c4319dbcb9943791f5076743301d0153395fc20fe9f49abf4dac7111b1d881585190ebac0c60006222b1ddb877e073187fdee6fabf9e18323d04f31ef9cc90a279c7cfebeea54afc37ab2c9a371b43e45278b953ed", + "0dc7f9bd64f3a678b0f70dc04edf2e47bffac5490483b25924c67d946e", + "3ec5ec1557fa56b102df306729cee590ccaf501d5f819d9609439887ff1bb3fe501f6f184207b3a869d4a445d4498bbdb1e3c5127530e23135e3f8bd4c9da01054", + "0b1d645471a8627a014b572acccd1124811f60a1dc8207fead437dbfd5" + }, + { /* i=7772 cDividendBits=1883 cDivisorBits=642 */ + "02d19c268058d34df1710e809a393ed239b29138f1f49944acf7757a5b05a163e9face38a2d086461df6e14e6a4c372c5bc9caeb6e7792884a1123086dc711d2ad33e61aeff74f3b9651e1b16b3a14c31dac7d53a9900bed86dc668da25e8a5e75c1d9b239faf18e2712d5bdb3aff7e45e030e31497ebc7593a8102468c48740883645434d7f223e8f302b317d789447f4d92c6cc2683a1b7f80ada3a755aad2e06b0f7a1ed242cf2b0e537ff1674392b3031dcdb4305ae16bb7032bd22aa7db9874661efffb28fb099d2e341eddaf2911cb32fca5ecfe6699a726b07ed1dbb5811429ade35fb4dac82fc04e", + "78dcb7dda8cf294ad4a22d3992cb08cb6961e916c86d338de1e94b191770b44bc045e8e950648c14f17a1d1763f7865e1a7af3178b374360241761009e098153ed60fd0aa8e5d62cd0b3d8401959fb07", + "05f873f1418694754a7bd92ba25e708624e46168206087a152a46d82de8acdf8b4c336d9c5bd7fdb35c73fe840f9ebc600d6a24d389951eff8f10a682307ae22b19fb683f21b789c9e5258f88d3f05470c45e3da38063d21ed302b698608f4ee73da8279c89f08c9e4f255c89a066725c979da05a5930a2dfeda3734bd8990c888612fe1d3a9851aa1ba0489c3c0b4df9c69b5c580792082e56999d5", + "16a19449df4354af7af0e8cbdfbfcde222226f2707c0986148e09b6e39c426fa4758634a42c0755250a9640fc511293e3934623d22d40dd502fcadbf0d338bea183f98d799d7c74d73253b5bb06bb47b" + }, + { /* i=7773 cDividendBits=2476 cDivisorBits=1917 */ + "05ae942786488364d5cec2cdbf76bde08c52b5a77990fd53d57e35eff924f84a6fbedaa3cc76c2626cdde3920fe5d7415d4f2749dc82df718fd72dbf69c5108c897396b688fb52053f963b4f0e94438627747ca491c641068ef93fe4666361120b8f7b42660d89586b77db755e363a9fdefa271c5d138441b4b0de4acc460c8e3ddef5c62584d7da76ccf4765ccc4c727f298be8f76b28b5a2d2d611803fa72ae9bf6d6d6309f8644c950165af3f977836a1f848e9cb01f04c979ce6a54f209e12e690a0d2b69a966ec1d72fce4b42b0fcc722748299a50c5f656959f63204a847e0f2e345799cb83ee8600735eabf908599473c58da76219d518c64cb771f9ce8f26bc85f72ca4a010238bc2997273460e546148aa7568488dca8f40573621997e8cdb6c690e3cd84d0243e0eede0cfb05b536fac2e", + "1b69addfa039b23a5daddb0932e260380bdcb7e0b7ab10bea79d10a05fe37b8fa170a08d75249027a50ce7805a31856b120c2dcb5b7162ada0f3fd9bf6deb51c00a9946f58d0eacb6a80442e98fc29e7a1363e72a3e678f7eba93f72e9d2c7ae384dd071baf4ff3a678ce1ab929cfbe9e83451bc691f7c71aae80837bbf185010c1f8f1b412df50afc8c00b28f3d762536638caae065b2ce70ab9f7cff06e41e7e39cea975c6bdc9a043f697fa084548c93164ea3fe82f0e627c27368cda0c169700f0e56173462317c8b235c586c960f2d202e2f2223e4590918f0a2f282c55cce0fad7347eb49ad44485764666430c", + "350fdfcd49fc400d11936cf8a77dfa396b2b2931d46b6bf0d3c8ca9b74dd981667fd220849c9b018afe1c5f8b7b63cb39a2c6212eaec45a43651bfe967d9944cbdaf16a28ab1", + "1864a6510ae3ffffbed1ba9346c2bb11a6add7ec987943a9a415e4d7b67a1ed27edbe96db7191529bdfeb52525f0904fdb0a466966aeec96e5d01e79a68a8c7a75e61f8b2aca09b60a748dc01627a91ffed168034333f4afef7b8bc6af71f21c41115a99588ba622ee04941287fc9a03b0e1a6a370012470f0b937d70db8e7a24c9ae903a360a8a54c32d5cd88abae5879eb2a979eb1a329e8ea0d293c933299e9eedb837a060912b77a7ca028badc8a3cc7a948d22260b1beba89e47416489b043af6eac8df87e16ed65d73dab95e8ab8078353045d467eccc399f307935f78ec8fbc7d764b468117a09ff410fed8e2" + }, + { /* i=7774 cDividendBits=3435 cDivisorBits=1272 */ + "06728afef246bc23350e3823d4c457479ba4a09e85256f424d0d5cda0f0b48317abb4f4df00e3f4988a936f9996fb0d1a58ef78557c3e2563da5795addc77b4a348bd0f9733edb1ce8555848539035e29c582a45ed3b71d478af68ad76ecfdd727eed6e95909e13b1e6b910eddd7c8a9cd3b6534c35330be7d1dcc5ffccf4ba0d1027dcb0f0468997eee5154dde7aa38443ca368a4532ecb4f1807c2ea3f9c92fb7b89d0a2997c2a400ab321fc2603f2fd8a6e046ea765516fd0ca6b7caa14d92c63486909ec4835129788d68ebd53edb1cfd6cc92b28754984415633cba2e5f806bda8b2c241ac08638361df3c00ae69d8ea1b86793c0c4573dbfe814d18b50b8392d895b57915c2603aac2d7520b36a0886407ccf82a267041f0b795caad1d83dbae81c979e0115d399d7bb42701fd457d782cf3412147d635deae534ef6524a7e28cc9f40887b103b851c6c9b8f9117816119e3685051723d3542fadae23b8e53e59818e7f86813d1f8ed0f96ce5f4b31f9ed7a62b939b1f7f86486c37647ef3df7dfe5a02126c0f4a2e148bac72c979bbc3430c26c6d52f691665e7499df0f7e6365bfb300ab69b82a2f7ed7", + "83081947c281918a2eeb9d13083210f1f554d48020553cda931afe4a0dccc82d26bd5cd967eea07f41c0122e722af27e5750487db1dae51adf7d9aea2032664be892e9e8ef9eefa19190b591e9e6f70fd99fab458e56089bb556d2f8f63463374dd3c77c621efa733f535302b3397af7b72261a5f074ef857b072c2ec5df498d4e0bdc747b1c4111c18672c4c38cb572cfd28629e5d3bea1138aec1c967146", + "0c98b5b3715847c96a5175332c14e74f6966dc5f3ad38ae28b3453b56a1549bc781109bf07b1238a534f67aae5120b68243607149e58cbfe23a1cc5d3c1900b0542e9eec6596b5a56f84b99323b0076c311bc652a70e3fea870769d854e75e6af88a4175f3b0d12acaae9796de638fad1c16353689b6c839f0cd96e257421386dffac553065cdcb099ca32d4550ceeea7f477a06502ed5933d1d7d1b4df8233f56d3274c126e788f225266c12263a6ba4beafed0cbb11a57b97a1ac12f8788da5c64fe005a353fa1c048c98d72e92039b7edbd9d198d73e103da31eb9b71de39f09e488f534bb77fb3ec51c3cfd25ab3cb9e7a9aa97356b17cbcb6b0607ad3239bbabfbcc4193f23d95488ff54bdb1", + "2d7394bb4a7a60da30a39dc6bc0bc27f4a50e5caaf334692362aef8e3777b3fa7aab3e738868c05e9483d5c419357a940aa560e2b8bc4381c7630cafc802e794deccc277771563fa54a77ee25aa0671091fb566c692a96c65867f81880ed4b3d9134659955ad417b53e1df2dda282d21d4f66de327241565942049aa8a07bdcf89174baac17933b8a4b310c46270bac1be8a4b7f7980224b37a9fb6f927f71" + }, + { /* i=7775 cDividendBits=3534 cDivisorBits=2071 */ + "01a9ef30b6af9dac3da61810ae5ef761c2308a1c5289dea67a152add5040ac3aa0cf464aa7ad1cc132923e834852f49864f4b93d4d22e1f9e52d1c82943677a55de2b4d82d9eea2fe34b6fd2804c4845fe637e4ef3cb21a18217e1fd0df00de5ece07aeb166b12654c98bfb3994256d50a612e479f382f7d16ed149998a29b713f42ed8e4ba42be731ccabdb7487cbe06b4edcd73c5ccf57c6bc1f5abceb7624385f333f6f7c7cf01a3f29b4121f4fd72276a1e6ae0ed5accb301cb19b90a62c68d4cd53a643a04933f802e9a04417f813923fc972a21cf1cc02ce30d0783e8cd376b3c99754cc4160b8b6eb140637888d6813c2214a9a68c379e9f15da4677dd44e822e7c6a6caf7a504b19a5c09ccb10df100c6cb98f14c5c3fc3f0062380b19c1330a08bdbd45c6ef82f4e824ad26b7b5fd22e6def2d009545062e17243c06c5c30cb859846bb85322ebfb14f07c2760aa7f8613d65dd3dd58e40df3d63a18ec901767c8e50e743234850b2a9d1ef4d05b65f9036ad90971b92dbf0c4eaa1a8effb0e46e5034209dcab73d06a02f93db71a40c96babd1cb278e12c2c26f912b9ae3d7875db2b3b2901eb2666f8670f51f150a1cc46808e82b", + "211ad8b970779000b07045bf3cdb056c45d2d943c8471824f73c7b3fde4103eb89637cde0614521488beb72705310bf0a46d862a2f61943ba85d3c55e3a7e1837dc40c847a8635ca94a80f192005b581d39a891aadc6ae80b1a00ad0b76e9695a149c29c2eeac4cf46081bfec6d0e8af595bfd3af967a89a14564bfddd005a3c9f7c22aa15500539fae646fc9c3d5987fa2244a7c98cd42b08bd851e77f55815d1579bac6809d7b0e6efda6fd6f774f4d206889421a3bff5df5712fe2ccfd1095217e0df2784027587602829d5f1d40c65ac82a3a289a55576ece716a5436d9922a110f29033c83fa9fcdf3aeac6358227d78f4e3ec996e6dfb6271d073f54d751c31e", + "0cddc0348605ed94a8eaeca2ad54c19952cd1ea21f8abef7c0f80973e0dd34e0c87c858e441f8080b65d08756b506d67317d6b236a2cd1372542bc8c5279394f003aafd9635bbe0a81397cde911de8ce72a347e68dc3490af202e0e5ae598f1ffc820f5f26c80f2a8a8bea292e2e694400d5f32fc8417c80c117d1cf17ba419a9be659ba6e623436f36fe0e8eb4c8360d1ab82bb62e521ddfcea5d94e233bed05c5fe5ea76c4286689d1f10ddb8b63e46994a4d8815b3e", + "0233a95d6c8d76cb837eb160ed68d14201d67c7ac228d6c7ec9a3e589c567f73cc878b4a2e81925013ea6da00c87c06b561789c639716dcb1efb53344e0ac44087884216f0ace29ba09d86fe17b7661f88c430af3b11c03cd10232214321bbc85db587bef38b3482b9865f48dcf8c29b345266e2f8801bee7b8ee49b6abba811078efaa7d0e254ed53f02d0a4e97224d5e9850fa89cfb44d357b99b0984277adc948da322ac478135796ad0fc6c80b8581f0857875ae988f08ae1d4eee1e9a5c058abdd3ef7a391232fb143c2abcd29ab2e46a27b128aea3167333167395a93ac07a900cc90d17b590e7f6e3e63ee4ddd9cc08b073175ddf42b27f05dbc9a18fc1fce7" + }, + { /* i=7776 cDividendBits=3154 cDivisorBits=1951 */ + "035e4ae9a89761c4c0060bab9b53c915b1eb742a98892783826624404b496419aa330aa2556694ef3a783b8eb723933448aa11c71acd9a4c843a1fff1d7379872386028cad932b31ecd5727a4e4c7f3e90e4600d6ebbde7aa2c15d757e278cc344e56ef281196db31cc3dac406eff2bcf8bf71131b4782d7f2bbb40331dc55909a7df63ae3af5e8da190c1e908842c9d5c4907fca1e748961a0b3e1633135a84815e777340565495cacf5ccd031f8d99a2d4f0190451192f2ab11ab0fce09941ac1acfaae119edd3fba3920d6f2babaa0524a01ed413d35ce370a490a7859eefbc2b2ab01b33dac92b737fbc7af19c8eec42ebbc23ba937d5cf4e1137ae2fb5d70a050b23023501746d9ddcd8c74f83c0752db5e8972bcf1600ecb221bb62b245145942e2a5f53f96890e60c587680d27f7ab4dc502ff4102445fc7345452507978d3c63cef1fcd492160f5bebfd5a136c7ab5d72419c673936f1c0c7ed06e6d7b38e6135521605fc0def296f075a5d7886628dc35b6ea8da0ca39ba664020ab4e6d1071e81cdd98faf139", + "314524907735fc2780ccb6bda513aeaa15f1bcfc0bd3d6b97af5a471245611bc8c31fab82a3dcd408f051f06f43b600e7d1b29132e27da0f3c20f8d3fac3386c20a504ecb5013805ea9173a1125d86e9df35a78511e9a1d05c1d9c8cdaf75810676b63fe91430aefa8fef74ad67cf2deabad1c6d770c3e915f0fefddac95da3f1b4edd5201dcc0a2daf6200b1e84385d4f5f49a448b9a9e5d4b8c1077dce3a1089d5b07c143fab6bd0b73273c4b2ceb5f1a322080785d8e31e3c5c832354ec6c149d4408bb06110aa7dc65e84aa4cbdf436b569677945044a4235c81b92ea4af60a0607c500f9f8334445697b8000ed2f5629fe9", + "118057e0e74c702e6773d71b121dbb2e9b8c1a47cd90de5e2a91aeccc10440c73195bc3dc4cb7fc5fe309985c02642e710d27122c816ccf7dd86dfffc09fc026c4168d8d6438e748c1507f5c5f3c109cce4dba37d5962e7e8940c30d586515e23bad2fcceb5c770c03102d72d2dbb82d30a424370375449f88a60fe7e3a89b39e33e888ddb0ef0c7affb93d9183046eedd51f5bfe1269a", + "0bf3c326aa08c659add2b030da84839f6de716b470e51d4fd099c1d0b23e5da4c76738ad6478b28414e726792379eb74f3671e35da1125d1a6d66c2f77812f72d5f5ed37e1d36e54a7b8a7ab190ae4b9b9f61aec25212a894544d177054195420c79cf9596ea0bced477c03ed6235a8d089cb1405062d20db759e2fe5d9ea54882676bb81b437c53779690680b04f6a1c71ce78c9694c6867796ec19a44bc8c8e4e46f83cc808aaffbcacb30696c8fc1b33f84b6881674e3588a003558674dbead7801801e57dfb55184e1a35f242a2c7f6bf48ae23103a2bbb4a2c36cd2500c96629ac423e6a23da8ed2d519d0cdd8ef521290f" + }, + { /* i=7777 cDividendBits=2209 cDivisorBits=1452 */ + "0f99f24cfcddae7a3b978c43e303169d72e65b51dc927ae4710a1e645519aada90b35922da078ba9f80fdafcb8a1c8de743b6512cceb1338dbfa0e4965e63140a826df014e7641844e01d0c1b94524bc52176c3685d2d976c1f2f400ce62eca1beb1f0a09718f9d36db46015a255e0ba347cb4a8ee0ca64c0b6cfdd9546b21cf66dc2eeed2344c4d9cb55b8b2af725b129d9a8d315779a979254666b8f27275b377dd2498656302857cd893def890a6e5ee5d28491d8c41612008920d2d42ddc767fc9f822d632f642b1488571985d26f2783cd2114e2b14c85ffa739bcb17f02aab523713966570fca40c1bcff33038966d5d3bce0cb4fb7066e0503efd9db2c269c19a9eb0eae0b53e6702f7c2dc0231b88f2b", + "02d43836a631967a9fa6f55338e12f3d417840d3dc9c3bdf409f375a86a905d770ec31436187909af846ff6bd7b1df34045d4d95fe84cd7d7b44fa2a7e0e6b72e07ce1c835cf9ebb864ad8c87b5b609964ab4ca455f518737e78b325c70e7cd3a174085a46920509a36c1d9182a3c4f8cc4b729c95c029dee476ce47248ac2f763f5544cc0bf8ac3ab7e6c0145171fde260374611ba7a394f0a4e59f7e940c4b85d0d8ea4fccaa8b7d073f46c20f1856061799182eaa", + "0583cbc5ab2d977619d87af7854cc7c31836e00815ab2c7e3c7c3132aa8acaf3beb676212136d69127a72fb1a43d61a6f331538012cff6eebbf39ba9d8395c7ee3203c0860893c31be07cadec4bd1e179cd77a778dab90c6aa40605cd5c014", + "012d397d953d96dbcf86494d01c3619801c1e4b303aa876be37e076b6991ee7c56ee98110ab6afb3cc822a1d33a7cad4eb2574f65ef30df9e8002744b787e2a5abfdd988fb1895a02cb8dc11e989b930483ec6868adeb614496af7443e6a32590b5a4f12bcbb2d3c17b9ef1da52dd2f86c26a43d420c5dc05e097022ff7bef3fb6f62bf7c4814ef9051f13ef2936595e25d7b08cc8a37f1bfb7c0b03392f62f8314f4b9ec177a26da218e29966eb12319db42d6369e3" + }, + { /* i=7778 cDividendBits=793 cDivisorBits=195 */ + "01d6ab09902a258afd10cfce99cf4870ced0382c3ee4326a865a4ba0176aef74dcab7de9bbbb7769e6d1d5ce2aa4b0af140d1a661c9606c2b8551bdb5ff7f27b36b35b92857dd7b59ed7d36967fe37ed0e8aae31196d863ef29c461c3a4b471d70107d76", + "f646d488965120ccc963b576d3836ca8c01d3eb4db80e4d9", + "01e9402d9daa8cf659a7654f6766eec3bfca0263ad4ac2ab3064996e809761eb1d258b07d69acb85deaba17718d0c683fd84a9d4b9d8e9f1df85c53c6e4eb26c89a0799a4fc921f29e813998", + "7afc3d211d4028a9b4067d96a4fb6213aaa24f88293b4b9e" + }, + { /* i=7779 cDividendBits=2418 cDivisorBits=1398 */ + "02b3920559a675d04d569ca5d3e8b4c04022592f5d5668bc65b3c321cf54121e3a3653da625fae4fbe37bd3f08ca9b0d0285625770a3f287d59d1c311746f1a9cdddf24d28a6e68eac44d6d1031e2b272ab61e02297c7f60b0f446778e1a347e0b883effe43a3e022910165c26d39b161ec6f5962f745565ca5acc4f72a499b14d6d9551e61f8b4b9c378dc824f7bed107b5126343264cef5da8c5907c845843c3d55964de8579ecc9883687c4b1759f848d9f556229b80a9fcf127c5be065d2257bb5ed98d4c5776eba3458e58d2e1aa10e385177fecd6f2e9def8984554ec1e22a7bb66fb4d19360ef6d6646fc6dd395c18b52f74230044b73282827375d9568f0b927826a19ab23d0c73a5ccb693aef1e25048451a5fa136b705d10fe2dcb4aeaf269acdaf26b4d2928c714f704", + "052b4d4e9d1ebaa8b919d6fc9b9a30da14b7673ff57d39277d9c8e6db639e5e5185175b2703662ca220fe630f7d6ab37fd9643346f01d87f5a9f0d5d0aa482b183e06ccb35b731bad637dc396a6ca8d5ebccf3803aaa29dfaf97f578dc438ea591c6e94f4a0724c46864ae8e9cbd7c1f00754c98c8b78a6557659294755ae5e392de48305506c2044a961a0f1ee3eb6eec7cb7ef53bfda3dd0554bba55a6df6340553b8cb3406e440f75ad991f701f", + "85c9bf18e1cea4a7db3b2d27cbbf087febb70dc858e2bb8884ffe0464b4fb5d9b4e2b969327e1be3cf8935b95871f130b9a6dc9eae01a27f397acc7ab41e5c40ad537034e5365334600e2616243bf84c31d7271b25cc923df811c003828e2b6ebaa2d9c5b14b15a1e0063896bf0e6ac8870c27ef82e09e75ead365f83f78cb7f", + "012a326e0709c863430313346bca049f7ff4eff40371237e9f32ffb98585cd644b7bc7f39bd3ad7ab67e869e77ee634bfc816a7446e77a6f8457d0f10e00110027312c6edb873013739ed9f5b524f7f941571f9ad7a2cc48d01d49a64aef2ddbb9f44f9cb8f8afb58ef489873786d40e7d9d8fc76c5d75735fe802990b05e0cf6f05bdb7b07dcd31299c0411d7e1a57174856a4aa4b5dadc13f8206ccf6ec8e5d9edbe3213efeb0604c341b30bc2a3" + }, + { /* i=7780 cDividendBits=1852 cDivisorBits=1451 */ + "0c5e8f31ec2d82134f9147e8d706f3e802d52b5ffe1803bb0e7374c32a9844eade323f4380776fed608ec87f05ed888fdaeef0055b3489ad54cc1052da43545f618a5376cee46fb02c3be7a6d4744dae52a30ea02ba0aa4c8e8bd9103c6f79a77f5fb3763514b48f9b28d2dabbf867899db2db5783f731bccbf754650e2ff8a8a332ce05af59d5b1c318858467508c96bb4f7582928186952f06691f45eb55c4c58e6a98072efab093299144f2d8431fab00dcb27b21fdd7a2d6788da2fb01511bcb6a29511e1060f5dfc5cebdaf382d7a9197c5612b9e7837f52e954306c3e7d9aab24f1991723e", + "4df5d147cfcbd82212682550ded3b4c8711164a2acd2babbbc5bb9dd711fd58a1a013da8ae9958e6515d6e7dc31f7dde970cc0cfe27fcf3804dece2bfeccf34ba6a08c449a63a8cfeaf4cd0573fc4d97bbcc1ff35751a3636fb4a25e64a33386391f73b9720efa7957f98ab012ce3b64de682171ff717dac7e468ddd2e538732d3715d7e8c466aa42e823eb0f0d9bb71418d375ff4074efcb08d6a7e86273b366ff8b4b35956f3ff2a40a17c51af6ad623868241e0", + "289e1cd44b4c44fc080c57f69e43417a37322ea3576d0877cd8f114045a13b7b4e542e5dc5d371cc90296c5de65c67bc944262", + "04ae4767f5203ce0f8f42529c65c9dd4f76beabf219dd68d934c40041b3a9a448e229ff4c36e490d49be51ee7635dd61a46afe020650c4c7db50750144630ba811d3a9ec9950585b17ce4aebb760e26af6a633178d0a765259f35432342b26c9a4dc2d8abcfa3a1f454b480128e569ed27432542fe1617ac6a8bdf9fb73e83aedd8072c0ebb042239c0307c318544463410d645a4b4bfac5662fc8b11b6756284c150a96ac6568ac3c98e27c4bc6e9233971387a7e" + }, + { /* i=7781 cDividendBits=2363 cDivisorBits=1245 */ + "07e6033589efc7789ee66927c19fd970f465c1c8299c778fdeb17178de3c81fe7b8f6be264bf56b285965d39f59fc8b8972eb2f68ebae6ba49b84be0d9d4e7ffeaff9e4c35579f2fdf5b0d16697ce9efdd7793e38243b362648223cf5026671cf8ccb2873753ebb8e861cccd55d5624c226c4d28fd61c6d61ae3987d3b487e5767b1ee6ac855af06896b8f950770fb7f0ebddc6ac4df9098f2b1a18d264e267b5d1a0be1c565d0333a3c2366d0afff80a99d068f8745a4fb5a7772bda122b1ad129dbd02665e375f64b4990808a4e41cab50c7822ec33164c2c83b1897f0ac37a2f0825b118cae2a54ed1c0d4c34ec045763a6c8502d4da981b0972e526b148f88bc65ee82daf91734f39335960711ac97b49dfb34e329f8352294de02da5e1bea861e034f743f51", + "08e89d3629e9328cadf53fea9c140aba0667c7353ad288d0cd965f6cfaae0aa7193fd3019a3f3b52adfb4f90fa33951e6fed3f84d97b706b9f6adbb96841da3fc836ccaadb07242976c6afe5c4fce5f4b7d6ac24bf7c5884dbd4fc5f2e0a616f8ca0310957478b4542aa7f28186133450bae3386a8bc30a3e4cf2be3d0511e49f12f593cd8af898ecab07e7ba3f7cffdcbb7032b0feb87ad999e94a1", + "e2f8cb5549c4338080dec2bca02999cf7f44b7c7a7dc3df01a884667188ec5aca9c5d6c242828ba65527f9cb062b4291cf4b0df4da6907dc98e003b23b6a614a4341a3d0693bea9b06d62a5a32f9f4f5007fd45a8b30ff98a3e9633ae48644b2fb7e8343c313523b980b9a9228421a386ef9e694db9f3a9d8966dcd4c85b7881eb1f9451e82b7ddcefad18ac", + "064042653cf418b390da4ce922846aba83859c7e2ae54b954675b2aec92ca93faf017d0aba8a8957454eaa68d05a741e9e785aa338fe74e8e514abd5a5a063256682cf90c51da8ebcb79db7364181679d5f2f37f7a60f45b5c5f1a4fc2c11a05836ebbc4c78dda3f3b584603ab3c27f61c1df6d2839d884ea4a57a143647a4d95a5af3ee5d8df8fb6444f87df924d0cec2ff91610eed7ab07b2c4b25" + }, + { /* i=7782 cDividendBits=3165 cDivisorBits=1818 */ + "075f72ff02f266742da42025756e61b5a12496c5e9270859dd77819eb3eb265e002b6b82ad635ba3cd484d54ea4ef274fcab8b5ca72f1d5d5d61b0085f5aca3586096f76218f9d3ed9070a050efd9e846b31cbbc2c4ac6b6d4039124558f321552ad2d5496c8029daf2f57103cfe67d5baff581fe335100267bd8af0d4c427b10213216d34e962bbf4c2caaa09e842da55f2b7685fa0e1801ad71a3780a546eae9b4a17ae7c90807cbd777c39d1c6d6134c063b79c126554722783c8970fa5776ecd26937988c926f4b45d4a30ce969e183f0d4b9804f6b5dd37ed5b666121283f4288dfca0ad6fe9c85acb299a58bb2b5cc3389895dca0951d6b94aac2de8b8241d8b32a5d497d34560f749de320381cc223e28a99f3ea2323be5c5a6cac00ce2ede564b734430c6c2d413a787122d4625f9c4a5a76cba057d3255c0fae2c30a3d6b8485283655ab8a86566c4092e8cd7b1b104127abeb2ec858dec955425fd42ef3978346926afb1615c912423adb3aec60e075b6e8623cdd0d6ea096d97dea97973238b461501e0065022", + "02e9b9276a5eb5d78e37735b28425674b7eed209ab65c4beb02740a0b8a7386f505d0867a71657ae65e95515c83557644b09b12701d0b2c279d855ba96de74c690d86ef3d4b286f83c9becd65fe7148c302dd1bcee59e30db7c1fb4eb45489dc8711a77199f1e6cd4c0ef97d5b69a7547157c53b21b8f1442caf53ee74907f0dcdc5eea71c0a4d7362c74a1666526d48dff51276ef3a9cabea860442846707dc92f4095d6cbde1dc0990bc0e0246aaf6aba4518669e973e8221bfda9321035163b5ebfdc4f55efb5a7a0a1dad587ba2cffc260b6f430fc33fcaed95d50bce7c4b0237626", + "0287f1b183224b52537545d306d47b23d06f2300a8c33a61eeced287d698fe322a518e247facead794256ceaf09b17fb39adb946efeed363badc20234492ce5d312edebd3dc4f7648225b1fb05952aabace308b760d9041dbd5bff6c6978b54cc63a8c68e37f622269941797cf95e47b22fd5bbdb364b54299f8e4b0de607816f89c954844ed232f030f02e06b19f0c03ebfe80a50465f6eceeadac5e20042bbf801bb84e4636db01e", + "0153e81eb05cc26fa7d0e2cc26388505d591f340b9df9b47af94fc3a7fc62cfd22b87abe855913c0e9ab48fb2945913b187a95868306047f5c6a5c110644c207e33fa9c51c179169de92916399485443cc949d3610884379f57be4054ad56c3fc2c44f61f47c623bc6bc70f7eb88b5d68d1de1283cfdaad011be8319f965cacb0550150052114c0ec8783642b95499aebd02f6796d65368a4ddf31787c92e37c3ed1ae541b29f5db2362e59e65cc471af012fd0fa14d18d7179eb4d3e8f22dea86deb76603013d8bb81dc338d0059db48b57cd02d2918405d4068a75daac2b3ada7657ae" + }, + { /* i=7783 cDividendBits=1279 cDivisorBits=999 */ + "16ac466cd028b39a741fe43facd488b7a73e0453bbd377b6f2adc028bea3232859201e953f8f5bbadda42f21d528b214f42eb91e5873e00dc44238d23c661b05331c3edd91ccc60538fb366440a187e3c9fb3bcca1dd79e020dd4ad1ae8782a69df74e0263cce8afb55252ad40cea5378798a4045b50e9e4184edaadf760fe5a56e6a57e00a59b0e493764710e45c6f47e30a57a1108e3d792a91ee5910bc696", + "01086f352ddc35e23c09e9f427a1d462de43e759a6cf6d35c4cb63eb702b667c4c4a9c628c017f86489fbc6de43ccdd4659fa4658665eda3b2c42d6b9567e45b5ae9ce025c9257a08e767ef9aa770027b839154c6bcdbaac351afb3d84657a68a26e23e6bb19da8fd533bd98fa095909d4840a3759086dec8e45cf1435", + "15f3244e5a3a933742a81cc6b3256ab99b43cd6a64d928ed218286915f8659e284c0ba55", + "937d13d0ee2e871dc871b4afbac19ef4315587454c0ec09431c292d0989801f047e9a0ec7d71a8a0167ccb52b276c171b2481ce60b7a9c03a04f324764684f722d1eb124265ea28add55bd5a58abf698160e304f70a11b6ed3849a683969c966257b50d01625c411591e6cbf05e611f914ddf3f54402cf6b72db8efd" + }, + { /* i=7784 cDividendBits=1971 cDivisorBits=370 */ + "acd1390f514dc8809e95f038ee886df49a1480f11fc6d9191b68aa22da9a52b37e2662a7ea2e6067f681e6b219f347bfb88ca5d3221891a282e54fce7de01cc5dd4d619ee79f6db589236ef49a14c8504da56dd2a085c1ffcd047406119fbeaafac82b5a8b4627a4134bbbf7ccbbd6d24e18f6b5a96018227fdc18a981db44c4975720b9259cdd374eae303944ff7ce201c4b1ad3b49f9df83033455cfefaf3cf714d9b7461e1da2b8b95b23d6585d647bc6b4fad891ff34d2a5dec2dee871fd9210f5e9cd00e021658cdd7b4a06ed6f31f256965b42a0cfad68b6473acf8dbf980738de3d716e305306dc5ba961c53e3cd1f20a9e59", + "f119e12819a165fb6317fd8ba2f8964dff8dbd7cde063c499e9d77a9f8ad77ff05857378ccdf386afb08edd150e9", + "b77f1f13fb8ad525dbab7db7ff1fa6d9950f1db2404df131f25511189b15de9c1af104c26c7c3de447054a5d593cc7e5d2115ffd431bddaa3504f0b510c3c914e4b57d2ae058ba958992d7d25b784da400c2f87ba6342e80ebb4c745bdeb898be08a6211a5ea28c79d41428dc161580bba5088dd05ee875af2773267574a110290afcb50e2bbaa8732a375719bad79a0d113d3a1b50f345476f23f91321a5361f736cf207c6a474585693efe24a9f6c01535b8014a6489ef1f112b0832e1e4cf83e6a39c2410a9a7", + "78e1f9d7fbaa59632c70734b55fc0859f95f0494f18ad2b329192a3795e3a82482c7a593b5ce47539f8dcd85055a" + }, + { /* i=7785 cDividendBits=592 cDivisorBits=106 */ + "27137c45f1033a43f2eed4edd003fe0c290b913ef2bfdc210807c4efcef5b2dde3fa5caa86957aa09875792e13f91f17684ff0d90308b9db7962ebe15604a2446aecdf818588c329f387", + "010e16f368979f05b0c78c794a04", + "2509a34c7255262609b9703c7f1dd3136370ff5b6141e0f028cf1ea45a43c30cf94cfb32ad7c369acde3be4b6fb97d7fa693c3cd13d44d61e72bab1419", + "bbbe8ca9d7028f290374dd6923" + }, + { /* i=7786 cDividendBits=1796 cDivisorBits=1676 */ + "05e8800dd7b838d286585f77e52adc43305a78ee90400e2b333a816e5eecc4c18d36220fcf67a17d68e909a308d646aeb2b30b911dbf45ccaf357f161375728bf5478bb086c7be6399a6cf0b0954bf383852630a0afe9af443cdbacc28e2421c19e6a71d912796d29f78439bef5601a2fec1dc295d11a567b89be5bfc007b4ce3651eccb7f83dd99f8f7cb902655d8d460bac0a2523a9aec70d040175f01787730e34de8c4c80ad5c08768b6251d78531a16a7a5ce92f9a9f890d0f63b373e81cd86822d1e40681776d98b7ac144f021d1eb4457ace9122585b1be9ed660a58943", + "02ba6eab0a872be6f2113743c61a175be0dab753f7c6cf613c5ed8b506d4d83e8d00f8b466481911067d3a3a19cd601538b66f65768d6e2e662cc7d2b446a1a37a71bc21ab4035e20e09cfccd735355184317956c1b83664521983bdc88f513ce7e3772aa4869adcbf1158bef41fff03cb97f978aa0e47977da25bdef0fd5ca755737c1d6e75eeec14435f1c86110e006e4b9b43c60d808030d4323b59bbcd05961b00418908fd6617f7e6093405cbe0c8c8c8ed28c934c3f51522fc2d995c5ee8c42ba4e32bdb04fe3937d6b384b5fc8d85", + "022a626fea63d39fef9c070742cf87a2", + "991f0064401e10b51bd69836c48c7986c3cd732ab65bcd8bef6aab44da7846c9059a8f7c352deb83573cb50c3ceb96688ee8bfa73de59f79d4a0170c0fb72a2b63f67bf2e603e7cc334bec2cb3747ead36fbcdd9d2c5c0a05d639b67518f5b27e172e97870df8740d1f350d2dec0a2bf9da5a69234ae784650677b63ac4cd9bd88c56c99971bdc4e4ee78dbdb7d911a1d909b7757b3e85a926d2358d0f278ab61ba504a136302723f5d640966618f22fee144a601c814c1a383abbda3e3f85acc4aca1b4352fb2dbbf7a29438d4fa7d819" + }, + { /* i=7787 cDividendBits=2839 cDivisorBits=867 */ + "2383444ac5c27d53849892646872a997513de228fed5e8c5192c163aef303abc4bba33c7824edc6f8ca1a36f2a37aed3da0f66b6eab5e3bb9ea92f1e771492bc6b84001de9e7b4b232817c27559f024460de781e8fbf4741155d73f3632e4f18be7faa05e8495961c408ebeb007297d6b14f0acadea02f9a13b8c07c42f673dde351823d03ed3cc8efcd64221e7cc5b5350b0d31fa20bf803f8ccfc669898fec13e9893c24aca14694073ae91f363b10513ef0e47f46b4d5798ed0f6850c8d2ab425fb5efdc21b6bc6c8b0e63dbda1812d6237dd319a82a0d51142e6306c492c070eaae970e5fd2738c979a220c1ee33b663b23831da471e09ffbb7930abfeeb2775fae853d68a9119fb4ff1ead889a0ca332152bcf7456fae9b6fa714a16f63e9d6d39c3c59f993d7c630c397c3f4ebeafad4e9ce2ca09986f2b37bfef040bc06bc10052bd026c4e30df10f9f16558033a1e1d90f26432c267ac4c6d822ec05435754", + "020f9bb785929582d5d520707bb509a4226693d8e064af1c6ece5b3c663a10846b3b428903c3952d845eae9ee5c7fc8f4d35b3aba1acdd17c9a1a5772bd607fc772b65680190be247c1a57dc457c4f97c4ae03dd5bb20b7f97e75a441b3eecf61035bc04a74f9becd12d69e81c", + "113b28dce75254ea8feccb63670256b8f84675b1b79e61e4ec1c35ff62fef81694283b6bfc049f12b4669276f253180df17f9475535562173577069f41e48836383a52ae43d82bb0bca41dd378192debe2e356fb05e06ade6e3c103339c1fc638fd161c348ef2ba75758f26ec4e28bf8add096ce93dab514ac99ce18fc58275a571258a0de0c02babd259e4595d7a53e72a3a4d80bd00cf91bb82d523c13550b0de911d44bb9adf7422bac5feef82bcf411cf18e4b56149ce086758d3778c60a1a24b405d6ea6611383d1f90d029e8c360989d88aa6ac4c8eacc7161adba0ac26a6ff2aa6d3374f33ea603609696613f60f9172db70b1f", + "b33b77347c82ff2b42e886f5cb250b67bc7587cf197c692776fab9522f4ecac04c2a57366dfaef4684bfdd7784752ef4e049be222d66c9c344bbe36a7e253ee2f80e6965543582bbd02dee2a872e7f7d340e885cc81c923ab0b7ad17f30a5142fd153a965b7f4d9e207307f0" + }, + { /* i=7788 cDividendBits=2383 cDivisorBits=693 */ + "7c6a639184749dd4974923c8c5cd9260cd584a9a3d784ba595e7cca3e274f93ad9feb60307684ed2f54e65b351491f6ea2c82479d130a5a370a28bd66223584b8285a37e0b1114f1338b42bf983867c586bfeb5114feb3445d4652f5c1759fa9deb37e5871e27b853149d0b3e4cab786ab771ddc5c74fe0dd4584f455244f7fceb6ba15b0e624040cfc9302f601147878ed2f01a9085b7f4e552772c7782920671c766ffbb1ef6d5df63f70f762b2cd43da7a1b4b508ed919531f440949ee62f25073f7bffaf177c7e1a328a126fa046a66914f0b6113856e3e9051d28f18d3bcac9a08584a1ebd60519addb5dc5700069aa4c2b06366cf0e25c177972b6555a15dd9af3c4b8f9471d8c668dee7a1c5152dff20cb6735dc533d12c5837bb7a36b9e8b084c7631b819891", + "1ea345bf8296808deb1ea2093c75d991e97d7760c089909ba01848f65b9119e95ea987fcfdab3fd53e490c79ee85cd547370864ff9dd1ad32bc07dbcb8c9cdc1a8bc09432b8212ccb543ed8fa25542deeafac52bdd5e80", + "040f942a979ea6cef0441395fd84c7903cd4e0cce00d68680b374fc36803c8e07694709db692b0d07afa50a2e0504d953f5c631fffb05bc8f68de246f8ca60710a39253574365a3459b2c2d2b2c8cfb6b68e45d4f0ec34cb9e4575c49891db3fd2db2b1c03baaac4ea0f14be3f5a53860a418a79bb90e8418c0c46ffe972b402336af2749ac26fe2dffc42f4d85842160b692d2f8cdded634a4b460e354d5fc348763c3066bb4a5bb017943a9dd413cd43811a26b344e56deb705ccbc2ba315ae00ad485c0fbb4fc4d12c8b027a74ac75146606e", + "17fd68009ce9d6475937e2300ab026d0c031252c3b75da90d6711dcda2aa4528c1a58564df4c5c25515b20d422b0faaf8c3ae18a414e1004b30b0d4d6cdbcc9089f11ec1e93369dbc958b45532793a98d29748e7f2fd91" + }, + { /* i=7789 cDividendBits=2975 cDivisorBits=1320 */ + "1536e89796fd24b23db4b75e1e9f90f57d41c4388484444a54312ded43d5e5d00e545fb1dee0f4e6f9395cbed07e3a99e2f3be48b803aba8e3a4126906e6f831afa8d6ec9e06e7bed22fdb8cba326ff2c65715903b760141d53d80e8eeb1d544bf7456609d09e9d23d4c9ff60cc8bd4fb4a4f038981a6851acebbdbd59ed60a5f8dc622e1b453bc98bb6cbe0d1b92fb7de69ecdf8daef693251a1e22e657b6925cae1e66d63ed9902333f3d4fb7b1cd4e3b8b367b11a205dbfe521c660fa92e52d57a78b336954b91b20d63671701f6f053fd825607880525c87ed635c2201e4339053200098174b8f6064dcacb9ec900a2e5ad7f0bd1a3548efd5f12536608d4061b844c4f39b03590d56e53c353e61c2fedf78e4a7608c20e91d11dca343d3ac4a69162fb84722ca1f19a29dfa69f21973f43b641c1e182bc7754ecced1954a15361ebbf809802b3984dd024f5e211589efdd04a0337d58bf168a056f4658bc116c90402dcd774a9f7ff6b19da6ad4e655dd72", + "fc842e41ac087f20ab4a6bf4c2bfa6976cac89df6db304de4d630525a9f348c1fb85dabd95bae97739a5c387164534332d16d87b61d81ffafbb8503e8be0f35599c442324b4a7c3b33990ffca392c327965073e79d2241ff1a6742377d1ac9d663f9d87607278d60b64503daf841480293331c6cffac7ba7f49ef26f120d35da35a2988d69f0fbd308162c07c7d9cee96a2e34b6ef22c65217e851ebdabcf914428e03b1a0", + "1581d5173b3a4a5a619d92eca5bfdc7c09b4f74dbd949bb11856931b19df710eafa9a0f11d32bb9f7576091ec7e117619a459bce4e340291197bd958e021b721e1739de903beb567beeb24a9bb757e8b58f0b64494f8719d12ea6d531c655a7c41fb24a6973cdbde03dc8551750138255d4c2102f4a6d2a4447151d3ff7f4fc3e61d270f870f5462a5eed0b010b1e57fc6a0527f22bd49c5c4538210f4c19dd075d5335634392efd0aff7475b5b3f668705ef2918ec27755cce792de5e927f6bd74cd7cabc5a8f6fed237e184e17da", + "64ccaabdf4be760cea75dae058bc1ae90f1b3aa84a88f542183ef1c7b8ce46412957933b610816c5e35a25a4e9427d9c2bca96652c1a0261b158c4b3876bb7a176fec7644857bbcd7e0e81316a8ac93735d64227cffda09fb7572a11927db43d08cc100c3e9e1a990f3e01aa816459a6fb52e5f76c9ed10947626e1e2ebe4ea881fb2584e0e2992859957c63e1040ec5b4862d2431a621c8ee1a16f4652b1b44de837b3b32" + }, + { /* i=7790 cDividendBits=1414 cDivisorBits=1117 */ + "320cc27595e1ae663ab9fb6a57a50017e0400ff33b4c894a9e7780c7e16303c49a3b60ceff113baba4bc2b96bf2b0e9e3b58e7f60f3349e920bd82a2d9a08f08d7395662f00839612d056a7716e27cf3d0ab639ab2e54f95a90a334ce09c1ee0b098cb4d9a0987b1835fd39e6a8862540588ae2caf37f25e196bfd0cef77f1fe34bb728ea1a2fe79b2e075830f3713913934a26791cd12bd7c52a8939f7623fcea2b56715354a0505e96bc1fd1720a45ef", + "1473e29c77f1069f2972c55a21f1358d64ca9d93836427bea9d5e49fb0771401bc39bfcdf4a654e5bca9cdd6557765702f3e7e19b57dba3841cc77ae210e2a6af41d55c4a45f2be19ea4422f549052f1e11177f3e96e51c8a3abacbecde041e6428a1d619a0c9e45d7d23aed89e22321583d60877587794111b5c3abbedd3848fe84716a67c9e1804af240ac", + "027275752b0d0cc86b98eca9f02f8653a05257ff734a27bab6a3a7db6aa3987a63761aa5c00b", + "13037b1bb5c70950f5e59bf1fa7cd7809c621d8f290d90dabfcc668ace5c6c44c0bc52e7af794237da151299bcb1d325dfc4dad627a11fa771d275710d488788bd47304c3f73d7e8cab4c3db870592a5f4321adc04afd9a6f88f32feb916ab9dd4fa0dce87a8a1b14e17aa46e3b40111397ebbf32f1d8ad970f051792fbbb8790cafbb742bfdfb1b62447e8b" + }, + { /* i=7791 cDividendBits=2522 cDivisorBits=294 */ + "78b2daf7165403ae12467fb0ad3570bd457cb82feaf2f5b201895e6473ba99383d95fb04568a4a75e4df74557a4e0d3c6eaf3bd83ab8a32a6b02f1130bb2f10a4adea5afb3152c13f3017b8b31e69972f83062352fd4a06f8bc5cad8843492920e7586ff8862ef403a12d9d9c2d6f67e4f117416a8313defcb9dfa9fd0e752fe90b8124532382b6c5c3cc2b8f2568fbedeebf0b970b68f4b5488f62cf343680908551f519c4cd8d2de10e4d7a81ead168fe12b98ed3e58fd8da351599c9f52f4354673b16fc147d3b9370643a1c7d240fc514abe662b6b18067c7df01889dcf457809eea26c40175efb5d546946ee123ebf09cca58611269f57880da45a028851c9567ce9f4f1b34f85973b6710d5e38f95242e10acc95ec81edfd1033febb53c52c749b31484b6f4e1fdfcbaca0a0ce54f01a27d99c67d6fe1f98", + "14a70c09e3718d38ec5643d7dbe3b664e56fcf9f205f540b949710a0ddfbe3732b103d7be7", + "05d821263102196c0152b5316cdc4ea3ca754afe1e3beecbe2614633ea16e7cd62c8523729861c55ee6ef78519d9b234e5a29c4b533b4b6864af4a616776ed0740c147abf4fd694a50c65255afc0d65920157f5f22b869ac9db7cfcd25152ce22e4d41bdd920aff888058e42741048da01956c2a26186af0c1ec54a7834c2dcdf08fe50622753f8d0e2406daa4d244dcb38cac5e0145bf33b069975f35f24372a89d3c06867abc1e870b805a95d03ce3adb2f068c595f500841efd66ce73463b080b200233ae0c41dea6125ff7f6b8c7920d32d949f34a827ab62e04b09c26123f40d54609ebdf3643840a6a0daa83c076a6c7c785dce2793c3965738af019c6aa35fe5208da822bc129d6c0a7d473cb95164b513264d5", + "12c74010b9b344fe93981e31a8ffd12177aee239bb758d558527359c5446f530580551cc65" + }, + { /* i=7792 cDividendBits=2383 cDivisorBits=223 */ + "56b2f9696d6c9725c1f70927c6dc729aa063f22163d50b1c6dc78ad7ec99232febf39f03521d752d219d405f6c90df21bc0dbc51f318148d0ee013d8d35ec2e9e8bded57ba4ccb2a1c71ef0802843e3582ecf845ecaf37c96cb2c02130c608be8374dc1a14be51f1d4ceb6558a04e40f455d13f89a103ef774f24579b8293fdfeaa778e1f8c362d7a42c1f86a425ee5a92270107af12fb28c9927003d1457391ab57794f58e6ba9fe5a1993756972bb15037df46f6c0ad9a32f66df6f8163004359d33875df4d456f4f28603da0da2fd06da3992873e09e4b9566d2b5835fed5d6cb47cd7cf038377451eb0d5c5b48bace09c81362df4fb9dd36365c1b3783177b0ae7263bbcec28b0cda17324eb7dc7fb56c60bf6e454d292e8f6408251f044dd1bc219f027d960d7f4", + "42473db93512a6114f62c7e11ac021561268edd68c1f68c797087fda", + "014ee021024f9c5a70ea033a0548a754bff5084c561a040fa47d347ab3c69807af5d52cb87d3c0b54ee000f8b91ff954fa26ad4b9a80c124abb8eef5df4af66bad57d4f32571803c80ab198abd68874e37c23cdb1b5917ed6d4999f7be9624db73e624d2d839df7ca6491614b8fbee10fa495e950d01f4f89e30dc7c9caf6aa9372ba3236768aeda977c3d6955d0fa177a2a122155d983a167738c330798f27b9c53486f74d699bc16017b9d9f69bebc9e796d807287b394d64f40b4c41d1e139322e6451bdb3f6aff45facf0a725f739963b6475cce55500e86de47e593cc456be43827ceb593f0dede794cfc9a6408f26ce50d569f7048bb37d04330c3630f4945b150b47f6b14d761e1d20a0cc4", + "31ae18db72ce2f53921b472ffa81e020a077a934d0738473fe5cbd0c" + }, + { /* i=7793 cDividendBits=2822 cDivisorBits=646 */ + "1d00636ee84d7ab4d87ed02a5689a900ab871362ef771c88784654199ea6b9141a82b3e0c19cd944673782127183e615ad2d99603fe4a3c9f58ed9dc1aa1aa03a49476c167bfedd888b1db30e0dd9542b5fbe38f68abf4979c8bc703e7c7891374d1ff42b987b0b385a0e2ddd33d5edc58a3ba8e7af0ba748e1593c1fb6e2f2215a1bfcf9fae2ba91e0ae0e9a3a8bf520d0a9bde572666ff278b0502ebd06216fda23eb41d1494b39f47be516e983cda94ab66bb6126ba3a517e94454065812dcb477519dcbe4c47356720a2505e31c2b5d764aac018ec0622b4a0a8392a6fefe60876ed839e749a4e7de937e312847c0d30ce0b20d0dc9f5b9dd96a50071f3690de5202660a8b89acab09a11392c65b3e8b71b3d60310e2a83cf3edd43f66c73a66fb34f7b3e0c3df762adfab01789258fe595c4135c67fc93ab57080eb0f954cd70c0ce1cbe8aaf0aaeb4938888425045a99de68dbfd2ac4bab79a8b7314d9e7", + "1e0a1b1e88db6e32abd0c01ad2ef16fbd96d416e8042176d1e34f14eafd1ff970275067e1947f4fcb82b1f8b94f2eaf799e6d21733236305453c1e2c58e5f21f95662042a21c2e636796275049958500d9", + "f7278608bc49d15a8d1a15dfc93801540d73000069063c6032b4f94caf07f01f020e1a4d33c1cb6ba934d52ecaa17350ee9c108f1f8d8720c360f9e5487c6ec0f0712a856ea25e66b344a6522001dd9888ad6b085429a7aa14d94c2d8aefc544d829c34d74665c9c667e350d8a72676ee99fd7decf81c15105d12e28ab56a4ef6c46f956adaf1548a486b9ac0a0731c9513bc21522e9e38fd4903de67f6a19c0715db7a3210bdd86f4026dff88409d82ae9ddba2d84fd0c56508c5185571f97ed9b3a67c66e8aeefd5f142bfb9ae90c93a219731f07fe4ad2ac75c92417131f58e7059656b6c50dd6ae0d8f7944efacbc3afc7bd149152070c43cd933119f37c1645f03b3a202224877c001c3b4f4359", + "01aac5d652b333caa3185cf14ed4972bd513de9a7c041f68be2edbc62f64976cc8518aae383a5b863a9dbde9627ebd8ef7d94cdc52978d6ebd5a0c0cb56065b0a38dcb08b44b8ad1634e368bdb62a7c376" + }, + { /* i=7794 cDividendBits=3554 cDivisorBits=1740 */ + "56a5dc019e2e8bbeb44f03c67017d6f63d17cb1390e2dd89a2e8f72a45b409cfe509490ff6f7020fb5eccd18bd9e5610e0e345a7ec25666953ebe0326450053958f622050cd1f62c4e74a86e652fc28ef9f792035bf25551977b30c7c38dd653675b9c9eb09a05f8eafd779182eed68f8836dafc5129b0d535ed508e976cfc28e881679b5363313a1d44bd4e164989f283376e8fe0c8c2ebe08b5eba98337b4c96e82a8ca52f5def80bb634f5ee42108e6f823a7ebbbfa2b39bfbfac801045d5e7bdad6568f39d0d742d99287a06ec15266e10c4de41d5c3450c6fa3772e613858dd5442002ba424338d80489fdbe12b5cb3c92460c8ef7211d3e2855deedb625c877726ed518e4f3a97a2fb1a6e41aaa6069f8cb7f2fe7723b2668b3e5671ebff3ded6dbc6d543918cb74b6021f672f6265a50627927164ea1f95d19b572f0809d9023d6d15524fdceda39f127e17cdb5d8dae221f4551985c8965229e066d629cb443d361aaad60490a7f7beac8432245b68ba5e9af09e699b55eaf9f994c2c703c6db4ad2de8ac654393ed223d1bbe06f1c9d221ca9f6d0e1c756ca8891a62fa118767dfd95515805039cae1d1549e2c4aa7ae627a84ab37d04d4", + "024278e2cf143466e7250241171e9979cc9500f5300c57171c95c677a5f46c00d191cfbdec20501ffd37b21230fb7b3432be3c0836c154e3ef577c62fafaea6c2ab3ed86212ca5b66c1ddcdda411c4ec9410028b9a6595d671b5694cf306c34537a75e38e7bc9cc72a9cb51af3a99a366de3677004566f8e1bbc7b60b816bb2c8be408c92c347a6b84975474f06595000eb5f8e7413a536fd580349693945a45215f45c5c2060c3eecfdc77ab69ad3f073bdb7e937dcfbaf6c68a83aefa9e53da644d01b95528701216189214158103ecda1f9475b9f1b9a6255", + "265878b835752526077bc3744cf8d9e23c1ba4c24795ad8e86e8e7878eb2ff568076317bb701f292d7f6315097cee8fed6c29769350fff7149bb0d71322cff96a119cfa9eb10332a86e82e0d5d1e2b412628f04ac21c21149483ec51dd4c33981aa88f334797714b9735522bf1565c7fb6a662954cfe272add62b0d72a759fdd3015d45d21982de3faf7fcfcf127ed0f6d4b981e89f733bb1ed003754a35167fa59d00e68d8372be9681cfa86110a1fa5ae91d66e1566bae98776c0b464bb3057cb03f01e3fe4bd9461cb28a5f02f5d6172f6c7ac766a944bfdcbdc4477d98173ebefd", + "a960efae9305ae0528b2cc02a67619571f39d5e82ea48584390fda03f61766f29b049ea01aa3291fb0b2c116f2bc76cfd64ece011db65f09878dbfc7d007ace17441cd5b17dabd4325ed5f4b63339706921f36dc5fe23a10ad037ed722d276b9731926a3eef3c3b9e38247764f199250b13fb75621fd8b7d88ad350c677786ce6277709403ed8bdcf323b4cef589e31f618b6f552bb6a3c66f02e2dc48e866c80daa97e807d1edf5b66d72f7ff6fec214ef04c4a1f296e7b54d7b479fda10991adf1990fb7b342194bb8dbdb14ca30db12f95d93de6358c0d3" + }, + { /* i=7795 cDividendBits=2564 cDivisorBits=1040 */ + "0dfb5413e08c8055caace830647292316cd288e0c703358f784d6eac6618244bcaade97cdc51e4b60a71872e53642e0111a032f19bd96a67a771ad971dc773545405d9a2db7f1ed26790c759352f0ede9d6428ad32f3df667d14f6f67a30d5068beeeb159ef4828035b69a04950a30d89f9592aa59f077326db0608479d759e2eca97349a00598d01cb118d3eee669edec08801342b798de1473a86a13ac0ead84c65186a5bef87cc914a1d1f4360e04cda72a152cbc62af04adb5a0b07738e87a86f7e5e85121972a8c93165ccc06b8936bdd3b805f6af22d48938a13af906b916aa2f3429219f9ae5240f24ff942ff6a512ce1d3f329762c355d30aba083895928a9a9faf74c8825d018b9529fc3cbbe91c4241864a588988bbaf7d172cbc59a7a1d5141955e22a94b8ea5676874174cbc3c9abf50dd1d730cc88f8c1c2d3dc9", + "91dd326df810913dceffdec93936916c1bd8e38d5b5b428b26dfe8b92acebad3578a4d2ce1009adb4767f4a30981532914eab00943064a50e37ee667943a3e933fca98adb06a0f49993f2c5fce505beef9508c27ef57f0e1cc56cf265e1d372cc3ee26d87ea170f0711fcf7f8240ba34797e7423a5cdafe29c1f6d45f2a76a33fc60", + "1889eea4dce1a18567b148fbb70ae87506524454007a353660e083622cd0051fdb293afb38528c9374f901870d9a23206a81531b199109de16085edbed97808dea37534757573dd4731f8d2f208abec8a546049b810d0177ed1177e581ab780e3fdb2017d6bcceeb44bdc4b5a870870323debf665f0f59a5423b00ed921638726667d38aa6f57fe8d6a3181827b90e98b531f70ef38d4177f40fbc2772d37ecb66ff52061612fe60e5af015ff43eb36102e5471f4e4673cfff373dac31076b", + "54d10abe9fd8c3e1e029937dd2c527f60464314bf0d71af97ea1d5beebbc882b4ee6d3b786ef7d19673deac929fd33825a5404211c31375040a2acf197ea037e4509cdb50c3ad4f136d7a9ad95fc1dad376305b7e943267b6e939d6e166382c994c0c232cffad1f4bf3953000b2b8c77c0000a7e18940565db380c478b477e2c21a9" + }, + { /* i=7796 cDividendBits=2524 cDivisorBits=1365 */ + "047fcb870863d388a8cdc2d2fc2713976f2912d740d80d6612b3fdfec600b7bef8da707214951c1d8a97798f570b88f024ec705554097904bec034f7627bac4e523556469f729743ed4dda7d172c0339e72a7b1e73b00033daeea0450c9cecbd7aa32681485941e2e4556f22cfdc01f4781c8fd79f5d656e5a12aac1b094252e97913768cbe0112a532f3d2ac758d8f74c182ae5919831a816da819fde7a09cc0e669ae8e5a00abd305581b7e7492cf747a734dbfc3c08357ec16f2ea11bd796aae7029ed1c967e74ff7f4633d9514251f7f905a720be7f047ca20175aee317cede6405bce625357e1e89e7d6dd96a27809a907e2a45fe64c0995cbcf2dff4460b72603e02c359d3c200d276b335723b9c24415a47377a8f1fe433f66d4f81d311a9315591d347566f16cf04bab92197a71eb81f8076b42315f28d8d", + "11dd63ccb0c0c7f6b4b1e7ad60fe26e908dcc2b865fec8161f478925335965679159f007fd5102d8f2e763547f4f6342e3d2b1dcf09b5b1c61cfffb042966790557f4191ae6a0398e78959acd928ebe27f28c70728e2e09bd5fa259a685e420f1aca0a8dfd88a1f2663f2d3b8d6a15f0ccbb42c63bfc9d38d88c95b75fb99c9fec23456fc19faea2da0a16e995115c308789931a993b1f1bd9e4e760e245c25d1bf7c7cc1cd68ea751aa45", + "40790d6ab638f817e5d03ed2b84cec7a047aee681d4dbe8ffee864e95be14061a09981680b07a8de6a5fa2ee760a8ba3fe3ec32c189118fe6ccb6d55e7deaf0e6aa5a0a1e48cd401cc8f6f3c7a751915fe547869f2dc8e3637f1f4d74dda78c283f181183383c94ce4b952f5371c288fd7c656ffda19a0ffbb4fa110988702ed10c1d0d2faac5070f7e87dae10c2383e56", + "115cd81c235bb5cdd150d4cbae81b34b7a18fac073dd6b4b4ba9fcf992010fabb5eff3988fd4988337e3ad03606410597d99a555a14a91e32a44db6e06d549204643fef2f76c82d36bbbc4a4756084de095a5112fb939029c7c81e407b5a3696cef8590a88b51cdd4515b38217fada5f5e6e2cf1e569f374968b409e3bb2ad8c188ece91592b80b69af2dec4bf6f4f2e97b73adae8ca8f751fb4fcbfdd83f8da8f0a4546490c7b902ea45f" + }, + { /* i=7797 cDividendBits=3303 cDivisorBits=172 */ + "0660058f12b0de7eb445c5e8669d99b1251ceb5070d4a315a9bb374684af2945a8603717a349b0cb9c5196267548735ce501eef5c4978907b7eea43b311c82c0042ebd4eb7137cfa00c44eb67501f1a510c33f4290b9517dcebcf20af07ef5fb5f426cd1c660f25fd5ef61a916b1ce6563dd0e2fb1a140573d7a350c0acd1fad58abf39587e7b9afd796ef2a8e567c6fe910a725ae6ebca38119c822ae360a638feb0e8badb8dce21549697445dcbd53ba5fd40b4a2f7b7344a89c79b56fa664a26ae4ef3c42d8885dbddd096d167e2621c4e1e1de87e269c56b3e77cf541d864b7fb40f0d73f36b4ac20fcbfaaf2895b3f65db0128ad6174a8c629ccdeb80af35319b13400178fc66ed90e6a76b93ff1933a9de12c66427994a159906d110b1aa6c937c5d83ac5505ad1f5f3c632bad0ec80a92dd3f79594919b4da1d9e394f784ef42e40262f2fbdc4d37b33a5ae196cdbd0a36b47c1bd33d74d9e23c30c5a486b291d0b3448e893c898d0f89d3b5f8f5181297d2d160878e1b95c5f4812059a08ed2c3d9e7993378be5e7894434d1f2e79830944ca6a2d41779b2f3", + "0d3b9ce2131c80a519210413e2fa21bab5501031a0cc", + "7b54ba2024940cd0aa993f1a66abcca06e98271cbdc87cf033a93d6fd0c024ff0cccc9734ef1b8853a71d3448ceb4bcede280879d86535bedb68828a5a7825a912945e8a7f0bcaa3eabebab000cac45ec624113f8d828cac87a1fc2d24a71172076aa2402dcdfc796d80e9c1bd2745e0f93787480ba3fe1408178e217f5037a1f2fc9876eeeb58d4298bd368d2f7e2720015f2135afd5625ac54957c16e3dea0d0ef8ab5ff0d15246b701e4e2a46bb871bca3f379d9fc1ff868dcb62efb31abd54e6b94b0eeb2ffbe75b3b96be1dd48f5ad5eb2966c3122ea5bdab2423c39f6ed5ef5563422cc58a25de646f91e44f45e8041ed1b386d816871d67fab559bb456fc441c33109196a053036194fdbba59efa378176b4a1defbe8453330370c2754e7289e7d6aa42d02d4adc6d78e4c7ad675ad81b7c0f022a05ad1b315dd2bc930553322c6859ac7efee1d2e2ba7fcc6e334ed7e2b73de5baa4e34df096ce6b407992b488907d1ae0e9e23821452701de53b6bdf0694010d0fb2577aaae2a5e6b1bf09133809a0f", + "0683c8711a224dc2ed3bcde5a4477a028a003fd68eff" + }, + { /* i=7798 cDividendBits=208 cDivisorBits=207 */ + "a8a728e71f6797cd62777860b58eab86493e9b09f83a8bef4bfa", + "71faae0cf79278ee1c08c850f62f831a4169e5b5257495a8d72e", + "01", + "36ac7ada27d51edf466eb00fbf5f286c07d4b554d2c5f64674cc" + }, + { /* i=7799 cDividendBits=4 cDivisorBits=3 */ + "0e", + "07", + "02", + "00" + }, + { /* i=7800 cDividendBits=232 cDivisorBits=171 */ + "4cccf90e581ec1457632448ec7ccc1567d9842dff421b1b7d29fc8d949", + "0577bd26dcd08dab32364ad8c2c02a9a3996be4e3388", + "0e0bd1ec53c979f7", + "0266d77b82c8538a7fafcf4d14221b9b97f27e31d911" + }, + { /* i=7801 cDividendBits=1386 cDivisorBits=509 */ + "01d425a874a1b2585c4bab8f254ea0a927ebb229e5b05df33fd05d44bf304f060871f7414c6d44faf7b5495eaf3eb2719b22a9060f8ef59c58c5e34a6680fe33133b3c226b39cc27a318bc6eebc615cdf6b91da9db9197a9389a69db5edda6a3bf9f3c3d25721d5c10cbd7a57e63d7f5222377c4ac676e8410296d8a0795ffd3d6f9984d31257d8a9efc6c0ef51dfc618ce8fb7c8280cc33a7d4de7e5cbb02c3ccc016a01475e2b58638d3b47dbc", + "0492637e04f10b094eca315c18a260217ab897f9a2b5757c0bd8b627e5e265dd3ac085c271e55b252acba94dd7ffb6fb37a4902392be6aff0a1101e7d6178edc", + "6665eea22d67e6bcde64924574955d4e6b56a9c5124229c8914a6da754c7b53f320264b9b30cb122e708dc4115de69752dd1cc1dcb9366ebab388107f09c5d6aa4d5df80efca50d84a721f446627c6c275059ab18ce9736018eb3e4361e0021002a3c3d5ec597870fac8ba25a131", + "020e6351b179cecd119a94ec6eeb7b8b7049052ee58b8ada4b4a76c538e3c69fd5f3c9e191da9cba7ee29332920656a8b8cc1b83e8d85084a707d8208a8dc9a0" + }, + { /* i=7802 cDividendBits=2716 cDivisorBits=353 */ + "0ea433452febfe2f57f61ea9a4f9bfd4b459f2f1fd1506d2e6a486741519337c2bbfdcc1ec86deb80e5ce38c53cd917efd232981678903bd9463b44b1b34d567135c9a95d81948dab927637df370e4a255ea098a8e990165fe6e255cb2f25ff084f341d8f34f3782c3761b6a8bc235de6d8e435592178233cb3b658634ec2fa693261052cb54fcd7bb713462e414998510bf605594b50e6c9c8eb135e37f87c1da91e033247b9462268c9f6fbdd6d9198254258e06d6049a4c77e2e4d8dddace223902a2c2c9344ab2fc132f357f60af342d0ec6c0fa9314273c8638ecddc6100690683df2491cd72e960c5863d7921ca4f77448357359f6a3ca1c57fb293cd879d75d11fbec1d7a7817ba92265c9b6086a61665958fee31ebeb63b46f218513b7cfd0f531d89ac248f08af591f5eb0191c8c177dad118179404af215afb8afa335f5f79d7c5f91643a84516583c2695ed9fdf42", + "0138be86efb581b1e9dc606578d0bdf367b0987ddd2a5caa331b490bffadc47d02ec5d090395a0557eb52d4e9f", + "0bfc20adbbe3e835ec2de85b49f3cbe2e49b6043fd3acff08fd814c234de39a1730b5689cf503da1b57f05ee55adeacd48fcc28cf076f042f21eff562a1826a9fd57e70524b0bd41fbd00f9db34d285686aee315f479c1057c6efeac968cecc78e5d54c9ffe9c0d6e9ef50bd15618ec9f04375e7f3a199c3c9ba3b51bbbe15ad78e5cd59b4252aa5010658ebb5b0a0cae808a2233548fa6a2832043b2d2db6aac147972cf845f588e7342b0297329c5c20177a864363975734dd0bb776861f5a3a482616f4b11aeb4e6d662c985d72cdd349887b6eab0cefcf53ce4eecd70ce78fe5e5c428d2322a3b265a2f686ac01d07ea29b2c501fccea6983d17c407262a9ec4ca440fef4eacfe12d943ef3f0e4a87471ad3806b4cd5a088e22eb257305c185a20454aaadbf8", + "950ca5c6f92e837df72d7cea9be15f93022114835f2cf39b3dd84e240705f3797db1df30ca52752d7be3b03a" + }, + { /* i=7803 cDividendBits=3749 cDivisorBits=190 */ + "0857e897b2685f36ebca90187fe7349f0e20a246532278fe6fa795074ff73061ff42b7be2b9c1bf606cb9023ef83275348a4089f0e9402c5f716c004931dde6ab1f71ede162ee353f6f882d18f4d47c41e2c55bf15f59a5a714861a10d34adffe5e1f3a658dd57a71d433112ca6adf620afa6f68ccde3390fda9f8f1405a71f1231b247db182e8a59e27a4a0c7ba1b633a4f530d218ee6810427cabc702c69e20b06aecd7a8455ed93a251d689a0b499e00b72dadcca672b43043b939be0c46bcb31f95a86a5b43424a930b1906aa5b5de12ff205d12e78df91cbea2bfb72d95d34015aab747e955c5a63e2ba1176b400fdead0d7fb1aefb7e5643a02a31087f06d28fdb52f8908b6b57d0c41f61c0afc180ca7cf030d81389c6e91e6b90290999e00ee3a2dfeaefe5ee0a818519915bb2d1537be5966684a200fbdb0ea69180ea2a67d78dc7645afd57aa025d1531eff5973fdeaa6cbceaeb2ad96d24f2f79378af9f0f2adabc19b7d1bfda788be010dd0b598421f0efa145090a54317d7b8591b6f787ebf3b6125f1e1080aca5d873a77a80c6bdfcf6d6621aca81846b5d61227c2e96f3b0e9658582171998e03857993e9136c132b94c439d7ec52d53bf4256f8d35996e708a7fc69dccd9542d550409bac0070", + "12cc55bc873fe89daa45c49a43433dc03bf44462861b0531", + "719f85f61765b24f8b7a40b12c6137daa8e3f839c244ec67b12e52f5ca70564a46afa9d02952c3a733ba27e9c19b52cbb76939f41c339112408095927652c6fec857ec24596f5137343c5cad90e433dc15ec489ae2230f3cf677d57eeeb4573b935297ccbae878632b51bd72f932a90b0b7cb59eeada2b61336bf7940f583b903efad9291480e4e72a191b680a4993a65e18c6e4e275734c7325d609714ba80587aa8b35c8256cdbdfb65728fa6de9264c527f3c19d5bed162a0f6033b4c9dd1422305f96e98fd431fc70f5bee013ed2a13f5f25f424da488636106a186fbdc37aae67c091fa1177a0cdf24bba771aaaaeebd182fef2690729cc35f147a5d96bce597e340d747a80a4a65665107f0b05d7a55604fa5fd6a23498b732263978a97c9c5866b831980802e098438918e7bd2b7a15d71e758f0c4f61f82fca636ec106f026ab9202d334a86b98879dcf703d6d8d60ac19b1029162efec5fd243a923fb658a69506c62af56fbdb769850a9189b17c4b7b7c818e6166b8ac50c29bc2fef4647610939792140801d11dc9a880b81e3aa7b6f19f0cc0c637b5f4d9e4947b87db695215a11ef7f76ea9875a9982cf8f70b806ea91fb3cab3af7235", + "0c58bee4720e40e2f786ad98dbc7fa06bfce5b5f00451b4b" + }, + { /* i=7804 cDividendBits=1227 cDivisorBits=658 */ + "0c78c2d2183c3f7a379068414ade8b4ae2604bd15b59f02d5d3abe016500aacfda668b6568f1a488fbbab6668e49651f19ceed313deb93b336a8f33b56120dbf6384a51e130b9e60d21f068c92a5a70c6bac9d9977417c0ae82ce8ab4c1ed41c01f04ad20b940f31268a5f8128c086579cac76b55114c44717a93da4dda62eef61b5a1b9ec948bf03dd2d7bec02be3be788cf5e65e87b9a91b", + "038ce93adb7b9c08a9a48ad96756d81323fe32c4e80f6c9ea20a812bc0904b475a56968d23363d8be1da4a5e4489ce1cfcb42537bf182bf5b5e188eae7e6347214e436971f158a509f60212f8ba32ab00d0714", + "03834268da701dab5337ee3ed36477376b07b938cd7c301254f550bab8c0a417cfde8fb0b2598118bb0af4cd11c4914128204d33dfad072baf230d25ae6ea158c4a9da2b3dcef9", + "01edde541ab93e0cbc60b8d2dd523c6c765203c0c5d7087a5afc3aa91c4b97cd7bd88e198c6df70dc2b924ac713d2b4b981e46f0ac765906895e0142561489b5370fc4b027bf2fbcf850b2140579dbc397aea7" + }, + { /* i=7805 cDividendBits=3 cDivisorBits=1 */ + "07", + "01", + "07", + "00" + }, + { /* i=7806 cDividendBits=3792 cDivisorBits=2499 */ + "ed9d654ed1876706e96495c8ec384cc4440690321196aebe474ba742e6dbed6653cd82c86abce99ba6b8863062b0f1f707e0560a2debe9cd5fadf32a8b0f753a1758b1b5233755a032e0d4fe92321bc561c248a6503d5848987f0bcd599435513d739774dcbba22f9b810029f98c56dbe235be0a2a1ba9a045909f56041c5e7b627d78bc857901a4f3fbf87206786c92a71e1bd9dc960f42e6ef4a27fc6e6b54a64741f7aea63fdf38f0a44852c8898d5fe3ab9bcbf6c0c15c9427c50321bc20def13d9f33d645f73d87ad9eb2d88f938ad8e0599f7824bf2f9bb7449e0043deca01de31a6d45c182ab0c067b670701b6bb4f5023e45265e724cea757ad70da606b43532b8603327d2c9ccfbd804094be1eebee3346fd05017b5aa08c7286bc2347caa3715f8170c09636af2cfc5a114e451a5c72720f65aa9e81e305019f9761fcde3326cb4670350cca624b80df7335857db60b4e5185838d0c5e7aba8b4579ea591303f18a0a45e0213246bedb66f572683a1c9d3bf24fde96f93f4704fd18aa7dbb8119f7c49455f1e39dde9de06eb4e288d1c5a937ef9a50fde23045d29c13a305a64d93a1664f5a6a35fa7fe2103b2298fc95d4da2bc21904d110012449832fb830ff016b35046444b1e45e73cecf99df174078cd987e3", + "06dc0c9014d37eb28b28be5979e1323325955284c2c63a71c61d61b8bfae58ba295f5a2708f135bac4676f178a22134cee92806323ec22b817427932b90505f178344db25434ef3edee63e03e230ac05313c66c86ec03c21af2d88f24455f0da076b0e1ff3384e57f806e6429a8dab2409e9f737f033500939538779a429b0e5aa2be810eda9396207cbbc5d1eeb28b364c4ffbae10d96610018f86d89d34f7f4c77c5082a5d558c47f279c7e864e210ab5c69e9da69ce73fc70c9d95f13db7581fda69a44861bf72a749066e8b14a67c21baed7169a6183692765fea0906b479dfc4a6021fedb2b0742754059f6a00cf0990175ec5369b51d44456cdc60142c48e71222dedc7d743e935dc1642cbff5edd060a754c59f8307483b221fa842468b94e8b491d704196c8a3354b436f53905f78a7e8d6d5c5372", + "22a3d1a8d2d85900a7d723d0f9359b3115edc509bd7daa515c7787031b3d16bdb04891dd23b5a804a5e5d6afdb48e80c095db7b97202935d071b47e5478e42a96880338fcd291f1828bf67d379cf753ea3e317788e2259cea09248e7fd23181edc7db4ee73a9462d30ccdddb4e5ee9355ffe611809b111001ee3f8106c7d2bcf87b838e60db2b6cf40217cc009673fc1dc05e0fb7ca0d53823bbeabb6bacb2fb51a0", + "0503afb7d3992a9029bd65e01b559c211c155ac00099859cbc296b295e1f230f448aa9c416b5c8a5bc8c7bea7e691736a36ebfbfda485e778423a662e20857d210b826ed647de80297c976d83da82f61194d61ccdbba5417d307b6ac6f0640bce925075b51ddaad12a3f3c9dd1555d96da4830bacf7fe8644d192783d4e18cb50f0d19dd98e8c2f37e5ce12ad855b9a8fe18ebd9f501450f710a61fde618d75eeab20ba800d79673ed7f249df5d9780620894dd0b3700fa76e7c6eba94692c5640dddea3131049240ccc075048d8feed70797adee1b2b9fe806317585481ced4414950141a76b5e65ca01f669e7e30cf34094d2c9a457b362bfab788cb33734027ebc6a0071200cf57ab3d8874b9aaf359977d0db86e920e74370c89f0e0c794110f51544cebf34d4304fda7b75ff5706b717479e5e7f84ea3" + }, + { /* i=7807 cDividendBits=1052 cDivisorBits=512 */ + "0e29a26c313db8608d26143fc215192652d3d75866377ed47403fc9239b38004db64aca037b0ffad5ca444a8b6bba711811cdc158746fb49770044946f0cefacbb0870b9a5a0ed7a12c277eb908795d2f1c600a83b56109be4952040441e886f16c44628d785c64f6691d4c008b584b5126101ca337290faa4f1586947711a150acb3c04", + "a7d4a24e614a541529aabadff3bd45d10a6bf2ad6c7431d1ae0a65dca0e1b2e6e105fd529dc38f1f01d9e4871fd5e72a1a669dd2f3964bd4f093f0e20a12e01f", + "159a5a4b4ef150cd1edf2e4fa8f8caa778a58d86250da5ff1adc16d809dda77748e663c332bd48bce68fb0e62928253e4978123c6100e1289df335bfead040d5eb084c29", + "6d04fe12fb9dec500384eb7a273f03053cd7f47dee18e625c75a613cf55454e65a09d667ec38248c53044087a53132151f1e22ed82c6a83945008cc55d44230d" + }, + { /* i=7808 cDividendBits=1852 cDivisorBits=579 */ + "0c40602b12d1ccf02f3a27fca81f9b48d5720ccc8f15da19d5a0f6a120921f80d010589711e317ac84310dad22263319d84d7209a8694472bad6ddb54780f8b505c4e8c68ac6125b316a166a1571a74eb755a83222f603764e041653cc1806f1c7688042608c531168723af352b24a44e4f0c4e11459431ea72c1547d622615f7f3a38dd468ddb8eec8608c4be7775874970f34a6cad7055a226f6821eec1c7a295c0f27b28d171225a4ca79f8d93a54b657194abe0a83fb7646cda97c6ecf714ba766babb9907c1921be432da5f97695f238315b21fed9c7683e27fbe2b5584e1271bdffccae4b9", + "062a5fd059977e490059d0a1be0cc9596b495e84e027cc07d8c353f39b0cdb90a378bcbf4f8f1789fd55710ef5df6b20f2ec24dff2725f56b78939d1adfb755efb4739a51c6e7fdb19", + "01fcb217d7f7f16d8cea4736679b47d267ab72fc62b996146f583adfffe47a79b779b93cf53b50bfc9092ae2761ed52995a66310663d7ec5e0576dd5255f7757e749ec88398e750dfa79becd23f68f493da9198d25ebf036e8b22fadca7fe8ae89fe257f3c9db1fd5e84a3b5a811fb03fbbd9936471f7705e687c0b4a7d153ddabc3d43361075741479f790ccfa9472bc0915ff187a15073003af4943933e9f5", + "e00fc6fdf0305ff3b9fea91bfce88b898c236638a69d5506a944b12b786e3d1948a13be2c7c3aae7bd6db5636be70e5225397a6354e212d712e693974bb5e202a4083d62a70974cc" + }, + { /* i=7809 cDividendBits=1591 cDivisorBits=1189 */ + "2cf1673d72dfad460969c91152c9ff078024bc55563a4889a149eef4a8dbe3da36dd7d5f5fbc7bf3ad6d81f5f0d388e50c8659a0716d6013ae013cecd6e1c68b13b688a174153058fd573fe2624ad874a34af5814b673c59de087284dbc567eeef630950e3f7c2810a2215510d11b40f29c56b8f3d930ab6ba938ebd49aeeba699372bb67e43a12259bcaa5dd89fead51214670bcde505dc942dd19c5f0e88ab69c661eb64c84a744f1c99b1f6f1c19aace1b662d62cb8e2f19f454c865ced826e716baf0466e8", + "159a4d71b2584818af7f6042c3baa593ab9d15efc9bdd590ac4744dc9a44ce14a7aab7704d82cfe99e88f0f7f628a69690d8e96fdca86ced6f89f5c521ffb79b004b606aea565739fc9bb79fcf75209b3de327a1f72bb6c5f48b78633710c929c547eef60677e7892f0bb76d55d553126236c47882fa0843eb26354e160eb39d9994b23c583ec1d45f7d985667252fcfd585826d48", + "0214970366eaa36a0bbdd50718e2ebb09d85fd616ea19e641befc1961d954a31015752f2df63891b4159bc6333b0059462b7f2", + "0e1765b3d847e3082f55c325cbede80d3aff286f714fa0b5affa255d9c76c5a5ede4f8ffba1b684d5287975baef1df5bc71614cfc79bb804e6dca197c913af3eadfeb64e5c601eba17bc8e25e2a5b0383a87895f520e3731ce315685e998cef506cbebfae131e16ccbfa8d3b673ff8721037312d73e15c236d485cc801533de438fc6093dfd8fd1d14a9b9e64e48b8319fc80aa0d8" + }, + { /* i=7810 cDividendBits=1463 cDivisorBits=306 */ + "264e5689b3e90fa10ae9dc662e435aa84b34683375050e1a7b57a33c7ae1df8647719ae8beeb624fd1ca3e5ccea34ed4a00944267b44e8b017f821cf1b2389cf2ae6d9156a02dee7d74ce8efbde2e90923929820bdffb1056a7b6a81382b40aaedfc42e4b2e992316304e2a09ae306e41b9db611e60fdfb67b13fb0368a51c6055839642cc419faa9a18cc43c7896b873037512faaec29d40c09a9a861166e7a59f412a24daf3e121a317b2568cb858e80d8785b9c88b2", + "0329597f5b750a4f80a535f9a2778e5e436c33f7ad2509a7df8693c0dbe6167ff0a154f79a9cc4", + "0c1dc71738f1169778f71096f3746ca7ecda20a3d3a8d242186c32c341f6e52e861ac36bf19af50c0cbe7a89565d308c5c0a69d7f739931ee1dc36cc6dd001e17088077d5268659a2719a4cc468c7aca23b621bb4b90ccf2ea3c20225d6e1bc218403d3b0d132731ad560ea8d75f07bf279967663fc6c9fd6fe2d4448b9a9cab7bf794e76bc5279e5531ee8a704cbc5c6f", + "01f8e39240bb9ae563ef1e502f5443db8761a9f6dbfc8c6d11f1c48f4a5bb4f8ea61d01f4c1fb6" + }, + { /* i=7811 cDividendBits=1332 cDivisorBits=715 */ + "083e6bacf67c63c0009b0a22dff6a756e0318fc6b0b9d592892fc7c771b84ce7299fef49be0257e352ef5057f2e412678ba73d74ce5a3d8f37053f06777949f9356983c5a4ed6a83cf8c94f71cb77d2b0abac672e36ecbb392a60ad65684a33019e95d282da2247afdb3d9ee51381bbca3a18843c8afc2eb90378ceec95b8c8a1efbc690bca025299a984e977eb1d4c9850cd9e4c2c65801bd815960e0c2f2352a703f10877726", + "060a6d6876f2ce4aceed2761d47a5a821067dcefcf50d21b3608f673ddf6d5a5186f6c18c985a7e2f4e029a9167fdccbb842738151da354fd089efe6cda0e7d118aeabf033e5825e681a6c6c6780460206ece4222b67d0043d23", + "015d5d73d8e6179451a9071f043da623255e2093bbfb1b851f75d30ab3308413177dd784bec5040e67ae44fef054d985336536987d0a4124b704adf41a230d2d6e9349a5ea0f5592412dcbe18fac", + "01a392aa39d45f2530c129d4dd143040b9833573c6686d7bb42404a1857e1a5046546957372c566c80e8cc381dd7493aa57acac3749eb9884646c7c9abd7ea9b9e8f74b27fa991d38175861c7ed5d38c93113e8a76f172c4d6a2" + }, + { /* i=7812 cDividendBits=160 cDivisorBits=87 */ + "a07a70da0bb48a7b6190e3976f719633f0945c9c", + "4f58711e84f69ba185a6e0", + "0205c442c1978f39efcd", + "2c9efd7677e2ae89e29b3c" + }, + { /* i=7813 cDividendBits=2460 cDivisorBits=1587 */ + "02da418a2fe18af36c8031fb4bcfbe303aeca7d0b140cba1cb44d3a6b0ae62e3502e8b695950cc8220217b96a0bf3e1f35088816ee99f31b6af7cdc613b4f712246a427f187dce8e14df40b0ece3f539a5e0d3797e08c593fbd40a373a0bbc8ff2f61e3927ad8a9a82e8dd358ddf1021b0dd10c3e0d4b25af0378c312f2d2a789dd84124caf93a3a04dd3049d663711b61c7778500b6304a06efe8bdfc2a88d69e20dcd960d9a9c65fe393c25f457241cb37586623bf8ccf63ed894d956bf7e4672d93fb1bfc082eed14f26a09cdc97d712e0af3cbffc051300faba6cd77f257d55c128d667f225e9341e37a6c4e82c32c57091f4aca126801fbe4024329d1bc515efe4b397bff546208e52c4da6c6897115211a67788fb2ceb2a0b1d3d0605f7513245dfa0c623bc4d21bd62ff1c8c202ce897c", + "0799ab2395028babcf20a4bc116a7e0f9acd07d5b309abd45d0c9d869f1ce2e6d793a988eb3c37390f244023c56431f7ab5e1f11a1728de12931e383dbda411de6e0382993e542d13ba484cda7b97b1e1345e24ed5825c4bc58d4ef724963a92eacdf59d41594eb9c63439d70e8d4783b39609f8a07fa92cfce5a087ddb608f46b9ca32f25b8f631936ff81b07743aa7a44960b769293884c2369fb0c5ab935debe5906b231423568864c103de4381779f58b3dc71a377e61a10c1bf590f37a1a282f30021e337", + "60153b2ecb12ce092c180043aa138af63bdfb5f875c5a38d7ede64ed1e90712d5943f290620163b57dca337555830e9844df6cbf982c79640cb0935c85f79189bae41f7149c52d0e7e12fd0fcc905556d07294f05116f558ebd6d3d127ee784d438c643daa81ae7ab6b3cf04ba", + "018b7fb8cb1c6cba220ec05f5617e7b1677d91b73519271a79eb86a7396e9d05934deba516146e50af2216239c1a67d75f879b7f1567d866ce6c4112bfe4e0a7a489197099b6052de405f473a9592b9cfb6fc5b30b7771ba9a00c49db642e0ba322bf543772fb0949a2a721055e7e0b7df08bc9b31b182e46ec75fdc727cf97b1dff9ac533f0cc0786e08481ec723586fdefb09ca05a9f19d7bd0027482145bef6034daa3952c7ca7e698a90041615fd2bf50e65a7370a8a74a6825692cc0d057c4bd334299786" + }, + { /* i=7814 cDividendBits=142 cDivisorBits=55 */ + "04155ed49689007ef0d0a677fcc422c5b600", + "49088fb03b1ad4", + "0e50472569a7eed4e13f6b", + "33f914ca235364" + }, + { /* i=7815 cDividendBits=719 cDivisorBits=517 */ + "0e6f32199dad60f2d8f5cd49667cb436edf52c46a7001eee2da9f1ac93d2985ea6f47a70d8c161ef127fe9cfeff4e0ae091054529f6cda8ff740e9458bd932d7e329ccf80ff62df457e873fe1bdfeeb5c03f0fccb3fcdd7bcf4b", + "e798a40c40da84551495e7afdc7be09849f852886f6457b8d931cafa348ef5b36f660924fdbfa2aaeac780367e377ca0a59b4c4ef929a62433c0f92a48891f0a", + "0ff490ce59a35e5a7f4585c157d9ecf5064707818b04ac5fc789", + "821a2f153b6a1dad86474e4377f7f5d179a7febea155bb4f6cc7b523ac91e212c2152864be894c4981269a43ea8b06ed84523260af24d7dbfc61881438436cf1" + }, + { /* i=7816 cDividendBits=2582 cDivisorBits=1337 */ + "08e2bd0cfa176ba5ba9d8ebdd8809015cae8e6202954511060dbc986805e2f2b243b12bf660e933aa9c1e9ed3942557ca0310e62c90dd55d581954d7fea02d036593288fe2aacbc09c705d736f106455ad8f44f3a696b52817de93328826a6aa2e0e82e83d9c958f337cdaf869f4d69cfdb73850b3ee5dedfbcc811597c093e60b64119e6086b48d46b736bdb8cdbe413262948c4f597a1ba45dcee8c4640fba4002d4682d4c325ae4a3a0ac4edcfc77c6573f41baa88de07c8079e027af5fa745bb9d5d64425ca8fd5d513b29b9aa80fecac3b51eb4b49737e9dd10c1d89f28add3c872f7116121b40469a0216b5739c68644767531ff1b5189c3a601872ed8f8e7fa9a775f0b6adf75e986e0e7778f89de82d33d357008917d9eaa94512b2e244effcf26854ba960f55d06aeb3f37d0c437edbc6c4a59d479f76bc30bcb4c802009c", + "01b81234be4abb03e441606f6dac3be8121fc7ca487a32d7f6bf80c18266813171759c681263a2deedbefed5233d588f0a43b1d3d6d5b52ade3dc08b11bb5c328e41032bfa618a14f5a6f73c8defdfdbde2301fe47fc82ce0c1f0082583f8484e6b7d566cba8fe6b8b6abe57e561f8c1d181a7016228fb70e52820e260c0ff238891060c671605d8f54d88ebb2d0dc37b29d0ab568c18b1b6b774bee2fe5038f968469e098eb7710", + "052b45340f905a2f97a1c1d2e6c73c0e5f64fd0ddfeabac426cfe32ff3330a8816cb1f97c0d2cf6052d80bf87bae38b977b917060d9f5499f75c1c6305457d1df2059352a0d11a0bc7cd2d70c29d161c2898d1f2a73cc9c52fb43d9037b29cced6e67abaeca14b770303eaa457bd523b186f9af0f360afc674e4716263566a629d8f940e6e1ac4565c35b160f727e887ca1cad574ab0d6c1cc636416", + "6a954eb6524ba0ff28e7a6610c6634c49732a6dd84c55d558798b471a3cc58b71a3572d0350c3cfc470ae5766ac5e25b8cb4acd423f93333aac5f0badbc1ff22a0bf28d4baf43f767c03c50b78ae02e361445ea8cf373dbc20db394a67c6d29fed3c77ccc33ca2495813a0e976218555c62f11fbf265a56008c50a8186d8f2ee4b614b7ab0b113db99e1005c852bd6c84417c7f5a5bc1f4e71248b9f8e75db8db0feabde13853c" + }, + { /* i=7817 cDividendBits=957 cDivisorBits=773 */ + "1af54e737b132e144da317c4b3dda9c2affe5aef0d7d785136dd67bef0c4360bd37e8d4e8662284b6a19508ad38e436845570e45cde47fedfba31f4299c088623d3392f75f3b11b40b4a7e6ed4025026b3e12852535bc77a7728807f4f3bafbea5601b851fddb0295888c919662bdbea519c7cdb4fed1900", + "1c544b0662bc5681349165445e10ece822669c88f702c2e9655aa8020671f2c743714dd519893d57bd339bef142c1a59669778c745e24f60892e619b38b488093cd87b529e80ba533c0d544c92e2ffd7f089ee937d75af809de661dbdc59769382", + "f39c471e07035a9db598d9223b0725848ce4b4bc74f184", + "1b88f7d3bbba935a4acfb4eb8f23b29c31f374a3d187dda05fc482f93956cf786e9277bfe1ffed825697c80b79b1e251b350b578bf62900e9368a71f7161765a805dcdffeaa7d5f1f558e6e27069fa58c3af798324d479db81bfc9918e3f03a7f8" + }, + { /* i=7818 cDividendBits=1169 cDivisorBits=127 */ + "e2a68b33d9cc4a5237017c59d62a241b8d62f48667aab7df551c8c566b73117e588603be57c413c9df7e43be86b00e2b5a595fae2ecd417f69b36967a0690acdd67258f50081e5580d9ab01d29894158739aaba9a509282dd01e16fbf4fecd38efbe9e820c5d2bcf3de924d256000de4a3ff41428631da12785023da9d1c76a34fbe3e6fccd15bfe0f22dd8b5860217a00db", + "4c1ce643bf061eb9c0fb7bfb9dc74f5c", + "02fa527aedb24e79e3f8632f09b4caccb74a2abc8546dd17c61b66c3509bedcd0755495f286b1aa7f3f12a45ea3a1713ec2963ac0955eaa1ceed88dc3d3cce04324391a188e4b3cc6777cba00aedbf9b23038ddbab12baaa03b490d661b1490e640ed22659bd9552c6b9dc432d9064b7d3385bf8ba79758ba0fea0f7cc92f85cd32883", + "0cf1e2abb5b95a76aebd910bc74204c7" + }, + { /* i=7819 cDividendBits=135 cDivisorBits=72 */ + "72392165ad755764ef891c18ead886b4f4", + "118a69effc1a24b4e3", + "06830bf27d0bab453e", + "08ed9413af0a40b6fa" + }, + { /* i=7820 cDividendBits=3873 cDivisorBits=1369 */ + "010669f9defbebb0f67f23c6da1fb6ac67ef1854040ef3d674759b262906e9c883537c6c1968f3ff9717cf94c06c25d4f78e1d6273a9b0e8dc232d59005e7d73ef9a0c97438b1f538903b99c9a047df13db461586d17ecdd982af09134ff51614599d6baa04eea3a5862d30ed4968bccba3cfb85c79a5d02747c84f757b2bc77e2523c5c15294922bec7c2653077c0e7090d6227996356e4e6762650f0cc146e6e7e429c190a1d0700fc7297e0f90d61aee1ba30d2a9adeb5b7e27dc34dde14fce3a111b677e8150273cc2803073888a8a3d96ecff5fa563f1892e404a4140a02e1941975e4914cb01a91ece96eaf56b0438f693ae4da2efd9f2dac9f4050b56d8d72193ef3822f31ac033e208d2d423e6a39a36045da8f047c859baec8d244397cef321ce52ee41ae63cabc63b759d1c729a274d9eb2f500c6ea008eea7e4d40ab1e4b1033a639174a97ca86b4e89ba02ea29a7087a3a45a0bfc599b2bd221ca455634c6d203bdb8359a9c6ab42435467cae7f8e787ec9db2e3f42788ce0e06eb9072489f297ca081c1c0a1f83e5c5807a9f54ae584c2d80c01547b59b8b7986e0531cf56cc6afa143bfd78dab10abcb7f05ba30844dffb3cfd6c2a44f60b28f331f96bc22bcec02f49ecf544e22d5b522e8edf50dc62565a4447f7cae2ee1e3bffae3ff7", + "532c09c64a6fc02d4935dd031a07d8bd50ffaa58e8b8e2aa9969f02f3068117b2a5c5dfd2311d1b24bee17c04a8d19251a32eff3804c8a8c4e79dfaf74e5e7d4e15922e72b166876212e30fee4a30895fa793cc1b0677e086cbbab599820b46bb56aeae9022fbdfc3847824d138f1cdf537c47581432271359111b8eeeb8f009bc4132d0ae6abfc233d93285c81f86f8a5d3413a888e2a8a74f9c31ec3c7d8263f0460d11ee121c4a84321", + "0327b2fdbd8e46f02d781e4b02b30d8e1fba3dadc9383c7ac3d4a2ef5ceef7c7257ca8298541c6d896c5c6b5fde6a107200df09ada1f38a23d421592cf075df52dac71342546e946a6d7dc4fb8ae6d949fb62a935437e52c3a4a9290ef7a21fe3faf47f831044f6cd774c5f65cbcb1ff72fc42d04af5afb36962f85735ecf4fee511a1ba59c21d814cdb5008a9ea800acd86481efbd629bc4a3016265b4e57abde312e0754df5a12d3d76c095ff1331677eee302500a359429f21bbbcc317037580ea912b493f54349eaea4bee2c6a77236e84cec548f721c3708e830950b596de61945fa600829309edb7e6a6a79324f335d071058ded0f8dc68c2a22413be40d84263d1dc7335b7a20323b6e89785700f05133c2dee274ada764dcb5501951114fd8195e4c23efe13ad4c926c66c9247a60b2dbd683a87691f", + "393d33fb041fa955600c8662ae65b97d4994981b4faee67f618de0797d493d901f83b37702752918f05f34026154ffdebece65b53dbe90c3879092f50a62842315c5f8c462fa0a134b3853735bd31e74678d7890a417584b9d07fdf629fcabc41ea7dbea1e7aab671d2f9f15f5d0ca4c140fb3f211c71af97c85503b00fbd2ba5257b71a40bc8b35121e116bee70db39d65a8870850c68c440bd61908562335fbb953d30c58b234b5e95f8" + }, + { /* i=7821 cDividendBits=2915 cDivisorBits=597 */ + "06e99e5916738d2cf6d4fd4a7f384f4494ea2f6d67c60caf5441896863c5502cdc721d17155740ea924322eea1ace0c238304892edbb3a1cf323c9711be6d850278fd81ebbf09fe8e2952193dfaf7ad38706da35d12ffe8a9f5a14a1d43e0c4cdff7cc3fda10d2cac9a4460dd5cb2f40f983a8b7090611ad9cc2d73eecd6621098d36aa1fec3a9f56181ee27557094c9b2d3a12cb97b4995671e222343db82a07f1c7a18ec63d0d17cf6dc086b08c168a03d3043a0ef40e64c401b1130a53ed097c09a61b05c0bbf9c676ca27027c2df78a2f8edbfa6312e1a54efc3ed443a77216f08be8bad4d66fc8f65bac442a49153f93c5b4503fa913da2e61a140cc80bcb7c247bec5b68e58c60ea262e67d76277f0fb1d21ce0e42afc3d93c58fe931496f8272b96742f911ff43199fa8e12bd07e2748c9c7aabd271fd93681df5195270dd2b525df5992c2ef2bda18ca0f0063eeb9ba09f3e363f7c872a62127a5f8493538d1037e870549568f5d278", + "0e3177199ae8eb983b00cef29b24fe84e22cabf143ef2e0524c7b0949f18087c79779ed05eb697d27e24d0bbe7662d5dc8ced7b0d4b179b90d5ce491781970a7f4b4ca0860179b8d90637f", + "7cae36cbd26c93e0f9a46aeca586e68663cb8b82fcf5c6366c960858f028d4679109c45ca8b6587c39a1421c74e7892d1f2bae93d417dd03f0842214048e873c7ebb1e9385ef027843ddcff24985a8c25154cc74e1c6dc9e025d5d1ae04ee3bdfa012c60ef3ddd53b0a1c1ddea256d1e9944b72a1aa65407acffa90c37e5fb6608559f1dd68f42509e05c9428d5c0ac688b6dcdd658935bec996245309f49d5c762e568b95e934c0447079d3015163c525375b34441922f5176061c3fc1383dd8390b6074676b0d3731e531584566e70dc252df3e82712ad49755a4c9c85f2170630ec8bcd63db5a027a06d38c4aabf64ba7781e8f42ce12a05321a4ee1ab092616f7787618ec964b65454dceb9d5ef55d208e88802365839e6837dbaeed458bfbd8", + "02cfd61dee58cec6ca3d648b5dda2f0d86e66ccfc66c6d23cfa100fee2500c53490856de92b4445371f659dbd713fdadc3239b0ac913f6790af556ea95d72cbe527a4948a7aebf249f5a50" + }, + { /* i=7822 cDividendBits=2122 cDivisorBits=1899 */ + "094da053b2e22001ee65daf480d29c145a37d5aa13f04ffa5006b209814c7bde109b4a62e65a7147d2503404bf1771e36cdbf5bd09c67f0783a2f1440a6738bc4e72772df2a1cad77a93404447c66c35a6f91e07a1a00ae1c648ddecb2ac7747f23cb46ba99027f0e1dab8b1115ea083f6a9b233aedcc82dfc1609754d562c0a7a052c5dfb047ace19306726b8b0dbaf063a351eb6331ff59c48bd368de3c0818e9362cb46c9e0b56f16f967ebf7e6d6b8837a5684a5e89bb7195e7a886aa7a900dd2770665880279a856bb2b8a0aa73ea45fc76def5a1f54247ab798a83349dda91209fb39082f999414234d2f80712c3cb80c03671cda7ee36d4ca980761a1efd70d273527b2996c", + "0458f3654e143cb26b5b2742c019a4e2d9396489b2a876048c60aabf6ec1b7ef5485acb47ac82ad021eec7112e0943c2c7f88dcd6b08334fd12bacd2bb6f8585aef7958030b1246fe3e2d8baacba243a31f1873120b14a8904bea1279d86301e090bd933d1092883b5b0b90b05af00d2155fb19be70326cd613a0258c2b00df06d7751976875db9abd906e88ef7396d9476b1e1888f8ac3f90d346a290e9b96f9ddbfa1a88bc6094140d110cfee31cfe368e6afc79eac64d51664575dbc738a9b63ff6706ae9ddae74768493d120fd7c9c7f788689186c7b426ba114696ff60ea1f1e2ec080429faaa4161582e9b", + "0223d1d644fa721270e21d9133543ec16dc494ef6c3e7b09e8070276", + "040798e0521689b53315b3ff89bfe3b897ac5c4af2c5672ff2935484b8ad8fc720cd1cbc252b1a9a68c5a7d8e1bab5395cf0c12d19278cddd55a434d213d74c045058f4b9d00d3a5a231b92e5060e9b4b407f7477cd082a95874332806a43d3287d26d141687e5977febd2c43af3b650359e9a48d680f52acb4751537ebfda3a123a9491703155e8d9178b8862e70e226e1b161100b4e2211a915b2cb99a7fc98a261e619f78751f47840b2f20c3dc250d1bf549140f62cfb354b19afd42a7aa7c7b237e73022da15dfd5646d43e6a641b05aca09a4b7f57706731b554b7c01c733a53e84bbf28247a36da72e7fa" + }, + { /* i=7823 cDividendBits=3137 cDivisorBits=1920 */ + "01d5554fac36310b926538400506e2d19338a813cf67bf63637820d3a74b71d8d94bad4818511e888a46f19b6a1ea33278f864a20079bc207625ea4ab2cc345acde9c09e3d973cb30f3147efa1f5586f4e6c6d888bb53b6c199ace62774259687ed2737217aaaad871582398b0ffd474e1e31f1fc8da62947476efe7ad57684121b25ae29255794a74dac27b5fb6a6714aa3ba5d1efafd68a2e9f7da95afdd7b59111bed81834623f7c90857f3a7b09e10f7808e760bd1cfa54ac57847a61178174ba7f6fa95ab221783c8edac5a942823de7d92efebd5adde2711a812eb90f61871259e03d63740c47f674afa2e49128210a7a25c45663b31bddf50faf24ba671925bf47020f88cc246e55f3141390700dc4240d26e60e41c7b4192c5544d769a9f939b958ba85bdf4fcf0b6f756275a7e1901120103671028492201db9940efc544fc8c4029159b663a5634f7a5e00b814ac65bd32d47f172112ff6cdaaece6a9a45afb68d1a3af11cf70e0b1b60332c480a54a45788afdea65f79851f51cedae14fb1740d65b714", + "73f7ed8708e44b4aa2178f0972de59da4e86f9bb61d28f19e0858b0b90c30c43275aafb54062f287036abd50d8fea618ef32e4aca79abd68365ae4ff9dc772559dfe6e8cf191258ef3fe0cfad486160b316d6b0fd396ccd81f446b645df4c92c83e3dbd9f2641586739574f02fe1f8e46ee39ae9c77d1f93578e0e5ac48b50a6ccedde44af4a011c9d606cba8a4c35c6f76c2c277bf9f18005fa6ff35bd5efbf520e936d3127830e2397388f09e77fd0e866ea13cd6982d08a52797ef6b6782ce9a7fcd15e5a1a8924310fe34f65d3d826facbddb7b9e93075d13b2e11cfb07e09d5b3e89260c22dfb7573058ef644d0", + "040c0d326a8752394ef9238c3c7746fa353f3be6722a52f6d0cd1ab74e707e7b6ced20b0e33c257ca7574de98581273e34865f829a9bc2bbf2bfc7c52d367b3629fd38f4ceb6869d190081cf434081b1283d7be5741a90ff79cc530a9bfa51f1a6cbed41ab20013578a21f5b84dd39fd451e659950da586c77643cf9170bb10082955d87065d222f4974dbefca91650e81aa7a56c9bc738b61", + "43f348b8eb35dcc427f7624edec0f18769f1a77d67df69988e57b5abb598d86bd8c1d6414e8a6e5867b817076ebbe8efc31000025dfab198bc9684fc1e0112336b9c2725bc91d4d9b52eeb3cc529a3b45282e3e9d1849ce396a51586dc7c9098e3efdec761fecf28918781e1a074b0c366fa7f3cd25b1d9ebb77b6b79aaea0d564777d8eddb5ecd4482235e64286f97d1ad89cc8f0f346e758d47b138ffd77b8c8823d57a94b2d29dd0ec85de9b85b2ac14293e6a0378ebbe547e534cbe9ba9986400313a586822c8ea659f34ac3af0e0c05492fbd66fa8912e3de9eeae0e162447fd60a428a28682e451d3f8148b444" + }, + { /* i=7824 cDividendBits=2774 cDivisorBits=1842 */ + "36fc5b94f9381de2138abe8e9565f601c1730702053b1a83679a1d9ca39b1cf6c6845364136b0d3ad936436ddcdb79c42fad881d3dba0078b893a2281fca8a2b124a5138e82299c3ce9a1ee7e7baebfccfdbfaea380d585fca49075959b918d2374547c3d204067983077a81b3882ae2b59816985fb7142bfda502087ef49c4fdd3fbf7fa0c68e279015817debaf95bb07869f8f0bd383829b79fc990d50e7c9c74d03a5b2e996145119f066ecb7eea234393a45bb27b821fa78659d91c63788d7bf3c836ceef2b6c85e007e97987b52799e174ef5b26bc9b48aac9bdfe494c61873b5db5dcec589caf02786546bdfe1780ae1c841f55941128fba4c4ebedbeee641b70d6a4965856af3186ec7f2f71b3894c5f098aeb5d86b6946ac10f6d18633dbd761c9bbde7583cbd2d12e37c4fcd725a6848933c13ca951167b5e87d69aad5052e39e8cf51dd842bfeeb304043101880ab28d81855846475c", + "51df2ae4f6b60c4a6cd5af3bc67885e72afa966687452399dd27bcd9a76d3f90885e08eb53a57bb0eadb1f1dc73001be22fe8439c6d7ffe93cb87fe5e7e09ff60312f0463c2b000205536d40d1192f25a99dd41146d9f030331bd94547bab536c7d47815ae0c200bf9e39ade141634a7b43e6905b3c3d726279a5320ddcfa0b0f644bb48ae7c1fe94e10e240463fb6615427bf64565d2df352dbf5bcb75683d393f59d1cd82fdbc2f8779b74fcf8b852587c3369e58d6207419d59c6597424c19f5b47d75c4f606dfe66581eaec217940db6325218b42010d809739df620e28249b44d35be16", + "abee8afff134dcea89d0253e807c542507e713d276a6358eb29d47a9f0f60f38778c5529dc27df08944634e3c339336d3bbd567f726fec5ca3552b64f60897ac0e2bedbfdf598617791c1126f983c125c84a6af0658e34824d0d74609e225afdfe182554a6d2004aa2ec5032a2f562b2bdacc44461", + "1cc745f55e927456bee6abb1ced6749ed35615ee1b0962a54f5b066387068ad67701cdb293658b51f134b3da77042580f1fcf42d0e0c346dd24a7d992560eaa1b49007b399e9e29a705a6e0eef12ff87c679a9266d9852d69deb7293b211dcca1f28d47823d9fbb07b671ade5a612a22ca10425083f07f356318f66fb9c5f5ec4687a7034f5c8b70276846a3123ac32aaddc4d4d6aa22c1f63e91acb5d7b33824f21ea57a8bf4c5d9e1088ddeaaef338006c962081ec3092ec7391bcbe366e23211aa8726ba109f87a5474847c1a61f57562ca324b393292d81a430d38ee806bd4977f936906" + }, + { /* i=7825 cDividendBits=3940 cDivisorBits=3211 */ + "0d8fbeaa8612e21f2d568c4e5522cb9076086499feafa391141c974b93c14979b4992b3b2daf563f0eab30b1f2d8f77f40a92424c2e39e50417d2edd46c422df19e09dfd9fcbc32a7659f1534cf23afc124136bf692c9d23f94420667c0cd5c5954aed41c0528fd96c7801a8c859959bdd67097c87f23d736a3f1ed1fd817a46236a1e6cff0758d3d2e6c80a030fdc403bf93f447037628ea962507ed99a8d1751641e5806372c55bd5da80fce4a2ce13c9ff056efc2b37d55818c153dee051eacc8d94df54d27e603ca00688974872f1f1392ee3c63ca17da3fe60dce1f6f7f433c376820422c81f474ebb13b9a17119728a56bdb5e6bc1b43044980e9690fe8e899bb2ed78f936fe9dd5c07282627d2857aaea18ca431245438c65d3126075dbe9dd39f453354f8168962286828653e608e4992c5fff20f731bc870d3f684e411b813fb3bf98500dc26083fa0b30a3f9c19dfbbb506c214b8b9175aa4f6d2ff40b6f6bd1a462e4051ce60fe71b03dc35c316fc458d593d48403037292751cd55f6aa18ce0a0ae2cf7b70e6210f91c52c05723e6308d315d59d6a78e2cfbe8497dff5d8c5e862ab3680254acf707c43da40b1acb45ba0ffbd70c55b26a5f444bb67f82be1c87d6799dafd1b706acd306ccbbf67eccb47c7e544e34feed0312d24abc66ae108d040d37ae76956", + "0733d2cd070f3aa6521af0aca6686ffdafe91a313e638fc85259db56b55b06dd0d47584cb9e771e5ba8c4700f6344bf0e00c2938c9d2a5d3f904fc2992bb0394e53b5a84dac2bad44b842cc921e2ec8f7a596b386d72fbe789138e0aff3ab813b94c6fa7748ac4c95769936cfac65f32b13abbfdc4d5c5dd3f3c8245d36123c049beb32d731464014d0bb4eff6ac9876fad0165eced31818be7d6f00518531503df24c2de8a18e8bb81604b5071f45634ffa0bcc262832ac35f9ff54e0a8c7abf076f74aef1b32cd465638bb23de608210269db5310e00b08909e67712bde70260ebca8a5e21b04fb90dac5990852e92d92623faa8abf80177cc94e950676573f806b881ac055988537cf585715290e0ca4d56337c1575797d131234c76f91dc8538e17a8daa5d8c3e4bbd78eb41fbc39d997524ad806a6dc0fe3a0632b304d1feaabca455ae7e1147bc4089d6ad5538ca7a63cf3a4d3096f51d06694352798c66d8c34e270cb6cdf53cb379251d1114245c405260962f0a7cf91a05fd791991574b61aee849820588d42e7735c8afd50a15", + "01e20613a759bc3d34aa19f8708db34cdfccb7117cd22d5d7f7d4ae1e99c33e086493dd5e160e420d131c02c1b38bacc10c07f7d90d65993aa884d9a7b55b8ce9faaa49700ff5e0c194c009ddcbd86ee4b3572c8ee9ac91ac499b553", + "1ec72e951cf6f8ad37f70b07884b99f88f2b98fae3ffcc5b3558a1d0e3eebb8483f73a11be5f52cd9d2311d6bc29095051ec32e5b2782f7bbca6083a0dc7c14318c6f6c3a885318abb1b3ce3ae0de459d325db71b33bf085869223c634e4a13d696ac476179998cb92c9892f41167296384dd4e8c26b96a50546eb713cfac499ff7cae27ef2234521aab4e33a70e28ee5deeb9c4f42ffdd3203bd663b1aa73265fd54eca141af1331fc2c1bc68afe50da1a5317130082b6b4fc79b2f5529c572317a4a7821385d12a47610fd4a2c841c6cb28089b9851be3d8db1daff788f0a51f34ae4028937f9566f72e12b9c0a6d4f247a03137c858ec0aa024976ef66275ee5326db002425844cb118442a1c0cb4272c7a1345c4339e18243e002ba049a322f474f5047b612e62963c918d6ea3eeab2dffcbd8295a8bef7a7f113716772b3bec3879a2cb809bd8ec6accd870359b389b9e0877cf44df5678235413ddd1dd8ca161ef8cd7789eeccb19827f6fee181625ba646ce2ddc71811800da9d306b19f74f31ae5a60be66f2c633743be274b87" + }, + { /* i=7826 cDividendBits=1288 cDivisorBits=922 */ + "48ba65b5932a5b04db2d9f6439a24b22b63dde797ccda63eaab500e41739d9443dd0625566f8b1e80b9225b4960ac284dbe0e6e33c9bb027ee860966041eb70da09b988aecbee43dcbe47a72a44f1a3e4749bf7108c7dead1f6deeeb1c49d5a85e98c0aec1f81a7e8f164b6d880c09c2c8b7392a4c1732b4388d16bd72cb5da2a8b2e5a483f791efaebbab02b0509525f2bc3fa2eecd4d7cffb75045926b138e05", + "03f8cbb50b303b2068f05b459b3e4b5092e6efeafb8952c64338bbccb43e96bd92c32beb99c5e8c726347d5ade7b287ee8f793d70596829b156d7bf27790b584d61ad283f175e03cff6f2360a6b44953e12a161442854867f1e3affd69cad747cf0f940a572800cdfee5b91b54c96312edd48421", + "124f94122a619c556f412c0c083b184bc8af024a314bbbb2aba764350de464aab9ac6e03a36df7924830de40840f", + "014d9d9dbb633514b932beb4c1da3072443d350b57a600365b578f64a83dd3daa616567964efa4577775bd9cadab0df786f61d8dc62132dd0e056019751ce806e38a0c53098e64773a01433d0b232561656415a6ffd0b540ee7b52168bcd26051d69448232fe6b22d425dc3e2a9fe6ef413ecc16" + }, + { /* i=7827 cDividendBits=2430 cDivisorBits=2059 */ + "3b746e54388c3e3e825f66ce51316a1996605a21346a7f7f0ef9c1216967f5a92b8a2aa8a87ef57e49a4a23f1c893940c8152a268716e35b9bc957364b0f09c24ff74a1c8fa04979f6833bac6ce84945913e9a5a405afb16a757ec74a56fbefd16ac3e2f1f77dd8d8acf2e13a828eb8c90cc3a993ecbe4e28870f246cc945f82ab0e9c9e12dfe4f25ce2a00e295286513aed33d9832576ece4cc219aa945448b15e3f4d1d30822b11a3e5c78f8cb04feecbd45f8a5f00686587bf9d172ac7c6391f7e4f5ffd3ffc606708b2e2941db3363a42103a23647947014065e06f01b19fd9619f866a6781674af225724349ad009046ae25bc7063e2232215d0a5887e15eddf2262cbcd3e1edb8127e6b0d403be67ceaa9475e3758ead784faba761c93a7e7bf397fb306194f704d0940064eb6", + "0635da15f34b8abcac1714a853653002d8f8df065fc8545b1bbaec1884198bddef6d629154c661ce6c92275a7a5de4556dfae353f0758c84528482cc8e280510c381d841348d285882035a96f1c65d54d54e86963049c8f4ca1b59c92b636a2f40a785a1d4f654b5e116813bb10e30a320395b805e516ab82e0c0783be09c60df4635fc25c1842adfee66c7751660c906cc2265f032fbd6774df754ffc3b0b20701a719e1cccae07ebc6caf9d5447093157c5b53117c3e50ae2fdd503ede74513bb683eb8059ad2baab7a5919bedca2cd1be7e13c3a2e20ae5e2114bfe32620a918b0de60b5a51e52b0cd624d847f63f527e37dd24dec36a1275619bec71475bc241", + "0992d03ac3f218f9d3184e22342c4e00f3240d086346f41a83ba0159838e187929a8bd2a901a41a60f14bd4ff96560", + "04416fcd04e0c2df3cd5005a6a4d170c4e9acad6357426909412f14ee26cb308ff052882e1e46cf027df8c60291fa9cf3f3023da931332dc193124efd3b906ae7a19c1e128077025253f555e064e06a614b4f6f36da5af09d52d57b5a2e3dd4036e55d33cdb9b752b7bceac96627a270455ae56f83aff49b89516d323307ceab4389950ce65415647313506cbff43fe347cf66c108ab502c1c15a1d96b206256c3a4cab10b01f4967f2e6c6de4a390880aecd45697747391debf49421a266a4195c5bc670fb55e49a8014a8d1b0dc3d701bebf9c53d4c37e0d650fa0834e8c03241805da41118b414541dcf9d4e3aba2e28929ddcd804542b7e5dfc0ba3849c0d156" + }, + { /* i=7828 cDividendBits=554 cDivisorBits=108 */ + "025bf57fdb346b6c1b17f95b1e55e83991d8b4fcd5334daf68bd4a9ee92915cddaf42e49500043f3f4ccdf8d4f0ad8900b9c8fda2c2acf9afbf2e74c4c67ba30e1a363fec81b", + "08bd50ad703febc8bd700f873aeb", + "451b51a6f53a015b4897a5e088de69a3d59675ac94107202502f1abf56cb91a4363661a1a1f60dbcdf8954b5265d0994c671c595fcfcdb77", + "069397ea789cbe726c5f29675bde" + }, + { /* i=7829 cDividendBits=3057 cDivisorBits=165 */ + "013825c22de70a682611c04a435a79657a2d2c1359cf9aadb4e9de1a24022f2a519577e1f703251242bc0f55ade5d9fdf5bf4d2f43be54e91078ae9716000cbf7dee502eeeb2642e820b6ca54aed7a6165d9eb113fa3790c2f9f5b4be7e52b4ebd353ada9671425b97bda4f096d8974ac325463b977692992675c3377bf3072d1f57919c34e0823b6ddd4b9a7e10d00232590260bd6e884aec07d67a60c35329c7f837207d908bb751592f5d3a3526f1d9eff509007c285b5c393b2aa83a76c89db618ec91a4952b5f46fc76a06f911ce2f38eb4fa7e4f5e49eceb231a8f8b72467bb499c517d06dd5879e67422781a35618fcbbb685b273e1ddf0ac38ac7b7cd3eb35af273e654e80c1a56c32d34d9fab9be11c625302c6680e854cc60a590e37bc7000dff32b92366511ea14a50de7b5fb0a1fa188d8ddf31ec7fbe847c4912e0f0c2721651b14763382f10696f760b5d96f25cee088e898f71f2f230f056b3dc95d24d9e9effc79034648dfbe684013b6c15d150f739ad4b1700e88fcd3", + "0edbf4d682690c35926fedf1ce73cd1ba725519ec0", + "1501cb8d6894419bbd0ac922765abe66c56db2532316f37f84e219f53309023f1eb91cdacaffb5f0cb7c1eba4ecc982cbb4c70b4e75aa0eada92c405d521a8d1e37aee2d67ff652b12fa644cb2a7226c68c72e48bd9887365ca1533c40b073125a2c1b4710ad58989d1c62f0aeac56cb724fa651fd04a623de63f4d82cade61d8866583ba51340593762ba6f8c40c321ef903cf8c9184c065f734a6a24a0092b9b694290f12f9a059ae03fc24d6051968fe698d277787cc9cfcd0a87794079a3f28a7ea9f0e3d5060ae883d01452f345dd42d2213ccd452c8d57e8826b43419589c908a28e49ce13e9e7a23b05e6a330a8bc6d84ac967568bc9069042cc0a11f62045cc76e7d25c088951b06efb6308d5d08e210bfbb7a48a124fbf3cbc217a389db761d082f1da1884a5e982476b999fc1736e244ecba134805589fcf406b26c48420cac1c90eb2698161a7f8f53e703904854bbfdccb76eb5221a5451b1a3580ccd537873cda151701", + "0401c6023bac16580aad19596479f58b8d0e341e13" + }, + { /* i=7830 cDividendBits=1793 cDivisorBits=1284 */ + "019b3c9772c10a4ade33df04748be5e8d6a9bd74995268968cd732976e27c40f00a5bb727eb41bb1337732febf91e652736905c08565833e8c8662564a5f692bcc86930bbf3e2409ae6a06d99552f6999f976cf7fbc12a268b48e9791354973c86a43ca45e20ee3d52f663b5981a624975247ce5d8b8837a7b535882a52ba07c7e56e52bebd201d88f1d6c8b6042bc341573c661709549e650370f3fc8b1170b8856ff79736cf101cedd5f7967f80563d29a7bbd99fa8e71dab9df2c1779a5e4ddb52963c9b5c6cae87f3666dfd8c6a226120c12bc39e5d701a199dca68f5fea59", + "0b73a22df881eb37ebc94db8d347e59d803ba052a28d1bea26528fdbd206d12ce6e6e854e784954c374145961dadbc0828798c552a255e2e690bb0307965e8d424aa02583a6de77b4dcf39a135224ddc9b7769a948dfc7ecda3fc1590b2d788df384a394806b90155d605a58f87e18396baffc35c2c8e86e3328ef5d897fc0828959ab31d76aee7c6c12a6717a1f06e4bf7cdb837d1c47ec35e1d4643d60db4e2f", + "23e91a3ed3829f3c265b922cc75abfb3011a89c6dd1db203569c88d37504b68507ee20e199df57a0b6b18f6d748b0d8dfc5d6e32e54695eb93ff83f7a6e54386", + "043a6f23e3b0285af253fb63429317f0f0dfb20aed330de856a8146d8f564ccdf84a1e4d2dc339e294091bcc3a0639916dee70804ee8ef5941b0ad1a56f321cf262339477378810ef10e87203229e4d49e80a5190facb2b43fe459c5be78db72a56b069cb2bae880fcd2adfb504f2ba916262279eb2470c02351d27eacb284d664ee2ac161c1d219050e17e1a05a60fe6224a050deb825b46fd40ffef40d13b0bf" + }, + { /* i=7831 cDividendBits=1679 cDivisorBits=735 */ + "40412a86a15d98ef827aba95f0fd0a772b06b78efee59c3d7d9e02843d56646d2079b555a113fbbd9a8732970f64c82e54b498bdfe7a955b2116656773ecce6a8c365c12599d2c8d82c1cbe896c596a3e10ec3783f54e27543970a2d5d212aa488a346854427049431281fce73fea9efc44366eb923009ed1d7a18033ad37535cc5dd0fad0e6f73ce9c565e67fd0916d118b2655c794f23c57c8f19a95a9b184712aa89a61f1a61198bf9efb8b60322826ef4c3adb3dc765a3c14c5ec5a3b140963ec5bbcd9cf8dbdcdcd559aa0b985835fe", + "40fc70207536d07e115f04224de0a89cf9d164c7f21e1a53f5de528b0047d5439ac1adcc69e21072d1af11e58fafdbe80f82880f42940ba470b6b727728b7ae9ad1512577d0b97086f87f85177f181f8fb3a7b8dedc860263ef6327e", + "fd1e476bf0bdb8bf9da546dfa8186f32ca2f1a8316767df9be99a72da831a53082d500200c6ee0ab586d0e98ef09dc99cb76540650121197f7ec9c6e7865730b45a959d252c07d741ea00c8c4ec2c92b96ea4ec3c4183ddd3c137533d467ca21290f397299bceab2d6cd9dd6bc2a0a4bd4319104870b", + "26001536383f5be2c8fb4b7f8683139209bb76a6f6343956964a028e487a26686e56fab437f40382ad15d4197221be041cbcf4a8f9f61e7409f09e5ea67b617f2bb72833f2dbed5146c502ef7335f3d04ad98b8c22ececa2e72b9894" + }, + { /* i=7832 cDividendBits=1988 cDivisorBits=1058 */ + "02e07ec55cf8e6bc56cc56d96bb8a0b732677b4c14c29c87290539a5f4abf133d89e5b56dda77834627f607949e07c67b0a1963341d8a703b77c4047407dd79dc0becb3b9d234a14fc78aff069ee6c06fc28b77514d7a12c2d15110a74b9a0182eb7ba940a1c2ee82513ac45ddf25f57d8ab4177efc5d2b9215e4c5b31dcd7c158d81e085abe2468a89d4b667ec5ba2efe2c9d6245bef19324402c9c26a3c0382214aa461ad979d1e3fcdaac8d544fbc65d9d6a1ffb24698cc18b56d65dd428363c649d268869c8a5441b38fd57cef848b5191399b1012e3bdf39ed786ea31ce8ce1c9658e126c8d754182c9cc2681a48f396f3fe13c1cec0e", + "d20b08734e7329c665a815b2ea72ff00a1b24df31eb9aa5766e74f25c0fe99c20248ece2e5d0fce8d49390c3608e3a65eaf0cbd1d503920cd2dd03ec11980089589530897cfe057ebaa7b09aacf4430ced2201161ae7913cc2dbc7c4bb960f284923139c3b277af8d1598970285d8727ffee6684759563d3da954115654b8d1c74a62edd", + "0381a374ac8b61ed7b3e49b2833a1c1ca207acabe6d225516ac8e04b52fe492fceb319d95f43b1655862aed40b4a715fb7e507bc3cfd97946c3d6404b9f262a18da21dc61c4e0b8bf69091b8347ecda872af05a2fdb9b5d41c8e00873d11d307176d3399a2e3b867a49481062ddc45da306ca2c210", + "03fdbe0e2d00c3744f3e8def880daeb81f6bc161bc2c3f6e823916fe6cf326030bad9e2ff4258d7a99369f1f8b7dc9a84f9d2c58a27704c247bf1f6e7f022bb39bf068311bdb4a36c871987b6a938a44af65a485cba1651c26fa149bb7b4116f7a9f4f5989e59a7ed732e89005ea693ed313949ac37ecbf492aa068965ecf5551e5c843e" + }, + { /* i=7833 cDividendBits=1102 cDivisorBits=688 */ + "056e46acfc21bcdaca6b70ee8ba95c69341552b50fa13732ad73a5740fafe7bf03de8d3be384c7985ec1e6f09cdf7dfcf5c0aa567459b3688a7e4ff0b374806cccad40cc08b067ce47a034ae195fcba85dc392dad835f165e4f1c9a204564f41e212e6ce86a00a63f180924773c6bdf96cd190112af00f9de223aa195ca04e532ed26c2c3b8b8ffe3eaa", + "e5df58f4ced8f08796451c0e745e3d28035df76f349ec63f8806fd7b7350c0ac78a1c216be1e37594bc486d3ca9d9cab90f943fcad72f0d2a43048b9685bea6b3c94bb11b47a2d3bcd57b9c5cc813170dd43c05849d0", + "060c4bdd38b984cd26e1ea48ae9a2474805316f8454d6848be7c769d2000b6b2c6142519c80d3ba72101921ad4f339369c983d34", + "171d825a0ecf4d7a873a7bafd318b2f99c409cc403bae5c89216687621922250b65d89f6473144805c716614f2fb98b96bb15802b8ebb88579c483e8a44aa971f0b711fda9a8740447b99b0927c7479741ace0f8b06a" + }, + { /* i=7834 cDividendBits=3828 cDivisorBits=1044 */ + "0fda70c7bd068db787f9e2e1d218b1192828cac53d2b0ab0a70054de722319b897133199024fa513d0202ccd1e1292bb03d36639d45019f9d2f8d9fef43b272db7cc3b7f284a669ce415cd56338de4f10d09441a1670f9a0277cfe456bf5c04d4b5f2b66233518ce0f5d23c652f055b6a147aa06a8937544e9f914e0710c05d0298ae335e6568311f2bf062e7c0dc3efda4d614ad581923de652ad4b13fd7bba3abf1053c892b9fb8d646ba6c1b36254c4fe01f21bf88d1cdad8632b7ada730cfdaa4362248d4f108b2368bdd221e32d329108f441e91367af316c5b1d7083061beae85a2d41debe9a055bd5eb4443b027c8ae37db533a1bd94ac925456aaae79f589e612be4424b243c448a8946efe3bc48310c7f50f91150c4790e728da4cc02f44f37122d41fd83567ccf08cb0c40f1e3d79247f536d16ca12798223535542ccf25b75b411635a031350b4d91a14ac9688efe4a787df0734e102907f8032519686a17d47c9a6c10c0cc33032592ba3ab8cb6253bc19b25ac6e5c28ee5083d40fd5f5d548409d66b5650674089ab6da2f161139adaff8da8de804c3440d34581217614cdcce1fea6f12d17dff96309fb45dbb44ff0ff33b862fefd01c5b98c425d69b7aa9a0cca21d9410a204d39d9fdcb134bb2a53fa152f6e69276e58e", + "034ca49035d418db272d6efc302391c3d29cf7449ec0ff41991bfd37b405d317b5770fd117029d17568d867733af278e6e47359d3fd93ad5d5af4db4b9a12b16004c54fd0d95a3d82ecb202f8959e03799eff28acbffae5d32f562db89ad57032200954b02ff1c40ed09667b4cb17cb35c0920922b1de4e7e44553b0eaf8f0e1c1acb5", + "04ce0f2fa602c64646452becee45c3e0981f82917bcf6502117ab44aa2435047e97e2bec535b2d412cf2b40a056b1191cf317977ca958ddb987445448f4184b771951e980eb9db5e08440c1c990dc9c877fcb3acf1af457a58cb9983fadc618b812b35c4119ea1b18717d173d156533d2ab92140e2846c504658194adfb34b704dd844b632f3d111ee65b8d382801065b9e4bcb16490c6b82a14d2dbf6d6fe635fb4b374b773ea3bd5bb1a7ccc47748645928098f186cf85c817e055fff421e02029fd478367a2f7a56dbc67f59fe0d246b7bf035aa25fedc13b4ff4f60e7c1dd1f278119bb6520e45725fe86049378b50c469e01e7c39c580e982aedd4d0091cc7ceeb08377b03f8989035b54d2b62338c6afd2441e95dfbce52401da825e1fe4c5318f1616185ee0d5666e7bf096ee7089135e7599933d71b1a4621a076fafe63a7b52ecb110f783cf0a527c13dc74368c8405294aea9841f9fed72b", + "010161339d9244e4c359e36aa7ef714888b82842427dfe8406ccbf4432d64711bc6499060495abd39489b8a82c0b4ca3ba92f360fd0f0e6501a0dc35dab213aabe46303e6423eb521d20c4cf2faa9b6feb501323e753341e832a4a3900c822c54f67300ec4743e33f1c32b8eae3d837866dc728e652570db62dd30c80927bc964ce027" + }, + { /* i=7835 cDividendBits=1180 cDivisorBits=244 */ + "0521406b84ce83ee85f39264eead6dd93c2148b1b11c87e8dd472900683998f865209892c8ef68a6a3a2a1a1f68801b298b649b7bdac42cfad52098e056dc404d25a76c2cf9269d225919c66d7540bced3ede7bbbb2a1317f4388815bc3f81c72cb16455336624ec5ff47ae5741449735c0ff40e3e0045571fa3d27d4bb51c593555c10e204712b446686742aa1bae69881753e7", + "05ef1c02a7c5ca3bc84b44748a388a959615a6c524af3e851c6010f34cc86c", + "dd4f137a5b94e904a929aa8fb444c66a8cc2375569c667177e5c014ba4f9597c9bc16568435d1cb71bdea9326d7ae6bb2b78e0280493b03c7315cd55660d173d55fa8ebeb56bdf363be085ad38eaf8554dc4e1c3142b3d8d676d7320fb9c3cc48570afc4145e69aa97c17dcf8080c47fef4797234e", + "05a467ee3e7e013f1cf021f920ae61c7b022091783c61c2e0d9947bb977eff" + }, + { /* i=7836 cDividendBits=1094 cDivisorBits=447 */ + "2f5b6c92a449662ad1a4caa44fa743f2230696f470efade53157a0346f7701ec26c30442e7a1022d7c83c5adc6f5663d3713914d930cb439290da00b9184467e9cd396433db082637ed8819980f6fc4f1d2be807f5401275c511357a09f72e60bbbcc229f3bdd483a2afceac5a1c68f138e60f69fc4abe1779b943904ebb92418711f3ece1c09e4d2b", + "308d40ac149123ee07e60e353d158674448e3257f1d4e3e53201b64338597267867c9e5b48e0c9bcce9d8edbc4d377b2147e9df62b35540e", + "f9b3737c66c2c4d9b9c8f3240d986de7af5a58906089c374a54aca48839b775444bc98ebd865f068302f2b963969dd6181dc1003932e296a596de05f866ee4eebc4e72127842e5754921e6be6ec20981a8", + "069c311bd33ce332727d90370ebfd801dbbf9f0d29ddee315d90ea02038fd6a327d14728d3323984f9df3a07ec29a8983efcc6f8f5c615fb" + }, + { /* i=7837 cDividendBits=4044 cDivisorBits=1409 */ + "0590956acdda1e2071f811343a41f69c31bc60c77f51af5d8eb627ada77eccdfe385935ef7d39bf00e55ee438c2821ea4cc2249274174c33029344787643c15287bccc638b76e1addf93bd462e3a0b83b8466866781eb840dd597c5d1ab6ddce3df64b0e3c376fca1003534106fac20831076d609427178a2f01126de70afd647ecaa26626ed34a32419d73056008d6af8d9137a9bcfb8ff5bfdca6b3e1dc7363548ff3bbf7561afcbe6c3f0d716c576a61f0184988b970adb9ae2eba0549790c7ea262e36f84ebb448350ebdfa94723108853f4207f3480988cd6a656687946b0ac0542e2f994d5d804e44f096b27d02211dcf7cb7fa0a8301caeba029c21046448f224459e52cac713b256702ca53767bd35947c32e103c0594130914a4a95b079c1fa9c1d4f3b44d5cd975dcfa6240412df4ca037f6f5cbbcc72b3b6bd343f116c48f937605a54016f9eb579954daa77d664990fdc4ba0524193b477430b41fc870957300d64faf01da23aa9395109f721a13098bf1442c83d445da35d23d2eb276bd07e6eb87dd4cc91db7d37075a1a814381bfaac473adcf67683fed2770f6aa20297cd36f91d10f63195999a1546f30f095023b56629d42e1a5f3803ebabca7a1b6a14e93d7caeb755c610a0e2d1dea924973030f382b2db3f66c1c3603b5a7a8662c647aac55880aad1fb1a4ed7846aa39d2f76348b7b", + "013e19c3cf9d405ed035628fd130e8db35ef5c380b8d76a2d444f8b72c437fc5c94edd1c090038d89379a8b0a5f4f32d3458c012a769b43ac28205701c381666bc4717919e4fdb8b001a3225cd32d314d196bd102dcedeb872088dc0586dcad10acbeba0767cc8103ae524b9c27c65e126ad79b7a4f49f8963cea3497ba84b672ca99daad420341d5ff83f6ae5a19f7f6851d64a5d725d20b978ca2e47848786cdbf6884aca4f777f27c5f1cdb36cff9a4", + "047a78c7b800e7136a127e2a9313cadfbe7534aa4ef9364debf5e6b548e5d02a978633d05ad79ca127ea34fc6cfedeae85fa7b7c1a1b80fa445ad3f4198133affa9111ea16563879836128a2b18ae41d7f645bd5883a863a822321d85b58b9c9de57f1117a40b87fff3ae857d174d5d79c1370ac629ed6321f63e5c4a78e6e07961149b78db6c0a0cb6cbc25255262ed732dc7cb65c38e6caecce0375fc9c568789ba3f39406ec7ae2b3761b5ab552db0dcec1f47df97b5ecbbef0a3b67599d3ed1e1e583e595d364e7d8536295b9ccc2c06edd926d4672c0a8f18ff9e18f86f60032dc95af1f342748da8404b52e56b3475b70a966e356340543dc2078ec5509e159f1cd01b87725e4e9767dcb112a1e8528abf3196fb0a1cac2dced6cc060ab6d8462fd569e287416802c37ca59ea303193fdc04dc0182bbfcae5a4c671ab7b6f8e5fa561e9900b226", + "892e027941aa3959a1adeacb34fa5694cf4db1c6bfbac7a3d89a832991babffe3dfa8708a230b91e36e553c441d62c40abf29d8d08a6faf21f040932b13a93428e02980c63a1fb593f82d80e99cb9a0ded4afe4402457319bb40de936a1410bcc1f225f5651d53cfd02cd6a2ceee372b00ae562cbf999027361d950292e9ef4172e57b4eebe5bf67d4dab7989ebe40b1c766590cd380cb67e14e3bc70af035dab295e4bac1b49069064e431db3c17523" + }, + { /* i=7838 cDividendBits=1121 cDivisorBits=56 */ + "6984975a4169b4c513c44e0d8c38e8b303af07d595c98ac41d53a6fb57dcd0c3bfa709dd7e0a3ab2fd7bc919526d3e3bb98e118eeb5fac2c888606cd3a503c34b55b677a9a9f43096ebde5cdf7c5fd0646d908594d6beab1e6811afa0dc29ce50c524f4e02302ae92948e04ca130fe2fd3daa14b9494dd0ef34efdb39f63509a13329df9632ceb8439d6945b", + "dc376e6ca216da", + "7aa9ed4e3389d1375ebd4735079310d7722fa51d9c3b89edf2f8ab6fbd3c73da962ee5af90b6c80b39e384be74fd64737823b18e46f10bcee662bd55c86e81efd7334e6e6688bc31aef5c6a3dd6b70b4dbca76b166bbf3f61f9f2ef03ebb6b10cada7ea521e5d233c9c438f97f101aecf6f0aaec8d0fb488d21d8d889d6f7ce68f352550ec", + "b96dd6fdc36363" + }, + { /* i=7839 cDividendBits=25 cDivisorBits=1 */ + "01eda9e3", + "01", + "01eda9e3", + "00" + }, + { /* i=7840 cDividendBits=2856 cDivisorBits=152 */ + "37f86fdf6cf8abe2ee06b9e14ab37652ad0fbbfa5d4074c0d2e483a9e73b96c813b6047962eeb1cec67b1437b04f2dd68502cefeab9cf8b5f0869b4bd2adbfe075eb4975abc14c70a85c2ba14fd4b2120cd77238feddacdcc9b40defe6d551c8893a80c44f99add7d7ba1dcf4ba5ef572192b0e794a78e4e50089f943d62c99aba606fefed150afe38167314a3f650898c4da6837dc6b62782378518f133f55ed0726c78264f03eda13dad5735f98d4580108ddcf14575a88c4dd8e98d797c137f2e4e3fbee98fafa1f13b9bec2890ad630d66261ed59bffb2d1083712e11e0de15a6a47f660f5f96700a2102431204ed55d693e5cdae255ec59da994e98a29bce5e81e4fe021125bc58a88d154645413ea411103bd89a9cd88747a8308c0925f2b06bb737e4107026582578830f1d7e8c6868a284f01f3c73be1b861e867937ce183df8762e4cc93afddbd05141d5c4a543f6153c1308a6fa0aa2d5c807102496afcf356a", + "87ab509729ee7f94a1b362f3394b9050fb3d1a", + "699cf070aa1d5c2f90e9aea043aee8716959f8e8e0c0745cc605f318d81a5e90e5acae966ebc3b526f68c9c2b900c8fd0215c6f9d54f7615e1e515a2c58b5d7a30857bc30047dc345f0f5a82d8e5076e1ca21624f90c942a7b4f181e1edcfcf6d26538130f382e48af74b0c6fba716f9569fc06de9b81ec5b1ebb6137e7fe5d5716619786dfcf44c45bc6270b0766f071e5dbfab633d4989cdf867869ca7c5e37025b1115b508dcf5de13a55d0ecaf9742fb9e01b0e5c63aa7a0e6af514dc7eaa1ad2f76f6308479f5eff73c180c9df784811e5cd9d9fa94c1abc31c4fd36bc6054232377a945f277b429a1ff357edbae2c23a4f57aa7339d8f7508272e7d06734e963aef9044ac7272151f3a6e2c71621c2629f943ac5443dc9ab81c5990069c1e8428fe44df53f3d01b9650948fd1bb522f7a9e47dae319adece9ed317ab75fe4a542038ecf0cda428d0d3cdf45f9dd0c7", + "61a52c303d8abc3d28e5e1a6c031127beb9634" + }, + { /* i=7841 cDividendBits=1763 cDivisorBits=1342 */ + "87d5581822f936aaf84830b78049c2e1277a353d2a0b7a5cd8b3fd9023b51e341739c9f1c7d32ed729433ab6c16f1e47bfee0b9636b310d2c81c3242a23a786a828e574951fe7ebb69d5b25a1e4029792a80bde0fe6ec49739202caac8584888fc0a4421a14bd137f31205b6d76304cf24a17ba29525f659ecc31d0ab056924a305a074a106042e6b4a7d1056290915de87508b7afcabc6d2248168e93755cb9dd5112b72ffbe6675cabae953cc571e71d7675e04c4756fd980d14a04e76e40e7f6f348ea5cd8b92b2d5e021757adb92bb4d880ea94d827e226d1de3", + "122fe1e6a28322a7437b057f2fbc014dac7f0b7591a0a1c61f61b2bebfe7d1d2e88fae5682eeb45c1e611285acfccbdbb0f323569b2b397186756e2a786fe5fc8c681a551e08f7d8a3e8033bff33fc6a7da50ffac6933bf38843e42795dc698dc731b2c38e9ab1694bd58f02889bac90cd4631ae91b6d1549b279989de9555ef89d7497c4cbe660cef7055cc8eb6bd4c1d990705d6fb679ad5fbff61ca8ed4acb590fbc73dc160ca", + "0777fc17278fe797981f907463d77cbe4e89700b0e2aefe7d8937e65cfa28326fe8b004d83b8e3219247a28ca9e16234a3eb9ecf29", + "0ac357a6a04411a160f8fb0e238d18132fbc168b43a892b1c228cf6ce5898b2f5ce2a0c22913461d3c4d8abe3284856af9d2f72e5eba5acfd051b5445a9ac34a80662b9e2ca5d21fbe08d34db28b51eb3764062f094da6985df1c0c3293820072388fc93c2275c0f1c72a2b55a01ad0895ae114eff60dcde2d9c47577cd95c74edc73060a190741771620f086923f7d6498c01ec4c7fdf73f1fe3361a5c4eb1fddb8cad4b6854789" + }, + { /* i=7842 cDividendBits=2406 cDivisorBits=1044 */ + "20d17340ec33741da57c286bb6c51607189dbe6373b37f0437b319bd60719b606b25f3e53f10884518b26ac045786aaf86351db7ba4582f2788e53bfc84bbdaf6fef0f6f3801de26fbdde0ef45d713a4bc7ebe1ad440baac90cb8ea04425c148054d0d9d3c587a6f3ce1820942ae2468e54151db8a96e27185adbf8be7259064658822bd11388a887669df65a6aca19781d659f80461f0c1d64fe641c40f362c912a9200925ce5cea90387d1d7c0d8f9befbc40f92dd7fb9dceaf5d2b2eef1abf749692e72c36f754a0da6db9df4785e03011a78a02de55a9335778c6d404bf4964b2d6356b277f479bbd5954449d57f33b3c2c43a23828a1de4757effa74ee103eff0f4ed47d359c6718e2cd2b7a24e818d1e42624f00e00045529257cad9e3231feb3a2a427b08a4f75927ec", + "086a6321ce555c1c2cb21cb2fc88df1ef506838b1074555eb6ee90dcf416a464e314756c487d230b284ac23e9b77958bd822110fc670fd6fcd33103a5c0ac0a1e10759dcca6256e6acaa87b498c1e50858b3ae9fea4d91579d9e5258c2b86361d421bcf1a0e4155cc028586b69c572b8edefdb6290181056beb4ac7b9d1c086a89d3ef", + "03e65252a146fd5dfd998705c1e62721820ee6d2229603b6b9317d908c37fae2b01ae28b5e0909dfbe13037da1e81d89543a437cff7aca733354a0cee0d51376003ad7e639fb1f325689d465b89c545e9ab311b175aa198ed1b4c7cad94f70c352dca827308e551fff8502eb4a857fb926c9c24ea0db88c92c2880c8a5b498df03b60a4e737f1b5e50d236aaf680c9c555ddf914db8af48ba4a2a0c9dc6f555bd8b3917d16f53536e09f35", + "01b0ebd450ca9ca4b3ea03ebc696067e559eeb35d0d021f5b64bcf65a74cb800faa362010c0bb2c8b9ce9d8fde9ff83f98fa35eed12616c5ceb0d392dc9f05e380e702cfe620adb6b8b37be25258a0c79b8b61faf05c996d2a771e0b6527df9504a27fa6ac6ff3114ac37ec70b20f141534facbd4c2b744936ece4e8ce19f2730ed671" + }, + { /* i=7843 cDividendBits=3351 cDivisorBits=2757 */ + "0b1cc51b31c1b6b47d7af0c1a719e466182d848d99c331762d34980710bbd805a1847b91d85c3d27596a69d753334b05e6e3a14f60190616c0724495e03ccfcc210257f22051dfbecbbfd1aec7bd1fc98e3ef340b7b12eae62f9564e1096700ea43836b8a78bd754ab18c7821d9015d40d5cbd4d910967613c1393f9f78f1394d66112fd9f539f2fce95dd2074838129377af3da29ef6250fc4d37889bc0c6556749bde3acf04367a92931ba3f34a93e52d7dd05f5dcfe196ce476a30f0ba5fc0887c9174b19cbf2ba72d46d335abbfb5afa853ceb0f34e4d64c71c37d57dbfe202e0db34f3343b0fe369483ed8b4e94afa5198ef8215704eac78eacd3468d7cd20eedfbbea1de9ef29b9b0a5f7a203f45757a03890a64535ede4627b806ec27ccb44a722a2adae6434b60279f43faf931064a14e6c2c3fb2d6a1643987a3782932d5f9cc1b37aa1de172243efe9b66d69661b1c27402054530b0bb19415594104b64e20b33342fbf411bb697066f85773143a8dd41e372d44c750d6b4f8f95ccd2e6b8afee4e0eeb3c7875932fe4e486137518dbb2f6b2b1a1e0fcb9cd79543e91c25", + "092b8ccfe51e27d95ab5cd09b9048546e29e0ed83650ebfcb85af954b50db3d305d8ddc9d162a155c497c61f3cce0a57a9bf395c3dc7ee094c8fed31f5b03f4b48541573e01ea6b5c5f45504eec7ebdd19bd4919e8b1f3381a30d427fec0c4598eaf2f5003c13bee53f89ffb274105ab6c85fbbecf4b2b169f463d337f95ed646153c353af2092f3a1bca53227f8a9eebfdeae50185024ba867efaba1f1fca8c943f4f32d7ecdb68de05cad0d43b63c44dbba7c4eea4344bd71a58a58c447ead4f0b5951a98c2f367c6b1ff6a1fa4278f6c6f822794ee84c072a1aba73ccb3024797e8c15a9244d76eb615b54142c75564e8300a59bc6f672fc63c0ce32cf769bde5fa38055ebd9c59b212b8131d22c349eb3056e84ce63d00ad4d1b1f8dc32d6628b55caea4c042a3ac222399b7d646b96a3b9aaa4ebaff7202ddcee8d57f92bea860da1f54c261369d38535e4a73869d176529ea664d81ff", + "013638c53b7bd77ab9e54e2eba72606a70f32383f43cdb81202ac5f551436fccd8603eaeac344be1749a7223e9e3e86f97da35a2abcb3f7e289dcdfe44f3c4ebbf79b5ce5c5aa8ee238a60", + "11b95a2e7f4c9f4a1f11c61a45b31e84d7e9a62f05f4ce6f774e2b2bd428297f228d9ab081096d4ff4d251beb7ce78dbf0ff392bd6aedda79352b488cb0e517b45f3b05332a51d4dae2435372065745889689f9cf1ee8c25c0d9cb38eccb755fd3069baba06651eeb06f6e110280be3fbd64882af0fc5aafa19f23d4058a62e93466ccd704036268f94747edccc0d5d5631b0bc09d69bc1c252780b4a007e1ccb23504dbd1f3857e1ddc4b3d5f83a30c790ad5dd2e79e4e15eab0ca008d90cf6256007f3d1cc41bc682bc08dbe55a12e9f6023b7a311cf32ff516a1ca0862297f59d308181d101adb4ed351c4d205fffb6f60b32ff0b1dfe2394f0cde0087ca36d5e4c8abad78f30a6196201bc784e5e4f2851783c1a3307f8efdeff054094b44a8cfbe2e789869f86dda1910581d1f2663fbc156ee8e65c30e90728151760fdda10a99f09c0fc91ad89a61ae2ce38328ab7c3bd46e7e685" + }, + { /* i=7844 cDividendBits=2608 cDivisorBits=1948 */ + "0391f8fa72b9427114ebf21d4c65866aca591e93b8b25183b51de5ff6e166bb13ef44fe55610205d7e0adac28ddf399920dc8c9b15be92b87c32126570d2b060f220a538bc2b418d6b3588e2c41a1154a9996d97e41ee78196e3113633113a3bb6463863d68d5140f83e818ec1b8efe0dd1d052f1d88982c6764ae490552c82799d3319ff80af940d954121156912f77630c6eb73395db5807eb63aa1eb47b4b10b85d0923878596b77e3dc775b121f6933f09436ba41bfecb9fa5c50ee4eb9d6624a39dcce3f82a4cfb96a11df034fe98253965307f5d5a9842e0b7feb5a0112393e3db1990932e1c9e42339c94b19ee666340a542c5bc6a9b5b111b1005c475a03badc2501e0a49ed8f03d5c1d9f9f4f0cf5633ba9bfde6275dd9a73d34f135e92f293afb35ac2c4b6aab61e154211be7d15e2b69bda92cea5017797db289451710f684593", + "0d5cc06ceb5c6bcb830c08e9ffe4e3d70ab2ab42ae09b77229f431785f936adf796ebb9d9c29c78081fae57331bc6d32991bd3226b82425f843be73a6922d7d2237d157ba5423132406c53dd6b3dd794b9e3551bed70034d6c737c1be7c39b32d79dd2d73b3852427a902a4cfc08645acb3fc59764ce488e3ea1bc57ec012b898738760cdc659bdd7f8a6c5726a8850e0bf451a4a2b6473f9492136a28a66cf4463a1b25b909df2efd6757e1ab861bee796283e7249b1081c1bf580deefe607fde8a22b5276562a335d504ec1dd6683e91ee13521908126e0efbab659c96dc18750daf3ed941a7c27b7a1df46701ff296a166f7e", + "446637be0c07139eba825794b173ad78a6fbf8f46ec0ef287beefd53e68d3607da3684d9bd34c9b27668a82c4977d19f5d8055a323cda200d974470bc41693820e85c8c95cc590ae442f09291a48e89b9efc", + "055ccd2030531cd4533b322ab11d0680b4d1698954e566fce24417af96810fca21260f90709fddc307558513d3999fbf0cb7ad566039e6847a0fb65b1e9e7aa2a60efee358ad0572126320a17b6bcefb37652020ad79f906890b05c20ce7b59c2c198f0bac77fb2c7ff5b324e6fc7e8a2ef831e87a59f6169cdc68c1477e908daf2393af421e4d1a1f04f9cacc06fbd7f900d5160e69b86c098ff1638b8dba32470f3c6fadccd8a3a8f3ba7fc321550b21228c1b626237fba920c07e35bf932de2d8b323df97b31eeb94690b858f48158ee0e6653ed571a8323b9d08df7ae9fdf083f0ba485ebdb5e03a662e1a19dd231738c18b" + }, + { /* i=7845 cDividendBits=942 cDivisorBits=444 */ + "0539f9a72c4d6881e5fbf3bd0987bd7d2a6a6af807162d66de067daa586ff1487e3dfe95214845b1b5dda1112680d104f0e8ec50df0ba6eb585d1973e22d2573fdba06256297ccd751ced145b2d1d7719e39650c35ee3e1568c36d9ec200b5ccc11e1734791747b1b05598416e8306b1aade6aaa1251", + "0ca7948461a129065cb7a3dee723a6c8e86bfb60cf145aee9b1741b153554ba71240305d4b70b372b5a7ccde29775171c546aa9b478ffb12", + "69baf25c1d76d78aabb78b315be3d8dca353cbc16cf3dba8920f00fff3c1fe45d873e865d62bd38acfaeaac82ca8816bf14c926c489c2505af9ef0cfac62", + "01d556e9bcef7af950be709a3abf7f38d80b83b5c27c04620f0355aac0efd1ad0f6f5804631ed5eb74411474e95b56816785eb6f654ddd6d" + }, + { /* i=7846 cDividendBits=831 cDivisorBits=698 */ + "1061a78e3a5c94faefae854990b7ec34716b7a1bcaca43325f6275d4e2ecbff267e3a1edd6673bbcc49edab21a1da10fc61786088af6dca48ffb64c313d9fcdc5bb403f3e80ea63987350522830a4a6554dfc4161de83be09862cf62174d34e7fda1704904c10ab5", + "01fa497f309a7ca7ab97ff2c5130132d1cca789bcf5bf8fd811379a2f01bf655bd7964fca11fb49a76322bdbc70b076f19c472a6a7fb275664a36f06b001dfb7ff70cef42a9a0c54c01962194a5b986eb95fe8db6af50af1", + "08487cd9173cd155e93ddc94fb8c8dc4bc", + "0111e5da7bf049b2a394da84db03749dad8fbd083e877339dfe1bbe19d245960272ad2469ff22895c97725792745820ce22a034ac610c7199433c298b2226a67dd1277211cb5c63b7cf3ebf11fd97efdd0e1780509af7db9" + }, + { /* i=7847 cDividendBits=3674 cDivisorBits=1473 */ + "01ecb71dc79a94ec55cb92c607fc1e3ebc24d637fa3fdce2c6f62abd6ac13db478a9aad53169610643df0690ca5174574e32e24025b99ffe331027e07dd42ce484430477714c9cfe237fd3aafd9c7748d240607b004052ecc14e2b975e16dddaa07cc435b1b7fc3dff30192cee37e2ccb484bcb498187989cb6dc17aefcb0329cd74260863ad4cc5673feac121eab948e8de4e07bf67bd427cfcf9603bc19a95756cb3718dcb0409c0c1d545ede43cd3e4b5dcaf70cc9e5265ac00bb2c27d4a95d2a4b98a474f46383066d137d37f42761ec82f5dd0e0a3a629370e8b9e65a9008694777c2c0074942098f07e69f18370a4763aee79759d9a2d1aea55a198ab3ebaebc89e13afdab61b4e95b1fd947fb4239df91fa60c2109800b9c2a94f1024535a57cc7f45a0a24a541ecffc2335d574d128f4b578890048a4b0790d51aeeb44602f3bce631052a0077660adb8c3f2eeb1831951df0f8d0f26dca743fdd5f3178f29a8379c7a7f5b82678939c0b07c706f693e85450aec569d88c0463c59da58b7035e31f83fb492d1c112a7973330a8a9ee62275ae681af246ff9f8da6a4e2e530168ae39d3aceed1eb273b857074a7be4445d4f2aa30c4deb8da1eef6d967035020bdf6ef5e92d6eec50", + "018d5fe62239c4f2664080a4975ef1a0e83a03e1f51dd6f3dd42b780261d189157c056625e650bfe3de11d4a241ca047d702e77c1571bd1e56287d7ce507ea4f6f0b2bd9488b025cc466b9e9e1781e0c55b2598010274defb6b0a5aaeb7e24753d86c62f6d5d984fa6685838e6fedbaee39a38aef80a331e48e793d91cb29f6666aaf740a79fc270b43aa3d02d378790355ee1a1af83cc4c02a4ed057452e3dd4cd5aa7c08d4460c1c7e05b3f0024d6f9965451cdc4538147e", + "013d6bd27c929160d82241fe50f145641a29d3cc1d02ad167b74114a8708bea5232159bd030ddd60d4760eba0bb0ced76249ec69159e7a5e984280f5dac1c963799afdd676ffc33172901eab89bddf8cda29ca8c3c1499badb10f9fa7eeba0b0d6252955772151b4860824a041d7499392e6a1d889685bb27c34ea4fde2b81fb4e98f4799df10744ecd8b2d678d9773c8fd800787d684efad1c3c8c5c11d4d07d8f92dceddf363f6a2c0c7cae2dfc5bc5d8800b25838f4f5385f338b3148e0ef72fc1623d79c19dc114193532a3e434f370c8330783fbd10608b955b842b321655d65b2bb2a5150146eb6c73ffdd46da44bf1a7ff022d1e63a2cd91eb4c07a00d6f16802b4a6fe70bf4bf2851f8c83cf646d61f3", + "5fa27701b1e1a921418bf4253530a7184417ca939fa7a9eae87143198c39c11fd8b8c0678527763ccf2f7fc16041064cbb571a2e13127d9d74162d30976b6389d523e1fba1211e8a3d2c915db866b95266fca8f44b636706a52e738697df3e0de0fce1bd30cce872d748e9b4a45ec88e7236a053ff6ee7da464b6ac841ecff574310a2d91f1f8133db7c031a2e6822538a424219449a7cc0e23d298f02d81e3b07a2f51b353b89385371a777c7a1623a1854add547c9bab6" + }, + { /* i=7848 cDividendBits=1029 cDivisorBits=997 */ + "1401b99661b1a8b0d46ddf1147f9c0416d90de4829121da967f6e972550bb5668ae8ceb1cd936ed261f7b39a7672221938acc4ea0cf6ba9b52d892ff7e1539a1cbe1cb54fdb009d780f0d0ad41e40ca349c2f57d03204d76be003db77bd08b549bcdc619c0a00336dd48e2c4817baa8acb12b8a2abe537f8459e21e3c7da51541d", + "12a08993a7980bf3916fbf180290dfa7454d8d606253c7e223a9f7908e3c3f243b2cbefe9850ddccbbbf130d92e32f427869118afa8784f5b3781d955954b425446656a6c54213d1c0f9a020df7ef6cece4f6405f04441ace5a94c597254ec9dfacef5d0e3dd453f572338746a34ad3f62cb4b9de34074bd8eb99113b8", + "0112f600f9", + "06480f2ca3d2e33f7e775b4efbbdbabebcc77277a6ff4e310794c052be28a3083760be15f7a10b7703564b00caf3a3855312dfe4e6d73aeda71ff328e9794fffb2c37aec1790ec65804aa47f63b9acfddf0a13cde1a87824ffd28577f0f31a7702b5204ae4ef19e3e6af51432b2fafb1ed354e832b02d1eb7179652625" + }, + { /* i=7849 cDividendBits=929 cDivisorBits=148 */ + "a1ef24260025f5968e0fd9df48617393be0745d0c00449f6c712943d1b0d6d07dfec7065d8b36e6f922f50e4f4d0366764ca8bc7f548a9dc4b5854b412f61536c589875a09f4303231c2e2f5279008397b9e4092a68e8c0afcff4c9b1bbb7a8610a37ccc713f7a6c9cbb24d5bc8954989e5a3db4", + "a881e52f8436e6c4289814ededbe12ee987f", + "f6038649edd0655d60c2228cce4fd6e5f1fb71883d5e339073672825622fc5ef5300f7eddb0a3fa1664d5d3231f345f7da84aea0f4860e3fc9fd18fff3beeb1bc6c50a25f91e2490255f1a756a192e697f5474923e44eddb5b3bb8f9cec1179c8981", + "1ac154a12bb9a698ca2c08c4acd80e1f6eb5" + }, + { /* i=7850 cDividendBits=3481 cDivisorBits=3391 */ + "0194bc72c4f57a76f6f74662673c44e2074bc50a471cbd859c57ef738243ff4ee4e1b9098cbf9931486b5a9a1e2268c19c5a727e983b2886b1bd0f11e68c2275ab1ac8cd9785f0341601cb014cb6e7e6955555a159733580f763c301ec3d914d4e07d45996d1e2a0d09eb9c83a73fcd871acbf810c2fd93b6acb6e2ebfe0b422b85836823ed8df05035982cd939f0a6489b27f9156cd7e1f218b77dc8c8ff621a0da1ccfaa6786eeab4fb3564d46dbd12bf835a19baf74b3881daad80724e0a7cfb261adff70425aee94115b763c94909220de0cba620840b687b37d1aebf93eeb808fb052dc8c376ca9292d95564c6f2890ca31dac93950569f1a0c8b6303c1daed3272a111613cc9e0284facd48728d86aff84dfdc0587e3521f111978dc9702934f5a6879b17d468ac3bdb8f3f31c253d4bc7b1e53af1793540405f503dc3e2c83e7b9f9e98b6d4a691e7fc4862897a72fd7cd6a9c55e052003b1fdef423c1ea7dcf67cd09d21780baa0a9d027fcc9ff2eb5acc402a1eae1c60690216b4e855c8cf3fc6cda1323974b260df7ef20cd918f648cc5f706f47d5ab2eabad4e582e1e6c8b07ee481f3b5b40bd2396be4ef60e4aef", + "5a4afc3b857854599d88c14d1d6dafa35783bcf02a907ebf0a64047f4aba24f9e70d3a7e93186256a8409a96747a008a33fd8b1bd909824e718d3a0be1806ec97ad6605520b569b9aa427c8562b74e2efc8318b6044628b38447de7d6934e2a2c11cf26d64c840fe08ed0744b9fce8024b2ba857394d9e4b1e84751d04a327619103ce94bce21225eae8cd5109780045304b228e81c45593473855825ef4b885eb373493dab541cd35104ac6e081fb9a9caed680558d518289f6bbee711b3306cf9633982d15388f326be17962e2cdcb20d073ef795b5faf5d7c81b340018393b23f62336713f65e2c278ed63639890ebfb2a3bbca9130df6c44ee78301242a398b0afe5ec96ff6581b42e6532c09232f1ff6902134f8f971439de7312baf5bdb590e0add88328c5a6587330f0370113d10c2ae36366b686054e4b7cc36c4094033e3b85088340fd82c9755f0a37c614f5721dee1ea998725afbead4a3578900f44d4b3a88eb993a6bed3caff5fb8b7499bc03af9d6a711a94f13abc58d950852a574922de342a2a83bd46e474bf117c46a93d5bb816a74e10925bb795d4c118be0a6cc49a37274e", + "047b83c740f736e1d159df3a", + "58bcd5b87311fb6d06d551a60720210cd18f0c2df22f0b03084c00acf51e650f20cea05d71acdff303cdfcf73e495be6746ba5a9e9015c059d063556bf08e3a703731eddd17d55e6f8d14c7cdd7658a92819e9ccca9324b02ef26b002588e0ccd675892fa3d33c53a84f1f5671f4d2e07b9d19c43670936468c434b1e9355c6cd1f1256ca4cff395c65cb597da174d00a2c3e216d8ba625609022a42d799c0e61092f33d0a4a4d048d17be821643ff4d14158768b70e2acc557a5aa80a1a604d51185b2a5b29e29e2056c58a03b33799ad07931cf52a8aefd31e6da47684d86d4862a5e9af91e19818fb47cc6b4708eeb2f55734f93e0ddd840b0a991ee87e1bd2518c81f24f4e3976afb39dbe5e2a918135d1356bdeb25dc333d0e760f67588f41442e25d152663593927cd6f8ba72bcf178a9b2c42a1a22bef585055e57017da49192c387e120ded18f1634a09315ffb2edb9ca2071b61383a61790845b7334e3cbf6334c48f46bf54bb77530ea378c7f61de4572f7551896a24d5d4449e5ed8c89e1f9a015c099de84a849f39e97fccca5edf82f4f1f690fdc9761962412b1534339ca2347143" + }, + { /* i=7851 cDividendBits=2910 cDivisorBits=2614 */ + "90be69c62bcee24c347e76335eb94fe4b6bef3d4deb2ecd3c6c598af6c7a25b9f7acf6d47c1d5e4d4326e7cbb327fa8753d0531a3988bb4358a5d151916636f0ca018614a9ed7a2198e2c2f0829084c072f2bceb003630ae8bc38d6497b90ade2bc800a787f29b4c92e00b015e81131267d4336c95bb73e6a8016a274d12a0413d96876dde450d8ade58e6a9f34b2941881e9cc4a45d479df1dabd8d2885ac5a53c0938c6a2f063021c2aa266bbe775165bd91b0d18586e8b5b7113e91fc3f5959ac0d37cfecca6c7474b716ba108f0ebfa6372dd2c82088de6905319f5d1e0d9767a6cbf8781e884ba2721d70441b1378fd4284b6a5b8be0596c9ec15f512e20a337cf1d6c5ddccc988fb4cd292a1f06d042242052b48c3eb4ff71ee10834cf41765f08fc9e20311a3284d1703db425cc64da83db996ed602c71241e39e1d6deb3adc70eb04779a77c7f2bf2a581331777a26225445b15b131f7a624112f43ca64839209c0f86f03244e4", + "35b9c978bdc6d7560c7a891d52a869d2f2e058b3bb68d703a9c542e0de79c737226153ea4780e9ed5e42f30c1d4753970ed8801b7d01507723b4bc8aa5d649ac0cc66ce5dd1a433f292db8fd5f860266e54508256ba488a9c012fb8f8f622426a750f63283f1c4c95b52a5fe21adb028d3f12d11490147fbe11bf3fa4de3dae55ea959fd9d4da270945b9f229c3028a829e465be05f83fae8e95240a79ac2b34238860709c50ab440aa526b6a223a662a911906a73f9159585ca6d381228895d6a1471c01ac5a59af04a0dd1598180b96a1e4d58b374174d54ad665f6b88ee9caa74c548a41f20fe7a4840e2057dc81c1a8fe05ce413e6a19cd7823109eb01e2fa0a9800c3b89c37f883474c526a1fd6b19d1abb2b65b1f8f16743ee05a84f3363a79488c131d9e168fb78141278f427ef9876072d8249c33b2b7ea049ef4916a8abff6a3a0708", + "02b1b22308332aa77958769ea23ffe2cced9c944534582ce05412146f53da613f42c3145de", + "32a143041177c2344eadab38eeee33e8ed5d1f0483bd8a6bc28c84867f0ad0b1f0dc0906a175247f61ef69bef05e34402e9246d00aa00e14fc3b198ee2d387f10c52f65938b6eb89f2f3bedf8f582f171139fdc19d30716fc3f63cd96d92b1625626ab56cb16b12677bb9af68416b088076afffc7850ce927e23eaa8174c73b8672db77fdc3ed4bb0c400f35ac4e64f95adeb8a8595fca1d6ccc78cf1b25ff387660a309590367d391ef23f43c549d546f5e146f103237d73c6b4f5d623e3eafc836f50ea860f84cdd115200003d95820436c900e5e4c2f6284128426779eac189fffbe384d6e374196af07b14016d80df33e354ebe65a0c2e87e5aad7f72a7ff27d5d47270495e65b652841ed4b5fbb325f6bf1f26e66a8c77db55ff44dd3108ec39827dcd09f03738ca02eaf22c476af53d0de88b28fe135030df9343b9a2cd17676757303f4" + }, + { /* i=7852 cDividendBits=831 cDivisorBits=446 */ + "5b09c213998183ae1ff145d9c53db1580d58539407deb7a028ad7c7185ebb2acf6bbc5672285abfcbb7e9ac8b52720513c8b95c6439f3a4d461ae64419e9d09da5e196f018f915ce975f0e6f14266e1265375cd4955c6c405bbdfc21135987a15c9801dc4c5b1194", + "0248682d7c4468daecb8224ed51a1d3c0a379cf4e4f11dc7bed7a98ecd89ca27e910279e951d36be3f4d2a60a6513d7683167c0d60ab6fdd", + "27e11bda751d55386b6b7e4a4bb2769b4d4bfdc91046e5345721dc5d25a79cbc87baa47303b2a8657edc42b45916876850", + "0227bd19cf53db47f6a632633e174ea31a25e8104a10d81c1f26a8984e305fe11e87a524f693b92775a468dc591f1518c893d08e75cb5484" + }, + { /* i=7853 cDividendBits=2151 cDivisorBits=336 */ + "10ddbf64b982bf7e3ecf52ea07224e1bef71ea61f1240b447781becbe74504788167c2074542223f3b2efdb2fa552c94172910370dafa39c4a56c7cd35dfe856db29d81fef545b9e50e14324338b5a546ac7fea0204869db05f99592d36ba61d7452fedafc95cce184262662a87f9205a8af5060ac1ce5002baaac17b032fba9b39c390c1af2f9ce53440038166cf4de0e3805f196b5a99be75bb2375e073f55ddacc8ff870e5996a50134d9b4cb7ad36bbc28f64f5068f91662088b47fadd5a0384c273035851540ad29d4108c0b6653debb44109fc990e72acb04d2ea79b3c6cef4756caf84b9f6bb6d7bc0d451500de2fb3e27e0d6567cbfcabb44f3cce0be1cd471473f54bcae82c5f3d13", + "6cfde6ce28c77d871ac4184972ac61d5d118cacd7282c66c4cc3a6178413b6c72ebf142696adce41e0eb", + "279d87198b6a3cec039948661a0ea2119a55ef5d16d98b59405612686ff6ef2bde3a810b5a36d318ac6df2ddf539c0bb6520ce321179af2d86e511d165c03a4f8ff04925a490bf7a08b1b9650ae523e8c3d8ae9c1b121822826ee6b548761ce1c34c162fe1c56fb734fc7f77e1738c76cc66ffd01cf3ab798baaf3e6d1fbec765e64ca65128b52f933b363f0dc82084d99b66613b8572a39ce3a055e67afe2a24c4a68efc0cdb89b0e46fc1758f7a211002c22b96808c8ae22466399187ec3fa5165d869f798fb26320bd60d4ecd501990af42f932e13b099844567ff7c1ff6b7feab7", + "0cc27d42bcfaa6f98b157c9225a56b9fb14b17f386a0689aeba596e38880a87d169b2c9f255bb61ba716" + }, + { /* i=7854 cDividendBits=565 cDivisorBits=334 */ + "02de3a57e08aca9662aaf6a1198215f8945a43fdb00e72618ee72a81b496e3447821eabc4df5949a5a6c5ff53dabad5a029bb1bed8fa54105bba25138ecc2036df26baa090cc0f", + "3eca21c643f95d34ec6b397e5e930b5cd818b179bfc80db5a790b17a1c3d3092228d69e0cec4aca47ce9", + "0bb1871a2581fa8b69e5cc75109e526bbeaa226fa7dd39edfa6af4ffec", + "0d9883a6912c3254b5a645d3d6cdc21fe15de7119a2e6ddd7a31c3a53835a59922105593486a186d8e43" + }, + { /* i=7855 cDividendBits=1988 cDivisorBits=11 */ + "0cdd38393e9fc8c913fb9f35fe49d9985ed52fbe048d28196ef95a2b60ea20b710ce81421e7c17d11f164ca714f911e4d76541db44be1821e54f9b2e0e0edab2863aa82acb659876218a44224f73477760f22511e68b9d9629715d94339df8e6d760789b786a55a2bf3069ff0c07c40a00573e639efc9984ca467b08a4b61a8418ea71461766f71f1af9ceba48e9ef99a742cbb58dce2a1cc612b770168ea98fc96c27aaa963f71262b9a66b852468eaf3e7d90fbfe235a3ef916b78c60ac6e6bffb5218f09ee909ff6d3c21ac3ce57e7598db70cfb410ec3263659394d70015fed7f91d7bf194a0239f7255e033df620d4f6f8d1c9a85fae9", + "01a4", + "07d74bb79da3388e110e65eb45a95b2e8cb2b4430ef6f3debd8bcbaf2a014c044e82bef0399737f6ee607cbd9ca191008349e8c029e6751bf97c1a51b5ac680b4a8066807bf9a88284988b0d9943d3c9fbb349cb8535675df720870ec06049b146532eb1a87b53e46ac82d1a3cf88afec821ac1f76d95b229d6cc9c5e0bd03f8bebac8b34176d60454b58551d98c26c40e2d96fc122ac455ce1048ccda8c981d208ff12b11ea092fc72593c2c14e44d379d8e5d3f62d3b839e3680e5a70901c4b948ba92dbce92eb465af653ea33bf1500f9354c1352ef7ee6a2fc15b00e04edb626fe3ddb64ece063bb6562aaca48c44c612e0cde3c0d65", + "0135" + }, + { /* i=7856 cDividendBits=3295 cDivisorBits=1469 */ + "6d73e4732f4f08ee7fb23df1ce3b8dd0161b3c4020b1973348abdcbb455110f7b961c8454ebe8cf7f8cf6b236b93625fd37274412105f5e8c5c96e1e5508c3860e6827c5a399431497feb03a3a6df8b01b7235f20a3f9115bbafd555c4da35a4d52f18968ec1f7d3ec7d053f71e500db16ae82cd9f538279ed8d63797ef8f3e343022ea7e80714dbf67503d08466bc7c80a96cf0938dea4775e53efbbec3d417e18168525437e5e678ab3e8e32a591c9356417da663a163cbbff9f3c8e67973491cc757df9206777cb3ca8ad42481bcc327140ef56a7e989cd981268c3bae5b47ff5d7ef9651edfea6713c660c45be4f26238c11ce21437359451ac07fafe32e62c92de644fb8c86a0667b0764cb974fad0665796321a698be99cf3f1b5e0d7e46f2ef5355025b1d992c0652a47f383f78cad626ad84015dae44417c6dccf1488b56e6dfa0b157dd0a550e351105f44f61976fd2635d5aab91dbc4d214dd355384415e8ed64f209c8d84fb5df1c05d713565c0a469ba2865b5dcef8b85d94f83d559b0fbac9e1824764995bfe078833cdd63fac7ebe664db607a4dce", + "1c91e5904fb2fea3174f8ce51412d881b920905739e60e2b11c51462e0b35eb14022413dc8fa6efc7dd9d5d55deafe2f800061469d5bd54e5f6168179044b8f54f1117f4466c004e5f38e69626547d8bf67f331e88a2df82fea0203143c01997600bbf8684150baf81f252a6986b2d145f080b0196b99f996fc19700b6a9373c863699e8f84c1c614ebecd3bcac364f177c0f0132b63058276bbad6bc8e1c53c28c21b45489ed3489e6d8f07ba64633a354be90735bff836", + "03d4bf96863bb354a0bd117c0b9d54f424af073a63df52240fe0489a4d1969bcfca339969528e78c706edc789d177e7efdb37dd22caf2cbf65a7fdef07c2a73c15d739cfc0e2f9d6edc10ba9da950d1ea1f6eb7741e1937c9ceafa8272e1974316776f4d5e90ee49956db5d9e3c607141d7410aa02961b1a03f0cffbcf09310f0326330d1e23dbd00d0f6a9ba2a2cbc38fd285230b85c6daa94a7421f54b250ded0fd21a0ac01dda44783e15bf4816944bff3d37d803bb032a60f5b35a3b7b8402471414e9c375a803bcd58d26628698154df3993776b695bb98bfea4c9e315c742e8747d3", + "0cc5d9847dea916b55af5a967d52516aa40d6d53234747dc17186380e8a89e00e544356c59c3bf5046fb55e16bb730093165c2c8be504fbba33c875c94beb3d9f1789e4441fb81538e7c4b0a18e32dfc7347907ea8120c4c1044d3a5ffb861f66cae32ad67753262a9a0fc910b6d879893b26690541bfa2de347407e69bd661a08d7dfae0a2aeb15fd53579f4fc22500de20e1687105c4eec1ec01bc953da2bc9131cab4dc0da180f1d59f3472004e9193b89cb43cefbf4c" + }, + { /* i=7857 cDividendBits=3223 cDivisorBits=822 */ + "373cb0d7994e0dfd575e6c0786524778d286280f4750e59fe9e47f8e9f031667427a179435770cb2f0eef10a62538b8342e13dafa2e7449a41efb7f6cbdaa57b408eb10ac0b587f46c0c6be37835cb72df191275dcd5edcfc99d57a5f1f1a973b0c518d372f321eae6f62120282ad35cf9ca8242f49c2bfe6bc95018d9f2b898660c8fae5a52fba678ccc5d7f195e8d339a3b11994f3722ee97a6f95fb4d6e706eed070b36d81f3b591fcb07fbe92ea3e2ac2cec8609d6a7c9c2846c407199806b30943ca73330b88a36e2b145a9612a92b14c2b6c90724804b30d664c3bbabd9dacbbff52aef2d90030d1f701ef537a17559e8852dd40ba3ae159b2e84623697218abcfcb29c628b0d8342b32a70401b03cfd51534e088154a6e9e1924c8c5bfe499d8890f05b8477ce9212e67a630085e2c289c355d672d79e04cf6737dd7581ac3ed6add60c3ccf723c8424eafbc2c1ac8b447c1787afa1e990854420f7b76a1f0a2360ca821e06b54786f40a0f5f3694d3cb698817fb494727e86833136245136ffa576c69bb3c0ebbc0af420c23eab956", + "30e7b45f14aa7dc0c7c6e821133a27297db357a30c93c1c3302c7a4fb6d8db549982ca579fd77073fe26d92c206e045a6268bec5e9a47b1e40659be14bb07b41b1a25778d339a37df3646fd9100d97d7b3df0c360665689f7f7a0d518b707d5905468ba416307a", + "01212542a4a90d79fff509555a793ba0551fa3515107cd20e3c4ee7e014bd6e6e358796ae0ed90fbe414a495c5c236e3d9075ac083a5d426a712d05e591eb3a487a87ab4769474552b7df4e8b2f38b853002326716ef6ad564719f6a4c6caa65a90c8832e620f7595ef59b2187bca8835c6bac94d7cbc262d92000bce82a237e0a9aae66ed4f530b7d7f8af0dc4da75e498a420ae8016495f1c9c54b20f1d86353976e7b9c87d6369a89756e28ed1eddcaf5fbf93085f6e32d5223fc22edc0227ab1f9025c321976e79af6818bc2b06815adaaa497f07526cf0fa1f207c9456de55ea807f9d0b141ad8253e64ad55143b3411298f05d1f2a3dfe67719ff614091b073b82c7f4ab5bf1c19779d79cd16cff8974cc4cefd3b38fbb8e31ade811f4f8e68df218d42ed9edeeb3ab03", + "18266b43c3465991296aab36c3cc5414cbb8d7d00b680722d046bbffa23445c19692cd0843453c17d648db7e13936fd7441ca74cd528b001f0a59f974e05b247205ff8c5306f0d4364cddb346b6ff2ad538aa7f3ec31b0fe3183ab934b739793c1804713f8a9e8" + }, + { /* i=7858 cDividendBits=2883 cDivisorBits=1671 */ + "01b019c47da10bd1e78fa49873c14ff340c680296bee50698ce98332790e2cebf349a60b088b69785b59e2faf244f9d9b8b80efb5d0cf8d0de3fd2a24e94b6ec4dc3c595e37cce5ac5bc7a179fe8aa0a31bd45f567c7e50a1b1473ab1fcf0ec2652388c1dde52681fdb6a9e45cc1df3edd30522b8b88ef4c079f9c56e3ad387ed3d467e97cb490936a10cda75a31c0c9689240a675633c2cc430159aaddd0f87a0c186a2c036a9b15d4c796e355d92b048d421e92c5763bcd71254d858e9c1e67e0d5adfbee97b6dc4bfe379bc011aa43f6a19b47cb08d764adb4b9a3542b3e6a901370bbad740698f00df4a7b6872ee3bfc9f6d5e8448050709bb0239e9d54b8ff4658810027713e824c28f557c696950b762e27f2ab96756884595b3ebdbe42e21552d841217c831a825b18451320de1ca0764ce38b908840da19abd0bc1db7a4feae252356c799bb6fc650b3f610597c1ee46b88b8fa4f397fb4be4b29d01ac0f1df4732fa0c88f", + "77f3e0167d280ace49d966f2c50bc95955a78d9ae1b1e63f31ae1787bb9e662db7e39af6e0903830b1414febc7562264ea3b574367ecc2588e99b896497ca8dfeab649dd3dd8727e7e05a586992a8b93c136074edaea01de112df61496ea36eb48c960ae24cc797ed7fe6d35dab12df6a9194d394cf13050b49cb47ed42e3bf9af0406e277f5c2b5a539e716f8b192d23c3df48baa054b1a5ea182111598403e4ee719576ada4f4f8610eeecc3970afc6573ff9ba41c132a3d32d5dd2ba763b7abc60d26f4655f28316d3fea06951b3db5", + "039a2dbf20a178745669e68801a65d0724bfee9a361b9e4a51461dfba6f02aa29614c42ee16196ea813d7b38c175b226817d5ac291707019719ea78c4f54e6d6846bb19764724c6d99234fdb78dbbe9fdebcf372872ba0f924739da49ee66d9089473d2e4f990c47dce0a1336c73bc2c8f607ee15968d1d1c485a236abc6b4a6f30ce7df5385decbd26bbfc74d2439390756f066d71f8b01", + "7392a1730fb995c9bcb920fc28b7db7c308a7890ca9c27a683f642e35a6eb3b83caa8d788f4eabae87f5ae755a5dfe81b3f9047c04c0e3a15af823ee05a293305c0f5381274ca48cb2e1f5d2cf5fbb08dc053ebbf469579b8083a4cd9b3362a73d6da78d6b1ac5ceb45d4fbb64efd24617ec1ca6669bf7affdb2cdeb2be01bfb3239886b8b001a67f996ec95c4e023346edb1e9535cdf948a9aee8ff3b78783db4a9a5a4b56ab7fa687a73ea86b806ca9e02f1dae723e6b67c511dbe4e873a665a4ee1b4e0a044d0536f444239541943da" + }, + { /* i=7859 cDividendBits=1574 cDivisorBits=1053 */ + "12b9e8b1fc2da29c49a3c10db2e8160b258ca77aa3adde4118f194f9d4afeba6f0a9f314382f3edeba40003b7952e344f11ed144ccd60603e63521d5a022a0805981ee991114e110ef40198e92f4c21355ec7aae801b5bdf338dc1905c6abef03840cbef3bce6fb86b8242ac787e0c32362750eb77aadec550e822f4c50d892b417b4a33c648a4f683f3d8d97fcd38d40befc67fe4edd4d45d4787074d6b95f8f544ea0c085d879d15a0ce3f795b55bf231f33b0707ebcc5b5d2130be91fd56985555edb3d", + "0469158d9440dbbb17f4e931c3bfa0629a251a8ea78333db238b57817cfd46abd7b614c246e73da0526e342f989d06f77c0f7d572c8adba6082cfebd7aef94a874924de85563b18ed40ad62568d01593eb1d4dfb436d4c54e318695c3e0b5d1896d074f8aa68e6137bc79ab07c8a1b2a2e904b8ac6c9e87796e6790a5d95dc3237457c77", + "043eef432bdc06147fc56425d401e9cbfecd367a24b5714a4d94e55a3933bb1b31aa3ca8b7748d861dc961337d84be7686f091a571ec3ee042bc64c07b9e145f17c0", + "3f4b7af564b2b5322946802bc955aefa6bb52772ff30ca05b3fcd0f2bd86f1df39fc8d748adb34b50050d2e227e7205049fca1bf4288c0d730e5b4290712027a0825ae3e4a91d2a81f02093b6c0720c03aa82b12316bee62ffd2f04cf62c03fdfa76ed024af82eaa3631cad5b9f3d044dc063a82ad25ee7467303d80c3d1f026e9d0fd" + }, + { /* i=7860 cDividendBits=315 cDivisorBits=97 */ + "07da1ddb54707daf66e0b047905efa7ae594e06e6d497efa04560cfc9fd298a34a4f6fe3954992ed", + "01c213865b5a5856028aafefe0", + "047756d813e1972351718ff37d5a8d152ee319f07454a9a30608456b", + "0189c87ebb4fffbcb37318f04d" + }, + { /* i=7861 cDividendBits=3992 cDivisorBits=2540 */ + "1e2f77058fc60fa9a794d4fb396b38acb6658fc0d0d6e09367873900f49832dddcf5890df72380c88284a6c309d63613962f0b21d47c8dc5b61079e07c43c7d47e71ee6733f2e5c4853c5440d624d6776125794f0b3422cea91eeffd7b1eb4d8f678a004be9be081fff72e41050726f722471d7700962c9ac3856aa79b1d57a56a1a37cce3b26a0b5e9a5a179b2133efacf3fad8aa0bb6b4a0b7fddfebed7682851ca32a5633a256884ddfeba76a3352e995187fe856b27b4d173261853aceddbf1c50e7dec45eb52a71c5ef3d8667068dcbabb3b63f70c3a499fdbcabb571b4b168dbf0dc125a42cc26267d02fd94572c9e62c02771e1f17b991e1d2fbfde1d6fb34908969b8971b4349e1a13144c7ad3b9add973652ae84857c5fbb9e47ce91519b7024d06a367c356d47c166fc440853b8ec3866fbc55fb6ae4103542d8844ecc0928bdb15a3adbf0b7d3e80fd1c9e8cec8d4c1bcd332eee29d3f29783ca33f831bf70937e32986bdff17f4ded5fd7374f88f4c9bc063964aa96dc97383733962b4d971c32fb938fd1737dd1533c4b57aa29cc3bda68b7fcc51181ff07f3f7c27a02bb591a2f50ff01f9892981d60d36292531ef6f2c9569d1bc4f84972ae1461fcf46bcbabfdb176ce236a65152852e0824b7fb2d64cc42ed7172f09251b22b528387d2173fed77f94bc0dc3aa3313f0b1", + "08b79050dd3ac4a37ee3fd20a794fb9bef326f4731e855c62fa9e8ec2a9c2d5c03da4b29f86551bd40e20ca86609438a8296c2f1cd8da0ba895b3e95ac3dead5c69c8e173f3f3f42432c2fda65bf382a0021c0f9bece7c47bfec852c5d0d259e02e54453d4addae804bc3cc61b3afc4239f281b19f7fa699b9e9c366fa8e08dc16daf58e6c734e6296407a27dedda2ce6262bc9d43dbcb36ce04523127c0dc67ecf032194338da77107a95c484c21be180dfff5a18c4d766e9330ba33f98a2078c0a107a9bb45cf952ca303993c954323bacbbae0c234acb3d02e9b8c2058ebde0b627f14d7cb67f95f46de4e0768b443edaa215ad7ccceb659723924a91c7252accd40592bebede1f0d16ec00af3a21cbe2b6c56fdfac09692250af714b2ad746f7473136ca8993c834e3cc28e0dd6d011fca5eac4de4400db032bec3c7", + "03767a3ce7ee46adeb2e2698eef112b80f5425f690e0101a1d07c1c6781c44f26b17b65a78718d17570f9a841622ea23d5a49b69119a5fc4d829c3fafe3a5a59a453e510175e1447634d82f0143147febf35201db123b6bab2f896a94677d7d30b9b8c0cac2983ef43dbe0dd788389c0b087599657056983d7fb473a9d51c13738e58c0168cb2c7fc233159c368c9594c804295a174a258a2411483efe804209352612d12d4b01d05bb27a0716037fa6d9949cba2fec", + "07bf1045d4032f95edebcc21cf49255c5d102cef9e6c669f3a60a48bbc1465fe6f1079e08185a7cd923f6074d12644530c7eb9c35a44877be0a8e08676107724d83980408bf7e858d78d9dd7e51311f50a88a0798b6e83ff94501d808b7ec795fc50118ea40f2f2ad850f9808a960ec3893ae3f4d0690e11b7fc7c4211262935e3df710cf48e67e4c1500efa59419e2e388fab7c81cfaf48a64cae692635b7eb57d7160dbc548cf628c15fa3b66d55be767db77ccc57f3e969df66c75e6d471ea95d79410636156eecf7919a53a778754d79b8c921c70b22f329021868bcc3aada619c50769a4a5c7328d398a4237b36b4c8a06c4bdedb873b5edd2a0435e21407715bf46a5bfed38c955bd9b0a13807b3bd659e11afcbcefb319b39f55a18d68d18246663cde83c43f122c7b41ecfffa510aeaf46f48745cff6e2afec3d" + }, + { /* i=7862 cDividendBits=2294 cDivisorBits=535 */ + "3c214e268f5a70c805a991fa289edc01216e881d3937010791364168573655b6fdf9bcbfaad4b4845b81370368cf3d15ff371debe07e2385ead344d1b323788aa321ef6d985cb671a85b17dce3ff8aa9b6dfc3db206e9d009c778858e263bf35d43d7e0b547b1be86f8aa70ae22eb012c98409f0232482e5feadb11013c000710e441a242d016227e94dd141c4a5dd6b01602f1d194df4f2a5480364b2c0f06277cfa604c4f0bb3973975358a00ac820b24baa6b33b1c528fada01fd019102edcb5b3ab0ebebcda8068204b296d9be0f469da52929a43caa155a9405c686e33a914db6f7c86d5e409a383f07878b644de9051d62c9a18e5f908b97e93ee54a45b5d2551d764a73009bc24b02e61419663d971a77bdde11d268e888d1fdd9ec", + "18f90d1719a1137572961ada509430437325479eaeb4599bf0ea802b6594b322fbbaaba2a42e1c2800c7f7f2d8e849b7b725a4519b6cf129d7d339078743440cf370dd", + "026866c71627fc595ee6fa0f5c7c676138c09307ca6415b223c7825d41566c9f26b69e127b736b601d9f33e5a281622a8a27736f2210df463566421477d7cea121a92166c18a07d882fb98db7e90f0aae80459eab451950bc1736d72da84884a6c18453a90b643af1850b498e4a66591aa038d9b17a8e45e2211c803030c85e85ac6a7a128d6e267405f4cac8147e447dfca9f5cc0477189f17a62d680e7808043a37c11b65761d97e4c56c316b917ef3114685d3257e266ecfcd851cb88980f67487d7660f0cc2cd40068cd4cb36b32d57162c9eeff1ec8a2471eee79", + "08fe76cdc282b6be41b975a88344ad5cd33fdceb6d51200123118fa0b34294383d15d8e4133d624372862fb629d56375c88351038dd8316e066e04023fbca5db1a0b77" + }, + { /* i=7863 cDividendBits=3353 cDivisorBits=2431 */ + "c6caeb48204343a0b64ad6f201a692ee6c9a324d435aecb5fbe6c3459ccd3b51245738a9d954e94dc7cbe496d2d1029b39b32476029764c4a2e94962cd1a3a04e7c54b6aff40e758332df065d0658449d1cc86e437e6fbfbc1313cdda18aebf65349d94d628d1b9139eeb638fac065ffbf79e3ca6d4300f4893cc540f9b4dd5338f35a945a7cb7d7fd796e117b5207a023c60343777b08d2d872d7d6506125f564ceb77b8e413f0a58c344766751d12c922647099794e1277c3247d09df224babb0396638c8679ca37c632e1c2447ac0fcc1a0452ff7422b0ed9290f313b5b85a2edf50504c861e66dc62d5886e407fc12b80d9776eaeed7619ebfe4f8364eb1397e320843b2faa88e5ee3ffacf8a17d4a090092e5457d7c18e79bf79122de1ae8c29f0c08aefb91ef7316885f7c82bb1341b899b9ed5721ea493890e660920cdce430dc10325c62e3e21de7cef1c5e5e4f60e60e253117500c2c1341dd70d49add1f7d38bb8290d656d61f4566146ce6fd5b3e264fe8a490af94019640f2015025d1f4ea201ed6ffad3cae87495a205046559692fd14b32b15c71937d7233ede4ddf0", + "4c76f751c87c071f3aa500ea15f0e2185c0b572ebfb70c95f2bb0a1544d70d115b4b6eb8a0a8337a53b0ce2407a76db2e30842a351219e6cbca94ed6b57a5a0e74c23f84ce5cf3d913d38cf95c7e31bfbafd2b648a3b705d13039bad99686bbc489f77b053e4f5b2c9da4cabf3a7b6305d0054fd0b42047d3dd48d3d723a0cca6bd0d857bc50b4afeaef54aaf931412a9828e725ed14faa97f9135cc1256b15ee102c5c905d72b1bc28a802e61b52632ca3c50dd6d2721825b161fe6abf8a1e6bbdcb81953b274b4f1689563247613f3c029c8193af3d30763f4f6bc7a466662329b7def62c698b28e9b1cd1e3df9bc65682ac19c44c8110363824a9274f5047b960f74ae3a2b80a8a916e28a30144548aa38198b8f448a875463e5842c4fae8cdd0327cd3fd7213280ba9b3ef48b8ca", + "02998c3b7f420e2906a7e392d2457cbb68b72a966041a2866b05a8e422667ac6fa4e0f00cedf97a8ca5f961d650e4a01f0ab600c5ab7133f246149c2fe6ee24787fb84bd3455484a809783939519cc83cc3a8ae4cf0da844165fb1231568a3daa5beab51af3a4710b395db3dbb85abcf2b5ae2a1", + "4c54d872c9f607690733c6fabd94f9dd1fbfb0f8e4f8dcfa16a71e262be51bec7784aebdc35bde55a9ea8414e31d2bb148aab0f582be8016f16abfba7c558690fdd3ff5739a97263fd44a45ebb7a54d29e9494496ad8416e7b59ad99a1b3d8f61f6bd1664c7de353cb6d4cf36c44b8eecf97210f2d52bc7ab36711038d6d823f905ac27a6124bf03bd29730933479cfcef41395c5d530caf054509d6f315b9ef56cabb2cfe865e919e19c4d81ab46de308de4e926cde3a6b797554bfa64a2d8c753546282837f0544d004e1a0d51893d0f5aafedd2d34d1ce8ca596a2f30f2b9bfe8778732cca2e83ca23faeece22b46a5d3dc3db3f2c0413e83a66e3028ca54bb3aa76d7cda53b14b08c18252b6c14e4a6a0a9cdc36c3cd077d44d5facf68704f4b59620317fc3697b52edb590252e6" + }, + { /* i=7864 cDividendBits=389 cDivisorBits=328 */ + "0817058fc88a8d500d6fe1464b1189cdf5a1c471afec3b4aea3410972a05908c987f19e941590854116f565e6280e41d80", + "dc755b943c88b40e74820d3a7003abf5841bb0bc717d24e99e809b98175980fe454e7b2b2ce6b66103", + "0964e7a96c748e00", + "c3788fda4aef83891c6b68c94b330eea7f26b567a749adbe162df899aff28ecf08bb9a3add1db87380" + }, + { /* i=7865 cDividendBits=434 cDivisorBits=290 */ + "0143266522ca5cfdffa8a8307a5ef040408903277a6a991be3c7b7c3e6e579a3681735503631d1bc7fb9c69af63ffb98d51e127db75aaa", + "2321f2975fcf5cf895f0912feb49dc4615fddd5ac64f4f0e4466344fb12b2ec81c894999", + "0932b099b49c30464d4b4c1eda2eaa092b534e", + "0bdc928e0d770444f35690e9ff85fe102e41a6e0e952455cad131c648035ff998b53530c" + }, + { /* i=7866 cDividendBits=2645 cDivisorBits=1151 */ + "015c53f816ca1b711938b0950f3758f73b98c63d83154e7db3814277e6b5eba0a63abb1936177aa17e7ae7951aa84ee5f2d496a2cd97e0c8316bfcb9a9442c20d9a6d022f3a67ad6a075d7496b5353b9f3a1b66d18e973130ce4253860e6d5818610bf575059c86293be5c5ea9b38998b07a5f8924f03161421897ead71f28f94af2e7fd67a3062d30cb59ea999f67798673617e0a4d9693af7cc94969413e6f0276bf6a7b8d8dcd18ddeffaef663da7ed89236a3538a8c16406fcdd9fe2b02eecb4c62e2497b9b530d08203519916fbbe0b078ea2ec2472b974c6925543438dd1fbb8423fea7fb93e7b97d8e75f02aacaa243db3318f8bd6c9bacf57d0eb89072be850c66a32feb1d8a3e8fe0f2d2f3359149f35bc218a367010ef462834cb04c20a7aec325f2a3cd1b4ec8ea07a5bdb5acf9d15f18573c370ac955890d5e806155ec03dc975dd213de21", + "434850d06afb1a81af795d4579c3dc4972d31e85df7eb225e1817299691cdd1a8a0dc95f2408ec756444542888f01558fd9e3320494fb86f7dfe1c6ba6e9eaa47442016df08e9df616d39aa74de2a273a5c9a71a1be8d9111107d9132ac2a9b94ae3594e49edc7fff62ee0b274ab362d6f739075d1ca1a95d41e5402f7fc64d99d3d418e994a3b30d49091d4e689b77e", + "052d564a4488436847b015e390c2245e17727e17df8dcd2de198c9c5e2a68369426384cdad384e00e865b1a02f7bf9598e969bb61fa1755019f84d9a84a18f626157165271f90652cf273970683569602f014820cbd876987547c2e00e8d4e1ef44684f5b6481383a488cf9a83a21a3a60d0521c1dcefd9764c0465c478758255cf21ccc5e088e1dc6d38008c35adfbe30de9a3d6f6015ea21aed378542daf31a7f80152dbf49559e5325706e05cab616d7eb22432ba9ac7682ca9", + "3435d18089b58803b4896bc41ea2e30661ff55334b80a5ba87eb549e29be7e3f3cd616b8f34f1c93a81ea827044f3c6662147f2171b19f5b2cb4c273aabe00a43a1be9db9faa107205a15ecf48e98eafbbb39481be08d58d8c8249e443def02498645c64c9f50385401eda9016b09f800eb97f34df0bbd6121f3503c83a3d5353d2afb54437cba2ccce316d0787013f3" + }, + { /* i=7867 cDividendBits=3612 cDivisorBits=3359 */ + "02fc3eedbcb40d34dbc18f0cbdbd54480b9642d91dd1fbb6949013cc6de9d0c12c9bc46fc2031709a44656d3aead5c1e97ff96db3e83032c9733546ad8a76e9eac19451dcac2467ae35747b956c975b06e99f18a0f2afd268eeb181180455d0fee0980444c8bd5de034bb4526f1794e045b2f799bb77f90f465f2af7d5edf07f24ff9b24411cdd07c40e4fa1d9e3e8d688f2aadb951ee46ac0537348b45f59423cd7a71677e10a617dea4506a134d40e5fb5845ec00bbaa422c49239d61051378543daca8f746886731901d149eee9b07718e8349c89c4ce77cdcac9389d82def9b1f7c596309ce1de0477a1ddc1b1c6473b86f94e2d5faf220592faceebb3c1089b21b45aabad7b8ddae0c24e8e92560989bd4bb107d8810164bf8c335cdc18945f5bca2016ea7d7a0b0348ad59578df2c46d1542ff218c6818ca5b9952dad833fc0f791589c7b30bdc0708080846039dc1eee488e470b35622e079c52d74c8b0e6e2c76e31a692e91fb46c1b59a0f0c7c2f1e5ef6b1c4b14738c2a802b07d8f398414a46955a1f230cc9ed31ca6d17ffafdf671315ae0a1132492ea82abbb4ab10c66731b0ae9688843ddda25f05ee56f9eb99b91387cc647da9519e580d7c308acecf", + "04ae29f071e21ac693c865646313b293043ef9cb8d349b5fcbe6ba63665e598d694cf08dfb59ff9b773729a0e97d7aae8980044d6130c55b0fc3045e29822b8d05131689dc250fafc18b39a4869f13599645133a651cbd9829d6327dc64c2425fde92590eab8110eaca0fe2507b5acbb21e5f9fa7f4fc57c77835a6b0f5dcbf46f5bc95657a6db0305564d13a1b972a4ac6cef33ef578fb3d3b08fd8f8a4449cdcffff06fccf0647c2d932ff6e011b29e65267889a0dc095f9a4e4560ad48ef142317654122693392961c902afaf5d72b3829278c4afe295b2704ea83ce6fb25862d9d30a62ec0de8835a70925ba90c8294d0ac54b517548ce94b382253d2920592fce3e4fdf9ec4b93cac7cba8f5a8c3c3fce55cd7bec721a7d17c5f6e668611b9f3fcadb2dfbf43ead6a21d751805996446c1532b0031710ff6a21f2bc09d2900a132f5050f8610e7c42dcf7109afc145241e4bbd7450a3ae2accbabd3093f97eaac919eba737c6eb4e8e83b1cc99b6c438e2367134c186e4890ef63653f8f468bf9a7e9771e0bd4d33e1320b918366a02cb57a8fb1d5882eaf9286f46de5253309840", + "a349f97cbe090ad90c61820675a26275d6174d37d631195d9c720ac3e05bc869", + "d85a108e4684925acb0a700df3b0dec85af5a0e9dc51fe035637a14f8142971d9fcad4999631c52093197540a1bb2b1a6dcd793988a3acdc87c6d0d072ef94baae8ccc791ac37985d86de2f5ef7934b52ad93402fa253e64926ca866217cd7fdabcf6a2990956d5199d3fd2029a9269382ead309ccdedb8234447da366b6fd6c4931a6362382d517a32d7825effe5e6a4f48822f2c4f4bdec00cadd92d67598dc7e85f8d060ad9216d48b09bcdee6dc705f10e79fa8bfd35c915ab0f8659381bb34bc4143f01013e32a049e07304caca4ebc9812c80244f7902919954103681da80799855c75f92f99ee6e468b0ad5a64a041a380622012182e7fb343351b5c47b1d20dbd349e1af34f81a265b3f2bf8d238e0f88cc60a7dfceafb67a6f2e291a72287d0e6298df3fa464bfc3744361b89571e1f09961587e6ae8b0456ef00cd21e5b3633e2b09ef598092ca3e449759f598a2ab8cdb3a139b3b5ccf52a4a86386abb09e189ffa42a6c045f02e2ad80e95fbaa9584ad00356f3fb39f5e3590e02f219d9eec4c09f7d86f7e707d1aebedda3c1f78ddca23dded88737c11fc7bfbea5c8f" + }, + { /* i=7868 cDividendBits=545 cDivisorBits=65 */ + "015dd3b91bd45d005dd8d39fbec887e7ee4acf5dbc960386d73f8abe18a10fb84753f8f0ba31afc1ee45b6c12969bd5e216832c4500943e8625ef4fc0706e4ee06bc70c2e4", + "24921860b8561e87", + "0990d6d1170c5dbd6ae75658c96ba49647abc333de2cd58577017e56c4ff5888c6a4b0abf22d5c5dd34aae2464f26e3eda9ca837da078da27083b24b70", + "21e7e7248cf3dad4" + }, + { /* i=7869 cDividendBits=3510 cDivisorBits=1189 */ + "1528df6c932fbdbc4bdafd0aa6ba98d05ae511d58f8233a1092d41dcc6dff9a167f8e8f2ae790cc145a53b5d782a100be64126dcde6f28ef1aeffc9094ccf1d25d489f8f4ec3ca109f3a38ccb3fcada5e3b1393678bc9c265c50896f2a97105bd4e3ffc62cfb3f4c1bf4b1021efc501eae77b9010b1e624e56a37876692ef0f9cb0acde87db713ff1ecf92e16871c620c19fcc660b1adf2465cc711f08bc9ede5d92ebe4e81a8109f748f24e9ce3572407ae57586aa64fe2691dac1882fa1bb56c5fe56ca5a11a7189a68fa2777c87aa09bca104faf1cf5766bbf212a849621b11de67641cc1eec5cfd264444d460a7f0e63c24cb0ff1de936c42eeceb6e457e1bcaa68e979fc24e113cb35446cbd5e805156761c358a46350e125ff41cba02eaeee9350f5ff40597f6ab25fc9290176b2ad7ee09098d6f40092e405d7496cfe4e41c467004669bfc1da7ce89006e1283b90c25da64ca86946a4def1e09425e9ca292855a56d0f296e3103c4e4a9686c2ad6204f3337a61c012b373d96fc808d1a4434abb6b3095dcad5493d6290a9292acfddcb5f20092688fffb62ef11e0099122ac676b50f67bc3b31a6ad6ec591299e709376a9f0d", + "15aeff8d02b8b65e685c94bd4dc01bdc570fdce119a2f41d4c50f9adad06f3efc88c12f807248b269f558834096a51b5912c3db658e69c463d11049915765115176238fedb0aca07f0a8624a5fc107e3e8606fc66edccd418608b0caaa940324c3087af2ba52dfe235296f3368618948768a9acd6b62246ea936078983e16eb73a0324360ba41074c052a21a424ed772edfc9c14d3", + "f9d07e07b5dd5678855a87c114816cb3a778c89e44bef93a980d4691d8532fee6342310168df65e2163527724365d9ec2351312e0be5c2b836be246b10450f6c290b25539ca35d77257533e7f41a8c89cd9f5e422ec655c90228ee6f9696299280f4988cb1bf31d13e83eda9cea07c110d0a62c9f6d39fe895546ec30d9887c534c1a263a3d7b670be4a19ff7955b62e1044e45c2c708f97f43cbc0341ba28b8d5e3df5ae8ac65146eb70668308182236112879883c95843de239c8465b86cd60613d59a3e3b6bffe5b406c44ef456526171e242b215bbb85f0e24aeb1e5d0b543a92c80ceb7c7c7388ba735e3a74b78d9bcf7ab465f4c636f9e40c3c449d1eb7533f37a047baac77fd05e43df05a4271d2a1d27e4d4c4ee0d1f6b60f239e7b1a12e", + "0d5d849ba4bade24703354f8813e23c38dedae14d38863173cfcaadca507e0ff6397ac7699d95a1b9c41cfb09b1fdc18b1ee840d9916e4d60b91f5f1f397a6197c803b85239da779810908b97582e3acbbe47a400af73c51668cb25cb8b00c29d46fbf4cd4d95ce39bfed489473c566510978cedf2529286cc8307169ddde4e3a669690b1e5e94b33f6ba4d19c688efcb7df632e23" + }, + { /* i=7870 cDividendBits=745 cDivisorBits=743 */ + "01c5207a504de49b7d7239b1ff66f6f2901963912c8db8d06f939a1eb0ee563aef6495632d53bcc23eb23b9b405c5ac24795d2548d2f4f1e0b4e6b8a29e1ffccb331c7faa4ed164b986d22bb64ebf760b27981bbf591100c9b44b1795f55", + "2b2f651a26ace2586435932ad83bd20f448dc7519f0c8720f1ae27c91f0c143398bdfef80d91ee38ebc13d789a0e9d576c4bb916efea6223c6bef343cb401e2dbb9514a7a52bf907544d48df6544381c88107fe17dc88e807a70e8efa9", + "0a", + "1546874acb23c4098821f252f4a0bdf76bd9c7fc573b892622cc90d5b7dd70eb6d296d7ccc0974057caf348a57c89cdd5add19a7d02748a58af60983f17e9ee9ddf52c18795e914f221de2aaf74d2f9528dcbd26a73a7b967c486002bb" + }, + { /* i=7871 cDividendBits=76 cDivisorBits=57 */ + "09028ef0e32515d05bf5", + "012819787abc97cc", + "07ca30", + "0107b08d1c18edb5" + }, + { /* i=7872 cDividendBits=1324 cDivisorBits=840 */ + "0cdd9dfc5f141cc457f42be5f3b91ec6950ba6a36ace8a72b23b7041f4463f31352d39ed1dbad4a19de0b4498c0ed2b3e55147c8ea1871c545fe5880909f9853653f4dff6c0bb9e6828d20a0e29e6d2056818fe34c3ea6a4004921209f08c9b8706662cd314fe4f54918cb66d08e1e271156cfe08dde964b4cbf0ec7358e018d2b9e7e923c5453427d8be961258baf8ff89e73e46d290af06a5473c6b5417211c6181c673c66", + "4a49228cc86de354e88299df1921db759c287857118e8b3d7bd614dc3e33b6b6fc777938a65c3f7e18953648f563ecf2364ee5bc105ab3e03886fb316c1104ff36793d879e0f6b4365a0fc0d7d2a5d69487875739064f992e92ea5cd4ab888177c0ad3eac90790491a", + "2c5650e959830c5136e4ff0ceb569554a2b4609d1910edc93be1cc8de112348a55779099d90d8e800aebcb335836a3300a1781c358efa11b7b4f14713f", + "28f412f13de125e7bc7f46d7ab7fbf47978c711da15ca283fa2b41ff2fed7fbc6f42f6b30f07e4579088c598580e180c3f7e5dbf71e9bab64476ff629b6c874099695c345588dab7bace77cd630794f6f8626f0d60ed9b6ebccc30233e496e87a0c2db46f5d398c500" + }, + { /* i=7873 cDividendBits=3753 cDivisorBits=1417 */ + "01983d56eea709fb1bb097611299e22724f14e3d0a1fcbb638fbf59045a8b362b407ef38c0c932217f1cb94f37af548b01fd52af78a64301ee44cb6e3d6211f4f536f4513e7e9d899a61fa2545b45e8634a26deefe3781a75e80497c71470e89d387a02b3247da51750b1cddda9d9de7455570d5c4f2164821a287f16089dfe5e5213ddd0d9eb415bed681660d34b7c7752dc8510046d257eab04b6ef1fa5d31762f3b661c274e59d4b49460147847ab97e9fc3924bf6255e374dcbc114b3fe9d4da6596aaaa55f7ca1766b765e16a67db4627a10906b96d41ffb0493e47a8d03e342f2dc8683b5a05a7089148b258fe02fe2e4215fd47463e25888c9b9e3c05d548f80991c6a5dfc2eed04a0f98bc595dec7925d69d8aef923a2387642029a1c8d578eee053a3a323bb8f21c1fe7d6bab02b3f22e008360da8e86a503ff80de4c534a7364e80e927e1402d5e7febcd6f281c3f8de7dcb818cfad10482180a63ea286bb58bebd927d181ebc68c02eaccb8dc3e8df49a1ed9c0c20bf5c30f0343b26ed52c7e328c05dc488189d483120da5276d196bc068888a595c73fd4622199780ce7538f976dad264f3e3a8f6a42b25fcd808063d02d3e9f6c756119d7f9e7afa313b1f6a7f6aa9728a7664a3e857a2ab4225f4d3", + "0169e43e3f6bd10a8e7ba89802989006ae6e785444fcb42b92e3e73c03ae22ba40db5a33df6442aa029b921fae1557212145e8396c1bfda0515232d78e2d4048ad6c0c315f1c0c41c6b62168ec65ebb55039fd86d91472d9634c8646124c7f2cb53423a9bc00e195791aa08af9ffb9a0326686f4a81ba99abb357f8cba910588609fd9701bf4a449fe13840acb6376769e2b5f6d32d030063baf7fd90b0fac7f2ea89f453e2da0df6a8e4dd642dd9c8c227c", + "0120c94ce4413721ca67664179f5a9d611b7ab28df74f3569124a054d816ab4d7f719194edaa5f5c8511f416f837da82959eceb632980fa3ed15e7c7be8fe48631e97b08e96b52aac8017f2dad5f6f7d73c06339c0477f54c7dc7b8f4e9a5b65cc502c03570477f31ae748098c53e645c6ef1109b5a69a8028082404721dd5377a1d845b44a30f64f04d97daca6aa62bcaa1e771c2cfd7ca2350df2c5ad5a546e96d6a2c87293ff04d333f0ef541cfb3513ae4af9999dcde68a81c49cd68143e1be500bc7883a37f8c4475e1f01fbd05c4b7577ce873312512809ffd8cfadc03d38bd01fd302d8d0b9e0f7d24172e901270f173b8b24ddbb2f3e009f295e1d5ac78ca4304dec58dc287965d356e7d9ace2a5426f3f65f883c15804f0e49fe90ab466879ae8", + "013748229eec0457b89ad2b13bc4c84691ec729a7d6c76e30a2253dea9d583a865e6e9b3b01f9daf9af21f950968a4a21cf40d7805d9380ef82a77a3e078e045713633432c2768216729b5b297d8c78af0d31ef65f51e7620b88b52f48c857cd2dd59082a4175d4ac35d6ce176879c5d11b3fc71fb11ceda4438ccab41193cf33b9b6aa14c79226540a8ffa15c5ca7fbffbd8e8d2c035a1d07ab88627d0c007ff381d9c73abee590a6e2f7f73ed57f041c73" + }, + { /* i=7874 cDividendBits=2392 cDivisorBits=94 */ + "3bf77a2190e5f42ecf1564852c2611d296631f593cc2e356e49caacc300630b13f3b0ea1395b70cc7a293452bd9a39e1226a35c5f6bf7f4eb3201184d53397e89170fd8fbe817ead08ca064f5b6509d7245aa7a13152ab29acb59e85f41ff335f4d7dc7b9a63019a449ef2ad9ff2d89bb0fabeb12e1d6fdc0893c66baf924a2be365904970f4c5c95eeea706beccdbd8a485426775d5dd94f32eae7761b098c87e5d11ec0c345da7fe29a82e45a3aef08f62cacca447f6ea1897c25209294768cd7c2a84d708ba9f94d2df8123b90f3aace060928b0336d0382d6b06d2c61ae96eb0fbc4e69779393879b8bd4b98b87f8e6f08e9f9aa4735fc7329df8c34966d073bf374e06dc9a4614ae6fc6dbb6f3f704e89bbcbe229929f3d97282c4ee0ecede5b3d37ad3515ba6dfcb", + "1c66be3db5302051347d9766", + "021c84fb29353d0733ad282c4baf1d301d1192f846a976a008091cd75f005bc2f7848bf65eacf1eafdfb0e8cdffe91a3705f57f381d5a4dde88a984e26faa2e18070c98f1eb4894253b5f664e548fe22aa5ecde76e7083a7c546b1a1043d0d9e642b53ac7b574d0d3926a2c4046c15cf55dd1e96c1da1f092a84c862c184dd1b5feaf96c3f7e4aee2c540742ad3b32ce9d5e945698f84a6c2659198f15c1957ac4784f5a9854f77dee3a792e6ebac9817bda2682d132fd146505d781ecde2158c9a4ccd6b9ce58b273552c698c8f4c0f66320e4de255c8d2dd74d6bea3a74b0d46b4d94b4aea8d7d92b76f58a6bf880687cfc183aa2c42f3c36708e5be8f261869a1a07850a8248c7bdce85b771bd69b13730415b0b51a111be65f5b87861ae2", + "05a105ab330eac763a02dbbf" + }, + { /* i=7875 cDividendBits=2538 cDivisorBits=23 */ + "36d483dcc4f29534fd7e718d7dcb78c054ddc6dcd595c04972a6e87b2161424eeba194eb61ff15a9f54274919e2ab73e8b7fe6832f33a525a37591d62e4faa0360286031b4c6a6449beb580e2e87484047ca5cbeb666619db3b0fa5dbdb9c0b4c23b448412edeb550daecdad0b6cb2c7aeeff0b6f1f457cfbd9cf269632eead281c3468eb56c69bc217b636eb07be44fc3bdb12aa7cf741072da73f3e7b7a433784559a1767252203c47f651f68b7e1cd7b5ff10e670483f2e97f9083580e5cb20d54a5a27e3f9107302e9b126a28a3e96a3521a4c0e0bff87d28b6040de601cd1b0d3aa3e97469398c9c1eb2a6afc2a89b0cdbc564bc1e45554587a0a15ef47a69e79fcc6c37661ad4f155e1130a8fca1df6a87ae5d9f30eff77a8c3ebb20b04c8e854f1eaa6e7be93413aa999263c70efb06dc01659cd203b35fa5e0", + "186ced", + "023eaaa90f7ee7761eaccc39d596e0e21d4c83f910decc2989c0e0195f90c78ba2f13f8840e5191fae39e7cc7d5f98b8ad4f164985b27b73868806cb1798ede0d87c7a0f96b2dc9160da5b4ec47cf1c633907c7a53e808ac3591bee98f9f0778d3ea57a6484fcdf0be3b3ccca485fe7954602d5b1ae2dd44a9e3fa870fbac5f97fa9d9eea2f2b7133082ae5ecd803b26dbd5960c11a21d31c4893bd1cadf07d9b91167351aca767258f430fb9a5aa3cbb81a10a9a99380aef7d5eda7af77debe664ef81b74101d140b715aa56f5aacc4685da2203bca8d3ed80fe89adb8976d260ac31f727ab23c097f95406e4f9fb1dda4a44180c4910a2797c6440414b3d483a17f101953902cf1ccf15d9f4246d8b2ffd8aecc1f90a77a82d3ccae3f27dd678c0a4e441d0e3ff0d303066c4a507a82aeca4d7d8eb45bba32c46", + "122112" + }, + { /* i=7876 cDividendBits=390 cDivisorBits=92 */ + "1415454738d3460ef4482ada13c8da9ff8406aa1fbdf62a8ad2efaf86f0d4019ded4415b424f34f54d61a47ca75a07d4d5", + "01c71885e647700c3fdc7e37", + "0b4c0fe355f411785a1b66868b4d9a4a3c2b3a1d4740e80a5a0882e69664dd0cd4205405f3f0", + "012de8d48074e4f4ac704c45" + }, + { /* i=7877 cDividendBits=2139 cDivisorBits=594 */ + "031605e7da89902529ebd7a0d6328b85320124496bf2d3a918a4d2b6a4b7d9ecb9878e94c902210cecce1d99ecf2d6154afef3a1c795639d4787e4fec1b3d7ae06bcefa13d63eca4cb6e0fd5b00ea442815d174816190b4b3f965d8a64fc0423250073ae0a31cd3143df58370a1306b4f41f9ef430a39af32c556fcb525d6e42d6e6eec3e353927f7edec08489b92a89b4bcc87063a7b54490331d1905b970d79585e41dfba693511a6b32150de70e21af7616edd841055607b04e22c83ffa5d142890082c406cc958a12a21fe3b0931c0bf273110be76c23d09f0baac5316393b61d5742dc2774ad23359f6f641af265b3641607b3bad13cae7ae9898a25cd66dec533f62e2850d21d2242c", + "349b0a526d1249db72828881fa80539c241dc36b808e255556f95d604bba8828845e2a54ae24d47be7a792758eda494b22613779e26611d74a8c96655d7a4aa2cadbeba9b9fb8b90431b", + "0f0491666c385ab7ef3a6b93749ebf3338c6d01acef30c4fc987fd2954c880f76ebc9a287d56c84d59dcfba7119639e378161bff13adf541ea1484c85c7e06df5ac5177022cb8ed9514466b068cd814e646da2d110fefdffba17fe18b0cfb56754ff08853541d94be024f4599b0c1718a7d58fd9ca4d438262a3ce54d9c39c642f23fbeddf9f02f8825560d19f9f8f0b1562eba5c8762c1794ec90358576e58387aff43310cd7ab955357387870b02a77530ee03a30e1e3b942cfb80fdef5e1c93ee", + "214f4bfa95f9b9c2fbfaee21551f5e465dd9400a613a3b7b66f5686367ed2e61387f4e38eb51bcdeda2bf9b103280aa0108b9ad09ca007b6b22f7a80000e3ad2c0473c099a6d4a374012" + }, + { /* i=7878 cDividendBits=2009 cDivisorBits=458 */ + "017b90264369a85992bc7cefc6de6314fff885c94bbbe7e6b4c44faa2cf012046580679d644b896ad8ecac100db4320075759c7b38ad2cbd66ddc0b88efa0ff4d40065ce11c2fdc00c4113879886dd4159b3e8568a8e964b4b1c7649927320d954f116fdffcdcdea09f44fe0df87835566ecdf656545d0b09662e714fe80715c74ac4eb198a4257833a99f84fb2c27b000dc7f1c439f5b182c751216580d42b1be00d812b82c6f77dd935e18e82eb70c0cef67c5fea35ffa2cb89193554d0db869884e33bcfd0e6b7ea2d20adc998987e433660c48db94ecb990cd2965163efa45baeb535a9a6c7a774be69f40e9306ee1bf66c5a21008f212e42c91", + "4b20aff584bf049d784452bbce213a4ed396c1492f2e3fb5b05e251913bd13f7ac339758fa02a40e85f303a7afdd8ffd0a6175c30fb7ba1c10", + "050d5f974d9ae3efe05bfdfa654f2f830a333e1a8d03e9e7cc3a3c2e4f6468eb97b5576e3e95865105744a488d33b0d940064d04eb0c84d6571b320888783df2d467be708f1bbdb06b2dbfcc96bf0b81f0c3615cc349615fefe12a972542c1860a2598e5234288418ceea173287da87013afe3164eae25bf14a686cb537cf5b3360508cb64dcee5937f7d188a8c65b4669a0a85a3cd5f806b966bfbe489c7b0ab3c2ac17276008f9ff2403a9cfef99731e252f9db3cd3eb3c69fb175bd871374c11a26", + "33c87dd0c0020d1836189b156fe6c22fbe06e0efbc9dea858c6e7a40f565edde5b72ec97f4ff30b0156b18a7efdb0724d2373f1ebd7e5a6231" + }, + { /* i=7879 cDividendBits=1426 cDivisorBits=244 */ + "03d12805dd256c7f357bd976d1ab04c5cd92288c3fa7384aff7ae10df9e1332c47b5853bc9b6163e9bb95993522c6c29d751a41b6af63066601ff89023cab079c6918d7f252b0f38d3e53e77b96a4d509b138b6390654f682b66cc9c4be3c512d52d1c8ba8d2ef0441f44c090e3ea354bcb7e4997197514867ef40a09b47305aa3c90f24c255162b970cd7117f32d97bef15bf08e2a45e99ba4a3f104b77561d6ae2750710ae9ee7dd68eb443d5fd091a76db5", + "0debd56cd7e91173917a7c2b08393df50d718e31b30374bcefa9cb78cf3331", + "46311c0866466686f14f96273f13c579d3faa064c8a32a7b47e970648b59408bd00a9cccc359b65670f47019a99686c0582e5ab4e0d6d8bfb5c0ae9b841ebccc911ea943fe1cb7683bbd9ca02b469e3db5966a604031c88c76ab281b636f8452bed34d07f93ba2086cc6d344a9cb0ead992b7b259d0c22a529cb31e38cd099654865121188073e0b943de97707343c9757a18859", + "05f7b550d364eb39cf2ede44dbdc18ef8e7af3beca7aefc4872d49a59b99ac" + }, + { /* i=7880 cDividendBits=2526 cDivisorBits=286 */ + "20abce86ef0f9809a98b847063edbe5b7795ce25e26b3944db1e6da5bf9a273a9e98b3e53b09478727dc1d6cc3be51eba026414e5684a46de546df4ddf701633951ee2276101c82548735310bfe2e67f9d95a645f342d8fb5fea3327f4385daee3a913b803753d2ceb8827b70451eaebc909625c5d691b10a13285937be5cd8f72fd298f1f3009245ff96ba6917d15a17d1e2d9e00c236c32eae1bcb2646d957a24316626d65fee6405e61de830f51112f13b88c01df0c9d1972c0c46c68ad6f35ba1cd23703596f5e73141439c223708babd2a798e5521100d10878bf9e75fa9e7a1fa606724ef97790f184ea412b724fd9f776f6098724f4cbd34da117a51ff74943d1ee01992f0ae129b500af61b8cf94fd7f582e051ad9cd9641ca34fa019eece7afbe3fbc1c41a944b81a19f2f807b82c7e0ba068daae1c8f3e", + "0b763e547717d4ff65df781d1737d0e70a605f404defdd1d9f6a8945dff170591ca23a1d", + "02d9b4b0496ee6f045b8c8c64315b9c37ec6741cc0dac3ea437a0c65ce9880aa08f8b189a908d22b294c44de8b34b024cc673f463925782f476585675804c583400c6fc18abf25dcfbaa6efdeb825c4f68b6eb6cd616242a4f30a6417ac0d724615b739549fa2ab041f3b6476c291877221a8df556603546e90c87df34fae9a3df6bb488500508001273c58f32f54266e7cb81b97f1c081ef400b8ce730b30ef75e41e68b432320f742c1d60f9c6d6c2f55f87ba4684812c469f571962cc43622a2da0c9a38484672efaebdbadb4378dc6ecc41fb0148bcaa58dde6d13ca1fd994d9e87ec5d6223088d8948dce79e38088ecb167e0cc6410a0c8cabb5e5d857bfe7c597ac0bd4128791e912466b72c7a1fe44c30e118ee228c", + "07fa34ac2e81044e653bd8d4ba3801e5c6ce0fbb7ab5702037b8b26c0b0cca8fbab6ed62" + }, + { /* i=7881 cDividendBits=3576 cDivisorBits=2941 */ + "372fca606a46dea4174b5dfb63f2e50924f7b339d7d5a4f0d54bcf545edb00c89c1c44c12548c5fbd801f3f04a9cc6a737b14b46cf21869add4142587b006d90554d1b43c8666caa406af31e4ac3d319d5697387e955a989dd54e592ef145f585e52816b9b908f84c03c6049899bbe5dc6d8682a1ea8e230e15e645787709737d103e5b40aba1ad8e7f70bf0951ea3d2f89afba42a45b2bc6ac48318adeb2a9f9d7d1b1adf27de844bb0ee56db956ce2f180d52bfa0f678d4055cc278f728ee6134b92c90557462c246b0e7ece20b6fc7d70e5ace95464f5628c9df36cdf4cb35f713909b3296a93193241af8cf2d5e35d005a3fecaecebf7dd772212cbe61762158ae52309cd27f80ba4f4303b681bbd09b7708719476c68de305e0d2f3f5399fceb77b47e3634e5f0020095c4df87f7e616c463fbc4d59426299e922f34e5c6ab7d3101033975e1b1858f8e4f7d356cd97af32cd3980b048aad6aebc1313c8b8b9d47ec99c6c73df253ac8d7421d77f93028b1a9a03bb234d583498f80771e6216c5bec59f1bdc43c2636fd16c96571acea187436c7b459c3e926e348a609324a12416eb3f5c54f3318d69e1aacf44aeaad81fd4c511c1e1142436562545", + "070ffb04d1e495c38e1b637003c79600bef9dd4f609f55ea7b9e94bcb4d98c275c30b6a97fa5bf5d445a445444b8d6bd525f54797c007e6cac86f10159af79466925c8142ac102e24313666f76214099d670a4e21efe6d7026b1eb1503ed46a894d2e3bb7e9bda7ff9ce5c070df8e8291cd2d99245a19f39413ee52398af6fc492a0541b198559d89922b16eb674997579bff1e50fa367b9fe60e8cdc5705b9366e3e6be9535871699c6f59dbfb329cfabb73039ba9014bb31c7d83c5054bd035d8fe431fbcea43da479dfaddabc1744528d7f5de812ae69ab7162c23969d6ca7c46fcff0870d2805d02a69976877e89288d9fc1f0969e81519f4701f8b74994f2d670fde7944a1366e746f7c7eccb353459b438603bba5d680019d5ddc4c14ce5477fa0a0b621de17274965caae7fc8e546623df3337e5243d969cbe51a55eacfd8b5930545484f5d4b3a73d2da33fcf0906b792526dc29bd2bfc7e4d9ad833b66e21b8aa86c700d06f788f4854f5b0", + "07d06aa976a009ab71f689dd21dd71e0d18b9230a2844620c00f883a8f4389eac3839ddeb4214b8833e4856dfaefa1befc1c323ea0e93c03fa2d127970c703a4d10f6eb07dc477fb67671afc5c1a761d", + "01902c0a9cbd2b65db26a3f702bd4f1b48920d14e1fc90abf7ec93566eda993a929baabd71679dbf9db310c2395d2b02b72bfb6b1304dab2338b87e12f271ac661810fad037d81064d5cbb583c6166a8196341b23d840c7867821677d22fad02a9fee2d9398bc344a84a61b1738f7d581a561650b4c448a40fd019771051e4b21edf8bcc2e1e571fe91f21a1152d18d6b7e6cc4e310988a219792fbd477168c086c740848d5e7f8217e0a4233cf038d6a2be675a8aca0fa4f6e135839b382a9c1ceb5415ea0507bfec7ebc980f4c36fb97f5c457c4fd32a002502e933f1610273b8dec9591688c55609fdda782d4bee354e6fd0e95ceee48cbdfff711ba8d8a66a6bed819e24444743c061b1003122ebcdb96146e0d04131847511c1fc532a947333965ce507d423b6f1e6a009705f68b384da192775bc7f8e4125e8dcf4666299763794d76d42e7c2445d5883a95d86a02ca30b7857f6bfb25e979dea126e5e56e813ac11dd684488bcc665a7973055" + }, + { /* i=7882 cDividendBits=3287 cDivisorBits=180 */ + "7d2f824800beaa98de731b0b69fab754ccb6684239be729aaa82aeb8761f40987b80b69a0e425ab8eb8dc65e66ccdf939dcfcf42b7ab15e1ee629ea33fadab25e1be804e56b419d93d63af278e82ecddde8ec796e96890ddbccd02d387e0447949026047f4ea3a8da9ee4649f10224a3d6ac0fd470d113f50a31d741258be53e0a7ee2a2dd1d1d6f43d5bac1e4a5ff97315a9ad462cd79674db364ff22f107c75c3abdaff5bc65e1cc3e5ad0890f82f644df3f0070d9979d6fc6efd45de3d9f179c9c41690201cfa552b295146467d8ee31b12fc6b4b819917fad15e76a2bfbbef53504593b6b3ed8b6d383eaf634777b7538b3094ce6def4b704ed70fd63305a62184a6d7b9e96908c340ac48d8e950623f4f79166347cb5ff404e3830e812254de4f8c0e75d5f05c37e2229a4f17552637bee03d638d9d4969da7b539f503058f2235798e6467b291f282e68ec5a67dabb786adff955b9397b1a2e1ed9386090d12d61038de2f6242849df111befe6dbf859538b9af5a2a28bcdfc01152eee677d0ae25074cb2ad3e148f3093484d00e46383821268d23a425dd", + "09a20c8850afd57d81f4646035a0cf6abcacd0a1da165e", + "0cfed8488017691cf4bfaeb71a8be844ade1d03866f3fcb617d8306a6cb64afbabce1ad11156d51b6b77668b360e4c45df3d4c5f6a481252acc3750e7952897a90648beedadf14d41b70b3fa06e774e8f0f1f5238464a60f072f8d0e613aa81fea16f5c0da8e7445e8507045262d379fe1ca683ddb21989ab062af445065717688287c13e19b524bcc2d3bde25186a93cf50659882b48f562e9e8c32edeef1c6a5b232d7b11785e9e53ade5d663aa1194d9bf585c105b6a6962c66f1a7e341ce5569d77f98c898eff2b1f35618c8542e4947bb34e8625af2c3d9e3ba9731c4b465353f741bd74cd14be87cd80d073b6a2b5590390f1cafdf388b6a2bda466dcf4196d9a28347c6e38096978630dd6ad18212f3a150d9a9b202970a368525954d6d75d4f8a9b985ca975a839fc14668080f42783ec2b0f3cc449dbab8d8d5723270ed269da21ceb027738e75eb599b5088e377c8956a72adad5fd6f314c779e007f0e6aae37768bdb2f47950ceb10846745010ec54723bbab1f8a490000ffd68b49133d3758", + "040238ea4cf82f67badf0a4ba9e73e6e81c0a15778438d" + }, + { /* i=7883 cDividendBits=1851 cDivisorBits=1371 */ + "05dd687ab66be45acb1f40932448ec99b029928cfa9a005f3d53d5d1f294a3b4f65a0d58c40734b79aca6262125fc6eaf32ce5247ced36ee378bcdcf0832d9394cd32b862786b3186c09c626597dadac44aa7ef3ee30cbcb266913d7baceb8936285e72589d428e5936b326574b6372c4de341ed09d94a49e0851d24a867b74cb70dc4ca858a588f74c5617119ed9b5d07da1182e12af153dfa08e0c5274434d9c31736b57f9dea7de0d876feb37b4bfc0fc7f842bef3eb1c5cf619a2f135a95c596e1d8ded30e230e1801d13cad1acb9e102664946fbac489526db0bf3062eaf98e1e8604cb35aa", + "03043959c2a78ba3fffc4beafac00d431a525ca44597c2752eb1145766de29363c76881ed80d0f7b84d2c9db3b0ea092521517fcb3ba6fb5ac1eb977e410881541d2255587c6b3102729efb2d5f87b2a3f301ebc5699bd863819b9e4da165e9b9044eef3e4d0c86b670468b5c82092239cea058019e297809f63d033397715756aba728784a02a558e0d37d33de841848b927aabf9aef72977950450a05d12cf8b3439b85b1f6037e5821f3a", + "01f1bb595c7ed70ddfee9e80eab237cf6016675993d5da95ca8207882744332cf9ef9aa5c842865241309db3eb6b18c53588ad4cf8dae043060475362d", + "02cfaba9f85728d29d16c42f50caaeb61e19988ffe28020de8d8e522ccb3b06a115a4e55b69dbfdc4ec61d3de4d02d2be9b2f1754a24389bfff1c59238ef9b14a63a0da09c80f443dadfb1bef3fc86371decdbe2d0b0946a09f164b710f116befa0b15704b46b02d177376d97153033ebdf1b145815927b41dcc785e922acd3817e02c8a61c61773c3aeba461a3f608c549b5f9c3846006e31733b2552a8b9b2fb5d3c6f57a393f80cd37c78" + }, + { /* i=7884 cDividendBits=1487 cDivisorBits=802 */ + "043a83d79b3f9d96526e0e6ca7d960b652d7695539b4c6ea68051592a7b3d2ee77d2391b474fc1813783fd092a474faede8e9ad7c3f81f44789e368e87bd1521427fea0c20d2d6265168959c6cdd997f93754474eb55d59232cba7e771e307a85dc3f40f20322a96de1b6305797801ada8044b13a41aa161685548aff7a5360e6c92c02c4d2e9aaadc8bc62bd4320688953be7192ed2144edbc9f52b86ab45d2a5ce348fb8982b51925fdbd83262163896f54dd6bb7c4a077c6c", + "030b062574557eef6f51a5fd9851a5b0a8b38c61b5e69fa3d5d8d28f130a89e15d524b1a4717aa3a5f3e4db7911070456df9ac2449ae644ba4e01f0aaa2cb57ff97a3759b89ab0e1733102f96e0b19265262cdc83a197b141a458f07ce8e92316cad7e53af", + "0163bb6a87b9c6bafbb97bca0a8390718320685dbb92236e498ada75ed1be72dec450700f98948be4a103db38265ead9ec3a9880df3a83acd7c015bac4bc3bbfa35d92c0f4c8efc4b73b47cb88928d5bba45ff884e5f", + "02f40aea365014d68e2b407ddd010e31d2bdca7f9fd1efa510d194f495c8d7af584c509031d687582ee26eb062ea621f8fe116ec165bbb59295372409832d14a0bbf2f0ab6abb717060d2bef1e716e5ebb574f9d11cbc8025dc63e2ad2a9eb92a8a4af1c7b" + }, + { /* i=7885 cDividendBits=2538 cDivisorBits=1391 */ + "01e14eb06a36a38359c9109a29a73f926282174d469ba441aaa704d5862e7bf67790dc67e59d309de6087e3847e7c89b52323b7d691129f402a2b65098534377c85938b576b868725702f8b4e668ea575ffc4c75cda7e8e432ba40d9b318ca5c05d981f9434b2a4e0a1d030294fc1307c7c993c6afcff7f807dc3ba8b0f1bfc2d850a907caa58ff986a40666836024b4ab38268bad991d9274f182aab10b864a3f11320cce0ccebdb59ac3b733d45dd49cb314dae2f23cd513bb78a7eb78f561f4e76e094037b376c145f5bf82553ab77835e1496f9d9ce894078c83f76ad1331ef191c9cb2cfddb1ba4d26db366bd50b3692254c318db96715992e8d9a2155c31b96ac8ae1bffc55508889726aee19b04d1d6c1c480306ca93f8a77bb065808f628917d135e690d72a9101559ba9883a9b76280c8f24d7b0c0b3372f705", + "2a89f03ec85533e601178d6f4e4bae64b2d6f8d6c93518037d013abe528ba9292069d1a13328c9ae9c77a54043d617e45b74b600d39f96001c32311569d35725f2449b0b5d9302d14446f086e19f786b473057a38deb6522d97ff6370a9a586d8f7d54346ab39a2b60fc4ac14b85ab48416803b2b8155173800d3724b1981e59c61652ab116b31f00fe48a57c5c6da0c895614be5f140e8f60c4f71e9a12e3922b086758c211088df8f2b4ca819a", + "0b5085f69a2fa4e618f8a166aee13cd04b2f75aae97bce1cdb497b17827a04d02ce1d60ad72dce6b642341803d55a27c4d834d35a6c054daa81fd09804537ef4c36fbfdbc1bc31775f2248fb4cadfe8dc924c57ace93ddf8c3d752be5811991eb9a64ecede64c6361ce3941335119cb9b317fbf73d3e02af76caaf557a482a07e73f6ec0dd43d2e3ba7a77e4aaa5c178", + "1e4958908f81f8ff466c2113f6a602a35325000a28f33a22bd0a085ee02aa56ff17dd460661a3b9fd6c9e8d3bc788f4d4d80d393755394c5f414b4afb01c45f54740b619eff13f546c232d3b7c785972968712e04fa683b23a408f934cdf7a444d17bddfe1373e09c53e9e43a6b7bd344332e020c27da2c0f0b8ff0e688420f126c2b268d8391994b85d42af0f6d2397662cd37b3e94f3ed404a6cd749cd0ec04433be8f1a43d3c45c3bfc8f1cd5" + }, + { /* i=7886 cDividendBits=1747 cDivisorBits=330 */ + "06b4e1be40015572f7d183e3b9722e251e96ff269c1d62f8f723e8a73bacb54104f07df76644e33bafd6c9c8e2a15798ffe75fa3c505b7a42de2faec9db60e25e7bc98deaf3ab60ce6a5a8470718cfcae2597c22c912ad86f4c7b5e1fce35a31b2947226e3f6ba76ed14150a1db25fa0d44e655081604e43ff1420cd79a542ce0b5914979ab66aefe3984ffa2777272f61713c3254e31538e42044097a0ffe36b6d95f9e0f67e600fca022e44800d103e979254e50c8a56a86b7824b5e98914e03ccdd9216fbee2d363602a8df29fed9cac4aa347341ac6e747289", + "01e3a5abd263efe13070f8707ec8efcceb88a72ffb6f2cd4368e09260320cdf18903e063d742f53751d7", + "038cc3e9c1c94f9b93d37e832cecb03cb498f6d8c75b6051a5eb82cd657454c372c14e97034ec03e853a6a89b067de541e602ede3e6d05802f0f85ed232e6ecac99893acecd5cc4e2940cc88486661517a629b7bc9cde6e0e3a4abb326fb4d6ed29a3ec101139be2c7c472dc4fbd90867aa885dd0cbb7915704df0d7d5c187a8d5993755fe15ded8b5f0874bdb918f940cf6d0def27563da5bf9f2672b27889cb1e8c1e1d23cf762b70365076842b78ba0fb", + "7cf2aa385f2b6f67037bb164403063b26d8a87ffa19bf8b7ff68b5819ae69beb544bfc37cb4d53d4bc" + }, + { /* i=7887 cDividendBits=1464 cDivisorBits=839 */ + "8ac83aa381122ae09915ba5eb3e7999092b6bea401b72d9af22f63f3cfbab4c74fe538abd9272f6ddcef8f7045190c06071e4934fb025b141161fc098c13db7080b4327143a6710bc1aca5809736dce0818d1c4f364a9f5ac9d8d35d76ec5e6b33f5b43b6647879c10a37e6a39ce5c8e56a81838ce4a0f7af2c8735d576675be1920b2e9d7eda82e6387b516b6ab8f38061c2c5ad964e9ef6de16fdf2eb4743e7ec71c036f2fa018b6e742429dcfc130c711d13baadf2f", + "41a422a176e9a34c3aec72de62ac10c6c28e4bb8b717130b194c781fd13afe12dffba8b12c8e398dffb610fb596e3f048bd2b77561f1b90fdb00ea504dc35798c3036a0e9129e6013eb3d3472b30a9e3c944c6ec2900671374433ce931477fb35815c9ab7b9b63b5ae", + "021d3fd2d6f75b3e6ec8d8d2c2e20433beba68925589fdb7555fa3e87fb21613ba32508317c86bf3906eff10d8e770e72cf792e9bc97def9f349d6a28157285885212dbbe88affc40387273fd8c7aa", + "24a64d212a16c4363fbf70c899aa69aced6bd34de68725ef8ccf527ec3dc25e9b422076f079ee3f67b44a357745a742a0b99497c379e1b8f2e8885af70f422cffaa32ba5a4da1111b05c7c144b2fe4cc27b6828a399ad642a3f4e216f5eb33fe9a3efc06986c69f7a3" + }, + { /* i=7888 cDividendBits=1632 cDivisorBits=238 */ + "c7561b0d1cec88d42ab64c91b2716e643f25ef5bf83decb4ce904e9214af983009e83321a834a6aab0c42758b0f74b5fdf387ab5005a907d88096db2a86d6a0bf05f7db6ffd6b43e1da766923841043742fdbdee549d277d8ecc6dc8615689c88c85848946e0465d274d0901cbc328fcaa15c57b240b8d54f627550587c819ecb789db8e3d26599dd0d2be8075cb504c44da04af456737d28df25a6a3d5ebdadefc606173860ace048b0a10958c8e65a26ccf1bcfafdb299a6ce237de8ca21f35ac27e95bb2f6c5e8a8433db", + "1e10dca21f2c710a1483e5ebdb105e19444fba86d82b9eaeed03e1428bef", + "06a146ed6a4a22d7ccda4332c8b6c45571a859cbcf947ea592997766b653d7fd9fb0020280ea43e931037f4c2d6d3873cc339c672920d009a05019c6d5a91b990d5842b22501524380fe852fd88273c28ec2353b6738af792b077ef1d42ec3e3d87a5232c6107af1278ac0c4e490b036c926c335031c3f58ede52cfd53f3caa712dd4032cc762f3c75ffefdd7c536ecfcf9d7e80e5c9c839dd76491464d53516e3f640bc8660f375c9112c5aaa9fc0", + "1a6ca3f8db5955ecf6fb29e5d8bd8e2da88e8710ad2214a1591650fbcf9b" + }, + { /* i=7889 cDividendBits=3440 cDivisorBits=2996 */ + "5c57a05ae7a4aae0c00058761e3efdbb044f88484c12773ba6418f8201e2d344cb619a64836983ceafa391fa30cc8f7ec140e848053272cc2dd1e674ca19aca5dbbe88eaf5ca453fa9571b5255ddb6fa7cf96288ed641ad182ef6df0b125fbfc41657d028888b232c95f766d0909a877d2d481f0aac1b257424c48300e0e11bfe6b24bf56808c85ce292b2bb01556ab2553eb87d7abef536f6c23ba1699db41424a8b2b6b062dac0795fd7ef9f60c25fd5f24e648c5d1934d21e8f39defc86e2db3a9efa8348baafd373edae460658c166eb16231309969ccc73567ff8a274af1c18572dacb94ec49300a48f6e4a35aac172fd3d6d5a2b633e2353d68829dfe1c1382149fcbd2584262988725f83f0d0624876bc7102ed259c1e2f59380b43cd0f6b27da20c914989c0e21469320df5b46131557d3c8ad4b991fb1ec7b6625fde99509547c0d4c365ef4e1bec8e3669670ab215f335eee5b9ecaa4e0e83597c64bed22ff416367a76783f62a8e465375abcf4a74e75d2717b59a4acd22d8104cef88b2456ee17d88a739f2e0d75324e2e82f92a9adc1a5e456012c5a8f717c314dc6fefa8aa44dc0f696729f027e", + "0f86c7557c276218dae0eb6c1605373a2dbafb00632e9db5f2341aef5b9aaba79c58ee41d0f7074f92ed116c8c82f026857a8a25362c6f7736fc312b026cac1f911fe4a245d16dd0bbe07aaef87e8042308c56071381c861dd833b746ede788c68014a0ec5e71f2ad3574e71aca3546e202716a9c40ba51cf8c5341ce938a02646e994dd08224a19775bb82a098e77c6a833bc74a0d79f9982fca762c90ea10af8ef7b9564cd73fd47ddff6a90eb1b3d1a8083a75e44d1d78a3e3f3ed6e57a407f30693dc82829b609e953495449da0f14189c6fef8aebe5921dd525dbe87e547374e440c0d60c09148880083c9dffbfc7721e952605dc7a3f6da79a9fc883c73fae9b063f02d9ba924896c54831b89a355d562faead1ab569ea86dfa8afceb282b47f6e5cf05b0c6a4311687876b4db38f2f1c2b9eed24bf62fcbf5a9620aa1d93997682c1b9bb49b2ef812fccee2709ca4cf402231060feeae3f524eb86b30ed9b561b65b294382bc86630d49f711784bebd7d333cc5", + "05f28944033554a6b67444270e3a4547b9b96fe9c4a59e9e09166c7fbc57d3d70917bb9010f989d2f58d62e4390fa9bacac13c683292ba48", + "05f34e31d4ab7a92e54f243e753b05fe9a2914801b4505cba0e775354168fbb4f66f90bcdb29a1fdb96717cb0b9a6b874c810f160755cbd68f68e4cdc3431c4de833713e34ae8ed74fd88d5789394e040d9ad5772b558b379f731e33b468a024b202f859e1abe2f628a53edf0ce9cfb021ccfbca3f21fbce183522b47f444ba9df342de4f1ad547552031f22911698c98a715e78a21ca4952d84d244ae27f852f83323151866093a4cb176e9a24ce5b39501e9bba82a4e0a87c5d119b64a67196f856112d2816ca3b4aabe734efdf8956a0a2778461df8da204b2e7a9a93a593837ba693dcfd87aa8754a356505b84f969219be1edd27a3ee4ea3965be2ee34fd6cd6414d6f8c4bde47354b39391b12051d309c2a96201c9a8f59b58f0a9cfce68e0b555bb34dde4701b0e51131f161dd1b12e04666660822722a94206fc6eee734342c3f88acd67993944d97d0cab092c7e7f195caa1addffd5e555f8293d3554ebc5e8f8fc274d259acd8f1344c051bc5f34dfb4c916" + }, + { /* i=7890 cDividendBits=57 cDivisorBits=20 */ + "01f0dc65419ae32e", + "0a4284", + "306d84da7a", + "02c846" + }, + { /* i=7891 cDividendBits=555 cDivisorBits=294 */ + "055a2c7f67fad13cccf4b49f754a210f4656d9f02b9356c38d01c34d08d9f698c3c416def551db513e243d62e0f1f32f5398b28b265b1f3149514753d6912458829f4b04a68c", + "131d2a8c22f70a4a851f7e6480d7bdd759b301bbda2c7409b7f2feb40f93ad2106e1a5b46a", + "47af3fbf38fba6ad3436aeb6a2785b95e7bcad28854619b1f72705b0a821d6ccaf", + "03ada6b02de75106169f2021c4f011e15f354a3454c920b36827de279d0efd30c4845dda16" + }, + { /* i=7892 cDividendBits=2970 cDivisorBits=2100 */ + "01595f088f429d12e0107228aabad10981103d95efc74b740a1347850ffa9daa7c397d6114edaea3a04902ea02fbc3f37beeba990e1feb6d4ab4cafa992867681e954cd62c9d92ce4aaabcc25d029661662ed637df3a955bb7380a27131d4a17ba73c2514e19df09d520ee1567cebdc315de6c330484bb30ad6a1b076e16e16fa96e9685c615fd2d960a49e9eb814b06149833d18b1dcfc39ca73dad9c9204f5e0c948c78f880054bcc6ab336ba9d040c26bd072ced6de827607545d5d05448077a213b955b69f162e8cf9fbbfd7b56e17860566fc2ce7afa62094453e92bd320dc6e5d599864d7ae7d6639c6f3d5e9a0cb2155b8d80c1677c6544eff43ec8c13c1e10d909e307370852a00c260b06dcfd3ddf7b4784602665c529aaa3aaed91e5b154f80a15098992da2c014f5d9047110c3c7a4f915a4bc68fb2cf1b83d60036961d85f0741bbc6df07cbc30637f6361b0d34f84f2d3a846a812f64819d41909bfae4cf9c12804d84787706c28639149dc26a8", + "470ebdb48955c5eb9f9b8a1c213c053c34b02c2289c2fcda19a34062dcfec202776c6817a91561c2012264c65bb09aa5ad21b3f757e9bb2f4561c03479f74a5781c40584011b46318311665055b691a3cc2e36b15cfcebdfee6de0097aed9c8568327300313c11b325cc0afae2d3993e0518a8fc375e2b4e1037a81e4b95be7410b6613263d81743c9106afa6e57995dc0e4051ddbed33c55a4b6510a83e459d265922624345e5de9714fa94582a43b7cf1e0d7c4cc9a11d9ef6f1e7dabc6069fe0b4d9186b883ccbac10986f8bd94856d35709a6fed570f8c85024dd70bf206ed24e01e0a719dfa7c14b5796ff7e2a31d0041c9122020deb80a37c2145da115cebd52614eea", + "04dc45e5a0da9d389e0c5793f1471186bfb30a5a8c26e25c06d67dac402e10f7990871d2c4e7e714083e285bf516abba02e919fdfd191fe5955de537cd9d6cad47c9fc209db829f8ff9e1e9a01f54c81ed31bd2a02303e3bd8d291fb4730eeef1b118268ef7fd36c01a7d6bccc33", + "0e71795be147d146e5a8783339b3df763c24fc86bdcee8e621141dc576c4e7849758675fd1943f098f9cea265af9155803e857d96f8beada05cd5511c996172baacc938aaf3f6719c7bf0053488d406e1823d49aca242b1d7f5329c1c3d00758afe98eada16cd81d3d0184af4ea0b10f17c59f8e11b2d35cbd291ea58b5c216ce8db8079788597b2307d71d6d79d20ccd0e0aa9fa837a0809b4129df433098ea5a919e595a7ab73649ff764361a18edace6054b45fdcd6ab624cab44f8ebde01df3cd3dfd583ee1c83396dbf7ab25ffb663f95f1dbf5defe49dc4c41e084acccbd6d90ad0f866d579297b9a93b92a966cc971f9dc4ba00d677b7d328299496aa1a20c5bef60a" + }, + { /* i=7893 cDividendBits=3319 cDivisorBits=2526 */ + "0ed4989292cc7fdb27b7a7d7fb311dc75e417712857e9140106924ab626cc9114f48a98f457bc8fc086a9e46658774ca7016188bf1328d7e36900dcbf8cc8d91b0cca2f3f9d89e4380bef7979a7d513272d7e2c1857c7da5b9b62495c3c24ef845ccd087ab8aa0f2e94a92d7cc4864ce0269f324aead0e6600b2bc9768af62356435b2d0fcca28e5ca504df29200ad4659450e0f903d35bf78998335d40eb1183e029658c1b42c9d5785fe84d034195abbca8029196d613c12dc4dd3d01cce4d14b2fae501c91819aecbe5ec026f251e8faefb698ad7c55e4ffb38ae9387bc5078fe2be5a73ca2dda9a847ab0344700fa8a5beaf951a98688cf784e0cf436691dddb423c56385d4f92f391419f25060b222d690edf9265772d6022dee160ba8b717de6e97458a57daf829efe8ea2a65facf3662d2f9fa2c297cf6e4537f0f0c88c276dfd9cf9e0aaaadca0ad7b82cd4acf1af85288d566c77561597c3afd39fa16e50c8d4f376427b887e97b056abc6673b45e735fdf89601f4b46bd3d96331cf036ac4b2eda7232f3c0d583c929377ed18f3e8aa1f03e0bd946fcc2078f53", + "2a858b70c044cfe18890a5037e1142864abfe49622f99fee45160888649ab7188f3efe1171d033d33915f6481940766cf9e48f13cde471850873ec7d59f79d4dda164a85611f0820171262e40f56e26dcb0aed47218f117e65b90acacd4ce44eca1f4abbcc6659388a66eedaf5f17d7c23c5a0a1d1cc25e886332b71838244c762a2b2c0d13ea29383830650965cfedb6c8a5cf766c9981b3aa6726388e2c80c15efcdbdf8774136a14058cb8df51205e0edaaced1a09f1f0800be729002ca6499931304d7278465614907d9f6327e029ddf65a0ded8d3b26beb805e4b24b7744a8aa4a22bb68c76382e49648a002144b7492717409c845b8e2cd86da3dc426eea96d976893fb2a9bfec5e7421ec8264b4a25dd74d1317dcdf6ea15368249f57a5456a8d222936c2cda5be9a8016cdda598c09507332d2560a984e9e", + "5949424f5e2dd84711ff377b3477792abdc096254e0bd9ef9fea6feb2d245daeab50276dac7620e8503d5b289bbb0ae4fdf1e4040b45590255467c7bc921fc465ee5aa08df92472c137fb8b44bb26a81130f4b902f535cf0b3043309fc941e91fc5708", + "1e2e55bc667da810eb63e008dc68aa36c8b3f34bf7d34da7370beaf46f3ad2186da7c217763c3264d6eb4b057d657b7ae6229bbe5ca10b4ee81f536161b9aba38fbf54a3578348505c6b3237225a4c94aefed79682bbc372803a7c7e2031186c381acc279d0117daa563a5e4ff229a12735406f778520f22d78b7dd981de971c22bb5b455ed8ee14f40c65941e29b492f68bff7c1efea756ad0ae00db1957de916906bab07f5524ab2e482594187890330a0207ce1fd7108ef39c411c9e95c849a322c080b87c215cd8dbec4599e809bac7fef98d3beab0f100998e1d4c252f32d0f010d502f56b6f143d4f6b59b42186036857106ad288da693a16ef458340d1b480edc017012deedf08b5a0337c83773421148cc843830790e36931e26e36f6bcd6090bc5ae247c8f690e601b6bf20dff9d10a274035b9c9056863" + }, + { /* i=7894 cDividendBits=1809 cDivisorBits=1656 */ + "01ec4f86ff9c406cc50b117f1f5eede255c564de5cd5ee883c6fa7aa9766fe359f2b719271375c4e6b091efe1eb060398c09dc2510c9a57095b5609ad414abd1723d6b33728074da20d2fc5510f752540719ba38062317de8d0132ffcc704108fb41a0de3fdd1130b933a32a2860183f63d89ffe351999dc04a2b7d13589690ee6330b0ea444e1c598eed16778a216c7732c76d00301e11f6518502d02814236bff6d35b170cd452c13c8c5b30baad4c7d443fdb979c58c9dc8ba90cad23da221b7ebafe2e9013f20da4884e1c80e183d78206bba1a6ad84e1b5007d29a5f0dbdeddbf", + "3b425a59ad6effaa85bf87577e0811833b04ad1fe124d8091ed0ea56457a3675c0d43cee2a620638e7c1a08ac430dddfa9e5099c43a205a9382ba40fab43f51670cf52256cb0969ca7a7e44e6e1abb0379840ab57e50c7c542b396163ba9d7369d5925ae15601100932d6b73f1fffd2da71c16fe386aab0fae0a4d8e8bac7f113f95dd231764a5d4e27c4a9083bf5f774a1f57e2c24e8300abf2d52a4fc2a96c66894d255fa5d4f84592d45c712bbb4ed851c5939d1214a01280dd316e06ecf5b663572bacef315d061dbe14568006", + "084ec8d2f1466939136623aa9ef03672d68a2a98", + "1c5b497c56543fd1c1ce936b30bb010f53ed132ab8dccb481634a34d30c4a3159b21d48fab5084469d87663916e896d97e1afb07183c361b08d4ea7c8898cdbb31bab06714dd34756caaca46eec597e77a9497d7a888dfbd3173593da3c78a56d1a8476df8a5dab0a3a59bc26ee22534391690f38b8c04fc527a07cafd90e25d6952730965b978eeac82caea72e41feb338caa1f5b169ab6a354bd366c548cbd6c022dbfdb9182249ecbfd3a892f6a2a3b3b35b7f41d3c1f02782f1bc9e7f8a19a1e944f80b33e4c09416c9045de2f" + }, + { /* i=7895 cDividendBits=1432 cDivisorBits=81 */ + "de8c2fbf0346a98a76a87cd682fd82b301aefd4a54d52726b8ccb12cf5fadbf0ec0600899e96550463a1443fc2d1d8919da774a11b20612588a5a4235a5ec09de49d2bcd342177f7c6e0be8d3ecb11861ad707d7544d0c43ecc93c87327e3ccfb1a07f017ee2a1f8404337054dc19f50208223f63f692b6b95faf8e921ee69c78130943b03f9f8954111d503164cebadd607af186523f16e7d33ed8dc09a480dedd9ffa9ac4e07487bbc3166c728f4fabbb816", + "7ad3bf0e6e26801a8fa5", + "01cfd724337050d996026648f82c817f15a80637e997c1cf4ff20ad530306a4c95704dd52117f16e5e5b77ce3dcf2bfa85d544b6c1d0baf8973d0b0af7d5af2940fdb1efe4bc416104a71204f14b98eea93483672e6e4ee31fe0c87e93ea77a518fd92b7e3b0ef2391421a2f4197e082df382ec706891ef3db501c55c165064fe5fd43c3ae0078dce3e578e6b5dc89b98d2651afbc5dd44cca6e6f8e35f8f092b48c482f678849794fa3", + "32acbcac52bd45815707" + }, + { /* i=7896 cDividendBits=3828 cDivisorBits=1744 */ + "060a9d786d0f91b1ab1e162bb650293742f82ccc9ef991dbaf6ad3d9b2b8d7203f05366060377db40ed4c17d25f25aebe0c00e877f9dfc72bbc3aecfd2ec22881ba16e98cb8ea6839dd98001bcb733308dd0dd243d1b099da9a1c312f68a5c0274adfbcc3c744af3a5185dab82ed8bc9fa4bcb3057518ddb42858df52afee158e872763305d4ff37b044057a077f63e25176757ff4a834ee237647ade7aa8174dc66a8f81b0d220e8cf067c3ba0c7845702bdc4d4df4100440073f6ccb6e3cb2edb4bf3ab72dc0fe60fae30cd54a891c3c7ed3078b95498d1c8db4af1b3b1429191d7b0445dd2e17fb46c5aadf26704187e13f72700fa8e677261192eae3e12f99739f44dfe6c331bfbf240b9cf88dd7e18348286d11a5d9271a14b517bcce7f617be50700d40e4f07dea00edf9bcc68101418d01feaed73c7c15dbc6ddc5485218cf603a3b97115d1b12a943fbda03cffdbb66f785d21c7aff791bb39f7962b7099e63c94fae4e758aa3a1646c0fe518264e86b8f7059be501f545e448bc005072ff9954e7f7c54510cd98f1a4d0d9b9a52375c4ffc986fd44b400816e0d8fe6be1f84128505ee1fb77b42659b267952ec8f32711c458249cc25f6de03bfb0e95a66bab75e655e43333eb65526308fcf7156b2452b5fe6203139a4f845816", + "67a6eb56640601db4e7e372a9d3a81fafa3beaefa06daae5da9c9007d39a2e7b9713d092712b08c0c3fb009ed788c2cdd0f3d4206a7e7b4e4749acb275fbba891d72e32d496126be6dc4d79b1eaac8b23a2cef012aa94bf83e936f6f83f09635c9f230ae740ab48252bcaf7fc4e8e1e6abec89bb213e911a40886fbd29fe5078763bd8ba087410d3b51021f444c504f97db2435abb2606877d9963151a37efd7dcc6b0e93a1c3a3b0cb6f6b17b4c7a8b46fcf534ae5586333144c1167e5e8ad01212a5e88ce28096a8d00f4019cb3f826ca6ef61f11e51fa68e6", + "0eebd553728035511f788d6f599a8e55cbaa3e1f0bae41581b0b931cf751718cc06e03a7687f6e11c04191ec8578ea7f949a0cbeeccb40ed67322a1c7ed062d0976c922b0dad5b4d55b2eabefdb171db50977bc9d467943eb4bafdc28798247fb614f37694c34526b35323507c8ab5d71b22023f0285cdea7b6babce7506e74059f93ebffd6314b080fc6e2f38b450a82a87942eb35e7a0a8e4ce5c4538d2ace9932f304ac97af7874bf36895ab591c228030019f66c8ff8ddcd0754c2d7fe268dbbb33f022602ef669d0f8a6d71e47b924157537c296df634927eb540cba581232114e4ceefcb02f97394caa1e72df7bf343a75ec90303046e2423040f84fdda626e72102", + "265fdb6cdd192ac914593d21ad60f119fd62eed718a72d102fa27487ac2243865a16f84059fd251fd68fe155c5ddda69f11748f0643819f71bd2eef94ad6c3aef576cd3113b8e7af9dea215e6aa99b6e60aa3bbbaa05cce2a912fd691e7251dc215cf81564632428a278fb07c3862baa3d62b62996fd5b1ff677259a290a02749cd4c759da28deccf767101d2b5f366c29a4841952df0bf0fadd351969faff21cc9bac57179305a6d0b69d8c49e152d48f22fb5f665b9d29e158f700b03addf7e068ca8cd0df5f4488449660b91ceb210ad64cba9121987fe04a" + }, + { /* i=7897 cDividendBits=44 cDivisorBits=4 */ + "01be5a425502", + "0c", + "25323031c0", + "02" + }, + { /* i=7898 cDividendBits=164 cDivisorBits=41 */ + "01add0c1bebb21fc5f2a6b916a32ae35a430413d06", + "01c71c3350b5", + "f1c58e29f98de936fb9628657ba0bc", + "043829d81a" + }, + { /* i=7899 cDividendBits=150 cDivisorBits=99 */ + "0fa43953c613e63bd0484406f073af4624c341", + "024e055415c198d32c212f18eb", + "06c95d5c1defc2", + "84e141a53ddef999e1917c2b" + }, + { /* i=7900 cDividendBits=2184 cDivisorBits=767 */ + "f3a252f5aa403828c71698af5ac2d8eb39f7542ac2639d4890dd848dbfc38b1b259cc522d29ef434cc709d9586b023410bda191b38eb2278d04612770bdde8ec59e001e5d7d2bf54b2ce52329b5ccc9f1cfbe308f7ca5bd416af3bb40029dd1fe4798980335f1b4fa107854601424a03b4b542c55eb7aa7d85fee8c25ad0e31660e9694d0bd7c95f21803d1351a1bfd738bb7ea9f99990833c3ac239d9dddf988db795d90b85157c45f9c0f7b45bbe507190c16e3894017b33faac265c79c092c204ddddf978bfcefd46eeb9cf3e4ecc2e01dbdae1280b09d8e2cb718bdd6e640a5642677527ca354dcb03bad1e2e4bb1b2abae1b8db245647cb9213855bba0a2196e3b66a008c6ff0f283a6eec56cb200", + "5dc6606b831d25c5d4b5a724c47388a5bef00678de5fa9133121bdf045ff25f04100d3fddf535d2430f9c6472d1a9720fa98de9d7653392ff5bdcedbe09c2f20bcdb5bf5e91b8a707d62238f0fc6ae3d026d1210e41315ce4eb66d5f83344c94", + "02991b53751c626cbcd02963159ad163e5fdeca21bb5a9ff69bca3f26fe0864cd006a2371aefede667f9823cd8357a7ac4100b0084abb5c833a2efc99904ccd8369a69e9521bd9bca4e2cdcfe7e852f4cc5f4c68e479801e3f1fba490ebd65515d0fdaf56ff5fe07547e631bb0e92ff71160e01c21a1c97739b1e3381aac91a1bbd60cf42e9f7372cdd4157747dd5ec6c311be9111216ad6cf08b8ab29b70fc5bba50b35aefa183f39b2c93ae89ceb419a6d", + "4daae1638ad909122454df8ae5883e8f7a7bad291f13c35d3c39ad31b3ffd1751f9da10edfe72abe5929f1ac5f703942dc787a5bb5c96532ae0a700d3398286f0e0c0aff6f79660e71c333d0ae2542e78a3a39b1d5e3670a578d839324830efc" + }, + { /* i=7901 cDividendBits=3518 cDivisorBits=2729 */ + "369640f1ed6ce702347e1be61f5b6bb6d4cf069cee86d96c4ed5955c54752760450e505195ed284026936fa441d4040e0ffd72aa3f1a982d122099d91e5cadd31803bbd1edc70291d37d2a126c024d4a44523535488e00265c1846e4f5e879a9a79cf47ebcc98896138094f96d05e81c1c2d40536c392863b32446a1244e3c53bb6b3f8d148409c8c0dadbdecc3715b881a48f9421692f3803a9d6d03c5e127a03e0e48525a958d0ff3c21c531dc9966b0879556b2e1319c1145ca69ddd1ee585667a089e329954402a02a4df1031e2dfe86a4e35a944bcee8f5fdf5779f403a4eae59c04320b1dd9dd689207c7c5929be82dd93c87a9e9fc37a114920cd4ebd4400077e953fe7c9fbeaf2e12b243a8ce6bc33d47b6e76b2db23247168c68e0e0d1fc95f96cea111d43435aac2b3d91d25f4358744e44f29608c0e325245f8fc4bb421bc02d021d7c0c0219791bdae45d72acb731dfff7ef80e49daa05129877ba06bb42536237fb04fa8ec46fd8c4936bfd8810f6a3b2685d02e1780caf6ea2b72da78c71a801b61cd4a0153de729dc7a09fc7aab8a645994c9e2531a448ab3f1b921a2b4678281f86e48b3d96a1ce5b7118f1a1205bedc", + "330701366be3cc2e8ba3c3302d87dab42391aea2feaddadde8d74b17a79745aff098c13fb19197acc2fb6446876c43537a5998e81f0270fb32b1f94ec3d2fc2446fd296f7e44a9b3e6572aaa93b07bca2147582d8b9558819fcd29552557aaf9524e54579bfef0130044f049d52c68e291ba8ab5df1c19712bc23cea6f1c68a702b9eac364ab6ff4509af4da9125175229631c1688c6ecaf35d48d6e1d0b75bf59bb71c88d135a2a48e5158b4f35a2ea730801877efc10ea29f986151d59d334a678fe4f29319f53c97fe621bcadece1fc4833e5a1e0c2ff160e4cc6bebc470f5129b773dbe5a72729973aaff4fd787daefe6e7e13e36bc789458b45315d4b8cf5ea610302798947afa55f7e13e165437d5aa86c574c773bed2263cec29b9147e1ddf2ce97468a89a94c9838fb3c7f0a40495ab630aade54ccb9036490ceac768d4b32d4a53b4f4652eeeacc32a48979ba852963df", + "0111dba8de09c2003c43f86e50e2fbd44b7c0d8837e8d92cc07164c831b8ff614cec4368837b15174bf9419d2ee0c185fbe4dfaf2968b6ecfd8d2e98e2fae282b4a5c8062234aecfbacd8646558fb4c554666b6da9f6fc627630bfa8ec6ee20619c69500", + "1365c1e230358be241f95acd58f9d43eff055ddb4245edf62ce5d2609099868133ccafacf89564bee06fc608ce5a63e4813f9e6f9e7ecce820176da055b2050213b62b8b798578491ae9783bba594a45260cb4a2fb8a40c273bd6ffbd09f221c6cbb5220d21512776f877394edbf7c686fe286a1197b1f2b99c8df23b34c8224a65db247ec141b58d9e59392020e13ad484b871d2bafd8b4f89ea8cce171481adfb09dee2cb67a6a7622d1565f74ba07cd33892678b810c08b8c743bed23530d69f09f9c0a8a0e1ede8a07801d0fbee5249929a96a52af077844c15fa0e5e5a1b1775754d3377079eb1270a5481085921fe37286f618de382e779f7f08e4b5d61e589fa4081d64d8f6d4d3561544494dd5f309c4a0e1c120bceb8e67eb3d8e2f1eb64682711ed97ab403b64c561617ec409274e5848f1618036b0e7d14651956137ca285cac7f987740d4024ca2efec19af56af3dc" + }, + { /* i=7902 cDividendBits=2167 cDivisorBits=163 */ + "3ad429b3ac35ae37df52b99ebaef3279fd370d6b0fb421074f1335a5ac1c20851c369b9e97f03b98e4c4a5b1899b7e2251b95e83202740d42228347d233b068ed0810d1849c96e6300057133bd1d8b4e8d275f95568e6fea396c490a03624bcc36432fd1e823168cf74a75f348e4f191785308dcb1414292fb05a9567c34825ce8f7f3b9cf58971ad9cf668d66a55f4ed8e54e73b634b77405e586c581ccbb8cec53a81da8fc87b0777f749e38a64c75adf67a3adf1a6de589d77e0b5bf3fb5d92caeda97d519177f44b178a47fb60f273f0572f3952c8d06a3067b5f10f5d28e6189eb99e5d2e230fe27a9c0ea4f2cc5beee50d3070664ad892e227dc5dd0be8cc4167d4b2b71de1ff972acbff7e8", + "0358da0224fab16f1dcc24be64f29d147473d050ea", + "11937f63242349d9574cac5d06b9b0f9dd5f08c3c6bd27b894df246da2a7c983b2da1e1d961282f9888e50a6546106522e73627608df8d7993416445d0da02b4ff0822340329032a1d76f6c3d8b7033b144738c811476a7fd20ddf8d4fca0f56ccee74cc8f05231555cf78dcf5c48b20f77ae4c92395df2defae0c0d11a8dce1d0a811e2dc3c90e8657e6240fe834f4ade08c015ed28b3dcd4d1c57121e8eee272491f8fd583981fb8ea137de50ef0467e152d2955f6cee758f583017471d1fb982849f7e2e85577cdfa6db19111277b424f4874584da69ea1f9ec3db7bd545429231378207d3047b5b156fe30f27f555d575d1d6adf4025e9984b", + "298e2b56db2a07f5e1ede877a5c741c597b3535a" + }, + { /* i=7903 cDividendBits=2786 cDivisorBits=1373 */ + "01ed0fcc95e3c280f04271ca63ea24544bcb6b8578bfd77bca371411d01493e222e9627e75b936a1288e0819575e33d0396d36d4e9d01ff612329cf9d1e3fcf8676f34b252b20ccda2a867c97c58f39f8f693e183e4d2ca688bb4e103996694941f91460d1d2d10a70040cf54c47099539bb1eac72445e98666558853e9c6c02dd542cec06c69fa98e5d164cad0ca1ebba1aafbe41305d68faa2e59bdf09a90fa99d31c8b69294264582009cfce6a62fec0113afdb85bda8af11e8ec6edbe6af702ddca7ebf5664ec90aa7cc97ed9aeeb3201324c1ad964b059ed9ff7c1a45fa7b04f35feb2a9ff903f26e82a7a8dc9abe1a26f51856535da40860705aa223b47dea1a6769ae414b659b8e51397d09adbdabcbbf24547a9569142ed373abaffec21c1b8c62ead61a0ee9e790a5b616b8c557c12d271f608d10d39f03ad84ff0e78cfde620b11378906f6763d8d881c96bc7fe7269f01bee5137705662f", + "0861767c4795d27172b46033f886323b5cce921e695902a5fa1e9c4962cac351b503981ade301b22f0ddc90e876a6cf96a3440f6bb8bd92d14b8db29e3982fca0c8ae3a9561fee804844379a5d3848d5e1d0a1bdb440763b0dc3d614ad3c5efc966199c643abb91f9f2177f69ae09d50df6799ed3a8e560b31705b39b322c1e8c6b1e12d0aa1f8760a89b32c44ce4f6c2812d991c19891c3a4c38e32068434f2a2edee4b09a935dac332491c", + "3ad538e5dad861e817f05a42c1608c8d317c9fa5ce5c6ee9bcfd05aabaae375d6feab5403c605c633aa95c97372f58626dc49da42409ae501ae014ada7123faf5cc03430b8f4a522f37eb100eece86b9ab49132760f8bc7009834f6a75a06d8295f799cc7a9e4e30aa2302b92f2c31815ca1bbc95501c8c9f7ee6f637aa7f003c867a3199d961347c179b9db89c5c9eba59a6edbd0a4aaf93a2d2d55e7a60c2f43595e8371940b49119d222afeabaaaf16", + "076b8d87c639aad2f5771af3a1315da65f09e2cc6d8481ff61eeede1cd5b0eaf7d2bce833871fb0f735e98872eb7d0916276f2db586f85f6406306f7b99a03b0372b040dde6bb75761331da02ba3ca6c811195fd4b5d3a7b5ba7f3dfee5b103ba6ec1c2bccaac6069898d79f45184f20c1cbc3f2758243f2b01f908e7c00553bfc4c8642cbcb83f1bf891324df4dd45487380b81038b7e676afaad9fd9cf3bd2316601c6d02060d51020f9c7" + }, + { /* i=7904 cDividendBits=1010 cDivisorBits=229 */ + "6375cd1718fbf6831c3396ba051bce6c2afb75e6fc200ade87c4218b4a4b94db7db788aedec035c7fef2a8308b2a56ec1f162dd071e8c9fdc6fb4bfa4931f694c96adaec50ac79f0e16eb6ebbc61e22b6bd6b249988226a991d9acc3414e20626033ea1f1fd99596eddc2863b57b9bf4569397b2fe6295ea2193584394ea", + "1fc94f5d759cdb4835ccf7312e808f636b46fa8f3eac6abf3df9128224", + "0321076aca86ab3da545d59ed2779de40a2bfa5b6f2b3d8b83a3321f738b60c353d552ce9cf7f4febff64dc93a616f46a971fa16c53b7797a733721476ca36a49f0e5c4347937fdfb6d17d063dca7d21ed3b9705aefe94dda8c22944277865dc52ce", + "089718af49b072e239d1be0b47d195a0b28746e880f22b8dccf2bf53f2" + }, + { /* i=7905 cDividendBits=914 cDivisorBits=524 */ + "02504a9172fe4d5332c0c06f151df1b756796e01b8984ce52da1a9d13e9a60bcddb34b414d99c5a2acc52194a43e02c2f4c28d21d35b877826a7ae2e2bc49ebf590245c17b0e22d37b4d85e2a2e74ce8bd92473f61a66fca333c8554294d9dc37c7ff57aae8f85fe786bfb8a4b34b0149c7e0e", + "01cd92d88b1f5c685925b92f77d914ed179f6ebfed31ac3a509113e1216f5862c7dd259d923d928ec6927c212a6273c89ee1f2ef81ef90ae599948506e8892a4f848", + "01487fcc2fdd10a0d8d59122439d942aeee0304679413f1fa62d4c5a9540b7704cd9c96961c08b2fdf42938360a7e414abe2", + "340d16e8b55dfac9afc643141472c8af77734881916d7488f0c667149507a5a6acdaa0e8589e0b5f3369b75ff70ac88aa7df86ac2ec848d4ffc89d0d2ee781367e" + }, + { /* i=7906 cDividendBits=2340 cDivisorBits=119 */ + "0f1c97d45e4981a9f9032226f43bbaabc92caa509c16e1070f829ffeffbc9d1e81ff105cbb22242f07068ee71ca8c88148e55e27f573835c5f7c855251db40eab2bba8fa59e2d86a0c683385a9dcffdc6b938d9588912de127d34d0a01a87b7a55bc0faec4c13967b3bf72d483cdcbc95adeebc338e983891bf209ecdc969611e603eed6a153ed49efc52e7ba75c60cc34d60f02631a5944b47720e47ca2f178466619a13738b5306a2c963ba9880fe432d438642bfb49862a59622fa14eb44b81108153b990a0a978e718770de9c3a7495e0ab92d9556011ec6f217e27b19bcb73a06a0f21738eb3340a95ac301008ec95e67db829abd20d01d91094c0148c7345238a0e7746351e8fb7e5fa9f560ffed28ff6df5241f465dfecb648758a88ff87d6ba23f", + "27dbf79201b3f35e7a02c6dc833dc8", + "610e6d259036e801f41ccddf3a76fef9da4399e180fbcdc259afed14e5bd232a3c2e5fd7ca8e371d04c84d75952d92e0e359abbb0c15f064ed7ee1fc9c6d391e0432e9d9aa5b4013114ad7ff76a55241b7d60917e8b57fb48133f9c1085f9ec086ec8ae1eee8333e2d7d18b69ad6a4587a03cb937cfa508d1a98c07fd17d8f8222a705e17c088bccd3b7069e381768cc0b50a92c3e6027596301dc65769777c22a9d9a768744c49ada1f9067ce8bc95f0d16a3e3aad1632a3680d1ee65fd682cdaef36d606b7e56e6011c4751bb67085a43d81724e1cade1c5c434fa8a061d6ba262650a7817fad402b8f713c6f58951e78e09d730d8560a3b7313315d4a8fdf6089ed605cea1a5304de3fd57b544598638ce6e0ac28", + "19d88fcb55628a943187061c679aff" + }, + { /* i=7907 cDividendBits=1129 cDivisorBits=393 */ + "01af3637ce7f3561914a19db2740f2168a510a1cfd4fb4977c6b4774a8fc86a14f9388b6cee380da0e1aad8747327dbeccedb2c0c3b447db5a4ccf1a743ebccee5427396e889c615cbc55a5b0523d748c9ff1a7d784718d73f9ab02dd0576a2aac2c4f0b595d5bd3dc4828ec81ed86fc20e93649f7c1004dcad18d275a016ef38fd41201e0197e5c31e9114f1d99", + "25e761ff2a1b40a07fe8c13015ad07021a85b3ae6d0858f372eb1e18592026ad0da5ec8d21274e5688e3949bfbd1b7292e", + "0b60602ab8523e033fe173ab3db5392064b9d4a02344714a03fccfd335dd0c0df97ca6081f6e7c502190b5eaacd14ef1ca0b5a0dac5293d2b300ab7abb07a6328b200d8662faa6281fcc81101e49906a00f27bac6355a5ab51e93dd35f", + "07e1cd4411c3c99e1a434de23f0a5073ed14c2b27522075ac7b01e63c647c479b4205ae394da1c1311aca952ee996feb87" + }, + { /* i=7908 cDividendBits=2482 cDivisorBits=2463 */ + "03b518726f0a0d466add6fe004df5d6458934f22d52199377e6268a32b29bee5b1c5d89a05643e44f8434ebde55b42a934e5c27328037a5069b372e0d239536ee79ccabe635ad302abfd3010c8ece89a66a9e5ecdca9ba5c511b5a9fa991924995f0ea14cff4420cbfa6f8c5934264b4d7f79ab037f3315132cc3f19f78cdae44fe4877189386421811283e4fb33a5dd305d8688fc77d6c54d1a03692d24fd419aa2a04608824410608d3cec47eb785b9f988a4e2d34ad2933cd57505201d73b7a144e126ebcf626c06f2133af8d6eeeab33663d8132a88ccb8166201b394bccab6d363963edd16b69240103ca22b2ceba445d9f66ff24611c3d79df7e25b4b9f497cfad7db856f2e3d5cc145dbdb97919feb843df313d4a01bcd2a47339940d861f7a0e516617137c1ce62e4f33d2e4c3ef840e4751ff", + "56234ab9f544bb2c1b691de42f771528e7bb9a9c538f45f7513a1d536e1c19b9a70ea8b71c0e0153f537bc3ae441664c82570b6501ecad279e2e037f4bca574cb9ee138c61f86db99f5f8bfd182197c3a71c07a450e6585e0c6cd2c598bf6c060ca4d6e2092b4bedf1420e39a418bfc47c2e19103be3b5809a7fb33e6a4a21903727edb5af4be56838a4f57c244e3f5271318aa687556f25eb22cda4431c762628b77819a6222e640c9aa2d2e0801ea11710fbb72d8c6e273245600ff9c90ba8a2d0cef3c1f8d797bfa5062dbead186ff01d6c8bc7c220cdb1030b35ff4b6cbae22965fef487d22a9e25031cdfa42e3d2edcf6920ce9c51321544c0d4c44b1a7f1e544b19e7fbc68f03ff077e0e4c6e28715bda4e24284fe1af36d976a3bc11b0730c7fb2b2f7e2a6d4e0c5badd537b91ffbb244", + "0b04b1", + "20dfedb1941395feff1199bccdec595856fd330d32b6a7a54ef1da2238e2e83e9e61ac9998a87f083ce37c2a6d1a5f157b747970d85d909ba47b8f6f1e58109ba1716f8ead3760405da92518df657ece9e4d55f507a2017546a330570b499d7387c574f8c56711d9523478e99f4af8d50841cb3f8d65a86d953113dacd56103d78687ec5e2f7657b9ac1f8e2d18e6ea08a692fea16dd8ea074d78325557099b91833ee77abb85f38cbc266a7d1a3e91246a15947bdb3de79582a9b40e30b6331585a81b3e2cfc41fda865f6357cc3cfd1975618cfe3901493581a8bb6fca9cafd337eae232635e79f5e8ec2fa0dc53d62c7fadea5494401b3e73145e4977be0fe544a391451e9abda33ff17edc15240d60cac5d81904a8407eec85a95f07e094baac59b70dda8580db36c18efa852434598c00fb" + }, + { /* i=7909 cDividendBits=3933 cDivisorBits=3061 */ + "16355c9c1f0ad7472b32d40986397ae370109b1f95ed166519d92efa2a0e71d44f8197e4edf66b8260a8d15ab4c99f15a561f3e40fdc5bfbc9d90128a820c29c0605f1bdd164bee6bd8c857cdadd4dbf09222524314c9b236a735a1126b4f7d9b100c68c1da8f991bade60c0569cde67f35e9bba50e4195debf796183f80e2599825456b0dd8cf95292ac57f760d011d301d261649201c40f5fa72afbf005a9e5f75043733dcdb1139da11fad12ffa1ab85121b3662a9c507ccc703b37135f6af339b7ac1a4cbe2a8e2516e24fa3c3debfde8dbe96e8aa3842729f18a553fa27249df3598eff9c0d2629789157970fe810ec7487e276ad6c975090013b0b00ec7584085d62e4402ae18225a5a32f96d9841ac6fa440b236d436167e8a681699844da0fdf8a81144ca6204de3d063dbb92c3e9aaea08ffbd49132d1d642120b78c6808dc3a2b6088c92c1963df4f6fe4c3268ea9e4f971e2a094c578bee5b9a19c7b3f5f8273a4d298d443c15b2bc83333f675aaf4d171800e551ba6a44c839532462c7abeb4e81fda41036eb2cc4b3d20f46273bef426b6b43685db1cbc1aa8ae64ca619d1201987915b91b6a810a1eb44b476d20a136fdb36c616b2a71619a3e52b79ace66ca9e5326ee02b64b5e136ff96b7e0821fc70a109f6e99408e7207791529475b4ab5e23a9ab383", + "1f99b64ef39828a4f106dce0e6b1f22c6747a3f98aef7735c0fbc4eb65f04a558e5f579dbb38c701cec158529a2a994b2475eadd8082cbcd972b6e50410b4a934710c9ff94dfe51d385de9130aff6e1e2482a14c4c648cd237fba35565c63707ac532a0a883cbf835628c28e95665822cb6d78db109578ae40c16b8844dd5dbf14127b640a6646bb749ed87f6884e8419d04a879a39bd3c5a16d8c51eda7aa070fb788a96ca7973c5fa537e69a7e22fbbe60185775fa166e54df25653b1b1b85b05852b259a82dc9cd8ada24d2ab68d47dedd26191245a5eee94e3824426458e7aa93495857902322a3fd0d65f8f4809e98a7f1665032ff69cfea33bc11237d016dc747f829b98e9de36f0349cde20d93bff877d4bb9de20aa6e6dc6a6f7cfe329be16038e01e2364b23ca079e746959b6dd323d87a884d1e32099a76b2a3fe22f4b8ed4949a5d3ecb71fe61a331a8522ceafd019dd01605b1ffba82db561e2ccbdc3c6923c438005216ff54598a7bceb5fcf348b3bfb1d8b3f40f87760169", + "b3e9fd08b960b0675f9511dcc2321400d03f46fd8fdf53a767f307b2858451c3c8bca7fcfd432ec26f6f1f10885e2ae0054b9a29ca4a7329803da743511c1df5ec4fa2540553c579de081699286a7945687a2f7b9b8f774b08cbbf9dcb131967a59b2d6d1fb666282acfacfd01", + "1807cee8d3a391579b2f9099724c17f43702c796171d912536551dca6dff5b36675e91eb23624cce76696fb1deaf984b3b4ea9aca329a8e3e4c36d8a743130657d04bf2083caaf26842db0d659dbe6e697d6d4676d6e4ad53b75a2b33468ef19cfe1adf0519be886a45fd557419f3e59e1c42d8ea30702bedd9005feca9b96b88c9773f8ee9050cf00ed931b57aceac51cf740b056c3005c8ea7aa51e697dcaf451570c3e09279b415e34a93bba90f12da577560b14ab2ddb961740e5ea46fe630e7f4956e1024239e3156cccdf34e79e3bc5ce79d55a0f1d0214b7c52f67033f82f96ca6677452893d039b90edbc2d6437f111f29091480147bbfaea64a84b651755ee6112b9350cef100cfd3094e584cb7a34030382810c7535ffce9cfc8b80578ab29e759de44b7a573e7bbf275d60b14501cff98459d4a35796b6acd5a02b5531a29a4ad64af2ae86aafd0102e26244226e96598c2c47f48d9a9d42c42f45ce60622e3e44c5776822d1eb2303c34eabc6085b854b84201574c3a33ed1a" + }, + { /* i=7910 cDividendBits=3110 cDivisorBits=2890 */ + "1481e4e048ca67b79fcb9540390f0079ce03c120eb1e11b659ebb75c02e4b23369dcc7aca41aaccc74758ebf626a77bc8d58a490332cf156fcb23a2558f2c438c3936db2c9413858fd51effc6428daf19622b21ff91575cfd0e3c410feab667ee087194036799e31e24e93f4f4033de3fb0ffa6bab8ad58ae0e4b21cab0a891cdbfe50512121b7e31c16f868f072520df49854abd6fac0b26514b5bd4babc45b1cee42d55fb164df9588ff24b1412cabc6e5b52a50c4d7e659bfc3f5f1c40ab4f263f7621927cf41a4116d90d4f085df6cae80b4c879b736602468a488c5907c0daf7af7247ab0c126177aa8165e68f25ad06e476c0782aeea7b3d4e02beff612cc2cd5e2280990594580cafc28c8f2ae0e84ca3b31e21b88b13f61b96dce52f2fa6436c54512583487ac54273daf7115836b2230034b32dab1667d3b2c13104c77f09a0c0bcf7a5bb190fd40c30f6cffc2750e14b5e145fdfffd62d33ea0f3f6c58f7c6dbc8659441c5f025535bdd8676782fc2c879c178c2af7875e76414ad8d005a704e", + "03f85e651bd80736ebe2cfce17b2b5bf3b2b1a89fb3200b20ee137cbcd1dc808d75948bdcec95ec2c8c6b21b2751563fd40f5066bd00407a2c45739563074ba1f71ec007c6b5f7c6f86412f95010b4367556b416ee2c7650ef731d7f44b9678d3dd25b0e82f46febb4af69303ccadbc6e99210330a4e935a16591c3ffe21f74eb2850e134d2a34761383a7e977ba605d1ef0d4450b2eb44014fb06adf34e46e9341a6745aeb1d622ad7791a62a1aabbd96a8f8a19f9bfc1efa661d4a4ca02c40d229050d4a64947d5f4566e798425eb7d59f554a8fe3bf7f5659daf3251943b9b539810925b99180ea3f362167380e89d6b30585c7cb36e845fcde6c3c3d673ea2f90a6fbcea44b3146a36798eb36d7704aefbd8eb61b1104dac0c0a0ae751e585d1bdc3a33ee6d827d56e224916bb865f1010e062dd39bed12202b57331e77340c5bfc45cfed247f383acbccc037890b649566fc8b0533ce370d8d6f0fe03233d52b12c55f5d9d90d65", + "052a53fac17395839167d9b6731742633fc256dd539cad359f9bf2b8", + "403b27d1a0e787aee744e845a58d81a23137526c480adad5a1b90b046b3672112608bb0bcd9e8cd2fb19cd438fb06b7179d889a503f68eb01cc0b4c63dc0c8324acebe8869e16cb5432c5aef7df8a49962de4963f017ed3358a59b13b19d8f58c146a8cc141510f682d35023fe93c0f0342f04e1f76b730e3a6033a1264e7b915cf4914df00d40d3689e194fb5fefaa4f00ac6a6d4ee49b9ed12b9aec56e59d68a33b4e9e4b6d2a5af76582ba50a23ffcf8d0417040b6703ae24ae101dd3188cd04b374e564861e36c6ddaace0de63ae317a054e3ac5fb4d44b856661fd19f4cc460a9a453aed88c0e6aec80f70f3b1ea03f4b2684ee05d859ffa2d29a21c3713e8e36c12d83a0feef1cc1edf5e5abd6e5dde2168f01bcc93996ec193d8bae1b9cda5a84cf9235639ae82fe8696f08dec3744054207e6c38a127f5329dc5e54d29561174249a516fa7b3f9e8dbb40e1a6f21cf2d77fe683496d899e9cce8eed9d5b442c043668855b6" + }, + { /* i=7911 cDividendBits=3284 cDivisorBits=2013 */ + "06d02ffad82193003f33e3d2f2d738ab0926ced06dc487c2fc075686654e538930f46efd2fdd655a5305077f422e54a21295ee173fa5927f3be6a121e9bc2cbcab5d17084d16312968080722756c9af09432b67737c530d02a74acc19bf838cd990fdfd02bf90e5761c14f8f8fdde897b0ada9cced750656b5d3025916d80ba30490ec115a8f0c7ec69e3183a56b2de92931d38b51a0d2e466198fde775e8feb845732a9caa9536a8b73567dd82be4ae75590a617e682687deb266dad296670f1a6b1945b3dead608e2f8ce6cc7ed50b196f307cdc815a7f2affeb3720ae89744c2717dfba922e42394e974be5f675edfc1ddba30d5abca4b6ff39ff92a70f3ee91b7e718399171f8f6f2a51af5e5cf4f608d4349f7d110127d563925cffafcfd464d5ec16729b9d6f7ecea3bd952c7374c18cfaa8bbdb6522205378eed22595a4b05695758c4af814c9dd7e51118c434c7f81193e3422cd1958f6a4c1742f4f0421bd2a58597b6e05a3190fb449cd96a6f5066bb94bc86fd04388caadae59eb9c76fb5aa7211ddb38e6892e3f18fa523c8e94c81856934e198338", + "03284d129364e41b3549d862ecc25ef17f6f462402a5d735ca8ee35aeb19947906640e5dfd52c97ca82fe2466ab0907645c9b46f0caab4001fc645e3d6199bd59845b92ee81e745ee31bf99ad10a11c4f06921245e50f9f0fdb96779c386eb0cf9906847d168bf4d462310632945cb2652cffd3be3cb9eae7d5ff150575e672b093836692e9ac22fe798e0910cfb23d60c55e3b95a5409f020ab7ea6940e9e19bcafc4543eee3d8dfeaa7a26976d65ff10bdb8ee649422a981256bddbef805786e7cb538ba0db6a115944c25221d16d5f9fc341aa3f7e749948b3fac5ba11014db6c88ffcf6b4d6f6224421b96da1cb91a65aec29acce729f4b3a7c8", + "022868731e7336347be359ae00b6d393ab5d369b1adb6af162d74259800ca4c3a64338edf2191b8760562f2163d7f1403b4fe4b2847542c8919008d32a54befff6dc5348afca1412330a7625919c444ca13f2bf8486fe048aea2f4ba34538418630be8529e5f0d64d73dde9d2b4917540e279e2b0a726aae60676d1f912708f2458a0f413e7d0ba7e810b1643a13fdac65359928146da8bf59aa2ab83e3d975e", + "02cb2edbab81e137210e5bfe23e91697146f6615a09ff71528e890c2a7660cfe6df6fbf84e6e23bb4d8813fd378b3e77599c31f23ad687f85980e659d9b4ff1c0181dd1aa57ddb09a0118cdc2b15829368507c835f7ab72f3fb8507177b0a00474b1246510ea03bd187a8e0010cba8105c7353f7a8c7828b88ab9db5076f888bf953981d76232789eca2896ae82bf60913e8090485773562e50cb6897065db708f9a99dc320cc2e4006c965f9a8d302809b17504358e95031a9511886605856751d76a9301ab02de6b224dc92bea8426cd305b6f089035a498fca982b4d781201209a5218e14bbdb8af58e312f99e8715f85abda88c77ca41182efc8" + }, + { /* i=7912 cDividendBits=2533 cDivisorBits=2300 */ + "096c99cb763c6f10ccbe1fd8ffcf84965d4eca265bf7af5698cfb98c91b5160a40b11958216bbf0fd94d07481f5ce088b59f84d25caab75747bb238ef67af7065f15b6e64b778f5c274beac9129d0e24d17279cdfb5068c990d307ab9b2e9d919515cce58fc1089b6a19f15f47b5d9b58884acfb0e0aee86ff62feb1ac2fa65f196bc3f9d2f665c2206fa88e60d8d0cd681279f4ee3a2a6de2bfff2498496a9708c086d8de9091e780b3cde6faa9cd3f3fed154768a2cca0c29e6a57f1d0b770d1bf2f41959194e5d9460da0c90feb7f5db21aab0dc942bf490ce768f7143d886f5742bbc66b0f0439d56429a9ab0e20ff7202893c600343a1afd99f1a57185cb9c726eeb7f2a86fff59ea505169eae20d30b8469c77798d1b1b776f7be88d0b5eb4cc0bd0d0e4aecfa2928d74e23699b1cd89480bb748a81c13d7a8cc", + "09d829cdc601d31ec1a39d8df7ffc8d0ccb383143ed5d19691043b07c48bdc2dc073a85b4e9d34bb57bd41167ea7e5ba0b21a190b539a36f506b96aa9f888e126239550afbba70c40755b2d082212e1219b5c919bcf905480295bb553abe3904f9eaf2fca7d1932d3f46832e154925ed2d5f9a99d2b5154e342cc0f5435f473d54e071624a001390eb34e92b47b9ccd7dbeb4345e8ff2c717d2b6040c8e2856de995581995e328a22fbb89ef3309b6a4cd6cdb7d847ec021f366aee69a0dfc6a636ff6ee209671e7a8536af48bdec376fb52da055b15d09a0dce4ae42daffe355a561c5b3ad604f287988509a1dc7af34d9a6d885fdb9460ed60357fd84cbf58d40e66ab3b6c049a13a7e2d14241f3395f5732664436534f823dd3d60648e02b", + "f512df559e1fd2cae3f642ab42f61d4d154b3e7ebb8e95f4d53e6069ef", + "04fbad6009890769980e84ed073644de1c47bff468c241aad06868ba3e0b5e26f149263fff3a038c10cd9a4312750aab7fcaa24944fa37b4a1a726ae0cc98e703ff881a083b3dc480554a0d94e207c612c03ade8e72316aa5895fedbfd9a6ad91fa948558ae2bb2e902e0d2eb3cd217624e59e8a5768304957d7cfc580d3556004591ed14e2fd0f8c66def0a26cbbdd2707440a69d2cc9c30b050829f0d9afec2ede3f1891a63882daab5c805495825d78bf337e8c22fe4a7dc438c8f83bed22f7fcd16d4f5d883ec1161b53f64ba0e123a38fe95b2783b2511bef4e84809387eb26ba2007a7efc4056bad4a9b3d845b17ec60af4382aa107278257cd2b2fbb86b6d7475bc78ef6caa45f083bce82e8897c364a1afe7d6ac7a929952d7bcbda7" + }, + { /* i=7913 cDividendBits=2687 cDivisorBits=2182 */ + "3899cb272f4804992ce39ffb3dc3893e44280fe5138b3779419c6f5c79e1044ba15a8f32700fad01ed94d7c9e005fc5198a787ed7021145bcd4081aafdb45576c978100324ba82b35cd2eb2968fb54bd61f397a7d0604c07fccaff1d8af9d24e9502a071b97427c89324b8d7c266f4f6cf5b815af2d02e805bfaf40de31a32dace9f190ce576978ba43edb21c76d478f3e459d7b50ccee91b0c449e30a347a9bf29a64683f1f851ae12091341b5c4fa75ad861e0c55d41963d31666f2de636a9f0bf5845620cf74bb7a25111900398947fda74ce8d49e334c1c9432abf4752d6e4645cdac983862bf56283bd853bcd66c00201740b0a2fec1f2673dcd6497f8fa10858743a94004a16f1077d0e43dbc67b235762b30fe98d0731de2f9af569c927a45ca1ba6e32c1eb811eea1d33af004b40ed3c55e905fc5b2a2004a4da803420b5593c134a996459501c303728d10b", + "3cfddd64944f71c881738ca5471f04360d6c344356ce48e5bb7c971cf2dd2a22eecc7f94e6f2a51288d0ae4cd715d67baa75302ed2dd2cc48194dd2c57a687f636ef50f8665737b1420279c7968d1a8f741710a9b2a4344530f8631376726600e49a07ff731630b5ca4888951de9187a8190ecab3db291cb9d335bde79ebcf8d9d88edcc0e1ac60fc3bfd61e7294463722b04a850f6e8fa0d20009d826019e777aed6308753563bc6c55391dda8c8c23826519119fd141734f03c5f76370587ab8ae3a28c5099f37c7fdb890ddda0a170f6ea1ac29db3a41f26ee63b2043c2a95d72756699c0424a091b21968792ee0e3a4493bfac3cd1a368cb19c25df88ccbae0d081328e5a83b2af517a12be51db2ff", + "ed91f0ede0437db2067c9d53d8d1f0e1f4ceafcd954f46970441edb0c531bbaaf5dd94100c3a434696a51539508b24ecf2ba4089afea3f47847b6763096fd8", + "1fad58ee915665bd343acd973de085e3bac38d7db41837b6117f579d403d9e45b824625e1b308d145f6183ab388fbe8ab7ed0ea00592a3964ae0f4027b4e1db79991ea0a72d3470f78c5a9063f6896c591d64b39bb5a000ceb9ef94a941a79b37aa07fa8967b13d1d00c7eab2a2a5e937785d5085e281be3bd05839ea7897695228e2032c50e88c3996e8b1616516d7c815f34fc405fca8590887123886d751f694f5130edb6f1642abf91ffc72d20029342c2ce4f20833e5847deba6ab8a9333000cc34bc344b116add96dced03440843c786a72c6abe76e7e3bd2b7a4a8c9766a32df68cb74cf9d746d868b9b81eecb2dd4f2532ce77e930f91e517704905ea8c3cf9e5b1109d94331e902f21d8638e3" + }, + { /* i=7914 cDividendBits=3694 cDivisorBits=681 */ + "37831a5901cefb83abab9289c2fee1eedc9428af8e31b7ec7d4caf4bb1572a9f0ef6a9422ae10d5306deedfa55d4a975dd7829ae6797e86f5d7fec525d54d2b36637fc34d8977c40e1834810d5ba2aa56a1f82355a05fa1876119f4e68b8f9ba3f20738ffd74fdba80cd82e450521f782c8ffdaf7713c5a9c7fdff59688dcfb7ed97cf3679a637241e77faf64106ea97bc8563c072f2f4ac3d82c9fc9c6c54fa92e318849ecb764a5e45c974ed55f9548fa26fc087346d7404c9cc7f117cc78b139c0e97a12919a6eec50c496f84bb8b6bfacf648736d7d9e08caf0ec6d81ab489c4143673450f9d549499cb6f112ab0005323aa63c600637cc4bf2e8eec9eec89ca1e44a5ef745f8df954080d9dd03766451c47deb06d1bfa1f2ee0ed77fcba528f720824a77fad1daffd2dce9b4b4fe4b1730f7a862443b6d69126163369b7b3720e9b819cb5a4c4deb8607cdddd833fc84c46566a9d19558b4fbea40bd15eb7ea2bcb229306181a83eaa8376253e37019da6a4d6cce1b75adb1ae094c3b244c47c76c016b6331971f954982b48045b47605967c95cb78407a2ecca19921d04a7136d8eadf1631dcc462410c628f348bc88e71feaa72181f6b723aae9f0555aef85f4ee2a491e94b699705e428", + "012c36c432bcf2a514c967d210b6fda6a9feecd01d2a00da6f47d02eaed4e7471ce9aabc586fb5039e9156534259b81dc7058c3adc6260a1c594b2788e06e78a4ee9429433f10ac66626bafdf428c8ad190c38b04e3b", + "2f562a93590e70dca7131fa9ffb3d1c912cd9baaae7f282cd839149713f74367060c9d343185194ef8fa406011fc1d5577a761de0e8038df7e6319f393219c395f479d0a6482618fbfe6e7613b569472c09a72c8266bc32e9720e22dccb8385cc1c158387f150187c66edbc07839a81c12a925a76d5b261d1297c653314bf77da2c5968228ac909384674590982fd81667a56f27ebbb70b7bd9d7b3bcc796788aa2a3182eb98daeff0dde2731714d3466038499b986e753efca24be86827144b7b5344d5d88377616d7e547c5b8b29f82f2c3c93aa608c557b8ae029ed0ab15ca18c6405dd6ea0a531bac695aa15e5107b7fa673c2de967b1963ebcce5d53044a1cc6de0bd282cb988ebcf37a15b183b4e773adae1903f22fe12712477273230c9eac4349cb81c7157e9055497e7e36796742485b826d6691f627c31802f6304988860350fd3f369a160a9aa3d2028d913c39765fa38b7ccb1dd3e4d6aaddca3ca8cf6449cc48fa8dab147a93e215fc78e17ef2ce42325ccc7", + "14764c2c553747e8532098f180aae1d050b26a55b1d10a936b9b67dd1324b3b137e1c0fee3ae4f2fdb4d61f38ed227772e96d4c45949e730c5e20c5b4c6e4bcf6979f881ab57433f74b0877d9a3853f903a81b104b" + }, + { /* i=7915 cDividendBits=2582 cDivisorBits=68 */ + "21148c19a8fa859eceaf22876f77744b11c61dbe6a66c2ee0a9e6dc7628e28042a80a215319d60d406ae189b359a8a64234c32a2adcf9a92e2158e75a8be5a3ffc339cbe8e7a2641ec8f0ec1fdd7b1cb204f83471ed921ac63cd11f2b1026273bb1970921225b479be270ced43802bfd21a81fb96abb0d08ab672402ce1693bfb1ceef0097e4c28444a2707da18aa24271939bf2fa5e743ae1044a2d7c49ef51bf0e0c13952baeb219d8541f0293ad9491c8695cfece6090deefa2cd361f5834b56d7b0e3f4c814ec7e33d7e63dc4b79b8f011177e6b5c13b00b0ea3820cdcdff906eb074824065ecb3c498c4101f64ebe367e7eb6a27f89e87bba0ec0c2d7578487dca3a64c32612e8a3c1a8b41591e505124db7677895e0d50735cd1c2de338b0b085444c4eaa91f99882e141944916c7f31b2e276146b2ea284f687eddbc58a20e5", + "0abb522a76b6361e49", + "03151d0f53891ab21469347fc044f97bf6442865f6a3dd356f9cd6ca0ff04c3fd195a50a70531bccda8c4facbf529b39e668de8d738c4f75342ccf3823c88ac28788c369f07e520b72ff8535a37af71a0b9fddce9753dd4a7cce987dcacdcff38e8c38c3d130891c40d27e297ab11545efe9342a05ad4dce263a8684dad7cd6b2ca980c8270195b0b1f06e02170a489a426027b4fdfc747d6bdfee273bb405dac970bf948bc5508764be0353fa18fbe5bac850b5c534ce17fa97cf1ca873a3721b875b5619f605fe2afa449fdb78477e7b9513c7ff15c1bfa46fabe00765d59ba0138465c7a12ec11b9458fbdffea925e0c3ff01945646162cf8582a394c5a26b0a23dc72777e5e3d38c4fcce6ad48fdd9018ef15118d93dcef3257772ae0af9e02d6fffc5861c0529625fa295a9a3b5740f1fe1acee4608d861f3", + "05d6970f907919b89a" + }, + { /* i=7916 cDividendBits=1523 cDivisorBits=416 */ + "0502d4462951f0d089e6b8ed87cee7bf358f08a585538f157eebc7dbcfa1e50b524670a9b18d241103af5fb6710587f29c6ce9dce5ebf6ae58bd0a0462135047f55e7c53a08247523cd3e596bc710405f8e014a872e4dcd79351187994b09c443e90b657907b5345c147658623d4dac7084ce7512498761b21453cafff462d917b268ac6f9a63e4935898eaa6aefb74e6bfa9a30db758fc60ea721b7993b1bd0c634e9f0a545f6f7f8e3b4d627e49ca8f79b57e3e6c5c99055d39ebecd7c21", + "67705d001661d082ad140c7cbd6f22531a622ab562c577eb7ffeb9e5ae64fd979c534302487328cee81d06b98744a79154534f68", + "0c66dc9fbaeb051a977d6ce52101dbac96e3196353c6d5d2f729a39f992a00f5910caa21b9b1e3e999e08feb6710e7d36c832fe49745d19a7fb30ce6a92002b08fa08eb1b8ed08f89b7c3cb45d674386bfead66c47d79b3075174db3482404d7d9fded862e4e3b4a872066501f1112dba028999cb80beb07f17a1786b4773b574fa147e14e1683c8dabd4c", + "2369980eba75cf2d6c1a0fbcf95f46cbbc4c47791fadef2e14679db6619b9e253e295d15211a9bd2589665d59376520555e22141" + }, + { /* i=7917 cDividendBits=2626 cDivisorBits=2022 */ + "0a8edb0be1e7305df03ee7eec30734583445a84cc7380563e9be15f7616e44b03c5f41218c66260073c5d8f919ae8aa48deca8e3abdff18e574f211ff0290f749a23e0ee6b5b26a7394e49b8d19b7b5cbe8a594fd7ba38f2a788f5a1bceb866a97a05fcf56a9003fede478a65b9664dc839853dc07e01c937d700153c948dbbdf0953be84e8e260abc76895c7eb24a1dc126daba31de98c6de215515108ea6e466c153fd57eaab4da411164972319bd16f5a1e2883957fb3fb878c4c3ce94b8a3bfd73bb253e88e635c3aefaee08d30e4fdbdf088e802a4a5a3d927ff4a9dcc339471c5b0949566529751a794bf4df8143a75a40d268ac0ed430bbc1d8333675c5ca8eab3ed8a5e715b83865f22e514b9850995d5b4a9ea6b55d22ec1af5b867ca1f115b119eb26592c0a354b1b655709c1ef32185dee5b95bf1b208683491367fb6f9f62824a2ce", + "188cf10880746a6b47de6ac330414bcbddb5fc11de8fb94371d1e8eb8ea897505297d3c76ac0780130c29738a3bf2da956d1ad85ce3161f087a794c38056a91505525c347274d7c8e7a9daaeec3bcab5a408e299f523e349a993897e152f66a09a1fcc8877c8fcb8b6faf476b8119bc21c48ffc8ce09459369373c0959e54087eeeb62b26c92f0684dbf228171f2abb491047d66c814cb04f4fc2e5fa58bf2a572e0f9f2ae2d42ec6a3a8c075f58afb0f00bd388559fb9defa2c5fbf30a409df66db73dfdc5efc26746f2639d1fc984140ec097c1bd8b81bab4362c0229408a31501d8b543e3c813dce7630c03a3523c5c758885805d5e1526ec7b5db4", + "6e17ede65fa5c99ba59735963df2db1de56171e99e3af98f9cd33ccabca8a268e7b8e15f612060c21733d84f62a574256670dfe5d0dc4b3c4e25993f7ff3b0f41e606899578e12a9cb44f8", + "13337be6eae65f51a6820619f80fe57fa437ee29362ee5736901b9c6e8b9831e63a4b8c85096da68b8092dbe4000dcc451309efecd805730bf6ce1748b48a4cca71eab944dbe2b1404ea675aebbc07abaf8c9c476f2bf5b0bb357479d5bcce9c7f8b174ba7f910ad0516f9c1ee2cd91a0e1d0add4c707d8ec867627d81785816bf17094efbdf80f6a18870062fdef45f0b9fcecfd6a37411a1101d911e4304e26dbd8724ed2bd40c0c90a5963e76f2cc9fac228139ddf6c467b001bcd82cd45fe04e3d38213c45e955a7dff7787206ab862ee45515981fcc4043de16e789511447af8bf1c1bcfe14f6da2742761018056999cd40871c26c0192a020c6e" + }, + { /* i=7918 cDividendBits=3091 cDivisorBits=73 */ + "05b94c65d7f88004ef96375c8eea702cc53241f8ce90b51382678a9bc1b8189d53c28b82053d1ad1bcfc2f1428350b58d6bb56647270c7e3ea72f5b2b5931181272d4cfafcd62c534320d027271a83f2005ea34958a4db7d05a9baf169aa89e5e0fef370706bd6d640ee2c62f17ab96f7ac2b0bfd6d96804dd5361b8cd0910f2e59701f8cee039e1c1867fc35c7bfe3a1a3c7ec67b0ceac7bcb1f9605cb98f04c2de0d11ffdddad390dac0b23afbb51eaee86c8a27a0a706cd577bc587158b917b44734a27fbdbc73027ab7950cc871c457540bcb1c589e976d66633f4cfd9cb153407026b2ba95d8f31b2abf74e968ef6dbb7858a8bb880ba63f9eeffc9f1c41c2bee6ae22d2de872a433f6d4f50a86dddf919ba45b13aed27658d2cd93f81da804b4f0b91c2826bdffbc21dcad1eb495e5a366266a41be8f232016aef587d97d1374657773fc807efb748b3acfff8bd7f7287ead55a9473e0f9f4a9789263c996d6390bb4bdb894269b30a431bdfaf20d04671db412b87e5d1f06668d44d393fdf4b", + "2bf6b89b247f4d05cb", + "215466bff8cf09dbabbf188bdac07ea8fe9f4eebec6e181cc2deb7631f4970eb95ada2da36ff0b351a5ace7b096111424bb37630f28890aea971e80da50e684a9d561f19c9b7f64d8a6184bdf183fa4382b5ea68509c1864273675a12287e9bf0aa4dfba9fcce583e906cd1c17b4cef097aacf3888608741e36491439d1b56b45dff0f6814a197d864bb03ed6e8a926f653212b19936eef58a5736fdec400c1a58eb4d5dc9992c8caaab88a6df5924baada6400bf14f5718665554c503748a58c6ffd22be3710de3793db4a5bcb5bbda2b910102d91131189a11b8553ef75dc8fea54c0234a94ce255d5534d1b93c641d1b51147ed3cfa208b04608a5c97963eb3610af157b97fde60aad5b5f13f10624d5dae5f3f863ca134e956f1c958993f3ea95ff7a64dcf142157b2c602b44f5ca75e7de961a5178176aa17ba433eec556318f0616588f94ce2557d9ba1314613041ead57ca0b8935d4e40f4fbb64000017ddb08ad540fe91b7a35347ddc04967d16652bd9ad3fad578c5", + "16b91a4e7c185c4214" + }, + { /* i=7919 cDividendBits=4 cDivisorBits=3 */ + "01", + "02", + "00", + "01" + }, + { /* i=7920 cDividendBits=615 cDivisorBits=518 */ + "2d0ca8dad7cc544363e24deb198598857bb45ca20dc6e7d41d64f974b4af117f0db422cf358841fc52eac758cc4f177f08d098d10d5bae38df9639360364d091b72cf5357f9bd8c0887df8b2a6", + "03958ca6cccb54ee353a2b2ed39e5643ff95cbaa2f2aff8dde37c961d264a4f54a1d8873d2bba8c36d7bc0f4fb2e9dcac4e06512502ae0e7ac7cd378bc54a0d9af", + "0c91a89f296b0ad75fbc3632bd", + "9316cd852f38c65e85a425586bdae941ae24f3ce6e36b820c770827b20ca38d50202a36194f696cdfdd3dfa47b251b8b1a5aed3a4333c93e3beb1a3b29c9ce73" + }, + { /* i=7921 cDividendBits=386 cDivisorBits=59 */ + "01dd8abc1674f3106ba3076aa78aa0a4be944c31c39267953c63ed79626cda6ae00cd77b54f5aac03e6b142794ee08df04", + "b8e917e6fef4bd", + "0295227218fb3c68bd7c9be08121d3cbf81c7d37cc835d246a2c5ac4e093a74dde9d3e6ecec3d2655c7b", + "31c8c4b9045c35" + }, + { /* i=7922 cDividendBits=350 cDivisorBits=48 */ + "2e38d0e2a6760f4f196bf771a705459ad5ea55536796cf782aa4ea9fd3de813fc5db9f6b9da8cc6322c0546f", + "a4c72b946eb0", + "47cf86c6d95324e1e7bf166cd4c054f8aa03b41f8bf53d1acdf420a21fb0d41bbd70df650dd3", + "0408b25a295f" + }, + { /* i=7923 cDividendBits=810 cDivisorBits=755 */ + "5a52aec194bf3d436d2618f3657892edabcad97e1baa30f55ccb3d26251bf25ab1b865f360268e2b540c6f9f8cb0896aed69407d57d373b7ceaa48e31169e0060e2000787ce7cb382b99a96309471332aa0cdf38e2999de6427ff9ee446d599f2c566ad3d2", + "071997218ee8eb0b9124ac132b7cbdd5923697aa7b82c770e15248c7fb33f616dd62703c66e9ffde9e3a6270e63fac162eb72cbc8e7a6a6e78a12ed08b90bd229b58c399c64793266f259f7dc84817f5e393a4a3fb394cb0bf4e7bd0c4ff1c", + "0cb8bbaf678fe6", + "095e4aac27c88306d891a9929eff0833ff656aab0252e72daf6f294fdbeb8ddd1c0e27fa08e490f5ea6abd8a8072a436cc7ab56561637e3875182d9007596aa4f282925a6da048ce6057acdbb19c930d4f78129f9d488087cf35f2a8fcaa" + }, + { /* i=7924 cDividendBits=3685 cDivisorBits=3075 */ + "05b90ef6393e935b9f37beee093bb29b60f868b7998149c08b7efef9c71a34eb5c8ec2cb3dba52f7297255d0cf24adfbccb55ba67066344ed7d0e72cd2b1d165585b3053ee624a8b4ba4c80ebf12accc1062f6660f76bb74b808feb2461e10c585a6b2554c7cd45d77d5ad85b1554c1a5cf782e5b93af3905c607635692680e554fffe74f716a9212bac2a6b751b4b5ae1221a0300c0884d5099db6c0cf8e525ef6cf5a813f847263d48558365fe293f6aafd553e84c310a406e91cd4bf526d97c8773bebc4279aff4218c66873f68d3cb5da7ce9b04640249c04b1059f5dc2e4433981a1eb8c2f7214565c74e8f84ce6f7ff3bd8c3a5d4b901b2835d48b6fc92b930186108f8e0d9fbaf5a35bee4e11960eb4c255b52136468b5a1fb839443da032d857b467cc3fa54b679a0fd040ea366e8947bc193ff29efce41a422379607d634b0dadfee1418ce1789fcaaa260dfab3411fddc7ee341aac869cb0f2c488000c98643240943fccb49bf85b319509e052e155aac779e66e1abff407e78cfd46b64ba24fcbdc36dc9594646a0681898e522fc2743779b7ed6679d3b41de8dff3e5b9218ad54af67c11a4d9c2fddf98c8ca5705bbc7d7bd17a4a3786154347cdf12db8a9a16b8d4b25075957f", + "5f75bd60f47f21393947ca9ee24a126de20cb6a72246cb4ef795fa008d80b9b3090ef26001a0ef3d2615a4f8e10247828e99273884e1fc163edf0d368ac8572a046c9d54817e8066ac55a049a472d0fc5516e845260852b20eefce6e01f7374aa96f15720f01688c0af948f436d13dd401755bf3473ca54a174b884b81d12d0a98175ef4afbf6f86f20e860d4cb67d101c19bf58100b4f7e524c5d79c5122ad4d012f726928cc78d760f18568842d0813eba42daabbf688e93b3d183ac101a4cf29235096602d47da2ae252153d8f69b6e4cc24ced35ca17fcd48cb921a00930898aecfc00cedc6353d3e4a52552c24014b58962d241202d2fce7895a828eac4f940dd8a2cc0763d9958b375fb825438f45159eee0ea156c9a14e20042a56a92ef320184dfeabde7dfc436d69e4748825a1b192027689345c42b5c322681061f4de5ee0216d17958697b479d50f6de898db070c6fe1544c0c812c51146719a4ef8d5afdbc979f17d5271e80da33dfcf11de0582b97700213e035082b7e0319eb", + "0f58ed0be9dea5898c3c4d29fa077ef0c0b1def750d8842d28d45b4f03f04f2d02b255bbf25b0426ae1a77b9c90e3bea1bc99da4b5d91dad0d097723b41da732066e2f1fc0dad9ae52673ffb2d", + "329af52bbe9f033df9161860a764d9dbe8cf7d2170ecbd2defd99b3e0f027f33f5d106defd7daa4e8f259f78e05fd118313de46f901c19ef44125310d42883cec06681ef0c750a58c85493c72fa1fd3bf8ff1877c3eb3478555447d4def830d24dd5e2b25924c3003b3dabb17dda1297b7fd0fef2572802342eaad12678497b95de25bbdfab8b90a4c9be47ace20a72c10ff39717078432aaa66e68328c4f0c95d87ff0de970420580430f368ccc4595a9143b844a1088cd91ec60ecd6f751a1634e8d4338a7f802f978420db437bfcae04896cb48e89c5cf1c6a3bfdf437f1ab9d08c165af5de9f871f666e8cedaa6003ec5202137fe7ffcb1abe6c2373b8af25e0290e4282c9b186cbc3580f96a0995b44bc169a1ad43ce2391ac92bc0837094953dbc6358010786d9a6e643f78bc75eeaba9ba98d6a0b13eccf2220c35c5eeb0747408136b4814a48151a9ef446df17017e85b1e4bfcdb060ebeca8c0c9469518d6bee702215f7ae92777bafddb48b3452991aeb5a5699d2d770931ab9e30" + }, + { /* i=7925 cDividendBits=163 cDivisorBits=118 */ + "011228e95ec544fb9530d069cabbbf90410cfebe95", + "37a58b4c7169ffa2a46fff9a4c0cdb", + "04ed429a485e", + "1eab2d69a9ae5875b8cd31cfb66e2b" + }, + { /* i=7926 cDividendBits=796 cDivisorBits=777 */ + "0c07d0a92b4057a8db02d5eed47eb81a1a359d587ece9a1ae531b42e1b7f18a91ce146bac02c7ef29fab4f67a0ad6d5c9cc537bd345cb7b970ee78fffcc3b39f89517fc4c8e028262dea6cbb74b4afa7bd2cb2c005c5c9a9a487ab96fd36acb53e5732a8", + "01407093d4675aef2755d716fe80a8e766dee206f1bba888a678775ee08f8a6b3605d9cfbb642fb3122658683c45c16087b7d71739f499d0e99b6da1e98acc95f15b7a9375954e1e1b23a8adc2f7b3dcda2e457648723a3a0091489f352420e3f26c", + "099c78", + "a7d8e399641ceb86d10c1b14bb4d37a0e3d0a602a2c57610a271227f41ff7fbaf47a15ed9f815253e48ca2de6e5f5b02ad308f16fdd22f66a4b8ac749ec7bd4f0255da4f8043030b1ea5bd072d2d11c992d62a2c98fbe351a30fee97b765f7c008" + }, + { /* i=7927 cDividendBits=3483 cDivisorBits=1338 */ + "d576a36a2359167bff09fe14fdf49a09bd05dc2adadcfb2451b882f18e2946f3de44ccede77edf018da4055e9e8d3c919b43a34a65fd941e05303b9f48d6176befeda7d9d33fdea7f3a8f6c7316d21301c27a92255951210650ef9b887c9dea448f7b43dc6fa1894bccfd8c945a93ba869c8938b4f7f4c46d79c6acd2bb2ee47d60938eed103b1130d484cd69001b91d8d18ad363a2f4134300d6e438903eaf4555e19f965f83fedaa39efdde38c450ebd6c9d50f46e46ec797d997b4185b721fc06835f3bcdbaa3e4869a632b7ecb1e908e2300afc0247f5b0901b35ee32f4103223f8b5db19f437b3c3cfce6796e69a99b2a65adb4e51bd7b1c8c6e731862459d92e351275ace0930bc8399e125919ff7dc41a27856e7a578c2a432714523c1c864f6efb15fcde12466b495a3e5c2da245c1067180d9460142e91e0d092cbd719e509650071167263dfbdb531c487f43de0dab490a6cd59295de8c1d4bd1ea7494143ba77068c4996d6569f297126b3f5bf438ae7eb3fd349f5529a8c9f8e85e275a21684f77cfdf51618180cd0e0235b3b6416f30a8798101fd422e5a9e982595679404e3cf44d25d9c4f68881411bfa269", + "477212f9458208109cf3cb39cdf66254b36261ed3b8858d6703f2b9621d6d63e2daae3b834f66ced663f7789de97d2875cf7851291407eb5c00a59b426242deb3e1dbda587e9c7bba8c1d4aff427c2a1dbaebc38d496620ed49a35e9ed421987826ee166b2c07ecda47f72fab1c5570ac0abe043e9dbdcc390a76bc031c5693efd7da67d079be6f2662fb1108f2f91ef32b871901f6b4832589c2073359a58f4c35b9812cd9480", + "02fcdeddad0492bd56ef67b4ec4dced4b7db4c916120c6edfee29747053a6732c7d430ccc2f1fdde27440dc50195231845a2fb52c2b7b5d30fbae337802df292917cdf5bf9cfffc1b756eb9393915cfa6264502a107b383b290ebe20dc5fd1b2030e113a33427bcb697c818fff645e6192aa256dd2c893856c78286887d0a3d0050c2b439690d78353215b17edb9bc9b05cea62c27e6c1f9a40c5cbb6c31adca2448f2c0177d7519359c67e9c4e9558da50e2ba0c30b0e51cf606ab6e8bd4cdb3779a056c0d7c6e23ee9bfc9ea0c4349cf71f3bbe0df6c44b38a4397d6b9b82dfd44194af048e8c16c6c37f7ea4efb7f10c33361faab1d114da8660356bd5f6911229edf7170547831dbb5fd82", + "0251955ee54c914503196442f9353d1a09fdf06e6fdab3b8fa8c585b4bd36729c0c728246354664bb0123e0cbb22a52af14b55ee089fa67447f3d7b0a249162d33405b0f347ad1c82d815eb197b1673994fe3ec4c924298ddbe5ceb7f9e0eaf688e7bd0ad7493d14d7d19d2558e260fa52b55cfc9bdf79668f56ca9eddb60cbc63f7c59ce1be258447a438d9dc36bae6afb1dffbacc77e6ee807fd8539eb37671e2461db17b969" + }, + { /* i=7928 cDividendBits=472 cDivisorBits=330 */ + "74910326ab22ae5adc037f1ffcae32f86e950d36c1d0bf55e4d9414f3468c1a6db67947b108d4342d772a34c6edf922bb52046deb8797689324063", + "01304675751283826e416af7bd05e2a9720ca65e971aa7d8827256b40c87b8f0c272864d5e9666a11b6a", + "62128b047d4f47aedc302dc3fc9c76d19384", + "bc00d402ce350d28b99d26b36a9fbfd48ace0c0c93f5c07db57b24bf70cfd5604100843e38ddd83fbb" + }, + { /* i=7929 cDividendBits=3752 cDivisorBits=2580 */ + "2c51f65684b5402c1bbe38d7677877c367a1dbeb577d5cae5e66ff2732098a19327f48fbd3b0be44e05a830e970f635e0c1d96c1b1791603001ae45de8946bffa1e5ea7f170aafcb79603066f7b74c3bf0d8d1896794a1054ef946d5a0d933a126ca6c15ddb8cfa7eba098158874a473aa0509c7a4ffc8034812cd84953fbc1c2e108bc77716887bd1a0649db7315f474f8fb7da03a79759617c490ace71285e81e83db142024a634ae45c9380b2715f1a1c19b7471c92022edb5f8e38237f6ba05c64e40a82cbfbafd8276405069ad9ad293594ace6346ab29b8a31bf4726ed9657ffe36f85928ff5c5e842a64d69f33fc17b302a07d0316460e995923a8f32b46de8eaf0843fb3c083e25250fb0e0f4f27a2157f0d78a97649774d2cd2284d071c31bed302586524aa3ed98ad688c00d61b00922cfe48d67d16580edfc510039458b4ce492dee9c0612403be3f5471e0e88e98b757365e189f5f5bf2486c6db798107381673f0fce95913cbe360d0f81572aec74483ca10477beb4c10dad2276ad3a38dfc17b631385276a46c0b2dd95d1a545b32aca742635247882c9b192760d30baffaa8fa500d27f79ac0a25b835a0be1026fb5c8cf2bdc40e700397f073075304e49d5c2e6e2e91388b5014ed564ed4f39c", + "0bd5f269d144822d903aed57c78afa78c2d81c3508cf92674998c8e099145d4955c8ff49d1603ff9247a835aa21899941eeca702571d17c1d56bb1edad61621ecf8fc1cd2a1daf9c35cd8a73ffe39db9118e8aacd5a66fd31ce513472b07a4cffd04c8918c8a019ce3fb01edad7227889b15361d9f048d351eb4aa338ead57f9c27a3ed733c38490189538cd746454e804a5185ae31a7fc91e2e46170ee78604dc7474a7312c5e65c11b02f5dd1e8baea3c19a0839036af94776e8fa32de964177a086f4c5a87ac420b0a63633783efba64f6c10eff23f8c98e0d1b86c4f118ca14627c57541f0a28628b43d086338a1b376d3ac7db72260f814eb20ba03d045fdf3e4f8b9b049f8a99199140ce652e243532a096c5334d845615f7b74270bcd17ba4e133435121bd230c1619b844b6b043e11e379757e24fb884d296d277167bc289e", + "03be9e9a5b1e52b3820e444093f954745318e373d898f7644f3f6caa044d921f4b6e58ffe091e1d19c9c9f389c9498970d19fce1e0d823ee13a85f087152ea703a8e8872f2969a2adb48db00aecbbe4b3e72cde7b78b733ffc595deb0bd344906f4837fc4acc16d392f1e256ede7e137142af864b1c02a3e7489bc4274bad5c07dc1664b31d3660685e9f5c8b5f43b7af16d18", + "02d51adaea0f6f6631440b9cdbd0e44b42584d1000c733088402eabcabfb967c1cdeb21f2bdd2e09238f7897341359027b872910e422c5b706ada7facf7886ff543b399da6bcd2131ca9ac2c0cb526d9b0ffbcba2ba2070073f1e2a38abac45bc7cdea065bf212dbc60059e1195e0806c9386c58fe97da55699df49cd25db5ce4cceab765b12c9ced2368033ab0e3bdce3760aac4afe588f94a6950d10f67e66e78adc6894e5a0c8f274c79f2685a458a2ffccbbe8acef0bea1fa4fdf035dc220ab2de2273b1a1b738f8f1bc33a3fea7e49878eebbe86210c62e7d32d866c3298cd5078f1a7085396a0b6843b245f8299136a8f58de7ed0a9cb2aab9dd1bd18af1327c33c000b5c8d4043d0e47db7c8c2526add7f68c2a095f3c2099a097edcbff637fdf347eee0ba2d83f5513d3dab4845da44f5d913e1f775f216011a9a1ef27decc" + }, + { /* i=7930 cDividendBits=2905 cDivisorBits=612 */ + "016020924b678496730e83db1a92038f4dbcf9dfda48f715d29531e6cff24bd6a0879d2137db1f2b299fc10593b6b74a340941758f161484eaf167aa234eed6a6ef1b9514221612026b0df172b2149fb44358b49fa6db468c72002e5d3130ab2c8d9e3f750f87cdb5c3ccb0c2bd28ec88f479b40871349184f4dcb4d02616fa2df188f6bfc75ded87704ac6bfad9e3df6d98d79f8e48ebbf5a752b712cf733f5f181608f6a5783b74d4c7e4572bc19bff55e2878218821cc79a06e3b4cacf9149670fcf1e9a584b232cb75d35875ee11701c5bca16e66600f64d419f502c59fa63b6f1891b376bb9b5237ec57c77590691496a7351088bbe18f96c0c2ed01bcb46f2955c6cdc1083589c7b2d34c8a5fc6946c18c3f7c5e578a3adc85b90870ea3c222928ac1b74575ef40d774b8e9916ce15c22d955dc1e01b606f25c36f0379d9f821da101eedd487eec344bf3fba68a1afc9db935b96bf340b1c5503e464d0945f1f07ed0b7494c50c3d5b", + "05503ef900e6455af33bd5b55f37de6424af91557bd1b0a782c4d1b7f1f72778a1e544361bd7f90ed093c92dc2ad309c06a009a79aafd9a7dee6a82576682b233949bd0bc84e52dc9fb7e9bb45", + "424552447bea7d8d16a16e76723df83ce67a08f99fc07be7f28a05cfeb0e030868bf72e1d355d5b600648b58158e3c36671c351ce655e1590255043cfd5852ae01b64399e43b11e9184b1362dbaa6c7db36e4124d5084cf5032108fef654584e63234d51cb0f482a9365537a9458186e4ec9bd4bb7e17b9f9cf669207d3deef6b159b215e51b408ab2a9e05153fc4d348eaf0b59eb7e2ba0fc01fc256bfda6450b03b6361077d5f54dcf675d1f8ebd0e36d61c2f2907bfad11e9d27d34e6ed6b678d5c06276d1b3b95e4cd489d9d5d60f545e8251ea5ef4fe168c727fa156f256482adeaa5ae53e5212b80e8518ae634de921199599909f931d62353d2e466cf92dc9d84a43f010a7670b242ed3f015011e1572d785c81d9106a046d01a1b3", + "0416014e726db895fc3313199a18e0c7e1fe6ce75f6047cea27033d32ab804c00d288845c1f53e760d1c84819ae9e5f20a74cdd802caef78bf209206b0e55e8b5e80b2f5b055eb02831192e71c" + }, + { /* i=7931 cDividendBits=1582 cDivisorBits=824 */ + "378a898132e71630b5cbae26aca63632dfc5530a3f25121a2e1ddb396a5633f666dc90531176702023f3a96014668aa9892b8498bb59ef9bfcd0b70594f5cdac5c29de3a73d89aff4ee23acbd2900f014364256b573a441f445acc9266114ca1f376eb4485e5b3cf80e312d7d838c0eb5100aa92d11a384d19ba4a428170e881903163abf02df2c02249feef8edbbcbdc08cb6764ef333f5ad7cc95a600d5fa82b6aea7f8c3621e0f0e8c92585a2bbe391cc156e710f3d92b2d3e412cb5a139762deae9a6168", + "c108941db93da360de46a1ebac8f6ece0e43340cab00c85df99ef4dd2c82687652ed591dbc4e4e7dd21272b0545d8eb36336d65c225e5aa7f7c1e1e66c42f52d2c600a2e8449c330618ca6447fda050a963de78e4f45122969964090d4d3bfa9ecfc1a6cb4026a", + "49a88c18f9049700ad591f87445f0669f2b2f5e5bc84a0be6b0f975f0be1400343be8c34952dcae19122cd4c33630756dd60494aa2801a65eae5013fdc2cc97b0c7eb4c09c9f96b64939d96dcd931ec778f55099f4b935ddba5263548890f0", + "5bf156ca4d28c0ce8591a697b9fec5827efe7865621537d4b2ae3122d0cf44e112398ad1d08bfab3785dd972c9d8d5dd77d54240fb013c6ae6d2a43b4f1df1a6eab444f83ece83136ca56dbbafb44ae2d25e9ebd3a088f3c83bcc02b60ff9be8807989742c7e08" + }, + { /* i=7932 cDividendBits=1802 cDivisorBits=411 */ + "030a1d4edb1657d0a0844c7fa8024d76c487ebb204fb947e5ac2940a2e240cf44d5889f307bf74a447fde11cb01f40fdbf732e24fd1830af54d2a3e795485e7668b41b4890ec2e606ae8e2c7baeed0d0a4f2523b2dc83d0555690de276ac69a264fde0df6a2777ec3325f3c2cf37b0dbcf3cbd0c2fae662a2f260a95d924be53fac6caa84649f04e68677c4de21afa33aecb412fee2c231329216f383b49924923eb60d0154e6bcf694d1d09f84b75a07d74d36fedbfadc129d967677e2a49465abeca179e7760470022196c75b0916a4b52885ecb296fd093ac73e1822b891bbcef", + "049ce99d8d8b3367ab5e88d2fa0b45832a67ad230284ef000d0d268b249770a02bad7a5ac12247813d50275382d81acb0f29560e", + "a8ae4ab82c832febd2f532c9577f2b094c3825fb41af72185d976f27ce8ab3febafb345408e49616463627bbde37957a134ab3de036a141242a15e758ea9acfc74f45f53f55082e360c54a5b4f7952e84b0300f5bf2715dfbc6628e12fb45a5483423ec73a3c2fe71b4d7bde5f4643187dfb45076934e5758819845cc4c4736a8ec4c33debebe14fc6206932f8fc5f4ce3d8547134c2cf54e6b69a15cd325a5b94390c2e3e88ed7fe3b550f5291b", + "04059c169f470791c154c55e469ab4f12fbab2f8df189a6dd45f3f7225e018c6294c78f3a3edaa81cc9c6717eb3f79f995916b75" + }, + { /* i=7933 cDividendBits=1660 cDivisorBits=51 */ + "059d95606755a338aa1410cd9e8a2c0e8f3e06b0befbdbaea670af6632542505dce92736d53f1452147f17c21a6ab0a5fb05afdd2bb37cc2e2a71fe79b99ee1ddae3e240151861fa6d42f9291a8515a14763466dd85cfc8cb74299ea04862837c7375c0de7560e33cc7553ba4e49cb71d31b2c9041ff9224c21f24a605bef2806f001e1797429fd7d89e5d0e2f3b9c4d0b7b5b3eabfbb41dc74ee3307027dc44132f322161e9224f2ed7845f79c56316d1c49cd8f929ba5c4e8eae3aa6388eb21111dd17987c85816899748106da6f62", + "01cb83ee7c845c", + "0320e3e8657f41b912485a1564508f3416521cf2505af4a3369c03da706e348fe9fed850bf4e8d203c48e01a49fbdf5fb2e9f92b6d3c0110030dec85070222a49e640d1178de3a69cac7690fb8f6a6353e898bdd60836d33070d806329c70ebe00620270b5823ffd3d75b6df9f06392b5a92f24e92b7eab4b6159813beba2608321bd60cd5d9a3746c146634504fc37545aaacd5aacaf640bb720b51f5b3bf7dd826674ffbe7189138f4b82098b78c4685cd4e9bc53586e4e84041ad9f0d0514bec153ec7a2468de55bd", + "018b3a75322b76" + }, + { /* i=7934 cDividendBits=1758 cDivisorBits=989 */ + "3777946f98181cf6908d07679ed0ed4034857fd9945eb4955bbad5ea77d7d0d30091214e56621c7c548e5c1536b90ef4037b709aa2d689aeeb1f6fc87c85cea13f9a3743742bda9e895876f5ec5880aa6b9c017e90f5e220a81f9ac4adf6c4ceb3c52d024aded59843941d4dccbd54ef8dc4a28f020ddbb6c22e4c6157dec55211ff3b683aeb93bffd862b3fb93e1275624f8c0bc19c0c4cf635a22443338e1690602ab36256644dbd7d14d2ac140196901cbc6e717c7a6d30f49f0f03b70651b5f7ce1a4ed16f0324b32a341e9d2f4f1d2afa95471ea63f37c9368f", + "0af6794ad46cfbda83a6664e66ad71fc1aa63b752e4133d63316a30f1d72e49ba3b03993126f3dd2d6d5d811e477a9c3ec725fb0111b4a2a455cb6c873d1fd7e5e83021ee231b92f8e128d8421db70ed79d4b1222f81417981a83b0109854e8c50592b6b5533ae28f8db6e520547bed8a90826c0059b7e6274078158", + "050f40a946ab806eb2d454efd944eac50ab02d6741d8e5f6fb4ec9f003a2b0ddf4ea191fde9e0373320219eb4f0d340213c78b08bddedbfc00de0308f363a71a1eadd83a7d5997725538dedc8012e9f9bdde68266e8c4f99ac5b48717649f0e63a", + "074515bc71067bbf06fd00f7324c8f95a560d5aae98a392ae8610ab4a437a89096f0cdc2439a44f6ac081b5a3fe68007a8c67bd2aa4fca8922dc675150119dd39c040a9d1b02cd99b47877e4eb6d9b69b6070cc53bcb313e2034e2c95d4c2d4f0ed90bfebe1323f0838bd078b9b2b8aa29fd926a4aa72e36d560d89f" + }, + { /* i=7935 cDividendBits=2669 cDivisorBits=2535 */ + "0e885e70230e3d36c932178baea8543ca059d9b91f64d0da118011b647d46747d1414a824aab8a65c62630790cb5002a8d41b3f008603fc1303e5900dcf352b0ff7fc21ec1d6aa920a6689d6df7366610d08696eb9db790b1bc4d5c497d7046c0c99d5582ace9468033cee9af1de8259dc9d0dbc233fb39f169586190d606917c974df88aa984d3f7936e1aea241da17ad67949889ec2c1727398d3a633767b0f01e4d2ef9739f27232a4c2dfc768b93313be1276147161077480f00d356f44c66856d7ef06624a31002ad975b2d4c9293cf5463610dbae621451fb22a3f014a3fd13575b85f27b9117cbb586a373f187a6a84e83d2d5854f60d1c81135241c249b2e9a66a201a8d0292dbf4944ad0811a1d073689978676bcd43defb528d51cb9a59fbc32f4a005862dcb43515f8858ce8bdf28f9257ce9712ef51a9f18b0527d66482c66b7b2253307b866c22e", + "0856619c53ab87d0e99320e4ef37cde566c06b205aa893cbb65fc0b07c771b122efa1dcdd2a9ac5fca720d9afbbdfb22350ca728039b30cd460b3ab97836ea42519927fbd1c273aa444488168eba609b8c3656353ea9b099d63cef88f6f2e7ef37330ad3a44b729159c71bcdf7a15848e87c2974aca46eb698d6a2c72db6811071b3a24df385d9d5642ba3a5ea2ea15e9002befa9f8061b58bf6d3a919157601a2c3677ce13199934595909f4c77cb7f6113e54bfe0e36e16a8a16b1f8d167f6b616395146374076d897d6c889bb4f5953ab48d125e7d6f8ec7767b42937a647db68244b3122e180441ad327751888e710d9563d80f3f59a720ae595c6c599c04f9c6d52c971a37563f6d9302863eadb71a37c48c58225988992381bd8c619eca78b076f61740a819daddb35a3b4e9e8de10942f479034c27136d8dd9e", + "01be399e16b275d65c59b3baa8594a3a5341", + "03eedcbf381395bb0a0bee74bc110e08428322ab922242eaa3853b0beb3ba40934f335a4f5adb767b1c6275c3206eb2058e93eb06499726af00031508852dd71f553288feeb5e2a5a9b3ff0f960161cc112442dff5d385e9abcbd23cc5dd2683f8ef3bbe266b100172240dcdd2811d5fc24a3506e2110ddbbe9c27c6ec0800257e840ce5132673c579bc88751ea98b6cafd537fd41a161ef0a7651d09c8f015f6be164ba9fb4dff356666dee3891d2270f6dc5965ca2b7681efe8a3696e47e53ba4bb234562faaac0c3ad7718939f3240e0cda899c75e89b4bb6a2412f0293edcc9b843b6461ad6e86aed27bb3d893d3bcb7e31c79214b47b08232fea9ebd1018a1b90c2c61a4e23d3f631ea9929acc43566e90ffb1a1a264a4add5e6e80e75e3a451d6cdd36e1b34e960dff3274adca17f6a70fd35093466099b04310" + }, + { /* i=7936 cDividendBits=608 cDivisorBits=83 */ + "70fdfa895fdd615eddcc4f826ac15a26e30dfb8f23a29caf6dba4b1339086847b3dd7c927cf84f5bb502858b62081e938dfdd8d450eee21a58a28ad911fe0d624f877d4a7c9ae83795e48837", + "03d1495e81937da208438e", + "1d9927499e0f334fd562cd829e6bf18547c8c5f42e9192e7ca0ce03773d4b5461e9a72057de51a81bf02c6903b6226760885f1b318aac308403d9d522372c946a352", + "02bc5ebb37614575677abb" + }, + { /* i=7937 cDividendBits=350 cDivisorBits=200 */ + "060f9a63b39eb7042a8fe19451c54d39a53d333b053c3c0c01a14ac6b7748917fc608b2c2e09d180554dbb2a", + "22c5c94200182c282b0c7c37632fdebeedc4126e346288aa07", + "2c9f15c06551cd90e5250e34c1b7dcc36e2300", + "18cc0cf80358518760dd982507cf523d186d2418c7420cc62a" + }, + { /* i=7938 cDividendBits=2483 cDivisorBits=1569 */ + "08bf7ba35e0e016ef2055388c504e80187ab99727354d0749ede7184c43c19e1bbdf63d9cd16a4544a7682bbeaa3e38f9d486e4340ee63ad8673fea2b7fa591156663f29950ce8c2ddb04104a25323690e97e8fe80da172da64e1932323e624884e3b4c6ed8deb07c6fe43b0f81d7eff17ccd516505e673ca880833bc56de10266c2b5b5d6d52c2962b7eb1f1b430a9431dc0a0bb4ac273aa33b8ee375ffb8e1bebd08866739275bb324a17afc73cbb6df9d90b9d3f9c263abc5692903002680a90c6ecce0c35017470dc0ff75c84cf3d424aad3a23153c2b8f5401b92d5c03ede9063ca4111c8ae69f4008808809fce4a152ccff402d35430c2b1120a1ea5e85e6d0ee90ba3a1e2b8e75e204984d22c7e59cf752d46a5e01d863163e49dff4a39f5f5aa2e3db8734af7329742aeabb825c8f2e501e1", + "a4f88556d9680525cdf1215b644184d6daeab5ff1734101fa6cf28523873f9bd0d156f01fc2c9fe55307a9a0b712103098e70739f7f77682feb6c767b149ea1c580357edcc6776946dca535bcc36995f49a023ca82b24645438c7b916b0c84e81612adb45548a7b6dca2025fe3b4756bf561a5badd61ab9b351c56ac544c6da9e2a1db00ff5adbaca6b7f5e251ad4c968b354c8f0c4b1977c5ae3408f8d483c43e0899d68b8f71830de76cf63afed03c74596b2e950a21b81d7546cffa9e288ab5931f4e", + "0d933503028613112d052f825793c466d04c6d6bda601680274ef6d01970f804efb9feea9dba651178db006a42c1a6fdd12997a52aebf1a1281725b08c6a16a11f1b6113bfc6fa7c5fc178968c1661f676dffccffea7c6fd911e00368269915e1a2874460ea1176fc3da6b35af4da64c1874", + "a021fb513e0330b01d8252e9beff5b28699aad95d47ff899bc7aade30470fea90e9e6aef53e39596ab9ab3f69f1716e90494ed4226cd915b5064bd6401f9033cbc9a48a1dd8c85cf7e9e5c71e4681a7779e65fc64e5795f1f0ca9a03d854e1cc845a53345da07ede9a7e1b57f71600618c974782e56d799b907df283c5ddfcb25d8e7ca317bb6926fb5e4aa67670fd968227e353e120803e7f8ab15c1e9dda8878aca065849721d63cec805fc5a9431c24e680e725dc6a63d5b68be50888bb7902238289" + }, + { /* i=7939 cDividendBits=1908 cDivisorBits=612 */ + "07024a151289c01cad170117e4fae844e5ade9c1215d5db57d9b265a74d70ef3fbe1bae81c9ad709a80023d88df17196f72853ce5a00cf946074f2313963733a7679d17f986d091ef04c4a10d0eea684161121d7bbd5db950d0c1f1348f09718db50f18f0bd6e68dfa69b3fa0c96b29b9973c4b913ed468da9febe744369303d48ab9e6a761fc6fc248dbedc241ab2a0864be6036d71940fc72d0dd7f215b167ba9794ebb300a0b839dfe748a492b6f00e4b54b171c82f7ff8c770fe169f9ddc675a285d7f7cb27209d0549a469462f6ef334716502ac5564d815c3cfb49dcc99bdf8bb0fee2f74f537c0820529eff", + "0ada7ef0f97548dee828afcdccea28a49be234e9374c3688e6571915c9511f9eca217a189f0d3c42f51782583b0180d0833586db7e3ec3491483befdc6079a48d78be3703bd4c5d60f26d04cc4", + "a551a833fbca2242d00a346c71cb1f1bf60b4e0e78d0fecdd41fe9fb1cc9d31fdac87e25537e93348fca3e55630906ef6877fb5bae4441bb5fbcf8e40e4076f29a6a49a5c506abd90177626a4ec93484740624b447a72967054f95bb99573973eab4bf2e58e370f2a4ea939afecd4905f0d94ae230d319111179e44daea2389ee8912c41f97b800151d1881e055edf29f4761691dd8b30a06729e497ac2e88078339", + "0578b01e3654963aad2f700381e1110f4a52901e789a60d5ff5bdb40228d468e18c6e58357954513f5d4ba9494fbc38f5912d42352ad8cc2f8782dc780afc30f08a4a127360716de19ab4d3b5b" + }, + { /* i=7940 cDividendBits=1763 cDivisorBits=1666 */ + "14b6b890adae97b1e79ea1cc947142798776b5d8c0311ccfc139edd12c99630054d0c1bbf8e2f2abf3e5e58b805310498a6ddcdd6d8a66284f20336ee5abddc88f4dce48322150388efb16cfa460471f4d15e8171cf6b0457ab4933b8e04ef301da346d842cf7488335cb706f9c4eb64d318f77157edb8727ba697efbeeccdc8f8e77f7504c1cbb6cc9a5ec00f319ec6edf742f3c12613b5cf209b4b2aa9c17c48b4d9b1c439232c28555430ca9707ef19e5db2823d920ab17f73b5d3409ffe8a7dfcadd653381e0cd790fcd63287f8409dc6e19050d0e1f88af2b39", + "01727e443e5f1c0957bbeab51306cf91fe2ec6e5d1d60323b778735e3f33bc627d7f275ca3a03bc2d32b811c832c135018681e08acd8c7b4232ec0b8698e7ae9bc7858e89901130cde823ccbcb202f0a3262f09fb5ebcc04e3a3a1e723c67c536fa482456e0bb43a6a6b64c0dca8248302bd7a952224cee1450e57a40994b73e03ffc23424a180709ff69df7f8584082dc785791732a50678be1d797c4beb92aa7ae815e9d4dd700325682dba6182ee70aa402946291ebaf41a7575c3ebbc97118b72496fbc5518a7557708366f5eb1e91", + "0e50067a4a1551ccf5a863c0", + "ef2b06884337ee8e34b53deb54f8d2a50596d10261d1fed513c44111b0a3eae4107c8318b53d9f8147334254828aafe6006a4e14dabb20ddfcccc634ea341b2f622b4be7e67387cb34d9313e70ef6d24c307d79bb2319b2f36a3e17ef691b9688d3c58af0703d54a5eea862f36ebe6e3c7ffd6b54a0d7187160618c2d586f72cbeda15e5fa92ea79f1368c17e9fe5f6b6bdc20f96525547737a93cbbdd8dfee69afbb1d87e4a5b626d5e35be6a2112fd39b1bba0a07ad5e9a46685d2dffc87d7874077ff58a0c19a61010cb4575e2b79" + }, + { /* i=7941 cDividendBits=1339 cDivisorBits=985 */ + "7b4095918731196c671dc78f9c02a3d18c8a4788c26c607868bd288165c2c19097e28cd55a18e9d82607bd5e1473afbff2927e9fd0b57a70251ee50f32411a5095cb9c9d9f8769b44e086be00b01cc90cfc2d81dbb4ddf56b6a5aea56c182389388adbe330c6fb8b5c6fbb81559fca8a4e926b09cca5ada5f5972306ad0363e0e911d170f9fa32d7cf09dfc6be10f37cd67a74053d0f0bc1f4c15488a2a09c48cdb22ae4c2ea17", + "91ffc312a89157233f55c743183ae372ce1b646e82b2329521238fb49fd04f75666c7a329c2640a75ec34762c40b5224e2676f169b9bf96c56ec68cb0b16cef434cc3d66380963269131ced65fea1a990aedb9f50c843a11ffd51e35b7b6acadfbb5d84c283690b0c0e2a214113cd45ddb78b9b26b370c6a3c7a4a", + "d81d6e789e0e22d9ba7a23d1da4fc1c87a9d6cb6fce08318f410c51319553b318102f4c5d82054c722a790a8", + "6090fc55a51849ee6bf142cff4ba7b0f9a36351a67c3a3774ec5f8ad7aa2fdef0690339ed29009df3d77fd43820feb540b341b05c4546c3e29ff1509f52620e68eadb3ee0d13aed5204ca6d1938d1af0715ed202de06adf6d990c2d8c71b00a15f099f67f089143d71fcfcfb858027339881f02de1e90b8e030987" + }, + { /* i=7942 cDividendBits=2271 cDivisorBits=1093 */ + "100eef46120fd4f4b01bbc9453fd9ce3a582248bdd2bac84a6732380043515cb101d732331831a267da795989dece02d3a97a0447d7f3ee0d73b8994d94094726235fb3a79d6d8e64e49db341351975b9af057510f2373431ef93bcc7a832485e05d3a078a364b19f569bd79e47c795191d68ee23c2689e279fb651e771500d95548195eaf46c70f9b05545e74bc63c0abb8c68e410f8be7c8a4f1a272d3a59f9768a0546737afeec0aa4d8968129781588fc2013ae1f81e7a9c82d97d37f7fc06fd40a6967b2f0c4847dedf88a83bf57ec1b7ffbf11c6a97d558d6b7676000cafdddf3e8becbdd281dd32eb56276f42d44be721a8017de27c07785171a8bcef9d6612dce7ef99b68d6f9c628fd0075ff62bc080037f9b4db14607b3", + "1283ba76f3924c991e581b599e9feb332b0d8ecde09846dd20a96a1b9e38e82d178fc810df84ea13b2e75d126af4e266e360e24625d391e2599d3034b10159d5980abc8f84f7864d7c9978096b4efcf90252a1b2bbaf4fb39ef482b348ca466f1ac20b516b5ce689ba0a128598f405a5b32ed5bb5e4014e5419efc7fa36bba886348bf2d8981c447e1", + "de09b2f5b2e62c14d7492aede6561b569f60d21a013f9b748145256625c912853626f9f07c0a2ad7dc450a4e4a26c3d1f4c014e95ca8aeb5e083e09f1fbb925256c222e710a4b54e0e1cd881e2e4a8e159492effa2d44a01b388a7a5a38425a0dba3c5e0619f660a490df1fa996fdc17053b47bea47b3c35e712a4be81cd4b3fd9459bd0db78d4b1bbedc15e23ff8b72f47ce3", + "02612a106bd6d2f1be7740106685d0d30701f612f637c585c2e5255fb57134d1746eccaf8f95df7200091a97092b223f7f2824dc1a837723969516350e5d4236e71dc0a4a8416fe48032f93ff91dd8dc5db811b5b6a5d3f74b162537d89ca9724d47b1cbacfe17d12092ed202a6a9cb8f3fc71ba2217fe607c82c3ba539d3140f3da236242d8f54f30" + }, + { /* i=7943 cDividendBits=2798 cDivisorBits=381 */ + "295883275730bffecde696633a611309795e540e3f632db7094c75c6730abdb87c837bf1871d653d3291d5fae80047159edd68f9b2eade68c3bbd9c94524aaf8434b04439b23568fb76afd656a7c3e2557065363762b6adb9421fda41bb7b51a7a2fa0ba7bf7784b4cb2b0d497b7dba4033a030bcd5816c7c933d83603e107d35b322d72493ddfbdd250e8fa75f5e912f9ec6ec6fc957f8d94691a2f72ad68ea29abe5de1b0f9e9fe98bb0d47871b5986d7a291ac2d89451dd32536198579aa274d7855dca76b72d68ffe1b86cd3d24bbcc0ca8f21862e4745943c6a152a7fdb1a9222eecf63710bb8137df9f678a75d7aeba69c87747a102cde37212864ad0799d841f82f69c06668968fc27281e883337d27b2ea69dad0a64f42e0fd03536a18af41247a94e71475482c2ea62362fecf3883e46ed5136bc6c2f009b490cb95d075bb6da99abd2d9956584e90e3a4a72b176e11e94ac14f4cd339b0c42c", + "fe6ff54990b7e77e239254fef0c6e60079c5f2710d8ab4c6ef3439bf3e301bdd68beb49459463729ff1acc6eed770c", + "299984c46e86ca4cbf57fb1da0d914d625c0091b8e294a010863553fc724512e21a6bca69b8957a4a68efbe6e82a86336aaeea5df3e4ebb6b2e1c6e3acde201aeba31c5faaec197695293d5e11a11c0856c7717a6dce769de6ff701a39a698c1640a219aa4201d8453c4522b22a99f70fe512593c1a4f3c89eca4df333edb8f2645e4c6caa08a66c4287f3f3a0bd8e5529b033c222e421e70fa8fd476a6bd65a7c9b07c680025318955f62dd8ba3bd797e5d104416cf9221b763508e3126f609bfe9bee9842d071aa50e8f1f9f7c8cfdde6f49b1d1809e732ea89bf09ef292ccb6441310d06955aa4437b3622d995473146187a008a3f1b12678ab534a99941baff058931d724f1989321502f7ef52d72f81bf4eca247e01f994ce0b6225f3cec478544469baada792a18e29c0f4ff", + "6c6751d0423d233615246915a1444ca7fcf25bad8336d29e6efad620f82c3450bb9eef2feb43565722f2a430afbf38" + }, + { /* i=7944 cDividendBits=3490 cDivisorBits=1611 */ + "01789ee1c6faedb733f1f702aa105446407e86d57995423ff950b60279556f02a17b0778c7781901a35d60e4e84d0ce60df5cb543a3227c63a427a1e42bdb69cecf4f5cb7c9294fb55c07b788f11c69d489dda1c9362875f2b43cbe92b805ceeacfa7dbb5f770061be3d0242410bb24dab99d35997b127fd451cc617912494527c3e0ccc7531d2f20f78c23793ec635ad561116950cd5a6a4d6c01c406f9ad9b57937534e106a1fb3c3d88d5713e6fdfd9fb09fbbf22d0edc6280c5eca037ab94e750d64490605833d9467b41b91aebb4fa93b1912b805130fc2d65d84a25a812e97b6596e73e44c6e460eb8b4df248aaedb25a34737d1d95f06a3bd8ccb3d6509e6d0fe65276ce48ad304e9146f0cda6c6a956bb8eb912a19137f0a700a8490fd638102b56210328bca65cbeb6a31dcde621ce55a3cfa0ba1681c541686e06df68fd29a83b390d0e9b685bc2de8fa01e5bb7b17563ea43a1141dd1fb18d0ea31b608621ed845b69a8c5c0711cb7313db9c82faabfa30af5f54229b52f077e5d72636fa8d9aefa1d3763391096a6dc951e1f267bfa524dc5888f62551b963551ac9ba9149ddc44aada03474a6a507f82dd0a9647de", + "078efab1093ad4de3dca2192a7fe2ba3cd2bbaa9f2003ca7a58a836a416eefa5b42bd82e412bef3c502b981e29fc8bd80b80d431fbabea5758b66f448910520ad7e1d01c8bbb1f2a7f5c8225e4fe9228d6e7bebbb7ad90b4fc7583df33ff7ef6c17779cb96dd3ac2c5a08dbe825a029374ea1bec55cdc6fc12212d94c6e29cf32e039b4087ac3226415ff8617324986d408a4011e73ac64fd918568cb05a753984261657f8e833b254e4e67140abe284df901a41d0dfc767a74f63757fff01ab29fc41f96d5a90303747", + "31d3ccf84448c51c339e39ca78a20dcbe0e62a6e51f33e374c96c6a202a80dab2a87b37a6a87c9ccf4858e42096327e361005771c8899a11e0018025e0f4eef0315267321180d2e8c48c5639e6aec34848a58162f074f61d4d3ac06a1aa515c1af405e3c83c03c9cc68e3b1b615b52b4db3efd5795f7ffbc3f1315e98a32ebb4eee26c5f981fa35a9f4c0cc8b5783417db5cb93392454bba110762df9687c051aa293762a3bf9fd29b8eaa6775075410f5c66082dac5a70ee7e4ff3359a22ea22c9f59b365e1a550ef1276192d8f4e04924814248e8c82967f299b07b430f519470023cc67c18f10e7754e", + "05ee094721d1f7fa0ed76a57756af37d3275d5c7427a8893d6bcad46cc5f3a873c3b305d47398d12117657548cf38252895d3b0e18166b48f3df9031d0cbef9cf57fdbabf59f3214300dd343394bb843a33add41775d822adfd1a6b0a26fc7e93a76330fe0f6a5fde643b35a537666d00a61471050a019ed3ae5b207b6d6e406b6792d4b09f5d2f8d3bceb2221ce760ffd6f8dcb532d81698ece51586aef26476e9b72847838969e3e6b89443c69013d6f92623845e2deca577780b31e1295ccbc0d2b9e46bfc190fd3c" + }, + { /* i=7945 cDividendBits=2628 cDivisorBits=911 */ + "07599cecb7c8015a8944f61feb2e6f2f283c8c5ed4f3f7d7c85a1fe85550bc3c1a40b1279d7fb55f079ec23c567b93c7fd0a33773f35fad801f6d2616b4721e7c1d66b4da391d3f3bea10642d6fc750ae06f249eb75a1c478aeb3e6cb594f9c957f4117ba1ff527cebd9cca70f0e3d114c2c0ee5b0cc929a42ef091b13ef75043e04faa7fbe06448ed876d1c308ab46c4e4f7a91855612bb3de6635e53e86fa648575a2d2f2f4e8cd9b455979e39953f4a34a46f1c685aa093a307828969e277c7471ef61fc091374977111ea26cb95d6473f387bc7f3b6fc5f46ee89e02da542b88666d01a2ea88dc0f58726443dfea6ee58e259111c6fc736b77e76727749f958405752425095c53c523986129aa68d06e382a10e9a525235a50627b40598dbf24a76c24273676f90d535b0cb6c783a22448398ed3dd3e27f623c28ba1d9855746f54604394e3853", + "59921b61007392a97085e7a7f5d50b855e9f1e8d0aea1d8b203b22f365a222b65fcc56096b3703bc3cddca3becb23060310bf5a36fa13d844e4bd4ab7cecb5899c710854d2df9f57d79a2a8f21d8486f4d787a62868deb23a65dad8511c0e651b985ba8e2e51d87f45b171893072d81bbce7", + "1501cb3b6f6995a5baca67ed6e15a936b5c411a25efbe8da07e26349011be8ad91bfe5be7ae6d028d162babe517bb21c15a6f71cabc85ea420d3cbcd6ce13ad4f1d669bb8cad935a62808c7063a0aa318ae623586e47dd9ac396d135359548307d850948991ccdf8f7deb268255c5ac99e335622e071aa2768ef5080222a2d8942cc664e47fe3b4b8b32475b3c53a081a3bb94a634d416982babcee0855a98977cfff43571ed3f73293fb59564d01f1eee7a8b3c29266f2380bc0e74864b938024e61d7d33ae0635d0aeaef3e71ab5b31f65d171d27b6a", + "2c00d1af94155ab9ba65da80bd56c16f985096034c26ef114bbed3caad31102cbf8968f9a35ef01465836ab4e383daa01c9cd6c0f36e707a524ebac4f2cb9d8df0f6bcceaf345630d530d202c420e27fcb62e56d73a77a2f92a6742b601386f557ebd26b3fd4059f449b252127e77d9103ad" + }, + { /* i=7946 cDividendBits=3707 cDivisorBits=1313 */ + "22c85804541c3202a2b8e3bb1616bd5b4500ae43db6c1affdeedf8509be74cd91922da48da6bbd62e5d322912bd2ec24b5fb51928fcaa8f2451fc82d8063d5156bb9412fe79012d4d9bfa2cd560429dec4ae9a03c9474d578b08357953a729038f14b4270938fec28d36d061eb576bc05c4ca314c303b0aed458956eeb1c45e0f184d2d515064ce01238b7af5cd985e262f8c1daff0208be0dc941099a136a1f4dd3a9962c0c59b45da9bce3042f6708a59e36c3d6a97e06bc9000354374b570ce6d1da86613badb9b67e01bc2c3cb288ac10c3e8477886517255c56d5fba679ae0a2acf93a8ad53737cd3798a1f635dc964d6c9d09bb76c2e4ffe3bcff2d66f3e9b7955a7199e736d5f9c8f2de739b70210676ce4ef7385fb83d63719ab1852e8b76f73e4b5a34181249588afe2e2bd97ec048933831cba18650b8281512d4ea1a71ff804977340ebdc32d61fa1d5f998f3f32b451a3304622b68b3376de653b5dd7228678aa3f3b3485556f419b1905a988d21cc6e65e4fd80b8d8a9f344e8a7a3737534b8bb20b0d8b9b86d0886416b51e7b0cdfaa305ae68a82adc61fae15d76576429a055544471785385a43235bdeb5ad45e0fa2a85d6393836c09f294618809b0f2edc0fedec65831b98093", + "adff05840ee8e8640f21513b8f4f3132f3aec22d0a77970617ede355b11da1c60a36af7e0175b71dbbeeba968eded9bcd3fe0b159baaa405248e8ad617bf72d1e3c9610423700591e04632822ccf74060aa6e899947c34bd32dc804dc07148be12f0f5c5c24f09bf14ed02d57ea78583635fe30d6b0df305855a8c7fbc4d34ae06ccbc7cb08e1decf4984738f469b7e16df89aec834bee5111ec1252877737b601e6e23e", + "332cee7a1737ca74013ddf490a6dedf91410a0ed7065e6dec8ed30df2f939e616c5974d9156f9dc30b9775eae3aebf9d592c2b0fdd19d207f2af24f632a98e0d725a0ca588a230dceb54dbff04bf2237d46f006703955c26128fab959ba3fed224bafe2a23b8f404c8f2b8c6796b43351bac28c07f358ab173486f6ed0b7b901ab1f90de1a2c39af69a194b43332ecca862a6b270b7cbbbb2f6c673d0aed156685f8876a9b8c192f820cf6c9b266ade84b326fcad99bb45f52f41e3618aec0fc675f06d9db0def054bc460d2ad1902de0b556a8fce17b4c53cccc509464ef9439a6a814dbcb4730f73f3f371bc6dce72ade9ca29c7a4b6185bfc6023ec7732071271040ccb9ee50688ba3a96e1d3b7d63a3ef030fec1617c0cfb948d18dcbc1c5deaba2be4fd930dfc2805", + "9e9e86b7886f7ece16d445bed949c587033c567284b6f0036489733dc9fbc235013375fd7081036d044a81a06d5344a046eb328622c4476c773567f3d4d11ace196103ccf09935a1bee760f0850ad222401351e3f4738cb535c244ecf8784e3acaf0b8ebc2749a9f4ba5e89c93355b6df0b3dd0929ae702c8890a391a3cb7895d7730c0e915147dec9385d920d13ed41b3b91ec9f35c9b680958e1b87530772039d5655d" + }, + { /* i=7947 cDividendBits=84 cDivisorBits=31 */ + "0680ba8df5c3118d3fadb2", + "17c6664c", + "460527ec697467", + "10e6151e" + }, + { /* i=7948 cDividendBits=3027 cDivisorBits=2626 */ + "0582a01c578c0424348c1193db6569415d11e463ac129a6569523330a42cc867f24ffb67ac3c31f90fbd628749b0e04252979ad020973a1ac2bf16085e18c84d2e23915d18e69c283214c7e028194a731537f361c82a55f17d2c4854cc8af4312d1c886fcd049c276bda9aae56b6471293fcf97c06608d62094d272a3caba4704c55ca77b5077c228b097cadeaf232c8c4281cfa8cf189e3e2cb472b8ce5c9a20ac8a77b03f3f70792c58ae2881ea00935f804776f29e90c077ade33467cd79a45d3a87e0536700ba2261b1cac5c2d757e54c770e787530e22fbb7641623cc5febe592cfcaeb717620f48ce09789ee6bcf143c9cb5e6375992d250dc18b58ca556316dea0806321bdc6e07342f0dc7a41e7e920951725901c93a5f80c83aa594324154fc71e2c612044f97c4ff70e7d900736972c2b3aea915a190cb82a4715b7823d6d3a348d40cf744eb5d6a32125cc3f4f35515dffbcd3cc548c5780d8ac36f965cf4f576cbcc5280f861270049d59d57b962ab5f2d8937f2b5", + "02a697a654b1e9e3b3c1c354664184c4e6c6e435873a4baf54999aee624ab436dd775229dddc0954f68461411610ce96e53b9143659e97028cde284cac9da0ba0abbad389d4d99503e901af786ceb6bc5cee7b658440f2275b9d1413efa29d4cf113e66fc61c330773e7254f9062fa1e21962cf2042709db34ff8eadfa090babc124cc60676657febdf6276c1366862b213d5b1e3dae7bc54ff7b742c00d0717babdb10d9bd534325480b0b299863739bdaca4f18eed7f7a29ef4582d091408f981b2ba2a804b135e2a3c0a3e30cfa4c910801cabccc8d23d898eb6a58672e3416ebc589257bb986c5b44d738eac23e78ac437add0bea77cfe61c59e6f5e7f2e9e07ec937d2c8242fc26262de6dbc9e8465eb94ca44e87ade683e059e35b2037ac932e60742ee1b23a08ea4a4d73d4ddf227076e0568c679e93c28bee85161ee768730d19057e1d939", + "0214291b4ff135685fe3504560cfcefd792ed1dfaa51c8be106295954120733f098ff2d479e83528666a5e47f4afe2c15dbc99", + "bc9eb5658be1ea5c023f30ac90a25075de08921126dcc4e9012fa2cb85ec66502bef0428b2feedd5faf3ea516c6df76efa4efd39d6daff116953e376f3d196d247086f2441814c08b6488c42a659401ba13f743cf091c247f8b0ba4553cf55122c7eb7de3148c90fa5258cc3586d4249227b28cd6b7cc44e1b31384c5b442ed342bf64fb20ae7b3931683fc6f9d25b6802ed3ad4a5bddf35546588ef02b4bbbf469f39705f25ef838b5d3e79cfe0cc5fb3ec776d71e21c18589fd9c0374a1b81c918c88e93f5cc7c90a5a3b522d3f4265b4ac4c498b146a632702bff019776c51b845bc6d145170bd6bba7fe90ba85ba1e940c724bc5c95a67a34cc48f699f167e94f36c45f51cd33e62e78b9bd8944ce6c82ab46556868db5d5217dbde1f529c0ca6e608a62b086a3dc5496b833b2174895194c43b3a1b9676b507f8e186beff6b3323d450243a4" + }, + { /* i=7949 cDividendBits=960 cDivisorBits=236 */ + "80789e2f765cbec4b24bde4267ac7844319ad5d5f153715df0ddd515d54c841c1bd74ee10715714efcdd4e819ff859799e78c35f3d2ac6310215b75e57acfd4186b690ecfb7ffb107d10ed2ad4401f42d1da5990343dad10e2632cffdd7eae2e436b293f75fcf967c989ca36a619744e2053a90ac725a7f0", + "055e3617c376bf571378056b646ca86458483174d59748ca8843bef6a657", + "17eec6e96a10c1c1e0130b6c2e1ab9769407e2cf873d18612bdf7487b24b94f4ba0df9bff4c78e534730af4ca3886162cff13370dd8ccb4993926cb33ebb6bdb3918fa739b55c805f447cfd7a0005e0542de9eec66190e37cd69fe", + "01d9dd7629576c70b841d3402b868165bcf54676093826d02b7e3f87ee9e" + }, + { /* i=7950 cDividendBits=1642 cDivisorBits=142 */ + "01959f617b03bb1fe4ea8e3364b4d570d0324669f040d1a77ed6112e0731f20b9803bdfdb6a1209e128bffc5a1f63f37725aad2fb7072e53ac6a49de13ae4e3ba97de6bf793b44073d362fe6113a07aedeec29815752a2e72b305ecad8280c1fe17264f17c2a37192011e5929bb7e4df821356c107e2fc388a3316ab79f6a4043bfdde1cffd7cf2d70cfc8923c56c2e6c628b7717547efc050581cf346f27e381e1623028523a907b867957f49aa1f48deb364128d8e5e1eb725ccd754b63072cdb4c213a1051adf254b40c1f2ae", + "1cc5393eeebbfa6c313e663d22e1b513a27a", + "0e193e32922e962932bfc8d716ea70e34ecbc37b10ed7d8f2a8817fbc28a7829ce7ec3432e1d252376beb2e1387539f7b6da5faa0c5de13307ed980cfcf3b5ed42f61b3057dd4521cddf4bdb88d5d2f60952177889b35056737d2afb411bad090e40088441bc703dd18b1c4d2c03217a5e2ef6e68d9997207bef30d017d5f6318653d3b447296e50e490578003d90b517a3b1f768d9692c5bfc88b0175a172e6ef00362675acc2cef5976e5a6acf6775e28131a79045cfd8b8513378", + "05783d579eabde75b1dba8dfaf7d5d957b7e" + }, + { /* i=7951 cDividendBits=2948 cDivisorBits=54 */ + "0c5f9643ce5d66645c41304711be13cfd32f77f61117622295a175e2fe0bd32a54e4d09a6f920cc69f37aa8dde7f6630821cefcf4c97873c56b7ade337df61c336cc8607470d2acf51fd2776195d47381b49fa4b14796e26a1f267db4b10084ae2fa4d92bbca91b7fec45ccede9978029685dd3da7dfb694ecb55855cf99888176a3c5477476d14b10d73facccdaad69ed64501fcca25808fbd9d515bc895008990e4ba234a1c745d014b6428f44356b4eec87033f248b84ca7fa4b14cccb3e0fc73039455f5999388b45ebb1e99e6327a773d30f24c62acba3c8d8162849924e584c934c7a811b33e52310b69980fb1637428623d72e6bae2e2318cd4f80eb2212b10efc6dd99bdd69e9b47e62f625f7be9b37d523e4598b95cc202b9b6eee3a59cd47b718af7faf7a2a65b11100723d66fb4a998d9bf223ac6be53bca349e201dff2525793896d57b13e056bba642dbf28f30ccc1e39ad6c0959cba38ce7e173e910f2cd85b06fd426496b72e659f1a0", + "118753dc8c7661", + "b4b59b15f539571af8cde0199900417ebc6edba238f864404599995adde3d23287304903da699027795c3362ab7143b7261ccdd85b9d6dcc06362805b928b6c9d39ffbbfb2301434075a1fcfd7e68c16205a6fa666e982201c205ea13cf7b4cf63637ff09d83966f1b0140d470d503febe527877ec331dc85137d3db14a1040bc6e22f7662857377423eccd9f98c04168bdb172e771a01c61131a6137e18d413eab0b544fc142ece9aae22db96021e713d1ce4a5f88bf0cec4b3f06a02dec9ee5eb3983643702d6ee9a7ff6a4ede07ff9c0279184a4d7e03e23a40f4d350ae990ca7f4ea1b9d6f3fe891ef4da375af8987ef90b0a97a5fef610012f05e724c9b197e42c7ee306661e91d190cc2915dc5f726ddc1034e35dc472e7dd5c91a0f2ada6616abb459f57d4fa0c40597be413c87f42c2dbdc00c27094a27237621a973b7cc8e92a814fee58dbc2a416854ee15e52e37570dc368abe088a14be4019fe29c68f954c6b180cbf24a", + "040914feed0796" + }, + { /* i=7952 cDividendBits=384 cDivisorBits=117 */ + "28a64778322f9bb206f7097f3961470ae1f272147562af791edeb1c4d9c0432cb69177395e0a8ff5c4536d422f5926e2", + "0b3b542aac42f95c19dd27a4e8bff1", + "039e815e0ea95da58df241005aa0d0f2b8a23657b0650a38fab4fa1e39f54e11aa98", + "039080082acccfa68091a088b025ca" + }, + { /* i=7953 cDividendBits=1979 cDivisorBits=516 */ + "01159109a2e10d3c7d772fe746707e19cd0d570f2e26c6e0169f52672488761a6118143c31950ae4fa625bbcc378baae7938bc083ecf8e5bb477741f1b36fb8988ac361a2512b5d499af715a1a777f326eadd8ae00938885c258dac779ea0f179440efc8cddcfb3f642ad8f27023ef86a9935605224a4c2383546335a7b7d110ff3aa9f9914e5509b656827a8c228f138f6a12ef643b1d84038b58c54b08a057819a8fb2b0fe950ee28ebb288cfbad8b55660b4efdddf319840e946fc25c4953fdf5b18c446b9b3eb6b1b1520fdca15c50a1aef3ac428b57c3f9524c294bed13d19058ce2f487580855f1e9909d8754f7ae0fb26dff52728", + "0df568f07adf52a67957f0085e59b507e30998b532f3eab0c586c40b95f6058345378215e318665e7935d76a6c091b6358bb648df620f14557ace1459dac684998", + "13e28b59ccbe7deba63dd8a48f1172f54acfbe7092ec2f700882d8b250aa22374aa63cd5936829038aa80ea583aa023f0e6be35d7878ccf9544ab1d2a3a1702bfca42750c20e4745020517e56829f476ba18832effec82b50d94269b17ccffad638bd56c2ff4925a0a3587afe5c00e140f5b2fd693a60bf3191014742b6d8553f93d5ded46d21b451162c3f50b83502252d463f1dfda0bb1582416009cd95a521fa453ce38ef1a5c2d2b8ef4c4fd882b54275b15efda38", + "8c1a9bce3f7b5ccaa2ccca88b99e296c7ad34f316a9dd72be8a4637966a2b1a16fd96af63af34b947bb596117855d9c6766acb337818943f0cd0a76a2d919de8" + }, + { /* i=7954 cDividendBits=629 cDivisorBits=244 */ + "18d266f2d9c424c329830a7d3ea387fcdab588aab57529a8dfd7ceae6a8e277daa56874e920bdae4662bab2348fa91c07e37faefa87be64732a727f4c4b2bc65b97c514b7dd425ec237ed40b56d44e", + "038ef1e1318272d6a1916a9e0d1f1dbb2ff00117c6dfb5a8427df7ea1d7907", + "06f9c205b86714ce42a53f06aa029ccb2175688702e98835cab649ed634d2158ad4d3c4484b80a356c324f291ef776bd8c", + "013a498ee267d5cc574e42d855a1f2edbf4d7cca88af28ae9eec3ab6a4797a" + }, + { /* i=7955 cDividendBits=385 cDivisorBits=374 */ + "13fe452cd58f3c9fd0bbd69d045851aedc30f8b68649a978ecdc565d341c08f51791917aa767b22214aeaa41b37c684d", + "12363822a7978058e70e4dce04fc1b97bbb660cf047bea00f025d4a6b2a4bdca7e2d292e334f99e37cc012134ef755", + "0119", + "c18ecb99f0be3b1d2335e0df97654f25c8734a5da59de542cff23a0534a1d311ff46f115523760bfd66a81ceec00" + }, + { /* i=7956 cDividendBits=1647 cDivisorBits=1389 */ + "61f61c34b9e682abb5a5463aae5ef792cf6abc8bdcf11d43a1ac05b7bd8f1574dfafe996837fca124eaa9e575881671eb350793ce7bfccbadaaada3885138fead312d845aae061a09190b0446045fd6030fad6ccfc0d188987772e7bbb0de1577fca2bf3b9e7d19e2cc97543e2bd5fc436bec796db10eac0557817cdd4c754077f8f778be9df221053ccf8c42889362f696cf4940ab26a3b0f9e04a81210d0dda6465ef1d0e02a48295d4a937fe5583f7f7cbc3e979557e34e957666c480e909e990c3aa05c2aa43babd21bcfa65", + "1382bfcd3a466e1e206bda2580ece09d756a3564a31e1896b3da3ba24a86dade9a17816e9086b1a0df98d185f572503792aad664d05233c8550aa8539a709bf26a4a9affecfc516980f0ec25b082dfa98178023856963c289c1cf1c798c3737c5b493541cae16a7827f35e5f26f50dea179334e6139d30b61c4887a08968f9856a5f799fdbf8193a8a94f6b4c2b8192ca2baa36f2e2883f77a2807e131551171004986fa77430d982722ead43b7f", + "0505595bca57c4be55f98744349c8edbb2c4b0bef4d4eae53637c99384d8d4ca00", + "0a525301a271ac5922ebaeb10a9ab11b296473a0735b8b51b1451321efbd22e5f759849afa00930bd1508f0eea6744d1502c3631e6d65cbe2a8d1623c239e2eb5e7f432672f7f464b50570b3788b482cda479e63fd9334c430f5c1cb32e2ae1e74e8b8691693e3be193b35e3a5f74e391f5c36783c40fa03ad549a15be7c546c1eccc1bc373241ac4960cace34851fd995a232c5831a62438a1f6c4ff718dd9891063eb11df4c90509013d9ec465" + }, + { /* i=7957 cDividendBits=2739 cDivisorBits=289 */ + "070e22409b2db32ad2c11d53be92c108252a612416674c989418bba4f6491166e291927bb21b727dc7ec5da577692e4703e4e5a8ce13fcc509880eac081d55b9dcec670ad9fb753fa1e49c5a9f663247bf8cb1145412ffbf33d99fa46e132c43cf0bf953f66fc0747a06b15767a91fdf56d5ad2c861037beb322df0f2ece6db4e7f2f2823c5540684c5bd6a597676a2192568b348a61fb55b55a2141fde49ba07f398bbe6d7182c210f6f8d80a9ca88bbcd774a788d607bf7b0b68d13072567554e44f1fde2d37656f27fc292bb95b0efd7d3209fb4163798c749b29eaabb01fada00eae5503f718d2b0b0b89ce565c602ae0970aa1d5588a8b3e98d8d44a5d49f2b31ed9c90bd213e858f5e8af985013aca347a9b24f9b0cbbecdc1b99956684f63cff86e708fde5f07ee1e06b49af6b5adc63fe2a76824be36a60742d6471d0d7de3f8f64dc2a60e2cdf2e802a380551181897b890aa", + "2067f10911f235b69f0c05a4d8090a7d3b75b5c58b5bcf58c60430c0cb98e3ef0a8b0326", + "37bc08f80b58b8392684b2133b1dd552b22a0b765d25f6af1e1cd933de988d13936fee21ecd583b40611c6dafa7cf578fde22727cd05c73b245266c9ab4a0b69ff1246d07c661a6888c61ea4de36cd52e1a6cfb45e6cc14ef680a6436acbb9cdb368a9d0ed7346fbf6260a93a7caf6fcb126ac85e7ced96f6d193dfc6a3907dbce86572de590e1eb3c2a8a4be27a90228c97a93ea6f0229d9202251853c6250a299efbc27a65fa5d6d688238e84f1330d4f05dacdea784512c60b02f451cd1c9644fa9cea59d5c96f9d3015c69050a368c54386fa4c5678bb9c2053b79985ac1e7fa661195eef2b2b6fe0b6c916d31230c032dd3c46ee42c1645edee9a2842f69b99e334d024fc0cbef2672947dc2675bcae07199dbe3813f34d407a20956d0f651c7dd4be29c64a566fd21b2284f04d75d11f", + "129196152f11146e1a2d1f4d9df51e6107236a208b8eae265af3c2b77c4d296ff4f32910" + }, + { /* i=7958 cDividendBits=321 cDivisorBits=304 */ + "018536d759f68b42fef2d781437c407bfd78b507f2811a49c69ca0b39691027781f83b6e48bac6742d", + "5faedabe8bf87851168a18d424631dd1334c56b8272d9b399decf2dd3c829f7e287b9869658d", + "041157", + "4b6cc89c504c52a1495e6431120ea5032c5e3134851190db807a64c3bc8dc1bd158359029442" + }, + { /* i=7959 cDividendBits=768 cDivisorBits=27 */ + "9684e582e70357325152fb23099d835da3c6239d467fb52cfc1b69e5d7cb23df2deb740c42e133c8874b6b3ea6e573a0d72e8a19c267e2501d1e148a0235e5aabd500eaac96b922a2695651703d89153e2109e0298ba14ac2f1883d95c2deb83", + "02fb1974", + "327ec8b927eb615749600be9f969bbe5f4fca664d67b2895b68dd6d743ea83ec8cee62f2702fc662cff002359383c7f0c4a324423229efb91afb28869ff0fe8b2204420adf999a494e033527b727266bd518797a5826ee874c186b0652", + "01ab0c5b" + }, + { /* i=7960 cDividendBits=1653 cDivisorBits=1538 */ + "04bbf1ed686f5d6104af2da042316f19c721aaefcad3cce8a070c3babd41802e4753cb70d5e01aaef88db2474d294dc479225145ec3b348e389f28699a113295b38c95191ffa41e0da88b09a413e704abb5d561a609058f6d984cd11d23b8a2ed09bd833ecdb9667b3d74eb85c03005f258ff32305173d675fc14293d097f848809819e31a2a2ee7e92d9dc184dad3f2eb8ae6b3ca4c9d2ee16ad69abd5598af71a72e466a67d7f4068b3766f37acce3fc5b5a212f391bbbe23f11d62d3d4479412a1ea65407d3ad46d7b5d9f8883a", + "03054e53d1c99ce688f254d5d00ae5cdf585eb7541e05da2043793ca63bb1ce018db309d9d4581852a7e95a63cf9c05239ff1091492cd8da847fd5728d5ccf80c05f472e923e46f7c8299dacad5b9a77fd4439e4710a2ad8f56165f63a7bccca6fe0456a927efbecea3fbd956ca9793db45347016280e2f3996c66cd837200412eceea3eba65a3b03ad2c113cf6061fdfd63c40583ac9a6112255e2553b4bf83de8206f091dc03020f7539092678ae6ba3b2151dce745a7743d8e97ce740154d3d", + "019135b50c473ce0436e8e5a8d2e2a", + "28a31366987e97bd98dec033f82c73dc65629a990cb891be2b02cdf9c5b7ebadb0ef930870f6a1f8928ae14a290050ae1b6a2808f720b0da6251918cf213aa9ab3f04544c3be54b3a7ea70b6ef4d85fc120afc450d44c67a17294c73f5105e83e51c8ccdfddd31a33dd535a3d4e9f953f8768f670c9eb62d3f5b0dfd919fc59694bea5a6d58352aeadbe66cb20766ec631f44448691a161e18bbb8eebfa4bb3904039505f2fc3707a3e54931fe46b12ee2ece4236860a2f1c0a8f58885ffe638" + }, + { /* i=7961 cDividendBits=11 cDivisorBits=3 */ + "0269", + "06", + "66", + "05" + }, + { /* i=7962 cDividendBits=2678 cDivisorBits=1299 */ + "21e7bd695975a2a009ca41ee4ddd74ef244caf3031778e56f8827ca78fdc925d4dbd14039f3c52af379a0543ee2833d9f69253a6e6a01372da6cb40eeb945ed05dfc562ba9c11771216edbc89fb50d590d8de6b0c3c2cc479bb77185c0644070e622273743c15420dbd7e83a8f12a121022a3dc82862b10e63630c9075ec90c56583dbac9038f228edcb2fa884f7aa4e614220d50ea398884bc112c9b468acf54dc987cfecaed1324314a814a620972c0c951b1a00c011a278c9bb3439a05ad0d801b79ef33182399cb292bc914e714d483ea32cac4a84b47fb6e5eacbc7c02a75ba844a9c4e9df3838385994eca53b6e18a9b7c3406b0ad52813985e1822ed57a0a1fca74ccf3bc53a2499c0e0d5a3e2fcb7e341332ff49b04220b0b5e888e30f690f80c8d5316353b7fd1cb57020b0b0a7ec1349fddd4f4de2721298f7718851c96f657edce58688bf03ba01840d", + "067a0b80e7ebdcd6b657e47d570668149c8f54d27c2c94dba9bd81058d46c5435662b288b770ccdcdefc71dc700d98de59c17eff99ea350226534ca8d5e33e8ba594f5317a5b0db735c49de00dd3558808f7ef3b47d3d93b69ab91e2ac1c550f738e2bb4957b62a78cd2be7c3f68a19b5747ea711ffc3432f9805d07fa76edd5d9c5e77e6d9db285f25f8e6fb0633bb2153fdc18f952f7a793d1477ac533b4edd991d8", + "053c2401635410fad101911c9ba9928b6d4037bc2a945ae39939ef32cc1079bf4f1c389a16c0bd4a9eb83315419c1d6cf0c95254a4a54b89139bdd1165cf2f286b47a3563041dbf4c6a3b2331dcf82adc7d63185d9bcd190446aba829dcd6bdf5e20f69cf0335568e3873b51391872d4c1f78bf23af33c540ee9385df6b70afd10964a5ba4c26ae3fa4a2a6e2be2d03740bf3a0fcc4426ef2bf0673fd23a2fb558c2765fae5d9bceca38114a35", + "f31caff73e2dd6b37b04ee4e2e37467842f29c081806cb0c977aad83a39ed9f14680bc15c462564337a12fe0c83372592739a59cdca3123a9712b6ca385c489a1305686fbd01b26ffa688dcb3d7e062c1f59c2fa68b4c35577c30ef56b176d186e2a17636dd04fc7371f4e7729121e270114284c91ecf14ebc95cc8c534d080a3147b69ff47a9480a219668a6653cd7fc266e14448738810db8490e67603a875e255" + }, + { /* i=7963 cDividendBits=581 cDivisorBits=486 */ + "0f62b33072f5ab5ef696957190358eae282995cb31782f7d02212b8b3814fc65027907e0414b0813f521226b55a2246ba18324f0a9feeda5292198a6afad2fb13c584823ecbe08b5a7", + "12e5f2aebb6cb0a9226d1611598da75a1c5dbc2924b7c5adc77a31b6522d03f5dc2ca4339b0fb8a603789e5cad88ae8a1a92b45f6f7d4ea218896eddc4", + "d06a9241b76041dfc894de0f", + "090b263241002d5f1e0358ba1ce9ec364a45ce0fbe69b5f0e446e1c077460107f30558beafac946a381007c25f5ea90213bea03bcdcb2b5a3936e9bf2b" + }, + { /* i=7964 cDividendBits=3829 cDivisorBits=40 */ + "163dad4d302966466ce9f1e8933c0520653fd7935a01de129a34daf7079fb4faa5a482efd776978853b436a2a0c8f20e7621b1581896d682bee507967b23ac18fdaa901aec607f6b214c6f4821402eefb731081826cdc280d3f6c0c97a87c59d8b12e248f5b34e1222b69d0bcaf09dc512e578e78a723de305f7e18ed225b290298395ccbb6fdd0b1133bd579ea61bc717ce2872e63742ca3b6451dfc3d6f646f9657effc28da8cee199be31a32a4cf9608eddb7a489fac6f992131bbd01742f70322398fb359257b271219c05f5043fe764e2c5703e8cb92b346e21cbb1802d18bb6f6746be0f136de6e2eca3c560013a9802d4f8fdc68be5a9d80505e916e085907cd7b53e822e3773277e30f051979eb21e1264e01b181de18a8e5da640b3e73f3bf450d598aba94d324b2ac93aa35f1499a64b20956f0720195510ac8739d6546f86150948910e10eba6673185b4b1b64d8975b8e04e70a29995d5c0ad6a5716e655a54b756640e97f2e4c02c40dab48fe78f0758540e89ae62d75aacc82867433b20a1a6428891d114c3d24ae9196f33bb15f461576ce3e55681199b31636c3a4245d4eee13c6838f1549d537f6a98dfcd50b64fd60a9fb530f702d3fca09c6d596a78b676177055cbed0e26688682922199998ad454a2cb955675e75", + "c8591d0203", + "1c6b3e75e3c027b416935f0864039f2dc7cf3d04900fd28fe855b241164933b8e0dd9b5aa1446a2d3cd4e02d87ea9c4e03aeda7deee8a66d0ae638f9e4f7d4f73ead0d54dc83f42725a6fbe6412d75c1d116f3e26114b92ef63880e9f75f7c3bfb85d4ea6169ccb51686f2e618767c5e1d4806da743ef4897bab173437c7f0b57accf1272846943d22ba9110b902043573eb3206d32cb41443ff4cfc8ec02ac8025b6f34f6c8dc8cad1e2319a0054c0623b49c167c6ddf554fbd001bbc1562d96a4aec5acf66fb9ab8364233faa11410c9133ea3795b0aa436c0d28ac1dcc648f979fbf48e779665e8be875ff9699a7f55db41604fd9a1b0fef25cee5406ccdafc66b8ddc6f67c398a6369685b49f28cc734ad1ec39cfc46112f20ec522a608cf5c5d9b9230c0ebbd06d0f85def73b2331690ecc18716eabac751f48666e34f6222cc1fb6b65aa021c2fd2f8d34eedf79f74856dba7896d53f15a84a171187e15d5cfc429d1b2daa9ca29c34ec8e98e12626dc466d25a8882874093c67fca2f7f913906c7ea8969aa5be6e854b54dc6936db8dc0b6dc2903bcb78db3d4f85b965bc01bcad4916340f9ab6aecc7daf870d4a61b239884d4e51ca7ebb67a18bb19b99e4178980d7576673ff8f816aeff106a258a1f1cec428dd21b", + "3b420ab224" + }, + { /* i=7965 cDividendBits=184 cDivisorBits=16 */ + "f25de270b55efcad4cf01321d2da3e8475600473c41f46", + "2fc7", + "0512a586e951b64c169fde3df34aca1d7011bfd637cd", + "1beb" + }, + { /* i=7966 cDividendBits=665 cDivisorBits=287 */ + "e55da90fc9893ce4953460f7cafe44f4276f139cdad1b0601445aceafcea72a26b28982df127b35b119d3284b8df683e5eb8c40928886bf4f87b9d7c9006c9c28bf17cf60e295b6e070dd229c56b5f64ee2ec5", + "5ae7a1426df1626d262c98c9a415116ac8f76c5df53c4c2d51d817c3b7499957e194f4a5", + "0285ecba82d770b436b34c1df1ed10d37e8fe73d363b859dfefc991950f223e32a4217920f988ac59dfe58d573f8a013", + "24c98e8db74303c4344ae95add9956d081c87674d69363cdb33d2c17b64165606f20e686" + }, + { /* i=7967 cDividendBits=1962 cDivisorBits=1804 */ + "03d340d1e9c178dc8e41b2315940ef1b2d69054f61da17d2876f07a6071515baae69cf3d6a9f1f84891ccace17d29a006e269a2468855c51ca2368a4e17fd13f47b666d66378c499c52d963d6b645335ace446f35a25dcb6ad4fdef45b1d252982df3d7f4630551902e1a040a753859cbb4e68dbb47a721639f5c2aefc177e1583c8c82c867ed5393b3cbb67422321c421dcba8fda28ae8ab199d22f4b7da3cd084725ca1d4c863e3f6f53942e0d2e781b154d91ae94334c95453b61a5adc92b602aa8eae80bb4be7ad82e1e89cf4cc29546304538fcf364c3f56241b40e5b0ca6e88620bebe65e70316cf0aa0f729993ba9d8b1559a", + "01fb407850455b47bb3e8454139a38ace1a87aa8f94b2b575bd5a58b10847141449c0d1de7420e19312762775a4703b723afd2987c1bc25f443f9d7bda1a34aca14cb2a861567fe29e5cb3f9786cdaeb033e33da68b719b6edc6442d0ffb26ebaef0a914cca0a67990904e2401b08f3123c6bc1117e44c6420e6673018290b8fbc56eb0afa9fc9d158c85b4276df59cc081ba7460c681ab535e8954b573ecd7eb9fca62baf6304ed98979493106102f1565f376f5aa598b8e04c4ec2ccbc5149d81ca721790187e384a54ed8a69e13d63f642d7d304812ea71d0b150b0b6dfda4481", + "01ee35b45f313473daba74f027e1735ffb83e5c3ee", + "01f61f25b5d8326de52fd104ce3c981c88b4dbbffecb7c40ce3a231147409938f14e7d81f885a69683930d985adee0c784f386f25c4f1395d3b6a94c4030035af475bdc9d8128b8121b4fde5776382c554738531870b7252c2d3d8589b395187edc1b96f731f484448e1aee495ce46c0ffe260ccf2a27b49e9bd05d07e9ae3d0e23219f45a2c8ed845882e25bac748dc7542da57c8c9db0df68ff255f4b6769960d6d190c9160687221cefb5786a2c1207c4cb0f62e93e4b24b065c34ea72cf36ab5dd488d14e851171e92ba821c285525a4b2940e7ca2740cfd9076ac5a2f3262ac" + }, + { /* i=7968 cDividendBits=554 cDivisorBits=342 */ + "b6db626c24af292c8759b68c76c127d4cf2c1eaea151e6eea68393e04f7981486f34398d6f3f01fb893339105c6104496448ce61f5b12af2d99700c1e6c3eb3e469ebc3fc8", + "0acd6c533fcfa89c4385fdcc5061cc2c80f2418a6195b00715022a440565dd7173f7643a14fa05a6dfd401", + "10ed6927c61a14bd15c3d52f40398e5d18e963b01130510de944ef", + "051cfe79c085469fc33f5278f4fac83bae9ba99cb1e156828511ce30a9ec5b52a0370896aacedf5d8c0ed9" + }, + { /* i=7969 cDividendBits=3030 cDivisorBits=275 */ + "18016f39f5ee815c38d9781fb8956914bc8496ef416cecab3d04239a07d81442f873bcbcaaba0dd2b48df5c4f4b9b60a5404be5427636432dc12918f2ac6807393f71132d3645e6f27f298eea0322c8010ddf1197c95a3ae7f0213f4ca613284b7fef9fec46e3b5432090a65aa213e49e6ebabfb2d32efe7119d9ca0048c70938925d9bebd6f7b20e9156e3ba425f4dc354e992432feeb58bd268508691845d9825416612412b6f0afe32e424005dd4ae7ee41a6e93d15422e78b3cf9dd967aa03d5bb9af32a70c74789118c2bef61ad500dd628b16fb24bfd2a1672cc02c9648b627fda8d8b2a64ef403201f39ee0d091fcf01242d2fdcfe648e2733344cf889036b7399f8bb11e206844e559ea16aca5afe417d8e1241fac5a158958882e4831e9fa05d5406e0d03eff4e6274adfc9162a19d81c2381e997ea474aa7af09da67b521ebf8083bf3402ab0484f2290cf72233d57bc3dc951c040d491087ad10a3692771604a50c087028d3ae9fce5bfe6be55dd0f0ac8e21ee7e8c", + "070ed47ff87cd9f0a285494e49527b087906a451c5124f28cdd2d9d94641b08559911c", + "0366b6a3c9137121ce7b93457de08467b56e0aefac31dd81f09825343cb2d9e418a60ea7b255354f7a7b7e5ca2220e16471d32bbac27628187432cc18bcb207abc7a828612663ba50c6af07de6f49dc59ca7efecdbc503411e6e91ee00e5758eb1bc91263e5d06d26182ed5f5ef7d164c2571c003d20ca1ae85854b55684e23508f8333085fada70907e453d986e4cc9667bacf7a4bcf3896ba79a7c07ee7394223ccd9e0a013284d0a829ebb516a0786937c1688758344f5661bc5cd6d6bf5c56662d798d832f34cdc66a575108cdc4a303dc80b857850dda830ad2e3a648d59e6c966624abd1ef4c67721940e3a964423ef93e1f4bab090d208620141382a008084356d750078ab14409812c3f58ed0d668ee8cb3485f64ef71d50f0945b9a50b95e8c93ad4075d3ce126f40c45ec13002206c85fc4a17743146f279f5a7cadb434be0283db2fabde1b6ff8a6fdd3ad0961ce56d3340bebb", + "01b0a62012c670b5e6a1f1119f58ed6e4c08b291df76884ae5b14f322aaa6b64ceb718" + }, + { /* i=7970 cDividendBits=3994 cDivisorBits=915 */ + "02eebd63553d14ec6188f64d325385a31663543abed34de92d8c2eb87564935e108090134d8355354a013284d912abb6e21c6ffc39fe3ec40be76c4acf2402c40eb12eee33b776509fd4dd6e041b990c74119ee8da5c2a3a0261824b7f713920fa6f114cadf2dc48c9260a3432e869fbea2e646e12a2e7815712ef43030c9f8a483fa5b38f7ebd0ed6269524d8ebe62251ee0757841ee28aab0f804dda1c46e4ad0e3765ea036e03fc751b999a687849cccd9bdd9b666f73b21df67322baaf94cf509b5d4cf57b7b9e8d81d9c52fa00c46eced9cb4d1bb535708fb2a6de6ac9e57755290fe768cce2491c98fa0a54c225feabd5221a742fde60e75465f7ed6c9cc230252585792a8f5d27e7cb9c2dec8f50e13c1491b31cfaab1929608f4d11027316a6b6a41dfbb608d01905dcd6397fb014a0ec837c253886d8ada132be31e13bbfbff19ec40cf1fac1edb09fe8b64641d8f0a60e7d4135a3befe6f9e77583944095be2e33f18837c9f8fbb6a4fc58d214f083494a6e1faa25e840522ed6fc66c3b1176eead624e2aeb5eceb121c0d50fd6b7432041b0d76d9feb9a87948e3b3ed9df6b3f6f1127b67a74dc114e94d345466a351a76662aae48db02e6d24b31235e81516da8abca12b521d898c1bc9c97ecb8f40373b16e4e808657602b70791898f2f435826139dafa455e3074bc4a7462794", + "07c46aa39c520380f6fe68ecbd549143e1e539ebb3247025de2c6d6f96fd11f359ae6b0d5153ecd1624ea0e8ed34531c4b9968803e1ec6ce4e716ac29229e8b173aa93f88201df8cfc75675400f2a3509ce46f715f5c958ca7da5df46e00a67de104f1cfc22dcee3347898ac94a6f0d045d69c", + "60a78ca4bd331f3f445a5c5b16df77efad77289742ff178367e70cebc8661fde2a76287510e13a4a3187b277a6aad30c7f79761aa11683744d0e8b6827a69699ab3f77404e3c645a66186dc113a54017d42ddd94004fa8a3a0df314de0dfc702d79d9c107c5267465b7b3f4c864f4c66534cdb8c272c9147cedb67e4fd9f4e001c1ea44c2489b84ff0d99a33495518ef24d173692a1d5afc1b0fda61ac090e75223ac03c9f1cd83d2976318e3f764395ac8fe2936713fd6dca83e81e54f53a361f6516ba11d9dcf9cf587668f22f1115550823a65aca2b7ab5409d7f5dd874b3902bbc9456b4ec0d53c0f9d86ddd9a254ca0a8dfb3a17594518b9a953968327af8173e004b3bdbf6819d209a826d75d620067f5a9d16ff96a75da76b011b2f92aa8105144834f1565e1b3fdedf5af8f57acecd8685b59995324f41f1d06c11529a4f68ac4055d8fdc7265a17afbd291c23419bf763f84d97a417d0d75cc32b1377df37ab3921cf6832631377863009ea6574a0a0f21799d28b3b4963d1308884a1", + "021ee29e56bf2a7af6a8509f24992ad81ff47330a2273806c4eac44b915e187b9c89e2feef72cb23f0447dac026fdd7af6fd40b43479cabe8b0da2315d01300f04a7207acf3faa70d8f12dfc4712fc90c63309f921c87fc022e7df9daadde073561425965dd7fbd63f1ed5aafbdc3a65d1bf78" + }, + { /* i=7971 cDividendBits=3932 cDivisorBits=1172 */ + "025bb526ebbf2fc40dabd7ace999d41225cf80351b69a56281ddbaa978f73ec087b0131fb1988fa55ab163fcf6270312bed6f6595a9cf96e94610546c268d0007c4605706517fb2f80bbfbb0585a5a2b29b380585c5d11df081915f64a5459e4b7c42aa5285cec8720ec5f406327b4bddb6884e5256e08a13406cb5ffca8e677173d584c1de8155873f3058e3b27dcf9dc039df6f8e553d53db327451377c6915af8437c47943dcb82f7b316a9cb29c20c84e0b62a4742cab1d9b89c4f2c4505894894ac8e1974249a03fbbedacbb0fdd4e55ec595ffa20cb4d2a5092a1b709f43d4b7fa3ca236332b42e9ea0b8255f15a784a7a791c2cb1a0d57a81c3c077a130e762ee01f1658bf177b6d695c4ab9ced7ec2574e48d8a3f5bb458e0def71ed902f5a1ed4207a57bcc92ae1d3a6696db902cd1fef9702012f066ed35f4b3face643501c19b8c3e840a3a5af629f4541d3c30ecca53310e8f98649d7cef6177e02a683dc17b9cab6a41f9b0db2313acd0974aef321a50650bc9a16496cc5b1485eb8acc045ccfe21444e6cacda16291ee27b5a84914695f9a87b6d1f5b4ed5b7fc94d51e0b005add632d5df37335910b14951a2b6266457cd8572e353f8c75013c3afc9a2228b952901d80460b47b07f7c24f70280aecdae9ffa49ea3b212a31102ae2a87a427f04606c4aac", + "018dc00715013dbb3b55c1960ca7c883934fc1fa37a3fc7abca54663b711bd5055720288884f38d2400ad2021823a6c57ec4f9a0371a92eeb0a2b3277fcbde1b75172b8b8d10f25e0009386a37d5e54c6e65e432affb05d23f6b48a90787df3684f919666b4d6a1f6dbb7aa422e56d3b03f49a571878a0369da29c3f1fdcde11c699a8a4c2c1f818d0bc8bfbac04cf033d5977", + "01848ef45d4c0a3e30001b4093d008364a28e41bed5c1836319bfcadd3cb6c4a3147361378ec2b5b08e0f6841b9d7a7976da75756015e1313b71841a44d2c5c9b6cc58c7f2ca4218517eba0bbc2219e81c4be98e723cade2ce835c570f7f97acb7dd1f92e5e393e44373347b1d89aba9833da6055cb8561bcfc90c34d5200da47626f87899f0cbb28a764690dc50ebb3c8bb502be6506ba2326f1e9add94b4ec25b9c17d529eacf1553ad42b02b673eeb0ba44f22981b50b17a64d12b9372b928361235a70c9a16b5eee1106d670f1b164f6678aa97081851b4de85b3bf74433dfe9bb44c423100aca900506ebc3c1b2c5c99da3951787ff6da9f3a2749251114ff3bcd3092108bf20044c9c99d4fa3b364fc69cf562c4e1cd8b9999ed72e0719a18b84b814f30fcccb85e71961e9237649a886ed984eb9cbccdd1103f4191dc2b641b580845a1be1c6b0dc6fe6306ba49472c0bc464588ff11e", + "1d03486a0542a2871ddf5634a6c75f4fc0cef6b5b7c4dae891a1866752fdbe2044fe464df57c14bdc5600bea6ad86287c591d0fe6e19f7e7649012973cc7328d32a9b7ce710f4130726c6236039a3aed819d0143a90c7cc370e317a880c89b280385b46a15e2cf8790163972ef691bef06fead5b8ac4f8f2173a55b9d7981d1e7e9ab7543abb3a2f7e39aa4018335c89c7ba" + }, + { /* i=7972 cDividendBits=2743 cDivisorBits=86 */ + "18f56c2013c3774bbe967fe62408199983605a290d39a68ccb35ec3a8042c0443fda7a1ac48a1981d5d720a4d3224557747a3425a6ef72484b10626d327bfd5641772e06b2e0ec402206cf30b0dea097305c312092b09cc508a9993e72b0e506e70d58b54054cd756ad39c00ccd126aa2f5ac18a1f478040124530a308657c5bb95aff9605815e1bc9088cf88b81f45bbf0e8e9d123c34dd745b2eb253e11210a27be6b7f8142805aa7ac87473f7cef1e352fb73f7243158fff850df64314918355fdf621994d88d5e7a70ae8a92c080004dac8224dbbf68b3c8ba3b9a2691797e7a5f8d5fb5db1da4143e5513df93f41eea9c12abab30b5865800ecae32aba18d0dbf2cd0d4dc7154f8655d6cc9b2a507f57e455c39791ce6ee2a68562ade000ec363651e9c9323023bf9c6743a444ee7eda52d65d35dc1e0c314b1165846cbaa3b7124fc565933b19d78fe5235a21dfcdf8be778c01f", + "05c6196db8b0a8dc5e56ab", + "04529e58bcad2be6fd101a169cdb5abf3fc12c1eeb3319793f02f666d458ab0e431b229d502ba6f1870b062c28419d60257327e5e5eff345edca170eda00350e5f73c7772aa564f6be5870514926abb83743cac26954a684b4848be737b65dab866df11d5f1ef06eab33ebb8ddbd23f42c3d76a7f046059c819f83e5cbac477e85014f92b74cae8a924f5db4a7163e0bd73dfe0c64d9fe54c1e06fcad78d53f6d5fff15e772d34fc7c21c8acbe5dcb5ac22aadbab09d87ca7da4adb200ce5005ed717facf889deb3dc0eec0eba76b1275ea648c24d47f4c1a876fb7bebbdc343f309541747535e5bf75553c6fbd07f24bc3d22efdb0892d9f46b072697c56f7e4fc45d1af5055e69556cfdf959d6dfb9992f1426c22a92913d9f98f90761c0af53d7a6d61e6cf490038b132b536672605897f1b9b1faeaff2238b26db8d16cfe87d8c3e0e9cb624c01412e20cd", + "4af4e827a527a75df930" + }, + { /* i=7973 cDividendBits=162 cDivisorBits=52 */ + "03b267ccd0d732e169024efc7d22f0380aa10de229", + "015454b2b02284", + "02c7e518a6e4c04019b83d0fd49871", + "4f38db8045e5" + }, + { /* i=7974 cDividendBits=689 cDivisorBits=413 */ + "4566227de5a0ae6a82d0cada8b4fa57e788fde74c38ab6c8c8563ea300d12e1250dbfeede7b4b3b90c6f461675a4fa84a887b45cf5b345bc9c4bf55fc2a5a2b40bb96e872b857b9296e75252bfbb23d1c230beb13c3c", + "13bbf1d609c23f0e62dd5704be2d042bce4ed373a25ebbd1864d180d94dd7b7c52587194d11d50f78257f143632adb3b53f446a5", + "038445f1ac979fc2b0edb586a2ba2218febf690db11765bfcd6268b05475c388aea08e", + "0814fe2e089aa79f5b62296492feed703291dcf803010e6426469de24321549ee58be02dde68251c21d52d769c9b0490d4e4ecb6" + }, + { /* i=7975 cDividendBits=2839 cDivisorBits=1769 */ + "4d7319e4e3077bdbf20c9e892222bcc9f8f2eae8e1bb579e45e43835573c13e6dc9e44d8c1590d76e16a9f14f72656bfcc7631649496338deb542cb4ba555188dc01014b9d43d817e406716e31fea572c2e846279c1fcd2fa6c57879a1f3215bc604f5a11b0066b441960d5a4c3c819e43f79525b6827747f1f92fcd20f22e8001be7bae86690821fd13687ce37402d01e888b4517a07008a1970239b998a4a32cc3694842dec2604cf87ffd1a622b8c49392e4f2429a42311f85679bbe8b14f274934b728fbab143025f1dffccd32e039a827e3d0dfa8c122ed74816b96f8900d34a19f73172dbef3468d73671a9b0fe4f603da86f885c20b3d694f135c7eeeba280163907a69cd1397bff6d4ac651ee9b735b2d4669228d1b0f2abd6a30280a4790f1340e793f151cfb9c649e4c9ef76a8065ba7cb5e1a2d94a62def18373cccd5e6c4cb1e4333dfa70fb5bb7c8bdec6bf0988968069bc3e8bfe163d7f1376f3d9cb", + "c3180bcacc1d08da3afceca6d365f95b7da4496a089ac5c99b349f31781c3c27fec07d833139a6a3cc62fda4f2a4722e39879fa69e641573054c2f1afc30f1162028abe963f53a4c7ad86db4400f27b41c2ecdc85afa38709b9e6691acd815de88e2c5515e818c5ea60c5ab21e56837e484f53e149e72edce7538320d55f707253c17e40ccadf2a42c08c8c3c733079912241d0107de0c49b073ff023a4cc220f5f7ef0fb8f72fb0447a816d86d0423feb4b260da95a6afbc7765307783bd9269ed37b94f6f4f4d49a1eedbbcbbd19cfee58184c336f15e83a1569764b", + "65a0e499a52d0086bd6b5484ec805716a3ebc69b2bcf9bee1e0938e7b9efea545ce5be5b73f53727a070e0b7ae3412fe37d52977ac875b58b432700e524383da31640dedcb24248711130207e29afe9ba9a2d12d0ab2afccbd8bf7d1d8191556d51c82b012449f6ed3064f7fade63c7cc3e13a8969c883a60328d028cfbc901192e7e3fabbfb", + "94646393b408c75f6b38a800b3bd252d316e29c64f560328ddedc48f825dd425ea1d0ddd291ae62c904a705fa0d7b32832db73e917fbb209354b92363a1f0ec4239a099de7248993e54d5ea7b77e3de7e5d6717e5b6b1a9004a47a0d43d447ac46dadd8553fb99adca524f88ef706c9ed5006ad6465c40b8674456024198c5aad2d57a0677066b811ab55f34caabf0417d713bf1a58699bae6c94fe4b81cec6840f203016ea30cc78ddf03181438b2af2bad32a858d607ca2cd4a7e28bc7b2fc143391ec17f2b7571f5d0a763c176641f358196bdc5ecf6fed68e61542" + }, + { /* i=7976 cDividendBits=270 cDivisorBits=187 */ + "233d99ff5b7fea9ec0b05541e82f58f72e970ef7d6426040073af00e6bc840b75ef4", + "07bc54209248e7cca57a7df06e5daece2bfbfd0d02677b71", + "048e3c58d8beb9d5ab1e95", + "04b70523960e090788580e212bb858cb6a4dd570408a482f" + }, + { /* i=7977 cDividendBits=135 cDivisorBits=44 */ + "174b75cfff407ce9b53200dd41798b29d9", + "055df6f6ead6", + "04571fdda1ba4b308a803e85", + "0173976354ab" + }, + { /* i=7978 cDividendBits=1893 cDivisorBits=881 */ + "13b047ab31ed8cfa3d93b43af79efa107ea576f1627ce5343a90bb7275067e9ea1a52cb31756703a407db32ebedd05fbeb9b3dc4cd1683814e721c602b2f2ce67a64920279f90320c10737ebd82ec897bfbf149ab41a440a79c64c1fffa80245655b7d4554055b252d6905c5c126f11a133de538a7fefb5943ff81a8ebecf66d7aa0b4a13b97f7fe6af96ec333f38188dc3a2179a6fd10429c5bed36edf5796d1afced686abce7818cf76af61070aed46eeb3fc297763a4cc52672a7bcf2b745ec5387bc7431eeb1ba71adc366dbd0ec491d7a4515a2ee3a6ede11fd859cd644ee2217df7e293a3da7cc9cbe61", + "015a19549ebdd403e2a2ca372af5922e9f75a0eba4f0e0311f02291d73289780263924607190a358eadce784a375dae12c9bcf7c457b549c66041c0f9f68f7dd440bd132ed6b662263d1a4f32c8284fa1c3ca284473dec030c6e2bb9d351d0614e52af626fd96118a1b5b5f37ddea7", + "0e902887541509174e9166a7951be4a3086cf37537ceaf8eb37ab3d78b18cb5b8670295fa9fbd0a7df7c4d7cea41abf1357907a998dbe1a874f19a87de150d9fb617510bc3f2ad248704de1a8e11f3019ddc0ce2e8d2eaa2e5f5d376a608ebbd9458ca2e25cef82a6b408bbeaebdece61fa81479a891568c61b6d7257fc1ae", + "940616c911ccb558fbed99711599fab21ac28273e2b855b8c55faff0a057cdc613a92f24f5cbe9901a625c09450f81013b18acd991bb8e6306f463a122aebdcbfef0e8e198fa6634674de20ebe2dedb78419a16b81d55297227dbacec05da9611bf9e15ee1f76395da89d05a81df" + }, + { /* i=7979 cDividendBits=3317 cDivisorBits=1710 */ + "19e66642251960ef8bc19739573263f7bba3c65ab34e75ad023d1e592c916cff2476ae9f2bda3ab1799888892b447de99b371351f0ac459cfc3fd14c594797a36f61a4bb61a83d673982d35bc8b063a9c277df374cfa0291f77d379cab95cdcac597cc779d14be2fd3f30a2b8d254a8afeff41eeaf877f12f0ea86b482f624259e21a78e4cf46c4052d073b38820f1805cde9c57a72834d8d9a3a3da81ae6e7b8bbe57ec97a92b1c4badfbbc2b1086306a93ad237169c0b12bd5f6e373cd2c218bc86e3d1d24f7ae454288f9a61d6aca614663373a22659ef4190d3112c5bbb5bf1726565fbbbea43235212a83d39e584e15bf0afeaebc8962656c8332f094b50142221ec45b8751418cecfe0b5172781b0ab9c99adf3c061cd2b174bde6a1d7550af28ad42af56de412a808b6494ed57520527df73be683b36b99f8da06deca54875fdf99beece017aeb630f05e008fe98816fb0ff3b79bb16f339d4b3a3445f7690d63de4bcbdbc8edd5b941af5348c93d1e11ed05076de92d7c31e2558b1d34ebffff59df484b919a2db7aa004bd1a85a41f415c2f135a124d47f30668b", + "356f84143d882ca9b34e9a6dde9906f77c1ba203bcb63d04d9031d152a2a908b30e48d4fba5509e41af5fd9e741c753f99eb00cf00d724e46a65735bc26fa1485267332c6e7da56b266b2bc09271c7248cb4166d00cf9f0abf0bfebe0076137d5f140ff046b36bd9798623855d9d0ecd2ddc1e106f4d41ce77ec7c1ef841233ce1811d630b2da55c2ca0897fc4c33b76e65ac9648937b0fd6b5b94fb6f0a5d8481024ce4c3821ada9f0f87c4674a5e230eac2dd5c3014231840889f77a4f5b1f2d2ed51514d851d67c79f5a1b2d42130bb123f3dea84", + "7c1500a55049bfb077ca113a5e7e72316c874e0208479bc4776f3886255d0bcf727e7de46cf9701a76e2ca8b0f939a3056042118bc40d3b44726023c6f3fb4ba73dbbf7c3be3b3e8242859522a99345fe2b06a3f726e4306377ce3c1e758c88a9fd51391a191284f2363482e48ffe3a1845783ef1a5264b9c745f5a72004a3995d274e0b939f6afb6b06c3971708dd17a031cadc716da2ccd8d4480b13c62411f910b01eb302f97f598b45df791458e0bd3b03c08192d0133b36f7c6b66ce1b074d0e9ae258f26fca3", + "1a52183b99795a07d840013a4ef1c86bfd4173d9a01457a372551418b6dbe0ce6c246866a1969311741525407c93c6711d1c32ef3f801c52f9350f8881a29b497e26b5fe3a2bcbc3b2cf59292473223e1422a1ec454f07eef497c7705f7b3c22d760905d55e76ec779dc0b8984d74799fef8b33abccbeaa66563ef8b5085d6bf570ef99c46c197e7494af69c2a77168917517a0c74d4c810da4beae086aa14d314b633a97805593c47a16b2ada62be4f5389c70b72521848d2e5a430af3f578054779ada5e60d41e97674e949d2439ee7bb0bc52247f" + }, + { /* i=7980 cDividendBits=846 cDivisorBits=302 */ + "30730edfc4735603a312450d2b9a5f3ecaba87dd905d57516303dc81f0eeca7fdc0c0d975b45a54d8dfff71f392c323f2ca0e761ffa55c4bf870229e6194b6121a55e9edc4631c403eb408d7a7ec30d4ed3c84ca63d84f3f888bd92620d49e96bdd1983200dc2f4e829f", + "0465d93472f4533ee8c9694d5f015831d3e489736716b10b9b1b39245da7e5e9475eac05f9f8", + "0b0441fe2eea96bed3fd3006b8462ada91666f45f9208755d33fdc0190858670981d7263b72447e453169d27cb89962d7a82ade6cda6925da9bfa1bfa7f120c6b12c3f3aed", + "0212c89313211e742b59b5195b3b2b7aea9210b33d13683b244c393b8742c8ba7a566f1be807" + }, + { /* i=7981 cDividendBits=2408 cDivisorBits=1652 */ + "d386a4133876e5ce8bbfcd6d4cce1913c8a9d594e5fea363b4d8933390554b94cce9a1414d6d5d0b6226d1066518393a358663059f2c91e6cd6935948e3936ade0093d341495e1c9357f164bd5041be77b009d1b06d9f2bc2cc1a47f6e9bd6115cb47ad9f251e16523354fe287d5b3fd89e2fbad04ea54c36386b14c0606800b8b21f3ff6cc89a6da6d1f795abf88e568ac332567cbd85a9c3da2483eb2014f1daa322229b93dd15909d05c1268f3c843d2f36b75acaa178d63d24b039ac736a605d5a4f18a8d98756a44e2559da698244dc561fa9ddeed6c3d0d983631207c27e02b8a2fe3443ecb98e1b2f1500f4408dafc7ebdf09e4d24fba9d137a3d9938c87609dcd5aab5519be518a3ca827cf1b202e91a7f672a99791b18e2940e85963cf8edc813c3f7d81643c3cb82", + "0281a572cdcd1c93596850b22b7e027c29591d58f5770cd2d696adf0dfeb24ec906b5a253240e338ca65ae56b24e56ba36124b1cd637a60f122ac881e713758704f62f3ecb875e55208b49864dcd2aa887dc68b4980e4f44ff0f8fd0040b2e7bcfda52952c080a18edef537077d30526c35650552a2c005a303e51450db00585d1213cfc5e370d94dedbff3c3aac316b9cdf6018654ae0332377ceb555a6dbd379d633c9efe265ffb463be9ad96d1abdb27af0d64f8a53a5fc113cffdffb85661c7cadff660ad205808fd6da35e633", + "5464aea952653bd60a579cceadc291be4f38e6b48f20dd751c8047caf739ce68f09c7063e9028f6aca50bc548d9a4298334372b45966c061d4de0da767a9bfb38ced403857ea08b06b6aaf39064924ccd996c446746fdbdc2737941da6af96", + "6b91fcba4415b47f41b924ee85aa631f8524fbe4a7d1142751a8202e316b85a25aa16b8cf493a7ab107cf2afb6ebf9584d4680d6c052a8e7f6e5fcbc7fe9fbf1ae5951575d8ad238e406d3950f962319c562bde01560344ab3ad5a05625806ef020ed47947f069b34775885246495434e07feafa3b4ee6303a1a159608adb8a679bd8d8388d186542a1c32d165cfa94c6d5355b2eda1a1b3e8ed693f106c896a60ff627f627c5a473f0b7296641581479391bbe556f9b15d1f50a2cfff6ab00cc4ad1c6ad1d66ae30c8483c00ca0" + }, + { /* i=7982 cDividendBits=1789 cDivisorBits=368 */ + "063d1901bea813ee9d9e3d74cdc3171cf7a69e21633c38c87e8684297cd2ae728a97eb8106c04dddff4cf0f20bed91e907458cdf0a0e228ebddc0d93811788c6e90db51a6089b27243305507fa04716911d5f57496b95202fb064bdde964637b9c4662d55e561750c4cf80246f4d1f35801798134975238b0c174cd5321cc1f9515efd2fd0266de99c3976c27a6c5f52248076cd425e7b9c2a737b5d2ee8b7a41044ae6b7f05c6efdd0c723a1fd8d77db8e627f56cd2621499b7e1a03bc986b799cfd8b88e139bd1ca5f6180f9b0222b6cb0a4fb5315174b44e354b16d65ea40", + "84223266a416da2e1971a6bf174c1bece358310f9c0c36b17b0b458a32dfed2c9b7876dcfb909271d33321d48ff4", + "0c16452d4e8f4b95adac1116d9e5ac6a78c7fe40b964a8fc6b2d788ae9214a0b88c02dde446b93c94a875e3dbf57bc83b8f990016fa5d6f39eb16615d3711a18b41f9bfac9e2b5c6fed3f88d3706d37bbf09ff014749b9bec500a4f3534f838834bf2957feb0e909bf93c1b5b5f6ca7f6720ef3ff4b346129821f2a44f348094df1897718640de68276b9ab7febaf24434268219b970621d4e93d657d6b8fe80baaf39fca1510bc8fe5c27e9191db69e6260", + "53604906b0bb75d903da02edbb0e4af75494a5df5d8b03c4e9c4c1b990d59944523962842f704b876c650dfc86c0" + }, + { /* i=7983 cDividendBits=2218 cDivisorBits=285 */ + "029d1769efc3a463b29cffd417a41da18613596292ff57d055a632213afc21f83082c73036e817c0c553dce304105c35ae559fced38102503ae1734b81a06046b8bbf274a5b7d99ea6c42353c7d397bace6fcde88d578fb9580a66d83f88c0132af6d6921b6e04ebdb6a06e411f04ee42bb29badcb5d35214d8b74d4ff6c4699dcc275393e254b7c66cd075f99e9d2361d429b2beaabaec0c29a3513a2362def4dc14e279beedc753e373843e56208133f44871c95587843b92ad3f538ec485705ee1af1dc19e9eaf2fd1174b8d71b902d751ff7b5db45471ab7b28ed33145598453d2420d77f4ef591c2594179ccaff482429bd108ae584cecb9506d42f69a765500d5ac3c5d9fbfa9bde14ce50c1f414de46fd8bdf", + "197693df0ad85c1519f887610bcf6ca0d02124961332e7c58bc6d3555dab9b33a45a2c3f", + "1a46dce6b59a2b15675a6767d35fb640640c78706ae286c89550886acf74a2cb58334abedc3eee4f9e59740892fc04a9085cc7d678c66b97f70a2a11f22c42b2926225da32c8f760e9eedefbb427624879e515061ed91f9ff4a810d94da0600e212579662bb7240b760208237025abc941fb19db2b4d3ad5d14457a34dedca391284ac70fbc81259de3347954ad778c02d8e46ae7b9ba6735605c8f26d0982381d08b3b97f00492fa8f9cebd311c3e87858d6347b5a4dfcfe01e095dbd33fe80c92a75d9c5d21507a5ef5dbf688ecefe6f870bb65cab1387f8eaabc18ecf14aa4edd6fe7fcd0b48fb6d559c33c567694f81d", + "09958ec6709158b92cc8399359d27523959aad949df1dcae2b2087cc6be6431caf7d80bc" + }, + { /* i=7984 cDividendBits=406 cDivisorBits=305 */ + "36157ebaf3d0ea8c3dba7b3d4e5f2769e3809809f6b32d91d79c75e9a5ddcd37e8b5882b9ace6022bb365d9171bde07f7544f0", + "fa97234c5226b5c0339a439a73712dd6804883650c2d46dfbccd72b7d3481e62c69e6b4c5e79", + "37406271444dc2f84058b37556", + "859a5207ac82a7c97b3aa6982f7466d002566dd40d2a8ada8269fbce29ee1686807ee6053b4a" + }, + { /* i=7985 cDividendBits=2509 cDivisorBits=709 */ + "065eceea33d72ac90a659d72323ceccff29e7d4ac9011f76c3310c88695e8b0a55a436491b648a087ec5adb19314fb41a6734b935785b698cae2576c5ec01c5b9c414e3c3c92aabafd65e63a304de97bb1614dfafff55c0fcf57cf75d02f1a645fdeb66f414f2664ab39bc8a87cd0c0aec3009e94d8372989473773bd3e06bab61889f92dde9454d7a4810d3b59eaaac6ff38d5f8c1643833f830d03f7d133e65e58f46a95641b270e29273e9522bb543176e68cf8d7bfc8e9bd4b13c1fdbe3a844f00d2e049114796bb64d91de6a50179e771a1be420a88d2c7fcd911cb8503e9cf0b10517221d83854882745cb90b9b4cb2cc4815e04e3c255afeb9212f1d8d30656e6f747b785b4e6f5d7097280adbd2039fb5d986fa331fefaa80466de534d044ba3e4e071d9d14c1f11af59dee2b01bd2ddbebf4a519c77", + "9cf0b7c9da26a3a4c76156feff126d1166d4909d49a6f6cfaffbe8c6b6ca6a0bac53b055b05fa6eec25e8e07438a867cc7ecfde24b5b394f52a1c2df200d23647a68c5b2025e8dea19daeece28678111611c22e9898b2708", + "0a6429ee1c207e6f2ab74e60dae1f8b3d2749a500bef2d9285ef4c44eead74c04ca319365a7bf093d7e0bf0d3ba7f6915a942fa1d616f75e1fe93def1318ac4f90500dc32e057cbb7ed8ebb62f91e7d7f352c7004367c00ae434202b2254741e493f4cd60c115a62c1664e357e3a2660b5e03127196adb3495cd3c31c77258cfd290fea44ea855ae428b980560c5a6afeb8b3749756b50401c0125447d17e933906ae393b54a97e590b3f3f902adfce24b0ee0ddd82d763c55edf863fb953a9a07941f7b5270e3854788e4ed36bd5cfcfbb4325caf5b588343fadcb3b065a67646f1", + "223ea9423ad59595c6c64592ea324a68fcd29eaa3ce55785321e401b58677364c9df446493dc9301493b58cd634216b537dc14a0945e62d872d2f6e0d78c33c8acf58ae75d284497eed808ff8b60203c15ab7dad93f5adef" + }, + { /* i=7986 cDividendBits=3848 cDivisorBits=2968 */ + "09876034280d37015f4eb14b24dba8146c164001876cbff1cb84445e61cbf269951d53a525f2edddad04d7c90d063cb983b4eb3c5091d0cac0d38799d8e86e241b8bad74b7935b84b345190498a166e185d0ba647ff7660e3ea63608f01a82e04d1caf4d195f9f5dbd49f55683c087938aa81df94f86d1787c843739cafbe44ac769f68e079d2f93c4994d1c8050c0dc534a04d27d3de657bf1fede6c626773e657edcf2b5159eae1ed053ccfe46270f6e5186b5be04bfc23aa57836c1dcfda5b43bc6ffa109c5f4fe8e3ef4bec361a3e140398a19756fed4c5999ad026c4d491ca4b8bc521853a2128aade2cb7ae2db79537c7fcfc1de5ef9696bd63e1d34b6c7a9bece5bc55b9a65cebb74f508d2be21ef4d1eaf6fb7d3532190c5d10963e9ffa6e3d6c4c54c98fc60cd6f88ae402e4f3641abd2449c224004acd9910951abb0e98c81343bc9ccb8975028bad7ff090c87632e73edb306dece691e8db04d0c3dace521928b1cf282a2d394782cc3e23a269df371f843f5dd509fb60c6273db477add2cc123198c9bbad11b3761f9d016fd6b1eb4596ba9a8c85a8b38dffac564c020d486f1883536d6a8256bcd8e7a10f7cdb23c2d9d30021eaba38b92b6d18248f19283f4fb2f4dd143a223d515bf0d836fd9394ada7ab2acc0b88d9ffcfbc9", + "9890c2e3afa5a55cb0b2c47e820abe88ca70a761b9641d854a94041edda86d503c302f5842c62dec4a8bb543ebd682befa013973a51748de05820b8a18af74e6c18f151328876720e143a5fbf15176a2b08b46153a8cdf425949f57d35edba1600be670a11f1376660724e8ce0dd2f4454cec9a248852091b1165e93006267c593bfa16884344c7721a5bbb39ff9b8c7e0ae818c7871cb3cfcd73735677fcf685a04fd341603ae47cec33463fd74061c49c87e61717a00b76cc304f99ba6b85dd172aa0f2508a360224c6d31888ace59ccd62dc9e1a6fd6b79a9df9d58e43b1325e27e01cf3905b678095d3f41db6133625fdfaa077090eeff377d62460560a922fd5db890bb14fa5541787cfabe477c72069ca329dc02561916033076df1d5bb5caa1eca7cab414417da52277b6e1511126c277539acae03fed745d0ed0371a47b731302bd76dfb088a160e320b7dc652939ed947fd61caa5c428bbe6dc554d25d85355e246d3277bea7cdc233770221fbd7e", + "0ffd31de556a29c60580b02d635f4fbfd4bf7424fd3c6d601370376cb05a3b436d1f691b9f9e439cbd465713cda95f4ed192dbf8a841b3eeefeef76025e5a2df72cded396f4d78e8535450ac320d6fa56e6a05aa1d7c79b0f793b43111e3c88f5f6e8e84c3408f8aa331bb263f30", + "8084dee5dd586a91c7768284aba5fc2d7b821176405badfaf5c26f4775d76bfeb859babec80084b9121b947d32b57f3469d2d4717829428b29c828f3a486419c355d8671782a753f824c52e8d4211e9aabf729d6e04f6472e00ea09aa349149551a469d16f1132fa69b4e937a45b91b10b79166c74e3066ae6fe571d55b5c31b9e1314d5c7ba309a279588b51ce44e476444df24646ec4e42e484f8eb4eda0669ffb5aa4bbcb2abbea7cd8a5b707c12fe33c2aec926fd6da762c66adcb788ceaa8fbb3d5c025369d99a3d5764998c816cc1ad1fa8814b278fd7250df39aaed817164c8eee2a0ac11c5fcddb9388473bcea94b733d33b00cee4c7de58c3ce688ae7dff6d8241a31a53fb79f034ac22f0071184a9a75147113fd9bd8c31294e549f5d22d388c4f3e5f5eb1dfc07b799262429e6132ad960652c13cbb5dfb4b0fa929b11f94ad50254b6a608bc632a5cd0db2e0bc3e6e955bcc08f7babb8706d68a6ead7afdfad993fec8e6bd5248fbe23fb37229" + }, + { /* i=7987 cDividendBits=3589 cDivisorBits=1562 */ + "1423a871ef069fcf5810cb09a4ea32fdf6835fc38537c168884080751feefdfc43102356ac411848f17a43e68942d4551d118f0eafd8f28783a39f3063f476ce0e48be452197ef7d438a26fbe8a0e4858ba0cdae09b0c149aefc4b6071dd1fb7c35359cbacdd3c4efdec775f5ac338255fba23aee6be27b90322fad8b7646fc5ad935910a6af7a0fec38829ee1b8e87206c845be9191ce7328f819efeba1eb03c4e647be5fef40c0db3bec0c03b8f38dc3b626c6b010742a95223e7e8100f2fdfd65fddf289be33ff5bda3d49e872a2a115870ee339aaebfaa5127eab8f62d1ae05fa469429b7b20aa1075edcd09a2341f2225958769af70d5029de6f991fac173fd81309206fa56df96bcf8b187d6bbe047c12f8b60a6c7b6ffba97429c2b9953638ea3b4d72ad2b4dfccb3102658befd96d9fb6aff4cbe84040a01ebd14f05bcf461a8556316b93251512e5db07061f5c468f4e299110f5a850235edea2d2e813e05950658b5d0e3da411ac9ac29b32a5f7b517ef309e98c9d565f1f5daa0a1cea465d42dfed8ea7f0c9b6db6288acc090b7a70fb4ac78c72e2ee268b2c9985c05362a0cee348880604674d81b375118494ccac418511cacbfe08925d4c65cde", + "b2899187cdb825f95116d6401c14e9766de66889ff8b72eb894a8f9b6e67b24a5d50fd2e7c366a5a17066e1f14ac4cdbee1bdfbb76578077b98592fb608d170a89686177fbb827228635db0d710e53520912c1d736d1ec5d4deebdb602aa88c3a040fe4678326dd7beb93a4a5dc524f1ccd2dd0312037d55e3af0f60a7bfcce730a76dbcbaf35eb6841f598376e403cb0a50907782137cb89597b40017750014decd1dbb3e232d45d8bb33647c192f618f8459144d9a38967a8f1b98294c3f1ad2c383", + "1ce08f9c24ab7a991337849ffdfc25bfbeb0b2e205649d855083205df5b82d050c6333790a8bc82e3935ccbfe20c0915dd4c30ef24b6ed03f7d53d54b022689a7e232785af9057636257f3b2afc884b397b9cada65557bb36728dc2778dd029a1c79ebda7a538cb841fb5fe53f0ab5381277b2e7b292465246b0fdd58535809f94c8d5e7ae2a3db356615f66a9a079b26924eb5655ff0c4f03a41912b7bb4d7bee46d300f632c9729cacc984d511e6555fb65143ccdb6c7384dc1f890c2d23a5ff3667bc921a6b19089af9e44faa04014bdc538a04596e9fab7a046768dae0349851326633042658ed0b8b205bea86b8cd2fc29807253bdf36e8fbbc1e57", + "96f4c9df4d06111a1b7bd21698c4b3fe69aaa65689bbc06ebde39ac9efaf9f25fa21779d0214c5d22be3387295d01ac52abfe09e3dce230b93011f301a73875080d53f5155ef3f0b7422a13b8793bc570aaf52d509466828b3d27596d44b3faefc9edd294c3121d423121106e2779d221f264ab75c96478f3ba320d9595e247484d4b18829236573b2901d3d236e4cd3e349a31ae66c615f430e38636dc3860b80eeadf2c93236288dc3322967aca19ee563654d224fb9e030d1f210e8115dff089159" + }, + { /* i=7988 cDividendBits=1695 cDivisorBits=532 */ + "4767ec2d88ad32951423be7836e62549ef508a2f912300cb963b7671f237bb7cd7455cae8ad1ed3bb1afc9ce797573c7459ace6e44f6374ced3303e56468c21b0afe948b2c2d9688f5f65259665a893505becbeb2483729a15ff48fd3402ee795e5218eac59cef0797f9a383b8c316b468f8fce254725dbb04c0ffdc302c3101b33c208266b3e899b7e74c33f7d13d1eca1a250c26926fcc68779ec4e825c0736cfa2e638a4ca66bdc09bf9164e184294a88848cb07036587b85ea8222c73e2b36dec16511daf02701dfa8c04a8cf539b7e64634", + "06df9f973e9731c4c2d7886f63b6b8b62bf23ee23cf04e6ce3e2c7f9917f9122af154184a1b4cf801780047140c4203e6902186b02d2c53c3be269e4de31d9e071f576", + "0a63778632bc04c81698be9cf7f0173c6bd2aad6ff14789f29c4b84edfccf4e7a68e93ec733b8bde2652cf4e296e402e4f22ee216c591773209b32d46a11e2a5169100fd24379bbaa7e1083cb6d96a88f7bc76c6eb7e4db75b433139def26ab00cecf94bd084d93155b1bfb9584ef75cd1a3b13acb5f88c54993d86800c375c6aa98409df2a0c251d133593ed3afe6df500e", + "041a73803505f17673eac856d14dab5b79009d63e4e0750ff52fd688be1d42277ea558608a8e4f3feac09a7efc5ed181527d6a6d86a15362c452b9569631b4ff2bf9c0" + }, + { /* i=7989 cDividendBits=3036 cDivisorBits=346 */ + "0788d91e13c75d0aa32ea633fe0f1ce4ef93df27643907efbb8ba648f5a26212036b20316f81f246e7bb0f62c130399e71ca84ef7c667f4db855506076646b44d30693699011f0162d501250160b1f94a943a15c1c9a8b63cbb1d86420db94793545f710dd0f86ff09156e0c1984b16732df21221a89d6b0081bcfc892e85a7eeb02fba6eccbe4fdb8ab17c60b3ce1845647879fcbffa6eb4fa35e36be2642b87f8237eecda818531d843e8555f78dd25c26ba8b7b5cc941d7e1311714f71ae4d465547d1e1d68133f3eb3e77cb4610f08e94025aa77fab03c1fa7c5915380e2ff95f388f35edd4c4223728055d7923bd835cd024e35084883f69963e2d49bae0e8dfc98e14564eeb3f388b94401a68b2918202bd645596c96f83cef1cd4ecf70759d1efd7ea744e5324b71309149ae93e3c5a6f1e543dd6691f0a6ace777510e6eff8bedf84756778067b18e61a899271d4968b2e42b42b7e7c9695de12f49dffe7b3b261d1e506079d21d27c6304c321123ead02e15741f699bfde", + "02e998e401765d1c9cdf846f078642078e1057ab0a8879ee2de863924c56b5b8b97828e8ae067bea8eb9f593", + "02964495a6ad684f45c29bc9b2c0e66ca01f13c1fafbab67560176140ab81aab03e6ac8fc530d5a73b9b2c9a7e4f318af207e47a160c8ed2e000a624d13d9cb5620e0b35199b69c99e5d5b35bddb3fb6a33935c17abb61ca1cb29b48a1a73b3d2da766b3c307d2f34aca056d4defca39ca19a07142804bc53b0fe6afee9b6fbb8f4cfe078bf90bfb0c254022f58135915ab40751aa5759bbb953dad5d65c7b894de3ede7a03822c97701b57211d97fb3e813acfbc2a0c0a955a06bc2a3b59d5809ddef664319f84084298d4b9d7771186e7ca53adee861713998dfe5d0fbc7c384971a6eb044a9bad4833648aa1c11f2f60a7d554ba3795f9f754db56df9793bb7749ff03f44f922b245d6eb6a67184473afa0b970a2ec2ca4e0e0dce6a05770cb1a5c51d0dfb311570d9b384aec5e22a355b140274c19575b97cce8636baea52532aa81bec501c14f7f62821c110ba7ea", + "01962516f57f474319b354864e1bfba87c92a83da06541347baf22bbac74ec798ea9fe72d53e125fe11b6280" + }, + { /* i=7990 cDividendBits=2878 cDivisorBits=1829 */ + "09766e5772e50c5cff538234d0100b5106a8e0f77d76b5562bbb18997a3493491a3c87d9b5df7be4ae6366679fda47fd0d5d2bc871d8c7b412b0ef5469cda300e16ac736d8029dc3110ec22c80f0068561be8cdf78fab6a8f92d7dcd0798e57f18f0643939032e9a3926d7cc29a140d44b58a69539045ede37e1b47529afe63b54db464f0caf5b2bc7d0fc8cc7b947023122600bdfe11485632feb9a4b0b907c7ae67d7b313a98abd58b63cda522fc81856633fcea0a5401f511368f8587bd70f63408ba09d02340bbdb36247a0fbdea0d5bbe3aa216d34b1a98a17b37e4bfd41c8f1a4031f1ac3415db7d3684dd6bf7cde168d3f805ad4a97cce36aecc722a38b7d1680dfff692892a53fef89116075b13be035385ee46f804235e7d25b375d71b62d70e1f2a72005dbe404f2d7ba4053b53fdadfc830689401ec1a775bebb25f48719167b1ff213677a096744b6cfac7cd26670fa6417d874aafb203a2a5d8e503b8701ffac607", + "0284816db6a716ce76f406e9805244ae394c44692d1a260ac9e83b2211cc4c1b8eb89077b0e0cc72fd3596fcefc677e4be708a48b8eae2f1f96673c1dccdf6fd61e46de6df341cd8d1802fb1906a2a86a46058185dc857465833e505d7c87d3405f376a069de69515ff7b4038259cd04a381d2c0dcbf8d7b52ae534744e8165c4fb55e483a473506be8e03ea4eeed85c6aab8d177a4130aeab9140f41ea2cac3bbc18dd96c94cf648bd478334e59c633256e6d17dccec3fff52abf1b88dc947a4124d5af756ea07ac1f20667056b13d63746a11163089e7d028903aa82b0ed99af48af8538", + "03c232d4db385d949261f67b2255bd0ca4b4c6e812f68305da913f932729ead0c919babc72bc5da78524db66152785b89388f34d6c2368ad3a0db6c973115c20a14f4166ceba5077a408f92a96b7d19e8d72b6ca3b9304a36c84ae9a00b023ccd5fbefa9245c0980e9a630239f186b43cc8c408c96f7c15c94159ab99480c9cc9308ca9a", + "34080279e4abf54cf7b2b14540d9e1225d028bfeac7a45fd7fa5e4ceb033059407cd976f7a688f76fb59d4ee884101f9491af6e7b9ea3068c7adee4145f0c11d51c07af603dcbe1282961878a90c9f514e04ba52841d435e2e02b60843e7b6f4147d4e548a41379d14589679ecc4eaa5f55c9e2916799dd73b81ba8af2939afe4d7f5a29a493a44ea3744723dddbddaf8db9fa03f96c7b0b19ec3e0791d9341df94d4619fc82cab4d6414ebf2b2860628f381a7f0df9b1c00d886e989ea79aec69b7381960b77e6ce2c1349ea942b69638f538548606bf632ff71ef3cf22c60895867257" + }, + { /* i=7991 cDividendBits=417 cDivisorBits=212 */ + "01e484a36fd5af2251ebee0ce207be2418bea4ae2fe6c7f440a4e948b558dea96f64969ce3b369e686216ec79d2a340d2479ae2ee2", + "06aa167a2153e2b0812629894cd090664da01fd46895294c31dfd0", + "48b3cef9d4de99bee6609c5f15d621d81da25edaefe033b2608f", + "03e0d30cbba0c1e05ed7245b039a11ff406933283d4e3c274429b2" + }, + { /* i=7992 cDividendBits=2158 cDivisorBits=1859 */ + "09dc915d5e3af87162e15ad74e01c182189911aab31d8fbe01448555f24d4eead061bf1c9623ca0abde7e338688b91f20cf48907e35c1701ec3113470e995340fdf9cc69618411e20678fa44a89e567fbcf20093451f0f001332db540a141ccbe118ef881027a421b43dbf02c2d9f7dc3d8889f55cf80d6824f22b5c6ab80cc424ca6cf22ed0fe9a804b8c7e54eada80e7d48126853464a545919edcbafe56b83ff1000afebdf5f7d7366865bd9df7c4f01cf6a4682c783242255af1734c373bd5ef623e4047f7051db043183b1022c31d8b5761847937737c4df21d228e1a3cbfa0c91d80dd526239e6b7905930358ebcc6b1736e9b22389ecae3c7b65bced4b98ce3f755a6a7fbf98d6c93480f", + "02165807e9d36a8e9432cdfb0bb72e7393d1923fd7bb0257725a162e9e2fb5dfb4e1c807a87f07e50427093896c546ad854fdca8fa9a3dece646d7c223f0271e535294b0b4eeb7fe5afa2be888d46230edbb851132586e170edd0ada85a0cb6eef71cf104b4f6873590ae96b2f61003fc8d18fa48bc39c423f93821b46474c55fa6da99acc7e5173b14ec5d61244e76f8bfc1165b7eeace202a63f7e1173cb0c6548b7a98d3bab0ff3e8f012d4e19be2ff488f9338f62ee8a35bda8c4c62129180b39da4072ebc0d48571d2e3256fd89d75fc9d0847f162829ac4c2d604c90db0ca0f4646a88ffa297", + "04b9803790b998ed10a19a2737ce6fc95fcd67df162032346330a7dbd807768988e45206c9bc", + "7dc46ccd15c0add9b100104d1bd85ab52519b153245ebd74ceb6b4d781910bd30147e9b3a65f0e4dfe7341ddd874e794b8e561eb6279ebc05adf22fefe6750d2b29cf1563972b154e062aaf5e7f35e9016c23758d90e41527c5997557547f4010778b2212e7dcc0cb446be986c583bb9ba4cd07a8fd2474a0082de521a1c3ddfb9e9fa3021294ce0104a66efbc5f0be6bd0f634f7a559641f7522e19e7c5e32eec6de2c9534005f4498e460197ee7db905fca462c54cc9986856e74b6941e8a0e709a1227a3cd310e326fab9891051183a6b26f7f6ede4fc4ac089c1b03a7891a86d7731eca5522b" + }, + { /* i=7993 cDividendBits=1553 cDivisorBits=681 */ + "016515143482ece511f98d4cb00bb421a0c68cf722bf19774452a49c21522b1b34ef8584a264c943b5864b4b9fdcf45fef6b734acb29725be61af9db6eec833156e999500dbb378c3e8d5c77aa878672a7930178cff0db71da4133dfd26cb554998a1f18edd51f6622b090c495a0474c27dc2979fbd5c2c1780993c0701467df3df9d027453e4f6d4fd82980ce9c22b5c5c87a5fd2b095ecba6620df3a1f11346174314d84861fddfbc0f7c6e0a658ce07dccd705507b70ee50ea802082b7aceaf2435", + "0108a92dc9ca64c8fd5e82b1628c585e5b1b7457684011ac15d8dc4a2d83343b7a0785a96bbae6cfa6495af0218379f7fb1b35dd967cfcb38805561c51721a530d28bb60c2fabab25c23a254f95b2365869757ec32cb", + "015965a52a09f376acadd4a5590b24b6151d78350ea5f5b95534d1e9fec40fed907c76a8c59c1f518794aa2581dab0cb357fda06b4eb6fd18fe06214f628150a73bda31e5eb7b1bc79837ae60ab0ef3238498ca5cfdd3769f2278eb42a52d7817b0e36a3a7396ff829751cb707c2", + "e0206936ce2a20afc61bc35f7a51185bfcd21afabce6f1fe75925784abb2aa1977855b364f9cf61d293f3bd70b7871f87f182580c25db703acb4aecd0441c594d550691bc0541535f63bfd1e0967dea0353530195f" + }, + { /* i=7994 cDividendBits=918 cDivisorBits=850 */ + "72dda536a8d63eeb15156068e714d4e6a95e60b10b48f1c6d974456a69d9e080f9c7353601cf5a4916eb5b912f1fa7ad2dfe15d00781958db13b6e54ae32d5c9ed01f3aaddd23fb54f54047d657d65a006b0ae4b1721e1202db8a316ce2e8c610393681f77502bf20be8c7eedc7ba57c4790", + "038a94342ff8ba3de1d4055e5a6ff4eb418a9bdab15a13b4994884721414e47aff7bde3187b8ce6ec85149c09038dff456a0e9a3fe55e31827f18a468f74c0200e2fa39f807667ddbc93f0e51c532b8a5c4956044e2ccb29d87654e9b5b309cdb37af94ff6875e65c20135", + "206f92f5887cd5ce", + "012e146e9ba98c8e0acff3c176df0a34d093f05f86b6d3477cee634cf91538070ec73ba9a0419316b795ff63ac686833cb1554b19f2652ba072543515ee04f6a710fb43c8e429881ac918dbcba030b04360b501498bc74327cd9c786ebe3fdae2c31c96bcda7859ab235ea" + }, + { /* i=7995 cDividendBits=3489 cDivisorBits=352 */ + "6b548679b01bb9aa881a1ed47437117735023f3fdbe530c6ca25810d42b2fa29826e4cc841472e98a09ae755386dd77b40196a56ff3008b18ff34687c15782e6fab80e5882d19046e310b317f15cfe0519167dfed2c3d0fc8ac4952b1a268ad255531133011f2d38172b1268e7ac25c0e7a03ce7c968711a29322b5c5c9f794f426f8d2b321aac78eb9cfa4799f895123a98630012cd741cfa064190e918c76aefbeb03e9295fd74c5315b95e123ee91b326f8eb6a306a2f57be2dbfe22ee7eac4a2f0c462ca8a34f8176b38fdd1e8fd84cb187fa9e28d4b6bfbac8a4344c3ea7f0c94d5f994160a7b956d4c4b5d80946a3d1c6385506480bb1a09fdbe7c4ceff43e7e4143b6fbe6b466a8741b326e6e19db7631e5c3380081c60f62daa9540fbdfd9b5390d2e06017d3c89a5037ea646fd908e1b169690b8ec29238418e77ed1ff5be0c15048f02787fee2e0218d42ce7c250b02e9e2113c1bedaa4634f337395baca6ee6fc1f28f444c160b5cbde29f8a1cf0886b93ccf1ca80d89fc8a591333cd3a1a2bbf56c8500c00520cb6c75f9fb61218fb99c4076a8f7ed2eb1ba9d19aa83352a2b0b77693b620442694048f23e53fe8", + "ac818c398d85e04e258a7b6f4a387be65edaffd4da193d2a965c447ad33cca86ef8964fd956c912698ff1770", + "9f4753c6ee4fcc05cd25b12aebcd8427a0fe85af7d22ad8dde78e7a8fb9f89b5aedea1f09438705e8e469cc87b7120bad861594215b429fd62e8e0a1978bacf6a8501fbb3f7a440c4a471f02c88f5a23134c8ff87dd2b179fc779306a9c53bf18273667a34aede71ce3ad445eaade5968525add5abf021198f40fdfb1ae4fe5470540a4eeaa22476b2d22edf99ae4187b88ab11695bc7c4350a41d9361b4d430529e5e8cf0607f1b9fbd373fbe9129a97a7d67fad53c64e1a8286d9670a8b961b78f96a13d2c81eda8b173d11d5e63ba4d1aef2efafe20bdffc3d943ebbc1bcde6fcd613de16f58dcd68cfc0138f1fcc34af0125df512e3185be0db5c7be2ca212bb85bd0f2327a0b63a1858424786d37f5210e8773c092b86f9fa74a0a13a62fd840f40b13e721b346f053974fd9f4091c8522a3dc571746cb9df895ec7e0c9d648fad820fbd5db0b3d79b910721b4b6b6e1e5500d8462ad42132738aa9ca8e459991096f4b9d3fa474a7d899ee9253078a1d7f7dc20317b538336a8229f97fc2d8956db79ee21a", + "3d2c718f190e7237e1449fd7b834b241fa1a5151db6835e73573239baa066aab2cc6efcab07741b0e02bfe88" + }, + { /* i=7996 cDividendBits=2019 cDivisorBits=55 */ + "05e002848c538a964bde7082d917731f93933852f3197e278e6870d55b27f0bdecf1fbbfbe1b119828315bebdf44ac2590804b5ecfaf4d3597d4937ce0b383ac05308f30d2af0dfb7237b2e64bb4bf392603933861b980b56c63cc9ee59d3bd70e902ce9f4f052ddc490b82d97db5ea6db48e9235d0c1563fd3c0726e88b98bce496e6da1ce95c8d2c6bf4b71a2c00891eb9cd02306c2a24d4eca246a911eaf8ffdb8c172b9fce7da3e0c85420f75e901e22777e3e3a81a3edb2f5f603616bc2dac286724c7ccbf823b9ca43c4ef87b37a879759c3a3a39f8aad0f3ddd0922b803930212f4ba1b1d7b61040a228945c2bd496f9ed755a0c70ba3ca015b", + "304ceeea2c6b56", + "1f237a442dc8ced896ce512a6d6b153b9d11f6fc0baba149e7039b004a1a9a4de0abb649a45898993dc783cf79c2fdef0c3bc3bbe53a76bc27c7185877bcde296a90a52d3bd505fd7aac6eec39931ea959ee65012582c9517e05ace5669264d8dac726647173752e8a1724abc05e974d8a803c11f893b3058940f1109b2c8cb7a4f7e084a9cb723ffbaf085e9f9bdbf27ff57fab4bed7fa27781d78398b774303ba13956c94b4777757c38de479f6700eb138f845bf0458858a0c509bec6148ba5ce105b9fc335d9bc75c8403d91bd6b8dc01070bcaccb716f2bc3653281ed2a0bdb9cb792b453a5baa081f3d63f990bb5525042274b", + "2b66d5b8407529" + }, + { /* i=7997 cDividendBits=2426 cDivisorBits=821 */ + "02923949175e64dabbff396ccf97a7408f4517bd869154ba3419047d09a2331af1b5907a6cf5375833fa083cca448a180fb5873e8e92c4756743bcfcb2e292e25a55f0f37bdf6861afedb386a7a1d64ef4596134bbe61ee14339e1552817c18139072ff48aec1bfd4e50606cc19499b1e61074bd2a7c184bad7bba41308bc1c8caf31324d0f5fd263ba8d4abd0d1a132a99193b64582726ef78dee1081e21fe08e7e2abc0723efc69ce0dcc18ced2f00852e366d74fe1b51b0a020e059560b214608f484ff73aa4b18ba50231447ef75bcb4dc3cee1d3f3477804efd31cf7d841650938964fd9b85334f2a4580d2df0ae78a65b4419deca74dc6f49abe624f44b273dec15b1eb27895cb1716d6014b5d5f97d51f5e2fbb431c9f2fdfaea15a13f2b89a160f8d49440d8e39ce25791265", + "1737fcd297a73e2686166b63516e85330925f08e2ac020adfce59e44c26e61ba3ca757a4037fdf5c37439da3643ae214aa26bcfea9b8e632a138567f55a58bede41e0164bef136b3f2f9772281cfb793c87d9148f73ed08392a91809a596fec31d76b8d8f85b34", + "1c594f09c1d4b895e5da72939fe293a18c24683481c8f074f73cade650c085102c2a3fa8c8a5349b74cef60897294691294035df9bcbfe93ffe4a3f3a6fb26dfcaa4d0840832237caf06fbc41f1da86c46cddf94bde9afcc7fb3d3612e14c6205a62c91803c2262905f6bfb81046f00811ba6bfc72b166ca511dfd8d51a9e9816277d573dc872ab20e3eb788116c05bfc240637a1c2076d461fb74568a027730d4537baecfd258ead06207db27aafd623300edc9f16a446b7322e7762f786100df994de013036057da", + "0a94a938985a4264ae0a008481990eae89fac513c5c73533c9de641e4c6c86c94c96ccaf5264f3a5552f922fde43dccd1121a7d9890130cb14cf7085efc6fc9a2aa8d93d0bbc9bd36f44ad5cb4361535aed7320eafbf49fa9eb3999504eb7f4661c3992b7cbc1d" + }, + { /* i=7998 cDividendBits=2920 cDivisorBits=956 */ + "b32de6ba95842fbc6bde8077bc7ca9ca24eeaf1d3e23b3ace2bdedd3ee6bf154f610ac9881a9c0bac297f3011a0febf05cd7027f2b986b3523d1d7c9e399e7936a0a6a35ea208347f48381760583fdc49d0f1cc5ca4a60da5c932d5093a692a51ba270d669627c6633f4eb0d5678ce2fd748e62499f366532428c5f964d34fe086277514b7ea5ca7710c0dba137903709bd9b20d93d86afb29d6e682860ecb2144acd74891c1c3301a83c7c712fbcb2cb9d6cc85656b51d51d5d5088fcaee9aea45c5050624fb723acaa72805a7f2ab94bea93a4b3f7aacccc8178bf6a1f187723514fa2dd284541894e721cb20cc15732964e42c894a4c4d1f529591977434432ed48772dc197932e0b24f8dba7007632942a22bacbb12b9200300a476bfc5174c739edac2ccc5040654ef94035a6500c3aca73892cbc366ed32b8375510447b718db95df10a3cbdc12dbc5f6c103264a88ad5486a8692b861f5f6994ef822a1d138652d5f73fa0602151d4f5", + "037af5cc62688cb7a89e6287b6729a28d6198568aec0603f83901f845e90e26fc9adbe4758b5c795171cdc9c58ee270dc5b00d63414824ec93277855a099aa3e0e1cf34be49ac57edaa0bcc819f692080cb4bd38befe59215424253a173dfda6cdd4072c3ba7912640dde8522a6a1c26fcc634519fec5f2b", + "337bd2037d8668591588f6310a145ee95b756526737fac2018af4eec04d956965ed7e51e96c5ed885712b1a850ff3e8f3097a2a1f3c87d53b5f1a26762061b7670ef0d8b72df72e37662be9b5e592528cdaed7dd0e1bbdcd13d244a71a0beacf7470d4e8d5e2a5677fdc8ad7fc456fcf98dee60215b0dfe1a4c484564685f763385516b6265a9c9885fe6b2ea9bf58e9509fb5cb0509b5bad4bd09baf1b8f00349708f7e0f49faf3ca28002e7c26f644ab88b95f26234fd4a3f457054f6d0af45173838579bb72b183ca5d3b0a86b9071fd0222ef26b45b439c646cb02e3d1817f48e6bcd393c21ac30662d955c1e98623cb86ecc494", + "8e599019540da0f38c66a69a85cdf095b8dcf41bd326f35a63174eb99d882e55f32934db76e6dd501c526a21eb426bdae39dd5da0d08fda512b1094da0ee4ee1ba43630676bd1970102080247cf3046a770666fc05eb8c6048cdc1c06f75f5cbdebd2c19ecda99f9545d4d8e84e84f0ab162ed7629e419" + }, + { /* i=7999 cDividendBits=927 cDivisorBits=425 */ + "4a620a7ec1c33888bff016600cf36a738cd16c27064f8886c0bfdd7f815ab2f39c56431dc5edd28d3e791683bd4c07c93aebf76784fc5a1ae91009ab2016217466e4e4b7e57595aeeac83939257ee86645fe3bf7492be1cf62a80508477a7f0163a565043b473339df190edf5349283eb0d1af22", + "44b79bc2c2c7fc54253ab60a151330ecde5898c694ba709b8d4d8348adbf47dde980a544b7bc832f95633a8bd303bb4c579a6e7355", + "01151b75b19daf02977b3901a357b3a1727268d00cfc07c7b1e1bffc9c46349bb1ed751e37b1d6351e5f23830737bc43d09a4165f9b41dd5e8c91c052b2be486", + "2a147a31fc96263547aca0798cdb9e5fcf84142c0cea790a3962c091aa58ec1f412a8e325aa7b0b8ce3260d63f57172243d6029ca4" + }, + { /* i=8000 cDividendBits=2397 cDivisorBits=295 */ + "11fd97c99410e6d0be27fc130b55aa717fa403e8935e6057805c5397562a527b9c1c62313468359c6fae60d53b8357de160ccf651aaf15c13e549d827d4afe5512003135e9ffaf643b0b59e03084371f05dc0c5b16ba56e31e917a32c44f2edb31113263a0075bb635568b89018a43f9979439608627f2970ad424d38f932284c6f260af04fe4381754ecf6a3939689ff3faba2425092efc258e0f3478eec328b8c0fddac5095b13585903a995125b42a82d265aca1b447bf0a921480a01899ae83c823d7dee2d717cf113c827b1c7f45e7442944f288db699a54e46822673828690edae6547730518e23e2f255f774719d261effdb070f2df09b2f9bcc6684f8b36d87f62d77aa1cf1947801a8307982ade11c7a2a90b71081ec58498e812566ee9cfdefef814f73dd3aab0", + "66bdc7dfc849783fccf4ac0885d9bb84f282fa698953c8bcf3e24c7c3b504cd3bbcf222513", + "2cd3bae8f1a8f31867539c19a797e8787e294b94711e409081d9415f96135c5059cd45d24134ce592758f6283d394d49456eb8d878988ebe88ee6f809c711df04815414648ae914d8920b19891581b550784048bb2daf26e64e59037c848170de5f4e2d8df40ae0b19b4a25ae22ce9ad7ffe1b86e40c5a27097488d960feac50ae55809289e5b797a6e3e80a27f05a91c590684cbcdbb66d0e57783b4fe80efb480f8f61f16a313db6b1711089c3f4d2449bdaa0e78380794e342d73c27d0708ecde7fe18d3cb4102d7f85a303e5a47df44fe12742ea1394a51dcc4560f2b6e1311816690ca2451fb9e87a79bc3473e3724fcc5cd52619664d6b1943ef74a3b475e0b6217eafb8", + "4dcd0b62d34db2ab58d791478ac462f7ab52ed6a926fa69265a0d4cbb4e6792e4a53970808" + }, + { /* i=8001 cDividendBits=3386 cDivisorBits=2262 */ + "0264da57fdf9585c88d040eed9d06c7a54a07aeb19332fb2d04c975b32ebe768667974b2b374a858ac6ce8656520af03c76bf6aea72ee8fdbbcee1d8ef39e43a8f84882fd4643a9b2416bce07591ee943ad9dd1f53ca2380a61961ad70a7bf43c27a68d6c742c4cfad30fb56396bf4dd390b78b545cb9e5798d1acc5c83355a0cc35ab04a27999d079dd0879576b5247b429e332ff2876bebb71dee301fd81ba366665b8a3d749f33c87e08f0a7f46464369a2d4828ff0da8f6d5bdea749607d9e0dc493b455a867e8b2759926e21e3ea1719149cdfb594fca66944237ee236da3704897bbda886d097f46561767aa8c7e53c86720fc78571c700d6dcdb3cf902b90caac1841da5e1bd473a8dad7fafabf3ae832d5dcb40f36eb4b1420652444269f1d434ff4f614a8531d17863c00f3b654820d49c4a3c39476d0d0ac3c3b453bfd8f472c53dbf6fa4b86a47e138bbc5d5e8898e4637a3d032124963eda38afe3629fb333d4dfd582b610600b5f2c4123004047370f33706b4f8ad392f25127555241c7edbfeceddb1ea2a9b45f8cf9e4f5750271fcebe2784cbac5d7fbc97651086a70c7da6618", + "0e77723ff014ad8872beb22251e5410086af5845a28bce718e847e39155264b279f5e9898739c061b9b354bf5a5da3a26f7c820689746659ed63cc856faa2836a0415e5bdda2b88bd119aeeff20552e30d51dbf3f3e3ec3eeb8731c49e6c86defbec42dbadc26131581f258b1f9ea9fbc78ae1314c9c437ed8d4a160b70def9e9e2fc25471ecd969d742766eccdefe97f5ba56e47ac9a8867729566d62f68443b0fcf53ea416d3f7bae5361f1d1932379f6076f15a1b3a52191938dc562850cb4d4b568142df6550943ded0fa09f781495d9f438820cb1633e073cca7b538770ed5a1829dca68fb0f3c6d1c3bbe4a39c20f083cc7173cc486929baa271feb3481767d6e3fbf07cc4e23efe3f6b76005f7f4d8143a8db262b319b1a", + "2a5d03a9d74b2aaa05771c7923da5bd141d0e14297164b630cd7f9ba93bd4c182b2481ebc7656f62865cb6ee6dbc0173b2fd754cbc615c3b2e2e52a25fff025ed278b21ecab67b0f6739b14117dfbed379f561238a9e1cf7e2653715dfbb78c30e3151dd829908e724438432eb5301a5c9fb30385f04aa89905a46ab5b3d3d190d597a8692f70a06c6c5f03134", + "0915300ee857bbfbe9a7d2c287eb3d4a7054d084c52ec19226f8554bbf8d7df6427437eab213d9ee1bb62cafaeedaac850e216bc9cf1966b9f0834f1cef0233081c9057e08abd82d138b96e097666721b09d76310587bfb2cfbcbf7b005425415b35ea19b6601d379018dec3ccc50ce72a6de3a36b20f67f0282982bc0371b1abdbc0d0aefd90b4ffefcda460cb4680d538ef580a3595a77e60b9f70ca90f128d581f15dde4358441bc9b68f8cf642542fc75663ee79826373335e516f4400b32c30d51f2182e45737d3156c862619091333e925ee22437212b18700f010dec04fc82cff6a0cfc04abf898e3085d4976237a64953c369533caf96d7f269b8f30d1f029c71938a4a5c6324ca45c7390b744ec5cb6bf5b7318b6ead0" + }, + { /* i=8002 cDividendBits=2951 cDivisorBits=681 */ + "51aff26de2556f0c6ca47f5ac04ae6b60e8fc9bce7ea7ec2634933cf2bda8fd7bcf0fae3fe2775eb489f8a5c1384dd340c3b815287e8b5b4859cece4ceaed9c886857b86a510da187ed0dfaad371368bc4488e70bd6864b2056914ffb069a3739470ce3fa4cf8c314e3517335d05fbaa67c8156a39863ff2476b00c341dbdbc4312d61b37eb9938263b35b7d013224262d0a6d2f91c0ea5be0c7f2a05b2fd349e7c2e77002efff863f28d94127cdabc416c49f900912028a85203be2d20802cd9e751bd2c3d8e38fffdf529c52cc575206c4a76fced0a079f0d5591569b273abf6d37963d63b0ef650b100f2e75d83e85d81c1ef4bc6a2076e693993fc3a2b961af8d9a89d92da3f4ed5379f915bafa4abe424659739a34915aa23663f28252d301d356d09395dd10774802b368816e367c0e39bad4823eb3e73d3f3084e0249cd7b822ca983a17e0a20223746fa77e13a615831d82696e45e1d5568664bd424aeb3d502c3f3d2bd6b3fd71a0e41b28780", + "01c2d543937749195fc3d0b3456b094a4dbcb7bd290007312a73b567ce6e37ba308371e2de1942559cdc2c8033a740674644b35c8de9bd36c85476cef1c59d75568f881e34ab0bcd75dd47cdaa5782adcd7750d7c506", + "2e629769762d383b07f4a23f754fa4bfbf8740d003b9db02bb74018df43a16f5faec09cf8fc2439d5d1d407a27fce0c9760050b9c66000f0697d4f528ffefcdbcef6c6ca51a50511308c5d399a49d045bddf83682ecaaab22cad301c04bf5cbcff715b8bbddd437a343c5539546d509c97902623b9be8d1c29479f74aa739c2ddf33bad6d41781253a9c34ba6784b5d52f9fbd8d489f1f57183ef330b85b264085c6a0347819515f460b0650cedd8d213deb54e4fbb253436216509419a01d80231189b2a4b557b24729141a124d71b20d95460ea23265f663e92b0e36adc30a267088e31c6de0562751774c240a8a66e994887a6e8c60220c291d68db4c222973a50b557f144d6a16b1d099841ff5d63257109f61fcbc16515bb1a7", + "01833600e27a36caf4d83f7faf99c1d431b89d60bd52086f38d73e9503a17c9cadb712048e9f8bff2d2c7a6630c8a00b59545311d2224dce7c6074c362a3214665163b09d5bdcdb9015a84274ec96c4539c56695da96" + }, + { /* i=8003 cDividendBits=2938 cDivisorBits=2115 */ + "0225fc40bb3637e59212ad77aca6c4b8d724d8e9e7fa3579f1e1d4e4b9881721ca3813923e38301ccd5c586c410995b9bb562a1c17e077af552554b1b325ec9ee7f94d8d7eb60fb216906d7e270493924c686e6bfcb12c18ad3dd08efcfe7846ad66fe8459178820a3a71b4501b0fdbd8adcbadcca82fdc234ea5ecf1f2f728af66f709e13691bbffacf7be58dba1bd9b900ee47b81ef83edf0b43c27b69e3a52be2050cb53d1f833d68ba237c105ccb0d3049f7427a5f2be51a421adb40ef3a1952dbe29ddef488f7fdbf30aaab0a4aa2aaf2be4bf3f686162dd99d62150c9c72292b17132a7bd64f908a9e116da008514d0b1327b365ac7efbeb64f639cb754c824b1def85eed12f36335337d627febc4c6faf6aac00a258d52898c77e6f399a3611ffa10da78298ed26653a82f54550772105f66ccad7a688ed76c58fa20c717fbf08025445a239039cccfff093900e604079781363f9beb01ff5aa6d5c3e068da5d85f3df859a3dc601a0f897519", + "025bd66f536255ba9525f4b272410b29255ef5aff37eeab1ea4bbcca4f15da0cba3815397a3ad4e59f2abada7bf65df9cb80cbb29019a7e2d0b6fd4ad27b242584171328cd721f14c940c43ef2aadc8f4b7a20ce5b741b5d374c05f57010c4e4d7627cb651edd9e4f30776c91b2e51d4516f21e8a461a02802894b3954cdbf37fc36f74caadd0bdb1661f902d4e049bfadd29ebcd68195d656c3b9f23a84f7b8e7cce84dad6c9d2237d98f8736ac09613fac9bc468c3e4c4b4d490672795d844aec17e93576418f519b1f83bba91ae6f271f16ee736064a2b69938ee65d19762e88afafd8d44ac7e7e2cfa3c64053cf24c07fb1f0c2d2afeb13d696cfe1c53602ec2bff5f2d6a9b631", + "e92b4763b12ce70ecbc916969d926a1ea24f7474b059003bd019420a00dabc227b532d2d037b348067ed4c0cc56be00bd9aa311229c5da95ec962fe7045df749a48bd168e7b95409df36ba09374996084871515aa5c1d5df03472cdbb5a59c43048855ca65abf1", + "13a7ed311fcc4d26c697db3bc53d66af0682c6716f584d441e1b25a68b8ff9db77c3b64a5ce6b0984da48a3655ce7e33569712c7b2e9552009a3414925019c5c9357b1d3ecd3e6d73d18f27d180a075eb7f70da44508f19d931d066febf7ef2f744665ada748958f34f45543bd615c313cba21c31efb5b10b060232c304a93e6884438c03405141de49be176495ec69e691cc78baafc7e639f969cc8a5814e02db7df8ebee81322e7bf89560e302c818254a231d8c315e400b365f3f616e1b3cd5533f0c6c9e40286eabe4ea9a1d54a0f030612f0a7213e9ed344beefc331164fa6b26c6fdee392d004bf1d323bf8cd280102e0b23802bff065006f33385d69352c4801e11bd35f8" + }, + { /* i=8004 cDividendBits=1412 cDivisorBits=618 */ + "b78b7c36a2dbc015295667d5ce5d93fc559f0dc59be6f53b0188736b3800e707a2535d4e1402042074da5c29577f65e9c42906a6d8ea668c1201ed88ace748b6ee55facddbf78af8a68509c56aaa1347690b34d045dea9956aae1c12176e2c9f147e213c0b94503420cd0221b6258783998d1efe84bd95e3dbc4411f20a2fb3a5f7d1febcbba1c7c17f926196644917dd6d49320f00828e121eddf6543f28e0f9a720e424ace153b29b4f801f6e91298", + "02b0785620a386aba7c9d4aee4ebbdd73a1c45ab0414bc2d52ed59e168c24144db44b01186986d560aa8667e1d34267c701b0d742c06e43a82e04038e58d1d759320b13f1b22aa24ef55ebd040ec", + "443fc733c53f6fdcb90157afffa2794bea3aa85e78526d0060f6389c2f6c4b9b58fbff7e4a1bfe240d3b32cad322bc5088213d54322d04d1e6838fc0d75c1532321489ce37ce8aac2c66f819760cfe9e6812cfffa3e3c27dbd2d0cab6b02e228a84226", + "973851ef7d5d04db9d5191cfbfd4836e992d914d1cc4b7cd4b708a5196f46e64cc0ca4dd4d0939eeccf1c29246cdb8a08accbb1f050a89e0a5bd0fc4a6e4d2070bbdcb886b504ad74dca629790" + }, + { /* i=8005 cDividendBits=3264 cDivisorBits=2544 */ + "52702f5225d2eb5e1d6c062988d0376ff99b336b5f7ad489a865826f4cc1e14d2e3d856ea6ccc9166dff53dbfa6bfc44dfec34301fb3bb5a900891ebef2fc4beffa7d80020c7bae1cfef72c25a70c68afb12af5c2ec8be277b33375e26f0b6801591286b85e4854854789d59a72bdd044d97fb389ab16ce25f73a6e4fd559c195fcee9527d5024b999a26232f6ceb5987e351ab9dd2a8123c733b5d0b460f2421fa4f29fadbe7d802ad7e3185887bf9bb8fa5d461f06d7f66fe16c663f8916db8e1584400361d44dd3026258150da92959bfc252a3dd87c388c05ecd9c9228b0323b7d6084ce723a7dfc4dcb83344971f322b136e23f775b13fd0eed8613715f3e1d94fce6b0b7504dbca940f2a61cefd2f926ed70fbc7bac5b399676ea3e4ebe887ca829de044a93758ad88a947783f74336849ab566e3653ebb300b0c75cbd36a18a2654f7dc9ae80ea19e682d4bd06e892d74a7802c560c24e761d28e25c17cf97dbc105bd7afecca68de7f6b52cb463e5ac508075ee317fcae2e3e6b9ce580002c5d57188d823d4ea94812551518cac4bd9dd1f03da1", + "dd8fc992fd10a87862868b61041882ac1b49b059f046b5b3fef9f254062efe4718d6ca7a397ee30fa36c5719ca5768b6dffca050dcf082ed30eb0a0f711819c9e9b8393df1c8fd6bb87ae40a09e263df2c3f3c9505947c54b6672bcd8ec4833ac9148446b5e9cbae64c4e0b10eddc4ac0cbb02af253c396bdfffb3289a4691e76f7d04556d38a8ad31d455047c5724c732316f9e03be341b26d230d245fbdcecb618d7fc6a8d7f50c5d3a1ca54ff56a71c6cbe3af5240edfe5eac6f36a73524afc06e56593fdad58ecdb14fd910fa86d26bcde7456d44ed9ed764e006a9ce8b93c56108bacea2bf321beed8c663c2aae8422cc04aff04ea7b5a8e82e20a912294b85f2bbce869e5380c0b3fdb9557e6ed1114da4b6b791e7c0d6219de8c5aa80327b6ed88cefd6b20d89c787a452b383d46aaaf10f30d0e2259726846d38", + "5f4080e9c2b3ba1cb99939e508c6edfdb1f4248f69726ada519941e80b549595a4b29ad46211ff0426082e33dca8174ae69f15af180c19ce330350fa5f9e7ead45ed44990a21f030e2a599a6448ce872510b40358bccab7dddfe", + "75f1fb42f7a7b6842bbf67bca56bdbe8d7ef6e12d6e74571ef2266f90d135122aa8e277c7c311f67f07d5633f36bbdc38375e553bc1776a5bcbfad2f8239968c8f9d48a75bc3391426791e6a928f4ee91a56310a5a27ed75d69c4b14bcbab7d464fcd14f9d800c2da14c86324fd002fc2f938541ad7f26a1346841a42945ad629e88b45b4a89480a6bc9d17e821eb8dac2f3044317a9e70e1e03ca30b7b1b04b66d33a9dc017fac1d21f13bfdbd9f651ef729c7729d5c857b058514471f26e4c4895977f84fb3f9b1ceda88d7f112e3f9f5b3e0ce5347ddff1855014674e3bec0b0ad89b3103bb744627e4512c6c0b8110f46ee6b9d969898497906629e2d2ee546d55ffb09a9b16922550424917c9b6cff5889bbacebdb0a51de3fddea6e900f3a94bb7e01e3def26b52bfdd79c1d9fbb3b94f34c50c8fb41278bea8811" + }, + { /* i=8006 cDividendBits=1474 cDivisorBits=95 */ + "f2a8e4d111d8be6283a8fc8ccaf10b675a67014c8508c8e5fe9467c248db7a56f16d3a7b1e5b7153b2da84ed55f0dbed801ffc1a5cc2a40e79a06f98471b4ddf7c7a31ba501056b2bcd0220ce5b50b38839db2e24d4f7be54a33ec7811b0c1aeadb0fd6deccc7ad213660cc3b3a18756b5de13c1385dd427890c84e7c3b5f4b699250cbff76b360b4b69c762fe9e8da7193e23bb01ecc7ce934b537cee1ad699a5c757592f2b83a5e102d8f796b7cc7e983db732b3d1f2bc", + "01ffeaf988b09131fd4e0407", + "79596e1be0780ec184cdaba9088189e314315aa22ce0b64b1104f6ac1b1a975a81a45f2aa56686459617b7db300765845ac4d990d868af00352744114de1d685dd17a230d501b018a57708ae30e75c8994a924c3f196ea91658f481b4a71411b89f25eab4ee345fe40230555686217e425f67741187416e2845b40f9612a822edfe6a235017ea7ffc39491feb699fc03b66f56c9090b43d6b1c15fc6ef0e95fd6f0a7be7012e523a47e74ed9f3", + "8d2ef55af93daf96383117" + }, + { /* i=8007 cDividendBits=3431 cDivisorBits=3317 */ + "5a3fd73b1d27ebed060c5ceabcea9c83f8b3315b9a369a9c1cfa465d2ca651130991a5b1f4bac533e3a0458de205dd5ca9566854150838e636287576a222a29da34b95f4ef5ad12ebb885e10bfc1bd508a1bd6810369b63736022eb2e205006e7fb3397f529cf4b26f7155a4afcacaab5db432453f1326bfee175000a01944cbe30f61d149d424447b824316d15c46a06a9102e1bcb6716417917973b86280e0635b51b337817631baac785dc78fc129a1d6a18dd9065054c2ed344a81ffe03582457c287f91ca7211bef9db1e067a5d0d9c5256ae9355696c11e2db38fc2a55f3a7d4314ff13c55e6c4a9a89464663565649babaf92d6c77a7b0fcc841f3e6446bada5be6365dc156ce1ea15d5efe89fdb48ee4531522393b481e205cc9310ca1382343eeb84e66dfe2cfb813a51d2eb721fb92122295166738b2cf138fb21515978d8e54ca5b2be06f5b14feb50dca654c990873f62e0bbc813d83eff7e1ce411f7b09eec6b4e08609373bb1f914fb3c422efa84c825585507fc1762caaedf624cc26de5077edc615887c63d5d9eb14ff5246eb7dba22c36de12b9ef4be568c4c157dbb5aab1237770b604b1", + "17eaf3a26182d68e6f70fc8b5b0b58669af5471787661b47617865116fe782cf0f8ab15201e5fad8c00422fe3d60b8b4897df7f7a366027386cc15b862c445a6ea3a1f5fd69604e4e701174b6f6222dd4fd74715310db24c698228d9ab9b306f50c647f75f1dbeb3c3bd1bf8c381c8855354302f2b31bdc694ca3d4ab1b32e8db0554251b47ab766085a673822a8a2589fb17f3093abac308f240a7ebcf266402e4c4286ac2edbae501ed68444cc2a44da1f60ce2ddb5348e7201bbd549d60aac68b6b4b433f4fb51255d5ed40f9086e01966bb8361837ed0dfc198ff96035dae785973e40aa94306c27d9e8d1a011442fb20032b8431895a856fdfb03ecb26f481ba2b97a495d6b68e1eff10c695763a102b14b1f5f6af32240b97179f42ffd59521fea40ef4a044a70e5f2d69ecb1620e979f75ea088a0cb0b5bd4c0f4b9d348e80c7aa359ad88d75cdcf729c166a9dd6d7b20023f965874cc49e93ecf56e9ac6133fdd0c17b6c28268990854552202732415c0f8ece537fc5ca3c05ca0e81c12e2f5941fa715f9ecccb820c1d684fdca2434dc41ca277a37430d106c1b9", + "03c5f8229e49f9adb22a994c700aa5", + "15992ae37e1ea9cdb27d0c5b71e268abf7ce44603e417a815acf11fb0153397362828a8f3bd09d3820065e5858d2e3b430c9e9aef899740964d2184f189bdff525b75af9159cd588d7b3343028eee55578e60dedf29710dccdfd857b5e8f97b80540a343a63c35b572639602be76b2eb57bf9cafb95579819a3d0e23726d1f4c3dca4dcf497774577a653bba8d2f03eb0671095c6e2d344d41d586328ce0e71cc4ed610c863b028567ab520aa2bfc76a7fae433d3d8c120f53817d34463a6af4e1a2e5f82efb36d229af676e8df4f9936ce91e9b38b81dedb2e643afadf4d1237c292c4f985113fc0eb67f81601ad19c5e69bd54ed52cec748b85e710ea0a760dd1e89d63a431e36886a1aff4ba5d45674e91476e25723bc5641a484c6771f8422a8f066d40f84427ce0a234c91b5560eb6bd11c61ff43b5e24e4ce0caf29cb904102e90c301b1ef20df0058cf0ce11b8e19697ae13eff25370e29bdab41d4b61db95612931c0ae36a178a27ef09d84b2e238c006e31f1449f55eae1af486aa3cd90547f676014186a3093a6875583be4daaf2be48a74b17efc1cdc6d9ee74" + }, + { /* i=8008 cDividendBits=1465 cDivisorBits=833 */ + "0195d36d3c1942a5077be69a043df16c68682694bc56c7fea82d6a218f614aa32cad2346afc15f12bf1a968b1a1c4965908dccc37cdb1e53fd234f7a0f09ed7b7c2c4b34e2f62e6f49ce08951fdf667fdbf74a54fa4be4ebf922caf2ab677fb51ebfce2c59be4be2abf8905781b817bcbd777c844fdbf29d2b5a5c1f72c0b3d3ea60845ee9993e294e146e6f2f56e7ab2e31468a6ede2f3dd792826e7033ffda49e3e0d1893479c0ed7b633c7b4aa46f917ba4bec1b07ae1", + "52ab896ac2e934bde45a18e9fabce4eca30570039324a4445eae4a4763def7f74f13fcdf9db2a05197214a0f62ac164d6d7aeea0a47ed4d62c6bb15cfe337943a0419d3855102b7a4f26182309610baddbfd0170d1b2f499fba7e3d62d767153ef72c2c6cd152cda", + "04e8b30fc399a353f45226f28998c1f206af7029abb01e0379dd459cf2f32341bdbe92493c06628dc527c5772bd4972f1e4e124bbc1cda7b30bb2e4da23442b3a71ea3a5ad3e83e76e0568780c89bc72", + "12f5e014478f2c5511b4901a6c755d5dbea6d456162ded2d8fd0e7e1fbffa58a7d26450f442a05fd5d67924ea3102d295d71fc234127d9a82db6b6ba6c7de0f8c795334ca482d91c226f40595a84e4555b0fb1c154fb0c6673d95ff18265d1c4d2ee94fca8a869cd" + }, + { /* i=8009 cDividendBits=3090 cDivisorBits=714 */ + "03dccc65836f1340a70a439a97ccc91da1c394655a1003229c1ffbdfd2769459c0a73a1ba6ce9fb71cedde5e75fcdef33e4cb6ca87c9b452951d73b9a833db8124d67aaee25e114eb5ac12b98176ec8aaa99a8e2fddb44a88de34c937b6affb234936a17e1fcb974bfc43a2793e52644a78ad192efe6b7f29af6572df00000747afac2aff88760b00ef3281cfe70bf0fb33505fb24702c52fd823efe95866cd5497788cc40faeb48a1a124103989433faccda3e10d37e21bc2055ca4cf3c6fbca0006a43daecfe2e04579a66ccf07c19fd57616827be21ce193a4883e3b32c80cf2e055ab84083859363890b049e84cf88b35a510c8925f3d858d63897a638e46495ff301d8199b407bedd173af6388fdf504e39a8a0ce138d0ecf3a72d7146f87f6ca05aeb3652c17834ae52f10bdeae14ede672396c743cb892df0f700024a67f3fac05a1c382fc7ce1219a1f64d3a7e4140aa3426a784c9e935fe6f4caee702b06135c74a040e8765aa6b851ed5007d929843ca1a3050f2dd79e52607ae0adf4e87", + "037b2a3f2f6e5cf89452cfa36f02605868761cf938ac0103b629cba70c58bb4f4060c0e0752a9f7e58e66889fd0b69499a77fcdb70b10e727b42631de253cb956e6a6f4bdbb4f321ed847282f18b438feefd94afa6ec76e85dea", + "011c0bee07218677ffd1aa920d42caa679e366c31438a4d7128e60664e10c0c16f56882e9277c665e9ea7c1ee5fc84e3d562d927359f8bfd585654b69da5a7bb3c0d2c7cc9eaf46cdc3f0528f1f08104d369dd98e0d474bf55303bc6ee63a5a3b3ed25f084db902b5f49ddd1d8cb2d8b2caa6c3f8af9ffbf1319bfa84d92484579768bdf060c93006ff3a6f7b3fb62f799248cae0135ae0e5f1bdcc83a60aa530f68ecb26b32becf92eedc274f1c7f2dc277b80b1b42ccbbf7add9970b352b037cf48d4609c290b0b796bd103357613aee3fc04b6090e64c95aa873a0f333ff5ba184b4caa2c1e79adbd6c2eb2d8449d133e05e143dbb90e4aa0d42ac9b4259b6e5d53862265562fa524a25dd462d2995d4e7d9386b8687ba2a120510b9ed47f23098d2cca1f639ed6b2", + "02ae3fdfcab9597e3de8d3993be2b64ead8c31d81154be83aa70c9afca2ff33879b676d7824e17ad085ee659bcde35252b52470227029cd00e7c3f474fb06ae4f24c90e7104e0dcc13e989ff696c98de818d6f1708cbaa6065d3" + }, + { /* i=8010 cDividendBits=2211 cDivisorBits=1540 */ + "04754518b0b64693e77975d03b65e452574efd8866f0f5b7b17d781fe86c25d856f064490b7172b6c7d9ca3c54029948373254851ac0c7187e420b6c01ffad886aac5a78559b5736cf77e6f845b0578a8d3e654ef5e08a28ea336d61e8e6671f302d23a820e64ece3910297c48731d1f66b1661eb59005ae143b09ffc481a20973f5bb125e5d106d1d7a31a35cef7d10c810c5603d6824bac37fe41fc53e6faa4197e4ac972519efd99a30615336a364e8b41e3dbe9be4ceb3ab2060c7852759cacf4cbed23b5d8d36150304c09af6d4f4296b4f2acf9333430a7ae8e0666ab9bcd0a519fb6cfc671d355cb8156f6caa24c57b2ca4f70060534f6cfbc81909406f12aa78bf58eb5c65304b5653b302bbd2fd087a33", + "0475b10a2a1997570c6f29b91054b2b5c60888791625f8272fce21a7e40c47bb35dee03cf08c3b3a7905e6edd52c22c30a9bf10026f0633a154928eb42c6c1d0acf35d429c45a0605cae63063e51e68c5788635157c09b80db4c7af6e470ee4463764db3e9d8cf8fc85ff30289fb82a8196642ed4968e2860d6bc3c0fc13d238cfdc557ea9ff6e317089f25daa42651a9fd5f2fe8d1d6e0a6b00501aa392d0fe11417fa4b9ac2df494300a1f0f63def7fb7eb783f1b85237c57708698724cfb019", + "ffe7cbc848f822c64b56a48e3be7fcf1d8b972f7cf88ec40b999d9d79a877d72500f0756ebf512daeaec11a2c1edd116ffea98633956c92efbf8af50232f0e87fac0ffcc4acdff988e9e2a183bbfb3acbc423c64", + "04684104cf676251f180a65a2a76923e3d5da1cd0bb076be4d08d18d6ef4cd4fb7ec06835801a167afd4a47aca63db373776464d207ee41d4f3e2f2d6cce0a87616f90026c38715685fe2679f633c97bb6e15d7c33f5807af456ddeaae748967e91078f752737c26b76c11b38090e7e6f7d31bb84edd290f71b69c40a5bfd11bc0bf7ca592c9652da5eeea2d339013435151167503d1a074fe65e45c1ac3c625dcd6ada4c6275a6e0d3665669986c7504d3ff587b4b63d1134adcb07be2c2fd46f" + }, + { /* i=8011 cDividendBits=3639 cDivisorBits=2993 */ + "64a66eac69facddb37e6dc525229576f8175e2c8f62e061d40dc53bb9992527fe838792b047ce4800df3a66bcc459a2b2639937349a300859afaa488688a4de74a36f1c6e0a2d7b6d381cc551140bd53afba5b1cf48ec91638d58ce86fd986b3725f41847a0da13dc5993dadfa40efd697fe935083dbf214d76167a02acac212874c126114aaa352b35081f5641cd40d8f997e6cc1bbff9f6a56b1d5522c63763192ea795db611ab416283ab03b50ff14d1b6f27e4368042180d3ecd05390726588893e1e2b5842367d49bac6c175b0c30ba8891db0c0ee431e3d07fe81b81bd10f0b80fc3e800efaa51903103e02c0552efd83392610d5f604abc143dad1ab6947b1936d98401e990bdba5c9b3ff21241d025c3cd34b179f99402d2873ed985f65a27b996bc1b69ad8e9da84c6650e235bb9a78359aedf93c635f8a274902c8d0da6669be6152ca327372a9cde498a706ab02b06d5bfb15dd2260962413c7e71dad459080075d4f5bee606ee52877ebd30b6cec456053db611e6c0465412d77b9fd839fe22d26e1524f986d7650dd8ba5bfe572ecbeeebbdb548af024244c5f867eb7075a8b94d990941b46d303dd902ab52bdb5170217320c6c49e5193d8a246563c4041313a", + "0171bf036c0da39f722b4bd746250fb9ac96add146a63c5552b8ad129cbc4d3dc18a6eec288c09edcdf0a54fd2e5902af676d3699ec3d38ea87d98790dc3eecb27be59849467d58d7c72c25784f0963992597dbe063bedc4e7d69b04101a8b47bf1bdca83af38137cd8f288b116a9473bb09733c4987fdc780fa27afe6b549a8a0a6fd20f49a864ad9f86a79f22d2e17c1031a38d1db379cd4b4db28e268dd7d2703427a55b19c8b94ef6be6f6e01e3549b189c180cd1f9df40be12d9cab78165537861ea9bd297162648684fa5a69338edcf4cedda42016dcf1a95791f549bd8d1c6cc65d64def1eb0d256bef892b1267fd3cc083d4ee7bad360c98e467c8a4678cd2256718126bd3bb8cef6b09a1e8e13c73831257f04a98c55591550d33b44418daabe6e2108435b26d723d5ff4de328897759e15ca566ebe515801dbc385e5c7ed621a4dfaa1063563bf4f4bb779efdc154c99d3387f93829f5d693b01b38195fdf0bbd6508b82088162241ed3af9858542937b898", + "45afd34b21b0577e491eecdb8d02d0350e19501995db1a17221d4e141bcf283ed6c86e35099eec6aee93a86538d6f6ded350254c23e0b6c04f6722e67847c0acb3726ab7aac0554316b168e6e02d4992a0", + "011d1cd3ff93028ab37171be172565e7977fe628c283f1231e966c9cbbff8c78c7b4cde32774a315d6481e9cd688e8e9bcaedefdefc5adfc6f38615221044327dc7e896fb7c85c2d437580a98138edb8d4fde82f650477f8f6a7c7347a7a816329a37bb7bbe4449d4378e5e42dfd5429129909a4bd0260847a33b5522b328066c73af8222833a243d33591f17897dbab15e758a65656c5265ff0c68ee8000edd6f733829b0f6d8da52439d1e5b0723daa78dd8ad5e475563bc52ac8d878373113ecc3506edb99e3306d768312b51107fb9d4e65feea633a2ca2ec2be5c27cad47ec6266113e82d478f02d2cf51e481d28eaab2eb5c44f55d73bd3963db0b87b05a1a09bdbf6d64bf59019740995009b43579336c65b11cc36ceb8f20004021d7c36c0d98d42bbdd331b5b223c7d2580ce72572a930b0e5f4a7cd20442332134dc7d014082e013ee35695b5ae5936b5ce48feb1d2e3caa7d29df55b5ca154963769a033e2b6e164fc312d5cac03ea6dcf1680ca5acf223a" + }, + { /* i=8012 cDividendBits=3891 cDivisorBits=2015 */ + "01274f5056992671a91af1006b4dc301507a3387392456a8a7202cd726b42bd0333440b6263cdb3f01dcf373acd0bbc3e04ff5cde8f68deb06912519fcbf663c88a225b564f4b843c7601ab9cd2a91fc32d26c91a9a56a529517dce32e63820425824ae6dc6df236a34ffe03df8da1b2b148af1776f043da32aa44879b36591c8e03bf576ec0e44a5239388d0fb456c5355732447848b7167ecaa30eb860309f226376c4f09634fd0d2693846b99c03ca1b18bce8a0c57ad62e820b553688bd92d67351eabcd58aef3f422cf9b0d31e9c8d83dbefa875f400256ae8cdb4cfc53a6fd9046d68bcf3ada6dd2aa205b48552512f30e809b423602220eea9ec673aef22e77f5d5e795bf48dddfc99707139354944699b0d0e42b1cedc45eb3ddbd40688439e5d20e60dffdf1a468dda5ffac42f21e49006d3e6d72a7aba1d0adef6881a4e36b3e9a9221cf9bb2e1f29828d404cc9b7dc6a31109b90a9dc67c324bbe778a0499e89ea8770cdf3df6c95e03648fa0e38df10ac2c4657de326a4dac848ede878cc45f77bd2094ba53d7db037760325a592eda484d15c832aaaed09eb4f5259b43edc8f0b30a6592fbe0167b9d1d09840a2ed34a24dd5567c5e4bb4864c00d8a1374d346387fb6410558bc122f30088a091840ee5445c1227ef722ece593b4f7b116c1808", + "4175cc0c685702ab5d82d8f4664f3dcd8d11f50eaf5b217765ccbaaff729f382fa59e460d7ac2fff67a05f0c7ca0583fb512b6d5f249193a0702a2547ae70e69276107aa5b4154d58bf17acdbc67c63cc5c2eb2eeda4c5b622665db04655491a9c5de60f0df230d3090e002e7d3f0fab9ebce67b6ead5218e447aafcdd8c33210658b01071b11b3e391987c03be00f828d61db2432c391fcd0887c92cec861df01f3f723e8090e901b6e1ea7b39721b388961312f2fbb79fbefd36a31ce9aa7e37b582ad0b4a0b9aae0410d55e4319b80fac8fc81ef66deed68f2cc9a1ac0286d6e4b447e66d4ba282c90ebca588a7e0c82c3a59ba3520be4e0beadf", + "0482e4064ee70dd26a7a4febf825d19ed9c9a182d7df7833d0bf875bd0a3206115d1a0296a50645dd3bb0bd3d25e27e6faf69a68a19bd4addd7df06d46715bd2023353dbdf1f87d664e1c327928dadfe96647fe0a9cbe09ffbca6f1983b037347efed0b54f1d2a7f8c2a076b33bce679240409ba90bab645a262ea8a130ebf3bc8e0615e4069b6ce5b814738a2f84bb226ade68bcaf30a171b2b8ea37b76970e7bbd87134f78b6534e8614586ef17217fee1999f935a76b2a31237c16c8b62cee159781924fd3736ea3aad267edd73bbc0f08f2ac4fd684588db3bdf857df7cac8f772faa40946f73e7915", + "3f08e1050c2c35dacc3c4a8e09ce58eb6e0a5c6692f0a9151c95fc338818b486c415a12f641c1a49d34cad86679d4600d95a1bdb4b1992238b55d9fae8f05bedb407dc7cc7a12935e3be278db02641be6f3742fdfcd60e7644fdd25b07efa5404bb4412c334b71eef651f5b8d5413e6dab6198fd06262b537ca9a390bb42e0425d5637d2de60da7fc1b0078e0a8dad2e17d9fef308c0b03d8eba31dba3e97c0087b312e09c7760eafe007f248b746c04c8c1e5f3470a040d18fcfa0c7cdff034b5fb05eb59ca2abd2d13ad4160ce7ade2e4ba04081d29b275b5453b8532f062d18396a958947d15f72a3366cf1358c2797e598e36ba13680fd6c6cbd" + }, + { /* i=8013 cDividendBits=3160 cDivisorBits=1513 */ + "7332ff2a0ffd93b94af992e1c7bdb2af436dc1841c210b60c9156cfc98bccf57721e1dbd0697857c879e465cf85b5cf3d02bfe5acf2607767848fa2b72b24d99043b847f23e49db3ce8c7ebce8d343342ae86c245613e779da0fa7fe68ed92bbcbefb695b6e7882575ed63a32e200461344aa9a411fedd0a2cbb61987bf7d7183c3f7d1ead7e1064b2238bbee709f72f8fb91be9a5de367bb55fcafacfc6cb8d58906d759f0722f20d951a8a8991b04c860ba7385b91cb13aab51e1fbc9e4d8f2e19757a9d4c33f44a69d2495e4eac905d0fa1288390d06bdc81e8f73ad89946839306c88c8a2e0d3428a68028bfe705b1127274f00142f71c43577997ffbc4805fac9f4cca65bba0791d0c24e0739e3bc1702ba27a55201c83144f19e5ed116e86881a46348dc3c9e5319cd610301d142a27c06f79cbb0bd15c18dfe6bcadb84ede024c63614a99faea027e7e6accb122348bece88d36223edfeb2af4fff487c8837f6b5955df1a90e58d9758428c62c858d7f86557b925b8e4b68a06566818930b215b6a7b649833affe", + "01c77fd6de0f7aac9b2304eaf1d8bb1279788ca055ac6d2975292b3a227e2b06c74f5a20485147148ebfc14f9bd7dfc9d4d03ad0c45f08405646b1911dae2b7645043dbd5f2414fdcefea33a8afbcad089228a3c5adabde25d74607c9edb4f86a06c33324ed5480c6fba1fce8adbcd13c5bc62f7d615ad0d561118a17035e47ca5f49c3383cd53f5a3046e0f0920d03876bc3a17fc47332b39f114f7f0158850dd0f109c11c01c67d48e5ba4c8ab8f89c820dcd84b129fe7fb4d6b08cf4e", + "40be8bb3184f9873be4cf0e1c9420c1bd2c20aecbbdf2993bc493b699344d8d92e2105ae9355a98028a3b91157455013b98563cd3d35b297593efa7074d7bd13cb8fee039c3f75e3fa0486b83416b0a1de814980483ec6d668391a1f1d710a172baba64d810ba9ea73900ccb03b77afc8761b5d79724d211076c64cce49ca0a4b344388b1f5d2172b6afbefad838d0059db9da3938bc78d61802d54c890c695e1c9007bb206f2b61520f38356c5776b38e8bb3405dcd4b3b44de89d8765885854eb2c2031b7ffb554b0449da5e94", + "2ddb7bfd1eee8d69e6306e14da9b29e67ac729bbb44b809b0078198a26ce57ffacb141930861ff990d84868f234190ccc890b38ec7a52cd69c4ee56b5817c28b6dc7d9936cc1282e77ffaf65090209aa273fbda9d94203aac76330216208b894681d3e848cacc1ef4ab872aae4c1b71a9bd1dc0e30dcabde5fd1d790ca08b249e8e044a9f054fb7937c4f6d3a223512dc119c8617d003cde2a7ff502a060611dd770cf2c9fffd0b4ca0dcf9cfe6d29fc086275a0ff17cf057fb49132e6" + }, + { /* i=8014 cDividendBits=2071 cDivisorBits=465 */ + "2fc0f1f4f27ac094a82d61a4f3404c4189af27f31101113201251959e83a1313e297d9c12598caba4d6600136cbc850faf8e7e3a951bd68728e46449ee35f3b23133813aa51aee0cb11dbfc68320a145fae49df0ff8b7f7e7c21cbcc4ba410ef355c6ec4cf72a26d9db05039ddf7921b07d50c90d57d3bcfa8afc3e33bd2ccdc53d26f2f3681df9b49c3ceea0cd11d81acdbe4d36678e236e2f94100450542c14cfc35a0c09d150334884a663a8840ec9cbedf82c29854bb22527f151fef2299c789bf9223673bf2950a0508695df73b5debcb9feb5fd9681a6d9c7672b437b90cb422f62e8b5728ae0fd669980f66e154079259e399e96fb70fea64735a974511900c", + "88c96e4f2e92de0d7ff7dc3520d304712cf874c687230594285911b562b5e769c4c6cb18e8f85316c27d22826389c00fea78823e23b35ab4d1bc", + "595f4a98137f67794ac9a79b46bcb9d01346bea95161503f58044e1afb29ca73f6aba6ca99607f8a766dfbea1834cdbf2b5d2a519445771d82c0b51be8df09eceb375e878c3aa0743fcedcc1ae3c45baecbdcd632543a7ad9d458a5ae4788572dfdf0646943c483b9ae050b9b64c0c6ea48d56f9839f3a1364dd2344d8dc1065aa2049474d4a060e8682d766e6912c882602c5249218d3c112b610a7b8318276afbfa9fa20b03caada327a2df87eedd2cd7411d11fb4da6018132e9b01462247034ee9d2871e62bef9", + "3f127b7dc167f3c2e6fc4e251f245f92a00a23c4bc4fa9958210f99ac54c020bfba4cf1557199d3e46b2491fe2a1a9a1386592b6c7e185900830" + }, + { /* i=8015 cDividendBits=528 cDivisorBits=221 */ + "d4f8fd7bc9e205cd4a1d6605f96bc2388b04aa94e95e1c10fe67c9e640155f40cc58ea7f26419552906fc83e75e60712d28c1e6121f1e986c18e8199abe93bee80e3", + "1e545e1d69010cc904f0f30c907a74ea4255db5a7d6d6e29446841ac", + "07059e6bca84e21be302f000508d47bc89ef3e92e3b512e93d3b6ff1d5d1c94c74facb252b8e0a", + "1dff3ba65ff11fbaa93150235c13f1e43a85d58fa8dff5d78a882b" + }, + { /* i=8016 cDividendBits=4049 cDivisorBits=2986 */ + "018675cce528c383ea24ae141507d009a4bc554c99a017c45415de3b2ea7b4f23250b761710ff2bc2970d382197c1d36c613dc73ff2b51c70388aa151b6c6acfd1b2c975dc53031c8e9583b50422f9bbbb4ff2c60630768cbaa4175a5a38fd37b2772454349a8083936b66a9922d338800ef6f11688815bc2f6da4db24023354c8c23be5ded8fb9aec671051fd18bd512bd538e8d67ab711dc9dd8a83906e4d6b74d259c4b712119aebb379fda7a5e44adb023a5e4d6c8203dc1cf537e69bda7202b80d3f5a6685230a52973d4b1c3b7fd44c55da934eef913266eb5297de131b62661c8b0bec3c02bed6451c061c0c50f3bf92bb0e14cb5d9a0842831e26ed53953e046a35a437a179e25d3b2efcca34bb1015477c4a1851a12fe8249099eddc33cdbcac67f57ed490197287c9b2083b1431b936c95a94383eb3e1258a46402157ae0a0423a853087dd7f55c15e49ddbf6b4890576e6a5254148e1e42abb4771199f14043e1a7005693095a43857906263c473486fa00f0e0dc4d45eaeed7772d59a89de8b3bd8b4b751c818e0c9751b0ff0481a83ad6152659d7f1b03b6217b84191afd5229c0b90937a53f31495e28b72e2e51902b1e88fa53812fd3fe03b1965d45b96035f9d73677376cdf67b0496f10d3d7a30ef252bbebdeeea39af7d48f4952c04500532fc9c0ff1601a91b1acbb1526a99dc11f743154", + "02c8317ef03c900e35211ea3db7efccaea33d64b16133e6128e20d5aa3b6d5654f39625a328c3bbe5a8b2307dc8ab1be0a09fc516465bf484379020a90c96f52d3c700541d5c3832dd191f7fc51bb3356bc9d3228e83e88d49b9b5f3b8a04cfce6155f80e1c439a82d10463c050000b36421ded5b5b36fef40f72b2c823009aebbc8244a6dc45b70ec2d52a2a3799c4b9640e3d441722cf5355cdcffec339a60a4d2478dbfc0f136523e22b5ce8a143ffb90ad7d98c6c48f2c7d75bdeef3ac4f5dced5fcf6947087679a8eb79ce9cce1d019c33fcc87141289f41c9fd989df1c5143dd07496b5dea97ee5b0499353900c6d6247602bbdef81603ef6eb1154f0b08905bd5b0718b4bd2f1ff4967ac5402ef00738a91c8b3ff670e146e55ed0596ba6fb07e0046a51eb955a53fb9ffba339b6a96c5dfc9d804233d1553e90244e41c0b393fe73104932c787e688dda4a55b20a8a1a53018fac4a6d1346aced35f40d86a215a6f50537b0167b36a1288f23bebbe680e913", + "8c5a2060ae3f532bc856460048a6217fa9dbe658da64f405ea2dfa2e07ec39732c0e171257ac7cdbd2caea1b6a4801b3b000b69ef10e4d9eef2bd6330ee422f98bf5845a8f28cccedc44083b96fcb9cf572a21249e96b01daefdb5f36926a03765e39c723f7015993986e1d69a814904d1b369632dc94e2904fbf1358a30140424c72b9507", + "028c4cde6b079869c1fc59d0c754d7bc207bc9e16bd337c74633f209ac9c362f6373820c4c7648d497f84b0996ec8e2e466ebda797ae88a8e56016e7f54257b5b34bfa4cfef3abec427138ea727f35d94afbb25434062500973c5bbba9d52dea939a46b44ad77be98340b7041420f8603a396f5595858f66a98c7e7bf8949196a75ecfa874b8589180a0a60f975c7a14b0c60259e7a9d1e30a3ca625175dffc6fa2b4cb39b2f7f01a21ce10322753d60869ecd9d9d9b02e5b115ec31f433581cbd8524d93e3da6688e1db8442a646d951f8fbe755bb5f4da5fec4635210dd0273ca4a81bb8cdf6804d73d25cdf917f534f69b6c326efbaca74a7a1467941ed52486d8de9eefd4d28f28eaf03fdd042ebaf46026c49b9abd0f26803d60cdb6f9bfd16c20ba7c30c0ceef7802ec7791ff7d3c3f8913bcdcac1be598a4cbcda6aeb44de2d633a571d071e8bda71d14942bc21157b9acba6060fd6b0292c7c12fea517e1024d60e46dd2111b1ec3605a21ad09f3df14c2cf" + }, + { /* i=8017 cDividendBits=1378 cDivisorBits=350 */ + "0581a16df3d162865c60bcc7f760aaa0feee0a578251acf7e63a8176a92638d914415e6a881648201e15cf5fca861668d9bf98df2af60112583d3ad30f2c76626231f6b2b7955dab7b96458ad6ef6b1d51191b5c24f57d01a6653260f852f9576c42a34c6e107cc7f3076f4941601d3ce6d70090ea9c5cb2e4e560e9d33909ece227442ee8bdc835279014e6abacb190a2e62b6984894e60e78bd8aacb9346dc97239016a3f554071f6c0ef1", + "201161434fbd7656c5ff021642459d282618d73c57c7c8c7eddf874b2fc0399adebb8ab5257f6ea64fcff90d", + "2bf52b94d48245064e724a416fc5ee74d5d63a074253f4c85f04a12ae659b51ac81817877fb11a4fea9b36d7f8edc226bb9d9b5643fe046fa3a27bdbeca3b1aa9da2f2aebb0393dd6dd5995bf20b1d9883eb4c57f005624c834ceb7b7b08b009be7769f5488045041aa8a7099d1dc7609eeeda36318240ee9d7c38daf3399dbc", + "03eb96f51ae2ad8400e176bb02a1c70c52a9eb9e4536870d4134c084ca7cef789efab20361d8f72a2c0f3065" + }, + { /* i=8018 cDividendBits=302 cDivisorBits=294 */ + "1362ac0320b599bbbbc724e685093566408a6c663d99b85a37d241e30cfff732f5daf5eabf59", + "1445d5be7fc7a1855a68344a61c3fc564b540861cb2c7b4b00d61b210e39dab3eaf20880b2", + "f4", + "101c498eeb53c8a19bd30f9fda68e400be546907f352d6bb0630078b70d2bf79ec45d015b1" + }, + { /* i=8019 cDividendBits=2156 cDivisorBits=242 */ + "0ac37ce9a2fef329ae329ad603a5246d3b750f90329301f46cd19afc7955819d8a1b9ee1a82e4bed6e141b25ff20f1b6b9ccd2eba13dab89487b956545f6ecfe209486a60f4c1af07888b305d0513e47560d515cc078b2ac77b41f3c546893c760aa884b10ddd083f82768636c3e43bb79c07cbda2e0a7e8b8ac842a43b10c36119e4d3881742818e6d6fc005b687a00f16e8ef51b5c152e5ccb12cc88b1a6dba8a4cce852cd857c6698cc844672e15394b27a7916505d4f2156e2d4426be1b5bee38adda8df0f52dfe2f3e408d3693d1bc7c3f1ac1e645f90dc1b06cd6d71b1cfd544e775ac0b90692b9345c23d13575c4f3dd4c152188a22256f5b185e49f9eaa9f6ae56fbbfbd845e561dfb61", + "d85ab420b7ed0755d17b10d2e53d74b04304c92cea5614af653d038af525", + "0cbc6a5323eac7517be178851161675c65f3fdb598402f60e4fa9a8f39c505d16b2c359606f6e830ec205c448094b46fdc3edcfb2d26bdb7109d9495aec52a2ab1f6ddb06b6629769f569040b777fc0ef3be9ced97da7f8e7aad6ded80762f63e64e0b91dbcbf9351f41b26a6e2d4f10e3fb67f862d55596715ad2a7512f2c145ac64ae7ee5541dcc93200f05510cf9d615f7c234297cc96c1b81da1f38e832218dbe36762c046678236dfc1ec8823608fefd94b9c4f68f86c482894c843ad5526515db4aa83bb9b8ec4dfed67111bafee7a4723d0144d04e60ed63687b0ef486d73622c18b4bb091a8322f6d9a366da", + "4e8ef75ce47f37c5ab210dce09669777d0eaf12daf8a022b782b808d7bdf" + }, + { /* i=8020 cDividendBits=523 cDivisorBits=401 */ + "01a7c4820a394faf193a14bef559016453708d4f4fa77ed3bbba1a8e73d82a8f0556e21fd6eda40aecb4fbf34e3af223487e5506a5b7fa79612919a196eafc3c02ed", + "1a5a919fc6912837ddd9505fe5a206573a30c7730b8645f71cdf0cdcdd5952fcb2b7e20bf0e596f5b678a9df18cf78e61d25", + "101477c7e1b5338040e5ffe9a5faba9b", + "0486aa592886de9c1e22eb7f73f7796cdf3b73d67a317ce82de208d46dbe6089994136b4dec4c532aeeea16d104748997b86" + }, + { /* i=8021 cDividendBits=3273 cDivisorBits=887 */ + "fea65f2a1cf1be350be91ed00966129d58d22a7c320bc747b22cf7296442b14abbb5a4a2d2ca8ec22bdc81714885a9273b59d8e85f23efd1d93b08dbb9af578e31776159700e2c6650221ea732c8bdeeb1d52aaf10c42a78a4f24c82bde0a88957608649c43a6775f1e8b6d72a9d5334f566333a76e3ac7fa38421d540f65e7327ef572f90b0646e5c847c6e0dc6dc7466549d35b54eb31c152c7778547119f658882ed3a16a41e8f83f965a29124bc0fa618f025f00463ed6bbbedc077c3d8edd453118d13cedfbcd5e2998d9189a2599ff371fcaabcae18ad09848db97a44b7219a7800f68508f956c1d49cca2454df867bd6d3dec25659e3d1f1a796fdb956ce62b357f98af413b7146d7a5ee43858705e7cf4c95091516e0d7fd533da77a6ae669ca0d0fa5fac6f6165f43fdab6ac1cc83af783185ea704e7f8b8da6c2cb104648b09fd618a17bde8f423bb825b30697da274b3de37f52475b5ebd3f94815b296eea71a0d3acf527a027f690513921f7e72cf7a1659a09f9c1e8c21d1a8c5c3fb940c25a786da22f6323eec5c0cc7f48e12f4a81152c52", + "2ebe2f8d183b5ef47f2fc39aa4a8cda9b9d92ddba8b807fb2179be8ffc92474733143d72633e9a12eb0232f7352522de8eb2610006c27539812a4655d6dca51780c8e383edf9dc1f2d527a8a8252e685789bf4b50f8db4256b45fcb70bdfb9e54022722b3ef3c2694628064e273cf3", + "0572a86a61c8b79c9113a2307651a0ec1532bab42541e034a37b44ffef5652a9b8be1e01885fce40dea1b40af7e4c645d2db0aa7b239b4875ebc0306a9941f6a4d7d56311aa37d22c69842ee125d2c9c363da87fda9ca49aaa1636d4bb2f9dc77563910502597cd1c91a636fc53fc420913c86d65d0b6b880de148cf237d1a8ba2683aadf67b2e0f59f3dc7b3f3f10dfda16cc645987ada5283292ff919f598ce4c858fff1a8c639ab2327e80a729bf5f652fb7402fe216774bce38c939db66c4db58667656f08fa478977f1357bb617ef17ed00069f430c696ce8e27ead471fca987bdad8eef3d998fd78ea18480d17f05eeb9423e1649ecec630c20dbe2b0daf71315ef8cf9041f879beb4d60c0765fdab4896dc882eeb610f36eb2bfe7fe001ef68a0c64aff87aaeeab", + "1e195551f5ced6d9ebcff621ca26e95deda80133bb01ed8b2ce531c7134682e2fc5b39e9bd845fe26e5fc19a7e799e0753ef0c4c243a04aba11c4fefe45c10f3d1130800cefe7b1c3b8f404da4b6df99c6453a1bf01cb182af883cdcc55149168aad32ae800b09a1c20b2c33d78c01" + }, + { /* i=8022 cDividendBits=541 cDivisorBits=357 */ + "169262be1b974eba8d67859992668b051d379b3e51539142e46b654b2ef4cf469a3de48f9c8f82e8d9e745fe74186d35b00f1882a020f8f1d5c158f7b1f28c7a5a08b5e8", + "02eb06404801df5c013a82814a843b5719655c5cc544a28ccae23be98a6df34ce0b0639a92c396cc8f12bf6fa5", + "07bc3647d547d4acdad6c469f805935e21fe255796159f16", + "070b51a6629bd86fd3d1520d68911941a1f89b38ded7ca2ff2114b6860f38855a2bd4a65884f9c5800b4a2ba" + }, + { /* i=8023 cDividendBits=1415 cDivisorBits=472 */ + "40f0a448428324c8f0226af6c565f3e19911048f24952e6e09cdb23e4f08fc9004f0fbddbb7101639b5771c4c454199f15d4230150ed55f096e9e0a7bc4a7fda8c96d450e380ed61d4f6b8d3df8e8c1fe47f1b286727831ce012ffe60a2d6a30d4694ee5fd01db72c252591ee3a996118bc094d80ae906d8ed2da87a6aef81462a7c91806160ec0b12d6cad07525859492ae3e1fb7bac6af2a879f4e2d15564f993bc2b1bb58ae68ee4f4ef22a99683a86", + "aec8255d84009315210a9590ca44c9b79422f76a93d21c0e033942dff2ccf1bd444307a6bdc28b03a4982343c583f70a2b19092bc35ae3f42bb90a", + "5f1dd577ce3d24bbea2b3185beea964ac5d1c042b407b0eda42cc834720f75b378093782a7f0d84bab2a063ddadbefabe72b24bda8bf8e56230c7fd7195b9c3a6fad1698fbacfae3f07d6894494f1622cb3bab364a86c9b91ee7b5a9c9e62cfb64e59d2917c18130802c8ea98bb32da3e8af4275ce01", + "1e7b43103311aae4433cf4c904a8343687cef8316a7a00ab633ff75c8219d2cc076318c606d71135efc0e6c9cf6df3c045e27f8453bd4550c4757c" + }, + { /* i=8024 cDividendBits=414 cDivisorBits=201 */ + "1e68ec16893bf30f6c88b42f7f4578ff4039616fd3384b1db8d11c322fb06300c83926abe0c8a0bdbcab46fc18daad77e9dc090d", + "0191a1fdaa64c5308a6e7a1a079beaebf9e95bfca116229e50ab", + "1362186143cc20d103294a1730babec0962f3f887762178ab2e763", + "1e41a3c0d019354a1308bcd97fae0d8779922849be66f289ec" + }, + { /* i=8025 cDividendBits=2063 cDivisorBits=1947 */ + "0f78f70d2a056a13f6e9d6608f0d053f9f5172b20bf775408c8235ec23553badf0a4f1d8291f90644ac8ef538e4745f6ee21ee077c56c33e0f6767a82a1e87cbe245fb4d9983c765febb83820b1cbd7a24aedf1a1688c994154fe38cbb0ee73b79077894e041113e9ea01a6921f8c5af721c350b876f6153e4f79e813bc5484fe96cbfdb23d1093ccbcc2c0bca01a9f6aab13a484a8c6a208cb68d46839ac61520c31fb09f012498b53718d0c1070c7e101b8e6ef1f87d65b6ded8a7d8e95d948179563b892ecc7d02564bd7230719106ea664ff30e8de781340ecf9a89bb8680587c698127c219cbe1072fbbe19d0e4204c66a8b9f43bc65b3bb15de3f973b58717", + "021562ece88a03f7aaeae564a437d9a47bf67ca5465e55d62ae8ed143f22d7ce8ff01581abeaeeff7e8a7a98f61d79e0e710c18fadd4a0b1eacfa6ee3be720a3440f2f8bfec066296f7dc2bfa323e15012e48db635b0a0f18d80ef95aae287715373c2970225e6a77ff3d520a546921b4acf00edf3b3a8120269f1f6f41efd0a64c0d4b74fcb244e4f1da500e1fcbb964e00861c76ddb8433dddd07a6810e68284950d12141bcdef6813d0a82edde7d7bc9557ece9355282d481e847a92636515e29012586fe061da18a09883b57793291b8e5bf7045d27bf55872f77669c9d1a4d6096f5899da4ca8deaf6b002f6bfbe96a2d6e", + "076d12ef7c6a1dce451f7c26b6c0dd", + "47aa65c688013825afcba4b2943e1b00d56dba8f48bfa83d8c11390566f0a2a2032bbe865d076708b78618e63d1f5fc24818d9f1367b34c2c9ed91573a6b0996414bb930c748dee18aa56a57c017cdde948fc52badb76f8b5d6cb47d149382bcd5cef43f8ab6dbb984ae29f1bacaf4b37a6a12c46745c3b8e1087235306626f663a17ea5feb3b87af6eda18bb4102a58c0226749c8104d8d4d60817ba83e265f6b9955dc4f404e7c8ea586215f6a8d0604f48ca2bece9f69b09a0e5895ebb00b38848953e5400ebd0476031c8fe013286d16931a105127bd07dfa9d8c785fe53292433cb9ec67b16fba50f201eb4eeb0c5cf21" + }, + { /* i=8026 cDividendBits=1587 cDivisorBits=373 */ + "01d333062c149b435e201292a892e637431840cdc5cd83e3ed66f4b975a9581a2dd2f41fec5546560e9036984ef46d71f74e46a30a7f3ab5c0020091f894771dbd34d70d985e6779d8a5a3f00f6afaced8e06b8ae07f2f3909e45cdf6b21be2ade9007dc059062fa50f16bd777b9f71ef02b0ba0189c7bedf32bd32a0ac3c9a1c40e46421d9e6c0868dfb96c2336e3bb9fd18ac3580a30f4790c41f641f852347add479af1e71172cb3d198dddb4af5f030443d1472ccb3aba2d0f8516568810671ca3435e7a10", + "04d8be510558b181b89e371283ac8497835b5c82a74c830c40153537f5c3669102a4d7d6b60bf819446e31c3b9bfb9", + "606571367ded8d0ee63e69f370818fbab8547d023fb2f3b5ad604358f4d4bd30eee9d1cb358699589839dce49ee585809f8140e95b8b30f84d9cfc64cbddb9255b0ea593571bcd6d605af67c998dab4d4989b852c38f3c6ee5656f2546957b80d6cec2dd86dec6662009773d413176efa35308c1a799cc5c0c19d78729a9fc8ebfa6851b8ea8164a235617a100bfe415c69300c9e49e636a", + "34000e908689f45aa448593cd7e494cc0842b0df70e36582f342b1bb31a9226d60fcbabfd475f45979b14b228c76" + }, + { /* i=8027 cDividendBits=1941 cDivisorBits=1231 */ + "0607ba9d38e2132c0a3bc951507c927a2df8fbbe8d2981c50570deba542c561b1a5c42b3daa4e1e1e23b0d44671fb2ed7c7702b272841690970ddc5030e2a766aa55468b15d22b32de75d1f70b5d1421b883cafdc4aaa1b8598cb1920eb6f1a485f572e9a2e366afddacf8666a5baaaa122c9caaff2581e3d5ff05196c5b906d1669abcf931a60575d4862a0dd0eae750438a1fc048d15cfa4ea0b745e986df6ae407678256cb2b2d72074146f233a251b290a5a3f806c9a97850828d07327709fc6c851ce7b0563b3ccd7cc0a59574e8e5325a3c0d0c4b5863221eeaf62e2ff09075b34cc49f8b6bae775febcc998b91cfc57", + "285d196ab9380f38e1fed887508ab9bc7a59e33894385f30896727ff2cbdc25388482f92a134df6696bdad08f0b7430113cd5b4c50d68ab64e812417b9d017bf482b939a3346862e8c8f92ac56b417da6bb9ad6896bcb6683f7c76466c460cd910fc065b1f12ea301b69c2834e5379d70754e27c2d943b89dfeb25f2633c3ad61d16be4925be69498813de1cfbe9b448f9be6969834f1adb2d9a", + "263ed980cdcc0911b4fdbef491704445cc42cfe0252f2dc042ae35a8321c14c766d543c7aa4f36d839005700bf561c49090c34120a0c37bc7e7a7b77669b30b8dc07ec649063c22029d90a8609e18b70242c692f968facb4d9", + "0306928ba18132b809ec64d456108abeb78d205dfb0defd91693691bf804d6babb0f6d350e705a825a2832ea26d04469c063039a3d64e7269172d37170134e7ce1c6c91b03540321311993f7ac78198446341c2ca1cad71955921119e5039d6e932acb6b15035b6770bd96f49410edfabb9ce74e5db373a7f4bc7d1f0527a40914181f92b0e3662b7af2c21e5e6e0e12a006e4dc64b12fcb0ccd" + }, + { /* i=8028 cDividendBits=968 cDivisorBits=709 */ + "a94f624689e8487a7c3b2d99cfb24056edf964dae2e979d363e76d98a823c447e1fd5de4b3a67869f420fb8b8524c8fab755bb8160a3effe38e9cfa857689a2e3f9a06fae50903d1f3748e943d02cba44ddd0250e2542eb899cea46f8e2e05a7835bda38b4aea081ec5c0cacdc9deb8e6c67249ffcb28cdff8", + "05788356b603bfbc14917c5ccab01a7a2b26a65e59ac5e1ab6698c244539dd6356a77bab7e199a1d1bff8ef1d6aa5cad17305b3a563f0ba1f0f5e7e9ac0de5255871558904ed1799495a146960ae2710a44031b95d2d67028a", + "1ef2be75ac60343989cda646a1dc07443166ec44c337b5bd57b4fbb09f47d8b8fd", + "532e1fad66f77bdfa1a83437137c83bb748ef12661d0ac9d7eb0c7d394a69eb5e014cca416a6fa7e9395f8aa266607376a1fc666bef8f857255b659b4554889b42aa083d8a2384d73ca37fa697e838d3708821f05f7c2d96" + }, + { /* i=8029 cDividendBits=2608 cDivisorBits=150 */ + "9d1cbc5efa97d26c2a909b2a345b4b2cbf80ad145c1bc2cc225180f040b086e747a308d031bf470067fcb8af815a420de25c6bbe1fded6b62ba239dd1e96f3fab5f026a92c6f7056c6a0f1809b1fd4dabb6ce5319b60c266bc7828ad900ea8b64cbb7b8c46ef3ed295be7b7297705e4369cd1c71ae2d6550483ea2af44b4b65864adbbd600b545c9b88826aeb51c2e90b7277639ab9320d34bdfd84c8dc487b65435fb7d6c9b0bd7399f1c656a78ee84186863fb65769c1037f9dc02c6460c63921299759bb53ebf28ab6ec71e26c590beaee6fee0000c84bc37fab683deb8920857105b37fe78b5854c14fc88314c763d58bde0d289bbfed9dea06f0c83f2af5d5dcfdf1fa65f95ef6b64f078241a70489170ed22c78507c64589b83baa82fc9fed956b56b643def34e475f7c0113d93410d518aa0e864bde8838bcfd592da1c9cd3d893648", + "2d7e4888e6503eee7d0fcd8ff6a5596279bf51", + "03741a3e50728e3892641544cc52c4165b0d0a1424ce006387b9ad1d1caf62aa4a2826e5babca291465bd60eef61d083e504781e892674ab8e38911f49d5b950be790c0f7801232365be7a6b3e0dad8a62675721885c0d4940191bc747bad2c333b93149f33f191718416f5d9986193baa8a041901803a2d70d202923bac72dec5be4345c9de13bb89165226b7280ef599f35748a4c24ee39e42ec4f2c1aef42a19c862efc26775050f6ce73d596dcff790ccbba5db41c86e3c37b2c1254c8e9b04d1fd81a0d8ca66722306b1f1ebbafdbe5aaafa1ea5fb63e7e03f217d335a149230157f4dc1157337276c1b8e2f27ddd7870eaa61ac40544a262bc9b8459c05cd4495d69f7f07bd71faafcacf1bb2cddb53d9976533ef37bb3a92debe25569db0af0ec6d7db1e7a791b86e842644c26db1ae92", + "0f00cb4d40ef6b7cabd6e8ebbf4fdf90100c16" + }, + { /* i=8030 cDividendBits=2704 cDivisorBits=175 */ + "bcd835a36d44420d865a2b38553c80100aaaa1b874653622f81674b04de297294089db735107686ada4d74d32ba2b3e69bfd50cb1b9c6f17b80914f7ad12c7a20c031bc2458c4b9cbbb567a31ea9c56f8b66852dd13cddca0c2a70f4bf823c9f641c97fed06696d86adebf21b8fda7cb79b20ab419d03be44e56df7b2b4fe5060854d03746ddbf97e67e25c03b94f8e1361ec4750b26e95f6e0a63a76ea87108bf98e8aafc80d8eb362c224d233fc3ed21d17deb4529ceea0fa3855335fcc9f98ee57fe5f2df6de17596e7a06a8d15a8b5247d66066785fe2f3daeaa4315593becc19fef9fcde80854d51da51782b1daccc23146c498aca56f06456bf331d203e80c79c5e6a5279162abfce3c06ee3d26b279f6c9df7c395990f43d59b22699f9badc8a4c231afa70defca724f4092d5273603b40dc94587fc96415b6110b0a0ad789614dc00b22f5f2494180e390e79470b", + "1b3215bebccb05604a1451482e65da0e8890ae7e4e74", + "06f1a532facc1b850344e1cb55ce3c474f85304ab5b658dee9f3df292b00f81da3a463bf547d3b551595bfb7dd5456e9147d349a68eaacb1dd306ef3deaf4872ac1eebad5d7deae53b335cbacf27b1b5ded05e66a08786bc191992b885dac212a8e4245d1384cf927731c53304a835a664057cf02d0e340a45c35df206d235864aa82b0cf16077d71a0a8f1c97b95bc877782f59be5972832b2dfd386638f4d69fa01fab7efb93b6a4e355abdbbd5bb66d9e0b38e946685b35ac07ac21d8997ac6e3aeb8a2634af8b2732673cb5d892aa80e8db2ba92cfbfacd7342ff6e977800c86d32328e4f361164b795622dfa9b725331ff775b446aeebf291828a5cfe2b00f1357e45a2f63afd201bfb4d5e90520579ad93bb727dc9fb31cc95ee52628c1795e05c259aa2da266ec4cdf316fe69a53020134866e1833f48f16b36", + "0c7c832ebb26c4352800465ca3a2817c5140f9d63e93" + }, + { /* i=8031 cDividendBits=3887 cDivisorBits=985 */ + "57132927635325a0328ac63b87e4fbcdb69b07250cdc633276cf1de3f80e79033db84539e0ad3e32b4ef86637d78c66e45d8e4914f0c31fd622684025dc4b71941a7a4ae6977aacb54330dae4a2689eab754b067b2720f4507c823fd9549c9828e2d9e9ae0e6a26e255d8deaabd3068feb048581cce507701fbe054c8c12e140503812d2ae8858aa7ffbb8de5e72c020eaaeefdf68ace09247a82153d440d10d0cc0983c8bcfb8494235c0b4bfb49ecc6d386cc3ab0209cf9e508d28fad70ec63a47c68bc7e21e473be922382e9385e0056f24cb642643c9771f1643149659a22b9ba98d263d5dc45fea22e22b6851f085921c3f31b805e1f00530704acdcf91999be102750bd471b1339fc3570ba0bfa51328e3817748decf17bdca69afb646022e469c7de8e4ce785afb3bf76a587092f9be6ad5902dff596fa9fd559b60913132023ed1e0eb94b37d65a8b7523ab3aab377b5c1d59531c1070d564b324c742aee449691629c5539124b8077ab91c3a1eefa54fc65d235e374a56b89960b7069777dafd29c57cf96f4f843e56b48f6902727d578b00c0a9ba2bace72b2fa4c2953d3bde704a7532d24dc6aad33eba08aabf02e021988c9178b9b3bc533e33f22793ff9543d582762ddd28f08579a48895f373b0eeddcd4743a52ccfc72977141ddb2319e4c", + "017cdcf472feaddffa682d7aaa6a04b56565e2f422d3f87a27d5d7de07dc70b5eb3c250a71ee33c24d13fa648c8189e7595bf2e0dd8e5c59f958b6cbc74c5386c9682f47c35d527817f696067be0b3fcddfa8f8c9aa9dfafffbe223b9bca74d4697a95472bd16e2d70eb6ec9349ee3373036a9ee43c33655e1685951", + "3a872bdc015ee83b0986147e947e0c3d3f4793b64897674e1a1188d084e734e0674f3425072bf41382fd299ad78b7d5a94e7a01ea9ff33bf78c9ec47b4f9a6f583008a72e117fd164f333a57bcfc9b311578face5b62f2bd399e8ce7f011fbd7ed068d8b39a37bfacaa113b2674be28647fd081777029ef624fd02d81a0e34e62e573198c316258b06da255f4543549a7b2a2117dae0a31e70ba0eeae1af26ec01332881b4049b0cf708eefc4900a6aae1b16d3c66319bdd936605774f83b4f83496782c8edfe81d791dc42198ca48d9f22a0a96f360a40449116db262938a8c2ad6613fd023c3d9a687a8495e2e555b3c9d9b483f276d5e410d422abe005f9df5596eb90d19726d33f549122c26f163f9c13aa3b33fd94312c8d30d63954376887d614a0d88a2568b658da092139a001c62ac11ff22e1c50fc6df5c7282f502a8476bba1f05150847ec146625b7882b4befadbcd31d98f51016210cd664e1cc47547b06721a1a447bd225", + "010c2309a09ef642f8c5300db985435b3e1ed15c2ed4c160515c744a4256a170019b65e443ba7c12b8da4f9b5b6e959ab57c3253623bb0ad1183ef170d55a870ee62bbe5799725cdc05bc8ffd32bce4d60778bac70536c539cb37d60e050c1e8dbcd6007d1a7b9b5a74ecc9eef475a7bcd3f021a94c7a37616ed4397" + }, + { /* i=8032 cDividendBits=2200 cDivisorBits=1444 */ + "12f4ee8bd587e75e169da37ff20d00eb27dac3352b486c95773f3f4d45d29c3c4e6c8a7fabeba8d1e60368757f90fa8ddbf24276ab8a739a787f3f95d5ab9cacb5a2c7cc1800b15018043f6c5c4a3466f0f46d948b3016be8f89e622f5a0752cb0d1fbb29cc1c2d8ed8428bf45ae76a8c2dc4835d5ba0cfd9daf1f269a1f951043e8faa911155bacb0c8cb2e0415faeec3b41f08ebb57f4146aec23506bab87d28ba93ff3e71386a3cbb4f061eff8a43dc85e55b79fc1c65b1601b2e83cae1848f91afc007794ce2f4b1e0eed7730193e9df5a0df1abcfecd1d2026ecabfddf45ca5ee699c452827426b6753b01b07be9e5d3df9a3747901c3e544fa063e6ed2fe60c0eebf57132f811bf87f5ef914000e6690", + "05988cc98b770396c803ecf6132f5cd66597ea329e7e9ff79678fef7f7e12c78dfd246c654c9099a68a5368a56cd476c8608c46a034e071c03cabbf0b4d3351be83b164d8dcbd73c750b14838500c209a09813a4363796b7d8878f14a3a9717df753ad482d198d229800aec02daf6fe4e17dd3c41b8cb4e34c49142180a6cf2f08bc8c16dbaec19853d07eb84a77036fc9d3970f6db4a33cd754d86a1d5ee142b4c38ecf348a9a657302a21575fefa78628d7fed5b", + "03633aecd85d386089bda99899326883603106637d092a6a9a7b6acb0224e3231292e6979c93ee4b2f9752ea86366006d1471e7e7a4ed9d93c6372b43ce2fae4866e8a8b701a8cdf5a6ffcc95d9e68f2a0f14a9d279988dccaffdd0e4ec443", + "03018314b64e3ce308ab5950533640783c66f386dc1d1bffc297991e63fe94de983c631e6c9f394c668e6b1cb1928ebd6d1c4769c7240f92e6782a73ebc5fa02723f5bc30d4de0254c90313586b4c88b8a3da621590089277986fccdc3ba0ac4a7a2aa1961b2d50606383ff6943ae986b027d70e6b42f23cc025c69315014fa2da3e8b4e22d6aa713b3ddb22d0512072db76428b99e04418cb633ab093c98e31530b23d3fd8cd86b2d849199aedb365a6eba1f9bbf" + }, + { /* i=8033 cDividendBits=308 cDivisorBits=262 */ + "07b9b727a9689f04a7b4ec05adc2ee692733112a664b2b8ee25daefe27eb99d4fd33fe8c388eba", + "098576df5f9135e6f9727474e6bbbc3f51e01aa863ec576a35f2de7efa47557511", + "cfb6c0417345", + "076f035d2066e55e32d4d4f7d6a33d0a39c66663fe052ddf9ea8845ee875485e25" + }, + { /* i=8034 cDividendBits=496 cDivisorBits=110 */ + "4b900cf0f101582a75a13165244764c86dd88230d30a3db6639473c7eed6f846c94be8c3458d062f1a31cc2407867b3e3cce478f903d95367c8369f66159", + "07af1c1a681ccbf05b8510b96f68", + "09d57021f7f12b377a3695d5ad89f21d59f602abb8a7520c12f92a8fd9b2aafcf22fa8e1ea606305b405297dd61d05a4e5", + "7a5d8ca15eea042196b3af1951" + }, + { /* i=8035 cDividendBits=2687 cDivisorBits=300 */ + "011f57ff8377b8b299e1ea1071597b864723ba0986603645cc19e26bb4acd3fbef62b9e24d358c56e9cf6137f38cce0dca0dc23f268121f18fa8658a85faf202a1106d01dd9d7c8de717aff053c9434596d3d490a3659ab2b71380bccc119d4994a7f8aac55acf70cf4c39f4b283631cfc6665dcc7ec27b115dfad1f3b2c4f162c5410403061a9195c68307288393655c92dbe4fb16fd2aa66c6afbb4776274a5b1c8173bd4cfc7e2f7feaff7fb49dbfaa0725615501244100e4fdbe63b05c1a8b12123298a0bb41d17d9e3cf6df57be789b94e6c80e21c45eda820c695dd492eb6f7cbb649000f45fa0f6194a50a27e216621a8385204ec7f5fa6bbf3f1eb15ce626d165814f372f005bbeb7497fceb0c4a94ea0cd871eaca44048a6dc8ed22dfb5253b396e97de3ebb8375eb2ecb01995ed301cf8c1059036ecfc91fcefeb062402c8f2a12661116418cf1e82daa8b", + "0e372310590d6ab82cc246b370e417f1992b742bcd4aa209841f69b6800c787ee3fa5fec083e", + "1436ad647af9bf56b6d75f54caed59880381c9b223ec0b5ecdfdf715644992b4c0907447f1528ab470a33ecf723c172264d651e3e3263aea0bc9b9d49f63ab0ad6df3b83dba0c457693312012a844b5715029e6da8cc20e72088bbbb9dc7406f23d8ad8545bae96f9eb0d7c0d79ee47ffbafb9b7b61c289aab72aff36b04828113e8d5bd932cc93de2746798f0a72a1cccebdc682189dea36906d08e2dff94636eec1f268d135263ee316aaeb771c5c32490f493a9977d6dd9310e27e47fc3083ffb8b24b898f2ef5122ef9570055f4c1b4162e3b3f089c378d063ce0b29f3e00537547320d9db45b73f6addf49440dd7e5b02e640c71483fe84b5760a64389b7cc5c8abcd27cf4afe08c63f9d702cd21c6af4135d09cbd1eab9e8a7871afa0d92fd597e0b127413b4b4", + "0a0eafc16b098e1f8402ec1a86e2e5993a94dd5bba3ac67daf54cec797d14639e4d7cbd246f3" + }, + { /* i=8036 cDividendBits=1598 cDivisorBits=267 */ + "1a20aba416987364f14da779ce4352655684a80b9fa6e34d8e2072c8c22fe3c6ab9a3724141c62059e5050ddc26ae97865a6a3b6d37669459f8409de71084a4ed8eb5d50eaf5bfeb88707dadb2d3f1be45cb9caec2701af89af6fb4316adc95beb966c7c3ed78aa182ae67d3ef64a6c006fd83d117bfbbbe7a9583d253d0265e2afbcdd1b7be09ecbe417e824418e3d0d36a051e23e3d62fef4d3e3b19c10fd975b2c09f1b2a0d28179108735147a10b9883eec9432d61e037e1a7bdbd531eda9970218fe019a4c3", + "070bbb56c1750120a1e2083f5e0b9d0a5343aaa00898378926e93a050598dea6b89d", + "03b54f384c74950b8819c0b3a0e63613d3b7b470ec1897cff891cb897c665dcb503a97539bda9cf85fbaa7fe53a99a4e14658bdd7104908c3f66b7b3ecd5738cd349326c72bb8fca54d8f45215a5e18b2e51b9e75a4b874cac1fb711387b7690800a598aff54c9f1f934a01a02321ed69810a0be20a1378f05b3e6582ca03441fb495123f37ae5f01d5245d0aa632829066ee203326fa30b456bc12a486a51bbd66d44ae967f65", + "047135830a297d1e02e6bf814efb20d09379d59956486952c100e5a46bec70beebd2" + }, + { /* i=8037 cDividendBits=1667 cDivisorBits=105 */ + "8b1f01cbe9bba4d17ec13cbeaf5224800251d75f16b1bc2b4762598fb72cbde1e7c57b4a935be2984030fad87f3898f1a74b5917a7804a914be72f6ad04835dd4042e36b619460b3deebc53067f6a01744af767a41f66065641172d9640b892288b7dec4afebefbbc2af47917292b9dfa472d5f70867be01094c192704189d4cf4cb17ae6bd1280e04f7f9a0ff314f1d51651f7f9ffd6b8e4c4cbb0fd9d5b5da774e53189c1a8908c05309ebfae5a00e2cae03279b326578378abb91dfe2f1fddef6e4644e14ce173d97647a1bd0b74b", + "0137e274f1b750a167f6ce02ee27", + "723161fc0f45810cba5076a0a1758d6716054a158f8f91b21959f2da578fce1f910e456a2cd5c4d8e28c76f38b36c141183ab3d82841a3eff84b79f844bb420012ff00b4b3d0687920eed4e70f4511f106398d19808c9fbf7b61850231acb0306ce06f2f2977641bb4ea0671ecf80109df5b1ccbb1ce0349d5f1381db32d1eda8ccc575757fd932fdf53cd0ce4ba082efde3e1701c5e9d50a68a16f18239a1f871de06db18bed20ec6e6815038b72f261c90d7478bc22da9e63c41b8988ef7400d744c", + "0102d4c24abb5b72168ac70d57b7" + }, + { /* i=8038 cDividendBits=3552 cDivisorBits=3287 */ + "1190b9034f971a7e2e0aa44edfc72ad5d98964104fb50ca3e71d480ba99a413927f789c556c33138ae7e7315ad661ac742bd0f1d458ad362c7e9ff27349e2213af7977c309540d7ee647eacd93f43f283b697a0585f5876b088e97e26ba597d31319e656d4c2b3bdf3c80f2f55912dbe7a5f3e70eb55c1a03d827e972c9dee77c92a4fc2f0b98d48abaa973c81fd4eca9056a0faebc8406f15f095a668068f1a45a95c659fc8280934f53b233bb8da3fd5b9b0b2ec923b24e9da4e8f9196426bdd729e1cba484f35f2ae0b6b35b5657cadb2cb10b011319dc644bc2538f60b17820ce59c95231ff0b6ee716043950ec81f8af822024e738a22d0b36ca4292748d210f2d8af796bc7792cf757268a72baba6964d6faa69237429c7d353743a68622d5113e87e928231feb6e721c0c4921c38eb11e13bb712e5826d320988c054561baaf7efc51f6cd7cca7ef9977ed4cf1a394af819e41a5b4762b732a71272a4d6d90e2d4abc7531f68567dbc29739aba0d3ee650eaebb3691042e2c24b8d5612df7dabc589773b0cc2c5aaf5e103bdec0ba210fc55c0cd59631a02f18f6e7527b6923f78b21fb1665188cd51f5e9281541dd84ccf2109b3e7a08d30", + "1d27b3b8a10fbfabb34e9dc710c35ed0016fb98d378450e67b1af7cc6625045ea06ad26d252c1607f44d9e3bf26ff15f7dfdbe2493bc400d8d88581010785752bb81eb66189594f1d517df2012fbe1d6d1664a051abc71ae537a040d7d269a9897b162d145a1f2ddc2f14b2327d6f864f4c118bf14043b100c41db4420bbafc1994f9e6346b8ce63fee706ba55aa41f279d6000c56afa028c91311470d18d454cc21feaa2b5e4a551ccc02da9254cf8b18c8d77f139286da914c35a84979c4dd7dd2ab89c5c07cf3e395b1f0dadcc278ecd889f5eb0a4e758f8614e64f25c329e9816860fde4af62c02c98ea5495981221ecaaf34f4fec8471292db6330545be843507235b0a61708c35d6c697cd9874c5cdfa83567995f4238a7a76a305f97b205ee4061e6224fb560e3ca41c02e54612f7716c79cb410c128495c10e707eb95665c4dfc5c62e214dd5af05d254b76abe57606b3a425708868125866e7592b0c55f7aaae5d8688da7c3073c2e756d340a43213f4acfc690750e09f57fe6b98e884c7bf4051fc6effad79904a1052f99f80a82b5cc4468487858e2", + "9a3c0dff932062ca709af572140b79ee57d21beea208ae3d7ed0c449d3615baabc", + "1a5edf43d92cdad31ced9fbec27e42eaa3b39729d72192337c19e01d6b2c18f96e96293c59ffa77ba5dd17cbd44d603cc577bd57f3bc2072e8939d5acf1cbaf584530c7db67216bbd2847d4ff75f457f280aafb0c93c4a53cb7d6674aa0db454dee0018dfd89b8f6fd88399ee255a40315d534c2005a41185d7eb8a693f55355d80b6fdc2dfc3ffb7e6b78eadf3aac647115fb81237dec304fe3f465a9756d261ff00f4139fe9d5295ddd57bdf7a3d10cdd3f4194790c1d569551bd2f4e5113548828f3e1ee01787f464e3c5a72d42380b2975d5d2f017192dc9555f6316b12ea627c3f7150c8f50cb04b93b3f5f4884adde8d96475d6ff4eb68eb6acb088c6f5234d7a73a3a5f91b8abf88e9c462b582257ce8c5643c9d4c7fcf5abcfabe93b2a1ef68f7b4f33826de26f792d1dac16097fc39afa94e4f136c393a292351b8752b6d8df6a31bb5f46bbacf92efc67c459f759fe292c3189c45859839aceb8acd607a74fc199bfa0eb89d59fac5083f502c49a84f39eadd77d81f69d00cc33579ef779bf7b113d880e7f319d95746a440551d819987c4389e33338" + }, + { /* i=8039 cDividendBits=2633 cDivisorBits=487 */ + "89eadcc8253fbed1147b194000fcda7d4a568b0f667b3c1c4b1981003833191cfe541980a503b85d5e52156b89b087f5fd1cb9a6c20ba56bcc902eeff9fd7d21d421592e4d1da0a78395fc1f78fc77517116865ceede8e730423e730f565b6e0711c8a32fb9721bf8ca94c5968657fa60ba5fb8a0ac77e4c7c34bb38d1cfe2ea89bcf20a2f45d2a97863f0c62faaa135ccd0d35f6e6645d97e55636449040848be5465e9b159156d0e16969909d13637fcb8226f5868bda6299819e906838c7bc423505044a75ff8dc4747db4620b6015fe6d363dfc0bd30b437d91591659ffecc5dd5efa635b4414f467a4cafe07c3d95ec96ca54d333b7503d96c4207941bf7c023161dcc82d85a98dc8cf5b8a6b9552fbc3966a6ff13fec4f57cc7da0721ee8218656212f2856b77e02c4eb323f6f0dd25f77c06bb6b9e0e629f78516c862e35ed6c200a5a3b482", + "29feb5b2f8b2e0ecaffac5b78c680dc43b6aa5c237cf1a7b4060ad1e535630f536a94bfa973edf6648c7f9b14f8abda7d66c156e422606db704d1bd234", + "0348bd8f76b1d78abe2459e2d43b5f2878d96dca3cde2ab27a090e039d96bd98156d79ebb8fa2252a005ffb72fb6fc6c08b8ffdce3cb3295b7541f6ba7ea4079716afa43f8be2fd9dbc8d8f53f7dbf5a1021e1ba6c3abbc153b6e471215ce32b59b40945b00673c738011a654c3b5cc3115cf353fb89aed51f7c09b5649a6d1b930ed66527d00fbabf96fd7b74aafe5e95a8ca131d58cc980842b84d38093ee02a8486f0e3b26bce5a7e7be84c246c6e9169eb2bd71af431e5c8efac4c38e217ddc010e0bacc0eaf235bef53c6be863d6802e53dea3a7dc4d1f976aa78cbc6f39f990209f37e1d6145ad53ab50417a8ca7036936e7a2785f0508b2ed4191733f52010c61c25a184d2b9ceaa6bc", + "105bbab9c14456cc227ded628efee5f4acb5c4362e3fc686807bb0306bad989ab1363ce965b4be1ad80544ee2531f3bac030f3f0b1ad196746275f9e52" + }, + { /* i=8040 cDividendBits=74 cDivisorBits=52 */ + "02dd1114f0ee496dc096", + "0811528acf24fd", + "5add62", + "0540ad52412ebc" + }, + { /* i=8041 cDividendBits=2990 cDivisorBits=2129 */ + "0715557f0386a3858b6cd04e3696027995a2461a49c578a5e7b3638af0a071cf233f931c0398ed2c6bd301c20b18e5058771c2b5f015924d67ce59cd5239d0131d9d854ae5ce4e5e006098410fe19259cae0ee654ac839d413df83f10ecb16957eaccdb7c65d821fa1ebb553087a0020a42132cf56eb840028b9c203d2fb5cd0dfbf7058cb297812a44a45a1de231bbad5b462cd58b7a1992c029d4699befc80d8a302ab60a5362b1d94b32b6eaa347eda1cbfb152f6e8c9fe292a6e729cb8080059237e416ad4ea4704b9fc1b1902508be2d97a2f8aef82d604f6024298f5d152deffd4538dce59f8b8dc7bc7950361a5b0aa3766b967e5d0c4dad50e06d329bb39bde1c9c998cb86279978f9e3f308485404719102e4028340cd3fe172a8f6b387ec6fa5231e4c6cb67f50faf2ba491a7ec9494a8885c772f902c9c5140c4fd0c5c978f11f04c1fc89bae5e0d44110bd1d0416125c75bfde75f047b4ff6035336e202a61ab6824f39f2a50235f42cc01dbd9063143", + "e1f59f00266593b423533eee13147fafbac31a54c41282d12832092e5ef491c1afe80057eceff863e89128425432f35066788c5a9fdaa07d733621174bf802ab1f8f9addf07c9d3395a1f6b912eabd897439bbb035b9bb4e232b4ad5e31d512408fe4fdd972fd42e95c8c3ca70db81c80873124b9ec3f59bfcccc2e8b78499cbcb26ff4c995149fbe7a91a2d2f129ba56474013bc90c667f59cafae2a97d45b1e86de78f04f32d6b3229dedc31e0dc4341a01343ce6a32bcb786d44e0299cf5b634b00a04a25942db4ef651e7b179e962a2ec0b780b46c95fec43c50581482b4eb344db2c3e89e731516b55617c4de02aec6d70cd17cd05ca040c3fb315517004be3a3620c44aece242f", + "0806691aab420952e40132bdd704c4b6db5a8c76202ea07c00462af24507cb2aead56e409c3734decc170348d9a9321367efeac548c4482156ec5502663a66d8058af4a0762e21060ff61029ce8f92fb5890612a5715c08377cb27106ad356209f57d6b64e41fbb3698411da", + "b9438fe205721e6b8a95d8dc2c615f7fc311abed7b3988e1ce6bf6ad7ef949ee4d63d75d87f89c067e96adab56e22d6b680d9fc09f59a3da444c4540c4b2cc39af31f73eac9e50b0dad1887d1417ac9ea8c72eab84a362889da4c2ce9ed48df3482b67066b9458a2e06e6a45956b22bf53174d8714386f863e24f9928f9fe4325fcd2e141146cbdab1855ab21e4fc5b0475850bd3f1660f5b17657efd2a710e2932c1e9992dd206db0e17c2d5875d11fe8156d8d131fbd6618043e7e2c94461794414b325dff2ff5613f3ecc149b23efb9c9591c153c1e9c57616a3d4909805581bc464e18291b955e99e4ed272b96878a4dbf7d631f04ba8e032aeccf008f92cfe445d3eec45dd8423d" + }, + { /* i=8042 cDividendBits=3278 cDivisorBits=1028 */ + "1f90a558d76c45a39261b42fc0cb52fd1c2ee019ecaf83ba56f51bc0e1895c0da76ebf712f7e165594d6a09a330cd5bc0fed48be8409a4af576231f582332004a13d06bb22b7c5b9084b2735f93cdb821946c8b9493841d007d1ca8c7fa938f85ad91b4ea23ef4c230edee58706e8d89e1334417a861c7b10ffa710ca40a3406762e0ab65c330cd1c9c76eaa27dd2cc65defc82b20302224dcdc90557930419b22edb1c42272b50740cedebddc528280a8180cdc645729eacee94cbfac801787f19cbbc08ed23d918c2368bd29c555f8e6f1628a0262ff469cb99c61c643ece8a7baa44229a5b55a226c3cc229412b7f65ee2746a5cc0cc9d5f165172cc05867a9f12cf2888415f11d50a6bcdb495bd4e3f72018ae9b8e9070fed852d1c58bc991fe46e676a4c3f9f957e4d446dcbb8e01c3f273f1122a52a7c91161105feaea01176db46be4aee1aa82d7bbff945e5f57bb9b151786a82aefec5b24be9365ad821905f9f22c5e64571b5f35cfe3054b36071c0f8166656e7ef0253f00ad05acec831d5726669614e694c42c36e00d83695f61ddcefd4f1cd855", + "077a0286b605573c1201f9c6b7e20cd78e741cdfef3d1418e415baed2f9e60cd6f2c5b8abad942bb6bc4313c0c1318306eafdb2eeada3f1398cf648d62732d4cc1417d89fdc410d05460ad879f821149e76845147f7079aaad0e45d5ab198430404d5f19a00ad74ca64bbb0845c52ef51c39cfbb9dca27b23259b7a21ba1bc942b", + "0438ca9735bb8944d85f4a23321d5bf2d9e68e3a874ee60b1acb66c5849d9691aff44b6de50d90f558a6ec968da8847972ae6d312c381d55dd43632bc8c742560b3678f3c86b25ca545ed15e117167f529f398be97344429f2ff0f17e354069d630580788ec3eaa8e88d73fbf2379abbabf36ee0c3f678f5aa0f24de5944a6d17415500dab1670a0e278e022f7b73ad0ecc915c8cc5bbe32a91695f8d87e6d14c3323ffce171b7f61e1c643e53b33198407cd7456c6a836643324ca4701b8f3f56c51ce2599285df66464cef603de45981b66a025587db4c8e4366f4d6b739a6ad9d53b0ca400ade8473865ae9e032c5ddebb2bdc20868ede2f066cd8d3661b6f19f6c89239cc2a3f1b0e44e4711152bbb0732946f0858f272ea", + "025efe6b2e7ccdb21a18a201b6b772cee629e672dcf6894e31e69d90396db396eeba55d84073531a1e5cfad572eebb96d08b6abbbbca883984fa1562e0551ff4f8d434adeaf79d52e3c5f959078a4f6adca4dc79119cd7385e13226833f76c7480f7e5fd41a51ba1e0394947d8bdb4881adde48ef5b43c53f3fb1c562aa61c4307" + }, + { /* i=8043 cDividendBits=2767 cDivisorBits=244 */ + "17ea633123ecaa88f2a55513e35da83c073fee218054407cb4b1706c0ab04651c9dc7c527c992d854e4439144f5f6d8ee72b79c84b332af4ae4849d18eac913cece882e2e43f52ff094d023ddb81e70629ff6da299138b5222e1bb8f662f364ee74413e7783b506637474b745eb426de7361c7bfd5d9b0e274c848cd9c67deddae934d20aa62257626302452b3bce5b37b9da99ad8dceed56166e76a9de2da30d2707b50a9ac63193fb6efa6e6c14fc770d4957ce717f8052e65796366d4bd552d5f17b16240e216eb986adf7d6e51e40911066fcfc7768fb3edca17b9271c5c44a0d4a44c5a4b8293a0db3505bae0ce23dcfb21b492773faf081e7b04a69e74e3baa0797610df1a3d469c34e992d1b1b4f6bba294410e62664ff4f1b4e5adf9121fa8258026b0598e2daab3f5d2b5d7b758e575a59ece505a704c59bc34eb400f1d68a386548957340270042c07cfbc1626a2bb4fc08e1f60e5", + "0bd8454a9cd458b9989de7835d0714251080133f2c05d6cd808dbbf013c868", + "0204e23831087eadb7174c585c7402deae1b50ca9d6acfd4c55ed4b4d88f5b7b4a457d1669262062c58673d77bd51e3aa4d18b35b792aa8a75f7f2a5381772cfbcc2000ed853bbb326f7dc5cfaabe9e285a17535fd26d7485eb4fe8f377d0eb8e9e5f0ec2dc366bd22729527dc73c61dab78742ad74d43c3639e5cb87d3c02c0f5ee3cedaf55b9039ab76e1b5dcae45f32d1bf472391ce0a7849276265e91c8a3103f21fc5a0ec20d3537c6df63dc3a9055b50670ddc0dbc9c821e074cc9016c8e892cd409d642f290f380f93cc922688bfd894add1e6ceeaa14a4f77c162ff4ddb8f3a94f5650b04cae6eeb2acb0ce080ad7a736e10f8f6cd0f811aff68dbf757800fe6d4e590f95947cba648094fb397cfab18da0f0dcd2e1a4f2f350a32915d5400351425edd57819615a4500f7dfdd8be2dbf0a62fe161c15105", + "0ab28cde55c664d628d9ef6ffdfd2023066b7319f5d160cb1a5add1ceb8edd" + }, + { /* i=8044 cDividendBits=3692 cDivisorBits=3141 */ + "edbdd559c9cf4702c4210448a4fe04543e85cfc8718e044115f5d808fdecf19580cf91c4c1a257781dff02c5a46256981d0a38ae8aa698d2ba7c1d1c8306d5377c3e59a87a26f108bd7db76fb951b7de99473e47f1588d992c767f7b3171f9c231e13985638d4bed94f3e60db01e282b1726a3dc068e197e525dad804905dc671edaa77a147c67e776a1fceaeab8ba855bb7b46dad8b0768c69753bfd2213823236ea5ddb8ae119700436e58baa9359d975c40a96de948b53aad81e36d2d36de82a11f652f1047b72706baba47cb709190ce028d147eca1f663ad0caaa2e1720e560972cae175bbc039216485d08c55c188e150179a3223970552d269bec6262108676d572bfd77930d4c8f4dd1cb5164a64ef84e86a2c164a558a23873c251b46304b3a14007f2d10f405336eef4b9141dbf809cbe39da7cf5f30675fc0159aa5db7c6acdca1895a48cce347f6d6d472c57ae35349e6884f6c425455c23822711597858ed83a3034e5f6dafd578635265e98458fcd2bf4e6398db4a12beadcfa7d8c8770f257aaef5908fdcf455fb89b724dbefe127b662feaa8dbb8ef9cbe58d43838c89931c204604f7c416d166df575f7f5c25b515194e0649c831c3cd21ae43db5f09ca4ba0cae6cd8828", + "6431188590ec3697192b08c0b270fc055aad68695ad179bdcd4cb40e8a3a2816cce352e3eb88487a2fede22c1f45a756b31eb377c3e40008ffcb7995dabf7c6db8d1e0a7ae657c873ea66042da5735b41bbbab0d2d08f3733e9614e45d309958bfd88fdac48b660fcba9e07654d72f9a6193b852d06117f7459acbfe00e827d9ee7683f6c023fe02dd5f5b8368c5e610fc5d5e70750ce78036d72ecbca722de75ff58eab21b4142958eeab06c5dc2384299b007d4f40531125b8b0f11891f469881ac5279592008d640f4c912d9944a9700a13344e260bef977452ae42ea61cad21761690ddc37765f982dea9de58baadc2c6c054ef6f163176e4f17f0f4aaddf89d00d2ae356839dd747d359df10d6f325a79a6a9adece8704d6eaaea84dd505cb6e3bb188aa408cd76d86b1aff2bd5c3c110d730818b8d0c6cff23c407b9d3aa72f6293140552022a740e6ed3a4fe1af6520d00d6910388ccc1f7496e22f4624515a14452ce5690665995ce408911ca4b54436cef1993bd5a9436f894e133e7fda22a1582a0bd9", + "025f740f3b076fabf8f933662e48c74937ac405cd5f11545c254a071412e6b13968fe5f1f8f989539bb81444d80bb6cf716a4308d47dcd026cb6ee7a744223c5da1ec1b822c7", + "1680311507248855d16838b27e2fe74520070748f384144e1ab0f3ec167527b360de9ab8d5dd351f0a30fcce41ececb2111708772bf587e546feb3c5828732cd1b155e4ccfb31336fb992257fa4f5393b702e275ffdc2d4052dc2f1e10f51b6c9cf124a174d3ca9f3b7ad128f6fd78fb35f7c05644b78d9127be241662bc3448fd64163e9bdc000d5fad379d5a2a4c400a540c19f2ebde760d76a203ba3e1640ba7292a369f307ce63420fb80e9b0d033c7c0212808eab80449e3fbec01e1a943a61b6eb88950464663749ccfddb248604220b1e95872d983588438f6413a1470208d654706136740f3309838326e262fcdb45e057b7212be5dea7d007d3df14a6cfc963e70ee638f6cb3ae59cf2d4ca5fda048f9051b143fb3d9bd91d110c8e7d3201be6f73a02c6c8c360114851e7a172389c7768234a7eee44cd0cd8a017988973b1a812c4df12d67125169fc50f80b7282ca2454cbdfe8aa089ef714bd1238ac99252533747a03dbb903d8daca317fbecbad0702c83b1f1a8c73986955acfbb10914ab938079" + }, + { /* i=8045 cDividendBits=2468 cDivisorBits=2155 */ + "0255b1e50a87542a0c977caf9fbd9ac40a2bc0126b2d104478fac5a6619bd0999b329cc6d273bab7a4140bf270f83151241f1f4a3169331de41bb71610aa2bb42c7c1c877d43e48efb4f96199b5ad929dfec34d011f905da9e3c5d4666f0f732db20612f8008c94f5e2eeefffc396321b4a14331099ac950956614bfcbbdc21e62b01f9fdc00571b788a355a4f56710fdb948a1949834e71a86f14e3ebc9467161648ca1ac3d2370067a1bd76793308c9315201bfb9361f8c75ae9d3eba6ab4a2504549241933862deced2b2807655a99def7453c8d3d49ca760242cf7e131ab4fb0d06c732db04c1227f6c7e99a12dfa2c04fe3a8f79e79c75785710cf5d50056cdac09734a3671722a8d7e52b44f911213247ea7932ffbb4689740ae817aff7574a9d1bb58b117bb15f1c5a2380cf9fcf1723417", + "03fd69fac7e876960612287c57e3c012e9c1b388d13270f9bf57bf73f328575988076848698b738949eb10bb82e53690e03eda75977e48b64fcc8759f694f842ca0f6509bb0ddb1b5f21833a076b956da700be72706752fafa3c61c2ab1aa11b7287cdd1a93c565fadbffd808dac4dcc7b474dde8e707364e0f02434167b4098b38def374c76b868a998ccf27e66359a3e73c2f13be38ed07887ce9d4f681a1c68ec448807aef6542254d8b2ba659f0fbb53986cd2a143ea24765437b05409a6aedd964fc76690643a93af7e7f2840754c873d43f1a58bf54e0ce2b3f4067f8cbdd31022131db39100eff53f71b4381fab06a7f3f91e5b81d2394b39b420dfb576ef5630ffcecf9847e315f390c6", + "95cd5242c5526537258b6565c439c3cd8106926575f20fcc6872d200fbe4ba790d36803287a09a", + "01cb6d1547cb171ac1ca5c017986be207fa237ffd0a392755202e4defadc69236937bd6acd308f47ab4e384b62908fe2f6e9e11f7425c14d70a0b093ab90f0cbf6479ff9c93b1b8e1af6fd7c2d3f64f5b3725f27fee5b03daa5f7de4836d68993d772251515a326acf88c4933e1320f22f2e72585931cdde09fd28d4b1623b70e8010ca60e6d3a84d2e2cb553373c39f5e2794119db70075d9ec9ed310f8f9e42417b5c1a121845e23d138a549ad83f060d0a9a24a9415ac19707f8b8ab443b566b1798d5f47764a5c42d592889ff952b1cf6f1120865b054e7a7d6f6c8942eab1616bc310def3143cc2123373e4cd04432edc3295c87c72bdf44621a989b70af56798bbcd4d9c1980f17e075cfb" + }, + { /* i=8046 cDividendBits=1676 cDivisorBits=1641 */ + "079305d0cf1eec1de37eb79f6e84615338a23a4e9d414cd02a6dc5370fbacd94dd717afe867690f12720349e5a713cc0960671563a889ea0169f17802dd47cdbb927ba00eb8f7b38aa26dde5d08be641c44c5ae0e639106314b0155f1f9995c5e11cb9757b14aaeee9ae8ea88a222060cdd1b0f7dfde31a5c90a3e309cb4ddac81942d9243b5e27ac0e87fb2d2f9edb9971fb21aff05770a8976fdffb4da6ec93cc73d7fa372a826ab55672d48a15fb35f0ec400707a1a14057d4355fd00f681a48e600d461e90b332a28b46bdeaa0ba52e9", + "010ed01c030862c02602f3974f069bf23a1f4856c8d82df31355bb0575bc6480135ec8c610949f303913b80e52416a2a504e3e4664cd3132f82decbe1e0e085de4a755c89dc26007e8a4401db843919819686869380a1bb0b080eb3ba7dc9fb76b5af292ddfb554116cd910eb9c1bafa0331edf22383f811c9fc66ab13cd975601fc81908dc8fbefb3a69d06c0672a29ae569ee1d7ad7496f9a383971fc0944e37ed6e0216d1c4612ec9c7ce0023291b54937460aa6b6fd5b65d40fe56c433ec42eeb0f6f097dcacd2c4749d5a3f", + "0728f64831", + "224928fe74201e7283f6cbf1ce88dc203c0327422e857f75ed262f3a6d4f29d3deec5c1d1c363c877fd0459e4c1fcf4109a18b0e7f349fbcaf66a80f968108ffa90b72ec7f4a49cbe0a9e8206f20195dbb4c9d7812e7a4202da32aa0728fd83cc304c604ddef2e96845619f00a356fc38d044030746ab70868ceccf9cd1db5e661e3e1a09de6775e8cd074f3db7edb674afe2104eb2e120119158fbbd001657ec0f06b21bc87aa62e071465f41b7762f1108165710296b498c894f3661893c1d9f48a19d20479d087c7cb054da" + }, + { /* i=8047 cDividendBits=3142 cDivisorBits=2825 */ + "01b3c93cfd23cf22a852c06bc783b31ebbe9fd729d56daec6adafed4b730118b1f7a0e44b67655ff4b741ee9f9a5e3091416317227fb0856153a28672f2214541cfc137b8ed939bc9e6238e8e31d1851c89602126f40958522f274de3f39bf08fcede1c500218bf3beeaaf65a8e2661c048beadd6085fd27c18b4de1531573154e48a84349cc99c73869e330abc3e241d4d0704b63e480d539c4c0366c2e1955d128add7fee82a0ca7913dfb95d53f2ffe36abe4c67353d295fb70ba8bfa748856633ba02a37e16f4d69fcc2362408687c5816be51ce9ad16e834a491f4142711c067c12b4640dac1360cfa554e8529085d08263194b701c26e112ce0876733644d3dd4f71bc46c999ccf5d06a59d7cd271b12528e632daeab1c3f1263d8c58e4606dd0c063dceba5d2adba11a3a3d765f6a243be3428c9fcfa325892a23aa94ddde2d99873a03f46d04867f8d914fb27727ffdb13a8d1d9ea719deff9753fd600ddf5436b2267e28cd48c34ad84d333d89499edd09bf792d5ea11f570c23b7e91bfff927ff484ff90", + "39a68f477dfd075bdcde47fcaed1c16582956d27453c353d213a631240b3065ae0d849cf8565c37b7e2366243125c3db7e23137face8fd9a096e0a05d3bd108b8fb6660fd814bc278485d9367b6901fd47032100c626e04c854b1897f6e6fb8cee00001f19b83fa84c65ada39504a930e78c73341d77de6a2613245ef7ec3f52d49172062140c609259d191e9894a486583654a304fc42e0a7f8912156437c2024149d76053e9af002957c4ce913bd0766fe8e0eccd3e22f6c578f10d237b8ca1a55123772c79819a16a343eac26d56f248269decf0ae1f63bf4ce34d3896ac04c563bbfd3ba4e818965bff2a3a764efa7926e3ec0b35b050e4359f884f9ffc6a26a1b24a236856634bf56838e87064feaa97d80051d2bd465b9b5430d4c37af130495019500f126c2545e5f06ba89bad6c7bf1e3d932c7f700e1920296375dd5b2c335b67b2398974da1917aa2e47814e5f3712739198314f1f55a30423d20b73", + "078f20552a64b40364ffef0925a53d3997a8e4ec3eb4a0cb74fddf227a99b1cd7ddde11892989d8d", + "3838f50de947c94cf1f8fcbd2cb9a3d4540fc148b4466f85850b9cb2a30386ed7855ca6e3bc2bc60beff9a14a11ba56328c386d6543559c9ef45f20b4a7baa7b8ee10b70d270b9df239c02cdf38796e68f5c8ac8b461de7daf6d7e36883d0959acf328ef2c2e8e300cdb931264ce41247508c7f800e1ab18832bfc2d0b7e4e3be7acf48703cf0fc05611b84cfbc038c0437c11d6b83b4cc5dafdff068fd935868c4fedf0983207b6f99a2a5d45ff278f49acc446a77c325227b1fb1f874373da8446c6d260215a60e59c630c6908d43d5195b7cae239448a279d7048e5fad58da845c7edd250e52d9be3e79c9d2d92a4e702e0262ff6abb92c8cc08e36f8893b8a43b097b83132f03aaf079b2da9419515c4285f7ec5057870232098a3ed7844d90ebdfeca9955f1c983636e639a0518b5793364df40f574cf3de5d44f5f3061252fbc13bf6da2ddac86c6d1cbc9bf862f5d340a2e511a4813d0f00a3a06872a39" + }, + { /* i=8048 cDividendBits=523 cDivisorBits=146 */ + "07f93f1e44c8243ddb3ee0010794d29de5dfc0c08227602bdb9ba98954a6dad8a6aafe62f7d06309158cef9bc02473edd17e2e5c83a15f0c3c33ab8d462d8a2c1466", + "0343009cc03958a0af903e093992d8afa9261e", + "0271d14860adccbc1cbdbaf4f1227556fab218823f0ab077c7344871c33de4ddfa29b8988f85fc7f1f27ced74952841d", + "0237ce194741e5da762880088341cfa8bf4b00" + }, + { /* i=8049 cDividendBits=3152 cDivisorBits=655 */ + "e561291f6d1a4f30c51a910757a7bcedf0f7687af98073ab07b85d85dac6d391889c6e8f73aad281128b65f30ec50e71374397f1c02945ca89681a15656402eaed2ca5d4a2287f359cc2aa30a2d56fec0c5c369f615e65322f7dcd7ffff2fe4da5d3adde151326343737403794136a7092e0ee107991d31ced318f3bbedf78fb6c752e080e6b8a4642f1199f56137a9cc9419f2b651437b46c3ebeefd7dd8cd7c8d2ab928f434625fa6aff7d571ef30a403918b24c3d812f66d1c4e3aa688f994f14861544e935f721c04725af6797790a4d4abf7ffe35f302152e4766f78f7806c2092e7a01470bd1ca4e2fd5bfbba5e8480c8105dbdbc977814498633de78ffbd42f530e24a0f15d154c6c279d404589822dcf5c0b05133a477fe0840a66cf4a7438bad28b7fe3e3a892f1b5911c8b99f11a8219fdd87924ba79b9e381b592d9dfcba58c955722857087584a2cad06179605e59e2b72575d3ca9d49ba44c4c618f02438b25d9eec718e62f1cae571d26c40ae7108d028ed9b67373d2bb0fdb0a28deb28dcf6ba70bc8", + "316c493546112b57676549530034749bdf7ab9994b632cb6d925a6267176ec30b28964fcfbb6effd1007c829c4c2bf319d268b25881e24f2e53af44c2805c737cf930aaf726ab29e48f8f2fe43946fb547ac", + "04a4226cd35182cad4082a3288d4550a4c19832bd17f16be57c97d9147ac71e91ee87ae646345c37c26b1d5bd42e6cdda7c041c58080ab51062e0b6a8039c51b6a3b71893928e945a757eb818006e49c02993d597fd885df93a1fe20edbc103469632d6be9715e9a062c54e5d4675521f02e952fa8ab8af38df6691b6fd28310cb99877329bfc6fb595a555ae256a9db3771ba86d24b83e75ab34caf48e05744c58dcd8fd1b675ee1dcc4a2fb67a67dca41a547f6ec68d337a8ec06897df3e45c541699aa498a84a094a61a8c0398177459e4540330f9e1302850f80dcd2d1b59667962d1870ed2b22cdaf1856ceaa2ec6e4bcf2f076d886bd28b82a52f5ca923022d3d8a2475b400409ad9c779e19f72a4b90e0672edff4ff14afbe97611b080afdca828ed7b0cda6f09dd3de57b4312b9fc05a84d68e7c31", + "29ea5e9fbf7a346b3c142ed6477168bc6b5746cdfc213178decf3089e8b7c2b85b752fe934a2f3e215379de98f2f96eb293755dd66153127f233920504a714dcbcd0bb4fb33cc051ca1ab7e8cb22b1d503dc" + }, + { /* i=8050 cDividendBits=3532 cDivisorBits=3489 */ + "0d07ee097f355cfdfca2f2ab9ce94c6370b82f483ec5ec5b13070de23da58e3f072e51b52ec5d04fe55817d6b837eb4eb03bfcbda6da08bed494870fbead5a93692d43c7d300a6e344875b05e2397908a5b1b460e55e383e9372f9e090b63fbc71e1be1207791514b57a2d29cf6f437ac096a3b9bfbaeaa8ec6e65e59a97805dba5235857e1f71d2ca9b933d3f9bd29d421d8c912ddf4ca556be5fd3fe2915259ed8ccb311c1f3a6b00b9af7354770a41f8bcf5064d5a34209c055d0fb596916c4cd7c3462e77ff8da54c99f87729b0006939ac12d54ec14ac436efda77e753ac9a5e2d34ab2b2a6bd38f9d24b6d6b9c33a56cb22bb8d6c91dae5a7d02af3a2eaa1720e61a7c2491cabe782e8d9380c56b8b1988eb22da773f669c043214cbbfa01dc79fe8011c27692173ad2b25908fd24895e5aaf5b28c46968f9c5002d6e4035448215d8ff86cf328a63c78defce99ccb86eea7fe974a7048015e67709edbfdd338fef7318fec2bddcc5e475331ded0dc9ab1c7db4f3aece09d1e00c8b9f8b06393ede7e2b05c5819ad8ce9f1d2c9d9dbb2362dc1652ab2ee00ded3cb6b7f7c96ee34f7649c45dd1aaec1b4bf8beee92124edbb7c30f74023", + "016ea3d5e55465e94488cb253c31fbac5517ea6b1907e2ccb4750f4294cec844212004a6df8e01af15954c00e5387dafbde781697aa875b0bad7831c38476c955bb6e7f2271cf416ce9dc74106209d636628ac54b05ed3b74f10ffec612aa3203dd0b5b628b679d3130da5290d65c8a26172c8149e9dd7ed7f347a1b5c38f1277ddd85773dbdb66574e652af72dc787db296a0f7d8925c5d80c7b891fa45e7acde990c8e4e7d7b63ca54ed45b9611c73ffe9b2018749847213a642df04e1389127c2c1a77d348395049da1c9de10c147bda9d90b5a45e7feeac8058a2dc9b907f391c4de2965d73093870286b0dba36b4e0114d279d04c1a0511a350795c5a1b3430976f0a715dade2dcaff17aec630d8a1035339ebb91dcae437fe14392b3d696d42b619c40f704b04ae3a7cf4f225d480e25d0aaef2941d3bd992c4be8f169576c6ee98259449f3a56fa4e2de9daf52b099661a8f8cb8843f0a7ab2f8a254abf362e54a604d794e3a764945c31b8c0b6ce6a337ee1fa98f8f46156ea7b3482f4717adcba3a8f8868947c4ad3ca075be10ab3bcbabe4fea38634f5a99edd85388cfd131f62e4facfe68c554c74faddaeb7f2af894", + "0919414c1215", + "36d931e7b4aeb745b9e897a50b872a9a95d1445fe6c2666018ae0c5259346c3aa1740bb59d9f12c9ed29f9d6f791aee4e5d1d509deff1b19ff238dfe2089e8701c3b974e2c407cc5f126f0877c0441e82398a3992887710c1d62d2ecbcedb823aaa1843500a2b091f2ebfffcfd831bfe0831baa60b82ae4308a6950d931fef9fdf9d04c7fcb729c3193b30c4f625e79e844037ed6c940ecbddfdc39c8c5df4ccbee50e120093030c89b9fd67591367614fc61d6f8c82f42ca3a95530044defdba3b79879bc0f956c8df52117f7d4243d744f96625e2657e0cee606d8f7bb19fdec02cd4b56b1d7e414edcc476ae17067dae167ba70a7b10367e4be2dd2121da187318d0a9f373e968fb276f1375828acb5b874771e40f51f9600ec31da77ab81f98fc15f4899ad3305d09e4afa81c2beb8f5ca71d614d9fcdb403af53d64d6aeba3f1aa21fd0af1ad9df7ecb03670319e2164fcf2f6d0b34659c1a959ba87011865dd5fc5b17189996603eea0420626887005f708b48f3fb9e3fc7ca6f45fd1729cb5106dcaafa3ded361769d36f02560a5a71096ef4c23ae177ba240605261930e4a38c28ad222368b57c82ab2312e65d0673ff" + }, + { /* i=8051 cDividendBits=531 cDivisorBits=377 */ + "049c1eb8359a504a5d4aea19dbd951b021fd08eb7b3159e0c13a4c96ea652a5e313723109e36b7e05d55ac02674aac28c374c8d538f83cb6cdb3715badd49b50d255f2", + "0122b7cfec28a30d6a2679f9824de2619451c22f6cc9a3f8aab2aa8cb5b58962721657594d9d448ebbb51dd74bf750f4", + "040f302b090b331a1f9d5b2e3ae68a6c97d6dc99", + "697f0945df0671939f1db9a890a633f1deb4155609636606e64376e41c82d8c72f926d81de1ca935cfe938c879441e" + }, + { /* i=8052 cDividendBits=427 cDivisorBits=245 */ + "072a5219c9b68f998b615428e9c11761da932e4b9075a95d53ee7b6d582536510d6eab630bda76edb7dcdda3ac89776aa1a13e7e9a61", + "1ee1df8aa146793902c2335127b00b59444a50ad821964dcd7876624e1b56f", + "3b65a9aa34179a72b7a6f0f40607f21959aa9c7f0d3a11", + "03b830ed2610479e8f0d56d997f55e370505dfb5463fd62554616160c36802" + }, + { /* i=8053 cDividendBits=1745 cDivisorBits=1084 */ + "019fdcef7a0bd75e227d5d12cf4d219dcf5c2d611ba4253471bcdf4beadc6bddd7d1a9bca06c177df776a7a12239820edd41d2a85a36dd52782a7de4ff69cdee89caa2cef6b0ef66e3477ecb8bd1d5d7fcc17459ca100a1b31f2da8bf46b012c0617a482cf4e0c63dfa3cfa49548812125dda3f0327c8c2493426ed6b7df495a0ba03f3803023199cfad3eee8ec9dfc93f5e3883d011b0979ca808c6162b57647f7deee7cc2d1a8f09d9e4ad657570119b43ade87b547f713e4ef070ced2eb02168891dd6cceb4e375cec8508c2de87c17e92faefc363e49734822", + "045c79818901d433a3c707b10a06248003d62939e0d6063b8d04d1504feffc85a08f9592c3f49cafbe7e21209bb2cf55e6e285b1da4aa47fbc8aa5afa2e4fdf84cde5372ca312df2b045e7899591783a66336a19c07b23ce88bfc29795f47e2f835d1aa2a27949189af25c9785fe6ca864765aaba760cdf5ec0f5a2641e63e38e036e325b32e561f", + "5f5ac3becc1abf65b56754c2774c08a9dcf04e87324afa7994b2d2c2cad59469f114e2d1132cba576c5b2b851c61c2c79345df9f89ddcdcaa2070124a965eed88bec6353b844e6884b751fd4fb914aa863e8ed", + "016a98d5efcb747d7f98230473f0be68c975c68582a33411183db48107985d68dbd59eee175dc6448911691bc0f079d8d4da0450f80e21999c723eda8196c6718084c17904b134abd3a3e7dd3a4c663f3e9ebcf148e60bdffbce7d80d8889fac8c3b4242827bc904ded8001c134ab327b12ccb971482bba245df85e7067d5f27a2959a8fc384756f" + }, + { /* i=8054 cDividendBits=2902 cDivisorBits=1882 */ + "08860c69b337d600fe5246187709297cc7d5258619c94d828996d53e3657c57cdb534d37280665d6e806e238fb93f83914f0730627f119ae131809b2fa1337463ce0dbee5b1086a29dd60807b39dc7acdcb0b2e8ea275921b26b1092c8be5fa81129f26119a42052b46cdb16ce5c52c19babe3dbf00cec7370000ae100317b0a4c50816d5e7e118d7b0f9e74c2321da27b1f87880d140654388fc4de7608f45d0521828e2dc472bdcf57963fd4b3caaacd6aa6f95da2ae8d05762a36915af22f87e6a1a871835438457b365f4a69a01e89937b30df325e081f23b517333b1ef18174db5d55179f28170bcb4ac83786b03d9d7ff6d266781db5437d24e94c82099f9266a8b5b3ca0c2e8e009cc1b30ae8b0b5bb3c42024c1f09df7db43e830dba77a3bad560135a3067876a16cda4de97a7dee5e557e36d19a79e729c1d10dc11fcb05e283f69b01d67cf215df8a2ce79c8812cf5c8e661dbe6979ef7f0a569175e7c8858cc834777cc6dd5", + "f2a4bac6e8de226cb4dadc65c49c82d12f68c51e0fa9677a382190f3b5cb455647035bb0b9a625c4a06f16acd2e510585b6eba3e35210ad925b7e6f0887fca2fac1c22a54bf1eb267435296e64487d2f421db76ba779d132ca205ba2fb4ee2355366fb570b93df1be2661c7c0c41dfd8574230dd8527bb2538304cd9da44fe74df8318df19a8d068390e02b6918ebcf5f740083e45a301dc25dac0fcbf677cdb7f7212c7c6f5ce0e9663504174e27af578932f646af8c6c97c6bbf03ac6c20b8cd73c169c62875fb84e91aed68a1484de24bb828f04dc0c4c328766f61a8911797582b669f873133ee07de", + "08fe2949a00c6bac89852e0ed0cf618cfb0013b976b1e9d8731ca7df7a532740ea54194160a6b0ce8878f288ac3688a2421550603c334a6aa4e71b0910244eb78e4c4004201a6d3441476fc834fc366bb466cd7ed5054dafd696acfe431f7e63eadb49c64de76a8b7c67cd2173c6617890d0c183bece21768172b3f5dd146e03", + "60567a1342b150ba11343c1398543b46dec67760eeebd779963123a52e17375b9e26cf75fa4b87d980e37b4b2c1083a18afbe81f44d01a21a75b2e91382e237650b0472460fa52d36294e5270db6003b815a9741baf3b4847fcd2948b882d02cad755615b5e72c4d48a356455959111b61ec0476032f7a3682e6b91d9bc49f00c7906d1f329ad8d51bb374a1bb5bd73c60fb9f6b5f791729a0835d9690c8cca3a46fc9eaabe85d2dc2609d5d3704be62bd5fa124927ba761de578e0f1db8172e71f4cd49cb088c5ce868e3c496dd39078faf8a931a675e0ac64be346ed83d2f512f8110e007c8a5148f23b" + }, + { /* i=8055 cDividendBits=2195 cDivisorBits=1007 */ + "02e50160c306587c834ed32312b5e7e23e80dbbe7debc74d7b1f12762b2105e45e992bd47003d3ceeabed01762bbfb18032e88b90a1d9958a0259369f388e79a035c984980a7bdc819c15c80aeef8095e980b1a974e4f5b7c37aaa8d854fc22594b25a7f015c42279fa0c20f409c5714926edd93f6320f75f48414aca9aa78b356760e17463b99ba835c0e4a2ea247dcbdc77bdcb645e392f25cdf4638b3ae26f773bf1174fb51b0969b78bba4a2226ef4fe9ea49e8231a1af4875673ed4de3d40d08135ca09b6c3111259e114447f50653fc53bece8eb3a14409942fb692948d77c809ae550dbec74061960d1fc99c83a02802452c4e3890c7de60bd8b2b9ecb1c7593a5ccbba1c3083d1adc10345489da103", + "331f6eb41400478141207dd0c95b227bb0169323b635078cac663af46b0d90350c8a0cb5190f2b1b8588f411952963559c09e1eef9c1f5b0a8e078139111027da2c82077278d2ccd2d9741c183bc9267cd5b960631ca53306c548dda027cf540e878c53b999a29ddebcaa071bd6669163b2e5fa7ba8f320bfb68edab669b", + "0e7e9f81b7ca3dc57144bd3de00a319bddcf4c30389864549d8a6cb975c8facfb68bf1617fdd7bb6903c6963e15a6d2cf56e285b4ce1f7610407c1746182ae054b647aaf6959852f72768c44f9311fd1e023016a49d21b01dfb302278577001376b88fb7e8deeefb1e7261a60a7bf1a3ab669852c9c564363fcc8b6d0bcf0bad90cbd017dd02d2d9fdefe8da00353bc999a21d7e8d", + "14665b449c7fce83ad62f715f9734844412329827158ddac66e1c547c9fa9325a3dcc8a3188ef1d9f7bd519daa540040be716af0ff773425c5e2958711634406bc03d58b881f7cb1412e66ff1573e4eafe1e54abfb2d93f15e089522497c79deb32a3eb9e6d9097ce735b31dd6964b88e7a97c4e22ccfa677c844f26d3a4" + }, + { /* i=8056 cDividendBits=1690 cDivisorBits=113 */ + "0297d8c137e0e27cbce65dae24bce3bf6496ae34d4011e3879638993d5199ac7d9eca53f3fb67438eb4572acf05c82b5eebba64276ba6f5f9cd47090542edb13efd41dd227308ada87e2996dc525ab1c47b5cc5e8ca55e3cbd3cb43638f5ca24fb59f40ae653cb25dbc1fed20b5a317004e9de05eca9f61805fcc1c28427c50d74968f34bfc0beab960e8bfb5fdbbdc2ccdb9302e1669cbfec94fd09b771e1aa170bb03c38f3dede7c7b42e63850b88a2fc5fc94d20ad259286e4b7a0cf7d7708f0350e5de12044036252d7ac1e07d024a92f510", + "71e155e51ab6ff073857b4e558d9", + "05d44fbcff77095cbbfc59b03c46d4df09632d2dad689e52055597760681cf7f05071ddf5d226b5d9758495cf5c20051e29fef4f0cb1b81300cd1becee1ca7293f6662bb8313ac5b1a035bdab46625bf72dda7d89d8cbcb9c68eef9cb8cfdb6477154bf60788cb7b43861013be500dd7b29e81d3a0edef5fc9f73a530f0c9d7b23b4951b44193cb66cb02010d47504d6b0c42bd43649feac6a370c25dfc68574bd85ba2a9183b0d7878379fda6bca6a19ee203ccb59e5caf226ffe760b9c1c26807ce65e4fb5", + "1ebc1e86243282ee930708522ca3" + }, + { /* i=8057 cDividendBits=3226 cDivisorBits=2966 */ + "df5d30ca62d9b1507e8929c0ecf97df727d7e062e8efe03a14233182c38d4ba24f0387ce9f66bd11412e15d99fb8c3c2fe8e093abc5dd5fe44434f8b237ce2fa3f4f241f203a3477e1b506a04670103d2c69c28620129a67716997335cbbf7c71480db496000daad8a32d84d05718a2a2743d5f94ba8700c54f1cdc0eaca17c4c7f7001736c63587685578e939b01797bd7ad9e1d2a78f316d4d7e2f1636af5c69940e4c809edeb8f5d97abbc2cdb7587d6fe5cf37225dd40b7f91828666a8719b7b476a04136e1d48bcc9f06ae4393eb183ed77c226c62418e5d46451bcb480db8d620929416fe1d8efccf8f8ab3a03b7b442e4488e857ef4399a18b81d5267166986a681d6cfaee987f9e94e1f06ff9cfc88f9bff4d051ada95ab781ef2b3d1779be95265360bc8d6327c4d61ef6950a7ed8cdc69258eb2eb2072c3edfb8a54e0348a78abeb3ddfcce06d3edc5eb40da6957cc6ac7a24e921e07f3dc5857bee30b1384cc859c7740a96aeea711f5f886c1a1e5b603cdefe575e99dc910ff7280018d47b477c1b8982761a3f1f80c8aad2866", + "30aefd8c5c8522e3dd871f947d7d1f3633458117090e4962fe9db77b7a1c65ea623ef3cd54240969d4cc17b1ad6376c1cb964f92dca9bc618cf9d1748d857532c8b488b1a3b263ecff0033b6df65e368e085c9af106e112c4dbb92aa2a039f4d42486e09adc7310abc7452fbf3292a6d6b7eb1b5e3efd37415cc851d1b2646ea44ed471f6ff6021c4c8c774a9b69df9f415597d436f4383f47024a0a16174295f66adc983daa5e1a501270ae55a89baec57edb333460eac3df9ad9973523de127db6832e62fdd30a50593f8c7ba34c1955be53595df673659233003454181a38b3a0cfaaa85b4586b0763420b298c97fa02d4e49cccf4a6f3f79fea4d4d0647ff3046602a57ad51e71b323f3baf23ad34d081872a1caabb64901067656c806aa58d7eec3ed4c5558339d2cebe45ef06ce4b78dbb5f62afb41723c5d6e2c764722d9372d9c03f6f8616f99a61f2812212331053502c6378c0681c83da319211cffe3c0ae1a628635a74ab31eb4ea6647622aaff", + "04968c606b5c6ea760383e00bcb82097ad5cb2e2706f8e847e02faf937a08b970a", + "218f8a0be849888e8238b4b6394c3c6e758fc708ebc77cf3060d08750a45cc90b99d911bcaa810c86b08151f76520d25326907c492f5ba5a4c9583906d0c811caec2ba764516959c347841e785dbf806bad4a009f081262ecf76860fbe0ac706aae618bb9ef96037b7561a8baaf11a8a8b579d09c462cdd796f75cd0663592fe75fe2e3f10b29b234dc9eb142c24782d793dc4044d8fbd6850fbfc56a09095814c3f0a6712709126246fa12102e995936cb5f5739f8f503de6ae94aa7ebf3c762d820864d3d6af57f70d90ba9d83691a38ded1867fa95b6d6c518b1d0fe224039744a1e8f4345173e5986b08be9928ab0c1f3452d0b821378bf19a62a06c8f761db59175df9b56da33eec0d153e7540b64ea60606e994c8b67fa8713dce8a733dd7b2f3924dc41e9dec3c1053170dd7a3c052e909b97bc74557dd4e408d82afa613ad7670c5b33e95fe37cb5a5061c045459ae9cbb22293b28cb77983f350a4050a32be5dc542d73705abfd78da2f642011170" + }, + { /* i=8058 cDividendBits=684 cDivisorBits=282 */ + "0b4d5d115954108fa17cd77498284747b12fb70b453e1c944ed9efb2f39d815abbf328cf1ff066a85ad8b08a52731f9df74d829b7acb43a6744275c6f1bc5f38d25e983919c6d8bbd614dc0bb341a01d35b827ce54ab", + "0245f6d39062da144baac97134ea00ab29a295da264bb5b9c365f8cca15624de7e1da588", + "04f8c2b77978c8a8bf2a4f91b43f56b16c843a23940ce3feb89e27d0d8afe7046f74abfba94a8823600210f32b138a979e4084", + "b735cec1098efc5ecf7ae3463393a33ee0cb1b52ae221ed367bf97d3a8ed385532fa8b" + }, + { /* i=8059 cDividendBits=15 cDivisorBits=9 */ + "5b27", + "018e", + "3a", + "fb" + }, + { /* i=8060 cDividendBits=2448 cDivisorBits=591 */ + "37c3ba93f343920a38791c4c0844157202bec64933de2ae641fc193f3ab0d3d8a76361dbbd18afaea6b4558a91fa0779d3d6d9125652eb13b28a782d7d02b8f57af24a1822a80bb8491d84e15aed3fbc5141cacab2b35bcf434e45f39e8cd913c75b88bb9711cd3cb61e296aae3c23385e922a993acdc8cff6b30a096f7fc57caafad263bf0047c7e65f8167cff1541635b222a769903c14961bfa84101fc23f5cfd7838aee457e9c2fec7668098c2f2710bdfc6f9fd12a67ed90d2cd4df8b4ac2644ed574ade2738d6a8271497d13c973f8f9bec0d4858d41e7b40ec90b492d8c2264f5efdfc88097b2ad45a31c214875f40cede4464664588e55f30a85603c9f22b384379b3daf045e04314f2c42df9a0595a6ce5960e0666d026fa7ed3834cdfe5e47111645efee6c015efd25d6ba5ab0", + "50c3a2fcd0a9d78fb97b928f92023b78e17dc6903715a94ecb50c7ee15b2590ad99df8535d2061c8a9bb716865b269a8794405945caae50c91015862dab2acf1af3f70579438aa16dc8b", + "b0c213de3760ce1e8b968ae7f142f2aaf1628f067558d3e5fc7fff6aa2645529a7c267303953c2bb236a4883172f72514cb3cdd0b34a3a9114b1f5750a89c8d2ae1ff58adc367a1cae0a5abb047a885435338c2a08ac0000a128f4745c2fc6a64b1e3a5aa2a3e78f4ef4bd95e418dbe2d7a18786222369386b5c2d6ee688781cb1b1c5a8312b8e76223bce89f5aa2c1623820f41b02565d11655cdaca13444c19e67a9c236150a7b952ece841d8ce95adf9e27aafb78e0b82c31abf446db4ba93d23b6f08942390135fd174442ca86b858969cce2741ac42b56fbd0a9ac26310d0a7e56aea233778", + "46d3bf28a62948be5452b4d59e5bf39b682707f687cf8c0bb065282885b01e8dbb5ce7274dbdfb536a645f2e176ccf201493fffed3983af96fcf14e7c9e186919cafc8d486c5fda01c88" + }, + { /* i=8061 cDividendBits=271 cDivisorBits=164 */ + "2853bc391fae506f18355e736f48ae16b6e7704197a1cb8eb61ba66d4d3e05a623dc", + "087effa78ca3b63997d1d645bef21fe53016fea144", + "04bf1dc324c75d2c6f0344bdf825", + "037873b73ed203e226ecf582c8ae959a64e76af508" + }, + { /* i=8062 cDividendBits=1322 cDivisorBits=675 */ + "02acf4a3deb0bbe0861be41ab1871299de12b4c044dcb16dd8887d4a061389fff04228ff918b2ac82c8aab1d710a383a437170ffb4f07399a69b81afaf62f601f20637c0633ed907878f543516f5d46fb96faefd0450ff9e7891ccdfd5e1d672a814a55abf4c988aa6a7c43a869cdd4cecb7a7ec3fb27f27787ce355e71c7d251505cd3aac01cf7c62a08af3e809a308f7b1100b8265fc9ee2973bf0fe6753a60d3710d71c2c", + "04177cb0fc9a8091f59fd4fbf8106048044416684b91fd04a6e1cebced8a5a0e0f81140cd4767180b1696d99ba571527c84249dc5fd9e6e4258305605aae0b27ae1fd05057c874e120f01c79b4b0d1874dee46cbef", + "a7663ad563d2d9107d9a6c75a05bc5880c19c3b4cd50548aa0dc10e3e68b36c2a9bdc584b2fe48ed567cb78722ce13c1fc29aa8d0d72513d5396841d463f86e4da80a577daffadaab0f9f3029602979713", + "01cc4d460431de8031afc7c482f0dbacb1ece486ffe450839cfa7b3cfd7d37cb131929eb0133194d86cf2138d5e4c3ff09843e2a9d5f293b95df72bced09d2f414c475071a68ad75b63be89ba7fc85957e7753006f" + }, + { /* i=8063 cDividendBits=2918 cDivisorBits=1305 */ + "2054424753a28732245b729135388ccb23a818684932cc8f17fc5758869f2bdbfc7bd83b845b203c6e8165cc9e710e60132f3e2f34dc3576581e38df411eaa7f10637bc2c91651e5999adfc01d043fe3e11266302e610a60a04dd9284d8c8f7695f3ada7a556b374595699e4a5c85e5ffe6ac49b80c076b097038fad81763398c5a667c6e2ae6700e5791167cd1ff0c7068160e61598902e2aaaa2a6f21bb8907fffb73f0c17924d69b39f91a643b054f13cac49b6e7eb8b0f9d442e76ee869f196f45bfb9be0b451cf9690fe6c52e7947eb268035a4c9b1730fce712128d77fe65b020bca7f704a2d4486653ef8c4358f86c989c4954964e9b5eed13f37fc866d382ffb9a7c5b524d25149035d535f99d4ca0e07c8c1f127bf6f2f21dc58c9b426de7edff4a2dc48683dd21338727481cc8707aa98b499687b51b1320b48dfb008d37faf780eade421e6cb633f8aa6e6d5f7becd8293b5fb91ae9f5c846062dfd721a59688f1f4e5b7e235f61", + "f13e73c164c1dd5612b18364b9969a8679325203bd2b7abef3ff88481b5f2f41ce8d8f6849244e6250e3f7b10c97c2f8ed4336c352e0c1cb372b7ca1ee32038e586f00d329219b2508a7b51f74ef644871e9085b2bede4e70991a20495d324200522120df4b3630784d46efad1344b09dd2e71b727e48f4b81285fa521f0574e1f575d0b61779d66b87035a03bc5a4f0240afcac9146881c55ddebd7341b16b10dd4ab", + "224e7d1627baf726571e1f25ea4faafd41c69c7524203b37337d2a766118e8a82c18ccea297209a7e7db231b5456ec8a003c10cfa7a1caf7c4f39eaeb5e6eb00f6407ff7f66338f8c1a1379f791e5765a59b04d87366a7074941f2eef3a9c3be51087accfc98c81d10f8f84418f7d429bd0b2c8ea59f139a95a31acce7bea35e284bc40a5d05b77ef37109f3e822824dff24ba2fd378d5b24c970922191a89b7b83e88dcc4a6c3231b116c819805fa0af4f1d0388b573adf85d0a040a69af243f04a573e9bfa4295981a", + "c17f98502178a0cc33dc980c7ef6d9249a5e9a1230a359510018dc2bffd9836ae0bbbcf16c7966a9904d7d9d17f34f8e3f04547f81153d5289f1d146399fe018ce4d9ebf6718d9dc72f726f58b4e7c434cd9fb74afa734a037e1e761044f3eb3a1ff2ba4dcc6ad9a9a8c262db36b4105fb04e84c578ea3a7dcc41b85ec7ee93ad92140076bf7bdb945f30c5ccbc4e1010d36afaca6e5a42ec987f440353f0e6eef3e03" + }, + { /* i=8064 cDividendBits=857 cDivisorBits=856 */ + "df245062c0b6741d8d7b08317e39c8bf21f3f7fc69236f321c342939c9c1d196e68cb6f36f4c67d0ef157c23cfb6fcd56179f36bee610a5b4d9e1cb5dd1764736a7bc0fd1fdcc39c02321339155dd95e0a836472f85f1bd35a742564e48d1330dfacb5d21e7e3c1676d565", + "3583aaf4d32c6177562e1f9086b537643bd58a139b1fa8ae444f0967bd6012b64dcff6dea879b03d1cd9d7342b287fd3d6097bd241c7539878791d28d7e5392c7f6a4f8c7e0240892c48a80ea7266bb363f2c9ddb299202b0f1de051f1838ae917a00f921d1da49757d052", + "04", + "0915a48f7404ee4034c289ef6364eb2e329dcfadfca4cc790af8039ad44186bdaf4cdb78cd65a6dc7bae1f532314fd8609540422e743bbf96bb9a8127d827fc16cd282cb27d3c177510f72fe78c42a907ab83cfc2dfa9b271dfca41d1e7ee78c812c7789aa07a9b917941d" + }, + { /* i=8065 cDividendBits=3801 cDivisorBits=56 */ + "2a2db19075599212690c7fda7fc03ac6eebe2c7ed829d0197ec9792bca98e03f90d2bd50d25ce78b2fb4d7b48c402bd5bbe962864343ffd64e9f336eb795a54606be9446e61d3f174d62b8ef6fcdc0c94ea9af2fbeb77e9713d1243030bf58d11d9f79ee08ff6efd55f3628e2fe295c6d80301bff321077ffc4a8918d68d2c81095baf0af328f17b10ed3f967bccdc3ab41224e4d8c94fd3a289b3aa99f05fcc42ade98f6341b4aa6f0659b37849bbc922840081fc2a605ba3ed6d83a4d6254bd1c25f5e4d8d2a56642f86c5fd0dccb1512bc1fdc848ca5b468828a1210b2238d10c022eb6e2206e6329fb1823557f0fbf67b5316674b0d6b492d3efe36bd38056cc7c2b6a4fc156d7337f7073ef2fe6f18c4af0eeaa8ad4f0ef567f7e5a0e16e7d89fbf4e3fa22077224b63c0eaff6ff72b0e05e6ee4480dae8bce5eab38c8149a0b4ca97c4fe2012ef3da4b7d216fcdc75493b143330a6020376ef061916d9fa3c95c2b67d7138b6a773d4dbe25745a8e2e63c0da0ce4c8844046c6db66832060731ea6bc550bb7abe9676003b1306dfd354bddaf6f2b0431bf0a6b23600c95c5b9faaad834a012d65c2ee18d81b939306d498255e78c257d4f9da07dd8e10c07899b04be15152ef0026fb75617fed55e29ee8b712dfda98f62a", + "2bd5bdb8313114", + "f6538611eea1fc0bbf9bc146707326f45254b4aa3f96a21d3f43fa5bdcdbefe852cc7bcef28a15184d26d98894f3c8fde4a8f939ab467f3d97a8876af85cdac0d90a409df483ff8f4a9970a1bf325d8b19a9d910df415a7d2f6360db02e6b8bd17fbe22a27d68572a3b092ec42d5848785a8e64519f0aa3e9cdc4f368eff6314920d60ebc5931368cb788b99c25403e36b871b8f28825f57908b2303edc66f52d0284753877d22e16121b122953bf3aaf5a9ba2aa966c35bc0a9f1e4edb22a8cbe596ddc9a4fc15c244f09cd6d8134b29f28bd847d7dcc3e37cdaa5ce5d61993c014d088390b6b2ab89b346f165e1945efd2be1611fab098fb4bba16fbdc4d5b8352acab65d7e369863cf9bbf822d4574e1ff57080ca8fc59d47a3102ebd1a35849240a222ca4c9817333cd0cfe266a8ebb8820852dcca8839f1c7a9faa0c7762bf130d609e14afaa357535ca2c34389050f89551fd367b282333c00f40929290f03e973271970096b7e201aff9c03f0033d34889cb100c804c6123d79e281b5ce6e20c563ae6f0be886b105d8b87a10ce952c327619593979eb61379ecace48c52400ea77a4bc3c01783a32714075efc0196e5361952dacac6ddcf256793dc70588be79fcfa8b05c95682370a82d9715ae625cd", + "0b190d1f24c526" + }, + { /* i=8066 cDividendBits=3245 cDivisorBits=1574 */ + "1d9d055b7e10c86eb58045626fc3ad1a598d7d114689dee5b562f14bb172a771678b4df8d97abd484d644e7561ff8a94fa1fab57ca30c3f7d11a5aac9ff89a11a98b333c0ed2b217ad3a8c9535f5ee8a9870a19b4809d8b5f5ddc2537ed552028fa6ccacba51cef74f1ae234a2a1f41e029a3087b8c81e0b4ff53a225a04b9c35fbf4878a1e46e2537136edcc893aa1e0a85d3b7056a8005bf07c15d6dfd4d1500d3578b0216d789ab9daaab7e9cb7821990c833c47666d4954f05061cd4917fa79e16d85eb9fa425f700990a3606a366447e36b8b1ea7ff0e80b091863bf1422e2040c3c56e0f2c225f54d15422b202c84d1c8a984ef4e833ccc53c14ed24a52c4deaee8813d738a625edcb43f37a003598301c429e0091fcf38bc4e85f67e1ed6ca67874b90cf3252123f1f8ffbaf4cc559b6895fa3e954f6e40f4ca8923bf56fd589edfae2cc13d60c8968177fc826a79a550b29787af33b95e63152c87988a2b1dfa69166c12db47c88f81c2a3bddd70f66025bfbf04ead51d95b5b8b305236299b4c577d45c877c335056818d5ffd1867686b91", + "2183c808033ca2a115e933ea5c1dfe24eedbc29be45c7f037d286c18afbff1a46e75253f83d436babbec091d18662edd2b481d465ffe1403164f657c8039037ccb4873164d99fdf6900b2ffe6480072dcd096624b6c51a1e103847620845773d2f10c324a34728e3fbc3e6b4940cce8eb167efdddb741ac78f0e5646ebf58e793eaa444235466a701498906a852d9ff26839d5c13968207a01078bc9e1db327f2189e8f162b71f35c343340caa8a010195c00a264c0b576afab3faa5826ab26330fb4f96d9", + "e2330b906a184c0b52bf3bbbcd881f1eabdc16faf68a5a9b17a19aa1ea6f148004435819f70c8587a316624344017492763d7a228185f2f2d9a4e5bf79be3d92cba3a2cce051b7701388008232781f60488efdd125a32614a745bec6cebae8d5d045c03c8d7a8cdadd0bdb0907589513fa0c1a50ebd0e220b60aa18b9dcd6e21f39800f751bdab8475b61ac162b555d4028715a1c0d60b54cd3d249e4518a2c69fd9c33ad6f3bcac39bc89e28db9384a566205636aade954fc5988e7dd9b254bf5d0748d3a0b89fcd5abeb5ce3d8a73db8", + "1265a10973e2fa722bf7eb50ccdef13b82423770ad3997474ea7190077032dfdbd30c5ac44e1a5a23afc2a6dda77a6aa44f74bdcc3c88a0cf84fadf476aadc919f104ff223e9e114aa1c99b58b26f9d8f42b338449099ac71ec181e72175de913675041efb6a950be9fca26560443feef0bd17356718576db7b116026d21aa2dc1dbee5d4bbc46faa920dedd41d88573da80fd8503c1ce98af5f98fe145a051e3672daa0a95e00fb31d0510079fc40106e06c8961bd064ece01f1fa629748b2f644fb34a99" + }, + { /* i=8067 cDividendBits=1145 cDivisorBits=1091 */ + "01ac8e65b9c4dbdceffcf466e718a171630b3f9448582637c6dae05aca64577322ea727d95eab302289c8e1fb7d34a2fca099eb35c869cac85b5a35883fb3563a52fa67aab97ae99683c5f926a487f513a3716af64dec2c2842a95e62a71d583f9c381c2df4fa7576355299d80054ac95090fca52ced443a269d0a215dae43340e399a556b27b956d430e9e7b2b808b8", + "05a6b874d55592d91273e07e5d400b844c73fd2e3bc475200475ac394706b2d71df36d4baad4b573a7db375e08ec52432bb46491e1255e0b1bb606486345914af4bceede924d71d8afb9f23a9cdd31bfea057622dc1098513bafcf2366b96e994573a433ec03f7f94e5c25b674676d20b4126a2755988f75c89eff8f2f2adbcb80aa2dcbd90f106c9e", + "4bd5779faaa7a5", + "0482ca3efaabce36634f6332a90923f4e0e169d092f47200e2db54707de36d59c7e17fbf49ad36e9f26a5fba915c89772310edf855726e910f502df9217e1903f2ef22ee350c0bb5f692f0ac1d896c3c88daf601eca69ce3611a7def56b36c1c3076c7004049d9e8ab6801923e5c175c79f67a2e9923a7cd8f10fa10cd6e1c672198e6c65d035af4e2" + }, + { /* i=8068 cDividendBits=2977 cDivisorBits=2497 */ + "015875b62f85caf7d1f34fdf0fc24455b413974a6a32c20282fe6cbfdce30d03e5cc0d6a27f6989ffec21a8e6cbfd66dd4787ad3a49ca6441a093f0a6bd1effe7cb5558d51beab6932f3bfd6136e1f43dd8bd2e61fdf972f8eb7453b9374a51c7250a4126547f70be949c8c17789084541e080d98776404d9b1095a79bac0bc1035507788d656a59acdeba5e2d4419b0f84cb0b173f7109a1c65703bdaa11b851fa79a0d737623f2300383f691cd16cc23fca188c017ad07c4ff0884392ba1d97a4b8697940030573edae19e5fe55ce8955c7a43dbc4cfc5ddf13d38ed106d2a10a275091f397207b9b2c3e34c849007248f74eaaae2ad732d41ddd7dfe181ccce8a60bf6614356d0b4cc1c9e6ac13bf00d9f2b5f34af091a834f0dbc217b95e8046aa1011af3a3ec5e2f336451984398a7b6215b727dbb5c5a4e3ce2270cd112a9cba5635a20ae0e91f4367d63684c186fa0ed60131b640c0a7312c12781e6ee0b0b5617110e4adb5377c8969993544a76764e564", + "687b9458f58b4ce1d647c87138087fa66ede098f876330ced87090c5bc4826539d8928e1768ceada4a9c6ce8a9d7d955b92fa211eced4e341abdc12c9cef8b39e978ecb9a1ecdfa8e2fbbe7c955690e93fcf59c733c56763e7143bcdaba4fae50a1d02132d12c7dbb755e1fab25f4e3e7045556d027cf86c657243905a505d5bbeb5f04101a637ad46b7d4f9e8000af6b44f0ad7ff9771619a5d35fe67789ea991cd7c839ab724b37d091d881b0f5309841225e39c1a838d9c31aff9ce9ad7f4f8e4a6d0ce45a76aef84f7807b19b05154cd5a85718f346f5e252b7ca23e5a0f11256e2a421c8e2e3cb601f638e1a66ddc6d98dbf4e3e35882c2acfb35a5187b580f9fc9ba68e107d328c4c261fe43b84a5b37b23768fb1cd2055e595e172bb20ffee2900fbb72a82c1aba2240b4f5cac531bfbf2c4499b5", + "034bfbcca0dddd0c6171a99c5f3e5bccd190fceb493c8037ba61cbbe229170291971496f2336d2024a860710ad4d973a03bdfe94aa8a2c66929d5a8c83", + "18de743a6ed69609666aa13b62dc2ec90e07439cd5e50cdafbd84723e5c892020e7da9d4ca497810f9492fddc042dcb3a31b40f01892947bce46ccd6547a669512b82eb55ce9e9408c688b990586be6b5b9ab2f32af01a2d85581a5d95bcb731c654f1ed9c5ed3fad11119a188fa465404899bc431cc7887617a9c6a3ca0e63cb3d3946aa9505df301a31f999685ce6ebfc6eef748a244ee9bd1e837f92a402f128f0c809285c5e783122d560af5e2fb7a6745c9ae9c07eeaf5dd74c7080d983045597c02715e44364de73667cfb0339dd0f84b7e7efeabf292680333936b19b9d78a9c8e6025ca87aee467afda0364582f1eeea7c053640f3441767ee4a80c4ddfab325578f2da13a2d5f0b8586777645b2016c698fdd84bece3f072aba553a28e10b13eeaf0cf09dc50f19e3c03537430e3002319941c5" + }, + { /* i=8069 cDividendBits=2711 cDivisorBits=1297 */ + "1da96aefa466cc49b9a83cf4e22ec57104ed80202787210264e78150bbcf71e08cd163fd44b7c97444db82e5e6ac70d4190e56a2f9a218836e1113f5c1436b06e46926f9aae6e7e3acd0f330dfbc1294735556628347069294722ce04223f03f0b854c083a4219c1a51debae6d31121fa7c19ec8862058138254f1f51440696f4ddc437d56d174b8af709b07a44372c7d510ce40649c1af76ea80a51e0221147238ff464494a5b3a050e34ea34af2cdb421c3a819c4ca4ed4c5c2742491a7d9b97bee9b6cc41d1575461dece098d9dd3ba9c39361d2d07576397993a7b099d6966cf4c6cfc9cd77e7d410b5ae8501f07b9012891d9fef46b4197cf8d0797aa81521aae3962e832056aa53e6d2698bae43b6a8c09cdf853041d0e909f790022763a5c25000fd34b938049b40ee73af6b647983547d25b7a8ddb7db43b86859940efa2ef13346845c2a3ad180735780be75a89b0", + "9385ff6c1ceeb374d76f31b84000223cdcbea78fc80083808d1954ba811f8993f23a11acbbbcd01f4daf01a01478e07f728fc5c4f0fe723394fc765202b71cd3cbe2fb6e79bde4fc5751bd91b33d57addb88c82094ce0a24fd3c7c4b8c9aa2dcf1a457055e6f001e2b6a817cac29d424745497185f198bebed9f71b2f4701d3e6f5daacdc530eba6523b5e8a4af06b51ef31c271f7c7be7a4fd4ac9500e3f9695f57", + "3378fdc5bc227dc847018bf94c73a1af3dde42d3f644da1178d04b727ec518acbbfae9fe5d4bdeee460122cc6133838716e36287fddbea0d13c1a5d48e3d3cb3d2161cf9bbc2fe6a42b0d5cab3bcd827d75f6a4318d889ebefa62fd97dbdb88664d0173abd7e43d21bb5622c217d70d4bda66485947704e1bedc06a7ba3127bd7c4e9a8ae05f8d4bc344511859d4a66d3dc8940f44910efa4e35a9fc9dce6d3947a2384ddcedc7c0417eaab11532d066c3", + "01b1c7ddca3a9712ef749afa5a050019138cb274d1e90f8321717c2488e0124681396f4e70eefdfe9ef4591a002779456a9604362cb4f7e9a0b5557b1c4674eb80a8cc289c24c6815e6bcf8061beca18054d28c2898345b86d31ce13b6aa0f6353e96e27e2c01e2fca04e7d3cff10557abeb38977d28f96882f880ceed96b7fbe1a1c2bbd0a358fd4c6014bd762a5337fb6f13e528388c4929f58113c1a57b6a406b" + }, + { /* i=8070 cDividendBits=3190 cDivisorBits=2210 */ + "344d887b48ad176f22b9cf27b864f5a092dec5e5c49d9b2c780ae78ac7b191d82cd0be84a9e01aeca531d85148a3697a6d6394ce1b378ba30bf21010c680585e1fc290cc1e1277e8b0148c4a101b7f3747507eb7c2cc80f8766bf226bf39dce04041072d252ece5ecfd38adbec682b378b23aa756228afd11f619d347df34f7a64ea419ed3aa23b71662bcbe7222b02893f6472dc980bdf900247e1251e4202c21ccc19309d74b2fd5a141eb1b6b8f6d95b8c9acec56e7710101b7897c14684941180db80287291ec8536e1f61f9312a9eaee77cebb534b9a20ddd58c636837110d74927bac83b60e43db4b88e3038d7e10b841d707aeb681cbefbc1c8d3cc775ea2776350b29b5c142986f0e91642cabbc8f61909d478aeffc380b9641ff6465c17a7671929f85463ccbe76dfba0d7b5f4f4c7276ec888ed41f513f5c65c0c64238816f1cbd065be6b2e48d2ad3fc87c76ed713194e7a14b2c40b8eff98a415c0e3ec634a7534a103e45e93fe6b363d3a600bd30289e37cb9a587c34250b5955e649cff2c3d53bc665f9399fe2db5", + "014241d00599aeb4f46f054179ee10c3c7bb487ebbd3f7a955a9369e3e821c0b1e6efa39af9e69a3755623ac7fcc794b2ab7b6c68ab04359a731f0013f1e90f3d08799121ab1957f38b9f7aa999c83477329e9beba7bae992aefea45cef6bdccfdbcbcbeed959654924cb3480e63f879160d58cb6a3865c8f307c9cf2021278496dc5fdca8fa86c3be71b527cf4a86e28123eac1b672103ca1044abbf6aa9cdbfea3481b557cbbd0367202255639a901c611f2a684dc2e0385777d2d02dea903683f25362c179194e7c771d05720e0c4cb5ae2c1e5f58d80989d61b40440ea1a4ce8fa95c5c802f851f120534c1cd6f62972a09fed532699c28ad8dddb29904fffe738b61699485ed1d28195e15a9644e251f9887b", + "298c9a405fa7097aab184d85b1ae9a639a2b5109fbfcb366a29ca708bd1f1469dfcefced824e13b978f10c0f0a0acf18e10b2c8a9d317ad4f8f4a89b91ee763ebb9b4794b6028cc32c7b0579bc1b361c1ec4e513a067f70f94bd7b1457f5ebd520265a74ffc9ff69477ecd03083683bb67a2a8db90daad4b638cf4", + "64d66cbbdb5a9f1f00b151967fd38254d367ce4ed9957140dc959d64679926be17a925b252abebeb8452d8f022f5815735ebad54202bb121e01a42b085edc87ee7484aa83bca0feac036cc836ea5f1ebdafebf780fd2f08164560e0c74b4902bf7bb4846d51136e060fd895fe284377c7aa3493df86ac9af2cd05efde7c528133bcef7f4498691b1a58919848ce46e4763ffcbfaac48ed61acbd173e9ba0f74ed40075dba8725b0b1b84aced9256d045e3e9008d3c0670a4e4fe17eddc5c71e08963f1e724ce0775d7f3bad30ef8d5398a5113d9a13c6d4c686be20d37ffd0e039d87a0102d500b0cd002b3480ba726214ff8680ff895d6e7930234fdbeba68798ed6b6d34cbbd2a81c1d51e63ed2b6e30f3d479" + }, + { /* i=8071 cDividendBits=463 cDivisorBits=251 */ + "3b054864d7043f3b4058e218442eda3b59de945deaba27eec3326c4017c5088f02121bb08358299a3bed544002de9662d78f6304aa8ec8f22ebd", + "070567301ccd91640d6e5513bfc570094060635c1e1fbd45b7b2eb71bdb0a968", + "0867fb02c3b300011dc9531bb615e5c96eecae041ee61bf554d1d9", + "05c695a2ce9ea26c50c1dcca56e1bb647d9a3b7795a5f2ff4a419d37a5c4ad95" + }, + { /* i=8072 cDividendBits=4 cDivisorBits=2 */ + "01", + "01", + "01", + "00" + }, + { /* i=8073 cDividendBits=1087 cDivisorBits=897 */ + "44239a55b76ff0524c7024b86a39c99785f504452027bcb76cd47374ced20964fad10279577a29f28355d74522ec68f48fae2236661264033593177ca4419a8a63052fc56b8b4077987faf9f019dc73ce0d0f354776e9ed2ad4f15688d79f160a4db73991975562ef19c534e74395f5efacbf78ac761e0aa306cc0b8ac115864d4e428bfbbd7cd8a", + "01b5d79fea8f7e5cb273082d54fbae6624e179240ce1f9f85e2b3b88a93a75b0d1d85741fc63249f66fe89b7317db685709747f198ec558afdde0a5e4c10cb86e763100238726496d0e1dfe6eb36afb7642455c14bc3908d609941c097770af47cb1bb449cfc09fb75195f294569de5603", + "27d7053162ebe2fcce9b815cd63f731a1ff94887f9f15bdf", + "4e6049796ace2fd65a642725decf271c38e50a1b1530c69932d0ea4d349db26a4190fd4cca69f8b7768b67ccd6fe43fe54a103eea2fbfb014c8236acec6dc047af4deee9e6a21ebac85e14af35d390838cfaf766a5102f24997232103ba55ab7f42bc0a7f4fcf74926a6691996c4cfed" + }, + { /* i=8074 cDividendBits=474 cDivisorBits=196 */ + "01535cd1e997d8adb11de3e37e4c7e1d8e0be1d88bce48ab165fdd3357851741aec7e7a5c1ffefec305cb49cd951fe08ce037e397ff90373bc896a87", + "07840d9d6351867a214f832e48713088ed6ecde03b14dabcc9", + "2d272c98743027e685153dd90ba364eb3297d2b4829e6d52a40cffcd5cdbc1a5d9fc39", + "025b885a19e66d2a39399322bdd346f2de5f3dfe24329e85c6" + }, + { /* i=8075 cDividendBits=2472 cDivisorBits=1871 */ + "b568aa0dc8aae2802da694e2dc3eb824dea1466acffe26e3bb7179be7e027c96148061dac66c9ac72e6e08f38c8fb6ff3a39cc0f8065f87351529b531875638f01c092ff4d75b4cc48f9ad6d95b83237b109703e2e5e5b1f17d756d2190c94984d690507a11d5e6a98a42830875dce6851072973273c56c536d2578592803fb4aabe4e84e6ec266781ac5b126a8d3a70ad7ce8ffeafd7bd846b7c0c4a9a7d650291de4f43cbc5280e9e42e5e90fd52537046824f6c04bd56e8488014bab3afda18a6c318c8a3c5c2ec2bb3ab29e9b23a84a314cb43b3629c0fec10e19dd9ea78fc2b8b70bfedee91a8746b019b617cda3665220094cd8ce491b863420df3a86501a36b02eb0be041d65f262bf3dcf21828b4c1cb074d614e330dd853cf6588dc40f5b4c3be690f2ae0acaf0be5d780128ef83e0d49", + "226d3bc869a9903a6fbe4ded91017910b6e79118f3ea72f17eed7e32dd5e2a8a9b933f9bef5f2f5ce21fcc7a8294190654980b6d885f458aa000e92daeec8025b0796469fae0ae496daaa3406452b447f51e3c1e2c11e0ce60d75903d3ea9278b5a25f2fd027a9d4cbe92babb8d23b9be2bdd080a826b73677d7fc49f2905ac1322353cb9747d2508773813908652d271c3639a9f6233f5dcdf4b926116f0e56d20abcedefad21dfcfe0bec6659a4992d613ec120871c588aff9aed6ed30f13f19fb95504301ca78edcbaba8281ea24a8284913a93002b2f355caed5f112931b303e6933a7ab38653eca", + "0544f8f8a92d75dcc3a5530833a596078901861925f07f0924778b98d088b1817676a2e8eea19a46b9acbe3f6b5043d97c9f2ee36f6923b9373e1796e36947812e076b64fe960f660f864aa4", + "05800c4297a82012857394486abdb227bb993173f7fccda53c1a416dc812dada48db0350095f8a320b26cc0b47d904a0b31cb10b7e06a4384c2c0a58eb2ba5ae213b375cfa50158405f5c4745dc6c5afb0a29ac16660b4eaaff1e2b7a358415f4f36526b3acd34a5c44d69f3d39dc7412dcde7ada0ca193158feaa0897ef1bc7e7d6af28bb35e778c2ead65f08f3f943c7c84bcc7e48051ba7b50474a1918f9678aeb01b09d79e4ce2240897e5126b829e1a95e26951ee16789ab1ed92a49e0f901f10c1447d6b9f1c30ce2459e87fbb4f06386f6c165e0683877d0289723c7cb6971aa2dc68df7f6fe1" + }, + { /* i=8076 cDividendBits=1942 cDivisorBits=112 */ + "24bddd996933bc36cdc347a4c6f5e5c9baabe60ef4507760282b61d591bdf26513ba4c825e79cdf8fb909801f7f5871a44d925e4ee3bcc128e382bcc2fc24f6caf88ba380435368c68481d7938dfd0468d2e2ba9c30ca966975b41ad6d609e8bc6d941d5b3f69e9f619c889c4af94a10e24d804b0dae11ddaaea83860287792ac37f9adc478848bdcb63e02f8ba210abcadb3c605e8f3e51715805443af70853ffa231ec2693ec89847fcea06f81be77445a0a68f3b0b656573c60623e6a94c3232500c1c1e3d69142a2ab519a092d4945a8335dbbdd6c1dc3a13f7c3dad36543dab03abe16406c494d6b0e5507edc1bdd044e", + "81d56de2b0a07bf3c9d85ea7a6ec", + "48720b2493924c1bd06964417d654830ef4009972d90a2e3d63be6e42cd1a7bd31be28be16ddc7d8ccdea5c84fdd40ce18b57db9a9b02af92958945c988a1ea0b0f3b5805e1224d4b893a77ff6a8718f15661f25373af92cfb4992d6ce65987b15b8010498f93aed15db8f866b7723d4634b591ba791fd67b559a16c17b8eca7c29d57b220978490bbc8a5b054835ed2b757c3a77dba5c8814255151ac7b1831425e1517c42229d18326acec29aa965d77f143968c597feda41d91cf9591bb79c0cba0273c322ef7d1a362e51af62810ec24457fc71ea25baa8e027287823c77e98f665a5b", + "5259e2a556bdcb1dafd52f8db66a" + }, + { /* i=8077 cDividendBits=3565 cDivisorBits=7 */ + "1b4b2a418759ec46dcc11c63d9d9bc5552b97c71e7531892e3bd5b2ea5577468cc5704c9085ab4fbed86bca2d00f14e275262c1a0d3616982b6cbaca21db6b3363a60d618b6c3130301294d1744e206ccb1e8a98475b565997d3071591a5de2a6014963298fa31913050c8f2cc4b08d933ca415a9a64faca7b794a269efd5000c9111fcdc6a7e853f723c1ced4919af14efb68e4ac9b9ad5b94723c552c1346898d7edc9934e5558874162bf77d4948f7c9b41fc4a14cf3fce55b57396ba788652419c2c793935bafc69902fd313b5928842ee22211dd4e92b5bf675162f32bd71cdba8396934020071e85979eab138863dcceaa0b133bce529f5a48b698fc744dd874e44fc13fb7c54eb73d8c5a3a94c738e353fa6735c465f8450e6f9761fa47bfd301667037b859033bea042cda6b000fb77e43f08ffe271b0caff3529963ea39277d25914c9ae79269d75c6cb4b5d09d5bf62a0e23de7f3892d0fd8ea3aec0882ea0202ed4f8d7e9c6377bf31e93aee75548e654b8d4848a0c64def56be73d6890190f9230924329ce78e0f7e389820ef48c6cace948ba1f96036619dd1d66070d8c54d9ea04a2630bbc07e6c5a6760271e347469ee6f1d02f8fc974", + "74", + "3c3bf352d26e2cbfb2376acab4a2ba1d671dc33056c90a180840c93acdfecbf01b3ba0a12ceb7dc20c322d8a9f06ccfc989adcea0b8031dd1062b6b541e43c077acf904a078daa58b0b63f99474b5062dabefce621e40e038406ae87e05392053df8779bcd30faa1851c370f00a597f0ff896417666343f3d2b365d9a57e7b97cd6395a2d0e5502c0fc1abb6cc4a29cdec192e1bf8838aab873be502eb98ba47f034cefaa63149973c265e571a1bc371a03c27b130bb2a7b2876879dfd31973a16a273245af9d7ae505bb9caa5afe8fcc2c8ac6ea15c517556dc9b7dfbfe3b03301e4c2b3aa611ee67fcbce4ad9cdba895c3fd0d563c1a0df421e1baf413d4dd5c594896c1aa7af6aa9c0ffa96d8c7e73c139d69e1fe41b16e47374bff191ed8e4f6c8d6f3b9dc126c2a7291b0f03a4d3dedb842cae6c230e38b24d3c0b649b05d2eaf6c7637d5328c4bf2688559d56defb38d281630dc669d2d6751a25545eb973e31ee9f4cded5b9300db83dae9bc181fe873fc759de858e6e73a0d19060e3d6f86a25a6c70a16a5e0ad2e13caca0353fdb1c324cd0ba95422658bea276c64309cce737d76fba04be36958580ef1fc9a80fb56aef420e33023b86975", + "70" + }, + { /* i=8078 cDividendBits=3913 cDivisorBits=3830 */ + "01d99c31b9ae7ea6af0ff826b651402af87b69390ded381027a5d686d0932b66b9949ee8768eb46b1f588f6b98c2b1d481b66c4be5289b5d5d6fcdb92e32bda27739f9627b4ef4c4423d0c23828e6815c58724afbf5d0d37703171a4669a187c059f457ca74e0a52e60b07319196379d7b127418934dc5e1d756d3704f95a6493b1ba13d7b427755a2250a51b786556d10cdc13348aea4caef62104e6aa9dd6aad630de901c22a7339dff329bdf4d68ea2f4d5ccd1e9b8ab58c4cecbc922355c837cf11d2cea54caf92b429dd67d0c06cde5d023e0d1752ba28cbf5867288deaf01cc53c09d75db1561833cfb3f01431fe209fa06c84082cd759c0220b7aebb9536ef41ccaa6c9e8e0d52d66444aed64b7a30e13ebac6949b891af3fbf195d504a3dc144d080a3e16e233bf2aa8ff3a71e75983104dd9608687ea5c7226983d5e0cc9d5a68f714744db474eaeae6e37450b4817d413ab9bf29d87fa5358fd4a5e79a07fcceb8307498a4f32ea89ef74e3db2677f9484fb7b8d534fe2bfd30a481f9bed7c2b9df3f65b09cd83187381e7f1ed8a8114cf9c110105a13cd26b0f54b52cc9d2a07f463d34183f23bff40a8afb3bca78cb06a8bd1373ea9929804fbc6a01fb16301082478a8438197cfbc4eb9cdc7efdd11f0b597a5e2e78ed179dfe77e8b130e89ccab34b10", + "0ddda7d35caa3c6bdd02adee3f309170c94012d28c6c7a54f5ff409a5b523cb155489214782607fc7472de359e6b48fbf23d6ca4d7e941a48f6d0235ee2462fe50d68cede54d328cde12dc5c18fff7a0c099c6ad8a0e07e4cd1bca3b8162cae585a20f3ba98cde6a1d35b606066af3975922d92fce7065584b5c9da0d0389a8f2e93edbdf65d4aa38c84f4429706541c5d955ae8973442b9363f61d06183a1b7a61decb09e77ef5bca69a778d1c8ca5671d62c43ef63492dee7ea302ebbc7af29098c583fb5ba6cd4cba31d8b9cc6af9fa43c37ffc3a1b5e8cba96cb9e3c7f63ae509e3b2d411df635c0509c7e739e5d3404523e839cb2a8ba222d3c4557dd1c2ee202ff432cbba0e621701c9012518fad57fc24d70859544c5e85d13c09eaf7054a97ae53a324fcab9b4d4aa28c8d7cdb4a95143bb15853c13bd6f7ce07386147e2152a928280f6fbc77e39efc36c6e5bff96a4fd740c7188af331b0459c164a558e0bbfaeecbdb0698af615c5f72c9d64d92ca45871b35284dfa4e06a204bb995a2220d37976e1113c329915aaf0fb4377e563d18abfc85496085f43c619aec899bbb4d0cc45753347675ab87b3a7dfa0bd8e7361a9acf14b5144d567076dfdae906608dcbba5f23fd6167a84c76074504a8c8fda527dc1304310d4cc5fe", + "2228177850af0c254f11b0", + "06e991491d873dceeb10ed3f9694525d512540aef2a7e90f990dcef12a55319e8b70d4708149f55fd3221984430fa63050e579db399d574960b1d9c8efbd37aded7189b8e3b72272d769f8e327b9401437484e0c6cbef34dad7ec44577bab0ef8da90d864a492d3fa0bfdaca79144eb62a9120c14be28fc1a610fe19c378fabb80ac029b6fe77fe0f53da1abf44b0fb6210bce48b62bd19fe46e966974439c063986bbcabd0aa4d1112c1047038a8bf579f9d616f39b6b64e6bc88e359a99632a1e3aef3195eb8273a0d58563394be6db791483f3c7161d08c6f398e7b729d2f3da3b39eefada091fe8eeaa7c9804d9a63b3ee1283b6594da8f126e6dcb5a7d6c4600aae6073eb2bfee32bd4439e4a897a471059eeb7e033dd622dc776274c4ef6273d2baec62e24a9ca570319973070fac44c3f3b2a2d86f87f8055b375f49116f223275021da6e29e14f9b847b2df45421a0778939a5d2f19062ff7e885459f737885ac7e633a7b35376e14fd158bfc8492b6de6bc78a333c5f8467246c7348d269e870bcf715db3331650904e3cef03c60880ab376bbad41496157db3f09066491c236b962196212dda95e7ee621a883cedd1977bfb9372214fe036a030a4b043e47ff996eb3e9675c63ad341495c4b58a9c2a64467b475a7cabd634e70" + }, + { /* i=8079 cDividendBits=1508 cDivisorBits=581 */ + "05292cc436e4abee2e77d320f552a52bf6454d53dfd79b72a9970e347076dbb3820b2c3929f281837305a96c7f2497f3f18f8f4e1b5919926545944a0c2a7c7e12b18fb0d01992303c906c73df08597e1f21226f9c624c64ee3ab70b9b3579118a8150ff019600a0cae8f820d969de535869f000b82fbbf5f984bb80345b45b446564b3aec5a4126f59a9275fee456ae916d5ae9c671ff896f831b22b66e65e83f230e29ad11aa0ed67a899253de5e64730023ed03aae74a67230b35dd", + "020621b8e64dc137a1085cc2462a4eef9ab320ca8cb5714a6421e03e464c9f705d95420e900715471744b79b3090958b5ef0f8c6351e2674202885bc7cb574be5a54acedc631b97af5", + "028cc5146de4916149795b7818836599c32295808bad608600e78173ca5879823310b7d76171e74f889971b243339a20357c63b476a1ea86b85d26d19eb3a2c01f04e0f9e6854a84e5967081e4b7642c1b0bc6935455ac58b3bd25749a553aea5e6451a728034b84145195fb58574cf74763ba8a65", + "012a19b7c599fb1e6d9fc87363cceab3d506028c2e0681ffe82f9013acb8d6643de5e51eed4897d5256caa364fa4903fcf5c9e1ccc157c919543415737ee11491f1f764c247393a134" + }, + { /* i=8080 cDividendBits=1588 cDivisorBits=1430 */ + "0b85e716ee9fa38d0f029ba049053632aa36867480902c4cf85468cf662302e371804a90f866bd894bb25fcf5e91ffefaa83ad32950b6d68ff81946c72f36923e8630c1d688caa09c5dd20cd1df015346fab212ed714d8d9bb6dd211039cda5714600331a89644cee276dc90d2843b67777f3793a2748084b13f785daa3c4ba3fcd0f4a3a96c3449513e628b05003151599d554e7754f858b4a4fbe77b8dd176f9a95f7541c674ab77c0e6f045222224dd5775751a5fa58aa305cfb549c08125ff6bc1f004ec19", + "39273c381e5e5993f7984499a6cce64d670af243734022fb7c980e7d422215c93e4c20fdaac697b325ec67f385c1a923ac225149dcd2e82fc6098b9256eb09461b1a41a0c3f730e8df82fe63438cd9255aec4f96c843be31b7937ef7d6492e5ef2454a3a15fda4ea773f4be070353932c49160b90aa7ffd63b77e67b2f5809344da328f4e4c147930ab2fb10bf9b246c14dd1f4d8254f0607349642425a3807442a219c0127527f5395ac8e20327c15b5eef19", + "339d28731277527c50d220ec60e4a82718b03544", + "370052b2f01b200b791172ab8d2110fb91f6d426f168ce97cfdc6563d6b0dcc2166f38e7c9539e08e6a280ebe9adb8eeda5c61be504ba1b99e7041b4c6ec4e5bea0ec45b2291a25e12a5b6c786ce2c453c55fd2091d2a6ada18f74bbcfdb6e86dfb951b548d31121d3256a5d75e33922b4f92e84b3f191c019870c2dd12d1aed5b133825e4ae1a86ef810a1d9fd96bbd984289d00616860ce3d3fd77b2dc0faf5961addfcd4477fc01e6c775cb47fd4a1d3c75" + }, + { /* i=8081 cDividendBits=3744 cDivisorBits=1646 */ + "52f64e244d973dad1c13a430dac715e2b7a4f7302a7312b23b22a16a8377e55006e167ce04e2e8ca9fcf8225bb29094de6a2c4f6121490a39dd6d9fa8e70396f83673bde72489dc9918c784d060923876058231798770f9a57ab37fe6110e7d9f7b703b37de2f1b8743ef77c28684232300d81bf95871b3af5090394dae26e15d4150af8c5a0c48997eb7951f0cdee2babce777f09642b56adaeb01942fc8545fe8e63a4a8fbc78728deb6826313b19c483ca651106c64ac5b92baec56fbde6b949642700ea7d3225cabd1848da0ad7c3efc356f197bd3bdb2272491f6d5abd3bfc0d3222d1254244aaf690915353d4c17d41dc24f0917c26ab4d4bf0983abf7967dd204735fdacfbfa35f855f6e5a110426b3bab5a97c20093c50ea83d61defc4153f76f4c0821ac32ec19ebf8871fdeff92990c199dffe856d4620108de9106f97541177fc2c92ce80af927b644f42e47e3f90d6beea64c626310842606ce34be10e015c4f339f56a1d04879ed3471e0352f15480de82d3a7c91d5dbb7118fd6c93b5fae996cd083e7d80e9a81bbf6aa8da567b04f2cfb30e6734108384ad97cb0b1daf2de8ae8401a903c1dfff936e1b629f9720e2caefd4d0db20934e391c0db0b859c775e3d1dbf3184a23b9bf1ff2338a5", + "29ea5601e0405030cf54afacabafef9ffa00105b4c814bfd78dab7336e257dc9dbb44cc0f4030dbdaa524c0877747b46ab5bef9d1ac60c03a88f4d14497a34c29a9e9b906ecd4572c8c8d7f174d2a71101989868a6bd3d7c4c12324fe76ba1838f8ae750ebef340cf4f463a085baf12b3a4f58dc6b3061087364120f38b6699f2c7c7f0b3d526513eb57663ee056a219270db543d0e84a60efd6d4c03dcd33c951cfe9f8ca3e9c0e71960251ca5a2692003355457fbdc8666dced89493859d496c918f6c77757120e0c86964b077", + "01fab1e2b8c7a796a1012f92f9d25e4c6d34740f61094b0300cfbb7397f5ad0e78de282e2366888968ba521aad23d90754e396610418312e65530f9b0f87fd0c81b5f35b07389b07f10ea0867a7760e62d4a0c8430695f9316d7ff1dc8b9338fbac394e7560028830271168498aee6236d81bb19cbf6a3b68f322775a086123059b200796c92db54abfd6b17693d051a7e5a2710bb2d849e885016d469b6406596e52235773910206e7f69637c9907d3ec254954a1ddcc898f86ac3272de1f66345407867008f1caf0c7c76cb1b76856f112f8d376a7fc0f26799dcc920bb3689344f4c8185c34f70b08ff56b0162d430a42d8e4a55f24fbf6cd969fd67a761df8d9c145e84474", + "137491bb8dd9f23c94df41d1ee867b5edc18629f14183e85fd01a1da82b2bc2924d232c339cb351dab20569affa393361e4d1bc3a61ad3cc360ea1470e8b2f8aa4be5f490699911ab183f1d5b20fa18b4ba13ea83e1eda9d1d831d5a56f0e7e6f3323065256b70070ac5fe307f2e35f26c8c1a412af227f5a66d1eed25a55f07fb836c157a24d742be198e48c0a010437f11d8f5e6b854d601e6e7520ede6b97d3b1f2b736108d51806d1de7403f2a73806baa360cd597f8e1f45654b8ff4a3cead6cb8b950eacd2f59c7fcba6b9" + }, + { /* i=8082 cDividendBits=649 cDivisorBits=469 */ + "c3a26a7fccdbf5f38b015460f2fb6de41a942a9da519a85117159a4723cf715070064164a0961f635b31a990d60aae2a56a36f7310653c637d6d1ab7e99398d6ba1be5ad42f92d24e855b7abe4d1297366", + "0a953738fd30d8b5da395bf64636ad947db6e3ad4be32338bd28ae23eb7f3876872d6efcbcff7ecbfcf564931eeac6d59f50c379d087e9b2d7dc18", + "127c66f8edfc90524ace9e488d2551485831db17daa33b", + "0364af78ff2ed76d06f64e6e8fa7faa0b61c9c0afdd62989d3360b8245274977c3ca69c11914a3cb2949e816a890a6a2434da80800fb0993d671de" + }, + { /* i=8083 cDividendBits=2895 cDivisorBits=2707 */ + "5c72c7cf19f3fc0bddab217f5a2a04e20f86b9f8e38e315cef468d07ae360e179a29091584f3c3d691fbb0720cae9c15b370b06ed7d1f1c9feecba6575c0175ae654067dae8f8ccd110e184d9474e3e96103854e05e21dec4fff3c4e35f015ef02b8567108556facfd383d35b4f92f17ebf3281bb63c9820899172b66ef37dfe32e260fc26551e37beed4782edcc657c482bd9f6d9d7bb1ef315f472f6e4840ae5cfd2f4d831a18d9343fb542b5792953b05fed0b08accc11bd26761e73ddefe4116493f68ecc096c9f5d87bbcb18cda607b99c3eef923a128e324f0416c477279f31629aad7145eab923d7739c311a6c556805f0c419ea0d7c8161c9a4ffdd09faf084651a21ea2a1c197f9a5201faffe85972a84832ac8c03f3bdd00b6b7f3951a96c276d91a80c3dafa930ed64483b6610d59ba178c498bada3be5ad97a8eb606fd19da89c4de86292eee61a0c1938e64f5e78280700cfd2d1155449c25b850f4ab312d5321453c0d", + "03d2f576111836be92a0c3946daad4a202353f4bdc9a5d8a320d98f2e03cc3588b372590782d6a3ae23dabe61e1e0b72afea2a2448d3cbeaf37a32fa4a04b8a1b27bd58896035551ce3849fea5613d6d0a8b0a06af67a349b5092df97bab3078cc4c953fa5b6ae5abc1209fc7064c028338e6b35e2940ca43a738ef3a599a6e990b86e6959f67ce6a24b361e5b962fb5620f6bf054686ec1e3e922f38430fd7598be968d927db619bfdaa94260c43e3d95bdb0fa8d17f3c71e3d05ab73038a5fa32752d7ad150ae4306ec203a4f1589e278fc3427563613876c9910cd34c179ce5fb6464da059f1a1404f23d14c8b92c5b0cd2ef06a112c51c8f8a2ddbf2ac1dda823636d24b18797085dff53a102ec8a37a1ccdb6efb3946d403b8e3e9d306d8d8067cf7e039f5856e256dd23e37ed1c3201a0678020d5c908a8527518244762a2523a42a99e0823251e879fd6cebcaaaea46", + "182ceaf92b6dd483a124f4e64849a5359c4da3ab405d6a6d", + "02aba8da541e10765c61cbc67149b383f71b33fe39cdcb7192c51ac817406b69a68cde8ffe24fb97e4601b5a88c6870fc2729855762a7698a00a6f7a7747d673ad6adbf9a01f919c9b50e4e20b5a43ef8bbd5540959f777c99fca9c5eb1ef4408934f2eccd5337d3c106a3b3c182564086e0f2aef87fdc7b904344318b5e882d3bc223d67495e53cf18342d01cafd939d59842b2bfb04387289a7d792a636ec974d3b2ddbb9e3a1379052f3f16b54d320e72fd7c1de347c6fb8ec4df34e34906fde0aa3ea2e5710da497c96013398226bafdaa39a4d072175922924a035a6723e7bbc95726a5f447d4c6e1c351e752a118ab5b0484452f628e6d1cba627642b19a5939bed07da610f319d87025b1dbd70660cf3be32b3cfcfa955b24b0b69e3b33935a989bee3628d7b767ce2b82490f025374eb391b424d7609d7cb3aff26c23c464f43be77d51907e3f5f479c1987610803f" + }, + { /* i=8084 cDividendBits=4031 cDivisorBits=1928 */ + "5c8b7e992da9925a364cbecf29e0fcd16942289d45cc7a2bc933d66d9120a949abca057e120ac121de982f4ee13ca140de56d35f8400ceca7d284f2b850dc30357f0a0da2b1b9675aa764cb706a4ea694d74fe10a0fbd83c96c1f023d2dea25afe552084599c08badb546382a81276ae0d058b37bb267d0dd1ea4d5447db85354b2abfe7a180664578507dc9864e112bfa05879caf214059c80d23a5783b588e295aed26996f9e87a96e6ad3bbe4d9b30322442f408b6c5f0b35e9a89ee9621dd531e92d9894fc0ddf8bde413e6536e742183abbfeb6dd21a95dcff7415863f7bef95e3e40b1bac90a6b4149c13045cd990cf2bcac1e0a8895c09eaf825d0fde124e30f9b34922a69e0e4dd4a56899a250dafbcdd93393ee67163fffac86b62652c68716d82f9eb3527a06aebb223fd62dfe37fe5cbfe449b2e7fa5671bf74dec85a7563ff2a266007466f92e6906e7cbf2c118714446f72e73001a99e8eb89ec31427f2620a77ed48605b77e93dc4d88c0b058f82e1c79b9f99258363514bbc0ae03d50621eeeb33ba13afcf6a681e4825b06a47aa3446185da4dc6f3dd875224144985746045d936cc0bf2e9bdddac4c18ed2aa134791d1388f127cf43d1aad322ac4f5367cf102017bbb1bff1d90c977464cdc58f148fb60f3d36fc12234385ed45746f2e1be592c66ebe703ea2db06c4b869ef8c1d5e", + "118c2d663ba5ea3a05d44a14c62c3e1176ca7d1ccebd133e5375954f14c9e444f3ad1213f2ff373bbcdd0083f448d43d850092e77638e595f701e2a6b81a58b6fd23ee41e11dca9edea3115867054caa990f17e3fcab51585bbc7e4bdffaa4fca85ea2457262d645271149fefff3d34932038ffa510e3247b8317236cb30ba80c89aca20d286dc3a596984f28c0faf84b6c555afdf5606abda412bf96aef113a4f7e4a23a14acceaa56c25fcd52bb4083c656831f2aa9109f3578b58c1b8fe990febefc28fe03252d1edfb4e181e31a5c8c1f4a386c865bec326e62cbb0ecf92a6593a389106f5b88e0c93510714fc1066", + "0546213c13bc09bceb0699ba585385b9aa9de5276414c207a79287de4401435b4dc2ff84553ed74c18f25da9d9cd376a33504bd6da931919baab7b7ee123a50eca654c358d769a7197aeb4859fb8ca999f9441d229a1db060e4241a7f5d8aa4c4f899e55cbd10f1598b3f11ed3b47894e5e51b7d1470eb3b02071a4b0139f9e3fd65b9dd12993874504a65d5d8c18eb6568287a8705e3a1aa8f1d5e384ac4bdf7f7a5eb5009b45eaba54b7e95ced6d7a19592675b95bd65fba3a5c1f91060b3b879aa85625a9f3d3b1c75211c8d583d8c3ed9f6e06f80460b863e9bec5b5008685713d9ea2a0b2cd303ef2d0d5699c0adbad947b9795af818996cfc5eb230f6279d258e60538d4e5", + "07ae3beea4a7577f34be6d2365b991b1516d0fa82750126bb5c4eaf07d05332614504694e587ca0b0b1037a3449d24f2ed170601d13907080887b6864709ac38a03a1f6247211e9e9e53d27eb31cd29546e6a843fd43af7fb961f0dceba7556c1e964611532f2beadc731f83321063e793c3bc6bff2678566be155aba195e1a9ca5159fa421da48dfeb39b0c6027ed93257c27b222d9dd6135a2607359eed32ef9b1412f29a32ffe43507f5576068b568add8a0ca588c01891f3652999a2558bc02e941a4a6f260221c9ff95d226dcd65764f961f4f0f34625ee803d917c36cdf2e5f209db25f3716bc1281099d82cfa20" + }, + { /* i=8085 cDividendBits=3097 cDivisorBits=2930 */ + "b1b3939d37f3b417b56f60596a87f15a5ea8d33279cfbf4e1f1d363c1db50913d169e5285f052f00704bb47050e11d15580604f2627665715d1ecb60ab1e3ecc54d809fbe7045c0ee4c56f8c4a2a47bda78a0b1bd3f4ccfbb747ea162fecd507eb33aae1dc59e653f4efac9fc1b86ef56291748ca1912eea78fe5973660e70536f5fc8fe027714c5d1defc49f7b79fb5513c4499947e0df693458987375fcd6cb8000a8eb3217014440d804c8af7c324f67e94b7967619206a9950d9f1c0d58466f3d22d817d3967347365a47eccf852e46941fbcc78a161f1306f977af2b0b108257c956be75b848f6c6f29667e990427628d8ba13a1e7b259373144cb9dfc2e048efd5a72416107062154dfc92824993177b14d6746cebf23e03de0e7232210de86ac2d75809463570c91c6e1debd89702013f81cf60e075e0a533ffde7593f6006c95f14338a325f8a700796060beed88c5a2d64db944294048e11408403dcf61b74347763f3560bb05f31cb30e3328dafe5c31d7021b168261c085169be683de3e", + "beb6a864c46a1d91069fa303431cbb076ae6da1ee34f5293e8690c3fc7034f8ae08ad9c2f37b2f637b5892fd69e83a7327841c301802fb7a2b505f72eddb8ca8cdd2c4b79d802bf912fb2b2393360d95a1253e93993d488946059033a089a71fd0d81ddb2c8d8e803a2957118aa8efb2e043e9af2439e1f4eb0665aa7b3bf21868da593eaedef94ecacfff70c2cc3d201164db741e58021684604997185e54238f6736a7761713782b58c7a2afb3336acd4c12b360197212daca33ff3e3f02f61481b27689bf73a3f48c31e79eaefe1c411f9decb7748ca1e6dd1a1ad06b2bddead2890c39fbef08a8c0428621c8a4d4bb8eee62c879b5de7c5b1709fca9087f5b5d3c02b61f902e0c9fed2ceb1714aa08b4796172087523a48506ff4421eff02be3a54ed9b93f3f069e2b5dcf2e5677c1e53d0b6ba5ac9483f3a57a4597d80292b7c34100f73ac6b94c64a25d8c7adec8471b55ff876b5f2d14621c5bfbff66ae777988e310c001fbdefa6206f3", + "ee88990ea55aa9e9f0b61fb944173d05b6ca76f8e1", + "60d692da1ea325a1d9711c2de514329a9b60becaa7a1734c05f604638f005c5eca9d03b06c9c6be8c74b8663d9c11b1cbc9fd8c22b84be17b75d645c715187dbf6af75f226d9589276ad12f84b68a2895bc3fa8d32b893d43897d9e1bdb118662b92eb4a2d688fd5bed3665e0be1c1402170bdf9c5ee1493f7a7317852c1ededd9b34668400a066f0365b5d8ac5a263c3ccbe402b332ccf5be8733912f105d2427d7e80b8db42ed2e64ed28377d8f7d0540685b91c17fec9d69f64f7d1d7c347f3a980e799c22c5139f5a98ae1bb2afb49cb3ff4b3957e6a887b7fa9c5e9d6961529ea95580c3b1b054bdbfe30665909515e627eea8f9e62676e848ad928b72e3c2e257ffa1786963fafe19cad82870e13a963033bb80573fedb8b5972eadc8b6af7ed23996e1d90cd1378bd4070d9099cdaade2465b0f9b46887c035eeba2f310db3bf612515cbf8aeecd9437d78a942a449da2a0bc98c754ab4b8ad68c9ac64e7242234e0d9fb342a5ed9e5aab" + }, + { /* i=8086 cDividendBits=1573 cDivisorBits=499 */ + "0c78f4bc7ad313a490669c4cd0394f3f38954c98dd88b03b12def34b6ad39c2764cec5fc605144b5ca5146166d1ae301a849cacc61847d64cea4d56cb399af5a4e4aa18386c951417ee410612e3f4d68db9855d9d5b72d99a660448db0ca026425631c87c1880afc3169d0fda735322f52053a6b7e2f21424ea5c7759eea0fde4f78757343f1ca12d3d1cfbd75bf38da50a832cbebbbbaafff955a7c05573a2d638864b533e6ff18ead4a4de314a6f22c0ca317b9140a30171ea9f7459c422694a907395a7", + "0373be26da86a8bb9d877ecb2c404892892f1b0537adb9d3dc385e087810693332e7fe9a5897ac82e0990a179161d1c997501d02a5680a763f020ab9efa00d", + "039ced12e35261b040b793654c110a270517da774de1b65b81b06a9621b42d88fb645e76f0a0fced07db112e645992118674a92e03b90607044ed1acfff5d6af3f7fa028e8b4e8fc5e00a7569e8189b1545ae69fd1726ab644923d9b0f261e1e99a4af706f597ddd22927fd858aad367b2e9fa1d83b5a493479ee7ab62556cce2d7639e1e5bbe5", + "01c341857312efeef049e2998d3d2d74668747626ed256a76cfff5393149f3b61ab5341c7512f6b2c8c6027d81921f6a88d2f924b0d8f843da2ff59a8eeb06" + }, + { /* i=8087 cDividendBits=338 cDivisorBits=170 */ + "037d614141a0609bf2d7315da197cbb3a8cbd3a45de5ebda2e4c11e69eb945d01eed506a519e64acfa0505", + "034eef9bf49a5f91633b87e8b4feff030469dee9dfb1", + "010e09d61c11f34ec9500e01f76d2e0cca96576b7904", + "01da168df61eaba2d3263d535796bc571fe5009cdd41" + }, + { /* i=8088 cDividendBits=2220 cDivisorBits=512 */ + "a8c80ab546c832f83a7376d62dcae0d2b13b570ea342e7dfa8b7e8887fbca42851de7459a2bc9bd859e9fabcf0c2d7e3cda18f39402d09bf8fa7a7ca08e1eb695be6ecad2b64bfea305d8ca15d61ae0381f1f6fc56886c42d8df7a5b79a6af313e3933759f8e9115bb1285bbb7ad446fddf87be6c298b97762bcaf9c5c0ab512b4a4c4316feb76b29dd7309103b71028218e24e8f20b16a5afde0c17fcc89f4924fb1ac9a3bcea2a3b50de24d9504ef9bbe9bbeeb561e58ade131feae7337631c55f42efce65e827b5a08a49e90d215faa78dcc855a363cbe445ab37c9d9fd2e4b8cd47e1708619fbf535e25efd8316fd646f702a93a230034b374f4f7092e1c245e2392adb9ca9e3ad922efa8d069251f3d77a41c", + "b7d428ecaa5131614c52a6518bde166b69e1d69f2f80999fc618ffb27715048ba815a1f07dc651007fb1679d049de6b24adc6657fe118efa873e8e3201565b", + "eb0b89e6caf9ffdb400ba5a79045cecce07a714f4cda6fd74cd2e7d4acf68f5322205d7549e9fd6c72c0213b044a185cdeca43ad3503c9dda556dd18a94f4c6ae74461f3582223605d90b022a92d5b49536594fcecd2aa524a683c050f84cdd78a01d72385f3b190c8b4a7be10e1620de23befa679984c17c0f611dfa8929fcf5cbc77bd75e8054fd1be42e5777213af3be1f5fdf3290281199d4ed9c4066afdf44523c22f69f5f142eb0360c7c1b65db47294d3d4ce9ba02cd2ddcc1c7807fdbce659cbfcde646150433664ca69bf7959fc56715e4a", + "3ebef90a4d23988ffde367aed32311f370a631ce0e983b9ce1097099ff1e2b40e48c212b03cdf8fd6a426e90518892700c1d848e5778e1f46eaf7a9b3443ce" + }, + { /* i=8089 cDividendBits=3481 cDivisorBits=3292 */ + "01bf58af8cdb598c17f3a9d3870cd8f9a321dbbee51e4d9e6a0880ea7ddefc0769be067b677735a40e2ddc1a1c43b7dd7afa602f03562b9fd9192b1ec2434485035238e1946678d139e4d6c29b1b39e3487eb63479902301776a43b8fa84ad1bfbf193c74cf6d5aebf6aae4a9ecb5c34ba91e553cfa4248f9ca96e400967259c3529fae22007415ea66bd8f8df1b92137b04f6ef6432ee3a5e498a82d0a8ae1645fa9df73055c9d295a5ff22e9ef4feaa00f15ff796a45204203bd8a63a4091feaee53c2e93edea947746cac24d1837598e48eb52b4cfcd499b3714116f2ac470aaabcc1d1e460225145824232358aa27fd60ed5f82ce7d3a6ab81e3927dc4766083ec47a7ff1ff88a3353683aaf5bac7774621b53daec084053bcd7443ba17c1d012e7e4a1d54b037a341f1021761dc7bf8f4e1c15a81a2e9c3fe4170df7f9e4abe56d45960237e9c1ad67776cf77a854b5257bdf3698bf8326a1d46e3d5d73c73ba4d6c2d8bd84b5e6110a494cd403064e5fb2f0159a3d6d9579e0c23c459daf9c38811cdcdef9fbeee5b1b454f7c944920d262488c3232cfb4ace3de133f702e5da9d6f5bb051a2db65a60e0b496b67c04a18", + "0d8828abd92392555eb71bdaba982859eb1e2df18bfe7b90bddbc3fc500b97a9938465501d4b2b6c2d73fd3c120cea8b81f30130f707427133e284e3fb3915742007f67e02af65198c58468e09a17d3f34492a17388d659f70ff347b4a7e768b8840279f367ef1e82480e9c260f37fa13cbb01de467eccebd57a17971e864081bdbe1bae8485980a4e91619257fe49e782a1bd1d21b5c2b88c7b515b5ce6ba069e32767434509fcd5ceab6190b2631736665ba70970cee7634ab88585a004e3bb8faff01e38e15440c003121981c2c373bb3e80968bfba31bc7600069530706ad53d41377f29d85d59e4f091e56bfbb65d73923f23a5aca6aeb82a0f04223713e438773dc8d095129f5e31c48093e648bb6846255fb0192f8b6527b9a8f661b29c999c1f1c9ddea79e54b6da9414701523f7c52865ac379f09e53733065a26a45a99185b14fba2cca33345632d7a2a301eb82d1c6b7a34c5312bbdd62bd01526eb998f41abe4e98ba5d3befa500fd569326ad985463e1fd9138bc69012cb35da15342513c60b5628f1ff6593f71b007335372ebf3fcb931bc1ad2d5f", + "210f08cb8ef3f10213b89c8d605531c28940ecf96da5ec2b", + "b973f47622e1492e6dd8301cd52cb052e395b3742ecddb5b207fd017c88f8066200f9d64659579094ede082ff7b706ac75b1d01f99a3c197d0c72b78d8205bb69fc3ca66a792e6e96c1f0064a9a8a8f5702f834889709ad7f3b5aab6665ab95344d9bce9a10da36eb199fce78086f1042fc571506eac0216cc1ed13c54793795cba7ef2ff8aaa01a4a6f0ba66b6139ad18a0eec6044fb02b43cf045badb32c2e0a935f2e7e9bc84fbcf25ff2e1b0102ae2fa1f007b888b2c9d95ff00bbe53d61d646e56df2706ca36e6810d5fd5ce6e79cbf0eada328c35fbe18fb7d748a97d2814aa33fb89c0e78bbe8014c2a5ebea865e55cd6e383918073380821b503630e6a1d35971a633a7f774de5a1eddc11492f14b6bd3981c9825fc4c1e96acdd1847383a8e8b22ff196ba684bd22b336d130b3ec910f54311e1ffa555fb096cfa3615726f6a2826728a6befcfe6fd6a0cb510fb76fda892db0314d67ef7935ba25dc07851cd1388d0c74f43f755119d0a9b0cf2a314d07653ce419d246b7f5835cf1d4ac591d5b334054acda59930050b4e641ac1d2dcb6df889b1723" + }, + { /* i=8090 cDividendBits=614 cDivisorBits=67 */ + "256f725e24789ade19a6a8b35bce5b352c6fb210f054817d414da50daace3fc0a8f832d7c9bfac17f0af12692643cef6cdf211452c9d05025f64e0d9d6aa8d3437ddec732a4a28794462fe3059", + "05d1f6bab680df58ce", + "066e9789a4937b2a647552f22377106e103f9e2877a296c3de2fc9ccb45fdf6c6fea8bcb4f60e02ae9ab963e98485490daf2f207b974ece80555d8d8328d1cc934cab9f3ed", + "040f4f3ca95a0f6fa3" + }, + { /* i=8091 cDividendBits=670 cDivisorBits=610 */ + "2b81ff391e0694fe825d07a5f35adf6790688bbd4fda34f7e0515de614764c955a8defb647692f68da16e56851198aa365867e0d48ce6e853a8e2de4abfaecaaa29bc3434539100a14c3f4ba08fc5bbf4ceb3209", + "01229d49ca266648cc61d4c2410719bc276c1607e6ba041626493a5501bf564064a6e831eec57514243d2501143e57b1a1f7a1d757684444629fd8d494658453e981ca13d1bb9c664344604348", + "265360423f0a0d65", + "09c244d6d36900fc3c4c636736f1da44abcacaf39f52fdd64246aedb63cb324fc7767237c4a92920c73f2db41ca063cf18bf4864a795522b12ee8d68f5507f3d110a9eff4c3de3db16b5fea1" + }, + { /* i=8092 cDividendBits=2713 cDivisorBits=485 */ + "01ac2ad2496e88ae75b86f1087e51bbd4c2c786b6a0c383a5b5dc159130d9eb842cd7d27dae15503304fa1c8323edeb4d7d98116cfcb2bedd79ff3f53755c340d68550fb73cee510a66912bc920eb71edf8b4a105281934a217c34e44ff2b0316c7c7a2da2f116c2955efaa1b8eaa5edf31bc0783f37d1ca64b5e7e03ab938b89cc603ef47e2f89a723e5e129f805ac513fec8235332bc655b72855d8385efacd7105a6fb0a23660d6ba86d449d44da149a13330461bc16ee95589c4dc2400b86bdf814256d8e99cfbc2f9df0a8e379ab10437a215c0931bac5ceadddc9eb7d34c5881afd3f7bfe68e26ad4131be8242d9dd2ca0922aac1583e3630d1cfc36c1cc3cc747bf7433a0e46a0238ed07621cb1985e0ffccf3c5ed52a0777cbf319eb73a6c848786fa118933112799a4237998e06b9151c2d66db118b396af626745c2ae6a3afa1c903505e4e0fe315cabb57bf1450cb", + "062c156ee4c7ba28ca27aa9a285c12994e71546e8926510d70eb3de61f7dd2b250f95e1020416e36f76f88dd85a8a16fc43f6043640b0afcb37971f0cc", + "455ec978e67b57febfa6aa40de69485672cb2cbffd791cc020c0518757663a80f35204fb5d90caa9faf8e527a62b40ff09e9b0431799853b07278c33c15e85a08112ce75684d423dbebe0a5c19193a51502cbd0fab0235de3eb3b18498b98eb6cd5b90e975708d8685bf0f7fb15f6dcaa1c474d50e7642a5afaf640be2bc22e6bbd922dd6948e407aa097f14a85312512f7d8bb3e1a0103b9ac592ed108caee1bb28b7793848f670c15b81046264258e5dbfcbe3093f91f14b15e095a7d94ab90c81c06a11dc48763970806d1f0c036db6f2f8c3d1ba149f80d72c4982685227d1055537b149c7ec6f36472ed1fec7db5ace08b9c90b95af51c33c7311cb86c2c680be4b41663eb186d352fbecc91b62e99c59fd42e226", + "1432b0b411706224c145b4d4a4d2b7ac028ec49c36f594f93d095222d8d0f8eabf13dc0578035a6193a256675f4489cf3a0617ea50c2d63770fe7a83" + }, + { /* i=8093 cDividendBits=829 cDivisorBits=698 */ + "064444abd79049f9af49260b3d68947312f581278e18347807c27799d1f00721a573f81e460011acb124fbecfcb53d30126226b24fd4c0b01f3037fedcc0be787a7b11226f349da71c6fcec125ad0595dbb9550d60ddc82c4214201eb89a74cfafa1197a5bd0e24d", + "faa46dd99f4011af03de4062b372e7580152ac24acbd13abaed8a7811612ba8fa1fb6d1f861d340913b6b2517a84cb6af2990e99ea9ea715f287832780ac598c5f80347e6080eacf9b4fbf293d69df42c281bbde3c71d2", + "06668f9644db52726238a33e11c7fc0a95", + "e4196783ea96caf26dbda7c4b964318e94273cdcdb14df96b3acea2ccca2a4c942ed2209a5dd99ec14020c5522c2cbfdbec3b77da428bc9de476d8f386889ae4f87b325ae809f0414840e1366545deae6015875d786f13" + }, + { /* i=8094 cDividendBits=3213 cDivisorBits=671 */ + "073e15b772f063da92aab368810ca33d7381ad57f4fb32d23580cc9718cec15e14931d1ba9e3da7c2d0b6726680d42696d2ab2a1e849eef958e34c66c8f14e5bb65fcf0a629d089adf847c88b4ff49bfb4566ab5bae75599a600aa84d7fca0d17e1d62dae4820bc2534d512f2d1b1e1a8e0f98344ee5565c5c5a7f2762ab2d1792dbca808c6e0452c64e19aa70db05478fd9c799c54c77464f64f492e79d2a20b0c6ceb36f5cee2813c379316f661d63ab8fb917d1f11985ec9196ea65a1b7bf2eec4d5998ddc3c1562e872fa6cdafce3347bb0ce4a97a541bb35a7a96891924e695c1a43f439f60be447a4eda569978e73069b4c4e5ec75849337dd382a1d03ebe2be1c48553b7c5bfc2c03f11d27221b4b0be40ebadcd889ce512eafb97759bbe1d33b35ee96d6ff787ee08e45d9d9de74a0f828251a32f502306693f0ba7017fe79223d29af015d4642aef14a54a66bd62ab10bec682dc3f9cd10991a8153d9d57d21f2c487cda4ad9a100759ddc152b3512f6e8ab4b15033f6e6d44bb1b22faa8936d83513aba7e93a6465bfeb6dd7af", + "498099fb7a73b7029493dd6e69bff387d5b78d8f186c6e42f536109653fe86e9b4a3d73126bc7b542014907a4c22feee7ffa9ca8687e9f45d66da7b6133b9faca847a72b24481ae06dfd93d65957d1f6cfa49a07", + "19398ef4bf90f52097936c2cccaed9cdf9cc0bdbb3eec0bdc4dbd3e41ba1d64c8f8e0a0a64db45605b5dbbb311d030490cc346004e3e81f10aa381ef1053e081d4ec0ff64217311c2156951f204586ce5735e930a7c4cc8fb8c5449659cb1cc0389e1a60dfc88741358c24ba9dffa1e630faabc09f0349c26df796dc5573309b55e7b49e0e358bf8e0e2897aae892207e4d54d42a8b2d997e16510636b1fc4ced8d9c73c922b2c5d06e181121ed1717faeb337d227dfe7ae0053201041f448aad42daaf6f2ed6d94b9d72a5e9db383a8e707078b014b7f0c6f0552610b4ebca4d6508442749bef73d39d310a8faca0721731cf6b55aceb012e8b211644275313c99a7885e0265542012f961245ee7c773af01514deb0185e7dcd8b08ba9a24a1247d336ac20d54d40e8a027a1280894e92ee2e8197953c7b9f6c7cda2b85", + "050bbdb8cb40de622580fab807115540770562b03df45ccecd6e351fbe1cb0b555820c3237005fcd30a44f512881dedff1ce6c2105549499f7eee34fa88d4e09b85228dc44798001d7663bb53c46faead714a50c" + }, + { /* i=8095 cDividendBits=304 cDivisorBits=145 */ + "55ccda8c74326b8bc00fd8f6a7bffc92d4a70b2161a2b5589e8bb34a52100dbf91d399f3e44a", + "01d40b4204d067a01ec32d34ac0f067c52d329", + "2eedd5751aeb7cd0ec676a6a958a321ded04725a", + "016ac348770a45d595db92b9a4d9c1c12965e0" + }, + { /* i=8096 cDividendBits=656 cDivisorBits=590 */ + "03d3fc43b540547a398373385d65f54a13e8067bce518affc60a3e0e21f7e5c75f5c43fae9f32f5b63b8fab5b1be6e512f6aba023099622a40d17a0d3aed1032ad1c22549f084ee78eda90d367506c9713ab", + "16abd480d8199b66fffc4218e4168355e5a55a033cfcac45e5a7970f46bde24964c3f9f6fd3b542163491dfbcbd2a746f906262bf4d6920764ad64cd263cc590f454b370605009dad907", + "2b39da101cf9c27c", + "076c1873282428f5cf8692746144fa5b4048a90aa387aedfb347f2834c7237113bf9db502783c033b0d4ba1eadba505f420f19cf565a1e8b8ca89724ccde0d02116e946e0d09f24fa647" + }, + { /* i=8097 cDividendBits=3215 cDivisorBits=422 */ + "4728381d237c8ac98002b60f6cf3ab4d35ae77ead4ab52990a953843cd0fd269790f9f7f06045cb1bcc1c639ef604b614f5fb0bfa1e08dfdd20a896820141216fa5c3b263bcf20b17016c42f608ad05a48080eeac97cba30fd4e5b38099705ef44dc2f02d4485d7ff1eb56ae6d65efe1f043c85cdeb26f49529fe13272e4f67af1503b073a969fbb95be3d50381ab46cd55208b1e896892afd88a873421ef221fcab65bf100d214003243cb27fb3abd6cbc61d137a706f9a9b0f4f7c3487682022370b110bd13bb14a69aa41791cbc50b3df28b70cf88ed69852ce323be09afadd6e4d3be8d7800d78568ff34f7c2197e45d6082f08843156181a8f2ed059b5cc379f0fa34e21298838410800f03349535ed1fb5f0fac876e1a15123a9c35164f8f437a7b1a1bfc226f850bd402763f37bbb53ccf273a2e450ba5d94eccdee78dcb43ff38cdf9a3ef283749f99f012eba9740c793b3cccaf7fff5a1762b68fab4ff9ae42adcd886e779b9f139f4a5339f109947a797a9792f1e13401ae001d922d6f1f4f02d2e17287b3ef9c2d1e4d0477d1", + "3543ed01704d6a91bfed9e1310015553f3dba8b0e67dc8323b8bb5c286bbc8179787ea4c8574d77af332622886c5718243390d3143", + "0155fd7986091e52a898e4f3b44e0f35f2b47de4925bfac51336a9d44040b98b6ccb55c13bb922d7014c862b3897833cdc847379872d79699f5f8dc3894a03e9ddb9c3ccda67fcee59f84cc3c4f4884247c6953462478ab35c84dda9008c5e343d9550b55e99fce6452a1279820ac473bf0dceb32f1221a22d7a5663c82482a8da80376d4edfcf807f844ec4b50e9c7e41c3355826f7113a9bda4cb1e9627e38b0338730965c183e89c12bf3c4d739e6b3e624dc2cc73b2c8f9db3ef286b1d8311711764272890a860bb613dc98d61d62f471b162e1ff147993589a6afd0f0bab37408091ece3e28780b1cef44313c2249209e8bd252fc5a6ad702274c4ba59fd79d6ea72ca7140a9e0c0d0c3a59ddea6972c803ed9954c4227434d549008fbe08ecfc2c6ec098eaf1db9af6c050e5530cbf948a1007df2faffbc0f59b8fed45dfa548160ad3603128473c7c0b02ed44575d3ea28271f9d980c0925e6ec5", + "070566eefd1137a3e348e049e7a81359453dd25cd595193ac529fd6bad46b6e4666aa69980a48544e4446eee91bec021af6e18c542" + }, + { /* i=8098 cDividendBits=2977 cDivisorBits=2146 */ + "91918f86eb8e5f4d6cbed6caf6ba244a6a9a69211c5151feddae6b958ab8b97175282d3297dde27de3151129d4717beec086defb86372335f464fd7a3b1f34124b2824b98de4577a57c3fd6a77f9ed4d006cd6ee2345c98ef79b9c6d530a2d334b1650b7833e4bb1464246bbe023c2dc148ccc8bea9813186666d06176cb45f1f340e42635573366e7820335d27aad1e8be0157320b40a253e3ecba6306030282e1931ec243acb099a188a3c703657da6fb3d390f4d5a598eeacb89b063b369cf799c7f1d7eeabd321d6e14f6759ec4bfb0b6fa1e6447bbfc73c003d0ba80cf9c6d9fd7f5777d6f276dae5730c545efc8d46eafa15cf8bd56e54ef8f9a0a57acd79fdc9667deb2103f434be723a48a0781beb4291b8c6fcde0049305d3ad4ed097cdace2faf8d2496bb749443f0b290fe86c5d6a1f443376d5c2f2e4ddd02e482f30f1352cfc745fd667ec0b711cc2711b5986d2f6cfd6cea22be75972e9daa9ac757109cd88ab3ba8a086f06625a50b3e30b793", + "0285df9b8fd99b19dda4641f54f23fb5e82582c97a20571ed11524be9aab481f6139f9eded715a2af6808c59de5ca622b51c8d46833cfe49f16b383bd01551498017c5a4d5e2168fb076a8cde7c47fd9efbead889fc22106fb4cacad8960853ee8f80dd88a8046eb9addd5a28ffff2079e5c4baaeb5138aa54d069a35dfc5eeaac927382341452c1f36e76768c4afaba2b535cb86a7a827d6753101632458754c97cecca1e7a489698d0ced48d40ca4c0e91a2be97ffd30d807bb4d05cd4079b6858625c9c61deae4d406a6e4d95e2d5ac46ba7adf0f78caa30b470468228d38601d8cf7d2e30d7726a26baf4e78d239a26ab941f6ce9e5f7a094b3e2b9d66829d5e646bbe18c4a2dd5b77ea9f", + "39b2ab646c88e1d251f7099f96782f29ed09d2c195c24f91d6ef478550b43f0f3cb445b4be1805604f338fc6a126564062d115c32dfc241f4b69a6a01d2dea62e6435b9e1196b6d5ecd68d218fff128be47a3fb02b85eb57f77210d476d352c1b885eaaed12858a5", + "02789681c2bbb2de2be97fe8e2c91e07f8334cd64ef0f904283276ab93153580e84a2737db6162e9bdedc7ea67623a6e55c4ee7b1bcf0c0a12b116373efc7a9a7f5730dd3755fbe9e9314d9faf943f59f2dd67b9c22ed12b73a35258ccf1e1b7c3ba199bf07bc7eb1a88b8d471139342a99cf6cf242573e60a9ba623acd16d5a92d3a51c8a01e26fe58b231443df2382ae1c9eed306a0e87bad8eaaf0ce7d76d394dc02445c9c2ff777bdd3114e09da82eb4ecce140fb7edd3db6e8a953900a613c885284220b8319c5fb9715f5705f0472784824f30a88f3b387ed85dfb30980ecf08ea625501c8162d5ea5ff3bc24244ac5671767b2b71726cb641169dd0e0cdf211c758b89795939967d718" + }, + { /* i=8099 cDividendBits=1337 cDivisorBits=967 */ + "dea4048eb1aa1404fe1e40560a265373aa551b1999edc863e310d7457b8d1b0658c1e53eefc1cfe0526bfc8ebcc8b6f24e61f9f16cf70ccd757fad2f1b421b62cfdd7571cebd3376dedad068121d50484e3d125035683bc879f8f389a0670e248ac0496c861b1e6f1ded692687033959db96ef9bc5f40c356e5f4d11dad0abce68d3a31f95024c42ea56d670c87ac7e1e66cdd6d104fcf97fb0f3875ae160bdb2e88b7536d6423", + "537a5363b3814b4e16bb316e5b878eea54fd97dbd4b89cb6d04d1305305007f9e4848f5cf43661adaafe82f08ee921a75d2ee7c22111eeb33f4c5e7fd94121089182c77c1cfa23f487902b51563035aa61ed60d692f2426a31438cb46879c72ca7a2bab86ab988e6dc286319b5a19ae3f3a1d07b5719fc8c93", + "02aac4ae066d16abe298ef2ba985a25e4fa6a044c8b781fea36171ef9cd3f24fa3a194c69010720e4e9107c794cfa9", + "07d7c232e9bfc14438aa1cb1f3878d2f9b7f1945b64f7b0b7bda1839784e024546362ea4299f10d67c60d9102aaa0f36c703afeeac933aee4afc700a181560c214e4f5debf772b9a9c7214041bb36a36b941cca33764a2116457cf6b5a8facfa91d18557aba3b79943430f6c236203c4c3d0f23be76c0dba18" + }, + { /* i=8100 cDividendBits=1867 cDivisorBits=1704 */ + "04263d2a1fe9d0a8af7e2a00c2d940ec4f1ae9b4e012d8b92dbbe0a215df743b511a45713a05a3a29db6748dad93cc4f7dd8b2b6bc7028a7e03b322b5b37d86cdd48b8f0bf3319ef93920ff91ba8960136343769448761a5ea7c2b070a1929df544ae049bb3cd00d7e924a41f8bc99ab2af68ba84e4570515f721c3ced658e9130a9071629e9c7471a83612ead1cd1da660c748c5dae3a235d280ca07b31f5a7f6644f62623004d36033172cc450dc1e961017186751bb8c8548cc3b64f5d3af7f6f66fb7a7db139b5f467b00247a6fc20dd66c41617d5413c0d140a8ac72c1458dac4980fcc17c6ffac", + "46668dc13e9537dfff30896676d5efca6ab08a590751fa397edaa4592b72170ddfb4c966cd99b33f0e06aa0ea42f3dffa920d4c548b065f9b37e41217769c66d474a957f5c2895e9379c220ec0b08553bfec72d161e4e560f06022be9d39557632f5e19d60b28559849d482c839045069ad9824f7678a34c2b8b735d07d317d001b8c27e7f2429f75c4160c0ff6b59b437a471773d76d17c933031662f322c2fc4effb8f6d9c58c6665c5f1206c6b572032131aceda244643d67b9049476ba241843793ea0ccdfceb4c5fd858cbefd9198c951f980", + "0f16a76fb4b9ab80f58969cb639dac8930e07680a5", + "153c3c345ba150bb60c196225455057023019b2f9f3503888bb40f2a248adad0c9d0c3fd5f82232735bad5937480801d39d16e11b15a8fc347c7f7922e8cefd5a9572feeaf0885a6d1d5ce5e5404d4cbdd0a1f6625c767a2cc8dd665ae4a89d64d8c4fa37704f550d060202ef762fdf8419419f796a2368aab3dded31b873117b671443565086170d349c2357772f24974edafdaab87dc7f5b55777b283e80a4b64c5540bfa8edf2b2a1af11edba4aa56e9a190f9b7c7496950f75db552e6503d16ebb881d998cf5ed5d48676455e405905831302c" + }, + { /* i=8101 cDividendBits=2608 cDivisorBits=943 */ + "eea3d7658f6d7e92d1c8d2c3e0e7e1bc83f7e56279b702de3d6d7c48da3f66a1976e650ef5c0e8d5e888edca386ea50ff83c114138f7e5a61dc92a903a806b495d2f6fd115a7512492af25f197e38ac12997e21911201177c713d7c25283e848fb5350bc7b546e308eea755033b6f85ba96134782914958827de31a50d41e193ea11a5cfdbafe5867cbd17bd8fcc58f531af5e26514a623f8bfc2f1a921f9834a8519e1599ce98e703744cc0df7fb5ce5bb902989f12c5236b1f5d44a29712f0332d1a719ff3285e5428f3306d1b09c1649d6f2cc00bd7e82e8d7c032b8ef1376aa6f931b666ac2840d9b974c8d143f60b0347d6213c4ef3d62eb4951941edfcc9fea20760eb873e668416a74d77e15c73320a894b525bdb52554f6afa0035a58c14a7d6b48deaccff4bf07faaa996e80559e435babb46ac8ee9b60ce46cc83e6a4cfbfe7979", + "042445b9d228ae926ab87b2dd164794a8663618f10322eeb90794d3968fd9bb148c3895b3b52af762ceedd2fa1c97dfd41a7ef250a0c6a138549642b3a2a13865771868a4800d48bfc9f7827df8ca5587689bc1e2239fa893d4c1e14eb5c14b9d1ef4874e7157d67017f88a7ca635f67fbd1cd636884", + "399e7745b2ca27771538b558bf848a3f5fa88e488b466afc5708b4c4aa9cbe28f75fd055c0eca83725ecac7ca4334a27cc40eed42213d2875b8fb7ad245cb7ef3f2c7c727d93aa8647ac59d7eeef2efe8abe4c9f3cd56363e3326ffd884413812818cdd941cc67e00e7937c45e3359bf591df3606c2a9e5ccd27df6b43f4b31c80a05aa93f8d842125aa0e1227549c2dd505e34bc30f4005fb6f8ad33c1047a963105760dae97ad78cd2e945955f565fb2d368ee9f98cbebaef70e2fdf796c67cdb972f0191625d9cc37d5cb0e7d992497", + "0286812d2798f235e683d6ea378ca4309bf2f2e7b260c0dea5dc1c24740cdf53eab8d5ffe57e47c1a9509832ee80e080861670a9883769030107e3e0248c79182d4893f1ce26808b9e5bc98d2422f4a56c6235b935dfcb246bcc8c3e4f1d7ee8022c8122936e9b26db2260b22f988fadb300f0c5439d" + }, + { /* i=8102 cDividendBits=1214 cDivisorBits=312 */ + "2c423159587f8e97e4da80e4e5a0e71b8738a5a590ce10884547a0c9dd870fb72499754320cfa20d9597f3ca4cb343d12a457bf91d1f60db7181025c76953c187f22f2907bbc202e4c2f69b6c7c93caa48d1c6946b6abb2bbe5c4a2baac67e1d88b3bbea9ec00e2cf06d41032f09ddd3c1757df9002dccf593a23006e99ab48409855d54b4ea56b11b6081a60e281bea19b0a7bf9ead8938", + "5f9f8f62de63abe7e003c62970f90b1bb03d185c467f35365830c5fef467e4a1a15f38a5c810f0", + "767ce0cd5aa9ea70f035fb2287e77c3082ec0551204a1759f4d6bbc6b3de2facd7429746380822c2e660b8cb1d50af0758df76cba4ef4f73697604588f899d3549fd094068b3394b862b89343d306a575eb45cb4c91aa7b7dd9a7d61df374cde86afe8da1ee88d5add92c9118fe5346b8e", + "4ac369540ff13559232645f8cb389fda97c924829dec8b3715075f81cb85ffeb421f2ee9dfd418" + }, + { /* i=8103 cDividendBits=3251 cDivisorBits=2616 */ + "014e2a213be885e77565ad4ebc8bb6ffc341c7f1e43288ed95a2920d3a1b006986ab452274b9b04de2bb563e65ddb2e60d26e83dd8eff61ce4a93b2ddd00de1f20ac23df11693e64bbaa71f1fa8fce99df4757534180890670efa9f017c9082fe7b6309471305851363d25763d63590d9ec56fb5de642cc5876dd2efa746cc3cfc7438aca3b0612c29994e6ef05103aabee969b96d5dc0881ca1833c9d93bbbb67d29810a28222d0a27c93e0c006524e334a3e3d21708909546c31720baacb2f93974be2d1f7af9e060326461a4f0c1eb5888f01afe089863728fc809ef6d50e24c2d2d3ff87fb7f49b7b528b9323b92acd7e2fe6b581091205bdf89f184173035e180232ff037da72490c0b8af83357224a2e468f075710791fae210438b338f4ea06498b58c890fdd1e852b626a9cf3cd23d72f5a7950caa6750515bcfa396d395c2e2605e6d9c02c773c9cc415a56816ea8df729548c215f492951a64f53b2c67ab98822505142c7afd2c174df997bd3130474c583f1d2d23a919aa3999dea886089413a2ad9f18c4198b385cdc882ee5b5796a22ba", + "8fa0b02b5497f88ba3711bbc11ef023bcde96ec070cd40c3a7194c6fcb2ef121818e3c170b87f0d420979bad5577697b3e00909e4eeda0c6375e2efe748d367eba23a0450ace63f56ec745a3a36add0b81255bebae2e84bdd1b304ff551b5a1607edc8c5131116a7590e77d8ebed34c0b3ae3310ca49f2d9b84ed34152f7cb2060e887b039fbe25c64bc9d4e42eeca75740248319230970d9a74b6831bcc65da939e01d072378d72e92e7d3011f72e9b4341c53e152e5e19ae3f333dc06c2971a4c4526ad6715d456c06d27fa4aade4d0baac3f1b34795235bca468336fefcc08afc4e71813e4c61f93f0e6f807e5aab06fb2389801ed183a7711fb9d5e86b34c01a91d3810eab57e1386c210f86d13bc83583fbeca76e95b85d4330627a6f9911a758bda7b775a52bc9bd56214ade895c989a1349f602f49f5894d92a849e63420f3569eff84d", + "02539c3c5972b29090b4a1bb9f8281abccc9571121cfc2055cbf9266935dadd331e77b548f3e8a534b16eff1d263c63110420aa6e3226cf02a8d794049249a227ba09e9978f06ca9dac219b8e2ba61a4", + "13b7198758111a25c6c5dfc50e3988573086a6086c2bb9924ce1c2caa6882e0f254257ca4228467a3e3c220fa2437c045d875c47c9a78e80699de266d6802aa9b5cff352fa7b6f2a388533049cc89ce58f94bc8264cef1edd74688db16296e38048e99cde25c20e02277125975f5bc29a7463bf3b11d4132e2af102c26c93f2d903c6300dc5af7f7440d3e16968bb19c3ed9a0118689ef9a255bd8a41fd9f031ae3e7fed1b18a813a33ddaa4e5ba742671f5a3612bbff8643975d9ca6939a48e7244516df5ae986c8c040b1dcb652e4c1e691b3bd270cdbc5a4073561a36e87378af029875fcd600c638a50f988a2a7a7fccfad656b6045658a2ac413855f649a5c0d216a417e6ffd964300cab779a388551d37033b89614ca0a3b514b063771c95b02e2a476845623be393a97b296b78d5bdb24374676daf8bd9b4703c67f65b11c734ca7e466" + }, + { /* i=8104 cDividendBits=2855 cDivisorBits=1788 */ + "32804dd50790763e376c446e6970c5181ff334c0adbfe6d5f92c68e578eb6475f717b0e4875ce5723e042efa93008ae959260f5c4808834535e06d3f57d295b46152f2d9afe946226956b9a5f8346c32686e4858fd95c21d52944faf328f947d3f38f7fe3cce358328b7fe787d4d86e8c7084fc1f008d933079666aeb314cbea390fc2656f9028de74cd54938c36079ad7bc3fa6bce5d26ae5fc95142f3b0273d15e47ca15fd05fdb82bc680307848ee07468d349fd9cf6b8a189d52c769c8fe238b7e3a0917b238b3f1ed7d13872b5d0f489bc8b13060d8d4b1c794896b2afb1e8a989a4c20a8076e46b0332adfdc42205460a1e31a216b2d2982183b082d514dfa0565494b0ee944ecbffd9ca648206f0f3119a871bb47399ad65019fa9fa7926b59aeac9e3ae79a93495a8c0b4a7d09ef1a5f50b6e60058f41c29d7c9d271395f8a4928987e2badfbfcbafe91665e6e6b910a0cd762b4a728f2067ce8bf679c066e753a", + "03439b19e0632fb48dd4adab98eee682a4e28c60289437c8bcb3d52a269a72632a95f9e71e5a085be5311bedf78409c1908cdd1d852c202793dbdd555c107c19d68710ea6d9d61292469e92514050cb1ddeb1ee31c315615cdf527fad9af782f88e811d2a1aae52ea9713b6f1df2de942566cef648b2a4d85f49c88bba36373a2a9920a0fae2b3ba10c9ddefbf5a6e4099d2a911e33da2afea317bcdfc0c4e809b55995fb5ad9121f2fa6af2df1fbf5ff80aa49ee33bc003c9ef1127700292fcbd79230a99d8a79d36d7f14c3884c669fc4e5f2b86596c63c31aeb69b54b3ed1", + "0f78c6195d42b61188d2054fecfff271f5493f0c1263c8efaba9eb073c5b06b7951f583d09293bbc43606a98d5b2c41af9663bc22034d83f79a0de83bf22d30bc231f72cd56821482ead2d515e2ac0c23614c3e404872b2d7258cf42d2bc5742699960ea244a27a9929a7237004c96b7a6fe7e4edb89ded322bbb6cb6bf081e0a90a141a7501", + "029643d10fe54781981f1bb6df243deb49f0811ce3c8cd07af39eb004a86f9ae4782e8520950a50351bf2cf9cfdcc40b71716169f935e133f93dd68d4a7f4f62af3c20c24bd832bf78c90cb31d6cbfc7bc902175e65aa8edc9dd0a0fa25b2265ed6ffe4bfb50c56733e6e44d3b93b9032b170eda187a421154d4c97a202008a0be39c514c96a50ba42aedf33a69c19c9de7266e15d48d3241b9e3d60c39e36b6a0403f64fad2845b328384523ce263eca5e5fcdb03bea2e3ac1b708bc5da4edc0e4c5e1d95e480ad85a1dd29e44ec2412619a7c881d8508fa3de74a03833b169" + }, + { /* i=8105 cDividendBits=1468 cDivisorBits=206 */ + "0e09013cd5e01ce639ebc854f74d5b1d0e7405d401747a3c5ed78da57d81957a105228ebd4b50f9de38e7603c3e8fdd4d5315485a19b4b398e525327ab3bb4a77a66a343c548c1cfabd87fd1e3b47d450a238fb57bdaf9bced6df165e8108e4f2385ccda48ff5d677db339eb2fea164cf9654d7bc99023e0dba7a6405635d0bdd482c1164f1952c57870e25e2affa5741d3db37ea683c9d48bd753842b8e4ae2e801d2c9ccdc4aba092b9d17398dc62ce0a474814156965d", + "3258af28a275f618a3f4a1f896fec9182591c0122f071710a956", + "475d9ac94779129e86dce08519d889c82732d6f9058b97c8bcfa9e9df9d18dfdcfda8d650b3d3798b866243ca7dc6bb9d6ed763e599ec18eb5405a254e3628b254149db4b0018a361c862a12c2565cc47c10d9db347f376713e164ada0ba5cfdf83ef8a61bdfe6148ba8d5281a89d7cd608c62734c19d1af94ae2cab663a1c3d749da104aa91ed338c964c18f951a4d0b4abac348669833ed6a3eb0f2bfe", + "c2be52aab602baae6e85300333c7149e4f5b1f3f6ab4532109" + }, + { /* i=8106 cDividendBits=3000 cDivisorBits=2769 */ + "800a4570a1e1b5e7fda08f4eceb50dc30e09f0fca4752bfebdfb3aaa09539a78c777031b445e36775b641f9ff0b0a30eb44479f7d4eecbb50497a8e391f59905d39eb539bc3e25faf02f9395fc9fab4305f7bf18dc7f9f0ee5c5f9002f66df2ca32a4829e3d670404a79f92d6528028a8d36bccb335beec9ac25fedda7fc0ca600214c0c73a9ee9603d84f88dd98af6d39b8eb6bc2ed9319b61882035e706eb4125e584d1300411775b546c6603e2953417a9ec1697c06470d31586076c30de2dbeddbd73bb9c3a8ea858ee9656ec1d41a5987479819d5ad417d2b224463fe63ae8d2f7a539e2ceeb935277c5b91fb410f22db6a01d0ee3860acb063f6ea37102dfb8988221f2a58e58ce03a605dc870b486190e034a0d2270957bf6abedcb50dc41ca65ad9b86787845768ec51b77eeea1911d5591924526effbc56cbf4a8b97dc8f4dc74c16acbbdfed4d3ef469c134dd8a9ae8ef6406578d1a456ffa0d801340e288d132ae3f2aa9abac5b36734b632286a9363c81b", + "c7073856c01a0fcd0567a4749cb9af47bb27d631da2b1e9afaffaefbb7c20cfde7dab0a4347527432e6c9f6fd92d04549f8aae4ca5965c1a1ab776bd2ee132264991bcc05956da35e50e62145721e0c699ae984ec27844d248200f28af38e620bbcc2f3041b24eb7237e928f940d500f20c3fd3085a5743cc87ffdd540bbaea8c485faa319574dc67e65700fb42a5f6bec11390ed5b40de0c4b1d39b511cd2091820d2962314fe3ad04c6dd4bb0c3d63639b0cb421225077f8dc48f57afd5baae14587f60ae85f53b9ac25d71b044e2abe1abae4f696784576046db53e97bc1ee8be627fc4cfbc3f448da78da6b655ef356ba73882d8b4639b77f2cb9c0fb862d081a380b936fbb944496ec02400769a2ab9681adddeaef5dcffc0327e0dd142b53d89f795a8b4869fb96f83be72ab0df574c44a889648a9145eeff173957b0759f4dbd669a9a0b217d9d4fb5098f9994cf620e7c7921747ff5b", + "a4b10c08b40960b3d63cd1d1977a8438886c8d433d634abbb8d7c6b986", + "8cce131d21c10e09ce4d003154d79e976e67395ce5448bcca527b150a5567bfca13d3a2210d47a74d3e477432cfea78f9bd00d8be6726b5618d4592760015fda9ec154cd3a2202eb483c21b5f95bcefb1e1198e6edc8e3002858cbb7ae056b29ca9b1fd1287865b391a6ec4df491d84f24e106e97639ee5af996458fbcc99441ed68c832cfc152efbd5078be2163ecae9d54ab3243ceb869daf29e5a770bfe88e9b7cd7c7f1beee0186d06f3bfcf99ca1d1b58bcea710d1272403ce3846cbf074dbed454814be74598cfc8397ba07aade54a1f3bedf73670bcc5888ce1f204ce4edd1292dcc0c5b418261ac5a835f74e28d9e3fa0456f3416069e8d558e1d3e719d320a1cbfffd8eae2376860e3f2a62b9e3745a952c30a72affa7618bd96b006b2d9316bbc1aa24fe4b4ad73aa1cdc8ca74e54744f399d7298dba1976572b821929f211cb6163747f3b05e245548920c0769c86a3926ec95b79" + }, + { /* i=8107 cDividendBits=1751 cDivisorBits=447 */ + "64ecdb7f2ea41609a5f4c3af77cece33cba48aa73e5ad4f4c9fd6e8070f0286cdfe864ab5b67d62ecf88da9bd27bc6c39e326d419a86bb72e6812be5721896d6e314bfcb6d30ab641e87b9b2de3ba9e2a07853f655e3c697adeebbf4dc7640aec4041db4556cf67933a3232cfa8c1452491573a8917b5d3f4cb6909c9084ca0d8b81772809f0f18ce0fdb92ce5d3f400b75fd09b66936ca7f2190d18f15926dadae8767012fc6bc16f039945bb66a4156a331bfe1ef472cc6fd52fc3a24253cf2b4ffbf2e41d2d2a9245845fd803585d693f9c9da9961efaca71d5", + "69bc9737080432502cfa8b3686f425147c326460dd49aafddf5da46044b33c04b49cacacce67bea3ce5b0ae87a143d1aa0f700e9cdab282b", + "f459d701df117541666f2e1a9be03cdeaf8217d180968f1a6e84f4c2ddb772a0044c26d0ab265fc3ac39c3c4f8a6f6aedb8e847a8a255678cea2a524d589f7a16b30bf8542ba827a85c5ce8c04db06f13d6b2762db1085e5b0ecc67154a19e06068ed3599a8e61c1a3402aef8311e76038cba4e93739e56d274cb6a58a60ac83c7d1438f7a707d3acff03068c6cc7bb9bef0bfa8eec33a234f192ca71d761e80dc4b47", + "50b8a4645a06a77140e0fa89891a307a723425560892db1f7adc5889402dda11ca7a133b9b656d6d5cda55f212e6bd2953affbcfc699b4e8" + }, + { /* i=8108 cDividendBits=2331 cDivisorBits=72 */ + "0360e09330e511538d303fa884afe7e8b3f28f6a51cf00b898ad4aa92b811d02be1055caf332f52128d59d05c7439939c704848fdadca570b67c3e9525bdd336001342256cf2ad6422e64b0e9ead4b3d800b09195e17846a174a9b9d1b0e75138cc4c614dea476efae61d8479008267b11173d4a1e8df9503af60542aa729a0e127bdedfa15323b01b151b746fa97923afbb825bc0aa0d46659af4fbfc895778887af4dbe1ba1efdaebd3b285c9c67a6d60afc030c20ab020d91cd1907662c7373abf3192b5727d03dd72f3253a50497c5e75b148bb9e8537c5e98a8ccde546142c6dda2aef22887197c74251f8a32f7e9213f96ec7ffbaee669c7a11d05ce105b39dcc4b9502c03cf4b2a61ed2738337149f0a5eed91dae94d5c4e35457e75b0e09bcf2", + "2195e6383305921b96", + "19c0608f7f4645c9a4104e38eb160dd791eded2be0243ba6fcd941e7ab98d9ad3563afb7923880072372ebdc11b048b4bfa6b563516002d529d60930d3f82bb2032f5b93dfb69e3f0bed609ec48b3cb9f3ae2d5b602eb427f824a883ed70ed3e0c1335d856d2973bf22e684f9bbf3eb7671ef010946a8ba153edd2ef7320206f041dba20606255c3c2509128173e36d02fbdc07acf571f8b34248f0c83949a756fb8bd6b667dcba068225354001fc7f7eb22f04b523d5cc3e44dcdc0531bcfdee493c04b67275477ae6c400532fc03f34011e9010cb23b8909d3dbbce399c3ad6c2fdaa31754dc04cd8345661e44711e4dc45ee0a2f52d8af6416b44777a09f32b15b774c8c8868cda24417b17570dd1f50bb74bee9073c1d1f1de", + "20fb55ab6711e79ade" + }, + { /* i=8109 cDividendBits=3644 cDivisorBits=2666 */ + "0e8218af1a763c4d94a4bf859c3326a82dc57c4689bebb698e200168d99a0dfd97e5d90238d49873e4deb88fa722e124654b843d2f6e0291c240247038d6dc4911f8ff84dcb15c0ea82899508a3974708b16fe45bdfc1d852427cce994c3bca98505969be55389a422c35b5a0cd996acd102e6411ba4b796757241f4799b82341b4ac4f298b335969a9394e0f1d3078fb734eb61ee0daacf8356e144027c7f32d4df284347b0ba9c4514d2b11c15522dca48c95370662fb8d9aedb0277f4f294bf1866788dc68c76ba9a1eb4ed02a2804805570248f9ef057ba2c0989cb23c559823bcca762ca1ed828a63dddb368488026529df5c5c1dbba8f6b295fceb6494665e8cb4e528a8e9ad5bd269226793a30bb0dc0b80f617d7d0ed3dafb7735bc483383d5b6d776d99067f3da227773ac0b195185297d02a071d961b8b62fe4ddfa0f7a13128f39d4e4f593b70ce57ea3694dbc318ec4a3751b6a12c37cd851e1abb092f410e6fc759b636aecf7d0582c76704095a5a45c9a71b07bbfb5d07c608e69b7ec4dc7a8c8c33664843bc99df534beb8ecd313ecdd57aec3da2df587dd786e191751a2c650998b2061f8c5995002ee26f5a0ac084e26afc124cb21e0dca9f8dc9dacc1b20f9", + "039eb6680f85ae9a6604f4383b7ce6f2c6b7f8149bc605ddd10626dac8904aba469d3bc179bb605c441de517ebdaacbaf2b957dd2bf29268d17ce8fe4fadc007238f65c7439dcaf7aa52ca571a889717034131e2802b4c3d1ea9b8049ba23c68922615a71c1204b2740d471ba1bfb0292a821d681d6dafb946200e9c2f9efadb640730b386554ea10c14e6ab2ef2687997a4266565fb3feead2ef0358a03f8acf25cf74b806d8d43782b9add021922651581fd42ac29415c45dbb9b2cfb0d79e28f1bb36922b98f6e6be611a52605719757a328e911067b7ae5939fbd290c4df4917ec16837dfb3f01ac76f9408c3214a13869524f2829534c106e47ab19ec139cd8f744b8741d81820b84feda0ee51e38e5f50e9ef8c6b547c3fb3055dd5ae9de484e6cfc1df2e5272bd5ef4f74ab117836cf40d3d17149e89cd7a7cf90d51869fad22985e3e7754598d9fee8f3", + "040200737bd80b817505e7f78de8af896275dec08a20ba96d576d54c9ff8cbb3e608458a722aeb4b07766a5c5d2f8be65e63cfc6e74c994b38a1531469e5c36be069096d03faf4235ec3a5c014c5e49e5e1a4579d8c56f1490fbf98d09038ffb30c9ff6f4a769005314e2394f89ae5022e06407e601b2a44a2793f", + "0234bee537ac4073bf2ec66427c9c6da690b7fb3849aaaf246e769a11d4e207b360ae8a70d0305e07f6f3554cef05f4090d4e034678960e7752c6badea2154435bddb1713a3e791cdc922da8efd7fc246523ecb93ba690efcf2e60fa6bfb7d851fcc300337e586dee55bf7509ad46196777f454575799f82128b2f477f95811947a736a0a48d359c35540b1ce95226fd6229704c102e0cabaf47004aa5d0c12cacbdc8e39c29bbc9796bd9ee1a9cf81b4d91b27b6f8977191c7df761b71015e9970988ca6013b2a746b47fc983f55d5f84b950b99430a67d29bc01c2a46de4d733865b1af5db98622980d5ac332f238567228a27aab60844aa372ee0170666fb7508e16293e2d29bd7f4111de445853f2d53d95773947b818e0f171d80a5a0597c75e5a0cae2e4cf63e3cac5825789b809f7d6b49941844292828feb9768b156310c2ede148afba6e825b47ef22c" + }, + { /* i=8110 cDividendBits=88 cDivisorBits=78 */ + "bbd0b4cd0ecacbbfb429b6", + "32e0a400e42192c6d81e", + "03b1", + "017765c4aadcefb062f8" + }, + { /* i=8111 cDividendBits=2885 cDivisorBits=11 */ + "03f656b1a9666c9fe990155dda95105f473d210efaf3f536cdfb1d766ef44bb8f3ffb9535dad0bfaccc2b52d59ccc91423083694b716bee07e54233db932c9faba2d8eaa3f063019257e686a443dfdcc8a3ea15ab8dbc1100026ed7853c789aae509696e0398112c922fbc4c0d492d7ee91d7405e96c0549dfe154096425e276587cfb92e27f56e0bc76498ea97ea751f1a7780835648e8cc40bd94d4e9c0ae9a384d690abeb5932e4c47bf4c1ee6923817aafc89e8c97fa3f7e360d53165ac492e0027ba3fa2be39697dde0a51c0d7d14fbc648a0b69457633353c02f37b973082a0cc99b05177fd92156eb4bcf70d02bda19cbc557f810fe6862911e4cb86ad74cacad4dea887b1669b5ac251e8e7614b5c8d86d0a433dec6c37df0f95bd0dcbde9f4fafc787ef11b8e9c1ddf4ff0532e1828adb146f927d7414138f5c61ffbcc486311558ca63dd94d474ca779b5227830e44c4bf81a4f4fdf928148b3da1ecf4ceb1c6b1cdcad5", + "01b2", + "025651cf6e8a4726e111bebdd9699f7b71fbf277baf55b8e0a9b339742a09deb53c27dd527eb61e7b2963e0a3c0c42b36610a45300a46bdf4242254db2d85ad3997812168f59c5125f424e1b4a7725a1f0ced2ca289df01c504f96b126ccffcdccb42698314f14bf73b90f82fadc1f8e1a9c94a8a600031e994b1b27c061d95780e0ba2517e34c05273413cb4d904fd1f52db2283bcec7b297082b3cefd7ea1fa3b2a1f49951043f0d6dfff95e565cb0aac0b330bbe6657166563e8e591ee1c7b6318dda096ca2bc834c9a78b654f89eb89df330bd2d2bd9e3370cd47582c9686ca1a6ce380c70f54afd403f4a35eff6a9caf8cd2301295458b84394200780d606aa472ec752e52664852332d04aa69cf3712059e904dfb345da60a95383f98b16567ca4f9f8a51f4db2ad46b478eb5de7bed37d8e342a37bc6ef0b56afa53c27fdceae0c958f212cbd86101a56fd77d244895fbbc046d8127841cfede1bdd923de8e1bc9fac1fba", + "0181" + }, + { /* i=8112 cDividendBits=4003 cDivisorBits=1222 */ + "0338b4f19d97d80b518ba28dc891009f14f8d92c95c3ca04489cdad935f1c3fe8642d994eb58dec0efb16025c2a520da485f8c2ef352879cafc57376282f72ab99ab84c833e1bc055fd0802ebbcd8927adb64715bb44fcb54aabb80557d1e416f7fc76b09287c32e8dcd0232a2cbc0fe69d3d0ea19335faed45ab584a2d9e9055087481de53f54112429d9d7dab7afd1b4967e702f5c796c877222cfe1369e5d893d9c693d9fddc15a8c638d3449949af120a55f657a88ead0ff02dda7980fbbb2e82b6299b24f8227f82dc04dc3d874521d3c200a5b90e6f433ad8024922711af93d039566c59038980785aaca79e6e56324338c41d136f8c89f01b22dc0c4f03a67a8fef346f27110689ad75469c238d98420aafb34ad05f80ee0d93c425a8f409a23926828754469dae5c333b829d604a065d37beec0526abca8082cc3f55dac233e7816e8f4dee9737f7d0024c9c04e2e09d79d2a1e840ef4ff9da3384d4a2ba39b5051ac6f8bf191310d96b3f3551a2c94de55827e9ff69e2893110428314922405de85f4fe2d2de42ecd44ad64e4233c754462ca9d7571493417854ba1211d7b8c6ebc35d767b1ece966d76fa3c3f64079058f449b813a3627958e276b45a1ff7a54eb22e547a286d4282ff24b89dfad9d87172e198b23a74d45f641fa8a0733575173886adfedbc82b676345cabb93a1330", + "0263a3291406ef628eda283deb2d82e546a429ac42c8118a4a6c8c3969a7eb781dbd85d8896837e8083607a051433250aa0f790246f3369641652f6655858b09f3b63ca3f51382b6c6d2e7ca97ba37e3c75feda35a4dede553c93ea6d4b003c89c2c1f6a06d278fbf6fe257323bb6799742b2ff37753ce4a347c237f1548233c85744b3e150c326da470f89c8fc6d61be842a8c49b2828f087", + "01592e10b755ad070b85d0a4729f097f01a0e2283f4f331a949d14164c285501bdd91c8358034888abd0f1ef4dabb20c3422abd8e3233e1389414cc34e86f1fccb06bc5daad20df9127b82d19ad6215c99b69849abfcdc74747a25e825b729a902f444efe77fec7c3a9ad157ddb8ebd81aecfc4f73ef06dd2a689d0173d83aa37e843fa8c49aa218a02afc82f8a9322745519165f42d04a8940bd799241ba0cf2a6c60eff244cd78f6bf5a8dce735d4ad454d19ac43810ec8461d89bf97b7393b5a7cea337dc8d36bbf47a180598c96f344b9e4270cf9924acda2747dc34dd2194e9ad7ac6ca9e3d98ccc90447c7c6670d5b793fd04cb2d0bfd20704a2b630846ae4a132743788e18db9c12075299204880213055151bff005286f74645478895f77b8081a448c011201285ba107befd3cdaaa457eb8042915b14b3819ce98cfceb2ba6eb9ae8a6627f8029880fb43ee09fd676609392bf4aef57ef1b7", + "020e013f856121c98b5300a9d895aaa02a597420f2e652346f47e2c963d4fb675bc593f959b6408073d9a7e2f0472a39ff517a01b9645518d3fc9f9806a19baeecce34781c6feea29b1e4315338a668443d5cb4b2372c0aa744c0bf7deee8702eefc1cfc888b02791a44343089aec0342b82eec5ff8ddf60670a5bd84ffac803098044e1cc803fbe098e9df1ea8f9af6cae5eba6d9e4150baf" + }, + { /* i=8113 cDividendBits=2980 cDivisorBits=19 */ + "0518c6e5626eb94bcef9d55c33ed1ae8d59c3c54c8586e1e1e3d9247ddc79c84d7a1a16eb1ef10f12a0e19118b134b7b46c8154a2ed732d6f8851abc83d1cd29942ac63b77d2dd09f39f7e255cede2a574ac12f2cfd8e0efb91502f6bbc4259ce56f5f6675c07cab5407f95449246d19472bd4a9555a8fdc949f03cd98c5422413a3e3241c45c293c747aea286b883924199bc8a8a69dd47619b4f052846912d87790310498bc053f4d6531cfbc4460783473033e5364b0658210a57b00fd89aa75195a09c9cdcc832061cfb0d9df6ad9dbbf0f371786fa5ead9c24b6080f130eff40cce22dd6be8d888287dabb1e8dab83abb90a6060a081e2cac690da2d2529fecea87bbae8d6c0831ea1d0ad2b35d6c7c1e5e0832d6cfbd76d735e5e3addfd53f3480eb0f1137390fc83208382fa227963795bd72a64f267135bc5822d52068b3b677e272a0e1bd850d64dd466340d053984e5e93482bd38fe73b1d84a69cfe72fc38d5eaf5eb45b150f8ec74d0ab4331e37873", + "0643be", + "d046f51884a2b639c4be93af3df87b0926662e76cb8017cda0552a6cf66067b1371cfd792ea718efcc46d200d5260de633f077baafc5ee1fe7f3f4bbd6388faaa578299152b9d5862c1033516c07bd84b6a133c5236252d82b87b0cae873cc16fda763879125ae21a9eb6eeb878663e5f9280b1e0a436ec1f17a954246478aefa26bbbac279a9e960d2559b879a0b4f0145ec51a5ee8a86fe2a873a50ab641331e091104754a76ed67fc2837e1c8d0f69b92e1f50fe04219b915b71ba76ae53890a010e5faead92d02822cc9486f9e115080e9202bd8e3e2402c80c62d550c447cc2de397b401bfd67fa7624bb977f01c0593ddecc86816758f2cec9915cdb10063b64b72a6afd628e934a89435da4a39479b815f86b637fdbe62112e63b916d48ff92a486f0add95b9509545e794b8f2c3ae40eb8e39650f2ece7f7b0f2b66bd8faf53d8dce1d81c6a0042b25e8393f0e572485be869710ffb9f5f456726b02e0fe70bf5bfa321434c091f7654843a75d0d", + "0401cd" + }, + { /* i=8114 cDividendBits=1631 cDivisorBits=326 */ + "737034c4d3ee7a7d0761449ec61fbddc82612e5688c386f87118648b1a87ed867bcba2b4cb3ae06cf68b1da3027ab0e74b01246fa3e200d3df6aa2d07e2e2d83f513729b22adfe9241f828ba165e699e09fc0f2dd59eda5a042eff468d6ced12334948f6ad74f290e15e7f70aa6c334ad8761bb38f15735d7682e082b1a7ef46614f8c28309c27b9d3a4ef5591b901499d70e93d5bba11b449dc9f759378cdc6b5c63218a918c1b7a0ed247a9e76eeb87f3d0e4b5db0792c6dd915ddba780155b4b5e02dd5003aa898c77a38", + "04bc940afa47f20d90b408c06bb7c2c72609a8991e34a0ec38419813074056fdffa2b729ac220180b1", + "185f12bf7608ab3354c0e012381a84133ec941d0e04fcdb7747111a551b14afeb034ab839b95de24aed4c916e74a24f7ef0dcfeabe67ca19ce7b421592199d94e4019bb281e97fe2fafabd47d473ef843e1b7e021448b522a20b68ce4c2179433300df2ba21064f8ce6c2678029178768caace4ab7bf42822c709f103173d448cdf068e6052b7ab450e78b22cb0e2903cd867ff4526caa7cfc9903e781859262f04151ee", + "043303b37f5896018b6e47209737334622c21bb2eb8b353e1e33f7f92c39eb13d3b904c514e4b8d4aa" + }, + { /* i=8115 cDividendBits=674 cDivisorBits=145 */ + "01801cc26d15544f45e5d9dc0adda2701d8bd8637756d0471ca67f39e04285b109cdd29e7140647420285dfec24f4f8c82d29ca5868434cd6275c5dca6f1dd8c68dbf65fac0111b9e50fc102d527d94d7fcc56f2a2", + "5320d86d7e809ca18ca4b93108736611b72e", + "049ee74b73d55b7b44c8a31dc3288ff6266e9f9dc26dd89fa0c79b01f585f4f0373edb31193d8e6b60b5e8437e687bf493b1cd3ce9d38768f46afdd5fbaccf1e2ade0c", + "397fbf76bd74c4e52e59bbd3fd02351c787a" + }, + { /* i=8116 cDividendBits=2991 cDivisorBits=449 */ + "61e41572b3ab952237d76f8e5f5e2c9e6de30940854faf4f2dcbe88bb48cc1510d62c9c1525ff8fc816514686d7517643c96f6b4f759f903b2e948580c747e2bea9f86a99b92b5b7a749ee66f348a6a701f1f261d8c2be71e6e86200cfe49f2dfcc994af766c404bb769c69d87a8601329eba7a0e6596e5d634d35f255ada627e5cf82c2b7f97d541ec6119a38f3968b51bfec78ebe0a6fba2631fb79deb574e202ffc7f63285fa115af3159bcf0d92a5d65695161df7a89d46c80de2799acd17b5e5cad2c70a9c900b31e8d27e5cfc29b14ec1bcf21dff48b2f84c62782b789935327726dfea588137bb1a162a3e185e7b2d868b4e53d221ef8daf04d9e0348c8c8ee6ba835553c606dac39154660f75b5bbc843fbe322a6be824e78f829e7026a3d308c437d2c3ffca1cab58cd435b023a9ff52b30352e46982c22279ce9f6a239d79a0a0d2c458e565da7844cd84738ee68eb76ce5425b81eaa500a3e772507b438e1a001a3cef1a038364b4bffbed0d7bdd4d813", + "608dbd031f6d3ddb2a39abba19381ca43414ca569f015e53efd2ed4c8383668b31f82fa3101ca6a8e061b03956ae83af0ce85696d27cadb2", + "01038bafaf0d78861c9b88f3c422eacd8aef487ae8616752368a5e96af80041dd444dd951eac8f80c10f9e1a35134a28a1857be2ada67f1947c854be29d18e3bae1714970b0ddd45ffd49ed8bff35ddbebb1a0441b8db9b0d5a7100543a172ea49bb05b36fd4b198f241db00c2972a32cc4392bea478c166e3129b18d69ff985f2f630913a9a659984ce066af79622365839be56273478ab89c1463cec5432eaafd0956aa9a53aeea30a15511fb013f542bf2ee2caa05bd88b882edf4750b697b68a06f6879fb350b14746f63959cf3747a5a747a0b70b21a62fb10d0df053cb6465b8a7ef598e1fdee1201460c6798699d3d2157cf41353952ce2851455be0b13c5862814200d6c9295f718615445aa3ce165bbaaa157d93eb937515406dd69db2e304ce1acb420b3971c892b3492fddccf450120d2d5b8f57a631ed66dbd", + "0ad2f03861e07e03e36d9fdf13300b9fbf6cc722b0e8c2bb151171116a27898f695cb672caa7808b5a79833d863e924b80421b753307d1a9" + }, + { /* i=8117 cDividendBits=3285 cDivisorBits=3185 */ + "1d21749dfe2918f2d648b37908e051a5c89bb3b5a94f36d6a5c3f0ea9033ec4b9afd2453c2caacbc10d79a10aadb31361bca0381bf2d2f72b323fc469cf90ea0d174a40a9010ae8d9656c3ca76e8273bf97ebb41cdd648285194108ac86b3fadae0580751071477814067e2ce5cf4f3cbf819534a211466f34d9ac86c5070f24bb1f3dc3747adc43d0491e38adb794b1d60e7ea135faf9eba1828ce8d5c9503d0ca8fc485e44e8208739aa0d1630294dbaaceebec151f472fb329ba0334a221fe046c016c05e3d4d6e7690330cc3986b42577e272640cfc07e4d29105c60cfcb2bb60d87fe2b690b8f263bd0dd90cc078d78b1c3f715a40c781244ba6ae1a4efe58985c95c3a3fddb2216b88475d783e76892bba53f6fdf0294bdde47d863fc5e1f5221e5141d664a6f22b80719752bd5a768751912d9d412916db84c254214d035fdb8d9fb767977bb0f2ac13c042335ccc3364f7c596bce62de4362ab7e123e4048e3b175b4bc153b5f35b84a5f8a0a1e9c13b6a44dceb5a17c7c4cca6a0924f8114f86b8ab3a05afd7d434dcf7e2514a16dda91223817690071", + "ae726d0b9fa0f46c575951fdc59b1f8522091b158b44bddfbb19d7d97b5321b3823f91ae0eda41633af04a54b9673519563a53088ffdcf227ca6718349b532c56f78aa326de0190b59ec246d3bf0d9b9228a83157b65f4576e824e2719ecfdde73cfbc5100a4a50007fa44c4e21122a30ad1f466d6e3dff5bc5c0e00fac44a2a406fc61c341bd0a1751ab919e4acd206f9ca5a31282b59b773058f43271de3a653355d1ef8545f9e05213c3f7fcdcbcd7f7b62266a2954cfeb9834e27d397830008aef45708ed6a24f8a197aa28fef98f37834c019bd07404e36e76786df6b38469511cb842ad29ae52d9fbf4aa562d885abee9d794dfc62c82f6a7591832640fadaed6a4b7b0a2a9b12c1c7bbe2171f521e29d7c2e934092e9ce3c5028173ef0e2ab618e628010b67d0b169edf34886a6976aec0db68e566781191eaf4ebbc2aa4d84c11e8cd645703fdab3b6079a5a9cff7a662407db8187b726788e63bdf6cb5a1c7de615b943f1cc9779bc9cfb9a58cbdffd2d1d86414acba49a46761b7ac734196794b459bdec8727dffaf3", + "2abfc6a1c1b42528dd23a0cbfd", + "56655f082afd5131f78a67eafe8935c0fff279a949bbd43c0f928066e2aafd250eec3c061006f170c0e5d88247da7cd1cc4c285afe8725cfae04793c942ce6b682805dc88d565a652f4bf2d2f50c49a632bacff417c80d560b84938dce406c941fc06e7966634c0222d340f4582726212a2c2a66d14488fa2c502c7c4e20a349a06f063216c977d28d4f1461b7d993286e734ce63d0afbc603b44f847755514000df71d35d7f719e6de34c254ba46adf8a2a204fadcea8497e2664b906ac4935b1a4ff76e4b7670ef2abe2f37bfddec059b8058008be7f8fe480ea1d76c3aa4c860d4d444f7df371c1d481140e0441f744004fc7e210e411ba8c7fb556274fdcb053ca4c62cdc71d549941b8e3524cfebf330f3ec80b96468a0e514cebdf1e58970e773e6f09f19a3fd78553af6b9314869e6fe779908934965f14106160f08e8bbde199e728ac95c5ee4b96a5a68749d03aed1aad8159de4912fc49610fca96bd80777bc5b0723dcf36cbed8ccc13a3504fdeae1397732150e582b6ad95482d15029eb1070fb3b20cf4022f4d4a" + }, + { /* i=8118 cDividendBits=1938 cDivisorBits=1667 */ + "01022a215bfa03aedcb1f92c243d8b8a9dcef80013691c6995529da473379898afd50c31d717e626f23ea9862552ba65ad51c78dc5a93dae2db09ac3b070b686c2efeb9f489bbe88165e6afda8211168980f881e3b045269a06a3a0725ab31757e7fe3f865cd5fcb3174e329f179236e5141ece2ccf602bcb13d2deb0ea317159ffbc5ec99d062beb69c96345884914a6e045018d4220bc900aad01d33ecfaf0f7aa274ce25f6ddb5dd8153c0b5ebc0deb0f250588d0457063de6447d94d3a8496bcf38e7fc4cb9b3964481f70b40339f856516d7461cac05bfff1b8be595f7e51ee61d31d05d3a2c95b18c81959041ed671c8", + "ff21089fdc7f79d23d86bf1cf1129d3c33f7d914b7083a1eb5d274f23bc255e468e7e47a09991f60e19fb8ee02268c03b4b00c733f73497a3942378f6224091ca7306a9c4120b109c6d1a5fdc653d984b83a3623a7665caede302c6deaf8b578f81abdf0046ca5b6cc2e11d3465412a4edaa52a4a5779cb7942d82493f2c68858fd1e308d144cce676316481cfa6ae8ad2844e50a5ed730b3781027799168a4adb6e534e60514256aecfc04121eec74b239fcbda8b5f498d7b5272c0434ca5efc0402903e72093d0bc4139e80c3db32d", + "01030bbfddfaf71a69dd83196993db4046a686d705e7923ee5d93223d894e1b9f43ffe", + "09582310f8c53508acd4ef019f0b088dce21da3d23e645ed3c8755f9d238f819d60a263e8aa4c5c442737cce8a7735ab2a44990ec001700a02b272fb9c0aaabaf422ae6c6ea3f71f9589c690d0589a25070a608d14b227055c1e969eb58081f58585c64167788a5188bf19a2898240780c1077221a80f317c63b4c48a7bd57f5e59428827ffe5a0cdf7a056a13697d235db3f4e72198285062949bc241ac5220db22aa877d2ff40bc9ae08bb1ad91fd3120dcf7111e800c612b57978cef97950238f7e02f2a3cf474d5509ed7ea29822" + }, + { /* i=8119 cDividendBits=1643 cDivisorBits=1107 */ + "0738862ccfc8c35ae539815ab70ced149b5340cae53903dcab88f39cd62a62dbb4df0dd092d18181daf2fc456dc3c527b1f7bd601e43eb3b1d07cba4efc76f5e0c7b2cd8194d2ddde5b59af67409f2ef5413bea4f1d4bb15d35d6a111620ff4388dab947fa03e41ec90959f3bb4e208bd5ee0b98da9d37abe61a43b847b9736e9abcd833640dec6a33c460fe232409f41826307a6010b63d5cfc2320a81c467744dd82ff66efcdc1f314208efe2e5efc6ecbced11bda2feb4ce92ed3c341d42200314c270b7b9df37ecdb753f20c", + "052d34fdc1a6372364bd9a71b4e2fec2f49e356a79b3fb8633a93da1717baa42fdf93ec6f9685b8bc405f9dba29f56551d00178fc743e1f13ee0741380695cb06b33d62bd9f268c6e6f7e849d45dbe3ac25a6699e9bbb939a0fab725b58cc85ce33cd6fd734ffbef67da58a992bbd3df3cabff10a6df03161a9126ff27c1dd39e5b852edd81795d60d2f5c", + "016517d079195fa326526d99a086f65ea2b2563adc4bfc67fa2327044e46cf9d0fb882d0f41d44e5dd60dc95806ca8eac08937120a8dc54bf7f781ff90a00078c49e780c", + "0177a9f905fcc138455dc2970b3416e814bc44a447272e6e2c794076b3b33c9507d3f7be5f7d0c9f7b163716f9c207a3a7a3780ad9f33f91c0c05db6ff7583d50d66edd0961690c0fa47f7172eab5bd694f2c5238c5a5e1825fdf26650385961eb3a8effb5d39ce092d57b42693c59409bee4189bd3d37b6c464ff8d061419d09780ec36b9bfebd5ba99bc" + }, + { /* i=8120 cDividendBits=1824 cDivisorBits=17 */ + "de6f9e160288439337c8c23a466043ef8efc61d91300c59cb560ec7ba036df9ffe674e49c40dbac659ee3b1db4db18be6d19c358d0610ae406792ab028312207cc4c29e238515f3ce448dd1cde703fa173d476c3109daa7bd532af5c0ec06ed158b3f7aaaeec86e56955a7f33e24ee8c0d72477c0b44aa9f3163cef1e0a680c54a7eea3f3dc38474b83b07e707c1bda5aba01d5bc763786d3d8869564ed94a0688288d5cba8790fc9eafe1888a2d22bc007c24a12aa9e5cd43389116634b79580df1798cac501ec79bd8355ba9b0c7d0edcf4177107ab90645409d92c73c01e65ae55c05", + "a98c", + "014fdb8fecc37cc0e8dacca71814020145792c1adab7e20611410ca5f8373f1b7013dc517f8a4ee8b465e8853c5aa8ecdb7c5175d92b585ec538fb766920dee977d9c202b3de99f575a2036d6d1aeb972a167062eabf39b2a3cef1a0e6590a355fabc070bd64819c0c3a8ad11813a86ab550b901fb652aee0a9fee58c3ea0ce2cce3e52a4be825352e684bbb0ebe666c82c517390b7c601e1665ebd019004461e63cf73b50b962bd54f2b7828a132fee9ccc1908fedc14832832596bd4b437ebf26611a7fb2a5950301a90ef7bc06657a0947036ae71bb1dd5848584a0f12f20014a83", + "2161" + }, + { /* i=8121 cDividendBits=2039 cDivisorBits=1481 */ + "7aa43d0e44eb47d9f905bad2b6e30394833a1b16fd60dfac4a6f6c80f698d3518fd25468326f262db14436d3aa033e2f90aca5dfd173c3261abe64940b27fc1249bf3517dc37ecfb5ce8ad12ba47084a3c45da60355c1db8d09b069f80aa144e56a0ad10b8dc022c5ba04e3c9cb3db47bb2074a098997d87c019bdd4751a4edc3e2af6673f61ded9fa60996823a45d9579efa2559ed3a0e5133f0e00ee54bd8fafc997496023cbf138740132c2400f6cd73f504c7874fad167f085c333d62799c2153677fb9a25f8c353d77e13ffd75f080ac3da26c521eec4d52f94f56f55d7b3e51f23452d731bb4095c86238bc27d048ddca0aa8726621d25ca239420a8", + "01c5c714a3c57019d17381542089bf3061fa28e3a9875dd798256e2829d45f40d94d02c89e81d5ef980c5f11801f55bfdcb2c799ea72cf087cef7f689d3e9a417bdf3ea3c9c59e87de03a23394b8574b6fe140f5251796abb0b2398da551c36962418b75580cd9c8b00d44ac0fb782987a8d39960d9f9cf1206a495f752de04c9408e073d4c71c8879e6df02ec87904de6f7b43f1713796e3b0af9e263b25f76a77986fa205f124d762f09c0b63e65c60d734678504e96297549", + "453047bd9489d1b71aefb7f7cde8134e3eaa9647b90b5770bf59f8d87836c45e1edb84968e6bc7c04f71f9d21b043df888ed4a661efd84fdfa3ed2379d93c5736e6c0b5b9b1e", + "cb07f434cb592f01d2f2e8d04615f88a75beaad2dd73dc74f3766e4ace851623a4e424fba6bec24adbcad9eac1f88660f45ca961fa98ff4c1554c42bdb944199e444bbea79f4533896a1c6461f5f2b928253c6d527c1e7123ef6a8bb4fb66ac599d56a6dcc01394d3c78eca53280dcf8bb54a78c4002b9c7f426ae8a4f3890abd4059021780b93fb03c1baf2f8c90232d77251d263323c0375b30b1125516b9b4b87fe9688bf66f43b0a12022d57c4d048545326169cc22f1a" + }, + { /* i=8122 cDividendBits=3109 cDivisorBits=495 */ + "1472e6091d2496693b37343ed1d3dcd33020680063a50576338d8de081a1e74f3b7e7823ef6fac0c11b86bb084b6cbb39cca3a5aa9b969372982e43e1af13e549a74c786cf31d5debc53ce2b8283214146e1548599258f8539744507a829d8ae5e1648437e5028aa0efd41d18db46234ce7f1ee7ee04400385bb57f12a75e57904ef3081ab60a40b797f89ce49e04f8dba4f118e8c3c4ba730507515fbc5e948591e379f8b2504da2707ebfee3a9c893dabd89df23a4fca2f6be569bbae68f5ee664eaa8bdbd58bf275a63176cca83a30f766c1f30eb1798a4d54e3b88f940e92fd3c58ea4a6646f18662db7f0474da0d57c99097b833982c1c5725118e6e76874f4f1cef758ae116d0e908a18f699b61e30ae32a15a2ed1206f9f48aeb42891071469eea55478a76bd65dde31f811e87e9c8ccc45f3da9dc70bd220efff1395a95575b851ab1fac690c444372380ca2bf7416b415207c52b374dc939841a518ac58f84cf5a55400f8f600188fbd8090fdfc585ad702529b5c3d7d7a68e325d84713b41ae6", + "68e470167a865cd8bf7b7e09f6e940e6033b9881e32ecd3739e34112c2de7dc0bc6354c97eecd0dc726dc3e0198f7b5d6662f21cf226c54dabe1664a1863", + "31e8482491a1f44d30eee77b031b256813a80509181ac27a4f5439233e1817c7a8f6211314b1785f5cba4f279bb31d418f7b176e059f05492116486fe28994b3eabdc5917207f2db61a32f0fd96d8fdaa408c9c486422f605562980279330ab3b5986ecf822a1db274dd39218b66bafb2ab999ffa3a60f1d7bc09b3fefa6a54296d647157c4e442a371a26169fdc2ff69a7738fdedd4ab99cac5a47ec21572796e4a486c2fbc3a1c43ef3e50b4a21d74723ddc3bd080648f128a8894b7a2db250366c1b2da2652bad95a6b3b25d7315fb77572d65c44d8e4511fab1a38aac7075e131d8a72c75a83b2f37d13901f688bdc252fafb6905ffb1d22ce0cbb22142283f5280c1ebf528d5096d79f98fa3c66277f11652b5bd77a1474c154927c32e606419f6460a219b28ae99a5b39798c221a4d31d58b52bc5ec3abc3a3697d1e9a2dba0580e7cb07", + "163a826995bdbe858e48e6741049519fac5fd43ae838f7cbdf65e4c57c6db8f0236bb8099bd3ffc0b7fe7e2e15b9aa7c0f9f7b4b5dd96ea0a8040501ef31" + }, + { /* i=8123 cDividendBits=3025 cDivisorBits=2021 */ + "01fbb364d56cd285f90030d6eb90722eee7bc05da517a05e484060ca56c20a2a2dc7df51f60b566645df2aca82a9566164179933fed0588527b9731263c72f9c04149ad47c3e19111ce455707d0bf01f0471419d081719c76b6320be6e618ddcfc73eb0ff03ff73588945bbd0539aec5118b0a6d1e3ff5531420e4159f919cc4645f288c471cf6736d08edc441d5adbba56cf65b2d83e01400aca2be034090e3a1bef90651f4aa9580809441794a048c4da32c4125012470ae50ce51b07f4681f999f49f63efac096ddd4e91d6f8ec8ceb7f11507d49079b5a380044ad0f4f6a58f01f555cddf8d70213afda0a4e14921c27e359a5f3d5c9ef166da8961bb529b05e6e9ddc6223c2b9f9bf40a11bf9d14cb15d0ab4009b970942f5cda6a23c5f23fddc7b07d2ed5fbbec864422a18b5875d60e88509e49ff2227d0809425037a81231cbaf80b03a4331b67062e85eebcfae1bcadd9d8e907f3ec54b163e88d9d41cbbfccfa76b3773d9bec9b6281c198a5b3df32e4165d6cb97689", + "053be28e746b4655ac8e85345db5dd78098001782faa1b266e8435fa51ffedac6af9b7aa69d22ae7dd264460b4c7aa0424a7ba595a740b02b8d42217d187ec5460c4bd31b73f50969d256206420517cf0ed060fba8b62fb936c759a1ba4c6bd13718c1e5237ff616c67e531fe1e12ea904607b793c6a83cdaa3e7e2476a77290c3053708241a367a33901e776c6eeb291a94e4d1771d7dea6a927a70a3af3a9261010330f8a53f1c8b7c695e31640ee4321205a89a2f74d618cfe6fa527e8f000857d039a2bac32fcc2e5d2cad8f4c8fb8bf77b796b943d247c166c5995ef8caa5677693cbe01dbe0f7b9a378faf3d9e30d9bc7e259490b75f8f3042ba", + "61007cbc4e1ae8a4caf678975ae6da4d7e1cc3c92fd7c82a03cf730921c2cdeebabc4ff7bea27f57b066fb312c7f7e246646e01be6ced193dfdaf8ffa9eceeb6146be79f7b042ebd3403a148a10a20b702e8b59dfb14a1f5bb05eb35812e292a85b3378aad38e165da0b31d91083e4a2ca2bb9c668e0d70584730e48a50b", + "0265bac94ee2a51ed6ceb88bcc9791133d80a671165674282406bde5991aa172f68a68cb7c62718c289af84381e0c27d3911ea9fd9e109e85fdae27395f6f3057c4f74d8ab0b1df5f4434846cd9bb10ff9daf6a3fa06b3d3aad1d88c425e6368e927b8a06abb74bebf2ccddf6d16d38f78199a0fe7b725176ce855fd8199c546b1750beb2159a212cb645b3e640299664e7abfad98c3b7223fde26da92313a2d9b9f77212f8595a8a77c0a8df684b9827c6636da664f74d33f456f4c953b9a2a2d6004b73d0c87ab3f598b15e7974d349ffc1f4895a452210533eef6624cbf9b81e014442f6d5e98e4199b731d7cf052841aab7048050ed3313a54b68b" + }, + { /* i=8124 cDividendBits=1808 cDivisorBits=1656 */ + "9a9af450830697029a9ef0a93d770065f85c9220999fc0d310249c9c23978feb0335a3d0d7d2dd71f806ed8fb71d8c0c60e38242d2b2c3e13d869769acc52584e60503c3241f3647735f65a38004068c0ffd99b800c32b97b08791aee20b740259ed2e2872d1a8d0a7c1e8424c9828a4365ddbf3454e0b2241101c9d4edc53e46c1da11e72c9e3f04dac6a64372b4660fb387b22c269c506668f1411a7f1d12d84cd9da4a20bae5bea71b8e74f43d1de739ea0d889efc83b8b2b0b3276013f4077face8a816a6f3cdb0d108d5c9c8f4168fec497feb9d116c779e871a6c262e80d0a", + "70b09ff04793eebf4f80c314b4da5483f25b96c06cc235d2d2a660bfddf289393fda36c343b1f408a8ee3485800fcb7e97294495f0dd4749ae1e73c066c1d0c208d3590d7a4bec0fdd971418ca7aff91c33917955645bd00915b1a597c291aba3a4fbbc4ae7adf17482b49410cb29e0b41363fff40c0b93eac0bf48aa3e8dde708b4c6fa7c70033a1a598f4a8a4805296a151ecc7f5973004fafc1a7079fec57e997569d0911f204ea69d753ccc42af5fa547126d31fd44e7a1138dac29e5429e547284e7c0dc7e140217f2792e320", + "015f384e1e21d668aacd37d1a0cf08a9a8607922", + "12c843f1d9fe1d86fb4aae3d585ac2e62eee8ed99bf9d7cb0f23e43d4b5b7324c133c352e5378bdd8c4126619e72b720dc8de9d077bc4b380dfc5378449144e52e27b898575fdedff3e1f538b7fe595397c9682c5411bdb459a485ff977f37e158c7defc68b39f6b03715e27161b8f35b7721a2dd9f034eec666835d4df146f4e54a0b19d5a77448c5e094f394f1480560c9d0620b2b47e1cddd2dc302827415d3a6b15726c85993c1a37eba8ad60d155d8eda8935e8bb787f9f4bee039f241cd82c2b2a0cba674e7fede8880bc2ca" + }, + { /* i=8125 cDividendBits=3213 cDivisorBits=2047 */ + "025737d68829675cb75451729bc77aa38ef2217b07ca239fe9c84a756bddae26d59c85a16a8ef0ee24850ff72554a4fe29151ace48e5af989552cea944c8a688fd7498eb938159215f891541291325768845b68b777919f7d0dee2b243300a6dc26f161796536741715f510f765c335521f8ede014a7f434698b64f84b7e9daca1c459c620b57317d6e3cec25f661838ac908459bdf28f9e5155ab15e2bfce93575c4eca0b7d007cd664e8e4022483a2b5ab3e7a52fbf0d27b01ce7219508bc52115c900ad9ca35745d002009d737db1848d803599debd88a70ca2e2da8072b39cf999a5f7086cb339b8b4337c2c77e5323113adae6e058a604ebff74e6b459e66c097b5c930448e4a062319a278ce62faef91acf2b6bc89d6a826ddf3287f3e8f78ee67055a72f2e338355f4f49a40fb11599105bb830bb1a824948e0844c24c27188ec617b9af98e2b290103b78d2ed701a3b2cd0d386c98d19731ab84af686551a787cf466a18c15aa5e6bf491360d61f6963a4759ee784a32541dc494e9e79dca4154d6d049b5d60bda10ebf005ade81", + "094bcaf258b00b34c69f67ecbbc0390f4b24b10654ed69e74a45604552e0673af041027850c2e61f7fd2397305af8b1ed414368c34fa7e574d49415443fdb1dd18e844022b5cecb231b4a1804c3e94d215cac2f397d506b9d6fb48e2951f1275236eb0713a5de934074bb1d46c61f452d94554de185a79739edb6b1fe4c8fe1eea21a5feace909be6532a3e4b567ff68c224173b6d6ddf04ff05f588f4d10b280e76ca9190d03ec8ff8e8e8d8709b0ee178dc20fb640dbcfac711d48602c6fda84909881bde76b0337825c4fc4fb6541144270eb50889f892bd48164f2ee54bb07b5fdc854e6f7609589daf0c18a2cdbce672ac6ab1153401b2fd85c6f03ff3f", + "4075966829ff6577d0569b6236f8de28546585bc32114b224f00036ed06d844177c4edf65fa7c3f439ce4edaf71c7506d70aae734d696b13f9702d68371b30ec2676612720c440648773e4d5d04c86a557307fe57f941ace9421ce24e4377483b4b3c89b72f0f0c9dccbf340ed58f7fe887f00b31be57679a63aa75b3bf65fc04149d9884c4cec3f367eb24ac219bc3a7c3c", + "05128b3dbd4d42c5375d762dcfaddf22c332cdbb0efc33a777b90290ed9ee622ea2911c51805c99c6ddba215c5506400023c0b798368ad2d3c037b77910e381833d3255798eb4b562c9239ca45fe1d897653610539516a7891b589fb1178bd7b1eb18436d9e6b637a2b81be4141dba45ebcdaef3b4b6c0f3a0fda51aae66a1ae2a3101f391648c7e2eff11c35f62b42ebc451ae86fd2b11ee1dd5d82580d1fa2df28688aa4e6c8c35b24e22ff91a51f3c11cf624bf6ae205d9fd410de7901d0b5716604f1c76cc47706d6f3faac1963a68c676a09b2bfacfa367c0f08382c9ffcfb85b74cf6e13301429c6d21a7ea048279f41e77de08aa8d61dd1cdf38287bd" + }, + { /* i=8126 cDividendBits=4006 cDivisorBits=42 */ + "11ed49bd6592a3d529ac5a23662d5a397a73d9be9cd3b41979c95948c6575766a4c9f432062d28ec4f45506c91f05cf6761b716710d1b156868d7b9cf622f9d8ecdd324092b4feab302417e50c3d2d389334168143074603d68b0fb7cc94820809a3d08523e0202a4c90f7017ff769444f9ac8c70562fd8178a5cf48b270f18c7561b57b3effd6ee229bd9c4abf8c6e9c1f15f156663f7343b775fae638055d0a803665dff608fa19e7dffc511da78aafde6978c9599f69c9b12632d2cda5f5bb12e9201cd7b07a9f1d8174aef31f88e7d97e3b6205390adacaf0e42693dcd60289c1f3c76721e89a67b49af163eb4336f4a1b5e38177c6abecf4f90661b84f8324d97e751405556e8734b5deef4a13dbd6644a6ee22bdf382e6707dc2a9217d105935b74c3ee2d74e42f4ed10845b7012596a94399b876ae80cedd24fcf7706ce09111b0ced6bd851e17fefda47beda644779cb6c96f38c4b2597c4b991ac71d53effde2ce60525a2d82e5fd95c5920b6b9f1004276b85a7a37967400397483c5fb39119250860e0627ca36c7344783fe038337d91d88b409afe1f50fad5acce5926405b89ba93d9babe7092d7d8f94b458379a5abce890aac4e320d51547a437fa816aed363ac2139ebd5f3bc8424c2b9a36b7109ca5c24108b9700907828c5d53af8a3e5c2268c199353b3f6723befc9e16e02e", + "ff7f4a1bda", + "11f651a9640cb8eade0801c08bc7205c84affcc153a170a61fb0f0d62e0088b221cea059d783ec13e69e888343840ae3e15e8b9740cc63c7164b984bf76f43b015964987f5bac8cdafc9fb2b8892ec4cb3c075366b334f545568a9520b3574e37046cc370f83331597a20509d33f84e2439e59004985b9d173c42052b88396453dd4f2a57a219e7c7bf9fed0ba8daf60c1329b3033f6c149c67e8eb2f40cc34f4152f099e1fef4a954c1d8bf1ee2db52ed0fc373e5f84e987c2b2402e79eb668d44cdafa45671db1a8cedbb5c2b538532c4de96dbb333604e7ba1988dddedf5e572369bafa29d28b0c3f72289291c3caf3c680cb33bb31af2cecaa0cc42b35e24c2712d3c58d681f53ff2ab226f1f6c353cff77c59f3ed000c16cda97ceaf9c68003e60a8da4a0d8d80dfdae689cfce291c7067ca66a3026c6c25f381fcfb57e121aba7e084abd01c23043fd2ec0d8ea6b8ccf382c8f678b7b6e6ed9dd8d9b624e440bd881bf9f47741c0ec717943a6c47b060fc60f4322c079571328cc192a4d25e4781cef877d93984c183debbf022e2af49d9c6fbcb3536c23e5a3e0287891365177b8ee764811390ce263839cadebff8f44f917a72c7021307635e3f1067b2951603c8f51f0a71ee1ee50f24a4eb069a012f4f3ea26a589627f8de9ba95a4ce4e9ecf183bcc990096e5347d397df", + "db9b6d0748" + }, + { /* i=8127 cDividendBits=2624 cDivisorBits=2105 */ + "f84042001a5dd78405e0c72333a567795a9e417db19fd014c1933a5bb0f967e31399dd6d5e6255d0d386fcd686ec0d0b1d0695a1fe70a46c28ae40a7934aeec800402213af3b871f6a4cd2841856d41ba028b2140cf56bc8d359660b4bb492794e8517a6bf0093717d87ef3494bed9c5197e72c372818a0ef612cf4b12e52b1eaac5493c4dee8ed621d24eda6f6b2d67b5d834416e95e4d93fa95a625dff402314549557f303a55adcc161f7867d3d1782e9be33d4ceafac901f081a33d3f95b082a5591358fd169b0e2496e23db491dde2a690b53ed0e64fcda14ceec92baea03e8348f33940ce96696dd0d6c1d2d17662fd7bc2167dab67cdd1511e85914d75b9637f90e178040d9ae5da16d1c91b01417f01f0581d78a208b1636c596fa5b2c25b5aed2f709a681354029813688aba6ff318e635c9d31c162e0ca10d859b7ec9de39222ea53a3", + "016c2032de3a0f236412065f66aa1b8ac60884b8f98ecb0e237e864d36edd28fb0967e8d4d599372c1d6665d4772207611e7e01336d2e8b90e7abe4869f9e53d996d4dda15b77b94d8aef7b38896e84b8dc74cbbe1772fe3a65701dc7f3dcf476e0da0c909f1d0bc42ac8fbb503e6d5e8bbd0b45e16268da5bf5bb57d1219501857053ed4d8e4c61fd0f66e3ce84c084e7d5c21a7e012a7d74c4270d855742c4e41015543fd8eac867ea8554d3aa2cb3524e57537102a5dfd298f951972466023307e273f5770db0a79fc4aac1f143fc6fc1fc872774d436ad9158939d3ead517ebdfa01d081db8deb51d75ac4fa4729866f46ce8ed1f1a121aa8b6717c704876cd0060c31797bfe", + "ae88a78d55b8ed023f0ef7383c079ae3c2cda9ad1c76794ef1db29b7c017f7777b70dd6999ae00c6d3a8ccbf6904595857b3f6ca3a3c74a4eb1b765597219b96e1", + "e23464dfa999538a0c87e98a004b8f4978ea675a1910ad254e2e8e0f6f5f7bcd7ed857ec37203174a910105a74f644eabaf2e9974472b6ee93bf5287fd26778031ec52daecd97c267bbb8a54c71f160e068d49203e80401a057fdb1fbda257af0a966d90ebb5c6882a8871d8a3e25442e423ea08e864e3d6d838c109d9e61912140a3498b09be6ce8cd91ade4f0ecce4103e1c8b233ad832b809d0e1e4107b2804dbd8a775f13b8e11d06fe0c56c0cd0f804f338776d19c8534ce4dbcc6bbebd8c929cc77be8670e6700e330f3b26294fb3e9d8b5f49b463daa62c657c3cfcbc7e9c9760390871d1117bbd50e2da2450c9d340449127718024661712a88c58b4935781a7b38565" + }, + { /* i=8128 cDividendBits=657 cDivisorBits=593 */ + "0c397138f5fc31daffee22dc7ad244bef4b49a6938813cba09fa044e8033441ff5e4b8b71d70291f5025431e3c54ecb8307a512c17e8a6126196c5b669d5a86050179a00a71a6aad78d972758bfce4dc42e2", + "018f97d7583c1273b9f56f6203c5ffc60a220869718e12a8e663ca5ee2348cc3120963ad5349210c45455ac4580c921138c927b2bed2fbcc0024a47f36aaf6cd1205f4e3e629271e0ceb4d", + "07d4e1e347589f2c", + "1c4f336b8a546e47344b7d3172906814ad16ec1c6c9d65ff6a637d2dda9734072a19c2b46eabe286a3fe34550ab3716a73f24fb4af061c0a206e4175f34a7d0510735d87f19f7706fea6" + }, + { /* i=8129 cDividendBits=2330 cDivisorBits=914 */ + "02ad1ac0aaba8545a8d3c76ff609a27cb656b6b1741fd443dd50ae6a38e1949381cc0b2bcea996e6de62bff6f01d9f1d4fe6b0d5b20363711145573bf6bb06f6ddfd80df738c719d9835dad58fa685485500242234d87f481f324522cfa8dbd49a9228abf0ce3cd89bbae266804141faacad31ebabbb1001e8bd25ad2027834ace7eb8fbd872eb2b21399db6243be2d4902cd8eb271c8ab4cdc648c92665bfaa8e6158904c98f29bb0b764a0777799bdc7296ae226ada5989465ff173307325f372c0ae85c027a91762ba242b0e6ae81a31cfb4823101f40997d98d26dae8a8a1fe461213196538bb50eccd3e80e37f0af79b4ea83cbd3a790ee1883e60be8c053a18de59f4a14cc05b5c77f0b5435c304fcda928f5bdfd9ecaefa7634c51bc8dcacebc2", + "02921d14429380ec6f7a27633cc62883b54233413ac60a9738f44eb9f70594537391281ab7dce5df36787d4b658caf91dff2b778e577fb4ba97728db01300e30cc040d3afa51eb2c3e0cd8a480bdcc02635ada768e3fcd527cfdfbb73ca8ea2de719de7bf6fb3e371baef15316bc3ae40c9976", + "010a7fcc4b33f46c9e48c13cd50b1068454aab2cc3ba57a023b683c60499b2f857cad789bcb6e8f6238cc836905893c63026bb054f627ed63a454e3c856a746b43584db3510029f4739334470f6f009d0040889f2e61acee875449fe02f980be05a58105609d59eb02e25ccb0492060b2527ef220ce0b44b8323f19e979a3fa3abefca46dc4d69d35bf2e1e33c357b4d5e8078e69e94286c3fc27e372585e5246e679a19c66cb09a5e6eda94a0bb2b255987", + "018af4c764d1aca740722e731b9315ff9bcb90ea7ad98aec05b679a11be33d8fa07f41a2b3b13b5e33e679e9ff7736ef8fcab8a749503af39c37552fa2ba54cc447204a69a2573277f17981bbfa99430de47a754cff64257cc4fb4b747f16078aaf7d8ab0fc3f27d2fdb31ba3072a7389ff888" + }, + { /* i=8130 cDividendBits=3599 cDivisorBits=2229 */ + "4264ced165b38fa377ae6d6fdec187dc3cd1c4e43314d65fa3436e18f659517d51120f4bc74905a5d4ba4bbf5f942fae4b226362706c14a89224d26db928fbd32bcdddd4b832b7917a67c098bc55253fed2137876690aca1da6b27ffdf0b2c1c7845de1b362eeba2726e3116ad09042711272a02ae25484c478fae6c84b1a01d878c28022a6f5b1a523e14911fd44955cfcee6e6b31bf159752cb590ed3615a6abef052296a045c8bfd5ebb096256f291e1d9f8ab7233c672d87de60ac33b116b0b18226f2fc7dcdc4c3a9cfd71fc2d72f529f7dbbd35fa0b77f559cfd0ea8e8127449f161b80a602a13be6d3bdbe82954033a579a80f7e8d48fd4ce44d85970c41140d025a0719297a3a6494519f499356646292f2de61791bf2cbd42247a51de416c7d169c52d33f3bf07ff2eaa369070e27b59f3c4260cabc57d67ab2dec151330e72ab83ff0f29c33231fae02fa816c66bb160a66c7c5eb2952ea2044c082ee4d0d7a4e81a9b3b0d6dad69aef1e107790c5d29e7b871cb27b333b3459b3854b91bb8953c1598a1ed268cb614aa13f6dc473b693ead6854a2286a0de5d09ed27655f912ede2c667ce3f56995357c6bcee2724b463df70add8b728fba54dc82e11", + "1e4aef22f70ad44a30982bdaa3a88976bc13c8282c2401e95b992cd0c831e746fe615ec0b99379f4f76654cbe03d7b9d2cf38edcd8885c9ad0e37717f11c5df6c33c8bfc403b9afbcbd90cc8fb84e6b617ff71482ad89ecd6a4077c37958423680edd74fdb30be361b309b838b2f9a70ccfebd86885f637ebc5269dff84e102fab53a7e387d99f0cf03eff288dc08fc5d4cc709259dd4cdc037330f8bc9f0dbd7c6db69c774f6fc07af357693f30cb1fa54c9097939f0efaca064001fbd9cc849dc00b8ffc2adf8370d9ea5a5ec77fb428c3872c60248c1ca395812acb12e453fc7f953644c5dd5778fce95286505c0acf2dffc6c8c6c23d444e7788f15355c183d356a98d1122627d63e4f2a9ffe2bad4a7192208f46b", + "023115f1e95e1d6c972fac4eaa6b92f28c4d1e924dc925d9664acd200db3b1c72d7cadfb93905936d07855e17378febae8a3632b7e8f4de979a403459bc33cad1bcdf8b982cb66d6ad437109d40687f11121112e0fc18e805e18706bc33822bbc6ff7e8ff1c3f80f87a10fa8c98e8bfcfb357064a17ca7905cf0391a14e569a6348147461a2409a0a164b07c702401c2940bd56fbcd1145784a800b5629224bb530fa4e9d768314988b85e02", + "0345915b0472cc4719dc0dd60933c3053da487d4af412e5ecea3368e3112542edf9d391671b8b745f38e4f0770fb3f6865635474656e9ff896249164c68659d18aea94939c70597b641a37ae8770d7809512d9c6d447d5bfcc84eb9f346d33f352853453c854410e5891425b1bebd80d7e5d677614fb7a87b6a304c17228a381e67603e9c414810a9b289da3873c073103377c51a2d8d3746f437e70f5be77c4edb5feb61b8a127facbca0aaa5765091db32387f0754f8028fdc7b62bc7e419932183879d98483759b3167b27e7913bf9b4f99b6973cd6d0d94f8514ae08bf3479f7d731b6587a1c5fd688053e8500c46363324b4ecaa501c4d212b4c6f560281054787c66a1731d80999f7d855be124310d283b0efb3b" + }, + { /* i=8131 cDividendBits=126 cDivisorBits=45 */ + "220809ee13a5efc1627c4401a030760c", + "1280c1230900", + "01d6d89420a36e359c7238", + "119f4a847e0c" + }, + { /* i=8132 cDividendBits=1242 cDivisorBits=1141 */ + "012c210fed2459c1ac7993af89a98e8fe64ff28248733559a4be98b939ab762f23273c3a4d6640c177785801353eac32b067701738517e2eda8fb675f594e6a1350fabdefb564caa7b1a93ebcd3825de738e85449d29a38da78a033c9eb75ecce4eb013fb3ff748d1c7be148261254af4acecab39bf9b79ec3c30fe7c2a82f93e445fa14fce1b5ec8ee83123b399ee2a22cad662e6923417f4324dc8", + "09dfced2b5f3d67f79e52ba2721351b58319ce84fcf6c19dfd93d94e968ce28addcc6c8c5b806122ee3bf922fbea45762dd417c01af18691980a7ea07e3e3113feaede9474974fe6325faf9841ed65dd837f6f777d818ccb769d7c1bef172027f8ca3c43de3d2b0b24da6296276a179a7eba7c2e4c9c5c48c67d6639abeff0fe2fd2f3179ce76e806a2bf490c4c5b2", + "1e65278f9fbea6cae6e93ea7bf", + "05d5f3f23fe90658bd64ae0cc69f870757d3c8b48b1adbf6a1013927cf5ebcaa3507983a4aa2499ad4573ca67bd8b4d7a1e44262d4df2b49263785421e3730350439259f7dd0fa3a5a9b51409aac1681d98489ed34039d7838718d71d37767fc495bc5f695c0e1be574225a5f794996f5f91f009bc8bf676bc87036324b3db32787b14333fbf9df57ca4acb14faffa" + }, + { /* i=8133 cDividendBits=2209 cDivisorBits=852 */ + "01115ee109b30f9058c22e0aa2fb2337ca0e8357ae7c4a8f0dc638ac9b23f98398b2fbb828404acb8f8373d6c37025e7236c745f13603675e876a490417bda0c824a5719c0268c151dda435659328f11e9d9c4d5caac9e0daa4c3c46cc353e2945b33978c81fbdc5f949a399687b6e4f1b1c40d76703de812b3687dae4237aafb90da36603b6c532e6dfa9b6e10e4d9afbb13c469ac031563cb4d2e7037a89291754ec029f6033383983301681b2adfebc7fef890936908d46be44a54666a5c34ff066c9ebf5ae24d3d6e522a1df25e7bf3a8da4227427a7f706906dcd6bd2bc9fff0ffb774fd35ebeac1ac620fc5949e7a8c924dad5d090eb6a307cf0f9991baeb476a6f594cff18b69ad7ee73b5460f23bb29cb7", + "0ed4d9114660e57472ae0d4f8fd1872fcc229876b2f3fcb74ba34fa760ef14052549c3b42abcb0652a3bf2f95d1cc09fcf9061b6a3979e6c9973196447b30a1ac9138ff5f094bfcaccb05915dad27b41ce81a5c333b893c39343644f49ec32eb0592089698387b67571451", + "126e8cd1bb42b9db8e813ee9ed9c91f78adf01118768a4412b88030227aaf379b9ac76d8c8d74b4fea995d6354b04592348240ece607f8b71da01e3f4a405cda0f500173ae96380147a4518f0a68ab484791c2fae2dea95b61e37f21c848fdc7dd5cecec255b1af5d36a6ccb941a35f5e535034ca2b8acc84e410db11f23ff29f56028c2f17e8bd726adae8b507cdc80272c483b7edd6bf6d41319d570ab4ce14bd422cd7e10c393e568", + "0e8c5729afda8b70ae089fc6c4982bc89bb491c03520f17b71e5741a24e2d0b7dc3d43a05632b3c9ec443dbbfad0cca884f366203d7cb1fa8a3ad4ff3b9dbc2cb5061113bd121fa4c7658d4467266cd1d1b9de7354e10e9d902753caf076fe9c06ec301c153cd4fda2e6cf" + }, + { /* i=8134 cDividendBits=2077 cDivisorBits=1741 */ + "17d8b4eff793c8f020b4680233e2b3637a88ec50707d3dc0c0a581ca7b642257cd62e178bb9e7b577d167d4deabfddc0bdf1695e201e62c523f43b50d1c0bcb433ca2fc172997dd4e0d1de2779904e8e959035a6e09dcb0a640d4d5600ca9fbf8e1f5adf58578204247890a356477d5af79472c8a3b4dcd50f33b9f5dfb359bf94bc0424f274dd87c70a5840bb91ca1389988b06ce44a94b8f1fedb198b2830790f2e9f8f24530843b28bd913131baa7549ab6868c9f2fcb73f55d11ac129d64bbcf4817d23640c7fa734a681723cf33c5a21bb6c59e0d9604a0aa81dc1c4e6dfce8c6a050e3dbab8baac94203441b1985d720f837649d21428fd07c930af7e019c4326e", + "09ec116f4a8cbd9a3067aeb4243445cc1b529f1c02e15baf90633127e0f0a6cdad23f897101fc384d4e267563397b20fc723bfc96804f1a2fb9053996050e175cef1e9b2011841160fa66143570ad1592e9b6da97b2a724b1e0cdec2626bb0c92c752d75c8c2bf5b087abf1daef20512f166c21c879676a0ba3ac821f8c81868ef42b02a3cf1c99982fb7050073b9c7cdd225276dc0dd4a9d34a413cf7d56749871db8cf7559bfe68c456caf0ca49a692cab77dd5540bbf33ed679cb17c8bd5fb3bc997ae2a41c8e4698f4b1e9ddc96f7f716896391e44ad20d2", + "026742d35b5a751d5a222c72629b15c87a39b7cdf9dbe2c1ac827d79498f9625387a6959b002ea292201df", + "0902ad4163b8c2aed959a5c59aefa480988ba1701ff82365d0511e6c4ff9c347922c7b0da226d43aa0edb0c31c3b869fb20711b3ca17064884af033e220b90384fd581763f12e2f32992bd8ba7b45599ec49fa13645766a14f4d29b09b91741c0cb68e7abd2e337fe1ee512a745e3062dd81396e946c8a6a9f767ee4dd21d355fc9bacef74039f3b215e4b200ad8822c02e91d9765fea69e4153c1a54b2ec99f30aaaf7220aa9ffc6f3a7c782df9b1cfd16a3893fd768c4a5c11edd00f8d96b168d88a2675e5a375ed6fd3807a817f18046ac00f9b099befc980" + }, + { /* i=8135 cDividendBits=3554 cDivisorBits=417 */ + "f09eae66d39bdae0b113619ed84278eda5df76a26b238b60308fb73ab7e42ab6ad34182e3a7daead97be097feb529aced74d294631802fab4ea388c37e98ad9d4e2823b3c790ab04495e26d9d351035d1176fff5aaacf845a279e4bff2a9dfca37dc378f536831250d1886d5b7339df0f07df4eaaa497ee0952dd2af70091ee83977095d8abab2c1f0f03aa8e7126515595dbbacd52ebd8e6e745a7f7f3c80b412befe7501a11d2923a1cec3075dd8ebe3949eddbe8f01e138add7b1e543f1d4291200629e16ae37f6c84793ad3db43e92512cf1dc4fc5161d2112669e14080143e183adf300f3086962b255097cb51fd1e41d70df9aaf301a997c6ec6bfdf7e3b17fb120356c4e0235c1e1827e8348489c53aaf62a25e3a000327812e9a4a8a43af34367624925eaf880eb29d075fb77abe799ad18443e459ac0d49f4089cbc3ea75c0ca2a104993a3b59aa4960152f827d53218199d0a0917c890c5e905406fb421b5f09ee5d8e1fbfb4db6b5d527a061bb3d0b3dd67ba916f9e5137e5c8fdcc45544feb8b381ec210bb79134db52390c0d708739b4033e25a541b94dcf74d7b38fda0ff25ce27c0b4b4a5a6fbb24b12dc09228d7559b0746934a0", + "019b84d010ffbef069e69523fd9eeb63508f6276d3b4909ff2e5c8d663fbe3cc18aa644a6cc11319cae2bc5932fb20c79a035c900c", + "95afaa25a3776c316139eb16f2802d9a409072f765278471c779f92bec63a4ddfacf4715adf0638435d43a074c8cee3b698fae564f9333370fb5e96500c128929b8d1a7948e96e944788d3465867a852f97438e1515bccdc99bc4187eab3c32a4bfc3ea0c69f520fea1a0e77572a75f9336d683f3854cb07413fedc8d76f4163801e4e33b2b4c63418e4a691fa8384007bfebb9aeb585e61bd0cd3da9eadd1bb126a7b8b512e7c796d3c589eec67f5321972a5b75f585f79eb324976a5551997c5593b859190cfc48bf581b6d3e7833abf14b5c5e33584881be7c286dc7a1a15d0f394655da764ea8218ba2935fce4b58afe39656ee377a72bdf474e842a785dfb369b3b3f4a0b0e8feee48ec48c7c57a973f27057f31ba31f70f50fcb826601e5b8baa1faa879ef9c603539ed6670b03863bacca0156db98faad2b17491f6feb65b46f90a70643f892d748e505328386163de1c0c4b390658e8dafe7ce1f33ad2720b71a3a6657154444293a2ae8d326a6330270506ac05f80d589bfe35c99271be2f78ef627032", + "c802384d459a88778e0b774eda3325fd6b23e3de556835ddf03e13d59a5f636719bd29afd87798d476e7ce7a30e48e98f4b7d248" + }, + { /* i=8136 cDividendBits=3791 cDivisorBits=85 */ + "27fa38257525de90a7e8c90a12a2f741db5a701b6df5f24c2ea4d57c5c84a738f9a3b4d6139340a94dd548ddb0238d46c213cf075292b020a17c7b90d8b2f46a85541a24ec91a85643d793c3ba0f9695ea3d20fac00e541f5320618ffe9d24f61f2728fdc11a7f9e643e4d4bcca2df1c48455a38207eb072e51fee30c89409bb2ecb939a6ab44760e447502ce4c006f7abccc63095ea7743f2215805b5efb1909bec9d4f57650ea705e775729514e99c4b0d4c110a2f046e5ecafe453d2d63ede96e21efaf534f1e7eb5536339248ef937de32208239fecc6301eceadceb337ece8c8375ad8bcf824d16446e2baa3e9218bf26f7ed17b623582fd5807b9601a63a3055e355f3997205246f6211cb19aa0850692cf72bcccb666f7fbbc1a7f7a4e150281c482902f77924c6f64b4a0459f9dbde1ca18686ccfbf50cd20cca0faff34e8aa3f3a5764677493c9e9895a9b5da8bd6b8808111bac1b40d43ea610d7e14266440052b09928495d4c1cbdb8b700a7c2986e8827c55be3df9f91a4ad60cbfc1751d56df107da96388b061fc4d5254ae338b1c9ab4488188607f3e9c5ec48b1c6a6b51064d8678a4f9d33817840765cac3f2e7c2a31fd479878459ec022c0b07fd4d6799edea1850f6892239d9656aa663bdc1914a7cd08f", + "05bd9bb12b5bbb03c5890b", + "06f6c2d16b79067b8db78a93792d9e4b9be8c7e850b8035ba0be052831ce8e3e7a3dd2c74a5c57e0bcf70fc55b38e5939dd7375a4ca3499f9ce1e013f60fef5e050a2201a198e236f850dccccaf19ba7851b90f002732670e18f61ddc65d0abf6747a7c6735c73c4de85f3ea452e30832ef00b2892c400ff88b136ab2ab2139d919cd2eda140f47f9bd965e1cb907beda13fefb39a5188401c8dc133d7a9afc874dd3c37b3c783f478ab66c9a9bb3f0139f04b09c8182e912107dd45b304a4b8418a961a3ba200da6647da205f556812f7631cde634d6953ab4c8660d1203deded9be95c5b5ac106b03cdb663379a7599c630cedb7aeae9a4c20efceb62b54ab9a6f4af84298eac31076bd829e009892f5f55f07dd8bc9474b53da0b622796297b37e99fbb324e0f9572d3d0be4c731e0eeb2025abf5731ec472aa962b4d72566f34d891c3cc512c0d88c73e2d22448a153153410e710c8fed5b76ca469ec76e9ca0c8c92daaa6002c4c905be29b4402498ab1b8e5864b2067607bde5707d2058a638af2202d17cbf93584f6d080667a57fd2517226f145637928f2baca542fd0eec9ef9db59dc7f20626a05bb6f5899918f7c77cb595ea7b68355747b35b3214e9f9df297cc4c56b817022f802e5073", + "012661cec86a57bdf2d09e" + }, + { /* i=8137 cDividendBits=1370 cDivisorBits=933 */ + "03c50a9e80a9c913272dd44d1a932db58c4804915d1f3358b20d2e2ecb7bd907bd51e2073e2626201e8a07a306f8db659990f9b10e272a19d95411bd431c2469f4c30c7bb661eac65d0925b800765efa1414128a8cadaec94e88222913b24cbfecdf8c1ed86cbac0b4c8f5290a59be15e4ecdc796cddf46115ad599df647c573f55a151bff890d91d070620fb0a4beb253d06b3641afa18c452980524c614a10770891cbc1b72ead54af7985", + "05a2b701b8efbf6391bebb816e97b985839bdbea386b61244e7679b93e3af86e39423e75b1e1470f5619e6491e8bce224fbfb69fd1106d73d855fd107e6e19b9e2b2b163111ec35d528922751c264e7d60947bd578282e862745780455724d36c1198c7a4fcc5200af1f9e7ab7467c53fe50f63999", + "ab3d764f3466699cf6ab540c8fa94df8c509ec3da673eb5fac8c6a2dc90f0103ba1e03c6fa9aaf671df3c3dffdd1309817f307c15508e9", + "03301ed357e9622aa2bb402eca87f7828e4d7e5c0554f82a79980899f8a134c9b07bb021ce3b2c957acc402dab3d916c1dc5101990c022fc36ed84576959bfb35df14651e6825bc0c6acc2a37787106e5557bbb034c7667df9d170ca54dbbbdf568eed347da44cc3c0ed85235e254d785179fb4544" + }, + { /* i=8138 cDividendBits=2068 cDivisorBits=395 */ + "04b94e1d7ec6c6d16ebe03839bf4b39911dceab39a204ad3428fd02653fd0a96d15d3d63e76662cbac4bc60a66a692d1a427ce4547776a8001c68a0d99b8271075c541028196f03f3e17a515e7da840e7bd1e7118ee2fadc8cc089c4fd40cf9f0a9a0e54283c61b51c69a87c9a2d848bafbb8178f67eca737c63207ced3b98ae4d85f7fb5c04610fdd3a44ee0ae87bae868498173bc747f1e23912d888d5083df00e13b12b8bd1eeff37d45e6ec401f8448a9c535bdabf58c51502460fe286497a4dbe00d887ee997f3b2d00adba22df1e41b42f5106acc2d7b3a4456da546296011666e54c9cc24f34bf9c93308d3209a7d0f9e3c3a1027f29fc89373cee7b9ef0c1a", + "075a6dbf830456286baea12e816878ced0516d07b8911c391cc659c40e38064ff0b1daa2263710294fce45c3be6241ce34ce", + "a475791f9c6f9a7be8f577bbfef6a4030ce3031ebd66d554c266569fd02e3c6f71b475307d07ba39c0548dccc5f4b1aba9f71672fb7cb7e5e2d8ee184a08a2a9c5bc06baa5674301b51d27fcc6446cd9a3650384193a9b22b4054b8183e5d3648f39f72dfd4de3b0e85d321a5ad56bab75bdfff2025eacdba6eab5b3e2a3176e8860fcb02b7849a63ce45cd09b772b6c658261bfdc04aa11c473267857e70503da5106556df194b085bd5e23a55919356ef3093e62eeff46789fa303c6fa7be8afce5239faa0b198db2853bb829099f558", + "042a2824a7bd623eb5b0f914539b700febb5d793935b231354b8caefe3017a266c782d33124adc0d7cbbdb25b7995365bf4a" + }, + { /* i=8139 cDividendBits=2634 cDivisorBits=889 */ + "f9f4400d991ce39284558f7a59e39344583bcad9b9801ccb2de6d0d9cf0be57d2d94f6c6a5d6b4f181f7542db22641c450ed310956976c14f63eb42fedc2e18b445582a7fdf59c4af0f01b50f04fa14e23d6dfeb8e2d4281f3b0dd4500b4786377860d61e90ce77304eb69a62d95ac9b627d15a8615df34a5cf3887f8f4247e1111c2b633a93b25b0c541bb83850f2ca9da9b206fba20477130c0277a72a8e0196b37c8acf602919b3829cf16b06abf1f5d36ff8184e4c7d2dcf351678bd837e7e2b364bc1f75712889bc106d8d7f65dc93c033660ce2cb26a16a3d7725d42bf2c7376cf2dee82663346cbd18b6b0a627164f6bc3bb01568de4d57fbf1e747396d67276150026cdde27a597f929947fd30e562d726be427c8a90c887fb8ef227d12e31f47c0b7f67cdd316b1a01e9e21f4dea4595b3562ada5018f3aaecbe80ddc3ed8dfd1442b981a", + "01dba6c353a8dce0c89b2b9f0dcc39d692c2835a4a7016f1c2d4380dd765664b40ed2abe6e8ed76809757465fd91853503dfef4e0cf3ae3745badb4a42a286dbf6956d75436daf0198a728f2cb5c2a27d5b17498b6396b4106267ee84f18574c503a023960355863b9b518b63eb62173", + "868711b0eccdf1b534cb27380aaa406ff42b8f9a7389eca7168ab127d6b0bf408233e222de1d9ba4ad6ed22e37fa7135868fdf62c805a03b30553e23d71452479cd74506286b927110af2ef29a9108bc1d80390fd40c01f1acefd66b935a993c333517a4bda8dc1099bbeb032a6ab01295ff2ae06ff224f93454daa68d6cf362a109cf1d0c2fb86891efa740373704688f840de2baab84f70437cd9c460fa84bcaf54452ec7c1feb20b65d34dcd182e24c67212c46ff30b4aad9b022972f86a77d43b8ddcd5d94b785d750bf8cdfa6ee50f1c32b2c55047c2b2c", + "9b3fc580542f391f63d307ec9a8b2b9e44079f019b8b3017c67f711b6899dd0eded957408781ed7005382c43d1ef9f0ce080c7c672af9640acb46a6b653fcd806b1de728ebcd61005b6808094aa3aff51d2354d51ef2bbc0f78538666681c5e2c280d08d1a1bccbfc6ec08e58b8756" + }, + { /* i=8140 cDividendBits=1682 cDivisorBits=1141 */ + "03160d762e34f707dac41d326788055357b1e2859748eac2ff641765a02603c1b549415d6389b9c6eb655926185d7b45a7b141eb481427fdbaaa8fece73101e1b8145674da016890699d5de160d8798dd30cfaa8dedb5694c33389a275aa66dd27eb0a90118de88c0ec9106d949b19620f5400c0ec670aa51ea5e5d46748591f2ca29b9d5a48474f857577dfb0cc72b39f69db32f8e68dec679015841332b23ddc08794be5092418d9a6e9be8971761b0edad611154ea7b69a4ef659f51ecd0f7d85d25a50579855584f4b631f5fcb70f32e2b", + "1bf80c24617fed440b0f7d5113fd0dd5f54eb90737751ccc1f63b58a299265f65d1912f824e2afe70d5737aa803b8554f74257277c8792c907325abb0897c4a42849f459b08d848cdc7c4265039866b5a76eff810746ecb07fb5352330230c68d822a3b7a62bb2c7a0e574d4e4d2733355d0b6fa636e52ff196ad2e9a89eb15af0ce2039d511442152375e35df12cf", + "1c3f5c5c2e89051ca6b66e52401fba16abe94b5152d9c9a59c51672a944a3d8b863b04e53a5885ef82bdbf7a2e307d00693e5962c5dcf83e69e6ddba7683621d74f9fdbb", + "0eede5f7ea4b9a8e4e904e6eae939460d7cd65ce9193f100aeebea0d8824dc609c95c1044f9f263b9339012ad99840352d8b7181630d229ae44a97d88b5d14477569791d9aacfec02dd34be043ca50a1b167831a89252589dc3a8f5a83665e74635ef2d8e0ec5195a238749d3568187502c809529590665c8afc555bd072ba50c69a8c546f9c06b6e7f8ca8a12ddf6" + }, + { /* i=8141 cDividendBits=2380 cDivisorBits=849 */ + "07c7d92f93ac76e2524857d86bafe451b0fae93b2a9e3dcd2ad360628af98357cc58d73ac8bd43051ddde0bc399857723a8c38d77fbc17499ee5900a0f6bae5c95f44c6c122b9f9b674e91366f66e76d961a9d042ac9a9b37e48a936cab46494bcb0a96582853592c2643003c68af1d7202b67e1fc5a1d462fae0b681ae67283cee187fd644cefab2bfa75a4ae9a785db883d885c3e3f659ba0784e0f9e148adfa8ee10d515b9a81dc875b4a10e4e0ab0083f21edce5d3efd3d98d07beb8be5aef6c5db15d285ee0e79c0f191368c3d13b7bb7a60d58c53b8c032078020abd65818ab1ece6694c218bfb29c722eb4d6562aef8dbe7abb9e7d276e87ee583c5c89debc7d95db873cc9ea0172941bb5d3d82793a40590b5a4a6d12d203141061da5a528f823cc197a9d05d", + "9463267c52be09c4000d0a9b829527b77734f1d02173877feea09cadcde4f6e82984ffa19d361969a45dc3f7cf743e0da279416727d613907d5b70d608ff33e023ef97e874f31696369e57a52d12e50c17e5c5545774d8c0f5c964259eab73cc535772c8ab483e39df8b", + "0d6c5ddb1db62952fd3f0267a254f995d105925166a590df654613553583526d44d6434cffade59505d58d31bb51467e59744560e59d0d744a7f8276285a31bce12bbe01521ab40a1320f9f1458c49ca58efb260cebdf4c852371ec7279ee07feee68db4d81279cd288bdbc328979149d747a5180e730a115dc4afb79ced613d2671af980017f701ecb064afeab4b556a527027bd46c8b0b3df1c8a710277f603ff6401e3cd89dc44f806335cfe57854eea63cb3771aacc3f9dfa3bcc2c710d9", + "8dcfee2593ac9f23ec73ab522e463e2960586a4c5aaf1c8648303fbd729b9c8cd288126c9bb69543ed1d3b8b5a551c9b2e1f4350d3f2ae8f86c94ca3932ed48252a629bfe8b202dff636732cfdeb2fb80e6f44d684f460254f23070cd7fb4435ffd65b79a3291f95a38a" + }, + { /* i=8142 cDividendBits=1786 cDivisorBits=523 */ + "01779f57e0b7c085a2ba4e3a3055d166313ff959b149d5c85af8b772d8f5066eb7bf196a80588f79bea628035660db7ef6b4103af2b9b99843fa500307b2da4a239008986ba6dfb444877fef50aac86fd39e38695873c12a2bce0e36c148347dec5b0c83fbda4b6d11485ffd86d668ad54a764caadcdf7977285a05f606b05dc568e63f74cea9fcb91d395ef64a5492f930be277f5a4bff9ea6cc1bb398c84a722889dbc9cfa782efb71411d0354b51401857b5e064b1ecfcb7a59c3f097a33d872cc8d05ab5350c4a69c26d72f3f765252005cee6fa9752b27d987e1fc7f5e4", + "03a330608a34cff1a5b087d84ccbfb003bbfdc565eec1f54ff5e93f379b040cf512f3bed4b87d8187401cc0f01a4055fcd822176b44c1eddc72296425143e83a1836", + "6743df0f96c3eae889fd3a0c05db92cacdf6cefdd7049aae9bd8c2d344a8a5d47d4a2ba33de26182710904564e0050c5e06230fb8c537aead6130b40d6e95bb0893b7d0eebaaa657d0a008ba2d7899424d7edcdaca2ad8a437e4475b1b69e40e8dbdc08884b0725cc3bfb5a7a2ab2061bf41d2500ab8e0cbb4b07d3292fe31f34c6c7deb14c809b6f2f3f9591203fa35a1bd7cf1851f4d7f0ea373352bad", + "01c96c5e283b8ccad8012aed644a23b4469aad4ef2d5dcfbb667f1bd8764a2d778d31670d649ae2d77084fd72dfae081bda851957d12bc572fe5648aba4f29468766" + }, + { /* i=8143 cDividendBits=1028 cDivisorBits=190 */ + "0d23857b596d367c75f6e2f0ddb8c048b97447240b0c6a4d739997f528a43277249170a2cb40d5c0978b855a55f4443180663a3154a59baca5fd164d7c8929fdf679bee429562fbb56dd4d68c5c96aa8870e1dff6654d337aac662548cf119f60943a8dcfb18be56349d1ab7c61a92a5dd4b199e7d32f9a8a7b571f24fedbf1782", + "29c75ec6de81ebc339e3bafd1e577f203460f4e325c65683", + "508203ceba0d4ad7d56615d4d5142f004da9477eb62dee0e1157ae40566a59f0d257a3301abaf8b00d897a3dcde34c4a5a5432de60d7e215ba5d98ddcfa65ab351e72cfa72f1268cbf559b3b33a6c60ee87bcf896080d41dd307dcc3315ba4dd2c9532408130bef90d", + "0acd384ffb302b664f020004cb08dcafa3810199534d47db" + }, + { /* i=8144 cDividendBits=1275 cDivisorBits=1146 */ + "06cde7123aabc9f9fe364246c0537d7bebc8af4ab1e2fdcd9f3aaa2dc9f4dccd1ba8af9b87b579ed7669dc89bb2ef4b85385d3e8eb92b554d99fc5b5dd263bc264eaebbbb6631d7a1803ff3b3fbcfac7774ae417e222c48c48120e16768a8fdcce6512b5ba79c59f12776b4dd4e4cb8a6caaad63880ea00a78af071ffddc2bfc18eb3fe6f206dcda744da6b4cd91d96bc7e3e271d11113406dee8a7e00b5d416", + "783d37efcaeb14812d270da35e9c4b4ef1bc6d5db2b3918ab366120e7021a2a54c26562c9ad5c25509ab5f583d97930a695168f86febfcfbb1dddf619666e385e050a3efc4563db2f28d269767b3e919db851ddb1233e9af2df795a0e99ab30b8a4344a6c486659c92d69dfd5ee99d5eb24124f5ee5a5c6c97e2fdc024c7c1f22e384dfdc3cef3dcc48692fae1d8a6", + "0e7cab17b1e8527efcb74c30876839bf05", + "114e970e855cf30645816334670308528cad1cc8811cda11580439f3e6b91a75507f54d72910acd6c7a06c044152d2e3eb7ffc117731bd30d173c908b1d488c2fdaa4031f128cda46660e1cdecbdb3722ff4cb052754f92e87c757f2f000a75d11c803c36e7b04cc825920491951b75c960706430e7b65e127f783edf24957d29e1bc360e2ad79300a4499ecb2bed8" + }, + { /* i=8145 cDividendBits=1516 cDivisorBits=819 */ + "0b924aa3236caadc135fb24260ece84d2776d5aae42e64a278f355ad99cbc9111a2dcd5202ebe41e94f36f58b63b628659d4eb394897a273d1710f806f16ba40c73f988475f799f1da62fde3a898fdaac198927df27f1f648919791838f1cba1d0560c5133af31f2185f3ea3b722ad299600b082131da097975d46c0d02f77a3f32f20972fae643cfd2b0e863e9465912b36248e0e6288db1621b08806628701b913c443981ebbf7de1f02605c490116b786044de6ccda841996144873e6", + "0787c06d596b21d7f2a732439425749072cd169f5ae9d9d907a6c6492ddc18f7539e2d07ec90d2e8e5f578a1a60c554f944527aed233cec75ca005b406478f1b06f99cf9449522de32f2e9feb66046cdc7830370704d29e1be05bc250dbb26ea502c460ae76182", + "0189624cf85a50939e103621571b02916b0982960a6295a0336f7aa9a946a6294eea45decf46939ce930cdc398d00e322520f850d33155e52044890cff45420ad5b0233544f0cfa54400826e3312f49198601a70ed32add0", + "030399bfcd6aff9efc59a07bd6c40c344b2142196e3c715cb279623e3fdec49032ba212ff0efb34085960fe523abb6eb7cf5e83a8d7af7ba7484244c3c160a8c9cb0ff6fc422c233659d0ff891f8eb645378c2f14b20c811650ce0bdb47724c7cc97f876006046" + }, + { /* i=8146 cDividendBits=577 cDivisorBits=517 */ + "015cdf0180f5077fb12b729e1168aacb9990104eb0f6ee45f3542dad1ebf79d43612787049f61a6bcc38413762362117b0ef80e091f7ae4512e4c9dd018838ab29577218d17358861d", + "1bf73874598eb92d889394066cfb7f9341c818fa02b41218638573e2098035f5045a4ec8c306a5a69a886a1ab38140f756ce7de091b7452983548b04aaebc0ff99", + "0c7997207302743f", + "0a9e8b2911c3821de7ca9e1cfd8619a35739e4213d04eea500d24db1e84c71049996f98c0f1f77fc0bfd1b2789c2850554586af0b3fc6af4b96facc37a40d64b76" + }, + { /* i=8147 cDividendBits=180 cDivisorBits=98 */ + "08796ed49901be187e60f1b08fa4ae6308c8ded256f189", + "027bd4f8760b8ae5f2d266948d", + "03697632625fca14612567", + "d17cf3f8136ce5080a2bcbce" + }, + { /* i=8148 cDividendBits=1776 cDivisorBits=1263 */ + "b3a1ad5d897102a217a88524d0644cc9c40b6fc6fdb95bcbb2003eddac5e405ae015804ded75ad51bc4039115760b93966a13177c9c527554ddccdc43517661bc9b67253b606bd137bac091244ddc64f277f013f0794b5ecad138db09bd65fe6784cfa5bd20672332f76a9c2fba07dc2bcc1a853c65461020d9c8f9f6ba6a9b92036989a6329608d27941b22d5cc6426e7e57721bd269065a47d5f598bb548e791332fcbc0805ef22c284cfc4076127b591a56cae8859d0e94d0dd524c7fb144acbf0d518e031e1f610918102f64e661ba64f603b90484317c8d4bbfde66", + "63a0efc8361c772f9b8ddaa10a009c3f39d3c495e4306c5b427df4eb5701ef5c9b108187c2d93e4e646401fed8b4fb5ee0d0cc671fcb8211b2f8261520452fc136f152010f5961a41b7309cb18aca5db4acc35bc2d14d007ccf9d87a7e12962ab5f0f36462ee54ba55389bcb06c798e6fa5b2c01d73ffc98f9fb464d4c96dc450c04a51f3aca0534348abf7014383bd4c473a10f48a64e7a2035bdece8d5", + "01cd921e48f2b37db4b684f356ac6a46c815ab7aa126c4856192c7fd126cf7d3b41f637c771eff176e0f4bc7b3af6e7de836e129bcc80d7f33f78b33602e8a190a", + "35ce6a98124dd11295261c1fe53b8409ec7b17b66f00f4c47871195fbeea9bfcc92c7a377ec9e8c58e13029d8a5327cf5cf3ef7317913b9dbe42fdf4fe2edf8417c1fa669a2fe936c9cdfdb578e0cbd6feed239e9a4faad83722bad33cc191be66805259a4a4cd44ad21b98f6004ca20c6f240534dfc23755153bb9b3561d6fb59bb8c8ae88bc8f12d280aa5f9d6ee7f78306f68da88274d487bf4eff914" + }, + { /* i=8149 cDividendBits=698 cDivisorBits=298 */ + "021b6273c580bcbf9d84c31816e60959abfda784b94bb18729302386c291b6f4a7ea5947a46083ac9594ed9eb56c9b6b6dec78c352fd44ace6a54620c48f4fd99a3f9c43abbcda2e909fcd23a68782448b8990dc1b933d91", + "01de6b2a4bcd034634bb1e7d6843de37c40049fcf4e1e7141d6b14ca8a09474605612a25950f", + "01209f668a317105b386792c18ac78576e5bf6dec41400a4e7a225a16e84b122adeadf07f855ff33348ec80841f5408996cfab", + "888607aa7ea76da7933253e11bb1aac0e11de39017c9edb737df5095fc5911fa5633278b8c" + }, + { /* i=8150 cDividendBits=3139 cDivisorBits=901 */ + "d604b6c8aa3d847d6373112185201572ddae61346aff0a411c4454c5178f7b8987d03365256bd6415103d329bce99e2927bb93fb92792f7c9ea4af0689cccb2e0c4df5dc1baf9b3cdb06ee9da682355bd858d24e6e9f8a7ba11c816871dcf3e884e28d14283fa205cc4146bcbb669a23058b072b5707f78aaf24f0abe5d17b59cce8bd0217e360a8e8e710f07d86864f8f948763734c8f68844690791f453b10342f9af803420cc81d2ec1a01d55aa7c71da9e012fe78507b12f25e8a0671a4d0bf23a482312b09e932cf1170617e57d18b63fff1a6719b2b095d14747bd2acd07bb59212de907fb8ec255bb8fbb4def2b143415f3d67b1fe8e74cf429eb1a0cfd4a1b7439b8a47e9cdfd30ffa1e2fb2513e853cf87bb13a5b9e6ae948824ba9ff6602af687a350756598e9ae8effb409467f6ccc8873ff4ed224171f8bf14eeef610b841b0348f1dc6d500fe118de9530b8d6fd33ba6839cc9db958ea6f365213ff4ce646cf6165efcf246e28492e3ed341ff5b38a794856ef68d27e79ae4cf08ae538ffac0608e", + "162a68d3898a38d1b1e17b2424626b753353896a9274edc198aac948713b268b6072ca39979e3ea2f30cd0d0bd686e58f32d0126160e2298253c1205b98d5dfc5edf3d89fe1333be52efe3487126f2c99a95801e6ac024cc7abe22e1ccf9a0bee7fd3ddc365c0fd5264787902605c7945f", + "09a7c888a66a50af39b531889016ee590eb8615f607835d4ad886bdde13e7a883e69fceb3d412e8176ef8f90d72a8d585a695f9e666b68eda28f45343b56752f9bd87c53ac2c64ab574bfde52e05c5de2c2fff7d5f20df19ab7f5eef5408f01569204aedd97a16c54e69ce295277276549e360854d8977d92483308245b2255b9acaddd48d68a23a01f33d14dd105042abcdf1c8e8c46427c46ec3f2dba6c613ae27355e9108db01000551ee6576bd3cb7882dfc196445d0f23f293259499846284851a56411f2141043b86ec957487ea64374480348636ab3160855501d7836dd7baebd4bd6afa661ba51b405d443aa3565c1a2939134ace3fc2899fbf8490affe88d2ea4c83fd36ff31c3483d4fdccb73a24218f7013c8", + "1525808a5179b5459fa9c32eb4c46623377f4e4e7a896209913c668b203c9857266cde1ab9972da2bf1efdad05ad4fd1a156bfc7d8d895b7380f8664663f6c8a1b90e3c0bef75bd1624cd2b34e77b25ba60b87e6e1ee57f606b7c051b5a12e3dd8b4637e9ab7e07c11731863fcac416956" + }, + { /* i=8151 cDividendBits=737 cDivisorBits=262 */ + "014060e8e1f05fbb7aa25cc241756684ecb45973ea9553edbc014db8f35c2a2a1ada26447fbbf2d30634447553802312935658cd3e2af0aedcfaadc7e413a5520cdb566d0f1393487c1b40e4504c9de48c536ec7412d8e66c75611e0be", + "349503653da9bc168a9bf6b94c89773f4e6cef57f40526aae8be5a56bce959f117", + "0617c9c3bef931179c5bbf8318d3c6f04abb1d6be0639b8ed3cb8a002179a82d1accb79521a963563d4002d15e8588f7f3e99879d58c709fbd081b53", + "15db065ffac23f329eba0c44a8c352f81969ef5a14f298c87d04dbd4adc34949" + }, + { /* i=8152 cDividendBits=3571 cDivisorBits=2732 */ + "0497abb068b453b67433857e166c226e07dafe868e8843c9a98497642d8b64cbed58e2a222a489c64160051e1340a5e8b057cc7e67443a402a4805625922daab107b96967b753cb145d92b335951674eb0e913d3f0cec2cc7cce0f79a9d212c4e2620e3eaaeb5a20fd60f80286eacd6f4424c99cba3e2220ce3a3067e5a21f28fd2fee8950099b3c5315af7fff638650cd5b950d8658a026fd7cead4302cc432d7d5580e2e49d052333a512575fdff767cea2523d84d4f8efb157865405d6d560669b91c7d8ed813840fae5d9e2e3a1acaa58054cc4f6befea10446c1e617a4872b12acab5872ccb5c71d70ac00f7389bf5141f06da54efb621a526d69f8adf864d6371aaad6be9cc483b1edabf2fb3e10a43ca364863b3cd66e966673be9ebc62f8273210aff3ba6b9ddb801b5bc81a9b4535cb9064316c58b10cec47b3eb1741e2f2e41546d6b4dd991066239c047f0c81b4bd4a97624f4643f62417ca27d03604bfdc4aa6d72c79cf9c98f53c626e4220322d854357929d03d864f7f62c3f250727d487ec80145d5d026a95aaa5ad3861ceb0232646e3477591222f27e3daef69da60207ccaa3a9374bcfb7590500572c988972885576f97d30ed6018b7", + "b31eda813098c89fb1d58ab5915dbece0dd2a3973a28c65d99f07f79563be5d66af54168be842db9be44a2446c255987f2c6c02e1eaa3f543c590d5f56f1cf00464ff097beb74a886b0a880b0e5ccb0a58532cbc44b074ad88d4e5da1f46b6ee00ffacd5976b27e62b43b5ebe68845d91d0a71f9a0e9c38214080e3ab14afb0eaa1102252755c49467d1228905d9cf259093c01517fe33b1e8d4eac651ccdaa1ed12e1f858ed5c1b790406099299c1db4a5ad14e9d7a77bf5d175eed06d3bf125bd32104109a662405ab76aee68a664116d82302f4d9ee50464227233caae86dbb42c0b20768dbca25d3c24d080402000d566f9266769a82f7fb489f44ac265c022fc331688fd76c7fe41864738ee7c5acd147619234363c07a5341958540cb981e8028ae68f4535179587d2848b6eda4f8c96509d3e0617db8395c28fc74dd14e874b164bebc5d8c6029051b2240d30dc263505db", + "06904655cdab422d24a922ea70fbf487896af6691813f6e79b24e67a396b8e6338ca98f8ee8624fb909e4018446be4b313a336e58e0b2c7279f40cde8a8c8903f212d14cca7711c1bd6bdca46055b7ca9e700ba5d391d53f45b0c2f2f11b4fd81e099b4c5c21474e6fd8", + "58e44df269cf88b2a185898be002fa75543ad08c70bdbd01b45029bbbe057ab0e4f9ccbcdc648e3f7b845b896df8d2c6f215f006135da7d7b34f962580407131903e2d9731cce3e9695d03159bc8fed8395e69cecf39f94d2a0916333a65fdf93e13e9bb0f1d3a3bdeb0503926cbf5df189a8de16810ee2bb86ea050f1e57ad05809d8f76038c83996df04bced71cd5e33e333e0dd1397f6dca3fceaed4df15195d80c505a70f102a4ceda3c703b0fe979405e6a14ca08daa85b4af9868755e46fd7409f64904612198d570ed905d7e20c5a52da1866fb19b94abc6ecf38c254da5bfd2fa1ac5a2c47766268c52e423f87eabd6407756883dd262f43f47668be480098b2c02c3e6d9f3691f2e841fca80797208cf30dc4690be7abe68add9cdba1c3e9e5174495a57d95baa1102c4d4862683137bf031089b92fbe557e448762bb26f8ab9197d677813be5fcbb110800dd2d5f32ef" + }, + { /* i=8153 cDividendBits=165 cDivisorBits=16 */ + "165f9905f01c60f28b8399a5d6390e3c8ac805f8bb", + "f1e2", + "17ade1bed4123a4527cb62e3e35cc5eecbeac2", + "1777" + }, + { /* i=8154 cDividendBits=3262 cDivisorBits=1640 */ + "0bdbb8cfd3ec7560654af2ee6388c46a902676ce68d5a242fa90427b94df063ff182eee8325daa89e684c6a193c089346be3dc585264bc7363c4b249d3e2ef4b61763c08dd0285ae8ae1cbf12da53c58cc98a0610c35c13a9a06dfcec903dfe99e42caade134ec0320b4b9ed750fe908bcf9002d76bdec6b161d0965b982f3c38b2b4feeb4ee6c7b1be1aa24f79c2f4e9000f7841bd0005f18f7a2907f5117fa17aa6785e24346df1a768670a5a5de7f9479ee3aaaaccb3766a54ae0c27dd10b45380ab8c25f44f11846b2dd11fdb4af4cfc0289e98ae1aec4d4efeffd4ea388a9ca906785965da3b620be95551eaa85733487db0fa70d43903f9a46ae498b686e967a2240f0151b250b780d6d8782ed972acc051f03a8dbe84ce0bdf235ab5f22c027b42fee8d5163ac62fed0264dcd8dcef4d700f431d8c904a914cf5ccc111bc1d09dee6cd5753a0887ae9de537b24fa9197d6538560d737e25cd236a2fd88db4927de022cc1234268486958dca5e2d2d5fe5c8f7377b2d0fb2f4a5de3b260c3e4ccc47ed350bc4384cbab1c8e1e63e7de95302fee169", + "8bd3dcf6145da366c22b18dd976ec593c0950f727e6154b94e1df5cd040cf1631a403be6bbcc60327b0dfd31eaa15f690730893bcdfe43a0a03c18f6d751689885457c92b0f24f954e78717cfe80f5d3c03fd604ffa3d7aeef8239052b5a569855d9c9797105d3aac476f5d09b845f84dc74b2a58ab59a053b6772c9b329b4bb8b11b6a42850b56c01d517f63d3ea0abdc71ac12d7b630e4cea91a6461a4d2c30e37f6a1126c86922f2550bea3d028eb46cf5084c7ab25f38fdcb7e63b72f8926e483c119ac616faf1bda3c65e", + "15b5e0fe8c7519dbc84ce58fa6226459eaaee48acd05c3756897a4ac219a453c2890255fc8f786cf668f32d7cc934e2a7c535fc966313aa9e897d7c6b37d2df3017a2d8789567931ca09c0a3416379099caaded7ceca67bd9b1620d8305946272f8ffa5cc79793aac809adc686fe6e2dc4cc4dc5d4c1ecc0141bc82ddd85c200fffcbf7a73accc1a577544f6c13f2b41b502eada89ff4ba1249dda5ad6194e3e0d91606fbfae957bfcec7e3b30ea991c4b078424d98b4c6f580bfb7bf2905f8e7d228aeffa28b121e8ad82", + "09c74d4035258a448486038830bd337cb647bc914276e8372f9011332f8e7d8f0b2f065062cb2d0187d591c6c99c791cd5674c9d4cc67eb2ab202e2ff04966c5218f97624a22ad468070509d319875f508f069f71329b0fb2596183d5843f1663754dda8f4ff7c8da701485485f932af9211d48b2d492f2e4912020c898dbdb607db3abe5aabddf71f049dba1886bb4586776bfd0f0ac3806999dc6cb6da7802d1e668b1dbbc1c0896187261d5f5bfd2a88c7edd3666593a0d3b79ad8dd441a4233bd614b05bb04d6d25969fad" + }, + { /* i=8155 cDividendBits=106 cDivisorBits=83 */ + "037be2bb845c3105967403ff189b", + "06c119bc1b2f0bd9d5166a", + "840c0f", + "040104a31cf4acb4cdd065" + }, + { /* i=8156 cDividendBits=1102 cDivisorBits=206 */ + "3a0c778af18e7ed38a271bc43a894de4b94d89dbaa7d8b2dbdaee7304bb5bfea0b330d8b046ea38572dd8ce994bdbc73db681933872110891d65c8075f202e3c754c5a624395e8d9f75502647004cac06220902023df63507685ff41af79a46a67ec39c27ce610454c7000dfd77ae3304d52dcefa921f51bcdbc277d246b677ae5e078f9cbd9a2543a55", + "0fb45b24dc305599ea13b1035a26349210b0e904f5f6d113f04f", + "03b2411faf448752523dc0bc1e863b018d43ac4ff3be17b4a71cb02af3dbcdc0be82cefd723d4ae6cafd49ff4e2c99afd66cd1e778d05f03435ff178e6b203fb5f47f68445b1142ede06de53a08ef8665809dc4c1d369975bd022a0bfb25ec25af7c5957d6f5b96c6fc90dcc4e62d141bd", + "0a54971877b7c6e5633ec7e3959c9773192310bd0a33c818c102" + }, + { /* i=8157 cDividendBits=2492 cDivisorBits=940 */ + "03108d2c225fb73ab300b892191241463faa218e609e4fd3f5ac0e584cb18d51611b1e718580c1723e65d9dce065671793a3b30b02bf8177faf8e6ad19d03aa83c011716d1b41a53aad61bb9a8e142e55ae5bcb6be6edadf20297bc8b23f939e234978e242d503cd2f5655081e3df61551cba87d0383c273bedfad22e31913ec390208787d22e37176230e93f8393b5a75af94aaf5ba0fdf26bc0fd3899ef5edc7f31da2caa0c4444dbfc55dc944d7baa47c11716232cc35bd19947a0b6f8e2bb1fb6ff54d4810a95cedc5d31ed1c69d6de8bbe24f89497a807681810d44022092a30dbb433d05e5ba4bc74fe89548f480bcf6566c3fd97a8ca072cfcf9f22c48e57e4ea2e2e05e9bfe0ac1c94bcad3924b71368dab2c22122e8fb927799ffb556497be93e5856d34bbb1f8740e5f5ef030c1ca3347387e4", + "03a7bde728cffa9cc1fce1a6445f43ff24854d70b85433e983ddfd132fefe84a51120a3c54f93be90554e9c5941828c7ef8587a323c4c3ebb9947c2d0ff0ad0d1859158aec474113c8e6f2d5f71d4a292bc6c4677e83ad3dfb508336b525870c176d6bece4dd2151a8bf87cbb951ee83bba44b534f28", + "d6a32b7eb72ec3412b2df582791a57d478486b4100670a24a8b3cd32492cc5195a0b8dfde0c1e5f43af1b960f8c143aac59b142eb0a42f60b85d88ff992b4ce583e1dc2f076a035f529b08045e89cc3a5637ea662e6c05616804f0b7456ed4d5c1f734aa40e2486fbed8ece5fec459d8a035b1c51ec34cd47d8acb394401f09214ac37f52f6cc3110b14172b7d5d6e4c403323d848eaa48bcdc5ed19e762f93cb0e5c8762602ce5091e01665df558cb9e6d91caf189c21ea76f4fb53657fcb038cdd", + "02e5336bca0b9afbfc54571e2ad77d972979e27f3f77d330dcf9882c2ed5e24fbcfc15713d31d9ba0ee0ee5f9d58ace3fdcd2db1b6299651f7949de9c79b6bb81ef28388dbb3f7df973ef639409e3677084b93bf207f6a2c8b8bbca19cca06a04c913e0cdb44e9f5a91a8ba1057577864805f8c6525c" + }, + { /* i=8158 cDividendBits=2600 cDivisorBits=1509 */ + "632365385c8b3a8de43889c41df8c1341f36f8f87dd87ecfb0a86f116c6fffc08f9c93d96cab593da167cb61cb9397ad7158bec9d3c03344af2e8c4a185d6e28647bb5d1d3b65f3b8a102b6487b5d56ecf7074edff712cbc5d0e6d4eff90397f76b8b433c1df1d0519ead03411fc881dc59b3f92a695f91dccd24588885229865eae098a55174bbf4df28283231bd603cecd29658460b275ba578e70d181e4c75f2371126595798aeda777cea021d6c6b462d8c4836a72f532f2b6c7441e53c6ac86b5aa7a8147901c6e9135151682d9a3c15ad8947e3dbbcb2d21a2a01004c3467644b0ff6fcfb6bec558cce66f61e1c62dd4b49160b712ba439fd94cb2029c1408a22839d1dec52a29ff7ea33b32d36867fe42d88984a6f505df63d1758a169811f273e23c8cb6c7607114b5bd19b4093e32d55cd2249ad1b443f331d15dde4d28c7a428", + "1ea7ae443add5e28487b7b83017262038c0e316c1b35af3748afaa082d2a8ffcf6647fcfd1a279454d5213ca8a8574fe9036817b353dfe664dbad52ff03b6c1cfac73264ad740f7c5411a8056efb23bcf1d663dd3c7dbc1404447c8a1a0b45ee2400f7144d70f18860a847b1f3a1874a3a6de664cdaad7004608072e6e5d8921c707025e35dd3f062717792a1434465b3b6f8350bbee2bdbf07fb4e030013ab1566783827f41ef1977c20f9c047e24fa96c2aba2149624890c77fb73df", + "033be763cf8c9e9de0891135a60e1c324ed454a9fbc7c81fb6844422ba537fc4ebc5e6c64fe526e8abeefc059f46da6c47d33b8efc85fcbadcb6437091601abf8e67487deae8b9ffb86821decb3eb4dd54779f7f33788f5a3d6e49b2c909a3e443585f7b7f9a2ad205fd54a448bb923b59d718d3b243ddac2008bfbc209b2023522f2e1078f367dd46", + "08815e388a727386e8f314691a79f3ab224bc4992295ccafcd86ca279a704a178c9f282a337e81e4eb3173e667013a3b393a79672fb11bd5838822efdc01341883cf828e6ea181d766707708ad1d3568dd38206294828190cd462f06022eba89121c537148701ec1787d992dce520fa8cf7a9b2fedd8652902de207e9e1ea2dc298f09f1a30a3cb8fd0d0ecabd9f4c3431ad9af50abab358a2e1459e55b70de21a48b88f1cd8e6a73f6632779ebfdda603a9646bee86fa6b9ffb45722e" + }, + { /* i=8159 cDividendBits=933 cDivisorBits=314 */ + "0f46d5833b15497aaf615825d4b80269eb8cf526b24b7d966022ba0d6ea8cbeaf13052e5423b25b58011a1734a4975667b7862aa467204d374591637762a9783858d02b722ed84864803987b4983ec81b8a804f37c55af6ab18a9bb366f6fc7c13728a7aaa68ff374639aa3a115b0a97f6178c4b62", + "03bb6e2a47d9cb8dadc1f68055474db6e3d9b0bff9cddf6e5eb5784adfd2da83d0a7615de60307fc", + "0417e085f2c111b2f32c3a2d4c6f1fb032689a5ed6cf62139c5a82f7ad01f4cddaec251d77519efb65cb60df30ffe805d6900aed84f3d0d5d531b192743d4d384368e9be0d243d4059748a29a8c0", + "01933dc52b43d47c368715cbf40a3e61065c315d5fedacde8d285594b1b2485f7d6e3f9d78acee62" + }, + { /* i=8160 cDividendBits=3518 cDivisorBits=2253 */ + "0ca771747d1f12bf08f83a6e97badeb611655e321c883597ed1f16e0550bbe2baccaf52f559539fe98426f650a07bc8b0d6cf60b90c077c25cea284aa582587df19bcbb9c81d5cdd0fa9f53969312851aca663aabaeabbd9639fcc90fefc20f2039af4c481e59fbcdd6a0a2eeb9dc503059348b37289f69e70c120e326ec38e9681d62b2cf8cda24338bb5cc8e07c8b8151db49b13683d8159ac9c23f7106e30896d94f0bafad71d29be8d3a33186cdff7285a673079d20a675d8894c5cb3bd560910beb046b2193ba5affd52f971281094fde893ba6fd587fc8d0ac78798613cbf1d543b0b5aac57c995f249fd2c1b6e744ebc1d0e2da104947378da03ba814d71f0a0518717076c8ae47c2ebf9d47f8a509fbfb8f1b19548756c7efb40c0980c417c123fd6a88031328bf71e4357efd6180a8498d0ce662cd1f58a0b4df0db55e289e9a4960d97d41048bbdc0b342e5ab8018bea39d0a3df4e3f354590a6af146c4eaf86f69ee44af943b92a9efd8fe890f043eaaf6b8f84d6d6428a3a58e4cc7f985d717ee264caca774ec35ba498b1e4f12e81b48de073c87187a36235d442aa60f86df9deaf2040d3263947cf9097fee65fce55dea6", + "0530d082edcccc59868683ed7cbfb2b7b06ead5f86ef934e17ade7bfb796c09cff7a478f5ada02d51b29bd79867df4a53f0cca9667995def051923317feceecddd87b5471f6489a72cdb89afd1fc9b6df762c9afae1404eef66a96ec5cb72b8fa43235f8a9a665ec54fd575ce83ed6c9d56984d5a9dd77776f5d658bedd322350633f1207f3ec95c5742a7bccd5457a4529cc8d01b5ab7258794cb05c2d0d15565632c56c1e8c40f5a4403b551ce6825c0fdab64784cfa41e8820a5404e44ffb19a597b3ffe6f2aef95ec9f9ea37db6fb1652b9ffbc86a217498641e36f95cd4b962fd52877ee27c6529068e94a5fa217e8430188ec1351aaab5a205cce62ee6dbf7d05f32950c2226898a544d5f39366a9eb775deecd025f7e8", + "027016949e4ce12effc8b8ab612f00b1633c041720911ddf6f32a0e86c48e5140ed0a3fb2e4cfc29d7213ee2ce0089cbb7bac88aa9d2fe7527e202b9d3d4513390eed4783ad21175abdb901d64801889b808639e483f536a9f86e9ed8508a9574e718902a8b87280e8b0c4a7925953dca2e3ca24285190d4548b959445bddd447c08020c0a7887fe58b97b35b3321ff9fcc086c8b2864922d78388207dcc37", + "038544f4fb35fc0debe0547e8aa6b0f6dfa7532e09dc69f45ec738d7b78a0978ffe79fa814d04a3f3992334e15e5f41b2b311e5523ea20b4845560a92ccc3cc55879daf8bb89bd415b521a923102d6041524756babf23de567b60dc0fbdfc0c10a7c91a92105b9666f9f03c5e9a2c2c2c2481e2838f1d0b785608c3b92138fe8cd617b2143cdbab2eb9a9d3e841d977e93f3b3f33f846f0124d30e728ba438c6c11614cd2595a07515080634eb95cb7dcc9c6012ce18040903e113b3734a990feee40015d8a967623325760d468a937e3220c1b43cb5ceafedd94f9a360e4e98ec3bee27806e9355cb945746c39f751807bffc864bd820167a65a8ef091c83ba3ba4e7a79d6b35d2364589f44f685d11848fc6817ed9c858bbce" + }, + { /* i=8161 cDividendBits=138 cDivisorBits=31 */ + "01bd08b612ee01590c910fb3f538d06d4380", + "6779a95d", + "044d061d434eabbe1abbbd880400", + "475fcf80" + }, + { /* i=8162 cDividendBits=1108 cDivisorBits=628 */ + "05cd9380056665f718c6c677000572e52dd0d083554f612ce82021eb1b6380261c9dd0923c6c6c982af6f89b4c30ff1a09bcb174152926ad53129ea31a96d47ad00147f530345510d1d21edd4dc72a3fcb2bd69aa023a9a0208ab29b311a582073ad9f77269396364050f553a2eb8e72e7281d5d4e085264d971dfab91012a5e3043f1f8ddd82ff6b653a1", + "0c22136e398ff1994b04768f71b5ef9644b007d15989f20bd06cb87990cf846198a3d9f95dd84e57870943c5ad21e1cc9bfd2ba0feaa4af4e97e48cfe4828d6c87a4f24464e2aa98c6795d0b4258e4", + "7a709ab32f09db3356f528f158089b2a3f9285435db900ff24ca09ef9092cecf6e9f11a81d439cdebd22fcb5727d4e7d5e2d3eb7d138cc923af11358", + "029c9e96471eedee5147aca7f6481ade477d81d143f33b78db14b535b2026337e413854b5a879f0ac18168c0f0ce22e15e6d3a18a67c4b2304ea26311fb2e6715ae81412fd258483f134bcd4aad941" + }, + { /* i=8163 cDividendBits=763 cDivisorBits=260 */ + "065869e03a192ca473e14f4d35c8700ea22afa489c6699ef6d65db8368b6a2d7bc202fa4345afe0b96c63f2768bd1f0395693a07e019080307343580dbc31b2335bf6f2c9251ed526daeed82122965d7bd673c94193bcf8b51c3341aaeb228ec", + "0930dbc06b95fb9183828807c2027b2fafa8136a0c46f225374f3e8ffac5740d18", + "b0be0ee38ab4e0569fa470bd5fe9eca6e2f1a460cc1f4ce2ef6d1d2011158284ee712dd1167a463b29710f886347194808ebb8a2798a18ad17092c81dc4301", + "087362e12a160a85b09daf6bdc75a290ccbeaefe90ed05abb42044bffe3130d3d4" + }, + { /* i=8164 cDividendBits=3771 cDivisorBits=1460 */ + "018ad7fccfe768a829ee59e5fbf3af650798e7ab2fe1d60109ddd290f0d487dbbe574f4641820d4b52ed9e392bc3224b3d849985c94257da1007c911b39bc5bfda252d973f22dc1e0d4003ba3a37a98657a82bc2c2144e3ef65467dee98fea7a8571d90bf790dc914c2c1000ed291965414a0c48a8cf0365296609abb45f5b6cecc3b2c6a6419a4475c85dbf956e88068d6df59403599434eaeff8de42915745c5c07e573775e3d806009ceb5980249f10f9b11195e8162f594214d64a2c40aa5b16a6b1be242e86f6d6d356e550b6e21128c4949bb839b7d34357348ff60bd2ba8525df7515217a0d0ab54321b53bca5a4e1b72daba57ac31f9a2b23ce7a8b31586e4f37fc6b2bf9c434a69edb3466406726c9cf478a2ee4b6885bea5e756353e4a2dbb1aeda8d8807b27c4c95bfc42a83224941fe5f264d5e14ca7d38357363bf8416715df8f4db01f635d1873c5e0396e9125fc5f834029770591bd7eee39f19717bb09174e068d300fb66a1191877ce6555d7370536c094f21895fd8fc3ee01e2063faf2d787814fca8b763a2407925b46cc96f388ae4b0d86f341efcaa48ead065654787c22fb6aef6c07ec9ff81ab24c4b8cb22e6b93a4257a482acc8e110418c4cafb87abdd17b5cb0aba18a6b61fa827fefecfdf", + "0880141adde0d7caa5bd4f33d60f884ade7add5ce8b6e4930f204d31701d0bd7fbd93251c3a766aebe3972a4494ac7ac48f28f8235702dfee76ff0dc4ea37521865f4f38f7158fff3950efeecc5182023f74efb54e56ef384e0cc08c8a6a1c3b8f64fcbcfb42daca9ffe4b0c639ed161403540e1dd5ad07b81b35648427e656497fa1a91cf5f9959665180acd5767e7639b186c637e877b80fba5b0021cc3ee1fa8c0572493d757df292f9116ad11b1ff63b8d761788b2", + "2e73558552d125832440776e68c2b1104131902b44f1add20469aefb04657728199fb1e2168260fb17ddbfb91616dafc74488475ddd11f8aa548e48d3b2a513b66741bd78d48b850a689067f49fb8cf72f52082ca3f894744f7d66f8911ab713d3d5f15ad304213533bf1ae62522e0da9a6df51da534a38c21fa558b13e79e7e3fbbc2022ab23b2ad479e851a79cc314e943f7e362952f3d53a2418ba3a05e4757aaff88a6e8d949913d995beb3627edd6ea6bc88be6f5d97fd343ca344a9095c07d9919bb54593d21888aa5c3ac60b4a843a6024eccf43c44a91bbade5259e2d01fbee03c38779ac582bf2649e5ce85fcf6e013787bb03ca88d6906a089d4a7f9252fd01bed9ec0dbe2f6deb38bb4c9ac358d0406fcef66a6d838cb89454e86ef", + "04301d355296e4b8880481948f6685924a939413cc779eee437db2dee4e9f644fad3ca327372c0a19056c6756d2f584965f3d2f101dde8c9bb07da2336c93f374f1d880dbaade58ae2e841ccd379dbeff7fbd2c028bd07d7a2716f86e809dd09596ddccf5c2fc69de0e564de96b7b65cbf6b0da64f3eb384c421adc272fa343e4e92887b864e0c4fecfe35c5a960685901a55f83b5442baa70a1a4ba97b9a676c5fe13446d0ec9c8cc7bc9502f4744c3366300cd3d05b1" + }, + { /* i=8165 cDividendBits=865 cDivisorBits=192 */ + "4d2c49836f1b4cc6fcd9496fb5dcfcc126345b3393fc8db67bc95ffede9872be54acdd0e922dbe40887905b519fcafa7ac3089a8f9b8ec4e45b0efc6fb92ed0193d24f4a04ca2595d1b58a4802eca5be17042a35d0fac98c8fb7b86e98baa228e5d31f6c980c153d4de47a9d", + "057e8f2f6b8a5687f66683d72f3eb9eba69b830ecf76e30d", + "0e0bbb3d80e389a5167b91b0deb672b139c87bb338d7892a859c877b90e6ae8289ce4b5ae843d635dd7440199fd30b0d0226d1e59fb67c855b1059f33c10457500ae6192ecd920fe1b00d1135575f72999feda0d7f", + "023d6cd181aba569ea6350ea5e4f30b9b3d3e81219502e2a" + }, + { /* i=8166 cDividendBits=3289 cDivisorBits=3169 */ + "0187de2e050b2b118173884c8dce6ff0fc8b216860e05a31d8d47252127f9e5f796aab4843922786d45165b5ed521b9f75a50396160b22c4832a05ec2ca63c2207a37d2f2944e26e82e816beb5b2fdd81ad4a39ec2818f310ab944ac43443638fcb9aefaaae40fd368e4c34f6769c6cb86128cdc4e018a574105988f0b57f4bd72820a8f840da594fe7353a6d2ea0af91f56f98907fe44962c6aedcddaf35caad9bf5fb916f9c290082aa2cade02e0b8ed450a47a442d0415cd5e198edb34c8ff0a2a29708b99f5780223def1e78de6738e3475e0578511df0c01edbb80087660878fc422b9ed2cb7ef5b3b1623e7a1cb2d2955c1c32267f467f22f31f553793cf152c9237cb5a2ec6b58a14bb407940f265344b14c384cee1a5098b28ce054d23f88957b16bd5389ed96ef36ff323d5fde2bc9b68658523141345adedd44b8eb8b0d84d52f349db4c7c48f47c38f0d21f55c8ad96524b111e7f2c26a9ce975f7fd8e145685dd17deb48f93423cc991e39bdcdd090a4fbaaf9ca7c5a71921d478c52feded398bd94d35f5716961c4e980a101c5e65566b852dea8159", + "01134e65a3442ff01606e23437422f40483b621c5c847b4d0ae61b2bbc8b501a2c4508ad3dd22af8b1050247c60a97d6ccee696bd22949b781dcf61fd978127892c98e35622aef3a30bb122807d66bad562abd53bd9d52505e8bf370aea12b637ca7f0ffccba83b2032bbf151a1b3d6315c7073abee6e385a59525acf426f5abea9153eacda740ead9b8766c289d52d3657e59aba52035ef95c2eca72972a28bdeeb3110b81f183af4fe33edc6813e4cbc3a9a0540b880d4c61748a291250e71f7a9ef30e595d87ccf55a4b70e9fb169ca30ac46c63cc5babf6bf82a9007697eaad778957f660095d662a37d2c75e22194cc254bb582d9e14496a0dcfd5812e05ea0823354b1188c49e84067b61f5503ab157cfce88df347f0a8e254e42b2d36eabd9a6451239218cd3bb6fd5b63686951f79739113d1e5de45cef2ccdc555384c36513952321e9378dde900d85133f6d4335d7fddb241fb4cc511eba48dc4117d8fbd1c72798165824a1a0416bf2c4c4b2c6b615b3c03d209e45b5b81cba6afc85c54d5cfc3e2da72eb352459", + "016c6339d335c63bab087020a72e3070", + "0d7577028c83bedd5e60cc6dcb07ccc1be1d0f3440097d5fe60e68a4214d8b3695127ecf588924a3cd583271e3d7032027a685a658839e93fabd1626ea305a9d7b176bb6a7cb4b409049875172d7a7ddc7f9d220c4d3a3807e8bbbcb6f3a973b48626a5eeeac98312aa630262eebdd6710e0c8519a8b135d22b3d4e9bc3947e7c521a91579bf9c253c3b3481d5c4364e0f10a7e661f9596317f2fa778007d70d2c57fc5e7b606c8a268260ba1c4faf4825d66aecaec5510eca731a1da1ab0fa4f69ef01845248e672d46449db20af361b29d6070f61efe701a0cf53cd7c07262c59f74f2f1d2426bfde86323cb08f7d4537d9acb2413adbdba368083913fa84f38fa080502076a269d30aeefac6ce3732d8b7ddf885f3ec410dc3013b34bd71f92d30be2d935bd1573760465ef45120eeca4bb6e12ce073344b84028402965c3436d41ab12acdf99dcd5ed10ec8a6ec6aa5dce460acc6470ac5c7706627cdc4d1efe6c7a06201c7e195dc7d886915447aacc581dd14f706d9c9e7012ad2d640b4552c8c1b4b7e3c1b8dbea69" + }, + { /* i=8167 cDividendBits=1456 cDivisorBits=382 */ + "1c0e38e6341c045add6f26d400f30d9149cbbcb25badd67a78ff8a99060fcacb15aed9164c0379ca2291456ecd3cd5712116025db177c90cfd36db10297f91acedc13fffa6b1df702d8db3fa714e21679be46ec17fcbbf479c8d340fc1fbe553ca3c401bac29ff2b18787ae6cb2fb396297f4b62910439cc4dfd273275ddba448a6963ed56edc0dd512696cf99c94979c38cc47a848abcda30709e6639b271fa5a068d7bb57e6f5821e67a63e32f21734b361a89dc8c", + "063a622b5d263e1cb5940733d7e705f921e1a8dab60c30ee12e73034d44d89ec5f10adad886af2eec514a70b47fd835f", + "04813424c314112fccffc102be980e07a82e46518cb83ca435abde3132e4ddca607d25ab56fc6b482aa35507cac331b305568a4d52c66616ed072190eb7ae59a73c91c6e9742dba6a102802765777f2438d00ca3b81909be27e68cc6eeca614a98118d2086f48c62317d2c259e266d6f650e3f775f8444880de057c830d2eef7344f2166804cdc", + "0145c49c87a09c9c92f43368a00b235af0f1553c39ff6ca9e28b6301e9715544c468b40b8f39295cc24522cc702cc2e8" + }, + { /* i=8168 cDividendBits=728 cDivisorBits=91 */ + "3c63965dc027538a53467670dd0abfa9f21893171258599e79f0bfa8607251321e4553027e8573618af6a2c1358ac508fcec23c857aae0b7020b2006c218e82b543fdce455ad991e597c2937b835fe55befe7984de0b279bca020c", + "079e5363be19c87138ed40c3", + "07ed3a34ad625a30375e4b525c4403c296d235e2e5c6ed8d01320850648c3554eaee2aad851e1d6276bde57d9328a652185cd0cef0ba8e66c5f1837f7ad81451aa9f4ca61c06fb4d3d71cd4bc5dc0706", + "06b761f8423ba11712e1287a" + }, + { /* i=8169 cDividendBits=2184 cDivisorBits=998 */ + "c8896ae23655a32853bc3381df9a171681a2145984f5ce82851c8efe5f5bf3ec70e7c265bbddc20e72602f15993ab2fcb30c851a006d85542d2d47ee6d4770d0b97605308517872dacd96dbeffe883ae93399eba922f8c38a4deb143c9fab38b7db56b2f0fddd1d7da2389519ffce1eed3a75ca35c4fafddb38e07ce5428194e796101af6e4abcfd20bf38ec67a4aa1bbd56264356ac4bc4bcac3f1840869ed3a84221920d6cabedb38aba380c9b033d93b2f4cdca9a620ee9ce7858c25611f8d44f627318948c8753290879f50bfbbfad68fdf64ba459dae930295ea107c3ac72ec2ca76aa7b4bdd96b2157410936fd3888f8da4bb5df620b4da66d953fd6cccf90a32575ef82d44228800e886e1e5470", + "3d9dc09586e40946afc533ff6f63bfcc9ee717e1a258d6d02fc8202bb835324a1e0fdb9a86d68c424b7f7e3daa963e658d59de4cf87c679de2145c4462e0ead6b16a296b6e2ba9d39bfb222af1d2c6f61bef0660d642663d5c28840f85f383646383a6fb40a95dd26c73b57eeb26105f9836f3a1d7822914b18b443321", + "03412e24ec4f155ec8f3f4bec4ab79ecc2d763bf3930a44fbf15c4248917329addd2ec717e749f53de24deafa0d729d349d3955c48a090bb2debe3812fb14ddf0ef800e64e9b2ea271358e1a164f7145d9bfa40a5cb6fbae2d290b9d6b33eb3a414b5679edd8846b37adbd64da1768ae53eb9b8c4c90ce9ee45c61ed0709678f3663671c9933bd7ffa1182f755da3eeddf13750a72", + "3befa12120e738872a03470c6b98ca27a5448d2480ad361687d0f2975797e1b1bae408a6abfe750107463f395c4c5c3fc9c60c34b6a44538df6b24a93d7993c5c03b762fbda34692bbe545e3517e2b4144466e4e31a44fc81fdd6f72d0cdbe3889553c7012b05760ee1d612aa28b88b5cc2c45ca4b052f1b51eeab45be" + }, + { /* i=8170 cDividendBits=1446 cDivisorBits=994 */ + "17fbf8348e93dddf1e87111132756dc4c949c1be93f0fdcf06c07d64d4e9c868a67f1169c9ab997102b4d8b98860923d7be78a63f1200ee5628162be87aa8721e4661d49e5f3b677a905b3242b7d6909fc11ac0585c58d55816aed478e6548e3bbbc66b09d87270a67731d6ad4db398f302f7859342fea45499be66241fbbc333d867c0a2c4775454756cd416b581924b7af4c7573aed791ac6f0cd557c2abd1cb0587232eda133b373f46605b4c64c43c374c3da9", + "0139e977df39bf1b8e670cb3a5302e0478a27ca7b629643f4be80f36c6d06d7d5a64a10c1062da67c446926b3a989b5057f2b992adde6b7c23396d39cc29b34b5e1524cc00b6253aa732b7a963f583e62d1012747d448323b1be7092ca8be68bd5daa87ef1f17cdc27486be8b7732cad0df557ed180cc8c7e87143912c", + "138f3d13e5bcc97c367868a81e5004aba1b8d75482ed7771a0503d7b8b7a70d3bc447ae2383f19c9c5c41aaf096fbdb867820273845350f452", + "fc3c62fc2e96188380784dc65aa8b6583a7c2bf3cfbd7f3de2634a35d1b31dc9f8b3668120a9d35525ff628ff69bab55a61ead1a82e3b0e19637a449a95b9dfa95b2e47e116f4266b0664f1fcfd260336a5c5a7febfdb11cf9fd0004cecba3f930899df11498e8ff4f9c9ad6461f9b0530cbb139c4c943f4e789cd91" + }, + { /* i=8171 cDividendBits=2455 cDivisorBits=751 */ + "0c73eed1b00475b92999a969cef14e366e100b8199677882bd4761880f22ce17906d9065845d42419d14976094bfde1d8d1ff25b00383d9ae9a0bcc0b6c8cddd705b8fa7932ec328bc00a4d2c002083a8ae420c8ab35b47b83ffb050bf9fa8304fbc50d990a6b7e9e024e298d2296e4b90ab85b1180b2c998cb8e5dd5fc3a6c0517676995aeb1fa76c198a9074d312901532476282b16782b4f266601eee3c4c535e9a0e455cb448b9d4a4bae5a0395cbf0a69a852e407d54f46024ad8e9b9bf3906b33853181ab1c422a4a04525b05a6f1536fefea48f1df13106b3c98fb849bc2c501b9c2485e0558bf010abc850a029ca0e56ed491f377d486e93d6dee7553f5b2a4599a1efe210cb80e83ed2578eddb30f80341bf7e7dfe16653e23c84b5c2da9dce9055fc1d9b79383208bb116ec3baab", + "36a455730a1ab0d71b20225c2ff1db7bdb554d0850e257b3fa0c46d97a3a082cb196cdef647dec5c7e78561ef62658c1f05b98ebae2c297acc695f567cba05c2f18020d258484f268c560d3605b86e9de5ded2f48a322ea324baf4fbf08e", + "3a579d78e1cddb1c9c12445b254dbb7bc435b3444670506d092e76e598b17092f01e60b6914e975e4944bf971b3a3e6551f780bd84e505ed54de2a474b00aba417a87dfa80dc0195b4be36574f9c0fcdd1ee86b524397ae17c8c721f71fa4fbc3e25f1c27cfab48d5c15f6111376342290b65e1200eb3e89b8b1324924af3aa88d5d119d70eda019a9df56c7d64f3828b274460265fee97f05093bbc83f23dd49206573ab0ef1cefadb436418ed0d42e93ac5884724f3a4d4a7e891e97b52594cd3500faede30e933105c078469a2a6e99910a2e2e", + "2273502e0814ecf8ca36590afd9c48f10b0dd2e1f09bbc7841c2b022c8cb14a459b3f3677e7fb119750f0e5c38dfaafc215b29aabd5b6bb83da712a363c2b158cc5c05dae9afe4f566c1a9710e804ced5f87b4fa05c59cd27b7e50b8fd27" + }, + { /* i=8172 cDividendBits=616 cDivisorBits=297 */ + "6e6bbbedf07afad16d320ea4aade8d5babdff66467c93298689de1dafd38472d246f59cf51908de5c55eb50f3699d9ea91d8180377b097f522f7ed6d78511c3bda18e9ec95bc4bad69bf568389", + "019028cb7ff89b0b857cf60d1861d9e96fd2cd4d763ee8e56714d36f7550ac43f3277d9e4b86", + "46a425339e015906d01ec0405750cc5a4d7589e4aa161cc67a11cec892faab0e0020cfdea7c76dfe", + "b6c4e01da306272a4564f4a80a5f115a203a1318c5873610d587d9ced1bc9cda3996f58695" + }, + { /* i=8173 cDividendBits=127 cDivisorBits=37 */ + "628a9d4377ef341f33836cc96629f658", + "03537b7716", + "1da06fb981ade507e035a74a", + "d23c2ffc" + }, + { /* i=8174 cDividendBits=3971 cDivisorBits=2953 */ + "01368919131b841e66f401a1f270c955437cce4355ba8bfbc45408220b7f933cc8d1a9e157161f3b3e8820cd9af8c94918087da34d67138a029a5eae217b2ad455d4d53e731e865be7f8a61c59aebfc8d332acd2bcd478558d4cfe46c42e1625383c091c4be77111fe79afa82006934f33096765754ab078e9ff0a0605a5af86928d8f4370da6f9bb8702317084edf8d037a4de04112d7f26d74b33ce23e56239903aca85654cde095b21d006b897f2c3579a5f87b1106327b36a758e7a421d045f046eca4805b0847705d5b4805ceba13f8cf5495d855417dfa81aa969a8913ccd9416751bd1f1bc4bfdc623f878a43f7cfe3380580165a4f9e1a3c3ddbbfe280b10185e92ac378501442521e0d65effc387fc7701f0ba5b6e275349d781a3d7037aa93c337fd7a2d5ee7f663c41bdf2d890c082a670892a54f9cf20982356f071be2c80657b0776e3919c34538c27cfceb330cc3c78e7403030b78c9097ec307b8113f420cd60ef1b26d450a61d72cf2c402ad75b5ef71072c2c05d38158fa4c1930e6149e7dc046d8657bb495f837407d5c0b55b5bfed6ba7675b2664b2c4c6f253a9470f8af695ab9a59714b2f9f6f03b49de893d9056fb08902294121c9e72833b665c2bc473aba7dc05991f82573f14f372574f2105db204284c66053e348e2867bc8033943e0f6c77f01a653b9e", + "90cfd05c2963700ace41ec5f3a3b51a22438ea36731163649916399c735e1b1783f9f1163b2d326262b82ad29b235ed81b1bad725367a2b8daa8163dbdf1008ea7d785619d9ca4a9919c2db81cd6adeceb049cdc5a26f56a5922c650d72e65e6d5687ebf5c683539a09029c664e99fc61045d1de4641193d79b28daa74bdac56559d93b4a044ee63ffff1a9d53a6893f4ec76696eb46625f75be214fbc78a37f84b8027a1889f5de7ae71db9b559e32d70443b5e43017fd840b6d08157df7f29f92eb3a4be96e53efabd52a74169ada15166e4e9ff04edf30fe059c0305b731760d94c15f25acdee2c306371955e82ffefe76617e7df6dbb8144643cc8130b004a5e50849563756d665410350b969fe0b7f052b6e469b9599a8135cd12eb37c466b785e0f8238b151e6c47a1ff76b75b6d2f0bd28ddf34dda315029d1737985a3db42bdcc3651ad03716c12c7ca1fdc230a0a795a1d14c1bfb53ac85127f34c7b7dd2216ffbe59d76c286895c41edf54e5", + "0224f7edda255ce08e18b10be30d637520f76ea53b976357ca1b53165a89f8a70ce18e9787f1fc6d7a4c7ff18c0106f285e56419b1073f6a2e3546c5a1b31d0fae05f88f862bc6e15781039b4893f47fc044d4c80274a8d2bb3d9bcc5ef82564c3faf0ab49a3232ab45e22a2f626e248acdd966359d51f188101c17baa102ca8", + "8b7587476f868ee83f453db80aed8806cd893dbee634b2580f0095d0ae9468a68d517538c652cd59afb26a900e6877b0866e3ec4165680f03448648afcc5fb1582b342aaf87a7997cf6b1ba662eac6d7e7a8b74b17cfa3bcd5c83509596486680e6a84054b80882090a09218e64ce964ae5d462b71b382c8e278cdc3bfbf87229400cb27ce1a7d71185b3b85a0d10a85a52ef24c96ca1a6b327c5da120d8f1c54a32fab031a9969482bfa7337ff9f415a78cdc68e1354b764e1a2c285a7a570fd1de2484b876599fd624ebb03d77c6bdca803a00ea0215d0d6e3cf4741c8666e6de01c05f3af6106952d4d4a533eb365ea456841ae78f124ecb9c181e566da91e4390036ac6b310f704adca3488cba1c7dce6a61e9e18ee5f9af06079520252993a1e893e5cfa56c9e91ffbffd6510d4f815681c372cdeb218355f0477aebd9438416fdb13a104f7d7871ba4890581f8d1b6ffb76ea0077b279fb1e0745489658d966ec431fe637ab40a16ce9114ee2956" + }, + { /* i=8175 cDividendBits=2732 cDivisorBits=265 */ + "0dfe21ccb93c81aed9618dae2efd48da6fff094fa9538870dd55c780be50a70c86da802176c74ca0dbfe0ab03104ea1f743e20a590bd6b5cf0b03491dfd675aeee9620d4a8bc18a47da4abf7bc113fd6da42c21fe692cd76a350e1ea6bbdb05e132d0d881335b3d274df2a3d5aa3891bad5d293c0cb8d91e7946ec11680a228bded06f8a06bfa7cdfbcc92216d99635935779d21ca007d148fdd80df9b77ee56f512afea40513e63d8a4e4c8c45a9d4c993c9bba15da5c308a8ef62c76fc1e3919f3a121e056d9b17ea96687af66fb27e71f4a10f8c58dc7f2113b39ac99781e498cf59db8e621a641687be58294c8b7a6c8fa7fe83e6644189d8d3c8d246165bf370469b8850c725f654467a67a3e5bef9458cfcbb92d176fb29a81aae48a03db48674c550a5bdfabe6838942f1b9f65faf835fb1b830837fb9bc461298bc478ee2192b2e88d757c6dce13418e170f8a6516e96c018", + "1e9ad73e1cc62bd10a157710b452ee3a8a29abb21636176aaf951cddb22c723e1b", + "750b6ad94342f54badb13bedc483984cd288c51dd58cff16c3b7abd3cad17c78d6d9519e2c20b669d4f8a0688ffee43793678b1ced2cb5914a101516298ae1ba3f9465376e9152f3179f114e9d7f39b8894a51406c757164eaa09a433173546b4ea6ac810809cb036bbbd933912b0843f6baaa1d79efbfecc3a4236262cff72fdc2d68d8a9dcfc845e1c95272516cd6a6b3d9131054b971ae8945b79911df0c7776bb94f035cfe6312983685faad4584266297e273e04d96de7b9fb90882bef5d0806df6f48a049769939c920d7e3c2e0f164069b204c77b835ae494f55e2458ec8b57ba4d12209237838063ba8286770b6a75fe5412e45f500f841885ae5f0c80532f8578b7a6a9d804b02b77e71935ed4b19e47aa55bfaa122abf0aaea9f12f47fc695268caa6931f881b63d16cf38a304a9bb74", + "0223f359881bdbd2308c4dafe4bf49bff3f74fdd65ffacb98fd27977896ba1e2dc" + }, + { /* i=8176 cDividendBits=3551 cDivisorBits=1139 */ + "3b5f0cf823c63af367fc1641e83cc34b97977c3368f68eea7b111a425860bdb222a20af916985503e230b3b67512f96dbed102c48073878675c8fc325a5396780fd64fb56dfe5f494e60447babe08dc227416f5d0132213bde20933cedfa4b6be420efc66f497c5a4169ace1cc2f2e505ac15a9fe2bf2551ad8c8be19047be4143db13867a12c559907d05dc2220a7468825ef5977d3cb01ea1939bb9a43cd67e7c953fca73834142637e24e02862414376c87d4d5bb799488f85b600c7b939c128f2361adbb12962ede84ba2b3c67fd41bedd88b14c470010fb440a038eca02ba24221425dd65bf63aebe522b9d4094237029fbf448036d2862547f926597b00fba7c574b3578f2d46740aab5a9d082954778007e252a0a13c978237960237b6ed93bc0080f9424b5b0da6cbdfb67114bd8e2e96000442141145faddcb506d91fda29da7fc39694e6515abd50e2d38222a7f57efd7b4e330e158c492cbe24881cb1e104c76e97bdc8f8ef4b06ab58bdb85dc30980fa37d53163808c2d91a6673d56efadb8212cd5fd152a01f5e2d7661e50e22bf8dc15e87ea29ed4cdad3c8f1f6b522b81cbf5336e521895baff405ae793d00d89a2c2677b0f1d1c", + "070f710e48f46093ae109d01bcd18004c04c6dfb25c7bdfcb042c91ec87376ec5b46eef58a3fa71ce3eb865f4e483bf215361263a5158b7dac2e22215dac4083c56971abd81ae14921dabff8a05a5b4f0ae9d80002edf57fc90ea332906a0cced8c73e96e978a2d9db5270847d8bbaa4b338b71296742741c20cf972ff24e64ae913fb867bc262e39e82cbb75489e5", + "0868be2918793a1be52f920b781e31a971abb17f071a38a8f1a5415a37f6268e39a4c9ef221ff8471d7c9d6ccf10d9d6b30ed6af0635090f4351380a57598e9a99c6546f0bef9b2384caa9da3d2658492c8a35ecaa9647359d21e201ce26d8b5f59fbe358741c333e63e7406c0fa14175765cbc2d2acd40822ca4599ccd0f28c0dddfac5311f8c67300af04489926ccbd92002b67392c01ef8e8845f25a97c4358800ca50009a750e05032fee77e63b43ed66f13b73beae66edf32b73d8fea140627f71f9b7d177fb164e351fabfdab1430788a60e4d00a03f259c18034f5708191f76b3ff09cb381a6d65991ac004ad7b70d36053d8241bfa018982f7724490e50d76a48c0795fabb827e7b0c07df5e31505eb4f82a3ebef2c717b0ae8e16d4d55a0a03105bc006bcf09dd0214c", + "030cecf521c6c11969d900598b5e08047d2cf38e5946f6114b2dd02a39b7906bf3dcac0011bcf93910f48c514d0aa15bd46e160e7c8a1f7f7a8afb7780803a91c765f8c7ae4e9e315ecf382fb8a625399effb6284d559de5a32005be9f8efd55851088323cf619ccae3eca40f84d869726402615d51d38400e7961bd90634a4b69f624c68df2ed62e06b59ad1fa820" + }, + { /* i=8177 cDividendBits=3961 cDivisorBits=3554 */ + "f2fb614979e148fc1b87b7704bb8b81e0457fd200740dc00084eba33bc8532819ab3f487547eabbc1d43001e180f02d77fee71672c30dde9354e3b4ea0460ff22be8658598ef1a0065f778dd6728ac91087ee44bda9bc6886ce5b18791b36ebdb174c1c673e1a766500801c8f82769f22aa937f77dbd6ec8c93670868269ae0702a06c568fcd7e0d721bf16294c7a994b369a5fcd2f7049a01dbdbaaa333bef2775a78d06c5ade2fcc44fc32273169f0bfb9b0c4ec4c7d58230ef7b382dbefee82e4c2b6182457b0677d208885af0287ff9c187b0acb8d67a9f4935b8c22458e43f8fcf8259e8620abf5c51436e8e261002708eff540d445431129ab3115ed44948e4024d134dbe00084b71b201331343d165988d27916c6a077ac2969db8fef0fdd9f23857b2118eeab3e4d490f8ffb3bfb7d32e4b97cc90a844f602ea8d29666cee768b75105ed5a4bd928b8bb637736fa65ff59e32dc644342dccf1e328ea7e16e217670148fd93683633f3c016b0c29a48189e856c8de8ba620ee4a3e17c00140b5a65dd57a6bb71c20bfff6409169ba3bac54bd36efc371bfd9157742ad221036f4629deb370e7f76c9b854f46fd07e1bedc248a2ad68639ab44574ce346fb521532898c6b68881d7af3f33a2a297eb0e695522d98d3766a6d92a0df01522afa0616df00a2fb557d4a6a64961", + "02529eb04cb53984b3695333146e082563143aca39b739c61d71043e76d92566bb4feaf14c39893d8af98700484eb425949ab54da7990dc6d8b6619e650fefbeb3853e32a4aee6e45c7ad4cd116f957951ba1692750bb7a2665e14fc3b1a9a245dfdd5ba07bc6e0bca4215f76465c971ee6cfabb9d833dd11885f3cec39b776ad787d5f63ca6aed77cff8c37886dd8d9dfea601f9baf200d4ba0397824208e3eea1a3c3df0014a16a5f4295f972d218d9ee07ebfd384a1dbb8caffd33d1a7b0b9c5435aa3ff00ab1834f9d9fae48b2b5dbd037a211aa6680a7fb5a5d5075bdd9290bf15a140771a275008c76af66a13bed9bac267dd83c79759dd232232d0a07f2472324e2aa4ad1390c95502feda1c17ebb4f1b192d5e47a0a7008c3123e23014e30816b87b8551f9911da6be2439044ca42ad47fcfae4af9886a89c14fb036abd99156458f454b7686972caf74ef9a4da67180ce1cf8c23c3879dfa3340205fe7625f1a48182bc751a55595557a9049102dd3d1742748bfe60eec050e6dd79368975715391310fcab5de1950f34efe9839aa7fc905bb9f70d1eed5b7b9bbb36ee6b735ce64ac22f0e6f6fbd31451507729dc6e1f60a8f42dbb1703e2", + "689c3e693de1129848190ae9fe0667db957c8257b024d8e0929ad8357eeb5f1cd5e00d98e68f3be2404caf917201c72925a98f", + "f570512690045fa8dba08641f31842e93b6c2b4824526922d1e08a3f01df15ed3e9a7129cda0076e8d402052bcc9878c9ac065a25ad1c60a037883449cb56383cf3c05efbfc06348277fd6c2f0bfe38d2873bc9ced6226101f205355e356c265f1b627e3b96fad9cba95afb2e539a51ef0a0392523303079108abcb10c08baab7255209d79ccb2b24432daa1bd6328a10a6f8fbdf4400ed5a7ebc3543830ca722987841ba13bf44f13024b4f10b29de6d4de73980d6dd5e940fbf62abc763c423bfc881f5d73ec983cf4f87e2824c3d553bd320ae18a0b7305a19ea9069c8fe5e541465d144ce192746a8b7259d697dccebac606032c3aba131fd9fa576a327068e9bbb3a2dbf42b171122db801f2bfe06a89d2970296f7c7791ac641303b8ffbfa3331a54f8faf1ecfb5de6ff74cefee6350ec5fe3647a55689721efdec65a429e9d0a92b15f8b4e2b0c0833d76a70d7a8fc23aa2ea74dc3da7644b4c7d533bd2418dae8371a79e9e48bf65aca7cc73dfa59f56f690d533a7d57840044b238ba9315033169db0826bca0b3b89cb347e883df2e1a9d03d637b8160367a1d36bbd19af7e3fd8037f5153b2331d30f878ce39397f4c80421263190ec23" + }, + { /* i=8178 cDividendBits=4036 cDivisorBits=1396 */ + "082c4d65bf86f4787f04830f529d504d0168f843a906783219e23c1617c78875f730497fea003b737a36c846527f0af95c25134d18569e88176044de259cb17741b1428425ae623e28bf7c8426b5cff32d7e3296220948978f55834e0871ff8b97f4dcf2cb6c4cfda9e496ec5d87280161552db0eb106cff479b86c09c62c989748112c259726543d0387d3d14c3764d3b12f34715b682862a38ddebac067fcd818dd39e2daca0d45ef1e1263784be9a4be9750fc105782f4be4e0fd6318c4e26cc75ab6441aa1d53f5b428642a30326077dbac93306e9f3483fd2ba75ce87d9cff55e5a4766b0539d69b1ef6ed928da209d547395b80bcf63df75e6a76c4592ec4643a8119095d6b744539f86a4c3fcadfd6011e57a4ff334e63ce72c3b47a0e0a26e08e1f1c64356bc19bca7df6f0b5b56e1378eedd5f33d8ca94f1cdab9d6b2d5cdc5b16d70b3536b316116b21ced5c6ac033ea8a8647ba66430d5621ee1e8859906e8ca206af7298c537bf6894469e4318ee09b09e464f71fd2e4db51cf7f61c3214b73cfaa7935ab84682c3e9c859726eb0a9a710ddc84812391e55f51a6cce2a9c38492c9a1a2c4db77d3f57280dcd82ceacd38d760029d53c2b8aaffda79818f85c5e74b95ba60d732e77079c243926ec020dd6a219957d3676dbac087ca39cd4571d73fbffa7ce4e37cbb22bc764f5e09610d99325", + "0b06d5145b75b633219d6828c0020075ab816167a25fc8533ae1a4f1dae8bc4d146f540f652f1f22f57b4240b627073d1bc2ff6e98825ac9665db878b2c837365f8762c405836e61176e5bba270f2c1eac215a0072342669f759f3674e90f9777953a25d6e1271db961a6d6861a260bef91658e952e70f7bf4aac287c45a44bf9bc857c33dd9675a246ee1e5c8dbac802842e42b75e03127afbdf6666f74749292bfc93d589b41e09c351e2bc32959", + "bdbfb96f88478e08f886ad0b254962f3900e996bbc02ebb03f5ca117b6bd3da7d5af2de9bc8206b3a820043575065fb1c060a69875ce322d4509e389ac96bb42fda93de15ae61586aa130552fe9c20aaee7c6a07271427ff3a713aa68f452e9766ac642fd7bbfba358399a03bf50b0e0dd91487bc499b89a440f25dd863085ecf8360390acbff0667a5754e8d31e91eb2154f7393580ac4addaa32797935c6ae4f624c0dd1dd244a1a3ff1ef7af0a7b872e2ab5566c4ea20a5be74ca53aae36d62bbc9ca620950ad1a198823aa4a784a38d4730b3e561fa770b5263127059c64aed6fd66073e841c73bcdb2175016ec153cdf19bcd8410d387b0845292aa159e243cf6bacf56f0d31eee004d156256ed690d7db2384ae97470d0fd83a4ae3508a6a788aa3d537b56a18c90cff6d29a93c3e25ec10e18a886c69691f3147a0c1385616190e00e072e80d9", + "08d9066db1d1f09aaa4af5bd7c338646bfe8f45f9561e2ff24c34abb2ff59b93368f17122cf06311de5e61b4ebdbb6c9673080d5164418943fa6ca1ab82a61b50f5ad60ea18bf5b2644223110efe88556fd2ff5aac4028437469e2c1df2176d1b7d01b8b743f096909e9ecbe4483a2ee1e7c7fdfb5539aeb1db899182795a773abf8c241d39937a8edab5734391fcab2838f3fd86b1348828acdc49ced1e94840826a94d5f390063756e1086c106b4" + }, + { /* i=8179 cDividendBits=858 cDivisorBits=368 */ + "f219086e1ac4abe10a585140d6d813552ffee315c7b92f7d2144c2d8ff378753980c4e44d6ea791190ea8d94c6904f82046adba12c688b92da7d28d29e4677eb55b6410bc6209e4fabd04a20a13c683869d0a4efa95b53f4745d8f1825736ab6352f278fa3491aa7a2d6f7", + "b4d4387cd22d5238e5639a78c7686433ec44b8bb71e4de8f29d2f4b3d9a8e7252ad05affa582488751be68183843", + "0156bd0611f141d1f25e6177b230b09c8f59b7ad4624f34161fe73a7b49a4ce0aa5bf8542122ec3bdd45cecfd765c4e64b0a913cbc92a3be1419a2927240", + "6c28ced4880260a1ba4e925c528e963aeba7f4268523d19c23a3047865c0163091346f5cf7a59574a3305c50f037" + }, + { /* i=8180 cDividendBits=2035 cDivisorBits=43 */ + "044656c10d9e879a46e05da2cf142b10969e5cdac04aefb4e33e65dc3fc23474212fba0e4727b7e25d2a0e1528a5c54bb7662f90b1d774c843a442ebdbcb31aa7efb6284243114afbbe9f31e08f452184d5b4899c2b6eb42f27d22c076a7d1113da6428aa15b4f315fb957478a7a9ea21553867a4aed7884714aca92cccea2ad8dab3102c3913afe1636fe50d3b0c7a18b1189c92aab4e2d1d24d1a23b00630c8d3ab0784a8bf85792b926029da79dc0ebcd210cd6d4f4d0c2bc4bf70a67b152420c40c8d6eb5d61d20b45a61872a4b2963577eb3d4a3448375d3ac06309f3b572dce8730096f7644fcfe4a36f08d93b20d356a72ef281c41e728fddb01af4", + "02fe98924700", + "016d729dce454533f5c160ab19f9c4ad8163f07e5ab393276afb843403eacb53054923f4e33ee1ee65b4d1beed74e0c26c6722f3a7505cee92480b8c256f91c7d44d8356eaac07e335bd403228769aa1a1304bebc22f7e4e351662c1484f4b3e42194760159606117410f95f1dc5067282583e28689c190de1137aeb0a46a653c5017126793f22fc8cf77f4e88f618451cb897f0dd2d9c1fc50b2a0c72cf5be7e5cdb3c9b0877110749b20b29860a86a1f64ae6eab5a2462ffbbca3f2441dbea4c9d7583037d52189c064ae584eaa10fcd2ac48e738cfb0aee7cea1f69ae92bd4f5343eeae7772e3c9d4504ec4b4c1cc0104397a70b9c093e908", + "017f317ee2f4" + }, + { /* i=8181 cDividendBits=1657 cDivisorBits=698 */ + "0b5f50aa0713be7aa8dcda88d859ed527f06da609a5a0451b24f72d50dae914342b11ac6b6143c39dcc94b2293bff95b06cf2d24c733b44ac2967c3f41dfa4af74c50423e312955f00c33cd1e8428f520383b2de0675cdebfc75018c3cd979031806a625462aeb4a880e09219e9f80c5e78c61e951eae6774481f39e87e753980912a6cc4823e1140bb03f1ea68a8ca0bf82c99ca7a340ab52540e530f8bde50c976fe505d9dce7c9d2eb96f23059a17f00fc3c483d3fa2e79f40db907bbb008cae58ccc13b1bdd7ef2f09bdb4474e", + "014df18bbb8474a40531562535517f9bcaf409ee5d8b95a5c32bf8c7b9a81cb33a52f5a86bd5be2e9ed52835e6bc3bb0f870b75c21f5ed05918aaf3c3fa5f22ad4b06b4c904dd06e56851b6837be173ab447169dc95d8874", + "08b7cdee4cfe3b5bc79c09fe919b91a47acab41e4b15c2e17b2df8ba5853fa6358998a875663ae5936c969f4c1b66c25788a13049df72e63b1619e99883bc2a7c248508d6fbca650c7cbcb15ece778b0b8f9628bb88dfbec207aa5cc519a0dcbf251d3a800607bd988545343b391de9bf38b5ef54ad11884", + "819c3d7bd5e4e81c2edc1986beb9bb6e79e297b074ffd33439551c7718d39a7b7047802a77759c9474786b313d6a79b65b9cce1a3caf9f7469816f19de79f8e7a9b06967c09392995616552f079281e4881cfb35fb0b7e" + }, + { /* i=8182 cDividendBits=2812 cDivisorBits=1561 */ + "0e27ace70be91b7c734d2366bf2bc23ac6015f4f15f838afcb4fceb657867bf3a898a75f1dc98461e2c9654bb860de3094e2770c6e537e0e84eaa0287fb1aedb75eec2140a2ae33138c37a21a5b45c887ab09fd1e75179db352e5a0c7751238443bf64c1b8970285af7506844202c3d3f19f1017fbfcee5c95fc583f423f7a6621b08d6e0d8b15052568f2b1822addaf4eefc5f73a0eb45499c95862d2fe346382625d936d032779ab718a918e7971688961087911c9584d72f182db2aa05d91a752b0af18a77f7b7c7a5114229c3392780c4b977e2de7bb0386493b72b4d06f40e3fa969cb7ce4dee4dcecc78213e1a811d1d8f923b213557ed3d82785ffeb370fd3e7ba32927c64eddb8be344e1e3380dcfeb8f7fd355580a45425dab0f775c2df5332ae12b3cd0051d0d926b9f40ee92e73b7083540ea7ec7ae4e3d56f89eb480db8ff59d46c321622c0cdeb5cb19cadb137c21e4e72ab3dd148339fcb7ad", + "01efef10d9d6483cc12edb1a1c98c9ff2f5aaf17c4bd0fdc6a748a9ce9f92b1dca13ef474494fc9e75b6cbb14399f6256d130e932c33e6570725e3e8ea4f369afe7294f38cb63a4ce425a3b881d25906abe29046807ceeb5c27e7fdfddb283c00ed81019355fc33d6ad04640ccf2a00865422366b9c7834401253614423256f7bff238c23e53306457965224910aadb8f4ae121745840f90aac7388c38c74acde0898945a6f62acaf5d233d09900ffba42e8e2fd12fb7068c320ba79855c1239b0836e9a", + "074e88963057741c4d348f2b2bd22287657d7a044b9da45d4aabd8d16624f1aa68d0fff30c6c1589683173d77314daa4dae50306af9ecb9decf5686fc5da89736333fd9eb1a4d504f5a5f26f267eb88342abfdc223505af3642dc6ebfcf722bb2f72c128e800161feb8c11ced6eb4277fbd08635df0990a21237cbc9802659fe67616a078b8266d0108221afdff33cc5695e365853c38f7d03c9d2abb7", + "01ebdf83d9a8131dbdeb27495a5107df87b6d72fcdb714339e16a4b40c8dec70eb454d506c2f3b17d395b7df84316d1e6ede9bf29fed34bede0513a7a7b2fbcb3ef57af19c2da31428ec1514d92180828b5a6842bded305b280506845b8439d0a363cd6d66f157baa48187994409af62d3d333549004faf112144b36ab05e85c6ac6ebfd841ccee3622a26694e8c98458584ed3c91b18b94dba01cb40d7f40c7303e3959c56d88de899ba5fd1f10b839df00506140c6ba4379c5d9ec4b6408e89cd3c997" + }, + { /* i=8183 cDividendBits=723 cDivisorBits=348 */ + "03e629c483633d62ba788f73f0287c43c6b056206712ab9514bee272595fba3414dc7b526067a180e61009185eba6f041d2c7620ba681aba5c7127b45d60b3c664d748167a92c759459a055a0dc078eec4474514c0aafee6cc3b6d", + "099f5b8683d302c76417004975471f46113bbdb44d4332c8d3467818f50f1333a47c35d7cac7b648533a9e1d", + "67bb78b5e294f7836c0b2da64ab63c9e334ad5f7952dd80f4f38f8f16e29c45aa69d27a67e58cc85e84c4ce003b3e8", + "0647179cf7bc32c0dec697e9488a1fc3d312d19f4fa49bf25b0ed45a7e97171936110a86c803169c42c7aa25" + }, + { /* i=8184 cDividendBits=2272 cDivisorBits=215 */ + "7bbfb0c6cddb254cde713c143d947f8719847369e2a92b7d91249b8c9f68b8fbf185468e87546933e0534ab3c63a5fe3a117981a7a4f7496a4d3458b11629107dad83d5989dcf01dd1736e5b2cb20fd2ec7fb711fdef4676a2693b0c404f88efbd795652b2f0267027e9c3f91739e68c0b584010e1d90ea1865878f6007ec4d403417f8c065105c29f59674df2ecfa9d9f85bf01e87c39c9021df4572ac5dbbcd6c2d98b8657ea4079617c9ddb977fc5a86c72e2b7f897534ee0d437ed0de13abf567e19f07b2c983afec40d1e7e80927328cf6ef00668c31e256b3f5664fff68be4af1875e9c13e11a71ac40a8bf31d4a0f499431048f5aef51583f78ec9f347b20f83732cebd267b98c2b79fcc77d7c0ad27c40f007fe84c116cb0", + "42b20e372018fa81ea30f7d81af5b6879c4d7d93338ba948d7b016", + "01dafd5dfd5790479cc5351e13c8bf90c9dc060faf9c8acbafefaee78610f3052991db4c5cdb268ba4977303bfb0a9dfc000a22c78f761f8f3ebfb1e50c40b4b71577191cb437167907e0d1ba0d8c68b35c88df8e98d4962e29ed2fee7a594ecb8c8d1146cee43625385b6d779badc0c9b464ceadf05764336d8b92d5980b2ce48d971155380ecb04a43dee889524661d70ecdcfbfa7ab79f6dd9c69bad390d481364ee0ed7179a92b47c80e38e268e63174d773b9b30f2191ca711a3e3a9233d46df093b2f13dff6ca14d20b1a135c69621baa270c7bbe94f96254b746718b4f1374165c0751fcf55655e97ae0314a7353d6e1e6c9b4f94216e726d1ef51e774678", + "35240d583305ad508d563f44981e694049f813720082afbe96de60" + }, + { /* i=8185 cDividendBits=3272 cDivisorBits=2449 */ + "32022806f83b459693c21a630f4f2bf6765860df932e4da8c502253c61163e3340231b610702b0d2ad73e3c4765c5175ef58ab0483f3e8a90189a80e27e4844042eac23370ce2f465255a498a529bcdf0f6c69b034c604b8988c95ed70fd1a1c0743d10e1ffa1038c1251ce78fed8262cff3c60a0f7deed61906fcf50532abe66974608baeba803ed31c16a7b21b18aab5b8631a8c83aecd5b47d0d913d0726b524b679e2a6943a98f5b59194f5c37a5069d2aee3b7e0ccf0b021aa6ef6559660b077e5d2a21566a659c9a34ea8aed0b8bf64b52928277537c2f7ba311bc5e82252937a8e9663658bb980e2037bbada54f2eb47fa145b2f7f1868bba114245d75a00f3f0085466c923ba1273d75efc3ea76c02104bcb681794dd0f908b4e9b691523f637361658cabf75c12c8bbe23a41e8dd5d97e1fe4ff74b2903e38b86031d076079fcb4310895c85603dfd506b9547d30c0f1952ee2b60590e622dabe9a51dbebb6261c060e343981f15e2078c27fcd6199f7ab3f4209e540f7277903e7fda533e724d82cf16dde3bfb80f9a195b2affb1b192cfb0a499", + "01b2fb4527101f85e204a5bf12d752084a436a385100a862fddb42a5745895f804375877392aec0c7fa7565fbd75a7bcbc87dc492abdcce6fa19c5addf98115c32aa46e3c1fde495c09c9e5e1834f087e60ec346cf5a8934de1c4da570a9d609fe2ad9e6362ca4593a74943b6ce3dc8a4e71f9bf2ef2eae90147dfc254ceb30236a7fa174557ebd55462e3e74c34039355046bcbb7757fed4ef71758054a4c6928b9795b2b6b012a3407f7daddb5348331e1a52796e2afab5f211edb287ed5e389f4616c66e792cddd3fdc4ad70a6b7202365f119dae219094f55750f2ac36f6e0999ac73a3f9c04bc8201b4717116d991ebd6ff84fe29ba6418276e39ca67670e091c5a512d06ffc8dc24ea699f591e5db80e08443003f3d00e8a8f62342a5f2b32790640b2f5ccdc90d836012b816d915da6", + "1d6e766d7918757418db8411a3a3acd55f0c7396ce2f77d1ed93e9a8b9df5449d4a7bbde9c0b9ac70209e0ae5d20e4deac35f0773d7128baa56ee6a9a53e32a5e9fe059e5b0834cb3ab838a14d43c45f38a9a141441214e9a02349f355aa12f692e63d98917b17", + "8669653ecceeb9b7827498c5b70f8bc58f087dbd22bca108a289c0e32aa537814389d3d6e464c6b87481867720ee7b23faeb84df6558cc576fdbecf1617f00f1bc66afb3b82636ecb33076869356a2b31a3db9d8bb62bae4520bed6b219405be5c745e55a0c706e686232608b50795927d2bcf14c9d1b9107d6e77156a357abb6af21f036b505610200ca49ef04de28eb1b679ef79ba75d22c38fff760f97be505b4ece196d7510b2e5292750af4f85a95c4ea94d56a581c7bf7e7822b8a4691555c0d921eb54b21d404c6d488716d3d91327bf4f4683b61d312ae706e3d0b4ee7858a79fc155df7131d7837cd6f522e1a0d0321906729a8a7103644835979cabfcf95e1ed3ab499361c81a41509656f0dd0747640b372abf5f546d47afe537e81c9f93e15bfcd2a887475dfc5ce849c78af" + }, + { /* i=8186 cDividendBits=1196 cDivisorBits=878 */ + "08827fad4ea3b86de322c87103d2c69bf527029c0d8cc812b73e488c950f93c4ea3ed0280e7ea5345ee685ecd25a68dcfd3f2221fa273a0782db4329016f4388c6e58de7d572a348e4566f34444067f19a7402b2e626132990795bafea91db0a36a21d853e64ea6f292df4f4678fc5a87c20fe1b79ad29afae548abb73b20211c8f146162b5fa8eeff880b7b0a5e331df7bafd545670", + "17f2b8a45761da0858fd018c235181aba644ddc9ef5d4c0c65a2c64ad9229f53b7508a9bcab3e4239da74092bc2dc6a2cedee42bbd0716e1fa33f8ca6bd30a0364d47ebd73adf0eaf2fa7bb8f6ef21ca5fe29c8d267c66b33ea16b33a50c35ba4c03943cd5b46cb88d31555059d8", + "5af7a6802d9a8ba7bcf4417c661138d653049d087bc439476edc9d8dcab7ea17d6812993cff53ef5", + "0a813ad079435364ab7d3f52be594d2ac89cc94483f528456ed05bf8ed0fa9cf82a8acc68b8604f581d5f3817e8a42d5306f9c094137bee2d127136e093a619865ed73f9d96861ffeb8770ff7576915ff6cf1ae8832fce965c36952a16d87fc7896de268e695bebb17473df40ab8" + }, + { /* i=8187 cDividendBits=113 cDivisorBits=66 */ + "0140ead0869cb1aca9c459c874a2a0", + "03b07e3c5ea4f06df3", + "56fba3d701a2", + "020b5e26a167cc1bda" + }, + { /* i=8188 cDividendBits=3169 cDivisorBits=894 */ + "deef53b739b7eae7c981cf696fa584915a0de25544cbfd7155ceba3ea13d485ec567b8661d5b552175d84687f956fd8874148892f05b7d55058d048f9308efcaa0c6a009e02e82b27c6ca6208c37086bcd632305fa26f0eed49f791325d06e7232a496839d0265f737464c73e20da66dae2b52a4e433ad48fc315ab372974a7aec09aec79db4f30727e64cf7e02621d3deb7b584fddc1a66f6045b24fafbf27038597669e0dc3da3ae7b2ead03da254774b00beb6b3f831dc394c369fefd0c3d1e7536f64186857a32e60ef19b3ae88c4b7113e60f6a62f823171b5a8aa197452a80e2b1aa9a44afffc7fdf3cb7e6a35d29a5b40f3f5d8303418fb2bb6e9bc32d0c4082ca11bcab07dda62f1749ff2ccdbf2c781c0443dc7801b651d76df7357f1e91214853f265e807fb880706c82e236ce367b0a87beef954af8fab568cacf2659c2cb9b8e5ae1abbe3b9ee757ec1b9e88a60e3c72d42f46cfd16ace48b5a909be8341b6cc8b77d5ddc654604f30c1c3a233d1d86b0cee1ba5bd9c2dd75ba2a15c83c3b0da696a65d8388b", + "03447e24271b5edf13d8fbad42b95a07df65ed44fb125c17acbc96f688479cc9bdac0f24f2cd6d444d58dacc86edefe0d88c9036459bed27991573dbad6b7d84e128a8446bab66cfbcd44c6a672075272c603ed1ecd58310dcb7b3e020ab111dfe07630933c211f911b1ff8a3b62f834", + "443a17ba79672b97e6d4f5d29ca52bc72dc30e047e6f02608866299d9b4087640370a4d956f62e1c1879a42c2bc1fcd2c1a753b52d054c2c71ad2641d17396dd3199cd7dd974151a7fb37d32b682a6cbe97967fbd29aa487a659d943513595fc05b0ad8c6108ff3c9b887df4e0094b2d2ef747db06d46e2659cd4db3000b61f8a83e74ff2316d9edd510aaaf55b6a5f6cd87008c6c721b9b91f5268a391e9cee34f9ecbf9b77011e800ac9bfbc5bad63b01aa8da0aa96a3740ca551b1bc3f1d88988c9916d366448b933751da1f5c6239661d898262ae4feb54406eddba2d1d25664d86e7a6999c703363c666a364fc72f2a9180f89ad375c30707e34145487e62c1d3be598513742c490a7f23723990199e180ee6d325197dfed04e83", + "0189e705e554f14822c5372de1da87de4345b4cbbaf6a77124ca3bab80d87f7f23b7c53fe88a59323ec4529e108c12d752df6807f12d08b6f44cb57a6eeb90d48af6efcd248224fcf6e9cbec2f94c2afbe6925907d360a2d3524e722608e66776f979df7447d2cdc3a97cf8498535def" + }, + { /* i=8189 cDividendBits=2683 cDivisorBits=1222 */ + "cffa69de040369b943c0e0d83f0a1d3521f8465cd4b8abc6bbcb1ada749050605639995971b520ae6db00e2355617fb5ef2b0fa45ff65bc76f92a6f9d63b9041297b5c0caa568ffa02d9e332213c135a58e814f94e96f5942ef7867cea97e968d44ba86f587559066ec3b5530c38158d3ab36e0f081ceecbf2261d30b787be2d223a3bde135a0270c394c1382af68334e3dd22db94689d1c901904efb9df07f8503c24b2b6d0b449d3f8223b759b34ae513ea96c53d36c127488c630a09d4d73122e015097486493e2588975334223ee17f0245a035468711b0eb7c498513b1bd9b348d09d928e0aebc9f87bc628579ca3ba2a19afe8febf61203be5193cd3aedddb59e903860e8ba46500e8c52efe026c8611820f1c76c586baf5fc1be09bf38b0ddb8c7df77cca69f5e97cd74a23bed702d33ffe92f870a48c91a5a47caa4d9c822d362249a2c599572d5a0509db", + "1a49fa62f74300b98f6a0964d94391d639adf3ba47d07e67ab4a187f1ec5fcb164ed27d5bcef2b17bcf423dfc685de7f8a6e28e566073878b2d06453117d2c9685165a75fa32e057bbf2cdbf580618790ca5ef52c755a9de6acf100a1c15d532800890fc9c22094eba6cea4cd4c9f4daf834273a85010584ab084a9747b8c1bf70a07a3d1ce1dd91c6424e8e45b6f68fe5d518e71949048d10", + "07e94675433d21362b692e9a60555532ef05b398801df470bfc4b2608960b2c0fdbbdb22ed69331de4126f5b8c8a8973d5861b3084bca4e385131a9fc605d9fa8e61ae857eff13fb6e44e291e83127cdc503fce203ed7075d0d032c04e27e48a3fd73f8e3b03e84b6b4b41f5a35a6bc4e35194f27afb9755fe3cc9e5ad94a64bc6e551f1e75aaaf271140e0b5e81562f241d27f0e91a64d2c6885fc15656e1b307f7dffd26b83bb57127fe8fd963cb20bb9a83449e1f3a", + "192d7a2831696806fd35d5e96e7814635d0ec1d3396dbb7b618b1fe50ccad6bf3e30f8ef6e0df37a9c6f37b782608250ca59663d43a576d4d53773b2bef754ac41418242efe1223fbffd0565fe04cb271764460acac56d5e5d491e088b8fe4e0c76647994ef4e6fd7fc0f7b2cb9a2f7f7867e9aa7e57e872bbcb7c5a125012a891ccffb20f6db4511c4e4be221df4f4c7efc18d623f208243b" + }, + { /* i=8190 cDividendBits=746 cDivisorBits=362 */ + "03a3f9954dac0dbdeb69f3e1f9e550d9d3f5d68c9659dab73c2de72168a48abd73e3b97f45d498faa6cdab2132fd579d3f60c68ec0892a1ea126df6c7d3a96b35a9ebe2ea2383dcc09ada33920c9bcbeaba0d9c9cb69715b8f0219055d6e", + "01ea385de46b98aec5c35c2737f58f60bdc8fdbdc8c3869dcf6a4b38396cc8df9e2c93d74bab995ba5641513d5b6", + "01e6b0cef475be87d5e5af9b139d7d247b5e23847cb40cb1e9f65d2748894ac8f1cb9d4ef303a620593debc216871b2882", + "e37ba48f6d633565253a367a702a983855e589d7527bee3fc97ff7ae0cc3a8e039d7eedf72a293f675c75c6702" + }, + { /* i=8191 cDividendBits=3767 cDivisorBits=234 */ + "01dd11a58f1868f49f678870adc54a11d8be4365f16f06288650628702e826d23976e248b906d7fd649760352c4924be66ca303a8211c31e0d56a8e89f6f21a4d7c8e5d988d829e81b768a8dd1c796e96b6fbb4ebf765f02dac590b1e0fd1482452d226d830626e3891c8cd575a756d20defc24a5ea7c579d38bbb34b4f3e2b2c31ae344e49b5331d7d5e057116d76297ba882ab2fdb032f3129a47f17eede7cc46cd0ca99309527357d84c58a82f7906a404f90bc42434af4c01dd4d3b5d13b398100ee21d0922a0b5418e5f065319bd534398431644233da038084db0203b9512b062e7e3030701690d96cfdf812b9bcc6f7093b2e4cf79b37ebb3b1fa106d6aa0b505724588bf4abf9e545f621fe33cd1d31e56dc453a29ee9f03d08f4d55054be019c2096f8e18c083ab998119eca678f73ecce3a0a84a064e14751648029624525aff4f282b13e8b654483be75611f8e7f653d6745c4ca7f02db49b025b0f6a5b2a21823bb7474507ef3d06761b943718bc43f16c0e467a806fee818d158d1764acffe2fa2f2701264d98271d884f75a61be8a5bcda2cd00013d815c108a25f9f20a96775af9b738eafea98ade58e6a013d33d74341136d0c5ee7fac68d21f51927b1d2d1da5554bb7834440d0f8d6f1fc9fd817e", + "9243384eb83cd03034d9fbd74252d09a2776d8d646268d25383510a8f8", + "034300b09a3c167f0890511fa928ae8119e5328cc93ade60dcfb922925b6f38967198f22cdf0314e4f1871958debc892a7d943557276486737b77fc3bf43f8e34257662ed2375e95ebb21ea56f6764878f74cce31838d1eb4864a7dc85dc986d9ef048d9e9ea3df97358e44039d2484b212f7ba5d25fd35013914e50ca27f29b5e3c26d5926db6494d772606f9b80b3a394a181e45f6051f1afd35638eaa61dc51af6bd1eb74e569a023662e1f2948558bb504c31d0c41e7cc84f435aa316b589123930f554f51458f4849e55da9d0582d6c046e2ece006463dcf0a0f6f57402edfbeac4d3aac4b4528ea2c47ebe3bb1404b0ebcfa5b03823e74825abcc662a2993e3244689410133a346dad0098b7bb87fb9cf559fb58edb94eeaf396356dc2feaeec1d6cacd9ca1625f544b11df713836a519a46b6dbd75dcbf02dfc1c7127e86225db99d6a5594c1fba66ed8dc2f332c13774921f8e8b7a78834dd40d96679dc2cc7024c7b2b108c0504292cb044c64aeb2072bbd693ffdae1d069b42a3ca1dd3bfc3bf8a2b107f339fee56689be2e063df792e9c5775b3eb40e0bacbbd64aae3d7a5f6b0604b7730a3c04feee305b37afa773617dc574fe0", + "11e4665c572609c04ef8d806d772ae42b1e2f7a9a2ce70ad6aaafd207e" + }, + { /* i=8192 cDividendBits=3924 cDivisorBits=2974 */ + "f9f2d4ef4b13b786b5ff106e8f9d96adfe6d42ede4418ea84a6301d0f15dba26a4319c811db8a772e92effd6aa8bbda06b9c4477616cdc35e5481313170eed0d313c133a719dac329395b5f4932c7d75aa44d7e9d9e3872be5d520d884066b36d9417ce26d9b3f33fcc7eaf570958098f5ce2e63ee1c738b5a6536dcbd09d4a2a3cfd2fd732e2c2c0ee1ad1a0eb0e466612c208530a17773f006e3eb0f8fc060b250b6843eb9dc8b95bddc0993e6f267339947ae4a78136bdd5d2ee7775effcf51e7b7b612030d645b52b8e79d495d8f14be522a9a43da7da2f9e3089f3482983a634eb520c41e92a07f0ab9e4fcf6072ee1b2e9b28517ed0cf02c90d2939e063afe96c70e925c38a2b8a4fdf105ab06479c723ecf9242f81e81905ddbab104cf64a5f95a7b28d9e30778d7766c4e1667487851b6a6dbb297ec470bbc98bce63bbea18489244848b9e5638393aed08f13531d52c08a8cb2abe68dc2d280b114696559eab006c20245d8aac6888959775517e77a4d996d77667c6b523b31d0c17cd06cf5ce0c660bdd29aac824bc27d5fbdb54936ae76ed2d417d50201d31b21f27e1a50ff4459a0594505346fcaf1dc4ff67814f66ae4c5cbe8e132776ba3a885f4cd388c07da62d500afbf1623ec39f88f559918de376e43fedd54a1d286b77b164016333b6eee503a5", + "2c8fb711e5ed86333c5ef663f43a2e1030c0f6ef6e567ab7be52102ebaed8305ab7e4c8e7d8e060d7d03927ab61c6a262a81749e195c453564cd3109265a44f2d30c5442145d90dcb9a9af2b451e0e98db08d331a565074c84ce09f2caa66d1730c3f0531f2bffad13b279863aa1a5b969dae52377e10a43ce05381c57424d12fba966d250306e842df4e9304ae5234f36e6cd9c049a40409b2eab7862070d4eee094f1741ce4762edb66ceb89c59887e7b1333f59d9aa036a0ca7ef013d54befc76b56db6df99c84447048c3828e4ba44fff5baea054e27bf7a1ca4e2557530a8a40efb552ce3f6ba118e59d7d0fe7c17f6feefeb9b0d23adaeb756f895abd34d86c36f98c1dc46368a37629fb416fa58d70901a5f77d862c07ef7e93cf38ba653452fc94edde2ee4be355ecdf0fe1bd3b30d9580f8c100062e327f1d3ec32a5749b308bb6e83931f1a3c4070af91186fba1dba1a4119fe85e4a3485848b5f696a7e91d6eec7e4c6b079b2ce8d9e9fa58ccedfd", + "059beced00dbb0f72e543424fedf87035c9a444e7d8316daf2a06dc54b65229366a8ffd2e9ef27fc1306a773df6f530a491a16425cd7d0dcff3215c7d923a28db101379b52cc2a49ed0778027b84556244958ef2639b2ac91a4b95de2c8cd8d8bf26d411402bf842a1607c74ccb92783d5f6813a8cff18", + "09025821debd5452f29f67379ce31ce79c31fa56b22e391ea9207f48d18ceccfc1c3a8f6c3a58692a7eac1919cde598cd29cffb594a9ceb1fe92b6c4473c82f10f949a2cae8210a4a5cff84468d593cef093d18ed876dce37d4c69ba6d8450510e2113f0c65d208db4c5781bc4cfe2b9cc3d4192075b70c0871b23818917d1d1f551534745c9df4a657b754fcb295b4a55ec5bb778fed2c47406799a98cb1ceed095ee6357944a0f92c70420b4b9728a04743b17997f62058da67a844c422222bcf8f925564202931db3f4924a8c3956d3eceb23f172fb737dfd3faedb7043f447a016b30810e0d81029c909a2ab1d2bcfdb7a25a10d34c6d00a050d89a288379ad03e332f6ceab87f6fd17631c9a24682cd67613399c9fdc22774ba6f3799e9643794e3b75ee20f7831c6159b69d28df7105bc4b0b36ca8c57f02ecb180dbe602b88f5fe9a8a82d8763bc4cfb8bce6f76ff49781f590970e3543ea6c21d6271d7da7bf68c2af7a357ac63bd4967dd500243b0ed" + }, + { /* i=8193 cDividendBits=200 cDivisorBits=169 */ + "f1cc5a943804d9dfeee082e27247a7d85657a0c8cca2a21adf", + "5930a5d18c061ecd8a37131fca3bf7e233d35d6289", + "02b607190b", + "0868d786454b08346ceea117cae079104157407dfc" + }, + { /* i=8194 cDividendBits=3082 cDivisorBits=333 */ + "027edcd2f9545c0dfde1d58f8371c7719d87fc40d32eddc1cae1e57c764d8affedf35a254e9593c2ed0fb97405604f4bfc644e5885081b67f34a18511f9cd940b444b57ac34b625691f72bf4f433f1ed8145f9fcd9bc9b1f761a6cebb203a8f39d07b2f2b853257b0548a85ba2416abd04de0a313ce34ea9e40a79c59903313416a4859d106be5ae02f690aaff3f261973bfcce99b5dc6c220066ebb933912886501fbbd691302581a566c4782d99e2a1dd70ca101ccbb31dbe87bc8332b28e982805d5ca88933ebaa910d1785a8311c8be337e59dffa32ccaefa38d9ef2c1f8e0d9f1921c3acea9b8a8c8e5e12d91efe227466ddaa897dc147f8f6636e3292905663a70b74e5d4daec53cd2ec4ed570cc5b3c4d126b7ca702d39f4da0758c7510471bffa97d6078334a18bb048a6e8498fb13656dde84bd2ed3bbdfdc96a5d08228c91eef39ab75984456b594750981bd328caf5b050be32889039cfbbfd9ef18a6c1a49e940ebe829ed5f8675ee51ac56ed7e9a3f0b75e00de20f04ef1ae431dc5", + "12bff34ad64f69deca62d8e9363c20a971e25e5110d0b77ec82cded89617c82e213a7ae6e200b2c4027c", + "2212b1b465626195cf7371d8839f94af852acf4bbe2e8ccb3b3c601314f9404ca9328e90fb7fffdc449cb4bc1ba0d0507610af1af06a85a13ed9ba9b9af15396f05ed7494ac00a73478615fbbf4bc87d4516b259d8483cbb5928df1aa61b5adfe0f94ed68abf0ad635b25fbc2c1c190f60694998013f8a6bf72da0f8489313b95725256931abce77dae6c5f4872b21ffecd50fe166fab936f8f4ed5c5c1b5bb80747e5d78f56055b51ec930805c218b27bb229cc100c3a4e8d5af6b96764cc304f7fe79db3ba35c19c49fcd55bc63f49b3b637dde4f0c3dd79bd8d2164b74cfbc127f9d5c48cc25afab6f291382532a0ef21984e663c320353cff3e886dc03cdfe80e24bbb8e4f64ca8449ce4bbec0f878ee613fc6cc6ea1a5087a231c77e35cca1546988fb55eafa3f9bbef903b3f20d7ad17da3691c21b5f4a7320d59da6139ef4760381832696480be129adf60a012a5e686e862f6b6b", + "0cbc69d659c5ef2535998c52fdaf65217d423d7289e711a0d1a5966f7dadcf813594b382b15dac883ff1" + }, + { /* i=8195 cDividendBits=1469 cDivisorBits=215 */ + "12d1bb63de062c9df0e24b20bd6c39aa8fc079e35a7cdc6ea3c3dd817fb1e929b2e648a72bbec93850546e4bda79a09cbcbbb30dd90091654e939416cb75c727aa2f4960c0ee41a925f2a3b04e26c11de8d554f65e8f6ca8988280bf5d1ed55571c414aaf721fa740dc0190bb594eb576f5afa692d86ff156a67401763f614ab168cf6af1db8c06d4c092cca0b24f07c93129d6e5871d1df1e2cfc4e78abd60ce0da9a4faf57f02f6b3c21a4a8162b7f1153f5144dcdeada", + "4d35db63ab472e4fb8baaab5ad7c75ce52186d637869b73bb4f09d", + "3e65c0557a0053990143de24d2b1de9cb63c1998172d46d55043e74e9d9a13c7b97f291b902ecd4b8a479cef0d722e5fcd621fb982126f45d242258e2408d6001f249c7895f4e8a4968adeb21dfb973972a8614c6647ca9188c9262d0b5426d1e96fc971e105e54f4b2f769eb4444112f5756d6ddabd47aa1ba36a75353128f14575f8148c956a96944d075fb9e77a50cd438035d84b61a8c0d7be9020", + "3f4130fc0040ae190bde658801135f17c4f196dd93e878a051873a" + }, + { /* i=8196 cDividendBits=3588 cDivisorBits=94 */ + "0a0bafda98b65fd184ccff486c71e72860478ca783c12ffc9dacc51562659cd0fa6cacad7248fd51b8e7f6e8cb7c1e2594d94aab0a7392e0f51d6f7853f1cbbcddc8365247a3616af2f68008936cc5d8b05fcb7582d61a56f5f677599af3b087382c443840b7ca3f66fb7700c620f077b2bc1aa014397461b2f7e1588b7aa737cd408423c3f25634540d9fad9c5867513e2a782b38407c539038e80817ee17bfb6c7c7d996f8f1bf6774fcbdae03f989afda63f729904ffccda0cdb66ef4cba86c5c6a17346e9e17221ee4315adf506745370d1de417d17030ecea56e213ddba2b4b8bfe95115757570233c52d7a33ea781d60f6afe1e3ec5e1916a7c98624c92e435c04a3ee43769c3cc74bf0b0635706d818168978a544c7ac73f995320c915c173b64b0fe43f0e5a6939de4623b6d6f317633e8c96556379b53362d38e3ddebbe5e311ea1358a3e3964ca464666a0c784260300677018f7accccd81cad2d27c13a0ee1165a5f3dfcaad8002ac21fe9d9637858a3e0b6e923f81e815ad157db78986cfe68bc3784e0a7b09aeecc8a3bdce41e6a16762f848c50d1be96673fd517855a071b9f2ea5af4443ac713b0900bd15f13ff799d9aab9dbcd4c329d396ca", + "0d5fecf262cd7cb5c01050e9", + "c047a3731b4bed7e7ed08eaba88f35416efcfa9b579eb3c5c57bc428eedd6d2d4b2113caf2e7a6e3438c0d64996f1c0a44d88e41479cd850a9e2a0dd0e8522c4450de0ad8d3c8e0fb426ede75bf20a42f4de343ebeb4678cd2dc361db4541f5083727caa6b398660fe551a0f9a724f545be2383b518e8f65cb2297e107935c417a23539efa4f302238799cddb58cb5299f274a0178989661a74191e396180af715c03e3c00d35046fd1b15c8d838689de29e55aff9943ee44ef9843310ea3ea718d59b529f46e7a4db15e3777d12ad391256f00473d00bdd2aaf08fc64a7dda19733d54502ea4da6423e422dbc22d6631ca3da4bf525057870d14b478fe1456d55eda8e9ec33b62158311bd5554f3752a52a09793cc76edf87d2cc04b19c6f439c49acae5fcc429b861f3d51f7a115a82d03bfe6b13309b5a12a56da7e673bcc18074866c79fd65c39a0cc449112cb65ea4bd25107992f77977c360a522cde15611e9025e74659b0a3ec7c7e7cceaf736308b55ee2bfea38f6f0f01c189eabdf6248dc7f353d750b1e946d59d12177ea9467329fad31fe7aadfaee2906b10f3a75fcd062ff24d53f2f895eeeb5a310614cdccface6", + "0a1d482f24400b87fc675974" + }, + { /* i=8197 cDividendBits=1218 cDivisorBits=131 */ + "0399b91e5ea481b2388203dffafe37ad9a3ee31bfc29655697f9ae0d0dc507bfff67dc370c0a15066f1b0a2ce301e49dfb738a7f9ae667cea6008dc80b02c1cbe2bbe4da7677b1664acac70cb1251d10a1cbc15fdec56a010d2e0012e76b827c8bd1bf4491e035f958067801186ee902f488c1be3fe1bcecf36835b3362cb6ecb21cf9c03f3ef28922495fe0c49d8aa2e566ff46daffb27d31", + "077b8993cb4d428be330ec19d4d5bc2ef4", + "7b2ec714c6c207f52997b183060fe66c56ca7abdaa459ec47d6ea7b1a489fa46d0c0658249437d7e55bf0f17900af4be3d915cbeff79cb01253e290973aea9ecdf9a5b7e3745d48544b61d3060ae8fa5d7729a6517b27c749ba508a34f5e0f9c11643ae5856fdbf3c1e71d11811f80a679c42b89eb02808a6f52e726ae6b247f75316a8e31c12886", + "067914b4a1c02edd4eb67b44d99de7c979" + }, + { /* i=8198 cDividendBits=3208 cDivisorBits=2438 */ + "94317b29cdf1e6a166479e914687ef0b2fb2b12f12bb5a6555c5f9be2611527b2cc28c9714a3ea0652b750deab6c84cff11425052586bd2f8e2519addeb9e69044c2aac88e1bb3e123d8d4bc5381928e13a1e1354919c4f9784816df481293e1a395b24ca3a480f694a20fa6bc82c66dc991446c33076ee8748630556ee360eff5c3b2177f61a4af6e7d86af3df4b8074ee6f2ba3cfd929a9a0765eda1d24b15190b79f97ea2dff62d51857b7fb0fcea497e96236a994d1e5bbf11805e113f5f8e9f8ff74a8a208e16e04f772fd5a687b91f8026a8e16977151b7a368ee587a83daf0c4e34ed8563819c256ee2fec439d03dca0d485adae22c64f954b35490676650f452f656f9e599dee043baff2f89f19169adddcbb2510204988b5c1459df2e6b0bf984db86a2f2a17329e97f67fd29b393ae9d9c99d1cb98ff26be9ef16bd3363ea7b70eb2983499f510c641ceafcbd4603a4029bf82391f534249591b8f784f3eba9aa6c27ecd215a8d15aad61d6dffaf2ff39aaedeeab09f551e486b08dc1f80034b81220f0201da87f1299b1fa5", + "1ea602c50d7990637f1885f0c8a0cc346b4cf77c04b7d0680bdfb8a3d200ae9beb531befdd34dd529122b72960055bbe2abeba9fa035c35338aac6ecb9f4756bdf1123186e66b76c88413e9aef793754edc5771c7bafbb964af46d812ba3c93adc69c87a24b2c4fc1ef8a6ca02f272182f891030f681c77150897751de99b4174372f0c81fe9577a8bddd08f60605a85a9ed31c0d106f8f790cd934eed3764d8923616551a5881537c4c1bfd362c5e2b983b963279398ecfa5c5e6964c20cf975b36bc38db693b91ade5a5e1f88841675afd7316978e5322869f21f9b39fe12ae7567f071431342c2b9e4af6f35d1ef8bab3ba53a1d0a7a46597f16ae0dc3552e80959f01cac2ba42771d917b44c1de01786faf28536aeb40cc82794dae4fc3f6aff7d686c6ed1bd4d2379671dca505efa", + "04d5d36c2c72952c8f0bfb00db633d49ba4681e13b4424c9ddd265a2c00a5edebb51af1a89db80c93278b5aa102455fafead39f6ff00d867eb70e58e1a55f1455f6e13fcd17e40a242e19aed33d9f215a113645af5e4a9e769840ee24d590e818f", + "0c3b14a9583dec37e50449ba8a6eb26639431a4132947eff772571fe64a54d2c098533ac80796ec60e983bafdcef80ac25f2035827ae6d19e2824a3790c6ec497983d89c0cee4315c6d6c1562b22f3d6e7c5a00dee672222f0dd972dd2b882b94f8ab3ec64044a79b9436cf0db762a9831f2968975f008d5939cf5a1dfb1186a25976d8b6e6e9a1b6b17905a75102d3719507b2bf5b0baa38053defd9c1ae3f759b20d769f26d51c601da59b510945c56fb263915b79c0decbb417b0edf8394f3366e70696b6a0d040e4e919c7275df02d29c4e7b4878bb2d559ec327cb3b0fecb58ebfaa5865aded064c4045b030b8965c153d34738793f3358e347179ed5fad55e677d97e579e7b00e34afe3416ce2303268c478ba69bd7c00b2aba963ca98b8f400639809d4f0151d6ba4be8b2e17ff" + }, + { /* i=8199 cDividendBits=6 cDivisorBits=6 */ + "1f", + "29", + "00", + "1f" + }, + { /* i=8200 cDividendBits=1873 cDivisorBits=1178 */ + "0173feb05d5a03624afb866d6c0b77455f4066599f5dced0f4af567a26bfe3bf904e5c040df8d715f77dfce866c37e557309c31d187f9d8ce0751c2475c21da2be2145469ea2f386ea83e4bf6b15c019688c20ad8a35102480eb6fd9726d9fa34733cf2c9f0f87df68db5e76a534c67848bd9c0cdbb064acc6b7ee85337edeb6939f1dae27041c50214e5d91e0e01f95347c5d61892da98c157d745157ecc7a101d3d4cf17aeef39de64ccf11057749b69b8f1b2a87f052b9f277de8c3b4f95bd648ba03df2964ca8702d2208ecffb3e6239c331e98a1279203d88296608bcfd9dfc9d8cd5f5e6460f8e27", + "017ba91c92b02839a8d21e6d0a878ee7e5b02ca123752ef61b4e7e6428ecd31b27e34e454029823317fa57635471888f85440d2b1ca2391a8a65643b3d8638a2e49876f5c19cfd1e18291eb5c716c1fbd88b0c3134a5791ae7b0c7b5a912c104b242fab166a3267aa9635ad510b425cbc7a720af2c3c4dfb2d3ff2f44a9c535bef4906fa201d47bfe27accb873dc1354fb614506", + "fad4c3d2cc5274cd5af26e070158c1c8b203225c9cadaa10027498b78bfde9a117b27edc7d158cc7e4c6de5703e708df3751d4463e18678cf883ae78cfe61d55f74572ac74ec6344227f3fb6e53e5a667b6ebd027d35ee", + "5e2f7b5f45946a327b5e96315201dc3856d30e7c93fba3e01ff09762fdc0def45b8ee6f4fc422a7a12e04276017fe86fa2ed392b5c30f272a4489877df209b2e5259199097b0aaae33d174fad4f6e27023947bf1bb4449eddeba4be31c07910a70f2eaaa9e74d826292e9359f56c0af457e8db5cfaf860e771c195e1401e91aaa1c93a43aef22d6b0b236f3b6b5a62ae692493" + }, + { /* i=8201 cDividendBits=1660 cDivisorBits=458 */ + "0336844d2e9f8eea784eba2895d9f5807b585d6c268bc0520377792ff41a34775e8f60b5525702140ee1b9b3cf1159d25794f54a5df14894e5e41d7a1e8e503034ff674f89acc1b7a7481cc5d064e9f9d5ec9eb8e67da0a9f22a7d0868eaa7631fd614c1f866e89e3ed48cbeabc9f9fb755ec044e1f05822d7deca15096558850ca8f1294a9bb2f14354d1d7fa151a25f203e50bf8a1b5a01822d9e9b51dbcfcd97eb0ff5020e2426d57490e670c74d5905465f65267ad11c0b6970fd2485b5f44071c7ef30b39b4072ae50282a91fa2", + "03089cf774668b0513d21fd75a7be5fa170605d4505f214cd6dbfc44bab30afb400d069df1a793d84e6f58f4a130ec29ce93963ddd32378b9529", + "010f21ab1452e2d87d22c215c7f1d994c18f72ed9ad418792cb1f722f2b7c2ef3bb0c14f1b12c1c0f7139c90e8cdc4ca8a8fca7209af4ff55a6bbe4eb25c19931a9725ca49aec14aca033b52f7a8ea037f366a3d4aecd5cdf6f8e83961786030ba018569fe63f75dd1cc540ce2f23c61a7f54b73c43eed039d2384af9fa4a170c166c4ef0ca5a1ba455dd252f321314841228204ea2b09", + "01a8a6266701d3dae6df46773584ca2224b492d2987d4c4fb86719f86f47a795f6d23dac4052902b621f75ff282b5a98af283bf78a2d2138fe31" + }, + { /* i=8202 cDividendBits=1291 cDivisorBits=807 */ + "0575768f81647579c9bcbd0676c900b3c58a6c9d4348f1db560ad5ff5853d8f1b5709c119c92a35eccbd09d1f70e6a3ab933ef51955188b30897246cd9bb79d071f4d8adc43cecefc6c43df790f6bb7a85ff73d5415ac39b355116495e22232d4a66e2fa1e8b32b8db39e5142ee8248a76efd3b5334757a4fec31888584c20663c2fce326387d8fcf684d9a8e761fdd0a5008142ba697ae8ab41b0e03c0622504c7c", + "79296dc695ada4c507c66e0d49c2aa8d4d7b68fe028150a0bead3552d465fc42c390575fe44d1f150513431c5572c25745539a7067397fb378753ae334dcda0b3d0f5df9fd6acde8a9c3915273deef3482c01969b8b60c271c3c9db5b6facec6d2953f721e", + "0b88aacb235011973e0eff27e4f2af4dfbc6b428e2a0f23c5cd993578bea37395e867a15b2b5527a94c14e5ace3495446f0691fb6fdd0451438956e69a", + "2ec0929c8daa6269c5088040faa21949f679f46bddd5e4b93508c58a3243d6a3af5346f039a921aea7babeedd10cfc95495ebaadc22b07fc6292eb90b3f7618be7ac6b6b96059c859a67858debe1f19d89ac02cb2f24160a5d21896221bc0ffc04f58ab270" + }, + { /* i=8203 cDividendBits=787 cDivisorBits=651 */ + "060668b66c7d528d44eff9a251a95f826be408c9f7783d7209e5ef06dc6ca2efeb6c3e564581ff4736442e6da136c5972a43dafba8c252b0dcfaa8793f6af18a54fa75d2575378833c17f96f6b25a5f292fb426b32e0a266278b2e2ce1e01d6b55c701", + "07cec96abb6e4320c87898271596abe788c6ec498f6f050a735b38651e981fee41a58fc2176570f5c3e2091f9edca93e0bc70723723c46dfa88ccf5ed4db1d2fcb76ca9240a14ec56fe3901bec38c99e23b0", + "c58c5636d8882b1f8a1fe8b008dc0f346b", + "05446565b90ce4a2d0914da025cfedf2477adf387403ec7011130b523ff0059ba4b7b45493b0475f84c70b7427e1e14cf911079c6be85870fbd5ad86355ef25129d9daa28e5845714641f3a8c6fdafad1c71" + }, + { /* i=8204 cDividendBits=3089 cDivisorBits=2471 */ + "3754f3d81d45fb56b79f95596f866cc06e183456ebb99b1b8e47fb035a421c118ba934b8c2a5670e1c299ab8ee0f15f28244c456954e9a616f81403b4813d095e877a73d4bb71ae3f2a5f1359ce31697b51518f1c8436d3b2d2f3ae723b7ae1ae346e42c3da532f41a7df2896686814a09ebb9962c5a02a34e818c9ea2e9c61127864dfa7931b951c5da0aabae6bf8e0a3a1c08fa81986cdbb5264c00139f2556d50505f480a023970c0c80e1dc07883efbb34f1cb57a3e19a01caf221407257987324bb51e72b806a2ce52f95d8144cfd4640f759dffb46d3117227d300f8bbec237059863e59fa8f1a0f6930771b9e990de251429d8e200a9ad04896289c08f0da81c6d156dd2d2038c8f5d0ddc0f16b9381b4c06b0f4e20a1768963c746d7c58e277fc185c675c2b3ef80bccb1a81765d1519fb2e5c337e659c87c3118d1f27630f842b959dc61ffb011c264703028e405589267d6178be5ef27f3d4a5ae3cea5cbbd9409ed961b0780db067768aafb4170b4602d40de1e1bbd806d3cf4190735", + "1e2d0847220fa2b2f1cd3617cde26d5998f1939b84b27393c9dae794a5a14da18afcaee4346392bd3ba303777d8e5f4ad69ecfd7ed9964f3f4542968c3f2623348218eae819fe7c578e09f694bd7549bbcd1aa59dc2f9b5cf4c33e12770d649dfd48c3b56b28f70e51466eb2dc6e22bad4550b2c348aca97c0a030485ec15b9f6c56e6890611714a2b960175c8db2c7aaf89907073cc47d7e9a0c163d3531562285516def2fbb19164cbd1927aed1c8d466e8f2bbcb1f61becd03b52f5d78f13b2c3611d458c148b3f565d1cffd2088618b8ab017904ec779004787c6e9f724e1ee063833e9719719e9df7c9a0ec48d9269ebfed79cd741895a24b7d9962fea358e1201d1b090406f0c070a7eed638861d3f370a0d237d2581dcc19f6d0a2bbaca2151d2eae3b98c65925514533a50d0bf2829b4f7", + "01d569a2f535f6ef8fb267742bc07b96807fc1058a41b822d36324340dd9b014beb4af56f2fcbcae33d1483acb4fea7bbfb049c1b5ec0d4ca0b0b9da4d6b8b4141a51217e8637d9fa815aedb1ba8", + "0f8d4cf4f3bdc585444887aa79338d28e98d903185cfd6c5d16688879752856e90484452cfe12d73fd9e7383186446002a90bad15f6f606527cbf6cb3f0d60514cef9cbdc10bba31269f4e0c413a2c3711531e1576e0df49415ae5fa07580ede982f743e1526efca08f9c74754c849d05ff6a0188d83d3a401a6b4d699cd4c3fbe0f7325f237a792c7923e4447d21093b8a7c53bdd27b1a1b145793b249da98b8b50d5d7ebcfbb919e6e2c0e8115dad34a5f4b32c1543f24f88a5735773e07cf454739bfd0b7dc63da396241b7cf2817bc29a273fb412dbc2ce74b3ab18a6453faef2da032f509634d58bbee9291b9a4c7555b6c03fc1bb7d99300d4608789a0e0f1c671eca884cf31f560f9fa73f1e0f668a0f46f6623001ad80849f82503411462943457a952b24787c77a7fc708a19d8157381d" + }, + { /* i=8205 cDividendBits=2944 cDivisorBits=439 */ + "0fcfe924226b5a5f1b679f8ab85147b4dc6d1413092c1b441c835a1c2c0fb3184a480c67ac537769e39a308abe91392d50a2db973a74dc5de57f48cfea526f3a29a0e70cec8f7b208d5fb0ed8d6d0db7871b003c3f5904dca3c706c670a7a68a9263920c75413218e5337d612c8aa2134c674bba61e3c61074e8fa9f79bf3bc00ac64081d4ebc98c51dc77e6551bb8ea2b19affb77d1e705143359f1d2248a414a74f67bfd61b1d56373a6180e7d7ad0eb7d8aaa5411c0bcdc600756c5413c5f6e76ed8dd25cb39e148c26afdfaf8c6dc8a2fa9278ce88301773e5e6bc208619dc6a40e449b81c2339d4e6cecab812cfc0068d775ddfa895514a87f38ec3c2753eff9b7a47633463375468f6553a0ff4144d936445e5c8c5ebeae43c37a7487342362567e167eb9f812e7ee66e54f11fbadf02717e306af16cadd9f2c9d3fccc9ac89aec2387cbd0f582f117397b997a2cc0f4d92753fa6cdfed29434c94c506d2f18118a3c8d99bbd5b19c0938fe567", + "650185d74c25dc53881a744873bb61f5b79078aa19384a4fd0b70cf57d5615a73447a5a33d51973f97184bba627c0a5445754586f1fb43", + "2813725868f91a4417fe98d1fd0b59b0dd1481492821d72d29d89d4f5e94bac30aa3646fd2b8ea1fd9dc27bfaee3bdd602789d7c75a8f62dd0ee30b5c7d6a8e1bd9b6a9ee935b38a198566b9e13de24d0f67caf43e1a4b165eb697005d067ec871f2feb57f367b7093366cf0f69a500f1dc03f23022529f3113ab7de8aea7388cf5fd95e5a7fd65b623573f70f21737868e5b0c5dd4dc86a34e2abfd5b000d5b526cc00bb7ebae4d2907b52087387070016e60b943d0216223fc9ad7a5f0a028199a73dc8e46a0248ff020bb55cea3ed5421524707246336c3143574a69bcd66ef0175016003fc03e822fc351df398ea2a777b3c83419de72433d05a4c6139d85daf692006c35e4c1347f7fb48b1d210955369620badf51924dda6066e913f885adfeba878904a81d0f8273db6f5d8f0a5032b6f7dbb930c4a", + "0dae338434f44efc473f59f3b99d5cab5e5b4e3521f4b1f8a8e1a868869232260f28b0ca27033bb9452517a3efb6e431edf520015d2009" + }, + { /* i=8206 cDividendBits=2818 cDivisorBits=2614 */ + "012473c7eb829f46d1f863e7a9ad4fb25e0dab34878d9e7f8e4ee70ba5faa1e308518e0f3bac0afa98b3d529d4120c5f85f15c69762d2165ade135759534c7c7cca7a349784922834a15fefc8998f92d4fc5f9f39af64105d88407f64d33de0833691c25cf5ef6a376ce09085f428b0631b208fa4e9f846b5f079589573af5d509387a317a159aa881713fd0a36ea433ff8d4505eb8687ddec80d27e684960c0463b1912295b5830eaad703496d371e58cb2960e9d6f5c497bed2adf2e8a37080874b807bb3f60298392e4a867d4d5966d38f011de4c07dfb7da41bf27e662f97ebc4b4ee2ddb37dff6db4a601eac3c21f30ab2e0020cd5febe2ecc9e0c1ba5d8f78be6994c65a23760efff9a1d9e034c0ccb594a1fed6f96707045480843e556c53d21faeb19b51d87f9c7714043113989252d01b7a7b91711c2717b4d69daf4bf5e6cdf2e83a437089d8bcd83c105b4dd20570cc356b2b6fd59be334f8ec2311", + "333269664f122fb84634509bbf7424c652876a09394daab45986094f678a02cfabacb6565f545bef8716a81e7a9fdd299936dd5f4e2f907adf3a2d1245380bd44e6353a7b9bf19c047b22d593e99c035419802cae384505468bcd6312acf8973ae37f7d5ef273af9bbac48bd6932b8677867691a055cbe58185fe227991cd76b42ee5173dd53b78036e8068884596e0a4955bef38f7f57a916662c62b70f60bddf6cd9324cf6c718c58d034af8707aa9f283f2639aea02e0f0e6995528b69e8fc4a9e8bafff102fe55e7b1ae6be1c182ba4c7fa760b298d0d5d5d36672aa604aaccedd68131404881d2c78daa0c8e883ed19feddd0d968a2c0655cfe61a45e5ab14da7c6c64c54415302616994938427429abd9eafbc3171a5ec0c5e0f05098acb82f30ad37636f97e3129039af39184fb1cb2105771037a6889843da155f5de7623e7e5bcd174", + "05b6596b52976c5895ab41c30b2cc2f31f8bc472b5f8bb27c09f", + "2d8985c1bfb968e36b1d473ba59e3f43680bd1cdc56a89c0a83fea2c0a56688e3cf6bf721f9fe2f86a36b70f51c7ebb4efea887de007a1c5dadc3cb4eaa5de73e05b1ad266735cffb4a73281933efdc75c886a0203334b9672b9505bc3aa0c4a2c1cf7b91849e1c7db173dd65f54eff302def2f4e7104fe020d7c87846f9e825580b7a43a1fc9b726bb3cda3c7366a309704fe0f82140ff73ff57520d72fe3863ae0902337c151342f3532840f38a0c213719d1d77cc478d4371e9ebc3a34aa1782b5922667672b5a922649931a7e0970c53b98de449879d539e36cd731b6623baf0dd7ca42964120eeeb905a77911fc0d849c83b499b0d03fd4f42afa0ed61095ba4c4b6e12cde150066be102af69f1cc9585cd02914bec073381fcc2d0d0ae7fa3c0ff726c95172d89544bafae4ad42fff9603c5399c096242df54cbce250d7ed0bc06e30c05" + }, + { /* i=8207 cDividendBits=3122 cDivisorBits=830 */ + "029ce7f238ec50a7477fc6f9fa57dedada34a7daa8ec07e37f97187132b849e71ff8ac4422302f3aa4c2032fcd7a9f74f1f5942f56b43f9fd7b8455defaac14b1c2644b66fb7491be66bddd25924c5bf78cd0f31f09b10b0a15738dbaa6f191f0ba0a3770de53e68ca3b36a81383af10219a42d671d6ebfddf18b6c4d5fd15142e5ead790fe2c50a4bf79e0c8f5b4763ecda01c9186d2e083b60cc5f55ed995e636d87486aa32ac294a6ee93620dfb8fbd2d89c2eced2d3ca67bb320886b015db95c2929291fb69a84f961791dfed0a4ddeb1edbe0f45511e259c540dd2512da6407b1825d501bf59c73c13296d3b62e9b756eaa1bfb854c5c28756d64ab53127c47d3cd4c587015d5854f3f54ca7c4abd131dfac1b122cea0e5f0f9f4c7e7bdbe6d25251f77f783afa60efcc5593670b9d7b178ab9ef4504a8356511dab93ae7d010bdcfbd825833a29b0fec2fcada7b5956c300453f57b3de2348e22395728b47187e4e37b9d900604ed166bd1ba9c2fabd5e914c4d4b9fbbef772762806d8b06ebf40044abb", + "3cef5a48a58ef2e058bacd4614a75d8c0db57f76dc923d97842ba7105a5896990326c0f26b8443bfa167d36de5cb2081c0ec26c9f29ce5125e66546a200b372a76fc0886b506faab3b31b38cb9dd7c9ae320f8b3f14ddbe14a1aefff8c5c131702b83e21bd86bc70", + "0afa3541ce0ea44b7eea94a3f5f4b4b288edb8ab2fc941c8b1d320baa36d498fff35acb65446a6331396f18334fdea35be4117718c1c51c34be8e8c9c578d3cfbc6309aa758240577f20d3585986b470ba8e269183706e1e3bed6360d1bb208153dd6ede8e92195d847e387d8c639d09771e92a2d063b1b8c122f3701d7f6290ba04da8c9820f18ec4bd983cef28f3b1dd62c21d6366d4c8b43487cee8759178bb9106980e691e6b94132c91ab185d354228d2193f86df9db5c9b1087e408c97e154a7ef7f47f2bd610c2fa1e395ea8d86330e7012f1be7a136e61e4207d345c5d54d8c75a480c8017c701df752360edbfd2acd2333deba5707abcdac33c154bc660bee3a62d25955b456745f469f0eb2af60e4215d6fe70e26f7e3b4f6406", + "09d79e44de7ecbeb2a80a7ebed4b6856423ea9fbec6f51e235e5d4b8f01cf144af3be755abd9de7f91a49b5fa5a4e2b01ac21c7d08d4a085906e761d8ad373c3463d0d089f53fa9eae5eef445e320a41c9bc40ba68e2516a821a515426665af3ce1cf2ca36b0201b" + }, + { /* i=8208 cDividendBits=1542 cDivisorBits=246 */ + "368a6c820bb4c9e01d559a73fbced68607c749a503ecdeddd0ee9db58d63eb52f346bd8c7b375e6f02bae3a38de70f6189e0d375d0ea5f9de4920a4dce60a6e9c8848da172e1c385fd874be43703f6dc6113c8b5a10b0014f28a77db6e05f0b31e2554c02fcaf09cdc6ba82d7a70082599344a4a6b9f99d5c9d7ce7210790640b290b5cc33d75f791d2d5af05b7732ac20e72a72ad5475acd8048da7cb8ba89cd60e8991a87d1739711af307691fe103aded8ea337af79e095db656e0aba20ba00", + "3e37d4bfa37c5cdb5712a4fbac42b3c8b2d82cd2a755e56fb49f079d5dc033", + "e069375af5b72ba0aa760abfcff4bc99f2a76648531ab31cacba982445edc5f7583260012d5e773d46dd6e2008b378eb2b4ba2790ec3a30a39e7e67fc222820052369663ba388306d9430e844eaa3964a9187d85113a9d9a12927df0d73193976a9082efff23b06847289cf54abe86284e67d0dfa2c588040b11300b6c8dc4665b6bbe67269eee26847cd12131c44cac0b0a299128ba510a0a86c4371ace326d48d4", + "3479f9264e23697c59da2770e6edf8d759f6a1e20c7319dc326ffb3eb837c4" + }, + { /* i=8209 cDividendBits=2037 cDivisorBits=4 */ + "0a70e5da09662d80cc3428610caa35be51c1a5fe7d225d0bcbe71a87865d1f9439ed19cc6739e128d29c70ff1cc88a069ea39665567269e90fb2c43c607fe78945774a0daa2bbe22b2bcefb53d0f6c7bbb0341185c18ca164c1610a6bbb1f0ba88b68cf364fd8a28e7340ddfd5b8b687f8843e073897db8e0e1dd5113c783b71edc40c2f13e9704bde92523fc42911c34490f976d3a2f3ed503a2f83de2501594ed12c8ac7afe353dbb32b869552dd9c25d1e9615cc4cca6985af129a74376a55c2d073644b84f8e03a7095d1c62ad0d459e823f31489c80185512cf71049d1277769b728be756303c5a238198e9fe346fa7266b632aa64e712244124778ee", + "02", + "053872ed04b316c0661a143086551adf28e0d2ff3e912e85e5f38d43c32e8fca1cf68ce6339cf094694e387f8e6445034f51cb32ab3934f487d9621e303ff3c4a2bba506d515df11595e77da9e87b63ddd81a08c2e0c650b260b08535dd8f85d445b4679b27ec514739a06efeadc5b43fc421f039c4bedc7070eea889e3c1db8f6e2061789f4b825ef49291fe21488e1a2487cbb69d179f6a81d17c1ef1280aca768964563d7f1a9edd995c34aa96ece12e8f4b0ae6266534c2d7894d3a1bb52ae16839b225c27c701d384ae8e315686a2cf411f98a44e400c2a8967b8824e893bbb4db945f3ab181e2d11c0cc74ff1a37d39335b19553273891220923bc77", + "00" + }, + { /* i=8210 cDividendBits=3023 cDivisorBits=134 */ + "24b102c008d7eefd52a9c0b12e51c1b4458777504926d663bf26b6ee70efc5d4dd211c7c214fb56b40cb92f14f61ebac4ceb241e96060984bac88785b1a30488e884745e653378ac0e2fe39d83d4e490fff691a747c6d9828a2ba90205527b8081c9368b2e1a44f010a72bc9d26027eca0e2ea55f5e0ba1b17b6649b183ed269d938ec784e88e98b58ff1c4e5102441de35b9a7241747e56d9813d13f3e8efae9bae502e10a0463582d82632b90eb10c211c02a50f4134c4a2c1beee0a51bc630c07df11eaf480b7447ff126abdaa21c37eaf14233fd04df72f7c90b034b13a6dee0da0198c3f4bded1437402163091795f6cb3c11c25540687e4bf7a3a6b378e3700ebe0fe02e73a41a61aeb80de16f4c0bef1ae80931107f668b25424853b49e96662ea2d21a74669fe7b2b1b413ae822af41930b7d372cb64ac2345f7816556fd3f4119aeea6f43c2c3768ef559a19c68d2e0c40f506a89df6646dc9136b3de67d7af5cb1dbf1841fecec99c90b8c7a0faf68cadb251cf4f3", + "12adb7d313291927daa4a115726d7d23f2", + "01f6e03aa37212878ab5329670a16eebb670b196f39d40b00df71a598798f64b421ea043c6ddfaa2733ac29bfa0923db3a4f5eddfc6ea376cfd9673cdce03abb39593784a84cac5a45c54ba4b13f08edffa9523abc546848f23fdb6016da327ed88a87a10e3e7adb040e494883ce6649d30cccf2e144fd6b25ebf4282cd568961eb9b0b34b15edf8a0b17defbcd06df7d7f6c3a48c738c09a717c06e23563b48418477d5d90db8cd7c94bb1526001be0480ed78a81928fa8fe299fa9b403ab3eb3a74b8ea1264a67ca52a0e690a2b21b18987bbf760d1b31bfd4969688ce5ddd7ad85a13efdaa9f462242a327ea074c5c92355e8d0e76daeed3075d59dfc0008bdc7975bca050afd1df6cc1030ed41bc0477eefb0b64cc008faf08249b302f766b69b2e3b03885e90d18a3364a4e6a1d3d2964ed0a58634d3c5039f93cc7740d29ee807f64a761fd3e911de3308f4a4f60caee913486ff4ebfba711f5131aa6186347c85b3932d6d69f8", + "099a99bbc0b5e4fb869ee09d88e819e083" + }, + { /* i=8211 cDividendBits=2996 cDivisorBits=1672 */ + "06cfb31fb5c76be74adb964eb48a90bc6860a352b094ddc68e70750e59795309b2618c095cac86730f3859c4bade554159921630157e635af9286c643d83fa49f3dee2d1155d6a63c77fffa1e2797c3a72764114296dcf0e1ef8f85436a897529359dad30dd630754808f7f5b2f767b427eb97cba5fea8de60d7da6f1888cad95bf0050078a7fbf0f5e46a633ca526fefdcd3921e2d56baad88ba57c6ca903abb43e8fa2f9b47a934606d5ef52ad00e5f88736ffa5e8150eaa51721dd6a1b9dc1fde9b1d355803ed0fc9c8f710283b6435eb433d6792e83ec34ec2a223829f80bbb733d2d668a196653a023cca6059adaee711a8cd6f65013ff335f14aa3a4f9d1d11c76d744a2c17ef8f5cd3b6769540b21fe5adcbfc28bdeab4a4d7863dded02f3c87e0d590a0e1aa5ef20bdc4dad671dd78af9084ac208839fefdd9f54119964df323c236a530fec9499b0cf0dd43ad451f4bf6992715e321f5d69d1456b8e0328d7b9106fecc7b69dbad9f8c1d13912ad686bcb6a2", + "1b44bf2fdf3ace921a761b3dec6bf09e2a0096563ed1db19c0fc0b4e38d3db21b3a81833ca244b9efdb7f1c8db855a1053ccb8846ba60a849c098553deefc71a35c2812f0a8969ddc469fbf5d4446ec1ebaade6d87c2afcd22e6d33e61a3b7f310bb93e3a94f7eb511d34599522fcfeda0d90ef038a45ea5689295eb01e02ac85b507d60d5cc3f60cce3556be56dc8c9988fa4f48b84ef28cd781e3ecb0d5e9d996efd40ecd6ebb981a25f8eeb3e8d8d6582362541bffb878a366486b867e1c34854fb9add74ffe44f5cca8677764741d4", + "3ff20a33bfc220a9eddf19bba7cc88f8fe637fa12d7bf224882b8387f251f65642706851edfb1f2c032abf64ffd952185a91d3109c8c02c148ebf968327ccdfe1c705f50d08c0c998715a0ddee85f734ea4db861ae4dadc4327b720a3822c08e086822727fd076cd8f9287b1d0da91fca88bdcb1c25f0e20cb43d04af02aeaa857ad55b4233634a926d12e192c46e5cf51458ba6fa08c135aaf52b4719705f15ffe5e390c9a3", + "7a6550999cde1198d077fdc5ab26cc8764e75e891c83aba4733a3a9982fe06fb670e0d6c6e8134f2945d1f199920e5cb3160ffb84f070865ddb5ea65df121f8628d7a2f69aa56d0adac7c5abe078226dff1de6fbcd2c435016b42e04ec67b6d5b82698177866b1dd3379bd3c902555d4613a913ce79e869a6914ea797ef9bf4320414e94322bda6d28a807afdcde98c03ff781f945e3f030b6ebb438a4c5641b6334718576b3aa823e97c0c99de398f1e4f8912a5291a733445af41f77b09a9738921d24cc5028de8f41fad0416e58a6" + }, + { /* i=8212 cDividendBits=2927 cDivisorBits=1852 */ + "31d5723e1e42ffdfaab11040f255619362acb50f37136b73a7f2a2aafdbf2bad00a912aa8557b3a904bf17f7f036f097917a26f4b21a82fb9a3de3b7a1d25d1582f27f524a7626dd8c59fe71fc90dab9d74c71a0ed3c321980a9477d861545cc84ace86c70314803c4ae32cbc59fbb6bb0fb41cf8a915c90cc4d312e417f569e7d9bfea05dd31b2c0e208448fcad76b752baa551703da7b8e0a29d7e48afddc6691e81021d1055f34b539d29f8c68aa2a81eef8deefdc67071be958108ece0a1395ce6b9145344b63b04ba7aae23cfa81d68fa2f93d25337d77556e33ea998e97ce5cb2fbc499c44290b7493c23b6256029d39af4a94ffd9a7d836ddc562c8f1ac34b32656e1a599240a8f0cccb15d15a99da6d743e68fa04706646ee68fdcb571965430a32e086f43e034d7503e279d95d9fb1c825dea119a4144b36649c7dcae5b7370cf241eb91794a6a4b3839f6ddae7450a5c82b91b0b302d198359350076fd04e2ea5c7e0a1e7c2dea4e7f", + "0a7d0aeca749ddbf24bb1e0c5656355152aefaedb90db61a677d5f98313c04e42499af04d440aa66973c059d5136acd598e5eea16d3afac164f89cddb8adb4e6d68ab4331d06a74e0a093f07f1552b1de2aa9004a173e24621ab2ce166419a1ce5e8b493a9d39b85c1308ab565f847da8b5ee17d0e3b8f1c8cf21d5e2ea3c7f08d31696c593b89d415ec11d6fa1dbae53a190910270bc4f4f8141cfacfcff380e1eed863fb3f98f8f5ccf755193e97ae5eb44e7653e889ca43250500f754ba66a094322daeb07e759456f0755117bd0da1beda1e288e89d1b36c32c93744da259a498811986d594c", + "04c05545291ab386b1b78c2085e0dd7793beafd178f82011370cc9ad3b28540c8c74cf551bba38b22fab9379c1bc21f895c3e6a499c83b906103321473480154c3c05b34b4eefb4dbf537c594e967ee625265f85da77cae1b805bc18624ceb9ee8db975868884147445d8e194defa7f36e9e57b942d24c0ed96e4d5d047e38e21ae61c95d2dc01", + "03a46b399a43c23b9fe3f7f31d61076ed317aab3135f09d33ef5a526c4b591e9435649bc8468a99798e2d41d84b402c5e26bce3ea96bf984e00bfffffdb1828c2e48b9f8de1b9ff6313a62bd6be51646245d8bd78e61771c40ed4c4a8e13319d51727b46a3d0cb5dfe1f31886379adeff448d6521d8c4142e33695cd91491ed981b1a1c77b78c100c90b08646f619c856ea2eafb22f8641848e643b9b4014529029fac63397187ee5f6b3818ccbd1ef8c253072940ec98099620ebe823c72b525aa2590286fba73cb3b6f234a2ac4bc8afc0d3628ac0ff1d59c5a90e56ccbdacc2c2bc702067a533" + }, + { /* i=8213 cDividendBits=1683 cDivisorBits=984 */ + "04592b7c774a569e38ca018484212c6c2e397a7aed9842546d851c9c434e8d8318a66165d38822c80e9d08c63938dc929cf8c9b607696fdab87c818045d5e8f67f75e7dfb04811339784933a024c196ca4d4d605eb87428d77ebd642712285339b093b1ccf3a6be8ef51f9a39316a4eb541df1f0ce59135e31bbc2aa8ca9e90cdaec65f70dc98d56428ab03563a48d4c2db9cbf2cc528095a82921a31d41805e789391c1b2fd492482494b88851748493e7ecec6450e497ffc861c58546992e5f5d3593d1d246d969d9cd769f211e2deeb782d", + "8a38007407e9c0c4f4c97bbc0b8023d0618b8793244714c4fdd9b6417c4ebfe88202658e7ecdd62176f091d1020336b4c87d904df675141ac4c56da941f7d4ab90d18015ecde7f3aceea59a69fbb5eb54a103f9991cf30e16e5f98b062ace8c39c109a8dfea99b7d1b4cc6970454ca831c2c17cf27ad2911fd269e", + "080dbe14d7a95f43ddc4494b6d81cdfaa6e065bf187640a06a29e8ff412de263ae13b52ede80aa82db3a6bb449d6e6389915492577e90aba9c6a5569cb4a51be9b980953107082f5e762ef08e80fd4dc12af3946b9f9a768", + "27b2d27529ea99ae53d01e40f63b2abd229e3acdfb17ccf2bd5cd62bfb4cc25320ce581762e936d2ef3ecf0418425137b0643a80ae767876e98a6e622980610574d6d71badc641b5fddf5f292eb5275ef85acece87f956dff4a5b5f34fe004baf13dcdc9b313460d0e386fcd4df078910362857a17c120ae34b5fd" + }, + { /* i=8214 cDividendBits=1911 cDivisorBits=1420 */ + "08309a819edbda39b9dfc8d5a1f3575fa9c7e7f4f8ebf5b72199180563f45ef2eedc96710578e0a4c77b2016547895216e1ae346501a6285e5e6f140cbac0c9073b994577198ce455eba5f25dcaa08777c314471a3569076cff8401560eaca2ec01710c02a0b557781d3f0124f2e11d2a98de037526cba3f2a0719e73b55c3cb7c969e33ac89f6041dfa13f197a1b1b469444e13e364f79ec84d3d5c72d36a1b4355522f08a0bc437d2c551699fed2baef68195c917ed47b6eed843e281b5a9e13b5dd3bfa4eaaf8b9cefef8284c154caaf96dbb7d7878e4e9c8cdb78996b32c29f6b83f68478817257ba440f8de4b", + "09ddc8e342567fb7843debcec5cf28ea573afeb6ef5348b501d29c74dd73813eda7175277387b4ef4732365ec487d63909a4ecdc867c38270988b0de3bb914ab786cd8bab85d0c08e71816f17ce57321b201bc4dae72dca01a5421401e294e82acd7dae606a9cff8d05825b790a9ea0b733cd425298e3afc7025a8c7ca71bffe505a654e25defd060a9c2e7fb63343f5947ee09c7eb9e7e1c5428685fdb0d04f4e5ede142ab2152ac55f7a76bb7012b28399", + "d480208857283ab4d42524c3010feaa93968195f47207f23b0ff0b364b0966554de7b4c166189abc0c851b1cc026d99b5f62e04b5c85c4fd44a5a9fcdb", + "065ded902f9587b719c69691155da9b9ee614d31ca4206e395cac93a9a35069b99d30dcc1bc422a1a5491e0790281f285293545b3703f9499220292eba10cd9503c78047289d6179137d48bd23c8bed3d0c0e76249baf574d30c61b0f7637003899ade623087aa9075e50d49b84266e926128e17b6fa8cb4696175483a8c5677bc6af8bbb0c8ad711bade25589abbac77df067d8f282c0115dbab1bf05a14788163ec61d004edcaf59d5d86a400e0bb6ae68" + }, + { /* i=8215 cDividendBits=2901 cDivisorBits=315 */ + "15c6407d6aae3c573c7e686d92cae4c22d633f120513989fab5e9f713d0c0359c707861b687584c133c1952fb7f01f1732f5e37f197c6b1ed1985020277021629e13266aa742b5a7a464fe218c8c5bb96c5aa68d1ae2bb79afea74c21d1f9167a6e8dc6c311e5cf5b37e32c0de931079c8f6d2cc82e9bb4e63568094591ee3a75aee990b638dc600c42cc27836600735a092d008f70b2dee9d2aa1801e0c42e6ec187f758d84c66399d235e16b961d18118fec7e179c5a5d64d41ccf5edfd928e8a110b532e5a9ca25ef6e2794632973b93c5f0c4e1713a58c35de86e32a4989a042b0b24c0764a2c4a0b9d4a9864d18ea82c55ed3b61757b93db4d1f8a1d61418cd96e0f00c06e76f0961f1606f1f4617a730ac2505ce0b0f311057414019ac628ad66328f0bd11e5c0bab4c982e9c865d2e04dab7a95569ca44b68f37726c4309fd59c2b34cd39fa60a4b2e8a63992d38e6c97ca4a7b38693395f0534a2ded8b0bfa5d9da1eca909428e", + "02550b10630444732ebfcca0608f0a9a8a7e26970e111fd93e9e06e660782584ebdbe9d3b856e3c5", + "0956203e318a777e396082e6e65acfa58dc0afe147efb60f7005be85982882097b932cf59d21b3f4c4b6cd4897d8edf97560cf96a48bc0cfdb896b693c222f651767db6de69033b92ecd850958fe769a95c495992a3cbcf21516fc0c885b8f83c82eb91bfd0e7614c9df73745732e39937f33bfe36f986ded180f8af549b978447be355bff882c9aa28b8dd745361c00c07f513d9d99252e4de079e8b4a60a4121e5015bd696d98f1341404fa1c8b4179a794114f7895360d6af2feb0c28016d5018126eeb04269c103d730d450eeeabdf080f5a60f95937f71463fcb7e2807aeae30271e762857003d77b30d558349fdd33d5fe051d64823a9627a453e55df7ce55f3bf52a5b6dafd06d42db64889be35c334024f6b8306327a3e244ad6388290c0c874e1b438b7e529b4dedf23eb63f5992c71fc83db7584ebd176dbc9432d378a496e", + "68dedae21a5643dbe7f7cda9dfc08f0feaeae41931de2f0f6ed7bc23443b7c452626fb918e36e8" + }, + { /* i=8216 cDividendBits=2482 cDivisorBits=2257 */ + "02a84041087b79bd7730a43819863b82cce5370b86979f0246efebb686a10f1411273552ecdc196f1a968d9cc674c5999f88b635b772aca17eb4ce2905b31ba627a3477ec8c9fabb221d7e9ccc28061e3e41eded3d879748380c1cc7d507e5982aee2da463bcbcd0a858167d360a4970db1ecdc7f34f79c7e124bc6948a483abb90152ae50d77ce04e5231d6e945a901dc96abaa2577f5a518c50878d5c5cb49f97d360b995e1b84187dcde847f733083ff69f3c7871cf7192acb565f57325eb2d0b3f99cc3122608d6f1e3592fb1ff2c2139e84318a983b4113be9471477fd8475a8082c26c47bc89eaea4ee71a56350c2d49d8a8d09f1436c4795a2b54aafd26ceb4b8d940e6daba3d92eea63a3a27ff71fad9feb528b8a43291d31429ef41daf8d5ba2eac00f5af44dfeaca04144c6eda5295725ee1", + "01b7065a783eb7950e8112284af038d492b7fa0fd2c60ed3fe6d9feefa4f2b13947cf9a0ac9b4a31d51f20cde88f0ece7efd46402a79fdbc6b1a5d1651ab373b498fe9fc769e5f9b6f08f0dfe0662293576ff2b4ab65c1a6d4e732afce41b54a05b53bbc5e9da7dc1f6de6959f8a3bef3de0a4f82a75d3691b447db68a419b64dd2cd1cb04f4f74ea45097410e3bf211a82370140bb82ed39d549f94802323a59c0202206259603215a858d1a854e572dec67709a15b47c1b47b2b1b6999ca7b3e08450d7995d18e8482eabb40f95a0f4b2f9d1a0035f8b692ba4279aad099eb900024d434fa82987f80ce13473b09ccef11fc9cb767f7f26905cc6b7eb95e4c089a056c3609386c6649648e8228298bf4b0e54da7af9053740602", + "018ca959bca9a9a3a9df711febafc6d5fa1a0cb9fbf94e5098afa13c77", + "280d94b192ed04bd7be03444e7eb4c5bff3dc4b799c6cf3b9c4642c713f8cf96d91a8d01006075e0fefcca45515caa49bc6f7a90bc21b5ff8fab9d81ea29279be982c3420e18a469c9b580bdb2db8dcf325f04f6121158b0193ee8e627d0c0f8de8cacc690ec355ddae648d59376cf838fffcb8e7daca549a5f205619160d021d3c15a25f39df63d9ec6bf17e335a182266c56437960fc1c0bd59f225f90f53596a670233e37bd1db9cb2178c9f6e90e64e729473e36a5d43301ea0a16100d5fa92f940444567ff902a618ffc79800857d809fc786f3706ccfc364b60918a9079cd864597e5b0f5bae7eac2bb7a0b104c33a4e6af93e906f9843df777f7475cbc297a55d85d20c26f2d6cda176dbf9869ee33e256d6973d91bf3" + }, + { /* i=8217 cDividendBits=713 cDivisorBits=572 */ + "84b1ae3009a044e90c200b66187bb1121312387fb3558066e4a9adada70f6b3631330537fcff47bacd7847984a23211fce022f0ef48f54e43833d4134fe392c95a064f93cb61b1baea4ec1b24d3e81a55318cef69f4a123fa0", + "06ad0dde002a982bbd46270e25af79b5d6dc47b1d4dbe689d43edbed8a99156a958c8ed6584242582596098dc51333463e8b8229a603c890440f42d3d78f21a75af42e9c3328cb22", + "13e055778eeca220ef85a1298596e5cfec16", + "041dd43e7d53ae601a6d7ebc214e61f7f771ea770e1ccb4e18c7ecf4132598d21184c943a45d648af3c244cacc3aa09465e2cea952343e0a270126e76dede9e7ace86a6b9ecf72b4" + }, + { /* i=8218 cDividendBits=2283 cDivisorBits=2006 */ + "0455c935c58b13cb8a5c9db352420d5eb6e67b40fd3918d51ad9656fb5551f601bdf522beee33c87ae67bbfd4e0d42683148b3d96e3d518a65fe2cc6b37da01300e10dc941e51d7ca346185a9cff1b05cacbcd697b17293f449e3855ae84787a8d12eb048cf9443f61cb31325c154cd350127454c13f29021d0ba1df7e8831c66df48a5be08dd1176b4bbfee6a1e7b72b1dae72581ca75d59cea3f93a09e093902e4d4e9bb67b9f3388042707f02143e65c1b3f1d91c5fab8164a8aa0462b64f586a03cd0d2b1498413ffb4f6494192179b7fbf76c86bd552c99a74abd85c358d537e05b142b01d9632d0a92fbde978f689a7f4abdb3d5d4583d9579d0a784c3af74ac4f7ec2bf46c5fc868eddb0d4c34bd4b7f455d8893db03879ab6ef8", + "05fd742d6c3381ad47b90249fc8d44f9bfed301955f1bbab3a2357ed908ee45816a9c65b19a32a6e234cb5848913539a2c617a889c0b9f5f2523e6e0ad67c0d12eb272923997c72e4e307303fd4eedc940e56f467167a53dfcff6e60969619cec1785a13de07eb2ae074d89a3dc8e1f4f636d37a6d7178086b6e6f3b0e6aad9f2a97de74aa6d2d84ae389beb9578fe25e3b8264df8a0d6a92d7ab85293fd4107769bb963abab64b84749e36e6eef8241a89a413d183375f330f06d8897eb103f53febde65728fc463676f9167801f7ff1c77b60efe045aa00c8c3419ddcb148827042ada55733a0bcdf6671af277fc6aef5d993c6a85f6ff475d04", + "b9457da5abe3f598039af93e5f09430757594bafd40fb98d8478f0beeb02e0afc9a783", + "1a27e8c58b22b601cb744b812af04635e49b05d2bd7a9d77473a25ed2eb027c2d5ae07ceb0ad7f95230c120acfe85a763009f7bc8e8f7deaea0eb70d6fbc010d39feebfc897feb22f6e135120ad33a7e3c8cb569b0e07d09e95e738920ba424e28c7b2a6ea97544ccb916940b328352caef10e91f7b63a5c61b818cf51e2d21be5a4c22be31cbd776d3ac7a2a919158c8606d06fb0b5ddb87dfd5a7fcd12fbd654afc9c538830fd8d3d36c4f4a234e0a3c6546485ee64846a656a46856aa9c6227172919da8294e63482e7f6dd804480b26b82819723340b51754c6754c70b265b26468b379b19d2520ee87d4513adc5b164d20f5f2e865539ec" + }, + { /* i=8219 cDividendBits=3534 cDivisorBits=2032 */ + "2340b61ee1c3ab6e66e7cea25ed41d604ee80eb9a819c7189242f428af5ecc5769b12cd9eaee15ca465be076439ecfcb2f60d2e83664efd25ead96a854645e15a5a5772e3f0be8d926de752970877bae560824bb52a9aaa3fe3ed6ecacb8bbce6f9f76fe5999aa5103c23bdf6b219b66af6c801064773829f6165a07b5b303e197001d80cf82cbda2b9d03299c45b2f49d6ad94d76c291beddd89a5f7d4782ab6db69091010988d0f8fc94d766ac4d7517c1cf87183f72721523bb7fd101d005c58cafa410a89e01ba175c6cfa100f2caa4c1025218cd6be21694f12c985e67757598e23e83eb20c7f5bda59dee4c928e5a43701cff52c4ada4005049ac1caa117251874fa6c4625296751591f8e5c32c0e505b133e9d6ab5cfa036250b42df760dec54f1f48957bd3e2a471bae349ccb591ecef115cc02c4caca8bb89ac27395c53dc74ce8a912e03a4b52dd2aa3404e5eaef49abea6b1ccddfddffc38f01a8971ca0f0780e5520bc2e059aeaa0a153f8517acacc364613237ee25743fb8162a094eff9d8d0848c39f33c5c16ffb5b2a8d3ad45234ec4456ff017906c4ca3e5bcc95dd5c1b3e946750920ab8399358d2a3606024abeb485d9cd", + "17fd8b9c37724e7c968eadd259613e646e65a932ab92f0a1b313816caa3f901c5ae605129cddf9e77a0d488b1d7008f59603788fc9d2aa8d94d795bb3c0448ea8bd1880a425f74c27b82cbe81a5aaf4b03b5bddebbebba55656571a769aa28f254be9aef56c6e48348f3245e89f42991abf4df8ce2c0bbba753044fe843517c64cae9295db2b55303ec282c0744727069ca417f52a0643193658c1623ae9b8a60ec5ac596056714636b1469e3ae8e82eb25824883f5dff82eeb4a245f84d0ff1f89e6477b9b153b821b8a6d2bd538f5ab8edaef0366fdac8792221b530804db46e0caf3fd0615ebcb075e0d1411c080fb848cb6dfd323d8877ec64230d2d", + "01782e101abdbcc03ae0c75add0b7e6428c576ccbf06790c72110b7c6bc8aaa074e4fb608c81bc7c0cfe85551f6e730a98cc592bc292920065763d55584e6aa1ae71bfcbedf8a179c474946c1f6d27e478d43edd3853fb6ce1e8b6348c17329e911e28f4d9dc22e573e1605d2224d4ef1929ee1e232f1a1c2b85b70c0f3eda629717ba87443a3a8f0a7e0045f7b7a4ff7fb36839e56db80f3a8ae9bb6a53cb32324365f8effecbe2dc05f5d596f6dfc4e83a6ac0d7c110eb8ad4b8a9a2", + "17e7954cd28570d566203d039405318edb918661d34e71517158f7e3e180d18c5b6dba456a4af7d4830537f2db1192743f514e1fc805562e18c7ddeefb27b8ba105a892df531fe853d6cc584dad2cd55cf450ca85ea098a54d617c2b7c746af1518a4b13413be8c4cb74f3d8c8f90ad60b4a44e745de46550d9c7d37cc471ebcccd26f8ca1a482af607eb6c03928f3f74bc27b112f75e6777cc8de3c4d5f644fb0e51228a94a956a321c172cb7c58b550a64bc6f05cc716b3f74a48300338478ed0b99bfd1c19851c222c99b6a16fc00949f5bcb01d58aa45bddf5d55790dacf7beab81f5118133282458f46acd808db651514dc632121d8efaf764cce53" + }, + { /* i=8220 cDividendBits=2247 cDivisorBits=1037 */ + "62b159c78dab01d58d5e902fcb29214907aa9cc905756b256905f515a28c3e2f25e2229b516b79b1a2ad21401e4850455ca71b41ee8c173f57926331071fefd8f83d7962b4b49cd195924a2198732c8636010fe5b9d2878e892740de128e10973637f247f7a4c8991e4f42241768a2b2081daf68ee4add412238aa4633312062fdbca104c8b9cb5ba2d0a29e9f0f35590e5ab065cfdc2b5c6d3cbbaaccae2bb403be2623b200013028822739a5445bebd342af6750cf0b256355baaabbbd503e28159cfcaf5aaaec707170ee0db695440c46e008fd9da689434b32e7a4e20f42411b4dd9a585c6f2dbbe6d166c0ba06dfec40907c03db26dc7e021b179cc5bedb51ac0d192326a09c68e734434218283f0c2f7dca59a1b5d80", + "0e0cfd2a633c3e31386b3f0e843cf43d76e74cd375a59b436168d53bf68b6977ea3d19aba2dfbb20a7e4a06f99902df9b5ef0e4657bf1c5cc910dbe17e1bf969bd687a889d67e67abc268214a6369ac6f07a1991b5a51f3759ead6b9ca2f7cc23d8a5abf8e71677003a2519837efa98451fe63fbd60bbe1903b4bb4fc14557f7a2d9", + "070626b1cda34644fc3241ee1afa260cbea5cde3749edaa4e82fef8ef1e3378feb686744822c05bf94d01091268d688a84a9fd6c40b10befbbbad8fde9ccdadce20990461b02a10294dae09c6f59e0a8868c6fb41f227046e8e15f6387c0f7402905e1cae692033d421619385c347451dc2fd2fd28d6fbc8fd77e95c1b55875a6ee441300601c52800b4f2dc116901cca5960a07c94ade32", + "03298534c32a876c897b404caf0a05a5d65535b70994fa9161fbac98ad0c13396aa4d725036b0d9a34d42142b181d4a332d90d208ef56633afee2c2c62ba50adb702b1eb661e177ecf8b4418413ab34d83a9b9400e0fd79ceab5e3a0153ae6284fe5f223e5faf41f8a677f37c4aef46841aa119d7ae3e41089175765307138cb611e" + }, + { /* i=8221 cDividendBits=1416 cDivisorBits=985 */ + "5eda127abc87539fc2c00a7c904a9776e78b29eac50eeeb2f499a26e2b11583282f6a2346147ebed6c00cf8903db6421113affc3519837ecc63a6d9a66e76eddd8f3e27afadba0a7233fa35f5011fbc4ea1ce6a0f4868866b4094a7eb7dff174a198294cbd31ae5dbcd97a0dd8de4fc6c6242f3a30da317825050842aac3bac0dd2de2ed0455c1264b0032ae17408ac60d115d3d73bd1b4e43b669fac7956373ebd9f7f29d30af9ed8d7838e2e01f468cc", + "2ec90904b7be0ff5509a4856031cd02c86516109d932990ebd7b4a36c8b53c5b5c162ca0bc72cffd76b6c35e9ff224ce22140dedd68c0c88235e8508a3fd25220beb56d95d1d43e4377fcfc9e7aaa65429ad4d225a4fb906fbb120efbb17945076639cbd31d5a4300e04b91177ee08cea52e837ac1c901eddbf096", + "020702c2ef6a7fad4f074f60f39a9d0eb9cbf9ebb5adf6b5503d90463d22bf6a72a8344244c4f310362787b4a7d56b4185abecb8e3f082", + "2007326836a2ecd541adc245785972280dc9d4283c8844f16f84fdec470073e04f7d002424c30a53af20b96b71e610fb61969e8b9dbb12d7846d7198bf381c447824af2916b5715bc633c238c8a11632f5aad420a3a06d59ba6ee39a2f6aca0403b333f52c941797daa572abbb04234b1e3afaf099b0fae1b59ca0" + }, + { /* i=8222 cDividendBits=1431 cDivisorBits=1419 */ + "7d489669218c74f2b8615aff4d46b3730293cfaeaf1f56c3199e10c9af5b6ff0ed1e606725e5ec54d806f15ac38c9e7cd8bfd8260e31db5adad3bdcc61da9a56aeca7529e00bf1fdacae008675990c0de241042cdf5c73c5ef4edd8af651c80ab7f4ab0f8a84df81cb3d30bc3bbf6daa619aa16875b309b55f0358fecc79bcf7b8d4888c5b29763b63c0f83f3a750cf304b2850b7d3ff556681d71caac56aedf94a7aaca9e173f2a806940c6f7e0fff26401d4", + "07aa6c38f0f2366897b2faeafed936385281ee1989a37e12e9fb4f5293b9aeff6e4933ff844af42c5c02f26b993f46ef1dacf622feee450675acc3cd70477b5b48d492e8953ee263b60905ee868705a8e077820da55485d3a95b4692b9c61cba03a4c88a679685f16b830f6f0b893729a20da998d3f4067586b0b1aadc9920486f3456050a76c829dba77ec20342c466de5efd07787e81df116a54c19d4991f0f7a3ecfb687d59c8aba00aaf813851cb53ff", + "1057", + "06e812b886bdebb1a3d90983177e80b66ac62b6720e5bc0c64b3ab638c65813a103fc30b4130940492ca3e9e83ae6fbadaae503aaa917e4e09ca6a8c3a99b61bc108b381656cd269409099fd70ce937680461fe6e45d106b0c6f637ccda8a7466b224207e858e60782af8cc64059511aad6338466ab42b033231eff1efae7827c45efffd2e95976fa3200b172d15c629306c966b64d942828d02e30b498f373640258aa5bf091c9415322d3f71bf710a862b" + }, + { /* i=8223 cDividendBits=1178 cDivisorBits=83 */ + "021d53347ea089ea7f529223a9a411f0cd2326a2cba2191915a631b5edc0a8ae209a471e7740803b2378bf31ff8790d8e713ff4e267cc1db481337527d009490301ab054dff803e693b0958423930576fec4da85d8f2d4730b96909a625d89c55ab001347cc2b00367f4b19877ee8d0ae49877c6c810c7c34d9a6b939087430ca3c577e81010978c92e67fc51928931fcd452f37", + "04cbd035d33593e79618d1", + "70ddde4dcff8cb234decf5b99b5914b146ee1f0450018809a46869fed54db0120cd6504716bebf56b68e102afd157a5ddfa24dcc69f0693e06d097271ae58f295ce95442f2cd15f0d4e4b6157b398061836cdb9fd036a7c5929104700ec8171e1c761239d5bda85d8c3d9eb334360e3cd5700469c08703e39b565408efd94bbaf27bb077c0bed2a012", + "048c33a4d13ab03bc2d085" + }, + { /* i=8224 cDividendBits=303 cDivisorBits=158 */ + "3efd675e496deafa7ef9f478e2f9298c94801caa2eecc463900eb0a2f1d00337dd5dd4148d1c", + "11657dfad3a832a60bbf70c60ee1d21b5b365053", + "039eefaf75d040e6e2a9540965cf8528fab9d5", + "02239ebcf1dda75f0ac7d875119cdffa46c9bd0d" + }, + { /* i=8225 cDividendBits=3908 cDivisorBits=1397 */ + "0a89ca431b381d94bcda53da3ed654c216570a93676d1e371d93e62100be7e3501890fb15bb73c6698391134eb311fec43dda1e5cb9a607113e70d48f089a840f9fc351df4e1577f15735eca0bb2d1bbe23d7be266c5bd3f264666d0c1a80dfa9a9d331321b48fa8b12cd722373a39d105b43d45c6b7848b2a27ce2170252e70c9878c0dd5c721ca93876e4b9974f80817ee6f16d66003630150ddae81447f36867445e0c70f2bbc9b3203f35d73842369835d94327c7d66ccd79aa1d9fbf15e5ff824680ac756fc02e52c31f535266cead747ee56c03d8b47752de2f2b461e54c12697a9cfbd3065068e0236b1db96685325a91ca6b76d48d213c9451272fc176c9591f7f490472e86ea2e22d0b5be72961dd6dcb9a2ec76e50887ac01d3269fc6cd5555995cd44549465bfd5e28ce04b1a5b28543a573d5c6c9e4613c9870a73141ca51685b2e4bc1064a1aa78929d3fcd4f09da4d5c184d718416ccf1e5cd260e3c72846354121f3a6c126f34f856e3e0ea2e9c05d7176782c2deff7c3dd5a90d791527ee96c6a466e2f32cac31b2ee5aa79d9f5c4d5e4a1186cc66d350a2a0bd7fb798ee67a9cd1e5ff79d875d37933297de8e88ea5d7c5a797506b2b9cd1c32e537d6a212282dda4e057ff96ede64346aacdfef7f4a336b6bfc27d4ff7f81d8f9d4486e700264", + "0bf179c5eb202925a30b8afc2bce1c309b1ce9f97c0220dd6b4e523e9a63979538cade3bb4572a47c3e68db9bec0d5ab2be16d41ba0bdf091ce6fc725532bc87c124edf33893be550e75e76f79452fc1380c84463213b97122d17e4fdb1e9f7cf44cc69be0caf47a7b52de70a1205af310d9aa8d6a00edea04d8f8be0161529b58ed1d6c21a9eb63f924445297249cba7a7f2c3845682259a22e9b1741977a5ef2222d6398f8536d9789ecf1ee5c00", + "e1e24187e2ce6e247c5b5dbedae6dc040ea70adda666db19caf189b5fc106c39099c53f86e33cbaa504822d88d114ec57167c7ee2a4bb3e40a8dce2f593a3d52cdb8b509159a631b0520a24e0b5288359c159419f20285c1e7d889aa6efea5e7d19f7bc1451ef01de257ca385099dfa99905bc3b08324475c6049a7b31ab11751b0f301a848b7524a1763d02933a2aaf223bc82aa0c4db5faffbdfe7a29fe7731c60b76a6a2ab10b9e8f56566168d291d83c120f51cc2ddb44cd7e3424527bacfad07c34091f73232e96dce62575954d19344db385c119fa2399ea81e2d15ebece91bb6f6847681daafd5ba079754bdf84c7c437441402d58f874f9f98149d6b137b07b81b90c04a7b0a96637e99ebc96e04b59809fd536bb3e86f6bcca6f182ee543fb2f3441cc0753ea27efcbc705996d32892dc18aa1955e2", + "040504ad0c8c60c03ddb67f7488611b32bb731ce25eba636a2fdc2a9056b0468e92f3cccdea04ac9620c2eca96d35c7c61466c89b58ab833925007ed0b56000456afa48b0072c82845091532d10b5524e55d6375eacb79d38249239e703d940bdc9394500b7f9a84f04e7b69e6b50bafbb452333b943930654d84f167a022a62bf1789facf59205e02fd4026ffa4262a9078f1fd562b7e5e87925970b145b7f3bfcf07398aa2a3fa31db67b976ca64" + }, + { /* i=8226 cDividendBits=729 cDivisorBits=255 */ + "713348b144c068b998758371f7a66a4a6878270a08ba5db06110a4094eea03f910e3143656dbdc2162dbfd7512c4b6c7b7917550f6101c17788532c1d2612776e81f09b045b23c9feac2df8a8052e0207dcd7e2f49b29b7d8707ee", + "38f38c8b9083fbe4f49cc39b3d8065ddf9c0f425f0592d5d58f05ba3c5e78723", + "01fcd7b971a4f3b2c300d1264bc06ce3022dde4b697667e52b0557a11424ba9e4db037ff525a9cbf2dbf9efa3ef8e7555f07a43223a257314c78a55b", + "32aeae06e3eb50bce824668157e95a8b4267cc9d7ccc8faf35df4d7d2db86f7d" + }, + { /* i=8227 cDividendBits=1915 cDivisorBits=1896 */ + "0343c699143ab52cfc599e8c621652836181587da5f27e4b0587f0af79ade01d4c930ce85524ba4db16ea5c1ab385141714cf4ac66ca4956989ef396caf014a586f84387b9095cb152242e2b2b1cbf4865df5cd6b35e8458a4072202e424ce5cfe4251e15559e33f49174abf61524151321ea1d6ced8849e6de8afac5a49219da0875d34474dab722d1a881fe80432e6170f2a35e5b0172482b0157c99627d982c7fc114129c0720afad98764eae6377aa480b14a0a75318805f638ca1abb8ce94e28aeb415181e6d38feb5acbe2cca2745239cb584ed3e7a5b1b1c2c6f1ca38743c4b2a1075ae7778be1bca616cfa63", + "d7e71b9eef084fcde39f7f0a88f9d7ec2b927dc733330908ff305380b24550ba844fd2b9c2ccac4de3f3b0c5a88516796df9675a322eab3b8e148dd3c4bb34f695f11b79bb040f4adf70a29b5206f5fdec910b0f396ae4fa14cc9b5b0a23e2b2de1b703b7b1dd5bbff1f6923f4d183962b6ce7151c9d196fc2615b49a7968ba2cd9d1e80575a20a8ea4730596099cc759fd78f905f6f7de8b8d74432737153a58d5e3783386c6db258d190e5ff394af38244a1a6756d2f72bc513510798acdd1036772388c3e2787a099da34fe8e17630be7452cb8fd5035cf7c325d2178cfa3ae351e1cd71dff5f76220e3dbb", + "03defe", + "a4f632a1de1ef513e6d74c286a79f484bfe4ceda2171c6269a9b22c72e552e50f037b117844941d530457281607b692f114370bb121a6a6921ed452b7cf6d3c05a3f055b70276bcee4951f6cfa31d4933605855dff15ba921f17ef4386b39deb6615f8c1b7220228259df3d22e72d3b39b1deceab2307a1850badff5264264af966eb8863c7378f0604c67f248cf525200d4edc74af9c85d9d489dfecc4148cc75ea13a1d4e32329e8077930acf838aa6b668a0e58ad974aa8d94f596eee61ff7ee74f0e6449d847084c71ce930815eb9e5eb910c02003eb9ac8d1f1cf9b3c32e6e90d2b0622328ce1849290d9" + }, + { /* i=8228 cDividendBits=1389 cDivisorBits=1246 */ + "0f0123694439b01ee466d11111109a4e567b67cb0644672881f814f314f5e341fc7d608f74c6c465536caa124a63b620d59697331573683b9b258eccb436e08da01fe65bc99a022a4c34508439815fd60cebb8cf21b28a667d7324eb6177778404e977d519d227abf0bada8c2d537fd5d4b0f83292aee78ac137d9c74794cf3ba4620374f7c52db65f8dca3d6939a0ffec7742aa4eb04605c908d3d060e5b54675037d40865ab3737a51fd8f8baf", + "3cfd3df3355aee5f647f88e21e75bea8843de9d479d34128f92eb89205087bcd443b7c073855cc121f63ff64bca5a02edc89fd833360a6f430af46993f9063aeeefdecb044a60bbb70014aabc942b556aea6768e7d4e530d97916ca20df2a28241de41709f2c810572a00a9e4bf7b7881f133e60fb4867597ee03524cf49234353711e9d7775a1e45854993b6b7830aee910fccf423a72b7cd87a624", + "3efb08dd402e02983119d63ab1d4df58afae", + "3195838b1f50050fbd8bf841c36c2ab61d17de7d415b65fdfe2a6ebac9af9539ef2774b1dd4f144148b8be4a4021cf3ca2298b292080e7688a6f8397ae8b9c8047ca95438039370c03a3be4801bf86f4a69feaa558033d35c45b0094badc16e186d1cb7cd518c41ff629cda4a463105c00336b3d8fd201c8637543685d6e72bbf619487b5d97d0ddc9bbbaa184950895295b2cbd75b991ba186a0337" + }, + { /* i=8229 cDividendBits=3397 cDivisorBits=2291 */ + "12b6684559362fda522c54f5413ffd6d1fb78b90b006cdf793b62fc89b37c61cabe5765890c36094dcab74ad68aeb533f3144fe6cd8fd029f1ea41d44e8723814ab7e85a6d8e16556a84a4f017a39874f47bdf0cefb6bc21771195cc6782f74b3c81d1850861e787ddb5529d709ae427bc2374ac916a221dd2358c0ccf9fa56d458abbbb182c1d916b91285f4bd760dd9ae87599c1cb175acdac7980d4f2335f5fdc50e514da8be58b21317f1d0284b62cb7e3885e5fcf9406b46b3e597f6891c0cee0b897dc86bfebe401c0b9ea88328cf5cf99bb422c8fc1a3d988324c87d741ce1e41bc0b18937c8072f57ec2859a829719eec0d8baa6573dc9d082ad412684964abab526b16af5fb52975153c3768303291e111b14299ad299ce9f16709b08ce82fb020d3b5a0df7b1f063397c7becd76c1693e34066be988a877455fdb14ddcf6ce816a88e4767d59b45a362eed8ace06e431c50096dbcc6297d92ff8383e4e8df8385dd51ae9fa2e0afb63296af12d92e4997ae2761ae85436d116a4be863b223b388150af41ad97fa3faa3f38fa33e34196dbfdefd92b40c212779cdca400a6d3dec94da4c7", + "05fa514cabc9ef1677e7f1715813dc4035382512debbc7615a722c1daa5849e4ede629fe8326e246099418eba5aa6b91a4c0b6f82033f7710045c229e84d5a16dd6b77414e78b517cd9b73961a6051bd55393546a7b4d93d33b0ad495a5733a1014a083925fab9c0d153dbdc153580f08c403dc2734fd6197e1b6bd70fe593e11d6beb84e7dbf2e1abbcd1edf003d09cf9d4026347944930d6745662c3d436e21f92dac637f622db639c787c6e0c53ae2fc08140581b83abc2f1f6d89aacd1a9d31f54cf1f9ab30a2d0d44435181e6a978357495e4af2389d391d2f7149680784e53e5c4fec3ec4fdab18fe3d108b41f0869a968bfad67f23fed7f68c6a9765140a533868cb2f827f1856a1f6cffd3c4c1995416740c40b2c47bed8319df02", + "03215da9724920109dd248a3549be44940f76c388d7167a25554975806ef738e88c2a71e09f6e1d0b6d7093ec5441dc23c42d7faf55f6246a24b1c9a45a6fdd7711118a8a308c6aea4d122865593533d0d218b5ce9d26a6f3d78b3ffc2859f8420aacfbf7e490e8aa35584ddd1be364c506cace4dbe24af19d20b79ae5f22d24ba1da44d86bef43e1fda02", + "027de1a8888f0e6e5ce58d191099e21fea5391158bf368a5a32d5da0b256d2e4b8a60aa1aef499d927e30046e018212356a429af9a961387c54d3ed26f10874078cc622052586799d85705b358960d50b8cef665a60329e3d75c7339bb08bf19819a2c54cc98959b5e14ba9db8abad305fc9e901e7b326cb1eeeee01862288452694c914f1a62d5650a27a5a5fab86d9f77f3306a836a62f7b61c967a2b0826c3ce6d8bfa4064c68a3b8e1cd6cd978daf2371b4912920d3fde5c052c4e7f6fb01c8e500ca4d3a5d60b2d0b7f388bf07a6c8208d2c8f4a2ed1ff6799ac0218052c32e7c1e62648df50e52dfe16c357b2c14e5bc0558afa723293f051533e9d4f15b7f9d8810cb61ee0156d4ba692d8905267b4a90d88b8444da6c533df432c3" + }, + { /* i=8230 cDividendBits=451 cDivisorBits=254 */ + "078146dcb2587b91418df5c6204a601115d77abaa5624d467697c45f5f79f9ac6b002f8a70478bb6d1be82c9cbba4b09bf0dd0b86ceb735311", + "3ff4da88c4d3b50f7dc09766a20e9488adfb28b1409d04fa9b31c41cccef38a0", + "1e0a56cfa6424a3131227d65dcc7ca4d72a8c3de47cca5cdb4", + "3aa29f2f8e6576fb852bb0a1ad265a79dec471d0e59a5f934f95986243c76291" + }, + { /* i=8231 cDividendBits=1183 cDivisorBits=1166 */ + "67f11b2d7a034ec546afcb16228887e95a672536c86574d12384d463eeaf3694fd8c2badc5bb0c06a4896b4c6d3cf19a31fd6180edb98a3a40d8e81ff3f9a1c701a5399c3708952040936deabb4f09d2599c6b907e12991f1604f07f6124fa9475b7964699fd78fb8079091ddd4daacabc4c91934d1acbb01b9f72bb96cb1cfa9e1ebb877b05f80c233a6890067120b7012c8474", + "2d5864f5db90dbe68c9c08c44c55eae75456221676dcca2bd6a4c468da0b70725b7a4ef4ee9bf0bcd93add5c80f12208e367afbb20b0242507d1ade8b5fb349d8fad8f80bc886aba388466fa4c5dac3cfba025f8a6e5caf55b42377edc6df171630daeeeb100f929fb7f336fa2461c7f1dc521018f90e23fe8dfa9de5312a16da32f8fc81eb92e11e23e098ccaa138de5c80", + "024acf", + "19990e9d2d45b966ecd9b51222bae24cc989cc25f18150bd1b911ac8b7ef4bae3b0b437d26deb29505fdb048b6b7544228677c96e91043019d7da43d7536cb5ac1c87e5fde83aea0a722841cddd07c505e269bf9a2ba56ba92ec1cfd1300ae4b2bc7c5d01ed7edd58185bc94f6deb75e41a00a360fa2dee22b0a51dd4b651eece8f221e13cdaf2e2768a05c43c2d05a2b8f4" + }, + { /* i=8232 cDividendBits=3098 cDivisorBits=261 */ + "03f3d39ddaf653141381bfe3e9d0525031a417efccc5b565f8186b4cf16b4d0b5aa6ff6cf0ca6784a8e3182ad6fbd4b91575759b83f6d976c1c4c887055cd3eb8e5b96c77996f3c8c927a106c94b0a74725b34cb98e3b26b772aed30f45871dc0250ea3208d4ab21d989abff6dd83dfc672370545146f2e18468cc50a765ba0b8551aa6cdf19112b91b8b717ef636381575193a0265518966ca03c5b94f92dfe3a50d8d1f85db6186fdcd690ae145bad1b6bbe72dfe2fde9518a753be8a047aa860897c67753fe3d474044d44256ee9450090fbde8af2e37852dcc54fb411cc0d7f876cee43e7707fcb81924cc21d3b29967920bf21b1ecbf043793666d65ec837d0afab510842289621e428eb556c366f4c44c4db64a5507000383956bec9bf56ac16bd59bd7b27500bbc334b70b05706e2c31d2490e712965bfce15177f1d65ff6af7191ac7d7edce0ef57f0c2e28e4f5da4944953230a9985fc66a4e29b1cc3ee79408b202d221436bdd0ccfe4ae2a9f9296b1edd4aa76a174aa7cfb6c5c61e9a7c41", + "0b29774739c90845ce4f913cedc97a60be064b3ec42c6ab9e1aabff5cfef965a86", + "5aa640195265e1cd4d15f721d0a1327761ec27e85a4d6081a2900a46cade627a3e3debe8a6de4cd95007985397b8983f5d3da5c458d6e9e9f4d60d355224c3522a579818da73cffa026446c7ab9fb319d50f7b757cdeb3d150cfd8718c97691f6b1378980e3a3afd7154298b058a9b9ee451b58963e8e1f16b8783e5ebfa278bec876a9991b8dee170798c2077285a36a0a6f8e6daf7c5f3a3dc5ece24b7343a2ada388e32aa06e8fdb0e4c442b086d4493663d38b5bcb3bd0445c809feaf7e8a7b654656d4dd2c70d95956a02f9bc51cc1134e1b6bce6c884df6b3340a5492a0d636859456a51ef6f701975b5c2b1036c1be15081783348cfcd280ba367966de91382a58bc573d446526895ab178c402feb60a08067aed2bb016e7b93f67eb34c12127880279493ab70af42a2621a7b996ab1918ddd5fbdbae0f2cb58ca8f6439f2c63277e77633bd5b94d1b805a971cb33cb1fd3fbd5a900715355d387d4ca3eb01e", + "08e67b9f4b4edf8b63392072a55e44a7a37f083f6cf82b6e666c1eb7e1044bc08d" + }, + { /* i=8233 cDividendBits=2510 cDivisorBits=854 */ + "16b58ce4fb98170b8dafc218785c23e6d9087a35267418cd3e7afb58f58a57987c0ec4db220be996997ad1d9c11672f7aaa882d98e0977547df6bff4ceb612287ea1816effc6930c7a976084de0a66ba0ef0f11c8a3e20e444600952b99e413751731f3f5c3eafd306ca8057e2e4bec4768f48171ff0d953b60b5c1acafb5acb12d72658801f25b8a70f4ec1e50b07ecbc24291d057230c9e373c3e46f279f7d2a5623d76db4c95743299e74ae5b66a8b10fe3cf3ed26dba22705e39a83cc399bdb4180844c1a5e4609d2122398d3791f317e38e76ffe44b4c7ec6053b1d2ad01bbc455933995c0206bad056f386397dc6dcc1c88eb1f274438e9a4351e6048c727d6baac31f1eaf10ac5589ba49bce7587d162abc9c3ac3ab6a5518bba07a950d6d60fdab35be7e6bf3b54f5067a593e6ea18a4098c68eedb9c", + "2b53709ba2a8139f4d7a2a19644a1b958ae680044e0a1cd9cca727ea2ce60910882b5f88c9f04e6607da5670ed0de7e53f30b2fa9659aea545cd0b182a5041669a02a09646c28dd1b2564cc12c9ea977d07ad70fc34d3573d00eca746025464c437e893b8a4804042eb59d", + "862e87a71b9ce3c24394117773b1a37075b59e1c2fb0e2354ec970481a87c950e49eec90cdaf6b9657e417bfdde928bcae0409e6fbd66179a3638ba54b52dd4659989705a4856ccd323d8043a5f8f89ee70f5f99e5a93f6a4ca3b82beee05f6693a95c6a759e5cefe076657afeac8f855bf349d46bf1b708a4c96a9a3636cd4a8cc29272ef78ed2dae29e5dc54b56136e443eb45ebaa0743daab360e9f5307c3be53d3a6d1f3698b8ca1147c5289a67dabc855998b64843c6530e8f6a0efee7e2a57ea813876f6b5c791c2a663593c", + "0ba26699fd3f8c5b262075b4d9e42a699b9c73bd8980b8a6a32a37f2f4b21d0cc0ac9fb04c317fbdc5a4fe7341f2d6d3c337b997378a58a4337ea4ca5381f4dc27bc22f916198c4f172b3f82942b316ba245f5065cb344a2655055195a571abb7cd4e1ce9f4d592721b5d0" + }, + { /* i=8234 cDividendBits=26 cDivisorBits=4 */ + "03bdc59f", + "07", + "88d316", + "05" + }, + { /* i=8235 cDividendBits=3287 cDivisorBits=2829 */ + "6ee4257180f490cc3b4740d24b6358437e710f157f6b6d5b8fba426130dd2bdae7bd0deb90a3dce090821417b93a9104f4a1f6e20bf427dfcde8d1ea67ef9e6c40719594e88aec0ec68e35021b9d1da480589f4b3d33d6b5aa6c2500b3f523c97e96012be232b147da650caf7553eab4c385772ff52b46f80d28abdd63756b4d31de462ee8bd5e9e8a67972baed93bfdf03b773ac3b1a8f70d0b5a9c559d2e6ac92cec9abc16fbfac524c013595200cc34964237339a5442a2c51e67a727f44fa2648b49491c70ea38708c6c6f8f2707ce6f22efa918e2d78bd11485278d68b198158396d292977370fb1228cea9c8bf47a799a32ac6fa9eed504becc5adec85322a6b775290844f44b21a180c8c29ad8ee8e1074261bac9494d719399e4a7b74e052a61f91c604f184973f9407966d85af579954736ebee79e126e46951f94372bf3da17f345a9b042263c7565294bc541d4c39802e40a1ba72976e79c9f556f3590da8b77155835f77d00560a86e0ff589b0d2c13f9450016e0afeaeea59b26fb7d2c029067903baf3982289b6b15f2a36f3b1178c067748de6b", + "11092fb7566146420c7a01c4b9f9e946d27a272a495d93e5e98b9bc6f6621c4d3d380035fc142f18344dbb9fab110f5fa5064c311b029a0bde25183dd9135443427df4ab10f12c1ffbfefda82ecc3a9bb485c1c32b5d7c4c0919674ba44baf4f21f7cd8f11c5bcba95f1c355667fde7251431734315abbe8b1cecbd8fc273b0b0f26fd67d47381e6a40363d3a6a4ef3305138373911357f21aef210b66ffcb88f2c47f3087dd4c68ae59e0359a8455341edfd1930a4d6b37068d568c1728c9f0e251d4f555fc94ee61fbcc0e33244cc9ee405b50a5da980af6baf1de2c492bdf8bd438f8a060be70ebc546ad22e119c70fb6354aae4ee7206e7bb5e1f950fb2558d5566419ce1faa80f57df2e472ca08461ee10ce9ee12932b45139a4b65cb210534951c4de281587ea44d34c6e2614c56b272e2a89d1d63abee9cfa0f626232ae51fb2fdb424d4a250f755248e340f509f1af460c0f93d877cbb253a81c77aa2df5", + "06825f9de1f7036c6f8d061dab741159606344bb106932cadd71f8f8f5c00385be20cedd514e9afcc9579386f306d65fb712c9f2d9f0fb9519b7", + "0fbcdf013c2230ce2da1668872d3b4f739a3dcc2903d6760b6b8a46a29f4044c08b6eff752e7594c3b7e62715945e6d0dfcebecc834bb2c93e1984d95864e7946139ddeb400da4b885482c976d36e80f513ae29e95e11beb64bff818740461d64472de473391c447aa4e9a7298550fa0a91e5b0cb30bf3c40fc439e74d70a751312500540d676185b49ef2f726f24829126c54361a1c12b5b68b2599ae20b16d347d532bcc9f4b312d167f67ffbde59b41961b82088ad95d717dc7916210d90895d7c3866909cfbc7e132fb976f079c55f175ef18e451d872e42ca4ae9a39968d31315c87c32b49b75f0d02a247986dd2ab7beecaa4dc46e126383307d51b0f468d0f33418ea5e61b789e7f42506ada7c955b169eed58b50785a11d4367c6a606861c5433001e295ddec39641aebf4692f8e223bd39a44cced19dbaad8d451a7a070430cfd1795b99a774ff94767dd9edf24d4b3939dd0cb081a0ae05431578c1748" + }, + { /* i=8236 cDividendBits=273 cDivisorBits=271 */ + "0145d40815beda1859ec350504a0a66ca1e27b69c31f31b9235a4060e93a00e9b85f80", + "24286035d0a4a72cc63c8d3b0ea01024bac8b2c24c55e81b7c63fdd7ca702f6dfe44", + "09", + "68a631691037c6f4140df11d05db57516d20ee702c902bfabc74531c0f3eda6f1c" + }, + { /* i=8237 cDividendBits=630 cDivisorBits=41 */ + "17fd2052f6f1261284c61b6fcc0233e07fcb80562f1cee8bb5844c5e8f694455e7b052c1cefd5381d2447d6b5a18790612645c4910f106432f0645a5559926274eea4d44a6fb2f20b8356df55c9dcb", + "6225b47d75", + "3e920d52c3234202d26c0de54c3119d9715bdc634c1e161ed8e28283be604fe1e2d8009c5320559e80fce79155c1ead778cea1cb915f317d97e95e75999dfca47359f3f9e26c74d851e2", + "5bb19bd781" + }, + { /* i=8238 cDividendBits=2381 cDivisorBits=1751 */ + "0b225717b7072ef949f64ffa7f2408bd9731d6def0af2557d816353116409cccdd6688609ce39d5b357c7016f616c9917b64f3cdf39f27c18738e4dd90891d33515282b0fa2eb3dbde9668d2956216eb02461533b5a7ef666e75f591ae30d7e98db0e03410be3f85518b555c9cb0a040b649e1e0357975c3d616b4c050c7b97cae5e9eb5b65f45b83b31c43e08d943d056def11ff38f8804b7591415820a82d1e5a2e4c2c8173525ff26ee971cc40a610e044a145e65bf69489afa2f44db350699c3e6a2e7a89101677661868889c11375b84e923a7db03dfeb0ef1bb21827337ddc4978d3459b9c9b2f7cd98710dd1e7a3aadfe046bdda54c3f11727f113e0ad3303b35a9b2a68579da5d1914eb2370047fe73b1bc9ef8f17e6b303931ff30d287af51eccf4518d2a31", + "18b0f9c7fd15e388baa3b458dfa1b1a6fc90ec8eb94fabad117ed41d0a15c9546621f5f0eaf44c645472bc441488bcea840b964433f9edebd1b96810df0bdd9e8f95743f4c207d0913f579c19262fc943d1a1377c8436f6cc6343ee4b768d7c04f47356cea7df10aeb8b5c0606add046faf7e336b02d25269870e77dde3213ccd356b6d5bc5323e55c1b2616163e1c6786923a130917c85d125a776c4989cd43ff10a49767565274468230e0ab63eb138982831b0816a49b42cf43fca33ffda7f8833769d0ca58b1f55c00171208925cda4b10532de76b116901d8", + "737062132a626f3e2283b19c740e24e8a184a6369189656e5c40c43549ae4252cd381e222a835bb1013838d9f65bce58215a8d1eb99404cf4e8a5f772cee83050f58f41fdf3c1b1ddb321b9545b688", + "0171b256a9da08be4783bc61fb49d7dbb07befb11001635dda7dc4c0bc7d68c0bf1d403a47b57b05dc861c4e2f3fb9f7f52ed3ad791972bfee8097dd109669869f73f98201f94ecfcede90b93b6749d7e36b32dc04e6fabc86e86400b3c9cc097fc695ce095bd5140f621d695728f40ebae28c02d16bfebcd346ee60fc0b2e8b6350a8276b14a0f72bc3c26d85df4183b987202d6e0a949d021f40049582b9defdb250555318a05f96bd6cd68b89fe4b0b03c19f73fc002bfabb1713da5bb945f20c63826ef1b7f4a6d3cd87f2086fa5a29c180d008c8a333c9f71" + }, + { /* i=8239 cDividendBits=1202 cDivisorBits=588 */ + "03dbc99cfe8b54f350bf36659817f9117e0f71780562924a1511a0a1056c424790c13bfa2b96a07effa6048c3e540d216614171961289e4a8847f2c3fd4711dd0635a3f17491814ea655e921b474d7a237d5c1cc9518e794744c8ff50c64f123015cd7d74aeda61c3294ce6c0248ff35ad0804af229fd9d06c1c269081ca99ebb3eb55dd280ff40ede40f3ce851ba5818aefc795bbe8be", + "094842ab1a1e0fcd98edef2085510bf2215711a8781b788f4d2ab2f6faa708c6208c63f1d3fe86dd719e30c40346fc563153734109c4fbb5564a89576928deb9598eb0f5822e8eb1479d", + "6a6aa7e7c6425bff339469bccad45f8380ab4e2ad5dfd0f9470e71b0b665b8f4b060aa6190fbbf4092ff115329c742626854991473243cac8a96b33ee64bc1af5fc714fa008073c834aaa758a7", + "0135540770f8300f63e8247ba3fbe53a69c6ba2f750f7cddec46fafcff14f7fa80f1f3a18e21010bbc6c6c947906ff656b28b2ad92bd462d7638d024fd9b5a3149bfae05ff43960d3953" + }, + { /* i=8240 cDividendBits=2167 cDivisorBits=1843 */ + "5ab76a360661bcec838c43163011932826a152b3dce3e0fb6fa118d4b70001e83fe811aebde37caa26e213cb899fc9486ffb1c65f6160b53533ca7456a6aed18903fb5fd6d7b9cbad1241023f1f933f362c58f7b8373f38a097ddcae6b3883e13bf7cb93fdc05afd0b279ba9ec0fb108f86dfd8ec7e7d60d8bdeeccf24722155b593c0204f1b5e1075113f6058092f772ec78668f1ce53cd30c105297d094395587e25789921c3017024dd6504977279f4b354977f6da7464b03a214c4e37e366bd34fa13493a3bcce8ca8df5888764f24784c4997aad8760a91abb6cd450969eca11763f745377d662e6fcdf0eae25381ba0ffce1236a507274cae83ca92912cc53bce964571ab55ea146a6c8b81e", + "0440226b22722f4c0848c7b5cd66ecb9d49201cf74484f8e344586b18a4d5709dafe6c8c63f36011f74ee12bcb99b54c3291be6502f91dd95ea284688048fba4bec14883d63a5ac2e8f65ae70854b5a40a64dd9c0b81f9f111951c1f351e73efb314d445f1bbd94540081ac97b8c633de99776f20cac4d85b20573b4b36e153f94c2baa8d6b3ee7a5038bfa50d06985ba42867a46d360ae1abeaa9ce57dbeb837a458e0b2f15859384e0549082dd0dac4b7215d861d138054ebc6728495e76b6570fdd7a94e3610f25c07c17762f1c17d44a466e84ff4c2f9c3f43f522bf2e0ca2395efbc16cfe", + "1557a8629fb43a0d585d9a8e1c7dacc7812ff2f11f7a5a5e2c3c5acdedfff738242be8b94840b19c5f", + "020aa401686f2a8263cd59bd67123d6972743c083ae7eb4732b80a539f16936b5abf4cf304cb6f281d08fa06d46dba5d279164c65afa351dda3b4b1ae265111f8192eac6e870641345ebb374d2f15dea0472dcfb9315cf4a39c5df11b9a8f4425ef76fefb9aac518e30ff38fd58e7087c8d90e97cb2ccfb44a9252e9cb585be376612e2e234e8c99e160cbed82afe693371d82954a50a902b891e650476be5aa9fed93d666f2d4bad6d43ef5d0a1d314732923937b9b9be32d473324d19cf5904750367be9795451cf7b3ac2207f9cfeb719a3247fde855fc8cbd1756fbbd8ba3ed4317ff87ddc" + }, + { /* i=8241 cDividendBits=1977 cDivisorBits=127 */ + "0470613e683ca62bc5e3bfc8593898fb754847360d31e17626bcf0d52904646cbc33880b47818e15303235cf8f516becf3f8a33e076d721c6016e29f2551abe035cced59c518d461d2dd5229a5267ae926af41cc884db36cc0e8c47bf8e5ce7831dd56937d8abe3d724c498cad161befbf1e224b5430180c7a3a97dcb29a82bc90d5f07b4c23d04264a079b185577d95adea433f45379f28a7437b9b1eca04e416220e502b42a53b39804877c990902d7f8446e7d9136acbda9745e639f7a96217358ad8ba167309a959c319bc7c31fa0b6d1cb9ddca5c3f313f9df76bfaa4187ef001471f76a7597fd76b5129a8d9dc8749365c12f101", + "36b40b225114dbd69301ce510e1f41d8", + "14c6053fa305e6614d36098255a2a98a03a38a5ca86991c55f329640a3c3ad7fea62858d54371be53d7a75c781ee592a0ab976f2e8a87a7a5a5422a35892af14ee6c22f2e8283b9a0135c5148ca83ed30ffadf0c86b6ed95c9dd5c9775034d35a3b52eab26aa23700982d6a556f1682eb687558813e924ea9a97274b4f8da1bcca50d40c4158b9eb1cd7d656fcc70379e2aac3b068f3ad5d6533dbe5b9cd3eded6e8c6ea2a8bf54618a9e8a4cc4707af6dcb31cb28beb3794c5158f3d3a95349e402af7be946f9d568f723e9c1d8179c2e7361ef5ec91fd652399ce7deb290d6bf3cd6578c9106", + "0f4f615fc6079b8632c88747e8ec0df1" + }, + { /* i=8242 cDividendBits=1657 cDivisorBits=182 */ + "01638699880be71cb286c93f84f7d21bf0668d67b6048e0a316c759b24630f83361947052f9aa942fbcc1b44964c1187fd2acfeb7f8c1c73fcbd7b644fe89ac5197f669c3fffa9c4419348677be597748c13a6ce135674459faff920b8af3cdba1db5890639b35921d2fd80d53bba52520d2669e4cee797861c4eb5b3a026ba2b29ca796103fe6ba64fb4e610586afb5234dc82c0c587805763df51d8729a2b40c76bcc8f73737200dbf647e2bf47cf5b68b0aa0401b85d944ddcaa04577d9ca854a73800a4fb93764a7576fa750ff39", + "1448da0570ae2cf72c02cda9d9a1f9174aa8eaa9e104b6", + "1186e305b04e17509d66ad4312a882c42694d054be617e7051ed31f93a06e6be3615b4c923be2b2d74bd904a5e15ab7f7f7a11add803d64b38ba6b25af1ac034987796b8536cc36ec2a025c60e40f480c4214a33c2737f0f64d6defe66852b8b3a8c3661b9be87f4210bbb801f4158556fc60ecb29e9f7885fd962c4a6afca446228eea68bb09dc114cfe51ec39e2a612b87ced220b57b91e4d1b000485c14c80cfdd1dbc8da1f26073cf1bb156346de5255c5c977cb855b44", + "0423a2e98554b3f6d1cb9c52cd4e8e21cd4779c6510ce1" + }, + { /* i=8243 cDividendBits=1746 cDivisorBits=1546 */ + "091152e39f3099ef43a9c7c3b7c50a92c01a619594e3df00b44a536e1a24d6664336babe21e8b240f1342663626c07bc2923e6f9bb0106f68877afb3d2b7ad6001e8dd2cf03b9741b6098a7a3562862cee438091be3c5005a81769abc7947614a11672a7542323b93ffa60fad1e4b20dcdd4445681c1b97c5d5e835a8f5f312161afc1f70f86f0e451d761749f6e1fe4e84cda0dc5813c59347fb9391deb9a8193476e652e1c60997c48296031d107cfd0829d2741a924af908dd3d7fdd9ab3480fe9c3bdc1ae1c6e69233cde7116179edeee855ab4b15f65c6e", + "02e760158b692264e1090ebc91176d38fc10c2a218e674f7eb18506cc902ccbb3cb65988bd0f02465f97c6ffc22e2a47cd2830c38a46fb4909601fc9281a4054eeadf316d6c708bbf9c4c7262c010a9607c154b79c728fa6e8909be8001fce8addeb6f1dff63708c065925be0e0247ae7711465fa8f42d357b627c71c6595dd6b6ed42eb15e93d15dfdff7a25025e5f00b62843f6b2396969bd4ffec39523b04a1199a3a791bed425ea212947fde6b97f8a4b08bfee8290613b918a39436b1a442f6", + "031f680076939458f0246e00dcde056e013dbf5ee2b4a8732e", + "cc85e911103e77bb24cd98914eddb98fcaf38065bb619922e6c18b446e50c41f0b4aeed81060951bae4b9e4e2de2e162837509f0ed2b74cdcacafc59ba5142836e3f500dbf195cd854daee9bd0aa059b029c5548fe36273fcf9b6445d1ca87ce9f743a73cea419ae4684e442aeb7d3a62980370def5b76f45e6362f17520a298e534088dbbba5e01eb95928374a3c9bc0473457f3f742e089298097b581dd8d910063032d2077076e0841a72be599d86a8110e5606d98b7b0f8f6cf39d76edd23a" + }, + { /* i=8244 cDividendBits=1857 cDivisorBits=155 */ + "d4124e23c394de55817a50d6d6a20e13a52ee497dfa55b6ae9495a5e1415319b263200b88a5e39590d78b2654bd33ac7000fa30d3f934f7070c57ca19f13735c09f66a1774ad488dbf7cc61718a33473beb215d84fddfaefabb1de116247ad2c29c04a815795f90c8e2a47d7fa05fda52399869105f64191da9db1162bf5b8b1973a48ca89c562f8a6995230b253d7eb86d48b4613f8dc732758280a08a18e9b294f9c6566b9228076ebe18db9454ff0d5ff9c98c0aec09d1e3ef080d6a9b7c9203aadd41c90b1a51b2ce46a93f3166a60e2265feb8a460273123c6e2f2ac417960f8086d595caf2", + "040608e4c2504622b1d71a310e6db81d9d93da9e", + "34b50ec25f197ed397af1dedc72122246cf1d0bad3e931acff092af73fe8b508118cee2c9909989400f339eea55338696a54a8eeae040b875bebe90177c85d719057252c9c5decd76abf5baf32226979f6dddea1cef97720c65153a75c07c916d619e80ffc163e31c66952d9e2706acb8f06f23bbd7b94d140f066c439c98677bb93139320346aa44ff3b11ab059a95628d66a479d74e717677569d8d401a7c77c1b90a5648ed4e21830a2f715100d97ce8dead52a5717ced5ed01f827d88f6d1e6b81151ffdab85de825a10c3459b41f1803ca908", + "039024c0399f3e1cb22ad092e7fe69df109ca802" + }, + { /* i=8245 cDividendBits=4063 cDivisorBits=3301 */ + "6eebe0653ef3e9bbd96fd60f8e05c22e2423a2d4781e2d2548b34c78c4ba07db66c0631fed4324ee28d84535806eeaa7306ccc98128f20673de497f042766ce910eadee3c19e45ae43ab5f2fb63f4bdd913ec9102374d6350f97a8d9299e222f457dd3bb9389548ca9dc1ae9558243a0cea200a3160d6aa0ea9b89e3c0ed4ee9c623ebf12d93d1526da21030531462047a341cf81ef224805f39e3eb116eee82fd13be2387856c71da6459c221434885022d62f664f4415726dca9a7ee915523f3e14cff237472b764744e5fce898983cd1b677ddcd1160e9f437de0b02e3b8e4dd614c3d3f31fc3d21073e1dde0920d553ede579f430614409e3f59c0eb9d149312951d318361f1620bc853b3e02976b51b98d17bae798beaaeb7ca4b6d3723d71de925ff29cd219f0e2f227fae8d407336b42957dec266be8891379254698c8875efc40ddbbe31cdce5376dad13943d6a6085fe379b637d69379fb3b04b77ab8072e9ad8796f3097695230352bd5e96b924d2be1ff455fad26c1844356d78d8ee6e586acee4b0c6149b3ce6a4439d20392e90abc707191fbc5bb58d03a4a695a60f162d480ba4bbdce5151caa95a6497c148d408950562485068e4852a61f09ca1ae9e0efcb31e8acf7099852ef3491299123e17ac3b4709717bf2fa631b8822a6d0085cfe61e7a8226cbad2f21130accb1b3b5db2b8547a3566c1", + "05b8805e75913abc52aa77a64d7d43b51fad92e001999add72e2b112bdee4b5f490c1bfe50f9d0a986ab48668ea750b2a7465d23b61f7be484e61021c5dcfe7776c94c9deaaccbc4de1589fbd1f95cf47e9527431e28ccc2bc7d854aa516f1a0cdc47ad9d192b468bae7a3d59ecf4f1d60bf6a76053e2c008d92d0d90738cd8b09a7c65a02076d28dd9d5bae8ea45eb10b90ccfc4a368948df9088d4810748538a88c0d8f8906be97855c9bbd7b41c8737c8762f3c7eaf740cc8bd933a493079d4ed5f261bc27a43df437fb6aa843b73a590d275cd37fcf82d295e5087e705be678d9fc07e231ee941cc6f2b0b2bafedf4fd714c95200aaa54e86630d147463b00fa322bd0e65c4abee727401ba9d709391f3aba18e3042fe66dd3c9f6ea7d1674897b79822e58bd21651a957b8493894514a63ecfa019adb832ed64e3356c801e9b7a03bbca3f794d80e1618dcc6faece02dc283c7cde33c6c89b916fbce8d27164451a5c55f1494fd178fa09e00c20a9042786a250399fcf1214fcb8929dc8786bbe4e9eabc06a9d15ba0ea1328fd600a9b9898bf84b22fff499ecf2", + "1363b2f4277307db835fd20843263eff30ff9a8758f6a7bf6d9e7456aa2219002079c1d948914550ec723888b7b603286386849c935c523212e23216f4643a54524939547c64c492b67e8abe7bcb3c8428d113d0d88b02175768b59705ddc6f1", + "01a770c8c3b9f3e4f54e7bd5313340472165ad1fdcd9e1264368a4117b2f571450353c02c501b72f1124cb1257472de6531b4ce222488b05226f002973ff37a1471f17b8b64b01d81d7965acb05bdf6d7d1427f7bce52ed57b30b887bb186a76d8e0eeee1142c7ae0898d61de1a8609fb1c146ca6420d2402af77e86f1b9ddd299857ca4ed969a2b51763a238adeefa416e13db9ee288e7e75eecfffe337e5677fdc574b7e19df2dd71325072c169294368ea9794a2e04ba956495648db84524fcc5fef816e4ea7cfb54d100bbcfe656ce14b6eed861e7e7ea40824114601730f91db10779173146272f064603cc4fea68ea2dd12b310103eb39b24100e168da08e4195afc31bd181ca4f49877a1b7d388d8bab6099925526f7025100aaf638acf54d208c7bcbe332156cc8f5ce0c47ed6f27ffc31cbb2bb36d32544f5fc65ead46db32ae870eee30ee42e9a984fda9b859895b70e8dea3c76899ce78cc97da3ca95075f4a133268a6ea40aec371a1ea583d7355115c5b55dfd7d9132931868add24064498d8e7505c1c8d1494339923e01dcf1329af85c6efe1202aef" + }, + { /* i=8246 cDividendBits=3707 cDivisorBits=1539 */ + "03791eca71cab6c559a4313f414f0fc6c92db017dff86084be363c52f239ba43734684771c6673a7e2d2bb22b8a7ee1d4209284736e20f0ed1f6c57aa1b8079a212b252c604cb29e45651b3f9698bf3e3e83daa3ddc968240c743bcd77835be2dc06b817cd2c49638493a2078075d01c68349c0b8139b3c3e7600467000d9da3728702b44bea495de7669ce77c0d0808e1de902c3b4aae0e392652743c93570bea9a25ff9f5ba19865ef694821fd0170674f79587bce43edffee45dbb346b436c61cd501ae61c4104b88cc1fa0718465ad98eec65b138527e23786be76a67bcf2816a6edd42de3c866c44773c37593d8ff3da7ac27ac2a2142a6763ad2629f5a5aacd2288b71de37eb313bed3af3b7567fc269860d6778ce559ca4431ad9b27d1d71d6f03a3471b14d3e9b95f5211c955e6b0152964b71fa505373a940c8b48486f0b6ff9699564e242b8a259ff67c41edde1e7b4dc872237782002106e58b2a7b09b90bdeae87323c9587121ce2346a0d13c0b3b1e91d08a5ad5bab7d615cfd6a16b47103e9aa9b59ff325552ea65f2e07f17d66651c7021c1db745766b4c12fd4da914bdf6bc1ff950c70c679a34f13a6f0a76a29fab92704003e849a7b79a1c605e3d08f4ac1e2a4ead3983561bdc", + "03854d2bc3826f34bd206e1e083d000b69f7a824d54563e8593aca71aea34884eb77d19da067f210ce9307a686fa7cd14299a9118961152cf2e6cc49cf861e0c47650ae389daece07964439e1fa63d5f8a63147383d340da9c47fd0fa71d5c4306ed315e0e674cb2fc59d818c98d24aceb52b90b2faf113a5c6bc4e8663043398daa0da3d541add55464a058874cbdc401f1e2f4dc10a32b32955a974d388ba9e559d07792f377320abcc86ae6015d9648fd9fe2e0edd875d295dea8472927abde", + "fc8a465f9e4c4f0f8d771a23f99dd1026065bf87a2deb12ae25ae7d3afe0e5ba7449a6cd473f7c759d7f8a547283511d4afe31ed8b0f3d17e2dc91cab3de85542b418198ead16a54d53fe5086e3edebd95c713bf666bbc0b5e5621030ed4e7c22309a57e100e6906f8383d8a79ecb92b97de170969367cb62cce2ec701361bde77e19fefe85f245da249df7ab0ac8545d3a54951b75f7b18cf9b06b1464714d96dcd9f49dd6da72d2fcfdefdda4cac3cd821efe18474eb0526a6dc36f96e6aaa3d3eac2fd5db7bce787c35530101f608448a5381c83fb00642e79dca9f01921a08cc3604b5f5463560805357ebc262faea3776314fa6100e3d22ca7c7cb2df79b1b8b7d6b1b57f00e292492b17f506", + "79dfbfe7939beec680fb101edbceafe116951aefec9ddafd81f206e7ee5706c86d19b6ffe1f9f10acfc34fe5c36e7bcad501a002bb5a42e62605a314932bc55a8f6d780fca9daa5c69e5ceb6ab1aafa66d501802ab4ff6b623f65e732831e2183e8162faedfe7935e2e40dec9365c65310c260885ce715c00f5ca7013e4fa0ff8bb3be54dab7096438b6fc9da60b0108e1b109449ec79eaedeb4a66e06310696c68f396d78e08b86fe336c1139fdf144651738d2310e6290676ba66ed9fa9ea8" + }, + { /* i=8247 cDividendBits=636 cDivisorBits=379 */ + "0b6406dd8535921ec1c11e2d5d42b2df7eab2dc9abfa87cffecf5f951164db22b965665632a4126c12ef6465e6a365f3f2c6e6c07267a57eaa3587f0af271facab94087e965e3c2880d8e2c637edbfb1", + "0429c3260df29d892379728c163db6d87e8f17c3b741ce5639a86f818ef9a619f1eee8c2b3e8644e579c8eac6ce7eafb", + "02bc70b78960aa3b5a090563c74640b7ebbdf61805828b210d754c568875257a07", + "02b3537b21089730592757b4b5e4dd03209f35b5cd427720b8eeb8b5cdce28feb5480151d86e9c40d537ece70a53b4d4" + }, + { /* i=8248 cDividendBits=2582 cDivisorBits=140 */ + "3579709d833eb9ad176e654da49282101576e4f75e3505e0bfedd1af4c38d906453ff6058758126f5274266364ff0253f5bd3b4d1d905aaa7d2c4acabd8cfe03e7a2de8190975ad9cfc8ead03620c00ef8b8c8fedf02a963f6e7aacd1a8a01bfd42f5462f90683fbbac96f1d80bfa3ef035eb960a832729c4238321c9cf6d226f3dd4d20608ad27066252be03554cc681ec42851067c64bc10e607bc29226bf777fe288393425851e0243dca8afa4daeb88aec223e60db4420d6da7c6873644f244f9ab57543e2d8b65006390027e9e030de4f81623d1aec0071dc9032bf043e8d1d8f2b1827bd07b4e553bd2036734c9aeea55bb347208ce909f28dd2ad0a61089ad5b0e8ae34356fb63454f4ca1d38277a7088730da4c6ce39924cfac3746521679a3d4b1500f1c5dcd3a964aac5bf2d03e1b52b2c5b9239780c405e0884e697cdbd", + "4febfcad6c24b7269bea5ff8ba666d785b", + "ab490e8c056393143b2c64eaf870870208ad4a0815c68271a1cd8ba0b1ab2e2793783f4bca65e4f12cdeacd504b22441b72c4a7a7a3a1db442097220968b9a69c535c1c2d59fb86d5c16310d55330a2a566049a20d89eacf6bd47467e90b7f90df722abef47b7abf1a8cb9ba1421ff71c08c2ee66a9877d477b76a36e91f1556ab305bfcb0fc5c5a034df2306070d953873853f9d834605f845effa6c8dc8bc461f893faf97699920aec6dadcd097031158313bc6be4c4b2f1577b7bfdafbab11774b0fe4a42c3ceff60172188a78970d855f7adf0a36953820995b1186f5f4e7b7276e835b34068ca10915edc5344e541eacb7cebc8723f0930e6042b5acd53c17418462166e64b0fe2978f3fcd9f7b98152af9460e03bda6135d1739aeec308a85ce488bef6bacc15f4008eab811225069", + "1142d072f4cd806ab6862e351ea6ff006a" + }, + { /* i=8249 cDividendBits=1019 cDivisorBits=582 */ + "04531ed843a8b5b3dba293e5c531645c235636162f085dc3b3a8f558d6c53c39390476251cc7a0f4bb6e289a4928015413ad0923f51d34c36e2f2e221a8f8e9e1c8acea7b24b6613d1b1a4a89ed1a8a8688bc1765ae265bcb414f31e9783068b7b45b14291dc8bfa561fca5d9e8f570b7a55505871b275b096e730730ba610d4", + "2fb193466cdee7ed862d0e34b22ded632b471a8027a1d3c642c932fa91b9df352e2f533edfea687d5215d6b4860a27004d71e29ca8ce99e09d986079b735e6a566d9cdabe3581cab41", + "173691c2cc296b6adc7546f0619e00bfd5904933d84587cd5b4122ea76fa7b0099f997b210f8bb6ab8a3639c53bb5166c4e25966961966", + "2a2db71e19b33ce76fb450fb6bbd1802ca733f79c8f66d945c9e249e5c609fd73fe2ea306de3f4da6e98405924e87081b3034a339acee09b7e4e9155f61ef1efde77ef87a1e56a7bee" + }, + { /* i=8250 cDividendBits=2264 cDivisorBits=260 */ + "5962da6fecb61e8dd2290effbd911c5888c2edab77f0faac6af364495395c9f7ef7f7113ea444d2ae0696274667d0a3a83e7dea42155216d2b86c71581707a528e4d978413a9e40b9b98de1bb2c56430b29340024e323aea4f35182418a84b7c9dd1761debe7d95617d25e7f1ad7f4a988a191aadeaf9a880161c3e486d1e5f4e0e92f0dd884468e2eb2effb7a9b4c35def6a3f70aca7fc949c7b8cf14949597d2a0eb47a4d41ebbf848d66e1ff3c59dcc4e4416136e1eeb493f7b1f02733e98891e03bd877aef26babf89d0b346e3b974d13f90c6ec606ad299c285224c29ca698e47f1fc1990b34f686d83c88bcdf51ee79e91cf2c8661794df4bcfe40c60ae0e66fab7bd8146e0d00f6f5e493f03aa701b4308a4486ffb9a51d", + "08504bf4902f40f5f76dea898fcce31efd37dc9c193174399dd9a95b7725308a3f", + "0ac070d1029cd3a825c4e10ed7a312af119ee2eb79cda9a06e8c42a35cd6c47391fab53b47537d791a7eb98540eda2b9cb8566c974c863e208cbfdac5341baacaa05af8a178ea35d20747d62a850b8173c384595aaaf75cf730fc7a4efa80ef3da578d6b96bb25bc4c89e8391bd623b19d4f288938c0f7525e2cb41d75fda90c276b639d62a015a39e3c657bc2326f5d5be8948d440ee80c7fc56992a450dc2e170b7cd64ff24140559a2bab09ad86dfcf1afbe468cb02273bb8c706fdba18042c22c373f8f94b9e7026e98c3869e41f77f1e77eabe305e2ef5f2461edc12cdb7359d5f30be10d21aea626fff6021e6ba7a3bba8306fc76f0f3946", + "05dfa4c75002faba545f3916e12c56ee7da29ae4d873c93be8b945b8e89afad0e3" + }, + { /* i=8251 cDividendBits=2348 cDivisorBits=1624 */ + "0fb46420cef244fa2ed73ce27aa0d044eaaed691e21007f54d45b2a56e3dc6f20dd98c8c4d166e447ddf677077efbbfdd49e1c8ae03d0031859ce434fbdd1d1fdab27b21cd9104481f2d80feb59a712b5db6dcb5278acfe7f18afc4a4f4768d011ecd260e437b8f7bcec55e8df2de1e9146915cb1a81f54b4e7b2b008b65283331ed5c2bd5cacbcc52e00b50ffa2567a1792ffbf5ff22d43ac5f2f6fc430a05909e4688c2670d779be3d5a5525cfa99a0e5cf72c690123438c39adabed1b671824318e98d96dac06f1d78087786fd12ea8e57f31a97f2e7051fe8f8370aed833a32ee049afc7922ba1ff25dac8857cafcfb8bc8f1cfe1666d87ad450442cd88e2b8751f9b5bc4518ae6e3617a7dbcb3a7f82c45b4866cc73af0bc27729c5db49b02bde90b5e6", + "2655765e8d875a115ee13f379974c16259e92ddc0b433de630d1d66410dc99ebb5291a88bc01aa5c451a9a541c3940c9637a47c4f6c11a707d09bfb300993b909002d4f4ba67e0c82ca2561badf1d1da03688de6f31f7831eb02aafde682d376b54bddf1d03e5893a360396cc0e34fdcdb650bf17af999f0a08f1044d91458baee13b312dd7b6bf82d63221a8504cea6b1e23b304e66dbfac608e53b4b048d13d0bd4afcf5eb77589068eec522407b8849c7dec67d133e061a5f2c1cb227542ecb7c086c6ae6cee379984c", + "68e0de1f7654f8395b17e8fcdfce74f49b74625c2388cb06848945857aa55ed16c43f3626cefc3d4e69404e85f824085b69e81edb09ab61dc140a383a44d6497fc7a112268ee0065cf00ac83c194b68fbaf7a120ee309e23b0778f", + "0e8ab647292d726da7a2cd68eaf44d3294c1f48d269af245460c7eaec158072d003983655c7754e00575d6340a666e7450d593a22f13acecba6e233f1cdb4e4a2ca7efe821adab11d38b4680af2ab551a7a81dbc99f49140a562fab3a2ec828752a2d16721c61d805569a067175b7a1652b079d52345373ae13e37e2830b6053babedee0191719c29308278a4dd3577d5a39cfc3181b3b8021f4f0496b9cb5889f3b99caa36ee5f0f093a21bcd8dc0a38b30c2fe6868bc21672c63b10e1f9cb8ddc7665ab0548a2f994f72" + }, + { /* i=8252 cDividendBits=2972 cDivisorBits=1124 */ + "0a6788739a427303fd171b48db42681566afb129bf4f606e7f5a258ff252f8090e8b912362a741da7b140110f4bcc66dca1583f9729ee363fde7d96396c671f4a2d65ca8804ff4cfb691f92087d9a5cc16952523ccbd7698e8a540cea8b69761af5a1dc8138fd8b59a31045ca17df36f64cdcb62b6cc9257b82eb409312c1513ecb13ab9676e80d8553fe822cef32dc154a83fe55198698f651a0c4c35ad7ed5c97271737c360c3df6e5e482458c8b34f2bc8c61952a8a64fa28379117ea59a0860ea9843c1482d06a58c8fe591e7a9e6c19e0344929a5f2d863425b0221edde0d752fef786b6ed03b0d31671adc640d1888861d3f08e0a5bc849f857c23997f76c7cdf8c77671743a9cacf7cb3722facc7067b025a92e0d2dfc7c79971e243364df80a324d01abacb62a850929f4e83dbd23294918127cc972c1d498543fc968772a29523424a535a803c13fb1fad3121da8e935f16e5416387021f929f18100455fcd8a1e54d0371f53c1a31d8fde560653354", + "0663067e25ceb6fc80467a9da6c6661070c7c6915724bf7898769e2174912e476dcac6e3767516f06fb57def1c4cf37026d72cc6ab9d807f9e739a6c16ab150196e513c76aed9f697ce5d9995a45556fae87f332cac000afa4a9234f45579e08bf9b6a58094efbdceaf71b4d2fdb2663fd02b9a3cd356f728193381ecb7c8b5aefc93fd70ce877710af1df3b75", + "01a10937e12080d6e94ca8f1bad4b49124755e24d47fc660643923e2581d645f513d3d25aa98ad9946a5e148adfb5b8dbe0bfcd8fca3e16ecef18dbecda898783259a4049de7f84dcd7608474eca14fc90c91d716f507d170497d4e43a6d8c03085a76550611a4f0e537e1baaae384e391b35bea54f193e911e2cc5c307ce25611f855456f0c97b98d7f01dceb9aa98ed234ede729b1c2eec54e3992a389334e80501f81092c21a5248acd9a37371e0f1e7f3c92e7a7c2f87da39c89656fe00cda4aeaa92f07184d944bec32d2b6a6efe10fb816b06bc077e232943a9833b60d058c0ca1fc01c83c", + "016514c77ff0eff0f1e801eaa70e12b8cb35382302a3d46b485e14f676016e32aab7cca3a160be34b8c00502452856e3d03e279c2a3c0c53a9df8f92a055b84839dc6bd8057de551160f5f7612fe02051eca576c57296e3cf9be43ac76217f2f79eb69966bac57e77a9c3d371b1ab9cdf07884c17a32b3d2853fb16dd1434b594fb90fd350cd3d6162e22adbe8" + }, + { /* i=8253 cDividendBits=1617 cDivisorBits=1122 */ + "1fdde04ff196ab68acca4e10cab2056b9ea68e5a0be688fdbd060d6ce64cea1cf5ee85ede9c70bd5cacb340709d46604da81c05f3292cf2648c25987843b5a77d5a9aadeaaaca5bce9bb2c2994084ebd09e64397218494ea929df76809ec6fb4402898c2cc748beb6242bb7ce88ae30d91689fe2cc7f6a6e620123fb56b6a68c6b25189a8afa1a96c137d9b4103551b8556832b925b26d2944325aa42c7c19700afa226f6ae10da96306b015cf6c5ad844592c4052aa84d070bfa2dccb2e931d1740dc4ffdb8402e8e8b", + "f49d2bf12f2fe7ea845683ec94d0797c6fcec7f252d53843fdedd1c1485118b1846a8ff06f50347b95143c8157d6c256fd580f7806b055e68bfee4aff74e3bbbd2f4351762df8efdc84a506a8e47675ccd0f218c55bed66e6d0133910031c25cb71561fb7077af4b84c201b8ee3e8d1635c4bf3c237ac6f426f44995a3a7d00aac743fd93e8c764b29ce5bf5", + "215999d94eaa62da0d610e0442c7dcd3fb3d90a536250e44677fa44d6856ed08a282e08f7e7766b6a184ebe259ab283f1ee6b5d00703b8163dc9b501ed37", + "7f7fc82ea4389e7d0f2d7cec86de11899a51bd5183cdddc2b5fcc2580963bd2c2f1868fc14132260607e8c071f4829eb81171061310d9d050050d911dcfa4861d69471205f09b3ff09f22827fc1f134a4d5275c4e1c2eca0cb16d55b8ec016c427c951e93974a86aebbd7539c296137ba18807ca22d96112efae81bc8a247b3e36fb37cfc9c758aea4c1fbe8" + }, + { /* i=8254 cDividendBits=1033 cDivisorBits=740 */ + "01c9a557c83445e4e56926ce4185475fb289de0af5adf89cf213526ebc0993b2c2f822f002df258a3ecd8d3b327ee97959e548db615a5fde7192edaf45adbd20f6b81fc894fcfa5effba505bd9becd86b495ccb3c8ac67a82c8f9f51c325c572bce7c98b3db5041b6e6b62f2fd1d975b6110b6089cff8ae47563f1d4905d4c68de26", + "0cd5375c1369da698d2c9235b164d0a1608323108a19a06c7845223e908f593f1af363e31c2e64641fac2d65ccfe2c6f0615caf75f2f68f2d5ee9433989e900bc017576bd1bcf0a1ff9e83faf3803eb6e2fd65eefa96219f37fca66a16", + "23a9780e0319e65ace5aa42ab3a264c65f4d2429a6fb7aa4ea692d96a3ecdda7cfc9d36d3a", + "01ff7f220faaf9f73941fcb572f4f53df636fc17e17b819e9f9b1a4fc28242e33d256d32a2d334dc59aa1bfe874d8ae11a733efea258ec054be9c24068dac66eb9bc8845c28f116b0e4bf6c4815e226c1a9259416ab6259edc7d67772a" + }, + { /* i=8255 cDividendBits=1529 cDivisorBits=300 */ + "88eacaa08c5707ca5983e9737279f454280da9963d320b995e25846dcb5e60e9ed1c7e9a59f6a9ce08c9c34412168a07c8fd4226d76b80e817545a6f997d67c3269ef7b4f3ad4902885c0eb66c4fab91ecbe172641d38a4a3761bcd3a2922968a7d1e00be1ec0292ddf6836bbf6cfea07c4937b6c571a755959d9c1e4a120d880e6f5a7036442611ef429b28b3536c2f2797d4259ad1bfdb25cd7b3b300524b286fa13734fc3a546b79b04693628585e323b0f70e26d63f7aabf331706a6a5", + "0d64386b32b30778f0896cc5b8df7bcf7754ad652bb339e4836483dfcc6e3f615b7c8d21795e", + "0a3964cd1ae21393e9a9453b5d980ef8ecb9a5a3c8515450b72f2aca5233c4a2b506733dedc9bf753b67e112e6558cd5dacdf6fe947dd877387fd8d84fa0050114247b7da54216f5d12db1fd7c0e65540dc9164fea5412e1a19da42ef74367fa064d18c2ac94f864a6ed4ff20ec331ab2dc7062c993342f631f0f896aea77264b00d96cf637d64ab403593383c2f27b9a3d87ed4f924c55a8946", + "01eee4058701dd01100019bf9eee7eed87243a89767716b6a550d005b6245918343b94e028f1" + }, + { /* i=8256 cDividendBits=2905 cDivisorBits=369 */ + "c0fbd83135b80ff70fd68a14afeb5050c565676d9f2e47d3270a2068653dd58402b6754a4f0bc218b78fdb59452f0be310c01666944c280cf918e431c66018dc75a362612abf8b6193ebb550ed2bfdab1c977740ec96f1f01ab46a1cde45f5e1448fbc1fd2d226580e558381e9600128bde1296ad74b7392fdcfb554d2d7c5c51510244d4b36101aa892ca5d36408faed10adb78e760e8b80eea5a15a4805c52c7ab96526f54d577317c7060b4c931060889f1496919304f6af484c0ef14df7e9f6afdd9059fa21ecc2c3ad15cbeee44c00e29d238adc330235e96e865f900289fc0f61dfd5137fa434b9c6143635010372485b72260a0f9dcd324e00c5a7e958d657f34df395fa3543182fe2a8d82e7bef8e1258b23552113a6d1ef9622aa6c4a61631fbfe812c30df786685ca89482a4fadf3c041cfb615ccf56cb8a0dec76d377579238fc3c78c402898c55ad5644f3131cede541b74c7c783e79c9510b1e43bac16cb1b94d1639aad8", + "012549520520e8a81e845538ec916c58ca41b16db4a754c68c4841a18a552e2d7fc6e6fe9854398e911661c5a3c407", + "a872fb234a8a2a9f968f2f583f4398e59f2daaacc16470f738f116574dcf1f8dd56090709e0b7094865c9ddb977bff52902b7fe990e4e269c2c61524b7e1c8bba5949dd9f15303c178db393dd388fce8e380ba36dd45ec78e3c54a0ecb6cba5758f5dd14633cf47348de604f4284993d2eedc7b76aae0e20eac531ba8588a8436fa9eb41dfc41f5d000b536a43d7f96dd5abac8bdf65ca86f95cb39bd185fe624872455f552d7c9383a37a7a31fc66d13e8c0b1c21a278e8b7987d066afddc9beaaa48ee928a6d01014e9e6b25329e37dcff309899842c5d7eba120a346fd3f92776320fa6a565e33a3e4368fcef76f42a462a261a39181cedcf18aad6f2227538936f401680f43e3babc50d65b18e7bea40d106358754faafa4ebc1624ac2c016adca2566a3bb5c4d0e595d513c82283ad82d9a46048dda0fcba090ca", + "0113924504ead7eb92cac58f2db78f2ea1c277da340dcf70ad733b18e0c2d50be06c22943bf182af693bc5f35d0d52" + }, + { /* i=8257 cDividendBits=3494 cDivisorBits=2460 */ + "2569012cc382c4b151789d69f5127def0746a8462f41c9955e7886cace385e910788c4838daa2f5ecd7bbe82a37dc574797e9ea61c67e9d95630314b0f20d5f994699c2148ca05170bd7b817807736198550e4840b53d023aa0997878558d7104ba550256805496944151fabe1ce830349c5a92c9e294eb26fb7dc93daebe035f80db598d127f8d41b5faef7c1d9bc6393262bac68e14e9b7d70de400200cc14f3911ecf8b205859c48af961aec3c6a51b1590b23c9a252497e794d03f9220e9f75740ff6764d5f50dacc62ab62a2795e421cffebf07faf19c2da8d90f434d0c82b7f22f97751b4677a13a4b523291429f2e9b5b9b6f10a8de224764ab5932b403d727a362986e5ccf661e395f69183255c5017a545a413535a00973565efce1ea2de8707f49491ab9fe68dc97398cadddddfb381e511a2053c05ec83d789a9c727d8205755731e52c13ebb77ff168a67ea6508462d2a04976265fe34b1171220b624f0df5309c59b7429640a7e562af2f04b58829a4475c418ffa7edf444a87400b09d6ab5adcf64a191dc97e95eff456dfea588b5295fc07c1113eca68592417a88b84f9d542390fe7a175feb00994b945fd2326", + "0e06b1f641135bf989c64a0ac410648e3c67f3a02ee5c89dc7301ba426e30a062543de4c738c2f401ecc3d28e07c13fa0bb2299e28bdd74fc2ce3149534a6383d093fcbd55dacc13ddae3f9be0d743dafc9318cf478c742965753401eca8f54c04d0ce9b14be41017778a4923d52aaebebddcbc6f9677b301f061e86aec4181574f355f9bb68de73761f45a0bb4fc629426c38d81f600ff0ecd62348725e6281c2655e80d2fb4af2147b31ee489bf513bffa67786b3929db76ee8ba2da0112d65ea75415416954eab2c3a1c634caa13472fb39787ad7ece885cec5eac314e1d5effe655f881d88611d5a535d5df79bed768bce61d768ba9da2d78e09b0d6ecb1461627d95661b8291f2291991b4fc52fd568829a9d4e44faaf10806dd8222186e3b0992d770ae5b28c74f65915e7b5ae9f6a5efd", + "02aacbd6b6bce08526958ccd86f840d74f23fcf7733811c70e209b4417a7fed1edde5bb6f07929d82f62217278b2b447d011dac98036ff3874cc879dcd252abd60d4214b1f5a5d5724bed056da3de26b12bb771773858998e7f41cc6e482ed373f319a54f7c7d0510dc37dd0a4d740cbcd7d6f0ce1add64ec6140986daf5fdaedee8", + "0cd04836d451428a9875381d6cf001c2c51673ca11a39ae7e38c845dfbb925023533c8901b6cc10345f1bccf1d3ea3c8e31ef22f54270f67e5a2bcbf436cb8210010038ca319da92aab3632ce16d24f544566096941cb05a33189c5262e9747381b7867f9722c12c7f2bb32da2de370b0138617f4b52ccc547d2bab6c75fb37cec2bbaca62b2b8eabfd8c0ac10411530d788d93a087199d0edb7ad5701dfb89d161bf074ded64dbcc70bc54bc2afb178609a3a410166a6deedae9fcc46369087045a7c4d1b242acb5c318a28cabf88b5b92004c263e439948dcfd09e19d7fcf936d50db3b99ba3a4a4896d3706554bc66dd253c9376dea800e3cc211e2d49158fc072742a3ae4259137562111b7c8ae19f156e966e808d4a73649ecf33f334942a5dbe8f3196a12e077735911324abecf641a7de" + }, + { /* i=8258 cDividendBits=3382 cDivisorBits=3312 */ + "0e60af949371a52f88792ddd249f9050e652c0a0447e412c68bd5fa450f5b0455b3226c8287a452c151356dc5a704eefc983c530892e37db9c1a25784bcf33e92e6b3bbc5e90099d8e74bf13b203a67853439a25ee110ba83d931ac6832628788ec050abd041d6337870bc1aef6c7a5ce3d28f248c6d7138309cd5ff6ce6c4002e9318d88ea30cbd1b32812fa509f9a03303abea787d399845fb4360aa2922046888617fa6cd773096a2e7b996e4200e6f1926608646978c3ad2d2505cce369a82858998122ca743d16a1e4ec3ef1d4d3380e25e7df71d0fbfca5b27335d1444b4ecd4899cfa6720f0bfa28e23857a7ae2fbadb793d6340bba1c3263d2f25af5cff5a70a0b4cf4648042f7e50b805e57c8135cc49f15ffb26942139d0b9e679d7b8120b119012cecada1673d3ecaa92cfab500c4d21204b70e9d615c5dbe2309e5d7e47ebde33ab8fe7b0070dca458edcac6c187f9d2ed6999f19d04f6a99b7e3215b882348dd719cd176d24e3cbd86ca1910bdeedf7841130df476b8e6f3b273904ecfe1e987a4c5f204d4745708c105a7a5b783b1ce927366e6673066c5b57e246aa2a7512cb", + "8869669818759d4238953b59dbdf942c927ac8a8f05f841c474e9a7fa4beb7ebe1900eefe93ac1490a505a4734c9cecaebf081b70450d9a5471c45ca4def9f1fbc322e523575c391b54672a1be4d345e605bb0c48bfd2e45b8e911821d8f20e4d0686835c91a18f997842b0bf4232556ad9b979afc20cff652b88a337b97c8541e125d67858fb00031701ff7d73e34b91ecad7649e90143c308b953911c4681e8870cadc3ed6fb541eda7357d062a9379b4022b6c981791efabe4d548959aef9cfe27ecefed6720ea1b429a63ae88343e9a853c8ad9f4e78f53bc9c2f1aa9662304f74409d0138fb4ae00508ec74f019ff97f30ffdfdb63b6237074d584435bdaed26c42618147f8c1aee8691701c57ed1ea69eab541d726dcfc11c6d3157a248ecef35cf40c41c2b38e1d4ea1653dbc89d5ef2293d09817dc9c0836aa377a4ba0e12e9d6fd196cb81af392d3d8be861f810ffba78c88d65ff16d0c4cb69ccf658242f67d93cdfd714b7a60a9c2f43130d8538619d176250f231be79888683a074cbdb54447d844b8103e6eb3cf7a1a68a24ff728020b6d3632661a2d451", + "1afb70427b70c261a0", + "70cf63df90eda1886f7d82bdb17ec1e1cf318caa0bf7abf9f2a3f170b5469473cd82024ba232ca5d45799c4f3c38eec6bb3d4eb2fa021c9ccc0eb0b4ee3366c4de8163deb4a0c98d12a2b9bcb3b03f2ebe9491fffcb67963ac2e7b73b6f449d6bd192f308080b604e15221bde3810241f6658308b6305b9d02954f9627a314bcf165150a26ce431bd23b69c65d804cbe80b3f20d71b16137bbc76f664e21c08a59d1f84d06d60085561bf67b174bcc8a2fbeb078431725e666d2889bde52fe819c787d2a3da32aa7e44ca29b26ae75735c2930d0e885ef96c06d633386c85fbf69e3d2841c61b107550d48f09f26ab463a2468a79f22a8df1cdeebe6faf28975f34e15a1ff612ffa1267772eb917786d8ce54b1a04c70fd8adfcac2a04eb9c398c20f2e262378f6083f67118a67d31b8eb2af5ebec022b8c9e7c398240827b0af7cff4c3ecfbcc0da66cb98dd530d8249313da6103b897e789af2e57ee97056df316ebb5054efcccefdba3d71b8f804a0770bc18ec5ce60a3cd9b9e92493f6f3879fb31bee0ecfce47c335d1de9230e71636bbf374d1dafca47b1cdbaf2b" + }, + { /* i=8259 cDividendBits=346 cDivisorBits=304 */ + "0283796e76abd0b7be53e26eea4e163553ee05a3e689f9f2f420e925ffc4b39471248ee8040d73225b9569be", + "21582bfbb399c4df343d81f8fd1edc60cbf35b9e86b5524395d0c84d24b8db6aa5d784388b6f", + "134c3d59f1b6", + "1b106dcbbcd2f16217ba9082b9f03e39ce8a1ac9c4c0ddbe00d98c3580892a8a959b3387c9d4" + }, + { /* i=8260 cDividendBits=3478 cDivisorBits=1575 */ + "2380fb82a7674eed556c4364b4f7ea6d3679c8ba5b1323420830e062ac9beac1b5c7fc1d3c242f23cb5c058bd0db5cb2bd4bb43463837164abcfa790111c7681c067fcdd126c05ea297780f626695fe0f0844a206ac862b969f86a48a745e64eb0ca1c1df80fddea8691df0717a9af816c9269b2e7013abd245b820fb0d47d565f63e3d62d18ce7885216e4aab79fad6ca80b7672060bb64f90b09edfa7b36b4f77d69cd73aa67cd4df6cfc619229d3135f37ba701bd3dcc51cf5c844aac3df2f0defa54c7774ec942b0fb5e09b08e5e47eccb21b1cf6202d84f58a31de844bb5404eb65d569b0586ccdae4505918e9b2147dc2cfd08fc930024c41f6c4919c9d59dbbaae78e6222023197eaefdecbfbbe8131769c591b05034c99ccd1f84c8378013c8f5f1e6ed4871b15219372e136ab78eee627e4acf0178963f795329fb50c6a6d224dd6946951cc2d2a09abc5aee5640a0a4aeafb9ed77b37c79ac4693e5061d795ef4255a4f5f1acc0ecebcbc906b42aa11f060b320d41f418ab15fbff55e27c23004b52a864fe9197c2ce5d6ff90db7c6d58a6b369b449783dd850b642e3d289cbc3127694999eb7c4c80e49451437b", + "6265ad9c02b2023f9843107bd5ecaaf494c00637f83d01f1735adc21655eb90a8b4b4efd851fd7df3cfba05cb6c9af5cb73244ef9c69ae35675a6ab89cf20a818b0ada76c11cb536ba4621ae368a5b893b9a9ef771a43fe3029fc8a5326d6803d7731e9a4fb35297da50442fa9b77847fa58beb8e9d6a7d851ff33186f1b6072bce7369654f05c99e8b3660c75b2c9b85a60a188b50110c60e2b7ac824b188b4b2150940e06ab52f5107875dcde2ba846b8abacaa8a262419e82d55b2a1edcac5743d169f7", + "5c5ecf9351a7622b440be172947c73697ef177249b39c0f3ee3d426b5b8da752dc3aa84efb24cbfdc331a4194adcccb701d432623e2e15ddbb339c05ff6007bc1a3c226569902df91775630a3010200e6906b07197b89c6e6f9fe3bd1b27ba81c67afb5e41b5cdc03b8a0ae14156fe638142ce146896b52bdb837099241577eda142f508c55635e584b02c57a4c49cc7d695098dadd175c4e79db6724ab620d733f40dcf2f781f059c807651bf0fb711f73eea17cd71800966f82b169708ae9809daea312b282e0a5e7550c63e90e6564ccfd7f930adb8f3fe153b521113174f907cdf31694949891b0c34813129", + "3a194317aa7f1d0894a522773468c11e2679a45d10142250bedfedc30199ffb6322e6459fc0eee314d9e27e772f8b5ab65d690b9c3ef9d133b8c3f5def306e2a8aabfeec86930cca6d846b95b5bdefc8f6607a06a90e347aab2791ad849e5aa9ab87491064a0534dccec09afdcd17f0fee6192baa1229dc2ff9bae52a7960750ad9f3ed2ecf05155227eba18cedada26216f6405cd07c1380106bcc5bf48cf27b280ebe35b008f1c30b842aff6ecc88473e32016e64060517f9e28bf19540b784f110803ec" + }, + { /* i=8261 cDividendBits=838 cDivisorBits=314 */ + "353b8bc00a5e059a1f36e08a8a65200842aeae92c91f319398c0b19da929ccdc0df3836df1d7a4ea00031e00620f42faf7ea9a1f43039b2494905fa5542bc3c6d2b5fb1a0d94a52ad03d11a79ea1a57b44f42da6e381507da5751beed3a752ae1a48f8f307d166d813", + "029e6e153415c2623dfd808833c0c43b3ed19ff0c705c01e5541d725a75d890ee15f61d2e006b1a6", + "14539a6b4027bc9ef6b3912ad6cfd833bcb99baa6f1cb77de3ef92c710751770506d65f04a4214e864f5ee1eb4be4c299ab43b2fc0e5eb118a696b91100189d13c48", + "d3d0c32ec6777c834a15ff1dd3f5c9160782363ffa8f19ae17aff9bd0a01eb880477085f5bf963" + }, + { /* i=8262 cDividendBits=1555 cDivisorBits=319 */ + "04acd781c7ac82dcd21f95bfa683ffeb20ee4773c01317fa89de0a5242ddf4bcd1a9c2f4a90d6b56086d2f4d0e7c508aa0f63bc53a1f2b3c7fef8e40d8b11a16e96b9ea3bd93a20337f6f3e5da1ba5aff89539edb6df307fff6b57e3d56b9b3dc1b95d279b559f1b3962fd174ae35aa20f2eee1d54efd84c62670539483b99ce395de9669dec2dd1ed67c5d7caef7e607414fd8aea7fa63c2dab4f8abf6b464048ab250c7d493fd8aa8e1905af62c17191ca80d5fdbd88769b9aae2c4be003ecb7a142", + "1afa00ba1ca3a951c8df53d6691482e18c805acdec79573fc58f1bc10e196337b65519e3dd69432d", + "2c5db022a5796ae4ddaa6d21596519d7d1fb3a53cea7aa9e7048e34d3963a9c2077c0e891ce13582c9b233c23f1a660a1a88b424d3621a1ec599df6ccf411fc07620bafcafb7e448e360876d0bc7fa11a55250a4d3d4fc909aaab5c77a4baff97c16edc7da95c2f60325d997adcb413e2180d151e4677b4f8497bd9b915500d7032500bfcb05cc8dda2ecac2a64b0f8256621114ae2d41ac5b0cc8", + "11a3dc2d4c85c78850e14008e22f2473d17ad8fcea349f46cf37794c7ca875678ab792a3e6560a1a" + }, + { /* i=8263 cDividendBits=4055 cDivisorBits=614 */ + "529eeee92fc37f52f8bfbcca3d6c1c2cd09ad43b795f3d1a9dee14e0b8e722b4d3faa74d8e7818bf5116c3359ba49c4a630863463506d7ebae59e9bd2debc07e8b34a1ee8aa8e2a5a0680695e5a625e88928ba6aa6207f5810423574a80dce825c17478e4597aae1aec12c81a238de5893866a068a0e552d7b1ff802d018cfcacc232abd9dd3f8ddc93701552c1f44203a765de7f73769a09e6ffa7ff08e86e5ab1b1cefd6ac846fb8c32ee8aa7b2b09c1a59b60db43c3cd10c257d52222dd74e23c4ecb162e92bb22237ea1ca158e2e2db26e2a7c2ca6fe76a51dcd032d582f57cbf38687f4e54041ab25d5a8d8f1845b3fd66f38c0de88ff1462362e11ca7d8ceaf7a11d09e2382281083f778262f419279d6105d5a15ce6bb01b225ec2c7ecdf7556d151c09bb202f0f3840b06c2181f8886ddeeda131570a6fbf0285b454af7dc0f08031ab6344bfe38ce0769095072278861f5ae9ed4c8d5786eda279fd476ddf3fe2cae6469088c7d2956512597dcaf0d8399dc31350a5561eedbbcbff205d7bd4ffedc1015fef8521fb10bafc3bc4b7d70b308f5b448bf30fb968f1efddee1f4d7610749535fa5a7910f559e9e68ae6ec1fd97fdbde22ba9529a3efb1a5cc300945ebc7c0a26c0ab79866a2d8e857eaa895555b54387a27f8ad82c1007822801fd285cf2e5691d52de995297b6d61db497e7b7dd1d9f32c", + "390de89fc11c8d657951e5c033bdbdccc1fe3023f19c85f2de28403853d699264148585ba2fe37e2684ff4e6581b4dc135a382917e95f6f1738f496db730009f21a473bb2bafe10e01256518b3", + "0172b734bd3e8969e4bc76be1bcbdafa07a682fb0e36db6943da8b60eb9a2b619ea2e55c930d7a07164bb1c783a48a16d1ba17f605116d53da942b02e71e69b13ab99a21441ef1b85594df9d1b00e2cb7701249bdb5a25a13d828f5f0b51e526f97e9db284bff98e9f2a11a0bf7e9078804f1249bafad19aba0131c8af6540ff5f790f55bf3006d925606ba786f81db4062d363dbf681bc9add12f47c0a5675314b59789dff1e10b6bf3ee2c3d4674e854a63ae6ddd8283614fb3445fe653434e9b4c2ef81cb12aa52ffa5b8357a808fd17b238c300be254a762540eb8764c8d626232b9c17643383951b88a7d3d3a6e5ce151bd166ae9562089ebe77ec53803f3ef73c12d8357bc0de3e0d927c09e415ef2ebfb4146b91ce9d2eac5eba728e5501826420cbe3fb7417109277c8860c094d84d6f315a2f4a33c93b30e827d9e90cc1916714798f9c84a6e97d159cf57108a465e911544c5e7befbb1995ae5cc63fde20b3aa3604e3c63986003ab40df40b069e9d23e9026d1b1ce32d35e3df287d146b1f2a494d38073d894d241d1deacc542b17239a17a5305c6818d5d5ebdb80c00af39ff7bb6c7b9e9b75077d2e", + "018d4cd8067863d1acb0c6d0baf9fce4fa2f9e6df9c464f9834207135838a6917b70d37d5f4816965467ecdc81f62fb00d6cbe236382106ab9d522ed880026b1eca093330d77a2bf9840bb1c02" + }, + { /* i=8264 cDividendBits=725 cDivisorBits=11 */ + "1c077cc324c8da2440ca4b243744908d6c5bb2f0589717bcfeb9ee7025a50c1202359c817213b6c6ab35df975a48582158128e6d3527b662fe59933376237835c63f01f532be8b8b02e43df81b42907a247d2afccdd8abf6f16bbe", + "04b8", + "05f0a2119eaecd97c9ea72415138ea13cc5e07677d94fff1ccde80844502c3d458a08dab89c3c1031bce623e975f036b17c01e2ee0e16c2952b920e3e990d75b13f9021c3a395584e0669eef11a4fe67df0b44729b846179d79c", + "039e" + }, + { /* i=8265 cDividendBits=3626 cDivisorBits=2943 */ + "019b774f17635f8865092adb58c124f300d7f346e62c5881b9a056c4e16d78518fa6c65c285354682a2683ae7c23e7a7c8107e49f8c27675d3feddecfb2f91594c72dab339bb84d087a72452e43d060e19460580fcefb60b6b374280b2d3fb1767e7c7be7960aab96f9741c5ea0c5542de26fcb1a50c832f1175c1b37b994e3195dc25322e916576841e9559841ee0d95ff34323f0889ca883e870b0204d8ac40e9e0ce3339f1eb49dd815dfdeccd49457ebf3a97909aa3913ea7a05923b59e19430450c08e1585dbfcea9d67ba1a7a909e002b45c3d68a20e30c898a9229455ccd04a62fdb84c14a0d8e461c57a1f2f3a52b7200fab8054dc8fe6da149713051de74a0cb2036b860cc6395b4f82a84d6b45610cb82566a32e6f210c25b388f58601d012a7aacf36697b17d2a998350e735aa1b67c0b2b15958be9e4371d852f6ff7838b72de274a385eda5b359210884ec764bc80ced9fa34440ad2561bb46adea7b063659be94223eaaa5699b2bca1edbadfb1c4702e25984d34eab11f7021d21de52b5fbfa2f5d60b256c961bd68d390bd3c90cdc11c430b72701246ee376c2b26869f5d963129e7bb999dbec4a14ba5522b5d3b3df8a07903efdd7b3a5507fe4ac831bb6", + "1249e88a7df6db8a2a708e3ad5d5f518159f38511fdd13cc9dc54e6495b536507846806dcc96c1fe1d0f05bf01615e924b1ffc16ddfc0348f2edf48044e3cff5c47b4e92bf1137e3c1b9b26b3dd41142f1c4ae3df4107bad9d234460a59c47c458a6744335063f48fe413765818bbd4d244e3b917aaa6e7f84fa49268f5be46dc69b0be7b689f5ae077a1e3f49da298a0ab6f7d61625b0505df02645d2bf869de535b1c5bd183be188ec7a8a432bdbbb299635670fda077d283c31e169b79d43f4ccc0068f0643f963b2a0d83ca894034aa8f58b4ec27160a14333b84b2c90c3cb7c5de02dcb3eb7afc1fb6f13d470fe978c69a4ffd4699f41769b41c58f6bb41d29377a893cb426f8689feb9d81ecb00ed4598802e1837d12281c33d059674fb894f06ccc1c22b9494d3df2fe26b30a4cee09eee4b4c9759e5d4e05a62225f05e6acfa131de65694281f5b3532246e7e625c217fe403a75128be85b81df3068310aa5ea1133c442be35343738213174", + "167f953556ef3950ca9d0fd911381682ed909ed544c36de9c97a4b7c8d4df9ec6fc455d2169f57ce7b7239ebe148df748c2596a12f76d8a241de54ceaf2c9be4a646cd7226f7ae414f4926d061599202456db2e46f71", + "0cb96645330c45ac141c262c77d581937926023b2ea5e5d853c1eee9d2fd838cf730043e323c5feee70fd994180403a648060c771a2adf361eb36dabc974b644d3bd562012810b45928791d979db681fc3427b661d50c7f572ae3dd93d494da204854d577e35c31fb77552beb7960b0c5608e0e5ec3072d0030558e5ad1f45805e5f25ab7175e65b97ddfc8e53fff5aa6ac3ca261ed8c9cd9ac059659dd1e07ceaa023a0c48a96b433283a281629671af141e44bed01f099c0d4d71ca7c6dfe3865ace73b656f6d35779cb9f5de582c8ef2d55aaf1d27a014aa66c8e75379823ba3c236f4343c1c7c4c27bb9416ec8047f8246be07378f748b638df6d6be449da6f0d848205157cf4a4050b6668264baa0476551f86a34dbcff3fba0d8c5c08f319ffc7b808a6a49d42c3fd2b10a3369076d64e179980955d00cb540714016cae8305893d9bd52b81cbad3894d27549c1272b0e4ccfd38f7ddfb8a61881d2cafa8e0197c49a63ea5549d1dd7ce1afb82" + }, + { /* i=8266 cDividendBits=1102 cDivisorBits=69 */ + "28227a5f5ad98fbaae75de8c03a78be8735d2f059db291010fa5b31515f4a9940226002157a5c43f3d64593467aac1f1979b873410308a304baf54e5f4cae3438196a43ff80c634fb2bd06f91d637867d30c17210fe79cb6f5819c5a2852096463decd769900b45b2e8f1d9f7f003625cb590fbee290c86b3d084fd518cb68a22d8f9059b70e27b55d83", + "0ddc336906bfbcf542", + "02e54bb9a937e5e4a14595a193af2eba6347f8ef68ddb2fb19ea41552b41d3a7c9b6c00832eb84944647dc9026605c7c8f6786a6b4da37f9baa827ad83dc9cdd70d5ee1e7df14ea624f74f9c8f6ad9922b2a92c46bf5cd3614ad500dd18427e7e72399453614294663f07a130ee716bbe9b8a0acca7a10313ba07db4af77abf45b5d", + "05b5ef11d77bf9ce89" + }, + { /* i=8267 cDividendBits=2134 cDivisorBits=1544 */ + "05bb2c5f22ef80e788045efbbd8a8a7c25508c33083033fd3c512792df3130a4fdf086df7748228869976e2f953332618d350606a0286ed83bab4ccc86e1041728179dbae40f8d73b099d4dcf54211243948f286bf1783cb582ae6137676c4ca6fba81f1d6c36ffbfb8fbb1712b367cd8074f4e57ba2f659eddbd90820bb6c6a726f211fd001edc099021c113c8f48536d746c99761ae366b9b50d6d9dc1e25219fd477436cdbbf5d85483344ffe414ea7261fd3b719be7aa41ac4fcfff7386e0636d5a3a4e8ae8b9612e2475aa726bcbb13324770875ee2b03fa040e35a82f5e618375082834f1a18f78e4abef963d18862a422081f41334c00a0d90b203d21f4fd9b2ee1e04ae8d40b02", + "8750259cc02219cedee2f1fbf64279fc8bbac9565d5f4c33bb953288dc6027c56d138900a7498880d4dfec4c2e9102ffa9a4a8ca0bdfb1bd015431060a24978e805dc3282e96a78625341f70934ca754ad5644cf7c848040552ff8f7263af74668b13c3a04bd3eda3eb612551cd7c6b35fca4bd9c7d928b3742b00d25dfd326e76d6af82d5b194bdfc113664481abd99cb423b0229af55e9dae2deda313a6a1aa6a338027c8687b5ec5b5856943ea6b2657448ea0266c2c48c99941d43a76f5490", + "0ad7c2180173c09d99cab9e6401b45bad6eb1a70a510affe04ecedfd4bfcfa5829d120111f2e3b8293d3bf71ee4c22cc098dfb21ed69204606df3971b73f7775f07a90c7d90a9425d7ca", + "1802bd2afe3c47cf1d045286c45feff9daa9e2bfd27c2627c47501558c6ee6eba211e66a950cc5dcdfbc4fcccf76a94ed369a209efe9f6d2b0974a66537d91e7655918bf050f7e659de16e3962a5b9980a367b8a96c13ff0cc111bcc5285abeb6cff0ded621d702f2755d50fbde731d8456aa73d2a95312fe4168bbf11ac2e5f434833d3ba5717307271dc138e889ebeb484ae74045a9bb014dc1f84b384bf039eb1aa31a4f56b51f631a0cf84bb96a3e69d250f26ad956d0d9ee409afd2266162" + }, + { /* i=8268 cDividendBits=147 cDivisorBits=129 */ + "03f5cfbeded2ad41c5c610017b24b6f8a1c10a", + "01db08cdbf1c78ef4a658e897c447398e9", + "022259", + "01d1fdb0826d5de898b1b24e84a050a609" + }, + { /* i=8269 cDividendBits=41 cDivisorBits=23 */ + "01732cf95eea", + "5ddae5", + "03f46c", + "0fc24e" + }, + { /* i=8270 cDividendBits=3154 cDivisorBits=1293 */ + "01537f85f9f1c2f777839c0b37960de2ec745cebf761401982d3f120508c553ff51d0302a08c6ee75db7e6cb5b54ee56493b8fae7dda3828d8f980105b3ef9e58f423130d79b5877bd52e819e19d36221b1829fa6bc1b8372a3eceaf27030d57b4dae0fc6e986d4bb58645b42a084b0d4e77cbeba628d42882157b852e61271683c92aa92f1b03628c8a6265b3d56d3da4ffc2cc98f00dfae4abcda2c34711418281c766be5296abf9b2c326f034dd6725a5edc629ac6a0dccde201b01232ec1a813584cc152cf3ddc36047aca8d664f70313451a9d1a35713ac862516bb681934c8f7ecfc86b249053f7d7f638ec6828104fdadc47663565580c2ef1793f6681d436f51d309f314c1bc020c75d6ceef1ac722c9e09725ca5f9b5b99a764a3c7342069a51b3b090c887b869379a617d5989e13cf1c736b9d00db1c12366dd4355b9d914ae2b15011e800c3feaccc0b3634d9b127b105a848cc99afcd816df04e110701d2f0204f807fc19ddc21a024cc8dbebdc3adc6a27ce8dc3a1abf2440874c92052561ee2678dfd8fe", + "0bb01a5eff5582eeff6fb5151cbfe94da6b0cc634678dc37070d47039805521a8f9196a30581a53039b42dd1f4556d5ee1d7d499d94fb9ac32797c63cacfbccf753c07ddea36331b6a4e560d354c0d37e466e8e423c65cfa69188c3681ee1a4080836c9fa3f091b00d23c943b8d988d1a7317979aaba67e480c707a9c2b78c022b17d87a6855084af6c718a353f4f04a4e4e0826b350e0e38b471e14cdbf83f219a0", + "1d0c06288ce4f1b21f5021f122ae1a560ac968968e6a56f19fc1473ea9fa49b042f1d04c304f41023c0881f22d76495ec8134d78836cd669cb9eb0c8c607aa77a947c1306782ce1369acb618458a1f2ae5e1d45ac193415d6dc6b5214054d34890edc98b7b9842dc6f46bc33bdc520ff9f537eee23077dbcea941a2be2d84bdbbe35dfabb2136961f97351bae483484d235608f391df1aa7b9637aac7955064a47e75668613570c5a8fa2697efe3d2c7334cb2c626c45c50873177833385a3ad942c102fc9fe580580dd5408616c79c892ae744f363b940b5a444192f7b0df88fb156a33568f893147", + "038509ec2143943261832a77ed1ce31e12b0280cd0862bbb7827442e4d05cd83ddb07871c6a99b369aa74d67315dcf46eca1fe38b2c64599c47a1ce5b57759a7e48a8f65a9da63c6cf3dbcccf3c6266697489272a792234596a2ebb2c99e88d9e2c4908f22275932ccad07094a3ff4154b051a07ded8ceff71a6f7fa8270abbc7f4c0e437376677ee80abe697791b8d0d0b1169d8712e235b8a17159e12773331d9e" + }, + { /* i=8271 cDividendBits=1866 cDivisorBits=1152 */ + "03eaa64280f8e3cdba0276e516a8da88ed10c9a32b3e1f867015a09bce3b6299fd7f25d94667653891e3c4245b14a38d31cc5b234a98587dd513600e2e655e56a88078bf3b34cb4911dbddd5e445a61fb30d242cd5cc73ba06270cc7e667048b0f87553d2c47c5c3554e83442a642b2fe0f203be1218f067fd24730b6a8173c380f293209b2e33ae2d62104f65436c0c4e8391af8d4da383a5900fcf656ff6ff1be67b15ecaf7a8db7209914abf224d4cfe188813101e08e20411812bdcaf686fa3063a487efd04c17a835f21aaf4ce8a9f25e0176285d6dc283abc90f829e4b2bd9c3143a0fe3c81dff", + "0e520b3cc59660db988b444fb69f67da807cc0c6f9add907d430bd3d34f53bf890c9a6af6502705756c2f89ee31ab7e7deba95108717f0080809244745178f676c32e8e253befa82748e63e54138cdd4f07f0ca4af150148f6b5acf2352fe9b62d381c72b17c123877b2b1fa411e0401e099ecbf6fe08b6b738fb1fd5947d01aa3e5bcea1288532401ea82fa6f222389", + "4603da8d087c42c7a34b1aba3f70cfb8a30f680f425b34338ce38c2a0f1281bcdcd92420f864b76f31224f3fef63077424c141969e1d883bb2f37eb0e88b694810122cedf27d0cf6e7a890534e41aac02041afa61d77f575cb74", + "0cb45101aa5517bdeddf340ec826a892ca51dda6f64e56e4e241725b0ee06d8739d73a1b3a3630a1d8b5675bc25acfdfba94922037e74bb2b6d196e89d02f2323cf3dce3cf32157c42ad04001b69a40d38ea80f9acfe44e370b1793936582b67229dec39fefb6fea9fad979feec25550b21558eea4c2815119b4d9e30ba282e3c04448daf73bd5452d68ca2a1b8560eb" + }, + { /* i=8272 cDividendBits=353 cDivisorBits=175 */ + "6daf68c6db0d0dee2dab47b661ff564e840f115b17fc1892838b676062de947fc73b287c348baba7eb203b05", + "0ebad3b37916e8929457525de75abca340472b3d8dfd", + "07724ce43ac5339af86a1d9f0ef09f47ea3a98524d0b34", + "06e333f19c266162224169c7f96c2b643520be6c84a1" + }, + { /* i=8273 cDividendBits=3815 cDivisorBits=897 */ + "7d598c53a2d9623d4205d8f7769b56c612510f625ecc85f7134b9bfee5f3572f807a56400f22034c21acf5fa042b4a7eb4662d5a478e920505593f035528fd0dd04b717953e52c8a0974b1a236e8040fee8485f358d7b65350680ce78b765d159718b37de349b1b8df3c18a7d932deddf6b0b78e21599dfc84309d1b63ea0c406294aeae79969ff1e6d2f05e81936f362b3ce4d8d2da6004476271639a9d6584afe384dce7c799229f41f7869365e010513c524780267131bed1bd7ea7713dd8f1ac419a8c8349e3a6fb52d091d6dc4323e31495df1010f95c7b496c81c3bdea6885889048c419f14f6512e27c88b1acf8345a8dc961e83b22332775aaf8c2504d94694aa68a90c59346cf58b3e296b3e31a9b777b0b96be903702f4b9a5ab6ebb57e9bf934b083a641d598a74fc0d854940846d5b87b0cdc8a6d80e3c62ecfa08e3f0910ffa4a84f89afdb5dbe11ba07cc2002141f7d1213a145a30e897d49f9c64af17990fdf25984c3aa6d7a3a41cdf9827b4b2a7896862651cd5b5c28746894ee8de19b817107c9bf2d00827f30b6f54c3d0b6395af9730ebc7831286339cf93c5f0b9a2316c4fd6e3ec8cf730b027e2c6a8b00ffd149409169d042a865b2467f5a674fde4c4c95459cc71110ff55701d55ac940099c907b30e660", + "01a3dfdb3d3372abc3aeb69fff80e2f11431d84ca49db055c2ac7c41818a3f9bc8259d3e0a5366813ad77baa5e06c703f08346891f8624796a6758ae6548f5479c58ddfc9fced8a1e46c0fcf69691677b59f19ca2c0b6bee2fa3b02821a8490e6d47cab8336d4f3d02efb293bce9f829ed", + "4c6d31575a870f0787c217c1f6fa8f876c0b249666effbaeb26886c63bbceee8cc8b65f4c8a9a33c6e4baccc24587095532e6a3fdbe6ecec4fde24b12051c7fd2fb84bbf695b894eb9e17a1bb67cf31d3ed4ce84c30e57d0443f27b7ec4a27085f6aa1e8e52fe5bd2a424328a1a44260347d08a4201fca8e4e82298cf8afa2769c49805b7fafab22fa51538eaaccc296bec1fc185bbb598df24f70e8d0e4b379fbc5ddbb69ab7dc5083550a947f4c2b231505e6bec20026f7f80b303aaa1f92e0c8e89efa3b11580c603c90bb7976e5caf88ae6729c361122b3314eea0c4458f98a486d8d7486c6c115fc9293d94bc5575923310ad8d3a9bcff7c39499a366462787566bbdf7df1ba7f720e1a5ab8dbb0200339b3132474b21f1645cec53f584a3fd8b2b00d63b363fe3f2c1f298cbed3c9ddd3b7fee2eea5d7543f3ec34ac4dcd1b9c428942f4933e562a39313436d4cdc7d94584bdbfda298955ab2d76fe768e84c7eeea1b3b800c2b507779", + "013408df470fd81d9b95b89b86277b7ff7eee1fad0abbdf0f0178af9ebc99793319df22902dee19200052aff65bebdd8291dcd27e545db94cf4ab53401f1502c1c77b64c4e79dad96e39a500f7cadac89249ee490f63eb5c58d12785de4323a90034d01c4d14571d445667b3cfa057ea5b" + }, + { /* i=8274 cDividendBits=69 cDivisorBits=13 */ + "1675e30324d73d970c", + "1703", + "f9de25f185ae75", + "08ad" + }, + { /* i=8275 cDividendBits=442 cDivisorBits=377 */ + "01fdea913e35e099c20ff4c739b9212a5ae182a672176f28031cd7ff8636632e7921a20491ddba355c0d036655dc3e9ffda46f938f9dbe86", + "01e8009e9a356b0481942e47185ef1868b2d3fb2019481ec703cfcc3f642b77da7a726dd3bd1ae4a0262b2f700f39f25", + "010b7ee8aa5c63e139", + "491d30abb5cc6864a729b562980a3f78dad47bd75318f358d156054d66182add84814cff37bfc9674b5cc46330ca49" + }, + { /* i=8276 cDividendBits=2606 cDivisorBits=2123 */ + "24526d06bc4e411168807709a94816932706422819ca3bda5bade5205cc96f7ab62d06a8bb6751db828c04c08b7996c1a5169806ee2d555a2b7c3cf8e41f89ecd7ae7679b3382217dfe9524063e8a581c283dd332d3e41fd11cb0e93a989447c0c9e67fab1cc7e8e512453c5d5257d5f7088ae1df285b0136491299fd0a356962eb9f832481d8571d61267b5b3db9ffcd7a5121619cb4945a54d38fa431a3d974a98f85cea151e96af3aec25ab44d7e636bcf542b3c3d9c8d1d2e7281e876ef3aad14a48f03e277ddaf8b27f5c8041cb944026a0fa4c50644fed3c85a0478fa0a7d9e484056780c2b77551258ab18439f25592284ee2f308a259bb85feb257d69cf19856d509e3641edcf511979619f5de7d37c068c12e6ebfbaecdedaec9766d3037a5ff8c65632470fb19c5c92e99c9d4d4df39c45167c23c494e48dbfec37687f0a7a8b76", + "025575d348595995e5d66210cc7f10f0ae21c186c6ee7dee200894482dd26839ce78fa576c8e9a72b683e844c157c1d11b8a1c98f6ead97f3b971eb4fdda98103e7521d831e999d9f0c34b5d2b14c7d7101923d3c51f5f3d346bbd95a9341585f63c844718d378e6f3d42bde4adbaf0438389acc6638bdc757631987827a5dde301bc2c13f601e00e6ba3728adc57d0190708755e0a55fc5c6d74246bba19b2f09ebdb65c318a06847b3ecd08afed301fc5e7952f47557743e76afcf455b90c471696b5f3efdb053d54c9c795fb47496d349395e4de8664fb5c927314a51cc128fce147f566545e57f23f43a876732a10080351d007cf56536634c1e604d3a8591f964ca4a0a0970306d", + "0f90316f04a5959d9d9f0e226a7610aa28a52a69ad14d9a9110396b76fdc79333ee8063303725f8f162d5fb9b06f524eb30b8b844480f26cb91dc04509", + "052d50b4c3958aa9c3cccc1191e79b5e8fbc86526b03641b104cfe4527a4198fa63448050be90b0105ae5925bef194093e707a3b555a35ebfbebc56bd825819f63014557039b090ad40ac87f5b269bdafc34e364db2ca1b339ce40792828f1e310748abb71c1c481b72f889046b98c684d105b8b481c8a3aaef863690a173ab9bd421cb748a4630619fa7097d38e2eec982de59995ae3d33aa491ea29c5fcef9b6f002e17c36047ccec3457211fb8ad93efac2d0014142c972a79bcef52dc0d304d12ebc1ffc279b70bb81fde7c9e325755576f476d3a43384073dc923aef77cfb936824d6448be248139396d75513f317e732ac409f6ac7d2a7c5eed445cedf41c3025533cdbb76a1" + }, + { /* i=8277 cDividendBits=3880 cDivisorBits=1076 */ + "22eb6e68944ed7959f063e9db6cd9cdb5f15e483031e90a0ba68ccafce07b4e34539f5af5d177c8b8caba03723ce03f240f9daf15a5979e35ee60bc27295f8ad2ff8690559f4a51ea85d3e7c9b712a6520c07ab2692eae71b6c6f17bfd40525bfeb7bda0d9b28fe598f394ad43a6eef34b6c0b7ee08beb23e93be8435a661d1932205762bdbb94a41ff59057a267d76628d66db2bbb7eda4d4afbee847b88940800a15b44004e2fc93d2e03addfdef9c2296f88724eb7ef997aac45980dcec647a58024a799b9a1787a3e5d8eff566c0611ba71b0ca29d1ce99edf5616b779820d744156610d5b08347fedeafea884b6d3222d5608e11e73d4fc7f8eb3933d4ff038a743d74a69c5f98e24ffb7b5c84563a06d1b1292d56ab62ca637776944b0cb3a15b9b3657b08ab41f1e297ba25c9e6008e94734cf1688df9f8f71ba1d62706aef098d28298ab2fd14466820999ba09914c51c64701eefe0c4f13e5077c46019f2b60ee9c2e4eb9975be63b8765cbc3cd7173c3a081538000ee7f5f21aadeca727231b512ad75315eb26be6b94b560cfbf3b1a1f809f829ba57357e8216b4cbcca3fc6b9fc82fdf444e53c5c37ef8ad10927dafed1c784c474ceda589a828f04ce751dc53fb93368a736b32c198c7e379203accb3a5a31df98c906242c7fc4009f7668a", + "0a800dbfb314b9db0503b7e2fd37b3810bea2134d49f293f623b55f31835b2d865621a46fea9ec0cac29ca706227171885a26555b88b4c4d8e8be8efb3e526b5a2120e4a5af0c8dc132b6b4ae0e5cf54663efb13661eb097ace418d36a1da68a88f707b8f1aaea406ce862f212f2723e5ebddb924aeb7a44ece33e52d1317d52ab815d720b39bb", + "03535b7e6ba03486a5d5b7e43ebcd4a707a9308ced1ab1e7f1c7e5e251f7fb43bdd1150df9608e7d2716bd728f93c9741bf9fcf00e6be8770c418901f897e9b00291270a5a9ae07d26a2bc8b7912c450fa4f09763fd23d559ff19d22edf23ec5d7a835c47a711c3cc0ad017af7edbe52eac8deddcf8e35917402eb9a5c43c1c9304a1a1d7f74d50277c08866d5c578aeb617ee47a0b2d1fd6f013aac3d0c08520194fe4a31603e8562a63ecc600b25202820909c2ffc51cef2ed8d4e699ce2e8d7132e87835f0644e9408e9d01efd557b6e3029a0524afa727cc265390b42ffe84777e3f3348cfe43ffdaf7156ee80a9bafe09e287cd377e419177cb25d90ea6976e2c77b68907716ea04c23c7ab6669de82dd1c5823a4379dc6c00537f3a3b47c26c1e00d01721bbdbfee41970548c3767e1e2f7f71b24d0dfa85e4387c8cc70e92077e8277fef186f0b2c18f169e4565abb7bae0f9e837f617636abbd1ce", + "0753d7d3bb20cfa599a9357cec25e7651a1fb5dce6dd333e2e78ce76f3043b18a41c8e30b75c4218251f70229e23e400eeec00f2f07bb5ccc61cbd8b5456cb0a94774f6d4404e2ff586260711151fb84271f67db33b292c7390a5b9176b3221871e5ea18f30cf3529e09247266bf7afa453ef0e9a12d63b6e8d88215d76528c474848781344710" + }, + { /* i=8278 cDividendBits=680 cDivisorBits=619 */ + "6209ffaa7692d75a5f5e63f1bcd3b0877d29473cefc421c82400131c4a04605f0705e32eef8c8a15dea84dcc5b193c7314f980580a5ba58b0ecc4e22a7da6b4aa594e139e03ddb35f78b379e8975131e1b79111783", + "06428aabde8cc6f6b0e7b72aede9e7ea2b148caa9fc5299875f7dabced85c51c81a22867ce8d9b527deab21e342feb683d9721d09a3e111c8833d758b6b92e718b0053b3aabe0a3f323db43d5514", + "0fa94f8fcc75e710", + "05ef17d9bb72f660902e654c71cfa6edcf196dfadc284b201292bd329eb3c82a065e1fa2453f4edae0765f0b994d47705b152f467e1355865c103b5f791c0b605043b5ccbceeb73e5a9d0b52ba43" + }, + { /* i=8279 cDividendBits=1111 cDivisorBits=835 */ + "29cc16af36e1c60321d37d9a2bb72ccba5a2c4a5bb8d895263fb63b7b2556f96eab79af70c7464b0d8c72eabecdf8f4a6c9d026375724ff1ce5a68ae87b954b00ffdb5f65c44198c4e90049f566398ed44c009550a3392861dbd96017af5c104a4f4fce286e7bc098bec1d7db058f14db8c868d7460ef4dd94402e1035c2cdfbcbb82a3e00b47cc2ed8d05", + "0427e44776940c2806038da35cf689949da307eb5080db4d4662e00f880d7a8e74e42ac1786ba8506771d078f0a1207f439e75b46ab7073bc89599639cb7968a0fa58ce47fa9f22711634a34debb11d857f911ee85f68872c77e7ae2cf6dad7f232bceab19278b34", + "0a0eb82d61b94302cc55bcc54265470edbc713d77aa7fc8a308ce2e96fa5e11e075555bb", + "b67825be60bed98eb149142971a478094b93ec65c53df9559e9c4b930c7d703efbc71a72ab4d407b1560e5450dd0566697da87b5712aedf2d7fbc58114f57a3b2daa6e2a575e3d4e56fa44b1a258ac5326fd8c16f053a9d2a188bf449e5616bc637b1f9d8e9a09" + }, + { /* i=8280 cDividendBits=951 cDivisorBits=678 */ + "1945eb6e16857fa21dc87c09e42add07c8e4ccf2bd5dcdaf931446e1367caf9447ca6333e29dac044fdbb3f33092c0512ce5e32b1851d265f90eb105f2794881d2b0e70b00ee361b624d532214645d52ddc8bbbce5f617e5b45969a7fca4d53fe97805f5b6f897a9ea066f05efe2cbebc58bad377b4874", + "1f3de0f5a3aa2974ecf5b29183ab3f70e5aaccbcd925ed6a04e9a31b94a7f0ae7176b6989fd9343305ec1b802ee456eb7f3910434cb6d033aba2ed10190b22065d5e6652798285ef6acd7a5a8f0ff80da4b62ac1ff", + "cf17a3a2b1fb390e5b26c61ff02c18ff89250402e0982e0ed10b6a59b25f9d5b8f22", + "148ac2c0dde840faba36eea0985e45db1c6df7be99f21c46892786c19711f07f2a9248c99c85c8a34257279291866f0533b3ef6b29fbbf8fa8eca101d3a284971f773172f33f0622f4f30fff660387743dcacb1396" + }, + { /* i=8281 cDividendBits=2480 cDivisorBits=456 */ + "5e1c66993fd4fca9be29b7e6ebc971c61d3a697f97917ed092b40331abf06f7a3044c02024d18bac746e73f1c1461b4148ecca65802e016db2623fcaafb3252c97674db17022265d7125dccaa201fefa65987062cb6f5b3428855df10009dd84277f71e5ad4bf1b06ee88945b99695c408ec5dd3864b019dbdf9cc33ed1626be59b761e12d00991b8e0e603434ceb210a531b8bb34c07838364838ce9b0ae66fcdd85ce8876f6fc113ea007fbbb2cb5250c5ef3340c18ce6639ef35e01ee2297dee494a2dfba5ceef605b1a1c47c57d33b3fbaf26aa69ea5d9f09a84f274d311632cd9d26f110ff8bd07f70a725685c1ce5c8cd0856ca768c17f00ab183f3afd28985e1ce04f7067478faee6c5009b388084976a2c6e6f97cf4a23c419d7e2d1da98a2621d3b61f8b82c16508c50e14e34b34022e117", + "f04ec751631f5950b79b0a1cdfcc3ae564834986a87a16b155028d17108ded38d08c38162c40c3651da233c79fc12f5ed626b0913dfba2af4f", + "6441a6f908129c2f1ead986d8f5dd7e83666fed4ba93a9b185061162a5cafbd88d20d498a8004fb9eebbfa06987b1da258311539315a6c20ac8fa54021ff163af1713c082a8f3c01c2e6525bfc9d9f6c9b2f387febb4d2fa32d6c2272d76d79c1dc5986bce15bcff8371be7a90958cce372ae2e8477bbcee2cf3eb54a840aed51395a3f2376b4acef52914be6fa5ac00a7dc72a6c002aaa16472cfc2a911f129a214335756304d2bf721d2f474a9d78a3ef18871fe99db867ba4fd97308dff3566e91d93403bca8d536c51cd5155fed926f1f07024723dde94670ab1ec5422502ab8926762933aa3260011036f5bfea2a4ac18973d6101c2740339438c", + "4aa51a7972159e040544d91a8702c3fc15d3e088955f3f08e21c79050b049016e7527f038c1ae43ce20e957eaa98372c65851b50df19b254e3" + }, + { /* i=8282 cDividendBits=1624 cDivisorBits=1461 */ + "e683860f191055ec2b2f622eaea9d9ad5b7109a25fba7d02c889eb424a78ba27570c3d124c88b377edc55d5b18f662c4caccde41f3ed33354a69e2560fdacf22ba625124b2d2b6e44caee738de92a30e3438248e8b5a59819638d5321e3c77832cfd2a9a5fc5f7145cc8e35a91dfd01669a74f2286846f816e74cf311a00ebf0678bdae97e723d1e56b371fb920c81101b926195b0f9122273c488f3fdfe463c0d73e0a844e7bdb37d1fcbc7a8df583eb2e287aa4d6972fda77dfbd5ba6ad8e4b687c506861405618edebc", + "19a4691cba2536bf0a8f402d9cdbef11937f053f3caa0ef8f40d45e8135320c2efaed7af56cc3aae8ba1f2588940fd626967a73f0bc90c97cd886fc65c017d0aecab0496065e4623364b8e033f4fe9e15b933a5153702c289468e3a88efe6a43051422ab0294d27dc980ff9dc981da43387feea68c806bc9ed78701841a861844fa8736e25512695f7f1216ea5cdcffe8b039ad6a52a4f5dc7b9f7c3a78d0e2748cc595a8e1748b331da9f026115e2ef5d8be8298e4e33", + "08fd5767e5cfc84795bffa1c583923e5553b6191c9", + "0ce1999be631fafbdf4e2d8fc1ce3e6ae8e3e026b97119de02665bb746c53d38d2294d2adf188e696c1b1494788b10b74c96614e97c767f5bb0ecf4a6362c7a2ba0e4757bbca9538e6d486ccb4868b660b37d9fc7baf9a126e04486c064be4b0d0efd0aac45a21331e630981991e8d94e6a880ae3b40e2b69324d10a899aec798ac21f9b224a630dc880371e7711c1fd7d48b186fccc7386043b4d7d58c070e2ea8b7e9f612873eb47b410327498aa711c9a52c43595b1" + }, + { /* i=8283 cDividendBits=2937 cDivisorBits=2056 */ + "90b5dcfcdec21dd28d95ca86913e809fafad9fb409c5a1a561e78fb41a6b9ef50456f278894795ad24d2e34ae7a38c12e5fbb4911483411e26e38615525f80c285197f1b9fa3d60de537ff244698cb50be1f70474d2a31fcf3ee94369557d10d73cfe5c55f760c6c7c42a4c67d97964a6f127322b66037dcd25a7f2d4badb6c7753e3eb46e7bfd36fbd6472eb0042013856bbef7026d68720a0bc052c2a87ac0dad3a1e51888811c42ed90d8ea32b2c4c6a44d69b08ec1460502be508c94fa47aeb2083bd4d33753f954c0cd61d94e13d4f8fcd916e405c274faad284781fc03c30f8171c18e1ad6689aa6d8d0b6d3ace3214fba700bee3a2f2f8810c092c98716b766325bf74c0eff2ebd46ee2df094eb720735e0fff3125dbe64335b823c3af20bd1f34d379f7d5af8fefa2acd025a71e5c888906d142c2faf2d38a63d783eab95594f7a3669c02f1d3cf5d0e9c9b000c3709f082dac0d0583aa5a529f794c18ef28fd6007f25c2a2557202829f4", + "ef7e9da427eaf4f4067d4f011d65d7f255aed5d45fa3656e37cdc2e807c7fe4b8214250093d3f755ad42c95138a99e27b948e2dd3453637c021af7c88c24e2de9bdbca6ed3ac340755372a6e28d6c39c7a9f6450fbda2f4cec3293110500ba013dd90eb7ae705f9c7836f4df490c58e9b6028c81c65381f4cfd0fa3ad3130aef63d9cfcd75d6506cb856b77a419ae46dc979999deb6033bf5d28349d0701746c2994648f18f03c0589775a09632acd4347a2b350b5095a0795712866d85012b827656de3fa068e0816a1d1e399710b256701d58029f7fe5b74d512be90e5a39533513cfe6216998cf4f3031e60a94621111e4ee34eab705ac68840868e1fc1aa61", + "9aaefa3b2351fa7dc0b70b44b4b19b38fba03c351c2dde548f97d7130cbddaa0c3106f04369b9eae50c33220dec51b067025f7106417497e31f5c2235fed70f49cab8ac5f652efbbd00ba830c29b6d66d95dd7691df8670988bfa9c02a8a104c4d97be82c9913572209572fdc206", + "03e2d9c48320fbb2bc91973bf554422a91a27d91bd42c37ca7de68814a4ef5e84b322ebaea02603401cad19cb4a10086328cbecd9786e0e39f0f1d842874cfe57073684261c76a49044ed94403abe9b41078ebb60c65602d0500246cd52eed5bd11e4a7f5d2a150213978c372e9c14917232b2c000c8076cfd6f75daf85666300e322e3b8f24f9de74b4cb3789da32796c8fff71eaa445854173680d33f50cb46eb0ab38816f570f503913f56c2be28cab9c08765ebe495329a63b663c1d94e1d44ff8ed49700fa38a938551761f6a1b317b76aca81f9f3049d293112f0717b29b76cd2989a45f0094ccf6f1fbd8b045ff80548150701b15345adf5f380aa3a9ae" + }, + { /* i=8284 cDividendBits=3946 cDivisorBits=721 */ + "c191b02a2e4c7b71503d4957b87f43ed4fdd37fe1b32bc673de22a043ff979e048b0cadb202311fa604fef2eb30de8c653d0201b8d6904fc5a88615a5c81fe4ba4124752a59b42099d5d9af5a58091449622837c3438f5287815c9b4168b0f94abc8f83ad19b53c7f68f75a57534db5d16a36eaf653e61b9db7bbf4f09dd96d6858b89823b5c1ee7bf726b83e8ca1d401c3359a9e58018360f580366a47c64361a6f008e9b774e3a0fba2ae3b5dce70b1e7b3528432c66bd6e5a46687eeadd9149fb51b91934eb1d44d5a9ffc2bb5391057fb8f2d535e77d3a9c8e2f8e3600215a93ae56ebf9cb5bbd48e50c9ca693dd24b21c247352a7722f37765a9e6f390a9c4e6262ff1817e2cec6f7c86f58705d30d1ed0223d8a0e2b5ba085238cbc64fda53d60410aef5c0656ccc2d46dbd8bf144abbc2cb97378cfb3574410d25e582d8477224d025d560fd9eec5a1e7b26643c76d58f4ed12ef509a2afd7e8a785e4de5379ae14e7fcb78f105c331c24604f52e9b49ea7220901c0c531323495c84dc133faa03f8700f3202db91d21d46026e74c13f29b04749ebded38bf4e26977ebf1a87870bf17f85063825fe476de725d43626f63a5e36a568944a566506b1804e312de363b2b1d7919079e239499e04b92b73de3fc3084879a3aa5dfdc5ff6d9afa4ac96b52ac1d880e3d2d9f", + "011d25498e7bedb20de07b441c42550e80e81759dc7c79f5bda7ee7cb631543ca493c2fda259d80f50e056d1f5e06ee6912e45ede2e4c44e245f7647ff83bbdd9ac6b56f99924f8daa3ee1fe5df7bff2abfb8e7aa24d57f9522fbd", + "adc8a57c3f87eb015ceb4cb957068d6e390263af7896a175f066792e5c6210d972bf0a58a5f6ce929ea5e6126605e132311b5379bf64ebc7b43cdf095352cb2a593cf78cae578f2ed8bdfd13b2ea8e73581c1a2a93c29cb1415180a8dfefe4fad11c11e29d808b25db3a543f86f1fa919dee3946208988d067342b974d55ba08ccb6d5bc8bee1035897794b1ca425c2bf1f32aa4bb6452b5a49408cf3b7fd0c52a4847e64d5b1546ee81d208b1189c0be2c5041b80a168961259175e10d10d526c60c9e8b5461618f70f8819b919c3d5d472951594326d575224c4c42ef94b83871137b0bfc04e4a1032ec8c9fa4b8fd9234f730cbc7c2fbe6ded85b6d69655240a571513bff541d7ec3070124ffea98e500e83473cd8f3887b99a64c7a90418ed13ad46699c563f62c5cc6a20144232a71f50600282aceb4c346d7d510ef0cf1efe9e67b4c9e5ea46351acd8485a4510f47e235ae1c083e90725597caa6b6e03a551e5e3a74c0488dca20f7fccc52e2f469ec56020fd143f3fa8695204e39e24dae788818d3ae0f84c9ad3f97044df6480779", + "529f5a3a661095aa14226bf17d35a57ead3a9a38a9c30c22330f812c9ecaf0404061f0d4c4c654f6fa085b8c2f227f85200962f1ec4786dba828dd53f4e43dec7e305a369fcfb072161a4d7275c38375f572af92be4bebee724a" + }, + { /* i=8285 cDividendBits=23 cDivisorBits=7 */ + "2614af", + "37", + "b13f", + "26" + }, + { /* i=8286 cDividendBits=322 cDivisorBits=49 */ + "9024221414d084781e3772b946c140da96228e0854bac02a7695f755a641e17b9f601997a3605aff", + "013a230da637ad", + "7577125f9880c37085bec604849139c83447bbace585046a3bde7173f1efc68cea29", + "e20744414e4a" + }, + { /* i=8287 cDividendBits=37 cDivisorBits=33 */ + "0d326bbd7e", + "014a40e1c8", + "0a", + "4be2ebae" + }, + { /* i=8288 cDividendBits=1409 cDivisorBits=628 */ + "6014e5adba57f8089adeb05c2031d79fb856127788fc31c604c501bbd7c7f5435558a09041e1a141bb31d030b276c1e355a72425faf19e129152d7c3652de06a6a3cda6c3be3115818832966c50ccae06864ce5204f88f7d77b908f39adf0956bfd77eab86f6bbc477a0aede15a40bc1ca4bd8f8ce527a47c683001c53c0e02c798d24ebd2b4a22291844448a3982fd30cb0cfd85907b2bc9f2e732edc7dde5e05e5bdadd78e2e855348daa6d64270e4", + "09352c83ef533a3e81cd2e84e6dd3e702eeb620cca821a3dbe696cdb966fbd6a665cf68cb2207ba6203324129eb9de299fd2962e55dfe0ad916d9ae0392c5aac3ea427bf7898f6f60ca48a0b6a473c", + "0a6f56419ef6e2448608ace7f3d4879446fdbfc36eae4cc69c558d8146c725def31c462ba70c2ed02336c30684b5f174f432de5a1b9c0b93d3886212f64629a04c98ba3793d26f31d63e7acf601d7cccf15d8440f70429f4620cbb2feef7bc335edc", + "08f767f716163ca0f18ffff50ddfcdd1d0988b2f8edb1aaae234cab362897665012ee07b10528a77073ad264d751484cef378e4ee9daa732dff7034878877efe3f4fd541919d6d5a55ee73bfd13154" + }, + { /* i=8289 cDividendBits=2366 cDivisorBits=2293 */ + "377eaf484ccb58c52ce69c6151e647caf3a81ad1ee77f8b080d5fbb85e229e943539f5713f48c76990e235cbcd15fa32d888b0f0a8b0928f55ad43d18b7eaf6fded8a14cfdccebcd1a557211b7ab60d27db5d2024ce002385f21625c961ef9d1f18d09bf53bcf3243d1a3e7cfb932204b2c37a76271030801c5e8300573d51bea5357385870c69945234b386b28e4b14ee7b2899914da4f3db20cccc1db5a9eb515756a1a5909f5d7deaf4ea864ab52d1004f09d84ca2f5865ec64c98346e50d7e78d50b622a1d24ab83ae95646d6ca9a96bb36a4b36caccff8e22625e08f445ef93dc593e16b4faf2f50d94d74c3d3dd0b5412deb6a4b29f09c9db082df60a1f6cc4baf7b5b8cdc5724003ecdc895e840bd45565aed17bb93a5f9183515bbf2e2666d627bc13657", + "15f8a315c5151a6aa6eca95ffa906b96ab701ac10a7bedbf3159444d78acc508e1ae30f6f6fe87e9030a1b2c44a98c3b062a0f9a0128feea0778d8d4bf523497f61c832f6d737928c14ae022ce148f084de747d86c32d7c9ac8fc9501b931602a0d5169a264a4d780f8824aa00c7cf95708552debb0262b282e850332ec17570d5fd51b9dacd7782ad97cf7000b0e7bc11587182dbcaac18177de99519012d885651bcc5cdc05145933445417cf65a9d23b07fced4287c8fea30c23eacebccdca40dba40b0c9382bf812abef8c9ec0f2d5d8c845634f82988118de799e04ff71ae0146e1c2d131414c194168cbbb8e69da4eecb2ba4823111a5afbdc233beff3bec51876d83367bb5bf9c1b131ba143dc05c05ac782d9a45444f6e668456b7", + "02869a8de10be3831d8c", + "03c894232817fb9b936d9ea335ff9258a808790ada36de5316f171c169e56df3aaf3feb2239b35df4da89e7070ce25e0e08247b38687b141910243219622cba41f8d6e5210059d4dae480702df901ad3b38309d67f86e574d493fc31679ad3bab8045cc95c1ff01585b90521b7666fd99c4445882670a5f84906b2809fa2e52a636f3df0553c8e57d53ccdb130bd7b625e9f078f0254f27778344ed9da114f3882bd877d902df4ceb28f93fffe836a06c406ac5259f31382aeb7cdafaf8bf883bca1b716807eb053b0e83dace54c730073b7903dcee860851f783fe987cb5403864c6331503a3ee93bbccefc4fe2daa92a375ea28fdf15e09e46ec596a7f5e402dc562ed4940f6018640209e4190e425eef40445a8f6a828f41bebc8ea0f43" + }, + { /* i=8290 cDividendBits=103 cDivisorBits=30 */ + "4210d74c611b113ba5fd89e21a", + "24091f49", + "01d5562a0b9cb2ef5480", + "038f499a" + }, + { /* i=8291 cDividendBits=895 cDivisorBits=702 */ + "3cbdd2e721d63eaa0fe541b381185becdb1ae9ddb18b7eb8925773205edcc9da47bfae11bc6b314129256f93450ae2215586cab8828dfecb3a1abdb08e8a72a4cf11748f46da1f3f8a60d98192301133488fa34910698f3a99976b2ec6bd2e3764571b2bb35bbd68f9c42b48d5566658", + "0e7131287acf1623997f50412f689f3aac701efd7d5bd97f29b6de50feb827f53f4f2e658d97eb88a4ad6f3ed3db99d83251f1734a4de86f7135daad7f6afe478e68c7205b6a8d29f0347fe474a69387f8b5d12648fc5bd5", + "0434b262eeee8e08a23860219c9d501369b10a36e1da5a36a9", + "0724770f21333f256bb26ea8188441f2f2fe591015c901da1846736d73328cee3983e7ecc767eeae3e0dd9cf9d3ae4525b6ff3cb7c5ff218827d3a04e2bc401b399f9d3bee8c1c066bf13cc752eab1671184d27cc07cd8bb" + }, + { /* i=8292 cDividendBits=2414 cDivisorBits=749 */ + "2eaae23ce2301062f3a6d7175035d0a267a3d7ee4f629db58c62b3c7ae2f9072a7f8b749810bcc14568c8f3232fb902957b08dcaa4cfb73c6c2f13ad24345720657ab6943bc10d54b0386fb29801aa53bc4016fd7aeb97ae1643473156a5cbe416f57d706b53253964f3626f7054a7a496846126d60d49e82064ec0e133eee84c92c30669c4d7f015cbca548bf1840d15cf237f3f5585db9d86026bb877e6a132ddb7c0890fd8b5a69a4f7b5462fcf39c87d256d38ca999734bc0c9269ea6cfb490fc74fb686790430250f0d2a5f162534769dbd9666a83b2f2ceb876cf43638c9287ce44710f49068f0c3dd34fefbdf27546ca260fea3710c9d6839306d4b85785623b6dfda806cb10ddb37f39714d356deaded46d4cdef1f812a66148f988af877238d3824d24618887dec46a0", + "01b2363deaef8a63961834aa7ca5020b70ae98938bfa3e988539ca7397d036ca6056d05127d2a39fe9fe74e47b09ae499003bbde77ad0699a85fa9402e5a2b7ace5fab489ed28fe4a78cd6d749a1a5ad8bededf8928bcd2b03b32ced3ced", + "1b83922f73cfa155ceaf385d8e7ff03491df38ee27eb956d9501b7de6159b0aed4f08ccd0c9117572edf6ecd10b2a7c7895a1d5986a65271e042950838a25069b666619bb0f05345d79e97d0c66cbcfc60c7291a2efabfcd6cfff86efe07aa400c89339a70b73ba3e8705b0dbe9c2f8535e24b4967183bc7603740e6ca2f8522a6b429b5f28b819a698171ffb98e1ccc6a81b95a1698faa6cb2294165cc8aa83a3d594d1904492d69cdbe3a81b9d9f72771078b598de0c996f7fec2303c2d680d7b8bb9e16029617199e5e54b6926808c0", + "318ec4fc5ddd17f9d8e844935632069d1b81b1be36549c62c655ec4bf6d33f3d06ebb2d8c403a5be3df4bc10fe8ed7d897299eb2f712952fc901dc24c4c35ad0177109537bc20f6f002b01d94fefe30fd974ea7a507bcf172177cf2ce0" + }, + { /* i=8293 cDividendBits=128 cDivisorBits=51 */ + "1be5f0550a9ac93e3bcf978bceafcd4e", + "0700a3f69beea7", + "03fbe995d4a4bdaf885e", + "055d8efb7c73fc" + }, + { /* i=8294 cDividendBits=2955 cDivisorBits=2257 */ + "052c854345c28f31955fac46c53b401271864642383e7d65e71df8264eaf113d4e909141d4c591600846140c71c1d59f5ca1169d59af22390efcb1e376b7947337e29cdddaada0813f5619200fc62460127f3b55876159b14b4abe2bc1aa7c329362b18407b2245498ca3c4933aedea5fe965c1e3355dca9e4b237070d90934305baa21c4f44d948f87c3812df6d532550825271e9eabee2c1abc8a9af2e97aaf4b8229e187d5487acbbf226f16c700e006bb7d40fd783a986f95a2e25eb594b7eb34d88bcf225a3ff641977779ad095306a0584278c806f2a918407382043c4dac08bdf07b5ee2f78c9b058410cca27fc4d986a7645626ec9655111261a72037c2e5674be70bfa582dd4742ac6398d18e8ba22bc475226b0d0278e23f6173ec7777c5b5b577c4066b8465f8547e6cc60901a342c472b10dfcc1744d47e339bfa01275beca4bf704a4035b2d3e1bfec6f809c5542ed679bd8a44032a0eed9cf2b64b6d147c46b9e4924e47fa3af5a10002b4", + "74daa9332f927e6f1d1db6b40c3aa9b3003bf77d2f7e1930b0357aec249689d20bf762bc3536d395fadd56a04cbe8d49818d042262ad01b2090969a63daea67ad0720bbc50836cd79df2d214f90b5f5756401bd3ef5e345babe5141b541f8a60fbbb65d27709911443661d081bd2d62f15b2242be6678b1faf925ec295549d184af334f3e703de831951b5d2e7ba635154244c8f82b5ca7c939f04e0f62343d320b1f8f0b0d8f68c105a2a14b872a18f82402dfe8d9d32053437c7b7b9a59b038db6c1a0edc1e65d6a0b14e71410a8ea78442a5075bd6167af7859f5b36e61fcfd15b73eee9477ae14d9ec3b19d5770c9c99a70d38f78c95dd124ce7411eb2afe707a1390820f38fde804c4d537939333b9301582d0c0d0d2615", + "0b55b6b0392e27c07d04c5e15d590cfd2fc2af6d4e35d4027e7ad1b6ed26eb1c742a3989a847aee1892cdb6bb14a15ff5fa887725d852b52ee1dba7201722d8e116d6d5c4ea93231a895b606187defb88e458f256f7c7c20", + "703ce9767c7a478c51eea36fbadcd4ed60acb432ece2ff1cd55c5a992ff86f282e3cd73a82b24ac8a7935db5fd8e4deb7abb722c9175297735fd5afb917ad5be141daf6165e63e41c01a98d18b3fe7e233cd3e069e8de1d32ebc60d6fac5474a9fdd389b88ac0bd873688a99fa2995c6960f3e7c61af02cd18ceccfdac9010c2698e30597e4b5a6b8dcf7b110f4337d812466d26bb515c67f972e20ffcb89c5a0ba9d512ec3bc75e67e7aaff0fb820660148abd5833245a794aa94cd440a81a54e634fdf969ab22df47c4c2b051c0a3e9b65f3d1fd59fac37d97f23ebce358aee4fcee07b331835028c950542cd8d8671999220f0960d86b99d408995e317a326b9b73fec242d9eb6de7f1445bb0ab31013e36ce813713bd1414" + }, + { /* i=8295 cDividendBits=1280 cDivisorBits=715 */ + "630d7452d95dfe78fb3244ee0b81b9ebf105b5bf02efe813ff18ad4c605121f671c5ec9866725a1a2c7f0f7cc04d6182a3b892ba156bc4fbdf8777b247a0cc37023935f3fa2c871bf1f3665bb8391c91ba342e0f8076ddf32e6235210617b092411c19accddf30151dcd7b4211e9016f6f0650d3cc9ebbad5a215cf17cad5f630a7aa2f7cab878c7605acbba2e4ce6573ff58d7ab800ab383e38730b75315707", + "01bf3a1d8e30a6c61aa30eff965962617a480bb01737c235471caddfbe5c6508dd408f6de831bb23dc079ab080ce651f9d6deca5b06566cfc082a88be5ea5334bca62ffc922e46f2b538ffe2d7524ab07247668d7dc3ce6dbe9f", + "38b304b4fb4745a89ab9caf57e0f6f4701718962cd5580df2cb2a0227519802b935997e89cb23b1a959b082441baf86bf223d21ae8a3d813172a31a7dfa19706453992e2c9a39e", + "13f0ee4d7c7b1e147e600f69f9b25f974dd4ec2be10df27d685052a63c7b259e6b46ce63be919b01c2bd0ad03cf827a9bb7a8ce3c95ac31877538a6febe7809fa880db7694117c4ad39d3d835e7c504744fbf413a1243f73e5" + }, + { /* i=8296 cDividendBits=3090 cDivisorBits=2937 */ + "02e6d43d90f5c02f76eb004af4f8139be242f88a9563ed52d8cb2070a35456d0c7d54f707e0718f53287b0f3196e8a9d178d37d174bb441d2f30b75e76bebac1003aa854c43f917031644a9ab4dde6238b283da0961570eaac6417e53ab9992df3a633de9fe6c8a8403d3b7b2b4d171ae7de0f095a3c368f192264be91f12f903b37f3f1810590e324ab019d5c6b790eeebb7a78815cc85340bf9cecdac1f4a84e711bcc256ca0340d2514ab7df76c60d54b3983b6c6869fe3a4053cccddb06b88107af945e9f07fdaffe4c89d16d471685ca3293c15efa7e65017af3291e5864108fabb2dcee505d75599e0e3a79b7b5dad531491fc81b464204b4b31c504f53ae236560816e13fa2044657ea5eaf774b5f28e63a02b421eaa671d0635a18a83870ed5a44ececbb8700c36446f74d0cdec7d4bba55ced72d7b8132ea3478d4ba732ad7613e8ff6f4904a829df3bbaff00a4f48f43b72cef9e21e24fdab9a780b4e062a4f8ecd4d3b96294d778696f516980efecbf75959245e2b97148cf9ff676d3d6", + "01a20ed72f647f5a93c74961fd79eb854477160fdce2dbf9749bb0f32267e4868c93e68ef3387c46bfb86caf01a9b64b4f4816bc9547828b53fd8b8e6c0fe03587b410c10d41e76d8e414fdd577f4c5ade5f5ae1c61f7b2bb0a52a2313eb7ac472e5b7e947d4b7afbff5d98234ea4a6c48dec8c659ecfba055fba49d0f5a63281b52017547e026a254675a8b848fa2d8ebfec2f8adff4f03fa2968e62553659f92eb3e966d94cc580f306725a401686b8807789d4483aef9ac0e754931ac683b1cf69029e697b116723ed7a72da6e9126484a3578e9cc06143b197464df75ec02060b84fbe01ee6275b6d178b53e29c6bf2efde3d5dffa5c6eb5d30182a66d58f4368a1eb1421f20d5da5204b58806cc3c6c5bbb670b325d3730389d3024c395bb6c67fc05361cf1d0efc4199a5b955da65df3ea9e675e88f638c8be8663e1f09356ad2b406718a92b6517fd50af2ef185f50e1254c0a84469874a262a467032d3544ca35f256fb7ab73b673393abc34", + "01c6e012f5e9234850a99227da44c3ebf0724d1f", + "d949b31e58f8fe44700ebd13ffa2c708ea739abc7ab1a2140663b3c0e3b0979c580ae9ce3170728f061af171cffc7a9940761572cb8efc4f8ba476a54d1a09ebfa352cac9c2fbc95a9eb6e7c877a7cb094ebe14aac628f5d08d485bc554de6de31962b15941f4c992e378f62bd4d10601fa55338fe8262a9a5139ed4a30dc87cf2833eee44b2b4552e93782ec50b59e3265a657c61f79f23052dfa6d4a37dbd21e3af98a971285b6b2d419ded4e06fa1d77a13d45b53bec9a8dc5b3622d97496519c8dd55d8c2544476728bc6a264b8a68c5228811909ce7244cbc610a33d873d3405cd18285f29e4e165dee2a94acea728ccfd24961531e02d6926ea39b5193fc98b02d0a00312c1ff0ea5b51edfa4d5fae73290618b44d468b9b18ee9f483afff8479890df5c7a7bd5e0fce226a2ff37981c4798bec39bc502ba2aab193b2671281f7b1ed8c48eae999cb56c0199d5b4f4703a366158e742a41e2acc54ae00135a1107767c2f0f582320ce96658a" + }, + { /* i=8297 cDividendBits=3676 cDivisorBits=1787 */ + "05c2f42afb5adb37abf4399cbf917e3a7e5afae81edf3489ab2f6cd12412c19cae60f480749d5c1cb34295540d464f5e06036a6c71dbedcdd0d7629e95ca87b96a1c6871ea0d1d86b6b0c6783c8704bd9802e4d7fa9222fb3a405d2aa524de542863845fe24b557e8c714f3321069e78f592e8907f1f4606308dbdd8196ee11b3f026c4fdd6cf639c5f861511fd0938ef4f4111dbb3a6fa1d7c8fc5e0f64707fbac69e185b52837d2ff0fcb8bad3534fdb846ff46d050cc5d938d59d1e655a5813a5c8412385e0155b00b4854b196e43bbcb1caa64b75a32f5d65ea2404ec3134f4abe1987a2b58583dbdcd0e8b415adfbb2ddf6ccfb9e8af4fbac9ac4770b479c657967a0df2f881758b6c399b4759b3ae47cae87f33ae12fd55f761cd3d594635c8c8556d6ee01dc6bb43df0f9cdfd58c2aa5395f3391fae3ac4053a7bab4202e188d404fa5ebc2b10ccfed6d1f7e7afaed7d8ff956ab0cbe593bfa21b60c4bd8b638582dd32dc6e1ebd292af5a55ee1b712344c282f1d01a9c99fa156df9f774ef33d30dcb4d433a74df2290638d48fc97b5d7a4659978eb6882e445258ca8611906a6312c808acdf84f49ce12da7af9fc6cda6e573eb4bea87d2a8d4c38940dd65d26835bb84cf4abbe1", + "016962976b73beaf3c61fe396b7fcc6d808d348f9393375f1fef2ef4d95cab10d15cc2e53de96b0f14ed569158c6f028b60a8e4d2ed1a5611a77efc68f4b9470f9f9c9b399b62e09f8290d600f216649bd0660231d63f84f536e8c029275bb7c0fbd3124b699722d9a77e3d7764276501893bda66801d3a3458bae2ca2676cd1d8d45259b0690f2a9b763a5fb6072f6488d127b59dafb47385c683703328a5e938759d994b4f3d7d86b83499216bbed3ee9897518c07c0750857f2504a4bde95fa35eeb669ff2a6f51f16635467e0b02d42b3cd7fe4d4fa3d6199c42f25945c1", + "0414d600bfabbff87a4534df82b2434a236b8646eb74d62bc8769e3cb00cdb983aac95fe847cc1292c4d59203fbc1b9a433df5e27ced087e3cad0c6ccd59a1fd048bf8e4bf8cf665378c690389d451fdc7e64c945d30b12eee4ef6d4c13ab4392375221de5b4c243dd68c55da062357af1bf19076d1b9a61566f32c23d9ad80073497bc5389ba593e2251ac08ff44290f8b065df7c17f8f72cb821972182520c996e64d50272316971901803d9460a04825b1060aefd40597d15068076add78f6b4d55fb45c261d0edf9c1ac586aae929351f21a9b09a61d362ce6d4378a42eb5cb0387416521f004598da7951", + "01047e2c1c20299d63d97c0c9267e39eb02aa2a1ff22c795a8c37e4313e0895443b1b87623450f257fac4c4b3fffd3731ec51ef5e42fe4cf48b42638a63643cc4a85ee285377a6dccbf2cd1b12432728bb3c09696fe536854f0749e9e5483c9e30f330f604c5083c3729a74d026a093572918c8e502a6616e8f580bb9d3dcfd02c5676b00ec278f33b3f1274ce71ea33262b36091d7dc3df979506c083c8111d46db7949831261c434f9edf1a5d8df8e68044f8b0964bb444e7f6f76a72f31caae6dbf7f47a535b68635fcb10386d9e01712fb26dafcba6a27e97754f0b970d0" + }, + { /* i=8298 cDividendBits=2054 cDivisorBits=1945 */ + "27f35bfde7d59e6db50852ff75caefd0b7969b0b6e5373fb4081ec170b47adb0712de056994a274f06b0d78f003429c115a38d9ff66a3d39f1b78820aab11c6a5cab603b757deab1ce1ea3c66859911786a7f18201be12220d0c1cc926f8cc6f59df92c193e6e390cb45717e9aa70ac21dfdfc267c2da3ccb447d947d950bee683ee8dc717acca4a0d0c15b9607931c3482d90d804e82c1bafd18cfde6456e876b3072eec991b9f30a0dc787884066eefa2db9cbea3fb97707eb03973e11a4d11c772c07ff862e401012149eb35c2bc943be798592fdfb96c4402f9caf4d2672edd94dc63ccd3c8ddfdb9e4da76ccb36cadeb64e23a881a53f1dca59b99038bf02", + "0179deabe65666e1aaaa6937e892cf8babddecf5bed8bcc769ccaa31c3a523eb749734d8fb43c4de6d6f4542f5b1827f95eedae635809cb175e045a0455658e30937f9682c83b4b702b40b828cba264a8ea5b458fd67a5c84cd572ede78a8586dd752da184180dcb8017da017eb53d765316b9733b61f9c1fd8718b7b06c4ffe547cfdebccf9be6da1fa09d390af58513a3faf2b54e255c370a21c41e81607b707c16151330eb3668fd01a7f0f710a573a98d696529e9f14b467a3cad3495c9c7abd3a6dab131d98071d11d3b4e118f85c18acfa4fb3a0f4394ddfb62ded1731a5d4abd2eb41c832931d41c422423ac6b4b3beda", + "1b10da1c9f9b397a810768b87226", + "0d29f86209e3f28dcfea31b24afb482ea12a00bb55e66ae1e099470489126a05ef9826d4c33ae0da4286befba8cc1c8e4e923b7d1019faa4780d2a38c712c8b2cd6c4eea83a11acbb6183579213743227efc734c3a4cb234ea6dd666fc0c360bbfa07bfaf36275f01342ae58f5dd678ebaae9298c5f72ed452d2c019ce13ac3799629b384dd7d5f64af52e0de11a5f12fbb2bb0f9258895d40f65dd62b3d2b9ae57211f9fe0b1d0e3634d9494be70e38505963effaaca26ad09400454f23086cb5c3d56c2e594f82a74c50012854a34d9bb934783a9ab470963ad88800fe781679f934ac0ffcbfb76b2fc28f942b12f5dd56a6" + }, + { /* i=8299 cDividendBits=950 cDivisorBits=675 */ + "1f81b096c80c7fd918f2d28f32e8ba39103ca15568e2eed5c48fb56b80316cb7f6aeb6818e5c121e7ec5912134c976622bfad5f55fa00bd29f99869a4c452a6810bae2d811b3eef9fa2bba03bdf87f6608b93e9ab23246bf56ccdc1ceecc6c4db1fdffdb7b804507279e8a8f9d32ae19d50a3bbd3172a4", + "072bc1183f2148fb40c951659ecc3919a258f630cf20069ec15326827eea7599fc1c35f63d632e7b16870324b6a6e49a2a8edad28be53815dbc5c52e6f06508d7c9eb6070f66e4a063d9ffd480e7f6d9037f17ea00", + "0464c73f33f23514b6ef5d9f73807c0232cc6ea1c9222fee7317652da457ce12c288f7", + "06ba707d32f9687fc948de324f16bc13a0cf9238f3b21e5afc8180e5cc0859f3c0140f54cd7c2c38edca22a3bdf8ed76536f5b1ab0510ab9e9c202e67d44b344792b4809bae6d79ca49e76c84b260581c414ceaca4" + }, + { /* i=8300 cDividendBits=2144 cDivisorBits=1226 */ + "a59e34f08c0c8dbeae5cbf7f53f54b8da81322b96ee9d5f0c848d52d795b92b4ba2f4d75707366bef6416dd9dc4ec49263c9872391b52a3439a3eb5c5d9f466d09979b67d9bb09a2a33adc6658d3a18f31f9c912e13ab06f76b21cfdecaa3ee138e733a43d29cdc35d328fa49767b195d5afc1b54013db74ab7443b6852dd85268ef32812332ece2bda7156dde13a78f380cd831200eb190460b3e5d4168e22556ef979c8c3efdf2a8db3c8fd4c1cebd9cdc7aa765f64b9ca5e30f7fde21042a8ee6b5d84f462c89d8c73ff6ba30071ea03ee1c648462101e7a875b946694263b877affa495951a7040b33b4163f52614632eb9fc7668f9e79a65da8994038f10222816a99338a3cc836fed5", + "03bd90b3453dd64f3b934d2f61677c2d0ba1c84834a2cbc0de260707eac362bde9fb1abaaedeaff339f2f064d4033c89b7ba20dbd3c74b2a00ec94dab20ba30441926e909edf7cf39d400b35a972b4c9b3b722aa7363d3ddba92fc20cc041f7529f4daecf7ed2cc543d547b3776bc20fdb5df1157ca1e85b45744a1d4868757677fed2cfa0c269c329e023e49e46025b59c7ac5b6749524681d3", + "2c46efb0dba943b86591683b0b514c3fb0bf39c66ff9060b4704a212551c2d64759df987269abc5c5c2291e70a6144fb25a9e4decbeb38f19fd7284d11c1bfd0e2a2ffea7180009b01b683dad32c701181a54ec3e43a666d53d147596c7bcc3a45d6aad603ffa36dfdfa720488abb4227653bd", + "02157b0708ee449a538f0b16038677160b56b4b57d0cbaf0eb01dc08d1201fa5f56f3c9885c128fb96c0091e9e2ada7f1716dbc627f9f570d4f01338d913e56eda54c43236ea0b44653fc6a5993cabebe23b34c866120644038739d941fab96c5717f89e8e1f6c0849c9ada8beff38b516eb5786bb6f9717a10984891c4829ecdc1a9de7f28941329dc266da3175da739f50281f005450cfbd0e" + }, + { /* i=8301 cDividendBits=300 cDivisorBits=31 */ + "06bfb9ca4d6c37bf4487f9948265267ccf5fc9df43b511e91a6d46352b622e1fb043cbd9e540", + "633b8d78", + "11692e5bdcde59f709df957f6ee1d31958f9328fe86b6bca1506b88185d7f04a0bf9", + "53292388" + }, + { /* i=8302 cDividendBits=700 cDivisorBits=33 */ + "0146ab06577c73144579ff225ff008cf1479f9e2f6632c12e67c53fb126d04ad34c12d69e01306b23d9f1b38fd80f9cfd849340d62bbcbe499edf1397c62aed0a06e0d0e0224090b1aa972478fa43d7d890cf65ae17c6b87", + "0190c371a5", + "d0ab5686b0c915ec34fc6759606b12c972109f6ec6d9914813e229f64866e49100f88b4e7b3d0d48663cb09ee6f3254bf724a047291cb6384af5a709db9761f0f1198d545c1c836d2ea64cc0739295a5acf295", + "2a714c7e" + }, + { /* i=8303 cDividendBits=1675 cDivisorBits=796 */ + "0790ea5506ee10fa0ef276498c920322bb5f5df9e7bfdc1cf96814255b5f547fd415d53b88768879a840e162ec952077e1bafc44e5950132739d9f8e6c6a9316e76cc1873a3b479e3574b265e636b2bfe8fb813c6acb5580919532ee97ea5b02fd9ac6820dbe8bbb6a617f1a1ba9345caa76a544eb9854e9c28bf0c53f9f68eaf11b3928c0fdcbc60c37d77469e759e82710387efa2033a6953ca7045931b62926a0ac5bc99168fe53a223df0ab926991fee93dcfccbce1b548ebeba7991a61af944da4c61968bed5f2163762f3eaffc21a5", + "01aeeb4fdf5029d5c6a924797e0179d6b757fd763a7ec528e3e2f5c8a8168f1db6a5ef7501482e95d409669a96e2fbdf2dd1a96df558944141d14c0e9dd789baf9d3e6f88c20d3767853fc9ec8afd4be0ce8f0ac5977b7b25d2631150fa59f3f29b103a6", + "047eae3933bc08632f32f0450fe3b87e95fd5e730cff07a5ce9a9515c0399c0bcffe3d27ee4d4ba440513a2b965038442c2b6fbb82c606ef9ef8c85b880778f55de0ba35f13cb8963934b527b21a6ee7a188c0a15b715a48a3aa94c0b8cf1be1e3379c96908e2f55cfbed3f14d2a7e", + "44f4f6ead03802d42af0fcdd03fcd89d080c3be328613de4d98cbae62b62198d189141e20c9aaeec47c564084e3162fe80187e6359fc5e640291071822c66e064405fda07efe8c02e59f3b1fe5c90a5bc4885b5038ac78207fc4a458bd0cd1c15519f1" + }, + { /* i=8304 cDividendBits=1747 cDivisorBits=1398 */ + "058c32ba86af386f3aeee4cbabf4bd879edbd5ab80623e9ed87d707a58689aa55b06f4bc0b32631ad2b4feb0a8732e99f2b4eca91d06ed3bdcfea33e8b801af5a5928baa6d92a4e53a010f1be2b44064a3398f0573d487573fe0adb4e089c94137bbb4a77f12a00a18ca7ff9a32feff2d938d51a8e9c25f077c2d0c2ef0d0b1ffebfcff9fd36c8fc5fd59c1a4c5cd86308f79d958688376f34d45b3cbd95704bd253f117b13c1eb3076f05d9a6744e1a4fa97f0a4f5077cbc8a910d53e82d6e7d9c23e1be123873d1dcb28774f9b45ad5aa86597a92afddcaa8650", + "17c0c39d25bd79b68a783d11e73a496f49913768f0d82aff0ec298b5f45a3b88a301dcc2b2793a9c4d4563cc7a6fa4f5cadb2995905e3f1bf3ee9ba66fc327b5b1b3c1b6dd4d621f3319b138e9f9ae0a2878d6f94c834491f7c4644b11e1e12aacd8663afea4a085a6ed6babb098554e88d35254ffeb6e45947d3b4f1429246651fcdcda7d87c8f7452b9b75a1a6801026e75d9563c8ca52052146a82bd610859e3782f632e809ea602dff93939100", + "3bca514b1175eb037f4606dea16d9c42505fd0645d87eb58928c82bbf02849621b9b184b4c95452dd1d54664", + "03359b29521c2c903a8f8feb58f5aefa66f1a1a343a8b755789797c0093ca594edd59d985690585ca24ea498f7ad0fa6c1a1eacf62a3e29c6490a641b9e12a259197382767c8e09f3d0361a1398e16679a7eeb8f6e65a4a5295a67ce66740ba4c8ad0bf8a3a8b11ea9819f306f6d77b7f6833a6e0311844675a15de5cc7f4e875395d055445d710eddfbdcab05485e4d66ff82e0d516c716e0c5ab3b80146f30e36b19cbba9f38b45c90a5385fe250" + }, + { /* i=8305 cDividendBits=1116 cDivisorBits=325 */ + "032f85fe10d2ace57dc81f9183dffa3e72b27ee2dfa86d87828edb29fea19c902bfe574452ca4efe36bd5b88d91e47c7250d155e18553b37d74cfd77465171bb06edd2301ee65df1f146e0de0495506f0d78d5fdec1d696bb9081e6a789330feac99423c6a9104ad2fdc6928bc765cdf0dd4b0cfd320d1abb74575d32dceabb191e9a6ca2950635c16b6cc45", + "0a8d7e810837a9d07694b9bc5fe483cd3634c00a79d6309e16917c0cd554bbc185be6d48131bd276a9", + "4d47eb4fa455793d0f16746cac2df7d967b645af91e1eb6087a3aad52e02b758ef8d23bc9c9e612ad8b3469f0a8afff8a6433d7f92e3fca1810f89a33afe4ab0ae66d5fd6adbcae4d83f952aa86c58dfd267c453845e0c33d1256ff4dbd7fe3401d0a0", + "07dcd65d052abba85332c4c7b1b92b6f25677d2cd7d833e9f0b88d2df885ec41aa3dad4a34e81a52a5" + }, + { /* i=8306 cDividendBits=1561 cDivisorBits=415 */ + "2b144552a4e261e4ac89adf226d74f1bb7c4e2470acbcd1d4a5f8b05b01a18ca36bc837d00dcf0b1db4f6267d536fc6502491b77a9f3f2b8f607158066e93c5868ad3b1280146b2e50cc7cea580e2348439682bbc3da5f4e4562f63a677f93532436a6ae58256b99f29cd04040476e8d443f9cdf8d99e376f67eec5cf26b2bf4f9716028b87a9881f6580e6db27d797abdcd56132a3b66655e1d843265da6bf07e65ce1c38756c442266993cff6c0c68b28b54ea259687cba5e545dee99c073ca42e08", + "1d200ded20d6734f120deaed8bceaf6e6199ebe384d70e11af7ec6cc1ff8852b08fb1a6bc275eac7832adfeeacf16abbaa0aecf2", + "017aa67ad4bc8fcddd3a97991014bced4c9b1d2f89e0cfb494f5c4006c98780bf45bbcc7486813b0b3ca1f9312762760832e605a3566e3d37c7a72c9f7cd8fb110692b92ba38563a5dc90acba4ec8dc7dffde79c3660601275f2af3eb65abb9e78061c6e1e6e5e610e4dc72c82c71eefd8fbc226d0b6e62677e77068e89dab527f41157c2aeb1ef44e923d5e38a1e7d9", + "027b277d936076cb7445e08c4001276423a931aea5d4bfd6332d8b269e8dbdf7e93f333e324f29233d0fb9385941ccf44960f6e6" + }, + { /* i=8307 cDividendBits=2901 cDivisorBits=2130 */ + "018726023a57e10d61a9ce7e37d8bdb96e5eb28fa98203a12743274c7093d35f09d608b7895f48b70eb77be4cb2ad88c532c6b18d6cbb6b3211484718f1d1de87dd15f1a0f1dcd731864f4045a3076279fbc5812609da93968bf059ccf0a049068db2ffea89571e3fe6f4ca82de821a3f0d7a8b8086efb2405f9f6e711c6ee110b2a59026c5615fbd4ed93276643821b9658f809f5ca2274904e0ac8af1e2bacc47c3dbed79c2f1ec92706602d4b020d44135d7f6a908bc58bd328bba77ff4b6ffe051d398da1d01fdb8ab19fba2a2ee5ae8b202144e92041134bbebc09fbfb6f249b0306d23cb978ce89155dc05b03c3b12e67e5996cddb2d0398b6cfb26798c30c464ab1bfaec9c95285056cc23c54969d7ca4e19df945a8403380d9aed2dd6e311d999f445de435d2d90d79729baaed40e8efc5e1264dcc0316ab2b80eb88962e534e5bbdd9a16d25e64b2388b9fd0407dcaf9b46cf68ad8a67bef50f253aa9f3f90ef57ce3a8ee27c0", + "f9a45fc13a75314e9413c2d28d93ea69fd1117b8ea9349a207f38ecc414a5da04f15bfae8ea669d5fa148a614d7a18618bf4d2dad61073febfb0672dbd4363b7424476a9fea63e29886237dd736ad2e5e05f9da6d554429f0b8ae6d19bb4c5310ccefb23c412e31100590040443876ec4d0336f23148f80c158a2a7fdf6d608c0c0e36de13e1616e4e1f3f310d31243b346050a4d64b9532fcfed0e12f38ee3f00a3f86132b180f84cbc58a0c121ba1dd45ea8f74654cf37541c93919954ea74f1169e3bb2747e0e2e08539d2c04109525bc1799c2190bbfbc64e44c46c2923eb9a73a84d45e4133d66ac59c5c4ed8457d3d05b77c4f3611aa857793c0fbc6926191962205e9f0a28ff3", + "01911c3bbe08515ecc2adfd0a92203b5775fa1bc129899ee8403aa97a0d296c56137c8aeb9177be318752fc41d6b2d7e6381133fdaee26a41fe7cac11b0d8c9b9ed0274d40fd7a6909c60cece2c01be14ad7d3d68435d15937b6430dfa5c0f9bae", + "f2ccfa2c55cbbee354c27b50cfb1cdad591fb5d7314b14d8211ff8a4c49010687d167c8ef609fd3038db7239546007cb3e1fef39b93369806c8cc4e3db58ad83f57c454c944695e0ebdd5feeafbf00a3faf698548e03d0e355911bced34edb12765704d4c04dbce58418e487d38a50b1863db048e4de642f05afa9914f011d431679af121b0b85bea53ac2178ebf64fb964c729a8ed3dd8824c421a3acbeb90e2ea17a8182487373c79510030a8f7033f29999ca9e5fcce757abf7723f63474d2439f7505ee8321ec5f364e5539eaaf53276dd3ed87eb783d8f36b93f1246498b2449d940d551a6c74b9c6fbce3b11e99764314b3579cea09843ca36fb81586cda3b5068639fea0b2f96" + }, + { /* i=8308 cDividendBits=1806 cDivisorBits=998 */ + "18695978c860826015b849ca7054f59a5529730f5566b2a01b134d20ca5b22f6c01de734be6ffab0ed0a8a01d5c66a2529078975a1515ff34c0ae9671b19275f9b144c15d58046b596eaea72afaf0a09e8fe055346d66eae89a33044f06e5184dcaa741fbda66f1a1b0833dfec2b81fecffe90d5398d078a0b99d84dee76366e50f780fa2a58724537e5aa57418f199ade9efcf9accf54a93d692507469bc9d04a4ed05b0dcee67d877443490aeaf3480c2777dcebcd50f13ca963fc40283b71496a52e5df6c3afc32f3701035a2e19925e0ad951f47c38add12772c79cd688ccc3b", + "123fb1021ad3070eec78e625bcb8b2cfa15e8215503e3c4d6c5f450776406c6ec4c4a3fdf45b39938686a257ac3f5b064ecede860fa19b8fb767f260f3258866fe73feee3d7609cc7778f933b3e128dedef7fbc042f34f9ac3bbd539846365c262b5bb7808857468b356895d389dce285e28440f242f3917724c14e847", + "015673e5e73518872f786475b51e176947cfefb1471a166124367d15a109246a3acc71b3db4627ebdcdc619d3deb48539f938971155e75e38942984e5776ed9a4ff38e8269b2c964561f861175fa33eafbb57f360d893634fddd2cbc3155728e01ebfdf6c6e9", + "0a91dc1413a5a5d525605f9359c0576181432579b949b42c2f3bad1e1c197f7fe59b4d98ca02cb75800eabdeb7dad3caa9b6e8e0e1484335890ce1ad3db23f440a4d66f52c43cf85044631a27c63648406e6748660c6df191e4314c93b8727ec7ac1feaef835d9648f90aea51a0b55207ba52019c17592761b9ea4799c" + }, + { /* i=8309 cDividendBits=313 cDivisorBits=278 */ + "0160a139f52dae6e69ff9def32f9e9086679813962af41d3f4d077fef52fd785e0a67186e4a5130b", + "24af9779852e98332ead3275e19f589a54dc78a92a4d7f8ff1880e1d867d333886d304", + "099cb4bbd6", + "0202a73cc8f82ea5324ae297249a29e4495ef05bf153fbe540ae7fb9920be458fcc1b3" + }, + { /* i=8310 cDividendBits=849 cDivisorBits=707 */ + "d0ac79a5cfbe185971bd6e0296cd641e43a0351be1457b36672ffbd5b639c54ab3e454b8b81bca301ba09eaa8d1a8873a432c5846fb3d6016ad896a870609379c56f48ca0274d2e5f5809902eee32dc1f6e242f4c210b4edf0b2a2300bce90d81c903a3260b4a951f0b6", + "0492496e95a5d13d0fe5bbfc3235b2e9ada80f7926059025f08b17bf8d94144d41ac501a1e26ba62ec7b341367b502ff8742d6d0edb300e5fcf35d1ecb9ad81a649a00d9bd5a33aa2e5607584ce6977dbdd02c82d85dbf8e3a", + "2da5b7b939516b3c59cee34ce4a350ccbe36", + "029ebd6458746a291f807fd24abe8d9ee8f2ed2fe4d3a6e63826a36d9dadcfe467bfb5775d8578a48e7c7073684a9e4d2799d1997bb2a079ea9968bbb59bef2fb58afac41265209dc59bfb678978d599bf732069774122e47a" + }, + { /* i=8311 cDividendBits=565 cDivisorBits=199 */ + "0a67477b271da98fb9f1972eeb5bc4acdf6dcfc4a246e734837a4101592e5f97d4d041312b509061a811f38b7d964fbfb42c335f89d7eea1a787e7940e41c2bd8a7207968bda34", + "4a0d2b8f44e173b023ef5081f145b14fab91a03decd00724f7", + "23f71b076cf0578202f181fccdd68bc8d5b12532113f21422a01f4a1bdceb5ecb984ac385994cc424bd587b643b2", + "0a4c2357c84ebb17cba96633c605d774b31a66a0d78a4d8176" + }, + { /* i=8312 cDividendBits=3703 cDivisorBits=2684 */ + "6c58f4538ed0901b3080b5b763ed5b6b938c80bd4607fd7751f351f94190078d1c78d77e59d8bd31d871b8443b3ae3814c06f3b800ff12bc46cf8e49e6508344ccb24445ea1a9d3cdc920f5f8366234b0e4366f3d9a7df29a725a54b558c6c428de4748213e4d03368027c7890ff475ca5dae1e4a572bf4fdc5e7323a92983556b855504dcb777cad20b2230c436d92b0b0397bcf36ea12b66b211616a98c3785092f2c0cbe26ea2d4c2ce822586aee97efe27a3e23bef6d06350a2721a511f2792e493997f92d8b7da26d5a0d466e53a064a5af5a6d9e6f4d1396d22fae1dd46b63a55340b7f57f5f80e65a72cd9ea3bfe21d0235a1a80333d5d6c5394fdb9e24fa251187f4dec0509471f99e03e8faadae0567116c0ca259ce1e2aab396639f9ab921ecdcdc79715e31e0b7a5bf0f7e4e1d2590f94ce5a1ff4b15849206ecb9729f7d3a389cdfb6fb0cb3b2b3cdf348fcb7520efed35cfc558063a8a99184d96e425d8b4658af013a37986c30e45163627937c9288e230dff909a85ea4bcda3e1f1e51da227f482776e4348949772d68fae56369a3f7e20b40b59955da82fb45a3868ba5532d0aab82ce88db7d93b401a5cc71aaf8b62394728fe9b57526725245ec04ffc3fdde3ada54f3fc0639", + "0c92657672acb8928b894638836f6604070733ab28b280d5659bda2d5c2fa5eba0d592be5fdf377579be695aab6ac2930805359f6a456469a8fb54fe7b44068543abe4f41835d6f379b9ab217f1e4ac293649513d07a88245e1722a95d6a0fa4da8891e037b04ae9010ff51c28a05ce19f7c353c911ceb4aa714ba329b909a5bf2f37629afac20308134d61850e37dd5c249cdb5411223c71b25d93214dbbbf010cc60dcc4c037c1e9a32522fd034bc3c59160bb6b8374bf47d02c63b8d7e9a9d890e34da1eae2f7622c8c0726e3a23ba459178734a986eef9ca9237c50eef97eaa589f5aa6c44a376d7645bb0c7ec03e3b9633b595c63abb2ec0641c41172c24b749f584328b124a7ba1eb5e703cfd822060208646b04c6c520f2bdaf0caa5a834966bf2b8af71ffc8f20cdf3bc559a348a45d9ad463843495113b119354a283f17ee26266b9b6fe7dd38e6d2f0a0f7", + "089e45d6ba339668bfa54d541c0617c997d867285ed48a578cda67e37947d74cb12639d1dc97aa6855e3a2f81338182350ad198df5cf7e315b4ebca5a723f43494bcbdf1cae4182836c95aee767c11012a9357af9f5f4ec45b73a9d48b76951603da1c2c77a908536ea3a448b2ea772e307a66714b173442f3d1b4e8676cbb7c", + "03e3752124a89e9b09b7555f741ecbb7adac938195fa257f04148e0f11af4e9c42cbc51c927e48c3f33bb417014c54c927e3f0373a7d6724abc6212a4fe8647156853d35d7c443078320459dab5835905b7c47a091b9d6689c55b50a572defb5fa047aa4ddaf7563257b0cb243382b28a757d8230d6a0d16c45718e391abad989c537eafa54a5114bb2796e913b3a1093f353857f37e0ab825ba55ebb089b273ad0901a945df18153309fea61e233ecafa4aa06af628e52c8052badcf329d81fb78e544fd5ab3a9f1d5e941ffad6d3715dfdc45a9a1f7b9696bb1ba80a9b77c696bdfa8f5005d3f9807ef3f2fc56728348b05ddc701f1d8e0fbc9a184190411c5e72e5bedbeb1f14cee8e288deb05fb4f2109d3fd587b08593ad484d3aed1073033e350750bb3f687bbff7c8fac903f6c4e913d5d39e837515804a079f9ad20186c43f37e3bebfc5dc5c5451b8a5a195" + }, + { /* i=8313 cDividendBits=312 cDivisorBits=51 */ + "368c0e7c837b02ed435d4cd10a4aaabbff6e4e40c497cbcfdebc316728edb748ee3dbc6f2b7763", + "07d8d2f331cb03", + "06f38c405faba63c8d916b910bc7bf196228def4e60174cc7951c4e52329ff6d5c", + "02d7db22d93b4f" + }, + { /* i=8314 cDividendBits=3588 cDivisorBits=3072 */ + "0f5ce2b1e6ddf8d06ca7adfcd8c5c0dd622d39fecf6373baf72864f0af868bada5fe04f0db3dc30583b3dd74738b721a70302a1ee788d93843af8aaa0cdf1636e710ec14145e8f2f298887723eda87d820957052624e9300250e4d67886664225e51e928c203376ed6e727d41171195d1702d84040902613b8209af7cf2125fb438c2cbe5cd3aaaf2017dc66e875998f4346c42e98687b8cf31f27b7bc78488fb45c9c1cb0260a9c3a3a06e420656668717dc27ed02f231eeebed61783431cf8471a3df10a651b8f70fb73bbbaaf7128a0499d750b2b104282cf06ac398ba22357c8b7b97d428568584cf01bec14e8b1f8612b300fae7e897e3151c0734326150d4fce77aaa63a4be8e451c7708b01205f56151ec0abc534ac651078ea7c27c221698efa60a8ed5585a8e6aba48412ee02856cfaeac329a6ed82c4ebd1e2909387835f455d7cd7d5722561b3a3a9e301f2079a279b2332cf7d9e9fb04d4f00d5e585a35a0172520c169f059d7b00e3ad6c0075ab5074c952dc6d734bc9ccd57d4c916f59d369b5ed68ac5df45555a3f8f3af72ff213df8d378bb1049ee3f89f0baadac370b52d6bf4d74a76d5895a41f7fb5c1f6931311c446bc55cdd0d14ad903", + "116655c05f12ee014f0cf0c4633a93fee78277a85850ae84d5b8e460fce8a9f2a4dd572d9840abcd00d965c8a484ca9c1f7c69abd8eb8d28ac52a4b73fa1a2b419f922eb9fd835bd55600636b2852962def516b1be0350020cb45eb97817c163ca81d68c0b73f32f521954fd7c3f24c62cab32687d3408f3e697005006bcd306233facb908bc0b7bfa4fdbc3282cfeefbf0d1ca2c5d2ceda72532be137d5bdad937ba016700e26328f36defb35134e031e44eb57888fdf5bd88e63578f5ce7c20282aeb2e74775911d07ebc910d38a419f575f9a3a688f193809b6187b09e5d7de5f8ab02456828cdabfee239b6d4d173d2044879fd733c156c2d2833e0a576ac21ce99720b958282b7fcc0b2d6ecc3480e0364a64380ae9f83f5b9d89c378242450ae3729b56e78dcf9f9f80f4057d21b4803e3a0faed81a87dec375b488bdab77e736437a7ec0d4839e633dfbe0f5f7450e74fefa9cb1f7693f9f158338c174eda3229e92aaa13bc6ad76200c5ba37eae907eae4188a79381fdf4d9e4856c5", + "e207fcfa04cd5017f3496ee9540343ce7e29c0ef587ad8ef72879d830de1943bd25908018d53df51a48a8643060e962982a8b8c8f296a4f7bfd262cdd97f0a0c50", + "0275d9d8cc6ecb3118a3e25560430004f9eff65e23b76be8e4474c7507488110ca7b0aeb0163525e876d5facd6766cbde959b3c3390ac4b56b7b031590fcf3f489f22200e96d8e4195704a8c22668fb4cd1ccde69730af75a170e3683783664d79fba1740a5fa13c7eb2d0186709e1bf99f75bba908531129ebac1a2c59246479a936edb422ae6975e877f860815b93dc5bfb6315b4a2b1cad7759cfea7d713aaf08cb789761eb8e8598254fadd560191aae04f7dfe03aefd481c66cb5eb3987c888c0ca3f7d4323c84e1bf8729cdf8c664c926764190666a34908476c014b87de8e0697d36b6f7acb91206a0e9c1d6b88b811e416091c758ba8fe0ec8d8f38b66c3b985749b1a8c2e3c0717f744f1b707cd7bb7c9812854d01ece81717b138d009fd04614dc94e0686a6840237d346d4d112ebf1d8a4f6feab108901633c6f49ea9da290e0ec32a4d8c2ece680b827c488d36a9a0f7230e660b64539b7d3adb1044cc42e32c2190c28dabc70cbcc96025a21ab5f10c9f588f230247d7ec7f73" + }, + { /* i=8315 cDividendBits=1155 cDivisorBits=114 */ + "d39802652e66308c4347e1a61d4145a4c601c6350227cc031ac1446fd783bcf5a1d5c392338bff14b95c02ec52d9da690a7837cbc8da8638b5b0132f180b07aecc965d79f9433a9385dc5fd9205723d6db0655ab4da800d97306c8268b12fe746e9c39290bee7741c6c74ddfecf5524c3c75e9608603a35c8c93478ac8737914053e56a5cf08b9a6d8f8a3dd1b3c8b72", + "01de1c43bfce242bf9ea527fd03a97", + "714bc85e043bca1fb2ab6b44b07ead4e0e2824d0597ced54d54caf01367fbec78937a3f74bd6eb2d56550088fe6b7a6709572b562f9954728bdabe0a7c1143dfbf1eb3079f2b524c08b2d987d5f4711fda754519af3062f6f95456a2940d0201c32123fb1ac6bdaaa5063ccb3dbd0e1595ba7585e9ffa4c6885213d018ae5f3958e8", + "015c0fb703a732176d376c9dc48a9a" + }, + { /* i=8316 cDividendBits=2506 cDivisorBits=2334 */ + "f99df44bc69ba64983e7c59acd367cc77b1d0fad75f86e3c6885db5315eeeae2fe2aaa9db5cf6525cdb00d3bf50d1d8378158082efc7c93e4056805299e8b0db0862f973dca46235af20c14909bccebe86cc4b3fce899a4efd6f712a862120ac1224a00793739e17eb4a260fdebf269a43062d0cbd6034efd8315dc25b45a52a66699886af10020bfdf46a32ebc60ffbee6ca71a7cdf3bc8f3773f70860d20252447decb137860b38af812778832bde8b3fa67d091411ae36f9127efa6484e27913a4b0b7e9459567d7870f956f5b42c1d074ae3e7240621f76e7b053b9bedb632a97acebfb033b4be3a04f8504fa9e2d5bbf66f6bf539ce20e7ece7c2d844304799c39fd7a9ce493beff7ab3ef7f77cc10cf1bc170b283ff5ddbbec675509a8db99c8038f49264f84930f035f405dd6f485ac5a40754bd1bf", + "1329bf775cfb45e3aa5305f2eda7f1437dffee64524e98f73ed20970199b87b3da522bd9d0b93c21d1fdd59d36550b93bbf71b0a39d112dc91ad9aa8b8f41ddc3602bac210affde3fef89b75a2bfaa18404e7b615bed6a2d040fae20b39ecbd19dca0d3e0de7c289d3970a63eb47d16c33cdc1a3596b3b63b3528f8c563a9f9fa5033185583beab2cf43f2b69474c42490d1a6b5bc8b86318c91bdcaa3bcf953cd6101abd2e9a0472d76be46b48fa97f701921e74f16af933f6162ade48b36bf0c900aec97565297c1f436c02b3a2898b9fb23257acf11f246596a684b3651832c3633bd8915f179d934d41e02e0d9cfc769cbd1717c7fd89c50facf786738e1446fe65ff411d312b5f3eb0fc77e01341a6bce0c13e866082cd54be72f7b168a7e37c04e", + "0d06a3afe088f9d2adda218200b9458c8454457b819b", + "053e0d6243b3572f3b753e83500c274c7fdb41b787da4383808c668b642c415df2048a940c140c0a6c53074c96fda938ac0ccd18b1dc411542f368e5b4977477ed5d23df1b8c882f016578e7801c29e8770502e1629e4e17d3a82cfac810697ddef531386ebaa7d0163f2209afb29389cda00451c8d29e1a27f137c0982499b44dc1ee488d5f282f3121f27c0bd7db9ce8b9463bdad041e1745ab0f641a0bbfbf741bed4641f71f49eb5aeab07a0ef878afe5d049670a0badaec613fb628dcc82921766f5a50435e3ba5508900c7e5448bc25761edaadb24c47dda01b3a3571ad62e9adb6000906b3edead7ce1fc6f98e73685fa4ccde0ef984c6f6cd5899aee27cc95f5fff1b072172c2f3c7f48fa49d52bc52e499aca8e386e91a03d1eed9586291485" + }, + { /* i=8317 cDividendBits=1621 cDivisorBits=1073 */ + "1ccd638d66237e4e04e5dd1bd2497b5cbcd5ba44fec9cab94d4b063b365f5e37ec0dc2f6702da9446eb25ba679a1407d39eb55cfe67d88017947fcab6532ed1e792098a058db5e54c686be5bf457ab8d2e461916fca8ba57bf4750e827011747385f6d900407f321b2a0320f6eb3cef85eab55d348d11428de67798ef472299c601e405160eb9c2bcb5393417bb785fa868fd2ee44e5384c35667b6d2d0e35a3d9c81f79dcccbfc83c484b48e660e650d6eaa8113da8c0f78357e2ebaab42e60c409cd76292ca68fbd8773", + "01f9d2b58f32d4711f35a30a93dcd9abc44a1e3fecdf283034d53784ba9fc0f8c6a03c8fa54b2233a945f761e16ea33349caec49b05864d6de5b8fadbedcba8ea0bb498cb399d5752530e25d347f201a9910876eaf4afd2a2fb953b69376482fed4b7ca6a2d5fb0c268f97b9affa93c12fdb1583855b611099f699d5630a1d5b818e7fd08a1e61", + "0e93b705ea7174ed5b9d77a70f39501c5eb60c6d1eb90b67ae429debeff5351f42cc9a7b1ee455af39845af3571fe8c0350bff5b4bea0aa83f3638868fea286ec8dc582778", + "235e4745cf47b72ddfc2421d5053d3ccbd73f5c1cfcb4cb9bf216270c6c81fb7a7700d93a9abe99ffe367f9357647ea8b355a9814d81447a402999174a409e3f516f00c20f7d54140a18714eb5706e5218a8c2d738fda94bbe9990ba6eaa0f838cc18fcf693f0c5bc86166fa82f60980f946e6e1fdd52918960769c3351c53751c99f70682fb" + }, + { /* i=8318 cDividendBits=2329 cDivisorBits=2180 */ + "013a6c5a6600770851e2ec485566e08af56128d4434aa4592ac54bebbc5230a38d1e5ccf4779c66ed311bb26add8ffc24d77c715c254471c735b68b989c60b922efb2794c8e669476ad71649a1769a231f5efebdfa76076ff147f727a9211167b95aec5454158af655ff8790133da6b074c5c24aa1ecfd639a3002c30385d90331d5da6189924a96e8c8a040b00c2efcd9cdeea3c06d952583e86e56756e190e29f932c56c261dda2a4fd7336e09e72a7831c5fbdc86fbb3698430c2228a1bd20006b29d3fbb6372f81980b9b33c74b3f2c5ecd109adfd23dc0ee8e6725c02562a652d0e6eb9dc5b7484963c53fb5151d3833bd9f86326ff2b9c08a00539d845c53aecb7ffccb3c96fada989082694328d3d389874bc66dafcb3d03be70c2d8717712544", + "0c5cc003c7e0c9c51eedc55cde909c7abf3fc5bdce0449214ad1fba9af46062a889e99bb69e89fd0791225e51a553dd8129b19ff33385cc1a1f3571820913d10280fd1007c1501f57fa8c98b6f33bd3d459d532221fcd2d9a20300ea97d891452053f9079a2b9fe9f75501b7871f44d21cdc2d3e647e8273e0d269c1b876ea1763db78961f32879ac7a0b3cd1b5d1abcfa7a54098aacf8bbb9f67c2e091220aa73d9ce4b055275b76d0e118cb6ed5c07b6072a4b8f490e860c99b99fbeeba340b03f8c31db00615dbb88cf2c19ef78ca6d327239173d988ee4860d22283bd4759119760b227d15d316e8e424399a755295415a6d17f8d4c9ddbe019c1bf9cd20f0ab6e25a5eabe8011999483eeb47c420e", + "196f1cb2acf05b486470c413eabcdb653102de", + "0abb97180dceccf1cbd86cf1a7283ad07377c661a994aa88bb4d2ff4dec866a54188c5eaa83ff5b07e6441af675ec7df4cb2eb110d7b589a34845de6acbde576d6309c4a0492c7f37cfbd69785e1b474182e423dd5e2f4e1a6fc5fcbe63d32f8e96c420d15f5634a7b1eca74ca4a742b344780e1612233db1272c1b796cfe295b2c78c27c2c5b5d12378bfb9cfe5490531cc54cfffe0e77741fb3b313e9ba7c070668afc458e9167e361e5b60172861b0ba6f22ad0fbb053426acc96c22b481e06a4e19da01382ac0dde6c04cac0d00bbdf99d59fd614de98a543eb0a838aec119e8397fd6f03e5f1b54f4588cb5b7aaff61b7e2502d1e058bcf74ba0d3d8996dd301cfaf36d8391580fb98b4b707dc120" + }, + { /* i=8319 cDividendBits=2062 cDivisorBits=528 */ + "2329d1d13abcdc9aa8fb0e6acc7891c8e3c8af8b0f80a1523c2c59b34c3067d2ebe62a0274ec50370b729ae6eb1b615b6dc88a29239a77e239c186bcb112e2e0d59a41234706903d6d8964c87c4186dcedc542cab9d6e972efdfedc3333e8a34d23c2f85af322a5293e7f04501ded74f89bed8a7926a6f0f6c715d71bc4b256a4b89c9fd5db4d822c62662ed47eb55e0eef088013bbaf23d7a010f97cf0cc97bfb045c661f2d5f5a9ef384e2873589c04fd99dbd0d63956074f5a1437132c3e3e9b468e23ce0e53f801ba0a08fe861064fe3da538ab1c4e27e08da42626bf90de9b89c2d889ad024d62a8fbd9bfa05e0ff63c781f2a8a0fe91ee871e0f42dfdccc2e", + "10a87ef200ba7e3821e8f95ad95efcfd6e0269dd30a9cd49542997e49d97e85f39de2cb1d3d97e31212d9f282a040fe8329ece7dce1938610d02344e01c4c8d86246", + "021c625522007abcd2455677a83c7ab383e707a3f46f1a5c1379a50c36f82e3f4f8bd4a60e65cd16752a5832ce73265cd735c0a3e59aebbc51f0d29e9a6c698e8edc694d823304df9d4e654c0932a19ee42e3f4fbdb66aff1176e5afa98ede6006a6f1915fe0247f4abfdafddacb8bc47bd8d6ce93a505b80f2a7b4efd878a2d96e113cb452664a6a9c20518b36f46ec921452f95e78b316bc6419de7a8459ff3319d5a523c3ca20d7d11bacaeaacd23b86a74b7954833ebe4a1e7fc488173a9a3", + "0c5a6ad9fb5c7cdefde00b2681011a5d253fbb15c6474614301a1a88b669ead969fcd89d99b84a6bae66e3fc1b08f935991175ec6e8013d4b89c94ea37f6b9c4039c" + }, + { /* i=8320 cDividendBits=3825 cDivisorBits=3619 */ + "0176c4fc4b02bdd25afe772deda5524b22d8ed4ef89d77c7d2ad8b472d1e914de84aea0865d44bcafa3b02360148d7c6a15f27baa8fed871a0b337d3e954b48fdb993ef8440999bfba50711df51594872cc9d7cedfea8b9e58bebffded224265170bb29cf155f6d7f42d7cf34efec8f9a13a4275f9561d9c075eb28f53985ac0db49d0df0779d5a0d8402fda99aeba6282a40aa38a912d399a84efa5a183bae82ad85e65280b2b48d8fc50a2c5bd0c6059b3e7e136c16380c8787d37d4f97cef9f9a1a683ebd9a7882fa63f0f8c0fd2af8f180632e049d1d80c7c4f13889707f0292caa5ef7fef507fba7bff3fb50b5aa362e1df7ab9c7e58e93fded298f81eda77bd2d5a473b43626b28d612cbe9cf179acb080c9f65f19cf3985e6aa351d2a7f4cea76b712eb5b6b6a867074768529fd5cfe1432ae008a9eac47ba2c7e3a34d789f96526a81dfca6dee1366a58fcffed666e0ecd56348fba860f019e68b5e55f0701f5e1431493c62410ad25e2aec772b011edf51c6c1a4d94b16c4ef25184dcae8b6675ed7e96e6eac83bda74aa8d3edf407fdb6af70a9fde01059a1eac909ac15a405eab32dd6e99cd63b605f4adfa861e1c86e8104426a1ed8f1bbbe02bc09a67bc794d724112bf70aa0fb55cb2ad652cc2b10b769191c39c3341d264", + "0572877e800b0b6c0191cc0b8b4636488cf52d4a290fe44c122aa0851bb37ba9e033796709e7f8b5285c07bf01ac2cce98e812d7a02db613b3ae2f3cefe4c9f16b9b273a09660b2e5e6151257ea757781aa287bf6dfcc5a613df19cd1b639d3d0e06e4d1e8c6bcff2ec2214218382542c45b14198ab7c5e2485283586a5cf8da798879d147e5f66891b79fa32dda89c215a892c8de77d4998aba6fd111e48a664a01e11b8f849d8b6957970d29ba37114c74ce76a19bfaf211a4f9bad0f0c1facc3d6e0629740986ad4ed63a1d226535ebaed60dfdba82113a2725b1a735179f72ff26ba26709b10914126449a0ecdbe2199c014de4b219705c1f1cbd18c49969dacc361bbc62675647b127056c13e5d6f1b3f235c38b517253b48994920bc7750509bf9a08ad890615c82bb5a20397ae63eab9aa7f4cc1cb6bf8c41b11c5b3bcf446abc9dc77d7998ba207ebcc7c5ae44c2097ea3a9df48189f3a51752279d4245c5f4b5b848ac85a9acffbf23d33e4622baf421e28c6bd65ba08701fe8b725ac28c8e1bfe22c03a407da9e9437c5b46298ac5f98015e0d67aceaace244d08e0e246df7c89cd5e14c0029b88a34d8c0ed3dcb0b426b6c6bd4fc0c3ccaea1e9c3034b24c88", + "44cc5145a2525b9f907e527fd74c864865f2fe89e3ffe846a768", + "01f8fe1b5b744d05650a11f71bdbe37ac5f519cedd102905b5bfe57ec042e3b3510d6c775efa4041a17ba3b24166f7ee19d10c5cfdce54d30cc120421a3ed3b299c9e364c840591b95bbf7c84353b1f5aa9cb26a45aadc842c5a1f5555c6c7b1acd7ffcb80b88d6920d9b0b4a621ea7ffe8cdcd5464f2253fd46becbcec37c7c2728b80bcc1b3750f36ae64c03643c5a616e25f9700f504187deb1da9766f55903666ba2f877811e1a8fa97bbf79843d489af18c439afa67b88c8e070c947613b72b47464fccddf0a27299846c174fe69e4869abbc1d7d62c8553d842512139db967cca96149bcf15e06ec6a82d07fa83049281043b36ebd9ad73c372009b36ec115c8356f73e96a75a713b92dbddab1255a6947060ff2e197a14167d3eb98707da7e49917cdb66d4cc9339cc0ddc2dc43cce7c91559ee46a08afb6a0dfc377c876d2b22ded5daffa070dd4697cd40bb1e57b638bf308cca1c42670c3361784c92033f2b45e00c5b9e358139a6c7b26288740d7768934c6e253519d7bff6937a993bd4fb73606263698f8c4ba2cea41198f88eaed0b27423d4794d1e7da2a5870485c80f19764271e04294f3afc1ec2e9b048b36659447bdc73c58c9ba9c100c124db60324" + }, + { /* i=8321 cDividendBits=2617 cDivisorBits=792 */ + "01d3dbb9ed7bdf31174a98725282e87c6ea34acd2e44ab4f64b78bb8630cb015586d66394b24a74a0c4890d408b30d648d0302136dd358024a6207b065414f49b26f04195483ff4315a2e43245c5367d8c2a6d88932da50ed4a916ce06f16efa0887c5d419b4a7ac3b5ab565b2068acc0c156300c271a8194db72e9b8840c9b8bd21e588c5944fadef03e9ab241c1db0ddcf8eefe0b7f91dcbc13f45e40d72fd4db9f8726c03d640bc8992261ca1dc7e82f70bb2e37464a3a446de4f4d2751545b483fce1d96b94b7b53369ff3844d8fb3b8641a736a151e80942c03db093e2e4824ab4a9a873f4ed9ba9c2db8dc3f44789ee12a63f4b5bd7347aa86d3c6c02803a823d43fd6652f8ffb41fd7b3f877eacfce70e789fc69e2c7d692db8ca3ed8566abdca848c09830e2e52177698f68bbd280b5b37e44fc93530506158325936af9dcfc764191688", + "79b29f518d054c655c0f71f74d483f27a6137bd02ba4d90b40f18f156488354c74b11f3f974a0502c6f472b9c65311b1f255ac89166e2a41e1ccbf6d5071acb65e30c87443780befc1e1d1e4442e73e42128cc2167ab5d0600513ab95361ae4ab60446", + "03d82c7bc98f11f5e3a0b7a05d4ae36e8c756842ab56f44a3424c10ac30ce60765b8c6898e798d3fbef51111c39d233b56a5cdb610a07eac5cef4a7fbb11c317bf5ec5ab5df9def50d5d5b7d6e264106c360e1be65d4b4da50cad731ec6c59959764bfcbe24b4bfbad23e399e947a7dea2cc4ac3cb1b0f1d8f57f48184072f2a84ab21a6850e86711966a05326c44f1675dc113382504313e25a721b8c4fcbd5a3874235895a992817ff405d85e434c8136fc99a8b139a8c357f4cc384ef63b1db4d50a0c74ef8267ab1bb2db5ca09190afe49e9ef96353b77419178c7606969ae0ae994ec", + "20b08943207ffbbf0e5830503993354c6ebbd7fcddf6bfb57d2fdcffd06149bd866c1d3d83c9dbfeeccb051c57ac31735891b1ee43f5ddf852f1e36be1c8376d821655a68303dfc51e78900a39b899b5efd2a3062739b639dfab737b8c4680aa1eae00" + }, + { /* i=8322 cDividendBits=1636 cDivisorBits=1505 */ + "0af0fe54c4d0e7005dcf674703181383f2d82ebef4d2a0e62bb1167a8467f6cbac4011f7b6ba320d303da0db4d18dc1c99a093935328ef8445be1e5890c12f5e06dae623ca4a7cf86cfe9e48924686469c61ee1077dda48a130c9257e9558a0ec48bb66210c5cda3c246868d9e4ca41a9af3cc58c93928bb095c9337860176ac395f4b8d34fc8dbefdb49ecc556e9376d4de0568b26469452dbd7bfb14f350489182e9f79fd7f6f8d0a4e6d5c046e183bc6f4d025e3369d12571ffff3ad2d3b0c683e1f623468be60a29b782e1", + "01423f58b9f44aefab5cd2134926c256409875ac00bf1f65856aeb3d9846feb2b11792dda5a299bf1ad2fcebf6e47409be2dca7ffef475b5012460dabbb8374a4f678b85fd256626eea276c641f0094838436336fc785d0397596cdc98b9f4a986f437088c62990307fd767f0226e44e44f7d94d9b44b1620506a8f85e65be2a79ac664b2276d2d709d178bfbee02c155052941c37d15f2577805c34d0f8be1cf73b5efc9810739a56801715c31850f5665fc500bc69d125a0b2100e76", + "08b12ab54d4566c925af684c72510534db", + "cc3b446872bebc5edae6dfdca9b7cd11c8823fd805876b66f24a85154e4bd8c6f327a750cdb078a84c9a81078fcf0701618577ea34128f378de6df2ef6548503b3f326cef3c3de362ad588d56380984e877a60dffc7ac5d3ee1e5a8eacb54e44ffd3c4e604e21f17359f8ad92f0c088e7c21d54358be6f02e3ce6fd45bff3d9c855cf839a0a78909daf6869233c6fd491503135d8382e5095ec7fe87d9e15e2b57d2f022ebf6e588583b23457b63dfd6af0a4d96172009f6f4bd2bef" + }, + { /* i=8323 cDividendBits=3498 cDivisorBits=2065 */ + "013957d82ac337f9d4202e155dea85f3f3e02e09612a4e0b2f2074d66b2a876252fdad3b842731afcc27bb4fddbdc64d4e88f6f1afcfaca72c817ce17919e96677fac08bcf4078ed6cc971be594a2ddcbe11c94cf9a5b59e3d330b2e459d4f1eb1d0322bc9ad03054f64d74c0ef571e950e142816e3470c25cfd565ea3599cfef68bb9b034c9fa186f308c530047e1c17e92d1d3c67edd8eece194a7aa74ccdb7c9253a90af2ef5e0dac4de6031c6f4635148d8ce8773d1f548031d6453a7dffe0c2b1a5718489aaf38460c819afce3de44962d61f184f9c7877cd81564b41812e8cb6e16d3d1541439ada573cf246e223655e1255d0e6cb4718eb3c47b8a415c0bfdbbfae40d4d60b704f49a1f08fbb7dde08b8c1e4372a361fff75f0a2ed3ce9def4bfa3f054ab52783e9c272763a0d4041841f3bd07408e74adccdda60a87ee2037548f3f3d2dcf938ba7729f01394a79a060bfd94c4cdca55c351bb05b44856c6bc5f65e3f67d538d587465965cae3bce24d22c1dffe4327100acb5d8474f1855d694d112f2af7415941654ad25fa721d89beab8a69ea2f4b28741dbbed25719b64526cfdee3ce919ea13770b3312db50698fd61", + "017b110327d70628c0b5578083daa2abaee52346d201cd0865e25f1aad5506ce890c6e7ca2702d7c1deaf52ccecffcd7236de278625c7c5f65dc0797bb67aa4b5fb796b35ee8f86cb0b6c6ed90428b363eecf0c3272af244e0c7885ed5a516bb5dc4b43b6e565cbff78bf89f2e8e984fe7f5063d8d22324e5f64a056a14d992c6f14fb1c41a70eff363589af870fc746402fe4763c651a293d2fdb1af9b4dc0224c7c8eb891666153b9f5c1e9e724f9825cae144f40e84793fe2adda000fde56cbfc15fbf21431686e40d84fb4a475b7ed07d39da1e6a012baa758ba5d39e64b38b886d7f9d70142ecd7d4d13e47107e52b2e9bc9b83fb710f43037d1505c245198214", + "d39d3c31fa41d4158b966348d8eda41af5ef4d1eb0b1a85cee3c6580ff2122be8c22a8f16e1db5a9bacde1babad9f8a6c774c9a6db3cfa346e32530cf83bdf42aa486ab756ad65edb3ec30db0413b16685887548137b475f648d70e51de3cd2e35481296a05080befb4f6c448ea691a6cd19ae47e6b46f4a90f2f1fc9b97ea88536249313799359621a857899eddd54045bee7a7a9beaed6fbc3efbceac146a304ad40d9e0d9bd145239172f7585aca8f3ba68", + "0151202e675597b57605e3dda101edf64a1938ce86409233387f61ce30b315fb938a2b1ba81b61614ccbdd49d3ad305373465c7f4eba6f9c927da3267539f4b1b458bf3136c206f14a7362d61d21f6bf638c3d58c25129209907279777c3b4ba128f7fc88fca9f5773eeee769fef3ea4c1c6c6345ee6ecccf41c96bac8973ed047bab284a0d1054c316f12f7493905d44f9420675d50f1bbb33c1246e3c877cbbc8852dc122b85804030569f2e61da0422010e63b492d6f445c658018d3fcadd1b8deeb58b66341cb6051fb8ff57f94b43eda2980b56381149437cc56b796198703a42b21cea7a668e0e6539fb46a6a39339b575ee6ae15317baa5dadb9290d2bd9d41" + }, + { /* i=8324 cDividendBits=2506 cDivisorBits=1955 */ + "01a3bb027f1db2bcc7192afdb527252c796e7715c5139608f2f40ceb3e4ab040a67d40b12cbad951e455dd4e571e5d804d1c1a7f486a6e0ce421b99fb81717d8edcfc402824af8434814225992a983554c80b385525fc5ac1287b259f26ec9d786f910a80f3fba7705cc23443082c362f775e6f87a0c0f609e7a8e8577eb751559225c8234d1878c33f63f9dfa74322eb648892b36f07ff5b2e9d6670c96d8a2a77680a3f312cbe138b3fae47e8c1b28663bd5220dd5d247b0ce540a1a7efd5dac5cea96d9227081a1df365bbb2ac4957a66f23c7d7932171d7aee391b31fc715e5158e053782244b05ee9d5c3e1fa487f84bb4623cc7f946baf1666d236323ee7e0fc827a3df8ff60af046b24ccb95ac860964fb52d225f2110809e60f2eedf452248fa30e8701955a0d33b41a099926f31fd7098f1b84d154c", + "055d2ceb3480fe5ec98f1354f76eb4805ff072a51f77c5fda407d4b001e5c85d8730dc3f52d3c183c2337327b0daefc8f85e9b3caa74e434559a73e1c718377de315cbe3bf2b5c9f1cf84257185cb014523e2ccb8c5af7b58c52a5beb62c735c63a595773b9ac016ddf8a07d323dccc9305ec4c3e9d34951fe950494f1d0d40f8e789589a94f90577269444906d2925b15dfb2fb5d25963d94b64a87604b005a5ade27c2716945de5f662fdd4fe76fc0c8baad6925bffa670488f5c84b4c134aa43369d93a65b4f732a7015846896df4542c6f2e95a977086fe83b4b2787581bf657af55a4bd5d0e25b0a1f639c5735c1ba4b0f9be", + "4e40016ad9b3f682f544881d5f2315c5cec5afce254396cdd34b0c4a4a5c3f357e23f3af842f193953a0fcea49c55bf8bbec57538953a29284f2d87c4dec107d7fbaa5d166", + "828eb5e9b919ebd287e53678e944a41f09b73956816fd91ffd5369ec57f6f83b4e26bab0811e96c55bd7feaf77514e753f637e03ae13dbb792970c84d192b746f66ea5b36d686411275619b24a50445723a83e7a5468aa2767c9b543e4eb14124ba06ed80a62655d78e0ffce4be47c4e462d6f440278d98a1419c39243b911c389c16966d7531072b4e18991a81d05fbd0b50b6cd1e1a9ffcda71bd0eff37bfcb26868611d699c513f7456431d74815784604f42025c5ed7160a88b0a434b3f48bdec678b0e0a33aeeceb40c2fc8349b351dcca05a4a98ed5b168721e931b4f71dc37bd5f086cc76360e4d21ce2fedb29a6f7598" + }, + { /* i=8325 cDividendBits=3765 cDivisorBits=373 */ + "0462ebef75574bd64c155f551e9d924d77bcc35df1f649a26d495dfb66a144937259856077cfdd39c36ad4eba73e7c4f183812bb72b14d37c6ae617b1eb0328fa53b43b929b8ae8582434a8ab50a6a5afe95d7906d503759563d055607dc60c0ce1b5bd4376b015379aa9aa80036d95044f2b1b573463abd11832d473c34a6f5b1848c6c6f24ac390e06c617ae9122cc30140ab9bb0b1b1c4cd8853ba60f8af6a45c8609fc979b2cca52e640bf7765afd49a95547f4bcd0b2b37436a64be515d65cdb54dfcaf5c224d163b2b583363ea038da1323f79194ed3ee78bf4f03caaa0856875c1475a31351be66195fb50ddd69a6715cbf8b3092a496b91385592f79fcf16212a1521db4e24375c9cabb46752760d64e2f90b69e4fd7f86c9a33cc8b9f26c5f629b61335883fc51a499b5febe05f5ab4a075eef5b70a3f328bea0c0a6a3f7bf038c32694465431e51186a7fd712ae3d160a9457064f6b50074ecea7a729ac9f706e4f9920a470f59595b5b7d92e80f28a0ae5b5d8d54ec1394c8e9a915049da5880f2a0b9e8d12426019a64990138519b3124fb2f36cdd3d4b46105ad680c2e1ebcc3318ab55bae217c191b3d5fdd464c25f28cddb9f205c9ebd7d4ee4a8c04b8d6c2d27db932ea47af62fff52c66ca2047a96", + "0877cf136ce7f4309c944c50ac9a2c31ffb0a7f100177d34ab319eed26abc46639949d86a4070db7b733bec4f2d7a9", + "849b8bb5bdde19739845eaf2078028f759f1e775346916e6f62db76fd274ccd73736f7372f7ff15418e4a9f95663c10cc0d2560d67813876d4c60903166085ba7ad99dbb5e5bf197b25b2a9f00d94df814f0a7e4d531fbd11b24aaf829ae5e39fc80cb1f738898d4cb0b3207559211383500d4973abc7877cbaae0766d10d987f0dd9143e8ebe7e062bb43b60177079563aae539c004eeaa62cf86baa533495539c35bf6320875c050c4e2620f9705621a5da3d1f592f58d8644854fd47bc97aa7328ea3715cb8c722c1b6a9d3f8e73f4c9d1b56c8e2cfbe98cbc19d0264af92a0fa8ab3938bedb7cb862b4eff9b4a5cc1452b3af40fb9e212a352445fe577284eb6944334951ab01d57c148e1901fd8af947c47c5e3051d92e7c71a025122c1fec8041a012655bfd221342e15ecd1d3ff63104ff926962f3c95d20ffed1fee559c81fde0f330308189e0490a0c3c083f390cd034306ab22dc6406007b8caffac5d178e61d68e69d3f855557229a4929152abe4c7ccb1342c01037d40b72defcc4c2f62ad3ff1dfafc7c9c74619bec537b9160b6978df096f9f956a8166a82319079e852223b631b", + "02bfc18169da6784d5465da382a6fd4df5eef583e3d9e2ef787a60312a24621eeb17a81663fe925ac2aa65cd0e60c3" + }, + { /* i=8326 cDividendBits=228 cDivisorBits=41 */ + "0413db5c0c682fdab7367eca60c1111ec53744a272248650f06599e495", + "3843a11cd7", + "128d82f56c97fb38a29c58cb4038c056ef5804b5573c63ed", + "1fa7e70c8a" + }, + { /* i=8327 cDividendBits=3003 cDivisorBits=2006 */ + "024b8e17f801332408aec3318b1521337a6bc77013ca7e6acc4a2f5343e453fcd0951810cfa07ee7cc63cc0c97b895b7c512b397d3a253475471105a9cbc358383cf9d55d7fed2443362e9fb5b0ce82a169d6dacea36e47b15fc34f70e12f97e0e73fc4594d3d629dcb6e1545b1f74a6405e2ae60259d32ed7ffb68e864fc7e2dd816ced2b74a18ce8697c6a10b4ba894b224b7416c75e07296f16c4aa47667d764a1e563f1a950183ac86ec783371d0fc97ff2b93427f50bb3deeaa09092233c49a1a6b70cede97d4ec1826861e39a5d99a0fe8aee9179ab9b88270c6a031375cd4e51e9d409d5e9f0f91c68c4e37441e034a3f5aeea3849132f53e6970ed748c6ca6d898e470bbb6065543ac1d9f56dbc2d9c2ca713e6d11779530653fae4a51359848e504686f00d4f2dffb0c4c2a579596b3b47c93a939312101ec79a729bc34d5dc385be6d4f8e28283934ce875fe0d2a503de80ad8f2cd93bcf9dff122942c4bdc5d78e387270cd9a912cd8709de856ce1da96a9f5", + "169a71acb538f71f28c39d52812c41b8ed0c31321c50fe98eb84ae2eaa0ed9811f5be7bc5c9add75622ce3963071e4a41c09f2e633555ab884a8895f4d212ed446678b946419b28c7b55fc87f7e5c9d475c148aa74e4378ba2f5ffd582798302faad5a20970787552842a96f70daf9e97619b9215776a412ac0297cc8e1c45518bf251fc17e7fd51fedcd05d6a7fa005b70490080683513a5c3f9c7b1c16bfd32544e9830b72aedc0ca3f49cef800f7b3488d501fe0e239141ab6c391a9fc68705ba9e8414f68a4db438ac756a41c9acc6a62f2033102ebed51421baf2055b38787934fc65ed1c8c8bdf6d33307d1a8c836025e443ffecedf9bee0", + "19fe8522db7b435e97536256c275634f14f7480fd7f05b0e7f1bb97d216a0b7e1f2f537cd5cd0ec3a8b7240de8a284af5c72407cddbf4b71131d828dfd81af47128d4078bdc61252aff7e688d9315eaf76d45ae6e9137bfddc6d448747465d640bf2de76360be83ea865e1ffede97021fb03b6776b9d1d3ac0c33608ef", + "0b6768196a3276ddb0b1acfc4965b86ef1526e14a1a356fb094d0530dcfed30c488b51d74c4cee097ff250b3099da7be74811db31db29dde27c1d6d2895e4386d9fa2d295b771cb2cfa228587e242afd34bd8c0f0be9da08cae73f47a1508725cd6d31840aeed3d89c55d0ccfd03e2c6120245f94638008c9bcf56c0239e902d74f2f7248b94cdda6616ba830d49f396b5e5b62341b920f9007a72c4cdbf1cea219e68ee64db975453ad5c84cc60ad3de046d62e76f79b59346c80e69ddcfca7ae48110ed2050a79b09b9cda19edbafff7db4012c06bdf1e56fad3ee6c6d1935a38ef270a0e302a3a4383b4f8d04acdb25fba71ddcc02cfd3676d5" + }, + { /* i=8328 cDividendBits=2665 cDivisorBits=117 */ + "1a977a6f7c3569e62e2d007226f7c2a6596a6ea1fc52eeba228abc055997c7ba98e49cf5de2d48637af68f0412096ee19325865e72af3b2427ff57204990484d254cec2a4ca127c9034c5ccaffc602c40ef923c55b51cc3de6f572d2f6d3e6bf919dc8f5f380b957b3c1466687a00d826072d1f7014aceceb5414984e4e8f6f15e51d7cd2cda2efc7fcb816833d1989253770e77a16509e2d194fd1a72195498b02de5b3aff106a0ec193b93f32ae220b0f6364d8182f13d6b5acb82e7783932f60f37ae34fdeaab78fb2724b79ff0e60bfa66d44c378768be2f71b59bcd3328a22814808b97d5f610f19ff1c8c7f61113b6503b03402fd652a93856af4555183ec6cc2e7c1cda01382b76d63f9df26b2a62d8c2a25183f9b5987acc9db2fd50f7e3929c3313082c2ca8b01758260a444681c88000799dbe907d9fce230bafc8b5e80e5e139da783b8c00142ce", + "01debe5bc7d263aa6dffbfb7b2bc9c", + "0e382eefb52882e50274bab81cf5ae92a447579b3866da4305830b891414770f2f59dfa3ac9fc97e73f13bf1e706bcaca54c0614231dbd054cf1972aa512d4ce3cb3c46ea82e95cf1980f98f97a56c14ee9ae740f1274a4b3a867d185fcfbfb4d15a256d5e573a83ee69f5ef2bcef7640cf3bd4dbfc40b6b183a1919fcba7a561b9213faa61327e46454400c9e7bb7a529ea94ca4a3f18890c469754e683525d88b28f30905a63489a58b28dc449b618e6cb9da5272ef85770eb39269606a9a534c7b660ffae35d54d478cf9c738ed2119caf3b7642434f1fe049c0f5d12be3aead2b5d5fb8bdf20d9191bdef34fb8e362558f35cb028553181e2feaae198553d86fa802d7d640922a3c0f98b4f53a7e8ac818509d8019350f8cfdf0ff60b7754a83d54e79dbae0e67beae1db940d3e748755bf6a1856bf457ab475ed1556d", + "01a07f91c981c0365bd9a7eceb2862" + }, + { /* i=8329 cDividendBits=714 cDivisorBits=240 */ + "019c8d27916621ff4989dc1c344306c0fb68fbcbc0d6cafbdfd25514623218a26caa8ddd9857b8390af25f2fb5f96342b5b26bb938d9de1b303cdb2cc680640f29cbbb0fa8e5feaa353c605d700b4d6693dc808995619e0ecc7e", + "2d23ba9d8f2ce2752cd8e2001ae369bf3cfb9463ab24d1f5ecf3cd63fb89", + "0923b3d4dbc4d399ef0a9a73f974161347fedfed97d268b55ac31e8aef80a04deceb60f293b50dd4d47204774a22f5276e8138664fa028d908accd54", + "1955e535119e6a204c3a89045d476c00941b9b35d28fa531dbbee0c78e8a" + }, + { /* i=8330 cDividendBits=2760 cDivisorBits=975 */ + "ebeaee3a99900200ede7872158eab46178f15403ac971b6bbd8758eb0144b7aae50abf5ec3bccd07dde9be03941e8842770e40a4bf19b435b616b47bd5626de411a395a985058888d058d07dd46484a01d92c3e8571b9535869bb8874103abb002062ee54486dcee0a28cb22b7a0902fb0e3ed4fccdea6318a787783ae9318dcecd6f160d93e9adebac8fb85dd4f5ec3155bfcbc5038af529d9f428f1ce1a244c19f6ad41753c022a462d2a77ad45eac4a1f2fd6a230f4bed15e92f77382990c9ca75fb83bc7f5a39f13940095f81b9ea7bbdddff07206f807fc992ab680a732c1dce8c89341672fcb543183c8c5e018323e04471bcab3c585bebffdaf022ad18c7ce3008c58f74d9ff130e43fc6f1150f9bd7ea07a03186e35127467bff3517f532265c95320c426ce64da16e69483804fad74ec2a12e3b74ed0f85f81aba111270b6ad34db4b9e478fcc099171dfeb164fa6271bba7e7397", + "16c3bcb862f25dd1f6ca28c5cd3a28f548f7d16fc9ebc00b49a476292f0fe9c35e29f2188576b175494dec47a1ea293a31048a18e1d83f5343ca8043bb9e783ff0d2c61cab19ad69cb71fd5905a37346c6a7f541bc92d79ac623456ff2e24e64984e20cd49ae904f17286be56eb2cc01dd91f59e044ff9b5dc66", + "0a5d05127f18753cc65cc9519ac7761d6037ca1d9f0dfad012598182913bc6f0d7a54a4b8440e9e91789b3adffb7c86d6e424bf4f4f98d6c6aa1a6012d1725e417c25f9f4c4c40a7d8bb15bb88e480132adc55866a99b57782343a3317f21dec64fa7d5a4672d037de75e9f4ca116710ac91ea5a281983e5c2fee0eeb7a263e24fe75e55413acbd262cda32112d575d9db4659acd05860180a326219719a0b2b83e0fe5b1f15b586bff24aaff8e2299d688bbf7d672eb8541c9f1835828fe8a7dfe5fdca6ee78ef612a6f66811f182d89bf8fb0febc0b92bf122797a79ea7278", + "0e986e36699a52c13abb44bc4d0782338825b3cb6dcb4601ee92d77216bfc726928946212c6ba1a5fe212947cb4b91b4c863bd79109835c3327b972a649cf6ae40d3ea2238816bb8b693168d6f5584704d6b91f90b4c910942b4a5df11620e6ef7f17bc1770dd4962d16e0718b339175e7e7d024106805ddb7c7" + }, + { /* i=8331 cDividendBits=2421 cDivisorBits=1619 */ + "0f5c2570c2946b0a3d31ac79f227be2138bde1a57e832f68c0e423718d1db757e307db9d284ec67e5755702ceb0587078dc638135f40d0485e8caa969700e8683af42218c788056f1d9da3457a26d11c0fb30a592ff3ac3edaf9cd7b7a59f9660f81fe69e0026330d6425adcb818fa88fffd90f48b2231c5ea99b3ad03b1a3070dc18438c17acf5a5f905a1681332311778be9902e1079d6cd68c5f3b2f6deefec37b70f4913ea50cd3b29b590d6427a0eec5b8159958ac05df5173f5dd05b85e067d834364bffbb994b6643a342de60656c6267b692fa69054494a6ae32f4f09ea03d0b8be2c338b097e38f8609beb1ddedd1373d1a36271994fd5efaf38dcc052561eb0b5c979e309d123e9c068e2f06438717b38acfb63742aef989b0dab686732f80b5670e40fff87f343f5e78", + "05e5c8f1a8587a52de78329935fab6fa387611486a1cd980509fd535b9011fbe36f3da025b035bfe7343fb7605d7a3dd4b9dd3edb3669a93ab458870bd49e35b52d933f82ed2cdcfb51bbadc066edd6d172481f070c9bfa377dfa01e4454795b7ee83361b5886600fbab3a0f994dbb4150f591dab10251cff62849b3be0f49f77a4fb66b558f2824c111cf74fe371be11270251f4b5c0d20e3713b35b4ac0d12c2e080d21b1cf6e23fc2ffe7310f45c3481e11351699a380c3d336ac18303ab01f198b980fefc97ee3d88b", + "029abcaa5309274642f8ca5176f62938ef7d9a98f21b634de5551ce90f8652ebb4e5028246d509f9bfb744b0dfe4fa2fdf868d13323cf452a5609409fb8558b9fbd0412af673c299bdb25fe3494132d0c408537248877f843cecdfd8c1b844881a051aeb5f", + "0465a731d0534c0151804653685284d73d9ac5a12054dc9e69a8d2924982f1f330c83a8f80255e36ccf1570ad594fb9f3eac953793e6f0091bda0eb1a88972785d208bfedb82027b35c6dca8b26017678f7216de35289f7203ca4dec4b019d2098d2af3bc79b6883931913d14dcf9616f306985ad1b8e34d1d0de23f2d48d387bc4c8627722c48f9107a724fb3a270f8c6b580bc83e44eadb79564ad04a50722f316cd75b4a0959c89a0cf5c0078f150b5570352f4ba84db33c49767eccae22b469f888cecd8c140cc69e3" + }, + { /* i=8332 cDividendBits=3282 cDivisorBits=993 */ + "03cd9ce59198a23a76a15bcd26c8713210f6b78b26458cac26e471f56f66604a7e836c0f5972fc1fcf5c2e3c01025bd567f9707808b1ba02f02d53860af9e68ae6fa766d142f28a6b39783de3ded35d29b448468e664313c97d9c87b3929fb3325c3b56f21d62197c645bfa32922cb9e92c85360b62fa5028a4f215a2cab29a8c259aba2f7408ee24a67b9ccb1aca6ee6ca754899b8033a377e1d62988e1732bcda42aa9a3665c1758276e5a198347f081491363ffc07b3718094fa61aa0a7ac06caa3e1552b440bf8c7e2feb293b62d7826a3e54582329e8db4bc9bbf45c075744f5ac1e6ce10ee0c6e83ec308fc9646b6dadbf76f3c9a18b00a16c244687a94bc1fa564530c4fa57eca915c19873a9a4c0ca79183204921f8d7be297cf749b3d17373a577970aea4fb0628289d4ce6aefc31050467a9982b52e31524ae0ebac287f5a04d5695f38b75797ad66aced91eced6923b62e48a479fa728eb676c667e4e849997d5ffa31781ddfb378efcb62774a95811f444430d78bacfa22b7372caafd70365b16192c8aa05b3cd01225b43f756196fd3e30ba3a365", + "13583b765646f6b63b35a1dbf1a19585861b8e8efef8f39414e070bad1e49beff31cbfba4dd2684a864665e9dd8a5181848ba1bccea25356fcfc4a72ca757bbe90c98676fc0dc4677cb907fdef8e1317346c4872553629a2a73bc45f9c3c47b143a25ded7b59c5a089a0a6b0c067e0abcf7559229300b4649a8a758e", + "32546e4299c097b6def950998ea01d5dd8a6683f25d435f2a2a14eb764ddba4d726297c6bae4a57752b9064359df00253590733a7acdadedb2f48f4997d719ecd772e3f09bcdcafc43f22f22cf4c2d642a88cfd7e391491fdec43b84f32b293fc3bec76b210313b282f14c08c4982af6c4e5236d567759ef24dedefc132bc41542693b9b25fafd0279f7b807dc04f9f2e5c1807d6971fbac93e7f8ab1587c0727777ac0ab4e642f980cbf3c14aa56aee7b747d9e4dac7db18e83ca25ad458fdce3586e67296b5fe70bba80b0a7d1e652ed6b49e835843fa64fb8299166fe55cd37cedde92ea88d8071cda0837b84549bd6237890e499a8e7017bdb5fdeba934552040048458ded38d3188c0316608238db6c73171ac279fedc90e9276b8549", + "0e7e43f9f00a62e005cca8f3905ab16f6582cdaf36be30f43e9dbe7f0955da9cbda22500d5b0540dd2f7242386df879caf68c5f3afd22edb91fa8457287aa2fd2bf42c8a9cae9bf7f12c37f18c6f406acc28544ce0533bce59c7076a17c5fa3d5205a1186a8a01573327f8fa381f21e901cbe717a2bf90e346bb57e7" + }, + { /* i=8333 cDividendBits=3866 cDivisorBits=848 */ + "02fd6f4a1214470d2ff657ce340702da5b8b1890374224aed91bdb0dd594b9dd7a6727d60519d2ba1783b4f9dac462b0ec6fedcc5873d9470bb884266d80d2866a8fa559ccd2de61897f5277b63cc114835e17d559565f5bac71ccc41280215b3aba6abf7ff302bff215e849fce5c7f4a17c5b6e189a0065ab2fc6a11ea71ba45878414f24db2bed032057575dcebe0dcf5e858f060a7383e2789b99eb44e1f439cea503b0a8c85df92588c38d519d0902b60d5930d46415bdc5cbb50e1ca3225fecbc4152f05d83926a7a92af1adb53aadcb5150efce3c8e1c73b37f3f726bedd78e9d00fe41e8eafe29253efd190fa7acb1e01fb0b808ccd04926e09bc879cb99c4b4c6b90c638f8e3f10a7059ca553a5f508022ce593d8cfc65efa0f7758eb8008d30316a82dad085c9287af01d410089140e24a1643f6a15f7ddedb0c445f71dce9612643596d194a04fe485e1cff02e69c4cf1134b8e0ba1bd7a18436758bc519521c799cb7d19efe54dfa9112e4d4c695e29f13cd33f5b66d0a9bb245b3912f58e82c1596b3cb45885148b6f036737131da79805da33680b2f2052a52a586a03ee38fed30b43e06b126912c37dad892d98314a7ebec185e043e170a83e22e26ac507d54dab6ec1f33cbc41ecf3c6bfddff42dd6e6de3db6fa807fe478923563715", + "42c37a1ba51a566df4aa5fabd79237a16a947b06ce902d6bd984cfa4ca6e056228988512365ecc0c1460ca22f1e6c5e73122200c6e0c74d70defbb7b3c9466515276ee2616061937a55cb22caedaa5d3d2994e7e5d4eb99f4fde197086940c8461d19aeb073d344639bc", + "0b7700ad03f7aa294713bd23d87fe2e94823f90e643142c84d31833f6b7f24e5ea0e6dd221e424c7c0b7c5eb4890addf6d22c23d2bdce370a33dfbc4c281e6d47651ca29225798d03391f3811f3c3e97142e5d2109610675081978883c6c17feecf2a9881bde21ee7e3204183fcf20031666b5b128124c514fa10fa4493674720bc3362bb19b6bfd129e069e9b4d8e979a8537a41f1fd7903922c8d8776fe54cffde9ccea1d0a8d59800da892bdc88e3f126d94549fdeb6d340de7f83a666042d452abb3ae0962ab025b7118f0f717c57adab662875dc46be5390c855b6cfde559d9b75615ee63ad6e2cb615b79bc23df9d68b34beba98925b17dea6a29d9bf1751c6e289afe6ec549f07600dde4621c72299316a88de54546c675148647bdeaa9d391e74073aa56d840e445ee9ba841c52dfa311a106784a2aa81982975ed772b0ef3c27719e66963e684e71700ebf1b1bc121c58cd3aead6561fe2b3780de6c00232377d2a674816bf69e20d128e97e0157aa19c5dbb36e4ff", + "3787c38f43b0f260bc9000d1d956a9825f45137ad788002e46ebb34acf8573112fc39b0e9464f9701b2b6edec38737ceb676465f263dc96e8b0ee412d4d05f4836cd362835b3af8ed840b8eec5b6c4790131d24d64b2d7ebe67da5a5f1327c2174d77969b2bb044f44d1" + }, + { /* i=8334 cDividendBits=2262 cDivisorBits=25 */ + "21dd7870beb95f0b27cf845d2d629b3457681b198fd0094b55e5272da7b27ffc0e4afd2c9f803b4630dde7f5047d3d4992a92e72c8fe63b40df705b611398736dd2fff0339780cc87f4d95b3c06fb4e21d7199b9e9d8b80940ef16dadd65edc22e29a846aee1824a3221ccc69ede651e18dd0cbd4bb2269029115db8e096755b5835a8d70c49b836be5486cd0f19a7987d6337b1c26f94ba49bf6bdd9cf42e675cdc3ac86ea85eef65675695e9c345748d16b48cc1f785f99070f176b3c61631cf24b9d2b3d75ffcdab73e5e704300f3f0c4a8cd95dfa58412bf516e813256a76e31aeb987cbcc9fa391178feb5eb54305530814cf109a47184d6fbae616f00e474e4a6c4d5b585aaddef421f063103d33adb99673e1ee92f4b720", + "f370bf", + "239cbefe24e976600f3d4afc75fa5821b7347679c527f52a6ad8c49bd286fdbcec53e6de4f00d8fa57eba06b7e2e2e4aa7fde06fdbc3b987bfe56fd6de0dc47f140074d2763c5ce036b1613adc54b28165d22f3309ccbfe41f90697b3ac54b6c7dd03e7922004552df80b91af788eea4e65e01d421361967f620c8f2d5403f5c6178321373454bbd87cc121f78f3a0f085e1a68a941256a0e01cce8ace9e42612e29a479944877acbe32d32ac7a240d0bd01586fbcae77f66ca4ee59efc5184f2438b63dcc349968d103ca068eeb8b58bea8988a129a54673ecb2168a5e988a2acdbd99f62b5ef8b2a191eb9233d45b3f2ed8e1ef706c5040e428d245751c63219d3582b3dcb6027e65f3b9dd1802b0b51c36eb45e283572", + "5cf712" + }, + { /* i=8335 cDividendBits=1383 cDivisorBits=677 */ + "03e5b108e7841dc21d6c0d96823807935a61ca3639f5f1e74ff25952e5be462755adad67e38cdf2264f5d0479ac7de61427c73f19dd59c7f35a4dbfca1abc201e1c8be4fe2ba9020fd038d81d3bf63ac68f4862434ce36922a60730de89af36f8cdfff330f16f65429c7172e2140642681ce8c7f82f12faa3f74fd31240c264d4b23dea2e4bdf6290d94cf31884f5877a4e91af7d792a7bda6c3e05079b34273d5f3f423cb9a0bcadc61e6f3d0", + "086484ee80d37d2c1005cf202bea854e4af6416611d43b6a96451ffbea1c6db39c68ab4abfe5e4372f50bdb5048150f18d1c7c518eaa5c6227c6aa218154bec3bb8c700424871542cf5d47819baf96cf472cb25b3f", + "76e07421beba05fc9a341a0e53cd08208cae01e8ce5bf964502e82b7a9981c7cbe55ec49cbfbb37cbfac0a7ef73cf564a6e3b0036e76271bed45b844e699ebb44f689156d94ebee2e39d7bbb609898692381425ce24bd981", + "06b5edb793e0414c7001c83d4c50eb8cc705bff7753bf540b2d6cc9c5468cb8e24a264a36e74a3f418c5b472d3a3b09ef500ecfb6e251f5c02f117650c5b92a7187fe0c745ed891f7cba15b40b16ac6da953399211" + }, + { /* i=8336 cDividendBits=1225 cDivisorBits=228 */ + "018a8d13dc44b43fc47ea93e014fa09ba8087073be2e3d8af0c8826e6f2c166e956159218053bef766616b1836849c6db2ffec85a8f6acef40da6a46f9849ddfb0190032c5dc3082e0c37b040fb663f806f6348883d735b6f10978f7548844c6cf0414e4ab7b361516fd330d7bb4ed9cd0f6f1725e529738cad1bb676b6212f0749fdf538eabd8d85928f21958636f20bf7b90279b4f2315dfc9", + "0105d56b021269fbcbed09fe007b8aa8afbafcf9fdf0e83488ccbe2c5b", + "0181c2ae3aaa78c72679a6c0440dca793a8ec45351cc7f65509f0b8e3ba630fb8c875dec7def759d3381050ed08813ae7eade743a5c81c44fcaf68af6c2ba9679279a221b119e1787f5bcbcfb95c6e56b24f5f053a3ce196142696835ce6e28c5b918e4d93e5777f247b6b9107e1aa3c06b99139b353f0172cab0aaaffae", + "6a7c42e677276950d36c3b962bf8730bd9d189ec8c53f994893714ef" + }, + { /* i=8337 cDividendBits=4029 cDivisorBits=3124 */ + "1b31cfddd356ae67a3062940a4317adbbb9f461e458847087396300f143084e3df4acc7cb4fb8f7c456bdb4ac9aecaf718cc2954eb13121042d3591872f4e4665bb5cd1068917cf391a4b0662e3c2c1257f6e4896a7919a141664e9509e7df045e3d3e6e5898c0c0b036b7ff90193653849677c8bcdbfa873210b90d38b838cf17d026cfea803bc1b75c67544c2a926d8d952477568cd24eb002cc80f5f399ae662bf0f811267f5da6a0fe3f075550cd838fa7e6adb5eeea7044522d599c22d81a6d6b82f9aa3781d530b4a04575145cf99ea35ab2be8aadd46206880f409a31554268de1c3101dd46e80725e3aba09b691b9ab78d3f117b8e647eae964fb620b37a69e190ee518d31c076a27635ca0338fe2094e98d89282c943e4ab733e4cd0ea14c3c3b2d8b3a2a5e629442847893be4f495d2dc2b38c3a5dda71cb4f9993018af88868908d877619326edf01b7b7a2313b349d7fbdd7f2c2381c5ed51f11ccdd57bc204b699f081aea68752a660b32b9360194a4263dee1ccbd1851673093d09a2f7e351d79a81a0083c300187501255a73d6d7c99640cf229287ced66e57f3fb25d87e18d8e78c4deb554774aa4e68cc566aaa10f5c2475f7c8f8d623ff3437601dfe2757bccecc9298db12a0d65cd8143a0c8f116ec91c2c4be39272961be168898c3fed1fed3c6a72ebf419a9c5c135cd86144626", + "0fd2b85ce09b50739d40446f6af8d9a883eb09484edb315bcfb8a467571df85740977968c199aa27d3cf0e6730fc446c9fd06f8fb9e955743b776d05bafb1722cbf3eb1edd8094a539afc2bbc8dc05ac18094ff2ab81dcc7e3f5a8ea51536f8faef544026893201b77db9043c093f3ecf6582a669d33907bed0a7f0342560e44981e1698a064d7fa5ddc609ecde997e77753a0fe0c264a0a569bbcf700acbf8772cc275ac26a51145d40f4101c6242f8488a739ab99331ae989ed0e445ef1604d66b6fe3b645c0417af653547c715faed323ea082117afe0ea1c3af22ec0dc446420677bf27ee2b79c5c7e397669f618ee485ade0797e8eb4b5b2045faa2955f5989baa1456aa974fa5dc1c819f3b454afedb5899354a789d085be152c19ad45ab8f5a05fbfc36ed42a7e95e59095bd9d75583f5608fc2920ef626797a9869432b455983c0277781614c414ab77fc39ce14e063055f08ae9566bb198b13693b444d1b8c67d117a4323bb922e3caf30190d934c773d6f6dcd6b773f9559fc024ad7d8dacdd6652f", + "01b7fa1f40a959d88be8342493517743136bace3ae13801afaef02737a654a27fac48e9a40c88ab168f480f8fd0b7d6eea42ef4443a8abcecbb821e6decf5bc5ddd98ab7dc49a5037f345c9cc518a01fe1603a40f9039e4a47a5a43709248b6ee42ca02269c2b0193e8c35ee72af7276679d", + "091078d747c231b04b9810db2bc9ed0f9e19c6f3655261b1cb5f9b477e809af765c61c50f5312fd1ee84e916b5eae737e6f09037b4006911f11e984d926eb6a09ef417aa429f784c23af8bbe4099f21e65d0c625499ebf18bbd2754d51b847e62db68f0320846d398c7d16772a6694a49ec7bb1c6371d0030714bc78f076f38b1168f1acc5da3e18b81566b1d139c1e4641f46a1427b222454093306b97bbf77a02c6553fdc6b4122b3f144d771e692b716fdd51a4bef3b2747692a8ae460d5467fd8ceb655d1d169146105fb4f75c91e0b8656319468bbbfec92eaf9442e458b2484d3024529a88b0ea0eac1279ac9593d12e9b188a7e5e7dbbb120cb3cc4640237c292904641a7b8a16d0e10257e502b6be3187b8c3fc9843c6ee6b0f108a78a477dfc279f6c5e52f005bc8aa7d696c1a2cb634b622b51a68dfd6b43bf0458c3966d0fbe4a3b202f1866c51ec0ce9194660163618b02a0b57955d5118272082f7b29e9811c82034f9e8e9e0106b401b8fd5e5bbed11df3843093117ddce0a74cbbc975384f53" + }, + { /* i=8338 cDividendBits=1020 cDivisorBits=286 */ + "0f8c4ad258be500f5544e580f94b141564e6c093a1e707a882f18d537d316eda91407b01460d70c9ba8ac86957708241c20e02915a49c2bff2820a06966ca09eba285761f6c12d74b70dadbb2222dc5395c0b98bb9d551415dc93b513d81cfcaaeee7d74fa70fb4084356dc20beffa93c45e4f17c94955842a2a1c8094044727", + "18470da650fa4ee0b4b1504bb76faa2ec27a3b8c000abbea9db0480f4356f8396c25d164", + "a3f311c5fa362587d7c2502fd559be0d65de7caefb384c8e90d63e7df54c0912c56668ffb087e4918b02579a4f5dc5461a9283d23dc3e2f146bf467f1a23c24c4afc5447503f1a1daf83d8d8380338bfa8da59bb099056f700720ba0", + "07feb6be43681152bdce3710aca8e472e05bfe9f62f9ac6aa73cfbf0747db8a41dda1ca7" + }, + { /* i=8339 cDividendBits=2711 cDivisorBits=1075 */ + "03d0b490a3875d412ebfb2287d33c3ceb92a363b79fa8600b7f08b3d0ee59ea56bdc8c0c22dd7dc7b3e297a6153a1487d4b917dca80666974d034ebefdef7608dbfecd087d389b7c087ced8feda87ecdb9b89de287c9f41a54bf036c18887638d5b4c4e23d44f563e932c0f69179160d87262f42c254cace6e7686bcb6e7e49544d3fe78a64fc345ce43d94d18c96b795960b85b3d0d27d5917af14cf61d14dd7c287d1a238ce231ed13898b3c63039071bc3e6814a497b38d1158e05bc7c380b357e91211ce0323452b104b9c19cd3213c7a3b2f149e2fbd331bc619bc1c7002509d5174420196a3a6de2c3092bdec0ec01c154bcc3bf91544fbeade70e5948ddf2665a099cb33462a55797fc195e5d0e791993a5a6f6ec901aa500849b8d6b713e39660180ce37531696be8a81102add70607a181360dffd090019f4b9dd7b24c3d5aeb7474c59a4b810e040b95a687d0161", + "9806fb71b6dae141ccfbf5369ee62d70cd39089e7ece5c1030d7be32cd746c30b4a96f80afec3cdb6a878e7e841fbbbb6c61dd15f65b2a335ce72406eedd10d094f89d6f382367547a1a5b9cf2470e37bff061e0b2d163c10d77e104036e1910fd4c30d65b93c159f8ab6f58988ce1e9a3580224294d684b322b228b175862fce7992aa3b0ad", + "066caeaa53bd8c08921af7348ca73b9d59f17759c78bad124b5fbe9851509c8487333f3e698ecde84d4e880ee5d17cec9aaae6c657bd8cf5fa4f4406bd342d8030bfc751ce2f3d1bf93e1ed7e5b4c6ac9500ca80b4c774f5e675849a548ec64761c3899ce3acc6b34afdd76c935fd81b3369fcbb538c8b079722060202070ee82aa9101ca3bf226bd5901b18d00bb5e59efa33432cc184c0bd0523498d9abe24a25d4f9b1a31b3cdfe8f787ff495b68ecf9a45b9086d881a085df035d5503a708d56df7d8453694ae04865a3f3", + "796f26d1564ecd0d420d7cbf7b63fc826f394936e0f0090e2408a3c0f5f9e37fbe8f48d28f5e58281eb272b5afa65cb38de5e38739e711bf056c6da1116c94f4b7f3ae9c3ab8bc755ad48e2b25ae107f89ebbd6657845982017e514b024adac31f1953aaddf2cdb8322a6a3ba39ce70f4800b27cc38f4cfa891fa0c90b41410ce72b595d262a" + }, + { /* i=8340 cDividendBits=3035 cDivisorBits=2932 */ + "03fb5a50e149c9cbc125a203f94a7437688afa5ccf309647a40bc71a179f92b919deff5f31f53850f56e1cdc6d4432655229e560fe6f9489ff875bf68f11f3dea2b1a5d71acda0d5f5c4de90e28b3ae3c81030fe18fc67fbb57fb597083568cb83913d115179b2142e50ae635d7a9b0f6059bbe7d7c6babe148c41b08a4cb2025968812cdc7cbd3105dc099b83e8676cb36c711fc9596e30d62ce3215120cbf6f7e706ec84f69be40f57b40b8427662d4038f9ea767a62990d4956d6a6a4debd5c0ac65c28800f8da7f08c4d7835a2ada81e5fec98dd2e71c756389435f7fbe0f9390721661191dce9f2a4b44d24352004a910fe20e572e2d6dcd850ff49cc99e00e8579702670ad447619640bd789d9ee1b61586cee5b0a6693d1be98f9c672ada5e1bd33de8bc0632e39827ca8d069787592e4b54cc672c54208d8aab3bddf5ee9ed172fbe10f8b2d5cd38bee28fd785b5e95e14309b467bd59f7d64a3a705b491dff2a13b4bf8cc113369c5bb94e250250a8b39747435f2358fd6", + "01b32b523d72d931863518a9f32af7b0a3ecca5a07d215daf70b331c05796bbd7397871013d204776bf50527db9e184583adddbca7bc33374dd60f8280108e1074c7453f50c6847e3af60b0d1247675148e9ce99030ce8bd1468c957a67da5d44d81724094f03e9ab60b09622285882f121671d9adf595fc244f02d3ac7ca05893ae88d71f15873e99e16ad43bd9a7268de858f640f658e00a067d7bba6516181947d9d8623a82e0ef32d303822f2ca71d3efa5b02b57c5892a2a298414abcfc72d3fecc9586b177576ab2b30fdd6e338788ae377c7bce34e099c8b512a3c6e0175285759d127b68ca1abcbadfdfaa06b1004788c27e7d9d7b8db42dcc0106a063d82a571d243612a62d35eaa3b5c81cbe82e6a137c1ce2b880f68fcfc76bd11c60b73bd37be318e56f318af00182461b1d025a5f50ae34e0885d11f89bc24d4ac132d5bada72d8fc7a2689f656688c927e1663bf78921f0cac1f1430db380704406c96f02fcc1e2f5895fd9481a78", + "0257a96518c801c0f4d03a285f1d", + "6792b7196a486f1b72c572d0954633cdc9d187757d1780f89a6d70ea6a1e8e927e80d3fb9fa0862c8c70f42b166e5d2787248026dd93a51496724bea981cec9bbad9c42f63e5fa0ee4c832be3f6da0883902f5a44a4ad0d63d61d5db7ce07b1ba498ea071abbc5d29c656c4d349009b4c2393885dce5c3a589fbd7173252ee309bc0ef2a86e7c59595f8f610861bd9431ba566ad19f43a33b37a9a82523b46213d19bf683ea79bedecabb284e5ea7a32ab672b48e7673296fbfcbf0b0ca97acd7268ac347ecea3bf36a0158c42bba3df6478d1cab799f21e0cb48eda950a4e1de805de7d8e658abab95d19baab3bd316f397506c8ef69b0b220288b6328eeeda2a81f098bbe72147f712b67836b38b8932a42647705a7f0b0dd38d3b9d6b3a85af6599ca2c8aeec697af38207b05b4c4f13c04af2a556fa3cf288ba9f2ead04b95d27a4fbc0369f32e71e8304c01fa98ee54ad7df3b3fce31e104447c2c0889321a432f838f6a1a527f54078083e" + }, + { /* i=8341 cDividendBits=591 cDivisorBits=160 */ + "1ed8ba576db4c1f1b54a4c9e733b2ece3a59900029d5d41e05dc6ebcda33e1c3861f958c70467573c005819ddd139fd8608854661a335a282d2f16b2be8e3ec7267650752f5ded209268", + "6398bf44d51ab3e83561b22646c15cc0fda97ec1", + "4f497d54fb6341b7e681c286605aa1ac44bbf2fb8fe431a9e92d97a4de8b78f4380a5541d4baf17d0df8d2a2026f73eeaff473296052", + "5e414fb415981e556512c57c694097631d649896" + }, + { /* i=8342 cDividendBits=2630 cDivisorBits=1168 */ + "3edf89c4f504809ad590160e43ec367842fd578dd1d56eaa5c8ab74c17541143057ea5382809f311f5ff9e733de3163d7c1824a0c469d9e4516fc16570f707805690a6a9ca827197659cf39fd694bb92a506d6fba62104ddc9b696c74f7ec3d88da0fe4e0084ff412d0c1e4cda7037d7bb9772c4479d2eec837608df919c078af81f7a219e2b6411df72b3f56c07adf1f73e23528453eda9450b5763f6e0169eab64d779de5bddd36afbb2798b49f5aa9aebcd24f23ec14e6c2b5f381d7742284edeebcabe54448123e522a397d8d1513acd2fd3ce8aae2eacf5ad97bee396d927b0a49777a1a7762bd58ce0d2f8662a4e2c08ee9908d2d35639e17f9a3348e22c63edf4af24572df51942de2c38d494d54d675f0670454de1c6e904b66602db70f13cf4fa5c33f15920aea3c1a4a86705374ba071a77c9d54abed33c2988449e20f98bb483d4bc80d", + "48696ffa765c0733461eb5d7b2ee097d6b50dce0d98c92c80651801f243f0555fdf12287977f5c8c61ac77bbfe63cd191cecf62e27e5e7b03cc62bc1f3d09ad6dbc7e7b560b70b0f146a80b811e2c311522e9d111fe8801f67d5bce7814ce53d6d539d8b47eda18da215f000775e203e39b8a384bc631a2f502bc3d679166bebb1920000c3e362f995983fa2554d7172f6f3", + "de471329fd8a648825308b80d8af51d77fb769b0d8ae3bb104a493735dc62d9f94b2e9e4d5cd63a85f2471a627e8c3775b0501f427f6a534deecff4f39dc1469c78ed8172de2abc65127f2a71cafb1585798dbe36436f6113f74f632ea1f2477f7396cf57c7df54951abdc168461a5e8c6c5f88711d1f6ea989538210427b74cffe2d5e7a113dcffc623b8f145a697507f0c54b988a92178b42905e17848ee970c8cba8c1f2248e1fa7b90f83131b420ea19eaf04b5178", + "152b745e1af0bc56fc541be1161e33a4b9ec305a4d338133b26c9776f57f69355cfbcda4eb6be447aef379c8a0c22b17c3200b66c36243f46f99cf5a62ac8bef3ff4cb192ea53fa3d8383cdecea323b517676ed732daddb71282a1c87e78ed766a4116259103f996c851bb5b469a73704d2c5120f30851e7646c13c839046be505024c7fd5f98da2692c3f25c4c586142325" + }, + { /* i=8343 cDividendBits=3959 cDivisorBits=1570 */ + "6ec5a23f1658ce259bc62a0666675c6ea0f003c769cdec129041f805280c47f44994e9c85b4b4b4f4a65648c1ca9a4eff02f2464265b5c6d45f78ec17e20cbd2767f6705dad9b2507781301a04baef613a8f328ae059695edf2e43c4f0c8197fc3386d6b8e83e3d92ee54b117df1f85b2771924701df798078dddb4da24d8a3fdf73f234a5fca41bde13146a6824f8b64c69baf8c214a65a3212b80452acf0dd7e4fd20da83c3a058bdc653669e2fbd1c252069fea2fe753dc6970356a84b36d64350c292c2f55113272de2f70d743cc598bfe4baf6c0be0909dfde76a3579f0c329b04ed4e4f1896891738d69d6b829054da88a2fd1d9bc9bbed0b30ea53b30202671ad01565b546a47db70ad7a2a95afe700a420050415aac5d2b59f1c2acda6e861d84c32bad9a33a52cb5e91c22779228d0d965df85a49a287f4cf53bd8b768267d6848b8879944efd19d0d3e84a2917c5064a4ab72e7c998cb7f42db16ca09a9287ba691faef8025784562c687f33945f52abee257da96250d23f5bc710ee42f9c94517a008aae1260b28c11d42f7e0bd1ce9641690911514a812412a19d8180f15c9317270dafe74282662135b8e5b9552c821fea5f130d01b5a9e6e1a42ea570662dfa887f36add3eadd7d89717af4381b2eeb0bf45705719877c1bd989f1cbfcc74ed447b63a7833375473", + "01c61671d1cd97f385090634428f14dee719e7788bc462f0fec0d0498764b3fef460c2acc672d6067c7dcbb0ea80aa7e1ff3bff35a8b825bb38955a22c055c4f1f2ede34f87eb79bc5e8025c0a7c53a8ed537c1e24fefce00173c5e9c85583bc061c49b55edae73b22ce63c0a17d53e290375e61c57dd6dc7fa36174f496cb7dbbf476603f79655efe03b959a06e037db088d003a21e6e28cbc5fa956c17ad852cdb7b1dff6bfa46e88f9e797daf5cd6aa443740917dfca1a0f48e0ab6b3bc72f1dc990820", + "3e731ec7dd4a88fc3ed926aff2e4e5cb4b06db5599d805abb7a73c4489fd9ef222e3220d720edd96fc78e357fc04cd8c97e9fcb9363c89ec13f3fda029a6980553a9e534b586f2a154de53e741d1defb9e406169dda6716e189ce0120cea7756b9a0dbd903b10503778fcd962d73b96243583f2ae73b44c59fa0d47f8b7711db9c296e619da6cb020402e5e62e2de111379b905789c768addc50b8c426282896b10c99ac217a84edfc739ebb29a93a822c8bb79ced0cac621f9067305ad83e6ffde1012da6decd511e16441883bfcbca092c2f072389caeb6a9dcbdbdf8a321bb72f2476607d29a48570480d302d87b9db754cd3e8ca3abc99b5eda4b00727b72fd49819a44d10921f6be3d8de05fabce18d5811152634912868b17cc4ac976751c386687a2f1a331c3b4f", + "013d3433cbf04caf08688cdbc7375484aa8d5d96cc714cd17503909a5c83120ade4d4325dde5ffb18cc8517a747b25bf36dbb06aa596526c45fe54e7b8ffe21910d1a1d1ffbcb85a6d49cf2f7f6f2fede079e1c8595c8ffb2485783292c86edbacd411b52edae8251da4febbc638afb2f4bb2a7ca3eab6df077632d6b904ea26d5576fff8845ea3321a4ed0ad0ea60c075edfabfbba87bfeb519d0183aab63b4bb75d0c2630bbac696cf58c20f20b59214b30b4c89cbd205d6d825b0784161b362979e7293" + }, + { /* i=8344 cDividendBits=3804 cDivisorBits=3240 */ + "031f611ff523572ab8a952020344a2a75179fbcd3cdb2e26f9acddf2f291b1e3f2ba5ee12c6529a82483a5396e2eddc89b4c8d48b8ca946313c7b2f9858417f9719a2797f1370c1f4bbc5a0c508ee23d75aed7f954d79db5cc0ba77efa4defdeccdd95473630f62821cc3ab81523e7f138864ef19bbfb0efd212c4754bae5425368fe8d0fb8bf2b532c0499ee3c17be094b8f802c8e60bf6de88a3546ab625083d5fbcf5528864dcca004840e063187f550681df3d08a5b5ef811605e2efa639080453c1a2c92917b10eaab4eb783976688ebde484ee556903d4f3e57c4eabf1153207fe81ff5ca577916914a6c2f633d90c33a32024a31b34b00e490408d4e06a4a3cb3a6b1623deef64931be7e89a0228076ce32b0bdbe78a677997f5436194fa7d7632cd564b35b27ef5c81c9202624d4ffd46f59f8c1e97dc908ab82064348809189dee69044416b8c21863d53b76613123cd22682c5518880c1c76e36a50fd2d8b87ef188998ece14d861e4f69e4fa9f668aa43548ee7060bcee11b1550e855f4cf108f400c1d94082fe0bd8f4b6396c68653f537d2368f153e3637475505064449e1e6d7fb3a1fd72876a9e693eec2acfb91d25d2a478ec224fd0e81248e5517d8ebbd3c4bdff7a2464655340c310262d7365be1ed9c403ce4", + "e90634ee7078c6f2001156ac26c20ee264f5ec9a81925f54dbeb87e26856e4c57e62e016b41c44f7fc64cc6bd94a3ddf60ed2eaa51f234dde2712d6414333e5d66138c5501100509fd5ae251ad1ac05a9254fe2f3d5f7d5d9ee6eab9a067c66f82293e0ccac37ecbfd83937aae74cc32500871356f4795cfe6ea71fa30943daf0098814d918340717d5b1ef408c3f52286c2bd4da0e6e89b6b00b3f13ea01915c24791e4c019149900f97a5a1ab50fafc8f6409b44416a89adf7e9c52563ad3f6a0e3ade502252db59734fd75c5c5555b1956cc84694b83fc09934e606564b7a1f17e145755544e7954583db908571a909b1984c09f6b68d6f8851112337aa39e16da2cf23d5cbd6fe06e1c3e6a56184804670007471715217426dd72698606b7e42cabf15732a8f1cd5e5410c51e5846c498ec7e74ed7f2bd72925ace38b6ddc49cf0569a75af9491359d86238d3975f6001b7bd66b8702cfb1ddae7343ad277482e615623c2a131d1291f13a852a5b38690a16908871f66a02a4bf2c6bb2c82caee044e36cd1283b25f49e9feda322d0014cdc6a", + "036e325b6944d843d3145dd51bbd3915242945a5d0b3ec141d1f249995df525a2e6a5b1006a1b1df1f19cafb3a8d1913ea3864b951ae3371c791ff9a98352f931ae828758d0928", + "a3ee27f35c7a96959d22dd0ad02af02d7f677c590ddd37dfdcf5a939f85de2d8c0b0cf28c282c14c38d095a1ffe49b39a514979bfa92413e3f0aa07998d5df4392847131182e711b761da38a0072ef982a8dec651dc4559355f5450694fa14bb1c9d4e6a75c738ba848c2f252bd71b95fc0fb979a9ce618e5c8b777729ac8e32d0ab879fd91a7c7f219d81d9841270a85857c9d44ca865a85432bf2f8c0f479ac4c3b8bdc0f81b4f024e8ccad11ad35f71cd8a9256443d7db4b67f381ea0aec26262d690d39398ecf359d8bbfe743f2a066492273a7189a698affff76c3f2871dcf724d0587ca63f4e3b1fdbf562ee0a508577191fe49f505005405f0687d8680f65350b050a18cbb0a069b82e31bf37a90e515dddc8c60c4a4274fae1b6e58a40eb61c01c97f42838a9be12fe9ae977c4dd51a1a197995b11ceb93106d34e4fd7e54d2aa64bf61c5a34e1b4a0f3dc4bfb9f70e2ec287fafe5e4180c6f59cd992d36fc634a391859c14694d5eb89c3e6c0efc858d637ab8b3ebcb9d173c0ba58de59c2494f02648c1076ece938fef5c8bfdc1c1254" + }, + { /* i=8345 cDividendBits=2484 cDivisorBits=6 */ + "0eb31808e1c4de2141da60a0c002d3164e7d1f949470762b833c8808ef984239ca3c156c44c190b63db71fb61f582ef9aefc102efda496e2fe04c2f2be4af6fb26ac13ab47672908d8769dd08c5cfdd8c5d33a5ee574315b04265778d09bb7b0e9d1df5b4a5bf59deb042f18267d75607120474bf514cdeecd24cae9099cc8732ae81f2aa727dc8a66403ef93e6fb5cac54dd7f35ba4590c1f844eec780af15307c068361152b3946498576a2bfbb97c763187686a5ee37c7d533d5607e74e52d93a73f20e841bb27c8596369228ed28282b4a7506d9c3fcae5a369a894e9de812ac41465cb62fae65b1e33011905a68103447f16a43149718875d3405e84de34f2dc03bc5cecbe7a5cf86b9d4fe4c4fe343417f64b3273ae4fc88322ce86c745d093fb0b551c8b180443bfe895a1ad9f8a3a7c6c87c25", + "1b", + "8b5fb47a23bc600beba4c39555701d4547012b6dcb46bf3dbfdf1cc680e60223ef4329ef95642cacf3d1c45ff9c8d9d712d13125d6b0414bc7499736748de3603f43194e7f147b963d483721a4a11afdd86a754ade60a48e603c20eb48233f70f4cf62322954f2e2c7441d56c246b7b8568761a0c7e1b382db6fcfbdfc5346a2c63a0b0fac249cd46131bd612094f48c0c5d54dd77dd5f4389a41bb8981be6a178e76a4c7e5280c15af9c18fd9ea6ce7eedf16d4884150766b61162637f96b5d60fad0138026f3a5cc0f0b80ac2eb5a2ac4520c75d6612d70cd29d6d61b9ff1d22d3029b23312c6294cf8685642946397d32126c3b5f93d18045d284f5a411e67cf42823c549ec2295e88b9f97a402f57444cbd4527cb654553473a2d9336c9b2644bab161d80692f90bb4180cd1964b94489595a5c8", + "0d" + }, + { /* i=8346 cDividendBits=2998 cDivisorBits=2564 */ + "100880983ab6f5d023d323a894d65bf09dae9861022840fcaad41714cbe42660bb3e0ace64baa0958e8a16b411381833944aed11c383900dd02e3513a4d8db0fe7efb288abc4f82fc0cd5df6cc1facc64e2d73cd6d2f8c151aaa1b74881df185f1db4140747d04f5d004bec56cb8e57f074d183ad359eaf8e998c0e3d31698f0c22a4d1dabd84c0b4dcca10531a87c4fd3fe2613e3a40ba22a06bcbdfd6a554f2141537589159a770423e21319a052e6a7ee8140f046f90d1f10c80ac020533fbfba14e6add6ca28b8849901d207129ce2670e3b2548dedf25c59de70f7bad2579a1491c56bc99e1bd49a3f40bd332f197ce58637aacea1833d804c20b72d17c020d4b07d62fe694f86194a519fd91867577d13db69b01d29ca18f93c6248378d19462152a392b6df2bd9c229e82b6563e0341d684493e78ad3ba457773b1b16013970a282c7c90557d90a1c8f2fb6cf4bb27f173e0659c04d3df5a46b66ee7797b409dcfd8aba7b4a0e29b52f9a7aeeef95a0fe5110c7", + "846c29f70e240b2d40b3e47ea5da193f09e11676f7879dab7a988b1689a794d637993bc29f7832614e4d8b054fd6acf9ff7180f35a4091fe8f6e249bd796f54553dfa8af8aaab49fdb8da555e6fc2649ed1752b0424382d766bfbacd20243307695495ba3b2eb213c49b1de60c28db6ccd83e45259586e6cf662fd315edd7806ca1613ee7d03a6b89ff51d7e3ec5a78866ca888a83f19d7b8e240ebfb5cb36d331551598654c4208892c536df6feddb9e3c5222eda9d005c607b7dc24fcc57791c77b884848b30783be02809bfa7196b2dc4c9b0aca775e211e986634dd7082e24ab96b36d110aeca43b464fb211381f1d181b4d7aa7cfa7d78bcd5d604005eacb4958652faf96e6db0556258e2aa28da43d6ed68a4dffe04be19f43c84ad651414d7f67434555c652561a8b8755a45c33a9c21e5b750e0e4d85ea4f14aadbf0", + "1efed9360ab80ff7919d407cf02501ed42198a098bc930f95a8e9f93c9cbbbc8276b5c2e9532306bb8de201ea79a8dbad37354be19af3c", + "4716b0925e7680965f1427ab5bc05a7772b2d27fc0b1f74b58af4c1688063c986fe89bbd1c3aed26d80aa435ffd1627cf0cb9c4b343d41475325d21939c1cb256de61ac27bfb5415c94934abf04aafd1f45604291b3b6807d905fa2610c3aaa6d94fddbc07f818ab86718e88fb553a9ece8bbdd1f13d895053f14a4d93bcbb28ba02ab373d380feb11bfc26836d6da379c7ee228030fd3492082ae0ac3de19028151be8f1ca3e083b55f20d388c9e605637bf8bed22d49cb8d355748dcbba93bfaa3912b5497e91e1435ce416f308486c95e7a5edfed8048249b263a48fc1f4039d7b2d12bcc96e6b0aed90971ea9fcbd298a26d952300e675db0af2bc5b11bf7e811715ce27181da460d670a4ef7f247d475a765ca57a6d9249016389e67badc07ea949d7da4fe9e9ed2e078e69558bc0d2054f53d77a1c75a3cd4bbf7c7487" + }, + { /* i=8347 cDividendBits=2860 cDivisorBits=2453 */ + "0e007a1d79c8f203f3f52d91afeaf81473c49b4f40f6cfa3c107609dbf3405173b94a607e5657bf2637c5fec973906fb1ad28ef8e48c4ea959291a5247e6357ae67e93d6138d7a5b461d9622453117094aa8f6361c76febc6a7002fdf44e0160b43babfd5959f3d95f627ef5c68767fbd3bc15b163ecdccb518bce03fb0e0c50c22dcc352b237a235c04117df1b01e8f4bd02bc23e0a1cfa9717566d5f4e36b413c350229824dfaafa3477ec8a06bb031e5e1fd2030846295a8da36c53d0d5be3745212ffa0d8fce9de593a3e32bab1f6a3a30d2e07a77872813c0d184f0cb113bf83d1d68c76879d9f38e987e1a0bd82352026f8ffcf9fd7444af38b42aab613f1ac8b5505ae1e8ca94ede047a568f08438157bed50eaad559c85cbd29acf23a8636a31a1a7902564db2b75d61974158d4f894d75320e40a083a913f2c4083754ebc36b504bf7adc45d5397a29b57d0e632e210c5679e6498e62dcc880dfcd08ef24be92100", + "1d0626570db66c97820701d687b2ec22816cfc4d4883ed0de417a3eb77101eaa8b51bb4d0734b4f188bd0b9d8464f8118f9562cc02670854fbe782be96e75065d65a51026685ae4c92c0b4ae48542d856e03238470d290290f25fbf388d26261341232042d75155292b9bf93400b99032bb1e1a4b1ced2e551e2161c989c58f38b706335678d090084534cd14ec2af2a5a6f303ca65f04624f9f4bdccf248cd77adfdcdc48ef75c8da685886632c43cb5922b13860e35801aa2bbbe2b47d33cb373080f22da9d7d7eed9f56e01135f274515c1a4bf894f8578e99fd88c49bbecd2092339f4c144536abf7b3c98656adc24ec0b0e7cd0a35217e634569145994c1439c0e838f5b5328953b507d171500df359bec1a9ee81661f26d152bc8b2df04ff8c9d902cd5491de46454ff05115e33dc02f", + "7b801719d05ff2381b8ca1fb69a9224fd9d6cf2fd8ecff00e5b7dca7ec30a96d0d889cbfe87301413516f37ab999d6751c5335", + "1abbbf7e6d2b28e3c43d4fffe75510a8dc5ad08bfd3c7f307d1f8de8c8a7dcde1b63ad74e4490d78f9b52a0a892a0bf5fb853456ba672e5ffbc7b2e41d33deee5a9b8ded3fb8d330e5de55ed5cca03760ccc5c31c3a1935533d7c3a2e4194f5a9363e21a18eb465937c1a88ead8583c2e4acbb81be73d7b52bc99c6997a43bed691cda44db63a9abab2be0a4c6866185e718312844db5ac9c6feb23b36443ab510d1373f071277e66016f8ffa18ef27406d53220fa517c98ef666266d81d645abdcc082332fa13b440a5d6a5fa7072c61249df796de50f87b98d3279059c4d3ff2ab11223cb47fa4f401050f29133ff1290f1414928d44518dd0f59a474b25407cbd569ba405f347b1b54e1d636b140c5823a9667e00979356c9f8eeb812d4215ecff557db3a93578ef6828113dadcbaad1a45" + }, + { /* i=8348 cDividendBits=582 cDivisorBits=340 */ + "11276377d15629c8de7b8beed95e6b62869feb37fb8c0f7037141c45b38a3ec51d24c56a777bd056a085cfab69f85dac30e345cd62fda1e0ffe6d186f8fcb52bb5b9ca43d7027ff437", + "05bf8ec4ea3b6d90e4f81d38f426444daad8208373f6b77362ba93ab2004fd91fc1ca719638692fc8109f2", + "02fbf30549d9a7e38c5bfd13aa699b35fc33215851949d1aec10a690a93942", + "05af7d5cfbd29c43d0609797f193219c1558eb2c2474b08af00b3e8f11ce9ed82f7f19f4b5fe057d4281d3" + }, + { /* i=8349 cDividendBits=2166 cDivisorBits=2045 */ + "2b95b9a8b95494ad5e0e9491fbdd6922228cfe31ccd62aeea344532e041a6a656138f63b8aea7bd46b524aabb1dbb56f0ecb262e78b7665fd26d20de61df9a43696a0b855c5b8fd3c6eaf6b1a4ae4df7b6b527670d8b6bc3854aaa17cbe3452bdaa8c72c03fd5620ff86aa71d10df98b86ed2c112b867cf7fcd93025b644602deeedb4529c9fc0827f593282701cb7e4fd5294b892f41f00395429e41f45d6a3e523889dd3656a821de7d518797e94472c1248ac3a59963960e4ebc33282cf306e4cfc127beaf1786c864c35757b6e595289acc191369c537be8ce9cd8adcc4bf99004a38e6babfe89ce7140be8b10ad7747ea9ec5d8c8236b18e9e25f6fce41c83f49f9b48d2e1c0a86a8596e8676", + "1de7093e0a1b663e60eb37a2042d52217b74093f0ec3eb72cd13e51f6504d07eab92dccf01bfc52476ce7164a2c72058db8dc70480e1c2be14282cf3b4850cea6fd558e2418c6b12f07ad76e7ad4cc36bfd7a365cfac4a8488376809dbb48a2f790ccea10241873d6278026b301c3eec6184427dbac34c81716e9177f70951e2dccbb51934a04c72a4c54d4d1f2ccb88f3965b5fa8ea8788441e1dd0e6a9bf186a17ffb52bcd140e38568762395675dc59522f7b496a92888ecc3993554f459054373ae5b74b40505b939920e429450fbb7d955ae7927eb2bd051dddd546cd2b4445900e80fadaea044984d701afe3140cac7f7201f5d69b2f6e2dbee79ca11b", + "017523164ede06a926c9bf8aae29afe5", + "0ca97f9ffdcb1e1054cb0d52213c343d08477c68a8a185f0527e710dff578b50aadbddd6a662fd3f9aa37da79cd86154f94b0ef401250dd848f2a22b79a73ae6c6d0f9ef086d82cc3ccd58d81e7f1c06c1f81edde7e23fb7b4926137c0ac40ae53200d2317140a0670382d72793b2a17c504e2f6bab783b172215ffb6b0fa6b8b295a8a73f3db332cd9b857acc0c3134fcda3326e17dc9d4002fbf84631950fb5f8871194ce35c298e1abbe8f30cdc93e5130935c2616727e31b2c30560985a9b7115301aa5fecaed2571ffcecdfe8fa8c14e03ba6406df028139481b395d95580daf287a27b9d4618805f0f63e106d54e7d0db2c99dd4c511618f6af0ddf44f" + }, + { /* i=8350 cDividendBits=159 cDivisorBits=87 */ + "4158f7e212f036ecdb0a33c37fdfd9da993f6d44", + "1facd6f0c2f803578f07be", + "02102442c7c37cf4d293", + "1b8d6eb6ec5e4e94ac1f2a" + }, + { /* i=8351 cDividendBits=3892 cDivisorBits=1942 */ + "02ea510d822cf097210c5bc59ce3a8051de1eb3d1717c616977a48fa69ce7fb1c29e7f3738706e45ea5fa491184774a95dbc40e7d20500e9afb90c77a6460bed397f45d2d1ed3f52eb7b3d24243625ef4f33b2e5b1f5f15921757ed42a8faaf2df8078ebdb28237402caecfbfe82cf87d856b2452e6f34921abf31d3a394d9bcb2ebc97f7d8641f35ce867676b172b7b189d882c1e9c46e14383b6298eb9581cd6ea1af4c18d86e8a32fb1d3768936f03d13220a600d2d2eee0116e9754570726031f1e2b4a93b726e2d8aec419a848c6a42aec7c70dc0b307db4fbfc78edf6326ff60c1a6f68e0553585d2efc5ee674f0904a6ec2ec27c625d5c4272d0f7a7dfd147a501b75681bfbfbcf867955c051c0f59933dee019c493356035cdf4661e078fd2dc44d016c50818245e3f52cfb781b78e244d36e9b30c654762962d662cdf30aea8dc81cd58d7f7cb7131671f6fc9c77b96755e8aae8145fd6479ca5a6672f773ada5ea70c25f73d0cc750c2d861c2730517a0f55e219875a04149ff1cd8c8d8f10cb47f71caa3177efce727b695001752895e21e6bc9209d2f5da6d2db59152bd44fb16b8f2d123ca90e6991e15ac4a7d042187c700f32a3ccb6da7ae423add40b20efa34ccb7acd6b82a719b79286069be8a961c90bcb5bdc9db17f10b0175c094ae71f", + "22814c36a3e9c3963a7a06d2a26a3f51b1f103e2777a61df4b4895964e8aa7b5f5ebfb9e54fd41f3b9f28dfc7fa37eb164add1d91339d1a823035d9f05216655b688b3255016f3cd8249dee83d7fb579ff5510a00f2cb3e31231890283395b91706b55799183f3aa28c5ee434ded592a78c009b1f1d86d8a5bbdec879af7fad5c079d2964b86df7ecf2c5d71d311db028c8fd63d0c5378789bee46e15a86ea78a5a62b8678619d1754201c2295153eaa679f3cef064463ed12a6ea449c499e3f3ffd054adccbe13f7ddd383d8cbeef351347061c539db3a7764b0860860d707506c85716d6ae0286c0322387dc838c47ce9ce8", + "15a1126f51330ab05959cae804aa770e57828c855dd9e6d6da14ccfc2a277fe1d53ac8c86da3f47345fac62302268f78bbf9b3f4ef21eb8a22cd2e27e09d256b8f302326556bb5ff8b9f7ad4a037d68f8108df6c658d43df5cd14d972f0db92cf645da0602001099fa28c822f1a0c995c6b465fe49cde16c07c82477124c911ac50dfd5212c8ade200e4cae9eb4ed7ac26c6a14b4ff0e925fb68ed9b3f8e62d003fbd1a67f847c239f4a75aa5890bb93be0912463d779bf69790322b9f359402a4235c21a3b9c75009d5dfc9c29dd878958301606d98d16143bb98c5a42eb067cd16c602c7e0c99baf7f39dec8931ea15f12b42b", + "1561ff837707eefcf358a2ccb41f699e524cb1192427f1631b5421ba25a81e6fad1e9e676fc477f4c124c7f65fbf369986b71e64bd0db28f7821198269ab42e260855cb7531aef3177cb401878bd05ceadff5cfce6d736a3686cd24796fd0e44840a49a78e728b1773379055b922fb74f3b552a09145b6b106ed1bfd9c591238457ef3b4c42a9308edf2736be8828269549418715e7e000cf01ea98f138993952cd5ee3c845b646cbdf141d807012aab11888a78b223dea83d4de0da2714d72536d194ce10c588f622a2cae0529ee87d1113d2797cc202b7986164733f64c66091d0d89aabac8a41365ca12b18c5a592f36c27" + }, + { /* i=8352 cDividendBits=3322 cDivisorBits=1981 */ + "206545d946d3717bb6d0cf086357f93a63a45c84e3b0525792f43b14d51d60d2a79b81767dd53cffdb4277c515ab37683ffe1dbca77a3a1fa9cbe93c78928216badd98057e6330620f386780eea88b64b9108f18acd8c37ca50c6bfb662349874f56b850677bf4f68fe250296d13d28a428dae24c57c138a7d3197fdeae493b14ddfc1fbf62d8c66718429ec401bf396f4cb4f389e176fe7491a339e730037a9115765aeb8dab02855cc561b6d39ecf702cd98410ffe722773608a59d7d98f0724c0fa35e688962de778fcef5be99f632bc176b140e23b55b0e33bbe145c89e5ce52953d7b56c859eae84fde2975fdf5fed58418b21891089d60fc7a0b7f68adf4b7524f7f72b681126b91cf60ad69d96ad292f5a64859019cdfb9b17b64070873dd3939199ff81c0fa9aea1eeb70a5b346ad610647582e9404c0c764856bfeda0a003733d0a0f95f4daa60e427d40101daa92578fce2d50879a1994005969e60977c5e5f33f32fd2e93a610d53ef6e3088f7c1718a4ebfab7623023c805b625ccfb90cb01e2306d9ae7062e8ccfdc5d3ec0af1138d0995559f956dcd29373", + "1d41f3a65715007b4cfdc06498844801fb328f30063844c41be2e41d6ee0305b4b811e2391ad959e3a5efacc4235870ad4c8c193d275e4e4d88bedfdd54c62f96636e8088fb6d16f8214950ccbbf41b67217992978050f708705d91749515a6dd5abffcd0207f7aca669b85fa11f03ce95cebdef47a6d9dec1fdfbfc6182aa19e7d23fadbb651bf2e991cabe0dad8ffcde62e72284c0bdc141f5983c1992f272e7a56570de0fe956d1c447587893d999f0b31d3eb45ec755a76b52f95931d3ec8e792f6c754f6c91823470233044a8cee39ba2c4fdd9df3f934641a564954b8c3982d437de1056dd53b747f1f39dcbad99aedd336fdf12f0", + "011b74f1a562eb4101cf4a9e7f4646b15912b58d807692876cb22b3674840e03111d390d1f992faf6487c82351093e6f4991fa88352e29ed4e6c536afdccd59a80aef42323117687c89e5512d0c0fc5130a4238dacec661c01ba575f4cfe98e482f05b5c1e22fe88893047723775bdbbcd6d02c3c070793c6bde9a4847d32a38bc2fa17e365fd8b7cf2bd424a96f5ca425b93134577978928825008702841eb241d64d9190c4ba6d", + "1b791df1f1dfd3d456916da09fde7578798a85acd3f0ffa52b54472c1476d08f163d855d3e8d21992a1b122d4a30014f0e25eae3473c10241723c2dcd1c85937f2c4b65ffafb11ac891f17dbb43e85a74940750560af5bd86e64686e865b2db0337b4cd636abb8112f5d11001a3097c5621bcf1e2d3fad78335c9be37e5a92877341016344c0ca28424d33b22bed9ab0b0142b59a87f3812fd072f314da75fe9c757f211bf9234ede0b8b4ba43a67470353f21012f8b54ff2434e93435550c451fee0644ae6ef402905529bac6a5619b7bfd476629f77b60524713c3b7bdab373ac6fa09287564278ba65ac7eba2b9c654335fc6a7552343" + }, + { /* i=8353 cDividendBits=1487 cDivisorBits=1291 */ + "704fb451637bb273aee27da75ea2e69321a85569afedc37d87c3a51d4ad8810199ac6decb19dffbca1e541889d68e16ad0ad023a7fc192abb7fe3887e12e6fd2f5948f983698ee730a919e12520b3fc534146250f5cbacbabb02b0de8da6732fe6e5bc787f9a5f6dc7c6313b5e3359c3204ec48afb34edede2f65fe8207095e38ee0edbea23511a6d77f3cd277131491297edbf356145e30e02f4a481616ac3b3dbe6cfe440452d76ab6e30e6f1054f216feca76c74d191edd04", + "05f7246dcc1b3021dab27adb060f6a36d17c5decbbff16c2b600182c4937dd8b30ae0c9120554b38c2e6c65e10be5de1ff341237f0f109976e4f9dd5c98947aacb2f2dd4113ee409cfe6e182d9b366266657fbe880752e713bc7bb822589079f4cc28dfeaa73b1583ac507eabee9c0213f5cfebd95518fa6f5861ac37ad41adf45d1b925c03888103728372f81990cd975a6d0bb42931e768c056c0f19667d022a7a", + "12d3beb1f180f1fb8a74c97dabbcfb80e3c06dce3a400ebc86", + "03e16d444635e6f2205e56e59c125312dfee56507e3c25a8528671a31445e327f17fae652ddd6f3fb1cc5d686da5d695b5bc3062e9316b2738c7b7de90b6e422d7b4cd77e377a1e42670b328b025fe5b14693ab060e5270a3c11735cfa98e854401a40b2a3c351b0468f6054c8bd31a80efd4e9c4598b0947c219ea51e50e51703b39f7ce0b688a29cfb1124174e1cc12f61fb3ef457d4b963da7a6f0b79401f0928" + }, + { /* i=8354 cDividendBits=2636 cDivisorBits=1477 */ + "0fff23a1c5ac699e2a32d7e7e7cfc0356e043a81b7d264d89361b7283b50f61b00cc5d8d19fba1365425ec2c2f78cc53d0a5598086a66fb3cc9a7a6935c90fc50bc69ff38ab3d938832a17d65663aa58d82d4c2abe4814b35dc666df68445245bbab669ef93b737b59c73371bb83b197da48d42e2bd2ff478f27f52b114c77ccc4ed9c130f374b925d11630a2de724d2e61b01fe9bce603ce475b7eadc5674203551587c4e06bf32cf5096964b1e6e492b7988a8f211586fcdd7329dc74f86d0139a3257d6c090d1bf8acfdbd905807c62aa14cd4032c35f53dbae4c35e99027a6948f4f341ab5b50df0ea20e952577db53562d0a8bb4d4e3fa3ccc13726a09c529303a9e42381c589b70cadb25e54888ed6dede9217d8042f4f86026ced7f88fe1cb3c028c6702f5b7469e39cb8cc3ceb0114618142536bfa604ecbe69d0cefd3d65e2559b2574e289a", + "12e0ea7ee91bab99412dab3a8dede0d943b4fc25f267ef4cac0c3ca22e02fdabfbe378276e46db51781a9ae0bbe50caeedc1fa88255d59f5bea52b7bf64e34463f3f7d5ba1c8557923741ab829e5c83184504ca0ed26e014dcc9769010e8e826efe96bd0c21f52f7b77eeeef18950d0f012afe25c752182572a8b61ba0522f8e0570e469f9eb7819aa47823ca46a22e245ab5df43cb8040ce4254ed2076fd5de78b38558dfc9798ee8b0b561d6ca7844d8fdd9dce7084c5858", + "d8eb7e40268fd2891a206086ee0da39481237402ab4e9951c4e4f22d9a58f8c4e2be6bdfcde97fa6bb6a6c8d23f06875e3c494c4cd334744a5907d4321dcbf403973c5abf3b1f9349a24b50381ea285a9b30c87d886fef8595789f5802014c4dd6c34ed16928af4a6723c0b3347db7072b95bb1b951ec843756910dabeee6e41064f6e9076942e0a592fc9c4de9a7a189c", + "0cac3f55f5d766b20b29dc9f4764900dce8acef03f467047172852cc836c062f8bfcfe4e3aac505741659d6eec557cd5e493768773d82c30da84de78ead81b0cf5b5b2c64d7243f8ae2eb038f7e3124d32f9011ae7d16d34fcec6460fc254adbced186395a6a532e814c2429f530e1ed7f412be492a6b65d7583a9d07de55f0039be3210491d31b8d67a661bec9ee3ccd4bb4277eb0a9a653c804c205c54faac8df021cc49adf21cde52927bdfa34b5da3d4a5364b169012fa" + }, + { /* i=8355 cDividendBits=2681 cDivisorBits=1087 */ + "862f3dc935e2da925fd328edf182ab7a5b53252501034a5e7f840e78490c56cda6396856b1efa02381d148d32206d22e2ea724aee1a328b1ab29638891becafb38ab5ebf2eb34da62c19d18b056e365eae50e3d30033c36979b7a25464ce469b328f9462ea55f7c7f90fd4068f6ee6a8a3474fd993302cab462cdde410fa75baec1e83087528f878946f47d77b713262775994ababf493694eaf2151cc4a6f030622db08e0b9f2f75957742968bccd6992961b17efdba26faeb61598430132c1f817fe1c409b2ae381bd6a7258c3a6b8d3aa1d33dadce379d8c8124acf49ea0c685a4164c9d485e1dad737dbf545bff6fe89b4b7f048d757cc1c0d1cf5475efd03554cbaac470201cb894e9660c9978b202274a22b31219b97298c5e8372d1e9acdf72d977b6c833892d40849da82cd8285c4cbbbfaeee6e52dd8bdb6b59a36dab4f863d568fc7ac653af44fd4dd9f", + "61e9dc5001016d18ffe7dbbb5934ad424ddf59e1a61bd32a438d8455cddeca7b9e16c7f638a261f0f2488e2492fc50d90abbbd2a07bb72a0815f58755f7da43954b1cd34944e43fd76ab1001cd5a720202c21458b28657625e17957b7ef8143cd83f1ca89dcbbee9bfd987c9e386f2f363028f21c19874188f2f58354e0182e395b7c466a4646706", + "015ed51cc15513ccb505239ef1a745eb48cef050f4d0b8c241642031540f4911f087a52df77d504c1ecba1f4dde4d94c81b47496a05fef39790f0f8106241a3b2fb7498ca9f8d25b3deb44b83b4352e70f34a1793a7c65d7663925277e0b54b659e3969ab2ed3afd915ab0d8b10fc983a9fd66dd1e1398c31ac01a47aee3100f1383718e80673448812fa4f5d1c3e411adf4f922a90b751f0ef32ee27c4e9b260121ccb14eb3b89a03a8bff281c2bc6ca177c28be5df59b3b4add52de78e3d793450ee4319089708", + "58c9ac5e6ce39a9956258352dbd6f97106227f0f7e9a582d2017c7a1f583acd98ec05e2b1fc1a6907ef81eea050dc05501acb7033638059c6975b9fe36c3c5b7e7d892ba31bbee2811847391b71804b365a1db25c8eb9244b94286cf16df29474fdef0677ff437241df266e27f3313aa7a0fac8fb5601d15b9e9668c27dde399a89d110325bd1b6f" + }, + { /* i=8356 cDividendBits=4088 cDivisorBits=3799 */ + "10b12587885a45d76a356c5c5dd17094a0e8f45a3c875388c09cc6fcd65d60ed87e04511ed352fe9e71a3c22e4d14b860fe1409302768df471a4061651405ff67dba8c047246ae26ee60c03ebcce0fb385dd9004dc3b494a9a75465284f42a1302cd3a60be46fc16800e526294d0863203d2e4bb97236eb51a77c8f73e3316159672743d7d4113de2367d4dce40d86fab3712a1ff7d35ba8d7b8fed518b8e9a6050ecb20bdc97c7f2db4e6d04efe5839f9608fe18aaed809ea9323e8ff37446c0eaea3b73ca096eeabd45f9c6bb0d146cd4961640080e845c0014a8da0650a65328684253ae213f88a72f88fdf4f62a6c11bce7b3d27ab4922663b799c7e56011b3f843145612ad12db5d40ff53548560916fd9aa4e4f05e2a896f67cfdc9d1325190ad258c6977f60c2d2490a608ab2707fc47b0ce610516ba6a4cbb1e8c005f977cf45e61d42368bd86b99b0a7a565ca9e958b231751b711cbb86dba680a774f8d21dc5fc3118ef4bcfca72f4d1c8b2e6126f18a49584537b2957534b3157e4ece620c4a65d05f932ca58eb4d6912a1d79316bbff2b8a0ad84f65cb8186731ccc33f274080069790082724d7c58713a1ceeea63472668fcbcc954fed0304b14f9c100ae77f04a1233f75c09fe47ea1e605c363169059db6f5baa4829d432261f60be9089c09250604a1070104577cc6b8ccfcfd128d5892bdae6e3cdc335", + "720cd30f69221588858a02b0d685fa73285a751c45d4bd1bb2d13cb1de1231cab7a37adedcc314dabe3bd015362388c06efa93d705db9b4b3e8e38ad8ebe4e5f2091a13957da5edb6590d797ea131aa213efe671ec03ece1128dd27983d8ab4b82cc17b4e000ef86191afc1d6087c47341e71097989f27bc98935ddf9395b75d29de54b2127c192c5ece950ea52161e4ac38d474f6ec9171f14182659e898659f2273c05385bb0181cdaee2cec59438eda63d55ee9f485adafc0c8a3778f140f9b325d395bb1fdb4041072eb9b379d3c3b4d81f169922d8c575954586676c7317e02e7c3e6f47a9bc9dcd38a3dc385f777c6426d1bd1336b6f9121b480201f635ae233f3b5e4b1c8eb473effe95ddf256cb99ec97f2b2404424441e459bbb4ccc1ec8673f0059acd2667daf72f140ad28792c36cc12a74c0c508df531e641868b1a9d328c6f5cf4326af3bf0fd04fcdd166cb59b8a0b2a5bebe3e0dbeb332c16946e5462cce41b8f73b7405f5ab55ff5188b01a5e1f11b7ef988feaa19a0d85ade9d46d02f20a18cb95f07156f2cea33e0b7ec43230db2ff45e81c76ed3168005aaab554b728d8aefd566d546c6444391f1591191eca7c716d596a456eace7cbb45be1c37eb517705a3a0c31f38d2f7036048c31e5decce3de40ed", + "25779f82b47410f210efb2d063ab3673cdbeb131401a8e227645e950d1c5c67495a10967", + "4f617d4adbfd32c15ad79dc1f39496644c40aa4a557b0516c0d9fc874c4fb04e8446812f52ded4306baf66526f721bcbdb643f463aa985dcf2224536403324903fd6319290719069080bbfb0d50dc67f454076596422e0b887e2681adf67c1a60678d6ef83891ef97e632e3a060d8ac9ff1378a62a67914807bd2afa5aa763a5348532c1192587119d7bfb76ba3bd7c3c3cdcc568a6be024357a9ebbe36a6337e356c495debafd2a75974502afd47e45d2d9cf77c2610ecbc544c96d3dbf1a2816df33b25b166c33b27b2cdf5176080fa235fba358da0221684cffb9d747c7c7becf9d1a6d1e226358101d0127180eefa709937c898c20c832279532b05bf6cf4e4e1300493add0b1a6938b5d48f7eaf74cc4213ac062a4f6e3a86405689b422103d9f4a4973471562e7aedae85cef3035a8605ab2842b9696fa2599404c7dbf14980344b75cef0e5282497595076026de70f0a07fbe3ea3557e12997cfee77c93b17efcdbef4abf94df4b6a2fc9cba9abd1542a067ab5ab8169b92cbaf2e36c51175b2cb0569062c59bbbd6f889e1736e3f665076e52fdbf52581940ca98d202196af9919ec23399d58e89efead499a19c39d55c2c0508818eede9464b56f0b24ffae97fe832dc2478a3d763a7485f21a013f67109e7f9f0c4eda" + }, + { /* i=8357 cDividendBits=1730 cDivisorBits=619 */ + "028bea364fd04e6d68b5ede5dd2e1a64625508437cd13e98ec5e16355c5bf8cf82060047a311917aa23bb36ccb0748905c5b8fcc8a8ebee8d5408ac8afd5541d42fd3820a5fbf2a0301db58b0746d7306ea9cccde65ea3d20174fd95e1d7e517d7ac1dec0fdbf33f3b53ca989c3ebbe0545389da0a419b5dfe354d3e0bc1ec3379d4ee51eecfa6dd29dac35fd9051bb3c2ecfa6c0ac5642cafed7f103d8a531f5b655a50c31abff0f8e0375a4680518f0cfc65a99fb6b2cbb2f0285031adfb5bf6dfc6b0235893884ebe84a2a235f667246ad8e4cf26993105", + "7cc8334f59dd7574d4d1a9b951d6f9893f5e8f91adf00a5f40002a9959df3bb5aedfcf8889e5bcdf0d83689a6a3d5a5370715dd856a400bbe28701bb8d933da98c45d22106300eb14c992360e9", + "05397430762d5f28cd5e06746d4499f4fc140995ec5627250389fd37ecd8fb02c2b195ebdd9e25de493df4303904f088b05d5f00d22b3e68a29508267a1fa7ccab7f5e3ef0348d435e96d91dd12c75eb663c8a922a727d93ee39aebb5afe64b5de6eeee624db5fdf50686303c8d8ee96d45ea51f090137352269ed5ffc890579629df40f25710d9042fa4a6e", + "1e662bfdb47458c956263fe2cab1c540d7b231b56d4b67e0344f4eb25c5fa1f5e62c8d273f28c3ad4ad593d8b3862c36bcb0e07e29e0e6738b8e8ef8f853b8700e31259e653d548e0869d832e7" + }, + { /* i=8358 cDividendBits=27 cDivisorBits=3 */ + "037d5e41", + "05", + "b2ac73", + "02" + }, + { /* i=8359 cDividendBits=1329 cDivisorBits=1095 */ + "fe7079c039a14abc1826b9ddca08e21bfedb49ff1b2ef6c7a58953d271ee0920668661416af898d18e2c06021ec166d96d7467c7e3f5f81d66c204cbc3b06422dd711cbf5960743736a79ab9c4b747d92a75e061b9ee29f5944915afd009c491b084d8a67d6d7415ac47238acc5948fd941fbfd0eaf973a0ddff5c3fe1d37e98899f12360cc505bbf5ea40834b26dd5590fdccc756b7009cd2105ada544af7777707f119f040", + "3327c589ecce8eaf47e4d8c581381340c81d9a4b27fcd0e62d1acb3e530beff13445477cbd1862a69ffa834bba4d97b927c1808a0e61d2fa6a6e09c82b73027cc5aba09ddd9775812aa430749d42d90c79df24bdb3e291ee8aa3764eb9418dc97691ea4a2f21d882efb3c7251140e74e2a265fe774c1bf92b3ec4a3785938589192c4d33f74ebf18b4", + "04f94e97d5cf5fbaed471ca06ea8566c128bd95d7ff054df1eb69a5d0f35", + "30583425db4a86e8631cf5a0e5fb6ffeb145a7ac8bf9e35f1a5bb2b2e1e8067c0f46cb47b54f8017eb7c527bfa930aa33720faf70c4ad480dc7b91fc50bbdb28213095219f13f257f2cae33a11ad5b18f6998aa254e9e240d02f22d446f9ecd9b5f02eeb9623f3884e1d746f0ec11fcf9e2a21b302f6335c2a92132b60e75640cfa9acfef72fb346fc" + }, + { /* i=8360 cDividendBits=2373 cDivisorBits=809 */ + "1f14611e4bdbd3402b0626f75b9b64b480fb1539e518c56bfd9089ab5170545843311e87f17694e27072519a1f4bc01d21f8c824ada562c1292a164d96acface772ccdc472bc52f42a0b819a2f38231e0d7f184bc18429cccfc641db7cc7f435ce4124c551ff1f0a5825b644c401f9890b721477c684f9c5545bc9be9f8f68a2d8a05e4e3d00d617d32b5b8906a139ec0d1c1a07f7c7da4931e2d84daaa768387f8aa78e271ce7ca637280dceddf6bb14878a6c47938ee7331aa56df8d77b43dfb5d9405c04613aa042c4b326db51689675cac7ea0db6d81854fb3d0f0536725f2effd48acfc354a95deedb8c9f3c9e5903fe043a4785d48d4cffb802c437701e4392e8c4d6374a2ff3851979b3f9cd18b51ea03f64be53140fba9bffd6d191c875d05ad248eb59e4c", + "d319746819d3636f53673d138c239a56393bd3ce17508cd217118a8753ff9fa0a8f2559bbe3faf12f50abf5bf547519b250c863e5113dc4ec707ced1639ae8f2ccd2f2ef5ee7470f7d9d2e5f8f708004e8ced8e57afd22e2842565081318dbc6c4a8ec28ad", + "25b0b0cdd1f88b2489217d7bb50ab5908170651cd03d978178e91c27f18385f3c34e92c00a1bdc5d41c4121c4ae5d0666a3cb3260c8693f3ff45fafc82d43f7afc2691c9726548c565327f0348938fa9f6f62975d5031bd0387c4d084bcc8f1e9b898bdf9624e5691c5ed183384660bd23f5f96bedc9c85095210833d304c23ec25e0bdf1f39a5bba59ccfd35810d6fe41e6b98b839463937ec317e9b3701d353dc17c77faee2afb169f473856605c1029b02d4c5744a4139a3ec691a57b4c7024c96b76", + "89c187ebb68cd8766bfeb18c27ecec9bbb38d19e29486134d6d76906d7cb71c70a72ee20909a9b12e48d6d2f385793b0e13d14b11fc861ce6a14f5eeb524187142e802331105af57d5b2b83648245dcdc858330349d1183b004e046bf743f5dd0fb9058f8e" + }, + { /* i=8361 cDividendBits=3474 cDivisorBits=533 */ + "50b45275ced792d27b3fab41dd57121af0f5edf88234ddd32f0149a5480eedf17d598735964e332056f7a00e3692b2bb1ff8f1db7399678596c4423de8d379fc58c8558a29fce6ed96709ae246fc6ce591f9edfd0961b887b6aa79685520229c4b0fe39782528bcdac3bf64b04b69f35af8dd4d89cfc9f9a9ca3fb180862f477a18fd01965bb96c5656ef51929082cf11231a23ec49da22a67a61a708f648897fe4c85b85729f59f6b8e9be298c2188458ca9c9089fad9abc693c7d3d856fd70defd9e6e9aecd1e2e9dc83a42ffe550cde19f76607ff332406b54deba7e546be4d9bd1f40974b1bfe610500a6ad609f41da0d410518a0338639defba327d1bdcca84f25abe360c28334bb91f835587030530ac67177ba3210d4af35aebfa3ed5355663038ac9bd1eee5d2872437e76fcd54a37c66baa6452f3dc83fe0fbc55bae0a66770881ab5bd964cdbee893a2862e23e05366b1b68a60eab6c48f7d456570fd697d888bfaac5543341a53ed35ea4f00f5a0d424d1993fde14d3b7e3b536ec8c2e43bab4dda440637c08c17df853cee7d1b0c09031774c89f003fa6f414625556fb430ed979692082714d64dbf2a0708c", + "01b54787c2e4025074d8a62d404f02b897297dd2f6a5e05871678b8785a608fe7de4b25ed41d391297c6481324829a2629be528594433746a5f9aba9f339b989f16bcd", + "2f3f569ae64d0fe62cd91b44c75ebbb14e1998137eacabd442199f2d646e3599666519e11e4c93b4fb006f3dc4cd45e37d06fdcf6cad1164d1498162fb4b67acb1c05d2d516dd49bb71949c32c2bbf4b009d10cd8d8c65f0ff60e89744ee7f4f979f7ff81ccbf350f2844242a695b17143f3b80f3ba92dca66cc79e70e6271a95ea947d3f30b71ad36c7265bd1bf14e62432d843bc33be997cb336b5120dc5cb80504207ce7fd2d5488b5b4bcd7d3b440df3540a145f88196b15fa424a2ec643baf2a80a6090219708ea63543c820c73dc3929249463fce07f9180c3ac180f923fc888ca0877675c0fa55a2b6abdbb7186184b4f8e82e32ba9bc4da6b733b82a66975429466d9b2fbacdb3c31ccdbcdaf48f775eb06ce5afb7afc778ab3ba9932f0c3c93fd93783503a504414a6a98067cda1349e95fe4f832b49f71c6d7dc534e092a9752aeec212f12dd484e4a686f1660ee8128734d2d0bfee8c4940ade3f6876b6b78b2ed0fd12adecde0861da7c", + "c6367f2c14388bab7a4d54b06a7f423659c9f13678d3473d10adbd752116bdd82a3a0c2cb262b6412662045958e55c69028cdac7495c21d09e48e27327e74b36a740" + }, + { /* i=8362 cDividendBits=3364 cDivisorBits=646 */ + "0764ddb93b12d753c7010e04c2d2b9015f71525289c00d1af2b16797e91c1054c404e6691081c2978a57caf1254b54b8724a456061a9f840138dfec5397d95de19e74089614b9481c4d2ba85849194f8d4b6fd97182196249b5b6e6cb6d7cf7a00a32189187afb19bfb58f33dcea6745791491df7d6700edfb29abc433ad02f2f08a75f322a98023555f2d02aa22371b94aae22e29edeb3eb230ad74a1c1359fb5e5d6a36bdd6a238fd05de7960ed0fff35bcbf124d4933bd7f93988772a394447b48e4f28f318d524e4678e468acbc033d20faee7b77fc8b86162e1ef8384f47dce112d330f242fae1b9b0562c11c6138ed8f583de62569e7485f0647388d42537ddf723199b2f55aaa3c7fd2537f32faea4aeb431bc6520d722798eb73cf42541a37eadb594a588765e3b6394d592c10c3909ebbafabeae3c64b05214681e5471d55299015a1d5afdc5736f414c8b8b4c2fa01ba669629ab09bba5279b6bac3eb2b7a51348aec6744fdd4bf98cbefbaf139c4e6b2baa530210510067af8254400b45800885fc45ba59771bfc3685aca594b32c245da98c777023562c4fb74b53ae259946", + "246e7590e9fce3e198f359568896308f2ae88a7ebb15149cf5ccf6fc0a90cd7b76a16b9e20fd17d753a2cb053d2b3c7477b1194e9223de23b2a1f5b1d2f4874a0be45d171891b3fc484e5b315c8708af4f", + "33f4f616374fc67c25c4014f370f36345c0077297b30d52e3d73836d08ace9bfaf86b6839b7b4c9b21f794ede2d40cef125f2d54f887b0ad2b803396aa8a3874d8749d7aa77bc66f7c943f3da9709cafbc324917c337067b361f9f093a0315777ce2a214fb789707b1c8e5c596c291381821b53ee81917dad74cae1d07ab3d1389f9b1a47c52dbddefd39fd0709852039e247534a87720ea630d2e115a9599541e8177d548b10416c54bb828be00bc44fa2e5c826e6cdf87e4936dfe96caab404412cd1f8a565694496b3461acb4d213f98f0abca853abac048be13aec0af83f0c50972733f482ef145987e806e668d77174b4822c7aee3978d8f86f48b1c6f83471df189ae259ecea9fdc2fcac8753740502f9c1fc8357e4db86fbc6f3000b5610860b2f4d30a2a4c67228b7c11b021d01a337a66bc0dd333b19b80611a7c2a189852ce988fd99851c99f8428b092c94faa2371", + "08242e4b0e3970af3aa3b2619ba8dc7ddfcc178a2b0e84a07ee78a4ef5c5237d0bcbcc49f21d15eb52305d1f0b97d96063eedb2402857a9c0c4761da0f0c9cfb19af0b83b01626bcff147cce2117e26a67" + }, + { /* i=8363 cDividendBits=116 cDivisorBits=60 */ + "02b36e97f688b33900a1082cb39e88", + "05ce1523ac71dc71", + "771c0a00cce98a", + "052860b3eba3f09e" + }, + { /* i=8364 cDividendBits=2063 cDivisorBits=1180 */ + "03b1d15b7f9165404699d92564f52b2f10be901393e5ef3079a8a1781c354d90656ee5f1ab19549f7b0fdd5769ab9ca6aae48d876cb640da07bec3a5554d86f72023340c06c7c72700865d6ee2b3f129ca70e1c45c9e3c30e364a8dfa5fddc38e641388c37512c27d31e7c6f0062a61175836ab42b7e3d3d98e0f5aecaf346a08c68c25db6bf8523a60d3861a1fcd2f5574c2600a4db3aca17028c264170624c1dd2752d6ff5f3595c0c542d7eb9445cdd41edef253d9525cf934a890f93f6166468b8bea8e82f8dec4299262fcdb84c559727a963df9896af1cc03ee25fb2473b3f31675cea5e44acab3158e8290aff47b6cd02a49d817f9a30151894735f231440", + "12d93d122760f2598d29fb0f9ca41fce0793159db782878dd9016739ba66b5f275a4eb4c0948d0e6fe05b2c59497fa38b8b4f7fa89ba853fda047609c782f74e14ff2dc8646df4ab6f0b8b38ff174f41ef9327709b80f1ab2779621cc8ccab9afd0d7cec9f8c366cb72731fbec6af3173024d223b3f26e0f8302e0359cab66b65ba873e3c8320285ff5882dcc4c4d365dceee3", + "322e055b7cf5c8de9815e9e068ae96dcd3210cb9b47a9a02a3065d12549868e6027e3272050dfc670b0a1eafeb359adb3f1a1e1647dcb58172685f54a869002dda17ebb838dff4fa68f7b18d82c5b17a63f79c609d60cc0c10bbb9c2a1b344bdc99337b808323ec33bdca60f92f5bc", + "0884c267522e4c2e0d67e6fbce9e10f976ee17fafc7315410fecf963e088b664cbe2c75d5dd8d4a17c7c2c34e5383834a362f6e43b8336053395695ef37126f2635bc4e1c95acb4d4618fc2a753b2d3afdd37b12c9faecee69a70b2018322ead7023592f3ab07ce8a2381ec210f79203664e503101458deb9fc7610e236d775fbbc7faf616e5637f64ab931ed2b38695ce668c" + }, + { /* i=8365 cDividendBits=1223 cDivisorBits=229 */ + "10cc57e51d7b5bde27747f26bc9ad1ecb6d9638ee82be763e58c4cd07c7d125a007cb0a41ebba178e56b7d9b57f72d8a44e7ca16365b259afeea60ad71e94068ead1be136428af879434e90f9f74094764ce4938c30884cf60aab94833536fd5b0ec65823876b896243bcbb5a76ac4dd043503401c2b568335e6f4aec7046b8ae6639208a72bcff97644676507c06598f3f0f9792e45ef6430", + "1200d5d4768c7a0f6cb69b31007523327a52cd062a0f972ca7a03d627e", + "eedd5ab49db6e817193e0bd281f9d0ad48dadf2d1ef411decd0ab2f464ad447aa2368c06cbfe41e05e56c5aadd9c8244a5337db8efb127fd384a0e82b9d7303fec6dd81522d560cbe60e8e5e1597512949992f14a32179c6a594fb2a9dff4cfb651deb0fbc10926eadb270b667ec14eba64b5f09af036076173d5e33", + "01a8a04a93dec8b899798ca2b04e345a72c4501ffb756aae6505848116" + }, + { /* i=8366 cDividendBits=3441 cDivisorBits=2934 */ + "0199cb405522c3a7cda379a430df698c615d15e072444c51e7346bfe728556ce0ca146a1ba180f1e050d042b54160fa355ee5450a13705dc12c752043dea64950a28e8facbe7475a0536b51b565787c878001f7c66b064defc6360a41c7c5f68383fb8782633b4c85ba659a07c63cd28ca46aa4b69f91b3962d6b93627d056b13bc530eb93f4f282048b388e6829cd77310cfcda8e474d5d479ecdac267167e5752b8eb8e4d893f0a9b2febafabc00756cd542dc92f2f247508aea4480bdfee2be58caff0278a940882acbfa0eed7f67a1a90876e83bd20c2935f763042d2cbb708b5655de2cc5f801bafd33d210f9e1d4e4ea896828de44d68742fa78509f806a077f465f5e9967bf74300f1cc5b79b662678f644a787cb0dd128353c56ada96628698123f75a3bf5f83a7d4dc7e5abf7faeaf7e6beee83af556fec9d24e8a0735ee6c614405f59cfb2ab93c95931b36cc7a9a81937498def6389562aa6c60d4157017a9d1ce65beb77b25461d4a2541de0cee1a9c87fa7302e458053685437a7360b632b88a4f31f84f811bd3fc257635e6b1bb8c71f5cf5cb5003ab8c555606654a1ba06ffe97730103dbe42e0e", + "2f316f1a631aac9e226aa0d0e41f322f52205133e2deebbcd694b49ba21e60576e8ff7d62b8719232eecea68a300ba1d27096e6ee7a035b8c4ae9148d048048627798d14f4589a58adc0edb17034fdd60dbf6769f1133006afaf78d2b0bcf539c78bc8f948736546f594eee9fb4d48815a616ea66c5edce43a43fb011558431c0e1daba8717ca51d7872dfdec7ca39f212231b68a956ac576471ef9885f5a3a6901595cbc90e5dbe09e0515f872bca4acaa1d995710e7f1e99ac7c643fea9d19f84ded76a89e9d437e8aaba49bff55e2a4ea5758b303943d9f89d7670ea257513c05bed76ebfc71dec926247e07bf408cc1c03f9ee9a86cb7c0f24e961bd2fa935417a087bbd8646971ec2d6c9a75753abf699f33ac7f47cfc2fff5f123c96f338f1eebf52da30100b45da97c1558fbe227fc7643f39f7440ed43e02824dee6a8ec86c01177c7f6550ff91a8f30d76dc510530f56f7ee702f5b76709f40dd090f20d45cdfa520f8ebf1856a46e3639", + "08aeefa74ca6fb755ec0b9940f529d75e64ca4294eb7323f4c1cab58ee2b4b646674dfa514268ec2b8a417b724e2b37aabd5416d0f331078284d524d44cf94c1", + "08d87ba4db1988652e175c4c45d76f84c6588894f19f4d128cc0ed626684ac588df8854eb4436e2e1b4f8efa9c0ae681b02aa1ed26a958c32b4002b78605c1984349f2cea6a8a4ba0ae597b521cede501b514ef0314ac6815d41e7f76c011dffdf3194f1199ee7aed4f2a791c200d5f31dfa92d71a6fc81021d0bd00b58ff06cc39f7f03993e1bd149af37fb53369de58d0e9f0eb042111bbd2f0a0feb57e717627d8b20134d21eeabb1158962629c273b912222ac7ba0267261921d49be9bb0f8fb5f310a5c5f76248a403faf7063428d20e07d07e022c2891f7fb1f8effc2512e54dadb99ab1709a4b1d1490e181073ef9ca59fd5bde589547533d291601ac056fc15afe778dd392a034e9aa1aa176c60bf36c0a640015e9ce3f351b7446778678ceacbdccfa227744331f279c9bee8e10cfeead1ead98b1a077d84ff0a44712785130c18ccca40359c7763a5227e7a5a9a9e718be574ca96380a1271487a309ee668189a9afd3e9c3f8315d5915" + }, + { /* i=8367 cDividendBits=2264 cDivisorBits=103 */ + "b127b34f62d5f50d5e51a5f6cacf777df91cb0d86bbc6f9c2eac1844da1adb8c5121de15f1e72324e082c64bdb88fee64f1d71dd9a4fa47fb094cca44bef700624672397550e490fccf8bfdf590df3f5c0b29f1cb2466865054f3da06f35116c0e0fc7f5c9e1bdadeb22c68c2cecebf51295f96629ef77bd95c6ce5daf0a8d2a7752af89388561ff839084fe0c5fa43a08cb2d401968421466bbff2d89a9daccfce3c5fead545f034872b713fa909d37e6cf608baf72c96fd474cdd4b3e354c7fd991e4ed1ecd37496db3c840ce8424870f51fd0530dc1e3c0effa144412e094359d070c393dbcb2bd7369ec3260e06e37e2ff4b772092e82d3cc1c4d14b566cbe0a6949c15555e9fa4fd4fc24d7a87592c0be362495a92a98680b", + "6770c1af1dc8a845194196450d", + "01b66ed38c1c0a8aa9f02dd93a0ca6a76a134457e63a19fa5637c731a76419cb016717fac6aab9fc100ac40d3e665a3c9f7aeda9d7c15a9203ca574f651cbb45863654eaef5c959286d26dea258445647992df50124f9f4be47b75933bdbc830a6a6db6d43198c74962a9586524eef28e0311560ad71ca916654f1d3fb61ab1cd195f379ee0ce3d599eaf9ffbc7841a516fb3adb4325ff0511a2aa40acd5361cf88d30ea68cb4ea64bd80e763849d2715e2d199d8e6be00c50e8ad0d3d3a981c223ed0268660e4f3bebbab264aab77ec1f65e9fb5183474b6bcf15ea17ad9537fd0fb5b50f9bd66be5681ecb6a479aa97283d18203f3e1036a48c77019007175d6c86f73a27e9852631fa617d01cba", + "39a6c759f603157a68ce4cd099" + }, + { /* i=8368 cDividendBits=1952 cDivisorBits=411 */ + "b78d23ef6186eb1542b4d53cfa17c2b00720355f21580a378391551683b6d61fa895ec08253a1a17c4a30c61b7655aa1df23e6cdbd83beb358b7a28919ba43d843ca6d34e294eac51019787c02ef810a77ad2b1c70ccdfd33ad4a7346a2e69157e24d3acbbfa124318ebfd81a03f9cad55e81e83732aeab018a1b568e288bd2f7c6a20cf976f45d62c1c77b94a78bab21f58a517b05e436def77f003b651ceb0bd31f4123f92872f78d078608ffba806554a08a6f3f4619eeb7c2db60f3ce0b40bde704fc38528eb6204cdfd237528c31d6676816c619d6356eda71c58f3bd52a25dac2465614f31a5b1178be06659061034176f", + "0508e8a360e7fddea189274c8aef16cab3e113a5ca3310bf059152fb637b53dba0a6cea809d0a5ce9cd4b802a8d2c3b0e11301ce", + "2474df27efc72276ef1700b1289eb18efd4b37051301bc616dedbcb076963c07a57deebd13c0a05dfcc5b56623871a5bb8157ee00195b6866a050a42365a097239aaf1dce79c72ebafb5ec299aba968399fe34898365bac0eb57bc87528c64af7e862534ba15de5097c5724ea8a3f4099c3c11533ebf356d2e55356fe79838a5f1246d54c4285d3db63b988eff136a52839bb995b2fe2e85c6f12f0f78dd8d86f4c3df763748a7a4473e61efccb138c132ca0d967e7128b82cbaae9d3f49fb9e2e", + "02549fd517515af4287bb325d4352fbd7d7642a85393ecb95185b93f7073bfbd1c030d0f9bd9dc481ec3f6393558237b60b2a06b" + }, + { /* i=8369 cDividendBits=3713 cDivisorBits=121 */ + "016ffd30a8f4a1eeacf403b639c82e39098caa060bef7b354573b2095267609d2bac105964f433b3f851c6b77ec7ebbd17c241e0281d8fb4ffa018a54b3a548b7b64dac7db953537345b2168e5de1f4934c8ab58adcaa6a20bc980a6a3ccb9879ba2da3ba6aff4d1315a96bf32bfd6b65e42dd68ddaec8321067111ac79ae223cfea143269f10097d88fd0fef2b9ff180bed0cc5fac62c940c6b66c9f00ec9db25073d8c9093ff401cb55893044457d3c6ed071d2a756f29e7c75cf02e2bec7f7860dc104d66fc275cf0daafce8ad18fba43a3785c4719938b1dd49f72f1fa311dd13c5944909d7bc893d0088d378336c0245927975ef4747a74395ee63c71924b4ee61aef9b14efe39105e7785dd916f2ed8e9b3c0849585f9ea02aa371e0e18c790b74666787e41102534fd69d4b30cae2ba76e8e7b1040afa7bd1a3dd6e3faa34f5230c3f1c97f41c50ce49d7358af7f507557b4e01ee85c41c75020225e2908ff4a60de90d6a46cc7e2be6ee40b1d950eec313a9642ab0f83af174ddaac08964f601ddb8043deb2ae4c6cdcd89aa5073b52999f9fd3827c7ec51736df3b9f5761db3646b4ab9fe08a94c20462050fe90ee09e19b06062641482f3200966c80a783a700c080867f767cf3a78c10eebf", + "6ed91e9ad8c563781bee6cc303ddab", + "0351dbb51d65b01fd6c17121d9661d54e2957e6492df0279dfb3044a80bdf81fb5cf41d66797e134aa50ce85469892506f6adbad56a6ba4f50186001ffe9c0b3de54f264f5ce2e5fefd0856a69dc8a0cdbc9f6183ec97ac2776290141aefe63a76a01e79e24ee74280743d04f6518290f22da161c983674a611e456e8f706c7cf65e1b34dadd65cfedbc5f938b1ea012d4613399140829cc6e8a12197f8074bd6dc3337912d4f81b8c6343fca5d316b656694a351d60d8126bfff3f63ca166997464dcee753c88a289c1e973bfd6aff9888814ad88ba81b20d94f5b37a8ab0647bdaf49746f965012a497f7d542d285f7717778cf4233a4c71b4729e46b8868ac74a766445559f28d1a031c5c69e0d02ccb2bdacf1b04c6ae9c9e5b67172c5a0954b01d641ebfc5cbd69a2ba84ca589abab1a7a0c392ff5e0d60b8621acc86ab1060fef1192fecc563b1d834211bd5d787a826b44da1d5d4fd5b3d4c23f7cc32cb8ca7719b7b90e8c88feeb3406af95f31d31715b9b690f29b89fc82babdc27bd4e051ba3d3ea24543cc0b93e08790ab292fd1c88539ea5b96cae5b49afd7943ae4000dd5479f04e08b49dc7aa351409769994bfa46f3625e6e11135c9ed245a422d", + "682f7792dad114356c6b6b4b1ee1b0" + }, + { /* i=8370 cDividendBits=3563 cDivisorBits=923 */ + "018f5232dd70658c406c69414e367a701b7531c4ec7e4e15ae70a1be23947849fed87a442609cc688cf78136af73b431673f46dd8288541d198c047d467ae8d01636b01fc711112eec58aae1bbb07452fdb23fc4971e9613a5a042e1b161a80826d5a17b620375737d03a60ba3be12651023a6267d5855dea133e1fa1f1230219ce0e9ec8aeab18dcf75d29bc4e85195a3f23f08cf78e3d8f61dcfed536c0a4a31a69467e48bed7a63f77586b50ba2f1a286c8af3420e6d5f6bb57a33b0e2b62e33e992cee9a31d7bbfb3ec41b91269c41b8609bff478aff3174fa6b151baea051eca60ceba4351b38ae4c244a7d09e6f324287cf77fcf3bd1591a7192954721903140450f525cb102fbb5b69565f278b0231d8b460b79a16382662083acabd2b699ddf83713fa7d1d992da316abcf75c39175a0fc4a5e62524122920c2603d829b16c4bdd8e0afb0087928e0fac3c24e5d5e059b9e54710531ccfeb815a9b967eedbc2acb3249050ced46a65b6ccc96236e92b874a19b8a7d8f7579a3007c4e45e9f6db584b1d24dc720e73dd67feda86317dd590ab2974f0828f79b5b0a157bf71721ebb87dc8d3031b09fda2945c361ba5376f14ecb99d1c758207cb6", + "033065c1aedc9302fe068c4695ed20cfc56f56124d01e9d6b999f739c588e820d9564b0d5c34bda26831eea9ec8c20e9654a95ea04011e1a8789ca5df97106d8eeafd4e9471eda3b693facdb1f62ebf84fe58129f7a2fd954f539a5f1f3ce278e09da8de5c7e1eeb9c0be37caf96b79ce99399e9", + "7d375980e672de3fe44bfb5f1539a7aa4cae944ec6229dfbe381074864f3aacbd20c883ee07ada6e3fe886748c8472d67e04c288f492ca46009767ec1c3b5c544b5ce13603765611a32d80b367bd9de309bc1e9acb6a144f1f572a714873f0b9b2897ad0b3ef9baa05269ec4661b3c77330473c4a39c771a3e70fe31b161caba73afead8747d981229e0414df5c7a34bd03b94749efdf6e46e3275df5b06591ec93147e0c6fa8851eede45e473623aabb569816532e63e5c683cbef863edb44191b54a896d07115404b414165b881a661c216f374d9c4261c2aa5c7c6f37aa63eaa5c879efb5c7e7df7f3d6c2fc20e19498ead4890f23c0ec281ef97ebf76a37a3ace4ddbbe099eaa15de95f8cd9f3d2ab4231ac6bf327ac1cf308ed49d4ca64969080efff724bbe8736a61bfb490d370d0c69a09bcc83f5150650a3045c49c449a787bf2db25b72ed13", + "e6f7cc1e45c4741b5346dc0d94708bf76b5dbda770eac3a725398bbff055814543fcf961912ba9822e073b8c96ff761f5fc199d17a743e606b62ffb4b76cd09a0ffafe9f1e15ecc8521432132dcf0497eb55c1e3e42ec4f97c61db38ec992d9951750d2749462f0d27a8aaa2007871ffed5b6b" + }, + { /* i=8371 cDividendBits=3400 cDivisorBits=1245 */ + "a9849f67ea486236e6f025c66820d89723d46935ab4c0b958ddb19edfa282fe0597c53dad28c13b5f0813e6b7db48e72de426bc6e2756a75c415542b66d85cdb76dae03dceb871900e5cad75dc6a1522abc7f4bb63f154fc824daeb10bd1035214cbd6543801c949bbc2fe0fa969cf01cc1499d3db6517e92f643fa8d9fd51ac6803e73eac0755a941ffd3aee97b8bb90495d3f5a8bb70670bed838e143a4ff7725f8d70305baf88fb5d0d3ab813ecc3e0d72536166a279f7e73282ae268aa402b185cd26cf7e7b0133b2d4b0b5cf769366b098e4de352637c234bc50b411a911aff4fcb6f6f1aedc9b68fbe9cde504133d04a3e05f31855cdcebc29ff44684fcec60fc4b0a35d5906c823582a9cdd545f2cd523784724a20830bd50c2d5a237c9e8ac8a5bbf23390a5da18d9761b4a5a715dc7eb92ca4fc4f9f6feb82f9883791fe298447e11afbe5f721e40767074a7b9130b1d6abfd64c9e022249cbfc849d59bb156a59c3f44191e209f80d3b431bba02741ae3b17065c464948fcc3c6fce1cc302327de105e0f3cda0db6568f642b10581547884d1f02ab766584f67b2fc2e8f19a5a21217c58", + "0cbde60c56ba14f7c4e21ef41f081ae6aaa197ad32e3fdd027f5f5236fce250e4167b353f2154f60978b57af15feb3348804d3a1e5679b03e72d21b8a40f70a1fa52f2feda8e4df1750198084793737bb06d50c4674a1e0f6e1dd1d63ac3b5282b94d0aba541381ee39bf6b109e4dbe3d4ac76d1d7909508210d1aad82cddbe4d641efbc4acf859dc3bc54d7f68bef04dd8545b64446e4dcb9b9dc99", + "0d4dd970d75385dddb17c42c778ec8db683b9da6383265b1ad92ab074ed7715398ade829fc21d106ea864b34e7c49d9c4295e97f68f240cdf9233236558089ba03a3d5807fbb0cf88b8f589104558c1373f9abac5a4c939a4efd0449efe4643e3fa92ebd071358609384cf306c5bdef413d28b19fbb368234c7090194a9773f7b11f0fdf5af6132356d01376609ff41eea163d3643114a8af340f6dde7c9179a7f6c9e5dd3fe75dea055fdbe1c782f0cad4160dd9a50478cab99eee7a86aa25a65e0159bd7886a95f913ea10d84e42aac362335a1c450e68cce82570da5455cc4ff4e6cf1101229b466c220e473b3c6c5c6319deb934f141c4204d0e254571c2f93b06c5e3742a729206fb268365", + "02c57cc8a0b412afa7b2e54e0e714542ac1d63ec0d984a22574f4a96ebaa1d4fc5b0e246b8fe0cdb8da60863712b1d2b1e2374e5123888deee2c218a46c9b7bd8bdbb044348e8d323488e17aac28f38ba033e4f28f00b34cfe3d1a977272c30366636217295d012c4e74f8882e9f6414f2d7862507f5efbc69f82f21c4f986698712f41fb42e1192bf163f42042a139ed8b7b29d9eb321c3fd3528fb" + }, + { /* i=8372 cDividendBits=2375 cDivisorBits=754 */ + "1c4d85d68decebe62811c8c3db50901c3092f6dc500f7282846492706c7b4ad277206bdb21d05903ab33feaa861f030d5ab3fda4425f8c78cdbde96de5cdc9fe4ec75e43de15a3562edca968a8942be3c971e8b5557851fb5e26cf38c3768881ca48803b0ee45df1124624e28b1b33c7b5ad0c715288b6484d8e34e893cda0aebed6974cea83b44c3f198fcc551076353241e537a068ce65689206a9ca16d5f0c5c4ef1ceeab95ca775a2f30a92290a204933f8d6058822e1df114d9e0374bc77fce8d0e37a781d3aef03a12fcf14dc05d99b05fb746f8fa2d2e9bad1b60c3475d464565cea63ba8dd7a3ffd214863efc7797b55e2721cd4e5d2af7aade50439c91561aa78be80db7d5dfb36002a8cc5b90ec2a33c5c8089238f97fb9662dd931543f204a76642e5d3", + "017054efa31a97badeb6e07dda653d9e5459a42ad591e98d076b441041399ceee64421bdd69f849c733b04a28a93aa9f77236f4cd7d7ae23736efdb4a9e3c998c5646c504e1205b690db8c6bf7eaf3e38bcbf25f3acf6199aaf4b537a1a26d", + "13abd2d04d6fcb403b33bec71ea4e719339fd1a4b520508788ecef25178c57386b2cf5f0b3ff8bfc0f8de57b1238ca0309444dea83d76da8862e9df5be8ab5c44f2ba35326a8bc49255f3dcf38028092a681aa837f563d7eebc979984f4a6ba8783403cd17e973ac08f22a3203ce9f2edde8550aa51cb4a88d214b75ca97a775b62fd461fda833e979ff6899269b1f3a27db630f853cc7bc03d4b190289857ce5268e17d74b35825929cc1d0a3bf5e815b4b641d8f0859cc6dceffaa1ac297791638a1a264965d28e86fa9", + "013927793add0ffa0f51d26b5df619b92c5729236c774d743fb35ae1b0d56e4a50f4b5b6e80b6e6482d19e677edb424edc97358b3354271553eb1fa79cd7afe931ae9dd7d0815b21cb0118590c2a9c4db0e75ebfa149f445985a715c5968de" + }, + { /* i=8373 cDividendBits=391 cDivisorBits=311 */ + "21288c2c411a94cf48f76f962e3b3fa137d03971d8492463bac79f61aeabafb4ee8cffe592dcce82c0cccd95686b2dcad7", + "7fd2a03f34cc15114fb4054271405630652ed9c329f3eb68b0e42e2c1ecdf3c956a34ed6952e29", + "4268a2cf6e5901bdbac0", + "2763e65dcb9322ebfd5fc23ed16492507aa13fd261e3a15c3edf5396f60cec004726ccda7c6217" + }, + { /* i=8374 cDividendBits=1079 cDivisorBits=627 */ + "65314a585b11061ff39431cced9d718d6fa774ad29b6ee2535371d9761c561b68421144644fb9ad29940ca76efaeb00c039f0dd3a01a28a7450e1c37c1412cfee07d4ee340eb9ede8757e3d4cf348f5a37250f324b0fb35e5bb5bfb2c06370e543a8caff3cbcf51395f5741acc90318bc64fe1bcfa85beeec3afa4e6750e048c57203d4b8a0afc", + "02354da6443e8bcab6e921e74726b68233f9efbcab0848091cf7bee8ba9d3ead783d29f61e9f7dea16271c3d1082d60230fc6624264c759425c740f54a99a79e7e5575fe18f070b5b89ed2d484c56b", + "2dd352052f1e9591990a1210fd5721647bae08a8103cd724e59528d8dfeda6f324da21db89d04f34c6b7631c7937536345c9628824fd1b81d7", + "01757edd420224f9eaec2749202dc1a108be64e05a508c7c19321ad0de6f249bc6efc33a8866313a794453eaa7fbd382df69718796e65c119b2f02cd8f43a80d0c047198252d22c87b43ee5744531f" + }, + { /* i=8375 cDividendBits=2286 cDivisorBits=2154 */ + "366f52c829788a1a845a502592257ffdce304b2ff8a701885a3658027f915a71c5e0c53ddcad3c7e39373be7e13f7cc2412426a7f83ee505bb495d4f82abdafda07d28352c96579d78d33191d241b1898fb075db1969af240920de261af4970f0d3fba1fe3faa80f81dfd05d4044b1ff0b8ae767d68ddc88c03587df39fc01b607940ccd0c256476818ce367594c935c1a45d6c93a47fe66aa3c89b696fdcb32b9e3f6d58b0babef15f75ad76d03bbca3ed42b2607d38907eee37f433512a33637d0896f54c19acb0bef844fecc8fb48cf24594a8a849b31b0025f00f590c7976a26e3fb688fb3ab71e99a5d7af3cd81e64ea417a2aa1699ee72cd94152916e8d7e3c5074d1489b92de48447b3349530e8ea7122f857f7643976b6b800f9", + "02838e95be85124e9158cf6fa9725265e90e56e798693eae41cd8d1c422ae25583307c6d6d6d92aeba550254455e206b238d7b6bf39e67adeccf7406a1ba6f28942a0300103c0c40a104862c6b6580f4e6e1395b8153b1f4053f1566a77acb559058f5855550ff1463dc1cb9079903c4041c37b301a9b1228ea11c72140f1bcc6dbfb627e16d8ceb7d9a53416eaea56856c3791cf2afd28e4c1cebf8294bb2c5ad8297d54c6afdc5f6739e6b3657f72c2377b85260bed1dfdcab6ab7d9592457b043a964777880c43bcb6d4d23e395c460758874cdc522a8c3b5e7cd8645a260da2c5c404bbd079758aad8e2f0f4cf8db827c62d77c23533358641068ac2f44edc06b9ee27196e864df4029d6fe2", + "15a75223136aaa9bb7666deeec92935071", + "dd2484a96e7cc4ba6e61f69624aef94028c439ab21f6051022fdf2c22ea08a33323e7bc8bc823900d25ae64440578494aa7e1a02073ccbb69295290f2f54ee535b043cee8e743a445f7f973d8023c2efabd358c72a11c484f71a8010c48e3d94a403e6776b2a99783d257f626b4ec264254b7e3963ab253479f1b2f3bcbafd0d4e81dcd31e25df1e6a1e31b6c504c884424770507ec63ce84046e6039136da76f1f935262121033775a7edcf45798e092e2c409c4d48c6baa6eb4b0bf59691e8d1914b8b1985f4b7c8878c17420a0685991771a9d30fb00b3d99a92ffc2ef0c97035fb10e9c0fe6ff0ac53702dddf7400347680df52380b1b67a93e70437433fb0c2935474d2c30562397cfe37" + }, + { /* i=8376 cDividendBits=896 cDivisorBits=135 */ + "1e6f9ee7420b89eea984efdf101ce57e0017b2989a6acde540d18158326f91188962c28eace546fe54f6846f864a0364f7780e72e166554fc913a78471476f4d5fd1c651aacedd72c64a2072ce5225c3ffe022969885aa70bb9d7818578a638f3c67222c679e59fde436a2c0818dc645", + "50b9e234a1fe60a21beb6d94c4a6d4895f", + "6084eb664402895e645ffe2ceeaf73074aefef3474df4d839c4b4af31a281db199d7f3643c31e4f6576f6295907eba96a7be64ccc79dfc618bc4dc711e7e2bcc6c41d3673e19905587680883bd798c0a79e9dce87173f76eb64d16ba8a7bc0", + "3b2f1c0de9e4c9bee8d934d79030f01a05" + }, + { /* i=8377 cDividendBits=2607 cDivisorBits=1298 */ + "2a85119e61904a9a241307395e8b5b697793cb7fb1e5edc71002d3177b4660d69b3496c202bae76387e34d5b978870b2897d90dae9a43fefba9cab796a30adbaa0e216dc0bceca55ce8ce0d3e7bf90c1b0bdcf076e796260af5dd4a61dc101ef9aa08f4f6e798f6f7da1a096bc2ec11979cd196735ddd8a0f6aaf26b2ae73efa8c61b5a5caa747153ee638a6baba37525fcc5996e7140a4db9eec3cffb262c0b7e733f6dfec08d28ee01caa662a9076f35a9f71cf41f5b86b056cb12504a24b8ffdeed5928bfc50d00d7e7c2773b27cae5bcae1163cc1ef805d1babba5678b6fdf8510f730e9ef04e9302ebcdaf260c0944b776bdc4050ff26f14e93a7b03887895f91f6ca06e7df947a07ca76700298776c9c08c76139220614eb5c5e0426645d5b0e819b5f9c45381f303ba048d2a28c3b98654dba7b069b64b27b57a1b43647e1193d4535", + "017f90a8b7e5bc8c61fef199be1750734b4ee81d0f728136285388e87066e82ff1261e3180d429d4682c3e5b25ee8a275599a26ae2c32d36fa1a9ca198c4e8cc6874abfc41d266827906f8d28fde1e2346a855d4d23f8545b3a0130bb0f5be29c3dba90df17af6c3778e5e9910b70069a2a784a4eda54cc38b6fe395c50701395bab376b5ac09eef785161f9fc3a4a1b3dd50b5214429932e9816179414ce6982eaa53", + "1c60f0e2828b4bd0c97eec6be932d62e01055d202d07d6fe02679a3355aead2616b3a6fb4b3d4af8ba75dd262792bb8bfc7c4fc0852ca14f4cb125edbb73f1781272b951ca22fe37f71b231e229b36c7ac97d6f97e8b35d406f0f43b76521ec8d98998bdec123e104ed3e0957396cc66e7b6d180db3909d9b6513ee8fdf592c8a18501b9480705fa8b17e4e17a0462d897fee4437cdc26cf84748d67a09bc2bfbf5a1bc7", + "017de8ee29c28751fb4b4af29c8185af9d9c97d91b3318508c82ab63045cb509517306de865087484ee4b1d4ee4891f48b65d57ec36d778d46dcb4b595f518daf4956464efe0d3b11c010e616c9950ffa60ebf7fe0f155a36b72d4eda37e07df8910a554dc3e3673ff1b2200d2429fc05c8dcffa098707db3bee09bd4b7d5ec84305b8dfa37836ee403cb19747c1760c3953b79369ed6bbda977449295e32b12d21db0" + }, + { /* i=8378 cDividendBits=3037 cDivisorBits=366 */ + "1a337a77c4c38f3f4158e780c28fae1dc4f757a4e5eeb4f6e8f827a7a1f0e855225b17011ae7964a36279557d52e04e986266c38da9a40aa3fda8a99e17a94d6686542f49fca21ed5b2f232068fb69ffa40d53fa8941040db66518e33a48588bb1fa5d34ccc2ae97329a1e27ac3326853138129a97812c4af2753446ac66f48f1f589c26ca90d0d2f9cb5052a629ea67bbd9ac9f75e81c7984454db34b4b6f3798e7aeb6e951d5a8c618107cc1163b6a88610b490992cd586261e168997437c0af37269bb915aec23e5e5016b3c3031bd3ede7f4569b063d09358512118baa031c2195bd8fad1482dbeb18ca50c7931ac0a2ddf0337cf8550d69517baf5a1dba2298580b7e5423a74c3f0ce9e2beb015040999b11df7d71d015969514100af54f832eced56b7b28ce5a6d02d9f2622e11ac408e9fc02875b0f90c63c42d0883343e9af433abc4e6a1bda2ba707233f3cc57776ca0ce004f3f530f23b794faba44a8266f6f5aee0d7cbed67e14807e6bd3fa317bcabd7d7bffebde0b7", + "3a52c41544874ecad8c2d5caad6a19e27895a7a9361665154a137932dee94a9cde8863caa00657b8c99bf9826bce", + "73014f45d3083e833ada8f03908201c6e44b0bc899c928ad44b542dcc4c6efdf8aa1150f465010e19e8b12c453479c7130e52265c00686bd643824c260512b0d3601fc60b761e25b1a9923c70d5f25073525c9aa50ccdcfe686932ba629aa4917a3ce8cc91415c7b3d4b42afeba15d3ceb0f2615855677ff68a0f9d98f8034d37ac915afccd0b196f7f5fccad99beb50944ce36e2616396cc0c341a34597839f0871bee0699848374ce81b55e6b7856e85f786afdc35c1ad45c1ecdb0d14c27dfc7c2812bcea0e9defe362f88fdf6af10cdf11077afc29fb31c5a56994171b3a1a62f7583f2189290065d66682b8804cd0bfc87ab575a2b88f20f7ada1d603ddab48bf51b540340cc369b7cacac508afadf07f6f80cc112e77f2ca5f90e77235e38a4089b1d598fdf34e99fa8a43b0c42f9e42e969974794104e7299df7b6d84aba441de3cf6d2564db7f25605b8", + "0e9824058a04304187567a6fb9a00fd4a0c8647023f124b313a1b2f86b075c806e3cb9c7160f0cf7c1ca29b15ea7" + }, + { /* i=8379 cDividendBits=2372 cDivisorBits=2036 */ + "7bd9cbf2f12467175762515233756bc8fec7c523124329c8023e2500f0dd5883cc96e4d04d115adbf483b25cc35d13434ca5d2f6daadc762f2a47b9f37e238e50a922c84ce8d76976b8a6edbef7d38d81b11b1196a32c8de18701fd9e0bcceca56f1daa877ae75efe2fded7247ddcba950f9305954f51904a0d1aec38c91907cc56b1e6dc5b966efe139a5876a991cd25970de5cbcbce86a733e0c0a1f381e0de64b063fb6d3bad0fd58e9700120a7af8693837291b8ba90a8bc5167625fdc0e6c216991f80f9833e92bf3505862f9746064cdc68b46323b88d03d4353045d3dfaf1bf973fcd0ac6d43db041b99d8c24e12d0c238f718a774b0076bac0b306ee28a13b9421f30a063a3687ff919cd7fc9376802508c955a3b001cc62b8711739237cf3f7136e58e7", + "0b0d49927c85eab27753a8e6bb3909de630bd69f0a4dd734e87140aa2026fb966a49a5cff11a0d00bdb27d94111c465dee6e8443dbe657537645987515936e6ee6141f07b5e0b026d04d6e32f3cfacced0bab1170a418b0c29a6da9d19cf8d3cc96528b59dc47f318e6eda93a8385c9cdb18aba820fe11c94061d84509265b17ff9c59b113fe7613e393f1b3d6a52b91653996293b019ce771a5194279ff645f0aef8731cb371ee826a3061382efa8e03c993eec204fb74d178934313fe04f092f642cbcb07cbd192159aeebc2be71038bc088c67bd171d13ca3114ae894d0a2073a8de984a0fa1b3bd9033ddab63a746b2ea4632c956f6e0a67b49de52ba1", + "0b34ceff378ccec61fb71073a2709bc8a4f35ae30800bdb481ebfa4054da371d543a3eab5c15ac6961fd", + "0967964bfada6120f962923a445d64654b879281af70cac213cbfe37bfae57f22c7564f903b3443de45da3cab51ed636706681a577af7f30a445bb13b4dc31d9b980855c19ccb0bf0bf6417880f80d85d0b4fe9fafbd0bdd2708ab78991100c7ff0b9f4d7a9f410da02b9dd5e87cab5b4db3c532e95b08ad7b2663c388821b59f08d6b5148491d45b4de10cdf265afcb3490aec47171ad8f311ddaf76165a79990dec22c8c297a73da92a03b3c7da1a38e7dcc6b4a88d007c736c4a409d762b7da8fa314b233c39f21955bd77b56eeafe8331824552f7027bd9f958991b91f898ca06e9f208647de318b509ed23c3dcb6b97bd5fa2f5c71cb8da1f216139ca" + }, + { /* i=8380 cDividendBits=50 cDivisorBits=5 */ + "72a6dc25a0f2", + "0d", + "08d1c22a4775", + "01" + }, + { /* i=8381 cDividendBits=3284 cDivisorBits=1789 */ + "0c3f48be748782a7a3ccd2d2dc5e236adae9efafa4c545b5b1fe9d7c776bb781410c6d1b901868a46470a05603da4c81786724e7d5fcddf7d6d400674e018d45dce1ada4b12386c4e14ee9de66d08d40b4870a31982057c7b929aa304f3be1224666432ad716f15e9ce84d77f2aa0e3165775e1e809dc50e5772b916b188a1826303e7aa266af572988f3c84b5aaad92478d44d3f04c2cd028d645a8266acaf88a65f0c718be1c7d66087114d1c9318022689cda5697bd2ed26afa8f4bc8db8bcb28e431a03a546413f0a6691529ea57627f54ceaf84985cc957da82a05a3e540170b0aa17ef89f67ad2d3232a4bc8339907a1ac9b3529928532e805cbfa7935be661c835eb2a573238b36be1cd6ed0d907e1a7e5b59c1600b5a389c55c68faeee13945f68593d0676638ad1d55b41dbbb5e38da5521d1b0028b7e2f47e6f636937c5f12c2f847c2e7a4152faf4d704d6c17e94bb3bfe980658549f55751acca5e75c539b152a326e47ff135b78cbb7dd94fe5a0a4fd317b777d2d433ba80c454a5c21caf23216b127fce37120096338be454ef2b5b971ca3b29c6", + "1e52abdd219b3cd82bec2c2e767de9fb822da4c0acd2b27eb609dba53d15ca763191461a7428039a281a2441d242ca945c811597e48e35b4125932add1446f3cb1974a0d4e2725fdeff239654075f7814a03794e1c7a409e858c02c1a9a2ccf040ee689d7e1f874201eff7160d716bdd37936ffb4e536c908718d3017cf73c5090bd66f6c9eba1abed4c7528b668d1643c26946c5754026ed9e76f4414c58461c3f2e005a79f139efa22867785f4fac63713df253759bc620c3bedba4b0cbe2a38fd3e6eb0564b084d508998f1f3ffdedbd568e3d243d1a2f2327ab3e7af3d19", + "67657e7619e98abb418341c5f1407e500ff50dbc057bcf6bc7a4ee2e90343a322491bacf2d968f06d53d4e449d97331ae74825293d2346d26ace6957d3a7c17821dcf412b163c63ef6083ef41a6825e24f20f556809da6c66796a9487eaef169a305aa9e371a1d1f04533719e36b6c8c1a91e4eb691d2478349809929413d9d25b5e9b909b95d57266d26473c1bee4ced0729ab9451e394842bc638875e9aaa1c82785df7b07998dc01f84ce8f27cc99d81d78fa1efc3665c29e59", + "133e642a2c66608bb0d3b5d8f46391ebc34fdf8cbe76cb43bfd3825c029171e45673b6cd6eec5993da086f30bb08104401d667c07f1860933484ed3ce7934a07f9a1db822894b783ead0ae9b4d6407332d66bab10b509cab972929368d011be441adc6be26006a56327b6bfc21742137100952aa6e7096043c62182c81661245170a449b3a92e4118a2ccadbbd90cbedb51989ce9ebf97badd9ff8a4fd7d9596413d31e0e6e41540c6c0389bb36da31f7e6feebba4cdbbcaa78274312b44fa846a58925fd3a3fdfb40fb953d265d0b934291f4e951d0a294aea6d2baeca77e15" + }, + { /* i=8382 cDividendBits=400 cDivisorBits=20 */ + "8cf02649400865001eef7c4ab23f742da4fe4993079f55e7527676081bb5ab9d6ae46e15489334ee4ba85fcde23566e7cbf3", + "05290e", + "1b4fc69f5f684b715e21c90c89e53d5ce1f20897a78021818c610c596c19ebe2419a3a751147f2a0a8c4ba3e57bfc71b", + "9579" + }, + { /* i=8383 cDividendBits=3437 cDivisorBits=741 */ + "0fa3682d2831955504716eb170e00ad43445083e9c8183e2bfe48f01a3afb5ad08e9f745139cda93988034f1a7a6eb8e56d29e938495a4d68e767209f33f76e717ced11857f9bb6cf9c2ee9b91af2adab915ed45ca93877e1023880332200c30b8821a6833972a92c2cb9177d45252157b95a3ccfa63cdc0121faf7640e0167035ed2d2134f82835b98519d26ee90733d7d193f77e5f484a62eaab93d0efcfc91a0fec1e013dd6cc1254798c7ba063f6910b7789767c9301ff2a5fff91e942b690eab67549f06a1b1ac902bbda51202371b4824a570a0121a1643990bf2b2bb764726224aeafbbd227d3b68f0d04ec8dae409446e415e427e5f8416a12c38a9434efe582e2ad3bc17ece0319f1f2e684240ce9f17efe804b7ae8fe55f87467640cf5a8fc159d3976670812517705010709b3ab1c8ee4688caa1e9ad94cec1fe46ccbf6f13567c2a5f305a28545a3474ef7e6e59783b087f27501310c9ada386976722aee3803ea0af47e0dfba0100627124af03fe49c9259cf81217a6c8beeaaa50a3385e1eaac77b400d7943cf50ba688d2940f391f5123dd0ea150d4ba8ea7c104eba20b4c2652427d47233ced", + "0b4e15866883619c0d5b26105bddaf93a16c55e0a0ebb2420ca4e0a7b6eefc25b95bcef8b761ff1311520cbbce8b73d39597918bcc1615937ff889372c6545627c4aa73ba16a97642b522925cb8a7a6d360d4025b83c59731a51f62cad", + "016220695107994a59a573c5b87a2d2af0ccabc0772f35a7611ecd40bed90e679c9c1ca732e837544446c50bcb234aae5911a49aba93b4029b9f1b9fc3661ca6c3e2b3b3f565054e8a730ff8d49fd06b4d14e0ac0d750333bbed9c350ded2eb9f09191077c393abbf46f99db2d4c2c49d7217952dc4a28022c27563d7e772afa42f7a2cff673a18b3c3cda395e137771365d0798f8537a7fd53375da452e60433bfe15473794a12121a1a780d3f37e976e43ea58013c0334fd6b605a70e3dc36176a16a97ccc214c5fc09cf93f0de07b93e15838fe3d277d2fc0dfbc46e76ffe437236202cf329cd24d93cd8c14b68bc8451fda2dbfe04be661299344923704ae8cd6146ddf0f38bc30a4749d590dd755741c9d644d9261d864432200c7e61bf236eb1a8360fda83bcb9228f7e934155adadd9ec747285ecbead418d7110e7562db47d2d61b8cd4d9acb0c796128e7558da4", + "038942e3de6c7d91ce26d4bb41a9258ac7d897589ab73858fdb2c02c410139b2fbe1bc97fd3ee22c1d66c8c0bca774e34e61b58c3230bd48ad20b5830f59f7767b05c19df590cd25be99029723a9f2c4175124ebaaf1c325673e625519" + }, + { /* i=8384 cDividendBits=1489 cDivisorBits=1166 */ + "3306f6e045292e6dcd59c6effb6d35c705ab21c4ae67daf51b6f04a1347739176c61bf4f6734bf30f17748c3ec161b9efe4b7f116aee6e81b7eb00faf464a7dc3ec7f772e920041a0cba147c85fefec96086f674dc66a5a82722a5a85e0cf888e4976b5a9daced27701238b56dba45f37c33461492d0d10dbfc489300c51007d35b3c76d3753e41ef99280b9589d265f1670c59157f9a13989d5cd8601dd3cdcb1bb3290ec7b6f2a0ba1e11eb0858fd3b1264c32dbc24b124c58", + "3f58b321c5721f88fa8867b2245a8ffca01ba31deeda7d70c7a264d8c8cf0510de157aa442664c83ca5339d905b7812956b7e9f64e0e4bc15da2f1543d725a0feddfa1ed9f66eeb6c93d25bfffd372b626ed6cb81e808b051a0bf66414030bc161f8749f533d665c6d1211357c0fd49c1fc1e8b953670bed2bc948843f4f28d0aa0014bc9df7a14360a6c5edbd483ac9935e", + "ce36ea7a2d0b9a021c6cfe5c1275b60ae9011da6d845e8b72263ec86ca30eadafa8965b4e5e4c6e8", + "22cecdb4cbf14e12171700443030bf720b3827f90672dd45c1d66e1c3c326809974164610e81b9bbb956367e914cc574dd9dbd60eacfca34b8aa1a52474a4566489f9f9fc8c7450e6b8e82c9a0b4aadfe4a87ceb9f0bac8e093ba75a931f774f77fb119fd0eceb2a015d879228d42c251669243db588070ae0b3cd7ed7464b2db574070c2ef7208adb0e55411462c6b20b28" + }, + { /* i=8385 cDividendBits=1964 cDivisorBits=235 */ + "03ad548c770f4646218a98d7a964f9ff91b2e4ca7d01fdaaa2f24341873ef82a1186f5c905e0dd98d35c8f5bde0598cda32a90a5d23397d3e8c486bce4e6d514c5581ce1a428a44b341ef0e58f008cc3a679f86c6d8f62e8c5fa9230013969bb7dc522cd410d29f85c6adc3571a796152e4f83498e07791046f24c76b87a00f27af1007ef47c22b90d41cccd2735755cf9091bf9d68037ea7e8a76e3a23fb4bc390dcddef39f376dcaac37d3b04462e3e67b52b76e21d59fcd475172d9d42eec60c7ae581a3a4473973fe6d8e3f6484d5598ac9a15f6f544002f40fdbc2d1a0a7285a1893c395b3fdc014dd55823e61bdb1f5357c7ca", + "016dfeba93699b3588fe51fb29c4ba68c48678369f57c8967bd3e9061040", + "02926cfcd0ee872e89d2ec8fbbd3b5be14e56da6859c5545e0b75ad961b13b07c0153e20e4ff861068dd1c1689e3e462b28d1e88c50a7343fb42ddb406413c540aa3f39630086302bd754bf2a033e90fea054af758cde02caf986379b65d2d6a7c8163fcc2aa0ea325f094180f7891dbb354c9af18bcf4e67aba23f5f8409d875280f31da63e987c770122ab4a5aebe98cc89b180bd528395a145a48684998ead86baf3be790f869edf13e4f94ca3822d991b2c4c4ba1455ba1b4cf98bdde3cf1f98a4d6536e5ae135342f4770974c4bbcafd06a7c136c8a97", + "65452357ac6a8f4bc8f6dca0bff4ecac3fcbf35c64293c74c00101b20a" + }, + { /* i=8386 cDividendBits=3824 cDivisorBits=891 */ + "b4301e0893511206a918eaaa197e588d3b510ee2f7693b6e135a9b80004ef4ab5aa956836f4bafd5361e0039c1f33615bae3692f50cbb2ee13a01d61f2ba250fb47b9c1285e77aabb1870e729dcb7c6d3f23398c020f8593770b35e6fa8ae35b440d96fcc140d56a050f67dc260478d0b050e08cb8e7f955a91ec9776be9b43d83c06f3f0008c26bc02b8a7fa606d61b264b6f9457f8b2639d542185a7c4ad0de814f8b0bcbc4eb8a760d1b37300a2dd253abb10893c3afac9666e22a6df3591ba119b0176abab68bf8c4fddb1b00c9f3f5e7bb9ae43a3c86db363be4cdfbec21c43ffa4b88dfb15202f9883620e506b0e4400e8a5074862e33d4dcafa9541004bffb81e46535cbdd05c28c331356b74b92bfc5a3040e6156039cee02439451bfbf764d0e0297d12e0a99ac1ae87dd5cc5fafec60c95f036c3f88a656dabbae149b38c24004c3a7db49758f86644316fb6dedc3e36fd153cbd1a9062ec343ce579b561bc23349bf33c8cce244fdac753d356aaf9d66b0a6adb6289c742486031c2cd0342400d205cd72e3d1027627afbc057cd4b62e7ed030e874dc5bc358f03a52e840d16116d2ef3016c2faa1facaf215eba5a33158b9457f05745a84a38fa5b1b19db831b043b936d1015a6797294ebea33e15f2d65a4d84c4cc43e96", + "055bb5cbc26f5dd0af0963f90afbee64721e4e7abfb902cd852924d41c14a7ff8ae6e5967d4e860e15a2b9709cd5c48b01b856f68b583870fb2ceac20f98316ae8cc84b405f68bf87cbe8191ed9ecfb83e698cd076b1e915cd99e10c15d2f22934e7583cc9ab3eebd460312c087a6537", + "21a0d07daf73d3a84c3859de421ee208eb26fd702ed3475d1c4dce18d8ed5c3b17e1bb14348ef98225c3d5773971be6971c490d32a75c6ceb6b03ae9618f9546f595e6b381aacaa38bbe042d35720891dcb195c4f3982c64ef265b7da832d2ae10a649476a4f9ac78e6962968965b5644a5e77e9dee0f66b0338608c82b3679b04bae825b44b92a124e15d80c53bc423222a30257626c621cb6116fa68cbf985b8653398412b8f4e4be5e85da4807e5c9226e58e7d3204741e263d0e47009a0ba248a52444f896143adda22e96f441155ed54f464d9f2a37a9cc7d0af5236cc84622d861e538468030f5441ccd5d67273e7baec7e797e2daade4751a2a1e5b1079602b6f6351b8028c5671baf3fe4be24d65d8ac5449b8383668cfb71f040bfa93f3da0894e577432c23c0dc06c2ca7ed16a10fc63e85d18150be1ab9e883c8fa795bb4a5454e52c8a2b2abf31e04ad0a4dcc70410662cdbe845b7da60d072070e2737a96659787f5554ac22d55572", + "030a42570883be8180af0396cea98cb205735e290573f0d13ed4de41cb2550b0632e217c18581ccb8a28915ed75f52014f884d396cc8c801949eba3bacd1f233a45d4a2d86008fc8fe31518d1a34199521ddb32be5ae6f827a39c5966d56cc64da7d5a97473dfc146002f7a45de4e918" + }, + { /* i=8387 cDividendBits=3357 cDivisorBits=934 */ + "10605f8ac6294975bb7627f931a42b71e97d34a07a60a8b52a31eb3c639f44a89db09436c76390bec1d07346acafbc6a650e3502c982aceaf4e08739a507b71a0612eceef1e06dfca030ed650024de33e1051349bfbceaf3372d2c2a5eb72708e7faf54ec12a7c5cd905542cf324f27e5f77d3aaf0ed0aebb0683de28d6be3710cf3e3e07c7e2c0198aa21a3b3d5b00e8bbed4f59b6aad6b55651a34e14b1fb61683ee46cbacde686247331581aeb3278b3bd2379b5a8adb7fd44e8a270dadc8048dc91fe3c47caf9a56d8bec8e028ccd30d010818898df063fc3b4bf88ce128ea6c6fdfcf58600b8cb58d48ae797d5028d2bc5cbf60e96bfb9976f688696c921f86ae1876cd1e46119fd7502cf8d189fb9adbb43086a56192f30b9c4a8fec7e23db8dd54cdbbc5644b5161d878a4525238a60ea2c5e8ac0c618bd4ad0d18b360cc28a5e6694d45fcf69065ef7276a5166eba2f18439af62db8ce197b98aeac87041d0fe73ee2e9a94e942966c8f84673633a13c7850929ee8d859b2c0d86eb469762bb42d1275846113e84b730fc9565a751486567bc21c6f6f97525dd06228ac5a86b7", + "2ddcee9787e2c4f3541224c292bf050aa8c51198a4a641dc39b25009d556bf087a312b54adbcd582cc8f9c37a7ccb0bdcd7267fead432368a0afa61b5a45032bd527f1beb57b0fef1ff7ab38c544ed3d19cd7ff1477da899e44b376feeb83df3acfbb8b9bb8db736463f1f05b82100640aac86e004", + "5b6927b4ce9e0fe08c6eda96bad2b9ce77f4ab8c32cc6e4112593646fb771835c374c498a8eb5973c64bf637fc59489c2d8399043980851f97bb3395efb5630d8640ded210b4d43727b9e4191a2750d4ffe902552a201439b47a8bd92451d91f2147cbf7b9192a7dd160308dc29f57bf09d4b7eba9939768c07c84028a9d938ee7728b976a8c8c7a33044f9f054d9bbf9c72c17fb5ac736d3c71aed9c372c70f2b93c3912fbf8dfdba2965070250129d3c4569794b46e69e476c87029c0588d281c530bfd837223a1f7d7abc4523c465116f6a415daa7639e9db2b71e3934341234a9e18461e94e4e14cd8f0f366c9e2e1a7671904ef2ccb009c81b53086035735fa0e59724756df9e0261eb0227b2a70bdd30f5fb29ab21ee8bdcd6a7ce2a9803546965ea1f5a0586ca00554176ae", + "0c53d695f9354f552318ea5032351ec8a1952652a901a199ab52a0db4b75ec28c60605afc32c403412d327b366a10ce5281fc231841b010120d053f54742edc99e6e4497499e3c42440c82b90c1be2a82d43260ec527b8f9c1c0237ed5bb2d8b680650433d11a905586ee8b8210c95b8c108686bff" + }, + { /* i=8388 cDividendBits=2588 cDivisorBits=356 */ + "0549f9999f44768382011281f41669786cf8bb21c1c2e26157355afd0d3a35d22c79baf43052388f179dcf1665b89ceca4270acda1ee39630baa550d063c136dac51e9d6d739fb328cf87a376f28b47f49b99b19be63bb5adf9ab500b59e5ff50982ac4887b65feed670140826e56da9cf87432afa52ce1c2d98829ec2578e9f09c9ae2df2d893c4ceec435691e20f2cf74731c0fbd12c9bf9baaa446ef5c042295701bf03d8b57bb261c8ab7eec1c787f470da5687265468171d94a7007fac5082af9f8f2a0b82ade1ed381cefceab280f7b4481fd3da41a55e59bcf78a9e6c5d1eca84fd30971ade8b5e82cb5365b02974ce22e57b7824228089efad1f6073056caafe6d79a5a243b49f6942264bdb69cca708b449489b4e4d91fd10a0af350ad76c6665ac728ed42732703eb310173a2c1e31e556874642592af2cf8def5d59f70294", + "0be8c6774e8076174d57327bf784281c5fd39ee24186cfc7282770611d67977f37c48c15c9dfa6243341bfd158", + "71b0d629743c1258d808813cd5afab0c7c4dfb5a99a8a44a6f18ab61fa3f9c324fcc1aa6d1a130abc77eb57e60206acc85c3db6a2688c3eae7f95a3514d968b7dfa2af5cc15ef84aeed2e463471c71dfa83dfa1f012e3e8bf6414fdf4fca73db4236ad5bbb1460ba7eeb274fc56c010e292c71c22d8f9377bb34fb7825b8280559369170df3a4e5cce259ef0a8633dc262de854e6a1eac1d71c4eb3091e16058e97c886328ee371a1c872ea4bd3fc7afdbf2799141f62752e5d3dbe6e07a6bda5fa68264f290aa3d9d8332266c4c9a0072d37cfa54047ecbc5d6f65226c0785d00b5168705aa01033f35a9e7e3b7ccdd644cc20d46fab7a6b85d9928ee5943adabc41026e3993eb004a1dea2bae6439d3f493a15b63a4e", + "02de303bae70c9598b9c02689d84dd5430ec393f693d7f2e3bbec641af6290e921dcbdacb301164a5ecf8749c4" + }, + { /* i=8389 cDividendBits=152 cDivisorBits=75 */ + "3b8ce018100593e28a20dd9b29b6a67c83079b", + "05ba58448939db2edf5f", + "0a6581fe6691c1423dfa", + "15c291b3a1100541d5" + }, + { /* i=8390 cDividendBits=3098 cDivisorBits=3011 */ + "013bcbc3094230de0c71b0c3bd9bd224c468da7e244a00bf6df9f2ad341efe51c748f694b67016b695d89862c174aa9fc38ad2261882d2e7ca5261ff1b78f2eed70cb8a513e54caa30d80d388b9c3f541c081fe9f9d60118168e8be46f4d3944f4bf2c9bac53ef03f1a0eb0bb1eabc1d9c62f236b8877434bd989a5246d0b419aee263a74c634c3a2101e4dee52ba75b9751c4ea81c7dd259e35f14f83e32cc518c87de9e98547f3cf6ee51336e2a95475288a96a8e0eb6b45a42276d701b58fb9c16eaf6973e549e4c23dda0dcc2eec6311671ed2ac2401daf1e0da0ecd84e062cb53d3679dee2b0bc0c5a540951e6152a2bbd793faf43829b245b9d3d0a5de780c671d2ed5e0f94ccc5c4f099026a4ca9281f3f4a3b3ff6c313116683d0420f65691578e42db11d495ecc72e76bee776fa649ba81b7f6b523cd1c9ade86b44dc580fc5d41a65f69161bfad22fd53d9b99dd42c6bd9506f7be180280d0f877105d39678a39bde2592c66ff9139a261d2f344abc19409b39029eca0c89dc41932eacef62", + "0148f645593ef2eef672226d8914518cff5a29565aacaf5418d18fce6b8ee50620e926a3aee418f4c401ca15ed1a118972d32d740fc30af7314c2f76ce8a4d38a8ed733f179500fd41c6ced017dcfc26c845576290c82ac5e24b07f2f2eff6b0d5fd8ff2be4e7b204656d0c9b82718e77f7f40f8c1f19ab2d4a615d0c0209c4994d3e7638edf92d994490b59ad1d02cc340b3f0f9e0d6d73f1f83864f761985a7c2da4902dd21abd3db7e7d309abb1fca9a59a9050cf29319bf46f8e9a3a7a097eff7a74cb28fa01bb8027b353afeaf86b09d32551e9c98114806d85af57cf65a6a87151ea61eb6a60622c706d25e58d652b00cc1188b224a0947b62174f7cffaadd51b90487759be96e9885f0429b111b3811050cb43f4fcb2bfb7a8f2b1dfa54ae1872447f024a2fae688be1e5bcfac9ea879fc79bf962ac560ed868732f795a7559d4b9081587efbfcb65e98f5559d5d14c29cbaa600c31aa256bbc8bf00fa76ea4733a9f5e237df6aca302b02e869adaad2ae9a62d6f78", + "f5c10d3b308c4067012c61", + "d041035c20b0bd9f0b92b5e1c1272647f7261d0a964ce5bb2f4e129bc029299399428c2c6c2658eccb1cf0695fcd1752a9650102e7d15430cd5cf5d1fca3b37b6def08d94543ef2d629da83285b655238073bbcbe31c646c18ad11d7a57f9f4b46c8c6b0d31e69a15cc9b171b727c813af7f1a6d84e186924bc696d65649f8f8b2acc986ef6371d8c0c1efe997bf42a24b351e78229479e09248de09643512e5b2c6473b6aa2c279a203e2f7b746c56fe5310b0ebf7f2de98872c3afd921d9be71998dbef5dc9863f1850b9ca73e0a39566f7da3d63cbdb19fcb85fef53d10e7dd0d7a312d682f1476e1c3234dc980bba2f33978fd161c667d11f680702e645e95b2375484345c90331d131411140ce184780e45dd2df6df54aa6adb036e01a08ef490974127caaac173834f70bb7b9d4d332dc51cee508b2c4658d2299890d1ccd9dc853fe3b68bbd98bf49a41a7188bce6199333943054ca13d0711f03d849287d330bb13cee21197e5b4aca366140cb476a74b0d512ea" + }, + { /* i=8391 cDividendBits=3266 cDivisorBits=1975 */ + "026abcc4041593a086e4ea1b5d751e754b03cbc6dc090946af137e65bd9415e953894a51f4313d23a32f3f106eb79c4cb7e790c00e433692eb5ae47dfdd05dd66b43d1e637de42f1d15510c6bfb77e7e8fc17aa20115a5ff3902b2215e568a821c3f53fc0e7368320cee03ec49534128d34f6d564ba77f97172e04a15c9e618ee13c8500f7d9567bf56916c792cbdbd51ed40b0509768f76a4a4e4d3f8afd5208ee130729f17fb92263ae4982c82b19b642b44b4b500f6cafdf9975a4008818409203bf07e1feefefa5e2268c8dd79ba76e7bee85499be3cf0d764c48881b175421304d5b09edb2a402bfc1dd13a9e5e216f2aed9a930be276399367ee21b990964b08163053e25121769d9baacd16f91922d24d22317fbe9fab2e973566e922702965a17462ad9238db5ffe4a3b0dbd8b425dff7f2305755a68d27c3f1e16e7caf071157d29bbb2228db95b75db0615e171cd2fe329ab0b0c6c80738dab2d6c27dd4377576457fedf99cd8219b7bb5e36ce78b56644092ff90c7e458b7310039e690813e557393a4b80a03e2b79a28cde786492d11b6ed82d", + "3d79da682bf794eef9d84e650561bd4a7bcb6ba749f4a16a2e450c0810dd203732d5b91a86fcbabdf8c18a9be1615646f28080233929239a984a3dc5c3ae6a1e8378190a267fa5bd33b06a279b08fb9a5e2e2c836905049156034b597820b0c157bdbe161c9473de10ef3af5294deb582e0dc372c438983af38e9ee64aa4222e9cc94269b55d8ef0cc96a108ebaeacb684fa7acf29d421164d8b6d27e1c37d6f3a324773f7984afebe9b85d417776f1a04a2e2aa49cb63175cb3a361a39cf9e7f7d542db33530232b792fc6725c6a3aad959e72ffd2df5b39aeae27a698f1bacce3672490b8ebd8c61c8030ee298d05324aaec333e99ae", + "0a1090289e15c5f090b43bedd1daa345b912d0294707521b42f15675e05913856b0026370e1b9d53a31c27eca6fd3971cf40b8328db18560b616c2603fac8dc0d6de901cd2c77967cced36e72fa90bbf25c5820e704a6767dd53043563ca3d3053f06a72bceabe2a85331db81d7bd21e5ba8125ebbf620763a3a0ec2bda9afb613522a01e771bb8006798134a2eefdacbbf98db8e74575bc6b4ddfb82ebce880d7e0", + "34889f7f6447ab0b9a439cc90505a400bcec480396ca3f766dab72fa9a7be29b659d684b17efeff155dc396c3b86b1ff4f0e193fea521b6f0279343478f08ba8b35ffdeefd960b184ec55be140ea2302fa4e2b010f60ed22c3b723d65ec0fe585218164bbfa180a4af6f5c2146eb992fe16711ffc9becf4705313de7413cca3c5b924aecb9d64af25e91e8a1a9b80cb5c8d3c8d4e5963fec0b793d47d472b39b5a773bce7e4beba13a05c991a5f0a395fa4baef75f3e8c4480c4f58f3f7caaeb1f983b46478417b39692e5826612f95d6f95461143df98bdddef0e35f11c9749aa608aa325de3f6b16b476bb9ecca87f922ac02a973ded" + }, + { /* i=8392 cDividendBits=3531 cDivisorBits=2195 */ + "01cb3b7ca4fc56b22bf88696abe831be3d99d96b8bd4e0ee844fed1696817ab857955f80721ddf1b4560d0a005128efea1312202c8c6e47ccaf054d83269aa8b986975cb39618ab7b64c029190e496b5c4a56eb058634f34c381d8f89a27f5f2ae41b98b371e459bd500364f5ae8102dce4e12727b6f839be5df27fb6e10abcfefaafd1b1d26623f08cfe4ffd5d6c255b5533455a77dca95b7df7b6b834c250fe1e34361324d4f3134b9d9b6350775e2471f53570279292a0be96cac592e95c0e989b495596c7e88c15bce01655821cdbd121e18de00b1e5e628e18997bcc4258e4e7940ba0c1d648e518d74d7d14bb381b87f35fd6bfccee2f778bc917a6eaaa08924463bd09b20220e3853f2dbd51dc63f6b19f4e94351bfd076c8d1bc009c63766b45d8ac410e2bc430fbd0fc6877f326eccab96432020c104ca6a3ace88d5b79b183dd432679159571378abe10bf326bbafdf3429be6edbee6a1650476e4045a031d58ad8910cf24fd71b81d5259df15941b2508f5bf5a3e05a5a4bb434d4a2f3a354a87479c0fef535566bf8d17ccdac50e3db71eef36970bdcc9de4668854a65908f2b991d68e5aa521b48eb3ff351af9990c9b2eb4394", + "8acacc74a304fb51a8ba93fbad8c7612c093a727f8e522096d7a5bc0418b789053d717ae06c6bf78c9389cdf07ba0cf89e7a61942be7515e87594d3bf7c2e01d39dea9cf581c78962d44d4420386aa6d2e64bf914314cbeb3ccf502999a07f0327227238fc6462ad3f60c7bb54dcb12aa396b7f53d0e28ec27ebf80aa8c4c652d6269bfaafd99f0b54d839f8d7cc85217f227628a7751f748a0946d0088932913de0da7ac799f95d612bde99127327ce656019c1b45c07d2182948e6067c6d54780c2a5711811375e568e2b2bc7021eea2c66fc2a30b2289fb8ed3b52dedc5a41f59a4d9c7d9290d18383d2dfd4bc55fc9281cd578d65cd411af896932c82296fa92fc5d76d123d01551f8abce7d9af41f4e", + "034f0c014003b411c865f7417dd830e05e486db9380aea49b9925ec463573cf9e6a439349fc9e19b0d0f0f6b17ecbdec33ee8af13301f0816d7f39bc987f74535351129f07fc9acaa36a14a3d8f2083d487e427d1796228ce8462f39640b4fdc202df6f0d83bbaa853380319ac1c40d6bee8a73ca94f77b28fcbba0bc3823d33d8d124c00b533af804a1626026bef8dec5806a1109a5b2225c33ec51c34c41f29c57a228b03035ea", + "0f689f401a38fefb889cbcdfcc7d7351458a10d58e0d41d2db937d80c84c055e9b9bf142d3c648e602a7dd2aafe855cd2b24dd4a10e100d951a9a5bef6a2b8f95524575d9bbf0cc2ae3f0a2e9c0270a8b74b82b92a05a6148f65001cf6b9ceb22056b1e4505b1abe2aa812257227bb6c02789a5bb5b6a2f775282f90325669defa6e9fc7c010c495ffab54b5d824e9afbd8289ce16322e49bbe538c959742e819de507dd42163d5783d25716600c8b66c85377c3e1f25050e75ed9717783a93401ddf98eb7666957d9ee49b8d48b1870193dbf37e357a6723c9a19a4637d3ca32524edc9fc2740f930408890c6c1cbf7f1f69e3b46b2be180eee73a4cc303fb8b34816422a9049cd2e46e143ad6a06ab8048" + }, + { /* i=8393 cDividendBits=4047 cDivisorBits=1405 */ + "75948f9ae4a1fb63122b473485a6b1a45f43b8c6355d158d949707b28459406da696153ffd365bebaf39dc5508b4c713e0250473c0925eb77e936703bbe9a669f8eb22e8987b507733f50ef20a95e680a5f10f7353542950e4777937bd9ca9b37528a7aca82227cfa7fe5afb2b6bb773b12ff4a2b4df55440ec28fe0a45291f36b916e0ec5a80651a16884269dd8d1f58225a1328c57213e5b410237a3f61cdf8cca921e12006a5f1ce83dbcc61a3f9b3ffc29aa8d437bfa39fa491bd835b71d8d757f188a38a03a34e55aec546da16477bc44ab7b2be7cfb16f66b6866a38810759f0a27adb2d4f14bd85365e5ff03f3cd603e6b6afa2c2aad647fd40bafbfb6f982b8848600a4fafee90ef3846003b8ed440198a83e7f1fb3b57c064ac407f68c712420b3eb8d2cd29fdd64e23ef92e7af5953819994ad8f13c012bf08dd568ae0177a8ed56bc5118b38fa55e4be57e92c460b75c5720dada75a1eaac6ce045ad812d8f739e0cd295473d3594fc6f22eedd5860f199dd28d0fa2480fa574920a86a9fd96e6d946bdefcac7e0bee3e4ef9701eb86b69494301e98907801f2fd173f79f567181e9157f126bd469880c23de8006aac876509d119d1ed841feaaa7e94cf06d8ece229f39b5fd1758f575d33e57dd8978f17a72685b2fc1fba05325d652b8ec4cd43586d94fc12f8aef2f7688d713b5b9cb2826fbe", + "19ee3a8ce40fa5f8dd33fd112e22ef961d2e5e3c9664223b83d8fc9e0e8fae86dbf528055aa9bc810dc64f6049573be75ac89b413a9c36a3be3e2da4247d57c41e28f3a2b073cf41fd4c285799e3243d8137c68d1a92769c5aa77d66b71512192751659ffe1060a0ecc862483d07e134de08aff999e245423d54764fa2e5f938e116a4199c713aef97f538d4b8d352ac0128d00a1fd3d5275a518dcc6a4c4f282beaa5dbfd43d581cb975e115652a139", + "0488d02ec67648b856086e2452162519d52bf270cc28048d3e191e610628b99d0043d8d67fd600105a23e241b0c26338f9412348485dfde8a9856d8b8723714a37a6723b7621c3050eb5e6938635b856ed8cd8ea607ee8186f1ccfbf31f49a1c71708ca4ac94e4505f27019074b74685b22adcc4e15a72b0c422d25bdc4940988b3aea0ca8cfa3d8d4bbc44f4a3ca26d11166ce2a950adf3f65c12486c7f5810753d096b8b617be993ea01e98fe1a10f8c2e5ab400d192405c6b69217908599e7fd6557308602212e1900260a66f212d6d83fa3c4d67f58b5ab05da8c88723a22248a28530a88589d8bb1a8c448b2c46ee326f045ec502168981f13f888caf37d61a5d39dbd1271c5ce300d478a0d53fc89ebbaef061bd0e6fd90e460d08359611a67a944c37d4df32c3748a4981dd5491bfe392c95dd51f9dbfe0327846c20cf53844ff7b1cc41e29a7b7", + "03420b37a6034cd4b568d52d990a55b92f60883e9289a9c7672237504afea27771919027eec417a9ac5814e70f2565d8b768aa1872daff51832a318bea217200c7ae28bed809dec0406ac786d4a988cd3def43a0cea09cd6a36a9346eb9033a46ca99220d971fa995b786e3f455828d06cceb8cb95350e8b80cb5950d69eb2783ceeae23533d09e407389ac0a052de1dee26a636933bd71a373c31015c5d88ae3bf019ef6149c68ab27ca023962400ff" + }, + { /* i=8394 cDividendBits=872 cDivisorBits=672 */ + "75d3956d956ae5222fd664a3c6da1070969a82d0b4c3624b82d146e0de47a319e8c5b51ec5833cb6268a3a5bf9b6c8d494c017917a88afaa98a57ee6dcfe546225d72532ef26cb36330af707a7dd043beafcdae06e7b5c6d62d86da03505797e2a782eab826acfca132a34a617", + "42f63ff072ca6739359a6f9801424f9c72f1bd9cfc8347112201c658ff4ea4eacfef19b383999780a09f3ef63b3bb4d2575c35184dd0364f897ccf5da021c5c14e14a435681aab9360b3eeb8dfd6cc22ab073677", + "01c2757491b8a26bc4e9b127c5d38442215ecb5b797f0d09ede4", + "04a67402475b9b1af05e6f59249aeb2b61c472a1520a8b705f33954a6c3d112bb8ca08bac3014dfd1ce3b118b21277aa00958485033b2e6452e6a4c2d8e26893ebe07be9252e4c643ab89e3a49ff3dcf352cf91b" + }, + { /* i=8395 cDividendBits=2797 cDivisorBits=2107 */ + "0e18705a3af56b35b2cdde832a5b3a9652307e2d73e4389f8eec39f9effc63e9afdbd9e32e421723a982a67d6575198a52b7ca57fe34ed83b6d630e5dc492a986d3a8a1aa60ded977224ff68b197bf3a844d0a75e76bc69be02bb2f8b0e79f2b762772cceab46ffac7d12bd1714d796ec3cec6699888572f9540cb21182ca0199775e0aa52e6029c101c5703bc94a9d7439d0dafc92041e729c6e0c90588881676e34f511a30735be675b212b4a220dac5038fc3316c696f3c392fbef08ecb487a3a59fb3fbc76e55a6b6c48a5bb2c0cbf9b2a46e5eb8e83dee1043d13d5a7b56b6acc947a58ea2804c971c76d8614f5dc754696666adb1c374c6f105e3e606410d9ee9d324b820cb25ebb54341b379385b91c50bc12112dc302775e996a21cfad01c9a3e7f90752677ab5d0843f1743113b16cdbeb020110809a07ba929ae8ab0866f41eff348c3f14e54ec1079c52df48b62391e61adbdc98e9d303eee", + "02e5a8063bb0f4278cd78bbccc4e53a8fe1c54110ada3244d48bf6cea1609e467ef51785f40d0e51183cc4acbc1e0004b3c92224a2a73eae2453aa34faa4296fd90ce280a8ec47a1760e37cea7fb11363752e0c6a0a45e581bc53d6250b669ce2725244bcecf3797d8e15113a2f38c857d49ad30ba59665070923eb085a188d1e5f6b76774d90c9f95e52026cd5e6d4f4efcba175d637146f658426844f8aac70c5bc63f1b9d494df05843d5cb0578ca1fcc29cc7ed8d5ca5f6db4c11ec7b52059e09c630d01dc95db193bc5ad2d557a8b9599823867c1520e9e1ac225a50eeaa3bc39b3f0ba8949a2970f704399fcc5eb06324ef3c969ab65a815da8fcc3cf7bb9339d7dedb5260", + "04dd8972f11ae779a831443cfb25cd4b4208d8d37d2150f05d91b21e0309450c92bbbaa926f5ae6bb00da0f796fb84d4764845f97802fe63e6532da972d8a61c884067c9becb03ee81ff62fea3d2796f95fa43889016ac", + "019406218637ec8f79199f770d923badc48852706ace8bff1b0232465a0c21906526aaeb916237891c6ee299552a385fe178ac8a263201cd04d2acdf1bacb44822f026748096595f6e53bab3d7e1e71259b18799b178a4ad52625a6110f3a3e91278f72cc20a3f5798987af88100dbcfab72564ff40d7a28467b5959dc45858fce94c222dd4c00f8c30be9fc72579d205e9d6ba07698b9ad5ebe6777ed33f89c65127f03781650db9b4fd7621cb1b07a595f3d2420d85a6d5cfa3ff6c4aa8102c2e557f1260a471b68ba9d52099d333c86feeb9724821fc606bedeebff5e36008da0f70f0de44855ced57f4a6791a67ff0a538ac09bb728aa7891f4f3c1bb365b450311cb2c0a66e" + }, + { /* i=8396 cDividendBits=3622 cDivisorBits=3535 */ + "21d27f81c21f270064f2266c40f19184ce82873cdcfecbba1bed8921e252563fd7bc6ccb82c627f0b898e82b0ffdf4bc2bbfcb44d6dccf18acc436722b701aaa275a97dc85543b0cf0836dcdd29cae5ccaa675adfe57073be3d9219bc9f794f22f120d873de2e1d79cc11947200ec8dbc84bf7d4af73d32a7d173449db9f79740a5deb9d4060831113037d17b8073e6c9acce08979a5707742fd86f155aefd10e1aa4a1afdcb8134a7c385a18b200cfa2f44f9f94d24e01c20c6c65f1c42374d9de99b42f7afeaadf6c03ce754731b8e68fc01422647335f86039c6647fe0da7c9d557613b44bc798a5b3832696e53a4564adb97378805f56af04ee64b408e183806044b28cbeabe5f6424a098e04c3c664abbf5d4fcdfb166ed160409eee2d769428324823428c5a58b7bda2a2ecdcdeffa7507485101eaa24f76f158eb551349107476df02da2baaed885dd88f37cdf6f3a72817f32dd53d2d341fd2ba7962686d0256770e727acf4828344c0042bb584a4e794b47e6e228d3712b6457d44385fd7286a7f0de9b9100bab04da214ae6f9de9edb7b7dc37fa1bbcf57e1c96521c187bc51e28df751d92619abbc660b3e08ee322ba752457e9b128e3305ae0615de26af69a", + "44b475dba3c2c7a2b79dd4dcbe9ec0fd82f67eb0d5c10f2281c302f0193b2400cb5829bd75a362a96774ffb2dce1a80a849437f637af1f4f87ce77766f8df2fc17ea4e13e3f45722509e8c67b6a8f3f281aac8b1c1a66d7b17e8b01b23f2aea29edb1aa3f00dce74a25d6b762822ccdb6b3a370b3b4df26fe2d83e831113d26fe76ab996ea645182004473b2cf2e3625092a2179417be769416b7cfd91704237e77c14306d64b818d87ce915e5ca47da6f49006163491b81f5a71b2dba8341fd2885e0b6138336933d88e49fdb1fcca4aea54d335f17d8295bdd047b6f6397fc14d34b396e6d80241e1667899e5124df56c02a6b772460044158357134de8e50afddbf6a55c2c55047911df025e2b2e652446809f96114a67ae63e6d1d30839de1361ea608dec107c6bf72b0e3f66cf557b31194ac7400ba01cf66a9a333d6faa3e1b0cc9ef784571cffdecb11d710256724c884988d0b7f3623c5e0d308d660bbb54ab84dfc7188a8951d744d1f50714b1206269e72ff860fa4a858500a10ec62da5d74ebf82d24eedcd1cbd83e2fb83cbf9c4e3532a28864d3b4d93c2bf8b8f93cdd5e2434572bd0b98fe57a380806f855c156e8e88a3f773c", + "7e064058984dc744eea477", + "3de2da0ef50793afb5a6759c4a692bbe0e3f2251c1213e198a9e62d358dbe3462cd9534b86874f2ade5c8063e617ef27f58ffd703c52ce9bb3bfe08288c44fcb83a3e367ade9bcb5573f0422402f7e841bdee471bcc5ce28ed0dcc6199a8f436a71c559a1826d8513aba1d8e188017dd7e61c362fbaa8ee35a4a94f6ef9b241b720a482a6860aa54eaebd559dab2e68f37ac8aad01f91f94354ecf920dfc021ff48c51c884dcba9bde866ef0a4bb170cc563882ff6a2fbda1158ec58b48725be416f4ce6a000e71f65b9fe8e71dbc4b7e52aa0a1431b9b428375a1aa3ee71598af10d9f9e602be903af45573850f3801c011302a8fc3f7930133102d1ea00edf970ea58d6329855ab25b1968d7a0b1c33093c65dbb23c9b922de382fc3379b2f17e3edcd141610b3404e69efd9494de5769c8362a133f686b73e7e8963b04587702c440321443c2f5a0a931cd689baf2a4ff08fe89a0b8615fe69b7343e6d5664f68e0e1ef9f7b87033b428550d28b9390477f2032be36e76c53c4833259d86e2d8f656c7be6ef162ab1836087cc0d21ba798453385e3e047cac0d43eb3c240de31bd650751b86203a42c7d21830735992c9878906642cc019b6" + }, + { /* i=8397 cDividendBits=3246 cDivisorBits=2812 */ + "0c92e0882982670e475de19b84654aa35da85344c1f07ec3ef4619870ba8c40ee13a6ee231491ef3d873f8cab449098e40d6062abfd3afc26f0cddd511811a2d2db427fa9c13a0c6e8afdf77c5b85a6dc7265c97582886ddd093410c057e3ebbc3fa305f46b36bb2c6efee5812b182dc27a448b4267b3d7b3d126e76e5d7207259ce8e3a31b12b086a35318397b7db5094a7a922e1a036f2c816081b758dae6a0dae6629f3912df13d0b37d671080410accb98ccb9bb57f848b862fd58afc5e075526d1b408b57757e7dc21071e83b60aeb2a8cfa39ea60ecfd78bcc6d89a3002d353451efd0ab69d294dbec0e2f5b2e4ab27515f02b8b4daeaa5b95239e3ff8f40de06808a397cafaf550665b4f6d0812a17a6976cc9ddc8f32fec46c94e4beaa08028458374d4ccaa6d8120ed758d5ac7892dec999a4005936caed236b0109adce73056c599a7a8298bd512b50a9bda4935ff25d71e33f55bb27910969748c5d0093f1edf99543efab507cd3a8df541477fd2a1cad543fe9cd8e1cafdb9c9b0a7651a7f9db7c473d98e35f946cf05494d0756fa0d3", + "0e6837d1252e829d221da61fa27faa06a37e48a32d87d05b04ac1fa8d4464f56d7bd57f09a15c38ef5a79ae97d4c56bf5f9057d48977d347e16f95345143c30df752549920b7a55f8dc27216ff647da3f0733b4a09677d65382deea385dc650c63a3d0dbe12b932464eeb57c56183c6f9d2d58654924f0a035339bbbc4bdc93d09b435f25270d309d0f25f0279daef73f3a9da233e5d61c905c1307d5e25de22e2041ffb30ef55280e26745e1f5e2dde7110ced229323abbcf9f0eeaf0d0faa4b06ea84555a2ec7fd1696d3c4957b77b9f6c38bce704b064c2799aa23f63b64fee2543e328d1a03c50a35006996fdb27779139c85add85d1be5d1ac54fcc10715180f392ecd075a3a39444042fb5506cdfbff3461816b7bc672dc6c0de10d938c074796ae27484816708dfacc7b3c68cccff2ce3a5c2235a32b6b4d62d49c38d40611228366b55c05ac39b538b1bdd0a9c2a1ca39f9caaffc000f61bac3e31c7", + "df6c46109021cde650832949c524cf9078a0bb3750cec590b80979bf9c971440cb536ff5aa65de73b2a31a0dc5ca490e02016e179b2b", + "c96244c9576d05bbaa6d096db53950ad2aa7c5d31387932b5d07a33169f20f9bf0e0438287111526bf6f28cc9bac5a73827978897e003b23c340bc151bf0f43dc52bfe1f26ae3e24845ab0d418a2ae14f6eba5eaa90ecca5b2a2c2a987aca03b903ffc58cfeadaac7e4438f4802bb8807041064546951d47d737536ffa9e43a1c264db0149685a6ad993edc7a2d535244001bc635755429d97222ba3004de9c2b89045377480d66309e4cd4b54e30f9abc59810d5836da33b8f5318d915221222d93586475a5b2964af4ecbdd5c8de2015452db3af266b637c6ac0e90bcebee8d5923280044dcc311c09c87c6e40eada80ad9eb023860b19019d73285f3df9ad540dd8862898af816374d23bd6170b83bf35db6a3679685d950dee87359360e4015afbe278e7285d3a8f7cb6a4ae53dca46634e4908bf673254d78b173623f3455b7c1f0d4b27b4448dc9caef6e19e5a3ea5e35900994e7a258a1fe3f8c766" + }, + { /* i=8398 cDividendBits=2885 cDivisorBits=1173 */ + "139ba92354ba1b11f54cb13cd16a8df632e5cb6a4e0989a0bbf638b7b820a1a8ef59f96d2e0c986adb74bd11f1d18349c0a7411c38ee0558baaf1ac4afc3510838acf093aa69d6d0fb856c0e2f807811f847f0108a25b0430b81935376ed26f1b36f063ffe7dd67a99e3a7a0e7152e72b8a390fa575e120fe84154c7d934a11470e7185a32a135b603517a0e2fb5aa8503a4bfe733f4eb3db427886d237113c10701f168adac46a375d7c125c325855a6e3550e20a22c6b893c3352317bf30f5429271e44b5fee9a736f745cd9ef862afe13a696516d9fd6bb1d64928414e7c1737f82b2a0e56ebb25a0838232f7b01f2d68b37ec2acaedd7e28abb7018df1e72ef44557d17f2a3bde766ada5bc0e7995ceec520780f17b021f0ea66c10e99ec5d79605b85eaf0721a96035f502ee728d6c3e56cbd75f1c3114ed757dc89842bf83a709c3d6a8e2e86f26741fa22041212306c5b9ad7b3375c6dbe4c62fa43a5bafcebbe45b71f7bd3", + "0b5fd10b6a22f65d86dd3dd7b28b452f7a0ee199d3c4edf9d580feb8975e319a5198124d62dbe031c8b8713ef623475288140b2d22b3547380adccbf967b18e7a8f62fb8df686d5ff44814f2ae02b05edea8015a806aaeb5d6ac5c764e52fa517df42fd615ca71ad6752bbad1d3d52c826973bb143b841bc3bf5edc5d03624e8ff74391d3a2462dd6342fa6e6c5603c1e30446", + "01b9510ff58e79e60100b4349ea043ec4a6ac4b7ab623e1621f24606bd7b145bcbfe137ead96e52698792b5275cbfd29814ed4cfb0110cfc8d0d6e69844e33be5e3e3a6db770fe328afe9bb9f0932e2db1544f614d31489283dd1039d342b428d12a2147acdbe03ebebcb7b27ef29f16cf109837f341927156f4a82a3d23e7f841e4991ad184345270c6dfca045e09b99fb4f60fb580e355b3e2fe60c2536a0c13edc4428910012d8d3e618b8e3b68ef841c326be2109d09ffeada517ca6a4933eca24ddf726c3ac8d4acbe02764ccbae9e3c542dca1a0", + "07c680bf39e3dd63cb56041881e777e8f44cf00c7cbb37412bcb3e53db5f24ec78f1f0a12fef1da9329a309702a83425d650c7b3b93097501ba62eedfd9749c15efb04953a4df53c9f444ec69dd8949424baf1336ce2c01799d152f1c14e0ebe4a174b72f90a4a29c72e45ea33e9a9e4549f3b29a62450c76604cbf889051eb94032d31595e780ec40c82ab3b41ced0b64ca13" + }, + { /* i=8399 cDividendBits=2109 cDivisorBits=1534 */ + "0f0a12129034fce0ebf46c647552d2a6fbc821d1367f679edf317a2dd29a3218e4011a7170b6273dd45354e5c4e5ad5d39b2453b080ac0db093560543b005270493e2383c28c28f51fc131f879421b83f882ebaa772f6d00ebc201ea887e424a76028b18f65fac601384954d4ce1c92b36a84596a4a526a5eb787aab8a2b74eda9d36379b9edfcb3a4099609231f4ac18d336fd7bd14b97eb824c6b5965a8fb83d3497f7ed1f28bd425c790de637d0eb4d4b9ecbb2da29b9b4d180c39eec4f9306160ec6b1e0f3e3afb3ee615fe5fe77d76e737dbb4bae5e8b7f7ade5b5d9f7190da114ced287652edf18d54f185b0952f66e4546575b916d48ac372adfdbf7077ce3115d9dcbdf1", + "0ea173d68504c8bdf15f1ba90714cdf3d52316e37d1f5f0e7f5bd46d3c089533b47d64ec408bf064d5b331bc6151f12e62165bae644031f0c915cf6be76a9b711fe9599dc5100ec673d47baff721699c7b0db43cffc941df858e55c79acf656fbffc1c85821e2eb07b7bf2d62b51948e537c6b4de6c6ee4a617fd6a857a9940526f47c4b196271767f9814660fd432b2df3fe99d0b89c5989515852f8827aab7242cf4b87eefda0e617cb456bbde9ef4be0948ca5cc34643a5b18c26c100ec76", + "0107268dc17dc0a2a24b4e46ed25ff35abf3fe1ba9418eba0dbd0b0dda88cc6888dc83293c548ba353f6650bc87313c3c7f62b5ffa23ec60b186e4422d8961760dac8c7310c9c97dbc", + "07b41f412ff72cd6ae285ee8a1526e74698d61e8267a72a48b03b3e2175114ecf37a42bac02a89af74afd9183293926039b06f0411ed06aa4a2d5404899bd8a691430ed79acb39908b91bab720eae72a8f77ed36f176eb224f436a09b074bdff4ab64475b8739ed9810e14753e76be5440ee3d999c83e74b8944fe4fb02362432825d1f7e30b66f7475707453d0d2a79e4ebc458427d0fd1bdf0a11e70b63235ae175d7b0814a78ee0a7a6587b224ff7ae9111912864e1eb8d354ba05b137949" + }, + { /* i=8400 cDividendBits=1250 cDivisorBits=637 */ + "01afe19b0aab8f833811865ac40d5f67c13d586f176175dcc6d4bb40d1a66283fbccbdac651381e53808a85687e16aa723b5220f20f0955b5871b5aef4756d1f5fc18ce2a93699d04a42a6ec118eba79d8c331351bc4bd05683840a650f37c88985f1d316d91e185c10fc0ebd20c92bc70dbe731d69c986e77f513854bf704f8568eee53586c8c420ea64c6740cbadc27869461ef7bc627ae2720496dc", + "09a3d7ab17fca4e80adf4137281c7b39a8874ad52a34c40112102a80d2acb8f6deceb7f61843fef378426caf773237bcb3df6f25a45b452bebf50d38c6d2aef5576391a89d88520d4aafc55e42a00076", + "2ccd08ea00fae76a640947f833a455447bc843afb5aa94c2876c21c5f6ea2aa2ae5727017ec78da895e5cc310d58d8bf11b0afd47b0157341b45abf81e4a1965bd53b495ae84e6170d030afdde", + "06c3dbe79354a94d6cbd364caa6e0251bacb266c096a5df43a462bc549a0d08cba84e1363b178117ea76b4d609213a6bd13a5c417b9d9781eebf8be5c5213b7d4126559736e3027c6d42110d24339288" + }, + { /* i=8401 cDividendBits=1985 cDivisorBits=855 */ + "01bb8d93be34d8bab2ed397e5042bf68a268b0c2e9d2fdf67e33c5ef093b67bf2508b111c424d4975164588f0af1697022b5205c75b07a8686c671da924162b01ed6897ed3b7af5a0f829a8b7e9f852d9435fcd469c49d4690d21f2fe682e6bca849c668965ea584dbb6119a609592005fea992fcef5d7c73843e72200b1fde30ea109928d7f204311e8348d28fc333bbad591f988b22438688f5dff0518e30a7d4626c53b6fae51be01bb18588db1d30e51376d154778f96e3eb9ec31301564a86ad8b47199faf24770438abaa8c03b406c3044c2c35b5391cc37841fe58fa7af8d634fe19e8b316e87c90d9d5775cbaf4d8a685d030237e1", + "578b53440286ed85fbc01811c3fd1072e721292e91efe933aeea4a02ffde49a73d3746a4884e9852357f5d6ec5b33f5b7787a0be7208ab4d6fe8234c4e144623260eb11beed4b55ec690d7305e67037190517614f267ee1f0cd97aa4a5dfdee1110ff1f6bcd5ee88bd00cc", + "05110dbd8533daa9ae8d8f01007489906f501cf414c869bbe6cc52e04d1129aa4db7b8d698bda77fa8c6683455c031ba4499966b876dce372f6cff90169261a650108c420685492a1698850e656f207e561c9276725ad4d938d91d8ab5468ba1c35b8db72bedd4eca3de3907d89da0a7738eab02ab6c46e323d80ddbec1b3680ba82700d5d4e81416c983fe17180", + "026a70b98688a76a0127b5e0294d0b43ce0cd0da7352b45d5a3a9d9d08f4fe30b4d068ee794eedcf8b86ddd308380c87ea5d228b4122ff8e3256f579ba76fbea212292071f925e9a10194ccb7ddb753e46a811525bc1d44906dbb1616148826b6db94fee09ec4d4fdbc5e1" + }, + { /* i=8402 cDividendBits=1402 cDivisorBits=42 */ + "8ee360032404fd69a457e1beac48465a385521b6c59da2f5631570747278c8125b6ba2e2f7fa7cc1e8cc96b125bf5664b837c08882859dd3bcb6b3316577966871ef4bd19bb43a2d2fa090c8b4c745c38b7c7112b92a91c05d317333d3637e5b9cd458eef3be0353f1c687fb9f133ab7c721baa93ea6c64c0fd307db2b085749397a32ca3568756079f35271a08fba139f0a5ebbe3d4f1ca5596e073be50033a0b9a4c2c4f633e1a76996460b195a3", + "0140258bbd64", + "7242181298aa96fc2d11ded3fcaf5435fe205770b15d4ca6f2895c92917f55d6832c12b6f546ee5ab745bb379663f817deceb3513bd2fcaa356e1587a99ecfd4c3dd9757c2fdae2e6cb590f638c6be3e6e9b934cbb39dc6f1c79540de66f5a706b66d058a58e60d23b3a2de8705f544f421953bae7b9abf50b8e43265f9608e987d2dd5694c8ee88fcefd4e7821b7b8049dce6326d4ad2c97c115b9705faff8abc200e849426e1fe047b", + "095a600697" + }, + { /* i=8403 cDividendBits=3875 cDivisorBits=3211 */ + "72c62cc71dfd5c0b01dace586a7a3c792f792693499b2465e56862581417b4853106e0fd9079bbaf74ff1656f00f0d7260248230801147d4a894cd90551db4afceb545af57856094e2fddd23452694b8b09d367d21b88786a69dd590cac989747716738ec5bc505cc733e055ce9f51b088fad4ed5497ed6aae2512e4140589a468a7799eafc08d140c87e14b462cb6c93855d88095928dcd5b225d3f70169f1ef8b5acb2c0a7a7f730cc4213e3eb34c6166d68cc70c42918348e4d58c837fb9f5b9ca77798558dae18dcb4a3072cefc0094d984f9c4bc285ee097873f5f2b3e6ba7efe63ef34acd44bbc5a4f403083bf4c6cd025fffc45974bd1c7a2acdd93595f8e91d4afdb83884e57cabbb26e07ece913ac018bf3c4cf888899e15965fed1ca3d1da33c6b581f705b8bb4cc088de47ef16e49ac2ce8febaa26a4e23d039e8824496e596dc66713182252b2a1a77191b9d6bdccaa8dfacfa69868f96ebcdef44c03bca9effc23c755978ff91136f06cb0811767460adaac4359017ab219486fd490ba0f801d06472bf3a33ef8b1fe505ab65dbda42dee01a0974a7a2fda9c895bc91d41b4a52bfc88ac844b8a4693db59f7cd2dfcb3121bc4255a11dfe36012d8c5463d151d461e373bd1e8cc5b50690b6c3e18f1ccd77fdb239f8b4464138c5e120d3", + "0599c427a68cd12cd2dde7fbba1a8b66dc8fc91027edd070d39ebac5c1d34050b59dd4826c83cbe5fe37cdd6cbcf09ef31241df8c1084c3b0d703a95a42df80fba61d2806f94dc6258c5f05e95add8607d0c3edf99ea9d2bc03842372c317afdd5ada29edced4d6c702b635bcf76cd5118fe9d0085d9fc3f592c01575c0355391c1ca6e056f91212d0c0f46242ae24167b7d624ba3e72bdeea2a2b7f1c0d6713a55c0d78a4c8d75e3c0409876913c615fb350b9f6a68259b426905b6868ed86eb870caf82e66c410ac3a43e194d5dc7575a2d33d2c5a6ac6d541dd7813d3140b6b2f3dd5d57aff5f0eafe46d482c9ff3a6dd21a46eaad3f1df10538fd929445068297f25413b666f6ec98206929c49e912a885213a57672736837e0150f0186f5aeb94556a6f148e29b00e9d8f1b5de2d8903c22ed64e70f7ceaeebb70bd5d399217ef77c2c101bfa4f8760764845358130afc9362df9f7938621df99376e1dd5e7b5d34be1afdc48e1f527cd918c88048f471992e0d5ff1b248ed8dddf192142d6282da1d27dd229fbd897ae060cfa1be2b", + "147e356929aa41cc5e79dc5fcfc37f6b51f0c3f631ed907cc336e49fc05e3e1649b29d51c9323c4e8d6c61bd81e6344722445358c3347b4734eba44164c79ca9d96b7a8e634a9ca86f0a955723f3a98ec5bb81", + "0298eb5547ffb63881bba34b84615f96286ba3eff7fcaa906b4f47a3733002f23034b243a45511d43d4c63795c8249b200bfb72922b23bef6910a35a37a40e263353a5a274678cee20f745427a3481ac28841cf0966975af1467c5a06b7ff9ea897e09b18b512cf13498c114678bdcb6bf9f16b62fdef21fb227583ad517c0eb8c84fb0593df730e8475c7c4da612a440d730318e9b3d470e4a6a5da30c2ae0a09c9d85ce895d76f1ae0a1f1126024a29dce1cb23a14b9af08df1eaaf1a916c4922d7b1fba2fad3b2ccc88acf196126c87ebae15d8c2ebebf46bfd86fb9a0ffbfa96243fda71a949a866f9031f6305b86f3dd7552aee5431132222a44eb7135f8ab1a388c3b58842a1da408602e09e9adb8346a2c4d82e89d8cc2caf8d92b664dec12442437af806afc13dd0c4ec94118904f93fc5eb3c572b853439f322626904a760228599168916bb7ce896e2372ecc44f45880759015ba6849311d122f15b16eec9231d8e1e1659c2afce2fbf26785e9ff643d8f2794df678feb4141159537a555c4d55565569741179e9e6ece5fe428" + }, + { /* i=8404 cDividendBits=331 cDivisorBits=130 */ + "05235f2666011de8076a956e0bd99cc17a7a00b8dc9745175647e4f0ee1e16e2d02dff94981dc5458ffe", + "276721cffee437ba3a9fc9b66130869e", + "2161f506fa85875ddf1ae6c7eca4fa324c1d3e8cb01512c14c10", + "23203bfc262c9eabc8717ddab1283e1e" + }, + { /* i=8405 cDividendBits=1590 cDivisorBits=191 */ + "322a6fff9e0e08a50613bae2c77b99462e8ddb335dca1ea281fbb3d3e0c207ba8276ec0cd4872538cecbb81ede6827d3446964f82c1ab6b3553046792f39297ab10346c62c5fe134537908716ace0d92558a4ef43d28030120baac9a93fd93304da64ec205fa413ab28396856faaac604f843cf52938ff446ce062af56380fb813cbca1000db70e91a44849fbd64095724041ba7e0d7938f9a1e62feb5741265da20316c237fb8048cafc470eadfe5d4de86266365dd649712e38b90a3e08d9697d5ca808ab325", + "64b26edb5393445a196423eb0961461205ac7d8a98642825", + "7f89131a09d6ab5349dbd25a1073f2d72412d04b5ecb88a55e1377038ab46856d21ebdf8a24aac91e3790f74e5b4202282d2d7b31906c2b98be8af7080e1f2a96898a2fb7a42bd0a622b9b8a61a86dc9d93f7ce8a3c8eb0b087fbb216b1e1cc581577e55a4f6516ae41ccf0b1f9d961bb88b105fd93a5bc59bb3c4fae046e0fd48531095b1a09909404769d3b731353dc480ff2e0151f7433bbd2d668e97fc57d7b022ca224485cdaacb5e0cc58100", + "5b51e105595e2b35be48af1c43a14275e65af37567d70e25" + }, + { /* i=8406 cDividendBits=1458 cDivisorBits=340 */ + "0144c37e42cc526157ef30f7d379138fe0fc63e214cf8fc52083708be5adb0a04038492ccfe878041db80bc56bc8250c0c3baf0c142b1499c0bb4c7518c6d0e1f0166955533ae5c5949f115517a905f0e00d2b81bc29bc5d7b33be633bb3f57de4c116bee3f6216cb735946a3316190fa224783adbe907425fa052684456f373aae9751159682ce622b067269047f1f23be934d281f841a21e7b1c386e49ce86690760694da07a3a39e298d252b259a9d2f70704c011cf", + "0b365a069857fe7bd3a917249959d570f6ddce45a8c6f75a873c2358151cf951d67a5e3197cebf5619e711", + "1cf704b2c3c4943b21eca82e4ef408d29804515b9f3916999f4511652e5e5d2ce95b8a6675c108edea21b67e82bb52cde9d525b04ab1cb8666036656dda8787676544af9cc2d4fffe2033c30385a738cf4bcbe72b821dac32ea64320ea78b299c2199fbde02bc8e64a38f120299fc94f12cab2dd5a0c253946fba12fc7f91310e21b1cf091cb721074ca92bb", + "46e47b5bae63df7e64e9253f1a2b52a9700112249e99da5bdeaeea5c761688ac1d23400921f452a29664" + }, + { /* i=8407 cDividendBits=477 cDivisorBits=72 */ + "178d61558a416b74872052ad8e3cfc3a335cea206d1ad8f86f22163b33bcd8fd8e34c5520c7e46343d6cbeb3594e3da192c372cdfafc56518762bcad", + "11b90f72ae690f744f", + "015433f4d5493cd26db90956ca532727cef2c17f70d77ed56457b6a98be3b128d65bf693cdd1ceb709a3f8684c83a298395870b3", + "0870763d49bc89d970" + }, + { /* i=8408 cDividendBits=2052 cDivisorBits=454 */ + "033e0235414bed5116ff69e21f4c1923f0e9e16cb369495a09e984acf26117d3d37a37e6ef6b4e45411c1690a89cb1ee8775b267e2ec56e6d986391902117f00cbff3c03761e8d59fe5e9eccc20e83ca07b60de59a126b12538abe9b0e690607ae1f8b78e43791fee9382df4be3f1ca534bb75ae05d2e6489b459e4aaa50ee7a015a506b9d3b14d55bd666aa6730a852a03c2d31a993d115482e09f7008816e1bcfd187d6749d7f4d9b2bf8148da6d292d8a3e729d3bc22209569270cbbc092d90dd7126b4b4a7d9504cbcec7c029e848786d94c6dc2dd4ba0fe11c34176f2130f271017851355f9141cc035039dbd27588126e334a58ef91e9362a1855d4c5ed9", + "3523017ce89528e5901149a9efccc6f614971ee206c123da5f88557014e331b3886b50e7f479110825b3978a826026e91c3de5842f098a8252", + "0f9ec80339d527ac46e4073e55603c5e21c53e19d956b1f3e0857f0170544fa10ade1e1356325bb825ee627910ba63051064647b92640e67f9776e4315ccd025765e6c79d5d198aa8e754a3081e46064aa15e7b51c2d16af67167ae45f2fcb40c19e02d76352885d0955392cb472ed5e708831b0000fce066866dad5db745606cf33e88377a5e9b5c966b8512903d490915cfb733e8855ff7dae8eb28b03e4cdcdb2adbe6053ea37a6b71627e74b31f9d1798a8a34fe0f9e705626b9e123f7713bf727a2a139d5bf", + "1d256b67f7ccd93ac52099f3a1faed10767a0440520a2a9b02525f8fd2836c46fbee3370debfab49371a0ba2bf9e4ed839a411adcc6a44e9ab" + }, + { /* i=8409 cDividendBits=421 cDivisorBits=8 */ + "08c5c1c832782b75f97a9be25bc818cdd4d1fd20c75aab0102da8fdd65b15541809ea4345414e2c8ad2b67c611a3c8cfcef446df9f", + "93", + "0f46fa6559a2413ce873ffcc6124bd7b5a3eaca192e70a74b31e9588874d34b0c42076c71a43b838e7ea1105583062effe2dc2d3", + "76" + }, + { /* i=8410 cDividendBits=2878 cDivisorBits=2691 */ + "3db97720ca46b898813ba54cbd402ea8f946a21aa85c05d345b8f08a05cf74d397a6f96858889b7b001cd97d8900411fa73862f25ac8c6f1778579de0387c09c6a0a1b87904d2acb02dfe5f472fdadd10cb7d72a92c928ac9a3499ea8f2a2e9da42ae31488e292a42a1f672f10a0b375b4a10f97ffd24ce39be8f544d7eaab796e16828577573d8ef9a6429190d6a46b596909126c205ce1b18f6d6336973ddcd3c29a39b553da3647305422558c980034eadacbc96dc1fde6b62e67b275b113c60ff8ad2a5d699dec38cb35af932b51619eca421d771631f9eb9b246f1d9c416678f1b607fe5765ebb70a737a7305280aab237d23204dc64310c229a72b83ac88d645bf8d9b5ccf92b21f21e626a49473b3cf2cb7f7270efdc405f6662553e12f878347c37f494d08e2bd0f8539166a7cf5702418260680c7660525a04369ad42e299652f0fce6a780a3a581a0ce7b826500a53b2bae1286a965fa6eb009045009e8a672b65c44e", + "02495ded02034c3ef241a10caf6f3bfea7dd0dfb2b54610f1884eb023d0bfd456779ab0a35bbff878e8f3703ad65647e5caf8ac07884af1d2cccae889e57f6a9421dc8072ede255e50c2e4a9beb0434a7656059aea393b587938309416484f15004cf0db1337677f9eaa166c5f1b71c8f8366e9dfe2e00b4041cac9ac3d65427eeca3a55ea675073469f3f81a1446331df12087fa005db0c66fcf776fd3f56e3067173cedc62fb2b44d68d52a75a2789afd29a25c59dac874b3033f3d0abf58796091a36cbab59f38086eacfae587a1e962ba57995c0246e12b330660fea1f8e8ef51c146b699af13a567073fb71d44b0e95811f6d64c4e7366107e9fc4e7e1834cf524ecfc38e739a3facecad46d007c830fd86cc868182213ae6d56397775fd1d4de2e17de8ab5b74f8085910d64be9e53df876dcb6da6c223960ebb3f6cfc6032138af2d9671d1df8ab734bea5def81", + "1afe7ec4732f42552ceaa4764fba6c4de6fcd85efa7e7853", + "01e4c9aff1698678723420bc411ba89b3c4bb63592e9f9eda7989de90fa8e1ef6a5f6961f0410329a2b821fbf8d5efc044253e648f25e1ea22a81360019260ee0a929b478b9207ec9eadeae701144e26dbe1a6dc31592c2661bb0ac4b0bdfd8ec1567e8161791fa1e0aab164768bfa64d4092a08a60e9583757f8ad2e79e548e7da78df93720a3635712fd8f689266c88f3f20c38554e9e3594d487b2b482707476577c4be2c5d9518203103c94298ef4aed6d183a4cf34ca41533420a8262ad55de27226739b0d995bb31636812f3793a4736bd2d1a0d7b85935b7818af71f44895a72870537e2e2ad8c0fe8f6ca473dd127b2a5084bbb25186eb72d4ca3ecb89b20fb9a379838a5645e919891d1e5b27178df2d30f42b4fbcc7f6d3029ef046fa4658e5fc965661eb98f1814ef32c0cda8185f25c222469d60ffcd96e80ebeda6e99f950e1c74cf02730b3704b2ea57b" + }, + { /* i=8411 cDividendBits=1403 cDivisorBits=1353 */ + "062a67d795890f62a93b26d28f8c09c31c5b8f0005315e0c48e2e7fd2d3dc098761f69a42a21d4a37636c1433f8f85e1e9894c562a7034d8d1e9aa60a6527edcd459f0194825922e32d164a524b293cb8a98ec4c86c09c1e73eb5e1758ae7de0d97e1bd8e813d2125fe809d865f1e11385f572aad8e9f6f94abd826ad0e0ced40ed61c7af1afb3ce85a497b65abe9d9aa6d8d590794d2a71250d0201ac963cb066742a1b6e41403cdf10c1ce45976d3e", + "017def0989791e5b3722fa8c72ecc78e246e6a90f781661bd3e5edcf43519c22fa81b380a0ebd2a27621f17586b0d375bc47ad8f0dedecc9613b1a8c27974a62f7b5a89a9d44a1b1cf5ee2bd18780a738772e0bb06c1b04299574317d56269e854478f06921abb587e92c15820ac70df1fd84cb588455c9daf2f7522ba05d29e4fbb52b54a9561256a975acca8aec0d3264eb6334b22a13c36336a74e344742ab4d65077ab24b64308fd", + "0421f694785b5c", + "017c1d4e52c47f721260bba9772ce89026809c7908cd0b88ec4320418dce9fe8de974498c59c859e58e0adc1f91930483ffb802933b007305d15561dc2f9d3fb0efeb59ed7e820c891ceeb5c4ab3a1b26a7db57c51161f99bf484f7b08e6d0d47bbf491f7ba9c6fd41aafbb1d2ffc094640b28280420fb8833180267e1b74bab705631bc29fd67d3fe660fdfd52bca0e2ce7a5cfeebb4758f9c486b75b76690423c20b1dc31676b64352" + }, + { /* i=8412 cDividendBits=692 cDivisorBits=606 */ + "04dfc62d561094934568b00464c54a51d1dd7f89d4f61ad0b1454ab1605f21b03a55805a426db0994ff6a2f0a22c8dea97c1399772192b9e4397ecd327aa2589d1ddbd0d62f4fd043a7e1bdcd7d703b578bda14f494c04", + "01822ba5510e73e293be68674f6346305cc5f41863665ca2b2637801b3ec6bbe15c4464b72610bd9b843090d7802f7492543e2aa58cbb54f715110e279768ce42cb2ac338fafce166692d47e", + "033b2c8914d82a2ae24c0f2e", + "01209c618c936ae71c36d1649953cbef36f346e8be047d1ece9cfd24783bb72ffbf84463738c81d797a6afeed5d228e92dc2b067558dbdbefe018567244e9f0216c923c79456c9bdf50bbb60" + }, + { /* i=8413 cDividendBits=575 cDivisorBits=202 */ + "0aaac5d7b3f88f84c8bd69b31813d79e3381ffe861422282f3af145ae516928db2aa2dc459c1d357297a55e788cfde16595d83c48e0146777ceac2e42ea419a8a28a8cd8347d73cd", + "01ee81e81b7f8bc39d667eeb5872375a43b744d23c3f500c4bdc", + "0585af66e749077bd08e47ca239f9b39c9ff7ff23cf4924dcd9238245743a61b609c00248054f4ef6184f16727621a", + "ee5a7e9fb70d084fa5eb1cb1c1a0a05462ae3933444baf8775" + }, + { /* i=8414 cDividendBits=3075 cDivisorBits=2010 */ + "025a3103bc4dfe8a95e848cab6648fe06f65a8443138d645f7bff1f4d4a8c85c2cda6cff3393c79b17e588f71c3b017015ff8d84e83161fd3e469b466deb8f19d91d97b7f1b4d4dda52e4a79299da35b20428ace916af918e7204d9fafd273e5917a6a84bc91a44cc4a97a3ad38fc95b342a078e720de97e0456847e267608f9e19d108c79dd578d957339e0f74923043ae06c91e4228b6e46902c60753478c11b96a4aa032e41ca91c19daba4af41d365721167aaeede478e3c59837036fdf7a8d4f57270d200acc5949d0f0c9509d3187cfa51081f4aa0ce5fb0117043e98493e4fd24485dfa26cedd711518e3362f59b3f443fc1688afc7c4d6baebe8e3cbb658c59586999d6a1dc579c0e38866aae2a29876b1081e81abfe6d7939b6c931516a295106b4dcfdf3c127a9088ebffec0fa1c58e76a6ea65b1199e1edd129f11357d7c73d9dec974dfd8a1dd9314a08c04724ae6d70be5992f676b174b20e337f710053d771c347acaed3d8d62f29829144bbd875ef26409d078d99cc222cab1c", + "d4669d36f485d101dac0cc3c88137a29fa8d58efa1112df944d600813d6b9dd84819611332d84c9139f36461005303b7f363a189ba723e3b0c3a2d5c07b71526a9b9378470c75e94b2b4fca1de57cdfebc5b94c42295b521e583b014985fb74f334efa92aed9acc2843ebbd59232383a3b62375f281c4d86d069aba3690c71bd280d9b2e99b4edf65ca762347525e74bc68d699d1dc9e33cef9ab40758780b43734701acb85edeba3c69c99b4febe9e30c26f4cfffad7b9cc824cee3f63556c01f4d6c00ef472c1cb9e80e51245ee4cec334a5b9cc75de3fede4bce282a9518748727e4e9357e9fd3b913a93d68d6c6e6702e4613ccf8f2ff3726c", + "02d5cd6339f6e4e07b833ae262028ea554938176ba65f56d993e7df975391cd992ddd2b15b03437c81045ee43c7ba91ab6f8b41dc4d22839260eccbaca0fdedf20277ef0119403964e951e3a49e7cbf1d49adaaa99258e5575afcefa794d9d8cb5a3dadec561551df4de4861c3a4d4943eb4aea739d3179d46fffce93d16d2db7ce97d2e6ead", + "3c7cc40d5103d0bc0a535beff85eee0c1252723dc7c0cf3b43dfbc8cf139f8ce1c7ea278fca8482a3bf9651b4a77c85a33c05e8375a98f9b0536b8ca1308caa925f95ed32981e0ca677f406ae22be24de4bc170d5485b8dd77249e1c680288256d7ba746f053fbd58570bb31220cf64d5f48f3b03d9f2c203ba11a69d508ae89d8838a215be35e623e6c9fa275c686fd9dc3a7d08edd178ab2ab80b4438574920d5e25051ac1f37a599d5773b94667ac665af4c10e2dca3aea9edbae292b25c0af2fb96cff4ce5fc475d9bcdbfe0fa5d368c807b6dd13f47d9b441393d2b33ce698872367baa5874891e64b4107a0f78957144efbdde84d415f020" + }, + { /* i=8415 cDividendBits=1302 cDivisorBits=868 */ + "16bc896dd71d0d97487b7c81b474c75a0ffa8fe1feb5a0a62867f5ad48c8963b2bd3a41ba38c25dca5e0dbc56dd2c6be625935d9b7eef6dbab2d5bcb1f52a843cdcbd7cb48fc3c9d242be2d02fdf8b5c245b60767de61781dee5c5b2838e678505c35a48bd5ed7fe0ea80c9c0a09f6e4e8ffb0a9393a3828c727e817127a8f8c4d506f03af4c0aaa07cff4251cc3c3d52006db14575c76552e728c28e98330df9bde7d", + "0fa5b3994c37f8ea4b08ceb87cd7558daa3db5ac9df105092923e38c9eb31fcb3e471097c04652331069a321c7836247175fdff9fcf1e7fc7ad787e3dd0c0d43d8beb6e2f6aba6079cc18494607913eb19ea99098fc39c44a36001d6562210c056aa197b81126edb3dc0c1ed8e", + "0173fbf04567589301bb2fdba6f0513d8bb329025431caefd435ea0af28791fc78c0e4d74a95d43b3bdb05f72bed698b5f71dc71b0c53e", + "0bd7a3ddd30acaa5d01502d661fd93bad50a7f34b9260826319130d819e64a2f5cf173890d332fcc2d3605339a98ddcca8a58f689eeffead1ca03d87c6575f0b8d598f402e2581f2ea9c16402bab6ba630d68a13b492c0958aac22b5fd5fc30ef97a2936c4e499f1aff5361019" + }, + { /* i=8416 cDividendBits=2956 cDivisorBits=474 */ + "0a1c18cb7795cc50609fa89e41758a5dfe4f6fd07304a01f054a2884355aab68697311c23257e4db9227fa22d01741930ae81394be0e5d300ba585019a9c8138a7c5a7c52487c3105c2ff53b98a317651800be34b1b558cafcba03ab064bc02aa61388515b717cf2c9f55acb78379c75b2ba6f9072d8888425c843f9737de0d4e63d3071cfce64508b1b7170aa065936c2ca9fbdbea9fab4090d30b1c1accd40d52d129725ba64696a9f9b51ea8a6e82ec3a1c32af4ea2f9b7ed608a167b5bfa549239a85e0448e2cd5da8f171b18cd7a6e447658195398407bb4416fc641c249b435344758a3aa376d0a5feb2d81e83a8ee54ec04fc6bd32eea75cf64ffdeea5f8607ad714f5ba55079ebf27083c556a1e65ffc35e80ac496adf8427a8e6a0f09b0772355631b7eb108b4271d114263e5d469ab0a7493bbd93d473eb4f75984ba4015a85cb873f628743125f724591d050c472b582bb70564365bfd5e09f1c7bccc0c95e02aba6191e3b38f80c3a5d01a34", + "0390634c8c71ae2b33cab0f546be2ddebd69280e3580760413a36d47f71cf702e2d6eeff0239bfbe209147e4abf94f0d610c6b3143a71424bd5fd1c4", + "02d62caa66bf9a09b73b72e2ec53b9629b0c3f76d1a43b9f46dc7f36272e86d55ae72b6a72dff0e262c6940bf92b5bb267ff92ec214bceb7276a081d8ee01489b5765f1ae761fa6403ffdb9c06d5c40e7dab3a4a18c761572e55002cd2399a052fcbe94f153ae99cebab4a3d65ddb7efac700cc267e64d3a9ecb98997e70b6e50175c14b7d124e25831fbfed1a35bdf01d115127bd571b112f99fa957e0467134facf8d0f8ceaa2fd49c59326dc623e74619af6f385b04fe7d07aa8beb92a730738bc0390042894f48a04a9bf2dd1ad4fc679abcbae71957dbae8a250c93d7762128546cf8d2cab3f4fd87ee654b15a2c33b24028fc904fe697b6f39163fb67c7357a8a7dd1bc3c8928363b6ece5a7c95f36569135f9fb00d92bb8fd3b074236b81ca8aeb174a58e867afe0fbba0bba130a1a58c971d28", + "cdc18b19542e852b61b89f8aad5ab84b45ea17bcb043a1ab48cf6b93c7bb954e51b8e00d139628d4125dddc34efbe47ea1611f5081a00249781f94" + }, + { /* i=8417 cDividendBits=1572 cDivisorBits=1413 */ + "04ec7ea58c8f292bfb230be70e3acac621502c5f0e2ce6c1799306e9f3bd79b96b7099da16db1b96badbf2180dbbafe4224a3898e6cea285052fddb48592f301c3f072200d1a4c58c85091190a746869d65c2027b0a1f5157922c12bddadab926e9035e957e2dcd812ef7acda2e6e868385ed3c2802f09a2dc6bf90dfc65e025ce9f614b19d95addef92c03dd445a8f14375f54e8551287a64998cdbb476f97ab1f618399f96a3c1931b685ebf66b5d8dd404ba3f926aed425b4dda514089ef589bc974656", + "175cfd9fc70b474376b1b3f73cc6d6eeb8b8c409556997fed34baefba5a8fe12e406bd29f3f02e12f7d0664b96dd6254fa33ea877309ec8a6528905653b3c921eb91d4b724905c8bffb969462a94f0c952b22d4258836362ae0c55607b873c9e4e1f1719ebcc1cf5827edf8181f9a78934345c8850df9ed999ab7a0550eb305147dcdf807cc86a5be874d1bc4484a731537a580ea79ba58497014e95fee044f010f1fa600618b1db497693c109fade9fd5", + "35f3b8d9ec5b5b78ede397d279fd22a959ece3bd", + "17366939160196a5e956ca575276623de974b3ab4afe5e4087e7e8f792fa6ae982865168c8f8973fb9505ff816312af58109d3c081e26e0b0be7202ba859c0955b14d32d9418eab7cf8cccc689ba57455d8cb255b1745c71538366bf7521c183e66348c06d5802cdd532ef09e59b3c6b207705836d46774d769e9e64dfa72933007a9e7b02837441758bacc53d926144a4ccd0c65a3100ee99f0ccf7218c6a6c27bf3ef5a9a6c7432e3b401f4eb9256715" + }, + { /* i=8418 cDividendBits=343 cDivisorBits=293 */ + "6fef4771d34d043abb58ace47b365e5616a4415a45ce0adfd206b2723d619c82d7fa5b49244e3599bc839c", + "1bfb03dc6c84c621b2edb0f2646589fa00d5fac96488da406f00b3829f0d01557aa136d04b", + "04001d72f639e3", + "0f1595617444e43e4821e1acb19930af2f7d980e480890eb52c3e3725530ea48a6e3af1e1b" + }, + { /* i=8419 cDividendBits=2243 cDivisorBits=2202 */ + "02dcd2d444da5bda18bd23083bef12ccd1deb9038bf39b474df1ab80d6e308ec5f69d88d2d52c5558e655909dd92d968812b67d3c4e0b4d5b2b7924b7da05518d860b05c6e4162de74cfa6f98788183f8c93936864789acade4da3a355e625fccdcde9ec8b0bfdb907ff22bad8343553098e6296937545e850154fe8b99cbc1db2bc0973d2a1126f8770026fee9536ccac08b78a4f091449c3dd13c20f06b33a63d47ad4c50c25036fd6e6581774c818f40f012a15bc1ba65c07c3ef9aec3648c1610c31adb26c905d83987244599b837ec2c8db46601224a86eafc1faa8bb3c84abf73ffb4818bd12b78b6fbbfbfe2c71d8ff5025e118794aa04752057f53f055deb8de3ada81e977891324ca8701b4b87947fc6ba4f5186c", + "028bb4fdff469b41d8ec8f5c622bbcf301b3581362d2280e8625d0fa27b534ec69687ea079929db9b5ec6b2b224d94f8ab7f25e00fb1725514dbd466da83a80710ed3139255df97e8a4145ea3e42154eaadca97d781979b9eb18ea2c290b25078a0d43f24296f4bd94a8237fe67c38b98c62c877409766164becb962958bca8571d833fcc99484425c5ead04566aec4dcc07bf29ba1bee1067c3ef44aabfe71dd073c3753ef331ef3a3f9f54f681fdee3f8d6c8ffd3448837e919a121f97ad329dcaf604cd1ac12a004b36c29fc29fc354185b4701caa74b8277640ae5d6c5095b4f4240b64d4b8c4387664d079783d01850b77b0a9b9c2d35a659e9c4031ad419383a29cd78bd37f7fc9e6afa23ed86c35d3944", + "011fdd1f87b5", + "d9047e2de5544ea43f3ee2d3338059fc187c2c77ff5965525fade51c0b8790875c0fdebfec511f9a5dc02307495f39f738a26e5e0f2b0b773430f9079cd63a053192b862c95f48e0e0d082aa34a8f7d1c6ca392609063a0bc5072b258b6c8d6cb92b885a8dc40452e20908a73c9da478c85079d8cc95b1e2d838c4ed942dfa9ca979f0bc570b9cc5097edf0943bbf6e0c395d43a8fd579a821669d7c93659129097097370a47bab8f2e3d58bec7ed9e83adeae3e2392eeee81dba67c95ea56398c99ba69275dd7b9dfb12bec5f5a78b66071e4968fa1c0430c9f039b653fdfa940455b1efa4ce27091ba8bb6ae0e15cac22759fa9d26ed664b995f05e34015e3477fd757db222a02aeb0b08c22a527b79cbf58" + }, + { /* i=8420 cDividendBits=3751 cDivisorBits=2716 */ + "2b4664261d7fbe7719337ae2417b6eb7e64186f4c0135d743f43cef1716d35752110572cfb69c9d0c10a8755a92d7f42444c11a4d3bd270919d19088607b94d03e7b02a237a0a86ab2d936e268aa78ec03d090e31982e22f72630e5e34f4c74f7e0cc96dd178a1e5fb8232c7250f2a7d7b75b91b58d9a16f49a95bd77241e5d78c6ed11da7d2c7fa872127f7b952dd4af7329c4ce9444cee49add90d9fe8d42c9f4f9d1c522bafa67cbc716270c07475b672c163ce75b7378a18d7e6d3222aa96fd0a653a593eeb53f9a3a01fd765d0ba0ec3079f437db2f01f5ad4ecb30a2f2dd425112cde810e55718aee25d2f4f2570279a74efcbbe2a7654547d44676ad68b2b77ce9a760505ccb9527a780d16044e709e91a832b44b77f3e9cc265677682cc7c4ff5ac0cc703fa57e5df3e0110a156fcc32dbd33351ae55255aa3cc33304d842009d9aecffad559cccac419d75aebe01cc46c53fae0c35fb95f834f56a90d6b89c91eb4805537f9b389eebb70e37d757e66161fc2a0cee38bec42a72462e951ae9a68194a518ba5b7e1cdc325524f0e89ce0bd36f1c5187cedbb950e4ce54f850019c5ed7d2d1651930c290b102dd83b4bb4861d6350ff4f93ad1085b136e50d87160f9b52d5f183df3e1a35520920f36f92b", + "08ef855fe1f018f4dae512e224314f6dc564e4f86a65283279e3dee30b2c7be60862596ac276ed99a604c97dd9517d866c7ebb2a7aac58083f20685ae0538bb875a093856c1b1abddc330b695d030e74f0039718dc28d4a658e5b8eb5e3b450000cc71a383973c3b1d96abce6771a9d0adfe40ca348690081dfd3dbbb27cbedf257c5dac4d248843b832547d9f58231c27acaa958b282484b0ea4d1fafda72b6cc665d4b446c6273036ad7998773a96b7c78ebcbfb47ebb2982a567134fc489199d2233a28962bb1ce1c7150d8b1aed90902bed065a9f1af7d7e4a1c721d60db40077bf9ea44bdd2b069cfedd5a89e2f353442cfb43d25f12ad4d5f9c2b8e599784b69e7af70c0c2863d75094ed3f7ca04dff45b724a65055d4d8496e96c0096d7a8cf62bca47a4105e27db24b82cd07a0059d28edf0695d531dcc616f697c21386b481189be4a2dd526e31515fd4f70db846098", + "04d7ccc1eae80b78a3d666419c202333998eda75ced381320f62b736fdb937bcf07391c4acefa8d7b036bb9ec25e8ea92f2476a6e38579f7d22f29788f8c0cee6ad5fe9ce3ba8d6cbed596147f921135c1594f4aded01c7b8e5e3f689c5a9e944c43f442adfcfb93a8beda638250f3cedf63640958cce99dd1ca299960d5bc77291a", + "05b3269845b57eba3644316578cb64fe8a5855d019a57d69cee7ddf92fe5aefe19f7bfb25670db62435f4c046a8dd7d75dffc3e511ad6fb215d02ef2727709d669cb213d06368d14a82fe49a4e8a50ed7d38ec13dec9b25d8b01eed7eeb7d88a3390bbd31d05540efbd33f3a4df66af61714cb366d95f42c0f36d3fcf9b380dbdef3994a2628021172fbfa5d4cc75082da12cf579aee351d539aee6602f175410ff7f90868fc74029cb8e293c9ab11e2b3c7d0209c014db854ce9b845d3514fa95bba70881c979e47963d6eab8d040aab8a6be343b88a598183d495372d029f69a68d370937223d41be53caf0f7945b5708b2cea3b1ff2c5fd36a4d1884edac32a1e576ad7666907ca532c3cbd3095f441243fa5695e15d0ffee0ea7b6e1c90b9450ded6e2d7b1bf38cec5e84a43c8f38380f41affec6e21cb970c8027501ac94ce04b208c3ff35777482362ab015c0309a4d1bb" + }, + { /* i=8421 cDividendBits=1085 cDivisorBits=387 */ + "103ff8fc632a3742b3a0d0a059a800e0025bb827710dfd1550c99c49addf014d2b58dd1540160d815e08e4a48b4d4192ed9437e1f16d9f8392a3b1d4397980d820683a0bfab7698bb885e07a13e72d3cdd3062f39404fe60614488ecf966628791a65330ff07e5156ad574afa6a14748eb08abe21f65475776a9d734130c87db34b0d24a251b1375", + "056c8ee7f1acedf02c6f99d9c411a45e5dd7d7570637a13010d01d3a5fea47cb3b64f141e16d72ae59ae05168443e508b7", + "02fef2e0ca6174bd3f0427a9a8e5927cc80bfc75bdc45bec2c6fe1623c8cb2f11d241a69a87c8268b78c224428afcb7a1d69d2c241aa3c9290c10ef008444dd98be1ac8919107120af3a32af53115acf28a70daa739f8946", + "be6f2a2e2f8169f6b72e3545a5e5981f3882e87edb448b20765118cf4f7c959a3800df43b2b05de880afbf196427c26b" + }, + { /* i=8422 cDividendBits=1270 cDivisorBits=481 */ + "2c0b0967ca86d57bc6158b4a9010b49b3cb180a0b7b8dcd5f4cf889bbc55719d5fd14af22621271d7aa1d3ffce235816a960306f195ac812a2bf5bcc0feef3b43c15c10ec03ed41a205de5841c68d7c8c6647da73fc466fe1d7460ee30e127277e533b8e20622fcc8fc83fe055f11c9f535dac336b26ab1e9ddb8fdbd1a904fd23c9812b4b1b26f6e7e2cb7f321f5e01f43e9722683a2c8f3a7753970a7739", + "01ed8ca427d4a37dac370cacd148004ec98e31cfe54fd4e1b02939fe7aaab03e371534b6fe2ec94b2eaab880dc4d3ae6572ee0d6de965a60d91a602ae4", + "16d844cb96b07731717fe9d71bec2ac28811ace5c89bb9184d9f13678d2a1af6dd5bbb97ec934883febe2aa30f0d34b76d19d5c9eb04f277cc21134e83899745a8e037e21bf4e8df95d72269547d051d8349b9947981434016bbcacac5c937d7ed9aee", + "109bb05f98862b1004ed3de2d552c3750b288dad3bd0b865bfdf260582281e7363a786270ad581e4cef1ee7204c10ca797a2a1ad5503699606c16f41" + }, + { /* i=8423 cDividendBits=3110 cDivisorBits=2369 */ + "1018fc4a980c19f6e820f74201c413646dd2b95c33e9fc0fe7862cb3a3ed30c794e6412a2ce9d9563d037b6a173fcbe244ab02a379dc2d9dc237c4b2a49171921a82c0385bbd2d19c04610eb5074d20447d6aeccdce79e57dcb2547fd3fdc81b4224386682d199c54da99d715f0fb157697013394fd094644cc6f315b000d1779b896918ee510b7698228c9b1db7fd95a3b35b08b61f06af1d928f72e627b4b375764c1ea4ec742aeb5bbfa54d9b7eeed82557f7a64d78e72fc8190a0c3f77cbc5c0e1a72ad48cb69b4c3967cc0de7f38d8466d3ba44568a90944033a32c98519a5cddd249fcf24eb13eaa2362fbb9c7516a2da966265f09de1ba53242cb54cc9e3f6d3cdb59f6599314408f93858f5c433717e6ef98326203651d3cc255699a8e991c8e039575e2b6d8fb5d8ac90b19ef38e3dd4c5ae03d55ba7308d373287bd1cd0b33dc0a32847ac744cf62687ceb1adfa55100e017c117a2a19ea17522787dafdc1b1a2904a859b0de1ec093685141c5f91749cab824355383af2469c1485e74625854", + "ee1d26c33caa3fd60637e8bd3bef32fe65c51770206a61103246b7a7397f7ae677016f3efa0bc2c7573aed44296e181066844b1715a2c3a5105df1d73d212e18c93e3dc6e3455096d5c999dc2f089b582ea83ca254bc7534c2055a702053bad932941d8b82052d4f2cb72b2d5f0a78f9014d9f6ab286c4ddfb53b7f91b67beda1c3ad2f88f55c503bec6584b062f2ff137ced7623b90b58d800ad2cf54c03cc77aa40e8edd8cd6346d00d0224b49f34f5b3e3ba6a048cdc7ace0da07461b6bea2141c205b00ac69a4459775476ed8db3500c386cc802c5f7c922c58feef40b362d4279f28d87d23ffdd3a5e00c4351815ce657b2ef519895061c8970bb40639cf1bbc0f0e231feb3675dacf288ac0d48f4adac53604008e5e9ef9238c23fc4974e6eab81f10ff443", + "114e89700bdd1046dee2fc2e5ece9f0d0026b67030597ecc0d4275d27495e7ed4d8a1fcacdf4daa579897a9afc2294de12963b69b07f05b623583815a22d07c0dfd3bc120ea1933f0542705391c10559de3edfa25f7f592687671eac70", + "2393b56e8df3e89a03cb0453d5e76d8ccc20c846603ee36bf09769d2b81cbc2963a26e79a51f3f14ca2b7ec7c008b7415e7670d9554c5945cdb56dcdb36cf37330dc17b30e003c9533e43130c5f70db379be0a415e38db9cf5f1367412d957cc8d4ba3b2f134411d614e23c726cd3357ec2eb850876c45b5b1934f5daadff32d7b13930774172e30b083b668bc60290bc0828a2a1e7155f7b45169c5f20181451c582ed9be065748129277e875bce7e33a802eff6f858b4be094524cbe6dd6062e75b6b572acc0dd6e707d35748d688c67dbf5e252b024eb39d5b5c8f7964ed4587bffdf0bc37472a9ac6260945e6a33437563fbbc05d0e5336af6a036f7a73401474ae2a1fcb26da40ec5003d312815c03cdf20307dad88514c796126cdcd61b6ec8513b0707704" + }, + { /* i=8424 cDividendBits=2484 cDivisorBits=307 */ + "0fa52cd7e21ca7997df2df9865db03c5e2139468a50c163951b2bd22800f4443e6dd640e430d33ac5a803eee8e860cb5695947b1f617fc985158340b4f29978f22c03fb2db569cdadef58b50c56fad3cfa395d98814646d67b3d65f7b19f29349b18e80f865e21ff3ad5cec8e50b3fadc47c83641243678352dd6a0109e60d2696766e13090f57425909a96a51ef33be7ba8305271263a3373172cda919039c547ef5163458c92b61345c13c4d1f3ad399ea8219aefc94ddce2c6859a476e0773f4dd94ca45f2742678af2fa67946971e3ba193f25c8f010799b0ad16a7d44c682d6c75471683fdef65f3ff24778117a989f1e2fbf4b61c2e030e5922b3840e041e9e1a340b86a1349425352ef4cb95a2726e53fd1d257e65108c74b555b125d919c13a0ca1958196ab097f817339a31ecbbf814fd5945", + "06ede502d6a8bf82f2c04286655696abbd2120ba59b210413829cd950b65b6a8b5872fdf378b6e", + "024201fd117a7eb8252c3b68aced2df70c78be6c1340f67f96750cff11d4005f3c8d962697ab212cfd6f3361eeffbb7e480eb7d00bff8de88a858cf81c27668b6cd34a606261e17eef145856b1b2e05503056f3acf37d26afdf68c988d78b24d10d249173aa04eb7727e3c3d042885c36a2d1685620d40f95b078cc1efc3bbfa5b0ffe2ebd353609c3d71672190fb727a18ca1b2c35b9fc78829843d7ea3d55db393e6b60e24c01d09ceb86dd44ba2e605c810201805df7a92ba0029ebd76f93980bdcd82b613f701a128a22bb0e8d2bf5d9f5ee04a82a2f10e6e8e535e2aacf2ea8c23408e615ff7ab618aa8eece85eb8892082f945d1a8e860ad2b82ea6a613318e21271fdae3d77ef5c49ac944f91b3", + "010737e0cf7121cb61f6838854a18ffd672c1ae1213deabfe2c44871b0091266ff0d68ec3b8d5b" + }, + { /* i=8425 cDividendBits=2245 cDivisorBits=886 */ + "09cb2ad0b86c65eddc2c98f7838dcae1c5b1c670d99da1f70eea86b99ee7df68e36c264cc97d5f6402dce048c1eea839f4472d9660f032b95e4f324e5ad431d816589245ddd22b73bbfb2cd9715e1e8a75d1215466162229dd0d9a2ba4e032b3aaaf03c0e6a2f1d341cbbc9e2fc777f17160472c4f732ff39851bcd01a96173e975cf77d3fc990d2648257eaec78999edbd440b188b3532376b2e3bf3ed86ac13f2dd3c11c3a327b7151875e15a3314714c3bbd31d7c7b6970e78a501c6974c8b2b78b4355543529103cf488b1b188fc0f9babcec2bf951585eae10e3e95e936b0f48907d85d94c59ba2c3bb439c7d3a482a278828c4e458bb69c3babb0fb6361cba13f82614d9e55842ed092eae679f6797eb54e02b5f6833", + "05634c0c8cbb40d40681589abfb78fc1e0fbb86aa8ac2bba71057ea2e62c0baa76db22a89b5e790a8f62fb09673efd24e99367df4ab2e461e49eda7d482e6a6cb5af63648e9ade5ace541efccea4dee939d25652061cf18e4899ed97af96982143ebf14aaebaa402315a3976ca4d1e", + "01d155b042e1903e9e7e73249238a80cde7c277ca1b3aa94138399adae4acef56d8610dfa9473e45727a79f14c202ac7efd6293b55806a8abe76beeaefd6a7c0a3e1d763764ade8548c73f5a01b2ee5e8e00a5d3f2831477ddbc1e60f899af70931db8178538882a8efe626f6374ac2d328e1d09215f125799a8a0cf16cadf48fb42ecd0d2c8b346c1826797d3f8b215cf4fe6f7e8fe8391bcb06db7b3979431477558865ffda338918c54", + "01de96a3ea06fff1eed71ad25c47079f05a2444e7203c672f4832e740d3969367c83de143ed4c1ad3d18f7ff7025155d13a9460b700cdcc9e3986f8a91b52cb70f13329807dbb7d86c5ba004f74417c320d7888d0f64c975541b4908135c31bc9757fae06d37f652b2038050d3b25b" + }, + { /* i=8426 cDividendBits=191 cDivisorBits=77 */ + "74ca10ea244e779b25456d99d23770e9cb1ce999107211e0", + "09dbf7fb42d09d0b44a7", + "0bd87cf26d6ca708225791bed057f7", + "048ce807f33ffc8e13bf" + }, + { /* i=8427 cDividendBits=3860 cDivisorBits=3113 */ + "0e80361d846c49bcad1474ddc55ac36b2dbfc8efc3f5f3d3970e5a7f3e098f064f73300045ac911458c736f54ab333eb7c7a9642bf5ae7d5c22ca194e2fd125be3d5c2df1256b37e5b2ff2dbcefdb592f4dcad1a1e6cf4b30d0ef28eb7e2d900426384314208e273af7080636a8a99311adb2da247cb863a4013299649c927f5b1e4bd7005ae45d177ba6e266a8f71d1115eb60b24ac92466d586506b8caad139f2ed76b6482a8583447b8f8776530d44a5f061115d126ea4816eed23bfdd470fc1e1404b3c7741ae6ed655a94c3081be6bd679e79e82848923b8ac01e009fb825c141b41b74733839441ac47a2e57ac3c7abcf4ccb7fdd8243d5cec3404181994276cca16482397e05a4157cf0f09dcb5e81324f2ef801cae8c5b72c19a09436f00624eceb5c0245ea818a977730a4c27c1eddd8be2f3932531f4f471dd93ee23c31a249feec604b3ef1928a67a06a9fc708a59d6213e771b82764a2341c25ad9b57f61e8c20660ace9b223708988710ce838c8eeca1a0575e042e61ced2c6d0f3f46b8c4e17aab7f9be446bc8282c6672cb60e5f4495afbf5eb88c775eaa50c9eb9d7f0628e4dbb2f00ea7e03c585972c3ea045e36a85db5db5831a3d1accf7ef931c79495988c573b2eff5a0f43205c533ac7b52ef8ca438467d6946026616d98d4", + "01cc5aebe456317f3afb7531960b68cc0f0e54c7638da7be477c87bac1da63d31bee1fd6fad4413b1bd65066bcdf935997c0dd242b049ce960d106b54bc34efbf12202521bda02dfecbb93c55bc38f800f8756d5ac6116685c5ba50fad000621cf06a9b73db59b12a1c676577362b5589caf9e65f9a46fd4c2afd78b7bbf409cc25a9dbde437b7080077063136872c5f449fd63af95e0747064d30af80ed0da1695881606d16058c9901d263c04a920840cd08d6bb5f0b03c4bc915ac71495c2865a2b66e95ad2dcda5b9271e3766cdb1163811b6b51bf9352848539010c82f05bc52f0b13802a26e091389721fdc5ef8158a0350c295674c30559929627a4e01ddcb434550e51a71054fbc209f7cd066d6af589f1f0fa7927ecabb10e7c80fcd8d01502ffa0dad0fc0b34d2acd8e9a60030d7746d87449483c8fcff6425d32e278620f4dd893569ead0a58c351e9866db8d774a6439e1f19cf295852c92a8fa9b7a33175fc72f4c5e8820d418996c08f5e61c3c2bf33a6cc1f9b013a1f27d322e52f60c8b05", + "0810551db9164e5a79bf88a9491e67f3f8e97a616ce3322caad5d6d01676e03c056c44dde3f301e0bec4081b8bd269cc0dcd4332a5fa0f51fdd84950a601549964462617e1f0ef08d1e30d31b8ebad6143ff983fa1dcedccd7cea3131ffb", + "98eb792167f570f49b0f7cb4f9f9e7c5978ed0da6020b2beae103d436f5429a6d96871368ad035a6916f1e35640bca04b18a274f1f91235406e5b28e349e6d539147f28c56e85666e1759fda57c7e09154f87683a48b4dd1129aef66a7bbe6e9957955840270736bbb51cc208f8a9a07a0240685ec31c3b98d8d0380d1a2bd6e09ed1e978cd5927e806d620de12455132f1d296c8306df7e4f1de3d64727b109f5ef2c5609a227e6545dd2ed12587a926deb5b7e51ca8de13f20a66604a6831fe1ef7349b1d729dbd96c167eaea0ffe2910c3cf39a5ffbffbbeb8a14eec7bae1f604ed446ba6d6374d9e3f39858a7dc652fc4a87247809d54ec7036d281d603b2e6b97ddecba061f60d09a78ebe4005e787a05122fc6fd0d061f5b880110d8f0d53cd9d9803b5b055a1494d69a2fec03e611ef6fe0c43397f417be572b02d3ea26b5c0d12c085c986648957f958694349ff0440705f93943b8f19b8d30f07726a4bdd59dbcb24a488ba032d7b2e91bb9eb3f71de6cff753b793c11e0e0d01d988b1decafed" + }, + { /* i=8428 cDividendBits=874 cDivisorBits=706 */ + "0141303d6526df2b985193a954ba64c7cb2a03514c759de219eed157da89fe6cbf7579ac26cb6831c28e70edd17506a783e109a9332103895b94cf851dde237b33ed5202488708a022605dbda8c2dc49d765c0be40d8fed8c9ed4ad1228692581cffc5fb9dd55794cea55a13a0c9", + "014c52a59419ff0f155d10ae62ff15c88df61fe082a9a395398658c1f9f3844fbf4ecdb4e14c371c049618e856e9c3092e2f3a1cd90c5cbc24533273156be3bb2d119d32c7d4f450304772581446a345d3caa8048e6fbe4636", + "f76c3b23b5aecb55ac4727d09e09de9da15e6f9e34", + "410ae28fd4be7163f0a982116247e8752625996ad1d866a7f4bf933fb3bf8bcc5c9212b785a61aba19fefa3ecb3ceab7e5d612cc62738bdb2218ebcaa77ec8d3c22b99789cb04bc4dfab3d0febdc224d734c6180f2ae09d1" + }, + { /* i=8429 cDividendBits=1770 cDivisorBits=56 */ + "03d81a45b12da94534e5571bd7c62b8276c7a18287130e3d007a169b5618f07ab807c836e274a83bc90d296c44c3758a652326eefa9e281e151b758d6533a5a8c628901548492eb03e708f89e3636397d9690a224fce3556958966dcdbe45576de2bbe840bb9c2c837fa62214824d6d9ddcef29aece00a1be1970bf0013e99fa24a65f73986bb73f766db17fa94ee522b283f085d6ed3f02180aa40cefef4bad4be1f92ea5b82d32a33b6a8c53b224d7596253ac99cd08b9538a8581064d93694541d9e6c7e84293186ff947f9365cd044ab5b38cdf566493578a255ec5c", + "b842af159369ed", + "0557402c987547c1d7a736941e51ab23e035fdf82301f08f829c5d134b463fc4453f3db67fa0b7ca506a62873c89ac66005931d831e0dfb2b0fe0a7ff3b9db3537eaa1c17ccea8d0103c4238027ecf11580978daac107b784d104304668e02a0e0b62c9465014403513d4bbd84e0506a18f2f7aba2ebb6260d7b31b92a56ffcbcc4519c3722a5647286e91f89a8cc5d75db4cd95731a4e5d23989dc00f20fa5b6585571e9faf744c51bea7e5a1a17b43bff760a563b6077ed2662aa7aacdfcac733ff32be8bcbb59c84b4888b4c3f9ce15cf7b77d28b6a", + "35c739995e613a" + }, + { /* i=8430 cDividendBits=3451 cDivisorBits=2226 */ + "061ea3b792a224f9da2dec328929b1255c7f09d539425c7cc28bf2121d08324c9bc5e9ab2202aad2a50617d024326bbbb0d6875fba64f5d6c7333df320dc1d62d1a4a6d0cb8eb3f432c721e3241e373d9811e6c645666279f38d8129616e7668ae06980f2534a231d2666e1aeedbaed030aa3471423739929c823d8923775cb3ae103403bc191e41293156e792679bc90a6edb1d7a53253d90f0bee5776d052bc758683598feacd244eef20294db8505d530e3f46a5168773c6df97e549e24f1d17115ae13f4e4c7a54d09504e2b5fde2a8b43a8dcf64ae730c0edaf2dd6818f98090cac0ab8821604bdf42246f73dd757261aadebe5734783641fcdf13263eb68eecf06cb6c84d9b16c218249972ea4980bba57ad24aaf596950bbcaa997a60b51eabf5736c2a0b7632c822689a9d483fb6d9907f0bf79ae86f3c22a5b9acc6e8444d7389c1d49815c8e527ee08304482100f761d25b5796cdc46067454785198edf853b824e038b693bc7855a890fdedcd1ecc0ba4222b7ce5499199e99fef2d2d1793ea35cc7d3f5c41875d9548ba057f382a8b4efd10f98f913f3cd450ea0a5913709e0571c18e726105459e6ae1", + "01ec75e297b8bd2f95bfe964652ae551c54561527baafa5a17ab45aa8bfc2e9ef24ee43cfcc733648d02c61ed2035de6a2348d2ac58109f2721f699ec870e56ea92ebb6c22878a1dc0e057a4d862b437213308d61445a8b3b9097577e683eb70a6f5dcbc6c74b3852ce84769a4f38401946f53a12b395b22012599f1cc9d169aef97f6587a6a2a89cd8c1fdbcfe1506fee6bc5cb16596a08a9d0e1111d61ca8d1b6bdc4db7951b2085dab6b271128364cbfb33725409ed479dd4cecf2b5deaf43c2f1b599c0ca367b3f6e8b64ef4e562e03909ba4cefb3aa01d13bfbc7a8e9b00b2300a5d6ab8f9ba464ed6f9646b209dfb518d49df65bc408436fa90591191bf588c324debd615f578a04d43c6f13a2fe4cd731c687c7", + "032e66586de4d4b6caa08bde6a41f8d78d5d5bc276472abc6ce93ae28752685658fe337f918f627c1b20ea381f19c0347c8b7917f2465ff18381cd0648bb88f85a2c21cd58c116965086ab648b24151e78f6ca77dffe999374f5a6a8ce31c2f36b483dc334c708cd3279092d95317ac373c18d85937167d3aca88df6ebf1b301188c6486af0615633b904004df0c5d0fb9e043c8cb017d26e865", + "4835a36f4f3ec6ba357d66a293062d413d54476dc6daeb67d59b236c55315fee31908bbd99afa9340a1b3ba133b54bb1b6b508ee95563255829e573a8e96e8a7d0765051fba3c2c1696c2253ec836e6a38d3baa5621aa1ec8a99618f6ca7689c037d8059047abeaf070fa834d505f6a31b3cb5deeb52c13a7e6f1659717fa5edb9efe603fbfb4badeef26e9080a32bc2149a0d37a0de5ff893c6f8c2c19b9868fcf54a2051820b8a1d8914f093bcfdd03424646bf2d0888ee5d357e97e1b85b915289176535ee8a9e5ef519ece71ff9915196229803958da8bbc248f14190d618abd83c94a66ff4c733cb498d92240ed7fd163fdb947306e071e2df4afb886a78723881d71e45da4d65420720ef48752627764b4815e" + }, + { /* i=8431 cDividendBits=1549 cDivisorBits=1370 */ + "01ea87fbd94e603feaaba7e85c18e7d8e61b151139d6b21b2a5812bd7ac056c74881747b7d674e148cb72163a18598b2c7942d97ebbb43fd4a0172451a4697307bbc21638e2ff56f89c5573a1fd91b32fe90ca9f6f98b683e7462da18cc4dac41213d8da0d2007b07b2f9e890f486c0f85fb80764db5c77772abe7a4c31d9397d8a48f4d2add97ca8f1ac6d41a62f3518dab1cce127178ada7290d4f461de7593a2205de8c5b67676264ade1bd3ff591b65e93b0942492d82a1c585ed3aba5d5c2f7", + "2714ef839beeed5b9b75296d683fe51b8bb308ca5fe607df6ff04c21d47fd989a7ef1d79d16e8ed6824bc3d23fef05d0d20ac47a4428e1ddd760d11714fc7538f01e0d2a36ead78677cea09380d614f425e71870681f47c7d0a845cefc3aeb3e87b149cb2a6349d5d4932e4b56e1a104574691ff9bc73d4ccd16a1da19ef5be2db89127bfb0c776598bff2dec864d873a0a04c4c5c81a09ea295d06df557729f713135e4d4a77ca9dfb5f6", + "0c8d28c7b62b9d9b4bdd65814e158509a356b85d89610c", + "14dca75943b62a49c32fd860a5ee23bfe2c836595315cc2c1d044007efc9d24dfff28049f8b6ab14fc2c5ff72677910de2574f87c2d7c60a1eb5449aca928126710d5a4853df81d86a491cac127b59b2446a398776d96e4380db434b9831b69605047d6551e1596e154946b795719b06b6026bc0dba409f646a3295cbd44d934f8c995d0a153e9c28588560745f28e7067dc6b52c311cbd64d2fbf975310655a5bb8eb5df622d32cc1056f" + }, + { /* i=8432 cDividendBits=1649 cDivisorBits=643 */ + "014eb286fc21c14df909820487138409b508eacf3a67d865a3c7d871739bc8408a349c93e7b78eb15bc1322dcaec5ec95e1cb30848c05e7c84956ed37a4ea15ced59950930b17df07f880afa55a7fe476d50a1167fde3e4c9effa0590b3d3aa0716ba17413ca76161adbfd787a8e39d064afc07244faf6f67ff6ef25eab419d4c5eb8e38a61b88bec8925e9b53b79d60b57d75759d50f2525c09c067ca5d170a3f6af60ebb30f0c327f360801f18bd1514b9b361f0d4407d2ca6fd9f0bdbf5c8c993f007843a3f0d7add70b59edb6a", + "055efa37dcd959b7c9f051a3c87f210f01cc483325ca41f6ef19dce929c9f1065c0bd7ebfc17b6e7e0395af02be1ccacc591871bac5096655e900268dfe0e3e6ba0d7516dbdfff45efffb899594ca3a77f", + "3e50ca6e8c1ae9ac7799c24e0c69b131b3fd5c0f52cab5f34cdc39dcc267532c0afc32aa6a7506e5b50671ab3549289b5fac12ecf3f5e3bb8a7ac1c72b39b5f5af90d121520a799fbfabb4abcbc3284fe7acd5d28be391ec27f04ed18ff27124019bb56d387a9b35aae72479496feaccefa32afd1c5781bc3d24c124bb73", + "d7e74de5767a20976914ee8c1abee331964df87c829ad92a15dd4d59c4c9d5231a5a15497e5c530e1ba1f3e872f8e441c702612ad5c14ebf53e70e64955adcbc29ea38964a11f680ac02c6316fe4d85d" + }, + { /* i=8433 cDividendBits=3352 cDivisorBits=2112 */ + "fa690d7ce14d2ad3d78aa90f638578bb9fa83a8f7dcc427bb9b9184ae755e100923877cdcb6716e6766171663b31a8c73df25788db7b489566f0c215d3c2129b9e726e66212d7bb1829aa124b2390a9c46e36a0c6b01807931d0d210e850bfeb5725a2f2a1a0aa206d202a338bd1bdac5f6f6272059b2617657107bc7f9cddabdc978fb14a05aa19520cac70bcde293007ce39b6e02bfc963eea9bfbf21b3a6800a1385b327625c16f0ebb0e9bd0c52379aa12b9fc69f7e3e87b1de16b7f5a9ef13e3fdc144c2f7627a5d49b20c451322f89e64d53903b884b5e6080fba2a9d417d890dcd3d1bacfe4e26d9b82d3d7dad5976dd54e5d44d88126f86337e1ad71feb8a04db694acbbfadfdc04f74da99fbac227eb53ddd1ad7f3abd0558d61f7c81420b0df6a9495dd8b592292b43d70ae95349db2034ed34fd71c2f5945fa269c9d1d7c8db9b871cd9eb9db59e770f63a9b7f7a5fa9421aa11e4cca679271c19392b1f457296e62e7ca0cf6e6fab08dc8e370c3043b7de4bb3eb558d1091c5533f8cf25975f2c479d72a5061612bd9cff454de0bc9f2792c4348ff7e0a3d433e54c6c3", + "d3f049a5a1c2b6bf91ff5f83b7de23fcc89906e18bc96a6f3b7e997a2bf1d10788c3fef29148dadcaf1ace1cc7b4a8f3d9979bd77af6556d6164b78cd8578055cd21de61f5cfa855391bf588ef0c5d0a18f3065f55476c1db29b7d6c6c25fd3fe4ace0713af7a23370c121692fd31b5c8ce1d816f15786893b873fa60614fd028bb996108ea23165cc0f3d960ffbc0a9009cf7dcff7c2616a158a92a13c191548ad478ae6fb23c66fc0f7a2343c09ce93bbdc631959a5095983bf57952bb34903379f0d9af98490af6616427b3d3d2db76b0bffee298ca869de69430a1aea7220ad3e9f4fa5b2a16c6befa0ceede5882117edc38700fec06341bcdf49cad75b2bae1fd4252c9271b", + "012e784adb3d96634267fce15045fd8f49ab05287c44050c63322ca64ff6c129a28fc8d8cdf04251f1bc746bb247cf905687a1b7ded6bc8f0bf70415b8175eac1c7fdd4854656806754ed441ad839eb9624a976db4d5db419f6ed3b4db454e774fa1d5b5fb80a749c42d0f098857a23c21e17637a5ab089c98953ce0e3b02bb82475009214737ede512991c71fc283b5609f0f6865e3bdf97c5dbc0b", + "2d28d6eeed3eaff45c72534058ac9634ac6cd180c6bf96cbf927f60b947771e06598527c0a40fda17c5b6787070c65a468c4e5f96f728713cda2c88f8a548607fc9395684123196c1f19df781c467f12e32969f3a25238fe074746ba15765db958de7bd120ff974014a968c68dd69843bd2a1af7d9337ae0ee73ebb39625b00e4d47f9e7a1fbfff9b3194efbb561c85398f52d91a8082e2b032176d0eed409348e62781c262beda0f62e5de9eea09ae83a31c577515decd6243da4daeb2c0d509bd56d741dbc1cf15ef4f1d0c8b9e01524deda75db42ec09f7c1a8a2ffbd2e0e146b8042155232103501d589d80a532a86e2f2ce73ad10530c3021458ae314ea03af2c56ae29449a" + }, + { /* i=8434 cDividendBits=1699 cDivisorBits=107 */ + "c994875c14f7f0a0ef77f41db664c31d8c50b7702b08a4cacd93794a1035d9b3ff06b7e97cb88b270edfd7ab444f70c91f55f60143ba6c5abccd0a6078f05a48207553bda4e4a886b05595d15c8a35168514bbf21af4d2d8aec6fec7b4fe4499049e8baa3302cc1217b6f9fccb4a9e5e12d54e93fb8d20a98750de07cfce4092c1144a549ddf7991b1d0ee7e198097c3de604df968739a3cc95a9e83724b94b4b780da33fa50b127791fbbf323c37c76fc0053590be7d15307e79f5b77d00034df7468074f0d9ae919513a1600be9a8bc666996e", + "0646f0dac87ffd51cfa7e6764768", + "201d0fba6936d8d15feb0d786669e552394f01b98fb9c647f9caf4db95cec05dcd4bcd5b94a5f01720c25532276d10a1f757448051af14ca26f616ed7b492d3fa20defaef002c375c8ddc490e8b9dd2a14d4ef291db9dc6f50275f904ff785189caec11bd57c24b3cec9d66b7c9520a47a3810c5fcab15bea9cc4ed385efad854dfde9bf72d6f7ed4cb934359599598d216f8097bacc1e580f98257f002b7c78a318cb1eaf434453e532d9bbab1a198a666acbbd1f196cd8ad2c4142c125c0817f81bab4c08ae3", + "0104bc2feee49ac7a9f3fb073836" + }, + { /* i=8435 cDividendBits=2917 cDivisorBits=886 */ + "03ebf020b4c77f38314e641a9cc65ab83ce06beb133a43020b62ab797c39fbbd123fde7a841302542a9ba02c7845612eb0998c8d9b51c17a721c6ae97ede964adcccc62e148894fae2b8105c750ea3e8b32379a34e03e95c1cf5256872e31fae33dab62e50a25c4c51d885e990b122094b7e1e0d2608dd092ed4b9e0d9d9267cba87d79fad63317d2571f96b48478b1c64efd888011570eb21b513a8f5f98ed3d9bdcf16ae4da8bd72f5b0b5d3c6f77cfbcc794277cb69e16bafb8c5c271e207aff70b1ccc4d169dc0960bb0d53527014ef7a6df9d546cf968a98cd1e408c8af9c05ea824abc377e2680ff8539e6519c1b1023d95ab536468837db2ddf3936914de1d79618401cb2bf47c669c6f8f39ff7e09e3ef638d3ff9b6391fc6d7ff401c0b6e2559b2408bfe8f6c35a12a6d4ca2d81f9d67e41b5435d4d8471a8ef8562bfdd60e9567266aea55f4186afa10559cfa6a91a52e230bff05c4b7616c65f0d3fb342c2989326a46b1383bec3", + "1d8944a77a0605bcd0334fbcc0f52ad7ec8a5b54d936328fa1c1c75dcd5bf5833ab02cb5659ec0499c09babb6d831c9a1d5c29ccba1cf81c2550e85a0a474dae78b3771997d768b86cab69ffd1c66ea7fb6f6e29c42d31ae8505aaf2c001781be3d38416a240181efb205cff47b1f7", + "21fd7608a137f5fca035489bbc42caed1cf11d43ac7a27f8dbb08aeb2f4d792832c1bfb510b9ac3438ed0f0121a265d4a67982688f6583e96d27968a282241961f9e4cd046f5d166160fc1c703dc703a7448608ec771a5b50e630d75aa96c95137bc58d236392712fcd16065dc32d1482f53052e83b64ec5a68dbbacfa64d595db5727d012b587f47dad8c6a5cff9183db9ef6ab7cef84dacb074a7b02c36e4dbec97525eb68e4b4090cb344a8f05e598b6202fd9a1852d8b671c15ea38407d8774686da208ad91ee0f6a9a9c833846387571edb0d99fdd72884a1fe5797fce76dcf86359a38a8e68e5ffef6b44fcec1c5c93ff9d8c02e3ba8b35959e362", + "0792d292cbfffbfb52fc329add0e0b3971081f20c05daad10d18db3ba781bd434a0d5aa28938571a15d0f56a0f8d5bc7de7f4d0e13b9803082f584c4c309ec7ce24170a18fe7fb9e17b602d0d3690569fb050fc24410b354286af72f59791e31ca486e06d98107826495f409649935" + }, + { /* i=8436 cDividendBits=3109 cDivisorBits=1508 */ + "13f7df0d7112bb41c3b08458cb14d52255a24ac552b5b16712d188a61a197d598125d15ba50d0f82a3d300050fef8513298ed9c02fe31903f61441f41e054f0c7f9675761aa4e53371728f0bb24385d030c5d58701533f8f8e47662c53917cc8579a40206cc52df401d9cbdb6242633fc744b6832062f9de9f8384c61e41aa0b239b96207ce3d10339ef401e1fa9a6a198f7858099a7b1327b0624dc167e9ab9e9d290b3f569c9df4045e76938d0ad4a2989c99133718c294bf4989fbc6d42db32c0a2793b0c1833ec5d90e011b7c600ededb12f8e45a464a3519061a1b4572e908d87890824127b232dc473c0f23a676d18706ceefe4d70ba8d96e3c9e0c6c28b3146b3e6911941326f4b0c5236c64f3d9f8f28ac3bfd72e98c890c5d407c948d0f9c7621b378d2f348a8e9595efa2a75ebda970d0432b6045f8283bbb29532928e176dcc51f8811c6b4c76ebafcb93ec8fd26a05275df709423abfec64e652b981a2ebad6277d2eea7c63adcb11d4fe2e1776b7e32281f3575e1cd0478ceae8c0098ec76", + "07c52799923686a8b35a5b77acba5bfcd8d64f316cf46395c2ef057ff7e7e720a13fef9e1f51f504118ce73df96cc1fa80bd96e7ef829d7cd302ad34a0ffbe993003b570f420b39dff3dde4c79f02cfa093beb00391a1506dd1b4a65b86986f17666292a3710ef2da1a5c969bc71fe0831704bd015f773dfa705d4f6feba12c6a996f0c09f68ac42f538d1c451b8c3e3c57b41dc5ce1c520de80f3cc788da9a24b6039678747cf62148cf2aceb061c6e77519c3e9087fdc66c10e6a41e", + "0291e313d86efb12d00e5fc9b479f88f48f852773808aaf768e642f2e8013f95583e710ef53aace2e89c0181db9ea881b472f6cbb4720e9864202b624560d92dfe105ec960487b5255a8573bdeee668d05442b16383ba1e4cf82e094a65fe007f67298895d35b01af2c5c0532de3ac16c162314066cb4ff9a9951524940e8e9cfc306686f7da8d3320e739bbfec00c7c4faac5cc6e87b15c6a37bff20b3d83195559acfde1a71e815175f0f0ccf810abc7efce1f3ba5748868fe226e78ea8f1f218fe433133205e849", + "075570c4e44b081c2061471686a807528231613aece33452fb43190b9f9b6f8b16388d2cebdae0c0eebcb47fde8a6e67c712baa666196bec5e12887c841ca911fcd3a8f4c91e8b78cbead5e98202c45fed82d8fd4c8a9ef625264d8344b6e970360ceab0f7fea375ca851bd7aa788e312d663fafed3ea917b1149e712a587fffffceb6dff3d026a8895854b6f53a4f84f451ad140c826494fe52660948718beac45959ef079fe56c855f3ae1ca1ec0526433d4d38199ada1a11982efe8" + }, + { /* i=8437 cDividendBits=4008 cDivisorBits=714 */ + "679be822b069fbdf7483cb3894ceb057db1e63dcca1b173c43e97d343aebb0fb8d1ba5a2cf409315b91e3d985fefed431a0418821222de4ba76216860b1b7cea121972c20d7e93d889d9a54d370679b46888478843317d7da044df38ae9b9c4e4059306e2f40f7674d703001a86ebf1994516a72dc02162ff55ba4fd9e3a7876deef0766205226ff8af355b45030cf2480a62f8e2b9cf297554af44cc6690e5de31b418a7202f961df02f504c3bdf6f2a5ad3f4e8770e6bd281315ea371b628cd828b42ed7ecf9449a6003be45093d5e2ed4070445e6e36577f28b41d758310e66d35952a10363090defb3e1c743bcef158fbb6319f2306b1430917cc069651f0d72dee99b082307b3e9a092d3fc139a8914bf10924486e4b4648a311f50c038c9eeb91f844bd8a54bba6d2fa906e6a483d6d5525518f2c6950b5884fa570cccfcf4ff4b3e6e216a26fe8112e50b78f01c501f0d972d9d28c0ac48c17d14ec3b06ecad5c5f8af85776e276110668604f29c2ceff7bc617297aab00f707277720f6f99ae200877d16c8db9e85203e4182b52aa2413ab81b59cd1847961aeacb667bf5609815069a8c0b114eab9efbf628589d9d3a354ffb584893a01a192fbdf7077a0426d21fbff23ccc57bc7ea1ed52e278bce40aef694cff5241b755338f800c609d48f2e65f33fc8083e0f4dfb76ece0107713d", + "22fb3061f76bbd0425f885d4f95c254e6faa0f1b489b4912595e0ad1092d0e7ee0ab129de94736fb3634bea0d6bf76c73c9b32502b7d6641154aa28c8ffe38e09ff3ac79c14ef215965326549718fc579654aca7893cc4ae87", + "02f63ba837c966cc18c989f7254b5b49d5871b49b0f7b3ac59141778c85a2777ef65217d61baea0efba670ba6e5f9444dbc2599477c367842c801724c3ba3d670cfabdcb6faddf1e176250aed2fc5e6559798fe718e701d167bd5478e9cc514af8ddc5f33f9e3a8a591a618b3a904b7b6295dcf59ca9f3529972096cf51d5301c35433d6946a803eb1397c72c7d01b07ac23ddf902d1a0ba30246489c46c6457010cae244d0a127c431474eb3b3a61f428c68a52e1078ab7b17c335b38b90b9d283b16a8aee564646a30469c51b70b20c6011ecbaafc3481ac713270fa7cff786827151d2a8b6d68765770b0688f51342f0db4640b79cd34c541b35b074a2e921e28b0a02cf59a61e69fef93eeeebfc2aeddd4c93cc21db72aad6d36fa379927c3bf4a28177060048d7b6011e6674d702ab236f80ffa34ee330198a0845450108d0078901b7d32626d57bdca763b1745266dc69e7e5622cc411152daf5fc2bf40f04f697056bce5e067facc4a3518dc70b5b5ed3ed2a147c32e08f83128e954c0cf3367f6e05f21f6396ef22d8f2f604c427d694d3d6fda729a6a40010", + "018d0e4e2959774cab8b04b6f243b5973ea7175eacea38b9e638cade79535c1374e22d39726a319a713ef019820475ca73f8fd7d5f1c58a49a6c108119334346ab27accf0ba03ff46d33e5417d9c4d7b27e4d57a6fdc4088cd" + }, + { /* i=8438 cDividendBits=1845 cDivisorBits=1001 */ + "1e0ee9ad5205cdc9a5467785f32ace6de8e285c36d1429f456245d06c54effeee380a2a8290941ef8571c1719a2b1bd6c2061ada99ed22cc83f7bcce6e794c8e65e28d19f99fca89629aba7cbe2222c1231145b1d96498c4f630cf7103429e716c37cfcb110340a2ddd70fab59648dd1fae31ccfbaa86e8e463723d0029954d46ffb2e1722ae66a3f33016112bfe6b614d9681d5832bddd6581ea2bba4b90dfa8e7b2550bd15f9d0266de3f99c96c73f16a2fe816db62a8140d6a2f73c3a9e2055e532aaea19f1654ccf207a2a65ed1348d4a016d8cb4b1ce77b8fc164aa984890d198d8b79555", + "af30968885b81e4480648d095080fb714c4d098995f61283d3ca0fcd44a3e5c081c4c364440921dd4bf29016be99ac64da0b495b8ec5bf2d2afe5d52a0649c8033f7818a3ab59219ecff2da9ded0d1ce4156043eb58421be944b03516bb945b69c7aee84c0d842e4ee384bf3708d5e6ae7f9a0ee1d680f5735fb4f8de6", + "2bec5cefdfef2eb6b709fbe688f8fe9f8aefc41dd8084a2463dda33c428943aeb0a598c847fd2e2dc2ea4a2fbebbf658ddfc7a64d9969d2b9a47ca090121e4d3e6254d2d63c376949745e5eaa67717f00b18880fa370c0f109933bd6d39b0675efd164e1984bc274cd24", + "9a56d3304bc9a52559c0d252ac9b4eabf6a9e72aa9d7994b7ac9cc9dafe69843a841ae5121fa4a3a7152728306eaec3e40e337ec2e4dc9e44ddb002b043a716646af51e93d8bb4e826819233a912ac2e9e50bf62c517f8acd7c68b8b74f27e1fa992cbafffde2e22a6f59674852dd125169578b9ef84f507cc34ae72fd" + }, + { /* i=8439 cDividendBits=3433 cDivisorBits=1430 */ + "e3e2866b1ae5011f1cc85fe2eb3ed907d4cd47a98bce2cc811a20029f836a3c111d72063a76277c17ad23031d39f10ac5dff70c32120a476cce738a2218b40a68da42853dbdecf96115820ed182155af13da13b64ea193ea291e87d9f20c390b30baa19eb8e0fdde168c6f1e775a7826db7280493e049ee3b74df2f19b4c2d65587caa1bd95eee197d9f61662642c5623bb068f79cbde1519efa6fe6d98973b4d0082d446f0a2a9524359e92c0a6b95dd1aad9a638f6a51862d81a1cfaa4f7adda1777fa56ccf30a1799c6af735f43a58caa380fa7ec7ac7890f9681fbdb6afe6cb5bae5df82b41250263f3304d6355bb3c7bda18be967d19264f89d40b77cc4cae8f3b564769f1d5eecd06ecebbcc3e67a90841b13b54d0466da70e3b8ea719216c58f2707b5ae620f0343b544cfbe07c278a04080095be91549e59b7f5f0da43986eefbb8b9fa530d08406eef4736e09708723471e7b0266ecaba5b5f72311dd7df44a56cc2a9de33ca56b51f431048c14d3e973114ae909501bb25c2cc6d5539b2f543c5680155fad1828c372d9b0fe3bd86b140423079f61d63be2ecf1f77a57cdf1e71238a884fc4da745", + "1a514b2f2cbfed4b3dc1ba1b7fa22fe4c8a8e774e3d1a78a0085ded82651e4491ee59784e3164b28d9f533d9ac37c232e7e6b89a63ecfdbc8b84eba4ef3f82e8f74399f9c6e3453bb0b2a936d46cc4088e977c078edfa0fad257265dc30596b5ee7db81bdb4aeaf3e15c3b0a0c005a7c093d8fccb3f31d4884a8328654501c3a4489e7e366df1682439964bf83c931f9302e92688303eb3ee8d6ff96af8a8f902e99429c3ebc746bce4152e954c1086a11ef2f", + "08a8b721f8479d718845d96b859fa5ad43b987d642de4ec2c37e762465f746af5bf7ac7999ae00556a0a5812685efada835cfe3f84d3874bb26ebca91560d75faaa53de3f84b01ae64bdac99f98966e2093540c6d6074dfec31dab09ef63f9578ef8b4e947ab882009d5112ffda2e7a2559be73558758da76c7ca3855f158cabc8d6edf079618c6dab3e3e1426ebfa6e821d96448b1b1dfdd3052c4d32b6b2bb909a84c5a7482d77b33df5f9d93fa5a44942a610d4468a9d4bf9b5f8aa8e76127252b1a4f2a2e5dfb78777362708b90722ac06375072535b9d505ec730b0239f9ed50aca6425768359dcc97b590f29cd4a23d941396131dfee0966", + "14133f8fc898213e602528be9d3556b7e204bdbf961ae692a7f4cf08dc442d461cd76d1fbca96241696370ccb3492c23f65f66f9018fc2a31a794831193db49f4f28100e1d83b42b3b59fa80f6a1986a0897b1503f801517a2a4da37c90b9eead1039d6c09da80137733edb7af947c364e40c1a547ace19d0aea7d4ee41397c89b53507662a09aec4fb7e9b3538ca6666076a26ae0220ca9cda7149136cf2f58d23fd8c869a49a2755c55b0beba06ac90db38b" + }, + { /* i=8440 cDividendBits=3355 cDivisorBits=1207 */ + "01f2fde02845f3bd5000794824ad160f8e6897054258555aea250977bdc23e9b26103adee5d79bf6a20cad351a99ba8a3c930c59a5fab414841ca535c5f1564d039941bf76682c651708e804921999f0171f07c0cf878b8b645132075796d5f28abf52f745299c75645261d9778b61f92d41e7a2f3a6ad06458ef143abf15e79fa640e6aa0af41750733a7a4c0148ccf624ac225382cf85307ef760658d5fe744ff74fc21a5bf41fbfd8e836dd90dc27afbfb88298db5e4c3112624ac4b737d513746a48448a2c260487f981ab1efb2cf8ca63981e4ad479f8519a4f96a616ca9f4be017a0223f8d41d27fa5f5689410a328d42d09394a7c530f0328fe77158a75e3bd20a67ad118569f6e255ebee61a35a340343e1f6d6c6685e5ac690e3478821c3cb6571da35c45eb01c7bc009a43e6d94421a29e8d37649bc978a616f277618d1ade4aa8ee3b431ba594c5595401826e3cbc0632d73f80c595b7772ba89ce065b80530f9e5f7391b3fa9db3a1f7d1b5d0f6ade5822cc9f1e4c5ab7d2dba2fe419a293004c243d651b383059f16eaf4d5229a4df978dead6b001a427882ad40fd218c", + "0a9c07e2efa33c4c05da8fdfa75ef55bff93d0afc67d203754bd835dfa1828859a84d684fd4331b3736a93563ff1404de18180192951d894e02d9a97a5292f872e525cc4abd5793a701679ef6b308c893ead57aa248ecdd40a90cfd4e43aae41af45bdb08b89b455b7c76e26efb52c5eebc115a531ac5928843ca7ecbc3feb86980d9f099d95ada34e38c6be58c705dd7519e0261cd497", + "2f0855b383ec22e771dda486b6b3daa1e347d88b7e7b9658cc6c93c56ba121edec633f9a01a25583be1143106c9016c751249b7543f5b1999323492e5fa2f86dcc5e1ac683447d7263962981347d537088c80a1c9be00aaf4ba8f13ec7ddfe5a0b6857c2813790cabbb1bcc2dc4100cafb673aca5732db8c04f2ca71397edf32a942a392c1b3b63599b0707dce1dbc0da1c05db46b9b691edf2c2a161c136e5083169d85575be2120546c8e98987b75e9fbc5a828e19c90334a4940ab6e6c0efb2c59550dd6877ec5752f93c5f7cef30ccd1538fabbd27ecfb71fde3c2c06eefbbd4e6e8cec0eca87106b8a4b829af1a84dafd5432d8c4b30622026801b31aa14f7d0ca7a83453be8edfdc202f", + "06ff3df2bf46663b5f620fd9320c33b238415869d91fce837bd083fa0307f45b8044e6b20484697f229a24e810fe88257b9c770caab20df6a682819d3d700c808019c0f58c96b1e625eadbd0461fded82cb8d4531c847db03c83522a9b61080f5d2533660797707a9157c127f40fb21b5e4fbd8bd7975263da885d8c3511ca8da2eeee401b9329fd4b52604e0976ed562de20a6c5b39d3" + }, + { /* i=8441 cDividendBits=1796 cDivisorBits=1269 */ + "c96be3a48888f8b42eb72ae79c1ed8d150338f26ebe66f078f2ba06bd24e1adf8e724dbb91aa488f49a94ae26f744d79573dadcb8e85fe35a73ac205fb158945c2e77ba9a7cb5c13057ef7960bea33c43b2d0d2f9fe6a5c553abf3d6e8f68fbeb398735db618382cb51b2c3ba5e1ecd99716055428b794653f4e5566b67e35704b4bf203fbef682081736943fef1cfb99a2ee5162349d8b43f8182fd6bc7868f3ff48452c0d91463af75617d8602aedb40a7e0dd84a513fb2f689333c55bd1682398423340fb9c76155475a65fea77bb02e98c4f1f991ef2de3f5a6be6dc243e", + "13c5bbd03da8be9eaba0b11460e4118db9d967423eafb7767696538e4fcfd105989e0ad98a8c35c50d8992c392efe09374063adf1c153e69a1714d4273f9e263422ac2aa5a9726afa333cd2de39765014a46a9afac1e07de626275b38e7a9724d7564e1acfb4f67fa0f28877e454999d7d1ef90d8022e8c91548fed953051f6cab6fa9aca7b3880af2469eb706c152edaf53347b5d0c7f9affcf38f2b214f5", + "0a2fdf57d0574434006cdc1afdd2bbeb61ca78968af640d4d8b5775178b5e535f37ece865c23f879f0ede442209513fbe70cd5f5d691cf22a69ea5042a9ad9303796", + "131faaaabf723dad4bf05b7194070d27ca003f76f1906384125db9e66ae0fb8ff456dd16646bfa6d1e5d079ea314f6ffedb46cfddfcdd9a8923fd620241f3d4f28526ae76e9b52db29dc1e21c112a4df8304a49669cfcc122b0ecc3adfdfb492bb0b384186c9b594e15f0e39808fff64d65e6f199ca79144a848bcad3fd84540b2424819ee72cfe1a54997d11d4511ba0f096008d81baf830b705fd51339b0" + }, + { /* i=8442 cDividendBits=1022 cDivisorBits=598 */ + "68d8c0e861c48aacfda092c2ec5f827a625ea23118a825e9b28c7d1216817410a284d759847c7aef795f4927b549635d55d65ebe92e4d42c5d54b71c2e3358c828f8ae1157e292ef0a4d7dccbabbaa5a49929434401d1f20d76dd325fcba5b026e750e22af859f79d4304050ae58e4551dd0c54de45693f2e52c4792327bc5", + "324fe3dc6439c7d5ea943f6526e510693c2c6ae1655e7bd091526c53560d892adef67e375b594e8e38f89ecf78b24529a1aaa9323fc23f3e43bc7d7e96c4ffa7d003da19dd2e6086f4c3e2", + "02157c411dd7ee450bd2b19da6a38221be75730b33083aba6b287af2785355dc9c15de3f9c989c6b07505952b9539e44e0cb1d8606", + "0ce223b5caa2bfc6cd07524348fd8d32f1d6708bab9828ee689decf70f0d0f2b46cc7e06c358b1870020f1cfcb3f0e7687918484d8d47c3e3220fad9b1c8982667f2e47fccc091e3539879" + }, + { /* i=8443 cDividendBits=1791 cDivisorBits=1395 */ + "0f6b5a6fbdc0f88b0a6e81c2cf1ae3a4d0649b4a5d15a4e3cceee60639eeaf66f30c3ad61845e65e655b857e2d8f1cfe0e56e9ee11f06b08a4caffac38bd3d794c410c1b541baf53a3774a11d0e555c89bb868f804b076e6cc6c59bbf72043eba6311f1a804aeb54f116a6b5ed0fa6de133c376745db3377d52aef5457c345d4bea8c85ea7a90dcf3f0fa6d8ddb18984c6e7ee71d98aa1ab53d59c3ef8ac576355d666554f70d36009e3b1983c8a32a208585111350456d0371b5761f68ee6b8d67e500e228ea5bbf521afea3ec2991b5ad610a3998034c1370cb4b882930686", + "054a9328b6a8d3afa192d1ab76ff9b0f320f82dd8e1aa6d4ba05997c9476c1bb5ff2ff4698258feaf0edc85c53d5af31b751411bf49d05a2e48a9ea75cc6e2d75bde4718ecb6064f112b1fa7dd41ec7b225b072590c681b26c6a2f26a6da444c1a716a47e8ad27722bc1980ced4cedd28724a2b38003f3fa10a2b20e5ff8dea9ff922b5b452eec77d346469ac378ac81bd5bafd2683944c1e889c39b461ae11c7107cf10130c4fb56ab211f9670991", + "02ea01d0be43a7cc7d7c46bdd13b4346a3666a7053ee8e8d50cce01ecbecb255aaf988fdd86f4d3982799789e6d3fbf86784", + "04a9d852c40aedddd6664645fea1dc9e2125b1adbee7e686c9058551abeccaa6781a35132db16582e89293d2980738df54e92bad589800b2af5ef5d3baede11010c4a24b53d8f781ec6e9e306cbacbbc04f5124941aa10a72af69936d8aba3fca635527c29609d744720e377f0680163d30c6e784e3c7038284c269fd28a99867796e2dfd53d2853c5abd49cb603958c54b7d6fbf05d2e12c965d5b54f83951db6643956231c80d553dd660520c0c2" + }, + { /* i=8444 cDividendBits=2768 cDivisorBits=1890 */ + "2a12e7e1f4afc1d18e4faa1aef2005a384421c025a6ca9d7a55418228d312ab309feb90b99de1be5446a2c5d47ad70cb1d4999fbcdaa97d942fb96469da2cce46c36877e315a2cf778e768f00711bb62ad672ede2af398493a4fd8a792b0e334b91be5a0f5502c41d751caaba0dc5bf6839fd627db381625cab32c1b8aa8f281339480e2338f7ff4b46993e5d3944f18b9d9d8907d480ff761d35987fefd4af925020bff23799a219d8bb3ccb68df5f563c1b45c16a004006239a1437e3845ea6ec8642f1fcc57508d7c61db6f5cb0ce724c49a890a7894d2720fb58392f95aeec5a2352d680c2c055261152f8192e1077ff6e4f5e8ebe0c96cf1910bc4e60f85a7bc7d52ec39fd0001f9f619e5fb0702aceb71d11cd32e3d0c91c8d3f8e3dca15817db904ba679ad1b55e33dd5a689218ead2580f0e587cea5a63a1ac7d5d641bdd405f482007cd8f8adaf3b706864f93a56cd06e78e8413992", + "2ce74f7c7ba57893fa344e3b35402fef7db8fb41b696cdc8fe5c31d55385965ca4ba2d0093f3ead6e16f7bed066c6f1b6edd1da1f72ce4d980b44650e7f64ecda0768ae3dc6f9b978250c7601c50825ae71385a296c6e99f86644a542b9a9426b97cb6db3d3133ad81d0c1736c55c302c8357f43bbcbaa99090e1ae1c8dab7d516d9d4d4526cfbf5b397e628fdcce143fa3f2f35e8d86b04c0175345c5719a5a6c673f5a0fcf408cccdd8a37a20261edba5dc4ffa5ec5b395ef64173ea303f5bff1333d4fdbb80cc823aea958bfa674a27513232b583a654df3a2739524a3f7b64b4cae5ff4046cf00c80afd", + "efde174a461a747f308716e1ee3c3db3cc36ab466bc7c81ca585b9713b4154dddeadd5f5c0d32c9d3e17993b29a2680285343e07fd51546b7f95812b81be1d63867aa64d548b15ca24c30db443339dc0911df7fcb1b3849e63eda2b3c3501ff4c6e3dbf61fe47aa935e4ed4f9ed9", + "147ab34d1979631f8bdecb9cc3c326cb121331f69c0acc42c04c8595ca64082b90595ee8fc4e7b4c759f77424ed2001377153965ab83b0a6cf02c97418fa39b160745b1f64caa1df66e1263ad59f337a968b2ddbc4a5f74585e156c711b5407b3e2f316079b1a0955e06a3a03eee78b61f875788de7c42583308c5529fdd1dad6722f9bdad41c327895d431df35c407bdf0d6829e1a6a7ae555fc642c4ee282cfce80cc8c9830a1e770f859d43b2f2a83b61c8d7d69095860f5aef436479379624ea0202ca9904c2b088818a6536fd92ea11e975698aeedd0cce3e620298665b17022b9cf6910c4a2ad4c31d" + }, + { /* i=8445 cDividendBits=3867 cDivisorBits=60 */ + "063f14df139e7fecd95f53623ce82ec0045f59dbc6341601543e6cf55c4536d0cc40ecc1449c2dcc21aa50fab80299b57fd19010ede69b515cd6475efb95aeed74e29db73f2d5a1079b045a92cf1deba2daba23f96341a825afcda7297bbc894626162aa0954027737f8eb7adc86d08b32744c5d839e068010509161702c98200b314309865266276a8877531717230b9bf6119ab43d8bb933b4658f37e72d3ab564d8fa2e2b719c7802888a951c261bf312dcac748b59b5241ae7326ad976c5be64f75fbf54662f8982124fb48f9d16076b1e62fb0565b0180b3ee5e2084e319146789ad3cbdbb565e4c68c9eecd49b2ed724ddcb68ee2062aba7ce12d068feff39485f91ab4918f78043f473e4f85b1ebb22fb66b7c39e6cc1380494b701080538986baf703c820e8817747e4bea55d8987da932d83c1ca31a3c06a2416bcc158b066390d3b259e7bb06f8515535ccd54e52b4d43d10b144be25421f15f505b4c41b109fff6d3b81f081440c6385371ce2afc81dea67c3c92801565838dc8bc3bb3e7f3e840e1d7acf712cf1c3470a32e287ab48a6a1df645bea9e19976b7761ef8dcc3a501ec162b8db2c19b0e44bb611e4a3cbc39ef05f8bb9f488bb3d8329eaeadd5f3f81234be0f6ec90873461145b9821d9a908f54b8ad9bb1d1e91577940cc7f", + "024aba5169f6fe6c", + "02b9b55481c48f9cab010347d5957d49fe2594f49d7641a7b80746af30cab4309208ee366364f3783313fb9b8320794f6b03efb02b87313a30d665fec87165791478c89f7411d580610dfa759fccdb8faac11acb6d6ae199de39b4081fcf400b1ec73fc8ad6def972beec0ee6b7ca9381eea70f7554a3158b923289055516d908f330102292d216744467ce67f23a179c210e695d538218d6b3e26b27eabb0197d32f2d81455f53d73d2bf5ced989503e0aab0200f405b8fea55a5cc35dc432dfe4795810cec11563cba4b97b532cedc28e7a92657a371f2201286b4203f48dba9ff06ffaca30f683a0dbe0b6c6929b456d8dff9c9e22940c92838dc25bdca7703912a73567c330d113d1874802b166bbf2ca8d708981b13b4445dc72adaa827abc0eda8c3c705e419faba7209fa652b8adb9c96565b88289013936fa2384e963360e34d990101607c727582b263fcfe23ca3bb0a88781765978da46e1643819643e348e8c464a9d55f79c663231c886384e5512ffa59148a36e0e79f5b9c5c92d3c361de0512c9848672ea9720e99cfadd6d300295b119c41f5d40471d89242a53355614654b18a017eb98a85b8ef068f8e4386b5ae0a8c853df1e29047ddc137a8e32e526eda101468bd5d01199cbc602f2112671df0abcf8012d161", + "0212b113c95c3993" + }, + { /* i=8446 cDividendBits=2035 cDivisorBits=388 */ + "06bec3557d0789977493547d0f62f220826d040646de72d2fdf053b42713c83e843d51ea42d243b0de56eda355f6442222c82bf6e10e8e9a13eba06f0ca466c1379c5b20a5ab867f728f83ca1ad96dfd8f41f1fe415a1ca5b4d3c2d9d2d37e88ee2ebb46d95ee44dfe10283f205fe63279915e786c9ad264e2b944c56c633db4cc89d810c1ce982bd69a734b1b63f589432df0ca267e37a77443ed06c7245cbcc54342a5e1c9154d782586e97d6dfd1be5b5ff18e13974e053b821ae2bf168bb0282295ff1901904f1904cce7652fe7384cd4422d38bd7d487437203c5d4e31f2862b16916a5feae8fde7f766fce3c835c217e34a66fdcc936f117b382085c", + "0b8b1be9fb1db2f431f78867224d216e9fc1a1124e8d785cc8dba118cdb5936b4658aab7af7ed0c61ebf8fab7845ba7cef", + "9596be3bf3dd45c48d209266be8fe917055d06b39ac481ae5c4cb00bf798e1aad6cd533b629c5bb4a5d5d6e844cf64d117cdcfef7062c7a882356612b8c3d822f35b253fb5e05f38feb2d9f6c1f7069f22deb9625fc2357dedf96f349f6e979f1e04e2799048cdfc92a1d8a312b0f6ac23a6320eb17ebbdd43222b1eb53e9752cdf806e76a1552b922d9fd02e530916dd44a146b06e965620266d0ffc187efeca916ca14e3f4e9eb4ba8fe3f5eb2c8e46d9523997e08c4fa8aed0ed7c65500a6b08c3e542daca46f07df4a03f42d", + "08a619da410c3ba0b56e9c5ad7eaba3aed419b8eef03efd806e7e82b320175cc7bd85b30ad040c387a4878140025d94659" + }, + { /* i=8447 cDividendBits=528 cDivisorBits=177 */ + "7bed5feb818890c61485eb743170ba8fb4f0b3560770f2589f7d2437cbe80b419d8cfbf83a28d26c646d9f9ebc6afc08f3dece53d86173238b8273e35ae2bad8cbf5", + "81622a5d220c5be77afc15dd2609ac2b59711e8547ee", + "f5344a1296246971052c730764c0974c59c545d1d648d4b6a3fd68dc585dd8a4e9b98a9345e1cf9537ab114f", + "5d6b516e2fe568197a88336af9357e89e8f247f6cb83" + }, + { /* i=8448 cDividendBits=1973 cDivisorBits=1634 */ + "0f8effb84fea4f3183c93611a5fad1d3b50d0143f1b430b3974d09db16dc66e310b2c81a0f0f93118fb2e634a8c6cd9e4fdb73ab961a653a90c461c55e872d8b61bf0d868c3b8d293d52ea55107c529b9778247951cdc4106c012ef8c9960abaaa8f2bb82e5a6831e005bf648563224273515a9da6bbfb3f3e526f8ef997e3917b577da3736b0035023177b93e3e815128b24f4f5fc564bb7e63c9d4317f2a2bb5fdd65e9c9b779766cfdb966c518247e6523759cd27cb0e1270a9b1661babe9e1050d0a34bf8936637f7eab624f6656f4384b0d44efc2beaaa804d56eabf60f940117ff7c82e1d849799b9164d65aeafff4d0e76e7164", + "01397888c38f981ac81aacc0a408c4ae6ea3560d8bf01c8e08618732e4cf71ab8c00b8480c8de5e0f55a0ad695f5e788562f4dfd93408e5dc1d5e896969cfe74c1d35db8221202fc110105c13e0b3e9f8b73bcfd47f3b1c5d339f1cd08356e3c9e470496a5600e0141b2bf41f7068c1721dd76d807fb5747fe2c564d9e19317d71024f0cb65bc2cffe6ac213748f076425b49b1674c54e0b2d2ce39b2518b1700384689872ebaf18a704e17e17f3e0d37bab8d3ffd36fb609fa436d2cad84f7fbedf09bf44fa20548b4889ae64", + "0cb4c474897cf5b418aa3a894892dda5f89ecc96203193325d082eeb04315a609c19deedb172396f3273b1", + "a710abbdb0a626db7d03028224bd1cf0a7d16c196ddf58aefbc3b85a24ac8a909e199d81502240c240568136dc0a2b876c28c0f148c9d9906e75769dbdf89dd6b99947933edcac03096dba798c644d0445d2d12fc689594e3ceca520528d93bacc8f550d94693bf96dc4433b42871da25ae803b035c44efddc8d833a8b359df8b8a1cbf04745c7756951470f217731c8a16c40fa4fcf422c3286330e29f922255a3569ab5fa982f5de9992d4c97b12be70d49a27e629221ecda5be3591a23eec1b2446a7ef8eb5287b5df240" + }, + { /* i=8449 cDividendBits=1062 cDivisorBits=531 */ + "31d42c9752ce5939618b379d2c91f89227c6250b5187f623f15c0646c710c913d7ca0a414860d4cf7019428b86f67bda8ba4425155deb0b254ad2bd16d7e4b5ea991ebb7dffb4fe58b8871bec9974d069f6ab3ba6a7354db459dfe7ff59bb7a4d68a26becb155d2c8e3d9b9b79699742c5e8d6eff91e60450707dc7b2877ed4c22cb941771", + "0716af858d0eefc7186c60ab421b6acbedee4fec74038921b127df294f26a56d9d42a3191787859c0021cef19f666c9f1da768ba2e1258c9f8ab1bb52d587d60d948bc", + "07078796d75008d7c097c461201d5379e0e9fd242dc8f47ec55189445a0df7f9b2d1d20efd84f12c143cb6b4be8b23f0ad436d5423e48d651167ff71f3e02bdcce4fc4", + "01e9a6bb25b605c446f8b41cb170731fe4c01f657f905955abb6a5f8b4cb4afe4bb6c6dd8af4c1b8e4979b7a933a6895d029f0953260c2d0afaa1364307a53807e6381" + }, + { /* i=8450 cDividendBits=2971 cDivisorBits=2418 */ + "030f0ebf40b471b6305a5e6c87d2429713a666fcffb20760c9f90cff73f236115ac302e702196fa79046f7b5ade95e4c6b59a32cc7da1bcd3035a6828fb3a315902c50c5934a8d484b50ea4c04d9b055b632b128e0e5235dae5b2edb654005763f089d48464d96c32572841a485cb45355766558ecec4a2d3ec7f003c0946ec983be5ef5cc29660527e7310032741682bf49466154ee388cc329f97416f07f64dabb651e987362f0174dc6e38c0d5673d44651dc87f3b3bcf6100b0412f1c5a107f52b81c35881338f85eb48aab72a8224e453df5f38399874f202846919b30c682adafe61544da8611b1a78e3af846a2b1f5f887e2816473c8e04a8a10d6f1668c43b339d8160087406daa12ae541e9ea7e2925f3d38caecd41161ad600ebf5c5b76d135bff4a3c37aff106f4d826e5a0d35b6dd9506961632d24137dd8e347cb1cbf05e1d1b8c3e807c2a05ff07b03c6c42fe9d53c3fdde1cf7e388b9260f48181d765374c9536896c06a7d10529e2df02b296", + "031bd159c6ed6b35af71c479eb579f750c423ff94af37276c110814bb886f0ad1344652a691c8b7dfd2f399b6dc771b35dea7a5728033aec8d7f94c906c1367bc133a8e960a7da6976532d03fcd4a77575d3b229ad90b8ea02400c95fd40216f51f09377b114e745ecea1365288980696c857e4b64bf9dbbea08c1b603f13003bd70c6d2cfbb9b05975ddc7dff9257d4742db6ac5845636d5b4732ebe285db34f9eaf60e5994289a01094a859ff3d0d6d560d1e8b61790071c3f7a2508e037489e761a0ac58df83d610b7decb23edf65af937881c8e7b3ff9be8e699da0db30b704164aea9ebb202f52816d3f7489d9e11f2d0e5414fa990ade6f0948fe6ee0296029aa787a77198c1d75e4f30bcd72b128852ab6027b37c72587ce4e4fe4b7f27e238c9ebcb55add0c4376941623c", + "fbe531868dd870e87371b9325eec3335c2651cf2fd41b461a5a32cd08960b5143570eb77e42411740481ca9b39a58ef125ec8d94510162a4b72196239beeea6843585fd0e6", + "1f6b0ac6886c2e479da7e63b33e770567183cab9b6ed5f3b2f0ffd5cf7811f38fc52c909764086c466373cd9dcd65b3b552c8f51e26dcd29eaa89b3f9f339d0c3cc28a4b75762777c3259b12bdbbf625df02d0fad416e2e085fe0f4f79b34dc69d2079481724bbf03ce6e9700bb3b6ad7266001924c0eb723655d3ec9fcd95c6d7144c79f387c96eeae2e12562dc7d8d9867164c1b15d7814d8665487704ec629ce046a1c1c92c4d3f2826a7e1b58883db839b94949ae1026ee0c52767b3c93c41831a74e62fab29aa99b7cc43299a6ba5b25f51185ff064582927f057196381ee968d054f37bf02ae191d8c41ec678f9551c78dabafe85f30f2a7b7c8cf77399eece382baf80b1dacbe51b2bd019bb758da4580ee73d7851feae6326988150c14a57fcaebd97c6c3bd91a2fb0ae" + }, + { /* i=8451 cDividendBits=1065 cDivisorBits=919 */ + "01eb40dbe21a4790be9de73ff6d293ceb5d2e78a449aea8c947702112e9ec7a1f6bc13b08f540306d5de531e103d4c44eebe855780b911d28cab1d7ee12a1d7add62b0adc7b8e3d3fc76bf0b409b9163d9d963d83c6cb6db2a2ce734304c11511321756f976a3b7838de1e04bdcdb210bf92b36ea122805b26909dd97d1bdb05ae6151fb56cb", + "54d4987ded985da9fcd39ed06cd74f440c5bb860f0ba2474ba40bf0f644843311792992ac4d0fda42d84165e639c50739cae3831dffe1f337aa6124b3589cf324e41fc05875ec4e76bbae2f4012f69b320f9c3c44a20b56760d5c541a938fc3ca34c711b610b89e6687997a3ad3ce2a8654663", + "05ca7f23194aac40123c0e041d888ee9657aa6", + "39e0bc9d33fc150476ab064705a4f201143c67eb1189b9eb7dd5fba2d57da0e6a7b865f2d95e2602fba18eaa1f71b3a3745c6a74a2de398421a01ab51053b35b9b6544c5365642012fa346dfbcdfb6de29b1baf474d6068f38b80060cb1fa2e5bae0ada9b22fb7879e3bd81e32ef38fcb58499" + }, + { /* i=8452 cDividendBits=2484 cDivisorBits=138 */ + "0b715d200e0e9b958a533ab97186b1fed66a7898a684dd83fcec4e791c104f513db531efca95df3b1e7136255140b02a9ff95ccf3c306981e4841c1a87103b329ab72e5040a08a6397721dc91742ed7b205f291aa4584d900441d535a25a52552dd4b4d29214ed4a4ffb3ddc478ec21a7753d5b8f261fbccd1d82476c08930c2392f332e781595caf4b397e5cb5e48ec12b29cae7f0608f2c23ff63e0b31a93a73a81c2d836b0433c48b73f218929feacc21222e24f549585462c9e1c8f555c0840c76c292136809e182e12bd08070a18dbadbdbd674317ca1a707fb9af069732653190890aacede6c33ff5427d40e8e6cefee04a8f2a7c3f8a7922c79e995862cc03d763168ee82d23f1065a08494c58c20f00784fca3a4a019fec33305799000d22c517cd7273355727e9e272cfa586c1f1fb87d8e83", + "0231bc69be218f73078fea061c5efb62d334", + "0536ffcf10aff0663816726155b321a9c054e7ddebb9917283e6f3a7b265e0ce08bb0e2994e59ca32661243f67615ab05bcbaeb6687bb9f6067bf813b989b04b11f00582dd44175152b03faea7904b81011010136c550c178ee33d1f9cf1e6984d17b45640b73b540b886ed33de583a5d293d67302e6140297490d837ac0ecb4ac6afc74ed822469c096fed70ae302df2481ab8b360294a58f641154644d8d6f713fce600987b7c20cb9111cc31d26b5bc24eb5fc3309a559e4ea199f28a3a8cd2dcb166bb69c01ea8aa4775edd088bff01722534ef4ddfd9fe13db796cc7ce3419e4879942fa295f5a8b22a9e319223de7bce0b35c324ccd0a7f78d3eafa0a79b879a583855f40828e72a3fc107e9de9de396dfc66679c5a52b56d7254cb81af0d3e4905f4b", + "01cc85905fbff3c444074b0c507548e96247" + }, + { /* i=8453 cDividendBits=2359 cDivisorBits=1731 */ + "7ec69285fdf8e58e63a5fb8d35ce2956936178b7c76828d268a633e165ce6acd9c5d06d7686182c337337edb687ccaac9d4b1120faa8f34607008eb4e879437dfe4ba3d13c093c4ff0e241d50e0b462bcfe1aaf68f2525f529c6986a20c9817fddb311ec53f3e95e0033a0fb76e170e04b3ee4eb0a9a727fe886e34661dc34a49412df9f2dab93b608faf486bd505b77351c01579fe7e8469f904378234bb3d786e6a72a3b7f7adfecd33eec778e3d0b55ac56a4e79e172e473a6601abf81138a857fcd5dc2fdafbdb4392d7540a1fa44e9feb295d67861b70ba2fa99a0f9ddc5778f5739beb857999566d6645901c9f93fbb95d4509a48c49a081106db286a4cd1e7dc802afd675724640438bfb92dd340db4284ecf6011007be5197e2a67de804c42240f9ad0", + "016e549c4d3bfb08ea14dcfe3f773ba939886c61be3e0aeb35ae2bd3cf3e583a5a3d9196cd4888e4284107e79abc76dc3eaf7a3443c01ccef1cae1bf95d4e3558d520e451f1e9a432162db565393ed4f2677e0bf9924f22bfea438293f3ab720967be9ff6f12600ad98c413d8a32b4222ab8ee3ef5c64fd43862d599bc3db0d591783644045e98ea1d98e280cefbb0278eb58bd004afc364cc3d1de58c5962d655b0be56567867f17d3509c132599132f02ede801d632b840b77cfab23206ae656f64bf9b05612d6672dfcb91e9d59086e026ae8929af7420e", + "5897fc3249aa314aa6e6d26f0010deecc80b7291bba7b20b34a74dfe95adfcfbe716205f5a5a613ff4c20c834910dbb93e345d44f7757541730cf89186277e007499a7f0667e91144e3a4e4bb5c307", + "60a5bd8a30b7da87fcd220a4711a8fe7d762a44e8f42db5b41f09aa8e5933e57d3e89f63abe25e89505fb0d06921d37921b952fe337a2e902ba20cc3652d9f12af056a79597d4c87f49bf360fae812db45e8d5ebade79c82e98e222b43cf63885e4b75e5fc2171e8982eabdfacebc7c2de86bada7bc941313d77a35e04919fbe1faa7eda2fc9578ee27ba284660a9d1e5f5be51a97c9ef19ce7d4d2e3aad8dbb74d9f53f64867b99d320d70ca620d08a8c6ee84b2fd85019bdb4be5156219a976a4808e2d58e408747c24b1699f831a086ccf6c5c216226e" + }, + { /* i=8454 cDividendBits=844 cDivisorBits=758 */ + "0dbef6ece1c7d5f304fd71d4c800c66040b9cc35cf2517eaefba4b048aa3c9c129f850517fa8041d695b781af248947b61f2aecab167d45b56f9a1c5ef23334bec41097201215c0c11de90a9b98384b3fa0ecd729f6218c5a326e31e910cdf8e228ed0f5858df6d07892", + "062dca8da067122cc93045bb78546a859e658148ae13159327fcf9a28fc5506296973115a439175d1b173d48bbce5f6f416e2625a08f4cb7a2dad7fc7f02a7198a468825387e52027feee4c1ee691fa028fce6383cde32b38366e678a547d0", + "0239840479b76174a33c7398", + "052fd94dfae0c182617b1193fd1407c4ca6b505528270f528a38408fba135fa21dc878ffd6b0b1b6e295d3499516f53c6819a5867924fe26d6d48b276cbb0ec05fb25619b3eab8272aa0e53dd6f837e72d209e6f300002661706cdd0ab6512" + }, + { /* i=8455 cDividendBits=3656 cDivisorBits=3469 */ + "28fb8098d9dc31d31630a615c914b0269e3193eb08fe833016672677fb5ffd5b4ac143303824f1aed3a0a70e3d46fc20ee3c01d458d3c290bb5c5b6ff407a7e49ad5d36c5b352483d5ad5f3aedf798a333b14aba3a327e9ac3277f983f0eee608d1c8aab10e952d5d13d881564297e0a086b4a0a0c0c6ff036a4be90383bfea62050449d05cd16f64b4e7700cd09eec3b9eccae05cd795d2ad105cb73f8d4721006f1581d5da2355b31d36c9b98edfccf73efa8504497f47ff64e924d35f7a6dcf3bce30514678c28b338e8ea688160c2a507deedc2deb673da3e3cf89c7bbb48f1f416a9e1b4f503f7b33d585b08e44fb9be43ed8ad7ee0c2b250c044e56f61dcf5e43e2d5a333179920b7720c2f41ef454a7b88ae23de890d0c9b99bb162e25dfc9d7285c898dbda389b9a5292451e21270c597020ad203c1310d3aec282dcb1f1791e5f4c87c9b03a2afaa1d74b51047f593e7bd0c1aef126b104e639a7352af18c67611ccb07ff3c9de2abb6591f32203b7790487cb4d3595e4ba292d4e9fdcfc88d95b8a5df97f7a8513913fd6c42ad64c76837d57736547bba71c329e436cf87397e893c7a44cfb43efdb31a2d7915c19a2e9dfe0ef3fcf849ac1813a21d759007e9a5780de8", + "1c06ba2f8f79a24b134a5dda33342426c3ad7776cc43523e77219628ea85d3879d135f3446f0f30fa9ba869861a0d34969e8b493ddd6edc70eff15829dbb9b170af50acf065bad59edae299c6218efd0fff88eb740faf4d0f0d44e74bc624b98ee729ea7982433aa1328157c4b165ea644fa4dcaa07b8f9198c26b01b3c6a2ece983839312fc60498b4d3a0ceec3747e271c59d749ab3a9e7eb86c50e5839ca1fe7dc7b40808bf8bbf4e1df8c3b1e213d164eee66268688b11c6d3f605ce667e7551ec6ebba285a4750a83e3e8c62287a10b5c9ccfc5bdb7851f889cb3c8fb52af58bd8d82ccef84d499fc432cbac8ed8cf0110fcf7267872f9dee77a3490846da87c01214628aa05b90beb5466df54e3106ae826fa24251f1a9b8d8dcbaad6c23b3d1c24f014799577f03a8692985661fd38b1a3cd54b984b3dabcbaa065664de4765b7a130140bedcbd395759faa0d3e32366d1f51a1dc9e1622673bf64ce3523fdf4ec596fae490b8f6e7443a15fe70c2b5fe39eff66ffd35e1b8d94fa67f5b550d6bd260164e175a0935b382f5162c3a76e08f9118983246d064264105a517e7542b53930e12fe857c850850c00909c3", + "0176585de3a7285335fc230cbbd8d87753a18242c654978c", + "19eefba5c1c90b557d8fb4522b50ec9a7204bbdf5634fa64a7e9239ce4f3ac219d4bf64b4e2fea4190306734b999a3ec858e7908d866a86e041d92dbf7c43094f544e48e9cf6592951b6d314929f40e35c675ae32758a8e488013a2c0841b12ac6616ac794c0914991cdbecc79921611524c4d6c8465e24c9413ed6aa09423f53e5b588e01d5ab3d14fd1b6e5895e5d7b968e016d2faae1c31b0683bb18af195b68068543221390e1ab32b7100156ac33a9589d58d68cb2af532e4e6060a5e633e2c1741141bbb533fba5d1b87316d35b1e1ff665057177155586fd3768318a8f1766eac1db2cd8f3c70a612381fdfba88f6a1a9a0f357451950439b68a9de422da05db5db38c582f2f1c4480cfad81a135d9ebef847c7d1fe7c2ef6b9d04cd169205a3c0b7d8d60ce9026cd6b600f517b1e26c43db0cffb6735a49a9bc0099348836ef173477f633fba9e4f27e328f211e13b50919d45b2c4d720cde841a603976b248b218a82c6df167217d5a74973a2cee64c0002facaae4f8ce553e78ec514613d1f90518b9f3ad62d78c7d631856387f2d3fa2fca8c725d82740531bd7f06cd4565f063cbeb08c13ff54fb145c8b244" + }, + { /* i=8456 cDividendBits=1479 cDivisorBits=855 */ + "28db3ebf4331821021df6d64b5e0ffe7950585f4e6ba5ffaed89e4afaf8315f9f57f2e973bc2f2322cc9070ae430240bcf2d07c1d92031de31d30b8385753f018beb20e549a68bc835ab9aa36d0c70eb243e1227c5a87269e0ccc46c4669de027425901d1379a467cb0e3e232753452bfba10a26247b0633e03efa98eeb5800a9d426b1f4f968a045b344c70ea4361e0092c0d29d23935e8f30d5fd0da81296d469a7740c73b5f28a43510bab0504509680d0f646c8c5c1008", + "2ab7e5958775d4ffae533d70fda5907630d660069d9e476af8034f8b9d03bf83867613618937bb0892851831d47039f0f037642dccfc3384ca97745c3ecc3b7511b6ce0567c6b7d0af6d73c78187bd5174d5189b10577060d24468d30056ea0564480175e4f9680666568a", + "f4d78cb5ef45d40964e3c5e1d661aa9c024f3f8cba7d66adf06fd5f931b507848ea221af2301f286f9c406072e7698ab56991f3b0751360d5366dc45c02ef4b4342922f23d427e3d3985c6196ca8", + "224fac4d9b8b2aa7c272fb3dbd97a89f5955abba06ad4da20fca3780f4b9aed3ca39de44f3d03ba410a421b4d6a21ca4a413a49ac6ddbf88b3dc71a36d80d0f6b00cdd5ac4cff93d6aa769fa20be7bc0d5b584bc4bc6235e0856385effbb5946debb6c9e265ed5fd370d78" + }, + { /* i=8457 cDividendBits=895 cDivisorBits=600 */ + "7da018ee96aa0f2bf5f71fa6fbd2291814f0b7fbfea8261d503f9b2cd68bc729494098057de4ea1028b0a1adb5641c3401091cd319ade58544b284d2c02f4837cba13bb11b10ab4537856c274ad07ba1739cf362bd5eb2c9bc001d807316e042004b559f3c952425a512b30bd335d479", + "f030ac8ae8c9b78b71ad0656f34ff841a388fb4a610e18ebdba4ea681bd0fc6ca1396c4f509e88921d374446e18e680bbca6fe73c3b2b9c3b7adbfc17a06a0832485fad01c9265a5d454a5", + "85e4f2f1a98cbfa506fea5ba4cb85db4b1591f751bf3ca5d4e0dcc4a82f0b1fa8d28e749b4", + "acdd6c3c5cf48f446c4bdcb0dc92f5839774188d3a041393c23de4f111483b152fb51e7588c83e686006e42f934e882ad059d6d19350755540f88c99ea12c511a2deea48ea369684e44375" + }, + { /* i=8458 cDividendBits=1380 cDivisorBits=1096 */ + "098c7be8f88a77f57882a9457eda5f95bc501ff806353df0cb64b428e995c77ffed4448d6023229b8952479dc0c2b6b09716bd3c204a45576ceb428cad325baf6d56b8fcb7c117f0d36f28ed0d3852fb472c787ae9910898377a13ed6d3b53a8673aaeb63dbc80ffee1933ec1de810d95032b851ad2ee6562d172b0043df26daa443d321c7b9c12884845757f92eb865ab817d81aaed5e83567a4eff50c8c6c05b25f935f2310e1616131c4e43", + "292d69ca6fd2838eb859baed4569b215af15a8b6d81b46ee9ae7fdca10d63de0269ba88938791545a83a9d6599c52b629cc53436f4347a40cf2fd6eedb91cc2488f3f4a6156a1e82ac5b67d588a073dc9c0dae75aed67056be904b86f6e78c73eeaa4b6b0dd2b494393ac385640552f053cc5f6a225604552e91520ab7984e665bef07226ce9f4ddc4", + "3b5d5d724e2a86f6dbb826d08a999a83fff9837e02ef48c2dc5f3d5a0e19d5b2e618fddc", + "1ad4fe0ba92e2e70a2bf6e142757a22b36b54a190b52d4edebebbd7bd86786698b0299ff2ca6f9324cab73e04cc6519a0fb21d37af50bb6c54ae55abb92711d6e4fe9919379e4c2c4a74b1b6847f14a21255ad0eadd6b7c32551838214ea30ea559ae304301d29b05da1dc7da941f5f9d44a552e955187d812decc7f58cd5f1bc7dc94a8cb232305d3" + }, + { /* i=8459 cDividendBits=3046 cDivisorBits=2722 */ + "231ead2e0e673124881fb26034838e0892e09a3c49a134ff127a9ed31b4bb02d104917d50ccb9b1fedb07d40713e9273811c91f8c67966864496e3d7688e166b664613a1537a33465bb2f2a133bd3b3e49c6e7f7ecefd1d083969ecb5950d2e4dc1b881ad989ffce2d9a8119b6e4b5b7dd63b7183ef9bb69e04871320f7ac75b517c68ade6fb40ae49d5a95a94aa5c2c30d4c43a3f27cb9aba6a62a06ea84ff26ac549344f2caa086d75e08a97d4e79cc06e038f697cd7c2deac9653544f3d8c6876ecfb794eb475576d41852e853bd4b094e6f3e0939a12fd9accedc0e6f429978c881029e6aaa86492127c3dd27a7f1096952eaa317c89ee767da92a1d0ff80eeaa01939c9da10ed4c3096d4cb8a8e2d89d6f7acf83f5a7c2e7d9e3aba80ccf5064e09ac389d7a763512748a8407fa8d8f3bd9dc48172638c1b2b56d03f1f6cd12f141ff261871e6335b0127da5c7a90bd878d32eddc6cbc873f8c6f7e2297b735a833eadf0e6691761df9991adb2c6291e0ae1b620b7255bf5c15d5", + "0164758b319777ca74e8a25519db16efec953f177c133830b448f212bba028a5d5fd5adbfac0607d2fe21cba35969d73745fea59bd030afac04baeb2d3c5abcf77fa315566465f958afa0096b2c3e87e73c237eda445b050efe1c399c6c08480035d283d0bf30b7851642dd3f31735b0ffb45a602f40befdbfccbfeab206eac6c477fcae795981522990df39009fe067fd7e59be9d20a7b746c15fc21121419679cbadec125147761864b72210b9c080f73d00da72e8e9bc136e34c5ee051d07eefa47485a38b47431b15d1b68ca992499fbd4317b13f28e0d6271388ba75094dac0dbeff1547a124700304dc7284c8fd751e3c952004c8748a0bd107b2c78b45ac0c9a400b338b378687dc935d4066912923a96525c493d04e353e92ff3dc08264448ad76b0145112ad6e2b5931fa1d6be8c6ff140eb0f2b054d48489686807832727b8b32f0ca32fdbf4116b7d41ec445d002c43", + "1938e0b2c383e45ca57c601c07ed4a4abb216be83c1113a37136b0430205253c545e3b3b66091a34d5", + "0d8fbc7a4473ce667e59bc101bee392da1b888cf22eef6ec89cab290ea253d5fff10bd05c664c32b417f827daa31d02e6b7ba678d9ec8b815380089f12fb1208647736ece1279ea1a52fd0dd21b162700002ad8726503365d82951c308c3cb8efc4958509ed6e6165184aa058457e26dc6e48f0e2d0c20e0610aad7b20c6efdfd40ae7c43d2d74532482302a662389c96b982930a0950005cd684244c94a5d21d79b513e9d387df4238fcf173f846affadb662db310ba50d8daaba1c47e81df65858974ce6f216743d6218ee61f402682b8a6b4b52744c12f82497dcb3b630db9d3e58dbd726a46b602e297b0a30896082496702960321f69c71bed423dc47a01bdefab43249f46798ad229dd31aa4cc395363bc967f8239b340444240b8c4afa1760d1f7040cbb7e24976b1c11a9257490d9ca73421b9c1ffb80d3ec8fa5531f0e91bda653918338535b2477a47734b7b6ba616" + }, + { /* i=8460 cDividendBits=2710 cDivisorBits=1990 */ + "2303b0a5b84bad6308248934803b8b00d8efe1462d769f27f322ce937584c046a7563d1ee5bb0eae9e1c2a1d858c78558bfc7e166d47244acfbd50c89c7cabd0fd03069607d770a57b668f029bddf01ff4da54d7196f3b19485115e7dc46777107328b81e1d2803f507f18283a350376efe8a830103f7d2b0006641bd5d48f362588cd0e88f0fde352afc0af4603665f36bd5902b24cac59b9adc6c8fb35e630e7759608e7b72c69736643722f59336f91cea65c28c7068fe1be8567bb12e1d67198409006f20033a936343d6e6583da3b6a3ed0c94dd6203383f2f1e8ac28d177f1303849d7acdaf88f4438c315b4c095a398b45b5c53031e03267d0520945b3621bf77c02cf561519aa6c44095036ea97ec8c00d3a23fd47969efd4d88fcc32096a2ba2fc741fde14825f3137917ca69ed43f3f40e5f2e141ae2d5e6b9a969b47fdceb02c979b2323959974ae8dc0ed55fcc", + "3b4956b110bb07ecadad5f32864f1cba48517e0688704528dc074ed9c8e03a2b1d2248595025333b40a4f1a10ecf918bffd35519f0bc8c6e25dfd70ec6e697c62afbf5bf532c70ba8456830ebac7b511ea3dcb965f1057581edd0a2b459b2f153138f7462dde07b0d6855b5c97ed3643cd11fcf7c2a879b1be6a9dd2f6c6f77f32548c6314b95046184021eab0a3a7c0bbd866001eda9787fc03dace62b8caab47c334128fd4ec6bebcfb2308322399662150e69bc7416267fac427ea26636798573b565100a7b1d6245d29054b7da51e3c10926a3e4428cb162f2036f7bfa5e73ca1aaa6ecefdff73ad505cdd716cadf12a519bdcaf28f00e", + "97315cbb1915be54d0d854b6127d86750c190d2d394da7884c836baaae294685f673336a7a84a61e374192237bbc997beb88430917e44e2dfc687152f957d5d726d7892f09688db4f7788d166aa507104f2c44824d55d183bf9c", + "07682517c15faefd63d4d06c8bc7ac7368edc2e8affbcab64c5c39cb4e00c16ec2ae4592f98b5ae033f323503c52d1c452e7d1bd5ab126951aae20058c2cbdde0ba4683ed4dfa4750b05f49808a170e8656605a1501d8f8fb5d8fc64e2ba6e16803b5eb12e622b474084ac7f5843ce3ec9a230b878e4f9cb3a7d3e81e6b6c8ad4faf9b97a593afafa8a03eacc21720ae9de19870981f8b09ad9605f748210ecb88485e114f763edd704a4144774fb59707a319b379bc75736698cae43812feccea07b8150b30a5668ccca18fd006fd581cdff6da2a3e005ba7b4b48efa77e7ed71526a51974da3a927e10846831aac7be3e5704f1d819ea544" + }, + { /* i=8461 cDividendBits=1274 cDivisorBits=110 */ + "03b21ca14bf890bd5554cd39f411dd89aaf7aaaba12c55a855dea2e37f774c0863918ebe115c24b8f154b2ea6dd0f39bb10ccd34b70f29eb145f325fdb88aefd18976e4a83d287f3dc522021b0232416f1720ea4d13c377f4a7b60d570a707521093705a69e65fca399b406319842a893dcd07f3ec85b6f9f262f0d292b3fe32474c05cba4e92686ebd3668c12410540c317b2b2956dbf623debf7adca007223", + "0cb3662c630834f42b8a2e2120ca", + "4a7e101374d9c05bd8ad48641d2462e81ab6b4406672c668f781f134859295ddb0b7996a6f86445c3afa5be24165b80ca2636decd89aef90a89d2c09ec5697509c127321e0269233868723713434a4950afe4f1fecf42a3a71c32698a838b77629adfba802fd259f8f89f8255a4068607082098a2d64d42c9338c9b261a30edd104f487725745ba1c369a8a8decb7eea4377", + "042d58614d6886bfebc64861563d" + }, + { /* i=8462 cDividendBits=2833 cDivisorBits=2097 */ + "c9473deaab0b25959c5a35fea8dd26d245f29b4258ea3fffe75c5e34303d0232ff2644e918c5ea342d8f9eccc354a170bcd1b8f0e4a4872db8e5ba67aa6c62160694197590dfe89911aa24f10acd0a5b2c65306043561e9caf6418cf03d7dcb2bad7ba6f9714238dd4fcc9299bbce531e65f824d5b48264e0450cb217792e48661ea702df4fd61deb2d8aa0c7f7fdaf94e6c9330e7979605a4f0009b32bbadef4debe6462157cacf0450742082918f641d047c6a9627af1cb1f46a81678894dfa2d579e94d5f37d6d870afb6b84a6599e4e76b06804e6a15efdfb9f8ed544c0b531dc1e15eabe1f0ea62c7db7237d285426dce4f4ff97ace9ea70add878964de9fd331453fd06e8019e186d0a3b88940f41d9eac455c8ad864fd216e78ab14f53588d44113162f685e5b1e3e0cfb0d266a243de15cf01d3a8dc380069fd5598bab4aac4820d4ba882bbbad8d49625894859e331663bae403fc7dcd816b2bb63c6645", + "01a8a25dc55bf74ef532ae9299aac9eccf6602a083f4f160eb6bd19cef855af350cf372a1787b9303fdce601684a5c2652f35a77da03be4de9d6ddb553383108128feb9ad21d69b23579bb9e77b655123d7dcc07d208b33020c39b0286bcb3417036cffa04072497e9fbd64d33954a716815963ef06b4327b5c6055f9e44200de121e4bb596fdb81c2807473791eff3efb8e2c31bca8320e5e4843e4938b4eef53b08b2921a9e1502b5715c17a690484b5a94a20f6f485d60b7b3a88b10c866589162ec1e8d19393cf5e9aaea136f58ac9d9527a96244d94e9861a64db6c4a4f01a721857ad6a8d19b76b870588afcc7f2630626555aa4548790b74426df66b606f562bf2f8c4b", + "795851dbea035adae2a742c1cde38d8149943e75f909afac90061e93d308803760e866bd4262eeddf128b70ecdecb27d402e79babd772cf36775dba8b6532ba5cd268d7884ece16380ce6862f8c87a77eeadbc7be04a168a5383ebf2", + "0723454aab5c5fddbc07dfd0fe540494f54e46ae9b576b3796ad3eed1557e7895bf50456bd6f4d3a6355784eeee3275ddb7c6c05b2ea1ff00a713ef230e391005c261990594e358a1b8d6cebb8c7b7931fbe641ef371c446208e399dad8f92234a8c1251b5ef17a309b11bad1261240d0a6ec4ec62560056b60d41d7c6dd5dc8a3fd53c2323138ff6e6022ffda4e3e4263bb869c90008a87d5d0d1747c5838be28036abd8963d49896e2e83a6fae6cd6b6a068d8c8c3498624cdea973c6454c1cf77171daedb5241806d964161dffb0cc2f08ab66202c4e5ddf7f42665154d578661692906a0e7db9e2f96368abed9b4ce0fbd9c5562db852398cb63fefc6ec97c133a1fee5f" + }, + { /* i=8463 cDividendBits=743 cDivisorBits=141 */ + "4c6b8452a0b38c6864956657f8931098bd9855c4f53dce3e799e22d4c3dc3af10343fa7406c7d9297bc1fdf930bf0a1e0804457ed022b49ec1f4a354f241da7abd2d9c7d1d9af7061c1c889f4812ee65c69538b307e8c2e5ad740d208c", + "0cff09f4b94846bc75f2c0544aeefb5dc4fd", + "05e15215ad87b13fd7bd51b9915d5d84d43c0c9cbe826d9bbc3df61d4f90a84b9d2d7571b35a5c8c308a6db3cac6ac3dc5decb30dc820493a69876b5b9ce7ca3d2b648a07d23602559c82763", + "0a6277dfc6149249ab041aa42fa81b1f67b5" + }, + { /* i=8464 cDividendBits=2347 cDivisorBits=1178 */ + "06176e53aaba2650974b50ea2af8275e4cd75e793ec0e175ee826f8707a6e0da4b2e8a4cfbef0ac80aff07f266d5db592f8904d386d435f50cb562f3af3391a1c66e88082ad4d8d4db46467724bad290733448949b895573593493cbd05c6940727b6126b47d9c2d661530bd20499b82748675e7a2e5435ef885e3b1d1c944c7cecf4a8d6069eb5cbcf504827baf318251bcf1d30ff59a0a4a36254e311654f01c5a1566549db346a27cdaffdbd1a7235d38e393529bac9273888f746475dc5050ee706bddd3cd68d649514b1174976eb254d860ccd416c1b69a302d68d84c4530448357114dbb1e50f5a1cb2df3e8d54e2893e57e6e2c60554b7a1bf0d7259879ae378cead1ba031db1c86149d0d1ec9b1161d5dcfd360810bd8150f8d47af1ee752439ace3", + "e502458f685db4493aa9384d4da3a9b104290201e400a96a5bbc1c1f01bba115288638c808934d505aa5c7e91a0b4e016732b19a399f3c0294ee12bbd92d6726e0e6d102fa570fc19478b5077cabea8a5a0bb8f7d8641114be2e7f08810c7a43cceec385689bee8c312cd8c887e22f1bc42188810d43b8e954f565cd5d2358f513aaa1bcbdad7913034475a2058a357e8898fd", + "06cf39f8c8ce36c21a39a7f589d4a25df8801565658d7b1d7e49f82adf5582124edf10677f58fba469da756d0da144eb801dc0a5b49e7306ff2c9dc65eb792577a8c4bcbcb7ac2925bf7597722e8404e09bdb56ec4b64cf4bd3c4d45073e96e3e93a7a3d330ea67f94d341b91ffd0066788b82dd8f5eccb8008ded6c6bf457b4490cd1aa382088cbd3b3c03936374395d885dd", + "18d5eb5ec124f51de6c927d37f5f8e1553ccf5562110b7370701ed4ac909f73717a62fe0390d2c22fb5092854d8d35ffbf483e6d1515783b1436ffb23e0e02d42ee376c89f3fa048283190ffe701d324014a5198e74ee61267ecd77f3b1ba438a29928910edec5132329319662c7ed4594981af55dd4a14dcf04eef8425f9acbabf1a9173b4b4c60d36a2cea972a069a5a297a" + }, + { /* i=8465 cDividendBits=1530 cDivisorBits=526 */ + "f179459839eac37c95cf3a4999a6ae2e8e057474fbd6f0490588e41dcf2c88390bc38108085ca4f6da371b1239f3c915ff192016c89a176479888866238b82a1bc6bb58c9ff969a1fa1886a932e0557ad0d5470b867957b0e78d291c1196d962d3f552cafbd8eeecfd42793ae9ad51f2bdd78e0f8ef21717888a635c1767a3ee13b1cf2aac08ef3fc7150f1a90c73736dfa638695674335e767df41fc235df9e75ed4874195809e50ea4776003234fc40c915e2b1a4e5d5330cfed27637f98", + "08dd2bb040a2ec6414e6daa5c14a6769eef4bedb9264914a2005706b00e7ab8e9a10829eb2bd696310a41ed76d1c318d6dc6919732c37ff4c7ceb20b95f9a06aeec9", + "1b3e02de4aa9f247f0a6e8ca0be7e7b1aadf90629b67f8a293fc212ed3db9f492e9b00a7b777a99c297dd5a503a8681ef3d1854b37a642f8e74c13e90cf3bc5c2f156caf2cb03795b14ea4c839005c84ee8a21af1f154dcbc6c9b1c0cc31767f952aa7000f7ad1527c000c0308e5db9245a838936efa15a460517c2a8d84", + "0534f1fe89b17ca3d30c937fcec0f8750d67444814439fe5593e898e90566049d87c7ba7ceef0544f118343f415939485b5e5b524f018c4174a84dcff30e01c1aaf4" + }, + { /* i=8466 cDividendBits=2048 cDivisorBits=803 */ + "44f1dc55c2b87bc983674c30e1854fdc91ac93af256210b24db7c1415e9251390ed38c844c34a236a1e9598e881cc741816110601b5077f2f01a35b26e3e60f2019c422f46b6c8cf5b563d48bdb2d1efa5c85220bedd58a63e9587d93cb9c975e96b967479cca86ff79dd45b5e42dcf716b264efaa5c758f4f855015575414d66cfa76ee3078b9108f5e71a815396574cec13a24aeeb3b2ab94ce085e605bfe741b8ef8f5b881b2b5d91cf5e4327089655913d83b2ed90c35b7470691d9fc426941be6145ca6152163b5ee6a3a338301b42e1378dc25a025577063de2b1db19bdaa87e724427eb74388d7834dd961465df71f1ed6d43fedd4a9cd67ad7e4d8c6", + "01afde000dad1f4d56c6362f8f3f1c7fc892a48c2d84cef042102f05de5552b4d7caa2daea88f5d4b77fd34ec2265dc304a88f15323f7fcabf0a9119dede430665062d41bf739c0672ad3c5c2c444dd042b4c7be8180c98bfaa54f51d5f0521b6bd5bb0b4a", + "28de64a8db631856d9d1e4d2afaa1e558652c5f028d111914f88c31268f73f2f7da2c03f142d126627005484e941c0907cd20b4acc32462ca1a33f34cb985aa57d7fe7cd9bab050c90d8689c82aa2f836719e98725e24b75529e86f7dbcfee51f6fd6c4ecb3b945687371d29621b19eb40ea16cd137cb3f42ab4c9b31ff4cc1f6daef2699ec5f82577cc6de5c018abd4edd03e86dc7c5ca6abf29d96", + "0197c35e5c339b9ff3abdb3024cada80fa32d3d76e89c28a2fc2aa5aa5f95a4efc9d72056c639280fc001141817bb7fa1c81de8e9b9db4e5cd8e543303e0665ffa2263fee11e648b1a9ec972601afa0724e257fe4695abf9b282112f6c4ccbbde0cc6bd96a" + }, + { /* i=8467 cDividendBits=1019 cDivisorBits=852 */ + "05a991ba4bd5505aedb485e097f4d91474beedd4d205f832429e3e5255682f451ac759a0c36b1d9b444bbb34ad6662ad0f53ee396ae0a93eff4009cffec45ba602a127ec087a5d0f2db609d9a06db59ba6ee7d6ca4b5a8c0413ffd599b8049a63536280d8d65ca68a2eba68e166d2abb233687a0c47bc3ab24b05e1ca1f426b9", + "88157e5d1f5566c1f69cb1e6384664dd471e4d8dc0b0d53f545d9b6df9272c2f844ee6771e207324ca588e3e003330dd8af00227ee741e0bcb9943048aaf9b8d364cdb4c86ddddcbab7cf56931d993a5f3f93d866121cfe0e57d1ed99fc476d95b2b5c735253a4320976", + "0aa6eadfffd68fa93e5bc3981a8358f2b1964eef2872", + "7becd1aa2758b8ebda820d2ed4b252da75feb88831bbca22e904afe7894244f5ed23bb8602289a4c36158c6e46f768d0e79554af88f772c0593ae24f76e178568022591e7082489dce63e908f832b9863ced911fb998c818b1071c76e5e3782aa1b24cf2f878e907802d" + }, + { /* i=8468 cDividendBits=3896 cDivisorBits=2646 */ + "8c2cef2f66d0958b36e377ee3beeea3c0ba03009051ca775335af869fb06ce462ac7a44be16050c084ccfaf3e557cbce21f4c5852791d28ec98e7117b15b01d7e4d91e8ad53e63af36d0b31cc0cd1c5ffdcf0bad41fb3fc618a5e50050b7de1f304f2a5184ce819a1251b0254a3244a0b2eedf423dcf0aae46eded7202ec1d79c0a728a4a51fc734fc12ff9d8a07bcda1ee729119d1bf6ba9b1eafa5388f42bd315bcc50a88fa55ffd8408affbb1202a4477d067212bb739975947381b7dff5345631e0bed724641a137849280300be65a844787ca8ab8bb769065d32d5ada6fc0aa071dba9fe12c9b80a392b4258b74a54d6389295525d5e5d0f1b627389d90b71bf0b123c1557253f767dd001b7d613b814d82c97c1bb57d06dd1b69df3fad85c3be735c16bf739a5b63ae1aaba83330c939a818bf0d7fc673e1aed29ec2d1d61602943e7cfc61c5f5aaa1e262719012498bf7506d488219e41942d5f3abd105fecab3bf2859a5b1c810b6950dad5ae9927507989f6b748d9638979e888b6af89fb14a23c9212cd14eeb0205764515cb44694f9d27105144f26aa5ebc977133cd757c4e2e13c1556d1764b8633f2111fb3a59aa5a3927d6d03c24e4c03bae639db7056ed25db47b46cea8ca23c5f5e972ca6573d4efa57786a6319066811a3dfeef062100f17", + "34240071e59e6b9732a9ea4a2aaa6edb5d85a5cd005db1b8e92499fa95c04d320791982450e0be4e70eb329cf5243393aa0e41198955e121522207fc8136f12d8ada1addcea31814d5df4c7ee8628b1a30cdc0322dbcd357c074e4448a2b33281ae85764556931d64664c45c4259c5989841e49ed17e6a0e02dfe822589ec55a3f9a86595c77647ddcb190e66f3d8b34393a177915306f052f7d852f68c7bac39ad4a9dd4b9cc442c7e1f68e6f08604977c8fd9f0c8701b30d4674798da0808a260320500883375bc627609e7a335cc751dcfaa9c95236add73235c0f6327e3150ebd67b63167f8ef7d8a1ef3fe76f2964330455aed467790f93f321ac541fcb4f4535734c169b9ba2c6adcfee4509f6d470b6f721a6453720c5668ab447f8726232fe2f8c6ead56c4e60a31685f05f375eda5570358d1c93658b97d1d38711dcd501a4ea6dbcb14b00659", + "02b03bccb3446d5c669a17a4ec0ada7cc226e35e0febb44dad7094efcf854400c4fc16892eca23534af1ff6c502808426b2ee6db430497800366cf26a926f5f53c917e109cf65d7b68ad38e987767daf813894638cd40ba1bba2e43bc9c2e3a8a6e86201024cd56bfa609bf06fa7c4a8461ec0e3571fb10d611f4038b5c784f6dab9023cb736fb8d3208fb17a2a67b555a906b7d78c153961a488c6cbe", + "2e00a3fe6cf4b30d9475bf2941ee3277308efb4e43aa22ae6bdfe17084bb4cc878cb8d52131acbebfdf2b5a0ed3c99fefd5bda5481827e38ddc327909544b661666b9d56741fa37f2b4f209809e3a270c86358aedafcee0a9b49dec16835a7860423935886aed0652e10fa0ef4f7fbbedbd8d9395d1bf6854cab243629ba9e2cac50bdf357e9a674d3e80110a378e754fd949c9d00963f25b08d8108a70809d7bba3c78e213769acb3e6891e9fae9ef92911c7442d276f43a5812c12566a41f6d3b6427e34529fabf8c8d046fed83679e0045a779b94e1d86fed95e692d72ded305f8a5c2c73db3f2ecad017959a7fb37e28dc6936da2ef78f40720843d3f96c3483455cb7ce5eafdc2c471e08ce90f90c5fc05cb3fa71fa91fde1c2179cb5633a7e867708f0167d50f0e07b28c6c7c6f6b562fd653e2c3a392f616c4f48c3ac5cc0f928fa84664411cd09" + }, + { /* i=8469 cDividendBits=3097 cDivisorBits=518 */ + "014ccbe7401cd543409926b78540e4a0342eae36add3a9dc98b2e6ae308f7c7cc45929b6614fac059e6a9904a2d3c9b355e4924ebd5a9ec2088a8e156d565f675c2bb85b47358f8029faf763b0b80bf034ededb96cd1ad1787fffef6c46d2aef6a96eec0c7bf6f8d95a3a4b5a1c73885867515dcd81fe1b7a617657674210ef77cbfbee2e69c5546db1a6f995cd09455194ab85962b3cb3375dd60b1f01f272f0dca52a55e04703afd65e0f5f4b0974a15a73e34c5bbf392692b0dd4ccbcb5cbc462be45f57ec714b9443d2b4ab6edf289629afdf8a4a1ddcabf9dbaa2998b25e737ef5695c2ad6612ea91d086a675f3fccc82934a47bb7a4072378f40cf214519efb9fa3c1e927309fadf8a26ee97e0d490758159a38de6045ad02db264faa8c91c3262a9ff696af34c0cd87ae7b1a9e9464d54eeec65b128da695bcd3bfce698490ac1ff00c44c72fe9a136c35d2013ea9e35af3b20aef620662a86a8dbe80d1eb6292752456e26b1c645a4fbcc4229ff32aab44024ce74b8cdef476123d183a2e4d03", + "0af0fb0ccfdb7c6c9c86dda8799488394a5e319387f5c1f85b8467184aa9c34e31f5213372bde5db6d06bcbb1ee8b6e1b532004a89fce1b57491571aa816d62fb4", + "1e6a9cd16e9d8cc24aa5696104da2ea2aa2fa1a9c1492b587e4e441776ca6a113dad2fc7b0a660dbe17ac48a4e0a2ef4a68c0a6b7ad0c914fef1f689eba6ba206736b36cd99329b1f4542c28ea276a90b11a8ba113cf6c44fce459963f9f473a7c37870fa3227699825acd85a6868ab569bb7dc3bc3d1011344dc2cbdaae645d177b7104477ec6e3eba995daa3d7fc6d88051428668f803c56ae50be44dbdc58fd447eb6ef573fa2faf8503daf8b85f59593c4dfd0f478c97acaa2ebfd6da82f94f00e3e2f6ed276115c659fdb0c51ca385340c8cfa1a96b5e67cc1bb72ff1b4a01cca849c7962abf9feea8ab586ca5031da816e47b6d8df4b09d8a70e2c89e6e57431d7764e8dd349f9ba4d4dc032f79598842dfcf156d984e2506423c43a0245c9fc2ec20ba208ba1a56833608e0faddc011b7d88913ad0e54970079e50f8c94b85d", + "07b80d5c343ab06dabd7401e5b0785aff1fc63507d57abdd6fe4d9234361222abf2209211dd0f8add1540ca5678cbbf94d40921255840797863d4d9827f805989f" + }, + { /* i=8470 cDividendBits=1024 cDivisorBits=547 */ + "e4b9f6d94824daf098216110b4c846a43a3d22cb9ae589ef317079316582a249620d02b91dc89b990b4fed8e9f85c8d524ed951262dcb758cd4a9fabea31e693464d654d73a44636845437953d73b3973fb933eddb950a76dcd633fa8c232bb3f42a3a59cb32a0ea84d915948a036c5265a91c7cf603fb6b01fdbca883e8ca8a", + "028b3bb52eddd0e160c73e4f749d4b2761d15fa8c18d863a1bf78a988a105ba424ea0bc8f4e634ecd7feb639618a16a4fb903047a4c20e1d1960cea2879ca475a2ae7c63bc", + "59e9953016b0e204766dea5924643ab97d7d0d09d7fa1912738ee93778e83e378b54c046b3620c15383dab6fdc911b5c868e47a0e2cf99a838848124", + "0161abb3ab0dc256b175023aef8b684610f70a63c1a39f46762f2693e729389618c3767ad82a5a919909beb4c3c21a0ce893b112197a6159c2a65e3eb667483a86bf39081a" + }, + { /* i=8471 cDividendBits=2139 cDivisorBits=739 */ + "07f8d43b5c706a587b09363b2c7e46ed501290f45a72053a09a8902d1d945c9590c2136e410c1d9b29e10eee4ce8fdebf2312de59915b6e2ce45e815d8615279b8468aa4236d23b2047ce7863f82365a1f72223909f171164ed5a51041d0aa6a71fc003d9ce34b17f5d3be8e6099431bf72a579c3dd3dc6fb24b3539c8f39ccbf2c79d9ea33cc7e2c8f3804ca276101369815bdf916a150ea2f9ce4053f6785333fd9e0ea6108dcc28862affd87ed215b24dfa95e8c28da2c278e8fab86ec642f0938b5b868ddbcc6a72b3df94aa46b358dc8da84c71c80bb3d480d26ef42675c8df8ea000cc6691f964382a04fc904c4d3c092352c8301aa2c681c742000e494d950affd683a5f525d86e46", + "05257020078a1acac4fb3fec970621c9974be0cb504344445c21c3c8e5b8190180c6798a0b09983946372b297c6f54a5be45430f70c9c35eb898e61afb00999ed93873308324042b731eebf7ed1da7026ee10b4427a2e1d2c0dc1faf66", + "018c911d034a570fa6f493049679c81669ff3bf31b5ad5bb9bb1b646f7542b2a9f8d172c919d5d48191f242f99d365309442c72cfdee2a987f094bf3d4ce60e1ff63935d4e21497eb476d2193e7c2b72a87323992b5e9dfacce809ba9a5e97585c1f181c30b134d25e3aec51d09cbe121ec54e95988dc5f94d70a5369394bb4d02cdb98e97e8bd4e13281f50258b00c30c2977eb45993d43a905719719c36320b7be8f20516372be8321932fda5174a4", + "050d58c0ab90b8edec284c0f544ec4c55e33bccf6fc4960323fbe735c44cfa4114d955e6f331a0dc5cf1040cb13cd7c613f89cd16f12cfb57830024eadb0632bc176adb48cb88d93ef14f899ef42324640b12ff487d631d78c6acbd8ee" + }, + { /* i=8472 cDividendBits=2836 cDivisorBits=2446 */ + "03819799f083e266b80cb3b3c6b8d53b1b5b04f6311387f666a0d8d82fb2d9b05388c763c7c720b6d8dec20c65fc6f7b3b9b41ef51966c23b4f4a8c7b2587005169277b832b174f7be994eaf7814fcdec99af5958510a6cd422aedbc93779d164a33dc093e8f935bb9bd03babf89431411d971a523ba41a01a25c0e1c3e47a6d81f1e440e8c060c1eb6546e1370e1dbf2d6f88dca8e88773e19f35dd0a61d8bf26edc3e09284d14a7887711cc1a3f030b90998a4277c025c90d87719d8768614496fffcb48c26eb5b1642b94544991db21714bdbc6ce7b4c08a7d43cfe0ecac8201bf966e924ffff584c796684573fd4fc0fc3618834ba55385128f019103270755247ceb02ba361ff3824a981c2bf93d96b42600b47a257af08288142a153ed421782efa7e8ec8630a8637c317ca1228259715afaf704eb59ff73c603d2a0448839d6be29b77391b084ba5b98e2528f24915c7d84394d4dcf9bc28d596501c96dd4e4", + "300e850acb3812eb612a9c55cd7b6cc3eabae3fa721e509496288aef90a52fc164648def7fb3f462194b037c0e0d8b38c6ed3f878194646e4cf5b26f613d62a67c75e3a58949c780704a8d1c98e30813ffbd63c7f537c3056178671948e1bb5d4bb996002fd25ffbc9ef5a25866697939dda2da1346fff8e7cf410338a51dc4f5b6393d57c11c4c8ed9cee809a7e3e6690a45cfd04fe3b84dd3f174f713ab6eabef785f3df432755bed823b950b228e6fb7e7fd5f3b15658301f18b73ea979f6bda40990a32af2512069b8326d261ca570d06edbd197f8d8bbcebd58afb7f22dcec6100bc7cefc224d50d33dfbd0e2c41496799d56e4e9bded07892a4eafa3274473bbf061065e85d49b66e808ebd1df7d35bc3a0c0282ea90577b5ed0d1df29f44ddb2d5cf4ec647bbc5d86bd5f58e7def2", + "12ad822a154083652b82cca3576d445417c6c6bbdb894daf8759920a8efa5e0d2cf5e3a09346b002e47cd3267fb5bb841c", + "16c06e7d334bec6794d960e46f37cece150bffff85d58b1325da2bea1cd106803c08ff223d0ec8ac276be37ac34fb98a3272bc5c6bb81eec259d1f88fe8f2c81f3a0658d6f5f5a7c5371de69ebe642f7b3aab0e70398b1d6868eeff13495d2eea0a1ab69d067310e417c9d82c7bc16de7892f5fcf82ead90a794c32934e309a1ee53ad64fc29e1154e526b7aa7067ced1c4844f064fa9366ed06dd7f06bb126840311e3a22fa292aafc60babf91f30cab8b0bf8e4ab6f7cfccc9f3fcf2a26a23672cfe14a486a01436677ec36488855ac7fa0948ddc427e9370e35668460e7c163ee2e4d018e7e10699efd69d5ee6a4e06f739e5868436fee588320109bd0edac99943bda5b6c7c07c128e436d2bba074c67a6a5524d3d221caada62d32011250bd5c46426adf711397c9ae01cad8c56aa6c" + }, + { /* i=8473 cDividendBits=807 cDivisorBits=654 */ + "2fba3c9972ec1afc800c9cd8a07091c5c4597ac18d7344c2cde1bfd8f278aa2108565d73a65ddce5fff3718e2aa29bc0893de55a1d68984b4dc4258c400bc11df46ba11870dd0d91861b15762187834d2d73005f61c82e1944052085a297dc8edb7baeff96", + "318eb4bcb66570faee1593522ae6e84a43f855677e02df0a8731031615938650e96462ae377ff2ddc5e6cb578348ad30f0709d1568daa39d711a2f71822293ad3e69de499aa4de5c73a65886519b4d0ec930", + "f68c048bab30ee5ecc47f081c390a9c1fdc6c5", + "0537b2beadf26304e917b0daa807d416005615ada12cf9406a1dfb437fbf4e08f091393c1b0da3e0126c4887f1c11224fb7469083140a56145c0412dd3bd040c31d8cbd0a38ffec9d0613a5086c5bb430da6" + }, + { /* i=8474 cDividendBits=2659 cDivisorBits=1262 */ + "33c544f565d8986071a88089be8c1519de307f05832c7fb9f557d8e8e33787ef7b99b97cfcc24b8a030456cef659e6ca4e8253b8958c9ef990f13bdde7920eb278ff3e57d4b3d18ca3fdcedef9d6353260e34d1e2bbd9fa95d38c0bac2c2ce72cdfbbe72616da497d28ce2a7f30c386722e3c8035a27cae26b2cd6398dffafa5dd7e5a8b5588590f7413ac655d73e12bae7a2c900a55a55a10a09271278fb81c8d86e09bea33ae84aa11d2fae58f8402f6043b4dac4524c5d12222eb07bfceea9c41817925b5ea3b9cfdeb76c52dc14d9b5ec5dd121ebd2b2c01f2b864f391c9ee4184910a20f3a1f39cb076e974519629e191b8a29b55f901f0947cfcdfae0a76939e444dba72b10df6a33891a9cf9d2c06b1abd7a1f2834ea67c25f9c01e2a33e15d3fab84d8034cc36b745f3204cb7005a9410de9ddbed0b8495abd8cc63e8f30106599234c2d810ce859", + "0667d8854e6f169e62cc0d8ac690c55a9d0f153fc00d18339f57e54a2e2879ddbcc93c3815c23e22faae9a67c46c5e5950a3cc0d86a5bd614ad420e1f21ef00b15d09616ccda8a5ad303f75b0641745b11f1d20ee6c24423f47bc6005808b7d4d60dc5431b6e81e9aefcd71dc0f0d86ef610c538128e8a914d39924316d1460e19d025454506fa54b5f074aa8d38144cff62f9437a59f4e0a12f4c45f97d", + "0814ff61644a26f839db9d4f082047fc01c33a6a25c4ffca2d090eec80ef55d9bd0c19c6173eeb448e98b0bfc82e76aacb2a6f2b5028e19919a583ce95774ec6ceb44c7674d4c387dfc743c4853cd3e77ed7a6c2afb97c994b6f35bc762687638e1bd7fba378eaff0b77afc1a2ede3caaeb84dfd40c078c27484a2c3962d2e5cdc368de00ec887f4937b76151a79601c1d1739e06ddd32b45740c5c66342cf3cc2e32d44f3f51c57c5886c17e1876b", + "034da87eef0b1770a464a845e8a3e4367f81c9986e8ceb8aa68a6a691c36bf0cb74baeead644de95c92ad43429002740b5fd7187c8ac87b4882d7f2fcfb50585d89a544439ee36596b7827494227dbb3f6fa6709c4f065c5b2c47d6846b6f964e141297877b3141c917b3aa3ea60ee913416188207f14a581a137e4b2560457ff98ad0b3e1a8eaa1f0a31c89d7276d28ee9e169c8ff90d930089375fb61a" + }, + { /* i=8475 cDividendBits=689 cDivisorBits=445 */ + "5e0d6e2f37f04845c8574bdfd1e6b856bb472370b6a2fe70e6555f50e7d6b8707c2a3f2991632e5abbed0e4eb7aa009ab3924410087365049b8a4efc65125cf5963f9a08a5cf3bbe0be71c656c8b801da5f4ec56623d", + "15676c4702133e7db4972ae936a4d221a98caabab77e9e168ce9f5d92572182a2caabf3b403fe2b547175d3c90e821fc97ebbad01c150039", + "0464e74d377732790e4ca59e9f731cf4d50f0046ff90b2f4d0a6cd42fb73c0", + "d98c15788d34a6a3f3558f71bc31d2f4b2cba0cefe103c3124abe957da774c9f83fa387662d3f67f3bdb2ce8f024cc3bd6f6f783999c7d" + }, + { /* i=8476 cDividendBits=387 cDivisorBits=233 */ + "03e4b24e7e6a6b626da106b0fbe71284f7726a9396b606e74f3e830128b2c4196792e7a2ce8300f2e63392ca0fb21dbbb9", + "257a7966a0a19e5e274e960f22fde904f67ff68594a402a9a812630ca6", + "1a9808976087d85a1f7a7fef1f222be48b9afdd7", + "08540e3ab3e8c91ce35f27fdd27eedf2898234d3d0b73136709f920e4f" + }, + { /* i=8477 cDividendBits=3716 cDivisorBits=3075 */ + "0bee3069d940b18990ecfb3b5f4ce985d540a829d6620e5303b522147a07d9456c03bd771cf672593e81a5cd1952745df02389795817e745d33978c82bfc38575d20f33f5ddac8a3d9ade922a3aa0aaab136cee6f092ce8930ccdbc33f7a35d9e2033de796a291dd8f588938c3550ccdec79b7b2fb3503fc9273bcb43964273c8aeee7e7d5a43141f6da3e67273cbfbf2421944c448423924a43f5be68d97cfcf079828fe873e6872d8374834b39e7d1eff174072147a555c684c08a0d037d64e895550f9b621fac3b4558fa8f3d7787091b6cf3003800fd9caa2ea548cce065858726db47085411c5fc76b634900f28d974ce976cc86c1fbec685ca46193997201fd3e606f26bf7661bb3cf0e1ed835c958d7a4136b3e3a53989182199b8d3c80ce22c0c4f3e385f760a0e1854589ed5e0beaabbc7f9b02a7b45753c28014f3bda791185d8274c1826ba83b21f861651ad81fe86e9a32bd011c1eb366444903fb5375ab517228eaf4b7fd5571eeeca018e9e619b0d0739b6312ff17274df999e32007be4a3711e9dfa662dc88f382e6304a26702f65166d2734d3a812d4aace6f4a9f6dc16d63bd008383eaabb8941252f8fe3658e7b5a1703db119666e18ae6c4e5b49e68c2a2f2c61c9b4c3902da521", + "017cdc8e15aac7fc798c58dc3ad8d5c4fd648c507e05c65f1cffecedc593c4e15759385efdfd7b863c5a4c96dc1d56c8125229e529623933873a8f3a40bbdafb5e276a4777900ff670aaf56700f32050009c10e8f6f5b118ec2233498202fdb4646d71798c5dde7caed0ba76b31e57f4b941c23d087f57dab55bf3781d52b99a8bca432e3db20f16bfa7d7123aa5bdb580401f2fa6560f6d318630258b88a9db7f5fd2a45c660d72ef38d0628092ac159d8b7665a0d8f86f41c7e289f295b5818dc4ff362f694aceb7ef259ea7fd04dd1a0c02a0cc91e34bc6e52dcf74ba938aec15e91f18a9bc5ae838cd61725db70fdbf262f2a99aae44ec5b3982a20d5434d08f2f7d7fe7668476e8212e572bdabe90c4aa5d54f119b049f0dc1d232b1e3bf1ce96caeaa73577ace7b832274d2f83f7229d947a55869b102b7b4e0f2cf74f97fc1717dbcb1a499b5205d15f8d051f8aab90b182fa5d3fd70de3e783124593ac58fb784170bc4e83d2637692333253764a55e213b149c7dc9f70e0a402dc2c20", + "0804e793d4e32ee0ff4e3cfd4e505beba7782a07d8a2c96772598b80e7e650d870de11b0a4926f90e49d60baf062412e35b3f55bfd1c4e6bbd3281301ee555887b5e8c34b42f4d9a640e2028de6093c54d", + "a350aed701071d5115f328a94db790534dc341bfd2195b84a95775e5753dda797d9c04e119f9b15748f1e3702ed0dd4d26cc60fc03035e32bc3ee48d5b226ea71ba58d77f433279bb6b901503c85f061dfd918d86033d81acb329841c3cdcda75f5915b76244b01a99d15eace2fa9f6868051fc708c7f5bf1c255e63e29f9a08d0b4820a74e707a11fe79d9228f2da46899af78977ae0c4de8688143a25571c13015b1fe77bbb9ce5bd2c9afe2a22d630609a33ad17479b301188b94cf76740a2e2481a8682d49d0bb1a3a0fc0fbfe18e3075a32f3bcaddf1bcda3a98b7d5a6db8d2b5af47bec818f6d40d227454aed619537cb63b5070af5cf693f2c6a49b62d065c51d54efb22e2adbc65e50fb60ce34239f2ac9112bda55e7089d69d1bc00277dd1595eb7398dec5e1b5654a97893dcf41ce2148c67ed94258600720ed14984b642ba26601945c430b982b0cc73dabf6103cf6d6a25b1ca9d72983aaab898ab30a55dd72322bd1a5da9efd1b2fd70dbe58cfe48e117f3eae47481ef9fbf81" + }, + { /* i=8478 cDividendBits=2746 cDivisorBits=2568 */ + "02216cc1a19570fdcec34fcdb597d6a65abbf63ea00b631b774875be4f0767d5cfd47a725ce0b67e5121a8204c1fa9da6f994c6eec7cd2dddb5314185ba85f4e7311913f838b1268d6eeb7974e0d8b78ee811fe459b9f8bdcbe20a839fbdf67854d6e703752e3637c2841649160296be1d615b3a4626b9df62facbd810ddbf602f3c7bd11f1966ce1fff4e505e99af383a4e618fe425ebef9f726d70f573cba874549bccec085582c27c5d6223df458e3db9cafa785b99c025bd76889a54cdbcdc509f681a68192dd19131a0b436b8f9e5a4b9dbec6f577d02aac7d3460fd16fca46957e3b9ea7ac507458ace9db3805e7f172797186fc574fce31bbf1f098a5a0aebdc43be4c12980242e8550d5788bf693249ecc8bb76b21ee1d6d1b86a37772a0c95fcee51b72575ebb0bcdd2d66e5d650b8900ad09a066d38b91fb3557280c3bd98650a42beb8f3b94622c62b92e420cb0645cc0e6ab", + "053359d660967574b6112af8c294d7315242759b980499a7055665c5c4f353df13493b84c3fbe77ae5f496619dbdcba389cdb64e37c7bb456fdc33d5eefe4c9b25318b3193369d5e85967ecb66396058e10f916b0d4d08384c0a610c19a49d4052d055ee9dbdfeda94ddd22655a3b1d2e1d27559094c4c15e0f0ea310ab20fb69992051dc19a4ad308ddc008549f36c4c843212b273e75ac8109dd339255545acaa0a5f00925e568669a55fbaac7c493769a25597e0dfa8549880a2635efa8b309e8c0e0fa3c61103397ced3c458e34691c4ab41276a4ba6419c5a0eaeb51f04b26088d92fef7057617f69c12a655da6da4d723dffb7b5d8eec9dfcd61cc1f2c000cc0c2aab03b6b0e1b64ddc8edf10b1a9327617a0495bc66d2fba339429e0be9313fa80c763ddf9a634e55058b4469835fa5c564dcff07d50faf59298401c1a3", + "68e0a3d08bda156da7c5112e47b9330465791783f130d1", + "029831ccc2f4cee66794eeccdcac7e82d1695e726954e0a555b33394add29de34edf394e162a0cec15b6f164b12f2a02ec72a374c13065172f3567e0f111f2447d471c098732bab00a60256debfc8db81be78fd58be42306e2440ab353855b404b19bf53f810917cc4b7393a678720a9b657e795bff2337c7ccb102b40556f2b77099684f9238a53eaabb5cfe27eb10eb3b40e447aef2249a8623af5a0b12077e6488882a3af8dfee71435fa5a2ca4c994925b68bf018bfe77b82e4647385dfa2512f4319f3ade6ac225392cc2803a13d7072f8258f4dcf56ca0ad17a73b596e475c556cd2a973086ceeebc88e4cbe1469d6620a7ca6797f3cd92f168308e6f0b3a2afde36b0741bab38a9e9ed6e109e0b11bdb76c64f0b8074c82ac98dae58dbf5dd18d65c62b74f066a5fe99547b22ab43dda49adb46c647c28d805c8f904098" + }, + { /* i=8479 cDividendBits=1422 cDivisorBits=552 */ + "22c87bef7c3ed267a6027f3d165dec1adae3aa4780d93a3f9f51767ba2ee044219f1dfa60def334c716fb4ded6d1bcbad8fb9aff23273f7d08f87abd9db2256ea7675bed17754992b59c7cf2690ed27cf1e5991142873fd223e92ef9b7b8e449fe79cdc552cfd038030ec0b98d1eaf3a2379504e25b1027efb67e9d925f23488a3aff6dfa648f98b50103decb3612e928d5611d85e7de81aa4d1413e76bee2bb025f9e6802590195f908e39b1e2b727c239e", + "4fed24b128b5131f093b08fd3f8664078eac96e05d014e07bfcb414edb151ef88066af5a7e961bd763af2833e5400b3bb7b520aa884c04abacf3692e4b6c9847e015b9f5ea", + "6f689bf0cd43ee3572f63a62696ae92b7c4d137aa2618695128b09fef4ee8778351e960219c18c4e2db53b8b225b05e51bcbab6e2fd78ac4630fb4be56bd7789df67b89018bc89c9673206e75deaf808f92888e69915b6685a2dd15eb8eb48e89d5449d45c19d09640ab67e1ea", + "0885de9a4a1f2859625caee9cd70e8e3ba42f48b37478f53da22ae2847decfb470edc178189008475e9831841ad1b233a8fe8da830fdc58619b14ab76a22dceca9e638b1ba" + }, + { /* i=8480 cDividendBits=1221 cDivisorBits=1194 */ + "0fddd04ee65e36df69ea612cf47bed3827bac80df6118c1d98e044fdf3fa8ac3474dc8d9339ddc18f8c3ffea0e2c11fac7d1ba4aa17dd8f11e35a8a11dd3ef42cb14f5cf6f2d80cf873318c2e4d5c67ec39671668f45fb70cc490342d60436a1bf51ffbc6ae2f82eb48960e970a5d2bfabfc8c1e46e40ff40608574a21de28b6123cbb722f68728b22b1fa104dada298eabe7c0761baa590b4", + "037c01cecec8f452e3b36ca033806fb57fa014d78bd0e9b791489957a498f32355d12abc94ffc2ddcdc5cdf97533546025fe0da76cb9e98624889c9c4dac749538469c4b6a60f88c1d92b6f1bde63c3261b46361fc320df906cbbb6538034ca5efa677f7177684e95dffc3b9d76b4fd53dc5b219cf9ff009ee14c78782064938971a058b1de049dcd51415c2994a88b107cac046f85f", + "048db68d", + "2d4fcc3fd23352dedd63972e095f961b1213b5fcff7d7e881b2a35e660bb70646af226682f52609b7205c2f5f9189e9d15274a2b3ef71caf3af8d154dbaf6e5a3a5f0b31c81c3ba0e904df46e1fb5312a42fee5d079ee1e1c5f0a0a04c89aa74fb5ed725eea71699b265f681654d830c4f976587174f0c5f2aeb7a6a060bb87ed27de5802157756631c049200f23c3950b16a83a61" + }, + { /* i=8481 cDividendBits=98 cDivisorBits=82 */ + "0295deff94a27acd04b61e6936", + "01d8d3315832eac73d6bdd", + "01665a", + "016e53f24493dac5af6f84" + }, + { /* i=8482 cDividendBits=3844 cDivisorBits=2078 */ + "07a0a7c3857972b57ef447608db9d8601d44211017f042d6cfedbd54363fe31bc786f9277da6464c6ba2179018c241edb245d94745cc6c66fb67cf07b06f3437dd8c8e37941e47764bbaae3dae2914b546819ae5ca793e6ba30321ce4d712f41050af7c58e5b86c1fd9487efddbf3452af70960b92b5a990ca65dc2a422e52aaad4275a498cab23bf40e3fdba0e4f8f49368f9dcaa5714221144833b37a603de4745a666f1bbd887f1eecddfafabf0350bd55f57b3bf008aabd738baf7f052b7389f3865be8f9cb1ff5285ab4580cd7e66ee3e06f0bbfd4bfd44a2e6b93365521ce662eb3d20fcdbd3620a257132bde2d67a9cd2ab17f1fa4aa64d827f1f65d2f6221dd9c921d1cafa3fe137301a059466ae4f2baef985b7a612ce8fda235821c187b1dcb34a40cd29262fa0898731c238b744146c58dfc97222b9e8a29af3ce20fea2a015dcb30e62257512606bae29f3a7a90feb8f8d38f472b63703727a686ff4552d373e730c2662d72bfe3a0a0a474b04bbe390e6be116007c58b8a0670586a8b664df53592c94c25ee013530a54e2309ec5382aada00220e890a5b77e4d3fe4c71ce1260a613e81ba133b790eb52e47ed808b7d75421589d394be95a9934d49ded53c0fec88ffa6c37f28ae64abf5b6b22e5dd1663f913d6efe835a42910", + "14cf9f8f750e2a2e9eeff4f2ec07d6b0391a4cf633ccb02f6e1437c3cab4a02a41d68d1ff6f4af1ffc8d8295e1d9ca3fda5a7714aa1ef0e0713e66d17a8d576bfb0521ee594112dfbdd9a19b6a3e7fa24ceb1f6e8f8aa66807bb73b6bf2f416f35f68c04e4fc0744a4d68442838cb60d2f370553ab7e152b6f209910e7888de4537e74787b2e53fb5be6c06f636e4fd6815c14f21c41ff91b8805955b184044dee7cb5e980de67bc8a68b26382ce306127745225f29b3a1a6ddbcbce57eb4c6249988f5c890b96885c5b70cb638c1f6e714d72dac1b6f3dede78a3f4e685e59bc002488561b133f08a41ffb5201556e138bbdeab2796bfccb263616abe48de40275d2a67", + "5dd3f1fb618f679bce9c501caaf28ccc42b7c17d1419621f18daa8194752d6149e8b4f42f6f93518381858f7eef097755a8327a31d35876da282abf0679f93e511f521855fea9762549cf2f55d2b232d3deeeb23854b0cd5a394aacc688cc2d10da67f03f80531a33a2155be5217dafa292749c08306aedd5d9c48eaf03b23c8b80bd72fd720b3ed03a3ca9f817391d8e58f8260833ba766274f30609b09a5b86ac8c14c70cc83f11662538a10d620e280ad58069a28c8f0bd189bb3e0e890fadeed84ab0ef2968ca24ffa38f9310be1ed343b3f5c355567d8c093927a", + "0df750e725c2b63d9acadd31812c28c0e5d1577be0bb66bb9f0e6718344fb7c7ec2fc6cc8e0f1203fc5f12c126ac868e2ac1fcaf8c759a0acf7be9c8a61f71d974df744d85751a24eb9d23c5313f45ebe4c1fc56b111f257d2ecfeccda1018a9a7f3743aa52217c9dcd5cbba9b6857791233976acec628502348d01c6b57ee8b59eae8911ddbfc16fc6ab2222af8bb40836fdc5cdacc247f0393618db0548724f063f842049311b0e269f5eda1fb7feebba9267c39440dd4c4286afd8db5e36a184adfd564e51057149abf68cab4d7ab8e98315ce8fb1df5350eea0f50e8647758b18cea4a1ddf71155c1969bc7d81216ba2671e7b5e2c777626e45b0021bcadb7ea35fa" + }, + { /* i=8483 cDividendBits=3710 cDivisorBits=288 */ + "122d7dee632788c859a7ef8e82b4392e397a28bd927ef4c6a587db9d4c75f36884185d72b7cdedf43a3286834b0af00a41bf8900ba9a6ae8636f3859a8a439da481510b72d9426b93a90f25b3866c086b9b9283b29619c012fa0ea88f918ae43a6853c2f9653662e872f0fa49fc17d5a0c5e0b7ce1d9dd9e5aed02f687922ecdc58bcc15589e1ca1def550038c61b3c58a375370ed3fea09298d2565f17f28f2129cc03a7d0223c0a0c4e892d52afc45d38e851e25a0695a22facacfe06b569e8af259e90077f4400bfaa7926d43bce6ddb9c0915ec5f5c3eb61b3015d03eab878894aa17226d83668476b56fdf118ade1cf9a908a44f5697d3d531f4e1280030f6ad787f37a9b46bf172588fd8d2ecc302e506b11918ea13be0d6d987d10d0d4bbff9de2a8eee227db0f987b7af5c39c0fe06a0b18875cd80ab8e7f42a86b1d77416ccd56b9035c6d02866d852f4c80f95ad7608b057d577fe4193aafbc7154a6ee707f0aaada20c1331215b4859673065f6f65d55711a67cca44473bc969f8ffb56bbe99123e762b2865b7dd63af7cc41ca9e1a2ce3b7482856083350ae8a5156bdf24e267abd484000cac141b2b88fd3be85912b3877e0b1b99db2e5349e9729f8447910f3c333bc7d25fb8bbf5e1", + "20da2e58e913b17c163ebdcb04307dffa82f46fc87e42dac430073f24ccdfe81db3fbd2d", + "8da62665207b171001584437ee60a0a4218d654cf926127f6af32f9992460b62a300ece99edb4aaa0b29c25e1864b20102680d266745b6ee9c48fccc4146118d47ca3b7117db9f543f8adcbcb5f5930dc8334af6f993e3f3e880280871b5eddd06b788c8cfa68b9d5b334c842b2fe002bcb985fa4da4ecf2af61fa8548999d9da0aadd3dc914e36c72e892db545dcbd395df4a45ecc806ff0c6040f4e6e9d52ab062bd4294c5642b8e578ea20be87168a194133323a43d31d36e84562bd060a8336b12208c8a1eca0ac042c8ba6499786724499225119bc7bd295ac3e8caab883120cd7041c65d686ef651fea57fa011373660ff117b2e6fc8241009d9ac46d6dae04bbb440deac5ab5a8ced47cf0fd522e353df8d8c00901df998d1a562090f66075674c13175cb917e1b2e9b7690610c080b129a048b272605f64a9353d62798891d64de54a24a2174e86af22d7319d34e820ffb164ab0cecc7259921c46ad3bbd655c0bd37bfdd82e6355302595f73c66a6a3405add5a0b7cf3345018df39bd83e51a745e847d6f3826d6872d232c0f7072421b09c49ffe7bb186d41b3737dc6f829fefd384dd019cdbc0", + "118ebeb67cd5ca464aef91b22fffb9a2107469b0b39b400090a227ffbcea7bfe4dac9521" + }, + { /* i=8484 cDividendBits=3060 cDivisorBits=1122 */ + "07b03ee4841c8cd0197bb0837d3c62d75041d89bcc3926e4df7bf71d858fe54db2454f741c58fab6f3b99c1c46c87f44c4c137c39fe11f1c8f5ebd8b3c1605f155d9d4095ae2d866e53616339b9bc24d2f05dcca3b150da92c2aa8424b0ce214ddc991b97f3f87b015ee801ab3291f9438595e1dc50fcc2a9397aff70a56cfdbc11002fa001d018f9d9fe9c25fd657acdf1895f49d86a088236d0812afb79fdb7da7964f6ca98a65281b3b96f82ce17f74e3b8d33013de2a58a5d0998b5b29bcc2f310e01a631b8c63005fc1abb380f8478b2ebc83d5b18c6e1821530de6aa986087085cf3a4d373306b1a4881c34d7ba7357879ca42fc2cc3651b87de5d3e909f420dd9e58ab127d26d25bb05fe2ff93c1772204981d1275d673f6a873d496fec3b63beab075cbd7e7262042ea2ac36fc4529b356bdaaa5661319ad66b7562f8cd6312232da40350e6b6d570584434a8479543d03938a3ea088d8786f64504590a8e8d64ee2cfe969924959b6f6dfc2bcccf14f2fb3d84b62de1e6a366753", + "02ba023c611f12b34e53d96d7b28ec92fbafa2492458d9e3ddbb46898ecdd4d1e6f239ea4faf43ce4e488f84b1c759bb3ad82d6275bc86e546eb4057d5fb3108628ca9810ce29f02ede0b532beea80bece0ecb5e5e3a54b05a547a423e1ca2afc2cfd23b67f1815fa6c069ae23c894ed658ab234321438432e1ccc5a376d2cf10262aef4b7e4857c762f9df4f2", + "02d1de7938e8143188a69c20f0a952ce11fef1bf041d10c9bfc2d2e6a6d0c475e4fa8321746b6297286a60907370dfffcfa98260c0663b08c95974e05fa51618315a85741dea063b6c76fc29e5c37939cc9389adc7734ef4e14f1724e45542172cca44374fbdfce4d8b18696120e2587795c2f6eea8d71bdfdf8dcb25c0a82d416b68f34dac17b04937b8a7d8f853d206cbd676dc09bbf40d634544fb90f1f6c85f06919f9fb8b36e2f46a6df0ef66bd938ef4db21896913e4dcc87140d1713db9174db23ff16f28aac8a49c8448f088f36610bfbdc0fae6a20f336f04b6607e2539a2b526e9cdabc0f112cfe930c594fa89a8", + "5ffeec4ed926a73774ff5a46890ab986b33ca34b4d2c8b8a924e9b193f0e747a82db5256a97ebc490d761dce6ae3395a0d895f589b6e73003e15b676100ce5e9b2d101f5e4f00f4f8395fc8ccbafadfed8b78b40b5a763843caf5c36bf6e88bf6809c442d293b3ae4f740d0b59c0dae7df2b639185a5b5a5dd3e8d55c5dd7abb7d6250d7247f40fc86242683" + }, + { /* i=8485 cDividendBits=1599 cDivisorBits=17 */ + "51faf52130204dd2465b17f6e86fe3e18bdc9e7b4d30f70d270f0bda920667dfa5d889c8c4af54191078733399f17fe83a356bb857e1748f387f26b2dfe9b1851cd11aa0781399c943f9ecddc125a91fa6f46290dfcc46cae5f43044737fa0c1533cd3597405e9b6c777c9976b5cf0cb24895dbe6790a1afa8fe965a4af3911976a1fb9aef7bdc3d415a8772458ba80a75032ad125a928ec2e3957f0adfe9cebcc27270cf4cead0cae4cb59fbcdb6be3a83640a6161418e0f6412b37103347be03692ceeaf962588", + "01ab47", + "311e2d6bab9fe5e7b9e856a5ff0a4928ebec53e5a3f91928df758d0a76c7ebdf29f05b33d803d90c82b2c803ac9ea69d16912f092bf7c35a8db7f6d04a6dbeb364c257f7a64e399c0d01fd30e1c711ef0531ba51a7f59fe08f17aee1fe18133b593269bcedca0534f5ad0e2577e3a2de68d468d16fccd090f9e0656439a5d14d968d06e3d635a0e4ccfa6983e6cc3a64e0d850d4abdf52209dc897dd9036ed3a282ec4b1b42c307042a59b186a2b26ec2201b0f835807475e7c062d66c5aaa9fe3dc9d864b25", + "9745" + }, + { /* i=8486 cDividendBits=1161 cDivisorBits=779 */ + "6c186ee574a53ec5770e5c0329afad8a0eccabb3c309bd336ccc18e7653712d2858397aa7e4b2cdb4e011357f2abc60a55268a5f954c1008214b7ee782c8592274211dbc001048b6606f988662e9d0396b10be4b341c01f0c34f224cec1daabc9979ff252bbe05a946341e19c4d2966153c74d9aa412f56f14312f8e64a764aa47bf357b2a18375fc12db0181cb32162bf", + "0468ab68df11bb0e48fc8a6f4ba4883611d32855e1d4fa3eb502f918d1ba2e21eb23bbf07e99ed29cac94991465ff0a0666393922636c49712009435f8f8214a9bb1fbceace77f16da313ae68401e4ecf4d2349dc21ce51b1054d1884dcdd16049c3", + "18848af73e9ca4bf1bf5930b7c28ffa70547120e010b3579a84776a0c4c4c2af15ef4353f4c457f6b9391976a9d0a72d", + "01c317ff46e6f386ddf01d716ab827bdcf576e7d0eff38f8668362cf4b049f4e72153ff44ac1ee9e7034f5ad46c2a81aa5168e4f66088fec8895cc0c3285b017958b8caa9cfc8d1286eca22b93d2b1bb3a29439dca8bb31da19b16856d896ba63678" + }, + { /* i=8487 cDividendBits=877 cDivisorBits=760 */ + "10c44e719b90d33702480e20c4b326533b8ba6d8d9f7aa96e48696f51a99186b6f0872cd65104f42a6c91bf6f3001869a005504b29dac7f9580f40d00b0f27fdcada187336b740d7dbcc219ede2bec3d011394521313e9a560b977fcbe6f63f2bd9af8e832ffe185243d31c49204", + "afaffe36e02c273c2418eefe21a2d4e251d01e6c8ca8e3e1c441fa0344812392e100240d86ca8984ba32778b5b68d88974bb41471801284b381b6bf83e48953714050de92d2787bef7095f3ffb3776a26981087fad926dac0aed5959dcece8", + "186e7603128cecbe0566e98ed69f17", + "22d53d3b63cabbe0133f0e51cffcdac0d05540db2c3bab1516dfa389d7bda9861f3354a6a40f6904abd62ce9167ae5272b372fc4df3e0415f62ded193d113a4e0adc702e599b2570c9f61162213c3632a9f4b987c46d5b099599272dd7312c" + }, + { /* i=8488 cDividendBits=250 cDivisorBits=143 */ + "e926d30a7b0005a0d46f1cd45cbed9c995b442dea945df01e95806278ee56a", + "4f2b602a7d1f2ccc12e187d80afc59c76375", + "02f1e997014534c154d0a6108ab7", + "0c7c01d2c4437ba7713f00b85b386919bac7" + }, + { /* i=8489 cDividendBits=2436 cDivisorBits=825 */ + "0d3eba702a06b49e6f96615d86c7c051377cb14ea2946cc26989580e828d96e6a418b196ecdc2d6612f3f994a45fff41aad9021a2dd65912ce0a4d24fe58ea4335dc510bf3baa6b3062a738065c61591c2fdf7bcfeec35eef01a33fbe590b9a3c219cbfa09b81fb2df890f2cb98cc015426529ec9f2987c38074be4b5e83d53c00a9741591f52ffbe2aee4ff130dc33b7b96f6b10a0bae53332cf9012ebc184cebd4105ce486f20192f99ff3ae26b66279d92cd0216f2d0a133c6856d4169f8726e44b2cf680bb212d4902dc48f3ddc24c1c890228e0de92e503661e87dc7a2a9b0f13f8a025733134d3745ccd880f7c591e100c0c96cd989316bbae6d73295e7d86a8f51e4cb9f4eb09e74c73206b2e60192d2385306c1840e3cb5670eca4565d7459e4e66a6c8869b5e1fea25e5e1354", + "0489b0b083d6d70203540ef131f2bdac0618480f7b035951d002e322c3a8284d8c4f178a5780b2048a7cb21786ca3171410cb5cb36e424ec68a4aedfc3b7ec2ed63618c23f784a089c26ceb2465e08887012720cf3e5167c466bc0be0a60dc72fd9fdbd8ffc4", + "02eb35bd69306bbc81a76952ab383991e6d01227b8644276116eea4770149df39d41453be0dded3afa52342ff8a21751ce86ea148d890a26ce4f8c999b0f7d71e7bcc5a92fc1522043a4598f2892ec0a0d056106d9230a7495423c9a0a531428beede5f1898514e8c6a614ef042442e0b1507e59dc340e84c8f756ee391de37c83774b2044070235d7be362b2b2a4b5a3259cd1143435db10aee30d8f53202aa3be99fc715e9883a384c3d2f8208c89a185df484a1b82451008282314777a5510154af17861f47650d071420", + "01f083e49ff295a70aaf26ec4f9df57f22be938589c202ac4e79639e102cd323dfd19cc8bfba26d8c965ee1a5a7f30318362a12298310b624a86051abebd15312d2f6bb322f703f09dd38a7a6d76e88aac24d22b77dce5f79abf3d393b40a1e08139fce6cad4" + }, + { /* i=8490 cDividendBits=3215 cDivisorBits=354 */ + "211053caae2f7bee4e97ec630de6be230863125312d37bdc2a6d07afa7084c2cc5d15412c771cfcf41807cb6a11a96be020b87b4e88e83622e68ffa8189511f8aaf2807bf64e6d149fc63f156c116ff5463f646a8d14372ef06f713c75371d54f084454851bc244d4f4c58af672f18a87fc45974d3441c02ac6c5c841e6c244566d766e9ec49727bc20adfc87b7866433d4656961317c543fbd199439b0571971064699e969c8d69ffaba2db4e369247c94430a5d585076dba9cdbce308bd70916c04a3b76ff0aa127f8962f13047c9a9b8e597697ff59bd5e49b6b29fc515d60560f613a40b44aaeb1a2644bc89cfe38737fb9282f6eea0bcb42073eed40e81dd7efe329be6ed61c6e2a109b33dfc6f377c58c15d0543be96e66c9751d3f9f9d97f6e8fabdc8a0fe1b68fa776a95d4f86dc9c014c6d5c4459f268778cef81a46d8c407bbb5e9ba4dc22b3e6957872f9774b104382dd25bf435cd65342815b2a322151ab6479499a75877999d428f92ec6b2f74876c52bbef19729678eb0ba71d1f073cc38e915078950a4bff9a0cd185e63", + "bbad5181b5370fbc2e8567c2cfba2255d1ddae1ade88bb5f300f192af538570833e97e63211c7c8a14476be6", + "2d19ba3ebce0dbe25f6eb516d527f6da445b274e7f90865e304dfe31890239ae5416f2e786afe4394f42f05139b87de008900c3d5083f22eaabe99cf5db52bd8047a6fecf82c07921f56cda25da4e6672514a71b7a970894772a84daa621caad76bc9ea83152315b994366e9f13838729544b791eb23e4b7c7773ad8efcd2ac4bc3152e73b5789d4184ca8bba34994539d9a3d5b87f5854e2352ff6fe5c36be79779fa91b2365068b9c57b2985658a19da9770dcdbc505935c8928a2a422d141d37508ddc5d91065aaf7e85f91b1c42847c98b2b65617c6fb2b41d632f7f2764e7384d9ee83aa5f76e45f9039294cd05630cba5c35ca9680ce007fc3392bef7283b4471bf9cffd24ff0ac0c66b0e883534c9d193f093cee1b24bf2a20edf496bbebbc2b2f5333eda3e5df5b5d1ecda2ae3ad2bd916cb4e0978cac628190da7a5bb120bbc854b6bcf5066e48d2f4832ac4755718e71a0e4fc44c0633d798996381658e3c46fed", + "ab13fe2cc657d1777b1a1fa61643b14e4eb08e9ad215424a35c6635ff5e5061edf3385ce5f8b18958118c075" + }, + { /* i=8491 cDividendBits=3260 cDivisorBits=1354 */ + "09adedaf816460d4a88e13ab5894f96e1a14d9632c5e24062a3ff95328b8315c2915dbbadc908c8985a6933a8caf7833e71a00709ef82e9689b4827cabc6b38e48b3e459dd3069deabf9fdbfc10612f97618404515c6bb1a0e962ca0ec1707c68233403e62278c8d6a62e81b1a70afb6fa3fd6f6f4aab3a0b1f8f1e424cb0c546e033bc1c0310407e80473db07b9d5059d2c7f7d2698db49f7907a893c25d38d3816b841e67f9a17c615c6054b5772e75a949f6216265e19d16fd627fae43be73436a4d8ecb80a50d2f75a16b66c533da99a7b5ebbae8bd960e9d0923fc862d63bada01c270c74537fad3d56d785fa7b1332870cddb65000cc9640d4efcc2207eeec2258c5f4144d8e2858566f0ce1212d77d42ecf65e23ea69d5e88a671b761c00fb8e5756ffa0117e4c0d10a0a0cfc49d69e04e492172e233b3dbee486a0b1128bc935e73b33a8a55bd215d0d970b7ff6d92934f0181faa929446dbb9ed06dfdec0be64aeb8457e240ce591fca13ed1b0c61952a0925326877cd092a14d6b9815df98c040d62d1cc6c03ea54008b657e7ec4159f79a5ec", + "2ab4e6dd1231d3f30f41a93c89b70bce2fca8a8516a974a5b01df3c20e8b178917fc6628cd1a2b68d9b0c0bbe14e0d1de72c768984b74227102a71d9deb3052e727b43bc9e7f6685036e840d147ae0f392e47e908ed516adc1995f23147f1b855f02158b06e16d3576f1946d1e6d6bfd5cbfc45b5b087f9d8027910caec7861f952ccf7a4fe3d19dec44b891b8242ab22cf9e6f22915717e53af85ac5732fda6594bca43ae55e7f26a", + "3a05a6ed6a8e5c8e01e49f2776c6271512b486ad9f60b4d59c9220b5cbffe04f558514c8f89d8a7435d0a75752e0bded03909decf339e2b03effdf4a00df3c328512ad6e3fc25c30917f623110cc8969cb9a0d73a95e33049cf753184acf22869572f450d74f1fe43548ee418bfe8c1770de395074a58c36e8cbe37c4ba825bc6025f02fadcbd362504560247b0c39d2a0f1f5a239ca6dee7eda95a717a1cede3ba17abefe5e3a254dcd1bf4bb53f0a7e560e7ead9a3a40d297665006e7572e6d63c125d80d98d6b6207d302ad92616d0cb1085fe6c9fbdb905724df8fdeb7f2aba071e76cd13a0c8582cfd9700d6a", + "29195bb33d7574d340b4ec1bd7278dfbcdeac989d6cfd155173b2382ce85fa80c5cf245321df25b87ce1299340a50c1f2f6f925fcabed3648599e874412ddabcfb04c9c28b4fd28763f0775aa667c79ed936b5109484ff44d1da0fbe50548f3a8a9bc381b610f0ef8e8c0749a94f83c628cd5c58ecb1fdb82c51cdf9af002769ce46a3ab4c72bc047fba92fbeec5a03cebf58a88432c23f2b13196bf47ca854d3d4b7ed9dd5dbfe408" + }, + { /* i=8492 cDividendBits=882 cDivisorBits=230 */ + "014da3c4733680019cc945744a062cbd3d2975656c40fcfa7c247f5691f068481213d3e674e8b2b4843265b22668a89221c060cb41da82bdd4d2a626faa2c04dae4e8c758a26c95f1be07bc04dbcedcb7c3ff8d060e2186cfd74b759bc1de53dae83d60475ebc1804b332a61a9ca1f", + "13eb75d95841c7e3a662da1b9b56abec3c11ccfe53a4f75176415baebe", + "10bfca1b9688d70433faf126f5d6b6aa76e5e20f0d3f5dac12090510d2ecaf61fe924d5369f0fee7aed44878f7ea33951d1d403ffb57ac5a3ecbfc14f2d8f5b50b1533e9391d963294af2bdebeb1a0687ad6", + "fff379d23e088c567e5d68a3a157e60a960566d20cfe0f56508f2b4b" + }, + { /* i=8493 cDividendBits=3358 cDivisorBits=1308 */ + "1eae86e218b1170e0d64ac61543dae04cd59319e40fc4d0dfce87311305efbcfd00666453918fc8a21b566da4db084c431ec434876da0b2ae6f5d92ed1b6f24708ab8e73e5fcc293e551d367bbdf7de72e8dde9c2882f6566051b15ca79291ec5a4c9b40f416a8175d3a40edcac1bfc57dfe4cd57c72f1ce678e97c8caf7d67d050b99758ae7615ec7dd2ed4e9f33851e1f26abfab01162f6bbe45eed76dca290c483cd9f5b30e67f66625c08bb544c16a68b45041cf5e02e2a615d166b1a7cfd744749d1b0100206c729192c8da1773d501b385328bf473966e18b28e47d7d61cc8993338dd45b05e8de995fc93b707c8ad6042fa5e43c5770312ed680b49decf3e0dfa17302d697bef2434c0d55cafaa6cb58f25b3e8c4218a98b8ef62fc283489ad0b94e5580352fcaec079479b715a9779fc68cf9fd15d9688e326605666369339c7267b7b8b513e30dbd36e63d8f3c28530c938b96292ce99cdc57dccab2631917c7a39d1170f53c7dcadce2e5187cfe9610ed9bfd03ec67cea92a385bb38da19079ccb6cdb8c3853234f1b9aac774b98c469fafaa45fbcd35a98915d40eb4ef7c4", + "0b086fd6c25d1cb41adf20f1bc62f88508ee7eb7823f96e43fa153e4fe5ea98fc1926c1223513e1e897329cc3670adcf4f0ee8c6857c95cfaf4d3fed1371bcdfe093271cab19060bb7ab09ddb5111533b0ea6425798ea4eb7187e55d5545df79dbe22eb08b2dd6ce53f349feb51e565f47ebf2e40144315fac29724453fae7705f136757a4e25081f0ff82b211e2c9dc6400a6f9b4f0aae8e2bcb3d1a66cfbf4d6e2a1df", + "02c7ea3b5060903d1608544c2353fe50c122a376a5d69f8a1d9f7437150a7df358f86fd51852ec81bdb48d97aa4542fd6b01f0c4352d0849452db287ef24586e1409f5adfe4aa26f168d1724421c4b26363d87cdcfaccbf756772d29c9ead30f7861ac0d068f95a736c43fba8293d1819532ddfdc3593201e21f2f906dc507d10bbe63b60d4532b97889b0e703dc182e13ffe677bc4d6f807e5ef61aa5901bf4636024fa0f90185b13141d3276add091b4d1515226bae349d1da07065f8d6d6020495c9f1367fafbf14351814e5db62c02cc35208b32232d0a659d9ff5fd2b37404dd674375f9cfeddd12f39df92449dba1746ad7906688eb8ada3696cbf5902b3", + "09f2f85cbd68e727a379aa3de2476ccc043aa0ec740da563716dac64b8072f1cb33ff440b7151980434d19f829d21eb74ba1097b19757ecb9bd72aa89caa79eaddff8934715052a1860c090c7f732d57ffbac5763fc5f323c6526915aca780691e1e99d27c935b092f9e6e73dbb071f8cb7aa27f04dd91df8220bbd11631acd4a09002db8c73210108499eb0074f0c37d5f02dff6fd6da767ca18d30bbf5babd3e0d0ad7" + }, + { /* i=8494 cDividendBits=2085 cDivisorBits=1298 */ + "088b0664c55c72976b5c597c0031b51d8b14a57539f43e9430432ec59675f076dea3810c9472792d030c345b0cd37189819fd68711605d3a1301eeca8ff6165f0c926118284f1ab033bb01581a9e411eea16f530a244cfc036d23cf706520b0083d8a4164c976b129bf37e86f52277bad67e6d567b2bce4004657fd4808fe5bdeed4fb13008f5a0ef68bbed3ae419dfa332d916b00e2695457ed8f14f70191967a69559831c0c9e619e873d0a010f58613753ea97fbeaedd7bf43ca000f8e7dccd3a50f66606a001a224c6972fd36fbb9271145d79ac02fb9323bcc16672422401f1516dde417397cb4b837a678c779cda1bbcdb964445b5ca1594e971c881d8a2182fc782", + "0237e5247bdf82643dbccdffccca0d0c4b1d476c3db925d7406323a063999d4baac622129fff2438e96b6a7e425dd42702794159d2a6f16bd697e6b8d16a1dd700a988570e4c0d8a5eb4e2c174950ba097ef0ff8dd78147f9ed1a57659c45569acf135da75a20f56145b35a01ece4eac2526ff88a2d6772e5e90017f14cd084105fe259753b56974ab0cf31225b3c753864ba21339c47e3c9a1482a4722e6fbf48058f", + "03d9e22cacb7ddc5ee2ddcae932be5da4527923e3c69f7553b1136158b9152fdfdad384480e87463f98100138bbf6a77d44b53237ef9682d737823b2ae90eddf0c087a97eb8a4e771ace5d80bbdbd7f3007758e13cbdb037ffd248c7573351ed181762", + "f7e4428fd122cd55230806300f4d7e7db58ca9b6c8ffd3d3373b74d6594dc23727e0f9eda75fee2acfe0635a035a99653dd345175bd64059089b85e0a5535822ade963daaf2c8988c5b1d750fe9e5e41497426448b52911d2433d35d2cdc1196e2ff80a665d3ad936d1b7884f01a95c5815bd635afaf4331f90ee45ff8525f940cb203882b5584356c94c4c30f58130d28d930c088009bf6627bd8922c867db5cdc4" + }, + { /* i=8495 cDividendBits=3251 cDivisorBits=2852 */ + "0658a3e1be49b9fdcebfcf943f23eaaaf9ee201e3fe5636de8777a0afccf2a95289d639adb508948b4f911441963b63d05dab69817519d370e95fa52fb485652121fec9a7a56f7e7d38ec4619fc8ce9c84ec996fe5d9161870b07ce9fbd6a4953be2e732dda3dbdc3fd5a1167ca053ab8baa886af92465d041e0940ef563e0796c084ab7e6d7ca73ac79230e2bbec09714fb76ceba3095e9bea3cb32dc6010e0b48170ed388a243bfb978c1dad8577debcd5fdb880bdaea5920de5ebe83bd761387eb1593fa61acc147348941f86b4a9aade412835d81925df11dd30698aae71b71c4f1eeec6cef76fa360193cd31f24c183f4d62f82fd4c069493ccc061b9550897f353e5f44ba5e542cdaab4b3b8adddd17db19beecfacfc47db044f047a7da7449244a648f6ddce1af49fd3cc721b4b16acfa69616808c4e9573b4513ef8a5165ea3182e4d8c6aa3b1c2314be6cbe2490b22f1a6fcfe7c148e0a3111dec40e30488a93f4030fbfaf889b5fe809e46b424080f73a52cbd74ab3924a0174d06168f079a34c02907fd3bd8e8a4693303e7cb780dc33939", + "630de5aa480fd055240b6e7a5a58357787e755bd7cf4231531c38b52c18a8f3ad39399b1d2db4f2def838111e4441cf9140c12e060ed90e4be677287867c7438fc3a1d9105bb5bc985639060afc3758a3fb635f55aebd7b9caea160620434fd6becb0a148c57af13c01336c0fee21e778e51008c2a53954753e32d980dd262dc4cd66167d5480396bd7f289c95f11454a83167c8d86153d13a028febc9d8b87e4d3209f9c0452497aabf1532ee87994863dc0847b3a8b95060b849c7883e57f1303029f1efa01d4a5b261984ea1a61a961c24aa9830c243ee13f846b0b07b38475cdffd981bd793247a8f82fe92c67360f93355e845ab659b83f17fa2341303aa8efb16891a7a218a708505d2df55c99bcc888582a278245d5f844d6a0ff9315e7e08d13a4f9c7190fa3755649690dbd304fc7457cb7bd9817091edecf5184e4239eb5e8e8356c6e61fa5e8f6a40bec844aa5cefc5ba09e15c0fbb74ac2335b7d411a205", + "1066c98fe8376c2a1788cdfee23c061cd5340370731d2767831128eb7854c002a122a93c50be7466616d7568c284f1c3072f06", + "299232feb2c1a444ea756deccb70a92dbad8f16bf774e3e0932494196dd6686367b528e68cd883c90ce38a91ffbe3cddc0f8c73483a384143196caf2b5d2e6c9bdcd7793769fe523d8369dad95b5f053b06fdfaeddbfbb62211b9195b4ef43d7584296d56cace4601d8440c2c33d12181896e2698f67a3e4f2057c25e20eb021c2469a5791191c4027ac043df5b4cc41106e1625d6e781653c2d2a5acaef85a33bbedaf331b8a12f03eabe810b0cfcc8d18e90d31d07e7794e9107072de1e42a1f507df2f445ffd1bd04d241bf77a8ce6c26635938fc4d16d155c4e3019ab77bcab80f540b5a45319faaa2881ca49858f8bcc0c0f4c089d0eb56c59990f62331dc0d759c717f56b0cc709951b42be028b9d57f4d64621c24c2c93d787efb244528bd0ed0474b1ffc12f8f1e8a549d4913e628ecbdc489dc26fb59e516abd7be6d36faae4d47f0944fae7c75e38b163eadc7e5f16d4cc6a88754daa1b79b9739f9b77821b" + }, + { /* i=8496 cDividendBits=2471 cDivisorBits=2377 */ + "14fdc9494ca6467ade0629f4f1719e65c6db8f8043d91bac423182f729bbcc0c1e9772ac2022ba5dafd4d9f5ebe6107b01dc72bfb734d47ea040a581a21452cdf901122f456472750f83076d6aa7d5fbeeee2594b446177cec0f6144ad006c5b604ad6dee1cb68703e4868a31b615380249b2e0948002f1cd513e0fa9e5e17effb3de918acb6a394ee80f38ac3a476f84a69972ba54f09a671c06a0dfe4df8a1ad0fa51a56c4e6cb49506c91fd8ad63b36b614dd8289829da1d71439279486ad37d8b6229b2c9f29e5a9028dbc9098d96e2591a6f15a5d2c0921dc6d4dd738c7b64b728719bd0fbca23b4b026c6de392b8d2a58e5e9903df35bb34b42865702d12c82acea18fb9756484d0086159d49a3d766b8da08867afe1ffcac3f136f95bbdaf8093aeb4bcf9ecce2f53d086f983bff6a47f25", + "01921efbc27da567b457dadcb7ba26c2ab89fb05610343981c48d6db9799e373c65d14e4c4544f8f73427cf32f53b84da5982feb010e1b9087d0d3dfb54f0ebf35164030b38e7c48ae3547eeea4aac360064b34a65074634f1d0e8d26dacbecbf8748b1cf9e69966557b2d2f18a944368276e31bb76f765cb67c466a04a77900efd003edb3ccc0effab9e1025fcb5f3dd6bc59f4756bc106916993e3010776921083c42f300e9e998c297fba9cc3ce1162336b0d99319ea9b17ed945964bb932e5f929696b4d534bccd89561a44d4f32fcbb7a9c2e7fe6be832233f26b8eb2d9a21fd7e4c51604272c89a3497329f57a496eae496ef03141c701c2288e2fbb327b0a520f2afc5457e0c0b27a8c778dfb87072f4f663e03368b28125d088f3a1e3583103081c9dd7c54ab", + "0d5d152a4922770d15bc462a", + "014f903dc5edde7d9c7ec5c9023db505b113bfb6ab118e94792dd4dd37d1f64b1dbdf087cae572410463816de865884d0752dd3079ff331216c9cf7623d34702b30c865e2b354ce9e41bc1bd8347fec9e3d4844bbd80e6402143ea91fdeed62918e8876de3dcc0b2add7d9c051233a30a0aa72f1b5e76bdf709968dc56726563531e458f45ed3f2050ecf5faa26526a1e0d4b89c8110ba2f0be41f956ddae4ee8643ed402be3f67932e4449027a8d19505ec3e5d2030f8428da8e88080a153a3f6963d4e4ab4343274e214984f38e23e8ea8348622d73a28c2dd794c4b30e272c7898c375be42296ad90f7dfcbe6f0a067914803a48524937c74e44a579d705709e51bab903b9d279d9d195b214703e1e1401e3954e47f7d7375b590ff92cfcaa0b2afbb62226c83d917" + }, + { /* i=8497 cDividendBits=1381 cDivisorBits=380 */ + "1d2e3f9b2fae3bfbf266100ac95455fb7ba928c3e418afb5e2683efac03ea08567516ff7acaca5c886be0d44575fb5f113e933e8d15e6c87331773090b16556d392265c8787ba08ebe645c65c118f79afd7b7fbac5aa7258b14f39b58d072c2e948ac33555dacba9e4267dcf21622727717dace57c806d4cc1bb56feab5a2f55b9b939d1823e38491c21a7609dddf8946a109eb085e00971b475c33fee90a048de538d17d65e7c851842f6b2c2", + "0a31ac3f66d1872d95d3ba62af59dd67a7bb7a04d3a39ef8f5b9b24cee49d7a6fb551e5b704ce36622b846554a2704ef", + "02dcce4e362ad768e35f00d2e0731cc58e33d86e053c599328a7dcedf0ee79c8a2bfb53cc438f201764c6ecb8d92dddcc3d5519e691682d3efb58692bc5714e10f6f41ed89c6166af1ffc25c9702a40e4f04fb9d8653916f8de40934438f55c56a6eba94f8077cd02529f0f86c7e0edd308690f8b3b53adf940865263565", + "02f636a7283bec61abedf3d295a5c83ff8d383f2aeb9c1bb7a4628003bbff56d0cb3aeddea31d5a11c0b62e2e7124577" + }, + { /* i=8498 cDividendBits=3365 cDivisorBits=1770 */ + "0ad79bec9234e6718a41bac739b156d44defb6b64f6263a55b198d42bb5ef62cc51a5ce59fd85a035d0a5a7ca105809e1e42dbb8d3987ffab9d12074ac6b09d3a75e7ee5497d6a6f1b57dc8a992b72c532c4fb279ece8ff497cff7b9a20ec3e4e263bb91cc6b4de3530f61a962c10780d9f532fa9c68c785cbd473fbe79b8fd565d674d0e63181ae45c25cf3c9a10a581509be0e2713a607617b64802068f796a7e0a52db1170803b8a78817e2876122cdaafe5816d48fa79926198eb4a6c10730e41bdc0f76f92e7ed129c246fb21f0cbb0ad2bdf98eb32d39322f1c8c0d0f57c446b543ff6e9fc5dfb075391e3974a2d656301f53c76f126df2a8cbe005c8c07af2f6fee995763803f86ba81029905f416940971140086ab4b1b6b79bd2cf6e7acb66b3e3622fb71a2e98ba076dc8caf3c37dfd9991f0998250438fe7e61a02647928b763223f931fd4252aa99d1c599c4d215eba05144902533ade16b1fb95af993726cafde6186ded5eeb4e8644da13cde6321cdd06d71f66192ac25282a8166584ab2e4f71096889896c30b02e894b70dd804611c7cb7159ce82055664240bd18002b", + "01a45ab6aea57b6d7ce8e2aa3637bd89570a6e49ebe1555cf516ce83697eb2100ba142ecb15254b85c2deaad8a8a72114134db354876f1367c38401f05c2e28f15614246ff552eeab17324f37d10da91b0f64c086c73f22fe19261350f68d018ad186522b14e4c6d3f9f2608be505445b7a851d38e4f36233452c090429bc4d06f5a5a70ac8818f2764796ff05171b2d1419361e23a96e10ac1b775e34eda3d00f011ad0bc734d3ccdc1251200c8a02d6c2d4bdcaea63d382cc313a093ab68ee09d805d19607dbdd47582d6cdfde960d69db1c7d87e269dc13efec0edb6f", + "069a5fa8a59de9ffe55f9e6a7185bb215ee73c02b62fa31a13a9f9eb835c91c49326d80113405da3a40682f49583d0e876a795877eaacf775000490a248b885a82e7c3c46216b630ae196a8e0977192e2d5d8944edafd4e0f26b9bb04ee548d6480703a57cc02c701779dfe158eac10f881913c5f7d37336ceed2bdca1af4a051666b00f795e63ee09f327761af08d9f3febc60669eb805bf51e386a5d98688db15bed5d8f58e19256ade8e92780eda4cc494fe34191da27ffc0aef66884c0a06fe036065f12280a", + "01490977eac262858e3beb5d716419f299467467604248f159660710f44bfaaadb5149a761aea9d3be3b9034170012fe720c97926894c2cd1c575915de1bf24c831c6b826c4e842e1ce26d277f8d0671f7858d953ddc92b615f236e5e80c8c7cbb38de7240ced23989c3ec0e0c30e8a5f06acb074ddcfcce9ca5b9214d5988a374b4d575e11a88d26dc3e459b3eb694d77e917c99b7a610dae49468e848c95e6d19bfa8d54c6b2f2765ad9415514806cb5bb7423e5b00cf4a72f626bbb8871a4699eca8f69f0751d85ff478afaa467ab12237c87a4ee937552eb936c15d5" + }, + { /* i=8499 cDividendBits=1821 cDivisorBits=983 */ + "023ab885460d4654adc48b9178228b40e4d91721562f1f3def49e0b3cde02a569b43944c2355452983c7a36b300bab2e5fb34518547d880f820d383a6c1073d563f3315f57246e181eca371b602cc672afbae6fd54c69dad11d6b606d2f82ec4f4e5e4e7be275ae5178e82abde0fc10a86286a839fe2fa691d6addf66e5c2fe37c697531c2a8dcd312169330fcef5744a7cc40c5045b08ef3db239013a84a9ef67cad28d08e7a1dc0ea56d055ebf214409dc913dcae934a10124c27bb527b751747d2b1f497189966c90e540c34c2a8cd9a317ff39f14bc6b0acbbe97b336c0ca08c1f79", + "7de86e842efbdcd432e00fac44fa05cc9fbbc892e6de4df8740563c77a0c4af971b442e168fdee5e7b46b7e4c95b7dd34f5530ead8012f0704d19a832a7378decf1358c8d062812ab584372a07a86b25b6ebf70fbaf38b63b53d888d49b7ca2faaf47a3355018f10a90ef986103e675560779f0f7ca058a7aa2981", + "048868558a4eaa32873df36326386d439b08b8ffb54d4e97f366071a227f760e35ce66100a0d033ff3ff420da09385af20434771af8c80dbe8c0fdb063ab5f30de9ef68f97dc249e32abfb1a49f8612f6fde357a2a36d884c6c837df5e25c47a2b0f9f70a29c005a6f", + "5ec3bbe13274e3d29b720680c6f48ec9e5cdadad8a9db358f7d1e52976f01488a0a22d88e80eae34b78dfdb0ba1e32ff5e9edf68fdfc781148ed613309a241a5d610289caac318e16dc43071c5dd82d15d0949ed01039b9c4ca9d0027fd2b3db11d83b66e9ba96e30e27ed820c29640b53318c0ba955bd7f2cc68a" + }, + { /* i=8500 cDividendBits=3968 cDivisorBits=3761 */ + "202fe97c76043a6a84d609b53aecf207a91c1aa613e1b987b981d3fee8f465a3d289bf34e8ad42587131752298d5bb263f4901a715869f6c10b38d16e4af8fbd18933d2a2775ddc9270ae35408f70009ffa3d99916c521f7c5c815b9bce5e345bbf370a6461f9f65f670659844a1c3498c6e64840e865cf36ba1723379a0f13991825e5e1914e3138167aac72ee9577bcc117f265aa0cb9db2445cf21f2dcafc1b1da51d73c877cbb84375958aac4490b650e31a72ea0a5b32c1f36d41b8ad0d8b16bdab26ff9a15d1c4e1413b57e4eb6d12cd21bd50da8bd2a43b5400e8cbf0e99151b769cb187b46ef50d121fac92d6afe197f77811aa65af553fac1c971e9dc2c02ab54b126520b5778e68a4786ffa76da746a8978388eaac0d32947ff40b35d653c8e4d81272a2e8a28e1831b3539835b79cc73dcf9b04cc98afcba91fcf192d08f7d4094c906b4ec685cc7eeae33d66f8d1943c1e2b0018c72dbd52ee8f4069af8a411bd1cb7a24791d1ddc582f907d98c15db31151d879c2f134d316fddc654c71623a0dff2654b84d3119c5271e30002ed8a437f7e1382f507981936a4eace49ab3964e57db39a7625da4b6359e63c6a9560e521e6b160d411482f1e1eb8f38b44abc62e9faa657c843db3c759b17e1a2db45e56086ddc6f07ef51369017ea7c16ee8bce81b0fdbd6a845cc60", + "67ec793eaae1190d3832c023407d275fb3e012a41241f83734b2b087076c8ad1edef31d07132d0a0bf27659d06b066bac628bfe9806a45c52e8eef743ad3d8d5ae532be210745b631822e226c8e08a1cfd1a7246fc34895503f9b892c083fac7bad2da92029c272f14753df2c610029e35d0170a6f712c980a96b0b24eabec275d24b5e46e76fc69862c96000ddaacd210436bfb17e1d29a2b0c4b274d23e2abb0c3c92be6f67ba87dea3a13054534805813f18ab0cdb762d691e9ece31859340980bb6fa0dce9d492b519cf0a7db5069ccf08c707fc35c3281612b486f2cfce3d1c464ff865673a3379d079aebb6e123043791de081960aed5bd6ef4f42a64340492000bde474ebc89003bb24cd4db29ba328ea97be728fbec344dd48b9be045fa9c808bb9a110857b7d3539e375726ec51e2aea49c4629d93593b111e331e61f12885d44c9e16e0a65f8a11c0b5f220a219841f3ac96cb1e5b1185d0d05509d045ae7ef4afdfd08af5ca4b5a6775cc99854565e494b3175f13dcdca6e41257ca4e357257b94ceb2406c58c629d52377e85e566a55eb62200a22ca2ba10e8dd70f1c4a063ddf0dc7247d2c5b8444febf36e92c288574abb31ea7f623f06eb2bcb6e9895c75e8868f0c2fe614aa123068d131307c04b", + "4f49bf4055d009b8bfd5fbd7fd1c62532ed2c4af60595652d968", + "65dff401f9ed5527a8e452f7da15742666ff77565f7daabdac76100f86602598a81c02ed78d1f525fb94c8b60575837c55e2c0579702589d9d8b4d1e773314d143bfc3e3b578542169bc702d9189ee845f18ba60a2fac1f64733976b4b304a849911b61d139adb342074594ad3979405f0a8cd4368e8975a117a9df025a8dbbd2e057337086ba82b8420927811d6f5dca44d380192f108f68f6ebe9dc32e5390f05eb2b29568bc0d4abcf87a10fc74f48ff78faf476132865134a8a161982d802d4235431d5293bf70535ae827df1aa0284b18989a41b76a11981ace28f2a05a00bf1a7391601576237101f5c39823cea5247c0121e1a178ebf75c8b076d6423cfb6172cb30ae76a27d13e6b568aa6ad7de396002bdac9a04d71a77cd606209b424941f8e68af96f8bc321a50302631ff71d62e88791292fb8fd710433d34e5a3478e264c2c376715f69625b0106a5f298c50930a39bd76fb8304004c83e35e56be9bfd01bfbd62da7c5cddfc2e5f256a9d90115439f592fb8d2b6648aeb3d7bb18be4c18cba88ae3bc143b6c595d3b97a8dd177a412e1da53cb5e9a7829927b1cf7cfcad16199704f4d3aba5cebeebe558e276c3c11ce4405c1f84401d1680fa1744aabf21afb049ea3d9ba0d73553db3cd911a1ae8" + }, + { /* i=8501 cDividendBits=2039 cDivisorBits=26 */ + "4f90ada0e7f63363c02e6d68e115d0ff330196b13cc93f8f6d319bb5a0ff1d7b6bc8921d09d1a220c7389d875696ca10b42b155315fefe59ff617a534c97d188ca825b585482d6331397a498173d3ece59130faa293fd1c2a24ed198a734b11face00f3db8b07355b65e8f1d00044ef60c443863c2a22b5b81ce65f9ab37b0071dfb34b4bd72c922ff3d3689c349ca98a5e5590b33b101464e844eb0d556033b5c03eebdefdb59ea625889a0c24b12f23c08eba35183fd5baf2298f4e9c6900b283fe527d62c1fa693d1852899b9264d625df29b5e00f3b615bd7697a110c2353d998894cdafee839f5a197f9dec35491ae914bdcecad18859d40866fa800d", + "0126c823", + "4518f468197146e40821dec4f8cfad0bdaa2196457e08b6cabbd74de68b7a37000d0a64ee02ec3de5b30bcf0625b801db206e9de6a750ac2b0984a3135fd4f759f21eb2e1d05f8a80d53d05d09a2d3d5d8dae95a7df3d9b7092eb0a4cdc288b7f5f477d5ec20da05ffe3fba91e07992e713b90de6c0669dd1aa402c933effb290087ff76e9e69170323e5d1fc48f92c5191e483ae3f808fe945f6bd9474398f8b1778a866b04ac16e6af2e5956584be4e4dd04f167d4590c4360e5ea45110b913b63d2c3824710d279fa4bb394f69cf831a309193983fa8c739935329c15ae16dfb845b00941db40b86f9877817e002006dadc247bd03275f47c6e61", + "55a0ca" + }, + { /* i=8502 cDividendBits=3581 cDivisorBits=1689 */ + "114050ff7f37b17b80424aa2cfa4ba1ebbfa8964a73d3f14422959e9ed33cf27a579c9b6fe0bbd89a52f80f4e26f1b75eac195042ff32fb22aa4c04de0b8bc5b2265ff5cc81de3b29120ecc0008cc8dc05fa6fdd86e406995dcd88ce0c97f6f359d65f891d1a43d0ccea524fb4f684e72bab455c51dc580f99896d2282579aa2a3d9c1a1297b47d7319cc005c7f4e8fda6e5db9b59133e0d92a8a4dc917b05b5a67edb3cbec48b3bdde273db21b135d09462d2a2b5cbd928da11bb064675faad4c3346a46945ba30e55a50b3de508ddcc2e4545a1a0020a3000de34054e4e8c1be45e283eba916894e5ccb698b7ffeb795b427fdcb475e40cd326bce4fa517b4fc66f92e016953ec721849d60b02db0ff39d74f39fb0f6fdb49fb49119564a803682fc05ef9dd7102ef5e5c630412a2b556e002ab7405d5887b1edeaec3f7fa37cddb6df5b581c0618f825dd70ed8f9d848b8f9204f0f193237ec48dc6bb537805babb0e981c482ff88deee3418829fc115e22470515add38a2cf61fa6ce693a805bd5964b3cc08181188a54a3346e48a31e6462db378242478eeb6dbf1691720a8d607b91974885d4ed93cc31eba1849ed87c97ed5e991f393882b208c3553a", + "9699686cf6c14edc1a484ef301d5f51f505fcc391dc69fa0fbafb1ecf4045a1618d17f3791c7bec56bc58ecf85870df38123d4b3cb538ea319d1daf622e30bd921b7bcf331be0980b2d98e83c8c5946418a1e022f6cd3fc814e565eb2272ed077caaa9afc3b34f2f7fc9583455d8ced647d5be6ac188d60d569318b4cbd17133a106b89ff0dc470b6426a162cb0975eae5b1233e7e7fc1783c2f2563184efec9a19394fc1a85600292627a7fe42e5dfa49a8b2c96aa2dfdd656de6bf4d014d21e45ba597b49894442acff91cd688845d32b666", + "1d5330543307b5a47b2b65cff1a9f88a9ce4457c55eed164e81dfb2676a105c0c8a5385d343cef0c403138b09e8e6322c5c128ea36025d717da787d10bebca6388bf1ed6043059aa4697a062e8538302b3c51e902fc67d2ec24d4aafb6914f59350add313bf2438af45a9ff593e378d4ae3e20be3802bb77e26f38146cdbe477de24ac72bd7c0ecac8a618ca88c5e3dad56a150f7f002d0f9947159935cc33d3ca68d6b9dc4d552f8ac1b1c767d6b4a4551faa2790bd4589fc88cdb5cbb3fd32fc3dc1fc13a3e454413f807aff799be92612ca59f7d6f92c0aaa607fb4cf6a8b8631b087f2070be748cb57fb4a", + "8c0df65fae5033201e223651133ec654cc91eb35f1b93af131aa47de90f65638411831d1295de45fb9f9ddf6fde342d0c34564abe3f15bc5799bd893dfba407fabf9fd6f2736328378d31bd8b5cd39f846d387ac9ad42bf00c0b9f270dd1044bedd43ca47b65c3740257b144dbc643c69d9cc6a48cc84de480bc8f030c85cba829e8168040ca4fd61f300eb4d16702887a82692dd5baf7c264bf973fdccd787a3eea28acc62191031513d9063b94c4a18ed92954eb22e5fc31d51325855f8d2bdd9665d1f505f5158be0c3973d0b7f809a99be" + }, + { /* i=8503 cDividendBits=3902 cDivisorBits=552 */ + "0602405f99576ea1f75298b3aa3ee15e17b441c249de78ebb8ff6a0d49c40294dd0536687a73d94aa514fb0a8aeb695df631c88af486a27efb45d69d70ee28b3484c90aa01ddc6525723826ef2874b30054a5b4f97dfa5104355bc2ef3c53ac95a41093448ac66949af2380755451af5da39673f9ba6c3bf5e76cf609270cdb18bddfb1df35c2e76086d8145deabc2ce55b959c41604c2897c59a9ce04b34ae4d4fc3f1ed3b52ca00cafbe4993a46975bb1a29de118f2d462e8e5fb97c86c57ce510c1c030ec03f692f235a2d464871d240e794390475b0b20dd608efe226553b4ab5df2a57b221f5c89ef662cc3d864169341dd16ab1d00297589488af3ff2687048a4056e688ad65db60bf3d21b0c7a8cc4669fe15b00e813ca459da3f18c49a765e5019d0e415e4e06bb2b0155904fa249e70220532048a0b0c5c2e294bf22da4d785f3a5e096c07c7c5cd7f75ee13bfe5a60e46342af08b783b05a1bb25b1a9fea0e796e353ccf8c84f87451c4715c3eeff71cde5fc81e8e75e7a55c7556bd29c2db9af778194042b1798109ea71549034fe58abd6220dadced7f90831b894472753d9a6931acd278261dc247a77f4ea1355da52d1cb3debca8290565d8b5affb9e38dd0341fc5d7991fe6f2d797623394c32df9b4f742bc553445c9e247ea27050ba010d1ce", + "bc76367d887c4b6cb615a5bbe7410edb5d9f8764538b439e5384518ca6842ae4b452c4de77ea1018479ee1d84844d031656aa7426f64f3f234dd03e6f2ce4ae99c86964c9b", + "0829820c1d8e9f83e7d382f0db0a1c88537b624c57655b88d76a8dd7584b8a4121f4efafe07a6e0f3ebc21c77f4dcc2623424630669e63a7ea64076d66f508127898672fadf23366a2f5ae4556aa840f872c48ebb52ba9be545fdab040ed4b1d480d297a20c4c112b96839f41d93cd71ba284d9d6901598c8473cd580ab7f7257c73a0fecc009786f15f1088dee7647cc01b609813c6160f4b516b3ec5a1ed9cbd046baca112cf059c46e83330c42aecb15da94d4badcdeeee7250cac0a98a68e7b3036cb160b63a445818e48fc32f761c2fa8b4f96af79d4b65eb3ab6545407021895d328b0bfaf03ecb23e080211adf78f3d92a12acb42ae93c92d1a46fa90b969323c004fd18bd933fb4e45e949c361bb68832c32662cfe7a6c51877efe8127fca803eed6bfba391cad56ed08fcb3b9f0e5dd83e52e7b966448c1c934d56ca3abe6b54622f52b249e142a54e8cd3c9931149ee2ab10c975ab9b1c730782c9744cb2ca971ab4dee1f0280fceedba5fc8150bd287fd518eb4b5b3cb64e346431248e5d2899ec0652087502124fd056868cafc91de250b42c70c6fda228b4b1d6b8181", + "20946f570cd4554b38be1b5564a20c1cf3da029af0473833163b72bddc3e5be64f112c7c19f37cf2570f523e5159296f814f3f84fe4b6b71f38f27abdda2cd8b717df11cb3" + }, + { /* i=8504 cDividendBits=3310 cDivisorBits=1566 */ + "105e4923aeff0a2c92e4c995acaf2850dbc67c1e4c45aecab73be1583f8f0d87556cafc13c222b29726c7013766f96fdbc5c21e3306243177a5dcb40f1a28d192234e294d0780de6bd35a7f75234f43d063a3acd32f5daf63f450307019bb9a6b2290a44a26ec5c5b753ebd6086bdd7499524886ffff5594595c7304dc89f0913a1b3a05a42701cce35ce2eca173d566815fe4f981492af2f2253299d94fc95933659646a84f340d60a2bd5e15467b6df604b07e480d607ee1d554847f3ffe61bec8385b78df3ecbfc2bbb235698542e284309f0d3f3590d166575b59a9dd2c13db6d61e02f1ae6c67f84226b335e86c95c79c7682a5298ba9f539c8ca2134a8f9cc0cbd54062b6574290696802b8034939e4951ef8ac01a50753197e1a25b422515f891ba8c21feb18316e353b51649c8f6c5c6f78a8bd747dac2684d76618f795060d18ef69da8ce4dbb4708df3530d956b01960e862689458a42485b3e4e5ab704c4b4ce594955f41aa6210e048321256fb5d993fe714024966f79890f11277cdbea10b8f0351ebb78aae265ae15e70950210183390b2137c96f4335c", + "06445f2251d9241310314a35f6f4fe837ea5caa5776b3508de10b4bb3535ebac45ca04331ea2633fca411efaec546e959deb9c17bba2783664a20d94a920ec390de869620a73cd06d4cd47659e637bbd629fbd5ef15490dfa1727487fbc926fa73a097a7d017df46285846dc4bd1e6729d41b7aa6280d096ac700df2ab14249e9ee4e63d078cb2cb49731591bce2a969acc5900a4e698fc07f41ff1828afa98b20ebf10dd09effcd445ac63cdbc94b998184c63791337752d4ab1e5a690a08d54c742cc3", + "029c9e6e5330e120a8c01a1d88b1211075ae3ece46d3508f5e0671ee9f6a6d794ab05bb9b9f5811893c692c873608f375cdb1d91165479e148d7a2485f35f26b7d521bf4b4321eef80cb770e31895d9ea50a8de7c3ce5229a01626370526b296bcc7d44f697f7529bf7517f8337fb17bc2922fa7f25dac307da4ef0f6fa6a4de11226a28ac7a102893c49775c37d5dee3df76bc24dccf1b8bb864110e2483425c5dfb478b3847768ec6c41bed4b19f0e482fff197cbe09df543fdf9e2bb17cbe14f637e3a4dd8d49ee879e1d0e60fa378187d6f47d6367ad0a2909", + "041f518d64c8903d9f48bb63d1db67a3f5026e500af28ca10745050d021583667c57b1a83be6dbec195fbaa06858d564e52c1520e85801eae80fcf9494378a968a7eefbf0691e84fc342b2695a27fc58df63fc08e45c99c1f28ebddba89e94be37192371fd7a4f7e00f2eb623a3bd2e86545d3c8117e444b33f545f1b2547bbab306c0e5ac5be8071e0d03efe88110f6b6210c310840c18e99e25ce184a9ae00744bf348733ea3593a646419cfcbc89080c44cc705cad0e37637500e5fa9b07fc5156581" + }, + { /* i=8505 cDividendBits=2965 cDivisorBits=1774 */ + "1788c848b9765a3147f91a75c667fa2877afc438888664552d7a4c0fee689129075106743e86373385216c1bc95bbe363c55a54313657bf28dc99de056e7929b0d2a8987d630ffd7ebea9a627649b1451b40a16912576a9e730ea522939ead2d29a14316307d81c9fb33f15d806c07c7f086141dd3187f2b33c790444a23acc72fe0048111029e79eedf9f0a287abd362ccfe3155aa9961a7271188c296d77d32eddda6064b49dd9c5e2bd71df8a6443d694d2b843467228b5842e479aca9f2680fbb4616ca8cd1a7df10bb7a1d2d15d3e5ccd239f697b986a7cc2a5f1d089fc2abc95dac5ee5376a6c0c095c53251a8a8af041085648aa5d2f9643f5cbe4992e6f964d8f38b8850dc76f46f50f2243b529e91c7b794de3b6c1f603972ad0dbbcc4a7d5e5db141be75571ef7e130e3763e15a08f518e45466b715c5aff6216335203c3fdb7e1bf78daa27c96c809e0d6f8498816c1e1b1f469aeb252713201d848d51baa0c3079ac70c8ab50a4ca05d01ad90c", + "20cece1c44a0bb0fe61b69b38bcd4e54ea97e9314b0170dfc196b1e4de7d608a3699d8a0cc300281fef43f7052bdc9c370d76b033760284a54b268846951ff65dd43aa1c1ea5186de5f74f51890b2c76c6f2f96077e76183251c01ee442dc6a369ff6f7816acee7062751d0c2604a04a6d11103c42ce1c554385d84400efe3b172b3093192b9459a8dbf05b1327ba75963f55e222591fa995b4669fdd889c701156e6fd9aac0dbd719d30eaf65d70d80f4052e0736008e1d9694f4de7de2c7c972860bb7ad57acc42cc53d9412ef32649558c519846e62c9b289e4216a56", + "b7a377283106791298683b5dd86b0e745fe1324afe127cff72082f23d64f8691ff9b3720013860b959af137bcfe12369c81549ff25dba83db5e83eeeeeff8e4523ee35d37b4efa49e1adf0cd3f73ca41352357904696186ea9edfa88cce1f54a78bc2478fa85547f76c32608d51851926b1ee08927c71cc46fecaadf48c4d3ad1a7c20e15361634940150816fc16606957aa4d0e3b", + "1bd0f67b78de725622369e86c63517350650118214194e27fa1d8a80da901c48797469a6a846f890c287ea83fc978843def2afc346568b89e4ad063d098730174dc386b15d373d2de61c884eda61b267cd623c1d8c0ae6fa14b96b0853cdf423b1ce62b0a8c5be8cd1eb1f7b11bd95c06f6391e895eb2c7cc28984fbf436321d8d28fe9c9889ddd97ef57b140b8069a82044d827b7b6ec7ca79a97ba82714caee79613e811d1d595569b640b3865d8adefa39da87e5a8501e732184a4b6926f5992e2091749d93355987cfd9c91d586472ffccb4dad7bf34e1e050b8a33a" + }, + { /* i=8506 cDividendBits=3846 cDivisorBits=1576 */ + "20bdd379cf6dc17d10db5f0e0aade4942c95417079012cd8b988f82d188f87d6d23b7c10ffe976c4cbd48d45b4ad8d364dc07e3168920764c839c5a50a8d86e9e19c4a1da7a323224b156b31e50fecd2e32b3b4a29c105708f30438d2f83e2e5bffd6405f0cbc9cb3b362e9cee4673291bfb7bea184cf6aa930012e48de3e33a0cb77b0221391f9c1257b290a27246a4272494cf76b3aaba253533e4e153e6e668089ad60e65a568fba5ab5527c36d10efa2b73c5e79691da48353e97a477bd3c07c46846aada076bef7b5d67cac7c1296536e6514e5bcd5f8924fb11834ad6e0d5cbb39d8f0043c4c5d2aeda4248e169429cd648ad720a7bd912787a70072e479434c068ee0f89057b1715f27d237cb702ff48b2da6cd1fb3a8d14b0145ad02bfb5551684ef756c1f447bfb9b4b8a84ad039d2f3d00fc75fd4333244c4467c4778c4a1c0a59de227b08c7aece945cf031eb372a9bda54f54c0568dfc9c4ea9a92af25d75ceafa471008debfc32dd1722dc44ce0182cec346397e066df9c42958583b81ebc9f9971e3c9f188fd071927594c2c4d963c1fec01cedfef7f68585cff2397c483190b528f17b81055200061036443b45e68f6f0007bca7556977b66d7ea2de18c92ffea866f46d068c843a4e1893b4df4f48f71c2ca5fff711839a57f", + "cbc318c31cbf2fe830125d523b9851fc2a7e24cbb711574ea23be7d98ee8a28823156afcf6ed31535c50e0870ef472195feb1b3c010d5596dadebaf55026f8d4f0331a77dc9a98cb669aa4916ae3bce116c7feeffa7e05b086ba0dab4c0384f59e46c428c0c3f1799d7f7ff3106659ef31d6572683c405a3641190272eb2a9d65459d88d2cffae3d670680275f3eefe974bda13e1993300879f1fb9601e6e913422a2f9a3c40e1285d95e99cb7698827c152e3ed96d70839d99301d45b0ee8b6114e21be5f", + "2922a697b9a9de6352e6f29f329c3711fc9f79670de05a39e0fd50bf6df488ac89e752f2d4ba75c66a9ba2f43d8de479e8d5cfb9f63ce2d8d2b4d4633caeac19304ba227f6afb0abbf3fb0412bd55edc1d0c0ef1c998b566cb696cf11259913026d74b1c7025f583a76c878505cefb8de84e739c284571c73317df2e767be7793fb5c4c36bde0b1762f313bafa93bf8b33a05ff325bd5642c65cefca0e143bfd23d07d6dc1c0e48f4e6acb7a0c515d8d044afaa51004da20968f9da7452c120b8064aff826f6596e1f8bf70d02d16f371fb0bf42e93d328cd8ce8b609c5cb9e9d68f81956d8e8d19935ca4d5fee321a460c2ae3886a1fea04c5be055c4152a2d43391471f3898300d8db30f03315708becbb76d6f441d0d43a8257c5", + "942c6d45f87a4e99a4cb73c3ca497b2f3c5931651f3ed1662be401875d162dbda02587732310c3f937263ec25001a4ea4a5b45ddea17efb8679640b37bf20260f4592d28ab4cf883a23cb26897ec4b12c6ea752f2aa378181551000e112663c5d87ca0f6f1910d0d92aa3e198c6037c79bdcd6d527191524212240d280bc19c9c9e3d66a4d0e78456b062346937f84152c72f3e8689351e7d5f237f7466c667a6386556784099880caede1079c305ebd9c375dfacc418a112d168206f4da30d9a24e51dd64" + }, + { /* i=8507 cDividendBits=2069 cDivisorBits=95 */ + "06d4f4dd145f64292cb9f162b1f6e5faba5546eb87dd93dd28bd59de1d389e127dca72106a412a72c136f79fa2b1b578932c0d61199967996baa2c193a8d166bf6fcd8f3ad43a46758c3cbd7eb1e61e60c665d3baab02f5050743631a4ab4f476ec6c17d5c603fdeecd47b52fba1982ff0a4a16b56dc0a56f603b589e726d971a2394d2f3403d8dee77705620f99bbe8d7dce1aba1668cadfcb862443b8fcdd427bdbb646b394d4e38fe90c544c6e36494e984859cf0996e3abd6ebb5a9f0f6be3c3eef83692b396c1e463ec03859e5fef993677988393b6961faa70d1d14d2be1449b56a63e2df10aa7ea99672f38a390dee1d159160e5c03c5ae156aa645827cc41b", + "107a41e1d598d869590499d3", + "6a24443b83fdc5e1e4694833015c526e6c0c0c83a4973563e6b8d349525f35ca780569f2058eeaf823d65716ade6edea6f60c45af7e3a4ff194daf6623f1188c6830c7a7842aabace91f7204e1fc567fe2973c78471b4b0b7da65b91c75fb15bbc6b670261f11773937eed18610c746fac52e09d39643bf9f714d6e984eed250ef329bb08e5d99130e395a2b4f31cd2b92608e1b2ee7a67b71cad205b8c4f46646599782f553d36d0c07688f23e62274bcee775e5c9186e4c36084210137e475bc7a4c0be3d7a175c529331e68cc778889533dacbe7ade91642cec0ff88bca69490778cac36626ef5be017cc50da7d3895ab1a2e177de5", + "09c4f53c35893c15e64e235c" + }, + { /* i=8508 cDividendBits=2113 cDivisorBits=547 */ + "01a9b8d53bb6c96a906106cf77a992af99fb455c53b95abfe8db0e01d966adf7f88286f9b325d7da0b68e752b97104c42d4912e18d5b3814d986aba8e8d08cb3fbc0eb461dfa3842d5cde25753a7571b808210addd71938604856895575fac3dab3341af97bdcd0bbf3b4d5cfb71522fcaa9ee0d3317de318cc7f97e91befd91f14d1842b9eb285baa5f9957b13edcd9493d0e58e58e6de6b4da23666273de65cbfb1180e0d27fa3466f81df16f82dd3e34789a3795cbff4af81430b882cfd58db91577d34a483db1e61babe4abbe13792ca93531bd926ef222d8c79d97edf37395581bd198f49c07257f0e317c6c23a4f7da2d0b9bda7350173327593773ea2117be30457f6dbcee0", + "017c6e54a8f89cc6f670ca4f5778c2e7391a8bd00cdc77163f3cadde77eed8372dd3a02ebdee6a7111ca9c142b672311174c9fbf3a9f8527267b6a1a21bdecafa6bc0bce07", + "011e7a2f27420e6a8a6c8a2a720376444da6424110b1e5657d27250dc53957777b5b4bba80750d85921955dc25fd0c48513d01043a92d64904b32aee07be38cf044e54479f41c02b9cb9456ba351801a132f04d26e96b99cbc40cd5bd7da56a5fce37e3a8098fe26d19c4b152a2a285d42dc1267566623c67e420a7f17e862ef4e4c73bb42c4d0be131f07d82b584371c0120904d5d70f467ced8197dcfb2b2c3f6f9030d72eb733b619227af7624166d97e3468d827431204b4353e0f7ce5b3ef8dab87d9", + "01672b353043ad5171256aabb9eea3510631739048f71d97296e65eef92a6b9208452e0fe05212a65608c97f3644ee785009017334bbd8f5c6b652318e0357d8f2dd8779f1" + }, + { /* i=8509 cDividendBits=2165 cDivisorBits=1718 */ + "12cb6380e319d1f58505430eb4538d055a2adc49c03d18ced3a4dcfbaaa36beca667d7ffcc266e4d52b72670efeacffe444cf034f203270faaa4a4499a37b6bc91a59447c4475ba2cbc7c2afff30e671b97b5130fbc721ffd26b54b8643231e1fd40f25efda347648f7bddc9cb7b924d00e0a75d2b8e728de21f9923657cd6b391ed8fd988ba645289e183206a7f24f8edc95fc68c23dcb77a200d0828df5ac076949eca7d4481674a6be9afc5b1c4055346e164fdc841af7dc20e96274d911d5c6a786cddb39b395e8f04d5947dabfb4afc5d613d47ba0ffe36b7ac92a4b9572115de81cf084f3167d879eb3f9bc37ee7f45dbb400d134b8f5bfa499bee743ac5d1f96a1c01efce496693ae1ee9ad", + "190fb8c1bf6c815889bbe12b7f9afc17616d34cf2b389ac98f87cb79c717160a96e28597ce98ac93275e70453a264359a3d1cb292cdbf1673ad91b5cfa417649950b5159a94235dbe94a54e9fe32121beef2a7a44fe240eba87b483990c9115af4e1874654a2047103145002b94c41675f714a80a8f0306a9ba671c42a42583d1e1863947be58afbdc921a5f21f061e87d7e156a61e0c05a9d5e464c787bdbc72e8d5a69b3c90d582bc5bf615fca244c80a11d5299b2502d26be171770e28dbc5ee27d4bf891252b2071eac3a6d8d62ee2527218a6a308", + "bffbe3359168723d48e8f97fe65999c1d3a6218253aef55a54ee598dd1d1a48f61459224977adf1c1fed473ce3601be0101b36e9abe91d1e", + "0b5ca982da46309ddafda5757142fd697e5f83d99ad6f5e8a5fa4bb4f092246ab54befdbb5fdbc958120619484edd75b9f44fdc308ea6ec436b43031c527cb87c2f9d57eb9b9bb82a7e610ace314ff4ab7fde191e60bb841ffb8c8977c7c95d004a34c6ef4380e577caf2f42eb59f4aeb4e13bc1c01dcd9a5a5e8e510d51768ae2de9e06057b3bcb692cff0b3e4a497acb4051c8d5aea8fcd97ae24200c133ddb183372bbbb4fb5358d9b8fc6cdb429d52b5937e0e3125a5666a45625cb8db3b5733c651862ab39a8a1f638cc7dea82436ff912fd7e6bd" + }, + { /* i=8510 cDividendBits=2852 cDivisorBits=2447 */ + "05b132a32cbd4ef1b8197ab46bb13834bbb87ae5641c2957dc61f0d7df963d30da6660e09e626b929c09d3c2b2e722744b13101b517b2f9022a1f08b7bef2ddd5355baafae6c86a628eb701b0ee1b5b673a0db34580ceabe1e04b3722b5acfe239cb6188b1559d2015615917604e0123091d9afd91532214a948f674e781811cd6505d338c5c05d66edeb9011abaa247b4c3e45d32e8a825b7155092b1cffa547ef019eee66ae462b86acf235d5e82a2e8594328e5f6b92af664117bf79c2da3ed1f3aacfaf3d0571836f6b2cd52cbb2f5d046bbf94e7410eb28c6225eb8df4431364f88b72b28ee3eb8b98d355cb2d3cadccfc201774856043c74bd697f8657a6ec77323e05d1c1493d36edc6b788dacf0856eca20bc86b6f69f0e18b646d743fc070c9bd4a2a06dba784731ce45cd24bdbe1a1b7b235d2a1fa9f979ac0d647df09fff60f966c094954d0ac2ceae7edcc8d3aaa25afde33f5f840b81f374d0fa8a2835622", + "30615fe1c87d8c2bbad491bd95a8f6a9c9831adcbcd06cfb58f5752819376c305c86e29aa2de55701f957b641cb1595172a22051cc3c59ebc1f00eb6336532d5a04a17e3fe92b89cae1057b86670f1ab1a421bb6adf771f33439112b56db4c44b465bb8be7b19297bf1b9dd1d59acd34df0bc245d1a048c0a2fddac038b462df529fe4163f700cca82a7c09c37fddd0f4aebb869b904146a87cc3e099b36aa272838e98b9b1908fc090d8927e1340e0ff2313362adb572f7f9241647a947ac849e9650a7b939cea3366667cb607a376a3f35804a801023cc6029d32fa01bbb99af79309f06ee4c16a9ba9cd4bd06d1e48bebb9e415f9a19a8bfb3e5d1f62daff0ac10d77bcb1c2f053987a03db476c0824b757ce23d395971d416b44c555aad422e20fb563d7c05070fcf949d7008e9ef0a0", + "1e1e9eb0a2409dca8b29028e245fd20fb998973ab2a9c8088fd680f074a25ba5bf00794424d68c5a178fa9c3c4d71fb63e7326", + "0206a2ffc267e6e3e141f420ff7f5cbfe459b30f18fcd3367d2ea14cfb22881af15e3cf66c03e0f55b0119a15d62ab3dad1d0572e607e457b92ade8ef747f5a3a063b41ff8842f8f283df55d1b969f2e7b32b051e0b171635f32ac852da109f2dabb52ec29962f4007aab623e141a1b45893b06b24ee6f3c62279a93652872d4cb947e52a71ebf14bde729c145975593bf565ee7ed5d390157164de5c360d16fb5dbd645e02ca92d33cec0432a6ca3beafbc57e889f1256113a1c104d3ae36b4545bbfde7223a1f4fa351904240d12abab54d706c146c23224c20d87c9c37a8d07530a64e3afed6e3fd0fefa193816a00371169e0ee0d724c2333a1a1a06c97adab2fa3793f4a7b49bae1249a80ca6af6c39d12d59e5fe3a88b8bb9283d33a81106fbb4f2c0608c67266b764d8920a13be62" + }, + { /* i=8511 cDividendBits=3199 cDivisorBits=776 */ + "43cbd55987c0c63622af8dc4804a1f0e6aa23f8d4eddbb813d58806a7d77fadd26f8dc1ba38c895355aed6e5dde990650e76f3631172f9cfb630b910d81c762bc1e33cbe585e9f009e6ec38bd1f16967925ae5951be8f8ee971ff7ff9c9008b354c53612b7dd8b0be24840b474c6f846cff5b62c0fe22971d61dd8aa2bd6505e805eabff3ed7a2dd447d888d1ae4ecfc2e57c2bcfc723a8aa81b3559efc4ffb243523c83f987a83ea4fccae333c70639292ef436ce2605ab052474b43c7287e3ec28234c62e94bb38549eb9e737e88030d2a82892091389d4a8b0e5ba77c7dd3143bafd1bfd2a4723cb2b1da92b063f5b291ec09375f84fd16cf1949d56db9509af45f22b5fc9f1645ddde516c9ce0dddc8ad96c964fce054eb94e25342ea3da0192781c6d8207177366ed05413d8657ff67d088106de9668c5a2d6b8e0d4ec7f39d845495912c377ec4a79094f9a87ee7ed34f13ca6cee63f48e8ef246e9acff2f80ca3bd9d7228deb7d7ff7c3b59021989826be51432af1c92f85110933c6e4f0ac6d7672ba23dc8147fcea3aa83a3", + "0744638ef761695cffd8454411070788124b08f967be929a0496a3c1a2d792fe9106c06601bf629110aafaf8889198bacf0ec98da9f9b39cb0e3b30153e1f56540e29ffe9bbbd0c23f2e245d5954003a3692eb1f54c057a007acc51d7211dea46f", + "095442b0fef67cc30c2563de9ee163e7c3e363f912d0ecdda2735aeffff053e7e084b25a8863156f7addaceff384f1b048a104eb93b7bf8bbda239ed23f26875b254603cfbc72d35ccfccb07be02fa88bf86016d102ab44eae1d6ef19d07e7f4a1032608aab6f15f521875668c0a8572cf63c3bb9cfce08c4198518d173664081cdbdf1b56258626598259ff1af10066714c8d34907951e345e5b4b811d0fdd01d5cc02d8ed78d5721be6c9c0b29fb0bfc8d282912293d45390c6f8d9176f6b2d0fe047179c0533434cb665bab5725cd90450477af17864fd39e405bb611079f1f6a7dd0e4dab6be5e82a40ee6a900e82289db7eea1b2063a38a00a3d95dc0bb64b833c0da2b266c837c273884685a66dd04608ef0e1ca4d13692f6c8ad4c7ec9fce6a711da0140ef12f1ce20b8ea84b", + "02f0b297497a71421455438995142e313d8ef4ef859889d69c4cb95044cba1a3f68f96372b53081656306efd9d7e007a5e17ad785d41cedb8b8e59d28fb938a056ded37af7e246bd1a15c597347d599cd97253ab50dc66659bc30d3b1b50f57f1e" + }, + { /* i=8512 cDividendBits=4049 cDivisorBits=2486 */ + "012113277a7aa4e6d037d45aaac21b20810438d321d3aaed734543d54f5d869e167a002a7abca2ce330035d3c650c8040f996d34bbea6751420e0171d9188a60e6511c476f2806616b8764f9e5a733f39d52f1ba636967829f66b37bdd1e0e02161a050dc77832ef97eac55567e6685a32e22159573282ba4149b8056fbb05f6eacd5c1b67e06b445043a4460e8a6b64f697d50dec6236fd605f0c801a73cb44d2a7e5cab9b2ed4b07a94dc99cf9e129fe44844b1ce555dbb9560ae469be5e046c5b2be884ca3fd914a6042a97a0efb78b04264c6e8756580cb3fd821538fd33d7553baccf54018af30edc59a245b22e6557637e56915898f65ac6319dc35c8ff25c61617810e6dfe3e613d3b60f1d20ba601c1d118b67ab14b60146aed0e30197c04cde63b79eaec6a3b6e9cdfa1816c9c4c953e5b98ec5c2d2aa609d03234ca68f343b7996a460abe23eaf206b2d5a695020a5615eae299f96f60d64f98f2fda01cd88cc70306f2dc33a210e9a10ed94ddf71c2e0a78133c70299bcc36a634786849d10902569740f0fd415405ab94e1957e893e6c7e901e6d22ad7d7f893ae5e34e8ee372c74db89b924a1cd1fe30c86274d74b6355d1ff118fe8073999ac9e4b9ba22b17130677fb212111f8f46aac2f2288aeca216a4a010d5383ceec7fb4649e6b0315320198189c01fd90bdf976f70dac00b8dc346f52a4", + "14a358289f330e7729a1a89354133aa2b5e369afed2544be36bacaa39207f29c1ab78f37c1383d5b52ab4d205677d8692f6c1f8d1b055ec9dd2690af6d232a33a0de8d74c26ac38065605e036222083b0ddbd91b589c8ec43ef62d7244cebe49c72adf1bb7ca6601c89fc5dc5e0c6f67fe91563680cb341b72613e44d03b03b92f7c1b53995a70d3b144754f20e08b34a0e2a7151b1089afbd39cd5254c47e2c994e1fdcb369ea5ce6da5938ed6c5ac7a043514bca95038c8071e28421a9bafde626ba53597ac81c4adedcc3a5147d43198b8aee9269d3969c9dbaeb34b6a5d70e534688ba59cfc194732b941c8d1427e76e002cb389daf8cda268832849c0810a5fb38d08ea87c19060f72840d453a8bced3c3ae4e84aceb0e4357438d150a09e5bd863d443e4aec79f36bf96bd7eacc81fcdcd800995", + "0e01c2af3fd2ab4e1e73daaa39de0959a473e956ee4a7b54bfd3b5e33767f8fe5bffa2ece2fd6e3cb3bbdd2f590e8e369b8548bef8d4597d1d29d617bbef14690c2f59e78091a9ea587b542f644957e3ef59714bb9463f37dee91a4ec0e5a6d6a840046c033953433877fc6f61dd62decc7d880b811784789de2ca080b2069c3ba9c580080450f39300e59741f4ff78b996c77a1dacb21131504df30403f0f605c0e333a7e7dfdacb493287aba892e7ffd7c17a3b313281e0aa888f4fee36038377766da", + "045f6c32701375e147269b46857fa46122c9420efe54302dfd46051fc29c66639ff466132ee81c69e49f7b707d29004ba9b3cf9798df6e1ab9c0129c3bafc634c523ea672ca50c89efdd0bef14c3d9506540e8c5b77086375faeb341d22ddc06f5b8f4056298d65ebd7d4243ab0d806b53a17602775c5da3fd22e9a2bfbd4e0cd45b0523effaf8f5936d1b3eb7a3a71fbf8608118280b8bbc4dc3bbb03c410d83dbb36fa83808afc36e28ec62e388b64cc8b9057c54a599d6edfb5b98ce3ad77c4a1dab59ed1b7b14f259152903487b309dd413d9448580be10ff5d93b2a5b441c0b685be37e2693068dad7c4af201d563e46103e9a86d032cf1e0af7a5e713c92b56ee8e3fd3e9f3df585510bcf2f56dd6744432cfc3ef75f18ce7eb65521cba971381fc1f654d1e0174d3a992257805fa28eba52cbc2" + }, + { /* i=8513 cDividendBits=772 cDivisorBits=586 */ + "02e73efa439dee55a1fda24ddc0d4326527dab19598ad0ac2ed469873e68814622c92b1e87a1c01593ccf646f42c778c8f3e4e43b8b6aabcc8ce1b772b20eafcc3752da6059dbcdad7f066016c547ede2bfa49ee5635f13605d797ae13e2856140", + "03f0c171cc4f87f60684c828378d14f23dfec0e3680d9e44843b4c6cccdb86aea886cf58125763e58a11eddf2c0cf8d870cad0e03341991fa774c6f59b7cbd2da5852a2ff93e873e3d2a", + "bc9e9713181870f92932c18b2012d91c549c0acb21f0b0", + "0340c58778586dd214d73744e4f5410f88e1d00e24ec7cc5ef7dcfe1ceacff18fe09fcd4f7e9fa5a794bd67298aef240c5ccd0e028f5c3c3b39be4951f02746445864727ef225df9f460" + }, + { /* i=8514 cDividendBits=1298 cDivisorBits=286 */ + "021a5db9f821f6d54d7b6fceb137e6693927d2c2b1c757b3364661216446cd4e6706b9cc9b3cb37c23fe15143c8827202fcfb40d156976f50af1440cd788b98fcb47bf8f9f106cb50ef683eb4ce1f0709740194536aaeef8d6700b40e53e20752e20122f0e7a7bae6742343ffa5b98a9e602f98194221fa3c192d389cde8267492664d4844175b5acf1276f4cfe37351d4888b057d6b8b266492b84452430f4f3c8781", + "05966fc0cd25ff6318641d7a8b1dbce2496ede57119760e435dd1bbc37202c1d9f8a7940", + "605973668aec8739c36da135e0201a578ed30ea12ec6382e3fb3b3602d9f78bbcd976558b06faf84b68fc9d40e307936d7f263d66bb8c26693e989e2247d0c2ead76645c9e1eec973a4583ad6787c73f3d375e0778eb63ca98a05e28b761649639c05a3a97674b20281d2380a45912839f585ce1b0c702d8f0107473893626", + "4915389bfa4975a5d7cf21b5030d1ddc240fa7470b4163482ddb19c364f06fc7db0801" + }, + { /* i=8515 cDividendBits=2003 cDivisorBits=1318 */ + "041c21c77bfe7dd174f96a5ed877dee86627b4eca06eed35d37a72f92c05d070feda51813026623cccd82eaebbc5de632010aceb64889d2894fa0e269a798d5451d7dd4a4449bd6d72bca8cb91e3d3aa0633780a62cfc668b5420301cfbde29b74c0983d3ba809809b7e44fe57810d58ac3bffd8c00e1a16760ded24bc78fa77083d5188d4ab4a8f01c0e902ac3544636a51979c4fb7b1f3030857c70f87f4ec5731ab164e07c56bf4805ae7119491b241b00497f0548fbfa2798272832ab07881c3ebcc8f8eb5cd9ae60fdee6d067e1fd89f9313a7b78ce839c9ddded91864f1b2933058dbd47a18f18271533df404b8d7aef9a4d039e3833a6b9", + "048557b7cfc90914fc168e540c5d97eb783386a930bf401dcf8470d619c081f4ff3edcb4b3cb653e1a3e1d83d17c7b2eb610a04c81d8d7baaad35638ab797d69f459619e9246ce34f7aad238ef3f8a1360a0ad22ee79a26f854f217858be04f858166035355aecc9870d7f1dbe87b46b089673f808e47bcc6e3a723d284d99c8a9f2f6edd38ddebc0fa239f74cb941304942b03e5d868f710817339c8492edcea1679e080b", + "e8ba4f72984df6ccd3a9c7e463d0e4b6da490738b489335476f233edaadd7f234bed9a55832d15226cb8def60427b7faeb37451776cf3cd76045c33129f74a983c96b475f967807f64aff7f95eec1aea4e1676233fc9", + "947f4512a9c1997a6fb089e44ae4fd74f499eff4cbd8aac1959f64f5177aec56395a699841a0a14e38ecd0b0108813de68839e6753d91ba3056c3d0d70b781cd246bc7df7599e76db783d6ef69c6f4de130578389d59dfd399832e12657d434529a547e4c42b578364aead848719e1b1e27bfc0f1210387cb79202ba435a44f91fd2fc44faa4e4eb407aa3a3bf7c05520225fc902a0a10a388df1c148bd20121cda3a116" + }, + { /* i=8516 cDividendBits=3221 cDivisorBits=94 */ + "0e2c20216e82a0a590b86f7605a8109ebb87ea61cee73a530d6a9710747eac0f141c8fdb3661851b33b957da0157c85abbb59a3aee72cad83de74a163e9992bdffdd9b2eb028f6188d124effd270de65791078125fe069dcb12eff4884f76a5914c9071b275798ef4b0d9ceb096bbc95daa94b0f7c3615319baa21e76add2576dc6370872adc7bcec45a1220f2ffef5f592a3b59f5ab5ed2f147f0718d9f6270c5f03c9c7a5de71bcd51f0dde838cf6ab0a8532448074dc35ab4d8a31104d300c73571668f3b9d84e04362899431b1a4e2806cf2daa577c902ba12327c4e8ca527bfc92067ecb5e4b2ac50be909ef7df7c34a63262dcd5ef9b6992c300f8aab1aecdec40ca941d848f1fc46b73db0fb5b6d0189157df5d8711fda5848a1b92a63842a1b4b14a361c8db05bf0c393eeff2e0cd33b4b28219512001366fc69f6a1b04e328e68b0c41c2b3e5768a4f3af1057b05df08c9fdad2346abcf480a8a8bd8b4e00e11795b0f18416918ea3a55ec15322efd8f893a17ebac7a0d66318d598585e43c21349f00a0b039870b2049a6dcc274a", + "24855473a144f0aee47e3cd4", + "6358128059adfe2423bad2d8d5492120a50333bd560bc43c31ef639a8e526f166021a6cb62b35d75ce46c0dcc07b42a2eb68550926ec44a5261c775ea4ee913f0f7aad2c57e4b7aae3ff19c430083f2ae297cd0ef3bd93b2450d06616b60de844a340cfe35612ea140ae8a80d22430d023a6288d64c91f12720c7cb214aa52ab363437ce19541772fdca182cf402fde06fd49bb44dc12be4727cb6d747aac7915648a8193c716dd5a3fc62c34fa999b3d9a7e3b57b55ec74a89512478fc37d3a9442d43bbc368d1cef7d1fee3898968da5e49417370c74e7bae6ab9e66d7e57fb4ffa884ec93a0486f48003b79d375b6bc7203810d35a85139265a0356865d61766a70704554da0ba10b89df9e8102b3a31ad5632855d267d77f434fe86012ceabd76a6a63621edfcaeac4bfab31e4ca0b9fb992fbf634de229c2da60cec5ed0b18f0fe3a3b933cf00d069cdc504c6cbf78db318b00b16fce0cb1a21d0f55486ac2ccea90524ece8804a8cbec67404f540893133de395b94d06f61afbd901da28a2bfcdb57ba1c", + "15a67c5a3a9d7dd5afbf781a" + }, + { /* i=8517 cDividendBits=326 cDivisorBits=60 */ + "271e2edaefcde12ebe2e7ab9b217772d801fa288108219104a2c0581c98902bcbed665b290f95b1b70", + "0f52c44e66acbe08", + "028d86b4644b4a608ed30dd9312f9a5b68cb0c8abab66d0f454de51e4b5653ca7082", + "b0813ab82f1b60" + }, + { /* i=8518 cDividendBits=1306 cDivisorBits=504 */ + "0321e2e080a04c8015b066c69e00ad7ec5995a9505f57e4e4be9fd31be9352cf33065c633ed16495c671c80afd32697f1121c050f72b3461211156c35be8cb9738011592c43aad3ab8063258ef4c885baa810a1f09b1115c9aaf2a140f3f2c18172720d0173cb4b4e3555005649b673dec9f744aa89b45f6bb5c36b2e5d8e7a5f47db0037d19b069318c2dd4a7b85714c287066b69e65cb41577d7b067e1d5dbc9bc8a7e", + "a004520401bff269c0f9fefa6f7058008f9b75a33002959e19dc7710454bff9e771aca846fab68708ca00bfcde019814bcccc9e20dce36fcdb418789751151", + "0502e1f65a1c4a81c43770397d3ee2a1333ef25550493f6515ccb589ac709d3400e18dcbe12093dd0c64c98c7716dc0af82d32c2f9f124761abaa07d36cdb6ad642ca885bc80d383848bbf5d486f7341f57dfd46b83beed23cbac31881d9da4a05dffff989", + "9d974b0d8db952ba7135149c2392a12c8d3310c79630b53e68f94e379dfac553324fbe3cbf091c122760a9f38daff5d4f01e1014ff13458ecb49598d8f7d25" + }, + { /* i=8519 cDividendBits=570 cDivisorBits=421 */ + "47ebfa76080f3874c1cbee4558c6a83c49421c52a78cc0b1ad353a26d9cfba2f40cb7582163aa1a00470cb3eba08df429a3c718c3f925e30f9284b54a7816660e39cb7c54d528e", + "04a305e9fc81a590b0cff9877bfcb60a6858f60cdcb28cf23d913b8f62d105e0c6a1bd630e6a144d78412ecd972665942e1de717af", + "0f82d4604c663de6e3e7886da4cefc3ef3b0f4", + "0145f32c4317637b83cd7ab2cde0cda1d43709f3fc3ef72a74ec3cc790f3eb3bc1b5714edbd5dabd6b881b92130b882fd887a56fc2" + }, + { /* i=8520 cDividendBits=717 cDivisorBits=105 */ + "185d15a25cab52f5e94de0cd74b671c4f805094fd5ed2e7bac545b00b598da4a3e26bd6b29267cb735cbe9bfd721a880a0b7e7a2dfd73be835286bb12a0687a0063af02ec9a74d63112977cc607b21957f75156682cdb37f3ef4", + "01c259d368d25fbb2031ac40d07b", + "0dd9718d14a87e56a0b506d2844f8ab30ccc1ded9c4ea652616d239d46c1380dd037e2117d631c40dba529a242bde2a3e603b81d7984d602a90afb5e9dbc7e0a6b5839d72fcd62150c134280d7", + "01a3a689b47a70548e02c01ca7a7" + }, + { /* i=8521 cDividendBits=954 cDivisorBits=757 */ + "66dcf33d0641fe8a2dc25282df90b4405efc732971a2c6544291800d24aa5088bdf2f25dc97d35ab9d75b13a4bf6287bfe877a1e1b5a484c3f1faadf2f9a69b1c2507586ca281605ac98371eab1586742ef0d4774bf0b0ceda26080503ee0eaa6304fe90777b67bddcf183926a553643a95faf1cb0a8e7", + "0d9562bd1c74528f5ea01677b5956833a1dec636ac3272eafe9ed4d04bf0ec069c6ca83bcb42e41178961b8f868c0dabd972bc80d60133def3ef00b57d8b7bc9cf4fc375882787a233624600e33094318e729d3046f6f2ab7bd56912ff93a4", + "079297c88c5435ce4b263a6b4411d22e5db6c5602b487221b3", + "88979e514b40e83666db81627d563b0b808a7bb80fd9753aa50342291f08db73ea0afbea1b1973c0974806537da817ca80e50f425e7cb35c26f4f06830702d56cbf8f1cf9af95be1a925d045339af32fdfa37391844591eef7e202ec493b" + }, + { /* i=8522 cDividendBits=3185 cDivisorBits=1892 */ + "010b1c12430866f2c62c0228e43c145af8fe49e014d1759277d53914f12865cdc995787ed76b178891026d3492abfd8198aae240435b20ea7a467229c5739330865b265f5ef3f55c68afdfcc4aa1f76445b9c4d0d0070cd4dacbccdb09594c5a984763ad57d3b77290b7b0f8955f580deeda20e0f8060ab7bab073d2a314646be5931d80f7efc495be47857cbd2d18e870f2c58e04f626835d813c69855705e27a17fa6f868becb395ef1be0fabdd6e02e6d3d1c4ff98c0691c30263b0b6a2b5f6786be9ad55778fbe9637bd325a31d7cd022f6f5b449396f922cbb0bf88d3db270835c1ab30380ceaad9ab161b683e4077ea936839bee3d1994044fdaf90a2e0d318dd52ea3d3ec192134ecf73aa0a41cef54b8f7b78cf910015dc4d0b8564e070a6f9fe04fbbe51334065edfb90d94bf810a8c7ba37a9393193f1f2e2ca5c7308648ac28f17a623a4c698352236d758338c53d31dcea38b92fbd4267b653bf2345221c2b87b036fe49f28a352f73a26976bf89c88e8ac2f5b162febaabb2efe6b1e5ec4a173721f0dd16d5c3d1b1", + "0ce6e48f7d2a0cad661990e853223cbb821bceace7728823175f534c82188f7921fe9430814d71de297442bea326201b9849c647931723d3beb81f8bc176eae2052889103116c12d7e3ea7419a89224fa7ec1b5f2cb9ce9a5e85cc3aafd22ceacce03613d8583c4b4ba714101413df2a654e26da3e9fcc57c345f88a204394cabbd7670a93bcc07e217d8332d2b7b2d52d0360c952d035fc909e43f54a5e5f522946ee18cc6d7d5ff7648091a5b6425aa177f3db647a20c963fde05a000c6be5aea5657697d2b48e4aad2e370d6c1afbfb55f484c831238ba1b5ee82d16bc08bc8704a9d814a684b700880db36", + "14b3fd64388af4f305080e00eb6f287dfee7799ca233dc3a2b0f844c34fd9f4f659bccce1bb53ac59f52dec314f8b494431be1b1cdc422fd86d610e248edd0e90dce159215de5f24666b11dca7d77ef1c181e242dbb835008dd85bc9e443ca1a0b1d03f0c1f2e775c447d603fd17fad3545b7b4df3f18c01606af05dee3fcb82b63e407f8c23591c1c4e5620458a10d0fc04276266dd5e55c01930d7c42f30e668b6", + "07fd58d8adae521e41314c26d7f4959a2474937f17082fa30588f80dfd2fb0ca583415e5f7a1d9c8f31380d1be26477ece10af0f2793b8694fc438614fa73371e298c00b574405b3847da66a0f92d9e18d5b159425e3514b2b2d2ecc208c0439551cc45e307be581ee18b386bb5f6edeb85af0a844ff44d0ff693023a3e34a77070bba8ec7e37de51ff98826ccf77855e385e7c53c38f96686d126fbbb706def5b986a5f449c5e9f44f7c2cfab093f589da7484e4ca7757eb7973c5b9672d7036828c2223543b682c5905bf87abde5bff0b0d93bdae35def1fe348ad702dedc68f11a2598ca30e54335e96094d" + }, + { /* i=8523 cDividendBits=3417 cDivisorBits=760 */ + "23e9067eb59b92fb72f857d7fee6f42d708da715def1bbf2ffcce0f2019a9efeaa0e49ec4d31fb3ddf04a589c98d916122b1e1af585335eba7959c4465e4003dc15b78d27b7b6668a723bb3edae02b51437f1e401cca71b1c6a2ff9e879a031739b034e0cfe159570177ccd50b8946a92d4fb2175048c3c14d98bba580bb93f716c188bcd2cc51f62e77433a4c327aa58e61e508f6edd6e93ef65bbc8fe947fbd2bd869c63000daa55d49c5f296c6034d39d97877025804d69da43e9a9aee4a3cea2714223c2328aec6883f1a680cf8d45a64a3ebf9c0d6bc726525e41e86ad9c76ee0e5054875ffa26f946769433e7af63bfd043a7782a4a9f42737e70bcbab389399a91cdff23839353065f38bb2f735b5ef89f47ce169418849de60f1a7133a02bac1eac16e2b98e607084214c4063a95e4d473bcc6195a571f35655b6a4fe3b031e131eaa98e7564702f7f30affb6d8773881488a73147998097fa7c832d16118bfc07f75b122411c87d3fa1ed6bb0b137f8fff1eaff811c15744ddcbe4ac206b4343d3cd41b8eec6cd16477c506c3fb73d1173dabbe6819bc75fc0cb003de1bed50378b95903c80c4", + "ad03ea4363b2a7fe6d545a0fc04cd379a23ebcb326902e517d7c2250bc12baf99d65eb7f3b8bf2ffcbd091935e7b5a3cf1bd2fb66c26b748ee4aaf226c5bc70b157dc51cdf865077e092fed1bdbd46d13db99bbc6afbae47627206571d8728", + "3522597b3abb22c597756ab28ea9e26e97ceb2d92b16c7e94e4cdf3a8c7f8d5678c64f128b571dba46ad2b36983cb913ae2feb352af304bb949e1eef3ae99a342837b90ad84c0e10167eb37d23d2c8aaf1d7481bcaea67d22dd91d4c58827e4a09442f263bd30e7879b2d38ae00e1eb00a0d7aaba301faf62396cff27af712797dc56ebbe4574a99d959080749941c91666cca413e9813edbbe56bdd096218cdb82a4e4185665cd753acf03ebc2a8d80856454cfe3061175fc4c5e149d4ce9009afa0e1e8a0c83cdf30034615963c31ea64e17a5d63145a61463849c34b248761b8796b20dfd97ab36c6e1f4cb384687e197a50dda93d079182036a32ed8187a245de70349a1a3e8d9b8d76ba62ffa67efa55c2e74f54ac4c999d4f63fd4fa3b5911cdc2a9767f6bcc96d4f82ac4e6e9b2e06c7b7b9db09560ee08f0c8573eb4a62908cd4de9c84164e280df", + "742b1b0e012d7312341b388af02a283a977847380f591372c0a5485e71da1a46b4ef7a47f102037a58f24b531b9255be0650293b1c013a389506da9a1d88aee3705887ee34d733f710668cc242eb70877467d923c4b3be89540a7bf89fc4ec" + }, + { /* i=8524 cDividendBits=398 cDivisorBits=361 */ + "28b00563466f0b8cf79613ef5db0aecae66af89cb6bfc8872575dfa9729170837e8a6dea018e48a2f001bdc568d06821ab01", + "01a5c932b74f3c6b45cfa2f609999f737892bdf8374eec200b4f31357bbf3e4243f60543cfa9b32ad2a498db2504", + "18b1ee3d48", + "018b811ca570c85abdaf226a36be3f5d6bcf15e70bf6f24b115bbeee0d425a5d0593746c2bb42e47d96504f54de1" + }, + { /* i=8525 cDividendBits=2331 cDivisorBits=1064 */ + "039363f724a167adc7a0252293a00a79608367efa0f7058bf1ff7d5e6deb67680897405abef81bea6b8c653c6f8478b07c85e696d261e5912fafa7b1ccc8200a08420b82bd107df1eec03a71c2ed3d6b8a8785f904f6a27f9a8e4c8ec486eeb3cf911803e39ca60ccaf2641a32873f0ddd00443b4a65e3e84ef74a45f6ed5d3b66743a16982261b35b724e9a8daa8bea4772287f6c8760257c775d462bebdc02de590f2500331e22826e4bd49bd9f2b370283de197f127b028553708ac4a4ed8bb6414beed2d3baf0016f808c80e18c161fb61e61e6e8a5e3ce2d2f3b2269734991f253c7d5b436f81dccedbf68a0de10e44ffacf598bf58baabffe9bace40b1241972d06b4beed6e5c69c44a678cc17447cc51bc3de99dfc2b99a0677ebe540502ac30c", + "2da4165bf915020e8dd4fff7ed4218f9844584504a6ccadd13036d0327e8aec9d691a9252addf705f1ac5332a140e60f3f66b2fe51a8ad06f1a3a5c9646498d2c4221a46c940f652e6911cdaea49c8f5aa253514d6f049966fa8f2d85e5283bc532af101d20fcbb45b4fd9e22a330c28537a3d06291a61f8b2f5f9b2b2d92ffcc878a27654", + "140e6bf2096f07c39be672a5c281c4eafbe8e23a70e22b1aeb825c4c2f4b65b0c4efae5b59116c27b13febf1abcabf50f0699b582659689af548000e53e239e2ee18b5dfc8e7fabca2ba2ece8d4746b3b0a9b34bb0f341a0a665de9daf828367122762cbb72ff382784b22d6cf1be8e38a6b433ebd144e9fccba32adbdbd91a83d03b7bd8d91395523fc9f530682089fa29a940977ba98124ad0d22c716585", + "16b50e7f6769373202a67f605f1c0aa46b763c745bf0a7391b79aa5a715fe9dd21a15c0c79b5b559bfc06645dff51d27089f54287cbe7b753af759825c2ebe73a83ede6b593d0c3c4ead373b295af3380196377d4dcbad804df6a139dc14f26af91855027dfe43dcd628c12552576a2aed2d9ec46015bdc42de58f422b9857fc8ce0002568" + }, + { /* i=8526 cDividendBits=1472 cDivisorBits=147 */ + "8ae447ce3a356886dd4643e122d84e61099103eb7d9ccccbe0c2fa2000bd11e542ec9d763bdd2b9e49a21a470287da49cd9e63673580a549f5a3409920ab4ec797f90a10f956fcf9c7e870ff5d029b9a17c3dc118e2d436b05a5eebf19c6e4121aa13fa75a08db74d12cfdda88c8bc0f68dc953d0582aedaf02537dc69cf204b0aa3a3f816ffbf445dc851317ea6f10b225b66821df2bba04c28aa258e9478da063861f622e94918a08fff9a73ca4ea208a0f40af4914847", + "012597ef223f7299df2929dc5489a2c4e7444c", + "791b704450c4af171ed37c437d7973a3a49d59e8b81fe545b5ac733bdcaff13c5adc9c97067b581875e5a7b3d845f68c863e0240c84cf6d086770adad35ce0025d6d46ff47b7e594157c25da9b0b3ac3cb19611ade3e9f937e40232949562df630e44f2b2d5c77d1b88c0967c25e1b55c1d8096cb455bd160b501b724b6133354812dbca925bed878f9940992c5f8632618f8b8059485e1b6d09f6cbdd2c635c31e63324c3e5", + "50f20858ae43791e6a89a8e32e0be9fb4c4b" + }, + { /* i=8527 cDividendBits=3404 cDivisorBits=1150 */ + "0ab5a83b3822d24407b5cfcc3273a4a60c6285a0d831ed31fcfd9c0ad86957ccdf121cf2871be7387128170dfa538a1f04606711decbb6b99b502315d694a1cd20d9e2af8fd22b4d613a3e8825fdec74249389eae7e345cc06760b577aeabbb3665813fcdb48abf68bf1eab04bd2b28f25275c05def3fabb841c56bebeb3c036933c2a3d3d5fb064ba424edf197042eaa0a3a51831c04538d4aacf4aeeb953b17de842cd4728b8060cabc5907a2efa2ab7a422d1e295582a38c50c06f836e8ee36db5412c012a2e26a6637b1128ce849d9790d31a0c92efec0a8e57ff153659cdd221d7ba1288062038c238e88a393070182a6acd75993987b098699f14d3785741ebce7dfbf6fa5db424dfeb4d6d374b3932d9a9580b4b9de61617dd2c66b1f0188f244c5a286498d64366f3f07ee8235ea8e5bd139cdef61e1a7c4eb4c5ff56ae2d58d121327b7ee490ecef6f10c7a84c16e3adcd22f50e7bcd4b4e45059e51b803ce759dbd13f9962858b81b3ea5a2116f4466bba404837fe9980dfb9af8621d176df8c77078ae4aa0e188d6126c5ee3d8ae77a9fc2d856246c869a858d89979609bf4a7ecd1609f0", + "343f7e4543263831f279ece1e9d6d651bf85522944a939ce28482d2a03739f82daf9b471d52532512ce535c6be905a00f602116dc6b3f8dace6551d33ae30da7083cf7b5a10addeb3c3f85a02b5af608cceb675a9e66bfab66b877b74113521d12862e76d75a17db9e73e73f5e3a1360626997b46f961d0071521b9bdf0803331b2794c1a13a22ff332842e4a6d8df7b", + "34795132d9929ba65608ec07cc64d0e6f73895e11a574b3e4ab306bff9e937633ed70d52dbf116981b2f5220a51e226d7c17be06e1fe8995a57cc1648ac9cc0694ba9a3e53a577d728d32b9c773d46b3ffeca7650d8da988dd6aed2a43244836be2bed110135f60326b2d3ad96b54bbd85e452191b9374b9e9185464b7e216d8ed8712a0074751f7ee264a8a4cae2be00e72a726db3841e15b07a9b68aeda5151a4396841e5d8dadc473735cbbe00858b1b3f507afc4ae55469e5319c391deafd22eabafc59588eb78eb2a37d4565e7b2d1b533fa63b91630a124ce273a36cc070cacffb012c66df54864fc3f947dcdc22891ced749b742a45a88d80afbf7339963e3014b4cc58a627207f77c59ce26be72decf7ae715e5ef816", + "3209166b8d8eb567206734288976f961a3e9dc97b922b363ada7a3575ae16e199a2a118a901af6fda909cf742e6a853eca7e3f81fe8c0c4e78bb6105c146b83898a8af54b651cb0fc2db9eaad0791190df5d086f5ad11b492107bf041e2619619cbbad380e238dbe519a4ec328d68fc6681018f3f7ffe64eddb1e1c07aadbb31b64533ed874bab870cf5e43a24c9ad5e" + }, + { /* i=8528 cDividendBits=1954 cDivisorBits=547 */ + "019d1163b2416943dadb1219fc64a1eabe70624d1d2e6baf6035864d6a09bec45fbe3a9130bb4428d1dfac69d9bb8f7a69ced81839dfdd62aa608e341ad62ef6ef1883094711e16e2e70218c188a679a59551a0efa83b11d8a9d06af30c28cdabc44b9c028142eb2b091330453ee5b2c1b0ce5c522ccf697f13ef5967557a558736369234acf3205e2e528e14978c6a2538f4f64819d3ba0625104b484d4987506d13f3f4b37e96059b5c032f62ef5e43a57183a5df7a7f99c9bc30c73af9fe53bbf453af03834f067897e5fc1520ed54e626ddb64340c849731cd30cd488e7a41a4ea518ed1933e18258a621a261bca9e6e1ee668", + "05162e3eb48cb7b500e0d2a39eaf7d6c3848471567dc32a7b0ebf61a93cd76aaf1817f365ae5bcec8ff440209edec62b532bf085466537571c65ffedc5db004bc7bbaad876", + "5134d5fc0408a09f961ca62196f1cb35fc11dafe825c6d2022126762f4572d15f572a6d02d6790f2688da42c627598447ccf2925dfb62a57a04eddf25c3fa22272fa187b426d946994d011075af58ce058f8a829a386a1b9bf73272af518451cd18421ee7c6273a2cc42339a07ff00032587258091c6562dcd391b3ec2b7f22ef34afe6dc0474bdab245e9c4f01ac8541b70ca7e71ba64cd8bb77f1d135709b64e875619aafcca33b89b5e4464acb9b9", + "04d25144881bdd3c88d99acceb620f1f71b90da9e5233348e1014e6b0f0ff81c65e5d9f37619f26c2beb1f6faa0ea47a8fe9cc6b27e77ffb1917913190485209f9d1f33322" + }, + { /* i=8529 cDividendBits=1837 cDivisorBits=495 */ + "177bbd0b4cce32099b7a8e2d796ed9b764d2fa927659abeec200a9eb34a8543cd23d47c1b7a0d995a77ab528fa3872a345e6eec2503089a1a53216404849ad7af3eeb1c791dc09222ba1e8eeae44891b3d5d37850a8af670f75d3e12206dcb31be7f0c562f7ad3776158e1b4c4aeccfc8f1a1cec45cd2df87f3fb714633b6bbec32623d3e8fc1c02c095351812938307bcebc23181f1521807ac71d25165b4a0820c18bb7101a8afe3ee6d5603c5797ee2138a21cb1fa3e1cf36eb05fdfaf2b91bf9aec9c343397eb0e94ccd853fc2531751a0e980c03f5b543fbfc6be2e3c0225ff164003de", + "7dbccd17f05f0e37acd491d628c665a20cca9ca9bcadf06466a41040c5da8f0f256b18d86b9eacc33324ace101a9320ab4348e15ad2ef9aeb70d1d9fed5a", + "2fcfd32fc0a1a5ebbcc87af2126dd8ba8d79368207352e302bf9d6d8cde2d8cf9d2e0539cc571ee9a291b366cbe37842fc131e35768c3701fa5ff812cddeb645a3bb4175686d12e82cf34a8799a60f0ba2548c72ab8a5c993faf85ed22a355541c879a1387d47674381ff6257231c4535c4b1a39a61e7e63e1efe7db3b258054eda7c3bc7536468f7b7266ed778bdf101bb6aedf4e143fad1248faa362e8999b5c4dc9557acc344f", + "2e3322c9b83bd88e2d7594f031cd65f7e61f3c6abe1939cf69c534e1da58426e30172646c205a783708c4079725a2f7b75a52ee991ff6fcfb37e6df77d18" + }, + { /* i=8530 cDividendBits=2263 cDivisorBits=1164 */ + "667a90dd46cd52582a5f6387e9960ef22a50cc9790ba03397957d6a1d18513395a687a4954342d6b6ebea33a5771cea79bcfd511165b160c42c0e67c33eb3e8fb2a7e6879ab3928f997e97332231b34f486a7e950c81f36b8c9ae5c130d20faa633868bc709718fa6eaa5c1d6ff410b253957e8c515cc44ffa6c4428b2585aed547d9dd6bd072174ac9a32236e8d4ba9aba810ec513e9c6df8ad42a1a68b34eac7d88d953fc644a21d8eb7d52435370b652642e7cac7fedae22399623e51debaad05d43166346d57a238afcf8cf64cdf6c35bcf948d96eb3a795eb925e6dcd77f4ab9e5a1858ec13f8c74abc41883f56bc49c51fb79ce78fd8eebcf603b53dff3a5acf227195b492d554e3f3fb12f788448da724e219443eeedfe1", + "089b28c3e97c59d8fd805d60aa833357e43dc542885f650795f1adcb28e0caa5e2d7255c9f48a15032d703448a3e21c3a1e6458319bf50d40e7a8a0bc9208db1bc1e696e1033d15744c8d2f1818592213a240dc196c80b61f353190a3db7291d7a2ffceb5bd33344676e2343f2d23bfea9536b2f4238fe8319367c21ca408b4f1259540406d15290a3077bb8139d268a4bb4", + "0be85f393c331ed76fc03817981215f4638eb9301409f241a58d9a2803f7f1f25aa2fde8d2b9f55000e75c8efcfa229fda40206f277d42c6f599e1beae2ad389985b0cc81ab34e0b65fb3388d94abb809c3d575e386b9a7348af1531ac1633372ec9979f913a7aa7926a281e86ac99fb2c114375a5bbabd80b6e16e41501c7038689cc7443e1766dcd9b", + "03cc4c26d031c1186fe8542cec297f035c573ced6d74f64e2fa911315fc4971e331b265d1f0812c77695f10200ec238b03baa1284e0b6334944528ebafb739dabbd10a2b15a004296b3b08aa24d6979cb93c1bdb5cff589a00cafb06c9c988a969e0391b2869409d8414b736563418f4d000101b39d53e2e4810f0a7a1cc576278abe07dbcf100588f1b3c1f9445f6efe5e5" + }, + { /* i=8531 cDividendBits=2337 cDivisorBits=2064 */ + "01185432c2dde38a8f69f9093e0ea76d3d1de8a6659f59f16a658d0f8d8bfe3e240019130f99c13b17b83e6c1a92b1597086e2462a90c39bbe33206e868e4c9c38446b201feeb4038d51f07e8a582ab4709e08c8dde476988b82585605875097334e1b2552034d786b354289ed543ee9bcce7ce6f50bcb99ad4e9f9d5ed7c9b4c7a8fe5eb285618423f56b3a26137bd67afc2d3715cbc256eb63bec3a745943408a45f7859626e7bba4f12f7a17f1aafb19d74251715205f7077d867e05b2cd16e7e97faab278b50a9b9abd2bcf31c88c88ecd83de2c150accf598e31cb9552d7bd3966d2b79ff206cdfe056c3bd29baa98015750472aaa4ca1e52a89c456d88716eb2cf725f47aa7f18f5cab3dbccdfeb05749757da2ee0603b1564cb27a758b01a6758fd", + "303562ffdd2e440139402ceff3940ae9cbad6a2100924264e42f6b9f1bae90605b61e7f2855cc0989e7afddc51e91af97ad868ecd55791a1528532e582425fd03c1fadd7d1aaf1fa26ac9edaf5da85834ef94bbccd023920292e97485da31e660a2e230d6683f7e49f363d591449ece35aa2510081e15e57a197f7a923c5be0c8602dc288c0acced2e9c87591a98f158cfc6c26cd1f543ce3ffce0ef717c45e376777c28c17549dbb0f8ff4ddc1a541b64393ccde34b688938cb726d1235be38ce3f1f3b3abe2f377e67a8f4fb06bbc5ce487c58eb11a7f3465724540fe6de3b6e71d856b7a2d50160a78144c70ce5ec0a2fe7db2d45018ae26b3f352e5bc0e75ac6", + "05d09eb68d42c40b77cd219210cc252b8638b91d9d131c5283f4940bbb3f24e041ae45", + "23b83876b9c24da72f2f2cd76df330ce3124dab6e0fb50685f6eaddd78c1bb1261724cc19218d409ce4779e8966412c277e241b8ace85016131fccf8b0b54a876195cb517f691f4e6e3a9ffdb0fb688495ad3c4be83ecbb8b37bafaeafb435b985172bacc3aa4fab12b1623237b77007610b376b0acdc01af8504b73d6adb8bbd56555a79d9746d1f5f07ec27f2d292f4f5a54523e4d140f7c6d0cda64ce8885e813f0b0d81dc09e820902b71ddbb109246f70616302d28d851d75598afa417c16a2004f5c8ceafcf8291bd279f37cd812c38348bd98dc9f30e0c5c59673c452c22cfc19ab3351f04d4b001d80c396256466680478d8666dbe1e0a3794d490134d9f" + }, + { /* i=8532 cDividendBits=161 cDivisorBits=44 */ + "0124a4ed5a7180d337606cbf46d5d8e2d58086d558", + "0461e9aab9bf", + "42c6aca517cbd3e036b7ce1c663066", + "f97d93033e" + }, + { /* i=8533 cDividendBits=3763 cDivisorBits=1983 */ + "07ef965b30b5a75420a316ae5d5e192ae3a2f91d4aa07e80bfd32bab2040ba7e93368b5a0a3bb6a6f9cd2c61becf1dc9a15dca8e1128d425882ee56a25435b5f48dc9e43b092b72fffaef00269b3a1225285ff07480e1d475e5df1226f21192f24d9885a2b547816b89a5f653db90892023f163fe6de588afe9db42b55349fb31f9167493227483b11fd320fc65e8fc8bac378966d699b839a71d4c8c115585e0ada9cf17051838d9a4c759d77a397639781f6ba0d76ad8183db7c3b93a5846b96fdea795153304287d30ed0c49c79d35bf495d601f1aacb6052575ad88d1855ac2dca24dac85b15d80e85ef71d605e9023935e44a06a45a9c9a08c9d31937f1c56796c94e85e6c2216f908ab170a00d0a9e1fd994f9514d91b1ecd57e849f3d01c602caf8510b188902d1d2f5374135b705150864c5382a3ad2849c0bf851ad08a3c4a95c67c36e59b7e407576f27e80c88760416a2e6fa8a9dad2948297030338639241a1bcc3ded7d5add82c4e6b99b3c37803c1c71bca0094de54542f7f1982f2176b31c29ae70efb41138f5f8f9760b0915ff8c8f28351b40fc6982afb3bd3592787ea6c7d43ec31f77f99f7af00b877ec415dc00aeedfb5a9a856517dc77eeaf7f6e89cff6cc9680e8d67b201f21f7536c0dd361", + "16a6f78c05417a41d7e9e15c21af4b7a9d08120189fdab957678af7748b9f79c837f5a592d11e73b171fb87c71f5e4b39d4a5bf20598780596c9da3d66d71c2af160344664d43895f91e7fe006c30253cbf55f88dc5ba56a7e2ebe27d6d4c7ebebf6010f9e71065b8dcff155912d8e0e9d9739c59df381f77df8c9c5c3f36fe463278017212a3be96cdd315f37969cb07407c7826b9c8909744632cf9341f089a33f8d8f63e8fb49f891c67994bc53a4dfbc075ea6d40cd30b6c6608636e90c7dc413b12507aae3cd2f02220d33395078b0cdbe40db6bc6a5a7fe8119620d398804924020f122fd579163bda000ef68c41e8f185a6650fdf", + "59af9fff44f1db1e6423a0b305739539666d7ef50c937966afbe03d09499d6ac41bf5230093fbf21d80f6eb7cc001ab26c3ddcfa1589fa0b1c22ed31da87790f477b92137c744dc3e81cfcf42bb004e35cfb2de3983a68cf3ed428e9202b737606ae353bcfc9c1914d1fd4ff01bf08ce502622129cecdecb10058e17db5161a36bd1a3b3cdb3bbe0dba704409e85cb30d6e1e71a97c04b2e9649dce20ea21fd30f545567ae85f8befbf4712f59f45958419a1d3c5e53b07cb8d62443677890e58c802168460e7e022dd9576694f60fa18cf0e011ff1f9804b51d647b8cf8f1", + "15b7cd4c56e8d24fbb64afe7e6bab8aef969f9d08b857cb4c93779c01fa8d17bf7337e0fba6b955690402385b123efa2aa33a7102c88bdf3986d863eb569bc0ae9db285222cd9ff8acf392707b2f0d07c4590680c5c83a2603885f1ae3b9fd8fff9d3b057a684bb7526a5b551c5db6ebd6e094ba3b1dd9294212773834c79004f6f5b7f2940fcf0ddd9d910adbe7c279ebe6097beca2cb8f4327e3e64e7455fc1d0e5d414a15fd2ba5c179950c044ba4aaf0f977d6ecf0adca7c1b95d3e994e06e5e150d070af5b2b90e718811ddf50b3340af5cd2f1cc0a77ce6f207ac0d6b051bb03ac988a8e72abac6780800866a2f5e21b4f0c95da72" + }, + { /* i=8534 cDividendBits=3479 cDivisorBits=2646 */ + "47e93d650a2ee34a8e577c7a1a8257f3047392c790b4ffd602b7d7c0248f773687ba6ee502c245f1a7f043582105e1bb51d35a7d70d27eb8bf0ea059ad73e153e524674f85be07838a96c10405c76bf69e4ff88d75e6beb4cdef538dd86fa854d8c6daccaede9fd60e511e7c968e412fa1cf98f4e4e6a783e260f56d0c04ff9573a818b4129c81d3a37068b224c4c39055ae5c37ee5b706f7c7bcea2b4d9cf777f4b44de2db06d77cfdbf1e4c995e299a3a47bc5fa9ca61306914afc8a3840b9b3a2cd7bf4780d68fd5727b2271360c06029a52914d4d0c6a0028056754c240cecb27383397c2f4e5fbc0b8ab12fc9fcc6584fa03a310b66b49ba18c6489760e66f385255de290966a020da644e3fff208f8c8a4ee1584ed8ce0a0dbe0b26ba4ac3e38ef06ecac8ce4a287dc6b64cf42211eeb30fc615530866751ae5d2388bea23230c725907102f2ab1bf3576b43f7faef9ad757842fa94280a5b00bb88b5644a4e0eb0f22e14bfcb36914a311dc6cb1f82fcdcddaf174aec4ea7e0b25eac445058ed6e88e099f35812af738c458b28261e457f6b61f5a6585376bac17d4d26fc19772c11128b701d4850a16b33d12d81e88", + "2f1ebac7b19a5c409d4cae3b8ba7b0efbdefc893b564c9d312a1e443fa758e4a14126ff19a09076535cf9918b6873957e24b49cac2465c22fd4d46bdd576acb0c8addb35fc2dd395bd1e5349526bba13792a4a2b7610fd0d615ace09a47c00b6d745abd80958c0f44fc81e9a1f9d0fbef20cf79b98d997dedcbc0580ce17cd1b2d116a94c78f208061b8463f507246f5dc249f2be8399dc0b53c5d5613f4d6c3c52283b00c96bfb7dd30890abfd2f407b52c0230d5da780ca4594087735d8cca12a4403c8e8af3e283287acb40c2746835e8a904b456b06a1728d320206278ff55b59213d7a1c8681e9037c0f31207214fb775d3abe5bf3c0e9df8e595306fe57e10e4f0c0fc16e9b8cb1e1ee8a90cfc46fde705dc8c3686ff07b089c034afc2baf30080347a5c7ddeb6703246ac3048872b286a775f5a19729301636dcc1e0b1c87b47b3d99463f940805", + "0186b029f1b07b3bd77e870ff56fb485c3c5c3dc3a4907cf133f7a508b0d0a9757ede2ed61e8271261cdedae2fe8443e97b36cc59003c01a29c9cace4528362604932661a8e540d817f2291903a0bbb737e4bcd272440783e0d29f4ac829de8efb4047301bed745242", + "0aa5600221d12f856cb84daf4e2d795df486d18077380a84d649366105aeec165784164038491354edf59b69207c100bd080ad9ad3fce1748b16c0982258ba052cc830ca79e2330ced56b03bafb2d16b74c34d8c6a63339adc47ff6e405385bf73588c4f943eba40bb99a9ca753daf7552918eb65f1d80b20044876453fc2f13d7aba47f8be99f98ac71cff8dc5e382d3fdfb27690101c228685c0669d7e0b8570d60f57a05c473797136828991d1218e61579970b28cabd24d96d795911ca717ff9328a73ef94693cc90060900609f638a4fd734489d64d93039378ea8a31abee5851198cfe617fd03f621dc7a8c146b7bb0c5208826a7ba6769abcb0080e78d82518bbf6f3b3f81ddf2946fe7c44d7e8fbebd0487142c9ec3629f2aa432b3884c8e2be9dd606b034d46eb406ff7ec9d255a3105a330d52b0e2235941d70b4fc58c691ceb0bbc00d8733e" + }, + { /* i=8535 cDividendBits=4018 cDivisorBits=674 */ + "03149a79e4297675cba5517909948883859753593993585cb07de52351ab16d7dbc356f8398c1bbdf8a0a4220c911a2f2ffc6b0d3744d91db0149193d8d4bcc015fde9f745a77310de6c33fd9e7561538ccb8c46c5c84a945d3f3441b9b6ebb5b2c7b34bcd71ab599c693db5fc44fca5557f02d0d2e329e5ae2676cd9cd45986ea2985bf5c3d1bea44073590595c3f33ee6e5cbb41a59699f70a10d04665561b2b0aef5d975cae613dae5c22d34a8968e10047f5a1cfd9fb53e1aa72e1ab770d551cc09158b5eb979a77f044753e0859f31e4aeec5dc5f9aba0a577ae9ee1b5851784bea2ad1e50669137d1735db7872a83179d09f7fc2baab7316b6e797fda3c5d2b19c7418df4cab5d85059c8dc2d6c023401a774a533266f534a4f46ce909fae94b7e067a875109084e915749a6fd07bf6a6f93a2a61e30df417ff6012b77bebb7fd627caccc49bf6aee3e5aef48877e049a173819752334259c5a621cfe45668970fcc3b2c7bb91a15ec18358ba37f56b6504ce3f3f6151d286f2806da9c3026e86455d3b8f30a6bb0173e3739d9593b779e601ca9771c446423d77aab6792d3be9fc5d86d21e08625705d16d4b1f88054e9725db19fb4ff9d227dfcca89ef60fc6640342692151e1ebc13e9f0adba705d09e176af59f54674fc259345959998da53be1c8662aed47f6b682dacf0105ad3be9a6dd1", + "e84bc2e97e208fc005e69c8cd7997d5adabc098e61683438c944e4fdeb5b4777aed315f813855c09c8a75e02414137108f14465d12a56bd067da69756b0b041601231f24edbd494d87d16365d53c436bb5a0b77e", + "036513113a7b4c9814408559fd9996020b5aa43dca29171024824d93b64ddec31829fd00faa65b09fe71586b68d462d1fb2588eb30565e01a6af5a472cc455c7a73dec58d980c5b686d72778ad44f1e495bdfcdf937662041f4e09fc82dc065e99c9454cc4ed6608020442ddd5b3381b2560d07e365f8593c4a61fa6a38e3f27685779734b11ca494f970c3cd21dfebc1d2a8f9c892202130b7c921964e2c5f40fcf8c21fa4b4790913c0b9725d1c451535c0970a27f7d003b435478e6ec2428905938a5ff470c1997007ea62c49b77192741c18e1c8a7c80eb9de32e97bb4ee19ac371879053e30747a2cc21ef63df282a16d9db9752b25c217ec2f6ebed9f2683c890c45023c358c4e12a8eca2b550ce9f482bf171999cc1678a245d69de02aa073c0d893e34d56c5a5164f99f548d595fe246381a0fa2e8a8bfa09749aac92053b8b47fb4fd3e3af8b6c60cdefa0ab59e2f72c67a4640d4be95ec900ea55c09c8fdc0ffa37a62fd7780059a075222c9b501cfafc5d06c1433e7e01d8c688608b19f369f9dcfc697cfac6a307c3a0294793d1d89ee82e0e6c09c68ece875ef74c01c", + "d5608afc932fb6f533d034e30924abe82eebc5a1e180b49e9cac9ae66807cdd3251c4fb6f9e53d617f39f5a2344de53ff3a035c0df195d83c0a2aeb1925a988ae4af388ee92cdef51c41940c4ea2ce1b904fdc09" + }, + { /* i=8536 cDividendBits=1534 cDivisorBits=1267 */ + "24c64e0b8121e89820918fd17bcb0368309fb0c7ad6c615d903a5a1d121048839bc2e7cc73a7123aca4c0330dc4fb5792e97d3c909dc62ac1aa48eb55c5c0014af9e30525db8739546e66c2c6f9fdda053f7b169606393e20a710f809a029ac75911ff632079b5470bd78962317aa76cd725b29ccf7ab0787a6fe8646eb48c18b5df3ac52cf73bbad91c704b596b1c401eb55fe9d1be324f72724d0b2a4abd7477022165eabf1e2b4575c4361e75dcd1d86dce4fd0f0bd2bfd1e7e23828e2b28", + "032bb5c5c41388cac65aaa5a35487eeee1ec982ad7f9b9b68d996404d66c84f1cd1900b358851e915a4bb0fa7bd856c550075b1d0de079cf6050235eed25d5d770e467905cb44eab8730809db04e6940347eecc9f49786fda5ef0087b6967bd649faf35793ded95da428e8803100c4ea43d9fe00600dca0c93e099504e17fe1c5ff5b5eae182c8e47da23a5a379ab76165a4a049ea885de32a6d88c1f67bdf", + "0b991deed65eb85c46b4595b373c17a0410ab278658fb2085dd1bb5f036bf41ff1cc", + "02259aa407ba7e340e11104568003def48fb969ec6f8bdc802d582af89f186de084c90d4990eaf5ed4a3f7c971341186dd9eec79ea9233834f1565c439bce7cc168a990ac9d8e6c1a976678d812c85eecf64feac3222a784f6d6463be4bf817a57d9264240a2de803cc66542b560c19a9c29fcd1512869617fd6d031c4677eaf52ad5b7fd17cf28155e5ce8355e350e8881e7350222f849788a8715b858674" + }, + { /* i=8537 cDividendBits=3128 cDivisorBits=2073 */ + "d57e813bf3c179070aac43dc5b1bd89b3c62667fb3ca8e763d4a61bfc6888aba67f3fae1271a7bab923b72b03301a91e71917a4753df746b9111fc116e831a81c03150fff3bfda3a2df2d9914c0da8253f0e7d2cd13fb8041685a80b754b9bbd9109a3e5bcf33091f468896793fbba771cb0a88370e0ac8e3306b9d32174ba1e66e5480e642dbe14b72cde805dfaeee173a70716e726a56b6c32a3841bf944ff090a028ee4f5365192029a0551574cc1613b30db6905f1a820078adee2e91769b33fcc2349340a452c1e76e4825c76043607fb16a1f7da7ae4f4a91562d7f30963f75b1959ba93ea7faf195a994769309ff783364d633ac9927c315ddd716dad01ff9898e795a5a0445e1ef028d4bf3f45b6f3d761377ea6c3871a6f57527055883cbee5e358d9255ab47ef36ed38bc807d9ba667d3d5a30ecc02d3fa12d8e7ba1552e4ea238de1790feaa84795a459901213a8dd3eaeccb4528b8955e9f31048cbfdf1b2eac6b7d314043d580d47a05a4a983940a0892d1085e3734b7abdd7bcf7c391f40933f", + "a9dee1fe579accf87643f14b0a338a992d7ee1c5149a1cc06ecc8fb3a367115afe908b58c4b14722370f53d895d1c40d2fe05e7a4d9cb6799a4fc0abccaf74523ce9dc8e53f3fe34cce430c979f59e057bb241b0c6f15dbb6f8e4df1cbaaf5eedbb64c0fa6d69b143486c60459f627aa8405d6ab7a7f3db3a4fb89fd9a55c3f8026df09c11186b2653447109b16f0bb4c90e134ea4481fd632ab0f542ee6ca8af889ede85b2a52a7d5a947d23e3e206be51224f1d7fc25185764e04049b6e0095c654e975ece16699e513345087b5162be0c37a411069595acb0c985c298d9c8aa22330678c009724812588b1624aca72a692867165222f9a54942a4c9b69af2fd0796", + "0141bdee93a5d736d64d84ca8f223e249efd3f81b01c4c7c10ecd2e2287ad9e3022d35f01d255e4a45e413f3ac26b0583c0a76071ce5f91dcb334f717dd96cd854ddea6e95bbea6d19dce6aae61b59a69b2bf2d9f89f7c48ef39bc88f06db2477508cc77948cd98ec67a9f82be564c9453c386d3f3fd2b8f9ede23c253699fa2d18b7d7bc3", + "1d0d25dc7a48493ddd7d04073294ddc3ce122395197f96fafb7fca8f6295e958a5154c4e295778477a958db087f7ca17e6936062bcb5d065a1e09b98bb77c454e0b813f3463af652d32c6471ba8890fe204eb084c78180369664180c18674d25102d02b5e6132d31f2d04a2b8d8b0661ce9cad37fdf8a690d4ed894b66338f388d2c2998fb689c1e5993fbedadf3173acb7769ba88a5e371e06eb8a2c19e00c32c79aceb2453eda938a6489e73b27f03b269595eec0f6273395c8987a6623de562b07a719769ab721f4c8cdd727cf98cc474dfe06c511a8ab0e52d91c825bd374ad8a1b2b2b2411c402f191fad4cb651755a5ec7608c25e12be51e044acb514fa0b9fd" + }, + { /* i=8538 cDividendBits=3221 cDivisorBits=1391 */ + "042929208602db6e6677443f40f166bf59a0c659c4e43511d0cf3fbdae0061a116f669355f8d535677f099b06c526a76b05ad7fe359a58e557543446d550c86e5100df1f59af365a8ba72e2717eb4a3f75df4d827c6a84c1ca165bca2186f3cb6645eb3c54b331f665f268260a7563f3add747d31c810f4b41a1da32e433150983f54dde39b790b6063dcb0c6dcbc3009287a4623396b312523aa213a2b7b8e92c2dba18710c00e5f32591be09bbfb4a2c68f1cd7bff321ef35a1ab41f13fa26e41bf39dd2ffc591b77df9b8d2a04e9283f49c82a8d204d82408a21c166a4fcfa2308afef62f306f5abaf5caecc14ddd2b9d04a705ff4f290630d852ed0e92f6d89fa1210e1bff268e9a3c33fa008c2265c7aa7d79b40401c81c65340d895d357709f51c36631623a09a972d58f1f5923206dc597d0af1804bf3dbdec7f70c68ad876d947f6069077499fe4b09013f8cd9c72d139c51a4b152417eb31bb874f494424984ca1f50cf782453466ddc84e435eb6b480363a0dce4b11df243026e377bccce99de63c23a0cc09daa2f68b4c516a910", + "17707382ce648b5c44c22e4ad0d3e903e6a8e84aee7728f4521bd489e03b957ce95aee7f857f73d823ca62e5704fb8d2bc27524bfeb11deb6dc6192bcdfeff3417505152457bb7bdeee94525e68e8ec9456327a2d0485c5971351e172c209c68877acb427ccf66ef67aa663921ce92d0d2feeca550c9abb2cb55c6ab8dc5b3c50abde4469e44bc25144975bf858ecea3bf08ad2b2a190878fc0ce2f61358718ca13057968a5784c9237959b28689", + "2d7185172a5a99e11b4948279515bbae7ef6ce5694c047d64367c705deb7b07aed6c58cb41cde5e58b942c5e7e99e0ba6d578595b962b68e63a49a172f57bd31c4a73f085bab509e6d8a2e7b5dc748cd5fb4581e3dca223385a252f76976a99bee21a32efc0433a7d139f60098e920fc4d5ba87dd0b6d94b43cc0c3757636b385b944ad03db7cc4b864a1cd636f3b16f0a818b814cd4953f071d78a0dd8224aa72e0266ed844b7909050be8fb1556fd456dc333b1a6c71ffc80832277e8ee9e12c00b14078f4ad615377ac0f8fe411d84c0eb4621f649bdecb387d38a5c89a1ff86eb581c4", + "14aacceaa80b96532f89dd86f92bc768ddd6450db1693d770289a5aae5568c481a1c09c9b270f3f86dd6ad07d130084e75a93967818e8f7510d9af0987f8deea77869d38c3b5e1d6a88e7963993cc82a2414f8ec4b12d537107dfe29f677225697100dd13f1ff7896314153c5faad86c4247b61d9d86ae3a986a1d7986e01c73e27d61517ae655cb079325ae7d075046476195a215c64db3de1509751d6f05baa0153a884005f2520cd925bf9f2c" + }, + { /* i=8539 cDividendBits=77 cDivisorBits=6 */ + "1f872785071635a8563d", + "04", + "07e1c9e141c58d6a158f", + "01" + }, + { /* i=8540 cDividendBits=362 cDivisorBits=2 */ + "01759000395f8ee3f40689cc362f70d14e0f782ea14d9b0c7adfe9dbfbbb35e6fd772926ed7cab1f99bc8a69b4e5", + "03", + "7c855568752fa151578344120fd045c4afd2ba35c4890428f54df3fe93bca2547d0db7a47ee3b5333ed8cde6f7", + "00" + }, + { /* i=8541 cDividendBits=3547 cDivisorBits=261 */ + "02d7f422fc1ba909a5329d71580d1e15f4689b332e2d74f46f150da428194054158d1c105743688f60b502103b9de5037fba9c32b6d1aaae2cf375e327c9d15184a44e0f45012e20beb4f9d2c38b8c75b57704c96adc1c0bf221f5a46a4f7f64ee9f661a6e54b0d92e2a3fcf78fdbb493d46b45ed36ceb302622df2d90cca28399463005b79cd5b4e8f3c31747ad24cbddbed2c94cf3a44a968f7fffc49837e3297c9a81028e4e6a0e1efbfcb63c27ca2521d708bd587eb073b2d7769aad74256acfba70bc2ce05bb2437ac1fcaa7be071a8bbf3a0d53c7a88d99b607b81ad03094af73928ede5700200a5aaab57c71f7431f5ad078be73d925fbb2ddeafa532796c5f44237b29fddae84121d5b19fd91db2a94ed7a3441c10a80cf586a16f9cc08377680ac613152ef1d586ac5913561df3f04ad117416f6c88f13eb3e83175a6b4346b74fc64862d4cf9e82bf95fcc5f5004e984ae95caf545d2828ee89caf02845604f27aacbc74ae48f38b40fc13f161725f5fa77943af7f4dcaebc4761242b2a1e1925e7550a8b7b0540661aa44f2f6e6d4e1205b9419c512efc48cd1530ec7f6921f9882d35bbe870bfd8a5562ed4a06f539d8a6b21556dbbb", + "0e29e4bbe0f650e2965394ae2bfa59702899a5ac4bb79a9310a1a55222069e4724", + "33655b19b08efbea0b12118e6843b398371205bb85e78a7acf97595c0f676e50cc674f86331d7e33c8e90c3ba2a81ed94120eb64d7b6963008765240376bea674ab6578470b2cb0f47c07213e9b942e3ab640bc7703c763b9caf980eb6ba656d4f0650c75e3cf33cda4bfc323ef402f608d828e283c78b9b918610b032a6b661c7b9f76c85ddb1fbac84ce466ed18216e6e85291155a482a6a534f5f9e319e925e1783fffc20d6f1323d87802d275fd14188921993ea47ac016ef195c5340b64ddce5cdf5fcef7777edfb8062fd455b37e76ae521b602aa90657371eac5fac21dee5f4e0def590001a7c5c5cf65216017861c88d8a2f57cb5a84cdf2f0aa3755c2c2b0f1e473b3033dd629323b390c60ec28558e0579701d0c41d7363e78a970a8510a958405dc5241d5c35cb43fa6dbe373a3f2d282e7fa9807cecca6c2b7f282d268024fd003637fecbcbfcc13bec5d723844a0a1655aabe118ebb91e260cf7361dbcf3655d644ff358c25fd801cce5deabddb970e7b0ee0b249d2c269a91ba857db6ab5367e4321451a08677d02ac128312f701ef1b8fd3882c", + "088874658ed3084947a6353b368ba4b20048fc83bc8ee4be876fce7a571dab818b" + }, + { /* i=8542 cDividendBits=795 cDivisorBits=112 */ + "03eb019190c59e06402aa1ebcf03010493335d761ac06db88bbe4dd9bcf14c797373d3464b1e19f2f2a3801e65a5e4f4ed0db262f61c44bcbb3ddb19972db7b32c7bd4b2ce2abf2fe2a83979ae12c73505f6d5538af380925407e94ec2ca29ae4338a269", + "2ed90a0aae68b7f5a2e30e855677", + "1568ee1a66715eda1ed09327a4ffa2599cc552a363cd5274774c5e7827fa9a6ad93746f6ac1bff358c738b068facf4b8aa2ed6973dc7b763e3e78bfa1f70526e12520ac1bdc30991c494bae08ffca3aafcd22eb396ad", + "297b2eccab707876dd587b3e79fe" + }, + { /* i=8543 cDividendBits=1718 cDivisorBits=1105 */ + "079a13d8a02dee3674504009c0e2004e88d377b43c313969fa7ca65c1a391156119b49f19d588f54fb094958bcf231047817e0b4eedfae38826670db357c644a37558785874d941953ad9b3683c81a3de4a2cbda05381d28982f1ab94b968dd13d990565b6feaa7a3a8f833f790a27bb840db4bf37c5eddafd238cdb2866181341ed851cf2cb069a866be508192b9e05aa4ced56b79e558f61d79b72cc682dd5a22f31d8a09a1e6f318395517daaa4db1a0c26754eaa31aa041b400c8a636f59452bb7179c497f4a453d575a24ecbced6f22933913cd3c", + "0159c010a590e1a06fc91e064cc20f4f21b59d49dee27129c589353688e7cd910b717be49b1b22ede00df18389854785b6238f840c67d7557edf9b7cf78e3b51b471ed2ee14ca1e57f1b8014688c6605ce6b413c29e15bc1d16d1980c834e87df8acb2195721ae6638abc65deddb8d0ab037bfe193afbea67f452e21feb07fd6712a2786a68b3fddd88020", + "05a0e9966ff014a9d0eb25109c5fc0873199f7793d2fb14c96f6388b3d0427e4b9068e071d9246b34c73f7f4f9ba07db03fe6c1aacdb96df95cbfa4ca6be225c8f7bc6b1d844e999c0970a5ae9", + "013205f7f379a18f4bffedd41b8951bb9c9e2bf6d81b4310163204a5d526e08563f874ee7e881221b1f267c89439cf4fa820bee43d1c4bc51c32f523cadc1a64d732510f128da0dff352078d7e6537a5f6e5f953a5a33034d8deba92a7a17fbee565acd6db9271873854c8401d4e494db7654aff39c2813a02031a8a1b2c77dc29e836d2795b6c50bbf01c" + }, + { /* i=8544 cDividendBits=2322 cDivisorBits=919 */ + "019541d5b8dbe6a666cc2aa879bb67cc9d5495cb3b5b968dcb26f1fd38e61e7ce992e99f48b46485d30e47fe9b23a3f80cd89aa65900df9e846f5dae690cefc129add895d76fdec75aba4265d0cfca0e884eba04ceb7795f83b595a649ee13b3fb283cddf53525202f14e98827a026733a82aa69aa33d79761acd276f03839400bd9e48ff56d6f9b290adbae3abc9034b917a9fc0d69b9b2e1c167e4839d5c613f15a2f3a709180895c00edaed387eae007f06bfd72ddf09eeaaacafa10fa4c1093b28b9ac81c119b5003b6b3af5a7ea8078bdc7c44b91d6a189cf11f8e030edbc68fb82738d11f93064dfb628889f2cc61630cd385dbcd5ac2c94e0cc3aedc2216a426e4b850ca68bdc6324be43696bb530220360e1435b132d1d084bf1b239b40cef", + "6dd97c9af52039b0069c3d8cab5977e03faffca078b6c8448cf8b5fc30b2de8123b9089254a5508cddfbd3130d8c258bee9ef266d2759d555cfca23e2f92c3f889544f0efb47602ba9175fef4a7da700faa0eb026aab1a215aeb0ec3a62a0c400a399d3b093aa35486e928df0b2040a0364cee", + "03b06f84b1c687cb015502e45adf9d43dc5e0ccbc945c251e9692b1a0d5463a46a8c8270e2903fd09bdab4aee7bd579d60d619a2754e5788937dff77e74f1b867fda389dac8b68fd63b4c4baeb2e2c0025de09e8008211a4d3a57e625a7a1e21ba3bb59aa9d094efd50bc5c316fd5253f471557b54397e0b68c932d730ff69058bb3fcd3cbaa0651a001ecf5a4a4e90b0a4056f3a1fbfbe81949507974ce35970e76a579538e9b0a420b29d1f48eb9b5", + "39a0be30368d9b46cbfb080f9b1072cb286adee715a38205475733eb2095ab18149aefa47c8c1412ad44f4d66638bdc497415944c0e7f429274e9f8c88f4ff4868a3151b8975dface17e831d68c80628e4f372e4b9c99f4965e5fbd720d74394214bcebdddf1abeae3cb3ca5b1e47a31b3aaa9" + }, + { /* i=8545 cDividendBits=2331 cDivisorBits=560 */ + "0758b6c6bf741c2f1833f8c6f7f41f258dde12086a8c64e59ac1e9f6ca47117858ea399092d2459280f19dfd9d6e2274152797c85540c5f762af831b5a9e2f7d0276a694503a494fd03086b6d2fe59eaf6bd15f87c3d154fc86d9c2755bafe19c0e9fd631b3eea47baf6312010a825a13f685c20332a80a922cbeaf54ef1df764e466cf56d6bf91b40bb56da3f0a1dd9d151123826b77f2ce5c83455e7f0fbce783bd92ecf1392a17496894259c30d52c3ada0ed6611014b4c08ce55098cc727805a6a076623f9a607169f875c8686e8d0c0d5656323e9a1018eaec3d38ada3c3381c84af4014d2cbee6246cfebdc6aaac32de0ef872f801be5de409763ebda288fc2ed311329b128103de34d14b1c172497c40efe667abc5a94fcdf47895059ec54c107", + "7d9b3117a2dc1186a450b0ca66734a43eb4be3edaa3efbe81fca743c02724cc759eda4b54873e7e2696a6bfde372dcf33645966160a868ff2235ce7d1e7c34d4344dc33c502e", + "0ef91cd36a8b5426c2ba37149c915e1c60ea54d7861df848a3c8438b7c7080adda1582f40de175c29d00db6cbb9507b2e595fe015090a7e3263d2406b2b96cc100ae9753160ad8084dc556de7b890b7475f29be45f07478cad403c6298f053f1cc4b9a1ca2827a1c5fd8e8bddb3212c77238247ba3beedd3ff744b7329e6d97f05c66300aab3ef15bd5d760a30a2cfdd43fbc9cbb0e364cef2ca0c9b91d1cb011b1755265f6d00db25ca41db7c6b28c16383fb3234bae06aad4dfe462b5e370524412b57e4f7979f8620ad50bb07540ba33f3a9ca6eefc84696f4b2fb9fd", + "047ac58e5a9bc62801d7cda998da0a9cc396ad15788424e4b5dbac9db13df8aaf1c1c0a307bbf7c09007d53b7396b1ac510f0ee577d6c7ab38e085c7401351ca47e731564591" + }, + { /* i=8546 cDividendBits=1967 cDivisorBits=110 */ + "083c64bbdaf209d0016655025bf2631045e6f92adedec8faa7151c2f1334c6da66dd15faae43517a447b46aa8b696642ffc7bcc402490f67e4086cdf478045000c60b2709300e3286085fe1c45180023eac9fecd5dac03f157b6786e583582e9514980ed34feaef1336f8f789cbeae1a690ca8ecd2ae3db8daa968bf2fcbe525d307472c4f45dbf3260fdaf83ef993184a172d64bffa8887ae21d213a302768e747e4750a9a0fac89bf3395cbdb67afa45548e8cb0f1a5634d5e9c507ba6bdf68a839e6d6c56ac72585ed597f2192e7c9e2ed8dc0ad9e992420318f9de47b4e62dfce3e0827d9628aefb8b324f52f568f8714dd1b37e", + "155177780df07f5399ec62b2b5ec", + "62e6a5ccca130c60f74c7efb7a3b1639b70186bca28b128c3d6722b7ec0fa151ff18d3992b2ece846a206284277ce05667d32cf9d58f4b7a7a21d85345f5512f558ea6960647e3b2fe00e5d15b437da717d3bc8a6f9efbc35ff480a8c6a217e3c0a8c714217b2da71f29f90362b154052f06bc5b3c7e2a08efdc3e318d15a53bb70836c12264e3cbee3f7a7de41c1b1026956f08337867776b29ca0b1056750422f0b46dd1f5c8e7d4f8a10cc3f721ab15b529359ce88e15ba6776dff777fb8d6979c587599013345fd76793b0f1b918289f4439f2299507aa635ccc213e75c64e1da6f5e0a6b19a", + "06802cca244a0f526e13e7801786" + }, + { /* i=8547 cDividendBits=23 cDivisorBits=2 */ + "2612d3", + "02", + "130969", + "01" + }, + { /* i=8548 cDividendBits=4081 cDivisorBits=2211 */ + "01a72eb877afe9c4d8ee109bf85a7ee3389ef03d5aa3603f5ec9440abb484b53eb482b7a627032a27dd8531fb467bb6fed4410b6f51d49d7f1d6f56586318a8c689e0ca4ab66e6c75b4f1c11064b8be205b1b0701ce0ca43a51f9f397660c50e5b6ef089c16517db7e339cbf18d460c93c04056c3a654700f8a2df7041c4fc8226c36a9ea28c41afac4a3f6a03bc4009cb1dcbdd270e108f4272937b6b29a1f1fe8261256834d378b292c7ef76e4614991952244fd926bb556f3398a66cc291f7ed5a9f8e6ab19937883d537208dadde13f304f4e60b7a2e4597b2a51d1346cae82787b7a5476c3390615775b0d04cc8a097f1a6ed05787254e2948db4886c25e03245433962624dabebcc1babdb01fcf001d8684c2e1bdf6b3e04feadf062429ccc5ac2cb6d50756cbd40f41ad2123f5770a6a4384542fde24b8778311a18595614c0c7986a5aacaf66d4001304083ac5b3f71e8164e5e006431202b09ec06d4f762a50042e277ce8dda90aef204181e5963c7ffd985fd8bafb429ae45a43a3becda2e2962603a11ecc6f6ee47e298a2c496d07d3f6abe37db78f29af1e4e7274932285227f66e15c75cd8aa4271454ae84e6a6e7b76c5e13cd0c2cc43d3e459b3fe91f0cb8d7f3855a928666f4cd6aa468166ec8867d338136a0ecdd9c580505816127a54d9c25c2c867ce59390c2dce635d6344278cd784dba937227499", + "da3be439991a1c5d27810b3df1d7fa3ab827817b60da5d3f21296662e4cb3cbd2a228fe510dc0701dd951c546b422d6d16b9fff5a5cd079630f0f044058ff756fc4d1234b93a88db19397fdfa41852e9992fa8ba4bf738a5e555359a07da7a4454f416d4435e0cedc8538bbda522a74b4470ff1cea602e32793de74d47fa1e5a44fc918f86b04c3f48c9350e290da6040f2fc97cd7a19298732360bddd8a08f41c38ec68f3adf63ba4d84dba20c88c21890cfd52079ca6e2f9f362f04d252045350401d090a793a5c91797fc855bc936a02a199e4bc3ba89f4ebd4757043366f1412290673a68d525e704c1cc9a57592f913a9754002a5c1a3d9b1eda585e7e175fac5b7887c8e4879df37ee4b9e0247b6f40203", + "01f06a5f956841fad20d60626fb5326ab70c5794d581a2da531e541b33d8048deea09f94f80a3cd0f65f8e61b14a6ad32278e68cd4b78bda1346482084de42fde22f2ce0f9b776eb78364fe1166b39ecc673b8d4904463329d60458638c0fe522a1216a819e159fcb7c4b0671a00617a325c86c798fdc0f95cc0b101a961bd114550e2c0b08757287adc34700fa47fab7891a98d895ff8d679d61b926a6f51382dcd61bcb81a60eb939626416b1de969d936a9974d74429f667301a4469fe28bb640e6423cdbefa6ecf8641e62be1af9fd3f963e6aee7380a4767a0c8309031e5ea51abcd846112ebd0048", + "a5085a53b5d014088c1ffd9251177b79dd0040fd30fba341a6c5223f05e0866500df662c3341db754ed323f197d5289c8f0bb09701480c0cc4601b858d54dbd3b5f76baed3dedca6c102a2751502be5353d48711d30cdd37d9252d0b5c51c4b5d16c44460903575e3e9bed50273c66ec5923cf8b69533ada305750f53100ee43fa694769e16092f3224924ecf41f1dfd96ea004cd6f518c03ee30eb0347c3946e81c5c6176287cc4f148b315ddda817e4b0b4fe30d6207438bb8973e9b0d04e0ec6fb0da3bcf753cad1b0aba8622ac9e5dbfccb74203d0e67f7643273d085e191869059a774a46682f6e0c234992bd798e7eb06f24de47e8fe57b5dc25d43537258bf277bfe737913dcebf033bf958c8bc4ae3c1" + }, + { /* i=8549 cDividendBits=1709 cDivisorBits=237 */ + "0b032b161ec8e9c33e1efb2a0666c51fa72f696a694379c77762cc82d9cc8948586a59c9b5bae4106f6f6e53b35001eecaf9a1805eb0112f265e765238c66b78d2127782e0911e952270cfe1cacbab52109340b953ac15e0810d9023e337bd5ce6b560a139e2497dfc84fefce832d8b8e5735d5277621327169efb87b369992e8a19c8013c5a778b7f67bdcf75c4a4a5b64f23b8d82fba7b385d4230f7ffaec4378fe4be8cbc00c27cc35394b49021bffd37c14e57451aabe5e0b4b94828fb106b18fd052662f29204437577555d9ebe643e1bc565bd", + "19be22d44164e1501c40095c99aa6f79aedd4a0134166c0522be94df6147", + "6d83630ddcc958b6e32c87a1591118c751b58538d8bcb5a27e66118f8555444d267b07b0077f50e7f83f414df6a588a901726207220a16ca27e325f2ecbe788e2d0082f313ab8b59197636b5a242d6655c924002bcae53c9ce207e25e9bde8edacd261aab6b2303f83d6df69d96ba2a6b3b5bdb647f85b3ee1d65f9c0038aec6fbff070ea8bd353503ebd8b93f2bc3c53388fbfc853f05c7dd135fd5809b519b46e921d80e27e23b49a9dbe03a54d6de11b11cbaa460099e", + "86934aa9d706535c6b7b9d0679c25fb51f48c50951147bdfb668dbdceb" + }, + { /* i=8550 cDividendBits=3450 cDivisorBits=2174 */ + "0296263e590166dbdb7fb5251a65185ebebdaa225646eaa851616c9b9e86948bd84f65d70dd999d59739df8d00c660d2bafd32c9f69fbc27c049be8c5ca8c479539732f1d12cc864be36d170b2a9179ce8a343ac4dc772b1952aee49764cdb74cd0669fc9b5d047321a20792ae54b62391e4d434dcb56b31c8c2774d80598681f2a263c230b6f749a27fc6ae4d8a0114dc5ba72fe7774fd85f342d3b097ea84c4c8704a788cff0750e9e671f146f8e105df07eccbf5dc77100e9cb295a1774072bfff1cba99aeb06673eb124c3cd84e4d909c38f38d597a9e332376324a8dbc3442aa7b984916c518e7e9a72d0d88d3cf2fb99f84195255fd92b8ba60b15ac22f75e80d3c47c3c704edfee64b4a953357901aabfbf9169c53a4435f0f7d80de9b94748a1cf561ae8edf4daf2d917a7f84158e238afb21bc4349a1ab22c97d3f2e7409b1cc6a8b1b05bd23ace23ca147518371e4170dc4207a5a443ef2157c5f95ee2765d54f9900f1be47656622da9d9c3253c94b6d73fa9df6b9f37e5f2cfba349b1e1a92130cd137fbd8f4dabb91fdebdd318572a925f0a213fa2af70c36e3bc600ded582db81d21ecbc9461ee6bb0", + "0784842dfca5d420ba8e5fabeaf9e886b31852eadec7594d0cc93ae55cd17815ae41a551c664c1a498402ff090107dac191c74ec6687593db2467aa5f499f435394c29b87139beaa10356608f090c14c4292c8ac770b15703af24003c932d3fc4a1696d980e4176dcfb76b57d5e811be8c40b14a3c88c340551ba83c14dcfb4be690db471e6171d8b7ecce5026dd21d7449a45539cd936b2696871ec24c87ee93dc25991ca1ff22c3048897b939bd834b5aa953df96bb2ea731b89d8f7ec6f8ad2fd3b8f68f63cca9b1d03a29269bc9c60768dfee5a91753e37c15c3f7bc2adf17fcabbe226f6d0353f5c5911254a2f822225252dc7b00ec91989bb92562d4889e3c3058f2af9a4e819880ff96b04286", + "58145390b00a053ce1ab77ea6cf326e1833759d6da541e52378a8153fd1a92c4360d3281bcc9339ce17c538d1bd1e59a97c888ddce2a5996b1fc7435e438ba5c91045c0ac98809b077efafc5ac27febf21d8834314ce996ca4ccf002bfd7039d38af1f2cc00d705db0982c9f8e9057dbb24d11006f59cc73e9b8a83d20318f27e465e39724b2f25a4d250c0589952354362c6f1279a628471fbb2d943b9d086b", + "0695c1d4d7e1a943c6af531b90b9e9b470d423adb10c21ee23d4d6ba1ba67ed0396e86598e411e2109b374564a11149c8e61c6167b6936307ed8ec3b7d9910515aaa1b32aa659ce801d07b3966b2109ee7d9161f5ed091a3673ace5220da82a702b02fd976a54cf3d827f7c7bcd1ec20816365e73d3b8f4b3ad9a8961ec1b682a05f15a472ec78f4936a3e5eb45c4e415c7496a619e8e8287af7f997da748809faf2f80d99207439975e3b73a80fa6f340a34828aaf8f4dfe6e7f78e6447296106d3f3146c3e1031cc03903bc80c469471f862ca3c9d2bd890f21ff1cac703e797d79f2421301f0740298d047ad0987724fb675056763adcbb16bf9b11ebc6423add1b21fafcd5c54332c82536006dae" + }, + { /* i=8551 cDividendBits=3762 cDivisorBits=850 */ + "fca40f134da9e020f7cfca51dc82585bfab723dda8f47cbb63b8f24c19cd5e55f15b2a5b6ead987bdc48f0e910087a00ef6ba56335a89bb908e73f8868a251dad57dfa3a468ac4c2c3f813a22a9ce06bbbd2a491627bbd64e106fe1acfd8c3f2b01752269bafd9b5c93aab6617cf690853ebcb32d070f0e8635ba3115836973e17180cedd62eb795bdc623124060e600fc9918c5fee1a588b3f8cd357f808cb9de09c8d823ee4567fb341728888b883dc66e57be13baa031af6a18408632c5921945b0a379d3f2c67a08cdc4fbb7b9ea352eaf2f4a17e3c46b335a1f73b2c25122aa46988771e7b1cb9a484e7552cd487e571cfd48c1de89a7af19beec3adbc78d988327a645bc924ba523ad63bbe9700b9833b270dfeebfbc23f72aebdf8a8e5c08ee5e12f6121247e1eba1d6ceeac66fc65249a62c207f36002781683282e36a023c79f16f948902940c766ae1c560248dd499b27a56e0cdad175d1478480b69684d25410084605b02786e1c2998b449cfed67712f15a7c4ff0e51208f3eaef4c9d77230baaa515d15d480d19efa92f01c049ff1936a1b7ca17c6b269d4792413cecab6d4422398f4dfe53213e451b4f7c5945d5bb8159e30f7072a62df654fcf4f40e01d5d80701ff193c6330adf90c7e3075152f", + "01d4468204008e426a3ab7c7edd194322d905ecc550893ec5934085c139639457c096a5be05a5369c5c84496d4162ed3b5bcb564f089e703842c0c2d848d73cc265be2e3a66e7636d3a4466615c66069c69d1977cf8bcec7292d5f3048d258b79ea31e999f3056bc95f1b9", + "8a1d8c7fd8f10f38f7138dcb0d36c6f81d3befb6fa6dc7b213aff73fa734367969e262d53c3f7d1f33983c346a9acf60a96de8ed15a7235c143bf2b2fef8b9088e9e6bda318a95ab7b288a3fcc4f35894d9ec6fca43d79b41934c4390cf678d901e8bdcd92d7acf7a0d058cd18e95035462c7e2558e7c43ce8d5ef9a61b0170b07c6391df31b8810588911cfc4e31bb19f0daf31f545c46aa92f706ccefb2748644241b36d831c3a0cbfced4deaa74a79f004140501a2f6b05cac69c8f6de7ff5e658f20de71fb0fabf8da066e303b64f07762acf3472f6906d4229f4b6807cfb2fa438c3bcc933b5b5a4307780ea3000f58bb80d8c669a3b188f42d57f5bb628d06ab8eab80fe1016caaaba969fdb0644dacc467191c0a4b8a961760123ab8181a43c936a35ca2f023c8d93691f8db6ebdd995d79c30619bbbf04d81e930dfc02908bc4c229a262346bbd574da440184d45864555c590de1033846d9d130b9c50268043064a07b35fec9ace", + "63272b9b4e9a13b934777a3613254721eb18cd0209138f06ca5035e433c0bf0b31b29daf6ba62723b266d3c358b257d80b338dceeb8887d27184735d3a091fb414f3b97ff98ada64ef839a56cb50d4c0ce42e8ee4f436b32689ce902151a628d103b60ec66f6bed74851" + }, + { /* i=8552 cDividendBits=836 cDivisorBits=633 */ + "0b83256a41f3a671eb957346cf54e7c828f7cb77865ee241d2033b355c51ab88d073a3d2ce3663420586c5aa7cbcd83287bf9bb94e88316d738ec6c31beccb5b99856e6f5e9f184fdac9ef5f1355df9fcac41769241bc1e45d46cf8730fc4a1ca5b75f2d18065d1e7c", + "01f3bf0805a676c16d9de626026a6eb7419df6336c5dd03db80d7d8dac9aaf9367c17afd401282d43db0db1010f646046338dbbdb36b99242240a97fc6b8cc4d0a4bfd22eb87ecc1fd3be1a4c8d876ff", + "05e5b481ef9b3f35640403695a16613b110b612d6067ea9da705", + "01c6bc09f35c7059095909ed07af686532fb0a7b66621a40228d7703fac61bfafbf5c4bbb5df7f98bbc6fda638b40c0db681df565013a890c5c04f33000935cc074d15beb3fef2f92dd1bbbbd41f7281" + }, + { /* i=8553 cDividendBits=3651 cDivisorBits=1088 */ + "02d872153faf0b0a51232f4c37e17c883408fef9c20f8bed027b093129b78d5c505aea0f3186a2c903bd25dfd606ecbf33d018bf214198f924fbe01b7288bf8cbf6175044b0a03865c0e542f596be97e32cccc297bc393836960b898b37be7152701aff69f25ebeb28653a85aed5e08c29f02930ddd324ebb4d880be6dbc89c467b4ff4a1736172030fad4a936eff01bfecdce801bb78a9f7660248355cc7cc5f999b632258b2783cc56a730168b4cbd2657f03fc1702e8830a477bc253a4628ddd1ea2c32de14ef1cfa5c687c99763572864fe40c4d405107e3ae8a20f9c5b85cd61fef24673edc19c1764cd32a2ad99e765252c5e133c57febe9a8bddd7176dda19098e14d5a17a3b991abdaaf060613db049b949ef468d85bfafbfc271b2231f0e0aea8780e3f6048e54bfd76a20f9e799916067a26089f6caeb7a78583834a64d52bfbae2ecf5624961539a011000165219ea53f4ff5f85350fcb067924ce9e813e7be2053ea69d725d940a82dda0995278dbc68baad0d339ddbaf92ebbd18c5301b0e622557ee4bd132ebb62b94530a43eb59d73d6c8430af9e48a36fa4edf625814946a0918ec2796b3724dcc809d7b1cb8b37fe799dadd42bd4dc4da068f3d389a78b078e02", + "4684e3c49ae67a27f1b991faa08a9c3ee3cef1a3c251fc4ac9e7feee00a979c4e812d7e41b23b0c2687495bf5adb1e141671d4200ae17324cf3f30a3e834a79fe1670a9a727dfaf0333028f519ad0294da3d304383f032a2313d8e0e431a990a4bbbbe28fad5d7093fd525e9280c384884b0cc532005ee0d9527e4955ec0bab279df207395fd8203", + "0a546b631072e65bf44c5faec103b3e1bacb2d21e0529898f67a28e81494177df2456c67cc1bdaa14b303b60971f462588495964c412f7c11b2bf0306dc985a354b91a64d888b3f431db4c83d5fbf7fac1f5b842c38aa764a5bf26627f50ec4fb9364769ce274c46b2dac2661ccde718e81a49b2e7cce6d3116ff9cc61586e29c1911823aba6634d6f6a7c80a953495cc63d2731e44779a61e1d6f8f7957b9f4e2dca00951327728931df7c50d6d560a4748345438c9d2115d1b5b2235f24c21c404b9ffbfa74be786b2b9f2620b4618e56cfb5611dbcf3345a932e66903f09016688de6ac6e36ec50715e5cac0ad290c1e86033841062ed4323aceb11ca16efe5ec32c05d4bf97de1bbea6f8f22013d244e9aac354a1acbe5f3a188cfae22eab059a9ee61520312c36385ce60a4e17e33777314b5567f341864398c7f5b20ae66", + "2a35767fde67d991963104a7a009a279166c8f2ea7b3b3e8e3e3869a697d4af08d54c1ff5842c3ae492908b5afe850db85ed27d20c64888b44d2e4a47a7963081dbd290e8d279c53c5b0f1277d0c9472c0b13377c7ce1ea74dbb2612ff79a34dcb806c38435666ce89ef930080bbf9e51e0fc5226e805b63722d730c698eda286d920b432847b6d0" + }, + { /* i=8554 cDividendBits=604 cDivisorBits=334 */ + "0372c9cb07f2efd88a26c1582ff88ea34362320644a301c1aadc93a812dba89f3c5d1c15da881e774a61558412b1d2d2d208fccd72a90ed50b53d663e2ba2c0e220800264b6d37e66d115ac3", + "3b8d8dd87877f4e2c21a23ab62bbde207417cdc34eb76e72a5915c31fe75fd581993240bf108c6641791", + "0ed2d694534c164cd6a03792e7e14d6d71e7c9d7450368c9dc67e2e5817f5b2b9abd", + "35e0ee8c9fb1e62c11c61252acb404933370c7a6b5d1085f40b9b0198823fd546324f26153f43ea3bab6" + }, + { /* i=8555 cDividendBits=2693 cDivisorBits=913 */ + "13fa88b681959c54af8f779dd3797471bb8e6e0229054371089019d8ea6d07db38ffb1699909115bbdec7a5b79864a9fb513130475daa6a5c85317e8ec0baea29ba1541e3a8aff06c2a5f4d451741657e0ba0a8f5e0aaf8c97b325968b9fa6b6928b62b6a3a4bacdfe87ce40c3a50b23c3fe48554bd9f1eaf45eb70d6f9a034da8f2de1a4010a7f90e4d3968f39597e61595b30cc640f6c771af016ee5c2c60183fc7a965a2924150e2885a6b5ac1aaa7a77e220b8a738aa5d996e5d9a0fe7c538653aeef25e1cf1f0c709306e2975ec4f5320dd692c529ac91a9d00ea2f4330a5e5f7e3040afd2cf24af5cbf8afdd449b0098c628d38b40d469fe3bb184586d85c8b5ca384caf29348a163c2fdff2d75d1a334b18664b9d5ce3e6521c3f5e5421591dc759183bc071eb0707989ccb4fba875f4c256509e72dbbe6a7de877149e1a8d8e5992a9ee1f77621084dff6458ba", + "01970ffc86af321d6f94606b7c0698f67641585811b539b043a0e196b345305cb3942358c84e51f20f509ba291dc62ae4a49286b81c0a36784a7f75e7ba8fd6e82a416d6a0445ef70b447881c81a2bd8cc1a0905681e6dd98c5f0d42b72a7aedbf5cf9bd1f72d3676ff45497f5bad56fffc0fc", + "0c9082bcafdcb4d257fd832c6389120997b0f83e417f441788d20f9bf4c055d71ff8f3d13be242e06cf6d8d4c35c2b49e5b905e30635193db5c6bdfa3945246ba70bfd359fb0e6a7b191db2c65d495b5289e00d7f314e974a01e652e41e049b307b811a0d45c99e9e23d11fd7bbeba2d70dfa9041bb0174f2608f93d41918b418751d9e9ddf35181b65ce9f1861c8d7ace056cdf7cd044c34bf0ae837c57c6bddaf53ca4246877d8e9f36d50c0713c180ac0c9e8a95434aa22208087660e64243e02b404f70ee6270941509beb6146944a3d9af754e8b92553d855138f3835", + "fe7c3dec1cbb0effc0ac95b255d7e8aaec9892bd6e22fb22f70ac2322a305ea3b68e804360a9d00238fd7a90a385e26c59f2cbf58fb01dc5f34bf3d0addd95625b6ec7e28fd22582438c5c3c6562e0893891b3880ae409ac20b998bff3083c414c690310691a1c716fcb12656ac25c76448e" + }, + { /* i=8556 cDividendBits=2665 cDivisorBits=2109 */ + "01c5490d1b3854e236a4fb381065e29755ec41747eea0f4cca97e4ddb58424764a0d45f423f81920f3c27483a0e5fffaf3a857fe88538e4ff7f998e00365c46e330040ab1185d4f330d94cda5d6799fce4175a0796e067b1584c8610aa39e3d70ccdf3d1069dce9911358dfe0eae4915f0405c4ca912f60e658f45fd5187a9788e24a4e58c22537e40d2d3b3fb3449e0455c0ddd6e64bc481a226a1937316fb93327e80c0f3e2b6936815f35b863cfd3f2e22efb7d5c46ac61224fbcff5d32bfc10381bdf4b47f561db59ea4fb30979fe307fa404efcbbaccda56be7cd887b78e60fda35ce93bae644c63dcacafe4d7ff7bfc6ba02e58a0a758e56d4786d70a1def56c582f816ed315a89238de666ba52adbec223dcc12209c7fc965e7cee320d59c86cae5e228bd1876ebc75bee1f00eea352345efc001345de4d1dad203fe5ca1bdf1b1980fad5dfd906533a5c", + "0f8b48bcf60e6b017f49ea7e11e727211d6f80c19cf1c37cc6f26c82b2698f052639cd947ed4223d3d65cdfd16c9d738690ea3de609e3f552cc558b4630b822a16a931206785c0ff24a50b2f2450b46e55b76d9f3cbcfd5a284d13ef7183c94dce9a0d23b1c09d08a5890062dd45a280c609dfa4accb772afd8771dec4fd7f51a255473e0e0487cae9083ef42240c6d592db6e88ffad69ce28fcc6f55a29655637bb8896e4d5b59c2b5ea30441fad64ed0df61650bd31ee66875fc8e2531529048ef0481a6cc0bf9390c080cb738a0f29e44824aae001aa95629d3afd1cc291f2834d3f5d7837fff3f186fc94894cde6870d75b155187621a82b945c27ca036096e9479b14096409", + "1d294a2df0050346874390de82a4e640d1fb53803577082b7fab98ef91c82124faf82939c169d8ef84ff9694937ab7239cfd14c951d6b134faced537088622440bd059a6f808", + "07dc2d6ef8aba2f41f0ca6bb830b88cd747dd5a40338b422a60a4b6270452100589bf4b9be5094b48fe23cf57025dc17881ef38ee2efd7f25ad5a283b3741358bd98dcbb2ea89a4448165b901f099476c8fdf42554af944fc5c3e1669080354e962ac9261b49c6de428141d73459d644b9e65899af67502263d3abef6f5f2042df2cefd634347739ccf372f4805da97b34b5f9cb6777cfe2660c4c1ccc853cb5075bef4f16c6b41275ba3d690cb660d9bd6099d4c39b18255c4f5328630c4c433767673ee9c6c2b23ba14fd78264284698e534b12e28cd32033c4b7c1066505e931fadba4cfcadc1dad87476530831851836575d4558e0b444d526c923fa68c67a557b694e496214" + }, + { /* i=8557 cDividendBits=278 cDivisorBits=31 */ + "0568f0288ec0c7135d546df9afc30b5d5b50ca5d483ae7270b5f02f98b80009574acf6", + "2e41a8da", + "1df0becbd7cc74a5e1b1b4c831e475a1d09e611c086d7a2c893caa35b4e387", + "1cd35400" + }, + { /* i=8558 cDividendBits=1582 cDivisorBits=615 */ + "26784f2211fe3ebc3e1dd602c869d6ac64ed20ca1cb50cd48439f81425ee0f2179af252e563eca4dba50b74253a348f221eaa221d25b2e406c43f586b49b42b8c9c37ad858d970dcba65075030d1c6cb1ee66dd15a055feb3c99b2b1dec9fd711273988776ad1f5019f3402779fa0710de0d076a9407a8c7f7a919f8a96eb3efdf747b13c2c1313e599032ce81959a54975e858f383eac020e2e07cee7173bc7b001e04339931f2df246975b158c5df7945d0ba8bb190a4836271f607fe3bf2851c70bae6a97", + "44f7cd56477c34d527ea9d41fdccef13cf95f7addbd87f1eccb399e4a1770494a1648c887b75f3dc4213ef3754e71ff661839582a1141cb20c9af8d7fc5e06ce4d18425fc84ca50f4f949f26c0", + "8ecb9ea1441baa4b98df408cb86e5dbdc32f2f2c0f58358a094df1cc8ef65e46961c1ae4c2b6cfd5e26476f2e4fba9834a89bb812b070ba69efb5d796d2ee9252f0b5ca7c165789916570f1dfd9fe321e8072155251831831283b349e33401142ff4443805bdd89826be6ab1dd470e79343cf0a01a883e3bc4", + "1558959d53c864ad2b194a79af6887b5170a6ad8ae4b0911d4e904d368f65ab9dadfd4dba0e13e1f18d04c6f0dd05f3159d01fb47870748a3899c3a17e7e98b562e957348125a4c6f731667f97" + }, + { /* i=8559 cDividendBits=2303 cDivisorBits=1921 */ + "025e9fcc257a4192f5bbc940eaaa3059b225da09f0b344afba5680220621af582f6a1712b7b05e6e7f8c1079b25c73b5149049d271475b2c027696923be263b5f7981685e0337f18fe10f6e92531a2a258278356f4fa8562b9e7de263926c992ae7ba6e8058633b741aa9a36b704c7758565ff502400abff11a6a6a55bd0cc15f70bb53894b5304d82beffe8a2012db01e3c8c88f28676ab92cc3351ae6c5bbcc584dba409221fe7c0a74c1e09edbf1a44a1b1de880f360b87e5bba91aadfb8085b42c3d295b4206d647d5582a84bdd4b22c913cf0dc27ccb2db648b8682f30e22197f2a211c001095de943e02880b268716bb2ea0706281014c5a4e0cea4c696e99564c19e7d24e0e371198229c85446a970dcdb69559e5ab62ba7bbae4aa32", + "01d0d35869cd6ee4811a0931e623e5b143bd4daf8394259706f70d64e605d738027e20e47bafb5ed0523bc17bf2c04e835066cc78e8f50b727420e46b1267e2b28452a9f9e58dba8c0fd5228f16ab5843659bd3113beaae8b710c5a7d79ccc060d30fd1eec0f8876e6c955a033634d0fe46fbcb157ec5f47db34ac7c9711793c53fe458ff26147cf83081b16ce919b727a60aaa4119159872ffc42274e6e3a33215688a23b1e13e38e3da7bf5d749456f502c9a05a8eb23956032c3a9730cc6de604f77b3e18dd58edb3e5356f678e60855e77200c1f0641d3e9074c4d2fc3cc6a945397313685613ab756acbd25e1314b", + "014e1843bb29bdbd030cbee7907e82009f0c21d5dce83d03c912b761bf0171990acd85457282e9d9e61912916a800117", + "01aec54ca8e3b040033b4307d28ad539028efbe65d834929997f226b7e212fc00d0d7e9bb8465c433778efc89d08eb439cc030b39a7efe4d95c5ff83ea00976563a03293d00ce930fa7a1211b4cd51649e07235461a297db2588ff8ff6641fa957a8267ad251fefccb6fe6fff9023e92e867bf528e76d3f3335708d41010875de919b3e947393ca21176e9a04ae11f8accd1e5d8ae80c0084fe07d643b2df0acaf2b30fdda5c566ffabf46374cd4d642b79ddcb42530fe1319306d0c4bd483d572007da9d36c94ffb66e870a4fb1b5492fbc5ab96102834f8b7badf7b2630ba14f6e7f78151f5e9f64af5317dabef7f175" + }, + { /* i=8560 cDividendBits=2821 cDivisorBits=1556 */ + "1ada7867cdf9b409e42f056467c5f855db4b1dbe472ece2947303d8a146c24195eec23b97c1e4af280888b37967821d82bda0630c2b634c71a0cdbeeaf9e024762ea5ac0e2d4cc34d16b029516c0d3730a8333277a6867c0c68641dff8f5b0c5f78b96227296043b7c63087e334ce2218e8d7754bf476446f00da22703dd1f83c2895e4a011838434e38b173d89d7ae17921454d24bc4603dcb366a2a540b7be4ca103491ee37483881808a1ba353503a8bc089429be05a129442bb0543e7af1ade83c1e08b4bf0e780c6191d8de2104964a61dc0e591482a986ee9a028369252bcb32d3e87b99223c887ae0066de620038703ddb103dcfddd300d8743d495d6e6dc7686fe44fd8a86e343f1877366bb1e3d7d1023822c6cc2b036ed16fc153ea043ee1cc4c68d9d669c88a266566380402b11f2970e385f0042c3a8f0fdde829941ff3b569f779007631780b4a6ca65296c4ffc45f75d33f356b36a8fd8bc35a8", + "03e2190e83905863fe499bcac966a50f8f0803fbb9f5872fecb48323c39fcbc64408c3ad08748a6b60ecc05005c782a44c3842e82b70300f1555174425d78bdeae9f43a29e7bcae674f0a207a8433ca716a6267cc2d710f5a5750aaa8ce80e6069b01c04b5f256df052e2620314084c7f14079144d3231936dfc190604df69db75df65d1683c5b288fc64124127fd3d8aba0a6f3d758e967efa8ab90ef28a0e82f1216aa03b55818f6e09d5425a7845b23aae2d29f01533b8fd3944e307b0058cbb5f6", + "06ea5021617d3596f3cf5d1117ef1273ce861b4395b2645e44072041299c21b8044ee03e04b335ede267a71e9f1f8474daf7bb28271389529892f69d575415cd7a5e0d871a9ff47c4586c8288de01d45807f06614cf68d0985a585fa4799b534b5a93c898f45cc4d98bf820844d9b41175b8faa7b1d3f1eeefb76f1b248f5c56d442842098d2f3784b0445f70ce1567c32e9ffa321c92c1d8a188fe8e95208", + "0183a739cd4190a6297d299f2cec72b12d53cddf969948ca933f609fbb2159a60d46776a60697048d770e473f5bdae8fc844b0a1cc94fee452de08a7fb84ba9a4f2467aa79fb6bc0bf84907e69a8b646d367f6fe46494d4fd5907e32b8148df68e32893fe0ed928cc0b22dd78ee1d5ccbcdb918106c145a21b8b7a2d2cf5eaddcffb58321ed588dcf485e5562ae8d0ff78caa98e5c69682222378ba211b9013c8067611d3273491186032ae585c7e4c41ab6ef882448c533cee173728a5362452fb9f8" + }, + { /* i=8561 cDividendBits=3575 cDivisorBits=1459 */ + "398c488024f347ba7ca0c483d4c8965a6e635d91ca6537c5a33ca4dc57f8a8babbe13564536410c4b6ae6794f9f9d8f2702a5301ee062f9b71627104c6880b6997599cef8b602587146f9683ed19736721e0bb70670d0772f5c46bb5fcf8c16d47cd7c403941fa89bab0db05963fa5d2e6e030b84969a739decf614703a66d3e83cee7f483877df1d67dbf42cf27b3ea53649d8e5fa9897ad7bab0ddaf32e55120678e01d9bd18c6d652ac665b80b0d2f8f68582fec1286dc3c50b9e09c62b642d056843614795a4f45ba6a499be693bba92151e4bef7944644a073b27d2b694b4709c1f1f7e6790b702cb3071d357b35dedfa00ca434fa1b0a8f76f4a6af042e0a5ad02c5f9e6d67a12230d564895b67aa6cc21273b86822ab6004dde0c32b98b283c24c5cdbe865221e33eb329f7596d765941a04d4087a835f4c29e44f3dcca53a5a3910d8f7327ab299324a88b7da79fccdd1d8a9e185efb380e2a01f5f21015727ced83eeb9a4ad7d0774edffe4afaf3888304a4c89dd3e5c294e22682b2cfe71d311129dc554830a13a7b714e1e1227e9eb370a79fc674b0e9a961b7c5eea0063494599e0dd7c6cb041fecadfdd243f8c2f6c0cd0ad513a90c3294b5", + "fec970949f56765df34802963f5fb4e710e400d4d5d7fc186a651b6f665c3f0558306700478012471776159ac6ed2b62803c0e76a130f81fb45562e39b5d742d956eda9dc902d5be6ca4e852470a4a28511f49584a44250e8979eb493ac5b739555cf8a2911aa5b2913edb73966669158167eeddd5d8eb4cc251b20d8d6bacbdf058565f5384a53632baeb0b76266a089651a2b4b8d0886de3e1a53142e562814214471b64739b7941468329ea47ec2fd99081cda819", + "39d26db5cb28e6dea138711ddd4e34294baf73e9b8bb3551c6365970af00bfff85f932ece9ea92e057561b92bca9934f1e454aa7baa142d4bb41d42eae7d5d4c3d6b081697d6ce50f7ead2fdfb9e1e51ddcbf5764ff376c7e5426557905ea4f83ddce46f6a81202d3a88166131e7d84cf7ef30cc5bb59efbf7a8788578c474563bef9fee27c39b5115b5d7c33a9f084367d4d68540a26ea3c8899344d20be79321a32d0addee74861c7767de61e6ee2725b233f1c4622eb362eaaed71f70b3ffe575275c50119bddea336a64f9818ce1fc462b047d770ea94bd53be0fd988a0e5918d31354d7dd0ac9d0e7fd646292afa8d7ad417684ad86684346b8e607a37e552d73b67a45d6b061", + "fd770e18ba64100a5609187d3aadf92f61d961cc9802282c1016c616ca0306e95edaa00bf05588541c43e641e2afb804b57ec7e5983579634773117bd98610833a9d9325cf96ed7f0ff72be993c436f18a4305962a76cfc942742aaddc56f8debfe6177c9a2536e9decd90a0d6ecb9c793446879d816b19b496f5276471e90adb72d65228c3e0ef38865c4b2236b0233cc8aaee3dc52ddf0e75f506dce2587e9d06301744d1c8f63311845153425db98788737ceb33c" + }, + { /* i=8562 cDividendBits=3334 cDivisorBits=1781 */ + "0fbf29204d550ff16f594ed98f4b05de3dae3699f2c983ad9412b06ee4cb03b82292efcaf27326e629b9689e0d3e69e9809f27bcefcd7fdb1e53c7af8c89821c60e3a6e47226c61b55f977a36c5e96553b31a5249626fa4d9347e9342934639ad37cde96ae75f53b692883dade8ed63f2a9f2dd80fe7effca4dcb99490b2cf188ef73b21eaf047da3c3679713501fd781c2654146fc6bf9159a7bfe853795e367649650c9415a6ced916831b69753d02eacea3cba2b7ad6e00365e3aa076e80a975b1feb441f6743b9e9c1f8fe1dcfe647d1cebeddd2cd62b144d466659c68ccd93c6f4da23ee215cf94f33b762307f356665be8a199f11910b67759045722273a9bf82174f040fa40c55101db4dbd032abf2e23ed63994d87dd7e0de361ed3cbbb7986a38aeee36a67ba9a3db4f520d6c52738cd99f7f2059eff13ca53492f23347dfbd6628bc1852e7fe9428ae7b1d5bab6c33e9170a7363b9541594db75da741810c55653786700ee012af44f75fff1c605b4fe8f6774053cc3c86543165cb2cb422c5996ae306c276009daaf0163d18dc817ec7de0c6a2bf2a98233358697c", + "08debf7bac71de93f11bf3e2a53724dd5ff748a8e72f46c73920edc38f2adddb269f69eda4984fe24e9cd9ee581dfdec94a13cd1ca522959af22405bbc61815bd5d925b757f3d41c3129225a694f1b2085b53802fb22bfac202e503a837548f7ddf946097a8c3cf99c256166d24b31e87de11e94b7646291ca85a887c374acb9694e21c5aee8d2cf8c187a72c59c4c762c85ed0723303779e39fec45a3aa61e4e4475e3b7e788390eec2c06c3a54666b6f2e44648e668eb78a9f05360021f5e04a4d538183666e12fa6e64c44c4c636c6792e48d0eee5c6f973b640d0d65ef", + "01c67739b7ce9907c802b2e7c0396503ebb1697cd838c0aec5201b781170b848a9e0ecb468401bfb84fd2b6b3798f97170fb9a7597ddb15bfae6fbf80633a152fd2b708b5328927e6e57a1a28748b41bcd21560b93178bac3e4e072687203e50091926a1c71eb5387bedc7a750c01344dfa94f12fab48f61736c81f81b2ee52e2df4c1dd482712b66855f11004609314fc7c91253a58b0afb75be9e1077716f12c5e98fa9668c9686a2ff37eb94523789ef5ee853a202750d683889e281f964732a3a8", + "06815b0ec362b6963d3f73d7908d169b2109ff6e2ef24115d737616455dea698e9b0f2e8925976931a80a16b465879346ca8c573a2694dc3eac73ca264c1e16b32b8f65d14f73dff71f87b3f5f82beff223a1bafc45b6b9897e94d8cc174db1c6a563545bb97d4145a3eaee32dccd7831bdbbeda676040eb7907a569eff7ec134e6a100b26fba2a3c83813ca625f00dbec57b7b3e302540f86c17b39142cdde48b7f006c9290b43558e79f2fbc10c614139df1bccc48ece7982314f98833d962616934927c636c44945278c2169ce2203698d7cebf14bc2b67fb3de8f857a4" + }, + { /* i=8563 cDividendBits=1599 cDivisorBits=640 */ + "40a2a0f9244a131edaeebcb0adff672bb9edbd57ea97b00dc346c5aed99474d9d5309c5d25502e8be5d749f5a3b702137654d78d43248f7e39837e93a3780a74dee3e563b56ba4c175bb80e1efeb3e93732a708a24a8c17069ca044008effad1c09c70ef839cf41603afe40c3e28fba62bf97c600dd1b20c05f312d6d4a01879dcd6d459891ef333de1629b575d65f2db9c71451bc22fc2dd0681d34d2222ed889086b2311342c2cb876210237a6e2e00f9b278c45204acffbfee42a73a43a72e3a473027833123b", + "94c1723a43621142777af288e7bc2e2988a2fca269b7f1517fad8ce628912d9605b842b5d0defeb0c674be4d9c115767ba9eef909b2057e7bdae2badbc159565f5d2b0fa2d8612ebcb7ce045dee4d3a8", + "6f3bce465e5cb7241ff3362b9d06c98c255ec5970a333fd70a5f56df6ee355f3a4c9a6de0ce3af52d0a9def0ef269f97e6aecf73524a704a86294ababf0d8eb2f2d3f040c7594b89981956b3729adc4f52a80a8d055aafc09e1955bb2bdb3b5f73431416dc7725be003329f7aee522132d8452fa5e7b954d", + "447c72407b98977abc1ebb22064286bc24c472e28db3e3b5a24c0e83a4619405fae2ad80e2e6f23384f45f0a3672e043729a32a7b6099f774c025d627b728e723f271a5bf4ec1a72f53fb389dc76a0b3" + }, + { /* i=8564 cDividendBits=1036 cDivisorBits=321 */ + "0bf5c20c8c4d8c26ae6a6dd75a1606a122f73d79a780ef7ed4fdcc1a73eaba7fe5cb13e9b76bb0243455664e25f79360058b5c09a94be9410cb6c0a0f7db5e2c492794cbad8b3cb4f02931109f2b1844391ccf9ebd8231345939f74abf9a8e19d2021e7e89927524cdadecbd92d82403e9212d816865e38fabce84cb4958e6fd7658", + "0124592f0f7a356e876831a1aa5dc4f2e93d1256d18a97bc1a9a8949861aa2ed974d30a4c69005a2d2", + "0a791510f95f38abb84b4b0b0d34c22b5861723778ac6606ef4556d00ab8919ee4e67aba18531a4b92ed2d6a826f77e231a4003fe4a34bd2155b303ec271c3f0b58830ed401629699d13d32ff32b9d0b3b12a768946170a9964c", + "0f72709b46809712aade6ac372324e60d8d6bf9af700100a2143dfbe6c11fbb07c22617c7b481400" + }, + { /* i=8565 cDividendBits=3335 cDivisorBits=1606 */ + "4a5d0d1cd8680dcc1238573d9c2daf9ae23d5e35283a8f2bca83486bd5bd64b0d6666182f867f0add11064a61abc819df6d7ae25b033d1d1a38fca95867fc6ddd11217e976d75410fb2e14a55af64e7fddedf89f57bb04d1c016a1901927f823b86fba57b779990712d225ef4fb89430c6791743d2ba04e8da9415f156246c2555cfca7be781831d2ecf071342354a345581b230a0c39f1711c9258a9fd998015aeba00262624d0a654890e1d33e5a73bdaffcbe6df9914a970afd592476a22d76ff1ec030736ba19431d081de64fdcbcf611db1c0fc3a1546856fecb275feb09c1a55c5fdc4ac003b72cbfb7ec4a26d0c7629a43235c74818b349db8aeb95bd9fdfc179af8abb4fcb3ed6703fd106b3dfc3b4dbf593eb64aae689053498228cf2412ee11e85dceccb34efc13b60317bb27645e9074df65a9cf7c3332c3adaf8db8598bb648f4340af9ec293c4cd3239a06b85dbc36bc1e092e65e2eea9c4ee39a4c2c98ef9985effd0312e4d5e12f3fa2e7bee56965e84de485a64d6eb70466aee8dde2b0174cde43fbd342d52a57b9537832e06740d2354c40c68f61d3740846", + "20a4219fdbd428ec0d45c75453dde193668eb8dcbee3235beaf294e1e25a217096cfa74923780d2b4135ac970f5c2f5bc4bdeb262d02ebfbbff858f87a1a07b324c5817d30b7f8c853b03eb76b374a28da9d0c90b6b8ad221b77f56e74abc12bef28bfd818ce68a41572626f0367ec2bae8aa98510ae382ed46de7d09984b0d8951e39510f8de9a8a74c2bd89a090e0f061dfdb084378125d41ca6aba89a753040120117bf32c195617175a147ed069b11b9d8c56c25a7cb3a169e528e56ed4ff13b79bcd858c0defe", + "024738fff2b5aa80272462cc188570f992d577dc57c3088f3733ddccdcb81aa143bcbd85903a2d57deb9e7e2afe162da3cdfd14d20b0979a46ed9fa099f20e32ebb62d183aa21d4a03535949c62e3c25933a3d09a11f4a75937c23e5bb64c1e39d07e5bd01658ea4bebea782997c6d23df306be8316147d309ca84940d3a06ae9baa1f440a911d46fb689d85306019234d84d3203cb27ddd97a6f4e4ba06e2493e2434213477d858895692175088317f5330db556b16e80b05dd12f751db749375416f59891bcfde5ae2346cf41f82ff190acbf3a80fecb88d", + "0963be9de448afd8e038b5f950d392f16bb1f39f864ce98af09497bdb11ba19cfe7da6527dd2a07c59e774a22dab7c2e7ef981e84a0a49f28000e6146b96549784794baa96a1ac37db7f289c59fcb417ced313ee47424289a1724d4bd97dac3e9a9e7097a73b8b28bcd3a194b79531c935d03085f835ce33f3fc9d0c06e5581300b92172476017725b58022491dbf2313081abb9c515a66a8a9a055e509136907c8ff99aa579ce3436074f856f6c2313641c01a0af48612895fe02a1d268acd7b628b17cdfdccaa660" + }, + { /* i=8566 cDividendBits=425 cDivisorBits=96 */ + "01c80922fff7d26d8dda842ca45548e2fcc09543c787d564c05ad3c2183f0c60a423b78a49652fce776ca22f2f298f68794e81779efb", + "7055e62412837101c12b5b85", + "040f40f734c2161263b156e9813d6748ba8c7fa20a2d87cd143efb41a963de79bed62313c72341e17ab1", + "0352eedf4324d18213faf606" + }, + { /* i=8567 cDividendBits=430 cDivisorBits=83 */ + "06d5777d355a60e5313a3afdfb0a6cc43e4167938d7846f66587fcb4d854ea8abf6535a85d771e7195017d760a578948f28670c91315", + "05a05184038dca31d2f529", + "0136f292dd10a5a3b26747e0322029da03719307d189f855276f77d43bda7e08e881702497cabb9adaa3268d", + "0467fc22c60b02ac18f580" + }, + { /* i=8568 cDividendBits=2406 cDivisorBits=260 */ + "1e4f1ba9a874b7db95e010d000ab8b76996ced83420e088235aee92b73c3f003214387c12e3ea97e44b005bd4f86f2d37c60cff0145689974b0bee82448278dd21244132257d9cbc521a22e395518e55bce2703340d00a253efdc5ff5abbc2ad758232f4c844ad1dd02c9d7dbce7603dc0e2b0b34976ea0b0f31d4ec4e130d860f231fafce458c2a4fdaa513e4189be9e02b0f530e20fdbd174fd6ab955f10fcb97b819c145bcdb23d6d6bfd9e00ffecdf9d1eb3f742100248ef44522a463086919db124213db66e7949f712ce5b319a24b897eef10bb39746df0bdb2ed76eebaa75a44b4f1f2bffdbcb14d4a79afec6f072de2805eb9f9614a3d71f24c3388e9f0b68c3e44c200ede43d32d4d07a1ded8eaf3bd02cea8b4412fba3bb11aa2b765e245c06e6078db86e346d9", + "0cd7422487802f459b4833d0c57e5345bd9016f27f5e93117ae2e3e02335de8bac", + "025c40737c5cab7acff15bf9cd963603246284a31910adbec2c89fa42aca8d4900eb486d18064b2e6c8de966766b7fc94f540003f62e038303b28ba018783c6a827c62b163851d4f8d3be33d342389d063f1249d6bca3d447de7ecd0e96ca6567485f9553eec549a69e68d1346e92c6f3ba08b02e7746017b17ff93ae8cc1cd2b0dd2ec4a96adae4e992e12e185efb24223750c5c650e618ae3625579dd05e59e43f6f02ad02d0d30533c9cb1d5b99f427a4794ae13a4c3958ea7f5c2f2fde37894ca1f17658774dd860802ec32a579c536eb9ad140ee03b1b27c49b8dd6b4056b9042db11fecb46202c65429acf2b326f5587981dfb8b77e3cb2ce260caa9bb6433533083f3354a6cd7461d", + "05094992c9a0a2a684c1f2243ca8efac2ea281b77124faf48e15775797b5086c5d" + }, + { /* i=8569 cDividendBits=3999 cDivisorBits=301 */ + "0550333075bc3ef6e4ca0b49467cc758f72adabcc1436c80848b97c73c1fa247d50f041dd19b7bb9d5dbf9e24695a3da14e08bbfa80d77bba7e1cb2030bdfb5248faea32ab801cb2baa86744442e14820059a2ff07d373fd4100d0fb81b359b01f2cb59321e6fedd62e9bc356d6d5620617917ae87ec6f2c9ca315b4d83dc0b6d075463edbb0c10ea6ab4238e1458a8a228e8d6aa500ce4d686cd10fa773830cad9e398c0f7adaeeb31b27d0f7f9250b602073368f4938ef642f788a98722a4f5f336e798e1fe862b19fe351581ddaae7ccaf23d7213037aac7cd0cb40da4fb4c907ecc967c36f0195d73b170534de67dbe2ae86adbd057f47f1067f163a09864a55c9cd61ab85c4797a3fe3d518ff6fc60ad95fcc8735cef8d56b87f5bbae232281a7d000493ee48ca6dbc69687e3e307805fb87c5d5d3a471875a3f4371106097d81a26454ab8417ccb5f35bb22278993eee1e9ccc4f559b6efd64f97c0fcae5cfafc3af338bd718c48eba822cb2914eb43a7110f64be560bc3059484c5b25305c22bf24ea466083455a7edec194e9939bedaebb1c7fd4e22de3a44946898c6ebcacd7f55a28124a75d17e726dee5557a41e154234b0672cfb44db6794c79124a7826ae448413b315739600f5e0987e68a7c52f3b0f53a06fa67a1dab01e7d91fcd09d675f8df6dc85297bc20085bf36f68abb", + "12021f9bfa9653e777d077a97396fac055fadb773abdb76e0cc056eae8d8a005ddae7b74cd04", + "4b8827d037ad21efa3676ca0348916a3e805dc38205864ba663ce335f189331e53404f92f151ab52c9f47c532f60495fc7f345c8b1916a81cd381df9df33dbf695b112ef16b5494f7745f74a35b2568827125c94017935cb0e6c26c9b1d8d961564bab4754f6f138484fa2741f260ff73b00225b8433c64edf7372aa86fcefba4a9c93567999c0b794367e41d2d52b000be0431835628852aadc779509323a72faa5873438b7232dadbe47de9c7669a1bb8dac57eeafb73547f7bef45290c8b8459260b17c7f438c90a7a6f1b54125b7d124340b7d91f3ea23eb988a9dfff7712bc672fd0932a7a02ffc2c3b2489d878ace59078163252f081441b7260357a69284c6e1d53ba04a32c9ae8f810bd3830657f65cde0d0055a3bf3ad10ed3b99b5f29c63c075b973c951a1f0fa7124e8bdae234bec73234e08ca88df4adefe1a4971ae5c21dc7852d34c62414e4bd74fb72c0a10fdcffcb6726d3bd488c440272f9cdd052763be8256b0aecd6b24570f13eec89c9ddd07ddfe539f69803006f94ab120fb730ad3054d37e13e9dacda42c54da512b51bad85f9d9d9f5f2cb0a0d565d68fdddfa64378e0a94011975a26dbc3ad635d36289414765b6ea03a76d7412dd273caa4dcd21af6d9c3dcb9574", + "07c674b3fea66f277e5638ad5db158a494c83bf29358549d9da860a41358d85727ebc48a50eb" + }, + { /* i=8570 cDividendBits=340 cDivisorBits=60 */ + "09692867b3b8e5ed5d96c4e9cb4a1fa77bd4e07592547f8a13b5f502cf6e27aa3a5ae32c640b656bd1e69f", + "0dd41690d62a3905", + "ae379d62de58eda911fb44ac4d8d75e21f0e7a89f31e38baf7974fcc5630f573160aee", + "02e6875984e8b1f9" + }, + { /* i=8571 cDividendBits=2167 cDivisorBits=606 */ + "68cdc42c6c94f33357659be25793311dc0db74b64b1c6c2d5bbb1ba5fabeb4e6a8062e2d36b9c8e4266a8c3eb569e13a36f36c8b5c557738c23d30b3b0c8ce11d8796f7fc23457aa84e71b66a9c604ff070fa4b4de9cb2a6de9eff78777ef76b01099bdd62113b61a1e070faec8daa59314de67056dcfe870b059e3418a4df5248fc44ae58d1c72414fce3cfb21d52fda1a5ec821591f050261acbcaefb8c4db2729d10167137116cc819173906884a0c22521d97b5ca51f6b8890fa88e11c3159251a543b8b51ff5e52fb91aa53d44b36a59d02f49a8d590a0e999c12e49389fec6c3d2a24e4b57d5579b6c31ef57e9411ab1597fd9e6d2e143cf47db1eda89c94da0df013b89d690d7f4a540ccdc", + "30160f777d467272fe0edae2f9270193a8493a4a57a47e3f6956c41b96964419b4e0afb7328fc8b4b1160394bb2e78620a4319418fdd0b195799f61ff1feae083146ed11d539d1ad89108d41", + "022df3a82172f7b27deddd8bacfa848907dbee6e25828755c25f8484049ce4ca2ececf8c1abe9ac47cfc953bde8dc1a205e2954fbabe4155dd33c76f9d8a503b86527d338447a497de236cf5f6a9d1fe9b60a6427b5418870b923dd3ea63299bd26390e0d8d23dec0f2f457fce1d6503d188775cf68a543bd3cf98d06b2c82a83b7a4f244e64c231bc08382c9c888f356e96d1a8eb591670d79e0443517ee01f3819d8c694395481be4e00f37d11b25b20ab9a9245c486e4607b5fc28bbd77ad03e3560d", + "26f36bea7b60935fcebc8d71832fddfb9427a83507fb5ca6a5f048cfa5fe15e7e9da987d0f86d78d0f5de96d9af14c92c37582ffe70a131a4d3ef96009a0b119de2dbf1dbadf7ed71c52ca8f" + }, + { /* i=8572 cDividendBits=2981 cDivisorBits=2304 */ + "040f731f84d546fbd80d3a6afb3ba6543aa5ec71dea6fbaec0072a7b7021394134a4cf07aabbfd795b497f65b4535416d46e4d1082b0ec88ad380b0deab107ea4c4d0bbf9dfd4d6f36cc66e45c2fc22dd933238d5962bf7dfa002623f00d0d6707363c4638dbb0525d2e10711655c8fcb095adeb362ee7e98ed616574b795ec8a06d912e025720061449468b2c62ef513dfde9cf14e176df4aac2725666bff6d03861886f767502eb02c271f714d5e774771e9234497ebd9eebae4988ecaf58af1207984473fb3a2a197191faa168a1daedfea2c2618df0fc9ef8e5b6b4d14fd62521a2d574d648ad7ae705a9fb7c7e7fe49f2d1bd8fb88e0bfd067a81dbfbe3d20f367f0764bef145da63ea59abe6cd57d31271a95afdefb8175e0a316727e1934cb88af5045680746d6ac7061c0a6b8a14c8cda03faecc44b20595d31662adcbcfda91b351d1d459075b17acabf0c1e590a35800f797860affc73614b2cdd943e262dedb2694ac006bf82ff7477304b61919c228", + "b04b21f0ae0f0732e5e5d5a3d4b0f90150f8de4d3e29d74ee7c45a51ef6f5a538a699e8f416842d44cb4224e177722876820a82def8735ac82ad647e6fca16bbcd91088ddc29649f168da31b97c0fc155d5f85bdd965780ab1ab1f58c94aa6a460d720d7a5ef0ed75c280feef8e072473c624381567995bdc965a91d4676919d0a0a725a61da96fd4445513c66251247330b348f5bed88f53b747d1995898a22a946e96137a4cbefd14a2884e13b1ffccb7d8dccf6fe25aecda2dddf89b7fd04e9cdaac0bc1cb0a1119fc67ec037b09aca3145ca42f89b982ec1f405865130ff55364661b14232cc3c57e779eb7c65c69a32892bf52054aad3a3073c6c4d7157a88ded9e9b04c19db20244f8cb95e8548c2d72f121682cb645f77d348697e8fe", + "05e568eb264eb3ce172a62ef96a29714e33d4d6e0e33bb1a7266ddc985a6801473db97e4bd44fb3a5992b618dfa67108563371ee6e7beee9c1148671d549fdbaf871ec97373c804e0e282b38ad6a1b9249bd98b1ad", + "2d3bbcdb61611bba851daf18105052bf1868a991b4382b5b9de670632689c5a15a6448f1728713682e22979a1fb739607b4f63e1626e902b33863b3a615925d301f6e33762101a01f61688d48b1465f1b405294fbafbddaaa929fc237e9b28714b8876b048ff0a7cb26c46680842f0500253ab2c117824fa37aa27ba5252456d57eff145dc31d95652aec63c86bda704558b2b47e0a312ad92a7c38282ba9695f099f067f5c46763d2414efa9c5bd85084a9eb6a5ac279a78ee7e4e3abf39fd347173c2a551e2c44e35551b95e81cb0de503e1bec1a8e80af6c92ce9c10a4b74f20ef0490bb06a64e671a8754696e4222ad5022d767941dc4eca56c47ca91f2d0e4d532baa1d3859c5970aa881898803455f6583a43ceb260017b9843f89b082" + }, + { /* i=8573 cDividendBits=576 cDivisorBits=503 */ + "3174a5e259b51bd470a084bb2bb1857555079895d07bc0dabe644effb721686a09ef95a2a6eea1a4c7a81fc3f73c464a27e9c72ef507557c2759bdc4679eadb3d86bf7517d2d2577", + "5df79bae99a4c0bf6f66e86c8fc353c527f468a5d9b21b32c9fc0fe5983e3fb6f8332d0ed1d67f99c28462d52bf4abbe871ae6b5ee0337817f8b47decd056b", + "86bc17500ccc95c2d2", + "4188e57ad515667bddf9f006444b62b9ffd31d5b5060f4706b7dc25a96d1922d2c450d36d5879c3e0aa0c34a1cbead3ade951dd98a90690bf480dbef9c9db1" + }, + { /* i=8574 cDividendBits=1425 cDivisorBits=307 */ + "01a2b8595dd94955d243beb960fd1d982a5ade03c3e05fbf889a65363ef80717d81f2c9791e18fa4612bb69671299577d71af30ebf56bd42beeac20ec1f235932b57138bfa4f6c676884fd9b8beb94fab017864e21b3fe0f8d9426b6669f09f934c7e1cdb4746504cfe9358c91c1cbcca064a658581017325dadd9a79cf07035abc9885ca4efc04898abea6cf885d75b6e1ebf32e9ef9624e77d0abb160955ba9608fd0855593ed81a59007fd18e6681625932", + "853e000389659d80207ac3224aeda64b1055575a2cb85003857d410901e8b8fbd4cd26f18d66", + "03247e189b79fd7aaf9ac7d45a59802da5b8b53a14b66e425031c83d8db559695dda6ed273b0a433f6f625edd535c9eb9661b987d8d101f9b4662c6b2334ac9ea94abb3bda25e5db60473f8f000e1594c8857c08852cbc6c1ef03da2632045f6886864e8e68d29ca3c7397c9c0ee1a49a4f0fa62b065a4bac191da8ba72fe725563346b813a6e1d8ddcefc05e4", + "0b99c45166fde79109d89e5f3ceb0fb7b3d3174aacbd13f69901df23e4766c9c2f4fd6156c5a" + }, + { /* i=8575 cDividendBits=4005 cDivisorBits=1009 */ + "06c72bf4ec4551b65756da88d3f1c6d3e79b54fbdfa13c76e08c2fb31da502236caa788adaeee3a882f72bf1b42c88cab0856e3b3364f1edddf7197c86ad61d6dbf13474698328fca5b9c0158bdb4beb0482d23b3d0191beb1ec25463e4de87130e8490d72d61933017c5144560f97da9186640cb330ad345c2bc76fed0edc3a4ee3a17ab2617f8028e66b49efae1e1fd13e5c652463939a768b45639e2a0685a54e9d7a8814b288c114ea6fcff0dbec650946d90f7bd4061fb08549bea2d53532e90a4a983825c9d932fb9f8f267c5e51343a92b41c73769380424a9757b3fb9a8dc954b9b564e9e0fb51d8fae87135feb85cd42ab81027fa3837827fc7babf6e02b312127824a8146bed15fa56427620365a8fb059fef23e123fa2382dfc037e96ba77981b4a4d21ac8a1e303c16155844586891424e31ece28845e3b3b32eefcbc2b4b45d6dc7c858e9ae80d8d131a71d25444adc5f111cb10fd81c9c292ce673007f91b79a7bee09426807e7109454ebd5b44a393358db84198f231f5c822527f5fe8d7806e203192d732f2580d85553a7529afebb475a8f6a6bae9d5e6d5aedb6025cd79f8ecc7834320081a927c5dbe998cd7d357b60906dc58839a47e33eee0f4a63758f4db285da3e0e1c3fbbbf99a3126a82fd022906a8834c07bd47a942dc2dddd471965bda70c594e7a74e1ac268d92", + "019132f77897e49c64247b2b76e73eecc88e14d66949f93b8f41909ecc56770bc21ebe2d145aa6c2fcd53632bfd06594dd940346eb39203aa13d49bdbea332d6cdce519fc5b3b2e1e34579051ea4a33e1c963086e602d4f71d66eb0d44c0130cde3328ff0245920b716d331dbc021af67f8e37417a898a9b7e167403441aba", + "045330db059d173c56f977aa271d7d5afe166691b538cfb1bf636a50d9e2239624808b910f5b6cde35462db1681ce83233bb0640371fc64db5aa691308ad0729b83beb1ceb0e407fa77eff4db4e492546fdea4e41c89980f6169c451bc561c6d0b7306b7274fc65adc74852efcd43d6245fa6ab1ddcce27198063d67d132377d563047c2dbdf992ff16dcdfdbe4216015e4e6f95513f154f815f3884d3795bbd647c4459b1d72e083dbf24270ca69d9d69ccecf230965376ad3946c2ca120bf51ea93c2f0e17d400d539dcd4a4872a7d6a5b4565c10cb46c6733a335217cd30c08adc333c584fbaf653cd11ae5fd149f367a0baf61e5b87d761317f40927d15d5c1da77691d30416a337fca03c5f184d670f8c8082b181b4b3113efb4112dbb0dc16e15441631ffb1abd89bc0767e38148cc776c61ca869095ada60b2efdb2a634461f006b8aca88309744d2b4941855fd264b42080b80e0fad504b2b8bdf54eb5e323df3fea1f97f1f6ca810604295a6379dda9313244", + "7fbcea054a3d57024c61af6f0681ab2fe548f379814f2cd08babf895f174584fb7002f2f23eb18ca6f9f05fbba453a4d63c998b6e497bd6c0690503e0c6d3a636d8e95940ea7d98acd2e58300ad7e7f1e2434469d2be0647871022752b7ea76b43e65324095bb6856e511b2e2fe3a952c46958e6d4fcc1e2432d993d202a" + }, + { /* i=8576 cDividendBits=1045 cDivisorBits=751 */ + "1e4e713094a4cf204e6c2c1130df6a23d2fb05d2752f5b856359f2707356b475480e08998c6e13dc8293eaace29d0552f8d145f27e383d21fdc17a1b03355803626bea136f3eaf6700be84374624969891cced9045983c254ac1d09287c2ea7c1e138dd5713ff97141eb387389fcb22214e5f44e112032efd93eb706984092856fd5e2", + "5c6a02e3dd90abb5eb1e81cba4564518f5d3f7bc47327d73bed65865adcabdd9c951b36bdd4d278b5d7b63ed58e5103779956dc441f87d8d4bc49aee76e948e0a1ba837ad82247ed46a04fe0b2c1cb017b233bc2e84b3af5c2acbee189e1", + "53f3f845f9b3ee9bd3d27934e282a04188e57c93ef4246d408eb53ea065d9dff3af463443c", + "0e8e5431a476bfe68af6f2cc656daeb30d24cee2f123e3cc4d76455db6d7f6460e03ff49932e9f399af03f3fa866846131631daedfc307cb8d69c16eb44352ec6cf76602c1dcda45446d45b7d4737da2fed27107b4e0cb1e98c519f0c126" + }, + { /* i=8577 cDividendBits=1642 cDivisorBits=383 */ + "01e7c5d5d62e7b6fc25d35579adef30fe594504841ca4c7d5f1f7520b77d7a5b2cd6f80497046dd59cb7334b66f20babd373847293985a365644d44b2898ff32284524fbeb71c245240e32b26fbdf6b552dc756a8db1e9ccf9e2e85c5556f476d1ba5fa205af3bbaab8efd5fad8c632472611bf73773c5bd505f3bddc29a3b6ab7ebcafb8b77a7abf84d7884a168b822de7ff985897a2e9b7ad9b2ab5bf5f8f90f7952fcfa4d95e7fa6d99b1ee1a4794d4a5fc08727a119b4005e4541e23385ba40208bc32e5ee146fa3ae4fd9d6", + "1770eb22cf62b73e7633d6b6510994397092c1180892f2dd02c73cc6f6008d7ba4691e5822a31c56b54fd76298cf8c0c", + "14cef6d3d9d98a7781b4c3bfec4efc0647850dca2e08dbfeaaf3236e2cbfdb468d64603026af16b3214e956189616688d4e85ead9399c5bbacb9624f74e55c0de98e64aaef5da652d61020d8cadbf70b099f32b7b04ad076e47c8aba782aff211ca562dc0213bad748524ef1998dc8bf3f8851aa4d3778d8d8a4a92a3ed8e3b100a2e711491acf543e1c39ddc4c9cf3c2319198766627911023b08b14082", + "09d7ac3b57748d5251274dfb2453378a9378e740ab642a5b319ecf0dd0bf38695693427fd4c43a1e1604e6b9fd9bbbbe" + }, + { /* i=8578 cDividendBits=3697 cDivisorBits=3370 */ + "01cca0cbbb192aa35bbea35d6030efc13f19f0ea35390ae360ac78e2fa37a839523584b83a290f2b68d612b69f29d99ca1209290a10e259ba191d3cca83cf79a3e67b8d4f125f94082dc1845f0c0c48352eb9a8e745d45712bc8f0b15b63084864f9166f765c471cd522df60963f93be6ff0e017b91871ec6bb5255d01e38696d512cb5341b62c40491b32e3c0646a481fdba537a6aff4c7bb6478190c5cafcc4b01baef5799dee0d14a3cea0ab7d230f6203c80ffaa1660097e2184436dde058640d9e0ba182b9a988501a898e61a79ad60725856249212c4fabd3000459eb392bc67c39bb98209fa77a3dd2011e7d6f7131227b1536dd874f79c339f941578514b87a33d1448672b25ebed74fb1fb3a9cbf566996ecf1d5d1df68ac10b63fd66599f5b3cdb991985d1d438fb476dcbafa2939dfc4f35cc085060be4807abaca6dd0cde19bbd0247555d392d00971ee7aaf4e1678bab68afb7bba9fc64545d32f10a12e4e864df1c32d6a785e1e7650fe4e3cc0a22adb2fcd7002f46e4b8b7e3e939afa9234f51dc8bde3e4eecd25bf9517bd9e13c3dc2c122b75ae0b7d5954f4deedb00bcb12c7d47fbe8495a9120993a99ef55b31003b8ddf38314742b5db00aa80bcc811fb2c3aaa1f01a6d021", + "02fd34714ca53947c12f8d28dd99d0f9b7595e93f993307fdd43791ae68416ebafd05ca951e685667e9d0b8113419e910fdf9709f9be0c07df9fb674704f9cd70969b81c0e48f110778cc1f0de083a2bc115dc3683a73482c432138881540e58465035f7159ee7e5d32adfd979092764e3d907fa8c2f07b5fb7d5b75af878b181fc6f4f0abefe40eb7bbbac695db7650110bc1c689795596fc7faaa3ef494e679f89567c5a47d4cecab15226371ed597e9c54fd4ef7f5efc35b9f7f72011f3eb4bf5dd04bcd213ef149d67889ef3d8f0b7d552894528c39fe1b3ff065bb018728ad34eb800e1d480a28c9eb10e16fca8330b2ab48fdd0b608810ab42ea237ab9e7f3ade2ad767e7738dee6544137b53c6949db7a1bf24f59d033386d05795b4e979710dba26535a55ef49739f73af3ac3af8aa0be0a940e6b82c13949e4d6770e541096e79ae499eb286b1348e29db260dd2d9978e28e7d7aa85449a828eb27282e502f7c059511753f7ad199db423066e4e30a5a721632ed2786cda468ffccf9ce9135167aabfbe135a11227923ffa5fd0e2949127c4d4ea779e8c42a330aea4edba1bccd36", + "9a1a833a1821a74d72a3658ea2120113efccf0c1aaee50849952feaccbe8a6b6472dab19365db429e7", + "dbd0613a77e6befdf3119849bce9e9459317666dcc8e7ea931e920838c8b1feb6d3b5b9e511f49427fda004dabca8a1b213da11920637dd99bf61ee3787737e290877ca884766d9b748c6eff3cf7afe362b2250cc26f8261793bb57401219765b786b777b139f2e45732893045d824ef469d255e961342e22bf05883de4b882fae9244c662b6d804f4b82ad5946c43e6384902a11f3c95fd6d85bbe740215e03da24e0ee9d827f76e54cd4bbc842c5d090ffc81cdbe1dc9dfc0163b58b53e21f686ba4d0601266480f02800d2918f0e2f9ed1afa7ae6bfa2e7ab5b9dab0e678e0c76cf12a1cd74dcd60e424a6dface7f55ec1d4ee07480ce7e21c02ce962410620d649fa35e63811a857e30c7a8ee3507e596adad0afb58709990ac6340f77760a2439d7580969b551811c52d11b6307f36891433c6dbc15a67745fd9e9a57c2c807571c2dfb3e627b5782df2ce8047dca8eda3cced5e7d9d27b3009ebbeda7947869ceb51c7bf070226793732e78deffb5be9fa09e38c773b9486afcda33bf2377ded6a4e5165b8674f1b13097d204967232d99a64035baa384a0697e710d7657eb73fe67" + }, + { /* i=8579 cDividendBits=955 cDivisorBits=150 */ + "05a41b1e266b9867cf3cb4da2d886bbfd38f419782864b05e03ae686fc3c17165680c7d012d271438503c4402375301ef4e7d728a540e5df652c54a800c04c5a5efd0b36e04cf99b6733022d2989a116ec69b0edae06abc0bc9568cd7c5963db2c1a1f61c5e952fd66b8f9971a03ffd946411f9853443652", + "0e9ab375fcaaa074d554f8b0781a3279b0309c", + "62e1da3da33cd623e1f4bd0ca65731dc46fc2e1e4b239cc9388fdf6cac29075b9cf03313fa6f584297a92fcd13df8743e3f7fc62e32b859c8ba93091c1d91cc9c510ae0e8f453b9cf11534ceb76b90b27664498ee99843b77fef26df4cf6d981f7e43b1a25", + "0181e08b40dded85765594467fbc86b3e957c6" + }, + { /* i=8580 cDividendBits=2375 cDivisorBits=2132 */ + "0b41df5361deb2cce385bca6a162f98414c0ba7827f8b3ddef4d3930977f3182ac03d4907783eb6893559a954c0cf47b56853a35da34f7a8622124e8ba1a185730c368827fdc9cce6cd182636f78a57a6b3644aea27b43171195ba96a9ff32e6849b53b703ecee92e732ae3dc88745576e6b0af903c4607e0dc33f735d7a0cf282775ba3e2dc79207aadee783f2fb7de7df8a9acedbfa019dbd189935f8367752e6853d1a49d99b096ccbfecfc89ce842aaa29acc8cc96e800b454735d9f7cca8fcbe08fafac4dc9430309b7c967b3b36bedbe1c4d6fbb944741a92f49cf95952dac5b1ce4a5f628dcf42aa2b81259e135e7650b440c7d1b3e54c1bc7e0c48b8a9c2f79b80f7efd398b10b14abb29279c69b0bd5493226598eca97fe8562647d2b696e1e5914d7764c", + "0b88e9c8cea0d0ebe25b82029281b036b18500dbbe5003f35dd7a444dda7b6e642f427df83d4899e6fbd1352493901b3325ba3b5f5fa068478c150724a49b8b7ff78ec360b7325faab27b478aeebc8f77ea7d613e7d05a9347178d66c0ffd57c68d81297ea9f1c9e0b8b723b985fb1d1f59e8e20ccf764b2b714a2e92c0ca78a13630dd0831c5bbfdca6b8705badc38cd3b4679a54e273e30b4239cc01649e9d379b8ddd342f6e167809d0a1fe1f105b92e0b50ad3d4c1cb212aca608fa0e5e2ef26a38eb1b675a13cc4fe81bbdd8726937bb0dc02ad190085369859ef9b0a4c83b81cb33bf6bea28295e2521664c3fef035eff6c55e6feb66a7e4e6c9dc30614194b348ebd16076a375e1", + "f9d7579fac3347e9f5f3d7fd1d1139d77ee8966a54d3eb2d41af018500de", + "095525b83ade70dec218b8657ebef1b9421fe39820235efe660a9f7c0099cc6804e98aef7a29130aa4c0c8c7e0e854d21bf2d09b568d92e1106862e6228eeecbc9bb7cb3de7f53e7bb6f77e18b5f3e16400519ec07e8cfb599732a5f5947d53a53e8f2c1c6b5975e6e49b67caa8165bd6941be476382cce2970c3393b9fc854a4f4f7064d135e141272eea9d9ae56af79283aa1eda0a496238baf777a2594b17345fc8cc6ceda5dbd3b9d908df5b79897810ff2824ef59c36dc82c562827cf13c100fa7db936090b17daecd5969335644beeb3e0a8031200a5bccc7df6ebca7757dd072784518d1eff02b9b355c796309ad5fa0ebf167c2c0da13974581b17f24b37e82721908114323d2e" + }, + { /* i=8581 cDividendBits=3433 cDivisorBits=1870 */ + "6e489cd3d8b24aee2f2e53fa91fa645171e272d0cef7c7cdad133864e954d4ce91804ce6b2ba4ae21dac057b11b9663402035ef441f53f7ce70716cbccb26f84f816871c378e61f5d952b23bd35b0e18deba89accf334a588c34767a5dc433efe6469b05359c14ababd7f9f4c5c6de2a6ecb68c8059d10b97989e13fbe805f89ade81602c3b1b51e5b3be855e69566169c0f14f4a827334837b99ff010ccdc0f98d9b6253c60750a33b83bf2e09de22279d2590cc69f29d4f5a28b512b8fdc4c2eea63cd026cce2d255f8d12736584807920c74d757ad91703dc17bd25d7c8d75df1fc05d1e172db6273495bee82bc452d8a0a73f0d30bc0b00c787276a6b60dae1ba60b29a306adcfd3f88eccc7f5014708c39ecc4b979fcfd53d6366a7de91c464c92692557c27076e2c4f212572afcdde02614e8cd9f8b937342e7f1fb45742076cbe912d0b1974873269cbf278b2e9f94332637e68a6cff43d1cc36e5412faf2ce08b8469f0d9cc413003407e1f6c442c9eda8f6333bde5a5299303453b4f7637b396a1945eb4c6448da10a669a278a08a766a547ab8af494ce062608a0561cd0d0790414ec19de022e6fd", + "1ce2cbeee972cd09fa009f71fa694ca9e2b62db63be0b3101fe089060f47e7736011af8c9d6c6eb76db2894f8189912c435e5eb7691c5b086c52548055f176af04cf4b5d4bb8d9eae15cb52022821da51ec5603eb818e1b9fd66405e0fc472faf316cd90ce05cfe8acaf285e98f3bb7f4637bfeae6b79dacd580af5b47311ee98748f5743bcb498653bff6d9c15958775c33a19d7c4079335dae62efb2a5f0831875f8070d0f14a7118ef95652d9df28229defda69516eb80cbd9ea01d295f25b16b571900c886383ae9da355ca254f8316a224655a32f8ada64e03e67877c95c4e6208d1bb8ba6df35b", + "03d1620f328e514042e8dfa1b67f344767e2f7986eac1d2189bc5df7b0ad9d1c65da7f737929939db6df235c7b157959fa0af1ba637aba87fcc5e783e94c32d3cfe8eea97890302ce7275ecc73567ef84197776015e5218e9e53faecfb68846625ad1b367c635418b40a7c6ff3496027f7bb8ee492f25ca10ba5bcec52817a22716e54f17ce12b85bf16b59c3e1d96592beef87ef8af732a6564d89239200c4255565f39dfc4c4ebdbed4f9899141404e493ae6bd02d52caf7f1efdd7f09de5f3393c7f2", + "0909d0f2482498fb67e446843edf8129781898d719afabdaf1f68104bf203f12c49029b6b0d389cf6d98422e328bd58d0b6f0d359ab1aa75bff5b6c6b288d87a50953ac71ce1516a8d2a1a8082995b3552af71a08598f0eeb3a4a7efca7c91bce066be9a9be460bdd59f661ebb268f564cd4ce9a0842394941143d652f3b858d599e3e266866254b84abeddd42cadf9a8d7aba45d9fb0a8a745738869c8d9daa90242e551b689302a31c1b775d61149364b2ab1562e84b80108c677dc96319c301f9a4d2eb9e87368931406400359b1b353f095673f8a837e3c80ab48642259e95cbd81dc6af4dc61df7" + }, + { /* i=8582 cDividendBits=1470 cDivisorBits=898 */ + "10579e66d12bfe4c4cf9027f48cad968c1a447917d6d023f9cb44d4064de621d5d0862194bb8baeea874511a6ad75f30329ce74a277ac60dfe1f0b7ba491545535215c08ce8cdb43a5b50d3c0dfde5d2b1f64c0920566818f90d9a5569693788d59e4d1756d66b3121383933f3a40dc55bc7febbd7c61a95d19af567fc49f8d0474d5e1364889c903b83ea725b4eca2e1fb187b31f1a29490f9345c933b1b320d3947bfbaf54a231a43a91e9a4ac2e0fe16aee27912b324e", + "03ad5ca746b16feab34c9b986c47aa65fde14fb5a5761ad3aea6919815a421e088e62077789ac4144d579d9db81aeb91c4ab02c95f7c3e4f7c6090ef14c4a800c5b8056a17334069f3456fc2fd004b2e6e0b196ec1e5e50983db8d686df504cab73df8f455f31fb98aa14692307b06c878", + "0471b8598bfc455ed7a6dc07412b16002e8a0c3376ebb53e49939f9285c6153d1980d2ae84918381a780420a6fcdb6637b4f2b55cab081cf6b2830fe7d17b0947752445c2be8daf2", + "01c2b46dfd7699ba424af782fb8db8d380e801d31568ffd3e90261383be025f08d87b738d8f2188663833a28801e382eeb9dc7af2d817992460ac55a3a86c5cc45d6c5ef854752a2c5a6fb3746b9eb9e29b5babc83d94af81012556d4764416fdf243c2a53e8865a54b17de69da94b80de" + }, + { /* i=8583 cDividendBits=3484 cDivisorBits=2020 */ + "056fd63e41df1fd383ea71ba2691535cf054a7dc360a1095f59528dc7d0c26a185dc595b1ac007ef862eadc931b8e87f5d607ad12992b7a992451111c0d85c3a623feb8b5e9e0d107422dd79eae94b49dd11e57a12499f8504c1aad70169275d7144ce6225f6513ec4ebabe55cca90c50848142696d2c0ced951c7d7b246afcef41844519aafcb0a7608c1a4156d5b82f78154e367ab6f087907a655b892a59af93a080314c9bf5580165b16c23f93ace30922122383a2f2fedd5cb58c6b1b469d3cb9fc9269294018a1248aed136a82ff5f02b26d506e54b5c6a95df308549b25dc93feb0d108e3656a9bb526f8ce3be889f24608b8369cda7029b8b1232fc28d260f28dbfc3fdabeec1d087e89c55c759f02163dfdf84c76dee6a41b2572cb6c56b1670712a30e482733b5b57fed4e3e422b6528dabf7ccaf668238549e8b9df25def6c23291aa9a070b95c8d8b73a631cae28c30bd8f08167bc4c5abbba38c9d637c4fd9454761e9e82522fd37f95288b40693b5257a682150192593527a369a21ecbe5f95e76199784769fcb70810f6125470bbd58238c68eedf238e3f87465e57a15e463ad46d0fa04dd023d313449026a0", + "0779bdd630103d26786ad62ac37f3c941c7609d98b4250acf56e6e1973e0bc7e7d1c953dad2f6f56e471c2400499516ae8968b8d168a735b7baf2f8f1e4bfe85f7c8f67b355941fa59193b4b1acd5f7c9e4945b837e610bd3135b3a9e52e16d43958647df410f1ab6cda31cd6bc88bd13fad24d8e6bcb38561436ecc52898c143b99f9fb3ad16cee8eb30fec043babb5f7a6b95c863f682dff7f02d87b044ab3686a6942b1a5df860d31860ce4e21a85b15badbb2f4317a6f4f33bd6017caaffeea5f658e97e98e9f2b52bab606268e197143ceff1e3924bc009ce9456451193b69bf387ac74c66ffd28f369c4788f126dbc16294cfc22e9fc105afc8e", + "ba2f6580842cbe1045174e04189b76c96988834668ce63b2854233aa3c3b4962ad782accc76748f721351e939c9fc624754b6b16b8b630743f911c95ed8a0b9d010bd3fa37e51d4eab71fcefcbda081d792daf5a2fa21cbf4f703c859268fa024c6ff68cb1b0dcdd622856661601419d3f7e8a81c3b8d2e8de4418dd6dd87b82702d0df3e45bf0367ee527718390cfb1dd8466e2f291ec6ac7132d248bea6e1920e5648cde7aa808dc668e11ff9c4dd02c839915076b82", + "831cb54a4ae3e605db1a1eee8a202c7c50bc5a67e57aba3c17a02c4826705a788d579f89d35240c8f347272b9d8d9fbac5eb7589d83d1eb7c8381153bbaba26ed00e6c1e5d891a9c9faed8981f5bac150465f6dcf53d9ec04b723f322fd6a4092a41df79cd87ac9d853656d2b6ad0bf795db9f11fbf4ac7dac729d8599b39d3c6be49ef6786acec77b67dba25db9487e865677d438c3d659d3679806f9666d915024931067b45aef81c688205f922c8dc421d498687dcac4a45a81400bb866a29632fb6973d90f079a7df1c557f5e0afcdac25117b50ec245473940470801af673d22257005de03a527aa520b7a3486644d4a81bfd5b222a60ea8c84" + }, + { /* i=8584 cDividendBits=228 cDivisorBits=170 */ + "0adbeb5e8c62fb5e10dd5463243de8c67c6fbdcc6b2fbf42aa39e600a1", + "49132e8274eb60a05bc072a011c21d4676c71ce70d", + "260ac33030bc6e5c", + "27a425cdece1e36ed60ff8d88d8677087022af61f5" + }, + { /* i=8585 cDividendBits=3146 cDivisorBits=36 */ + "02cb72ff489382a13cdb7db5abb349d816f523af37caf6054ebde67fd1eacec7500dcafcf9c538b7736f3d4b37f4c9ad8b25f15438d898b117501b6211b348758fcc7912e0b3377e9d29c3a3bb3abb216f5d5c498fb4e0a7bce1a77e8b32f75e1f376332cbeebcb3f053bebb71cf339519b7a40ad1554036218bf201cd0e0556611cd794dd9ddc09ecc8ae721e02e2940aa3030d67181dfd7229f103735036b87956fdbfe1364e8c66118da803a2cc0d1acf42556bc6aaf9fcb3f0a23a083aedf2d55e842f95ba6b5789b726cfa426a827b8b8c2396876899ff0e26fca546600375db4f41724e5170554b88e565a0a798747994200e165883c5f344c3355b5771665fdb9b987bee691d22a35ef841eee11dff55b50b63501101236bc9c9d48b0de9a34d97b816c4ba0af8f1129adc5b853329db134bc007b330ccffe4a63268c3c852d4cd1637c86113ca33089bd080c308a78fd5c4915e1f1f76e56347c7d4a5d8a3e3ad6ed62df83a3d78f56e4677a8b4ef8973a8a0bffb3a7bbb3b9173af59de086671c968dcbde9e", + "0b67565b47", + "3ebd11c027657c2bf368e147c285c9fc049c548f000b60746784be7ff553686ac1f792d56f0012bf916d1ceb23473b9fe16ac0c1f6614e51d51877a8f9708e889d4f34bfbb6ce71ced34686eeb1c4e5e6f1c790e0a8b67c613b1be370bcd23ef6b8c0f01c740fbf26f5b252f897e0aefb268874e56a2a99c6f3445231dbe75b3d78c8cc614a2be38f1f335d0962a308e0c4eaa121e25e8c1a800e49cdcd50f1351eae142ae7f955b4f5139063147f502bdb91bcdec8dc7188a45213e2cd8ab742f4c1ae3447840f304cab0af381088e885c6929726a1ffdf6f60169f69c8013f1a2feb0e328a61aab1b51c8067890088b2dda8a7518a8ee43e1e9416681b50a87313e4692324b11eead521e0b6490116fa5a39c377f95a1b874dbf6e573a6a59892cf128ff6d30d48e1efa69840db76da223e7308748d9b0acac3a805c90d8e43e066aef6c3f1780d2e0de86686690a65415012a480f1ce661ecc096ccc1c659bd3ef273fec0a9e20b3baa31ac644df2ba17f52ff9f5bc8e91fe21681aea64fb744e0c864d", + "095bb74043" + }, + { /* i=8586 cDividendBits=566 cDivisorBits=357 */ + "0fb3a3f1a2d4e8ba3e938bab4dea5156699b96c4b9f55561101fa67057a8e1108e3d3d5fb2d962b2ae4b4f6365d37aee504fc3c3f8a9fe765996f90b82c1dc82917da28a4ec736", + "1090dd2587382d3d3328b1cac0c6be80cb84f558fe8cdef5fc21aafaf046702a8ba9fd97e5635ee31bd7fdc5ec", + "f2a55555613bdbb2cd91d958dec5a928495514dcd23d9c9955ee", + "064059f4f7daef845e04c80af3a381d8b3628d1f43f69dd4de9f552a13edb5c5589360c0c7c10b9e855f9d69ce" + }, + { /* i=8587 cDividendBits=3272 cDivisorBits=1073 */ + "3d044a26061516bf3b78321ebbbcf883ecad61ea4a88ca2ed66e262604a8a2bc024c1c2e1fdaecc57da956c468a9d71d3c9123c4ca815d8a8905bee44e2ababe43145809636ab7aff5638941e677f6560cdec3691875f3b028e88b10e412cb7c647a25dcaa35843a0f9cc336eabb44f19cc3584fbd05977b8a4773b890ea08c68bea9b2e602974cd7515801e875e2da84ef04308f6f419a26fea95c5d7d980924765b9d938ddeea15c986ee7594f2063c1f8b920ae99e58ad3722c8b762be58d5c6bfa1e978d25d65ea3e20606ac361e32876f950cccaf618a14b3ea40a804917fa9f5dd2b580bfa404c802364284a35579dd08b3608870a7b1c27c0f8ea83ba25af8176020ea4876747b44c947358a287026129adb2c44ab2d4201fa6f77e1c15b35314b6498398af5b6b2a014e30151e8693adfbb256f9dbcab606177f76828ff690b0a027115a9e3429eda7c62edc3437f705bf7d7d4397b45f4cdafec4faa89e2136b5cf38d9c2bdd5c72800693c423c61c6ad550e95e7b721db5d88ea109a73581287c4f0f21a929c743088ca06a4580f60f12ebaa86b", + "036b352fb79b87278c32b5fd96ac9a87c14fdcd3894059413e9705352e42e27553db48fbb3f88bd57ffec616ab2c897209380d048db75112da93e97946f61a078098e34e2f6bf8820c3d16aa0135968a5b17d4bba710dcc8ea4cf77ddbc28954be61eef743ed2ea92030c55051772dd38b711d30c78b362d815819b94198fe4f64528ad4eae1", + "11d8f731cca3928a7504640efa65870e357f60759b8ee52668cc350e6f1b5b12136078b7add9f3c73a5dff0f432bac6def83aa636a88528535f631f568758257fe793e26290ba78e8b39f42310f95719c28475ca734d7956847000bcd771a71516b6a9ccba75b042c749c104413f45bcca54f9488fe6c4f44a1162b58a487c4a5031e4cd7aa7e45f1a8f6f73dfeeda6be2eebb8abda6d6d507306bdd227faec6d9696412e34d40d32576449779c61f6e0b74cce2ed95122479af74a57ebb36a7f20242e70913fe1aaea4b4a352af9301c8eb2ae718836c04adfc03f0ca5cfa3be9ffbaa98f9d0233ffc2528473abda1c85409116edf1e4113ac3d99fe760c1848a4f9c55bd63ca3d1577622cab27aa978bbc2154", + "66a52926caa39ba4e96a06c106c4221d81cc69f3cc571e13e418246db6c68bed60934d2e88077e88e141ffdb3ba01709d67bf53e547e9dca25b66cf7b58d12d0ec216e08cac69155a9fbf232ce4c6453eb8974b15127235e12d984442f43f39322f6f67a550f0b5f49045876cd2118a1581289fc412f70c3e2d1400d00d13d4d5a865a9597" + }, + { /* i=8588 cDividendBits=3700 cDivisorBits=227 */ + "0a68e93d1bb31ea3ccff21419d422619e28ff61738be12a3aad5e750a048eff2f3809985c6aa3a3cc7b792669a42e886cdd013caacd520ae4ef1da460bb6c961814febb7585a2a40e7737113b8e2980e9b117b5e996b2a584528b30f1669207f81986880dd08686f4b8f76a894023dc42d9909de9ea930d77aead70fc1449361a8789c770ca4016ca20d09ce63ac4688636a6ee5e2c4492170c6ae2b13fb46830f428d66b0f7d43fccfc198facb9fff9fb715ab60185a4d1c42136137652c9e6adf0b90e11e79b39531653d8553da53c1d2738e1dc2cb77f9ea8c1a7fd75651185899f41f581eeabb7fa969af4f1e1234918a71da222915cd5a42c0dd0a21a2c83c01bfca390693271a885824b54844fb4ce3f4c25503ae3d085f3a813ac42ddc91ab02a4243627b82d291bb66629170a8fe6221bbf39610e3f4d411741b2c6c5c492d42b55478bb63c0fb3ddbf19120814a87d97ea3ff2e8737e3112e681826d687b13b9bbb2abdbfaeeca1a5580fc53a0b81affec7655eb69b1c74b88f5f9681700b2b261e8d5b72cf9d574c3d95172e44d6fb8c454e4c69bd9e118e27a605ea64cd026bd450a0c8bddcb933d35d896cd0c0323b4c300317a6093ec96c2e55020c8264e197988ba2509c54d87e81", + "04236e5b7eb95104f0a041c3213881eb231595ae18550622bda20402d1", + "0283f26068841be07c60668fac76abb18d12649ca1077c61d0a069b4ec76adf202d3c614705c5e7ae5a9cc763715f4d659da51db8fd4cceae01f85e68195da4ef61046888704d73a73bfb0c48514443bba3c718e8551ca974735f81676b19b3a55311c90dcd7eff1c4d0198799f1947150ad3b2c72ed6b3ff8eb11ea4e357d8e67cf2aacbf47daad1ed17b08e4169be8249962f740a45878c787ea0df39ce7e0f2fe05ec4268ccec7db70a64ccc4c0ff041b15d139b0da1a2fc86db450ab699e45e716989b3e3199275f2a97d10fd73cecf261bf993d39c9b2afc8c8cda05d58d2a761b362c6914aa3113d7576c32a4684124fa8cfb55b59db62a1309aac7844dca6c85f4e5c1561e9ab6b861df673e89de0248653df8dbb5325f2abaa50c7fd357d846cb6c5f6326196d8aff902d91bb9c67ccdd49a3b88bacc3da49e7585e4ff6824726e742a30389eb53bdca8264bb66eb8fd599618fddecb35329993d65e970983541af28a30ec04a883c865442dc1b033cc102f52feafa3d473e99547157324b45adc79d085348b2d70c944788084c99f916f732cafc288c2fef960183ceb212c96a48cffc63bf981f122b4e39b9826b9", + "031fbec9d70ed2561b3b49b5569d966d5ccb70d525230efc1c706f6f78" + }, + { /* i=8589 cDividendBits=2520 cDivisorBits=425 */ + "d6615d16821202b45ec4d264b89015a3908d7c2bacbf801395126224c7bf1d27ad5fcf7efc5c7101fc021fa60ad8eca1a3e109886f2d7a629b09ad22eaae955618711eaddc44517ccede8c77f5ea5ca66afabc7d4130fcd8105cddc133a8d7f1c7d01126b750f7cd028909358603d2e49180382ab5c839b9c73f93e5e290e78fe4edcb5d715a278c8dfc10bda5387832f08a3df52b26564c232035fe561c0761f06c5d986cf777c3d9c1816df929140ae778403e5419f065ba3461be4a7d91f6482bc0be85c9f3db61513d3db345a0cb99b3f5ba9659471cf3c375900d0bf2e628019aa74c11aad44f0f134f8aaa7bd7a843d81b1f43c40f6898492706ed7b60396aae89547147e120300cc0e2473ab97a7c463cd86d7ed3272572f33568bc4411235bd9ed759566f9d58abad236735e7c4c2faf522a3948dd9fa2", + "17a083b7d99c557db8eaf09522e173468dd379281c5c69a022117127d9cbefcbe1b5730ee011db4f7d0493cc1d655fed443b3ae0d1", + "0912d2b4d8e7fc006a51e3bada3f47b8e91f56d81ea15802bacfa19562cfc8a16604acba393d12128ee50f746bda03a70a4ce1bfd59fc084809dc20b6a7eb9883fd31d25d3d42f7fa06fbbc1eaeab04f0d1b2f9304f1f7208437030c0ad42d87f3b928f24e0d4ec83e5c7e83dcfdc8009dbedb61e2f78afa5535c51b371e28fa35fb20e91baa1379fd5979177a48119390550e894e90704a61c8f6b66db5a07cb583bf170de6ebc89e351041652c05ad2bdbf60b7f79ebc2f2f4802ff7b043e696e424929c3dec8078a01558fc62a4fd147729de4155d641698fc08a2697f69ac82335fffa8acd5e65ea2e28863e61aeb6e8795c2f711e5e57c9d357354a85857787f6b4462745", + "0f103e755251807632879c2b1db42111c5d7e0ad60ad5bab9c7d03aa376781afe56a98c5697a744f23089a5235d7baf9ccec99304d" + }, + { /* i=8590 cDividendBits=3997 cDivisorBits=337 */ + "1cb04f3d4dfac7d142a704255438de49dc69bfe29960443e1110dbbeeeb64f837d39b80e7853297544bd59486c576198e18079ddc1cd78652b86e91de94c5fc509e7e28bc5e387dc9bddcd03b31c53e34d5f4db08db74a8c5698f53378d9a5590847a484398b2736c062a4d9a370ef93c890f83cead88a7937ca94b416f4b9aa1cfb49ff76a097e44336c10e1cc4df70b5e34ed73089150422616ffa13666165ea9f3a978d39a1c5f361692de82005c222f1496070ab6a45416c84070158448cc14d310f1d62adb0a329f7fc25f0bca8852853bcc1370db736e87c29af2c02beadb8249e0b121c382085fd23de1dc7b2a5faffe1f63b735bb34cc1a8a5c900f6086ca04f972a0e6ab709f75ef01cacf6d6d92544983c35ec605729ea41ebdbc68b226d5ee80290c487b1a4eb35856f21fd3966f9b092bbfb33f19e4f610c1ed9650634637b96fb773ab7c3af93eaa7549d7df5e8d529f71c8c85e4fd5527a55c2bb67f06b715c41537aeb1119f8dd2afc503200d55ad767f262f3ef97c6df521450a290fa3d378cfb6f300bd86f80f31144e2e5440b8c251622c70c5e27cd582bb6e8f0085d29fa37b443c36d02688574b84d15491bac4ee3fc09a651f12e0ffa5b6be77927eaa195bedef2652c5f8d803bd7b89e1bd4b433caf99a24c8cce3964e4fed31507248446c2a9e80d513b37a6d4487f", + "01f59797f56655e5ef19cb0f4c595309f12ed1cd631c0e6c7e622d3858639bd90a880ec1ffa80b01a39471", + "0ea459bb38f68904d0fed4f8c141a05308f6d3b8a927132ae7a2cf31dadc989ce91a69fe964e8c07c9d3283e70e51d4669ac5d01d21f90d340b9d94c233ea80cee38caa0795a493044671dcd1e3940642c005508ccc5f438e73cdfcc642389056e3629102e7ee6e10e09ba3312521df3a329b926ae09be7e9b962e56094ccec4b6cab432c9ca4ede32d83913254397a2b1529cec63f76cc7fd80f2dc13f1ca9ccb0d6b034da6aba08ac066d3b04cd38c6cd11ed4a3b10405b39c4c0f535545625f64931c6b2c93e21a215f7c28ab48bac954664c194241cf360ddc59a6c01f21dc3e3656ebeeb8cd9d30ccc5563b3ecd5f90c70eb1096bee9906bd81cbcfc7b0d7436a5338c3d03fdeb6987fd06efb39c1d546805bca7b52e1ca821ad087d609b2a606c17b266a0276eb1acba91ca46f0eb139515c87728337bcd3df5e3e60206c098acee2bb83085fc5279bf588044d6f457c4355185c633b5f2128c887c9e1af687edbb655c2a9dfb8756c6fd3f9b306e915bcff36d203ed6623524c7f2f1aedaaac4296b7802c6228a43b262bde74f03e43db06970f857ebfca154f44daadd737f16850b7a64cb79d7e621a24dfceae43097367bfccb5e624c6d937b9895fe3ec01c8af90c031365a", + "7574e652ed189dee6197a8778fa0fcb6b6c8e92ab9e7420f4387b292412d4e63d4f858e316cc686142c5" + }, + { /* i=8591 cDividendBits=2472 cDivisorBits=1357 */ + "7c21f6b9bcaccbb0581736958088ba91a452d5c4ac6cd005ccbd2e14874d0cc8685f98373bf569f0241be52e8856d4d2394c6f613af7aef1544dbea7a954358f646a59b7551842dc5f5c53c453fb15d6a5b56b713cd18c143438fd43cc261d64ba60ebe3a955bc502d0c433d8c3e79bbafdbac29b49eef7ed09bec110094a882c69c73c9fe33017e18e073c6b7449fb4046ee9a531a3457cc8d7b4f811d0a9eeac4d3191722a0273c3c3e8812360360d02c95e6e7b6afea2a005b197df3f70782266f4eeb313c77888619aae580dd7ccf1b55edb6ab00c07d0292c84e6e6d66681e9353477592948b67d49ddacef3c136fb726593081eabaae24e9a48434e1dbb936c9e93a5f51c355a28f15c024ec135bd07aa55c3835092ae9b09ffc5bcaf0b3554ea80da53c77bd3c2969a91686bfd5cf6e513d", + "1c68a01a8b7ed651c04f9b3e542cfdea2b7d758d44202be1a0afc4372e617fc8ac71945a790dc720b0b5d81ddb642b1d8f7287b41f8ba8b7a5bf7e7b6fb59ff57404df9d59f2eaa11f0b0046ab98029aea40f7b8cc75b09a2f7b690a960539492b0839d533b09860e19123bacca02024377f0729549afa59573349a7b3d8de3432d348b89cad1fd0c73989c0d55df58e668079ed0c5a921db717940c56187b15d785b908c3744f652251", + "045e99992061b411f702fa49c4ad17873d4df6e4c592b13e9080bb65fa89915d65d55b4b39cacfd7077a2d35be5c0f6cff6a767479e150ada6d01e3cd1cd4d72623d70b0d883db61e844cfb5ae83c864a794d706088ad7a298c628c7bb45ca1cbf21577d84da32096953aef93b5e1a8fb03ae2678a4728d82356b5414bdebfdc7d95d9bf1a5928dfdd7f203e", + "194eae0c17a72fda634de0e355fb769d7daf37b79e29a907ce0aa5c37584b391c02d12de2de40029aa2f55bd4241e73e256caeb0fd24eb0bd3f701b256de70cdfdf9cd36a92f404ad53c53a89dd83a8a90c02f763550956dea33e8f33c7052021afbee7fbe391df72a251ae9eac5d5164a1b17a644ff1d1db052d0b5e0c3d79bda49f7c6596d007ac3ab300d09f81faa2555124350f043b61ab00da9d9ee887e9243b01ca162fd76e19f" + }, + { /* i=8592 cDividendBits=3421 cDivisorBits=1789 */ + "1a05fe47c9e47fdf47188c612e00d758deba5f6edbb46598528d62a1a663b2493ee00f091200bc55e67c5ce54eda754b67baf9f0bb66cd20581bc0d4cc7bebccfca861000ad2e6a910f330fb892c7ec0e10ef612a6a6d72164f0bdb78459cd69ec22107deb14ca5d4d628cede41fd67059a4d497e647f7294d7cae48945bd354037b0549875880e2e3ab56c20668415d6941952b3b9f8fcd3a05151d75c8effbc209baac0de1bec86a3aea92dfff08e1aed2fdcb4461222248ce607d53ad7c91b6761857696f4fa61702dd18b701e4acab2465f50e3b64e72d9e17846afa806a8aef56c6ad2fbbc15cc01b69b00a651a3dd8127ff363f4cd27201d86db192d71570e4f774e0ba9c530e74d1fab5836e0bbf7e9a17b3e7fef7d67e517b7eaafe75de56482d416b7c82f2fe6bfea96717c252d9233d0f18fa92ede660cc4792a6c5285bc3540dea16263d6eb74dae1bfb1477f230467ff4182ae3658968d9e18503cbb09f89ba7f91272b9a137564a43866123740048fb1e982610236f4c55cfd9393f6661e980ad9df3061e912373ada19b8936879e0343fbb4dc932ce141d64c58185b6f90d8c96ccd954f3f", + "04dc9e1eb91af2e5a2953d5dd5b63ab6ff1db4db74e0bfa4a24ab99df651b11fdfcd50ac0c3263bf21b79eb0e133e4715a6852fb2134b4c9a1261ae8bbeefa187a5f424095be992feb3883b9340e95a6a2229cfddf67669ee2dc52c258c5cdaf45212fd6188c8f42ae0ad2ea3bd52d027d117b9113bf2f0e6bfa6cc8b80ac9cf270f775205113362460ae97b32031a61fdd9354fc27856f4c7943a20164860991b4d0e86d4c289e823e0f610f3d030ee42650991b0e2eadac0e6a89269b9d4504e31859872ee4db49ec9993894ff6af1e25a1cf5c32e4a08ad2867360c5edd96", + "055a46c64f1af7a0e8ca9b34f0a9862d711cb5afb1e32117afa8eebc8f8dc533fce66e9b512c01414e9453954d42a916027fbefe6a12e78ad53920a451a20ab9ee6c342c8d1057400738f26fba34d2f29a89ebf34bcd47ffd07e4c4b28df10a841028021ba1e03e6a7ea221838d02e31aafa795f1a47381f3c09b729449897bd7ca076807785fa3c4ff58d045be0c3cb951f78b98c7d31a01042a5359fbfb1497fbe2c9b4d6c02712cf2a41de783485e91d125e191545e1e0a7d25597ca4395efba9dc1275ebdd4c6140de7040", + "0222d76b0afee7e43b9321d2434b4791cddaff269bfea6c588fbe1fbb117fc7072fb46fdcbb50aa178377e0e2dd5b527a85673be73556cd47b81d57ba32bbba9206cc9deaf5837267dc83de7045e9a2f364a2171c904027c41503303084b894bb4c23c57bca800bc2555c5089863f10fc629857b98139135912df32d229d2cd292aa56536e24e23551799f5ff623b6834a63ff1eb2fc5423b3c72622d7b72323efde74ef06069dbc22c91b3dea50df148269e661619653eba118d08f8ff710c0945bdb6eb923115852608a0b1c884d09fd117b0cd5830ea8bf6867008cd849bf" + }, + { /* i=8593 cDividendBits=1105 cDivisorBits=753 */ + "4b8576de63f4710d0ce3481c86bd61379c3072f72bd5f2d636a602cc70fdd0bee00a55a69a59ea58b84a3fe10926c4da8e047bb76ae9c49d6e9c848d01270649491e1d3f75d3a44b8605f5dbc2fe473af7c1022c5c3f80afdea187d872e2045f1c75d427539ccdf8f12255e4f2aa306ba2a4a5f8fa057e6f41eac6a021935e0f8146fb28b5daf5e95289", + "caf781eaa5ef21c60c344f366f7b7bca9cd0c0f682ce61b28f3dd1c767611c4c76d23a85278e0f243abe091c7a22d8a968eb2723846067ee5eea31b709872f95b651e014052a6877e763d2ce7dd1f76db34641d0ed3f4ec850a5375422bb", + "5f411a4090b468e9bf11666b7ac6b2e41eb28a29a60474dc0d58922d4b0b99a7989838f3644b995996616d1f", + "8556c74e1c00fae8ab267cdcf1c0283ebe19a329afad012c528d1ec1b897020d2d9d3afc5c49721df8f66eb077fe5f2f1069f1d3bf85ce69561c477b3f44e57c6f176cac302af6a466910a1b7d3bcaaa97179a3fdeb00bc0800cb5147ee4" + }, + { /* i=8594 cDividendBits=2347 cDivisorBits=72 */ + "02bd93c0d6aa71470704c7eb0401837dab31735374a7e4efe13ba91a4e32edacd85d88743ecfb63f3e710f45ae63f3c56d4cac54ed2ea04eed8e086181d20041f66712ff5a64163db0e1209427568a6003b95251a3762e288e5a1905fcda11f2492a608c69e330a89757203932ac92ceaad112a999a416cad8ee966eca463d472f51afe0877d98d1279d50c14a0a345821539b17071c8c12b034ffbe9a5bd12bbb5a7b2d8e0a8c34ee4da6aa30d87a01c08c973f8c7498e24d8fd60dc794f58f9a87cb24e1bed4f1fbfc1c5ce3faa56f61473bf5cb8afe7c31e4e28b1c6eaee21dde779956525c5a7f4f44ba51ffb66a1400858b71ea1bcbf08f20e606ac31ae79dd9045ee15efece7cbbec192a172f3b8065a1158cfaec623cb212c580522f7522ad30a4b56", + "e3c5dd1ede0268329f", + "0314856a1accfb540b76808431b1d71076e34736b279976acf2f87dd7fbec6e4c964aa130af115236a3fdb10a164aceebfa6f6bef0b7e20d7eb3f95e4c4b49943bb448ec2ef75ed9fc5ae10d50bea0bf064a6a335c5dfc45e912eaa0396ae9195a4fe6f84528fed891f74ce0be27ecf323ac78a154be54c28663a940a8838af4b9481d5706092f523e7ab46981d72f6cf5aa4ca93bad68cd6b724eb87bc4ca256b55a83b973f1fa3f16a8377bb2eb7a6f8d0a43940689f4ec650869647afb761b747be5c924b4252d1190490b0402c84158ae9a73e173e950b2081afaa745ce952b6003d968eccfbf5797a760d2d111038a2e030cde5adcff55c52046e6535ff7b3cf6b520143e995bde099f4d4ca089fc3b809f6b44a4204785f5f4a2", + "1beecfd543efafb6b8" + }, + { /* i=8595 cDividendBits=423 cDivisorBits=194 */ + "0392bd4fd45325e25d2981e53989d24fea3221021b74cf2284d9bc2b65751fce3f9f8547b637796a39c550fb7594ea42d4f799d066", + "0282c48f8e1c6dc9a027a5a2cf2153266437c6f2f629850294", + "016c51f9ed3c3402d946abcc328783f9a55e19a95e2878f35b5d62ae03", + "b45d901fbc510076bd1586751667ddf0ec067c4352a230aa" + }, + { /* i=8596 cDividendBits=1876 cDivisorBits=1470 */ + "01096a354a552bc1c4912431326da66cf0cc7a85235ef167dcc5dc8436c8db91f80c0a1f2124381c71ac8c80caf677be4b1c1bef10c5ff30836007b21c09f66be8b0e2d0c254956d976619e4eb92f42b7b1f57daa2457c83cea03c3e54b2dbc87a72ead9fd17aa260c2ac035db6c19e9c11948794d9837d73eb68185357e76a346dd0088c201a2c65fdf10b6418384ed3f0abcd3964f9ba49c2fae1dd411eb07c4a7058aa76148b328c905b2c4cb52acaebf606029c400ca91709bcf4f19389aac73b2241e607c0c1aec69acc9712f3374146a35b1207af8e117709d9c18c310ff16d464e53463ed1a5234", + "32a3bba42cbecf63705e0683cafded0df2df9f55abfdde80504d36b1416614495401f8751139d7a9f8d07695d2c2e61fbbd6f59f47ef47b7dca1883da1c079561e61799d234059336845ff681cf9f4752b9b1b093eaa7c6bd7276cd5246f203eda9ef6d96bd09b441eba2b7de9c3fc964de991cf8d1ee389c5acd8f00bf9b0a3af4cba7638382991e2b969234d7a8c2aba61d83e19e5ad496bf835b42b76cf6fe545428535b23b2ef279e257b5649719c5c60913f5c2e3a8", + "053dc2c6a452a54dd1c68b616a84e571bb8e1f8846065ec3a876e7966a35ec2ab9fd316df1fa49af29fdc3c35d0dc55a325a28", + "1b0c04565e51980f7b2022ee175d71cc27420768b9560677da4761034d22b1c99b78dc7861371560fcc2d7ef22a9d976aebb1d8e58cafdd7743ff43bc3b89cf38b3842d2e6bfbeeed978437cc880e70b0b8e55bb432b982c0cbc73d0fe9f88a3f507bd6eff1d1d1d5d76cd8e66d41df18d59044dda4b1d9fd06f879812e018e29c7cb8de9f6efa34a8bd1cd659d45d5ff8db7b094beacd6b050fa55cb4016f9206678b0414bf55dfe7ee9df4ecf0ff6263e5887d7bcdaff4" + }, + { /* i=8597 cDividendBits=126 cDivisorBits=7 */ + "184628bdeb9b4c3e0a20acc2be8e1139", + "68", + "3bc06449a66a9449f18b81df5ee78c", + "59" + }, + { /* i=8598 cDividendBits=2037 cDivisorBits=1207 */ + "06c857ab6421157a24b16b97ae3b3e50619f877d1c93f1739a296708171a4d955cf1c670f9162d7b67ec731156e3dbf2cd1a2899bfc585523f870811f754b06546062faa0df1a077d2a2529bea2677aafe79b9015a5c1e66023387bc7c72d226fdb31e75ffc32aaf70f746528c4da625112a69d9567716093c294239681e1db93b447e26c4feca330baf9a8ab64e11f28f82e08fbdf29abe2b59691b928ba57f6afc53add4a3dda90c623379430f877706969fd86ecaf53f103e495207701923717c147089f9dda3f7a7df1d8d30d9f95bb7eaac48a05f3a929d8b7aa64ad483c9cdef93c4c45a7ca2215b2747795418fad1efaa4eb6565a3c896ea15439bb", + "20b200f7ea9a50250cc0f90e1ca5517b94250044517896fa78ca6702f7ae8719fc221a626ed71b13961cad916194012d2b5ae951e0900784594fa84fd5e342880c8059e2a5c51322d434f91ff0ec3093f1459ea7f7dcb3025753dab59502fd3d544b43c060ca3a38479c8c6d4bf5d3ade8af12792a289f53649dc11bd4a1a6b4b7806ed2e138062fceef6acc15a5584dc0d2783ecdfd75", + "351b53bde09135985b2de50f1739349b405eeb6a683aebc99ea8bf996ad630d8e91d84a49278e3f1f110f5a77c621f2805ed3eca7b31cf5a2c0b499ae23cc36c449a283bb9ba1277a9976001bfe65ef94dc35371c1cee46adff569aa8606ab00a7ed363b5f8f6103", + "16f1fe079ace096a7aec4c7d2e6dfa0fd03321f53320bef6fb98cd9f7c98b838175397c4865de5eaf69037e3fa625f52200e315bab3a13a20ceb87d90dc5c1aa47afca719703ef1bd937bcf3ef0b810260a443121074104c24ef208f140a67b8782fc8d47448d964d82ee0b6da9720e35b37f8430427a49b53d04ebbd3c92df3b70e4bb277b289211c1933480dc9064b7fe423d885ec5c" + }, + { /* i=8599 cDividendBits=1038 cDivisorBits=963 */ + "0961eb6859093e943d51b3189e55c43bdef7f403c633d7d4b48d7423790bf83c15df106e9ee732e43d0cd30495429487a68c63f8643bd25a103b55e7c9ce017e2065a9bf8ac7c4a9ddfa69e17710bdc68df785383b1b7d6def7cb9233002139754664ca071253c8559793eb6f56781343c3a0b58d3a7cee58534ef8c2dfd6049f6c8", + "07a4021e554ab744eef3d1c47578e07311532bc73642e630402e32f1282979308a6b4d07d6904455a95e8e21d0ea25821b27e16d48b96508d7647a7a4c6e11215aafdf04fd77b88627f1039b8aeb7b294226c6920ceb5c1ad1f9246161f1d11e1fc2992aae021150b2a18da62519320ba1524d0518f2e8e393", + "013a5c3e9c23a3cbae72", + "02577ac29ce67456bacf5e2baf551273c14f1d44f7876d539b6edd9cdd29ea0514e582f8541e943539ca1fbb62c6b632efafd387a0285e1c4e280342d7d432ea87e44368959ead6f2f604d8d291390948a9a649cb315c6478727289b5ff5c2f0161d9850033518ea2ac6d605a04dc0d52ef0375b1adb55b552" + }, + { /* i=8600 cDividendBits=40 cDivisorBits=13 */ + "5e427898e3", + "0ffd", + "05e54286", + "75" + }, + { /* i=8601 cDividendBits=594 cDivisorBits=274 */ + "cae78f5bef6dd0336f447fce2188af839670cb9907eb0f91e14039c18ae5a21d6ca132c3b8ff05be682dba8ccfebf65f6ab8c4a797b7b4eb5ac2cfb5d0daddd64d4bbb80619e78eba5b9", + "0a92c6212bbfd23c7d35e9586defd51343a4c115bf752bed28bb23f7c1c4741d1b73", + "1330b197bf715c76ddb780d2055147621afca6e96c484072fab2bad94d0f7f8e1ec11265ceabb7969c", + "21024b163dc6cedf38d31ce96bc76f8198a1a307a07ccc14885ba84a3038e489a5" + }, + { /* i=8602 cDividendBits=1269 cDivisorBits=136 */ + "0241f18bb08045bc4a571e60fea9cbf7a9ba36bc869390122451f0c30cbc3fbaf1d45a6a6acbfba100100ca74442693db506764a1b4aa068b12d82d987c9ad4476251243500e55ac6882951fde82d1c9f71441c3dd096f91fc106978be80e389b1a427d672e92fe0bd8d1c8fd70689324c797274a4b6b6bd43505a641f8503a67a3b9a7726b07f29d567bfcd92f5b1ad8fb46f4afe8ad4de9752791630b484", + "8925a1738d8cd3469e781a697d9470f9bd", + "0436cb9ea3a25aa1ad4bc276c73eeb55a98ffcd1923dd2121d65dda836c543004f9646afe6b5e4a42646f0701d2f348571e67b75d1b391fa60afd6511d7523dc443cf98007e46a03a3894c695e24a74c8012b8dcdb1a148f18cb33472438b329083e44db40a046ba5b5a096cd78e77308a80c1b015f52e83a1c168c2fc3e7ca212a98adc63e1148e38d788a925cf", + "21bf310b1e73b966a0e8e0c67d74f973b1" + }, + { /* i=8603 cDividendBits=596 cDivisorBits=94 */ + "0f143a1c8c6f4f5865ba7828a493b5c85909fcd0f60b1bc87a5707b3182a2a443b3e7937c5fa5e83fd07ec708e0e1fa4a4fdbcbdd3e924bf715f167226cceac5e73f09d72df2a8d1fbe67e", + "2c04e3722383870e58681d7e", + "57b1c273224444b807f7b0f801065e5fd889ca4d1ea2f3e584f73c8032676e3867f9582b8d397e5e468e3a079a4e7997c1e11d4f23cf27fdf3697462f39342", + "0b2fbcbd306212fc039af202" + }, + { /* i=8604 cDividendBits=2721 cDivisorBits=963 */ + "bd0247329a2428cd57f36462452132447d650147ce989f10d132a23b3e687898769c5b9ecae431073cfff5138a3da969f1f0aa121d5cf70ccaee5e098f9340cbd88ba2af84b02aea251b649763251acaa5178c940e5887541d4bc7a7a9ba3104fd50216bd3a75592a2f8f697dffe1f66e0866cf2ed26b44b273523ba93cfc1382cd95aab451032bf432922aa388d08905ef39e5d9d1516378a0ffc9a983026a495da37dbc5dfae8c2988d5a3609839a5d1c0fce39cfb52060da101a6d66290ab5a4614d637742526e0123af5bbbffdd061a01372eae19cdf1392227c7b12587233ce0bb9b630d288a891d816db7f2d5d1c0957dbab513b942b8889d10bc97883402c8f0f6883ec025059f4b823a380ed22e820e5c163675b2dac510c2d435c6e929db36fe58d4a6cc87641e9cd0a85e4f0f79e3af9ca846c3c5fbe7cc00f473982c9b45053c82ccc7a72b8f0c7174c2164b4cb2e", + "022639dc2106c0eae80d7ca6b2249092aa6b0377e50100a7a4ff9e11854daadaf89bd6e8e887916a65f466d08dbbe08fdc6c50be224360b6f980b497b3fd9c5cdced3b390759f5ac907196525cc704c27e474031267e21d728e4c2963fc7f82873a80cb68cfd1748fe35f866273bbadc0a82c3f033b25fdd0d", + "57f05ca79827c0e89f9303a60c064754ab20204d356cfee59e0db1c8b5de4a57c16deb435e9af028cd5382c2712e204426748246bc15cf4ebe0424eec880064fd0916d69318ce727f4afe3699b03a47a0cfe882e5cd7d1161dda3132c3c0d75a7f196476ec7b18c1ff7b6170c8d79d4d0b669c06c49bf6447fce70d943ad7f3c3978640d2b9d3a005b2fa23d20db8bcc7452eec3bf304f67c186ce2c5c69046ad562a9204644d6f9c4455a59c3838e7dc2186314dd5ba10d43b8a1c4af174be48c6c4cf7049d596379b3c3dd6be36a0cf39b17dfc112bf2c8724fb47", + "b92ce47051c2ef5163f29f1f8640a63a750ea593f575308b0b03cce3f4e93c181433e729bfec3e016353ee3357084b59dd2c0c8efee5e028d25befbfa355f4521d3a09b5f0a2ed6c28486a15a113f526b999f03996cfb00b77dfab4a69c2fcf64be8ee68338f505029ad3d44843447e7d596a99dfd8ebd93" + }, + { /* i=8605 cDividendBits=2673 cDivisorBits=1356 */ + "d09e0706781db671205b34dc89354be0f120c654e68d475d6c24fa7f7d875318c0b01510dc046ddb9150f1b22186437eb1d0bc1d8f3a1cf873b1a4db7e01ea1f94b58f509e46825cd0e5dea0f59b95a81448f7c4ff3140a8faf1f407e3545e8f4ab5fdece5677ee1169fe9014ddb2e49768467184a17c309acf12f1bf0e5617789cbda1ff6f0ac538bc7df7545075adb3aa88fe911eb883101ef05eac4577a56400fe5592ae6fb6c7b995c7c15d832df9fb653fee5daa38a89f25ccb0f419750aa077dfd11d71ad663e9187fe24d5d5d7279e996260ea8df7a765119a94e6819f42a46c95cc3fdea2bb8108c18bfa3e363f47e694460d682b6fc0a03e36925f3799f6be25cb869f30c279062a3ebec702bb2a5f08b06ca44aa371e9d3ad40e6ab8a1d661d11639869dda112ca2b4f61df42386b564017e7f82abbe37343e2ab9f6d33e41d39ceb8ee2a90da796f7", + "0563d82bb3d30b894dcd2cf0b4fcb576fdfeaf3260ed7429e690b2b0e364930299d18f2e5641e63595307e393a79ba77d79cdc5b3b97fec47ac9bf8e2e2b48264bc943eeba32a876995ff7a91366c16629a60152db4a1a56e3a3d53aaad604870b4507a8419fa692ff2c84d4114a440177816188595b4298dde9cf3e539a8ce7e16e099f12566bbbbf0562cb3c8e9335891cc9c655348b26b7e623ff4724272e073b845923bd8e1735cc", + "26b45279aba57bb762363c39992b701b6f704e483a3b8a402780004e227faec95b7a65572fafc4e43ec086a7d68003f8d1041cd52b8abbb13380c5a35e4216154fef939c0204daedc4f9a9d38c4b2f61f1b6b174a7b30dfc98136c65941821b11dd05593662ea6dcbf7c922e9ed388555fe1c3282509eb06909caa7810e78c0e08fd100d23dfb54e63c628451df4ca78aec2ac1e1352308d90e6644b7e612b4938581e084f", + "01ec3e2a50cf0047678bab294699d230251ff5b98f32cf10a0c20681eb8f19bb8cc55fc8ca123c145c8992a6001b9adaef4086e2996e173cc3613e5bd5df07c9fa4b84b6e721d31b3150e526ccb4e384963e1c3fe7ed146c1caef7a5778c8b433864dda5df1ff0bd49b26d0e04498b4567cd6491e0d57d0e87e735f68b333486947718a2e654fd9113eb83548a52edc3df918d65bce3953b229131c2ce372e1dceb4e9315ce30ce79d03" + }, + { /* i=8606 cDividendBits=1422 cDivisorBits=1051 */ + "38cb83271d7061f33448481dd2c22532dea3857964b3752e14caaac881ddbfe52c408979341544a8a9eaea85fcf6271c01d93c3c0b72b4e13d294ed46552a4f0542948ebc2ed382726b1f86f3bde4e89700680111ea8543463945a34e45eff0d715010cea68d1be7b928d71a490e402a3cdb6b0084c839514f1da1cf6780ff3b4cb874fe3a1f3cec817d9f335188adeeb613b48a74d57e7aed4cbb64bb5b0fb071f7447b7bc7066fca00c3ab387a9127ff4a", + "0144029ce3c8c8be051a498764fa91033c9f293fad2dc816e9510e20011ca367a68bc829023ab34cdf11e60e29440862c31dac57e1dc1965bb3d111d8b916132fd800c19f3344483387dcdd73a8fcc435f2af9912cc5180a74c8723d1a1f5791c5856453b5258de36ae73033d2d36edc64d40a160298e227cc2ebea2eb9c9bf3c01d51c0", + "2cdfa5d9c34a6a66ef51839a4abda6ad0f2bb11f98ff4370ca407ce5a39b7704de4b5fb6ade42906ba12d55aad007c", + "9c93520de9a4eb94f1035e57c32604eb661f7f6c82e8e29c4b394fa2de4de0a5434103f4a017b57d005a5bc6ec734d3d5fa6d291bba9abd19fc550fd065a9da4a7c669a94d9faffb72dadf347f526b6649f264c6fdd2db124f63ccdc800da9c06e1ec7a743047b63cfdbaff5df98644cf3db4003f3450152bce924c0e8071bc434664a" + }, + { /* i=8607 cDividendBits=2862 cDivisorBits=2349 */ + "395e324cbb5dc9221578ff29d606807456c3503549feefd056f8a725bd2a4f401c25657bcaf69817735ef128e5ab4011512361803c49167dbcac8227763e19442502835e7f9753001f67b42908390e8a7a0eed6d80965a706f77197d98dcd799265656e96af98e79fd8c9d2096861305d9bd5e3f8aa815dfec38ada6c112ac11dcc23110f115657436ec62c6bf074098c0c91234a87b3925c2d979aecb41ebfc296de689a551f01005718d0cab4397c90ad140dd86b0da9a35954cee721021395bb0aa2203d4028230c7936dafd503147ff328c34a6547f9b680ccae9e27295709ff2835abe604381345a036033444c386484256827dfe543e81049d307554df63d122ad6e41b9c6d14fb58d2721dc44fab147b6b58229ade356d5aaf0575c6716186b21a9d9158a23710f0cfe87c80e4b1363b61ccab37b02c6bbe5c10252dffbb4b7e6e576ad55cf699e1fc9b6df652d17e153b8fbbc95ef32efebaae006543c8bc50baec8", + "044df16b65eefc7faadd33f2826895c43ca1968603da3a78b92402f6f1d5db874dd260dab0bff11500503a87a380eecd3fab0a1ba81d3a36375e580d00cf6a5c36c60ae3d4cc15c1b784059c889a8cc566359676151fe194aff8e8f91a35fa83a4ccca8cff4ba205f3976528a7577a2de05281ae4ff7c76152246435b6a72425fb49afe18a83f8c499d513aa24f05f3a69ab582d519646a03ca2515d7bce6048dde82e8a61f66dfad4bced92de50e2d14b368ce31a97957b946f853900843c5927cfd393c569e0cd14f091c7ceabf361a66a64238a8698f2c42d423324332006f288d1171478fd0f5ed8767028c84d15f774eabb982edfa076788b3ac0672b793cc252a8fea0fae9d18ff9000ad080a8fbb961c2b8b09fb16a6171e58ee030279d686ad7ac59", + "0d53da0be22046d591bc9e25ff011350a4c682df1f6a1b55879ef1b0e21d5cfd40a4d177139620e745231b3a0f91612681bb89b079c3aaac254142c915818462b1", + "03751afe75377179224850b2fea45df4be7e74125580086d6279210cf65c2aa5135c0c0ba19c1b8662cb69d8991577f45b39e8d1585ad77adae95985f5407684a5d33096bea7c2fa2e594df09d70f3eb52430b91099ba8f82482ba53825c1d9acf502d55f39858f6f2fcc3cd13cbc901abaed0e5313d9b0aa5f4e455ea0bfb3edb4cef0ff156e2f60f3015ade268f05666a14a6c043491b906eb45c338691a8dd8ce099e41417b83f98e5d40b567220c1bdf117dee0958baaa1fdc3801b7bdc8aefe55d2a4fbe5d69ecfe5af4aafa0f1cadad00043963f5eb2d8d35722af63d80bd8b4f564cf228b201b4b6ff3e1f24caaddcb603a31a637062e180f225a87621dd1f8781bbb42b151528882561c3856293d87c063d57341ac09eeb05c02a70ba5189f0f733f" + }, + { /* i=8608 cDividendBits=3238 cDivisorBits=2975 */ + "1b349a01648a467c26f61209fc15c7fb5bbdb4efc28d5c770306b2f71f7c7c978682092ef3f91905c24b7cbdc61841f45cb5a7f2d81020e504d27fd176c15e47253fd88439a58d82845da79d52d97a7615ca5c480f7ac2754c9785e21cd46d83fd5ca81dc7a06df080294e3c880226f1637c2799e187cbcb8b2ce43948dcff621e539ef5ff78fc15336f3447342055f6b7e4b562e92e6c310522266df3c14384492fa866f011d945590213e5303c5b81141e85c004a7419fc4b668391afeb514b4867af1d1f90acecb83ae5df02d0f59cad3f2454331463c47680a26bd1e1be7107ea699c5e896e0f3d06f88ac9ba03d6f4f2a6f2815c8563072e63a157285398452b355ab073ccd92c601ffee30297c5fc609cf5c08885b9962835ec7e3af21a4d77136a63e9135508ea251f686d99acb35db615172ddc07281f2778d7dcb409a999456ef24a6fb3d11b5a2f9e76b30d81e1afeb2c1a6d95e5c3da4302c065dd314f8ff30699254eefc82e31f2da8e4bfe09498763c5fde454859a74c4bed35e95bbf05820b505782acc484c639d2126068dfd9e2", + "3f3db33523969b4b5d1d7e4ac4261e59c98d9a7018362907d65322bff558b572301be79caa86f07066a38cfaac734087bfd5a92fbc01cde9874886825eb0cc633e72ca99597207acad956fcd783373eda724683a4a322f83103820f84e5397b62a242a3e1a33c9e25957b6e99b6547efb39f043c7364c95c6abf0f950423a41df2db8f7a4eb0aa1c55f79291f23df1a2300cdb69433bcb4bac931705893b93c61b3105982957d664548b48fef375c4612b59c4aa1bf25a2291e3945c500c7d3f7ad98ff521221e4c97b8fafddc51f15a84de14e5d963c4c0acb7c98c0c3169ded662be6defd582d6766b85792a69e99def3fc6052e7d3353b2c70b44d36775f041ff52a8a9e5217660c23943aed9f39b39b75d94d21af9f30ff45a0b858580580dbf43971ec73397f171b86127ce9f816c2c689e9e5fa7a6140b102aa50d6d5a881e897e1aa09f0c626c62194c371dcd53269b544064ffb8ccb6ce34a07913b286572c9631a74c1a86022ea02d9e47dd91ccf37d", + "6e20bf6dccf2dd1b9ccbee9da60441be0a0377346d357c90ea440b9c64c12e877d", + "0aa5623f9e84651c05c27565d8922ffa4e0d7463c7e2caf68d190d0a925865358b43a49b84a0e12b6ddd3129349052ca2ce57058e86182e783350663a002fad5fd1d492f28ec2262f91073bad97c507381b478b39e88a3d1ab9ac4d5128f29e1028a30e2e38456c8d1f5ed2bb98e5717d703c302d25df489dcbfa91423ecf00d58c2764ae66f01927801ffa2802454cfc2742c1db9e9fa05ab6f99486f7d7f3bf8daa677afb4ca0523e8011a222edab4a2e50d8fa6a4f078e78e82c33adf1911a7b25fca09f0fa0c194010000c0db9021bfe22e36c0800731209d212c289046deebd595172aeea14a28011f4599c0d8cdf5db3eb4805ee193877d7d32ac84f2e80fb13e90786c343cbfe31f4d4213ec4b912c7d88f60b24e3573d0beeec2878fde02334775ca1f265d503f711ba90bb9c3bb97c61fdde286f3715f14238b6bde2705ea03dc11344c7a70554b46d9a3865a266ff435c41039f200c7caf6fdc24e43611e77e7fe34a45d3915bf0419241425f00ad9" + }, + { /* i=8609 cDividendBits=3628 cDivisorBits=1541 */ + "0ee07f56fa49adb36c126635c58584d88d12947b2be60d02b637d044551b98df5063ab8b2c2b2f20b0e7a81b49df8791b619d6600c9a29978c5cc276866d8e2ef42be31090813c22cd9bf5bd3733356081931006562fc6e9a2d8b3a7e7490d924a2cea774e74ab6fbbcee747b4bb505bca4d867c2124616255081bf22c3fcbdc4a486d88c750b05b417a1ec5e6304e12f67167a911572a987ddc9f060811fb6f534cc2090b58e0174b37f6776342fdb7076afcdd352a6e589f584eb940a6a7f6c8d2095a1e854c44e8831e966558316a631f485c4e8f60490b152128e3994190a0e57256686f6708ec392a3905e85750aecaedf6ba4fc41a7341342d7c1e5342e646cd55f6d00a19dfd41777559ffa115f2655fbe63de0f7707c1008a5b50246764a774530ac308cfd34f5f6548f5c930f4ae153b211f20d916672105f0c41f7ef1ed59a2f8a69179cb43e0dfa42d1a73175038d21bc8c1f9fea55af5720fea4b54290579d595e22759f42a43cc83de0f03e12325484b793248f3a47b40b5ce10ed463e0b17255ad91347ee45a0595efb74dcc6e6cec6456834f17f513702dd42aa222d71d6c5297af5f4f40f47b98ba15945210f646cded0d9dfae6f7f2b4004e616604a45a", + "1c102ad9b646e114531e9ed5f1788a6e28075a2f9a3e9b04a12a72f4077105a5b0b7b064cd4a3b908b6832bf9ccf53fd126333ad41583429af43416ceaf60ae9f55b2b3f99b611e7316f1fcfcedc4d38f29bd96e98b428589d5157be87f9ae4c5749a74e70a2441539019852f152edf358c5ae4899956b2957eca5865e2c6f3227d17247c6d8a8ccd191013b3ea34ce1f2d35cb305632ac0db63817ac8923c95c9e26ff3ad8ebf31d35cbf652b2ea4929b02240a6447ceb0fa613ca54a4ab9e3dd", + "87b62fe1a704e060f9144def4f028cdf3871779f09426750e738f98538014f8c26eb1a916f86feabac6b67c5c29a4d15336ba4674d07686121bf55c5c65eaeca8a89fb0c5ab65996bbad6a00e467bf4cc3dd79d4d1dc752e72b0a0169d1484a451900b3121a5ac1ab432916ba8e31d18d31e239aa1c10043ac35a5f6cebf1713cbc7ee4f4f1c4c41e29ed2915d5cb20d732f2cfead9acc432659dc4ca922c448def97be560dff05e5fd4e73cc4555a29fdabc8282fd951496b9ce691e8d3714e7ff2934e9ec06ab02f747a6195fb973c36fcc9cb5b9b2c24a9eef3c1bff8b4356498fb37369673b1af39a55041154f54e36700f8887f7f59fd752071695b32509fa99ad816", + "161e0fbc5eb34b2a2d4575d4acba25ef5773c348ad7befd8116059745c7bc0203ca76fa8fdecd8e9649d29b0f08a9a4539974c362d908b95890d5df3cb116b15d1c5939f07d37011b61cd22c57664ca52f7a497c15911ab4f2dcf041cfbf81d05aa2d5d8699a78f22d1c159591ff7d7d192e2ec453651794afdd2e9d6a676fa0955b42a24b7ac4f79e78ac39423809b56e8d0aada39a32a2cc07acb80eafcf3ef6e68b8c94b8718505e2e825aab05d9bcc945847806f296958227a296f29d6975c" + }, + { /* i=8610 cDividendBits=1279 cDivisorBits=743 */ + "5a7883410a40338304224688f3ebad1cbf7e5015173d7158829e8ce3e3e794b55020b162430f2be3e24a9c7646b858f4df64977309690e33ef9c12c413e457e828e4c038181e2ae9ad166c8452aa31868335a69fd0e126c2a2fa79446b84e4908ccf84365042089560f77cbeaf41db42376dcc9ab39b94318cea47b58596040c14d4b630a9c9228f66f6983a5e42f559f6fd10802c6129c0b62fed8a6bbd26ff", + "2249b204b03bdd11f0090d684c6467f89a6cca7a09d4b3597493f70b1832ab247dcf4616e0c31615f317f9583ad94f9b5502ce899dfa866bb7c937f01d16070313613d86ac43953a570eeaa4a187bd0c6c7c8ee06fb2bfb658318a5df9", + "02a378f1588250047ee0d3c41a3153c7de2a297825ec84e1c8af9ed207d611c3f89ec05678e7a5070ffb9ed624792c207cc4f81d60c2d467ca389a197530d106844e575e", + "1fbdadeddd0b3c5a7fc64b5e7cedc2b1d26d2d2b4c4f90da73b3ae39710eb2a403a663a010e7137bdc06f9735fcff881b61b1e0173986c3e828750ab4979a25cadd2b1cc4a31e64504c5c3153d16de893a9864b5d658c212df2f210691" + }, + { /* i=8611 cDividendBits=1239 cDivisorBits=230 */ + "2b61eada367a531041cf8113783da74e1a1a68a8e553f2f974cdc5660499214d3b891cef379029768fb445610db979e3a2e94145fa90ce063a5721097465bd79ebc4565116b5a5c0381abc3fea5ea6e5c54cf2d4528b6ebb09756f358cb2dd5a4fec4c12dad494c91824775bc343dfa87bb0d72778beb9979e9dc07dd4d61ca8af8998eb3f9d5c04288d7d09194668f8396b44cfacbffbda53ea36", + "116dface9d8c9cb7128cdeab4b1531e77f98cb439bc2a028075ce92d8f", + "027d2fd62db7fb10fd19b74f91ca52c4a14292c6b93233c9aea983cf76859b483cb0ee76268f89ffb302bea7325e694f81fbf8022612195a9ab5a110183da39fb9f7aac9ebd620af7d298880e57d17a07ebfedc712d4cd39b2db8276c6be16ba5b5e53f48741760552a09caf2e4cb838f38dbae1d6eea10a6075755e6bc2cf", + "0c0ea5193ecf2aeb0b433749459c11130881a45a35eea12c13787cb595" + }, + { /* i=8612 cDividendBits=2444 cDivisorBits=1647 */ + "08f6fc88cfb3e56faa1b42117098ae94c22e5e24b1abfcdbc9cff5a4afa92b44adb996f9ccceb06a242eeda7f4aba9008c9a134c61c8870df8c46601f9556a46b49fb7f05da006cec6348c21d763386a71569cfec5e527d8b7b14d09e2912be1fd233dcabb655f2eb33e506201f31b05593cf084f87e2de1fcc1ac536c53e9742a8b0d8b7bf6a14212a3ec8b08707cc5d654fbd8e48e1cc86ce273e7d5b66489ba1849a1753602a4a102dc7c52e3cc9fbdb7090ca609659ecc347855617a38c0689a80b234c6c9cf79f62228a5a6bcf2cafec8cc485b959f603f3b8d9804733f964269fe8f7c112102a57672761cea9dd9c2777a423bd46ce3ba8356028ff22e460a2cd995790cbba9899c684a36cd18dedabbe9adaf671481329d9a23c8c4f9f715ba3fdaffc114c66fef9d2a3d45a683b6", + "2ad7b2b5bb5016965fb88f930d2bcf001ef01923cb19f203503003c065e6caa8bbdf64972367a1f49e0020a9101208511030f1df99073cad689d15463dc939986500621cc166c1ff62fbf87f77decf62e9c93d95fe4ab10570b7368b84358283ae4ee3b4ccb378423a3d58744d6c8b8af281aa975fd1d5e8718b266729e69a34173891d7bff9891a6f93ece78aec9531b73023e4b04aebaa420d5f52ffd7261fa505980dcdd0a92937150220bcf9d5fe64d23cd073be6f86c86ad5289b05030da301c8030d88675f55e4c0775e2d", + "359161c6980c5d7cc211fc69548759375e183907d8cb80cc85c7e9025995bdcab9818dafb0333e818c6efec4a320259921c4b278c7249614c9857d229ccf451ac3a587bb283611dffeca896e9b08e4ed47a2e399494992cf852870009726f86f0dde9bd1", + "0a5c04e7c541df8993c3155c272a246c8192b8375b068a9682a7affab3c00fa480e19a1fedb33f7ed7bbdb074c3153b61eca70a568fc03a097c5328a29eaabeb0590cd4d53edcfe9368db358032fc7a4fcaac30b476d1dc7616e808a1411c3d9124646daa5638e3e54aa9a942203f2eee1e72fb7cceea858f9733c0694d65eb0999b7292ce6d0ac680b7c0094cdf8677991f89aac83fc1658f604fa9d5603d4b5e575bf14d7fbc54aab8361e32cb0669e1e301a7b2d99f4a007abef2c1ce04b086d6c799248c1af62524ea2761f9" + }, + { /* i=8613 cDividendBits=755 cDivisorBits=735 */ + "0192806613a40034b840c8dc6c2a79006ddc907c045862a984fe339f084924863a17348a61950a4395cb92c7bdf2ed2a44b6841bdbe3f28742a14188bd8ab67979d350a322596ef5e47ecbc4e53b229be283e98d63b10348694969299f62d7", + "3bb4d419faf972d783658c7d5ae166dd89a8a66b8c99eaba0fb4a5a2529c826f239cd4c7e21a82e0c69f9e9054e52b38a807902d93bbec2866f2528cef0600f84d6651f66a6c6e6bcc121c5030ef5e1c69b71b164b308421d0b7c684", + "06bdc9", + "0be60b774c06e52f6e082eabd3515009fd36fb882203f6490a1b76090e70caf9ce77a58d18e06eb544f7e78e4e1902cd376893b04269f7d9de3b13735939eed1678293d8c2b56e1281e4a66f42cc2b43bb1a33dc54f9af75f4ad1133" + }, + { /* i=8614 cDividendBits=628 cDivisorBits=577 */ + "0e0eff1d50d9727b929c798fe590f2e186c5bd63ea3ca9c19e583105ec715bd2b48757417ae1be5645c3a1b5b9c167ccaacc156bb3987b58aacbb3634f41ecbccd2327812a3020a1686f7a804581fc", + "01dc6a9080f42791ece65ee530893efa9ea939bc95e4f88a6cb95ea6dbaa219129091fa80bf2b7d11d82eb52b1c27d3de6d309c10b7f10ede50f901c1beb28d2304c3d3e0f0e4e8b79", + "078de74f8cb70d", + "3270e77a8fbd3f81a5c5c96eb981bdb336c2d778835ee83cbca0cb7f4f4d9079ae40b34a829dfb29aef4c1a5da4b072c0d1bcf68dd0a47da84a134334f0bb6eb6948f64f0368edd7" + }, + { /* i=8615 cDividendBits=10 cDivisorBits=2 */ + "02a4", + "01", + "02a4", + "00" + }, + { /* i=8616 cDividendBits=1554 cDivisorBits=839 */ + "02021c86862e560812296d4d32f0219fe9de15777d4c53960dbd384d8e156953893d6693b1115f588667b955af29f363f71d3af1cf07630a704f42ae68d8d839c78eb87231d1c1abfbab6b6eaef929b42a237e068dc4ddebc3fe61a6731f91072d139dfad6a14a0c6b045eabd26a5e54e8279c98d84ebdc9945e2f481f038a00d60001a0392ee910afbbbd21c4d2d0f11e455bb947dda28610be1f4bf61847dd6e1b8d142383a7b326594b4bc15b9c083910370d01125061b5ddc4a3975821003040bb", + "1fc751a4cc1aefe33ede0eea346fadc934f949722a31cb868f80741c0a8372e83d478242ecaa5612ddc2dac23f831815b9485f8f4dcb653248c3e712f9b67a8aee7c3a4420b18428571e1d7b243463db74413e87a7aedafaaa218bdee55794762a544ea1b18667c159", + "102d8c0f11254eedefa11c174a7b8ebc1077d6d439d5c47281efa99c795e97554bf268e538c1c62fd502cfa02f1f21ddf1ed8cbf3f98ca47cbafa9d39286cc33ff0c23242cbaf03179cd539b7b97abc6157ebfb2cb1b73943253", + "1c7fbf9147c8f1e21435fc38cc8dd891ef8deb5bb981a67409756d39c8d1534276fd58a05c0aad50eddb7644ce5105fac88d71da663cd755c3a252f8eb1cf9e206a6316f59a53ac69dd2f35465e6aaa360227bf9fda7135cd8a0772903e22a11fa6e5cf81866552ee0" + }, + { /* i=8617 cDividendBits=1352 cDivisorBits=371 */ + "72cdac88f055ba52eaa336a2783b0bb738120c10e46f783a7011745d0be5dbabc5146e7797cd90eb31e7d2a097df9be7e817f34dfc90b329618d311b6880dec3974b5f21cf1fe08ecf80211b00b9b0b00dab64dc48006fee7b43422190c0f2373f8ff2921e4ea10d9e70c4e0bef30376ddc28c66c305af0ef94d52b9d5b1ad16c3405979d4aed5aa8cf35b69cf5c4a36431e59e8499c7a5901d347fc32676fcff36e52b6906c4ce280", + "07cf781cdcc4f2517d4d95b869df16e73a62caf7e397f7fb171fbfe0f94f878d258e621023ece98eb6b952dc800eae", + "0eb2e07ffed0ce8eb25de6352bcbe1a69f71d34ec144300427092e9bbe7cebc91213bba412ad01dca65e32239eb3ec9135dafc346ff6b95a481794d0e103b940f5ddce0510ece586180cd64191d187c5721fd2f0261aeffeb2eb95d6261c6955a1ece0da4bc7937e3f432d7553b3dad83e3979ddbaedf21d1403a6", + "04bd9860ab878c06e22568fb1696b023450cb641f9875fe2642da517192dc8d31ce84a322844240325e019157f53ac" + }, + { /* i=8618 cDividendBits=2077 cDivisorBits=770 */ + "0bfafad991433578408aa153909f4cca05a09c7981d12d874c50bcc35a2497678b8a84ac70c92bbcbc07716a4aee18a62093c862eef5096162764683f729dd72f6c43dbabe77aca3c1cf812edfae0025c71b5c0095bc5b35a3fbab3b4a27d484e171a720b202b0b4241f3450a534b66d8cbd5b8ed01accb1898a884bb28c46e20a448503101a66ec0a98b18287e9eecc7c66831d8558c7d9c44328757fcc9aa0887c4d7faf90fc21aa8765899561a8f92b221b0fb806bb23501909643c43b6e23f8d8e8801ed18958759ccfa4aa5a3505be70b81f14b5e15163bfc08ae1b0b29a8bb93a1c05d3943087e6de56767395107bb328235e98a7c05aedfbb13f6070262bbe38f", + "0129f57f1941ba107e3482b9d21b3dfe367618254ecb6cbd63e2878373f3019bedfa797b5849f70bdefce1644afdfd1edeb6726b6e0da5a2fe79c2fe359aa4abd268a61e5b4481599a3a108596fb2b0176f96a4a6b5d235c83b0deee1e13261e62", + "0a4b157272bd9d15c0b7e244396ec5c550a72c95856391da89026fd35a77e4c25d0b0cb4cf59fe1d3c70c14a56d7bfff368f551caac27069fd44050dc1986cfdd10bce1ea66a78288ac926e34c642fc99b9c2ded8b2ff290a80ab85e985d3cc3a734540a588e80c4973d78156790776a39507e231712b49c67d81511740a76d419ed87e483333ff12ebfe543fb0c7a28b7f244024db1fa0f89da39f8bc185f654f8175e2", + "fdf2784e0bf569375ff84258cd0c2194e489af1dc11f2ecd6c0fa4d7e102fded9c4859284316c113d6d77e000d22169d9d1ffe02ac2067eb92d064db4ce650cac65fe969a78c821b94ba070c5c58fbd5e233b38c1ae5f20642c34d7581d0470b" + }, + { /* i=8619 cDividendBits=467 cDivisorBits=193 */ + "06d58f5d7ee33956fca75ac75ccdc182e561819b04b8b12b28400fbc7c7805624b6c01dc01901643d582a41d594782331ca2d819d6ba25480e80b6", + "01785f9787b88beaed8690029adca5d22de08338398eddadc4", + "04a6020c7ebd3252339e54b5ad78495f56dd2e30dd4775da7e9a8b7808826eb283ce4a", + "f2827e4cc7cd255f2c888d2a5566d1988e41b81166da8e0e" + }, + { /* i=8620 cDividendBits=821 cDivisorBits=739 */ + "09df62a909c5bac927af21ff313dd7edeaaca6a4f2ce83f1dbd4847249d69d4ae588f80ddcb3f601bbd3cbd67089ab03d4704af513a58fbbeb84352919868984691e0352549f5fcb533ee74466e5df1d3aa5fc9edd8b0804782b449888773a53e5e6407bc59015", + "03d501ebc1df0c1622caf7429f851745c1a8698e28cb3e1c934012863f9e5b515ed4a912e9ef50df2ab14f66ca5684112d381e13c11576a3dd9b92e46306019f0b4005385d54bd4824bf3a7af419b106de22a38ed56019d92a8b80e9d6", + "029389731ce1a56109c0af", + "a4add77536be9eddf5560822d47906f4dd889b0a5130d8d3abd3b96665ebe8df2816cea74514121d6e7d77fe691440b06aa8fa80e8741297cf293e5d1317fffbfd09855f8e914465f726ccd3c10a395058e7116590fbfc7a20bf36cb" + }, + { /* i=8621 cDividendBits=3343 cDivisorBits=2517 */ + "7996949c18c9ebf6fef12cddd27c46450d3cea60fb4a31d565e477f2f3e4f18adfb9eb93908e69ed34f627d36b6306ed409d721634398c187f06cfdd1445cf5c2e78a2f9e1a903e51211f22570fa1e9b06e87ea7adcf9d246f255c61398d9453d13eb93658ee691a8cd76c525d9c73794918cedfad098eff4a17420fe19ce7cf6ba104d78251293856fafd7b96afe1586e4c440dd23082f608f2025bdec736b33aa0545b17baf0aab2fc98378b62d8669c5e4373934eb9bff5fa552d698ebb6e48b32b5314383ac25626321636ea8715c902cc6188d1d4f5be3a4e51eb12116f24909107c29705e26e7938f0c43c062cda4d5247d43d41adef20b81040ef81703825e5de001a2a86df19afd360469795cd806fa36afa36237983cf88de3d6ae376147815cc2ec401f3975e781ea0cceb4ffe82c3173e4e41179e83cb4b2b8c07359d26f8cf7e0ac1195030893a153d602a0789c192d1cc8d095aee30ca7db4454a3ec4439b4f84dd7c4fa6226d1cb614d67eedc0eb8fe49c9fed96c14936569521bc46c8d5a072d90bbf50cf7e280175b0646d44141f86896645c928fe31ce689973", + "189871340f102724e1ab7250c811d9f8daa0b0e767b8c9ce5fa69c8aba7feb81135808cce0d6ff359f3bf0105ca05033a33f33a86da674cda79b3f601faf9d157309b5d25828dca7200398cbdb481a46a9c89dea5761b74c84c59e5a89509d67ecc665e7656e4d065fe1bd8a8aa8c16030f83a09064338a9a8215b13e0bde560af1b7095da3be9512c5c72feb409d22892e6e8fa9a5e4b9199c0dba73155709fc669414654b707be36623d286e9d55401e94bcbc803ed7b0c56aad3bdda5b2341039417279cde0b87cfce90bcdf3a287fb250e3e3030238a0487a00293c8fd29a55aef19543bf1c288f47374a82b88e8cebd4e12a5158438045485a0f93e3f9d66a9d5ae2b1d3883d39a6eedfadf16da17b8ad00a61a66f0a4f25d5abea795b9fadfd309d415ce37d64bf96c23b69b8c9065fbf18bfa35fcac5eaf", + "04f18a7303a2ed5a7137a7d01ab5a715de9f3374fe56c7de46fad72c75eeb100f2b8ae89685d10be6eb41e4a45bebc1a17e9d1d65c66dbf545da06d7a78a361c7ec1b1cd2b10ea47e611be7c939b028a224ded0cad069f4984be0c0194249ba0d7e7a786a991d4ac", + "09decb6300533e49ea047595f11393e42372e468860993b4f21c70f40db1f30ff906f92fdf9e7b6d455b8cc77a855de81ec812122fdf7f59655d6336306c5e1e4f3299a661775098c85001ad9c24d0a372e6bf0f87d41fda2d1523b800ac1e4daf10798965cce3f885c9bfbec311b03a996d8811287aa6b26abab7d57cd6543b5bda72e27b26413307fbcd62e9e56be52bf085bc9d74e9834a8001550114e37d357253fdd9b4828b9a0a8b450d3bb0db4752cce8aa63ed179a59238afe4b755df0c660f6dc03d0448ac8aad547a278aae92dec9b5fca99881e9285a074fae1637632d8d81da13a3034948891ea96b64195451a1ef16dd74a04692202e9b202622abce1d510906e54d80bee4da377bf3bd497df6cc700f6dbce7f7be525bed5cb480e667f5cf8c81be950a7ff318dcfc7d1eefc1a9f8bf024110fdf" + }, + { /* i=8622 cDividendBits=833 cDivisorBits=122 */ + "010f7d36c9e9d5dcbdfc2a922ea85821bef536f399c6a56b14a0589f71630924021d45be4f116cad0af92f53f7068441a25791886b6f6c5bbdcd45fdbff6be540099946086d61d47aa2fc732405e9c6790bc21b408da3f62c57e7eb2947770085fe14bcd6d9c4dc235", + "e88dad4a5ac871249324bd42296288", + "012adc7cbd22ec66b25204bab9fe97c89b6f8316af980d5ffeb2b0b32f60420cc2d9762257f98234439d061804c43c507c59c99be3d0b64ccdb92e36cb7421843413d8f9c0aae9d024e16e988e21b0c88eede8f454ad73ab5b02", + "5f7b98af6a917247063e9e791ca525" + }, + { /* i=8623 cDividendBits=2340 cDivisorBits=1236 */ + "0bd8246bacd354539636750510b6f4f9764343eee57cb41e2ca7a671767a4fb1b79cdba553883d64797797988306164c34b93aefa0083aa51a41fe654d98ccd36771ff228a85546d90c07fc2c5494b9d1ee6f27169e6e1e3ef392ebc7245b151a31d8d8b83490bf93ea1e61be7de9d69e86ef9a7b103d54a8cf5d98aaa628cb54679545e1a3f5ae41b1d72f1e54afe73836ad5c9e8d729e8ef4fc7dc651c3b78305fc493250c8ce6b314541218ddadacefa5392dca55952701f1c2604f58ec2f88743c434458c562b3cdc9013cab053ff20d68d88669f8d5e3aac0e351b08e84310bd4c8f94d4a38fe5fb162d47f9ac352a3b1d55eccaa63c22ccf96fa7f2ed1ae0477a32ac8b5e99392e3df4a0d1eaba2051993e81588b1e490831c4817c3b68eed9f8a3b", + "02d9fd54361c74fbe18c3b2286a00fbe67475ceebb93cc04919f86613fd2be8efe70c50a74d25fbae07fcdf0950f92b2f287841b0b599b48c6b649195129f9f3217ea5100af52465a7331731e818640dc030a982105b4b271fd0170406c70c379adb1213c6b1fb597f961706508711688d74021b4e7b08357fcc8676eab55e2b1a7e50ef0d08d6e92e6cc24059107f897f075c0bcb6f0505805247", + "042757805202a3bbc3cff135ba79bb40fd71a97d4ab7217cdc5f6b8f9222a27421661c562751d8b12ef70bb334dce0da6fcb29eade01708c526b9e2ea6d168c68cf9dfc67e7cd1e8c0085771908e111e74d560c1e51f9575470c26a919dcbcb4d2231c2cbe3e60c72f4f323fc0b5112427ebe1aa38b53cad08ede5d633fcf3db2fe282549b03b872459ac5", + "1c59e8215d5c72c5079926fbbb4591fd06cc7c8dd01c52822ae823731f8aa940b7597f51970fc8f961a18490409ed0d681a422708bb24bc07d7c08dbc06670243a301cf6fa53f0b3b99a2279dabb0e1ee58a80dd17cf2088b5929f77761183ca29fc48b7879837296cbedb033616cf5455fef54ee4adf88eedb3fa7de273f35ed4291e6037679c3c873e3b97cde0b8128da9e871aa20b53e8398" + }, + { /* i=8624 cDividendBits=2142 cDivisorBits=867 */ + "068f954c3f9eabe6b57eb4bc24a44bf290878fb23d19398f862515755d20cc9dc1f394a360efdadd76b7e294c2d20e4c1b8068881d355b6d277ff702f6ccb6c6d16f4a46f9b0247b4b0dedddff8c7bb81125a7a2258918136632982ab318d059fd1b6a2c341ba677f33f2373633a6aca2085aaf75792f1dfef5c77d5a11388b7e33a0d376493cbc9e29ff0bf6a97f3aa975788b1894d4e76148f1484be068a6d5f98f13bcb5883bd2bfbf02877552334fb8596574cc1eee3a70de324b328f9fb8fe2be35519da2d74b6129e032b1b68b66e157775443b3a8e81315c214123acc24e53be6530ea5b48e8d88b95fb036b01f9f2811005482a12f567a9cd316cfd0ac0731f1814e80c700ee892c", + "0414fccf20be7ff1de226822eddeb122b620822c1c109f8304ed8348492c35122a14823d7c482e51360d5f2cf7da92c84c95daba5a1530ec65126ea32175b815c7a737229adb19526c41a79e5d093b71cdf4447d37947ae6076e35a22a63e801963016ebbad581ba6403d61c81", + "019b766d8cd8e0af441d26be97b617a32ecfe7c0151c7127680616770d1f75c26e0e92a0a5e6832582f23de1daca9d6871d946df3d3ca812f6311ad19e1aa98e18a52aefc54c1f62a6a58a378224bc4deb5c33400c1287c246eb764f4429339424480fb6e1e9055dc72d5504ffce0490e9f31bd8332bbcd8cbd57a4231530797817b17b4011fabf52530f4cad04a57ac583102cf55acd005928046c9554d3a43", + "0137510203ccb83e95cdca0c036466071321d52e6ca08b02b5d0287428e137137966298a1acb3c18ba5cfd5d916440eb176522dd2293bedc624beb2ed5f5365ba999983a4c07d4f9d27484848e1a676132a01c2d4b9e893b91ed7a2b13bcbdc1829680c95b955d299515a2d969" + }, + { /* i=8625 cDividendBits=2688 cDivisorBits=1707 */ + "9ff4246745cc38b0655fc1916ab5e669fa74c512ba3133defe6259e72916490c2591c7a8c17a2b6a9e95712b46215b0d24dbd775d33f551d5ed11824e7d9e540078720189ba9e2eb44d23256d330a2bd480e0bb3e72256716275b9a6a8ee6cb4b3de8b06f089ca54e4f49098ce9724214cd70a996bc9e0cf59114e3768658207527692bb33051e07dc90c716ae10af23c69cc56ae2e82c4b0e7643e7e3f422d20b46e521a92aad63702fb6a59b8f4a509a0fb7f8042a6b1f9e9d24bc50879c1d3581e39d71c547904ba9501c987e09b14a33b5065f411670798d23519c0a3af8627066be6b9fd2f3e0ab884337255779d295129a1569ff695a0372670d2f6ac6830e34e115302fadfd1b61262694ffb7ab62c001643d263c8107ae9eee5733b42d0eeca0aa57efe61ad9706f934bde17b68848f225b28527ea4eb514cbd0fcbb11ca711d49c024c470f45d46524abd52", + "0357818c120f34994d1739b15d3f2fd83f5ed2d340d06dc54226f8dd322097557e96dd0f84ca48ecbe59e599a345dd9952434a8cf80a5310bb9e5aebaad87bb1fbedc01616bbbf37ca19d0ce1d1b6868a3c48eeb947480d405297b1bb89ccaade35bda846bf816b35dd701fcc6d032a8c128b54f28aa3a7d20a11c023bfd76804f82cceb5f84760b8b8e88715d9025a4bc3c84e8bf881f53ea03ade4d182e29f508817e60df4ad8692266bc79d2101d3e11dc4c25a8de77c3ef096683eacd60cf829b85f2385f57eb341eaba4c2cef7b6064a437e699", + "2fdd3e7f1337f229cf6c505663684cf887aebf08ab5a7cd59eb007e9fabf802185edb112c69e511e2aac2ff6a044e2614a85ea727cfcdd33d524ac0ecd2d4f0e62d78222e7fdd81274fbbfb33bf3eb24f062a7662d616bc28a22f544e09cfcd4aa34a4defb24e7536b5c60e3f12aa12f7da7aff038001390da3452", + "024eac90fe7dee56aa4609160a130233d0fef6f70f5e5dd7a0ea7d4baaad3523608bd009c120834bbf0a03cd9af67a78a22c53df28bcfd44dd3eb2ef43d20fba7587cda12442f3ac2b81519618d148440f37f108b3dec205dc2cc420297d620762bc9a1e6bc4b6fd55c65e5720537adbd72fb0eae5f35b61d854c21c95e4f8d077840530aba16a5d461aa8afa69a22b036c744ab2f290c19d8cc125263b0ebc268fa86d4026256be704c750d04779649e30f68129f1b93d1bc857e3210a428bff24ea6940a93d1ec215b7e275af8e829a502ef41cc50" + }, + { /* i=8626 cDividendBits=3596 cDivisorBits=2669 */ + "0f8e20695ee9d2feab5e043affff523593489899aec98fb6001dee1dc5f5402730803543e5ca80019146c6e570afa959fdc3359549492c09938434bf2b9e6945da624aedbd3e6b97d5fdceaba0f459b2b1fea111faaaae582c4f754423d0189d6edb41a1adf8d01d3bc8e8d50d736caa5b443d8e6d5dc5eecf618ffffe40a303a9fb553480c2029c98ae1873b1682068527872aed4d5a437a16cb05ffbb9995b5eda6172711afa8d6fb869d233f0a94b14469dd7d6411df2000468aea446305e311910da6c886347c9cdb20d6266e0948ca14bb22f69f6d038eae527e61fd1166f1634b30aa3c4f85d739188d032d5cde9a07711b73585abb15f035c0cbf17d0c7849ae53b34b5d7a4167e87450b0de748286aac94ce024d5907cb5dab64ba252c844ea1965fa0cfffc163a82da634f76a7a64d67b0602e6eefb0d55d9b9d83def546cae86fdc3c37f8068f89c8144a10c8832d0109554a79635a05a19c7089f552b483e7789d05c0ee4563c96e922c0b3024ea9bf934d4314d908ef623c548484f6201f3bd250a41d336ff0792fb6379c5c34056ee0ef10dd1934a8ca3c06b503d826103c120e8daeaeb2c24b706a680600fb3d856df2b22649824963912adaf3d3", + "1e36f373fd81c733c58ce8ba4f858bffd0546f0f0f88ce2a25fbf40a45eccef93d9bc4fc5dfe479d3f8433bf982fd2429b583101f2a356d8645077ef73a9fe7e745a58f23b8fdeecbc9ae6c1c60c42bf5da34ac01ea875643f5d6704eb2cbd03dae301fabdfc0e637147523085683ceb1f1eaf9b58db216563d840aeff1fdf3094bbb084d0e22d8982adbc5abf26ee0b2a77788966bfd192e57534464a5516b37469e95f51c016067c08088d13a40a0f8f7e7d0e2f98e6b16203d11e8cd602467f10a89e93c5cc83df49704c9de50adfac0d12b4437ba96a42cc4a48f522fc5c3d7312525cc02cc939bd7e6e2e90e98269d01145107e528f6889f7a8a4d4e82dd92c60d767657dc5b1be4c93d39a0052300fc39d1af6ab9896794e2f476d1de72154f06de127bf760f97dcc78aa2840d0351ef5a53eae1f426ddd4b88ef8412d4af2a82e1a797a9a422dd98dd52b", + "83cb67db131426ac66b1123b86f979b920b174fce22b5bab9d03db271bbf28acf626fc8d2308a334b381eae7c31492dafa6658dc24967808c21bc09673e918514ae4531a16a56f5337383bb12d4d4d025040317ed1c22b9bffdcd529d81a788826b5721d55cdfa7256ad674ede605dcfbc3b1a0f", + "0dd71a4eb3ffaa279c2a4395bf06867b581845116e497d42a5126a056a01b493db7caa2c7173bd733ab79e6dbe89dbaa895c43e4e54c7ad2d8d600bb783d4549cab5ae1b56c2ed4c901f091ffe7816d4849c28af93610c12669ab50a4473aaf51623e8ea00800429115084765c7ddd9a1d7632bc97a613c2de494fcf68a3dd8fdf33160971d09b1cc23f5eaf9d8e14704c0ad7f42e127fc1bf09c106738700eec5e7e72775a9ae9a9707ae65711558563efe4930e188122928b7803fed77733b637d5fcc01793b6a2d2981498fcbf49cdd130946842c865d99349129edbb631cf80822b79c4747083c3d98f31099340bc55d65a5a81138753fb96654b2d99ccba151472c3d1ea85a84e2fccba42e2f4c43f4d17bfa1f90c71e834019582e94b89b49c942d5a0a974d47cd9f181527a4034eeb338a8edfb46ce1966a7e1e32a4f62f37e9ab95011f191c84efc184e" + }, + { /* i=8627 cDividendBits=1657 cDivisorBits=312 */ + "016a3db097a44eddbd6972ebeb419cd581b02f5ae534179e26a18c627e388d8164e5a248818faf133136b921b936c9a060af77490a07968180155c57e021c3c0f88d5e9c35e436c8a016fdd7dc8a450ecf02366d888b70b0438adb9df6983efe393e303cf42d9a411d37ec30222464b82061ef52fd65a56df3983c957fb6b9d1ee9d01ad89fff12546ad54ae6960bedd24452a76af7f140597569d2876a1be3e8be66fd13c3c11131905463551d1483066c64a56097b1661f65232263c0f28e17c6e9208eb0057ac5683a6c9eb9fb8c9", + "5dbb43c7a8e1c67f4125bfd84863f13084cdf74561628ab0dad2744dae8a4a8c3ce14aaa256164", + "03dd5ac462967a25c24eb0bee349774e44ca63d293248eb2bcd735f6f68f6312a4f7fa30ef6547113a9c62ed472919c0de8c13dd5daa393d144c3cd16b56ba823f05bf6ba97476c6c416980ac5a91d6a5aa343f06c53c8b1b7ac4b5c76625287c6d47fa6bb70b66f5e22fbc86722668946032a66a03b6d4708048d4e8916a6d95d24572cfc950b13f1f1edd02662ba40afca7caab6047f53530b01237c56964a33c7e59361f59f58e0", + "199c710d04a38c6609bbbcca3f6fd402b57a9e48a8fb2e5bd39d55af8c8ac1880d14a800542149" + }, + { /* i=8628 cDividendBits=3254 cDivisorBits=1263 */ + "1d44cacc8df6fd3f1abbbf0ec2944359407f935419dc417870b7f9a742b40ff6dd51fd34e3ed59be5371304358f336e8438c7c9a60caa9e84737133b0cb8a74fd1c4947dd3bf3ad26d19ec331ccc4c21185e210ef3e5c67c80413df15e332dd1d2eb89eb88bc0d809242701e3718319307b547ea00abccc633abbdec92fe3724e03a640d116c5c8f237f966d7ee4a21949f49bdf2a9f847bc3643232dc2342a2bbdb289b739667544b5594bc8a9de2d10ce0f794685dcea67964fcd711c8f742893061991e0b5957cc7f9e49fcf90f52b3e0c758ae9775e481d904206006c7e16a659d181d387e1a3e95d55de3463c3cd152c8fd6f5c73010d5e55017770f142150072e324a57ea185b1c29c49b4e1b50e88760741a5b0c6730732aa7be1be51eae4f58ca023525445fdee614023d9920244a0cd3e36b7620f506247cd74fa253fbaaaf9fa89a1d4f0af7d629a8801c211f04cd149254868e6db12dd53226d34f981bda8929a703a79238a8ed1cee19126abc96e270a291b7315e9e3f7187cd533512241d0ec35c86cea7ea55b1c5f8bf9c31dd8b39e9f", + "356c5ae85cbd77009a7720fcb5c79d929b78250508bab1cddd12b0425452bce6c6feb890addb8bf3f1fd3e8af2f63372331606a33819620790c7ff991b65878365505220095bb995efb1c968ed32d9a39931f4d2ac586f48378ff52fdf0f0244985f3a8a7e527090257cc8d595b7d626aedd1ad8d90cd7588ce7e62200eca687bf638b37223e8d69fd6adf1f64ba0a4205d5207fae73d071c1965e510c9e", + "8c40dc67ae9aaf957f67137026c0cd03d288f4740195056e0289d68a4a6a685dd29e2f1bfecea06b9bc1b72e5f30604528767855fce7ba2ffd39595a82aa2a2d353d521e4d4a1e8f72fb7fc60d9919743c96aa9f5f7cd0cc86ac8bcfc318fbbd75e542ab60afbf2879ded6a9163d3286cabcf9c09df37614f91731e6c69c0586fd24b11545d0e555b2511d5db23d5ca75f16fb5968fd5627328003ba62219591c51c2d436dfe6f0acb870c20c7fefc190c0b590f1982766711f1afe5c0257ce1cbdec2e6d976311a99b2e5a5c9da45434fc333fe63642d8167f7373ac9565d47917afccb7d9fa6fb0800ef0b1b472e906d7382b9ee4f318282", + "2dfbcaa7194ab6a988e4177e9c557141fd0a5254935603418174e5606fc4fdb7f8db877408f0f656f39e5b6409d84021fe38778cee05bc60630e8612ae366313dcb0aec86f780f79d98eca108586d1385faadd13560e571d321d7335299bfdfb19766b00701d0d80333cec2e659dbf9da178324939453761b836322c1bd94cdeb970d4e21b9969f9fb81e95afe0c9fc9b7a67d0e8424d5501f909ee4fa63" + }, + { /* i=8629 cDividendBits=3219 cDivisorBits=157 */ + "01eede43b7ea186606cc001ee8f84892b86bd1a2085153179663751aa023afa8a23e9b42d14f5d41f9b60538a2286467bfd1e8cf1930cc5beb043ebfd4c0e8b44a86744a9f77cfe1e6c2645d64be216de159b872153c6a1acb332c4f9ae185d13a5edd79d9817f32e1a1c19ec3090bb7e608a2b58bd0dca7097273c39a27f4409650d7ab96138e2a09418881d93bd96afeb01cc66169d033a3f5b45d04d84fca8e614cb970b73a33a3cfc1b9eb145d5c2b20d0780506cbd29a67cf6414e731e48e178de22885394d7cc4e9bfee5973e33dd9badb77abd12c9e3cb8f998947c304cea4c80a8c5895fb61126a1d630cec097954c1ec164853d5ed1e3a8212ed1abe11b2c968fa3b894e4e9acb4c75ca0e86c935fa981e69802d1405c64280c1fff2dafc7bc6e39aa4b798c93c0ccc7bd192ed3d505749ef9072dea77a32832a1a47124568359f3c895ae6c74656de05e98b567cdb5d595dbf2a4e1e6f091ffc13f5f38638ffc7d6bfc11bba8c1ef5628120a7ff6dee37528e0b6fc73b719c0000d688a3c74cdc9441ca1c86a18bef1728931d216", + "0b5738882ec7b084b1c50370f8ef4e8cbc35e141", + "2ba2eeb42d05ecf951afe7f3d53d2d9f203ebc469dd99ce997626291770afd7d0620e12eafadd913c8dde4d67ff4fd006ca0445948edffec841a7bd6717052d10a6fbbfbba2655e02574efae3a3c1926f5f5673deab4dca699e59fc63c86a9fe9b748bf7ce85f8ce4adf9b84621a607545a38221aa6507e7b9c8efd6f20e978d6e4a10510fdae41424a75de78e727eaf8d19d5b508d43b619ec245c8b7a8d1df047b1b4fe8684178bf21e3bb0a93371d44deea475f6d72b4710ae0299327fccb9e6c71ddd5d15eb48e7aa001c23014072909776f251fccbd02e623718d1ee7729d80ec59e4e26145a08d9195ab45b7b3c4c941f109976d89b1e6f015337cd1ca9347ef9e58e9f967a68dc9f631d85b6197007ade7edf343f0c364fb7469e8d1bc0fd07cfb7f4bdb1ef0637f1d45c23ec579ef904131049b483e4b382dbf1f1f2370a01f06a868d418ac100a473139b28c5314850648724afa3ef95c01292b5dbde5ec43c9612a608bdfd783e06513722d35a6d15c8e171eb907878bca53e5e", + "0ad91f9de2ddb7d4f55c4bbfe685159275f65e38" + }, + { /* i=8630 cDividendBits=768 cDivisorBits=132 */ + "4c54ec26d8fab1139c38b3f55f80aa8a32baf39dfed2869e86baef664151a4fcd364c5cc6bd37c258ebd2581711f38805edacc184cbf4ceef4a897cff01efaee1ad4aa83c3b98a230efcd193ac6f5b73d5ae13b5e33b007601061cfd6c000114", + "076b682c5a0f6b9043a375f9bd9596a605", + "0a49b44bab7006eb6a5f2b0a11253cd20277eeb624bf3e887eec017b844518beeb5acf63adb984885d6a61f66ca882213ccbed75f57f898c8f7b0addac404cde0ad123efe0e0030f6fded839bb716542", + "b410655c80ec65af0a2aac367c743aca" + }, + { /* i=8631 cDividendBits=1897 cDivisorBits=1603 */ + "e71d0b6e40d71c7b3f2d4b9c37928fc008d80d8a4e83feba62878365e5e987ff9cb3a7fc19ee45adbbcbede99b8706767e7d2a43b5f5207bfafafe67f3067bfdae6284159bde1b080bcd5430af01f2f810c6e9e7aa003b8a66ac6dac034359ad690ed5fd27d5272c3bc4373a271f0f4b1119e52f759e82b573ae339d6069db1518803b4eb92f6b652e0d016878f889c0a1d6d6921fd5906a632a9f6f710c1526c085b10aa58071040e7d1c3df174970af0e3b111e4ac05d257e5b640803db6f2cf26897f6d53b0d2ad43c2c591ac460b5063048cc357c1d7b3566f032708df03de22c764822638bcbf246e5557", + "0700d64447d9803031e2256f7a0d152526f13f305c6eb7a325a15122bb3e047bb930b6a2894d55e18f8f0dd8e4bced60edbc03aa13f824328e9809000516b10ca64a010c0515a5fa9e0bbde55fd5d2a06537cacf9eb8d4fa1d8ad243ad0df97d19849dfd7c5b576b6c1801cfb3454d55fd1b53edbf789386b9b2461697f9d431c6eee5bde58e17735ba11e2c2e31f91f50a3fd226def951591a5638c238ece2dfeff2ec200816169b0d24700af74580264fb3fee18dc9b681423efa2ae6b307ab3342aaccd3b96b545", + "21003410c5fc2525159a2d7e213c2730c5fd07aeaf69090a68e739b0c54ba45457ad0a411b", + "03804ed0c317e3f0828ce4ebfb93623e49f28f838fc7b158d5798432248869a8d3647decdc5c8886a1747b3e8c9200c26627ae4cfbc899989e1364157ababcf1ab18e4fe2a689f09d65f9d8ecea10d57983f81288dfe7fed0b370a5a83706ffe2f19d63744c1be3e765abcfe5c5d1cef26d068cf3d682262db5d4d7df6deb722e3dc7fcbf246283a1bf538c4d947e0a729184d323bd3e6a8c7d203b8e8620e68497a201018d0519f0a1711a55999e2844195850e0b82178070d1618867fa28bfde53a8fc22e1d0b210" + }, + { /* i=8632 cDividendBits=1037 cDivisorBits=381 */ + "23d514cfe13a6d0529f499ae97a2e53a267204ef5952e610916290aba3b99444b6965111ae49e670781d57f83fb77051641ab24ab7e4abc45aeffd6a8f8262680cb5c0452e303800456df3c2506d3c7fa2c31921e2cd3f571938a028f80a2d1e75b92104dce7f6894f6dd710d2ce179a5c4de80b1a2209aa4688b044723cb36b9c", + "1e39ff03632ed70fe23d737baf15aa17222c458135e77a623e0ba2313d21e8514618542c0521b89b34e5f602512e90be", + "012f7a46a500f0c6d57e9673cb853cfa677efddae78860870b7e8e11ed005c6bde84f9265d41eaf6c46c8eea8bc12114f1cd527caea6447b9285f838816dbd0cd93d1409d76f89c6ab3847fe2e11e7c65168", + "1b69ed51093077c9ea6f288a67b361a79a117359fe70cd62893033e13662b6b0c456b6237e0a59fddac408942108806c" + }, + { /* i=8633 cDividendBits=1142 cDivisorBits=1082 */ + "150d17a52db874d83e14574c089cc4de3f5a46b8d1dbcaa961f30fcd4448a4f74a644d8fa4ad252b6c557c72c87ce5ad61ee17dd037065343f3ef3ecb0b146a1a1222e33d8581938548503036992bce19e297c1e89e828c61c6dac5b66746e08d6d776d3b1e2968a9251b124c99a88b2266942393f88764d1904b9bf22c09a38675d34345cd1daf2344dcae6f89bce", + "01953b447da4b9d1f0c7a11220e7d670c4d1e8a9f0ca95c645a2651ab91a022e0d39c8760f148645b63b051796dccb34a49210922b43e6637c018b49000e3e1dee75dafdc5ff3659567edf5174ae8f9e225c35e4cbb80b5738c230c88eb2b83dcf48a9c9edc09ad52b50a71d0d3c9dfb59c321f89b9077ffad740991b3a4e4fc2b5b6cc570c0e58f", + "0d4c7e13c5116d46", + "badda60b7f626172547d855e66ec4c21307706b6336345fa465f845c999fba2a441572bd9695895c074d432664aa7a59fc65d04ea6e828aa62e1c05c1630390709eb568d8e209d744ef6a91c13a13af8f8a2e2f5913d71de04c76a1ac827e6060e8bbcce2cda289364d39777bbca69d88f3d4ac06222f459ad43fe15011598484225b8a6fcf3b4" + }, + { /* i=8634 cDividendBits=1958 cDivisorBits=1462 */ + "1b5f30b8b13ec45d465adccc54d0efba6e489bfca144c0aa1a155154ec7b1b71a8a2bf5d2214938b010eb764b5ac7cb3a3e95e17315eae9f68fd11751f2f5d23cb90d75b3a129408a5da198e98c79ce09b1db8a68e67b36b8e3c068ac1710531a7ab5e90dc4fe8abaf3547d8c96389999e9c6ec3f003812da51552ab7ecf831cb92f1ae90be1cf0baa4006a1495cbfbc0499946928d3083a97ece51c2070c6b326c1e37b0f9c26aebbd11eda6e74506147a150d731987e4fc8e14225db7ca4541c355ab7839b5dfdb0e6e720484f0484f998e4aa03988dbc0653aa03d981bd40d58124645ab15d4fac9cceb6c3b914f946840afc3f", + "34a10df6d29fa6a481be53fcb77b74755cafffab33772a4cddb9405c14caaffc770909f862b91aa00aa01768bf96892dae921d138578497399601f5f0da93c4f6b2eeff421b1cefc0ba2200f41297d1326777e57c52f70b78ceef2f87a408631b51c8e0316cadaccc2f7ead000391018c8b987bc6a5124568f86b8ec9735d0540d29bd0d90c191ca5d89f196efd369f425d375a7b50466fa2e5dfa6def65ebe032b54deb76cbde49157d5049729822a33352f09ddd8941", + "8524910b0ff4fd79666429ebb04997a91c5c8004dc720e8c5729ab53f3170cdd5942578640791bd3a163f06c0aa90c4584516a1229b4d6a5fc8a259d635d", + "14529cbbd1dbaa74293c66afd4b418b189b4fd9ae6cb2dbc36ca850d7809d57434e4bf22533f2a15be2c3125775cd65ef7c9b500c7d6646212c443bbc21a1c12316655a5cff41944e7adc99d4e1cc7ed33cdc7e5bf7649c2bfab6bf7f0211b8657c97037a98325d529a2e414092b233bd98d497f980989c7b3456564e0cbe2bd924e481687fbe2482bf084cdd1c916ea55cd659eb52f8b1d4116770f8e7be9672d8764f3ef166750eb4ea92ad51f45f88dfc12ec9efca2" + }, + { /* i=8635 cDividendBits=527 cDivisorBits=251 */ + "4aa837a979bd8c39f46fe8efd957f496c9e1c868b9378f558e6d8b75b312aa6663b26ccc2c540fe6a29a7b3e1218fd4d0ed5d53e4790dc2d6fed19ca99d4fe840fb3", + "068cd6806d98181e8e6ce94aea211132928a1b41698620defa99de097ff6d057", + "0b65d470bd6d090f978cc7ec009022c9d7468c926a01d089c6ef494780baff261d436b", + "01c8f26779a7231f1988db288ed745760e765295260cf9516f9370d365f93656" + }, + { /* i=8636 cDividendBits=2429 cDivisorBits=1795 */ + "087c4e547a567a050985cf41e1217d60fbc4f23b5f0e2d70c99ae3f7797477be73b1bfce081732a7bcff4dcc374cd7e93fcbfad61dc3a5d20bc8c9507328ef81c5a5984a286458079fcca58fe6c7347a5c8e1a447642569d95c138cfbf1019898d6542ef504d9e010ddf286b8a265a1143bb7535ca9a54c1f607fa52b6002746d4ec8e254b71d78a23e4554aaa3820d4bbc2c07a9baf81c852e06d4297cd82dba7346ae22e2a875ca75aaab4c9a19937a5fdc5bc7a122019747a5fc452832b8892ecc40e6d46ca4c2952865471f53228c9812b9e200ec2a327d0172ba1a033a67281e6e30c389bd1588232acc55c775083a939650c7fea33770039a7970b72ecd0284b307f9b282d8da324d5ca3968f141f72d7f45f4680b9566dc36884981a6bd87ec9f240e46bb4772be3c25f9688d", + "02208019f67a45fd4461e795faacd48b8b43f594b479a5fe24fa06f88f842dc603a02aef1e8069eba50bfaee2f23b76b94015bf72eb76baf88e37207e572298f7236b5674086d63326c2008660eb2ccea3269f53e821e95d3ba0c90fdc8a28dd16c125aadf69c19a10728519851220d1ab08f91dece28d01845863cd549dad1d49b4f629a705c775c467723d64dd54a18ef57163b7f2c316d4c95fadadd77e829009ef009ccdf8935dcad74b15e9888d73a7b354db89eccb2c0468c793bcf459f01c1db9af562a87e977ccdeaf92dde393795e4914b9384c90571acc04fc7e7528", + "03fd527a3157e823cdfa41d4a989d073a5dda2aee8cc1b240a34c58d04e3361153c61ba4c63d80de53c82ad2038409866bbd59fb24e06bc1880951e72654aae366e87f5533914af3883038e230426fa7", + "aec933f7c632b7059871901554df3abbb9f49071b645978f2325666d0507fe801790e1da70e18c1fdc9bf80626d22173fb6c7957fab90106cda20d3c38fa7e2b237f57faba913f1e1d79c6f2a5d08a9453ddba66891323f8a9e5b6c0ab998c596cd19eca23c0fad16a16aba8d692e75537d24e1a5047a5d9e5a89ec029ed784e36a48e3e4a2813f55019211abbc9429aff8afda0d4df2e8ad15a117ead509e2e65344c32acd1bbcc4c8c715e0e92abe3eff17f01dc52b002ad49a842e24acada137c8a6d6572b821d235a4be289c81176e952c10e2abc516851c819ee65ea375" + }, + { /* i=8637 cDividendBits=398 cDivisorBits=305 */ + "09db16ccd65e4b2a76590413c8b5eec9531bf456ebdc2e920b49d735aea075df37989984807a8308461a15358242eee52518", + "03348139c516f969814974c54c220dcbc19215066b4eaa92096fa36548e81a7f2ca63e0f5b0d", + "031336247fa50187f578f1f0c6", + "65e8ea25fa88e5b50ee5a2008e782705d7d2e442965e722cb2e25a32122da281ecba6b890a" + }, + { /* i=8638 cDividendBits=566 cDivisorBits=431 */ + "2538e20451b8352e42498ee1b1c5174d22a043ef0127030dcedb124b78e5e7bfcf48d2fae8b3ac0235ae2a6bb8ea6d6e01217f5bdfddb372e0e30d3266c2640b3efcc70c88461c", + "52c8a8c8dafb214ae00a8b8c5e9438cca678a0ae5769339bbb2bc085284237837a982a116975882cbe1471cdbce4f851cf6e531f5ebc", + "731b0960977a6acc9ff84ce253a09db376", + "09047c7869b73feccd213ea77318c9218b6746a4eea3fa6ddf97e1e132a8255f7b86650eba4ac9a4bf574c1fcd665244f76733892774" + }, + { /* i=8639 cDividendBits=3662 cDivisorBits=2426 */ + "25c6f1fc375c603f3ac292a8c71c5d0f65624b2a6226c2883a9f29d103ff8e6609c86d3ada2813da22d17dbd4c500607ffa781c44947b6c5d5d9c8f106da84567d376ac9da3437cef04fbe678d347d2478038c18042a445a0a023762f7268c0e4bf2a7c7c9576e64e4e7eb239b7aec6bba4c5789647af3edfefe841466a6d3e7156550eb53083efc64d81e55b26905b8a96c2c9cc13c597a038dce273347adc19215111b0951f39265cdd12a0de0cb9c74d5c47c75222f9151a5da0e215681c7cbcfc15a268c74c0a03fcd12bdc541abfc284d4bda00de6adb0708e165c52faa61ab8db27b5c507c2a7101eda989d6914adc80947edd8cec86eac3f5d7763ddd5cb0cb68c8261880911c15e209f92d4b60f38965c62b898f16fc5f0e4ab22a92b8176d8f3814101e6063ab9dd48cc565a833b60fe8974a6312d4923b0793f76caf3469ad03ecf855a91e516d2f9ebcd47ed885e1df7b798f67addb5afd9fadcb3b0d43d79196f13abbc81b24060338bfa2d1991dda0fd7ed23366dece7e2c07860a233fcc46837e3264337d2dfca1c76954506dce72d6b432760d92c4d4b5bc5956b2b228c105c39465d140277ead874bd0ce01a79e2f5a7b619d9bf83ebb3877f5469e060768cd53ab1", + "016390a7671f2737fa7d1c407ca9570171086df5f890606a00c65e81bc84ef596c03394f2c8e8d2cc36f97da3b383360a906e1d131559350589c13a9c3663815584ca62ffd1900886694a1b25d8f951ce76c0cae6386db747f1b9e7e1473ed6485cdf830a01fcdb5262b2c7154d4cb2e89afc1009ac2bc653ded19fdeb395b62407ea9e6e0dafe34f1a2a88678cbafe7fb5cec52f9693a478fa5f60e7a9a9c4a29e27065127f225038480dcff3fa904da905ed38d4cac8eacd4ee83c6cb2650df82a5609ab7e925fcce929da6cc10fd7d9cdc68a2fa21802843ae5c2681c2498245ea2790d96384b8bfa8880df05f9f184487ee5586e8f5f967ba1c4fb5b61873dedf7fb416bdff1336d6e4d3c88d7f0bb43938c9f1d9f8148391762066b760767a9c0f399d002a7863cc0bf73773ac2", + "1b32e5025670526dadd9ff809e8bd034b22d6cd034480174f0b0476f3b9ab268b60a44ba420cbf0f4a8c56e940d55874e4074e18f5e6d7bd950193bdf0adbfd53a967fb401487567345c0d677a53d6f267c1883c4825f3a991a66dfd3e96f249802898d34006cd41016b17a5bdc1d80761fc54ff3a916ecbb730bf748efd540ed353b121fee2882c3a4c2a7e75e33605f86f03fcdd006ee62633b1", + "cef87f52b4cec0cb549d45cf8fd88f0515f5752afdec0bfd63d66eacb4f87f4afeea4913b6cc19b73fd450f5e3ff5f3641a1c7dbbcb178d7c6312d2ab7eca695fef0c861ca214073f79f6a2dd81e21d4a9d38d03344bf5aa696e390ef1d17c4df50e5f293cb075a1ae82740d9a0bcef0d4ab612c42c52d9636e80c2b9d754fbf8a78aaf782cd51a793bb902c0ade9e197750ad5176a52a5d24e6b8a7d07abff8c400bb58177cf7eec5e7efe38e612fc32648464ebf4afdfe9d35e15338c2da055ff5602ba70721971786b0f6c73423c8dbe5be1ac50dd34b8436a492931bdbe89c492269d4f017d0a0899a3c5ad64dda69c0516e39a748eff3e5ad383efffccdeb425d87f366d07c8e774b1dbfd5e68b77b345fb78b4717d6d1133b072451fc586288ab6db1b43929b763df1e4f48f" + }, + { /* i=8640 cDividendBits=463 cDivisorBits=291 */ + "63d3da0c2fcfdfe593a6d6d393a6f8004f9798859e58de56a9fd8da0fe4b1b568e33cd58fb127e85563b76ae24bfb602618b00dbe98fc46524a0", + "0713d40ea22ad4d4615951856c276006994ff35306c64f9ce3de8e59e24b4ff29ce5ca9706", + "0e1ae1bf17de2b11c602a8370c85712296ef2136d73f", + "06d002a0780133fa1331d7c5bc6f422b2770efbfced58086135c5ce5a7fb495728716ff026" + }, + { /* i=8641 cDividendBits=1951 cDivisorBits=838 */ + "1ae6c7204dd5b5a0cb6e04072550edafe240c4f0528f5219950a81a7682f57444f14d746f54a07b662414c40ef7b5aaf0392493fea176a053ea71a6261d92dba7f0060b84d3990269fd8f7794bd05f6b360a206afa3c252e4a8c6201c4ad2d18b143175280ea04a96bcf9ae9294d81e98ac2b2b957c915e8371a2ad3a080aaaefb9fdf48105525d3b32393be3917890ed254ecb13c0a3c44fc6cb2def64aec35437017b7313e04cc3233436f90b31a01c008447b280125b3698079fe0d5f361d017e76c72ddaa9559d5502bfa0feb84c0da12fa4a677badefb8ec15f2bc4622eea57717c09d8b74595e5d1c5ef49a0931089f094", + "24122c439b556e0d08088d930dea0640b2c43665ce5da41005a7c047629defe7cfca4fe0bb234136f85ba371b6b74df213b909c1397a0737c383dab1c18cf239056b0e64e1132c075c91d480e95bf365ae1c5a6ab16531e3ff09541534a99ab457c82fbe2d1b210602", + "beec4391f3c04424690926f33faecdb9d87212db45ef7be60fe7f66a51472a47dc6e309beff68c65e388eff76a1a089f8f647db128ac79ed4996151c6b987ffff775c553ba98839b932c5371e906ceca80b70de183b6f18f01bf2f23b820386fb79875d58942aa832969600489d16a566749238e34b298a6f49419c2d888736d56de7877bbf6a2a32df6a6", + "035e75cbc8dfae5e7782ee33b952c2e7fa52f35c28e7cfe3c76e2fa53b5ab03aec1c87e41928a95618f4eaddb93426f9f3dfba6712e7c547cb9fc5036e04c5280008e8d8a0edabd1431c530a313c956d842989dbfce6e73bacc19bf2b5af828789e13f725c69001f48" + }, + { /* i=8642 cDividendBits=451 cDivisorBits=113 */ + "05db38a5466adf9f4b8020dec1ef348b5b2fc3d20cb2769c9813b0799ba345a85d0613961b0ee4c3e81aa2266b70f854b65b7144a9707216b7", + "7bb2a4047fbab16f5e44e6d7fda9", + "0c1eba4ebf07825f890f3031f3904321590fdce2933ee7f957affc6cab27742abf0f6333dd64c417e63870", + "432ecd58ca6ab91aecc91da024c7" + }, + { /* i=8643 cDividendBits=563 cDivisorBits=143 */ + "7d2c84599ccbd15a6449269bdeb18800e7f068493423a8781de1a1d1e56184ff06e39f1e4ef1f73c2a7ae4bdb2d5c2e671187864b938fd2982e7651bbc47ef0d52236a3dc84f", + "3cae6f559bb079741d7d1ac40edc150fa5d6", + "021014049eb7f02d0e10868f20d9c8e362e26c082993c306155e4ad7b0901ecffa0af32a1c190977726e33e913d9e2b3e698b95bd9", + "02772afca6c0f97d577d7a185b0f186123e9" + }, + { /* i=8644 cDividendBits=1054 cDivisorBits=466 */ + "01e076d6d02a5c858599e93878eac1258c447ea676c074d8d788c9e6f26f2086ef5d03379f47640cca6a43ec0a604d9d43d751479c49ff794d342810df37b8c55ffb8ff8590ee39359e52cdb599e37fa87c98de87fd68a0bb0b83406e14715699f67818812af1c521772990e0b3257fe97f01b1c48515e340c8aa353cc26f081782c1a7a", + "10071e0a7e562d4188ca252e0211d7ce4b82a5c1ed05ddbfe243b439a1b00a7b4c5118d3745c2f50719544841e7fb3f6a44afc9676654632a767", + "1dfa17ba0bc2093e5423b9cf32e1da24bf3566400c64cb41f8caad1375670f08fd4c120c5bd31f928f20e8119fce8f82c6de8b61088648f00a1e8b01e4c414c4673c1b7ecccab385b407", + "08f45b911a71552390c1a15615d85d476a2805276ea340a5149340bd1901cef42736b38eb80583c8921f52cc1b77b64d4b24c3076fbcf1921aa9" + }, + { /* i=8645 cDividendBits=532 cDivisorBits=106 */ + "0d017e3a00fabc5354fd3c7d0a5145fa44fb649646a888dc5ae1f1ebe2009eee2ee8572c35a3df0a176e45a10bea703a269a6ffc86f8165b0cfcf5c0f244936bdb6383", + "262b2841a5b825d24c9360a4fe", + "573b32f8132e88548d5a79e6ca6c1d1dd99b0fb20c02e0b85f2e6ea9dca98b0f726a6f1542ed8698cad3521f500e0b27fb08da1496a1", + "129c885a34baf82212eb8ecbc5" + }, + { /* i=8646 cDividendBits=879 cDivisorBits=850 */ + "29f2d08932c10b258a215bfe8951be32c8027469088ab27d20dad1134f05e1aa0dc8eadb60cb519e7b997fb44a332e02a70cb3195c0d072cbb5d399ae7810d6e9234d1c6677339b85b58f4aea981cd47cde92fc06846de7e23fdf4478aa45d71703e1bdb73db7bb0f6694c07f4c0", + "86c357a855d6ef93b11278fa92bf55304735cc4a2f4ae8f6040fe1f508e83cbd5127bfb9596bec22081c9118874b83eb5709c6e5224c347b8c1f14e9944316200a8b068d0bc097265f5ced08e77578a324f91d9f767fa9bd9f2a03eabbeb0ecdbee482008cdeaa4cfe88", + "4fafc75d", + "86165667ed35c5bbd2fda7039b4db2b2cce35ead8c1f44f5685a903958bdf1a8bd0528212f11e6bb61839c98ff5551e277abb1fc082fbe197687d4a38c7ac3e17fcebd0c363a59f0fffa4b979786644ede2cbfcc4ded1ebcf1e179d6d6c9c9666ff0d13885f59d3bc558" + }, + { /* i=8647 cDividendBits=2784 cDivisorBits=470 */ + "2e89cbfcebe0788d6a1ba074b98b6fdb3dcd55256a3249e2253d9ab12a521a3788bc73794ea94644a57a58f3290e9eeda5d071b689603e27aaafce8669d7fdc89e0230ebaa516e68060ddb67a221dfb1720057df56509cd52bb66cfb5c65687f4dcff1711ddbdad2accf6491507a21e2df5400bf6331c82eb3b650ae72c5cf25ac215684f2d2bd50c215c92a3441cac123bde98eb8fa37ddab95041ab66d4b3c835cc66e539f8de4f756893c8c6f4726b6f263b803f9c73738b9c9ddcc7855450148ac50c72c55dc56f278d650357a5f814c191ec6917dd275e58ed4059fd571fe870a9882e1a579acfab747254a0bea98c07838b5e212d4a40d6f9a6961928724571e293df438ea80fc52b615b8e951de3f9bbaab41dad4b2eb7f9f76e6d7ae7dea0053c1d41953efe99ac29ed9e01e430484b3be7ad49625452b1dc5f14b83410dc90dd0cd70cb85a1a1decc4816f72bd28459a282bbb04e7e2887", + "0ca2289b04a1a974ce4765ba4f02126047f843b2eac086fed88edb9b606baa53833a0fb54f6370fab04760ece0a3294e7894d65b2e56dca2d345fd", + "03af0988068dba4492c8780edfef01d39d00add2e5643dba1bbc19aad460934c25d91f79aa36cc0e776f0bee675e2af5e805b3ea60258ba725cf196fe60aa75228236b35d9e608bb532ccd2cc8bc06625cb9203771b60df2c71c5f1edef301aa6b79cd439d993dfeb33ad52d0831ca10b1999b12cc218700df5a413cd02b3bb0f88981d359b07b26550d3efca2f928e3277cdee19670c9fca8b5fbdf636b219f24e1c4d8176e1116168b4aeb60a895fc360270e7067c5f98599e3fa0cd98f65d59cce9666acc749e1431936c6eb71403ce07e361f4b14ff5621c6df0aaf02d275a58cfe53e2bbe3382a65fef1803be8d1ccc829a236817f82f09eba1d8c07c4ba20e23a715e82ae14c99476a6bbaeb1cdd96e6eb5012e712c5059bdcc40d94dc3945", + "0a4d4b5ccc882e917dfa56b4aed84aed215ae2c131306b799b73fd83f47882f81312bde754ed84524c2d422de31f2c056e487c2f33de17f78af656" + }, + { /* i=8648 cDividendBits=1295 cDivisorBits=239 */ + "61dde09811496599938d4f5709b215bc372ee32229c407ae2b47e60ca9117d553e04dad788e906e1efc344e21edc59564162475e37f318f1cb74b0f22d0826384fd9893fecdad2305ab959080e734a8efc516afced3cc8d56fed74b366f8d101b509f7c28d3ccab1f31c4d1b59b55b9be8fe208adfa0aa0e63e4bf6cb3e3bf463cc575e6932fdc12106afcaf930f771636cca0a4ebc8dee2090f8292224f409d3f35", + "596f217736a676df757bb74da79d3c344009f637051c51ccfc33994693d3", + "01182349d7dd60ccd2787a0aae7d66d3c3885a69109980f0a09048200417d66ec38ed6a3fcb28ce8aab9d28d7f09934e05dc64cd529d1d8af8742a624b67e407033ce65c6b388c5516cf01a928373fd2caf4d37c98104fc1fdd7e0cb908e4fa40f6229286db588283c0f1472a7e9d43dfb508e59a2f28e79f31687fc0a6c14bf5ec2689f35", + "4fbeb23eeb1417ca68402a42280ca0214ba131277c9232af6a41bb789786" + }, + { /* i=8649 cDividendBits=570 cDivisorBits=252 */ + "01431f1bf70556398ab13e2ca9bb2389250a6a55251f3875201d50f73d8f40b2e140429962645f6a09a73f60a68d5e753c8f5b8a3c6ce562cedb688a27dfd4c0461e311891a25651", + "02c08d560eb588eec4b30c7facb202482fcc52da3043bf5fda0a8994a189fce8", + "75681af76fa72c3334a44e367f2c53ba0ec20a751b9f2e8a7d52c87c6d56cf15998d0f8dda17c8cb", + "022835a4c55bf3be302c6ac7768d12f68a3691f040535cc833c3117d62c98a59" + }, + { /* i=8650 cDividendBits=2713 cDivisorBits=1197 */ + "01473b630eb1244df03ee59ce283565887a62e3026d1d6d6092f8ce2177c76e7b757fcd19a5efb32ccdf91ba90ab74162d26b2fc7be7b5273a0fff693d33614da17bf46b48bf1f03df63fcb59eca10c9853045f7caf35609fb740c81964b9708b02bbfdd25cd9261846a717470bd5bf298f806964376847b5ec01f4c96cca984b45bd10ade70bd1429b1f87266e4b943a56daa46bbc3f38b94f787550dd5df59e72d76a18e88b57a0f1758a2985e86e42175f66618debc333a911d87d4ae207e1943d33af28f9544897a106b6e765d9e31a5c2b70c09c9b554b4b277dc393a5646ded5f42a29ef2261506796fa1ce1891b05a201c3a8dccc0cf0a0a3457f45d750432feedf885fdcdea0e012d716fa915d57944b5f47ea639281d3ef68710164a7d2270fdbcc60ffeb87a682f1960a178f222b35080ba368a91aa4eb87e699f4cd30f252bd9a825de74afe763468f7dae5f7a931", + "03009dbfaa579e075915192173c9abd444db2f5021dba533f6cc5a74e0f53811d80c985fd9e44c8e3acab0512f9620c4dac6742668157ccb6393d074ce437a8e22f5990534d9d6c9ce6ea03218ff16f65680ce70d344402c51dcea91a488ccb8473004fe9aa02af95fd5941d5038a4dcc00545aa46144640b04e5d56fa950c2fbf641f776349f6e6002ff81b75a4e6e65f88bc54c015", + "6cfd68aea273d28b019247f99dd49ae71cecba723a785b070edd3ad1c01c92c73876e1d7574c8f86df9591bc2cb072de8d1608042f400102afd41333c03f63505ad01bfe83843569486aa21d4d234064e4ce8042140a1f6569ec64d908c29d40cd0c4e8d692a65054cb88f8025a813334a050b9e8d006a71054bfdc8ed9f2898f6ef18e7e0d267bfcca260146dec32d30fb50eef4c1900e86c483c2a1ca81949b7d0cf18ce39e8642a273899c3d4b053172c6495509876ec1ad47bf57bce", + "019b08e1b43f8a556f521baa208212959fdc9e925da7e963eb62cd83fb74e779e43623e2143cf2cfd5f126bc728f9e071e09934b133c0197de098951c963d5b84218c198869d1dc1fdd6b284a161d760e30c7e612dd2acd48cd5a4b0f99586e66a679d98814c529ef7777f04778e578016f23d59b19fa8e9d810e6ac5b9966970fe465a772b0cfc260533a0122f443bb3c8cb662014b" + }, + { /* i=8651 cDividendBits=3645 cDivisorBits=577 */ + "09c39a94ab89fcc232cc59dac2c08e3be677cfbce3b839e4cc61bebcdd06cad3ef05f52969529dda0a606ea0ea14b36ae8159070c15716140f1cf4ff20db1272e52c33c6efe89efb1052031e73ea78555904b0180d2d709a4945ee43072c54af263864632e1edd1700c03ef22d0402dfbee86a132de367266f59dedd9d7a555e3feb947ac3918311bd9b07a561da6ef27647b592ad193f3018c47f27586f70710cc539066a22f8f7ef01dd43acbf590140630d1e9bacdf1a394013e4eae7b2d23b6600b0b248ef76bece6a28d61dd89e932a2e9017a06db4fa0e75504f7b66ec84c586758a66a2003922e330b29ed1ee78c25a36f5852d3af18469908e7b273af1bf51dc4991fe300e60ffb1b1c9475fd66500b6c0d91248c3a6a590083ea088727c6efc587abc68d8e24234116cd4210316998fba0b85dbf0433636286fccd5dc4673e5c95d87d0a63f2b53be070463c13927c33151ed754e32e962cc26389d62d3ed7e5e50985b0c40bf952f97d256db3b341e374e08ee3ea3ea926213fa553c319ecc7329d2c4ef56743e39f47d0386faac9d5fdf3a22eabf1e57957f384b384ca07885e9f258ce97d94aae1f04d4c6e358cf1debbd9cf8d8bf17aff175a880158c0cf902af44", + "01b21ace07ad17f1a7d2a3c0efda5b38f5bbabc7f9bd5a8bc1484eed6764bc0a5673e7d1444daa971d3180d7836c87f48fe6cae1951919f2f49d5e6909ec8911524218ae333a80ecdd", + "05c210a7e6914bf1beac0baf56ec8b31c693e23231605e4a20a337590ae8cfda4eb0b65692f6cce42dbce3065476e752f61e57a3e0ef1d48053fea3964112f7f3d801d986c47e313e76435ee76ab2f139e6551ad4e6661b4f568f3b0846317e6c75c9a6d8452fb44e08b25a7d38024feee96211adbd1187f0ff695eb558f49b7ceb59879fa6fd8c61e6cf70913677aca75c5527df1794ac1c5c0d645648e54c8d1b708d773f3d342d9dce46a000c90f6a17951cd39922eaf8f07596c90f90382e8acd764133363d2a38a7306402b4f794a7656299e379bc3503dcc6738d2ea0bc5362af56ba46ea6ac26289bd5c1f4d538b8b1252f48f332de0afe43a1dee56bbec7a9405d7e1da2e367a8e232d262231861ed416c38eed05de8c4021684cdd453d10b1c25db18df238483b4c1c5a81123f27eb82bfe7596ad64dfa67fee7547947e199c2b539914f732d5d23d35e90a95a8e833906c5ed03ce6ee05284a03622e2cc6668c561e488b4a5f9575914284e66974cdd72b57524b8b576ec749dead", + "013a2a8e007bc8018175ed0fd34ee1813c057bd06927d3aa2261efb41dd0c7341cb31b03f054000aaac5af410e27e178f2944b6469148e17b08c63839fc4c89d38a05d9dd94c75f7eb" + }, + { /* i=8652 cDividendBits=1731 cDivisorBits=518 */ + "014d3f76a79b2263b870ff388c9f7cc87b8cd36547c1d3f0c2aa2bcd65f78d4c9e81971899b5251001b4953dd22ce3dbdc9c9791af668ef3b64f2cfb230a43230b4e3db66d334b359331843703ed8508ba8013a15b8d398e2c71e539e59bbd763a4de3b994b984a1a03fcea3ffdce9687da2ec93869d696f421fe62a0c41b11af9a187934393cbc83a5147a4c85140ec7f35360466ece89965840099a86827954bba0e6a5bf9fde93d8d4f30b410d86dced5a987828e006046e8e6f80d926d24bb12cd759cfd2b51c238d59c34e5aae037214ae7e8f7e31278", + "2114a7f11b9ea304e26c66bead3078802116dd88ce9ab33be5e90192f18cf5a12c9cf220e59fdecc857a72d898d7cc7494785e94bbd4dab9407889c4207d6d0d95", + "0a12e3e906a1741c1c75653ccf2bf65784d750715abd479b3b1f182ad53006292583b05ba4ce277a2e6a23a84c682ea972221587c716d88cbdf0b16f14639f3d47fd4756d39eee690c1b12533c7235a2a56d5e79786e74288c7a5c84b0096d119ba378cf6d02b22950da336c3ed5218ab732e8f131120c8d8b2dea90411fe4ab39ba129dbaf2f2a13ad97e17256ebaa329a839dab7106e20", + "1ee654bd8e1efd14c89aedb381639ee9e0088d6ed077b4311d610e9f442e30a5d8e098c4ec5fb71a7a8a42ebded10e17a615ffae95f1cf1258846fe48c121b59d8" + }, + { /* i=8653 cDividendBits=2479 cDivisorBits=274 */ + "2aba6b4f52ae3b8c443e5f3cff6333d557045e2bc7ba1ae2d6b223d8b981b20d7745a7155fce7e7530d7e8316e88edb189e21ba9a159355ad58a40658867fe3e77c4b2436845196baad0f2fbcf9b123db6184e5ea58e280c8648889c0833ce3b2b14d7098df6fadd227bf0e590e45d49f5e8f90a5fe471d517e4187a55d5ed67bf200954584e96d02f73189db1cdf9e249ee449cf7746cea29c11bfddce915593b677248ae72bafa08d39d52da18112c48af7b685a543e7681224d56012bf9fcb8d8dbcc7f2f7f0ebe47e8652fe13429cca91eeb4d2c4fbc3648c331591634cb2f8360b8ce893ec82f20252ee102c9ce476f8a92ae15e2a8ef3cf156c8e8e0e0ee87cc558564e79e2be710b7570e50096838ecaed785da3182791cbeb10edfd4472b270c44e7cab8621628843ee64c41c1ebb642e870", + "01963de8178061c3ce42476a7a43423973aacf1777e3a289766f772d5863d837a70707", + "1aed0691f55fe85e17e99f7c4374378f9ec1b0a814ff0ce8500dd9a5189e847bbb1fa71779ae809d2a79a66240cb7aba4767dd55296fa501775e8ae54018a9a0e1067fcf4c727dd5750f9ff770412bb3d1a9c890a87d99a8d9122c271d0db543ea153cb123c6a0ad020c23f23d83e1a8785deb4f30e7b15af3af53b723c2f9d5877188eb09c83ef7f62cd7beaf57a75b14153a50b59a6942ea2f60d2bdbf8484859c7aebdc7ecc7b3fb7edbf557a65e0a44b11cbf70f7b1122c70e265dfe1cc4244c195ec3b97f881b87d9cb5824f6a8c6cc85cd49e8ef62f8920821042e80d129f29c626ab5cd9e6d051db0e4f5c986048fa3c8386065d21a3320240be6ef4cc30ebee5e47549cd69372838ded58ea2fb0d8341", + "011457c187d3f249803ea6f0addc385dff9dc34855931c304718c2b4c1d7bde3e68aa9" + }, + { /* i=8654 cDividendBits=1411 cDivisorBits=627 */ + "03171b71650a42075ac72c3899b2a5c9e8a46e8a1b1f2f9f1d05b114904933eba66a3d5edd8084cd41634e85049e87650c309e1ccc4b21f709a483187e16a6b43d9578c14406a00f33ed9f3260c28998462f5982945c00091b26f6bc049f29afeda25e2bff3967e47ba7bb635005513e5ee0840a1c6c7c220cd9eeba60d5126aa697d481f45c5d975a988d1cccf58e7b8c896208196da9dafff9304083dcaa4addee30d0634f9a7f3c986962f5dc03d04e", + "0494bc734665de66a51bf5ce2a75ad66d824ce5f10a06843c2212153af01353c1c4f99452e8a261efc594ac132c9793c59ca628559bf9c28ce85d0705c8f0547959695cd8178a1d16da933f7a480b3", + "acb16f40afbc633f97e52f5bca70b94795735ed6b61a908a79d63a72ea84e7081676030eec00b47eae694a376ef72cd3c32c084a8cbeb67b3752ede9e4c07e37410e3fadfddf6626ea38173f39b86b128ff0a18fbec7cb9ee4591d052a62f0c58378", + "018fec9155f952eceabee68f3089475195281f5a3976399102399edb901254be50fbf2a9bef9556ff2b5a0484f18fdecd16482265b9b01c3d162a0220e84bfbc2f8450dc393da7cdaf0e1bbf4ce366" + }, + { /* i=8655 cDividendBits=3684 cDivisorBits=720 */ + "0eec73f6a0ddd6a3942ce69152352abd7700e8dd1f8b8e4e4dd37d3f641688ce2209accadf5d18ae1d2333ecfd1b9785e80202b501b0ea8c2c2062c62360b41d546af2f7799331c9c28e72599059b4f2c782525ecb903d0edba2a0ad9eb7dfca2ba0e5c68361e2125956a29251ca30d497728fb243010a7ec30ab41b9ff4ee0b4d69a3151706103bb45f6ee37d5ac4ed8e10ad0030407f16f9f6267ddd5cdd42595b02311afdc5c4a3201e6c316ecad3220172581760ea191d640fac7d6dc6d4dd131c8ea309645b5dfc5f57567c21b9c47cc28bfa6e0563277f39a0c2fd8d574006f14413721d96301ecf53afcb54863c7236b9358d66c3d367574145ab241e0c1ccf02072a5e84605ef0769679271842b32596476410808bd6d1b4bebc5ec01b76253f29909b0961a549592aa474b608ce76f0a4d7a28b6fce317af14752e356506606e1373cbf7e49a57f764adaef2606b6d7c323ba84bd31bc1301a49630c1ddfd3476658f13a8b64d47683bbb3f4a0ef92dbca4e012f469528a994ce163fa5b0ec2980d892a582cf9f382b5351c8e03e9addc4e13aea487cfeab5eaa269b728a1b68faa1f6b0d4b74cdb8ab8bc53f703e02a77321ea10a2da5d4d8f792d096c0dcb91168bdea624c834ae", + "2fbe8c4cd04621661de4975c8be41c3db2376c19d61270dfa8667a154b175d27fd60e8ee2f7e1f722ba1ada5466d25a29e8567b531ea482fbcae155c63d559c6a746e29d09ee6fd1dc50c7687924e533db4aa91ab1dfa73f5145", + "5004dc99c713c1136bcd95617480ca9afa33954b7cc59e236c6aeccd5b196adc52ab617831dcfaddf8233bd0c194de8fd8883c992d127a5b768d9b81ba53ad401282086733f02b497bfcaef0e6f464d997cedb65fd4d98304f520dcd2d1d236c7ab8c23c09e3d5cae0e1c6e4aa97d076c82d5c3d5935ebd705c00ba77aee5848bb74b96731a83cc92580f8f8f192ff24f17da8d58206813be0079b153814f4de8ecf7477cd40df43abec2aa40406a70307d3ef4c3414ae3b05206315abf2bb44ac8e04b964c0ebd3ad780b117d201654e4120e4b0228eaf0958ea76b044266e2e94215e552c8a4ec21f977b4551b8cada5d763fa34a2775ff2f24dc8878c9ffa056df3227bb9a2b2be9c961ed18a0a595f0ebc30cc01578a9d306dc07a7868d69b275684143565106448c9cfa723bd598c4e72334432fa5f8b812d22040150626d94117c3f821568018fd5a07e7fc17b3da11100bd5b3207381b28ab1cca8c59db0aec01214c0b15c5139af7940af83aa057e0", + "14fc22c609d377cb4567d7c6fc1080ffe862db5c6a24fe32bd6f1ab03e435b2ec4f3167bd7a169094851e86ebb5bd5f68353049f0b7c04c46f451693767f35bb7cb0b601a982d17740e7f4f24978477bf61027a8ec48dba2a54e" + }, + { /* i=8656 cDividendBits=3356 cDivisorBits=2851 */ + "0fca656c20725dc694f5a603f93fa60db33b8cade96f0c3d6f5e2cc01147383e6000b53f899fe2ad227259d7e9db403434ea652dec27f892b1a4b1297d04d087b9a510a505fa761dc8ef6df413575d66b79ed9149da4f2bd9f17ca39583afd205ce1e8d9eb59ce95802daeace98eeebe97b508bb1098d4a1c9a1eb618445c4ab63e2ecb4603c2f017b6c167071b08d2e86dd1f2db39cad1ad04081d9fec879ec876f6b9473f1a6264339d68a97fd7d7f457b8a7ecd8c09a4626b5d196163a85a070bc2f12a652f9c7f3fd8f6fc42dd15f37e99d86d7cd8c97187b35510388880226ce5f6e32add99bdff01731698960bc5b903828ef7006c0b775b1feafc226bfe8fc9391e8aa47f572226489c55752aba37f97d9437050c4bfdf23a305adc0c14e6a781e7ddea7fc3f45751b29e34197fc4cffcb1fc4760e525d898e1ff5d8a06dfdd920c575418f847e81bec625989d0599b90e23ab00270064b2b9976d8a890182cfcd42d97b474546a811e195477d086f24278c6d79682c49bd4ed11e905e109dceb24e0cdb8aae56c3f29e06441e5976bf3c8604ec9e011f6c9156801141d576714", + "06644a93599e3d877deafa17ef912a46e2efaee28a044cf28c9bf92a39def2677559e7495bfd1813fb2c994a8ba95ca1db6594f59185e3dccaad17788e51e3b996814cab264fb7ef312b1540ada9601408159449c0da234bd54d4316e95ec525b7a496e6708fe6c92cf548168bd43b04bc5f29195d0e624c79bf3158bf5face597753ba087a290de907854bcd5fd5d65eca1ab5bdb239064b46b3ef3d17f62b9e18f94343a6d6d9729c9acefad4af60a40e7ccab1bbae67687599b335014f71fd714d7437cf897951e5017610f6a340f870f1ae1acf899119e4cc4064268e8c2bd70db6de010e3c9242cfeb434abdc2937738604fa8eebd712ae9c3070a4a3978e4f44a8016df4148cf83450d43fb3a99ee80ebd9c221b54c15f0ff1879c4e9cf9d01e32c790578309ce63d354201a2c112552da9d7fb9933306d32839ebffedccd342b6d5cb9ee1ffcd51c0d0d7e2a69b0eb732580eeeeb4dda15bfd3081087a037315040", + "0278703988221e463fc0d13b80b8eddb50838a514b764b6b5812f9d9220236e55282596f99874a064b3168018ce824695e37e975537c103ef26222956c54ba73", + "01332a59d5ebf7d4ddcc96021eb249e7becbece3336c04825554ae2de2518672bae906cfab6a73331f706fa7b65cd96065f73a1c44b7fc6fe04edba6c3965b108cd41c2c6ecfd9fa0cd472a79933aac5596776c6d754622e2156a1dae9c9967da2b1e0ef369b4dc950c02612b3add917b81b78a50339ef507934d5de54a25e1b39bd02a007d299ebda89d4cab967ec1a3852766ea702c405d9f8741ce23e73277910b53a735c50f8059fc6de556f6b99c7f1b4f28f204f9c92656688e4012fe7e41a57d932529fc646652160a0ded099c183bf147a7269cf911c81a3d93f65576e2829736d59284d717c47e8464075d6f45c245188cb88d8d716305c50ba33f1dedcb04b131e9fcbac73b20e0888b5d71016f9c08e2519fc7144104d2bd172e38726b6cb8f3aeeb2a2d026d8b1df01ebc197fdeda617f509f2b4afe69ae5e88d2c3041865f30e1123daa55e5338fb1aac5e8f8319536af6875cd2e72aa76b98cb828e1da54" + }, + { /* i=8657 cDividendBits=1035 cDivisorBits=327 */ + "055632996fd525d5870585c379a7153e825674951a8ae24e7ddc882109924a9d833d999fbeac5f7e0029781bb426c87e937b298b068c16a723ca311e8aa93bd0e128f41984a8e24d11640c3ff91b06a1319640a2c867753b533e7ceae624f27b3e9fe1687902d1ba2a0f2bce41a93c4d995f478fd59bcc8d03668bed8808415fae2b", + "5229f273f3fcc154027902966bd553deceecddfbbf3acb3cc59c56c6dc4552198d9c6033df29f629d7", + "10a0b24f6bc3ecfb1c084006dc8ab3986ec57227b4e11332c60bc52472c93b62c11c626134d80ce51d0cac22fc05c2cb30ade530a8c571811a774b0a733837588548ac97205d02b3f26f06bd8e07fc2ca8b9add895afe8bebb", + "0ef21c1da33a3f3872071bcdfa4451279701bfef4eeadff6ec1f2e3824d81c9f47965bf30d03a98c1e" + }, + { /* i=8658 cDividendBits=3703 cDivisorBits=869 */ + "27fb44603e31b3aad6ea018ec3c3e0d5275598820f6f44d9c64eb56f23f567e5896fa45dc6e474f3e9fbdd327574fe9ba0d6780901fde4976e1fe0a45dccdc97999ba765d948aba2d5e492ff36df7a5a88bebc2ce8629a88bbcfe1ea0dc86994aad5371e4e441124f0c5c6efc1c93cc4c7350c307d6a9ec7303fe77f5306712fdea27c2ead1500c6f0fb076f853744885791ae4ad3d23991225c70a86a6107e3f8986b14668732536cef2e110a27119b73bf98048e8fb9025f46c8764210a53bfa6ef326202fb1b41633cc4c7853b76b8fc8fa120d5ae985c5b24d8a3f00420f6e471dc4a36bee26bc27c59fe63cb3d09756c4b924b80c7afc6dbc25a5caac9d892adc07cf0b058a6c4b6a59ee3f39bc0bdff37a98010d07a51b69c87d2eb730fa12af7c71c4d4a5510ffa4d5bdf4d92529e9bcc066978e7bfb1c6f72912f8d5e5b822bac8c3d992533ce7faa226d8dab604290b9d4a0dace6b06aa0b76ddbb8240e26a63133345f5afd803e8750ec90679db60e929653df02240aa183b0e0585c44fa49360c8c97ebf8bdfa986cee1d7b20993f2f6a6330d45dc6b76812c24585b13fe3675afd542dff899f826492dd63d77324200721999258e2be716c886aa903baa29592cc3dc05b71cdfed779", + "03c9d9709edea212ec5918986ec7e431d41d4159668cbaa322ce074eb6f3b5eab8d8fc3224434a7b8d3eaa2d4ebd45bd2b0ade06cacf7d516e4343475a259c63a04c7af14f04202bcd539b1a53cc921db5f391153b667b71d747d246b3ddc1b2bd6e2281b0cdd248ce1e46f2b9", + "0a8daf96d136ced49f4563fa21564ec05102bc9d3ffdd45249731238ab44c3fa7d1be78bd5d855471ffea435cbb1fc7b357aa30182c28dd4672adbc9c70a7e1a26e917f8a8f0e252de8f2b365f05d90b5012dfffa9547a0144ad4f0f4b7f1601ff578ed93caad433396abd2fcca34924f3ba0ea2c3c39748d3cb9b088ef84a03149ee0160e142eecd46bbc569180ac383a4fd2f12dd1448880d90d4c6636ffb7984c65d041b9028f3596eb17b778b410a3a49855f179aa30c8ca9cf5dfac06aff34feebce36783c82c51c146cfc1975f037f823db2c5466a7d58eed3b3e13bd506d40fadd9fe96828ecff98cbe3b28b6efcfdc03c6427e6e07027724118b451d962180daeaf52af1f1c2a336c049ae3a29a121b0b94a328c023234e7061d8d22869a1ea280bf551fc25761b5673362fbe6138cd54aec80ac088fd7d4ea5e02fd1ac95fa1d9eab93b81154adbcb437c8f7d612dad2503ba1904baf7d33b7881a5baf6df", + "02ff0a9fec2bddcbcc236893369e54af9e572899ef1076bdb4b15b82892c1e4b1d50155f46ca35bff89eed9d2e6a51b21b7f0a6c434c76cf49f6d33133a07eee73330d4b2bbcfef2b7278443e35239e317d9fdadb5ca35447271d99a744ce31d15c8894355332d1d96a989a252" + }, + { /* i=8659 cDividendBits=185 cDivisorBits=105 */ + "013255013c7c3dfc43c9fa7dbbd33b0b2ba22c8904ca99c2", + "39568923342bb38a7e61df2f1b", + "0557b23908666e7fc539c6", + "1bb24e248ea89ce246fbe827e0" + }, + { /* i=8660 cDividendBits=3343 cDivisorBits=1783 */ + "6026edab5327ad15600fa41ba77820f316e46a4628671bcdde3631246a383393d885fe176b5e2c2c71b95d422dcf057808d1bb4503e51a151a407230bcda036692556ffbf5592ac5237c69fb3125f88695ec5f955c41d2b0ce60dfdd0f27199219777028a68d971319ab012b1c456430f1c29ebd14505f35233060c65febeaf2b55422843a1faaf7cd895267119663396068f3bf32954927523d27a0d3c2cafa35eacf25069f10a854b59e17b41641c9cbf10d99c6748c1b9206c79b8d4fd6666d7509df349c09d5d24d944a92ca833e2b75ded5405d142ef1fa55843a51e2f81bb29db12d3315d1cbcc4400fecb3dd887ced810d35c97cd61ad90aac42d0eeacb9e537016614f13b21eaa38b3ec40dd403fe93472ddf5117d4a19f854106cd982bbe4ee295fba3d1a5f42ec3e9653035b4539e048f9f866f882812056bec88339cccea4f29430496a190330f77f110abbe49b8d9d891a76f39126053398acb6ae5f9f2463b1d3b2c0ad647633de962e8e19f3129797960509bc073c4da23f7a0d628e75a72fb4ffa2554942e347f57b78d21f0a4c61c6ed5fa023d03f41f4d5570a", + "1115fe9399dfc66f0f4d2bad4279fec0032891c44e1624ce463a1d1409dfe49e7427525931273c213ab26a60566d606de92ed898982ac4e7671f87fbeeb741101be22f2ae01b1f82012e3e56c8ccae06aedec796b30aacd22aa48c1b87392f4c3a85da5e63fbc46057da9f3c3f5aae612ee2073398e5f924b6655ce901e6b753ba25d451540fd5f9b8a737e6771d5fc6e910f948a5dc80bef8a89b291e31f142fed64ed86497e964e6c6b457dbc13e9d7ac7700a577e928728c0f70f4a670e90d47922826176b2c9507155dd1883b5dcdd37e0006c4af1367a1a52dec8ea52", + "05a0a7f4a5528322c706c8acad9a0c0b1f49e2da2ea0a39c025776b794d45193343522bf0660fb5337191d6a5f0ebc37e82a23d3df2813bd4be591b0a2ffcb2d4b124ed423fffade332282ae84c5ec066f057307376a5554109d03aa5c7d0ccc99f8ff906144463c79027fb4fdb0e0a1b6c6bca00d620fc405b2cf175434bd4609fea30fa3952172e5af38d12c23f1e886fc1e5d97d41ee8aff147170d16c4c754772faa4d5b3a3e8a0c76e5b94bca8242bf5dd0c4735b89630e9b8604b6b68ba8924a8c", + "08d0c21345f85483ed332c2f96dbb358faf842cb62d5c75c249fa07d9a5f3fd2b5b8db2b73756995e3910b4e188305d5014c20fa2cdb009336e130156e6c556536e4da10eed41ca0ae1522be417f2d814cb239b368cbeb8610df6d80b355f58e9834f2e7ca3f79fb1a26c6390b73b247beb11539ec1be885da74cd6b7db80c24aa9769fecb409d2c1e44696c15f61f44881a16d2ca205c2f4a095d2e0047fdc6156403a07edb719127acb40bdcec990a9041dcc6722d5d398cda99877dba18791e28f4c692b60f8112d6001ce20eada3467c2505ca6e3ffbfd76a898757e32" + }, + { /* i=8661 cDividendBits=4002 cDivisorBits=3195 */ + "029f6d42f8b0f469fb263c04f69ef0ce78ee0a79ce64ed79f29a68ac1e0c6f8855c82160c55df80c5fcdd02f774575fee4812e3af436acde538c79f983a13d455ddd55c1dabd9a567279f479ddc3fe2ac8ba7b018b27bac83d63a6728a666385c3483a0bcf625ee12298e89e5cb42a0da73cc481ceba1c7ae01e9abdef27a2e61b5688f20669fe8c5e1dd8455ace2fa02e1cad8a9a1d2b6f2dd720309e2cef529012d9c3d5da4a433c8a065540fe8e9b405c12fc0b23b576df8bd2df303b4624aaea49d62cc7382dcebc24519bd8d01bee7adef652889590d2f0360c2295b19e062baa0fc3434e25a458b2ae5e48b49ef38a897a1ddbe6a57bd9e83957ba25dc0f271eb9479b05d59a0744ca058cff04e8257a86f8370d21f5b923fe80834b95541ee86f210ba429339415fa684c49bf59b5c3c6d9db3f981c5855b27df9b3a947379731855179c390de12f98655b5a600a4a96cac30a0c0d2bc45f65714727853b0b3b242139443b97b2c436357347faa222919212551f0a02de1c14f0bb0891cebb13e7657543efe990b6d3862e4c2100a6bf5f5667bb4fa01d2509fa2c45caf408c29951aba7bc83465df35e1d255338ba0f44fba36cab1e87b54cfe95f302525228abe49f68b087a146b886b557d5600f369a0113e536473073fdb5c68939044facedb05b9c8713ffcece4af97ba8e8c8c6438", + "02fbaf43a499201d2e9e9f086ec162b3a4f8d858cc7aff3147b372cd1ed638715b2e7309a24d12f7ab010214606d575ff600eef46b5510c672559a017c1949354bccddc16455760cac03876cb1299c6ae1d50399f79c7f646f17056b941b6db1ddb6eb6fdbbe5d5cfbfdace2edc4f1943f62e415a09e17ce6a888e63954ade340171fb214ddc8aeeb9751dbc1473391c75e10af7bdd167f6be86110e53c6e1a66b2b11c3504a51489fc6c5de8d828d11c7be51c0844a55be1450b1125102aa7fc09b967bad89b98feaca06dd6d80040ccdbe6e983a4d449be1d1093f417f378b12bb79cb6e108204dd77c024dfc876e89b92b3feece9cd9eb48bfaa7498f2b017b42a3a1af230736fa1687cf6ad6a7c35673599527e1b6f71bbbeb478f0560e14561dd15275d96fea9270628530b88c58005d69322cef51cb9f53583ce2abbaa486c968af7e4a8acb1a709e1f5c9a2c696882cadd8d74cc97e7dd2dc3d85f7968c21d9cd0eabc3bedc003cf54701518bd8910a2a4ec71e25c2a4b47e32b901057cee041aa2ba55b7fbec5e70199b47a1", + "e112d89daeba5bb84cf23bc2fb0e4a399cb462d1936caf78defcb67c15cd2144e86a21074e5d7a6f5147fcd33a6f31895bbead6a2a35520c17030d8cd3736978cbe1b78b28d03acdd0d0b2d53d3dec52136ca4fbc3332b932d873e66ccec16761bee218403", + "0291b00b8f7aca1e6e2fa53fe5203221c4d426bb7133c56781fb32cc6b056fc1cd4bcf29dad3ef28258d5e6c6616715b22ee2eb7ed611a551235f3c5b75a78ea9b4f8662eed26342398037fee4e4726a4bd9cf64ef6bba85e9b6614cfccd096b82e07857cfb08ffa5c7513b74596a3f8b95db349f89227663c03454abc5e52d6d918f26960111bfbf6767abd703754106bd0cbe0f9705bf67bc925b6cad73c6e7937c10daebd019776ab6785946b1c54d3136dfc135a7e52c239e8dd22788eaf85080f0fa4af8d6045dbbe059bacdc16828f3c016bdd9a23691d350259ad359b7c01d9c97eb3f4ab2e79afe1f9889fbeece741cbfc480f8c682b983c9e7c21ad95387a19b7b72cc78388b972340fe8bcf73294f98c8db5f4f7ce85330b1e19c930b02f02d4c57c5d85a9e80f48adb3534e5c38091e46c6e96c00a2a8363e7c2aa48d04f85dcd797fdc1849c8e2e4b400f19feefaf41a9183d5211b4ec4603a36108e718e844dfe65d49a1413d100665b8d067498631e83843c94bdaec9ba3697d2c75866a9b59f459ca46473450a8955" + }, + { /* i=8662 cDividendBits=1805 cDivisorBits=85 */ + "148c74167f210c9a49a4c725d16af2b4b3af57309bf356e244e72a19b29b58c98bcd89ab9fb635b56fd7dd42d8c7c9b51ed746ee1b8b1cff58b555ab96bfcb07a0623a3bc838f56cc06de2731c6d4df960c60cac3515d7e0aa398a7ed5a06d0a7d7573c22a71e0f1fcdf7ede413c55f22d4aa9aab476d3e5637b54df911c9606b4aaf2fe15a2b17d4539146cda115a2fe31b40e50aa9708e0ec7291d7e9fe0ce4f3f775887a89eb5d6dc5bc14a312e0ec5793e861eeda5f0aee0595492741bc5ae28fd93116edc1ba559013812005be8d33b1f2097875689090c860fe57852c95f86", + "15f89a724991aba055d4b3", + "ef6d0c331783466615006b731357323bd1f1fad2312efab62a37e3589622ba8ac00a8a4699afdfe6eae00b55108b04f5613120e9278063eab7f12488ddef6cff8aef33523a5a3cfcee8c9dce921a6989b50a3e71d11d0750546b3033fb06328c2c1d7e16d6dac80bcc2569bf25f0d89e8d63b1e4748b4ec408460386d96140609764194eb23a42bdada9ca336dcd54458164e03080dfd9838a5beeb9ba4966e9143d59d800a57a8924c9dcb90b097b07bf8a577e26322cbbf6c83e4ec4311e27d39a29da7d29a849ac0b68d729b0d5426f1e4367188d71", + "0effba73c0dbee50f7e583" + }, + { /* i=8663 cDividendBits=504 cDivisorBits=488 */ + "55c5ffe07c018df07ded51ddf3bd9a1d174536c0b735d0c3212ab65b02bb19337401e7f4c1ada22712bc2a185cc67e49c447248e89d16f9eaf82f7cc70a635", + "1c56daaaba71d8e5024228237913134ab57d87d5f17df52e70472e5c6acf6329d3c5f859e2a877ce351aa842d2535b7cb6ca85a4e417edb7f2d873f94c", + "0306d3", + "0b2a1195ac5654586ffb9e7123104ff81798e9bcf2a7a46cf58461a00a74423fcee94c4e7712df37cc65a5cb1cfa4bd42b91d949172b98ab60c11e6491" + }, + { /* i=8664 cDividendBits=2953 cDivisorBits=37 */ + "4589f1c41153b4fdabba5ae054f57c6710a481ae85ab0939c8b1f3333ceb0574eb89d4cbacee944888c2fe37e3e4bacc49610c491384a24593b2c2dc0d172009bcfa47c0c66363c29ca04b47fad1033dcee84aab22ad9d3aa81789bbad9ad0a4608c076863e3a8a54878768b15c97b12f7a12c985ae0c69452c3982b120c53b758bfe6665cd84ff19e99ac9dc8570ef4099c2a86e98bedccc1153bd7173538cbbb22e4c9574d7a1eacca4f6764cd835b72b8cb7552ebbec2165dd98a7da6819e38e57ff1e081c1b2b6b78a00e73a255b48745d0ee1b3490449891074bcacbc70d80de0179ecb979b96bd1119d2a94bd4a21d647298d90eac53d9ef4d5f87257f7c52d781e02c88210707b99a2691186a100a1df56feb768df3c221c4fb11431a31baffa85e5959ce8f90440588ea587c082f7aee5610c59464839482d2fa662a956083bffc397cd56f9fd86e466cd2451a46d9883d42f08450ec174fe3ea30e336931bca0e5445d74c067323d149ee736e", + "100005c9fd", + "04589d89b1e5e6dbdd6f73f8cb7e58e480484bdb97f5eaf16ee7a07fea27d656a0b2fd9835ef464d5fd94e440045afc04dec2d870bdb9603584d627b619e1045ed79fa7ce6aba43dbabd5dcf4e9f6ff84bc9333d94366baf0595796756d8b0017fa2d6a883420a4c282a1b4ebcc31fc3d9806c2c2752a6f744e2818499eea3525a9111011a01b22671b4c34d0aad9590a45cd93b7551044581e4de6b0ad4c27592de487ef403962fec563a3cbfcac83c5c6ebb5115fd4876912d74e7d0a68e27177eadc63cd002ef93c28a56b6da7c5d299107f84c642f6b13433c132bcaf75255fac2050f98a916102ad52c40d179c1cb9b5ed0688c8addff196691e510ac122a763b1e7ed50af3f321e9cf3ac6d2b94c079e3fd39e4d23b040c6ed90c384fd7042262c1be2472e6f32449d7d5496ec8ce77d7ffe04049911bf18191c6b64ff033f669effde33b7617d6d9344e8e8e1294da1b104f210ef609b884d9a2ab8b50b3cb32dbcac399237cc2a8d68", + "0a57d20ba6" + }, + { /* i=8665 cDividendBits=3593 cDivisorBits=1321 */ + "cc0e38955fbcbc9c1caa9e60a315e56f18fc9b8e1801047ba27b19742f0163d368b5ce1078181b3876c0a374ea0bcd9f7c1f70c6f2f18fd1706f941806592b61e3e9628380423d68bf7473ebd4ca26a7364b2b69b8933aa5d6c5f43d27502833702f8329c29c8c562c035a2cbdaa62a7286e03b33364c9d3ac38435484944f72a1b7d316eff3cfc25ad2a8a5c7b87ce3392d97268c76bca80c2ed8f328fb37d1558c4acc6733025d81a999fb3d1f05b37bbf6c848777f9b4de3cc9fc8b64870d06b8053868093aa746863005d7526a7e4e94db151f7d10e53e5b15bd37cd9009c5ab0da3f5abc863f5751a396ddd5f2bcdfb1be34d4fe5773492884593f7a0f92e0ee8b5340c6b227ba39453bc3e04e4a82faa3e21414e77ad108334c5a4155207f89c178e8555c2e8cb06699097178f3904dc28efab064fc7a9561a3baaa2b7cb34e9024ea78f4cf624f11fec7a8c0f798388e17a80c967ee85c3ce29dbf00d63b9dd040bbf24e726a1fbf4f374bb12e4328372bcc9ee41465b00174b670da80e4c47cadfe87aa9861660210c7889e42eaa77da0e8131331a33ff26fe678e2ac9be99dd06a908b7be84a58c5f9663b619bfac724a7da3485e8b04473423454846", + "019bc092c5e8772794e20dca30ee9ae5e401bb8d5dc0021d190b074ee950a5b15d32e08f6f8605a21b742d654a9e54de939e693a0ced6fdaf1dfd3ef0a93a86b054744ba03d7973f3b0001be56bd037fe2a8fd010288a4b46350f58f49b91964bbb35df70f322ac17e5fb1a227677336d3b52dec67d68ca2f0eac588477d6bc359fc6e0e683e1d9cf4cec78db20685c2da75f185e46605e63a63b90700a5145f1279a09cf1f3", + "7ede3b47b03ccc1c62cb1304e7f51f18aaf016f9d7dfe197c9f5a8a912e72071a75cb72b758c66aa637c61e042ef459093bf41214d750247aa8261918b86da279b90c2955252f66c6f79479d7d40d4314a92c2f0c912b04a5ce93ab3bf7665bfc4d61075530c260d512f27c7c056555bf255396a55b0b1cb3347974afa5c9300bf650a5a41f887ee018989261bcdd9a402c0abcc1e7bf5753c76231d413898123769968b60fbc6dd034f57bccca13e33127281b550baa0aba7f94e78f91dbd8d4b78774d4a3a4b1a93f159d12939ade56b8fbe4c9a7e02799f5bd998c1569ce06bc1444cf7e1c6cda3f6a30aeaba32438c5a5f1c110d425b3799368f3bd22eab08c4f30a38a0e50eb191226425cd16791937694280c89fb73ddf6a14", + "4046caa650e268a388c6708acc145f9be1c0248238d5cca8a93dbc3625632a6d1e5d7358069fa204b156110890b7c60ef48f8c6c7702f8b6457797b232548dba140d09e2ef382369b65c9ea1437d50ccac0ed065076e2203cc91466ba7bbe44b67a0432cb7f659bec6060a38e3969bb08acd3aaaf0bdac3d3a652ade2a6297ead4e2b4c2480181a6396a9031aa5dbb9962ae1417384f869506e37fbbe1b269491ff126c34a" + }, + { /* i=8666 cDividendBits=1565 cDivisorBits=403 */ + "0ad97172e0515fe65dbd9a51f3385eda8fade4704e4f5bd9ce25a22d93cdd36bbed6164e47a5c0118f2b7939e4fab9246a338bccb0fd34c2230ff4ed951bde064a3e25269e6a468c55eb3baf71f021d7240fe172063b0f76367f811bd9736eafa6399fefa90244964ede728488ecbcd96c47c928a2616e4ba22b84b854623e7b9e0dad090dc271ef643334b37d281733bf1dc90a30c2d4a8f067dfee91ff756b89d2cb60f457d6967ebfac58ad8d06291de7dc30263f567742e95865f095ed0da0e6ee51", + "0422a881b958535dd5790fcbb417545c0ea4c855816203e2654f8b4df3e8e3425e094beba2923bc249578409c5a34b3d55ca48", + "029fa0fec33438e2e4768899417a466c5ba5ba04c018162b8ddb1c0025b1c55b6c4e6b704080798313f8c862a736d24d04c6fcd800c90474253eae46f39b83c80a83ebe6d30b8937b028613839d7c8fdbd5675e9ef817f6ce4ba2a3bf4968ad6f2d6c24c0b97d78c182a198003dcab03624d0966b742c13f371fe02cecc1811d071026b0e7f2427eab758da7634c53f53f0e", + "0144c9dc572412fa9f110aaf1905c95203ddf004b35ef63456f510154773526b120fe7acae432e44614158190911c83a862661" + }, + { /* i=8667 cDividendBits=1574 cDivisorBits=1101 */ + "13f71b6a6ffc35551562d69cdb361ef283da62e1b77156e704b7bcc8681aa637468831b7ae014759e80effbcaa67471611dd1bdb1cccbed3e80ab6b942d865a8b2e781e2e3330b4786599c5ebb88541fda0c94b30bce95b27907cc084ba86e7d6688cfca978a4f5bfeed98886e28c807e47aa85988afd2e71a6d338b6f27906a93d8507d4ec532f8d094b8b8dad94828b0b09db64b8c99e58ebaf86ddbd799c4185fbb441966f4b8f0dc3718003b578f9dd0d128e2e180b7b0b2fd83f0afe35f2592e16150", + "084bce6b2579d8ef260d9d43d5f268bf65e81dfa98015e5f7070803bac3996ae9e118fb1e8ba6b19fe62ec08a21136cc458bc0fa8dbd877711f843b9594e1e21ea7189c6a76e8c3061032a77ff0980104e14afb6c83b1fd55f62365db164467abf35070b22812efb65fe905449f50d0b8447be95443f8b72e4fbb84ff7544200bbd961500892fffa8084", + "0268158af14982d54ad1c383e73d6eb0ef624668442e785db564345a98f28386a08bc771a78aaa55d478a96fce73b4423d884587f329d8101e22ad24", + "03f3411f4c9090849634930fef84beaebb06743239aa5a9ecd518c8992a4e724d32ef98f3b30dae5bc055001c13ab904a4f2fe17ab89a38a4abb421a5b61c3602bf5fd13ca7deb81d47fd1e2d07f0f1b2c2df0c2c7891fdf1c311897c5d622bafd380f814819bbe8c660defea7ad3bff0f6835529e6f0e5bc3757a9dab3abf0b3316501610e8c1461ac0" + }, + { /* i=8668 cDividendBits=3136 cDivisorBits=2331 */ + "0aede0725662b3f33d46a4053fc82569e8c55219d40cf7d4d7f57f251639539fd288029b9d7c11ff1dae6db61251813b4813f46870346e97ef444393bbc5ab1bceca61343cac522a75a5d7fc786ca2cfe2b452756748f6f506ecb116f7497ebdfbbea49e6a1314faa23dd88db1abaa7c1cd959ff5779f8d2c0c13d44466dd0d2349459caad1acd3203c127ea5313a2716f5844db10024cb09341ca65e821a53a12f5cf2edf3bb9534f0bec983afd44cc5ad001588165aa034e805e0dadbde415f0c785bfba0edba58e2f69a644a41d182a18135812fb16b8d150b23bf3af448c70d7561560148ed6bae126233506f81524cf97ac0ff8221cbb4beae4c9718799f5383aa3f4f54978fc1a8b4d4a47da7f4e0758d11a76112dc31232e78111c340be3ac8a428816a442444205d308a35613760da4dd4d79d5ee6a2e8832d4d371ba09e7f3b3d99b59bac1f87e02744a41362c6b9f3c261bbc0a072af4156ac342d0cf9693a9a929ee6b28a669c6648be2adad1f0aeca349bd779c1f5f71d48ce92a675b49306c65788", + "04074b1c27a522cf2bf2920bf97b9040fd0906ad7746f84f681c9427aa6528361333ea931b5c7a3001c8d3f0f53322e31c7e10dbfee62bc26866753d090c35ce4fe8cc3649e2c2be7cc38aac28bccb418cab1d793cb88f6e9ccad953441851ce9704fda697b2d00d89cad632994908f274ca1996f452e4fb064f3bfd5c100f9588d51b8d18486edfe356d6f1e7f35a4373c3656459e46cd375880c167688ae14cb7596b595668365d56bc4caca24cfa7e90e6cd80ce41896b07fb43b9a0a9b2446ac495d391c71bae7c27bc079ab13d9d880a027e42e910509b43d2e04631b669487393a2de67bc03564fe619b800b95692be921b0f18dfd2e4488ef81aa333b09b6127e8657df5a949d878a7b3e2180a58009eac49fc8f8232608474e730cecd92a5d56", + "02b685c11f312d74941e4c3cb775fad60a60107333a54ad7668569ed7bd95706d52d2413953dab03fcbc1a225fa823842507ef9dbf1555f65f8fa547cdd0805e76b7e700f11ccf2d6e0d3da278c8a01fa1aa71cd1104fd70f9e5d773db1af5e9eb9e42ecda", + "017a885b63bb3603a735418c4018443b42036c21a6931ed0a9760134a043763fd2a3636d22e1974159f017ad68ba4dd40ce80c9343b6f118a2170f794e23db5b27b38015a7985dd490a5160ab53d728025b27b9ea4a66fa1b976ebaf3cdf69abb80dbdf56eed4b660742f25e6062c314cefda7b884ae76da6de46dd8d685a173641bf3940f54a4b360429ec13d1b86738b7da7f0c745e5eb3ee78ff7332b94e094a275a98b4eaa209cebb4dd9ab8f6e0c8ff0592628add2e23d905a66a82651e6d437e0ea8f0a0b336da3de2e64a1def2f9cab047586aa4e05866bc47dcd92a0dcc2ade9ee5910334846904fa7fba2d3a0a689d66ea8445185cfba72e144cf22c0af7c91c98ba653ed0d703362f0ce3e3fa82491dda9212cb2f6bd394d554435e67b944c" + }, + { /* i=8669 cDividendBits=3154 cDivisorBits=123 */ + "03ae685c7173fcf4584d51a625e529f5b48de754b6c0e64c91087da48cc5463fda488c4dcb374cd5e9cf6ba60e46b4efd6ab752a9a500e1d50799ea8af0c77e74e025f2714a53791a2b2b233b05193f0718210f37be0bfb9e967c1ca6ce35c0a18b89a33860dc714d885c5c35ba255e8fc14f81f7afb8a14a2d750ea020ab39731d67b2cfcdca5b0b5130d2467bb9620e57cc42932bf6e7d464d30c9741dfcbf6fecefd3fe265b24c022fb59f05e36c5971705d7d71fbc9d624acd7e067dc2ebcf85eff15607b7320e2d926d0498c38e45d6bf2ad3824dfe8f9ad9228ba049ac9a15cd5f887dc6767608d503309a8028c93c38693356582ef2817bf14a3451db8aacfc02ad1468469542548325b960b8616f66678cbcbbbec9a1960e9dc5f356be1ca2329724b201cb8ca13c53388c403938898036ce8ba23782cf4f430af4b2acfab48b83f04fa52553f0f5c7d56d67021d4f7a22339223d602dd3decfe3d319bec597ae03ef80177a7b1ca7c56dd8c0350256fdcf1751b6776db306f2ea4c9c5a7622bdd41de5704fde2", + "05be8508e5350aec33d7fb5b0fdeace9", + "a40fdd9afb5c4cce0812739d13b07c5ed55a356b09c8c23d2147cab91a9e4517dd7a6121f6ff4751bea7e1f00e1dfeb9bf69fbeb6e8e6f13ad3b373e1c906f32f61c002f0215f2e735cba3131b14f6d0a13e571a9908b901b925e33b56e60f015b6cd10d1dcff813486e79cae6eb4356952307e2088e185228afa37df8e5fd21412cc51d2d950de20d54e37145460bb5b51b57a646f182a9f5234516680e7cee948687612a943d67b23442e815bf4b4c49509022abd5f6e07aa208ec05090db8898f4d602998154c096f7fae2d97f4105380ba74f1d90dc967f217df9d7e279855701ff0bda349b58875b31bb6fa29825dbcbaa909a8bbe6de984639d33ef4338be7ef2c7da7fc7557d18d870bbcaaa1627fad96d13f40be84dd772c05eee870bb15c6bcaca402a93c0b683e52e9ad65328cc9394d559e39e6e08a1acc5575196ce7af04957f21de661017367f3fc9890814ee57dd837a4270b20fb83b6f328c58a05f20568ad2deab68cd44f7f7b6027205a0a5ac774e16d9a978", + "013184b0eba860f4b45dbd1a4efd1faa" + }, + { /* i=8670 cDividendBits=2040 cDivisorBits=199 */ + "d1320e3c56b1ef6a4bc319213991bb73dc2cb9ec47633793d2b5d5c291e89720e0f8194607c6ce3d93e6d511d87b28f11a68000c65f22d1bb2ba5c350fd2bf463ec967eb1a9396a7fdf2ed6c9e325c9537c26d4d733fdd0b5a50dffd071e490112f5e5f04ac983682d543b7208ad29113556709b1ca3d1618262d68e536fc0e8852994db5af29abaa699b6231d807979e5e3ac1cfe0a86db2fb7a3047c404c8dc536579d64a54414a3e3444b6b40d98e7172e528405c256d287c7deb433f2e2034c16941ea5e8ce958fcbd76c70c7b744f3998eb02503417286e3e5ee8079fbf59155f822fd1b10118cfe6a4fec3da1bd304284da37f7362f2fc5f4b3c08b1", + "6c0c0d851f62daa0d1d948c7e3a471df36612671d52bb0a15a", + "01efa7a1a97ce0b074a33b1031dd8f64bde511714ee3b011e66b98b0bbd77f7bd6bf9dbbe7bd127a7c783ef9464414930c40b6abe1e0411acdf43ac7105d997bb8782d8dfc45ef1cc3bfd35ce2d5b1efdfc3c1634c0fd9e72c5338bcf4c8ac9621621a836afcd427b2a30a0274fe49789e5da6a82a67a8647977c3adb04411bc1cc504f93cbe229e6b69148cc3e8652440a4927762816abcd729c3b53905edadc8abc23d80d77ff1c4f129e8af32e8b2940b8f94073be0f7e0c0fa4cdc8d65a0bc9a388a1ce879a144225e7e322cd07eb2d74f1728600bb6156657e52cacf6c3fda54fff4d0cf8", + "1e7008edc226ce0ab14914c5c0d2f16f5f8d48d631827d8181" + }, + { /* i=8671 cDividendBits=3292 cDivisorBits=3102 */ + "014d94234b27b9e3107b33e1f417456ce5e801178df544ad6c0996fb0da953836cd7a377d1da3374474ec406cf471e18c90c667f86e76898159d9ae5d58c07bc15e5a535c1c1acb7b3fdd28af5ebc065308ecbd87f6f75094ec005342b13abcdf5f6f27095bfd7eefcff1fa5e21a42a71d55c8cc04dd2d8c71795538f7be71e696d932d1a71299098019f05641a98bab389405d014cb648f1444d116480501153203adf52e66965db15be725410cf512d386d95d000b4f3071848404df976f1adffd46ffda225a4acd21e23e16d68181876674a13fd2e7d7639ace04d35f485084b6047e30874cc51ba20d6a81d7e3c7acd138f21b7c46c968b4f7959388981c760f562e410130cc77bab4a2545e899c5b169e9d4a3be1eddbcc628949b762a6c42fa470b805f50ce308213adf7ea31098c3d224f05923e276bbb472551a8e245debc8d235048d573a89f15c9438a41d4c0c7b97da619eda1ecbee9359eede029ff721f9a0279b7ee87731ed82b6a2c023189b8eb624b52fe655cef0a6f1b553e7649e2edba0fffc6846ef0ded71991b2d1d47c11a035ed919e598b0", + "02e8df4b894768dda2eb46130c3007d56034713e24c669c88f65090e2af031d16f02a8878913a60c30745dd139a1171a10f4dd7b9240762f3d88dc4ed76d110c7eb068c1c273c3a4ab90a76c3468f24463bc57e5201478472569b42c7fc1d33f87e843b56d890dea77a6a4a3816c12e233101f988730457ea32f7d53ef719ce8d11a671fcd78c5a8aa88b37766eb871335815f8cf7fa72274c98b2652478f0b45c4482175cb750c6c5fe38a2781c0e5a1b2e474d3994c65f863f87420b0091cb2b76c012ab5218ce953b182c37e647e62dd31622491a6c868fc2ce3e1d51ad3234c3bffd3037b8b3a9e77d89255b2a5c08272d4bf1ff8d44a29df8845b2a0afef5e10fbe1b437163dbc6c53b352ff9152145d2df618ba4e9f923b928bb687950fee2790cb2896359a8e08d27f6f0dc9a6044d4031d5a240b352ca8069f22bd861cf328fbad381ac3e96f1961a0e9ecbe112213730c7625067775e4284ca026298cc316abdb331852c41c86e3addd0928970b616c9424f22924d61da78c4717beccedbe6d", + "72a5358612e099174c66de8f3be6a781c30c0966ac6ee72e", + "02c318e1db210ba4b13ed9c79f06296034612fd2b42b45e398ffd5924836e2f0c1364bb415de125df034289bb26cb8415c1627771a3b5322be69a5e707dd0ba9f2ea53a433c91407913db2f79630863a8a76ba984da8fefbed1490286524d4e2e87cb9e001388631d94526c928194ef346af818678b30a511a1fb1aa261c89faa602c28c630ccb0f215126c4a4ab646f68c08b137a47b8bf0e7718767efc9671c9007f34c600bacc97a8bd9c1af9592a9d57cecc5863ca2c7d3d624cc67a30af770c2011848a5b84477b5dc35ec8c2a09bd8b1f9887890beaa768d0b11e85fe88bba82c0d5a574a1a3992f2a263194661892b098b738c65f22c2007774b42a7902396bbf560d47b321cb8e1772425f284e983cfdf9e3e4cf41a02e35340c9b4bee1b094ec078e668ec3e32d5af98ba188532a0f1d77e4c9d871b347b2b1bca0faf15526945115efdc0842a4291fd771c08fc4d523fde40c9f16d2855b6fd5f909abdde08053e0bc298d1bd887200dab8c51a5a59cf789a3ca27bcb38629c711eb183061a" + }, + { /* i=8672 cDividendBits=1555 cDivisorBits=934 */ + "079297f187db3cd22b727d822069e90458afe839f9fa69364c2e616afd352593487266f50e579d1d261af2016f21ced5f9cc88f79fed22d33f025c20ddae41653e9b9124ee4d1327a8a4f1b8d22b931e418315fe69ebfad43ceb3ee677f37491c778ea1d113699120b023e792054b0bdfc6040189baffa30131295ea227c45facf025dce52f927c0666016a7e438533b57f2b61cfef9d91e57f5e6e37c6b3af440505c3836dd73933fac3c242eba12a904159a81ba3566c640fbfac3cbfddf589a68cf", + "3d60c338b999701c53693baa1579dce293eace70888d90ec0fce81280e08c83b8f020e3777761ba345dba6d6fcbff015c4bbad5441daabd2a9aef4ab9e55f1e0db7dbddfb469a989716939be22b61e831c05ee21f3352858c7bc5752ab5d051509c0acee53a1d1b4ac3e55181f93dd1976e573d362", + "1f95a299814829b557cf868988e26946e2f8c9a92c255f80a0e624df503ef27c5ea9f146ed97c218588c66e8b974f18cd86c30c0145e67a60ffa7d5f01cd2be28888e44605d72af0398b75242003", + "0f9fb9ae73d0a05409e8222f0583bd3a500cfceedd10c8f223d83ff28691750589412a5173dc453b786ea59090d237f56ee740a9a418bde48ab0df3272a3781a2f710e6dafef7b67628669859a219f12a345671e1106a71c155cc3e65dddcc11862bfccd5bd323e9bda4310e2dd99b08b0aa0aaea9" + }, + { /* i=8673 cDividendBits=1941 cDivisorBits=241 */ + "1c4292ec14340a946b13a499ae3179a0e8da360572b5a3ce63b07c757f9c64ee7b6cda4aa8d43a070217f82febba4c0bb22e1e8bb9d072fe62e563f936bd85c1aeea12877f205670719fe85dfd5951b7ef1caf52f051314badfb3e2971429c9c7f5d5fdb969998ae0094bd37ae93c77c5e5952adf7359cd7bddbc7108f30b98fa9f471fee803e2e3fc6236f2960ffdfe499eb07777e79ee47ac3fa8c8ed6226dddfec929c971eed39a5e4ef14e0a4995f472c7a95f0ba3749798954b0be23e38db9d921fe8ce42d00fb4baafc97ed8ac0d471588d5d77b3be30368c5ef7d7292d3b592b555711d4140680e34385919ea556f9f", + "011938a435b23fe8a9825250202e036bba9163c730f4a283757d5681464909", + "19b9be36bc97058272d5c04ec998bbc9b313711eeb6cd02c1074308c0d0541af49816c3481e71b78cdde5aa842ed99e190efdbdc9e0fddba19051cc7e3cfcb5286d32001920243c87dee7b91fe1fa7819d38f35c104eba24602be53ed696c68d0a9ab60295f5086be20282bc68ccff0e0ac158ca52f445b3f600160ad7f1fcc4ededec2d66b3c09062af86af1d39812a2183cadce5c75d02a13e3fa8cf7bfb2b93b48727fb52c98242327bdc56336b523d7a17185665136df6943ff3cef003e7fb107d02cb5042809f558b5f3f22a2041d7abd0e3f", + "990e73d4bd868e08e0f61ec3e54b94666f376dbb4430832e6c070c65f868" + }, + { /* i=8674 cDividendBits=1125 cDivisorBits=862 */ + "1e3f3d9d8312572a0bef13eb7a44102ce3c66c65841ca575c78f766fb6d71abca93bd3bca9846e49e2e0bba406bf317a8d12c2d274e97be01a3a9c58e84c04a3e596bdb2e6da9edfb5a9f8a2cd54457e34a626a13076b48e5fb8809f386073e43896e3e758ca7c9981e6e83aebab78ad5c564354df498056bb588262537aa0b90462c832b9083fe8c3c3424bbc", + "27373cbecb7f264087a29fda96aabe0868843589e8c776d82db78594b989dbc395b6002f826f58dfa82b5c8f7bf13d933cc3ed5267803dcae320f9faa4fb549913f90fe2ee8127d413f8fac659c8bdc2695c14484eac9c6ae574e12090c4dd7923078fbe340921971a20a778", + "c573c434f1c82bd2020577835bc7252068a2abf88267c78fb6c1dd93725050e53e", + "078a1d861e992c56067b3baaa158a518101450fe4297771ca47711490f431bd85100c1c61878d7d18442b6b32780e8af1442e59646b764c07a97db8a92cf6427e3c91dbfc511cd1be8759dc9699b0f1afdb767e148f27232c2eeb1c51e7f5a8e2c2123b61e4ec1d2640b64ac" + }, + { /* i=8675 cDividendBits=706 cDivisorBits=141 */ + "02c7638e9681e40d62990d16a8de48f710900c0c65c80cb343a9dd4535c1b7ddd713f4ef67713f1f061a0a84abce5bda200b7fa0d93448125cf23a4e9ebafa4bf1ea959b3b2b15ccfbc3c9f63a8cbb5b17aa07d5a0f25f4c5e", + "174a4ba4b454b7613a70c00e1884a425e520", + "1e8b66cc9582d8a4eadc020f2ee112adc8d294ccf7d74a113d1e2957716acc59c4979b4644b584c67f2000c1e232b16974c12d1a1ec0f796f8035b9f37e5c3871f1de9311fb38e", + "171913a94758d797cac09b4431b58744d49e" + }, + { /* i=8676 cDividendBits=818 cDivisorBits=24 */ + "03ad8643eef3108de8afafadb4cbdd8cd03b2778c670220afa97b3620b0f602cefae4572901b743723d722fdcf0b258c4c65d288c17202f2e0b896527a0ee7f89428a7864a83aa8e10262fd356b6f890fe6ead43294169c2d088b33adfcf910a38e627c7639911", + "4bb9a7", + "0c6ef5a757f382692e6efd344de63b3cceffa632db5da160870aba2752a07885a8daa4d6652dffe566d79d501d1acd753579e9f9a89aa48c3d8e0f61ec670b3adb79b2e009fa37625892da2f55eee7a2fe6b7cfba36a608ac381597db0231de719373810", + "2a76a1" + }, + { /* i=8677 cDividendBits=266 cDivisorBits=178 */ + "01e3e7159e0c6de3284ffcb8f59ef2d5c980fabb392af732cb99273d8c7c88403748", + "030ea1b0ae2e9cdbf0b86284e5fec395f22ad6c019f983", + "9e4909f71e58b95e62281b", + "0252c8cfd0e800fa5f2f76b00b907ddc5e0e9798606e77" + }, + { /* i=8678 cDividendBits=3315 cDivisorBits=778 */ + "069e2cf5c59fcff7b575e2de48e99228d9870fefb4c4c5968cea858f23397f457409daa1ad759056b6dc8919515bf8f33d2c1f34d3864b4a3b5b966f6b24e796994288b94c4126d0dcbdcf74779dcc8a15f0bdd487ec1ee4c4895aa91705be2d277f09f7144547c638f9f942a529d4718df72fcae0a7776c753519de3375b184af4a53b5c61718dbfbac73418643e71063ee7ef8fc7253d579cac1ef7dd9dc2958bdb36152799268e665768f17d43b3e5e1cc98952c8a4edbeb8a721c49b3ff01e46efae85954012107a35e7d4ff89b12131f026ab4ba4b7c5ee09b16a0180c56cbab8f3f287dd10d265a32a0c33d5a1bec5a51075b57d9f59ed2ded901490a6a7b31b71e65bba5b7e7715bed8f452543a2aa5d1729c8207e0e7bba066ee9fce667edb378900a5afb64c4ba20e1f35b25069bebd49ace213af813ab69b888e4f474f33491d074199f628c5c8ce3b4c42beef1d29baba54053fa03b73a36042e811c3492aad6bf715c7f99f63dd0af093800380892d7e2d01f4d8dac54486e5808766315d4adc248a2ac97a02105e18af383d8db4032e3be130e1d01a5733f0", + "8fbb28130e871b4ddc10e491813d5deab478739ebdf7f99fddb51b17e60225285925461bfeca918e15e9876c6405f68e49b823a7450042a5d0fb274316555f42dd5326a79fb02de29c793062bb31103726d90643c172a284ae5b7528ab876b1976", + "0bc980c1faf5f3b71ae9cf1303ab962ab651a1d1935bd68ea59a88eca6d29dda68b28feb2bde349313d0940e00964410a70106ac43c1c0c03d75ed884ae9f6763a3487da44e9df335babf7a3aefe696e1407506b793f7b4d616302e85fa79b87a6c62de1c0c76a74abbe28252352908fd5c76e4ab86d74fcda9f30a0afee97923691c975db6655570e263e5d6de5661e859e77eb5877b98ce68b728130f6970dec6a6b2f52503f704a4f71daa0aa3465b83e72a9f57db5b4d986d382d5ac2d395f0b9ec5f9aeb06f81e6d10eac214c007827108f7fedb21ffc94fce288ff1da7db0f3255064c3d90344022e7a5bd108fd7005563d9f705561cdff6d6e28515aa935993c69de5c3854921d31e32b0e3cc8a2796c26de671f68ae5a7bd5f4c4823f9822de3ccaf737937335a11b7d0e48f6b02c2d5596f1a5f5604edb40bea", + "22680ae5d2679cf09f58f1bcb4118101fb711d979e0d60105080c9eab7234a1857a541d3c050bf5bdda12e50919d485bdac529d788f9a8678abcb7df1e245e13723c4190f957c49a1ec5e6a896c5fcb1cca0a9d4dd5f20303c535cee7c9361dc14" + }, + { /* i=8679 cDividendBits=2455 cDivisorBits=1541 */ + "3da6f354e226013d697531cd487237ae4b27596573656603573bcbbfb8eea900daf58a0df744480caf4ae8837a29975a73ea15a16929f83c4e3db86daabcaf3d904f2c809d4168b2e3cf0cb9860d7f26ac3cce031ccef13e2e66ced410d60d7ba29b85ec47793842b0de5d637b6e983b42eeeb649cf6a7523e7272c54cf3e11d64185886fef28e5a7c05adea34e8841a696977010a6be0aa5f2cd8047ee7e3c3f13ff1685cbdbe7881012f38e4e60f3e805fbde488900fa1fd77177873f8c42bc70d7a20078418c9d9d7d7c548bc9d4d3a1aa27725d08fb99d8d40d7bbcac343abcf67c03ae7bf0bc9d9fa07fcb800ac4988fb8d4c15d2a8c237d154b98607556d003adaf68ed0135f034ed643003f4cd20ffd218516c75069200ceecf7c930fdcb7d5c37aa5e662288525c81382d7224f6e23", + "12c51eb82e6a43cba86f9daef5af1277d2591bc559a99a54ac5cd4e72af9e9d7c940c97a72f9500f08273a18f9c1de9e8ae8c297de476f4b7f87cae6475779c92dad92973b60503f4fd19764bf7379590f79fc9e515dcf9867a4e4848fb484bce428d70388c3ffc5d3fea7bc81d1b6298ac18efd89ea0bbe9971b1d62ac44e5ff4dd36caf52056c3fe72bcb807eb0ce944bf3a265683195a08f77df34a8b0c6ded0973202c1b14ed867e7e5c3169e39c50e9682b536c5ef05f019d3bb0626decaf", + "0348dc46034242bd3b8069994bcf0f45b041040fc54daa951e35c34d7956b46f9c02cc522c16689b94004200e5998a7993741f4a3c44e799877f393459552bf64fc246e95b3db9fdbba114f26059341761a9b398f2e18ce4218a69d0fad5a625c128b2365f65f9f7f70f1c6847085409a350c9", + "0ad292f1a3a386ba0fa4fe6adc983b9c7b6e369bcf17949d6c44b986d8cf0af6d5cd61fe7126f60732c17cb613d632271a71477258c0b2ac76253306cab0fff33b2faa13d777c7fd319acb61db3e0cf64a82e53adcf72e10b1bd21fcf3da3ac48a12430a47407e6b9407f7931184d3c22ffda1310bd8088a0aad589bcca70534fd3f5591388d9e7723a6189740429c39ff0b7969b64da2aa71aa618eb5a0af7dc221a2fa7c3d8bea39c90d4a5f5d249533a077e8db2ad95a1ab433dbdba59ce8bc" + }, + { /* i=8680 cDividendBits=2300 cDivisorBits=1623 */ + "0fac92cb316adc2896bc505abd642bfa84771e9e7c2028974bedb6aa1a25ff25f0757cb4873c212e59a3b962f8a74de218baa366f9b7032dd9210649c51ce89e576e341c425e96f47cd672d3891540705036c53fbf4c61396e95441a27e7e16e55b4840799715254bb633b28d16384d8fc9287d7c8a2e149dfd3769095921a4f505bc1e369f4193cf5ac24b09a046b158459b1293ed161f2f70a45de81a531adc32e8816cc40677f32440d2eee863f22e9a7b8896542feab63f49e638505321377cdf29eb0427030c62de6670eac23ea8c9270fa5cf9d0e0a269cc7fb7efe07e96e40e341fa2022acaed7544edc2f23a9598349e90029a5be721e03ce3478d77631d50f40a760863640b3dbfe554385f4c3f501ea11d7c67348cbc17df14a3b7", + "544382001c0df738a3cd539cd7af3701e3eb21f3349ead03d2cf75e7a9c787c9a50855d7a53ab35b93f22381d964048a8e94f1bacbdb024709b2529434ef08c8823d49aa6bd6b8d34e69dac9b18f42a23850161949740dae02d6d6bd8682c9b78b38c2e9a3e438c6c24c157c983eabf32fa2b2aca5249435cdfe1d39fb819f1a0735c98e826957ea8f9dfbaabbf1027209cfb260959cdc3c601cf2b572bf6d5c459c8125e999910e53f24c0608a2f5fc3a7465980d9685a2665a8521c831da642979a695d169df1d583169", + "2f9e8678508860fe64dbb9c85032b2a576955cf4b6e7bdc5f29d82b6b12b8af0d4325fe8087011aefdced411a0fc4213d9d1c1d983ff80746b182708d688338d6b28e649edbdc4fb79387488e328f39940cd182a23", + "0cfc20ca3a60845eeaa15492a4deda15c47d33900d32640cc768a253a6844496490d1035ae8a647e94d23ce616b8d191e653950afd54957b0d228892ba89ab33fbb2b9c2f4c08534669bfa0492e08243e9dea20c074b33866e5212529417a399a790d9b8d526069c288d96aba679de793e4898458c1c3a4d76d8fbfb914100a07609fa4709ac1334cda21cffaa12717b6b30f30cd4a6504e2497e45f955f6722a3b6ee8f33ea7864c90418464e7dfa83fbb6b91695ea4dd326db4f616edc3020debdc76be32cb0ad12a85c" + }, + { /* i=8681 cDividendBits=2845 cDivisorBits=1366 */ + "ba19d0713ffed6e3b25cc1f6b698214db0650cd34049af998bde75a28f46dc3b5a3275fd767a01efefc09e8d9a7d38e2b33b2b817e32b45a6312f5ba0f5290bcfb324d62410106d21c0fa946aa400fd21ab4063c889dd54071f026632b835a4315e0b728a4629227b57368be780e8616ba6e9169e0d7dbf8d9f1d301d282ded8a9181164e5b0db5ddb44b5da23f2937a0a166f49ca95315b4e030716458266e7be294dcb4196b5c011663d50f0b3ce8a81e1f04fe6f4addae187a548cfaba87f2a746751234f47f31d61291ac09c73be81f5129a12d13f1855f5dfc627a3920ad2df51ce5b759ae6bfb00fe1361be552549b1ca3f0008377f660e1e206039ac472864351807614ab347f6e4f3aded5a227bfd1e03a6feb50d649fda0bc27236f8562561187e19783fab73bfb0f1614c82f39ee55af44f31a1afcac8831ba687f7dbe5ee986f43bf869c11d4a2c10e476e12150f304425d113b81a3ff58c5d9e022721d", + "09c88aceb08b09842e3d450d5f1f80906e26e8ba228c99fb26200fcd546a33e6facc5ef0801a4bc2ae9a0d37e1c431d6ce2f9fb538b125dffd0101e01376fbd0f286df0fb27b97bc9d0f35e5884ba999e08b92ab24434e8e5144b6ea67673fb83a665a8019ce3ab209714a949b0884a429c4aae432f2e3428acd22f2f260c9d0d8674c36162350e5b9c9b3e1233ec9a1f8f835b18ca1a9ec6d9e2282fc66f30ee403f9e09934c9215cb355", + "1305ac93e37e57237806293e0301e4f918210a7fb4e1da5586f49052fbb2b72718c35667c1505addc4062ffdf20daa0bdf14322f7600ce56c1a13f3e3e013f10213c75f621d7ac46e9983887bdfcbfb214352d11e47336c8669f43d706b6c7dd4780bce112731968ef90eb652a1b744a9a2d718ea8d71fbaf27c74c8923d9513b4e6e2d8a6754db887702b02ac2cd08212ae353fa89e5e6bfc878e6c79a2a2e12c63be6ac44ad9bf2ab13bf8c7de5e53bb0d398cd7ab38c13e", + "05d4dd42a7a9846da8198cf5d3971af588576632757fad79672b2d6e6d67cc4350e8c0eac974ed81ea50521f0c0c593c318a323740b099dca01c8cf827f23d8dfeb37f86b1b05e9e815cb739f7fdd3c05652e60613fdbcc406220db5b73ca5115915eb0584b812d5b24d2f340f8e8ea7dc7da9146ee1ed933dadd6f9e6896a7563f213174d0825c6bf597e163dee06e2a7a381c067da4933d689a2ea4195e56a3ead063e500a88e6e3ee87" + }, + { /* i=8682 cDividendBits=3780 cDivisorBits=2154 */ + "01710d338c2c967bd032cd437f837c45c86198fef5d52783d7f7b9c0dc2fee156b3459fcea792237c3ba901946baf04a0a237d470d9c31e7880693c2db15848534d0126e19569a9c4f033c1254596949ba4bccf87ba45ae029e7e5b54b36d29a8e9d4f569ee13536b1d236bb565ed30332b7ce21402e8448a9b49ea04521e42937982cf739dad83f1da67521dbe0d8fef4ce6ecdbb90d9824d875d355913dfba3f0266233b0cba5d9404033090418b0a26ce701b9a3c777a6e1083c21e904525561beb36c209cda995a4c7786e8f29821d436c29074566bc414fa77db1de0318ab5212330627af9a5d25b67f5a7e6faef0c040bc6af01bdb52f5223e7bf6ac4dca324b6bcbe1e762282b0c784e4a8e783703c18ae0f22b2549c96b7e6ba3c5582bc7f91fd4bee325752131e0b5e53a28b18915835692d52533a16bd6b76457d585b8eefeb10df437b44c0d0768bccfd5e78737ac9190afc3275b8c86151ba92c8cf7289dc054ba0f2dd73b486d1229d7f54cce389c7ce6852f112b4aa65a2cdeace24555c0d468ecadced2ef3c58733485901cd21bff62759a0c2145f40f2721e3a76523ae4dd544e78090b30e36c4a6b942424708ef8f8c107c92e4c342aa70833a79448bb1db15fd817fdaa111cb9b69af1f950dda6ed659", + "88affbe10ec42599255dbb644f13275c94bb3ee2283993adbfecddda4147884bd482d08cfe0ec284337e05e5f5944783d952be764b4ced528f3890b49b8ffaebc1770ce5de3387dff10bbe60fc4338bbb1f761823ab5b2b88cb8ca44b1154068de52f7eee469c15a565110f01e498a432b5e599cdc7ac63044037f52734412c0fadd83acf38711ffceb51d2ade38b74dd474740e42fd7fcb221929b97e2d675f368c5583e7e21ea657706866f015c70e178d6f7029936b57231c1e796635b1556221b6b80c900870f47bc4ff0926113cd2a7e2004884f318460b22146a47bde6c0978be7ac3332688dc1c6e7b1ed9633d93937be957660ee8d90ef6b80358cd4f39e8fd0113b7a2653e6a5ad46", + "02b3310956b51157d01b0c9cbaf66c932f89c81ce1b10aca5b2f9c1464a6b9e518464e492ffd7866a0f588cd1b5f96553d411b622ce9d805f5db40c8277d61dce90ea2a0a1752f505446e22121e359779f2a743a6e336136dd046672e16ff4edbf27f8d37f075426f236ddfefa733e35bac3e07fb94901a53fb1a6aea5c9eee3ef46b7829160ef655daff6da93257056e35ffd2776eee763f529625a507d30debe9b95bee277981be10f244b0aa37eac5598b21d3b87b6e557ab8411bb6fb9c3405b0ffd713a796df647c2de", + "80700288824b306549be05b29bf6b271ea97bf23bbc3ff5840e01e228d5bbba95b921c401a90ed866f0d52113909b58bc5dd9c5d47d0b6e37a5d939912b3c0f998baf67851d9c52b439ed39b2babd7a7dab4a98bc750aaf21c62235b86252673c92f8bc03b532ad725217657759cbe6868deaba8d906fc6ba1fdf8fba8d69f67d41bfca41d6962c50be8da2089a38c75fbac246ed380285ee412551f2e396d83109751f59a68fbe322384a66bf201dcae438509b652f357430889bae5b57c5e97edc8b8d87116199e24fe2f3f6e01c4f4baaba0b69b13309cb6cf6549a4047eb7fbeaf41910ec885c4b293571243967bc136d5df4425563d8240ee8646bb1b7e5fcbc288bf9df1ba3ff70987a5" + }, + { /* i=8683 cDividendBits=1035 cDivisorBits=773 */ + "07a194eafbe50a7411dad60a9ae79257f7f5fa907f50db03428419c31b3b23d97ca4ebfc9b39897f4a518a5cafa16273962e9095839f1ddcf614111f1ba629f72c68e02bf26a46c63f947fbb5e0948b5d347ad3ed9292c0f85fb4b610f798ee671fc4618a467302b6ee6064b00ae1ecb080e99cc1a6889bbf6027d1609cdab2e8b77", + "1ee605af637a622aabe7d73f3fe68e9bb908cf809864ed0475864abd0bc03109d462caa5e96e5f2571e00276757018d15342549b2b257f3d6c38b747bad8c710453b0b30f3ff32531899ece3f2afe3f395fbdd044d9f7f00bf00313b0bdbe59ee0", + "3f39c95abed203118c06def7a03ea92ad0418aa6c79c8b7a242f42debfa7d5d253", + "10ed2e2487af5c1f8b5d9a2844a9015445c18b8f8ed5f6fc50f0aaec096c303bec8c1e871995e07793568de5b105e9c8bb8c1b1d83b64db12ea3fdfefbcd8fab70b75c4c90d629bda8dd1ae8d184b8d36ce7882bf712e87c09e787a0c1b30848d7" + }, + { /* i=8684 cDividendBits=2731 cDivisorBits=486 */ + "01623017c6de81a9b49d21dceebd165e6d6eaf7b349324fadee2d0e0e3d8ca7ace9a74be56a0b0c6ad446edbd9f089992dfaae4519c6eb049586a7c14453e443d3bcb35a5899167fbd1df1e67b3dc5517a0c5e49d0ef2c0ad8d0f8724e09825d248c0b210651a4b4bd879ba6ca973bfce2bd6ce67e59e1af1449168a3786613ab24fb59853282d5a41cd434a4c0840d690b3ccfbc7261a8ca38e582aa0d82239e3428f27bb9e07f5142094512d691df6dbbe22c96929653de8344a3b3e217b21438442be787a989c4b5f1b5105a513d21e7f629c52c8dfa1175403b282708665aaf67ec11c4f7f7a2e4dc652c85cd9dc3448801c6d9c0e193b02aa68d1742c8bc96a8746b73fb69d378fdd98165f168f3698f2ca63c7e3b6cff38c562272b1faa1599daf27dd3ae244718ff72481a95936895c5e92378a7c005ccd947a3a1d0070567063fbc0852886193f1d3606a19a2fbedbf302ea", + "27a18325ddda0982aba46799092258b27c93031dfa27aad2d26678ba50b4a1397fd5e4efc55d2a7ec58218ead2f770501cce0b510721bd4c896e93f21d", + "08efe9e31366420c157ef09753d72f93c2f85267b1343142db89d378c3bec12942142e3d0a826ad780f30f858012e45b9f19588e7efd3e537a67de7905b54f075eb8e7b75b483b7dc6edfcad927923b8082f5798f32635ba368196f022c622ab0ce28ee837495737cfe007a3ac8460cfde0f2c12ecb6e031894972e3d5822d143b271762c109d83684972ccc7b76c0a5db999d6ad0c4e0a72b2583253189469056cef951db3e94c44f1839ca4a017ce1f60ed61b629779dd4afe1510114de5fff803b31ed6e9893b80676f96599ae9cce7a804a084dfce065938f141d91f6e6235d6db3a0042bd0125aa0487ee6dd870b64b549274a4fe8fb1f1785d11bff9c2482e5ac5e002afccb7a9d8061fe5e7f006f0999c0ffa8c4d77", + "043c16893fd6d0528f15d04448af3e3f33e4d62cc7cb19b8015efa19c4a846acf640532e3e26c1a5e0c5595eee26c768132b7b34c76be7768e3b7ebe6f" + }, + { /* i=8685 cDividendBits=1901 cDivisorBits=1760 */ + "1c8f625f7d72a5682853eca775c2b47df3c395c0540c395b09b930c30b948324e794335a378a0d51f2a99ebd4c5079982a440a740018cb5a193555febda2082c38de0119cc1bbf94fe0fba8f0094d9137d0a2cc68156a8b2d2ca334d4bc8d51bd38b8ea0b420b13baa3555a912c0e0b8998f2359e58b278937fb9a6086b5d76e46d48cc64d138a365ca406c8be797b40dca5a9b94aa546d8cf602d426a7dd373272997f62edc63474cc66b0d919e6d6ac25c145da64215fb1c1d14cd8c35f25621c3fd858f123d2e1a5e0d4afcb2cb5145acd790e4a44a4d1b771b7e97b6ff726c1233b7b1322eb3ce20b457f47f", + "143465604a4a31a52e5c8778943f4b16bbf7402622660d2e77e8716e6a1a5c783d71e5037f02fa72ec5f09b069c41cd6542779e7cfbda51c8a570ecacb126d55ff60b2140c3b46c104afddf5fa92ccf04043a44ec3149e8cf77285016dcad0fe08dbd4b384579694b54e7c9023eaec76536c463fcbe6474e0c3952c88ea04fb2e4c0aab89f013d0d5291e0a296570e746bf29e291c3fe36241b1b087647fa9fd6c50b474202218a3cf8f9d0da0bce60c6299255450fdc02c6f489358b608c91f3ce627aa7d77002c11ea148292d48e4e781b41211d20636a55d17c27", + "0169ddb3b8659859d39076863896e612498c97", + "02eb5b5d2ed65e65bbf8cdfd05106e5cbf2bc8c653921d6d56ce89ba2cfd9cee5bb0d2e4e0be19ca4ad0f52eb6136d3e1669f74dcdc8385181730a5fcb5e6be8d8e3fff6b3f49e9bde5c343d300f309e29963ec18cb2cc0c8df109572faba92a834a125062f0a4d3ef8c1a960fa153ebbcb826ac6a405e0ed0c2e70ac6e8bea548f8b10130e1bdedbfbf1f44ff25776cbb8424b5321512e9cbb91e4a7b287d55c2e3ae8611047063fd486626a880a189488675c2520adadafde5676bd3b45f6aaa721e474fcbbb8e93d7ace8ef90dc8bb8765ee70b636af860c3657e" + }, + { /* i=8686 cDividendBits=2325 cDivisorBits=1824 */ + "172f9543d2cbd1b915e027071df733c86987588745498233f85ec64e167ee0292c82f71dc4c142943544dba75546112bb166755b17d7caa73067289315d0275f98c55f0a1ef623ce57d64d3c93493a8a1d9695aca3796315466d8465e104cde4205043b918aeba0a0ffe944b207a239203c2e256973a1e5cb45532cd04a99e532c5b38b90c552077ab50e3848f93d8bc85e9f8fb4a826790fd433da3ed48774fdabe821e6901b1db506ed372e7fc2f53e6641770ac1f81b03f85c0ff0eb907e0df6f27edb8ede1d14c81a25ff7abf9348ca77da380deb4804c25278a7a3cf0362bb54b591424fba685611d10f5d9c8b11e143d7eb902fc8e106090e9143a0a5f8e4b514dc73da106086d8b2d8501fddbeb25e4788c3950cf04669fe5175795f17edd66", + "474a4804b296391d3388945b963edcfe213a25b9fad20c43d5428b16a8e2d3e87f59446269f21b2832301c91a933282278e92ec38d1db35db10cddee1b6e436ef52688c7eadad171785b0ee2f720f35822198d2620a56818c1d5314775e3447c345092e4ed628034847b78348403de06037bdb18f77affa657c1a3a77dda84503a7a6d969f753e9df39e89639000292987fadc0327c63ff1a63d456f28ac549ac7e27c055967a2f5ff75429c3a1abe6c4643c160d5b4bd49c34f8745ee170dd641f729d1c0f0103619a8667b7f65218a3a531c26b6edf9f09d410a24ad5b0dea020b0f58", + "53426e796dfcc0f55e8a78d95a8d64836192de7beaca2966dbe5b057a91ba42161d91d234ec256a1e1e6aa1cb41e2df4cb6c476466ddf5f90f71aa2dceb1b7", + "330150570510e72ea731b1458b3463740fd5e339c8e4e81d0964c8c1661c6196ef105e8dedc274d36d5cf9c8c40c0b5825ccb6981ed42151e52ecfdabd9ef84001f9da94fbbb27eaa07450c488a4d8f0c248971fa0a4e81ac76b074b28995f86f41ad254d51e1f5ebfab1ad6d0c44caf30bd445b6957837a90f9d96670e0a4101485075acd8f7bc2d08d657ecfced732e2802f12083797667e43819c9c76a8622d398bb61728beff13c0d7ae14e1ca4ef507b5d51438daf6d2ae9dec55137ebb8234d24620bed84359ef37e8656ca99465becd569a6aba33175339bdf471fadc052b0d7e" + }, + { /* i=8687 cDividendBits=2136 cDivisorBits=1821 */ + "d29807c7dff442d5d775cd4069e9b678f598b99864685d4e4831c8350d063f974ba4fcba2d0082e1d399ac5639d9782cb3ba325b1fcb892d6695152f8c947b3893900b8b7c6c849d1a1196a2413af8b0dae06b5927e97a5c3d7ca627f92df66e6fa231efd18ccc780504ddcf00d90818b7a6135b95d8d995b6974a4b53acbdad45a2252e7fe675f216076b1c37cc6e100c7b07d695146f1a7bd09e0506c25115d3e6f2bd96423ec63359c478d6782694d6f4c3780862138d0ecc64c26ba43d6237d706f82f0631653f9fb765dfc1c47dcaf8945acf762e249a2d062478c847ad88839be15a731f5e2b7ff909b9dc4fe275086325d1cd88403dd602fa8523195aa363094e32c5d3d76325c8", + "07549915dfb740c43f18b7b49eb4041a0000c551d491c1fabc37128b0a09c90872fca3daba4532a2d3b4269236318fb44c92027568db2726e04e45089d8334a8442bc459dfc9cc582373396f932340ecf037c6b59ab4e6d69d134418fa3df2e15afa6131f806e64db50f29d326e9a8d1b841a70778e21934347355d9d271b91132f9380391c97f980e3467fa6f8d1ea540f98707f3d1228e1a9acab76eba0de94941dd94f6529e4459d63938d0d507858a6d444e9c3d6b8a7ae59db73250fd6de1b40cd5e14072a8ee928649a26a351a44e4a9198a10e1cad54a2c746867e496ab445259", + "1cba857021d5d57f911be8eb20dbc2104600a1e772aa77217bf2416ec6b15fde3ded6c44a7f06c7c", + "06811603023658895da3d83dddac70a6a59bde3f1fed19992329a28d7281bc748c59fa8255aad00b5cc93e9fa61bcb4e08661e6dcdcd5a17b624502d49fef2943ef8d1e109d6bba01ab51d8a1eec15c01885dd14270172165ebe5d86ee62fd344ffb38d6a2c7b75e5487eec6f248c18e91fd0b53b775b44bf3bca4010e507f1d86ee47da812db09b3fe30d63d007473ad41a7acb255d552b64a599ddf819083dbdef9e7891786bdf8b7f6d53bed90e616b2ac21f4239ee78c12a5fdb740273a59af3d63b33c4c9e94e09c46b705f96efee268afaecbb2454670b88c28e2def2ecd1db6ac" + }, + { /* i=8688 cDividendBits=2248 cDivisorBits=654 */ + "224fce04db8cffbc209fd002f901a19533eacd50cb244bc5f2ca75c688acf203e052fb44b13f761028d65b5fcbb86cbbb64f1bb83218508c10548648a2021c4917c4034d77886513294783edb5b7bc04b4835bb59d732d7f65ec558c1b01620de1604d304f32159768591e646d29a32b32115cc2e519af6ef927e92564e8f40e161417a3bfa5ea5a1374101d224c35e326b741d9c9bcf69fa3f98650870f90d602f1bd8772c225f5a778bc3720793ad9efe95e3a2cb3ff0ab8dbfcef9654e6c58547ab9442229f5825ebef0e0ac874b203ab2450e16c3c74701204de9134b49c01d7ede12a0f6d78136b71d161effd062a5288c863e722192225f536a255c9190801106307e3b3939a2fec245e6c54e42d7baf89260585e1", + "06b51e89c674e8e171170b5997ae322b1232f421e3935adc59e49d65045d037180a7e123cf67f0c803c5c24e08d04a24d00340b7fb5c291a0295b63a9dc7f6276c0cf9b53683f359aa62b1d7ea87b3eaa40c", + "051d8cde17405306ed705b97ed24ee6b4aeed2c6f6658d5f9f9db939a0a7cde2ec9365d8dc0c52b13f87503c974082c2e81b8883f21a37e298be8a9bf16fb78cc64c1ab15105288696d58f1a29e28a5b201eceff9d31fbccef1b12939078a2301d120821da27a9d2b8a07de06f411db181dedc74213fff07204141fe71cda114564aad6fd7bfb5759c313c69c62e30b8e156b1416f25ebf6b9495aebbaf9d8acf35dbfb5c5679b01cb7e10d5a778169889b594d740a520558f2f52622135fb9d21f0f4f9679380", + "0681db19f4f9cfde913888fb6046f42dc1c20743af5ae7baa060d7f0341fc0aae52132990475f9e7018e491e3d52fc0537e49f38842640f24b05c0fc2842fe23b81256e6b1f98cfeb8ccf44646f7c7ac9be1" + }, + { /* i=8689 cDividendBits=3641 cDivisorBits=2741 */ + "01b74cd68f6a890038b137a38161fb8724ecb4049c0301d90acc2af288e53e60a20b00942e75e09a25480279e30974a1bd5ee8b593e4104d36631a7980aedd0c7847539b1a3f33da6e96b6c8cf1174111f3d52988943f05a871a8b9ddd8f19037e20eaea9ccba62cbfc729e16f7f5d4ab9fb7158e703004f538349294db52580b99c9b73b2a8658536dee58225ebce4966eecffd59a872ff372836cd75c082cde143b22ff48d164a7c97f6644738f1383d502f68e9c7a59da56ce5abac768253857f1e93ae6bbae7f54a9ca9a8ba3f653b6798a83e8f1761bdc4d0fa532a6008e796ae8af3722fdadf88aa8dcdeb7ef27a117283b1f4184377ef4ed70a9977a8d1582f1bd2108bce2e2825fac6455d46e3fc2fc67dbc5af907a04c762dd55d620543f58751cd15e89bdfce2f783737a52f2258c640aecdbfa3adb2690990d3ad397464bad1b7ef097884c420c3418111429a5a3dbdc66b1b36be074c094721ac621c7d525709a8c87cd425dd169ffabe13d39c8a0076288cdfcad68ca02ca70b7452c200907af9dea227115b665ea39e0250b64260d2f033b27e2b070c8210af54a8f2ec02a801c0e7f6eb0de01998f23b677d0a0b2b1ba9967b5a56ceb9f5fccf74d483fe0a8706", + "110c467f21703c29028e3a3cdd8d3b81729eba0aaf9c4d0ac44029ffa18eea0c4b813e47a2164247d7c72728d8e7ddd2ae86498bab0546c284471b38b735d4c2eee8c589de1f42aa0b86cef36abe8dbbf46dc62817986e915442ad81136a860aa73792478627951a10a0a1465d1fbc884caaec30979c30a4a1cdb2e2909b447b54ef6602e0e8015f45e0aa85e4d4dbaa7f725e9daa9215f4b7ac5580649a0bb663a47d698404314f4f7a96f0996fecc1e33c39dcdec8f01f1fad2c589a0e54d1f33151c2db2a343cb3984d5d79ebe10522c5d096e5a8db24d5ffb1f201001720de648ee8cf8b13b391a5e52d4f3bce596c054ec21249e40faf57f96cb05736d7e1735d14673f78b25db7daafd5a363e43b0acf87356ce642c9a928baf3061fd2cb03c08eb60341d1ae53ae8fc2a7be163f2e15cb94c1f79c82bb447de39c166e40d513a0975c7b6a7171bb781e7ba94842a137b3215b6b", + "19c4bc897f4802b1e7899d67ff74d60d474d63ed4bbd5335c9041efd6826361f0b2c6d2a86a1f81e2f984149bdd173f768e02d3fb1e5d6505a4c2feffcfc8dcac5cbb7414b52e5b31e8cdf974da4277bee3e3e35b99bbe60adfbcc66faf1026fe383c359b9f30ba81b0334363e4c400e17", + "03e4443d51655d7f182c150eba0258ce407e3982a26c4682d189fd4ed781b5feda11f2e58d69292e360dbf24abd3fb59cd812bba2a427ac1723056b7df3f4a48550a4d4965268bf60729ac99bd73d72e80c3d9ed9e95362f3fafba6e671dc8126055544ef92d9c2309d2d09b683ca57f0afaa1e38518514d271345fe4d0f8cccf43e5dff4ae4c2cc558597adbcf89e164710e798aa41df916faab565f41d82e41c86dd49e5e7ca0e1a547e76684506154e8f52c87bb9e947c285e05b79048db23d8fa41dc24fbf17795e507727adf8f5681928216f9393600b34fb870ee2b7c1c4c522f9cbff130cd9907cf73e6e5b33bd538bfbc9e91eb0a350134a59804a996820f0ede5dfd74e34b775e44a486c55638ea577378ec01815f500408718d5c25d9d9a43463d3e26928260f9b8c0ab9d6da71310e794765228ba61c7eb9b8641ec849b7687967b873281f7f1c950e69773e752744b7669" + }, + { /* i=8690 cDividendBits=1913 cDivisorBits=800 */ + "c053497a4a37baf2b2b52f3338ab3b4118488c79f8ef876f0edbf8ca6c18a4794b0659950d7d3e80d179a4444c8a547b20471250786180fd395b5a60145863fdbd11fba187a8ca9e4aee28ff30b17a6efc7c833bcb0647eb221b99f8bee61abd67aae618f19eaa42dab1792abfdcc3db4f9da7ec803a3400ccd7354db583b4266ecb35e57e69f1b7c6679af3b38c17a5cdf3586f8af6c797845671468396cf9e5fbc52ca3d211a0370341f9829dcc498847023e68465e541715bcd53e26519e63f9d7fdd90c84a0df91b7cc012f152858439d3a8e061c6cae6f7307a80fc0cf2e9005802041d2467a6b271cac3dc32", + "f47f70e9e7d28afa4e5c85e3fefae4249704fdbdc4a57cb1e623a9cd6c4a29770b5dfcc62cd8c1a99107d7d3793b39b9a1c0e0e1a6b58bb13c3256063178af4b822e5b6f17085b3f942a74a0b7470ae160d1bd16f096aae82f1fb267fdd50f8bd1a3598c", + "c95f847b939401534ddedc38de5ef07e2c9546af50f175e4ebe02d6f349fa507fd5e57cc79322c82e869af6cc2165fc405dcda9f295c664d94f0e54c32b4345b584443943652699929f3c6df9ce078222bf51f7cf0c25a201ad3fbbd78770a23659f9b1969f486aab523d46c75ba0439c7b7142065558a5013f041b156053392d7858445880f905911fcbc", + "d6ac2c165f20b5a757eb02d0a23ec4d187395a551ef6795a4e077aaf49b7404ee5ed3a8b198b3e20a932217fc3aa7be868d00206e964c377bc7d6ec2ea0bbaab7a2c804d10c7311786f36b659021b16a8dbffa1482099c69fb198f51d3355cac6c5c4962" + }, + { /* i=8691 cDividendBits=1606 cDivisorBits=128 */ + "258a9df46dbc9bfc3e19460e0c74effab04db45b9d8b27a3c2f6a45b1ee2aba2a6b866c1edb9b2351c924f820f953bcc217ec6760b065fc69648cf62f7a02c73e981dd0971f6c37422f06d6a635ee9a7e1fde76328fd147b5391b511e56e79527088ebf45e18056f5800c6676c4053c6ba78f5316455c307b1c4152d604115b8495a1e238233376102b9709d24395a06be245a75aa76f5cc9f3811635c1b1e5549b5848f4a1349de521b3cd244f5e50992e6888b85dc81f0f79468fcf86672c0e48456f95858458dad", + "312fb6ad5cbf970272eb6c74e3646d75", + "c3644ef1e9205fe6f1f398a7ec2fd3ea32868e02b8f3b3d5fa4cb72cac0102b1b9762160fccffb83532f056b4792002ad2a6f8f59d0e74b202b304d8ade5c0beb632c590a03629e51df60ca03078e57022123426550ef0dd5600ed00b529e981d1c2f10f53bea856103bc12733709cb5532e1f19b49861e8c9699f360a2a6516e44096cfeb7de512a984ac715d2c5f0bfd5dda18bbc2482f3cc6a889ba1ab039e26daa8016145583190f9ecbb711758cd0ec52fbee0839d899", + "15719a3ffb2fb7e69ad54911add86ac0" + }, + { /* i=8692 cDividendBits=3488 cDivisorBits=2036 */ + "d3ad5aadf8176927e3a805877046ea4d220a1cf38663a6297f35d966a90c2e5ea30b58b0ab7a6229af7daa48efc642fc8dd5d0d9d491f5f84a5642610b11d1f9e3481f4b47f306bb5bb27c437a6b4d7e92af27308da8a4208adccea462e29de69a9d9c68431140dd47a75f1b30542d8d07532a52d1ac510bdd470206332e76736ca0371b5b380a535c32ad27f1232899ddbf7768b8597ff9a4ec1964d50ba6f135e968be3ae92df281a27c477e7515c0137c103bc1404e635f6945a677ebc7c1c060b3bd3c457d49f8f1b79480bd490acd2cd87a08fded66793ef19f554f764d0e2ae067e60c68a4384d734e5cd5466ede789d79b31c4d9888de4ab2bd2a0dc4b1ca4b135b4555d7c00b170f501b569006b090f05baf37c143154aa093a23cbd898a3a2f3e829e1cdf8b10705bf40064aa5a7fb2156a26e863f0eb2667e115dc70402031023d8d50cf69bed459df6ee1a1666e9208b50083b48e4ca29eb4d88bc7fd08877e6f6d35a6e3e353e87c957bb83f6b8c7af3e416fd0e28a33355e67fb1bef7e2be19f33dbbae92f96fe52abd3fbbcf60424cccdd631e969de638a7141607a7167e5b53f4bd794258737e46ddadbe34ab", + "0a29da246582cab77a168d3f9ca3d8c4d4290c29985125a87ef398e2f3b8625e608fb1b390613c9cb52c94304ea805008ba29e3c1c5f46b18cd803bda9ac69832f751e0df600bf06f0848e150336d78f59c7bce1c5862575c6bd7ec496f61f8145ad53655f53469e3e918366170c1a53ab929756de4de11a5d69810258e92e0d180cfbffe14de92e543795037a60a32dd84325fe3e4dda0e620e8546773346bf5fe218a3b568babb71905f8cee7704021cd242f5c5df7146b5b71fb71d6db1333e9837c48ad817dc7f0c1baa28d0b60b7dc7211bab49251d903c48459ab640745c6923e76f634492598d46944b7cde6fe51227f7d4581fd954b97d0f52bb24", + "14d3c4e29912d8befea0eb41ecb19f321e4bbcb57afd8ed8611f1cd9590303c179595840d08fa808885e1fa3c078ee361f21915c43f37db4474de13846cbe2341afa75ef74136d09af2dd451c0bd494656d38974e92eeed019cde0fbc3c93ce71cafc7690922b3fdbf19a9079d9589b9cacc046436cfffe438088da3db118de9cd801807760a9e4086eaa2a199bd320810c9103402d0a894f0871966771787972b1308656e643d4891dd173f0cb760ec5b4dd1cfdcd0", + "06efbd55c62a61230deac1d3f9134fce24f7fa1b288bb7417400246c54fc183d5a548eebb3ac859e1f92595e98d0047b73df0ac3c4ca3c9650442da48b28da805f81a47c347fde44837d27f7312a2b5f01adef6145d0477a2e1032f8eb3ec7568c2b9127dc10d6e14a61e569a24696f7d3c78235c9e1a0ab64d206e9d318387b3c214b42114f4392de263aa356d1d3361f35968c35f49a2d019d707e0cdb69621a942628b533819cadd3f2daef7777fca4e92c1813d3e3765843b2ac25203238f547b33144c7de9feb216d85ebec20c7a601297f23e81b83f1c46f99d369c2d8c1704822620d8c0ab3e2119ecaa432b0f9eafe22cd8683f00613946b97376b" + }, + { /* i=8693 cDividendBits=3730 cDivisorBits=1117 */ + "02796c978517bebf25156e4fea95e7a32b8a7b5f8a66950595c401bcbff7ae1044191dd47b00a5e5fba35ad1124c98d2d5d8cbdb87f598f4c955503e08ab10160505d243c310842e73275ff1d1b26bf9465483239bb7f5fa7f4f204d07678c2f2906753e27204fa1b79f9dc7943bd7adc9069123f82eb63ae91d459facc0770cf8bb426b71f45ebf66095d312654fac9948c41887be11fc87ece7b324d66d969559a9e13519b16931e2cdc719ccb6d616302a95d6df21e2bd542b4721a7c86d416fc2c4c745955262b27dd798ca60a93450eb9e01f9e66390ac8bd2f78278d37a5b11ee6e345edade7aaa29f161ab26d0f4b6aec8689fd33600826d35e5995ee8171d640ce61a2262312302903dcf9dbb14fec1682deb242c4399c8d1ca641fa890cb086290971039f538130f8de5b0a4e733f086b7b15656615daea8dfa66bb06c6402fba64f2059ec1ca6d7ecde3a57e569374d4071ae28a206f604633e722cbd0579c18a426748751d2c1c03112d052db5992c1483e3379e25efbe8a8ad637a04109e9190039709b8a8a1e4988cea9edd5613c1b962b83b9d5570ed843df71c8732f9e77ae1e43763738d8c8dea239d5990842db68c4e035a9279a353fdba9a3d604c8f7818ede8591f8654bd4e1eaa6f11", + "1dc5b02703152f153bbe19ab0cb4adf51d6106611b1c044fde4521c65e1fe27061e51a8b5385138107c4f0b85be23618f9ec90b345a2b70727bdf3b831417dd026bac9b660fe65f6625221b25c6b7f9d75e0eb2407b349b927d16ed0d1039f964f88d357b14c5fd47ef1e764bf7a8cdbdd2677a8a6e5d1c9374cd6593baeeb339e7d7d2e9fc3314a9af16611", + "154692ebae07481fafb6b087625541f39f17bdeb5043078bc1789d8475af98da4369c60731bec96c9b13df2615b748ec57b32d7f9d77e62e5ff7542d7bcd269352bff6e3ed3d4230fffbb2e174ce2d706c97d4b6cb1aea7f8f3daf87906dc961e20c039a4456a6090c02af467fa947fd5ffc9b807206a77a35f34d03f01279732a4bb55e0c30259590724d2634c1317722c2402407b9d920f9c5fbffcfe6cff2bfc2f7729f73a7d1b6f1d3eaeb176288fba6f6a51e84ad9077a31f410c3815c111d0b117f22002e31de32efe468c6740c47fe1189cd3c1e7162b193d6942f83d03246a536f57a2100793dacdc8d661ff8f18db45c22f4bc95abd8b936496dac6e5caa11f8044459b24d69764719f5d2e1aee67257c3d06a4586581d861128d8755eb7b4eefff42b59eed34d1fdd3ecc14d163206db74ddab6a875134bd38382ce950b15318b76d", + "10f98cbcefa47c2a16205da283c9b930d01a096805a435f11537cfd7b9eabc1e32de3046c8b34a9d54fa9d54a541338777bd835ce6755950773a58c0ea6202b8baa750fd7e3b9dc352b8d002843a54dedf0627f8c5efa9d2f7e10f0275156bb7f4e270b64f70068e9599756eaab384a044fef3d7fe5baa7dc43ef8ba2eac03a33d3e80cfc67bbf4d8153d2d4" + }, + { /* i=8694 cDividendBits=317 cDivisorBits=316 */ + "110f5be4dab68e091bd1384487ee07e6b087c6a7759736a0f10b6d92b0ad3a5f27437a1d6516a376", + "0d5ba29f1c66ea4c235e93087adabc0bdc1ceafa0b236d6b71e087386a93537c80c353e24ff3de7a", + "01", + "03b3b945be4fa3bcf872a53c0d134bdad46adbad6a73c9357f2ae65a4619e6e2a680263b1522c4fc" + }, + { /* i=8695 cDividendBits=322 cDivisorBits=311 */ + "022986c73a37e7cf7118c69430f4255dbc4b8949f909d75337073cf8c539a76ff901dc453a7f973e0d", + "46fee02ac539b9f3ca133a77976e62b37dd51490ec7335676ede88c5466dfad4398128ecb94a84", + "07cb", + "428a4ce8eef3524102bb8efb0c228f85edc2b3a7318209fa3cc4ebddcc5e4525babb4db79f8b61" + }, + { /* i=8696 cDividendBits=3487 cDivisorBits=1969 */ + "13c879e99ff18386a7d929ea7392b3fa7625425f22e01a245a1d2ead404c7bb2f3d7ab3c6d5f765141511896fc0839109bff32061e224067a526898dd2bcf532a1cd3d1820be79414afbc7bcfce2ca4dc17a097f56da851bbbe2fac7da6da481d4639a054170d2cb2d40f0f0621632525309fba0ecf643c4ff82e2817e74280cffb69d83520934bf9de29ef6832575391291a265ead8c0408d4ff7acbd9495c6feb77597863aebd44cb14889efed7c6aa96976c5d87b8cbe5951438d580fbf1ed5729f8b9db26512596e5c72e4aff0a73680702d94854c9785904a834044416a8f8b06d80884a3422210c8274ef230025cd308256d7caa0a6e310e68479e06c1f28a29bfacb2ac5ab2dcadfb76d131ecf43cb81452c2ebcd4d9bb417853c82bb309c9d2db2d4a5193780c6cc27e053f2dbd082b50200296f39cf360e6ac2492321a0725dd0f40183d4e18e9e03d938bd0aaa0931dda24e5ea6c70930d10507d2de0884beaa5ca6c4c8dc23366fdaf7debffb24abf9923c30b7cd9b668c09a974be43460aadd2c632278a89d6515abdc268eb5c31948de7a27413202863096a2dcea3ce4140777349fbe6bfeebcf20914ab215a26", + "69da206ba08bfe823b54cafa73be64c2148a49e092c2ea529580bc567237ca68871382b471f22dee2093543443f0e8883a373851e288800c9d013240948538fe8ee5c88f7d5917b9503dc81e857a6d151e913596ed62b5a6c595a3efc3a27d588d93901f591b903b347ab1a1f464221a129c01d7d2c4f5422c15fccfcc332756302580797946823b14ac0752a39783cade7781ad3baac18fa14d922bf3e68d499e5e6db1c4d30278eb02e9badae7feb1e40e68dc56a4c401c18ddca61c9c3085288a856b2777c9e6ab5bee1a30590f44b9225a77cfea7c6de86b2cdedbac1f91decfe4958d113a6ae79eb5a7ec25d4f768825585d990", + "2fd84859e03514c135673ac99f952008320b02349e0f941fd6f71831eeff476f2ad84cb1ca783a6de28fc2fda68f8dbb73b5c3e553fb6ddb65ac5784ba67281d552d2ed19f004eea6dbaac364071d02589de6daa0b648bf6e23f37fd9512d53be28c94501975192081f7ad73024b57c6bb369a03e6bb1ffe40449f876592165ff6926fc9514cd4375fe2758a1abe7c334c4712a1e8583acfee62e0542573b945e0f46a2c78344aec6a68a5e16522c6eec9676d347b8a96640f18f259c817", + "2fc4f780e85d650aca5e13b102bfde6871c5a5b724a2d45a9dd2175a39da2e604888abcd3577d63e88b7cfbee66dc11124cc57b9e8ba23f062593e8cd64ad1ea035654c695fd85990232aaad4109d7365b169564ba528da0a5ccde5bc25340c403924dadcf80f871fc95899d73eaedbf56d5e3d649eccb0d4a59c7831e291b5cbd38189e3641372e86c075427fc31417f224352afdd3874e0078d19c38eb6f306a9b0070d217309367a32d82bd531f051316bec4c404b7f07d46f80b5bf52e9bc90b36ab7c9757a6c2031b0ea2f0c42e097902be24257d27a357dca0370ce2eb1fe01c51bd921bd9537c0a9352ba8e5db9dba7124e36" + }, + { /* i=8697 cDividendBits=993 cDivisorBits=709 */ + "b22e3e2f60cadbaf3ff61eb91be4cea3f0732b80ef42667423f72dd7be943086d07744b0eff31848be9b288d8d1a66cb777629f88084616c03a0d135187275be11e00a746ed1b795a7c8e5cecca5ba7a197e8a9fce69f6fc9b672d29b6dff6628e4c7e9da115bf274e949e56f08d140d0b072df83f406576db383207", + "10f66b1535e317aad7dac8239668aa2bb841b86c3fd4d746bf14c9de4e4f3bcb54ea2bdecd55f76f7b03f8f342c59308f55f9b948e209664e6c3411a1dba579361dc8d59be73a6c0a752878b4dba672864a796e8f9a65bbb2c", + "0a811c7f73189516fd4c90e77097b6fad1104692a6fe3ad8e32f34892eb14cee6e93ff6f", + "01e0b2d2769eceef52228624401a61084f3d5bc858d0ca49adfc280306dcedc8250c1a354ce081165f126dd3b8146fb31799f07a727a7ce2fb147d8c7589b446c0cdb253beb3cdafb3f1cc4d386f1a028affa5b080f7bd35f3" + }, + { /* i=8698 cDividendBits=532 cDivisorBits=400 */ + "08279809606e2e58a966e4d1c2faafee5eba7f1901a434c598049356faf4b796320ceb7a0f9a59ff0aa9e44bae4450a1f1445bb9a25709819dd093425dc86a79e1f90c", + "3e965fb4e18bbc10215871b114cb5663d27e3b96409de172522436cf4101cf408fc0836cf8ff12072a2a269832c983a6eaba", + "215ad81abb1749250644aaa8f93b1d6d21", + "517bf58d1f3298eacb19f1c9d5d4e31434d7cb836100bc1231a3443204bdd5f788e8bc02c31d0a31cf6a0bae76fa5a8512" + }, + { /* i=8699 cDividendBits=2344 cDivisorBits=964 */ + "638554014995fc96af65b356aa4c71c8b373212a08dc64b6d15c1867fddad7e0bd77a107e30f2069f77b666ad83e267bc4023818ff544f6b197c2986691fd52d3c88c316101bb8cba1ac7b967b7fe200d39dd4272aa499c9f2cf8dc910135358d9a0adc30bc1babf61086a80414b66ea52f19189a781d78cf54c764106dde0b2019b4e231dd46d66987be43447da245e65acec2b5da63c2e8621c1d16d23688a24c49a97bf3de68788217a6d0cdf052909edd533d0dc969e84a20ffb9b9b5aa0898799b2eb7eff149e1e91bbac408cd4070968edf3953dcca45ec0cd88c928a04ce24061ac5be7b84aaafd08559e5c681a2eb62b4b3a5e5df3b4d5961276d1d1e47448431d07b8aaddaef2145dd00bbf0484b8206cb7bdfe3d7c8a46fd2b10f9ac4d9b50ed", + "0ccb30506c1abf0c6b9cd1157c95844fff30380a974d8e2cdad8b6bc6bb1abeb2aae8df4f12c15ba17ce37dffd6518e28f7b0a2e368f59db1427ce1f237c121aa4d573d033a2ecea41afefcb6a009106eeaa9e2b0149b60acb5249f2d8ddafa17303522b05316ce0e6c009d9b243a64459847cf18e36944c35", + "07c7653dbadb18ac630adfde9b781dee842748a9645ba3a2b66f0d9dd889b9679eac617e5ab47ee2ae7086b155c55b286c423ea45967fb300a5483dd1f2a36debe74a040246efc381098d1d89cc1c30e291dfd4b4f86216fcf813a6480ad7bc7f3ee7a26be6161419e453d5421bcd2c218af0d50f1c573be2cb5152bf942bd04bfe7b35ebce3ed8de57b07b54fab17b4d71b7e77146bb85ee6031518abd4e668dc22ebc7925a0f01226141ea13", + "023db9455cffdaa7203a480cecc661d4dbbc759a0c8e7ff2e710e9e27eba72ab03d11343e38ec38af474a81d3b907fea0c835f7069eeb8ec9dd125d9a9c7c399f21fc4addcc99775f14862f11feb0098c784b5364f463cbada792064c72557751e41382c4bb893231cb61c78139444c42efc1bada9447c36fe" + }, + { /* i=8700 cDividendBits=1258 cDivisorBits=882 */ + "021ec8fd4a4bf71adb1428e0631616947b75ac0ee0854cd158cd56bf450a67922680be87fb4d6a5bea1e3d311928efb798e700557254711da92b04b10edd24d11525af6b18b9d3d05703c874a44d500eec1728ecddd2bf86f49a7b7c63cd10aba54de15b2bd2dadf1574935d076de6758b71663bfe462d4dd8ecf9a2684a8b81be51b64d7c98579b7d27a41a928ef02d4bba66abd82c8113a320629ef0c3", + "aaaf18e73ea717cc357dff4f6f2fca52f444b89d68a10308d3e517c05ca3680d546a1f68890db8a432d064c134bc06166284aefcc5e234043e1bd478eeb116f00ebf3b522abdaa109e649d4b8e9173a80af100bfa3b029e236864cd6e6f85dcb084f8428ec1f6816e3cc579624cc", + "032e185986b09f29bbb4e1f2a6954aaf8e581b5e6953d2321da50e25f69a974d236949111b4a2a71ef470e2e9cba5827", + "4d87f5dfc06272631c8c8bfa37ab6f9cde4cc9b1593b8c8438b970b1d4bd63320d04034a4939042372cc7046d60fda81640e14d8fa7a9d7ea319a45e16fd4a8dc610cd72f04d738050c48e6b77dd3b60cf24403120f844b36776e747507ddb0281d026ba379d23dfcab861e135af" + }, + { /* i=8701 cDividendBits=1491 cDivisorBits=286 */ + "026d230e937d77f66209b3ce213e70ad5986a9480bc1f26bbd86979c8464eeebfb59160ea74fc2d63a5ba1f09b908f65d574ee33e39ce6149a655a6c738f85b8cd5bbfb70ccec021cf510e19109d8fd2f67381548766c8b3b32d66fa04681a8ac72043f63bb3ca154a3b9eaf3149b4461331164fab712088e120e32c081d7dd331a3274a2ba2d7f4d4d35a102b80cfbb1869c05687ecbb5dd4dafb1e490ef25d0a070efb6825b268f5ed317575727607349e727733b6338c753f29", + "25540337f3aaefa7cb51561f2113c7bbd7b98308c6c98b7c860c74e5385aa5b34db3c722", + "10a3d03c248d5489d8c9f4be1647ad16bc9cc2056fd47f3833a9668503b1ad9c7bfe572593a97569f2dfb951fb85a80a37d9269b07cc77e40020e2a186b50f204ca78fd14aac7ccf76cb637be211ce524f1d9fba46e08fccbccb8c0df43964eae792a5b14dc6285d5827f098e4bb4170a90fd97b97bb46b58486b7d72d404e1a0fc1079b6577b3db0cc4faef69e3ad401f3e7301df15e6", + "1295fd4dc60248a4f6e8de723bff4797d98fccdce04d685759886a614c920e1464fc8c9d" + }, + { /* i=8702 cDividendBits=3245 cDivisorBits=1367 */ + "0e9a953755eec0b207277a02ad0ba71c9979ff70d1dbb3695f160bc66c4bc0b9cc0242009d5ebd4be141571649427f3b40ba14b16b08bafaf701ad861d55af0bb56f1b5180fd26c91bd707c6d423e0c7a0f4242f91aeb2f6b5b271ab033fc9e2780a42d9c320d05e89cad848ed5e41f588d237e5d62c36a47d7a681927592fe0d61ba7dd7b3a2a02bb977b1b98740e631db4d3ecefcfcd0dff41f4a94979a96416dd5b865677054229e5f8d86637e67e49001cd3a7cc9a2d2f8801a8a6ad6bd6efcb7138733d5061b947c7d260761dbe900a27e6d9514be74bc85032c8834ad6fe7b5913c05b97cd916e335c96559f96498cc4361879fd424ba988e3c062cfaac8854ee900a40590ffdf482e5a002226bb5439f518dbc382bb4f72d5cf6422f26b13610c84776fd131d8ea87d3940aa0525291fb6d4e6d493ba0693055b44766dcc7a063d0074b5ad75af586fd9605cddbe3e288bf5289ae97491980185efdadbae820d5d7c33e1e339699884c46cfdc02dcd66b456ff960ea1a4ab2b9a0396382d7f6f68a3be3a2d47f626f7e7627d0898aa941fa08", + "3f8124860892f48cfe704f99f332d2988142aab80a7b54db6b1e4a9b24c007c065263796f75869065332aab6dbd8cceda559347226b6e72c772d84cc243772746e2605fc717cba9083193aca8ffd123a9f35da499483d5d7e0c1cc8e7c4eb296d358644778c58d961ad2b0d155e8760ad9017594a38ba50c8cde04ebe073df9e68f258dfc4e9f0ac057d246eebdcfe65b9ab506a4b4b5bb9748f24b3057729baac444dde52ea6fa7ca83cb", + "3adf05d42aa0ff9bbb4f61a0d44bfce59535500d3d015b3221f4f0ba9e971cc0fd1cd2bc9d114e2dffcb018d2606a4ef58c0fb164c751c24485957cc5fe5a3553e28bfab4aa70bd856f593a3af7b600ff9b5d8a7f5003a0ffae7adbc996c96417ad25ec127ac5fc86ee8010955ca18d68ff200ac2d748096737d391143e0fb84b0bbb738a26c943f24175a65e0e61c067c16004321ebde494a9bfacec68c576adf6f9fcd5ca4a84f4624b03ce6b8901e0eecee6ef88806918ad0a2af1336c91de9619dd305bca1ae308d65e4b15f37dfe46741d456292b6f5d786487495ddb040ebc81bb32d7db72df0dcd", + "21dff3fd934dd86bebf4ff94a0da93816c8dcb7ca640025026b4c4292319a8af62971357f6b2d88f6285ca25d8f6e52e377d5d2cbb043c59d02be047e520732bba41fb139f0b4a5dd5a0047d75ab118e743d8c105b79f0c70ef6b2c53953abe8479aec8b7c21c384102d963d3d6912cb76018586c829191f0dc6237f9bf245d95a174e929ca288d3915c94688b033385b5f69cfbe80e8111a6f0310cb42f12260dbca353f38ed9cf902179" + }, + { /* i=8703 cDividendBits=88 cDivisorBits=26 */ + "77ddcd9f864bb2d3314ea0", + "01533a7f", + "5a7526ab27858a2a", + "01063fca" + }, + { /* i=8704 cDividendBits=2170 cDivisorBits=77 */ + "03b646ce3577ac9a393b0f28e229bfcd82e29df32d18327fd5db0f3ef8318dd7bba2c0058de8a5a5cd0ef9538a6472807982237514ea295a14a5dd87bbd49db2eee1e982d2e4785de1d131431d6b2baaf1d6652fed50917756385773888176798103247cebc6375348e376daebfbaf9cf17a1a80ee27a86470fede6c421b9a6f49dac2952b821adfdfdbfe94bd7fe194a3d6694233d61dd94c40db29b4f3446fa197d647714ed4d36449c4284a49bea69621fdc3de9ca2bfcdf4d4b8ee197907cfaff996d758f85668c773ed010f6b58f562c2eac29259c91135d98efc5368f929b04ea1770f9374f704a7b914a0267619b1a524ab6b78803220dff126ff2e2bde38241a4cbc731d04c0550e63b94d4f", + "03f3e5e999da4cc5d20d", + "f0690ea66d8f04796469f46ea663348bd8b05dfdaef9532820320ed3af7db1ab5f4457ec8101824ec4d81e1660addc112ee28e9af2f2aafa99bffe90b0db4efe9d9b5256a74d68a03c5d7c406a1fb7822a91e74770cb1c269ae5008fa72d4267c1e1a55fc82d0d6ecfa849436036ab8bd0fbbd0ed72472811694ea6596a33289d3e513d8bc01f89f75dee2e1556fa58ef1959baea4aa260e09a63e8cbc01f29f62da96b60506aa56459f2ad2ab0b4e08cb1a020b7cada42277c720424e9e3ffcbef85915ef52828b0d5537809463eb4695619cb048eca77bf578b74fa98dfec7e2eb9646fc24d5e1511511ad752d72a37b383b433628fb3b0fa7d8e3088fd6f6ed26e2c08deb", + "0324f2c16ea5f1b05260" + }, + { /* i=8705 cDividendBits=1930 cDivisorBits=1453 */ + "03baa535c0a959e18ab53332dc0ca8249b59aadea482d6799de2a879a254c732b44b8c719253d5b3c0393b35aa5cdc0c42cebda249c9f2de5cf83a74a06a2543f036645f6d0421a1edccfd1ca8d0c55be07e4a983306aeebba60d5a338b089b214641d780b0ba51f69dd79b0073e0df05dafcb75aa5812dc5012dfef5c97ade3c92fc1e687a6cd585d9d58695459fb72786cf3b57729b1acdacbd47899bb6e25736ed2a6034f8502dd10cdb3778e4049cae5ff01cfd35734af622b76e90c0cfb99db8da4ad89031b2fcd613e89a0f928ab1e403d141371c2c2ff288981df3aebb0a82ae3978cdd19a6f1dce679d4356d073b", + "0cf50560d0287ed99548b20ea8d3dbeff23fe14184617d10d5a675ef58d4c983b6bf48503f878fc2402497fd72d8825c408874193b4c7beeb1b640bcf159ecbcfec010c605642954a0aee1969835a26b05c9ed9db81b3e321c7fa63976be207725f3b80f653ae84dfdaab7e1f5f6d3ba468f30abd1bf295a81f0c15291c37cceb2b44736b56d1a5f71f31ed0b1faf71c2700172d832bcb57d0932d2a891025d81d3503e4f93c5131d0d5642963429cfba570ae564c86", + "49ad64addd3e6f170da9d27278a42cf40ca6ed71d0d2685c537ae8d63074de6e4bda8e4d63f805a0b236bf8bf07cb1c1145b4176bd19140ff6f7096f", + "072a6af1bce3a115ca0a9ec3428b5436cb9888fb939c4c093632a9ede3daccf8ffeccfbc343bf05fb26db24de3c82ccd20c169cf363f4b72cc0ca277a04839875e550cb21522665f698e9982c90f56737641a4881d34977cdef385131071754d9d37e5f1d6e6e939f1b1d3df02c6696bbeb957ec10485e61a9450f3c1f1cd14c6b5560872586be60ba7fe094b8fc81d85885b565e327700950a8486728e491f3ebfad512688707ad126c0d5175daaf9ab130fc072321" + }, + { /* i=8706 cDividendBits=2679 cDivisorBits=2476 */ + "6174443608b5dc616962fbae16dbcd8d326c29b121e971f6fcf668b7e60207e51518ebae4d4eebad311d1b582c212739de0f889f9f746218566b863b451d2685982f43c983e04de841ae5a62afbc24d251821c377ffd2cb671fcf7c74304719d91f35a224787e3dbcf4f904b87272a46502aefffc1009fab02ff2da10504f505dfe896104d67f7e5fea20b0dce49ee41b339622fa9d720cce0e8f5e9b8c05522d8487e53f62caf1772290411eb169118221fe98a2b2826db7093087eb5940b4722da37ac43741c4168947c29f5e620b527cd202577a3d7f652665ce1413878c1909cbc9c55746a0369154279d995764c6573a594564d40276cab855300733ac86d3d2c2d634b3985b36b7d714deb197a18a86ec9e6a8545a2decdb35b11cdfb04d4659d6ecf19af8e5104b6151619228c01e019e6a583f6bd6d872119b3d9d600beb8217e8afb06156b6bec169b13b", + "0509111dc2cdb52fc8b14c9bcb176320a851582262b507704405116fbf194d6762f9a22e5a59d8f7963895f770bf511360b0a205e6fab1e4406f12b25fc9e6bc974b427d9ee210205a7040da2d6bf84bbc2fb8e392a52f307bd5b536cb55d0a80ebd26848c9e06fb39b532e05b22f0e90cba1dd242d5521eeae4259bb1afce42cb9ab812098699dbfc29c479bc1145de8d160624d0c7d3426747afe087fce63d22883a4e5c68ff484b083547b890131d12047539bd25bb5979d46119b2b5d8c6eeaa99f1cbd7b7bfdfea75c637406de6a8b986d6eac57d0cb0dba5930cdf0812cf71fd504f65d5c9dfee01eeec549c059736110858979801798d0c297cca2e7f0b9e058543c235764a8111299f6e56adedc9df8c52ea3797ec138ec498ecc35431f63166f1e0f39e307a37c2e587cc81c6c6b2d81d62", + "135a8ec9196c08ed6f94dcf3bbee137eb07623a9029f1afeda8e", + "022ca0095a61d10f1026d38d95acdecabde88ed37015ec55ae56fbb213e072ba24cf25237fe44ba4054b36b84a580572aadf9fccc18046b8ac83be5483a5f10fc9784463475aca854f4c693ecca983007245628044090421846fac87249f141c1190e94ce6c5cdd660d3053709f03b07071968e68c9b579fe8d65f9672adf6c0899d64c593eb4c73d167d578ca8e38c5f2a1ab405919c68f51978b25121d7390c4699616238d5b5bc54efebc40cfc425729687f02eb264ae06c4298431d219aefd61a8cca01fdb775a974d612ebce8998e8795ec36c653be8dbda2bef499e2adcef82cf8410a3f50450d7b8732bc26837ef924222ea0e34074d34a5dda657c3b180c4adfdc5628bebeb8458a77dc9d73aa6464553e9c9e85f80b9ba2392466e0b1666f70dae176b0448d7f011898769ed6f46947f0df" + }, + { /* i=8707 cDividendBits=877 cDivisorBits=24 */ + "0416fd9299939836e55072ca682e343114e1a57f265d0d1d7b20144d82da7e054d4720d5b9100b102875780defcb8b90ca08b353e35f66b2eba1f7d2d5267618a32a82a5be20dc5fc5685f33d117d528558258637ea5adf45023c59a514a4036806acc5d660ed13c603bd718bac1", + "1aae2b", + "273df4e00b77cd6424e7cf1aa072f7254ee02ff52450a943cafd45870400e9a105d00e3c1223aee550ebd08f789869849f335f36966c39d3180b7fb24a0bae7712fc1e7cc6dfcd54db0290780c21b3567280017fc0a071b213bf646b79d2acdeb16a64eba6c3d014402f63", + "0d7b20" + }, + { /* i=8708 cDividendBits=2409 cDivisorBits=646 */ + "8276374a8b291cb6a1ea712163124bdf3100a638caf1d54f1afd12be8a900c85d4cea779b8454c0b20ad2a724b965fae2f1a23ff29828e23acfcdcdd7e6636320caa2248a4044d9c9fbcac61f0a398dd21d04af360b041cd56757921ba53b45c30c51c719de44a15a1c412a7fe97de93e895c734f198ffce80e145c84b0245f12e6c711e78f1d71910482336ac98580e3c81ba8101f2a767c3b9b588a316a9ca1a4e9176e0ebc664b38043ba071ad2afd3737637cb20eba9c90d18959f4785ec67285116dbaeea16cfc116558e3b62102c3f45577503e82290604f7007aa463a8bf437279cedc67c003c20086ec280acb322cf1f1143138531ec44c4b870c8838479540061500e05b84f8cbb913f6af8656d21be5329d753700ba0e37c3fd4e0d083bf6298cc8374f0240ac154", + "2b63fbf86b7564e812b276cecd1e3c19415d5c8adfd852d5bd762faaf1c08007612f190f8ea1cc5bdc561956850799def318ab2c5c86c246db28716cff1693d68cf6288bd8eda1e8121f4756ada790f397", + "0301b6253f4b1cbb234c28f95b4bc7172cb460674d7bfcb4249b63d3ac35454240cba2cb138f6f8cc83965a886168f6dd1794c2155c4db78bb4e0a7207837192f5a5179f5b03c210862aed2607b1d591762d87377673477d046373d0771bd34e394390983552543239e515b4585ddb3bdbf3e17ae62ce9bec4c2a94264860b1978629e7b73f7d958131d0c4c6db39e8ad45452938508d0bf7e7da07bf47069700f7bcd19467f12e510f2ac250cc4de6a93034b61f664736596b52af5365ff6488fbe28a50500307eb9abb53474d865386124cd18fad1079656a8c30cf9", + "24912f3f68caad55aa6c47eb4029ec39c13a4436eb6a9854a14c466bcb7304e03907947879d4d1bfac3843129d51f6c0a60399bb0ebb8e567ae201098c94c604a36d0ded1626725777e244f02eb89dbf75" + }, + { /* i=8709 cDividendBits=3445 cDivisorBits=928 */ + "13c19b95342ce7974811176dcf7d64d5d63b4e45426090f4ae52e85701f35aec4ce959df12a8c672f7c96e0ebef0474f545ab76a1e347e5488d529371f3160aaaf8bf58495f72e25c6c59d6ea2010c6c3bfb9c741b5d9d088ae8df53b74b3d2e71f1f5e24469544da644f87e7b9f99c7ae66ca99c419a56e9fa0a5d213fcf60161277ea60b39e8fe397e0e328a350a0f1311eed284a3619cd96a9389b240f4bace37ecdbaafa8c55ef82c65756fc964154eb83f1255c3a7069e46173f0f1ab93f10198b808dd1455458e57a0ff60fd8dbc7f973d6feced2db2b8fed22542cb27d273d3a888d4db0b3ddf9946113a397c4b3a9bf43c06919e99a5d15c8332f4c79970d08f12ea147488f61cc19997214776a6f8dc6d765b725a082167aedebf00139545a92c05cf208125b9e67f4a8ac7d0fd79249571ff9cc491244ec92cfadfb920689e871b4c91df0a35ca8abb39f6c01b17cc6400dde9559cca139ffec3b2e960c86d8922452bf68f9333621dc943e3692651b7ac256627a25e54a737f6653056958906280d159f43fcfda340fc6332bd11306472256a7963698c546ffb89bc4284b81f1144978b64126deeecd7", + "1a27fcd8353b04d8a1b8de17e84b56efdbc39768badf757a477263c145ba7c600317599b939991bf1b2c2d50a1468f4777aa01afe172fbc9e7ceef156e7423cd155739291bbde3db43e4d07e8b1a40716d677727f5cbc9db694c53c29ed41bc534559408aaa0a20a65aef5dcdfd9758b96d8280d", + "c15c9898a140e84fbd810cf3d37fab6c7e54678fba9c24606a4c8c1a6896deed9959c3f1c126f31a6f56ce0120107372436df56f2e0a5b2e69adf35cf675a0d53de9851ce9e11c66046b39fcc1f5cebd34a1d565d3673ed6c68f86e0432eba4960a27e0aac7b6283765e1ac56b2468e96fe642981c9ac66fb56c1fb68d850876a9e0165dc234e63b0657415eddc491f92228deb71664691979f9f42b1e38fb7254967e0f5bd6c15a996e18dd46ad580a26b23fb3c8b7f64ae94f09c731509a7ac7e45790c2b1c3df34e8ffc55899522ef8cc3edfa284f16957cd6c5ff0321f8a6b5b2aa5814b524b334bac9584457cef05ad7e30897b5d3156ec80533a22a6cb997ba36bfe52467ebd77aa918aed935d9028f4befed21178bd73d141cbcdf728f922eb9577a0160ca4b6cbe47eaf04601980098ccdacc1ceebe7c5", + "125429c8245cb183b1d4b6fa029ee57f7c051b63e8fdebd84e406c93eea8dfae224076561758460c01f87e221eb2b8a2401a39eb7bcc5e8e1dc2f1ee010e2c3a17b4b423c6844a0dd0815abe4d1ff8594d90d31030652b638cf173c03af95c3f68210c1c7462e350aaa8c60fbf55a41613855fd6" + }, + { /* i=8710 cDividendBits=2463 cDivisorBits=2082 */ + "220b5fbd63981d91db1f59159184906099f8ff25d6b8cf0e004a0cc2f439b2af4105ec426c3dc56d2992735e02ad02cb18ac2cfd5d945f103e7152be6b5e9e173341ce8324f118855f365e073ae554b0ab681929e1bb3d8b98ed025d6d69bec82b450f43db2ef35bc1c968d3e25b4708bbd0fb695a043bc4b8da15cb9f69fd1e33024d1015cf8ca42956d3e9b36a33a3c1e41a9bc992da039d0aa4cc7a1daaa7edc280509975fd385730ea4b5db5fa4383741a58189560f712d397b150b12e5d334c35056784a61fb5cf7a31f1a3ed333756999f824151322a6c34bb4e5976d0591f266524c044869030fd229d016acd3b2ce236c46212f0c66233b762d33a9726f062eb2acc09f05a8d038b65bab7cccdeae543a102132ab38dc6300f7bf9f611a666cba02f5c9a406c9885e8cf5ce99366c8eb", + "02cb9f6eb7cfb8cc2d83feb604c8c384730280adb9111d6f0a745f8d5956f8ada4e5082b1053eaf0a2fdf49be92660f8823cf51072d6230b17754740fdd9ec0c1ce303a057f44c8f77ec2fa3a1aa341093a735ecbba5a609490f587057791763e6896c05754462eb9ce0f992a12f9571824252cb6e8133218d055fc503c3b6a6df6117de5b9bc4792eec02010d0fe83129c1a5714ba36a3caa5eb69ec5d7326254ca6ff989db5b2320ef0b7733097497e61d23229012b2e143ad4b57071f6e88deba3d3968d2a87c22b4b3da922bf17a4b83a6a890ccd65ba074f0c9751533a0025357825f254ade3704f67e38474d0d309d62e63804597f9b6b9075d3d536a28851154917", + "0c2dc1011d235e63852fccd128339e90bbb2b7e243098aff64a7cd107b92cc113165071b80ef1021a4d9c2cb84e3e159", + "6d1449f26a2dc23512e6e075ffa8bc29a2cf28984e083caefc8eeaf54dbbe52b22bff1d89cd780f94a427c26a4c404ce5b1d01597a4f9b983322672d09485cbf9ee4dcd92397b18fd1f821abef1f9f8055c5091a8e435ad4ac49b50b02ee2ad4d675ac163e791d88be9573a886ac0c45ed0c9834d7a8c599762aef91d7c6783b89ab53dce79d0f7e262f957f18d5549467045b6e776cf1cde47b6bb4cb54636832ba131f3217feb0f984f475f42228167a628604c33145b92751843c96dfc908ede2f4a2bb1efee56964bc550e6b3adbc0022b5514eaec589b7d14ebd0e237107115ac037a735f7a4f5d6af204bd98444f0c853ba451afb61718cedc3d84c975025e28ec" + }, + { /* i=8711 cDividendBits=4012 cDivisorBits=2512 */ + "0e1bb27ed10581565d3006828c17679a503b0bd62da8b68e6995919ef9cb72182f5d5cba987917f50f843aea9b35f03412fa614453703a0bd186f6726da3c376505cdd7b52099a7a4c1a5ed373c7c1d630ee953677255784c62caf6690ef5ec4075e934440773f4418776e9547d2f4f36f85bfddfb259311b36c6fb1473cc97368c280b7e7ed1656fa692dba27f0e6f6eba52c9cad213a0db0913ca2f761e71b5fc815503b7d66ed35bf4ee1e6c020991d315dc0677eb446c8c1567f572edc3891f82f5c127970ffb30dd2b60b8069c3d180f35e9831006bf7a3185cf14e9fe2ee0186832089ed33a6916a722f25c049f146b7e95899a488b7ed1ec2b3c9f1e42ed231b22881e4dd0e59d9918254aa7c2251d923531855604d523c8c58ead9a435ef81b1151aaeb3dee852c1d26e4f6e85a9f2be7868aa7fdce5d271b8dc21353d0dc3a0aff335a9999e453a430e97fad456fdc676030a6b6ff766a1d932e0b04c31e746edc0d3f1735be0294624422dfd84536655482485c00e299ffa52f16f843edbd8ce7b8fe4da3ec7de8022ac132de041c1512914d0810d83f9e9514eb7333b5132cea8d5816fe6b7dd44d6172eadbae8670be55badb1b024572c3cfdb09a043ffb32f80fb32ddfac12213b613d5b3be78f8f7884e7283470e82cf8df4db38320ac089f6c9c6b10c18588c05b9676fabe445c17", + "71fb585e930332b1ecd320ed34e0d7ff104f964a07505990db670bf59f6882416746002420657f6c6618d90dc9f828bfaea409a716ee7e7a3824e25077d7635f71defb78ec72484c94cac83713dab2cdb993bebfe03bef9fa204f6df878a253958f799c436342b481cb37aa7729169700beb6fb92da57e352143b8cf857c50fb55a2fa1e8218cc89af202b873f4d63c2f615c5713685f7def1def2a64562e068eb5430dc582d25aeb98cb150d810f28434091b7014eac0cae134d864c95dca629b4d85d9dbc7468d235ac1151723a5bc661200dee1ebaf7d889f93fd447b6401c274ebaeb78d9cdf421ee9cb0a35f4e84f0029a6d10bc41eab5d8bb8a899a57e084ee3671f1f563db4f8fd208b8780104f8176475b719012f8779ad0dd4e7d1de1f1efc3903a133ea67b1fc063dcee7b8460ca2d2397d1b2b8c3", + "1fafc597afe29f02babe4bc07b0a4cfd3cc97333d89c8f9ffec0891feb66472589483b746b6827c2e98b2fdb2a4956460fee89a5ea1ee43f37939cd96be2fda9fae35a2a95d72985d8dd1b5467f0c55ae42da0375dc61ce496302200ff56948601982db202bc43dd3b89eb3b89e7ee96ba74188481e1257d07d073699c7ad79122f8c1eb890d00dfb7e7983b875e506a21c2cbc64753724b0a98b5f82b6c0d8b665f4bc49c1588889df31a9d7c095a8a69ce73fa8f5daf460f64f539", + "0cd34ffde46807b69c161212bec3b143fe3f9af5775cb7c294f7d1dbec4119b99866cb30a43d5602124261cdfba6f8446f93add7748215b7464f81bbabda0a5a7f53291b16f064d196fef9321f6910552c274acb80508108f1b77b75161cda00f58f6062f9e786ba9c47afbfe47060de21caa3e0fe935e958e00b052dfef235da0ef3d1e17a8cd345e532060f57b0b8b87a16d17741ed1f91a9460aabe66af8c1e9917ba3b0193b0bf879fa337a9fae785f5d15f8a9e7105d96f5886c7d5d5d2f1a95caa034e3e1599e4eb54372883f1ace9e0885350e623a6daafaf66a63c100999537e82017d4ed34b602046957b8c2b4f847f70e93456a3689191123d584d9b96adb1f9c43bbed865df530a2c2d02ed5d7c1b68bfec6afe80af018ed5fadd2729839dc847c7f7ea5f072a2b8177444091c8df0987697a99ac" + }, + { /* i=8712 cDividendBits=948 cDivisorBits=406 */ + "05abfa8c0689f318fd6f94c87ecd5a582a885dc7738d80870429ee90ac8eff83e6f44fa22be1a2e0f04eb759bec84c7c9ab50e06c8d2c0e4897ab2f0612ca43ca2b83c95d3096d1a17da739bd2e875e8609ba9c75f3c91074477bec1c2d75cb8e9a3bf0d4edafb56ba2e5115b2f08f18083e0bce9442e5", + "2de5790abb6d01da0f9f684ee749340ab62b818431714659d0ea39bc9fc2a283b19798dc1428f05384095290c05ce93e635f80", + "1fa2d2266ddd4274d74c5a8fa4bd3047360dbb758e1956f60ae7a74f02fda44a66efa1c67ba8f3442eea2f787bfc83be966eff3dd3ee3707305a27bc93067b82bffa6906", + "13ac26e39be6812aed168c876242cb466849ba11da7008876f2f340cbe5b82a1266a2bcd85e20fb202927de1be55b1d31485e5" + }, + { /* i=8713 cDividendBits=3221 cDivisorBits=2528 */ + "1859e1de9013c479a56057bf4b272919eed66c18ffb050e927fe88684a8afb173958ae7d16d0b58e1110bcfc5e579e29508eb4902aaabb4ae589e460f2a81695da2953cbe255794bd062d630e9504964941286dd413754a2655814aebcd738fac635bf8e2abb0e2317a208746995f7f6d1b8640125db7ebf459cfa30c1f89810622aa2125646dbc251b4877c9564e1251b96b23bec33a279e8de76c5f7f85ab1e6909d0125c13937a40ade8262f51c560d4d2df62fb70c728819bd294bdf1622a7059af459c0c53623aadd140ff1df5cc79abcc12bd35db2b217ce3fda4c1aecd267a20f2bb80cf0f584ee997d9b606be72dc540d5323599b042f40d52f37983f1d797995243d837c887ac0a49601f12319616b1fa507c2899e9d7d43414a129993386d98f23d3e96df7de097b4d1b896b6b6250d1c870d7e4a18ecb575e02bcf04f8a45b617a166956ca8220fefcb8dea2f18d3399f1b1ba5c8464850e0bee891b3f9aab76ee51ca2d95e6ad329d623f57b634e302eabf9f3cc50824e39a6a9075d712736b43d18069d9c69986536e4869a0c", + "abdad90367ea1d565ebd0f54c1731160a88441c3a5752b9923806453e80de72474a7ae2ababa50d6004ab33af666918edddf7c4e1db72df33c0d41c693e23dab7f80f3d2217d7250a2aa104266ce51c3bd87420f24e4a7c258063b12e92e27133d50dc2a47f0b580438b7a22c9524c752b13f44d6713463387b46c70bf7537350cc0da3285e2a5d033912a9faebd9189dc51c98b0a08c40116acad294d8f86f12688d8cca4d07a87df6370ebd23f2c571b583d537ebe9ee4a509f3c93981b26bfb157465f8756f2fc4c912e07067fc92c1673ee20579bd28440cd47cc7766e79cd02594634ba8e11ddfef104bb786239ff2b591a89b78ab82fb5156f0a72940975f40f6fbbfec74439e117dd4f00f9137bb803abe2be543a12a0d3776facadaac79e4b5356f02d4c6a4ec7eb2e31e8e74d165cc3bdbe37f1ce1bd08a", + "24462bf5c41742bef02618b0a8355fbe3c4a3857141418ac26707c766b088d0c71b743b939464103ff49e408acadb0633aa5d14acca36842560566aa4c3fef57aeadba238e58d1301e86a453e2885f3860a75cdcc55215", + "5db19ff96dc42f2a499d4c1045b9b6300d433d1e7b4db11a0ec104272c9a0165943fcbafdd3c867d55663b5411acf75c4d58e491d32f0995de3123cd53b341f813619bf0de02163cbd34edf1fbd48c3ebd547ece7e361b2a5a3fda7ed205a1a7ce4d72ac8fda98208fbb20b645fd4f3c0a134deeca2262c7da7874d36b2c7573610b4063a5a85d760d7abc1abce44399fe2e7b2b6d61cd4ff7eab711414c461e7125d76611e654403a7a8b35d2ec2757be1688d79e82758d1be766dd2ea8fec5b2f5cb55e4040c6e4dcc68907321b178fadd5d12c4efbfc5c04ef369493b41a066053ac50ca218c97482d56c8f1061b0abefe18df4e3265e984e9a5acec782ed5e29d32b3aeb223c0e74fb4951d4685c9b22a7623aaa5d19a71fb03ba70b539e00694717694dec046d6abf6251112826c03be7b57615e02601404aba" + }, + { /* i=8714 cDividendBits=2304 cDivisorBits=1121 */ + "4a27d7a7bf675525bc590ca7e553731ff71c5248249a87190a4b45874402971dd61fbdfdf72e4aa127238828cd7af5d7718b3fd2e030aa6f5705bcf0613860a250765dc00eb1a0d8c0e019babd84d1ca35b5b34e60cdaf688858c903dbd75dc96375b32388e19d2bb9163c0dc2ede657cbdafd56042067539cbcfbbe8f71ce7a2fe932ca0a934b227c85b851650cd15a8aad6a3843555e788bce248e125d9e472e0ba83f997e4afd55a7e89b542aa502a3de16fc48696f5c3579755a83c1f1c64639956a57f89c99552c101929bfee4e40e87c347b536fd708c7df703a230b1da93c055b311e0dca0af0c03156d7fff7a54054bdcd33a65c928c21e55bb5f8f30ebf7e504422036ddacf2523c80623a4e8184931d4f77d2cdb04ec5c0d85aac9", + "af93f987de2422c1c555ad5cd0437c722f2a065138dd060c4ffed4177c673cba14d8e2c6c4788bf3de7f9350973d9a837575bd226164e34ca8113dc3ea13957d367eed29818ecd6fabb72c0cc4dc315d16930cdc9dde30add0a3be267b22352128f02f83a219ac4f878b2319f5211c40a725babd7946402bf09ca111c531da9b63dd905d2a705dd000761f71", + "6c1f398ae63c79ccd7fb29068ddd6ec369b8e48078d829c51f4bfb54d1c6c04a61845359794cefc80a124242c41a5f42a7d049ac4a9e8f938ed7626f4577f717ff79284253d769d9114813ed12cc945e919e51cc9d1e6337e9ad27e7d28807419f8df3f208b52a8929484ef740194400d481cafa3765dbc2a7372408b6c86c41f6f902f22a2fccac2a2297b3ac2a5369fa3476b2", + "44318ee7b7e4479711e7a42d8fc4fe014eda0463c355a8bb60d2e017c2dffca9f868d6a616c7b75a4cd6cdfc14a22893bccc00992c13642e0a67fdce7dc70e67ed4d888065eedc5db4a2284101a8e2ac111ce626d76a0fb6e2508f6080d232bb5e2d5c8aee938b7fc508fcc02b862f9cd244394f239242c2ff081b0d4c543b3744e9d26acdc3d6798bf1b837" + }, + { /* i=8715 cDividendBits=3853 cDivisorBits=2114 */ + "335571d1e3d9635e8b7401c2825b1d9eeed93f271355f2625cd71db6f7bf728ae413d920f4bbf10ca90f503792ebddafa4cdb2c652819b7e85013650a688edad41a186a082c73d97a19e091baa57317b98fd909268e25f51433252b2e5191dac49df3d734a8885419b4d0a99aed74db2e5f7ca98e9fb427f2e2b6b585b8294de7bd40ecdf7be909da6f50c25cac23dda5c8c8719140f119ef4dbd34dffcfdd907e802c41e1a4fa504654d532ddb1b418cb98d82e2b7d90bbd79c3e95bbf10809188c1badb0f4f740bd79a60227e6209e564ea20425a2e9b7ba562d1a3fc653de4bb580e92c92f951f6e2e14f1d81d6f47944c94d190104d17ea80a715130225f15c7aec17b61942c35411aefda278e5d63b15aea647736c4fb1f1c7697158e1e08fb21140aebfe9ef5c6b892026407575a9ce6c42fede890f2240f7417e040bd2c7e5b47f4cdc57fe6b957c4dc811d3e709ae449e94c2bdb232aed96c726943e500ba1c4e2978f657de569a469350d4e49b81d71c7a54a720b906c4010216a301926711ccef221b9a1b5eb81f98206b1e7e5f0b4b68d810f4308de360fa09ed191ba69dd932d85f18430543b2ce9c03ad027600b9713b3b0dcd0398f2fb670430e17eda0640086e744eb87d93e121f83c7fd0c60e550f8ad06fab052532ed26046", + "4a958fdfebeb3f30def3f99f91b521e1bd20badd8bdd15bef217b6e3eb16b143f24f4f7152ee98392f3ac54d7d1a9d0748562094064018921d46a4aa2211a17bf86c132738494bb512b2e841cdd2bec3da515fb9aac33a1fb471dd67d0b9f0d67de753c5ae0ea923867b4827fb9e1c030cfe15a3ea206f55ed9a39fc4640643e5927785cba743cac6d3129e3e0058ae0723d0a517cfb17c508895cc58dd6eef2180c542fd720939767405492a1667110002bef987213794d4b7b037303c550db2cc1489cdd7e63e5122cc130b700fb604e787a7498e4020a0395fcd58a90fb755961a633db47fa6f7e60171753c542a69511ab0c84a4c69dbd79c1291f109c59c7c99c327d15e2fd", + "b0322f01521b747786925f25e79af45e608c2e8f1e64038f9b7247f59cfb943d4c8d16d422c806165583df1c26d8446cc7fdd5e9cb52c2fb6b9ea7e30f31de3c3c8a630f19671f880cb490727584a4e84112c30c210b8944b3688dec67785df69e000f1255b5ea0e5bbd7e3b7fe72978f203f4f98066bdbde52100c727b3aa2e33492ffd0d2d60e6f69568548c5b31e600d3c99900acc98b904632a4e47540b27ad39453fd59c0f5fd926885e27f8eb2eaa26e70942e3baf44124e300cf6d0c826e0768de9fd6b8ba94d57cb9c93e875b1d5892cc105bd6ec7", + "33b4b568ad9fb2a223eb076e41ec4ba02c2f6c9c48d84e0440a2108ad926a606820420b8a8ee645543b875c51afb99dd2da4870f811f3eeab192a0b4cb6214c0c3ebc28d0e46aef91eb50650c84fadb3bf86370a328f7cb47afd3ec6efca571c9f823ea1dc233436b6ea3735d6087aaed46bd8e4f2d00efcd11278804d6fc55fc8ea6ccb08b67b916eca17edab104cd77ebf963f3ed331097bfdcc20a6c7aaaaf62b5a8928f6ac830e6d0e98424b449cd0fa129ba304221b385d10829743f346607c5f2c175f85673c20843a0243e610026b5e36ad9396c881b4ba38dc9488d1b5e551de30a32ed5d545cb07cd822ae71094618983b9734bb01763f68099f76eb339d200057d379b" + }, + { /* i=8716 cDividendBits=3371 cDivisorBits=3007 */ + "076f1ed0eec32679d8da5d4921edd44c52212d5b4a23c3688a015c74ffbffb6f8ce4a69428cd227a8faf3eae48926f1c68361425a8b413ef711826a64a71a9bdd0a0c3b69ee51633b2e661b40ad231cfec96377974ef18a0d82b761c9a99cf49705fcfcf6cb8a209684450fece0e023a3e4e1dd041dc7d8863ce3cbf31d34a595ac9e80803f5283125c37048a11a2144dfdd8ea55d9a37808035c5681028fb91f6bb81de89d59270a6074641aad3ff7e5c207d7a98d5161464bf9fe60c066899fabaffc05bca2249d7151dd308b5856ce71f42926c24e166e7ee5b660fbd42f0a8d5563b43f2e96829c8c6ba19b49ca3d452c5a3293b3231378976b0eebaf769f9139bced6bc97e87bfbd9f3ab1a941e63e358e9fa69af277f0208ac2c8cd48d4d0a9529e6341a5ebf8e2e458ae42627be4deaf3f3eba5be421d60ff5679d46bf1f094c3dbcd8daf3f57347c1585757a64ecf8e2556fd3c0fefc6d2754160f8d9b5cfdb3940d015db994b7623b513ac791c6d7318415a9f3f6a49720deae9406c8f8e8734b70dff92b4a02f97173162a3cc9db075830976156ec77a181d493a3dce5d6ffdfa4", + "539639d31591d818e919ecd6bfe3cf87dadd08464db87800ee1ef724552232102dc3a0a32d46f58760742aa5c3ed307d3fc6b5d937e513baf27152506d5abaf217d8c40d50e38c4cc54331d1ecbba13333a15d8d1568c4f38289ca9014466cd568295533ff135ad5ab208e250da4972fe091f8196ff0cb402d1342b84287f45143fcf717da7cfb5dbe5e441bd06bf66079810778e584d3466820b320de499513c34c6388d9e6d8cd1eab1ba1d08c0a012c37b2e17b4cd15ca8e20cff37b5ef7274fee82ec730fc0e6479e527cb3d755dc5048a8c46273402593f80b065dc3a352d1623caec44f066c04e30e29e950e40d9c262c137a72b4590fd726a5e13bdcea43fff5c61a164b63d5f756aefeec9352fc4c8f46391fe8c240e0beea1ea67726f43d8307ad2dbda46fb4ab3cd497e7ad137aa1fc224fc34e248cc198d34ad0c773c3059791de1d7fb1cf82bfedea68cc5751e631b96d466e9b1b1a994b291d3989e138ffd8b70c5b2c44aeb12f5d3d47a5befb2b85abcf0", + "16c4a7ed6cb945d2c4ee9485f5343a8a959a0de4940d695ce9189a95e54ce1577d6364e70e2a3a62473c8e131305", + "35577836dc81cf2a36b6e59e7b678f3a02051cc5a448d9dfa7e6693046cfa4b84f0467efe9e541425f7c44d29e2cb4960f4171b5b6abe07bc030c6441fbbde254ffd6edbbad37d7c17fda56f66170c3a18910d3eed010a2bf641c71c2314f2c0a8eb7b51e402c3b4782d7aa64eb9ba13c39b0a26ebd752aac7d5f486c816549b9fc8c19fbe1a3510db526a0f4dc148cc14698c7cc619db7877aa0a9629a2d535ccda11e528e32f735f33a92860fc88f65755a1862260e4b5170080595676e38cc76207534767b71594029a5b6bba728b4a13409189bc1f5135f1d5a86d7a7b44770dc3c9c70580b6b1382b9ef74c79778918284b8aedcbb7d2ad1226f9790c827b343e35a42b4d94b70950fc2f545753dce4ab31574ef33211ae5267b45f90789544eff94d67e63bc5f8ca55fe5c460197ae4e7dacaca4098137490480d0db36dc60a6b4ab2af6d1b3341dc9f39c8421c0ab8eab27ad7654997e29f02bffb9d99abb6f488f98c610c637450c667985e25cfd0ef05b645ef4" + }, + { /* i=8717 cDividendBits=1951 cDivisorBits=1797 */ + "20e93f22ddd7f6e951abbc2aa38ed27316a9af21a248b59ddc5b1cc845a404429c5605aebb3f4e0b8fe785d160d2d1f2737c34cab9243c4613c6035e4950d30c5100a3afe6bcb080384a8cfe0ddb3e0591e3508a8300d7e6ed3a58a2f9cdec14530a1189e994082ef47e99bc7223a2e8320412f95e99d2013d0dc8b05aea8c8347f831814611c06c4a26d5c6f405f36650f687ea6deabea7c70513a8e6be85065640a4e4029e25402a006fad366b730f58f1a82f452c1772aa775dce8a9eafe1bfbc14ad62bf6ec4d35351020fa074c2b51cfeacb2d46b182b59186708fa14a4ccdf8c45a8ac6266f5ff4a48e5e4c692e5b753d0", + "1cc7ed6c8a2ca6d8919e889db0643813a1fe85ccbadba9f7037be04814c1a1a1cc0de7ade5320eed62685fc5fa6d05ce2771ff1c72c965eea480098457203d53981f3b0add27f4ba0cec036991255d7f48bdd3240b99a959ec337c7aa0f8fc254c6067cdd185e3ff57e2330e8758039a65abea211fb748b667afe6a318a1b47cac904683728b787eb7418c7fbe73b98300e1bf6e96ea947b28b9ab3f68b8509f8895f30124234a97986a7690d4cb67938db7dcdea055a2991aa22372adcbb1f9b79bf5e4c81bfdde82a56427596315cbc835bff88f4c305790cf9653306609f97b", + "0124bc9baed47baf3ff0e768b3f628322a02be0a", + "04c09c96b28ce5c7a6501bd430936805b1f77bb99e426e910e8a0a7312645ba57e84de89d2c3938ec5a36e7d191eb2d9498cc09890dd06c4c5f154c2ae994047b22d4119b3e78f090156aeaa48a0f91dcc3bb8b6cf1701ef03c5fceef7d044ef896bcc6d066c89cbf177c848930013899ffccf9a35ccd6eb9b612a584498e7f68ae600d6d9b8949e06978253dabe67442d3fe4a7045993f633cd3ffadcebaabf6c28107d821c5d38add28bca85a3ac82e3e828f33241384f795ab54d6cc61ca07aa7fe3d2241b9ac4121057706e1e07ebf2b7c409c3d3bee58670939eb61344b02" + }, + { /* i=8718 cDividendBits=2421 cDivisorBits=194 */ + "1d007ccbe5d1ae635a7f43d3210536ea1c25f7f9b30af86897e1277f2cb47898a3c167af8621297eeea3bbbcd32f8934eb431c4e90659793df0dea8df00d15acdbdb00b791062671808f275d3a185b8bb86ce30bbdbeeb8bba4a7d474994961e5dcd15379386472925cafe7cf879a221fb90e0d0f28cbc1fde704fb3e54bd8e3466acad21a5e842cda6f91457c87192c8e8f86c0eda16e94873afbb24f413cae69475563e82fbcff0d7428c38ef581ab2417bc7582df15c9bd7f8187d040e803f0f06c89148d902e80f883f8f2ffc1905be00ede46b25eb9119d914738f40a35cf8a488d00aa3de64c341acad76679fd29e0c4e0ee3cabb06911e4444baf00a1e2efa5efc3d3ed4bc787efde4963029c8cb98c8b9c14d3ca05bade109ea13d1c19944d26952d9ef6cf09a3439860a5", + "01e6b7bf4053d78b871f596d380df1b7f90e2254a301273bd7", + "0f4112e6b795ef633e039501cecd9e82bd7fb65ed17e108f6b7871f909d4b228820aff61572ff011200e4ced17c8d62d3c20400fb5822515ae1650dae16bdcdde452b81f2d283dd7a454a6404dcc162383201e8b477da907d6fe6ea297fde79dc82aa24a49e170198dcd0b3ba2af918d51f8d7bd9e4601cf341e912985270239d5ee1942f1718d5d1bbb123614defb5a1ed48e2f1d3d66d417201eefaf175ea0182bec48aceb9bf1370b36aac8f7aa4a7fc6c9403dec122a79327317d49d5d4baaa18456d04b5f065524b6daf7768a31bae39e243465c350450f4d35a7e185bf4d12156b69edd3beb8454deb61572ae54b7b33365de3588da4574eb195310bf08a89f1eaf3f85093e55ad37e61ac475d3e2165d37cd0c7", + "07f084a4cf99c478453fec07a304aed1a02f95d74c562c84" + }, + { /* i=8719 cDividendBits=1344 cDivisorBits=94 */ + "45dbab46ca4f7cf3ae2157e7b80115654ce54adc8e553468b9ac4b72a88bfa48f643c5712b4de65d54cd7d27de4c069425a69e4498bbb8d03dab1c37d6042767ae1fa155884a5ea4feb3bbce8a4b21b33d485e299e611289da6d129987d495155276150aa699177f4e919583ff633b529dfb4b01c155061f4456aa56c369148cd447ea772f6aa9b0b495865b82579487a076827e71782956c2df393634ec2ce7b348aa8860f964dc", + "0389981a3d9e3c1913c8007f", + "13bf7c9f249561d7d80b7e60d0c07c4e0e258b848d84064f3f5baf2644d46bd906769a4ccda2c2b89c3a75086296033e67e583997c8a1478ee91eca8832df2cc91fea3e499eeb26dd7afdbba91e2a7790f04755d572ce54f1d780caf71b5a205c060677018e8489cfaa4c7ddc7dd40f4062ea2680cb1c63641125acd07af16a71ad45cf5b64fe5d62a1e56fa5b8398158edc005357b3df89cca22178e1", + "0341623bba049debcf966d3d" + }, + { /* i=8720 cDividendBits=3994 cDivisorBits=218 */ + "7311ea3c192908e5fa0c124f5c659a071ade80603879b670b7af8ce8ebbb5881b72b01c9d19ca2ba6f992e01a56768523fb6cc55b12074e6a9430726ee00745ace30c874e984772e24d175325adeeff91a6748f32f0ca28455689380c0f9fd02ea0d7579e98f255e46ae1ed0b510c8cba0a68695d5e4901bc8d6e0b433164fb15e70d0b678529ab7844fc29943e94a90bb2999d42cbcb1318ccf067492b403cd0fe0e5d24b71cbe9587626096a75d29aa5da64d2647dad0e0871d2f56c7e34992c0a239524517655a2c0751b84fa6885318c963737ce918796c28a24a892222683f199d053b3742605c9f3059c8fc2d5b9d47860215cc9063b6c1d559c22f42c06046e17bbe29a0339dc03fdcd3e5b7ede119d0f51d3cd8c9cec9cabac71ca2e70582925401f3446d6b5ee1180d8591e43a1251503fdb64b431a6c120955da27d103f67d9c4f8cb9d750c3a272107ee7a8c2896621939646d8dc34a63b5b6d0565c4da8eea2b4653bb334254f956d0b9d5179188d74ee7b87b1adefa75ba26947fc8a9e5f522363a9459e39ffb38d0ae07a2d8e43d0bdb10fa43145d94ab7ffcedde75ddf1fe395e0caddd0dc5d9b80c0e98a2ef87e6f58ab3cd8b77534e4e2533debb85ca0b9507bc403a50fa104100fbc483e9be7c8eba0cf544794a8b5159997a5478a618e07fb546fcc8850ae68461751f", + "014957ab469ea64c903ef284ed08782c7f50b87ac601f4cfae7364af", + "5971d36bcd39abb9511caf79dec958b540f6920be38a1883fa43f6bee84ee96af9613fb3f1e5cb042afe5d693cb8ffe3e70ea6825248a3071c8c786bd12c4244e2c1e34b4390282024bc34c91e1997e4263e90cf6aae10b2ee02691c0f091732bc1be4fcb63491b8f441924b8398e201cb92fc411242cc9fd2e78819ddf3f23e96a412979ed1d784cdbc56fbdfd4efe0666f8a749ac7444f743652cb2129645f97a8a5d5541963446fdcd3f9f2bc16e343c6d06ba568c60e171223678c586c7e903c2e5ef943bb832a5c7d7f59f37ba2e1dffbf15a2d7ff96817ca4ef79e04f9c1e45ac80feccf4cf9fdd498458c07c13a8125e14e9de8bd634aa56e4f9a7f5fb4d5d975e73b7adb9f2316ae3e0b33876ab9ff039b6f23a6981cc3a09bfec274912e84b38f9944ea31db3a931a146c9a4afeec232b97dd31de316c3911854d9980fb7e6ac83fb9f1e04551939786ebacce16d3dbfe8cc7b6fa5dc8e93ebdc9248834fe3ec1a8c0139793f75be2131b242b97e3bd8a69c98dafc5d79272aa1f235ee85fb01849f33db35aab8e4e3385d804cfcf8d41bc359b89ed3d83bc7017949128dba7ec71f5619f7e4bd324012f6a1d9de725f0b86986c7146809df89910dc6fb02ee47453541c5235cdc7ec67145567236c0eefe6523", + "b1558aeb5003dd7f8f01019790dcd466e6169b28b5d7558c3fa632" + }, + { /* i=8721 cDividendBits=3177 cDivisorBits=341 */ + "dc6ac23ef98879dd129ca965e58637917bf79679098f565083343b37959a33e1d8a13ee414bd3e58f54af01ea68c1ae87a2fd6cba058e8867d1675a31acaa146144a6a616afb8352ec493ce8f54700362cbbef20b10fdac2056c5462b4d49f5899f5fa16141015a6afc0df9cf94f2c9603b419e561abb5a396e1100e52eb6c4a5d25dbdf39911a75a66b5fce322959fd13528cf60fc65de3a4f335d7e130a774dee9a730d6cf16e20450e411cee70ce364bf571358d7f8713da86bf2e8c602aefb461d1b78a403fc6b0eebaa53cc58fb3316d143bf607e56659161bb0e64662b775dac3eacb7275413dd099991b56d46ecfe26d49d753fcdff0865b67af3368e99d0dbb412ca9575b0e346addfa68f5bdb252a9d44e115e6aebba002722fd517b9325898444da747efbb667ffd1e8b5260d01e9b55e6e8d68061bfc10b6558326b5e3f6a3dc49b34e144abd28eb474f6f70a9fb24dd6ca49245d5c1ee39dbbf35e0e2cabfb1031bc6ef5bc3866fc8621d73838ce6112e361523294179f26cad33459619bfe6331ee6ff0a0a08b", + "03a3bb8dcda12f8941b223976235bc5a11d6f3c12a6076bb01f634db558a616999768981102809c54bb921", + "3c8fa4a584c0bb43aac96527dd441f466b5da87753ce013da018070fb66b097dda6ed2150cdc3c1c6feac2ec30f3b68eec39b35f360aad9f6553e65942a2dec037008ea76cd25bd697ef6ec286c5125ef7243ccdce1ebe6589954e29ee19d79b7186887192483bb7043cf70336ba200a879112e3e98d5c7b35c742046c2e791e63545085892d385565408d02099a7eea0c37beef137b23d355e21a93b5a4ff681bb6c3ce731e40b38f709e603b3cbe5f9d10d0a3e7f7f24887fed8a71ed0dbdf5774e34534822404dd8b1f8f02a651479631e52cfdb1fc1797559b1306a5fd6c92004688e4cd1b081c20fc63ff1541d8f29449c1f9f9ea2ecfb14c38583bcc0d9482fd31c7bf6b27ddd803be48b3e5d4a17439bbdf06f5242f3aa893227e05906cc91c78f71722df55b0f89e58bbf03fcfb390b6c2922c147368005a2aaa903f8dffafcc1f8bd7532a13e26048ec8d28ab4acb112771aba96ce5f01b2e740e139682ae", + "033cddfc4d7a2e28feb9904a888f3a17ee976f7fd208cfb62b7272cf62a0accaa0428d6d8e74b176d00a1d" + }, + { /* i=8722 cDividendBits=1522 cDivisorBits=575 */ + "01a2634be935ff2a8c16614a7de48e426d8becdbd6fc574fa0ed027c493e3abfe6ff84874193d3ef6a6f882723cfca5e9c988843499dbd28dbccd11bddbf9b9c134fa58a38f3f51f1d61434a353c13499e001b5d9c1cc6d1baac47c3b744a59b7ef903e04d034e7e9b5579ce8f2b363e09c59d7eaa475ca3620535f5751426b0c9fe3661c4514cdd535fc01c9352c99841f17710c49fb338c9ce9cf41dc78efd8143c836b0c4790db432e7e3b17125c2d96aa92a7ec7c0a8a4d5ca719e1071", + "15c073557b006cea079ea7c739bad4de2d1d5dbfcb90315ebffe982b450913b9ce90a6abbc36e4a8dd46b280a07a6768236b109d74801a4d7124a096c0909ecc4d7b50f4e49ce131", + "133c13320a960a7794de2c57bde3067c5bc7da140aac1b17eb7521e0d553fc786d33d8a131817ced295b374a6e929a256ddd6b85e0f8dc6ea98dfe55136cf3ce28d2e640127a5b77ffa29772b2f0648fb758914119d2f1d57615fc0a100b8f9cb54f8e72b7f736c0bb6e29bdb84741f131d12bf5b6059a", + "02bdcf264635313e2562699ba176b27dd34c554a82744a7974b9d641b6d1626b2cb303df1f6686e4dfd414d856d5fac3b3f72f955e4d38df44fd7096c3976af30168dabadd02a3f7" + }, + { /* i=8723 cDividendBits=3435 cDivisorBits=2530 */ + "85a48b89e884847e6467a3439a318905f82e4ce9893ddffe49bc23e2e08d780a4008f05a17c802cd93e8f4fbff92555b5684913f7c6b1ce248e5866455f0bef0f456eb479ca21befb15e4c45156d2474e265f1b884542b02addcf2ea1ba1faffd7896c2d5291d511bcf8877b78f2351e133a2db7515e3288a1f5b04ba0d05ff21b46f7369b0a6fe39b937da4fcc46367d054d205f1d56daa461a4b6dd3f7d1cd06cd9bc8a7f956136f61c8bb8ddbad2fdf2f75ff10e12a2e2e0535fc140c267732855a8cbb4f6f0081dedebaf89ada8d7c9c947cbced845c22dcbc75934a25a1a88f9d4cfc293c389bb212c913d8539ed863a10c5d3eb8641eb8c439e4d03fd2606c92c0569e66eb98b477374786eeaf07b229b00c7e8f9ed8b8bf8fdb42356f8fc74ca23a9bbf9862dd5a6fbe176af6f6e62fd2445020c4f6487f123af7332c3b2d51abf1ce144efb9aa5af469cc42d1b5021908eb0e87e0f15698a87b7a31270711ca8ab868524b0884fe9cf36a0947594002f0cbd771fbe4d0286b9e6319b7df0c7ab162ca0c12c501e251f8426c929763c42638a654b1511c6a718137fcf227aedcba2034302c23132397e", + "0384a28c922a7313821c1108d56acbf0a39291240811f44c2efafad4e4d5ae91b8cd872a08f5dcc0b0c38fdfe0dfa72fb476dae5714314b2859531d27891df9e81962861f7c35f02f64b8b6d2068d6da1c353eec97d1b800e7dc4b9fb546d066fc5e8e4e047cc12e8d58ec1ec33132ce23635a7cbaa3b623d79018ba93738656c27850db8e58002188f1c9fde06aaa7c5995b006075844829379c775edceae414dd9280917a4dcba0015cacaeefa2fb7fd98823d3071a02449a78c0bcb1e558ac2e691034f8a31277f95d41d21608cc30c793feae390d14fe23f8c1f4fdf9ede2099c33b3cd79ac701c8d165b3a58eb1b4e270253150c2737974f445b4efe0f2a35452d6238850e8b568c3a8665d667ad0c63032bc59bf7f476bbf6671105e45edea33771eb1b1238bb37384f20ac3281b3723b10666321e2b000a8bf8", + "25fcb51fb0119e1c1084e3551e2d59b58ff2711c7f0cd51e7a02aa2816fd3e058ddb11f5abb86e6f15b12b8167f11146a6164d361b8ed20bd526914f22690417663ffdce5f27d16d9a5be9b7508325a6b1449828b8351f896e2e50f2d1306db0017bcfb51b95413c988548b049dc50f592", + "029cb0055cb74e51f8f0cafeee843d0117ae80ba068bfaaeffe5c1ad9c7b937ab59fd46f7b80acf13a40dabcda5c4c829e2acb023a03e7fce5778f705eb8ec338a6c3d568d4ececb75acab2e2295ddd186685c0c2477819d16816eec6773d638a1c820ebf44354eab1e5c6eeb508d35e7bc2c2531751301a34c04994b8606cbb096a7fc64f91b364e3628095e8fef52cb64a866ef40495c8bca0dc8ed7120aa99b75527e5c8830062647bc754db36754ec66263a6f2187d303079492e38b717ff6dba3a853e9657320571f5abf508ec4ab3689fddaa9cc39f78cf25b47b3c736af8e02e017dbaa1d01de24452c98b3c268bee5602a01ead33bf574906edc6f5f1781901fa92ba6c4cf1561def9e2145235eaa7f567c2d3187ab386bbedb722626fe22148d24a50faa592317546f6c614dd4125d15de95929e535ba0e0e" + }, + { /* i=8724 cDividendBits=731 cDivisorBits=253 */ + "07c03cd907e5830ed09bf1d67a20d633bc994a26bded5c03facc7fe33a5707b1c38c6c7bcec37c029c8f1dc811d25d121f8d2c166ed9f08d5b75f76c3f842043ddceb08cf46a25d563d135ee6d4d9a5041eb6fe82c249af116c86469", + "1d1ce55458973060412874ebd574bca010f527c0ba6456a5d21838a1f44f3e5e", + "44281e0c605849243348a96192c5634d8f292fed602900879d420916f88327c94aeb784578f7022c2651d4bf71233c85d1260911a399d35580c8c0db", + "1b2aa9d28deab0c4dede2533e1b9f4febaa8fc5140067eca7f5f04dbeec789ff" + }, + { /* i=8725 cDividendBits=163 cDivisorBits=64 */ + "02cc15bca07b4be94f1b23486aa64822e9b3bc34c1", + "66ae2b992ace9af0", + "06f9530a602341925c2bdeecbd", + "60f05dedf63e9191" + }, + { /* i=8726 cDividendBits=681 cDivisorBits=528 */ + "01ab19829cd183158205f7e16279884ace524abdc41cc753125f51e30d1e415fee5002d168b396325cf203d13041339dcf83be584122f0d466ba738a767ff75e7d374d2e7828902c56bd5fb02d1f6e76d0689ac0815e", + "11490e04ba48d6e18c5e56d555cf55096f44693effb6b553c4c35cd7712038802e965dd28070a80438bea04d9fc720f76bdd78a814718bda2563b646065a40b839ca", + "18b56fba56b4a53adb55b952e1106dd683b59d48", + "0a977db211756100c7a4add5835d43415c21c0ee0e70027e17c1eebf7469a02776fcfddfcd301413f25840eaeb4720120c65067029b209069d85dab654a631ad5e8e" + }, + { /* i=8727 cDividendBits=2524 cDivisorBits=370 */ + "0e45cb78bd673b96c2e9d2f48a45859c764aa3ba1e40841596c7a63f71ca8b1d150c2f8d12da9418bc4b52aa1d6088a912eeefeb7f0717f4aea75f85abdcfb6115a66d53aa46437db8a9c9728592cec7281c9c5de695b6e98ba95d010bcde9bc65ece4d399d25dd2dcfcfc5d21435f3ba822d43edcb47afa4635874d008ba5c7983227938b360a5a8f9acfb60e6c204cb9f4b666ba3487e89ee43cf632a6204d400373570909b7de6b82dee1356da4b6a7c346dcf49bd6095aaf35f09855dfc4beba5e47b7cc5c49bba94cdf2d67cd39191eed0563237769962b44c95493788be326de6e5b614f52031509e650fb1cc2c30d27a8cc40016ee40cb94c2f2d1a1a15a889290d230091a415b8da42b0ea17d98185592624ab7f7917fb26e154830b12399b14babeeda46d0a142627d7b820b38d76a0541b9271313298e5", + "03eb44fda94a0dbc28cd20c5aaa702aec3ea1797ecf7faa12117b33422c3db3e564dc50560ca7942802eaf3baeabfb", + "03a452c02df3f25ca32e30590638fc54472f2d7698d5f3c8ed1e8a9dfd0d00ae6d9c44eeefbd79e6b000bcbc1f75515478336d917a3222b1dfa9b8237a722c88ae5b4f51c9e4902993b100437f0ffa2fbaaacaadc5bd8c15de1ce9caecaba782b38d0e3496621a7c7fcff2ce15c45ff0c4d8a51160481bbdffa03bd200dad2006bfa01253daa1539efc960df08630491eb1ccd79ec2214950a1ecc7574e23ff999da8859c6abc2e65bf3c11c1a14567226530d09435cf269b1ea6fd4d7b494aeacd789f665b9fe3ae25fb353f792631281c3df87365b647c02534410df00848cf1c2e3634c78205baf2c1df7f63b9dc1d86952a877ebe955e621da54e9315f9425f27c1082a3ad758289eebbf69b", + "0277861837bae941ac733f170843171453d0ebb4487f8a2d8cda9fbc639e3386b18b8f56055a51039f6f303ad445ec" + }, + { /* i=8728 cDividendBits=2983 cDivisorBits=912 */ + "778df480d0b5d4e2d2445a89d7f6c39f716597a65d3e46c0fb3fea6a80969b26e7a08b18f8f49ceea5a41c13e6470b28883ec3b7a37b95dc27a0263bb1f05cc46a1a1527fbc8cc60afae20fa6d91eb3f9de2b3c33e34155d370194fb20355f1650ad19d0de5a164e4bf18e68ca1decfd0351eaf4168bc22ae042e66bc752460a5c25ffed56f1cd6a7f720cdc82febf1f9c7ffb7926e95bd7e488435a22be42ea0db397ae6176aeadb9ec2efefe4caa2152b367f0925c0b73b602db4d28263f1e2ae1139c3953989900b517a4634cce461a5ea8ce6f488db693ea26bc81c183d30ff50d00e99d76d88edb9d9f8d0455fcc33a60299b03868cbe65ed3e320e3a59205eccd5fb52f3bd37e3936c36a57408402643d7f20955630c6ff21ac54453af09f0e78ec625249c8975bcdb9466a32cd4eaf542b1a8ac68d76aef4586a460fc5b84c943a7b789de8a45cac2cda1b8d96beaaab15389b3b70903ff4220cfc2de4b27aa75aa2c91379de09f046acc911159a06c4593", + "5296459b9fd7fdb58f3a01415f1c846a50fbad4edcc889f8cfa13eb2cea6200cd47e124e7ae868949388abcee38a27b90145431693384de10f17164f64fda84d4c47ee43bfeb47b7a6ded33ba79fc3b2f412d2c24aa4581d7948152dcdcf8a2dc0b6240c8e70f35e6cfec84a6282c5a69496", + "017297291b2b12301f4fb5f51ef0306e13e7e6c160bd8d7e39410a2e4449823f91f22a0ec633cc215b65eea64666a4240ff69352e17ee315276f7f87fbcae65489a9f0d4564378b2e49f7cc4c9f97d5edb74c4148d669a5bd2d7cf1e1af9cead0d4216b4c7815918bfb33c91ab5cdc8f6bc491c7d06e46fe23eafa77aef1078729ef39edc27f34b9aa1c825604aee7b7cb8d1c4406ff7c40495d39632770f9df1cccf8a1e798c5347692ac9b3f9ab7fc9c2c2a214143f235d747ea23006e0d161d1b511b3743235cb30fa82f5d5ddf4b802b13eaadc4140519ed4c93ff72ed921fc57dce407d444c3218149c718ccbeee923674d2f0bf2421035186b3b54b7496e9dee75", + "20fd5ceee7438959d95678a3bfc600fc4e021423aad11f0166995c5d9cbc3cf560cfcfb8f4c5abb6d5f75b9b353d38eca1345352e185e835e15370a7ff76546a5ad31fd4541d4bbc153d587c494b2dd9351f45b9528f0a2a81e09827fd716c4adfc8255a566b6d1d8da3bbec140cd928e905" + }, + { /* i=8729 cDividendBits=2487 cDivisorBits=1979 */ + "2dfb9b062661b6db42e12cf1cc81a2984b1dd777243c49c3cb601d71d0606d6c94364db74286a3761a8c00cef0dfbc4fe4b0b81bf73ba085c892b544bfb328d6f16800c1618d6f4f981c2c4213175ce662e07a4360f0fab1db758ec3363f05f52e0c785b0b9175d458fe6d188dbe861626019e7290f734bdc20c49b3951803cab14e55345e7a4c84caf846af7895cc9aa5ffed1465d246a740c23e1e43ccb3fb507581c5ac004f5f4bb1959f3f468a3f496d0f5c1c163a40bccf923841a6b181aceeb787b5bd0196927633ad43c2073ae2ae7d601c22971dd8c0b922775b1f8c69120b37b2519a73af01e6e1822f2d5717c610cd09afca9f86e281d20a16f7a42fa301bd4b5c4990a7f4d1d03b9057798dd7ef8cf8ffa9ff69b114f8ec6b9ac3978e94f9bbe42d3ab4b43dd141382f4c043dea7ec0c3c7", + "050b9d25c46d513eef74452883735f225a422fba8c805965f1789c8d83070b0eb7af4a30dffff28ebd71f6f9e782b46a2c43b670237ab4271f16f70528865801683fcd1c77d82f96d44c961c9e267e36032f81432542765b4caa2bffa2dc87fb31a40df1598dc52324b74528ee6e470be431942073bf6604a1f0f59099052b0ab9e3afac1cbcef992215dc01aa90c464e99c0b9b2553c8941817d84a5d400b48f285feb3b49059bf936719bacc67570af8446e9d871ce1a82a34dd61e4d390d1480dcc8a04d631342ac76647b3e53233586facc7061c6f8c8039400392b036eaafe4f32d13a25e230eea8341e5d5cb5e3a6e41c44a27dc9b", + "091d26d39b9e91c4dfd0cabee65c2d47ab1df07dd75cb473b79e41e15bef9debc935e29a60619903866c2625c0e21207490646340089b17bfb35fe0ce5259f47", + "014871830ce2478b5eddc71fbb0f3bcda472562041321cf295218409fcbf3d842ec4cbf4e1a9892a6e71a6d172158d14ee7374d9160b144b7a2027dd45ba19741b14ade18c5a05a837c9d389200abbabace51d35d3924e0f3261d26b32611ea6a017d5bb3b4f9fb5a4232610369ec185dedd5cd53d1487c120b8fc7077d2134d5dc7ba582c3b234c23b2242c777de44cf647a77bf3251dc780c2f667b24e0a97dcccfb401e304e983e7dcb5f07da421f0c0d93ab2e7a37f45b30676047e1ece19f8ee317aa045ca849da808f0383ca1aa566a99063f822e328f83ca3b218db6ba20b74741b4a23304be17d4c265dc831d90b950da2474fca" + }, + { /* i=8730 cDividendBits=2465 cDivisorBits=1956 */ + "c7c4ae7ed6ca6fd1a1c4d19ad4aa6af769cc6e358fb70640298bf543481f77811ffd3d2da00f23968a1384df4c2279a66edfe704b0f26d01052f179b998ddf0f8e3588934442887d9560f1d701cee614a70c444ce927d20c7027be96bb9789c8bd50a33042a9162877014806e73ef06d4908d2ae8173b2a301ee81dea82b8b0c6efc07b7838d7539da1dd9dcb42d8c823d579f0e254b4ce416a4181cf845baa2451f43ed9e61cb43b1ace4f1516957b129de9b01c7599fe256147bbe8e2c6ead1e1762e98cbf403b5980a8331d9751859ad11789b51ce0ad159c191492cc58749b93af224b166a450082e9a9b42101663e729d97bf1eb2365bc252bba9a3daebf052e91416f09f816ef26432d0111c02538cc9f40cf8618d49a2faa295fd6c0763b4bb9082205a886b3094e4ac1f690df951d622", + "05762906034ad93ecb2341b74411e10370eaf7bc6bf7bc7e6bb969e3ea480379037893daa3862f9b95d0646799d01873228702bdb9665720afe980e7741ae88d12aa8cfba1972b0d6fb74c5c16d36abe2f7df9ea4d847eb8eb5e7b027d54b45485e8dd352720e8b437fdc94df8b06eea57b9c4cc4b2afb0ebed34a8ae4712fb3d598877365a8bf26708371f49c2a8ca200a92ec2f366b9901e3362a9b113a55ea7b3a3c88b1e50b21ecc1443eb0ba11876b11623fd81599cbb253f8f2f9c5f7e329046b9d108014e4e41694f523047a53c89ea4e8ed5317e5a192bca87915b84fc4034a1c1d1011a77efd4625d19dcc4d222f17648", + "2493be70537c6bbd7cd88d939e2f4658426804c73515a5a0cd3ae74aab09828395b806392ca75633182d99b49d4df4747f861e36ad35b236a6ef0d59addff165", + "02705d921ac5c8df98ea042de8d3d6956c3650563c0667a4925cf0ac8b6939ee37fb7c84cf7596905b947d383ed21df6dd33d0fbe137f01e72cf60fe2229d093114431c7299b0c5c83ebab0566a24908f8779da56f03ca63c02684038cf34312d4ff9fb7b2dcba1bdfcb215eab17d70cd626444e2b73d67287405e1df2536aaf7b9447f714e9c93f02d14476fe4d0efd3af8a83a0d085c5870f95d4c0dcf464c2c584e04eaf45fd9162346243f43399f3743dadd23eddde1bbaad945d4f6d25ce81a329c6bdfa36b34d39979ed4fd51410e3f969d58fd2e52b30e77194e9c2ef0893a9431a86aee9cfa38d1a5aa7e68af42efc63ba" + }, + { /* i=8731 cDividendBits=184 cDivisorBits=54 */ + "21de1bf364b06f32633ef203dbb0af54e82c0d5bf34692", + "152ee177e13f43", + "01994b0c076af3d8a2354f7ad4c4177298", + "0e63a3e504e0ca" + }, + { /* i=8732 cDividendBits=1628 cDivisorBits=433 */ + "1c269edaafc639292b00dde64ddfce918e902c33bf75cfed0bc4b9ec052843f511bc06dd7dc0dfe6279d029fe108067cb067f95fdbef06a4e54fb4aefcf643d24f9c89b4903b6c60141dd82eee898be846f83066f71e08607d3154dfbd24175be4b8ab06217bc9e20628d112e27e9e3ea1f74459b7e0b76c90cc65bbb76ed48e89e555c2251fd9bd258821a7cbf79b5f58c32b5e55a50c04a831b91fabed6ea5d98f8270196ad32bac83baf9643246b07ac0b06b8287fae20a6ae326f7a81248c59176ff3e07b1f8559ab6", + "f8e93b4b1d7045b11905a1cf6db53365c3659d810eb3811eb7b51aeebd08fa81b0c077c6b4604695c10341c541ced45ae22d9836892a", + "1cf3dd1a947dc7480c8f38a7a20fa17a6ec2e724d1cc59b23a1d80acf49dfd30e4d80084662e1fc18cb1dfc7cf20f0dd5554d092f5d1fb1d86f4987c0c9e2455087f316cdda3e336cf950e5fa8f21147527e17298ce0ae322bcc1f1ddc72f02a184597eabd86c27555c1e03171c6f4f46f807a2c44a702f877e4d9b4fc18dcd6f52fb00f8e615123f569534d3b4b2d92639ea71fb6", + "d528987a46b96a27e7ee9ebd492ddc823c778753bdbfbe6c58e4d8f4860c95ec1a583427a29c119a75bcce63aaeef3dac25fc08e00da" + }, + { /* i=8733 cDividendBits=224 cDivisorBits=90 */ + "5709b9a52d3e27d0cf8cc02d77505bf8757a42665f543cee33f31e81", + "01482159186728c8a4083c15", + "43e7b5f72c836b62e16e7cc6039040a6ca", + "808c0fc0515e25993e17ef" + }, + { /* i=8734 cDividendBits=713 cDivisorBits=84 */ + "01f8e9c55d8adb4d42f3268292f9a78cc216742b9d46fd89e22a768214a69d7a6b8fa0ee5ddd06882004bde130245534a7c19d956c21f9c9534ba14d793c03dd515243c7311458ea7bcb5b954af42976c207731aff665d220512", + "0df1a1f0929e20aed4441b", + "2435dbcf71d9c4b0ab67710f585e9ca68cdbb57c84cf73ece6f150ba35ccdd388a50e414af6cf1198a255366cc21b8aea3ba31c8d6488186ab227844ef300d101a21655df38f546dba82412377a49b", + "0642edbad706c62d6e7cb9" + }, + { /* i=8735 cDividendBits=3302 cDivisorBits=2464 */ + "14a15b09e092a704044d0e3984b91710d9ecaa184e9b5875bbf24494f4fd5ddf692b98e8a6230be3a4e7a6e2f163298a783dd0de3e28ff74565c66e3d2137a018425a4ed9bb16ae96cf3ae8e6cf6676697eaf41b42df71b67f2f85c0ed01e1cc6d15ea5f4b6e6bebd857e5328270912283c6302409192c9fc14c8ce13e5c7921d5ca4763311dda5e6fca03e28c11530f5756dd33fdcc2a30d2521a1f0f1ef9930079e0f91673820c3c9eb5e63337d0fb7f95c65696b6e1cca56dfb440278667646bb89b0c4ac7b25cdf4af29ee37ed541adedd5ea6709b64e6d46e51720c40725576a2a2a3482deef75ce2a28e6429bd71b008dc1e489fbb18401404a82ca08a0379101860a0d7146f78a584caa2e0a970045f58e50fa6e368fd60fd0d6d0eae0f8f48353ff02804c44c52188778d92d6acc892d99cb22cb4c97c0f1bf16dc5cb36e0ff05e3da98eb7f72497110194d08173aede53ea1d300e29c304008716545aad15bbfe7cc92fb70a8ea4632ba6b7ee04e63cdeae95aaf0e462dba2df1737c7bd4462b5f770615e036b45e587ecda7c9ee1aad380103e778c1f5e1d", + "e7ee3ddbeffd35948b6d46dee333e7b5fdb954af550d26f2acc2f288a2387cc0d5dbb25b280a03b94d67713b79e981637c1b862fe7409ebb6b619014cff41451746bcbbbea8599e1d2d4f4e87b79613c6a3f8139d57b2723b858f7a3baa624f8365911637985cb5341ea6fe02650f706f730f97fa725e35bb1cea6399bf572d044edc78116f1f9e6421690d951f46e9b76dbd4d9d82c842b607456b53e89026930744ebdc38c213e10fcbbb2a09b1ea5430f5cbf42596c031c7c7f70c904efde2233be3142142f1dc4d805b45e4108e84108658d26dc205152b819b2155d0672bc8ea5a5c35fbf18b1960db040ee7bc830c6000b75d19e7a2c6a8e9eeaf0bd0cb65759222824d52cc650a68009348b4e05a67a98450558b764073dc6d6d506c78f94b873a3f80934d1b562df172570ed6aff5399", + "16c5721e1cf50028b5969fac48137cf7af6433b3fa6815292c93a5f20bd1aa8c8e634b3dfb2f989648062c1086be4dd5aedf474daa6408a83335b62321f910fb1a65780c3559dd7c6f1414db3ffb924a8882de4bd69b456c13fd9be234602e1f206c3fd795b7ad27c0", + "1daf1eb1fee7aebb33a51709117aa0c4b08dba2f2efeb4fb1f088760e3b13a5f8873a5d72cc5a1139ceda0260b64f854e27b061832821b4241a83072abbe56b9872fb9472f2554fa5a58b9b0e6996a00f4ddc57dbf2e71fba7fa162a7b970cf0f457e2e6fc44945757e9be263122ab27676ba6d0f039887d397487089eb5183b7f6835fdefcd5644e1e0f055795babae92e925c9352281476c3956510000a0fc6d6b8f0ed97505b3e4530249de86872124d03e90cbf3133acf248103521963ea0e2d6bb6404b9b1448a82f8413e6b415923358c7c5d4c7782c107e706bc59b08a5349c56409a969787e54ba14f49417b0f6f35a7a08c0bfb053e029fc05c0d3d0ee8c4a510ee673883a18ef358a493ca817cb4a370bfe23d7332026a4ee71bbede3160c23c2d3b96dbbdf9ae936166bf897f5c5d" + }, + { /* i=8736 cDividendBits=1865 cDivisorBits=835 */ + "01b4f6d3c72e54da855c43a1c6d93ed42a62d9faea391c73471d959c7e604e6762901fbb4ff71682350f48d4582954f2f00095f8aa3cce67b5d30bf764d8598951be028fcb3f8da5c63dbc79b14ffcbe749643eda1c63c3fba6cb4f034438398409b6c6ce4f1ceb0367713e6c6f4afa4e2039f0b8c1d8bc1c423e251d445a6edbb2b47a9e92a6ad6b75cf4191f086fb74dbc2e8686021f323b26c8ce02353f20f8aa6d4317dec46a50ccdc2c923da6d3a0457fcbdcfe496b6e43b5cc902c6cb9d9656856b055bdb8b1e43c424389d48c98f03a9263f41f35d3f53649b5d1f87347e5822d5570ef19ed60", + "0493bcdf76eaf84b31caa35302ff57b242917d223b7df1069bf2e804581f197dcd0f786d40602bc9ace14408efaff0d5574b7c22cfc034ee5febe101f46766949f28368bf3b5373205ffca40d621e3f69115339caf01f74664c9fd0c6834ccc703661c27b9285fbae9", + "5f77ab4cb06cfdcaaaefb3bdbf5b65b82ee595e80d6a6673d6585b13c2c0a5990b2b13983c56a32457401494db0b2ad0e0d1c69b521f5edde7207c2cfe66b8672c78eb6701d9c02b4f90dcfe5155cf0076fd331139801d6d8a162d09b7ed13492854f9ee3c44e79b2cc99c5ac55834cfa166b0e01b61b377e52810700bb3a5694a", + "018f9ed7780c9645840b145f832f8ec559fd772b07ce60e1cc25e779cac73bc25754129815568c7e707b8ff0227176d792c255b07c63aa26885f412d7f5362e453ea0ff0c6a872ca1bb7120addc47fbbcc7f80e22da210dfcfa0b0a7635c2328e0abb9faf49c975506" + }, + { /* i=8737 cDividendBits=2528 cDivisorBits=896 */ + "f5164602d9dcb9f7905c3fd12e4a82318627c34e0d1f6636207199a129cb436b4ab74e586135d19d3dca86b133bd5b2f5cc50fc80387a8b6c2d3cc11c20db906b56de848aef365c08ba3492e0627b3b1a87d3b443c2a760075e3f2ceb621793c28a4730c81ca6c6b16bc5cfa7a369c3dfbe4174aa94e5a72957cdb784cfc9ec83251042f8c4d4d4783e0accf1e2d28a1954d7dc632cf90014790fa50a130cdcaedb877c4d175a8d21aec01fc8494ae5cd8f25c416fa99429e49e0a4e02b1e94c42d66a828d7d0aec43c1308f52084dcf43fce405d22f09a151559b177b0c4dd0e0b777e1aaed223502725f67ad0dde4f6b1945afe7c0f9bcb15401a472e81868e8a1281f7849cb4072dc8e76b7fd5981d8db6f1f88b71c22e60204a0e03821a817df859d8f476d5d05976533384f087254e7a45a9019f93ba3a0c149", + "bf762577739804a1fd19013d010197f4dca2661b303936cd181d356243b05e49030ee45a9e3ba71dc61094b86fa804b57318fa51bdd7aa89e2bcb632683f76c9881b2dcf03fbd502ae0e07889f9265ce1fe157b6894003a238eb002c112189125b61e480ae4063c11f35fac5d66c8a46", + "0147b3a68653a240aa48a66bffa91a6e31fb97e5d64141c4942d3fabbab8e3672d43408a36c4be1c6d0070af59578fa281aeb4d5f74f306eea410be35f971243d99f1ebefef1f9160d50217340877315316b808b002e8db70ddffca286f57fcc5153f5d2d8b6722de1c110f2e2f6261fa3d8eb22d2a0c1a11d0ce01bcb8f3f4873cac561dfbf25f60e2bdaf9f70d625af20a9f572ca611cb498fdd1f6da7394c7ecceb96433dfe555f9d2e19c7e00b3ec3f18a31c8d5d40dc6e667e7180124d26ac8110518a0cb1c4bab207995", + "a3fd32b226b54ec381f8804461faa8bc096a29bbf09db0d43ee8e63a4a20d032c22525c6df4323ae22c65ca7c84775ccfd1148ee7ec03cafdc434c5ff8648c159e11d1ff2dc2926b8930b388e0f76d6b62d3c32aa16191c0ba5cb12acd4e7de59d9981065da1097a4cc4094c7e59308b" + }, + { /* i=8738 cDividendBits=799 cDivisorBits=510 */ + "55ba1730e5e0f010a2435d25478d15265fa53cc31671218e2063966265aa0e2e2be0975140add5e745288b0688386d2ce0a10d6675411b1757ef4cb1d6204381f76faa21d228d8865a6479ca008f91943c64c728960f3c4b98d3c38b67a90032faa6447d", + "3bf4308b4c062fb2e6db999a031177905b28a14209a4a0922b8a3f3055235e0ed2fffc00dc3346d0a30bbcf21b7dd22a3736969001b00ddd5436d2b767ee3dbb", + "016e0cb4cbffbb4410b682cf9911a714e885a72bbb2dee7627807d4e3f0d12e13f76139fa0", + "2d57131d70f8557af4e597221104b4767ad611c776cbb9feaf31ee0d6d0a9ac54337e17c9e381c4204bbe5cc4c4b3dfc53cc91434d537c53bcf850dd46878a9d" + }, + { /* i=8739 cDividendBits=1021 cDivisorBits=802 */ + "1b24c53ef3e62e50bb15a39566d5eecb124ef736a81eb15526aab2b500021682a81c619073901ed5f4dab0262c5ded882601529655044069f39494c731e8dac320a298811a0bb9f24c8288de7007d69fb506be6f9f1d07f62f0e60c5c9f16419810e950be5cf101194d68f68acd43f82f120504932a82c88338395f5a1ebe766", + "038ee6c52157bbce4dddb0130793db072c305fd7881972ea1504bb88d8de4b67e0b4a2ca459ab79e64466e373931a99c4d5f32ba8bd1d4bdefd5f56b2d8a2aa0c2e231225f2fe480ecff73e187bba81e068561c1364719a7f734cdf0f5bec778350373d864", + "07a0e269b3944444f08c0b588a90ea19bc4be923d2bbcdb1ccde2b16", + "03225f051b23455b64800ddb73a77199ab0b89da0de213f8f4990a869a362a48d473468f18d9f18c03cf1ddaf3da163ac8e8ebf65b39946d1d553305ef6a69d2b82ab4dbef539d37b83af53d1049137c08adb3920936ccc5909b891461900859c989e682ce" + }, + { /* i=8740 cDividendBits=3922 cDivisorBits=122 */ + "039661e514384957899728cdc560639cf24379ebb8520bd80f9ae9769fb5ec4b1698f1db53cd38708bd5d63230bec6fba64e465a8d1d8df7af075dcc71681c217a8979c7a38db24919aa0f93fc7ce6f966d9f48117409cd064e8ebdac4a394900cfe6982e9343304ba02177ee5aeff24f95bf65a1a86ea5bacf62e79f1faeb7b3733e53d358d794b41e63ce241749587c9adbbe86a384369a083df9a57de3edfab180c8b1773587a0e580e7aa7ce40b77f2593fb90c733ad65b03f17ca5585e0bea6a610b54a3dead0d029b5d87f576f08368ca8ba97166591181d1e1a17c1c43d0fb3dbb25be34a1ab363afa08da6e3618ebac53eebe99bb55a43371717c7da7ca102b988f644ca4e03d48e2fc3f2966a3905d9f2157325129e7987dc8a056922d5b334e17f10f437dbfc0fb1eccfa9fa67be38ce8b90001861173bc567831e6092f2ffe90d22f67129aa51ea44b223bc96fd41cf4e71662eeb893b5b46661b0db30574ab746e3d652f2d2ca33409b7e9132b02af56ac232437105cb32c515283fc7c7c768e9520764c82f601a25766873dee5b0af718f9031f85b090a4f368ed47093d156437878491c1a5edac211c9cee5cf28be1abb7e11c725cfa74160119fb7280dcb5cf6f69b5fb40dcc448e049b7e41158ffc979512acc1d442b2e4f7413fea535f5531ad9f80a", + "03673ce37b7430378ad89d21a49cb1fa", + "010dda4b476297aaf6df4118d6cf3e2fdd70c7e1a0c358ae23cb8f3fdcb2d5375cb46a0bdf44e1723e909c9d6498ac18575159a3104968f29186160d596bd679d20b5dbbf704602205dfadb90ea4391229f972be285f190cd8b3156083451c360e84934bd3fdc6a5a6e34788929c758b2d140d92c077b93f1caa984ebeb645ee6f82685c8317bd0e4e0bce94328b7529b8c168b9f23b901c5efaf3360d2fdd7e61ca0bdcb560d40d7195ab87af5acfbe6f6ae3aa0846f8e161de1ab15d9e6e99614fec61d52f3f59ba77735e9ab2a654716bc5ae4fa1562693ddcec9e43f927621208f17632a3a0400870666c71fc75f2d7d130267207b853445a0ed5d8e7962173447b72e2c1c43d439cc5815b766c9f47c30e29c041f249307a8c9bf59e66ec69ff8cffd7732d8bbef01d5d17c2e2c973483e9e8589b634b9bbeb1cf61378f0479c26119fad547bf982a188831a9573c48cfce632727064242dd0922c03b01c8f29b607ee52b7de1e01eea3e1fb228fec04555ac90cf10c99b1f8707b0ca75a197572b60142c2ad59a5dd949b4326ee2cd8b37dcf614e749fcc2b25b7d143a5a738cbcbe7eccae75db15be02baac5c62c4dcea86ba35390be005345da0ef677ad0134177f443733b23ad246d3d50fae330b2a59872870c2c486242", + "02be4b401c331d9fe8ee2941a8026196" + }, + { /* i=8741 cDividendBits=3606 cDivisorBits=3307 */ + "26862bc98d706b74f8d0b90b39067cff10a0fecd581d0de155532876474ae4db87a3f5530150837e769e552964a5eb1806a7b395026675bc03b3feb69056dbac1c1187c4a7bcf606909da1433e0c64fe0529414c07cf0f37e8ed8dd2ac392c5066d6aa921b28e2f7c7754a9f571cc10da1f39a801a07ef13d9875abc4d216c65671199075d77782899a97f7414f22f3e8041556dfbcdbc47a7ff8da7715352f7f55ec1d24b4131b869b0ac9e6c1d97f633b377f4132ddf6f37c03c6cec616e0825987d8d86917ca630ca7119af13bc37e7b13ae2dd716d22d73a5e2b8f195457f8acbb04f4716c577f6b286ab76e198a4004597728907db3662c52769f8b284627ca173d7d0a9177888fe74b898510b5a2018cec12175dc88b69e267018a01cf9b4e74ce3123f9b314e64419bfac1a7f5101d1ebb604d89da6273c0651a208962c6dbfc94e3719306a1618d2c234043f4ba05db96ca024080227e0ce83717e19918371805da5215b3d769c4f9223a9b8d227d3fd20ef13541f839ef06659f1d6e35f2fd6bd8ea298be1b034d890577306596e555e5870a2692c41f8c37daf36ffaede9291b5de3b7e4986b80410cc636a12ac130485070860557ff4294e3526da87408", + "022b7eda00d9d3601a37c560d99d2ed2677e5e4b0e17fa08a2bc32994ac37fa35d2e277507adf689903218816b9376818ef4985c29a8ff4d001837c41263a5025fed1dd4d559303f1f49b124ab21d300f647c1eda53607b9610decab229af56ccc2a73d2f1bfa9c58591e593ceed8f64670d676cf5c2345a461e61377a269a931697f4ab06a5fdcb368bf22dd4d87a9aed35c1ddb49d5b7edb32724a4d310a7d86c6540a11aafeedf7da52dde865022e5a7c94cdf5016e932a19664678c5d25447b77fa8f938b27457c806796a85b340e3aa75a87674fe5a37f43dc71c0a084d3c3f8a2e8a54de431be4a74a19143cc26fa24da39d9da938e57bca184d6b5c01572b3b169ff3b52c526c4d2a71af163bc62ac3bf6407e7d9baa5fe26ecb4049fd53802abe187e0cf938987b597c9fe5827b9471a9326c4b62942be1988eb69fb59a7c3f3147e5326b7f4c92e21615061bd316572dac89b5a027f6584a96d4348ccdf8a0be382f97a2e08648499bafafe29ad7f65e9372839c9e808eba95e8d146939cb0c6db6db5036fc4741d1badccd9780b1f2fdc2623fbb2a9c281957", + "11c0fac80fd3450cbc29482d785ef8040914cacc4abb4e135ea316a08051a0a684298c5dda3a", + "b9436d9f90a955e0711636307fdca50cf64bb7160f606662680d192f2a1e9347e4b619bae54af5ef734d352300430e9b155a02ab8f13047663be6fe6832baede22e61bf1e4a44c9a8ec6ead849948643498034b5144499c67d65e2af31b6a7e66012af632b1abde753fffe18a55a072468776c3d473c3198ba99e25707da936abff1d0b351b2b01eb8a9768b191747b3093d3dcea057baa1cb3dfcb36c1552f33cedc61d358ada1571d7383a94dcde2270b34129e246a1c6c0481bac330f0e2e027dfe58ffe5677699eab2ac1326c92d9c06ce58691b6c624aac760ac4f3e706260bd710dbe74f780e4071d02636f3971a778b44ba5f31fd51a1ae7978a72d5e3bc1b6691ea8f6edee737737f904bbadb05584b7536d44ab1990220c973c250253010bd3cd4569f941f49a86ae726105e8f577be0892f3e70d38948c07eb5d606fa9aaa5a3a7214b2048d23baa3e0cea985a1520801ba3bd94f152020669f965b1247ee33934d489d7f120a636156f04a2beac21108d0e91c3f07ba606662fec51548834a32fca12912815590eb550ce686ddafe12f0fa9f551e63a052" + }, + { /* i=8742 cDividendBits=3295 cDivisorBits=1832 */ + "7d9fe61bc4225ed2d8dfbd6f7c587ade523564943e45092641b932b5183c116ebfc8f6a4e0ae003be7193c68d31a2a059a8e8b684d7e871f6af5b69d053c14ba6c369be896f5fc2037fa295175541d9ef86db29942b4116bed82ac419b2dd455cfc0b3d0d689c84714edb9413713f30e4115612f4d38f3bcda94102e52f7a7201d5acd8ea93461e3f78f370760e264dd6f9cfe0bb78bde45607ad8ac1943c00a0ee478f7146465e5a6ee4402932053448545cffc4c462669137af7a1a38056cd264e117779fb7cce14fdd86573bec2c9802ba4a3606b68f8b63d95b1aca71cebd8ee25b53eb4cbf65cff7e7f9cfb2625e15efbb0425ff846032bbd29b9c7a00a2eeb5e0b1dcc3ff673bb953c8de1c00720781a203c4b7b50b24ee9bdfd646c28943430d6e7697543469ebca2f62227d63db0ab1042a9a0e01f2adba21dd2185dca9c96ad68579a350f050228f2d91707874f3112075705180174c6c44ca4f23c66787722d6f60f26b446edcb215a2dc0eaafdfe21f11ec36948edbd276548f71b77267b0fda31b5270c34efc1d51273b4820dad4e878a56df94100e7", + "a9c433951d561fd99f5b6bdfed1934a088e35201050306eb197ac8a65d3c18a55e91d4037edb70c865f60ab3a651273445c45ffe90b57eef4088c3bfb86aa0b95c6f82272c96d2260c54d66079e0f0f541a04740a66a9bc809e54955c621daf71d3a34a930da5fb35752b92936c32ff7866b3013463c72034b4899114209f886ba2be516b1a2e97fe67d1f949e6798bf5e2affb9ee3219d6ece2e0208cf75772027fd1b5f811d44a613f49ee73c7f05cf1953812ef8eff0aa62d816c383578ef836e9bd480e886157d06f4f5104003a0e435a6038bdac74c8e76bd115c2a8629d523c554c6", + "bd6fa8d271219d546e46776007fe7c3e45d681abf80278488bb5ee52dbcb857a0470f8b0d68dc4ba29dbc79b1288a7f7dc00b0849f604a9a4c4d7fd6426989a481dc9697e430556fb4a09a3ea498fa82e7079ce3e28b05d45e91f67f55873223a1d2f744ab5e4ef1a12abe0cb28f1f16fcdbdb118d815f556cfbfcdc7f384bbee638fd0b3d300f41373968cfc24db0e99c960974f1461077537f9ba40ef6e51993de4a23cb970480cc2ea7d2f3342b0e6582ff0e8a315c", + "07ce49f7ee0b9ac9f4cf54d164adda05f577a6dccc5a364d97343214e357a9e2056a06ab9b2ccdf70531493386c4fd86d368b5ee09225e4de02326370620e9ee16643a77e25b01ba0f389fba4fe8ae155f0be0d77aab59a0b170f78aa2732ad76cb347a0e5697c473b2a25cf19ff9d4bb4f64624ee9fd171bf5d080db97a2b07e64f2952703611f03c28e68315cb2f86ace796a53b99fdb848a0d49450302686c76bbf7bdcba0948bfcc3defcee45d1890515f3c1077b56222a844cb2611b80ebb97106189a56f2c39dda1bd199687760d4474b67fd17bc9bc649c72bda0abc0bfd260a3bf" + }, + { /* i=8743 cDividendBits=211 cDivisorBits=68 */ + "b8cc1e1f4a8fb65a7f24980db14bb7db4fb55b8659198c6b8ed3", + "2b5dd447e909f8ac", + "0442e3ec8a01ae49dd7436b76d78794fddc6d8", + "17aa338a7530b5b3" + }, + { /* i=8744 cDividendBits=1975 cDivisorBits=1802 */ + "5d3a0e2d6e562ebbb035e76c2fe150f687b678df0834c012deb927b996238ff46f194552347ee879c6627b62c1f758867f9ab00016c7c403855b8ba07d2fce32f33632477b4ab0789dffe8446ead214cb3471638cf41ac4f0b7e53518cc7afb909642cfcd62c74262a8664cfbd61e35ebe98c1c37b6f43d79bb5fcc1ec1e1c171ef68a7e122a77ad55c669e91e359c4f8132a7fdbb1db8d1fbe8f40c638f0d7e1a5fb15f540ac93b334ff6567919f01a3c5cb54e3eb3762156a338082dd55bca149dc8f13ae18973e54434e6d8a1f42f47898090b749aa9a84294241e99838a8afae34ee6e86a5770cb3c03b1ba87a3b15887c8c08b478", + "765a547675686a36a2b40fff4408faffb491d2147a78bb8d3a9aa96d7803be39d66c864d831ce5f9687beb78fcf3d26dc68b3463f95395d54e694b9f0958c6fd6ffff4a8fb338baf6f362c801951981b34934da9d66c3d27c29fe8ae04a0f45a8e793d8fce6929ede77aea203677791322502bb01cc8375fac99a0646004c48fb9f180d825f674a6876b24b80f5380e667504d929a29e778991521eb93d970cfe3f02abaad44016539a6c13e904fd4893235371a468145dc5532d638629d7618a6d18aa786514bb659c47a500e041d57e01ee600eca294d501e8fd9ffa278a29c9", + "c9a6d6c2fb84f74b4ba33098dee8275027b63fc7cd99", + "36d48de7cea81787fe321b1d4dce21d3a3c16ff9330d747f9618b6e9999ae6d69e17cc0c9fc19c26b8ca8a0d5735a3cb501355e9fc2e85fcab0dc59e3a4f22f0c098012707b561c87180951e5f2148264c532115a3b616aaad5e0d59f787cacf25b9da63c7e073598f1d88cda7f494b903fcab37c1ceb6087b558b9d6ec1125e0bba715df583d81e2e189d577057f6b9a36fe16f79a16373442d0248d2f684d91e047c1888156cffbdf8f6ad7babfe7387235d97667a10c93903da7f86f59309f057bd5757b9e80da1972c1d7081967b50f0eab0b24e17dfac20ce89bc54c0c657" + }, + { /* i=8745 cDividendBits=2047 cDivisorBits=1607 */ + "3e38f2ca0ec1d570baa7f1bc90b650426818b4768f51fcc7e9f53d0dd502421c6e06d592e9ccac38d36089658e0ed148d518ff0c701076523646155cc86c3624bc48cd49acc3ecfde42cbf02de43de4b4b8bbfb62c2e322e58ef6f0df7c97e204e42b2224a15b014a71bd86f4795934354a918dfb4619ebda4c9e68fb3a3494921360dedcb457b474ef26c28f5cc594938ff30c22b6f34fe91d3e377537ab3b94ef8e779f78c96227be268c282a8e4279c4bfe418cf3a4aafbc29267329158504fd89e26647cc56059ad8b25c600727c4ee6c9580481d5f66f60215cd492a6495ace1a53854cea660526f28738c36297c01732c3a897a16af1e10f3ee0b86f1f", + "742afa258058c09d3b008aa0217524c0be2693e29e0e06048fd20179fb587d09a71f2ac3bf338d447fc853ae9e0294ba3913f266ea14904b3a35007cbe5415b5485aa362a7cb8c5b346fd0e737c9c94c8381003dcaefb6e70bf65931a7e4b35c8de93cf39a46daf132678019c6427d99e45644cd78c7c4065d286fe61f8e8681b70fcf6030cbbcfb44f2be77cde28287021f5ef01c39878f8592c7dd6108af2d86f5e0d1760b8fdd6a9661e2b165823b5e58ae70b1f77f719e128b7b2edaa466f9345881cfbee13fe0", + "891ebd4431c3fecf3b103acee627a439819be365a43c1b6a8ea0df4fa462b7c2c471a5c543d40e326da7de5a9d3816241437c643ce7e83", + "4aaaf0ad2b17baf69b0baca36447978e89fea43eb14ae6508809477d5fd84d13dc1df6a149c475ef2aaf02f2d0d384dd508eea004f9a18c0cdb7e87e2549f9386b53f580628f4cec58ccf015a50a8236ad527b3875159eca0381284bccb5d2fab577525f07641818081b8c088d2809e78c8952e14799ee3fb5790d4f263f891150fdab75f54c9a41e3177efe65c143d51323c2bbc1a033f71758f7054fd57d4c4507bd05bec22d7e9cb4c4d61fdf71a7d1036ba2cdf7ec8a78c9290c51516de26b40214dc44fc47f7f" + }, + { /* i=8746 cDividendBits=812 cDivisorBits=448 */ + "caa89383d811b43723f8c90c34386432876dbb2fe6b363ccad1718425888f73cde9bab940222547d5a5b84f83ae6a06a194569a42415992a45c7bbd6e4c651c99fa3021cf9c32087227d6faad53bbf3bc6a97455b3b9a96798cbef889edb3e1fabc1037b95", + "140c7d07e4b8839587cb8c90907d79ee85e92ce690d47135fd2d213aceb59073399adfb85f416072f3ee30d8a866bf6a71ffc65c0478098c", + "0a1bb78da3b6566cb102af40c0f3359b84979adab8d9ce0519d1343d6d7655db98f75914fc1779eeb1c0f4932ca1", + "07da5918f1a68ab82933670097f0b5c7d28d3dd1f863b72c45c896ae319cf82cd2d7428ee7b3bfad7910f64fa0e1a85c3368a001647d6a89" + }, + { /* i=8747 cDividendBits=1736 cDivisorBits=147 */ + "428e9a17ab3df361aee6b7e07863bd8b359c639eacc08f20b9fb92b8237aba146c6a210e96725f55592a7acb21eda3e619503157dfdfd26a77af4f8edc977642b458ca724327f6a587500a2a6180550dc7184ffe1a31bdde06efcf16ddf686b8c07ea5698737da2e30e4749fe1c4ef2da4093ffbe2835629297a39bf10fa3b4224588b317e8f2c0e84415f93ccf664ce6b29b0e01620af56bbfd2cf8276d4097c50e42ab8b2551d2258afc9d6f0ecfcf26d141f9b156395815e85e35a03881fdb929a7bd43d2db639b23ea8a585d2f1342a090613657d17ab6", + "06b998f0bd622d7898899c88448690fffac059", + "09e59ff92bbb84a8a7032b92170be17d5d124d4a6e0d8116d477da011cea3ca60662b20823f2826a4a1ce3e1fc147926e4910bac7102873421aa4653b23c8969550798651531138717c853d630155e8109a3080ff47c13b23135ec7cd573547cb97bc30fcdf72665f10e98ae62d8205646506302ae077adead9c46d5acf010ba372794b6edfc6c655bb332adacc125cd3ca21d9beebf93690191f3323c3cfce3a564f02d3c7c3354f6b8d9e7191d1511f1d04658fe43f069b1f898ca1ca1462c5612c75cbeacc1", + "05dd0ab4ddd948bddff0215789a17f247cab9d" + }, + { /* i=8748 cDividendBits=2422 cDivisorBits=476 */ + "0b14c05b79476e63c1fadef275a486b1f4f4df941017beb59f070b52feaa7b317f7725b6e16d2a5d96211362b90f63ed862f8520e18e2808ac696d3f71daae02275fef64d887e158ad15891422efdd6daa363824fa8fbc279e1fff73f5bc9c8d7ab342be57da399d5ecc07cd2eeeb39495922241ebe40a38f8a6ac06ebe6928b3315674cc15c63a7664c440a2047fea0c9e292d9d300bfd49f0a3938c108aef7b5c2e44092f0a8532231708cded45e4b1f5314d3313c1ed51ae68db1a1a492d8a541556ceb8b122454df2b9c74b58ac3c0c23f873812749be8c5fc4bec57f7dca80570b827a2fbe3e4f3eaf65b445337fc5f1a5145b73eae7e0b35063be0ae87dbf5c729b6ea76dee6b6b34ed406df011188bf899748dd2e90edbd54a42b07f5f29b4b4f5fffd2128d25a7bfd51183", + "0275b9f2f1181262ee4646158ef8b71446f6388ddc27c023b09500701e0f201c77ffb2593115198b12c08c8cbea5f9b600dab0d15eb20613741afb69", + "0481366af123fb7433535948e0248be75e65360f84ab1d2896f4e9b4ac73c3854867fd1b102e17435d7329d2d0288627b2dc71adfc14e615f16004d8c9c3404b0f8c3bdd189cf78f3590cdb3fa9e3385320b3509918fe884e07e74d9ebb4826d5065f30e291faab8133b3d3fc572480857d498e99de3b21c8aec06520fb99480305a4b4c5820d0edce1df846ec52ee308e116477244019f513223323b606d5adc5c367d3704f983d59eb0349172afe9c37b41be0a150be94e4745da834ca956aeecce15dd7d03a5d86c111bc752fc11edf584f41d595de274343cdb3eb1faea8199718733d8c94c8e7132ad6191427aa27ade1f3", + "10caefc3dd4fe5c719fe5cbb7d547f7ca165d86a2ff924cc6265064da2d21e71633542f69226abf94a6eeb4f2a44e4a2deef958af8c2e1ee4c23d8" + }, + { /* i=8749 cDividendBits=1111 cDivisorBits=870 */ + "193d08f71e3e048dd631c335c149d6d011138fe7d83c1d5b769b063068a631435f5d2d6d4dd3cd27bc56f9b913ca1d23b73bf911862809e8f23bd50cfad8d58d5ff98bac2e29d9ca55b597ddca29f3da7bda13efa1755504f99d28d370ee68b431770d0345dcb629aef2ab3adf19fbd76a3a7efa62bf605fc454ac9d7d26ac47325cc56468865ccf28cbd1", + "2328284fb5b2258aa4301fc60cd3755ae6a93e79e931e09597f82680653763c77ac0d59e52d7508563f2c8c0e8ec47db5d73a9b5567815066743ef0d0c9d95d76cea7eda60758b7cd6866078c4ca7a2e68314b68f054f293b4904d69e3f43bd0915b2692cad22372df993df495", + "b7c6ff82c5c74a80d4c7b5e433ca80710bc4d45e14f9a56fa45cf62bb088", + "198cbf626cf0765cb312e1c4472648b207674c80f02c287090a13798ff6788256340f678f603d06e86f7436ebed3fffc944bccb477548a3255a36556d1119f9489a2f37e84a27a00b2fa369b5cf8ced2aa9560f69091bec5388ec868673bdbf48089a82441613b263d8b116ca9" + }, + { /* i=8750 cDividendBits=860 cDivisorBits=613 */ + "012390d821a7a7a5ce67701583e63b0e505be06687b1222a62c74e1f65d9ffb848534af31f152cda8bd528483f1f7243de2fc79e1f703d8f8273b97c81c91612c667e029ad27bbeb26c9e8f1071854ec8a8ab0cc54f3e9a73c8d23c5628c26437ea185d9b7a53ea1b41e0f4c", + "023acb12d402040d4c4f5a25219f6848565711d16cae1a156a4a89857a260885c57a8699fef199730fd112882afc2f03ccadbe729d7f6c8f9a47b11b3b141d8967f4dcb59c730cf1110a0f9c89", + "82c4513835575ea4ffb5feaaa078258f343108032c557629dcc7a025e02928", + "01b2065e2212b54c3629d587800f70dfa291384dc9d4711bb3ae9081ac0bfff2f3def5fc173d061d899126500d320ac6423e442775434612eab3ef1a4eef40027f2c15d9b5627a7572dcbba8e4" + }, + { /* i=8751 cDividendBits=3320 cDivisorBits=1029 */ + "2f4564847886318ce8c0c5f7249b6c6d6eabd07ef41863f4697608a43ee00dce696f639217199de1d771357b673088368ad546a2aa66615a0da83d34c4b64364f52546ca09084e8635220ef7c92b55663814de2ec3e2a9bf2ce197ff57af5ec83d852390566f044ee73ff48462f9a53ac2e19380c1a3b0d2664ea38f1ec9e7eada6b5dda3e58806a3988e80b092ea2a9d500b082a008b7d5466f912b651b15b88dea4804342c3cd9acded45a98c19709d569087301da554bcf1bd0e2e25a95970a791e9a71a39b8f0fc1518bf0e04ca876d53ce44d1764da10d648e59746f9d4cf104026928dc0fa1cb50c30070c8e7d1b5e92a5cd75cd23b5ce33ea7749c5b88d1d9871593b0b343a0365dfb354645a99a3414a38aadfe55f38a6370ff0c0b52fed211ade10d737977c5745c7cf340a84c28c0455fbf37e8b29fa2a8f4983d667006fdf73bb742a7d40d046b972ad6e9b8a31f8f01fd8bb26d41359a830c8a6251a970121fcc642472bfca394b17c3f904abe83d1943cae91551ab3ae6357848473113ef73d26002f76918443edbb1a6a1f2b46c1b47c82fefc25e61cf7e7", + "1667d5924a3a99fbda5d1d9ddce3d3e750823e4bcf32fe9a85ce7b4bf921b477feb3161893fb7c525d4083e9e042ae906033f10814cff764828e0c8faafc6c8b2e14b1945f48705cf8b4aab870ed3ebfd25acf3db1c651a9811a8ecced0ac61226503c4255d99d53b95f13559dc32183eeac8269410a7caa2e6f3dce93b35c2614", + "021c1b0c27f7cfa8c69537be21692eebb86847feccb89d4f85a1a25963d4f7d9b79f771b9006f8fda66a248fb806b7a5e376573c540f03188706169431ef47142be0cabdb9cbe06c463c45cf10b96cb5006b843e13b437837138ca75b11e3069c0097d63430dda2dd0f21a982f1a4fa131aa8d133ca7708f7aabe77c14aec99c2a37f273a0814ec0c44b1f18e1ebe6e2fc0620d624db78e4d10a69a001a501058a0a7f8a29aa2fdd3e1cf61735d451032f6ab36b4d44343c6b626e6764b1b7ed7960edf0dee0c1745119d6221b3f22d868c1c1a641729407b198c5d500b0b873587fac5e9d6a2dd5828059761183407b2e8a064bef84e64d57196693b987c584a4901cfbac5f15aa2207502e1a0ddc48da78450750220b5fad590ae5ebc0e5", + "08be5f3ba135ef285de592e5d98a502c06ba8ace4185a576cdd30639dfa45d4f88cec5cacedd4d7c7bbe757a97860add13cf03d8c8d71969db4c82d3fb1c22a6a42d6cb06a9d7021523bf0e6ba7148856bb4848deda9724a38eab604aeffa720c2976b0544e34c64a1ec188125bb039469052a71240099209ab264e7127fc3e803" + }, + { /* i=8752 cDividendBits=3895 cDivisorBits=152 */ + "31bcaf901084f5cab61d0e74b7584a9802400bd68c287ff28730f61c8f6aa1b7327a63bb10b63fed3968214ebb19ec02b26e2eefdcef46b98825ac7f2ffda7ed2b21146a27fe62840fbca6110b12466856fa724571938ae9326b5667ae41436e87c3c2860587019cc8c46f498898e4a49b33968309f8178f957244f160abad1824529dfa91ff142d387353ba4a97ee343d24844fe8e344fb9ca86abbfd97e39723c840d9bad5470c92f76902a4bbabb06755da9eea393e4175ec5ff5d5fb9213154463ff3b66642282de90351210d0f79ca2f6fc84f178163426d894d019c30f05dce6f6447e5c109f1826110ab347466fbaef05792e1ded67c1553747f12f0d4a7497bfab43079c40905c6c995d0b75bc6b2a35feaabade649b8bda2d69e2a56ddd55998796facd4f1b66a2c79412333c11a7fe157a4d7b1680e0834a5a601102a8a3e4b0fe4f975464fafafe0157e82db07d047eb4d1393ac420c036971d3b300795dacd9355c62109be5182d3d344f9c1a2b10f8e2143c9cd67da1e1734ffd2c06b66d70e8739ae80e87abafdd78ecea5368231e2c19f87491ddee47a5e8b5042c237313aee3a050e1eea775117e7ccf9231f33c958029d06a1b33a84ecf1b4c9b03ea093a80d36b84f34aae63668e3f460991702d33c0c8037e4e802ace422608926f15dfe", + "f9a830e2265babfeda3174a5acb3e188ca0b11", + "33002efd0f407e5a8ca7232f43530c0f24d9227b2eefe886b07a8b0345d36684fb5a9d86282df7f9ae4aa1fda391ffde6f7f5a69a2f86e709a658987377a283428843029fa6a660cfc8fce2cfe1901d0705198a8b198232914fb81f9ac0e88c5af7bd7ab56344be380a7ada171b248e79f94c52be65e74c8ef43ee357aacb7193b51c61a7cff2bd74e4b57a97c1deba6c5304cf0aa50468d69afa73bc24b9d568f663dcf9d9abbfbb4745114bbdb691fcf1d76a77bc636062154bc59ca8640feb8d08ab4e67663f5e7d00d77194ec6f6d0d0f0b0f5528a3468afc37f25645ee0886e489609cad7c8c983c1c19e49caea256837167f42575ff85de72e0b552044dc28bf4eddc276aee9201c76f6899378ac35787d83b413a6d30d25d849cf5e570e28a50e06576128175fcd849fe81bfe3061f4c2ad01635bf914c58dd60777d4237ce60b46d69f4704cebd52b9b5e09fae22fbe2ec76f8d3de43df67f9fc12a5e1b8998c4a906a43eef30a3dac4a78c7ff367853e79a381b61593c2a9a65423378c1a9ad211b9816ea95cd75acff09d660283a83b06b1adb7d78be115edd95201c280ca00caec561005a2f8905e6b388b2c14eb479475d441578791591fd4ea7e6d4eecd2e0f64237daf94aa1e7b6d77d9215cfd", + "9927a84277a31673933e5fcefd462885195231" + }, + { /* i=8753 cDividendBits=3169 cDivisorBits=2821 */ + "f0b95330611558d29cf9c6232182d58966a6a8c90752e612fb0d6795d1cc6388128db669433b45ef6106b7f2abb1ca0230cd03e5e9805f6602c699226cb2e92c709075c7362e6c56bc00fc8421e37a8b530a476dca146b77605aa55c5358f031cf6c7c5e3558b940901e03810ec271a64914acc08692063003b01853a59e54fca980d243b8941d426b98587470d067e4f30626f9484c63506929185ab5493b4d730c119fd1ea013252dcd1d98b0a3abd8d5dda7720131f5cdcc3492fd90901bb66f7e559666e64124d3a2bcfb34bba11e2959095eb8f2775e8781c75ae33705299a847c5b08825f09e46540a6def2d481083e57941ef04904bf30d888e407d136e960bd6db958149af1a28bb68cdb614309ac03260c6ca1e392614734f3faa0ce2916b9c9e47c747d8ba640a3c8bc1bbce860de6e4ac802c3229a05c20093c31784de439c5b4e265e24645b38e4723e8774dcb6eca796af312e66eb42d803b1c68526fe69d1b4e0dd0adc7a88c08b54a1d953e12b880243365d287e05efc52175a566ab80921b5325f978984", + "152e1acbc7dc772f70c23f97041afa24644636761bccda37a9dde73f1b3b5709511f53ec5018da851bede5be236f047e0890258f28645abfef88e8cccb897e921e23c26bcd3959969c8b3948c1d0db8d26b9a192c52bbf06c168cadfd06a8265b115d8e5bf7ce72401c6c7ee283e05beecf75063d9691abf16980a8c942ef37946af7c437dd5317a21dc1c43611cfcb9a68fde1a7fc1f91ae7c472c897f25ee4efef4ebd054aebb4b2a708e2a57bbfa2128a950c6f5741db5d8cdde311025bfa65ae7013f10a53e0535dff7f6abf3f1d373964596ab9e3b2d031514987a3e95437f12676b407e2e9e0354f02c2c4df7809c9205c88a26e00804e65e79268f6875f0d09ecc90c3389f2af7e21047e938c9557be5da6ab052691932100dc74a8fb687a6108b15d606fc458c4a480d06515029ee6d698cccbeb4cf2b2bc7c51d9dabca86a351c1f1229a853be04faaf22bfcf9c490d88bb017403abf91eb11600f221", + "0b5d962c869b79a070be37b8cd76dbec43d7f4f35558cb05afc4d608ba8bc52ce73d1217ea0980e301f173f5", + "054a9fce1f470bfa1e2f571eba83ffaccc1f4328e5c4f39baafc3906a1bf6cd00f25efeaf56d767a2edf08a1592998322d4ab8c72fb32dba5d0ecd2fe8c1c11a03ed4099f6ea28d4e06e2f4e4ae80bb9788a6156b42a40891ef611d017714d5ecfe5b0327cb9723204922dc264f74340aac27995ef98ba40c74d1c31c4c7c134b942fe5c0c0a4dd044e2b9e0825acefe82811411249bcd77ae2f4981488936481337a161ed05f97c877dc60db02bd83668c5c7a076047de917b8ce2c56f33953968ad6dd2284965221c20ed76dbaec76ec62679afc8a12bedc04a09e8b80625801290ed787b1e48724682b861ddbcb4e1a4962eb1f076cfae933f4c1daf720e90fe7c6951b62db24cd552a5866b6f8cbbd056dae2a4627dbb4ac847219fcee22e60e0ea5ba9c7583e5202f48d816f6621e5063babd102740887ef3f87537972221de9260375b7587c41f1f5f2a5c713b00b2ed1c83fc2565f64c11ddbcd1d9fcef" + }, + { /* i=8754 cDividendBits=1601 cDivisorBits=816 */ + "0166244851a06048e9fc832d96f56fa0346b75109a692c13fb2d020334fb6499de9e4c15f47758e816734f866324936b940191c3f5fc42a0fbb43309ef3a0bc4abf0769a9f7f9f153aad3e67c7e7138c422567d8f5c5c667ef7b91fe3a6368f010b52fe5aa7f15d90a68db1decd4f23a59c99da2b11ac858581cc3554991230a108504724ff26c3b2648725079475ead1f6649f409ba8deb956b40ead0151db2f836f208f125384f48b3b846ed72b913bcc829679e577b06c32e2c7d77bcdd8458be2c2d29827bc076", + "801966a383998044143079816ba2d4a1acf28a5fd81b9c1f3bb0efad450394c013fdebd5a22589e0c84280697d5ecb05492a1d4c0cf4148ba00398e46ffce62d8ae92dd9883547064806c05376f2f309a78ed107588e307a5e40dc0a14c8fbedb5fd9251c85a", + "02cbba8849ae5d0539446ccdc6c2d63cf1f071b9f5df6a7b7d80f004e0ff549a88fe5585d11b07bce872196948b91d4fc9df0e53443baaa033cbcc44acd8f50cad662a54eb8e47a9e559f08a6f9beea54c2cd7b0a26b62c30808e00eee9e4c39bf7ee7", + "7bca3dd187ea305d854bd73cc686f9f0ec48ba5f66593980a29551ea0f94deffb36a882a0b874044f207e6b9d6579ba2cc884b8fa26391c065f744055877f3409833f704a041f6f527d3e9f3ac2603c051ddf9f0f9a6067753520038cbcb13babffdb4edab40" + }, + { /* i=8755 cDividendBits=1296 cDivisorBits=859 */ + "bf2b7947694528b6fb03079e2f9a90a0d623b7f5b4e5260f96be57aea54a3b00a0792fc930195a668800bfdbfac44e70f5ea455e049844e4857c0461c8b5d0a863ad3302e73a9573faaa92cd40c6b886cd432ec46141316fd66be2e858de3d6d23403cfca5064921a9ddcf14e17cb9975b64bcb68e7cec9c208197d65ee227fba7c606f995a1b92771b362a986a27ca2b516446121d1ae770af5f48485d886c353be", + "05df29159fdf5908ed7001f13da5b939c7fc7414abc5fede97a0095a7cd6ce662d00ac501bf3214a983bdfda92e2076ce08e34979692a551f99dae95f731aee501df7799158cad533beb37ce58ed2ab1e445f352c04202b859af0ff42acb831e243143603dcd50d5bc3f372b", + "208ec68ae9a0d872daf56cc2b8a0ba1dcc2473874ec98a0cf5a53a414be17aeb22bf52a46b23312aea50633e116a473d334bf4eca836ac", + "be7405b4c9930c14ed667ebc783c080f1a2a2cdcfcadb257007c20d0769b65a3da39d08ed59cf9f1d75760c013d4cdfb8192588058ae0288867c62848d71b8b6290c39ab3bfe46441cfae7a255b63354a37763a597b3a28380bd57260f5d147bfb4e78dbbc2234de6f30da" + }, + { /* i=8756 cDividendBits=135 cDivisorBits=28 */ + "45cf8b9dc188a670aced4d07cbef536743", + "099b53cf", + "07444fced30519d5c02793eb0eb1", + "542324" + }, + { /* i=8757 cDividendBits=1630 cDivisorBits=1357 */ + "140903e5a54dc7fce7355523eb9d899fd39c40d36d5892217b4a4919fc51132377a43091300acad4c0be3e299b1ebd7a2716569d03b1618e70f2b915e393b1c37967b5508a7a4f526bf8618ecd11d7329a913f37cc7194b20ca79659159da66611f9894f588119847965c37e4f316b7ee8e1ceb416a62e2901ceed8ac777a0367690e962658f58e86af9f000e2b14f7691116e6b0694ffae8cfd85b7eef67f80e6c381c89d84df418c795560faf4e890e2a0cd834c1642cafb8105a9db71939f4e211aa463fccb20f0bd1af4", + "172fc590211e3832297ab490ae1e1ebf5216668f15ac8bdabefa05864d6f195e614d757b044f22d564c8120d203644a1f5e3acc0bdc253eb183cc912aec3a2072f51b41a694425ea57120d54206e475be12ec780f81623d8cd7ae1cff54eef4141a6a26bfb51939c161cce574c903c87c8508ca6f4479e785da2838e5ac1607b9d4e1af49919d0a59bff443e4a8a97b75c6622a3b1a09703acecb9029d9bacebce393e0b210aeb0c5379", + "dd34b7bb0e8499f3e16aebe56d9827247a03e0a61e797d46051a491f43d0ad58d5bf", + "0a27c4ef76ae2b621eb87ed678f1ce9641736e7a59e4e23cb070b9e96fcb0ac54f1857447c3aac8cd14cbd3ac66aac0ced1febd2b9d129c4c7305a7cf4fe4d684e6cfcc55d5845126ff493c9bf4fd7187d2d7001316929f7fcbe210677c03516a89b4f586f555ce53838cbb30fcd2b3c1d51bc2bb8b72c6d711dfc51fe903272165a3a1f826ac95ebfc1859b04799e938dbf8c8ce4ef70347f3e5432f2a410003e2f4a157074da7f26ad" + }, + { /* i=8758 cDividendBits=3778 cDivisorBits=3668 */ + "19b16df9bf3c987d78d1e6de669657f6cd8a29a72ab688c90f8f66e9192896fa7e3d0857cc70a076217ca7dd731a9ad84b3eaba6d2df1286153abf36f8ea2becce61429257490723578652bfabb17d2eaef3ae40c78dfe50359054442d4b3a9cec733fcd41dc72d4c676094f67e2f36b440c9c8b676965005bfe826a0f226accbbad5932a5602904b73577f20e6656c5bb393475d2c7bd7436595c0b0867ca7601435b57e787a77ee34a0765dafb892ff9ddb2aa3099fdcc6d232285cd4243a38225c59b852433374b82ad196b1cb1a634ded1085bde1b181e60cbfe3bd144c2cff6d643e4c7cc644ba3d26ed6a9c111ece44af14111684480333b205a69d44c22d1e823670acd743339d8a16de06d8f92f1d63edeb16e2a18ec2ef4b9e4ee914b1f58cd2abb6cf06d63d6afdd7b404939fcda46c4f97ff96c861176124eeafd4ca09e5e82a57b9729d89c583cddec29ffa2e57c36ff77ce72c83ae5386790c03c0f0ca31dd68ca43b50236203123949f062ec082f87a3510becf7b9962f9c7088748a89aab56c815b6c87cd630d2c5f720cba6b313f887f997bcf28bd9963808403cf28e9d246860e611c8ca5a3e3cd6460437d424ba4c7f5d35cacaca646a89f3b11328bc28149345ba8f530485b73114cdc6fe109f3b6", + "0af685a54de551b6b47b4d8567d8d400c0cf6eb65b37c68d9d89eaf7fe605738ee38c77b1436e369a09d6f3e7adfb8b5e6b906c825c064ae113298fdfcb49714ccef09661931e925e186efc2fb9c72f0775dd8de27c457e1b98734dd78130272582aebd5d9ca68018f8a5a915463ecabfa955aff6b887c4f887776cef50935139f4935cd056d847ccaf8c952eff183e9da505c11ea336ce181cd593d1c5a40da30fea995e83df0b0f0c1ba1fd70824ece7b973050b78d49ec0719413eb0059e5f24001139e0c2b10c476af4ec842075d60628f426f395f5418f1375db3bcf7334fefa36aafec54302b2851977e3f4d47b87dadcf7730bb0d9a320cc1c26fb97b21afba52095735d9d989e715d9ab24b79e698b879053835e26cf6f76cda90d16dbead8f98e03d9b826010d26f9e930c3a2a8a90a479729c0bae211ebba12144e6c4b797a57375b058bf1011f6cb8aa38fb7492019c4899c87b397b419ad070f64a18eeceae638b81a6803c0d806226e123a6a8354ecaf29b48c34ecddf6af69e5ba643ea4277a4b2eec660af3d805a5251154901968bb719ad04004da7e9ab050c7c3cd7947124d0510388520bcf08219357b644b0d9e9b61bdc75668d195ff0419fd8b2c16ee260cd62ed", + "0257f7ad09c66fd9ca1ca8f83c89", + "065d1c1b600812787bace538abb6fe5cc79dd362e75201b9df9f96d6a14b996e7a6ab0a2ac0816ebdaf0f698c6874c1b95e0e5c13896ad2e64738c40a3dfc659a334c66b0a00609dc71035f8e294e26148d69df4404d1fb18b743f88fab0cf1cb336a1cfa4c2c475306acd7e1c5d6f95e026d5da89d887b839f24df7064eb6ebace775779de8196a2f6cfea1287d980c4d644b0cf3071daafd8f306a630aeac7bb60ff7bad4231b400bd4c7b499d3b936693e0287ed4c9cf0c8235769d283377b5d7d0f50313b6a37a11d97acda20a95e5994ba2932931d9f63a71b8ad71fab9ed3b2ac3d4f07d6112de5d9902ea63533733bed503b6057d1731e3c8c43da317bb15bad067deae3023a0140a9a5eac2ae9a6e63edc5151f474bdda8ed5a020cf239b44bc7dae2e3d2ca3ee37c01602d0be9ba3116772382324676cfcc5cf94c64c634c6f2903e857d38c9581f6c607ab30f81ed9b155786afd63f07965b7a892363d2196aeca79455e2b279b99e4e54b950c90c034163f76d3bd416057f7a774ab8ceb439cc04d217713986e0b4b92ba6cabcd53b981d7e8aa91c1161a2fa64caef7fa7735ff9696cefafbdd2e9339707fde801a656c25cb4e58cb495523c23b7534fdd28c12ca925876e1" + }, + { /* i=8759 cDividendBits=3878 cDivisorBits=2694 */ + "1f673ede62db3b3a297e3496588ac744124c0b9cbf3fdb99f355a19be6405b3adcf69d009a2565c075dba09073b94cc99bfe1daeee0cfec8be5ce85fa179f245d8066c2b0c832c41b73798b7935f920f2b146a859a4e01bb2afa9eeb8a78f375bd1d3d14231de829364d1bb67e72ecab361ec15618be2688112fd167b69468521de73adfabe5a6983db245d1715f3c774d2052b6a14e6b906b30e60bf228ecc80c5d1a030279af7b79ee640e87a2411d7ec2203480425fe368837ab37c2a1458ede0a160c4c18bd01301059aa464865c1400213fcb5581906846b6b13a9642ccbd3fa2761d6787f7b50b2586256484f3fc99e24d2fd0d2a857a94eb3866a778cab83f4c2f2472cf1ff00bd01757d242d5d99fa0fd4099e1637e9c95883e7b8bb63cc28bab86cc5ef9f75c6bc8b8628972c93b6ac0b744b6c1463dbbeb4d8b91d76021203af75bed55ed5a63e50d509ba56c5cfef4e08856b1e5b728cc574fdd41f030bb9f4eeb3c0704200b42bc7dc656200c5c22698e6036e14e79b4080c1fb6d164e4a932ec35579ce0d67cdc636e3b7d96fb957065e36c3fd9936d6f2cd46869699ce907667bd0406bd7dd7878c452ffb3a0370b39e232b9bdf4b5fc3acf60500a7fde02ecd00292e1ae276fb410e8ae2ebca88f64121810df8c850ac5c25bea59027ec", + "346cc90c3d62d10cce8c023056af20093c472813ad0402fe2959ca1ff2ec4f6434968c568321e2fb106179d3b9cb3183dc62f053c8f822f9490a41eda88a922fd464cc10c0efa5d875cf3bca24dc7d2927b55b2e5631f5857c5b9c00dc1c2e9869989993c7f932f8e4f64b16c3122f4a6d8bb8b90170a9f9653721ede3d7f2d8a93af474fef596467544628ca7e029f90091a20193bb6461a487a29ffb568a727a251fb8846d7b97069272a985e0538943b27b725adea85af76447e3ec3e8cb478011e4119589de67a7120d403375ce89627e6df490bf77c1c4d6e6f8519402bc2728cdac67d977cd1d2a97333aee7e036353d2b0fbfb40b5555f5acc8c6fb94b4960bc8004a5fefd25bc07160b611482ac5287f971d2e2a63eac2bb4d3de439f5c058773a62290073698c5d0cead6121aee304015bbb61a08717fcd1206e7c8762d12fbbc73fffe4e16c912dec4cc23f2", + "9959045a384a0af7659dac8f5b5d37819a5b4a714c099206a6bc1a662802355a720be2e594dcc7bf3eca4d46e6969fbff583671702f6af4412168bf17b78aebfaab74053d8e77a71e2062e60d99f34d43c46e7d590af42b888cd79652d7733f5711ed1cbfa312d3ec0e7a169cc8a231d67c6a59d3bebf0c9eb3ccf447c4072ec8ead5b75ac34a4513d2c7f7375c6bd2ea22fdaa9", + "039f431a185fb67fb63b62ef0d14a7d66623b2597baf245b6674f92d8d392947ce860d1d12473a89e64a8e025f8d84d904c6e292dec29192dd85c13c82d332054e249352c017ab7132dfef5cf1f9cf63367b0a84f200d24e9c89d749e81ef3aa78ab1bf6be9e4b002939069b69d366535ea568fb2d836b8fdcf495a3aa0667251c538abe05a1d9fd473d8e616dab677f321052cf2cd5f75b22d68ea9af42124d2b7f076aee92bddc879cd1e05bdc3c4f64b50c48fcc1e5dc0c112360072935c142a405e65e3aa80a60a6db4d7f6052d503da25ba0cf3fbd754ef14fb1f4bfa1bfddb996d924a0d8d2af89e604c72af054fa7babb91e3651e5e281dbf4ba536e6794fb6d0b915630e73046e1094b9479c483e8f40e3cee4d417c0e8be6f41b1e28984bbb12c62e0e826bb67459a5095dd9fe4005ead552ca96b5964e9ba6f24616919257177e83b69277db98d6326c2592a" + }, + { /* i=8760 cDividendBits=2693 cDivisorBits=2500 */ + "057dcdc540ccf11fd7b8db5196a626bb1efbc12ce29ad2db7c7cab7f52b055ecf23a8ca49d6d395f8f027a582824e5ce950c723054b272d040d7c553da84463c222c4dad3f8e9c145b80c4177f8cd8ad57a47d11345313c44113e25fe7e136d487bf81f06136c3b0d65e1582015be2944527d084616230fc3f2934091e9c7dc41807cf2baa56c1a9e31556b951bf92dacf0ba48c59c275af9d8506eb3e1fb93ade1389276cd2605ee896579ed8abe15ea1b3bb5a38252a2647c7cb04789bf85b88bd44d82c9e8c05953d4b979af1afacc9b7dac1b50ecd86e4e1141577409f73aa52a5b3f2ad95ae9023ee441cb7350b1a10e3e2b3815acec6129b1902a5dcfcc5c80f57879b3241393ae6e612c466acaa3d6f650525ead200ec1883da02ec80bde99ac838fa1cdffd7ecf191a1e52a3de3625b3d83a5ae30f59f9f3715f46b0f893f9870ff57db7574d8b383e87a21e0e", + "05678411e7e5bf4d93cfc43ff20cc4e9b1fbf0a2da265a45c065c373abaa00b5b44e457fd189eeceaf55e9d6ceb209e087dda3c5bd6eaf28390691be85f96b7cae26f2685d1122d980fd0de207465230ab071cb29ebcc02acb9ad4ce391237a893169267b12382f37703cf6d1c69f38d65731f996a2626671ff5f50894fa9d27e435878fa0fdba2750120d3db4600d4b491f99ce58928997e00137763007f9a4b70202490013e17a4b4a72b22b953b821b3d6c20d88bfef14164f239705f06c12ef88c351696a53b15b35e2670e5a5d345f041180c5a982e44f1905fd43dae1ed19f7020b1a18ba47e3b9d4fc5281868377a36b47f8e02bc622841bb9edfe2ab8e68157913bebeedeaac3f2de8a61e985ceeda69623b3d60a4d69301433b0aeab4baf565daf7d77f9d33a0a54d09c2abe6b6f739da98c68503", + "01041fc24d2a3b11546946d0f860ce6d5acecf4caf0b6413ea", + "04bb39b0870c7d4c23a3d71739e81a9c0995f50f780775a6d68d780227387a9e5bfc37cea92b4ad53e11837a0c27b19b88cc2c1bb37d5cb7a3ec9845e54bf59e6c54fe19057e504ce2e4dfafdf695de65c93b2f56346ce4c856e9c90ca860b7bf0ad7497ed632395797ba1f9d7b3c099b45519b302b947b3f8545571f022196977f4e8fd7b0d770482ce233d8b174d82ec3430af97cd6172215584aeb7bdb23b4e7e77de838b68745566a6e060d828fd1db4b8dc14326b5d0be182b5f5ed6901604eb8404fe47c6391cb021896151b3224123a4d56c829bc62da6f081cc9e2f90699775c275ed3faa61d396a199a31c0674399cf0e13f238008e32def677535372d160cb7f96aee9a8d48aed8e6ffd4a896e95e26d90a859292e234ebfeb9174c40de3db565fa996ed73828f90fb189b6b61b216c810215050" + }, + { /* i=8761 cDividendBits=3821 cDivisorBits=1693 */ + "09e617aa52f3eae1ef6536898ee7d20f428fe7b179967b0770f6d3c05b5ee1e04d0ca11e28de69ccd500e7ae7799400b11951c8fd543d179b3637707cc106afc9cb43e62bb215d241fc9268967af90ea64dc3442e7f6b657fb962ee61581e05a0d0d6c1891bb23c26c96a5a30c082e15af9f464e409349a5179e59b9616b5f96142df656e9f3e82f829238aa32b71a643b6ba0a8cf17eeae1d5c28ddd676cd47052c94f805c2d7363f1745f7bd1f8a8fb7685a95297a7eee6f5208171a8ff792a7d7e6c07f0e908ab32e19132d1d441066c4d9916cf2339988db6d79f9163af8fa17277f6134a3016c453084c11ed9e511876d49d22a36f1dd4e7212e06b98782cc257a2749b91ddeaf042ab8918a24504c17c1c854baa17b1f2f1b9e0630b755f14bc5ca88e0adb0d2c2242ea59d1cf0b68a17d06a9b1a9e68720d02985dbca7bec7e92d75f010972f0099d53d27a0e03edcc5cbf5660ab10d48a1e0843c7fae54b053c671d75c5ed28ed7d68319f89ef92797ceab411b99d7884da4d026cd97d19ead5169506d4012219bca9b11eb62ef347be8ca4a76697208f954e1ec18d66eec3f617d427142d3c980f1e4108e12fcc9f5906e16de75991bc1ad724935a286c43290f5974f126e8ed7593f3f61bcda751ee612f89e1c061b1dc4587", + "02539390918d2c42fff7300bdf897e9a418bdff3b0c9154e65c120da8cc7006f09be02f325819777d2990393d4cd19aed615e2dcc4dd59c094e51b8b0c63a61da81fe55558f0422dad06ed0bb7fdff97f76797454b086de27a04b5c219fdfe206867e827a40b5a0ca883779f360fb9dcca3aa016ea7b78d8c32a0f01c2d7285ddb487a7053a1735120f92fdc6a680b36c87036900f41fae25d56d8cf30206006ff90f7f4d97d9df3ececc55d272151a89fc877a0c3b2cdcb9ce8a5bd75591061f2525075699713510966a5e02d62e7e2e60dd4e1", + "04413e4cc5481086485a2bbb6907543e9ceb7fc285714b3dfbb4899a1d4751bc2dc48122c2028c6f067185c37631020889511023569f4d72716dbffe641b0879c2f8ebb0aee9d760394b9fe61ec08de1cc58ba80e435c32662b8b70e0ecd698d8b7b456f2072373a288388abd59a453c2ce22bc3f2ebaa2c974bfca323f0192066f640e06a749b0059261be3a4a848641b61aa782d78af1b0df0ce3a776866ba6f78fc5863807c49b0bb268ddd477e57ab20ed26b35367953004193878b363a9c17a9373a3666aebf8d47224a064f4475c904a3ffc1a8361df19ceab36d9131a3cfc640ca6ccf4e0129e9dddb06b023e9455d28c7cff01202f9b061ff53a0e0ee348733da95f440fc467af", + "01be8de73f23241ecbcc5cab12668b00cd274f4bb8178069b672c42dec4173a6267e948d43468f6a6d18c91308fd6c5fc709dbe49f7567257715ec3869909c9200a1b272689ce1b96c4e38eb41912269dec13c8d2a6df4d127d7cbb6d0999906433708044529fc93cf0dc8828cf4a659403e6df6452ee9b0e66e0c3cf6d1fa4c39d13a5ef1bf1bb9a7d4ae750af6b3a7399309c892119b448c39d3a483a1c5f622b15b58b9f8d6404f9618bf5442de95c50999f2ec2e6e1721b0b9113fc31ef5ce32676f0618a66340335fcb7f90f4e2b27d38b8" + }, + { /* i=8762 cDividendBits=1318 cDivisorBits=423 */ + "2250fdecb7b6d3aaef5129842436a57bcdd4f9551dbe8590c9b5bdbc8b820416bb2902aa96775442c7a465e9c7afcf2a84c7be2844fc0841901ef9836cef7f89bb0ba700b2943cc9b64c87acefe3f8e8d03e58ba071e34f0c2505df1dcfdecd40b9e4d24af55a23d504de1abe16880e68263c5adc720a3f5b6f3a38b894892985ece5250c08fc92dc136c50579fe1b41a37ee48d453fde8f498e19adc0560da474e5fb3926", + "28b7362a70a2f26c9051a206c1e8df49c48b02ac05606df7553a602eb9bbc747b76bad802238d241e961ef601183e4a466dad7d12e", + "d7c3af48c4627a095f2139d3379b7522f84fc447aa6108e6ddd83bcb47ecf0ebafd638d8f8cb104008517764406ed2ceb669b56e0e0c39afd055fc830117dc8e13bd95b511a3572494a1bb0c929ce4824ba465d94822267494eaafb799ea0f27117e03a0fa8c9865737c3a82296f2195", + "0d50e9fee2fd498b17eb764560dc83ff011ebcfc6e8faca0cad2f60d856ecc48fd36aea8b84a4d50b3d2b01e9f53de98f1a3758b60" + }, + { /* i=8763 cDividendBits=1435 cDivisorBits=103 */ + "07e8a0792e8650f8ecc162f5d05ca8f194493ee90dc81770a3d5e0ada540dd9e8c6e015247b87b63a4c0e0b8ee2c7cca617406c985c46d08d26ef770ec10d954c6d861ab2161b527e5ce57c03f6a00ee7f375bb89a4b69bb52a117aeb7eea3f7ce20646e5f18143e3dba448568c1787c5425588b9d01c0cea6eb57793d02f6ef0d2179978cb9452d29a6f31a1bd39cce75ea31d260bb2fe6250933115d958371f3ad5e0863ff861f6238d4355c920a2eb784a998", + "28714bba0f921b49be0b90fd40", + "320fd12bbc2c98204bb1df221e4ee9e70ade6e7ca68937254962afa8f574685dc0fda3dee604d42b6ee54420fddb82a1a84466c358ad590bdccb72aa8ddc85f05daea1a7f37caf2610a1bde4d1323055e77f7eaabb944c3b0546eb33c44a37227fe3112adc2fa7f83d5454693d04841a28133c839819a9334ef19a8d348079c70d5a8f2ea732e01146972e371691ba49ac907b3919490b048b8511d81a02e53454f75eabeb8bcd", + "0e5d9d4de4abe997f581281d58" + }, + { /* i=8764 cDividendBits=1324 cDivisorBits=314 */ + "05fefe9c44e40e9c6f064a0847b18b0871b66400a2fab4a4bebb98f95ff0b790c6b0e8a1d042100a9c6de44cddb0715a344f3918ca9d8e72e38438431a964246bac788606c0ca1363aad6692aa233be64ca2ba5207d57c11ff96f9a6d58b72fb6c0fc0ca53bdf7e5551bf94403591fdb42ef865999f444152c65f7b97ab210b1caeb183411b316907d9ebe924fc2d05351dffd5457eeb51ce89f8ab4956592a908d8ff84d921", + "02402c2ef3e7ae0e24f755c4def90dcc88041d3b0e44991aff17af6686bb31371b3fe75df2dfeff5", + "02aa03f4aad0c7c90501ea1c34304943f6ad75c3eccb7fe2ca1903ff79c7d9ca444386f570b8c7748b84525c0f5a7371c51d85afbc82a4a26f481360ff14e91a72f773a8672576be53d0d5d64dfa3a1dc2682926748e0255f26acc46f8b2fc0a7d839ec4c69a0a6c596ad9f9fc359dcb647fc8ef5430c56877653df14ecdf0", + "021829324b55906e08d5a44356929814633601c53dd2bf08fad791ecaecd314f9e4a3dc638c6b271" + }, + { /* i=8765 cDividendBits=3907 cDivisorBits=1191 */ + "010ad55fb33fb119710d892c3859b4153e2f4cc76e4befdf023e818d00ce53687d0a056ced8448e33ca0f27193e6edbe20b385d9d82f30ee5d8981b7ed109e192ffc71e6abc7a0348a7e449a73cba0c4ae2d3632837c6cc4e560a83eb28796f2eb4b55f5f878e0964a6e9e4940033894e26eeaa61659f3357772b49702bdfab7550ec1459350c9a963d43f6d39d25e4035a33c03ef2ebbe30bfe10c1cbacba60acdb01422fb174f5a70e0db1a9f57c20bc68e816d41d95a74b0447cb5e61074b68f779a07bf64744e7bb57949047fda2163a21867dc6bf01e5b6513cac619f2d755cc6cfc419fdfb50c6a65155b2af8517c417e269edf48d8466d22edfe24d50fda146d3765734873730dd35a0ec8a866ae8d378c86273295be351abe648a6c19765ea9530634cf8d3e6772ef7fb93548530efa43f6a559de482b97bfb775c6bbd23db69fd3f3d175bbf72fb997b8cbcdb18b1f3977332c9bf14fde3decb62506dd707cb0c62e3959bb546554ab8f8bc5522433fcef022de11a7f5916bd9ae41e703f411c94fb1d0493a893e3b3ff68627299c3a9ea34dde0c5fad0ef1239c0754be3b154ee2c4b39a5fb276c916d38f1d6a4f0e1506704f5d1171b21f0835c136e8266d4346845d14422547bcf0d90a62b6a77b2ce7d4b9e1bfe5e62d3db3cd3cff67f498eb806a90", + "2998ee4a0e33f13a99b8fa8f7f55b7f60c55b351b3bd4f89b4aed758587abfacb24c31633e603891cd3881047aadd0097c9f9e874df9234865dfd1adc771da8dca403132c5dd873cece39a64e744e5c78814dba8dd3f4d1f9228b73805381182e6123aa3978a1b9fc600c07cbe3eb2465dd4723a4dbab5b25d2df37b3718d219a27467ec911b7114927d657c620f14e1042eaedff1", + "066a27cb16a779e955870e4d2e8ddf7274575fc1c2dbc87f78bb133c86d287b8533f706037e108f9696265f522850f39ca2ebcfdc32486754762b0be26d9b7b98a0a66b3e3291cd2de592446892b1dbf9f051e85039d6d73af6dc56da2756cc9772317e90833325280b2ad3f1c6c6d1f8ca65136756bd16e154397d3ff1f615a8f8e178f6a4d5e58039ba3641ede7bbc31ff30b353d5c328eb661b826ee5c889c52a6eba3099388c050dacaba6f53dfa25889a1fe809eb5a0950679efcd0bcb4d1fa52b873fc5e5968e1a818efbbcfab85b314660e1a601cc072fa655400e4cc6de21eedb37d90bde0e17bbfdd17c3b778982a16389c690307f417d67a1c370984296e7044f9ec53fec1a44fbae1ac7a0c969053b78d2c299132a65882eb9bc8741703606ce067b0e8a77fff79cb4296c90ba2a9f145bf57d2fff89d606e597d30eccefe1e9a9e458525a29f1cd36cda25501fba", + "02787266ced41e5cb3359215017f10c3e160e9021f09802b50c002d37a86efff3e12ced4d0f6366070909877685fcfba9ed9a3df2b646c1dc81ac57d2f841b189e678890362a2e33dad687ce7187e25279fef55cae653a3242a9fc11b012b54558a2c3841f72f48798f9cc6da41d54623fd7704c18a784a80dbf6762ec50c4a8e54acf520dee6f4076ffa93e8d1fe7b9aa03038676" + }, + { /* i=8766 cDividendBits=1097 cDivisorBits=535 */ + "01438b2eb3538ab91f142d2afa0fd28a16b671be285e559304f936077ae0c576fbbfe7223170e3873d4b548cf80ab569494719e96cc56a3fda1cbbfeca010d52098cded61d0aa18cc1af2b5dac9c57ed4a204e02532e437ed9031f212f162db7e6c8b6cc3e234fdbc283dcf45fcdf120d866eba4b48014facf84a1947673623acd5f7ea4fed534a20ab5", + "0e3d5442008ea868bcdfc4c1a81e2747bded8c1df11eea82d241c48780eca8feb6efa85cd0462ee1eade1caa856bbd591a897e3b94b1a2800f45b32cfc212d858083ba", + "16b8b14913add453b65db4321a5b9b6f091446b2f4b466f75fb745a02b2882154965e4cb4a34f5022d4764e1d52e7b9c45910edd273d2c84fe328c7efd1ddc2523116556e73d1f", + "087762b1fe032f889c3dce38349ac6dd77993f5c1dc2d3fcffebb90abda16e383a9d525bb2d32ddf94320f73e3aebf0c7b4f7604425550879a2a06a4672be911d8c52f" + }, + { /* i=8767 cDividendBits=617 cDivisorBits=599 */ + "019cc0a57220c2b2523b1cb7dc4797be6234337a7614accf8d104d7757f6e5d31bdad4c448054f00843cf36ed5b1948e3bf92fd220e073d9a6077cc084ac22618c92ef72140512e040e870d46cfc", + "0da48da2f3136d80a327c03e89af509f118d8c8b87da922dab0419f266aa5a7a7c998c1021f20ddb36c63ebd0e7bcded8a8e0c02a6bb973957886231b925624113143487904fe39bd5408d", + "1e4117", + "0a9a8b2017b29c787025fe78698583dd7db51b07fa724b4c04fb0e16be7a06322c085cdfde8fea1dd2f05b68affcec04e60195e584ada020c0818746bd9dfce07209f7e3f405e6bac1d351" + }, + { /* i=8768 cDividendBits=544 cDivisorBits=335 */ + "937ac8ec016182275f5900f2a7fd6b2ab613c2b43af61d75fc6d7c8b8a662cd7556d83921440cefa3360f8561a2ccc8bceb6076f139f65af30769ac089f88f424c61a08c", + "6125eb84fbb8b617908c89dceaccbe8a97fb0af3c6649334ca38eb3cd8cff115cfbd7051071dbb62b063", + "0184a1913c39d38d2746cad5fe3c03f3daf42702930a6b29e784f1", + "0ce15b3506bd0f026c6719446afa5b1f3c0638f198c2020cd8b8975fbcc0f9bf4b5e9b320bf7fd318759" + }, + { /* i=8769 cDividendBits=3843 cDivisorBits=1710 */ + "012b951e9de9b73936e72ffa636c27da013f3abc071d90960d8288636ca2de31a768b6608351c8e756317812d2b7aad129d9fdd667c4ea3d85a9998d662298065a388e42d330781d636627d5a5066b268b9dfeaec2c00cf1fab786b5efdb8b55e552b91ef30ca8e25aa43e9dfe7b44859fbf6e1a175942295a366fd4279f92ac97bd2bf452ce592d1b0ddaad6146fd9cf497fe0e8229c67d87ae19bf28a0e2e82a0fa3d501fd0323f79d5eabad4899ccce9eadbda8aa90443d932019e1bf024696636538665736c32324bd85dd0277bcc52147d3d669875827b3f99b22aec662e3a349d935441d8c5e398afcad937a4ab9b218c0a605046485b1eb05c8a2b77cc477cf89e6798a882a0e0a33a256cb1a1508190dee36b8d0f8a2abb9e402a023a2da6c0bb2865182ea21f691564e0608818569f2dba62f90c6d05744f90f914e83e9d886c3ef7ee6938877ccfdb3626599e2bbc316e3c5302d7d1ee478711bdbec7e3c7d317d0ac28039438a281bd1cc2e0fd2df6f4c5d34618ad1f71b181a9caddf81dc6e5fbcdba114a71dae291c8dac6364b7d0977a051d3b2cbbc39f70c82773de4b3d3267ac92aca408281e3d405df40cd97fceb889fc85b90e22abd161a7dd7fb22dbf7d916371eeaa4675f1ab3ed3b47168282cc85ffdfcefc852e6fe99", + "2368cde4c60592eec8796e8961322f8af0904d8e447e79af4ee82ce8f49e77e33ee492b52387c7432be9a28c479e0d3fe446cabbc16e395cca4448591d977f445501a28958555cc56c68d2981a70b00205d1d2eccb0f65a8d467a066204da4cbfe6c093ff182384aea8dfe082694c65327dfbfcd29981f86bdf4429c95c643f1ad03517a3abcd98ce72048f3580c2655844b11334a96c39f5110856abf092fc3148030d1c50db1bb361167759cc3caa328637fe1a5606e368d5f2e4e01494a25845d95e9c0df5f7474f970259b4e3cdfc706679ef9cb", + "0875e5cee4db969064a49c6ff6cf682014ff2b2976e81293ff9b6b7f02f2f669ef89e779880706d54687e33dbcd365f95a1781a098eeffaa070c435c84d70edd1bdd5186f544f71544b58f37012fe15442f6dff00b819e833e8fa2798d80779060edd45f188d83a43dc75b36937d59f65f58fe33fd4c02a66dfe7a234166970722d6abf78c535322aff951c16ff88bda81ae73ee80967a3c1631ba82cd202aa68116129e245ba7b56537e5578221683ef73fcceba252c82d932e8618875503b374d8641312754ccb7d84e017c8871d75980e3392a3e8b3c3ff361ad466b1f814d471f3bd95333b77cd974292b08248f8e5f95e14b00654aa842be8973778993884171ea9b80ded811ac41d", + "01c65aece3d7c1902aaf7b1680b2dbcc418a1904aa7379f493df03cc8e3abb78d843df52a642545f97926826f89efe731f406cba13a64c166557caa3d4a941bed4df6e657c10de659e31673d8266ee82cae7f4939585a45c6132a599497d9fb8ba728357a794eafb0a7610d98422eb99e996855b55c7ea1e70e21861257202c983df65df82cad134ea7159e3bce53f41155d9f28b639568b6d30496fe0b6bab90ee1100f720c4ad9b0d81be269dca8eb8370a929a45ccba51da827c6e0f0544fb74b97b0017d27321775d55bd3bdc5a04ac53507469a" + }, + { /* i=8770 cDividendBits=3066 cDivisorBits=2659 */ + "020e6b7612900ae99017f9fb2acc1df5cfdb71588757360e456de13c0e82726257b046a3f45a8b3d3ccb164397fab397396677fe0b4ac0ec4303a780e62930725dd605ab4eafa777077883df4276357667a31644f7b23da1644ddecb2c67bbb636e1c970bff4de4850ad6d03fd2b17a75bef7f3ab9126b41dc9ab5b8048b1d5ca03ed10b063b32f0a24822dcf256bd56758f88218dee93945da165e4a31c807867224ec482258f8873cc54f34b8294e985bbfd6206891b6effec8953d482b1acb55a973178d6532ac4daeb87e03756a54f01cf07ab65a20fcd99c2c69315d38719b8c09e54e8ffb7825d30ad2a128403d5327a2a89031d1d1fe25524751318467b55284176d8c2c7e29a5c8906f0fc06e49bab518bc5221a026c89af409698a30b9840fde6552e524f991feee249166e2eeb4e39f61eb2cb8139b96adb91ee6c2593f981061832a8e1966ee8747a1e2357ea69413872075654c44462fc1ca9699e2ea894f7183e5cd6340fceb1a8b3fab31ce24a047711bb25a599aa430e566e", + "04b0902dade7a8f6a839ce32f030b83194e063044133eb10a3984b3bf363565b08a06b1fe46437d9666702bdf0093d7bafe4852ddae4c4bf0f14e9fb75a46f90fac238115a88e082178770e9094e47a84cb58a40190ac06aefeb019ef9b4a68ffc473e9bc2d21bf468f39f4650a9826c7cc6209784118c536b6fb4ed4a5343f183663d0f531d5da26157122bf1e19d790e77a5c4cb561ab0e5f509e38da9aa72dd51f4cc968761b333717f9899223aebccabd9dcec1ed5557f0d8713414b766c2d8a9d6d4463e95381b70e0b2191d9d6d76441e37a67bc548e474c77389d9569a1a247571888748c5360557f98a83da94ea8f932bd908c5df4ba13fe90cd73c093537b7c54608ca13f72c09a6b5f8a6a8d20302cd33cf8940985fc20beef88df2ee8fe49e62707435afd23aa27ffbc488f409252effd803dfa8ed6084faa4360e528c34ab4d14b1e092c21f27f", + "70400d3acbe669a788ea5aea970356e7f9bda22f37aac635075527aadc61a0de30384821d901e66df1ea57983607cfe1055ed4", + "02270b66ccd921560596ce051b33ab9f9880c7205988725b0e435c5885e1b879fbefc23b321ab25ea3f0e76db8cdfce910f65124d246f77050e06a2d19940dba2241842ac73eb0a9d91f09cf1647b2563bffdad5e689fa7a292bae925cb8c3ec16e1ddbaaf7e93f8414e1d8bad49333ad3720b57c08d1d146759cb95ab1bdbdf33c214d93dc3a13be7fc49bddb419e8b0998bd6244403e789f92576314f431152f4bf11468994001803fb42fe5713e2671bb068d6619ac0a75138078c5ceb36af3822018fc934e913dbf90db59b58d50f2b15b16eea1868aa177d26484483fca0225921d77c2ae994cf6888265137d36137dcd528937efb738b5ffa2c23f60f1bfe1e534bbfe4d14cc6fadae81b9ba1bc7ac3d4bc45e9c71d9553a2186ab14a46a2e8f1b5758d4726788af325b64085012f7558696ab2352b08705629e8f9000b2b66033596c931b60e46be342" + }, + { /* i=8771 cDividendBits=1799 cDivisorBits=487 */ + "43af2afcf2abd4059484d31e0658f5d302ebfd169a5ff7040ae16aed051f390ac9072209d15fee59b0e544b2c2774b48c52e5264e908a7b4b46a64ad8517fe6eddf07b43afbea6d1b8fae75334bdb10390e93c73e43ee834f0ae347f0ab9070ba9426112219b376672bfc9f41488f311535506800184440998ba23e2cf4cf14b873fc40fda72db95ba6c9d63c66c338d11dbb6f4a0c3e3e850ee04098ab0b91c44f019d8c350e23113dbfd600c383eaf3986484e1bd53660241111b41111d2f7afb8ac0a67e750fa7c33cfa3508b946694423ea0ec182314cf4b6dcda974fcee5e", + "1bb8adcb1e757fca22852b92b84146d0b67946c18ef7e4e09abb16f225e6b9752b8df8c51d451b115d128ebffc13d93eac922e974be1cd309bee23462e", + "02710bedd0d105d6cf7b2b372c2cef657b010c9b2e1208cd5c315a357f58f6c2ea25ae4b408b3ebea5ec9dcae90a7e714dbcd4e2c98b7726bf2f14415ce1c4cd15e74104137f555d75f2b4584ee81a253fb5c0fa7c47973065c80fababe92305c8d984c6b0338e74403ddcdfddef9c8cb31eba4f0fd89bde1c4e6a7d7377473d8d440e114d81ba7440d76568d15f598522436db117351ea17113a4e0739d0c063e2ec111c3", + "1387477cfecdcaac99787498883ab5e5c7637585db6730eee50f834910ef860e19a8ee450733634aa8d5fbafe697fea5d355e8b1e2013679ba8bc76b54" + }, + { /* i=8772 cDividendBits=2940 cDivisorBits=1700 */ + "03d8770d303454de4cdb2a2730e61fb96b9fce0b9597bb810eee624def1d3f0c678da497e8ed1de8d49a3020eda6cd6d46815bbb61ebe09756bd794789e70e7ad164f8dd8b65cbc3fd0296d44bed360bca20345c47f7c2d7bc03aa7f8fd5b8ae3f066f01445e9650affa1032e13568a001de830a329101f5ea36b6a4ed1e95529d0dd7a36ff02daf6e26f33a60404de0902c0f60cfef5bf2aabd1f8c0e262550c9df099a7158300208312d66751a6ee5f1e3900633a5aa088eb11932a35711cd151de5dc4948116ca0532cae28ea82debc7bac99fadd055fcf58f6bcdbf714a526e2c1104cec7269f19bc109c182c5ffcc861100772a550423224a46b3eb8ed0a79b2c0e15d5c88654f045d4fa44ec0c136c71d36fd18c9f2f7eb9e02576d9a948d7b78819cff227113143d8485c7a23f3a584b207bf67ebf10cbbd3e6a43a8342841e909bfbd9f369909420f2f8eb83d8b8b31c86192426040f11db0de420007b622324d1594599ecdba306de98fa85", + "0ee026a84195a543f43d7c41e19a0e3f79128b6c3b14fd8eec0894cc12584412ea0777c7efb68ab12642419ce2f1f82245a018a39226ff0d8c12bdf679407bd08edd3687fe93908153815c71c6759564d1d168b6155cae4f8e7260b58390e412ab489b27619237911ef6686d1f797b54a36a3d55e03721c83b41fe919bffc2579b034b059798c0872c18013ffd8135e587989d03d026819e5c7f0fb2a46a879e3d4e531088a50d8d35c7961a2e1623cd07d3e8a12c7d3358ce76e823e65e83d15f4447e80eaeb427641a2ef5213e403707d87f27f5", + "422e0de7ff5a99476fe4313f0dd622d2af89e2c76db07ea01efedfa238334a9b6dff21867ed990d7287ba96fd5799d5eec91154328bf2cd1f5f4d3e52e0c2482720721686aa107f8046ced695f3f9c50387c72d5e0593d4e06cb357671e4e69249305acc75d636b11365caf17d0d89f45683b2826c07e66c7884e90de6905d727e88ff326e27a1d54620b360e05c8707d0a111df8e902cfa7c2da6", + "0cc3cdc65a749ef0249bb0da3ab000ff484d9b63fc1c5d02d0dd63cd03eda0cdf18de0d7835911d8774d8b58d0a673b28970de19533de43f9f3be70ae89eb1cda52e78b05089c3f094e1bf4181d4d8e04586605352c4a095ef166b316fca4e1ddeda59dd582b7453d19ca88aa7c5ba34dd8bf832d50f0c11bbbb73480b70358a537f25f9c8f40fd17b7b2d44082fd9a22f96171f715be7e08e5904e29a64a7ca5802795da1ac7f7011172c689ccf94b9c22bf3df0cb27be39836605cbf75467b4097b6f7ffb40112eeb2592785a317da29857300a7" + }, + { /* i=8773 cDividendBits=3146 cDivisorBits=2003 */ + "0119c6de5014a4168550bf3b9df5a7b38404bbfe0f446f0c924d69a398b9502a1cb4f10d509fd4f09e8597b3b7eb8bb1cf09fda2fd6ce00fcb5c468a40aa77821eb07f8cbdb61b95768d9fdba18eeaa12c9a6b54a76668bc2ade3014614c4f51cbfa65f63b59291b3f5966e89d3d4f18c83eb788583329b56688dfbe1fd71ce9e4d16e238daf7e70ddcf38d43ee5e613f8a006b3284e16cb2ba9ce55f14be3a8b4d5ebe813b1bb17dec68736febbcf7e18ca33b5335b791403091c8800ec38ce216616353cec0a5e20b47614595354a16123cbd40f8ff31b6f985e37ca3597dcdade87626d27ba45ce664d0e969e020950aa1fed40a1a5388da131f994b9ae49f3042c61dba24ebe403686441fa8ddc757046c00bf50c19c19c553f588c55ac12ba709964c0e65bfa74dc84ad388ab338d833f9eb74c03838d87d34eb1c5aac55c7a76cc02ab959460ecfeedc310024c6720ce9ffc13b6b569de31e4412eddaddac33b1c423abb20a15ec24672b4a959b5808b0c0fc49fd2a9ab79744e844e7404e5a48f278bb360f8eb", + "0547dbfc436098705995e1c69334ac3fa651c0ccfd3ad7b02c68c1cfbec7d23127da6a7cba47dfca0da08d3a33139bef27d1ceb4c84c4e402c28529404e15184a4307619a69635f8e9902fb7e48a2754218ae8a3821aef8df3a3fddeef3e2714703279a7fdb5a024a86fd4147c977e0555502e6fcc44cf5be6afd20cb4137930fa9ba87339d7431e21306df26e27cb9bcf7255f65b520946170d9a6ae9aa73cadbbce4e9dc1708895378348175d936d0c4cbe52fed129e8d90cb8bc96260290f718990b0f7de41ddc0902802b0687580d0554f979f6e2cf209f3759a571307158657f0d76d608545e489eed8b9d0ba682394592181247c1b6db259", + "355c183ea71e47895399d05f63dd5653249937ccc1189c521f24b70099c665b46c0fb9804c1ad96124079aca944466bebbe6cded5ff6b437fde298836d8e8a89892382391115c5d1058807e38db525d839dad836b7ea7a96e9fb16ee3c8c7e60e0c32fbc7f84670c9fed81134b26280fb685a7e5918a9b6e6e353ddd0c81e7e921dccb8747801cab89d22b8afa6982", + "037579cad4530beffd3f6fa588f8a1156017dbd6e7512dac1ff636c4fdb31b23bb9e6985627fbc3e503600f1f646d8501d3835d60e083c9918939a809bbf47b7fc4bf6d12634321587821da01e114171d754785565247d1a0db7f139936193beac64933ed585208083979ebdadfb3f58ba1a1d4ae610ff5015ba5ef436fb63e1ba1f51ecf5759e4a871ef5b749b3e906eefeb86da7d5b86d3c9ea8c3d523f92b1203e400dd3f1e3d2d0e5ea94ea717453d4abccaa6c56f4c26105621cbe505ee4323a48fcc48063698af5ec74b1b8810dd9a8ad4e4bea77b2fe2879ed72ade36c81c102143991e2429725376955827ad38e631a4acd70ea29be6b9" + }, + { /* i=8774 cDividendBits=1616 cDivisorBits=743 */ + "0f9d03bd5646e619a22546657c7a6a527eef61d3d48d09c99c407a80eb2e0f708b016fb590e93ea5fa51a0672451216587914402a4e8d7fb44c0483284f4329ecaa653531ba34ebfde0b078cd153a062b9fe246bbed51b8cf0a106f3fa4ff5fb6772a4322e3e0b62e474bc4a97871d603b2273e246f1318a44ea00ade9113e669b456b7f67fbd88f92b0d2609613b8fb975eb2be88d159689e31fa9e60cde3be617e685d7566590f3b33e216c6cedebd9ad8b8e687745d51237cf44b9f9e7a85fcf4b7f04beda6ed1173", + "0a19ac4388d1e4b57b2dca2be7e11a878145185b5b997b5c6ae14be2d7dd22f761cc0c2b420d48ed31a79784df2f14ee157c171b22d94ce33e020b6ac00ba8118c53a79e28ac0c4d361a000c5cd1d2e4260d6c719d6e849a2840d7f456", + "018bbb9cdb62ddc1769d623776c1f17189b5747ce03fc55bf442066fa9faf7eebe2c0ea64a52eef6d098694697eeb2e17f7c6549fae28c712b1a5eea0ed3570f445325057088d255a7a7783ea816fd39440fa4158090e8e6a76d8aeb1e3ac4a3c7472811b6ac4a57426fb7441684", + "03101a16a01bca402b8ab26b91f7fa2ee3c42f6b0693623750af02ea2b1fc173961c26a40a6d2b155c7711cc490a2577f1bc7c60b24b68d7087c3041227edeb051340bc0f4d22ce521d2c33af79d6807eda0d8bee3ed6aa34947bbb11b" + }, + { /* i=8775 cDividendBits=2141 cDivisorBits=1612 */ + "1bd3f46ee828451e23e5385c38cf172127df0dd43c22df7a0e17d6428815065e6c8bf7809af76388d94cb6d666b292eaa628318fafad0cd1ca85fd51c53479fbc1e71a78885957518144d5d6ede35a5b3f3c8eb616a804dfca355daa7fa64fa0afbe5d7545a31b1f97b16ba78adea23d8af841575b9f2360f5a687f66d0f9ba73509d9b99ff417e78502afe28b0180437429a3cff37d62d351e0f6b6c6126ce486a9bba8d3ad16fd1bcbd9a34e70539b1e109ad636daedd2141fde40d6a86abfda8555e3ae60710b30b8b182486f2e0211de7ca36b674a08e1a3629f9e464ed253c24fe4155b49cedc10bb6ebe4a4935b4b70f235cd613cd455cc0ac3b0bbc2484f6231afe390fd13eee8d42", + "0b9dff5f5ac63ddd9cf233905cb7c26eb8077c889acffa34092f3b35221714241c0e98525468cbbdf6b136ee0613cd4a1b5e3504c2bedc6514d0ed70998e7bebe159c1785c663930e383d53252e6b7a2d38dbff8e95336b0e2966f2ea5d0bd23c7615365b02d1898caf425daf21c8ba0a32cc8ffbcfece32ec14a0c5d4d823712d86238ed64fc9b626a4b27725a718f60b84b19a64b0d7408b49ca73ecd809aee22d76816cd56bbe4b00f70c8da0a4a95633b822057188eb02cfb5fe464b5745fa274e9646b3d56bd139", + "026539d7008638ce74cd65752f2dae6f90ed129a6e0294a20eeeec0b0d9a29b5cea69e5afa0beaad9202dbbc73b179f595bfbdd057b19a54c89578ce6797338fdc06b3", + "04329c396dadc06e3120fb715ccf3e74cac0ffa43f57f19d8d96ba5683398516b9b143fd7aee3bd0d5b7ff29af7f9b78688842a15b3485979eaeb5befe99ae753d10bde9c8a67a3509b63df57fcb003f1f49589993bc167720ef4f72db1eacc0415733ffd702c3224f6bc505ee306697aea97819b3da4d621b610c74ff594524925d1bb9ac45518ce3d4a383e68f96bc82fc33446ae3272f6337f262c934aa0df35309a2e20fe1f401c0cb08aeeba3158d4c1bab45c9d193c739b08ef85184e9c9f925e87930d9a7ec67" + }, + { /* i=8776 cDividendBits=1705 cDivisorBits=1134 */ + "520273ec00ff3ed56ad8553cb1d5c05dcebc1e867c130d0f0875714acb8002558a8aa69a17a88a7c5bd580bf15ea35176c7b4ec3c6c64fe062e38ef96882db5697b2b8cd0f5afd3fef6911137f35abf57c4c1958b2f0454c100431d5ea48377139b16f0fb8576597c10f18eed657c5c163382eef20c8887b4c653613415dec07aaf2c5ac5d4023b817e4d2c18142c3d7872ad07cc20f803e3157b794039f34386ad8cf44299c2c0a83163dde94b4f0a131ad1186a4fbe359d6f0f22f423fa74739889e4fe5f56d279527c2ff936a8dc90d2af622b4", + "12f9abfe6f3cc30430916d944363a52074775000a59e2f16552f9831d4a44b41c5f128dc4a8adda32873d2a816c98ded3fc8f6d31034578741f01b5cb220b5e8d2eb968e3caac537c75a19b624f6be53a46285fd55d206d6e28e0b8fe7510c181e0faafe1df86177419d14e0f2fc0f1aee1f28f018fded972cca703c34ea204d89036acff5b52a5a2883cfcaff7b", + "045269210e0328374fd4dc2f22719a9b7d97a79dbc947cfee25fcba3e67e400e3868edca3222eb4881e5900748f8f996d924888436bd1a2c5ce2383b6fc7c479e880758590a27dee", + "07340c92cbd67654fcb1b49efb1455b9bc19fdcc152b0c9757f0b870b09b465a844cfc586e5b8a133c33331d88a0b9446f7b1aa27a4d6ef245fa8c6d5e65f4614c87bc85ef8b654ccb13b9dae20e80751ceca0033e664f22e3bf19c7aa45e003f45721998e4da419b6739dd173ef3ec8352dae5f4c97cc66b55205234e612371cdda6f3e83034bee21fa01a78f5a" + }, + { /* i=8777 cDividendBits=927 cDivisorBits=14 */ + "67f0e53ce1a5bed02a3fb1f2af8bbba93ea95f1163bb94dec942d1fc0f4eb0907469ed3730d01d70913b7af195266d25d439ba77effa9df110987739a44b6a5e6fd406dc4498edbf3128dad77c7fd586293a06c1c9c0635609efa79bfee6a9f6a16402ff669e3879adeadfe44ed2591cc58aa5c1", + "0994", + "0ada1719262cde0c8bb823488742ca826d46b87d6e392b85edc1a6d63e920793777b660698eee3c094ccff0df256b3472fa1cc791a4ec913bd3e46143792f0cba26f81c2a359e2880f27c3530d6a79afa0136c0889ff348cf34187af6633a52a095532027172a8c474b737882cfad0ecdec061", + "04ad" + }, + { /* i=8778 cDividendBits=982 cDivisorBits=969 */ + "1560c1515207c2ce673c62888b01eb0f06c90c52e52f706d7051e0be4e239bfdcebb6c80e5a1dcbaa511aabd2a9cbc007ce3744e62251648e63d108c5002a765bc4ec4d7f12aea5b8be26868d82f3931f4221c700ae46b490447127be3bee56b5bac1b6aa6c989dc50ca52efbbadf60100a88a2e79fe26bcf0d915", + "eb9e53d92bc26fab965e3d139bdde4811950e906ba91e3e15d21c056607ff5a63dd1199443f179672e3398bc52bb647d9c54888ca712ea14c50909a4ec64a07c365e3e84969e78685fe965bc98d50829550c2a1cf9814e2e756593f98b1c26cf46e9f5681827da6e5e2c4298767e837ac37c3c212b65a15e57", + "173a", + "25e9cfe560b8afd9d9b1f18fab41a8430b0e7ee60fe68fe4bed0f7e63fee3783a1d4c7efc61cde8a9053a48327846f6270e2cf4488f7ffd49ca24f680e2e3747fbdfdd988da2e39eb563d9b975326420bfe5e5e945f72134592cf1b5d98df157055cb3087c34e95302ecf27dbf872f4816a1df943036e7a85f" + }, + { /* i=8779 cDividendBits=2953 cDivisorBits=258 */ + "962d05c602ca7e00d2f1f7344a2007e5036aae19f8ff858b04b16c2922d01480f9044863a5cd54cd9776a075d916319d8f696c9474734bde163a9b64f92f5f30f5f918dde31c1e0e095b16f811712f582709271a4ac5ad61a124e29a29976a6dc0c76539adb6fe9f391216e45abd1516ae6386fb65131d27a00cccf7de3c76b1eed376b67384dc8d7dbd2548cd62b39ff64d7b3f186c601f76f2af7c668c3e16cfd4cf754fac8dda5e3f96caefe6a618179f52f8fdc9b9b45f867be811d43bd96d3a19c6b358bcb4e1f3afff1425264e6cb587d8cd100a7a7043eb0878dbee95e5f10984e095bb1c2a16c0f7a57bacec9ddaac8ee756dfa437255b1e2e17fe13b05f9f1c04b595b470e4746c84a160ec19c20ee43f8ccfd1466e241ffc78bb812c8f49d00a82d277355eea65c135cda39cf6e15a6c8817b8550f6f6fd3cb582edd9400603d5ceb9e79e42ff26d024ae9cf80d16f98417683797226dec14f0000cc3e26816efd336e37389663fdf42fd0cd", + "0163b65e12c06518a1660be5b95ef9d920773c82c12fd47e77826dd6bb413bb4d5", + "6c1436947539a99f4d206071f8bdb6db7019be26ab3313b49e3ffc427a7d09af14212f093c615c2a74cc069fbfc72881f639828d92e8d12007499cefcf2f35ce5d22e57fa4a3284d26ba270f19392b906ac77f286750269fc6e43073f44fa332f2ea30cf359811c2b3b7c083f9d255c280350e9f6ac0dc38573d07f8e9650d8fc711e9582839d697d92eff4257f6555707b043ab6bf4578c731428550df18cf62fdce82a732b5a9348d72ad1c522bb4fc89013e5003018a7ee11d7d2297d9ff2ba85e262852377b89d4ae912910654dded4b9eeb4929383c502802799f7434b6860fef866afc317ed7e2ff67a343f0e83411111b84fecffabaa6d5f2880db5f940143e9d44ccd58b71c75e6ead600d027f804622b2ce6fe5912d4d28d36144cb4e18ade0c73ddcda415cb9e51e01fb588a5ef057fabe0e7ef245d57944483e396b8cdb5ae681e5e55bd6edfc772c913595", + "57468d03db3956d8427202009cf0025cd2582c0c3764101f31f9b396975a77d4" + }, + { /* i=8780 cDividendBits=3444 cDivisorBits=2329 */ + "056fcefd30e66f6d13444f057f23abc32ebc01255e5b83b1322f66a0f517e45a4b8febf7b1ff9ae0693f59826e8fa9bcc39fde2901397866007eefb4c5faef4ec4c0c3cc87390771a6a0765f4df1101a8176cd207e678b524a1d26db790fe7c330d34d72da3e4aff0b363111d25700d0b18e74300ed376e1d5e8443f51a459db970a7744917c4e34e4975c49a6bf6de1d469d27ba2d966b091200617fe308f1efcd49ac92760837a1602f362ef48910d14eabca20581bfe803e070cf8d1b81ed4ed8c027c3830d1152ddd2290c88762e93c107fc32bdc604273f8876ed8c068bb1bd55297d66d7a4f609f5b1f26c55401ce0a3ba361f1acaaf57fc5006c3f5711c472316d1d576353b8e505625906707790bbb5d16b1c15068ac47b51063ddbf79397213f03b38a07775ae73917d0cb8410a8bb11791de58f43380b2da3a973124f460b6917f80fd3c39bb61d04974ac27547249005abefd75c1e81adce81111feaf06438d4a124b07eeab5692fb598cace4a7da6d01cfdc6e3725839b43dbde0ec94a73e5a7699d82ab84484361dd1405398fb3e02834c42a6bed667489ad0861ef3b7c79b9883a853dab69683f56", + "016529f2ed4ee46de913584e398799765c7f4b2bd8490db9cf81d2c82f375427df46ea4272d760ebe0942866643b0041704a93e311fe4aa47747795a659571ddf42bfe4f5cca4f3c3bfd0b1497ad77464ff8ec1f4044f7f606d9dd13d94d9db3645147c849b97eb8f7a45bd4a1dd34622ad571b725304afa5548b217d4283ff17a540dd556cbf831cf9b1792a7439c2d4d60e9a0ad68e1ea505d25eafbea52493a40b76da593dcc9e5226bd155d66bdd1d581d644d546052c40ae866f9b7a4f7bdc6f587011a71df4ec8e01feba190de88fb002f1662daed03f95b0e7471ca217354921649ace66151c2ec400c490e166ea7ae1af542a38bc5426740d0626850a99bb9a85ea42fe28c91fb578720b21dc513334be4b238e51cdf7a304aae63d4c18accd2", + "03e596f6395f966ef4e08341dac9079e545ce2a0bba59638150ee653178d74f37929ab9f458e7e98a430cd58acf5c85c84760d5411e1fa705f4eaeb8cc13f375b5fe56675adf3687692c134b09156fc7431ea8e3149087e9d22c1e7d49af2b4d4b0597e00a7331a15079dd2eab09fe3d7739b848097bbd5826a2d58fad7f87bcd213e04b16a745ee90eafefa", + "41029db965572489c7b9b4021037b0f9e7c9d47f33840522c783745d5f5134e94871484cda030f98db661686cbb8552242637256c2ad771c90bc85adef134248653f40df253e9f5720e1265dc36abbfb427c073b851b92b04ed42d4e4e45f13dc72ac5729b87909994a8c3f870aa89cd08b0fd35d2d395d2250f0e32326ea2f51015dcc6bb08a4344f82cd1fb4eb4055d94f6d84440ca3dc8dbb9a96d5dc5193a3a8433145c4f211939f8a73b8b7369223c1fab8da24494cf823928c757481b14849e7e24957dcbdb7a694a4726a5d0e4b6919c0225532b9af3e5e0dbac0ceed8faf565fc98e4df6ca587700d6ca77dcc6e7695e8a63065606059bbbeec2d4343c577f755b5e0afc87306da647573baeb40d75ca7bd8413eed08155696a68d58afde42" + }, + { /* i=8781 cDividendBits=3979 cDivisorBits=2996 */ + "0141eb2dbe173a10ac41e8421e0a97066b71589c71183c18f2550ee1e612bf57e553ff180628eb9776682e3855bd0e1bc3f1ecfd0832de349ff5f69ad5bed3c365645559aafc7779a2316a6b1aa973d7eefbf6691f1da7970f8a76c06f603fb3ca042dea11294dc2a7d54ec540f021c20bea281c472f7801889149fa0bcd931255188aece21451a7844d7571739788c9c9bc408cb0497c55bc55bc3d48e3a64304b7f818cd3d3afdccd58937a65f72c4a762c956d94843dd57ed78556ec897334060ce912b1bc793d5916eb6d120fa48a2fd3e23aa782757d5351e687759daa6e471cd32759e1d170f3da44f71a5d476aabf993fd89956f6abbdf318b5ec03d77e8de23d6f259e843ec0dba17baf93c61448ecd3a671c04dd1651e9a5c507b1d124955d0dc2b9002018a4966af795886b45b7ec58d3c04bfde3e1177963ae1e367d33ea9d140b0a49810e2afe604f6123e158b75e24cdab875e3e76236ec9d9b681f4a2ee2f2beff8c087342b9c70461d2e9dc102b8e025df04610c60bb701521fbd9f707db83f83939801a1b24ce33964b929bf34d25a428439c1e498014187b063a793f2751124f1d584c14cc0ae9d60859c4446ace250b1e5d392bfb085249dd4f61a3aa3da258974ae435dff53bf1baf119ca19e74f108fc9739a0462cd4f904cec0efe27c1a420ca057ff638487186f", + "01a2cea15265bb67fbbf6ff04f3c7bd649e3a07c3b1e90ba14ca8e882e167b7cdf0e36bab3df17e462e3ad815797e41fb01d4602624da3857006fd91250b3f9688f660fc4d409afcc8c4f6b0c51aa929c69d55b13af23d5d259b021deece8cbac6e48632f76cb0cb08d980c66006841aa9807ce2d4d5ad3a884f51b67160c8435a5cdd0461ed7c6d58590477d7fdb51ff4777cb92e6599b1f6915a464f2c8fdd32efb41564bc5959bc6dded18440c80a87a9efe3f72ce0508284fd3bbdd71300a053107cdd73ac9793eed4c04d72aff09764b42ef706788cf31cacbbccbc70e43908b3cc547ee3a9f76540f0629bca6ce50ca0660aa3a1055f8541e7debd07b2b5ad6251b024d72d4929e4bbd331d6cde4e9160296268fdec68034254f6d73a9945040cf83fd6f8a02636c91d438ef59ce36017d7416a41d29f6e5078212754a9e7005e13f7d439e6e5712826700c1ceda77273c4b440ff9c3ee9b69ab9c46cbb2a02826a89a84b29c08b335885dea7341dbcb67f22772", + "c4c6a54b37aee73d8c9cd42ee058d8291400cdd48d8195fcddf7f0f78a7c7d49cbf38ef6c6d66aed03820f8fce75eee03f31f830f6e892da14c65a0b80204cbff1048bcdc534f7963ec356fed3888f1053798caff7ce020d9eb8a27f3091b9774f7c9a56bd47332cf2c9fc27709ae7a215b37681b7f0523d347482", + "b03aef215ac445a67a49c6f8ecced7d1c067907969d2c86e233d457062b518a7ab2c168169bed8c52609f59a97b86faffd8efeca7ac4abc89c55e39538db02bec4f6b5866732cd6707eff2ea5be3d6caa208736bfa6dabf12f982636de9221cc877b0aa62b8ec918e8bfb7b900bb37d654e4bfd840f9e02593fbf384e1b75ec16233a74f1a8c7fe07b846cb93cbc45b6c2295079d943b0cbf383aa171158d707ffe193f4c8487a748d9d6d15776b97f191044b889674ecfbba57656fb487260dc36321c39caa684e175bc915342ada6c8ea0af2d97361503c42fd1426af03e1ac95dc5ddee1c1754ed775bbc02b58659255aecc2e92d77095aacbc4c9e6623b848486764a030daf002c866620a91d112d8ae6228574128070b75ae2ad0b2e581c148f42ee904d6ff28f20d0a58468677bce75488ca8b62faa44851abba9eeeba4ddf5fd34f91f9c6afb76b49bbc0c653c0f5f2a7aaa59824fafad6b8d44975b23557ee316425a767046daeb9e8e32f2ee3e4d487688b" + }, + { /* i=8782 cDividendBits=2344 cDivisorBits=1725 */ + "d403f3804e19d8f860f3394d3df403d408a3cc893f86c76ccc54aa660ba2257e7f4c40cab54802d275676e9262dd0b73f559013b785966f9497bf8f2ab99daa1e9c05a5e60b41528dbb840cbc8379768df31790b129db1c5fa0fb7a3c9844f0d59c38b77c08d0cd5040247249ff6b31b95fc4cd1ee46fa6e83606e2fff1158752417cb7896c79d3d70d3965bf89d5bef4781d9ecda000b6b8dc706e845cbc3f799ff1cac9eef95cc392f805f5c9fda2a70a39072101b0c188450d37bf12a6158f624e4feaebe00cb037cfe7f440d6fc018633bb83af898c30bee80a3d6daf0c27df6f2f9668c89ae68e72c0f737697f7f0d495e0080f8061837d736612aa0c09a15f2040cae88c6f4c3248e410a024cedfcaadc5ecc48e3d0cba7a44efaf98bd762162362d", + "101ec9fd5d44e1c0e2b0d3748bd556aba21fdd9863cac232a3e4aafc36473c7bdb1d6beffe0b736f4ce869f301e6b6bf0ec60497c321758e5db92ee2c826d5867b08a6fade20130e3594104d49d5100371deac64852ca2904d3034c5cf8808aeec95297498e2ed30b4adfb5c071bb82844fba9178074f634a940b3fd38edd8795eca829408251c9ab66390ae52df47006f43f81580b3e197117c85c76b627ece7a38940e8a2a25a0f563ed4f4f8051418191443fcaf3c9ba928299672731e4a4bb6fb0c121c7e22faf675756d21d2a056fd5ea22419116f1", + "0d26f02c4454b54ad082ff12d4553f34d1fa3893c4cabfe1d6ad8a265a7883c5108f89ef519e34a7b281f18b3c7fee606e240b5c6070d1e2cd078c6f2b9614ba6fd06926eac2104ba0c280204b88", + "0a2fcdf00f91d4b255be6eabc398a702ee39fb592a320c26aa1672ecb290549431bf47b6c33724c2d9179f0a34ab716970617d3c6fedf4e71b7477d7f8fd587a05668bb683fc50db7cc0c9ba0c244f498dcec7aee31a927b2b078797465b91f6df2348a5eb1b2562451c4135b01b50883edf107fdad5056bb01e0df175435fe3c3d5d39cb2ae39a38d787a0ca36c37997e32f84ba561bdadc4dba852ff81f2574914976201f2a374cf9837b47c137a552f00b06e224c62400803c33d2fa449ecebed9ba15a3514851c2e0fbdd8ce9ff70e6691d06c756b25" + }, + { /* i=8783 cDividendBits=2789 cDivisorBits=503 */ + "095663bdf7f4d499eec4cabe0fe5d5adede055015934e5964330ec76d6a9487fdd8acef5dad5507ac666ed2ef61713771fa8ca2efd5187b807ec0dbd0665c45fa1ef86d17032e6600412f3c591807a657500b754ae5df7d14487c6cff9c747f7ace0650393c46e68181dce4a9bb3037fcba7c8d3309ca90fe08b035b4dfa01dbc9471084cddaa21aa8e5e93ef710828bcfa3c92622845f02db9f27d1fc1b3181684ed2eff204cdcacd8d6de0b8794a3642b8922ff6051fe1bb59841e51535b62b4dc3a1f3d4153645cb8ad13865330bc28b90cb54d921c23a1c2bc0f67b46c22f39974ffd216b96ad26455f768f829a9468b15fd939d716e4e655486fa84ff86e93aff8cf3b4b037a8376eb76e6be072d4b0a541aeb1a87b09cf0c99086d8698a2c32e639b0ad1326e7c3e72e9817e465d37b64c3a9c133c911336e28e6ba25fc4537a63b248eb80855fdc0e20e503c60dfc9b87821ec534478fc0a66c", + "55f30d91d0662530872b9a2b8fa821e5c216c09837c57c1363bdc4fc895e6abbf9da02b354c47f3b5db3bda99c45e53dd84316751903a0f61d0a9ff1757e47", + "1bcfc3ecbaaae454940693fba93f94e6f87e5bd5e2b235c0d5249193716a4c93e1e0249d0142cab7136eaff51085c2372a2337786a6af57f69c4cefdcf6bdc6276d15a9f9c3d0800c5c3e7f53fbf7d368da6c858ccc9440b6da4248f401809c25f0b0096743e43e7bb6bb029e68790d0fe34d27f62492e35ab175c34a82e85805d0b5cb85e29d45f3862883aef9380d392ab751bfde00f93bc61626d1b95eca861104cce5137e04d5efdf3f07fc4704c9fc153989676369af68d38dd813f3a01570de04d5a8ecd140c7459df98adb4f093b2a55d341484ace8bde256e16aa8860d5605ca6e9de8cac3003d54e992d2572d816900fe81bceef09fc69b98d080adccb591ada8c171aed0bfeb2c2abdd2528ef3a2844555eec93ae83d1fc0ba", + "192a81deb8391861f8740f132cac68f5c1b8510e0e12d0570036b5bbec49d349161a03133dc2f50c16baaf2643f73eb62e50a2d021b40c86f6c450cc14a6d6" + }, + { /* i=8784 cDividendBits=64 cDivisorBits=10 */ + "f8c46ca57a1971fe", + "0298", + "5fe907f5c634fd", + "01c6" + }, + { /* i=8785 cDividendBits=3762 cDivisorBits=450 */ + "02620afa159a65559b01c8e62b7c137076171ca767a46f2d8c796f8a313030c8d6d9e025bc04faadb98680e0e0c214161bb63dd1e2a9e737ae569f19d58ed347bf67c6f63e94afb23a6ccd444afd383731f3c1c4811cf363a07d6a223f65c0d0c919d35aead51a5854b657aa72979b3871a01f62ff61d86bdef8e43a832fd8e667d60b87f1f8186ed9fbc138ae3548c2a4a95165d27b00f7ba66f87b13c8c1e47b998f9f520747dd30fb3aa21cfe6e19ddbf9933d9d50e6c5240d7319405c64a9b6b7e08bf1e0367d66aa4b75ebe7752681a69b881fbee9929548a9fe15fbd10484fd01c0be900bae062a1974ee334fcc392fc5fe6b9033dc68e3a2bab0cd3fc9fbd97865ae12310b51306a1d96635cd0b3d67c8ea322125e1c33a83fe7b963de85cf6642c2d8c7fa83cdeeb6ec6eee3c674d6babb9086a132fb7b8f21f6dbf291cb786d54466d91601692c82287ea425532ba3a17a836a9538e904b986fe923aad94005085c67798cc1ef5da9d5bf259cf085e7847e1809ab27567ff6239c4da4a849a5e1b0247d973605483775540e1b5e114b941973c9e4a4225144c2e98d2ff580d4e5bbfa47158f489ba280561fd1751febcb4064c4366d21b8aa4ad2da60dbc0038be371dc8e9aef1ee3a306a9177b29388bd417", + "03f7566b9f92bd20a203bf0d430d46ad37a60b9d7daee3c302d6092538ba8c1fed307cc507377893f7707f520773abb42df68023995e0c8378", + "99cfd70a3e8137be8e569baa284d517f00939460439a4aabcea0c71df101bc247e3c62b49ec7f8cc8311cd412267fe6ba7325c40f52d7c0d979bd98cd148c87eb71e8e813dea3693d90a6755c75d971ba2541998e5ff6b1e07b54d38524f96032b5b41df8514d6de3fe31a08792d302591d7657635ce7a11a7af116a8dd8f380432d4b7e54cb74bce28ab4338294545c4831655ee7b912568a586ddd2857e6533a72487886482ef834925a62241fae28f95c40308493fe6207887f9f9b913904b06f1062fb33c1e5a5db5e0d69d09924531456a05b4e6cb85fa04366518f0af281739d871feca79676bf87ba8203ca47d85e16d871d1fd88455e717532e87b63e68f6b3dfd2011e3fdd7b7cd9aebfd5b093d95b7b66c6a72c565028d1c8be6096c91f3de2ad1e26ac5128e9381ccb1c96ebe6d70de59049da313b83932a4e6cab7f28e74b9b925195d899d74a1cc0ecfc7eb6fe2219c626ca5bed5e0700fa31bd2beb3393b351ff523c103f2ecdf213e6789a7c846db89ddda546b2aef0aba4d9e28ca7a8c9d3257da5a0e34d696203f49ed6034867ee2e2148f6c320304", + "03010ad62b768bd330a9223979d6292727bff7706195c2d503822e773ec56f142b0569484d826f4848a571b4c7a5fe9e2f23d7aab94d5f5e37" + }, + { /* i=8786 cDividendBits=1649 cDivisorBits=594 */ + "0107798bb3653cc744bec38c6b08fdb33b6553cb681568997650de1d4938238e2d94f9bb129c295e9214536f34d1c3d1e39d004449dcfa41542bc4c80b302df6291ba191471f89f8fdfb90e638294d3ab65b76d956524b0db5c80c72a73049ed9646fcd2853b76b4438758e034dec6e7f6db4b903213efaabaddd9f425d876690c246478b1a42a0da71990c8b7cda37d3821291ba512169cf34c06f035f9e945e5814b457fd3e766531eb823b9ec23b0f9b37e6ae0c97f1f3f36107f58ff7f0a7db4dedf438a55080826d19da9f572", + "bf61aa4cd19f444478b35216fca0ce74c540b27b9bc0eede3456c3d3a719f2a3485908014bab5161f7d2ffc4b9a4cb159bd43c7946445914e32139fcabcf13d128c2fee14523cfa00ac6", + "01606f5de3ffcc4107018c76eeaf889294b34931ef37f61112a94fb6101ef39232fee1072d2ed7ab6805fe63d72bb4d18b4fd9f766e7e0c4da0e3802496e7f8524791ffe2e136f86e52057e0a9030fa1d0365154017bbcaad7d7e113a81f771393dd477e2587f50664f7c64f44cbf26d2332544808079fb4ef8c9915918ddb733353c714ac", + "18921e5fa97ae34247801a73b15fda2abac5322c6941db0bf0b80a02a1241aefe762b169e058bc3479e285d881da77fbf0c5107725613cc6b4e33f8e0e8b0489c87b4d0486310b61406a" + }, + { /* i=8787 cDividendBits=1534 cDivisorBits=620 */ + "1afc9fa4b9e5530d099c94b246c6c9562cd53337cde0d73d68b6214d699c6c38e8fec1ea3309188d1172b5ffe6e25a708e5e838910aff283bdd337179fc233ccf2bd3bb7908f0bb75c11586daa156f0d7fb73098072623b329e8c15073b90531d53c8504b28c72264d9282f220bfb88853be6334fbc3c9f0e287efb72c7b2b332796e62ec32e02eded3ed4188256bf7e36a336b69e5fff4c990b60334d6be715b3e61bf8ea75bd1b23d6a210efa21e1d8ff4526b275449f1b95f0b1483ae25bf", + "08a470c9e4ffc2c436abfb1f9a3a57e1ba9eb3c98676f588e1f4f6b8483dc546f2c1031d7375c79b6d374425c01642004745187cec3f38139e22226024a07c8a0d5d22a6214cc703e6ed21fa6a91", + "031f6464442e6024f0a0d958a550283cc8ce3aed55d765401e0cc7d3445422a6ecfd20b16bcbb158828ef9b4a8a3ba04b71a20cca2cf94aecb2c1b055f00b69632a5a388470e0ba80ff5cae1616b6fb0f9f5e3da93754ea3823a68730c3e4eb010b8eef2d6fd09b2d15a12db03a57451e4d95d", + "32a84021ef5e144b4fec0d724dba805a86a92cfc8cc9abcdd8b981d1942a560e56dfa144e160a64ef6fcaf061049ceff187b3967a80a8309d6eacd273079a857ce497f0f2b5467e7af1d3c8612" + }, + { /* i=8788 cDividendBits=1436 cDivisorBits=583 */ + "0c1417527388ee8c1debe5f51a2873e4290f52b0314268bef1cef78e706b0671aa5bab97c192c964d8c4b2aef0e16b47eb1ca6fedcf87614ba8a1abe7e2cbad7786ce4ec5f2daa381fe601f1a90300a4198ca4cef1a008d228101fe392c0987020f4d820ff4e66915a45027652d6395c25c3d68b98d09f4cd59914e31cbe1c04240e1af45bc0b76b9a056ee6be44a3b2c1adc3c6d35f77fe356f683cd1bc835202b9c5f013d3f9e117658480bf55fd7ab88cd592", + "636dd23b47c07488e9e3473d8d29f5b02975e47505ad01086d636435a480a3e1792e0a38cd610332a9436aa6f0a65d6c4667c964eb5d1fac027eb16e1320b09706e2cf612e23a5f798", + "1f19366d9f81bf6f87ef94165b4237ca0d0ec499c99a0dae6a1a934b80e885419b4a55bf16c7297bdc8935768cccb848559665ee00eb80bd144ef0862b7a452feb9f93d3d5b8c4448bd2ae9b5fcdbdb48c1c111ea5c04013c9a43d2cd8038a989e994a1e858fe1863a1d4a", + "049250a79895515639c1421b21485decc8cdbd42556e89976c09af136df26d04a346f62211c70041ab1a1036554ef56ce614361c2fed494b32b09cf7b02d7f93530a20344ef5170ba2" + }, + { /* i=8789 cDividendBits=4039 cDivisorBits=234 */ + "245d5d3ab2b5475d317f9e5787fbc007012dd021a8b3c6366b3583d7c345880edaa374ea1f7204a615280a3ea87ac036c20c1ad09c6e1e4142b2a5210a450684bd2234d7880331251274cdccdc121f5acf4cdf132e79ae7e8b70c0aaab28edfa57157be735c9e1a25013232e3eaff20f368faa7ea99ba0298d0f04902ce9ba2e15dc5e7b861748c5b8f37b74268b6ce1b2d95b5aa0e35cb99def05b2c8fb1b29e802a7fd03b3d71229f58a46a81b0687321343e5b0f9d36c0bce704607023eb25f56611aede116cb5d4b7fe22b296f873e7bb6c6ce109cf1edb19dd44f14b32b82791fe8091f6425517527fc596202121afe381803c2387acc2d371eb7b3ef2376f9c7e5fbd5e665313b34e82f16d0766e10f0577ca09c9af5fa8320e834b1f24526a6cfbc6231713341a44c48d116debb53e24a112163348314f24546193cd69c5a4b4291e9671d85f2c84d45e9b7def7701eaae59894268b6a41ed06e73780d94d1c7a9c40d446d4f137553ba21b640c242026590ca36744ea387a4eb483aa4a465d7756b4dc2ff61bdeeac8112fea2f64680646a4db3136af8c05a787bfe49a90f064127c225ec935dbaeff04d892e3345cddd39f9a12ee76053470d70345575c310f492be9d4c2971a3f0538f9168d1c5abdcbea7f4b292f506d2cffd94da4f7e806cca81a703ab45c29b842fb41cb99d66c15b01182e3", + "0258a840d2c7001c7c76fd5e2e36685f373aa815b4c02cb1fc3a3daaaced", + "0f7fa6339b886bd18ccd3b6cbdecbc4aa80a8cbdef8197e0746b48d64b3a08519ddb682ada425bb77b5d6109995a37420615c872492eb7eb5ac413b0bfa61a697e538f1cd039f29e91c1b1b6b4fade9202cb959ce277e5f925b0fe3a6290da55ec87fdc841857f85f47a5c4f5e028936008e3599cef00bfc4facf211a438dad017ad2dbda631638305658bc351f5c1557bde290b0b08ca9b876875c4f3637d60fbaac731d35099175673ea1c3d1fe00fcd595a0439487ea7b84e46c516490bbb2d433703bc9c6e9621d9331919fbabb92e28b640faf9f6104e76d862faadc6443cddceae37485467304a3b338c4c6be0677eb621cacefed16d641e207fe3b6b6ab9bbf9a213db6b4d6d1b528d407d9533dd0349247c2ea039bd1db8fdcdd971af511e204ce06b3e878707f51a0de454187dcb60f728275c3d0ff3ae3557bd62570789adf02ce79c72632450540705bbddcaeba8f9164fd0cb38f3ab761dfe2b897de02009c4e6cf6393875dd5cdd847d3c2215a2acbaef713ebddc09c89982547f60a1259f002616300b035d4c2929ebdaf52e6beb051c425b27de96eae6edac5650138d65f3fd82e85450ee12f3e1569dbfb0618765368421a837a21f79c8e2381b8e8dc2d9f55888a2ea0a994f2f57ec78898db2f45b334897429e", + "01639331cb26fcf7d62a07ef2222799d694f57ea41c568e6a9b7f85aae9d" + }, + { /* i=8790 cDividendBits=1401 cDivisorBits=181 */ + "011123d3f5ae88d4c40eb6791db72c2117fa93177dab70d5f708ef6263fe497c4975360e2679c0656b6cab69bd040be98bd987eda8991b5c7a7885b223fc8369ca650645ba4861a4cf954ab71a871cff09b6a4f77dfc246148b191497b8d6119c9278995d374e7855ebf8aa84c52b9f44c5c93a29c3ba7f7cf331882893873e7ec19eb285615f245e50f1ea9031bcbcfdf09df5d759142bf2274b66d981ae2f60d25cbae6f65f4232c5ec5d77a57b6de", + "193d75511052e5fd325c82277f1c1c7211a65e2e77810a", + "0ad2598feda5439d7d78340b3e413e6252ceecd68b9df1605c9b6cc7255d1fc5f1d5714a60d5c6d3cf6fb6dd074d5f2c05f1238f527c9bb8f0d0f89afbcefe3eda2addf22099c00c41014dd454628c2749bac697905fe1bc0ed3f7ea7f08e1ad1f0bdb08859d351228eecf15394802e75b808c2358143dc528bbf93e2482564cf867f9c7e5d8dc89a83a29269c06f5b67d5b885787abcbe241", + "146adf1402c2bb47293c67827f7064921c44ad2d271f54" + }, + { /* i=8791 cDividendBits=1059 cDivisorBits=270 */ + "074582ba5fa3945b091dcc7ee8ca3a9a23d32693bea2224759c5b57651303d574c2af630cc6ec704d3b7e10702f7f06a2f636d8ce5f6090df654b7095c0de146460977d76960fb5926aa9787d2f0d42e4602ad778460f073f0ef845e8643e20d891e8d530657bc13c1e5a8e7a861af47d38c5019b65c9233751be73e5aca245528c99b173b", + "1b0bfe08b1f01186ef3d93d8a8caacfe29b468eb9f443dd1cec44bcace9acddf5df8", + "44d34f2f2ba89eddb51dda7fb95a2713557b8ee54c28f2dabb3d1513855259a05c7be1cfec11812529df6a8e4fe916b052be45618d976288b2760d8a8d6c7e28e75c7a6ea39a5a9faa493246fb862a7ce2e030b56f558d7f2838c421991f18766d556e", + "17432be40e7134eb851e00a086e865ca1b3a948d5be1122c5355150db39dd6d55eab" + }, + { /* i=8792 cDividendBits=2867 cDivisorBits=1537 */ + "029dd116a9307f26b861991607a77f2140b5cd2f88a9aed37dfbc6240d8c354c161979448f2d4ea6c859be41ce9189d8205dec5b6391a199d89a4d9e61911a61944f7539ed686bec3a04c0097fbdc11e00dd3463208d2e89186576a756cc3d77bfc9b8a21f9925e8e2ef5c2910cdb4c2c809fc2f58104fa46bbc2436327326685e23467093427c025237bb77b99188ccc6adc1b8463a0367b4136f98360c8aab6bb36fab6fdec1373da907c562a083322447c21221d72ec37d971632566c167717dd4e7164017ef7f017efc6a37c54bf9f931ee8834f1851ddda5c0b2c5cf9278f79b9d58a5a3be01fe1fe3c0eb62f30128a9e397a6def37a66b68bcf8f734b40b04448219da6d0a27b1acbffb1c41dae91a1e30d2b676b0791db5e6e82130a3b27e5958d85b4af1da9c020f1808d9424cf2e31a0d03d5f2a294b8291375ecf413b8b1ed864adca9fee624ac42b29ca4b3034d7fde9026b66f480c3a389b2dd0d48391565a08e6", + "014ca3649aa66507dfcb634941b4b1980595de1f9e58e62cb9d44298fe087cb8496b042c0d8bf8fc5bfb761d6bea4222c37e84d585712465e1aa023d65abf302e13c3c4fb75b266695e34e51e66b33aafccb4884804022a63d2ded4290d646b4b5ca850b63d899120b1a6e4610208e86dfb013e40938fb4edbcdb17310b95f5fd144263b2e951da9f6dde17d6e200382baaaf70ce6725acf1f52ee22239ff44e9e247f5829f8a68385620809e3e7304a4b3fc06784496f4b6757e60afe262b9b09", + "02037e837d682ffffd6d79c9abc08f64c5cb59e82a7b8a5b3a69a1856a79bb0bd709820ad826b54d40e893c6fe609d33720efde43ffb2df9509ac46411754dc4f0ec492ecd4f21d46e6d85e3a177606fbd039d750c3506cbcef7ea363ed41b4ed234f52cd5047b05f84e2096c49738a849e9727e5d8ca6a5ccb1d5dfa37e9c7fb4cba230d956e21fb58a8a85b810ce2bbd0c38fa4c4387b811336b08a27136a208b7f3dd0a3039", + "01323d1bad0fc00dc1786b73f24eae6a3924fb4a0d77c80268fdaafbb7c43b663a3354e83cf2d7b50be36b0cb480a0869bb306bc7b049ab67aca4def3c85c4df5aaa8fb77b1b13c03d40256d67e800141b5019c83688538f69c7ebc8871154bb3725207bc13a1fcb438f91efbdee4064ef242c55d28e13c370dab46c5acf01e022641ab3922812262bc0c4313c12ff8944160955e42df4e3737d242cb782bf145b8000b8e6924b1ea8b8b3465a382d39e2cb1e19a61bbdd750562baebcd638d3e5" + }, + { /* i=8793 cDividendBits=1507 cDivisorBits=1506 */ + "021a03f2cd56fab9a8f34bdd9b3b933e54c8230a3b26fd79e43badd5b415d86d6f5fab0d338aea886b5ede2d3bd286247904d6b08b2f9e378c97b9a76a21de7fea5265b6ed0ce671841ec8f0531bd319708719b33c6b76a7827b9c9ddd98d2efb2de2a31e3bd1c7c6a4ee37a9d4a2119152ac7668d95c3548b4bb71a13428ef544d117182a3bd395d0e3ffcdb5290e2112257e15eee0228badba4eeb6e6350a4fed9a7fe2f7845421fb2bb02d58483ec68b159af767a1bcfd4a185f19d", + "03458ade49b67ddaaa6782e4c581811fef98e3f941f2823ed163f1c1597715a49bc1a6297d211179a428983c59c07bee2969415ec7ba5b1e096a3664c5fa078eeeb3de3cd4cb6fd8a450ae03ce73d6fca374ba1d14206c87ddf0f01e790b8c6f037773d1e6558905b0d2666ede3fc742d69438d243afde7f4b2653a0baa9efb86e273500cde50bf2b18e762dd61b034560ceed1c23c7089bc6eef7147315cda88c3471f7fdf0e807cd9e720aa679d64ef45792ebf0b820ade053b02a51", + "00", + "021a03f2cd56fab9a8f34bdd9b3b933e54c8230a3b26fd79e43badd5b415d86d6f5fab0d338aea886b5ede2d3bd286247904d6b08b2f9e378c97b9a76a21de7fea5265b6ed0ce671841ec8f0531bd319708719b33c6b76a7827b9c9ddd98d2efb2de2a31e3bd1c7c6a4ee37a9d4a2119152ac7668d95c3548b4bb71a13428ef544d117182a3bd395d0e3ffcdb5290e2112257e15eee0228badba4eeb6e6350a4fed9a7fe2f7845421fb2bb02d58483ec68b159af767a1bcfd4a185f19d" + }, + { /* i=8794 cDividendBits=3614 cDivisorBits=3055 */ + "2a042aa83602aa7c66f9ba57734e11cc8be53d93503e2e58225175a014514781f9226690377ffa503d9a4178470f188612eaaeba025762e3405b8abae211405e317310dc9003a2d7fc600afcf6db90d17d34ef591da0bb9239a3ce5efea700204209d24fe23466694a5de7e9e10256907a3959081a9d25e8849e8896660bba10c1dd17a2813fece49c983158a25f69922062d63d2d33f96325ab726bea1d3e095e7ba540724ffceaa50ee383e39542a1c0f6cec7bc515cde87bece8ef00e27a3da759cac702d0bdb519dc6dc6400c9656bd5de16b45d92589343d0ad1b0032a988731ec0c9136b440cf0e07ff5de8336a1a1a3326c2d5262357308da08ebb01be737a2f5bed55294ada1257ae426a95f3f0308fae5e30faac586dbc5d6d5b13409b97084aadc978f5208b9cc9ae2dc897f3ac368ba504a0d873e26a2d3f5a571c7319d7d3d885d79ca2fce6da0bcc95db52ca4d8a7b003d21b37ec602e9fbbd6adb273f555d695b676ce950fe6dc09ca6c9d2647a1ced7776079000f436f40c0497a0b778fc1abfc929af5b90ae639d6ea7b1607dde3fa7b91d8327f3f616e4f58298a6fd43ceab78fd115cf1eb7fe93142a51f6c9f0fede18338875d49290be321eef8c", + "24b419e77a8eec7b9661d691a5ed0fa4df95109100aa1787120e74158ef3b3fca06b684cdd4319f5eab8da182c43f6aa08845a13bf3a4342312961cba736163fa7e7d91cc7f041774a52c1c8882e5ee1ebd2a949cca89fad8e0f114ca6e6f2fc0985d84a20e006f7b4e9d290560337ff54350a59cd75bfcedc627446e6bcdb547dbdf63243ad72039c137d35484b919738a05b6dfbbb26d924db4741f0bcb1b3ad9a3e00f38e76458e0f0cdee58580355f956a31f9e16e1d574d184d24ead37f29daaa46ae3ef11f8a8d45b7a2aa37185f9e90f5165819fbf6213f4bc57cff808e9e29b99cd9db4154d8311e3473d4d17e04957bff6461345f8c0d3f9d9e27a1285f77bc7cf030c18ff10b6ff48cd825a5217a196a48843e5c94732c213c260b456d4381fcf49a808add02c89e0ae4f8995aa6f07d3819184708367faeb2df554654f9055c820a3388ed03201d9563437a900853d5a419057832c354c2b4db8b22374d73df63a5ef81cb4f13abc2be781660752a8c848e435a4bf0ed5631", + "01250e31efd8147330dbbc664dcb1d5b7ee3ee234c91606bf14a9b36cf94f543f6592792129c245405eb5934c9a72a7a59a9c4532790e0b99c220a7864f5a559726fb068e9c073", + "0c0b788611e04c15bd12e2a371e8a33f73a7256c0973311c5b48cbd36f2e26d36b6e04263c2127489ac2a56aa1a567debee7574e171bb9979eea2fbd22618f266716501abdc676841387adb8b2e771634f1b16f9cf65159b6d4337b2f5db97a84799df9a3ca069d59dfdf4c0a0f257c8eec693fc2e374d5b0d4de20489bc73a2ae03cb7feea7c6fc53e2cd2592bfe8eecbb1ce71daaed37cbdf445e68e01bcd27035018003726defb48cd2ca5650f3c22eae54fb2faf8017122019ec5bbe69625f813190f8a4f26d60eb2b6bdcbca64d5a80eea0ed46703f326c9643fb5bc63b8102d7c7b1dd3fde476c6d029083da2d7b737530dbc3885aea37fe36172ebfcdeac0fddd55829a17eb940c135ce154c5ccef645527fed4c2559f723274ff6ee258a460e8d2456a1a30a3c04d23138eab59d85e77ae0d05b592c1bd318bdee0d48a5b0b17dde0dcdb7188bff55676f08cac74b896b07dc00d13026442b9f4ab0bfd73f7005cf8a44c86c7d7f04b591026b61a1f9fe552693cd8379c437789" + }, + { /* i=8795 cDividendBits=2202 cDivisorBits=2177 */ + "01ed01cd08942f7976a47b19b1838bfb1bf90384cffab575fef8967453832ef29413d620c436777a47934c41b618167849b6131bd4f8a38c4602fb8001bcbcbec544de2797db2cbb40f14aec332f83578546636853b9132541b987c7292eb0493e4bd4dee3a192e04a7b85ef337edc36404d1f4e9e630bfd1f0184d9ebeb17e4aedc4a6029643277bb7f78c66e9ef9f5ea1b9b25cd89ddda73a0708814fa92b70ec29d3b7da42512415a3326467914a4b02731cd2dde8a3fc2fe6ac562842f5255cfdc784e70665e81bc1af3dede95ca812804a6470a6b22782be86fdf1b81e150857d19380b03aca4c4fe7f53b38287a239f6a1e7ac65614f5709cd656302a21f6667152a6d4ef9dcf34c41326e9fc2531bc082", + "55e0562191ad9176cbf6e6262618c2b313415a568af681e40946db9a40062b74e8f0d2c26bc9453679e81be8d847e59b28e7e41fc322843ec5d417fff452d3e1532c0b88538a2de75ad038a3df978bdc95c3fb78d59f19d25e0c820fb521b05b69071c3a2bd5b73ba7b5f0d76777265f6c3715c228aced1773d6e4c0ef9dba999d0d1c60da6f78c6a41cdf1ec5c83a59e5e97eec79ad5ad514fc7661cf9892c89e5959249118a1c0f93a69bec0ddf81e4959f60caa63d88d582ce31013eb6e57b65146c9761b8338cf7a5e46b4decfb0bb64d75e97f1898be749895b41923d0e24d01a5cfabfd871beb15da8a9af333019782232c392bc6af13dfd12e27a2a9a93001bd2a72541e5dd8d009cffdbf993", + "05bdab65", + "0ee8d6f0564f5536a476a7664c9116fe2d3ed9f7296ac9b031bd1eebd4c0eb7e9ac6f0d42656116d6bbf769263a01de9c1d7ae9b5ed9ae89914a4d4639157ff52e7f303b962f882744d9abb8834877bd500b53d0878f252f5f3c7fc84aaa83d9ba2b0b48cc7403587cca3e66a619464845fb5ceb10d5981a0636fba00682dba1997ddcb10bfc691c129c76be4d463c3dcdac9d856dd5d8bedb0849f2f4500b9acf03f2615e405759223237d58e0d29a23f58427e34e09788a9e08eb409e78cb1e40c2b1e8b3bd1c44ae246868761b51822975e4fe731ffc64fb117eb68e1b5c668c9a2a28ccd5f782d54334bede77d485f22bdb3f0ecf3c29a84f5e0b1c0d04871037e6ce4336f77157c51a251161883" + }, + { /* i=8796 cDividendBits=950 cDivisorBits=358 */ + "3537aa8a118758c75bf6044e3a32388b079d92d931e5f077a553499bd3bba5a2020d1ad7737206008ed86f76dd09d23c37d47df555445752414c5812f619e6521b2f70308259712245d38b2526fabe00b2dc93676e8c6b5d6ca52afd8551cabcdb9ce9d3645728f2988feab3154cafef522b6c082686e4", + "281e16d8e275e153240e61a65ef6c094884116e15286e2c58c84d2e52c4baf32abbfb5e5b194f8273f52b61b95", + "01539802acb5b5a90d053a5233e7f50cb76665fa67998d80ef506cc539584c83378c8955ef1650cf10a16cd67fc1525c215d0040adc4c6d8f56ccd8e1ca753a65eeb2af7ffdfb02cef497e", + "27d7928e0a6fc7fe1aa5a8e36adcc7dd559f7bcca6244d8dda38d1e22689e7d123411557589803857a088c768e" + }, + { /* i=8797 cDividendBits=875 cDivisorBits=61 */ + "062b2db35760591b0e9e9f0f60fe0f021b26448121767cc32ad6e11fb582749b4e12828acd1381ed1133134ca16bf21e7b6359f15b245fb24f69a1c7a1896c621d2385b3d44754cb0c62b29b45f05da6af16e557d9a30c3ce461a9bc0db77d5443af9512e1b4459ab74c515457cf", + "15e19e7def229bc8", + "482b8f0edf681ad54428e94fdee2da8d70e79a99db3a04b1bfdbe32ce299bba792ffc6da4dab124fbd9b086ba5737e98ca47e1ad7156ee946937362691af267ca1c45457e0662a3aada9fe2bf540719d5203dc114abf8f717cb48cb30496c3f60725bff17771", + "05eb49d5cd5b9c87" + }, + { /* i=8798 cDividendBits=3772 cDivisorBits=2797 */ + "0d1dbe329be1f72b9e7183f16a5aaddfe14c1271f92c6140c48ebc390fc700ebb53ccc5be10a37d83bd84360ea060e5641e8b290366c6f1c8287af8f50e98b74a3c535444390e9a7123a820b2ad0380fe94e4a1696e3100263a97d80ce06c1919536b365ebe85a1047043287a7177fd82e97334443e34588209454bb0725e870eee68acf6d4de1920ef878b8896f7177282ee9dde0600a962d10162754ad762e26b88f544157de726116d28a55500d408d6624e8b6b769a2efd28d517e00220ea7711be1c4e2d41eca8a385e5ea48cc1a71b8ffbecc883fe82e69497001fd2ecfbd725fdbdf2fd4c284398b79e877d7d7bd5b3e4d0781bd55aac24389b92663a308e3b4f30aa1b76712416905f4d1a21342c3f4f92f5b35339ef185e5094ab8bf48b0530081e77db9d2222cbc7ffa0c58a8572aaccabbac92b576687011eaf83590dd0065bd8a7129fb8d05a17b58e7d1bdb3bb1478a9e6ada62424acb50d4c803c9a984617be0d80b6719f7cf3e728b97c4162d6b9c13f495c283563c9c99de3b294c6db14f8975608aa5ba64bbc370b19750f018f539a2cbb0e3148695eba6a2697fde7b3eead6fa13d8526721c9b876b9717ecd640f1c3fe14a5f3585e72997053eab5a24b08a3e20c92812f84e9c5a07d18567fcaaa2", + "0ee956422aedfd8d4c97895e837d08c3cab50ba671dd04997ded7a49e5e1a6240015ac2cc8c98e07b2cbfadce45d96da7fba69789facae506e2461b096ebc42b11ae66db9e6103138d404c7be29d162f4f488b04279917128a852b70abf2119a0e468886b2baebaf378677c33cf32cd4e28e233eb4119c6a86c0dc0e6d142f0b483e78db7857c0227cdae19d0386010aa7f0031f67c73f7d28002a9eaadec3179bb55c2381fcab020607703515fb7e9eead8027d4530b11c89223a0deaa8cdb125fe4d27ec47d3951374c1e5e24092d4d8732bda8596d92dfb0c36feb885178879e1e0123dde2d617d020441565305bc462b9d836d3d5c0954f3589183fbcf4f15a45ffe552e89f6d67ebee33914fdbdb36dc9ea81c282df6d1a155ab9c4cc028a9364926fed7cd00175310aba868d479467916e3f99d30673a8620d69e06f4283b2b9112baf4b1ec786a1686abddd5568e2bb4df1af9ca181083ed6b644", + "e12db200d75a8c204a6b0878cfee51f56db9aee922b499645552eb496705e626cbc559971aa933eb16592ebcfc773f8b07dc01c409301cd19a300f7a235c3b695ad55863b50c544f0eb431aa79dacefdba495ef14b4678cb1aa71180a1c569eb6eed691ddc4b645c6ccd8d8ef2e2057120f3607f3f58ec64c5e3", + "04b577128c61eef5aa4e632bcc36cdfa8942bcde52bcf2ec8c54d18219e556d1c561d3f064824fa0a29e7e89b42993bc1b98fda8c49ece6d0589efba4f90b4c14d2e42001f3495e06f5cd60fb6bb8159468e6ba41e1324a86acac3f8c4973dcd2f8b4ace1ec0a7c86480f389163949ef08f2a6849f663ae43107586767b67ecef3292a17eb65353473c276d79603d6321bd8299e9b5564212b8f9c20400a0ebc046ab4cdd00d4acf8501ab756ac57e5ebfd7a359bf7b8e31f00265e056dfdb683aba458e64c7a8e4acb7c75e24ecf21e130815d7e541d4707ac5c19407025802d43aa629b9921ae0f956a2a3b0c22730bbcdbb8eb7d78be0258fcdca82c3004ff575a09aa0fba884329d8ffca3747ddd94806b1cb09bccf8df08ba2587c5f628407170ba7752921c4e32cc6dd0a0de120347c80d09adf8368d4b70ca27a10d2ef9706fca6750f90cc28d50899dc4f7731740bf58349bd0fb2f9492c6b856" + }, + { /* i=8799 cDividendBits=191 cDivisorBits=20 */ + "7d7d057a394eab2b66d9e219b1a09ef8fd3261416da425bb", + "094943", + "0d8371d8854ad3cc844a0462ed1fd4e1c4219b7578b8", + "011593" + }, + { /* i=8800 cDividendBits=3330 cDivisorBits=86 */ + "0293f8800ae7bcb5f206e988f9663ee43c015603c407274a777aed99b6e12302edd1149eb7b69c383fed47f26c17eed1f6600b47279afbb0217bebcadf325c6705a2dd307c76011a546f52961f878231663607696464b3ae78c77d8225a3011a98b9a226b8b3dfa6952f563f1ab4ce7c5bfe276db13519d213036a3cac3368d6e4b3d7ffc7fac483abbab03dcfa671d8b4ca6673311f46d05815c4ab8256f76550432dcbb69cf29d9d062ca922eaafaa42991cdef142506f41e905876de57fd52fc630ec6fc2e76db0344d794781666bf6645e96eb175420f04e2d8c26a6fd56b763944b03228232fd841cc0afbfa3d40feb2044fde7b4eaaccb508252dc0e6d8cc453b7dacb16bcb3c7ef7c6587f7d326c100c627b575662ba2434f67e5149f94c383e1671025e977a6bb1d53831bf21b10bdf6f55530bd76cb0405b4418ab822dc3b03bd0d8912f26c2b7761d44de900835ede5c9d4e7b5e68fe8a1c8060af3c3e34d4d5fd546de2703f8979e75c1dbfd984db810056e9e6e8ec11bd787bc86fa3f8a7991a08dc73f847ee974a9828301eebf91756f85bd655dd3a5a5df870f7", + "16008459e41f33f3f62b52", + "1dfef44663e653e6709fb87498e79c051df5ee7b9fbbb027ef928f7809db981acdc1aecbf93351f1d8276f1c8643d2f2440390c245e55ea05551f685edea36135257ffb8bc1048aaf785ea1d85f6c2a9ef413d1ff28237e90aacd6ba1ba9842560f07feda7ad3ed6dbff94ec2ff1986e3c9dc101d5c24f87ddde6344b8147fe92e5f44b5ab544a4a8847d4228ac6b25a9a38c044650f0a38fb1e65566e3208d44bc22f940ec5c3fd51e3091b92c2b74051cfaeaf9c2c51123d8f8d0305dc956039732b5f8cb043f2a10e00c6edbbb96f456832b65f3cd774ececff1f4b4e08d5fcea9e585841b23627d907efd0962a85b92899c8816a218dad11e03c800baeb2b7745ea6fb1394dd094a243c6a82dfbc3e9ef5a9f7e176a433a1e9c1a44b0443a5de8c473b75d1bb2a8531ef48f6ba7bd526b32a3a537c9c7c282cf7dcc91812834f8110e65cee4c09df5264bfb8a3c27f6407ee60a3380b08e7b677238e677835e2cc81142ec576872f2ad37883c6e43c39a5bdf9d473cd537a90bdb10360828cdc11e49b5793eb63998da4c1dac92d016e69f81d30", + "0f22a850ce407f23780797" + }, + { /* i=8801 cDividendBits=1552 cDivisorBits=1051 */ + "fa921d29ef552bfe55d5d8cefc6673f7b14f006726b5529480133b22b4d7476bb70ecbda20db87a2841649aeb631f11c1be7ca6a70b72d0ac78c869fe0162e186241b454bfab290caae6797165cf0585f82924541a7c2cd95493d0c71a436748f8575f657a3883d7e4a71598dc3d485c846225d19842a9673ac0490c4550442fa7721be3dd8f93e82961c489f2ef6eaa450f2d1fd09286185e271302e5846121341fa4f9da8b753a51ca644da421161244a2494daf81a8f44e0ae425bc119b3cb15b", + "037e75d0fbebd8a7d2936c3680624acacc778265075407847b3c497385b9088c9f3613cfaccb8fb50255bde3534a3838896e4903d6d29a24a4502ab89599b7acbbb1b89e9fe7ed5312f27c1b521677ade26d37e9669e1f2c0d6ba85fb6b7ec54b120f2bd17395a1aeca35128b546f5b318c1d671ee4391f408192a77371dd6da33d0a8b9", + "47b702db732c9892f5a28646149bc9d8447a537e034871602dc7f2c5a089a094d025242113f057d8c01c20c0b218409d512648ea7fe99f68823cd568848d0a", + "0305117a6a20710cc263dde32d21ff295b1b3ade2127c89a748b9f5424bf0ad19fea7a63ad9ce6350921ea77efccad47aee580a81abd9f7d396904ff94ef4ad6d2d69a5bb533af43bbae87a1a96885cdfe78cf934e799bffe9330350c8c0799fb934e7b5baa88bd55d3bacaa80f724dfe1afaaa3eb606749a7be494205fbeef280c43521" + }, + { /* i=8802 cDividendBits=4034 cDivisorBits=3794 */ + "14a04093ac344744d5971ae56568d230f9b3ca02b467d8639091b1f871677b24a7236f9745b81b658c0e2e30418a141fb1c5172147846a689ac840e376bac786e070a8bfd4f4120742c7c0a776645ec114d681efb697c43859534df328f4931ca3a71b45fff30bea09397b3d991d1865a45625dd2898a15ec4341e9ad91c910ba940a49ec292d70b5db0d48b0ce7bcc3d8f80f83c75833a05e409b41435abfabafaaba98d8da92d580115417a9913cb0d01825b3079f068b1abe50e0c498e97ea78af8bd2191b7f6b72928f1355c0f65b277c22565cf944c9bdfea910db12416c6b2cf11a38be1d9eb8362cd3c4d791dc77833e4c7bc8fe24762b7d05686514a795548362064225fe4e9110b3dd37cd639b1539e362dbaf57756b6c3a0d7ac7edfdc272b99729e060fd15c9a8fc1afaaed358d7da2b45d70963fb23a39850f6f0db7d6dc903980b6bfaec907f572245a74bd91e36678b9af8f5b25a369500e3d8e256d5d10bba0a64229491e6bc9db093b2c9015ed31abd6bc7b71c442c2a080c7a432d7c298cb2e6ed971e442d25f30d9c51e2ee562432223e8da4843235967d860f3b94b5b6b19cc0f390ad05d9377c0e674039cee26add6190f9ce7fa04382e75685b1f29be6248b632b7a854eb328ab9f3ee36e345b9bd297860c3ea4036c443dd9286d423c9306e4b3033532f5a2077692ca4133bab", + "02f862fdcb6c85a7a57c785ed2d5145d8fb9a55a5e732e764fa4f27703be457143f19c40b54c6fdeb12e1cc71b547eeca0af0b6de62553ec23d6be917f7368c77db77651d9314cfd653353835ac665175341937fccf3ede41b06dc737c803f8ae008e424c0ebbd198418f621281f8787060ce322d264a86bbafff27147610648b0d71ab921b8e08e541a227d0d872d4b4f2e4c5f31076c84aa1cbfb3c0605aa1adb2c8cb97c758e7152ac0c921144c31248ed37ea795a4f0d98156587ec9b1001e6a250d457520dabfcff49fd51016c8862bfc931a3ea70277d5315ef6235de7a52dc87f547208091a41d0a9e829fe768f5a55ab9ffecf7d3ec164c7f875b744ad88f474ca08c21d1b95dd934788dc3fe022c079b0322bfad38389f30dcf5c3b3ef441904083608416f491c5ec47ab9af65a69f6dcf3494466d1e560cfe7a8c90a07655ed5638b75a687619cdb6074ee74ea0945e794c6f2ba79c8491992fd232f3754ae7a0485669988946119b8615e8ae476bbe6c4c367de6140d137ba6e8027d9760b964e305d23a0ffbe498fdb5c290ca4459a61a6ae000a331fb5762b5da5727eb913c222b2708a3eae8394698f46830d6b3bd3a88410e569d8803a5eb0e3de73e983819e26cd5e9929f2f9a47080142397f48a90d1bc4847", + "06f1b4f082986d5db002280293419b81d31d1bb97eb4cd36fc3cb866936a", + "01a7d925367167e3e27fa95dcbd9187eb50a19e189b33cc23071db75beb2206c59b46da5354e88f4ba0a95af9b79c0e7e03fab2be8b7672fae78a0c7275cb41b1f37830836cb55b1d8286e33068ac4183f73a8681517afdc5f051df9fba7c293c204202d4a6bead41d2c3367401e97f5f85cf76b05e4e47575f92b4b627a47978f919bc4e1d52cea428c6dd01b8fb9cd47a1698befba9adc25982c2081ca1d7e835576906b72fea418fd4c460205702222524e1ce1194c16cb76553d62c9354eb9c4eb382e88c030e0664066545d10bd6b595ca4657945120ab749cb1ea538cdd052fb34bbb92b634fe2f3d961c660aeb229fd822e685d721b0e9ad70016def6e6698e7e99bef9bbf36d05f95af3bec239e99a6306ad46ecd1a3bd84cbef68ef72ac3e8fbcf1b9a682dd974b7c604d800e684c13f33c14d16b83a81cde5f7c253c092f6816242fb73f6fa1049c3fa1a53fd5c5dcc140ab966d811eb370040d40f2fe21d5b26b3463748c2283d831ecb93d8f5f821687bdd6f05338d171fab34929a442b09432072624b975bbded7289547086869ebeff98a8c489e4aaabb27a9b39f6c23d17721dd2a2a9c62a7d6f51e7685e37e53095fc1e4715e1645ca6658608162435aa709a760d8857a7725be12d84969e3f1272ada528945" + }, + { /* i=8803 cDividendBits=639 cDivisorBits=146 */ + "2de5b8a3e5f8d0e1605db42140f8c33c8aa0f865807e79fb8187adae2a8158d58d9455bddfb6010f8174771501311ef12d5b2dfdd0b721caec1e0db51924b219274a1a9890cc4c31e10529f85754f999", + "02503e91ad1af21bfe0ba2f4c84c3eba553977", + "13d6dd1bc6cc140a8d45af37351082648ccc04ee09f705dbd1d98d0c5c039305170035ebbc7d0b7296d2013d0b902aabcd93c1be8b9e1a505dd89ab225ee", + "0126225d6bf745910726a6631bab7d400d59f7" + }, + { /* i=8804 cDividendBits=3888 cDivisorBits=2576 */ + "4a86e8ed81b1a66e4f341928d230de334c692b64cf2293ca342d960410f50eebb75215d8a926aef5a6502e5dbd9d087ddf45c126daf3af02caff1c15b023f9a5aac299d6c6db58008f370247291f5ab7205e21793c9091b6bcf71103a3adb442659696d697f89614c76d9e717c91fc18ead233ba7b2bd15d30570631160ca504372d54ef224fdb56880bfac2222372bab4b0395aa2816d4b1c8c32b1d9743ba2e227aa81180343916f7eec5340f2198affe20f94ed577388c97a017e0bb6d4f1d6e1db4e23a997ad62c5a9666b336a78d61ae616f118d1ef2dd80a6fd05091b74ad6d158ad5532c7419fedbddd54ff64f3909690a5a6d269f479c6caa87ded598b58d1d98bebb9aa3a26103e258649a5341de14a41297e283f69d5695145abf9f8d458c082fa437a25beb3cd6cad964c7f7ee20c87a974dc58fa82eb4114fd856c6f1bce6f8e5da52083f0dd1a0963bdb8c01d3e5ac5162eea874f2b6170f8d390f1d43fcce5e9d84e1a2563741f5568b2b8483e9cb17050b4bd00bd9ee427659b61064eeabf0d190d1336887620d112f4809404f19e007f93f6d9bece0cfd48cbbf60183af2943ff09466bc8071911e20c4e1e6d73a0d1c873f040463ce6fe0361eddc887db5361be2ff732b550b835f4117772ed752c4b89ae251c4eed76fd1609ef1d6317", + "542059ae7709399170b11f16bf337f2742c940fb0d42d37b6f00efc57b28f274cfd0f10f9321a9ddff050e1bea1e73fcad0d50df18085d44d642c83d807caf5772c400ef57a5d1c0b1b31ec981b3f0732d7adc769af3b8e26d7ee6cfaf30dbe16f59c3af2cba130f40ad61d9db7a25d74273bf95b1b7a57b999dad8d9cb605fbf64dbdd193a96034b906306e8ee69828518f6c397c4e80931e01cb66d03e660648f65efce5382051ed5961a17a6d6ef241d7eea13e44e3309bc2bd21c7a925562544073f931e708de9e57e69dede26de87a1c649bf81a4e526c34f4f7605779a10526ac06c0e171ef2d15e80565f089dce8953c8597eef2a90d4b779c80bfe0966142e127c1cf458aba0bc3b648ca098f8750ec1b628d70f0d2e90bdbf608959e9e528e7a97226e598546d83adb8577353a22556e173c1c8bfc46448007e9d6bb852", + "e2c9e85a8be9d50fede2b02547a19eb82f517dec40a61bde2073153c55c08fa5cd446ca887e9282088aaf62d7dab8535030ae0769bbe30c4107eed97428622a454d563b92ee1fa3072727c488975d19134e234c728175815527f6238958282a6b77e522dac66ac16ed54dfdce6f5db84b9b0694eb43de81cbec449793b30f9660fc57feb4f01050b838a1ccf19b7be73c8f333f2aabd3533d04d31ea884498b06fe2795a", + "3cc793a35ba06b99a9a044d882aa2cd2a39ac78ca5d3036e638fa507b55c1490aea519f5727e526acc9b8e31982dfd7f97450f12f07f7b0a904e1b7112d9191ef2d9015a22b4929d75135d706b8041f20b7f0a65ec1075c8688c65a0df85be400283ce4f6cee4979b8c1ac591f56ba9022e1bc0e287068967d4a2b7031b4fbee0187a91299671e4f3b177b7df5f43219b367e4574705c60f90b35da9c698a44776b33f9ca07c5f70c1374466d9b60fa7c08e31db2efb46bd032cbd0b4db6efabe12f77f2085d007a5b1873bcdd0da425cf5426d23d42b975a47d31971655eb89f024a17b1be0bb1c6aa9bc194739fca5dae6c60f1aac0d2433e1a547d00f85a9f27ada92f2e9c655e30dbbcbebc04de16e5b19eaa7537ad2de1e5a3b4391ea13edc9aac384bf3ee76ec9fd0b6bc10227377b6699dab5049294b42220faba66bbd443" + }, + { /* i=8805 cDividendBits=2651 cDivisorBits=911 */ + "02788a61abcf606353aac967adaf445db0b64f5d52224ca8b976d575b30eabb51945f1852cd1eb1f8dff29bcd9e3c9854d1fdc7c8c385d344c0c9c490f908105cb9284fff262f21d5536832113ac63d79526c5bb147d5f98631398f79b88fab84b0d208f062f8fdcb8dd04857fd7a1c9493f71bfa06b6631356e92be8fa516fe869b6c2b01beb4c27ce5960cbb039f7a326d5681fe7dc9bfecc954d94431de0655d6ca54aa5b7781d7ca70520b1d783d9a703e47b5856e6704649c4949887bc6f3be70a6e7c1771447b449fdb86188b824276e92efa18ef178cbfb86776f68a6e33ab6e4f2b4c4b3831cc53f2dac5948c89a042aa6b6c087b44f2a4c6d8a3e9ea4734f674d2c60d46c5c1b0972b3524fc35016bb609bc1e2c937fc9ce012770ae8783bcd453bda2911b353d8574fd61873ca46c98f41dd0d02191ef62d91867467fe0d41df34ed5cde07e0c8", + "6664504a65fbfff52dfe2fe76e200977d01444a1557f3f4ef9ba9775ff8242e6801c8141a95f9bb48b63a9d1bbf4eb6ac4c3b30b8a9340a546e65f81a13d33d22b3f910415e9a97ba7d4517a80e016259919cfbf4a2757c6394ab1407ff146c88ca0d362c54e92892c81f4a3fdaab034c336", + "062d7a2d061d0f6b226987686cf62c16701140074603ee1191e7d1502079a54c0de47cd9ce6ad466fc9e56bef3124aa8b52598f7bb665c95ae36af40558c775428dfab9864595fca5dd4e392d870f2b994d7db58cf6024944a62751bed123692870df2fb33ad3e85bc03b4b85373c665c64bc11f53e455730798d23c06ad1d4145cd626e128600fcf03994cb426192f8f12f940d7f483acefdc2ad531efb42f8690ebc51a7807e3709b0c0a17e6d44350409388db5e994666ad9f96e897fe47d71d415e0a665d7120024bad1e3b7721b8eff9ab1c14dd9cb8969", + "5357eb8da32c13064866eb2ff7d2d3c8111d8490b38638fc8957b83ba2052be16d16466b67a8258756fdece89182ba9e4f2b3d33189f8c3f18407ba080fa585ec052e476dbaab2ed91446ad7e72e6e1f7b82fe378afcb4f114ff0de00871343609695ab10df1bd604c16b41aa980ca19e9a2" + }, + { /* i=8806 cDividendBits=70 cDivisorBits=26 */ + "018a66986ba8e1855b", + "01eaf128", + "cda8adb5b1", + "e780b3" + }, + { /* i=8807 cDividendBits=420 cDivisorBits=373 */ + "03f03395cd29f0aeeced549d3e7c99a642aad4ab62c61049881fb4ff9c56ddb8b216b7b95e2c03ee70160f605db4817d167358ac29", + "190b240d288039b074313dc3e38cdff0be91135d34f0d3842a364320387204e561d7c04ec9f9a4b6f3d2ecc7b5e8c7", + "28420b09f03f", + "05de5715e46ee3b093a702b6befa16a331bdfe546d7f7f527eb7fb98f822844672005e39d83c6d9895a7e3075ad330" + }, + { /* i=8808 cDividendBits=1605 cDivisorBits=1529 */ + "0bac2284b9569175e6d65526bd74f4b0434ffdaa5faf9948052096da86052b1dc0b3e6d2dcb9af2340db0f377e3080663273a9e037f21c9b25e336ec3ce0b5f0a64c250d6f9a25461f0c17e5e9d5f9890698665a62b6914f6273ce1abaa985208f39982de6b4ce3eea7e62b4e93fbd491290571a262db5930c4b7589daac4a0b9bab40f52f4240168f156f93193346f7b7e46e9d568035b301c7aa882f86702edea632c7cda3741761e751ab881b52b0acf0423c251c2adee0c52159fd6903e96f26caa0341e34bb3b", + "73ce65e20a77a037ff7586ccae8c4fa909c1259689e23916d6fda7d79e7732a7f2a7fd6ef58986122b81d80509932e3ac6b795acca69b7a3fbfb2613281be4e6a06f37c0864caf79de4d61339bf3845b88b41db626c49b0732e55c4a6e957b4e909146b0be61df38bc73625652bcf68667186cf8874ee0e31428e93114314b0a9cb5acd193e065b79750de8c18142b286affbc02260c655c0d22fd00ee609a45e37552a68f26eb2f3ed147d622f1ecec5c71ee51c6978f35f3b9a21a0755d1", + "19cd89b2313c1b5a7704", + "285e0e46d78000441992fcb55af2e44718802e2fcea35c7d1bc84e5f9a7045790aff0363b32be3f31477611a6d7657527fc0dea0da123fe26764957f096a738806acef70e776fa271b05cd6fd980dd81c4ad35a046fe87849eff25878431e1530065429c469d070f3e36ad2c11fa3c0a221d1fd98d5c8a2b8204c44e5e084a4c05f0f5b6a0770b67a99c46a871393c07d44ea3eb39dbe75e0da57f80697095ca0d8e1b8765437caa473ad5c12b4e23b603bc66c0df9c7da27e54f516b93cf7" + }, + { /* i=8809 cDividendBits=2996 cDivisorBits=2886 */ + "0d4a913b56944b62c564491229a6f0d15e0f946fd07433ba6732776e892d5518a8a0af4d193d297ee2a4ceb09b78994a3518c3e157180fc7da57b376d3c5cb7a7fd8eba6201f8269452fffea20c85e148ee663237633812882624a878f3e411b31979e0e50019ed6f6aeb59fffc32b9bbe73263bdfcdfb8b718e2a646b24b4006549cae61037dfc8095a49e507f83a24b7eb55d075130219afc17749236107f59e42ed5e9cc811348470c34c1c502e8a0f9933b45a0d3037c4f617d39cf70eb638e3947211fbd4905e46d395ae6c868b1c49a35a3a4665a5e2b717ada6bd15e0e5eb63ead106abafce790a1f2adffc01d71ff75f33597632ee76e2f30669e2eee67a8b9b7a2404a47ff700340434f416f981dc966df3f4e44fc722768c11d7f417602a8af995091c33e00a2d932bdb1f6370c13a85bc2df47c1b8fcb332bf2a421793185d3b02093e024ad4b856f3b69db9b9ea7f9ad744fddaffb0fb9e288614d18ba917583650df4803c1ff8261a1f406a03f6a4ed91", + "253b99799797fb49027eba9f9c1336b7d328d92f90cf355be176fb6eab2d329a7d6f6df3597a2267531ad8408e63e20d0b2f48836229522cf51e11fac9e4c2173ac0516cc088cd9d8eb2fe525876818d6d8e91c2e3420a2bcd17c538ea4d9b1c10bd2002486b106732677d9fe564abb199ee8087da366394de483da391a9219fbdea07e69ca8517542c0f61bcfc142dc828880f22589bc8074c70fe593f44950e88eb9703812d26ca65658cebf12b58ed10a7018accfc67f29aecb41a9ee25a58d6878d7521a09ea4495e885a424e635cb1bdcf483149e1c57c8e92c1fcedcd43ef2b1afe0b63ef463c9fef8b50cf996c5b1e5f34a3dbbc8e2b2c06daaabc2d7e09fba0b08503714ef2fc201db9240cf1ee3d6788695d3fbdf07eb8d09713d126c0801da44dc881ee1069cdc14a706d10b1b1608dfcc2d6d12aa95a2ec2226171f65649c1edd36b5f1f376e7a7e312c8df37b16f9e74d1d1bf45948eefd0e7c77ce179c107b01afd1d", + "5b62e1f085417a47668f30575a67", + "09ee821187ccd726551ce6e2eb4979009bba0391982c9a4bc44efb675b915ce7ffb4fbc9614a9c0a385a79e7c015604724b326f2cc440d7146951cfeb854a552df07a8c93287f14a08a415db2e0cf11866323536e92ce8c18d7f8f7c569fc218544b6f8cb4cbb12d616e32dacb2941783e100ea5758eb53084a967069fa01504f85f6ceca42afdc7ac2ff8583a1c7897ba67bf29ce80cd7cf2c0f28b6ee65c208efd7ecaf67dc07c12248b079d26a4973997c0722bc07b03ac72a13b0ab26a7a22eca194551e6aab8af144003cc0249f14f12cc715ca4d55950c899628543e4d15094515ab8e577a3ebde8e0812f55718cabec3543c7a1167e28411debaa969d2be51ef8ff44bf260eb912943f46d915bb6ccfe2eb00cef2fe46d60bd95674e9e1ec0249bafe683f8b8bf2cb8c7312487cc6acc826e65e18846e96880266e7d43e573b9b2f46adf73b64d3bd56d6a52006c7e0c461d64908f32bba737733589a1569cd322e29f1e4e6" + }, + { /* i=8810 cDividendBits=3238 cDivisorBits=968 */ + "2384b8e0f7eb45c0eb40e532f36c462495aa67432934260c2e113d607938d9f8a2dcdaa871b599dcb526d7cfff65afa286dc97060fd85305dba8189e59842b35df789cbee819dae9f07f66622d1f2de19ddfc0c01a8242675331dbcf84d0dc122f0e3374518f9e067675e3082d652a157bd7ac3229f8f74500a0fbe906e6804720522f758b61edaa531c62a7794937f4c4e4ad5f44e8a50f82f401a7e02671186c9c3cbb099edd10f06ecbdbb98abf6d747477b5ddd87b61c900be3d31adbbef53af0ca9aabc8c3cda6aa9157ce21a920e7504b2cad09842425eaedae5791e15c2f47305f33b599a89d9fde5e2dbc648a52ec2c1eb45ba446d1f8d7beef06afeb627e6da9053f3606291aeceb94c6426d55f2e53fb2a570475d17d9721ad15150b105b7c8cf9f6a9788ada0c25b9f431be658315e072bef27fd550e2542696c68b53ff7411210de171f96af8cc46a5a0fa322f89b0660ec5965d660a7de266e2143703a530cc5734a09a57c325ecaf0d42bb62b91ae67b1c557051795333cfcd9712fb69ddb18726b444f9f7e63a675c793b154515", + "57e17b9697b40e8f3648fff22e6e143ce839d3778f23775d58ef45cde431d0a1a55ff697f574c95c2f7118107731ae2de2ae8acdc9332dfbd1a9b9179cdae6b974b66e70ff0576d1e296d20dab2c9963ea888376f504533bc6350ad3156cc53c758e18079c2c7ef33868f7285afe40042dc79599e28231191e", + "67776faf40895fde3eb5b378496bae1f19f0ba01b7080bce0fd486b8c25eddf944294bbdfb11ffab7465fa005a45a76f647170eb5c42087dc8990b8d95329423b7e62a3f9e5470ade07aa04aa6e94f33d1c0b0844623972431aac13799fbb76dff762b6854fdf46339e7df2b83cd2a93d7256c0a54a5e1cb415bed9b17b8c2f380980a1e38a958636ed3eaee8049ab0f6e70d4daf3c6ede266e890aeeab248ffa3e292926cae2cfe2a2f5ebdba7af8fbf77d4839f52c9a0886e20e6c303c78d52f2d2d935b680318ed81a2762addeb986351b1d5be3a0cd4875c0d7d840853099e8757a40d06dd66326dd43bb9ce8198ff66d0be107b0e44e4ebdd86c68a8ae3babce28e5f46b6102edbae2772107b95f30b70240147e6154c9ae063", + "1ff4c0474760587f2b2a5e5946c146d9f893cf3c1891b428837eaaaf63e74991f38a666501e7431b475d36c55d9fc58059cdf56feaecf838073c42401d1e2844259ae77e0359e0554905530d8eae844802e1023ce2656214f68ae89f671069fbbf0a5eda7f819bd76a68bd97e923bbbc657413bf81e8124e7b" + }, + { /* i=8811 cDividendBits=641 cDivisorBits=129 */ + "277e7bc769f5c7d89300b09a2cfef484d998597a08074cfa46c8a5562c8fb6587ac9ef9b57d7f56d54f11cd45ddf3a21cf60ae145d5b59b9cd95e159a6f5826054084554228bd3e4e6a8f006ad5abe45", + "01b0bc7176b025e7f917c11a4f4bf60e05", + "175d34b9e85e5c16787e6d3fb8180353f16fbbdc3e2d20762c4e6d6ba8f0e28c2344269e8feb7966ec360130f4d208d91a565f2bc2ba988e4e38d9092f658f66", + "cd966f9fe234f650cd2a492c84835d47" + }, + { /* i=8812 cDividendBits=2911 cDivisorBits=2860 */ + "1beb659f206233e9332da41f0e54c4a4bdab845f77ac320319b6f186ab7c15988cb9e258cd0e8e5bb41a7fc5b335fc1da0b7927514cc7195028ee4bf2249333e0899bfbc5c75154c8c0cf43410f0ffa2c1263b89b1e4df357ee0035c6d90cf6776af56734a766f47d421b2078c8501be16b4bdf956eb7ed6e164141ba28ae067d0e45ee131fd53390ef52651f8cf35302a36f622e031ad69d6f5d26fafbf1f953cf41fc79685b101cb72010127287bdfa4c28eefb0a58b1a88d02ec142f9d258ebfe9fb744f00a75486d0fc2e09f3137f692847a1d532606d8e2099c88189af47b6b483a4373b6978b36cc30f732fc5e31bd3d086801c1bec03e132393d57ad84aaffb60df59da06be5924bebcdbf2ee16afe037741135a3a02876c030c23d8b5dc9c8bf84a2200b2b1f7a21429fc59941baf4f75e1dd1a495f5868db031ba1f17e324860e6d32bdb4435e7198c969add7554959e9e700b048e66101eed7e82157dd195ad18df61d9ac620a0", + "09daa6e12a17534927c261d42a8d70d0ea97853d0ba9eff03cd34148b8ba8f9de0a5660bbd32c17806e9761c18573aa2e34f866c55782918558fa64fd80d5fdf2a19d64743e916edfbd1d9d6f192a5c7d6109c5abf1566a036e4d96c55454be1f90ccb0549d8c13f52f84177eebdcf32238f7e55af7f44e62ecb1c534529e85325bf3ff341b74946566bdb0a3063b5c378e3d59c77498ad1ea39b21141e29046bda21454530bb4cf07acadd11450c2e83311b83db36d20ef553b09644ab0bce6ba996bd316fd72474cade5edeaeaf7b1119298fdfd7febd92ca1f001e71cd817e0c0f5b013b429f7be2372085583ab33b0de2d8abcc31966404131f8621127e8a6e653be57b6f45fb035c73e87b8b8738771b984fe3a632fe2e22741a5ac28f3f11bc39885134d2bc571a5e0dbbf7b2819700c76d8c0f03655c1eff4b746e3bc162c03415e4f42592c9d92b7dd299c3020534cf3462d0f88dae5fc45314a86020db59608601c", + "02d5524d540310", + "6872e02c68489de520d747173adb7cac7ee69f786a7f59feb7c5d42ba7950437e5f3491c995090c7999b7dc45623acefe912e41d059b2980561223d9c4b4ef88c39b07e86397befb4f33a74d59ad31e297eb4b43afd83b354283a7531d535400716a6e708e35e656b6cd0ac2c9d7d3b899293e927749e564e0e0b69988655573b5d986900ec0d2b948aea560577d9bd0c07153651c6e46733e96a8fa307262272f88ed96592caed57a58530199f2669a65401a66dfa32c1a968dae3d1e08d5939ac46eaa40fe8bac323eddc04462a8429410291396a08be0a91bf8f3da56e949636967e1a942b57b561410c27ebe156f99f1faaf5ea9fa98ab4231d35bbab5c3223334ce8e70d7835a8b828009db8fbfa61afecb5e78e0277407f8be1e0ae46336014c591804085e8e8b58088e94e03e367028d95fa98d491b27a5cfb8eff6e4d92731690caa9fa69a1ba7fccc515f7e387da6c32898a019e26fb7e84486b025622befcae0" + }, + { /* i=8813 cDividendBits=201 cDivisorBits=149 */ + "0188ac6d5c76d30b0e7942d4ead015ef1b7a5e478087639f72d8", + "1faa9a04891a7e2e235fcf5b3ad21d7a8b859a", + "0c667b26e9aef1", + "141f03352c0a8381e1c4022895ddacbc4e00de" + }, + { /* i=8814 cDividendBits=2145 cDivisorBits=1410 */ + "01052effe5ba228094902c0bbf58c621d7a99f5cc301e5013355cdc3410eab9e70f56063ac1a5420c84941639dbece9b58881d6c174193cacd9d60822a1f4efbf3d2bde8cdc40aae1f7536968067e42cc183f52b0cf589f5d5988fb0d1057ce3b2ca14849fdbf7a4417bd1acd4f7867a0e9bddd2c576667c468e095504f33016b75f732ec9203d82b79096362272a3766a8441b0c9bbea3a56afd673b43b1eaff4f888ba25e5b42d85462385ab7a8654d74e4f115cfe8579f65d7a453292e48be18129eefdd95c69c4a367318137f9191c5fd7f87e36cbaf494a8c2c95599d36fd5297120f0bd4b5019faa06a49a586d892cf0165d8bb048e62791ccc711c41f81c6e3772d0bb5fe8790dd3d4e", + "0223644106ee934789b0b072d9093abc02e2495e920d47f30bb5a5b935a39d37aeea560fd25157d3c4a80ac70c307947c262e0d3a4628e81b1a44e8ce5d7e0499050dd8459d634e541f5335f58c4dfeb3895b1247e04f38c74e586a56c93a237958a4b9abc4cad5e4e65615e58695c946958e750fd91f8cf7ab77156cbffd9c9b2c65f8459f63908ee4e2f3f281bf1ddf56a88cc9bf113ee73940f29d06acff4b91b20f043130be8945f5b147fdce93d49", + "7a25fc455f981fb8bb3df52971560cbf6e6292d82dd0a55c0474af6f46a0f61a6a0bf6ed98ce14a25eb5086c774801084277ddbe0f513a781a19f4763d96f9b3563d3d8b67c5f13593701b6b182cf7af558b3b1dc8f222df45000e19", + "01a062c9139d51031047307e50c0399e2238dec5c4d1a62db9b50f1755f57c696723daf7f859803a41a3f462e9b3fc4373bc60abf547f21400d1db0cfee8e3636eb7c50098bc590b7dd6b3425bab4e2f5c326f3193d13455847c2da55b8674e1498a07d8d57a409641faade00d7e8650ccb3158a1c36889a7a39ce18e37965df58c2fa082ad3b07750d57d9de1d4579df0dd67405040737354fd4a86483de34d99c852abe98c9a6f97e9d50dda8fbc432d" + }, + { /* i=8815 cDividendBits=2789 cDivisorBits=820 */ + "1e3de0b712be5498c86d52b8ad6d72034e71d913577f6e5add6947b70eff30cf0887a5eed4ece6b65ab09b659005992ed62e38c2843bc5c38feedf0d0f185e4c6cc9bb067ad86be7d95d36271bed5883e386a44b3a0798cb780e83638c172f69a3e0acae29d4d930ad2366ceb66b158281b4bedf3052197a2524c590af3169994a10f06fa0493180cb91a0e0a9e6adf76a1f060c6d8750cb0f034f92047798a4daed22145bf302efd1f8e52c6d461dd9603a94c05f5dbc952a06cf2e0908709ead70291a3b1b79ca37d25c7b07d5033e076832699c3950be58fae5f539caa9433590ff62de63f404386e4c7da049097eac01f0e21abaa949b29c0a2dbb8db9679da81069203b98971c75d07f681533f4c0907253a074412e2dc9963bddc689aa80160e18fd08580558d1ef55cebeee7851e56cc3440cfa7944ac6755a7ee5a3259ea3d90199a9721ae340f074cd978fab9eac0848292af697e2073b75e", + "07a8ceeb68e72059a5421ddb079e7b208149dd537bab67f953a09ec10c5186209fad077c9a663af787fa9ea22d29e2211275c721bc1e240cfb6536b010cab2cd1fc68f8fc37e8034f13828d62be153056539148daca89270832f11d01c1bc6ea35c58eaf848f8a", + "03f2c467e8d5d7da1d43024589e3f03cf5850bef0c5dadc3e812fd4b9efa2e0fb43585edbdee0f493d712d7b07d35d0898118452be27968c63eb4448ea369d696084f72ec82c68749432f3ce11618f987bc369860835443499baa0f68e9db736fc11ec20b570e8e5d1fb377b1308c29a1b50c3135731b80b5fc7accd7573c642d652f543a246c595c0a63fb77e67153b81e36356c4347b2cd7a92880266dd3f26e59260b979cf2f4736beb5606fabc30baf7b0c17c6653c9bae2169f716ec849075bb0f68cd49e5a54f36fc7fe1db7b6b8f4251d96d704eb67b52dc389e58189e88e5d135a3157333bf1d267b9ee9d9280236c2e3eadb8", + "05edcda1220d4cbb64bd18a3415036f86a617831c01b88b10d7f015af28f5459672437050774d07ef8744de2ee31bce48e2fbec81d8444da5c64120b8019cd5da46d16837c7c03468b78c03afeb8231ee91eb029f66a849bee538f6ce934c6c4e33e35d4c04a2e" + }, + { /* i=8816 cDividendBits=2759 cDivisorBits=2413 */ + "27b388d094a9989c031ec5c8fb78a7982de7ce7a7b182b7e1aa93094b6302d5106bce19ea4d337142f3322637fd8da013c7c3f3c48ba5b2bc4e09462eebdc81171214580559dacb65534702337d7a97898e46007c3f36acb0268bb32d2655155560e9a68df3a3a2f3e13e3dc5c5608c07430296f90d115d74f33924d170753137a983623646248964346014744ce4161aa4f17324c13b0d21e0ac414cdaebb5c46cf665cc4719d2c2778bd05e7c983f9ef0ab19eeac379f6d8cbe38eae5bfcd09c652fcc3565612b4b9fdaa4fc1fe2a7de34e1859d15d56d924e232440520069d5ce0363b04ffc341fe6f6aeae5e5322079d0fd04dfd9b5ad2bda6bcffe95b1f489c7f673db082b5b69d010e5feab8c69d70ed05d154d45fdbf7c8f70f918e5ee77b50dd8e9d01eac77aa8fbd4372243718b4f966aef82abcfcb4260975d898d09e4b3a5b3b1ce91657b2b6517d0d3f3b13f07addd0489cbac", + "16e7db53b737c33ceaa39e430b13a433630bec73cf82217f69b42654fab3b4c5a4602a1f2cc9e3c10c1f1bf1e5f86d1b3d9d240f58db53ec0b3e21f3a531d8e3d36694aa63346ea4f790d972cae397018f4de5d6b584a92114dddc1f85bf1a3a8c6b97bbf7c4249f9a4e0f0eac832601b5955560d79cc23990319afb05523edfdd3fc4f2982077df0931bc00bb400c995377da8bd6fe3a1d1c97f323da3fb5e60406befb1c44e85b1e1a33581be33ace740788a0750e9b12ecc11b70059640650561fc42ad22ad52c1a1c27ddf2676e49881fb76ec31aa7ad8e9126527098d183e3fbfca659995455f6f77eb8dafd9fef4cad51fbe63e22b050dfdd4379f8b6277690a8ce9fd9837c7e0405e697b6ddeee5444f050105ffef9cfea29cec2c4921457611ae51d8182db71ec99b952", + "01bbb6532861dad54ab8e7869808130ad8e376eefeae2e3f5bff9e88b5ff1243b794b986f56a73f6be06e8ce", + "122f23de621feee13829305906fc059b091b6d29254192e6e7a2f67a2c0e49c1f9bc8be1249f720a755d3a62fa1bb81eb2b6318cb2e59b9dfdc1a09785283a18dd6675e66f87220c100204c65e319f55d35bcbd90a38b5318ae3190db9654938cd5f1e5f7900b5528eeda14fddb994cb38005563501eaa88dd1637b47e2d2526cf0f7df8e8e14bc3527d5dd6f8e28d35c9f6e5e6534a0b773a7a7853b49d3ef205cdfd30522a504b994e42a0d3d59e4841a5a14a2ee9af66741b444204ab4540ebf437169c03fb825ce7d388c2c3585fa6f2907617c416b6bd5d52b41edc4c26329148b377be7165bd730e889d82697c1a8dbeb8a34b9ec731958e67bfd4f7b40dde389ee0eebf636179d07f75eb8e501a63c3c7c5bcb7090a090e41604a201f2ff337034af41eaa4bd41cf85bb0" + }, + { /* i=8817 cDividendBits=1893 cDivisorBits=301 */ + "0ddccea060262dde10d7e75de7b7cb39e697ed28a53210362c35350c53ef39dac96cd878e25dd9232f7b213ca9184d4a1388e22afd33cc915132a75695a00d784f295a149341f5918421bb7458ad4ce1804f42543d25209f34c89d56023ffcad86b3d8a99f18f8031aaec3175b7c3b42cbf89e0bdbd67097cfb17cfaff5a9879cdbcf0e866f468f0e939f0800216492188ba4bec58f3b9bf6fdccb91403dd1f7c52c8b0360d4c07b9e883d1cbf98cea833df3dd8cf5c25d7397a7613d3d6dd4ba7b4263ccd227f2c89ea5d8c267c71e092d216f2ad486527a99d78fdd55ecb270b10ac2da87fa82e31ad3970cb", + "119b4dbd0e490a19edf2e47b1bebe136882c3608d6592bbd9709d485af3e553e786718a3de40", + "c98f8080d7490cf9c226fed03fc9ddbf3587b80b4a87a848f64cf377397c752d64d60506f8fad6e93d9b8c4f4a8e0d53cd3bd7e0a27bfdb40b9000ba9e155cdc250f64825ef55650be267fbb280560c2fd5b5531a5ea0c46836541f8d9f6ee50eec668c8919a5e9c393894db0ccfeef9f2f139d0b75ffb0e04f6bcb324119f618dab984d3979754ac8cea999bfc03876076fb0764c346cfe67ba218dfc8c737d565279a8cefb4115be6a2104ba22295423f5866adec835492e865b566aaa04bd87a914661e08c2", + "05452c04f2f389afdf1145f641238a47f4a245d8b30a5ea7343f3a0c22a53461ec8a5699044b" + }, + { /* i=8818 cDividendBits=1304 cDivisorBits=1052 */ + "ec4af1584d2b47a12a69433b61313c0fb2805715784cdafb73e843bd282402ba836c32399f336be0fc9487353a8ad88b67e91c67a6cac628fa048f49c8f734ef4badf0111f3e298328e80103dbb608d229f06dca4094a0fa138bf0ca275fd69f0b3473bf7d05e4b681b8f864098dba7cf962658146cbd6fa2bfbf58c6cbfc9ecb64093d917028154bee0b2852a7d2ca04f72a7123d2d607c4706ab9ab807d5a66f8610", + "17ebc777d6cf76873d3e5614286dbb1a175d0d4cafa51c2ed43d3cb8882632a3fae0aff7112c4834bb21f6a3c111ddcce6737152059d1dbdefb05786e5885ff14b1324ac1d2ec4c41560351f8d0a82850eb7037171caa813bee636bdba51b235cdf4b625d49f06bc981776a27343c8222bc85db4b9fbfdf52d976060f816aa8aff2f7b", + "09e0c74e4adeeb0ed9643330a538b1aec5d607201fb843552b425a206e8404eb54", + "0ea4e31e5b49ea94b497b498dee11ae67579ef47fde4273620284a7520bd3e1112ade1d757c00f85f51aa235a47f75fd2577d60644dec692717a8d664b614138dcdcd63e3e1f992eef2a796f761af8b180c8bcf125ed5294e38c275208f6e31d56ec05466562e0b13bcca88cba2dcc84328c63062c890399ceeb32bb5882f5a03208b4" + }, + { /* i=8819 cDividendBits=952 cDivisorBits=320 */ + "434e0556ffbce5db3dd4e833d78cce099c6d79da8e4fb61d77ee23464630e96e7ed822229d4113f8dca39d2a03342d7e47606b5134f35a45a9b6845366a9c7a159221aeae21da5a42423bb65bfcc1423d24e423b6e48761b23feebe5d8bc1bda2da1df89834c9308978b8fdbf90ef7426bdcb49213619b", + "e8c953d3e47a4cad1475ebb5c7a855eef58fa0ca7d1699c07299e5f4a9909cd30f7772e2e6025abc", + "4a0434bed9aba0162bf3ce73ce8891a816e36ea2e92634a438e191bbb0a7af5e88534479f9a1970dbbc60d00d2f85a2dd0b0aaa776df1fdf83a2d99cf124dd1f4420c1dc86a425f8905beb383fb842", + "9a8dff9ec8a97e49e203dc03b164014b8926af97c2652fe392c85be68ad5a9775ebbebe21ffcdd23" + }, + { /* i=8820 cDividendBits=1935 cDivisorBits=1339 */ + "2d5e9d6bdae0dee60d9d8cd7d83972de7011d1020ff755ffc8abbccac189ec4a9b7f0bae725e6ade0186729477cbcb55a53134e3f559767c24366072405259cadeafea24827ba6f410359d36c7e5f91fdfab6a52e1db0480e3a23b5b11183b739b2492a12108253710a1610873258b241c35bac810ccf4d09b0357e12717bfdcdcd2c3b78061f56ddc955aa531a12635761cab42354490901e8b6dbb0afd0315d187792f40f85ab094c1e6c8fc52d92287c05f469f056ba7f198f052554ef9456b5a51e510c68f5cb188207b8dd93311e5b9055153cd928f04473716f78f142d195ba5641ea8f1becf1852e1c245d859e88c", + "2a24f1e5f8cefe36ee35b175cbcbbbdfb870f7b9a386639c5316ff5425fcf423fa3028d230558cdb24018762caee0bed72349884aaf7eba1a65378ad0af5d773103f2394f013723a41fd8f29c09f2112fe56fe4a141af468ab2027c3bdf020ab698e75c5f07a4bf8d1bd4b2ab044c1307f5e49d9f4be823ad89d2e9f5c050d172b002e3458abb31f0b5de7fe6e8bd9455bd3e4c0dc235e8da788727df6f5b49077673ab3fed58b", + "0113976bfd3ecc3f55e1e92cae55fba553d2857f23fea90e1eeb241d36b3b227d18022366b52c88e6b34c4bc7b3fc25ec4a4a67bf8c085c841f94bd203114f6f1c221f74a1063df2e729d4fc", + "1f5d34256b190416281799e1660cf61aa4db14d1b519df7aa741e3a21a1666d8a6cbb31b63845a1f508a16ff052dcd7ee926ea1dcc3b272cce65d7217742822c36a59141adecb9eebfecbb06dd53e6e32bce84493e65ebaa7c1fee0d3ce0ba277676c1c0daf8d4d5d8b0f5b10679d77dfd73b1c410a57b65e88eed1a36d3102af9ec5e7f83af98b9ff5128948a468a7973633c368e6e8d84ae0dadd00de1ce6effc487006597b8" + }, + { /* i=8821 cDividendBits=2685 cDivisorBits=2055 */ + "0f1f17c3c1804522f32e42808692256a1345bc36dbe4d646332a46cbda2deca805f106e350a5930830f3ea69e1dcf7f54a72e7d3bcf6b3c406fca21fc1350502015068ebdf784921f3253bb7272c5e623dcc5880a237e9786474e3e90343a0f409dd2afdc418c5442cbaee50aa0a2a82e084abfe12752166ac234cf92ab52eea15b768e547e9443ff6051deccfc2d6a71ba33bfcbf490e2f80f9c62214c8c4f25fd41ec91a7e2753e930054c89d82c849f87ea7d4083de42ca64feefc6a83bdf62073a3da905f7709673da1f19f5e762664aff5ca3ba09a78f66e4e4073d12a9e9374c5eb36b577679347eb0297d57a0afb8d50c5ee22df957633831f2c90cd89e21cc2a791f4a3edf1c7051c98f5bda1f7736a7103ae4d57be33ffa91e73a2e5683c5f2723c4debb20d43f4ab008e79d09d4de7de30c206ba4c208ec672ff38be0b5ab7a4885ed6c60ca7bb0c945fc8", + "0771b90a20a7f6ed6a674bb0664424cdba2f138b955890d18ddba9e923356480421355f317c046f8e25396f547d46ae9a693383fe4db3bf1f333311df1e7421926e5b347aa4babcc5e804efbe22016b1afb4136464c1817fad2e828cf307bdbf2e707a36c5bd49c4a38f38f57b4cf575910ca82cb20716ea0c1ade23dc88ec326b3f3b5d06a7897538da5f1d2e72a33d38c0d7dcf019b65a011bdbc18f29f9642c69d9b99e096e84ff2425f9c1da0353c808ac32e8b514057423a17f2a1aa25c5c7f58033dd7f92d5c59104b798cebd33e4094da642ba73e6215145da9ddaf74c788655453d78c7b114e882bcbfedb1f2dc95c8e423b63ff9ea61ef00042cb2b35", + "0208033600f15671bc8423306b2576b3138c187b2c17d1e44443ba1a5dc42756a4384c9816ce9788628c440f7f7c768c21aab6e3a8d6e8c7486f3763d74ef261d2c872a66aab6c4bb07cc3003f61c554", + "ea5a633ac00eac8656eea69becb5130626427e3cbceb5eb133d8b37c3cff4125eab9b93fc35454325ce299873fea4d6d98a9e79c54367db81cd8c074c404d7c3fb879fab477610b103c4dfdc2058e6da4ea98294971f80070f990bddefb094ebf9fb2d7c84d4b9597c6446ce32f75a0d29ad103f41d206d9578ad1ee6ac83c75c15153ca9d9e5a779d2cbe5a52fa897da51e11145664a8810183ace55b4fb260bb035c813c39825a91af958ecc3143aaef13b42144121f048f47fc10041c281447b0dd14c5591b253ba39cd52bf80a8fe7136c897a01f069c9fb0697911160ce3a161ceeafc7d981db13b8de3a94d6fc07313bbd39019aa4551706a15f956964" + }, + { /* i=8822 cDividendBits=4013 cDivisorBits=3717 */ + "058ec43f50a481a4b6078d557de6a491e74e2bbe1d9573707b7f196493c8b8fe2e44dc08b4826de7a145d62e7e96c2d8b313f5b30da75323d61ed8a9b693b3703d382bcbeb631df4e2a738b3edec40d4cea0da8fa471f46e751691d8e89d7e05121b4541f9bc47d06d91d2b68438c96fd9017f5e56b5dde0a52b70e3dee5706744cf5f26f9a7d3d540a380cc3b1689ba89918342a1ea17e803928951a39bf60b393192905deb4d3f5631d56a50a252c85249dd231f75403e7f886cb1d8f19530bacaceb58afec0d8b3dd9aed940bc647a9d054e8ed638fe6688f60bcc809dd906b457b33957d6f838a9e6051c3042adcaafff1d49cb650805ba9de832f08220e400b7d1fcdbebe333b7de7a0900139d11c2a46f7966c170cbbbb08db3396755844169f513880c0955e5f2caceb1ca304839268916f27d9e2102867f9c3ed53d8a8c2a1ec8a9e153c8aa322a7000adb5d365427072b755ade8acf83303ebf68c86f17209ece7351230382a0895be04dcde56399b3d40e320a196698623e34159b01c7f5a60b3ddf30382a8e3dcbb213bae40f00403bd16a6d0aa7a21d0e1e9d9f1dca82791586e06c03355fd3959dcf77f74629174be8922db1cce54608db78caaf872bdcea23b14f4ebf8625077fd6bd07ff89f96c55d69b5a117a34918a331fad3f857506d46519edc3c4a2d4b5ae6c32184483de46", + "1b6c47b94d2485b4b98a6f6757adc5b9f9c09f84203794a3aa1dad345fea6864808424129d1fab07e179e6c6fbfb82c3a0e82fc334fed06cc7e1080877f1215ec8659567e3d0e0738d161cc47ba9986c314192049a54b944d721ccc63c2fa76c9a4bd443e8617286333eb3556d2a649f76a2b36a0be5ff9862179d81d2fe9e1719c9cfa4d00ad017126aa10ed95fc2b42254ae183d1be8571e817c7c1e2f1225acdd6cfa53a6ff7eb1d6125bb120217e861b1a47959e01f30be74c212042a29208e346adeb70eb847f12c8a8ea9e5fa7f8339f9b0c5bb69c9b7dca37ec162f3e656b49a66b3b257cff47bcd711fe18a64283fb75fe6e1950f5d831d5aa719cf687165541d02ff3f8bc2296cf034879587a4e5632aa482d03718eb60ef55e7453622719f09c95ccf0990e6407deb12bef3fcaa22de594340fa4814e0da82a1f05862f0f0039452454f5ef9ea82b6de1a47db4b451c0814db3303500c7310abf135d8f0a68a25d4ad8e60c41fa3aa186e5ac46bf7f26419dbdd773d0d3a558de4ea9ccc3f4a7384412552e43982b4521cb57a71a7dd827e6e61b6a914351f63a3670f6068430703ccac9ad8abc7564d7be91ed0b436bc01e0b88d53b50dd9b0c50a1fcd39d14fc8e66a1245ecdbb221718bc", + "33e1de16fb327f172eb13950ac9397ca98f313a701f1e2d4d75f5f5c7bbe40efa16210eb94", + "035b9fd4653b7fcb7e7189ea9d2e64e00dafd6f1c8a530d43e17c3d15897ecff66e811900c378a5ca48d498af529e0d047d8a67dc8d2732ffa3f897178cfa4abe1b2fc630130b1a1c423321e3e995b70bce97629567be8788c594c8a22b79377dab4fcecb53faa5df7b286346b1ca7d60cc28c366a89359ce08debd2fcecf563f17a7eaf3f40b04cfa7200ab1bf435de454d5b77e45b22252a72b1251014dd8fc10438816cf23bc5356a5537d2932e39f8460dc7596e30cb0c0cc264528c83209dc22daa43a88adce2a479c23005af34e9a31510d4e5c38fe9449d09a352e8b3f45963afaba2554b8d10d8247600b4bccb81c47a30a5502d8b7c3eb3720d0de7859d54315176fa67dfb23c91d34d34a46ded49db6e91a9bd5239d08a043704832b3c1245c92b91e99c187eca0cb882741bb59b555f96c87f0c17d7bfe4081302e502709173e2bda26438d9fa18d072ba7b532ac48648e570a3aa1a82c01fa098e7399744a4cb3a7b9df94775e9107cdd4d9cef8e95a6f598d8273887d4921377ef186ec20cd86e6488e4043c61a99716c6ceb706fd12becf4763af72160a27cdd2d93523f132a79486b82fcf0b3bc854a42269f2b15132388c5c90f36160eb77282d7e551c9c93ce816a656e77d7b4fd96" + }, + { /* i=8823 cDividendBits=1448 cDivisorBits=1263 */ + "1212c23abe717e935eafb9bbaf5921222229dde6c113cc3cd6cf29cfb1d80c4a35228ca0a40eacada47c082427093699ef98de35bffd5c2c5b5cf97dfc5cf99ec41d7bbe63c6707add8fa9e308ac0ef824d0077cffbb0446192a5d3745857b8d4f6f96ddca52ba1cfec64f7ec9125b4c7c5279ab465f9394452975e22af9b1c67eadb08a94b549beab42e8d947d083d84e1d1edb53f30684cd0e5bc59b53f0d9e0fc88a3c044dcef6ced865133b568c248eec3b2c8", + "7e605aa08fc23918c5c00a8ba6971a43dda610ac49edcd2a31a1787db1e5983543f7278de48049e9e56b9ae9e632c14a5f928837a87a77aaa0866181cd01a93b0f416126ddeb45ccd72274d4d434dcad3005f4bf8c8204015ed61ef3082bb7d997d7bf9fb4c5cca7ed0254eafa3069e4d86fead2b28547045a458aa62b5f4036b7466709f06eaa7ce90a635c25c2019d04a3316b4c505df4b72b0817a04b", + "249c66d7d569fd7f9611b0b5134f69e135bbe7f24935c2", + "3edbb497ec3f55569c51f8d017e49df657a2682cb7ae33266d9126bc5d608087229c0a174a3dafb2063fc2e8785f1a493b8de10d231004a485ad3a1e64fa0c5f4f650746f097a39a554c12a5fb25d423138d8f7837ad785104efc2c940c1a88f0733d209ec593ade1808650dc348dd9bfb6633ea10fe276d1de18e8b722a3c5c1111c03c684d3d32aac879a9855d353c1e30b751ada3452efa0f4d49b2f2" + }, + { /* i=8824 cDividendBits=1016 cDivisorBits=977 */ + "e275ee87e2285a8476f79791ef61386d990a3c830ddefc617bd3ca588aafb7c904d3afbbc0f816da88e25e890742f622efca556e5bbd8b1937418a10fd1fb81a555fabff1be0e965bdd163c7010d39ebf95052ebe67029772793f8d9daf901e111c92380c0d7e91f059cc49d947198baf455b4762b911c388a2c3fb01add70", + "0169692b3af2fad57a922d1ef609dbf9bf226b07fb3ce789cacb788a970224da87a87f1038a40ec38bf4f84c80e95615b8668d6358f201057c72a2ba6ccdb439c84cd1357780927258046c6979c76713f19076977cf74d602128e7cadb9e1e0338569f2efd03a042436556ed157b89d06d01626e01739416819ed7", + "a068f9e436", + "0165d93c5184bf83a72153b909f79ea7b6647a84502ffb2b9eec136bd893782b7defdf3332f742ae2bd477af1fc47156a72ac5b1eac21df29feb527737e2684a8b702aac1e877f0016df89ec5aa00d3349aada2880f64b4d4d8cd67e358b765bab0ac0d280f2e58dd11be42c8ca8e6539bc974141a13fca82ce016" + }, + { /* i=8825 cDividendBits=3777 cDivisorBits=1110 */ + "818be23b7de49f6ce3a9ce87375f1b50a2961da331c18d304a3dc7ccb4b45ddb7429803017e3492b0f4b4fdba3ecdc7e4d4c65d7398ab11da3b40f42a15ff039b56146a7de643cec9dd2b504f763ed73b05575da8601fbad7c29ef26b6acf859047fb1f407120b196094617f2353308a4c2198de726bf2ece0c7938a1a52b258b4d50e9ee5d1d8a07b603c64daa7c450b0c31524132879c35c2f65a4e0e19ad0657d0e889c143e0c6cbb856fc7c1545d3108f9e3a61b8a91705ded2d368fc1d709c97403641e1ac86c7cadb41c02f58e0ac6eea9b4d96f4874a71737302c714d086862e1145ea3103b69262159a6100f0e2a8ac314452e99b329ca8a431a3f25537c472d40ca2515f9b83d01c9b90168804e48d0b70a4381246236c6d3bc9645951e15e75d57665e31e9edbe3b43333872eed6a9ed9c16c6edc6d5cbc0f731eab67c55a60e36ca8380b64d2dfb9cca0025d44f17ae620ac2a2344cad2e19ffe2b51d05b80bb9eeb91a6d0f2cbe22d7f16b0f4788f51e3df870f0a898c241b93ba229edb5aaf0414b6d7818c7333e1298886abd8319eceaa92cb430655f54f481073deb5572608caa5aa32b17c0a18eaea8312f8c2a361218c5744f6f601b0d2e60d01d6de63c3eaefc8dd12786ece5e4aff1dc5fc4bbd8c9", + "37e05b2e13d9536d5281e6e9b4da9e61f37ead1b70c54d71cca96eb18f0e71d5a1a14010ba42402518dfe4422760a1a849be18b5a367fdc43b581f85614efcccfc08e2e3da282b8dfef129dd3362755c33e4df1232312a05d472dd8e4d6a52737e3939af94d188c058819467ca40a914a5919bc33db7f022f6e6172e3e020ef1ede97c3cfe80b9fded4af6", + "025185b4cc80a7f5c71382572ac59a4ad265b4c3d579b26751593ba4b40e8323bdf7262acd1436cd38fc5a8d8f701e96c69c70c6136dc3bc6f364e3f0e2b50cdb821c5053d510eaac6514445dca773065458af14322d51605634eb3299493fd2dd8dc89fcfc587c5b906c717251f1e055998c36ac6d71f51be51d6eec52a7e587ed74bea19d1cddf1461f26112a6071158750ce14697ebc1c6d50ea61d488cf2ca2271dd09ed94eec6b0e5506370b27687404101967b65c91866b83f3d3ecf70d374847020a235480c3088692eb7f8fd3dadfbc3d0cb458e313bb3f3df5eda390c01e46f49e1bf012f0e7e2950a081ad33562216375d0800c06e24440bcd494bf138fa1c97f0a90a24c8f4b484b5838392fba813fb70d4766d3433c76fd1e4f80c53e489e97fa7a1d7446a83a1fe8f561be8bbd42921561be7c9c0050139ae2abf52fa0fff448e5597f2f832d9eb", + "1656f55e34b7ca84847f4057f9053c5ff4d1d2b8503c3b03c37896fbfe9414ecd196b0364495dfe714d07ee6d9aedfd529a15f2b0a830b916f335c7fd2f4c956311784cbf23ae276d571456a261c01ed7753ef996ddc971784e6aba92c6a7b18cc8bab811307ab9fc87ec08e91c392f251abd734f534723906bdb4dce67e22b107836c4bac99e2935182f7" + }, + { /* i=8826 cDividendBits=4020 cDivisorBits=2198 */ + "09ac07d13524befd0a0d94500f8aceb8376c967705fd5b058b073a1034b543dd68232a6b327db76005c418d92bed382fd5ae584494691c2b3c4d40e7b755b973ac013439dc1ccfb8683e94194f3f162e77ac81272e9534e30eb130964a353a3ce847d8db773e7c5c96acfe471812da9ec55c0bc53eb9220860f62b61e24e95830a523bf402e1243b14389459362563f18ec009e569b7cc4a5edd1296bccbd19455846e045133baa311af1916b113dde316ad46df49fc718973f9a20288dab27b2907a0643548fe6eef9b1075b0c737c53df324170e44a900386b67484d2b9bda3aa1299b0d91e2d93c95e6537e8762200d0627b7a4b98b9dc5cd4586f1b5e7842bc8b7c554ddaf2ffe536ba27556025fba23adfcd3bcc19c79a5fdd03adb324ad3a88b60899a48642cbdbb7fb164eac2095cec8f9647cac8c4570a010739413853391cce4d6a4cf9a94d9d082a2a89a280ab202a561e6c558eb6c309b95fc9946de0396baac7d0e740c806f10ca9f234a9e57b1f02e1b4a790d200c6b7b594bb8ba7364d266f888cb63c868b6a8d0e5354b424a797d9358dd4ce30d3bfc2aa24617cd0dfc627496fe0a1198eb0daa00c64bbfac877590e9589a7c54abcafaa41366028d371e3e60b8f8e63d8f58ad2108e9c23d1eaf3bcbd8f7f9bbc811bdbb96635c6f883749e49a46027c0fbb0e8bc1bf4bc001fbede", + "1d932326f09287c8b3fb4857e4722d2eb1778921b03019e09a0bebf0aab6fa2a9cc1e19f8818c4313d93c2915784be63d2331e97474ff1f0c81839f5d8d6c410125f7716de833d6c7086864edf3b96cf2afc3fae4d7895fd6c129af3bd1abcebeb9dcf95aacc9862bc5dbbe1aa4f6182c5bb16e79bfe56ae56a6940db89f101d715261941468dc132de2acababf4002adf83d5cf89e8b53d380e96a881e1d051b2555ec2b1bb0214f251f28346851ad20406c33e7f2daec5c3766912d97237ffe3e2269bc4994e7871d35a3d1cfcb1d273a0e53cd0674c06a2ae9cc3707f95f1146bcb667c2bebf527853594bc3638a7135f5c203a8b190ad737d8686e5a0ae25461de336fe3fd19cbc7e76add7f2ed3d05da3", + "53b898e9511700335b20221b446566f0164a9d40fda3493f2b8485291fec3818c739d10710f5ef912fcb9839d979f39ab9b4de8559f6f4a59b87b8bf120380af2bdab8638cb4e6d4a66ce936b3076137c0e0f72b78aa8184a8e0a89fcb15c39a1fba1f046ec086cd25b1a6a0d34b5d98dd075b0d7abf38cc8dcf5e60d9be0a4c64230c8ec2b833a0028371e572663a942fc692dca8db5d88ad14553399d7bb24979f4b244f930f0cbab647ff1b4e6cb2b230cf6260e1e7ca6a00223903d3d6e58bb2306d766ee826ffdd059c84c4d042fb4b10cc73c845ab8b0bd4f93961e3477c411f3f", + "11568a6eeb552ebfa308a321e1971f798cb1cc3a533739aa38e6639a78afd08b53821f9de8c7e733ab4081949f5cde8dc128bba1951e6fbe10c33f600c59015411febf7681d90974123f15db03e9084faf51b8b778311dd5df26a7466ec501d0604ba44057e5d3c1027548a3e02e5484fbfd9dca4380e5fa24f201edac4b3e92ffa6781750c5cb28df8be6c312cae71a29213e921465a88412f194a5322bab0999efd94a3fc9586010f83fafd3b84fbe2a107339277298bcfb444af9b8f371b023cb4da362be7896de949ea9fc4f2a8e609e88a702e25a7a1c570c0334b1b3e9afe9871d831719a4fb2d191035d98d1b834fb415befa624fafb9845b5a9ca2b962ffcd30efb55c1dc78b065c21c617ea1ef6c1" + }, + { /* i=8827 cDividendBits=2838 cDivisorBits=1158 */ + "2a3c0d13188b16e14bd4fd8827037378e0a7ff9a5872dbd73e77e1c2baeba53db2700123bc0fb4d0ce04aafe9eb9f179b36dcb2d0d06442d4a47bf302438b86d8f16ad62eea9d0b84c36a8c12f2de749ec90b6c7922ad4bb9631eff632a34fc0be8351d31901d34b6be7b82895271a5bb653fc9ec2c13ab7781ff18b89c923ae8d1836b4bec86d2a38666e26b8f274b99adc307115cc3702635d170b1a76a533ede79e5534c70bf7a66aa3850629bb0886a3c945f927f6bb06a5ae019c375dc2366450a638ac7e1d38905bc38b66f67227f2005846e12ed04759f804004ee557800bec9441706c6639b32e2e01517a49ca8e93d5c70d24499809dd86874d8a8300c3765aa73d0f802c29500e57620da4d0dd27b9810b2091ca51a3d316c1ba21eb65617da7c091aaec4eb925b97c0a4dbb47061bf0a544514f61dd65d3a34424923032f1f06a7cf15ad599c66770491fd85d7850d55950af2e1731aa28c2c15e264f55", + "36ef2e4fa654711a340b55375375ab072bb29b96eed7bf7f69d4d283606e3edebc5c27ce7f479d76e659101d238b908473bab9cbe9abfeb2a306f9e799da4505ebc0afdc65567c3a201a1009d326a9c10d14c97318c101fa06efa71744649bf64d4a4281651a2c829a246dd3a662c3750184d3c4f4f9a34666b45d25bf736d8b9091f8704de77e7d69dc3723b92980f827", + "c4d15ed3f27519c84ca3ea7359bcd1cd704b0cf7cf42e9cd1b33f9170883d62405a7692186d37e84b4a95e79b0c72d557e7cf3f5baf17b03a227b12b6e5887f173b18a2184b082e3b92bc4d19f24e5053908fb0c97e8f2debb13eb879f270eef4c342394bb7e094f3fd123795de7e076b286586b7e2877171a5a878b9a879a4f91aefd08908757af5afbf9d3b2c82857fa27572ff069f0b2e60ac71795f02443071801bb30d9df97bbba9986e5746d2f12a98c2c87aa84370d18b1fed1d3993a0bcf5452caf3996de7061635e242ed40b011", + "11792d87cfe7ffd6f501617a444ed9c02f3724b9736a8b17191f8ce4d74c5bd0461bf748ef2cf1b40281969dd872f58afeacb9fd19dcfbcabf9f35004f8b21e7f6ed93cdf49d69cbd530acfb550694e16eb05c462f63dc1c241ae46b4dd7e82b195259d0789bb49cf2509c8d1be0425c332105f6cec58e12bcff46dd10e9118d38fa473f0aeb0586977fd3e8e4cd3b04be" + }, + { /* i=8828 cDividendBits=932 cDivisorBits=202 */ + "0387e739a19097f283973fbf5cdf46355de9b1ab79c48d10a7745e946d3663c2bc82a83d9cac1f69307575a079128e0381212cdba49899343be571d420b0a4d3118c90d55f56ac43a4cbdcfb82c951b141e251c99888634f0aa387112a1d45fbb62651b4ae5f4015f7b17e44e133c3c940715b17", + "e83768eee045222deaeae85a70b0a373813b7e4abc8dd09d69", + "03e47b14ac76e3aaa81b66e155e52d5ab7574c4ebc6b230f2e69f9bc988587f238d6a679490726f0ee03824df3aab246912c9e0ada7500a33097c552c188451be5c502eaeed8cb2599478f1a7bc643e71464cc9a0bca314dc99328", + "44cd3f3fa2b674e096ae6f0270bafa69f4fd34bda7210477af" + }, + { /* i=8829 cDividendBits=2854 cDivisorBits=2620 */ + "386d0440bacaa89cb42624fdefeb152e63312a073d49140c145ec6e6deb7c665d0f283e23f93379bba1902c9e1ab72ea76acd0ded331dad688b1aae23a80d7faa7c7f1fdbfec1c7f5ee2e03c40aee1bdc651297b431572017224ee443328873cca5988576322a938d5ea2701585ce37d565caa15844490dc27cb8e38c06004ca6e8e9c903563fa657c53016ed0136e345e1641bb53f3de664fd51516f6af06c1bf54b99155b5de729119b770faabef02e28316878466010bc4b59a33588bdcf8c8ef5c4f5f7603dada098fd168f37931f285d61b0511fa70dbb7ecadffb1dbd934bfaab5a965d0b62740219fc0e87c574ad0207ddc63dea60802b9dfa272d9ca978391a20e465ea7e5b2f62e3450ab6c06bd6cc48ef7ae42ed06ce8906c1a0b72d6668489aa666161b0c16c453e873b7aecfe7e775773263f6aad927424feb0d413f4f1e57c29e478a6304003fc5c1fbde96c5863a8c788f0f2dd56fa5d4a365cb444105cc", + "07434425c6c1690e7b5e0bd5aca22a2c9b95880ab25e68da695a5949bb1e3c955208d246b432031d63d077af4c6843591bdf51f8f46296040378c653abafb0b1ddb24740887d07b75f60814a5040edd56caa2e7a157857626387229d80bc85c9d1685ac6cda27448c4afe0a96f421d119809e835249c255e579773a1f31d37b35c204294c0483962c4aeb77b8d1ace78ac3ffb47b920ebf06a7411a37ca187f8c92cd4d5df12b249387f68f85130507ffbf6b19b700fa029b57ca258d38fc7989f6181b70de693b5fbfd4d58e2a765450be08e5f475443beb2764327e8cc9fc152abb1a1267133475dbd3d17a735646185af935ed19831aca435988d5ac57a02f52e0f9636c00e1ea63438bebece05b2cd44756e3ca1eba0357e336db47250d366564f95071b451281156d400d2268b43e8ddb3ff32bd3ee2757e7fe289659f8074ac8b14bbf226c", + "07c4ea7d721422ab7580c81f5a320a805c545380705ab8cb9ebc849c5f9f", + "0406122c41b8605de01872a626a0bdf6d2bab0dd0144c665e0e87eb0603642543c1de750e5bc5eaba163f369a77956b9486cfa52b004858ed85f98fe828003061bfc051c5356f15307b8193342c3011798b16267380479ce0701df0966880812707c6ebebdfb68d4d2f319508707b128319f4e29fcc47a38ef1f5ffeb94ce8130bd436b05f83034854b00089580b401f52b0e99aecc8ef9cbdadf4b355f093462524866d0ecc7de3212818e463917b3d8e77990836081a9ed4e52da38033607d7896d7b674460b09327491ea3da78e2ca9a435f50ee8d0ddb2030507c02c762678c142064e72ac3492545fff602f8282f415b588a5fca8cc703cb40b77e7d8ddf4520ed31943002b17d5289e8e9a54595ea8d18cd7767d1607d3b202b3ac461ba38ef265b746e1eaeaf74eaab28c4ae308f7ae500aaa19afc5ba234ce616e89d525e4f08a0f490b8" + }, + { /* i=8830 cDividendBits=61 cDivisorBits=46 */ + "1dedfe78bcb51923", + "1b3d4779e5eb", + "011948", + "11c7d50d7c0b" + }, + { /* i=8831 cDividendBits=876 cDivisorBits=632 */ + "0e347cd1e426a21cce0ea7a3bfc03ecf1cd0d9d8239918df90c0fd229bc45c4e21ffbc01313f4f3b620df9fef8c7887f43f9b6ed2e47a891aadd327e0b66d9d3f24beaf2dd0a2e1f29f668715390bb4db07757768214395d1c39d1c61de2e24b541747f3c21e8d4704a07a67f205", + "d7ec27bb5d5587de860977590dec565530949eed175505e4c389734feb2cacd4f9343a1a9ea4a86a4f4c0fec1b1e95efafbedd94d92494a557ca16fd256a5ad4765677e370e98196df03707f755c9d", + "10d77561148940cc645089e600fc77cd3879b2c47308f7d62810750d090fe4", + "033c8c47b09efe9a3075dd6030bb9c491df43ed88280e6eebc10dee8cfb173b4e9e491235ea96553bba5f75ab72f2c0f359ad7eff2e89d60932c6a85d6c44c7d6132776391ae3afb11c861daef4331" + }, + { /* i=8832 cDividendBits=2656 cDivisorBits=2146 */ + "6b3b5717c80beab57b4e5834172497c97395d34ba8db91e139f8882f6dc6ab8f51514ad4f618864672d2972225c266ad72da992c8e672bd3e409f046d002c5c303e0048079055cf8235fc877d84a27062bb9f4d1f70325acb3fa21d61320608e14840aa866ff28c7b06aa0e4eb0e358581363190297a745694fd7a6dc0998f6d489bad53c3a744e56cb02b647bb2304d1e764eceef2b6d35da7724baea23666bb80ce471ed7b23bdd53ae5cc770c152a8b1f9c68063b12f304fe7e5b6de6eca764ecb2062533aad999883b8aaa26d4d7ec2c0d776cfbc6caf6ca81c67c2f1c20b87baa041e6c5304b55efb6bc1de7585d8c95bb97e1ca37e7d1c54a19004ee5baec25486aca292fdf02e7872d29f93548f7b8dba332b93db32df598251b199779847ac528fb18cac146a61f1ce788ded8a60013957905aa23f843d618c38f34c47c1cbdf787b5937ae8f8e5f", + "024d6ec1fa57e1d412609ad6fb792a1e3f40fd83b3732acceb8bdd8949cff0893ecfdddf040528c871ff17e532376494a24daee5cc7ee68934949aec0927109b111096abade94de755abaf6a6032e49854b7bc0d8c65891c9ae12d1cbcd35ba8980d8d38eedc9fd58fedcef0b8fa5f3d8aefbc42bafb11752f7f990432d0c493e9666d56658eb9e239d6e6b4e873c5c902e5236026d365e6927b5e8c2672550a13e7d667336e39d4082f3f07deda19f2479d29a05f8d1576954d554627d958f4b6ff7d14db5bbb718472173947ec870700f07f2a397e7c1dacf693da8cb19911910e0e76dc26ef15af5f012b32269a2fdd234a182875127d39447fdf571d27d2c02a71e841e894903026028e4a", + "2e928e0d5925c90beeafa1d0337ed6a6a355281d9f6fdb3652631e5b01eb8d0c6d70130cb1c12f0f4f178697d13a0f8a40bdfee09955ca1cb8b07c805e2faddc", + "e3dbf233b4cef61938be317444fc102ae485d656491420652e5d9ccab49adb05681688535149f91873d44bc62e3d8491aa51a4a222004466a12ad5584795be9518fad483ee71889ea863d993fdac60bfe7ea64717fba3087fd4cbc64f2f825d07aae07ec4552cc44117dad066fb4fee484c4a51417df2e23983e8414114b307a752a9408badc5fed1daa87b838cd0363561a2c4c74dae9c7058bcefc04b483f43a0018f87343ee7ed560738c99bc5d9bdeccd763e11e4d57b4162c09a3a71074898f10e33a023090506273c629667a00bbe00ee069e6cdd17ff5e25f616592ae8e257752c0b498d14be5f6166035dde2f5695047e592bf3b612fdace3901c9ff5abe123bcb7ffe6ffe9f44c7" + }, + { /* i=8833 cDividendBits=913 cDivisorBits=88 */ + "f51bf0ca5879f1f00b0108eebd461c617892421013200b4aad3986e767cc67d869ad1b588238dcbbc011500f62790b207b629d68ff264a90d4f59f90858dd3e94982e3706656715d965e3b5b3162fb65dac6bd4661456326f6e8a4189c3013d46c43ddccf7ac720da5ade444837266bfbc12", + "58fb56f7f3c57e2006afba", + "02c12d621fa9477a0b69effdbdc64a4022b7f99c449be77d6d9969f51f174d1bbf902787bc4cdc5c4b69ea166e71c571d23a99e4fc36ef42d1a082555cc4bdc4e69a82ea76c2f315caaf4a27047f43048c032524d3d06407ef97b6c4d9d6fb28f320c264cb942b53", + "37000f44b7e24ecf8884c4" + }, + { /* i=8834 cDividendBits=143 cDivisorBits=8 */ + "21c1bae9b559c776abda6e2657bbd09582f7", + "5f", + "5af7304547021980762c46777def551c53", + "2a" + }, + { /* i=8835 cDividendBits=3379 cDivisorBits=741 */ + "05fd0b711fafae3278498e5c2fcabadbcac75a0902fc66927a451b81bad09c88df9e0d1729dac9648c41c1ba76c3c1882e9787ebf1a8724ccee276ea5eaf8fe9d956765e5f025d02dd269e3ba7a02c2d900e5fff79376a208bd70864d2a3e72d27a31073fa5fac49d7b7c6b857f71a6bc061e38ca885ebfe5f54b7b8507a106c74d8fce6a9d24015c07b63b4aa81040895a878cb1676c67f6695ea98613989c3239a40fc8e41d896051a05d60794bd2a8b8a12f5424f16b50f247b2675c99f13d114bfb1f0b43c275e49a5eab20a46fc6ae76487c5dae0e97ae5e675386ef1351bf991526da532704250be33c73a27307a40363c262f1f8f596b0013bf3798ff5160511305d221cd086100805b414069cc5397a0763708eb41077eefefaefc3b3d41e3bfc938352d9cb173325057e453cd25718b4b7d9270a560a2366ad891e3150b4562cb08d4548a1250e2809f2e706a69aa92c7d7688fb8ce29b76ed6afa16e026dd60ba468f4eb5702434f22ecbdaf91d13f3844b90472033899e216691953e1d097eb38600063d432ca4390d58812b98b07d5aec48db1eb47115d4940d7a82b8144dca843", + "075b224dac001f9ba6989e81825cfb44ec9bbe0bc35489b3676969c92660f46327ac48720713789894de40ad538a4c68246d3709bfdcd2040c53a62a03040d00849c1be931d2238f6d6bc7c0197e761dc59ae0f1a1a0935c9b8ee13ae0", + "d06858a56339817f77d55fe71b82c292f573d21e97925d273ee3e64eecb0c6221cdd67f156de44df40af5e5474eb8b106ff036b81ce1424f94eeeb616d63e54d4e8b16ffde846429722bcc0f09415f8dfdfae3463a2e30af78a29eab583b86fa23e01ba3e514cfb047fde9ed2b914c2f2f953e683ab14802188e9b3e32e16d0a3b3759dd1b9839b9fa5bfddfb9c491949138c3a394d429ca6e8b7b807ee2f28f869c1d00b20758f31d05a0a8eb70790199f7445605c690572b1a252d421e1f2dbc01ce22793193854ae31cd52d457c16976727f96259fe141498f85a7a91bb015075b982362a00297f1d6b8004f88c67b7062dbc60c7a13546876209fec5e5e9e833a49ff012dccf2fad4942fb37be8400b4becc371f998789d24db1433190698e9163c68432e30b4c2522912bac4d7229adbfe871b438675da3fd664edfab92a9faf69398c283979018", + "039cecc165f2f1840291ae73879d0aeeabd0b915910ac9fb7a6df923bf33055aa253ff4ddd2c20b1cc3963e6ecc6f5395bdedb8320b361d29644c2422df7e33fcd79c70d58d24b26e1db8130efd96f06bb860135179b9dd6d2d4812343" + }, + { /* i=8836 cDividendBits=2654 cDivisorBits=2421 */ + "0571dc28cf65514c01999f7466e76d29d6295b397739c12ccc460ab12258a3661815a48fc67ef1a0082eae4d7c9759d59b8ca4c0a97828a03d05905fa63ca48975a0dff30a4e8e4f20cbcfb5e62ff3a23e4e92472c50de9128502f6168279ba4ce01f752831e0b912eb1b5edd37d820af5102188ebf6f37198f1ca2a19ff68c957a138a8cee1d0cf615aeea50d40739e7282c1f2a1f21fd2e9807f3f81a38f6818142096f28fc90ade07f81cbafac0bdbc6b8ee68b6003ce42e6d2af12edf28b15818b85d235c77062fb2e88fcc3df3960dd10c39a9ed4a5d39f438556e78f25d4ec09d677b866e2be66d0832a57d154f37df48cb6cdf693270355a8bf5e97c56e4a9fe1ec904e4be2ec0945fc35591cdc143590cdd17466a8cd50ea813797f666e22fed687e98d3dfecd7c17900173e7eb90a89093e33f319b85f4ef946344a465c44a2edcb4bb731cf329f", + "145a66f553aec4ed4b57abdbd6f96aa96a88b5b057234199c3db2dff478d90c9fdd294599a3fb1a83cfefd65cff9ac078a400f7d7383c430da93384a221c0afd36fc83917defd9c495ffd5541e77e5f808539778f3b65d9a30780930037cd2ad544995ae32cb3f58fcc9afc7f013eb9e91e6a6131be92f9140ed6086a98cb8d84277f9a3707b78846bf6fd9306961d100ffb9667f6861acaa5bd38b52a773772db60d0034f560082d0ca46fb3b0fbc41a803f2667ba1e407e598ba281f3395bc18e9a95731adb3599e0d63515aa095c67a1b5216fe119af54941c55ce5b44f9134a64cdedccae4412c6050c7e264f8c45ccb861cbb0d65edc2f2ef60b406633ae030b761c32800d49f355f70048e815975e77c1de88587d93b32bd891eea93c5732d9aec5956b0d9039e6db9370ae4", + "447bda8ccb87a6ff875c64d837bd5528feddeed44535c1979723757bad", + "04b338111185b4a6739b8fc8fb110cb9b4037b0288234d4267510aa7ba6b20968d8fe78330eae343bf7baf7eec4118141cb59728fce3dde0b38577aefeb4e6b84ddc2aed96221f820899db183fa8324600c65d6fc873e1209853eb84840a7230440948252780730c2397d4db54fa5cd3026cc3dd11311e30a683593a413b3a453708f9fd9911f0961601fb5e345359751d8a25f2c851ea0f6d45dfd0a804538cd94cf41bbf7ebc5053e75a27a6d66487bf6b7395052039d5c40385e5f3ef223db269e895af0453a03366f126a0bbeb701b2bcedc31ea954bde4a2ad3655daf9c0bb8a0ddb66b021a748bc8964240fb9533e16dfddf9f4418e5631afb5edf490f1dacdb3ecddd69c2901e9ceeaeaafeb27145c4c70bf7aeca034e7670cd04fe4a3b34c3145e175efffa6e726f2d4a8b" + }, + { /* i=8837 cDividendBits=2796 cDivisorBits=2244 */ + "0c9289efe02eb8a5462505161ecd9f7739305e17781bf48b6ec30993f210f9eb6d17d0ab57256d4f6df777806f6c60a62689490f360fbc1289aea08335f3edb7c563c22bc9fb995f9d8a88536b55c8998b317edaa1001309a15e78bb5474bf9d2d755d9b38501c6aeeb7f87b47fa76c232d291749627490b77182b28ff89063bc4fa9b991f5a480e18859fa5af837c296eb8887d12db2575548a38fe35deba1fd16b256775dd84f1272a1ea8bfa07cbd64a5721fc753701869980db39228536ed018afbd5a49482dbb07b833df3fec823da7c86c6a9ce39c79c8aafb73d21a0c18c0f2c76294ea734cd7d64cd613c05282c7fb05d4c667810210822dd51d993bf5d2024265d611a98804e88af03fde30b887167302c7ffa1df1b45d5b46187964c8d363e19f15ebd46ac4fa1e37910b3700e366f1142ba67240686118423025df71dee536e6679d0d146d5ef3d12997652fe05ed86d4efd50bcc98822e2d", + "0d4ccb9c79c4ffb4d511fb6149ef3c0e2f5ededb69e03d58b5eeb8a1ed517b67cc8e75b4310c01b04bc155592d80b1b0d071c10520a0c8d8daad637a083d604b9954caa1d4b92cf3ee7e775492d7c569893a35b767ebe91098b33b387186bffdb52725948659f7ef3b5653b46e3e6593cc9957a6d09bbb3349e44f962cdbcb146b17cf329cc6ed5c28b8a55859af4590283b3252f22bbd5ef8f6f4adb307736b30b80a48343e9631b7ad7b4d4b9637274946f57a509ff48b7adbcf121397768c6b1f6f16b39a51fba4542f2eb3d55ff93fb76620c9ec79ac818938e52857a57c1a4945e2ae373b11e58ef877a9b98692acb4bb44c3b62ced0ac0c95658682546a5e193128aece5076c4794ea25ecf215cb4cbe756dd1fce674", + "f1fee82593af750133be274ad4ad79cadfadcd344bace8531ae12a2d68898f87b5bd3c61af65d4ddc003d28c059ca7ecb8a8c8c165f2bd50553a0706527ff62411752d1803", + "0790c1efe1c4c3186dd8fee666aa68080e50578b314a2a5337f723b95aa00df2322eb8d9d2bf3726261c67b9678ec64da0fe0c82645aab9cecbbef3bd147e7c4a11423f26191fe6865d91bee6ef3d560b16bf1b4a29d94a4343c4440954b143b062b473619042b61e6c482419673b4d6292ddb51f56454fb1b866c098b50a461ccb946e71b18dd65750f32f501c38a1f6b819406df7b1cfad204fd321ffdc2d3069c200eb7bb016ad943b5dd818156a6557ccf2f1dc9c6e5b1d6654ef71f5acdef17a2fc98290c75530050298a6745cd351906f69c0537d1aeb6c1f5d400c791876a813ef826abc095d63e9d811532abdcfdf424f7998fb95d9a0562c5124bae1cb8f27a15df56e97b0b457882d4caa6c7d7a54357e68c9ad1" + }, + { /* i=8838 cDividendBits=993 cDivisorBits=668 */ + "62f54a93ef41ad3821ea443b6bcebd85368f8135faeac24d91cca6c99dbcb33095bdb915b8043f3b08bddae4f02fa77d8b7fcafd5cec4f1cd0ac7ab8cd9fc1cce0f248e30c7d8c66b1feaea752b9b6dca405bfbcbdbc49b0e6c327055dccae080a7608532252079d278ab2b7980be10c92c786f067a77b568aca78c1", + "0f8649a2408e799018ad3d9c7465aff27429595e0302ea727cc0708c817404094b2878f0a031b7d2df9eaa4183ef23fba2a5183ac134549f7addc865cbca6ae3a02165de7be5060bbc59af4a3caf6add26719451", + "065fd1f45425218f50d804df3f343fa8c68f1da0fa129215286f27b13f3a52372d14c695de6f9f8ebc", + "0a121270a2f4f9e23be0e7b3da6aa8f5baeaa53bd2650d60e4e7703b8899087a8e9ac2e790c71e8b070ad04d905a468ff3844a4e7e5e102c3fb64a58dce390caa036661e6c695a79c61f66a5ca10728311cd9f45" + }, + { /* i=8839 cDividendBits=165 cDivisorBits=94 */ + "0e6c6b8cce8a9826afd33defd2c30d2a6193c930a9", + "22ae80fc494eaa7e793e6b70", + "6a7751613aea123b90", + "11f6c3fba080c1541009f1a9" + }, + { /* i=8840 cDividendBits=2690 cDivisorBits=1785 */ + "03988b8cfa3b29811a5d7d62675cd78f0fb97da7087d93a72e745818ac37628f8cc65fc3261153749168c421cdc625971c0f7c7c533170414f7ca01cb9cb1de6c390563d0d48b95e22ea19295cbe4fa1cd372863cae336c9f5d2d685eb5f085bbf6249b83f7e2d088fc81386eddd8164e07aaf31fbbc5c3f7dd9a4966d4e9eae52399eb030c774cd47e6f479a135dc867f91cbf0c2cf6a72319eec5c1b564429bfa21f9a0b1979be04c6b3cffa9cf9df92bbb1518b778345cda9e70ff6baa4df6506fc02a3f49b9d9ed55418b5e5ce46cae0f7fb12fcb19556aecf5b1edd40054b2b25fff5131cc10cedbf2c2a0f907f2c3c38489f7f0beab255ffe4bf79d24ffac1bc7624a399e5e7e4a2a7c8900ec7a3ea17cd46f7f4b6046350e5e11f8f27982431d170260b46e7051b772806385858673987b80669fbd5c7495bbb285aa55cb169378151e22bffbfc71757f5ce09bf", + "0170a7231facc710ccb80d9c2ce9d1683074ad83df7a480d29bd0bc256f54618de218808a3a44ffc17d5743a8f183410ae9db5827ae6639f0fc5bedd59a6b7e199af6b67b06d3e71786cd0c2465a2bad878fdc8133dddc909604763c1141ed53337e59cb9fbad16f41ae977d2a73dd7cfc5199672d38f11b336f12bd40265d719f6e949cc218cfc5f9d1748eb5923a682e1b62443082f7e281f567ee1dcf8d64da8b2a29893fd4b7b9e98fffbab4661342b05e2b517948d98518acd7ae71effd75013acd4852a6922ace98393e9d4b5792984123968706f17e2eab6b7e32f61c", + "027f3ebf8a299bdad95590a72a3cbffb2dacd71f8fcf35fc10ae6a95c9ce31588e95e4b31b22ac31fd93b4c46200c4b8199ccf3e7071ab9125d88de50677ebb0b67ced7a84932bb9bc0911c41884792c8b91cf2f00d690119d53394081d42274e5f59a6e9e025f79c38ea1bd442c98ebe0c9", + "015cf7cb1577555f4251cba25e77045cf873913a0848f745e33371b7a3a876a67a49c7f70c11cbaf3a2a7b11324f8cb17ff756f046c35a63b551c77b75d8c435af0873c1f89586a4b38a6862841f7372132e4fa87f225bee825a07086dfc73043910572dd25ed1fbcba58629a6b978f206c6c1581acdbbae46d2612ce1c15101cf643eaa27683903c1a0f962cd56a7bba1f5c4fc3ef9f8e604c139d8b2744d040288003b5108d5e59433a2d87ca9b44a55b77f5206febaa3d8a2e913afae6555bebe17844ffd20b7f7cdb70b230d498637b4011a71efcb6d1fbb99ccbcbe4dc3" + }, + { /* i=8841 cDividendBits=3472 cDivisorBits=1649 */ + "14ec7c6fefd181354b130d55cc7c9c08f5149b5fba8e433b1c8d64c01cfca9c14aa4668b961890b898c1227d6ef1d963b13cac37944f9c37256b7f7b08248ad229db0c3f193bce6385c4745094e8dfd8c30f97784672da78f386ab6d0e22cb47532b93dcfa529d7d4d97c2fa02843507375418cfc3ac2cf51fe79622b5128ae9e18f431e93f7fa64515467cc97b874989bf0f9c72ca295aa3c06b19c65604940285d1a425b9fc8eef725406b820bcd93e11ce0fb1537799d2fa214f2c5bb6694f952b7c0d5f8a95df6559fc92d2a761af4242aaeae524a4406534658965c5ab2d559ffe039121dabba67470d2901522f67522ada2d0d37fdd8c1bf4913d513f67be8379fe2b6f60f5f9cfb2013d91e7c614345965b6d002db6b5612ec1ee76a08817e38cb33cab5973e77f345ce9348679f2518c03e7d7b666d45d506b75be96e1e5d59b7c648e2da1fcb8a333db69b4f3676f5cb6c621481913a5e436c80dbe181203f0835936d481fceee5e58c5a6fe7afb87a22367300a5e44860b2b0291ca868fbcb0876dcaa787e31238abf68ecee75660d20ac0543308a08fbe0bf4e7a4296010ece237f90b528b4dbec6d3cabaa5b", + "4ad22f082b0b7792dbe0f85591565cfc72bc40d5f5302bb48db1b95c2b3ab2ac552840f977f45e990efdb58eecd240aede52bc7d6c1695190443884aee1c557336a3f92e98660313dbc25780ce10057335da3ff0212bb0aa5692859205ac61233b60db454cc5eaf2c8198616e6f2c874fb32060887674d54e68422ec2583a1605c80a99f7e9952a7c6fabc25eb02c466a9f85f1fd2b0e470ecfa137932f0947943cc26332380c295c9ced41082fda78e8f83da1402f544e6c2bb243d9f5721641ba21a50dd53a8afc3ff93eb11a2", + "479734c069a01a89fbb120bc3ad94e34360c645099f3fd31ea4c032cd55e50eb332bc31fc20091ce153f9f8ea8c5bb21b235ba1d18444bebe1f9c8109335fbd6dc040b07f9fd27c9518f24683113d6b51880bcccd1d6ab8813fa122d00090a7f25d5d3bdcef2ffd68f738419d6636f863a0befff2b0b5494b7a1260fb4cd7b8a0f67c857e529dd1ea30971c9818a350926c509872c26e563db1658b40b92afa1923884c70f5c1c8b9230ca3c58567d735ab980e9751d7d1b8645bbcce13e73dc51c12253af7093256a454346ffd517efe3284245d303f52a9150abdda5644d5a01e6eaf4", + "0e8799e28556e6733453c590d809fefb4b3f41d4ea1a96e8e087df356d3a1d309efddbc790c99f2fe90e58efefdab62ba3e42252439126d14b031b0b4960f42d89d16b0b9b2549d239106d350d558e67af2580831af2057ddd66650fbbbcb5ace95dca8f58914b675f800f0e9b50f450e37e2d27c80bccf3574c78bffd76b1ed04463797329d7957fccc4f1aebe711ea637fb30569109abb1f8612cfcd691efcf1bb50e682fea19a38faf067761426d8b0d3b1b667fe633ef420d204838a4197f676e21c8b2b2ac0c267e8f4c7f3" + }, + { /* i=8842 cDividendBits=3986 cDivisorBits=1471 */ + "032127fc10cee3801dde1dc14a57911096619506d2ea61f21d36c847c973ec1436355daefd5ea78dd2b5b0e9177dc852e644204780ed6600a96b096d67f6ccec424fe5cd3dc7f556b48a3dc84d7c002e9b72c9be963aa7453f1cabedf8ca9e3e21426f48d74d7777f92d423deccb7c0d56928c578035981c890dbb6b9853b460fa3187365c92b9a1e82d767c2fc46bd90e9d6a24e4760750d0a73dc187f407d64e1dc934e16c79d070d94d597e226b6b906052a81fe2834df3dd54849ad3e824bb8d1da2e8d79f437b6f0dcee71839ce1ff4843873d99cb14d6c25815bda011949080b9a6ba634a8293c88f8d7b5dc2de70e9e31d1ca613dc13518af6b7a2a8c04a762a923464d50ea664ceff8612ab1e59abd2d547b542c333b9d0362983d05d1fe36539c1cfed58e0ac7efbc7d596bbb77aa812ed37ab8f84dd05b98892bc554b29cf01d527f4a61fde19c3fa5dc2c37e88db68dae0c53e5252306dac100f8506cfd076c1db1e5fce85ed81b8743187ba9fd6a0cf2677e0e41e3213f4824961f6022cb126d9a4db3f7c25a7715d423099e2c0f0f57a2cb1cb85c62adb16cb413a65c9f02e6c1a0000d7cabf67e83553d637fbd3af9d0b4e901da6ae0cd5327d9fb303cb43fcea0824d3f6a146f66c3dcdd5b50df97720656c013188ae6605ee3390f26b0ef20acb68a7fcff7ef49fe517700", + "5ec1f60e64dab429f73e230a1dcc081c0614d83b88e478204d94619497884ca3c46ff9c6e5092f3c358d01786eb6e2680ad24b28a0621ba26f95277c6b5ddc7b44975c34bb5a72895a29b93990990cc7d04846dc8eb5ea1c33170859c29d46189c89ff7dc297be708dd0412d793d0dc92046fdfb31067fc2d129daade047d7ceeecf6a1d95f6658bb3d690d36d2f56fdce77b28508e669c61f56c0430ebcc31fd38bd8deaab4cf7984db4cfc4417a48c1d4f0933c79205d4", + "08746d29f95efde28e1cb76a4c3b3bb5aa3402fddf9d6175c418432beacb2e5a558872c5092136e05b9569958fec1ccdf8f7e89c0abea91037e9cdd6acd5e416560ef5afc29fb78f12482d10d18f68d101a96130b76a9bdd50160cbf58c8fe6a740d057160cac5f43e4a89fead5ee93b713beb9ee7604309da0ec1558c454f9d892011f2c85fae03e8196b6ed8fced50d4fc869425994120f832f2ca75bdb81bbdb8ef965ca433bde197ffc8099af8fb0e01c51940a7d09d8ff003d88777971a5b080fcd9d0ecc5b92026dc7f4fad99e71fc1fb5f51f51735af48abac7ae2d998054cfc76b342df2a9a89821dd71699c5caf3089e4a2db2bf7a4c41ac1cdc6ae8c3add5f779e9ffd170029ae91988b9b8ba65e09898bb056aff2114d2dfc91e7d9dbed670a1e3ead750d046e07b4e85cf9804d8d3b809da937c4cd", + "507357f4fc19d6f2b3423a10cbfd4195a7cefed2d2c1c0386b1bb1dea50ce533770a784b2ce35655a5333bfb218ba0d0705789f0673028a376dd6db218ae31e9554f7f4077e03c268fd23942b100bc7b660d1e82ee428240a685b4b05a25d10b5fdcbb57b983868adcf6bdfc49e59d776c6e5efbd7275f99df8b4428dc449067d8b1330409a3748b3664aa77b5e22b8cc433e876bf3689fe4bac2e6a8bafa4805dc5f9f1d3df66386e180ecd2b6251a2286f12cb2d607c3c" + }, + { /* i=8843 cDividendBits=3105 cDivisorBits=2261 */ + "0171591b88ec0d7620ad05bf53841d9c568cce3bb6714e8bcc09ef33ac4bee5b8f8e0c8b0381e2f7a80646aaaf1b93707dba0c82502c75a31f25aab469e74dfd619443cc95ee6897ba5b66332595d56faeee22b2b1e376f1216e65473b79c2ba907f28fe2f416155f70553568eba25b09151106c7f15f8d6d07c3dda5bf7396e2fe381935bf71b2f3ed4a7d5fb567403f588fcc86194a82d7191cc4606e26d47a9a6f42463aa68d211b33052eea7f724a297b66b09ddfcb6a584bb853321d1d4b7b575dc9b79030e1b022fdc04e50dc90e090a3cd84bb9edcf57baf2c83b40fc5dc6f79c1546bfd77370f1755fd9fd05f41016291a0a36741a3991bf8c438599f849188e8822bda055d384f963d0445419119dab24c08d30141bb2d18f60ee4fba3cd919db7e4f6a55cab04743efef02657d36b39226cbcb4316083631b3386243fbc1bc334e0686dc979ba1d1ca1cdce9a3a953ff51169491cde84e520a0871fffedd0f0da20c7afaf32281a8410e27ebbeb868cc1227ac40ae8043fbf68f0311882e3a7b", + "1f1317d4e7e4a800cca17645ff290208554b71f0e1d0f7a8e57346b5def0197caf89f21e489a34d66baee78c4bc2a4e235fa223bd1487febc08f74e6a3273f797f0b16fd10609022195bb19b416081e382f9ab643db5460b9bbf0d13b67bd8a915cd2f953338792502646040ea9c501efcda0662f161218c91b7964c0f729d140c7523141b33e935ae45c9ec61170a466e6dd30775880d3d86ba0b59fcb81728fb09aa82ea8550241c69ad8b78c5a588c6abbe55b60cda258f90ece8518339182abc62439ff6e70aece17fe45a3ab8b0502ab08067138b06211996f01ebddad91c2a89a577d5be271af871f0668b244682f8b349499819c1400a5687bb377b27e957cf3e8f63961c9580b0049a4aafac11f75500c82d59c7e812c0", + "0be2c798747d46bd9dec734f8c0ddc455875da0169ec37ba06d671d6a1640c59aaa913301118a66b36e7f4b28592d11dd3d1fe9f14b71895b3edf80b516728c8bfb7829948d2c184924d8d4a16638d00185848c549b3076d37410aba9aaea31c1ebecb9a5d81e6094f32", + "0d48ba7a87a4b4758a18e15c7b734ca798dd1aca094f40d30b19d0b16cb12663a6515e6af88e213207c8eb073e6e3297523236db5285b355d04909df51fb7d5b760c6679329378e8a18eb538e8c9fc187550a69bcb6115588a839c5317cfdc1a4801957d059e472ccaeb88af496703eb682d8acc2053be7d5011cb0cff4a410f4ebbd2bf5a8b6c18a06b2c811ea100ce6be13d06c3247ddd16b94d492121f03231cb11d1ffd1da9e5989d49a73b0ad5361ae983eea670456e24786b49acef22521921cdfd15a85f06c7d74edcec7a4609578f84170a297b4b021252de7070dfe990abe5c2b00d276040cc9525e9fa21e4216c282bd1ccab853bb21c3220e082a8824410e481dba8348bd2de909e99e02a9af853573b816b65150fb" + }, + { /* i=8844 cDividendBits=47 cDivisorBits=7 */ + "3eee72e83744", + "4a", + "d9b571d73b", + "36" + }, + { /* i=8845 cDividendBits=1372 cDivisorBits=374 */ + "01cadd10b802da8f90f71ab81dde09871bc02182a2be1bdb086a8ee6787161fffaf4d503d6ac90a0dc54fb96c65c24b8fc03573f981fa135b0a1309abc6916b1837a708981df9b85c6e0611ddf05e9bda42008a6406b1c10913c54f00201964a6e86c06e6b11ddb921e4a96a5e1d4e5dcb7dbed9ac026b8b975c444d861cb526ac7ec4d1090101696bd02921825066b419c74758f9c6a80c22a419ca10f68b02da67e2088fe56277d8fc443f", + "13d036af923f526538628e6a32c58ad5385adb9301b16589603f1dcd9779f02b3e106da0105694ac0f74d675125db7", + "1728c9cdb1e4d662716bd15c8535ec9369d3069a1531c3fc8a91f7c8b96f9d2a99c7ab7d3a4a89a9eecd3eb31e8cb2c8f38a1d7e7d7e35d20ad92c2f1c7937b74d44cb5879c01e51e90d70ee9e33e59726dbd4f5388d64d43018de8afc8a972b74e3194a834a97c1ec8386971a756e4c43abe23b8cc7b1cfafbaa4ed5d", + "06f30696b07eb813a0db348cf5d2bb0e8c4892bdf7eec2d7000330fa212f019ccb7f64428a690d26cf05395151cdc4" + }, + { /* i=8846 cDividendBits=1748 cDivisorBits=1746 */ + "04d660fc1a3073372372bdd5d804f7e108921974fc8749483b94b1a8066752acfc232e0d38d068008ad62c9edd806b6ff748891d1efd941a8f5ea4a9de202c918fee7d5ad1b9cde3679a39418554f4830bfb0c014dede42705e947c74905dea2ff3cb9bd43339873f4cb3ae3b96f5bd96ccbdf6f6b587602fac656a3d6482046f2125ee195057a67a3ab39cdb4973f36cec2ad2060db7a11ac776a40b8eef699a07ddea4731ebcae8b233cdc83139d91c48728bd4712c159efa8dc408b7a21bd9aa4c5ec39f4849cd3e82a558849bd3fdec2b6fb22802f239a1850", + "028f09d9fbd5612a10b655a1ef6d50e702680a364b006b4579a5e176a04d20a4fbe5121635c15fca1cfced212112f331e006026cfc8664feab4e38bcc13f900e607b5ba1d6f7ff2a1e9268acd85f89cad0d2f64cbdb97d5222daa325547b123c51b42e910fd3f3392be9650cb91eb19a9b4d8d5aed9e339f8b69e00d15a2ffe350e28c64be4f5513041a6bb9813ce83a6abb3bfa9af75601c1dd194afc95af01dc48434434db978c2a435a48af06c1b67c123616e9db9fe668ed9f5a1c5b104e39d6dc5b761a0c6c9eef212c14519791e79ef85ec93350627fbbc3", + "01", + "024757221e5b120d12bc6833e897a6fa062a0f3eb186de02c1eed031661a3208003e1bf7030f08366dd93f7dbc6d783e174286b022772f1be4106bed1ce09c832f7321b8fac1ceb94907d094acf56ab83b2815b4903466d4e30ea4a1f48acc66ad888b2c335fa53ac8e1d5d70050aa3ed17e52147dba42636f5c7696c0a52063a12fd27cd6b625549f90ce14335a56fc64077125c5e4240fea9a50f5bc594797c4359b603e43252260dfe293d40cdbdb4874f2a65d37217386bb3ce66f1f116f60cde990c3da783034f9092973f825adf723be9c594cdec11a5c8d" + }, + { /* i=8847 cDividendBits=2421 cDivisorBits=2107 */ + "0b5f21e46a2113b73d807deee96c8a0d877cda9b4fdcaf3cdd68e0f9b0c7a0ac38d830d623d24ce7cea3ca9982f049d8e8f56d153cae6ec4a0874b146e4798de333d397e0467f489d804297ef8d64e05c163c7d1694474945ea7aba4e4e2fcc422001b0d5802512c363122d6ea76d997d54722c06a1d565407d590c68f9f06991661e2dd62d2716998501af0967d589ecb863712b9d419518bcec40abc3bed8c8196557754a3597decedf5cd2632182d503a863450f93b76b5e03bcac57a1e68f362bf563384f5aff7ea959206d1ea0d167ae593f846902a4d508549523be075e1f31995540d4fd51250c2f88afec06c6c7b43eff318bb97c76aecee6f6c796d1b0d507f5c86a3b4f87e69a5e231a6687dad94efeace2e39f32a04fbb24e1ba24b4d2170058299ed03468b35d90b99", + "03e6b96dcc86f0b4de933db7ac30cd65b89ac92566bb4df493f1c7a2281fef682c63c464192adb97396da3add401f7e9274b21bb1e671c18edb5595ed486a0f905c85b167f34e25c67483ce24555a96fc781d28e4c68f6803f3167516832935e6c77039eec3a42ab3de3932ec4812d74f607d9b838ada947b068f479820cb492eda4bbecabeaf68c17faebdb2937b2a9ca1ebb472e2b07bb9a0ee93f83614d64a587e4a137eefdac8d860b9ad1332c10a20fa8e83291d0ebf1c016d7fc18b4f4b4e103e15f76591e1b6a248d9fdb4023e363a5c08edd8324ab05ae09e6c7838699a8e1948d73e29008b16299797ab7ec6482a3da149c25cbbe4f9ebfa272b987382550b4b69e31dc", + "02ea33a90d07ffbef9cc57390cd7eb9fae912f25f89969a5fb25473e27e332eb48e7a7c7098c7869", + "540db134aa1a761c902f660c04dbc557eaf543debb9d0c76dd59d247bd6f63cd75570f14417abcc182b4c77fe243019e8054e9e082b305022444840983c1771c6e9cb5a4a7d4796a9b4a1ff9bd67bfa7b38255f51f0bdbf46d58e44a6234b29ab99edb7de02680a3c2572127c8643eb1001a23e2403c48ccb34dcd2d209aa0e1dc6a1f52265e7a67db47d9a3c6b3e51c0e88266db3dd28a72c32a0f81f2b64c45915b008ef20e095ba0b5eb4bb0fb813c4378c20a6f03a22492cf70ec4e958c41ac17b77dc57b3f962876c7bf7779a422029f7b55fa69c8d6a678e07bb5db560e6c23b35cd7e48bbc802c4352775066ede9eab89456f2235ae664deaf6603fe59dc28a2747785d" + }, + { /* i=8848 cDividendBits=1152 cDivisorBits=449 */ + "e6b2c05fefb6d8f95e5ab37edbb8820bcc5a9eb6ad7f4f489b554e6622183d09b3d62efcd1fc4179a11ac4efedc5472a3bcfc9286aec1ef6a8ccfd0154e9425f64cabbec3aa3d73b3e5da9ff14f35689a0401679feec4bc159482e0e26547fe2fa3b24febd4875ef8948a62320786ec07dbf4f59702262fd45cd0aa8d14b0321336a7a46c0f23bfaebca25360ca7c283", + "015a53906e674469700567283f6446c5cb87a41419a4afeea97f0786119455d872b24f8a53ed1bbef91df8efeee4ea776eb09fdd5601f17667", + "aa87769018a4d5b3e1e58cb3819eba383f326f8390f7dbd0f02c2e49e50e624386ebaaa5acc416da6af08f1ae8e5c34486b61656c050687edb8728f3f9720890a492cfc4d3a72cc7deb6c4091c12c6c7eeebe8a5efbdb6c2", + "010b4b6dcf423b8506f7fd8669417d395836429a4caa5e562a451a0ee48072e7e9a786913c16b3e2886bd8b80c5bd6cfdf307dbf755673ce75" + }, + { /* i=8849 cDividendBits=4005 cDivisorBits=440 */ + "027ca02bb9040f52b7325448d0306f4588f7b4eadb8a03c17bb452ccea017b0945a9a5bfa86e5bbf626446205f05ae2a3047d68fc3ded1c8e5e3f525aa4005db1abf96fe672686571bcc9caf536926780f75732f3525a97f9dd2211343ac465d288cc06ef70aa3d7307c2ecd7186e6525be92fb660efd744f8190acb5ba7ac1133231ec05f2495cfbb71efafc44966dfe807793f41db939c7b142c5e61f64cc50288121e1603baf7e5ed3440e876b97306e6195cfc808dfdf9ecd6182fe8ba1b93a6d51d1e16d71bf3a73736918f197682d8fea556c12a26131a4bdd81ad723c055331c9d7f57b10cd8dda956cb70cb5226f26f97630c33ff21dfe1f55023b55b6a7fcbb16f37158e1be8005a34605dee4d3e6c076aa9d248d33ddb8c2dc8bd7f6ee2215cd437ab7f49cd94061e881d8e7a749f89f79e3726210919d20e0f6bfacbebed9d7f412a3142ec400188893f398fb9c4211946632f1ecff4e322573a2275fc3ab2cab8250307d5325156add99c3a28e2d2d41b8b662955f7643841206f05f3fac38081d2f1de56587185f2c68e027660434b8e755832d24a145ac23ae4ab0833d1d46b4c13173c139dc4424ba0bb416e785c6c8e5fc13d535c51fe7a9879ba8f8a34b219e07feb214e088d7cc7b9d3306fba28c3da40cae178cdd58e6358fac98534f40117785610d365132eb02b447e746", + "1552e78f8affa9471e9a498eeb92fb5ec14e156c223eb1805a3421e1aa74bfca94e08457476411f18106e893ee892ef150c2f06c0ac567", + "1ddae831b7d8d23e93ddaa2e7289ce8fa8e6bee6bdef2a4d1c46a7989ed52c06ac0aa66a3640ca59ef47310be58367e3e62126bb0931fc1a8928006a3665abe7dc50f542b4134be7e20048c26a2d65c63e8a2986a4a2b560a1d730875c2b4a91c71183cc86dea781f2be42d8c88af7c95237086001f2c0b2e2395d596d0b602f3c1a22a46e7b76a78d0512ca99f101926eb3234ec65a1723379452123aeee957b068c360d92d58ce722bef710115d87526cf0485beebc1d87e6f654ec138a75e41faaa6f4943ee17ca345e70a54cc2ede096af2f7e8a49f540776e0888202bf8604f78175ce36a0f2b29979041dcf00032593b4b34497b9d56b0aa67d41a83596e300a0151fd5361e5fc1684c417e0e7d598e95f6d1460ce31542a3a275d05f6e607eecfd1a1154d2e8e52972e3eef75a9cde310af90b12bf763284d4391afeb58549e50c686d8278139a7f068130b49aa14fb0898d459d98c78f582869ce1bf6e5e76af1f7f010ed9833c9034872dc6a6961a4c659d37da2a8b5db0fe1b84bb301d35f3e7f3802ae2872846d0053be46c3b731cbba76a93aa90c77437c2985cea6eef76bb9f09d8d990164ed0731da43902a4a582d9816b7be4c0b80655", + "05af9a05dfc9676d757478e76d9899aac9c8bb04d1aa50657b16aeeb8b9fc84558c7a611ff6b01bee875d561f408660f7d861f720bf213" + }, + { /* i=8850 cDividendBits=717 cDivisorBits=474 */ + "03b2d80eee747bdb8c0f8698d7351121253f976b58fc2a392d56c1ee9972299e7af867893bfb050881faa265f11fd5ea0f5af1340e3a619cef23e23d93d6a3fc88a0b63bce7494c68f3567f0129b54bb33c1566a0a719dd871f2", + "334aef635754032b49a958504752801898d3f12dfeb4f2c567ff350e92ba1fe1b9c282f6d710b14d53de09e61acd06fd436a2d6c240fde35433536", + "1275a99613d2e64ca2227a106dbe4c2b4f5bc8943b97124f62052f81c56576", + "0965e99e521cbe7ab425b805f64d20846141a500239462ac0f1a491263a8b2498a631dfa72a14308112e6a017ff5735354f99ff4a5618f64519d0e" + }, + { /* i=8851 cDividendBits=788 cDivisorBits=386 */ + "05c965ac3f2b6865aa8b7b2dba48c7e836b8068fb8a7c9c0a03d1530d528a3578ba83f506e59d5606f8619f5892edc44355dee2b689859c59ac250b33773704568d23410e7c4fffae0300a2af2d4aab8638fe59d85ce205b7f68d4f8af26bfc2d11a63", + "03f1e17b5c30367d875dbcef39b8ea2328a64713789afcac676c5bd5e511b6dd2b4a5670a3489555733f2565978196a432", + "017786f4802daeb2c8af82735098a98b11553c5d35bff0a977be727284c2f089603338102a65019f45de3c62019ec6bbf76749", + "02a192ec23885f72ef392ba69dd3126d73103296b954712a2705fb97d45668ed00375f0a0c503754f23e424c73408e2a21" + }, + { /* i=8852 cDividendBits=544 cDivisorBits=274 */ + "2fd92d5687c9388c493df10cc06d799f04d58acb8685c35c0567e55247939612357f38a51deb319a0e8fbc86b08f158cb1b67cc6fa5172c660c4ce52bb1438400af8b1d1", + "76a96a8428fe7bde87d2b0763c7d80759e0ffbeef8947c7262365237ef8adb790169", + "673a47681138e239da01cdbe8091d533acc18957591ad03909da12f5857dcf474fbc", + "024ec17b32a9e751e92495a1ef27df47dbd00ae793dc885b56b59ccc80943b8d41b5" + }, + { /* i=8853 cDividendBits=2847 cDivisorBits=1549 */ + "2293eaaa7011b497fa821bd6bed2d186758d6fbcf32237d0ced31df9692720805b046b174caee405d5a62832b3a01a4a9775f5f4045802dd5b458ec60e0f2faea377befe5b3c14cff8d54bda42c275cbf023bc67469376318404896823712ee19bb10da98b004dcb0afc7ebc0ff24b378492eb66bc6e42ecab54b1e27a578acd22ab0980e57d6cb92fa0457aa4ac7a8e6fc941d466eb2dccb6479da11894c87d5607a3930aab13c2a687ab3ccfb3cd24609bbe74ee715314e228bc9dcf268e361fc0e894b04ddb01f5f62cfdeff693404665c399a1b0b2eef8c561e559ab6f8da2adb11aba66b21f69c9940973e8a2d81fa15284f49426e6bbe7c5133090088f6e8060b0743c7162de6da22e53093ef9af3d70f8a56b02a269e05408f7672e2e3e072143e78cbac31edc3fa4ef2bb4dd2c850235138e4ebf636764044d4a96579f4553c5797667bb93abf01f5b1982b9cdef34dc17aaf22f4a03f98b44f04d8baa2540f9", + "08485dfab72d98a883e682c1150186d5b4e9d1aaa024c44d17bc126fafc0ca9314f68082a8b390ec0b938044bb309e52a523995077278c957e1ccad874c2b70b8f6950af8bea02efa1407114dfa900b13813a9d60d8b5b95ef50d26a780d349bb0a7bb566fc95bddb7fd44e9764277cbee2720fd635df8d6f79ec2c829b65efa9c532372b70ec4dff1454637cacf035a4fcc1be29007351c8ff7e0947b454cf2c577e5e66308c8b96cf88264984274d3a5596509e6379b0db168bd4adfad13b5fbfa", + "042cb9c2b10d89dbc8d35c4115a14e6e1ecae40667593dea322aab2610cafd61a81c011dc3eda8283a0c47aee45923fe880b95c191d244f0a14de5a4cb78acae86adbae7bef50f1aa8b852f0ae115889e6ea856d7f43833f27c7ff670508b10bdbc1cdc785f8787c324260999eab8e50162a7813e23a93e955f8a913d4a609e3c3dfaf4351a8a03ac91c2111d8e5245a8893910cfa78eb194cc40eb397dbff2b210e8e", + "08483996f420883a3a98b3cc924c8abe41c2089dfea0ca51ab94cc1ac33f3dfb54c0dddc6c4ae67832b7ed8b16dd6a7fa318cb5bb9652dae1361522121956b384fdfa0f384465d2ca141ed21ab9373891426f269298f0e0b4444b05f1380ea4c8cecfaaeedbb0e9346707e4425b654badda9883d6263bdae3f5f6dd594d0f77cfe5e7b75eef9d2647078838f0bcf837ab64da0e4b3f706cc03539bb89f519752d410c29757e686598c04d324abbaa0b814ab46ddbbc9e287f0688642cca84e31d04d" + }, + { /* i=8854 cDividendBits=3044 cDivisorBits=725 */ + "0963e0cb8e578fdaea869406d44f017c4427b9b753037705d4044880b43c4b2d2ac2145ff7b3cbbb10271a2024146f812318a7a79997c344c5a533512602f9c73aa4e5eddb61c709a7165bb2c9da7f299b5b8923e97f459a75e0fa289c428610366be0ff9f1717646fcb1fb331187440436ccf9a65a7f92ad2470908a33219b3589066cdbe71bea1db9d2ff16ee49a7902a3f0691a3c19606326fc72e0a2a6e1af999122c3a44ac2888bf3e66d00089775756a8ea5cb2fc800adc699d37b0d57e5bea6b0a50c167f00913d381e10aa0edbcea7af642b4da5ab36308773f306b6185de3423aa85c484b498e5f67865627a73e6e9cd2c5252710bbeb2c66212d36470f39b29b10ddf582e57deedaf893fbc6f1ea9586d7f790fa36a3e5c2ef4d64a49d5e9994c10a69b684648f8fed088c5b1058336b658bbf51d8d73c82b4047ea25c9b53c8b0a13c736ff3f2a086e5ddc08fe2ff88a6a783f89066227c1521c224eab31230c0fde4c6aa08b454cd55ab96e113009adc75135463469543", + "04559ed26b69c3672ca5f52e97d33e26db2ac69315e91da3f10e33a00f00273cab10b5147a8fac293aeec71521350bec6638d09997c30e141feca94bf5d7d4fe9ff5d09c44c126d163daae71272f8dc45c6b51e9e282f13e43b231", + "022a98fb72f2ad45a3ab440d852708ee7881b9063e55d68eae83b038e833a92ab463a76d9e24f947b50378b669b88e1fa159d35e2cb8f79a376fb6aa92e06aa759fcb16c8bc2f5da5705e4ecc5c7c29a5b3d159207044e4e702b4daa3dc272f47606bdda0ca00c0fe4253f426109474c426373d933b0226ebb19709fb297590ca2d99ac3d74352b1b723ef3302a92671b2a2635b2ba1ed7898b2b87dc8109ca08dc00ee4ec0e90b357cf7378013cefad85af7c2eb4e47b1a23d3d09ed014028d1c90e369e801a1e0142ac68e1df3fdc9f248ac1357eedcf51150dc65f2df99e3f83a3370628a0eef409a8386d123835324f05b6f8a06d4bafe7e2ff4d0a279f4e6fea959325a9ae8f9f16ad4c7a6c5d4a17fde324a3e25ea69482c311eecc3136fa569", + "0391943c73b2220c0d8b580103a7e17090ed873d5b859c0f3d301885be8c35cd68439df49914705382487b2e388d75a5d685c4fde59fe25b22030ff842d191370d88159451b26b257e20b05f255f870dd52ab5295af4595169ea2a" + }, + { /* i=8855 cDividendBits=2172 cDivisorBits=1261 */ + "0ca53371b725515df49f141600a27f73ec5a8f712e9a3cf3c7415a098816c88e85fe31e2ef4de87efb4d6895244eff60b73456493c00d38061f22a5d6d72913a1d8ff62027c55aaf9c07abc3a33b9e6916e3d81560099ee4ccdc67cbb28df8391c89b0bf05772f97d6729956781c6b326abad2cd77673b188c4d7e1d335aba6d365d0f3031b11869bdfa52e30933282246fef081e6307c509954698512e3564bd1e0601e76032297d14840544e56c9c36325b10c985972f521d4efc1d74d32c3d291cff084632fd6e5898b1122919139a788c680fd7736a676a695a7d3e363d608a5280e69861c93627b5b91e185fec13b5e83ab039f7eccb03897378c28f485ea8a91a1096197bb87d60ba682d7cf84", + "1212c99af64651ba011fbc664fc14e578b6c71ffb1aaea2f5b1675b7b7e0f5383d1b7e361f66155ec923b509c952364b7de69a5ed091be5d803530f679850bd0c3dc5b6ee7bbc5d6bd22892c8a75654b985729fb4d2b4bf260cbef941645a1b253eaa0e57d1cb222a5a88947ff4028b938dad26fb8d2c9a0d644cf97df0f58f7da0caf18acf847a3cef4341678b109c4c4d95d52c3d48cdcd7e823a300e3", + "b31d3d9c7e1f888fb6375e1e17989fed2e5b7f81404cda0a986174f98de80647eb0fc8cc8b1d597d1b732dffdf98b0b3bc269da6d44a79f9627884a569ba71158b50e6b9043cbc827d2b8867342db2e1113d64c8dc48306f254440643d0f041a9579641bcbac51ccab40da7a1127f6b29e65", + "11f70dc9339c5cd6c29014d49bbe0a3ea1dacbbc8242ad0f650536dac654977af9f32afd69ec677dab349cba6b8cd1b2afcfd0a99f27ff815dba526d5390b49a7e11418ef98bb23ebd904189fd0ba3e118997ec895fb4fe4edb5c54513ef5f84ade320d6506402ce7103c792879e603e5ed105e32826432f445c27022209acc6f4c8476e1e09d48361092229a591a2e3942db48609fd7ab9f74c19265bf5" + }, + { /* i=8856 cDividendBits=2406 cDivisorBits=1938 */ + "19ab3eaf639edd4d7a7abc4112de040a77567bb10e4f047469afed8afcd175d5825773095da6204ce3619f827de7ce1521eeeb1a83920c1da664aa8414c8137588ba2432921db94313005a2c94c3317e897afbb55aaa5d605f9d52e34087c65b7d41f6da5ccb28ec7c949e65917abbe053232bd5c623a6a6eba05e7e0b96c0f7ddc5b5afca5e6f0d3daa0cbbf5ce9fa525c5a1f3e4f11bbd4ecdcfab09afaef7f1a0538eddd2f8a06665b38bb5d8c058b41dd49d450dad520f737559d2e47c3d3cc4329262a19e0431de7c7008ede439198992447e1c60a2d73782f43a7dfeac1957a95db04b098b6a75522287376047b6bc31676d69344c8d8050a830669fcdc42becdc9efb3778da19d48478ae6b7817a5d729b13228ed317add9a2fc49b29b48871d5cb23c3380dd8c1de7d", + "025a919770fc0294e4690ecccf1a849e41b38f2cd91987ddb31611526921491ea50f91d21ea6c5c77f8345a8c1ed598f9fdffa9b2d4ccca51ffea0086d100caa14c6fa9cdd3ed9571d29957074b14a0e739034836c65d8571002678b74772c791d2be5697b680eca665dd17b896fb9ff003cd66be3969e9f6d01586d26f85e879de596d81261434e0e2746911780a7bfd37917946492cea69e9dde7ca707c451224c502b191af2814708695e4346bd095e316c4b2fa59816ae9d8bbbfa26aee6b3203009ee958f8adf0d81ef414e0e9946074100fd09e02f46e32cc07ac3bc0e688fd7cd1ac39ceeb6062a7d0085066495453c", + "0ae7c76bf97e058e263d43efd528349ff8d8d3ad28acf469f9d6141e186253560963a754e18cd6298cd10f54e2b16142aa19948bcf58113d298fe8", + "8f7d062048a11cd4832539e137869d8b5295a913118e98db38626729381c4836960e819571bbf6be6f231d01b914ff6408dbec57b8a1fa8d76a51602fe01ab0e4371338b0797a771e62592f2035a0e67f86d4a9f0a8bbd95df307e77c6b5845915f655448ad3e8204e25cfa53ab1badb001495413f6d4ed3f2167f6058a9862b92a380c82b21e588bd89eefd7c94d1a2f300e7350a5d1fb5af770493a0882e175971cd76a5e0d4e2d2c02177c882e40d6b147455fedfae3aab2d3e9c1bb2d3ab6fc5b9b2afc4e2eac1963f88eae09e67540362d166b03463c778a30f7281099e2fc04fc4b9daba0112b42fc431afed329c1d" + }, + { /* i=8857 cDividendBits=3377 cDivisorBits=2463 */ + "8d4336d312e1d8830f0b72241709786e4fe53f3e979ba1fe3e7c5135ee7433dd88ceca008b66180656caf97fe9bdf2e7da3b9dab0b7680ee6532ad6f5ddc165289642ff9a2a85f8223e85a11549be5b99f9d2c28570b9a98ee6090471e93a0beb038498e540996cf89d1f2b02a505144c03d9a96b0973d282adeb18995eee5d9255317141c7e6e0a61972be010eb043950f9c04b806678a4382c3765807d4885220d46737d873015e8d8f0408418e9426e0293bec212ae13eb9def31e58d5162c2a6b60322788080c74307dfeb2ac55b5eab96cd36194ab9651d3f40ed0d4518e25dc6b98be5ebc6e33c35a31cd3925d219b8abe8ad6c667a766d0d3a88a44ea071055f8d8a01c822ddb6d491ef2c92c97b4c2c9b3c8a793f580529041416b20bf85dd944e4aa5404c944dc58752e83aaebdc9f4ba6a57286f398a8411b59a1dd076f760dcc3e175a639408389b4aab6d8f12808d8000c651a0e95f0fca8d4655f4d167217ec613da7f5e59d1fdcd8d313c203e72bf5da359e379285aebd5239516964963d47011385ed69f1c64e011a6fffef7f376bfdce54fb3af47a49ecc359340388d5ec", + "6137800e2180b1635f36e8b896876b3c6ae02cdef88f914bcd4af36997a851d94ac3208fca71412d647683fc21bef492b26507b7cd2c2579daf9d3d3c153c343f113d76caa6e0437149bf96f4c479788dff2389b92ecd0a65ab6692c449267d30725d7c503abee106bfa433100cd99df294062892fc4fb3342db3a427255824fbd822f4e33476720b22ab6b3e1bcc64e4c1f39c2c2f9fa670d5a8701553887fc67668de67e256b7ca67557c7fe780a63c50d28c27423f92b5ed610f78143f8ccac7fca1f619ee927444e593ae1ceaa84b7b09c3090a89cf9e43f4320d78b8c82fc6e5312973cac29e04940d19fbadba1a20e53a3d269de8b4227977bef24d19ac20cfafc17587e23b6f92a92fbc494d3a363b8ff97188332bb2f745d1f85ffb609c6708dab31f69c8b7ce97819c6a116af135278", + "0173fc38e8c86b99bb72f352fde0ce4e32180c52c09946efb461befa864a910a633dc4d4655008d966481bec564e293ab8dfafdeb9cf5c17bf2630e9fe141f46772817408e47269cdd20a193a660a2df43c8e55b0fc8d080a3d58c4ea103447574d1ab6be1af6ad13ed5653b4337e2455b445f", + "427821a1964cf097ac919e9f052e994127b191ad783226093cb7f2717335639c364d3aa36e539fc8d79753a04c97c4040e0c343e0094fd39893072da0f8c891c2c3fe00d036d34e5b820cabb4938714b1d72a14eda9532ef3994dce65b40c6d50512b15d304368e28748ccb80930790834a9dab28d9abe923be18d5b0874fcc317fc67f6ec5c2e1a24432447d902bc23ade08555fcc93cf60f2079aeae79d50a50d01675f329793af65b37bfae081007632e8ebdd53f44a09f35de54ee07c4bd9aae2e824900961f2907d77bce8e56512de54647aefc3a219014f171090cc8cd8621ea4388bf71c1fd647c982594514433bf7136f9396114633a6a2c84aa07af51f58e27b49b5f3719212be6a65935ce68967e7cf5c0ce84b96e78f44bd0c2dfe87f3359440ac38504657fcd45d4843f40cd5b64" + }, + { /* i=8858 cDividendBits=208 cDivisorBits=156 */ + "b8cc998a441326015cbf07fe467012f8b1145dee4e57b128d803", + "09023ae50e0b3af493c6a20f4a58cd982734c9b9", + "14836d9df1eadf", + "02ecc760cfbfca6faeeaa2251b364bc9eda105dc" + }, + { /* i=8859 cDividendBits=1512 cDivisorBits=585 */ + "0548e331185fd505c4d06de43939c5ed0c654cd0c02903858a6c8e1105fa6535aa00a8497ebc35b78439b770dfc22887cf30f8aa5962d546d9934ded874f065208f246cb8aae05d8f45578717b87ed8ded78b47b693d2400cb70ce2308b5498d3f96b02047462a5f3db31c176ca5146700c32d82d5443dafecef098ff804d936a777a10681a3e99374836d0e36968e269b3842ef8767e14c7e9c95e4838f5f051a4a1201d171fe992ae64fb0df38c9e9084202001a096a856793061a9f", + "0107aaf6c7b97c21d60bf2e7f86f961356f6808ade95c7a436efd1dc6224d439d3716d96548985c66cb3b67f371e11b2b483336a17947121c0bed3615fbc612a2aa0a219d4229cadcd2b", + "05218b2a49c1085e3a8b5f7ab8bef5e7c3352866ffa7df445408cb739490445c43b17aacbfea452a5858e13e1558e571dbe5066c85157850a82775acedcf86e8584b4e119d4db428400289611f89a360d40b78c8060ebb27f4c9ed399a483dc806f5ddaadadd391b3d4fdf8c02aadb7c62ebfc74", + "a600ea45d876fc5df24d837c7da1d7c7560dc22b051ae14c86fd17672380fcfa8098c28c5097e15f5c0307453e0f40bfa1d81a4c507ef0b12d1369b53eb432727f05e2cd93b1d5cf23" + }, + { /* i=8860 cDividendBits=4063 cDivisorBits=962 */ + "402ca579df3e99587e623c2a82fab0715df340d38720844ac3654d1aadef93f436282514522f8166c9ea66d6f55cc3683bd43f3e5e082d1d0d02112131d6d6f83ca5650af0c710fa9f8dc1d502a23427e2071c80397b781acc1e5adb6736c0f800154cabdaa14f983307cbacabc03fa8df141f5612f7e52f293636bd37570bce6138ab3be4195a3c27dd968c089d0beb6be047b0cc2a304b2dac08b1425923b8dde9bdfd4bf7027814d119286a3605eddb1f324688a026e5d92a926115311f4b5b3468392bc9e9db8c4430f85563b0769a834ffc38e018ef864a410ef0fbf191c7bda634f366c1f16f24836fe6900d5cb505331f206f863833094a784bec287c373b5cfe3bb0e99d53b8123d5ff1e44338a9710e6a8f6da9ed1155e0fec41ae70656abb5a4a9db0b6c7a211eaa054c1029df09c6de02608049b3904d1a6f9ae3e13f5a25bb3b64c69ffd02ce7d373708fe66f013b5ca18b1a9f7616ac38170ad321478a12206041e4835db2cf3562f78c820b199fa4c32c2c02fc218251195ed53e55905792982f8a295bc68b831a64ebfd9a1460ca2a6dcc8c4379614f26278bc7d9c4395c3fd5d27ead3c0fec8a75c4e45b6c3b36ddcc06ffb53c678a7b853af688fe5d0951ee8606a963812ad44c5ee256b63b5721e27453a01d88885b2b554dfeb4f6c9d8b255096d808474984da03042c2c7d101c3bef59431c", + "0264b947fd43c880d71ce35eceaeafbbbdbf64ea33a8058a75a7658c2d5ee7e1c110153a45e8d2c084515795e46286e33f970b770a60b103f859e95e468cc339e958d567646719dedf749a47ea6398d63fe67a55830587628d2440f584036e03779826039d2054fa0443646f1895622e2e2e8704f9b2716699", + "1acfff01d4b8da07327e5a65e61c0f40b9934206195c7c59a5af91c7a5c3b1cb2ac4622bc16977abca0c3670d2ff02202a09dcd4c66de3cd1c535d6bea9d059cfccfa3226f3c227b7cbdbd9f5ea2a62ff7c0cd0f132083b91a67e78c91f4459c005c3a4a35c156692918bbb2cc4016ca68e46342f510b122954b7fb667f3dcf0a3279798cb22824429ec18a534884f93be6314e306d0ba3dffaade6dbeab8ade7ffa7b80f3171798f1123a222186fff3b4a2fcfe7588002b93b595f4ba676a1c0f3aa31cee2cecfc41fe6c60d4ff6b1ddb6a0ee3b3b5699d65949f04bb41179331e72483c153663a64a6c2dbc92227f18edcf54d55d2c3a42be16f742d5700c21106496c7330ae3f44a2aa9a3a638368ea800db435c25bcfb99122a573b314d355c6bed16ce4840afb21c5eba3fa3a07586b85098338b5f67cd0994f5d167b84aa8c1174305a43504fd775dd03bbb352132789aaad8dfe0d4bb406c48b0904dc59770b0e4edf53d54535cd014e28b15274df3f8b9dd3e25ff50b0b128d4840d75c47ab39", + "02137698120219796d0cd91a350cbe2db38a901537ddfa072ecd58db18fc354518680fd15295f9ce3c9903d4284ae50828b61677db70ccb1d039b3cd2f59ad9f868f854b1f2a9008efcaa854e0b0b2df054eab6c1879933310a4f4da51b56e682797a00865e3b64ac8219f7292c0ac94197c608da00422380b" + }, + { /* i=8861 cDividendBits=1336 cDivisorBits=288 */ + "fd3cc4d59f060a93547230c57697c13b3e024904447dd79f0b1c360eb90824d757881447818d50a94ad3f0b3a516ec511dc07e21feb8909bf3c7d363062cc3aee549eff91cff05027dc7f0effc0770f43a6d1e2bf6171854572ff34f69c478e52ea176299bc4c675df5af520491c77d53056f6996f649f06135c6e19b98a5e3125d93e08368d4877e5d47f7f478e888d904c626a76ebcdf0bb9dec8150ec79b3c61fd7bccab381", + "2696cd3f07f4f122e31315ba072350caaa4ecfd1f8b9c4365e1403b1ab723c2213314039", + "068ffa3ea0fe3fe01f73091bee6f12be983cba9160b452cf2016015031e01579fc8eb1585a3e1f474b7c0a48391a74ea89ede0c3951d7eec09a2b03601bfa5d32d0e1f1b877d5e4f60bdb667701a429feeec1f00d5086bee653490ff20d15fad1f5bc95bc1b43e57ff5d76ff245f487c84f764b476d22e88d0ee17e4d7f6356fdd31fa2d", + "1a47a844b824a7f17dc086752000c150d9b06c5610cdd65868b51542fa747086c481bf7c" + }, + { /* i=8862 cDividendBits=4032 cDivisorBits=2121 */ + "f8a255ae678fb059855b042325a95a610de275c325beb41fde630751dc7b908a7c5e6e8b530ca012a1da9583fd199cfcac0f1d83c60e227f2da69abb3c152dc509797a80f5b3cf80b04af1da5b3d42f55623986d5f89fa346fa2f472220b2163f5a8da97787309a10b325fb91cc6be73fb0c94fb33f2d3d19a1e2d0d09cf8311e96b4c1848fc33b6f9e0459979761b3a82803c36d49d4d12bc5c7abdb1b59fd334c491c45df8a9643b9f4ce2d4e4cf056dc5cde4eb9a7a83cc73007110131a71e6c8beda140d3a15f275f2ab81cfc38c3bb6cb9bffc3c1d38d283ef415d725fc5199a7a940abd9e9a4682ef55d4b31bcb0ed88b3be5b8f51b94c413d76ce9411ce2388364e05008ab0910b84239f25fa70489be9437e956be8b1b9f2aa28348a4190754762d8f78e79d6e1b439673791501f677b7be44e8222e6447ff1b87f39ed9bd17b99be1939fdd612e849377a609d7a28010556adfddb3475320c4f352adb3b38c73fb9558b07355a957ddc63c10aeefc74307d49140a898a3c425208e4ba422f02420d85bdea24295f2296da0f5fb3cbb1e1faee081bdee84b87878da8e0409804b85b00a148c1d1d0b8561c6f255b4bde1e3bab6b4b714096766c0273b488916667e6e1f9c040b304bb963a09044a888d6fecfa99dd2fe5eed146b310b617ffc09a6d80535861efb905f81267252500238e025133", + "9cf9e740f8710292e846d9e68946efec9afc83d6feebff90ae5fe6d5735359622990fbe1efec21e0bf9a841c23b62f5a54811dc562a33d3e074b34fa0737592b9f5d5e6cb28da8e18cdf32c383279b6e451e9a4742c87a1c7255fe047a297980c617aed6e361b14707d6b42efd4cd613e0758f277aedb50cc3eaf519f1ecbc678fc09f33b50a21a70011ec6a843a47e82e9a0e64e8fbb4d3f50d4b7cf8ad0a5310af1071b1ab9136251779e328956feda7837b942115fe6818a3f5bc0451f4114a53f362d143d178b9b8ed962a89f7efad10acf734e186ccea2ada02eb12f8da0d8066f4c91287d7240bb2a95606c7c5ebf190ae07a07b469ab361cbe2725b76f1e68a804a7acf18d6", + "01957a4753571484a652ba7713cad119d2eaeb5191828ce2f9fae21eee76b36fa14595bffc41445bebf62e9f8d5c0c8f2f58ab0788ba3e2b459b5645f1820eb805fa3b0e1f95c6db0a91d74ff1d7045408d6c414cd2d7dd3f163190cd0596b163395b788600712f5297b7038f80ebb33f1a67120481a975849409f3ccac3e6ebf282ab0613f857a539672d66f84ff8776e5206f3f43dc1709e92c0f1566b9a1fc4c4c32d0d83ac2f90c3ec8f1082125b27c5dc86b555e09d6c384fdfa56c6f0862e8c1d3a8e474ec457f8f906a177a2a7f3e37a93fa7aab045afaf2bb56985dbbfcdf0964f791620789c48309f643990", + "45c8a6615598fdd1e947d5bc053346bd57f6864bfb840a0cfd70f632b0ce6aed16dd17df6208e9a1b824971bdfae93a1788518f35219590ef05de79b71f402336408b9d2541815fc0ce76a555318d0c571fcb664bdac57ffc7bcae486955b8a3cf707d538354cfbc4bff6c945f52ef9a7b5ec1f85536564d5440471d6652fe279b8695f3c9e6cbbc5b6d600df5943b55345c69ede5964a6b5875fb1cadcbd9b3c853ca0d79ecd4d97524055748086575820d6a18731e19607c8c4f1273c83a84c3995d56a2dbe26a8e19b09de7b725b066679d8e0ac71e5c4cb3ba589f923b7e6eced1334f957bbf7efd21f1a21eed4552ba87e8914b93691a55fb09be6e2ed11f8914cf73bf64b2d3" + }, + { /* i=8863 cDividendBits=825 cDivisorBits=414 */ + "1057ac6a2c1622e9d0e798cd0ea3b94281ccf759f4f1348a998ad38faf4504349857d735b5f29b8eb282cae16e99ad5e915713d646f19db4f83f64450ea4359fc66047a09605dd07c88c656776669f408900e9ff2ac8f0c68982be4011ee31aea440732329ea0b", + "21f24b38ecd8015c10a501fcd746e1be198ce1bd50dc774ade28b3195bf95f5050a1f9beca77d02dc11a956a310c1158a2e707fc", + "7b3e485669374db197e54ff670c215b82301f209a00831c08f77d8ccee94f5ca1c2b39f2776063570cafa3bdf9cf55e6cb44d9", + "07bc2a22f9a46876288b58a15539d49a257cbba91c511adddbc5cce4b1afe8d570ba57ded23a6b1797b08ac8cce2d7fff261356f" + }, + { /* i=8864 cDividendBits=2738 cDivisorBits=1045 */ + "03e9fa8611efa830114b662299d820a5ce12d144eb1241980487e70de0cd16e072425726ee0e8cfa25367bbba1c14b0cc74ce642a650eeeaec0c30b8cd946a64e548db257cc596f35e45beaba1ccbca55becb1d4f9b8d6e94bfed2e1547c7628977abf180b93a86204eed1d5b0045e6c8810dfe49bef785723f5d4167b913604e730f6e32d6d3f63844e0715ac04b2d0d9870a2a75755f92ddeb02883c78d3af6a5371813a4b50265c3e8b55026c4bd99b4c977d8f6cab250864618d793ca86ff7a967d3e244d6396ca1b4ddc33826dc5268c1f4c18dd39094a5311ed4a2a2387ebc1ce1ca3e463718445a91e44d4acc6feff7b95cfe143cff3305e7aa9245e7945c5c259e792d3161aff2acce095131980459620129fda74667f45c8dcc006ef0de641b0bad9e33d6212c0fd0493c75b256c7972371526bb130f6f94b1591501bc847d1f3599b25200275fb153a1add8aa0fe70b1afa7", + "1c09340dda2d17e2eebf46f14b15317de2233c79d38157e1bfc812154d5238696651b2c134779fb0dbdb60b1066a7e3c7274a076b01f8783fd87208e590cd050bfb2971ae79ee55c02a5a58cdc077eca3da2cdb3e54c862158de8e355a320ff26176ff655606f2885af1bea0b15740d91d755b69034eb6bab10f5c0f11861eb5d97021", + "23bd333f1da2926d53bcce6be551b0a0be2c5f4f887e4dc9637d13d5fd538fdee466b63a483f49aa3d1a049f4768cba51127f997f701c3a587328ec3c9157a72d49c194198e81c2c913a2bf4ba4ee21a206f755667c3b47e87dd088bd8789feb10316caa2a27260c4c3b639598adc226c6ea777d69aee1169df91a1ee4ae4d98d851607b693c9c474609710123572cf0fca6f52e119c6a17830df8da67889bce48df2bd7bfeabdd8733e01b36576cd9796fa96db48a200b2d7c053cb153c4e3db73b6a70c95efc3653c49bb1e37bf35e7ed4ce73", + "1937a1e89a607c2e689352d156eba04e77773872037d236c830aec8ca7ef9a0e939fd5bfb01213b7b14b2e6bb5306e71b302aacb10cbae96d06f35259a77a3800eea599aae0ea39d8ade1f9b47b1eb99c86b5b67b12df8fb2dabc33b8a2e52fe69d840a6d12425cd8777fe20f4cae127991d1567bfde60d64a0f7e81ad8e7eae75c2d4" + }, + { /* i=8865 cDividendBits=3741 cDivisorBits=2084 */ + "059e111b9b6f3eeb9da4056699b2ae274f638772f90d916de834b51f3aadb73f8eadcf4f4d5a9de2e188b591816322fa548b3915da5bb27cb2160b750df395e83416df04c5054ed79b232b5a0a84a215a698a1a3daff5de41f93b4b4e25ae1fbe0f1cc5b2697960f4a8b7b0a7691d0737e4ff04ef84dbc68bb8120f9e739243921435d02c871899a993122450bde2fb9a29a8a4bf799a1578aca4f21c87f1d32ed869887f55ebfeabed58524f2d112a09588835c0cfeaec0bf639e91552097e92c6fb8b81d4e34e474d14abe46d913aa3c056c1bbed2d8e0958f948e0ef787080703eb88206ff64ba85ff6cee0a83545e03cda18f6de21d0688a62fc8b120aa4dabeb42cc312c3adb191968e55c0742c560efef18fc18089bb05530e069f8e8bd81279a43d24674a067925c6286375c5e57174d3c8b7d81824cad3344dd15f124ec5755d200a50fb244857ee83100705c82db369bcdf9c3ccd6d355e68f63c6c50d18ab53d7ae70ff1f77483c0724eeea669e7c0c55417b29e61e17d722b012aec0b0c11ca315a8fe02189e85c4fc697ffc26d57191e0e5e6f26bd1dba829a0ceb6857807fb802dcefa4dc95c33d1a0524d6dfa10fc131d5855304486088bc14db8081b55730cedbec8c9b4710389bd1188deb6c", + "064e1a691622510466e15fb950a6d1dc5a7f647b4406bdf8bf2fc6a10b6607f14e6bafdb000a217038559c99bde29c5b822998c3bed289c57bfc77fe5a0cd81840e9aab52f85a71d74f2250012fbf3d472d626700294ea9a41c5c0747831a89e6ab48fe22802a874b98eee88383dca4497c5f37544f745a0ba72260fc4d2ff2b3cfe70554a8b6124d237050e26854827161168b87df05238c85d3ac9f223d00b9fc4f9a79be2ede4a3c909553c841fef48e1247cd8525c2748e3214e591b66747ba06a27f304b3fcbefaca2cdb92a8dc1659660e2746fc382d7b6f05797f584ae0578c89bea6e8022c3e79edb5b4d81a884b937cc044c77558403dc54b241890ae09310b60", + "e4148d771ac5844d747f63cd2ab31dc7a55599d7c3542d5c22fc1e3a1df6d222ea6fb949350d9261a932dffff00ad57ab6055583f2eff7bd99ea4affe3272525479e873473e39fe896fb1193d7ac07e08f72da2db215c3d5e8920d11a245e1770beb3c2955d4d4a5713bbca298fa734a7ab90be3015a9ba97811c59b1ed999cb53813461850b2463335af37a1a83451ec7bba2379c11c1e95a640cf3da2e83e7e1bb684db4bd8e11ac7050a59d90a4926f9991d5f2f4d826cdb9521560e0f5b3ace4e4951acc24d44c7f193f35732c", + "037916e595b168375bfecff537388d648c0257548e521515d5c92a1046cbfddf263fad8e4dcf98517c423eac1c80c9ff17f8c28590595de0d406a836be41e7b8817aabbd8d0c2512e90b2c1fc44c12363bf44cef280af3032f5ae727ad16449086ccbf3852dc93c54cc2dd844cb33757e6428517b31382fd1d41ac5fc8431c6c198fe55a0f26acc9be887829576162335cdf6af49cb8fe91d093a43d1b98ffcc93e3effbf63a57b68910b64f6cbba0c0cc30edff7fdae54c5796b1a9ac735009ce839d6981af9a7269a9f1a5cfede1a0fc4c7e1574d1e82d499c7598d137ef60819fe7531900eb202c790edf0cd6093e1014c31b61eaecc03d9ab3836befc7da728123d6ec" + }, + { /* i=8866 cDividendBits=432 cDivisorBits=28 */ + "62d46660b5b1dba6bee41139549e9a19de96a67de8d330d73d259e8002c417cff948cb2c7cf95395b6ddc70e764a4ca06ffeaa119e60", + "0ef1ceac", + "069cf3538e8e16b975154cba478ebfa0249ba5d304753f1464af029ca22a3062077d262d9faa13c6248d4d166315fccfc29fb8", + "0a903ec0" + }, + { /* i=8867 cDividendBits=1141 cDivisorBits=587 */ + "124ab756d294aa5aab978f80f0465ca2f30af883ecfa3b6d32a89b30040716005183b740851989912a0bc30febb6c9e43ad4387cb208306d83cf306369235caf2a4b36ed9619a13e32afce7cd2f7d99e595be26e3cd3f4dbe91d0f3b82c182026fe115b76a6d3249dc072e738197497605ca8659f4ac3206b202ef6d95ff3db8791ff7a12abbf701e7bf042b9d528c", + "062b27d39a51c528aa4ffef9ce2a2a52f4b1fdeaf2a5dc7786079e3b2e68e04be8db0f1576c7fbf7af25c9fae85ebd60893762926d4e4587085ab58cf2395e0d606336e579c98b4016ba", + "02f71fd0e70522a91a27642050193bc45af4a26a873923350e6609ffedf66823357dd774d7ee47fa8ca9f4590628623f332cd7423041d64aa996761ab2ee34e411f9f2cd4998", + "b13a8cb95eb0055863503f994a6d8d2f589d6d9722c2ce315b3177078f25c308d4e92ba58e39197dbeb1fe66266d8d0664119f20b2d48cd49c59f1fdd4e50bfd9e356569ec3022ca1c" + }, + { /* i=8868 cDividendBits=3212 cDivisorBits=1095 */ + "04a0b109ab5949969c18ac883cb03cba16ecfeb2f0ac3da935d8be884dd67417ac83d8f543fd1da2e9996adffa063a530920080da17f362528e215598839b9568f53b05bbb1062beb1f7d2d9fb092983598f3cb914d071666f90a58a635dbb62e39a37872ef02d7408c989b9a85ab8f8867822d87a7beab5a5e4fe9fb412fc23ed5e2be6a9d14e75d2584802fb6aee9dac986caecb94bad0fce1e52fd612d1968d56e7b766e3e1adc6d4445fb552741ec181258f76fcb707849647f7cd1a681179981af2a9bb6a0cee928e58ca290aa8745638e807d8d46203147b0b8dfecb470f2a22049855ff41c626c5f4da59167ae5d555d75374a7d92b46113c9ff625d40ffbe5a2fad9aa92adb540f7368d3a962255de291694e45c0f9356381b6cbcf793f92bd4036b1de7685356e0294fc6b23295f374547e9af818830af556ca7c5966482ee98f3399ebef732b65e5b74c84854e868017952cac5117daa6d3c32cd91a0f4a3b9caf4d086c6a11783f3fbf7cee85cca39b472d3e6029a184da685f679df52ae9232386e91b9fa4c64c3d2610e71d", + "17c9b4c927117aa7f727ecd164f5ebda6851f6c489c9c47438af5b0825cc77c784f61acc20112419afbc5a2085360b147f4a9dde1c687824548dd4f76b84f5aba1e6d1e764f114384be0eb894e0dd914ad6868e90809c29d014c68e4f6c5378c60230cb297f8bb0126a2a3b30620b6c7524aa1a6dd991c84129bc4ed6909c4c5dec519fcd2c7d62149", + "31cd5fe7deb68b2b368c530b965c1f744ab93b28830901e63b6adbd7eaa791ff3cfd5b5c1b57c77f32e8ca27e36f8a86691392688bd326dbd6b6b22a5916f714989a4e8a8d234fcde949b0faceabcef49dd098a64882414f2a36024726f7d6592867e691922aadf235dfee59c51bf6fdbefece1cacdd298a4ebc696a9d054fe62f8f07cc94c3b3bccfb7138ca1c559f105043e8c9760a526a8a9e79aba2a7f4d4e2bc86c0a37b1ca51420d63ff81d3228ab2249bfb4e4cdde39adaa40a3d261e05c83bc2644d0d1d89913a743265cb3957433d0eda65b3afef7b24eac67122ac285e1a0611b1a0b7ad215c939b6cbf79f8657c026d4dda7a9a282a9eae42d5da635ac00304a48dd4af", + "07691556787b22d1db38cbe4e12a7f44fa285b56cd51f4c15a0a363ab404fa947a877bb3db0f88b6c59238ec9c534256411222de7aabf541355eb754ed19402b91d9cc5e1030a4ce71b41ad525c5dfe595dc5ecd66e9e2d75713741dccc701cef159933d08e9edacefe007743a8b0c3b945203fa904f519f24788256e4f4f88aabd80a4c421deab236" + }, + { /* i=8869 cDividendBits=2677 cDivisorBits=75 */ + "04deeba475f796a425fe81bf3ff96a6b2f68257889a4663fc3665dfddac749d1edcf3249ee494b8b05228181e615fc8a587b4c023243c6d812c5889d437c62a41418d72f9804ac60abe0d61cd21109600a7a65f48dfb3526b1a5c9e45d081a544057d8d841dd4347ce3b354b3ff0772bb81f8aff6f990ad50755e4e26319feea9e095d52d43731cec8772c5abe438c325fd5ae8f9943be52e43c6619f55b767969b2b49b9ab41908612cc9e23867c48bc8b7eeca4927d5a1187ea47c5362a0b20f50da7451cfb2e5289dc430e55d7390d4a06aae488c1f47ab1a68ddd8e36d1a228078f83f03cb5f4029d66539be9264e2b4441f97f4f5b1cfa01587fa8244e4508038d691f5c4e826e5fdb01f6f0c978246c835a620a713f13f89da0f0fa9d05c9598798d061624ee232cd791f1d3f9723bdbcc9f41345cceebb3329441823ff63034da3fd7fd5c1a9bd5385f862b", + "0e81c79b0043ecee56", + "55f40bd6c382bcd94329d8063df153e08ca5fe2798d8a8fe51b0354cc65564928adb31620ca7d00dcd5cd0abe28affd200277aee0d2da15c6951d8a7dde9ed81763858ebb952dacc8e5f14961864eb5d47cfc1efcca03349e898e6f4df8dd13293ca4863fa80e6158fb2334f74a777b794717c34e2a2624d8eae238f10a619ea5e92cc156782528ebf5a207348be8765c52d34b8264a7cc84bc8b81b2cd70540283712c17a480b904d0905f5b6fc6c29f867907e0e0457247c9f74a3c9528b5dcd62461b318b6634ff22aa5e7fc8937a3aea85c66010ddb031937faa6e35c14144c6c5e4f1dfa4c96bff26167766634431709486f9d66c56aba2d708c045a87bd04928feabb2aad7f9accc7f9f97de4ecf9f30a906d559a1079177a1a6b9395b2e47bfc9ea184cb0b46782a67989159f2b55b659f549d0862ff720ecf26177ebead029c9ab3f", + "02d40dc05256576d01" + }, + { /* i=8870 cDividendBits=4062 cDivisorBits=613 */ + "3908e49549774280801802c4d4916153f9a7e8d76b5df3e7dd9a704d7f75fb7fae49b637c3687eb5c088db940f80475006bc16dbb13541bec64fd1584fa88697a4afaa5a2babfd81600dd8b7f0c68959f52755b560bd38fba0f35d35a5570007769a48e9c8546c9bb4d6cd351de7d2564cc75ade9ca9128482e2fc6c0377d57d009e7137b691638fd44dded3924213e7c95f3c360b2cd635acf5a07a94f4486858d5b40e7926c859f9222bf2fc09c65e2a1c4d4699343dbcab2461582aa932f44155d85a1ac9206d35290fcfdfddd173fe85b205371e4cf478d8e0c1ce331a5615a83d01dc1b0cc4c1d1346fdfb825bd5dca92ea8a0047f510a33b1ffb1dc7fb1cc9e5470cd25aab0e659a690b4aeb86ee5e9fb53bd8107d3adefbd9e10040d1933ac80cdf49bdfe8d62e506cfa7be40ec54806d5605d5b32a386d83e84abb5bd2cda9a44546fa233763925916c7ae30b7b5ef86428f841d559bacfa9e4f6ba34395a4b117afc8fc93c2b86b52ef7398fc1fbb01456d105fab37fa99afc0cbafdd826a0eb7ac39bfb4b6442882405da74685e7a446c5b2ee759f06e89d23c8cf1f8d6b5a41a48d18d8ba9f030b6332cabea61c2ad000e90141ea402623b8aad6e5b29babe074b0fd6836ffe84371da2bf577d57c1bff1a0e476bbf47b30d829fab903c054f7bf7701bef378ca86cf3aad1a8fb904b83c3a314de7f4e", + "1a26d392fa66e9cdb0b9e87c83a003659ffd94f98bca8ea6685c95cf936b5686363f700a943bc652ad252f8c596bd7a42bcf788f9701c08504723c96df7f2eb872e66cff7d5fbb176ee80caa6c", + "022e50e3ee9cf4c4d85029a033c7fe524b508bccf5d8b383117b4c929caffbebcbc6783be01eaab790c505fe9d69f87fb94995f8297db193fa42ebc417bf9d601a8519d989020a661b3e600723a448d6456e8326dbce8ddb11144f495dc2f52421c4480c6a5beaf085800532942f5a48cdf76f391929ff7a5055a4aa0b7351a54222380894ea8235c5575c6bea42fed398654610298cdb8b4e79b4a6cf354fe4f5589f22b94df2fcf5f7c46572b41c1f02045730000d35b8ef834456f20e0b8c488738f626069a8496f028f0776041009d2b194f1aa955ef71ad98d7aeaf03458d928dd5feed130c84ec06766fa540fdefcea5c794e900d1320d6b0cb54ef834ef13b20b612916b8175c990ad45948aaf56b152aeb7caa50c11803f2e9da52f295ce6c73c7239942333a9d850cf254fb43598fd6993b14e6a29ad150f2a1bc51988ff9711b00b67f37ca3ceac097541d73381e076ab7aa3b1d141898a5d6c239e1cd8b2f903c966b862ab0f8b12a090da97116b03823bb36c916538cb8437ad4bdce06ddad29c64c379001d547e343cdb0c58a2611c9f0fb3773fbca09fb8a47cdfe1c1a7496fe9cc8a900d1b75587d4", + "080ceb95f5f922b555106ca7178885eebaf6676c3da3b344260995d3dc72e0a6fecf653f8d51d97465707115cc565b49ff391a22bac018b5c8ef9b9b691b95189207448a85f7e1a33872a669de" + }, + { /* i=8871 cDividendBits=4069 cDivisorBits=1626 */ + "108212072cc5c07321c826aeec905f21c3ffdea2621bb77151f28814018e378bd1da318a3b58e3062fb9412e98de74d8c24b38c958cdfad3ae89ff1cfcef9a02c849e4c943497607b1af4d5aa94d8369466efdbf5291f02f0819352e94c3bf4e2b951c65f124248a205b32151c15b52ee53269bb1eaff991442dca64515aced697676fd797b4966b0b29665f5ca295ead7843ff65078d6c89ae14c3630ccaa733ac10076f5d59ef37d651a65982a724d835440faefb176b20b259c79de5e92aed2b6f9566db3dd916ad95c3a27b763d5464e4dab4c3530390f1afc4977ebb3c36607920f22dd55dfbee13e4c508dcfffe351f25ae647af6a470c321cf9330ba7a4419a88eab51daf7cf4fee8d7d8ffc2963a6c696815932ff728a14c48be891652b35830a42a5f9ab07d89492720dcc5af7e49d0a414a6aeaf5cc6a010a5c5fdeedbd3a6bf363a758a79cd33a6137c6fffd0806a04be13ef01b5e94be29a55ecf7bbc72760c57fa0f285ff820faef333f8552196003a2a450c8d2e50eee9a82c9f02c91f341fca1553719c960079ca79e1c4838b1078e53ac86df8bae7554e83642be22619a9e7cc1bc88dbe2d876235cf9c27be1b8cea88518c14d210e158c6e38c7304a897b5b4b9f94edf5753fd1f5508b4eb96779dd265dd3d52e229a58b0bc944c4ba19caeb951bf1bbcbccda966468fb59d875ec174bc87bf090", + "0152c84b44a2e99a9566870f5e96aa72a640edacdd90110a795def078516e2493ccb040e4b137df4754db267bfbf4aadabf48a7b4d256204e5fa7ddb4263ab93a123809ed8c610b89336667b10480a732bda9040cc6d4ee37497e8d74d405c0c8f6f1f1bc74c4cd099260c458ff6f68685d65afff12f42522b55180e62b3acdfdca358cc0e645c77306cd1225fc244b18d0d0c865651162c30e35eeac4c6c06c3733a1440b6225a758c9c66d72e3b0ccd04512042f4263cce8b5fffc406d355e136b5a6f98bcd0aace643256", + "0c796b2c547d065982e6f8929d50f235eec337e747062942faec3e6172a5930d4927260801a160e2a482a62d584bed21bf46b18da7fae1d423d3e4cf725459133aa1faa96d9bf714da4ff5b93dd14f842d8c29b1a1add70fbd0103b653ce304f415cabecd49378b4ea9e31421c3755bd238059aa60a18fc878fe7041e617aa06a54efbd1d534acce2f416aea21fd53d5f1013fb5dabc9e11d4a37c167c31509bf7e827ffa25476962acf16b025040977b5b2bb4545385571069bc07801695fd18d897fbc96d0af83abc7d14e1980cbcca665a8f0feffc50884e1745ca6aeb0d810c560cc51f435817930187269f138a2b510b316e21dd58918455335aea3780b22f19252e3103c468dbbc989a6f3d399d508016132d3d442232db52ecf65826381874d974fce83db110b8be658ce6abdda9b", + "af5f258f453466af903f165fd12f4192b6cded562e14fdcdf138ac69e84f2e3a9b20d3b7c7d26e5a716b5f1bd2411ccd444828b99931f42c5f2deb46879d3ca1984235f42c60204bfc68234946c54fe85509328efc2dd30849881c6988c474d41d08c24830cdf1d503da7822c3311dba3fd814f1077ecf854325d876406bd3c3883a95b6aceaa6f29dc01f9edb529df5b3ca1c400be4ca926073c28a4d9eb6a8aef356d6a9a97a23b4a13596328f083c99f55ec0ee91eed8b32c937e884f3aa3ee48f8f9265e1ab9763a7e" + }, + { /* i=8872 cDividendBits=3279 cDivisorBits=2281 */ + "50cc6cc76340601075b6cb3b499cdabd3a3c01847a92549d7263eb7c2aebb64267e7d44b14412ca61c8c610de069608728b13b08e0a47c4b961e261ac9f2ab518b8719fd0e48a35cb285013965c4780bb1fed05ce785834bf93af3699438449d73d2a44c1a6da91b8683948e31df005616494e376a38d2e6aa81450b1eae4b1b72b339416bfb215737648e93d52fe06fb7d80c9d080501bc4ed52a339768c7eac03982a0f117fee8b94fda26af55ed19121badbaf1f62a840c15711cd1cdc8472cfeeec0e61843b053f23e921bbb2f62fab15c464a3ebb770d8f2b6d9821469bf515c769b0757d8e6a629bf829d8cf23e3dd94c47fb78447a2139d48ff8df126fdd7a1a3aa08239bbae36151843b1cc5db79beaa30c5cb3b95ed78a0b88d545c9b090f1ad39b331c226c3b7038c99ea70d84ee54f541aa05ad837afb9d4e77a5c0048994719435489f0d31f2316b81e2cb91a3430d3454caf8e3b9afdec9d435ffd7331c781a23127eb452c6fd3b64114c41077eeda08f768322b9f94ea3f1be519bdddee07522a121af0cfd0d29016a859284dbb3ac7ab3ae28", + "d7bc6a9df0516654c928e616751ff26792dff3f38afa72a8b121f96fda800010a00cbaed595a421d203baa6429c666905aaad75064f4825b87215fc3c6732914906d6a96518ae4a6a30472d30737134427bea86245e43bf35b3b981f4d66068df0437acd00645ff53e5a540247a321aeaea218fc5359d0d0fea9bc568a0e1ed719ac6c00523acaadd41f987e4bb98152d155b348d67cc525084c2feca91d43012f7d0e447ee7faba6df7263cc147e2172bdf0d007ab9f44447460170af13f71e7e166a5e0760c9de6a691df3bf9cea0882ad0d96210f360921e5ea91e634242f1b703e4ab40c0ec406410dc87ffbc018b85e8d716de04821b6cbfaaca42abd4ae0e82791cf0ac5223a1b41c1d1639d48a55e24d962dad93006f06aab65", + "5fe0df80954539cf65765406d80d2527d8b2dfb0cfa10fa8a1b0fc27366ca2e30d8ebd43f7fb711d71407dbdfdf9add26fa942cd3cd59d564975f7984f753a9fe1a6a06eeb1b34c200baeed2cd17a8abb23c6203a1a819ddc589c68016f3269d522c1244e27fedb1349508aff80e7076360ae59d12ca10abf300447dc3", + "0769c473bcfb768b538355087657b580d3d853d8af19e1173ef5d1ca583cddd5c31801bb7eb60f04384f248e6686b58ee53be931438fe045a1fa45b9fbd48f4b8bf41af6bd76404a838d1667ee9da071e44becdb03d124847f42877d186e7bbc201008c747ab8fbd3ff474092bcd8277c4ba66b82826f4103aa78a97be0d969870c3bc610b866c0b58c8d7dfc66eec2fe527450d2b744b2fbd552797487c3e6d4311ee0b6494beaa89d16938b3eacd5ecf5d951018200c6fa734560503f78cd914bc1995246550d388c06a9b3f7de061a6de743b0990ad1a5212fcb1cde7000ace17e92d5ca7d26445318ed5a54624a6cdcb9a2182904a209f04cd973f177d4c86cbdcc28c8988481af929d4974db8f699af9b1f892513b6cabceecf39" + }, + { /* i=8873 cDividendBits=111 cDivisorBits=38 */ + "408068cbf10164262af184e9283c", + "3f414710f5", + "01050b8fd2fff72af2eb", + "1b3f72fd55" + }, + { /* i=8874 cDividendBits=147 cDivisorBits=4 */ + "04165bb25795e3516fda65c6160fc8cef8c4df", + "0f", + "45c1d8b081758df663e4a6ce4551a765eafd", + "0c" + }, + { /* i=8875 cDividendBits=3825 cDivisorBits=1822 */ + "991658130e7b7f65cfef1e1fdc64398bd90d9b7470c22b16cc6936cf2f8af53a5a4985a2a99734058bfbad79a9dee90184bd7613976d9f5ad98fe3f6166595c17b80e81f0a23012747a1739fe27f7958cac4b4fc1c883e47d6823f17ada327aa8f473fb97ca6fbc005feba1911c1819442eeb3f6acc483c550908db4981f0c3c1f18c0237a0f41d741a359826337b2a8abf0f35337f3090ce3eec9ccfa597b37374ee92b68390b542c9c3b9c8458a34c3f03ce73fd55f5799f85bce403933d68612645f088b6e368c44b34a4249e33a558fd2435abdffcc67257c27bfbb53265c8192f96f9ebd0d083f6c85e8a6a6fb5dc08735a3dcfef949dd3946e37aa59f435f8cae2f01e461e3f15a4f738c8ac77268f670632eb917fbc86cd61e53de59e4ed9f01359c72a2ae3ff11638fd93e20f312a562ece3513519387c9d8eedb294d0e80536901a0207ab94ade1862c3b4ddfde04ca4c2ef0ea485bb4df3729ce1bb3e4dd6fd7b670689bd1264a9c237d72cdbb1811c2805ddf882803b91359f351a87a7c6767587e7bd8a016fef1d2345c636a6a5a6ae1a54d5c5f21d51d6335b6eb637dfb30931e21b2877313b3dfe3054e875af66887a05b5bb500381b9f8e6d3377e9000ba343950ffc31e98f680d6ff944132b92e99b99bd887aa6d2e4", + "3c3b055c5ea52684670b00147a33a55690153e1fa24838e1a7c43b89693774735cc3938fecd2a99c6e90239ec0a35f6696a1915610d968003f92c194090531b9c94b9e291d3d2da468d85f71d511f9739e2f5262a83f72c0a11cd1f832d273e113e0c15cec9ec2c7147ac1f382b7686a6cf731f4e493069368328a4ea8108199d3383b7ce239da529a20e2471ad71abc98d372c0ac8d236945d4af9717827b6e7c9b758bc64e338a4ca0e75d465626566be52c4d3f7ca02f59120f5599f4325752fdc3b26b6f46d6d64b415c40a604ff249313865e090420c5aa9bd6556a32bf313263bb", + "028aac146fd4f2f65b8bd45b520b5c8f50f39e8f7e95475e914b8a280a8225fe73e06c9d1d294d2221de0d63754fe3ac1f0566e9d2cb33b1e702b8d9b389c06d948aee3a434af3de9d9e0704b4f40f7d18d9d499125f164ce04a0b5b3b730ed1a7b3acfa461f408d214bcb64d4b6e078a8c71719dc6336a097f90c7db860a5108a13b26c4ad33053ff8294f04a0aafdb4d170967fb5dbd54c1341e68ef6c7e2c1c5dfac86bebbed8134723c417de4bf15a29ef8a7987fd972d0d06edea6e4aeb019a038ce115640dd3865d5f99f0a2d5c2ffc3c0782531f4e151f2a1f03daa115e031709a9fdafe8870df557c051436ba398b71e2b94f699279517", + "357fdc865fd19093344efcaa8c54742a0645a5263f60684c44615ac7f7c065ec98d71410a4bd390ad75126f34eed42029c59ec731afcaf164fd0892484f4ff906a1bf996e44797fb460e43aa1ab969707bc78aee0c311f1387f241d354a4dcedbc46896dd609a58967a04dcbc2e370c835e41f6883eb4c5263defc4544522ab9a2313300d6158c5073cfe7fe2cc72c0583cb2536aa8ce393bd6250a3376453c768f673604fdf8820d25a307802381cb2415486792fa1ed3866dc928b794a547fcd57cef432e5bdf14a404f6609a02562d06b9b0fc3b58b6d06de8d710d8158bec6970617" + }, + { /* i=8876 cDividendBits=1052 cDivisorBits=1030 */ + "0afbf7948d732c8c20a9a5a60afa1437944af8f3df1366d24d143cefca21ad5a75ec3b36570ac150e98e8b056a1a52b9af6287c454030675d5e044c5f2b8850c6f215e6090adb87b42192cfc98ecaecdc80a9cf83a7392ad0f67361c7f69fe6805dad36ee5ec1513162f1b1f843c385abd0a734c203d211a44946224a6ecbaa4839c35df", + "05f004a561ecc00c85d11e56f8f8e25cc2b5fb3c5736e3ed38c1b5f34dd71631cece6f9191a65740488a74fc510c112e182ac2627ed5f02d0b16852f050e36a08eca807aadbde10dbec9ef0d528f54b0bb0e71ee6b14d533d85d667c5151f589add3f4b9f61d7151bd6240d9fbb7af59db3d060c20340575e769c3ff65e098ddb3", + "01d996bb", + "05ef388e7485cab64fd0d6d047c0d4e2e53e0ecdd259b8c9cb22d6ef75506b400c3623bd3f822042c1890f3ab5a32cb1e735f579b19b8e4266958af31863524408b1ee797d4b233d9d67f4c008ec02395c67ae2e532084fdfa86751a4fe6a6c8181575a2ab2798e463fd0d1cddcb399a389a37490238ef3efea9df7f2e4250621e" + }, + { /* i=8877 cDividendBits=3316 cDivisorBits=728 */ + "0cb0d30ebc4bde454260bff9a11136016251b79f7e827be54cb8ef305e3356600a5a4c85f6441d3bdc0fc7f399c184be68b2e91be94a1d1a020ed1d0b9a192be8aca0bf821376916d759a9861a35d537eafec8e26545c4a491edbb4a1b274f89bea2da16045ff3a4ab38ae8e3ffce687843db93f3271da863403de809800312feaf4a2e86918ae7f68778c4bf57bd68d6644b352a0abca1b6000e3d3b82773d71629ddaedeaf167b23c2618bad30c032503e6fa2b9c58a8372b62e435e25979e92d061d2a79e5129200cdaf80d1434ff46f8e5f41368b95f94c60ca6977f2395a9e421c844db10927e63a8c334ddce9cb8423cb4728194e5ebfaa55bf438d2570dbee70f272e521a25571e5e796e94a7995aed5ca5db6af994ef8c7e05113144aac4f3c2245cbd78db1d4ffe41c52d236398894679f9269f16e09bf7700942385cb4d9a35cb7909c7243f31255a8f5af9eaa80b1f194cc1273d0fbae6bc7a050119938eb540cf886b987a349d96bc2b6635fb69205f45931661c58fb0ea44de0eecb7a07a9a4bf8337702b354ddcf33d2d727b0cefc564f98b08a21046be67", + "58ac4bd37475008069434c57420d31621567db38bcc82fb91680dbe624a828a00d4042f44de87e3cfd28d044270c39683a6948700a4f70ac820084ff9b4fd451d81f8ab01f4ab74004066a39373d1d304087bbdc5b2f379eba439d", + "24a36426bbe88e4e5c5e6e7d1a0511bba54d5445a0e4b48ffaff57fe23879eaf3f2102d803a9446445678a87e42b5953cbb83d05403b4065b94082dd46739e9be08d1ad030fa91cabdcc18210a43eaff78c834bb51e200df785300cefba6683969de19ff05b51538a10bccb1471a7d1e17e7a5f72527332a5fb95e083545efd86fb1450cce9b83506bc068793ea425fb02b4e50058bc9c90e9a410b0a10c58fd622e69d387a165cf98e76ff81eac65eea4fb5eba5adb46172c91d5b0f5ab6033e0416942139e34cea942b3723e8657ea42ac0f7f913525cdafd188bd6551090219718a031be08ba430da5901dd508fc16d39f5f43afeefc1b894acd6c9c32ea4eed76d0bb62847f918d1b2b33525ab8d40a8ce676fd1ed0c287f894c838413991d99f7b76d35729eb53778c7f0b6999ac5c16aa89056e22d8147a5fee30d935e95feb29e", + "3e552a90a13bd3621d9305d9a44c5db25d7d1c29d386c64cf0a6cb495f94579ceb757d512ddef8ac7cf7db17b7768be6c9a84f4b78ac5440c7b6677f8740e5d759544b5b33eabfc2178f20c17d2d0efdfce48676ac57211f87d981" + }, + { /* i=8878 cDividendBits=3711 cDivisorBits=1341 */ + "259481e718b4a16becdd734620d82b7c728a4df190308b5899b345d6d420788745c79fbaf1a46c20c0693586ea0c7a6812091b664fef6aa7a8602e540c6dacad2c7184864f397048943a9e72d13874f1c687d3bbcd349b502e6a5113f819049b0d22a72e5b62ab190679399c03653f1455ac0d864eb5e923ca8d61d73d1fd0ad258e73e3c480b1df0ad63db20c5600d1bb7aaf578346634096936abc657dba4dd462706fb5f943744d0b8c20209affd14ef66885a14535a2fddda10bd76d63bb126b4550d5fcce6817c151e5d2fb155b991cad8bb7c90dcd1466ddcc537843f9b0fdf658be88f9117e1e403d8ff3e44a1c046316465ed42a0186c85c5d38f6b0db4ed16c795467089294f4097965bee86346e7f9ecefde8ac5b04e058a149acba93d3745cf4cd40a50bce52422f02285fd8f667848061274a96298bbbbe4011ba7b992b78c2f46caa4c7277ae9c3a568dd5d5855a62d439f195e42193913b7b7c9c1b55ccd3c4adf60ec7e5569d3e7e7b907cc33bcf77d4ad9668785f1a168709f4b7d57886cd63e074d20c27cdfd813906c42eff01d0d9b3b639079e5d8fa97ac51b297dfd473c8d9d4d8f8ec358f99d5a7d7515bf1c5883d0b906e215983b49422c4354897dd2f8dc252553b3c2d22", + "0167c210021cdc6a0457ecab8c906be9cdf7498107948c58441c9df89ae1961f7afd68d844ff2f71d99fa4facfb418208b33b9c0cb6aff418d9f40bdbf25ccd28f266f3ce4069c21871a7fa7728ac326c07554a77fb4825e6f673367af8c4ce7c73a9e59a373bab5e39443351d3d5c892e0cb2d254b518e4232bcce3099f2155481a31f3ff1e51efc3f662509f9681ac265c10743960c1b03e46b38cd529f5eb25152af9f91053fb", + "1abdd9bfd1d10af2467bc479c928d1fac40eb69c634682ba29cfd6e81fbc8211de645223fd7af9221a79327db2aa42bc8f4ec7e684a23903c539a1980d36e0566a705b94e542757fcb82a3dc364a0c92c28421b75ff685d23861b0f1f121f6ab15a4170d12f26d5276603fa701b077cba16f7113156497a1e7c7531b5b41641a7cc2eb274a5c72764a3df2cac4b5eb4e3ba3c05e684e72b692f9003703bcd77b9e2278194e2e6651f229ff68ea11e4b511126abba3633269a47f4219eb1a6d3d98f4aac2f4807e091d41eb19996b09e1f65e83a20456d0ae822486eb9da1a3439b9f1a85ed6266fd055f0c7e654f97adac73fb3d4a487c32ec5f31bf5255287fd430da9edd5155e118679f833a1b26ea9030917c19057b8ea119b3ba2459c05bf1996a80e944721c7b", + "b6b717db2be413b1de2d3aed4e199d71946533a4f2096e3f70977556295276620dad940bccda5b5066ac910de7617a4c5623493fc09b12b70433fa8e58e01fa9dcf8edc44e5eac7cc4c4c69335a44a31f9dfdd18fffdf8726b5c85ed912adb67b675880623608b41c1288226c7bb0c21911a5b2d8cf0cc7d0192db670b3829a07acfb9acc16ff20d8b88f605d408ba309ed0f595e2c4f9836ca79c416295043fa225f5b56e5f89" + }, + { /* i=8879 cDividendBits=450 cDivisorBits=232 */ + "02a95cb23410e5de78e27ed1c5277199f75438b9f8b51938c301d278afd3731163c90a944448b2c27047ccc96c9369512ae61b9d214ec93390", + "0def09c9d3c5381ed0de618f7f3e6046bd79dd6eeea19f1c2f75a923a4", + "30e6701223a5231bdd051319745ba7f19e142d7fbe4d7f43072eeea0", + "09c6cda78cc8c59b7c398c015cf2c6e7a50c5f62ed75706bcaa2787510" + }, + { /* i=8880 cDividendBits=3042 cDivisorBits=1334 */ + "5b57d7daf56626a449544291731ddd59ed51d54d319b5678a926f7c65e97b46751f8e87c82e4e32f9db4a9a2984ae9e72911a1adbc0b011e22354624dd441a89d6c768bca289e0d76fd6c5689fae93f62747976b5ace1afd4f8065c224a40ee2241612551bdd5411896db9d34b57f598b15ce01f9e7754d49c4b94dfa180ebe7ce94c315509d52bdec0afa0a8bbc00b86c1de87f504661b035caac0eeb44f48a73795927939ff941ebf4edc23373ccd55b4f39ec659e0d87a807db1d102d453cef2f61e5e8a59c19c7d6ebebf1a09585859b982a2d468d310597844bbcc419421fce8f23b263827e9c53e22fd81e5a521f94b608da46b18634edf7a52eed03c9df55d75632dfe45102ba792e507c5019be01e7cfe4cdd7b5c25fe2f0699e03d615bc58ca63e5139343e27fb0bcfa2202fe4ca8f757eb549a2c14df92b9a8ae8a277fc728c3e3429f8b9dbb8d2278263ca65f3c164eaa4cf94c7b17ba874978f453e4efbf70b301ffe9c7a89fad4a6447b01509c48c60befbc46e21c0", + "22088bb216dc4c0b9030cfd92db7504e3a8899b2e374a6b0fb44339226bfcbf58fdecd2fa4aa31624e30d2b9d77f9fc400202f9add346880650656ff5716b6712c67679d18a249315d8b79c4a5d0d5846eec890878945864d409a09b9e92940c0e27ff4ea5f3c9611ea46f4922a517390ec0ccb2d8e2d1299b7adfdeb3215c0ccfd5719331978c5f99fa0dbf7e11a2ca3381f71bdae711a3c9207d299937c01ce1233c963134a9", + "02af15e3ad05fcc194e28a93cb6b4c609e1f5f5c777c94773de094e4522bbde85f12107a6f9b51b6b41b7c62091093226213590f434d5b67f717f5cd7e15ac54a493f94e7f763956013c34d8421fdb0675013222ab5be5be7bc853216ff3415188f60254e439756d9677f769fbf0bddeed8fa301b7af786512fcfc254f2d651498812d07d3ca81ebf6febbc2213a4ba0c268e51f35f21beb48048f5ac8d5890a0828716d7b78f6760d871df8eeb78f3cd65cf11fea00ea673e98dfd2ebf309bddf94560a5f689eab560d88a3583817f3d11357f00d01", + "07630f33c089621a8c43ebee3644c378b7d8762bf75efcacfe261d9fb91cf9b6c68888897e30b8740e10669bb95becda0c6e175eab90f12d994d5c7bfea19b8418076c8d29597ae0934cfe4cfaa09d97688696bcf711ae3fd4e4922bd4e6c1c4d8a3e80e3670f9b196cbad6ef4f37c55cf5e983210f45de8084c9b946d3ad7867223a285c471c624b82c8c7289a9587459dfe82a14f15d81bc779d45c7ccfce3ce1f8ce1205817" + }, + { /* i=8881 cDividendBits=3284 cDivisorBits=2030 */ + "0cefedc64e4b737c3376a7e40767768a6dada20860b6592c419b3268e48151e0fedb1e36b4e8993b6bf452b017558fcbb4ffcb914ec7e5361403abf47180110e780f9cac315487143fcceb9a53de7d8fbdd2e7db902b3b6edb65607d49c062f906758e1227902d7a5815452f1a64fa311d0b79dfd6df625613eabc0dc16d4bd1bf68ad43080f3e7fb4a71fbad257ac2b0762b782c8e7ff1fb57e19e8f6bba28c6690c1a86672b427d4448bc2889f9b970f8403a751d9a9c10f08c8dc6612a88538eede1190dc583509bf7e6bfbd8dbccc2179d96d23412031bc1ec853377a9b814231d5b92f99362732767bf9277c1692ab6ef383e7c680af3d86a71d2d89c0ad2ce0f7671cc2c28568d9860c76599c981bb4805ae45b00423af051f9e06300861902e38679c13a3193b622b51aa026a1b5ad16e76003e8802c67e0ae67a5eea1deb400b4c40f09dea4e29a246c38fa8912701529474bbec6b261680ab4e1d0f2ab900726783c110da06eef1bc5a89dc2804d424cd5fa8e83171040826efaff0b3211d51708c9c4456743f7117a52293f3bcca9280e63cd8ca3228", + "18fa32d30c4a82a66763a3daf20183c7e72fb15474ea07f192e773c9dc88b21e2f9538cdd240a624c75c86b4dae68b190c40aa2fa5c658c6bba0410aa9230e849a3233f9f5386d0f018a3d91984af75f41281c04a57847b78b8cad8ec64cd86e1801b8f45c507e51c03302c8ab87990928c6db6d59aeba8fa406f803e65aca2e6b00d90b67a978ec8cecf26f99382f85fa965647764aeca812b654acc37bc6e5f3b89adc7c4a0d1be4ba5b1456fe00cd3865fa80a945f30ac8f3e0fde6fce54d09ce9b182465c3f15d5c03deba67a719a5ac9dddcf76c324c8ac9769cf3dc92e172e9d1b4e407a5aff9febbdd69eccf2ec56e2d1406ce3eb37c922e0b4ce", + "8498ebddb87dfd33afa49b889344c81fd4fa7affc098f37589e7580aacdccf67ac5dd7f2025dd4552b35c4a79e10211b4fb23b102940015f7a24f3a14c21ec2c43515903fcedc1f3d02cacaffab6ae8c2477b560e7dbad26a3aa679dadba3783908d6925ea21651f4ae165fdf1f9621bcd8295df2559d63970a8ffa3e79a3a50b796b88315f8bb652d6a80fe931ea3efa8e6d7fd9c0f0da9042b30f8f7", + "0319392a48305047027586fa8dd0b4be9822b1223a331b8265338982b0f78e968ee45af475f855fd76a725f06194bea489b182d73168f2cd44d6f2bd1ed460a222b41339914764a86c72fb93d32f86736f5ee74442c3519b3f2deb0179ed37b6cec3ffc1cf26dffb186e51f04f34ce1f27d7a9c1b6c1875dff7dad52d0d1919030f9f552b297f7a73f44a40defe978bdc473d07815c556aae3632821d696a5f3b302e21220aabcf414870a9fab8c124dfb7f271508947cb9599cf1e39eb0be3d316bb513297d62d049a4222b40c5ca2d75ea7da8b576af8907ba51fc48c4edc5250bcb90111ec119ef86701db85e478798c1f08f7dc16a9c1faa02342f66" + }, + { /* i=8882 cDividendBits=1610 cDivisorBits=762 */ + "980fe34678432351f70e4196bc990f6a5d04400ad6d7ee1606d1b6d7b7d14ce0c6b3d514c5cc4bff453ae19b313a91d33478a3fa3d803f98bb0cbfb5edb18693dd21132e4a3b4a78ecd14d22f1afc6c6de42301b713653764a8f8f1a710d10194fd5724850956dee23f4f318c459761ffe1b6c83160c796585b36e262fa448a2e4e053ad5a1d937e5adb83cf1e4984f2c9b4dbb2b173c24e193549fe079abe79fd325a991a64ba5b41dab5565d76cd9ba5932b53ef4d9aa884242af5ab089f9e3bb292d99af01490f2", + "025a05f439deba888cc22a87e0e69b8ea131a9e3f1f6cb94001cfff78a462d2afac143af80da19a08e6e4049858846cdab56d189940c3fb95e4744a03b75c4cd964cbf84895a0bf88c551f0e9add132ac067b9ef63d103c46ba8bfcbb6dcc064", + "40a969948c39f3ce1a205c9c0488c6dacd036d2d487cf9d57657f3895d5dde8a9e751cef31b146ed4b17db81816ff54046124ef996607b513334fca3738a72cf753b1a83e7818d214caa948af57731c54483e7a90b4a64db4c43b06e55e743f9477074e04c44e2dd138a", + "ce2dbd103a138137e826fd0e66d593a778286a3f647a1a4d6119ac8b0c000bae3bee8b3814d157033329d0bcf062583348a5645037c92d3e8b9ab818c296d91a974280e1e8554be890d5beaa70e2ba8551709bb4fcbbe0f5d2ce3d9c796f0a" + }, + { /* i=8883 cDividendBits=1801 cDivisorBits=607 */ + "41d6ca78fdc1c5ddcc4aeff25062ffdc96876cf5c2731097136c4a67d729f981486d8f25850a2c669327e701da031ac1300f2803aff2475f12f325e8cf5ea9ed5ae3fcba8c698e0f353cb0c24428b14790fd2098ab1c8a78edb692dbfcfc78e13b557dec0a060487b57ec6df889baa2ac39d700d25695e1555c94201fae58ff09aa8ff3f65947e8f325c10c42ed1298ab75cf4526d9f9cf56c80e2b7b9eb5aa533ca428688253a00de51f99f407ea0c8e93d6956d0908bcbe5a8a79e586c79429e04e7474bb2e78f433aa5063de9f198a5002ae0a5e18e080afe18f91f471d4cb6", + "26ca1b08b3d7036c0ba44dcaf2f33a5fac46d2bc3e56f9f04a9f22b5b912690a3dbf15074a2c8da1006e9fce0270004bb6cde5a57058d1fd62439a3d18515d8bfa0fb2d038eed992fe65dec0", + "01b2850ad528801fc913aec1875c96f3bd51b3bd14fe47f8936f3d804af2d9dd77a523b8eeb36f35244a7fa50f9fe6cb43b6710c9f9354c2b65baa35c4f355cba6bf0f166069e2dfa941e355c77a8caea30dc3a92676674cdaa3d377da29bb8312ec02d20de48ba700caa252fa14df9f251ad85b28f09021e2b1c1639bab21b49b56d82aab57c72ac5dae07faec1deec6f0e5546c892", + "0785ad572873a2755453b66d1d88c2e4a9877821e7f837ec57e203b3002e8f3fd2ef2d7c456d1b9843bf4677b8f12421bd8c09057d1f3905fa1d7245f886302db6179316b1153b39f27e4336" + }, + { /* i=8884 cDividendBits=2454 cDivisorBits=1609 */ + "1b60d8c56ec6531ed241b89d3db6ba41f413a60763ba86888aedf76077cc21916bcd08e4504cdaff839eed3a490afd8a0a28fff0a19666ec77458c32cc0ba47f9b2c284754fa07183635b73fe008250e30d87cc2febf24d77a54f3f6b7b06f597d907ecd2c49783268f3dfc88b184252a6a3fdebbcf51285b0d2d263e1ce17d431166ed813a7aaa94580386fd35158b8930c7674539511fb171b12316184930542de890d33b9fadcaf0564d4ac0ea9c828533202e1e33f943363cef32c1ec0046b15cd35cca4445eba4c62c72e5cc4cef6c942c0365f1b5de3ef892b848fae6973728ad9945d6610f927cd52934756986c257d86b869f7830936d89d7212b67303cf36428e5b8facee40530c5f205fc16f7997c77743182bb158033f68ff34014496f754897449c6f8fdb44c4ec3995f2685f5", + "42ec4810ce5b12281cb75e0fe0976f5e2803dfbd6bbde36f0c0a1babf5b3ac62a9d750c01adefd7b8ef74e24303a8e75e3613d16c1231ae0a5573c51e7fed62da78a08c928871e571cca983f21ca0f6f4e585a513f7514a2346a9e7a4bfcbae785a716d5c382920958d88298fc11086cc175880470c5401f74408ec5419461b1dba95e5228d143a59c64f5b21cfada89bbbb9ff8036fd3a6dfd5f00eb8f042298cc2ab19bdcc8531f5b3d524afdda501466b05e20e680ca5a7d1a95a18c0a27e843261ca3a6b45b99a", + "68bae4d57a3cb049649a68561d6832b7638346c29aec6bb08c0424480733d154ae8d91a2e87f584db5e4836cf94a58b9d8b78a017507504ed60390d077cf1edccdccf9515fff65dd9c8d28c5de89cc53b24dc96557ef103afa66e097fb17ab6253888adc87d705f5c379", + "3b2925694196ca76fa62c2daa8399eab89a4b2518595c7b38b3f39172bbe81b1127395ea534544acc8729d3ba3a090cc4d8dea62ccfe48a46e829a4a5534a45199ee441f427df481a2057696d54fd460224ab34bc62bd6de6681ac30c94427d3cef446996590328215b048fb763b5fc88008726ede5cd6a38fbfb369fc5b253ebd8623222265bd7e1f4f39b49edd8ec3a583e8845d99e409dc63db57e752d33e1fb71a6ddfb32c7694c181b8c49b8f41056a0bebc225a2e37eedd8d2e89d536ae3f0439195ec6f7e2b" + }, + { /* i=8885 cDividendBits=4024 cDivisorBits=1788 */ + "db9657d0f11e5fc8e1922b8d0bf6d4bb4c92e8538822acde5c0bd6d84fc786bcf5c6071a32a7228081c08b73827286f5133a239087dd8aa794546d64bf13c59271690c3c29af7284b401bd86c10fd78e5093f154d65a77fbb43e18693b26f0ddd8a1c7c26cd012dea73b5b8cfb05889465c882d7714abe86f37c3147731206bbe68a4832e4203d807b17e874127402754a17365b35c6e610b47f73a376c6a5ef6611e36a87fdd643f020a3f78b5a8f6b1d44c97a1da425942db3fd4e051788bcdf9b27631258d558e0d0a04bc00200529e7ae0b03879aa5005c0b6286fd3106fb449805cfff6f18bfdf32a8a8448b3dea389cd0b1a9780e20c2f3aa695ace1c587c9fc74a95b1b377550c02266ae3f2ccf1ec944274aa0fe7b3567da5798f66f4474cf9bc46548ed6a0f19631ab9d2cfbb3c0ed687b1c3bd372bdb31a334383dab29a295555db7fb157641daa93a2874298e529da259ea3aaeaf8fed18a2b13642254e34b699aa367fff263fb726f925fb873261d0e4240e1b2db4550e7213c43bd63fa80793c51d777c4d9612eee7122c10fbceba17ad9254d81284b287e35364a448ffa98306dc210c1566e61eab17e9bef10e5c81e02b864f150ff72b851cc3773689babd814e8eab1201783bf7198b5655fa3083dd77407b8dfa2daf3ffb5cf9076edf2c8a80fd55883e4d61e7d4c6476d506b2b94", + "0283c28bfe0088caa5f01741807860619e86e4a758ad596526e6538f8a6edae4f112fc18a18140486e785438b3fdbf76e7f83a10f140466e5b5196d5962140c96493e0dc233da0fdca34f2ae222d409bf19cb0a850ea783811dec85dc8998b2cd74d829c849720688f95339b072f625cf89708b8b60342dc0ff71021090404f617bdd3528033e3d3a3dd9592930a5d80e918292d2e072e2cd9bd5fa7d13f920686037dfc862b49d2725ebfad1ee1db3e215559f00a454324b9994cc4083c4e59d5d6fc2131d18bc8ec185d010a00a4fec948eccf37f65be289d4a53acc1b6656", + "5752682875d4a5784c657f8da7bcd48ca95c163f93d01ae9c3d252ec7ff047b6cc5eabe7b92c23d2916cc702f623bba2bc4ed0c2871a0ad3b62b96ddb65a9325bcbe80cf84b00dcd32e6e7448bffa7ff4465b58b816df2be3eadebcf590e000e4cf6005014c7fb0af2ce7a582cf4bd6497de413ac0ef90f70841b3d5a49156375e1e96272e3087fe9d692c27019336ea4384fde004ec0f38689ed19e1ef56fff505506dc242b447b889d20ec5f230c7eafc4a2bfbc335b117e30307a5a5bb2413fabed4d3e3166c867b8429de08a88151a03ac126b742c3224fc8feb4b4aa161aacf178f070acc952b57ea9d3cec5e8e278598c8e3a7e738ec36eef23e8feb6c08f30265e68b30413672fe9623c234ca1d7d79852bd1d8e0", + "74f00e2365232a0c9e5040a5cc410e81047d7b5b097b9455da36ce6e1c6b38422a4be2c9067781c5495bb5965b39fd9ff822a791705787a7d0b048b84ea1af3988cc2f1ab326200f8b4971da46fd2a91b758a80ecdd2801252bd32dc253b3377ca9ceaabc601558fe9b10dfd960e90c83c16a13a96c250bdf09e118c83dd9485fab0d8ea5dbb46242e4035c55f094398875627416cdf7f970166c748496933cdea29ae3cce7731e7231c7403a7d12e6b56dbc61f0c3fa9e3ecd31c0cc08adc041161bddd027c4d7b3268612bc01192f871fc0bf620fb2e566a0a869be31054" + }, + { /* i=8886 cDividendBits=3842 cDivisorBits=2889 */ + "03c38a3c8edc69a4e9ad7f6c8b7d9314222a38cdaa4f8c4e97116502ababe4150b1841cb15705ec92189a91148d66b742647a38c90022855414ae8ffa309163b6117368c76977654dd8a76cd69425d53bb440931478153e096dbe683b78092b760c5231fb0f937423d97b700b5ec37640c7a06f15c85661d8817597fba10df3c56b5d3ac1d3b61f7debf4260dab7f50ebe4284efe2ec767d6a7374555127c97c14ba2de12164639d8ebb0404b6cf8465e407ff626332f718209f36c4a97a58ac5d62729cd2f775f97cfd78fe99143c1a30f2b43e2bac39c9ea4a469ece74af85216be94f2420dc1c06d5622c66180f5a4107b5a9cfb5cafb611f13c6a0d86bc1d31551c83025b5ab61579b09ed2bd3d3c2ad91fd7e16cd31d34c2d2b83bbcbdc751fbc2a98d9179f30dbae31c131438158ccf57212896162df9ee799f31d132ef5f44f02d992f431a9aa13b0d515df042918d430f1f84a6d64ab7714895f79a5f232705d57aa70acbb471171fd74459e1254b27cc84ef67b560fbb0042f2ed10343828cfc47a787c163b3deffa6fb41bbf897cd2e2342cfcbf028d7d5eabd3cf2e6641391775830997e962dcd76f1c2f23dd8563f3bcb72f8ec577eaa42a7a150ea1dc25b35f8c6e11254afa3a5d4097901a95d1e8b4611a9d11786883ae5f3a1d", + "01aff34868d949626f653978fa44efa8cfcfa7dc93f1f0a2922a07caaecaf63e5d85009586c99bd7ecbd17d74311a08cb7264ae419e480b8a341a136bfdfb5fba933f6c2b93712939b8d2bc6e15f6d455401e682a6dde07bf84971e5d86ddb5b052886206a53e9d490d626d7d1861262e89f024d2785a7242bff53a6115f850a4269a02d1b39af828c7b32f66d6e39fae441ea5c8cd7fdc11997c15963a5cdfb8d8aee1eb2ddddfb76363c3d087f81b5a973b813d0b82522676ac33e92681a3a7063f7173ff22a49a04aab35c59be3e00d89ea53c8bc406666c60ba7ec892b38aeb096876abcc3d8f2d172ef106035d600e064ceafeb454893e9d1bd2a5f0e4087b1ac29a5966fce33d22ef14682d41e7eae3670a591f729891489bc22bbb353b78dc88070089fc93a00fe274c446f678ac3b4b6dfc006e04e2995a1ac1e99b58ce4c2addc9e05cd56efc29c301ee3efccf615aa92cc5fe10ea27d6bb47506ad67df9d18dc94b9d3be4c", + "023b0d652a47af8d3d116c6d0dda33d5b2faea1b090a0e5b1fdbf5817053d28813c10ccb3c9f36668bf47f5b646642c0cfc809d5d5f5f09ef048e13504c69e1e8adde106b6a671f62b07b71bc4ebbaa9b9e3b8a18426777c23a10971c27eb6695dacaa24ce37a6b50cbdc8476a5f857fdf8112c1c9149166", + "77667361959390f9b9b4d1b4465906138523d41bdede67f5fe171f4b5ca9b7f33fad443cc8c44f41388773d2b4398edd7fcf444396225acf18f9d4d2d8a3b9b81e2995cb0f6783b27401eb375660c940666191786e7ff9cf60ad532fcfa8bb7e83dccf82b984a397632029a6a83f9fb0c7f546d5ea413862a3237c0f2d06d5c6c75d81f6eafb5c7ad3f757f14693233dbee82289fddffcb444a588ae2a4b88fe993f3551ca6dcbf0d82c3ba90c803f20b6565949477ca0344a4e942b17e117fbeebf6e4e5a584a020bf81a43442c516693093c4ecb32c32e194dc152a6128bd4ac497512803a427abf83fcb91a7b646190d4b7bf28986f1eeb2cf31d99b8e26a6a6315921a6ba493c6f331f8c4f5f7dc76210db39b8a4114035ebc5d87a3075e47c0331455da8b9bda1cdd576287113b2c97d70b50d65073ad2dd9774174cd96373a2ffb83fd24197772b65810d62b775fb8dc56e1420e9a7af0a050f774890b4ecab3c02b485bd5" + }, + { /* i=8887 cDividendBits=1910 cDivisorBits=1340 */ + "109b332ba5192edca0bfd27370e815f3a9f3c97cd46b65c7be4de4db985251c75dfaa4b8904a79c7b9b4014216f693a4b305f1517e87442b94bc377b57b88efc21bf7a46fe416379c5acd009b61d685449ad21cc4ee29fb249f595bdcc33c7959c81936f08164b00cf4cecb41cace049a8a80c01711fac14715ec3f3d5aef053bb55cc2bcc6ed37396051abb4e961f96d2eb030a54fa1b8ee82fc8a069f633b6861afb70a06f553a08d0edbf955614501a4eeee0f8f9673fecc3edb7bab6883080eb35d3ebf0ef19967f1f6fed5cafcb68776a85da3688782c4082a23188250b29cb084830e3a6073143e03e230886", + "0c8fd160df85232fa688f2c72fe9470f1e5d968f7acffe4ab06489e0b581e6f38557b4fdd28c4b91adbaa9094e49354faf95cf3e42eaa21e2be8454a3bef62385bd3923a1cd817f2980737f1c0273ea037c38db8dd9103cef5646efacfde1cb4e731d1c9578795a3dd9cff62bc2d6048f17673af4de9d96c10851df6a638ff4779a05ac847c1d282b4b99f2a580e0aee5a1dd8e8e742b924cbc0880c081ed5d571cbf9ab56457ff2", + "01526c5295a9f9f79e31d5ba4f771c14949ba933065b666bfb0acca114d9cd23ed883e1933ca7b39d46ff4f8d550d51440c5297c774c6d5c92f4379200f3f45c4dd82030465275f2", + "0a6e37eb65a18cd34f53cb8d9ceec2c193d939348fb961cb9801fd5735da73784a1ca07441df2c5f7d0c659c75482eb9ef0292574f35412cefcf092bee183cb26311fb243ebede58273f1671f309314f6ba604ae3e61d0209018df1e6f1334c115d5933afb842c7e514aaaebe45783b213a9ec6d931964d87e45e6d3e72a6c5398a3a0eddc64052f1f2542db8c349d8370e54df7b908428c2d63a15def396942cd9510dbc5727bc2" + }, + { /* i=8888 cDividendBits=1435 cDivisorBits=18 */ + "0428ef888a5734a60b8bbbac7d4c3bbb8084c1195822b687ca805bece2fb2cced2257f3e67e6100e51572834b77486373bf9aea685f398265c4562b6fb1751cbad2a38441e5217b673735c584fd7d46b916394999b164c99d07af671214c34165b017bea37e6660710db656e74a4f08f3f55a462661b968d8db808757bdab2029703bf30bc38f8c6c857ec8e4a9ab7343fe7e18bf0b5671ac48a2258c87965f2a4d83f8d33d78860768c062a749136abfb7e4dd1", + "031f4a", + "015515207fd295e030f02b038ad2376b2b1b5402431e37af294a25f7002fc749c2bf5816bae60f3c8728b80ca91b1e8f06ee466a6d510f49fe5c3af89c1b9de5bcf54c5eda295764aa90d6d2406c0aa247ec63690cba07f44f6a0e0764a83e9fa4000660e1874676c588e7ec96ab89c3949a03292aae0ed0aae6e408d529ad5323e10a9e2bbc2e4274592a390f1824990bbf6f3f0ca686e0d9b9e5484096d24b91764ac49831d5b2af39caa401a72a15ba8a", + "01abed" + }, + { /* i=8889 cDividendBits=1058 cDivisorBits=325 */ + "0341cb1ab720c5c2a3fc11425ea364ede3f8a4bd1669c3c60090a5959cf21fe42836eebe8014bf18a53eed7c0d68e0c2660c9805bfeb5311393383408f39b8fa5150774b2aae6bbbdc17e2f1e2b0c57a2166517cb188c5b83ff4d2c804c66e23f7eff49e980ce9bb4ac7ecc5ceef24c5446839b6a112c4a577a9bfa8036dd16a2d1a112d59", + "0cae379daeb0215a7e5215b9989c74737540854879461845c47c60d4d1db506c4b8b4e22d137a8dba7", + "41c0f8b99c26e36418ad327dffea94ad6b70626a697e725d8b051483cde12e74aa5ad22287eb8755672e486c9f8a8d3fd7992d8bc10353638e4bef19693eb3a9815f889521b1cc1f34f7f7766c4758a3e28a191ed7b940720ce3b3cb", + "0231b968a4fc0a1bb500df5ceafd3e039450820cc79c25a1886f86a8ecaa09e0a2a998aef64c803aec" + }, + { /* i=8890 cDividendBits=1936 cDivisorBits=393 */ + "d767cde47f899d205ad075786d18008fc2565d886dbde23f146173b1b213afb4506d9c9eb0cff3a2baca9d8c99a307ce9ae79bdcd5c38102944ffe73e786a77f6f1f4f04ff942098f650f1c4e56f954d4e626161e4c58262bca5bb9a981840af0f3ffa46224d69e78228ebb8961a61194230ee30c5371df9e4ae551f5394648fd8359c5c15ccbde0ea982a4b4240bd83b7c58272b333eff9702b4b7e7c31cb4b2de3f4bbf2001678135478f985feb01d7464015a45543a173aeee0ea366436c5c9f298378f446e81940f409e057683807a4cea8871022224d9edd6c148a0d8086a65c6f6c4806e0596e5dfff7bfd52aa3b1c", + "b1c2dff88c41ae4dc99c4ef467b6b5a2738378430b04461d902eca663ec7d2bd2bddc0a583ac5bca1a8368bd982380e9c6", + "013636785aa0f6e90eecdad9e9631e1e539354012498963c2f15b2bf39bec249817a7064ca06e5ef747455a0e4e7dd7052e173c4b9ff771926aefa1d6a1636fcf7d1449b39f0cb51c1e0f6dce43ecfa47f896229e78c31864ec4f1837728b2ce3cb6cd976416113fee326574be21355def8602ba3324ec16278f9854b6d3b4e19f013da2eb1dc95dc2859afd9cfc0553471b3e01830c8a239cb076361afcb4565d42b2cee631a9600020da71fd1aaa0e57c2dc81c0603fa8f5f83aedd2baa20c9efa", + "01b6f8a7e9bbeb7ee1edafa940ca64bf1291282b875c9c4576e1154852bab52bad3eb3439de92dd43ae95cebaad535bbc0" + }, + { /* i=8891 cDividendBits=316 cDivisorBits=113 */ + "0fb17dbc5c04c570a459f812f9b17f18e4032aa11b0b775fa2c062c756e01dfda396bdf9be1f6084", + "e87c89c31c96f9f2b1295544b590", + "1147d144d853868bb4974f099b30c6d9b156b34c8348bd497bf0", + "524a6a276f5ff139001eb468f984" + }, + { /* i=8892 cDividendBits=18 cDivisorBits=2 */ + "037d3b", + "02", + "01be9d", + "01" + }, + { /* i=8893 cDividendBits=2081 cDivisorBits=1146 */ + "01af7c8bbd890354b5e41241d3295438a5a68f451ceaa8b4405707c2e89f6037d053e8dfcc561c21152bd1e49b703c3a5eb4918ae5d0f51207ad46a99f84ef325f11264c3daa06ea26e3dd1cae209f5d9a33234c0d7526c89945f3bc33652e131fcb97efb2c81a5fcfb8172b7e99e6e2b37a6efe760891ef3649b4549545549c6474c7038b4f7a45e8556b2d311aade5208a3901de2c8768f1af05275137b9df69806c7e296b78be3ea2fe02ceb31d9351f00d3a4090ad997006f33d12bed805d522c7d8951f499112bae14383a0c353669c62ce76e3aa37a52c7bf2e2760e029d5be73d448a68f7ad5931bf6449455dedbdc6f93e46ec9f86eac9f145ede6252c41edebe4", + "0217a3ea0aa589c5f672a107fed95c559c8e3c426a76837369a3939f243a7e0c514d0350ed98f3aee2330091a13d5cdfd116814242dbd93c24483e70f5cda0a1fecb09e30458a8ab2c1052f7ddea65e9dfba0c38cb1e33ccf0bba01e4dd50471c156aba25fe07ee3d2ba0c24440e497622661528e0f0a3e87307ce9143da91edfb8e64495f5d65831a511382538d39a6", + "ce38b471ff02005e94ff139bed394b7bc42c9621e67e36b6343716b10fed74f5a43576b9d32a491ace8ca579fa4554be23fe0cc1d0b627f2a01498902633734b7bb499f98b0243f29306ecf41514805e71604fe5b1f2b50ee3c89d20944d1da303f375adf9aabf80b05e6d81bc5baa52b26aec0d97", + "0152b0b0d2b0b272518217b7a35d91fc13410de1f7fdf6effa6f096448fa7086153e5b3da9c9f146579fe0ff78ccbf5ef01ae522131de85792bf83f56a69e199294b0e991379da03f73ccf81bf0c333420acce65fd352d3eea8d9b71a9eceb93548c1351233f5ae56428bbdbc4abdb139ab779c693b73cd9354abd798a83a7ecf48938ad7c7a9939b8734392ecab7cfa" + }, + { /* i=8894 cDividendBits=2752 cDivisorBits=962 */ + "ba44e3004b3f0e3aec0c4acc4fa026592d14dbb7894705fbef865d371fffe7f279fac88df2dcfaa61720298846870afabe91b81981301b59370d01f0c30bf31c9c5def401cd12af159aa3567ae05818a70aef6699eb4b3c88e5b5e176d59d790c5b560ed84b9930f10ae3fd906b9cec0d4e8f6e9e5fa59b68272f565437547bef2129949636e243a2140acf86222dd378a79a7a906e2ea4f33983c002c27059cc6c48f90943054d05dd297c8f481a06243685a08cb958773be8b9f82185eb25a5fee6342670f1a7e055cee7510e80c87828655836d748e508755a93e5a95e92551817518936716b8a26de751fa86d49a1b42511c89bc0bc10257b63066e25b1f13adec444481d41ae6f9dc318133ed6d9e683950a1dd89faf3eebc796a589006b940ed6534a700c3f5c769f74281e4cd0e7a9901c9a366dda75608f235d8c789018cebe4095530b84883fa0c8b02b9a8e69073f730fd6c96", + "03832d5d4efa9fffd5450d08a723819ae650847c30909069bd503b851c312e41403db9dc4646e0fe17cf64186754523227cf6fe16073e0d7cba3fb4842665b2f49943919d5c8b6b618e08cc8fa0b8995463db1dc2537e1ad3d1a48a6ea4d7668faa9c0a0741ccaa9b7d197d77036ef4b0e834a513fa166a296", + "35081cd4b16795183fc4fd290777f64b82dbef11b5505aa808a95987261d42ac32c60b8f3f5e1ee61dad0b94fa48d78463b3c231b902ae84255d9ad0b178c4c38f10d418949f1ad1020245c4883837510563425d494bd74895afc40fcecefa26ce3526626112472018d7c793ddff9c79dc417afbb6f08ad31d820e41ae5308aabeb902e2de9f50457a41ba2d60c64949b639c45caf1872cd2d2fe1b45c2bb3f72a68716db213457b8f5e4889cd522b4d175f57cbb4bc925d4359228c98355547a8bc2b71c04616810ce5c4b98ce0c61a661446e502f13a2a5ef74a6832e19f5d", + "a70f0391be11dc7a052accfef04b8528f2526789e261296cd334b4c7c67cf745d0d4145408d19648096f1cef31426118b145a7e8452fe10ede7df0d9bcd265e76692f95b548ee47299085c237b36278eb34c0b0b40b2073e3c116894ff315cba618f137eff0cc7840f5266b99ed810d1063c1ab49de33218" + }, + { /* i=8895 cDividendBits=2692 cDivisorBits=2113 */ + "0870a82a7a85c9186e95eb7fc5f7aa75a34f4fb72ef44030e9921aac69aec456abb2325e4accd8b9adfc0f1322bad103724584dd40af679f3e1cd88042f043998317fa1082368a53fc8034f8562edce429284e8e7bed3b42bb45ccd11b20f2a341c31fc99ea3c7d252148050a7c7beafe86db99dbb337041df7b01da6bfd0f3fd124a2a579d953be28d78122eeaa062e2aea34e697a1995e0211bee84ad9d91368e58be71a43a5f3d69de5001a64790b8ee37d4f7397957d06300c1cc631eeb356d1ccc4bb20889ffc1cb0e6b83eb7e6952cd77ec75b835c084e62971dbc0b3871a3fcd1135efaf135b4e1eec6634bed6001781f36a5b68b58916b0bbd6b795825368226c436868fa560fd324426ab1e6b3bb27d27409ceedfffa59d2f31d0ab1f4bc1b08af34f1e39fcb86d69d8066bb880abee7451e3c2cb39c987fee6b1d8cc5bab4897b432027892326e77f3f24ba1", + "0104a8c81035011a0f71e68dd94886b3e40810eae3e14288c53a71bcf208b31450d8c0e977496cbc5b828756d8f5f59c880d3ab67b40ea6cf54e5e65aa4059c7706d23a55025e8fb2f7f9c37487c68b7b7f4a1515394429387bd983a364f1a0f32f4fa7e3acfdac00bfc23d2233aa6a7f0ede019fd00a5c88856c765a8c3ddf44b57551b53fecb43478ee992bc7a0034cbb727c2e7c98e2869b1b5420e822694cc71ce906484be2e25ecbc7a4ec1e20dc70e748a06272494b7675bc43bac3307a8035332d7ab918950ebb1b56f39910564658ef5a3f52a333cc4c7ed5228f33a9b34a9f22c585009c13c359d9d8e55da583c38f42130571c9be834dc57f90964ee34c4da0ade5cf741", + "084a08f661f542316d38c0b6876c9fe48fc39ebd2fa2c316af921fd073e2a0d944172ab90434029650b81d0fc3576f4d8977f94c771b2707afe04ee748828f13f2f4f5d9a90785a25d", + "63da6446b9bb2e0eaf067b8eee053b665f52d1505b025c99f42ab2b3f50e468446d467397e1fae836bcd00113d93e4d4537038210c960e1a972a1a0d4ce1a4da4b1a0a73ee3c7bcf545229603a5de7934c9a99214ceb21e33688218068a4dc1fad5060109b4e00b6f25b93f675c3fe7ea501e0c68cc1a517acebc8ebadb8c70c2a89b4827a1a02c5c137353e0f105d3374969d45b69a9b058b7692e2279b6bb58ee5f89e76b1b3b708a34d34348e311fec0eb7722be8209afb524c435f6542de798dc4852181e58f200d8a93597bea97c303ed11e64375b540aa0781aaf5093918742cd9e0a2b05b46ce11db56464ab274e2127651eed4c6392cb7a7620dad9112cff3d61bf05704" + }, + { /* i=8896 cDividendBits=1991 cDivisorBits=1160 */ + "5de3079f2f9ededb2a7381cdd818415e403d8a73d5134991c28433c8c380390b713ccf6e3f7e96b0cfcea4c710e9ab518c296b851094607e786fd3367da869bc4370015891b33afd03df01de62c092f5b906227342e866717f5e057d0c2dff951c5eb633a9dbd8955f65af4b2e0f4c8acee91df649050952eaaa6adcc8585177a8427d195d4309b02aaf45900dfa2b0d1e4fec8dbf40e9a9b24c054a352aa90af26aa1009be9aac2280c75774a120ced28ef5171d6ad971acc36cc503a892843fdc806b30e425f09820dc0b791e47b4538d2ee6722c2583b3cb1a6d95ebfd8d772235e61402eed29b460ec95284856175608d11298531c6d8d", + "86fe11d9a8d96dc8275d1706dfcb1a10a762d34191b693e027ddc91300f8b879981093ef97d240a14e0457ed9a869817cf4f113b9fd51c259d432720964ce795a6044c394f2b5ddbfda77fb8e2925ddfb42e46e132ea7dc72268d4ebe9f793cc092184dab175cca96e80234a1b9f0b543b5b1f2d0448edd02ae73a4a38c29758513d89a76d7d5d8807805ced06bf721fc8", + "b20c156e4e790ffbe145a7d8fa49eb4bb0c52712002b9bb514f3cc3a68a89c73acd0e5289c2325bc90b699c91d20cb1ee19c7aac278d74da4c85e2d9986047050aeafe19c33ae49810ae69856917a14669120a5a9d898db7d21fd5b73640bc0a4cc5cf76e5f0a281", + "1e6cedef259ce18ce3583f823480041644d51fea9df59a40d92443e9e559303719427526e291d8ef55d63b0332b1748097780cbd687d8725ea0e13362b58bfeebdb070bb926d301941bacf4a3891b5d2563f149c28dfe8766232f01f0968a8589f882c31d6c02f423fa786954982e5f7b28b40e8bffd6a7beec2f7c65d01233c0c60d353188df34d32f1356d6feefdd9c5" + }, + { /* i=8897 cDividendBits=3511 cDivisorBits=2660 */ + "538948c63df8fb3ba634e9257641ad29bd80aa2f732a179586cc051ab2367070e13dd1fb583f0ab3f6e61c18040e51b28ffa03aa4304d33efed4be0167ec3198cf1a4a25851a7d5b4e1523067ad472ecb6ced9bd5bcedb8d214346fe4f73cbbfb9bb55efab58f707f246dbb645072c55fecc28e983729dcaa4fb361b4e283dfb11363921a26f021c8136ba80838d1533c8ee5cab6fc30f9a6d88ca794a523ce6f59b2c7ce965cbd30a0633293cbf0966543189a6f3b751f9a225b9870d0832274f4ac84c12f1348ca9face522a40f0e915f0da0d191dee464fe3a7978b92232d2d1ffe198957637164836d7efdb5d364315405f1505cd6b09000bb801c7e90fe2d17e7e805634c7a6a010926df4ebdc8ae73a8bf485bb7ccc2aaa422dde647adb789984f4915610b24a700e808fd60f4846d0fc1467b65ebd38a8912cdcbeedafb689283d3b6539ec9b58d3dd189c484690841d17ecc8f41056934cdb27fb987f16008d4703d28c46007d382274558f0bff1a49ece1ac2d709dbb965727b2026c790650ce7d4b17512bc4700188a8834c4a926688f30801665576ebb329d8a2e82815e64b42ec299613a56932f9ab77fd3626f2e92db37", + "06fdf21817283774b33b050471c3eea58e69dbde7e80b803574a109845b255f7a3ffe6e11906d8283f216c9e192d12b0b1a3434afb367dc8dade1df33eb6f7ccc4dae6256eebc79bb18d09556a80147dc15eb031c111471ea7262aaa702577f224e8a61dacc4d3c9e294c80b00f4c6773b4ef35ed8a32f791130096628239907cb40d2a85cb1f497ec3b7efe9083b6f80357976752e6ff6f086c6489003fa2cdf109ece4b6b1888630b15c6886c74dccd6441d5ae215d6776324db633ca01a0d8302eae99bc69866ed544c3d6e61a3e65fbb78c4959211e253150e97bebdb1c42170a21e1476cc116e4df8b888afa0874e82c0cbbb37885884f83ad539ef2ae571eb7473f86e1a927bbb16a7b90d78bc8d293fd8cdf4edc3f7bc8e0a2d11e74ade17e07af9adb9c53077f6ce10f362edf623c94d4b14937eab00305d7d40a2d1e0c8e2570dbef7369891582e48", + "0bf28c004c1ce592c5d86e046cda68198f883c4a4e5430f07cf0b98b524f5c42afd46cae28ef02026adab54af1e2281e903e0421dec37c6f760799cbaa071c013ca74160f1e90c52598f4aaf83f5f87484492b04c4197b78c3c1a45e2e4f713d26b2c6cd8001a14c2dff2a", + "01493057cfd7a8822638913f2a3723e2e5da8f2a4c588791ae0193613bb17567915867ec850bb79b5506a6ee491624a5af3ce6c64f6a216fdc133b613eb8a62844d1400d5c7c847f7d8b621c4a50e9a395a5f8da99cfccd2d969d110c7ef95054d87bd255333f4c814665b394c2489503621061805f03f35d3e5ee031016f88608d79dadfd098395a07e32097d6efe6937da6c8f095120e557eed1c84f0c45c347602844147803d3869b5e292cbb30b6a760bfd8b15a4a27dd72bc21286faa83fa1d360ffb040fc4ca3e3814800a23a4f585167db0c32c6f4d7ff82bf512e89feac4294139a5d44612775b8adc3ef0e8f2ce58f9d3004ae62e94068ff48204f00bece9a4de61c4b3ff0049d6e29e3e771319c298380c4f28974db3fd08feccdf3df5909bf289123e6da015c9aa00716fe2f2d504418e82924162da12964263970d7ccc98387b47571afd598b67" + }, + { /* i=8898 cDividendBits=1202 cDivisorBits=467 */ + "9da35508ead1a555fb24556a681690fadb994be7a0186870102dd231a2c32cf308676f40dd8adb0f01d6e67f4070199e322948e8664b9e17991a6b74833b7948058be4890718ff29b2a74944c8c9d91350f9b6a604a496aefb3b7a1719d7e2d6644843b51462f95e7eaaaca624ad619c1ddb83d2b5e5c372f3a49376bb608b4abffb957f25ce9680ec6688de1cbe20bfbba0af5e59b3", + "028f5f3cbb34ab659251db6919165bf8d099165b653e7771ace215de595c15b72f825dccd67fd8b37bed255476833fec620c8e48ab4e6368ca4b1a", + "3d9383330df411d0eea8a2fd7a363cb137d5a2b1719e6e1e3a4427cf51569c723639b934c8e1df94dce100a56f35a5a2a7d1942aa702a1ef94a180bccf82458622348c9ca154d4dac80f66f43077c78477833e7fb82600d545f3b433", + "a845b7d5a9cf39242daed0a773ab137f33b23ec6f6ceb2181f9f4672be339c7e6c7228ca02c05737fe72e0f71b523067aff2f9b9bd3f46951b85" + }, + { /* i=8899 cDividendBits=154 cDivisorBits=96 */ + "01e4704563a6dff6c8774623d9c06c2cb05bc8", + "5f03c51759764cdda465c5e9", + "05193b6b47bcaa", + "01929c02345370dcfd24d30e" + }, + { /* i=8900 cDividendBits=2008 cDivisorBits=10 */ + "125764c63db14515f05480ae4408b68edd10427e76a4a494d236f11fa9a0d29eb71ce8cc0ac7fd600ca07ebfd5477015bdd46c2af06546ab3cf0d5ccfa02421d7d53a18ca3e4c92bb218b40002af65037f145a9bb47cc7112bb067a8dc647e8964330da0c1506d84deab6d7300f6b3e306bd39191e0b12349d849c73c84bdcbd9816b83bc3812159ee62089bc9bda4b9abfa60f869b0219d2383e2c81ea516b8f7e2c8204de2c147d2f91fb959865a30586fb6fe45d7cb675d6ef43bb5719aa81a5507535c49c823ee21be7e6ac4d00586686ab56dcc2b92f191ea85448f7ab681da4dedde7e61f1599d018bc4ea44cbe555dcfd411a707d96e297", + "03e4", + "04b6d92179c0955af8e3579084a2a003d2021f7c01b51cefc2e1e9ab9ba9d99aea2e7fb0d89e53a16d241c7737d8c9882891128c94265e3e84de497574b16a707276235aa3714b5a654b3ba16a95f2e523bf51e42a4723be806f23e57d87d67fd7f47289f60e80e78c826c53056364b9d68d2a6f52c62fdc2c995888aedaf3da5e9bf1aa9b1e1b1407cf2c5d80f6242b9c447782ad2821507c46e9118238d3767b581ac36b688c2705e79d3af306c5f5cec3449ff10d500a1e2f063a870dc71bc914d39e2a3a0842cf32d3676eb83db13a3174df77b91a9f15fe6faf1adffea41d436b6b6773c2d0069555bb0ea0f7fad5299a789c8e81ab133f", + "017b" + }, + { /* i=8901 cDividendBits=3705 cDivisorBits=415 */ + "e670380f3d7efb6079e4ce8019ab465cbd1c6a06bc394593db96c9fdf735787856bfa8edaad1e52e3547a65c30946e0a9431c6f5088259c8c8fe67ba9bcac0b6fd478c94efc90c16982a59ad79ed78eda4663266abe357bad9ec113b9bf9536404502713ee57e7c5cb6b7a2ada1b23abc38383e61d060e70932b8e43721c0ab3c1be4943fb6272f1d2082fce27738fbd3f302d964527abacbc675f4f30d4e89f1bc2bebb7cb4731691815130dfec4f30c3370cdb53064911bb138dfa03bafe9cc1ddb3069dcd541f9f5faadae954c9496fbcc9f70c8b0464b33b7fbe524253cc9c9ed9102e242185f6d4af5000f2d78db19ab9ebe372cdf2c337bceacd950bda03c856fd1badcd23c26e7fd9f4efd86854f3255b6581dce84517740c4f270744cc527db14c876ed22a012329b61ad7a15ab2c98ec19c7d537eee9ee60c66e7b64a1b81b019f684bf3412a6a287c2f1208eae052b8caefc0a8b55864d5821f71e52dfc53e2ffc308657d73c4555b4fb0d5651eb48fb75708a750358f4c35d7c001d95209554530236f64bce54eb4e1297465edee6321ec63748b768eae29f2929771f59ce6af934435a5f2cb47df611a53253311454b5ee1d5816448f0876b8d43285b8826d9d62bf2c0cdc4dbfdac0", + "635163d94cd353b3eb7e5014179560544fbe7c11865bf9036e2176cac9a449c3a9f70f46a03178e91871ef614313d0f3cb149c6c", + "0251f937afff68f8634572be03c126fe87ad10924f3ac06ad526db3994ce611cf4b5e73ee000bfa18800454f83844ea971d5f11bbfbeeda5bbe8baa6806802632dbcaecbad53232ec06f9be88c64065e5a1ee14cea75bb839e32afd55d5150ff69ffe2590d88260cf4283b9ea4ec68a74380536de584f4f588bd7c6034326696356b1a1c82938bed5a55a5cd0605b0ddde58623d7f6a47b8b29f9622affd2a8194ca029567bcaf282f602d4ceea061e27fe86a51c96040704da833150459b99ed5b53fde78c28749aac554fc723a46b297abc791f3a15f9f54fe71742f1b4f83eb6ee2da76483b2aba1b8fd3365812f4a7273fc3a222728e6e6a86847511471220a020ab4bf8fe1b908ff07220fac0f5e6ddde65c4652c709cebc45bff63df88af07d5eb6df9bfa02129ab4409d6238feb22cf550687e21293131442cef55a13dffffe0d962d25687affd321a6ba4e158923fbaab1233e15e11f6892e6a255ef6451980a92734550d0e265c45787a5e88c6cf5b4b74e3fb2b1e9b625b56d5e00d38d216c8dccbfc0a3abe6b82e30537461e723275f93b8ba76a8c7db", + "1000a2a4b1cc64b11a4eeca9aaa38bac2955ed4749a2aa0b54caa209a8afb75df52b18720d3f83b1d9382c4a32c6bd581ea6165c" + }, + { /* i=8902 cDividendBits=1814 cDivisorBits=135 */ + "25ef8f86108faa52e6202c1930aab5191d1c7d4caa21eb01543991c3d0a1b6f7657733771447b89a3af54d1c56040d761b3be838beadc2e5a8d9b7cb4eb1ecacbf2e6badd6db807c5238cdb3386d488807f6fc9cc2e335b26edfe130cf4ba0ba333c9bc8d7d8df74b76bb82f6d3a49d08a0047ac2b7e78a4bfc73ac2c37fd21af6ea551daf17ca6d9b07126f210fcd69daf24c12f30adb4813403fd47fce05368a852bede722c657ba0121d5e1370a34143db97e480c795420a849386d9799187eb154aebc5b9bd0028c94d7099e69c0d8fdf6a9887d5fb185a03ca5c1c14c78c6a2ad", + "2abc0795a1f28bd0f47ceb7d326561e93b", + "e340e262caee0ff807e42bb3f0bc17a8db56701c357d37f3ec88ecbcf60dd5a4e7298ad58b1b2603116995cd1eeb7152a820a2825c37bf69ad89b0cccfcf595652438fdbc8f61e019c4d5a3e2e0d709beb1cee410008df0b5cdc88844aee560b2a4adf90ccb59a95c28258bf8881aa1ff4f135ad62d3b4a5330da215d00753997b25b3cf11ea245788252d3883b3ab7678ae89698952279b3656341237c551d6e9d60d829940dceb07ccdc189e5f595a9dd2aeca909c90b7869e4b6ae762b82f62fe7dbe9483e4a05e9b882704a7a00c2249", + "1d0d28f627b174bca3d7bf589dc01d4ada" + }, + { /* i=8903 cDividendBits=3677 cDivisorBits=2209 */ + "015166803be864420e6f69a780d15f7aa4eba29833d9e7fc7237e45bb8a0216149b600a11016879a4d7d44bbc172d0ea4150052903d3c3443fdd2ac887296b7f8458f0022c99a6efdce6ed9f82182dd24a0a75f3e5d7d26becd7b1f877a99a0cb3d1f4783a39b9b3eb33a81fdf0744db85b2c9cd4ac57c855f09de497ef9bbf1092049d86d99603a26018bc3ea9d25389fd2bbd39a0046a125e92c4e69a595b87b34e0000498eedd991ec360d063f48764644b636fcee7562a9babbf875bd505ac0601ca823ba35b7e5e542a2d858e8ce93bc32c791a4019bcb43481beae3d57851087948d2d4120739253b9f3e8cb116895d555a02f01cf9546f145172e42b64338428f1ab1210d2cc05b53e27c8b10f24ec2d114f42128466f58b8df287f07dfaccc1e50821bbe4945ac134a311b8d8db9417fd217acb7638529cded055c51637961bb0b3bdb283e94ac1eda43e994e5598c87cebee7021b7547b9bd70ce70cac09942728796825845dd056e263e2972ac7bffbd221db8c78ea4c902517de47afa33b0da54af57d9d09b0ef5407a3c3942213fc765f026e3949c78db02193f13bab2648406f6ffa4250498b3010e1e5ecb24a985b07e29eb3c6671dfa46ff10fcda7c358bd2538295bbd03", + "db00c0d2b08c2618af01e4489e78fb383175ed1b86d86ac2b13f6b813c7a9e005330c51f42cd0c1fa09538bd6afe059d7d5c87db35a57cf1d742f43728b9dfd1f70f0ee0e96ccf7faf37904bea32d54851bcad02474843c7a4365d5943bda7feb6cab1b85ae3019001e09254fad6f58fdef31dfb9321d3d4fa2369aea061e2d145e0c94b124cffcf9788ce7354dfc7352b216093920a1ca47e4ba4eff3821732606f6c5af34b2736879791b7f1abdb0a5d9cdf8afd79bc83db13ff0b250e247358e7fc505e3963517b7daa464839fc9427d38c6aa0c1b2bee8d5d6b934f66d08f0f80c54a47bc999ff9d8853c72d7d2d636d52a5707d6e7888bc7892b2c8b187e1c02580d276e7c5b1c5a1f23c88d1c7c4232472", + "018a6618be3ce4265659b537618fb62932ea481ad155a5291ed69193e903144731fed48a7e8e3e36b8bc542ceeff644ef8d84dde9d21c4993864b4f21ff2fc6b7cfbfee99232cbd455e67f333b331a1c5ad49ff9a1b5a5f3123ed2b80537b14e9c5e3b61de5cf37498efb3471c5f28ca593db65aff6095872366fc73e7f2b656702b527998ce13bc7d0d66e9422e487a0457b6254cc4f155144ea103aaac2d3c7cc4788323e07c9021a2b12db27b8ff43cd14698964bc7ca", + "c93b800c04c2d8122b17a2ddd19ee8506fb21afefa0955c295e89640309eb8aee649035b44f09b05e37699f8ced363a38a02e2fe0cec05620186df66f68ac451ab783c1d30af52eb79a840e93ea1527908dd3df4caa30357002bdde06b957ac3f0a5dbc9038e446606492a89af420272680c364328d24346e5a79f02d87e449200fbf2dd718abb1009f0272b8b75562acd3cfe8a21b1d89346b8816e598912fb979cfc9c2b2572133d84cbbff826742aed00e5a5b864098418e5b10ee78986b40a267884037c632e03f344394a97fdf31c81330d1974bf98c709ab105ef9bc86ed9676b60d3deb52549b05af3b94a33b81ce33f6bf6162970e325463d4ac88f84818f72cb487ae7dfd3fb46f2d5b76c99ae65d0f" + }, + { /* i=8904 cDividendBits=85 cDivisorBits=22 */ + "1d928a8c16ad67cdc353c3", + "0a3943", + "02e47dad2a00236388", + "06ff2b" + }, + { /* i=8905 cDividendBits=809 cDivisorBits=29 */ + "0124cb008e99c65b07143be752f2142485a45293c1fe8de320d0d8133f03eb6f17f2a78141b68bca4eb3478a70b9725834c02c8a7cc562af4d3c7fb8ba9a32c7bf1d920e395d608fcc262d746a12cbd852931e6c36a94efad07128dfd9fd2d7facbc9113a99d", + "1a05ec33", + "0b40525ca7df38e940de82d5d6e92fea5ceb68a93441f35a40ba11a236608ade038c515e92b40bb9d2a2b2d895bd5347089cdc6aee9fdb59b567f2140d29a5c9c55578d638ae64aef7d86b3580cad3a2f4ff7740acfb90dea1ba1b8530a6fe8a7739", + "17785d42" + }, + { /* i=8906 cDividendBits=2374 cDivisorBits=1053 */ + "0787bcd55accf002e9f7bb68869b94862ec1767a88e47df2b71e51ecd668557d595630e75ed68cee596bd81c30a62c93476d134c0e177dfb405165cfd56bcf29386327aa44263ff15eaf89634486fa23d7eb4805e2dbec50049768d1b214f047bf944ba00683de5b7d513ba6e094f9986abe58dd98a180cbb417a8e8de310280c5cd80554ba9c199e7e6260c8a2991df2af99adf9f75732e4a474d3f71a0b09c2cd3790322b700b2e5927b71da26a896a9cdc309c4bef10944b7d014d856b35790cef6b0b0712303b63a99e2db1653b42d964b5e40ebdd514109a8e17e0d918f34141ca4c342e6dfe3814ec6a1046e29bb00036baeb9708e36d249319bb9d13cfba3ca74d36da92ece8a6907d12e4fcc172e374c49379156bfc14e6501a985e008697eb7b5ca92b63f", + "185251fc3c837940c11ef3b9a74d7c0769d214ef657ef2eb6d6b967f6de50013dd9bdc80b21b208c60e56328fa33b8be59d4557b3abf7c4f0b8e2353a84d9f2f1cc08cd26e4afc23926d9f487ef8e2a523fde566a88702d664a3b633cd40fbcd0d6a40048cf9a64f014391e716970bcb9901606fd16e6b67dc14c807ec83f70e80c9ac", + "4f42abac891687519372940f90ef2ee86a1cc44f56a386aa7552be742d4867f035d4adf7afa4d0bfab9eeec4a31fcab314e54310e8d1806b02cd01aab8b0118644add52c333c44fc8e35e25584c72409c82bcf6b5f12c9d3c27cffa00861555191cf15fb0322adf70d3325611a70cdf9e3bc6b09518cf3b3203d2984a0e4c08f8ac652d2a098857dec8a3d765405817ed149af8a05c3466055b24ecc4e731ea224b581e35069", + "03c3a69b259f08c45a965a074df046b4b72b652d2b45cea937ca01e591f79a653f91f747587cbba8ad23d6d1201407b6516f6482ee26e1435391f307c2b2344b0c3297ad3ee2b2fd2123075a01b29e121f3f569376e0610a0acbdd33f994aaa2a1c5d749f911af28f10fbd6546662df4222fa5e0884e20df36512d999bda6a19363eb3" + }, + { /* i=8907 cDividendBits=3045 cDivisorBits=290 */ + "1f892c8b3dbbc398e216ed6df1a4a065d0a114b1b1229a30933e1f580ffc3f86eaec2a6fd91b49d4ed8311d191235f54f8fb081e2d5ef4b5bd0bacf2f684307afe9e44dc5a09e18b63f7189d9eab4574b7cb3d1bc37205d0d36e914eeb0ac949b9a996017909de11e061af0827627bd1b929bffc60c955439ec8d80a7f0e6fa7aceb25235d42dc7e991ba54c40782884c4fe8a264a0b6c30114b25efa0795b7e45f5ca580659f3bdb12daae163f2a53027d659d821ed047027f71cd55d86092750f0e5e5b0a925c888b85466afbbb607dd12cbbd06c7b2faf681574290b378c90190debd3d77033fc367c3b3b90fe5c1d39c881be57695644c4d1d09ac83a0801ea84206cc281c91ee442b1b08082ca9c2b3d39aaf82b07406a6d34a6fd301f1654e116c08f11bf738d6d754359b7f0f110bfe9576b2570cddec7b1842a6338916aa944b60aaca4280344427dfa5ed573e1b506e2a95d2217d2fe36c1b1bda8d905bf69d34344183084e6552f4337a49446a8c9dddeaf55febb21bbc01", + "03e22c7524f873e7d887c3345afd58a32ed52c3aa96bc97f9472f6f5364d04ad646d64f47f", + "081ed83752b87ac14418b5fae2ecb168b6dc5264b1defeb2d20507b568c5c78c9a944f5b6f512341b3c4ed10eb83745d086423c24c34e79072f5e126ee95b9f78fa5e6ebd93bde857cfb882404104b8ec56d362f5d773f08f933492d152c9cc2183ffbe4311449a1a03c2dbc56bb0a3520f90cbbb312ee75b3a0327d335d5bf0f709307fba64c46d605a07e31e56b97d10af82ee7e04a5c9142d251757be97ea7d3d3cd4dc79120e41e2659ca7beade1427745ed04f86c6421deaf0564926ad8e4819db649a81f862272b8428d31ca682c7ac7d4c72ca52eca4f8cdeb1202649b48650261821eac3b94579676733001b3d903e7d5a292630e995fb37842935c9cd66295a4cab7e1aa526d701dd1abc2279986a565527ab7cbfaa1307a5158822446a247e774913c8ebf0a3e07b682b9be3273e8dd132a759c45377b69daa8f49b556d9d607394fe45815a29e8abbd7f6116bff3f0369cf1fc6", + "0130856cfcb09f8f7f19f8ef568aea20c3029831a34e9aa7e8ea8f015ba36a1f9912ba40c7" + }, + { /* i=8908 cDividendBits=1097 cDivisorBits=671 */ + "01d30d67bbbdc2a6dc962c5cd5277bb9605bf1cf50a4bb4dbf61ff5e9de858fdce92c0f16d0acf692428567b1d4ff74e07ae8aac9df9399255727119f31613f2232d37ebe92ebf33c2e5e54ae8c9dee27b4eadaf9fb24b588cea1b101ac1415edb23401808d75cd98338f172f8b5a3dae9d3e6d47a169ce1fabca9cef0b30c1480ce7a63660af24c0e9b", + "4c9e1c6a0c84af4b56d42cec0e5bf40f36dbe2b3bcb8199bd5420a1b2ab42a3ba274558840ddffe76f10d75b107ceb278f8b4417008f088cccb6cd7bb865c7f7fbf590c8e81ee5555235b1becaee490b4fbc7214", + "06188c0dc195d094b88a58d8cdb26b38451196e2204a1ec77a33775c5f5031a8870a40b443bd1e35a05d208c5ae97d195df40fae675d", + "47e00d584d2caa111445ae9a019123fe5f5d750d14c82cd444616e0ba2b3bd01b8d19c42f08d5bc6e7ac17e91d6f94a52d1a7139d6659b0727dd21dc9357763a5404e02c1d6dd24d3d3de28d3611140573589157" + }, + { /* i=8909 cDividendBits=2109 cDivisorBits=953 */ + "02640f6ab1b48ba71ed64a84ba7282be3dfacc2219cdee80a2b55ff4fa9e44daaaa9e3d0802b36425fcacaeca353966bf8b53e33a60428b80b8181eeaf4dffe792e94836eff3bfb80ba95ed15700f1c529a649f8ebdfb103da3f11b352f13934e9f1c1d1e4721c5ffdf557458e5648fe5f3344593e1b11935a4a9314ee682c84892849e1c2e34093f851d5a187449417822add9ceb57811293b1a96bcc6cd229c6e69c68888fe7d191a5b3a0ffaf2833f1b3ec6afcbfeac012762d1d1878f63648b005c9a2559caae7c06a7b47161303531107933e561c3d6ab88f8163bdb47ebf09bd09490c2f424aa67bcb68b02d619d8368b9e57e2fcb0d3bdbaf596ccc698a8cb8b4e62a8162", + "01f44d43adb4f38e9d38c816d4d2b3326d2811f2afaf616cd4545f5c937c8c3dbb0154f67c4970d809b99d1c447c7f7d4529a1f7a28e5ed543ccaa123da531494508665a95fa94aaa08a8d495cb72602a2010c75bd037475248ea7f6e4ccd5537399806f71c5d57fb1ef41ea66405d83d96aac5bd13d4b6d", + "01392f8fa9bf2b2129f437018984bd7e209a8e37320bb2ca47a3afa575bf2564fcf5a2096b2baf96e90ef9e44368a9341b39fff6c7dc791131545fe5e55372349aa00fc44899be74ec52f247347b6bff3de23aee64abfcb66a4fa42e0ea04df8dadbf69b0779c4235b52448a61801c5836e15cab0fbe8a543bf29131dbd877c09e3943ccaaedc3c203d756c6dc90c86200", + "01645e25402af7c9ac529247584b1d1321300641dddc971ad64c3804bb6bdaa7dd2ee945587695138e6dee505b06b4540f5d769d8f3658d4c031f96ffe126878836cd0b6e26778c39556b31e728024890df4c8a254e7502d3b2652b466a75fd32ab85182397ea60cd4fa650edbdd12f04c82809f3222c762" + }, + { /* i=8910 cDividendBits=2029 cDivisorBits=532 */ + "0923c287b59b2e54794dedf1c5230040247f9e33145648665ea1db3135182695bbb16e35ebeea2ba81dbac2fea31e210138f8b03fc1255a9f85b82a99cd175e41287b08e9263b2150c15fb7479e31f771137fdd07b01b3875c9017c33eddafa44d3161ef291f205fce787fb59ec187a7e0f365588a4e1221bd27655a72aa3aa2edac278402bd6d44a8d1e0090f612a8ca7756aefb4e43aa3b3c5eab7d30453a54a8ff4df150c5b664e4e470b811e1accf70c63a028f26f5e2e1be8bd9f22aef966fae49393ba679e1c93e97d3d6059fe2418b7227ab7bfe26f6a7bc63dbeb23d36f963c406493de83fb4b1f717c10237fba32fdab28bc6eb8a9caae41694", + "0940afb464625a95226b873dcbf78867341da9d5bef7f3817df3d9597c807fa632b63e80ccfd075dbe387e0a2f95420c87b12c7c986140b03fc57e99121e58226e5cf1", + "fcdfac2ccf05f0b38d22485c16fe26991d56e039e6bee96e05f110b739c168953768fe4a50d1f03dd876db03696c40b95d5de8140d81f7b87f84312c1c9b2556bffa2566c6077ee36af210cfc91756287f6e4043cedbc302a25f33c0202e5c59442617db743e42aa5484a84e298307cbb7e5fee9733a4c74d7f8261ecd5a4f0c01012b501a1745d666453b1610684a577002c651656d62d588a9e9ecee668b2ba238b6fd096902d48384c3241ab1267cf650b1a39f835d527b5e40", + "040329c500536818d3b8aa9ca42750acf0522293c63a93c96adf6f1db571f288b94ce5db6309b55883cf4ae657dd78a5ccca41700f2e6a15d42346e3899c96af615c54" + }, + { /* i=8911 cDividendBits=3627 cDivisorBits=595 */ + "028b22b697aebe66ab14ac6e78b19d7ad4e712dd9858df06211fa985237957aae52957ed2f3d178e4d750b9638fb7d54301c360d458a0289941027303b42eaa3250bbc55b455a4cc015379bfa9240456115ea2023f68dfa23d8f785c3d29d217648b25b05d77dceb5d21449c2d0a936acf7ab7ca7563064286b5a48647c8c7c4906eac3a2793732904822f61ce1002da013c102ab6b5befb0d8330ecb79d20932cee03a61d37f3ba46f476a98668176d22379d2bee94d7fd6448cae6ab1ada356ab99562e5b9c9ce723f25b0c656d3e961dddb6c99b99a1522df4cc70df5b9009a55edacc2d827ea8a5a0e2dd524e0fd11902ffcba35264a47bad66dc73ef9037eb7107251f6ebd12d3ecc4b9557d8cc7b62649352e94f7850148713ab741bfcbbbfe19d92c185983710a79c4621f5c2d2f8b4a8cf8c981cf9e039ac3b4720f3badd560744d1d97847890769fed55ed8a9e9068b08f9ff710dfa881f53ad23b5f53f81c055c9005ad7ad5437672fdf52d885b535971b776749fe40a946fc1c04a7878bb83b903f82a3dd415c95d165c5e6b850df3c76a6138702149daade4b36999727909db2529a9474aeb568aa8ea532a8aeda14edc7fa18b176f2362ac9e78dbfe31d79b8", + "01790a33a89d24d228adc28d3c5d9b6083bfb814fc29b3764de2173dd6ba467044f0a39e72284ec7268e1c51494c3683177e68f1fcb0876740ec87187bfbf3791e38b9b34f6db4d923b257", + "01ba1a8c1db1d1a244d0efec5f830446985323344da67e64f3aa36dbe43806a118e94eca5ccc22e6e5d7858c7c6b4f64a7abf73a1043d242423ed8d7feb9f160e04c26ea6deaa7c34059f1041cf20f9ee0ac4cf93a264d01f24af14c5252e1c8bef638adfefa214517c2a3f9f9a663d46e0419679bca03d4ee374d97ca679f5db1df06cf23c64c492801811ac6b0acbc0317fcdb4669c9ec44dd064c17a16c603905935d940ba509a451d7da9de6afa4ffcfb19a624b99c4dff10ed915d8e12fcc3505025ea6f19c9fab84751855b57ce4f8fe69b4f5c5d8d7e11c85cf4e461a32c633bf17e2fb9fd9508e3ea76e163cc7d45eee33bdc88b50aeb219d0219472a07f1d84631794df5d729fec6e6489352a5cc8015045221519a156f03c9032626c17145d6133e0f0aea4c2e557f2abaeb8f4fc24d03c49bccfbee0f14f00e3ed25c0db405a3cd30eb97611e2b66ef58da91fa84693ff5ee086abc84c7e8c3226658b00961a8b789e70790233eacb801416577d3d000e903dfb5ab6d1", + "553da9c06beea9287b43e89b84ab33781e2cdc2afbe391b8ec6ff9e58cdb35b701f4f300b6b80ec3c56f6e2bb304fba3c000857b0d307e9f2e3d4d7593be6c2c3ead7901a5983c9906b1" + }, + { /* i=8912 cDividendBits=2205 cDivisorBits=1403 */ + "1711e07217c0f7ccd7dc476a63fdd1340b9dd158b02995067d62059f020f3c5c6a7d0fadc98d14de845adaa6053feed4dda8e78cfaf0b3cde93cb6299cd3e901ccbc507c222c6272cd4866d66fcbdd22ff18def9eaa593ba61d36ce519dbc2fed9e854ed11af2ec57245a7d495b960dc2d2250e40efd3c33f01b4400758e0f5ba43f19ecb38c145436893caf2fe5ce4b4eb7140e5bf993627aacefe992f8d21f282c289008311f0239e266b961208d95e32dda4aa0b93bef2ea997dc772ded86799e71fdc99fc325e37ef713c5feb10e073362d7e900aef3be1b6a748025e98a6854201ed7297b792bb22486aeb29cc16e2ad84522c91773baa98327a84d725bce33a504535a1687a47bd6fec1b3449dc3f2945b", + "03e509322b0ee2d8c09988528dbd45efab0b99f8a4b2d10fa53096b86d6adefc1fc71d6a3919a963f4832a1779a3278cce08491793535fcb83be55c895567f0219e6ecf900d199b15451398431d58a1ca7b271503af4d3f2d91ed4587751a1236e734b71dff3b64207e99274dd67192e39b787a5178ca164c88e68b5fd5f09af43b3bd9088220ffc9e6b479bb1bca89cd0cd427c65f8be509924d4a5e1d07829aa0ad4be9e4f87fce535fc3e0f1fe126", + "05ec663019f27926ccaf333c4c244ab35774df72f88b442cfccdb9bfffd3a6f975daad194127e3533fa8421999e345864c4718ed3150e503a798d91617007f18d4a06ca7edfadd7dc3019bd9aefd8fca5cc909e04a2d9923db9d0b744b4ea56e51aa84e415", + "0348fd6d609db5c56169e8ce1606c62a4bb20325bd28a6b30465b29d7fca387f6a4eae6f3a43eac4bcfd9a41ce74e36051a0265f8fef22712e4225e1359351053826cd0d7ef2123e6fa94b38fb39178c5aab4436aa4af27a7ef90c510ab2da771b060af77456920fbfe7f7bfdaabf2471bb82ad83f2f35e14130979a1095e36225badc888ba0af2381a460ab8dde85e64c57c61dafa5891e85843ae3d469af866f51866fb42b4b5a6c40c514ce37443d" + }, + { /* i=8913 cDividendBits=3987 cDivisorBits=3175 */ + "07d250cd62a08d589dfa55745bfa696100ef3b169159c4bf9a328fcccfb4eb7af38f2e9864ec29ab78e63f61e1389836eb242972663ccf3432c1597efe7c1dd90c6b9c3ef103e6e63d4fff923b1376366c1e27f9521a9d950d2b9114a03e7aa467bf9c1912220b675e0242651dccca2509c86173910dcb728822fdff9369440068353133d3c3098b5bd3bcdad94ea783705af2412821c904f150d0ffbb5f9ab27e6be3a9b2531cc477ddb84c2529abf23f3d83d74080713ee3dd4140b84dc880c5a57a0acbe6229851cde5efad20ac8713a9f203166280425c8df53c91d52486661c7d361d5b99eb0c942635552e1094697516066ab3ac2ac505df879af0043b55e659c81fbcb92ef0b4605d9bb76401cef81b6dc5f5d4137c286897619879f754b3615d61c7aea5dd3afb428ab1a5006c88c6bca6c5598d7c8b425e7fd57ec4602c8bf4a4d3a4f22fc2a1664c489cfe1444a2f5cacb14cd45da7c7217821b9547dfbf17f4ecb4a63beda3a7ac99391bbed48f33cfeb4c5166f2636a6a1b69776d5b6265dd033ac9820e91f50094f56117a859c144eddae709f740422c89a2475f6655abf3ac689c01825b5b1badde18ee515bcf3729e199369b6807e0344d9add7ca407a730db5771b12c925d70d987cefb1fe08a2c798668c44808c95863c4ee33cf97ce803457cbab4a440d97bb5a43a60a", + "5b33cacc40adb2df272b54b21fb6a7847d5f94aa0b3dd1cbd40e4386f8c3fbf8ca4c7feedc3876d49878c34607366fbbcde790cae9bd6d22fc1feb776260aaa92b2495b06adcefdbd62c759664d14be2c56ecef734aedf450bb2865f492456dbecc983ee53c9d82594feb1ee97b058332f91f1b226c2fa2d4ff9af0522550667193c2cfbb3e3fb52e6fe20fffaa9fed42a55a4a3c171d9b447ae96ac46241723ebce032c3ed1b01934d9b75f136e942388de16cebac15cbc60e16a62a735a9ee6616fa14b2168246aa01e9656a949cc73cc33001b90e1c417e27f61a0a2e3b32515b1279fe362c13fbab0e83e7667f6e1c69ef55a65f755c802c3d768e41143a0783d3781c3b6c2d7ad586cd4f438637e749c89c157e760144cc1a9a436c6a696fcd467dbfe0bf4d6468a4f8f5371979d186a15bc68303cc03ba99308440dcf4aaadefc168e3b243ad2e3efcce0c090ba3e4c4fe0ac5e4d787a1d189c2316cde794994b8ac2891f6305387216e3a917b1db2cb349dd48b3ee66b2d6f57ce549eff654e2e4c3469144cdbfb452e", + "15f4647e9d00d260877823177bb470180bfb238f6470667a49b76b20c1fe3e27cba385525094d10e2fac7bd1091ee4dbeed93a6697359283faf3c04ad2940d45d815648ab21dee5ddd8688cea419e127a79d7bd4fcaa71949ef6ab149c678927e7f2720b90ac", + "2850a9042bf4532652de990deb547bdf272fe6f9a692261010d1ae89802b215e7f4fc33cb9eb3a0a44ce6e151711bdfe9133ad3aef233ea782dcadf670af71a1c39503569b178d3fad3b4d2c2db59df047b5da1da6c614eb5e21896cc437de4ede52926d9386fc4abad154d9039a38dbb7b129f89783d8cea7bc177ca3d1ec22c82ab2dfc985581927b492c7e97130eb18e5bc5932485ccef928eba7feccaf5459ee993385bfd0837887c9c31e78be17fcad251be19e00dd2a10ca19917dd0f35d989235febfcd3f63081c024b9198297f3a69ed04015382c9eeeee86bbf10fc40e9419956037689a576d148c8583cac9dc44ee448e9043067c368d6a06fd1a38690e9551f922be20c1809ac01dca9a284e7d41154b26fb2e907e66352f7c9fbf6181cc4b536a410891f5720e1dba8296da649a6cffcfcfa54b1c81553ca6c9e8473b2b68a4eea1342bb6a5286d48f25eeaba4fea3557bd5248aea97acc19921067741182576f52369b953991e8c7bb89eb2fd3803f33703aa65cfd271d7c0336e08ae431701cf7843c18d4b22" + }, + { /* i=8914 cDividendBits=2577 cDivisorBits=1257 */ + "019276598fc6b49bfd2d2434867849b67291566aa279230c01aad7f4a93e9c00246e0d3ff40530df94ea05ac03a5bd27538ef92b12b46abdbbf5182389b4a480741e2e59a1b4cd260d7eba73c482e40b0f961635f2ee420575de4312be7b8362453d00128d20e79980add714c156b1cc05af09f200002ffa9d210ed72510e32f954f206f67aefd6fa7165c661e8c6d18e2158426f0a9604f33f5793884db669556374d828f5c9e6e05d65edab053d891ed70276c0be898c49326e5f11d7b2d5cc471d9c22653bba376e523a4708702140223d9539313c4f1be9355b579f9e12ac916b7bfd7d451d4b032597e0acc57819671bc04a6ceafd8c6706f59fb8e3264ac19d9fdd07fd1faeb1c09b6ab6a9868bb2bef49777dad9bb1af09bc8de8d442c1d0e77c1d8a2d5c81014dd76f45ef8db7b3620d94767b575e54083188e6ca1183153d", + "01d0b0929940e49ce60844696b694d565cf32a13e71b3034b3e29d30207e9d08edd9e840d01ba07526cd02cc44e51ca7579db96634f79ab9fb871912cbc57844f08667dad2254c6c84106e60e362846b1a2cbc79f4ce01cbb6cc3915d3d55fc446a05312614a268e6f35eca2044e497168b2a730e7099a0e1d4c7654736a87ba8dfe23e0282a202f07b9e33cd779b8fbb46503e2387c34d1273074b40111", + "ddb7f508a571ee6e2ac489c1d420d7902cac02f092d7baacc416b5bba4adc485f6963447aa13ee413a06391619152f54b8abac502075c9181f1a7351adfe3230d81a9857c9ccc85f03bacb0020cfecea743d5ae65a3d1061d81143ec9621480e2385c4f0b7eae696b7c74a4a66c9f9afdaaefcb003b4ef7aa8dbbff2a06c60726403623745fe48b2f54fb8d367d50f4e200998a1c932dfd3085b9a2d2a7bf6cb847ed45db7", + "c861c05ecea375b1024c4f29753b5709f09177ab756a4f5080b22eeee631418ede4c8e860e51bb23531b37173046c6d926d3cf46df18059db552ed9798c76df7c6d8aed8d90986a9aeee1154495f7eeedc7d9703c9f333a5ca21de53ce1a1c9d22f7c2f5aec3fbc94c747300aa479fae4ad59b9ddce220db1a328fc39be65bfd5430555c0c394b7ee88fdc1ac7703c3552f9c7b8c30c390366005f2516" + }, + { /* i=8915 cDividendBits=2550 cDivisorBits=2091 */ + "017563b5b340c937872402d4f286d9f0603efc131fb6722961c60a6926ecb5b3797cdf7e3f14d707ac4ff8baf91c2d655061c798ed0b99d3e3c4ccfbbc244238b172fdfda68ee193c50638df15c8529dcccdc9a8b8d556adae78e66fdce5b87a978be2a5b964e942263c516c02cb3fabcb1dd5f49b64194236936474da0a87486efcf1047a6b3b945b63921a7ae235d1e932b3af56b54c1960b01338a3906a37179a98c371facf849675a232aefc01110c8937445c9e76e95a6f95d1ba274a349cd44ab34160e40efd723367dd6b00d372bbc8f775b1661347a105a6589d7c01fd98964a389001e9367a5f3e63336d9f455b0754ab9460b2abe82c77e003cc8c3fb27b3eeb4b11706262c70862f6949252d7986e351f6a372148da3f24ca403febded162984fb80d193d9be3cb960e71b467d8486c3cb344cabefe566f2e29", + "010ac15ae229bded7be5825969f8d450b18a7a1e2a68853405633686c7fbbfeeaa945ed334a247edf898c85145b0caaceb4292097d7eade624e865ce20dd85043d953d7abbd1b08256bbf1166ece05b283eb8d7fe19ebb5235a8c706c1e84a4b778af26a08e085cdf217fcbd61cb447a33856878502fddbf7e8a6b7fbf28df1a70db3f85bc9ff707d785a8b65efb67759309b7427db34e670b2ddec3642ed4e187b2cffc9893d417ed8e9fb091a7ae8b0195644589785147efa364ac1004aa0c75c0ecc8835d68e1989766cb8cf55331f39ddd807a9c80156d57c0511a5028ba11d63c3cea8b45184d2c70aff8403c62d53001a2ecde9ea1fe7c76b390dd205a1f9e2ed5ed10", + "016655b6ba80cf89c92d0097dbca6911576f6eaae31432322a871bab879b157433c3d87bb66104d0304ee1b8cfe1149d84ceaf35d47bc38b0690", + "9d8a6bb21076c539b8597acaffe2da762f8a2a0a8c5f0541e8dd0811a0b1635ecc1cdbe1e4fe55ca5124ebba0ba4fc0103239174740198e09a50780b59335be66635c5343d393fd5d082b2657b208c162d504cde22143dcf69fc018fbad124fddadd9e1ba8f61ac9a8fe92975e091631a0e371481519ba397b815b96c56a88e03be0f732741fa71c442534c8ca1f8d5c2682cb0734bca538805f3b9b315aad9720f24ea74034a239027c0e29c3babe990030dbcbbac83d2019865e66ad43937f47fbe9dd0ef3fbd618c160e996795a6e671dd02a45ec8360c06ebd576bf0694d18139294436744e28aa21be9bc65cc33684bcddac1b2c858aeb9df38889f60b88012db7529" + }, + { /* i=8916 cDividendBits=3934 cDivisorBits=776 */ + "3826cb21a10bbb32b75288c2f053d741c2a2396849fb017814e717fd201f8c273b0af972df69a7bc27e402571b171d0ab8b651024a10ef2874b39dcc42c7eed7e8acc3df49a67fd8ca34948f7d144ae14a5a25cb1a2b4803a34de12a6ecc579dd1e5ef8aaccd11ece52194ca8d46add900f7adb612f2f10a34f91a7773bce32e163cd56c2aa8dda5b431a77c9ebce4574a5896eeb0fab89015fe19f95bfcafa5458eda4897f1f5032af5999354fc860bf4bb3fde8ca87222dad923f62a3f63dabbef46dea1fb7e210f74ff60c1bbc5c77b87f0ce9881c2eb147dc0d0fe14a5fbe13bb12976a14f28953792721239ec838c4a2b9c809f00674ebb9a74ce37d1bd45cc69129306e11729f5a8cb714cea6c4f77c1fdbafe9ce1d20b3529b91e1e2372e9f83420138e227c0dbbeb01ff3d78fe0df0827d90c1fc82740bf406fb661a4281dde61c579968930398d3ed90b4f355c3dfb5e03aaf2f91c2b22431179c4045c84b7ea087e43669f727cb89bea7857b26349c170379cc47f870f2f7761b435f2e57a0103213155fa680e5bdf7c52ae05e5f5861cb92ce914565300a72bf5ff4a9c34e94f5e3528ebda76b478f15768f38f177a21430b429a216ea1e5941d7cfb30a236da487c618c7108c95a3ead8431770cb7dccd8325bd057cb377282da1a74f9bdf085ffb0a5234509", + "fe08d498aa895f09b5b2740cc37660191bd986fde6cbd0279b204f191c263f7117c49e444026e57f45444738c16af8d5da12f1718208119a9e942c995dc49e74bf8437e1854d2b0d7a5221f37509d915b4de27a95043af0d5beb95c97777cf74da", + "3896037a80935e856581046e595b39a803272f7b31398c2392f045576424f3652314c5cb695d0735bd4d9e33cc0d1eea4cacd424624b04467bd5443609eaa17a21f822890b6847118185ff061ed97366a8ac49a4092c8ffd9a7212f489289b4142dea689605125e39a52a55e65b2675b3ffc298a3bfe3c2f50517b86ef136efca372217f29818388dea6bf037b4a8437f60222c8c0cfc78ec671135a3143d956ee8611661c3a32ce555c546c5d21add21da7225dd17308cab04e28b44cea493356bbddcce714c9c7050f499b13994ec5206012f79784ca8d66184a0a27d8fba87d5c33d1e56f258756f11ae96b7537ea357465a0bbacb084978a2da0b79a1bac3bdcfe3344e7cccebf892ca634d5405099141f90a2007c6214eb93bf8f4a9630d765c03a13192412b40e57d3c9bea622ddbf19840342200901d4553362e2f082c25e420ce04ce10a48fa45915d6c4ce1667c6023b8d8a9be1c0bd8d17a55ab1909e7ca7b6fd5539edb62d0f1cab10256d432f02078e66dcfb4693e0677e432b937177c5f4e0ae3f586407e", + "398483c8337baacd2fd3ce3310220b8f260b422a7365a6dad36d727d4e6a66b08f1b491c1784960409b71c1518f42402ea6fd196b0e00903e595823f8fb8bf63fa3e697138af6e6cfdfa70f829a76fbddab3ce64ad4802c49be84b963603b541bd" + }, + { /* i=8917 cDividendBits=2738 cDivisorBits=1822 */ + "7d40bb63e0021f6cc1105ae0f2696865f289212f15eb757a29a340c688a06d04a4d9109b4c39f2c42dd2d4e2b040803956de28c078371b5def4bb78777893703f0d5321d255b7e3549b9b7e8780ee56cd40e9eec67a0fdcef817443b4cc19f12ae556669adc6042ecdec9fa8dabfc210d2c367db1a6342e99657527fcc58af71f3fe30aecfd0eee9167b840b9e293cc785c44ae59bf75dd6b61f29f79beb2cb9c80a2cf87a9c63cb930002a3c13aa02144c09c57ba0314674217e901e1285ed064fb9af133d577b5c8f60bfa892cb43bf1cc660a282eb06f36d2b5a4683997ad10a26144184cce68eefe1e7d7f5af4d5d27b2c6c9e0f62f9daed836513bac3f9f246536e672c0bbc7130da505042fc4389a850660540df81ccee4f1173741acae8c002c56c3c6aaf23dafe1e9da72b19640245821814baa79aacff1f65094db1f026724ae205dd716aa84fa1a0bd740b8b2b2cdcba0f", + "059971effea30665c2f78f2c3464c211f91e74cee84e8b9aec25c61afe062effc97562434000fe5916bc81439a6a420904e1e3fa8d480824dbed8df8a1793bd93915b0f5dec30c6222d3b6bc633c15f68b6efb3cbab039d815dcfb082ca7f991a02a0bafdd4f309264b9c5c5edf268d86a6861564024e0f9bca5472a77f7541100ea31ae0dfbcf218643961fc747d5b6852e14c66d7c8da07ea13269f21ecdcc9b827286b66ace9c944548badbd62e2b33af588e453fb06621a17d2a51c6e4e9135d24839cd3a7f54863c7b9d526b555ac2304b18439e41e1068262f025cb279d7e43507", + "165e76c00c3841ba47838280b9da49eacf19eeb23fb8296032ea9be48db347e700583c540eff3efa92b68c594cbf9e1a199f13ac9737a7d5a7d03f996e9eb00cb6c836a1031770897170942008cda9274f4a1f146d5433833e5520fb480e26b49631b22aba92b196fbe4cc0a34e778d4e38f66", + "04e34901ca32a4888d298ba5d4b80ee3444ca4a926d8c437e5d34b527aba049b74bae7f82cea043d2e723b0cb371e2ec33048c135f536aca6fa51020093f1c925a7ccc6b456dc2ebbb669b0808d6b0ecdf7b7b66675e0c106cd02fbd2e278633934af1bf97d76e68938c99943d93a8467e5fcdb81bfbc9594f4e07cf4a230b6a28467ffb43d7f70feac8eca641a1183f37b7cb198dd540e9eec240e7da166c0dc73866b95367a5b45fec85a955c3c2d43151eac3ed613e5bfa3aa9de291c755c2ed0de4ddf65e526481d580b8052431ba3dbe1e07de4bb8aaa8a6ec46858c779dd1bb045" + }, + { /* i=8918 cDividendBits=3111 cDivisorBits=865 */ + "3f55e90dee7244f5c10f273152adbbe873b2d7db683eae7433ce3e236e80734c4fba74dac32cbd66374edd80a333683fd0b102fe506b8d6aa5c252d81c9f27d4e9ef99e5d3b12f67a904d194c0ddb0553af2e3f415ac8233d5083f430653e302f0ead0cbba1c7845ef9ecb622d26ff6a2d8787924a306e1725cc18b2e0c4a69fe17ba2a088e7e9f7ef5b9b5f9c7a6630e244caba8bed8efa5d91c036940df2d9fb78bd86c5e033acdb2592eff0ae48b607696fd1e82e97637b808f594134585c751dd1d075afdab06edd1a71482dde8e01d4e7677cf71e43ee5acf48d5e9bba63a9cc5639710855be13c0b4e32c0c4c3c8f8f71aba7e437c3ac03087b85664c406b327384a067d1ac37781ccfe1906ae6c575dc340ea5a015918ea060b42679bf753b3b7d467cecdff64e01534f4d03c58101b282cf69456b7143968a38a7dd05145e021345aa759f795e8a01e6ccbbf2fc7499348e3f8c4b6ea7d3e1cd499bef8d23f4845820e20a3318d81c8a551d12c2140436edc079116b7f5a5895f54363e4f62dac8", + "56b25e2278cfb2085a9c23cc2ff064554b8dfe5bef635c3e396c3cf82d70cfece888e93c8bd7bf8da7a45133f14ab3d32b4c76d3b25d926f9c09b0503bf1de0aa8f4f7e70e36bfcfe3eda8da45e83a8665bcebacb7206961e75967c8b435f85e7ca59da3ad9464ef1ab4ccc7", + "bb04c75487b3e39e522c357849dc08eb51d62c6fbfcf7c52b9c8e45d2808527304f3cc6d1e000c84ede9496f104f05cf7620df178c66a2d3b418af8363a52df82a6de5d49d26661886bc9068fd224aae36346e010e08542c74524d453b7db2b81fcf7a2b8ff543598f800e98db4ac6844df7e15817fed651940311e65ef3c9ea94b2285c3ac3a10d1d577e5005e9b1e28a7690620cd1c70e5ceedcbd2b95b5da71cae0018f41bd7d551cf61637500fb54d88acf4546fe4d02d4a3841290fb7e588acea4c529a94e3d22dbeeaa96c3476503455c7e368868e88e0f9edeb5776c7320b738aa9c85b9ba8a2f84d1c09bb828947918806b877589c7827fcb692d9b64c60c389319e3f7a8ff192f2be9fc4d938338588fa8f005a17", + "1a158d297096e12883844bf69b2031274c3b30f192d8790a42ce5c2c82e4a13bd92a6485c6a32955aa43e657eb1ec125bfaed7ea76d95538b7ed8d9f427e878544a30174f8e4ed9a924ff09e688e1530e2178bb724a0514d37e7d85e4c364836f821157ae1db64a630267ee7" + }, + { /* i=8919 cDividendBits=164 cDivisorBits=161 */ + "01330e6b96506df275754e1dd7eee0ccaaee18f309", + "326159f82e12d8c03adf2d3c0380564e89547b93", + "06", + "04c64fc53bfcddf414130e6fd9dec6d3b61e0d97" + }, + { /* i=8920 cDividendBits=2087 cDivisorBits=1190 */ + "36e049d5213d9dcc8819f5754356ba5999e41b22393ed1048f94b639ca64c67390fb7dfffc48637ee564ec71b73031b10f71693d67d8fc58baf5b08c15d79f2ef2a42f8b92f619ee70fde4d53631c6993d15235f19eaae1f68033a2b9f9358756bec988f90588ede834106ac009ea9a9afeb57a06e87164d244fbc648285aa31a20d085b1f060d62b81fb491c847f207012ba03b908834f7fcd4040bcf950bdcee4d1a1ddf0fe8821f005c2abc9c0123e5d634e725dbe68b1a9cccd88658db92085b58ae832160e46560092399f17fd11c1d3422573f76fab619ff224a8212a7e9f7c026234a122256380614655d0caa841ade210c369802b9c9dc796ef9c6eaf12d264641", + "23d41b4662e1ccdba8b81b9667276fba7b9aa64edeb822bc33a91e44f6f2789290ed3d38679373a7b15da209c4f08a78c652f7ea87e5627636b5d29dd73c3f54ac9b496b45695e24cf3316ac73396ff57c8fa374919646e6f1e58910abd8722a3f98485239fb154db084b2f13bf88b9ca1322ccf010106dde7483a55b31f284b0bb32adde44e3a52da4f43e39d1a5592bac17e866b", + "0188190287f94730aed3d0b9cacd2ee61af13c5f1f7660f5e27d641131b72c576d3f9852e5839dd131afadadac09ca412ea40f5f473836d530c9cd9953d23976174af9d00762bdf22165ee5f065781db576e49a232c0f35f172c88fdae030defc6d919058c4c047aa6d96f6639cc4a6cf4", + "17391e708fb44235f1064e2b10a04feaac7221aa0c5b7f53e1604c5f9978f39dd50e42ae7c1a2acdcf22e15ed2e5ec9111a9c99da2db0c4562c218505e772340298ee94cf1e397a7a713c64b2a283f8fd08e8c0e5394092caeaf1b1eeed3525deea5a20096bbe6df91cfe042f062e7ece697aa0ee857458a381bbc8fd1fd7b751908c0b6b5dd7d5e8b187311101003f5cc40eb0445" + }, + { /* i=8921 cDividendBits=8 cDivisorBits=5 */ + "86", + "14", + "06", + "0e" + }, + { /* i=8922 cDividendBits=48 cDivisorBits=21 */ + "3f45564b6537", + "018ebe", + "289efee6", + "a283" + }, + { /* i=8923 cDividendBits=3927 cDivisorBits=1510 */ + "45946258ec301c3a8a096f2a3bb42abaa515a6864e389e49e5e166483ac0bdb036165cf44f960c5ce63e4e7365a2e7174bc30167994acc2261ff4bc5acdf9b65eba33337ac270631ea68c8f4032e9073387ab8e1b3094c1da79bd9ea9276d0cc28ffbf44919249df95bd851efa576c5d8c2755225bf999b8eff16f5ce002c37bcfeba5842f516c3fcff1e300829fcf299c5b5c190ccaa696b8ab0c12ada60dd927bf6412e43b4271940351e0fd92b4edd29b1b13be05ff0a92b26f27f031cab46f47e26de153107ed1774bfd7ebc1171ee8384961dd773d3388724c35bc7b31a837703ca220cf049a032d92655f5877648b556bda6b497d1eae35027b0f5212f696fdc97c02b33e9f10180f30d59434c2b1220283ced7579fc42fadcc4ff6300be803be487c65bf19e15fa9b6b52d5b42a3be337b8ae889b4372426cfdc2787de5d17a21d4e9568d75960fd174d0401b0384e65e6e517bff8726c97eb10a85605c3a97efdc8378657132688a5ad71373a3116123cc657d6ff29d219decb33edc404b67d05e9daa1fa5faf4ca0cbdb26abe3f03d045acef5ec61c646f46954c4782571e304e26627b4ed2abb1b125a4619ce5de7a63a73b8d985cc09f788855d807c3d3799866e0cf7af6828d728d438bd78ffefa438aa8300a6f4ccd2115e90435e0c057f975cbd9089dcb", + "070e752d38cd8353c4561c761109e33d842075655d738b6976c3b34ed176b25b6e0c5a98e722059df61423fca6f9b32fe4fe93682c0c37b0ac74483c7fe1eb409be2ea281a27a7e5f21c0a73c2a101cba869703251c85c58667c338594ca97c20601addf1bec475666ba62867dca2f7062260313b934dcb5560b7d8130c7e780f4cdc1373e636bbe4598c9e14af4f24718d97a7ca868d7371efe942d6a3ae1e6f93c180553cb3667cdcfbf4464dd3b11d58681115cb34c3e4f44908af6", + "09dc42c16b2820ef6945e78dc02e76fab25251a7ac91fa2e21459fd74d228c598c49a0515caa64af81e3986b4afe9f7670525bf6369907ef98310edaa39f63a74a4f9a6440ef59cb146a7ac085ae2868327f6a5dec9e14855571c39dae95c7b764e51b8ed7c93ab3e3bf1cb0b8ebae985eb75ea0ef86738d482a592d653dd9de930c232afe7c09837a964a49c4d2ba5c4d54b91d07478aa27ee0b82f124751e5a965a2e83a3e57689ae5a3c6f89c258b5beac13be6f7141bd95600753bd1f97c539e6e02dc27b458f63dadfef248c9bbc23e77813f506e1e0a7316dcbfdc8126bf4db6124c14c38e15777319db07f0aedfe31732a4d8a9ccd1aa801ab02755394d345868527c307471d86e534358940a2df9537045eb1e91162935da8fba34db3775641cb541f9218bca5f5e193170", + "03a5f086b7a040c8cc98f2f7661b05f743f8bc63587b68f494f3f5d6d88657b055c814475e5459065b2562ee07af5df4a3e64dba92b9b8b2a84c2daa6b8bca664675d1a20658163734b587b9f098994b0a570d21f2ab8eeeeaf5e7c3a3d876cb7e8a762672d09f9e2719379d1131198369bc620c959381be0fb1b8a0da664d54b59a93c27374337fdf2f314e2a1f1012854ac88e966e74e5529ff2af9a1e39ce7b164bb27c58ec08efe922b235ce3e62767063e15d74ea9490492cbc2b" + }, + { /* i=8924 cDividendBits=1051 cDivisorBits=901 */ + "0432b034e575319f491a4c616a3825ba3de7727b2b2207dc759673b29a9a92065a3b2edb710332cd7cdb93d05446326e409b5540ffa77f46be1c87ea4bacc46169e66d494b1674c4854cb90351100e84e90a0a22d99acf31d1220d4b3bceed13f381123dad87dd873af6c1f96d5339287114d79980b0061cdb66422d7b1199b35162207f", + "0ef967836da71708f54184374ed350667ff31385dbb2e201f366543ede498b565ce335f66be67292f3209de6ef55ea75eedac286b9cd31b1251cc1e7a140a919140efa197caa698a7fc9960acc38d01f8c19866caf4127eeab605f3fa1b592bba9cfdd3e8023dd7c441e28523b87e73bdf", + "47c4e79c5618acf1e052c4f80ee09d3d2be2f7", + "07cb88e65b0a8e132628b9a4380ec7bbae1ab0209d2cda4e290ed5eaa2987dfa3662c31a8e053b65fb07f4eb04c5f23f5602c7f7785dd13d34d7a011b25b9c05308b06cbf1e36b116e0d9a27410c2d70c99f345286a320cd2a481a6546a054cb1a065783573c6f52a8cecaef6adcf77e56" + }, + { /* i=8925 cDividendBits=3929 cDivisorBits=2236 */ + "01827f231e2a44f83d337157f9e22c4aebf37966a5e0b9340801503b4bf6790455a1559f06b46608b0f4c1515b529877ea0134c949956f613eca914bafec28cfe88e4f1bc3a4a03484cbbb12b08cc51f0e96c36a98671d77836a6f103722d96e55716b2388334a023a83e990d5c5d09bd1c3654dae7d451fa7dab62a6509f2da6f5518d7576820c5982bfb5122b2b2913ff3fbae074b7ad40f572788fee2ef0838d658b231773538fa3600f441e985a93f813d82a476113cd6c9f90ce5eded023ab34c54f0a59199e5121116f34f74466ab42441b6592b727a0eda0b39a2ea6b1f2ce88d512d6cff6448d101910f0ea0b8164dcdb21f058c5d96a516baa8bcfab3b56c182b966e241f68902d1f7487fe2fbb70809bad91a2d5137820702c41ad2a7d0db157eb1198091c2ad554d21c02ae9336d48c6a5e02668ad520a1cd8bb5f407f665add4fd9ac45bc3f64818784fe1222b39b07b2655e5f7934af36a5b1b2b676743d35de6d3c3a3f8c67b94f53b85f82850b43e388bfc3425fcc25c014b42a3df44b4033ab5d961cafcf9205a07c028a97e1cdd1315d96b9eb6d620f8c63b49bdb81032f4fdfa1f492abde83417f5a8e4bcb76a6c874c36acde0a42130d6320379d5dce7c84751fe5dd7df9f14dfcb37ebcfb18c8ef6b680aaea8a1a6eb7db4d44dead2b0b08f4ba60b", + "0d3b01c80a0ecf572d8c332f1142aa9bb8ad094994810940df67ae0d512a26676910f06d671acd9016bb49af23de5544a65de6cea73a217b52d2ef78fe9ce98c0f723bd89ed8763a99d8bc7638d4ea0c1d27791afc768c5759250f78c95fbd78d975bd82d8947866036a0240154c5d14e8130d4790c0a4fd65e6c7475b8f335b1ed00811f2987ba9a91a26320b1795eaed1c0d02917f522d7bfdae5a163886ec46c7bf5cf45605d7518757dcfcd84d213bdc12fc782ed2e16448adada397c9c4cf61e4f37ac0846bae06264de2459df973fe76af2bd57cf3c57ba0ba1f5fdbf635e5fcb5599bba5fd6b61d0c05ec02820b05a6017392dcfe52c59220cf9346f649844b71647fca49f6753b5b204cac202a437ea22f64129b", + "1d366a334091caac73b9cfd86598c4a756ebf0f50d804825a559afe0c99c0adee2d62bfe49d57bd828dd67d6f38eff1937dab9f2e7162645560e9d4c064a14c87b18dadb23be3bec7f09586fa06101429e34ec9a5f79dba1037844e1a389f13cdaf349ce2aaeb7705d48f73279e3858a1aa88541da2368f6ff3ccb7e643a281ae7f61567647d004d19ad874bd31e1556fa74b6a4349dda6577793315b79e342ff2f1e2cce3720c328f9f3c5053863162ce40a66247343d3f78c8be3d1952fa0e04e86532a0b1b501697052857f98c51ec7f68fee", + "3092597497506223b6393c8daca30739fde5fe1f427b6c71fe28c31c188254e70f41e91c51a0222587e399c6c70d88fe49a91b706452191fabdce6204ec427890e98640b470286d6c6ed86f48867452acfadae6d04c190ad6a3cf6f2c271f6e15f874f694caa7ea52afc6b163e220843de737fb3950edd586da9f97ee1c934a02acfe0287db1aeb224721170a5506a84edf3338c0710f8f83978374132b99246099e7d5530189008c13d9620c1a3cbc7df9eacbfd9e7d869039d31eb2ef0de542d150d63b35d5657912c3725e17141134efaa50dc744e6d5da8ea329c1e1d31539f4f73e6ec46eb07bd604f398d1f66f0076b00dcf44027123127a5ff54a3b32363d78831f3e0f0c923f084c9603d8a89293a53bebc4f1" + }, + { /* i=8926 cDividendBits=1475 cDivisorBits=88 */ + "05d376a002eeccd79bb7d3c4fa88bf2f6594b337712d365d3d161780abf92209772eee9654b5609425b87112c2876b8b2011be11add289edb053b58a7669d504946cd0f7f1a549e2a7526f9b39946d44112ac15655c474b51c31d34461ec12eb9cde21ac6b629be56c82be869a84be6419952d579344e77143ac8c90f2e21bd6f97a865d3ec0a16912842359df313e81f9afbd5ef4fb8d6ddad31ff899b59fa3799b0c714a55de83aca6e7419fbd9ed37339a17fb4e84fc383", + "cf60799246c95a1f466bb4", + "073129c4a3c548a969ca254d9b934a45c17300ee0291513098be0625ef6420c528e7aacae91ea86d840aa2588a59352d86c3f67a5261a2758dac2b5b3d5248daede6d69d39bd25b53e21967b75aa03f808a1ec9a7e1ee806de846e735cb2c9910f8f9de45347726f1d013d3fe5903588046b0bd664aa51bb8cdb44606f02a1fca1912b53764939d8b6c6e8111fadfc0b7a742703bba6c5af4b75ca1bf3f39cda81837391d85813cc3579557c5ea8", + "55a4c23d2f9121975cfd63" + }, + { /* i=8927 cDividendBits=2643 cDivisorBits=702 */ + "0500b8b685c97f5c55b63a2df30045767c293d1f4d871c5de25cc56671eee8b0e51939c95611df9e5e8b2ef83f3fbb1e6a93c6376b330a1b6222624595117f5cbfc2f52fde62f6bd62152e556c2c0709e801158b1dce78379dcd345c997a4a61eea06cd6d4dc0e1cdcef65b7f5ae9763038ae9b2f9e4b96e5029e2e46c04e0fba84e5e08e64f956c0589c226e1181241b7fdd529dce22509debbef61e423ae4dcee9f581e757727633cc92e430b78ff8797075e94ab9944c63802367decd2b00edb681072ea9203fdc2daabf3175add188b030142f15b1476ce4167f8a9b219476196d9b89a2ca5ba3e0178faee89a4196daddf45b555fad040f96ded6df1609eae87c5ae04470d94b2e549beabfce1f6770e0c620a5111ca9a4b7d994160c8b19ddea0aff1c9212ed035de067fe88f9bc0dd46112e73aae45d425d1695ec707ddfd463f4df9a567061bde", + "3894bb4dd0bc925583f85805d1377fb5899f8642b91c69f2c7e2329d910e6d758fa55fc4fb9a42dad5097e5b516c2edad57612619cdc47dfbedbb1a6aa6b408dfc67425fa0b84b3fca0d2e65c1de7c875b32e0659966fe46", + "16a29c152567b4cc5a1e951497cc866701b394ffc99bb1f4175c32ce0c338eeb4e361e55aa745045d350a4007103af9f7840175ab87cade6c1a8dbcbde75878c5203b8db74c4bc2f4ec48e0546fef795a8aff07eb899e1943e4f03e2cbd183af0448e8ffc151fbb3509b4270c97bfb265e77d7a3c407aae2ecdcad66eee3678428070f09a254ae09678f7bea0bb11aa67f93b89aaa7586721d54d500ceea050f89d0875d555429ecba2400f3e115f32fadb3e8056da6c3bf1cc26df17e3784e713d81fe6fba76991efa6d07350cb85eb4e3b2d20c0f82b82172ff8a71e542e2da1bfb3ae426b569224cdafa8cda4d5c128e3e1", + "301c7cd6c2998e08116daf820432f25a8ad9112353ebcd11b2eafad98cc01b4a9e7d1d62325567be9825551ad29a632fa7f7cd5dcfc0d0344f9baccabfdedd279d6affbe22eccbdee652d96efe03d0512671a34abf188e58" + }, + { /* i=8928 cDividendBits=144 cDivisorBits=69 */ + "e8c9c0270b90ec27d22611480a0727fae391", + "052791b53d9835ebd4", + "2d29596d53ca0101af30", + "0164f5540401d4bfd1" + }, + { /* i=8929 cDividendBits=2479 cDivisorBits=1280 */ + "43f736a217f148e3235ef55e20617e1c32e6c5b7332523db16c4fe247001b16c3233b734953dff6277fa7d25cd1b4883c4d6c3e17ac9faac088bac75e27459d5dc09374f2e52ba9df49621bd5192af43d9b635b04249698ce1e393b1848ee94ba001a8f6bb125d8697bed3bf2b177bf66ecce029f68d856b85b173ee4314b2b03adc96908b291826629936b6ed3333e71516a914e19f6ce91681927abfc79189ac997e84a0a2a1da8484f109f6940591f80ee34412251d1ee26cf41e909ea669a1a2ee7d86c25266cb8e4f8876de2e5e9a8fa3a0f302845e64d7fccfa74a94ee80f1e51c157ecc2243c030792cddc9eed2d71bd8d66ca732502160b0bab76105b73be02e414490f7f5e35710ea3936e154157e23432055c2ca4ec96118b2ef88b0418ac305f4de55d9b209ffb1fe77d14089cc726f63", + "fe2cdb0311c92df0090f91709617a154ca968416e5bcfc9f609b5b02cf1e1d6be4f24a76a237627af4fdf77bea406fca34373bb3d93c979db6be4a6e77137221b7b03945434bb7196092cbc4631f01d8b06ec40fd5d304c8f5b7856454e243e3972800a3414ab07c4018c3bf6ffa50991b2a0d79ec70bbb27cf82fb963ccd625fb419e22cebff8f0ea15eb297390432ce3e9d9a2f8d50e29215120d26f1882ca", + "4474205d18543c5df5d29e7a7bfeca17d46ff95e36287feb643d250528cd5003e40aaaee1e20f6e997fcedee6f930d3514e8a0145fe170251387998c036be4276ee13554203b3964f232c3a001c2482aab1475d72d5542746a1476ec0fd112cfe20f072157bf86a144a94993d568e63389daeb71264f4ca349c67e829404323f7fd999c4b78a30adc861360c0d3aabaabe2ea71f5742", + "e624d9f42089dabd1ead134c477ee83a32990bb65d420147955a96b6cbff3f4808e09301336efb3a90127e26c04f6639159e16de27e69a535229f4e7cf9dafc443e74e52dac28fdc0ed86a48156dbf6d0744206d1ba048b1f975bbae91df8e27657b124d7574c8970812413b0d503208361e1f91e85985aefee012119ddfefb64cf12705ad07acbf43a89cfaf4ea4c7d2757fb9138fdfe291f2d68f23738114f" + }, + { /* i=8930 cDividendBits=4054 cDivisorBits=2279 */ + "0811d50d192f6614b01c48da729d91d1e79f6726fbb2348222063155987130354b7285d230428f7b974416ea30009e81a362bd26fdf052a79244aaaf1057c8caabf7a76fa3e7c0d515c1e460461bfc541120fc9b9fa16067df91141fd2d79aec3319dd30012758b5cb8afdf85647a835c5c0ab545478a9e164c4a2ca29b5af896f93990b4faeb1467e54b54213aa74c6e123ee25bf0e09653e7f18fde300c0d9e827164f1aef12e4e2edbc96c7062febd20e0f6600f7d4f01853cf1043d7db1a40c6ef3497022d6e6eedcace903742793f5c83c2e9f48319cbb4f0d273aa94659b5142cb4c6d259a86d559707f40c6aa5ddbffcc67d75b1dfb2bc33159356c36b63f15591558d4b7950536deab2d3fdaba7d5aa5df143e573e7ef6a65cf9014738686d02127dd197163437bb25cd83a442937595656c4c2f9343fe52386e8a838ed41a93e9d54300ec2d150ada39c95cd207c9e0a692041108ce489851209f5bcc681627aca2b6794e9e15fd48f651c31517bc4b94c45fbf670a7527941241a151623e97db5b0fc87a6931476e5fdf4dc9299d51f08149cc16e2acc478fafb532dfbeed323cb6185375e0ab71368cbbf6030f463fc7c8133f8ca2ebeadace65fc8c444704f1f0a819b88417b5d5660e002343f2bf879b94dcc78ad00ef49532e14c263e7bf8a79d85dc15830c2abb05c6fe567782d3bc1062a3ead", + "606eff990e1e913027a41e1f0f1d63439516be8ad085a4087c592dddcccaafbd765a6995d6da075bb9d5a65962061180be33bba3d92c08742e7be995da160b4c36cb940a846071ce08cf47d41f65f044c3d83455c138312ca375e99b674f8217a13c41a4c9fb74a534278058369a70d4665311add90a4ccdd868936ebcf03a326c69807764e695069288f2a03a1f43293fd4106b1013105732cdfc609480276f9a8f471d0ae67c358f5cc95c8d7ea17bdd2fb2aec7e7ce7ed9986605a976be254b79f39a0d1794ce455c50d8a17632e3731f1e213783e363475f68ace50635cd7c43e80b06828d2e6621299ab324230d8d2d179aad4ce6b8a8f8d2d0125d39d69d6f7ae379e5b51a973c7c848bae266e6ce9f0b113acd87765004b2448", + "156c1de204033b1975bc1d292487c5d4e446fd0f80dc518f4805ce5f7a4aefdc12bfaaaf1dee4be3a4c823670731eaeb54d7d47c9d9ee092884b50544bcf3a19f80272877aa768f2e7c115f994973fd3877d86b6310efc7534d975552cad65e9732d7d251c9328244d9b602ee47626365cee5baba28c15ce74fb19c8c569a3e0a77cff73d2dc778f1103be59cc5408b17205dab9239f538e353c16965d2e43c0a956d178ac372d3da39ee6ccbb211ac9fe4ac8ca0b3da3cb6384977d5400c4521994bbf2d0860af950c4e6ed3d8bb29af8d8f4f8c4c1935d87e0e07d819a", + "08809a0d28ab36ddc3c46ad5c9a0c1577168530105ba4c22dfe2b9e81ad9f622fc668dd36b7588839f42b8e7d1788324fc67bce84cfe04da1eedcace8709427107b59f8acfa8c6a5b4e7a20260537b5a08f57e457ac184a4396ffe2a704b8b289a5f76c0e571c5c30ccff88f4df0353ef94e05eb640d1d69b398c67cd4b5d6d535dbdb2bb22dae83aee371bd7a3382b270e49d7cf597420432d58c2d9a36e61e0b81ac0de9bc48e3a039541b3826ec0e3cea0fd17c5ac2952d51b4192140cf9c64b167e900af36b8d10ed839acb19123fccbe024722746866cec2d3724476aba32c7f22ae1c04478814a59aa6a5dfdccb1bde852bccffab44536074f7e9b859c6f860f60546cbd4a2b981e87b1b12482c36129305c552ee8694486235d" + }, + { /* i=8931 cDividendBits=3220 cDivisorBits=261 */ + "08a31751b64c6f260a927d71ede13717dfb10f96c8ae5279afd0ce4ab1f98dc42e8056536865957c51c2621a6d899c896135e8d97a61f6d30668ffdebada57eb4479e6cadb74d65117a4eacf05fa695c13ce664f960c62596cbd83eb53d5cd6a1b0753c57237967a2bf0091a5fb43e85607107a8a3012c5ccc7979dc01b570d2946749efd022d0ae9c4c78267552d1d1e029ef5ad51627c0ac0353fe4b5ae7fcde8f402efc6113a403c6f2e146f9802e82662930485c4f408b89f57d6f1e8f276b8db4efebf703cafe811106a80d9961273ac4833f1f93553c4d938c49c37148cab11aacf0356d94230a2398b063408f8d5520c4925121e679274a240e2d3ee32386cd9513a59eeed0020c72a8da2be534618527067fe8719bf098cfc291498f05ee9206bf6b97a9196de666dfb0434ac8fba3b4c44f595092650393b90538ace9ba6a022b716e5d10ae9c4c7721bfa2ff8cbf45ce565aae6b4bcd1d60a4dfe755589822a124bd2b71e8d26bf76a407ca2d14295da1394627d976264bbada10fcd918758fa09b484710eb7cf8b668e86da6c08", + "0183e351a5037f4510e99fe8948299851a8ed033ab60b559050807ac9fab46d019", + "05b3491cc3292907a27a81ba1553cc5569120e8cbf9f1c2c96bff7805f2f80afc2e0716e8f8930071bc4d98df5fc6954e3ad4c56b94e02065affb8e247e11d47388c6b53069e4656c2b77c11ee4099e90a8e560f381355c21bc7dade21de36f518f2cd25a9cb078b2b3b869d7b6f076e3acbfc8acaca90ddc32a416c2c72fd571dbe9de6cb95c13fb9d97eead1d694ca18d8f340f72685e69b833132beba1057bd534be2c3dd41957aa97b3fc77d51932330ce2b7c062148953130f121d60194cbd7e6996a5fe38438fea0bf9266dbb263356cef04fc531cc5c40584a9299387a5632784d4e211eeb8ae041adea71e104309208a267ec0940f2370e28b220a51f3802c24a51965544b357acfb78e9eb2025b9cd00a03c56cad2a53f3da166f3e3b2a695e38da02c47a3785e0c219cb8552e7a1e07556b40c424921322ea50f8bc975ab09668d137bf4bf00e6ef2e83ff91cfa0470c3c3775f4b8262194699488b301c90645aa2bf4cedeb07470d55ae676626f", + "014d0f23388b092ea6714c98ec514ee34815da08f41625a1baddade65dc5f69f31" + }, + { /* i=8932 cDividendBits=3104 cDivisorBits=2471 */ + "10133c6b2a7c1c0a630f51ec9c58a74295b737e82011bd9d28b3285db6e4d7c5d5337d9ca2815c7a48258707d3525a7d06fe3bef226cda9d8a40d94b4f0032d96b7eb4ac3f38f1c8ca1623c478b10ee8c43529c07e0525932a86c230824b5d799c52fd653660cd0fd9020c803c49fca6f9958d1da997e1bc06fc3ab51600978703975f91539a9a320c85daa5e0dc0046bb4ec6204c7cf99ff05c47c15ebc1bfef2a2329cac4e505b64453782edaaa7185ffd02c3b17a81c663db28feca8f557af6c14d2308fb67bacc077c886e7c0df6e56c2c4b55dc6d32b9eb898128a0a5d4f7df8a8b4149f1c9871908d264164a356a827deaadf57ba9dbd403fb3e349fc6331eed1e92eef3b5159d4a5b27108d5512579ea1cfb999aeece9a20448b48520a88b39641ceb08910233b58b13c68a168810e9f9a1b3f5a8a9cd2b18e3ff2ed797caf22e12c1ad980e1dbf7c6f18c4ea96504ea413597ad424529ffb354aacbef684f5b85be0b4d7e8fd9f576989957854dd67b8593d038c5b917e5fb0eee52958362a59", + "5ffbc0227754dc5572984805ee8eeb182d8576759c0634a180b977bea13f4d20aab9f8a02927e13d888c0e352e610f1e8c4d9171a41bca04f2e087e161bfd7b12c5bdd43ae128f9a9367a61232f6ffac01a9c7cf7b18b4201a6f343d1253956776b3003025203104ec96f7f770e2235283e3558551498568206c048b2be33e44c783d5fb8bed47beb938f3b9820ab46e75bcdb409fb9c42abc8aa8505ad6fd50ec259d6fdeb41ca3dae251308d644677b74be4192c9e4783582bc379ca39086bb0a3903e1e822cd5c2cdb342aef03c9f648a274ddbc43defcd481c5ffefbd66180b4b033047198a8411b0a7e585031e521e7e09ed81f618b0ec4f7ef1f00c5fbecc08624af85367fa1cb9c4bba7a7885448a8b36f7c28d47d495be21e0054e46acda18f6711bc0708f07434dc625dac74eef015d47", + "2adfdc4ccd72a349b0b4bbf1f8116800d3064cfd56e99e03d2a5c21a1c56f9ded73c04582b0da87e5af05ae4842e53d78bd8577d08337696f4925ac6fce441ee7b77f38aaa8b615ef4bcb4af03f8df", + "4a8fd269646b2330c3709dac69b6875503a5b4f5353657c9d9e4a5f8652c3a703dee064902b58c2988a2dc6d0f49033f4d5515abd27b2f81b05644088413c4cc764222667eec269f9012690b15c737583a881d5a0ae18b105335fd87dfab74294227aac51d34110900da6b45b7e4507a95f463c2e7751dfa20704632dedead995435c4ed18afb8f3fa6558ae9aa9cf43bac6bcae3206a543da7034274cfbe5c27465534faaad1329100578ec27f7bf2c51738e960f8a04c3022756e2a1dc91ffb6980c7bf507520b098672ab4999f21a8a33c4818baf56d3d8e676dc5a7359a0a9cc0b86ec6991c32df2930690023108a01dc679b26824c361e844475401f1bb9abba1f3f59fdc38dd9d9a9d371261123dc637dd7a198a8b131cbffa633cea0bff27a66fb7df9653dfb7e57cd073d65a2a32d42180" + }, + { /* i=8933 cDividendBits=3892 cDivisorBits=157 */ + "06bce327a1cdb552c1ddef4417ef91e62a6df09f007174a52547468d8db0f0a8d14581e0a68157e4e241c58d8d5ce2721376a63ad400b877c5f9cf6562b42b72958bd14771f163930884fa0a07a75163e8bc5c47b1ef7be2aacc62e52c83772d26ec041d0dbba08f22af98041972e52047d4a4008083f16888d3967e08684950a539a4b235c6fc263b093ea5db755de5971dfa6d63ac7dc91687ed27f22a742c18d2c61c984d84625deef363f7e9d4a69572d8a9e70346946f7028b5738ce2340207d7ebfe48728ed90bef030825d78a720a12a0dac482871fdd2391a29ead04e82705da372496cb5533b40628319ffeec516490766c2616ad242572c1195d9651f6ce9b3881a6a63d7af4db27a29f0af3068fc736c7af0c3bce66cf8b41510b7ec07e48f852065eb92eb9e78a73afcd367aa637216b7f7755c0b54e1d3e03803462342d65811870bcca98b17bd9a7529153199d1420dceafcdfaeeaae649c63dab331c2719cbe78749d8f367311da7c6e5370ab9a936c56a8abc9f8fb6c4d0120f87dacc883cb297972e8614ee7f00d365f1b8c2cb920c18949bbb3a79d6b16de127d308fdd35fbe4d0625cd35bb417a046283901fbc62966b1ae0074900edacddc081b6dfbda73f459ad0506c7a45c877513a15768e8265f0736697a67f3c7caa02a1f479920", + "0fc5d5c6b70b3661ca50998d50db35d496e0058b", + "6d5bbfa9430b71523dde8302b08aacc64722e0198f83a7d52876179a8f62ea9d2b916decc226f4351073872065b965b3bc54a16ce1bfc0143883078d5733865226efdc08027017142ee358b0d060d7bd49dff1dbfa73d316122dc5d542e3c75e6b212fed7504119d4c5715787462b395e7d8f99ad3dfdaee51aae2741cedee49f9bf2e615a6be34c36038cb1daedaccc8699dd8fd3b5f8433e0c603b74c9aef29d7a1719d73a112b3812d003887fcce64baf45eed932a4fe78cd7d17e22caa923e3f94630947afcf4194092e25782b14d2b576d88369628381d2ad751dd979522c417d05197d99f0bc37869bb9b0daabdadf325a67e838a34f51e8eec0ec9c89ecd07d781cc728e9908ffb3a4d4275e2dfd4837fd07933c77523e04670fbc33bc73fb93df5fada4f524b8b41ebcac1009e8c7bc479ad978ea9fd5cdd867d3129097e591978fa3ecf29b91e2910b3b095073d6b045a9d43c7885cb2a3e507653467d379820a067fa659cc23538e52b2095332980390706ad410b344df69ea0f204fb52ab06f766caed75d501006d674aaf4355dd6f23728959adf07a2334f9881c954c236286b13169261a34025873247e66ddd8de297075bb5dbb2664ccee0fc3831d0cdf5b5d27083d24d2a964e250f59769e", + "03ae6937f46e1e7509a1246c8c6cae1dac231b56" + }, + { /* i=8934 cDividendBits=3371 cDivisorBits=344 */ + "0624dcb068ba416c8282bb1e1ad6df40c3e408b4b0ed4612e4f1cf2fac3cbcc59248ef2063992d50c6697c2f08f5546e54604cec40adddd035991b7ebd6a51f1731cc56db052ad780dd703bf34fe3fdd68d26595cd34607f28321f0fa81df687cdf4801b94430f9ed52aa937bdeecab98ea82130c77c806d98170ca0ba91a70a50f34a147b6482545d0715f84cd9f25aea5b69d223b95b57d6667e5ea8e5043e6991091f88461abf1b67d969aa6a026ca9083fcc5bde1755f87dc31e604d698ac771624513302dfc08d653fcb8826ce7c62f61bcfed1e9b3f173590e4a98402f6b1750ee4bfa095fa3aa5255e00cb0c8538e2ac20b0531752aa1803e5f4a1ba388871b895dd2eb51804641e44ffb52d62863d5ec0aa4864c02eb41c9694be0e8db8cb47c7f62338b03a66471d9e7c082f6cc475f51e9f2ce9736420b7976ee69afd2205903233435dd4dcc27f1cf8fddb5f8d186f23ab6a6539cf70e958ce31ede9e38ab36cd69c5bfdf8281147a5182bbc5eadd5e600d24aa03366588d42a190c096c0fc7fe62391f425220db887dac53f33eda496221df4dce80392638f131d0c4d129701c", + "14494f331a0b3385d1ef2d36b59806efe84af1501514d4b20cf9a9e33bc8c471a489cf7b1b801d0e4c1048", + "4d8870960e68783772f8db08b947e1741da6ddfaff38560f3579d31f95c65218948ee6f68c8f95847a74161cdb844c0269385f8a911f17346da81e5b311eb7ae91f484d9a3050bbd9a218b80bc420f540f669521967b2652e2c5e124fe570bddcd115e8ff57d21623545a8ae9302e348cd3ce9a2285ec7111d6b37954b18c007d081b935c71c095433b99d76e0f3854ab41828e7e2216fe54f0d00f39c51c5e14bd2c6157f3ec170bd3eb2f5ad9df08ba09e522a38bc2bc657dcb9dfa3936d2a6f22fefc6899b02f72f60fa3299e161c37e986ebf4e03eeb40ee9d8e3e585469fb9ac9579c35161877256cec1d37fc8777e18c9a88b58804a8895387f0452e80758b442cd46dc5928e680023a28d31cd8dbde4fc6489b58f15c7551ed6f6cb37d1337faa5ff007afa757f25d6db0f9e32ac2d2d772e3fb3c66784efdcb9aedaf75218289a337a67e364344897e5638f513d12841838cf0cc7cbf8e05b22d9700e44dacf85cfff0499e423e1b589a242aab919890a2950ecfa0794f", + "0cbcf802d556da33c9fa0cba088f1c8e7fa14b9a8bd5539c89c6068f3899c8591d2d46883c4f670efe61e4" + }, + { /* i=8935 cDividendBits=2402 cDivisorBits=231 */ + "bf3f04841ad0696ea50c95204b9f0b3a871ac957c596e3bf2826f9081a95545f2fd8bddeba9e8314e330e41ab176a50342a27035e55a3a097bde24b78529cfd407f729c698db62de4b4d3e9df05057580400ae15ad6df014e6384f50a3abc4ab12456d4519113f3abccd3f685b1cfdf9459f94074d1b3f541b0cf64615ca7c65635a60ba7bb459259f43f4867923a9401f365539be3c161a14b1ad290f9cd33c9882fb942d599667d44c9cde83020b060a16effba35de64c609d162812a197c17d527156a41439dd8454f6eafb6b13394126a295a89716d1e016fc7cf3dc30a2f3d4715cb5d902b1e580fdf257ee4dc1fe052c602cbd8370804d725583ae1bfe0269afecc69f28ab7d28e0e2bbe897c1f63f79e0d309431a8e8a6c15266974902fec57e85307b0cf38808d71", + "76f1a82ab608564e3d9fe1497e7d3cd08ac00dbe47eabf00cb0fa19238", + "019b9d36820d4f035a6a306ac42a00f0a7ebe5fa7775b7661aa1f29a74f54a8d23157a71fb25c659631985d43c84c686d0eae42b59773cf46a670e4b4111388eb572c84a360884b4ff7d20a0f38f8cbefde75dcc37db04606c878c7ab1638f5b1c5a68b25b17d712376d00cb18cbf46aaad35fb60f1eb0fa29c1a52f23f9a984b178a62235a89b4518ea696129003940cd86c96c905a35ed154a3a853924e82d2685404b9db1c770e4aff1fc9228cd3fe93b4fea597fe9032253752ef8254b02cac1a2ab21ce1aa0fc89a6c38f4bfca4dbcc3450b7d8a2c75e0acfe3fbbcff2409e1ff0c8272c56d2b15380db77285eb16dddb7686fb21c3b8ebcc22a2a5d5228ceda0a71b2dddadf10afbd1cfe190a3", + "51452f8187d001bcba5b2e23a60fd2de18037f5ba4eb664cc49728f3c9" + }, + { /* i=8936 cDividendBits=1131 cDivisorBits=815 */ + "0428a32093e2d2c3a1723059ab1de84d1fb5aed8f9701e2801947d4a337ccc3ef801cbbbc7cfc17c308b17c830d5713ac9eb62d653a389150dc57f078ab8de9cd73a68696f06835f1d3ba9eb62bd5e50ed37c73001be76e8f20eef1d75419c7d423890e5d4485a3a6198d69f8372a682cd841bce8f32aea9b74a27ade7d4bdb08a76ffef29e1deaf1353301c2b45", + "371f35a7e1c43b79fd91e2360ae374eeddaf64c825fd17b7ad3e7cf39b32df61cfe953089397245346b707bd22620e6865737be9e6294b942ff14c8bc9eec56cdcebfd8a1166d239fafb6cac6e92c1040a258990d965ceda3073f846668354560c41de17afbf", + "13507148548c96db04cc0aa721285da6ecc44722e96f1f47df86f78806600c7b4c68865c81aa3b8e", + "1319aa80db0be2b5e88531cddaea3e4d82acd303fd4a0db782e895ce7e6b035b216f25286778072375d3788acd26e47aabf0c9175f2d15e8f1a8d11ef327012047f3e9a7d08ffdb6dcf724f8d950141e945de7cacb5d7d13bc0bb94622ca9d608aac95a1aa53" + }, + { /* i=8937 cDividendBits=1497 cDivisorBits=702 */ + "33da9552bfc50f37f89b04ca5739d4d8e47226dbd321e27c21cf51f69f65b7cb34110023f91e08896abece625c32d00385287bd43ce89730f14c309d18344a1cfc54fb014c391a50dc96c67ede25687a20e1836f8c0f4d4a76e067c9b838d4958f1e85de7992e06d44b67072de856b8528003b60561931c990f9285ffabf8b097bd1cea3ba9a84deb2c89ec015926f91b44eb0964671e3343edb3c420a9eb0af2fb39af99257715e6e205819258d567c631a24ac945bf9b2e23110", + "0c7e9e30851b36c981396da7ed2ef572b3daad717a8306499bdb697f177de84827ded1f7ed98caef33f5a14962f095a828905634e3ce8648c42cc95b08f9b524180a6a85d2ead714ae3153380562e623556bb7a362a711c9", + "04266cef0aade0b03ed6b0c80a0fad499f36e99e45c55e3d63a5cb3c2220bae7d57d7f1dafe17249bf16c2e2926acad146bfe93d1b20f289a4d35193edaf1847d97724b663d4f0fb251715d8024ba3da46eb25a80dc753e007578336ab75a96fdec7d106", + "07fe677c51b0b9cf0af0a1eb8242692f46b1ddf121ec1f438224f558d776eb84d4cf86f97f66f0b0e6c1257c92428dc1596f85865a6be1908daa9c481d93ac47260290ef382c47f288b3a47c067c45fdd687b228dc33ad5a" + }, + { /* i=8938 cDividendBits=2327 cDivisorBits=1011 */ + "256ce735818aacac3ea9f5c87522a4dc255c3561592e6266544dc9be314ccad7ce4c6970c51ab00a7ac56503bafa1c8b161967c86ec7feaee6e12dd20de3a43fe64dbd9323713e791365764900abb96e7e38fe8825affb166512eb5f3ded19b6a8a9952ab6064384feaa7db7074c6f8fa03c33e86b174c168fc300a86b91d6f3a8d47d63b574dea82a0b4b408853b95158a2fb5ffaa12a1f3d9edf29fa958f8869bf5db49e05b916cb80a7bbcf6bc8526cec2934dfa371b9a64fba3af804033d3f2dad238e1cb9de13d5f0ee0b98cb443f73254fa12dbb44ddd83ab67308fc4c9acbb4d22301a2eabc0922c8520d86dfba77b0d7ac217708024353e72f75affe1120fc4a42fb040e00e8418f53170934be4cbea1821cbf0f0b8fc6be363b4a003d8374", + "0372ba6355cd05b4b1383f4b7aa2382f3d5f72fc3212120650e0accae732e8cd5a6e2f9639d2aa328ffdf27f6340aba9a1c895c7b54149c2aa83787f3ec5b020789d157f48247e2e81be2e29737cf84a5c69ffddc9ad5537f6bc4f36bf5658c9543476a89d75a17f7dd0146f12061a46558edacfa554d8914210e91d2a60ff", + "0ada8edc75826c3ee0350df8d60927c2f5e68ae6babe3ac1ccc32258ca1b03a956d5880978b598b3aded833d3c4033d5869c2380aa7c6857d2540cb44139a8f6c77c0e7d852fcc75f39d7ad8f7a2c4c2f28192e96d6ca8b00609592e36337363fc281d90161e45811e0310011ad47f5564838f40c143e1afd1ba7f9dda0064c954eb288986db6b81d092fd8689a9d538f98eba6855a82509e0650c01a3664bb8a4070e10d5", + "0149792636f6a9c6eafcda6c338fab37b158456e3185a4292062d3c31903ae22611fd5f7350b710dc86268eecbb5aaf7eb6cbaca838d300ed03e70c85d2eab99544155be32a1a47971f6cedde8ae1e4c68eeb21f978e921214c940dc3ab4e9487b5ea1f7bf2bd2f161821814a25690159d353121a81cb44b116b2dcef8df49" + }, + { /* i=8939 cDividendBits=4086 cDivisorBits=2081 */ + "2121ddbae50b49f2fab4f4b211bc780f85968ebb3a22983683f12e3109871369895ab32635b7fe2e0b0a4fc05673676ea7bf0c466ea0f976749cb95c2c33c5372605597742c0e0ae6952bde37080986137b92e40504e01efbbccebdcb0eb18f8393c92f60e9ffb9e59d58e5ede6f8e39b1d30b513777247f59a88b3bc7ca5f45aff112b99ed96ee13e8483db6b6e9cde2d91fc2050b35f83388a0d629332b6d2e0daef2d48cc0f85732c52e9cd27ca51d2d52b215623a162c775e374847fc25cf17cc8d5e4971412578dcf675ff3a3bade386542f6d448afef1463f4b004b6b7d2a336964c00ce3eb79a3d497bb7a043c799f24d0809497db7fe289527f0102a33527c1482bd5b30ddffe3eb182c11ea2a3425518bb078a93fab1381353cd5c5cea31321d862b1c85a8d63abd2e03fc46322cd01f658f74c527b729475ea015b0b4c7ed5ce510cf6457b23dd86a9e504c411878cbb9b48cb0798680758e5ca09c1e311205ba6fa880142e0d0dffe4bf1a428074daa29df6f8a9179321b21a327efd682c0cd90af44022d9f0b435df5bd99ef2812ef7348339357fe2e11a476fde84b9c0e7cfb2deaacfaf57ad29ed97f880a9030b2e8f80be5a466c1a09ca41449131ad27c7d1ac61fd9e6c90ee273daf6cc941e68d6c035691bfde7229b63ae15184274588d9bb96f554b1f5e840fb928e0831b776954c0823935a61d3304", + "10256a8270bd2e1ebde7666e4c9611275c5f34f248a784c087d55a0ed0d24d7d39d52af559cab54f0b78d55bd5630dec528917716d571157aa0061b1d6f7df249be0c8d1abaa46c052c41bdf48d165d6a94dd875d476477bc13f316da3887bc3cff5a10872846d695e16e42f382f11c677b6986ff2bb39659a0a55814633b7f0d65bcfa7ef0cd9c3e7d5095ed2ce730ac26b9e98c83d09e237f23e510164442989df00cd09238e135b51cd807bb9d4ca3838250a57f38dc331e68bfd96aa29b3331fb517832127eaae13bdff06b4507178de55f549debe36d196d249f46e255a4934c03c52d6708df7cbe869ad948feec4c18249e1caa008abe211e9964ce614f977ad20", + "020d51667b6193df298c942df68e0c141d6547ef90df6a4ece5f2164c9ee2a590460739ea816322fb02eb9ab2a14111bd4acf6047365f7cb1eac1f8253d9c6c2517884060ed377b1764960e314f299c3cf6b324128adad1c1f32e013423c6a5458f835d02410f7010666e22537ac9f81b62433ae689f5f6e12889f76c80371be530d711ebf047cd8f075cd46272d0b0124b796f8cf56846e6d21cd0ebad031a5d712238117ca0167ebc3a894401128e5249d9e0cd0eb26c238a3af6e5153c3b7c557047bed93aad9cca5bb2bad9d97afe4b14d7ca45eee4468a2d96e2e5d6342049f10ec01a3b75e5ceea18b994801d61b16e50486ac765da5cda32a", + "033a0a121146f0122b505cdcfc2805b14da09610a3279d5f3dc0da3bd7aca81d04948c0780484bb7d8638dc0c82d9e5fae70f1b9e109b213ff7aa7d61484125bb28ac2bf004be9f1db81914b659cf06779741720e67a973791ebc0005c1954728a5b0273357954ad276bdaa192e2d020c75aee7d83b7d062b126e2a18bbaf63150c91c3294f41e5596bcdcf1b1c10e5bc34ec6d0996ffd3b37b14be3bd22c854433f9e36bba2e51bf371ce862eba0b23a23f7bd7e2f53f578b86012f4ce82206735b9ecc5f0755c597e33907f60c9c3b2cb5e41e854f1218aa4b6d0cd519e33812139b21742db5774d8600cc09c4c561bf8840240772130e3fe5fc4c820892e2429f6bc4" + }, + { /* i=8940 cDividendBits=2998 cDivisorBits=379 */ + "36ab624fe7e9798ef44c4673c341c6653a2997955ee018f06d6871e83159cb05246580c9f97f8e3fb3403707c8601eb03f2ca26ee8959c00d96a3f81d3945c7616b13991dab634389ac0f54af2f344439fd685cdd1c1707c860fc1b433a31f55b473c044f27319d81434daea12e63964174ebc9d139f4cd107941d3c03ec9dda6f4dc7ffc3dde2f6abd561c02945824ba1f385048c8262b51a8e8b3291a4e164463034de698ed2728c3e47e2dd03f9b9b437f7706ac03b20c529b478a980cc0a510c77d2107a8e18697035c6468f02960cf5bd76dc3f44ea089d9823fa39c68ec492317382a2f1970bc9aa9e083482e54b164c2fec0fb924bf7d62dd2269f1ab85d9be0e567c477fd155183e8fcda69495bdf65da776b3cf403a45f4f1d8def746593460a37e9f11e1310f55a330a21706fcb57ce209af5cbea5f4e4aa8948edec477ec8cc6fe4c6e747b6c37030b2b2d271f4737f24b16254a8fb2bcecb122a04764f4e715149c7e59ac1229f411d888d588b42695722", + "3be54e22004d7596c117b1b79f824418d53d5b6c0f547be0e5f75294857393600d58ccf65e6ed67ce3d0722c14c264", + "e9a9991b126b3d1a1746a1d9a5ff533f358894e5e6ef247f10fb6481bd34b8f5c93264c97f6919ec1d4e0e27d06a09a935988761e7e526e86e57609c107ecfc8a54fcbe4c9f59841daea4b490e4837fb362a290e00be03e724efbeefc77501d4a926a0198d8d9d145325b6bcf22f1ca8048d6dac70f7b2c41bdfe2e1fdaaa3bb8239a7f1ac3a85b09faedf61d8db6b241e4b796850ca3a63821cede17b9a032d7142a99f2fa22fbdd9deae74e0b1735fdec11464e48fb29ae13bb5027939aa61cc39c881f92cac95302ff94cd95a320c642c2a953a743ac8e609c3ea98b616f157ca8a883bd5eb77bfae9f1803f957272e584429ae0828f4335e089eb82e112957ff570487c7cb46a070a7b4be3318400089065f309ba7d0189e936a86977ae4387f2843dbe6d893c5e8616318a95a443e1ef5a851929f46077dd378e0961d281f8475582cc2bed0", + "0b1a0ba30c24628de9d6f307a7b10dee4fda58e370b9a90368968f7818fb878e2f404704fb6e6c691bbf8b897d2de2" + }, + { /* i=8941 cDividendBits=73 cDivisorBits=68 */ + "01dc786ca9f239d7414c", + "0d47c7b5ee88e772f1", + "23", + "0ba81eca5582328a59" + }, + { /* i=8942 cDividendBits=957 cDivisorBits=143 */ + "102e578b26e1a44367dbf292d04b6311a19cf6c5e537895e9ffdc97df7b60efbbf260e2900d2f4e1ff2452d0eca054b694db04c5a97dfbde7c168038c3882568f86ef10d3174bdf4c39344b839dbefa5781eb76f3f17deb8c677cb3910fadedb013b5f9574924f9f787bd015203b1089e26a708c07ea7e7f", + "107ed639fdd56cb6f4a54cd46e6e7e669179", + "fb1ec4204351b83e7eb094cb0a54a4098ce283f723dc3b314a304184605ab4e53112f61806d94774743bfe2be273242d08f857f89a02348db7cbffba69a48f475e8ee6d374add7c47e66850166f79ad671bc30afb2a79a5b2e6a486d92503a050e2675b4571a", + "0c2d16d34acc2a4352b71d4eb5cdbffb9935" + }, + { /* i=8943 cDividendBits=2409 cDivisorBits=1068 */ + "016e42f656da5328fe1061ad0a6639a85b28c6af80bc07de3267b8671ceaa56e30d36a124dd345480efcf653472e51c583a73db5a6fc36b3136390300aa0d54cf7f843b0e01dcd14eed2355a8ad31d8c10c2aef1c0b4b77d4767944822973b731ad8a6c2b36c48d9803e5a5560dd14b8372013ebb5efc5bbbe6489fe2ada076a6f7ef93640a417b4c7f321f8fb8bd15fdc21cee7364134d2eaca881d0bf8c58db95271593c44d067d84ae8f558fc520e0ee5855d55857c00c6766fa0519223a6a0baf29b00b52dbeb38c42fec65763d1dd5b8218ee671b67f6728380e196549d2723e57df561391340fc25f57f82921fadef59fb161f7911d55259a52fb5974f43e851536c3d451051b2bd866daa9391c5e6d97032d8ecd738b5940f2d100f6969c732f6b7568d4d2c0e3e2a1673", + "0593a9eca330263c6ca38344a1a9dd099ef3c861849468e1bb28b51a87fba01b141c1513a93d2879fb88aa5b07c0cef6ab00565ff5dc5efe950f7ad3a6aa0e8cf38bceed56abe9bdd0e6296a19d34630bb2a5f91860c5004dc313d7f41badda91e64c83b6aa1809c0d6ecf1e8d6a8c72f15c96fdbdefef466824f548682a17a6724be577e076", + "41ad0154c964fde41f8b2d14488d4087ffb5fb280423cde7813a71302be4a94710133b1f7333d2ee77f701d8f6f08a1bfd70f0c6787c7ce6b3e419db3fed19962fe2d0794f31a51d82692e1c2aa7d2fb1ef11f7e4768ffdf83219a19e442d3714a1d77a5233942230c6389cb9e3264bb4a2f48af7fd6e9ef213fbf8f94ce09d40a27a79d7d9aa8d80c3b8e1c6605b4c003c0906336b1f5a28f0146b9f659fda3f9811842bb22f641", + "03170941eae6fbbdb624adf7457eaef86e3fd8dd4e8a42ee146acb7395d09204bbd769ef547ca0404fafcdd817900e7995254217dd68ad976f987dfa3b099005df0adfcd72aef261543d3d68eb307b6c1f37ffa5c4a01db78cf0043eb99d584be0d5b49f0c3b02d04704513972a880126b8257ab9179bf702620a35ebf62b4193ef9c75cb47d" + }, + { /* i=8944 cDividendBits=2004 cDivisorBits=439 */ + "097d7843ebdeb0ea57fde71f539111d3e8ecd13ce18c0333d757f882d08370347e0be9c6318c5a742c38d9ec09cadec7bf731c4295af16cd6e17d883f9ac3ce1efd2df32f39b31050e78b61f1b0fe919892081cbf361a93917455115eb42a40b0a618008c229215027bffc60e0cb42406b2f72e813601aa0894bcf5a942921660b9c28eb8537a95d0e382ffec4734f71d9da50539e6cd049444418eb9f001314b09ecf60217efb7db9afe5c5a9d84c321ba6e1e66a712164f23941b36f29f03cb453d1af5544666b34b8fe186f5632f86c0a75268db433b4f1d9449cd41a9b07ea3614507e2ade02a519379ce88025bcb3a444265bf8cb6586319d", + "102ef5768efd6cf449f15ee378c87dbb274db5757ea7b7c44dbdb9f22184c9f46c2eae72f8cac9a3305836e011ecd57a132b4e95580692", + "961eec459252581dde88672ce0ca68cbf37a0df4b87a09c2b24ad0ba423ee58470d1d1884263467ee045d7a71bfbc4f24360a4302f159c60b0b226336088f5349a3bbdc17e1ee2cf5f9186634cb4a30ad603a60b613623557fbf961c96339441ec4f55255a5e6ddb6a057c210920ca3ac0eb73954bba56163d8630cc0d0dad88973acba353424fb35eae2edf2bb261d1c9e356e91985736a9a2d3483489f23b76e27b7cf4435cc1ee59eb4495ce6ed4965c79f73f1d7ba8e4f5b23f701aa1b80c292e555", + "064d0cd441718ccb1a204e4a68c419be623a12fc1752d2d7fb7109f9a122fafc6b55552c25e25573032cbcd0fd230b549abbedae276923" + }, + { /* i=8945 cDividendBits=408 cDivisorBits=86 */ + "2969af3554da183dc5ce7b60389ea1627eed99b19de4b2cd44be04ab6974592cd4e3922885329be5cfc58b2be5ae392f22fe61", + "2f384028be242fc31ca3fe", + "e084a2fed3c0ee664f931702ff8cf9d56d07de311880708ee891baffb5e5eb60808e4a2e65cdc639", + "2c7717e9e840680e8606d3" + }, + { /* i=8946 cDividendBits=961 cDivisorBits=190 */ + "856095d566a28b8a9a4fda8994d46d76234d545a9e7b633d982567211e71214158cd8a820073b0d8410b5f6b474bf66f088d79674a28f0c34c596b64c15a5e1db221ddc29a6fdaf39b63ce4e61488ae536250226917a6e6ed87e83b379468267408fba3a7a962af0b0ebee781152044019944ba15a7e51be", + "13af4fd14e094d6c86978b98c51b2a18bb6b4be7fb8cc08c", + "06c690a39e37fce0e945e9127055b9a880e7276db7f6546ec9c4f902c52a1c9d7e48e192311eb7ac37b8113224df0d9f08d2db82850db36e902ab0a09396668e817aa0e8f4787284c7b291700219105ca62f76143c07e022fecb0f2e45c7f5269e", + "0d5a56abf8a57150535891169975e922cbce001b0eb356" + }, + { /* i=8947 cDividendBits=1177 cDivisorBits=962 */ + "092826139c74c50ec3ad0ad5b934d713921238ef140225fc6982070b61884074ea3e63126ccf9ca15cff0288988064a42463f91b9427f2e1911788f0e29dbc064a2f83f6ee6932a7e44dfd4eec541ea45cb33465e243812d1846abc4f8a7a801740e4b96816f8dfcf6144434fb5b35bf1e5e67bc15294af31198d9189e9718ec8aa6ee72fabcac219d3ff7c7d647ddf3bf09b2", + "0224a3b63a2e4d199f1cc07da0129e5f059b631744881e9defdd9348fd1d70383eac566fd871401e4e96c92451c619e4044f2660a790fe5c861299a8cc32105879e8ce2d1bba4ee419152309ad9a0637df2eae54c9afa1a639272bfc1bfbce8e8d88af424fe2e4bdf3b855cfee3e9876a809c77de065a5eedd", + "0445cce3c3d2a4d910d27bea29fb08866967601835cc0baf085b73", + "5155f25ff2f0c397b445f9aeef561f72745029d7534f2b886b3e55e9d9016ba22a6a0e41783d4f9ec7cb1bfb165ebf9ffb4590c62406c3d255db15e8c30180c3401a434a29479ec058eafa152c9af67d37afadcfaabc794ef56e872da86c32ce41a0cd4ba11fbbdd1ffe8c5d382b387560bffcf6c4642d6b" + }, + { /* i=8948 cDividendBits=3101 cDivisorBits=1479 */ + "18b951ba4b88b8ed9fa02f9c9d9601753168494e376fae517140e85c228a3031c92718f42404dfc19f44e6c988ffa6268bcc5e1356708022bfdb99f23ece6ae627998fef339bfb3dbcb9ce8ed93eef7696553b7645a4f7e5e8db86516be841533b2c84ee972bcfc80763e416f2a71300dc14bbe53143b90201dff9c1b8f531cdf0cf2a271f6b54d7e4009f438b679f5766e32da18e0879cfbe4495859109f615798f3b502dad861ca8e91432414ba3983455a17f22a222f523404da428fb977740d5e956fc87075b7bf86bdaf630e07aeb7e71bc77ee02fb85120edbcc825a54eb9071517413cf3ad47f5d8ccaba906eb25fbc11bc0235e47899b2636f469c4ab3cb5f42221153323c0d177dbeefc48a891c16be060ca416840bbb53acba1ba1d622c0a0be780e87878433fa7ae3b94e5bf5e98626b49dbf409f2148b9d2248a2130444f66e1ddc9590fb03c3aeb2e050b8cdac9ef8bb98dfb2ca97f0732e877e32bdbb99a2d84afae98ce8e6cfd643bd757b5a53cf7aedc271720d24587c301c3d9d947", + "438003f0823ecae57e48d01007ab0c725f5f96a1293f6215592c00acdd64d9cc6c7ee9d8a4788122dd8821f3cb3feddb3458b3594ff9b9a6d704a94f06144888aa880c2f6f009423f13d05b7316c5be43fa067f97f2ac29cc75608de56059f3436eff52ea35490275c3c9b378808a7c9f30a08b786c3104609ecaddaef98ad730953f77399e4104440ff24f7ecfdc29f670f0c01945c2d70cdaabf02daaf7f44b5fb797c522c5ac6cdfc9780398172b102f9406cd04dc65fb9", + "5dc48207337eda962c04a702fc23bea8f5a5c1c03fe5d7516563845d1a59f886a5ad94deeb534ec4e20ecb5f2b37f20a7fb6041014823a561b800440fe0bb84b8c483e50b1ffb456ffa5c0c84d8473a8dd230f8c94624cd1269f6e656649d268f95f5abdbf2b9699416e02c474e6f0c9795f336db6e73416eceed9a15720fdd265df9b9b97a588173731546df5afa599f5f5620532aa78b05ba02820b945629e308c534082e7f247846f929bb1990885cf51cc2decce517d84a79c9a2383e46e8299d44ba4e346b1b79ca4", + "3e190b304164f56ea72d1de21396169661bf558f88620b4b99077708e4bc24f197ea7473c22d44c1e64086d21013767f198c3da186c0b760cf47435ce94370ec4ea288a9604d038e6e27784c256589981a7f8d3e748ec6ed54642dd8743eb5e82c1ac355313882b78242ef661469607d65ca61aff4a9f79d14e0fe666b64a7056bd7e34fad678a5d5406c6e88e8597b8eee53910e704630c9fc2005eec2c879e2907f8194fa1d5d34e7b61d02aa885f57cd6a22597b830cac3" + }, + { /* i=8949 cDividendBits=2653 cDivisorBits=93 */ + "0673f2cc770b5f854bc2bbc719b645a5b8461b95521888d9584d5d9d8f2d026f0e51312aaf30da758e685b2f84092a7f2df37324011c9eb3021adfaabc9abeb51c599039ee851319aaefdd80696a4a007a86639029312ab2ce0e37d9191b37612d1158e6d35fd4fb090a118bfd5d146a4f54790f788cbe66f9d5ce68bcdc53ef9a8678867f175ceb332b34556d7d3cf17239aaabe5f48f1897cb5eb39aad2f71f7d152220b476128ac796bdd3b47da2a81cd11ed6b6a487f652482cafa8b38857f7a2f9f458428a53c566dc060c2e64f565fdde93bc185a10690864f095efe0f5c1862e28fd66d010e408df15b31b3e23780c38196fac08dc48e57a73cc380f5ee006dd8769b6f84dcb5e33cdcecb036510f2a5275d4a4779be07400a0b9617d4ff6ea0a98a171da67f10465efda7c6404227aed7123f695656cdeb22a6284a804e0fc9b8ccd11ded6bfb152", + "13c41bc3751b5ccef18764ec", + "5393363df963488475f066d9394cae232ccfd8c7b29512436ac8041cf37f1c926b71ed249e911d41d052e7c54cc7aeb6de09d34540a7ea15db9f41be5aa23d768372a8f1adf159c7a1aebcdade5fc332fc274b114c26fb51e6cc0a29b6156daf1c034e6132a9739ddc70f988ce8b296286579e07a77968da99a4988e654f5934ae726fca1347e518fc4f34eeb9c3c87ede61e8e146d3ea2e71d0106e190ef54118ea274bb5f6a722da7d6fd62e613c6c4dfae926e4a6099b25d69f4a5758cabff970d12b20b86130111ba2158fc5a5ed33ed7a5e00c0e8b473d0e13fa12879e87a77da92f64fb8a5a63bd3e2c2cf866206aa955197a546ff6bd0b49272d54019965a9c2c82ebfead05315bfec04d29840eb7e518cbd2a729ae7e12706b6c4cdf7fad8c3b32fe300a0100bbcbb22bfbc8491a92664abbe746cfa2016d97bc624e", + "0f235e841d1c71ea198c996a" + }, + { /* i=8950 cDividendBits=2544 cDivisorBits=1419 */ + "53d11d811925de39539073ebf1ca08c0759f6ff5bf0f301a09c83f8be7602ead5337ec6997f03364a4e6ecfbed7d2d1503cd47ac2e4bfab85c29a4f0604450eb95db7bd82b36de3bd5dec4bbab8a7e01752a1e59bf4d97fa3874c952b758adfc0c3d0dbc151954aea0159eae6d824116b9db68c8a6ca96d9125578edb5f07ba7d5c51cf22444c8f9a47f05529cbfa4f575923f6a5a69baef42fe1ff58627e14de0a3aa988d959b6864bdbe02afba4df58b168fb0e1af96a2415903f051575604397c9c3413b673bf3f582423ebd5c84fdfc79dc6c70913e48583d796dd0c8f0b61e05b0f8d524cef44d8f575f1df7bcb06e4b40c5182f76fd03d1c0eea0b391d8d23900ff9ab789ca662db2039fa9cdb40f67f9faaf91775c73938135ad1c8cb31500768ac5eb7bcdbd4eb9c3da41706747064aab8afc79a8fefc9119d31", + "038aede5a28f0533a9afea0d1d5526f7e752f4ab6a1fd3b199d7678ecc576023201d70e93cf66612be378c00f9edb6afc41fa265c10ba91fe5b6adbb791a00b40fb281533282864d08e2cfb90f1ff4e9850cce0aac4305a44816132f7041abe59ff20128b5db017c8b25fa052252fecba2906f320bfee0b491ffbb2a55c10082852044fb437857a8c8966c4d5d19e4061321b4ecf831cf25a04a8926cd2daab23fc7b09bd40def454d8c2a1a92f83a8f9606", + "17a8b9aa2ccb6e0401567b37e8651c4c0710a45dc8d2082a665880893acd974f312f0a10719e4cf5f6808d548e459386ea02f940b36be1d31bab98935b9badc1dbe3e52f64e27d00560136596f753341c07063f8d49de08cc5cc7a8a53531cbe475741507bca028409f8d4f48b06d3728e3582021b912c309a8ebd894ae930f74761bedacf1493c33bf7da7310", + "037451f436f08a1296b846dc565b66222728992c4c665038b3726a7753078b904914adf1ee107d07e8b32bdb90c26373f80d5959e28f94831172b6926aaf2c0cf356318832a8ad3f0e009486b28761f82e76b8c0dd8ec64b82d3b7d6c34b34e1da2fb466dd02d2f13fdf9e5675a516b496218f173871eb8ac5dcd3649f89d2f620c90c04f922291d8173ba8fca00272aca6f85deeb857b9485442a97355d21f1a00e6fb9f1780f0533be123950b614978ad1" + }, + { /* i=8951 cDividendBits=1772 cDivisorBits=427 */ + "0eabbfc023e8a4c4c471ddd0376259916070b2ad2bf85f17ace7ff6df52122f5afb90fa3f71674b325ef698fbebb4d36496ed1458ca5742810dc6017628d7621682a87041357b38f98afbcc71cc2438772860a0d81b7e7eaa084ca036f363ea7bfc2f195b3f7ad815d9c57131d4a0b02f49654254985be6080f31a4035cae2cb6b4bc84f4f1c3dba2dcccf6ce573068529c25f23d8cc96b3a16e7b51ec3546722be901097637889bfffe42f18eefbdb2cb3a575d4afdfa7425e3513d7f0de0df57c80ead888e8540d5fc7d0b2c9777097c665e8db0154c55f50fa6dafb21", + "04613f170d2ed8321f94a9051dcc2ddf0c84be99515d2f0e63c1d35ef38de3ec098bef85a7bf5bf4801fc968f70f32d79b20fdcc572a", + "035980aae0f9424845c5d69e5834ddf45fc96bb150a63846db63c0d9f373ab4ff736c6ee9fc580eaac8375bf9a12f5b744d0cc8ad9f739d499faed8326d07b1421e84d83a58736e02269a307f3bd2a138ccbf9ba10e157ae40ef63c775759c2f53989be40f3fa45dd81502a9da6e132c550e84a3f5245c18bbc41950ad6b28ecaab2b9a14b12df6c49ab82e0d5f868f0ec6479524a2585604c10d63d5b2b58cda5ac45539e43b660ef", + "0414805b915f5fdef00dd95922ccc69bfe6fb392c640d6cd1d3a797ee4589c0cc407a1709647b1995a64dc14cf96744c6e141e89daeb" + }, + { /* i=8952 cDividendBits=3470 cDivisorBits=846 */ + "3d8013905f6b386172246ab14822c68acb03d55c52f4725a406ce00456e06f8ae811024d3ecb0dac346798dc9097842f98b423d418c5c93c21592cf924137f2f7fbda38279efafb1c9ba564e4c21d4c3af0fdc1c075635839413fbdcfd1edc9bb4d47d56feea2afc78d423c9e19c27b1845112674dac851f3e75aafb00e28729649dc06feb0ed3b99bae046a3cc2c30ae22759b45e414f03efd36abab8c2d737ae7d7fda15238cb48ce08c7a915cb2ab3da4edf41fdb5673ad93fe7e2c865487f874195f89156c4de89e70ce2784813c633f1a53c0cd5880ba23b704306e3a30952b5b332f152fe1b53938afa71f07aaee1c3f7d2e6c37055a856f9000974531956ecd79d8a275cc62e42ec606731a9e3d77f255611b20c877c84970e85776c30e8a28a3fdf8dd6678cf511f1b3b19285aacc197325a582d45c67813addbcc67a4bb8cb0c2240cc8c17e6551557e8f95befa842197158bff2ced8e7d70cbb2b04a92236c11c54edb7a0702083a2ca15c436b651f55c5f3770164a17654f3794c7ef5c98e171e2b45fb5f7a93043380cd848d33f9ba27dd307e2207f4ae66a062b2efc984e0f3f44ee2a9f5249972f799e230", + "25c1c5b76d20e4000610509d50e8777df01108cf3d293e65e1abba9966148cf0e07ee1daf39f561ea1d80b60b8504d46c42f289144e641b4d3fa441ea543fb25462769f445f841a4f620e3478569027c1e6d63e3f1358f3037f67234b5bb8e6a76fd3fbb0129c3d1b208", + "01a0fc330e11371aee0ea8189bc8115c7929e11d44b551fd2a1de40846c500c99b99f5880f5aa97819824d5701396b21d2720dfed882ffa114b7dde095c493ff1df0b115077f1bb3cd5d37fd99936d47405ca64a6f4cc38f22dd00fc9932ba4cf9ae76c558b314bc2c2977b405f988e52535dfc86a440c471095ae9925704063cb1b74433c30f128891e9ca47106f0509f6c568342fb05aca5db7d97d92f6fdcf48ba14135fdf68b7264f30d51e959fee04b53551c4fed666f6d13e905c03aa9381a78b848d94fda67570377e5b35eb1acf867cdc5194a33076e5c2b265826094e6236b75f77ad0228146a28c3ff7301c3448882d5935b25ab03cb10cf41dadd07eec0c8d1d598c7edd97e50be29546885fc4cd8aa498d31923d670092701fdd7f3582264cfbaa7b415c3d46f21fb5d81a7511b259bbf1ba4b21a6a9200ccb803166aa1c8a4772fbfb", + "10453cf062dd2e24e9500e5039f3f41625c2127976b8620d7c0691bdca6cda5f0bbae205d1c99505aaa6126843c0035b5c995a359dff80ca0ab6c7692643e6eae58adb82c78db5f02e766e336e73eafa60160245eec180c5da38e3106f599c9ed0a11ceb4e6fdfe27c58" + }, + { /* i=8953 cDividendBits=1683 cDivisorBits=120 */ + "0195b46fefad4911a742979a4dd51d27187a6a016fd1dcb377f910d324eccca891d5a68eebc33e682e8408b2817ec89d6ecc5fd4350f8a5efaab9bbb86dd53f62a1332b2dc30431ee52827880beccb40205d2e1afb6634052cbc9ab16bc1cefa4f1ee966af1c0597285fc4c3084e8d397855123a50cc2e64a711586a5fb519407c7d0d4d183bb2e028a86046448bdfdd1a0c01b9214eb93cb5777c8b15334da438ebd838d9986fa3861c4cd471adb11af6800664e99e45cb9df3079ab7a1b71a9962708c01ed43e80c5e9e4a123f474f6f94ec", + "270dc3639b61cc8a64e0c2210902ca", + "0a636c0b006f2a56c0f8c707a6c1744269b79f0453c7342b5f46ecd0dda7bd051e32caef1c6adb00211bac831126955ab329d2db820e910e27ec6924a806ad4d01ce0de977c4c85964a52de8e00339b8b4bbbdcc6fabb83cab44795dd9650fbb329fc3c1f9d38f83fff93fee18fd0931693d56f5cd0ed9e3f2f317c171e429c8f1eb451251c7532011596933150e8ba8cd66260c149291408e2587fad05c43811183746d8dec123e5717a19ca3ea60368acdfde25a985c6235498b6349086d8bc72e999b", + "1994c666a0928e73b5ad8766042a9e" + }, + { /* i=8954 cDividendBits=2579 cDivisorBits=436 */ + "039ffc5682a84cfd8d2606b00780086e2a8d8a3958361bd470ada227627f35581580a918cf85478c0db0d124cfde6bafbd634abd1cddbb502cb363bcd360caac5ddb5a60c2fc6bd5a2549a85f34042609e322e4138b538e5e39aac4bde53f9ed6d9da17a4cbbae1b4975548e0e7010e77707fd80e5a063c458518b88425705ebfb528b49acb54f6fb2b1a5e4b61cbf8d414430eeae59e5b2f33f264ad59af0c9213562306a7e3fab2c8a932cebf2c4a533e5699adb2b245acf7e6c33fe36310e7ef2f1209f15cc4610d927256bbf20fc58fc8da0b7f95a64d920d533a2060000c1900845bd08057e37dcf87cfb093dc0fd37d2f15c794c0a398a65b6aa2de6c68742b4558a53889ef70f13d8f30e36f944fd0281e7c838677a517e130d0951b86d7f5ee6f86465602d1a504ccf8fdb694485ba76ecb380a276e82af3fae182ff752928", + "08792f1c6dfc64700f504e1fa3c89da20048c4a65009fdc6979e9c992be22fbb19716edf9174a115b37a74a87d9b0715a70fa1c51f3ab4", + "6d8490d1e9a2680b19d8f2ac71a6165f12180c73c94652a3550b3beb293ad0b85bcc2ecbce3879e580c5194a81d478f069c3791ab2908f70e95257df00fca7ce0d33a721660cb5d55412753602f34591628f5dbf67c32bf2370a94bb01db3c9a2506845e7353e4515f9eb70ad633cf3c5503352238bc22ddcec6d6b603e7194696087da20d172765d38ac60f5919fb33f71f7a8aa71d9a34f846b4c60206de3af85606986f036a1e14b1b91d6ba282d74d81de5ee51647af250857b79119c28b3948072a259976ffc38a840c60e6cff52364f6be3af3a369e860d10db2435518d9c7a01ef5d39c2ad5dd5324632b8e3d98fa19961d9e92e25f085b6f3420c9135c98e96f64698a83c27dc1ea", + "018b272babe11a2c5eb72322b424acf7485c3cf249d249a68946161553ef0c07ddb249f63ffcd9ee3b1c8dafcc271ee4aaa53033c3cca0" + }, + { /* i=8955 cDividendBits=2617 cDivisorBits=1137 */ + "01d25dab6adcbe1f35003b28de7d963e1b532d842f9908e90b11ebb4ba6c722b508e72567188902d010640326d04938e05c44e59266d1f696e40444bb426c2a23d356d04a3f9d19124428f5c4ad5ca65b18894f44ecf2801b0abc92d6f0997f666010539d9accc6595a34e90b477fa025f09b3aaaf48fa7a080a932f6358991d958da01021f8ed5e4e4596b931bf11b39bc731b46d167ea85616acb0e97a78b59f6f8c928a94db6fcbe501af57d9c29db6a64cecaecf17a164f0f05c8d4f3b69ba62bed65ab278ab0277a1f334891268e236f839329cf1b0576e4f9eb4d3d525983596962bd92cbaa7d663507f6ed97a2a14a4aff7894205e46360d411b51112a1150c644d81f0e2cce63335d69732fc11a6c05f18d4ab2da4c2fe7abded1ecb74073995afbe02a0358bb9b1d5742c933575b674d0dd382d1a470c01c8293c381a318bc0b3a58625", + "01b1cc3d49fe3172e81b0333ed93ec80ab32dedac6baf0bf15ddbc144a8da06b475e75d30946147c9d93397a886cedbcd4fe1373d0440d62cb355d0373e93bd18d94a83f0ad1cd43138b2f3db371e50aae9044cf0790e8911f727ed75f57ff24fb00640d76045fda1f49e322435fef3db1f964bf0389a194eed8b266856eaadd3c1c9d894bbb49c7809593a143b8b0", + "011338392f80dbdb2e72a2a34ccd276380aeecaf1cecae5b3913ff307254a3b04edd19c6e3fef968ebd3911ea7216be99d0c0ba6fbd446d5539a59ee57d0c92f61492e79bcff7d98def468c5cacb80b55cbc5e8f2fb8716e7c355c6f17436a48896edf815fc49ae5de4acdd3864a25c886f0b1691abeea41c10d343153f78086ad51d71a1b53211ca0ea983cc07e243c5e24fe68e1e6dec1392b53676bfe32bec71d0df8431b1c1b99aa02baeff9344694079668d034806335a6", + "47a07397f65b49c6086e3c5ed3b089831fb6f65b36001ca51d1646308c8a8110a573639317e88e80ca108d038183eda2c5f1df9a3684baee8914c75a01ce5739f686336a81ff820b229fe1adb63cc43c22873bb23e3dc842de5e892d0885e7a4e5a3ab9917e3605fb4bd56d07052f1d60bb865fa8319829b319ad2a339664f194c0cae21bf0185cf405ab06f5405" + }, + { /* i=8956 cDividendBits=2222 cDivisorBits=1256 */ + "dd9b963eb36e508620f6cf036380eb0bcf88e3955df3edb856f92c68c0eb78de31e9e72858bc025339c7cb7c5b92dfe9c80e10d5d2b0ff0374d5f5d5337d7e368435cc1947827206f86f47cf1c352453cc7ff56aea94bb247ca51f842163a216405d52038899d39ade380aeceded996eda1cccb0be3fcc1b931062c96b12364acbe3a5cc1c12d090e366e69141d430322d67d07b7b23caefe588be9709fbb54fb9aa02bc693c888753ae592d2f984d10e6a55a45eca56bc5e10cd5b70cd01c2b6a169d5c5aaf916858648c82caca546a1ca863ffac50177118ed69f7720de2eac9c5ac58821b3dbb78d61b43b2ea807bffc3dc8e598c0a9197b6bab8ffa7f195b3f8c6f162c3b0432905592037fe79cd664bdffa12", + "51cbfeee13a380be88d972b37511746081255c778dbb2a60936a9c6f81728f2e273a560b7c7c077dc6e48ef3fe0c71e38e7b34fac247c185c2c6704f4f754b80195953bf16773a7a3050a2f03c7c01f47e82aed4cc3f01eadeb6425a0b6fbf92923665b94bf2f957d7f5144d948f037cd13bc5b2bbe2d94a36823b279a5c9083a798f65370c20a4c05a00831cb8fbdd967f47e8159e48610429f5acec8", + "02b5911ae7ef47bbc8a913b94baf815aa2a41ecb481f434ad17faf4b83c7824287193672e1a2c58cf8924b2e7a32c27511cc59b30659623c8bd83c5c1e617bf9f0f43a453cecb1a4d19be302d6a286573830f6b7279397881d0373d2150317197da1f6b0163f80129a7729c09ef9db6a9ba12f6faad7fea694", + "4d983e46ece58f6ead1e12c0c75bb6040309e93c17ff66fce3c0c4ebfd2b0966586c14687f71a47e5c8f2672127263e556cd0fc49840ec71678448210eb3ac863ede047e1d0119f6e86fd3d2aed04fc57894c915068077675758f5e9e758b037e7dd9bf5d4b12595185c9c88164ad7cfb4dba87f6a9a6ea81b3818990fec84ad856d043dff9c0364c42fb194c1ec1a7e2e86ffa93eebcfcafa26dabe72" + }, + { /* i=8957 cDividendBits=1833 cDivisorBits=211 */ + "c1218b2b3dec0f684ed17437b2d85c95e58a240d51489a8bf27ab6fc80cc8cfe824f7fce0e9ed60b5104105f3940a30d24e6c9f6a76436037c05bade05bea568e49ff80375ca6f6d4d94f58326ac88eaf63f3e9cd5b291560942546580d0bcd170d93ef243169054e560e3fa03997d7826cbfe758da4f69f34e218f092d8a8d96178eda31891dc8b99e9ebacc7fc91a1c303dbce01ee4b657d0fb5b22cd30681ea5cf401584d7681da004a04d5edfd9916fb467c636564a821ef5acff24f628939e4a82f06029f365fe19993d62a49b3d18b959710b78e6b52e56535377820cf7da092860f", + "06e5df82e2d7f8f7d9ed129fa5b5b6e3091e7136609abcdab0d819", + "1bff9443f38dcc3850a02ffd1148bc58ec9ccfbb3015c51fbf5d654bba54cdaa0d039ac1df91874ee82253023a7e73af803c3d1f2515ae6fb5f8ba3ad53d755686f649bd8f4034eca41d686b65b1ccd3bc79f92bb80596db481ca2f1a1e0aa12e88300b417e4913f86b6823e925bc181af24eb190748302450e11aece7cf9a03a5352208131d8a3a5905cf171d17dfc308422fe9789169e90f015863b8a5603be416b710f12d53da254b3a7eda8eff78390e80890972b64765f2f4dd615e197baeaf0fe511cae8e2a1e340", + "04155c1f814be4d4b8c18b0023fb4ea607031cbb7e71b62b0554cf" + }, + { /* i=8958 cDividendBits=1768 cDivisorBits=1261 */ + "21cd828f11909a2762c3d23a36502f0d67887c10febdeb4d24bab9e629401c7febcd31b1611a13310cadf894996220dbca6bf4184ebd4e26dd19effdaf57b5726e451382393a148b978625f6f95e4ec03d1b51a63c4c83926ddd6403c2474116cd01a81b2ff84a78f9aa5ab8780441979b6f06d3f939810d4e7385a521ce558b414139c98ca609f9dfdf9ce9a63a6db4070601f2aff2cac28907bdeee0efe961159438230e9e062741010bb4c25d849425846188d4ef7eafbf47981632057e278ec76b9e3934dc9b7f9b7d5f77e892da00afad08cc69508219dbf943de", + "0e219f5d9cd1756724ce61a6acf980866e11d38f8bfdf5ddd5b727c568fcd524a28b4db661d5c57a211a9ae0704909cb5e6827e854d2e66f355e3892a388dee9d1881faeef293fb406948391f76307fb5925afec63f4cc94ac5fdb3232115d1306502869527b65441ea5ed0e2fba0b2e1c2ed3f02bc46e5c39c17d7b8ff0f9d6136b86cc0451c8a649b03c5b8c05278858e33560e509a912736e41884e1a", + "02645cf46becf7cc0a6ddebd8407d879455500c978bcba62b1ae6222107af1e8dc2e5c25aabd94cf44dd46655798f6bd0ac4c2bda34bc1097dc7493480b53c3e", + "0b122b58afab5804d35a3497e38de0a71407b4be50c9f3d3e52da7464c7cf0f6a938ec6f7b1b4c0e4c78838310b14141d5400db88ad58b3d425b2f442dd231e190d06bd52a8ef0ddb09e759fe6e568845d85a8c642d550aa28828a8fd9052b50ecfba38fe50c2eea0fb8ecf597adad1c347e0fc8d89f62d0c282c0395bddbe9037d0c84033f0376221c6c59cf23555e7a36b9c80cdfbcfe6f255d2464192" + }, + { /* i=8959 cDividendBits=3736 cDivisorBits=1418 */ + "a3502924981c10968137b3ee44d297e7f8435941d98bf31906975ceef724d30d319fab7d5ebcbaf91c40689b1aa919ac7b4872f8be17a55ae3317eedfa73645e6f24fec7a73e1343bb29bb32cc4144956732cebc4aac0ffb6f21f41a1a2d4691694a5c33be519e0f1a3cd0fe03cf55201a9058463d398db927ae6cc62439055124953cabce33ffe193e21e9372e8289750516d76abfe29e38c1c4cf920b7497360b58d6365a2c8e2e92c8a6c46570b18160f77bb966aaa6d7f8e0fb04bf1bd7ec7d014f7a422d97ff1c6687aec9c57ad9dbdf854570ef7700c0fe1f58c57fa10507f8358dac04a7aceafb8ec5acd707349a85f1de603bb44adcacbc661631db35db1a515d16380ae8948738323b3f68470857d9b49559e341000958c6f4a3faec745feae96b5ebc4fc8396544859b80fd459d2872e6b150aaf7e0ef72d52da72ecf694075bd1fd98f675b1a23aeb5b02df2918d95e0c75f8f6447b3ca2bad31bb40af73c9dd4ad39d76c603e33fdf984f1f6bc3ce566064e86d8cac1ddc62c6163561b339a22cdaa51bed34c8c5073bba511939fe4c5b69e4d44c8d4b1855fada9aad2616a20f355f82b4bf1c03c919630cc2871ed87f1def9f8cecb5cfcd3a699af6d1fd4d1bbb243902cd59c9d818eca8466", + "013495730e9c67be09dc68aa5c3d646b4f2006f87ebdb1bd4243916241896d74bfdd5ee69cc0adae92954ffb2b7114c7ffe1c3adeac7968abcaf6826a8536f2ecdec8cf8481221e7af6920f13d4bd70d05b206db33da6e85672face49b545a7f0f262a5acbf88eb19fb2d3cbd528252b4fef8cca70d067eea744d16be5f15d472d27a5cc9e8bc8cb583f48e2263f3297477e325c118613d4b7d4c96e82105ef9439b888edf44b062e519ad5c31fab98c82d2", + "877be6590bd91280617f4fd0890792ed2ab50fd99e7c63cbfe319cd706f4149000dd857d84ec76b6a766a0cc940acd2ac163e0c0a445a8883f21e7bded372aab8f6e401933e1f3f562dfa92a9ec21484707cac890c3ba5bfc26041d516fd6bfe9771b735dbf3cdb3fc239ec1de3db32ee2995b403c0fd7d82a304b275e0bf11adfca4ccfb6403184c08e43c4283b0a8680e2730c2c4ded784e40a0548431e7ccb44c2441b26973fd59b41c98203dd09ad42db6b3e2e150cefad585ab853f99845ef0906ec04c3027f96385ed8a96a9099dc9aeab7c1a20fc037109f47691af2966a5db8dfbf4330a3431fcedd401433d7b32d0abe4b425ecea75c01131871b5686e3383f4fe9c2e183c81733dd091d105c3c19885ef4be49a382ee848257dabd63cd", + "a71a6b945e1566ef2036a6ea728405069ca66a1daf0167fa364fe3be4ffcbaf921ec6d41f7d1b7ccc035e4d76e38f0b77539439e6b4012f27986f73c7570c2f6f8392a6e08d3fa002983298f3d8f7222197a2f0b89f067570f6c545cbdbcc5ffa9d4d20cf1fd247c2bb046d6f3d7bcbe5540127df0c8d7cf099a8d5fc270f5e902caf82c1e1c6b0e27903d2a646565e4637502120d1a530becd348011ae6b49803806f03ddbedcebccd9e0e47839a48c3c" + }, + { /* i=8960 cDividendBits=2168 cDivisorBits=1520 */ + "57cb01bebed979cc7fc415a9b62cd9b135947620a7ff98ab396086dbd7a4c0aefc7e415c9ec6f442b1560331b8a79bfc9313541edf3b2bd6dd2a8d613a4d53087cd2679a7b5252d574d5731531f589241962255e1d9253b6c8ceeaf61fd2169e01d40e747a2fa6aed77ded30e0e2b0131d240a33c15f053f0bfaba32c6037ac987119c61ca9ad588c48d8bfbf03a3ff1e053177c0db57974623430a0e5028ccc1f787dbb15aa558d4b07974122ebbdafff11866fe006ce5e8e5472a89d0a93d7474c39a26ef763fb1b92c1b5c20aae5ddd3c400488122cf4d0583380d1abb26d15b37f0bd477aa7ea5c4f45911d259ae0c9663a9c657970b395f984e6ca98c733919baaba6e2051e3a288ba9f9f8b5", + "a54d09bf4f553501ec3d4c423c411b7df3d7b2efbe27ed472a89073906a9ced837ae9ee8adf67732df912cf313d4ca1132515bd0992db607c2847d5a29bb56c2322b94f2be012767b8279712d8c558930b7f87edc7eb82633c8d5b671a21cbd5fa630bd5ace965adffe974f6987571323e2df0fc4c054d6cf2200b2bd556a278b0c4c398d3cf88b774ead626e69c491cb62160ccab36ce7e2c020c53209af72e30b5abe4a016a827484a1ee38e9cc813d5e7419c2fbb02adf844ad82a99b", + "87f6d510192b5d17d50bf310caadf159a3a6f7e4adb58f9636d1a9f37c9e9961dcb3b335d6a81d1ddb89e077364142d7626790c1c33ce05ff629e61abbf053fac3fadb823e50855e057fc8188088096d4d", + "2772a7914a936d365aa9c3529578ef4b352a5e51346a1dc75ef07674e0f3fd5db84d94f844eb9ec76d527daf45c5ccf35c9bce6e9feda35fe6bb1183ba28df2fee4c57b10e409eb983f3a7aa096d39b1e34b5c0bd71761a04b01f849177518b8449e243395c5a3d43d1da86961a1a218e690cf7d487e6c55eee07705604bf61d22644d19fcbe611bc8acfe8bed07ace1554e9d53bac1b07acd458b14629bb93d70bc6a50aa2b91a7adaeb3e11d91ba5d6413cf0135c49f4664d08902f616" + }, + { /* i=8961 cDividendBits=542 cDivisorBits=97 */ + "02b1467f1fbafd41d6c316c34869fd89c43ca547865b548af4f8a8529db04ea66fa277df42e225e7b13d2048af36a687e60dd075eb292c91f28ae07f840b71008af54bd9", + "63ad296fd21683e30f679428", + "06ea45f90291730b5ada68535ce720fd905e76316e2545624cf3e6b866f0c539e3525433c76c23e41c9e09c1db1743acdd9898a3c17caacb", + "1871a8fc19587162a0104021" + }, + { /* i=8962 cDividendBits=898 cDivisorBits=651 */ + "035d33a7029a004253982fae5a01d292348418e5399e3fc3b6a7a60a53c8d213f64ed50f46b32486915a5923ceac77bf0242dfe353275d788b3637ad4fed6e140c38eea78751c73e0cd9db348a2e2c99fd20547f2533b54b799997e58a7c8132e7a13668cb8fccd791ac785b040971c022", + "036963109cf4cb805dca0edbc7e99b8ec41a7911a4aadfd9c39eb44a6e2d921d7a93019dccb3853a7472d4b1c06d6c1661c1e1d387dcc59a9624251d29be1a809ce4e83a14457f8d853241af8a99f3f621d6", + "fc6da9d9f72b818e576aa6af3272e3c68d26819853ee6d99b5e9b0f8c62e24", + "0104d4f16149f4a850c9c612e148ec1c807d207800ff66a5608952efcd08c8b12cac0eea5ef9aacba679d35625ee061cf7c232966207854a671e6a769a70dc737aeeb07c743dd255dc68fd270942053c8a0a" + }, + { /* i=8963 cDividendBits=126 cDivisorBits=94 */ + "117f689f4c1159906f284bb21cbe5b5d", + "2ce828f7406ca508b8ba2ee8", + "63bfb3f3", + "28aa7ff0cfb0b833de1f9d25" + }, + { /* i=8964 cDividendBits=319 cDivisorBits=94 */ + "133355d64a9c79ce323616bd6b1ffda9b010d83eeaf5a1b4a69ecf297814af6a79757dff87ee82ca", + "3d77f824113f93f91b0ea06f", + "4ff7064aaee578c1105231363aad53e8fd81e7da822ce6865e99ecb9", + "0ace57e93f69ab48da1f3e93" + }, + { /* i=8965 cDividendBits=1083 cDivisorBits=828 */ + "03e6280074f6bc950d15d1eade4de02e83ed07c44516bf3771759e7c422790c7d2b0a51eaa7f1b9d568b4bc16cdb5c15d8cffe644ceb5abb31758ce482fb4163f1b30c11a050a7da71295f549e296a8e3e185de7d129f49dc5aedfb4c4f20a89cbc19eac6eb6c08109f37c692f664fd07e63b3513113268904548b15872d9589baa631c7e7b96c9a", + "0578a8378db72437d5ce4e6971eb986dff61e4792420ff6fc587a7a86c9a9b857c2fe3cb6a1137cabb07a21975208f6a2de7844049177f9009da99b42f4e221b8ce97d55bcbadc5214004143a83fb4a39f28f62c4683c6e13165e723e511ea400ed60226de6732a6", + "b66f332e2ba508c38b3e1f1668354124b1248bebe4582028c474c59afca71e0b", + "45cc6a23456e709e1ba1cff0e991918872b8b391a4eee5c681d2f24cf79a212e5865eddf4ef51235994bf9e1bc4cbaaf7aa0e6726c67af5d9d817c6ede9301f370a95fe9e00df69827add6335537fb89fe1e2df3d936128bcf5f0277c3035119a4ab02cf10cb78" + }, + { /* i=8966 cDividendBits=1655 cDivisorBits=1158 */ + "51c9f2ed590036697b8996fba62eca019514f843696cd102798004908dd9dcb0f1f0c0f3f010ced93e511b9eea96987a27650f126f5f4e618460c73ff4079d1db130c026ce6d56b529759b39f8fb3725f1c54c766cb3f8c692bc6f9a1e308b7cdd096078c2b030e8c671526b8d23dcf9f14ae6d2dad54ff4e9f1d04affb5a3b1bc1802208460adc71a443e65fa9ac13476a8bce91eeeb7db35142b0577f377cec0c29ca9ec0fdc15134e928e93bfb6b1060f376d618865e286f5883f6d67a62830f65a6380b44813c709d57edba487", + "1da1c8161ea92fbf1fe2e41ec459498ed9149418ea4b6821442420dfe223179a1c9f47ad80ba29f6694339a58e73517c7410c3cf09c47126788f710863e5935cacf9584feb324f09f1e6ca8f10c7e16953ec2ece2673948ae1bfba3557694f14dc8656d778825ef7e225308e3a70611929f1159fec340e6a4e2a1e49ebeb1a7dd2ae6617a7d248f5710dcebc73beb3f429", + "02c299a7eb35766a6c72b157d32bdd64a1d746a4bc1602cc377b8fdec058a0a42a9059a5d165817d888fc4b5ee7e8cc86c31337e5fbf19bcd634a97036aa58", + "12bdf80fbb4404a90d33c1f2259738243f51aafc07e23afa5656cd0f59f0839392124c678848715271e421005789b3c6d06562c97750fb507fddfb98ba423afd5ff326e82d018311294c120a3f479e7ed4ceab7bb54aa2caee78575373d09b92cddd740201abdae2936f367d1e2b1991e98b0bf92c49660caa18945a347356165431d629e51b07fa4eff0ded9000367c6f" + }, + { /* i=8967 cDividendBits=3597 cDivisorBits=1470 */ + "1a9179a4e13d23b5a5eedabcf3996d08371e16f4b578d9866f786e36232bd0f69f192cd163272f89b61774af227f163449b60c718b65ed8d43f728263d8cf08b5344804e47ecb2e6b740fa3863d29eb59ae06ea55e35a0e472404b1d273b84977d614b4c47c5ce8fce6f4ce0858d197eaf44809e93a5d8162d139cb4ab58368a7e1c1b7ae95983335c219a2fc73a3d03b1656895cb01187b45e699dda49ae9ad8f085e8ce2331507d7220256d96f1eaaaffbdf2e20b62d3d66423aea6e8b04437f4a07eaa1fd9ed92d65bca86bef6ad0b535e81fb48ecced15506a58571b048ff860463106ce2c14b12102d43484aebc49ff22d6a442b4e9160a022772371c75b6fbb8181fd9e1bb1d9dee313b9b8f1f444e881dbcb780cfe400768692bc23a27bd0fa2d8273933b48a2c838c3c4d1c4318d2c0706278fbb9e943fba265b420c336ca262596cab4b65628895088669af083651ffbce498d1d2763777e0a0745a4e4cf5c240132cc9b94c39cfa1338bc668b61813f96c24f2fe33f98d13cca3adafcc0f1618a259fdb37a9eb38e42cc4377a0dc921aee031cadc0767892b2333b864f9566d86591da98dc62d6ce2d4c4440e5e10cfc226b6c150395fd0a8d3448f813", + "0916cb92be329adb0ab0ea1410adaedc3820f7cd89ae3463302e03af4383c4591a096ef8312d41f8e5bb1e013aea99e28effd04aab918de3761b56086aef4e4db7b4a25e002ea885663d187edc09d8791f3f7ded0dc00cfdf6fd432aff9101eb780bacbbff2d393f60a2c8b435b317dcd650edbf02fc6577f0f1969e54cc6463dba51484a4ccd190c3d630ab241fcae7b99a377898f5ddc45fbb8b1c1b16c466e0e62bdceaf50194ee277922413c2c02160dfcd8bbf5d038", + "02ec50d904f5ee35535a34116c782ae7fac1299b6bb7dacf755c68c4c5c395db8904ee690758fa02c6cede41f400ce3f7ef7d4b06faec8dbdd00dc1cd4a85fc301d22d14b82794546ef4d1af962a21a142945b6d11e4d6c65949f7e9f11e4fb39065f3a00ec649c4b27fa24da6c222dd4486cd8f376886192b33531108cc4c48222c9fa4fa423451b8b3f6801abb59159190331f0c67ccffb0acde24fac6f7069ba834658733374b1a615440502eea707df83d3b8ba6d1ea0c84368fbaaec3e8d9d039a299ed5e92352b2ef9eb68877bf94e924430196e60582250f5939fe7c0b6a684b1197f86c2e4a87ef8e44cc3c4ead4bbcf51b8de927d388e4abfd55c875fc10aa5f54161d5591048", + "06fff8faec05b4ad3f9c4a4f53ff3d31df7df54d2dcb6170bfc6859a0d309c07534aff81c8d6618f236a5794dd6b5bdcc027e85af251ac1836410472fb9eada5b610ff1886a826845ee8211be91c2728d7674f84bbea20fa794b24e08e7e7f31fff820b0785aa45aad21cba96faf7ea0c1a60a4a06132b89c5885c099d179857806bcc587f96cdc7a6a0515730c753b3c5604bc13caaad75d24c042761ddbf4aba045bc2542cf6f537eca0d33b3ec35246e965ecfeaae853" + }, + { /* i=8968 cDividendBits=2420 cDivisorBits=459 */ + "0f279ff0af3f2ef39b9ac4029f6428848dc8652e7239c05db61490d0733e752f9a575e9554ca0eb5e72a5a55303761890f00d2efc3c48b3240b6bd9868bbe077189da7000c55f44af825195bb3ac343bda27af1dbd49ae1850a5148af124cbe42ad3bf90135d7c98db4e591115d2ef6ce375f60eca1840970cd531c58ed64d7704eeb4ccb6dd4fdcfa484814881322a12b80887272c9d59d86a2e7803f36ebc79c022f07d1416823c059ab30ae761792eefaf0f2190c04fbeec65c53958fc60b222cc897bb156955c0ca11e958c747a5c5deed95c75e0655e3584b4ca8a4ab4a1417615d1d94e074e5c1b10ffb9fead2e2c8543664383dd6c44b2ec81d4ac702dd3127787ba0f19b71b7929511e4666ca8c6deaeef8d25060609e887c0cc4cea521b4b5981d6418cd995ffe39e6afa", + "0204a4aab90ac9181a949d806862854b55d0d80d942d33bf7d455c62edb51058912274d75f29db389658f605d353e403b710365ae18735b2a2d3", + "078260f2643dfdd6b8710fa78afb61d6ca7584d5cf08d334a76ec46f2fb8de0f4a4a87908aa1523b7843fe7fb4a01e89c364cb96a00e873a40b10b385de2644276fcdb90a58949147452da939b6bad3478c0b5bd5be80a9bf0e84b3ce9b15f30a493cf51f819a4dcd713e5d18cd4d48a52fc8ea4d059c61ba64564436f876af4251097babb756f85869905112d710ee6aed432c88c9c601aee2f94c48a8e45d1c597d33697ffbe5ac63f58503a1085353425dbf88afbaa8b33f4245575b2fb3458d83391fabc5b67d0bc5bc998a28fbd1c265dd7022f496dc05d8632a1b32ea26559f2fc6939cc2a8d652da3f8dfbf7a539a7d2b0f0b", + "9d1b08d3cb92436abc1d33ae65d3a73154c9fb2cca1cfa18aa5c0081c83a530656355c3be6128f08e7a7716bf58e5fe5d3befe5e9abcf60ee9" + }, + { /* i=8969 cDividendBits=1037 cDivisorBits=958 */ + "0107f3eab729bd3a89c5d22b202b219145fd746267e727ada03c9dae8d8b5eac6ae1ba21d6da175d7f59d43920fbb77a81ef67d4694d2fa07f156025f2ef8a013e1ace334575e3f34890f79cfca31ecb082c71c0aaa2eda2cd71800344cdae9cc55032c49c8643fdb8d100f976a7de8597a831f75eb6fb4b27f92c308a4fc27f4e2d", + "23988a29dc8576815efc1eaa38f945cf088c345ce8b4e9cf837c18b9d569cddd05ca7a277a7fc47218218793acb8b2d63eaebcc6a9fdafc0c52aded42744e4a03c62df63554840ddd41deb22fc933f3157b231f0923ea0cc075ba70361d82fc8828e40ead0dcea54e46009cdf4b2c5a63589f07bc39fb094", + "076a4ef3b32589b451d5", + "11f6877d7849fa54bf48aad86ac4f70b78de523deecfc038b734a50a68f0ec7cbeb9070aff110fe47d0c9b205ab66ef78eeb4332532394c3967a85f774db5b158e5fccacf010241ac58522d61b961979049f32afcd5cb024227c6a2886c91c71eb381d6391723ced1e61bb325d5fd9b9059647451bb28f09" + }, + { /* i=8970 cDividendBits=1634 cDivisorBits=830 */ + "0253f6eab78db7306e774e19b19e8aedeabbf4ffb74d27eef1f88aabc39d50e17f4644389984c7abd88cbba6886160bdbecffa6c76caf6f7ee13ea69ef9128583d4aa1767c6469b35eeb58aeebbc3153c300eae9ff8ade1c9fddc04afa3e0bb0d983988ba73b47977098c919b397cd41122a1d645570f36502014aca4838b16c36af4a8e556eeda512b8b44ef5a4d652be60291713836405842404c4147ae91d1aa0ca564889b79ba01124d224401192b66fe2a991567020ed1ac5958f23092d51ca6bec772a09cfab9dbf2dc2", + "3ac40fd3ca370696bc3f65f4470cc7a2406818c21e0d57e0e90a26d42933f1ce843eadab4e40b24ccabeef6542b0934e11e190e87617bb5581e94f9bef47e579ecce72296874853559e8a3c59e9f5b51ebd644a541626971cf7d75f1aa8752f31dccde7880395aca", + "0a242ebb44e00ec9375621cdc75dfbf2aaf51c531f83e8fce0a7286d2fc819b1096f68ea0d7b757c35a6766e39cf16665e896d0022ac541623f03be7fd7c1be6965c027d510a584479de72cccbf248f4c2adbe16ff0237546e811bd4082ff995f4d3910494", + "0810720ce1fe4471e39ed8fdb4c9a2926e4d8e4780d23ee05b57ada8e64e6f966c9c276acc0f3c857397c44129f5c9008fe74c743cc547f2bf93873205bd1e3690726b13a7ed192ce053bd802c220a95591c7ee767cde8b8d83c7833b3d8e3cb6b334f27acc188fa" + }, + { /* i=8971 cDividendBits=656 cDivisorBits=428 */ + "86ed889046475f211bc6c22687d502ba11575bdaf26fbd34eb2509be20558b5c17245ccbc8f2bc287ce63933632c6b1969df652c9eeb894fba9f5be758401e333e0bc8f076edf94ea6fd7547e81b5f50a6b2", + "0dc7529946b803890e9a9f96d6f5dd445b5fec664307ceb9d3b4f2e046cd3990a550968b4f11012f076db8b0244884b4e8de882f86c0", + "09cae57c7716f1eb63ebba8a6ef77d48f0761c775e9cdb6381d998ae51", + "0a4297d4a81a67bd35517dc1d151609aa52afc92336c6f08cd6c1607c6a1e9d7ddf159f2010ca99f657cd0b424f754e2acf138b083f2" + }, + { /* i=8972 cDividendBits=3004 cDivisorBits=2455 */ + "06b35c9a70ba4636713449c7e546ea7606298087a021c1c180bbb0e78031d0b5e341e1eb7064d936b5c05f37c63b5750f7863fd89888053d69b5924c1213626fca1c41e01c343b29618f06b98fc6150a288f637f9db5596dbd66023816fb6255c4776964fb5f5a2b2fe0f8306303c8bdb232b293677ca31532df0e1ce744effa0c322aee2eb6ac9d6e1d363c9f473453e18bee8a1589d0ca385e2ae697253eff4b910c5ceceb11d9185865ab35684cfc734167492a90bbbe67bdcb3ce7828bccde49df1cacd177c29690a547d3386d2309a80ddc4f8d49a5dc414002ba4faa60e04c0d9b13b3ae43ffc54e76c7cebf03e12f5b873a9a3a1219629849fd8a14b7dd7b13124a08e85dd2ffe1f4ada6a47ceedfd43360e1f5c551c62620c71aa8632dc3065fd9c1c53bf14e69ce4e31f739282e4670f2f81a3e63bff0b6172dfce65723c437f7c8d6273c05ec8986384f1ed0262b81633fd899ef9728f166e6871151f09543fe8b1714291854c802d46b0629e9877e101dc53f", + "71bc4fc9bf47faffeae050ccf84d198f57495627fdf37f9715b984480fd911566cac5139b11a3f211f81a7aa004abacea6b53886f110578dbab33010e1de93b8bb7365851d44b0facd61c6b2c52d3a652316aca31b21013abf04eb1d7d48b006c10d63bde05c7563db71b846636ec74219fd14ba73292a382ce141df432ec61ed92b2d16856ae46e99d4c8df0e1ded85a7f5985df206478b77090b52382ca96160f136f185e2c0c763692e0251f479a8ebb4e1d8bcf31963222b7ab344a92ead007bbc57a8e1a19f9aa7c5a099b27818a3596f7176df8a5a64aaa5f5e0399532d7d935b0fdecb1bafe746d2b8fbfa565e48affc7c236c17b3fd6e48af4643338677490ad19bf9cfcbc3214c5be44a65626e33b99ab2aaa6485f5ea1b53cea1b8cf3ab32dd35e6a04a06bd524b2d72110574ed6", + "0f14fed4ce48c80040d4f0d520453a6db3506f575e6b77c940c15049f4903d9f5bbb75478ff33ef42d24cfa2b001a345c801f732cf41db904247e2655852e86b8e559b48af", + "55ef026df733f4749f4caa3b8567d990a5e4653e37584581c634d8feff73dafa9792d9e16700c32f010027fd414b77b320f440629ca1b5e2b7195106f2479810c2bc418b563d4e5bfa40f57fcd3575528030aed0172487f9e509c4913ee14fbf14e1b97649b050ff23bc07f263d39d2795cca30884166510a6edb67e38f01853725fb51e6c6647bf5889c90902f39cdfcc47251c482df4a92a62dabefc278d2407a38f657c972f851deaf750608844f5d66f7a3eb871bd6405f80291e0eb641ef5ec037d9a7ac4e10b48467faa79825f1c397d4b3822ec7b7a2aeedea4f053f8825680fd478d1b1bb5cef0e3e9d3b3f544d1ad99f4eb5daed98532c6211976798d3d541cc9e53b08185309b3494a603728f67394f79232afa33e4538f350c5355978f60b5b2099003fb42dff641c8d8cb0b0f5" + }, + { /* i=8973 cDividendBits=4023 cDivisorBits=1756 */ + "29745e732e9be51a8ed6a395af7c19dfd9a6e44106908a18baa31e7712ff6b80b3996a9d90ec6e77c81a29fdc7e0e2b1e9fb334755c61d908892049741114bc4d634d768f06b46d721dc837695e831cf1a2735eeef3b4f7dcc49cbf5eabe176e0703589b6aa2b399e0fbfc363eab07554ebc25feca56c876800a48c53e830ac7ce261f949015ac3f11e9d1756177c3dff919c9faaffda4a8d4231e4e230c50d8287abdaa122254252adc29ee0fb895ea463e77b0e83a4278aa35f52a31afb4be50e71de7acbb3e9cad38369bff608d0f7afe797ca1281f44232d3037bfedf42ad4529d90c34348c853590ce3c1f856181048284b6ec6d9d65abd37dc97f08f0660556e66bae63be31785f443042e7dd76019d835242c1170b16a88f3e8c94ab1389214b255c634b8cfeec8eee230011b00ead4885e460bbb75a7bcee64a9247a31b49358e6d320e987182b872379b3ba13128815416b0fcbc2275c7b128bfc14710cff920e272123254aea4fadfa2485df095b6f6e4cb2734119f820a37fc011a320033e53628fda0b522398a16eafddd7a8540854b9b74683980f8c4a0cfe2b727c49d8bb5feb3ceff6b90f5cedcafd1a86cde4e8feafd8abf09cfa23809b005a6c19ab39ae524407af1b1d23a95dde9db467b8fed24bd4c28e085e983c47134abc6fa58687253f14bbb608b49737febb23ef5a75b3fa", + "0aca0c50e535f9794d277905a22dd829e3a990dab7d4a213a26722012005f0572b3eddd16224e5a811af0d1d0ce067ef6292d1502f3770d9c1bc4e970617008fcd1b008d32a8a9e2ab5d8aea557509686a458af7e97761b2af8dad6d7a6a3f1004837616b25c1af3c3e4e06b5516b00291337f1234e74f34a848790cd4892786470bc15b375c09e8a9ff30417dd43600dfe64d8ab23b95c4f75432c19f004731a698c6868446206239a383be009ecdec99847706f0e14b777ff983bd471f49061e04d23b16b9e7a8f648adee56e9e05e0dd86e42622e645e51b0f4a9", + "03d79b1390d3defb965859bd6e4e8ea273fb5ad153578dabfcec0728ee40e72220cc5ad2152b8b05ea8ac8ec59a9301f653194ab1000a0d7a086808239fed04cfa36fa16ce5b0be8aa0696b5021be72c5ab8aa693af3f8bea3090b40386c4d05ada21bbbd976d2afb95fbeabad79f327f212dc3bd957d54a211967f0a68f7ec55d120d658fdd1a74c8810dd4e7e963c743dbcda40b267603bb7ed9e0b7cbc65247166e3c2ee4be6d984cdbab417fcbe6235d3d39fb58d838701228cfa932b4381a8a01c9ca73b64a0e8e608a93f2fc25ba421c62e1cfb30f4674b7ff9abb008fa8bbeef5d15ec2ec2a76d81c107d980f8ec9fc438caf43f20ff2cf311b76b766a9463db2100612c652998dbb98b2d0c6076786fa7caedecf98806030", + "071ea81e305f5dddf9d7c344800148e26f045d9448bae4999cf893c35041c6094c03edc4950a89066bd5cca0f7f0fb0572f2f92be9a2fb741bea2e206dd7c889bbbdc736774a66f8d05904da47eee92f069e88fa43a591ce8f817ef1262e9868271cfb70f436749b423bdb98b2508ef60080f84dc5d9b98f8f211e0207c29dcac57a39989ba6df8c90b9af8a06bfac010239b83eee5fb57d49ebaf4fef623c41dde212fcb51fd950d63261a0edc771615c916f20f8930b650256403c7ac698be569f26d1f1ee392baf95dd6db25d67c4bf31d03c579ca7380108744a" + }, + { /* i=8974 cDividendBits=2660 cDivisorBits=1023 */ + "07071187c753f88cc1c0da0996026867c21996ab844666d42b2167f6856354eca2de967ee7f86a8a1d5523b414d9fe07b1fd0b9d8852e49feead56b981a44da21e4c5863c1d9e3250520b77fb42852f73dd3b72c8c8d1f909151925b07b509593f7cf9df8f24b1d2dc642ba8102efb55058fd76a1dbde95b4849e6f3e9f63d22bc341f6138e717e6e90ddf0f42600673883bf864f79d81e56d030294a036c543b081f3fc5fad4009e8367ed5e7a3fe6f33d82e9e03a640483a7e1954f5a9b1d514c495db2e18cb35442b7ce5e4377c6b61112efa9816631a5d3528b39c1d8e89771ae23e12a271c819110b0c72f2b0a927d60f0c5630920607420d79d0c22aaed6c4351eea7cf1201121fff3b275279684c463fad79534cdc5fbd0df83e44242a35f8a79a61232d45e92011abadb43e1f03ca78eab61a977dd3ae7a0fae72fabebf8fc9551ed2eb740c0fd09bc", + "3c9b3d391ca1af7c1a4209b75f6d02c5497f76153a0854a149b1ce383131f4197500b688f4614311721e994d212c1ab45d6ea7837af84e15ffcf0fd73eed17738238d1622a35a861f43842edd6cbef3e464888040751b26d81249ef052a0cecbbcffcb7a3f35bb7ad9899e7277cc1d8d19bc3a55062ff48f510b2fbe2e1dc5ba", + "1daf38ea6cc71a140c701c75aa931a96376325d174d731982bf7511714e942c05895c71831a21df037d727025b92dafe82495f11c2271b026d4cf15c70c9cf67801d0113b21135767817a9915b5aefdda435834c029b565dda17f534ad81c72210bb5b0a2163eb41273da3bae803c47010a4b37c42e77c787270c11c71de7168a08b1128f17c560d310568404af9d6c25e4134d5507e18b4a075ba8252cb382e3e770cedce167589290acc3b4a89ea0e3497a2b5e4a0ceabe4d58fc096b8dcf9fbe4be15ddbf2de7d1bcd2f63f", + "028b02216e07ff80ba2531f113d857ca1cd891da89c36302cf61fbee3dfde246748c19f4e5df509b3f883067f464f0a1bcbd5bddea8ea135aa7689ac0fa328690c566445114e095c9840fdecdc49b4450cbd93ab2551d945db2c95791ab290e97b3295435a1a1d9e72eceb0127210c30afe268de4d1420bb5c4242a80114a4f6" + }, + { /* i=8975 cDividendBits=818 cDivisorBits=197 */ + "0161512e93ba76f63a8a6806101e46a95bdee0dad2bce9b264011a4499933cb9009539bb598893ee58dcd8c77b9eb7494023d049a55f2055b95bf52eb03a6bc6e49c4c2ccb2ec49fc5387b2e8a718e03c84bb9613a672695e6b0fadc5fce7ae7e8cda4d443701e", + "14f4a782305b8728c960b2e7868f7f3c0a8664503d17db28c7", + "10dc3684ec470317be31a8fef317636090a5ef31e20cb68445de40da1b918984e38064555d65f7834e954c438a466ab901b3e5ee5a5ba46ddeb943365f0687651a09f762f4def872d8b4d1a6f033", + "0e39608f32f99917987c9153f93a8c01158d7d92c8b555c079" + }, + { /* i=8976 cDividendBits=2504 cDivisorBits=1028 */ + "800bfd999c43748c4467c8b66e5696b08d427eed453021c6aff9a8cf04feff2f4278798eb09fec242491b4e4ecf0dec9f73bb20c148bbd85d9f2d47fb15ddf6cb4b2067ae248a0d6d22bb9125238201698e327e7b046036ddc851dbcb3042dd4e79c2ead533a755a61c21d0320e2eff66d0a8b07f2525edd7cd0254350340f06ceab42192af98dbcb08059c64fd8407042d0c8bd52715a3d92887d201098b86ba4622e3930fbb1f820564352fdcce19cf16c07af73c23c95c77c73ae1fd22d75a271c8061ac7feeb90c9b906e1b776f6035cf1d3bf9f51b09cfa06decc6e42cb99f7e2ee83a60a589b85b693c287bca15aca80c3a4e22b964ad83b6e233f37914447578ca4a133e1ba504bffc7dc29dfe388f38fadba6633f1933d480a12dd84e38bd8e84cfcd48cb7e6e0e8919195176ecfeda0677ff7fc1f", + "0c11ee0a6a39e0a1ee3610dad909c1b2eb95e630c5018ac96764107c6576a13e3d8fc1d449553547a1d3edeb167119b5969ab51ae98adf42103e78c08d69c4b6e9159139555b97eb73e7aa1653ceed137bc6ee3da984d4ca835d08f3506f66615d456e8f29bdd51712c472c118cea777835f3d5d6d653426cacf6df27638baf5e2", + "0a9bd09f0cf4b6abb0ef4e9d7fdeacc65b3e720759ac867252016f29cd2fcd96291d24e69610ec5cea3a0daaa69cc4b27219e1f8b2dddb6b9fa884c2f56bd256de2535a2d76e5736885deb9f1f4d251dc52271b7d9332ecaa19397b4abc7ccf28f72940b5bc6a960177012eac5ed0fab612801da0295a09595a5d1b695374a28c7e6e0a7260af41c56131711e6d1e2ac4023728267e763ff52181ac494bfc51502a37d48d725ced14c229d934e8e7613ede3a8c7d8f00d6218", + "0a3af651e1317488177998255ce96e60ac32b449b121084195152fd3f74f8cfb0586fe8fb036afbf95d9470009e3b85532ff365091a89f4634be8ffed643a8440eefd022a3c1bde86dc0a5676ae897a92f0b6917c47d503cfb189fe732efb6de7d17efb96bec0fb450f9766c3f39ebb650f93e73f57d7150532c6b56e83fd66aef" + }, + { /* i=8977 cDividendBits=3656 cDivisorBits=2445 */ + "2b46cb052f0b5b98fe864eeb0667f0bac2b72cd756e6db8b3aecc62783b7e005b92e2cd68e11570f347babb83e8fba626325a2716d08e18a53d5894e2da432af617dfb2e6146d55aaf240e70d9fdb86ec6c0855b255d501a15be693a0d4c7d56eb4c47da39ae0dcd4afd9469386255bf4dfc4d4ab492e4b5ee632a15387bbe395b1ec0172d8603d7c3c0a7b72a7194cb5d5abfc04a30a674587a9bc2c6e0482bbadbbdec8712476f85bc123eb0f37d6c36bfc02edc84958c7e9c646f255a3edf0cc0a04d381b722a5ecfeffd33e6b5d2622f058fa987a8c14292e3f15689714a0de15381654a443cac02f03d4f5c2d72cf3b3ac5e9938619c9b340cf191d25abf96135c00ed5b58d4a530d4f37505ec2e394a714da67db0471875e36a3d00cb4622968f7fe6c464adfa376080feb71fb7c750e360f80eb5b39266ce0343a4b187701e1060299d41c7f6380aea461fdb834532dbe53e22f7eccfff8d21067a651a929ea38c9aa847eade031ecf9d7ac96ae3c713f01a955c51e036d9a1774d6a0690bcd81e384cb7a274e8901e88ab373d51bb25393a6e9c5b1d416e61ecb12c1fe1dc9d2dc5fb1b018c98a3ecf1eb3128d29214b624d13286870e8f4fce17067090f03f5293568082b", + "06d560b56298ae7c413ce8e9c7696b87e7f9afe7d8cb508c786facdcd164af6cbc6b63fb75bbfd6fd3f19afddd682829f4627462aede3f4b0c6d9cb0ef517a0855d98de8beea0c0c4b56366220fd8abf245d9cc3caf0cb9bd5a554843ffb1e72d2e641ed30205b27ab78c6256fec2c5eb2bafe013aaa3876c477043875ff42bb24895893de64d3aa158d2d4ff496b7220db9034e3b50acd6d0e19480faaf4d0d504bb8ece6dfa10dfeb20035fe16385735858ced098783a06f12a28ddcbf3d004cd84654ad8655338093c03d94aa9bf78342fed8fcb1bbc9129feb9da8dbec1d6ec924326ce93d308f6c0cf34e8767fd078e05a03eec3f2560b2303586fdd3b20603b2d04cf4b50e4418e5649002e00bee0c0821b447e9a42a8837c252f9f0b23eed0c6d8b55e7fa2e1157c55d02a02b1271", + "06553ee0137d3c8ea689ba94c68405be3fed672c4d6c6c7d4679383730c60485220ac3238f781980ab04a9314821afa27b2b6c65036e48d5054210feb8a8b8a4cef68ce4deca09598b0b0eaf974bbe43cff71d252855c27e8feb1ab83177b0fd6d8f8f056cfa4f064d0fba8421dfd1e8072d6cfb8fc51d16f1277ba75771a2eb2f82689de4a18199726da92525ddf48089d545936102b23c", + "04b22fa9b8e8f47d35babb2c6cd00aad18cb7b76504e2accf4a56d56e184e04f1716799cd38693641fad4cc16bd5d658b446a527c60f7bc289ad96b60ccfe47777b846ddf6e492a02ae90e69a6be7f95692c8c24a3359d347da943a3db88d8f48cd8b894fd9b34d96c1c64ddf2e3b4fcf84aa576de75f7f8f9ef20aa579e15ecbed6b833f8a34a5a6c313e71ecc41cfc5582188e88ce186b77048ae0dd236728d599b86d4fee9a637b5349b384dfe36c3faf80f803242ea7a103c658bcf5c20c29c82ea487c1a7bfd178fafa6aad2fabf2e397398753b6febb5b84f2150516bdfcc35573fe9a74046e1dca540d02107e107897e5e04b8f6b3d62679f067a0df6dd5b802ba2f4d3316bc164a107e10b997fa5678a704be20ba0a139d21958f0c78b8a0c0c6b63d96ab94623a7b6f7c29b23af" + }, + { /* i=8978 cDividendBits=955 cDivisorBits=500 */ + "04661e8a5a7b43dc5f328d81588b8cecc84ee925eee75f6053e8373d3a767f3d312a89070941b16dac83d531f7dfb17c67aa066066181520e1e3f31b81a77163007916b657100f42f004bd429c2c7abe77ed38a01a92a21bee2bba2f8f21c3796c602439e6b6fc8e0e4e0c5319107d664b535dfd6062da73", + "28b353bacd4a735c56efe869481625c5cc1385e37c4af7740c8b9e3024e2d81075af5dd5267eb05a5181d533e20067c9d4ba7f2ae39733d80a7fdfb2ac49", + "1bab1ef9c1d4556dd48fa2efa530ab1ed8d96742bf089bdcf93510313311f8d4f5df1893ba0c020a441439a041ca27182e8096f89b90ea563c54", + "0b789b0fab766be51229675542ca289f62557777379605738f3bd27c4165767d76144dc440d93c5ce59fdb5a8bd72c3956455c7f7e8d8d0260097edb367f" + }, + { /* i=8979 cDividendBits=2945 cDivisorBits=1318 */ + "015190de544463a02c5f3f65e8037c50c005f0939b3c701d1784720ba37b687d162e6a7f5269bbe0cdea4ccd8076f8eb1e816dd449f3df03860794ec6920b48116ee54f2c83800d537668471c2788256efa2610b4434d5c57af22f9957a9ef066ce4e59c8a547b0b1ca569ca444fd7061975ea847fe30a8cd467be8de67782fdad3e9445c1dbe7b2792398d7d0421539693de7e23d7c9eb26c4fd4af4ce45c548dd8298297853e8aa045bc2959d6cc8ccec31c469b25108d7e48d2c66b09386b3874f66cd90d571953efc23be05baab254886c8136a221405ec511ec85b35cb2f9650a8003e3a19475defa08fa462de328c7d5c614b5c06b715380f7baea7c2d81e30a2092b86f67008da0faeb9ad0f5efc5c3cd9c000934217fe81881cc4bf920b1b387909c5b783b577011b49123fa1a4f90ce4aefaae738210fd714e19a94363beadd8ed5007938983e1eaf6d2f8ea62b6300a3daa47f3fb28a5ea789e9ad0ca8aec3bbe9645b7eae96f8b123d0419c", + "24001c27879b414984b5cc17307665b47f77d9c0d11afce42c34b1d284704c56ba029051c84acf501fd00de20daa7ca6723c0f271701eed260939a38b6eeb31ad21dc947df5cbb5f826c3c9c17537bfb1b0896c8faa6651fced7e05f7f69026e9a58e808fc5020daf918dacb8e5a56740d3c13f59b7234741d29986f94659ab09b5b1630072ce9a0244c28ac5e14c394d96f32857a4abb0f99f82859e48fd2aee9169c0a0f", + "0960709ed0495fd7772de130a3491529a979be55ec5922cf312c2867dd0f55e82fd623a6aa622a21a82cf923e24394543f1020e2109f7af459998240eb95f6152c36056fb9bbd6f0a6a7adbbbeaee5a41df90e5e44fc48f46afcaeab33d0d9384f99f41cb15fa838eab0b94bb077c4b73b964d77cc4543d4af03adfccb19028768f922c3a18f5dd9be5c1149b74bff9ec3189455390e71512051aadcd6794e02f7c6fa8d783c061978a2a8e621a3affa3a37f5b5a84b356ff3d257e90b5530d79760af3605da4c5bb088f8d8", + "20554d5d110252ce3a6def6207c7940d32461059c02a2e6d266f71d81bbc3559c51919bc939609fed8cad09f3ef0c08d75cc6f5e5531ce019f680e032a3d54a894768f0a3249f6957bc89046a77055d4cc00420ed69d25491ec2b763ba96c51334d86c76594c8f1bc38c853c551abdc3d850a350642d5ac18e037a41f294f538907d1d5bf4f5b210d4593e06d37b21301076327040603075be51cbca55d7c844fa3e713cf4" + }, + { /* i=8980 cDividendBits=2009 cDivisorBits=913 */ + "011af429e51eebadc154f20a71f01c7ae126bad9232e7dd9f80a7cc23746f5715f05c69a3f5cd307fca9801afc9704e17817a98e574123d071d6b4b94c58f2582e095ba137f65152b04a2790263fabb47b0e665422ca9b082553bdc548ed2d93b06a4b4bdac62d63e99e1ad852a48dbc1860b900180017ea40080b883b3671d755d80a366401859451e078715d99a7f9452af3b45a677f249508afed0a0df20bdeb144e8003214acbdea6ddee32ed1051547a22929fbc24e3989435e33a4b65aea3cdbeb74716d3bc9462656a9b360442606777b3a7097b520dd4e0f1978f5d8a8108f83011ff48d9a2df9c2f082e47bf05002a2056c82f5316e970d", + "5a7a3e5bfd8e47da14b9cd571f320bc463b45e55d28bbd1bd314d14c2f97fbeda750e9b506e00015882d5e189290c774982fc171938331a0edc7ef53dac574141ecda067cf102566f7e45f20fd2f93199dd8cd84d004886c24d0f4bd13524de12d279ab8525d22c2c79d4199443efdde4191", + "032099387b7a3ebb4b8b7071b6d776e3470d413b16049044ffb484ef5b41143e35e5eaf968c531e5833b7049d123b680ec5d23edefffdc296fe82163b8fe683822295c2c42b5853eb147cd3445206c895380da8753f0616d0a8032a35d7f5dcb4ff67cc099137648f03894fcad6ccd5abcca86d5124717b6e8c37c5c987b2aadc3fa3b0f6332b77a095b", + "5755e030413932db3cc6651e249397413c14ad9120ad135d104fcba86ce2af895a4392d553482206579ded085a19cd776f3395a509941e2209ab29d15da6d54167ed8b7bc7b52fc2e38ead3d552fc7a1b8532268d402e15963ef070f9d0060e361159496525547b76f62f7c94b883d052f82" + }, + { /* i=8981 cDividendBits=1874 cDivisorBits=840 */ + "02c89935254113e562d83a66c4bb27a43d6e38522ac0c62113cf21db8384e2075a8188b3e2ab3fde9191572910eab7ca5f9cf4c7bf0a76b5b8e79ca61ad7b6a7ed0dc82b7fcc8873ba04f28c462292b026f5c1e9818f184636cd225a49a8f98472be9500c8c6f3eb1a43b80bbb40b035a84defa04eaf0573a64dcda366583a2199893234d788365e3c3610e9208f59adc1b44d53867baba1155683ca2c761477e2fa680c0190b9f70c7cf80009955b6cb7dc221471ce278b129ea31515ce47121d3ec505e37e154daade3c7cf3112ad1c5f9c75eac7c9d6de16c471b932b0a8e40cd92404938d27bfd437f", + "53a82ea9bf885e7ac59bee98ca553b401aa602b8eec1612afeb8340ab3eff5568967f7bcde87a4f7629195c5beae5c92365c6ccd6154b6b8104f75503fbcf6aa2d17110a3e6550b508a23035348e06eb30cb3d60c5e9a81c692294038e065a7f6d169176119cd74032", + "0884a2477606a7fc0dc3e2ffa7ba2978a55f812adacfdc00c9b5e6290c959384999c3e0fd8215706db0fca6695d39c53b1f461a3bfaebfa1a8d2f23bea9030f742c24dec5de42faac939c35c682764eebfdcc1ee100b16b57ab6dc642ca48cb5f5b857543a25539578dc83284d3029a58d55ae6ab6a970f0d2883b938e0733b1a95a", + "261d39651b68141e74b6e80a2624a11fcbbe88c3f8c52caf24130bac487c3903aa9a321f8185d5c3bd94b1d0c7ac3766bbf8539d5dca21efee0f2deb9641e707ba4ffcc657efb7720e0fb4e66138331780e287559be8bdb5b7f607f3d0a1c79eca1393461be65dafeb" + }, + { /* i=8982 cDividendBits=3696 cDivisorBits=192 */ + "b85706b1bf8e21ab867d4a4ca6bf958033bf2d7e0329673eed48e5592635ac440c0bbba4cf7c82f55f9c57de67da86c075367484d9adcb54286f8ac7de1a5b54ce38878fd19a68e401a09186893243ea5a7f633f9f49641743cc4a9522e141ed1b653cb47a1d7f2d16b9d235f43b92245eea93933186901efa1f28c616142c4d69f503c1e9a844f0136a7af8a47a2c49745c3ee493eeee8d3fcc4e121c404c373646a21befff2a44d8e90751f5135d00511c0fcf776b199c115581d064d72f1a13338dbf92f071e2ceda61e4195585cbe3b00e06381b918fa2c33e3c65d9395f69b41494da4d3adccbe5ff367105ac7993062a9c97ef802bb634b1ef362d92e7ef0c66b509e19e446a6395f2418c305b08482ce48aa5f16be696057843f38528f93bda97b2553843b37eecd2a5f1bd0d52d5795ef888d2a9e3fe231825444ff5c241ec8b934e8a6883f89d22b2903994522c3fad2eb9a28efe6567a89f7e83a802821edd0177c246ceef47652b45c9e26d652db4ec4b497365b81da376a1e05d06646e0a554f2eeceb4bfdcfcb89f271f30da5b756910823b6fb69fec590ca9473b94e735d468ead39bc87677b086e1428316553b8cc3f40fed6d8b0d5100481cf2f024276f80b1521f8e73e818f", + "9bac51efe6d35f528dda4bae860de31b65da1d7e519cc34d", + "012f244acb0a563cf84bc3157913277dcd9d795048396d5240aa452e344e9619683d3a85ad6de987f11fe9548e903247b820a57d49b4dc5f27d2dcb9df2db1d21ebc6c626a866cd7c4df5baa4f183eb56c81ab02ad2348d4de7550c1dc6851326c18e8ae681cfbe92d2bd494e7288e3f2a6791a873541df0588834fd58c9f35c737abf710d9daa7474c931ab863a1ec2ece18d785e25f09f5f677046b04e079b913707346f2fe90e40e82bf6ff9e987d96f04cccdbb66db238ae7bd01952c52c6b4460791b88dbea164b867f39e81cd66b0267797bf701197f747a5e34d359c15b9116f8f4e78ffe3899418f3d8f13e88d5a69060630ceb060c39b7c1037012fbb0d7d4359d43575ba873ebe3ce0c5d1897a9b6b7e4e20262d74e5fe02e10e1e75faf8d12237ac0ac34ee5e39ab52cfff4e72d86700b5ec2e6a64f6782252abdebfe5c6b5040fc35a51c003f8efeeb18961009d762f759a2029bae3d9f84fe73cd0532b80e6c7db338ccdd6494ff6d97975e307f85c494b28d6875d4c7a48af5af805c4b7a33b5f735e39b56413c43082a7b93fe86197729f725cc51d4b0214718848238755d0091b534ed73097a9d742d84dd210874df", + "432e7ac8cd8d4eed2a19e0f048a979edc6af2468bfc97d7c" + }, + { /* i=8983 cDividendBits=459 cDivisorBits=290 */ + "014b343e439f87a39e9970dd4bf0b3028154731fb3d552ac2efb0fafd4837974b91bcbf9b07e56644d5d4259ca67079a39619eeee59a6ae94194", + "0167b8496c051cd9b0875c0ba22f98acd9d576e786ad638e137f51de593e0d596b6ea1053f", + "ebb4d0b91bcb098af5aeca863267ceb69841e5dab6", + "b09b35e7a526e6158e7afc9d68a4a626cac1b4440ad550cde01afa062413173df59ce0ca" + }, + { /* i=8984 cDividendBits=782 cDivisorBits=162 */ + "163f5f815636e9f922f7d6d4165b11111efaf404cc3a77c4cd9eb2bf73b0eeb510a998d2b10f062826ce629250d6529cd4e10b55383afe5361facda4d94e9d340181285eeb0cbc942f6e9854867654d4323c39e76d3823b3174040e8a05b21e30c51", + "9ed2150d1c2b4eb058e2d2d82c45d0d39981464b", + "23dc43d723b474179263a9bee39b0845bf5c309f3839c1d8ecdd15c84390bd7e63a14d067989fb30c53f4e4b6c6ba5b3288046f7bf4ccbfd3db8917ebcc5aa3be2b9d8624ba6221198d847100d58", + "60a561726dce3e338dc3c12dd8b6cef79b311389" + }, + { /* i=8985 cDividendBits=888 cDivisorBits=796 */ + "ddfd096b1aabc988b6d9df134a94aad40d2fbc54e7dd3909e3833d98c0499203ac3ffced8301450de5ad1ba53f3855e6cca42f191c30a0f04250cdd73ebf358c07e4f4b4609dc2835afafbabb88003381abe37e844e71c9a04b94ac893db67ab6f07e0c559918f1d0ebc03f3dd407b", + "027744f524c0de6938b7755146078c330ff56a75b4779e7c1c2eb13ca739fd86ffd976ea09fd16a20ef58f31f3e4f8053b09ce1148bf13655eb7c9a1d9461e4db3abe3aec7d752fc0e0f348e5c6ba0a44affb99b0056e6adc9de8da3ceede6b38d129367", + "5a05ffd86f6e7fcd9711f158", + "01f8b5f16ae852bbcf61679cf93710a8bc06e4802d8daaf77ec5d23f3bdfac8de78ccfc595e9dbd865072eb81605ee6e471aa815a980ad361381cc33df081f5cff5c7ea9700a610182cf63399a92bd3e49675286c58fe87c81c926009cb3f0d46ddf9e13" + }, + { /* i=8986 cDividendBits=3595 cDivisorBits=1277 */ + "05892323baa2c1534015d6dc3793500a42e91b86ba601559d3ae60acc222bbeb5d93a9524ae479c16865c57aa260da8ab75fd286d8ee4641ed5580e7db8704bed1886bbdf097b2bc371ce3134770bd3a5bff72a603e4a2e60e4211f18f42c56cb0b396f52a37f8e8aa626c22c6a849cf2a0afbf08efe506a74198f44a4d211cae10279d624b0addd08a629b3501c202cbe863ab034376c49a055ef46ec24bf675f4d830803087b0478763f7f9cf0a29623e6944e30b9a3ab06b045b57fe702db98de9964be890f579a9e418e841b53cf1c772d106120237155d6d889243a0779adf38b99d9231a0ef11a91c4d08b9e1eeef66727e95c88f2d02f6daed7128e5d4394fb34b751ffaf3282da0bb00ef2df119a1537ee862522a7a889252c54852b2b449317a9ba34771faf3bd00a4b8353f7fc2a04fba216a9281dcad86e3e7048e11776180a61a5119d71bfbb4b517989fec8c63225ae1ce6c00e9699c669a076d2e41c26e7d1dc090c0aec0e4e5d9cc2b135a5bcd838462a49c168b71bff55cfd4c4946305792bb3f50b501dcd415bfe52e170d86cb6a3430d251c0becf5c5bfee70ed04e163bb4b199cd6a4957b035a3d94690dda383648d493100a955e31f1315b", + "1da39e5d895542054d21b716a7202debc0cb118487537b4c50715d4b05b58896f49d8a78acfaf59b712c65c9b9aff929f870dc475d397ad972591de77982af2952aa03b772a50062f72a4af9be0ff31f668c0595e1c7d3d25e5b3d90b34492302d8a6c6f80fd7d1fb47f9bc7edbfb34b6747630bb9a9f31ea4ec135527961eaa45ab5d44701feb83550cea3140d0a81358bf717a3d52d35b5f85aa8c4dcacf0a", + "2fd0239fea7ff302ada09b784f736fc2a5f1cbbc0fc68bbed6abe863506e187262ffe277c7e9e4ae7760fc2c9f0cdf4680fd34815fc69fd1da50b092e7ac2669a0609ab1471a6dc8697372ddf7fc2be028fac83f3d1d2c1bac52ae936609fe46fa1266650bbed5b90ae83f43ce80577262d9415e290c2e29d68a40b8d5dd0c48c334a8de46e3960d0935b6f2e558b8dd4b143346f067124bafb4b2523f241c41a1d5307794a997cc11b13742738b2e31f03f517a5fef3ef3c7925291faf4ec55e4be8e43a7a934187a32b6b9f83019462fbdb2761f5907a127f3dd8eaa66fa2c8bd8d2d941167979a83aa10ff900c60a4efb75f294bf98a7c161aefae29e4eab9dc693846f068582413ef88e0a961444747237bf214bb43866c8aec9bf1370902c05", + "0908db6d5a0068bdd2258f265769f42b437c5e44f23a18c648deb7c37b5df5f2e27662775a8f1319a5aab26a6c0637c3ef704d20e815178e1125936b279b198b7814c96397319312ebe8ecc14672a82072754d62dcf0097d0910bff93912f58d57cfecef6db33a95445defc967a01e2d2a01aad6b75b88a8d4b192c7eec35f2dc91420ef92aaf4065238a8a2f6c1161eaa617ad6ecd3ca5876c9d2dafbc56e29" + }, + { /* i=8987 cDividendBits=1721 cDivisorBits=413 */ + "01ca24db26458cbabde5e52d168d16ac627b0d7da9a5cdc7de400934161394901f062514988edb14b78c2a3b0655cc45882dfe457055db5af40194071aebe7646db46af03eb4596eb3c98f46fc3dba8e271ec0f649a726f7aeff8550a31bb428a279bf735e6a0c8482cf237a3ccec88711f81d8e06914adfe95b851765efaf8294bf2292a64f83da837af700dc1208ca745f41a1d838e3bea3f5c5f2e52882f52db7757da63665bf9ea6616fed451a845ffdf93ca36aecdced0bca31009b23623db103a6b6134b304a54a519a69c3c5773271befe923207b", + "089caa476a48ba387497972446e18dbd459005a814fa63e3ae9336e2e719edb57cab41eea84e3dae1a8cfc8e5753f11a04dceb5a", + "3532d035fda745c73d7bbd522659b86a47c45605e010bb8fec2966a0b8bc187ba5fa6f40a2d9816d389a21ffb1fb158e68012af51c438d6fb977232f1e5793792af3aea8bf0dbcd98a35e31428e21db9527b5fe0ebf7aba0bd7dfd674f2b37f91fbf58bb0827695ad406c04534015a16e904d10572f64034a801599d04094d5b0f5e43333cd5746c46e21b93f8bc5583f41d3f0ebc822d7e8b02f2942f75957033d6c815", + "07c10b7cea3b13ae3187114de66a5bfcccd25512051f3546de607cd3abb90584767405fd3208fdb9769c0ad12e6b94113fe98219" + }, + { /* i=8988 cDividendBits=3557 cDivisorBits=3011 */ + "01e8a00a27901e1ff1f3739018aee7f5e4249692a04c67dc561d63f1cfb10313dcc7e87802df2e737451de0331c4321a945381886a29a7e1c0da7ed902a72dd4bd59be8679a1a2281dcdd08c70250829abf8000925210928fd263a0191fe738c992b7eb222eb946e377fee42748d8cd4dc8fe1cb6bdbb997cd73ebd3babc72dcc49259683e9426d66ee36b60853b046ef55dcaca377545fa868fc93df4bd814ec71819f43cad82e1afce12abdee6342dbdd584ce4a65a379c777a8c3419167fb2f028ceb173758f038372ea795c3049bde4713a3abffb4aaf643334cc83384c39ab1a499a534bf46240f51aef46f4fc38fd505765883494bd0d7e0c04b6f605e6981ee3534bb1c8757d8860e22ca4f698c31b1cdc92dd383adb75d4c3ad7fb45d81734578a0e6d4a2c6f184a79f20b265bf5c397441ef0c35a4a2d7de10b436f3e464b6d6f366af809b46c6447fa56e80a5e5e7bc540171a8f5aa4c40c092e5c8aea9893f9a495f8f450fe8d0e82a41b9a8f1b5a10c2cdbfef8e0be326fe018874f009f23f2d674e4c7d5ba1761142a81dc807641da509e3b23b60bda65b166cf31af4f46c23882f3304fc4104b9b5eb80af954d0bf996d4b011431e7e", + "04f0eb3902bdf65f51089e09e230d0d7f909991729b3a6e632e0bb672d51f0ea6fcd59c44ec3c16b92a9377af5161eafde42c022e46755896619603487382c3afe106caccfb6f0b7b9b96eda52953910cd32aca1521b5c3efd319ef17aaf33b6fdcc53036c96da9b8092738e9a239db59e3d1967b30754f5f4c1bc56c5248bc7d95f613db89940cfe187bc436eb5a23af03b1903a83bd0c2b85fbeb9925407a905b4f85f5ff9c2dc7e5a28561f9a3d6dd28e5fa70346c507c6b41bd4b59dec58238695c141de03e21d2ce019eaa24602d0fdbf067304077b7aeeba0dd65a29998588a21e3f34335b15db8279338b8d810b26c0245a62bebb0519357bbc90531f85dd1a7ea27747263267841fcbde422daabc5ed443bf10ec24bf5599d0508c5a3525fed09abd434dd2d647c91596911f857336bb6fd3fc9bd530d291660c117df0223e335e53f32a685d1ed9e74ad334fddeef2034d80c9e79248a5dee843455f1b66b97c01e78786bb4e43ac5e8b9e43e5e5a8f230159fa97", + "62e3e2374ff652fe3853c6466b96f1e40eecfd2ddb2b6252e4cdad8e5b83cdc2e7dfb0be36836b3a9755a9c8d34b6fcc823cc2bcdf424cb4fa84295ac108bd8b27959379", + "04a956cac80712006c7a38d954430c02e020dd7eb639a076778cfeb942b14056050d757d765f07e05b81fec02ae4c61ef9b7a5898aa1d521ebe32d802182e1065e520c314c90a57ea6b3373bab8eeb0c44228b40d3ea0892c6175e8069cf4bdd1577b337456c737c2fb9290de6c44d46469cb6453bcb68138a00d35c5ba12a1fff70861f2a4354ff3b602ff0dd54f098e9438010ce895ba1a40dee40f0185ee580064e2ec14c71262fce79b4a0a79287380c81c02b1d6757529feba94d6049b3d3597f26cb572d57b92f0c388565ba8eaa49e1aa079cd4a246186e7ee08484a6f73b65849275098ddaa9e5932408bc9fee1a58fb3354b9144b8ebf395da61a2d47339c3adf5e8711b72e651cd4e0f323205170ecb03b8638b8d2dc907df5bc17f03e1aa62b7ecb5591f402377e81f105fd7f29e6b9d51618ddbec4411223eed1a49abc6195f5bbeed203d1aceee271462b551a03a01ea28060ef300304f7fefada2bdb8411c9c074629733024916662c0ce66f09d4e7f3f81f" + }, + { /* i=8989 cDividendBits=1080 cDivisorBits=863 */ + "3e6783f6652aaabaf80c9b41d2d36e92ca72f2a0b327bfd4b3597a87ef86e34cb7fb3e83f3fb8541966dda8ddec8be13c82b732a116748aaff51da6650a9610b0169b07d931235c99f4a52f9b54ab76cf6029a997179f6af5b24aff4f0634c680fd564310b7a47927e944bcc77257030d2fe382b9d3d852ad38ea7f7b8e7737765199375c9190d", + "1aff0ce06d2aa0a8e4bb4447fe1ee024629a8fdfe26be7705f47e5a84f0653a2d09df2a180665322ca7f798b369d90f6e830615b3d959e7664919998eda7caea356fe18043325c5d4c4b11a84938c5d750df050440175553483492b856d4abf2c1192b2900e9fb3119a373ec", + "024fc45e79264ef0faeb63ba2b5b124cb848358a9611e739186c405a", + "0747f75a521145ca55f2db0e753b3c5acaff247f777c217d265fe944ca9baea678b3fdd4132601a5f8d7c910196367dbf6df3f274e0e7318fc5a985a8c77c7b38f5d05cca1796a408d622cee53c2819e9aa5828a78c97f0eacf6d4d8c0cf8d92102c197be58d9c888dc75815" + }, + { /* i=8990 cDividendBits=1004 cDivisorBits=528 */ + "0c4d010bb0cf2721c7cce65fb89b07f47f183d84aac758975978397e30cb05bd7e4ba80e68f6362bcf0a1131ba5c7caf5482106b891fba32d46a8fcce63a399418d983a6e506ca5648e0a90f6bac33514bca8394549cd2182aea7fbf6168226749096ef710293066c13cb1d83e9f4928386bc75cf7430defd2eea7b1f15c", + "776351062411299bae48cfca21b6946a7d3c145fcd73f1cc419e13fe0c1b720cb21604133afec89f47870d99c360d426c7aef92f48f784c053b247ebb5452f1644f6", + "1a6050910d71b5c3b983761c6658ec8dd5fb59be5c34279c585d7a7e596ef5b0b779dd17151f1995be0ce2de4cf185a49b87f9ec42e46416fdaec95d", + "68139fe88c012afac86f4bc833f0ceff8fdacdfd0e7061f6400005f4dca90360368140775417bb25ed608ccc09d44b444340a66eb7168d5f9ff0b17a9e661341bdfe" + }, + { /* i=8991 cDividendBits=2187 cDivisorBits=133 */ + "07da9a5d04d27d51ac75908268acd4974a5f62b721d41ea1c1d56c4aed0be12708c06971d85710f87854e1fcf5cdee79965b680d5d028d1b4327576de94597ed61abce078830065cfc431cae93199ee33db9d74df6376bb1305c902da40792ccdde2d0b8642508e84bc5c7269dc9690c8438d2570c1937a735e9e295a7afbb4993a6a6e1b121b8c9c666afccd17ebe2527bc82febfa62f6d789335ab67b0bc514207171734997f1da0ae81b5de7af287998fbcf0859f2fdef37708667ef81f8461b9d0c318da724428c288b7314f49e1e64833b5bae38492bc36077b03b06ffd9fe11cfd1c0bb54ffddbfdf7d9287c468d460d7ed7e0fc1bbafb82e92aaf165aa5327d21c916d755d494564ced57d36b26be", + "027ac799c1013453e61dece08ab4a40bf8", + "032adae953b3548c5608fca5a87f6e8538475feebdca55bd9e0e96b9cdcebececa5860275a48c89884c1ce1f3ce214b3fadb9c9b94866b5c3cf1fc40acd19d9b9609eee162ea97d7ebb33b7e4c5b232e7902fefcdaf037bd0dcb0275605af33bcdfe722c5ea9affac6f06fa139ae2d5f2ba2e94624a04612d3521117fdc8025fbb7f9083c6e02152880ab40633cdbc1c9f172b60c3c285bdfa2fbf0dd371e6ed4973cfbc7cf97700f6ba34486536cf3fe90d265ce4f58a8f482e4cb65b761c3cad3b6ec963c6283eaa4e5082281443707b6617516052fd2187840798d3a223ea1aa5ca704f2bd9d4a791b1013b19f22f37d95ee2af5d26d8c1fbc787f15e959a300b", + "c50414a9a776b1eff92842ccc2f02316" + }, + { /* i=8992 cDividendBits=2676 cDivisorBits=69 */ + "022c5f524be8960c8e03f5b74f7a4fa1bbc0c7d940561220b292ef5e9e7b63ddff58640115d946ffa6774ed21f11d69c6723b79f6074e87d2c29983adcb977ee9af1c512dcdca47555e8cff7b2bc8b0d9c2f1e145dec078c8b137c4d6c44bb1bd136bddd330be6f63d2b348e7ee065bfc58d9a93e14ba34e6720638f53ac0e80bc84a3a180a44d2ba381dcc4e7b5bd694bc7db3b376fdaeaceb65df8b213d927531c045d1c2efabf312747aea6f5e7c4ba74ae3aa5c6562ed4efc40daddfb96aa2a707e1fc7526fef41cab02c7d18369a0ab3f7939ad3111b997c31b61b1331b542b1ea0634a2e8ad3eb77b5dab4b8728bef44a148bd8a15471ea586e5f817bb15ef74aa464531bada3582e94af572cef7e726d6b91aa4296bd8f087148d7583cac7baf12e2ad0ff7fc858c213a2075e7739ee8a9ee58ccb6e431fac269c41b22ec8fca16739d9d0a8b2997ca64556", + "173338af5f5838daa2", + "17fb424a8f2bc584021afad857126d130735e66f2d430b685f6670102ed4f8f030e9d379ecf453affee96c2a37e89e2641ad2510237950812d3c533e3b3eac41c5644140f1b0d484b7f42f2f239d3d78df803ba825306dfe4279d50bbeb80c218ed04188335447a68e4461021102049da9caa714cc840bc3142f9fe57432a0e9c68293b7d9d165452485b9130f7992a82511e60578a0458a8d170e6cb78ca1c4e788da57755934f17b073391d613cf6c4f43c75ea2ae7ac297f487d649fd44e63092ccd0a71e6f9a1534e743c45f3425c206dbf9481eca33e73f8023cc84f80b704cd20643836be14d879651d7aff2859551fe29be0ab716f92236d4edfb2d05010ffca767337cf089a279a87fa4b0e02841def555f7f79a414f7aad15595f1ddae38c569912a4cdf942ad037f0bcddf4d1d744a5534e11f0d424ee765aa8a4725cc62855a24", + "1096e447d97da0928e" + }, + { /* i=8993 cDividendBits=302 cDivisorBits=111 */ + "2a11cb8290500bbdddb6348d421f3b84be46d0e7fa07d5583357bc042ee1ba1e4a9a4be953ed", + "6391b916ae25401822074fa932aa", + "6c29f47a060d5fa97a345786b947efb741cb33c6bb53cae9", + "24a0ad330ca450fb13bdadd21333" + }, + { /* i=8994 cDividendBits=2150 cDivisorBits=1911 */ + "0b1d42b1944c47635d2378e28efc3c2a649390ebddf280b440bbb3fd359546c66705da3b265446ee399a36ba709cd12c7b942ae2ca3be0a48e6be5c7c96b9657142e2bb74b3691c00e47226d7b742a88ef764778fdb90279cf7528f5abd8f4ba1dff74bc9548e1e8fc4e9748d77e8c06234a45363b12821c188968b9cdc3df251443486134fff0df8a2308ec1c633fa18fc4f844a93c9ab88ba97cd0d180041506c454c6debec2231110de1871237d6093a298d614e723593a98f0f857040def3ee08a302e728fd099a44014dce3d2d33df1d5919f0f6f3f776076cc11fed5f24a60c2ab8f2ca2dcdb7de765bd7b1c137250c866a72d77ecb6d5ff6eb22d2f570068b046a557549a54adb96b22", + "02fa6869d2b7de7f6f237c5bedfd333d65fcbe0afd050f122cc2054e8e21aaba24096cc7343b43358f58c326ba3ca5bbb2edc846fe1ba01aa4e55a7537c181cb7de437d51bdba47edd548f313344567ed462be9538735220d12d560153b9ce5c7ea149d76338f687cc176ac2ec72e3b290963274648dbeb2e7af21d0be1f2f53cbc539f70fc2620b38d9177c6acf25b7dff7cca16b21f731c75573d1d41e446db2a88de1ad64a70ee76606d19cf37dab4562b5016143b144919c93a019b7275d59637474973270ce204b3dfa895837bba5c5d73a4872aa06e7a2969440d66e0c391213cccf145093d9116260b6ea04", + "03bb606e04ed23c7735c55998e904b00d17ab00c9abf65dc8304e57b121558", + "015899dc79c0fa89ace1cd5a08b0279cf185371dd0b629a98886dcca299f243fb2c6832da0392132ccae0dd1105ba0b96e2d15cb419be526d153d23deb2f31a4871a81b408fd36e88c9a9de85fa1ccf2948ca6b15d96902333588850bb22f08f41117401572b2c59f2b8f24e477160172938674613bcd41238af3f85dc747fa67867a1b1f7cddfc0b92f4cee837a158c002d5046b8b5594cab86bc463d3f7247102cbb6a39263159f337cc98bfe4e80a2b18ef79e333f697ad89000f1504ea27680583e1b93333c7df57630cb4611da27b3b1094139a28dfccd9bf8180521b5b932bf13310e967a99379b40d5ea5c2" + }, + { /* i=8995 cDividendBits=3278 cDivisorBits=2291 */ + "1a6be41517b6b78c1decd2877e4601cc25484ec2f7ce27f646bca8dc9970d69ca114afb3bf720ae619151894ef9e659a696c81568b39049edad3cfa663f1bb662a30ed25fe649453a11e1add3b32e3091d17be6d9f30e7ae92492e8aed314e4859d37d464ea27954a93b2af54c11d30e1b682b190b744577a5de339d0d953252a5350cf8bdbb3f1fa796703b28e8bb27b2f2905bc69a4093a4ec818fe5d8957038fc217ddf66662ba9a274fa929587ae76ee5ecf64f0fe29f6acf3f7e0eea4830e38c6ad84cf354fc3a6314597b3cb9343decfb72ae97cd1957d3005299868bc9b2e00c722343b0beeee3ebbae4fe333c0e9e02ab21fc4c97e174ef0aef574e824e7312c269f126cc4738ea7547c5d4eaf947ffcbb224015e439e082951e32d201605b34c8051bda2b1060d1a13dfba586c67de2c6ddccb10c48d417563f5fd7d2ae685b7b45d316aa6a7ac815155650dce235ae9fc3818537a4dec2731da6e23914ef55f783a976cee386827a14460429ec3263620b94367aed117a673469199c574ab88e60f6580f0c5b91f402cb160509ad2e4da7156a1f6b", + "074585d7e8f00d1f531e71d37bafe5a8989fdcae0bcba58bb85677cb34a957cae60a69aaa575035e9f60495f2ac202040e08bd360ce5b6e35ac48dcfb8cac9fcc3c8ee16c0bd1c205f48679a9445246351007f95fabdd510bc47f79e9eeb22d7e50f7497cf19edc7868f0a7e8883eb65a70a36b55fcb9975aa57371ed6ccf2950178197c17e20d9ebd1b55098f9c139df0f5108935d91557c77723e17c56685523057ccb17b611639b0f35170a659e40779b6f0d7b21506b61b9724ab88822c97ce9dbd9fcd383877a87b0ee6c0cfd2e6da86fff92faf997ec3874240d47d68aeae451e3576b23bc593ab61e2503b00dc59c741630c97390cffbabb414418eb9f64f6d4f6eeca88e52700b7b2b7f91cff14d45aa4c83ca0a1c4a27c91c9fc0", + "03a22ebcc61660b3fbddf43ded4ed66af8b8ec3ae7206cde1669a60ca505aaa32b0560db45438cd1821ed05e01d4ab48bf2754e0eb9516a45ba2c3816c0e29ed451606fb14445b739ab3e64c3821d18d3a6a9da66030865ac1d9851dfb4e03de227c68ddd55dba11508049cb631a3e9b1f917fa8be9d5a4bf6f87f6c", + "05f49f80ef502467c4081659ea6893f54fa9cf9e0af28cb6779a2a3a1fca16eb628bd6f2f3774e9aad0038c9e0d28b674e2e666743e984d09b09bc1de9fc805f05f64f39d284d7f2eab2c5f8a95105ed76aaf15051a3996239739f6edc0505ccf47fc08481edaaf18e68dc28f0b9c689aae06b2dd59430acd85f8af64a1975f6d45387342b63f9fca22b6a8e27d13dcc1c29695b191bbb8f91285da8fbe375ed11aaefe426986cf1da16c7ba2e78c5c5cbe8e6044ff16590f9b67fff92d3a1a388261ab619d3c0eab6ced4329528a17c7ab5c73e38466ce0593390f2e6048ae0e0470207542308ee214eeaf479b9609882d0eeb140e8e4ab5cb54e89ee1b5240e1af4dfbea25cae10bc5d6a43ee600e461738d582dd4a4da5ca59bc8167a6b" + }, + { /* i=8996 cDividendBits=1 cDivisorBits=1 */ + "00", + "01", + "00", + "00" + }, + { /* i=8997 cDividendBits=3110 cDivisorBits=331 */ + "1597a78c5b07f6a5db7f6e98716e4355a8426aa6d784f4fe38c840e470ad2ebdb011b618da765b7684f19d222c11ffb71def21ca254478a638d080cd9a0dbbee94f8591d96d18e38c58a8f9acfe2b63ef907061688d8838da94e839d4041a0a444cffe98ea76942deefb3a7e6ac3afff2ec7978dfd1b48c9af1a1075d5f6bfe93e1f4035f578968a350cc9d2219df28201de30b25013c2ce9ecb7473b069c5f530c211f4718b0695e1509a10ae1633a7bf5eceff9e2653e7627c30d1fb1042d21272f5398cf6f27ce1a9e9a173fc78dc4e23a7e92892025b005245b24b6f0b320adedd05e0b329b0e06a317ee4c866115340149fbb27ae7af1a3277cc2a36a64b96cd7760a2f5d7f45b2dcd9bd800f4edcf4f9a3430b35f982f2f9ab58079cbbc21c8090c63a9f84628d260d03005b6fa4275f076f5e4f700ec3f0ab45f543d7feb4533b20d86be163c1b2dfe187acd6cb0903b611d0bcaf4d39a11163fc27814f103f00ccbf5e7efa1adac367f58c13501e0033059d4c2d1c9cab18e39eaaa68d038b2eb6", + "0780b2d337d9e53bd2b5790aec9708a337bf166349fbb6ca3ab6c28c6f922db5d0b182cc898ec896dc37", + "02e0c0a7453a106f1f145c4fff08dbce2d1ad5f3bb49a586a06d8285ae2db91e4434729fb22e180d5a9bc92a89ad585b19a9831dc1e0c6cc99e6fa1c5ededc3e09a57e9d14562dfd369e9e7e36e7d3232b56a764799995cba793b5afe6f21d49d6212a921838d5d5304a37f5e96a00fb8a0a01e8c2ecc149d1ebeae4d3894a2de1b923652b3c7d35e7907cc1597c9ef9791a9c3045d15bdcf2fd53bd716841bd79808498f605b0507d653af46b0fe004b4c4f357d266efda0df2658070b26f428440c5aa3e8e70f4cb84e5e9cb5d4ccf71b912af6845d48e42f3908c1ec245fc68395ff1df6d0c728cdf816ce4f2ce6c973df326bdbe329ca275a3b8ac95320bb745f2ee9120cdb684b4553316fc735b222f7f1b1f7a11998fca0d8459d4ca3e2e6c2a0c97943798f890fe5c6318c28f52aef7cec5957913145778de6492fec76d4a667c33b86ec58ed0687cafbcdc378f492cc514c5aa71c855f63f", + "033682c644efbbdfda29000fe7a319a83c778f6c1ccda52dc1f04fc3f53f4c7457492de0673f988b232d" + }, + { /* i=8998 cDividendBits=4031 cDivisorBits=483 */ + "6157b371e5d02067831835c4eaf9f96b8fe700e6d40f413762f33ab7106056c87890c729cca909dfbef8df256654de2845efd415a1de00c7205d3a8e2baaf7b66857a2df50a586df8656facbe96d517ac3b1b974dd6519e8ab2d104b4f6da6a93295a40cd7938d78bf4273bf557d7a3e6836cf1001d83d4f8c143f963da976a679461910540d86bcb912bc2c0138e751c57f22b4a4673c90141b72036862d00de04af98a7f1832138d3c127410ff4870b2735474f5032506510c1da75271dcd6d716add077aa62b42ee5c7a836c2cf9c0b8d2e259bc3d876f5164bb4156cda3b42cae07d36f9e2e8cc0f670e7a35c3276adbcbe46c85ed31b3fd227b4ea84c61a34d45bb9d171f022505aef088a6b0a6df696fdb95160ce668bf44bc42bbe1359c41bab31c5bfab428eb822f670e49f97e087a91312a6c708b19fe59eda18783ea7138c4a1454be20ee2a4bd901f0718a19292295e5229129588ed0141fbd2271a21118c822e6e9107967454308fad4f3af3189020fa02635bb257c653983f3336c324922ee736091484d9b3be95768f450ef8341026eaea9f606ca0758e83647fdbd16ff5133512085c69c71a69bb849a8998f3558ad6da6b578779b63059534c332f1e47dfcaab63a17e166995b90c4b23f3038a1ed72d9a3c2fc8379999566a7c11d0fe6a206efb78e16dc04c9f2d77cfada62f16bbe9", + "041dad54bf4aa1df53366189b21c3aa611c646f6d47a206bcf1c9344b8d25b4c3eb3c2214318c5f443e0c3fc4d5b6b90734a57a6e91470a42b5747f0bf", + "17a675364fa2a2cd182e550259366799bcd257a7ef6038e0683d43bb243285da803d078595387bd797e2092f21cdcba6a205fc8d3f5cc69049cb6a22cc8fc32a550a142a1c5ad234802f2beda79217b8df36f4cfeecd8c1576d90e3286e1e2e5a8ab41ca49c19131f521da81950a6fc2a6310ba579b1cc487639cc897923bc1d0cf792bb8b63254fde7d8f7b23d3b38d993395dd39ae2933cdc0190f90389e45b476e904605a0a0c7956af8ce3ba34de1089ef3fc331487d9578f6f649a63a0d08ceeb720e339c26dfcf9e80c91160296e4639acbc88cffcecc48b9e60c8688cc82c823687e23cd39671a48cb83862e48a89455ea02233e1be752417b11fd255d0d63253e83e7f4cd396cd57837c474645284077ec72fd64052cc98ebd63816af4a076bd1f6fe59a1c8455c71e128b5935783633bc09b3487477790f3471a5e65e4f168e4dc0939d41c5f96585a45114f1bd3ef1a863b5ac54f9bdd2abc0888cc80b076e9321ffce5feef40fe5b01addb01b7b7fae63f79543d2fb29b5a6a9f783630d9f72cd3d96568939c9c823180b305d55b36ba7ea57712c7cbf4c0a460ed87cba9c33956fe5ba9aef181ca6675215493fcf18c33da557573698", + "01b70e605b1a9a600addadafe7671964bdad37fd3fb2417e4ab6693252ec0b368bad02c76d41b6c7f45ea8322a6e355486761816dc5db0452275ae8081" + }, + { /* i=8999 cDividendBits=462 cDivisorBits=63 */ + "273f477ef9219c409d8f9d4a5127e67399449330412eef03a9cdd76adca8d3f2c4a432855fcfd7530da333a7887b9790da35b41ce144b4482597", + "0e52f06d10fabacb", + "02bd6e3e9f7da9e8c5eee56165e3d994f366c340aa139549b02f7bfa3c37ac7eea9e3a5b9023a534fb07cf3b056e7febb06b12", + "069ba8f2f2042a51" + }, + { /* i=9000 cDividendBits=3485 cDivisorBits=1827 */ + "10d3504aec2e732e2e6021b3c7e0c0203da971ebda083a111aca410106c7920db75b90449c384ce432704884390902deaa713f96d83a31a09e44ab9b1716f0f101e40a6f63dd2f81d5d2c49143950d294a91b8151b6a2c76a18a1f279a7622115c66cf5cb0264417ee10707820e6c5cec7d173eafbdd285ab9a0c9d00062d5f31486980f342da2957634e845fd62630ff75c9c8a31dd25cc15ba3a376b14aa0621eac742e6b88444f2518b9886b848aa4b9cc7b42fd7ef0f5605aa000961431f871bcbf013f0fd1a76924f56259f8e388f472d864324902ac5e0975d123a3819e4064d0f75305fd0fc5bea1a69c9ae72fb912fcbaedc2b1b7db5913ff1a53cd6e42ac2be000cea1080303291a7b8681c9756607385f337dde44781dcbc19ab88a3731201647179f5553a04f202b657bb6bfcae916c9659d468eeb7d7a794673cc4e6b6a00acc1bc4d3685d9764baa8b3e73bff979e963c7b5e54fb1056fd046b6ee8494010a2a7846803d5ca3777ffa471ed3b52ce0b6363abdfefe6a741b790a769e36ab1f59f1d958b0792fa8f99615936ed48d9dec45937a1cbf6c3a1353a676eb9e27f23e172215056c4ce53e6825eef9af5", + "02a70971af9929e657320cea27945443240c2caf4a5f01e20663b72aaf2cca7056133d94ca78efe6118e1abf8b18f302cd4c2447793881406bfa41a89b7d3fe7fcd8348fe43f6aa3b785435ac9a9ee8eec9d8afc0855b5011b105da8fa1d7c7aa8a9bbba83bf4afab647fa44ee6eab83b11245b7bbee64089086ffb79f94cb132cca1616e8a483db75b0220e412f796428b186411aa3b4f9cc954b9dfc8a117d2c9ee89ea9cb906ee572a92c5e7bb4b7c0aca2608249825a2502186507c93b3bed636194c77f3490bb35146835d51cd82647de7c545156c85acc0d777ed8218fed859726cd", + "0657e079bcded8b8770a1a43e35a56b73c4b1a84582810390fa49bcc49ae3c32fd200acae14f9274ddb43f722b68cdf1b5e96c85ae65f1b19e56284c658c792a547347ba7fce702674d8d5c72f36a1aca628a79c2edbfffdf5b2a45d3a82b6166b0afe448515938582c6a2613a43393cb5b1f69343bb4ef5e195392d410625ba281aaf53c4427260bc67f44329e8bae180c4db6f7ae6039b6e584f8b7ff37dd91827f36fc49aeb9bbb814021f3df790b67484443d2b05cc4b0209c2a95914ac9f0528337dbf7e859202867512387935a", + "025008530b871d2984513eea2db331f81920c84c56a8e9b6c373686e5b27c163c2440c16346e3246158289d083ce54cb781c40b5406d5bec7dd2cfd01244c172884bc8ae860dac8a2fa90a98be40478eda18b3c9a15642ac32c677b3ff21a3b9a466a11f30679b01e0d565b8872e4b5a0aca631e0c3277df41f7779e3b7bafb0d5e4ae16fe31a7a50f64f4bed9d27b6e42703558bc17596c611c4a7a8d1bc9ba830eb1324e884c4d335138892c074514f34f25367cbbeda56d2c7b400411570b5db67b7550614f5489ca6a73670715e3fdc507ece5361451df00adc90d67e50a6b1f693fe3" + }, + { /* i=9001 cDividendBits=2995 cDivisorBits=1240 */ + "06a3d545c24685f90e33755d39a9414965c76e76148c8685e02ba32d3e2af08240315763e138cb2c17f475f4921aba5f32f02d82fca00ba876b0a4e80b7962f69a4da07c8497eabdfb74847d98184c137dbc1cef7b3727d81680918f07a3372f026e68b5f148bf2542b46a602815a9b3ed5dca0f4893af105ca9b3a04a7e23470279dd308914d3dfde678979fecb101a189c00fc1fc95e5ab64409b9c0bce032e801b0df3e53740d69287de3e329d4b44bcd1161567a54b7e3aa60e83b4a770ed0cabf0c8d62e9965114ec9db4a731557a32aa5b737df9b6b495716dcef9657d2b6b77ac290fda5af2b081792fce79cadd54309c9e08ce23e0e3c5255a1e2e33a86bbcb685bd0920d22cf5578e650b0b58a75b7bdb0294c5a6ee8648cebc7b00cb9ae52c34f327ea2d4ef4bbbf828ae7e8af79866c3f849ed4e9d305805acf42ba574896aa320db94bfdd948d8fa54510de07a8423911d923b68a15dc8f0793e0c8537864c99283b1691e4906e896af993dda4db858a86", + "5d5d3ba8c53b180f257f45fde3690a165f09996a11d6fa4e5be08b93e6c4306a978c89dc4f2a4ff843ae5d54df556c97ecf10515ad7ced30722cd70fe41ce3fc1dd834cb33555d87acb5569e9bf82b59f2050b0ee717757cd06d162cc9a699a59e0a2185e397427dc2bd1e918e55dba7a5e12c2bb5b8f3bf1204bc76991c51483fcdc576dc22d985b2e941b4a53272228f87d0d3258940cc6038c8", + "1234dbbd3d0750081bb86d0bd8b4ac2153df27b21351d58c39b9b8229b1305439febad6caaf6047e3f813e96d2c818affd3f343369c4223fe9983b1fe7f5c7fb619abf83c7135c6e1fade8d7cd6ff213567149f395ae2c678847e38d86ecfe47584f576e9940b385c5be5aeed9309c62e91bb59309ca8ce0da0830d0b37be9ef73cf6b17c60e3f79dfc324345b0a1d9924ac339ed9270ea5220b94c3dc6c8b9f6625188fca7763ae685d291e2ab06db8cc0540baab12662e72b397c3f9ac03dbce1db64db16c5d70b9ff8ac98645257c810325f99bdbead97f633c73", + "3b86f4ec3bad146f976eb341eb109700221044d37dbc6d1135feb19c33f909a05e1fe80ad8e982f94aa2652ec1435fe509b4778d6af85881a2f329a5a6104a3f6f2f519fae8bea296fe464b0f655de835df6190b6287a9cd750ac9bd7a02bde51851e0e5d6f14abf148c0061e750ce2be1f33c9e300bfb4d2aba4f90f504f1cdfd9c396b9cf565209bae302aaa123b3306808d3d8a4eb951a528ae" + }, + { /* i=9002 cDividendBits=3069 cDivisorBits=2656 */ + "0647883ec8fe0f45e8aab77b3f2260182574b8f5fcb729f6b018c2f2efb0c2008d9415fb0058767e81ef6f566c694f0df3f96a2b10b777391108c1392aab8cbaa33184ee97488a9ec36afccf9bd735274ace56e25bd133fc47148a85bd1377019395651ed8c1ffd2ec37d53721cf7b5df4b019e993984b7b2ac561b4a4d435ad73053cb91b043c83b8942ceff6c58302b23cf84aef7e1288a00fb3cc0ef54d9492856801f2ec551da0e16c06883f417fe87eb2522f81ab9346e9bec52f01b31d82fe7cc83e6c74792526b67976f196eadba470ed56821ea9d6ce8a149303eee9969855a5fc5a22f83744b4feaa6ab005abecde622aa4c2a24fbf7e656a476aafc31cfa4e3b729e924c7226c5ff5db05aa9e34912697fc6df790783a9a32696dc7f84c0a36f74e2eb7569f55cf3c5bee10b3c1e160f378dc022065db54de08cc5a362c5333d4144dba777bfc688e2bbb12d2f3d17cc231f1dbd2188ff7747a3463966532da33037be6d808b9f381e987f7b602a2b53b20b1934398c914f2f5ab1", + "cb7131dd982cb23c45ea8617d2e8b6f30cc95827b2e4cd2890d42a093b61e67b1bf23639c09933e735ed5ad609059300da32fad8ea9501e67f165058b7b785cab02f84289d9a65e1bc941067a57139236040fc38cc5615542ea9e057808f2bce2e09fe66397ef4e94804a8d6f13614454d6dc7e5f8d566bdc9d6d7c2aeff555cc9174010ae300e106e4b51ba28677527e3dddd928ea203cee36ac3c2a2aa7309d485d9be1a9f2633e18826eff90a8d68df5ac89dffb593001fb2822446e799deb766051c9cd68029e68550a4763b0a518829748d5098202ffd134b7f2a36c841f0e245f41918f100b33598c2cdf30fee8a45fe5366b02a4925c84e71f096f37d87eed6acd93a2b2ad2740360647962347bf50b65e0c9fb97161a9a425cfbf51f228f9c05919a3cf5d26ab4f3e433549093bb2ebffe5350d1ee50c9c40011c13ed3f8dc5a264e049c93485de3", + "07e6d3a1db85bcbcbae892b324a9c13a6d460b13468e2229b759c6c27f339f36619307393a30868d8642014659d827ae2babad49", + "018a06beca8ac8d2f1e4631adcef02071559f07653c1424e5ca59b6e2ae8016e4c58d424e32f26eaedf8c6f88a2c0c3ddeb1b87b879c4b6119996facba6922d07fc306b57f444e672cc59f70257df461803522dc41375b58a2014c8bb1de9bb07ad1e85a017199083b0a27fe4e8757b6451a2dcfd89ca8ffc285ee0c79b069fbb2425e86f50cc78066d498dade770848a777b909b79e011b1ed5eeca63424f3bbad31748c67c5ccaa45fa4b4549f68654c8beeac214845caa8a37e0f95e49c938567c878ccad1fc9171e809df3e9bc243579809287d24479cb64204f2a86a62e8f6ecaa462a8fb6fa9fb915aa87099caa7dae9973a3e687e9a223dd6aa48325029eb3d150d01c42ecc93ae5177984b5c8e9d3adc7be4e9eb2dcff091d3d3d020bc65c7281a901d7565b3c808c74d1fb59a7b38f12b0f24ad6d3f5a9e9ead02018c729efce9837dfd90792df6" + }, + { /* i=9003 cDividendBits=1601 cDivisorBits=1207 */ + "d2fe117611904904e85c155abed8c3539e0532b9f10d20d9d6d135a675aa6ead030fc29c6255cb24911deb10fd1ab7d7619bf38e7b439267e18084eeee8987f657398eebdba38f3146a337f6a757d15faa36d6d169f6878db9770b88eeab5a8bf84ba0d0cfca3160e2b998a901df9e91466186902415a7a9853804cd3b4d3cba1cdf9ac6081ec29c443367efe53f2934037029aafb7dbca904147da3a91bddc2d7120738a300ac32d15a7cd5d36ddff3c86bf41d3ab6dae7822e648a7ad21238f983b33c776545f9", + "5b9f48d620a89d2ddce5d4855d7b1b65bea2a4942d4a4f370e62ace87e332087753607418adeb2f0b23d3783bd5bd63d222117012392ca0ad3008b5e28751b8f18eba86788dd8b55f16b3ad93d840de7eb8db6f2bd5e61a8033333425d52703e98a3ad4f436aec226b9ed83a18647a4dc24d52f9ee22e8f5530777bc9de066ba0f4cdeec2af1cf6cae474761220a759105510f9e42f82a", + "024d87c342216958794c803d6d3baba32eb987ef8bc29744c934cdfd98e7d3add06ec9ad778da66a632270d3ea09f16720c0", + "5730e1d0a8e36d51a330da1c370e8a8dbcc44370978b81b57085351aeb6922ebf7d3ce68670d1971e25ce23192be1b20f7e7ae14d40f4f3856815126fb49eb0bce4a54197e068be9d340add30a54a294fa6a34f573cd275105be225a0b5e60654a1452d3924ff0ffee6ec98313827262a1931b2af30fb56aa25abc1e9d2c55daa993b3516786d1c3873ab9fa821be988501db2033fe679" + }, + { /* i=9004 cDividendBits=1224 cDivisorBits=864 */ + "c90ed60f7756363a01fa8398beb4318b0115f94d0504951b84573a7e423568ae9ec1ac29a9ce8f5cefc674a387964771d8cca4260baec2b8ab9e0586b1f82ec2a12d79ed9a140c6f4a75bfb979d325b70e941160dfe02c65abc38887cb90a5ccc15ea7a8d2dcdd2ae6a3e6cfaa6422219fb59670067dfad1f548d429c7ff80af5c4bc46c78bca72a39eacefae936bcc0962f2873f33fbd7e52", + "0a856732162ef04da2b5fc0492005638496f9d69e46abcc8699bb2c5124fc25574678c7cd59d2dff5d54ff788bb1a6b7fbe3a0baaa4593efe7859279ed9bd360aed44e3d2277c258d2a44593e21f96f45805a0b1d865fb86c9fdbc00d8cc3ae3867f55ee18897662c2205b78", + "131c26982c2b939e1a5978afbc9c5a1840c60b8f1cbcf21d25e570bf330eed95c498330b37154673f5da4370bb85", + "03aa24091ba4b5112eb8230814785e110dde9519d751c8523f0d577cd8d02b071be92a68bff2074bba5bcd6633593f398592bcf8567a23b60a3440074fd0778682618e2e909c7ca02dca38e1cbdac650a80d27d56b5924c5200adb02e4773b10f5cf913440ac8e559d50fa" + }, + { /* i=9005 cDividendBits=134 cDivisorBits=3 */ + "2ce8bef2f4dd8c90caa3dd9642258a65cd", + "04", + "0b3a2fbcbd37632432a8f7659089629973", + "01" + }, + { /* i=9006 cDividendBits=1269 cDivisorBits=700 */ + "1d83b94ed9de7a4ae9aa7f422514315733ac104226f514e29e69c876e522b976d93c1623f57eb2a8e7b50b4ecac237ae8d4d86a0ecba98a99735dbc11ef6b117447981bfa4d906eab1dc1db4d6729045221ca42b0b62d488219f60926e5faee9c91ba11c6487ea28e32ec70440182f459f9b22aca6afee5beae5c5c85a1339cc633e15ec0017d259b361392a2e114b63b14c1a1b1df8f2413b6e41aef2847f", + "05bf87f2903f479eedbfa80ad3ef57c6ee58dfbe9066a8cc62ba84d650f8fcb9d8e766c6d3168996de29e32fddb4a6bcb9866300dc90d641cc026801e6a63d0a5b2d881b1fdb0caeb644470400bffcf8588781a7bdd7752f", + "0522752b9c8897f5ca8d8cae435f4af7bacfd2acfa25b8e531993bff505679e27011a12b704549fda6e9de5dbd8ae700a140915a6ed2a40b6f64a498b58bcd3e1517ce6e37dcf54e", + "015075b0199429a6b8dfa7a7a2eb1fd27064251c73963806662a534622a6bfa3b76591d8ce9dfbaee9f69b044e04be1541557b38204a66a2d56b6e064de50a9ef3f5275e4b58f6e0dc6380ac8756970dcdd2c8eed6c2d52d" + }, + { /* i=9007 cDividendBits=600 cDivisorBits=56 */ + "c20850d2fd06470db6bf099351061cf27246f93feef16373c482efd1e75cbb47543031c6d6a35b64856f85fd9cc3773bbc1d5e1bf8239428fd169c24d4010f9824b5b945ea93f377ace63c", + "cd4668818a3eb2", + "f1fab5aed88975fd6638e8b2f5378a321e1df26a662b711dbdfbf508f62df0fdf19201ed5a06f2336a4e990dcf58dfe1bcb5b859d6d90fcdcaa140628dd7abf00310fc1f", + "b9c987b11816ae" + }, + { /* i=9008 cDividendBits=2534 cDivisorBits=527 */ + "0eca2425ffa900f500fca650b95e360d02db463cf8bbcc9f70f021e3a83fe39ab12ec7608afeb039717623ca5d7170bebea14f9b69b944fc4fd6de892c0d0217b7b2ed4213af88de20ea34beb1347bfb995365ec2f2d528340bd0a1c80bb5153edb4c272d641679451474f7493b7a4b38b4e6c0df79538339f2294ff7c018ae88f7e1666f2131b8b4012dc9df6a9b8494b7e90c460a07aa871c9b01df9f9dfa261d2617e196c2333e412451f6a986c43c2783b11857d5da1bd3668fb982cb852d4ba5c90c8200a8ffd1ecc4b419c0f6a31c272f9b997b70bdd4d32171e6bcb04a687ce25e968719ecfbfcd200507be6bd198277ce7d7525fe653263376e43137b323c28f34a7956d6e5e954cf6c5e857e6938113d310ed44859c478c70cfd0309c7db3607c7e0880345d34a229797a7a5444cd522c7439a531926f961b", + "12e4cdca4a2f36fff7128ddc9b67295399f914c8e28b9811a908a745af8da40ea5216c7a0f57c64e4a00b4c7de5790e44266766427cae27e1c5af9b910af7abcef59", + "c8641b138778354b37667a93af9159fd2dcaa1d28da325c185f450ec38fa984127849174f3e6ad85803a5141fa81017fd119eb48fc983fed8d7bfc02ed502074bbcf158dc169560e5b460d763ff2d3329e5910dc7782ee0a326c79442bf981d45f71825f074153220ef81035f102d653fa928829ff813a23d35cfddf08984620dcb71e44099d631eed6aee40a32e62c8bd56f44d359ff6d6cee6a36ae01bb69e4fe3a16ff359c2673d1f5c62c1fe2791fcf68bc30791b087df636773be989bbd40300752ec26ae9fbb1ab1854a221db9a5f6353520dc8a15b969b3c27efea0a3c8888cf3580831573181cef9a55cec21a1d659dc985dafaf3fcebd", + "025356b9e67863b294bb6de85a1b50cb67da576c1b2c95129050166dc21f98df8cf04df57be77a99fbdb09812422205d362fd09a7a6825ce35c0f821cfec2e724366" + }, + { /* i=9009 cDividendBits=317 cDivisorBits=265 */ + "1992244ccc19d1a830ad837c374456fc47d4ae847bc9c2d552ef2c58bcbe06b7413fa08e9100f96d", + "01e07db060f8c2b43687886e95f0bafb6035c15ed2204279a71ae16bdd2bcd38c504", + "0d9fb54be68b33", + "da052ebd251e7ae3859a1c3c144655eb1b09542414d3ba02f1e07cfdd9ae208da1" + }, + { /* i=9010 cDividendBits=1137 cDivisorBits=878 */ + "01f75ee8d3b4bad5102af8bed2975c9cbf8c85c976746ea1c2a40d04728d627ef718d20b86f3d62689ba2e99dc1d427d14964368d1425a59e3f82da6494d32b193dc391e84de246c8321f20eb7670a9b2c93e877c3cfeb393d9dea859cf36bc9e925914c69dd4dfbf48e0c5af264bf49f933c96ff34d5a150e66171c3f8d12929410e08369792e9198af9f0e857a8c", + "1d3196fd5febced4508fbff2096a32521d54e30684a9074f213a182699c91bdc81eb1d812a68bd8a16e8f074bdb5487c6a63b92abe489b30e1005ecfeef4d3a2a54a83edaf2a33f9f73dcf8a335f2cdaabee2bdafddc5f8169e0e872a50300d45a84b0eb295a2b2e43886786a115", + "113e106c2876e0ed8df16b2dd0967d368c0c58b5798f95999abc6787e18ee31fe0", + "08685e58151ab1ff63748d5b48a97632ab169df772a012a1900224128ef05bf3c1cd675e2f0c005e76d30b18ae2ff1f0ae30e52b08f6a8c9b41274d64b48dfba057e9df93d488bd916cc7b8be721ff9d1ad4cb1f30ca2770cf9b2a2658404d60a477a21128ff6bd6f38baf97fd2c" + }, + { /* i=9011 cDividendBits=1451 cDivisorBits=25 */ + "02405cee663a47bf33c61821c12632aa3c7ee1f5bfedd1cfc6db6b04d609b13b70b902b7f5787760c70de7a54e84fa61454a1f7e46016c750c75406c44d6c7edcc57d949c352a30916ec185db03645dc830ec996ebff8a72ec13e7467d16b8450395a798c13af500a37a3b4f875efed672dd9f87471e6b780c4822a079450d9b127eb33d48141cc33efc2d8957760bc56fb3e068a48070501bdd22f8dda401dc7507de9a2fc1a37e6d5ccac445e0ce189365cdad59e5", + "59fdee", + "066794742c4c375828d43ac4a74dbeae0ef824d6b69a938244f7cc3e2a56744b2c0d32f847181e0d645448218dce10f450c13ad365cfe164c4882b890e23a2b4d5e43933ee39504eec9dd8d98bd45ede64e150e787193efdb1bef287fdbc7bf822d0b51ed8c3c0c6d9d7efd42783794bc71281e816f18b4a4bd259e375aa91ab3eca9d1e97cb3bcccf0bef779d1b8b78c86636e44a5e11daa1a45441a532f4441e8b164a5ac0371d8154fbcd69c752bf4098e7", + "33e823" + }, + { /* i=9012 cDividendBits=2221 cDivisorBits=1203 */ + "1c41ab8be4e2fbad145760c43f43735e2842b6c6e106d826e0cc49fbfd4a6105cc32425fec8cbff544ca7284f1b347c4e0dc0721cf0e033fb0f5636e72ae64c95fae07f1aee325d2ab695ef098996404f60ed2aed3574c6f1cb9ebcfcd7e79ef868bb52c00c82570ad900ccb85ce209fbddd4207012e5dfab301ab5e254287473ed1eda6f125700bba8ec8f715e9bd226f73e4e258c1544bba5acbde0cc6398f09fc9d919bbf57109389d7f9fb2e48b69c0cb0cd03b6346e82ce04d28b7f9635e9ac2128538903b370ad3a6e6445cbbdfce0ac877447a5d5b6d1947f368ef1bbe095ddf8fea446d88351c6ea20e4ba2ea2535ba16d2a2ec091b4e8d4a71167c698af471bbf87ddf79a3318f69eee9553da6a99fd778e", + "042cf48387c3e0b2db41ba7d6553f80762a7e77e0a76ae6f0ca60d5b20a353f80b7e26b20379bd23b06441eb42f4f694fd4616cdb4de8a596e2f609f44f4d90683e6c8730cb19fea264f87dea1c590d16cce6b29322d79fd4930aecc6ff1515e8ca5c7fbfc3a564054a1761e44087213cf0e7c60c1987d5bad720aa6438eb60ac0a35d4d46916662e1a3d6b992e5411089713285c483d9", + "06c45d38cd424d688023310b11f2a66db1d397d2894cbcb8be63e9fbf048f1918f4127a09b27fa03f2f9b0a489b3f0cd80205b89d20f0608d1684889bfb84be0490afd109a5f91839126c048cb4928b5907af18547d5ebff6cd77929986da7a69e3b4a230c3535c7e51f675945e3c764170fd1ef93a600f3522d4f99aaf2e33e", + "028cf56cb138367016fc3186ce8fdfd07f5a2ed72286e519969319ce574f8b868af58d1860a3c77b66b736b945b0c1b7c4c639c06bb6b5b40dbd4a0f55fd908093b21443ababbdd07d1448be516024c1785eb812ce43c5c6a6e869006b31ddb475d6d56d70deb18142d15ca1c4a4c55f51a45cee59aba938314fd60959020e7c455951d788b6b756b23d738590a52edfcbec8d365a1e00" + }, + { /* i=9013 cDividendBits=1120 cDivisorBits=696 */ + "cf29102c909a6e3d951567b621d8cd3fc32c71de53c3699019f8d4b9472aacbb47b19adfcaaedb1ea4d1c34c410398c21befad30f964f07f3d44c2c00a2823ed1fbe940e4b483f26ed6220b444a67df919877ea6f614e47672210883bc403dea62a04ae522aa0ef7ad4bca5f39299762de15f540e7de3ff46804e815b9b82c44630ded1baba34e1d08679993", + "d6d1924e3e5a40638c08f1662c8c820ba7ad4118e56f70a70200f06a4f2d5ff86030d1ea76f52e855764bfb234f68c0fbda480095826d9cfba90d406e6cd636d10fb2165e576227099d2f225f3e24bb4ac45d49c27dbfc", + "f6dfa80ff827dbf892496af63a4bb432169038de28b4c0fa6adc74e9af2eac245adf84af64ec214f8e633b7859b73e9f1a2cf3bb2b", + "5aafc338713cef534828c9f9c83eb506a6f4c60ed6b064691d55566c6fe5516155185dcfec468bea767f7025010e2ba1836b5538107d1fbf8b68248ff4ae050ba15db8f12f6591e01de0c7add572ca9f5456188fd0923f" + }, + { /* i=9014 cDividendBits=155 cDivisorBits=17 */ + "04eec58833e40b98e1441ded0d92801c4e8685db", + "01a424", + "03016e867f6062c4ded4972e32a2f96996f7", + "0f1f" + }, + { /* i=9015 cDividendBits=314 cDivisorBits=171 */ + "037a4560a0c876ad46f81f09d4e2d447df4b1da7d1f3ab487552baf61b1275b1828aab36d9a1ed3d", + "0479f5a80525705d86ee787edb349325242d9642c8ba", + "c6e17d0c53a50cb33afce3e00ec99b084d0c", + "015b6eafc670105b9e0adceaf560835a5b38d4509285" + }, + { /* i=9016 cDividendBits=2843 cDivisorBits=255 */ + "0523b2ecf49d678eb3733a5e2938acdd44e739307a4574f1373016d0740c0010c2c3a695c6bf2a76e7d86ce74f250b9d16e1eeef46ca26eabbcb86e6b7cf9747d86cbc3e181e1a49b3dfbe238494aad78dbf4529c86ae81992df1f9b7b48cd854d5b29a00d953e913b28849829b0dfb7e1955340fb27e1128599ec5b3a987f2ced96a5941a54757b1bf4d5af307e14dec0fd0169e4d3abad94552a17abc7420336f10303117e9047092d59ad38a1b2c2cce5788ee812a026efb0a0e1515b5c632169de7142d80df5f3987e0b52b5e44b03f1b78b56eb2ddea6e134abfb5e5e41216ac91f44f2a3cfe4ec75e8a40c57538e99fcc3b3e889440be50972b0cbc035e9170e56501df447fceec21680d4e6dd1cce65a3f7495d5c1f766978e77e45d0318a5b7bc4fdbf8fe04bdc80a31dbe05da7958878a1f4cb8e33eda1d13a3c626ac92a57ba3190071c4993511bdf484d9e94328742f3c1c91282d6fa7959210e3af89e801", + "07a339b5d05929fa0d2c79cf1ec42f7ffba455bc59f49820f414ca0bc86d5c96", + "ac441aa3fcf3a79a36b6178d06fd83b9540cd4025d48c21d0a1f38216963147bb952b3bb10ac976042d89136f59ccf47415b18cf716d9658497e2e8b1d8df044adde339dcd8d1b6968cc41e99967a11da34b167608483fa4e6405919ce1561958c8c836600dc121edf3251e156be1831856a260ec701abeb27a44ab6bc113fe237205aced83a1fdf8c265bbfb47495ad3cb3b51333759765ef441154f8484d09487badef17ae31d345b25fc3c1251dfb8cc901f4b9114aea9ad8ff5776742d66c100b882d2b5abdd26cdabe864d1943a5cfc358af23f2785e57c6bc2ae9765c2eb325a17be08b9c2f205e5ef85c1667b5e56ee33a231765f0de29bc55c7c07c1b65d3834d22bf2e1556ca41f0038e268b8f8988e9e35e3e209b8e58efe1fa0f73a56aea59a14a17eac61d53b02a33fcd2d312a2b1563249b1d68be18752f417408d56a65", + "03b36c7dc0b87d00883936576fc613c136ac8b15dd3fb54b100a41659b4044d3" + }, + { /* i=9017 cDividendBits=197 cDivisorBits=87 */ + "1be547504591b6f33df483dc0f29f3ac831867af37125cdbef", + "64ed1eabd7f730a581e81f", + "46c1e4b17e1017607b8e22e2af96", + "59649209bf93dd4133a8c5" + }, + { /* i=9018 cDividendBits=2215 cDivisorBits=1036 */ + "245be6428315b40718c2560b2c02bfbea2d36ceeb681aec04a688c5eb5ccb1f85eafe61fbc958ea822615ec08caf51b42f0f7c61a0d11a586d7dfc14f763fc12d7860e6486178ae01b61602b34890b6ff4f2772a96e2a628cded612fa2ac8cc6951bf84337e674d2b6c82ecb87f58ebfacf7c3e8f47b91b0d5b63d73cc1fa6b1c621b75b292c80ad4cdd09df41d270e193542c07ee67f19be183df7c54f6d083dd52ee68daedc418b318996728a5b41302ac836e0161e6fd615993391225efabac7c810a035e1f31df4348144a8405155fd92aa145a825678614ac91666b1136c9c253209e4114ede0466c99cd9078fdf21a18831b969b96669e3d478a33691756dab6b373078595c90fd92b3a9e09032009be0e64", + "02981cca976fb83c83af2bdef1814540aa4c42a19337ae2a3e01b4f10eb67ccf1a8ce090a7fab3b9fbbcab14877be0124564a9b3f156378df5c4ebf4d2be22b4731542b2a17df563e73ed1914a1c67e7090eec8784815c7fb01d916e6fbfce845a820cc630bbfd944b20f48310af73df8905c1a376071b308b3f33afd1249d120b0c", + "0e03fae28f5fca57f25464b69320de23de4398327460ea209f9876c10ba6f373663c56d66437a506ce620fd41e2d45674f01d80e27775982266b301f30b9ee8c44033e8914b123d647735a0a69c55adb13a3ce7ff530ecfff0f0c919c26503fa7e14bf4734c121ea63019c550f9b326b03781aa9f7c22cddc6beb0bd6dbe7650f2036f0c4e66e9685ef1eb574ce2c08c76b0b370", + "01b47be4c0325bb7900d6bb91fc2ae34419c157b8672e741815bbceb2eededc347df078d92bdab2fa7db5a346672778d181c2d0bff37dc0231d4cbaf6fb4108546a915de9c904fed1743d015b158328c820acf582ba2728b5d0c1ff42695a7245d8970776809714ca436925bd112f1d652180be4f1edfa70db0ca98f913893dfd524" + }, + { /* i=9019 cDividendBits=921 cDivisorBits=77 */ + "1891399732dd70c9d8808be45925ee65adef11493233a380f768ad21b6f93587194e38f4c0d17eac8660a221d398b76fe6817a15ac9eba09fb79f09cec5b2d4b6e8ef78a2285a00cb8d6ba1ee8600696812f6926606d1dde7030c8ae87672dc6c7613452da0fb4820a8229e81a8e921d4b97a5", + "0a623c2d4dff4fb5cd75", + "025dae4041d7dc91dd69ff41cd7c28488f68206f70348f464930e6e503d3c7706d03245e47a223159873bdecff0838927e8cacfadb90b1930ede03a976aec0e817fb884d258985efff1b78fcbae437543f8bbe8efa966fb7930eb55439e8855a2e099517fe9fb9af0278", + "039f13d86fd9547d5ecd" + }, + { /* i=9020 cDividendBits=2921 cDivisorBits=1055 */ + "c97f2c5fc19bc6f9ecd4af055347a4a8220b20480f0dda5dfbfcf389d95b64af02fc8d8deb9a862bfe0bdccc22277445053dbf5d928c2b899465add930dee55426ace2370e2e53664f17ce04c95de3916330c712dc59a4b8578ad0737714fbd809b9a15cccb4431952ab61bbb1325ef49e195be8e81fd3b424c94646052c895441389947dd43f6d6b94e7862d211ddaa5bbc942a2b81c9207445d9fb5f2199408369e43bf40d25f40703429f5b5363f7560c51c5021efd10d80926ccf04195b46cd81221e840a5abe2e2760696d2b3be178100bddc49c48ecf5fdd62197f1177e92f6af9e143451a40c118069dc48e64ef18fb124fbd9c16521ae8e9fa1ae09eb68d1e6ae3d5aa003626718fb0034a7c74e5c5de91cffe1826de647ff1184973b4e140086690b38038a541a23ba08a0ecda97f9682a027dde3ec6ec3e0571d35251fe30e2e80408c4fbdc4c33af396dc6da00f36c02b0fe46bbadcb39eff6ed97948fa3b59ba89458538bf8998", + "6d00924b71c655a5d722c3e95f52f2c68798702f238d2db71c4986a7b4f524f150e956bb5e6eb7c7f9683edd9a405914cf252807b17ae6b67ea7d5f63af1313accf74c38047065189fa00ef4f9a849b78cc4896e5b997af144f0c9cd4286be0c7d49e14e58a35026757a46d8dbf52ac5b5cd3eaf80a08d9c08a2b9ecef82c72386feda2c", + "01d93afd82b37f849ca38c673ca5caefefa9b1b93c07ca3728ca6b5b7b0c47f59da60bf05482db4438420c0359fe95d7ced0a6d34ab9073260e3ebba895ec14727f5c029c93c4b3afaf44e8ae90541041a902b394e5e86202029720a6e7e8b956ef0964ab4a422f7d4baf0fd7fb3b25ad55148a351574b840de9a1bbf393e3ef45bebef451340224f8ca6e141f8fd8e794cd51cfd13002bb9581eb9bd5c98c4555f6cc31f94542cac67c8c6be77c64c8b9dea244707b070e221be4289145e45152aaf8654877ad9d643c7d92a0006922699fcf19fb30b98374d86a4c50cb53148276aaf4760c3d7ff898", + "08c58c797f7fa3a2cc342785d7ac4a687dd97b68adc11e1869946ad1cea6eb8f152ef1985cd7b77c5e6a2769b18c40501db4056a80ff71d3a3aae9b14e368c470741ba87bddf4f61a109d294e4d82c0eb33528a94c7de72dbdd75cf688bd34dc17eb2736da2a111f7d3f6a74d895b9ca02eec77521f7bc92f780cd5b9bbb692b763f5f78" + }, + { /* i=9021 cDividendBits=1650 cDivisorBits=1009 */ + "02f5ef9c22d01c69b20d73cebe5f4c5a3cdf4c93e73fa22279d09ad9f35974ca6fe783c71b457adbb208af7e52a60ec82109d2d21566b2ab9e69337174a36f7fca07ddcf556eb2268540cdd57637e6306c2e0f1fbd48eac438908a32a7647e95173c38b3aa02a9f83ff168641625316573fcdf14ca9874d237192302d59f48b20bd5257041ce039e35645896157828f3172b4a52b65973f432912664eecc098f72a9f55f9d95fc6ffdad7a0f60dbda953aacc7198c91664b931dd875d00ca766551c407db019491907843aa9ff35d7", + "019c9b9a73c8c1905977196d361d365153cbb3052f066571228d72d570b06de30b16580fc106b368222073c390ef20cc0a5d91528a446037f6b87d4422f83c7d2a1740ece1470352321bd74584abac08feaaeba7aaa91bbd59bf6d54a1e8e64c35b78975f3f9bf4d002b8d02a29684ff7ecfe312bf79df6fb2b0ea6d71896b", + "01d641b98d32c3665df4e042a0d4d4ae2ce7f09dfa9e4c2dd34fe5c48e638a4b23b0e276a7600c5f41fb5989b11e3db0786fdec7626ed20481842628d19f3883a7358372c57446168de994254847c2590d", + "013d83d18e415d6e27cb79f805228bcbdd2f2322384be035a076729314040bc0823b65da44e19e92188ff26dd463aa769faf701afa02f20ff6ab0ed4cf03d47aa868b7fb2e6634ca82b52c1dc26f53dc365a6481fe7acca00725a26402244a6df94875ee77d549f7250879da2eb2f3536728cfa9b9e53b31ca7e07d25f0868" + }, + { /* i=9022 cDividendBits=4013 cDivisorBits=3773 */ + "13e2a33b14f7212df16203d0bb744921de9926723263e4286b4db304e3fb3e1d270e94f3b60db2edb664cb467f19776544576d3da22e09b1cae01f992a54ec3c881e7ad083b4387e50dbe52f1c4110418d2863ff6333d930b9bf51a6e636292fcb91644fba4e7ddac8cedd320b10044612f2ece42a561c2d0c1d28eaad8bfceebdf6dd7ae06db1cb3869312f329932404280c50397f3cabbaf0575e4af5e5c8292ef438a9874a3c58d04fc3a29a9689e0d946e40a21a9fa000bc25ef35090d38755169e09cb4f1ddef60affe62b0a2d1a7715e249229057841be0160deae06734b84357212643f1ca61735d180a09f6f3c8d6872c101cf634eeaeaeada0489b6e18173d580c9756488191b85a87bc5301015bfe6daad5aa680c9dca73efcea9fcda4ba8e21aed47f6d720e28707325ac0c1f63a0730cea99d39b5ddc5a923ac8e0633199fe4de6d8e4694d66b087ed1d7f73e87d2ee88b8edd582ac29db3fb6d609bce1c9cae5ebf0aaba14a2ac3c89f73d532409188b1eb69b9d5e6b05a57debf71aa41a1fcb20a95cc790c53415aebda672341058d88538a494cde256d39ad1f5f1218405c8d230898f942133a0f144d08635bd0cacb3f9c1c2a34dcbbe8b58aa14532f74fe32de572fbc8aa75febe144bc5bd341a71634f8710e45b38b92a97338758a06ee4d28239a42634e97ca577254e4a67b9", + "09e7354dc3057bc4307526addd98129b11377bc1dcc5442e879dd68b82e3a3ba7896e25c9957acc485615d46560607e100f73081767be7113d8d943c0a73f1a699cdda705a75ecfb6da23148a8e9c107cc2b7e8338aff158bb4749e060d35e31fc26d7ce0f042e37810791325e32848cba2bf20ee82ef756f66b96f95dd33dfbd8c782a8aece47713f2f796729d21be089ca7c5900ace6bd4ee152e1751e9bba9270067a37a1d493ad719f242b424ced1ea67fa14a640907b55189a5e486183737d5a350b79835b78f342f20ea4b9d123f296cf33eb7b3e1d909f8d187f9e6c801ac6730eebe838cd065d5aecdb33901524ea99cc80c6eb535dde4aece4df3cd94bbcd4e2faa26740bfa29230c68910d737b6c460a8ca62ea98a97222bfeed9edd016e8251f9874fb9027703f3b7a80a0d12c7617209bb220e91b6bec82559ea5186b0e79dbaeb45fffcab47591756e7937e43ec324625b1e0583b16f0e4d54c53464d847636d6772e2c7e0b7af6ca78a61cb5fbb0f8f2b99aa6b1708a0558b69590e5251cbd0579f68d53138cdc3bea1e908ed113dc5d5f82db0b1085a8dcedc1a74a2795ffe2069dabc3f164e204f83548f3fc6cc80aaadfe57138d2687b0d27d0f3d3896899b64b4ac7689f90caff02713218f9d998ce", + "02020ab97bae8f61f058021ea972227f43fd4f98f9f2792069c7478461816d", + "02eac0e6640bc6f8a531123d2995eca95f44c92aef66bcaf428da304d5f2d3ffa98fd5c38c61f628a0deda708cbcde83a3b7bb319db0194b651754ff0c0224d00afcfe4f067d595dece2599d4dded9c4fce5e125eaf37c9ce9ba8d743b13b0de015228575a5307ef0d5b5ec482516bf06ee5bad9d119844a60acbfd63f3229dff6879ddbd78bb6d3ec92126a562db685918e1db68e4016f97135458c8ea50e2dff5b92b80246476b308a54ab23091291ced8e4e558955bf92f93dbafd611aa5b1fd27ee1944cab6529e86b3a3d114a3790fbafe01dcfffb340650bee85b7a4dae945593c26957ec38753044965cd10129fa9c04cac865132a51c5f048551dfada51cd311a177333233ddb0fbb9d66b956a677de9565a661a6b3d2d195a182b8d39d1e65f23c7147197163406f7c51a1b8e292b0fb917f80835b1f5740aeef56ef50c05cc3a57521963cf2ee0971b382db0407b298565fb50c5f40f54fc5d5e18cff75c1d6e54df56909683f81e5675a73f2e0eec25588d6ad397cbf2a89a347755d762370336d8e79dac91828b48ff79594a8cc083916e1741969cfdafa72559cee9c2cb48d65806b1d193c87db7b42a7c254729f74919f3d53a1064072c7268a5959b55d32af279a725d67d43d90984ae4a2b3d28968a03" + }, + { /* i=9023 cDividendBits=666 cDivisorBits=658 */ + "0290924fb8882765e82cb950df3895204eb523cd9a786b62ac5739b139febe0568845c49ca51cad8d40c01168b37a602a47e82dd8aa9150ae427f2d3c07245e3800bc6bd2920a12c33d3299ccba9456553306bbc", + "01de986ed83413bbba4789a8fb222e416290034625f2e60170707ac8c66291ed4b06f566fa8e9cc27fa2955ecfcc00ea6209150f8424cf9032c001b6e45ae128b805ee462b0e68b61ea532aea30a3bda4d746b", + "015f", + "5f4fbe18c05783c4a3922ee4b7b4a891af506c706206b32d0157f1fd97f10ea5d1d198c841ea270c16498c4ef0c148140efd447a9c742e92b079fd59ab2cabbba50af417df9a7fcea91f5a1e3d5502fdcd07" + }, + { /* i=9024 cDividendBits=545 cDivisorBits=406 */ + "014be55120acaacf758a278d8b2f67f610532316ab9db49ccfca277ae612ebb370f77f723eae3c3f94bb5e0aec1b928e6623219291efbfb19bdd06b840fe76656204caebfe", + "05e0967876d95d8566a65fec618b730c80727f0129d4dcb3f39a052b1bdbf9bb9a379e3a947b6eb493d722cb3fcfde600a945b", + "387888288a7b6c11f2787580a96765079255", + "0488846a6dd76b079503766943f59a743fdfed7caf2b5c80e7c30b70c1663cad0a1ac1720429d23fe0da684e0efd57232ec3c7" + }, + { /* i=9025 cDividendBits=612 cDivisorBits=111 */ + "08a2ee0a384e190966b81bc4f9ca018789a642e3b41613b1a432add2e1d04aa65f60bfd4d92441d347faf86d14fa20ca5abf63edbd537769b106ababfc9f2e35ef19b70b3e848126dcc391c28b", + "65ccb646eeb96896e300aebb3337", + "15b7ebc218098eaee1532f02cc968c6c8d851541ad548c08c351a169b22beb1e8d180cb871db43f14414e0d1a94c35b0ba12cdd93a46ff7c60a6d2888dfec9", + "47af11aef98abb34e087687afa5c" + }, + { /* i=9026 cDividendBits=2459 cDivisorBits=1649 */ + "07dd763417380591ec21d40b9e501b2e3fb2dc7309380cecc5b389eba0dd034b8294d6fa6a8cb515334602353ddd0023fb4bd08d055bec3e4b3f0f7461609c83bc33fd0eaaada861053a688ddb5808bb6c109adc6c834b87f604f797fd12a88c2b2b8fe36c8cfc49d7f3b6d9d1a13305353e1fe75300019bc95d46fcfd58bf4edddd1aca1e99427013633dcc5453ce2695d3aca36cb70372e3c8018fcc8ea66590dca0ba3da82c93f37a30be9ca0686670ac8f4f4303e2b2235392f5b6efdaaf628b861677a71f13699c1bd36982acdd36ecb660524339d221f5ba782d2a2d72fbd1a7657a31149f23ef38e2f685d196956e5e657ee13e5b15dd06b90a12cf1e0a53bb9e7d4615dd1d5249aadf0a40ba2ff6f6770abf971c2e7e528cab96f50e6aee472043cb8f06be8b0b115e29f3389a2ff07b", + "a7f9f5f52d82bd1142e85dd12316d9c97a7e1f8c0ad6683d963ab93d35df5c3a7c617d76354c7e936f646ffab34c14861188cb75ff3ed5ed2b76cc083cca9db5f6f492e8337509f6dc3c1092afcd802483f6625b5c0eeb6cd0293cdb9e7dde8c92f3bf5ab6102360aeca77e606ad38d7dd519dd369576d15d4ffd6b659be4e06d4d52de2e81ee92a60998741553bdac0d38693f51916ee479c46551564854321bd890a456e7e85ea20dc65404fbe34988597c5958966480cf6546f07edeb026103ba3ea3adc56a574e4d316202c1", + "0bfc90245473f4e178e9a750f1be81ab4380e6567ad44faf6993fa31529ade07ab043d45b6270a29d5845409e71af2570a370014f24fc7d9d26115c149fd9541cda0f2f745bd86f1793e3a7e043386eb6cb9ff026734a3eca3992b37545c267d908330dbd6b9", + "11c2bd46cdbdf591f8427ca173a76bbab0b0ad554892250ade529ae62ac8a2d0243a8c0d37a2af521e147b0696ce74ce2931933bdc38d06eabb30ae5dfb3b7e0f4488f304fae48018f0e990400ecf529e8f50f8a6e4291548fe0e0ee209af15ba18ff584c505fd6edff5440a1346261cfc0827960e7fd75d4eb316ed058cad6e1c248c30a13fde6e81220c00969e630bf981e7219caa095fee28a227bb76c86693b9e51fd8654224692d510d4275f6cc59c765e574cdbd496ce7c79149b9109df990d8d7a13caf613e0870f39d02" + }, + { /* i=9027 cDividendBits=2684 cDivisorBits=1133 */ + "0bcfe4a41c1c0edb9ad3a25e259aedaf7a62225fb7cb45f534b2c340cd535b032d714c8630f2dbf67f2365ceff77d24125c3497bf5101ac3b92ffac3a447ce63e8f29b0205eb1fc53ec50ece911c2bb1c96d35c7b0ecf15da7d0bc08f2c9bdacfd58b9a9daf12d04593621cb8ba4b049a170080902494ebff6961585c381a0c65b3fef76794edcc572f006613e1a236cebdf15ea62c784891701c8a5dfe3f6b60c1c4bf395f9f31b294ab54c2c142e75d2260eef817a989fb1da1463c9f8b354eefa4e92df04af0d2979afe75e80b4f47eff9c991c0616e08ddc7c187f800dff9a06d7cf842231ba8a4a3b179ce6b7617ad3c72baa402ab254ed5771511c1d747884b314e8166ac69896df7c63adfee992c2b8f388bbf2455acaa6b258bd80ea35f2989b3e123181cc0c0778fee83a93d5699ce5874aaac72f609739d44a74b2db7cc23006a376dccc25658fb6acc996", + "07c93809a845e0b7331e9267d171a1b441fadf7472e2bbd15175a3eca1bc6734662994d11bdba5fbc7febf3d11d3f1fafe5da96d70a8119f8c6a41fe60364bdfeb33a7f381a035e1d56ca10fb8db0b71b991842b6813614296911c4358a6c1ecff606536a855ac0d6402183e889be3487f8dea09698be1eb62368639da5a97363a6df8669ccc4a765e2bcbc35e6a", + "01846008475f1182af679df8ca72502cc18e0497db6c9ae358c9471f827e68b53bb39012905d9e0117ad4a451303b65ee5ddd722daa566a9b7695a5f450b03f3cf17df7f32fe6e856863112b4062781a01a6719447e37f33cac76d1dece5c0e09173a287fabf8b879c37e9af5d2c38dada83bbc5ff3262af67c0d6d63bf275a830d356e00ed834f4e70b83205177b64e7765eae580d549a5b927c17f0e93a9e749de086930fb3adf148529a6595139b8af547d6142382cb129ddbc2682a469994771b9", + "b8c02ec13460b95d50eadb4be6ec99d3c9c41812a5035a99a20b2f5d06a481ac59211e9ddba705155eabf29d67a593811bc5483d51cd91dd1dde544fc7645d12d1acebdfffd4efdcf9476fa7080aba951c65fd7db94ed0288d69d54b3cda6de9a9baf9c9bf28dafba2d75d4786ee427f813f89f276bbc36de395040e87a78a1c773dca95af08ab1ae1b06ac4fc" + }, + { /* i=9028 cDividendBits=839 cDivisorBits=503 */ + "0eb8e7f45c7e0bff250c6e78620d61780b0c0be44f581c2a71c0aa3b08ca46148f72ceab55f37db4e406e136eea71211c573aec6c7f5211fd70de35d5a8c52bc0ff60d258d49f6c223e4d6cf87f716d7413533ae27a12ec6b3af4dd89651a910ed4c0a35a2d7a42edf", + "3d1bb42f6667e522e2e92ffbab4b5c1e936072128685b1d9f91595931a1ce67d027bd9b8342143f0cbb86b27dcfbab6098375106b3312e97ba25bfe41fb02d", + "3dad09a09026a1451d46ef9a8bc425d750f41ee190d40cf9071c651218a7c086e5d589466c488801acad", + "2bddf4174541ada0fca427735f80482c40f71cbb58fce38df8bdeb47f477d76452d4bc126cb0637951a0f4b0178f9ca6c6d37d1d634c1ed2668350cbaee476" + }, + { /* i=9029 cDividendBits=3327 cDivisorBits=3316 */ + "3fee40e9fcd7878f82ce45d6f35d2cc069b13ce02ca509d8ec26cd44d0fa10ce5f9ac566a87df1e377f36e1bbafab4765fe35734d1224bcfe7ebc139594378323730a2ec8a497b5d8c70b0ec4161cb6b738a119382cd292f9c406b65bfbf23430166e9e835d811b79c24ac26c97f9ffea3ad7c72d2606a5057e83375209b47ab0e9be113421806f7dad9597e9dceb9bdb9a1d4bf74a576b1f9d09289645307937577d2a84eae333abc1765f54d895cb34345b77f58930b2d61962e0f0d5886b0fe059a3182550a6299a334b395caf187900294cfae73e814829c8e7074bbc498ffee1ce6481560676a63a4c4553f544603a1421a4400e675493e9f9c65e40e8e213498796c10309d961d3b496dff53074a4bdb13a482882fd1309702d234b5518294f1aa7ff323c01faa85692ca695e91d6176f8445cdd2149896b87b6f03daebb8b780e0ae4a044cf63539e755b37172ffe77d80602595053b163d9249bd164c928a6626c1cdc19507a1921abfd4f57c64b051c42ae9f0f4bf1cb58f97fdfd9de4883688bad9347b3f2bb8dae778255c9f92c4fb80722c8a4de2c787a5ddc35", + "0903115c42da2254fdea1bcf0713731da522d68744ee664499edc5a38ef73081a4b9b5b853e9d75a8253ce6d6f339b918986506f3e6e0026485fe25968fe82aaa5e654c217bda05f498585dee3d663d0468405abb10c29213612e315a42bdffb85fda4fe2083dc38a4d1f5402fc9c272f2e0c578808d556bf4e4b6453c9870278c6f43d832adad26be55335072951e6c6c87c5ff3cee2cc4da071ad57786360166e97be09af9dedf69598bb9b8b36c6c47d4e3a121b0dc943f664999a51568570f1d9fb3744045157c2e7a09bca8e2572bce4355dcc0b971383ee2ae173af5527764db71ca0319e48c47e5dca4411a95563df30640ffcbd3a46b5e7baed4637822670a219e369a9489a88105f4944d0cb6fe5e03452c37c5a9e3c6890cc44f95f4996a2194336fbf31bf0013b4dcfe1e8fdbaed31ca332fd31d367c64ba2edc802ae4e18620bb0a618bddef87ca15d98281a4a5459da5ed0f1dd3838523a3d643b4e631796a13329197a8b5fea68c06270eae759c25be669d95215f9d9052021d8a598a362a870b0a0d767733813677fcc20bec8f44165803df8ae818287b3", + "0718", + "7dc3829c240499999092592b34261e421b109ba9e46248381b4492d090b6b7156453153b22396b70edc36e249ce5f8528c9fae45fac05683938f18760947ae56b9abb1e051b99ae583472128f75dff51895992dee56c04aa70843b27e662c2e79f7d7f30af85caf348677680649f38c303a40275d45a86b1c679fac1ec12826697cd9a9802ad04acf57bf0fce9ec97beb034dc6be91d8f2e2c2f1c72f879836f8be70351ae39e8c42ec7d750939325b788c051946e71bfd893f52248aa876acb755081ad205230b982fe837cebed31436726987cc4995b9e766d7ff1885800faa837170f60ba27459e2f28117fb2a7d9ce25e6ea588ff2e4f95f05b16cf1ed29a89af1bcd80fe599e8072f035075182f702c71d0dc8da408cea69fa420c1c374a8cc4ca6430bd6c79cdd61a6eb4050e316ceb1372b6d3015c3610e6476ebe886fe111361b32a8fe06debc1428727d383f891a89d48b61ff81d099d4eade5c47497731795592dc3bccc7145263a9d7548abf787f2b4906e537f749e0383e9c571d0a187d2b3e2befab5b458addc2339f0e2ee33573ac2ed421691c46b3e6d" + }, + { /* i=9030 cDividendBits=348 cDivisorBits=208 */ + "0cf87600a01448e0c66a9d337cf7b55ab2cfd8426ff55d4e73fde981bca8d911fb4308c8d59151ac72e50bad", + "da3bacf8e71ba843bd2339e16b7ee83b8945bda695af4971f1e2", + "0f371783fd5cdc02e7bbf7aa8a7c62a3bdab", + "b70ee479418fcc6a61bddb00a80a0a3d013014668cbfbd4e9fb7" + }, + { /* i=9031 cDividendBits=3919 cDivisorBits=2089 */ + "63aefb65bd1ea99ef1064cc25df7f5f3ea8166da2bfa32763cde4170c7dbbd213b4dacc2f987fe1c4f721c27cb136e03324a5d05d887b0dbce58cffe074cdd793a2122931c0e4c768bca79d89bc5ec0845efc3b5ca7c2965866d0487103e6bf35c01b3678470d68027f67b3c38c1d8cdc734463c9f39a98c53685e4a2c5bcfee00b02d266a2284cea0afea80bdb6d9f24f551959ece9de3febcba183e3d33e9e4d2a48193713494780a95480de84bc0bd15423af94ff439a26fea2b17cf57c65710ee3494167a1131cedcd7f66a5a5ecb88456e41284df564cc34a525d9524fbf6718fe798c6850475575963b10a337b5e16af9dc8f079c57fa6dace498136958dc5052c30925178708731d913aba3791232accdbca01a28c7b4880fb7d53efc31b7378224191e81ddc4c90bdb2f2c5a1b700b101afe510f0fc50ea2464fb79ff658396210a6f2fb9134c4024f5c7ca3fe53aa00a593e2bd13e3ecc9deaf26042ca4b9d7a288a947182d0795984e2e8dad30aa8c8595f4f7b23bf3cd0e6f60efa8ae34f06746281f9392f21984e85351db41bf72f9152bb438ce5580c9db5e48ef0067e7690d2efb947165be5c660de75e8c8f20ee37908c47faba97d979615d226f5590429d16ae915ae626d8ae6e0c162665248e2085b1428ef8d555213b7766ea13c521e4ef9578", + "47aa21b2839f7fd97b21404eef9e53044d05ea5088c276403d903653f67dce7e65303550470517a77379d0bada99be5cb43e716463bf76978c9a87e908610fc797226d9d7734f4870a3efb79b5f531c91607904ddd22d0e49710a7e08ce0e31e046d576802a944a8b0d8230819d754a720b137a6e054d8bf8745099095573c04a9eca441b172259eef86a4a7f9893022999f80681a1337afc6b83a77b9725d71f03f0296d390d4ccdac38bb90e58adf61421431a44a85e9a69e125ddd0fde0c0a8a50ea5cdedbc4c786f027d8675c7da0a061bdafdb4fcf679c28abec18495a349f0a6e5d725086c10c5d8ffdb35b3f7b95bb47713a42997ccbf6d7dabf832c12239a41fed", + "016416d6087df009288014b6a59aeefcdbf6e4893a78b057ef5c7f5fdfd98065280639e64b9491f182bb2c15c2d8076db7693d4bee5c714f2ae74c41c2ffc12ee121c17714370b039f7ac7dacbd40c4197901df21ebad3f547abbaa091cd2cae32a6b087314cf8adb7af9d7026afe282bf146b39fcb3ba25cc8ab9a88910355132d7d496073343c9148b694626cf4f49d55375bd81a9a4ed434181cf197b36eaf150326a1502ac12cfa9e652ecabd70e8b4c6059cb88ad70baad3098b215707c48c2447f8b8aec219b4edc0e6a220d8794a528bef44cbd2f214c41b2e43099c28fa8c51ff8", + "414ddc14304f8598bea42be334c431ce77041564b91909cf2f77f82b96c595a50fd8e0969ec8dbdcb9b4ceacd265554146b26c89c944cf88545018bf45e0d7847cebfa778a9fa266dfb4e304171ec9b11463d808138a73beff2cd850464663370faddc5bb10a29ea0994187ab539a73378a53af7c563b392a6395522e1c1229fbc6c13dc23678ffa4c5d5d5931ea8cc3d089c38574ebe63908125bfe2ef9d53c8edf43f7173be0ee8d98f07b40d3043ae625c0fcc6d1ee22e0baf042d143223772fed27093ddfb3eac3131b5aab6471428dba36b4e6378ab6439e5f3f0c903a9734985bf1ce211f2aba42a7994b774f16c711e11cc051da71dfe3553ff26d7075c14b1f4e0" + }, + { /* i=9032 cDividendBits=1918 cDivisorBits=193 */ + "35a800215e29e9803ffd7dc18e51bc7e980a765af65d91ac3f7026cad48ba367fd2fded14bb378bc4da30905dacd57f4cd2b0c7c5d9716d82b0152be67d72aa4cbb9d43fdc0bb85cb3c83385969f9749394c8c81e6216089cc0157d0783187fd07791353d509ccab6ed367f6f77dcfcee0305d95bb022882ed3a0701040d036c71d8bfef2f3698fc01ac3398a51125d57382ed070aabbf88eeb372e234ab95a6a9e004bff17edcb58448c6459acb7bf8f296b56dada53e08f69cda0530b2239c34dfa5d68aba27a619a792f48e477beffadb8088b293e6ae47e921d0fbe99c4d2750d4b7a573622a3c22517ea840fa0f", + "1ee5c10f198271671fd7580e80e6c42b60dd950bd95f31e9", + "01bc912abfb04885b3ab76579c7a8ffeb8d74ab5028aaa67702f65e52b265a73427717bf27f41f0cc63d673903f35be21ff5bc827ea82891777b211b2211c89ecc78ee4b45e4f626a2382d5befb0f1142bd772c7b6a2b2412e39bf8ee87467c05af1a18d329b888df9f22cc26e4c5ffe51e74a38ff8dd9b7a5b53414d7253bb8b28b94f152939bed773c1c865ed4270eef728d2ec2148618043a9239d85915cdd59c0c7b649295a868776d3445f47ea3e62c37acc010b3083645fb0ac09da07a00b31fa1b541180e6e90b90b9cb16d6aacb7f1f3acafaf9c04", + "1ce19946f7fb6b1cd17757dd3fb51cf6c178661bdb13366b" + }, + { /* i=9033 cDividendBits=3770 cDivisorBits=763 */ + "3de606a19b60dacd8a24f5032851f48bcc52cd596a560e24b20535061379cfae9b4b575da18ea9fbecadf5ab847ca38474b9c3127faf0470a87bcbb6b1c6f7f58111d8ad7b2b11700e1012db7716b14ecf297ba44f7f68a7789c53446289730f3f715b49a5bbc298951703a2201f6ec9d40c440961a71a8bc35f61267c2ab838cf3f1288643c435d21243b7fa3fdab529cfcf07d54b917a1497ed5675d87202d3cec32bd207b692ae864b9391f4e3520e97764165cbb828c9927d5ab0b451bb2cc639a7be9a3b1886d509840b14accaf359e299dd2c4b805d62f8112a4d3a3ed72300f8b39fd6257a4105997d5f3806259d041dc9e0c52210f14c38fb1b99424e39b0b4f21dc8fea16567a829051ed6b9e63841be38ff5af5955a8356ca4b1fb6b0832904714e6414adc8e9ec40121e2a8e9710338349cb2df8d6c6fb349609d11c452dd7b8821eb54ccbdd667aab4f64504f070fc057d7adc019d9ff77e492c81dd86930c3dd9d53c75b3104ce8416d69cf81751c823ac94abcbe4a06659bc00fe7b075c04ef881e1d4da92c814551068ea8810f9d63842b1e17df0bd1dcbd2740b22cd7095d4ab4c2faf4709a08658ad6f05849f49143abec11c3b02fb8c1bbd995adf8f469a76e737eeaeb019fb422c3c16c2e94065", + "077411b67c41de550e503a9705bfaaca442d427c0760ef8aa88bd972adf332caea2ada03495a9a2c0898df00b02eccc63973fa1450471f9610800fd80f1cfe8bdb88a5235fa4053a827ebe4e2f94353a3123514a7294dc68da10698e29cafb31", + "084e03b1a0349cb7571cdec436f7d9af6c543f7e32a829cd6e4c37c4ca2457bc96fdb4838907dabeee764820dbe0bf71909ec2020a9357c8cd112c437af24ca50b80510271f24d056ac695d87cf180a2d79a092d58ad15d05893120b4940ac8e5312ae668f86fefb8c34cc150392c7675a8e8d2ebe853337e8130658162356a8bc6fa2fc67204cc9796e9a6d8a88c50d83f8947303454120b0b3ef351735e16f4c68cb4ef2d237ba895996b03efa1776bba66b5419dfeecfdb1b04e93fa774733cfff857cb6c791f81a226bc5e6554cbbf8dcd9e585842f27bf4fb4d22476e6e5d2a61cc9d937b3aae76085465f11a7700637f3bf9213195620f291d64c73eee72483fd011c53e9644313bed26daf34e078f71804f27accc8964c82056cd5045c1cbbb41863b388f05bccbf411765dc728c425940ea18054322a4f42cbe04abf52da55cbc69f6148a6ccc31a61d095643d3c79675a56bd99b1e34475fa0f5a1596f29edc498834e70c2ca8cf070079906b63be4666738b76", + "06cdfa8067238209b2f32538c32b9068d4fa6af1730697996ad8503a0725601b13418363ba451c234eea69be65e43408037f48e46601a3ff313d2396dacdcd6dc695a13609642a7200ade99f3aee0a90cebee0856a3b3ee112e5b033ebf2dccf" + }, + { /* i=9034 cDividendBits=2584 cDivisorBits=1951 */ + "6b25454cd41a075241435b0123c5049ad3e80577453bb7d010d6ae92a7d43eacb3981ba4a853031ce6f62319630314e708ab7be64c79cfc8e63bfe3b43f167e06f27f0dad5bdb08b919b64d7e3c7f98e737279021c7d322343fc88470385f38245ac215c0b67b60d36a5d087c7c5489b47577ffcdfe75ecbbfbed957e43a3e2fa44dfa63c89f1999a53c0eabb443256374d50ba60b41e15a6b32ddf23f88aa7089900cced60deb3f6be696ce3320f14eb78d1d7a631fa0a1a6abcba0739c361e592a6ebf7e419d22b62c06d1d03c2a10439c1ba70e52146edb3fe73cd2f6dd11a45b15a6f889baae502adda9400d023be5f07348c5ca274f789b9fc883c518f8f995c1c5a4350d9d5fb9777ca388741d55e6c424c267998568b72564c21443d120d3fa0feefa80c1b4210387bdda4ac2e921ba28fc202513e498c100874f6365991a1f", + "5974aa52888187b7ce33abee063bc8dbb7dc677e16df712d7701c590b9a4193ecd9f27fda6108f4fa3a2cc8130dffec593d3657383148332db40a302b83d923a9bfb4e7c1916d874a4fd791395ac4c84e852f5aa20598684eb52725dbb2e2dabf156c7373044e4886bd4ac39de1725ef698acabb9f5e29d2522eb7a79bd3d8b775b80b89f311d986da15ea948fa466f2877f6e513e322cc80f9744e718e809172dc894633cc776969dc17f4bb7ef942466882e02ef8bf4372ff018c296e6af7c887f75986b9b93ac4fb5ad2a8cd1167ba5720f780ca4b715ae1e4eb1aa03974347ca433601ae8754cfb5c405387b2ec2f6bfb023", + "01329fbd9868e7afb329bd939de718b008424767eddebeae32cddda0fb1b49000ec22110b26e57fa7827674baf6e3b507b47f6cda55d7c5181e6615b442bbe2d1514f3344071d3a18c3b53f31400ad7c", + "4ca55c89324b510cd3c51a447945fb4130c62bab0bd4462ccf74d9aac4e7a35d47cbfa70a4184d362c790becbea5dfb541f1b8b7461bd5c87de4dd21da12e33197bcd7ae84b2bb86ad3f0d9d3605565841b6d2f94ca879bcca3c39f527095d5e33666f84b2d471392c70497f8b894cf1770b274fe47835f3698770b8c1f5f6c5c545c5364c4d7ff69a56ae63a1dd46815e6c1500f8f8f34bf314789d7982d90ec9d07acdfd02ec06abf8ab4becb26df91d6ad3a85e8d641b8a92b353955af84f6f011246c660c2b4f245df89c42eb65ff29245bda045267316e7d40c365a97287c39679f82f6fa689ad494d310db64389ab8222b" + }, + { /* i=9035 cDividendBits=3429 cDivisorBits=152 */ + "13880fd46a63c67325c8dd7e68993cd61419efbfaa3f49a529497936cd8f8e12486437b96fd5c67345ad1b69a96b4e9289b34b962dcc3d91f0ab3dbec73d0624b4e69f1f3d338d3506be553e7cd26aa054c5903ec25b600a9a78b4982181aea53b63ce520918b30ab6436de5907929e64d27eda13b7c3b1bffcf44fb746696fbf5b4b89d61339471b52fd86a8090586eadba9319863b2e5f07dc061b11c6463746345e5a398324e6faebfbad8f8dcba50aef65952816dd0680c19f766f55af97d27dff7a6556b6fef8b78822b111828f53a6aff14b91df7ac795e1b194be5ddc97f707da438e2dd62bace8e97ad9b85e75e4a93e2f39d1681b5b5652e502cd3e0c180c997505df2ae261683f6658949c40e4e56f37104b59b1e10bead4ce97c6da265c00f477e0ca1c0669f9da42e861edd50cdbddd2c0f72592b32c118b64727815b18fd9845b80e43d9e387204f1807121d036a27bbd8901add6a807fcab19d8b5df3c04cb4fb20043af31f625c9bc80aeaeec0d4185c15c34d4b4b6e2ec9ad8db5a10aab939d56b5c3d0bb72f472be581a3d2891b10270d8873b76bb9b451d171652220ad8d5746dabb1862", + "808637b795ef59738830fbf157372a4480c282", + "26e7548d1e6a2963c2a6c89fa9498ce5c91392fa8f64509a57d3c31bd3adb86bbbc9a1f848fdcf33be5601d12338e3b27c957f69c516255dd75acbae4a299b25cf25e94eec4f33a76756872b858f2599b91c1f0fe0ffd05877bfd8472a174230284719c44f3a9228f4996f97b7692376fce9649cab03262de57bad40fae9b12c91dd86c10d69a11c3bd021ad5a6d89a14144fb40eb1b7fc8f7cb1141ce945fd1f6487652e4cef1abed953280df442133c19b7294d3e3be5975876e4323758f4b234c4fb5acd6362efac93e205d5ca243a2a1a537db7dd1977e4a9a8d49cdc180b78e75500e61af37766f09a895f2f298fa9620a6088e1e2efe160ae99f07c53649f617c2d55557c06fd1329c3ad5f681f70d8783feaf071d993cfdd0888d7079d554373c2458992a08412c5f9a2d41291b3a8a05f20773b3080de023136d7aec731d7d2a5e6cc8141b226e552a85df24a57a2310ea81aa45fae1d575c808c2aaaef07ecd80f9aa6e7a0ac1b760df1b2991a076c648008b71bbb739162c0a8c281a50d20935e272a1e8b2e34fd5f10012b4fa2be05c068bb6a21a", + "75c0c5d4ce201b6d6762f5e5df196f8c25132e" + }, + { /* i=9036 cDividendBits=431 cDivisorBits=426 */ + "1a58ba263ea6745d7500aefc3acf92ac72a6a0f7c637612c258dfb34346eab5197fcb766f16dcbdc31c5497c0ebbfc4b9abbe3bfd221", + "017b4cfed6e9bb6b73bb39b01a70b9ccd576208b9bbdc215d9d578cbf081bd698d2ba10df32115992bcee18db5396d337675d72deea4", + "11", + "01289d39f921023ac591da4a79533c1245ce77b26e9d7db8ae60f5a93bd1174f38170579cc3b5cb049084f1305ebbbe0bce899b2f93d" + }, + { /* i=9037 cDividendBits=1499 cDivisorBits=1448 */ + "06fe552e7041f111750eabba7d470546002dc48405319fcbfff7ddbba12765f3b7236c3d17c0616f2aef7fde785294253a4af2ca0c58c84622ecbef58855e99e78ea6e52cbe5ae3123ff7232e0088ea0a570b84274c816d383bc0b7e25607e37cd1794054c7ca3f6c1fba94722b2ebd4d14b59f8e226df08e28a2d91e45805ad6cd03ed0d41d013b96bc864a07738ea6c9c5522083825820c7dd95733ac87e34d807c9ef9a35afdecdc12c2b94d03366274c1e156325b118f54ac626", + "87b1e945c9da4c4a9b46e5bd5c0816952dacd644bf85d17035cd48be6b556bd39c6056aa66924f4d129523232b2e07967329975497913c31b857dff96e3304103b11fdf8772d2aeabb2ffeb36d4afb25948b5c3eeb3bf86115983cc051be205bb6ec35a8a2afaf25e02596f2ef3731a3483d02239fde45ce894b56e318abfa45b980f62aeead8df42de0e83445c7083deb31b716f048b1d7cb4faee3ba3825b12048b69aed0039c04f62ded65b259c339d6873a369", + "0d319d1e70b3b1", + "29e220c1f14e4ec480daff4ce484be33dc4d9fc9fbc6c8326c42281b95688edc2191844331fd85c2d8c6d2fd86d4f30aa3ae0572343e4e4af22ddcf336656c09a09d7b5003b59dc40e19847386d6facd97510350683f414c8ee4e23989f5d436cbe328e290146d4b455293180b7aa8ca2fb8d891d795c359b06bbf97e44bbdfe4489a16f378a2f85a617f8d4ccc9ea1fa79ce5c39279589eda5e2ba5afbcfa0c565633516b6ec78abcef6454faa56c611816245f8d" + }, + { /* i=9038 cDividendBits=3327 cDivisorBits=519 */ + "301eaa21a4fc04499c33999254188f0ac4d50e7f1e9345ff22178901d76bf0b28d651520962de1d505e3cacd9cd6b9b52ad5675601e82e72aafac34d93b496c1ee5a6c4d43ec057bf9540de2a8c2c86fbd1574f4e20af8d28ca7aff3fd1a5d385a4373b657b3b81c70c7a758cd991d424b2e3831680066ff57ebf2c23025bb3f56030f53b7c2c27cc682a41222ff56f9eaef53453f77111d5a77f77a625f20474eb0227220cd2017a493e6d8092755c4545cfefe80d25ee0abc32c57a91366fa994c19800edbe5c790ce2f4efe605b9d4144fa6245157e1937c00e696f602071210f370586af480ec0f0822eacae308ecc0ac867de8bed2984917e9934c4f8a5f7e693d45e6a5f9ae87b6497fb766b60f4c33f4ae616c7527d81e533580abf9728431e07f6782746159ebb8e906a21ae05bb90a14fcbbc1ce9bcd1daf0fb191c5c47bbde2f05000e353de9ffd60dd0ff650d31b5219bb770233f9f87b675c9eac81d68f98d040295bad77cac1fc542090a1f44503c86f63e384c30d84461c2e724b93d26ae12f79571c956c9df68f403a148fc34227258032b963e72a3ebf798", + "5b5a77ef6a2d764153105704879d63d0f6b1e8085308c96fa893eeb0ed88016b9be666e3c7c9b7e75db5f8fdb6267fe10f7cc1403e5db364075dae79977cf12188", + "86d8a56461683a80b2950e467d95efbfff5f9d52ab68dc0ba228f2c4c19c672516ff617786eb39eb27e027e9dee22dead19d42a067264f8df28577a9955857d47c888e620ec23c10f7617aa25f5bc8d6eeaf7e0c8ec9c236362025d96fc235b4f1ac53d29d294f342e6a18e21b2fbc19322545e640021319d1fc1eb157986c7974d8b0433e145b9d54b117cf386aa77fba9e0760d9ff9f535070197f6b696fae2196a4d743bcd328c85367179eb35e6e140d846c55dce4b5f9d4776f2aec74fc478e5749ab362d907608c6619636e999c1a21917d5fe7efd5e707ca1000d5d9e061b0ccd89091ce4d61d828685df3fe94ee9c44afebb119cf8a6401a827fa9ec7549b618f1a2336e7eb6862e2401accef9e555c8f0ec8a73a213ca50650352f7bdb5b01be2a8dbeedc5438cb401a0ae2864ca688b1644c02e5872226cda2dded96fd07c5763cf970344a84ea6c68cd834a924e55c4273d2dba9a6d4698443e", + "472d3911cec44b41c91ad046da3d5c32a7a028ad507bab44fef92184a125efba1c3ecdfc69d4bd38d1850c250bd59644cfeeebdd653b4a0e57ff4559533bddb8a8" + }, + { /* i=9039 cDividendBits=2659 cDivisorBits=573 */ + "062bd8234299aa2bb5ba211f38c93843e625e3d570790d1121bd7655fa7669b7ae54fb96ba4fbb4d3a5316edbc85132a077da3d118d6ff614f9b7314db5f0aa0817e0c8f48d4cfc6a58702628d606cb39d83cbf48a30f7f6908718bf9ac9c170819c926da621177391eb165d42e4e3ce6d6a8ecb469030f3e10d086186f21e5f52aa61387c4913eda3b9574ea78e7d19fb0132422123d379c057c242beee8ed80f2106bfe85002a9fd5704ee0dd860e8c6b7158905bbbdc49e9702702a692bbb267891a101d87cbb31c94fc97139435fd97ce894f253f709649dc6cdc6562767a10307137208dbd216d673437c40c48d69c7f378d5536d39ae596ff67b7a75e5b1950ccd8f1b8ed1c1375c3c14d7e8df55916c718bbad9dfcb76d26097ec7dbd8b08c7045774984ae01f96c07d0fcbbc6a0c5ea48453d3684fea687bf90c962f6a19dbfaaed728bec0c6668068", + "034259335cbda4ec245a4ad5323f2664c502c994e2c0a37a3aa5a9aeb48a5e482141d8fbdf8b6ef4f0633f2cf7eb30a280f9ecd0fe66096506fad78de40ea29ebf524f139cf97e94", + "01e4bcd96e6fbac6a8125a87192b3a3bdadeaa8108a96db1e8842e0dc306103fcf7c9cbe258024419faa637d37ae7ade962e5d3721be2282ded17e95950c86b31522a99dbd9311a7195f8ac81d63c6ce233495e6d5951444cc01220cc4811319393058fdc617df2ebfa15debf2e9367251b26c5a4149453f71dcc5589be5f2f4ced9bde3e430829dd831835d6b4b7eb759b8b973568526cf482e172b0189a67a3cc74995eabf5d2199eafdf81841dcf2dc264f268fb52960ee56b5fabe2d1a18b80fba7ce4f46d3797103662b633195842275f6bda2c2cb4ab0a914057258b61622e0a2902ba3a15e41fc1654560c805c9af2d83e178246af186ab722cc092dca45fbc9d5fc2", + "90dd434817eeda78003c1dc09ca04224b1a5cea55dbfab955f6ddd0412ea4f4643f66f79ed76e1794ebd3440a25fb0813d352c104361abc3e958bcd3329565244543bfea97a840" + }, + { /* i=9040 cDividendBits=3910 cDivisorBits=2053 */ + "020ebcded1b672db72709b951c00b6be5f5dc25b090f4201d6c9bbf146c186909744c1c6dbfd16c3d4aa6f4245502c8a2150d85c2f5016e5db11a64f009545934dbc53b27ce5699236a8679a2b6e7f5d2aec98b1407310cdb06b0ade7334294545164ccd8ed96520b19c98ee85af22b6f4378a232bd5ff2b5a3e430db64ad3581e814d11cf76fd8aad82b2ce0e470a0a0b7a85e64f052d8c4add5fb18983b169a4c7dfc7be858a244a73ad27ff465f558811eb692cf1da7fb06b9a884e760572a8cd75a78fb5809e12ca21921b0c048e9dc3a203703f04dd3b0e90f785b30722c28ed4e2d3a832edfac9ad020010148ebd40fa5799df1c5cb62c62c8d7c367fa5817a2ad5758892114cab1a0ed1e859cbf2da7e426056bb0dd035db43be9d82f0c19e6f7eee529f0f90ed04d4860ea2ebc74096cd452be67cdd37257a4f9ff2e8026e7385c864b279bf9f97124003e8f4581a1268244efc60c33afc4e0d72f268dbce8a96cb2cc8ffa75b57544b1d12713d1bdc5941f6ed1a4e7efcf09b0b027541e1f4974cfc38040c8df056edc1bc2f6f3b52d3731e60bc3db069cdca724dc833891362bfefafdbb587d5c5726d7ad666f71d538d37d0f0a6b4393d7bdacb924a4a4e50fcf82b2af3190125ec1b2a6f8794a70cc0c811b6f83e256bb44789f543f1311fa86a67d6c", + "076716683d417bb6f64fc54cf0cb696e562eec41f05d531ea41b1f34088dd771b3e38983fc80033725a5309a86c48061e7539b5f49370d0441da48d9631176163bad413f0192ecc08ebc3deead20effe87b6abe7443a5e3cbcd91d74010a35cad85b4972c9ab51e1c039a9457a12dc99378428a3201ec7a1e1c394006b190d6afae4a4ae6acb118a092580f2cc4004677e810860002dd3b2c2c68fbb0a1237fe864c5923342dbd295126a15bea72d73599e73a46a7991d47379ea02da16abc12701800f4f5c90421c2ab36b8b386d4056edc21ed1c9346894b7d18d1047394fcefcffe6a43b35f1113d697c0483730062f852df7e2638f893f515ae3b57c09f6db", + "4727ab38959906d7b51c1fbe5e047e02d9405f84f02d70e50c460fb7fa09ba458e03d4c9a8c8cde770c4839e414f3c1f923151d950e9ad4252ab244249be6eec645d46fdd911f0cac6529526a35bb308ee0236d9877cc7350c1f8cb77f7b4a3f0073297556c6bf51fc869d231031b0aeda5b4ad393f08849a1bae8164300585a7701773622a842fce9329695e30305fa0f4fd12bb6ebec479c016fb8f09757c9c78ef325c28c70e8ae4658af0f03a0dd0b5f596b818abaff67c0433804a362da33030e4578df4eb41563e8fc9c3e1e868ae2f003c4d8427a6082853242846117b476c3f748f1facd", + "021aa6e334be9f3c65ca51dc6ce3b24bbf7eee0b2d27dc1c9db368c73cd9412139abc2c4c6a11013ac47eeb9083093dd5124a208be35ffb19c8cbc8ed66056491abb4d57979055dbf540314e0e73acbade23be8c85bcc77a322c6e62579bc92e74c7084f264e422d1dcc04cf0b13f3ab5e434cb67c0276b773d76395fb10588b1566030f0f27c8526fa8fbf8b4523a5936d92384b5c2ee6f13ab490b8c71f7d8c445084da46246b4284372b0b93ad8d848ff1a436a1ce60ada09fe7d4c2cecb623b9956b8e45d123a3862fa5983d17669c2061ab612fab7bed3398cea3b16bd11e355199b83b0725a6f0725144f4ddb86def0adb9165a57324e496ed687b6ef20d" + }, + { /* i=9041 cDividendBits=3548 cDivisorBits=2372 */ + "0f8fd3df6aee7d5f44c1a7aa08ec991eed3499cfb9e81ffc95416b4478823fcd6113eded33e1a2ac77d461049ec91498a5b46fde3c582584a8dcdaec8defb9f0464911f37472d8f229f04d0a29ba0e33a607ac206f5f59fad7b09e9854a14f21bd1ca4bf9648e156dda27f56dda696316412fd5c356c8667f1a8c9e097c17553c895b4af2d1360d828d0971c3be031d11479aa35e1217c759746b9f78bb8c83d7bee62213dc89c3a58bcabbf968d7f73174b0ff4753def45b198f89d612a5228dd6b531e815866844af1defcaf36660b051136a382eeb4ffad150ced6b8061f3fc491e1877bab80eb0f96d143449c75ee7f895e6dd279b4091942ce6e7106d3991331d2cb202b26bbc53c0bbccfa3f3ee0c9f16295171cd3684c2a5ebf3a2b7fa6cb42055f5d51a7541a39431ef506f1556413c83dfda8f26a586e278c1388f1d50b49ed81351ea11164cb0b6e16f963d59525c5cbee8a6d2613e0102ea6aea772dec2f15cedfda49dd58c1de9c79bd222bf45b4c2f8077a235685049dbaa5cd47e2f0220ecf34ebca4ae78cffbc1844de3a2273392f82ed65e0939810b2681a4405dff7e41d67440ecc2083f43399d9be7cf5bedcf7d69dcef8a838", + "05709979f5191d48c1ce5b08dc36fc149f093fbbe77d8d3589a658a9dfdac1fc45c0c9b1e7491d43475967f13cb476166ae5fa837eb9524bc52f4f207994cd2fbc85f1edd6170be606621a5065f3fd7453ce57f51d67a6d106822582bfb2d2356806a6e471b1ed33dc86c56fccfa11fd60eaa0a4fe639bc947f4ad1f2302c99b0a09fdd9de3a3dcc6bed1ba97938633d54412a39a7896a5319c04edcf1675c50a00582856be6bdec973c2c1ed02b137046f83774cdb63e993e7502162c579c01f60cb7bd2413ea47d6f84f3ad08db8737ea58471bf247abd91b3407af24254731fe9fe268c55336641bc4e8cf52e8023f8fae328ab13bb82cc2327196abeade50f687c51cc89d3fdc6e8baf67bf563088b60d7a711aa4237bfe535c44d6ae929376a69ffbb56debf56", + "02dc57b0f135b01c383304fbb2600357bc4658b6fc3ef3ed9a5ffd2a980837ed1853faeb5e8be5b6a8680b4d777261cecdc2e94f500e5c824711b60da08cb6a3ad96cabd8b85398c08d292e8692f9500907378b1e9dc0f5a301aab589b10397843bbd3c6791f678c4de65002c5acc8839775a6a8236a5a6a573dc974668a7812994b0ec8d3ffd23c5dee0a28b13458c6cb57f584", + "02060bb72446282c86455c4b150d67593a78e397ca189b2ce47df4ff95f39615b4632ea19f96eb0abd9057c67656e7905429c9df600dd241658152ceaca3aeefbac3d3d323024c70c8e68cf20f57efa93c536322a26e7a1fd04674efc5408bfeaaf94a62bc78d25e110fa563e08975a79517bcd8c37dea7d402045f7e15e54c58a6eedf5135a442dcdd0d8a11f1bee8fea3e630e9badbc31498d37bac1118418b649035dcbbe7b5bcfe607dd67868088d099f70510c3e39c10f1a7931bb56cc06368d75a10dc1c48f30f30881e161316c3993a5ccb3ba869d17f7d9ecaaa74a956196d1c1e401c8c86b5d5bbde7b924d1d2c355ffd0aa99c611f78620e72c81c5629fb9995cfff71a3b6aea60a3d3521fbff9f8338d1e3de968e15e37de95d5aca007efbf19ec6b1e0" + }, + { /* i=9042 cDividendBits=598 cDivisorBits=446 */ + "35257c230ed7febcd8aa95a02b90e2303acba8c227c13be81e09ac60e8a1697365fb97213248748ca1c728498a12b5ff747a2d76fb27505883827a1e793d2e3a992dba1f57318241d7f105", + "11bb75545089ecca3abc824377306452af025e0e6bb42cebc0a9a67dc2058393d9e3969b4e14a4627b20066b84e0ce71e923ad54d590c4ba", + "02ff45e82a61308be9b1c0139f47b615cfe9c677", + "01896516e66ca92ac585809af0eb61353ac9693d7af1010ea281b4914b4bdcfcc7feaedeaf06febd541109a399044ae6467932cd901aa28f" + }, + { /* i=9043 cDividendBits=2843 cDivisorBits=2108 */ + "0184a2f8626ca77628ed5edf1ddaba8a30ff680df3f700298b676e8a0309552cb8297054cceb89424657cc0c6fbc3e41a1a3c832227efadf85145bd822e22b9a5aa9c20fa2edb2e3d10c1c9d98f93df1722b71e68cdb47743eb4e68bfde2c0492cfdefc1929720037134b250d2dee4be82c2c0170848ed8a128fe9fefffd43415b92e4481e2f879dc602440a8d430e60fbca518922e5dfa8a07f504f442ce5114b79320959f60913b4cc509f69ca4dc0bdc3cb78ee6ebdf581f1070cb7f508c9493c065a5d29b8e29f92d4f6c217554c130b7fd8d2f4137bdb407756419e70d8edf94a575b96a90dec6d9a4c011f8dfad0e5bbafdf72cdded58edc9bcaf5f7b6b4cd963a14decebeed758b94769126cc527e22a3ef04ecbea83c4dacff095845c31113ed0f6fc5235858ef79371741022a3a8c5f6cc00e1f44505a4f954e4d48c6ed08dab4d722b0ebb9bb0142a0703ea2fa9190c2cb34a282646c0eb6b4ec22984894d6", + "09f743d22808435518410a781d09a32f10cc8af2a4fb58c2ab8dd99f44574f0893c60bccf22cb3763a806ad94a33b83cfc283952299fbb8584b6305f2e411a22d8e627203dfdebc12610f015b48d9bf3035974d90a503fde82a6777c7abf3063c4693c55ac07c04559e5a8c3028d19dbbd5eb9d3bd8ea2275901e04f83ad98e0281822bf47e9a2bbaaeb96671b4c5adbcf67efed2ef95d67f9912cb105d486dfbf733f9ffe69619b9b3151bfac87325f2df23adc5f32b66124817e8aaac8079c3238a7ff13a005c49da720860fdc9fc77881ec051fcfd2109504f1de9ef921e26f84acb1d781fbee2867e5b6bb58da561b41e37486eca4d4339bdc483bc117a6ef1363efcca0c19a", + "26ff293434e46a5aae66a089c9cbfb7532c68dc16e7dd9561c6c0e8d3551b69c102a610be86520a17ca29221322b0f3fd247d1928254418fb53848c405652391057e6d48e202d874fed45a84664ab38fef2662f80548dbd92b908233", + "0493f2427997692960316d9ff5f49e2580955d5e1e21a9b61ad648de2151c30702822b79a9e70ddc628a580eca540082f7e848612da67987691e406b02d343c4f7fb6d1694162ef26cc9d94ee8f67082692c14f94496af16524e2c9e7e3aaa168056bb680ffe592ccbd5eb3669740fbdc4d8265b7656a993c6bb25ce5e56131c9b2727b1ed83de7d1f75d91f560e000253d6dbdaed700ee1983fe80bf20c76b30a9e03cb5b87ba62718d36892b4553545f0a3f16188211d300b5773571a08d417bcb66ac21bd126619ba6fa5aa3dfb66828f9d95887b69779375403a73201229ddec5a81a22728122fd8d429f717f225669f1589edec98d5c6533a9ce3c827334fa348f76d51cf28" + }, + { /* i=9044 cDividendBits=3179 cDivisorBits=2739 */ + "032179a787021e61b05be5db3bf8d36b4e8d56f11a34ede79999ce2ab95871fb61dc4e50889bce1b42ebb09bd894d1826d9082656792d3d20ae03e9c287e87176c6ba7faed84df7df6f85732db6d6248d16a18afc6667d89abcdfc6ed4e29666b9d0f6d69f565da663f9c4a1f8ab9296d2647ffa26c522390e5b4500980bea3f0508067a1065c95688449a5089bbc6051d762b76476f30b653a3f5b6ddeb5c3e3d769293a825e28acc913cdc6c89e0822319c0d50a9c51a042da41680f6898961e5a594800cc05478fa893f693533570e542307f6e712a17148fcca4e2b5bddfcae7249b42412adad586d492d6fad567e2ed7034094abaf88d590320d1806aaf702eae1197051cf3d0648dace65c458e6058275aa68f9f0c8ef1238a3ce7d00ef81165b093bb639e35f19b271373d00a4b54d1cbff826865e58e273574f2e45c40c2fa75b218ec12919b4a9ab83504c801901a15bed03e3b98dfaac79f2e5147f40e303a6c6bfd5d8c5e968506b89ccaf86abccbf21e8dd610b338b2fc9f9dc7cd4dd8d97e05cd57fb322f0fc573", + "074af0ac98ccd77961cb437786ea6671c4776ba5cf4ed88208be3e2dba8285707871265401871b7b00e47ca84dee1f5aa87e52593143b74da6e37d28c4b40ac21961b8758ec1755b12d89c38bcce4ccd37f1816d0fb26e7eb3693ec036d46a5d20bad486f2c02766b64c32ade6f38e8fe83f59a852211b97cfed60044fd034e38fb2eadd66888923bb8858ad11605ebcc1ef8a7fd2da6709f1cefaf4c47ffc5b22b9b78522ca93c4060e67d964fd23cf8eec7153ecde3cb9fccbe7ae37ecdb4c48e8647823d10a2723c88d77dd671e609fcb680d66fe26b25eaf490f66e71d8fa3ffceee3168b6af9b8810b4f2811441b1fe5641228853c9d8b4eaa8a9513351cabc20aefd7235ee077dacb2c4a02aa74c9785780b2a1c91dc16d7b118ad9496c38be013e30035ed1d361e9d3ec83cfe3169754ec0df962e83c98c8081f9b69a7cf2a95a71d78ff5d4f7a69dd653d5add95cf2095c531b", + "6de6872d3ed7bf81a66a0b0ccc42e691b56d4dd7e21b7f0c7818954b4f94c76ed1d33df3a0a7603bbf36e46588303bdc5f4a16a1398ab5", + "06682bc7ffc875b41608920ced3682815414ed25d00e3fa53c41bdfa156ba421ffa646411aa467a12cdf7eec7a5ae15d8c738f28de218115c3beefd2c19be5a581d48c6d9d67d6451eef7b1887a4ab8073a3b6ebf842feb2f7c01578999743c1828cf30c95d89bc13e3ffb46ec45e5570691ea1446d2efa2617838b18dbc0e10fc007e44242852507bb7684ab9870354b9997cf7ea0f64a9f44e6b9ebc51de74a1a3114b1dedc8e126ff996fbeeb555d282a5a4ecb1013ae14f822d3b24b461669668d94513e627fd7586eebafd8cc95d2c2fe3595d7a1f0feef38e6b16e4ca45989fd3338b80524fb92a753083dd65019592202303bd67bcef0e7a276d1b14d323d83fd1a868abcf62853e8790ee41daceb5c114ae42a93bdbf593b4794edd46ac4f3be3d015849f4c3cb480a5a7222b86332f08e430f9c1ad752f37ea3fffa1c879b131fb8f1164bc2662198a3f843cdb2e14ff9755c" + }, + { /* i=9045 cDividendBits=2431 cDivisorBits=1626 */ + "31c1ae5d87a9121db109235c555b315daba3ebe26a4210fdf1694116669e50e3f21b5d744b4201d45e08bb20cd12a42b1600442c007032978ab7179e383ca9b5650f5ae29e0e2017d1b0850c9f3c1a100b672bedb20ca0f619b4a9ff7d16b0e6c1e17d3369b92385561e57a3e5fd8131288150324428255b9c8ad0e66c2a7ded1cb8d90e218c67e65c032866f08ab3d172b4603724e66c4fbb90af8593e34e42bd3d80e84b6125798576c60c09f0107ce25efb6b0c0c935ec836aedfd880023477b6bbbe77241206701138de61624015c1c1cce2908a84ac31b3cef30783339151c0cdbab89793de6f2743080cf4fe231241a4576283fc230316183f32fa377388264341130187ec73f0a5408550e6767511d8f7202ad3f43c2518869fecc7b25d39cf9858f86eea08e2be9b4b94bcaf", + "0277ac11f07fb50c436f6dd69ea870e62bfd787194625347ea9c13c7d6105ee9ffb75483376a536faa5d57ba03e7238c16539b84411a77e016fa7838e8641d5f1e36e7db554555e9173f3d9fe3d836f5feaa7d1a4c82da591548fb0699e5fd5c65bbe3c6a72b0ec8a51a625278c8cda8dceaf48ad973f3285973c4c803e82c8bd75d43b7c49b6c52443c77c834e71462d38735baec9080332ab230a1ce8df7431e8f85f3c35d5f7541bbb44a7fb64eef33958bb2a7c1b5921d511943744227ddcae52f707529569713519c25", + "142a3eb59cee60b0e829a5610873588703ed4134082af14dcd9b3e2017aa4bdf1d89318b87d48c0f8d33407598acb1421ca81f0f8434c58ada7bda4795df6b36f83ce1cd71cc486fa8d5ca5c0ea9024871d2f1d37497fcf1ac5e7ade646666a86d24d18b34", + "01949275e5de88aa84ac86d5596ff3c9d77f89fb4f12a37c6f1fde8eb289768343e54b650f35f5beebf1cbe8b5b2b44746623f78d727ff32393ae29d6c390a6f5f0e20365feff7a3004e0b988c7727a4a896ae12cb117e1bfec502155f683c0ec48ba902d3d445cbd06a1550791a3ad385073ec936e725c695ab367e4820ea50a2746df2d897fef41027f66476b5c3fb973ee39990ece4dda468d3a6db6b5a1f84853101e3a9c7641d4292c20d5f61d83e528acb7e07686f1a964088e6c183012022f7581d751d176103ee2b" + }, + { /* i=9046 cDividendBits=1904 cDivisorBits=501 */ + "8fc888555d4c9bc9403d5b8801fe40f1cf10c4c477957c35193c3ad4f231b63df9fff62dba60ca6892208bad891d38a6c30029a571315c77cd6574e0ed7c1b1c975dc1082d2f6b6070b2f6991a167a7452b562bfa60f623e4a80e782c486fbf636658ed78f4d10f2755e19d9d328fac92a7653298db012a1dfed06a52a87fd885daa458b9f648cecb9e074e52c87dd0fbda76beaa68f5da94267126e27c696b032aeacb13ccbec0db2535b08aa04fdf4b9cdbdc3d83c6468a5c9c49a5e06a3def2f25e27fea50824b48ab991681346c3becdddbd6d3a22848fe14c50df6b6a888cd3d57597fcaee3e7639527c908", + "065f1f04a59817f59360e8ec4e95865634f386105436fc32d5e215c14462714e693789b24d3fb654454c47ad4d0ff25ad1a398398a391d1d778a722f253e29", + "1690ff9623abb6bcc17ec5ca3eeed0f43331349976c2bc00d554ffd182b362dfe25511292575d2aa3a20e9340de254dbf2089ac591ef458d8ac85aba582074c7d5c63d989e0ddddf17fcbb6577eeac467d5063ed15ebc7929ffe3f06ab1dbef9c1fc3427ad59476640cfa43fea1a497607993e06976c750c5b9265cf8dcba59b44f73c9ee87d4f37df31c40427007c41fa3f6a2781a6f00db3207c883990dcbb4837a19ccf7f9923852abfcf836dcdc6", + "0254dafba94d8e82a53a02a0a593a921eca67333ab253924d899bf82379844a255800fe5ad9a3dab44be3d162581661336b55bae94299d619b6780d91de052" + }, + { /* i=9047 cDividendBits=3923 cDivisorBits=3158 */ + "030fcb4a261e76cb7b85c23974153c6e1c792802fc56e962dbb007e27ae369edc3104fb6dbcfea8954444ec57bf797532f3b241038f6d8633593f3bd64d3b3058d25b0fd21a6e34b666ca8eff18180a37ce2255a8ed3592469d518f546d70f9fe2eac138d679f153e28f540037981c70385b3e433d7b7e8bf44b5bfb4536eeeb504a0ebc8d7989018aaeec90541c8325cd735bc89c6a01a34b2186c02a09a132f1d49e6d29bed13d7f48f91eae97a2d9c1c0e6202f799858b973f57da9e0d880d4d44f323e48ffc9a9ba2cbf111ff3a899f78f06cc3ed182b9c9d7551dfc57342806b62b061008d173d894a95f2f9a640a790eb216556d328b5f74b22cb3e76e89fcd903d99b725ae9c28d9d6982da2df007b8ebad2b5ce7bb74fbf883f4aa9a827102d4cb593b0239d5ec44f70dc6e491602a4692c5ffd61e055a4a11d5fad8e55384bf99c2c333130275f8f1fc5caeca65b2f2d18de84d469caf618058bba7f5e395d88ae7a868870e949c18bd1bba7e5ffdd2e3a642399c48693089ac9601183841759dcf493c0acdd59a16279cf1c9a1f0fb568cce2278122d5902257febda8480544583c9f273cb09205416acc0bd4ff397ea500ba6970449ee2cb4e5f16436c67b768b5162c585b282f0140e5e215e17a5f0dcadb15855f6f89a568abc98618294cdfdae97509e7e", + "2af212437bcfc281783da7180c603b1dfcd84913f371d5aba3d5f4e909f01a4323d216266d3e1654d5c7b61c3fc1f95fd25f7f520962b66c0df0a4202727268490ddec9b3e54c1d6c0336564718d18e631be10704f2801a374a66dfe5ea2474d4a0fbfa210484bf5be9c3194e1ae9c8c31628b6fcfaaf34aefc0e1bbb99a4444a42f9e0a0d88f1f15f3cdc90b52df80ed9c65d3ef13ebe300ded2e012b0898ee0cc90dab7e15e35040bda5b188c41fdecfc056ca94bc5a4a2ee3b3d9be29e9a04c21d142490e9e174f9185f21b3e1ffa1bc419cdf02cd1f17c6bd5c44cf6080f166d712e35f6c606e0b072fc5f8bf54701f9c428e9ec07ead58f3e7772e23e4ca741fc93bec427645827a07e59974707bf44f0f9e48f89863e06b1f41cc1b2158401c69443d83f619f0803996b45835c420a568370e60fe4812394e8e6457a34ebc071e8357ca1b2acd1ed7fbe6aa6f5c28d4d27e413626c1d3905e38c048b1a8ff47f690e6f228cc323a3f1860b7031bafcb491c8e24ad0d2b7c5329e9c7150c9e522999aecf1c70bb4b7", + "1240388e6101b794b13a4a2a79476f0c69b86b06f82e8250a0526f6a8177702e6833abde6ddd384beaae37e8ed5f2485d3e00fbf6b432c84c3cf2e425fc7ae778879ff5017e71d5e363db8e97fd7a3cb714e6159fae8f0060dbc097adf2c10f4", + "2546712e7b425b4bf0bff009062e28faf7e312e62538d1fabb82620373700784bcd6ceabb91bcb7b7c6aefda87b34c90c71e0ecee5a6ac8feadeddcc4edd607ad2953da65657b43afe55496cee81f0fbfe865578c64ee89909cfeecaea4a920255cb01bf9a38038666a779bd9fd708cc3aea9c557148fd451248a49cb3c7fa7a683254cce710111f94f3d9a7f07cddcda58f43f2773bf9d0e7464a6f20591d79da55494ca37ede97860a3ef3044e7a8a756fad75ee2d7babd9eb0a22b06918dc4dc75fd9e0c0a245d3723044541566010af30a9e50884b65c862d1ed390b3298d4f919991f5a2155be8754f592173ac79dfeb20d354be3adbd818274d30136737a4f31a3a200636457ec1de2b327fede6fc78a93b3253f7590f89f2c20ffe8ce16498e2b4a52e411857a1630bdb3823749a893dd2e8936174cf8a7350e51d53e65e56178d5280b2ba6afaf54266ac7bf173cb9f8ae29685a992696317b4cefc88355bda59f0c37612929e4994975d956d1a2c58f4e43304d82f1086dc21a8389ba7b9ee2111427ac68f012" + }, + { /* i=9048 cDividendBits=639 cDivisorBits=91 */ + "026b87effb301aee486aa09b541843c0863c25aeca23c76b946cf200766f166ba9ef9c7d03133f6273b0b83d1bdf77c4e8f5c373252542d13887e1e27698ec45a4a204a61323961b75c2d84871585a10", + "02fc3b0a75de91ab7de94647", + "cf8765a0d0014285d823858ed6d3bb3e7d07d5b4c5750def150a2b4732dd3ad838da994d2cccbf41206d3cc88f5a2daf34ffb41b1d8d47c19b1e0a7698d429f3ae326c38", + "02ef4707891067ed80cd0688" + }, + { /* i=9049 cDividendBits=462 cDivisorBits=277 */ + "37253e1843384cb92949817384a29f3d9cf0b560b684ff50ba65329c91579dc369420353e3c3ab58386763440e99d1bf1243b32a0fa04e6b2540", + "1a4b7c67974a32966a2cb5ddca361e58d9ec243a94af619931716d7cbb91754e195d3f", + "0218e1cf26dc25c355ccf7bcccee19976d662cc2340cfde3", + "0aafeeac443256639a6c42723cd6cdbd577cca67c731417590e1488f60d88dd1d23363" + }, + { /* i=9050 cDividendBits=3869 cDivisorBits=84 */ + "03b6feb057f3bb9cb4b4e88deff3fb48d0e41a3522ad06911dc5ce0086043258d3f9f4166f837722c3a6baf27fae785512f73824d833bc18b62d85e1cd0e581895cc8045461f56018dc22068795edbe0da54fc89ba79224abab942efb6aadd97a380e25cac376ae3124d46479872c44437c373e8db9b2950c4b361090174b20729e20775584b4d3dccbd441b34b4713214f0c7d8fd48dc94a6f9339546634f7fb09f05a0bd20ad9cf66bfa418c54dbcdfc7c488c7aff79a8227d0072c5b5475dd482decd50fa12217f7f9ca5eac309cda3af8586f08a955d881bf63e6d03d92b6093bdeb63d50ccc84698fb0bacb6f58006ad329ddbd4aa23c85f7da6eaabb5a1848387d0ce8bea1927f607272cffab873e50f3f3b0a32f2479ac1dcedaefb4188c320d6b64723dbed85560fa1143cdab659264760bf9feb8b7ec46687a01ca7b705b5f8f329cfcde65fdf0a7bd65dbbe592f347a00ff46d1441d703ea47697dc6b2fe4170e66402af1167045e681ec7ae4fa39fb8477f05e6812ddff1a498fb971ed4370b542088395ad19a0ac71e40608deb99971e9ce5075c826dcf19b867b541ff65b41e55ef355c2ea2c107301a9d272223cb656bacbd4090b53fd9729dfc4ccb1d70a1d680d59da6b701fdccaa63ad066fcc1b3636f3e0b984b22cbe4427c9bf63", + "01a450499adc5ecc5347f7", + "024338b478af71bab582b1800f4462be7fc454a0b44f1ca48ecf9adb0a428eb32ee1b14c885b4d876baf89f990b9c0551eb572a8aeacd077b8f8abe9e0f760fe0eced5c083108bbd65aeac82903031bf3f1549a078998dd96648aa0040f5aa97f99b4cfe2d414dfe9c4c0b0a0eed0acf8028defec153f9de3038cd071671edaa9ef966c7266ff7ec2ca5bcf3c8a3f8057984cf1f035f8f140ea75486a0c18a6407d74a8bc5e9fa8d6cf0575fe5363f1f742f62884f7e66e0c1dd24d754dbe2df0b131226bdd3009290a7ed6c512b3446b026b48d3b7fbf30b33ae8978832a52505dd48b73d0152b256486ee2cb00f02f8a51cb80255ee54776a366a54865896fa9cd6c70004d6f64a307d5520ab358f1395aaf1e9ca18f377ea71fa79425448d5bda451d63d02dca10f367002c284d7758693b583e21cbd369826ebebc4beb13b24dd6ec5d94a4bdea56523d6eba130e90923e900baba58b7284239db1575da57baad65bc09d6fb6d68a2adfcf9b3d653e5cbbba91bef3b76a50753e2c90befa5b95c7120a3210048c9fe8cea5b61a09085cfade3429778e9af8f4e5c70efcee27818c5ae18d349e8145f7b0a6ebd35aaa60c009d99df4b28cbca3c9ad25dd1c9796af7853ce60b815d91b85b16967cd3b1d526b9258d0a192a7", + "a8c3d0ee26246c13ef42" + }, + { /* i=9051 cDividendBits=2047 cDivisorBits=1014 */ + "36717fcf77bb2be6cd0ccbd8a7e6ffded7ec32dfae9684af496b9597de13082c677ea7de7d8047c0f785873623102decc85a9dee3e76f7b140cd140845385b8f54f596ee0bb6e70cdaa2aba37a6a746f4fa1ae2aaaf08b3db8da70b27158d06e643112046e517924715e29bd8ef2e5c5e1148ad087c5feaf5aebea57413e32134318bee860d3a809ce6414577a83a71ef07ce6229ecbd0401d2b32c77597e54d3ddafd0fefcb739aa4c8eb6e05ed5dba66651807ed385e0040a3c24100bb26b7034016f0c5aa558222325b91795fff6e09622d8ecef123ae082ea183a8c0720f4863bcd6a7ac209a35ff3f11a9cbca1e4eaeb99861b6b8861faefd08deadc86e", + "26e7bf7966a33fe89a8938feb3aeab10eb5ce88f3d2c16b3238b95472dad94cbda95abc35078efd80a584389deee9bd9fad3bf51caa6a4a2868313f93a2cd15ae7a9f9d8adc610d05fdcf8894e1b03d69dad900d6e07030a9da88f5247367c2b746cc67df243c2001c7e0a08298456880bb3e9971fb92cfc8f7b3c8fbfc4cd", + "01663df24ef135a06f5f1303307d9cdcbe015478f8575e0309292991409c6660c233a8d499a9ffa5f862a13b5ab59894cf3a0b52fa2391c3929682ef5f993cd3b1da85676de3273308b6a9ca3ba094a276b8052c671c6b2e55395fa949e1ed3638f0241261b89ff57f36243086db1609aa14949db667f657180b05668250359acdd3", + "06a6efbb0dad8d52927c4411cd97a161400706b499ec5b20339ea02a08180af2048d12a4fc6dd028a7be20301629e63db53d62d1c69f72c52820784ba7f181f4b91dbba862e4c8cbaf9cf4fd7266032e252959a7152593ee2a14de31e414b10290622e098bdaea3e87408c822b6dd07520bbe59c377963ab0023d6feb46a77" + }, + { /* i=9052 cDividendBits=3349 cDivisorBits=955 */ + "1e941e466f15a635ed454893ebd739d9047024d63d83c5467ed892c5ca6a89c08d1c3b36dd1a70488d655146b8a8795d3d5b116931d8f5b2d919b12b86adca773d8e38b84ac09a9a2bcd46f44bf89fa7a46a90e3fde578c58f1f27551d8edd2c1321fa795f15322a9bd100ce7d74a6a17627d32458ab72978243ed6e8fc93d66c66b27cac50a5596d2198c349e09b406ec4a990aec9c34b7134f581cd63ce7e1d0cca03f52dbaedba0033843ba66bcd05028fa5ac8f514b71efd55ffa63164a20f4fd89cb4909e112bfd6079259f5272553b2fe2c65956cdcabfd0753153d3aa07297885ed54269b22a1cdd01b109bf2fe8bdd9fd5578a36752193df2c1ee27d1490b298ee9265bd54c551016b37547ffe3e0b494bc07af1fe7a2e8221b33144c004542a89e4ba38358ec03ed6e17416c5445a22168df53cfab5a59d79a614cdd7db515ac1782ce994376469bc2841171c3bd7403f0fe544fa306138b5a16c3102f59d31e3cbabacc607d6fa97f92a798a213381c4b8fe3f461a5a569864093c77dd7c8e28f548a73dfc342fe48cdf74d2d048b33bd2d748de339d8e993fe3bfe1f0e4", + "02c3214da42dfde9949d4dbe97bcd144a1dfd92b9e615650932574d50c1de6fa4b130c01266052dad84bba00fce281984949afa5e33264112ebcabdfa3f317bbc6e9a223cb384ace0224683892601a157307515b767e5238cacdcfe870ad0d68f6689d5855c2f9a6ef9422b4587482b00f20341ad499b88b", + "0b11fcf540680f8ed4b00779a2c277661e8b9913a9286ce8ccd839bba2565069a6450e56b6a06a2888bc99a535d10fdad7b774f2f62bf898af11233cd6818099b5dd53d0ffb6fe751a8d6da3329e82d433a1fbc77f2dec7d73647eb11a74bd348518f646d28ab8fb620844a4dec617257235850b4c3f8fc949fbadb2277bd64c5ed23c747078ff5b3f4e76ac5631186ab12f128d5f413bee5f15a710ece8352966b27a5aba04fe5ad1b96ba4192ca6ce2a79fa049111a823a094a7376bfcec46586dbf0bcdd9bcd1d52d0a62e6e83e48c40f776ee9ba54b6ab927832d30083db088d695bdf9a56e8d66d19e8f2b406c95f9c777d7b813eb74a6cc112949b985224e8b043d5bf70ccaff25d21a8645e1bddbc0f135fe69da2a8ee8f0a97fbac173789277a9eba4c7a68ca06a0", + "d7f6dd34c05578ce7f3ff7fdcad1ab9d4bec8f0d644c229359e5b0640854be493cebfa780cab8fe97dbe93cc4af407a0634aad9afed03f14ca8916ff9fba430680b3c9b4a0214efbdd59efc1f9c4698250dd547b69bedfe567557427fd34966cb668bb44b597f1699dac8014a31dea82aca3a12fcd5804" + }, + { /* i=9053 cDividendBits=1161 cDivisorBits=1155 */ + "01404054099b5b331302b3d77d942b4da3e27d31472634e366c310aa433ea61d147fbd632723473af2b789338b8775c9b3bd3ac78a7fa8275a73e6e27256009268ebdcfc87cf42f12e67b719b98ea3695f17f2320ff0773123c578d1a576e9f3d5e285e39f834b1fc0989e88cb2daa1277bf9b2530954dc89b822d429b91d0eafe408bc1d18d707f35841cb0e47a983c5366", + "04d7121c93d64c73032c1850f95799c6a1b0b0d1d2a182b2c85364718c13ab3c296d8a786a6b3cf02dc33cf46950a423e31411a7eac2e9caaeef758e97419fac5430cfbe27ee6266d8d24919bcf4d866dab7a0aa6078ca3e2043a28d5cb1b57671f8e3d67ca5d3f3c9ee65eb33a40abcc0053b53f8c387dc7bdc34042a6e4cc0a3f19646c2ea4567270adb40f903d0397e", + "42", + "cda8ab7e1b7d6c3155929d4b95a86e32ef9b2ed891314f1d90c4fd2193f791d17fb01bb3a18506eb337c8860ab7873320e3a3ff967e1195a2a93af571567fb37476d8183cd92aa81804116d7839edab49ac62311530d1f7408e93391192b4c805b2653608a7ae689284227dd5f4dce3e41d98a72e4c1c39367d988a1612153fc4303934d0a9a9d73502a24479c8d80ea" + }, + { /* i=9054 cDividendBits=3135 cDivisorBits=1520 */ + "6a34390e6f9bbf2ea124834bbe29f01060fe7330914595f4a0ae260b971866936a45b0c4a6067652179e6fa5aabebf39c5a604bb02d3b7d4aa18be8e91413caf099cb919fca7b22a5e5927c43834dc1e28273306d690f0c3b18a2b8afd2f0900d3fe8239238d36e66541d1c33906ebbd66cdf62f5a7232774d858ff963d5b53db6bb127a7c6055170f336d2d73ac0e223c34352f12009da85f5439652ec7ef9bd451bd710c1e03b188f4da380be1c16489cfc3e958eb3191eba3300b96549353f74db421da2730fc29e417e96b7e27a98b7fc42b8cfb5fcad1640ea9cf108408d2037eca60d38df30c7aaf267d9b15789dee7e524aa3ae8b6b88fd9df4a2e39375be8cba0670def6d36417e3733301f848ca155d2c15afd15420409d352824dc1a02718e902cb06fa937805e17aca1d65c6024135d75de0aff1a8da9958038eaa0418bf1fc46433b9506f29f68b05bb12f239d63031cc50f593a050de84035eb1aec6f039b227817c0b1be3d66222fe3960bcc0eda9b88218cce86385e32f9c4a8e15c64758d9a7d", + "385b8f46b6853872921c855480906acb1dd86f51b8d3d788a41a0d9fb12775b4a3104eb32593b83eaf8ed0f37279fab435d9dc93e5ccf749e48f0b1f942b5fabaf988fb6c8eb6a488156ec66df496364afb8a02024257c09dfa32b88cf525e454f88bbb98b7ec1702bb71d36fa6e4f4303b2ccce5f00dafa2f0ef3c52fe11e032b153c57e2db32d787a22d4fa51d058b02ac8751efbbadaf8e3aba26fa586843d7fa40582c9434e46711f8bbeadf2c45bdd63332bcf03a4c03f502fd225f", + "01e26c42a01b145baecc3487b60cce961d859a72059bee3965972ffca1fcb49c28a549f9665d7b0cfe7cc4f642c4438d91cfe848ba85aad94277c2890c7c6d9aa5b336543c3b5c0d76c0708f577f41273a814322457e799f930e0b849bb78cb5d0fb58746a64e4d502ff822a0df5017939733b1e26352d807dddde6ec660ac859ec419b7dc21b9c1ac6911bcb75b09fa81c874964765fd6cd1b582321f9cde82904175e420d6768c7c43c49b8b43b9c748946eaaa5ca322704a8528e18cb3e3c9bdbe831cd18b47944a574", + "03bd66618686047e552c174d3faef1bc7a6d8d73a1b626c73ed73c3c75cb3e87c5482bef4c3a889b6106e07efa0d98e710c29b1401587989507127885cff793f43ea3c2133a592bd3f271aaa0c9145d64dbca60c4bf427a32cbefd27974a7c51b0c688c5ba21fd1954f51377982cfc4fd578276b4d1892111acf10a26f1175b8a69ba8ebc844a9254c8f5025c6cf4a4dcf46c73da92970054cee7e3da8ef8101504b9c14fafb32295b9435af228cc90c487338261958da1c2329eb76cc71" + }, + { /* i=9055 cDividendBits=3135 cDivisorBits=2136 */ + "1569b40ce4ce28bb15332ef2c9c8e7199bd5b2050d2feb61fde4649514f417145041dd49b80b12503321a646642fac2fbd7097bef59b66a55edfee39029a81f76ac07b65e9a512c637532177e02bf1a1acb46c3df7aa47282e1aafce869e199a8a6c715306201958e0ee24a8a6659c73f106227803feb8e73811fca2bd9db43ee698cca4b756cae5c888d5950c704dfb42d514e4461604e04f5823e86ca61f77876a86bcf9fb58e6f19f39279ddd9ca8a73939eaadac488a87da49def47879a23209afed20d6bb6df165c133a22ce3ca180713d4cf7c7c826620e67d73119c620ec9ff685980d847fc0c27903ed0535b8af4e3d78648b643fcc8d7e29510851140d5ffca0ab8350e53276a15e3512204736933945ea63f7b0adcc5ec279878af8959fb36b39b3928d5e3afea2b8b7cf865e290d0ef8ac672d28c4c0b2522167eab5e3d304a91023eff70b76becc1e08fd641193c98a687d9d4cae4b87b37788ea538a2c2fffdcce4c9af29458136d521b2f214ca77010dfa63b82efb341a92f9d5fce61a087c8532", + "d65e425bc35475b59bd2875405760c3d22a0627f0bc17fef700e269a3c7830fee9c6fd892c96b7f755c841d18d8f9172ef06e2fdf2d671629a82fa1ca35b4a58681583470ab62051314fa387c587165c886ff77dd3619414948819c7e775480ac8498c0cc807780368cc53cd1caf1574b089b943f4a3377f6ef4463c08afa62f1215e20be842980c696d97602cadc2326823be11b0e7801b7d2a32d431eebb370af82accd75df56ce30407776a85b3d51764cbb8f2f91c94556c0e657ea7b1ec6f7503d8fecce190bc086a115f633690171eab4f79c1fa9e752fccfd8e115ca4260c7f3caffab01ec7ca175fbc32a9f9a0f3d75ce5ea12514dbf57f7355701d6a815e2fb47c5dacb02f836", + "199249d13c54e1ab69f1a47d1dab9f051aa1b031a7341944cc23f4843274c62e217112e8208b2b14828c533e29691758ba52fab6b2d26ca9768b0422307a397af0265cb38b50e100ef259fee503891adf4ad9045525aa3cc21f08773d4721db9ae31761ca2567e4e86aff9007a6c99f26c9f9bd596081714602b02baa7", + "6b9dbb506299bc94c8eacc40c5221bae69a458e7e3a6ac528503233bdba4a53a481852e4a332a86f76413c39db010a2405734cdec21d471f62af3e59a2f2c7c6ed8b7f55a0afe03dd759683f8c8f192c0b0fefaab164c911d762c08bf172b5a5ad8debbc21b733dbaa1dd61916ecd24d2d64929f5b434cf8a71f706f903a2523c850d83515f109fb42a29ee5e51318b3632aa20de42d6af2e67a0b9f999ba855d8f359dc075d382f75d76f7e64b1553aefe5c079b4b8f8a14c1d74e00e7bdfa01cace8a9199bcd950188827493abd7b5e9e1021f09cffe5cf1e003eda6a43eab08a0da327b0437bd3e0c2235953b665dcc38451076966892858cdb7a3fec990e3e5ff81f3f7ae86ec95df8" + }, + { /* i=9056 cDividendBits=659 cDivisorBits=492 */ + "01fa32de26b964bc108d611fc25614ed3c329eb1432001d31ec1af404c4cc07e4b171bf34bd8aa12ebbfb6f713673648a8378fc32ab15198e97b2edce587089e7a5806e5ecbe9e7d852cf821502ae266ec191f", + "0d1155d5303feaed64a50d94c6208b5526d7e7ca4244aa7f88c8f21d017d1e553bf60f6a531652e4f5818422c217f3a6df48f37b11a0ff44d3f08d33e45e", + "26bc90e5a0e9e455e2843013286925347bd60c713b", + "07d3a0b37b47ce345a73a91046c6e4fd274076a1bc016055d37ace9691d6feabb20493ade99b924e3f0dfc39859b79857a3683f480adf3ae539eabc0f975" + }, + { /* i=9057 cDividendBits=1169 cDivisorBits=860 */ + "01c82586a351057fadb63420ffb515d170fa6cbbcea73afb94c3881bbaacf0c3e87e517a6bf5e97e9f3de2d28e085a6a6619b5e09f95a5051824bf7615cc7031860ad4bc824b8aec7e75ed4410ae73efb1faa4c390e58fd5423b296042c17ad17a7af933467023a880dfbe4fd4e89119f9cda9e9bdee71e5eb11f35cc497de8c7ef3cf67c2169b27076b270aede7c17fba762d", + "039e0f33e1b4b9d1b5f3ce451980114a24678880ba1ff7086ef8c0676856f6690fc4d032b820213ab3b365bf94d9a9c424dd190ec1fc0391f5308678653fd91cf400e107f16b195721f47c5bf356f08d7af4a0d34b6072e22cd263c461c4aade6b38586fce58a58c009c75de", + "7e18e44015cfd834ab5135033be68c7db560eb560fad2d2913838e883a62e6cecd3628b1d180b7", + "3dd9008210bf6c68644972eece64895212cba49a5e01d52e0bfcd3baf152a57cca40d5a0e043e198ccbb8085a582627cd66d56fac6c047cbb7191a70d1c6cdfeaf0d3feafb9e3f354c7c4b37e0f5c4dcc62f7b21ed57d8542a6b3b9058b36f9438dfa122fba4741cb5347b" + }, + { /* i=9058 cDividendBits=3368 cDivisorBits=668 */ + "6aac585512c07822872f92d1facc40e4c6aafd941ca47db85bd2bd3934fe18705007364ef3653a6279701b27181005d42707593de3d63904916ef4171c3906ff6591cf8aad8e7a730d1c63de06dac8255a53f21e1d9d5cb13ee0191f56b1cb0733df0baa0d094627de71a29eb40b99c3c196674525a74298c3bb4d9b3ef84e0fa727d99b33280064b425d67e714c188d6163bf15589c0fdbeeae6088476139e4550eb8144a565208b2c20359af99dc6a87ccce8997e7794d2a81ab4f0b09ae9863da726756e7cb62dd70f4e732f0b2f6189b37a860d1ca8f37d271565449c80bc37d216b852b9883b4a7ca85200dafd41bbdf2dd2ca0a6adb59a63adde83787f76afb65c9dcad4d41108f3dad597fa93678bc050af9fc65d7ebc8ecabe667956e23b66facc57f533bebdc4befa29957caacaed08f3472b2e148f236ae82e2ab6df73a12e53b6e80274cf6a4c094027cb4076a46a4c7701fcdb46e4c65e38f7b8e0dfc41996f9c984258b2196fa4c7324119f8324b606a911d1fcc46a3bbe271f0bf83ca78534d012c284deeb96a5f293c43fd51ca27c91ad8658d776f3e87185b517ef4f39", + "05f9b8c866105063adba6ee8c2e69dfcdc8adb7c659b3c74ea9264894346141b249778aaa376ecac5c3dd6ff196a6d2df448ab6865b631e31834c1be5c50c1bbf4a338bdb407f92b0825f4333e29dbc16549c868", + "11da1204cb760cc1ffb2a4df3d319d0396294d275e5d155be0661fff2b10aa6cafa4107272f3b99ef6d3c1423f0cf18cdce9f256a38d4ce3d45fa223aab8255d6e973c26d75a211f3de9ea4809f6f4e1a14904a37245164c5f4fffeb24986bd51486199415f5454876cbff90487ae8d31e996b742d1f540307b044763aca1eb6cdb34c32fef3ae1ec559fbd20094f85af7b4949ea438687609ca4d8188efa8a9c6c7a75c5c5971b33eebe603a00750a0c260a7f4ce0d3d9f797541eda46e1100fef837194b07c717989e5e6de8819af4deb02f85e09ae34c902f7c41a6dbe578a2a2cffdba3c56a6364647a6644e9b4c55f8346ee474794b6d99a4bad45a9e5796484bfc8109e8e5ce904a129edfdf102dbd43ab19419de78cab23648ce93cc66588c416a2d1f892aad0147eca3a7f548a6e91b25ca1f6866a916f5a038598789135f3a7d27fb067ae6ab8300180449efd32", + "01778c12797e98893c253df4934350a8b93c8a0162c3df2d975d90e57feed2a955a7de1c2461b55e24e2382c8788ce827fe277a253baeb7e27ecf336fe98207cd829db0e98d5ae223e7e514523a5c010144762e9" + }, + { /* i=9059 cDividendBits=2492 cDivisorBits=777 */ + "06c2021dc220a5b3ad36ede421fef6cce81c109862af86715ea26c77e9df86de18fd598b935189c7e5e3727c61217d6861dc52d10e8a3ec1eefebfdfeb88006e260b2148fddb35bccb562a5a9086f69bed66e0a13ea81e5dab36e4315edba873bf7f883b26610eec4646d8068033b6bcff8718920912a6ba70a1bb4859902b4730e64129bf71293f925e5774b77a1a5866d0224440b9b6d1cebec989a74606ce1230bad49ae5a878fee57480686add94d34fc6584f3ef39f7e24a580b201ca31c4a439b1726329522c7bab87d9c57225917f51dcfa7452cf56cd6b1ee541f370b96654c77f15237b84fc13b658ee33ad49334e76c027c8b2da17da5facffc97c1ae91fe9b6037d17ed2946516dadb4d1e92ca92b88cc010d8daacc5edbd6e6d212dae0f6b712fb16727a64123ef91121d8a02277f329d7d8", + "93f72ca1437a3bf6fa8ce9e26c502fb3954f268a149292780449da1050521fb8a61cf7b10fe9233ddc28732dff5806c8798c8d9686e13427936b2f4c6b6aeac4b81992ac48e5d9083b98ab7301ca88b0407241e91fa623624e8c2de50ee04de087", + "0bb124da5d5f9d328e258260dad9512ccb427a675ecef1924c663e7ae294513dce8af02023f6cc5dd61016829af3566793fe232b3a5436a2e97af0d4c8414af2fb11e5bbedaf88151775c5f22dfb62c73c5a80513ce33d12c2fb3eafdabcc31c50869946b848ce33ebd42a975e65180c25a3a1f597fda0d1b865bf05cdd98bad08973560e8483b9f327316aabf4acf58d51923ec0c0e6470a9d4d16168ffb7624f5274733680d8a43b2dbd4092d529cc5820cdcf835f8766d035c388b1fe3a1e2bed91bf2690ffc571abdd852ff01bf5f4d993fd908aa5", + "37f7c2080fcf91c7690c264f943fd0215c74da4da220475aa0b73a64bee8c3d536e212bcdd9d7411a0508c9b3ecc72694f9c12ee6830583d4b8870e8fd5bdc0899594ffcb5dbf945c8c05e349ba25289405b0556d32f9973bb31cffbbeaeff5ad5" + }, + { /* i=9060 cDividendBits=1113 cDivisorBits=168 */ + "01b9c7ab8a381b9a6a80e923aa18c3e6d9a95a33d37c40cc28936db6fa99c2641687b0216c792f5b12820be938880cbe50b5bed11a4f8bc74e4b8e89de86f69290e9f0109d7c195ddba07d6e806da1971b2680a7d8dfd5b5d5609a94d18f9a96a94fb9eb99ff3a236cd8ac4fd8adf9c871404e2a67d1cc647bbb4309c8114806ca3dd3ca227604608775fc8c", + "02c80c32997e88f80c63553cdb9f9ce835a648059b", + "9ed4e403da7b2c066b4298852a684486e70d1c5cf8a04440bbf316e241eb5a90e0d71dcd15da351cee20a4b8fb04ae5cfe8663460012da94208211205d7dda7c34f4f7f92d0d6eb1d3c61ba692c192b14e9fa9880cb896f1c373bb51f7fa0f353800f3de83421d69c58a3e558d5fcbce94fefad5a0b0bd", + "c40ac402e1e54cf3fa658c34d7969567c88f491d" + }, + { /* i=9061 cDividendBits=1656 cDivisorBits=634 */ + "9ffaa25fb509dd8feb22b5c181d2fac879442be097f7f044cd1eed56ae543886b303528d4d462425256d7d3633dbecbab303930222555db9e83a7d12b4ebd6459105b96d8a06a9fa7d966bad2ef3bbcdd76a8e51e17023dfac39107d97c58762ec1dd28bc75fdd8f5648a9ab9fb3b6ba15342764b85726e968a377e0610737e7e02f8a0a451023beb181c1a3302993ff42495b4a24001ea90b8d3f4e8fab2ea77d7fa1822958f0ddd468ef37d2043b6b2503a40f22b46ad8a3645105c333dba5dd051a9fba862bc6f1bcc7de42f779", + "023fdd500bdcd245e7036169bb195ec5ac00fda0c90b5689b7dc34e2efd5ee100e7bc8c636c78bf2c087a436f5b743758d8fab1e239256dbd1f3ecac5160b3bcd72bd6cdf2254ffdac2b7b46ca735f9f", + "471e57aea145d0afb5d7e90b0c98df27743b4f0b316567e6c14be3c273fd36407132f5213f71d108125b5d70147c20c2938fa57a1e58caf49a49782aa0e6cb3932a2b624dbd227c3d380276df9776438e931aec0c7f082c637452b4bc5dc8a6141b647f1c3ac4e460a9dc0e0e8e345abef07f10af01013b6176de58bed52ac95", + "9b3af9bbfe5dc294c2a18a7cff5df0ad33f9ffc69270e803cb0a83f86d4c544db70b2a88629ed88376817e3d51bf6c33b56fcb03f53c9331f9701436623d92826fd3c86459858133d49dbeb0ef7bee" + }, + { /* i=9062 cDividendBits=3648 cDivisorBits=1745 */ + "272de6b7773a9f6263c17e8ded9cb99535dc091f3dc796e22187a5b176d9d49516c52d33cfe395e93a25f9701978cecd9d056716d1ed8a40d70ee42b0d2356032446b66100532389a5c755fa66767c6f9c6a39dd41fd544e17303672af230204e705ee39d43e18c7486c5adc81b14b6ddc6b12ce4e0f4337636c11d5d3655826e0b6d7871fdcea38a540249969c49682df68fc43eb74a8ec761a0dcec6b539d4f524d4a4dc15af79b327e5721214c60573b9b339e13250d9a296c9aad9c481fad7ab1152d50c450efa7d1d09d2edb2ba068e3190b7c04272ed2a863fbf13302f1282fcaa580609b7a8ec7c42b518a66ab701478762b097be90ea83b681909e175d1ce0a24af46cc3da97960cab7c66839e7d11e07d36be2682289dea42a05a4b54a5ce9229ca5beb6587600521bc1d373db3425c0e763f1070e106ca373777f190d2b604c59130b974e3dc90990326ad4326d2a412a8258d785b3f10d9e208221a761a133685657670d98e37629ac2efd9992ae774cee5e120ad18a3f24f73db5f197a9ddde7273722426c28efb3c9f0f604a8068d415f18d52d6b87715ab2af9a4cc9339143b9d636ecb151c3a2ab12ba75940b1a0e711168c0d83d4efbaa6514f2b7e00036ddd9", + "019ae8dabc50a4d85e4a1c10ed575908414337bbac09681e525a2f2b782303dd27db038a8ae939c0398944b5fe9aba9441ebf8e578c56f2f756f5cbc916dee272af740b54436e0b35f28c1fa7fdbc2a26d80d495b8830168ee4e576b1b373023ed63d4636a38dad542334c1780cd56743fe1f5c03ccee5b0dc2e269a45e2983c554808ec6cf5221f61b58079ae9edf088f2c734e0e05285a964ae5c2820c670f9cdfa412ff060dc3b4d3767c83170cd7021a36a753f57d963f4858a2fc581f420f1910ce218ff06963f890890881a49fff9daa6eabfe5f52bffdf1", + "1868b5ad646679e16c1f0faa5ec6f0b4ba28ed4f7c72ea5380c4704148adcede58338ed1f96b7d3904d2c16f2ae48285d28b5baa9973cc219c69def5eda5d11035f8e85ed8745e0c310c75403bc0a210b7eed8223f37cddb3f207ff53b7e00b9795e4c32285690d5f8aa24ccf782be85d1d9231190ddd0124df13711a6dbaa6f30a325118b4074dfedb9c8cbfabc780db0512a93950124b5bfd525f20910bf1fbd6612489e51a7535878fcdb16358334157b825ac2107e7340132dad7110d2528a4a8fa5142285f6111fa1b95db340f2640806798e6de18f2b22e09f4a8a9df1d624821c04a2d6881994e3681c7e", + "01710bc745c51ae6bd107f9b15e864982713de370d60383c3ac1e1dece6063bb2c6f19070093a8a77467a9982ae4ca7f5bfb0339d5356b3f075144bca6c9020806d663a6ff7a6fbd52f99ec7e5d719b65de8657b9b755db57e9ece5bb6f342cfd5433149509ac21644b5f823786de3e32413a9ea64b6291c94bf27dc3c6e45af6536afecb48d96341a250bc1ecddfc4cfa4b86f0f45045295d58ff32c5fbef965ceb278283cbb113751b623dae345e8e53a456685e557a3f5a87ce3397e9b8593d9756f350c07a9bb1d698c0fbd4414da4ab00fa8be3686909853b" + }, + { /* i=9063 cDividendBits=3407 cDivisorBits=1180 */ + "7239fe9d617dedb09754ac1f1c33988f5a3dcb00e337a805fe98f49aca2e7609b8132440e29bedaf6930cd9d5c4d12fda440b0c1297a1d6734c1cc8fd45686313a98f66cf6165f3bcba89812a6488b9b0c77db35a395376596bff3326433854823d538963a62fa79aa271a06a641d1bb81e21114e444a5c72aa2d89e5be334840eca5e19cca5401c40f9f3a163df353a25f2e0fed36268c537ffdf78a829982075ea8a82733e069b50663d22f738e1d67fbb75dfb374aa6ff109bd66ca7293dba3e9cf3432c9d7dbf234c0b8991df48efe49f47420826acedfd61eb75ddfcc183c13163c43b52282bc349e8b084a5dac27fde2fdf430e7d71b007b59645d8f966932eaa75d6aeb0a44e919e8da8ba25f8537561c25df77946dae5d00963151f36d1a956f0486c93edd0e499a6ee323dd1d8fe1872c9b82eb88f632625fd7eec6dbbc3499f257ecc3c99d3fb884a6453c41b3e4756380bbf3a7c29d2c6d33d8e91bcaa2769dddec576e159b6b4c71997a3dd43eb08425ea1fbe2291d26006bb9f1a99054d97c4cfa44929dbc2d35cdf7dc52fa587cc8fd8d896673cc2fef008f44d6ef165b113b519f2c7", + "0193e30bec3d0fd1f059b5be00010e29e46e5f98477a8745babf4a2d25e2f4894def9684357389f6c6cc80e333afb3f0a7cbc1da154fe37ac91b1c3add7f905d9d359ad0f537124b9e256654a2687ffe89c5b657f636675d44f7c1ab3a9a9eb0c183428d2fde4f8796440a4ea2955b883fc7993bcb4a92b0802ad8c1ba102aead2595e402c4151ff3db31f85d4fd7d2fb9269189", + "4866c4ff078b9192f8e29e2b2085b8113435b20b1b837577430d8feca45f3d63835d292cddf8a8aa938d209890d8bd9f4ef9409b66f144ec97a42b3b8cb6469cb806775d2ca0bd22c4f3d25073144494ba39d014a0bdffd72149db07ed735a14098cea252780a525ea8db652f39f18a2dc3b2357f64ce1c18efb0149ee7a69638f7e33e6cd681bf56c4139b4fe04e0939dfe5eaa0a8d1a266e2d56f16ed1b90e075c26cbb81532998d7de361900c6e3ea089b6dd14a7ec8c0d6463dc992b2c8d83db7210c994d17b0311b8402ac35010827816d2d17257386458b98ffd912c5bfd423c50324cbc6cd662f7cc4efba43e76d973cd8f3f2e76820ba6be082655c28d77318bf25181ba8e8cde1c7ff5d599ad2ca4ba6d2003", + "cbd05b771f48bdc4d9649eb6220749d575aab2db12bdce38b7dae962ef8a7362bab90cf1c8b3920e5e4193742cc002cd2280b9a4db8988e27d4ec757107617c934718ada2e0f03e795a5e7487fc513845f8d21482b928f12b6949b034ede04b84ea84f1934bacb61fdee6fdd308ba66c7a7eaae772bfcfeb906b2b26a9dcf5f9133f4789aa0dd6fb0790ed50a19f7236201e2c" + }, + { /* i=9064 cDividendBits=1899 cDivisorBits=72 */ + "07c356663d2051007aa88c64c0a67f3f6484083c9ae9d500da5f51fe48f21e096859835782744e6a7309105ac08a0cf8282dd7181ba495797cbbf02d2bbc088a9b3ad9fcdba6a2bb6d5cdd20c9cc768c423e689a2695501af60dc5a81bb504e0781419b38ff176715f5e9a7bc765576bfa7e356d96a924c1d423aedf7a75c52199a25cd550c8125943cfca5f50fa0fb7b11886343f6773c29e24d8464da39a8b5e688cefb96276b6a2c74df70679a47d6b6597a7081965c2237cc6e971e11e3737387bd3b50ca9fbc3fb23d2ac8280aeb1397d5430f7cff59217f0b607590cf988bfb07b56209265647a9af07d61", + "545fb735265d706740", + "178dcefd74781ed1621c69128cd95c415aa383bb469f2cd4c27f03684943d0547d1eda03ad3e6b77fee22a97869ccf5ac4586d590dd66a8dacc4ca5012e2f2468c7fd576316f465978b86c0ef2461adb3131deb247791d2187c12dadf95e7820e651cce098dd4a53d50b4b72da605234d2fd2d6fac325266a7ef209940a5944d581d72bae60347beb9c711daf5d9b9acece51f4263acb756cf957af71ed3e6527d3f6a929c94dab819680a5e6e085244ea605bcf00172d034dd8d17f7744bb9aa1f16d1baacbfbb9e1b8fc253d9ab20f0797921c845b2a97a39f308c793aae3fd8c30952ff", + "17469b63bc25a724a1" + }, + { /* i=9065 cDividendBits=791 cDivisorBits=86 */ + "5aca480248c206b78d0e8d4f5d116f97cf7241e4efd9765127da5c9acc8c61fd0bec1c86b2af532a14be8cae2f48648d6d11c8edad3008a13825271d782156e9d3b7656baa1fa384c85c336b39d9c3b8ff1cb6e8b95be9c38eac9af377efeb17e7757b", + "1e20cc696b98d3e21ab6e7", + "030372b9007fcf31a958569ec6c0b6b241c5ba58669a720be37cdbeddb46712de9b0db91d307ffdf495988fb94c1b648ef22145b6ea5dd564450936720a7bad884ec73c8aee9a6e3bbee38a2f34cd1086da8d2e2625f9236b2", + "030a24657c2b5c36018edd" + }, + { /* i=9066 cDividendBits=3741 cDivisorBits=290 */ + "2a64a5d8bb6328c5a0ed3ddd9de57340f2999b4c3d364cbc345ffa5309757d60883d3e78f1be8a8b0f424e5c9dd1bcbbfe03ae58fb2ca503f9635a72e8fa0d39f111d05baf4c275d11b1b3517244a8e5ec14735ed5f4d2d528641646eeaf0d5f819239b144e49c7f7f03d91ee75d0b3e9adba988ada40bceb0a6aac48fab15455ca898c6322313e068b368b9f60c3f11dbe02538ae161f61cc8a5522df7380319c08abd9104cc067434d89bf0f98d51e63d82230178368203d7896b50dea0ee751c8f2622e1cee862f4848e5e1e53afa6039bcbaed3d7401571c46bd488f9a06d5ccae042613464eb7b9d87ab6946f946a915e4cc0f95babd94ecfb589ebbafbf2e57a70618a6bd68c6326e4111f128a44b43c4e04ad556124aae312bc03d2b291feaa631683dc1056ec261ae64d0257235622cc8b108d73b255f7e5d12adc9b9eca1a99e03bb064c70c5db6fecf3a1a8f2ff15754e5be1f1622908d2209145a6eed366bed181d74628df97476e4a1257a0f545505a7d257598eaa8a01b4c47c4251fc3839db68a95804ce61f71c7641c82c3c4a57ec9ae760f179b15d9f58935b031c9b9aadae0fcca29da26e99a19a43c63dc9d9f0ac6402fc36d4e7e62521b63265741341047903c268ec5670e538322677", + "0226e8bbcd1c844bf1e8bab5fc83eb1228c734b1d0b13e0890c162001c50d1b8503fee3b7d", + "13b3141045119dc41534e076ce09f408e3552e95ffa38c9694ff0844efe869802987df192ace8656f44dd24de35d1e14f87382e8f0f4f55c0df042e62ab821024d863801334b0e3e903e55f7133105a0b110ae6279684f825e93a99add56b7da6d3d9d3d1f5eaae2ec6d84eabc645ac45b46c08f23c0793d727f96ed2e1660872bc98a9167e32be7be6d485dea0d41bf8f9288b74094244586a6885b9233190751e42d2231b3f620b801db30b410a0ee8795d435adaf0d893299d8c0b912f7ed044a67169d48da8fc50bd91ced013656180fa969677d285a7b3e58abf9b27b4983ae2eaec00b1a9482d98101fd4c2f2fd8e69891278a67c3f1e5440eefe088904e9b8b1859a4e8574a5c8300892d35b73e4e948afb938dc45f6d7c68310eb51f297e5a35019f771a34fb121ed4fe5e95c19c8cc6cc7ee618c6f7712caba4eca7ca28e249e70c357fdac128aece5c64dead46579ccaa459647f0e0db640e8b7b5a61afea06de2f3afc7a44645309a5bb831067998b1a6c2fa4a786f24d5a0e998928babd46efe5ba0eef50bd7642adff59872f9da0b6bda105640fe7ee73bc3ab821cd014b723aa29b7de9219a2e066", + "fd1077d72b373032a342f31b59fbf638d8ded27209d491e4f45328a825aabd20711f12a9" + }, + { /* i=9067 cDividendBits=3313 cDivisorBits=965 */ + "01a058e3a40fb0778d30229e559921da177c664652459c0541acfd9014674fac855f5a6590db5bee57521c9f04d612314030331c7f829968cb7a6265a129b5d3e4b92214ccac33d9601ed3ba2fd0a3f82e980a92144fe1937b64cb16e11b6faf2d018f84d026ac0b3c59c162bb304f002ecbdce68b19318af7fbbece67100eccb4e8b8b31c9fd9b1b7e56041f6ab70d00fca3cb41b7107b1d3fae4c7f11ad2d1639079f71ea53a04a61366ccc2d63d8e2b195dd9b94d3b67b85a76325b9e30b6cae83de8ece99ff17d90656b23757b2bf11500f6596aa3fc75553384fe67e1ad50526595f19949ff4b9d2109725fc51e32624105522c0eee1edd30a9fab0b7c8be8152a1c38e7c2e77f033e50db1b3623291b3f1f7a13f7ad882d64759466858bf36d4ff577d984968cef74517386337f01232895961e56e292182184f51d6c2c1c19e55cecb593b96b7d37602741f5fe2934d7197a89e49992a89386268cad13ce2d12b08dfd03f2bc3c0076c5d2eaf081e4268dcec9b76a2c5e73132a102be20a5f5204ff738480c8912a3825aa898a5bb1bf9d68d07979e9957a7436f9c", + "125675c7b49566d4cd4a4e55b4a306ada1ef28651437d6c3f98b8048839d31459cf5213359fca686befd6c2eca165c064c92d0efd2e615c64611e51c344a89608c50111c974d7b505fec3d80fb692d842e41a8318669050e3f92cb925530b6550b041099b58e4089b7b1a965dc1cf2bc83ca566001c47a3ea1", + "16b4536a8d87f993421dfc2fa1555e4563d61791901f645864d1c7befc71868954ee4f2f34c16f555e5623f3497c7ef03d909f9dfb465ce33caac5f49626df1d35faba363db0a2b556af6753de2e416bfa2cdfd2a7dfb0f1abd08c82f8c620896c6398008164c1189ec481dc4e1c00e3784e756298fb3c999851b7d6107c3cabb622e55c104c38e71b6fb15d86f3de94a032cab401926dfce1ef9881736788a9be84eea4ccb193a3ee563cde63754fe3c858640d6c830955afb83ee6bd7b5f3a70935a0768b482ae51aef424c317b9f4b5e3e77c6938ba080f3dc0ad20c075a4e8b456d6f1687e87f757f999136b6a616557451f94958890d8a919db3a94a8db38fef6ed674804f0c88867c378cf0ec5a31b19df25d480b270754aa63021b0d60c164ee6dab3", + "09d86cec8ddc8f302caeffa63cc550f12bd3cdbf1dd4d06670b28af973ada5c00c361545b6bd55aae1b9ff191f42c7e9d55a4def95415eacb22c593e1239bb77532402ff782562aa561ac3bc4706bb22ea0911ebd6a89257118349df3875f199dd14579157b1a48bd01c9eb0fd3325865c1bfd440bd9ce8b09" + }, + { /* i=9068 cDividendBits=3772 cDivisorBits=1144 */ + "0f09bc6ec59a4ed758cd1c5ced97cd93d9040a4415f2a1c5ad9be5a4bee008fb9ee5f04ea0c939af6752324f61564380408ac0d77fcffe78db10627d7922456da902dbd5abb209b7031e0447c6b820c7864f9de75abb496d16de680d039598b92230f1dc34a47dd1f53c0247646490a9dc6387ddccdbec26f2b3d023435488813a14520ce7db65e129868d3ee8fec64243207134f3630bf285084ccfbde031a1ddca6b42c53ff3a317d3aa559a9179e45d4d450c26e9f7507ca60691766ff026ba2839b8b8b4ef773881619bde86617a1ba6e916c22d527619fdb4e184a82f68af13d642fa62cb0c2426f09f4c545941c024f8c37c6a0ddd0c55df5469df75de7497716afd6c23558de7dca11922d7e92b24cd7946a8ca2a18179dc278db8e964222cd693ca9380c5acb5ff5fd5c0a81eb2aed0f2296acd4532f7d561f5f9c35ca601bf4dd754b3ed865ef2890e22b0f110213a898aaddd5edf362142477f1c778a1c402d326cea2a7233088f2c293090e638aee12e4ddc8a43ea5101f4c31984bb481e9b91e6454e4405d90e465f4b9f4c83dccd52b6cf1aa4ad231c110b44cb0851ed7a29181fea63f22cbd88c672c65a3d0f1a375d6dbdcf1f51506ac2387bcb1b3572523b9b0e9d8546acf54419dec093479d5ba775d", + "fe9ebb5bf9703a982fb04332089b143ad83ca1c9b04ecf4433facf8a10e7a47cb030e220d6fa071667e93eb7c43a3063cf01eed173a51ff8858a8546d089e54f713c085cc0f3bbb2658e5a5f31384a8aca1e8a02b0b9cdeb7292dacc6f0790fa758a705f8617a6a2c1e8744e144f1486cb8c7ef7094e67b34a7d8288b48485d9a029fe228026df971fc1357ceda264", + "0f1e99ae8008de38c32208d8d16d2508a94424636aab3844c6354e32bbc71c7d8104553776c38c6fa22cd28e392be63f38f20026b72a4fd10ea033a5b1c8b58c8dccf13be6bbd6328fe8005cb71dae3ab3018af2f9933ea4b279f7977fe786f039b56d133d4926d2f120624cdd6f94242a295d91c60ec063809cdc175a46c83b186e603163a200cb10b7ea51a4196e96e508829688a00007f83cab131fd2b18feaae04ba3cfcf59ee0331039c6f8a71e44abdd1d884c71f54aa8c8ae1a549e11ed4a8cf2667c034ea19add9ec59cdd485db272ec92d1571b089d6e51e84340cdef6ba342ace17e793d195df123774ced9f20acd64866b048b58816006e95ce185372d50361cdaa36e0b1e09fbf9a8b18a8f092d312ded4af9f6c55b2ae000f9828908fab6a5cf5e48dcfcfc68ff14f9a6c7cea88b94c5a15f624b52598230c0fa755d8f7027c69a5d4", + "916562329e76f15dd8a459c9825b0077d7702399c47bb1568344b42b7672786e1ad563e67574b66c3bd6e0c14e75888d20a097de4cde9657da8a4eafaf6cc6c4f97855b28b5e94600cc3550cbd12951f7c511ba160555674666297073e5551e275b3233c868be86353398ec64f20b7b04c76e446fed264059c02c92e4259dcf8f70de717be5dd4acd8a1c12c41888d" + }, + { /* i=9069 cDividendBits=845 cDivisorBits=482 */ + "03fb9aa5d416206a41a3fc1c1a8effc4f700d04fd2b19ff8bf90519c90d59567de1aec2750305edf0d24ef780f23abad82ed2c3473c12f20946c28f14dfca4beb26fe903008f4dbb021e988cd53e6afbd82394e177ff9601800472c2d7305b40e886ca183b1874bbd8bb", + "031024b6e59b07739697360776bafb09397c0ca5ff9d6a6f86e4958d55c1e622a973cc2fc58368de4a476958ef6be222a1d8242be490bc06b80393f367", + "014cdefd99e83527894c16a818c428b7cd3b02f34f3fb145c1471e693b005397d549e92642b39c76949e125e510c", + "029d1edff75862c95c4ea436e2b5c527cb84d5cbbfa2d5b45910085fa2529bb9fd08fc20e89db0be052b036122ae1724e2cf25155367d43453dbf6d8e7" + }, + { /* i=9070 cDividendBits=2270 cDivisorBits=1706 */ + "22c97b805cd3a799ade99ae3bed4abcd00324bf35ee54ca3c369426b2df40c606602f5b36780b9482d15debc87de3fa989e3f6cb73d881149a21e19c236200efa81a4003c65d1e8275a167bbee2a24e157763b11b9c5d520e36a056ed2886f074c8d6be3f57100d4b14e424de0afcf1c583f0165300406b4317aa3c4ce75de6fc7532c234fd41960ed8abb0922c29e38d53d4a88051b78a59e0145660c25f50c74455f3430f6a02b4827e5d9211e5117c812f12b08b9682be495a80d7e34c3cf7ace5f23ab8c1ead6487d4f0dac97a9a3582f3ce8d2c5ac61a96664e4be2bfb0408974f42aa3a1e5f1d7ae093fe2fb0cfe7b03bde8a2e6fb0ef5bc94739d1a0dcdc0c4d5429de0b743bcc62d056e5d03a45ac70f365a174d943562e4", + "029e3937d268ef0bcd05162794a933d75b2fc8618bdbc2a4fe7e228850aaeb76d1a14d8c3fa29d2cbba2eb6a42d1ba3dcabb4cf3c0655a6f896255c11d0de8691f5da3337d72931ab92934d9ba1dd5eb9e6695df604b3da55a5bd29ea8fb022355ae89cd62f0db6164c71feebfbca16890d3d6c10fb4247ae103d38a6d3d790de7d090cb39e78edc460b8b31837c679928c2c75422ecca594df6939c88ec957c829a8ff93d45c1cce61b05a378fb624d129b6d3b27298cedee96b3114d16edd4d9842eeee09caf8f1c8579629fcb2bc78b486a576786", + "0d498e9b15baed9c991f0e3f812c010ccb0ddeb1e381d2f28f99da3a2f2ad2a3b99dbeb0def4dbdefa9c5c631aac3cb0deb7cf318979e218332207940373161caaae4e735648c9", + "56d4fc92bee6e2e6bfa8c343307476b35cfce7846bf556467e7c1f4436081c719ef27a22ad911665175532a0b6763d47ddbb935fd9ba5a97824b678e9832567f5e408500b3cb2185d21987f833910274235b60b1915eed050dc706b3a4ab77fa868f52d1789bb66c00505cae8c6b49ca10d45c059f0749e5ff8b574161856711b5ccb2a98e148370cf3138deddf5d00f5f3fc9836a6c4877075ee35155e6376012f1cae2617518d0f270a3a59132c8c8b6509237eef212a5d5c5bbbd0259ccb7838b80df3d6f6ec43a2f48e6662f6dc1d787736aae" + }, + { /* i=9071 cDividendBits=3079 cDivisorBits=307 */ + "483117ed62739b8c5747add42036e80fc022c1cad7425c69507e71a08f768e7141e7d822771f44275381c233bc21d44fe2c86d52adff8112cd524ed078ca43571fe76d200aabb67cea0eb6c9755a3f4aa343f77378bdfd55ebbc14bfe41d74d4af5b24f13092c87b0271f79ba46a2d214dbbf636a7555bd3b2c12abdf1d5257a2a06df84b7dd1f51faf5527e0dd60722e8a18fe475e9e012ea307aba90aeb9a7ab22f06db8853d839931782f23bd7d0bbb06390c41ef691a4602f720ff1a06f6efe5a58902ca8541392ccb4ea9f7b27c9191d136973bb543dedcaa7a698edb4be87044ce320915f1d31e81532af0b58674c8e2b7cd41b64279d1b6d80283078be8d8237cdafbd9311e486d40f7032b425b2c397180bef5f6ac4afaff5cd04014ab4b89d7c8f962a7c8d1693ae0ebc0fa0ef56993dba08e236e8ad0509325ef34d7c1b2516c6b0b951e68e299806b693edc6456e5d1c0164db8dfe1ccfd2135942dcdc55f86b869d3c5ac0d722ac9cfe027921f3dfe2bc9301397ee7d59f5bc78b9", + "06388b1d233ddcf650878e17925f092c3c1c99a913414077239b6c7e9d2cda73a9256b51bac548", + "0b9ad1efccf19dedb447a17b47bd929d5053f657e4b6a281082f3349eb18252d4e287a8d7f22b4ac6c019459e9246ca3fb78d34136742d1b52d6abfb65117c38771513ea48c2272008d4ebd1c71d1688687306736e3d775af9ffc411100c16ea04ab20fddf4854c25a2b462f2d7c23fdea9bee278fed191a9ae5a9a6d7bb668cf38a5b5859ff9a3bb64d116327254a56cac1a8d0d64beffd4f9d320cdfb91ba9f39daf3aa4d7088556091c780254027fcb31efe81ffce05315642029b9779d0ed1988957b56eab1cd480f29cf447cc40115b4938a063d347144f641fbbbc63f3741377619c1011fdb1c71593ff326e0d4e469a3d333c35e1c21d75a3263497ecf849e1ff3e0121befe7ae928737c3674056e0f1f3f9e15db196ef474a4a29389c5c37e67bfbc7eee4242fd83a5e06a39b0053638253b06a11ac25527de0ea1a87c82bc28bcc382eada2cf784e3e422f0e28c517da8efa7870b1213", + "02314dca108a199d9debac1282b1db803af4e372c7b3d8e62df2d29c6e19bd9bc43f9c50e8c461" + }, + { /* i=9072 cDividendBits=3838 cDivisorBits=1130 */ + "10436f0e2ec8d12df8b14fe29849f98c351e8fb7106231499575f26eab757f3d921477959fa742378af8eb0d3791604b4090b7a79ffa8cc9d997757de6e065978e8bd336f22d7a7e4e6973e74175931d44090f7f0554e9bc016916d7ed31292e56b753979f71cc5d97918fcf3837321838a9b545cf1e94d66207a7d32a7e8ccfa7878d0dccd831fcb73486f673aacb0c91efdb1e9acfe0ea60408054292d0871118b054983f155e0a2797982c4420beac44bb296ec7de20da68d8d91bf00286a51234b65beb7bb4d9f67e9326de234fd3d9ac46b2b6b5be7c57bf2279f0d59bd99970419d8f4d11ed4575ff4b9004c38acae1387c9e09a2f82529df2ea41dbd535e4896e8e8eda7eaa819bf408c092d03b373dc72249c04067744a73e3da6df64eca956f8f0b6a19a0f43d789c1651a083de7b3bc1b84743afb29c6066a910c196e9784fa14ebd8461f6ed6bc5518c809e8370a2a55295af4f7a0748981b73f52e6e51b99e030790b7cc013dcfc962bd25c109716022791eaab9c99b223bcecc40e962485de866529adb96520d38558a4d69898ed8bc53ff93bdf3427fbf1a341c31aae485af3a3be98581610008e4a89150aaacc77ed046f9128411153540299ad53cec2468867b5a8e663e737f3c73f8c596ee98678e2751c161ba25a0b839", + "02e87174ac8b5b721a868f798d047e74fb654ee13f5cc864615229c6803e360971e57b7ce355a4b199181e5b5b4164af4fa27c92697d657573e3a929f8cd26410290ea0fa498353fefa4ed5cdddd549d5a63328f4fd884e0b4e135bc4eb9c70e8bacaba69e818b9e781de06d805b0cb275e6cd23fc2ea9c3f0a155ae0184bff03c54543aee2e02020b1dd6159d11", + "0597b9fd7115948c4f3ccfb7a1f3a90d1733fa6077a2d28866cbb684ec2363e0e10449d9cb14e6787eb70fdba6b642fec05221665ebf7201ae6a5dbf8b2b03a657159da583b1c71907daa09a03d152cf06f28e269c0921c414d856e8b80a682f1f97c59060a54af6feb22b47b4682c7ef6d2bc18948c73def3f665dbeb84a0604ded8578ec8dfc29f121bd6468e0a5880bb6437bd26e3c5747154cf6a5ff54f9c0f0ad6b0a72bd8281696de2e01adb5c112effde837c89477fd3338081f69b288ae1f19b314b50a536c847f002412432d60f34e6cde61291da9b6b6b9d3feb72c3388fc3f11ac184998e1507067043d5a0b649336b435356d68fc9f197490699b7656d2d53124c1a8c51dc34600ef1320efdef2e9375174ee69d51ed9d74aac8a7b6ba28fd1ff08abfe10bd1a24a40eff32ceb9e3a7b9ed3414de43e689e4ffba3aecd126677daaef0a3a1545ab65774093451", + "028f9d085cbdf156abb4e50ce072690b8af430f4bb92213e24d00d0677e4fdaf3e36303d6cd2222cb01312467d4cb5216a2f2422681eac1dd939bd5ba56aa6cca5d9de3d14790f64c357b4fe49a1943e259175b57a0d731a2aa812e4a473e57075aa61a970401471f8bcd4382b9306a742b304ac7d12e488fa3ed7b9f0645d25a424b6fae6e970cf0517cb4991d8" + }, + { /* i=9073 cDividendBits=1765 cDivisorBits=1434 */ + "10846683e6c8d68f99956f0cf26e07992994c806ac28f74c993dac178ad37c43e4d2dff0b6cbf62bb26b9a8c3273cf3e5505dba2d5fc2c782d1888818e95dffeb76ab5a648d85e78a4e3ab3d6a632ffceff26d0f0110dad77348ce637af49eabc6d758dc1edbdd46c06d4e81aeafc80dbeecbf3f0d610c72df3375e54fdbf706c2c7748e137dddf4416bac025adf4f34d7c7d3dccdff865f1eabf74af02f3b23286841c70289663567e56d5f30e9e20be2909c442c2307a3503099ce847c87d9535dd6e1351c2c9adef968032e35c728d6b62cb7f9dcdc15b30e7ea432", + "01247eae794c30a0845dd9c2db7d6c8b226a358b2f5a4a2da198785a5f7066b37d1de49f9f776fabd9afdfc6b5ae65e626d02af544e4c0bcf14abaef0d682c8b057aa727d34be9d34db190df028c674ace4a8a5ad492c63d5006460c93e31a2037053bdf5eca6c6bff752f78840b1c6905c55eb683155bd07d6601210755bd0e9698b2b00a51878e3a0cd7ec6c70fde965b7f5e07fba19d795b469ad1986005de73018620cafa8f5b9fdc3bcd0acf9439fcbb01e", + "0e74d1adfbb83f6ab80d04d1d75060a72bcbac5454cf6f2f2904c8cf33941f4bc512b2f69bfdd6abc18d", + "6d761e100ee4094cd1e1073d3746ff6e2c4a65ddb7f1888b2993dff7fea8c5509cdadfe4710004b246d6f0df3ac5d0d17a9cf9532549cf2a7cfa9d2383cd1c2e69cfa67e13714ed6783d99e9254054bc75d14b621104bbdf861b10241468ddee6790d9e45e0748b1891a4c32a9109b90f09e6efab38407ebecfa57d4e55993b60ff7a7a153a08503fc3a742e0b3168563ffe27eeb3674d443f86c7dad3b70981f3cc37e1f41398a7ada3de2527960dc37e05ac" + }, + { /* i=9074 cDividendBits=1655 cDivisorBits=856 */ + "19522dd9350556423eaabf0cd108a7dd303af2da0ab95e0eae909aa1e9d3ec4d414ddf2095d6f88cfbf6e28826c26732b6433b77bca76ea86e39c5ee3b9df3043755d91ff83306aaea7334c44766582321cb9793ae68b355980678fc3c566082bf9ae73b13c996f1994fcdd6a17c83aa75d63083cfe19df7d77930ef3dd8d1ff5aee15890f6d936867d2407754e2eac29751b5d9fca2aa9d30bc77932bb1a37aa04500717f9a090a4c0062f6af1be2747a2dd4a8507a01b4397e412c64cfad1f7764513f0bac58c332a93404f85b2c", + "6a9cf4378413fa9ae7ac6a7f0576f6bee48f4617db9d4a6cbcc44ee2cc1bfb2dae1c7605cc900f4c3f8a86e46ca5ae1986850caf2acd95b76eaa4f8b477612aa2367a318cd6d448b5ca7220a42b14635d8a905049734a7d1b3af8fd39349a22001772b0e0a95093c139fba", + "3ccd0bd30901aca150491ead2882f612d2140205159e93c5cba096ef40f80b47e7b490ad3c8e06dc4c2ff561f6469bdead308b66bdc6f20c343f50bd733019e8e1ae8f8b70efb2fdb1a3f5171b277df612383a59945fdef406ed027011528547e4d1bc56", + "0204de4241123d65ff7ad658d5deb7d0e34ad7dfc38ecfc79bebdae35132bd5cd19e35531f71fdf4f306b6f4e4eb2d914ec2439521aad5e8e2aadb9d24e16e4857e7a192d4159ddc57545b296a45514c98a4d401423c3be42436c23503a6cb5f0b1f2801255b1e5e3a1ab0" + }, + { /* i=9075 cDividendBits=2834 cDivisorBits=1321 */ + "92ccf3cf536c6a61d37d52fca63b2de70b73e1f99325645ae4fafc5823f38fa10d95f6d526c3827fb20a96502f5b669f65c8e4213e63737b8b85458e3920e6cb34ce36c9c848d7e8d9295e3cbbe5288846e3f090ffd12b1208024344895f76216e66bd6f02077ad3cb002c33ec526f082efa6e332119fb30be4a9f01a18936e59e012dc06b7f9420d5518c187354bca035ff393c982195709016e6ea9e62749c5f1420ceaed3bbc90a274560433987c3b7188c7a06434fdb28aba1b1747767555b303b7fc715d1d636058c6ed4120f9185b3f2ba4f6ff18d892a0b5d4eedc38f0b4ea35c6fe6d7e3b1a26aee1e4f7b1f62b4857b5ef4610c3e503d913a04382b7a83866fbb2abbc4eb94b7cd75dfee05669dfcfa363ad2738e717987a4331535b46a667711969f00f6ece15c9d6870e148497046bbe3fdd25105d049eae07ca40536649af5da735f6d0b6edb23d3b82d82acd1acafe57c3c64ca9669619378d71ddb", + "15e3bee2aae3d1b9a8c1624bd59dea7efefb7151dc611d52806ff139aa4af474ba49a203cd893bab971938578626983f45b101a26e155611bc0d10534f9f2641aecd28c863196235158140d827e1af2f4fdaf7f5a0b4c95235f423d35531dd72f5a6b1dc7e8b7cb6747f2ea926b8dd4bb3ce83e49f98f4c7565c910d14abc824fb707c7e19547ac35a98e6e7e7f6328354ccb1d53dd70ae21a8790250852815cae74c7b2c5", + "06b4d68b2b7b5c65c9be431b16feff488d4f113945021c9ccdb71e0f9b7d2b0bac865e8cf2e6b9e291408f2588a8b3eab6d7b53fb2517f75364c1707875b72cde2fc9b5ef50d5c1e052333f57036e8f27f812953f1fb960d19948221f6a1b4241b8916b067e709f21d0d05de60fa2192b3d4394c8e9b3036a38f054a0f9f0381c6efc9669b290a4bb23ad2503dacf6dd5975ad1826f6dce8e499ac4b7c46477b12a51e6f5797684dfa0fda3b006c6f1553dc669a8cb40c8d722393395381", + "0771436a41f91d72b1fd0ae742d8b0389525952ed74cb76999b414e2e0ca02885c2deea465641610d998d958b738692688635ed4b38e488bf68ed976b2fed9aec2ca80506142140aa0bd68eeded3056dafa66ec12525fa51c3b88eb40446bbe9080d5b5b9ccb5ac61d9fa4e5b0c491d248d505d39644a920e5fd3772b32b0b6289cfb9c9db06450ec0b103843b869d5a85d8bd2ae7a2a1078ef328e915aadc46c0f4632996" + }, + { /* i=9076 cDividendBits=2554 cDivisorBits=1231 */ + "01f6ea88b69c025c504128120cd0adb8b3aeb5ef17464e4b26c3daadeccca86792374de0a99cfcee9f3fd4facd9f1515eecf62d15fa3efa822f782d96ab2a01f70f8470405f430c3ab33cbb123d8a3fdf75f4e343aa97fef992524289695e28ab919e550a287275b2a870c10b57438b2ecb2d19509be011e02cc14dfff139b9db9482110115995dde6dfdb5afaa293755da18e2e29235f5bd938c82b4abdcb32e386d9dd541986b56e5ac384b049604d3636deee677b235bbf15982ded740e168c897f179fc9915b57026260719e40897f250ae6b9ce6256ed49ed5e335e37aec27ab90aeed0b00840ae260843c712f0812b361be3be6f3486c0d3d3748f6df557abf8a948c1b464f083e76c9664c6095d7d33357e3cd6945ecb8b3e529474555a2c720201ec27ad837ec7047319d0c39197722d3cb99c4bac8b45822c179685", + "65eb2a4ae7e9ceeb97b3e4742cfb3c2029d29c71c7468b4c56a984fd02ecf7d8d39fa4ec598389d29bbe48091a19b494f24cb4c2d6cc41a5967c09c9b770cdc5714e34aebad58d077592b469c9a94ed9973ee51e54d65b3fbc118a353ecc3ec676cd485d2cf02cc26c56782746a49176250f7f219ced4f54e4d17cac0fea0f7232881bb5472f7a050419fda8759a31d7874439d37acf8be58511", + "04ef3a962762a09e47890af2007e4dc05efb8022933a06de668d981f1f5574ebeca3563894d5f449680e617d0de4f887bb3c7c3fbef51907865f6d2927731bc30e26d0c0c13bfa4ccb263311ff98a0f13ae5755cf8005692c2d2030321f575dc632b570a991aaf7d6722b59d53c068cfcbdbe66439eab468a729809940322c23e70c5679373e2e0e9ce83207857e95642df8ff76256a4ed7a991ce2e063ffe3a7178116fbbce", + "1769f304352d82a25f789ffa34fb4cb03d456b53216576d6aee8ca002a81219dd9fa3b79aa91d336ba4f37efdbf4d51a96d59245bec7db0304db16bd15b24551c146a3e42cdd9ba057790aaeeddae774e532717a5e5d95d04c32c043e2275397ccdb95924913a5c2a3dd0dcc7e3a1e71a0c9f42afb0cc11585ffcf7ed18f6cd43103922e1dbb90cc072a5f7b4baee93d100dba340ffc1dd417d7" + }, + { /* i=9077 cDividendBits=2924 cDivisorBits=1515 */ + "07406ced457ee8b8c9df0cee0a0475fa65a3f87fd1c20e17d543f90c4d17ba36b160cdc1cae484ca343a2b4f17c496f2bb30c6be530f3c1f321e6e01ed4b8dd011e0dc0b1dff51a7a079780e205f4c68ee99bc5d7e2924771fb4f29be31cfce5c52d8cc85da96314d6287babd864b4199adc1f76d2afc5b24dfbaf864cccc1b0fa579db12e2d14294c3a68dae26fc4323dcda141edd18642892cdea6d9adf10e2bc51d4819a093209da5d9340dd342cd1876612f07a1b7501c07f8514e4f7be70cd2eb4cecaccb4f63fed1762e42fd3c24d46d668e18cda52f70caab5bc618f192ab91333e1fc15ba88fe9a9354b989f03d7ad1bfaffc54f9a5d4f96d9679ea2a75f287bccfc00163dbeb0beae0b7b1bbe5d4ae2f273738ff9638cedfafed33ddf634e21a983444827cbfcf8499911e95c7b29375cba690758c997b5cc9ef3d498b04d50edb93c6b9f634aafe06d763982b6b78154e476ff4ee7ea512f4e50344ff5ed62849b70f666a21d4ea71f", + "07128784450c6644bf358a0a772f57863371a92db0ed0fffbe308f5ac0694186a8b903c2ba84398b86953b36884fd0a47bc0364efb72b9b79de4d92a5457e5f351a0602400d324c5ae43fdf76c419fdf494205a219d1d0c70a118b1b36b42ffb66b425c7b57c778e09dd921a074db23cb7bd66e17cbbfda69bdaff99521ea556b314322cd397494e97c378881c2b32ba81938b8224db32e9bc011c39b87ce863084f983d4698e61eb17e74989e0dc26050ffb9833a7141ecda89b803c34e", + "01067d4f24ae6ddca06d5013e757950e2d1026806dc12a99088a7dc1802ecd7fb461323d37b93991101bedbea69d8e3bb00086581745e86d1ef4b0c52b58a7357203dfcc7a9ea027882aaa69db7d7d8f1441b5bd7cf07b023c5a45d83ab7399d3c972ad8a63a30139e25bd915a04df3ddf2cbdd361c4f2b688615df84f37907229f91f20880c4b2b58e6d2dfd0ea839ae1ff3a78d9b81bd92b33b72484c5334938b9b521fc1574c7c3fbba9dd1cee698f8", + "02f4de6dd19f34546b0b9021e8c7f419d5d55294ed6b371114284bb4b063f5d9f2a29e6cd15815c4aa7f24158dcc1bf22402d5d30faea29ee257ec791846e720930c19421c10ec31a44fbf8dd5a7056455f24e4566e90d8480a7ef8132843a35c72f32fd426c39f7136c99fa3cf3a453a9e3c1f314aca4645f7e58afde7e7d75d076a638012c80c9555ce4484754436ddc1f8a97f75e2d3488c0e09367fcef348c47361e6517a0260f8b1f01d3be190bec71c5d92b2add6d48bd619f238f" + }, + { /* i=9078 cDividendBits=4 cDivisorBits=1 */ + "0c", + "01", + "0c", + "00" + }, + { /* i=9079 cDividendBits=1977 cDivisorBits=1238 */ + "015a7fc4c420fdcf3be5e68a70569552f9abe80e523c1955d64542a93c178def3e4b4c665835227a64f2e5655f4ccc00e3d9ee67c878942f22d3af4b5a27677808ad3d134992befe766269271bb1ea497e4f13455b403bda8b839e11ad6b2c19eac5024d38fe7eb8d4693c6f4d8975143e8005d99850a5a18ac7d08e0ed9cbc62e10ed6bcb106704564f2bbfb4039fc1e03d468a911d9ab73204280c0f1945414552b438013ce51c0b2b96e6f40e37cef05bfad1e72e44b0cac0f0c358527d9b364d9fedcf5b828e6169c5e93ea96afddd1e1f0cd256ad81d0557f6eac2997c98d1c7ea351be35490f591495f5b43294884dd254915c79e1", + "1d9689247563fa6443ce1cee89de7e3dcb79209c63524deec215951cadc93415ba179bc77550efd6d412215b1c473001fb04dbacd153c20259bab017042d074fb5dd5d4287fcf6426b8eb53eefba061db974db40d03967c3b179d6358e7070aae97499821de1d27fd253d839848d66f507fe27fb235efb3766e977ec034a5c3324f890839718480e9ef145fc69e07d8cb6870e3d77fc88ca8b4f54", + "0bb5f61652ef4d7f84930ebd44676736ae8420349432d3c5ceda84a3ddeb856e1aaf715cfe9f8e3622da3f313ddf8e213588b722027f840e030fc2ef42bd43477df7cfd90c906abbf7b1e652ef41d04569f15fecbc141a0dd12f346278", + "1175bc7c9fdb1a4eb7ac3658b0e75fa752071e9c874769973f4a700adefc52482cb0ef877bdcb5397ac184db554b4013f06b828c4a80406e884cce0892f003c176024fc4503968435b8b79c29583109fbf318ba158a936455b06291b8f5ff1e9225544b3b45f240cc57532ec2738822d4b905eb22ea1f8a2d61d39239d8afb0b3db4a996a1dffb0b3ffa8eef310c53c828a8a4531f553bc2a12281" + }, + { /* i=9080 cDividendBits=3721 cDivisorBits=260 */ + "4427daaa7f4183a747b43b1652c6b93d71d0b275519ef7d398508fb6944f02d6e13443cab39125f230845e049c4bb1e1ad5192fe4c24e982eb716eb32d36de88d689f1b953386f944a19446fb85a55fde7d4505f2bb3c7b2b4a9d235a675954e6a11d97a7483adce945bf4e04d5b9666a54a3b1b0052d1677ae85f27952698d57053341ab0ca963903aa41f1429b826f38c7f04616e1d1783bcf34e464152bb35bc783ddffda00d7516e72941915830e701f0af53ce457a445fc31a97ea87b90bc33cce1c59d20ddd04bd395259976bc04bf08802281fb759d203b7a5d4bd60028a7c507584eb58c243be4b2606e05a892207092dabe15e4365c3943c15b333b74f4a738b810eff8015873643c93b21d9c64bc6c895293de476c8c1b39573a9d17f74ed206e33b63464dc7b76ad37836bf26c466137ef27cf33f296cc6ae9ad2b687c755b2c0c89b53a7f60661995833fe3de3ab9fb5dece87640d67fdc80afa8d773f1989ed292749da241d1b285c1441773e2ef7ce921a6bee22b5bf3fe309e93178335062f7a27e6d1120cdb58cc86ead30b531e6f2ec139f18f1779e0d0cf42251fd8b0e870b1ad4e733991c34907653722ee14a36d1bc9a1829e5172dc082ad3961a61a983a6f765d4b1c21473387", + "7031569b6b2e441d1f80974ef81bb21212c52d1754b5df14b7d745a5296df2d0", + "9b844d18de95a6678e5341f1eae2e879c718d9634a88b059e7a00d99444eec21f440afdcfc2a46987966e883397e083ead016b8aaac5caeca9864e0165f78e4d5872fcdb450673a987fa0d3e39babec8684d444990e9852d14709ca394094502c3d40b5fc927c1e801631076a99180d6e7e87bee8ae759a93414bafc49d9094a5019eccf9fc2defd392d1b1ce14565bee09ed3eaeafd55137c0e8c0713e98f808cd1a5020955077efc57dcbbc3b5f8a31daf084a6664476a44f20cf15ec9ee6586cf230f65d4b45e50334d4cd2dc812eb994bd691f7c94179309a7a35ec7ed57f1fc6d77460ea12b3dcdbcc4e9e3d4a900a3baa32cf382d1c3e525561fae993f53d18a40cbbc8a96231dede3fec9cea131d59501c179bf6c234654c94b7fdb1ce6e551fef1809bb5462e4ea85b879f10e5893281d1e2ad4e2911d3765e4fc292b6c6deef386e091db97f4c48af62d3562363aa09ff6ab1802a5df5f01fe9a0d14dc381b320247db2971db0edb856af5290b79cbf0597caa42ab344f6942aef00a1e42b8a55a23913d3de6d9b1aa6884ae85d7f3cdbaea17f600d5c23f5480f2930461f9ef0aa3dfef01f933e1075873c09", + "45ea228e6275751a052d91d35fc780fa393de1dbdc3cba5f80537ca3cbd0ea37" + }, + { /* i=9081 cDividendBits=234 cDivisorBits=100 */ + "03a0d8d3d8378d145a87a041907ece7a3b33dd1357002c15e7e2a17f5a1b", + "02da775281ea05fafe99289d3a", + "01458658e42dd88a84b5bc343ae8dc802937", + "029aa080c51c7918abc39748a5" + }, + { /* i=9082 cDividendBits=1638 cDivisorBits=324 */ + "2442c24543cd4c22cc6638fae686f9f42a8582e31eca1afb8a1dd3deabfb70308eac714ca8d8311ec3c6069ccd22e805f860574ee31cb1acb5ab9dc3b9fff1cf77858ca3a9352c1359b3ad6a2aba150ff582da37215ff680001357122c149a8e1deb7a10b3f4af28c386dc36efeae034f64f501c43c729f6b19c5acbd924765782b7bf56c19ed521e4fbaf33605954d485ec2d9f88e26a249cee9c192eba333dcae03731a7b56a6e1a4898508f7d5039e668fdd0a8015c9a60bb0ef6ff506be4264a7e20825dbd089eca0f26cb", + "0960758c37d9ee119f72ba20f4cd8b7f6f951e7d2067a7a9819986c37f9c1d0f6e966591a8556997a9", + "03ddf8b7141142b7e47638c81bdab281252db3c52ca22636a6bfefbcd946312ac9408efaed249167a1f7f4e39e2a386835a9bd394f07752cd691fc17605317e79f3a618ede858480926ddfacb7cd097e3e7b0cf071737224b6dd2be4b4665212d16372c5460a671fef971c6e72c3283201d91347e8d7bd27ca251ce56e0649b4b88868b796d7653d124d13fd5e88a520e027e5228c12a0ae52bd9d085bcfe791fb44197588", + "0176f231c7cff3d9a78cfea97cd7e2e9f378054d05df5b24c2437051aa3749eb010e27e8dc74255803" + }, + { /* i=9083 cDividendBits=3378 cDivisorBits=2525 */ + "036d73323a8ad85607b6519be5884ac0bec3229ca69a7a9a8d5a2cd9d146c71d1c509d80b376c3e8df23cc8a2fdcf6cf2fddaf6312e5b7c8c4c12a62482d9ea05ffa4db7eac3323c1f088633b63a6f63379ef3f3f14c8e030cac735cd9297a527b24a2c30de5d2bb894ca7cbb0688fc5cf3c5937f858336eb4c431a9527e96e715ac8231952a10c2a52cee6045cf5f8544d2fecab64681f2d8bd116eae3ac738428551017647c7c71ec40bcdbd904284be6ad91441a7d179f5c191a306e0f101a1f345a0cd04afecd99d9c5f780e23287dc257a27836f04e57786feacfd1fa1ec7d6273d4c71e92d33169e6345dd2f4f06c5776e606c88b3da069e0b3696d6c79d6ea3cf7ad3c18147a5a372f77f66f680bdbaeee2e5c344a9ef8de2f7ad63f933d177fb3ddd0d9569616caa71ffa5463bb4471d17fd50d13fb710b5a4266ed44450a1efefe86502569080e49ed58c4149fb99d4926ba2716cd1c16962b3e76ec3fa9b546a117673d266319d156ba2bf0a1705b3ea017f932fbbfa3a01fca3cdaca965b1be633ceb4a3627b45c91c50f6f65e9678a74d94081430a879200b3c0839de90e898bc3", + "183d830b7df6ef88f2555c69f26b56756dae7387e5de02f13fdf25e34044d1de92fbaf8707bb7a8a62e3e9c4851d80cf6b5eaaa15b97f7653ad77a3c930ce14e7fcbf7eaf2bbae6a5ac49082f61f7e4aeaa60f5bb649b91331683d7db533a12501669004310ec45edd0d4def4f21a74fd6328a4e4ad8bfd546e4db75a8ac7616fdf97a16ff18d668817704c8466980b7f01abc7a762c7aa7887c3bdef4a74257921cfc0c1b235fe4eede0534123c9e53780a67bb8c024d777a5491b19e68ddb18be516f958013cf4d93f5004826a4b0e97168aa826e43ad069dc3574f3a69f6282a9ef6c73fd2d22db73f1e79137e8154ffc61ff9bcb455f72acb11e4d0bff4f1d5273ae3514ef7d21bd6e2af4729c40dda888a2031867abda4dc6e777fce7e6e8a93209c835d2375cc23d5da4217dac870a4a957175873f1ac1100e", + "2432b0f008b1d7ae497643ad2885e6a1c8beb86508b5c1e2d7cd19fdc9c5e545cdce60244fe7d98123039bf1afbaeae6c9d916e18acde7ee00186dfdf5abb9655c59a8c60097f3cd1815c09b52bd0640f655af9950e68569bde9cb19402071a2e0c05bee31b18642de347f", + "15d734212ffd0335aa96fedd7995484cb403df81bb52189d64a985404dc9a5c1c253ce8d16e5fa0eba262dd88ccc520189f3cc6009ffcd9fc7fb9ffdfda5dbd6eec107e9f3b136e1a1e226b768f49d45456e0caaa84682b30c3f5bbd98238dc436cc5a053512a8cac642357557e6a3f2533c4475248eeba210a01dd6f4d127e96c3974c7e92767ca01ca99219b3d21b743505858bd016e46649bd3b1da7d3b8afdd6d04609df36d512e285107f8358a7311018515f7304a1eca40980893817bda73c84c8638bd39538edf01d13816066c4209e37de5bd289b2423cf7442947a7b2e5e10f8345ae39f3f942ea06142ddb374dec378cc5e45930f504f7298434c9866ea813371db76b558e65c72352a0fc5e452dd43763f3ddee8a766c6c8abcf9222d7f996ea835443ad5b1da79cef132d291b7587647a548095bbcd1" + }, + { /* i=9084 cDividendBits=205 cDivisorBits=101 */ + "178820f941c1069e440b702eaf964a88ce845338e6ceb3b29069", + "1d31b81b6efe035fe2f3f85440", + "ce58be9503c42bfff8a55ac728", + "04ff9076e32ae24e17ace7a669" + }, + { /* i=9085 cDividendBits=1177 cDivisorBits=189 */ + "01206bd6afe94e233ee219ea91638c501a7b37576de77e754d927e34364438eed86198d0b6ba78bf033d47a07ac4eeda2f1ff9ca38eb1c4e022b5f07c4d3f6ad4434c836b86df8beb41da3e1311045bf928a43533d8819c21f8f560661bb8b6b6a819f141c0cb0bf0742f6fa92f90b5d9d89e764294fa2635a88322e099feb1630526a7ebaafa5f2f60672b25a23d7040050ff06", + "04a0e732e0d26416857fb8f0d380c5a2fc5b911c8f7d4484", + "3e5056720d67c0f56a75a7703c0bd418d15aff4788295263af104c00f1ddc3b2fade5611355184cdd71b07054f94b5ba6044344c3ebabd867a1c875db01f46be89d233088bceb5bb69ad80cde7a9066fcf63896b100e01e391e5129f5ce374640e98c69243a2add75654aadbe1c8121e85664dc916e708f27e0a3bdf", + "8e9f8fa376e475708bcf8112f9fd83f886b2ab7e3fe40a" + }, + { /* i=9086 cDividendBits=1779 cDivisorBits=1616 */ + "02af5b4a8f8ba84631e97c72b95c3b987ea658a6ec8e756a344a091f1c658c53b0841ae0ada40c738567388462b28f3c7268ca2ee04e43d12b9f0c8f3a3474e6bbeb660948eb013aab3cd278d0a44008903984cdeb1e8c5a9f783e4425a6f400187c09e060b6800d181e6991663fab9049091753e9599d8176053f1375dfb40dddd232ec449d4292b30776c8ff74c9217d76b0c1014ddcb0e2a60f4554a51e260a0b6cfafbb7755f0eb3789d722c0737865a283edcac77e5e74dd3379b859ba873da1865fb446699f9ed63e51faacb51ea138a4dab04e1fd83be9aa1ef5960", + "2ee355e57578c592c0a18465baae8638ff4678e4299e0b5e9d345686351b45b81e75911139294ce1c46b2ab100d77de66ff2f08cafe9d75d4268ebcfb184d4a218153b5015584d24edebeda77cc18a482cae136054a02a5a8527685a0f20842ec74b9b89a3473dccfbac04f48533c5091d996a2c69460426332104237237d742a8ec70dda90c7e2ac34b75661a9db0a0762887fcc8591dbb5d0a995282bc1721a78d4b8ce0f779af66d21209f41aeba1f4341f56eeb25a021cb8b04f68fb48c3a27b6b49717a3929084b", + "0ea8d724ab9a9f2dfd08a3251a1501438c4ff8a9c2", + "16f91bafad16deb40df05efc529b5acfeb4dd7dc220ee1cb960bac92b75524f0478a7811ac1eb3e459aa9293f46afab2d881f23a7813a00895c6b175cf9175f3b0a8d88f5a6b31e6b4b030e2a2c3791ba22cde7a94a6f23a0303bd1bd733cc7906690b9440845f2f926e13ead360fb3b83f4c6868d906e28fd63cbddbed2b643214839c0b871cbca06e243b58386cd6b3e6298970f911f69fa11d1512c53e7dbdf41c0983afa81aa1dae98cf0a244bee520dfa1551c330b44fccbbb0ec10cc547f1a5effdcec0cb58d8a" + }, + { /* i=9087 cDividendBits=746 cDivisorBits=250 */ + "02548d08236da8abcd070eddfe6ddac04233a6614b4195bf77777007efea983b4cb411ca97dc86dc29514f8e5bd1f5b1bb134f3501f0cef97cda3fc3b09f16d312a11fbc70a447a72e45c016291c261b27f241a853c94d0b5e9cabcaaff4", + "012f00f162e909e26a540a6a9a6def9a5243080f277ca831a327232b9b6a547f", + "01f802aece4b6affe3f636647d287367d8c98be1da48e58432d23e15ad102903157befbf7ac88b8fbafa27c3b54a51a1f79d076d2cb543f32b5d1339b0a292", + "010f564c414252dfc6c793be199084a279f7c73b16bfb77eb0f6c90d615e2186" + }, + { /* i=9088 cDividendBits=1379 cDivisorBits=435 */ + "034fd560e15d779387c72d2f0717046cda92e78af0d9b15d586f7f6907834da713f893cdd5a48bbf3a6e3062e707d093bdf11cdc69dccee6ee20e2a618e8951978a4e8b773a3871561bebf1bfc0b8676bfb70b9338fb0fe8987028fab29b35fdbb7f7d6539c21b02eab53c4c097962984983f7a8c1d3f884143e624499fb6d847a3bd7ef37b5d9761cfbec5933b808024f2baa9cb82ca96cd7c56fc23c813d0d38650461a3248e1a18417e8555", + "0511b31f7ee91561754edb5b184addf4dbfffab82cb93d95ba14e4e7ca977afe94d1298c031774828aad1f356a0769d6713971974bb666", + "a74101bf2203e10482bb14296433d992a6db94041e87a89237777f5097f34ec08438b4ba2d535d380a5e8ff6c818ed98d481cae0f08d0b1f71198f712018a6d08f18f53b6525d05ba3e72bb6c8db9b3eca7bc8c0c8f2152443c8a3b02f841d11f4ee77deb5d8900cf2bae7b4a91c2b1ebc400a083e4b", + "0134581e74adb8557f59901aac4b78788cdae480e708fde31cf3cec4ac5dd911d7a830f5f97757ab5652724fd8f0bdbb2e922ee8f36173" + }, + { /* i=9089 cDividendBits=1656 cDivisorBits=1147 */ + "974a0b730d6421f53c2fee7b895ca28120a1a5509bdb4d0c55f3cd276065391e3c25a5bd77b239eaec3c32c3d5b05f2d31ad492a2960c0d2a224c45b5eeaaf1d59c9e4f8e261066112a2327b6406314e1a7872574ed4b56d5fe169057d9701967f57d92ec9a479090f88a2039971526f42758c8d411ba56d2bb3642f5cb472379b0db1fe06f312c33b514176874e0ecc7299db2b12869036e723fc2d38d862604e2ebbe51c26ed51fe94e2e20d4abea8fe60326caecbe0740b216c1de078546c3a8f9c34d1811538dce30dda768445", + "03e71c829cfd001d38540e02f6bf2368db60fce75faab488000567d8cc1b244960b1db224e09d50c5c797a2a261e153f650b11c1d809d94174bd92ed8adbb3895764b5e264f4a23ba1212b18fff2a434c32c1b0fd32e0fe42dc014502310b23b24c40a7f627e2dd9180007fa6af45e04515f2e38514fa7989fd7a59def0a26b4dc54685ceda550f0f83fcb3157e06191", + "26c3b5c0f72357e27242a0804282b3d7ba209e16ef1086d5d80f5259b80316f11bac857bb194ca6b0a8f13b9d72ed7768fe065cdd310b5367d8a33ae0e5c4c26", + "029636f527ce2fc8d2814caa6d076de8ad14b6be2cd311d08914ea5c985cfc9467480af1de94d15a9b94e2ce3bfb24889903b2030485871d9341e62ee5beb24e3e1816e286b56088142077e862b308fe495fa5ded1e70ebca7a302c69c2f4ca26e97dcbff35b48fdc82672bd230ae0156696ff64c71c36006120b47a5ad54239380a877dba5a4759e36c061d3414fcbf" + }, + { /* i=9090 cDividendBits=2872 cDivisorBits=2607 */ + "1ea529871d4c3916d724246896c8d51504ca1f107f1147a86af704a221df38964bfb78788b2f7002bb6275e9e8ebbbc93d2b1d2d7f7775ef1a7ad3d0e370f8f9a650f72d275716cd04eab31d59001f65a9879c13ab69a7651ec1ca8a1091014cf5653c04903dc1cf27a92c523791e53ac42a9417852f51f25c9f3389a3eca9609a7bfd7aad8215ccb384efe0358dc0218d6d0809c1630108d6932dd49fb3968e8ac93cf647c7ba670233a5e51552eadd382ddb4b1c368fcf6d909aaabf37285e8f89c218f9ec6c2635e5de3a25ac26257bf7d9d6b4c4bd897921f639d38fd39348f4a4744f64f28108a5662fcf027d21e490f45128472a68a76dce221bab8d3012296168e119d0e6048abbaa910f1660fe2e941d343a2012c6b3539afc8129c76fb5d12a7d3946e422a9b5106d5c3f0ac57b97111beada44260f70e410f6934ee28574bd14086f56606a79806c31268dd22841f16e44c7f4bc49e10fc207c2b45c677574851b47", + "404656736e82becea0f99c650981fcdb343c3c67c8b130472675241a1a237d1c060bd621e0449430034a0afa39d6eba0602fef152a3e1247682f0d5b2a4fb28cb9d7a0b2db64dbb62758396a112d4b2ae064d1a377e6f23697f375c99fabacc4ca0e1387469e2090af91c1a7bfeaa13c2b6446ed4fc23c15e9b3bcd3783fbdb0ff43666e9737072778209f64a180c8cf8f7547ea77da53741d533bf3f6d2d1a0f9ab67a62ace390cab5cb9dca4c05bb3686f9800829530b41d3f7db8d034479deb5bd07e385b2251f4923d5398c8113b57e400791a69141d30cc7d9b14d9d0b9d9a881ab0566e325fa689afa7db2dca9a0b31c3a1d217d4076510007d81186227c9ef396ad6d0a5db6a03a52d302c0b62139f4aeded53d955ed4237eb3db9678168f09c983c81388355e910e1991435626173177bdc51f4e6d679598956d2b141dff019a2ebc", + "7a0e815f5244145a0b9e7874163d0d75e5eedf23fdefbd7f049bba26117c5ff42d", + "15e02b6eab6cea0852f358ee2e30baf05159759b09ff26ab5e89fea1709b9c03b9b4009bee11aa29f7db4e407b3841ce08c26b5e43c0461b376f1c519015341dbeeee337c5e1e368424e9f35547cc60f61ff668b49fbb0fd6b9c7db5520128c8fe711d242d83a2ab91a88d33aaa47a8b51e7b8dfc5c49e95108e872b5e7ec661cf631b8792c232d8f4429739469a3c3d91cf9fe414a911ecac60b4c514dca07885f0d251655b2c71294bb8e9706a7d130762f373e6bf7da81e0ea6108a2322deea15f8708a467c004b4ea8421e4011e4b1a20fb9a25dc309b58dad69930c5189b3b734eda69fba4b1af947d5484759f6c92861311e32c0a926d8d0e0848604c9a95f61876c5c1c0d3211decbaa28db5dc7a97e136675cd1f216eb307ec199d85c0fce81395d6c1a6f8a8e125e493c1e9ae936b25a7ada7924ea06eb5a016880ecac4d01bb43b" + }, + { /* i=9091 cDividendBits=1048 cDivisorBits=530 */ + "d5c8c94c0e8ab2050da50c899132e40c86840af720ff09d3f618a1c69f7dd3c72aeebe2896f4dbafb1dbb1c4c7ea55d1b0b25c5dabd47e71bf98273c1c6fbcee1e3f35bae1f3ae79f87d767e405229e588ae88cf4eddf1f83060d2a1d1353a8d8bc5895da8101e5c82f11d8e32bb5031ea075cf387abc119a073f543ec250b33b01687", + "019469a826d7e2eb6e2603778cb3c7263d7fc1d2167d53790cc1a376776ccbf22289dbcec50c832563c68588f1cebbf9fa6b554cb273d9e1707a056cd0f0b9774f4abc", + "87543c1b9f23476c76d75fa249e7d2003d5d9021461ca0c125e18835062580633eb06204aa043149bae0cc934f862be3db4851d9fba983a57af076fdab21f38fd5", + "0186c2924896b47139cae0710887741d66e1e5baf1003e251fca99d1e409415e6b376671f3f44d97f5be04b13ddf91c596032e773fe25ed8bc774bd9b4109b7783e41b" + }, + { /* i=9092 cDividendBits=3169 cDivisorBits=2945 */ + "01e5d9b28e588bff1ae6038822ce727fb88af12e3c00388cbb841720eb406cb8f86406e317be5e3510b5db14ab7745a302aa7cc89969355ba0ed932c3024c4f2da6cf1814a9b48e4fe70d35928247c7d5b8902f2f28b37e9f91310fe75bf54579d44c396ee09a26f4270241d77806412f52689bacc41ec927d38bea634ee86d39be0a4eafd08607b82ef9d3d860368234706d1317fb1beac31e32ded7e96211745de027d0e6c95f0daeeff92f9ce677482e528a57961cff9a1c210cfbf7fcfe1b6a918631741742e2bd9671dfb0493dcc89b007753f9c6b6caa4422a59d2ec2884d9189e92a158df740bcbfd4822bf716ad921d59c0f8468c5b4903b9e2eb6054da13ad52a254180f5a28cdafb744ee200cc892140663a74d6ff38cbd1bde8a389a72d5798f0fb6d161d68fe128dd0851da4bd589544cac9de503f56196ce08b07b7a394aa3a76dbeffdde1baa79d6d281f2ea47d6eb4aedfcf74e9bb9f17e840f097b8aa8c7a87e7896d5ac9d0213c466e72c9b7dafc83b3a2424265154af8bcb26ff0da6a860cf42243d3f34", + "01f20d3e0b98f2e6369f7dd7847b9f28e857661d000ed88106c12192f35f3da64669f77c09fb12b8af4e6cef691138b57b699842e2e5b3004f54c90f48e73ce3061ac98c0ac272da3027ec56543f6cad21e49dac9b284568552cc584bd8f7613c86149621bb6cd0736be318e8ea1c19f93aea8cca82bc69ed77139d91e53a3063196419df96b25f6bd55d8adc4a43f67d005ad1726397db9da453e705662c722937e897b672a2536abdeba1b135da7ff39b68223fa3997c0367e5c478cfa78d52bc1b753b9b3098fa71a1c12d97e25dbabe2366b4ddc98e94cac9aa16f3a003a9929c35d27e93c5b465e1316b0001f0d69298518f6381cd8aacb18ead52c2e33364a05f1b0aa1f3f75f0d872b1e1f4c693ae811d82c5d1b6e04b46e97488a192b54cf7c554d5b6fa9b025d57ee1a588a50a25eeb7e2ca7b5ebc776363fc6e188f353fefab9e78ec695958fe074a5635e00ccfcdbdacb83fe6a53ebbdb85c873de1a9d6b068bef0d9ae23ff79c3dfce1d0e", + "f9ba7d342e731e9e7b01c5ba488f376c95339d86b4606d14eed7c53e", + "2711aacfcde2b10ed4b07ddd6c89324a849f039203beb8991ba0b968305872ac8453123b8cfa69046b982acee7a63e004e6d4dca4b8fc14227071707406e40e92b655b6d6fc99571453627070c49b55d506784d843fda41a63a8ff8e8e982243d5def795b1395369225a174a2877562ddf515a6b14f8a24d5ad7e64cc8e9cad7c1ffb983258a2fee2f73cf9753e34b2565a213c7536d1e3ecb36ab0d58e57a47d0d49945a304445bf363c586059eaaf87574de46471ef40fd747c274f3e7cb3f11e72ad2d4fd8b72aaacea6df6c01963d403118ee374ff3a0298784ef628b2dca8f934f51bc7ef9d526c5a35355643b4b5f7be43f93289e42eb04073ec8fd1d107a493511de17bb67d5640fbb24206839568d878ce16dc9868e34d33c656f602bcf62359c3a6c1f83809ddb3f2dae7018f1e710532aeb7b5df4ee8a2e40dc8632d9d9edbaca4ce68b3f037bf8ba76414e9953e2785a00a91cc04b910cb40049c42a2fad36352065dfe81c662e9346fd0" + }, + { /* i=9093 cDividendBits=2985 cDivisorBits=2420 */ + "cb21cd8014612623e2f28da79aac98c7650244eece1fe3bebcf3cd5893346cbe9f4462b31f912c08166ae93ca7104c9eef68202691dbcdce6d07593e023898372417eeb635d5b56d2155e94051acf021bd028cf4c267d2ed4bcff2c27d137b9ad22952c8d3a71ada11241eb148cadc52db6ff01cea44666a4309743ceec4733d7472244d40e4f2322fbd07b2a65eee0197ee8e7054d22a2e39d0a850afdea5ad9acbbc8fafcb44c8b113c06a75cf36070bc9734c98572666992255fc785d4ab4583ab99d85c4838c757299daa369f01b931203a8a510c65fd5c1451bdb321b34ae42530a76246a3f9fa5570ef71c20c896558d40c81b07ca3070c6074c60d5237a22fc164e1afbd696729379c2f0020be10e9444a3bc2798cb345052564ce4050ab5f3c581712d7a839638a54f4ad8fe579dbd4d362143f37d5453523fc95fded5d370b6c1d303465ab92627d1f94d27b1ebbafb9060c82dbe39c2a3b203e1716822ab0a6e48ffc5e0bc8e791c9200044e5b58a094", + "0272b5f4e3080ddc69eabf1a46a908c21a58c3cd1205a9798c64f351b76ec1d50f6154f97a2e252d262cb462c3577118b012fa769c683a57523559ad2dbf04a081bce4876edf47995b139b4cff33595c746c024e37dcf2bc5a23685e65949dcd109428ff937c4148927020afaed01c73dba88dc0e0fa9b1a4bae754e890c73d81004af2eb9e1fed85cbe6b2b262eed6352fc8a8546350cb4dab2efcd8a90899556bf601189b5bb26d5fef4067b436cff90f9eb4b49ab728620bc1c0d84b5690cb2897e03a2d9c263f674d0674f1afb5965d68425e53a80436b11641be95c444806cd2a0f7e700b300095cd485efa6fd7dda36cc89c374c01cef283dc1357b0666ae1ce5c8421e9e9fbe493f8bfe91312ec5ad875ba1ac71158e8e04b9d71d7fadcd3b1015e6a0495129aa9d85ff008", + "52f9cb74c711be7f18a34f0f11e9d32edad15decac69cf3786690caf5150ed7a6056e4568ea1d9bcc2ef02d63097d683bcf1df41df84df095a2f66d160fd77951ba33e9a28d679", + "816f93882067bdc9361e8094b9b5f9ed6f49b647e9e288a2665a782fbf10841aebbc3850d31a7833b5476a59bb7459d6b4c4dead648fdf078c6fed5899f166e3a60e43ca03a1983a366a02af6dc7e2dadfee4a09d2361ac280f16e6cc5d7cdd985a9aade5885bff22599d6decf3e7b683023b7621ffa4867b891ea18eff7087b0db3792eb5dae2e0788524585bb4f23c0147eaf9e61eb642d18163b49672b958eb5a42e18c88d81f7328d3ca5e9033c0ceebf1a9f5e26eefc18cc268b94529622bbb063cc80f727aa6abf1ba4d391f37b8a04a6b54051ac27ec38e34ebdc7ed532c552adc7b716ed7fc6b58ffacd1ff4eb01001b28cd94f8ffb429a4b81ce67ffeb5738e911f2f0448591716ce841d6a44fdd57be82f61b36ecab02d37276d9e469dca444defc24e2fd492197ccc" + }, + { /* i=9094 cDividendBits=2398 cDivisorBits=1290 */ + "17fc8c8e96d3de56a8375f61a8a945c3c5aaafb9a4a38983e36b7cdc56b6573f54c03119440eb7b6b7800cee522c6ee46eb1d7fcd5d4c405d8e5245e1cbc4b20bd714cd4575e520c905e3aacaf55c47927ecd16b0cfd1899a53399159e1262405c94ebdd354ba443eb6251b1a60c1500e19a831d071b6d311631141d02b40280c49e3527a911001d6518eb02e0ba379d94ce6d54ecc5c676be77385f929f2ee7a3a37957e7f877cbd6c47b77046e6b2502ee699ac1dfd6a9b726522fec6c0f5f5106c90e65ca3e17dc45063c4d9bf593c58b552f750b59582be79983746174d89f960acceee98c372a41b4f582eca3e06be2f2560d0ce9923f79d6d859c43e91910f526197394ee12fc6afcf9e3a968a1d585aee8c5e1610f65dcad44e07e3614aaa55ea2622806937af8026", + "2085fa24d2b4c61808678bb4013a0968a9483e8d54973375acb640ffa80b3e1e1adeb0feb4d257a6a493747f089a342008e011e050b94cec7e63416ea6529db96f3c5bbfbfa3696532c09a6425662e55bf0eda7e2ec30173d820c77f54ab0261dd8fceab49553fe9e170ad52fde0f244535d2832b6043d89e7dc907d3585d43a2a4022d27d82a51f8227e3903fe3b7a443bed7355f587c913bb17eca773145279e", + "bccde8c35d5505dc6c7ea3299e84969e6f3dfddd522ed9c0019666a57cde8d594c3800c7374fda9d56493148d296e8447b417144dcd57fffe7bfa16fb887aac08378814ca2b488a7cb12eab041cd38fb4d476414034a33733ac983b772ce5a46a2663e9b517ba1c5a9d2590b8b03ec6762281619159d20b673d4d750aad8080a8044b1fd1d1d4b06ca9712", + "02ea0b04aa01bb53e1220280c002a0095c7a74c6cb07b716f632d54b2bb5892132d6a968d2804efbf8a62372326b8a87988a7229d0860f7912fb5c905b61670e2bccfaafe93d9ff2b4c5be4f2d52925a574f083071cb37f593f897e50ba19844cce0b9b43bce61baebfb7bf66815d807bdd7c7e452a27c705454908582ccace41fe16b83f1c372006e9f938a8ba699c5d14182e62d165dc8806cf1f52effc8850a" + }, + { /* i=9095 cDividendBits=912 cDivisorBits=835 */ + "ee794a9266f0e8bc1e48b7f173b8f7bf9d83dca1bdda161eacda239eb5fdae19cbd6311d59622d4fe10c22a32be9563c57ed26dc15c8defa74173cf86925cbb96daba6cb604510015e2261906a10797aae0b58f92cd20dc708d326611aaaf0d5bcafde31719efb2c5d43352f76d38b6b222e", + "03f5d7b1b1dbed475bf8b513daa61f357c8103f710ee105f2e82f4efdff47ec057bf732c4af5534ee630b0a55c594d662fa327018dcd457d5f5ceaa3fda1dd00006833d57baaae1ccd9dcb108b4d86058b223de91395aa36afd160675732354ecb37089f664f33daa3", + "3c373b7c710f58a8ea00", + "028d5f7f161edd14f465a79799cafe74c404505d0c6f2fb4721cc2415ae990d428bf7e5373c015984f5b58dc9a16f305177510ff56bed4a184b479e6628b4084c4b437a1ebad56ae5eac45a3d84ac21fab619263a0c680c7b4a4054800b3d08b068d9e62b1a29a242e" + }, + { /* i=9096 cDividendBits=3061 cDivisorBits=1637 */ + "11d632bfc5ae293a8c29b7443ce0ab06b29159ee454409e7eccea5a60a06a8859b313e9adff1c22c3654ab4443435e1e7f3119c50228ef6753423c91341bcb58c12467133e6e788aaaaa6913d42678195fad2bb2959ff9c87715deedf5bd2a37c12c486cad03670a6c510c4a4dc543fdc25d4dea90aa343004cc98cfd910c66620049469025594eae74502f1cc6de924574ff0e8438d04e8bba39cc81b65c540d31291892d3c966675702edd8c52ded769eb21427af4f6b5ac4abbf6b3aeb0d100cc912257d110a095a9e09b116af0985b7ad7390c0f85fbd8e6b6049d24c8a5f0bc6dc1b029c024660ef819ab03bce71e7b4c860b6b5a2d3f2503dc14de15333d115e44b6955641f394dcaf341e4047f52b15d6fcc134f7554f5a99881d9af36d487bc8ff316d7bf90594f261fcc5503411daa8675f7e7be4d177a9a6295d96535c347a5f35a3c5df3c25ff1dce41d195b6cd6a1d54b1df259c3324f0f55b451d6a5deb06bae7fa75e122c87f8c9dbe63e8253b4f3f0d4ab0f5d905b9b488", + "0185d8b03b49e621f0a128b5f890aa6319ffbc8c5b1d31a01cbd6b779869615757c0fb4ab6858d03b901af40a9f786b09027be19eeb093b659c994b92293641fb8112ca6ce83eb99f83a57f4496836318434de0e39cfabb9771f459ed4d92b8e271a38726b81ab5f9a9523c7a5f03b950e3fd84a537cb0b81c04b2d2693cc0ae0e5a916ef6bee3bd9a6b403265043e9d91cc2dae222aef5311be15a74409f051a1d9afae06585e5fe510f2d09878df4a33ba2e296ecf0dbac30260ab3a3837632c00e5d472ae686697b7fd506c", + "0bb67ae105337460882a6c39b2ae1c7259ed38996ed03449c0c850a351d98637d9916e549e53fc928092d0f5392049324adbf3380b80b095667d138b5c79c5e5eff4edbd4475760daede184578702003aeb2b775c8d625f17e3ba48f4e690baf82d8264b6583495323323f6313a8b3098393cca192c8569e011d3e3dcaffa46b06c1210b8208f0a7d7dee4174f437ae3ec2057a92ea0d86f7fe8612a069775124a07df6204aa7b954e9ec246d277c04c634bd4", + "0147a2943dd617be639dc8b4165b01b73bff3fcad1726dca48b35fc9b51044f488712e10dc544107d82850f529ba5d1a2d31184eb88c49638bf61cd462a4657a8591c9347000fb433a076db51bcec7e3f0842c5422e2fbde2ef0acada3dd2410b41fa386a4c7eab55fc5ad9c68c68d9fe3322d698af10e1c0272598dbc425ecd023ce9278559ce77637c0ff6d67b246ed0ac98d505c0698dd7bcb94b96e525d1ccf737c3532bf547fca8c5b48f895d3b7841e03b332c937a8cd82e850f05bdcf4dd65a02354febad77479f7718" + }, + { /* i=9097 cDividendBits=801 cDivisorBits=193 */ + "01839bdf15ab62675b7d4aedfd277083ac3b935ee340ca391e528884e6e68cf4ad8ff59516b80c7d5aede4ecd04776e34abd9e32b587e326ba39a65d1e880e7eb5092453bf79bf15cae2ec477b97b332b001a29fb16087e11763ab458c677a3bd87ed556bc", + "b0a70b1a76759ab3a2421d5240b6abb02b512d06ab86162d", + "0231b652989143cc6f5bc71e792c06518e80553939547c0086097210b26d4d0bf7445d3698dee93ecfeeb0c647bec95b0ca0a4d1e653125cbf95c351d6da2b725a130ddb9d32ea76b7abd00eef", + "754b66c3b439e05ddcfe35aa9acc9a5b02084f4ff3e02cb9" + }, + { /* i=9098 cDividendBits=760 cDivisorBits=590 */ + "1ebb5d714b0045ca2e5e65c1f90669ef3c4c1313cbc41e5e3759594c77268dd49936a1c3943da7e777de8e5afe3781e67ebc3de95cb8c48c008d70524ad498a87fb2d760124e80f7e30a6ea48d23f9bcca00fe25d19cf1fa8c101bd46ac55b", + "09c7fa6ec0328c339ab535f675efe47611b22cfcb0f3967596df4de16b6723903d6593d023c70721f4485207e1cb7fc39022923320f589885e07dd3bfbdd750bf769513cca6557ed8774", + "032456966ced6fe0f122fa7030d59d8e1a70ebb413f6", + "02f0eb3c552c40072a596b9f8796e96d79078fd1877353b0ac8157407002f8f29e45b32c2b5a029a1786506bbb94051e7648bc628c0de64a932b7265f362c6436391321e2417fb8cffe3" + }, + { /* i=9099 cDividendBits=2987 cDivisorBits=83 */ + "e36bfe9010c9b7779743c451a80d5943cc64e5c25ddefcff8456e9ab93f58e1057d77ed75608eb84bae81a5443ac23380c940543cc472f165361bd99b7f6fd40be6a2ddb5cb2a58ed9f0e98948d3c040990fb4d37edbeb01dcb1301cfd920e201f369c57d97ef25e68d0616105a73aff8e0c2bf7c2e8d8366e1cdb7c89cf0fafcd785dfb323abdb217b053b223332eefe6cfba38e3b883e480667aff01b008cd631d3b8959104e19f150d9b2d16be5a340e60feb020e88e184727c1f8ae95def1d266ca237bbaba2ba942359e29ad77f3c1c2e46224ff16d890910783207dffa5da45da9ae464ab56856509b54f6e4bc1c24f329929987edc4517930be58217463431e838de5eb43e6dfd9133538abba58460956db557d4a4abc7e4edd1c03e88a7b07a75b7daab03068f007c6720c8ecafe5b7ece6bccb42af48d3fd55cc8594eac80f84a3a75e30d3c5db28d16575a743678500293b6c0527e7fb2c41ae369465f559f62d4c0623060454742b6ceded3218704b5", + "019a9a62d48a8a8f499372", + "8dca9ad054b8178faca0c8454909ed87abc24f6ecad878bc2056ad4b008ecbb731354338d678dd4888857af6f3aee53e01196820f3f4fa0145613dbee6c7b176ae10e2e1807f4ac3d39f33b09e003ab3fd58eff742ab2d73f5b582711014a4e8fe0a23a20d045af31c5086d499e338c8c2d18bef4f551c3a6b39036691921ac964e1aae977a88fb2fac682ecd7bfbd8dfb6687d6382d83b943aae9a3b2ff9f6ce43f6e9cb7e98f66e8ece2ea06894046d852f994152bfef74be7a8dc5687fd52cd91a71554c79d96badfd3627f59052a2573dd369b436840d836f47075ebb2cf9e643d8c8b37e7908709c6479f7149698118391bbc6bd5bd83970812fa5e0529825417c00d2bc257df05a572aa285ca98425dd6be6ce36957d51da8b0e5becc83576a9554d3bf136eed234ef3c5bc68f24610fbaf79198c7d34336cb70adf2bed17062c609f652ecece3bec35bd12cd3f96d569031f6c001b096d76cdccad62d9b53cd6243d589bfb81462", + "4bf3313c5eb07fe7ab11" + }, + { /* i=9100 cDividendBits=357 cDivisorBits=49 */ + "1783ea0f8f22e0493cf8942c9077a5fba832fce1b30b0ce9f8b634d3304c2cb1f360f5c2934a381178f5c9778c", + "c56660acdf4f", + "1e7efc09002715edf7e46062a40173e766fdf48cfb56b738474e9b685f0ac057c8308a668907f4", + "512d1ba27740" + }, + { /* i=9101 cDividendBits=117 cDivisorBits=94 */ + "15bb6d70be8f3a6f1bbfa370be7a84", + "1760f849881b6e7ae5c7fc3e", + "edf811", + "16b3d5188a7ba0bbecb4aa66" + }, + { /* i=9102 cDividendBits=3152 cDivisorBits=266 */ + "9d8d8b7ffbacba980cf8272374dcd5199035f981e3c76dcb713567f92631f6426138a4987ba7bf9a28357e268ee6c5dcbedee7d17a52eacb4e31ea6cade166d3272b76f47a5dd83cccda35fcb22adae557d7eda9044e1368641da66dfc68b0d53d5d383d7e01492a6607d3295491baabfd7e3522a2cd9b881409c97b8ee735e0e27f4698c853b964af4ff1fa34117cdce5695c2d8fd3d5d0f52afa3f0accdeb0970ed2dde98c15c3fbe8f35d8dea1e361d3d25bed98c3dfe8c05a3b946c3176496b08893c094cf05907c546e1a589828743880d7c41a7208ed87da613f70d87fe61d71c3052dbcdff75accf02faea69716459bbb8f5f65b92e3642b21910e248b91c091f2f5001f7ea7e54d67c30fde52df8cb751da8329e6090b89648f1be95dcc97ab81910ff42de127b0c348846f58c0668c1e43e43d38f611f98f8e2b7b8914177a264a719de42da19635501e04034c30d83afb19bde170a98b380b3d89414c40ae3ffcf11943beb9a25e63c50b9f7beb33ad22f187b6b97d49408114b6a2e7c35ece4aed143caa5", + "035d1bd471259640e6aaeab074502243bee47a5adaccc4c510393a7ae25b4b5ca2d9", + "2ed6ce56b5f4241326c25ff879fae937f0a05471ef0cde450342e9edf52e31f702860220e6a98f598b162a1250a2b99423d03c91e3fca5d137289f257e75b7be840bb730e378c0bee6c838ee548d0ec96f20c96555702324dfb2f95d011bc1ea1258adbfbf68d4c5b8935afbed8ac2922f83bfe8b6cf4e33d7944e928a12bcf8d08a820c3e327671d02ff6fadab723b512e435e34d96a4f53353bb08dd9a49ebc398dc7a9682a8fa7d7a60ecf1e1b3ff71b83bf60a5bdc7307bd6487ee8b2fbc5092ac889abb9577d955ffe9e5d71016ff8c2fbf464e10e072d36366834574a09300f7005bf125c3ed51abbe0369eff947100c37cc3065eacaa47ae03745b1e1fa980b063ec6985f0cf0814ac990788a07440d8c7bd5e4df848a71146e5a3dce1025cf5ba68c04649f7388ee91177cc9a74af478f582c223afbe50266926cf9b3e0840f19ca5ece82370e7f243a9bd70dc4d11c43b06043d4235f23c7f98af11e0ccc237f13d90b6d4", + "01c43a59635f75fd257231e150cee521924d54c785647bcc587a2949254e3db6a8f1" + }, + { /* i=9103 cDividendBits=3160 cDivisorBits=2847 */ + "0a28e22f8b0ff92a0e16c650e1c11a362ec4c294e4b8c3381037a7c233d1c366afd35d14526c46539a53eed626a5b88f7aa3853bb65c080ed4297e520c27d0243c3f447b0d03550192396204bf92ca30029e9c3cdb7dc2a1f4ad62f3c350cbfe0358eea2717ec110265739883c1483f3549ba6fc9203f3384ace2bf18c04e8cb5c8701e813f78008192d7151f9e635d9e1a219e86c4e0728f242e99d33c20295beb65fc37dab3a414f5697e9faaf84dd56f76e3d103adb0a589f9a37fa57233ea1f3daaca7490344afaed74f2c255cf8a7e1656cf72e2f995ab896c37346391d8941fe1d3f9f63d813dbf7c817d9fafe15bf1c01e77f4d9ab20306873bc780c25dd7d51cb8d1803b4d743f0851251c0771effe59de361e2a537fe7fd822486aa98a3e6dfb82ca189b3d88bfb3adc4d32d6886fe418cd34f9fa7653f60ed91ae092bb858ed28eb3aca26f0292ba789d726f50c8c7378e645fcda7a4cd4cde604b2c0738e3c492b97c98ca9f22282635c66ec4c2623194d7c8bf1b4c71a75aea55221653b0e89975680ae097", + "0fd857f431bc013a7d54402e6082a5c50adbc5bb1877f05f061ff0e731cfc9928a5e2fdc4aec8472f2598f89e5ce346e8aeae13fcbc5bb48024848468f2f16b1cf0600a912c134488cb1c7daa88c41eac507c6ad0084e90306f0452b39d73af0a066d42d9520397e79660e4fbfcce539aaad68c5d536beb8eefc3453679a4111a03432f36865a42a647b99a4bbca0834552e0b86cb8c6bb534118bc3836dd4648f951891763aaf24ea69718f7b5e0d38c6478962f81ca3767a8fcea50073534f4ac87a2c36076826b84222b33493a2192c5242a152c4cd1db3158d1e99c50658eeaf72a04fff46cb0ab16124387afffa791b0016142d086b82c96568d8ed09ff5448cca69f8c8cd406c0ae42ec89dbf97cd1a465b232d84993224670fb5f6a679cebd1ebdfd8fd210d676ce462f3cb1896e5cab6a398fed9092fc825f171583ae699aeb9ee29563139f3746bece6fcbf7ec37e8368880a3d076369eb984b000fe0e98479", + "a424f9152973a5c87a99f197408ecb1def1e30d8249775bc208e8778fee6dbc7770c7630662f5d", + "0b46de1845dbd80cfb2453c508cace988c849179e8832ffc8216d70d0715f4a233e4f1ba95bf1c0a84898b71615a74bde2fef6ccb4e4a042c472d92ca3513ce7a5a131063db17c7e7648b53db498d55bd7092877de392d4cd10a965b6a9697a738139bd6a90fe6bfa41babb29bd644ca706d3e0551e74e9c55b638f1f125769fbe525589eaa181fb2ce1df6e54c750012c6cd774093ceb618f3f3e401cd923214a2a7e525a084942bde08b88644118feb68dfef09a5fb35f912a4ab38b5152db0f86d998e3cdf64916a768be5aaeb2103105e04439d7ee20beeca44936eee13ac790cab6420a52e55d03822c3c01f16cc9cfb342bf1d75200f4110473048352650da22db07a766cad576e9424f5da2b47c383cd5b9afee0bc168181754b1f4f356af8c9cd1c843f113cba376557fd5cd1cff3cd7ac928ea627f28420495e1c934818935ab82ed0f4e2c01933e0c7623c0946ac80ced0fa059284bafc570f87be5bad89a2" + }, + { /* i=9104 cDividendBits=1357 cDivisorBits=287 */ + "0fe8d1043143b9f47a8804ee1ddebab51f30ba3a20af796b532dff8b58906a0094d92b1655bf0e024a4d0d20ba37c18ae97376e478f64cd659ed29b76e539030a761af097635c732b847a843aa02f104d55856753006742e78dddc9914a6ba80c8f692da997b66ad04739977f1fe511413a848c751f2fa61ccb327e8bb96cc8047348eec89193b40a7c6c6a233f003a4480f873b4470f14638d28a543d0055397e85c34f1eb65545907a", + "2e30edf5597620f297ea418f4d62342c9038f7641e41f6ff0fd84e3366b8039b201d43c3", + "582c5212301d179ada38a59f13c5c984df048617138de622b2025b72674cdb914a159d77e7e55806ed921366761c5b19c433ad6913e71f1502673662c230218b70eec20de9a395e41945d019696e51e6608131c8a48033b40e9119467ce2c5521ebc2eee41936b8cca591ba6d1c0ba8f30fcfc335307ed515fbbbf0af12e585bdf2f895c5004", + "02085788b8b2e86f3cb7287c658bb9cf22341a2489daafaaaa30cd5ed5a814abfa8f916e" + }, + { /* i=9105 cDividendBits=215 cDivisorBits=209 */ + "579bff095a1d9aa5d86e562104354ee92ae7b5acde075156704a3c", + "013ee653a3ff04e4776fc026a459250e51d66af3ae0308b8659d53", + "46", + "69042a8262442d2fdfcb9013d52cfeca46770b4932eeeaa7458a" + }, + { /* i=9106 cDividendBits=1590 cDivisorBits=1304 */ + "09475f12f195344f25ee3bd180fca7db7662ff83d7dc46c3d9de5881da6779620b86a851cae0aa9761b4bc405f43a90c6c84537fb5399c1a62667f4f59155517cdad928b8549ef0c8ac0b3d7261114d69d11410839ee3bdb88202bc5ffdea2d192a89c91ee05d8e3406eaecf18c8b8f9e78e1e925b1b39749ff01fa6ad5087e049d469eb208d3fba01b2cb70fa1780f5e7de9aea6c299310c86785b55eb587c62365d2145bd98fef50903c61d12f754b8bb8d6f2c58760ecc92ed09a268c3cc68292b85165a857", + "43cc82fd55b44be9ebafbd9d6774b2e8fb5ed8c62e51018b9a71a0bd538c7ccf80a7aff67ac1a318a481611f8a5901ea65c44eecf5f948c8767d411e14d717f28964cc6eed99003725abfeae92834a454f00f98c5e2e094841eb4ffee4549fc49bcd18c4feaeef621517eae191c36a70fbb074f33d90c3fe28322e6062c4449d69cafdb457a83b6f61c8a9e918f81016a699f3dd149f8d1c234ccc41456eff42cace18", + "23091a5696dae9a365455eac0ff6413bba9b7a71392a88ffc55c905c6a5e54b672cf99e6", + "1e92817aba92af0dcd03b4226737e92260da5ed9bf5bf1f027285f2647f96da1b2491a9673a4f97b50974375c01c1b63db7a04cb952476f8cae28b430446f31fa4dfd1589fe715bd551afac46fd172f5a4153eb994b2435e5eadbcacd89728ab689f3b51324e50b44d8dbb0b91f8f91a30dd8891f4074476b9e8129bd69d3e3438af7d56ef8a85e363ada32f6e5ae5f14cc31f7ffd1cb3eab50b53920693a3c49c26c7" + }, + { /* i=9107 cDividendBits=3703 cDivisorBits=1222 */ + "04c3077fcb395ec6932baedb9b2897c1bab2bd0ed919a865c5776f1a193328fad6f74bca87149bf038e4446adb2a4c9d4eb3bac9e23cf13baacd85e683e2b2101f980f1fef494d54c76e2fe0dd0f88d2a448df416b9d5e1f0fa7298a08db8971d0a49592351811a57603949555b22d31955f453410a660a761b5c60889c2c542cfad81108656a013b8a7730d88abf8095d76679eb1d1ffcbabf820695d68a0a22eaa8940bbbd3138c7c021f0b62a4dbfe273fabdef2c0ee3217d272a3a3f449c187dc0ecd88758540facfe40c7d8208dbfbea52192f4e566d2e0c934eeada1290b3a5ed8533cb22eddd6251eaad2cb48390dc6b5a64cae3b346ca7ed14e072a902f64f95d3939b1fb4e9e2098a6bc6d525c261331ee51b232530c8e0d9c0dc63ef180e7766a62d6698f2ae1b5be22c52d5a97b74f4191efd88314af4d0b94b47597e2620aa933fc04567029a3988f7c730324705bac18277491a4680ac69eda335792fb224f75ab24aa40df8f42edfccb9ea034847d0d48df08a17a23b2d7b6e0a95b84962442ef3d32cfd997b5ff3a57b7c32a3f6e92183e852ba5aae2af747264a3064a2eb406ee640c6caf9b98b878e0db88e615f7ca71c2d28e42987a88d5cdee6842671cab0ede9a4598ba710", + "17f698717fbd7405cbe395ad8fe73ea04d9eadeb50cf4d6ae6cace31897a351222f304d0cc1057140bfa4e94a8cf55ea9821618c37d4b08d6de8621c2eb2c0c1e19f3a3c8fdfba3cda0de795ea9671948bde24f9ca125a4031a8e4982674f33df785a295f7bf4d759facd97d7ef693062b5a4d2de4a9fb3221f8fa411fdfd92ddaa350d24b2cec7a09316397cbe7f9370a2c2f389f38fb02de", + "32dee9c02c664a963f0923559bbea4ce931c0d5e4af467da424cb5699f451e4dbddb522567c3c4e44c33966b42ba1405d3dfa2b6e966aa147202ec9a72341ea214f5779cf3c5b8cd0ed516526731ccf6b8c47be88404b95110eac05de85d8d4ba2d3faafd1d078f0996a41258555e7c596b4eeacf765019efcbdece0eef17d99a5bd97a33928a81ab446b3bf72e95cc9dc0c10a29edeab96946548d2d2f44fd3481cdfcc96abc5403a3a5aaf592701d9b43cda5d10ad8ed1cb37aff5cd303c4036be458a89a3b7a49b15d6b7087d5f1d12db20194d5850528f97fd758b8c116a1e20e4f9211d8f6a0028e77f62331b9a0a51860fc83dcee1d9a2962848a83846b9bf0750b8556a14b8965210f4fb290744ca2ca9f6b33a7c49b69ddfe9296abef043e197bb027cb9f2dd602cdd829ac9039087823501", + "0295ad533adf1f708156780f6d0d32de5c5fdbff03ec00be88365657b6476983382fe01edb04884dce7da8933f01ba988d40e2b1aaf4fab9c513ed486527428f7e8104dc4388cd10385f0cb7c4ad6b91e52481d2f99fc5902bb808b2f40483940b2b341b8f5300267f5d24e1e5a14cc5f251aa83677c621823c5cc8bd814cc8776d68f9bf07e795814aad93335aeb339fe3b96355ea23cae32" + }, + { /* i=9108 cDividendBits=3989 cDivisorBits=2439 */ + "185ad6478e0635fc045954eefa9fcbd191ac7eaa2f4beb9803baa221d0ef4a1b3182dc0ca52f81208cde93caa024636f5b6442a62efbe59daf6b0dde1b46a9fc997dfca0f0537231ef3a344a82948fb0c8c6fa6e1f461b6e5578b55f0f56aef36203cbc32d4b738c6a2f95bd533e9f74f2bd8359cc75f3b6f3ec1904a5f5581d869d998585327c4648876e4364d880ef83342041d93f6f2688f651d8b8f7c7f8e51a36256ec1c6a826a81e9182577d6383af609063b2b884b0a31429f20204e748affe93926b8e64e317514ac0fee3ca5722c22e8ca86a7185e007f62e0e10e33fa72fc1b09431b25597d5979252c64440624ccb70e8a0649ba8e5b70e15a1982ffe73a228d93cbc5d6f4ba085eba101a582b971fccb0a063b0bba2bb7397abe71debe640ca989ab16b1a4031531b88ee11d360c80857c6d847ee7c65d4611788bd7ccff54f52766b7f1c45b0240ba94d7ebf43203d142e7ec8dbfcc46ce7bc11387076aa479bce9167b2099f7e02098275ce6d73a549707e9d88e3c5de67c4781a70fc072b483ea9512bfc71d08ec680aca4eba64d0f39eabf967ef49efe59c0677c0dec9cee55f37727d433ad5efa347dbd0e61aa6bd1a593590b73b84a6543c83910220beff87fdd56f0ed1a56bd8fd385ff9f8d6d062366c8bbff5e93e274ae89c281f5903bd736e063ae30ddb59e8778a", + "2c8fc7f306a2f7b5c0ab986320077e6310be3bb06b64b16b3b3132fbb12bc18645684164c71564de20574528e7ee98ee53c090cb86adddb9d81088015df4f8998f276ea14ece1b82984aebfb1b816ef58f5fba68f7deadc892239894d26ff1052e12c46f5afff9a09855c9837d2f203b59be36c93f617997435cb616af79e714b400fd6297b22ae83567ee8f01b812cb37078ec12a523ba23a2b16b9f71da67cc64f9320fec3f2fec6b1a193091a8920e30530274ca2eac33d0092c4f3aba42a4122173c3aeae9d888bb9d6d7908e0083ff473905e5c2796fa98b95d184345fdeaae3c687a646517a80ad330331785a37ef41fe26561f9424bf455ce960b05919e0415a011ad9f784b36db23abd204104cda2c7dad414b88aae3e9ce0468ea5bf656c36aecf4dd0f4ee4c85b1f914c0de5", + "8bea355c4be7e2e15f8449133710e57ab2680bd56bf39aac54441aa00e6dac8d5fdc3d321333b940cc2f2bffbf8e29c52bcf6dd7c6e288fe904b619ec345e3292fd0a622cf3bae5c5ce788d2976faad5b56b70b6cb6147469a1e8c87305ee2487247c54396a775b5dfa32d57cac54fbe0ee69cfcc18340936d6fcf505a17781167718357ec8ea78c92a18b77eedb4fdd3866be39084b6eed61eea9f25dd96b41833e0870c9c17473126735374e7c8483f03fd312b99ea0f0ec55a6f5b2185566d6f1", + "2452b2cd77ad54fa75be3bae8ff439ce3624907f50351e838228ab32f650e409a40a12f096398cb0539739c9a91f69b50c31959fa7c0d4cfdfca7ae78b1bd141be58748719d535a9b7cf89d4f705c20e1d886d63a13930710f1d2c27efdaefe8c51f06251cee592df81f809a69bc8e09199e699f000e5d975fd4eeef61bc7b38b079d2a37cfb8c84ecbeb254b76ffd307e2daa12c5acd71f476bbc36ef54058d557b777dd83e41194f95600e1bc00adb0f9337d72bbbd298fb9f7d19a9470efc854a9396c477794d6f125d691bbe7ff763ef0155910dca5decd6b6197d7172ac7ba1d705735563b28231b18bb398e78c6f7b1e4891c1968a5d369a0803f07118faf7af05bf09b1cec5666cba6ed6d047b5eb4f4518295770cf64c89045a2bce8532fd1500931d4cd9a4953354b6b73f4f5" + }, + { /* i=9109 cDividendBits=610 cDivisorBits=582 */ + "0176471497a50bbc67a6ec55f008b235002ff6f21da97c4c81b052ac221c720cd26b69ce9cd1e937a9a42c2a842a8a541d75b15676432635f5bc8676241c6697e9699f65803e470857b87e039c", + "1f60993a5c26a0cf36f8285f69cb68bf8b4edd8071b35139f845cdcf772365e2fbe38bea30f87d5e2c333bfc34c82fb3c8cbb0ba5189cc2077a9dff5ba7838066e4cf95694c98bc3db", + "0beda3b9", + "0c492f377026391dbb1e1614d42ef34ba5d6aa957a0cde3bd26fcd1e1c0149b91b61ac5cf2297df5953124159f5a1a660b8b654eecfc41ea9b3f4c95782b9e8b3a4f8f22af5a0a0959" + }, + { /* i=9110 cDividendBits=1619 cDivisorBits=1289 */ + "04c3f9644105c9a81660a1170c549334c77c3fb1b149794e2967b8fdac89f4b9dd16c3c69e17286ccde39d6a129135d954cab890ebf9f7f82db851f088e3ecacb6ac4dfd3e87721efe4432637b65924cc90a307292f7bfa14318392540b6a44b4419e54f3f7a61455b3ee96c9987f6bafd4a4efd7aef2176edfe1636c444991c55f87af6d3611a2b7dc6369026bcdd23303da7a908a14b42fe6646a8a8d3d583979cf75f82d41135a833f5b669052471ced1428a4044be98c12f289eca6250a2d96b24fca2be5cca65fc33", + "8e116a6f6faf6bfda12764e631fe648d7f28b394f4c52cc51f51ebda5273b8bdb2c8bece16a000dcaa3d2ebeca2be856acff5ebd292f63ca87c06e344ae00c8984fbdea62dbd2faccb2be02af3ed5701aead08d06c149f0c4764e0c0b511d3f5269bfb2f376ce073b1a0696dcf5afac04b3b001abc23cdde9d93590be4bfba7a26064e45547549b0de6b38186d330b5d41ea625952e5260d38227b638454b59263", + "0896563e44f34f9e64c83caac2cc689b74de19e73837cda85af070775cd39c329061e3148276eff4eb37", + "7c5695ed066a6c94f452f87f3c227901bcfd7f67183474369dc2490ca740df4bf9d18c92b7ac0e5c31f18ee4ba7909a1548aa32fcb3a1c910d30cc09d957088e459a70f21384ccbc38f377c6248cd59799965807ce60697c97ecbf13e538bdda1b68cb3d6cd63ecd8b73ab0ee3a986cb731cdb6f6c1263d5ff32b5b3c51154f99799a44d89c298bcfac0212065c82d9142b907e538a681246771cbe2cff6a6a7ee" + }, + { /* i=9111 cDividendBits=2547 cDivisorBits=1436 */ + "03483f47e00f0516df106a494fb1b7bd14eb587e51aa689dad6477ccb67e90b690d0aca9303e9db392aef50ae91d53f2b1bf6d6d1a562ab402ca81f8179ae532eb0d84619d277de6177f46ebeddea0488ad59092f4b006bc74781be850a6ccd38d50a47d4d2c05356696134c40345a1b636c10b5a7ca422088045e163ab82a75db9363ea673545f5e17ac2872fd1618fe7d81a538994d875a4d8a9eb45a695427237ba4839e99ace7d6384856dca0db75488c68a80da5dbf6054914c930e17097c4a9a59d4d362d89518b7732db60f584fc08b2073371a4aed87ad3e827cb42cc85f36316946f2f808bc40bb0f51fbe403fe35cef674563e8b04bd59484f1aa6b1b0d72b80d3ddfa92d39b28e7db7ccabf530407279868e7c9ffc9c137189047f64a3d3c0e39cd033d662362be7269e0cb2f9c328cb0b7aa87b440d1c5e5a8", + "03681d802b82ae13e21e519056473f0d577be20dae308dd2220ae43a966900ed17fe8eb5dc5cbbcb64e24881ea707a856479601ae88399c7f66019c2a9722af5b8d4ac0de07456b15c4a8ea7b3841a3fc2b0817da2b92a253c9fc91c3ae1fac948af1b8c9edf6b99de44c4d2b0154088dd5a9a2fbd7a98ec6df689f2cac453553ab9d38910f820918defb35c1008196112af9a52867b0ea14792b9bedada0d3daf9564ad724de41845a9d8eb5472aebc0355d4f7", + "f6a53e24400db15f96d217919d23660d80a5f052708a67c15c6491ee6913094bff2f6e895262b80a7630b79f2c263cf2ebc3fd5143ed8904608f12fb2a7ebc869cc96647207d1645017b96a346bc0bd1811b35ed0314c8729ab34749d21f362bc155fd49f540a50bb3f324881622ee9e8d5c91324299dac7cde1c69bed0903ac954c417f1708b6476bef2b", + "02a168ac161d9fd95bf0b8805ee1fef4575ffb92509cb8cdff117da0f648acca0118df7120557c585ac4a6e3982d85ec0c950e9420261dbc44c6c08757c48ac172c3585411b3d9b256009f5995078dd7273cd0819923b49d824e155dd8ac88b0bc0f2fc717c8d048cf6a6dd92de92217af0db11cf1de289c505a013078bcd998f8fdbcd420703462ae37dc7b31ca44024a156425aee00cebf6c75668ac9de25a581120b58be7f7bf2b68111b83c281049c4b872b" + }, + { /* i=9112 cDividendBits=3270 cDivisorBits=285 */ + "27f27a7acdf432669cef17f35ec876721d663dc4679a925339518b9fed1326fbc5d38ef78a32ef5349ef58fc5c14c35c59707e1efd6f47959ee5d0eec0e37e3185206d85ef8b1e2bcee95cfd54dd23a1969e54ed1857364baa1a97c27851fc7017f355653e5100bf629824abcae4217b234aa246d12530d260582800d5cc66c3f37315c85016db43cd0f4f27c8920ecdc6068c01ad138af0542d327fffd593ead83eb73c461debc1ac6a1fb8b41e9b741f81b50c8e46726d783608c71cf49a1a4226c5e67da48fd88bb15f13d7d9855f17a989b8531992749c3448d7cd6c78242f21cafd26dc8b8ca6795f667e0c27af8a6b9c33f98bd7177e1a574c1a9992ce8c1c8dd451297e720a30baac88ae13204938ce8c7bf28ace6bacdf0ce673ee935ae058dd703e443d05b8b69a9e880002ee65d297c9dad8e81432aa157a6deb0a10f8f9359c762e6c6ceeb2be9425933ed9138e4d95460bf47174b5f10145e82e7a0f792f1750538d321770aeea422b742292898328a94161f5ff188902e464c6e9f315e3354818ad69a50d719928d40241025ba95486a529c6", + "56f8f6ed4107d6be609099cf70f7361002b7e472cad874f0cfd7476afa86539e684474", + "7595371af9a095abaf280aa2bbe3c9213c671e1cadf4d36afbacd20d24366f8fd58e63ed8b131d3aa1643b1bb9caee42710511f9077500dfc88aa91d0e96e2146952e922720afbba27c8c266504fb47b10730a7950a0a448b127cdaa3c056a7136ff15f4dcbb447d58b7e3bc07a3718121124544498fd63ab447c0b767e6d15248023a711632fc69a334b0c10be478d24aa91cec94f4c0eb1ba4936a0fd9184dc594a9a5393b9674b77b496c2b5a5232f553e38f903be0a3561509b5c01d53edac936c5e05591358107d5352724056411a240dd13bb7e9d8d5250297195320ff8ac8db54e0b7d6f035498be720388fdebf23c10df93df5197cda17bb2412827b6615bd5fc0b5ba3efc805a06f47df40a1a0b927ddf41fd4d9b0534329dece6808619595f84af1461bf24411a45a993f7fa78b0676e0cf6e88150d7d4676fdc6b240704616f131ecc15816f30582321a58433a023b7ac11d6be9671f7971bf1f829390c9eb26ebb3cedba11dadb52b82aa04ccc1b4092", + "55710331088a44bbfc5cba901f592522e38a267bf6129ad60d3a05c414880e75d51f9e" + }, + { /* i=9113 cDividendBits=1865 cDivisorBits=1768 */ + "fdab37d3454b9bcee47016a5d827fa92ca2077a44761c3857db6f07fe64f9d222d3886d33e56d71a12985f273d83080723693739414d395b4edc45a1b6729544291f4b7a08bee5768abd8fa57b8fffbf070c3ad978e09548ea3ce8d7127aeea88331817af9cfa81a56217b03141b624306def7f3b0861a76ba417391e15a165dfcd52d824c126c0c71a11a568a63d420ad845b98a133f5e2f372cac4c835bbda145148d8a80ffba28ef151364e7c88603e1b068cf741113709224c22491d66eb243d3daded24dea9bd0354f9c52120fddc3302be29b01b77daf498cc275b661d6f1ec6c4691f8e311a", + "7e59d20cf88094bfa826d17cd70fb4facf550bfbf6ec6f0baf9ee953ce5b1d133d0cc6efeb7ff06037667ffec2370c7733041b1c3f0a32bfb1ad5796afb35c6094f95249921a00af430bfbf3b8da6efa396803697b7ff0ad4749f9840db35f54608cbfa96da2fbb60729fc7731f68dff3c96196f5e32990398bdd17d67caefccfd370d53d1517f28860ef328359f2449d8db74f0b3f78dace81228138520b5dedfd67da03543b9ef08e2ebefed96403ab39173505fdc672d40ee57839d84977dc3f267e36b6a6fa01042d29d10c3f1b88f228148aaac6da526115028f6", + "0201f59deb5e7c548cdb4662fe", + "3b3e8f4384080f971d9952e5137ea49432a1da5aa6a3e19cba88e49481aae26ae13c8c23277f93c62261619b9445e276f5e227cccedc288d8b51528c978f28d7416eda6d9477aab27199b36b2c5164182dab2fec73149c8b54c6b3b58944bd4c0edff0c91eed1aed99d9579fd9e000641d376b98e50cd481d32508630aa76de3aec136471082bed3daea88fa003be716516492b5b3d30b5608c55347b5fc67429a641ece1877324628104c1a1e448cd88a73b76b61d96394d8343219b24347f5e0043aafd8ba60e64786f0a70812de2e634b0ca3a3671ce8859d136106" + }, + { /* i=9114 cDividendBits=1436 cDivisorBits=151 */ + "0a2766262eddd936dc2367a37f267686ff3d05f5a40fd15e044143dcedd46f09560fe7016d28803b5cf79fac846368215f90d061fa4a928d82f1d4e0c82ce6f7001f858cdd7321f8a629568b4c61eb4325d51de36c8d9c63f42bc094cb789fd227afdee6faca659986e42a957006f77ceeae1e96281d401f4c9e6cdb485c72d9ab58d230ca96ef518cdce4849d1f5cab2e2a9450bd0cf01389dd3060a2128dc0c9a9baa8f631e1c669dd9692ad735d2f269acaea", + "5ab552d00a3f3bb1dc2cb1030101ded4488aed", + "1ca81c7fb5361992a8ccc19c16a4f409d77c0a35f12adf5a1814cda2a79f68809cc28c21c3c83a6a1ef04e02b5998ddb098c5da1aefa7f35cac99a21db16a8052b38ed01b8886212e10272c3105bcfe3150a34a841f4204233121e8a8ba8ca30e04eb19b153a496913cc9726bc083b0caa84835670b3970a8ba9169d825ddce8821138261e4ed415d50ccfd35a6b29394197228894dfd03213fd5d9a4e3a57ae96", + "2b1910b7c230079662d03619fe55fe8d214e0c" + }, + { /* i=9115 cDividendBits=1358 cDivisorBits=537 */ + "279d57f277464a85ff452adeec5536671f54812369dabb346db1cec88252fafedc03b8dd1decb907b7d5973322568429fd1e5723523e480d6f7c4eeae2e22d97c7a15f6edfa53f149c9308859452dfd7434f270b75cb8129946e933c23e60e37b8fa6175cc97896bfd28b2e3d8bab774786b5c16b6aeb7a796df5ce51af414755548790f27176bd4699f98f6be6a88e32eec63bb1bf39b6195161f6ac383976edf6247b845aabb262963", + "77e08f2a68078fbdc3a0a72280033e351ca321d0ce49bcf285723db6f7393ca2a10df04ab16fb73cabff725c80126bb23f570fce0e52ae692514c2b5af1db6a41d21d4", + "549908087a5fb70548639865f4db41aa99f0ea331233574b73cb104ac884bb6c1e9b58c4da36d23d11a42488459e27801e0c2aaea3ab1f49c3e5cb64e13b40cff9440e9df77e175e09b3b2eb374d9b5f7ce45e7f820b77b5074902335b7cee30cbc88a4c5d5932", + "51e302fb06b2223b1f1d960fb8f2726500fcefd84a38314c285299d28b7992ca5867d8205b10b234132c3c5a49e3d6d909807a61249ce25142b18c18dfd80852aed9fb" + }, + { /* i=9116 cDividendBits=1904 cDivisorBits=640 */ + "524bcfd3f7c7670a5b7139732d4ccfa891f53bd07ca622c871dbe574efc9be33f3471bad0ba7e54027d4f6bc71c3c35d76552bf6b98f05431def3dca2b313945286436c8310143a31a4d5c311fcaf196c2e41613d949947f30fc674d09b67a1e9588c1bd719a15584d6d0124c9dff17f2ddced3a9997c802ce76d5d3a352d1a1c7cfd304c2800a60866d904eca7db387d577e269421efb225b0125deddc70553830231e03b1012c9c7e6cd2aaa8e49d9d4858fe19a3be160830016156e617b0dc77325a442c59b10c8c4b3252228ded7da517936fff9dd311f368a4c2b62fb7e98d2db7660138fb7df12f54be1c5", + "c4c9408b840fd21b575a3adbb5321df1aa5d937149bca0bc8f36d161cdb3986af6c216a731f9167e0fa20e6c4fef2ba6ab37b0f7a324ceae605c42040b43f9ea8bf1e0f9d0ad10d2352c7ce5b940238b", + "6b0f36b6aca5e3e1d6a4fea04b774139c7420d94cb5605ad1ba9e24f437716464120889785a10649e432471986c6e65daee89fe9ce1ea9cc24294b27e9cc4b1fcfc0b3a05ccb00298f1e10ed7fd199e7a03809297247933ef99528728f15340f30290ee1cfda4741ea373032055947092baf4e7ad26cc051d4acd69f5b685a0c49c553e4fa1865c388a60882177a836881e83447c19f667d575d35a7760d", + "6d67eaa5274883d1c05670236f8c82234ab6514194644ca40ad31600c4c6c75c6d5583d8799b874e5797dc8d8b559b711221be393bd351a0ae8a841bd53a5c59ac4a67548a0368ca7c6d5d5305fb01b6" + }, + { /* i=9117 cDividendBits=2855 cDivisorBits=2529 */ + "224a914461176e8f222b408d18cf6ff7b38c8872f23749ca99956e4052fda8a03f895f662d0fdd7db8ca41f49eaf30220f1c516ff7d36b80171a3c93ef79682677c705f89e8c8830eb8d1efd18d59f91c4310949ded197438ecbf74ec0c7609930c14c2c766abeba4a5a030a59731f4141c123912ccc7e06bb39ae6834864f89054838c60a5389bdb04bae57c9eda65380fbc0e785933392ba85814775abf589bf01f3c9392a48bc095b6ae388be2a52acd2db4316f359e17008f53ae4ef3d67e91641a367844f37d3559845bd00d2fd99f1df87ee128295bada9d5ce29c7617dcc8ab59e8dd9d4118b63d0790f3f93999ed7a76aff65139292b1e96db3d12548c32ae9172caf3080d8849a07637316c02097ee6b3a8583cf2781dcd5218a849e61aba0d71c1bdcdb6d81225f9e391f22712ab1a4a0dec2c8d698d47742277ddf4e182bf355b4676ad0108d39c6b2e27af191a551302654062ee06d824bbb5d5d9c2cb4763", + "f151cb664e3fa01eed2293d01f75255e68e5dec59fdf8b619fb1487502c72c6b91aaf40f3acf9f8e07b7659fae9693d3a084ad0eeab9090d96673363086c9380a845bb1d608d2e221c4bfccc0f3cc7f5c990c5dd51e5e5555ac77b2521b47b53c5e28e374e6194421ab6c827758097cef7716ee6d1cf7d8b248591decc1ced311690973ca757345e8a821d16bc55426b4a3032afa077a4bb2ef9f9fe9a933312d00e5a4b50b07739ce2acce182b3559df705fce35a726aba96266bc7f480becf302e9ac595da221b7a95221adf8a2773cab4c37cbab339ea6790268457ea9aa54e1fd46e0245d6b9f380c23842c85ebcf0f10aef7984dd2c00639f82ed88709a8fcda4615727437e82627e7e047a2e6feb19fb3472cef193db9f1a5defe72dc8ac089b9db72bc62a07141e93558cbdc51253a8c748a01e678af9cbda", + "24609adf51ce5f480973e19360232ec4c30d42fedca75ef90606ca7662d62eedd6b7946d248c0fb524", + "0a0b203d3ca3030fc0b2ff3379d61a81017db4f6121f608649961a531d96125aeea661c7c6107b725c7ee462f74769ec0af30f0895b31c0b382a07ec13fe9516d604a8ae54a478313db9af03052ddf8b53cceffcb8bcd37710c1568d95e1d2a195bca55970cb017c87ecbf5db33bd353c782c9715781bf8608200715784b3bce63b0a769087170498676d883e13f84552119e300fcd3760a00c9251d58a595acd67b8baff18000f9fe795c01abd865dc165026bd6d0cc5d4deabb60d19603e459e8d38176c9a348ab9f05117af0b811dffe06631ca9a5efe0240b3c41f0f59835817668de65bf3371f0e8cad53f68fcfd615ea737e2df70a22abe846fa8875076950f810c050df23bd9444e32c9e9c1828370a3773ae1ba2e5ec25aa8698d1b379632ad06d6d5567f975b59c14b9ca4d0d28e3a850ac1d4170c37abb" + }, + { /* i=9118 cDividendBits=2965 cDivisorBits=1868 */ + "04a6d63f16576e077677d4a52be7889300ff939301cb92510b7d7251faf72ecd2265bff3e290eb8a2a746f70d318d4c73eaa28db5c161e0bef3c3face75021350c2a7ec90ccc78b5a1ed632c13a3aa7de168a32cf328348e05650e7d7f21c6e5814ccc9215b650dc5a9f331f12653da93b7b98f29a18bf614945432f3fc8fbd2235c8f344392085378e274ee86fd735ac13b6c8fbf7023cd3d3d0c46ea0fe19d02f1ff2f3ddf572508088419e8378784379ca04a642522f84cd5a453a39451b60118d57f35bdb75f0056a9deff1c642494c76d710825186a4be3a92622a8c8d9893cb4dee7dd8740faeaaec3b19c0c852837cec2152b5123565ee291f77f382a7d96ec06eaa58c8fb215dbaffa1ee0db0ee31b8efd7cd684c8f17f2f219784c1e7715e514f6f80dc704f031a9e20c3a3d1524ec5de5700a4927017227b1073ca05b3f7583bdf338224328dda5c6c170fddaceea12e0c178f1eba1c32affa41d7e89808eaade296344f7f182ac7784cda8cdf8c", + "f2a107a66ac8290e6f99cba2d44f0cdf124b209ec8e8bc935b0ba72467efcf28c68577f05156be80aa77a3ac392696667cd2ff1a8fa270ec36ddd9f5af352f1d14df828945363329afa0791f1bb22b10569d5a486d4e8f08623680f7f15b2cde06580e771a442a68cc07e2afe4d7dc9992dfbf5a6d976ba965739758c53e8a59cab3196ed9de3a5e7da9d5dd132b8bed5093efacba4e7c98eabbd586603d0bd3662390a06c61b27e22502f7abc6b06a141da66e73c7eec87afb57c165bea0f36ebb9c9b19b321a622dbec8deb3507fb8695b1eec34bb3d23cc5785f341a5cf5023f33e15c989de0afa", + "04e876605ccaab832bbdd71e2607e2cbfe9589aa46ee1d76bacd3fd3b038c4229da9eb6125affaedaae4d3ce5bf9db39f375dde88af611e6d5fb140a4e986e022006c42b4c0e2eb72b92d18352baffc5c476e3f20a2d7e23f935a6969d7ae9b48d597e423575c6f3663a9b81250a6ce47ef210cab1c94ebb808e57363270e4e80ee3b7780698324c5610", + "04f9926ac7bf1e64cc72bd58c3c8d2ba421cd3cb52405ae8189f5501985f2ed56e794f1785c90c58226ab9bb264aa79d30ef8673bad895494dbe18af72dc0d3c9d5c50598c32b0dcdbe798878f60774cbe0c3ef5c3f99ab3b0b841dee153afcd6c60d5598d6e80b7824f5117473d4c5249ae5addc355ae102863211608a76e6223e2de3124189ffafc961fed852b8b91a0a2bfae0bbb3a3f48b9f295c8b701abdd2ffda02697d408e88492715343528467c5f38de31f96f20af07ba8306b8a9b2a07d7b0eff4014d49a63dcab57e2efc39e217c709ad4963108d506a3c39cca7f15b89bae38ec433ec" + }, + { /* i=9119 cDividendBits=812 cDivisorBits=735 */ + "09ce77dc21d0920eee83cc0fbec532d7a98363f07063566837f1a9aa6d35318788171992e15cb79f975a79b3050c6267f68cfd3f02fc9f222a57f86dc6dfd820fb254ac12e32e5964b979993bca371eebe804a8c5aad4924b42e29cdcfcf0cf91b0b381854bc", + "35596b934c4071a3bc11d11557fd012876f2ec1c8792be76e81d9ce8d8e3fad7b6fa8715b1c3bb8a7b88fb77972278fe752739fa3f41610b348b1544d8f7899effe9602891433c9ffbcab39d0033e70c0403780671391fb4def33ecd", + "2f0ea4346809bb694b7a", + "10487ebf82fbeaab0ebf3b05c9e8e4aec02d4c02aaec8df6f918e8f1e73e0e6124fbfe17f7f5bef2f8f34c3f63a2741cfcbb972a78403824a53f7051c5c68ff8fc958f1bfd366998fadbf9f2b4308637f359c7317db663ae33b1580a" + }, + { /* i=9120 cDividendBits=3270 cDivisorBits=804 */ + "2c27ea23efaef3dd4d5b269a2df6698fce2f22249f28118513d2263a1834f3677067dee711aea790e6a5d51b581d63cd28b6360af67f6bfe7cfd4f44d95609d9aa19c1b126ce5b57ce5bae0249456d16248ebdb7e70a41c5b2a16123021ff87e99a7b376d4eb2deac5363c029bcd8e4d55875914e8b677ebe88ec665e40124b454ca32ad1d3b0f8be2a50a31f67f91b222b88d72d687d77473ef4965437e4008a17c49f372cbe17624291b3b49eff0facd54a81a32e94bedf1ffc263f89c68cf34b41fcbd7e690a4447b3c243120790d3df860ad7056207de218af48dccea98f42109b1c4451d99a6432601ffc434f9b335d840d30e13508a393142130dbdba47cd19ddfbebe30ca90057f4e83d2ad01ab06cc6232c2c2c29f94fb511f3302b18419442076744392308e285beb6e010cdb80a1bddfc152cbf4ad4da844f5f8548d1c0d4713dad3de80fbd2fefd819958f7c3680b880571e4f6bf6ca47d3093192de291ed797aa7544f4a8b5cdde64da3f1637554bf7eb44ce2e847dd192ca43815e6654c6c24d53484c29be509538408ea2a8bfaba4699b522", + "0c39fa58199058735d5526bbd7f250a563811e132446230ea3bfbae09382822353d6c2a5f71605ee450e1b2e270286eb76cac031ed1b93dea78a42dc795982be5e0ffec6328ceb66b97028fc402776405712b3c29d7acb68ac1fbff9d5d38a0f8e1fcb02ae", + "039c8b405ecb2d1090e04f98084aafca88835ec453258cd068d1d9cdb612588e22dac8dda7161e4008e7fc875ca7e9382698771b252c3440919d0a4a1b41d5055333682acdddb148492f34a709ba6654520a3e55c39e2e022b1ce42f136fef49939cc81cefd022d79b3017381f7b5d40d2400898b2f67af8d75b033b6ab0e15ac2ea179737ba085f25d11efcb84c546833824192767202cfff08ac7a180b3382b87f8fb8d4d3f295d994f919f9f353bc0c46c407649e4d05442943a198b673a91292eb29e46c03d62421451930207ceb0f4449c8ba95cf92f84ee2b57f0408957b4b2b9351680787cf15d2b8e323e84c9c5fe56b0c5c1fd829fe48633392f34312b6bedd4b6570966cce6bdf8946df67a4f4acf2dc9cd4e93c7af51676b2ce1197bb58d4496ddd24ae0c2d55f4618e3c5f112819b2", + "09feda1963acd87aae0632b14ab381e4dd067cee7a5fef256d273f6b05cf6ffc19c21168bcf263cdb9a9668af0e9f4a19d4df0411d4874f53c600c34ba8e73372dd1fd336df7f7e318ad1cf34ad9ec9e27e8f232b4ef98b52b97724050ef3c0f555efeda26" + }, + { /* i=9121 cDividendBits=2413 cDivisorBits=146 */ + "0d6e165d584345fdad422839e19eb619d5fe4eab5cef8f1fadb06dc3669fdd806ffa86037ff52e32a703257c1c13e9019bb674852f3ece2d473c5934bcfa64d161d6bd87d1d7ea41cc613c16edd4405fc1b0a685d6d8efe8287b35ed4be17a5d6f30f6ae115c2c3c4a8a62a40fe40d65cd71a226ce186a4d2ca90de29077c3cb8bef620474d29e029baa06d2b3f8908720aa0e44501b033bb213e7b938cfb0231d1283dfa420041355116bbb58ee239281f7b9f01993948614d0b2e5dd908244a92e04427ae5ec8fa5ce0b01966f5f72ad5cca9c9480b2c9a70c861c8c4410fd777d3a11346ae0e0eaead5a478c95fb6c352ec00649092065305632802e695dbac62b5a455ba30eb32b707577b202bf794332ad6ff749ea1c4f2c5f5c318ed5d750acc51445243003b3c5a95b85a", + "0326e9fb27f38ed818c3e8507bf0e5a0eca28a", + "0442c2d567ca5e00cc24b2e4dc3c136933a746d2e4f41dfcfb3f298a4d5e1079e87a669f98562c503bdffb502657bfcb698b9cd8b8590e477d14457c8dd5b8aa6f60f840fd8f6b02660969a41de35c23622bc7ec3183ea273df09a8b81cf6d778c3173a79dc1fdf00cd0bc7fd74a0bada765ad491017b4f1fadacde944ae6ee2e4ac71b0b5b3cdf9fa0f775b9031be8f6444107f85675afbb0cef1d8c2195cc2a72deb8686a7e4243c0dedc23c848d3de0652c061a8d7b6f79192e9ab77d30cd2de7f1720e58b61062b0f6b1e6d7852ec748cac893541ddf6baffd526ab15cfc2e8e6725833f888a97461a23a8030224f09768856b84593f7d4989bf1c633044d91bc30a52622e1718c4beb43f64bd8dd640db823034e9d6624d1278", + "1eb80b58c055aedb6c39ab83b38690b9d3aa" + }, + { /* i=9122 cDividendBits=2255 cDivisorBits=987 */ + "1bab19ab3959d70b09f52ae297e4453f2f2c90da02b17e721a1c4964d6ddf3797baf4b6722e66e7022dae68aef6f343b2b8257e117a0abbba267490a7a09ed07de861a4ccf3e12d20d855f957c956c21ffb7473945eb000b8f854cc2c0cc464236737610d46ce05588f847b4e39a179ad111ceb66350ae6382aa214db3d45376d1acc3df746628be4e3f839eb95f5e74f3cf087d3bd1642c0e26aac3e2463ebaabb93189d3a5580fde4d654c53e47e2eaf76c92ca673190f975afb6ed29a28aa38802b141f5491317a6303d29c3afc6c5ed3e4e02c75e9e1a5c920136d92571613071bca720dea3c2e09811336cac9ecf780c8de8848440e3606497ac6386421eb5b86d39c844f8786baaf45e6345337b56376aa57dcf68c4191", + "056133678983c1e43bdfedf4435bfa149859fa7af57157b3337941b313ce7c896ce1ce64138aec2d071c3a82504ea20ef1c94b299a82d64dcecdfef42ceaccddf47e602bbf903a91f91c7ffdc6fea7905ffeefb35c4b3ac45a3360980c6f100ca0dbca5fbb1efeafdfd058cc8da1665aae6b355b3945693a1d135601", + "0524a31923f7c06f91698d6a800d95715c71b3d4cc6fb9ef7c972813c40984323cf1f63a4abf4486c6a2005daabeb7526790b5b8b6f32996d76c63d3666f4abb622aff7c9f918e02fb7e862bedba478d84b8ac171cd0d5c86e130c9b8629a3388cf87016a344b81228615a0dba407ac445dbcfbdfa639a6dc60f48cf677257c4e922c680ec71c4748a8a0ae91452c01caa40d89a8ace08d3029a03269e63c4", + "0288b5f7dceac8902457ece14a23375af78c919d15b054a6f7f1d1f8d80c4b3b7d8396b64c7d1469b7bfa1e172b47e08de0082adc9e1c2429c9ddf89cff14853586115799f83acceeb4461a701c3a331402f37eb4e08cd113c9eb8247edd8ed363712a1aa75de0a105c953c924d9923a46d114b2bbace169fede05cd" + }, + { /* i=9123 cDividendBits=2537 cDivisorBits=1270 */ + "0132bc58dd187bab2f1b792056bc1121fb27c7cb1f4b4fbdb7d305ecf99b566c2ac22e8b759b4dcba85808a34012ad95b1c4d28eeb6338e4591e92303209e5a6f605d62c40ec42d5d7f123f6b083d5af61a70cd4b1ba93307f1814e7ec3a6a9a6dec7ee4a9f3e2ab2d18cd4b526b142d9ddd6ee5cbe1c827ce879dbd193559068cfaffd4dff57ff547d0e083a063374337a52a85f563aa8af06d40b7432265cbc5ea99a813f0761ff3c482ed14e078695e546850ea3da1935c1ebf2dd02189bc39c89f22d0acb78aaddc6337d367bbbfac96926564e670521c292a1af8b8ac3d5e5907b4d931f528ccb51016b67595436cdf777fa0e422f725c5e4aa04466666edf406d3b9741b470cc3629414560907a19e96f545278e1628583f819977000176ac958d9783b6939a4931c34fea24ac18fb2cb9e4d185a7ac1fd5281de4", + "145a626deb08c375b2e0bd0cf476c648e453273188af89564a4876fabfb26563a8e73f64ba0a428ef99f5bb2e31c0d08190dc4d933ec44cd50f067202c548f6ff2a841904fc87e3359ecf762c1b6c86dd1a9b81909394cc1c951f74fbc8a42b57b6dd2389a96e00baa25d355c84978699b2cdc62ccf075f37b471c6fb9ef4728dcd903df2101c3ed5bceefdfda81b2af371602fd948922fc4c3779679cc37b", + "0f121bfb2d380c26d2ba4af71c1ec15b6637af52da7ae790ebec2497cefd94b147dc50c86852610539b22c577897b74a9a4ac5f267d4e4e2ae9a21ff1cdfc60133ded90759632da6b1f1cf08ac9f8857a254ccb93f5dcf497312d0b1d4b3f902f856b65b358dbfa74f217eaeb446f8c81de0772844e20cbffb176d95796c5bf56a338e51adee31348e8634a138fc4cae0ec961e1873022f13f90127c68c970", + "02d5084913f40c17b58c053d2208b239b4643447c6045ecaae1efe968537c250a667d7d086ca1f704d78f978ba71fb0b6bf9f3a5fc9873668f1e08c016b4c87cec87e437b6bc6686ce20587f9b055f8dd998583ad2ef2558671c827a3fd652c0bb65f4c1b14f7129e1fc4d0e90aa542f6f06a50ad5bdd15db0e809129cd342270ea6fdab1c964bfe393b502427776a6351ccd00d54b8d397ff1fa36d1f0514" + }, + { /* i=9124 cDividendBits=2693 cDivisorBits=1865 */ + "14482807e47fceaad52f913227af49b24a538dfa06b9e319adcc69d3f88a792e9ad3243f45e22e56c27837847c70a0732bdaafd5a20030e5f834e572aeb12d56812179aa7726fdb7e7b81ca5036616a231c139b1fdd78726447567af3ff72f1ed0e1adc92e003e625fcbaf7c277b7255c1dcf81cced767438cfd196485c15a5168e95ad05093f392a520f5fbe6e70fe3a73bae805126d4ce3df50607f6084ba46e704bd507fabd36976a05a4d4eb37f4403e3c524c125f8ad91ab8f021b70c88fc53abd63d531f99fe39535c17b53f62ed6511ebee020431860d6452413c7719af4f3e280723a0e81aa860b72e0b16e50b3dc83a5cd43e28ade5019715385147d35457e519aa519d73116d79bdcb9c0911635dd0c932d06d0ea1b3362561f3b9bce6a5a42496efa45f9ad70ee7d7ef6abe065d9bf5088445c979395c03201553b44d01679d5449ff9972817049ac12b0", + "01400bc8b777cd72cc2254da399766ba4cfc54ed8d79fc9a7c33f76091646ca6ad15c4e93bfd3a2b4a23fe6b33a89d9040db570a64c40ac70873c089142962fece71df216ff4a8761525d3d284aa2993fa4d8ceefabd151c97bb339a71302c0540b2862fbd543eef0c08c292a6024eae6248341be84031cd8204c01b804f5f118997a5e348d0369b2325daa57ecc75dc2316409ab411206b4997bbf86d5f114067f2979f3e029d8265d518277838e584d8ef502f470cd4696ca7cb9bb0afface1b789b61decbcd7ebeeeb053cf8d075eee768a4c37e5c0866c03b66425efaaee7246445f1cd89214e5fe", + "103920af626618a7ad09b7374b88a28fe3859cc93f99b3b955fb930ff181cbefea2ae87d24b5d6ef41e03411de21aafeae27a2412c20c5969e515df58996a7455bb6255b9edb4f73cb6dae0c06577205ddd4fa0b7cf92e9dff758dbfd84ed48932fa233e12f53f", + "011d36874ade0dea757c4d09beb87f5be934432008a360eea18aa34fb88f0fb957bd11169b168f1e740baedea6ba4bf7411b051aea947cefd5b7a2335502db03e8e5093ba7000d34fd9bbe6eb4544e4927a372e2ad0f1fdb186576b724dc4cd7908961d3795b15f00a066c7d77d51dbf08a7caa0c49bfcfcfbdd8926da03f218d58aa411e042e5f14df01dd44c454eadcbd03fb64491132dfe4cf34ce7b942b7ab6609852cce4d6989f04f9b37d9c2eb921bdeb2b2fdc39304f24a3172b5453c56c8af4d44bad372c77875015f5c2d3caca4960c650777425edcb6ae8d05a07111d309c25170a68f632e" + }, + { /* i=9125 cDividendBits=2617 cDivisorBits=843 */ + "cb94d28b75c44ec974180b1254e52693b9b9aaffc393ab746f720bb03baac73a4c1473020f729debb6aeb7440edc6b682b8a438985304256146458144e44db75bef9b7a9a67f40d0d35c60655db7a012b6e49112944b8a69d37395c3bcf91f5fe4d513694f52e32b25bdec0ebd6606fb0a1299e7a89dfbb4bbe8de610027c3d5140d7e6ff03ecfd9a91e008c7d7b8bea76a97e761f7b234e160160e5e08e86557b09c9280e86a0389b11ac19bb76ac40bc4ad4b8ea865dfdcd4a3e1d18f5a107f221644754336fbb30fc0b2f2d269fd2f6a454cba313ab42423ad7edf51a9af08cf7d8d7f60b609998eba3ad0a83ef2d50c9ac92eded2354db69d26f6a7d9d2cb5c77536f55b9c2f975076cf79f425afe31146ba563ed6defbd52f8cab1e0f38d390497f994ff612305162a51a517d92963b371645776d6a3ae1482e951c73fe8cc393cba90593", + "026d4aada558d9dd57be75576781e90f879fe54c7038ab367a4e793e89575c6533dde1837cbecfdc1d2fd0f0ebfeb45905ab6efed3f8dbe8369bc67c506cb3afdf8aa9ad02659c13a87c33f48a0307880405dbb64b23c6d55dc2da73ad1b98b0924784dae7927c3272bd", + "53e276ccd744c7f75d65e19a8164226d18ad651d22378ff7cab7fb78327254c142379d18c1d9219e3d32a05540874c10d9777b5ef38ffe7dc024b2cb1dda0299d93fabb941e6a60cf52c482bb13170fb8f08f1975218afbda9db718a603255031c80aa11916a6dff426f7bf49a93bd1ea7608cf057a11320a4c27e9aac60e9bf51bd8f548d2b38f1d1b7485bf7ee2561b693cfe19ed3e84fb7fb0d1a871860ceea0c70249a92c2616bd4ae94e8b0f8abd9df8568841cbe5fcc7d8e0c6b99ab804c1627633bd86d04cfd998bf98b2ff0bb58992fe195a6bb9a28949f96104", + "01e3ee7937fab717c00fd47de6c5c0a4f6c9bab82155ee8d3f846e016cc97626522e8d0757da0ca4e4cc212303453f0bf1e7860b3ffc0557b77ba05fca08be1424e5f8d0cecedcc831e1eb2c3177e66f86930c8b8481eb314e2529300ff2cd06d332a94d734c3e909d9f" + }, + { /* i=9126 cDividendBits=1686 cDivisorBits=1457 */ + "02262421d3968265df6578b4c544e6cda14a2dda1353ec0d59224c8f3c2deffcf807119ce90b4f11ed76e4a2398b4a7bc1a52f5a7f21c5862b03513eadc2abc2661d0064a7315b00af6c04e08041ff7b8bc30e35a82d4cc56eeb8c8df5032c02a4324990912fcae57ae90a3a5c62fd6257e91ff136e9817d4b08d5fb1d42ca7915a572d3d51c499d4a25e9f99bfc254275ca40002c9524d7c26237b0e457a19a5fb2ed5945a48f8a385715a6639fe258dfde111680af5410d01b4d37ef4339b6a7d08ebdc99d443800ec0d2d85fc840b99aa44", + "014e90d2cd41bfa1f16d5dea71a24e87b026065cbbbebffeffcc83169b8fb8fc6a51aafa64bd9b8ef154341ff1c87fcc9bd5884bf6fed132b63713a602b55da61b3f0ed708efb0dfa99afb99d2aa3ab6cbbd3cb991228e8dd70bb126266cadb8d9827e036d92647b1ef10e2903c94d9c627e21306f1b747df1e8e1d1a3cdf59a3592ee46b77e23640b67abe05498f4fd9379102121f364888e6719d8d9d8024ec04aa915869bc2c02bcba62e8f7fc5dbf10d4be70abbcf", + "01a4f3bb17af14718cc8937ba999d411c67210745d424eca7c8c06ebb6", + "df95b0231d569d5e532211a10e9b02cf35909fd9934d0078243cb0f268ea7d84d6b65556a5ff1357700f84be6f98065397c843984f21cccd2c56f99023883cf8ff32ac2facce15a0c1bdb60cfc0574183cc3ca00e00af88deb949e9501035388966e19cdeff92a99fac3c588e01967236f8a8a56ccc5d54cac76f7503f03029daa7bbc5ccd9ff530ecbda4a0e6b1d8a450a87729e7120350cfd3e291157dfb563f5b62fd390a209d18361de4f49abe5a443d54b7201a" + }, + { /* i=9127 cDividendBits=1484 cDivisorBits=60 */ + "079db99e67afaa1fd6febfed4336adddc80d14018cda24e1aba178c30d14b33e89547f5af5d9fa364a74d1856cfb632712e09baff84287e044d17be3b3393a0c736ff082915d993e296653e2555f43a2a73f1fb0aed36f49e02eddbf18a4ab9b2e86ed5d0360efcb92539e8f11498bd7bb978f018f3bfeff518907330058d9d16b66a1132f2d62189390443c7c4cc941d81a3f27d7fad138333894e565d1585679ea08866b27e52ca572760815d89e84f17755fd86975c3e04f8", + "0c64d775aded1dbd", + "9d5028a846490ec06a5ca3abf7e78369bde5878e5f21073a275cf49f6f9a0f1ea8408d6baa5ccde75ae7c14a458adb5f827c5cfcf64fe8eda7791b0fb40c1790946de5182143e32611acb004530e487dc32dcc96ad6f8c4cf7da2f367fc47ca735385d68210bd65b31ef17b2ad4c35d277cf792242986a4280dbfdde9e56b149f9eb571ebf855e61662e81f062ed6f31db2557774f27c7bf432e2e10fe58125851b830d2e02f945d3446df06aa96d9f644e4", + "035250c7b08b54a4" + }, + { /* i=9128 cDividendBits=2701 cDivisorBits=1717 */ + "075135a485eb4e101d3216a1a8e062242e356bfdbf250b219f93d894b7c7a2975db4f17475671e707431f6e616f8f2c6ee8a0ccbe2f96ff2602a08197cdc50c7fde505c9a416ba9fc584cb6cc324b2d5912075941ea57c02f2aed310d1328d360facc70c62b574e80ccdb4bb84582cbe33f78d3756fc21f47e92b07b6ae6b5c8c2b999b092a858b282aef7593c0e6f5a22c7ce7e7b3c47c38b41e2b2729e06c4291ba1e00ec9d37838fd6549d94065cdc1f6917f87a6f548d87a391798c16c63411cb49afb871a0ffc19ffb82c01b2f146fa9ad38bf6f25bc0f119105028a8893be7665b3b32515faa320b5779cd4c65b0368951295961fbecea29fe4eebaac646627fa23416aa699df83fb1482313827f213ce6f7a887cee3aa8f318cfb253c9a796dd73ab4ccfccf93ce4b1c6b20f13cfc038d3808f823f8b266213115064afd96b7b08c5b563bfb2e02a10ede79dde1ba", + "14b6a33675756d9f89b5919e4549ab3589e8fb1e4de7266fe735116bae009b24d7d74b32eeb3e4c7696ee97dc69fa027f3c7fb000f97bcec3a985953e7e55c2e4b66ccc8577768d567ae4643f5dd9ce341fbdd2afa67369b5f62f4fbd8caa5730f24bc6c60a6d6ba4dd7d2cb56aab9e171c88bf66159c419bcec23c98c9f626d03794e1aa3cf9707147c207214fcf877a8032224a0a2ffbd80d1e2076697d48040a54ef5875d844890f4dc1b188027c9cf9232a0c163a8bd0efcfe56305f6a15f2b338d939bd52aa56d5a20042b182e4de0fb90cfe1894", + "5a6f3eb1af96dd7f7d92886fee2d9a55030e449d7957015f438b68358dbd54ae1a5aee1c59d7b7e9118c749da5aa7b77f447e1d272aee54834c86cf684340f29673ea57685ad53c5dc4728e37ef6df9dcf0e18b45e7d1c27d4fe60ab2ff4d37f3f7f8755f4c8a0fc60b599031edddafb0491950194b5e226b88581", + "0121c701975b3895960cd6d43b3f0f7a835b7a7fa4798b98b21cf4b8a57f81ff9c1ad80c63e78e2cb93fea80771884ec71f2e1bfb81947f4c115dd64e4bdecf697a9973021c8660c2f3235920bb6d7957ea6b742eef0f8035b1ff9f8cbfa15858735ea786d83a504ff4a64140edb43668ae5c8b021bc96800069a526758debc641077df76e9e5b2edbcfc05aa9873dd33197b6048d78b1bb0758d1552b7572f101a8772ce9dbb8e7f6ad11729fccdd13edb356085255d73f77cd3a1e61c46af2d9f2fe56b90bd7f3cb3653b309b6b0a25e99ef48ae9b26" + }, + { /* i=9129 cDividendBits=2056 cDivisorBits=2046 */ + "2dab4cc68b2bfdd4a569432cf4ce02c33e79616e418883a23b3175bf0bb5ac8b415b13073b31e2150a30e307c236ec12bf57382ebaf55d96aea1e4bf2a4f69fba282f51987887bd58c9cf76666134be98fbf8f62f1af06e5035d354389d78a6d7165e0461e4fe1a76471f8d2f4e2693db85f54eaa6c3f9e8ae7547998fae4328b073491b4f3df5e1d96d1cf1791497d284e9ab942edbd169647f81db70ae359a3801da4630faab63d77ae501434bd914a917f3f966c197722e6482482298bf09760f5a8e77b634e76192f3863850c8635d0eb578ba6383cc8d1ac5fa1783f4cb9b98ec41f6e7ac954a7086dcdda58b4e89c6d41e12af817e0157cf7ddc17c51f90", + "3e8e4f1999407fbc79f110ea5673e26e07adcc4e2aa02785ee67c706b0721dfaf2a54c9ab8d8e8b23ae0dc1e61f28eb094310d0fafedcd0d7692cfddc81cb8f799935dbd308e49ae6b47062958b54a77ae3c2f5418523c75d871799e05049771fee0abd00a14f3bdec9d3415ee64f0696bc287619387b4069e234ea2dd028a556cfdd26d5e8014c9a0c0873032772cc933ff0b551cf4f8d96a38c6c24deff9ae0a2cd1d3aa4e468720371d529099ca92298bdea50a432d1f67dc8d6de59153d5c49d022adebed5485527753ecec9dc38f1c93d235ff1eaf8012ed3cffd6e7e7aa08e70c7bf274da0c293986a7af22e3d5f1c71b1546ab7f6fa1b4725c6eaf07c", + "ba", + "37e74df1d32105b4d01ce2b1fdd03f4ce51afd769026eaebfa0f242f82c2c2ed0ef95ed0e449038b698319af0cb06673ab94b15522969ae67b39b806ea8b97bcede2fe12411a4cd2ab5cec5b9f93ce9b27d4ffd80346f7641ac2e6ba3234649e36a370f6fca88f6687c0fb05ad12912013fe8dc193611bdf8fa0773b1a6aa69f42de37d894e6c75aa13ab8746a014855225d5857d1d49b6d524172440dda31c49d49d2673dcc25aa12d9b3463c1be676e854357d4cc8a95cee438649cd2820253546fb51df8df0d3b4485696121e61fd627f0d06adbf145c3ec014f961ace682f16e50d6051e2e7d114a1f805195b5f2ac29833b59f7d48f9ffdcc6991126578" + }, + { /* i=9130 cDividendBits=63 cDivisorBits=14 */ + "209a9ca196967a49", + "1525", + "018abdad4fb7a9", + "11dc" + }, + { /* i=9131 cDividendBits=2513 cDivisorBits=1477 */ + "34dd6964e7b2afd7e71c1f23ba68684c86724683d4fb820ffc4a9381c7922116c3c8799c6182e672e5c9fa2f93f5eec1b25cac6a3f3ce8a8a0389f16a75a4c2df275f4705ccb06c9ad4956fc584f2273945ff851fad2a051049c2ba312126e8ac847c4aecf67fd4c839f15764e6efa6c71ad4706f92908898c68fd9a30c61ac88399bf02300737f8e56149ed1c2b256683ba19e607c40d6b5f029c57517d260c678c3179d9977bcd0393e46c885f0d07778657b979d5e827ce95190ce4897a002b75928ff9b5bb298effde7bfaca1d9cdc1502917af881c7b54dc9afbbb4ab9afba018a126132f5807b0580b642f9ac84f71b237f4d8fa7ee4761c64067aa135abf9c50078ed36d7d0f9aa015b1ea23b2e0d59261a1ba3e3a7b2ab76eae978ffe9935b24f794dadc89f1bcde753397551eb304abfe905d58ba48", + "1a7ba751e10ea4b35cb7d13fde8baf6c3915d4a18029b91f3709fd2ce2a69fb1bb51d3f5bf14754336d24dc081419ab1280c746b2509b28d6cec45ed803602e18760f75cc9d992449edfb905f7ce5375db4f03a528f5a2d74eb5fb893f08b9006dcd069cb95dfc6e52f8bae61fab7cf896ed882f5203b8227685e0016f8aeb285337a21af252f5e6155b80408d8a0dd9415eded17aa3f7344c78caf1b306a3665684d67ea290d76bce5483f9bb43ec181a5f7566c57dcd3a6b", + "01ff05adee250c96e23a7ab775634120fc8cc0584d7942c03f3bd9b25e7f65220d2585dfdb14605d0012cfab5cec6041727ff65a4b27e52fd13e86c51b7c21b5a13385d106768d2b8f4133d63850944daf3fe4eb4834c2fac5c149ee8b6a7a0ba4ccf69158c47f14f1ee5429db0c7de3c86dafecf0535f72d8dcd9c3d89977ff5db8", + "0999f7cb890ba825d45427585c9ae3f1b0b5628aae9ba527800b857d5c98031af50b060ff9c022001e10f049ec0a042f1483d2da6b564f908d7c1a32b25506a7d497fecde577c4e1976e2489a47a1a288bed113e741ea682689a6409fd58704f27ef4eb7258341318f155ca6cf8c3231aba76deba1967ac3885f677c87134c8577c54b9b17249387b9e90fb7580a0baaccfeed0af52289cdbb225c384dc9a81ab3c2355ad9917a329d658e4214f1fc3a600a4e7a627608de60" + }, + { /* i=9132 cDividendBits=3308 cDivisorBits=1397 */ + "0eeae732809a90fa25996ccc3478ae73149ed1d19177cf70af6906bf59d4a1fc69fbb9787cc121099f3de41a83e0f0d167f124ecb409c2217e7dbb1ea803218c11d6763316c0e7c90bfc256340be39432e04caf7e0d9b6ee39f79b70ebd19e8b3b8ecef41dec2d8f258fe852e74349bc0dc20fed6a32d97c97cbf65219d8944c98d8e779dcbf0f7a975acc14b044a48916ea99b6deb3f2c05db2fa1a561b6d78de5d8962e341108e63572d54d12dc6b0d1382f9724a78132ce4e1bd18ac2632f916138250a2e7347c9922bacdb2c62148a7ba26896b9244ea01a8ae5ba6be04e50f18e924820a10fbcea0b7d7a360499b0f55a26f6b04e2e8f58449a4e3b1a796c0922523df376502ee8d2556e9515577c10dd74d379fa024f61f33a677f24d64d8e5d924f8c76b66468dd2236253e3ac34c5b06913b83c6561bb8fdfe397eec6d37fa2e1a86f2cdd4bc76b8fa1d68848a349aca38336af91082f79cf78f25635c735870f3399237ec76136097f05c225eba3a1c729a472f0bc9a428c10fefd231f104c8e7ba4a7fc5374322c24cc55278532e39055dc04904d832683dfa", + "1718da95f4faae6daba22042c9d529a807afa22ccea251db3a77920b031ed860547d7b04a67db24023d9ed00c3e0403af1356ac5cd9ad927d5dc5f4886af21ea96a660ac474b1d88b225846e2e7f1a6e318d98385c727c83ab3ebac266e2aca4eae3a77e4e19fade6516fd17cedfb68cf5a261dd4adefc94cdf04e971253b7afb12d58474c7b1c8681fb55b0724dac5a616149c7a6e593943618b4e2adda4a9370ac94c5e8cc90565ba3d004808703", + "a55762431152dc139ed7396c6a30b74f86d90653d9678510e21c3e9a6bc21d58106ee346b3e269a32f6248c9a5a1fb4b083fd10189ba0d63a1951b2190e8520ca5940855dcb7f0a1e8d3a01983fa9b64c52d2a9f147fbb82c0e8cd678b61de29173e42d19d6076c5aee17b7c3c22fd3fd98d194eb60490b531b7334740ccc3af7993e1bff930f4ffdd0caff34770272d0b89ed6d5557111e59bc60d2896c7c0715e7af9a2cceca3cbe64278092a9711a09e071ec3722661f1ef1c1dcda16248be876d9d63ce1013cd906a888201284fa8b6f5ddee3220c46981662c719629fd1784f84f56183425ce2ffb4c0e09eb4", + "14902b2e7b9d8e65e43ff5dac92971fd057115f9a45f29aaf640f467f3556e6772349fcd1240975fb693bb8019b0766ebbef83a6974085fbc593c83b12e18e7a0ce0fe2e27ed88a99681825bc3c4ae980b64cf73acdd002b4a65b72299938ff6a039164cd3a13f70829229c12bd756fc5a889a329002443b86051c2d3fc39d8623ee020ffbd30f5a352c99b1beb5140354383a9f7606e21df0358b2eea162e7024d2c7c3fdeb07a9da32f9521575de" + }, + { /* i=9133 cDividendBits=2304 cDivisorBits=815 */ + "1696dd84f8f4a8366a215a5e6f3fcb7bd08760c6458a37fd44412a5b3e1565d8c2ad019b416486c9e5aa475b9fc2ef34e1f9b986adbabf39b57233a3623f0b9a39500fa01cea15c67408de66d3cf65a61279e286d10744fb66673e8decce100c229cbb14a451344bcf584845ad9fd349427fccc83fda64983d4f118af08f2464ac9eb97a94e2d86d076cabc07c7087399c8ab0f7bfe7c37b102b5225f678f0f5a6a877c9551668ea6a90af3b72b9ddebb17700fce40260989bd1a4c14fb9d709834f20f12d2d1525fc749d9eb1024becc3d53c3beaa9a3562b686322848444df28bca24681154b5f246c391a2dd4b951bc097003bd047021539b769f3214887ea3bbc442389f6b74e6ef5f7b9a128893a7e6ede21fb8eee1e986230e88faeb75", + "6caff56853c3a86357918e35aa4cf6028e7eee54eb0d53be68616f484bc530e204cc6f941ce76a171bc55f5721f2c7e7daf20915cc9b748c0e3ea9ecfa19fccabe1cd4ecc8a51376e226746b7650a150ea031f594d144bca46d64cd58aabbd48b0c65e92f823", + "3534d8a04ea2cbfd6afb271b2071a013d51206209807f41de6400cd304fedfc3a3d6e284a6e9e5dcac2bd1851a8ff9fef53227c6b16671475a0fa0963226ff7873f7428eb61f8f0c310b3a6b698d34ad78ae4c7f2b0f8041ad5883394560ab189ffb998072c0040b30cd22fec10067b4ab52f585cc9dacb310733899a7267b56a14d1690e1e55fa4201286000971c3856a65ba83d3ff4b92f344d5d4a7108642872719d06e47386b2799b34d42f0460f9f049ee67095c2d7c0ea", + "3512aa20d6a446ba3b8a1f49b35a6fd6d86c232c80d79f4929f23c149ecc00e4827c0025e060cb5ad9ccb35558472aca8923c52ec5c637c7a4e31dac17bef2a1878d727b1fee91b143c4fd12bc766fe7e72113689803afe6fba709265a5bb4af3cf5f124db77" + }, + { /* i=9134 cDividendBits=3292 cDivisorBits=2449 */ + "0f903d1140123620a0a938586adaf83979f93579e7af12f2dea2d07d474532540451d793b10dbb57a957d21636c7cb0963844d1a837e23215e25801c3846621bd2035615e510ea882b80cf96b1f7b881f4510cc9bcf4f89b91e9ff046a1ad1d9999053fd395a3e06f0d7f15982fb27598b4a1c904777ea257f48e8de8034ce20015b03d49d9f71d18902fc4b565693a16a7455dae212e989c9013f241476592d3eada5318fbb5d6bba2878b1b54327a3080d6e5c6bc29087a9dfe900b34ddd4df4e1a28d703ccac8ffa52824dfa893caffff63e2bd3dcf1c08cd4eb231ffca7eff6cf20bca15cd4fbd7d7a19c81d3efc553847287b0ef0eadec6bf7239703143d3829683dc4d88ef612072f909dbf6c75ef6a793cddf0bcb467448a26ec981ae666b90596ca967663c42f904c0f512d75f829c30cd6ae0463235d7213a6f65f81ef32c075d6fc350c02e4c92b96e6b8f2253cfc60f79ae5d46470946fb12e9f081d6f636e522f4345ebadf2ca1fe5275fa3a48b192d40febb27f014fd2bb5b584b5f6dd314ebee96b9e230faba0084cd67099579d1ad8f39dac57b41", + "01c934796dbeec0970e0e345bee36e47e0fc953ba087f07a7851a1b20c36ad4088962f41be1cbcf74dd490daeb07806b8d8eed9a4bc96586f13f12368e0160919247e89aab8906f45e189e0aa6376fceb5d99273c5fc1d136ca68fcbbd6d40897509f8515980c2366f84e0b2cadf382d253fa05900209702dd7c262fab21caa21c258771a64da6b79fa1b92edd8264af366c0e938392b90d7fb48d92ec1f2ed1e495f41626a9156206ba0ee400e0c35b9ea590a68a8d5e153587aba6a371457ced3c81dd01441a04af4d4bfbb9538b34410d754256167bc5648c1442a3e2433e3d361d37fc0532fa75a55537ee4479a34fd8634ab83f7679e8fa436d0865df09bd6a2f92ad45d64ab25f220a75df6ae49d6a42e686a74ea870b505cbbb7567f6b04e527966715c5eb2292c015a85b373a697d9", + "08b6ded4c398865707b22f6f1ef57f791b6e0b25acf7a42727c1251a03d75dbfaf18c4fcb1d25cf76d34bae47df8e91587a98c12df1abb707cb5efd6d1c42989fb5b4b9171b1976a1b6445a37b0e85e5b4e137ea40f1c23b5a37d922e44b61a558d8ca87ab710085f796", + "01a926fc418ef5cebdf0331c95361e804d5e48a2c0cda5ec509cfb37379c68427d8fbe6b90e70487a856e2fad5d7f4bc69f5f560a323ac9632b8cbce587b5a38329f633d74a3c03d5250366b47882b15b34484c64e63cb5a199376ada5d7f6bb977d3f5fae22b802d4f977e67443e470dc767a4a42898a430f2035a620a8879863fce5a76180a2a74fdacd7a1c1d03a3735f630fc0adf7926a837306aa1d30624c0dd169913b6c6e7481a418c034066b83f70bbe2f2b1a866e405db62a5618c4bad1fee7ede066a06c6fffce1ff6e3775beed9a0bc6d6de2d4c60d3edc8f57a7d0ea640887fda65e159182e44f7b5120e35d399453882f66edee394b8e58b08d357458f606551ca8af7d80299c1026cc99499205ee76c83ced612d0c1821c19ac9e132d3822789854842219802042876e9231b" + }, + { /* i=9135 cDividendBits=2675 cDivisorBits=146 */ + "01a699aeb4ff88aa3f2b9f228bbe1cfb6654ae2496031a95460c2c219ce965fd4bef27604965cbc09ca8f5ea8a2e0b4f8956a4f827e626139448a2cac8663c8299bce28db79dcae566fee4114b51c1ff2cccb7a5eacc6a4cf6b94de389aafca3245e793fd210e4d1cac9b8243ef78a553cb594fe369a481d889cfddcd8056b695e9834bfe68193de1443019ec8a36a7fcb8bc15cba9e84241580a6d5fdad4ab05262e1d5607ba5a27c19992223748c667cdd68e1d6a7b8ab2992edb936af1a6c801fe7637a9a67a6a49388d48c417281e8ff236e809edf1b062e2c98b8607e76caed71d038c78294ebe889d20d590ed9989254d48e4df1df53d3f86a1019e3873df2521484fec88e5cdb61de59259c2544eda4a0e54c1590029d1366e432094aa3fd781cfafcdf29798f6db15fdbaef13ad03b0fa8fcef2cf58bc16c13da6904a002619b6bdc218e6cbd8c9347feda", + "0149e13a4f4a022291601456dec7e74a76355f", + "0147f471bb96ae7b8fbcea010b75a3a50c88c770a7914abfa02518bb762d0feb067fc476609a3de343dff890147e0fece30d33b49deb2adf9e34cede818a76e219a730aa2cbfa89786edaacbfb4461fb8bfffe379f0a683387173ac9e62953831448cff62e7eb1cbe9b25df5343aba1c9f57956119728581423de7ebbc2660b4e02fbd8e05508fbee01bd7cac2b4de0ca4693f1be12679f2a0c66b937e95cf46975707c8b9be1b58e82234b3817d065772a535611e12230a801ab2e957c7d96594639ac6bf881952cb1c54d19d0616dd0179c1d84c42c9c8f4ae11de1fe23754ef9950c7b32fae8fc766850a7bf94c0c0139c032aab12a6368f6ac49d864453371accf15911cdeec90e40692e1792309d0e9b1aa64d29af9a12efb831f458c682b108b22c25aa7ba3fac4356f71f0d6748022aaa2a8a025a52b29b1332", + "21970a9ded18262c984929e4c2bce3b6854c" + }, + { /* i=9136 cDividendBits=2811 cDivisorBits=1219 */ + "03af30d921d208a332861ea5aedcbfce2c1f777ad79ca0627e0e04a8016f6f09bf1202513b9d58292cc1dd6291f9f866e07e8b69891ae398ab336607042ca7c8193ac90be740c486d856e1baff3997868b2b4ed4cd131432eab809faa5cedc40086dbae06158941d9be572f7769c8137e0d2a59fa45321b2d94a95797743d99add9fe482a5ca60a3137a75864c3a44c0cf196bd6ef55e7afd634318e3f4e38a835f3a76a28cbb0553bc62a85997dbca09f4084a01e93528fd7793c1f786db168dd792b0165f9d412fec35367c6b5d64a7b2d806a7783d39fc3c4fc46f6fea17c0ee099cb438fcb0f4ff8ee981ca6447d9acb13ea9394153b66c4f3a0291ce8c324bc04383d033f8a30cbc8e74d032a7a3f4201d4b89fbf8c063b7c95d8a4d72e1cd8cd656dd7d6191898e340b6d4573cccfdbf622ddd729c6ec4b6ff26cc76ff5ac3f2fd25610a69fa6e2732a9f0abf9b7ac5e54fb8a0ead76f411e7ddccc14e", + "0689e051dd984f21413966305c2ef4c2c48b70f14be8c1ad3c04318b2fc099aefbd11cbfc2762efac4459e65611a5f9884ffb8d09cb91341a2831da7d0bdd85f8f7f12cce77db17371e6aabf77282dce2900c13e23b0c23e73e893a5450664b05ad3623ed2617e4f9bffba450d2fd83d86a88d07b5305f34de253480fb069e8aba717d128f50f80cfb70a985f40acd72133c7495ba19dc7b8f", + "904007ccdf490153ec3c67e6e302da1c207837403dd8317f1aa1d6fc3bdf374aff454a69d026f8db2ed5b4b91af81b1bcc502f9ecb3ba93de912d4f9af63aa9f68c93bff1990b3a6f5dac33a16cf6aa61c381c08f02ce73002433a97ee8bb001d9caa2df96b67dad6fc3750791b0bc0a99db17c2c16042bb13f407018c509cc498c59c99bda5a065e0ea9edb7d66db94a976098892db8f8d55e80edd23c59f69cadc83de0ee163ff4f40a62b72ad7f53941850b6d98236c6ce3cf826f93000805f8f241751a13f", + "03c9cb0e10e3be0c3cb275cf0f332c6504477ff7fc01e7727b72886b3d744309e05c849d981013a2f6e3ca7404cc371c68a389870e74516dad175217299b8efb3016531c1cb3397b57100c0c9205dc096f510eb054034f0180b145b1c203d4e036881a66ce3ea83585b40c650eeca16c6023bb61a53406df27751ce66f59acbf85d79453284f182d7cf6ff8b734f709f5e05ccefdee5966a1d" + }, + { /* i=9137 cDividendBits=2476 cDivisorBits=648 */ + "03fa9b1e03a56972a8caf49862818cd465e5a826abf11a38ad1381abfd574580a2711869955357055252ce577e39c8e481c481c33abab7e63e3386e62edfbea44e9b054dd31388b75022c89341bfff80e4fead8810d4459014907c529200f23e906cae9c7ce8c9d3defa2e45a80c4839c0531378906735645de2c3ff03d37d31ed97280aeacaa95a7440fc25e6537941cc59c7e16f5104e0b2eae4cde191d4116f2d335d8b7c0c335077b58aafbea831d63a246dc7b7cb0abb47a36e2de2e4594f74c12774dab0700d365aa641c3d5157b37276c3deff0e309652f91a95b93865fe9d9a39b1d0354807a5c68368fbf931b47a24b15b119737241e9e9cb8d9cf5251b305825589273db3aa65c8f5ddda1808b1a2704c5c63e6b91015af1976f44c898d909e1d10820a0bb696be9a2cf639e4b76f7dd10", + "892f02eb92c196b133d0192ba75536b37d47f18191c9103030ad6eae273807a5f28c3db112574f8df85408d697de8e6324ba5c07b3e67559a6531ab45ba5f34f23822b8864fe30e5ddbda960801767a9aa", + "076cd51e477e8faf4cc3a6f813dbd9824be0e47e30391564186d840babe732dbcf17d820bf076d90260d177b7a4c5f820f120bb4170f79c0ec5995cb0cb7c25849d6fabbe25482b1fcb8377a80b01691eff918a420216fd12c7570a3cac66f0e22cd36d5aa3bab9be54a7040d4c9bcb0a0a55db837e7d4ffacf299d981809080a7a2e0dc80514b6f7b16b57fd50c34d81485a4d4d02ae17586b32c90ee851d2327a40d67149d6fc04e198e0d5730cc67c4b4c4918c1cc0f7f8837c50405b196912a44d99b425738cbc4ee6b49b93162dbbad8157b7cfc9c4d95ee6437fe46d9a23473a4830", + "2e7e35bac8a7fb41b0408271bc27573fc460317a99d081754c77251b05c9cdc54c1ad59d0876cd676e84f0f804f0298423b1857f867c40ebb0902aa4c08cf686bde8b99ccbd59b4d68045bfbe9554c3d30" + }, + { /* i=9138 cDividendBits=754 cDivisorBits=229 */ + "dc78adf826619fd1d343586b7ca0a94e4486a8022bb8e6d613a37659ae7e9368eeb50e1795167ab4916ce676e86417b57969a83e47155be86067da4336cd13494acb65f30c6722e6eb89b20749a574cc6df1d9756ad18aee16bc04ec4f7b", + "0d89331ad96dec920e2053559d2d7c5682f500754da30f92358dc83512", + "1049b11038a549461109cd790d7aa0e9fbd784266dce059778378f24c4f18112402a238ea0cd715ff58812f078864d3fd8867f02bb9ae9e87db1a0d6e1fe0d9e8e5b", + "095721a95c4b74a1bb344ed3ddbbe71dafbc0bf503bbb542eee6357615" + }, + { /* i=9139 cDividendBits=4069 cDivisorBits=2899 */ + "11f24ff2e8b1ea5b29a5af6520678c90671372cf4b12baa489fdc6935f352f1561474f461e94947ce6f105df39622ce24feefeb2186496a6f5d815517bb8ba124249fe076906385c03a50a335b08ed7609729f3fef3b6054b48beedc84f724bfa811a6a3f438542b1bdcbcfea0005e7bc8410bdbce0d24fcb9e24b09c4119866dff1310f1c216b2a630cda086198b4be43e7b5b691c3e0dcf04299b4b15ad15aecf705734d37b68cb651f9465e8a4342ecb608f3a4ea9eb97e28d02583c1ac19f87f60ae9fb8702dfb0d49f124e391fb0cc658897c399a95ac61c323ba799528b6eeba5347ef7e7bab6ec2305f054ecaa71ee21a972bf817c32ac3fb1a7d52b9470ea1e782e4fa499aa01a4eed439eb12b899408bfe0630a41758feec0be3992f694b1153442152a584ef22d95e8ca769bedd4d09e61f2750fa51652c05e19a70140d777f292dabfdb4bd2d0f242c4ffff1cfc21416766744d447a5376e849d0675dd02972ec6db45af71e6abebc2d2e06f5debe27610aab8b70fb928aeae5cd54587039e4580991e22fc8371a4abfd82cb24894c65b3df582c9d2624520a5eddb250a4948cb638417c9606b9054b4599541a1be86ad9a575a1c043d29b559949331c98499b424ff9d823e6b090faead1a9d07850bfbaeb3a2aae87bf286e60cd804e7d170b7fbeb2df85d12b52f35d54ec1150a3d31a0fb0ad4566288", + "047294988afb10a6de1a07327813787866b06ac43e07a3621969ae00e54cba19a97f2d7fc8346c76789adf9c65bdd60a51816f9cf10324e26448bf14dc9836b50aa7805aedaea34976ea031ad38b38fc60237d1553709deb49cc7e5776fc5e5e6b6f5df334b47414429b41d7c40f4189e3f5a617cece065fab3ba9091fd6b623e713e94c017bfb18072e8c31c2998ee069538a3e66bc8b1295a4d18675f8a27fc3e8465bc152424b61d579d8291310e409c1ddc2fec4c333934113688fa008424ab63be636e7be259233d8b64bb449eea326caf9ad3be49af5e39779b35982693adb04ad1bd09aaf729d69b7da2b3f7da2795eac6eec68b1b306724371820ad8c1682a5c2f5b3b67c4bfff633ac49b9f33d6310022379a0ab43ef3655645d88feb459788a529b6cc3b624bf0e8b03643a8fd93e3977e3fc9c463d4ae2b32574828d13d4a6be2ec66fe890ed8957c4dc38259b80af2bca47c296f3780d1fd1765421111fb0a6214f83a450c", + "0408fdd40d2dffe6f631a6032dbec23c06b891f729be282d36ef128b216e3a58fb21daa9386242209f443dff2f23a4b031761ddf3069b41a4e0e131ef31448ab8b9dcb18618105e0224073c5f77766057f7448a25a1c5f72c7fbd15b0a3085a2d37826c749eb69fe3ee544dbd7e9d9c04584ebdce1701c658c25f12a22b1f883086dec464beb068e861f6b2b87546d41120cf5", + "02d0588337273c96fe5a0cdc659d2f7b0583c083dfaecf95155218b37c603f6f57acce8c53ea9579337745b33650b624ab2d9d490e0f1335f7d5befaa52259fe4d8a78fe9987de69c93caa869d530db2e04554bcf803727496182dec0f1764bca3bb8e7c89bb0cba6390c9b0da537fb6f02e1c3c62e4b28a6e61c0f8db1c88a928a10994947e6ccb3e7db0bfc63be664eba172933928bbaa47f4bb32b268b1fcc6ae3ec89c28b97dd8ee65e27eabc15814d2e8874f171ed9b472d35fce7cc535658ff0cd76d082894bfbe4eb9c9126bd45f874b62ee58c44a6faa2dde4659d69009f77ccd1c6d2ea0e7fc68573b2a4de025c9a029defe9c5f78de3bbec4662023aa0d565ca47604b6bf925bef06f1438ed8b41f07ba336522949877e98cea23b0c117a329ba83deed37df32a680d373e501e8971dcec3e1fedda457c3e19956e09d19d39a865f08acfa9bb707fd63e73519d9d31f2fc0514f44881887fe84ed6b1ede8fecc8b99a27dbe0c" + }, + { /* i=9140 cDividendBits=3602 cDivisorBits=2183 */ + "031d074df98c12f02016df94f16bd79b51b85ea2903bf900885236bcf10bc993ec415a3f37b3195c9aad368708f6c5a2ffb6c9c7e3542423adee43a39d6c6d232493ed5e100915b8e9763294f179fbd2df88d75efb4fc8d74b283291a50b059038bad12ef0620eafa322485eaa757b9ca90ab082a3367acbb0141acfeedb2caacbef01e207469740682a1bb0a3c7825d8f6539695c6fd5798392ba74df17d1bf5d6d2773e4491e948b2439ec6471b16b0867ec5936d2fc10c63e92f745714327eb5b730b99715837225b022a52dfb2135b9811042e24cd2b2463de19c29eb91667fad9791cc7cc236486c53c513bd37f2cd6ff3818037c92245b39a5af6a972e81e5f8470bf3f2f02e1f1bea312962dd698dc61720a1022a476eaf713df3d8a9ded5462ebde7efc9c0e806ede3078cfb1b1276d3ce56a0dffd7f7dfa31c437c86feb6637d77a26597db9c7f1dc992cfc01f132adf3625427852fb910c3e9f5d24bf67b9a263b72fc317ee9df97f6c5028c4dd63f63d494af8b5554a6a070c43ed24e74aa27f14eca7f3fcbe9bb665e8126fd763650e6a21b47868a4f7f89d97d6a9114ab21b3e7411954f2a24a8f6e64f5a80ebf9b08bbfbe945af439d91a19aebb297", + "26c93d9f232af37d5f0955fd780c4309d8d4c02b38778b02bd4c2335a4a967623e654b96333f60b1c475e552edd44d46b54af1b1598ac5aef8d889c6dc3a435373e8f52a0d14896647ebbcee17c4ec884031e55acf7e7f3f145392cec923153093f4a2920027d6378782dd2c8d0d9f6f85925a8b1eef8bb45fe7819e4be12cd72f57163aeb78558e8778946aba238dbb037d1ecfd6eb6397e8ea7b12abcd99358a02d4ae650db1736abfae33d8b9308060d1a6aa07e94c1510c46be97fffb918f8e700c75c3d0f7a2a4abab1beb635257969ca277147824503f3de22795b436dc75a969ccc9a25272e4b42593424099c9c5a66721e8a3daaea36083da72fca8022d45a7987ffe5ac0028daeaddaf8ade83", + "148ca14a75ca162349491957677649be59167df9bb518e5a56d039d4f3a40b722a611e52925fe364efcef432d1e499cccfaecd4df7b32f118e00dc282b36d26f64a432c15911ffb5af91385e34848bab666372bc611f8c9c60d407f729c9a7bdeb76d43ffd963e827a7f8a52a709e452beb51e37e977615e7931e1edebe106d0065fd667b590d42337b1e4fccbbc1771dc5c989ce9d6448fecd5ca44bd9620dde10f75a1e3b57754eb5986f407e0f5b5dce7", + "19a96cf35b2cf456338144cccf223f9b2cfca08a205f7a015fee9a9659933b4bfbc32b68a448a2ccba8ec788d63c8d7d81ca83a6f48e296a8c4dc521734053ad085812589c1df55f2d1c920a25fcad070d9b509fca4f573f1ea622c03e747549a344a318725c128dbe63233cc66d945f92f486ceb894b76f2b65e58c949ac55c3f8d05e3a8aa1aa173d1a6c491350a1245c182ec3110ee29f0e7dc142b18dfb275e69827f33af0c85fda5976f91dff871d61803e8a5559eb712a04ded2f1de9fb0c420b976f4b41e054cb2bc16dde8962d1d15a2e19ab42108efe6738a5d1707b22aefea3e78a9a73ac81355737b91e9584263219fa8d5c21d909aeaf9def06941bf56f16ce5f759ba000bd4fa2bc55662" + }, + { /* i=9141 cDividendBits=2465 cDivisorBits=501 */ + "017cfd83aecfeafe07a51abf23cdc58e332d09c2b5f9f7ae948f054f7ee31001155c1186241d24d91a0d3713b48edd80f09e42f0b8830ee3025215f10e841ceba1a453e67e913a1e2188981ada1ac70c33723a56ec577c887235858f2b3a21e3d77f8c007607fc66c3b986056a5df4da6146353d9a0adfb9392334d11a71c81e6c59ccbde74ac356da11a47fb022ba251629cc7c0ab470315f3fae2938b9f905d71cca174691d9ac1600092bc9ee435641599b89cb6ac5f05ec5ea663426689a103751dcb3b554e2a1310978cc1f817e82dd53f1a9fffef07c1ccd0deae187195532a10f961d08245b9ae9b8c9a9f97663064ac136934d5a77e8a69ec5fc394017ed4480efec279b64e7e3aad2c7cb64f0e93ed6803acff3a6951957291950368295ead1b739b18b80dc6b4eb8a5a6cb1b9df2ccff", + "0cd29c5b51a4675d98a6d745a162aec3742d59b79416e0e2c8ae4e82dcef593cfe1de92fb82c9636fb437da835d396720048ec7428a54acb4c4f57a26fea56", + "1db65146ab4e4f9f0ea5a9e3e58b763689e0d46e31c885d199d7fba3b137cecb6800f7743cb04ada10d62b0d269844e32873fde5f04a9b157aac78276233da167f81fb978994a199dd2e6c4d21bcfbdc2278acac1b92553464277e30bafd03374c47ea9dd29cf37ffa01cabe4cfc983a60b6ab734bd4b13eb4c75c4cf2507ddc6300b25cbf52c670f774b51a7ce7db624fde60dd4b47f58a822364258ecf0dfa4c3706996ba3f639cca5853798f3415515e22f4c77a7a5083ac88386dbb36db5c36d13e7986ada8d5f8c1b75e217db801c52895d562571d383c1bb50b6cbd7b1fcd9287f18384cfcb788402801e6f159c792f37f0b16", + "85d7a6245e794477dcd5e6812d81e96a1b7c6073c89d6cc3caf4a77923c8b37400e270d978fe75c536096c696bab511e08174c42865c4922e597f698f79b" + }, + { /* i=9142 cDividendBits=232 cDivisorBits=76 */ + "64d3ff0912de08b7e7d65063f3b575d87071a2a216c8f2ded8ec6aa49d", + "084b095c417b6e02b6ec", + "0c287652264395161bd2d94844ff4be3db542c54", + "398abc68cc72a60f2d" + }, + { /* i=9143 cDividendBits=2499 cDivisorBits=1519 */ + "d1c1bf2202ebf7ac11f4c2e9bd47d378a393a98cbf61e8fe44f310c10a1a42daae9a31617ba7797467012314a508d24b4b2d3d4077333b462823b51971d581d6cbb6717f9074208e26ad55208387bd717be036c198a623ed4dade6df61a74b03e38927c871eab5aac8b09e8d7b1700da0b95c9e2177be2b4d643b8b45fbdc26725ade28a6b297da153715f54361dc71eec02d4dd09742eda845f382a8d08082d481f8725da2755e6ddc3934a42c174955c5b076f40503dbd515ba01732aef79ee8000d581fc7decd6a2e93525987fb73bbadfe1ace03e88c6081b722cefb4971b87e380c7748ab5f547c3ebc08a42c2f521f4c9e696a8aa37487c0eed118007b463121f7d67d127a4427479d14a4dd7c95823ab43f012c871902b944bbedd428b865a6516f92202a5c97824345e7cd3a2d8bd8931d9f7a0c", + "75cc695c1d7a59f8bedfb8104ca7b7e0918e69cc3b597e563a8d42d116452dcb39e10f5c669162cf4bf0665e9ccdaa13ae9e4fe8af1a93b9bfad065e6af423567cc959f3a09ae126d03226c42ebde07427594ee00d65ffcd1b9a7d5d5042ee70302dfc8fce3662d0cd3294bc8ab52a8fdf93355ea4283d4c1297427286b324360a826b6de81a1625b6abb89abe36d39e7ee56937689bf0d00d965d3afbb5afaea586778d86e4100a1f5244be355cfce3c594e746d167a1854f6e0639578c", + "01c7d818c643000665e1dd2ba0d8d614cd5b1a2aefa914f7e2c504a4b634f009c0ac028e1b7dc1cbbf619fcc6e38ede28634f1ce045d881357d45aac885ad870de380827c6734638fef59f8340791be65ce888e102e02ef5005c8ce2179db7de4b8ab8529ab5b51054a61f2ed8ae2a5f5caa874ac9ca796087756d", + "38fd39e13757572997b2d6aeb3f0c062d79936541ab1586df27d5fa14592968772edbec1607966c6a7ad658d4dbf2aa9691f065e9e336621ac854f833b13e5c6af80e25a629923ae44846bd539635b03b90ade1ee77eb2583aeb905d35a9b511a9ead7ba9fce3a008b2d0882768548ce8a6ad00900c7b76c883c909c82c77c1d8b71a91a087cfed14ce71393a4cb7570bd5cac8229d6f7ddfea3b442af758fe45d05806f1b3ee29f2bacc7f3ad23e45cb902aa45271ff0061ba4975e3770" + }, + { /* i=9144 cDividendBits=3724 cDivisorBits=3460 */ + "0ef344e601958c6b5fd7595c26742679aa0abcd323a0470f532c09900722122691c3058fe2c7322d3c1fa405d0819ef120c5e4e60697ae7a34ed23db7829e4058c1706a36e3b5f8ef9cd152cba47e65ac1b1841f6555c750e6353161003497eef06528345d621eddd858b944b682a8ab00c3e374b469f8e272107ebf8c07e6ada8ce7bcf98916b56321c2c1ccaac366eb0ef843fdd0ce8b3ef99cc46087c6873c57ec47ec86535408d35e94ab453b8a89068751d0e1f4851f2c96728929df24eb84d12b1fcfbdc215590c1bdd73a8d0170c73fbced8c394c95f6cd4255bd73a3c0a05d997576239e374980199674b233bfa46aa0551dccc552d70fec0eac3335aafbe3944a1dbf8dc0a86a732d64c2e83a55df1b67780869e9fd7f78928d53a0e500b776f48fdd67652e3da24640e09cb77082586e30a7acde55d64ffcaea9b77f3d4128e056f87d95eb94aa5a9391e0956b6359e1a775b8f820994fa193e6debcbe4d7de6312d0c3cfe1343ad9e831d255d993208240710e4edafe6f8ddbaae49aedcab2bbedbae2dd44d2b567c966aa1331a79bd6684348b9120e64d5e3fbd8066b12bef25cd3fb50a94f2bc781db4edfa83a33dad057f8d54a801a32c1acc28aa8920a7187eb3f3a9c52739ae426b0236", + "0aea2eef121724557a981333ae01c3992739373f7099271c266ca1e0f3fb077f3305004521a9f0c6888ba7a2ee8e32863efe535ef7ae23b27469cae8147fe149dca40ae636aacca21e360662f5f6b2ff7a248ab31e74aee1af0abb876a29e00989f7c4af370d6181472cdae4a6cf558de8e8ed7cc4999bdb7254a3228f248cea099e8ef93d8888a1e461f0a92d335c73905782b14aa598b5c5a273f1e5c4e6f0f64e169b1c8c0d7e581c8004b9d8b755d2e476f38ede21b7d1dc6d8dc87678a7be5a56df464fd0a8c8f67db4baf6ca3d06b5d47b1b94274195d93d44daf788a27e61048145df2773018ef2bf9ee242d4324e77fc49f06041448a3d153bef856df0cddb9cdae61b6613a56ffe54203e1fb5ffbc094f15e91f7bf36298831a42e13d9ae4a9fd919382ea68245a3cdc61102331add3db8655901c106c17a6eed90c0a9ce7965c28204b6c7f72a66e231350d890a2afa9a0ffadffaaff71014292cc1291fa159afbf3ab428becae53d5519486b76ea512cef5a65213ae9c003e3d9512e30287d163493d15ac0339d002689c9ba183ab23156a365cc37d7e331496b37412a79ebc46f0678cf297d3df20c193af", + "015ea67267fb1cb869cab51027d89a44e5b85529c41281bdbeb7aaafd62639cc1e18", + "08b88a53b00e3707890d2841142bbec0b3032c929944cac90b32c5798ff6d28353c3b674a9dce014bce254851ed6cf7f430ec81caae5b0589a5aa36bd40259937d2dd2659249da8678d5d66fb9c1cc52f127f3ca4e9b8832aa4a95a5cad8607430885d5b46e088279a79344029148b6385cc043422fb950e9d8b2d35428490077b83f5d3bc551d52cf73cd985ec53eb393496e77f4979a44b13680a762c524d974931e8b6993256063f998b2e14252995b9735a41e44956ee076a91bbfa299f653017ad180803c422985cb27ddcc52f00ed43e7c5b6244a712006674538ca55e5d05c4c2321faf1824a811947c5b64a7fcde9d88d09de850e8685b9ff65b3207e5661e52cddf916b7276f6e76fffe392e6ab87315801c1d0ab0e2e3e2d1a9636e190694570f86054866b6bcdb02a691b55f761c2138c45e24949b1e3b9c7ba033d5da6312deb20757b5aa5293af499b4fcca450a0a022a1451681e0b6a81821eada1f25c30b64e59697c0cf6844f4f91727e9e23c177af6479dcf7186c938e930e16c4f9c5f5f4790fb45a917a3f39daad1eef7269ac97dbb2e3f7a74d1b5e4715a08fa4da89953ddbdf2cccceda82a7ce" + }, + { /* i=9145 cDividendBits=2559 cDivisorBits=849 */ + "191383f3a83b527377f8723cad03599c983f93e003b73c73e7d33a85ef49864f770a8bcca253e5bca1fe2964bb770dd23fc643b34cee2ea48100ca6495a7db5b1156bd3f52dd77cb8ff8b5a3d260e3e3fe2adcfeba97098be421d059d4230e1ada8e128fb83d34272d24d7acb9ad3535cf2b90df9cee296c548dfe89c20b593065a932ebb1ec4b2368ea799104be0f3537af0915eb8046cb53e408538ef394a2848331de3a5712468ef44fcd925e72429e8344279a6c03f3c97cab19b7d1a6f4ef3dc469d7c2137d03534e408e63911249b00f8f6010a78fa70ca2979d407a99b6bee08e68ec88b930d8503c4b8cc348a2cc46fe22be1fc620eb04b2a41b362784820fbaf1219b2a0bacf128c0e48645f64173eb4e10abc1dcb4d4a8684733a75501308274328ab990314a30c74664e09040ec292eef2166257a46890250cdb2", + "01a15e732a5c75f61b1ca524564f696773c4500b36e1bcbac4a7c843dc13076234b84884fada03ce04b64b78a2c6303abce1c041df10be86d94468f2b37eaf4e67bc2bd2784d6a92830d643d65537455569cc82336db0e56f3777bf48e17cc510f0f35eb12816f60e9006d", + "0f61838400146f826d35e33ef1152544dda81a84d3269616495abe3f0851983995497edd15ca2e186ce63faeaab40c86f3c91a80cf6dc0e1ce1a816458e8fba17fcad018631075f97802507c4f875a1c83bc4522027d02ce9aede89966b26875d75a700c85514c2aa3a8b410504fa95189648a858f84458a50e8a4a28adf4236c10cc003cba40289f3c5a2215424ff5bbdd48e4b49f7696beec25a6df504e39bc33c0bda8df35219ed505522ef484577de9ece9c8f85b853b44a8ada872aa7c44399f5cffd10636ee551bc63d7c3c1bf80cdf984ace0", + "cbb17f7cef62bb34c44146c9e899044e244851bcd1cc6ac5bad1c1561f7ba9c100aaa2880b960d6cf7cc1023848f0aac839bc1ef97fa8382d34db10f70f78c4304383478339fde35cd578596fdb1b5f519281994763bca1fc31dcba48b201a6737025a82bf206cf33252" + }, + { /* i=9146 cDividendBits=2513 cDivisorBits=2234 */ + "013cdc639e1865f09bba8f10fb2337a5fa3e3dcbe5d183c0432c552d8be1e7e56a9db06f2ea229504692c8ef69dde12352e89eee526593cd3bfa723a1a337b5bb1b1f0f0fe19c29d42d639011732c585df12d4f75ffc01f6e20a9d4868c478051e8149e0453bdc569e5449e44ff49a254b9d1e3717c4e9cf1f538fbbd015eb8d36fc8dfb7dcc84af058d1bdb28d4ca655a6e4a7bb75bd88ba13fd13d0ce534a00057dabe898e20a463ccaa1aedcded81c4efed2db82c52785f20a5512749ec3d9d95aa5be46a26b2e36b1db99d2cd8fb318b8440f7b318fbf2cfb177f6055a544719fde4504fe8f55b06f79e73eb3a7797f3ca8f51eb340e96cbf7c5fbb124ff1c4daaaf7b5629f4143fd8dbd3931f415919b4e5428922f379d7703b0589cade5829d34261325f7eafa0cc1645f3ed58f69b071c51e73ac7c5e12e", + "4d87f3c744de7d366fb46913f44cbf5c3e83002bb0a5cba9649ce720a5a701ee58d5242bd51f15d3183a95fa63250b00d8bab3af3d1c487dd82bd00d9a21f9a688c86ad72d5cba81f974797784aae657ead7595f1c3ea5adcda95e232e607e722133a6b99fdc158be69ab8e262c3c116323d344327f81a26047e1b83a594f723975e9e8334b6ff2faebc0f18b16207a95982caa34d74b71b3b83dfa53dcd04f6f1ece34688956d01019d988cdc98cf62132bc84b55eda47424817e29f163bcff7a74d9ee63fc14f693c83c6c91c1e0710b69572dfec1e6f71844ca3dad53284cf3d64ad72bdfcd43da20aec4d1660989cef757a7fe2d9b725ca90e57accb4c8ae648840c2e2431129060c23b2580ff22ae4fd6f8b94771", + "04163e6521bc56d87820d465005a82b2f125b397095963be1313d18e49e7ec26ffba2700", + "2eb21f1ed1663ab051670e533894d0b191f5f01bca9048a1915ca472613df9b1b94e6ee53a4f6ba868088da6154fad6827358aa9df33381f93e9f54c63c45de84554f76aeb8940a9fff5f6af2cd82188a3eb8631c47993e8c01fd79651cedb674b829d88d4e60c23e0f39969964abc5131199c13a2cc2d30975915b8a7e850e7771ca220cd331c9a21217977b00a7163c291396bfdf8a038eaaf1b8b54436e76f81c5c192f57b0f14338bf93d1448216772a7b301cdee4a79fcd89c833146242b2a523ab0a0c81ec423f7cd523059bd2eae957421d0ef6ae0b5fb9b3fe4db9807306a27fbefb42074a94bf64081b8d036156027369ce8dd1aa2e27a7db09dd9540e5cc60577bb25330f50dab87bb2100e31bc916c9aa2e" + }, + { /* i=9147 cDividendBits=2756 cDivisorBits=2302 */ + "0bbdf7f9b0218ba094d13d4ca5d93761a64afa0304aa4203f1a4beab7b8ab44d982621330bd1f018faa573202d6edbf755efd01257ae4891333dffe33bcfe1e6a8d91b1d88f9e9b12b6526abf2c226df66c6be919bfefedbb61fe2d786f2407c91d6829fb343d7e0f275e30b72125744d52dac0f7dae5fdb3f897e4b53912612ab4a300d386deaf8c502c50fda64bdd5ab418eb96023fac9e81e0a9459ba7bead76b5a9016020c28208c3413b7050a6dbc410f750dad47e343534d57ec2f3bac9872ddd277f100a9edef546d78a2a32671118387ccf9a3e9af5acd817a24e045a9fe37aef18926bb678b27c8423cbdaabde59d740fd6dd67c35244221425ba5b2a44df2ac8098b60518fb8102bc672098eb9d28bf0986d5678302438d789304c82fa6982a3ff446e8b8af4a27b2f067ff33fb84267cbddaeb59280834e4362aaf2e98ec9a208ff95e5927ebcb81ecf1a50ab23c47aa263c253", + "1e3df2e94852a3436d656fe41799c6f7da6a38f53d22ddeae28b1675dce419ac903a90c380723fab1f9188ee47c155b754f5e016ddccea2638b98c3197d0f37466921866bebb012b60e9e03a321a768c97e7a5a132e95c94984bfd2ed6cd64c9f961351ed69c5a233a4078c26d01a28a76aaa4504a911e12815302c69e3f394491e571db6af46c5e65fb227c4daa15ffc2a3229925c1460083e49a2c3231bb8dbebe95b7e57f180efc2195058b39b9383c3cc799f3d8dfa90e981341c08bf71df03fdf109f42bfc32cabf707109cd453c553acf7b0588f1038bfaaa67b596318af49b0429c112a2adeb5ee7b26e574f7f741b59b92f73a138829ea76716c2729aac7f9bc0e268a07e33f5c5d3a705af27d753b7fc74b91957982ed4893d531b2", + "6365ae5925f643a4794b1847e1adf34363d9e9707a9332ffce6c109288ad81d46e7c24e359ec41d08d8ec0e7a9911b43ce4de55f18847bdf8c", + "1af12d0032a70068de28e9050f79a8ceb94b5f074d14cfc91c54c4699309d0d6e434858de1b03fd55ea0fe607d46a07fb94da8b1189ba898e76dc451a43f1972bd3bfa77abd731cc37c130d3784cc1b40a07c213ed56faae6c38cf522d0c1f342f4f83b418cc54e2a0f56e4e39e74112dc39d290aad97c4bd0a6fe5bcdaab0866038f4e4bacbdf56f93501b8559a82fd48940d7584eef80c94a7a3a7e9a9017c913cc37a68287ca678bdcc0f134d2f95548075ccb9bbed8318d60e98a323b2ac6dd2a71bbbfbefe588a168d586dc184cbcbcbac39036403a87e15be339c636470f0547cabcadc6cc68cfa2d87414b16e2cd2f5b1ef228cfcd815bffaf6567aa6e1a2b114698a08c848bb5259735762924d1a4608662444e9c5171c446afc86fb" + }, + { /* i=9148 cDividendBits=2163 cDivisorBits=32 */ + "05602c26b505c59373d3645c8d68e4fa75df887079b6ce9d66251baaec5fb3cb0bbc75c9777d7802960b65fe06d41e2e97f05c787841a1fe14b1101a61f5040d92cc249193d19b581d492aaa44e15601786069dc1b58b8c9feb156790a5d0e645f40d22bd747cb310538b9d6b3b8b09867742297f8632668d4c2845b2ca2979cbea6dcf16d63f32ba6f9477843ffeaa8902a815fb7efe2ae08fc01b9a4ce56cacfd4822998ca2b3a9fa056f26992f8075aa015956bbbcf9595d3a82eee5739bc67fd0f1d8b8218b002611eab4a834bd3a4a875f64c60b43deba55ef4da3f2c1b543d634fcea2341bb38b055a55a22f569ec17122ace6778596b11e8b6f80bc02c58afe7f04ca0228a1ee03a5908c3c", + "165cf787", + "3d89999aaabc4ce9d4c307ec96063158ddc699e411ea9fde826022c4e178c610b96b84f645cd686980c8dc19c90ab760fa3c0f3b35a52a81d09c3cc3657432cdf9f1f282117f4756a5353f46349b1172871923d9df6c56087a4412497939ae02fe71335ce4967b0c651d8d0daffe4804552746396c0a537eb129aa5558f98c865f2d7367ac69e9b4fb3bb09f94799228130aba55ab28391c6dff2d5e9139f412985e3fb36a76c8393ce495ae17d738b735267e4fd0108957dd4511df33e653949cd4309343bacc36608eb4e4edfa29c3268392b24a4197529018bfe8ec82c6c5bf23d9e9f8e9c0aaa397255adfbed104b7715c1ca267918859207432c625eda6291df95aceaa36b7572257", + "13377f5b" + }, + { /* i=9149 cDividendBits=1806 cDivisorBits=306 */ + "15fb99ed28993746832ad3bdd3fc13e6edddda3c66268b3435bb3cf3ce50f2cbc4498a7f29689a69a3cd95d4d5a082861e8f04e585edc67cd758e48e8e677aaf69d90d860095b75d580e932674dca9ffd09b2575d6a08c6a8d74a7af4df33d4034f52c8f69a8ab0ec8f6c5bd69241b3a89c5684d603dce409f12b7481f4b604d7a3002c3af845f4f2a14414576c8f263449f9ec28f6ee2c2258cdf456fd60504982026e032b677a46737a90d8dda8a09b6bf61c7b71885779f14b26eb34234e071259afa03d7864f265b61102eeb6158402a28a36994394ae634b61ca56427bdf4ae", + "017dc810536560a1ae000a4a67392c4278d0475b11223fcf58084edfb4fe3496aa02f7c20800f7", + "0ebd890300f0e6de67bc27eaf8319ddaad3a72100981e6a7bfb8caa02a2f368d30038f146b1e63e3f2114cb861a7c42a4c19c70637f08d9499127c37ae23a36210d13e0bafe7da77224597d2bffdac10f977b944c765bb8ba64e7e86eab5fde9c4c7d9116de71e1dae57e9d1f9fbd6936fa4cc01b8b0eb8e3052c5a357a75d9cb2f3a5f64ef0edfe038254f383332d1e6e5c5eb401687836841a00632d9fa9ff472fe9398195113b6d900490e747220363625877a97f921c38f52d71", + "b06c44635f2630364241212fd8153bbe354acb9bd38087ebaf7092888bf8f6075e0925a71ca7" + }, + { /* i=9150 cDividendBits=2684 cDivisorBits=986 */ + "0ac107e1d5adfe80d09817474fea92e7946670e21964093b63b17929b244d677ddd9ae421b225f1105ace805f18bb5d59bc6d3003a931ca314f8b8ae3dc44736e89f8b38a33da052ce6b3e333c9f27ed669370c92499e2cdcd5f1542f0fe9ff216c0910d50c22596bb2eff671168f6832f8ee0934550dec9ab973748b0851cdfd2fd72cfec5fa2d7f18f8531b87793b98c581180b653257fe8bb46f6da4fe9f23df3d92dd2b504512b55319ce07be48cbd4eae239927e6f660476166e20ce11996401befefd5787691bc6b0428dd4f29b0dcd2f5a458cb634cda8bb25906d4cdf7bd41410a04c84b1c64cbb3f57c73b37f884f5853eebf484d14751e29f23127aa9acb44013e309416ba44e4d4314e87d19f0130781e17e29a6c7afc548a7edc4a283813748c8cfb9bda18844b7303144493ce5133a2ef3e8812cddee644f4b3b52682e5657bcfea2bf259b9cf087c92", + "0beaadd5e8d5a428e485186ae0240005980cf0f6f15755bbae88363ce00a47c1ce6a75639d80f961f49c8b7d58dd764b1ed6fbb43c9b450621eeffb6ab1369840eaef7197b35823bf376f26b6062b17a47a6206f45d12cb2f964902f003ea7d51babeb0d564e333f08c1411c47b475a50da0fad5310019428c1bcc", + "e705cac69089fa8c05ebbe12f42c2a7fbdbff0d98771ca7057e7d4fd45df7b0105f117523b87323b9c2a218b89a47efdd5ec53fe4e36713de9f0bb6823e1ea92e41667372bdbadc3f7c4a63fdf42d82b55a5cb642f894b78c8b6815e4e887b98bd8a30604974a60daeae7f9f0fb7bda241e80ed4ad51cffc191b1f81b4e74633c2d9a81de77450d58304c95db0f044322f04800123f2dd125e23bcaa00b8af490ce6ed5b1f695cd3d0924ab0f2fbccbcaf226f389bccf844bd48b8b9cd4f2ac0170d51b05a4d675885da2212b3ae7e58d6c2b9a634", + "070188492179fba9ab3b680c8568d9a851625aa3943bb425fc93b4181453806a42c6e50811b80833a46ee4377157a87cccb58bf6e1e2ace4c3e22f2a59a114b025de9bd1a14885abb5304c7f283b8799a5e8beef587716b8b45dfe39b67f1da80c98374bfa7ee7e356fff135aa60608bd4bcc0c0295298c2208f22" + }, + { /* i=9151 cDividendBits=774 cDivisorBits=637 */ + "261d1e147c7f61b20d83c2b4b221b9642108e9b7c72f59721456cb6c83344601a88922342212f359423141a57b43d42139337055de0d068e9b421662dc3998d7c0a22310f05bc4779a54bc015dff6a7df6e2a8c01e5a968b3d2feb55c435fe0574", + "17bfbb0ed7140ba20891c057c11c3accd41b613935d6c43ff29e52dbfa622150bd4ec4bafeca436bf5243a100cfc27abb43abd0d133411796e101ae45cd2a9c4d1864d0400835d09fc45c9936bfe8ae3", + "019ad81d580f4705ed8149c0e86c27d7ec5c", + "b2edbf38f7f700b242c5cb811e8656fc5b88711d3484ed8fb3772ac9a6124197ad940d3ee54b2398e9102492470e57fa7d400ee5657a165282341574075028f3cf9afec7080ace4e3f338784d5d7e0" + }, + { /* i=9152 cDividendBits=2890 cDivisorBits=1027 */ + "03940931c733653f56a76910fbfc933b902ad0836bc966aad671e6bac69c9c5609f7eee1abb2c4a6a6742676e0614cdefd19f12f1dd55f4d0878236e28ac0a38131ef322490004138bc1a32b8a0ff2815c272a322f66d74295d4fc8429b61a702588ed85f415fcbb6396f7683cda2ff3e2f1b52ea237b7cf059675e44c663b2119da9ab6086f727cbb225c9de519a8a661200fe467d46810bd19c5fdccf8a75b209e5852debaa68e54f7b17f01aa6ed19a4c8fcaea41ced62eaf5a69972ac81fa03d0a8394cb939b1794319a07f236720e8d91e0fb3ba08ae7129cab3ceb6af6180a82e7a4ada3e16a2d9e5361a75d46fbfa3b28f477437ab2f6c6eb89b4184a0e426a92c44ebf3fcd7bbd1692283a88468557ec2b3ca7e3da16acc9aec73d209630c9fa9fc13eac818f7709e3356d81cb72c5a435106e50454438132cc2a6b69729bb77fc7fe474a10b921e3dfd0751164605082d0082de08fe3e6d89ef25899f2b7dc2a1d7f33291d5", + "0597b562dc71479674af64c51f98aebdd5945599441c250f37bd8bf9aa1d8829e9e095b424a212aeddc48a04222345f5651e1ac9382321628e508c55c3660e6eb2fb63cf402ad934eebc4073e3415ede65640a74c7f05311d0729ce095acd47a78d4439230e7ceabb6e850dd0c2d2d8fbdeacc453ed950ce771c4d09eb011bc7e8", + "a3cb403102ddca645c6a2af6a2f903ce49136d47c45af034c8695e2edd00c894654c7ba06ce2dd8647198a76d08fbab3daa8a408e738a189d3d35fbcf04a63703aeeeb556ca1006a26bbc06837344c207adcab15392017fc07e15fd93e1cfd831ffcc66f6b31d34513af67720500d0a475d4def9288f500757ef5e7002e021e99b7fa9cd71ae4d21901942ac41836bbdbcf924e0b4bc976922b2ab83513c960b7ed14dee9dadb6c2d3278bff44462c84c285eee003408d255ec5d3ddebbb4071f7b377e1a92c27a6efb81255fc504be723d786f113cd7f893698dc90f82e16ab0cade032e64f60e70a", + "ca4f733e63f65585f723c416142936d398d8ac5e0458fb9c9ce9f330b47d1db2e6e07899d8354cbeedc932c565b14c452e0953461d60f008dab3ca6f9069d2db94198e68584924e7babcd3d56e8e40bd9922277df25de998ccfc9c553c55793f73ac1c23e907bc3bdf766e800b06a1ea19b26be71f60cc668254491e47ba6ac5" + }, + { /* i=9153 cDividendBits=2339 cDivisorBits=1454 */ + "074b5cef140cc4a407596aa9c53d4118f8f77e93b50211a8af7b75e4c35d4c1395fd45a9677175d2b4f5836f5984a9ffb8f96290b09e4593c6cd3d11f861bbdc4cbb928750a4e6b9c25af30dadac6619f336047053647b1acb69a9b89fd519bcda3ed15d9be41c03e0872b47455b2d75b567c9658a141b54bc5ee63593aa08d40a592c3daa68449f39fa77f48813071f7a6268d1b0adef1f72b9adac7504ce677060f5238354919911d9e92d0a6aa20c06a01a72baa45966c46f31985b42e124077d5884940e3849aaccd9660d768641a94f02718ca93d585e0ec149fd654bc6bc9d6d65d91dec725bc1728f744c62fc639f2fa7ae0464e1828664233d7d25eb180854b519451f96dd3da881bc1b4c7faaf6d19ca7fb203903aab2f2bbda0d526dd75c3770", + "083dde64764977668a88c77b90409397005bd9ac1ed401a490a06e63c7f3e7875dee10702dfe1c193e651d0dbeb1a098a859d64ef0cbaa5a2cd22cc8842fd0e85431fbbfaba8a9a2e43c898a97e5bb6be8a220a999d494df52a553a44d1746aa7bb11f403175044ac0848ab25724ca47850e78638e9408853a4c61f85123127f45d72cf8755bf68d7a11a92d218287298c2c613f738489b2c9540b106354f39c81f8107e3db98050f2792b4afa48df83fe7af9aa84a4", + "e2935f92dd4c8bd594dbd73827a96b27dd9a5ba4033f0c1402abbedae8c742eafd8d3fa683e0dd72f37a777ab008c47bd0d96978bd2437ede02c06501dd73aee3b512d7822daee0f092e4349dd4b3d70031c56289e0cbf46cd9174bffc4fb583b59dd18d5bfc5b28ac8cf8242f01f5", + "0177b58778c125928304705174c58c88d93faf07ca09948ac02dd9db5bb73d92d2aef1ca1c6d5ef044a4de7343ff999be5d4d224d85e15ac5c45ed50545beaa5b6748d5bd01e0d8197ff584da6bc8c286be8ee1008491aaf8f2bea20e4a873eb3c3e7a1648944154949d22205e9c595a4a37a5bdf6cf420914b066d0444ecdf731884b7b51d9c5cd4bc2401cbdf7e2ecf62aa9a7e0d6187655b3f2d4e5ee8a85a6c231f5b53621d20a9ac100c7d78d224bedd28aa27c" + }, + { /* i=9154 cDividendBits=2676 cDivisorBits=1437 */ + "09f3a1d14f4f66f1df9c0566519296b5ea66361bb83f5bb6cbc91e16f52ce4471879d43d0825ee26398c76b76d98620a19199c3956b137f58636ed39b4e35ea7c3485798bfe6388d3d52c68afb522c257dc41a92fd34f33718f545d3437712cf19d9e382415c3c3153a0cfe36c53e65e6a61337de55707a2f71164650af9d1449d84f85dc1fc6b240dca7e57db81c46fb595e576bd8ac68dff70256501047492a88a80f432cb6033c7e6288f52cc3dcbc53b46eb2b71ae37ba2eee12759d5c2a5ada04b12e0f466cf47e125e62868dc5a1e64146eb57e54f6c0a3c17731f23396df1f765fcb3acfb5b61ec8f868548030bf91561e5b08c97ab0632798e5f0fbae0c9b6186ab42389590893a88225537ee4f61a3985737b5b62ac19f4b01e157aa04676ffb6f8114f2e401ff5ea5f2ff80ccc915990f6abd92a935f7b6d651b3701ddc31cbef167051c81ddc5dbdb5a", + "0f19e10a3be1f63b72d331a36d1b3df7d699b7b73ffdda208f32b3645124a5aedc1365aac44d2a7b8dd9e8fca24fface5176333830de7672abbead78fcc39a5c0485ae11127b80b2c12e24c8247f9212021033c7dc9e68ba27148bef95abc11c050a6a633eca36375ae315f05d0829382f956e00d2d1b794c7250c00886fd0a9c2e8b4c542d43f86abbf06e2f7de0a99aecc5cb869bd535602849ceb43bb456a26518a4e06579bdcc7697728f976fd778525d16f", + "a8b4869575fba8ae7d1051212f76d02d41961b810e7068df6a85a2b12fd632c2ff3477a8e13043e79fc6d563912c454fcf981569dc02fdb6a19e158ed1145538184b88ed16714f2467f6b2e8f4c49602d52f41e1b0d2f9c3453cf6a3a0ba0dfde1ec0a36a9961b7597a9af3c878be0fd8976c38a416726fec881a00cb2822a5bb13ce9a932b2828bd707480bf477bd282cb05bffaf08e0ee1bbbaf", + "09491240aa5d2e10d902f407af9e2b8a79187258d96285955bf631e06db123250aad9e3d1a23660b15e0f84e6b0a6f237acfe6fcd1c99ba8ed39f46a5e1e236d92a41c53227fce9be11b9aac78ce572fcec3cf50cc1a582238ac2f6d17e6dba77d5e7e5732ad47c47d4f3aa497b1efc2bdd934ecb308c176ba2782419768eb47b0761f929a0111a2092c8131bb1c1828111131e08b59f606aa3311cfc64b6316b91eef44261c149b1a7ca74e4cb70214d8509b79" + }, + { /* i=9155 cDividendBits=473 cDivisorBits=14 */ + "62f8bd01b38b5e0337132c48f849b252c397b9914b297565265a8161669b00dfb2574de74de8b4a223bc39026a3fdc814ff25879d07882aef62038", + "0e8a", + "06ceaaa4ea18b7a4e18917446f2b2c51135e35c1a2f39512ecc40ef3940e834af317c0071af4a18a1ecb9ad32f1015c4f073b64ce22e87d1b550", + "0318" + }, + { /* i=9156 cDividendBits=3053 cDivisorBits=2445 */ + "0d0afebc55baba81d4b19c95d840230a3a6ff716f91c801feab58103fc94eed713de285360af382212fa0b6ecadd41c8d1700cc17065fb9feb9e5bd17b6aef1988f6dd887343429a41e7c359f13c475a5d10c9d2bb70aed9f56ec7f07a03e9711212fbf261cd214462cf52d9953672f1a1dbf2fa4038089048a1193fde0b0d48cbcef398ba285b1d1678780800aeddd43631c1d0c3c4bea5bced81b448b2ed0184fbb2d89efff46f402b7c2043655355e0a694d1d3fc9c0875cec328207ae0c6606048a933ca8d8b1589d9956bdba56a977d9073aed89550e98d029d5eafe20c5879c4f29fb3159074a781b7ba62125ca6f2a37f02559bf36d7cd83d4be7529f27dc58e391b578bfdf3ef7df4a0f9e7e0cac14be975fa982b6f85887b840416b9de0a934235f7decef585c87cd3fcdeb986798a05bb42fd7ef1f393f5ecf71db281429c016f50084761f766010d993555bf141ec6d5c64d0dcc48af21999652e177f2a47e8eeaba27debd2278a365edd02f89f9f65e0789fec03e6b62357", + "1f4de23d2d9030c6076ce0c82a7d0adb53a944b77253180ab01025a04671c131d50c3cb3e68996beb375fb2cf49d5e5365ca7fd5a4ca6eb3e220e1356dd454d48cb3f5731633ff2e76f32e9ade3e136f758ade0110d3daa9667965a866d68d457623f3b5dd1c4efb6a8e16a97af36da85ff8a6973ca9ed13f4b21df35997b39c2fba8d8e686766dbff2ddbeb57fc1c3412dfabe5baa55f74c1ef07a2a311c80c38afb5d7cfbde38b978dff5a3a4aab49175c736f02d305b3b567ef0955073858c51f66f6248edb460b7d100aeffcb23dcf7a3571cc74a05cc7ec7d07575789e41f3acc1aa755fc1bfd3f48dd5ec281f153e6b68648be80a2f59afb6b9e3b636e38f25502fbbf219e3b080a66dd9c3f5a4fca0c04c6834a77d22bf76e697528ce3b6d2f01ff4d01cc0908ee0336b0f72a8295", + "6aa9a8d0da9062898ce13821892c12af4ffcf28693ba88813778c60fb81a817f2ec1b417f09aafefc74949f8abafdd5b98326e66f1beb63637af1d9cbba1e1ef8e942f9d251ec11d618e23bd", + "e27e50b6de831d0c271ca474f6b360fed823ed7f903e9c653b284cc8bb1fb923319544d32e439e629f805467482df07cab17b8ee0f1beac1561e4050a9e5ec9b73187e3f6ffbdcec8d9ee1d8c9e5d2a99c687cb611c6ca3db114472376d5596704bf7e1b88585959e210c6c3563daf755cbb00823b5fb81bddbee0434d673cf2940513e525ec03d5922899b6f807abcb78d7f3b6978c347140d5de0e8b7c76d0676a225fd0c748a0fa40098cf2736b0eccaaaa820c98df04868c7643f2a98e705284bb8fd66741bf01b05f07785db4010b32629ae1bb4ff0ef6aa504f2f9d590e394f1b379eca874632e558c5b57617909138a6489ef28e129ee180a5ddbcf97c4b138e378f024953247821a7639e80a0bff34a6070b6509a7185dcf9624fa1f4dcf2235851b5f1b9e093d04a2b8d35c56" + }, + { /* i=9157 cDividendBits=1318 cDivisorBits=759 */ + "118130f511736aac5ddd7708f691eabc368f9ca5459105bcffe3c3323e81a45cf2e3363d2d51eb6cfdb3757fcb65ffcc654e3c4ec4b2217cf7872a51148a53025097bd86ac274912a7f55caddab76120874a0a50954e21427b8b2d0bbb92c8443e27bb558e83192b902197d9d443b530f8c88a3be72a0c36823e93977821badf8ee6fc68e52071395987b72d3e9f0b71c8d306d2b572a604984d200ba280b4d3a74c02ec6d", + "7ac6872e8f8d93b3539b25be70725ca451b9363a508c04a85c819dc04a096ead0fe46a167724f880d3170ce21dd6cc16edb685123fbf34dddcfc8a2655e0f72baa4f2ffb392b252c099b3c2f91fdeb564c551f901f5dc5830f00d29e6a05fd", + "247fc2df20ea7081e5c97760812a969cdbc7ce6b7dd3fc65eb95b48ae81a1827637386c137f8842adf64a09d745d0f022029fa4807c06b9165cf62881939f097b281b270c284", + "3e1b2bc632723e3d19c151961757b342f1b0978c099e3c3049d50760d4e01c39ba29f2a07df2dc76d0da11afe56fd735443bd75aa4c310e374c5ad048dd86f4b8be4a1258d3d545308827524efb8af3c0a3c58c9e082937c3bd5f7bc1e1bf9" + }, + { /* i=9158 cDividendBits=1808 cDivisorBits=352 */ + "9c2235c7c610e2a5738f47753e57ed890409b3d671b30592cf25ae718b0ef92f313ac8664b6585bc8fc493acb539291d224d008e01d812056c7ded3574c5c782d0f0f9144b2df268a0fcdfdcdda508bc294c3eb458970de56faceb768bf97173f718ebbe9fd82d5600af3ac54c53b98aba4ae2195d31e00376293a494af73cf373bdaaecf1dac2e717df8a99b5b7e3196562223916b0f73f0ca96fdb278fd68ab6080d11d0df682ff228113884ec9b2d21c8669f9b7e4f7786475c587172b0505577291bf078d5cd6c6cf81b2c7013fb7670a9b75344873e3355e825d0ad0f3102d1", + "1a3ba1b940808d3d4b5160a1d45e556f5cae36683a3550ef6de5fa3c8dfc4967db7641f8b02d3b2c9846f7e0", + "05f3aa44d12d8df792a4cf4f7e9fea6d3ac7aa5e5ef79633659fbab99471e228c9eb1112fb9e275da7503334064be9f2618d53fa6c003601fee139385617efba1de699665059211201f0de003e931c7c7e1f3b0c0574e17910e0e07e527f59701e0dc0b3f00e629387520f0910661d6c52687d748a9c5996ea302e8509c1bb38f6fcfc0956eaa65b135e089e9881573a848088ec7821b79279ba7db00ebc449f17780d11a0c3aca535fc438aa832dedf39de5c4958512f", + "180240671514d7bcce0f78e6d08c5650405fbd616860c608ac17b1214a423e4c55d493759c08edba90bba0b1" + }, + { /* i=9159 cDividendBits=959 cDivisorBits=124 */ + "394bdda8fd6c3e182381fbef3a49de74a8c837cbe6f8d0a248c18834345e67082bb67c18ddbbe80bdc30507433141d6f3b32498fb8f74262fe9e5c9c441395bdbe4d072fcb2eaf2d39c2a21a2c0394808b76dda74bb8a9eaad7a643e99bceee222cbdc237024891c58ac500f0b0fd0fa43f2c4602db18663", + "02473216e8691c663967bf406cb97581", + "19269e0542151939fb5f87cb9acf752275e027bf5745fa21726801eff179e2859e07a99a1b8d77718e1c8f9fe4a6570d8e5dd93cc81f52d955d497937fbd793a737ecff1ec9279dff32d52f0633f5c3d7eaae778ca81ccab4f94c01bfc3df2518b1944d327d245e75b", + "ce89c531700ec89d92fc56b0f85a88" + }, + { /* i=9160 cDividendBits=3408 cDivisorBits=2518 */ + "e4197a167567acfbeed846b8e1d69eabc98f8ee48e7de049ae6c8c0c9950c23492ec7eb34c011481409967790d194a4515e62babb0e94a96651e59e7ac780da6680202ea71178df64e220e37e2ec069d5886ac9ac7ce2c32a588fca118ef87529f5ddbe4df4235f600fa4ea84e8f6054d2721b58eef685159b97e6b037c504113728f7dabc1e09f4693fcc36f8216960b64cd21422e0fffa87a6c9c2932da74e313636531f5ebae5b1f164b66ea8d12e692499125541bf85c31761cb48bb407f79503ea76ee63c5ff40cf091033a359a8eaf238c40eb105e2125c7bbf0f5c634a9b61b76ad94627ad37b49ce61fb0587e3a753e33d0a9ac8bbacb7263b9eef57ff24c83732d94189e1a689e85e8219bc22fb142e89ffd0a44f63877d486e33dbdfaedfd7fe437a17fce67988e8874ecc22e23b764e1157acafea4a82793d3005cf5f54e8740f1862d86da363ed197de913ebc66afeb32cd4eab7682a39ae2725d9dbd8372aed2dcaf14b3e218f51b0279f8194fe84e32cc1b4fd896061aa8ec7b205bffd13944850615475d0037873abd8661627f6041ad891b12f01769ee6e19f0524c054d17f0267b6", + "184a83dbcf159cac6ba9879bad6542d7f6e7914a1b8b4b5eb9daf7be907e428eea4030366fe4f35c3e8d9693a6cabfa569bdb8c1c6d3a040ffba812ac1e157f17bf6a56f75f5b298156de687279414a49771aea92bcc539ef1e45ccee222b848e93f4651bd208d3ae55f64b540161e32c1ff3673d520409ac273982e911b4f5b6d70022a70b0be16cd5c035460a265ddc432a505b3a3240759bd927816c1ee986457e88a4f8aefcfb61dc1306939901eb99fa4542a81b171625e2a29f6c1409b7bce44dfb3d47bc3c50f9b85f1df3f369f6540f2a91dc237fbc6ebe1e03756965fcfa9380a9a66b211480262606b458a615b8ae21ab1d078b88c9a9c75b5028bc8728886fbe160fd990357ed0c94d5e707667ea0a436064e445d4c15d264002dcc98df2ed9d6fae135a93262e3a6d571645bb9b4a883510aac9acd", + "0963e81dea5797a479911d85ca396bb5c7027c243e81da74f0ed26e2d11c833abb6f1b3aba96ff3743b3fe790e8c4cf9365cf62b7eb03607a434aad44c374f592c07431be6b3230ff2cd542ab4d5b170364bdb04f1e561e476bf9c2b956aef4ceff828502c51a5f4b2283881fd9a9e6c", + "0d9ebfefcc6bbb53b963ea8f0b19c99cb2606ef2a7439715ab8a9425cb333226b3407b1913f920981beed5a52fc7ecf03e23538a38cfa59389471e6abfd18bc06498d15c89f8ada704c5cfe154623fe467fc0c4fe812993ee6b3c8fb688c66ec62201c97d0ce05f36fe149565bc404eb80b0b265fef3e1f44f94615c6ce07e1b29e513502312c6d0dc261faca8172a653cfb2b7faad608e1dc15c989f6c3f0071ba224c99a0edc59042f12b9d57c6beda1af2004bcc1fbdbfc0a3edaaa08b7860927df5b5871f5ba344853ff3706ce0b9e723680497f7a0f113954a506bad073e2a51338fa33d54ad0fec7f807af3af56dbba0dc4fc51930b019ebaecea9d7e928f81acb71b7f7793fa454ddc314c0755a3909cd1401baa67d5867e38079a814ef3d8aa6f0b7eb347497d82cd1dd6e03ccd6dbf9710febbe54933a" + }, + { /* i=9161 cDividendBits=86 cDivisorBits=44 */ + "28143e9cee1cd02cf77611", + "03d337392143", + "0a7a5fb394f9", + "3a50525fe6" + }, + { /* i=9162 cDividendBits=1134 cDivisorBits=293 */ + "34af4808447046ee732209dba0771de4b23dbba36419fc7b6427c3b2adc325a3888e6b552d411da823fb20e63be4a1a1a5b0e4984a176d39acc7c26971f8ce6e9bc13541b239a71db0225e92026d4421e93c7a3323b46215b00f1cb6bd6d2c0c4e774b51f623ba6c07a1c9817aeba683213d254793946c6249e12079418c7d29640403071d5f6aadd743b7788b62", + "17b1c5292ea46a0a2db1d4e74883181c74fc9519f0a0e52f4ed11a1cbb99536ed90ef6d7f5", + "023937be5b24b986b8ed16198742fabc2b1f39154fd566997a1920e1138c620ed81c46070fecdae80cc89a6d99df58e43d584f4bce4f4668c12c570123839ae77ff69e1f21ed9fcdf43472b177a103dee43812cccf9ef86e623c312cdec1ff5bd286cc92b2a445a18576", + "1309ef9586a929fbc4a21c9a3a679b95d037a197a39afdc4b8e0114d5390125609b969b774" + }, + { /* i=9163 cDividendBits=1810 cDivisorBits=1410 */ + "03837d20cb1fb14bc5bcdd7c561631f49569d3dda52d0e0ed9de79d40dcb04235a4d98f65061b9bbd9e010e7ee079f19b2767931f582d6cbfdff5a29fb15b80739f516c0fce63ab22f4bf001292a8bcfbdaf43abced19cd48066bd49e166b511c9084157df21658717ae969700aa42d253e4fd16de09a4a5a8be6b457e82988445bdd8ba02233ccf492b9dd884e5723236f17a9ea2b8615270ee40c85c8f80ba46043e7b47a021839f805ef24f6f999ab99e09df381a3129d320db5df990f691a720f8ff3e866f292526eb48c500eeffecfe2f338599da20788f1a68ee83bdc831c302", + "636853ffe70d0ea788eb79e45b7c69edec1196e0020dfc678ed793a791511015c2e9f942c6a6b983adab63b1dbb12e56f40cbe4970184f37337805abaa920deab4c5930bf79a98d01033ff867ff6150424a5f88ec374061357530d3051d334e94ad493941cb09ae55dadf30380ce9173d2584249f69bfd9a28f315fcc2cba60e23c728e845836cc2b4345bfff866ebf5a514e2355f0526e7bb5b173f5740b78501e63557657f066b601e940cd2ccdabd", + "090c6a51890a6326e86f2cd590ab46d63a2239cc20ac68e74ddf0025bcd5cf7b90e58335141769299473870d66551c3ee42f8e", + "2e7c9a3a4c7015d8d3bfaf9072815478123d0bc7777a12a2555a12ac3d4904a45a5653b80b703ea047282934592be330dc1e5976107bb9a14fb216d976dcc20f62cd76c52f8f78ff27dd36bcc7a41b19e5afed243fb9a7c190feac1e17bbf28784754d2cc9286afed8bb43af4700b77b076626d06c1a899d1f1aa5cf3d11a63ca6e86bb36be39cf3ae9b48146366036c3246f21605b47f4cd53386f0dee9bf84c4ae6540900d2d03b0fa00d4a813bb2c" + }, + { /* i=9164 cDividendBits=2550 cDivisorBits=395 */ + "332449792330e90bec45b4c5a321f706f47d3f3696108d428613b67187fd06cfadb8d07ce9d06890d80182d867547ab81497b20b0378e5c275e44e340d4549a896974c529e7b06d08dc939aec1f9f7a902d8f37ceec0aa28090cbd030a7924ed44ba18a817f58360f37962f43c1f820078cba1cfa4576e31ad79799449819b379f619a5443214c1e5651b1534e7ba31b7c467bd710b34d66672f6874ee98357c0c7d401908ef08fdc36324ae657cb4f3329823e964a0b813cf8e66a45aec237a7dfdc13e3ce47580c195aa7965e3db18126e03d6cd7d0b1d0cb400fde43248abe30b9a98c09be24aa6d716311649fe0296c6adeaff37374dbc2ad8acc184609d15cfef5b46333ac484958ba77dfc64163bdfd40d470a18a4fd8d68c3edcdb44c7b3aff4d947e21324490f4b8da03ad91ad49b6fc70bb88ed9c2c00489cf0e9", + "02ee4e45cf3aecafdbb154ce0580158a129f2be9255c830e0a8a73c48b811a483011c63b3f508e3115868f6672ed476c8249", + "1173034d24ca15fce3e8b56863bd3657251e1e1578dabea7199fe70bdd25a3dab752e61157f9014813ecb51d47f32362a2a00e511375a337d2f9d3bd2e6902a4e2328dac46b0d9d615d0fbc33a2aa3aec9e6b48beeceeb74bfc83236c6607961e966a1d4571e630f633c87dcfaac0bb7189b16d20d6c8a433ddc8f44af80571f296d0e858c2ee8778979eafcca1a0b3996b06ff81d6c7db29ad5c07f62108646b13f97df7c048ca7c12e10807a5b68689d3d542b46109dd2b142dcaa7be6d39ae91ea6c80cf618d8a664abd45388c979ba709efa941090da8ff38d3bbe3ffa1e3db01d2233f9a35c769aa35c8f331f7cce527076f6c43bd2e6663bff50689ca63de45fc35fd2b7b978fb290885f4", + "0210c6fdac8b82013a8809e01a1517850d33b8a78b98d6ed1b1d9121954264a7af3a1f1a4f93417d5d9e342fc9e81238d655" + }, + { /* i=9165 cDividendBits=2649 cDivisorBits=2027 */ + "010841226e50599926aafeac2dda22cd1d168f5636d9cb72610102c87e5cbdcf4f66a0e0dd694fd499f9b73810e2ec7ce9e77db59a0ac901564f0692a3ffaa9e3ac30da6f293d9ab16d8a547cdcec73656d7cda35d7ce3da872e0981009e795a3deeef3b1c1ac7b4305f1fb5c83b5a3e7e3fcedf41b1ccbf37ad93b9cd0e627971337a85281e7826afe0aa6cdd502fb3a8113bcd2a1ab141c7545ed8fbf90b4d388852470966d0df76cd8ce48ceca3f504a8a03eb645978f7fb5d418865fd69af801f55168d8354b3e487c6feedcff58817453bc9fa45417e249248654b42307df53f20a269c91782e6fbc67d6ab007de68b4f7d4b437fe48f2863ec4312f8c10fc1f959dd5bd8d91c3be956868e6167b6fb4ef91e00b4585a54cbcc6801883a36e4f428c050c7d34d00e50f47374f81d7db3be4075e9090b9a2f536e3874fc14df9a6456ba06150b02fe1b1", + "05e439067130d01aa3c646efc71bba6895f308c22d67ed54b614f69fc70e67b4dde2b703d8ab53fb1961a86c9e04381f543ea8069fae71ab4c58bdcb7f5b318762ae15217c2dc80d6b58cdf9be6de6c9340f329803ab547435408e9d2b963b043f0241c8ff47d5ae7f7c9943786f53dc2306f652f4f604df42fa0d7a28fb4063bb60c8614e4aae322c9e089f3d071e7e2795ca200a03443b96b89ca734af70b4cd57922ba012dbcd0d0ff9c34648a0e6fdc29331b85d398d9b901962c1de4789b5d8633f61a58f1ccbc2bde5162fe356cf6966de794cd6e7c0d633e32682449b0d29f95c823c208448e7a151cdf2be4351319ceb86c3197710f81d9c5821", + "2cda81ced8d3d17ed8e1f2000074ff3649ad22893b41593f62361012d496791158c850c38b651dc5ec74018060a66a51aa969c3c3099322f41ca574eae3039abc6b4cf66536102d0a513576153fb", + "808f70726a54d8cdff4ccf4400bfb0a55205991397a0f4918ef5093e7a166abbcffabb1cbca0322437792ae8ad953ed8624f2fc6ede7a37276b79a37c29f7656f0a011337f91b71ad5e947fb372f4a82d14cc588138685bcae330cee50b180a1589b7e762970a033c852b668ca3ead8e461bb4449bda94074e8e1259e001beee13478ba2d95c8ef87fbc14276239346db8efd11149eb40fa5095b1912fe8aa5a1d5bd06989e4cd8abfb9540da25443418c099c70bdbf1582e2f9c215d55fa1123e44f875a9a73773fca9b7c727ea58e83582a9daab74238613fc15cd3845563106332357a9c449513fe874e73dd3772b0ea8379a1f451722ce5bd1c656" + }, + { /* i=9166 cDividendBits=2001 cDivisorBits=1563 */ + "01f7324cb9ad1404760e2683810eafb2383845ba1b13acee371e7b7d7a6cef30cc727a0925daf0bed4b2048471977eb46a4fbd8e686399c03b19526a522fcb7f021e0bed70324934913524d60dd0d51121bb081673faddf7360a5fb000ab9cfa795391bd52d95f4e35ae00a0fa7f414d03454a00a1c7d2817dcda6a4b24a17e06fb7ee1198fdf44126702cc56d4a7615472517ba3dd929d188bac93e9e27a83c89e8d27c81b694061aad9ec411b72156ba4d8277efa454cf0be017b9f3b14552ad7c55f03b40b6b8a9bd5bd20751f4cee6b0bcc501928da5dab9f5c2f6af82bb7cb5c0a15524094cfa69efa0b0acba0df473fcf551b7fa020e4d82", + "043e9663ff70b3b602ee4d7c95551ecb123ddf5168b55cd134ae868087b301f385539f8e85e02235a93f4cb50e250a4c3ea0ba1cfc406b07683f0751f1792f48644d3044ae4a88955de9eaefa3af9eab8a46212862db1f4dff017145461ec56f0b884c554869959c1bd4a00b5a6f64ba3708a96c8c545818fc19ce436fe251f27d55f4dc9ae264484d85ba35a4b93aaad2b7d584d0d2f1f5b1a8f13d08e3ad0c8b6624ce9320ab59b40141a572958498a2f66d46ee7f047b5702af3950b14a82c3abe46e", + "768d973547eee7848ccc50bffcdf807fd048f4f350c6d94e0c7413738c87f7ea4ced647b244603c1b12f9a7e179560c4107ab0d122cbd3", + "03dff24dac2e86a24b3d9fd9c519ccb319e02b2b369b172aab67d5fa13db2afb7707ced7f383fa95964210c8c3833e5e8f13a5a4963a287c859109ad383d5b48b750941775526326f3b9f6aaf6e9d66f4000420193fb6d7f43440ed40335f6024a113ddf13afa5d3258b49ace3a29251f7fb6a766eb6c76f12ee75ddda589107b81196b46c43d25320106d7a7e9293e5c91d9c18081c58e56c64a968ce90feaaa58100c45cab2c6b3f8d98ee75951ce9563c543d790305b451a10f594614d31748a1ccd8" + }, + { /* i=9167 cDividendBits=3642 cDivisorBits=2595 */ + "03cb2cd01e5a8f4b3e912126310aa2614f90a6e0dedb8e6a6697ac2964f0be28f5db37a4d7e51affc341d3b0fbb1009ad04b3935ba1e3f04a47c2a2c1a567e9c3c87986747354611dee476960e3f7cd8e581e17388d525e7d992c136d5ded957c8fc7483a9bb3c3f3cacf8ea57b10ec89afb3c0e3000aa389d04c07d0da20e3f18a8480b03a79a8915fb5fda76237fc3dd9278e2343d7179a9bbd1cc4264ff3b9e37d43f993ef94478ef087ec1d0ef081117a4cd9fa6133851de4be6fc5c701a4c9eb0667f82e43be8c055a03fbc48ee65160058ac23437d1d0cc7c5b6123fad21128d16166374d9122dde8694c9a730ef1a258337700ab74af1e2e8e0ad8d733d3a2d42cc337f1f9331669e79f5756aa72f4617a189a188951f4dfa8c1167441c860e1529d0946a0777c10de7a4ed47bbb6b82f3d4b872dbcf439925877d65dd67cff50406229638fc4b52d7a79933f9a7ccf734189c0ef073cfe8759311e06728ab1de57d0690538be7da597cf551e218f74656fa4bb5b8b4da1175221128a5c6fd1db3c17d56cc7865d4dfb843e15f2d70a07dc2b099ff6c04291a9e1c803d858e5735035002d77f3eadbe8d59d581d0484257e8eff36838cce20d6298a2bb1c3ba762388ac26", + "a87daa41b3d1727d65d1c311e5a13155e12294d1b6aa1160666613d6ad94cf4411d56aab5708f6d357363796ae00e3ec66db006efcc2f8a1f6fbcfea491f9d574463dfa07197e8604b12cab810e34db6f8bb328ca8bb60972657745399dc6b821b8af98dd5f2675fd0396950d17aa037dedb2fff16058b6d87456db68e28ebe5daf0544568991e20692aa44980ebac327c5b32b7ea6dc93d479295622a415fb2332dc950652cd4ff735e23e576762eee74365294f7d2a6d2ec74bdf85a3e5dca6d6ca58ae7556b7183427e185c84d62a59f72a526b89dc39b30bf1886977d5e7b9f009807e0f80eb7179026037c52c65608da5e073744900cef0e7700f4814da494f0725639378bbc38471112bdbf398a7cef59ca5bb17d6562535b79a7b8951ac1ba8d069de814be72ff13b45d3089f809cae118ea1a2b3f4e4720b88de5d396121b301", + "05c393060f52adf5d3f622c170f62b7fe1ca524661ff853a1575558183ee89fed734271842c3c245880e17ea2181eb070e70c651489fa195f66d89a0fd4989f81aa8c98a42d72c283f9e5e3474715886e5d709b3c6998d2c58718f6553660687b1e217756f903302f46cf1950fe3adec41aa77d235f93454404f1a8b62144e0eba388d40", + "68b0b19dead4947d7ed5be3894d36df24c87fa84721dc5b1ee5108d4fb2a3247457a74e02e166746953d93420e9447ebccdbbf3ebd4d4689ceb5a00df4009ce0081fb18b65d8e78175b51ad5864b0b97fc084af28c4bb9c9d32de3851899c3092f88af6aaccd8d778cd23ac39013a4f5772583867a9eee2f40699ae5c5cc1d40287f50689c17813f32e1d921358c1a601ae51c120512aa70a91102f99dcae0394a2e90760bb559880a4512fa35135e4ed0f963a7c2d40e844ae98fd69619438d185a73d6fa01a578f4b4ad4e3d42bb94ffe9d669d9ef563041cc738e1c75f0fa840f46f9c12689c71c996c700c02b9992d39c73ed7d7cc9d17d99e29c4f7a27db7d1eaddbb8e78db1d6660d5995e9086a3725cf7c8e775d1416d1815075cf203aadb6df8f3913ac415d698c5357185a03716ef6d1f1c1c885340cf17f93dfe22694c5ee6" + }, + { /* i=9168 cDividendBits=2823 cDivisorBits=240 */ + "652e25abf894d64db19027ff42376e05921186b9f5b690f73487cbf77c7e85cbd4e4189c50d7a38eb669e60eb05fdaf8efd076917a7ad3452930d79bd74fcc7e375ef7424fbed3224c425cde6eea55872051ab7a015311705fecaa5773640552571f3723d7d2afd0a10a5c53e751462805afbf4256b97c2fb12542791e2483745d6cb3e8905ec61b9edfe196f88c2583188250d5e6f48696499f4c184f6a592d0686cab6545a4fe5e626574a3a56034a2131abaa440a8d2d87c43b2c887b013c70d4c5cab9e658680cc27734fe08cdcaf2e16163e63519c538bc5e7c3012565bfbe79e5aaabccdc2ca17bf6e307d0639adf07865e9a9688df3c3ad7a030385e0286c42a576a4f6999caeeb86b1fbadc0e334cb1ea3beaa63d6a9afd7580a8296e647302a26d6f67d3cabe804cdfe6461d0652280659b115a1a7d5f3d175b000e9a9ec3b0c16d712748a53da0191bacadb6d41680048b5de9ddb255ebb28a0914", + "a3ca44c927f10a3a42bbdda647e19b7714375209d8f4a82b563a2703acb6", + "9e246e9e3a37dbf99650eead03f963593c7bd7a369989559a781256a245478c5a35123523a919abe06ec4057b3caaf4ff5faef44633af0450b1039a71edd75e5e45ddc41978edb2ead7ed759da00368be770406e2ee68b0decf3821f759e7ee7c19891c668366eb4275be6e2956cdac1972045041ceb106d2177b4184a48f73c02598a5cbe3f4018a1299e4d1aa4133c1740fa2b253c603804a67bdd2eb6bcd0e14856bcd8a3f049f19c3e011898a8e6e7434a93ea150ab42f756f32aefe6124db58028f20c5d210e0c75be76b3c4b748fab30c3e9e73e3a3b2dfad45616fff14b0b56cee94238524bbc3fa9ce2045a3c992bf1e37cd9f06ed342837aadbfdf500c472b88c26dd97b6cda674f688fe6b7617cacdce2c2249da84ff0ba42567c95dc6f4f43f993a5d54c384a4b2c71128f283f782941801a3ceda8f2f9bcd19420d45", + "19c1d3c205b4fd91e02309a48817b33f47d88000e08396e839b5b1db3e06" + }, + { /* i=9169 cDividendBits=2292 cDivisorBits=135 */ + "0f21c0d2d076f32e5e66def7961b285495e1b5aa375eeead03bf272a4a3022c9636deb98e8d70018bae698f123c52941f8883c2438e2b10b86210ac053bd98b92b1288242498721a40899da6e399f49f2bc36f386ec8de3ed5c269670368b46212ccf0c9e42422dc625d030a6e9fffe276ff881929f893999b3cdb8c31beca16b2f9471b1c2b076d6092b3066a2e6d1c04bbed20023e7bc4961d4488a5b7ed8fbc2db01084217ed8f476a5d3c1f3e2e47d5f21f937cad617f7b084190ced34fbb30f2d2869a46f079c93b6dee878c58aaa99a5c734c82811ccbcb9e5c799775c90f27f6faa9994b9cf071da6c36d6ccb6f96afbe575b0c7c32d18a18eba32410992f73de3035326170a11912f9d6119777bafd8acbcede9e7cc051a8884557", + "7fbe460530599dfd3b61bc66308b837d03", + "1e5313e5398b0cfb7449987e6ec35a811480c7a164978c50b3bddf5770615564839cc63123bd7320888d25ee3b4d06a03834d7d46a15053a1ca7170fafe30f029f1210c2c0dcb3ac263995d3180112e89183fc47a19aaf5d02296861e9b687e9b9dde1598074d1f48ae950bdfe39885595d7c302240a71e8a9acb4f54d1c7a8da241b41f32a9ffa58c9ef52d4262c2d31c3b318706257239dcdbe2891e2fa0953922c53ebc0e0fd0cb62b4a7ba6d4540ba8aea2abde3b15e8794284c0a50e21d35f6761c4c7083163f11642237b3c785056f4b5458be68340afa37e0ae8ad9b1d242cd3eb73fa6acea2b3dc48d542825b0ee3277fba2cb84b863f03ca5b70ca60a1ed86be8a90d4b4cc9578d942b", + "6bc5cfb8b06105a4832661f33f558589d6" + }, + { /* i=9170 cDividendBits=2460 cDivisorBits=1991 */ + "b1b3fdc63f88eae5081a90080d140f70a2926be3b43903fb0b65208eb5328c0ccdeb1712f09a6842ad4eb40bb8c821cb265c7249d718a6a5d7b90964f6af89112be2c8bd7c49b00c02477bc93cbad561a8952be864a2c927a41a8912ef2e958afc624e51e3a24d301ff630463317746f26a259f62165da1531a0495023d5420eebcbbd3022fc8ea1905b22fe45d7d8f802d80b92a1c738e02c0beb0751e8857c8334a8f44392d8c1517baa9623d5d2a48f9a7429d2d4912850b7e3916daebf0fb572d6b290fbf7f65c48ad0368f2ee4354f674065812d1f43cec6baef63eea3b789811547677c4f0eb616468b134ddb1644053ac7001af6e0eb7a6455eca88034092d29720ffbb8598025551490a32a51f9830bc755057d959c181bfc63b87f2b558bc622a99d1302c91f46c52d75999d5a8f7", + "51fee92d1de39df863b7b85fa33f80fafd9f4d340c1279f2ba34e68e7582b5fbdb8d04a781fab7fb25e7b39634bf9c83a6a7edd81ed62317321a425bf6cbce27ab293a7fc2b17e911cc10f2c4e5fc6536365b0d8ea6945ecdad375dea726d726b8bff7a3a1b66e702ede0183169ec6d4e9ff27c15e992b2014084fb9c511005baccfe056479cdc43f8885312185963c28e6e5249c2ffd04597026fd6afb767b3646a519638a89fe0c76514b5d504edfe470263005f093f4ab9e324276d37127389a0a3457c2d9f1942726b20789c1093242ca66be0030ab0faa96e2cc8936e0e9d766be0e6f2702ae5f788c9a46b821c8465e82a5ecf246068", + "022acf259ccf1a59baecf9c723965efea712a0842f54931d96eae03c5daab79a9339c999d0ae26f5b204f78d112369199c8b416915a9b8c90e8e2b", + "0f2c8b1363701211a15943fcadc5bd05369737b966478483efef5e4f0860810378655c98df82ffc6210365e2c725e295d7cc1ea5da5576c4df2ed33bf144be433a52b5df6b15496114961bcd89d319e21d9b402f7404d95732ff5460fe33d7d5dc83170e995d19ff01ac13f4628cfbc49987b17134f4de01229bf35cdf8e201a43d10efef114031300ca6c43eb1e51d1c1f313826a5422f193a2e5ea639c36a99d66363f5d85f393922efa580987edea76fcd4fb39cea926430760254b10a93634353664590a9693eadc844c5e8c1a57620bef363421c752d161a94910e37b94b8633da2ee17a84fdb5ef93b6b52b694674eae4c17b38fc77f" + }, + { /* i=9171 cDividendBits=20 cDivisorBits=19 */ + "0f5fe7", + "041ec9", + "03", + "03038c" + }, + { /* i=9172 cDividendBits=1595 cDivisorBits=772 */ + "050496dad95ab64971b4aa275f94fdd45dff33f09afac041a1503ea36dd220458d6424132f91d6188d220512ca29169ec014490d0757991369bf992de8098e85115364d4439744d5773694c5a15c01de924c5a9fe7ed6ee94cdfcb6c27a2c4aa69e6e23d685acd5986938c03f81c6be63724be5b541e59876344f2afce8cde3cddfac53ee57d7a1a0c2f58a3c08b30e7390b28b905dadc56c82325df870aeccffcedf0bbf9b77eb62789a039e9fb6914bd8467948eceda7a33719d541bee85ec2c2186a17953b254", + "0d9beed58e76165a84aee71c66fbff17feefacfced61250f621eb81e1ad456d48e0baa10f8b8218277cb0d1f3ac4f89222d33fa5e3a73a01052bff82158dba568d3458c0151f06bc1f04d057822278fcc77dbe0b4d1a7ac5f8bf44f61f67f469e3", + "5e644fe217bb149eb814d03a47d00e2e64eccd95e557af9b473f8cebc32b6043b6fdb287224c1ee701e6e44b94a7b7bc0ce7e10a30912f236378558a96239a29c6d9f95d8f13cb255ce396b9761a6eb41d3eea10c7e552cb87907243027a58e390d27a0c05ecf6", + "e10e68bf6ff0b370b9bf3f3a8804e9e5b577c1b6c3a5fbd27a69489688b01df2ce38ae89e58872e9f5a964959f215f7d6394b818ee059b6ad9fa95d816311f57196a43daaccff8f1ddb34574b5df44e8b4ab13a07dc42b08a374e7b38d69ae32" + }, + { /* i=9173 cDividendBits=3413 cDivisorBits=2631 */ + "06d25b4375ac91b11fce7c004541797dbb4f53f210ff4b705265197cea7e9c3e7c3b279892c1dbae40cdeaaa9303c3c5e6001f1f67d3217c81022b9237636dd7f0e888fe9f45cfdd66ce9f6f2779178849ec5606b66aed46723b89a2ab9d1916c6223d0752f67d4f421d36b5e888ad75c34214357434879f26e4008abbf8c2f7a82c16c47d6c0da01a40dd136e393649f4dfcc72c88db915901f4237512c66b9c77b8f989000ab5e1c4d604f5c3115f568757edbccc0f81b5c544f3c7150d7d98b4f85b27979afb28f2fd3ef733cef3b4d50a57f67428f4c127a174d96572c3c7cf606cf5cd8e067a96c3411597db6d5bc0d84e194110820172609f5592586771d73913232c1e1127e74b99f894b2d5530ef98f722035a94cc185116cc7d913debd40ffb54597c62e9c5757be9d442f5911956058e9be4fdf4e3cdb0b0715db0ad793e9a0f066bb78f1c170199c03efd13f27972e8e81930f2aeae765e7050156e4677481ce922e8f3aeb5be32eb22dc2ddbf9a08b80abd4148cf2ce5d975eccf7a402cf7bf16c940ee23e1113771bed63a69d89d6fb758e378faef6c762fad697dc17e04c9e6ee9519ed6", + "76c095e4c4b70f161d6428dfc8c19a418ff377bf5be4660ae03c0c43ad7eeab37c73e8bc8cb2941bf90f6fcd724c1d7dff3300430f82ad476a972884fe2962a2e592b61cf48799a2faa60d44f3aecfdd0873b386577be412d6d80298ba046dfb6576b0980b55fc9fa876447d2953d2fc51c645354a41219574a04a433da3f7bdbc8aeec819a680f6a56f244fd06e502ec9808811d2a3b4a99797cca927152d7012eff7a8bb15dee1f318d4f2c16b5407f6deca4223d42e8c1c199f370729cd5a654fa62fbd8591361ae587ac9df07b99ef42051befefb48b373d0dfe08c0605da23cf527b01d49cff67033e103e5843105fb18c15f1ad6f74853345486dd308b334daaa47176c72400a49fc5d5cdf5002efc2a808083fd5ef2467cd16d24e9a46dd19f70fd0890b0d7ad64b892b4ef545ebf45ff68bbbff87f65d8d4f33b09ff3661d6157225d49323", + "0eb4b45689e8c2887483fca6ad71293ddcc7c0a474e895a23bb47f2fd8be95c16f925991aafebb29d15d4c446db0b07f770b20b892ea83528d15c78a4e4bf4b60a9b13d4ca8217ff7795f8284d7f46aaaeb1d70c78635da61b0ba9ae7aa4804a2376", + "41709b3490597d784cfd99bcccac41c9fa08b941dd5a53cf403c68f4bde32ee2e0315cac9d4893cecafcae7944d9c610df5c1a658be883fed5b2bc9534647041e180437e75eddd14806c4efd2b3210fbab301850b7ba43a01ff8dff9fae04450f7d48aa787ebe942b4b7307b33112a9a969320349117f63765662ed0991c09add22a057be0d5a80e7e5d321a79592b42d355778c1252d29a15e32f06052a34d7f716f5fd1d12afd7ffbcb8312c04284040a0d4df4fc8108a010c2cd21f240360dc28a478b891a460d546fb5792f074171434cd164cf46c13ada99f30d127fa397e2209f06678dc3a94a03dee3c00559d9f156ba25c8832856c45d4cc037702eb2938618b1246e5491e05d6adebfa54b4f025eaec2fff74d1a81d963bf2f9b30737f1a631afbc643c7f4405f22809bb89c6c931ef7588fa24c68745a6717e2e44c495aff735611a03b4" + }, + { /* i=9174 cDividendBits=4067 cDivisorBits=259 */ + "01125ca7d586633391bbec045d316afff98035e95941f87c348681f05d18296401c9380f103878a34bc11ebe0655c49ba132b9687c5b96736626c33fe3d71864d2d0d321169ab5c366bac90772ac5fe80faac0e973c819af05c120322d2e30e51c8c74c6c2c32d7d560022973062290411612ca934067cd77a2fc88dfa0c49078f27828e0e80cfe9bb5cd0ca9205b44995b47d41e1b8c3fcdbbf358799d7bc055e6849e4b000a621a56f9b9615479dfca19d493ed20e3166785ba44c76cb0e7aef20016170143b99cbe47ba36d1dec9888cea723ba112be71f38fcd0c824d348358ab7061adec23aebd589158ea1d4b48184ce683eb01b2f95f5859da05cd4677185ca6bba4935b542196930ea8399f2406c75beb7b8e80ffa556a84f250f1af712193ce36eb2573451bdae281a4bc53b8e177bd073279f2a2cfdd7ddc25f53e9bbc3ca309dbe8202b866597149d396e0e3807ce2065601899a896583501f328c1af2a639b49add7c48763aebcf9289f598e032d11633a382e3203700cbafab04254b75c4aa801a67917ae47dc544a1b132db9e8123b691a54a3d948a11918e8e5b5a046ca2691aa5a089609ed81a6a3ae2a53fcafea68eddbf812503fc605aaabf7256f472080b9d13e48599f1d84adf0bd2033d0e56b3229a0dc74384834a2e2cf30a54daabdf678b4b5143301110ac313703e7af0b9c307345e9e76", + "022d94f82b1cca7649e0e8d3e5f8942398f0a2752523adce6c3bc079240a559b29", + "7df76e27f3fb10063dc668de34f79e37d768f81bcb7a9709a3546c60df76329a778ba41669c10ba496737ad0914205312ec3af8c8359b7b797c111a22c195f8261635f213cf21fcfdd45dabf1eea44482a1b09a8622b6e2965dbafb79f053825a0971f47210078e00dbe664245142d2266a97a96dfbd3cc7a50957b48ee1063d5673307de8717d77e926ab7fa4bd6eb0bdebbdbe2dfc62f8a8c841d0e4e9e37b0570040dc5b6a1cdb7028e03a7153d7c0365676e95c54fc8fe099bd7fb3b4adc94bfdabf425df718135b62d39cb3fc57c322f7bb80cf9966a30b2e0d0c10ef7579e2f0be8f427473faae9d8e103acdeb56be81c74228c1eea2ddc9035db82b85734cd869b03011390511618d126bd2897c2ac27cb60986b653ed4666a795c7de896cceec9af325c8e0aecccb44a8bef71028844b7a86f04d1d770936e00b7a9cea3af66ab63b7fc39706c489c4c37f5d1bf3a46b709a55bd5c2acc5412e6757e04e1c895699e51889c0b3eb6efab1304dc019ac2dc106c4c280bbaffe44f71a9052b5cc4435290e109ae63bf0e40076725e5b824df7e707a0d8aea03bfbfa98a32f59dee671167fd38e5cdbf0d2df1375910da80afd322855cf939185f724431a7799734a8c64d5b06f16e7a818000968a674a12f7b091d35d21ca4c", + "01f143b3908c56574c679a4fb6849489ac4922d64d15ee366161f7d1fab13d344a" + }, + { /* i=9175 cDividendBits=1304 cDivisorBits=768 */ + "f4ce16777c598fe907c0adc0d6f472ca1c528bd2bea7d3d077943ffb4733703898463c769b2184657fe87d5835510483255f93704c43006108cde770b4b5c4b2866501ec03f8cb9a435772f3c2cf45f3d1df2d6409b8e970dd660a65309fbbdcc38031f7795d60a6d9bbf3bcb49ad947f3e75b05d039d4bb6764cf9cc029197bb93d1c03bdd6ff8307ec4e5c8ed0e03b551cde3f0ab8de1c3d01495cd797b70d1f9408", + "967abbd6ed43d5d41df7c945761faaa949b21ef9aea7047da4ed8d8ac0038edc1c65f654ddbd1ef6899295bb91f1e2453911741a3f9583b9315ee4a4879eb4cb7f3240ea798b3da4129b9b2fc17cc14ae73bcaa43a31bd854c84c81fe9a11c39", + "01a0782f1e0568304134e2d7d9e5137879a0705311bd7ee5cec45acdd2346ea3fce48f1d6431f77b3ea99123250bccb4533ec8a35dde101105e95aaa6ec71cfd0d2893da", + "665976ed6bffba3dbb02e89458f5d4e4edefdc8cc9c4c9f1f82c6cd70dc41b2efa70fc9af1ce198bcd0502ac022ab5a6da4b0b17f9a605e6a355d3dfb06c29683400c5bed3573a46d7f2d3ddfbf3a0be6bbb7c979a3e7c9e1f63097248d0d07e" + }, + { /* i=9176 cDividendBits=543 cDivisorBits=519 */ + "0302dd149afe9c0716114682104f97e3d5665b3aa8a8ccc5045ede379aebadcf6dff89329c9fb30463be07c43d6c64e107154b15ce9756879429d0cebdb59743eca61a1b", + "0f239a807744685a97385e0153cd9b6bda5407e7d0f9beda3960ad5d44b3e1bce28a7f8ec221efb0a114afd78f75e428eba5a972cc86f37194fd2ddf56b49b9d81", + "32eb36", + "072d2eaab12b5c57819ee53a1db9f7c67e66604a2784954881da50ce1a5fbeaf5c6bc0c019b494dd745b6f34d5b95dfd35e48503f57472a4029b149cca370b75e5" + }, + { /* i=9177 cDividendBits=1035 cDivisorBits=245 */ + "039ec98663682e4d56d69cb419ee3a1b23e537bbd1eaf7fea1dac6b1fc16210a8e6d9d7db7263226df33e8256eb889ee2d8029f1b81750e6ad136d9d851b649bbf2feb6922d38338faf2913770930c12e5f3cce8832fe905c6a9fd4045d4fc6224a15fcc1adde0dfe8aa9be977021dcf7dda941ccbdf363a34e6bfe26e2de6b20126", + "0794fc22712095f8b8b98b7b2c3352204bfabf3c0cfc5252c9e7c0ac6fb7e9", + "7a3c52ae2f2e978113564d3d519bdc7a74655cd5b0378d49b618f78604e1ca4706d9ebba794ed6d3bb0608758624e5411e812a12cf2ee2b4f08a76689ac34f640adb99607cea5a6d05c33d22f6d9db53567594666a9611879fa0bcd83021a0cafbea82", + "0306d3a8703e97de4abac2bf7d81cc9323fb68269160b6a5536d710c68a2d4" + }, + { /* i=9178 cDividendBits=341 cDivisorBits=129 */ + "02bbb737872f5fee62aa15e9c6c3cba52905392c07bfa72d70751e65ebaa8ff979ce2b6a52d1760ae8151e", + "01ca4a7681e2842b1adfe529bbaa6fa253", + "0186dbf680b08e302fcfb474d1018b00f058a0c5f136db3ff88cd4", + "01869b06cf16437dd3081aacbf2c484462" + }, + { /* i=9179 cDividendBits=54 cDivisorBits=44 */ + "27d8b7bad8f40b", + "0f3267647e48", + "029f", + "039aba71f553" + }, + { /* i=9180 cDividendBits=3279 cDivisorBits=1810 */ + "11574b36e44953d191c59e1a29e0966bded8346c9c84a684c4adeef554b5a79efb329dd3088f7977d375ad3203e95c284bc506011b64117d40b2857f3b68c2498d755cce46ba08fa120a160189a2588487a03ddb580de37dca78963787e44af535d210cff76b967aa5839bc7c678e6df2bc5ed051505a47df913c045e5dcd15d2f4ea7ea3df1c648e96523308ea8120e58090c1bcd79983ccecdfacc340d24268e39df367f69ad941aa5857f855bf86ec6ba43a8698aa3503d6b39de74dd050f6258c575d79c64d59c86cd3fb286b65f926e03bf2904946ce289d534857db501b9fde19d6490c745706e226eb7cf7ae3d89f66ab87b1eda477ec9797f448311cc286421654b1d8a71e16a8e01a6df9207a921873ea0d75ab8e826ee88310cce9224185d09191fff6f8e2a2278ff415ae02dbf267ae3aa251e843c8d78b07b22f739d67d812684b426bb19c51e01f251ecb7eda846f5d03916ef43d22f7b404785d186731438f1aadfb8500456a825831a5f8936e69207b338155decce9ca522a95f6e0063e7623ac95e9a433c209046e045d1190a4776ed7eee2", + "349d95bc06e0f1ef8b07b7fa22bd84001abb838fb4a5437ad3a420db926de2ad9d04d841f2eb1298137e99f961406ecad415012828f4fa5557899ccedd37197c93db48482c3962e65ac8c3e99b1c9f0faf9f0043ece61d1e890e0174fcf0feac58e985b9e4e4375188342c2ae408b37456f9204db148893cd11e30867535892bd9c571a069f45f3adc4ce18a21a6cb24b668574887e092ca0a9f4f8d4b4aec053e56a5ef2bd17e42f39c3c631328b917e54b923bbfa344464a4276ab6088318155898c8565cabcdbeef89df236745fb93360583aff5e3ec2854bf0c603f059bb79ba", + "545f4bebcb07237fa3b0c92fb44cbaa621b23e287e797d079cad639b81b4fd073e1b76864f0e2d78fb4c7a0732175ac3a8dfd451e7a590f1134f76f40ff7d1cb69b5bea83d0f3b0838eb8a51b92b531bdabb39d765a433ddd68e4d822a27cc471f21b112561c425d84f48102e399b3f83be71cee0a99fe3c5947e8cacc96a94219f2d78e3130f243659aa01c25e502179906e3d5cd91bfe530cd6f814ec902b5e7f82a9a203c5ef77bc5d1e606c7b08ad00d413518296f61", + "0556a1a53ee5c18ee4d91bc6d032b0db0cda919dc28b524d165fd7ab01013db1239017ab357fae9767f85ad028d49d168b81aaf900ee6aaa6c0bd3ff2a8ea68cd652ff06c848e23f4dc6e013f9ba878a65c6c38eea7156eb32b2970ccd070e26cd245b40559c1c9c3a6d7bca42f827252d369c2cac45f76925c249d2ebd54ef217f60b05d2c07ba60be0d5e1ee92806382277571e3f6f1de85c55493ddebffe1946d4a1b92a0d401ee19f83156224abe3d54cf160ca0e0c53726e80d9c0a5d9256a1f0942a7e0f02f3e51142b44dde26253bb435206692c03de054c18f8b363d2968" + }, + { /* i=9181 cDividendBits=2816 cDivisorBits=1127 */ + "eab60b45f66c55f621a3f1eb948a69cc3e344653a885506fabffda57bc16a1a1c62b0930a176aa16918ccb148bf3516797c95d7fb538224dfd23f1d0195ebee21167d4f20c88fc1ffc32c1a96dfa99b3b1198da161fd720e5ace11311a0045ee6f1c05a57a77ac2461568ee588f7c2b88ec30884c13131999b954c81d35a1de456b6f5a55727253576fb516dbc8034584c2cf54159f8c40ebf896eca63433c91e44ef95de946ccb3cec9c08e5c83509a8d8ca05d43e6205555dc1f87e55bd768d0ef35f0dfedff517438a4525bf6892846f032d2c52caf8bf71af9a230dd88b05ad84998d18d69a501f65590103d493b438a8f5c3a0248b79efdcc9e7bfc1a26747c0897d37e0a43c07f4df2bbb8ea41486577378929df19852070685579fc1ca1fe292bf6b973eb26d2a2271b68ba8ac13bed900564c47a4820797c62cd5f2b770ea644325b2d5785580ba39c1f46f8cc71e633ef8ffd8ebde7e6bdeb970065", + "420a91c59b5bde2aac3355925346d5d5f54f3f7851f12f4e76707a09a255bf1a77e38180a8a51662339ee67ca4a4a077d58e1434bf38055a11446d4a78ce402d188d5df06f2c800a214725c283c3a53e4264209a834bc32ec4d7ec369d3ef6ce33e7cd8d7f5b673a41b28d7479c23888c6cd1d075a0257c764fcc8c181b8f1a8955895849ff7af0f4e23330169", + "038dd3513d4aad8afc475866a369d0e61b225964f80e21a45c3740182046592686d02b93e6bf5c730950f9d82d1428c48b9e35fd7c4859aa248f26ee252d6f4adba280fbe5ac73278713c25ead562004df46f490bedd4f5dcc17045e48d7cfa0ab76285c305c2581e9a95cacb08c5105047ecbda5f2cbeab64ff2443460b3f280e841e59cfce8a2c08324a3bcd1c3dd33fbbf4ff9835521b8cf8c29ad718768a883a2448a979cd0e93dccef569aca14d19a54e6a08acf833199240498ef221316ccfc613cd34c4b798ef699834aebe37a7e3bf38", + "1968c6f612edd3eb5564633b3fe762ee96b0a59feda95df9b06632c7906a108098984012544ef6f8611b8186c23848d35b10d8d90d7b147ca6794aa0e107ceceb5866bd91647886da76f299a1c6143ded8e2a7c7b0c5ade1ec28e29c9583813fc17e67e2434200198ffa4e0b77253a1e64fe9af24dd0765df8535745c65d0eb3b5275d5558b39289ae6b465a6d" + }, + { /* i=9182 cDividendBits=1004 cDivisorBits=654 */ + "0ab71c1b5d6ed782d44466e1bcf479ef0e023cdd87a7941828b70a1cb80d73ecd9017189c981c91e8b49a5191f30e1eb86ae4344d5dc9cf26679374c285fb3ff13d81098cb42cd90df0c8579962edec8da7cb484829a632c29f04da89c94d069d4d5a03fa329e15b5e43e2c4276a2f555070c1a2b9f40fc8511a739a2482", + "0a99a8e851957c006d0f4b316e9492493729616f64f6b8c2278042e2ba78f952a66cec68fad0deb3e8d27f965e18eda9d3c2aadd77858b849be1b6c571d27ff020a3f7b758dc83650d97383e3de14d7f2c0c", + "0102c73ac4110eca127f697e8d34ec07222a2362d2eca9c6ab9a5ccc298768c4fee1e94f0a908c386d1468ffaf", + "059c953ec768eaf3c326afe595edb9cbd16be29bde870bbc74d0c94a89d2bfaad0a810460eecad8d14d01a2be35c868021a3bd1300f22570d382e7c56a6c269da29f1ed2de15e5de1fc338aacbadf7eb144e" + }, + { /* i=9183 cDividendBits=1084 cDivisorBits=913 */ + "060aeaec0732380a3279596cd29d52b33675e47189bdd394a01afd7e729e711a006ff83fbeaf6beabc768861fbbb16645ef44a0d8e82777e5e26f23bf0c97e7c9121183542fd37ee4aa15d7df8116aea3a840881f866d8ad957276d0277481cd6e43c6766b433c35af36a12dbcab12305c467137e63e4aa8b50ad633d5f128e48a7b6560eabf7de5", + "01ecd563cdee5a3c8928d9aa7032d3813330c20992f9ea09627b1f57c3675cb46ddf7d09bd1fc81e82a79340ac29830995f495bd99f309bc873d9536f83f63ed0ad18510fbc106b36d014289462e84d2b4804d3b7df77cff4dfecfe5155626e4ff7b29500bc142b4810fd2114fb9738bfd4de2", + "032389f4056da453f4565441262b6cbaa59030c9d6b1", + "cac5b916213bc3eaba62e4f6a2c0b77e29297b37f916c0ee06c9d36c84368d6abaaa88857e2134a692a8c5fa45644bbbc4af58c27cb05c1d4bc8b8d50a1e9233440a40390646d6900925203a005bd6c7ac0d425c65f47af920e2ad895fb04ae730f838a07e6dae6d15bab77ab3dadb0fb8a3" + }, + { /* i=9184 cDividendBits=37 cDivisorBits=4 */ + "0f96d73f1a", + "0d", + "0132fcdd78", + "02" + }, + { /* i=9185 cDividendBits=1405 cDivisorBits=391 */ + "0970ac2d8ca21a063a14acf2098dae5db897cff9eb2b9a65b6ec7ccb5104a5c20b22f7fb57ed3b8bb47e1f10883d78108562a6489f46953f5cc3eedd7fc3b2cd8e8f9bd2cdab5171bb32238dedc8912770afd6f8fd6993b3096fdbc38be25fa49a2880b55618058e3e44c33b31f54783b83a8b9d5ac613a18cb87f76556ba5de9f67686ce6d93aafe99e9640782710ecc024d39e38f008027caf2c005182de254ebbff19bab5122c46e34086443b1b2c", + "640418c9664ed1c5b62b719d5243e499116e35bf657ed9c43eda60cb14899b093b120ba3b2ca6d0c373c91665bb7302096", + "1829b11e5f22f246eaf6bec013e32a81c561764f5d6678cfe3a96068de2c21ff6cf3799941e09ebeac9d4128f981b2bce746caef2a16cac9b191360fe9aa1a2370bf5965a72b236956a8b86a7f47e425a7f057654b861f8502d76ee0fba36b24ee5f76ea1572eb8b027574f11b0a4abe7cebd21fc2e05a2cf061cfcfa05d16", + "22e9f0569f612d5e60f0a48948e983b036ab3ba9c4f913003ee16a6f719fa24705f26d64a641794bc16cdf8b606281d048" + }, + { /* i=9186 cDividendBits=1915 cDivisorBits=1193 */ + "01af35ea213de5c3e315a18f2f6e1d784e19e79afe1b511ba69da12cc8932c39b611eb34e7eaf2efce6cfbf11e3220e4e3925e6f46cbf08dd5fb6943ad02a95e3c003d8d37a658076c307e8343553460e6b84d6ba00d50029ff0349c55bf14c6510267cd84e86cf09049ed34de129a9b98ca0394dd2f0e39b728364e371ff195932477d963f16ee813f9bbeb5a594f96ea4816fe5e6371c357a6ad5701465ff81a51b65e4223e8dba39197a55022b9d9dc12fddf8cae915d36a9cbd456becb331e9b70d8edc5c0fa1f02096cffae0b760585fa07d34e7ea2e43f67da27feb65f427bf49c46fdb0c186af216281ca12aa", + "83bbeeb7f205088b8e92f704e42084c0cd2603f1c0f5c8d55adf4ba01b35ec4b5fa57bd2f3e0240c35439fa96aaa74c7dd7f53d6f35091f9cc02fd53f8ecb2626adde493990862d54e06c72710957e09dc7322e49747b3c987c2d806a038c901077bd7b7acb9dfeafff7f8170b0f9b7add73c850def5c6f95096e0fc9a97dd4f625fd41f3647a325a1b700371b3a31eb4b405f721f", + "0345f9a4de0188a6959b939f8616fe1afd851f3b477d76b984f996b7889cca3c0c4a253786f6a5aa2da2907c23e1172d6b3392c15c1faa88bdcea9b12e37a377dfe30041940490b0e8d80afb9d8bd10b4eab6d7a01827ef66d74b0", + "1d5d279136e5b0ffdd1556e973f620d24596f8df03eb81d4a29b0d69fd0c5ac46c4bbf1dfc49620f89474531cf86efe879dd9559ca2f980debaccd535346f47f14ea41c9b96195ea8e5013c534933b3c360fd7c28435b0eedbb364e7cdef550d07ee419c1c016d9dbd971ca76992903734312009df5b81e826961df4be2ea21f81e23ac45e7b9d8cd9b304a9a007cc3aeb9f42915a" + }, + { /* i=9187 cDividendBits=2690 cDivisorBits=1033 */ + "49a83e6cca3ef7f80c8fed9fb453ef94b7a47224e20f8e342cf60d82f830cc6ddc5c6acff61001d8ea35be6d2cb6e3cb8367b88225847dfbec77aece1c5d0773df7a9321aef05970e22d5b3f04e4b974fcefc31bd401d035be3c7313f6285a7c739df8342a8da8c5a3704d67f71e605cb015624f9186be01eda728559730935bd00907eef9edc599f3299aee18f91e48b88984679da22072ceb6a798541a99112b4d8931852983049432d7b8f7ce299259c639b2ac639232e1608e537c143c9a0901387f8036fd53719588ce4468acdd042a20d21c9f159e756e6af5400bd0f5ccd975dca1148ab2de059ff886c3f48f147ac19dac1c460f999ba947d9863dff7b65e99fbc8988eb9f12d52f47fd9c09ac761108e4d3d8ede05e70aeec5b8f201148d6519b4cc3c09bc362f9d4daf514b511b1d9c8ee2f7f1ce397b468f187095800d5ff62f50b6c04f2dfb9ff293049", + "b3adbf1e3927e5333335e29a428d0196ab62d56fef0f78717b62e105a4f440ce0bcfb5713893c8d1d097ca006da283d3aa851921550efa8b76a0c62a4bfc837a1bf1a1c7e207561f353c7686bf94fa21056e94d96349842956b4d80e3e8e3fe0184101615903e09b21ad02222f9cca31674bf0b6b1c6f86d50e419e32d4cb9824b", + "68f1b9876659e787b2d9087ef0c578d17e2a8232565cc3670f9913664a21026f065bf9551b1c25cd388ef89fc8734498a7a8cd02184c4ebf45808ba908b9ed2b04b2977cda324dac6b849cb4bf59da8e6553f71c03e26bf33ca794157a8075f663a6003d5a9b5d92a693ec4265fcee9643d649709dc7feafd3028d1f9801ec878495ab170576e22644f02ea1f97ef62a23a7cc8b5c3a4681a1ee549ad0790aae39364b71f1212374043e2cf754da31b9291c91542337b9c50f4b368d0f5328bd250ec5c62e2db62c71b54ef5fd6d10", + "0a9e1f81a294ac254c34e267e723757bbdc922cac76242e03912fb0c0e47dbca7f72a9c3564a34a7792ebcac41191cf600b1df5a28bbba4ab66962da7ad9582c1dd5742c48b05a11c544d4b5cef484cf9142f0337e2c458fbbf5184c4e0b94d2d2e1b98b6fa600dd8eb945c7e7ad60307a069f982048afc198eea84c58abf81c99" + }, + { /* i=9188 cDividendBits=3493 cDivisorBits=2061 */ + "144962edf4b94264f9a719bdc7625ebcf83128eef3a510d8b53e46e7726d5f945d62ffcffc34a1485b7f9e3ea2e521130454cd8da6c101ae4887a792506ac27e3eab624a2abae141860990f6a1aae14895d4a5fa42562e18d5a76a8da6ae5202842da8b6daa7af8f778ebddb5c8e09f3f08c0e7aac4e8d2095001ff577867a5f0333758e1a4d7c6989fa65dce93b52d70bc642f880f8b221b6d21b9a15a42105ddf83df9ee3d817c091709bea5384b58cfca1d96a4ef361a81eab206980df1c3b96c762695bbb37bad1ea76a1c1ac1ce813782398f35b9e8c31f606348b2195f10c0cae218226a13d387749deb967012a4579b7d154062fbff44febf69f5dbec43de97b9c8d1c820d92b649acb31436d1c631cf021eea9b2db2f9ad1fd89e9ef60c0cec81b8b79d0bfc3cce7cdcdc14d239fc4ac146ca3026a75bacd21fd7f6339607667cf1ec921628f1df088dfeacca0a0edc86b946c91bdaff7d24b10abcc0b72abb1df187b01688eb0ecd70bcd344d01450f0d9f7c1059ba646f838c7b9edbfecf4d283fd74af2a2fe53a12827c2b3fe0b26bcbadfa561724f6f96e289167b4b834bef65facc0e1e858179cf3a96a6a4eeeb3a", + "0ef1b46ef082d3272f3a9975c8abdcd2b04649bfde11e7880c80d0872245bdea3639b9931788da26c19501c4152c9c73b8aec8a799ccdbfe9418b70eaf38a35d689d62def0530bc293b29f3feec9f8beea962f16f9cffa6ddb3bc5389ac46bdca70e5762bf949c43d808742dbc15a4d2b832c1ec84766a14a275079adb527af2c9574b942508205b9e741b1cf3eef268b55eec534d42987dc456bd4703e4cb131395ab95e0ece438c4c90684553ff9e19bd22553ca94951f78a32cb664b8b9b3e6d21d7e14107622ae0af966cf3ffca77fba19bdeb50e38934c5edb8a4c50594235353c0b11b2dfa3a1fdffbf87f218b1e58a4d4609f0b85dd75f69eeeb897a47152", + "015b84fc4f167c58551a1573b5ef45caf188d712e940e0393cdb7dcbe8ec404d346b72f58c761190beb5e461e23f3fefdb28903e3f443069d5b414e9ed39ab86a7bda09795d14380ad5a1d883a97a4b2265503782644c06397b6bf88c77c69eaf08995f383c4f2966671ac1b1b20b057bf4121e5b5b8f70d3fa9e18ea006467fb8b6a5097246f785b585f7764fcf1bf471493fbdb7dfee3c6ffe3d69be5cd9d52fc65df72ed94538f4fdea150363f0d28f240424", + "0d8ec704d4999958b782f3929492e18513b2183072dc025dc820fb8b593446db63f151929018316580590872e2eb3a15ac5a964b8e3c05f7113893ba4de03061ad91eb00409639832de5a86bccb4c2970e84ab287c439dbf2d9a03f1d28b11653dbfe393fa48c06b2661d95698b67adf79676e6646701328f844a68fdbeaef8aaf48e64eb403b7a0de0d279ffe4ff85d524f364ee5a0efd8bf7ef8c7d2259d52421fc8109f2ea7dbc87b7270b8bc7190a17b503a81c4ddf2e47f75159156d5767d56898bb1d7aec0063d0cab0cfb2ce0ea9f58e7591df3aed65a6378a15007604107c809684f99be1d462b9cb6cd695e0c98d7a20887af705c199ea41ea20281b3b2" + }, + { /* i=9189 cDividendBits=431 cDivisorBits=220 */ + "2691f7c7bbb40304827f30ff3e62d57292c8532ca3c9b3a72ef235276ec3cab5294047ab1fd91ef5dc9621c9f414da2b04264c69d89b", + "088fbe4b9ab603c1e21f41e25c32f2e8d1c44443f24bcb830e0e76fb", + "04814c96868ce8e03a728c2239a6024b5aa934c1b0250e5ad1b280", + "026ad3f0ae31476fa2bdebaaecb24603788d9c61e447ca7bd588d51b" + }, + { /* i=9190 cDividendBits=929 cDivisorBits=25 */ + "681ca090e8e1b989b477fe2e6c837a871bb06c4b25afc1064f9f31bfba832ba0f23e41af9ec73b8b07cd10682dd157e780db485859c9ca75f3f1b5421f428466e1aad11f00cf028764f995cf463bdefa7676f4ffd11cf21fe9d612f598a18b90c7079a090e553298d7b2ad4adca3c523e7b81937", + "161dba", + "04b51f4ac2636b5eb9c1303e497f3650d71e1402047113fb60c6053d73e5a2560e8c71c2fe8ebb7b5b38562b366bb58c93748aff1ca51a7a38ab52ed3a268a7ca4910987b6c00590179e5721b04ef25efb686e1ed51de56d8970a82f2f2e971e350c7bdc52ad400570ff5907ebf62814629f", + "126eb1" + }, + { /* i=9191 cDividendBits=3154 cDivisorBits=1472 */ + "03bf259c285d3a5e93545b1e65fab7b94f22b70c4ed5e2bbf701283d80d0bcd57c3c0a441881d38cbcd4e58a5a5314c31a8d230cd04d8a37edd475c6142d8700f5375b2ba25d9fe02f7e37fe351ab08d2ff5252fa66bc39c13b24cc96beba862e08b2bc9bc3240464990905b8a7bc626cf90c230187ae7f212ceef4024361f15bbb8f5ec94f46175545fe64bc5c50204d2a704254f5bf31800c50e867ba2d7d622bb04c24f1848998211723b7fe3b3e1ac6d707f8b7f5f4ee87b87e863e0c699d4b3ee4e2fbc99b5cea9f4aec9821cb69bad891f34d62d532aeefab6bb2365be971fe77c6f1a4283dfcb488da0436e21d7348e4429f5e5871918466acc1c5a654b6a6df699548d408fe37be6950e08cccba8d100035d63e5d32b0bbde55d2ff10897c5f30d1ed67d54e27c73a0477e917d8ab005250f4d6828baecffbdbb034f988f945fd2406b0fc1635b33cb556dfe0610df1b94144e2766bed9f362061ea58ef68af43146429fd89a1e5d3945cf59be580c42df423dfcb725ff14dc2f70154c46ff00b1831cb17966e8", + "cd8de881d3368cce02ae86fcac04eee3c13aab1f36280a0107d1884555a1db0beee3860d5eed5731624747d82310a0af7230a3f41f95df19018c555e68301212032317750117e01f9339b3f590d8ffc9d458a254a949d62861207b7c79d736503e42de61f335e7cac1dd61d3c0e68851144a695c286dabf6f5a2dee1a6deed9acb405c897df2816de33e9833586010bc6c7ec4fccf78858c83673b80da977f91634c6cd8ebc888c5a88dcd212dd4067439d38ea0455938c9", + "04aa88ac4ab5b8484c2b6c208586cc229a1a23b8f5542690e44a5e5772fb34f88f1e97c4ecaa303d985e2ffa39ba3c31fb96a082930a2e70e43a8ce72ad626c4645713f7bc3ee0382494142d38f86164d7e85212c5835bc9acb5428b1e947327acd6c6c04027d159f1d99d92c764a15b651705a142e2abd23b98c894692fb7221112754a6809242cbc1df03e7f6b2ef61b31456b90d30032bd8c5e26449b9c5936cfaa1b61aa15aee726daa1838867db6096bcac2fa01d1df1d8f5202de19137a7e74ea0ce912573890443345423d5fbbe9576", + "0348583364433db41ec3501b4897eaf75423ab4d1166fb254416e80a7be049e4605306ec66245ecadb50fa32ba652021d42785e9348353ee1013ab10c111b23866480cc63773ecc65169720178133bd94a3d0401ffb1eba4a368305e66d1d73a37be90e7aab17dfa9e2ef18724a5b4a7310a1d40ac0f725328fb159c0fa6988ad5aca2bd04cfa3f2cb9364532a8b9441006822c1fb999f0583dd5873e58167938f767c08a4817f15980d237230d9d9a9dc44cfbd941e3d42" + }, + { /* i=9192 cDividendBits=1632 cDivisorBits=652 */ + "eeaeae27c4bb947e9bda90ee04eb9773fc588709502e63d04e3bc3fd943dad635ca8f1051d4bb4aa18f5e5bc20f1dbe9d418d06538abec3b8b4a1ef81901120ddb2d717bb5764d0beaf89418d04046ad92ff2761e6ae3231d0093468d16fd936c53307fa5e75896c685ec66a3123224ae79ba74c3b3dedfdccaf72386fda8ecab8e9fb9f259796756a7c6341802af3554b2f9d76681059f2ceef7ea22a15281ae49f40c02d3d635798f0f8d2429a540d2d736a5e23ec27289f45e2033cb5b2615cb7609de4a0a9bcac2be856", + "abb76bcde18cb3e4718f5398d80cfcf0eea757dc92001857df17aff0d75ff94aa89f9b91ca0a005f2705c8b298b64bbdd32fa86e3df11d6bac69325e01c5a83f3449686f5f3ad507df9712d7f8fc54e9f2", + "0163d5ad026a682de41e4305dbfc9c197f8daa43f07cd9333f7147215879ac0feb795d6590366a11f48172b97544ecc6d563c6e43a6bc9f7fe3ddf23c7d831c09d2f3b87b8201f7fce3d63843bf0df5551eae29b048f44ef2b7f591336af0ef7cf59ad85867413e05c62421177a64efd4f81a727db5accaa3339dbc5", + "52d5cc36864f033c5aba0931e25b5231d6d4ee88ff313f645eb035246a9753394c9aa1395fe93ff95243286f37580a7a0ac159d2466a5a0b4bcf9a923f9be946335b58bbd5e2a8f6d353c52b0e8dcfdb1c" + }, + { /* i=9193 cDividendBits=2300 cDivisorBits=1142 */ + "0b6fc11e58b739b3b5b0f202d08a03aee8c9a852152965fe1664542f73800bc26a3b421d4f7be6a51ebf8fd8e5e3edf90a4d8a043b67e8a2e0f194b53d9cb382aab2426d67d3b47d50e8e98f080d041c16b09fc9d313798c6f5777457c73aa39c87225bb07a0c59f9f662bb0ffd6560c24ffd83e050ca84f140024a610a5a1ddc88b8b14213462d090593a7c13dd1d84ad0d2273333121ad200c779916ca8fc6ed39f706617d4a91f94a1acdbfdc4b7eb82bfc7c7575937abc2b711ad0057e34d9318fb8777fa938cd14c1c6caf44a87f3ab755a1cd2beb62276e318dff890c0e822b7eaa906f368fec6104ecaede4e21c1ec935ead2070ba1c6c48bd2b0fde04120edce413cbedf3f2a779b7668c3373c4d47f859da80282546135297014d29", + "027e5bee75cecec777fc27bc7f6fd0ee36a69c7d372dee31c7ab16af06d1210817a3f3b83a469e7de92865ccb6e26a7e4c3c38502696ad48bfbdc82eaa00d3f3ac2929a326b436aad39d7e29f02f0ab6430aba435465c2c8a7238dd411e1a359b137d95eba74f1113bbf6abe1f3c397bdb517811fbb325ff5211781ac4ec3d09f5b80d726c080884fe468e248ecea4", + "04961caf23e78909d27b4410b95fb2bc6fd3127ea3feddd2e32494d4a3c216e5f40db97304fa13573acaa102340cf6eafe575b9fbbac11d702758246a68171d3d21e5be55f9a5e570e482d15dc2bea4e497d61af8f835980e78e13bab78149d843a6c08f566f5fb503a800c34081d026b2fe937fdc6fddeedd56cb3a4d5c1e43996778b59fcc692b1681d24b58a22fc8b5c2", + "bc9bbdd9512e75b52fe59db255afb3c69c095b1dee37d6ab2ea7768b8f84258069d6cf713f0e4f12d8adfde469c277215b5176a6120463f559f7c51fa0a967b927a7ee93792614e59c23cc305f40cebfe541db79458403e1d4a3aee5365157a19d3c6f4affb70d2c62455cf36a8257fa958d435800200d24b490e40096e9fc928053e92c378f117c30785e8ec0e1" + }, + { /* i=9194 cDividendBits=3638 cDivisorBits=749 */ + "07ea6c23b93feb80fbc625b850039c9b146027e89a1811fe13f7b83bfdcd41b4b6ab5e1e241ae1ad72f25708e805525f87d6300cd429e73c541f32f2d4fae770358afa722df33cd25379cbac3b90b55ac6e0cd995dc1c5256b62b8e34c132ebab358a0098ee8bc3339656e904678c35e93ac6ccd36a8a31ccac7829020a7e29e38e6cbbfc56f1da458aaf2a3baeefc1fb76a9ef04367205d0b36fe0aec55bb3b4b398b3489a57d36dc5ee2593611f9d7397f6182e2d11a3fcbd2dd7180d387d82f815ed7eb4e55e06dc4f456eacb138b6ff20ccc26313f63bbe7444890aba974f51a908268b12de831cbc57ac199e6bc939c94606e095cc6d0b4377b1f2b7781a0e45aec45749ca66c3d65225bfb02040050398b6ae32d445e50a2acd5cfbe5f2f887e657a96c227056891d792ebfabec8e9b912dd019dd32131c394bcab35ca59521c0a179167ef9e4e180848c348c94ff0f9998deacc4f96dfaf28a966dcb7430caf21e7067da50c1d6a5190df8694e6dcf84beb9c574b56c06da4cf93e10b1653dc932f25d17d4fa57aa5a3f92e72bcd46b01e1fe06222d95307714014cb41231c41b8900c6ba0e21de13cff79bacb34332804c636ecb109402f7e3b4d36fad082084ff4df8", + "0ac99a587de6db9cf0bacbb98ed4e61177d060f36cb9e3dc5b17024755e7bb846d9eef817e1f83a7066f3e53c76d681c156dfaf722f82a542045a0a3463c825b4656864e4571850e35a74d362cf87dc836012c71562f28e9ae6c257e5651", + "bbd9532ccb99c95ebfc1161d6d1560608b1a9405bafd414692b3a9c7cd74c63793453e55858de8bd3379b71d0dfbb28a80de02afca9487df78a0d65af5f0477ebb53eace18a5d1fc98d370e437d18c6250e1c9135713e87aa2f62cd83d0aed17f8f70741cf694b5da39e199fa545159462b070387a3a3157f433311e8d30f42bba06ccaf5191c985585df53a6cb9f98f09ae81e2d3e009d438da8178b796ae731ad0cfa289ae17c008068a6ce92d6a7dc0ec48b7e573ffd9bb60a406715681c23a8db4b7fda4b4f707bf54988627f56c74b4f9403959fd8f1270a8fc27b75b6d8cfd900871b71cd05098e8dc047d223fafab0108d1d977f79eda9fb6ead98cb8faf3ef63520cf3498ad09210d245126d817f9a5534625a861fcb590cd6d522c1693d7b7d86c7d06e93f145ad3b4927f9f2e05419c68ac78ec75f955de4d93ca3673d1fe7789ddb4a85945feace67b42f6550ced555e9c3f66a199cfde796cd2e34799337bfae76a378", + "026751a3786bfe5b76a639372b17845c1a60d848dba3884b8b23e71d4203725eb018b07c59b12baf7f2ce7f5724d331834f17984df5cd824166dc3dc6036bcf917d02c970b167ab754c39d93b3c7d68bc5344aa9e3dd996e7539a97b4500" + }, + { /* i=9195 cDividendBits=1737 cDivisorBits=1638 */ + "01ffbc3efde1a48c33a6f1defcbf7bcaec8b9c8127ce6b1036305a5a9f60ec2ec8e543a9ee5592e764f55784a90c3e3471bd4c90b494f41412b4e927149b6b52ed80f6041c5eb18d784094f77461f479c7edea6b734acdb4d7b8b2a3b9ee5f80b5e6f5e2505edd1bc00cc93671cb112d99b330a1b55c1d5ac0a0bf850fc09730aff219913132f4257e5b53ed1f77e8e41a6d950e20b2e06135a5cafbc8dee1196e362fd80e0ab1c1691ada4464703ccebea9b9fcf34c96e76bd31ae39a1fdcd26d587dc1d04b1207e722505a4f7236bd5c1da8425d2f3c89268a", + "23cefe2fbc23fe5e1047188799b706a2e72b69168646918aa73a84c55e177484480327e40aabc15f2eaac9cd8c4de66ec4c6e423ec6aa4fd0341f2b8770865a93c29ff7d31da658faeebbdb14a9913ba1c578421888993ccc1bc801f4a90f056e43f7066666742d3159fb087291434887cb9038cf4199e57c74ce565f26874745d7e7854eb7c4497ed4b2be977080e02cd28ce62d33cf67a00ce64ad203419cc6eddfbdee52194a56456b1b97c28fd1b3f2cfa45b6814ff6f1cdc35b31c17fb2bc80a46666d9ffb3dec0f55a96", + "0e4a760aaf7886d29ddc532ebb", + "576a569db6233665dba227110d861ee05b3cd918223fb5d2da5474d3ce217304d019def06a750e7d18b38e16519368582896725745efd20ab9bdf31b6ca900ad43fad06519329e8dba809fb7830fb9ee1ede805f06ba2ee033bd160d36df741637d200e70a212d05afbc26598f4b7aaa0f890be056e1a237b403318a8fa63898345a997f4c40fea41e04aff30b14cf3f9e65bc72328b009b8bf2b50107e258a5adf980d4336794f15ddc6ab123397ec3cc96d328200b8839c8d3f8f7a6bf44fa7ebed20263d0ef68ec6706f8" + }, + { /* i=9196 cDividendBits=1693 cDivisorBits=769 */ + "0ce0ea23009d6b28fa4d9709ac9959ee567b1d8caf11cd987f4bd79f07e80d93e549b565d885a5145d52ee3c6ab9749a01a8c4b62d6891de218bc273a5f50553cc1d1bcba6545d38493338cb8eca6738dfd7d5c1bc56aee19a9eda6cc1c04b19276ee87690ea9ef35f6d178b1a4726962494fc81f5f3bdceef4840ad47bce7ddfdb70f8f30ec86da42191061686b33cc70871735be40de9656449f8d88aa83c8cec641dc1d4a25f33bf0d858ad8a577a9f34ea17d315b1a8ac0cb1ea41e0e59502839765208599cbeb753d0b4d889aab4a63daf7", + "015824c4b3a0788bd1afed42baaee22f6463254953e8b391ab7fa5113010c8e3e40e7b85e92f945dd36be913beefcc1034298bd4db97016aba013083989533e00d76a2d6a893821dd0874668fb071c215580bbd1159785440d44bdf4494ca31b0f", + "09947e6ebe11fe5faf238ae058c17bd8fdbca47d59a1b0c2f011a00ca073e0cdd08f4c8897a6799de7be71e4eb80856530513d31e6879600ef67b1249c6547821741367e38e1b1754787bc087251ccab3333867761cae5580b54009f8c1144787d7e245ddb2f4d2077a32ecb0dbe10aff774fa2e", + "e9976be58c161d1f3bb32b5726be620c10e7295ff38a86ac33b574e2bf2005296e9ec80a6d1ae15096ef58bd0fe85027a8b327cb3c4b003995a982dd05fa3002b424787ae2a389f0e53d832a58ca83c038d24cf2bd8dbd899b5c986380dc5845" + }, + { /* i=9197 cDividendBits=3551 cDivisorBits=1154 */ + "7808f95133af2f70e9506d7e1b7cce9f8e5b2f58ecffe5aa8b005d293373f1cb120ccec61b953212e856ec9febc67d8767c106b185b3713295a37484348f6bf14576e39f08b79c77b8ff0110ed1dbde1c1c1385fdbe154579c1d2033df4fc74eee57a228ea4d05cbd0f0912cb46a83030d6eb58185f8c14680850bc61cccb11830ccff3f06f7232db4c819967753d57b96d5cb9cd063d76e22840ca283e502dc2fb2ad867301446b0cb282e2e53bdc40047af60fba66575f819549384725149b68613a859ca4c98f1e3f4ebf16316b8aa1ca3e6bbdc349a04f1e6df788ce6c1ebc31c2b1dec215a5e3d9580296bcb48fcd514dac4e5de212f8784f374127b519b661c1cb3a21eadf0453b96acce3dab35d0a8a698cfb61fdd6066435a44434b1529b6ffe8d0f1a4a9b0ea5060d3391c936798a28e023fbf639f00a7003681a661400cec582ba04b4f6bce787f7ed94db5ecb77c81ff2b3787b9c4c5ba4b5737a691619857c0742a641b2cd3c25468efca0d0f63bf635d5426ccfc7183286f6c15a5af49118b68f3a53960647c8c10e7ea6d09e46291041eca6fff99708383aabe3e9a9291bb31904bc8db51118387e95447049ab4eeef0522b9919b0", + "4a068ac4f691c165ab294314d7474adbc68d3c150f55b9bf918ff2ea3b69e69e364e2d312812c4f19da9d60b39bb191c217205c1db06bcb04ca4876a891f37abaec709d71a225441dbc1e25686218bdd1c1a9576b7890bc98fd44957661f7dcac3e05497d46b4cffe6e9d5cbae10cfc8333ff517d466fd735ea65c1dcc7e2af911c58d76aee2b4c83d0b270f1c7a2116", + "019f1cf0d87864badd38de8af8e56fe79ff37121a9ac17158dc028727ad466f0d3d3985dd8df610d5ae9ba3e4560901dbaf41f54d0555020d0a3fc3d26378b5722e2b472339cc1910ee02f1c3f49f3c49d8ff99857d1b6d6883a4679823f5e3c098d920af7e21aa95130642d83d53302433ea5b44694408349a368d95892936c934c72542a941b6c2ab7fe03183f5f34e77c9ea26c242e26f0e57bdac2fe4ef4f762af219c170b2d2b2b2f7a95a6736b89c6b589332d2d46e57424d5cfb5ba772108310bcb0b084535676265354bd1e2026cd7b84925e88b2b90435797d5b8789b4d62a65781e89e43e584f90af730a15f014d8cc35f741bf151edf30fcc946d04c1ed7c8d5d410309b44f3c83e7fc081e24a82e841e45044576bf8a1ed67e4cf52285db6f7ee9b0ae849ad211", + "18e5c38083b0f917656e2731b779c34b514e54c7c203e463143f2683bd00eb0f779ad4b56499bb2967c41595416cd6c3ce868af1cf7289492d61cfab0b4e0eac0feb70b9d43014b99e7efd53a133d93d3c68682a37faae28ea918108346e229cf86caf6eb90a698687f0572920cdae649a63194764f43346ca136d1e7223e4a93f66fb649a436b9e8e993b79d91cdb3a" + }, + { /* i=9198 cDividendBits=621 cDivisorBits=511 */ + "10a4f73eee0da79380f1baf3228edb4b2c9957798b6d77037750f16c5ae2b51fde6081f380b349274c814a4dbdf6e56c2e20f79a469e999794dd8127c45ca496d75fbe3a7fa736d3dc812e004985", + "58965ccb3aec8798a1fa56795c91d1fa45680c53e82c90435866f84dc9fd8ba320e17844380ddd08b56cbe127bfc2aa368dda1d6dec9b9751a5a074565fad72b", + "30195a0e295c51db07822b020d69", + "432c867b9cfb72f7a29de6e2a06dbb587907d8f72be7c74ba7b932681fa4c571fa36069e02725fc6e30fa8b12e5f3df5fd55f3dd4638bf35cccffbecb5dad9e2" + }, + { /* i=9199 cDividendBits=3876 cDivisorBits=1297 */ + "438547c5ffd2968951081ace3cee6553139efe4f0b5b01720181327c23bcd19c1bb4af0f70281312f517bd48e7dbdc513c72294dab4bf27ebde43ad5c757efc022300de8ce3a8563b9356c2f64e86f605deb8cfc7d57826ad80b3625bc38b92f60e2a23fa567b9e5e85f84f1f071b889e7a430a02edf96c33b177e341686ac9d653e5b2bd9cd091e0cc0e290f92d3dd008d29200e8d0e3d0a456673fd59f93e2c423cc4f74d5389257f7b8a674eb60876496ca4ef3ff1004eaae87bfe97c270942d19db845b1f326fe92a7001291ac863b6406c02cb5c4ca7c770ea75b54754c6d6f897340a833feb26a692233a5c5d26afce97675ed26c3b8b1852da55a8c51458c60717c83bdff01e4c145b58995019d6f3e6b5f63a75a619836043bb59cd18f32ab5c0d25605451454e73c79032ade53b707ce727575d53a3eedf9d7531b34976e006a64858e056252737a35be2ea075bc8b6bac6827090d8a690b96f45772c999f4b34ab83f3d1da87a074687958ba394d51870b4b2db146fcc35087ff5106d7de56134a84694874b193066994db3602bf5c7332a53f83b8210f21907841d07208d545c0e00f1f9e3c52dbc363e329c9429970df53b5f4ffac9dff87c37821ae8e06ee061cfd823b001f5a1d7fed2b9f8788d45d0a21b760489353c83b78811fbfbc", + "9bf8eb0cc2887c7bf16d5948c48025fcfdcd45fdf7da2670beff0e01dbc5f55fce70cd0af3c7aa25d19d902f31d7876fb75ebf644cf6a86c54baa8a0f95fbb026a1d1f1770057c54a2145d41fe1b5129ad66bbd9869ff5253fc9d816a31c898fa680f345e1de1a461f3228d972decd882ddb715d0179f9546d8de44b074b41b34d0cd7a0ac8caa4b4b71a40ba830872f0773547bb3ab22e5cc5f57ce35da29c76976", + "6ed29e86b5354798e7b95c0bf24a286d38a495a37b46578865bb180b7f763589636b51465eee042843cced3fa8f0c25946a9bef0dc5677f324e9dc4510d98f54a8b817868e26c8de421924f452cfd8b79677c77107baf077fc7e8df6dfc33c9239c77d61fb55610f21664782c817f050e275c342c650aba6d1c930936ac608cecdafc2a2a8886e00d692c5b489ecb062e9824344895c1ccba41da28f05a4c0e98c1f3448eec28446c06c571ae8983eedb9c3bd1034e57e20d4327ffcdc253b354a26b195e6ad5825c85ab6a189462823e58b661509f0923ef72aeb56b62002fb170763bdccbc04af7b559fca40d907afd29a1c669807c38cef757a78cdb1b50f24a5d686fd799efae33a663a544e56625c8820c7e103afdd3e0acf42affc9454098eac08630cbedb9689581aad0978abd0ce21d8cc165ffe7d7e441f1ae2ff1f51e6", + "140428020571a365781c45e23c1d6b2f778815de0143e40dd6a0b9ff5f7e57fde9d7a0dbde956e988e37c0bb4be6cfa42e021a0f6d3aa63b18f0cb4e1b4fbf79c7b32589f2f33a17b4f58717e7c4b40d620cb4c124ffa06af2e2f158b83e61974c1a31aeca1b830ebb7cd7caaacc450d9ab511d4dfd4b9ec359ec4f440546ec1117d40f7fc2c02b1ff256036ead8534dad465ae840a9a57e36711c660ae0904ea9b8" + }, + { /* i=9200 cDividendBits=3286 cDivisorBits=1491 */ + "341c7dae8be33e9410058b89f49c7b56d36f3d58a98b80a4760d66ff1c94b27b1fb39b493abcc93fe39bc0976f7c6368411ff6055ba6c5b6bc0b63e1d17a1ec4dc35cd2aeab0c63a4c427814ec3bcad2aaabaac93942912eb9d50e3ab681df296ec2b6cf8f3fcbdb1b1dcdd3910acb73d4f34180dec81e83600e6b6e5ddec37e6d06e738a8a5e73c7528a99bd52edb41372c7f8bc4ac902312b67afb8f75bc51faa65f5a3073e457b1e7805d1c0699e388fd28f7f41eda1c1d5db0e7503f4ad6d49d12e3f252833ad9371b767441c2fbe9af1f8d5946f405a26fca727aacd19332e990c080cfe92861fdc9a4ff60da1794d5e7319503f94989dd6ca275e3be0e88107fcc4b42d4ab623558152fbf36e476a5bc458f52503f6b062b069cff8d116d4459eea4eb6b9f9cba2bd679acb79c6c46c88900e7127bdcad6d373da5b73438d92c5b2c1b8d540945fa224b3a048beaa010c584a8c6b45526cbe7d16fd59c196b0a7eff57f8c4c44350492385028229aa524bdca0c6fcfd0b4e37cdb205d7f0c3c9a9c29625bbe48ff38db007c817b5a3244f34e44157bbb897", + "553d8a539383e58a7a2598f509a4c307d84ed21c704ed9e0fd26deb43019ed782c55fd111c1cfe00565a0442b6fa4c9c409cdbb38a1205759f6b44ae02337dcec89221f4c6f9a0d22a45a400bbd9f46c460cb0d1e18f82ef632f250433411837f52b43aa7b282b0e72eed0e3bb9fdadcdf02befaf82d531a9f9cb2164c8443e746ea2d4ff6ef5855ee42faa076cc1b6797edfc1fe20df755542b55b03677f3693b3763dd9fb3c7ff7576050d66f001b5c3129638028fe61f1760", + "9c811c2a98218520e7b0507dcd6cdc3eff998afcd759ca27e4d05aaa2d399e7fe16da58bd8d4fcdc20264169afc2617735c3a738b8f21a5e25b53aab04b0aa6f41939db3bf712623f863429a17b63c269e21e9463798ba8106d86c7d6401d4a1f31b98c53f4b2a24b636fb019fc009f58aa7b19c515ba296106a5967002cc617c06e5f7254f482186e44256bb12ad5f77966c86145c9f6b4daec71171d4f58ca39ad23be181646442406b970b1937e3c66e74f61a28ffeaa9caa0913094637ff545429e573cea118d9d3dad743efebe39d4a16a0387958ae59714d49da8e15871c", + "017d6b4bdf2130ef285fba2a263ac52c9df1980044fef0867a4bc25804a7ea16a1013378bfba64103f6f72b51b014c4c1c32f71d3c478f7f092f8c19bd21a6bb79432caff6c0aad28e4ebf92fdddd2529737f1632db048701ebfaeb9bde3cd3676bb05e850c5dd55fe7c5808fb634b134f1f15b88f7516bb0c651d079020853d26beafd851ac8258c76b1022e74486eb3e8aabe9bb3e62c4d67c05ca580fc5f536bbce251ae993fc80e679e34fb3042093ac144352e59c218a17" + }, + { /* i=9201 cDividendBits=2412 cDivisorBits=949 */ + "098b23c3373a925fd7bfd792ecfcdd8f0e1f2e95d65913e1a7e0f6397e6555231938b5edf69c38dd889256c7d0ba27002806f3d179f7fb2b635576c240030d8dbd6b63aae6a34a0ecae98ddcb9ab09018f59fe7a231fda14bbd88f50db5ed692f24571993cedc1e493a8afbf8e91027de393a69e9e1349887e1e884bb6a84028d0977610f2e3a1be858c526eddb0754f3366a8d9f3bb447d21462cda906a0c19d188498ba8089acdca4bc422cf9cab21be29aa5383793163557058e60717aca52cea77bcea14acd18b394f348d196835b3e738188e5a1ca4f1a7d693a3fa7fb62827a2fbfb5bca6620f21305dc162978e61baef198e94afd87acb76f2ed64f76913b2a67c0d454b3bd611b6da139beb48b6ab8a59cfaffae03c1b45ec7538c9d604213b83754df725e77b867ee2f", + "0425693c8d1add22c578bec1e2fb9a38d0a0d203f6dd7d44620e06c09c80a292a09e70d6614465e97039500346f5397f8da53d7e24dc66162bfb6f26b8fb8aa861ccbd085dc905e627227bbeabb9da6e9b867936a8d89785feafdc2b84a35ab6dcdc48a6268435ec970d0f5bde51afce71e15ccb732290", + "024d41c1b7c0b94674158630f56a0db6e95670ba0ca2090225acaa150e54e5a006be5e55674c869697da08bb7832833821f3ad11a03b9d508732d1d04f630f7b6077ba5d85cc9c64c7e9009699786bb67cbee1b90eb41281e32430b88121ebb1ca66008243d383aa080dfae1409bc7a64e9d558108c158cc150ccd2ac2de29ea87a3c69172b0cc94b7c4f5cc0bfd94dae99f13fd77e741129be64a4fcc7b7b059c823a7f43b7e5a00cc12fd7a6f89d402207e747d5998b4e", + "02a0364dad0bd94e40acb27e94487609a2339ba97857c27158318de96b4612a550e0d5a1c2ebd3e2804a0dcf7b1fc1838bfc59a263e183279565567837d79cc0e4e51004c591ec30ed25092059b52c8f5e09f7eb39680766fa7da5e82aa118dbaa58cf714a0a7c702fa5ea71cfb10bda976838bf7f364f" + }, + { /* i=9202 cDividendBits=3700 cDivisorBits=524 */ + "0eab9c236d71cb07cad0d0905ac6798e56df08c0d42e55eb76cbd2bb1b3e48f4d8d13e2813568a8cd018b8ef0c050a0bb65ef0aad19c6bc5f0ef74d5bb39e51eec98af4b14794c4acac25553a68d8cae734afd21aa1a9e4645bf4750f1d03fd3e0bfacdd589fe692e397f35e90382aa4a1f21eb004dc20769e647c4646480a5de7852bb4daa65bf25e3b45ade8172d40b55b888adf779f8a9336e409163afe6981346e92367fc7fec0896a0b01607e02e7435ed7c84b7a826feb84166435022939dec867a930b250189950d5a5709f8aae997cfeba761065309cb95124e685d754da32b6669f64388795b3899de385353ed97d3b6f0b84c03ec861962df5a0a5a3ec075338c0b2890e63f5186447b5ed8356a5aa7e64341d64c04e61a13c06dc3238fe32f671d16adaa86b4f176b637ca8ca98cc8e18f8535db06927a1101b4078c23951719bd8bf7e3da798b22498b88dd041dd5d57ffef547e60aac84b6d70053b68d84ce3812c6598726f80c258804fbcc2be63f5f0b26dcf95aabba29566e51a39a5df98f6d790a8ba91bae7d36b8b889f5ae03b9c6ee73b462f7fca5b0703779937ca16b1b86c91c9d52401a95e150904b2b4828253472582813f21e22b5a3e244e17260b28032c1a7d1c8684", + "028da11af5f7f7dc5711564ecffb2c24ef164df89bb67033dfc8792335dc9ce1a1a663e321c4fa7aba80e9b3a8c72fd7bbaf99a928fa3f7ee4adfec97f7e9cfe8258", + "05beeb674a35eeec7c07e2dfe71c3ebadb15eff1c476b5299ba02195e127e7b595a47621e22a7082bce88efa9fa0b6bb568f2c2251717cda688fb2b106edf4f9405479ea49ecc4e357926950a8b5f79bcee095ce2fef9158b4d9e024842620c0aa17f71b332eb48d7164c3e80f4a5222c3a7b8a9fdd563bb2079ff8a02b4f80e4daf602048af899163d725303b421d7ad7ec0c56b2e1248b6092ddef64474ef3315e04e60dd040c89e429952f0f1a956cba4fe921327d93265ec96d1232f8e102f59291e356451141522639f99ab069a3689a6cfc5a76961a9edf491476f1c9f1e52f842319f9f8dd458a2e1918778e2910ef9a299174911808419c922b64de6cd9df8a0102d0e9646f6bfb6d9cb03b0746743319dfbefba8cc15bc77d2f91082b9dcfb29188770c018968728f9805176146110301f7b81ab9a3f59af9e3e642da47217385c328a2e07a1c92285db32144c204818e714c726338cc0ec2a0c3e5ac61696bab69eb14c09df9c4f5c236e89b916d104ba5afc60830c33f47459bc3d7ffbb2eac0131ab89ba7f9fe83c", + "8ccf94e107af8b4dfc3ed79083b44fc2da57ca503741c4a53e12e18213cb769766614530bc77e0014a64cf6c2b28f1ef12b12f03586a020da8a844fb7a6eae39e4" + }, + { /* i=9203 cDividendBits=1286 cDivisorBits=1037 */ + "3fbf222fc8a1017834dc4701b0d16979b4afdedf94a875e59b36ce2978ae42f9780419b4c41780a20a191fffc65f14ec87ad62b5fdb8bb0fc1355b3f5cb570154f822941031f4ee78926bbb46a3b8c5c712f4744fc7a726e485996196d6c4807a1825675469bfa08246db134b0fb6ab0e4e4df1059418fc5f0dece7ddfdf5c2875625a6688dc3dc119d1b1dc00ca09b70961f7f5fab0dd8a5359550865956a66d0", + "08ae436be05ab7a515c828dbd5f759642ff2caffcfcfd350fead55c9de9aea6d23e33a02af9e39c95c6e7d96d5a7a7a8bc3297d11fe264ce2bfcf82659c704db81b7cf30f71a5c47d4f6905b0092eb71a06a035151e68f93a9079b2add55da492c991ee8b40296a5352319f7e5d745b07bee185c8eb4209284d80201dea0976f9068", + "0757edebc2b366b957b1b35577d293aa65e03aac97fd0850de31155b18d1b7cd", + "035c7eec0bc22d4dfa1969d624f521469b1aa4efcaac3abee09c63949d9abbc118518ed7830d93cac5c6faec77a24c595e9ed526918f98f50b22ff34d7bff6fe2aa5ad94a4456a7379e8c61f0204807db2e30e43a76e8a4add66411b1b4c588c2309c93e50297135b3fc10eba3b3be3f767b236a01c98de383edc8fa00f4ebf16b88" + }, + { /* i=9204 cDividendBits=2622 cDivisorBits=1619 */ + "221d61a45c019824dc1023a93044babe538b365109b4adf6efacf476aa46edc6b0036eec809aa643f51866e854e0efc7f2c6140c3833083ae9b798418d1c88b3a1ec1bc47598bb815ff94e3e315a744ab5c8d445ccebb0f485b56cea514bb4fdd11b48dc5815d3da748629fc46c12946a202202969c532597f60df368ebdcbc116110a6b7f4037986e55ffdddf49ea44c0f173f64f9b1a717ec3ba779bd7e794f867101aeb18e33e19a2621c04f7e16a85867c9ee529d7933bb263dec24f95084278ed8ca1c0b33bc6b4063209b3d5133ff678e2ff4cf98f25034ba78aeef13714effeb766b01892ac2e66812b6053a0a5586f530da9909dc7bcb995f74dbc26dc16632a021dafe90b42c136d68693c2328c6072f30e203225f87d806687192883ea524b105730cce906dcfca81434b6003b5cece845b67edd047ade63b9e72bb2e883de5c0a7ee7", + "0697edb31165d8003ac5083b915c421a0e0a41583858d7add265cfc9e1ae959fd0d1d55c6eb4f7c1f5de732b7708fc7f506cb22d01ac522a5d1d97036069ee70afd3573f8e906300acf4a83ed5176c8bcd2862735edf4ee18f0e814ca43a456008d09799ef0dd8b4dd741cc2b7842d67bf3abb1ca911a2e4f426b4a349c576589fb25f6583b1c52a87ddcd37fb8f0d48fabd53b7bd3ef63317e10bf3efab71567e30029397b0c3660ad975068f58ae08ee4308e5ccc0f76352b90bfd0d496039ad6dcbe6135edafccd5195", + "052c8cca0e569c34f75355138791dcdd898610da3bf3ab4207c17b181a4a178c63db0762efa50f7c3656f2ed0790fdf632ce0a0b173965dfb9d1af90ef1c4fb64f54b262ac148d89057b49d20edf4a60cb7053883d64aa60ca15760d071d6d1f8830b49a440754adf40b8bde958c420b367384f3504f9795f3c1d5b02de4", + "037c8e1f1b3b1e762732a19fd36448a9be83f6cb0bf5f2b53ac3e5e746642a256fd55df53b23339760c7a8815963291e66d557017a4c1b4bca87faffdb8e811235be34b55ef73f42eac6b736cf19f631cac3327336420d39a1812cb5ebba869f61672ff3c5a601045cc7f72ad0a05b135527d2905ef70d5dd447a6d5d2f6e8731ed584a0e8f49c0723618403836b40cb093e06905ec94b4289e869e6d2eb86e7999fecc0403ac9c4a180040e04ca03b76ac1ef8b7c3c08214e53ff911afda2bcda9e3a1d22f8070e66a533" + }, + { /* i=9205 cDividendBits=1367 cDivisorBits=1012 */ + "1eecedc76508f4138d5843689a2f3b4de24f66dc5be20bbc0bba8981a51ceb751dfedb0dd43c24d971ea382db13d3e220c30f58bda6dcad826910ded8e36e6a0ef1b96008b962aea37d4a523f857493c8da987599432122fd2e54bc742e88311d923c6f0fab50c7619ec32b4f3f406042d598e00a102936724eeb4bb227ca0bacde7f51b038b5497bbc64ec9c93928823e06ce7f8bac38c8baf4cb044a6f15d9678e8a66e1379e814933d2", + "09e4064428164a78f5d08e560d05a3c856ac4080061cc12634933aeb3ef55e848a7f8bcf6b6276880985bef68670b5fc7b9456cd344a021f98a27d82db371472a09117b6ca5352ef4e630940d1971dbd91534604807a72487bb5697be555c695365d5fc518bc19c663a8d474958aec9bcacbc00b1d75b1402d26fc6befe387", + "032070a6963ad4f3b3e8b399a72caefbb43595a0cbd23ad1e8fe7ef52ce1898e6f1640355467a3d2819d1b8ddb", + "0178e465c243bdef87832866f0b6260da94b6d00be1ea22a143691af02c09c9a3a0747f65a2e8c14d686e717c32c19dcbd2653b707d44a0b0628b5d5c54209845d12388df784e5eb4846e2fd41db68ca4c30474daea49c41c5bf789d3b0b61fdb4db61123dc52e679733a30243c944a2b531c2abe03a915a7af05d40833455" + }, + { /* i=9206 cDividendBits=3979 cDivisorBits=735 */ + "07314fbdd4d7fb4e5678523f66e0b3485d8cd0c19c533b1a2c91f09650426b5bc093c18653a296a90888d347308ee8d7f1c437aff2b5ff94d461b2eb3ee883092fa95b0d370ecc4cf87623a06d81bbbd750aee3dd0043f5eed5e76e55f2d663c52f5fbc126dea7ce40a115d40058bf0b75815165572d7f4b18383b199c59c14f07b5d49e58725ffbc35d8d976fd7efdfe4e10032658d94eefa218d53b83b86475085c4945962b9c77a015a1d7abf70c9b28efebea39c1eb1ea2cfb55a2e28c94d57c5a713a7b7299c8da1d10377ac9c024feb427c628bcf68344b876eef40567671361b861cf5136bf162a85892dda5c3ffa4c2aec9eee1e1d390aa60cd82f480762d4efc5ede2957071c9853d18adc180381ac5012dad6ccca184c4d3976e678b4287878523b0b86178b2e37f24ca876667d02ed500265cd9ddfcd0f1a4101631f557285801c15f66ccc5b867063d62eff29e14d2987beeacce200301ff219c44caa0d326386487fa528caf071437ea0f022303bf362bb847ddb55e7e0eccab0b279df370720461ea8eb974f7c3fb62fecc24a8d3352c5eda37689f91d619c40db9ff2cb0a906b05f595729c342800582f06bedb4469b0c74d57db5aeda979dac2b2dcf1a6374083351f5a247796cee0528f88f023477fd35d5b91ad403e7b11313690442e88d57f14b687eb4cfd99ef3c2", + "4197a607fc20d917dd8733bee1ba8b49ae3ca995ce90e29899a4f0e661176d8c6d3681cf71a9040d930d3e31a9843b361275e5385045dcce24a31c207bd605dcec911fdb6650e7368bce16fb29eb176d4248aafc7adc4123005a861f", + "1c1270de38d2d008f1070d944d1a547e20c4a544ede1a5a32b638685acd2e83b994871d926e61909892f830e3bc86af33bfec169c4a3607d3607d16427c5903ebee32c2d1f98d2e888cbeadc6cd826d41d721353676d05b95e8c401757b7e8649d4956a7caf5ea900f8fab38baf67485181696c5587fe143bc7ad1495a8652935c3d4eea76358045d55f17f58a04608c64ace5633aeae98f481591e68c2e65723656b03fa2ddf032eeebf3692182a34d8e94a2cda78bf8359482db222c3cfe2d32266d79a4d866e23cc213186464ca8e1d92261463e796ff31af79ae14ea45b725e240089172f0ffbf2135014153e9d073fe38c20563f8415f8b837bde642194b9439a440bae3cd885f886fc4ebf25b94a6bd5359e15af86a0ca2229859de17221c454be433c65281fa429a1c124bf73dd81f857ca2c24b388787a74741136bfed36fbcaf9c9ec1349d6cd5564b3bef0b25e4c3adccbe51e9ca6c113116dfb3024e03824ed868af7db4fcd6adc6029bb2addee0f1e4ed507c76826a93a80a6ab1a81e0076a92b01046dc6e1cc7d07ac7ed4eaa7e20a6", + "3b9dcb37d1f6e4eef13fa6f55da2d59664a59d3c75153d2fff586e3dd7cbb32f72127b6b1bb3962cd093535da7f8276dc8b8ff42780e7b8607889b6882cba65dd6a30c2d23df27d5bdfe2fa218a06ba75e020a17f6393e01b4e61ba8" + }, + { /* i=9207 cDividendBits=3348 cDivisorBits=2615 */ + "04728c157d534e00945e957c928a46999b5cb9d850af4b5e06b96c1fdf0b60c3d3a40dcc8434cd7c85e0b1745f9ef0b69e243cdce102a35c967046f2c92275e77d3e9dc255d0fd0f161c3900d5f51f1f07ee8045a7de1ef4960c794e073c2821ffbb911b0547031164f03b1b716b2c60ddd1822ed13eb0b234be6dad03095aae6ddf3572a661eb167edb3a8a9d06d3a72b9e1942d039166d2a6113bb864b03d9747e8f9561f8c1f160601194464240217610b935979bd474218263fcf8b58ea8af932bb44dea65826bb916f3efcd4e4095050d62b9c301761ee62a786bdb19bce1d2d8018d67671ecbb2b83236ca484469192d160f7a1f0b0106656d23ed380ccadeded56327f9cfa5fa63bebea840335d606954c1e51fbe1779e8bc63b095892ff45167bb4a85706e9e111e65f4030f6e181dad72eaf3c812ae8dfbb6e89f4eacc0afedd158790cc1b65641e4ff3e03b861ad389aea199642aaf22a28aa019327ba76092ba6091d71075f48a1aadb4cdc5d4de3caa27babf14d4ca8f9e95a9bd901ea1b37a080f94c5f6b142a7808edee5b0ad043e0c2d0e9f25b31a99e570b2fa136", + "4ba1b03bcc80e9575c5c2a7b70c896b082b19da4969ced384f8d17fe625c72635fb58188f2378ddd1aef539e0c9a2093011540afeb714c05158cbc94b70f5e7702beb27a6cccd19faa2310edb85a1034f51493759b142f36e7ff77012cd592faa8af93dfea183871e620d4b4c10692db6d1059818988d04b1d29e3bc0564f5b7c5809c4a41543fe96c51b757ade6521940a59284de2713a6e4d6a164ec695a9405004b7bdc31beccac4d4e0ee85ffe148c79f8488c9027b89119152c214b62e965197e96cfa52ccb74f454d5144dbb180a229607900a811eef8099d5bed317fc2e1c62500ccda742239c63c3b198912ab458c50d2ae5ece0bfd84428be350b0e4564178a2e5ff201d719da17df2caeb5d80dd361e851ac3a2b0bbe16914023c8d1de1cb63a8f90d77872d8db13c9cacbbeb864b36d361d4d75c88384987fda6c1fffb6e24cca11", + "0f0dc98e73ed076ab2c1a067a472260ff68968c3297ed9205eb86f69dcf93313c85bc2a34d57c9e6a0d53c665df91df7b396bf27038c204e9cc728feef65eef3360c1b1b2eb7645c5e3f8825ad183a956d495bd86b5dd0db0d5f0fe6", + "31748631b9e940b17c0d6af5a7135782f15510f5eaaa8247dafce69e6e71648e6ea47bd37fb9771a305638d9e4f2c058f3e61bc17458efa22bbd786c221d6e11eaf9bd3481a2da68b2fd664c6a3122c5096c7ecdc7d3188e0f245efe0d8d20c57f772a3ab1306b0f4fa783cf7b8c656dab64b79ca38ac269ecd03050eedfeb6b878ea15cc14e45dc98f77c3c14e81189c3907a76556a8069ba37bc09e87b78094b19a4eceaa9c2fb178925f62ae84fbbc518b7266d2ee4532c9ed61a9ccd39a7028d2be6fc468e5b2f8b82445b5ea771406779e3dbf822c91c7d30fff6bf97b3a4efc8c7911e51e6fd2dd40001c890e8761cac60732c6f19d0886e9bd37d50cef1ce2074fde645eeec303b8502725cbb5e0a5ac634abcb0023f7b2337198f187f7ce636a24365ca770cec9057e5283ecf8b3db3840678c37ce1ef5493b56e77f869b78610c16f0" + }, + { /* i=9208 cDividendBits=1488 cDivisorBits=170 */ + "9c11f5fc8086132c815882d6e54403727f06ac11cebeaf989b7f64c3e4d2b13d36a003864619b94ca366faa5f45e757e53901ba137e59bc4f5f62a07d71f68e09f2c3f0e9d0eb126266042bd44cebad36f8a5edfd56225bfa13085ca3d32bdf99c696038637f6019aae9dc4792e8ede59dd701ad86f438e4704564f0aa37ce2142b97ec8dc056a3410d020015cdf59a74b132d51d0c098ed9a565681a69c842fc2ee1f04a3958567d9f0d739bdf3d0402428d802468da51b16dd", + "03deeb7af294e235144c2316667ab36c9a4d836666e4", + "2851f054b873e567f47b42feca8c9f997668e5b7fe13e15b30dcb07ea33b795c737ac99257f683e484802f8e67bf3f2e654df000f068eea71ade39b9d57be4fb2965d2d11b760ee507da2b9faf71553d8d18794dc61dc2f2a87741bc476a26423159502f4337e06cb68a9a9ba1087996fcdc3c18e2917f4c76d10387acfc07bf924657dd88fa9f155dfb33c62b33f08d9a43d8f1cff853335718aa2901bbc81b5e6f4c2994", + "17d7896e82785d583731afadf852f26af6dfbd170d" + }, + { /* i=9209 cDividendBits=735 cDivisorBits=270 */ + "2229e0cb3d3e3c402e3ff2305d839eecda2c24cf8f060740a3956abbf97b0e478a0215df93ac7c9cbc5da7d67f18942be33f19506db6a821aaaf729dfbb7a0c6ba014fb128c37d2664d6f95d85dff542d5a4d2b06bd879e36c48b50b", + "3f9c9e8c0f3a9d11e9c9913109903894e8b8a88556e9b34535c68d95676f3d95c98b", + "897d01e66e28d1999b85c4d1c14ddb41aa8ba766962cdd21b3e07a0cc1494b830ab144edb553ac059b99ab01c022d43bcfe954335304a01c8f23", + "264bbcda0fa76139c79f15acc9ee6994c3568b1ce15a335dc4477b9ba0c26a05820a" + }, + { /* i=9210 cDividendBits=2201 cDivisorBits=389 */ + "01414475323b88fa238b64f0a75eb089c9f6731a2fea1c71fcf485610521e1208639f9d62048227fd08f11a2686265c7c1c352dc29424d0bb676a4fef92dfc619ac4dce3822f8ca427eb92b71b51b83e8e73cc8999ff07dfeae51129de7bb66339952133ed4b7c26c9cc4304339fe54ab9bf0a3204a3f5dced271cc91ad4da419f3d99c9bb1bab05a724de128de69cb84685b9eefa36fe883c2ace57f5b391430eec9cffdd189ee53993be0d7cd7471d113b2b79efc62cf4bc6424d7dad566b13fa43fe9818dd2768df0703df1bb1b34d10c10c686e27a2c069e2c667eb5c62fcb194c6625e0d2fc90879c84995629e4a5e3fdb1d2755e89df30076638acd8c6105351ead98aae77b9e8616a7e40ae74d0ec0dbe", + "1e88de3af46b45f6f1c1da1b162f8939b35fbb34378b8dca68175850a6bb38c712ef3c106a345573ad33ed6bc1ecddb55c", + "0a857afd4a7e65fbe9f62d4ad14b0768b52160e30fbc3175b528f57ac623c1b00c2aa1f2cb2e39562f3a19e88a4b2eb6f27b49b297ddf4924f1ac098b4c5bb6dbb79a00a354bee22c56121b21e00b113cb3d5fcad95942ae52de87281d92939be1e9095f976d5051e18b3739ab9e4481134ecb216752432a256e6431f3053198c42179b421031f0e62d3a00316cb110f74ca5f4cb596d40edc2f327fe0f0f5929565bba15dfeb7ac24c80487fe1ee367db6d1bd8f74740692a3d246ac4b165c9dfffa350f5e6137ed10e39d2426ed059c96ddfe147c2e81d634808aeaed477c460f2cc", + "15d961418d5819812f91c8da61899e461cacc1f0c27163a936791acc9a50eb39dca74d954a23d64ea349576e40084e906e" + }, + { /* i=9211 cDividendBits=415 cDivisorBits=275 */ + "41473da215d519f3ea9d8f8bfb21544cee2f2621493b7c83f01cdf5fc8f79ab1071b7302a08881bdb1ceb1873f61b2452199cf07", + "038205df903d8ce57c0bbdb66024896d7f598fabb6db54592812f71e04dce200cb6618", + "129be272b636fa8248152862de2d31fced13", + "0366d49db22541916d5556df57c3cb73b9ef9620cb823417a50121786e99c7ad5d033f" + }, + { /* i=9212 cDividendBits=1756 cDivisorBits=1335 */ + "0b04fda1203e24d4b3886c6a9f63a009aacaf6cce7ba8d6aa8177b3d0bf989ab024a5a83135eddc524af7a6a2c5be1f7c26a5c0fe28e0d3aafc4d62aefd54b8a25d7111bd6b4c408f6d98bc98b6e97cfa4fea74b97e1025e98e75af9d0050e008fea2694d2e9dc53d30fdfa1d9b1bd57a16ec82cfa24ddc85997b32b9c5499f7787151ba8db735772ca4af519481a865ff8089cbc311a115fba700fe0da7012d9377866a5b3132550b196d12118008ad7d084785fc72a2528837799f5766cd9833c56dadbcc42c7d73c4f2cfb634b09455e80a1c82f6594f26f4b739", + "015a08e2c5a90afa249cacfb4ffe9c790f26feac3cdc2c8da7db89b73c8de34bdd711b60fd312c20bf92b0cc69c51b540ee66a283d0a2861ea83f8b3c45652635f8d6f812f021be9ed0c11894d40386f2ef3c3ee7a5bc4af823186facb4083ba6397cdb7ca2bc2ae444743cdd2151909b0a16cf83d70b1aa67f1b8fb8814ace6570aefe29c62639aef3b50d645c445db0c29fb86863bda2229fa8a251cb65207829aad27365f52", + "0826ff666aacf5284465045964c4209b131695e512b25f4f1fbbb99bb9a5660ac3d12af1387f8a3329fd4be7720bb90d26a5aebd1e5d", + "3b78b5aba820ea236d5320e3b52a5cd2a836c3a1c53cb23819eaed1ffdf2de26f868d8841d598f5dcc885d7e81cf29c822f263882335da96ebff79409ed28f4145734af730e420360b12753884802c94fde268793c05feb260c11739c876a04b4124395da42d24fa8668f741e2eeebc5816f684df560aefc1b2b001743fa1e4b91bee0d5bc6d4f9619369a8455c5cffebc03a380ec305ca8b799fc669649268b5a076d7e7a6f" + }, + { /* i=9213 cDividendBits=64 cDivisorBits=54 */ + "b9edf4cc5abd5ca1", + "38fc33256f8aaf", + "0343", + "0f59f93fec03d4" + }, + { /* i=9214 cDividendBits=1320 cDivisorBits=591 */ + "274cfb9b1b44cea9be21e79304fa0d855548f82bda0aca6a1a8b9ac8ffaa0d0b77a85a6015f63d8545d03b5b026d8900171418ac786fea027388b16c7e15169689e99c84108e584a2ff120e96fbc6f99d4d4614a07a05e7bf776f6b824e23333e1484eee02df4eca94aca4638d996620a9e0bff698a34fdbb2ce694d642ce84ad96d07b6a06f3bc93f56c6d52744a3a28d0f8a59bb681a3fa70e8f82828ac25f16edce5a8a", + "6a13b336214688cd15af87f5eb4eacecbd602dd4d88b63ce9ebbe55b89223973921a0d48285d21577ef1e846b461850e9e4b5709725dba4e0d3daf9ef82330fce9c33584fe51a6ab9a2f", + "5ed8987973052844cdeb6e5f738c1699e8c679397b13c753cad6e780c7dd20c72bbf10aa6457185480a0eb83d8ed77001872e97e665cb054b405098cd055d9f2c98fc086e292a6592e0c7d3191480f1e517f9ef63e86acb7ab7c08", + "131a71e02e8d1f199ccf05c6d9074a385bdb34bb3e2c5ea16dafa24d7a2796d15ad4de1d9fa1a2a9f134165864e91d7270764b736eee249ed5c51dc55dd26a187b05e559ae63035dc512" + }, + { /* i=9215 cDividendBits=1523 cDivisorBits=916 */ + "04e8937b41fa858503b2f10df90760036988d64d01e0e5c5da1b43bf55737713ae869aa9cd98f346032b58687f03f922336aceb6f4c9ab8b47a52952221eb5425de509bc2847ed620f30d24eb665fc842324bb6f0b3d042fa04e9b4d04898805c1e81a34deacfe77bcdad87909c4273fa4d1cdf2c70b06fac09f1d3217e2e2ef2221f84f32224c80807293ff6b36f8a622419a579100f693c57ac1566123b9c726d4cd426dd3fb360674fe4cecbfacb0210133b6d3a19a8698e90102baaaf3", + "0c1091cd2f30caead646915eaaea24be51b1d6dc4ecb11c26866a647e64b7308b6e6dd72d72a9565da8b5e1315510ac923386731f12807238ed7f46a8ddc4da8034da0ad59f58bae313e3d3f0075710f29c2eacb8b0877733fd105d277bdbd51e88b0a95f41d94e3e5c5dcda9c3f3b3d1a60d2", + "6827249c2958290976704a91f253380faa4abe095ff847f918046ddcb0499910587141b60cb56db06f484df2a1215b43afa619ae9978d6109d992889b8e9010f0953b28e9c4f2380383d3ee8", + "0372f7862eb261a2ad78006a8928b8ddda74bedc0f98f0c6e3fffdea3f6d0dd19a6ad7390cf3aacf3e5de90bbdbaabb4ac1429dcf6d209b8bd41f778d23cf2570cb18c34b5d336a488b16237fbbb06d8fb7a1d59cd61872ce245cfa4924022faf3bbf6d20d465fc9e831d989f8cf0e3d5610a3" + }, diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Runtime/testcase/tstRTBigNum-uint128-div-test-data.h virtualbox-4.1.44-dfsg/src/VBox/Runtime/testcase/tstRTBigNum-uint128-div-test-data.h --- virtualbox-4.1.12-dfsg/src/VBox/Runtime/testcase/tstRTBigNum-uint128-div-test-data.h 1970-01-01 00:00:00.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Runtime/testcase/tstRTBigNum-uint128-div-test-data.h 2015-11-11 15:09:13.000000000 +0000 @@ -0,0 +1,16384 @@ + { /* i=0; 30 / 30 */ + RTUINT128_INIT_C(0x0000000000000000, 0x000000000a2f6b94), RTUINT128_INIT_C(0x0000000000000000, 0x000000003501a176), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x0000000000000000, 0x000000000a2f6b94) + }, + { /* i=1; 99 / 99 */ + RTUINT128_INIT_C(0x000000001f9d79d1, 0x152dedb924f4f733), RTUINT128_INIT_C(0x000000008694ce9e, 0xe0893be1f05c4054), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x000000001f9d79d1, 0x152dedb924f4f733) + }, + { /* i=2; 48 / 48 */ + RTUINT128_INIT_C(0x0000000000000000, 0x0000fa026eb8a356), RTUINT128_INIT_C(0x0000000000000000, 0x0000a1fd404839a1), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000001), RTUINT128_INIT_C(0x0000000000000000, 0x000058052e7069b5) + }, + { /* i=3; 96 / 96 */ + RTUINT128_INIT_C(0x00000000b9f24580, 0xcd4512c15a25398d), RTUINT128_INIT_C(0x0000000043a403d9, 0x54a4314b807a4573), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000002), RTUINT128_INIT_C(0x0000000032aa3dce, 0x23fcb02a5930aea7) + }, + { /* i=4; 102 / 102 */ + RTUINT128_INIT_C(0x000000251ce8fe85, 0x580083920b6a28ce), RTUINT128_INIT_C(0x0000000301f41b4d, 0x7ebab8fb30b4dc0a), + RTUINT128_INIT_C(0x0000000000000000, 0x000000000000000c), RTUINT128_INIT_C(0x000000010577b6e3, 0x673fd7cbc2efd856) + }, + { /* i=5; 22 / 22 */ + RTUINT128_INIT_C(0x0000000000000000, 0x00000000002fa4aa), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000274ddb), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000001), RTUINT128_INIT_C(0x0000000000000000, 0x00000000000856cf) + }, + { /* i=6; 125 / 125 */ + RTUINT128_INIT_C(0x01700eb99bd71932, 0x7bac612d6a2e8904), RTUINT128_INIT_C(0x06c58e859b34985d, 0x4a7954ea8e05a5bb), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x01700eb99bd71932, 0x7bac612d6a2e8904) + }, + { /* i=7; 109 / 109 */ + RTUINT128_INIT_C(0x000016f640fe18ba, 0x2606af001ec87edd), RTUINT128_INIT_C(0x000008ae4862f998, 0x43852254c06ea010), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000002), RTUINT128_INIT_C(0x00000599b0382589, 0x9efc6a569deb3ebd) + }, + { /* i=8; 20 / 20 */ + RTUINT128_INIT_C(0x0000000000000000, 0x00000000000d4ad7), RTUINT128_INIT_C(0x0000000000000000, 0x000000000006eca3), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000001), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000065e34) + }, + { /* i=9; 85 / 83 */ + RTUINT128_INIT_C(0x00000000001ac23a, 0x4cc49e865366f30d), RTUINT128_INIT_C(0x0000000000001e75, 0x375bdd8ba4051dbf), + RTUINT128_INIT_C(0x0000000000000000, 0x00000000000000e0), RTUINT128_INIT_C(0x0000000000001ba9, 0xdc62c456ceecebed) + }, + { /* i=10; 87 / 76 */ + RTUINT128_INIT_C(0x00000000007baf91, 0x1647ebf886e95926), RTUINT128_INIT_C(0x00000000000000b7, 0xce6a76494015aa2a), + RTUINT128_INIT_C(0x0000000000000000, 0x000000000000ac44), RTUINT128_INIT_C(0x000000000000000e, 0xba874974f2d3edfe) + }, + { /* i=11; 120 / 28 */ + RTUINT128_INIT_C(0x0091ea14a6dbcf27, 0x6fd76d317e5f7039), RTUINT128_INIT_C(0x0000000000000000, 0x000000000cae1f64), + RTUINT128_INIT_C(0x000000000b81dde2, 0x86493851d145f224), RTUINT128_INIT_C(0x0000000000000000, 0x0000000002427e29) + }, + { /* i=12; 57 / 100 */ + RTUINT128_INIT_C(0x0000000000000000, 0x0127de1a25b46c4d), RTUINT128_INIT_C(0x00000003d4646a43, 0x7de562db58c48078), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x0000000000000000, 0x0127de1a25b46c4d) + }, + { /* i=13; 127 / 120 */ + RTUINT128_INIT_C(0x3413daee95f95613, 0x63e56dc8b9882278), RTUINT128_INIT_C(0x00849017d08c927e, 0xacb55eaaf1671adc), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000064), RTUINT128_INIT_C(0x004b91a11f101c97, 0xed0c73026d41a488) + }, + { /* i=14; 112 / 54 */ + RTUINT128_INIT_C(0x0000235c0e4f3229, 0x0c1f549b7e46666c), RTUINT128_INIT_C(0x0000000000000000, 0x00063dce6a7414a1), + RTUINT128_INIT_C(0x0000000000000000, 0x05aa5141ad9c5df7), RTUINT128_INIT_C(0x0000000000000000, 0x000237383dac0215) + }, + { /* i=15; 85 / 37 */ + RTUINT128_INIT_C(0x00000000000f2c20, 0xbfb41db2ace91ae8), RTUINT128_INIT_C(0x0000000000000000, 0x0000001204a2f46f), + RTUINT128_INIT_C(0x0000000000000000, 0x0000d791673c6ebc), RTUINT128_INIT_C(0x0000000000000000, 0x000000104d31e764) + }, + { /* i=16; 103 / 127 */ + RTUINT128_INIT_C(0x0000005a7d4aad8d, 0x99b65ce8070506cc), RTUINT128_INIT_C(0x23f4eb8b54ffb7d6, 0x84b772579051ae12), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x0000005a7d4aad8d, 0x99b65ce8070506cc) + }, + { /* i=17; 121 / 23 */ + RTUINT128_INIT_C(0x01efa481959d5208, 0xcfe07716f432c914), RTUINT128_INIT_C(0x0000000000000000, 0x00000000000dc73f), + RTUINT128_INIT_C(0x00000023f901c39f, 0xc49b49362ded64ba), RTUINT128_INIT_C(0x0000000000000000, 0x000000000008694e) + }, + { /* i=18; 89 / 10 */ + RTUINT128_INIT_C(0x0000000001aff8ca, 0x3e69bc811ea4b48a), RTUINT128_INIT_C(0x0000000000000000, 0x000000000000011a), + RTUINT128_INIT_C(0x0000000000018825, 0x077bd60075370d59), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000080) + }, + { /* i=19; 89 / 33 */ + RTUINT128_INIT_C(0x000000000104f317, 0x120ccbc67aea1363), RTUINT128_INIT_C(0x0000000000000000, 0x0000000015244c65), + RTUINT128_INIT_C(0x0000000000000000, 0x0c57c3d69fbb28f5), RTUINT128_INIT_C(0x0000000000000000, 0x000000000a762eba) + }, + { /* i=20; 115 / 110 */ + RTUINT128_INIT_C(0x000372c165049c14, 0xcec2e5d843952cf8), RTUINT128_INIT_C(0x00000bd26c9eca02, 0xb36285de97e29d8b), + RTUINT128_INIT_C(0x0000000000000000, 0x000000000000004a), RTUINT128_INIT_C(0x000007edff1e374c, 0xf44833805c13a2ca) + }, + { /* i=21; 127 / 7 */ + RTUINT128_INIT_C(0x3535b57aca5d2556, 0x450c54b51436f395), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000057), + RTUINT128_INIT_C(0x009c924516ec7912, 0xa59344a6dcec08af), RTUINT128_INIT_C(0x0000000000000000, 0x000000000000001c) + }, + { /* i=22; 114 / 93 */ + RTUINT128_INIT_C(0x0002d15bd939e5d7, 0x18464bfc09876ce0), RTUINT128_INIT_C(0x00000000051e8e59, 0xcfc6a9b5665c7e98), + RTUINT128_INIT_C(0x0000000000000000, 0x00000000008ce873), RTUINT128_INIT_C(0x000000000260ee8d, 0xe907b0260020ce98) + }, + { /* i=23; 115 / 121 */ + RTUINT128_INIT_C(0x00063ebc2c417277, 0x44c103d69f19f753), RTUINT128_INIT_C(0x00db2a026c231778, 0x0fd1cabdee74b0fe), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x00063ebc2c417277, 0x44c103d69f19f753) + }, + { /* i=24; 116 / 120 */ + RTUINT128_INIT_C(0x0003cb916149e7cd, 0xb032bb7b3d42ee01), RTUINT128_INIT_C(0x008353ed2e1b4fc7, 0x52a905c2cc29dcc7), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x0003cb916149e7cd, 0xb032bb7b3d42ee01) + }, + { /* i=25; 115 / 94 */ + RTUINT128_INIT_C(0x0003e1827032b5fa, 0xab5102c3a832ad0b), RTUINT128_INIT_C(0x00000000256e2957, 0x5866a77adb46f403), + RTUINT128_INIT_C(0x0000000000000000, 0x00000000001a8afc), RTUINT128_INIT_C(0x000000000299f3eb, 0x4d81a66ac682dc17) + }, + { /* i=26; 127 / 2 */ + RTUINT128_INIT_C(0x0ce41c12a736102d, 0xae9e2972fa8f3f06), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000002), + RTUINT128_INIT_C(0x06720e09539b0816, 0xd74f14b97d479f83), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000) + }, + { /* i=27; 115 / 89 */ + RTUINT128_INIT_C(0x0007b3038e10ef18, 0x5f79bb3e44df4c89), RTUINT128_INIT_C(0x0000000000ec1eec, 0x12eacfed9679212e), + RTUINT128_INIT_C(0x0000000000000000, 0x000000000858f489), RTUINT128_INIT_C(0x00000000007d8983, 0x8b427f00729cb2eb) + }, + { /* i=28; 114 / 114 */ + RTUINT128_INIT_C(0x00003623ea932cc7, 0xe9130886ecbae7fd), RTUINT128_INIT_C(0x000057251527d662, 0x4879855dfdb2b5cb), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x00003623ea932cc7, 0xe9130886ecbae7fd) + }, + { /* i=29; 113 / 72 */ + RTUINT128_INIT_C(0x000046f3afdd2b23, 0x6a939fa147a8a152), RTUINT128_INIT_C(0x000000000000005b, 0x5029b44e473a94db), + RTUINT128_INIT_C(0x0000000000000000, 0x000000c6ea9def81), RTUINT128_INIT_C(0x000000000000005a, 0xddce535039dc29f7) + }, + { /* i=30; 126 / 100 */ + RTUINT128_INIT_C(0x32e8dcdea832c0b2, 0x9c6085d5835f3bb6), RTUINT128_INIT_C(0x0000000c2ffe45ae, 0xcacbcd8e95cd380e), + RTUINT128_INIT_C(0x0000000000000000, 0x00000000042d5d8b), RTUINT128_INIT_C(0x000000083eed9615, 0x19a3930b8d1eb61c) + }, + { /* i=31; 89 / 41 */ + RTUINT128_INIT_C(0x0000000000f1396a, 0x8ffc94c49dd1d756), RTUINT128_INIT_C(0x0000000000000000, 0x000001914b84b61a), + RTUINT128_INIT_C(0x0000000000000000, 0x000099e2a598083b), RTUINT128_INIT_C(0x0000000000000000, 0x000000cd2f1b0f58) + }, + { /* i=32; 1 / 89 */ + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000001), RTUINT128_INIT_C(0x0000000001fcfdc3, 0x577b89f4676aa5e8), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000001) + }, + { /* i=33; 122 / 4 */ + RTUINT128_INIT_C(0x02c922866187e504, 0xd7ea412a4a457512), RTUINT128_INIT_C(0x0000000000000000, 0x000000000000000c), + RTUINT128_INIT_C(0x003b6d8b32cb5315, 0xbca8dac38630746c), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000002) + }, + { /* i=34; 94 / 63 */ + RTUINT128_INIT_C(0x0000000022f64d72, 0xb9c0086f06b24dc7), RTUINT128_INIT_C(0x0000000000000000, 0x20f49d4582ed3800), + RTUINT128_INIT_C(0x0000000000000000, 0x000000010f965a5d), RTUINT128_INIT_C(0x0000000000000000, 0x0544a0e040d4f5c7) + }, + { /* i=35; 121 / 56 */ + RTUINT128_INIT_C(0x00f4d8ee92b33cd7, 0xcd681282a89b63e8), RTUINT128_INIT_C(0x0000000000000000, 0x00969b5c1e606296), + RTUINT128_INIT_C(0x0000000000000001, 0xa0306590181b8a6a), RTUINT128_INIT_C(0x0000000000000000, 0x007f3635a9bbb5cc) + }, + { /* i=36; 121 / 64 */ + RTUINT128_INIT_C(0x01cde28dd5446923, 0x52bfb82e627c5f00), RTUINT128_INIT_C(0x0000000000000000, 0x95ab7df6f7b286d4), + RTUINT128_INIT_C(0x0000000000000000, 0x031605b69cf3245b), RTUINT128_INIT_C(0x0000000000000000, 0x48ef4f380fd4a1a4) + }, + { /* i=37; 127 / 94 */ + RTUINT128_INIT_C(0x2a1bfe968343314b, 0x0dc003819accb065), RTUINT128_INIT_C(0x0000000014e626c1, 0x4243b81a86c4e4a3), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000203d02c6a), RTUINT128_INIT_C(0x0000000007f9db7f, 0x0765a16e488a00e7) + }, + { /* i=38; 125 / 114 */ + RTUINT128_INIT_C(0x165e570de31ed113, 0xad9971e6a402ebed), RTUINT128_INIT_C(0x0000e51469759b98, 0x22c8f9872fed194b), + RTUINT128_INIT_C(0x0000000000000000, 0x00000000000018ff), RTUINT128_INIT_C(0x00003dd5d0629146, 0x300437bfac77b238) + }, + { /* i=39; 115 / 53 */ + RTUINT128_INIT_C(0x000791dfd98ab2b2, 0x6ae9a36291fa1d39), RTUINT128_INIT_C(0x0000000000000000, 0x001d4edd8c0adfe5), + RTUINT128_INIT_C(0x0000000000000000, 0x421ef01ee7d41cef), RTUINT128_INIT_C(0x0000000000000000, 0x0014115c96b20a6e) + }, + { /* i=40; 125 / 54 */ + RTUINT128_INIT_C(0x16694ae4301eec57, 0x801e66e280a285f0), RTUINT128_INIT_C(0x0000000000000000, 0x003915e6e3d18796), + RTUINT128_INIT_C(0x0000000000000064, 0x80df19708dc5cf58), RTUINT128_INIT_C(0x0000000000000000, 0x000e7dc2cf8ba060) + }, + { /* i=41; 36 / 8 */ + RTUINT128_INIT_C(0x0000000000000000, 0x00000009648b478a), RTUINT128_INIT_C(0x0000000000000000, 0x00000000000000ce), + RTUINT128_INIT_C(0x0000000000000000, 0x000000000bac2bd7), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000088) + }, + { /* i=42; 119 / 81 */ + RTUINT128_INIT_C(0x007322517bc76124, 0x11d51e2be5e700a4), RTUINT128_INIT_C(0x000000000000d845, 0x7997a2d67e9a6a5a), + RTUINT128_INIT_C(0x0000000000000000, 0x0000008848b0c85a), RTUINT128_INIT_C(0x00000000000051b9, 0x523353f852a74d00) + }, + { /* i=43; 114 / 80 */ + RTUINT128_INIT_C(0x0002c130f7d8a768, 0xde4434b180e209c9), RTUINT128_INIT_C(0x0000000000003633, 0x5b910d85b918d60e), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000d02c14257), RTUINT128_INIT_C(0x0000000000002418, 0xb6f6866bb5b3af07) + }, + { /* i=44; 122 / 85 */ + RTUINT128_INIT_C(0x03477dc50beae1a2, 0xc63633c7bdf11e95), RTUINT128_INIT_C(0x000000000006027a, 0xff49cfb31de725d8), + RTUINT128_INIT_C(0x0000000000000000, 0x0000008bb08bc0c7), RTUINT128_INIT_C(0x000000000003926e, 0xd0bdb6501698b3ad) + }, + { /* i=45; 98 / 30 */ + RTUINT128_INIT_C(0x00000000730e0559, 0xea132754d663b808), RTUINT128_INIT_C(0x0000000000000000, 0x00000000256a6e04), + RTUINT128_INIT_C(0x0000000000000003, 0x1335973e03f5a5b1), RTUINT128_INIT_C(0x0000000000000000, 0x0000000009111344) + }, + { /* i=46; 117 / 104 */ + RTUINT128_INIT_C(0x000ad3732d2e5cc5, 0x6ef0731a621f898e), RTUINT128_INIT_C(0x000000138c3e55ae, 0x2f096b2eb20187a4), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000008dc7), RTUINT128_INIT_C(0x00000002d388d276, 0xae9569c32b39c512) + }, + { /* i=47; 23 / 22 */ + RTUINT128_INIT_C(0x0000000000000000, 0x00000000004cf433), RTUINT128_INIT_C(0x0000000000000000, 0x00000000001eba46), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000002), RTUINT128_INIT_C(0x0000000000000000, 0x00000000000f7fa7) + }, + { /* i=48; 46 / 28 */ + RTUINT128_INIT_C(0x0000000000000000, 0x00001996980424c7), RTUINT128_INIT_C(0x0000000000000000, 0x0000000005e5c90e), + RTUINT128_INIT_C(0x0000000000000000, 0x00000000000456b8), RTUINT128_INIT_C(0x0000000000000000, 0x000000000518eeb7) + }, + { /* i=49; 15 / 127 */ + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000007bed), RTUINT128_INIT_C(0x5ae0442322a680c1, 0x714cf62bbaad17ea), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000007bed) + }, + { /* i=50; 122 / 34 */ + RTUINT128_INIT_C(0x01e2db58ca5858dc, 0x4c4d4f4cb1ca4ae5), RTUINT128_INIT_C(0x0000000000000000, 0x00000001eb0bf9f8), + RTUINT128_INIT_C(0x0000000000fbbaf3, 0xfc6e929f7e8c9dcd), RTUINT128_INIT_C(0x0000000000000000, 0x000000005d46074d) + }, + { /* i=51; 67 / 12 */ + RTUINT128_INIT_C(0x0000000000000007, 0x424cd53dc2d2aad6), RTUINT128_INIT_C(0x0000000000000000, 0x00000000000009ca), + RTUINT128_INIT_C(0x0000000000000000, 0x00bdd596b3f8eee7), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000990) + }, + { /* i=52; 124 / 83 */ + RTUINT128_INIT_C(0x02afebf4c397a9b2, 0x236a9e7cdbcadd43), RTUINT128_INIT_C(0x0000000000007af6, 0x4a2cbdf581882c74), + RTUINT128_INIT_C(0x0000000000000000, 0x0000059836b2d53c), RTUINT128_INIT_C(0x00000000000053c7, 0x1721613cd23bee13) + }, + { /* i=53; 37 / 24 */ + RTUINT128_INIT_C(0x0000000000000000, 0x0000001bb9c5cfbf), RTUINT128_INIT_C(0x0000000000000000, 0x000000000007c42e), + RTUINT128_INIT_C(0x0000000000000000, 0x00000000000391ea), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000046fb3) + }, + { /* i=54; 20 / 9 */ + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000065aa1), RTUINT128_INIT_C(0x0000000000000000, 0x00000000000001f3), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000342), RTUINT128_INIT_C(0x0000000000000000, 0x00000000000000fb) + }, + { /* i=55; 123 / 104 */ + RTUINT128_INIT_C(0x004a1d446a0ba544, 0x1382ac20f74c3dc4), RTUINT128_INIT_C(0x0000008d3771266a, 0xb86dce0a63a6839c), + RTUINT128_INIT_C(0x0000000000000000, 0x000000000000865b), RTUINT128_INIT_C(0x0000000c7ab720cb, 0x0aa0fe466237cd50) + }, + { /* i=56; 113 / 91 */ + RTUINT128_INIT_C(0x000113b675712a8a, 0x7fc16fb56f18f317), RTUINT128_INIT_C(0x0000000000ecda8d, 0xcf2fab3e43b90282), + RTUINT128_INIT_C(0x0000000000000000, 0x00000000012a000d), RTUINT128_INIT_C(0x000000000056e3d9, 0xa3dae82f135fd27d) + }, + { /* i=57; 128 / 115 */ + RTUINT128_INIT_C(0x6b1b7921dd7df4ec, 0x303144f832f9f8cb), RTUINT128_INIT_C(0x000349d0bc3da2dc, 0x3f4f4114e008e90c), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000002092), RTUINT128_INIT_C(0x0001488ecdfb8b66, 0x2cdb8b0f50c38ff3) + }, + { /* i=58; 122 / 77 */ + RTUINT128_INIT_C(0x00f1afe32f8ec487, 0x800ad63d31c5bfd5), RTUINT128_INIT_C(0x0000000000000c61, 0x222c977907e28480), + RTUINT128_INIT_C(0x0000000000000000, 0x00001385f5d22476), RTUINT128_INIT_C(0x00000000000003f1, 0x7bd7683883baacd5) + }, + { /* i=59; 86 / 19 */ + RTUINT128_INIT_C(0x00000000003cf8b7, 0x27846e326ddf25b9), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000001c5f), + RTUINT128_INIT_C(0x0000000000000226, 0x29a1df846e329c41), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000d9a) + }, + { /* i=60; 95 / 40 */ + RTUINT128_INIT_C(0x0000000070b43969, 0x30f17cb48db14ef6), RTUINT128_INIT_C(0x0000000000000000, 0x000000eb4f320400), + RTUINT128_INIT_C(0x0000000000000000, 0x007a9d2fe030f833), RTUINT128_INIT_C(0x0000000000000000, 0x0000003a92da82f6) + }, + { /* i=61; 111 / 90 */ + RTUINT128_INIT_C(0x000048d1038866ad, 0x128c3e87d86a75fc), RTUINT128_INIT_C(0x000000000004d156, 0x0fb5250b9ed63ffa), + RTUINT128_INIT_C(0x0000000000000000, 0x000000000f1d42ce), RTUINT128_INIT_C(0x0000000000045eae, 0xda9be435e63286d0) + }, + { /* i=62; 123 / 82 */ + RTUINT128_INIT_C(0x0725659f35534451, 0xd494a71a81dcc2e4), RTUINT128_INIT_C(0x0000000000033b28, 0xa3ff5cb13c1240ea), + RTUINT128_INIT_C(0x0000000000000000, 0x000002362f9714f0), RTUINT128_INIT_C(0x00000000000113e9, 0x1b029a3583a79f84) + }, + { /* i=63; 124 / 67 */ + RTUINT128_INIT_C(0x0605ff621940a36a, 0x72ee68f1d09bab14), RTUINT128_INIT_C(0x0000000000000000, 0x91debe084d371cb7), + RTUINT128_INIT_C(0x0000000000000000, 0x0a922f41d0f1a793), RTUINT128_INIT_C(0x0000000000000000, 0x7de08420cdf3ccff) + }, + { /* i=64; 40 / 84 */ + RTUINT128_INIT_C(0x0000000000000000, 0x000000a2b21c37e5), RTUINT128_INIT_C(0x000000000008e26b, 0x0b5e173f944a23e4), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x0000000000000000, 0x000000a2b21c37e5) + }, + { /* i=65; 114 / 123 */ + RTUINT128_INIT_C(0x0003810ec1177ad9, 0x090f0647e65ae44e), RTUINT128_INIT_C(0x052577cc1e86ae58, 0x8b42fdc64816183e), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x0003810ec1177ad9, 0x090f0647e65ae44e) + }, + { /* i=66; 118 / 125 */ + RTUINT128_INIT_C(0x002975f2038a9d6d, 0x648b712abaebb98e), RTUINT128_INIT_C(0x17612e38c9248cef, 0x515e897775638604), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x002975f2038a9d6d, 0x648b712abaebb98e) + }, + { /* i=67; 33 / 27 */ + RTUINT128_INIT_C(0x0000000000000000, 0x0000000087f3ee87), RTUINT128_INIT_C(0x0000000000000000, 0x00000000068eca77), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000014), RTUINT128_INIT_C(0x0000000000000000, 0x0000000004cc1d3b) + }, + { /* i=68; 107 / 58 */ + RTUINT128_INIT_C(0x00000371db73a2b4, 0x151755b4b1154a17), RTUINT128_INIT_C(0x0000000000000000, 0x014cb0341a7157da), + RTUINT128_INIT_C(0x0000000000000000, 0x0002a69459168a03), RTUINT128_INIT_C(0x0000000000000000, 0x00575b86f1a9be89) + }, + { /* i=69; 93 / 23 */ + RTUINT128_INIT_C(0x000000001a4f7c8d, 0x4eabf7638d7095ea), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000098c4a), + RTUINT128_INIT_C(0x00000000000002c1, 0x6f190df9eac07de2), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000029a96) + }, + { /* i=70; 71 / 66 */ + RTUINT128_INIT_C(0x0000000000000052, 0x4114d8f0bb0dfa4b), RTUINT128_INIT_C(0x0000000000000001, 0x4de04ed593ba0a9b), + RTUINT128_INIT_C(0x0000000000000000, 0x000000000000003f), RTUINT128_INIT_C(0x0000000000000000, 0x16e1726160455e26) + }, + { /* i=71; 125 / 112 */ + RTUINT128_INIT_C(0x09f93c57c5474a4f, 0x8e86731191f32f55), RTUINT128_INIT_C(0x00007d3048ec4076, 0xb4fe5eed52b0847a), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000001465), RTUINT128_INIT_C(0x000012988b089556, 0x46c074fa27f56333) + }, + { /* i=72; 61 / 45 */ + RTUINT128_INIT_C(0x0000000000000000, 0x0e8072b12b332f48), RTUINT128_INIT_C(0x0000000000000000, 0x0000102c3444d0eb), + RTUINT128_INIT_C(0x0000000000000000, 0x000000000000e58c), RTUINT128_INIT_C(0x0000000000000000, 0x00000fc306aeb7c4) + }, + { /* i=73; 122 / 101 */ + RTUINT128_INIT_C(0x03f0fb129735547c, 0x32bd58d28493816a), RTUINT128_INIT_C(0x00000002ca642e41, 0x624981c022b20953), + RTUINT128_INIT_C(0x0000000000000000, 0x00000000016990b3), RTUINT128_INIT_C(0x000000017ef09bd3, 0x286a9ee6f6cd4c61) + }, + { /* i=74; 127 / 6 */ + RTUINT128_INIT_C(0x0da27fce861275c3, 0x47fd6944539f0425), RTUINT128_INIT_C(0x0000000000000000, 0x000000000000002b), + RTUINT128_INIT_C(0x00512ca58c0c5616, 0x66e22c1f5b3f3ba1), RTUINT128_INIT_C(0x0000000000000000, 0x000000000000001a) + }, + { /* i=75; 123 / 40 */ + RTUINT128_INIT_C(0x0695656c355b69b1, 0x78e303010817f361), RTUINT128_INIT_C(0x0000000000000000, 0x000000e74f8ef90e), + RTUINT128_INIT_C(0x0000000000074949, 0xf5a1a22d789d36da), RTUINT128_INIT_C(0x0000000000000000, 0x0000005bd238e975) + }, + { /* i=76; 114 / 116 */ + RTUINT128_INIT_C(0x000275350c7e9e1d, 0x9477e51f4a2e6660), RTUINT128_INIT_C(0x000c52e789ea091e, 0xa3ecb42b0a0e3ed8), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x000275350c7e9e1d, 0x9477e51f4a2e6660) + }, + { /* i=77; 56 / 25 */ + RTUINT128_INIT_C(0x0000000000000000, 0x00bb397782ce1e4a), RTUINT128_INIT_C(0x0000000000000000, 0x000000000035e624), + RTUINT128_INIT_C(0x0000000000000000, 0x00000003793f0414), RTUINT128_INIT_C(0x0000000000000000, 0x000000000023937a) + }, + { /* i=78; 127 / 25 */ + RTUINT128_INIT_C(0x1d609f98318731e2, 0x766b629b9784d935), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000b31250), + RTUINT128_INIT_C(0x00000029ff74921d, 0xc8da091aa9b61f1b), RTUINT128_INIT_C(0x0000000000000000, 0x00000000008a3ac5) + }, + { /* i=79; 87 / 8 */ + RTUINT128_INIT_C(0x00000000007aa42b, 0x962e7c8bd607c5c6), RTUINT128_INIT_C(0x0000000000000000, 0x000000000000003d), + RTUINT128_INIT_C(0x00000000000202b0, 0xfa118c889664d946), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000018) + }, + { /* i=80; 55 / 41 */ + RTUINT128_INIT_C(0x0000000000000000, 0x0060800b7e96653c), RTUINT128_INIT_C(0x0000000000000000, 0x000001feb095d5e9), + RTUINT128_INIT_C(0x0000000000000000, 0x000000000000305f), RTUINT128_INIT_C(0x0000000000000000, 0x0000016bdee053c5) + }, + { /* i=81; 52 / 15 */ + RTUINT128_INIT_C(0x0000000000000000, 0x0003eae0b348c59c), RTUINT128_INIT_C(0x0000000000000000, 0x00000000000049a5), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000d9e293e14), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000eb8) + }, + { /* i=82; 63 / 46 */ + RTUINT128_INIT_C(0x0000000000000000, 0x60020c91b9d12429), RTUINT128_INIT_C(0x0000000000000000, 0x00000bd99df42154), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000081a15), RTUINT128_INIT_C(0x0000000000000000, 0x00000a0beec7e045) + }, + { /* i=83; 18 / 49 */ + RTUINT128_INIT_C(0x0000000000000000, 0x00000000000291fa), RTUINT128_INIT_C(0x0000000000000000, 0x000031ffec3e4230), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x0000000000000000, 0x00000000000291fa) + }, + { /* i=84; 107 / 7 */ + RTUINT128_INIT_C(0x000001c94d3540f9, 0xb06c4c783634b2f7), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000031), + RTUINT128_INIT_C(0x00000009552ae1fa, 0xa58f457a9dd74792), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000005) + }, + { /* i=85; 58 / 1 */ + RTUINT128_INIT_C(0x0000000000000000, 0x0300278461153cae), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000001), + RTUINT128_INIT_C(0x0000000000000000, 0x0300278461153cae), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000) + }, + { /* i=86; 124 / 34 */ + RTUINT128_INIT_C(0x0d511ac2431e56fa, 0x3c24055d64fa4f1c), RTUINT128_INIT_C(0x0000000000000000, 0x0000000286249941), + RTUINT128_INIT_C(0x000000000546ad70, 0x43a84ca12ac7064b), RTUINT128_INIT_C(0x0000000000000000, 0x000000027122e311) + }, + { /* i=87; 117 / 126 */ + RTUINT128_INIT_C(0x0001d2b6a39fe5af, 0x6e3cc94d0f4f5105), RTUINT128_INIT_C(0x1e5cac644582e116, 0xdff75d9f890cfb97), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x0001d2b6a39fe5af, 0x6e3cc94d0f4f5105) + }, + { /* i=88; 122 / 57 */ + RTUINT128_INIT_C(0x02f62edec3f6b678, 0x16fb58445a6f0491), RTUINT128_INIT_C(0x0000000000000000, 0x01ed1e7ca61833c5), + RTUINT128_INIT_C(0x0000000000000001, 0x899b426cd6ec718a), RTUINT128_INIT_C(0x0000000000000000, 0x001ce90fbaed275f) + }, + { /* i=89; 115 / 112 */ + RTUINT128_INIT_C(0x0001cb9a68f2e8ad, 0x9d3bde122b5b3fec), RTUINT128_INIT_C(0x000070803b608826, 0x5af540d1455e91ce), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000004), RTUINT128_INIT_C(0x000009997b70c814, 0x3166dacd15e0f8b4) + }, + { /* i=90; 124 / 88 */ + RTUINT128_INIT_C(0x00125f194c3d9df4, 0x0b06701e58461b19), RTUINT128_INIT_C(0x00000000004de6bc, 0xbd1eed26d37f4b16), + RTUINT128_INIT_C(0x0000000000000000, 0x000000003c5f5d73), RTUINT128_INIT_C(0x00000000000ef867, 0xbf007b0212a66237) + }, + { /* i=91; 121 / 86 */ + RTUINT128_INIT_C(0x00ea720c68a22ead, 0x6e5f95c8cf1989fd), RTUINT128_INIT_C(0x00000000000e1484, 0xadcd244689cc27a6), + RTUINT128_INIT_C(0x0000000000000000, 0x00000010a699a82a), RTUINT128_INIT_C(0x00000000000a9551, 0x42a420aee36018c1) + }, + { /* i=92; 128 / 25 */ + RTUINT128_INIT_C(0xdad13139645c96f5, 0x3cef0cb476e9d44c), RTUINT128_INIT_C(0x0000000000000000, 0x00000000009c853c), + RTUINT128_INIT_C(0x00000165e3fc8cb7, 0xe5dafa6b80d4a3c4), RTUINT128_INIT_C(0x0000000000000000, 0x00000000008e9e5c) + }, + { /* i=93; 119 / 114 */ + RTUINT128_INIT_C(0x002ad657c03fa301, 0xa6321843091d0d8f), RTUINT128_INIT_C(0x0000008c9290b39b, 0x0a814e4b09c9aa73), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000004e03), RTUINT128_INIT_C(0x00000009f1d44afd, 0x20d3506679d10436) + }, + { /* i=94; 117 / 97 */ + RTUINT128_INIT_C(0x000f53e1b95234e8, 0x3ae821ca4563283f), RTUINT128_INIT_C(0x0000000054ba1a88, 0xbfa85d341e14c6b5), + RTUINT128_INIT_C(0x0000000000000000, 0x00000000002e4fe4), RTUINT128_INIT_C(0x0000000010cfefb7, 0xd4d4a25b5d0a540b) + }, + { /* i=95; 99 / 71 */ + RTUINT128_INIT_C(0x00000007e667e57d, 0x3403da45aff3c489), RTUINT128_INIT_C(0x0000000000000037, 0x565e1f45e7a6aa70), + RTUINT128_INIT_C(0x0000000000000000, 0x00000000248bfd5a), RTUINT128_INIT_C(0x000000000000002d, 0x027c8e4c3e1b2929) + }, + { /* i=96; 92 / 8 */ + RTUINT128_INIT_C(0x000000000ffa5518, 0xde063118fba2f532), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000054), + RTUINT128_INIT_C(0x000000000030b1c6, 0x642abd8970b5bfdf), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000006) + }, + { /* i=97; 79 / 33 */ + RTUINT128_INIT_C(0x000000000000062f, 0x676e141342782b6b), RTUINT128_INIT_C(0x0000000000000000, 0x00000000d8e1b10e), + RTUINT128_INIT_C(0x0000000000000000, 0x0000074cffa6cffd), RTUINT128_INIT_C(0x0000000000000000, 0x00000000ac2dde95) + }, + { /* i=98; 125 / 121 */ + RTUINT128_INIT_C(0x063dfa1eb5f39c25, 0xc48297bcc0425df3), RTUINT128_INIT_C(0x0061250bd1503bad, 0x0176c4194c4de4b5), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000010), RTUINT128_INIT_C(0x002ba961a0efe155, 0xad165627fb6412a3) + }, + { /* i=99; 115 / 16 */ + RTUINT128_INIT_C(0x00006589b5473f70, 0xa9912992106a8940), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000c2b), + RTUINT128_INIT_C(0x00000008583d93f3, 0x22290e502ce08ee0), RTUINT128_INIT_C(0x0000000000000000, 0x00000000000009a0) + }, + { /* i=100; 89 / 127 */ + RTUINT128_INIT_C(0x0000000001acd135, 0x5cbe3f2e8d42cf38), RTUINT128_INIT_C(0x1bc0363b8734e497, 0x462d5e8fa6823052), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x0000000001acd135, 0x5cbe3f2e8d42cf38) + }, + { /* i=101; 46 / 22 */ + RTUINT128_INIT_C(0x0000000000000000, 0x00000ed49d7a8935), RTUINT128_INIT_C(0x0000000000000000, 0x00000000000b3dfd), + RTUINT128_INIT_C(0x0000000000000000, 0x000000000151b67a), RTUINT128_INIT_C(0x0000000000000000, 0x00000000000020a3) + }, + { /* i=102; 123 / 53 */ + RTUINT128_INIT_C(0x0104b1050e839d9d, 0x3d40ce26645e1a8e), RTUINT128_INIT_C(0x0000000000000000, 0x0010303ee0c91290), + RTUINT128_INIT_C(0x0000000000000010, 0x1a81836aa7cb8e99), RTUINT128_INIT_C(0x0000000000000000, 0x00004db4dbb6227e) + }, + { /* i=103; 111 / 21 */ + RTUINT128_INIT_C(0x000026c3bd29de38, 0x290a704df91531d7), RTUINT128_INIT_C(0x0000000000000000, 0x00000000000381eb), + RTUINT128_INIT_C(0x000000000b0d4c30, 0x3636e87e6f5f883e), RTUINT128_INIT_C(0x0000000000000000, 0x000000000001e2ed) + }, + { /* i=104; 120 / 33 */ + RTUINT128_INIT_C(0x00d5ee3a1c58bdaa, 0xc021aca087997156), RTUINT128_INIT_C(0x0000000000000000, 0x00000001720d7bfd), + RTUINT128_INIT_C(0x000000000093feea, 0x324f6241a8ea2aae), RTUINT128_INIT_C(0x0000000000000000, 0x000000006ed5a960) + }, + { /* i=105; 123 / 125 */ + RTUINT128_INIT_C(0x00e4acfb07be536f, 0x3eb35dc5e22a153d), RTUINT128_INIT_C(0x047dc7b3676eca8c, 0x507d20d645060393), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x00e4acfb07be536f, 0x3eb35dc5e22a153d) + }, + { /* i=106; 98 / 92 */ + RTUINT128_INIT_C(0x0000000133220884, 0x623a7347c8e5a61d), RTUINT128_INIT_C(0x000000000b282f63, 0x4c4627e47f9823a0), + RTUINT128_INIT_C(0x0000000000000000, 0x000000000000001b), RTUINT128_INIT_C(0x0000000005e5090b, 0x56d43e2e53d9e43d) + }, + { /* i=107; 123 / 59 */ + RTUINT128_INIT_C(0x016af1ed0a34f0d8, 0x226f0beadfc982ba), RTUINT128_INIT_C(0x0000000000000000, 0x03fe384141bc86f3), + RTUINT128_INIT_C(0x0000000000000000, 0x5ae4ef6a4c9b9efd), RTUINT128_INIT_C(0x0000000000000000, 0x01f9aa06b40d2a93) + }, + { /* i=108; 16 / 1 */ + RTUINT128_INIT_C(0x0000000000000000, 0x000000000000a8f4), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000001), + RTUINT128_INIT_C(0x0000000000000000, 0x000000000000a8f4), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000) + }, + { /* i=109; 115 / 126 */ + RTUINT128_INIT_C(0x0007327ad5e71bea, 0x5663dd803cd14047), RTUINT128_INIT_C(0x063e0f5f55d3d479, 0x048c60c2a437fcd3), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x0007327ad5e71bea, 0x5663dd803cd14047) + }, + { /* i=110; 84 / 57 */ + RTUINT128_INIT_C(0x00000000000af2b7, 0xd94bda7a87cb62ce), RTUINT128_INIT_C(0x0000000000000000, 0x0073ab00ba65929b), + RTUINT128_INIT_C(0x0000000000000000, 0x00000000183b104f), RTUINT128_INIT_C(0x0000000000000000, 0x00458e73579074f9) + }, + { /* i=111; 31 / 16 */ + RTUINT128_INIT_C(0x0000000000000000, 0x000000005c2061cf), RTUINT128_INIT_C(0x0000000000000000, 0x000000000000513e), + RTUINT128_INIT_C(0x0000000000000000, 0x000000000001224c), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000767) + }, + { /* i=112; 74 / 115 */ + RTUINT128_INIT_C(0x000000000000014d, 0x445e92d7e07c3037), RTUINT128_INIT_C(0x00014a98b1ad0ca8, 0xe6ce339b5038b095), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x000000000000014d, 0x445e92d7e07c3037) + }, + { /* i=113; 121 / 68 */ + RTUINT128_INIT_C(0x01664bafea5658eb, 0x2600b4fe4d36d336), RTUINT128_INIT_C(0x000000000000000d, 0x64d38fffd8a60006), + RTUINT128_INIT_C(0x0000000000000000, 0x001ac03152908dbd), RTUINT128_INIT_C(0x000000000000000d, 0x43c9f03ffd4580c8) + }, + { /* i=114; 114 / 75 */ + RTUINT128_INIT_C(0x0000406847afd4f5, 0x65a04f31f4dc9567), RTUINT128_INIT_C(0x0000000000000122, 0x94269a40709d8245), + RTUINT128_INIT_C(0x0000000000000000, 0x00000038be2ef21d), RTUINT128_INIT_C(0x0000000000000079, 0xf1d2495baf799996) + }, + { /* i=115; 118 / 34 */ + RTUINT128_INIT_C(0x001fa416a8f1369a, 0x3c7b51b9d91245dc), RTUINT128_INIT_C(0x0000000000000000, 0x0000000123825d44), + RTUINT128_INIT_C(0x00000000001bc967, 0x287a015b0759dec7), RTUINT128_INIT_C(0x0000000000000000, 0x00000000e936ce00) + }, + { /* i=116; 120 / 71 */ + RTUINT128_INIT_C(0x0081ea0e47b1aac8, 0xb75057af668bb4f3), RTUINT128_INIT_C(0x000000000000005b, 0x95b4c6006a8f0847), + RTUINT128_INIT_C(0x0000000000000000, 0x00016b23b708f379), RTUINT128_INIT_C(0x000000000000000c, 0x7e71fa3f40dd6664) + }, + { /* i=117; 105 / 89 */ + RTUINT128_INIT_C(0x0000018f2fb5775e, 0xd70cb73117ff0076), RTUINT128_INIT_C(0x0000000000af93ad, 0x962bea608dc71f32), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000024608), RTUINT128_INIT_C(0x00000000007c368a, 0x4ed5e1d9f8da5ae6) + }, + { /* i=118; 77 / 47 */ + RTUINT128_INIT_C(0x000000000000164e, 0xdc875cebac7f8268), RTUINT128_INIT_C(0x0000000000000000, 0x00000ede91b5ec1f), + RTUINT128_INIT_C(0x0000000000000000, 0x000000018011593a), RTUINT128_INIT_C(0x0000000000000000, 0x00000e933c223c62) + }, + { /* i=119; 118 / 82 */ + RTUINT128_INIT_C(0x002df8c378a20653, 0xa5f8d967b87af976), RTUINT128_INIT_C(0x0000000000026f92, 0x2bb031755abbe780), + RTUINT128_INIT_C(0x0000000000000000, 0x00000012df8853f8), RTUINT128_INIT_C(0x000000000000619f, 0x51a7b9d16a643576) + }, + { /* i=120; 115 / 124 */ + RTUINT128_INIT_C(0x000738618291f279, 0xe3f223c3746b4395), RTUINT128_INIT_C(0x06a8a75e25686dd0, 0x821926884ea0f518), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x000738618291f279, 0xe3f223c3746b4395) + }, + { /* i=121; 82 / 38 */ + RTUINT128_INIT_C(0x000000000002e854, 0xc9838f1dfedad341), RTUINT128_INIT_C(0x0000000000000000, 0x000000147176cdb6), + RTUINT128_INIT_C(0x0000000000000000, 0x00002468e13992b2), RTUINT128_INIT_C(0x0000000000000000, 0x000000009567feb5) + }, + { /* i=122; 56 / 42 */ + RTUINT128_INIT_C(0x0000000000000000, 0x008b8a803a9b5b17), RTUINT128_INIT_C(0x0000000000000000, 0x000001b7bb08b7a1), + RTUINT128_INIT_C(0x0000000000000000, 0x000000000000513c), RTUINT128_INIT_C(0x0000000000000000, 0x00000142a276605b) + }, + { /* i=123; 103 / 92 */ + RTUINT128_INIT_C(0x00000000a055f9bb, 0x75c1ab0461463ef7), RTUINT128_INIT_C(0x000000000cc667d7, 0xe0622b23eef672a4), + RTUINT128_INIT_C(0x0000000000000000, 0x000000000000000c), RTUINT128_INIT_C(0x0000000007091b9c, 0xf127a5552db8df47) + }, + { /* i=124; 96 / 8 */ + RTUINT128_INIT_C(0x000000009ee0eaea, 0x57d07bb0f9885a07), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000002), + RTUINT128_INIT_C(0x000000004f707575, 0x2be83dd87cc42d03), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000001) + }, + { /* i=125; 116 / 119 */ + RTUINT128_INIT_C(0x000c324b2a2dd692, 0xc572248e8a6d2779), RTUINT128_INIT_C(0x0064c42299c131c2, 0x115ce6947ee54676), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x000c324b2a2dd692, 0xc572248e8a6d2779) + }, + { /* i=126; 122 / 32 */ + RTUINT128_INIT_C(0x00cc18bd5d5bd193, 0x92c92af4cf307f13), RTUINT128_INIT_C(0x0000000000000000, 0x000000009012ef55), + RTUINT128_INIT_C(0x00000000016aa6f6, 0x5f8d99f892bf6544), RTUINT128_INIT_C(0x0000000000000000, 0x000000000751637f) + }, + { /* i=127; 95 / 36 */ + RTUINT128_INIT_C(0x000000005ca11b58, 0x22f1d128da0d9dff), RTUINT128_INIT_C(0x0000000000000000, 0x00000005785c4900), + RTUINT128_INIT_C(0x0000000000000000, 0x10eefea6da0863d5), RTUINT128_INIT_C(0x0000000000000000, 0x00000003bd09e0ff) + }, + { /* i=128; 77 / 36 */ + RTUINT128_INIT_C(0x0000000000001218, 0x4384df2ee4d41f8a), RTUINT128_INIT_C(0x0000000000000000, 0x0000000360adc5b1), + RTUINT128_INIT_C(0x0000000000000000, 0x0000055b71f37e6f), RTUINT128_INIT_C(0x0000000000000000, 0x00000001aa2b49cb) + }, + { /* i=129; 12 / 46 */ + RTUINT128_INIT_C(0x0000000000000000, 0x000000000000052a), RTUINT128_INIT_C(0x0000000000000000, 0x000024e941bdf2b1), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x0000000000000000, 0x000000000000052a) + }, + { /* i=130; 110 / 49 */ + RTUINT128_INIT_C(0x00002734910c4702, 0xc935f32fcf2d588e), RTUINT128_INIT_C(0x0000000000000000, 0x00015d254b1113aa), + RTUINT128_INIT_C(0x0000000000000000, 0x1cbefe8b1654d395), RTUINT128_INIT_C(0x0000000000000000, 0x00008d02fb3fc89c) + }, + { /* i=131; 103 / 22 */ + RTUINT128_INIT_C(0x0000007125423eb7, 0xfff64394490a139b), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000298095), + RTUINT128_INIT_C(0x000000000002b9eb, 0x787f7da1fab4c17d), RTUINT128_INIT_C(0x0000000000000000, 0x000000000011f5da) + }, + { /* i=132; 100 / 17 */ + RTUINT128_INIT_C(0x0000000954438860, 0xf0929044932d4646), RTUINT128_INIT_C(0x0000000000000000, 0x000000000000e090), + RTUINT128_INIT_C(0x00000000000aa29b, 0x81098cccfc8775b1), RTUINT128_INIT_C(0x0000000000000000, 0x00000000000032b6) + }, + { /* i=133; 76 / 1 */ + RTUINT128_INIT_C(0x00000000000007f1, 0x7bc2da3cc23efd7a), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000001), + RTUINT128_INIT_C(0x00000000000007f1, 0x7bc2da3cc23efd7a), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000) + }, + { /* i=134; 58 / 34 */ + RTUINT128_INIT_C(0x0000000000000000, 0x01a32e050e82495a), RTUINT128_INIT_C(0x0000000000000000, 0x00000001b8e1db38), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000f365fb), RTUINT128_INIT_C(0x0000000000000000, 0x00000000976b4172) + }, + { /* i=135; 122 / 51 */ + RTUINT128_INIT_C(0x01f61a35665bca1b, 0xb1e144982a667288), RTUINT128_INIT_C(0x0000000000000000, 0x0006f8b9e2f4c778), + RTUINT128_INIT_C(0x0000000000000048, 0x0570bc0399d78703), RTUINT128_INIT_C(0x0000000000000000, 0x0005f6892e8fd420) + }, + { /* i=136; 117 / 24 */ + RTUINT128_INIT_C(0x0004cac5e5d27fe0, 0x10800c58ce41cd5a), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000adaf9c), + RTUINT128_INIT_C(0x0000000007102bb6, 0x24093f4f4bdb4224), RTUINT128_INIT_C(0x0000000000000000, 0x00000000001ae36a) + }, + { /* i=137; 113 / 120 */ + RTUINT128_INIT_C(0x000143e7c274d19c, 0x4099ac4f60795f67), RTUINT128_INIT_C(0x008d5d38b6c0eb88, 0x2aa51c4011648dd9), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x000143e7c274d19c, 0x4099ac4f60795f67) + }, + { /* i=138; 121 / 69 */ + RTUINT128_INIT_C(0x00701cf788ef51e4, 0xbf296e39a614d99a), RTUINT128_INIT_C(0x000000000000001a, 0x47ed5046991cc6c8), + RTUINT128_INIT_C(0x0000000000000000, 0x00044414f99beeef), RTUINT128_INIT_C(0x0000000000000015, 0xfc218093105154e2) + }, + { /* i=139; 118 / 37 */ + RTUINT128_INIT_C(0x0011c6369a887785, 0xbfe1b73087784237), RTUINT128_INIT_C(0x0000000000000000, 0x0000001f8fb49883), + RTUINT128_INIT_C(0x000000000000902b, 0xa14129570f3c0535), RTUINT128_INIT_C(0x0000000000000000, 0x00000010d4662018) + }, + { /* i=140; 120 / 116 */ + RTUINT128_INIT_C(0x00815c8d06b1e68d, 0xb56c0404ad2fbef9), RTUINT128_INIT_C(0x0005bb419a232a91, 0x4c8e523f77eb1111), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000016), RTUINT128_INIT_C(0x000344e9c7ac3e11, 0x2130f2905efc4783) + }, + { /* i=141; 113 / 123 */ + RTUINT128_INIT_C(0x000110c63095adf1, 0x7845012a93958d9f), RTUINT128_INIT_C(0x06ca225e7e743252, 0xc73b86ef12dd6510), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x000110c63095adf1, 0x7845012a93958d9f) + }, + { /* i=142; 120 / 125 */ + RTUINT128_INIT_C(0x00a72d3a9e2cd4ff, 0x72cba5f92a82ef45), RTUINT128_INIT_C(0x13df78b07065ff02, 0x78a5160d044ddc44), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x00a72d3a9e2cd4ff, 0x72cba5f92a82ef45) + }, + { /* i=143; 78 / 3 */ + RTUINT128_INIT_C(0x00000000000000e5, 0x8a36ebffaddb012b), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000001), + RTUINT128_INIT_C(0x00000000000000e5, 0x8a36ebffaddb012b), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000) + }, + { /* i=144; 69 / 55 */ + RTUINT128_INIT_C(0x0000000000000012, 0x7a6220b4e7d179d6), RTUINT128_INIT_C(0x0000000000000000, 0x0044a98bbd1dbc41), + RTUINT128_INIT_C(0x0000000000000000, 0x00000000000044e4), RTUINT128_INIT_C(0x0000000000000000, 0x0032020493548bf2) + }, + { /* i=145; 12 / 110 */ + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000d2c), RTUINT128_INIT_C(0x000038c10966ec65, 0xa08a8895d1813a16), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000d2c) + }, + { /* i=146; 89 / 28 */ + RTUINT128_INIT_C(0x0000000000253f5d, 0xf66eff3c6f7cee69), RTUINT128_INIT_C(0x0000000000000000, 0x0000000002b39d26), + RTUINT128_INIT_C(0x0000000000000000, 0x0dc9810d1b57a048), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000d6fbb9) + }, + { /* i=147; 80 / 28 */ + RTUINT128_INIT_C(0x00000000000063f3, 0x2ebf8c3ce495d55d), RTUINT128_INIT_C(0x0000000000000000, 0x000000000893a89c), + RTUINT128_INIT_C(0x0000000000000000, 0x000ba74e01e9c6a7), RTUINT128_INIT_C(0x0000000000000000, 0x0000000005de2f99) + }, + { /* i=148; 116 / 18 */ + RTUINT128_INIT_C(0x0002954c41be9a8c, 0xb4aac06c65656491), RTUINT128_INIT_C(0x0000000000000000, 0x000000000002fe1c), + RTUINT128_INIT_C(0x00000000dcfa0379, 0xb98fd8352c516518), RTUINT128_INIT_C(0x0000000000000000, 0x00000000000085f1) + }, + { /* i=149; 122 / 108 */ + RTUINT128_INIT_C(0x0273ace4f33f924b, 0x27ad16ef6c329d68), RTUINT128_INIT_C(0x000005bc6eb082f1, 0x5cb076813b194695), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000006d6d), RTUINT128_INIT_C(0x00000088aa570d0f, 0x8e159bbf7f621ef7) + }, + { /* i=150; 121 / 73 */ + RTUINT128_INIT_C(0x014d63b6062c4d7b, 0x4a41859e408897c9), RTUINT128_INIT_C(0x00000000000001af, 0xc6e6586390f375a5), + RTUINT128_INIT_C(0x0000000000000000, 0x0000c5aa8c547081), RTUINT128_INIT_C(0x000000000000004e, 0x3a5e9f3cdc3e1fa4) + }, + { /* i=151; 119 / 30 */ + RTUINT128_INIT_C(0x0004d6966f68e1ab, 0x778f27b3f79040c4), RTUINT128_INIT_C(0x0000000000000000, 0x0000000039291a8f), + RTUINT128_INIT_C(0x000000000015ab27, 0x6a0a48ebd5f37165), RTUINT128_INIT_C(0x0000000000000000, 0x0000000014e2a759) + }, + { /* i=152; 44 / 14 */ + RTUINT128_INIT_C(0x0000000000000000, 0x00000944bd1586e5), RTUINT128_INIT_C(0x0000000000000000, 0x00000000000026c0), + RTUINT128_INIT_C(0x0000000000000000, 0x000000003d3b6200), RTUINT128_INIT_C(0x0000000000000000, 0x00000000000006e5) + }, + { /* i=153; 123 / 118 */ + RTUINT128_INIT_C(0x05a709336a52d91a, 0x95f04622342dd1c9), RTUINT128_INIT_C(0x00255a9488938f2b, 0xeb8cc541c50ebebc), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000026), RTUINT128_INIT_C(0x001b9727246b9895, 0x9f0afe5ef3fd81e1) + }, + { /* i=154; 128 / 68 */ + RTUINT128_INIT_C(0x9dfebc1d402ec3f0, 0xb0af92a114825ec5), RTUINT128_INIT_C(0x000000000000000a, 0x579fff9b30b635ac), + RTUINT128_INIT_C(0x0000000000000000, 0x0f46cfec02c6bcb7), RTUINT128_INIT_C(0x0000000000000007, 0xa6c93b0297cfb0d1) + }, + { /* i=155; 128 / 111 */ + RTUINT128_INIT_C(0xb71774cdab890e48, 0x86de26ca6337cb5c), RTUINT128_INIT_C(0x00002b26cae3e6c0, 0x08cff12fe6ddcd22), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000043e34), RTUINT128_INIT_C(0x00002039a85b89e4, 0x9b77f3ae91f3e474) + }, + { /* i=156; 116 / 56 */ + RTUINT128_INIT_C(0x0009fe7a1d246432, 0xdd86b1d9111edf7a), RTUINT128_INIT_C(0x0000000000000000, 0x00b4b2cb700cfa80), + RTUINT128_INIT_C(0x0000000000000000, 0x0e28a8a9db136313), RTUINT128_INIT_C(0x0000000000000000, 0x000ef6a8a3c8c7fa) + }, + { /* i=157; 126 / 95 */ + RTUINT128_INIT_C(0x1d4a02463f80c2d7, 0x0655723fc367007e), RTUINT128_INIT_C(0x0000000061b1e818, 0x71e484912c6fe17e), + RTUINT128_INIT_C(0x0000000000000000, 0x000000004cbfcb70), RTUINT128_INIT_C(0x00000000029304fa, 0xfbbaf614f5a36f5e) + }, + { /* i=158; 122 / 126 */ + RTUINT128_INIT_C(0x006060ac4b9596fe, 0x0531427a6dc153ad), RTUINT128_INIT_C(0x2fc26c673b8a351d, 0xc803e0632406dfab), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x006060ac4b9596fe, 0x0531427a6dc153ad) + }, + { /* i=159; 117 / 106 */ + RTUINT128_INIT_C(0x0009ba7e2eaf9cae, 0x6aea863332acee3e), RTUINT128_INIT_C(0x000001c7c928c078, 0xec2cc8ffcffcb37a), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000576), RTUINT128_INIT_C(0x00000179aa248854, 0xae58e13964b0d202) + }, + { /* i=160; 124 / 89 */ + RTUINT128_INIT_C(0x046687caacece558, 0xd97e0af7ffefc05b), RTUINT128_INIT_C(0x0000000001663dd6, 0x07955ef1c0a16b75), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000325053fea), RTUINT128_INIT_C(0x000000000139da5f, 0x1b23698830a8bc69) + }, + { /* i=161; 72 / 108 */ + RTUINT128_INIT_C(0x00000000000000c7, 0x89f6ed8d29080766), RTUINT128_INIT_C(0x000009da8471d4f0, 0x0b61ae0bcde05379), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x00000000000000c7, 0x89f6ed8d29080766) + }, + { /* i=162; 122 / 92 */ + RTUINT128_INIT_C(0x01b976f6eb82be89, 0xc8bd8598195fafeb), RTUINT128_INIT_C(0x0000000006f3c468, 0xa302a07e3da5f432), + RTUINT128_INIT_C(0x0000000000000000, 0x000000003f7ff6a5), RTUINT128_INIT_C(0x0000000001a216a7, 0x8206589071f33fb1) + }, + { /* i=163; 101 / 90 */ + RTUINT128_INIT_C(0x0000001d25d57f77, 0x64edb2ec17a98181), RTUINT128_INIT_C(0x0000000003ad42ad, 0xc8dbc5f5bfea8b44), + RTUINT128_INIT_C(0x0000000000000000, 0x00000000000007ed), RTUINT128_INIT_C(0x00000000019c0416, 0x6f0db62a01b7b78d) + }, + { /* i=164; 114 / 69 */ + RTUINT128_INIT_C(0x00002d16ba8cc6bf, 0x72f817d07eabbd63), RTUINT128_INIT_C(0x000000000000001e, 0x25fa170c580bf95b), + RTUINT128_INIT_C(0x0000000000000000, 0x0000017edd48e39c), RTUINT128_INIT_C(0x000000000000000c, 0x06c8eacc88ac18ef) + }, + { /* i=165; 75 / 25 */ + RTUINT128_INIT_C(0x000000000000015c, 0xd781828e126aff9d), RTUINT128_INIT_C(0x0000000000000000, 0x0000000001258464), + RTUINT128_INIT_C(0x0000000000000000, 0x00013040cbcbb7d9), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000ae4ad9) + }, + { /* i=166; 20 / 14 */ + RTUINT128_INIT_C(0x0000000000000000, 0x00000000000f4c99), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000904), + RTUINT128_INIT_C(0x0000000000000000, 0x00000000000001b2), RTUINT128_INIT_C(0x0000000000000000, 0x00000000000003d1) + }, + { /* i=167; 127 / 103 */ + RTUINT128_INIT_C(0x63ec329b771c8534, 0xdb826da0a25b2689), RTUINT128_INIT_C(0x0000006711e52fb7, 0xe62336be3c3753dd), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000f82ed8), RTUINT128_INIT_C(0x00000066f5024493, 0x51abb8b2a482ae11) + }, + { /* i=168; 125 / 30 */ + RTUINT128_INIT_C(0x136a59766aaaad95, 0xf53300892f377a9b), RTUINT128_INIT_C(0x0000000000000000, 0x0000000034d5deb8), + RTUINT128_INIT_C(0x000000005e12811a, 0x479b29d92fa70f50), RTUINT128_INIT_C(0x0000000000000000, 0x00000000124d191b) + }, + { /* i=169; 83 / 25 */ + RTUINT128_INIT_C(0x0000000000019573, 0x988adb30eb53ce75), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000754125), + RTUINT128_INIT_C(0x0000000000000000, 0x0375376e8dba7ab8), RTUINT128_INIT_C(0x0000000000000000, 0x00000000001f59dd) + }, + { /* i=170; 73 / 42 */ + RTUINT128_INIT_C(0x0000000000000068, 0x1143766416afc359), RTUINT128_INIT_C(0x0000000000000000, 0x000002b14118d624), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000026a6fd24), RTUINT128_INIT_C(0x0000000000000000, 0x0000023d30381249) + }, + { /* i=171; 114 / 26 */ + RTUINT128_INIT_C(0x0002be48ce56d781, 0xe469969e237c3aba), RTUINT128_INIT_C(0x0000000000000000, 0x0000000001829a29), + RTUINT128_INIT_C(0x0000000001d109ca, 0xec3cf255784801b2), RTUINT128_INIT_C(0x0000000000000000, 0x00000000008ae138) + }, + { /* i=172; 56 / 22 */ + RTUINT128_INIT_C(0x0000000000000000, 0x001b0d0623030bfa), RTUINT128_INIT_C(0x0000000000000000, 0x00000000001e3ea2), + RTUINT128_INIT_C(0x0000000000000000, 0x00000000e4f7828f), RTUINT128_INIT_C(0x0000000000000000, 0x000000000001cb7c) + }, + { /* i=173; 126 / 50 */ + RTUINT128_INIT_C(0x01dfbdf00d4f34b8, 0x94101543b4357b28), RTUINT128_INIT_C(0x0000000000000000, 0x000113a8794bcd02), + RTUINT128_INIT_C(0x00000000000001bd, 0x87aa49177aa7b4de), RTUINT128_INIT_C(0x0000000000000000, 0x0000568d88064b6c) + }, + { /* i=174; 70 / 25 */ + RTUINT128_INIT_C(0x0000000000000033, 0x548660b904ee30c3), RTUINT128_INIT_C(0x0000000000000000, 0x00000000008c22d8), + RTUINT128_INIT_C(0x0000000000000000, 0x00005dc50cf66192), RTUINT128_INIT_C(0x0000000000000000, 0x00000000003e7993) + }, + { /* i=175; 116 / 83 */ + RTUINT128_INIT_C(0x000429f6dd3bbcb7, 0xe7e062e2c76ffd57), RTUINT128_INIT_C(0x0000000000053803, 0x9bdba6369b0b8203), + RTUINT128_INIT_C(0x0000000000000000, 0x00000000cc412594), RTUINT128_INIT_C(0x00000000000139e2, 0x5673dd62143b649b) + }, + { /* i=176; 41 / 63 */ + RTUINT128_INIT_C(0x0000000000000000, 0x0000016098ace4f6), RTUINT128_INIT_C(0x0000000000000000, 0x468cb8153bb0211d), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x0000000000000000, 0x0000016098ace4f6) + }, + { /* i=177; 84 / 16 */ + RTUINT128_INIT_C(0x000000000007fd22, 0x24f24f49e3bc58f9), RTUINT128_INIT_C(0x0000000000000000, 0x000000000000ca61), + RTUINT128_INIT_C(0x000000000000000a, 0x1affe41a76318f27), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000005532) + }, + { /* i=178; 72 / 31 */ + RTUINT128_INIT_C(0x00000000000000bc, 0x59a66e0088ea7908), RTUINT128_INIT_C(0x0000000000000000, 0x00000000378ffc1b), + RTUINT128_INIT_C(0x0000000000000000, 0x00000363cf664213), RTUINT128_INIT_C(0x0000000000000000, 0x000000000279cd07) + }, + { /* i=179; 87 / 74 */ + RTUINT128_INIT_C(0x0000000000387ebf, 0x704c57c212cc8f92), RTUINT128_INIT_C(0x0000000000000050, 0xdb2583f99f373947), + RTUINT128_INIT_C(0x0000000000000000, 0x000000000000b2de), RTUINT128_INIT_C(0x0000000000000041, 0x500054959b158600) + }, + { /* i=180; 89 / 42 */ + RTUINT128_INIT_C(0x00000000019acef7, 0xbb24febc22577a92), RTUINT128_INIT_C(0x0000000000000000, 0x000002a02bd07215), + RTUINT128_INIT_C(0x0000000000000000, 0x00009c7567da8235), RTUINT128_INIT_C(0x0000000000000000, 0x000000529d5f3239) + }, + { /* i=181; 116 / 55 */ + RTUINT128_INIT_C(0x000655ce7bc0d045, 0x38d2b02fb6adc121), RTUINT128_INIT_C(0x0000000000000000, 0x00314d24debfc24b), + RTUINT128_INIT_C(0x0000000000000000, 0x20e55263ca38f6b7), RTUINT128_INIT_C(0x0000000000000000, 0x0023ea85887dcb84) + }, + { /* i=182; 51 / 11 */ + RTUINT128_INIT_C(0x0000000000000000, 0x0001bbd29c2b4b98), RTUINT128_INIT_C(0x0000000000000000, 0x00000000000004f3), + RTUINT128_INIT_C(0x0000000000000000, 0x00000059ace0b752), RTUINT128_INIT_C(0x0000000000000000, 0x00000000000000c2) + }, + { /* i=183; 74 / 23 */ + RTUINT128_INIT_C(0x0000000000000248, 0x0c695be461935dcb), RTUINT128_INIT_C(0x0000000000000000, 0x000000000060dbb9), + RTUINT128_INIT_C(0x0000000000000000, 0x000607a9553c4892), RTUINT128_INIT_C(0x0000000000000000, 0x00000000002e0649) + }, + { /* i=184; 123 / 124 */ + RTUINT128_INIT_C(0x025c696159dc29bb, 0xa9397a7f1c9920b8), RTUINT128_INIT_C(0x0972c477b0e493e8, 0x23c8a81d07a83226), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x025c696159dc29bb, 0xa9397a7f1c9920b8) + }, + { /* i=185; 117 / 96 */ + RTUINT128_INIT_C(0x0005a5cf9b6d7930, 0xc313080dd83baaa8), RTUINT128_INIT_C(0x000000005c3c115c, 0x4d90dae916883896), + RTUINT128_INIT_C(0x0000000000000000, 0x00000000000face4), RTUINT128_INIT_C(0x0000000015db7361, 0x87532356f01a7d10) + }, + { /* i=186; 128 / 119 */ + RTUINT128_INIT_C(0x7c54657fbfb02d03, 0x13a2584d861db566), RTUINT128_INIT_C(0x0079a7e153cde82b, 0x9fb1ba008784217c), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000105), RTUINT128_INIT_C(0x004c3cc54ec27889, 0x436fb5c35c6791fa) + }, + { /* i=187; 38 / 27 */ + RTUINT128_INIT_C(0x0000000000000000, 0x0000003d20844814), RTUINT128_INIT_C(0x0000000000000000, 0x0000000003e31b52), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000fb9), RTUINT128_INIT_C(0x0000000000000000, 0x0000000002cbbbd2) + }, + { /* i=188; 113 / 117 */ + RTUINT128_INIT_C(0x0001b32e2befd42e, 0x0baf3e8dc7d004c3), RTUINT128_INIT_C(0x00106e029e0c209a, 0xfdc5e24fa8f76ea9), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x0001b32e2befd42e, 0x0baf3e8dc7d004c3) + }, + { /* i=189; 98 / 87 */ + RTUINT128_INIT_C(0x0000000154c36d28, 0x83f276e385df4292), RTUINT128_INIT_C(0x00000000002dc4cd, 0xefcba276272352ff), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000772), RTUINT128_INIT_C(0x00000000000027e5, 0x29d2e33420df5404) + }, + { /* i=190; 89 / 54 */ + RTUINT128_INIT_C(0x0000000001b01c7f, 0x0ce5816c9e334afa), RTUINT128_INIT_C(0x0000000000000000, 0x003ef59bc3769498), + RTUINT128_INIT_C(0x0000000000000000, 0x00000006dd0351d2), RTUINT128_INIT_C(0x0000000000000000, 0x00319a92cc214e4a) + }, + { /* i=191; 120 / 85 */ + RTUINT128_INIT_C(0x00ced85b0c336038, 0x61f1895643e037e4), RTUINT128_INIT_C(0x0000000000081802, 0x4fd6c2a44f23792e), + RTUINT128_INIT_C(0x0000000000000000, 0x000000198e58f408), RTUINT128_INIT_C(0x000000000002d837, 0x6adf21decf749674) + }, + { /* i=192; 2 / 114 */ + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000001), RTUINT128_INIT_C(0x000206b755b430cc, 0x47d165b71e4789b4), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000001) + }, + { /* i=193; 113 / 92 */ + RTUINT128_INIT_C(0x0000b183c1a6527a, 0xb05d95a4f9d0b467), RTUINT128_INIT_C(0x000000000a001672, 0xe6fa9e71d8c8a615), + RTUINT128_INIT_C(0x0000000000000000, 0x000000000011c038), RTUINT128_INIT_C(0x000000000329e577, 0xad2624d409f79fcf) + }, + { /* i=194; 74 / 18 */ + RTUINT128_INIT_C(0x00000000000003c2, 0x5ff1d968cf345234), RTUINT128_INIT_C(0x0000000000000000, 0x000000000000b616), + RTUINT128_INIT_C(0x0000000000000000, 0x054907f932a0ff1c), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000007dcc) + }, + { /* i=195; 125 / 96 */ + RTUINT128_INIT_C(0x073fd6cd35d9d4c7, 0x297f0d4a34091246), RTUINT128_INIT_C(0x00000000527a5809, 0x7d6d75ec073a0911), + RTUINT128_INIT_C(0x0000000000000000, 0x000000001680447b), RTUINT128_INIT_C(0x000000004028e409, 0x93f2192b523e331b) + }, + { /* i=196; 121 / 126 */ + RTUINT128_INIT_C(0x01e30c85d074c59e, 0x5bf6e4dbd062c692), RTUINT128_INIT_C(0x27b5da81720ae4dc, 0x4209fe9e2191e75a), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x01e30c85d074c59e, 0x5bf6e4dbd062c692) + }, + { /* i=197; 123 / 87 */ + RTUINT128_INIT_C(0x02df3dc96786ca41, 0xf45fd60034749e91), RTUINT128_INIT_C(0x00000000004fa8bc, 0x15ddd2140de9094a), + RTUINT128_INIT_C(0x0000000000000000, 0x000000093ad7245a), RTUINT128_INIT_C(0x0000000000140376, 0x9ba95a92fa12f28d) + }, + { /* i=198; 118 / 12 */ + RTUINT128_INIT_C(0x00125681adb2efb8, 0xe95a613cb4f0311a), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000e20), + RTUINT128_INIT_C(0x0000014c5abd0157, 0x339ab71b45ff3784), RTUINT128_INIT_C(0x0000000000000000, 0x000000000000089a) + }, + { /* i=199; 53 / 31 */ + RTUINT128_INIT_C(0x0000000000000000, 0x000698fd7bea27b3), RTUINT128_INIT_C(0x0000000000000000, 0x0000000052f2c63e), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000145ca8), RTUINT128_INIT_C(0x0000000000000000, 0x000000005081c703) + }, + { /* i=200; 77 / 32 */ + RTUINT128_INIT_C(0x00000000000000a6, 0xbe0c51a100982298), RTUINT128_INIT_C(0x0000000000000000, 0x00000000dc3a9579), + RTUINT128_INIT_C(0x0000000000000000, 0x000000c1d36c819a), RTUINT128_INIT_C(0x0000000000000000, 0x0000000035fc3ece) + }, + { /* i=201; 126 / 75 */ + RTUINT128_INIT_C(0x34635c7c4e8826d2, 0x1b7c878625f30fa0), RTUINT128_INIT_C(0x00000000000005a0, 0x8f02ecd20d34b67b), + RTUINT128_INIT_C(0x0000000000000000, 0x00094f5141e647bd), RTUINT128_INIT_C(0x0000000000000578, 0xc0427d2c99ea39d1) + }, + { /* i=202; 56 / 35 */ + RTUINT128_INIT_C(0x0000000000000000, 0x00725e036fb0a2ab), RTUINT128_INIT_C(0x0000000000000000, 0x00000002cb244934), + RTUINT128_INIT_C(0x0000000000000000, 0x000000000028f0ad), RTUINT128_INIT_C(0x0000000000000000, 0x00000002b36a6a87) + }, + { /* i=203; 98 / 97 */ + RTUINT128_INIT_C(0x00000002caf4f0f3, 0xaebee2941ade643f), RTUINT128_INIT_C(0x0000000039a3bd96, 0xe49d3ff32baae96d), + RTUINT128_INIT_C(0x0000000000000000, 0x000000000000000c), RTUINT128_INIT_C(0x0000000017480de0, 0xf75fe32e0edb7323) + }, + { /* i=204; 124 / 119 */ + RTUINT128_INIT_C(0x0fb019475e0f18a1, 0xbdc3523bfc62aae7), RTUINT128_INIT_C(0x00717ff49dc8fc89, 0x6d920a851a406767), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000023), RTUINT128_INIT_C(0x002b9ad5cb9491d7, 0xc2cbe209659487d2) + }, + { /* i=205; 92 / 64 */ + RTUINT128_INIT_C(0x000000000a4b6afa, 0xad01619d7842082d), RTUINT128_INIT_C(0x0000000000000000, 0x1ab70555cde9958f), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000062a64f25), RTUINT128_INIT_C(0x0000000000000000, 0x077130f3e79e4982) + }, + { /* i=206; 91 / 15 */ + RTUINT128_INIT_C(0x0000000002b789c6, 0x09204dcf4820a308), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000001538), + RTUINT128_INIT_C(0x00000000000020c7, 0x87a2ed8a43d4a5eb), RTUINT128_INIT_C(0x0000000000000000, 0x00000000000010a0) + }, + { /* i=207; 119 / 89 */ + RTUINT128_INIT_C(0x00775090b3be9ae6, 0x314385fcf254eec2), RTUINT128_INIT_C(0x0000000001efc04a, 0xa54e02ca1c6d66dc), + RTUINT128_INIT_C(0x0000000000000000, 0x000000003d9cd9c7), RTUINT128_INIT_C(0x000000000180888c, 0xb552a49b03097dbe) + }, + { /* i=208; 38 / 52 */ + RTUINT128_INIT_C(0x0000000000000000, 0x000000059d1dbc93), RTUINT128_INIT_C(0x0000000000000000, 0x000e582469a1d393), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x0000000000000000, 0x000000059d1dbc93) + }, + { /* i=209; 123 / 106 */ + RTUINT128_INIT_C(0x0408e3d1d1eaeed3, 0x394eaa334aef247e), RTUINT128_INIT_C(0x0000026dd1fc39c4, 0x912ae791f607332b), + RTUINT128_INIT_C(0x0000000000000000, 0x000000000001a93c), RTUINT128_INIT_C(0x00000078dee60fc0, 0xf8cf128bad4cc36a) + }, + { /* i=210; 88 / 29 */ + RTUINT128_INIT_C(0x0000000000e23e00, 0x5eb75a93bdfb89d3), RTUINT128_INIT_C(0x0000000000000000, 0x000000001af3fa8a), + RTUINT128_INIT_C(0x0000000000000000, 0x0864d9331aea77f0), RTUINT128_INIT_C(0x0000000000000000, 0x0000000009a68273) + }, + { /* i=211; 83 / 7 */ + RTUINT128_INIT_C(0x0000000000012c61, 0x681c75f3a445a95f), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000026), + RTUINT128_INIT_C(0x00000000000007e7, 0x9dafe828188891ee), RTUINT128_INIT_C(0x0000000000000000, 0x000000000000000b) + }, + { /* i=212; 121 / 91 */ + RTUINT128_INIT_C(0x008b45d3b1795383, 0xa1d3111f574a7026), RTUINT128_INIT_C(0x0000000007055619, 0xcf1083711ee914b9), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000013d6480b), RTUINT128_INIT_C(0x0000000000160c9b, 0xd14a773067cc8433) + }, + { /* i=213; 80 / 64 */ + RTUINT128_INIT_C(0x0000000000001682, 0x09c81f24e8d2f95b), RTUINT128_INIT_C(0x0000000000000000, 0x9abe07156d48252d), + RTUINT128_INIT_C(0x0000000000000000, 0x000000000000253c), RTUINT128_INIT_C(0x0000000000000000, 0x4e385d53de8ac1cf) + }, + { /* i=214; 121 / 124 */ + RTUINT128_INIT_C(0x015948fd88d11766, 0x2fdae7679e8427eb), RTUINT128_INIT_C(0x02121f97349a81cc, 0xa63a7db16e17039c), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x015948fd88d11766, 0x2fdae7679e8427eb) + }, + { /* i=215; 121 / 100 */ + RTUINT128_INIT_C(0x014b3d0a7ade69a6, 0x57dc40b19899167c), RTUINT128_INIT_C(0x00000004282c0dc6, 0xf590eb4ffb93276d), + RTUINT128_INIT_C(0x0000000000000000, 0x00000000004faeff), RTUINT128_INIT_C(0x000000004539add6, 0x9ee2dc9ed195bae9) + }, + { /* i=216; 114 / 81 */ + RTUINT128_INIT_C(0x000021795e8dfe28, 0x70fbe411a1f15a2f), RTUINT128_INIT_C(0x000000000001ed54, 0xa21a5a7b6ef43324), + RTUINT128_INIT_C(0x0000000000000000, 0x00000000115ed520), RTUINT128_INIT_C(0x000000000001a304, 0xd4b6ec4269a601af) + }, + { /* i=217; 96 / 63 */ + RTUINT128_INIT_C(0x000000007f24b53e, 0x33648120c8a23039), RTUINT128_INIT_C(0x0000000000000000, 0x1cb71055442cbcb0), + RTUINT128_INIT_C(0x0000000000000000, 0x000000046d81568f), RTUINT128_INIT_C(0x0000000000000000, 0x0ff462f6a791a9e9) + }, + { /* i=218; 118 / 74 */ + RTUINT128_INIT_C(0x002abaa4f041c003, 0xf64d88a959a826ce), RTUINT128_INIT_C(0x00000000000001fe, 0x4072182cfa57a9ab), + RTUINT128_INIT_C(0x0000000000000000, 0x000015700fbef14e), RTUINT128_INIT_C(0x0000000000000191, 0x9f75a1779a4e79b4) + }, + { /* i=219; 119 / 52 */ + RTUINT128_INIT_C(0x0065b4a02e93f3e5, 0x7a41342da2fd29c7), RTUINT128_INIT_C(0x0000000000000000, 0x000313ce5e570b3d), + RTUINT128_INIT_C(0x0000000000000021, 0x0cae49a826060c8d), RTUINT128_INIT_C(0x0000000000000000, 0x0000b85a47171d2e) + }, + { /* i=220; 117 / 63 */ + RTUINT128_INIT_C(0x0006fa009e0ea312, 0x062f761918b6e2ed), RTUINT128_INIT_C(0x0000000000000000, 0x6faf5d4823b5d937), + RTUINT128_INIT_C(0x0000000000000000, 0x000ffdcdeedf86f2), RTUINT128_INIT_C(0x0000000000000000, 0x4a080dd1ce33c2ef) + }, + { /* i=221; 117 / 53 */ + RTUINT128_INIT_C(0x000e49d24ea1caab, 0xe33efd030c5a62a5), RTUINT128_INIT_C(0x0000000000000000, 0x001e5ee1efa62516), + RTUINT128_INIT_C(0x0000000000000000, 0x78707d7f73425feb), RTUINT128_INIT_C(0x0000000000000000, 0x00187c44f5672d73) + }, + { /* i=222; 125 / 123 */ + RTUINT128_INIT_C(0x10e608a4e0ab0211, 0x4b17e9d55372bfb0), RTUINT128_INIT_C(0x026255c86587bd02, 0x91fe011b75077b97), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000007), RTUINT128_INIT_C(0x0035b02a19f4d6ff, 0x4d25e215203e5e8f) + }, + { /* i=223; 118 / 104 */ + RTUINT128_INIT_C(0x00120bcdcc97e3b5, 0x5d8e7d9ace8760ff), RTUINT128_INIT_C(0x00000031789c3c05, 0x872802d2d42270b9), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000005d62), RTUINT128_INIT_C(0x0000000cdefae77e, 0x1736d1d51665052d) + }, + { /* i=224; 36 / 26 */ + RTUINT128_INIT_C(0x0000000000000000, 0x00000008e508c0fd), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000227122), + RTUINT128_INIT_C(0x0000000000000000, 0x000000000000421c), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000199d45) + }, + { /* i=225; 94 / 96 */ + RTUINT128_INIT_C(0x00000000184e7009, 0x5e8d724ca7b2cf98), RTUINT128_INIT_C(0x00000000a598261f, 0x4ea4be809960c58c), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x00000000184e7009, 0x5e8d724ca7b2cf98) + }, + { /* i=226; 114 / 35 */ + RTUINT128_INIT_C(0x000151626f8c82ff, 0xfe8e5dd757c698ab), RTUINT128_INIT_C(0x0000000000000000, 0x00000000fea64df2), + RTUINT128_INIT_C(0x000000000001532c, 0x725a125392da62d4), RTUINT128_INIT_C(0x0000000000000000, 0x0000000068236843) + }, + { /* i=227; 92 / 54 */ + RTUINT128_INIT_C(0x0000000002a92b2c, 0xef94c292f0d71882), RTUINT128_INIT_C(0x0000000000000000, 0x001bd99606fbfa6c), + RTUINT128_INIT_C(0x0000000000000000, 0x0000001875620d0b), RTUINT128_INIT_C(0x0000000000000000, 0x00167abc9ef3d9de) + }, + { /* i=228; 126 / 70 */ + RTUINT128_INIT_C(0x2bc39650b6c5453d, 0x781a361ddd39b0c6), RTUINT128_INIT_C(0x0000000000000016, 0x3ec0e0f8a01ca4b6), + RTUINT128_INIT_C(0x0000000000000000, 0x01f7a46926e2dbc4), RTUINT128_INIT_C(0x0000000000000007, 0x41d9866859b7e36e) + }, + { /* i=229; 120 / 83 */ + RTUINT128_INIT_C(0x007377213265d043, 0x5f7fae1d24fc3fa8), RTUINT128_INIT_C(0x00000000000417c3, 0xd7e78adbae9495dd), + RTUINT128_INIT_C(0x0000000000000000, 0x0000001c362b8e99), RTUINT128_INIT_C(0x000000000001af3f, 0x251dc73d98ef1893) + }, + { /* i=230; 115 / 46 */ + RTUINT128_INIT_C(0x00040cf5c9dab6d7, 0xf52204a637bfae6f), RTUINT128_INIT_C(0x0000000000000000, 0x000036ad4890ee44), + RTUINT128_INIT_C(0x0000000000000012, 0xf719ba00a541faff), RTUINT128_INIT_C(0x0000000000000000, 0x000016cf136ff0b3) + }, + { /* i=231; 117 / 117 */ + RTUINT128_INIT_C(0x001a3674222b6831, 0xfc9046a154c75088), RTUINT128_INIT_C(0x000770b2de162031, 0x6f03a83d1e4646e8), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000003), RTUINT128_INIT_C(0x0003e45b87e9079d, 0xaf854de9f9f47bd0) + }, + { /* i=232; 125 / 35 */ + RTUINT128_INIT_C(0x09ee6876ba676c6a, 0x69aa205b8e7521da), RTUINT128_INIT_C(0x0000000000000000, 0x00000007e8c36b93), + RTUINT128_INIT_C(0x00000000014172ba, 0xd8dbfc524eb212ca), RTUINT128_INIT_C(0x0000000000000000, 0x00000002907be9dc) + }, + { /* i=233; 65 / 40 */ + RTUINT128_INIT_C(0x0000000000000000, 0xfc884aac3d8c1bba), RTUINT128_INIT_C(0x0000000000000000, 0x000000ad43d33f53), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000001751e3d), RTUINT128_INIT_C(0x0000000000000000, 0x000000a50edb4af3) + }, + { /* i=234; 74 / 54 */ + RTUINT128_INIT_C(0x0000000000000078, 0x9d0110e5a505634e), RTUINT128_INIT_C(0x0000000000000000, 0x00224cd610309813), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000038433), RTUINT128_INIT_C(0x0000000000000000, 0x000b315594b44b85) + }, + { /* i=235; 120 / 99 */ + RTUINT128_INIT_C(0x005502d6eab6584e, 0x89969254a6273f2e), RTUINT128_INIT_C(0x0000000027e72530, 0xe53cc1bb22214084), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000002216510), RTUINT128_INIT_C(0x000000000d7fb476, 0xcdf7f9610c9b22ee) + }, + { /* i=236; 121 / 46 */ + RTUINT128_INIT_C(0x0193fd4f1fefc9a2, 0x1c2c1ed644d966cb), RTUINT128_INIT_C(0x0000000000000000, 0x000015a93ea49911), + RTUINT128_INIT_C(0x00000000000012a6, 0x83e466458f24690a), RTUINT128_INIT_C(0x0000000000000000, 0x0000134d4a3f7321) + }, + { /* i=237; 125 / 117 */ + RTUINT128_INIT_C(0x16fa911e801f92f9, 0xd2d33bcfaaa92916), RTUINT128_INIT_C(0x001e30d392a22675, 0xce865dfde52c29df), + RTUINT128_INIT_C(0x0000000000000000, 0x00000000000000c2), RTUINT128_INIT_C(0x001990c9613e6db3, 0x51000167ff316e18) + }, + { /* i=238; 102 / 83 */ + RTUINT128_INIT_C(0x00000006dcba68de, 0xf4966de3aea6c927), RTUINT128_INIT_C(0x00000000000135da, 0x3b9af417998e8fcb), + RTUINT128_INIT_C(0x0000000000000000, 0x000000000005ab68), RTUINT128_INIT_C(0x000000000000985f, 0x782180f243b8c5af) + }, + { /* i=239; 115 / 78 */ + RTUINT128_INIT_C(0x0004e5493a492ccf, 0xcba84e5a8c81e8b2), RTUINT128_INIT_C(0x0000000000001119, 0x5a9f2dfd03afea3e), + RTUINT128_INIT_C(0x0000000000000000, 0x000000494bb3093e), RTUINT128_INIT_C(0x000000000000078f, 0xeb555ca38550ffae) + }, + { /* i=240; 25 / 68 */ + RTUINT128_INIT_C(0x0000000000000000, 0x0000000001e9cec6), RTUINT128_INIT_C(0x0000000000000008, 0x9f65b2590a86ab9c), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x0000000000000000, 0x0000000001e9cec6) + }, + { /* i=241; 125 / 108 */ + RTUINT128_INIT_C(0x16533338aaed86d1, 0x21eefeec8c33e942), RTUINT128_INIT_C(0x0000040037b7e125, 0x9300006802b39346), + RTUINT128_INIT_C(0x0000000000000000, 0x000000000005947f), RTUINT128_INIT_C(0x0000004f52cf3d31, 0x32aa9c41839b6188) + }, + { /* i=242; 126 / 97 */ + RTUINT128_INIT_C(0x16a900c9cc0d894a, 0x5a5a98bcddc2d065), RTUINT128_INIT_C(0x000000005d9644a8, 0x5236b8675815986a), + RTUINT128_INIT_C(0x0000000000000000, 0x000000003dfc32a0), RTUINT128_INIT_C(0x000000004371c83a, 0x226b4e5e4e26da25) + }, + { /* i=243; 125 / 89 */ + RTUINT128_INIT_C(0x186281c183dc36b6, 0x405d0f755fd6e287), RTUINT128_INIT_C(0x00000000000130be, 0x31cc5d4efd108517), + RTUINT128_INIT_C(0x0000000000000000, 0x0000147c082e9c1f), RTUINT128_INIT_C(0x000000000000b5aa, 0x9541606a079ac0be) + }, + { /* i=244; 106 / 105 */ + RTUINT128_INIT_C(0x000002c7ee11df01, 0x36b2ebe265fb86fe), RTUINT128_INIT_C(0x00000105f1a2701a, 0xd9d2dbe2321abf7c), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000002), RTUINT128_INIT_C(0x000000bc0accfecb, 0x830d341e01c60806) + }, + { /* i=245; 115 / 43 */ + RTUINT128_INIT_C(0x0005f1f4a140e5df, 0x215b35df5a93d3fc), RTUINT128_INIT_C(0x0000000000000000, 0x000002af40aae6e6), + RTUINT128_INIT_C(0x0000000000000236, 0xecc79418ae9b5eb8), RTUINT128_INIT_C(0x0000000000000000, 0x0000002ffdb36aac) + }, + { /* i=246; 114 / 14 */ + RTUINT128_INIT_C(0x0003b4f725460f95, 0xb0dd20b647c03153), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000246), + RTUINT128_INIT_C(0x000001a16a12279d, 0x49c2cc97a03bb630), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000033) + }, + { /* i=247; 118 / 87 */ + RTUINT128_INIT_C(0x003a630061b948f1, 0xbefe9f5121f2d3ba), RTUINT128_INIT_C(0x00000000003d7a50, 0x3906cac629a25b8c), + RTUINT128_INIT_C(0x0000000000000000, 0x00000000f320e4ca), RTUINT128_INIT_C(0x00000000001ebf87, 0x40bfd0ae58cde742) + }, + { /* i=248; 61 / 37 */ + RTUINT128_INIT_C(0x0000000000000000, 0x06bdcdfc96f60ac5), RTUINT128_INIT_C(0x0000000000000000, 0x0000001c9e5b1fa7), + RTUINT128_INIT_C(0x0000000000000000, 0x00000000003c4dbb), RTUINT128_INIT_C(0x0000000000000000, 0x0000001816bcb0c8) + }, + { /* i=249; 102 / 2 */ + RTUINT128_INIT_C(0x0000002aecf73022, 0x4f7d7da6b8405c8a), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000002), + RTUINT128_INIT_C(0x00000015767b9811, 0x27bebed35c202e45), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000) + }, + { /* i=250; 74 / 4 */ + RTUINT128_INIT_C(0x00000000000002a1, 0x6d38415a88e36904), RTUINT128_INIT_C(0x0000000000000000, 0x000000000000000d), + RTUINT128_INIT_C(0x0000000000000033, 0xcd5318b831ea1bc5), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000003) + }, + { /* i=251; 116 / 103 */ + RTUINT128_INIT_C(0x000be3a1b40a81bf, 0x541dee85c9067c00), RTUINT128_INIT_C(0x000000699e27ac88, 0x601882e45dfd4dfc), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000001cd1), RTUINT128_INIT_C(0x0000001b3ec7bbe6, 0x31ca17cd58b24144) + }, + { /* i=252; 123 / 103 */ + RTUINT128_INIT_C(0x055894da3aeacf88, 0x806f2fb1eeebc5b2), RTUINT128_INIT_C(0x0000003bef143c41, 0xb6bae04a74fb1692), + RTUINT128_INIT_C(0x0000000000000000, 0x000000000016d5b8), RTUINT128_INIT_C(0x0000001d60971f34, 0x6719f945002012c2) + }, + { /* i=253; 122 / 96 */ + RTUINT128_INIT_C(0x00d2e977163f37aa, 0x2ca4a3854392e662), RTUINT128_INIT_C(0x00000000e520c60e, 0x4943e8f4d8bcc82f), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000eba5c8), RTUINT128_INIT_C(0x0000000025e005f1, 0x51addf3e7feb36aa) + }, + { /* i=254; 127 / 50 */ + RTUINT128_INIT_C(0x27e1b90bb8023dbb, 0x2e9a7015f692c640), RTUINT128_INIT_C(0x0000000000000000, 0x00014d58b7320ac2), + RTUINT128_INIT_C(0x0000000000001ea0, 0xc1a0dea4d37ef6c1), RTUINT128_INIT_C(0x0000000000000000, 0x0000566292063dfe) + }, + { /* i=255; 123 / 121 */ + RTUINT128_INIT_C(0x006b9ec733e6fb82, 0x4ed9cc82ccf18c49), RTUINT128_INIT_C(0x0058661b0b882e06, 0x13a1a448557763c4), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000001), RTUINT128_INIT_C(0x001338ac285ecd7c, 0x3b38283a777a2885) + }, + { /* i=256; 86 / 36 */ + RTUINT128_INIT_C(0x000000000031ee7c, 0x2f5d2568e33be63b), RTUINT128_INIT_C(0x0000000000000000, 0x0000000ca78e7d27), + RTUINT128_INIT_C(0x0000000000000000, 0x0003f21cc422f7b0), RTUINT128_INIT_C(0x0000000000000000, 0x00000008bb573a6b) + }, + { /* i=257; 61 / 101 */ + RTUINT128_INIT_C(0x0000000000000000, 0x0cf84efc27f75abc), RTUINT128_INIT_C(0x000000016167fbf3, 0x75f630bf75740aa1), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x0000000000000000, 0x0cf84efc27f75abc) + }, + { /* i=258; 92 / 33 */ + RTUINT128_INIT_C(0x0000000005e47b84, 0x83c7b03d3e0b7123), RTUINT128_INIT_C(0x0000000000000000, 0x00000000a887f559), + RTUINT128_INIT_C(0x0000000000000000, 0x08f36576cb4b74b5), RTUINT128_INIT_C(0x0000000000000000, 0x0000000006aba536) + }, + { /* i=259; 110 / 44 */ + RTUINT128_INIT_C(0x0000200ecaf6487e, 0x5237cb13d0e0d7ba), RTUINT128_INIT_C(0x0000000000000000, 0x00000a2b59f10153), + RTUINT128_INIT_C(0x0000000000000003, 0x270362e01c7ce325), RTUINT128_INIT_C(0x0000000000000000, 0x0000068d64ab0dbb) + }, + { /* i=260; 123 / 94 */ + RTUINT128_INIT_C(0x03e0a1f42c7251a7, 0xa826b4924e51128d), RTUINT128_INIT_C(0x000000002381f853, 0x20a1193b29baa2b6), + RTUINT128_INIT_C(0x0000000000000000, 0x000000001bf49694), RTUINT128_INIT_C(0x000000000a21f545, 0x1c70fede8b9c5d55) + }, + { /* i=261; 121 / 126 */ + RTUINT128_INIT_C(0x01a80c04528d4f7c, 0xf46e0616571245e2), RTUINT128_INIT_C(0x1160ffccd9eedcce, 0xb8006b36b24829f1), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x01a80c04528d4f7c, 0xf46e0616571245e2) + }, + { /* i=262; 82 / 47 */ + RTUINT128_INIT_C(0x0000000000031a4b, 0x985a4d92732028f4), RTUINT128_INIT_C(0x0000000000000000, 0x000015663ebe4019), + RTUINT128_INIT_C(0x0000000000000000, 0x000000251e1e71e6), RTUINT128_INIT_C(0x0000000000000000, 0x00000898a8f9897e) + }, + { /* i=263; 113 / 60 */ + RTUINT128_INIT_C(0x00010a7dd522d899, 0xfef5202c305bafcc), RTUINT128_INIT_C(0x0000000000000000, 0x032877c1bfc04bfc), + RTUINT128_INIT_C(0x0000000000000000, 0x00546254c5bc34b7), RTUINT128_INIT_C(0x0000000000000000, 0x02fcf75855662ea8) + }, + { /* i=264; 73 / 21 */ + RTUINT128_INIT_C(0x000000000000008a, 0x9b5bde6d84eca98b), RTUINT128_INIT_C(0x0000000000000000, 0x00000000001db73c), + RTUINT128_INIT_C(0x0000000000000000, 0x0004aa179fea990d), RTUINT128_INIT_C(0x0000000000000000, 0x00000000000f7f7f) + }, + { /* i=265; 123 / 108 */ + RTUINT128_INIT_C(0x07317381f62a03e2, 0x2666d974a619d9f5), RTUINT128_INIT_C(0x00000b5b3028785f, 0x24bb263829c58ee6), + RTUINT128_INIT_C(0x0000000000000000, 0x000000000000a227), RTUINT128_INIT_C(0x0000042403d37825, 0x1fb47c77449388eb) + }, + { /* i=266; 101 / 81 */ + RTUINT128_INIT_C(0x000000082905f295, 0x8ea7b2c0f48cfb67), RTUINT128_INIT_C(0x0000000000013a1b, 0xf1da78816ee40e29), + RTUINT128_INIT_C(0x0000000000000000, 0x000000000006a68f), RTUINT128_INIT_C(0x000000000000b306, 0xf871db33cd047c80) + }, + { /* i=267; 105 / 63 */ + RTUINT128_INIT_C(0x000001eec6e2616c, 0x5d3e3158d4ec54c7), RTUINT128_INIT_C(0x0000000000000000, 0x1998bcd9ec811088), + RTUINT128_INIT_C(0x0000000000000000, 0x000013546b8604d0), RTUINT128_INIT_C(0x0000000000000000, 0x0fb2167f289cc647) + }, + { /* i=268; 58 / 42 */ + RTUINT128_INIT_C(0x0000000000000000, 0x03b5d96643415b37), RTUINT128_INIT_C(0x0000000000000000, 0x00000237f004bee4), + RTUINT128_INIT_C(0x0000000000000000, 0x000000000001ac25), RTUINT128_INIT_C(0x0000000000000000, 0x00000208a36c9443) + }, + { /* i=269; 112 / 109 */ + RTUINT128_INIT_C(0x000062c0bf024f78, 0x88102d02be5d0a32), RTUINT128_INIT_C(0x0000131f60ccda2d, 0x22179f9cfe14f4f2), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000005), RTUINT128_INIT_C(0x00000323db020c96, 0xdd9a0ef1c7f44178) + }, + { /* i=270; 124 / 117 */ + RTUINT128_INIT_C(0x025cc1304349019c, 0x2e13996036beca3f), RTUINT128_INIT_C(0x0017e78c3c26a12f, 0x3d40953cbab00c3c), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000019), RTUINT128_INIT_C(0x0007247e638343ff, 0x32c50671fb8d9863) + }, + { /* i=271; 115 / 56 */ + RTUINT128_INIT_C(0x00005d8fbf3d359c, 0xa1b149c49d243385), RTUINT128_INIT_C(0x0000000000000000, 0x00d017457d32d66c), + RTUINT128_INIT_C(0x0000000000000000, 0x00731a32055ec494), RTUINT128_INIT_C(0x0000000000000000, 0x0063d1ca77ed8d15) + }, + { /* i=272; 98 / 111 */ + RTUINT128_INIT_C(0x00000002adcb01f3, 0x6fcbbedea960befe), RTUINT128_INIT_C(0x00004d1a31190f4e, 0x3d53601c6b8a1e48), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x00000002adcb01f3, 0x6fcbbedea960befe) + }, + { /* i=273; 125 / 120 */ + RTUINT128_INIT_C(0x1e2d7c15fcfe1810, 0xec4a5a631ffdcfa2), RTUINT128_INIT_C(0x0081f074c0de3485, 0xd3740f7397e202de), + RTUINT128_INIT_C(0x0000000000000000, 0x000000000000003b), RTUINT128_INIT_C(0x003b112d89c7fd39, 0x308acabf1ee72678) + }, + { /* i=274; 118 / 90 */ + RTUINT128_INIT_C(0x00305e00e4c9fd75, 0x7e57e9b9591a3f40), RTUINT128_INIT_C(0x0000000002ed1d46, 0x647c4d0687da77ce), + RTUINT128_INIT_C(0x0000000000000000, 0x000000001087631f), RTUINT128_INIT_C(0x00000000015a76b6, 0x3a91c3b35baf134e) + }, + { /* i=275; 112 / 101 */ + RTUINT128_INIT_C(0x00000e91ba895490, 0x5b86bf4e1ca27f94), RTUINT128_INIT_C(0x0000000483a80045, 0xfb7e04bb18c9b9b2), + RTUINT128_INIT_C(0x0000000000000000, 0x000000000000033a), RTUINT128_INIT_C(0x00000000ee7872c2, 0xe6eb7ba021c15740) + }, + { /* i=276; 60 / 57 */ + RTUINT128_INIT_C(0x0000000000000000, 0x0bcc3a6d49cf2e08), RTUINT128_INIT_C(0x0000000000000000, 0x01ee2f1bb858322c), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000006), RTUINT128_INIT_C(0x0000000000000000, 0x00371fc6f7be0100) + }, + { /* i=277; 120 / 123 */ + RTUINT128_INIT_C(0x004d59ad0ab07cc2, 0x0bbd296d15f54f7d), RTUINT128_INIT_C(0x05c87c7470df1c5c, 0x4e33aedb79ce7d34), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x004d59ad0ab07cc2, 0x0bbd296d15f54f7d) + }, + { /* i=278; 123 / 71 */ + RTUINT128_INIT_C(0x0312fc700b0cb202, 0xad66465196a96322), RTUINT128_INIT_C(0x0000000000000058, 0xd40295332ca9286d), + RTUINT128_INIT_C(0x0000000000000000, 0x0008dc11c154395a), RTUINT128_INIT_C(0x000000000000002e, 0x6e6de329c86ce7d0) + }, + { /* i=279; 118 / 12 */ + RTUINT128_INIT_C(0x0034c01b28e62244, 0x72602e2e5ddd7df0), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000108), + RTUINT128_INIT_C(0x00003326e408a119, 0x78acf86ad7a0d6c7), RTUINT128_INIT_C(0x0000000000000000, 0x00000000000000b8) + }, + { /* i=280; 70 / 66 */ + RTUINT128_INIT_C(0x000000000000001e, 0x3c5935daece01085), RTUINT128_INIT_C(0x0000000000000000, 0x2f53c6b50890b935), + RTUINT128_INIT_C(0x0000000000000000, 0x00000000000000a3), RTUINT128_INIT_C(0x0000000000000000, 0x1a01b09678ba23c6) + }, + { /* i=281; 127 / 125 */ + RTUINT128_INIT_C(0x5857f776d25fcfa2, 0x1b6e46f81a87a688), RTUINT128_INIT_C(0x15bab4c98189b4d8, 0x072772b3677a4986), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000004), RTUINT128_INIT_C(0x016d2450cc38fc41, 0xfed07c2a7c9e8070) + }, + { /* i=282; 109 / 33 */ + RTUINT128_INIT_C(0x0000102cec11ba91, 0x1b2ef1fcb7fb1762), RTUINT128_INIT_C(0x0000000000000000, 0x00000000e42332af), + RTUINT128_INIT_C(0x0000000000001226, 0xa78338af66a84fbe), RTUINT128_INIT_C(0x0000000000000000, 0x000000008c5f7880) + }, + { /* i=283; 114 / 115 */ + RTUINT128_INIT_C(0x00033dd21a46a44e, 0x0ea1d4e941791897), RTUINT128_INIT_C(0x0004f6b4c82f6815, 0xe823a82f317c19e0), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x00033dd21a46a44e, 0x0ea1d4e941791897) + }, + { /* i=284; 113 / 49 */ + RTUINT128_INIT_C(0x00014d16b4908f98, 0x9aea3de2b6ddbc57), RTUINT128_INIT_C(0x0000000000000000, 0x000044e5b16d1dab), + RTUINT128_INIT_C(0x0000000000000004, 0xd5a68a928c9dcc09), RTUINT128_INIT_C(0x0000000000000000, 0x000032c1d0846d54) + }, + { /* i=285; 121 / 92 */ + RTUINT128_INIT_C(0x017cd7db9a8a39fa, 0xf66c31881aa618c8), RTUINT128_INIT_C(0x000000000476a901, 0x7a9369b364c507aa), + RTUINT128_INIT_C(0x0000000000000000, 0x000000005552d62d), RTUINT128_INIT_C(0x00000000003b12f0, 0xc43af41ac927a3e6) + }, + { /* i=286; 83 / 72 */ + RTUINT128_INIT_C(0x000000000000e096, 0x9d5b894e97c3ea0d), RTUINT128_INIT_C(0x0000000000000075, 0x4dd4c57c7e13947b), + RTUINT128_INIT_C(0x0000000000000000, 0x00000000000001ea), RTUINT128_INIT_C(0x000000000000000f, 0xa41989054649b69f) + }, + { /* i=287; 122 / 51 */ + RTUINT128_INIT_C(0x03c0344e0e0353d4, 0x75311188a0f9d29d), RTUINT128_INIT_C(0x0000000000000000, 0x00019355b0b0b21d), + RTUINT128_INIT_C(0x0000000000000261, 0x732bf120ef598c26), RTUINT128_INIT_C(0x0000000000000000, 0x000061d8c642864f) + }, + { /* i=288; 20 / 13 */ + RTUINT128_INIT_C(0x0000000000000000, 0x00000000000f5555), RTUINT128_INIT_C(0x0000000000000000, 0x00000000000008c9), + RTUINT128_INIT_C(0x0000000000000000, 0x00000000000001be), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000727) + }, + { /* i=289; 9 / 64 */ + RTUINT128_INIT_C(0x0000000000000000, 0x000000000000016a), RTUINT128_INIT_C(0x0000000000000000, 0x6094d4c0a8105d30), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x0000000000000000, 0x000000000000016a) + }, + { /* i=290; 112 / 83 */ + RTUINT128_INIT_C(0x0000b9bc51c2e9b2, 0x948ab332c01767a6), RTUINT128_INIT_C(0x0000000000036f28, 0x1ea77c27d3e2a1c8), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000036158194), RTUINT128_INIT_C(0x0000000000019720, 0xe030aaaf98241806) + }, + { /* i=291; 120 / 68 */ + RTUINT128_INIT_C(0x00e87dd960c140f2, 0x93163aa1245fb5d0), RTUINT128_INIT_C(0x0000000000000003, 0x3206d3e1b67370fa), + RTUINT128_INIT_C(0x0000000000000000, 0x0048c201718002f0), RTUINT128_INIT_C(0x0000000000000002, 0x1442c0085a43d770) + }, + { /* i=292; 126 / 15 */ + RTUINT128_INIT_C(0x0b20c7803bf45354, 0x30688d34fe11c784), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000005727), + RTUINT128_INIT_C(0x000020aff645c90a, 0xe19b6c14d9d63c1f), RTUINT128_INIT_C(0x0000000000000000, 0x00000000000015cb) + }, + { /* i=293; 57 / 51 */ + RTUINT128_INIT_C(0x0000000000000000, 0x00e8b397fcc5c1a1), RTUINT128_INIT_C(0x0000000000000000, 0x00076cbff93f0b71), + RTUINT128_INIT_C(0x0000000000000000, 0x000000000000001f), RTUINT128_INIT_C(0x0000000000000000, 0x00028858ce235ef2) + }, + { /* i=294; 97 / 54 */ + RTUINT128_INIT_C(0x000000013fd9952f, 0xfa491214f4cee7e6), RTUINT128_INIT_C(0x0000000000000000, 0x0013c2f12177c150), + RTUINT128_INIT_C(0x0000000000000000, 0x0000102f7df175bf), RTUINT128_INIT_C(0x0000000000000000, 0x0008f31034cc1d36) + }, + { /* i=295; 120 / 57 */ + RTUINT128_INIT_C(0x00e51bfa1e21b841, 0x72f574530a397b1b), RTUINT128_INIT_C(0x0000000000000000, 0x0005d621ff0241be), + RTUINT128_INIT_C(0x0000000000000027, 0x413ea5a6468895f9), RTUINT128_INIT_C(0x0000000000000000, 0x00023574cfd3f34d) + }, + { /* i=296; 118 / 56 */ + RTUINT128_INIT_C(0x00131492709e0953, 0xb7665ab0e7286db4), RTUINT128_INIT_C(0x0000000000000000, 0x007a8d1f29ae6741), + RTUINT128_INIT_C(0x0000000000000000, 0x27db7d444f9b0ad8), RTUINT128_INIT_C(0x0000000000000000, 0x0067d80b589dc4dc) + }, + { /* i=297; 121 / 17 */ + RTUINT128_INIT_C(0x00757a017ef68dae, 0xa30395c3b699f184), RTUINT128_INIT_C(0x0000000000000000, 0x000000000000b12e), + RTUINT128_INIT_C(0x000000a9bcc132fa, 0xc87d44b523066473), RTUINT128_INIT_C(0x0000000000000000, 0x00000000000061da) + }, + { /* i=298; 125 / 60 */ + RTUINT128_INIT_C(0x0d16beb0e1fe1ef2, 0x231dc84b2d182b0f), RTUINT128_INIT_C(0x0000000000000000, 0x06fb85d41f75ce6d), + RTUINT128_INIT_C(0x0000000000000001, 0xdfe0756b51ac526d), RTUINT128_INIT_C(0x0000000000000000, 0x00b958dfdd945ca6) + }, + { /* i=299; 21 / 10 */ + RTUINT128_INIT_C(0x0000000000000000, 0x000000000011880c), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000047), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000003f36), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000012) + }, + { /* i=300; 77 / 46 */ + RTUINT128_INIT_C(0x0000000000000934, 0xa93e3878de38ec9c), RTUINT128_INIT_C(0x0000000000000000, 0x000029d0adb2b9f7), + RTUINT128_INIT_C(0x0000000000000000, 0x00000000385be90e), RTUINT128_INIT_C(0x0000000000000000, 0x000029c19063f21a) + }, + { /* i=301; 126 / 90 */ + RTUINT128_INIT_C(0x32b771bfd30dfbb3, 0x8c284056b057de99), RTUINT128_INIT_C(0x00000000019cf6cb, 0xa7c43ecaee409274), + RTUINT128_INIT_C(0x0000000000000000, 0x0000001f708cca5d), RTUINT128_INIT_C(0x0000000000c26bf8, 0xc749093057e32275) + }, + { /* i=302; 125 / 102 */ + RTUINT128_INIT_C(0x19ed75089633ee27, 0x542445cbbdd95ca3), RTUINT128_INIT_C(0x0000001287f114ff, 0x05ccb31c534c2d06), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000001662e4b), RTUINT128_INIT_C(0x0000000a142ad823, 0x5f603900b00d17e1) + }, + { /* i=303; 99 / 32 */ + RTUINT128_INIT_C(0x0000000415e192c1, 0x51f31ff68145eb18), RTUINT128_INIT_C(0x0000000000000000, 0x00000000f7d08226), + RTUINT128_INIT_C(0x0000000000000004, 0x386d6d692d4838ab), RTUINT128_INIT_C(0x0000000000000000, 0x0000000013d6abb6) + }, + { /* i=304; 17 / 83 */ + RTUINT128_INIT_C(0x0000000000000000, 0x000000000000760d), RTUINT128_INIT_C(0x0000000000002487, 0x6c8e48e0281846c2), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x0000000000000000, 0x000000000000760d) + }, + { /* i=305; 16 / 16 */ + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000006382), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000002987), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000002), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000001074) + }, + { /* i=306; 125 / 105 */ + RTUINT128_INIT_C(0x14b7c49f5e86cd8f, 0xb8e2c96314dbcd63), RTUINT128_INIT_C(0x0000006efd262bca, 0xb257051f456c669d), + RTUINT128_INIT_C(0x0000000000000000, 0x00000000002fc957), RTUINT128_INIT_C(0x0000002253f507ac, 0xd98cbf5989a0a908) + }, + { /* i=307; 118 / 22 */ + RTUINT128_INIT_C(0x0016d68065dbf55a, 0x67484d61968c4304), RTUINT128_INIT_C(0x0000000000000000, 0x00000000000a26e4), + RTUINT128_INIT_C(0x000000023fe6b949, 0x6776452b07fcb24d), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000040870) + }, + { /* i=308; 123 / 77 */ + RTUINT128_INIT_C(0x05efecbca3d8be36, 0x259bd10fc0bdccdb), RTUINT128_INIT_C(0x0000000000000137, 0x3a01f9e99d9383d8), + RTUINT128_INIT_C(0x0000000000000000, 0x0004e23784dd75d5), RTUINT128_INIT_C(0x0000000000000093, 0xa25c00ef08476223) + }, + { /* i=309; 38 / 18 */ + RTUINT128_INIT_C(0x0000000000000000, 0x000000022656aec0), RTUINT128_INIT_C(0x0000000000000000, 0x000000000001ca65), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000013359), RTUINT128_INIT_C(0x0000000000000000, 0x00000000000032a3) + }, + { /* i=310; 79 / 52 */ + RTUINT128_INIT_C(0x0000000000001042, 0x5de6e2a08c2aad2e), RTUINT128_INIT_C(0x0000000000000000, 0x000689c971c62cb4), + RTUINT128_INIT_C(0x0000000000000000, 0x00000000027c9eac), RTUINT128_INIT_C(0x0000000000000000, 0x000152b8bc3d8c3e) + }, + { /* i=311; 75 / 10 */ + RTUINT128_INIT_C(0x0000000000000252, 0xefd48ff17d702cb6), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000252), + RTUINT128_INIT_C(0x0000000000000001, 0x00675c78a6231912), RTUINT128_INIT_C(0x0000000000000000, 0x00000000000000f2) + }, + { /* i=312; 127 / 119 */ + RTUINT128_INIT_C(0x50c370a014dbc99f, 0x4e898b46c5b97f37), RTUINT128_INIT_C(0x003fe882bb6e28db, 0xfcb4e63da17511b0), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000143), RTUINT128_INIT_C(0x002113ad98de3c0f, 0x764b0b840f042e27) + }, + { /* i=313; 126 / 118 */ + RTUINT128_INIT_C(0x33159047358e91e2, 0xdd79041b06f41004), RTUINT128_INIT_C(0x0027fd05a8adb55e, 0x4cfa915a054dfc5b), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000147), RTUINT128_INIT_C(0x00015e0cbfabe66e, 0x89695a1e4056b7c7) + }, + { /* i=314; 127 / 84 */ + RTUINT128_INIT_C(0x036a7696250931e4, 0xe43b0ff3d13f600d), RTUINT128_INIT_C(0x00000000000c9c62, 0xd1aaf7b2b1068461), + RTUINT128_INIT_C(0x0000000000000000, 0x00000045578a237a), RTUINT128_INIT_C(0x00000000000a44a1, 0xa1a543f23cc106d3) + }, + { /* i=315; 73 / 15 */ + RTUINT128_INIT_C(0x00000000000001ba, 0x37b255f1e2def678), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000004b9e), + RTUINT128_INIT_C(0x0000000000000000, 0x05d91dae23bb2a2c), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000b50) + }, + { /* i=316; 122 / 93 */ + RTUINT128_INIT_C(0x007358705a9bb74d, 0xb7beb634ea5d6101), RTUINT128_INIT_C(0x000000000ded0817, 0xf77b879e4e721c2c), + RTUINT128_INIT_C(0x0000000000000000, 0x000000000848657d), RTUINT128_INIT_C(0x000000000333d7fb, 0x0cf267fc4b284385) + }, + { /* i=317; 113 / 111 */ + RTUINT128_INIT_C(0x0000f811779c1a89, 0xb467fc8bbca7a90f), RTUINT128_INIT_C(0x000029d4f9e20d7c, 0x3b5915420a9d3012), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000005), RTUINT128_INIT_C(0x000026e89631d71c, 0x8baa92418795b8b5) + }, + { /* i=318; 119 / 62 */ + RTUINT128_INIT_C(0x00186a8107d0aebc, 0x4e977d71557b8560), RTUINT128_INIT_C(0x0000000000000000, 0x063daf2fe3520783), + RTUINT128_INIT_C(0x0000000000000000, 0x03e987b84bbc02d2), RTUINT128_INIT_C(0x0000000000000000, 0x01b4f4c952ee55ea) + }, + { /* i=319; 118 / 54 */ + RTUINT128_INIT_C(0x003056720a6bf8db, 0x745b23902d5f8db2), RTUINT128_INIT_C(0x0000000000000000, 0x001263aaaa330611), + RTUINT128_INIT_C(0x0000000000000002, 0xa0ea28fba81b5280), RTUINT128_INIT_C(0x0000000000000000, 0x000799aef0201332) + }, + { /* i=320; 101 / 44 */ + RTUINT128_INIT_C(0x00000002015c9f4b, 0x5a334f60bf5a3264), RTUINT128_INIT_C(0x0000000000000000, 0x00000d9076422b39), + RTUINT128_INIT_C(0x0000000000000000, 0x0025d8b5f1c94aa5), RTUINT128_INIT_C(0x0000000000000000, 0x00000323cd74dca7) + }, + { /* i=321; 92 / 48 */ + RTUINT128_INIT_C(0x000000000a3a96b7, 0x5d030ce222cdb222), RTUINT128_INIT_C(0x0000000000000000, 0x00005f3be74d1c49), + RTUINT128_INIT_C(0x0000000000000000, 0x00001b7f11c03712), RTUINT128_INIT_C(0x0000000000000000, 0x0000280d3e8e0600) + }, + { /* i=322; 118 / 8 */ + RTUINT128_INIT_C(0x002b8e911169f0bc, 0x60a0e0177735ca64), RTUINT128_INIT_C(0x0000000000000000, 0x000000000000003f), + RTUINT128_INIT_C(0x0000b0fe3d3a920b, 0x1dfa6d3532a774fd), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000021) + }, + { /* i=323; 91 / 119 */ + RTUINT128_INIT_C(0x0000000004855b7c, 0xff20a6894340c01a), RTUINT128_INIT_C(0x00721211f0f32f6e, 0xa09772948c4558ba), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x0000000004855b7c, 0xff20a6894340c01a) + }, + { /* i=324; 71 / 40 */ + RTUINT128_INIT_C(0x0000000000000011, 0xc8db34d5b048c381), RTUINT128_INIT_C(0x0000000000000000, 0x000000e8a90f08fe), + RTUINT128_INIT_C(0x0000000000000000, 0x00000000139194e9), RTUINT128_INIT_C(0x0000000000000000, 0x000000282e88bc53) + }, + { /* i=325; 109 / 44 */ + RTUINT128_INIT_C(0x000019c26857a95e, 0x3fa765c46882b1ac), RTUINT128_INIT_C(0x0000000000000000, 0x00000923f3556490), + RTUINT128_INIT_C(0x0000000000000002, 0xd174685c4af086ff), RTUINT128_INIT_C(0x0000000000000000, 0x000006b66cd0263c) + }, + { /* i=326; 120 / 121 */ + RTUINT128_INIT_C(0x0006f2ad81a3a177, 0x898d7f0e1d23212f), RTUINT128_INIT_C(0x0129bb20f4a7061a, 0x83829e1b8b329ebc), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x0006f2ad81a3a177, 0x898d7f0e1d23212f) + }, + { /* i=327; 128 / 111 */ + RTUINT128_INIT_C(0x4d9c1d53074f9f7c, 0x7170073acc4ff10f), RTUINT128_INIT_C(0x00004268a8ab012d, 0x566b8ee1ed1432cc), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000012b2d), RTUINT128_INIT_C(0x000033eda6e07694, 0xa0a6099d886ebf33) + }, + { /* i=328; 124 / 84 */ + RTUINT128_INIT_C(0x05e545109dd17956, 0x6734d6a1eb2ed517), RTUINT128_INIT_C(0x00000000000439a7, 0xbb5035ce543a6bfe), + RTUINT128_INIT_C(0x0000000000000000, 0x0000016534943c93), RTUINT128_INIT_C(0x0000000000017016, 0x91ac6c7dd57b4a3d) + }, + { /* i=329; 122 / 94 */ + RTUINT128_INIT_C(0x000308cba703f43d, 0x9c1d011adb9e3964), RTUINT128_INIT_C(0x000000000e592591, 0x0fa08bbbc0603b54), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000362386), RTUINT128_INIT_C(0x00000000079e294f, 0x015e9d3a7d6aaf6c) + }, + { /* i=330; 127 / 117 */ + RTUINT128_INIT_C(0x44500dfb455aa442, 0x27c85f32bffad091), RTUINT128_INIT_C(0x000d775f6d82118e, 0xcdb601898f6852c5), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000512), RTUINT128_INIT_C(0x0008cc2207dd9e33, 0x22f493b9a10725b7) + }, + { /* i=331; 118 / 28 */ + RTUINT128_INIT_C(0x0001ede8e0d46da4, 0x2a0265a87289a396), RTUINT128_INIT_C(0x0000000000000000, 0x0000000002fb01b8), + RTUINT128_INIT_C(0x0000000000a5b6c7, 0x4ced3e0d8116a13d), RTUINT128_INIT_C(0x0000000000000000, 0x0000000002d582be) + }, + { /* i=332; 28 / 3 */ + RTUINT128_INIT_C(0x0000000000000000, 0x000000000a4e601c), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000002), + RTUINT128_INIT_C(0x0000000000000000, 0x000000000527300e), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000) + }, + { /* i=333; 122 / 100 */ + RTUINT128_INIT_C(0x021b2cfcb471a9dd, 0xd9b1578287f52919), RTUINT128_INIT_C(0x00000009b2c26eba, 0x302ea5426918fa84), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000379851), RTUINT128_INIT_C(0x00000001e92dba53, 0x678b0aba9ff38555) + }, + { /* i=334; 116 / 105 */ + RTUINT128_INIT_C(0x0008ddd5a89266fc, 0x2e38b2903013479a), RTUINT128_INIT_C(0x00000003770df7d0, 0xaa6010e26c18d50a), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000028f10), RTUINT128_INIT_C(0x000000017aa40605, 0xbd0451d5e57160fa) + }, + { /* i=335; 125 / 93 */ + RTUINT128_INIT_C(0x052b615b0414e83b, 0xca88f29ce069208c), RTUINT128_INIT_C(0x000000001a5e2f4a, 0xa1890c033dbd7709), + RTUINT128_INIT_C(0x0000000000000000, 0x000000003230658b), RTUINT128_INIT_C(0x0000000018bdbaf0, 0x20b790b886e2f1a9) + }, + { /* i=336; 18 / 125 */ + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000018aee), RTUINT128_INIT_C(0x017d8956ac535193, 0x834a1b4366dd09e1), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000018aee) + }, + { /* i=337; 125 / 45 */ + RTUINT128_INIT_C(0x0d054b9cddb4528c, 0x5bbabbc812a80a5f), RTUINT128_INIT_C(0x0000000000000000, 0x000015ac9821c78d), + RTUINT128_INIT_C(0x00000000000099ca, 0x7c0c3b274341d8ae), RTUINT128_INIT_C(0x0000000000000000, 0x000002d399867089) + }, + { /* i=338; 126 / 87 */ + RTUINT128_INIT_C(0x2c949c3c23990b9a, 0x5bf2f7398726ad64), RTUINT128_INIT_C(0x00000000007a1031, 0x2e18a8b361cb52a4), + RTUINT128_INIT_C(0x0000000000000000, 0x0000005d7f5cfc0a), RTUINT128_INIT_C(0x000000000063ea96, 0x2413c34e80ec02fc) + }, + { /* i=339; 111 / 105 */ + RTUINT128_INIT_C(0x00006b714dcf6b59, 0x54531609ba6570ca), RTUINT128_INIT_C(0x00000012ab5824e0, 0xf128f9fe4eb42974), + RTUINT128_INIT_C(0x0000000000000000, 0x00000000000005c1), RTUINT128_INIT_C(0x0000000567a3390d, 0xb78ca5c6dfc2ec56) + }, + { /* i=340; 105 / 28 */ + RTUINT128_INIT_C(0x0000013df1aeea4b, 0x3aba2a36ec4691c8), RTUINT128_INIT_C(0x0000000000000000, 0x00000000007eca1f), + RTUINT128_INIT_C(0x00000000000281f5, 0x80ef65041fda937e), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000694986) + }, + { /* i=341; 114 / 88 */ + RTUINT128_INIT_C(0x0000313fd84a6975, 0x6288d268c689e1ce), RTUINT128_INIT_C(0x00000000007cf79e, 0xd5a74320dbc50c4a), + RTUINT128_INIT_C(0x0000000000000000, 0x000000000064e3a1), RTUINT128_INIT_C(0x00000000001561c7, 0x7afb9ee608cf8944) + }, + { /* i=342; 33 / 32 */ + RTUINT128_INIT_C(0x0000000000000000, 0x00000000362a0f6e), RTUINT128_INIT_C(0x0000000000000000, 0x000000003a2f6bf4), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x0000000000000000, 0x00000000362a0f6e) + }, + { /* i=343; 115 / 83 */ + RTUINT128_INIT_C(0x000100268ad38a0f, 0xa1551b7d33f601d3), RTUINT128_INIT_C(0x00000000000342d9, 0x3487b6204486adc8), + RTUINT128_INIT_C(0x0000000000000000, 0x000000004e8bf0ad), RTUINT128_INIT_C(0x000000000002dcda, 0x2e7a895d566f11ab) + }, + { /* i=344; 118 / 94 */ + RTUINT128_INIT_C(0x001002c0efa5da76, 0x4cec804a5b1f7637), RTUINT128_INIT_C(0x000000002e4a8d29, 0xbaf18d4a057fe5db), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000588af4), RTUINT128_INIT_C(0x000000001a268ce1, 0x57160acf2808537b) + }, + { /* i=345; 50 / 27 */ + RTUINT128_INIT_C(0x0000000000000000, 0x00036f54a68b9b3e), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000f82d85), + RTUINT128_INIT_C(0x0000000000000000, 0x00000000038b0bbc), RTUINT128_INIT_C(0x0000000000000000, 0x00000000001e7692) + }, + { /* i=346; 123 / 94 */ + RTUINT128_INIT_C(0x0397ebbb76a1c755, 0xea41a03001dcf6eb), RTUINT128_INIT_C(0x000000000824fd97, 0x91dfc58fedf696d9), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000070f3349a), RTUINT128_INIT_C(0x00000000062d12af, 0x35c8c834a4e72461) + }, + { /* i=347; 128 / 79 */ + RTUINT128_INIT_C(0x31ed4984a8502af2, 0x0c39c02688e36548), RTUINT128_INIT_C(0x000000000000602e, 0xa3e1ef5f891c25d9), + RTUINT128_INIT_C(0x0000000000000000, 0x000084e2df27893f), RTUINT128_INIT_C(0x0000000000002dca, 0x902b016fefa5f3e1) + }, + { /* i=348; 21 / 12 */ + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000172920), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000379), + RTUINT128_INIT_C(0x0000000000000000, 0x00000000000006ab), RTUINT128_INIT_C(0x0000000000000000, 0x000000000000014d) + }, + { /* i=349; 118 / 63 */ + RTUINT128_INIT_C(0x002f96525dabe3f8, 0x0357e02d079790de), RTUINT128_INIT_C(0x0000000000000000, 0x60c62d4f19d705d4), + RTUINT128_INIT_C(0x0000000000000000, 0x007de252c5434262), RTUINT128_INIT_C(0x0000000000000000, 0x32ace291094aadb6) + }, + { /* i=350; 120 / 33 */ + RTUINT128_INIT_C(0x00259437752e3918, 0x1f00eae092155246), RTUINT128_INIT_C(0x0000000000000000, 0x000000012e1ca962), + RTUINT128_INIT_C(0x00000000001fd7dd, 0x0eac1f544d513886), RTUINT128_INIT_C(0x0000000000000000, 0x00000000180538fa) + }, + { /* i=351; 126 / 90 */ + RTUINT128_INIT_C(0x3a6dfac4e4183a72, 0x7b95d3a36cb6ca47), RTUINT128_INIT_C(0x0000000001849e8b, 0xb481eca22b9bf959), + RTUINT128_INIT_C(0x0000000000000000, 0x000000267d74584c), RTUINT128_INIT_C(0x00000000007ec76f, 0x59bde5dd6b5e2bdb) + }, + { /* i=352; 59 / 119 */ + RTUINT128_INIT_C(0x0000000000000000, 0x02722201e7624f0d), RTUINT128_INIT_C(0x000e80a611e7bb85, 0x9c127134899380f1), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x0000000000000000, 0x02722201e7624f0d) + }, + { /* i=353; 66 / 26 */ + RTUINT128_INIT_C(0x0000000000000001, 0x84926fff38ceb256), RTUINT128_INIT_C(0x0000000000000000, 0x0000000001eaea5d), + RTUINT128_INIT_C(0x0000000000000000, 0x000000caa166d898), RTUINT128_INIT_C(0x0000000000000000, 0x000000000187131e) + }, + { /* i=354; 115 / 96 */ + RTUINT128_INIT_C(0x0003b311b4cac8de, 0x46ed30502217d7dc), RTUINT128_INIT_C(0x00000000f32bc33c, 0xfffce331aea0e3ec), + RTUINT128_INIT_C(0x0000000000000000, 0x000000000003e508), RTUINT128_INIT_C(0x00000000ac101e02, 0x663599aa156a9c7c) + }, + { /* i=355; 122 / 103 */ + RTUINT128_INIT_C(0x02c7b6328f2c82c4, 0xca4637bf0974d129), RTUINT128_INIT_C(0x0000002e36fb57ba, 0xff2125187721469b), + RTUINT128_INIT_C(0x0000000000000000, 0x00000000000f666c), RTUINT128_INIT_C(0x00000011143a0b48, 0xc713d702623445c5) + }, + { /* i=356; 115 / 100 */ + RTUINT128_INIT_C(0x0002267e1dc53f7c, 0x941438bcf3bde28e), RTUINT128_INIT_C(0x00000005dbb71fa3, 0xbf71bdb56d30887d), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000005df7), RTUINT128_INIT_C(0x0000000599973bf2, 0x8b6b4605f854c8f3) + }, + { /* i=357; 118 / 64 */ + RTUINT128_INIT_C(0x000a331159cbdb43, 0x8a0a7ee3d35b405b), RTUINT128_INIT_C(0x0000000000000000, 0xeb66a26e29e3034d), + RTUINT128_INIT_C(0x0000000000000000, 0x000b178d8a0c5d32), RTUINT128_INIT_C(0x0000000000000000, 0xab9aad538335a251) + }, + { /* i=358; 115 / 55 */ + RTUINT128_INIT_C(0x00021b11d5387d04, 0xaad1286f7b18927d), RTUINT128_INIT_C(0x0000000000000000, 0x004e4e6463ae4038), + RTUINT128_INIT_C(0x0000000000000000, 0x06e255e5997c022e), RTUINT128_INIT_C(0x0000000000000000, 0x004cd2bda228986d) + }, + { /* i=359; 64 / 30 */ + RTUINT128_INIT_C(0x0000000000000000, 0x8035593ebc212bb5), RTUINT128_INIT_C(0x0000000000000000, 0x000000002883341e), + RTUINT128_INIT_C(0x0000000000000000, 0x000000032a27416e), RTUINT128_INIT_C(0x0000000000000000, 0x0000000026f328d1) + }, + { /* i=360; 113 / 38 */ + RTUINT128_INIT_C(0x00013488775eaee8, 0x8ae21e500a6ca197), RTUINT128_INIT_C(0x0000000000000000, 0x0000000d23fe17b6), + RTUINT128_INIT_C(0x000000000000177a, 0xb8c83ff8ab955b43), RTUINT128_INIT_C(0x0000000000000000, 0x00000009ed90baf5) + }, + { /* i=361; 124 / 8 */ + RTUINT128_INIT_C(0x08e16f1e281e1643, 0x614d9d7cf126dbde), RTUINT128_INIT_C(0x0000000000000000, 0x000000000000003a), + RTUINT128_INIT_C(0x00273277b13e4fd5, 0x0617683b8892533d), RTUINT128_INIT_C(0x0000000000000000, 0x000000000000000c) + }, + { /* i=362; 124 / 104 */ + RTUINT128_INIT_C(0x013c4a2b3d822fad, 0xeb11555a6cda309c), RTUINT128_INIT_C(0x000000fb986ded26, 0xfca8b6f1a65adbe6), + RTUINT128_INIT_C(0x0000000000000000, 0x00000000000141d3), RTUINT128_INIT_C(0x000000aac489d5bc, 0x1e9d8a96623b8c0a) + }, + { /* i=363; 120 / 29 */ + RTUINT128_INIT_C(0x006c499010acd174, 0xb92141af88f0b08b), RTUINT128_INIT_C(0x0000000000000000, 0x000000000a9edf76), + RTUINT128_INIT_C(0x000000000a322b7b, 0x8ad8aeceed33f602), RTUINT128_INIT_C(0x0000000000000000, 0x0000000006758d9f) + }, + { /* i=364; 113 / 78 */ + RTUINT128_INIT_C(0x0000ba40a8e3cbf3, 0xb04dfb12c888efee), RTUINT128_INIT_C(0x00000000000002c3, 0x90da3e325ef360aa), + RTUINT128_INIT_C(0x0000000000000000, 0x00000043630b2086), RTUINT128_INIT_C(0x00000000000000dd, 0x95b6a181c3c116f2) + }, + { /* i=365; 113 / 125 */ + RTUINT128_INIT_C(0x000029ef9026e41f, 0xdb23f4832492ae61), RTUINT128_INIT_C(0x1d1abfcca528bb21, 0x283054a1e93bdf00), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x000029ef9026e41f, 0xdb23f4832492ae61) + }, + { /* i=366; 118 / 69 */ + RTUINT128_INIT_C(0x0025c8dcdcccb212, 0x8a46a4da4f01cdac), RTUINT128_INIT_C(0x000000000000001d, 0x94664d9754185461), + RTUINT128_INIT_C(0x0000000000000000, 0x00014702a4ab8b91), RTUINT128_INIT_C(0x0000000000000019, 0x6e463569f69e57bb) + }, + { /* i=367; 117 / 24 */ + RTUINT128_INIT_C(0x001cef72770c2df1, 0x9df5cde4db05ccaf), RTUINT128_INIT_C(0x0000000000000000, 0x00000000004b1689), + RTUINT128_INIT_C(0x0000000062a671e5, 0x53b194b5688ec4b7), RTUINT128_INIT_C(0x0000000000000000, 0x000000000019ccc0) + }, + { /* i=368; 4 / 101 */ + RTUINT128_INIT_C(0x0000000000000000, 0x000000000000000c), RTUINT128_INIT_C(0x0000000ca964dd87, 0x06a90b8d0d010610), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x0000000000000000, 0x000000000000000c) + }, + { /* i=369; 128 / 123 */ + RTUINT128_INIT_C(0x8e4119281e1f531e, 0xba491f40429b8d14), RTUINT128_INIT_C(0x06f8e81707ae8e4d, 0x54f1c2f3dc9b0d14), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000014), RTUINT128_INIT_C(0x02cef75b847c3514, 0x1765e433067e8784) + }, + { /* i=370; 86 / 41 */ + RTUINT128_INIT_C(0x0000000000058b89, 0xc7f0049f16102b9c), RTUINT128_INIT_C(0x0000000000000000, 0x000000c9227c4166), + RTUINT128_INIT_C(0x0000000000000000, 0x0000070ec21876b2), RTUINT128_INIT_C(0x0000000000000000, 0x0000001667f5aeb0) + }, + { /* i=371; 116 / 79 */ + RTUINT128_INIT_C(0x000c532991630b99, 0xc3d6f7192ee38380), RTUINT128_INIT_C(0x0000000000004bd5, 0x7350401552ed48c5), + RTUINT128_INIT_C(0x0000000000000000, 0x000000299b358c2d), RTUINT128_INIT_C(0x0000000000004230, 0x260f8c437f98fcdf) + }, + { /* i=372; 114 / 83 */ + RTUINT128_INIT_C(0x00013dc95d39e087, 0x5d04701024d2ff25), RTUINT128_INIT_C(0x0000000000044022, 0x7c3b0442274c2133), + RTUINT128_INIT_C(0x0000000000000000, 0x000000004ac3992b), RTUINT128_INIT_C(0x000000000000ce4d, 0xdbcf3ee10358f094) + }, + { /* i=373; 80 / 78 */ + RTUINT128_INIT_C(0x000000000000cc09, 0x904929cbcfce5b82), RTUINT128_INIT_C(0x0000000000003405, 0x288d506431c3ea6c), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000003), RTUINT128_INIT_C(0x0000000000002ffa, 0x16a1389f3a829c3e) + }, + { /* i=374; 123 / 57 */ + RTUINT128_INIT_C(0x03177044308fdcc0, 0xfd981644f0ad5a41), RTUINT128_INIT_C(0x0000000000000000, 0x01dcfc84ee6f9948), + RTUINT128_INIT_C(0x0000000000000001, 0xa8c47339207d2417), RTUINT128_INIT_C(0x0000000000000000, 0x00afdc1cfaf074c9) + }, + { /* i=375; 104 / 87 */ + RTUINT128_INIT_C(0x000000e383314302, 0x7ca7c8192be0a230), RTUINT128_INIT_C(0x0000000000747764, 0xd42e0ee2363c61ec), + RTUINT128_INIT_C(0x0000000000000000, 0x000000000001f415), RTUINT128_INIT_C(0x0000000000728953, 0x1fcebd9cc9aba9d4) + }, + { /* i=376; 120 / 104 */ + RTUINT128_INIT_C(0x0048cd93d7eb83d2, 0x0c0c8c1cf2ba8db3), RTUINT128_INIT_C(0x000000f4749078dd, 0x6878f543f2bdd74c), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000004c3d), RTUINT128_INIT_C(0x000000b92d9cfc0c, 0x3e69eedbbf93b097) + }, + { /* i=377; 126 / 90 */ + RTUINT128_INIT_C(0x095529eb2c2039ba, 0x6b2999d1c2d8e798), RTUINT128_INIT_C(0x000000000142a823, 0x079b772d0b4b667a), + RTUINT128_INIT_C(0x0000000000000000, 0x000000076797ca14), RTUINT128_INIT_C(0x000000000046271b, 0x6ccdf258da22a210) + }, + { /* i=378; 128 / 32 */ + RTUINT128_INIT_C(0x9d5efb48ef6bfd19, 0x7b351725ce721944), RTUINT128_INIT_C(0x0000000000000000, 0x000000006652419b), + RTUINT128_INIT_C(0x0000000189bae831, 0x799b541cca3eec72), RTUINT128_INIT_C(0x0000000000000000, 0x0000000037cbfe3e) + }, + { /* i=379; 105 / 62 */ + RTUINT128_INIT_C(0x000000dd91b3b3b9, 0x3e1bc26ccfb56691), RTUINT128_INIT_C(0x0000000000000000, 0x22ced0a89868faf8), + RTUINT128_INIT_C(0x0000000000000000, 0x0000065d90bc646b), RTUINT128_INIT_C(0x0000000000000000, 0x0298ba104baba0e9) + }, + { /* i=380; 25 / 17 */ + RTUINT128_INIT_C(0x0000000000000000, 0x0000000001dc6833), RTUINT128_INIT_C(0x0000000000000000, 0x000000000000af9c), + RTUINT128_INIT_C(0x0000000000000000, 0x00000000000002b6), RTUINT128_INIT_C(0x0000000000000000, 0x000000000000574b) + }, + { /* i=381; 118 / 113 */ + RTUINT128_INIT_C(0x001ae73aafd1265e, 0x599f08f498872b58), RTUINT128_INIT_C(0x0000ef1bc72130f0, 0x78ae6e701bd1fd41), + RTUINT128_INIT_C(0x0000000000000000, 0x000000000000001c), RTUINT128_INIT_C(0x0000c030e82fcc11, 0x268af4b18d8f783c) + }, + { /* i=382; 60 / 25 */ + RTUINT128_INIT_C(0x0000000000000000, 0x0f8bb9e2cd87da56), RTUINT128_INIT_C(0x0000000000000000, 0x00000000012abfea), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000d523f023e), RTUINT128_INIT_C(0x0000000000000000, 0x0000000001178baa) + }, + { /* i=383; 115 / 100 */ + RTUINT128_INIT_C(0x00053e03ab79a5fa, 0x125fec5f2699ceba), RTUINT128_INIT_C(0x000000005db04f2d, 0xde2745f17636158f), + RTUINT128_INIT_C(0x0000000000000000, 0x00000000000e52fd), RTUINT128_INIT_C(0x00000000465c8e57, 0x1df3fdead26cb267) + }, + { /* i=384; 23 / 12 */ + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000389ba0), RTUINT128_INIT_C(0x0000000000000000, 0x00000000000003b1), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000f55), RTUINT128_INIT_C(0x0000000000000000, 0x00000000000002db) + }, + { /* i=385; 55 / 2 */ + RTUINT128_INIT_C(0x0000000000000000, 0x0076ccfc8716a4ab), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000001), + RTUINT128_INIT_C(0x0000000000000000, 0x0076ccfc8716a4ab), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000) + }, + { /* i=386; 6 / 38 */ + RTUINT128_INIT_C(0x0000000000000000, 0x000000000000000a), RTUINT128_INIT_C(0x0000000000000000, 0x00000009ada125d2), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x0000000000000000, 0x000000000000000a) + }, + { /* i=387; 22 / 12 */ + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000082e46), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000d89), + RTUINT128_INIT_C(0x0000000000000000, 0x000000000000009a), RTUINT128_INIT_C(0x0000000000000000, 0x00000000000009dc) + }, + { /* i=388; 96 / 53 */ + RTUINT128_INIT_C(0x00000000d911a2a7, 0xb126cb96c3e7415f), RTUINT128_INIT_C(0x0000000000000000, 0x001d0963507bce44), + RTUINT128_INIT_C(0x0000000000000000, 0x00000779c6371e49), RTUINT128_INIT_C(0x0000000000000000, 0x0007149065d177fb) + }, + { /* i=389; 125 / 14 */ + RTUINT128_INIT_C(0x1ba31d6a02b34f15, 0xbcc768b9337b0989), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000001229), + RTUINT128_INIT_C(0x0001859871c4208f, 0x8f8aa49d1641f0a3), RTUINT128_INIT_C(0x0000000000000000, 0x000000000000096e) + }, + { /* i=390; 118 / 118 */ + RTUINT128_INIT_C(0x00136110655052be, 0xa9785ed33046ec6b), RTUINT128_INIT_C(0x0018e684291c6d24, 0xf0dd7060116b3355), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x00136110655052be, 0xa9785ed33046ec6b) + }, + { /* i=391; 80 / 64 */ + RTUINT128_INIT_C(0x0000000000009601, 0x9b96271a0bee6495), RTUINT128_INIT_C(0x0000000000000000, 0xd583093839e1be41), + RTUINT128_INIT_C(0x0000000000000000, 0x000000000000b3db), RTUINT128_INIT_C(0x0000000000000000, 0x550af387afc92ffa) + }, + { /* i=392; 120 / 121 */ + RTUINT128_INIT_C(0x006eb57665fbbdb7, 0xf8b2def2493fef14), RTUINT128_INIT_C(0x010ee7573b8246a4, 0x175552b07d2a166e), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x006eb57665fbbdb7, 0xf8b2def2493fef14) + }, + { /* i=393; 40 / 6 */ + RTUINT128_INIT_C(0x0000000000000000, 0x000000465b19b9ae), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000009), + RTUINT128_INIT_C(0x0000000000000000, 0x00000007d13bbf4c), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000002) + }, + { /* i=394; 123 / 123 */ + RTUINT128_INIT_C(0x03bd4d6a41039c54, 0x57f6fa079e1491f1), RTUINT128_INIT_C(0x0342982eecc2352d, 0x956e79ffe0d107f7), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000001), RTUINT128_INIT_C(0x007ab53b54416726, 0xc2888007bd4389fa) + }, + { /* i=395; 97 / 90 */ + RTUINT128_INIT_C(0x0000000043bcb60a, 0xe1ba16e29fcdae25), RTUINT128_INIT_C(0x000000000195f122, 0xc6710bcfb251ca12), + RTUINT128_INIT_C(0x0000000000000000, 0x000000000000002a), RTUINT128_INIT_C(0x0000000001232656, 0x532e26cf5e628731) + }, + { /* i=396; 121 / 124 */ + RTUINT128_INIT_C(0x0163eeb94d72c847, 0xcc1a39ecf9a5d481), RTUINT128_INIT_C(0x0ca06402bc8c4104, 0x8d9e250eeda67fd8), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x0163eeb94d72c847, 0xcc1a39ecf9a5d481) + }, + { /* i=397; 114 / 123 */ + RTUINT128_INIT_C(0x000012efde6a3d5c, 0x296036f08ea85547), RTUINT128_INIT_C(0x055b0b89854e2e4d, 0x1c410c8fee988817), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x000012efde6a3d5c, 0x296036f08ea85547) + }, + { /* i=398; 41 / 3 */ + RTUINT128_INIT_C(0x0000000000000000, 0x000001904979ece7), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000006), + RTUINT128_INIT_C(0x0000000000000000, 0x00000042b6e9a77b), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000005) + }, + { /* i=399; 119 / 120 */ + RTUINT128_INIT_C(0x00239dfa19220921, 0x99de49cc6f305f96), RTUINT128_INIT_C(0x00ea7d65dd69a5ba, 0xae6cac46397dd99f), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x00239dfa19220921, 0x99de49cc6f305f96) + }, + { /* i=400; 64 / 99 */ + RTUINT128_INIT_C(0x0000000000000000, 0xaaa4d40b4cf079a2), RTUINT128_INIT_C(0x00000006908713ff, 0xd06b60f5a2c88a63), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x0000000000000000, 0xaaa4d40b4cf079a2) + }, + { /* i=401; 114 / 55 */ + RTUINT128_INIT_C(0x0003df0c51a4acf9, 0xa5cbb438bb7a3652), RTUINT128_INIT_C(0x0000000000000000, 0x006efb209bce00d5), + RTUINT128_INIT_C(0x0000000000000000, 0x08ee0d72a829f88f), RTUINT128_INIT_C(0x0000000000000000, 0x004081ae387c6757) + }, + { /* i=402; 115 / 16 */ + RTUINT128_INIT_C(0x0000de5fd4527286, 0x00a7d9f2c2aaf9a2), RTUINT128_INIT_C(0x0000000000000000, 0x00000000000066c6), + RTUINT128_INIT_C(0x0000000229ea70ee, 0xaf792f80481b94eb), RTUINT128_INIT_C(0x0000000000000000, 0x00000000000029e0) + }, + { /* i=403; 121 / 98 */ + RTUINT128_INIT_C(0x019475a24d030af1, 0x3fb042d1a43485ef), RTUINT128_INIT_C(0x000000035ba7b7e6, 0x67c85ecca4b7a57a), + RTUINT128_INIT_C(0x0000000000000000, 0x000000000078720f), RTUINT128_INIT_C(0x000000010a4a044d, 0x80ce5d64a4917fc9) + }, + { /* i=404; 116 / 113 */ + RTUINT128_INIT_C(0x00041f5d3b0ddad7, 0x1cef5e0c9994d733), RTUINT128_INIT_C(0x00019b30c84952c3, 0xe7ed283cdd9a2b61), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000002), RTUINT128_INIT_C(0x0000e8fbaa7b354f, 0x4d150d92de608071) + }, + { /* i=405; 127 / 32 */ + RTUINT128_INIT_C(0x5d1df2f50db0317b, 0xe412d95fb15114fd), RTUINT128_INIT_C(0x0000000000000000, 0x00000000ce5854b9), + RTUINT128_INIT_C(0x00000000738652b4, 0x463a92ad5bfdf1da), RTUINT128_INIT_C(0x0000000000000000, 0x000000005481c673) + }, + { /* i=406; 64 / 63 */ + RTUINT128_INIT_C(0x0000000000000000, 0x586a53b918d281a3), RTUINT128_INIT_C(0x0000000000000000, 0x49a856c7294a65e2), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000001), RTUINT128_INIT_C(0x0000000000000000, 0x0ec1fcf1ef881bc1) + }, + { /* i=407; 52 / 37 */ + RTUINT128_INIT_C(0x0000000000000000, 0x0009d527ae191fd0), RTUINT128_INIT_C(0x0000000000000000, 0x00000017ff959103), + RTUINT128_INIT_C(0x0000000000000000, 0x00000000000068e3), RTUINT128_INIT_C(0x0000000000000000, 0x0000000b49905227) + }, + { /* i=408; 124 / 32 */ + RTUINT128_INIT_C(0x00f64c5de0a1ff83, 0xfc8bd8d70c3f4dcf), RTUINT128_INIT_C(0x0000000000000000, 0x0000000036a254e0), + RTUINT128_INIT_C(0x0000000004821595, 0xc22b236615bbd7c6), RTUINT128_INIT_C(0x0000000000000000, 0x0000000015c9888f) + }, + { /* i=409; 54 / 13 */ + RTUINT128_INIT_C(0x0000000000000000, 0x00177ef345532b8b), RTUINT128_INIT_C(0x0000000000000000, 0x00000000000013a1), + RTUINT128_INIT_C(0x0000000000000000, 0x000001326eebf1b1), RTUINT128_INIT_C(0x0000000000000000, 0x000000000000083a) + }, + { /* i=410; 99 / 55 */ + RTUINT128_INIT_C(0x00000001a5d06081, 0x8db51e9ade7fbfd2), RTUINT128_INIT_C(0x0000000000000000, 0x00037c52a6afa4c7), + RTUINT128_INIT_C(0x0000000000000000, 0x00007903d1a590ff), RTUINT128_INIT_C(0x0000000000000000, 0x0001f8735d97ad99) + }, + { /* i=411; 106 / 75 */ + RTUINT128_INIT_C(0x00000109ee50ec07, 0x4ba1495e6495134b), RTUINT128_INIT_C(0x000000000000025c, 0x5b37787a5383c2e0), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000070a55fac), RTUINT128_INIT_C(0x00000000000000aa, 0x41457901c85d04cb) + }, + { /* i=412; 113 / 108 */ + RTUINT128_INIT_C(0x00015682726869ef, 0xfedc0a6eea81e025), RTUINT128_INIT_C(0x00000df51edf96fd, 0x6dee61c17e10276c), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000018), RTUINT128_INIT_C(0x000007878d72422d, 0xb082e04b18fe2e05) + }, + { /* i=413; 102 / 83 */ + RTUINT128_INIT_C(0x0000002d43088669, 0x2d733e511181f615), RTUINT128_INIT_C(0x00000000000283c8, 0xa695e2f1045d2c77), + RTUINT128_INIT_C(0x0000000000000000, 0x000000000011ff92), RTUINT128_INIT_C(0x0000000000017016, 0xcce87353d12d1137) + }, + { /* i=414; 127 / 114 */ + RTUINT128_INIT_C(0x39b3ee3c480d99dd, 0x03f54d574b216aa3), RTUINT128_INIT_C(0x000203e9911182bb, 0xd8c11ad5c2caf273), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000001ca1), RTUINT128_INIT_C(0x0001ec7a21bdd604, 0x93940b9996fa5c50) + }, + { /* i=415; 115 / 87 */ + RTUINT128_INIT_C(0x000530e179d61ef2, 0x5d8e7a424b31bdd7), RTUINT128_INIT_C(0x000000000034218b, 0x98a897a7824f5cba), + RTUINT128_INIT_C(0x0000000000000000, 0x00000000197dbce2), RTUINT128_INIT_C(0x00000000001bfc78, 0x60d533e0883749a3) + }, + { /* i=416; 95 / 62 */ + RTUINT128_INIT_C(0x0000000036241967, 0x48c909155ebceb2a), RTUINT128_INIT_C(0x0000000000000000, 0x3875ecde9402a6de), + RTUINT128_INIT_C(0x0000000000000000, 0x00000000f57b83ba), RTUINT128_INIT_C(0x0000000000000000, 0x184d62a7d6c213de) + }, + { /* i=417; 100 / 104 */ + RTUINT128_INIT_C(0x0000000dd0bfba23, 0xfe81ec7228912e09), RTUINT128_INIT_C(0x00000070369f1acf, 0x54f7fe4d4b91d200), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x0000000dd0bfba23, 0xfe81ec7228912e09) + }, + { /* i=418; 121 / 93 */ + RTUINT128_INIT_C(0x01d86d24f542b355, 0xcec6ce1d434368f4), RTUINT128_INIT_C(0x00000000150a2723, 0x22df5d0147dd49ba), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000016743f08), RTUINT128_INIT_C(0x000000000c64d573, 0x7f2700c82aec5524) + }, + { /* i=419; 126 / 8 */ + RTUINT128_INIT_C(0x202ca28974185800, 0x69802c3df126ad95), RTUINT128_INIT_C(0x0000000000000000, 0x00000000000000f1), + RTUINT128_INIT_C(0x00222d49dd6d8305, 0x501b167d99f699ae), RTUINT128_INIT_C(0x0000000000000000, 0x00000000000000c7) + }, + { /* i=420; 120 / 87 */ + RTUINT128_INIT_C(0x00abd6fe0c1d6869, 0x5127a274f2fe00a9), RTUINT128_INIT_C(0x00000000002b15b0, 0x7d9a325686e4bea5), + RTUINT128_INIT_C(0x0000000000000000, 0x00000003fd08d8ba), RTUINT128_INIT_C(0x00000000000ed49f, 0x49f38a47e9c844c7) + }, + { /* i=421; 96 / 34 */ + RTUINT128_INIT_C(0x000000008af26272, 0xcf0d9d0827741c41), RTUINT128_INIT_C(0x0000000000000000, 0x000000013ca12d61), + RTUINT128_INIT_C(0x0000000000000000, 0x705736d568a1a2ef), RTUINT128_INIT_C(0x0000000000000000, 0x000000009c425cb2) + }, + { /* i=422; 82 / 39 */ + RTUINT128_INIT_C(0x000000000001df72, 0xe89e7f5ab86b376c), RTUINT128_INIT_C(0x0000000000000000, 0x00000037d3cebf1c), + RTUINT128_INIT_C(0x0000000000000000, 0x000008968b22660f), RTUINT128_INIT_C(0x0000000000000000, 0x0000000f5970dcc8) + }, + { /* i=423; 105 / 11 */ + RTUINT128_INIT_C(0x0000004300ecd32f, 0x17d0d0d6d2e45796), RTUINT128_INIT_C(0x0000000000000000, 0x000000000000047c), + RTUINT128_INIT_C(0x000000000ef10ae3, 0x4643bff57bb94938), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000076) + }, + { /* i=424; 59 / 21 */ + RTUINT128_INIT_C(0x0000000000000000, 0x05da5f468bafc9c2), RTUINT128_INIT_C(0x0000000000000000, 0x00000000001677a1), + RTUINT128_INIT_C(0x0000000000000000, 0x00000042b0f53d2e), RTUINT128_INIT_C(0x0000000000000000, 0x00000000000fedd4) + }, + { /* i=425; 119 / 70 */ + RTUINT128_INIT_C(0x0069bb68d33d30cd, 0x97303cdb2734e48e), RTUINT128_INIT_C(0x0000000000000026, 0x41581efa7493ab14), + RTUINT128_INIT_C(0x0000000000000000, 0x0002c38c2d000ddd), RTUINT128_INIT_C(0x0000000000000018, 0x1bd306b6800a304a) + }, + { /* i=426; 118 / 68 */ + RTUINT128_INIT_C(0x002f4189d9b3f35e, 0x9fa91e568d7acfe7), RTUINT128_INIT_C(0x0000000000000000, 0x7426a6999b9fe1df), + RTUINT128_INIT_C(0x0000000000000000, 0x0068274ff6d54b0f), RTUINT128_INIT_C(0x0000000000000000, 0x20e48eda5f653ed6) + }, + { /* i=427; 116 / 63 */ + RTUINT128_INIT_C(0x00056684ac4b6b52, 0xb261101fe3ae77ca), RTUINT128_INIT_C(0x0000000000000000, 0x5fe7b4248192a8c8), + RTUINT128_INIT_C(0x0000000000000000, 0x000e6a5d1c1e8438), RTUINT128_INIT_C(0x0000000000000000, 0x1d417b0645226c0a) + }, + { /* i=428; 123 / 76 */ + RTUINT128_INIT_C(0x01e4503721e3c707, 0xa7eea399768bd2a2), RTUINT128_INIT_C(0x0000000000000177, 0x7662cf5c0653dd5c), + RTUINT128_INIT_C(0x0000000000000000, 0x00014a37a48ac403), RTUINT128_INIT_C(0x00000000000000f5, 0x6afd76e4ea7dca8e) + }, + { /* i=429; 116 / 89 */ + RTUINT128_INIT_C(0x000c2f0a453b51b5, 0x74f61de19ab9ab5e), RTUINT128_INIT_C(0x0000000000cb1f97, 0x862c2eb8171f0836), + RTUINT128_INIT_C(0x0000000000000000, 0x000000000f5afb29), RTUINT128_INIT_C(0x000000000097ef9e, 0x700131566cb868b8) + }, + { /* i=430; 115 / 29 */ + RTUINT128_INIT_C(0x00073f1927027a96, 0x08e9af62b1d054fb), RTUINT128_INIT_C(0x0000000000000000, 0x00000000136cb9d7), + RTUINT128_INIT_C(0x00000000005f8081, 0x7d6ca685c88e0fae), RTUINT128_INIT_C(0x0000000000000000, 0x0000000011c46bd9) + }, + { /* i=431; 76 / 13 */ + RTUINT128_INIT_C(0x0000000000000065, 0x2707980b6f5d0e00), RTUINT128_INIT_C(0x0000000000000000, 0x00000000000011fc), + RTUINT128_INIT_C(0x0000000000000000, 0x059fdcd5f74b5d07), RTUINT128_INIT_C(0x0000000000000000, 0x000000000000041c) + }, + { /* i=432; 93 / 1 */ + RTUINT128_INIT_C(0x000000001fe05898, 0x4e9981fdd84fd3a9), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000001), + RTUINT128_INIT_C(0x000000001fe05898, 0x4e9981fdd84fd3a9), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000) + }, + { /* i=433; 19 / 23 */ + RTUINT128_INIT_C(0x0000000000000000, 0x000000000003f980), RTUINT128_INIT_C(0x0000000000000000, 0x00000000002b420f), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x0000000000000000, 0x000000000003f980) + }, + { /* i=434; 56 / 21 */ + RTUINT128_INIT_C(0x0000000000000000, 0x00351c08db264646), RTUINT128_INIT_C(0x0000000000000000, 0x000000000011eb1f), + RTUINT128_INIT_C(0x0000000000000000, 0x00000002f6c5f4ca), RTUINT128_INIT_C(0x0000000000000000, 0x00000000000e33d0) + }, + { /* i=435; 113 / 80 */ + RTUINT128_INIT_C(0x00019a2e7e9c81c7, 0x648012c88278dec4), RTUINT128_INIT_C(0x000000000000c98a, 0x790fe60f055b3cc6), + RTUINT128_INIT_C(0x0000000000000000, 0x000000020904acd5), RTUINT128_INIT_C(0x00000000000088c5, 0xd190cc93d7a24606) + }, + { /* i=436; 118 / 106 */ + RTUINT128_INIT_C(0x00237a8c2bbe2065, 0xc798f5f83595ee69), RTUINT128_INIT_C(0x000003df70518d18, 0x769d00461d55f397), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000929), RTUINT128_INIT_C(0x000000d050b8ab4f, 0x437173b57d419c3a) + }, + { /* i=437; 120 / 92 */ + RTUINT128_INIT_C(0x008ee3ce7aa565bb, 0x642b3254936dd153), RTUINT128_INIT_C(0x00000000002dce73, 0xd8323f35ae326b95), + RTUINT128_INIT_C(0x0000000000000000, 0x000000031e92bbef), RTUINT128_INIT_C(0x0000000000151af6, 0x777774dc4ccb8a38) + }, + { /* i=438; 88 / 12 */ + RTUINT128_INIT_C(0x000000000047c10d, 0x2d1881f30ff4283d), RTUINT128_INIT_C(0x0000000000000000, 0x00000000000004ec), + RTUINT128_INIT_C(0x0000000000000e94, 0x1fef27ece42d8070), RTUINT128_INIT_C(0x0000000000000000, 0x00000000000000fd) + }, + { /* i=439; 123 / 37 */ + RTUINT128_INIT_C(0x015fd773e05377e2, 0x890ee95db2dda408), RTUINT128_INIT_C(0x0000000000000000, 0x0000000280e91590), + RTUINT128_INIT_C(0x00000000008c8965, 0xfe781556733b2cf8), RTUINT128_INIT_C(0x0000000000000000, 0x00000001192c0088) + }, + { /* i=440; 127 / 2 */ + RTUINT128_INIT_C(0x67fe61979f63f515, 0xa8188dc11ab4c3de), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000001), + RTUINT128_INIT_C(0x67fe61979f63f515, 0xa8188dc11ab4c3de), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000) + }, + { /* i=441; 101 / 81 */ + RTUINT128_INIT_C(0x0000000f1cf7b8f0, 0x2c6d236b3ef9e955), RTUINT128_INIT_C(0x0000000000013ebc, 0xd4d430bc78d0e85c), + RTUINT128_INIT_C(0x0000000000000000, 0x00000000000c236e), RTUINT128_INIT_C(0x000000000000f8c1, 0x6dc0c41fe1217dcd) + }, + { /* i=442; 93 / 48 */ + RTUINT128_INIT_C(0x0000000012fadc99, 0x4744ec86c3a0f74d), RTUINT128_INIT_C(0x0000000000000000, 0x00008bfb2ce457cc), + RTUINT128_INIT_C(0x0000000000000000, 0x000022b5f8ce7267), RTUINT128_INIT_C(0x0000000000000000, 0x00004071be80cc39) + }, + { /* i=443; 120 / 33 */ + RTUINT128_INIT_C(0x000b17f51d94dc3b, 0xa971068682c4e744), RTUINT128_INIT_C(0x0000000000000000, 0x00000000cf1848e1), + RTUINT128_INIT_C(0x00000000000db69b, 0xf09a86d397f49580), RTUINT128_INIT_C(0x0000000000000000, 0x00000000a6c181c4) + }, + { /* i=444; 118 / 105 */ + RTUINT128_INIT_C(0x0036ed4463d155d1, 0xb0e1b7b60e2aef42), RTUINT128_INIT_C(0x0000009cf8f6bb93, 0x287086289201d9c3), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000005993), RTUINT128_INIT_C(0x00000093a6ed7742, 0x59a093a792661949) + }, + { /* i=445; 63 / 29 */ + RTUINT128_INIT_C(0x0000000000000000, 0x43d2406ada92a265), RTUINT128_INIT_C(0x0000000000000000, 0x00000000107bbe49), + RTUINT128_INIT_C(0x0000000000000000, 0x000000041d51b3a8), RTUINT128_INIT_C(0x0000000000000000, 0x000000000937b77d) + }, + { /* i=446; 127 / 112 */ + RTUINT128_INIT_C(0x7d6e9936fd612db8, 0xb3b82926020f499d), RTUINT128_INIT_C(0x0000ac184c1fb57e, 0xdcc239f1ccfc63a2), + RTUINT128_INIT_C(0x0000000000000000, 0x000000000000ba96), RTUINT128_INIT_C(0x00001bab58eea8fe, 0x3bd0868885c934b1) + }, + { /* i=447; 113 / 82 */ + RTUINT128_INIT_C(0x000077b0af5345c9, 0x6e689962445b9292), RTUINT128_INIT_C(0x000000000001dbb9, 0x2cfe0833c2bb1d82), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000040689b70), RTUINT128_INIT_C(0x0000000000003d47, 0xaa97c8714ad0f3b2) + }, + { /* i=448; 62 / 81 */ + RTUINT128_INIT_C(0x0000000000000000, 0x05941e2af249a975), RTUINT128_INIT_C(0x000000000001c8d2, 0x3c4a3e78705d8578), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x0000000000000000, 0x05941e2af249a975) + }, + { /* i=449; 122 / 46 */ + RTUINT128_INIT_C(0x030fcbea05060ef4, 0xd319f953f87119fd), RTUINT128_INIT_C(0x0000000000000000, 0x00000df2d04d77be), + RTUINT128_INIT_C(0x0000000000003831, 0x34b55c0590ddad22), RTUINT128_INIT_C(0x0000000000000000, 0x0000035eb535ccc1) + }, + { /* i=450; 119 / 90 */ + RTUINT128_INIT_C(0x0063cbab8f99d4b1, 0xb00c64b7cc874bc3), RTUINT128_INIT_C(0x00000000014b46b5, 0xb67d11811e4fe05a), + RTUINT128_INIT_C(0x0000000000000000, 0x000000004d1e72d9), RTUINT128_INIT_C(0x00000000001ef87a, 0x6afd7aee2c5e0b79) + }, + { /* i=451; 114 / 111 */ + RTUINT128_INIT_C(0x0000934b8101b993, 0x56e0abf7149afc33), RTUINT128_INIT_C(0x00000e1ad43ce71e, 0x55161906233d7f34), + RTUINT128_INIT_C(0x0000000000000000, 0x000000000000000a), RTUINT128_INIT_C(0x0000063f36a0b264, 0x0403b1b9b434042b) + }, + { /* i=452; 75 / 49 */ + RTUINT128_INIT_C(0x000000000000075f, 0x494f5dccea944354), RTUINT128_INIT_C(0x0000000000000000, 0x0001b43a0d2726ae), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000004538e2f), RTUINT128_INIT_C(0x0000000000000000, 0x0000338c8685a562) + }, + { /* i=453; 126 / 88 */ + RTUINT128_INIT_C(0x27805f8a0341f8f1, 0xbbc481e80c37616c), RTUINT128_INIT_C(0x0000000000b5f993, 0x052092014dfd76f8), + RTUINT128_INIT_C(0x0000000000000000, 0x0000003791f59d42), RTUINT128_INIT_C(0x0000000000adbdbf, 0x35f34d802b909d7c) + }, + { /* i=454; 122 / 81 */ + RTUINT128_INIT_C(0x037541e465d05532, 0x04bd0edc14cf9837), RTUINT128_INIT_C(0x000000000001134e, 0x1f16b773a7379ab6), + RTUINT128_INIT_C(0x0000000000000000, 0x000003372e417a26), RTUINT128_INIT_C(0x0000000000007e3e, 0xa3c4e3fbc69de533) + }, + { /* i=455; 42 / 5 */ + RTUINT128_INIT_C(0x0000000000000000, 0x000002226756e34a), RTUINT128_INIT_C(0x0000000000000000, 0x000000000000001d), + RTUINT128_INIT_C(0x0000000000000000, 0x00000012d76ced5a), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000018) + }, + { /* i=456; 124 / 27 */ + RTUINT128_INIT_C(0x0007e3080b6f916b, 0xdd01834cae10cb3f), RTUINT128_INIT_C(0x0000000000000000, 0x000000000771788b), + RTUINT128_INIT_C(0x00000000010f41c1, 0x8e54797afca09a08), RTUINT128_INIT_C(0x0000000000000000, 0x00000000052168e7) + }, + { /* i=457; 63 / 53 */ + RTUINT128_INIT_C(0x0000000000000000, 0x159fd4fbf40d9dad), RTUINT128_INIT_C(0x0000000000000000, 0x001789785cfb0ffa), + RTUINT128_INIT_C(0x0000000000000000, 0x00000000000000eb), RTUINT128_INIT_C(0x0000000000000000, 0x0004a37e9995f32f) + }, + { /* i=458; 128 / 56 */ + RTUINT128_INIT_C(0x95453b2e44102fe6, 0xea6d1ee49cea3f8f), RTUINT128_INIT_C(0x0000000000000000, 0x00101162ceef311a), + RTUINT128_INIT_C(0x000000000000094a, 0x3b74e542947059b1), RTUINT128_INIT_C(0x0000000000000000, 0x000a03e5de174295) + }, + { /* i=459; 126 / 60 */ + RTUINT128_INIT_C(0x11cfcfe97020e1fd, 0xcb3f5a1181bb5378), RTUINT128_INIT_C(0x0000000000000000, 0x08fb2a7be5f7f563), + RTUINT128_INIT_C(0x0000000000000001, 0xfbb605ff2d28ae23), RTUINT128_INIT_C(0x0000000000000000, 0x00157354c9937cef) + }, + { /* i=460; 123 / 90 */ + RTUINT128_INIT_C(0x034c9e884e76ca5f, 0x8cd4308f12bcc6db), RTUINT128_INIT_C(0x00000000017ae1b2, 0x6a04af872ac98076), + RTUINT128_INIT_C(0x0000000000000000, 0x000000023aafad7e), RTUINT128_INIT_C(0x0000000000713ae3, 0x413c8c584b15cec7) + }, + { /* i=461; 26 / 5 */ + RTUINT128_INIT_C(0x0000000000000000, 0x0000000002aa64fb), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000012), + RTUINT128_INIT_C(0x0000000000000000, 0x000000000025e92a), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000007) + }, + { /* i=462; 122 / 75 */ + RTUINT128_INIT_C(0x01dde77631d7c02e, 0xa5fa7766fbac23b9), RTUINT128_INIT_C(0x000000000000041f, 0x7fd994372c4b5971), + RTUINT128_INIT_C(0x0000000000000000, 0x000073e91655eb00), RTUINT128_INIT_C(0x00000000000000b9, 0xcd097830680c68b9) + }, + { /* i=463; 127 / 14 */ + RTUINT128_INIT_C(0x2a2187489b1fab3f, 0x29d7a462b16ead97), RTUINT128_INIT_C(0x0000000000000000, 0x000000000000069e), + RTUINT128_INIT_C(0x00065ded2714b8ec, 0x3d87fc51a9f7262f), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000295) + }, + { /* i=464; 54 / 71 */ + RTUINT128_INIT_C(0x0000000000000000, 0x000a770a8c5c1aff), RTUINT128_INIT_C(0x0000000000000076, 0xa8467d448de7486e), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x0000000000000000, 0x000a770a8c5c1aff) + }, + { /* i=465; 114 / 59 */ + RTUINT128_INIT_C(0x000100bceeb9ed42, 0x89faf88fb856a675), RTUINT128_INIT_C(0x0000000000000000, 0x07d5a878e37a3952), + RTUINT128_INIT_C(0x0000000000000000, 0x0020c50eee1420b7), RTUINT128_INIT_C(0x0000000000000000, 0x0537ca631e656cd7) + }, + { /* i=466; 84 / 84 */ + RTUINT128_INIT_C(0x00000000000956b2, 0xe8888e5d4df93dc6), RTUINT128_INIT_C(0x00000000000d4d70, 0xd8147ad3ef37289a), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x00000000000956b2, 0xe8888e5d4df93dc6) + }, + { /* i=467; 94 / 57 */ + RTUINT128_INIT_C(0x0000000036de99c1, 0xcdebd6d68c55d7b0), RTUINT128_INIT_C(0x0000000000000000, 0x00f7388bef603ee4), + RTUINT128_INIT_C(0x0000000000000000, 0x00000038d1699a4b), RTUINT128_INIT_C(0x0000000000000000, 0x0099942595ca42e4) + }, + { /* i=468; 113 / 102 */ + RTUINT128_INIT_C(0x0001f5aaae035169, 0xa91acfe214e81876), RTUINT128_INIT_C(0x000000309137e90f, 0x57bf6892a1263256), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000a54), RTUINT128_INIT_C(0x0000000ed8903ef3, 0x6436c579b668383e) + }, + { /* i=469; 126 / 75 */ + RTUINT128_INIT_C(0x3b614aea627444a5, 0x09157267aa1db6ff), RTUINT128_INIT_C(0x000000000000014b, 0x82990b77df72c927), + RTUINT128_INIT_C(0x0000000000000000, 0x002ddacc7c4e4de0), RTUINT128_INIT_C(0x0000000000000120, 0x01582bd2714af9df) + }, + { /* i=470; 42 / 10 */ + RTUINT128_INIT_C(0x0000000000000000, 0x000000728e4c42bd), RTUINT128_INIT_C(0x0000000000000000, 0x00000000000003ac), + RTUINT128_INIT_C(0x0000000000000000, 0x000000001f32bc87), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000309) + }, + { /* i=471; 41 / 8 */ + RTUINT128_INIT_C(0x0000000000000000, 0x000001ba0c7c8d21), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000093), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000301d39181), RTUINT128_INIT_C(0x0000000000000000, 0x000000000000000e) + }, + { /* i=472; 117 / 96 */ + RTUINT128_INIT_C(0x00020fe70204625b, 0xac90ffc63a886cf9), RTUINT128_INIT_C(0x000000002c77f8c6, 0xb151819b399a846f), + RTUINT128_INIT_C(0x0000000000000000, 0x00000000000bdf10), RTUINT128_INIT_C(0x00000000084622fa, 0x05e7354156be7509) + }, + { /* i=473; 26 / 22 */ + RTUINT128_INIT_C(0x0000000000000000, 0x00000000031e53d3), RTUINT128_INIT_C(0x0000000000000000, 0x00000000002cae62), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000011), RTUINT128_INIT_C(0x0000000000000000, 0x000000000026bf51) + }, + { /* i=474; 118 / 99 */ + RTUINT128_INIT_C(0x00091ad60bbdfaa2, 0xf3d65e7236913517), RTUINT128_INIT_C(0x000000042f9c70a7, 0x5ca1106a65ada1de), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000022cd1), RTUINT128_INIT_C(0x00000003685a84d2, 0x84b0e2c01841e6d9) + }, + { /* i=475; 110 / 35 */ + RTUINT128_INIT_C(0x00002a698fbeb496, 0x21d29719b1c684f0), RTUINT128_INIT_C(0x0000000000000000, 0x00000001b74fdd8c), + RTUINT128_INIT_C(0x00000000000018b7, 0x052d3f99b948d947), RTUINT128_INIT_C(0x0000000000000000, 0x00000000ac74671c) + }, + { /* i=476; 119 / 114 */ + RTUINT128_INIT_C(0x004dd367e30da7ca, 0x1a1eec37ad4f239a), RTUINT128_INIT_C(0x00039f041264761f, 0xb550eff1e20afae9), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000015), RTUINT128_INIT_C(0x0001c81260cff730, 0x3a7b3d6022688e7d) + }, + { /* i=477; 128 / 114 */ + RTUINT128_INIT_C(0x5d4dc79d239c4730, 0xe337d69c65bbec5b), RTUINT128_INIT_C(0x0001932fa1e85fe7, 0xc4365ada156f3184), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000003b3e), RTUINT128_INIT_C(0x000027c35f3aa2d6, 0xd71d92da94648263) + }, + { /* i=478; 114 / 125 */ + RTUINT128_INIT_C(0x0003c10e628994f7, 0xecbd743147735852), RTUINT128_INIT_C(0x1d241bdade8b9082, 0x6d545de1dcbe2756), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x0003c10e628994f7, 0xecbd743147735852) + }, + { /* i=479; 122 / 48 */ + RTUINT128_INIT_C(0x0395e110a895ce21, 0x25ae30d0ac571387), RTUINT128_INIT_C(0x0000000000000000, 0x000017134a833c3f), + RTUINT128_INIT_C(0x00000000000027c7, 0x07f6780194a1a864), RTUINT128_INIT_C(0x0000000000000000, 0x000004c521eb32eb) + }, + { /* i=480; 121 / 41 */ + RTUINT128_INIT_C(0x00fd82af83419fef, 0x4c31e192b6b774f6), RTUINT128_INIT_C(0x0000000000000000, 0x0000011d9e878c08), + RTUINT128_INIT_C(0x000000000000e338, 0x91c6a8f67af2475b), RTUINT128_INIT_C(0x0000000000000000, 0x000000859522761e) + }, + { /* i=481; 4 / 1 */ + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000008), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000001), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000008), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000) + }, + { /* i=482; 125 / 72 */ + RTUINT128_INIT_C(0x0396fec8faa3b570, 0xbd75804d9d960381), RTUINT128_INIT_C(0x000000000000006b, 0xf63e60636df79899), + RTUINT128_INIT_C(0x0000000000000000, 0x00088320ca2faf45), RTUINT128_INIT_C(0x0000000000000010, 0x5ce9a056fa724b44) + }, + { /* i=483; 68 / 48 */ + RTUINT128_INIT_C(0x0000000000000007, 0x5d0be9fdb93aac88), RTUINT128_INIT_C(0x0000000000000000, 0x0000202d9a08ebb1), + RTUINT128_INIT_C(0x0000000000000000, 0x00000000003a94e3), RTUINT128_INIT_C(0x0000000000000000, 0x00001e7b94f55a95) + }, + { /* i=484; 48 / 107 */ + RTUINT128_INIT_C(0x0000000000000000, 0x0000bf692c82c5b5), RTUINT128_INIT_C(0x000003691302dcf1, 0x0cbbb27c72b0d0b5), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x0000000000000000, 0x0000bf692c82c5b5) + }, + { /* i=485; 65 / 25 */ + RTUINT128_INIT_C(0x0000000000000000, 0xdbc65b715d7b9f33), RTUINT128_INIT_C(0x0000000000000000, 0x000000000129c8d1), + RTUINT128_INIT_C(0x0000000000000000, 0x000000bcefc01ea1), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000ebd5c2) + }, + { /* i=486; 115 / 104 */ + RTUINT128_INIT_C(0x0001a7f95712adf1, 0xad8666b6efb5390c), RTUINT128_INIT_C(0x000000fb34d7d784, 0xcb32d4bf4ba23841), + RTUINT128_INIT_C(0x0000000000000000, 0x00000000000001b0), RTUINT128_INIT_C(0x000000102ad6fdda, 0xc7bf63e74df64b5c) + }, + { /* i=487; 111 / 100 */ + RTUINT128_INIT_C(0x00006acf992e66d7, 0x9bcc7fefa2760a95), RTUINT128_INIT_C(0x00000003265c06c3, 0x99373d6521ad4ad8), + RTUINT128_INIT_C(0x0000000000000000, 0x00000000000021e8), RTUINT128_INIT_C(0x00000002f8e90ed4, 0xa2d2d2f1c6c45ed5) + }, + { /* i=488; 123 / 125 */ + RTUINT128_INIT_C(0x0624bec7787ef06d, 0x6f84e17d6d514761), RTUINT128_INIT_C(0x0a3858cdf9429442, 0x7c7ae7fa5bf95186), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x0624bec7787ef06d, 0x6f84e17d6d514761) + }, + { /* i=489; 116 / 113 */ + RTUINT128_INIT_C(0x00078746b31a8860, 0x4e56f320fcdf7222), RTUINT128_INIT_C(0x0001f3fec1b38cc7, 0x2555250bad4323a9), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000003), RTUINT128_INIT_C(0x0001ab4a6dffe20a, 0xde5783fdf5160727) + }, + { /* i=490; 111 / 2 */ + RTUINT128_INIT_C(0x000027fe7f7ff5cf, 0x6a42f0a4a7645a7c), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000002), + RTUINT128_INIT_C(0x000013ff3fbffae7, 0xb521785253b22d3e), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000) + }, + { /* i=491; 26 / 21 */ + RTUINT128_INIT_C(0x0000000000000000, 0x00000000002af4c5), RTUINT128_INIT_C(0x0000000000000000, 0x00000000001bc7b0), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000001), RTUINT128_INIT_C(0x0000000000000000, 0x00000000000f2d15) + }, + { /* i=492; 77 / 20 */ + RTUINT128_INIT_C(0x0000000000000f81, 0x9764dd8c7d4daabe), RTUINT128_INIT_C(0x0000000000000000, 0x00000000000f23e6), + RTUINT128_INIT_C(0x0000000000000000, 0x010630375503a40a), RTUINT128_INIT_C(0x0000000000000000, 0x000000000004ebc2) + }, + { /* i=493; 114 / 101 */ + RTUINT128_INIT_C(0x0002d35d3f0e671f, 0x9be93df695c3bfdb), RTUINT128_INIT_C(0x0000000ed9edd340, 0xaf16363061b53164), + RTUINT128_INIT_C(0x0000000000000000, 0x00000000000030b5), RTUINT128_INIT_C(0x00000000924be98f, 0xa70bdb6f87651427) + }, + { /* i=494; 113 / 6 */ + RTUINT128_INIT_C(0x000019cc30583b38, 0x9417cc07c657da2b), RTUINT128_INIT_C(0x0000000000000000, 0x000000000000000b), + RTUINT128_INIT_C(0x00000258617c6279, 0x81d39e2f40939f78), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000003) + }, + { /* i=495; 123 / 105 */ + RTUINT128_INIT_C(0x00826592c3d8fcc4, 0x389f0cfdb0270e68), RTUINT128_INIT_C(0x0000016f77c44d74, 0xc379cf92d02c6ab9), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000005ad7), RTUINT128_INIT_C(0x000000da2ac0e2fb, 0x3a581b813d546309) + }, + { /* i=496; 50 / 46 */ + RTUINT128_INIT_C(0x0000000000000000, 0x0003a77b7b17f44a), RTUINT128_INIT_C(0x0000000000000000, 0x00003680d7eb359b), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000011), RTUINT128_INIT_C(0x0000000000000000, 0x000008ed247964ff) + }, + { /* i=497; 11 / 40 */ + RTUINT128_INIT_C(0x0000000000000000, 0x00000000000005fe), RTUINT128_INIT_C(0x0000000000000000, 0x000000e91d2b0d5f), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x0000000000000000, 0x00000000000005fe) + }, + { /* i=498; 123 / 118 */ + RTUINT128_INIT_C(0x0764c63b627818bd, 0xbec0b7a03a32fdbf), RTUINT128_INIT_C(0x003c1f3585aa3870, 0x2d592aaa20aab574), + RTUINT128_INIT_C(0x0000000000000000, 0x000000000000001f), RTUINT128_INIT_C(0x001cfec032db4328, 0x40f48d06458704b3) + }, + { /* i=499; 123 / 41 */ + RTUINT128_INIT_C(0x0647918e6d799c14, 0x80a661f227248d9d), RTUINT128_INIT_C(0x0000000000000000, 0x0000007b6560e600), + RTUINT128_INIT_C(0x00000000000d0718, 0x9cd448b4d6b8d11d), RTUINT128_INIT_C(0x0000000000000000, 0x0000004a3f647f9d) + }, + { /* i=500; 60 / 59 */ + RTUINT128_INIT_C(0x0000000000000000, 0x0d3150bf238c7095), RTUINT128_INIT_C(0x0000000000000000, 0x061c9c3d1cb18ae6), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000002), RTUINT128_INIT_C(0x0000000000000000, 0x00f81844ea295ac9) + }, + { /* i=501; 58 / 31 */ + RTUINT128_INIT_C(0x0000000000000000, 0x03f2abe94cc10646), RTUINT128_INIT_C(0x0000000000000000, 0x000000000d2edb08), + RTUINT128_INIT_C(0x0000000000000000, 0x000000004caa2265), RTUINT128_INIT_C(0x0000000000000000, 0x000000000cdd8c1e) + }, + { /* i=502; 114 / 40 */ + RTUINT128_INIT_C(0x0001885650268dbc, 0xc2d08dcb5d99da90), RTUINT128_INIT_C(0x0000000000000000, 0x000000d0926a5a64), + RTUINT128_INIT_C(0x00000000000001e1, 0x8d6929d6c849ae75), RTUINT128_INIT_C(0x0000000000000000, 0x0000006a430a92dc) + }, + { /* i=503; 128 / 105 */ + RTUINT128_INIT_C(0xba3024bc832167ca, 0xdeffc3dd040cc5e3), RTUINT128_INIT_C(0x000000c8f837922a, 0x849f7825397b996d), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000ed2bc1), RTUINT128_INIT_C(0x00000015ba5249d3, 0xdf21b7b7e12fcbb6) + }, + { /* i=504; 127 / 97 */ + RTUINT128_INIT_C(0x523643a65ae2d46c, 0xcedda4d5292e9f3a), RTUINT128_INIT_C(0x000000002378447b, 0x3b69f4bee6cca2cc), + RTUINT128_INIT_C(0x0000000000000000, 0x00000002515b7ca0), RTUINT128_INIT_C(0x00000000221dc808, 0x259c25e15fea0fba) + }, + { /* i=505; 123 / 103 */ + RTUINT128_INIT_C(0x045fe6fee2e7cc4f, 0xabce28c2c9cb3504), RTUINT128_INIT_C(0x0000004989a0425f, 0x059d47edff2193cc), + RTUINT128_INIT_C(0x0000000000000000, 0x00000000000f3a9e), RTUINT128_INIT_C(0x00000009bf63fa2d, 0x5b7de51a0ea1c51c) + }, + { /* i=506; 33 / 25 */ + RTUINT128_INIT_C(0x0000000000000000, 0x00000000dc4118c7), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000409180), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000369), RTUINT128_INIT_C(0x0000000000000000, 0x000000000010eb47) + }, + { /* i=507; 122 / 73 */ + RTUINT128_INIT_C(0x00a6cae1b8965dbf, 0x3d406c6e0a351774), RTUINT128_INIT_C(0x00000000000000e5, 0x1ff10a350f6b6f8d), + RTUINT128_INIT_C(0x0000000000000000, 0x0000ba5b41112ec6), RTUINT128_INIT_C(0x0000000000000021, 0x884f980a99b47a66) + }, + { /* i=508; 123 / 95 */ + RTUINT128_INIT_C(0x05bb7df8c66f43dd, 0x494864342f612ed2), RTUINT128_INIT_C(0x00000000639b5e38, 0x019f2ce788d78961), + RTUINT128_INIT_C(0x0000000000000000, 0x000000000ebb9b0c), RTUINT128_INIT_C(0x00000000261b0c87, 0x5f055a8a9d3e0346) + }, + { /* i=509; 127 / 68 */ + RTUINT128_INIT_C(0x349402e0c96a75f5, 0xf0ab244d85d4471b), RTUINT128_INIT_C(0x000000000000000d, 0xc0b0140436e7b1a6), + RTUINT128_INIT_C(0x0000000000000000, 0x03d2b7fa9a153f9f), RTUINT128_INIT_C(0x0000000000000001, 0xd694a430f8971701) + }, + { /* i=510; 119 / 75 */ + RTUINT128_INIT_C(0x001f88c49489251f, 0x9b430d3b1f16b97d), RTUINT128_INIT_C(0x00000000000003ce, 0x95a2e5ff76ed5fab), + RTUINT128_INIT_C(0x0000000000000000, 0x0000084885ceef26), RTUINT128_INIT_C(0x000000000000009e, 0xa640237908efe11b) + }, + { /* i=511; 50 / 20 */ + RTUINT128_INIT_C(0x0000000000000000, 0x0000a5d39e81b696), RTUINT128_INIT_C(0x0000000000000000, 0x00000000000a8b1e), + RTUINT128_INIT_C(0x0000000000000000, 0x000000000fba5be0), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000085256) + }, + { /* i=512; 96 / 1 */ + RTUINT128_INIT_C(0x00000000a3783345, 0x2e577d35c2cf953c), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000001), + RTUINT128_INIT_C(0x00000000a3783345, 0x2e577d35c2cf953c), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000) + }, + { /* i=513; 46 / 125 */ + RTUINT128_INIT_C(0x0000000000000000, 0x000038c2eff5ac50), RTUINT128_INIT_C(0x0fb8f8bd766308a8, 0xdc3c1d233de7800b), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x0000000000000000, 0x000038c2eff5ac50) + }, + { /* i=514; 114 / 95 */ + RTUINT128_INIT_C(0x0001bf351efb2a15, 0x1c4398dc005c039d), RTUINT128_INIT_C(0x000000002e990205, 0xb1efff5a84c4f19c), + RTUINT128_INIT_C(0x0000000000000000, 0x00000000000998e2), RTUINT128_INIT_C(0x000000001080bdf7, 0x8c97c1315c8e17e5) + }, + { /* i=515; 123 / 79 */ + RTUINT128_INIT_C(0x039422ddb8fb8709, 0x9c2c154011038b78), RTUINT128_INIT_C(0x0000000000006fab, 0x77d5ac14135351fb), + RTUINT128_INIT_C(0x0000000000000000, 0x0000083437b0360a), RTUINT128_INIT_C(0x0000000000001f82, 0xb616718272e765aa) + }, + { /* i=516; 113 / 83 */ + RTUINT128_INIT_C(0x000130a38b6fa72b, 0x20b54e2090d28621), RTUINT128_INIT_C(0x0000000000021f7f, 0x6f6f6888dd7a459e), + RTUINT128_INIT_C(0x0000000000000000, 0x000000008f7deeca), RTUINT128_INIT_C(0x000000000001ae39, 0x211222a2e178b375) + }, + { /* i=517; 115 / 47 */ + RTUINT128_INIT_C(0x000198e72246d6cd, 0xfb52ea1301f5c0b9), RTUINT128_INIT_C(0x0000000000000000, 0x00006c16f94f9937), + RTUINT128_INIT_C(0x0000000000000003, 0xc8724ef5ecff34b4), RTUINT128_INIT_C(0x0000000000000000, 0x0000241c3915da0d) + }, + { /* i=518; 114 / 18 */ + RTUINT128_INIT_C(0x000084f6e7395c54, 0x07b529d62c8cc4e8), RTUINT128_INIT_C(0x0000000000000000, 0x000000000002585a), + RTUINT128_INIT_C(0x0000000038b2c2b8, 0xb4a5c4e067a7fe13), RTUINT128_INIT_C(0x0000000000000000, 0x000000000000ea3a) + }, + { /* i=519; 123 / 99 */ + RTUINT128_INIT_C(0x0438327bd50b65be, 0x68fe3abeb5a2a54f), RTUINT128_INIT_C(0x000000023be1dc96, 0x18c039cec518381e), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000001e38b5f), RTUINT128_INIT_C(0x00000000ca4457ed, 0xc927a54d8a93882d) + }, + { /* i=520; 90 / 10 */ + RTUINT128_INIT_C(0x0000000002fb3496, 0xf72dd1b5b5739399), RTUINT128_INIT_C(0x0000000000000000, 0x000000000000030f), + RTUINT128_INIT_C(0x000000000000f987, 0x38e0abea539a7786), RTUINT128_INIT_C(0x0000000000000000, 0x00000000000000bf) + }, + { /* i=521; 41 / 15 */ + RTUINT128_INIT_C(0x0000000000000000, 0x0000014e1b324f4d), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000006e92), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000003058bb6), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000006d81) + }, + { /* i=522; 125 / 89 */ + RTUINT128_INIT_C(0x11a4154c2e861604, 0xd845434f84c538fa), RTUINT128_INIT_C(0x00000000005c83ab, 0x39a7a571994fe5e5), + RTUINT128_INIT_C(0x0000000000000000, 0x00000030d0a11498), RTUINT128_INIT_C(0x00000000005809b1, 0x6bd0b6e89a59d502) + }, + { /* i=523; 123 / 74 */ + RTUINT128_INIT_C(0x06578061b8975b71, 0xc97d66b2533d7c3e), RTUINT128_INIT_C(0x0000000000000192, 0x922c379a0a9d51f7), + RTUINT128_INIT_C(0x0000000000000000, 0x00040867bb60955f), RTUINT128_INIT_C(0x0000000000000002, 0xf77b841ba8874e95) + }, + { /* i=524; 122 / 122 */ + RTUINT128_INIT_C(0x002d6c6f2559b5cc, 0x6d4c69df5f2b02b4), RTUINT128_INIT_C(0x023acefdea4b6cdd, 0xbe9468b37af8a93a), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x002d6c6f2559b5cc, 0x6d4c69df5f2b02b4) + }, + { /* i=525; 118 / 16 */ + RTUINT128_INIT_C(0x00185400b3ecc66b, 0xb15c762d845ad5c6), RTUINT128_INIT_C(0x0000000000000000, 0x00000000000072fb), + RTUINT128_INIT_C(0x000000362a6e42f5, 0x0dd12b4a2502c294), RTUINT128_INIT_C(0x0000000000000000, 0x00000000000026aa) + }, + { /* i=526; 123 / 113 */ + RTUINT128_INIT_C(0x0309bb4321631555, 0xe9fd461722e62a64), RTUINT128_INIT_C(0x00011910a63053a3, 0x69e7f36c5f58ae40), + RTUINT128_INIT_C(0x0000000000000000, 0x00000000000002c4), RTUINT128_INIT_C(0x0000693783bbc565, 0x04800e5f71a44164) + }, + { /* i=527; 120 / 55 */ + RTUINT128_INIT_C(0x009b558faf843658, 0x6242a8581631b6c6), RTUINT128_INIT_C(0x0000000000000000, 0x007c66583abd21e1), + RTUINT128_INIT_C(0x0000000000000001, 0x3fa8cefb32b7a9fc), RTUINT128_INIT_C(0x0000000000000000, 0x0057774b3ecfd44a) + }, + { /* i=528; 57 / 27 */ + RTUINT128_INIT_C(0x0000000000000000, 0x009bd0d876136c19), RTUINT128_INIT_C(0x0000000000000000, 0x00000000066bc76c), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000018443ca3), RTUINT128_INIT_C(0x0000000000000000, 0x0000000004062255) + }, + { /* i=529; 20 / 111 */ + RTUINT128_INIT_C(0x0000000000000000, 0x00000000000d540b), RTUINT128_INIT_C(0x000003b9ffe8e9b3, 0x1a095100313b5a3f), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x0000000000000000, 0x00000000000d540b) + }, + { /* i=530; 126 / 92 */ + RTUINT128_INIT_C(0x09cad352f115d1c3, 0x58d826e288f52d69), RTUINT128_INIT_C(0x000000000d0f886c, 0x09a43c4f1d2a29d5), + RTUINT128_INIT_C(0x0000000000000000, 0x00000000bfefd85f), RTUINT128_INIT_C(0x0000000005288035, 0xdd6455582a28ef5e) + }, + { /* i=531; 105 / 28 */ + RTUINT128_INIT_C(0x0000013c18ec4826, 0x112a8ee35efafde1), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000f4ba73), + RTUINT128_INIT_C(0x0000000000014aa7, 0xf96430841a00af6a), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000312d43) + }, + { /* i=532; 114 / 39 */ + RTUINT128_INIT_C(0x00011e23f384d817, 0x069981fd9953a4ea), RTUINT128_INIT_C(0x0000000000000000, 0x0000001c3be79d11), + RTUINT128_INIT_C(0x0000000000000a22, 0x7565f346c7fd019b), RTUINT128_INIT_C(0x0000000000000000, 0x00000004fbad7a9f) + }, + { /* i=533; 117 / 52 */ + RTUINT128_INIT_C(0x0001c4147aea9b10, 0xd53e43226b457b9c), RTUINT128_INIT_C(0x0000000000000000, 0x000c9e43d922d11c), + RTUINT128_INIT_C(0x0000000000000000, 0x23d3da47bacc445c), RTUINT128_INIT_C(0x0000000000000000, 0x000932a228e6e58c) + }, + { /* i=534; 50 / 45 */ + RTUINT128_INIT_C(0x0000000000000000, 0x0000b46c21399d2f), RTUINT128_INIT_C(0x0000000000000000, 0x000015adb8da2357), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000008), RTUINT128_INIT_C(0x0000000000000000, 0x000006fe5a688277) + }, + { /* i=535; 15 / 8 */ + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000001a26), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000063), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000043), RTUINT128_INIT_C(0x0000000000000000, 0x000000000000003d) + }, + { /* i=536; 127 / 126 */ + RTUINT128_INIT_C(0x756f5e59fd9f8c1f, 0x07e743c9f43cd66d), RTUINT128_INIT_C(0x34a5aa04f76d169b, 0xd52a19c8ecb439e4), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000002), RTUINT128_INIT_C(0x0c240a500ec55ee7, 0x5d9310381ad462a5) + }, + { /* i=537; 120 / 115 */ + RTUINT128_INIT_C(0x003d6103ca1a365a, 0x27d425d7a175736b), RTUINT128_INIT_C(0x00000dcf27d6f188, 0xb551e249d809308a), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000471), RTUINT128_INIT_C(0x00000bf3d873762c, 0xd7261bdf20a4de81) + }, + { /* i=538; 115 / 46 */ + RTUINT128_INIT_C(0x00076ffdeedd6457, 0x8c30c6bb5e61cf83), RTUINT128_INIT_C(0x0000000000000000, 0x0000041bf099e299), + RTUINT128_INIT_C(0x00000000000001cf, 0x5af6c205c836241f), RTUINT128_INIT_C(0x0000000000000000, 0x00000109439bdafc) + }, + { /* i=539; 120 / 98 */ + RTUINT128_INIT_C(0x0083fde893dcc710, 0xc24dd37ea4a9014a), RTUINT128_INIT_C(0x00000000654f94c1, 0x92f55f8c8d654f2f), + RTUINT128_INIT_C(0x0000000000000000, 0x00000000014d86e9), RTUINT128_INIT_C(0x0000000036c4e6c8, 0x47225dc6ebde5583) + }, + { /* i=540; 120 / 51 */ + RTUINT128_INIT_C(0x0005148ad23e63ff, 0x9ae19ce157abb281), RTUINT128_INIT_C(0x0000000000000000, 0x00061cc16bb9a00b), + RTUINT128_INIT_C(0x0000000000000000, 0xd4c610ec1f8d16af), RTUINT128_INIT_C(0x0000000000000000, 0x00054ba444f758fc) + }, + { /* i=541; 113 / 122 */ + RTUINT128_INIT_C(0x0001cf1be3b74569, 0x6313a7ee2181e3fb), RTUINT128_INIT_C(0x005acdd9981c5ae2, 0x7add405fdd6fa35c), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x0001cf1be3b74569, 0x6313a7ee2181e3fb) + }, + { /* i=542; 72 / 62 */ + RTUINT128_INIT_C(0x000000000000008d, 0x78b00ae8c7be6430), RTUINT128_INIT_C(0x0000000000000000, 0x06230a9a99af4c72), + RTUINT128_INIT_C(0x0000000000000000, 0x000000000000170d), RTUINT128_INIT_C(0x0000000000000000, 0x02f49d4039f94466) + }, + { /* i=543; 128 / 120 */ + RTUINT128_INIT_C(0x8098b5fee693fac6, 0xd1e7fef0c6c15fd1), RTUINT128_INIT_C(0x002da33bab2545a7, 0xcfcfad53d545d03e), + RTUINT128_INIT_C(0x0000000000000000, 0x00000000000002d1), RTUINT128_INIT_C(0x000ffaf1e29acd26, 0x8a00d5d51d21e133) + }, + { /* i=544; 35 / 97 */ + RTUINT128_INIT_C(0x0000000000000000, 0x000000054daf521f), RTUINT128_INIT_C(0x000000017f442bd5, 0xcc91ae883857f8b9), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x0000000000000000, 0x000000054daf521f) + }, + { /* i=545; 125 / 49 */ + RTUINT128_INIT_C(0x1dfdcd39a8b4d173, 0x8ca6ed4f1078f123), RTUINT128_INIT_C(0x0000000000000000, 0x00001ce84d45cc01), + RTUINT128_INIT_C(0x0000000000010999, 0x7f84ae778634533c), RTUINT128_INIT_C(0x0000000000000000, 0x000018625cc4cde7) + }, + { /* i=546; 128 / 61 */ + RTUINT128_INIT_C(0x5d16ac5aea305b37, 0xbed423cdb27fc702), RTUINT128_INIT_C(0x0000000000000000, 0x0019ca5aa86fa5d1), + RTUINT128_INIT_C(0x000000000000039c, 0x02fdab786e5c0051), RTUINT128_INIT_C(0x0000000000000000, 0x001146c702104fe1) + }, + { /* i=547; 46 / 15 */ + RTUINT128_INIT_C(0x0000000000000000, 0x0000251ef5c695bc), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000007f7c), + RTUINT128_INIT_C(0x0000000000000000, 0x000000004a8acaae), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000001774) + }, + { /* i=548; 116 / 125 */ + RTUINT128_INIT_C(0x000049307d6aecbd, 0xb91869710f81f904), RTUINT128_INIT_C(0x19ae631f4821d509, 0x930699cb386fa357), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x000049307d6aecbd, 0xb91869710f81f904) + }, + { /* i=549; 123 / 7 */ + RTUINT128_INIT_C(0x069a86a8186abfb8, 0x5aa94b189950d777), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000078), + RTUINT128_INIT_C(0x000e167499cdb087, 0xefb05817abf1bd87), RTUINT128_INIT_C(0x0000000000000000, 0x000000000000002f) + }, + { /* i=550; 115 / 78 */ + RTUINT128_INIT_C(0x00025a2e7c3f2e24, 0x3b7c7caa1b90bcc2), RTUINT128_INIT_C(0x00000000000022fd, 0x0ae3f35ac0161f36), + RTUINT128_INIT_C(0x0000000000000000, 0x0000001135fb81e7), RTUINT128_INIT_C(0x000000000000116a, 0x64f42e3ed9ee5d08) + }, + { /* i=551; 43 / 27 */ + RTUINT128_INIT_C(0x0000000000000000, 0x000004a9747c93f3), RTUINT128_INIT_C(0x0000000000000000, 0x0000000002e3c828), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000019cfe), RTUINT128_INIT_C(0x0000000000000000, 0x00000000005b9c43) + }, + { /* i=552; 55 / 42 */ + RTUINT128_INIT_C(0x0000000000000000, 0x00031f21dea8ec16), RTUINT128_INIT_C(0x0000000000000000, 0x000003044264b2fc), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000108), RTUINT128_INIT_C(0x0000000000000000, 0x000002bd66d05836) + }, + { /* i=553; 120 / 15 */ + RTUINT128_INIT_C(0x00c40a7bde6b52be, 0x3a0aa0e059bb5392), RTUINT128_INIT_C(0x0000000000000000, 0x00000000000072be), + RTUINT128_INIT_C(0x000001b5627f78d6, 0xc42563769625fa7c), RTUINT128_INIT_C(0x0000000000000000, 0x000000000000338a) + }, + { /* i=554; 117 / 76 */ + RTUINT128_INIT_C(0x0015d59fb1268bba, 0x5fd51c2d11f6c0d8), RTUINT128_INIT_C(0x0000000000000954, 0x9b71c60cfa2e3857), + RTUINT128_INIT_C(0x0000000000000000, 0x000002571200c049), RTUINT128_INIT_C(0x00000000000005ba, 0x6c1cd34ff2877009) + }, + { /* i=555; 125 / 12 */ + RTUINT128_INIT_C(0x00a92d7a4a878cc4, 0xfc7b109ea7759d41), RTUINT128_INIT_C(0x0000000000000000, 0x00000000000003d8), + RTUINT128_INIT_C(0x00002c0381a2ffe2, 0x0575b7f3ac65d7d5), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000289) + }, + { /* i=556; 78 / 77 */ + RTUINT128_INIT_C(0x000000000000226a, 0x762c5a405ba56a46), RTUINT128_INIT_C(0x00000000000002a7, 0xe77d4060849bf883), + RTUINT128_INIT_C(0x0000000000000000, 0x000000000000000c), RTUINT128_INIT_C(0x000000000000028b, 0x9c4d55ba2455c422) + }, + { /* i=557; 108 / 37 */ + RTUINT128_INIT_C(0x00000f6d76663305, 0xfa2d97cd4b3ca5d7), RTUINT128_INIT_C(0x0000000000000000, 0x0000000825a44c77), + RTUINT128_INIT_C(0x00000000000001e4, 0xc5d5d8368470991c), RTUINT128_INIT_C(0x0000000000000000, 0x000000012b8129d3) + }, + { /* i=558; 86 / 42 */ + RTUINT128_INIT_C(0x00000000001dc22b, 0xec328bc5e84bcb61), RTUINT128_INIT_C(0x0000000000000000, 0x000003321f3ee9e1), + RTUINT128_INIT_C(0x0000000000000000, 0x0000094fd0bbcd1e), RTUINT128_INIT_C(0x0000000000000000, 0x0000027636483603) + }, + { /* i=559; 50 / 3 */ + RTUINT128_INIT_C(0x0000000000000000, 0x0002dd579de963df), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000001), + RTUINT128_INIT_C(0x0000000000000000, 0x0002dd579de963df), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000) + }, + { /* i=560; 10 / 25 */ + RTUINT128_INIT_C(0x0000000000000000, 0x00000000000000db), RTUINT128_INIT_C(0x0000000000000000, 0x00000000002adaf9), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x0000000000000000, 0x00000000000000db) + }, + { /* i=561; 42 / 32 */ + RTUINT128_INIT_C(0x0000000000000000, 0x000002cfbe5dc149), RTUINT128_INIT_C(0x0000000000000000, 0x0000000023e632fe), + RTUINT128_INIT_C(0x0000000000000000, 0x000000000000140c), RTUINT128_INIT_C(0x0000000000000000, 0x0000000013978561) + }, + { /* i=562; 114 / 119 */ + RTUINT128_INIT_C(0x0003e2e2a188e8a7, 0x74470e780410e94d), RTUINT128_INIT_C(0x00190e4ea2804b14, 0xdaa85dbb93ba5ca7), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x0003e2e2a188e8a7, 0x74470e780410e94d) + }, + { /* i=563; 125 / 95 */ + RTUINT128_INIT_C(0x173e6bc1b302c3a2, 0xbee8cda5ccae769e), RTUINT128_INIT_C(0x000000003e244b66, 0x53935942cb8b3ab1), + RTUINT128_INIT_C(0x0000000000000000, 0x000000005fc16cd0), RTUINT128_INIT_C(0x00000000148da506, 0x98a3fac2c05b1ace) + }, + { /* i=564; 52 / 12 */ + RTUINT128_INIT_C(0x0000000000000000, 0x00005941dda2d3ff), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000ebd), + RTUINT128_INIT_C(0x0000000000000000, 0x000000060e600d38), RTUINT128_INIT_C(0x0000000000000000, 0x00000000000001a7) + }, + { /* i=565; 64 / 4 */ + RTUINT128_INIT_C(0x0000000000000000, 0xcc661b6cee3c018a), RTUINT128_INIT_C(0x0000000000000000, 0x000000000000000c), + RTUINT128_INIT_C(0x0000000000000000, 0x1108824913da5576), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000002) + }, + { /* i=566; 128 / 122 */ + RTUINT128_INIT_C(0x99acfd6297550318, 0x63ac21f6b497ca04), RTUINT128_INIT_C(0x0054d94bde572b7a, 0x07b49f43873203c8), + RTUINT128_INIT_C(0x0000000000000000, 0x00000000000001cf), RTUINT128_INIT_C(0x0037fd2b77ad6164, 0x740016d53122f34c) + }, + { /* i=567; 36 / 28 */ + RTUINT128_INIT_C(0x0000000000000000, 0x0000000f158bad1b), RTUINT128_INIT_C(0x0000000000000000, 0x000000000566d96d), + RTUINT128_INIT_C(0x0000000000000000, 0x00000000000002ca), RTUINT128_INIT_C(0x0000000000000000, 0x0000000004b14319) + }, + { /* i=568; 81 / 34 */ + RTUINT128_INIT_C(0x000000000000bd6f, 0xc3b5bf545314687c), RTUINT128_INIT_C(0x0000000000000000, 0x0000000282879409), + RTUINT128_INIT_C(0x0000000000000000, 0x00004b79ef8e7699), RTUINT128_INIT_C(0x0000000000000000, 0x000000004dd2c91b) + }, + { /* i=569; 118 / 85 */ + RTUINT128_INIT_C(0x0024d3b7f210bb17, 0x4c0b01e0466fe410), RTUINT128_INIT_C(0x0000000000043209, 0x802e6497b127e93d), + RTUINT128_INIT_C(0x0000000000000000, 0x00000008c720124d), RTUINT128_INIT_C(0x000000000001c87c, 0x7418a0979c6872b7) + }, + { /* i=570; 68 / 62 */ + RTUINT128_INIT_C(0x0000000000000009, 0x67eb43bbec889899), RTUINT128_INIT_C(0x0000000000000000, 0x14a349e48fff308c), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000074), RTUINT128_INIT_C(0x0000000000000000, 0x0dedc82aace69929) + }, + { /* i=571; 117 / 112 */ + RTUINT128_INIT_C(0x00071b85ca3bba91, 0xe37605b7fa2e9fa8), RTUINT128_INIT_C(0x000077522580dc8e, 0x9f7966662cb225de), + RTUINT128_INIT_C(0x0000000000000000, 0x000000000000000f), RTUINT128_INIT_C(0x00001db597aece36, 0x8b5905bb5bbe67a6) + }, + { /* i=572; 85 / 73 */ + RTUINT128_INIT_C(0x0000000000015ede, 0x5ebf02a41a39e26a), RTUINT128_INIT_C(0x00000000000000d3, 0x4ed9452bc9eb1ddf), + RTUINT128_INIT_C(0x0000000000000000, 0x00000000000001a9), RTUINT128_INIT_C(0x0000000000000010, 0x780b2cf1e2e54b33) + }, + { /* i=573; 81 / 40 */ + RTUINT128_INIT_C(0x00000000000175c7, 0x4a21949920ab2178), RTUINT128_INIT_C(0x0000000000000000, 0x0000003c624154f0), + RTUINT128_INIT_C(0x0000000000000000, 0x00000630a6c3c682), RTUINT128_INIT_C(0x0000000000000000, 0x0000001960fc5f98) + }, + { /* i=574; 127 / 121 */ + RTUINT128_INIT_C(0x70e551390559a3a1, 0xa2dade28e2531eae), RTUINT128_INIT_C(0x007bf31965a7f12d, 0xd71f121bca5312a6), + RTUINT128_INIT_C(0x0000000000000000, 0x00000000000000e9), RTUINT128_INIT_C(0x00150f1b7f7f20e8, 0xd79362ddbcb72598) + }, + { /* i=575; 77 / 12 */ + RTUINT128_INIT_C(0x0000000000001899, 0x46a797511e1a24f6), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000b06), + RTUINT128_INIT_C(0x0000000000000002, 0x3b433067b7875b74), RTUINT128_INIT_C(0x0000000000000000, 0x000000000000043e) + }, + { /* i=576; 49 / 24 */ + RTUINT128_INIT_C(0x0000000000000000, 0x000158be9614f257), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000c321b8), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000001c44839), RTUINT128_INIT_C(0x0000000000000000, 0x000000000046b05f) + }, + { /* i=577; 68 / 126 */ + RTUINT128_INIT_C(0x000000000000000a, 0x2087c47218570fbb), RTUINT128_INIT_C(0x25479a97c0b02ef3, 0x71f98f899b9f089f), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x000000000000000a, 0x2087c47218570fbb) + }, + { /* i=578; 121 / 31 */ + RTUINT128_INIT_C(0x004cfcb097e3458f, 0x13bfcf887915f38c), RTUINT128_INIT_C(0x0000000000000000, 0x000000005bcf2e12), + RTUINT128_INIT_C(0x0000000000d6ab7c, 0x9e246d8108ee49a4), RTUINT128_INIT_C(0x0000000000000000, 0x000000002f7d4e04) + }, + { /* i=579; 21 / 6 */ + RTUINT128_INIT_C(0x0000000000000000, 0x000000000016af50), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000035), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000006d92), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000016) + }, + { /* i=580; 117 / 119 */ + RTUINT128_INIT_C(0x0018dfc96abc9583, 0x7e5bc0d5c71ba595), RTUINT128_INIT_C(0x0031dad483a74b87, 0xee2ee1bdcaf50cbf), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x0018dfc96abc9583, 0x7e5bc0d5c71ba595) + }, + { /* i=581; 38 / 6 */ + RTUINT128_INIT_C(0x0000000000000000, 0x0000002981be0efe), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000008), + RTUINT128_INIT_C(0x0000000000000000, 0x000000053037c1df), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000006) + }, + { /* i=582; 120 / 11 */ + RTUINT128_INIT_C(0x001c0aacdc7497dd, 0xf085abba2731cdf1), RTUINT128_INIT_C(0x0000000000000000, 0x00000000000004c9), + RTUINT128_INIT_C(0x000005dc3255c6dd, 0x1296280e2751f5ed), RTUINT128_INIT_C(0x0000000000000000, 0x00000000000002dc) + }, + { /* i=583; 125 / 84 */ + RTUINT128_INIT_C(0x0c9f47943f9d89ee, 0xd9abc55148290447), RTUINT128_INIT_C(0x000000000009d83b, 0x7346bb9cfd4750fc), + RTUINT128_INIT_C(0x0000000000000000, 0x000001483a0ae08b), RTUINT128_INIT_C(0x000000000000345f, 0xf536b97319bb8b73) + }, + { /* i=584; 120 / 60 */ + RTUINT128_INIT_C(0x00e98be61db66b4d, 0xdb0be1d0b6719a4f), RTUINT128_INIT_C(0x0000000000000000, 0x02619556013da0d7), + RTUINT128_INIT_C(0x0000000000000000, 0x62147711ae36a602), RTUINT128_INIT_C(0x0000000000000000, 0x00cf2cbdae50eea1) + }, + { /* i=585; 123 / 123 */ + RTUINT128_INIT_C(0x00ff7ac9b9f3f2de, 0x76d7ebd5e619ef78), RTUINT128_INIT_C(0x01ab6341fdffcbe6, 0x953cf27421c816f5), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x00ff7ac9b9f3f2de, 0x76d7ebd5e619ef78) + }, + { /* i=586; 73 / 7 */ + RTUINT128_INIT_C(0x00000000000000ec, 0xca16b63b191240a3), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000010), + RTUINT128_INIT_C(0x000000000000000e, 0xcca16b63b191240a), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000003) + }, + { /* i=587; 35 / 6 */ + RTUINT128_INIT_C(0x0000000000000000, 0x00000005b4a378c3), RTUINT128_INIT_C(0x0000000000000000, 0x000000000000002b), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000021f7e50a), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000015) + }, + { /* i=588; 83 / 49 */ + RTUINT128_INIT_C(0x000000000003b89f, 0xc099dcd3ec64c9d1), RTUINT128_INIT_C(0x0000000000000000, 0x00011d048e10b096), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000357a30e92), RTUINT128_INIT_C(0x0000000000000000, 0x0000de1093b5e045) + }, + { /* i=589; 113 / 104 */ + RTUINT128_INIT_C(0x0001f50ce8eb32e9, 0xcdd2affb6bd6ea5b), RTUINT128_INIT_C(0x000000d71032a269, 0x94771f280fb8ea1c), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000254), RTUINT128_INIT_C(0x0000005b3309151c, 0x287e26b6d155e12b) + }, + { /* i=590; 88 / 1 */ + RTUINT128_INIT_C(0x00000000007e322e, 0x211a173efaefd41a), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000001), + RTUINT128_INIT_C(0x00000000007e322e, 0x211a173efaefd41a), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000) + }, + { /* i=591; 62 / 22 */ + RTUINT128_INIT_C(0x0000000000000000, 0x0c3116ddea98beb3), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000281c30), + RTUINT128_INIT_C(0x0000000000000000, 0x0000004dd023469b), RTUINT128_INIT_C(0x0000000000000000, 0x00000000000a8da3) + }, + { /* i=592; 85 / 62 */ + RTUINT128_INIT_C(0x00000000000e5626, 0x734b5cf27dc29303), RTUINT128_INIT_C(0x0000000000000000, 0x2ca7d695a304f4b2), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000523018), RTUINT128_INIT_C(0x0000000000000000, 0x0f64f8c3e6664253) + }, + { /* i=593; 86 / 109 */ + RTUINT128_INIT_C(0x0000000000273160, 0x3811b536eb885015), RTUINT128_INIT_C(0x00001c81f5e7ade3, 0x5a335ff2d887e891), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x0000000000273160, 0x3811b536eb885015) + }, + { /* i=594; 121 / 119 */ + RTUINT128_INIT_C(0x0110a5a31d21b6d1, 0xf8fbfe306fa1dab6), RTUINT128_INIT_C(0x000ac524c49a3bad, 0x695ecbc4de42d1e4), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000019), RTUINT128_INIT_C(0x0003650bea11e2e2, 0xaeba17f6bb1b5b72) + }, + { /* i=595; 114 / 69 */ + RTUINT128_INIT_C(0x000297adf087a765, 0xffd049727bfce388), RTUINT128_INIT_C(0x0000000000000003, 0x000ee3129acad50d), + RTUINT128_INIT_C(0x0000000000000000, 0x0000dd35b1206d58), RTUINT128_INIT_C(0x0000000000000000, 0x3ebf63cb4aed1e10) + }, + { /* i=596; 124 / 123 */ + RTUINT128_INIT_C(0x0ff9b8b6874f5168, 0x094f953be660083c), RTUINT128_INIT_C(0x033b4d2ddd231751, 0x7f2c91eb3eaaa156), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000004), RTUINT128_INIT_C(0x030c83ff12c2f422, 0x0c9d4d8eebb582e4) + }, + { /* i=597; 114 / 50 */ + RTUINT128_INIT_C(0x00032af9e2c4ec78, 0x8f20e376f06ee5dc), RTUINT128_INIT_C(0x0000000000000000, 0x0001112ff4ef54f2), + RTUINT128_INIT_C(0x0000000000000002, 0xf7f44cb757a0dd1c), RTUINT128_INIT_C(0x0000000000000000, 0x00009f5434acb164) + }, + { /* i=598; 122 / 109 */ + RTUINT128_INIT_C(0x001b6c731b257b3a, 0x7c17ef1cf73c57bf), RTUINT128_INIT_C(0x000019005bfb3573, 0x2216103dc667a999), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000118), RTUINT128_INIT_C(0x0000140e8063054d, 0x33f62b8bf5dad867) + }, + { /* i=599; 123 / 71 */ + RTUINT128_INIT_C(0x032476912e4b0f16, 0x8b71fe69917af585), RTUINT128_INIT_C(0x000000000000000d, 0x6b4c8b1e0164beb1), + RTUINT128_INIT_C(0x0000000000000000, 0x003bf2ee5f836d3c), RTUINT128_INIT_C(0x0000000000000008, 0x00aee8ea1519e709) + }, + { /* i=600; 121 / 100 */ + RTUINT128_INIT_C(0x0154e2a497e31699, 0x3f03b3ae7d8152d8), RTUINT128_INIT_C(0x0000000057128068, 0xf860b0e28ff08b2b), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000003ea3b77), RTUINT128_INIT_C(0x000000003fd50a1b, 0x2a85dfb06e4fb8db) + }, + { /* i=601; 86 / 10 */ + RTUINT128_INIT_C(0x0000000000097ec4, 0x24d7aea6324315d5), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000150), + RTUINT128_INIT_C(0x000000000000073c, 0x032842ce357ba0d3), RTUINT128_INIT_C(0x0000000000000000, 0x00000000000000e5) + }, + { /* i=602; 113 / 127 */ + RTUINT128_INIT_C(0x000002314ad186f2, 0x4461589a2e2e31a0), RTUINT128_INIT_C(0x4b8e99961a92c28f, 0x6963c017c4e0c463), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x000002314ad186f2, 0x4461589a2e2e31a0) + }, + { /* i=603; 73 / 45 */ + RTUINT128_INIT_C(0x0000000000000167, 0x95ad8dd9db19a6f8), RTUINT128_INIT_C(0x0000000000000000, 0x00001903982a5684), + RTUINT128_INIT_C(0x0000000000000000, 0x000000000e60148e), RTUINT128_INIT_C(0x0000000000000000, 0x0000055c7b5b59c0) + }, + { /* i=604; 124 / 36 */ + RTUINT128_INIT_C(0x0bc3ae407f2de2ab, 0x2ca37e7bff79494c), RTUINT128_INIT_C(0x0000000000000000, 0x0000000a9e03c54a), + RTUINT128_INIT_C(0x00000000011ba8ca, 0x360e65936dc85f6a), RTUINT128_INIT_C(0x0000000000000000, 0x0000000287e322a8) + }, + { /* i=605; 52 / 52 */ + RTUINT128_INIT_C(0x0000000000000000, 0x000c6ce077ae22ff), RTUINT128_INIT_C(0x0000000000000000, 0x00059da83fd84604), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000002), RTUINT128_INIT_C(0x0000000000000000, 0x0001318ff7fd96f7) + }, + { /* i=606; 79 / 14 */ + RTUINT128_INIT_C(0x000000000000205f, 0x946d64a6f34bacbb), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000002cab), + RTUINT128_INIT_C(0x0000000000000000, 0xb9899486e057d519), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000908) + }, + { /* i=607; 108 / 50 */ + RTUINT128_INIT_C(0x0000005b861fc304, 0xfc3f4ee51fb84cc8), RTUINT128_INIT_C(0x0000000000000000, 0x000146ada6477588), + RTUINT128_INIT_C(0x0000000000000000, 0x0047b8e9659761f1), RTUINT128_INIT_C(0x0000000000000000, 0x0000fb1d87b21fc0) + }, + { /* i=608; 62 / 2 */ + RTUINT128_INIT_C(0x0000000000000000, 0x381b21505aa17e46), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000003), + RTUINT128_INIT_C(0x0000000000000000, 0x12b3b5c5738b2a17), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000001) + }, + { /* i=609; 8 / 59 */ + RTUINT128_INIT_C(0x0000000000000000, 0x00000000000000e8), RTUINT128_INIT_C(0x0000000000000000, 0x001accaae9c2335d), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x0000000000000000, 0x00000000000000e8) + }, + { /* i=610; 120 / 41 */ + RTUINT128_INIT_C(0x005d90082ef0416a, 0x2ad594a49840ddaf), RTUINT128_INIT_C(0x0000000000000000, 0x0000001c6c28d8e2), + RTUINT128_INIT_C(0x0000000000034ab6, 0xbc9a4521bb25653a), RTUINT128_INIT_C(0x0000000000000000, 0x000000118ac4907b) + }, + { /* i=611; 23 / 19 */ + RTUINT128_INIT_C(0x0000000000000000, 0x000000000077d923), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000051fb8), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000017), RTUINT128_INIT_C(0x0000000000000000, 0x000000000001ff9b) + }, + { /* i=612; 125 / 108 */ + RTUINT128_INIT_C(0x1dd0368b52548c40, 0x6614ca5dc4a6715c), RTUINT128_INIT_C(0x00000a8c12bfd90c, 0x0e5a780642981aa0), + RTUINT128_INIT_C(0x0000000000000000, 0x000000000002d3a0), RTUINT128_INIT_C(0x0000060bc86fd82d, 0xec9018609263ed5c) + }, + { /* i=613; 88 / 16 */ + RTUINT128_INIT_C(0x00000000002ecb3d, 0xa955368accf08ba1), RTUINT128_INIT_C(0x0000000000000000, 0x000000000000b022), + RTUINT128_INIT_C(0x0000000000000044, 0x033628ee38963b9e), RTUINT128_INIT_C(0x0000000000000000, 0x00000000000000a5) + }, + { /* i=614; 128 / 116 */ + RTUINT128_INIT_C(0x9e3c9c14b0053fd0, 0x87b34867ee7dd449), RTUINT128_INIT_C(0x00075ff1342aba91, 0x005174277d2b44cb), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000001574), RTUINT128_INIT_C(0x000659818b5ad115, 0xb443693eaa3e014d) + }, + { /* i=615; 113 / 124 */ + RTUINT128_INIT_C(0x0001ad4ffac5e043, 0x9cbe4e8cc925d9c7), RTUINT128_INIT_C(0x0b121314cba7fb0f, 0xf8e93f65b7d2fdf8), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x0001ad4ffac5e043, 0x9cbe4e8cc925d9c7) + }, + { /* i=616; 116 / 38 */ + RTUINT128_INIT_C(0x000dd24ed3cb9c6b, 0x7427c0ef702b4359), RTUINT128_INIT_C(0x0000000000000000, 0x00000003d09ff4bf), + RTUINT128_INIT_C(0x0000000000039f7c, 0xabb6120242d17c2f), RTUINT128_INIT_C(0x0000000000000000, 0x000000009a51d048) + }, + { /* i=617; 63 / 58 */ + RTUINT128_INIT_C(0x0000000000000000, 0x554d2e7b470383eb), RTUINT128_INIT_C(0x0000000000000000, 0x01523a6d25c85f4b), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000040), RTUINT128_INIT_C(0x0000000000000000, 0x00be9331d4ebb12b) + }, + { /* i=618; 120 / 78 */ + RTUINT128_INIT_C(0x006e4a7e103d9a9a, 0x0d1e33b06ef5d5d6), RTUINT128_INIT_C(0x000000000000153e, 0xea2acad4d5604e19), + RTUINT128_INIT_C(0x0000000000000000, 0x00000530f276a76c), RTUINT128_INIT_C(0x00000000000005c3, 0xc55b44ccf5dc944a) + }, + { /* i=619; 124 / 88 */ + RTUINT128_INIT_C(0x0da4150483a0b047, 0x1d938ccd55b21bc2), RTUINT128_INIT_C(0x000000000012f683, 0x25d0de9edfda78aa), + RTUINT128_INIT_C(0x0000000000000000, 0x000000b8272b354c), RTUINT128_INIT_C(0x00000000000c2c53, 0x27a9f5067b4d174a) + }, + { /* i=620; 124 / 12 */ + RTUINT128_INIT_C(0x00fdf8d11610792b, 0x004c0824502a222b), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000311), + RTUINT128_INIT_C(0x000052d2efb8ed90, 0xd984d3552984c847), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000074) + }, + { /* i=621; 109 / 5 */ + RTUINT128_INIT_C(0x00001f8576a0ea37, 0xa8c5b07a6768247a), RTUINT128_INIT_C(0x0000000000000000, 0x000000000000000f), + RTUINT128_INIT_C(0x00000219f6d78714, 0xc6fc1cd4f5d3be2a), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000004) + }, + { /* i=622; 126 / 122 */ + RTUINT128_INIT_C(0x1ff11b1ebbfe6c88, 0xaee2586a6d725b53), RTUINT128_INIT_C(0x0398cc2e092e84de, 0xf64ed261a023e4dc), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000008), RTUINT128_INIT_C(0x032ab9ae728a4590, 0xfc6bc55d6c533473) + }, + { /* i=623; 126 / 106 */ + RTUINT128_INIT_C(0x39b40e003a5633a3, 0x0d9ade625b34d79f), RTUINT128_INIT_C(0x00000325da371a0e, 0x566d7e04cbeaa5d2), + RTUINT128_INIT_C(0x0000000000000000, 0x00000000001254ba), RTUINT128_INIT_C(0x00000105c4be7d29, 0x785d657d8b8b750b) + }, + { /* i=624; 59 / 57 */ + RTUINT128_INIT_C(0x0000000000000000, 0x02009def90bf25e3), RTUINT128_INIT_C(0x0000000000000000, 0x018d8a4bdfd9add2), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000001), RTUINT128_INIT_C(0x0000000000000000, 0x007313a3b0e57811) + }, + { /* i=625; 108 / 38 */ + RTUINT128_INIT_C(0x0000037a42a8a5a7, 0xf83ced4849405788), RTUINT128_INIT_C(0x0000000000000000, 0x00000023a72109b5), + RTUINT128_INIT_C(0x0000000000000018, 0xf8620c955df814b5), RTUINT128_INIT_C(0x0000000000000000, 0x0000002361ca568f) + }, + { /* i=626; 52 / 93 */ + RTUINT128_INIT_C(0x0000000000000000, 0x0007dc3eefde6126), RTUINT128_INIT_C(0x00000000075a9966, 0x3ae5c31f1deece60), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x0000000000000000, 0x0007dc3eefde6126) + }, + { /* i=627; 115 / 100 */ + RTUINT128_INIT_C(0x000140763bfe7394, 0x27c796b59ffad4d5), RTUINT128_INIT_C(0x000000037183ad5d, 0xbf1d61ea691901ff), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000005d10), RTUINT128_INIT_C(0x000000024dc88f4a, 0x895f4fe0f8b111e5) + }, + { /* i=628; 123 / 34 */ + RTUINT128_INIT_C(0x06387c470034adaf, 0x778807816c8cedcc), RTUINT128_INIT_C(0x0000000000000000, 0x00000000e71943c2), + RTUINT128_INIT_C(0x0000000006e41425, 0xcfae3fe6c69e43cd), RTUINT128_INIT_C(0x0000000000000000, 0x00000000e2d9e572) + }, + { /* i=629; 115 / 106 */ + RTUINT128_INIT_C(0x0005ff6a52e7cfa6, 0x993a047bd9ba881c), RTUINT128_INIT_C(0x000001c75848be99, 0xfd92515fdecde64f), + RTUINT128_INIT_C(0x0000000000000000, 0x000000000000035f), RTUINT128_INIT_C(0x00000067b5ad4688, 0xc8f9b24bc19f23cb) + }, + { /* i=630; 115 / 70 */ + RTUINT128_INIT_C(0x0000bcb2e484fb7e, 0x8e08ac0ab131ecc9), RTUINT128_INIT_C(0x0000000000000022, 0x49b589b668eff32b), + RTUINT128_INIT_C(0x0000000000000000, 0x00000580dc322682), RTUINT128_INIT_C(0x0000000000000015, 0x5ddf897f56da0ef3) + }, + { /* i=631; 124 / 109 */ + RTUINT128_INIT_C(0x00626acc437d64af, 0x702e84bd0aa2becf), RTUINT128_INIT_C(0x00000b81b923d130, 0x0f3c3b7016bd99f5), + RTUINT128_INIT_C(0x0000000000000000, 0x000000000000088d), RTUINT128_INIT_C(0x000006902c39acbd, 0x2a26474a97654ade) + }, + { /* i=632; 111 / 75 */ + RTUINT128_INIT_C(0x00003452218794db, 0x888419b4946066d8), RTUINT128_INIT_C(0x0000000000000769, 0xb8e63d07f0edc1ca), + RTUINT128_INIT_C(0x0000000000000000, 0x000000070ed9568c), RTUINT128_INIT_C(0x0000000000000535, 0x50b187c4a3069060) + }, + { /* i=633; 33 / 24 */ + RTUINT128_INIT_C(0x0000000000000000, 0x00000000e7982f10), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000fc44ad), + RTUINT128_INIT_C(0x0000000000000000, 0x00000000000000eb), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000052441) + }, + { /* i=634; 52 / 21 */ + RTUINT128_INIT_C(0x0000000000000000, 0x000ae9a31f41f81b), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000120673), + RTUINT128_INIT_C(0x0000000000000000, 0x000000009afc330a), RTUINT128_INIT_C(0x0000000000000000, 0x000000000010ce9d) + }, + { /* i=635; 121 / 100 */ + RTUINT128_INIT_C(0x00cbdcbac752e792, 0xa0c185038f1aca26), RTUINT128_INIT_C(0x0000000ff83b5d9d, 0x23e794c1131b32a9), + RTUINT128_INIT_C(0x0000000000000000, 0x00000000000cc3fe), RTUINT128_INIT_C(0x00000004e0bfa474, 0xa19ff69e829bcb78) + }, + { /* i=636; 126 / 67 */ + RTUINT128_INIT_C(0x22250b0a8ea2ef9c, 0x1b30878e00232ff2), RTUINT128_INIT_C(0x0000000000000007, 0x7cd618196e26d1ff), + RTUINT128_INIT_C(0x0000000000000000, 0x048f656074d91ec0), RTUINT128_INIT_C(0x0000000000000001, 0x877a28e34942ceb2) + }, + { /* i=637; 66 / 37 */ + RTUINT128_INIT_C(0x0000000000000002, 0xf74387206afcc12a), RTUINT128_INIT_C(0x0000000000000000, 0x000000166e8eda2b), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000021d8f921), RTUINT128_INIT_C(0x0000000000000000, 0x0000000b9916ce9f) + }, + { /* i=638; 117 / 80 */ + RTUINT128_INIT_C(0x0006bdb9a17aa7fc, 0x5bc358e0b9115fda), RTUINT128_INIT_C(0x0000000000000946, 0x47c010cff24dd11b), + RTUINT128_INIT_C(0x0000000000000000, 0x000000ba12469c7b), RTUINT128_INIT_C(0x00000000000008b5, 0x93cce5b6cedf73e1) + }, + { /* i=639; 108 / 23 */ + RTUINT128_INIT_C(0x00000fc799acc13e, 0x4b9b84807295bc9c), RTUINT128_INIT_C(0x0000000000000000, 0x00000000005421e2), + RTUINT128_INIT_C(0x00000000003003cb, 0x92c7f09597e72f5f), RTUINT128_INIT_C(0x0000000000000000, 0x000000000036abbe) + }, + { /* i=640; 64 / 6 */ + RTUINT128_INIT_C(0x0000000000000000, 0xa66e599c9c43e7ee), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000012), + RTUINT128_INIT_C(0x0000000000000000, 0x093f04fa7a758ce2), RTUINT128_INIT_C(0x0000000000000000, 0x000000000000000a) + }, + { /* i=641; 52 / 100 */ + RTUINT128_INIT_C(0x0000000000000000, 0x0005ab2156f55826), RTUINT128_INIT_C(0x00000000dc9aebe7, 0x11d7df22647dfd08), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x0000000000000000, 0x0005ab2156f55826) + }, + { /* i=642; 106 / 30 */ + RTUINT128_INIT_C(0x000000a8c06ccbae, 0xaeb7ed45f28f7378), RTUINT128_INIT_C(0x0000000000000000, 0x00000000251e9d9d), + RTUINT128_INIT_C(0x000000000000048b, 0xd13c79459fd06fa6), RTUINT128_INIT_C(0x0000000000000000, 0x0000000007ce2caa) + }, + { /* i=643; 121 / 29 */ + RTUINT128_INIT_C(0x0069a1a52c6753f0, 0xf2460c4a5241dadf), RTUINT128_INIT_C(0x0000000000000000, 0x0000000007f8580c), + RTUINT128_INIT_C(0x000000000d40e3ab, 0x8ec49ef44195df56), RTUINT128_INIT_C(0x0000000000000000, 0x000000000525d2d7) + }, + { /* i=644; 97 / 81 */ + RTUINT128_INIT_C(0x00000001635e67b4, 0x9e1e2e16c97a0dc8), RTUINT128_INIT_C(0x000000000000d024, 0x503ecb1120486782), + RTUINT128_INIT_C(0x0000000000000000, 0x000000000001b514), RTUINT128_INIT_C(0x00000000000027e3, 0x289214a4ab210da0) + }, + { /* i=645; 126 / 117 */ + RTUINT128_INIT_C(0x3ce19685c96ac89b, 0x9ca968c1a6d26b8f), RTUINT128_INIT_C(0x0014224f37f9f300, 0x79fb9e2802f1b67b), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000306), RTUINT128_INIT_C(0x0001db028bb6152a, 0xcde93bc8c004b3ad) + }, + { /* i=646; 127 / 81 */ + RTUINT128_INIT_C(0x19bcaaaabfb7e6e5, 0x61461a6614d199a7), RTUINT128_INIT_C(0x000000000000f637, 0xcdf41ad243e1be36), + RTUINT128_INIT_C(0x0000000000000000, 0x00001ac26da67bdd), RTUINT128_INIT_C(0x0000000000005ed3, 0x030528f9af887309) + }, + { /* i=647; 115 / 69 */ + RTUINT128_INIT_C(0x00043490b8c354d2, 0xd903242f6d3dc033), RTUINT128_INIT_C(0x0000000000000003, 0x2e892da5c46f8659), + RTUINT128_INIT_C(0x0000000000000000, 0x0001525a64072d22), RTUINT128_INIT_C(0x0000000000000001, 0x3eea43d24b614361) + }, + { /* i=648; 125 / 98 */ + RTUINT128_INIT_C(0x0e846244b02bf4c1, 0x10d9303936b02577), RTUINT128_INIT_C(0x0000000303291b98, 0x91bcab2d2f5cd4c3), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000004d1b7ab), RTUINT128_INIT_C(0x00000001472687f5, 0x64d46e127863a236) + }, + { /* i=649; 114 / 107 */ + RTUINT128_INIT_C(0x0002a2f899d5cfb7, 0xad633248cb08da57), RTUINT128_INIT_C(0x000007eb5eb12f7e, 0x84a0a462baa3d01f), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000055), RTUINT128_INIT_C(0x000001d229010ab5, 0xa40c9d80d2a4c00c) + }, + { /* i=650; 115 / 63 */ + RTUINT128_INIT_C(0x0004fecbc1fcc914, 0xd3ffb599c90c884e), RTUINT128_INIT_C(0x0000000000000000, 0x3da02ce942e29d7b), + RTUINT128_INIT_C(0x0000000000000000, 0x0014c042f4336109), RTUINT128_INIT_C(0x0000000000000000, 0x2ffc9419f5e863fb) + }, + { /* i=651; 126 / 71 */ + RTUINT128_INIT_C(0x106f273574b9bda0, 0x230194cc7e55a4e5), RTUINT128_INIT_C(0x0000000000000028, 0xde3db61c100171f7), + RTUINT128_INIT_C(0x0000000000000000, 0x0066f1d13aa53268), RTUINT128_INIT_C(0x0000000000000007, 0x3ac5e7de4b4a1a8d) + }, + { /* i=652; 120 / 110 */ + RTUINT128_INIT_C(0x0049b43947fdf49b, 0x54e3fcde74769a9c), RTUINT128_INIT_C(0x000002013b5591de, 0xc164144c46585e0a), + RTUINT128_INIT_C(0x0000000000000000, 0x00000000000024c3), RTUINT128_INIT_C(0x000000f10d4c84bb, 0xf2cdcce071ed90fe) + }, + { /* i=653; 107 / 13 */ + RTUINT128_INIT_C(0x0000053bb4881647, 0x9f15f67e0d718351), RTUINT128_INIT_C(0x0000000000000000, 0x00000000000004e9), + RTUINT128_INIT_C(0x0000000110d7fcc2, 0x59203217b98b64b6), RTUINT128_INIT_C(0x0000000000000000, 0x00000000000001ab) + }, + { /* i=654; 117 / 34 */ + RTUINT128_INIT_C(0x0010330cb52cb3d2, 0xde93350e9ccc1f2b), RTUINT128_INIT_C(0x0000000000000000, 0x00000000f777e6cd), + RTUINT128_INIT_C(0x000000000010c205, 0x9b4abcb50327626c), RTUINT128_INIT_C(0x0000000000000000, 0x00000000bfa146af) + }, + { /* i=655; 18 / 4 */ + RTUINT128_INIT_C(0x0000000000000000, 0x00000000000168d6), RTUINT128_INIT_C(0x0000000000000000, 0x000000000000000c), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000001e11), RTUINT128_INIT_C(0x0000000000000000, 0x000000000000000a) + }, + { /* i=656; 23 / 22 */ + RTUINT128_INIT_C(0x0000000000000000, 0x00000000004fd559), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000396b25), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000001), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000166a34) + }, + { /* i=657; 34 / 94 */ + RTUINT128_INIT_C(0x0000000000000000, 0x00000003e010ec00), RTUINT128_INIT_C(0x0000000036325fd3, 0xd088495a641f9237), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x0000000000000000, 0x00000003e010ec00) + }, + { /* i=658; 117 / 58 */ + RTUINT128_INIT_C(0x0019a6beeb5c0a98, 0x17b77fe62934f338), RTUINT128_INIT_C(0x0000000000000000, 0x02997bf938f595f4), + RTUINT128_INIT_C(0x0000000000000000, 0x09de1c54e3c2cf56), RTUINT128_INIT_C(0x0000000000000000, 0x01f682fb738c4740) + }, + { /* i=659; 118 / 89 */ + RTUINT128_INIT_C(0x0004eafc17d25474, 0xb4186511cef36b0e), RTUINT128_INIT_C(0x0000000001237b03, 0xcddcf53af042bd4e), + RTUINT128_INIT_C(0x0000000000000000, 0x000000000451bc0c), RTUINT128_INIT_C(0x0000000000662e5a, 0x463e8dca6b1f4366) + }, + { /* i=660; 122 / 118 */ + RTUINT128_INIT_C(0x0020b9710c418f5d, 0xe26e444e6dd9387e), RTUINT128_INIT_C(0x002e5ca4592ae6b6, 0x34c11a39042f1cc5), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x0020b9710c418f5d, 0xe26e444e6dd9387e) + }, + { /* i=661; 128 / 32 */ + RTUINT128_INIT_C(0x1182820f2ff4fb43, 0x3e60d51d556d54a0), RTUINT128_INIT_C(0x0000000000000000, 0x00000000202eec22), + RTUINT128_INIT_C(0x000000008b47d570, 0xeae2a8074091d362), RTUINT128_INIT_C(0x0000000000000000, 0x000000001794e99c) + }, + { /* i=662; 127 / 127 */ + RTUINT128_INIT_C(0x3fe74414cde0d455, 0xab9e7c46e6bf5ab5), RTUINT128_INIT_C(0x416607e4f901bf20, 0xa0ad3099e362a4b2), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x3fe74414cde0d455, 0xab9e7c46e6bf5ab5) + }, + { /* i=663; 120 / 126 */ + RTUINT128_INIT_C(0x002c40d8fbda161a, 0xaf0f3c468cb7691e), RTUINT128_INIT_C(0x2637766316b38cc3, 0xad31d00bb044247c), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x002c40d8fbda161a, 0xaf0f3c468cb7691e) + }, + { /* i=664; 123 / 104 */ + RTUINT128_INIT_C(0x055d1c1a9636af3c, 0x0d7daa768cc1eed6), RTUINT128_INIT_C(0x000000e532ee12b2, 0x129ef3ffc9726223), + RTUINT128_INIT_C(0x0000000000000000, 0x000000000005fdac), RTUINT128_INIT_C(0x00000020b84dc615, 0xaf8f01493e3c6852) + }, + { /* i=665; 114 / 125 */ + RTUINT128_INIT_C(0x0001e1bc6a213b33, 0x286fc4bade5fdf68), RTUINT128_INIT_C(0x0fe6bf54c741caf8, 0x6335a2dbd3c795a5), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x0001e1bc6a213b33, 0x286fc4bade5fdf68) + }, + { /* i=666; 113 / 97 */ + RTUINT128_INIT_C(0x0000dc523e4c6adc, 0x115c9187532bc2af), RTUINT128_INIT_C(0x00000001e6061481, 0x42094ed9fd91a617), + RTUINT128_INIT_C(0x0000000000000000, 0x000000000000740c), RTUINT128_INIT_C(0x00000000b4b8e2e0, 0xc132186971158d9b) + }, + { /* i=667; 85 / 6 */ + RTUINT128_INIT_C(0x00000000001035cb, 0x33784ca7920add8b), RTUINT128_INIT_C(0x0000000000000000, 0x000000000000002b), + RTUINT128_INIT_C(0x0000000000006081, 0xbfb566fdf1892ed3), RTUINT128_INIT_C(0x0000000000000000, 0x000000000000001a) + }, + { /* i=668; 87 / 59 */ + RTUINT128_INIT_C(0x00000000002d1d34, 0x15900905785dc77f), RTUINT128_INIT_C(0x0000000000000000, 0x0119d6c4b77119f7), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000028fa5fee), RTUINT128_INIT_C(0x0000000000000000, 0x00128d8e015efadd) + }, + { /* i=669; 97 / 26 */ + RTUINT128_INIT_C(0x000000007eba2ecb, 0x6c4064c0ce50d4d8), RTUINT128_INIT_C(0x0000000000000000, 0x000000000048ca00), + RTUINT128_INIT_C(0x00000000000001bd, 0xb38b1b3b9a2e8e78), RTUINT128_INIT_C(0x0000000000000000, 0x00000000002624d8) + }, + { /* i=670; 126 / 35 */ + RTUINT128_INIT_C(0x217aa1af4b1578aa, 0xb39bf6a04c6b79b0), RTUINT128_INIT_C(0x0000000000000000, 0x00000000e8adaa0f), + RTUINT128_INIT_C(0x0000000024d5ad0a, 0x4419ec7e8a83d404), RTUINT128_INIT_C(0x0000000000000000, 0x00000000bd336574) + }, + { /* i=671; 114 / 115 */ + RTUINT128_INIT_C(0x000235d57161fe47, 0xa1d68f3a70431ec6), RTUINT128_INIT_C(0x00068d4e962fa2a6, 0x08fb74f184248d76), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x000235d57161fe47, 0xa1d68f3a70431ec6) + }, + { /* i=672; 109 / 45 */ + RTUINT128_INIT_C(0x000005ed8939f0a6, 0xd90c5d40ebbdee71), RTUINT128_INIT_C(0x0000000000000000, 0x00000deefa77b100), + RTUINT128_INIT_C(0x0000000000000000, 0x6ce9a65302b8ea2f), RTUINT128_INIT_C(0x0000000000000000, 0x000005064ffa6f71) + }, + { /* i=673; 67 / 14 */ + RTUINT128_INIT_C(0x0000000000000000, 0x5de7489e29b2bdf9), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000003730), + RTUINT128_INIT_C(0x0000000000000000, 0x0001b397c8e1bbeb), RTUINT128_INIT_C(0x0000000000000000, 0x00000000000004e9) + }, + { /* i=674; 109 / 105 */ + RTUINT128_INIT_C(0x00000d79ba94222a, 0x6fc8a7ee7f06a21d), RTUINT128_INIT_C(0x000001d8aba75154, 0x10ed19557bed367e), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000007), RTUINT128_INIT_C(0x0000008d0900e8dd, 0xf94cf6981b8a24ab) + }, + { /* i=675; 100 / 88 */ + RTUINT128_INIT_C(0x0000000bce4d7b61, 0xc11901e5b40f6e3b), RTUINT128_INIT_C(0x00000000002107ff, 0x9750891649a04e53), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000005b7f), RTUINT128_INIT_C(0x000000000012a8cc, 0x0f6a13ab31b1120e) + }, + { /* i=676; 86 / 88 */ + RTUINT128_INIT_C(0x000000000002b324, 0x9cdf18dd5291c322), RTUINT128_INIT_C(0x00000000002794b9, 0x7448f664e0863d97), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x000000000002b324, 0x9cdf18dd5291c322) + }, + { /* i=677; 119 / 3 */ + RTUINT128_INIT_C(0x00603c64bc6d1aad, 0x66eca7bc68d72a12), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000005), + RTUINT128_INIT_C(0x00133f4758e29eef, 0x7afc218c14f7d536), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000004) + }, + { /* i=678; 37 / 8 */ + RTUINT128_INIT_C(0x0000000000000000, 0x000000004ccd7ff9), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000035), + RTUINT128_INIT_C(0x0000000000000000, 0x000000000172f8c1), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000004) + }, + { /* i=679; 93 / 58 */ + RTUINT128_INIT_C(0x0000000011ade89e, 0x196c191deb928fb7), RTUINT128_INIT_C(0x0000000000000000, 0x002a412a9ff133e0), + RTUINT128_INIT_C(0x0000000000000000, 0x0000006b1c4cc962), RTUINT128_INIT_C(0x0000000000000000, 0x001e23506901d3f7) + }, + { /* i=680; 122 / 108 */ + RTUINT128_INIT_C(0x03f5454acac9a322, 0xc53e647b52decb2f), RTUINT128_INIT_C(0x0000026ab5eaf454, 0x045854f067da9438), + RTUINT128_INIT_C(0x0000000000000000, 0x000000000001a341), RTUINT128_INIT_C(0x000000730c3c16b1, 0x17cb597633c780f7) + }, + { /* i=681; 119 / 124 */ + RTUINT128_INIT_C(0x00607b6b17cabfde, 0x02658a9669a2c5cb), RTUINT128_INIT_C(0x0cc135caed515228, 0x1d76e6aaf81540cb), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x00607b6b17cabfde, 0x02658a9669a2c5cb) + }, + { /* i=682; 123 / 70 */ + RTUINT128_INIT_C(0x0067b08c0610cdfd, 0x90f887c21ebd9fb7), RTUINT128_INIT_C(0x0000000000000031, 0x23a7dadd4775fe9c), + RTUINT128_INIT_C(0x0000000000000000, 0x00021c30a2e71d3d), RTUINT128_INIT_C(0x000000000000000d, 0x3e195c184304488b) + }, + { /* i=683; 126 / 90 */ + RTUINT128_INIT_C(0x12648747cb8a6ba6, 0x3748b556664f9007), RTUINT128_INIT_C(0x0000000003cfa7b9, 0x4e882092c6809c9b), + RTUINT128_INIT_C(0x0000000000000000, 0x00000004d375d991), RTUINT128_INIT_C(0x000000000034bec4, 0x61deaba99ee0793c) + }, + { /* i=684; 66 / 16 */ + RTUINT128_INIT_C(0x0000000000000000, 0xf45b11f7c59dfc7a), RTUINT128_INIT_C(0x0000000000000000, 0x000000000000de3b), + RTUINT128_INIT_C(0x0000000000000000, 0x0001197cc4481cd3), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000005dd9) + }, + { /* i=685; 123 / 108 */ + RTUINT128_INIT_C(0x04579a54ea916432, 0xa5ce1c8732363237), RTUINT128_INIT_C(0x00000330cfb26520, 0xee9ea786141c45ce), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000015c64), RTUINT128_INIT_C(0x000000ed47691ef5, 0xc41a68d0e846e5bf) + }, + { /* i=686; 62 / 6 */ + RTUINT128_INIT_C(0x0000000000000000, 0x2e67a94508463146), RTUINT128_INIT_C(0x0000000000000000, 0x000000000000003b), + RTUINT128_INIT_C(0x0000000000000000, 0x00c959a60d283d94), RTUINT128_INIT_C(0x0000000000000000, 0x000000000000002a) + }, + { /* i=687; 103 / 64 */ + RTUINT128_INIT_C(0x0000007466369fc1, 0x9236d9a91b60142f), RTUINT128_INIT_C(0x0000000000000000, 0x2599ed088faab6a3), + RTUINT128_INIT_C(0x0000000000000000, 0x000003187a956b04), RTUINT128_INIT_C(0x0000000000000000, 0x23248fcc878018a3) + }, + { /* i=688; 79 / 113 */ + RTUINT128_INIT_C(0x00000000000028b3, 0x7b643aa043e23a9f), RTUINT128_INIT_C(0x0000a7a46ff5c1fa, 0xa03f50043d69f7ca), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x00000000000028b3, 0x7b643aa043e23a9f) + }, + { /* i=689; 113 / 112 */ + RTUINT128_INIT_C(0x0000e109d3e6f736, 0x772505ca75daf366), RTUINT128_INIT_C(0x00006486054939df, 0xc5c4608285193c50), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000002), RTUINT128_INIT_C(0x000017fdc9548376, 0xeb9c44c56ba87ac6) + }, + { /* i=690; 126 / 121 */ + RTUINT128_INIT_C(0x240de2f247c47d60, 0xf6fcc3aacd06aae9), RTUINT128_INIT_C(0x00201636f141e621, 0x8a946892b8cbaf0d), + RTUINT128_INIT_C(0x0000000000000000, 0x000000000000011f), RTUINT128_INIT_C(0x0014fb59cee37dc6, 0x9a9b872da0ad6b56) + }, + { /* i=691; 110 / 77 */ + RTUINT128_INIT_C(0x00000f63f8e483fd, 0xcf74ba4b8ab4afce), RTUINT128_INIT_C(0x0000000000000f94, 0x8f2d9878152c5f99), + RTUINT128_INIT_C(0x0000000000000000, 0x00000000fce1aa96), RTUINT128_INIT_C(0x00000000000002b4, 0x6d1b5bc509c01228) + }, + { /* i=692; 49 / 43 */ + RTUINT128_INIT_C(0x0000000000000000, 0x00004e8995e5d710), RTUINT128_INIT_C(0x0000000000000000, 0x0000026ec7fffeef), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000020), RTUINT128_INIT_C(0x0000000000000000, 0x000000b095e5f930) + }, + { /* i=693; 125 / 109 */ + RTUINT128_INIT_C(0x0cadf35088706c60, 0x2d49e9b5def38097), RTUINT128_INIT_C(0x0000084b33637911, 0xd8e6376ab57041a9), + RTUINT128_INIT_C(0x0000000000000000, 0x000000000001875f), RTUINT128_INIT_C(0x000003eb889c3c79, 0x11375dfe160203e0) + }, + { /* i=694; 121 / 58 */ + RTUINT128_INIT_C(0x01bb142dd8ed1534, 0x044b8099be72986d), RTUINT128_INIT_C(0x0000000000000000, 0x022b0db0450c07f9), + RTUINT128_INIT_C(0x0000000000000000, 0xcc5afc1659b85e80), RTUINT128_INIT_C(0x0000000000000000, 0x009f544b81892ded) + }, + { /* i=695; 41 / 5 */ + RTUINT128_INIT_C(0x0000000000000000, 0x000000f7e594d18d), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000009), + RTUINT128_INIT_C(0x0000000000000000, 0x0000001b8b496c9d), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000008) + }, + { /* i=696; 86 / 46 */ + RTUINT128_INIT_C(0x00000000002d58fb, 0xae1d6d6c53210fed), RTUINT128_INIT_C(0x0000000000000000, 0x0000205591aae902), + RTUINT128_INIT_C(0x0000000000000000, 0x0000016707ce5bd8), RTUINT128_INIT_C(0x0000000000000000, 0x000014bd1c7cc03d) + }, + { /* i=697; 121 / 65 */ + RTUINT128_INIT_C(0x00681fd9a687aac7, 0xab3fad993863af4f), RTUINT128_INIT_C(0x0000000000000001, 0xa039ce197382ec6a), + RTUINT128_INIT_C(0x0000000000000000, 0x00400ab3836f63c4), RTUINT128_INIT_C(0x0000000000000001, 0x44dd839466c3b027) + }, + { /* i=698; 115 / 117 */ + RTUINT128_INIT_C(0x0006a4303c396d56, 0xe38043ce97e176d8), RTUINT128_INIT_C(0x0009817d0e55c358, 0x655ef755ff5a5c59), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x0006a4303c396d56, 0xe38043ce97e176d8) + }, + { /* i=699; 117 / 63 */ + RTUINT128_INIT_C(0x00027ac0bf9674b7, 0x0fdf4d4e6f7e4696), RTUINT128_INIT_C(0x0000000000000000, 0x39df722439f02018), + RTUINT128_INIT_C(0x0000000000000000, 0x000af7d2ff732aaa), RTUINT128_INIT_C(0x0000000000000000, 0x25e5dd383dfd06a6) + }, + { /* i=700; 96 / 73 */ + RTUINT128_INIT_C(0x00000000cb13d6a4, 0x97d507318872a455), RTUINT128_INIT_C(0x000000000000019a, 0xcfd73d6a75854229), + RTUINT128_INIT_C(0x0000000000000000, 0x00000000007e8c8c), RTUINT128_INIT_C(0x0000000000000060, 0xfe23611dd33609e9) + }, + { /* i=701; 31 / 11 */ + RTUINT128_INIT_C(0x0000000000000000, 0x000000007bd7abd9), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000618), + RTUINT128_INIT_C(0x0000000000000000, 0x00000000001452a7), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000231) + }, + { /* i=702; 113 / 126 */ + RTUINT128_INIT_C(0x0000359da58fe4fa, 0x0db3610b37f7d406), RTUINT128_INIT_C(0x31098587ef8eb9d0, 0xc20be13ae5cab44e), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x0000359da58fe4fa, 0x0db3610b37f7d406) + }, + { /* i=703; 38 / 8 */ + RTUINT128_INIT_C(0x0000000000000000, 0x00000010ab87d8b4), RTUINT128_INIT_C(0x0000000000000000, 0x000000000000005f), + RTUINT128_INIT_C(0x0000000000000000, 0x000000002cebdf3f), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000053) + }, + { /* i=704; 57 / 3 */ + RTUINT128_INIT_C(0x0000000000000000, 0x0164da1122b385cd), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000004), + RTUINT128_INIT_C(0x0000000000000000, 0x0059368448ace173), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000001) + }, + { /* i=705; 26 / 37 */ + RTUINT128_INIT_C(0x0000000000000000, 0x00000000023b1013), RTUINT128_INIT_C(0x0000000000000000, 0x000000153b215ebc), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x0000000000000000, 0x00000000023b1013) + }, + { /* i=706; 123 / 25 */ + RTUINT128_INIT_C(0x06086291bea41278, 0x98dfb9750cf7036b), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000987c11), + RTUINT128_INIT_C(0x0000000a20cd7cb0, 0x2ae1afe2d98a2488), RTUINT128_INIT_C(0x0000000000000000, 0x000000000058b663) + }, + { /* i=707; 58 / 54 */ + RTUINT128_INIT_C(0x0000000000000000, 0x027284b82e0b0f95), RTUINT128_INIT_C(0x0000000000000000, 0x002e1633837f84fe), + RTUINT128_INIT_C(0x0000000000000000, 0x000000000000000d), RTUINT128_INIT_C(0x0000000000000000, 0x001b641a80914eaf) + }, + { /* i=708; 114 / 111 */ + RTUINT128_INIT_C(0x0003ca60c4f95620, 0xbc159f11488eee1a), RTUINT128_INIT_C(0x00005244668bb1d8, 0x857fdce04e5142c6), + RTUINT128_INIT_C(0x0000000000000000, 0x000000000000000b), RTUINT128_INIT_C(0x000041705cf8b1d2, 0xff97216deb110f98) + }, + { /* i=709; 124 / 73 */ + RTUINT128_INIT_C(0x03da4dbac567c120, 0xfa7434b1bf2f9df7), RTUINT128_INIT_C(0x00000000000001da, 0x508173620d6b4109), + RTUINT128_INIT_C(0x0000000000000000, 0x0002145582168a2e), RTUINT128_INIT_C(0x0000000000000157, 0xadfdb39c5c151459) + }, + { /* i=710; 54 / 40 */ + RTUINT128_INIT_C(0x0000000000000000, 0x00282c1266e0ce15), RTUINT128_INIT_C(0x0000000000000000, 0x00000061ac0a4f8d), + RTUINT128_INIT_C(0x0000000000000000, 0x000000000000694a), RTUINT128_INIT_C(0x0000000000000000, 0x000000467144fa53) + }, + { /* i=711; 120 / 96 */ + RTUINT128_INIT_C(0x0084c7bf3dd2a570, 0xc3bcb57c89f959ee), RTUINT128_INIT_C(0x00000000e4ee656f, 0xe1856cb69d0c2d64), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000947aeb), RTUINT128_INIT_C(0x00000000d5f5d520, 0x4ee017f8545a0722) + }, + { /* i=712; 125 / 89 */ + RTUINT128_INIT_C(0x06467bfdb5281e7a, 0xcbb5ca46b5455744), RTUINT128_INIT_C(0x00000000005edda8, 0x5853aee2ca0edfd1), + RTUINT128_INIT_C(0x0000000000000000, 0x00000010ef2c9c4f), RTUINT128_INIT_C(0x00000000002ee4e0, 0x20c40496b35ee9c5) + }, + { /* i=713; 114 / 114 */ + RTUINT128_INIT_C(0x000397630a0e1980, 0xac4715a245a4f57e), RTUINT128_INIT_C(0x0002b68471d668a9, 0x2af8f2aa079dc5a7), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000001), RTUINT128_INIT_C(0x0000e0de9837b0d7, 0x814e22f83e072fd7) + }, + { /* i=714; 126 / 101 */ + RTUINT128_INIT_C(0x22565b8a5a750197, 0xf7ffaba9d563bef7), RTUINT128_INIT_C(0x0000000f5a00700a, 0x58f76fa2c79cd953), + RTUINT128_INIT_C(0x0000000000000000, 0x00000000023c9a6b), RTUINT128_INIT_C(0x0000000121c12ae2, 0x7fb6141676a4fb46) + }, + { /* i=715; 128 / 114 */ + RTUINT128_INIT_C(0x1334e32bcf20a584, 0x0304e2e270ec954b), RTUINT128_INIT_C(0x0002ea41501af1d9, 0x378a2df618d8cc36), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000696), RTUINT128_INIT_C(0x000219063dabd8f0, 0x3afa301acd1ba9a7) + }, + { /* i=716; 124 / 44 */ + RTUINT128_INIT_C(0x0323b5bb0e82b3e0, 0xaf97db09b283b4fe), RTUINT128_INIT_C(0x0000000000000000, 0x000008bcfb36f464), + RTUINT128_INIT_C(0x0000000000005bf9, 0xfc7985f706458430), RTUINT128_INIT_C(0x0000000000000000, 0x0000060c0b3e523e) + }, + { /* i=717; 122 / 67 */ + RTUINT128_INIT_C(0x013d6b50195e661f, 0x7058cceced816ef4), RTUINT128_INIT_C(0x0000000000000007, 0x192b3d0262a42c64), + RTUINT128_INIT_C(0x0000000000000000, 0x002cb7b0569636ee), RTUINT128_INIT_C(0x0000000000000003, 0x90f4a00afceb11fc) + }, + { /* i=718; 120 / 58 */ + RTUINT128_INIT_C(0x00ffe3d26a197827, 0xb4117c2f687d0135), RTUINT128_INIT_C(0x0000000000000000, 0x00ee7b9687262460), + RTUINT128_INIT_C(0x0000000000000001, 0x12af8e930ecf2a09), RTUINT128_INIT_C(0x0000000000000000, 0x0098f0c3bc8df9d5) + }, + { /* i=719; 113 / 118 */ + RTUINT128_INIT_C(0x0001e06119e6c6a3, 0xdfb62201b13a3697), RTUINT128_INIT_C(0x00026bb7f4c6d30c, 0x3d6a864fb059bfc0), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x0001e06119e6c6a3, 0xdfb62201b13a3697) + }, + { /* i=720; 7 / 62 */ + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000032), RTUINT128_INIT_C(0x0000000000000000, 0x061742267887e8bd), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000032) + }, + { /* i=721; 120 / 73 */ + RTUINT128_INIT_C(0x007edf0085b437f6, 0xd494c7e68b69a804), RTUINT128_INIT_C(0x00000000000001ab, 0x84bb848f29d974e3), + RTUINT128_INIT_C(0x0000000000000000, 0x00004bf892b5252a), RTUINT128_INIT_C(0x0000000000000182, 0x54a9ff0c2558abc6) + }, + { /* i=722; 68 / 57 */ + RTUINT128_INIT_C(0x0000000000000003, 0x33506ad905dfd965), RTUINT128_INIT_C(0x0000000000000000, 0x017d61354287fc0a), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000225), RTUINT128_INIT_C(0x0000000000000000, 0x016ef3a1584057f3) + }, + { /* i=723; 122 / 79 */ + RTUINT128_INIT_C(0x02a55131f9b00afc, 0x7c6342a357892433), RTUINT128_INIT_C(0x00000000000038f4, 0xfcfa190fe16da6d0), + RTUINT128_INIT_C(0x0000000000000000, 0x00000be448826d43), RTUINT128_INIT_C(0x0000000000000446, 0x1cf81ea6722febc3) + }, + { /* i=724; 56 / 12 */ + RTUINT128_INIT_C(0x0000000000000000, 0x00b32b411fa115c7), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000bbf), + RTUINT128_INIT_C(0x0000000000000000, 0x00000f40e4f00c5a), RTUINT128_INIT_C(0x0000000000000000, 0x00000000000000a1) + }, + { /* i=725; 44 / 25 */ + RTUINT128_INIT_C(0x0000000000000000, 0x00000f41a0758a0b), RTUINT128_INIT_C(0x0000000000000000, 0x000000000137a5b2), + RTUINT128_INIT_C(0x0000000000000000, 0x00000000000c883e), RTUINT128_INIT_C(0x0000000000000000, 0x00000000009cd8ef) + }, + { /* i=726; 78 / 17 */ + RTUINT128_INIT_C(0x0000000000002a3d, 0x759b29b8d7fa5ea1), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000009d3c), + RTUINT128_INIT_C(0x0000000000000000, 0x44c5dae0cbe11db4), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000471) + }, + { /* i=727; 114 / 30 */ + RTUINT128_INIT_C(0x000296a60161fdb1, 0x96387906e176bec3), RTUINT128_INIT_C(0x0000000000000000, 0x00000000193bcc89), + RTUINT128_INIT_C(0x00000000001a42b4, 0xbd9f5d8ad0e7e9a8), RTUINT128_INIT_C(0x0000000000000000, 0x000000000570d3db) + }, + { /* i=728; 115 / 48 */ + RTUINT128_INIT_C(0x0007fdce97841411, 0xbb8f18c6f63f3f6f), RTUINT128_INIT_C(0x0000000000000000, 0x00007e3788e0c22d), + RTUINT128_INIT_C(0x0000000000000010, 0x356a9047febdb197), RTUINT128_INIT_C(0x0000000000000000, 0x0000074ed23299e4) + }, + { /* i=729; 106 / 105 */ + RTUINT128_INIT_C(0x000003ee544ff59e, 0xa241e9c909ce8d46), RTUINT128_INIT_C(0x000000a8c86ea224, 0xddf5c70954cb1538), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000005), RTUINT128_INIT_C(0x000000a26a26cae6, 0x4c75069a61d7232e) + }, + { /* i=730; 90 / 43 */ + RTUINT128_INIT_C(0x000000000371bc4e, 0x9b8887ec5f93880e), RTUINT128_INIT_C(0x0000000000000000, 0x000006b67eabcb22), + RTUINT128_INIT_C(0x0000000000000000, 0x000083599a217798), RTUINT128_INIT_C(0x0000000000000000, 0x00000585aac41dde) + }, + { /* i=731; 56 / 51 */ + RTUINT128_INIT_C(0x0000000000000000, 0x0012b39164caa50d), RTUINT128_INIT_C(0x0000000000000000, 0x00079f17afa9aafc), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000002), RTUINT128_INIT_C(0x0000000000000000, 0x0003756205774f15) + }, + { /* i=732; 31 / 9 */ + RTUINT128_INIT_C(0x0000000000000000, 0x000000006b9bbe59), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000027), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000002c25a36), RTUINT128_INIT_C(0x0000000000000000, 0x000000000000001f) + }, + { /* i=733; 56 / 56 */ + RTUINT128_INIT_C(0x0000000000000000, 0x006b5f174c8c7ffc), RTUINT128_INIT_C(0x0000000000000000, 0x0077868d9aaebc16), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x0000000000000000, 0x006b5f174c8c7ffc) + }, + { /* i=734; 126 / 63 */ + RTUINT128_INIT_C(0x2f513389925b69d5, 0x11f5cd667959ce17), RTUINT128_INIT_C(0x0000000000000000, 0x2420322ffddc5e69), + RTUINT128_INIT_C(0x0000000000000001, 0x4f4e71c13974f1f4), RTUINT128_INIT_C(0x0000000000000000, 0x12f42aa2e5daf903) + }, + { /* i=735; 113 / 121 */ + RTUINT128_INIT_C(0x000062fedb04186b, 0x4accf17e3d429ff0), RTUINT128_INIT_C(0x00ffa22b5cf2b8b1, 0x4d5cfdb9162de3b1), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x000062fedb04186b, 0x4accf17e3d429ff0) + }, + { /* i=736; 86 / 30 */ + RTUINT128_INIT_C(0x000000000037766c, 0x30c23283b00d52c3), RTUINT128_INIT_C(0x0000000000000000, 0x00000000099761cd), + RTUINT128_INIT_C(0x0000000000000000, 0x05c8569e2321f309), RTUINT128_INIT_C(0x0000000000000000, 0x0000000005784b8e) + }, + { /* i=737; 23 / 99 */ + RTUINT128_INIT_C(0x0000000000000000, 0x00000000001120c4), RTUINT128_INIT_C(0x0000000704388812, 0x2ab06f7ea2e0a124), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x0000000000000000, 0x00000000001120c4) + }, + { /* i=738; 114 / 72 */ + RTUINT128_INIT_C(0x0002939faf31a2b7, 0x5e04c6d562a5e90e), RTUINT128_INIT_C(0x0000000000000093, 0x60a18aa76f676912), + RTUINT128_INIT_C(0x0000000000000000, 0x00000479ca57976e), RTUINT128_INIT_C(0x0000000000000035, 0x0d7f099e9c1f2552) + }, + { /* i=739; 106 / 85 */ + RTUINT128_INIT_C(0x000003ea9b723385, 0x6abfc21d58a3836d), RTUINT128_INIT_C(0x0000000000070453, 0xda2b45e0fce30fdb), + RTUINT128_INIT_C(0x0000000000000000, 0x00000000008ee271), RTUINT128_INIT_C(0x0000000000043fe7, 0x2729049a78f02dc2) + }, + { /* i=740; 73 / 30 */ + RTUINT128_INIT_C(0x000000000000009f, 0xddcf0616382031f5), RTUINT128_INIT_C(0x0000000000000000, 0x000000003b6a9669), + RTUINT128_INIT_C(0x0000000000000000, 0x000002b0cc08030f), RTUINT128_INIT_C(0x0000000000000000, 0x000000001dd626ce) + }, + { /* i=741; 45 / 44 */ + RTUINT128_INIT_C(0x0000000000000000, 0x000017875e2ca949), RTUINT128_INIT_C(0x0000000000000000, 0x00000e7ccb665390), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000001), RTUINT128_INIT_C(0x0000000000000000, 0x0000090a92c655b9) + }, + { /* i=742; 126 / 84 */ + RTUINT128_INIT_C(0x1395d0c81e79117d, 0xb26e8dbdd49de717), RTUINT128_INIT_C(0x0000000000080732, 0x950b6cef39320878), + RTUINT128_INIT_C(0x0000000000000000, 0x0000027088350eb1), RTUINT128_INIT_C(0x000000000006df05, 0xf7b516db0bb77c1f) + }, + { /* i=743; 103 / 6 */ + RTUINT128_INIT_C(0x000000406e30acc1, 0x710bf92b43132cb6), RTUINT128_INIT_C(0x0000000000000000, 0x000000000000003e), + RTUINT128_INIT_C(0x000000010a090b0b, 0x60ca8404d3a9997e), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000032) + }, + { /* i=744; 118 / 120 */ + RTUINT128_INIT_C(0x00103fb1b5b49d9d, 0x010a9d108db8a94c), RTUINT128_INIT_C(0x0099ae79160a9d29, 0x5ae2535f92d37154), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x00103fb1b5b49d9d, 0x010a9d108db8a94c) + }, + { /* i=745; 80 / 45 */ + RTUINT128_INIT_C(0x0000000000002c54, 0xc6e3bdb6a1c3d48f), RTUINT128_INIT_C(0x0000000000000000, 0x000003dc815bf7ff), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000b7b121298), RTUINT128_INIT_C(0x0000000000000000, 0x0000011d66caa727) + }, + { /* i=746; 125 / 96 */ + RTUINT128_INIT_C(0x14571877ffafb8a5, 0x7c9cfc5de19acf80), RTUINT128_INIT_C(0x0000000074928501, 0xc3e6264bea029fca), + RTUINT128_INIT_C(0x0000000000000000, 0x000000002cab19c6), RTUINT128_INIT_C(0x00000000618643d5, 0xddf030952e0a7f44) + }, + { /* i=747; 116 / 74 */ + RTUINT128_INIT_C(0x000d97be70977d0d, 0xdff84010f0316898), RTUINT128_INIT_C(0x000000000000022d, 0x34a5c33501ee56c5), + RTUINT128_INIT_C(0x0000000000000000, 0x0000063eb7af2746), RTUINT128_INIT_C(0x00000000000000ee, 0xd688789cf622abba) + }, + { /* i=748; 54 / 7 */ + RTUINT128_INIT_C(0x0000000000000000, 0x0023f055190b4156), RTUINT128_INIT_C(0x0000000000000000, 0x000000000000001a), + RTUINT128_INIT_C(0x0000000000000000, 0x000161dbe36cbd97), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000) + }, + { /* i=749; 42 / 38 */ + RTUINT128_INIT_C(0x0000000000000000, 0x000001296e2cf2a2), RTUINT128_INIT_C(0x0000000000000000, 0x000000141b1d1c67), + RTUINT128_INIT_C(0x0000000000000000, 0x000000000000000e), RTUINT128_INIT_C(0x0000000000000000, 0x0000000ff2956500) + }, + { /* i=750; 127 / 57 */ + RTUINT128_INIT_C(0x4a4be9c3816b5eb6, 0x2fa4b6c5d8bbd84c), RTUINT128_INIT_C(0x0000000000000000, 0x007bdb4c0821b294), + RTUINT128_INIT_C(0x0000000000000099, 0x905f0318a3bd0489), RTUINT128_INIT_C(0x0000000000000000, 0x00733b7fe4a4f718) + }, + { /* i=751; 80 / 60 */ + RTUINT128_INIT_C(0x00000000000056bd, 0x9fe3aab6d85ff0c4), RTUINT128_INIT_C(0x0000000000000000, 0x0c46f677b7af707e), + RTUINT128_INIT_C(0x0000000000000000, 0x00000000000710b0), RTUINT128_INIT_C(0x0000000000000000, 0x026cb7218548ba24) + }, + { /* i=752; 54 / 48 */ + RTUINT128_INIT_C(0x0000000000000000, 0x00377c9b9c46cd6c), RTUINT128_INIT_C(0x0000000000000000, 0x0000df5c4793abe5), + RTUINT128_INIT_C(0x0000000000000000, 0x000000000000003f), RTUINT128_INIT_C(0x0000000000000000, 0x000084e5feef8011) + }, + { /* i=753; 77 / 15 */ + RTUINT128_INIT_C(0x0000000000000f4c, 0x2b76c3f3d3bd9c81), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000006929), + RTUINT128_INIT_C(0x0000000000000000, 0x253d741b3bf45baf), RTUINT128_INIT_C(0x0000000000000000, 0x000000000000267a) + }, + { /* i=754; 48 / 7 */ + RTUINT128_INIT_C(0x0000000000000000, 0x0000e377a137c0ce), RTUINT128_INIT_C(0x0000000000000000, 0x000000000000005e), + RTUINT128_INIT_C(0x0000000000000000, 0x0000026b7c44ada0), RTUINT128_INIT_C(0x0000000000000000, 0x000000000000000e) + }, + { /* i=755; 81 / 74 */ + RTUINT128_INIT_C(0x0000000000001604, 0x45cda5ac5a996982), RTUINT128_INIT_C(0x00000000000003ff, 0x926656f155e200b8), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000005), RTUINT128_INIT_C(0x0000000000000206, 0x69cdf2f5ad2f65ea) + }, + { /* i=756; 21 / 101 */ + RTUINT128_INIT_C(0x0000000000000000, 0x00000000001537df), RTUINT128_INIT_C(0x000000145f987232, 0x8ddcb00f18379704), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x0000000000000000, 0x00000000001537df) + }, + { /* i=757; 60 / 22 */ + RTUINT128_INIT_C(0x0000000000000000, 0x053cf5fb3c36385b), RTUINT128_INIT_C(0x0000000000000000, 0x000000000038820d), + RTUINT128_INIT_C(0x0000000000000000, 0x00000017baff29e4), RTUINT128_INIT_C(0x0000000000000000, 0x00000000001b4fc7) + }, + { /* i=758; 29 / 18 */ + RTUINT128_INIT_C(0x0000000000000000, 0x000000000428cffe), RTUINT128_INIT_C(0x0000000000000000, 0x000000000002a76b), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000191), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000009163) + }, + { /* i=759; 120 / 43 */ + RTUINT128_INIT_C(0x0011067b6f013746, 0xf890d7cb98729184), RTUINT128_INIT_C(0x0000000000000000, 0x00000245476e721d), + RTUINT128_INIT_C(0x000000000000077f, 0x82ca82147cdf11d3), RTUINT128_INIT_C(0x0000000000000000, 0x00000233ef93969d) + }, + { /* i=760; 103 / 34 */ + RTUINT128_INIT_C(0x000000291258291a, 0xd5d237bff4ee643e), RTUINT128_INIT_C(0x0000000000000000, 0x0000000185776f8c), + RTUINT128_INIT_C(0x000000000000001a, 0xff2d438ef9a013af), RTUINT128_INIT_C(0x0000000000000000, 0x00000000f781bf8a) + }, + { /* i=761; 69 / 15 */ + RTUINT128_INIT_C(0x0000000000000009, 0x9118efa08a76ba9d), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000006506), + RTUINT128_INIT_C(0x0000000000000000, 0x00183e2c4d882bc7), RTUINT128_INIT_C(0x0000000000000000, 0x00000000000030f3) + }, + { /* i=762; 126 / 82 */ + RTUINT128_INIT_C(0x1218f8b8fd908ca4, 0xe8b76f1a04e90f41), RTUINT128_INIT_C(0x000000000002e1df, 0xf3697bc6b9753f5c), + RTUINT128_INIT_C(0x0000000000000000, 0x000006475fb93bc1), RTUINT128_INIT_C(0x0000000000029d15, 0xb63b0ec8406e16e5) + }, + { /* i=763; 121 / 57 */ + RTUINT128_INIT_C(0x00243e8f54bb5a9f, 0x5f3f390a06a6c60a), RTUINT128_INIT_C(0x0000000000000000, 0x00d4f52ee3fe89ad), + RTUINT128_INIT_C(0x0000000000000000, 0x2b91e8b522662ab9), RTUINT128_INIT_C(0x0000000000000000, 0x007093baac30e605) + }, + { /* i=764; 100 / 67 */ + RTUINT128_INIT_C(0x0000000985519897, 0x393a2659c43bf464), RTUINT128_INIT_C(0x0000000000000005, 0x2e0e8b84b4f7b264), + RTUINT128_INIT_C(0x0000000000000000, 0x00000001d68877d4), RTUINT128_INIT_C(0x0000000000000004, 0x8f95073a660fbd94) + }, + { /* i=765; 120 / 98 */ + RTUINT128_INIT_C(0x00806c8de7bf63b7, 0x414e4b68228079ad), RTUINT128_INIT_C(0x0000000001488472, 0x5ee3b751dd2f2e28), + RTUINT128_INIT_C(0x0000000000000000, 0x00000000641356cf), RTUINT128_INIT_C(0x00000000000fe0d9, 0x721db76062e0b755) + }, + { /* i=766; 120 / 127 */ + RTUINT128_INIT_C(0x00d2421170b2dfaa, 0x93af6a0ed5ae9f12), RTUINT128_INIT_C(0x350a291f16a9619e, 0x31dfd500e945a010), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x00d2421170b2dfaa, 0x93af6a0ed5ae9f12) + }, + { /* i=767; 113 / 118 */ + RTUINT128_INIT_C(0x000088cb24fae4cb, 0x1a757a5c527cfe4b), RTUINT128_INIT_C(0x002641a0e015d74f, 0xd0c6e55a65707eac), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x000088cb24fae4cb, 0x1a757a5c527cfe4b) + }, + { /* i=768; 89 / 86 */ + RTUINT128_INIT_C(0x00000000017c84f9, 0x69b6b2e75d267ff4), RTUINT128_INIT_C(0x00000000001e358e, 0x06b426d7bde01a5f), + RTUINT128_INIT_C(0x0000000000000000, 0x000000000000000c), RTUINT128_INIT_C(0x0000000000120251, 0x1944e0ca76a54380) + }, + { /* i=769; 4 / 16 */ + RTUINT128_INIT_C(0x0000000000000000, 0x000000000000000c), RTUINT128_INIT_C(0x0000000000000000, 0x000000000000f4d9), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x0000000000000000, 0x000000000000000c) + }, + { /* i=770; 116 / 29 */ + RTUINT128_INIT_C(0x000129c3496ed78c, 0xf6d863efcdf6bffc), RTUINT128_INIT_C(0x0000000000000000, 0x000000000d818fd8), + RTUINT128_INIT_C(0x0000000000160bea, 0x3dd46917650e58f9), RTUINT128_INIT_C(0x0000000000000000, 0x000000000baf96e4) + }, + { /* i=771; 127 / 56 */ + RTUINT128_INIT_C(0x22206968cb4b6caf, 0x8c2350fc33b82fd4), RTUINT128_INIT_C(0x0000000000000000, 0x00f3d7311c1e688f), + RTUINT128_INIT_C(0x0000000000000023, 0xd4104303a2890b9d), RTUINT128_INIT_C(0x0000000000000000, 0x009d4a8b340ceb21) + }, + { /* i=772; 35 / 23 */ + RTUINT128_INIT_C(0x0000000000000000, 0x000000040423acfd), RTUINT128_INIT_C(0x0000000000000000, 0x00000000005c831a), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000b1d), RTUINT128_INIT_C(0x0000000000000000, 0x000000000006b50b) + }, + { /* i=773; 95 / 68 */ + RTUINT128_INIT_C(0x000000002679e041, 0x82edc6aef68d806a), RTUINT128_INIT_C(0x0000000000000009, 0xb033295adb3d6d00), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000003f8adf1), RTUINT128_INIT_C(0x0000000000000003, 0xef3b56357710e36a) + }, + { /* i=774; 126 / 93 */ + RTUINT128_INIT_C(0x1b7affa246c591c8, 0x194bc528a2bb8cb9), RTUINT128_INIT_C(0x000000001b2a7ad1, 0xd111d52a916df1cf), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000102f6c638), RTUINT128_INIT_C(0x0000000000298c36, 0xd50daa04cebe8d71) + }, + { /* i=775; 89 / 5 */ + RTUINT128_INIT_C(0x0000000000549ee1, 0x2a464c42e5f7c883), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000007), + RTUINT128_INIT_C(0x00000000000c16b2, 0x73c0e652b32365c9), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000004) + }, + { /* i=776; 122 / 40 */ + RTUINT128_INIT_C(0x029529997c36effc, 0xea8c3b46670175e8), RTUINT128_INIT_C(0x0000000000000000, 0x0000004035520746), + RTUINT128_INIT_C(0x00000000000a4c12, 0x343ab306dd0e8d15), RTUINT128_INIT_C(0x0000000000000000, 0x0000003c05714f2a) + }, + { /* i=777; 43 / 23 */ + RTUINT128_INIT_C(0x0000000000000000, 0x0000069f66322922), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000278431), + RTUINT128_INIT_C(0x0000000000000000, 0x00000000002ae759), RTUINT128_INIT_C(0x0000000000000000, 0x000000000022fd19) + }, + { /* i=778; 55 / 14 */ + RTUINT128_INIT_C(0x0000000000000000, 0x0028e2d77f5a5f65), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000003a9d), + RTUINT128_INIT_C(0x0000000000000000, 0x000000b29317586e), RTUINT128_INIT_C(0x0000000000000000, 0x00000000000037ef) + }, + { /* i=779; 127 / 115 */ + RTUINT128_INIT_C(0x3da695843bc4539f, 0x8882cf5950263aad), RTUINT128_INIT_C(0x0004d9328c1222bf, 0x7b3744fd9d090872), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000cb7), RTUINT128_INIT_C(0x0000f3d1412c82f7, 0xdcc49ab1a24bd92f) + }, + { /* i=780; 120 / 48 */ + RTUINT128_INIT_C(0x004affc188e2fd22, 0x676d4510d4b1750f), RTUINT128_INIT_C(0x0000000000000000, 0x0000fdb03ddf2eea), + RTUINT128_INIT_C(0x000000000000004b, 0xaeb33cc3bf9f0f53), RTUINT128_INIT_C(0x0000000000000000, 0x00002b6ff83f8931) + }, + { /* i=781; 117 / 70 */ + RTUINT128_INIT_C(0x000405b5e1cbfd4c, 0x2aea18f01730aa86), RTUINT128_INIT_C(0x000000000000002a, 0x83c377ca0adb786d), + RTUINT128_INIT_C(0x0000000000000000, 0x0000183858b7bd71), RTUINT128_INIT_C(0x0000000000000021, 0xa9bc4a9cb67d0969) + }, + { /* i=782; 103 / 88 */ + RTUINT128_INIT_C(0x0000000a44ef42b1, 0xf74b588a6a38a4c6), RTUINT128_INIT_C(0x0000000000d32253, 0x872c45306b3c0445), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000c73), RTUINT128_INIT_C(0x00000000007aecd6, 0x2b29fec36e0f7dc7) + }, + { /* i=783; 119 / 104 */ + RTUINT128_INIT_C(0x006ec625c3b76e41, 0xabe6a76a2e31962d), RTUINT128_INIT_C(0x00000085a3c1f49b, 0x86f172ad35aa6a22), + RTUINT128_INIT_C(0x0000000000000000, 0x000000000000d432), RTUINT128_INIT_C(0x0000006f2944dc21, 0x5dc6d1249304b389) + }, + { /* i=784; 78 / 73 */ + RTUINT128_INIT_C(0x000000000000021c, 0x9104b44be6bb4c7b), RTUINT128_INIT_C(0x00000000000000db, 0x7da11037a18d6ca8), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000002), RTUINT128_INIT_C(0x0000000000000065, 0x95c293dca3a0732b) + }, + { /* i=785; 123 / 103 */ + RTUINT128_INIT_C(0x05106e4f671b9af6, 0xa79499ae19b1f4a5), RTUINT128_INIT_C(0x00000058daa56045, 0x1cf46597beffe689), + RTUINT128_INIT_C(0x0000000000000000, 0x00000000000e972e), RTUINT128_INIT_C(0x000000554dd3f519, 0xbd7164c23b3db907) + }, + { /* i=786; 121 / 125 */ + RTUINT128_INIT_C(0x0177b9ddd35d1ec3, 0xa86f5471db2dd900), RTUINT128_INIT_C(0x146ab30432dfd97a, 0xe4845efd68fe7b56), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x0177b9ddd35d1ec3, 0xa86f5471db2dd900) + }, + { /* i=787; 128 / 92 */ + RTUINT128_INIT_C(0x011f7aa67e60b51f, 0x2d45974625cd6a68), RTUINT128_INIT_C(0x000000000956bbb8, 0x9b450a926f77dd79), + RTUINT128_INIT_C(0x0000000000000000, 0x000000001ec88616), RTUINT128_INIT_C(0x00000000003e8cce, 0x4656e6be9f0b0c02) + }, + { /* i=788; 125 / 78 */ + RTUINT128_INIT_C(0x0d9ada4e0b8d2e9c, 0xd411df4d2eea6ab4), RTUINT128_INIT_C(0x0000000000003ad7, 0x6422064def5af768), + RTUINT128_INIT_C(0x0000000000000000, 0x00003b30c7711942), RTUINT128_INIT_C(0x0000000000002f9b, 0x7b24e9dc8a6579e4) + }, + { /* i=789; 35 / 9 */ + RTUINT128_INIT_C(0x0000000000000000, 0x0000000240e9bc3e), RTUINT128_INIT_C(0x0000000000000000, 0x00000000000001ad), + RTUINT128_INIT_C(0x0000000000000000, 0x00000000015843de), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000138) + }, + { /* i=790; 98 / 96 */ + RTUINT128_INIT_C(0x000000004ee6ea16, 0xbb375ea032076253), RTUINT128_INIT_C(0x000000000a0a1cd6, 0x308aaa675e8ad385), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000007), RTUINT128_INIT_C(0x0000000008a0203b, 0x676cb5cc9c3b99b0) + }, + { /* i=791; 41 / 32 */ + RTUINT128_INIT_C(0x0000000000000000, 0x0000015214cfd77d), RTUINT128_INIT_C(0x0000000000000000, 0x0000000028ac865c), + RTUINT128_INIT_C(0x0000000000000000, 0x000000000000084f), RTUINT128_INIT_C(0x0000000000000000, 0x00000000235f8119) + }, + { /* i=792; 123 / 124 */ + RTUINT128_INIT_C(0x017c258b1899177d, 0x0023acc1117ac653), RTUINT128_INIT_C(0x0e9a4d05aefc95a3, 0xf3500926dc5521fe), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x017c258b1899177d, 0x0023acc1117ac653) + }, + { /* i=793; 124 / 81 */ + RTUINT128_INIT_C(0x061d9bcfde41886d, 0xe3a687bbf5494d6d), RTUINT128_INIT_C(0x000000000000a80c, 0x11bfc119bd00fa4e), + RTUINT128_INIT_C(0x0000000000000000, 0x000009510521ef01), RTUINT128_INIT_C(0x0000000000009288, 0x91816c7c848b811f) + }, + { /* i=794; 116 / 80 */ + RTUINT128_INIT_C(0x000dc713fccf3c1b, 0xff745b70e3bf3910), RTUINT128_INIT_C(0x000000000000e4a4, 0x0525e410189b36d5), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000f6d216bc5), RTUINT128_INIT_C(0x00000000000092ce, 0x8153a7ef51ee0027) + }, + { /* i=795; 122 / 112 */ + RTUINT128_INIT_C(0x03379a3cd4ce28c3, 0xd38ea43e2e09a62f), RTUINT128_INIT_C(0x0000d6b08af99658, 0xc94bf7b0d6799b92), + RTUINT128_INIT_C(0x0000000000000000, 0x00000000000003d6), RTUINT128_INIT_C(0x00001107bb67702f, 0xaa2683e7778ee423) + }, + { /* i=796; 81 / 13 */ + RTUINT128_INIT_C(0x000000000001ce69, 0x7477dc00f843e888), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000796), + RTUINT128_INIT_C(0x000000000000003c, 0xf4dae33e7c0a94af), RTUINT128_INIT_C(0x0000000000000000, 0x00000000000000fe) + }, + { /* i=797; 61 / 40 */ + RTUINT128_INIT_C(0x0000000000000000, 0x160dc25b469aedf7), RTUINT128_INIT_C(0x0000000000000000, 0x000000f9a518edd4), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000169d7b), RTUINT128_INIT_C(0x0000000000000000, 0x00000004398da51b) + }, + { /* i=798; 123 / 60 */ + RTUINT128_INIT_C(0x0056e828c9e2fe96, 0x25660f4855716382), RTUINT128_INIT_C(0x0000000000000000, 0x035dd36fef348741), + RTUINT128_INIT_C(0x0000000000000000, 0x19d0ad321c177c00), RTUINT128_INIT_C(0x0000000000000000, 0x004a4335a116e782) + }, + { /* i=799; 116 / 121 */ + RTUINT128_INIT_C(0x000db70e3ebf7b4e, 0xebdf208b400e4fc4), RTUINT128_INIT_C(0x01f06c954373fef4, 0x0b02423d92963b63), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x000db70e3ebf7b4e, 0xebdf208b400e4fc4) + }, + { /* i=800; 4 / 56 */ + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x0000000000000000, 0x00bbac57ce24bb8b), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000) + }, + { /* i=801; 125 / 78 */ + RTUINT128_INIT_C(0x14b62c26f2c3ed2f, 0x9614bef83688a0d2), RTUINT128_INIT_C(0x0000000000002c99, 0x334b653555d15067), + RTUINT128_INIT_C(0x0000000000000000, 0x000076e30f491a39), RTUINT128_INIT_C(0x0000000000001095, 0xf21d49a5e26443e3) + }, + { /* i=802; 125 / 94 */ + RTUINT128_INIT_C(0x113a019752a7c8c1, 0x9b3be799e6a48743), RTUINT128_INIT_C(0x000000001f95dd20, 0xb1e07245fd0dd2fb), + RTUINT128_INIT_C(0x0000000000000000, 0x000000008b9f2409), RTUINT128_INIT_C(0x000000000b671124, 0xd0675e69bc97d070) + }, + { /* i=803; 114 / 107 */ + RTUINT128_INIT_C(0x0002254dce6e767e, 0x293cc9c71cc38037), RTUINT128_INIT_C(0x000002bf00be8ebf, 0x1040bbc54aa1d6ec), + RTUINT128_INIT_C(0x0000000000000000, 0x00000000000000c8), RTUINT128_INIT_C(0x00000015398ef139, 0x76aa17a4ce5397d7) + }, + { /* i=804; 79 / 46 */ + RTUINT128_INIT_C(0x0000000000003775, 0x221d5f06d5142b38), RTUINT128_INIT_C(0x0000000000000000, 0x00000718b066cbdf), + RTUINT128_INIT_C(0x0000000000000000, 0x00000007d0995028), RTUINT128_INIT_C(0x0000000000000000, 0x000005dd1d07a060) + }, + { /* i=805; 16 / 8 */ + RTUINT128_INIT_C(0x0000000000000000, 0x00000000000021c7), RTUINT128_INIT_C(0x0000000000000000, 0x00000000000000e1), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000026), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000061) + }, + { /* i=806; 13 / 4 */ + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000557), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000003), + RTUINT128_INIT_C(0x0000000000000000, 0x00000000000001c7), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000002) + }, + { /* i=807; 39 / 19 */ + RTUINT128_INIT_C(0x0000000000000000, 0x000000091ee47da0), RTUINT128_INIT_C(0x0000000000000000, 0x000000000007b5f8), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000012ece), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000058010) + }, + { /* i=808; 120 / 82 */ + RTUINT128_INIT_C(0x0092d7595536f808, 0x67ff0e45419bec00), RTUINT128_INIT_C(0x0000000000032e77, 0x77148ed34b42d676), + RTUINT128_INIT_C(0x0000000000000000, 0x0000002e2791218a), RTUINT128_INIT_C(0x00000000000246e9, 0xf4597aef9f191a64) + }, + { /* i=809; 114 / 45 */ + RTUINT128_INIT_C(0x000123c15694463f, 0xca79456ea6cfdd5c), RTUINT128_INIT_C(0x0000000000000000, 0x00001764202dfde3), + RTUINT128_INIT_C(0x000000000000000c, 0x791077e6b80f0a6b), RTUINT128_INIT_C(0x0000000000000000, 0x000005345f5ee17b) + }, + { /* i=810; 124 / 63 */ + RTUINT128_INIT_C(0x0e71cbe322349983, 0x2ad4b30793f1aca7), RTUINT128_INIT_C(0x0000000000000000, 0x5a04fdbe747473ee), + RTUINT128_INIT_C(0x0000000000000000, 0x2913e600e4c65a80), RTUINT128_INIT_C(0x0000000000000000, 0x2d49418ac6e209a7) + }, + { /* i=811; 124 / 99 */ + RTUINT128_INIT_C(0x0483e9c0918577cd, 0x617821d3d84fd1a6), RTUINT128_INIT_C(0x00000006cbeeb2a4, 0x5fee034d2225256e), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000aa126d), RTUINT128_INIT_C(0x00000002532c2503, 0x9baca0ead6d125d0) + }, + { /* i=812; 61 / 34 */ + RTUINT128_INIT_C(0x0000000000000000, 0x1cf72c71ca6e2a2f), RTUINT128_INIT_C(0x0000000000000000, 0x0000000099239265), + RTUINT128_INIT_C(0x0000000000000000, 0x00000000306bd484), RTUINT128_INIT_C(0x0000000000000000, 0x000000003ea40a1b) + }, + { /* i=813; 117 / 73 */ + RTUINT128_INIT_C(0x0019d2c2b076f975, 0xe7153aa1bed74e8c), RTUINT128_INIT_C(0x0000000000000064, 0x970c5530ca9db004), + RTUINT128_INIT_C(0x0000000000000000, 0x000041b8473d471d), RTUINT128_INIT_C(0x0000000000000017, 0xdf3581a502354218) + }, + { /* i=814; 106 / 16 */ + RTUINT128_INIT_C(0x0000010712b49c7a, 0xcad097fdfa648617), RTUINT128_INIT_C(0x0000000000000000, 0x000000000000f453), + RTUINT128_INIT_C(0x000000000113a512, 0xfb18883f64221cad), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000005600) + }, + { /* i=815; 94 / 83 */ + RTUINT128_INIT_C(0x000000002431b7fc, 0x68e532b73fd7e937), RTUINT128_INIT_C(0x0000000000020e88, 0x63d051ac326042a0), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000001198), RTUINT128_INIT_C(0x0000000000020860, 0x4fc84520f243ba37) + }, + { /* i=816; 28 / 49 */ + RTUINT128_INIT_C(0x0000000000000000, 0x000000000d24847b), RTUINT128_INIT_C(0x0000000000000000, 0x0001c75ecea698b9), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x0000000000000000, 0x000000000d24847b) + }, + { /* i=817; 100 / 42 */ + RTUINT128_INIT_C(0x0000000dae1f70c9, 0xc7f613f8a0d1ee13), RTUINT128_INIT_C(0x0000000000000000, 0x000001923c79811c), + RTUINT128_INIT_C(0x0000000000000000, 0x08b4e5d559d0899e), RTUINT128_INIT_C(0x0000000000000000, 0x00000072a4fc42cb) + }, + { /* i=818; 110 / 24 */ + RTUINT128_INIT_C(0x0000059b9c81868c, 0x1671a1e74f737e6b), RTUINT128_INIT_C(0x0000000000000000, 0x00000000000db88c), + RTUINT128_INIT_C(0x000000000068a12f, 0xeb0821ad22ee8552), RTUINT128_INIT_C(0x0000000000000000, 0x000000000005a593) + }, + { /* i=819; 127 / 123 */ + RTUINT128_INIT_C(0x3f878e40218479f3, 0xf22f351c29c1c21a), RTUINT128_INIT_C(0x0610077620957e0d, 0xa9e04a458a9c5666), + RTUINT128_INIT_C(0x0000000000000000, 0x000000000000000a), RTUINT128_INIT_C(0x02e743a2dbad8d6b, 0x4f6c4e64bfa6621e) + }, + { /* i=820; 54 / 49 */ + RTUINT128_INIT_C(0x0000000000000000, 0x0026733ca03a00f9), RTUINT128_INIT_C(0x0000000000000000, 0x0000019f06fdbfcb), + RTUINT128_INIT_C(0x0000000000000000, 0x00000000000017b7), RTUINT128_INIT_C(0x0000000000000000, 0x000000edd49aa9dc) + }, + { /* i=821; 95 / 89 */ + RTUINT128_INIT_C(0x00000000312efc83, 0x1eb6bf59e7253aa5), RTUINT128_INIT_C(0x00000000000cb0ef, 0xae8daa1a2ff1e062), + RTUINT128_INIT_C(0x0000000000000000, 0x00000000000003e0), RTUINT128_INIT_C(0x0000000000015bbe, 0xb9c399e01ddfbee5) + }, + { /* i=822; 87 / 87 */ + RTUINT128_INIT_C(0x00000000001cf571, 0x7230800f71db05a7), RTUINT128_INIT_C(0x000000000064bc72, 0x3137e55b68b5c28c), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x00000000001cf571, 0x7230800f71db05a7) + }, + { /* i=823; 120 / 121 */ + RTUINT128_INIT_C(0x007340c080d1f9b4, 0xdc5b54184257fe74), RTUINT128_INIT_C(0x015faf3a9caf90e5, 0x29bfa8d7ac9e6369), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x007340c080d1f9b4, 0xdc5b54184257fe74) + }, + { /* i=824; 122 / 126 */ + RTUINT128_INIT_C(0x032f28472f595ddb, 0x9abb819a76358b66), RTUINT128_INIT_C(0x10344ef7d626556b, 0x242a386db4e954c4), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x032f28472f595ddb, 0x9abb819a76358b66) + }, + { /* i=825; 124 / 79 */ + RTUINT128_INIT_C(0x044d8722927b548f, 0x5818b3fb0348cdbe), RTUINT128_INIT_C(0x0000000000000a3b, 0x77dd2c5aef4bc9b4), + RTUINT128_INIT_C(0x0000000000000000, 0x00006ba6ed08c0a1), RTUINT128_INIT_C(0x000000000000054d, 0xa9e7f07fbbb7f38a) + }, + { /* i=826; 83 / 47 */ + RTUINT128_INIT_C(0x000000000000dd5b, 0xd192c52569cf9b94), RTUINT128_INIT_C(0x0000000000000000, 0x0000341444bb0e57), + RTUINT128_INIT_C(0x0000000000000000, 0x00000004401be8a7), RTUINT128_INIT_C(0x0000000000000000, 0x000030f6cb9d68d3) + }, + { /* i=827; 125 / 83 */ + RTUINT128_INIT_C(0x1fe017dc2d51d9ee, 0x488c2582d7850454), RTUINT128_INIT_C(0x000000000002fd37, 0x514ea5025869fb7c), + RTUINT128_INIT_C(0x0000000000000000, 0x00000aa9ed3fa2f2), RTUINT128_INIT_C(0x000000000001a311, 0x5e90f09582acd11c) + }, + { /* i=828; 115 / 101 */ + RTUINT128_INIT_C(0x000465b0cfc043f4, 0xa7f17c3a44f4d590), RTUINT128_INIT_C(0x0000000af7bf3c34, 0xb3a80d6f1823cfb7), + RTUINT128_INIT_C(0x0000000000000000, 0x00000000000066a2), RTUINT128_INIT_C(0x00000009d6bf2b06, 0x023eb84eb98879c2) + }, + { /* i=829; 121 / 48 */ + RTUINT128_INIT_C(0x00ed531ba22eea84, 0xf3a3efe035a5a110), RTUINT128_INIT_C(0x0000000000000000, 0x00009af6990ebee5), + RTUINT128_INIT_C(0x0000000000000188, 0x0fb3c3487fe80291), RTUINT128_INIT_C(0x0000000000000000, 0x00001788cc45b75b) + }, + { /* i=830; 123 / 67 */ + RTUINT128_INIT_C(0x066d582443d506a9, 0x024ee906a2182942), RTUINT128_INIT_C(0x0000000000000002, 0xee8270e585c486bf), + RTUINT128_INIT_C(0x0000000000000000, 0x02313ac4ebd722b6), RTUINT128_INIT_C(0x0000000000000002, 0x6277fa1aef11ff78) + }, + { /* i=831; 94 / 49 */ + RTUINT128_INIT_C(0x000000001f60728a, 0x240e8040c664e5d0), RTUINT128_INIT_C(0x0000000000000000, 0x000154e4d583df48), + RTUINT128_INIT_C(0x0000000000000000, 0x000017901a02f753), RTUINT128_INIT_C(0x0000000000000000, 0x00010fd841a50978) + }, + { /* i=832; 8 / 54 */ + RTUINT128_INIT_C(0x0000000000000000, 0x00000000000000a8), RTUINT128_INIT_C(0x0000000000000000, 0x00205333a50431dc), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x0000000000000000, 0x00000000000000a8) + }, + { /* i=833; 117 / 15 */ + RTUINT128_INIT_C(0x000bdd1438a55000, 0xbc8bc80d68dfed1d), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000006bdb), + RTUINT128_INIT_C(0x0000001c28a6277d, 0xad6ef0c87db3255f), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000003fd8) + }, + { /* i=834; 78 / 38 */ + RTUINT128_INIT_C(0x00000000000007d5, 0x8bae3e845cff8de0), RTUINT128_INIT_C(0x0000000000000000, 0x00000016799d4090), + RTUINT128_INIT_C(0x0000000000000000, 0x000000593bfa6427), RTUINT128_INIT_C(0x0000000000000000, 0x000000142c3277f0) + }, + { /* i=835; 116 / 60 */ + RTUINT128_INIT_C(0x000e670eed74d5bd, 0x49b95ffcedd6feeb), RTUINT128_INIT_C(0x0000000000000000, 0x0060f5a78c4cf58d), + RTUINT128_INIT_C(0x0000000000000000, 0x2606d94b2d3adb8e), RTUINT128_INIT_C(0x0000000000000000, 0x002d021eda252bb5) + }, + { /* i=836; 113 / 32 */ + RTUINT128_INIT_C(0x0001422cf74560d2, 0xdb49fa1b7da3ead2), RTUINT128_INIT_C(0x0000000000000000, 0x000000001773330b), + RTUINT128_INIT_C(0x00000000000dbd24, 0x4a8b82b3b7e916b1), RTUINT128_INIT_C(0x0000000000000000, 0x000000000e97ae37) + }, + { /* i=837; 125 / 117 */ + RTUINT128_INIT_C(0x0eb0d23936d30ba6, 0x94e63ecd5d8bd305), RTUINT128_INIT_C(0x000d8b718ad34b15, 0x0f2ce34aab022cc0), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000115), RTUINT128_INIT_C(0x0008f05e0032cddd, 0x29544f0254316745) + }, + { /* i=838; 128 / 31 */ + RTUINT128_INIT_C(0x8e3d386789aaa4c8, 0xde0739277e944045), RTUINT128_INIT_C(0x0000000000000000, 0x000000001d6c0a63), + RTUINT128_INIT_C(0x00000004d59e0d59, 0x5b2806e6c194f2e8), RTUINT128_INIT_C(0x0000000000000000, 0x000000000e9d408d) + }, + { /* i=839; 92 / 23 */ + RTUINT128_INIT_C(0x00000000099ade58, 0xb2c308b43221d866), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000117958), + RTUINT128_INIT_C(0x000000000000008c, 0xb741a0e43a0c42f5), RTUINT128_INIT_C(0x0000000000000000, 0x000000000000072e) + }, + { /* i=840; 88 / 17 */ + RTUINT128_INIT_C(0x0000000000d62227, 0xf00609cdb13354f2), RTUINT128_INIT_C(0x0000000000000000, 0x000000000000c181), + RTUINT128_INIT_C(0x000000000000011b, 0x4ad0907baa6dd801), RTUINT128_INIT_C(0x0000000000000000, 0x000000000000bb71) + }, + { /* i=841; 115 / 26 */ + RTUINT128_INIT_C(0x0000f919045bcc53, 0xd658f5ae0fb10522), RTUINT128_INIT_C(0x0000000000000000, 0x000000000133f857), + RTUINT128_INIT_C(0x0000000000cf0ff8, 0x1835010d9a9ea91e), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000f67bf0) + }, + { /* i=842; 120 / 82 */ + RTUINT128_INIT_C(0x00ab7b748622d6e5, 0xb55a126b16739f85), RTUINT128_INIT_C(0x0000000000004aa3, 0xbb42abbde6d8bd6c), + RTUINT128_INIT_C(0x0000000000000000, 0x0000024c270be3de), RTUINT128_INIT_C(0x00000000000041a7, 0xaa18bbcf1ee497dd) + }, + { /* i=843; 120 / 18 */ + RTUINT128_INIT_C(0x0094dd1deeb67092, 0x1e5d8a89584585ed), RTUINT128_INIT_C(0x0000000000000000, 0x00000000000092db), + RTUINT128_INIT_C(0x000001038036cb1d, 0x40158fa439f1945a), RTUINT128_INIT_C(0x0000000000000000, 0x00000000000048ef) + }, + { /* i=844; 9 / 3 */ + RTUINT128_INIT_C(0x0000000000000000, 0x00000000000000dd), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000005), + RTUINT128_INIT_C(0x0000000000000000, 0x000000000000002c), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000001) + }, + { /* i=845; 39 / 20 */ + RTUINT128_INIT_C(0x0000000000000000, 0x000000228039b5cf), RTUINT128_INIT_C(0x0000000000000000, 0x000000000009b9f8), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000038c10), RTUINT128_INIT_C(0x0000000000000000, 0x000000000002764f) + }, + { /* i=846; 120 / 31 */ + RTUINT128_INIT_C(0x005c019ed796f318, 0x75bb7dc891b6a48d), RTUINT128_INIT_C(0x0000000000000000, 0x00000000206aa866), + RTUINT128_INIT_C(0x0000000002d69732, 0x407847b13b017e9d), RTUINT128_INIT_C(0x0000000000000000, 0x00000000070529ff) + }, + { /* i=847; 97 / 73 */ + RTUINT128_INIT_C(0x00000001beafa61b, 0x98c4c7488c70a331), RTUINT128_INIT_C(0x00000000000001f9, 0x98786470513b4800), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000e22c13), RTUINT128_INIT_C(0x0000000000000017, 0xeb6a4ea6c4aa4b31) + }, + { /* i=848; 91 / 68 */ + RTUINT128_INIT_C(0x0000000005050ba2, 0x033ab079f7b5a909), RTUINT128_INIT_C(0x0000000000000009, 0x62d19979c42bef6c), + RTUINT128_INIT_C(0x0000000000000000, 0x000000000088e924), RTUINT128_INIT_C(0x0000000000000005, 0xd0611077333eb1d9) + }, + { /* i=849; 76 / 81 */ + RTUINT128_INIT_C(0x00000000000007de, 0x0374a950086f8358), RTUINT128_INIT_C(0x0000000000005d5f, 0x304894c62e344beb), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x00000000000007de, 0x0374a950086f8358) + }, + { /* i=850; 119 / 127 */ + RTUINT128_INIT_C(0x0017f6790d08aa73, 0xf4cd002ece759744), RTUINT128_INIT_C(0x7d914b3884b60401, 0xee1cfef0124ceb60), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x0017f6790d08aa73, 0xf4cd002ece759744) + }, + { /* i=851; 128 / 84 */ + RTUINT128_INIT_C(0x515dfe3fb48a6ce3, 0x100741b09a042d7b), RTUINT128_INIT_C(0x000000000003b3ad, 0xb065c25f4d7170c1), + RTUINT128_INIT_C(0x0000000000000000, 0x000015fae2af85a6), RTUINT128_INIT_C(0x000000000003a009, 0xdf83ad17fcf1cb55) + }, + { /* i=852; 73 / 70 */ + RTUINT128_INIT_C(0x00000000000000cd, 0xf86dcc9d5514db59), RTUINT128_INIT_C(0x0000000000000018, 0x46d1274070eff159), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000008), RTUINT128_INIT_C(0x000000000000000b, 0xc1e49299cd955091) + }, + { /* i=853; 110 / 109 */ + RTUINT128_INIT_C(0x00000919169fb592, 0x1f6d83b14e35dc82), RTUINT128_INIT_C(0x00000bcf1fb65e2d, 0x6db6592ab519f35c), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x00000919169fb592, 0x1f6d83b14e35dc82) + }, + { /* i=854; 107 / 92 */ + RTUINT128_INIT_C(0x0000024110ef431b, 0xd432517023685fae), RTUINT128_INIT_C(0x000000000bb493bf, 0x6079983692ed5725), + RTUINT128_INIT_C(0x0000000000000000, 0x000000000000314c), RTUINT128_INIT_C(0x00000000070bc4d3, 0xe9f6af1d17446bb2) + }, + { /* i=855; 123 / 110 */ + RTUINT128_INIT_C(0x002a155b6c6a3e65, 0x7f4211241dc78405), RTUINT128_INIT_C(0x000022bb0334880f, 0x62ccf1f029056377), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000136), RTUINT128_INIT_C(0x000006e58acd7bc3, 0xdb151852714111eb) + }, + { /* i=856; 128 / 71 */ + RTUINT128_INIT_C(0xa6fdcaa3e2c21a90, 0x119aa2059c0b1091), RTUINT128_INIT_C(0x0000000000000069, 0xd9ff0b3f5fbf247f), + RTUINT128_INIT_C(0x0000000000000000, 0x0193dd9369fef503), RTUINT128_INIT_C(0x0000000000000014, 0xd582dc1a41de1814) + }, + { /* i=857; 60 / 51 */ + RTUINT128_INIT_C(0x0000000000000000, 0x0e1f8906ad5fc509), RTUINT128_INIT_C(0x0000000000000000, 0x0003f795adbc7038), + RTUINT128_INIT_C(0x0000000000000000, 0x000000000000038f), RTUINT128_INIT_C(0x0000000000000000, 0x00017b616bcc6dc1) + }, + { /* i=858; 96 / 81 */ + RTUINT128_INIT_C(0x00000000b87e181d, 0xc03626e09e5dcc3f), RTUINT128_INIT_C(0x0000000000014860, 0x8b5a93b7800d12bd), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000008fd4), RTUINT128_INIT_C(0x0000000000003a52, 0xc0b052634612b4bb) + }, + { /* i=859; 123 / 64 */ + RTUINT128_INIT_C(0x05b4da6e5941cdac, 0xa9d88bc655b56ddd), RTUINT128_INIT_C(0x0000000000000000, 0x4d74552ee44e435d), + RTUINT128_INIT_C(0x0000000000000000, 0x12dc5e179202eb26), RTUINT128_INIT_C(0x0000000000000000, 0x4a1f3cda09870f0f) + }, + { /* i=860; 77 / 61 */ + RTUINT128_INIT_C(0x00000000000019a2, 0xf127e5f983c6dcf8), RTUINT128_INIT_C(0x0000000000000000, 0x01574d8401e01d6d), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000131df8), RTUINT128_INIT_C(0x0000000000000000, 0x0000b63f203e0260) + }, + { /* i=861; 128 / 76 */ + RTUINT128_INIT_C(0x9b86ba99dd165598, 0x27a3fbfa2394216d), RTUINT128_INIT_C(0x0000000000000fc8, 0x570dad7e0b30a73c), + RTUINT128_INIT_C(0x0000000000000000, 0x0009dab38042234b), RTUINT128_INIT_C(0x000000000000005a, 0xe548af6817fdeed9) + }, + { /* i=862; 61 / 30 */ + RTUINT128_INIT_C(0x0000000000000000, 0x1683571e2f88cb96), RTUINT128_INIT_C(0x0000000000000000, 0x000000003f13af1f), + RTUINT128_INIT_C(0x0000000000000000, 0x000000005b5ebd4a), RTUINT128_INIT_C(0x0000000000000000, 0x00000000192c49a0) + }, + { /* i=863; 122 / 75 */ + RTUINT128_INIT_C(0x023ef8ce982f5cee, 0x5e9c4d0bf1f320bf), RTUINT128_INIT_C(0x0000000000000190, 0x8d8bc8887c278f76), + RTUINT128_INIT_C(0x0000000000000000, 0x00016f795c395eb1), RTUINT128_INIT_C(0x0000000000000153, 0x14f5b3f43aa59c29) + }, + { /* i=864; 17 / 109 */ + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000015ed2), RTUINT128_INIT_C(0x0000108deae44e32, 0x82ccbb87280413e0), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000015ed2) + }, + { /* i=865; 116 / 65 */ + RTUINT128_INIT_C(0x000586827343bf8a, 0x9445086bccd2dc32), RTUINT128_INIT_C(0x0000000000000000, 0x351593581ac32634), + RTUINT128_INIT_C(0x0000000000000000, 0x001aa5802e1b76f7), RTUINT128_INIT_C(0x0000000000000000, 0x00f4c0a1a7710806) + }, + { /* i=866; 123 / 53 */ + RTUINT128_INIT_C(0x03eda7d10292fefe, 0x42cbf462ce0a07b4), RTUINT128_INIT_C(0x0000000000000000, 0x00166c354c0cf1ae), + RTUINT128_INIT_C(0x000000000000002c, 0xd993a6fc7a99852e), RTUINT128_INIT_C(0x0000000000000000, 0x0015781b0d293470) + }, + { /* i=867; 124 / 58 */ + RTUINT128_INIT_C(0x07c48141e9cf2392, 0x97a4d35d134d12ba), RTUINT128_INIT_C(0x0000000000000000, 0x033637c38237d963), + RTUINT128_INIT_C(0x0000000000000002, 0x6b2083250acf03b5), RTUINT128_INIT_C(0x0000000000000000, 0x01cb8da5b53736bb) + }, + { /* i=868; 76 / 67 */ + RTUINT128_INIT_C(0x000000000000046d, 0xb2a2e5bb73ca5144), RTUINT128_INIT_C(0x0000000000000004, 0x789314e1644deeca), + RTUINT128_INIT_C(0x0000000000000000, 0x00000000000000fd), RTUINT128_INIT_C(0x0000000000000002, 0x894742fb52c553a2) + }, + { /* i=869; 122 / 107 */ + RTUINT128_INIT_C(0x0040c8aa987749dd, 0xc2f933dd7f4a0bec), RTUINT128_INIT_C(0x00000262344f97eb, 0xec19965e9340db4c), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000001b2d), RTUINT128_INIT_C(0x000001e30173b37e, 0x8f9dcbb5c5c27b90) + }, + { /* i=870; 114 / 81 */ + RTUINT128_INIT_C(0x00038315acbaa2fd, 0xe38b01680f185060), RTUINT128_INIT_C(0x000000000000603d, 0x3c5d57858ad6c71d), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000957999883), RTUINT128_INIT_C(0x0000000000002797, 0x0143f595a1a23489) + }, + { /* i=871; 125 / 114 */ + RTUINT128_INIT_C(0x0b73c17efb699a15, 0x7e744532054ff372), RTUINT128_INIT_C(0x00002f1d3d5f6d89, 0x19a261c5de8ca0d5), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000003e3a), RTUINT128_INIT_C(0x00000001f74394d0, 0x5bfc32778a7fed30) + }, + { /* i=872; 127 / 105 */ + RTUINT128_INIT_C(0x3dd9516bbb955aea, 0xed2caf30c3b8275b), RTUINT128_INIT_C(0x000000d259171a30, 0x892815bbb8f60f7c), + RTUINT128_INIT_C(0x0000000000000000, 0x00000000004b45a2), RTUINT128_INIT_C(0x0000008774af847d, 0xf5f42574dc81eee3) + }, + { /* i=873; 119 / 11 */ + RTUINT128_INIT_C(0x0071f986ede987d8, 0x4d8e8093c2dd521b), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000708), + RTUINT128_INIT_C(0x00001035b1574fdc, 0xb4f3230edf8a1419), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000253) + }, + { /* i=874; 74 / 16 */ + RTUINT128_INIT_C(0x0000000000000148, 0x369125fe98a183f4), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000c3a), + RTUINT128_INIT_C(0x0000000000000000, 0x1ad8221e42f3c881), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000aba) + }, + { /* i=875; 117 / 12 */ + RTUINT128_INIT_C(0x001dfc35c7458d05, 0x4cd6ebb14ffa9e88), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000fcb), + RTUINT128_INIT_C(0x000001e60d68dfbd, 0xf59241e90f16fbcb), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000f8f) + }, + { /* i=876; 114 / 124 */ + RTUINT128_INIT_C(0x0002a721e3cb4146, 0xe87aaabe65cd4d99), RTUINT128_INIT_C(0x0d7203b84ad15ce2, 0x4decffc6b0048932), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x0002a721e3cb4146, 0xe87aaabe65cd4d99) + }, + { /* i=877; 126 / 93 */ + RTUINT128_INIT_C(0x2e9c4c09c77b75d1, 0xea5d479ab39c4056), RTUINT128_INIT_C(0x000000001c117290, 0xf071e4bcf78a009b), + RTUINT128_INIT_C(0x0000000000000000, 0x00000001a91e6277), RTUINT128_INIT_C(0x00000000015a7650, 0x06c27fd36910a249) + }, + { /* i=878; 121 / 54 */ + RTUINT128_INIT_C(0x00a3c60d64225f43, 0xfae050da797b702e), RTUINT128_INIT_C(0x0000000000000000, 0x00071d6192c4253b), + RTUINT128_INIT_C(0x0000000000000017, 0x04d1a8e1e22c8749), RTUINT128_INIT_C(0x0000000000000000, 0x0005a832b3c6b55b) + }, + { /* i=879; 127 / 95 */ + RTUINT128_INIT_C(0x5798ab73e0d5a4e9, 0x02181375c98f0df8), RTUINT128_INIT_C(0x00000000233956e9, 0x00a984d1efb56cbf), + RTUINT128_INIT_C(0x0000000000000000, 0x000000027ca177ba), RTUINT128_INIT_C(0x000000001b979fb9, 0xa2a1813c62124232) + }, + { /* i=880; 16 / 58 */ + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000009782), RTUINT128_INIT_C(0x0000000000000000, 0x037efd703d70765a), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000009782) + }, + { /* i=881; 102 / 9 */ + RTUINT128_INIT_C(0x0000002472ec7b6e, 0x3afcdccc376968e5), RTUINT128_INIT_C(0x0000000000000000, 0x000000000000009e), + RTUINT128_INIT_C(0x000000003b0e7570, 0x7ec0ca4f108da111), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000067) + }, + { /* i=882; 98 / 48 */ + RTUINT128_INIT_C(0x0000000015655a9b, 0x27a4b413cae707fd), RTUINT128_INIT_C(0x0000000000000000, 0x0000ceec817af55c), + RTUINT128_INIT_C(0x0000000000000000, 0x00001a786b218da2), RTUINT128_INIT_C(0x0000000000000000, 0x00000e920d1817c5) + }, + { /* i=883; 118 / 5 */ + RTUINT128_INIT_C(0x00332d48cdf3325a, 0x8e99bb800d0fc880), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000013), + RTUINT128_INIT_C(0x0002b18a91938963, 0x14fa9e1436950a8d), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000009) + }, + { /* i=884; 123 / 109 */ + RTUINT128_INIT_C(0x04cb09ed1a425ff3, 0xe50bd1d53a94a1cb), RTUINT128_INIT_C(0x00001a41a8b6fdbb, 0x80966cdebbd6c0bd), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000002ebb), RTUINT128_INIT_C(0x00000fa5faff56e1, 0xef9a45616e13e1bc) + }, + { /* i=885; 122 / 93 */ + RTUINT128_INIT_C(0x020ca26b41bc7b77, 0xb492325c4d2c652c), RTUINT128_INIT_C(0x0000000003d29bd0, 0xadfc95d8e8f8313a), + RTUINT128_INIT_C(0x0000000000000000, 0x00000000893e01ca), RTUINT128_INIT_C(0x00000000014b68c3, 0x0f78ddd78b185368) + }, + { /* i=886; 38 / 21 */ + RTUINT128_INIT_C(0x0000000000000000, 0x0000003a4b7ad1b3), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000194fe8), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000024d93), RTUINT128_INIT_C(0x0000000000000000, 0x000000000019277b) + }, + { /* i=887; 114 / 123 */ + RTUINT128_INIT_C(0x0000a6d386cbfb92, 0x231a544f37f87f02), RTUINT128_INIT_C(0x07633a13382450ca, 0x9768532f41417f66), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x0000a6d386cbfb92, 0x231a544f37f87f02) + }, + { /* i=888; 114 / 59 */ + RTUINT128_INIT_C(0x0000a26eb3987962, 0x39928e3a187f7373), RTUINT128_INIT_C(0x0000000000000000, 0x075ce056b136e000), + RTUINT128_INIT_C(0x0000000000000000, 0x00160fad2afea4e8), RTUINT128_INIT_C(0x0000000000000000, 0x056380f017447373) + }, + { /* i=889; 125 / 123 */ + RTUINT128_INIT_C(0x0002a4888a58787d, 0xb21d3c940a46a94a), RTUINT128_INIT_C(0x05fc63c1ce763265, 0xce68ce02cc7c6442), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x0002a4888a58787d, 0xb21d3c940a46a94a) + }, + { /* i=890; 46 / 43 */ + RTUINT128_INIT_C(0x0000000000000000, 0x0000181d447ba295), RTUINT128_INIT_C(0x0000000000000000, 0x000007b7ad58d1f6), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000003), RTUINT128_INIT_C(0x0000000000000000, 0x000000f63c712cb3) + }, + { /* i=891; 118 / 70 */ + RTUINT128_INIT_C(0x003ea26ecc346258, 0xd65b166d513b8473), RTUINT128_INIT_C(0x0000000000000028, 0xcfdd08132e9a7747), + RTUINT128_INIT_C(0x0000000000000000, 0x000188e2b4e54e98), RTUINT128_INIT_C(0x0000000000000016, 0xb1b9221df6aa104b) + }, + { /* i=892; 41 / 24 */ + RTUINT128_INIT_C(0x0000000000000000, 0x000001384c109ee1), RTUINT128_INIT_C(0x0000000000000000, 0x000000000084897e), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000025b36), RTUINT128_INIT_C(0x0000000000000000, 0x00000000003fd44d) + }, + { /* i=893; 122 / 37 */ + RTUINT128_INIT_C(0x0210ea8265777438, 0xbf55d6a9100517c0), RTUINT128_INIT_C(0x0000000000000000, 0x0000001ce696c79e), + RTUINT128_INIT_C(0x0000000000124d16, 0x984ad1027ef83b46), RTUINT128_INIT_C(0x0000000000000000, 0x000000101db9188c) + }, + { /* i=894; 113 / 80 */ + RTUINT128_INIT_C(0x00008cb1caddb0cf, 0xbce88c1c4e2ebea5), RTUINT128_INIT_C(0x0000000000001792, 0xf2a56b5b53562410), + RTUINT128_INIT_C(0x0000000000000000, 0x00000005f7dc2324), RTUINT128_INIT_C(0x0000000000000f72, 0xff6587bd61637c65) + }, + { /* i=895; 114 / 127 */ + RTUINT128_INIT_C(0x00010d118fe66025, 0x00cd9199e440b79a), RTUINT128_INIT_C(0x74865b55ab5a627f, 0x28fad0437943f847), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x00010d118fe66025, 0x00cd9199e440b79a) + }, + { /* i=896; 72 / 119 */ + RTUINT128_INIT_C(0x000000000000000a, 0x28d5372d6ef0ef0a), RTUINT128_INIT_C(0x005a23c78969fe52, 0x8b27ac66e1645db7), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x000000000000000a, 0x28d5372d6ef0ef0a) + }, + { /* i=897; 115 / 44 */ + RTUINT128_INIT_C(0x0007fe8b46c51df8, 0xd5e0b7703f75d79d), RTUINT128_INIT_C(0x0000000000000000, 0x0000005560dd6328), + RTUINT128_INIT_C(0x00000000000017f8, 0x64979579842feec5), RTUINT128_INIT_C(0x0000000000000000, 0x000000010e9159d5) + }, + { /* i=898; 105 / 90 */ + RTUINT128_INIT_C(0x0000000e30c099f2, 0x3333b156aade134f), RTUINT128_INIT_C(0x0000000000feb7e8, 0x4a66a0911cad4d4e), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000e43), RTUINT128_INIT_C(0x000000000007c415, 0x1d8fbbcaaf4893e5) + }, + { /* i=899; 124 / 110 */ + RTUINT128_INIT_C(0x00577285979154be, 0x6e82beede00102e4), RTUINT128_INIT_C(0x00000f682e9f7975, 0x7cf537fb200496b2), + RTUINT128_INIT_C(0x0000000000000000, 0x00000000000005ad), RTUINT128_INIT_C(0x00000034f86cf4e8, 0x32b4029925f5b29a) + }, + { /* i=900; 116 / 123 */ + RTUINT128_INIT_C(0x00009ec413a4a4b2, 0xc6618d4bb5b691a8), RTUINT128_INIT_C(0x05fdf83538c0b8b2, 0xd6ea6017947d99dd), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x00009ec413a4a4b2, 0xc6618d4bb5b691a8) + }, + { /* i=901; 119 / 54 */ + RTUINT128_INIT_C(0x005fda265f57b537, 0xde3da2dc6d2a2990), RTUINT128_INIT_C(0x0000000000000000, 0x0003639434195d7f), + RTUINT128_INIT_C(0x000000000000001c, 0x48920f2a2e629a58), RTUINT128_INIT_C(0x0000000000000000, 0x0001f83aa5959fe8) + }, + { /* i=902; 118 / 74 */ + RTUINT128_INIT_C(0x00108820d3dbc845, 0xf5e427f7e6e297fc), RTUINT128_INIT_C(0x000000000000001f, 0x1d3042036936f232), + RTUINT128_INIT_C(0x0000000000000000, 0x000088051dc9e8d1), RTUINT128_INIT_C(0x0000000000000016, 0xef550b4762478d2a) + }, + { /* i=903; 125 / 99 */ + RTUINT128_INIT_C(0x0d3ff6b775f8f414, 0xe2563270953a1492), RTUINT128_INIT_C(0x000000068af0a054, 0xef3fa11bd831bdb2), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000002066ea1), RTUINT128_INIT_C(0x0000000243e3851d, 0x15c0746268434ba0) + }, + { /* i=904; 120 / 69 */ + RTUINT128_INIT_C(0x00dab88d2a846a1f, 0x99009e57ea1c0633), RTUINT128_INIT_C(0x000000000000000a, 0x22fd74969be1058d), + RTUINT128_INIT_C(0x0000000000000000, 0x001593c1a8ce5f04), RTUINT128_INIT_C(0x0000000000000001, 0x27e3a720fa129cff) + }, + { /* i=905; 120 / 29 */ + RTUINT128_INIT_C(0x004aa9876d56d846, 0x349f53265d65c17f), RTUINT128_INIT_C(0x0000000000000000, 0x000000001ba0b633), + RTUINT128_INIT_C(0x0000000002b3d2a4, 0xea161e1cb2ede899), RTUINT128_INIT_C(0x0000000000000000, 0x000000001203a504) + }, + { /* i=906; 126 / 42 */ + RTUINT128_INIT_C(0x341fffa482226130, 0xfff5886c9183f7ca), RTUINT128_INIT_C(0x0000000000000000, 0x0000008bf0f45298), + RTUINT128_INIT_C(0x00000000005f5ab3, 0xc2cb87516e317381), RTUINT128_INIT_C(0x0000000000000000, 0x0000005146341132) + }, + { /* i=907; 122 / 36 */ + RTUINT128_INIT_C(0x01ee010195dc23d1, 0xaa57799631222a48), RTUINT128_INIT_C(0x0000000000000000, 0x0000000be0702db4), + RTUINT128_INIT_C(0x0000000000299826, 0x5da62f4c8a3f6f22), RTUINT128_INIT_C(0x0000000000000000, 0x00000003771f0c60) + }, + { /* i=908; 123 / 78 */ + RTUINT128_INIT_C(0x060f0ecbd72949f8, 0x83c068fd1e44cede), RTUINT128_INIT_C(0x00000000000035e2, 0x930d9e621126bb15), + RTUINT128_INIT_C(0x0000000000000000, 0x00001cc8d91e7200), RTUINT128_INIT_C(0x0000000000002725, 0x207871d3257f74de) + }, + { /* i=909; 124 / 12 */ + RTUINT128_INIT_C(0x026e3756a6e4d2a6, 0xfbd55d62c21a1971), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000247), + RTUINT128_INIT_C(0x000111385abe1651, 0x1511ee2820d3b1e1), RTUINT128_INIT_C(0x0000000000000000, 0x000000000000020a) + }, + { /* i=910; 123 / 127 */ + RTUINT128_INIT_C(0x04f48ca33b13e200, 0x2425041c29ca3966), RTUINT128_INIT_C(0x266a73457eb685da, 0xe9ac396508a7b658), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x04f48ca33b13e200, 0x2425041c29ca3966) + }, + { /* i=911; 73 / 37 */ + RTUINT128_INIT_C(0x000000000000015a, 0xc03220e4478d8828), RTUINT128_INIT_C(0x0000000000000000, 0x0000000e5eb702db), + RTUINT128_INIT_C(0x0000000000000000, 0x0000001821560809), RTUINT128_INIT_C(0x0000000000000000, 0x0000000c0a759675) + }, + { /* i=912; 114 / 109 */ + RTUINT128_INIT_C(0x00014f3e2f25e1a9, 0xeda1a25bde99c543), RTUINT128_INIT_C(0x0000047d243c7a43, 0xc2ada9f7d9b2c340), + RTUINT128_INIT_C(0x0000000000000000, 0x000000000000004a), RTUINT128_INIT_C(0x00000311b5aa8a13, 0xa76e80b6f0ed54c3) + }, + { /* i=913; 82 / 35 */ + RTUINT128_INIT_C(0x0000000000037e0d, 0xee9e92cb637cc290), RTUINT128_INIT_C(0x0000000000000000, 0x000000036f37a581), + RTUINT128_INIT_C(0x0000000000000000, 0x00010451f07b763c), RTUINT128_INIT_C(0x0000000000000000, 0x00000003372d8254) + }, + { /* i=914; 62 / 118 */ + RTUINT128_INIT_C(0x0000000000000000, 0x112b63068667d40a), RTUINT128_INIT_C(0x002785fae2e5eff3, 0x4ed1bd0a1bb5ef97), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x0000000000000000, 0x112b63068667d40a) + }, + { /* i=915; 39 / 33 */ + RTUINT128_INIT_C(0x0000000000000000, 0x0000007df3f118af), RTUINT128_INIT_C(0x0000000000000000, 0x000000018be2017c), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000051), RTUINT128_INIT_C(0x0000000000000000, 0x00000000b16ea073) + }, + { /* i=916; 118 / 107 */ + RTUINT128_INIT_C(0x0025abaa1abf05c4, 0x6d23c6b4b724aaf6), RTUINT128_INIT_C(0x000006f15ad081b5, 0xa9c7f2ea66d533fc), + RTUINT128_INIT_C(0x0000000000000000, 0x000000000000056d), RTUINT128_INIT_C(0x000000205d6f3f1a, 0x3b42c4e4c4599caa) + }, + { /* i=917; 57 / 9 */ + RTUINT128_INIT_C(0x0000000000000000, 0x01a210701ea88296), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000085), + RTUINT128_INIT_C(0x0000000000000000, 0x000324b1ecfb7e18), RTUINT128_INIT_C(0x0000000000000000, 0x000000000000001e) + }, + { /* i=918; 59 / 20 */ + RTUINT128_INIT_C(0x0000000000000000, 0x064b2c21c0b07108), RTUINT128_INIT_C(0x0000000000000000, 0x00000000000d7eaa), + RTUINT128_INIT_C(0x0000000000000000, 0x00000077646acec4), RTUINT128_INIT_C(0x0000000000000000, 0x00000000000aaae0) + }, + { /* i=919; 121 / 88 */ + RTUINT128_INIT_C(0x014558a900a837c7, 0x02a458a40df59bd0), RTUINT128_INIT_C(0x00000000001a3920, 0xb5553d05bd63c3db), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000c682641bf), RTUINT128_INIT_C(0x000000000011e29e, 0xcf1589a16149e06b) + }, + { /* i=920; 99 / 75 */ + RTUINT128_INIT_C(0x0000000136a26010, 0xcbb097fff8fe0ea6), RTUINT128_INIT_C(0x00000000000003ec, 0x3615f1f84ea76f00), + RTUINT128_INIT_C(0x0000000000000000, 0x00000000004f305b), RTUINT128_INIT_C(0x000000000000002f, 0xc8e4c0515da999a6) + }, + { /* i=921; 122 / 123 */ + RTUINT128_INIT_C(0x0377c894d2709b37, 0x9965068787999f8c), RTUINT128_INIT_C(0x05d0760676b0687a, 0xa601e733473f481d), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x0377c894d2709b37, 0x9965068787999f8c) + }, + { /* i=922; 15 / 7 */ + RTUINT128_INIT_C(0x0000000000000000, 0x000000000000325d), RTUINT128_INIT_C(0x0000000000000000, 0x000000000000001c), + RTUINT128_INIT_C(0x0000000000000000, 0x00000000000001cc), RTUINT128_INIT_C(0x0000000000000000, 0x000000000000000d) + }, + { /* i=923; 127 / 71 */ + RTUINT128_INIT_C(0x17234af24bb59670, 0x986c578731b27e3c), RTUINT128_INIT_C(0x000000000000000c, 0x570466d9311d05a3), + RTUINT128_INIT_C(0x0000000000000000, 0x01e002cfbbef9517), RTUINT128_INIT_C(0x0000000000000007, 0x0962ce6a8fa21d97) + }, + { /* i=924; 121 / 122 */ + RTUINT128_INIT_C(0x015753407df52c58, 0xecf90c33785ef5d7), RTUINT128_INIT_C(0x026d7f14e1da24ab, 0x40b3c2887e2d7a6e), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x015753407df52c58, 0xecf90c33785ef5d7) + }, + { /* i=925; 19 / 19 */ + RTUINT128_INIT_C(0x0000000000000000, 0x000000000000d380), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000020272), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x0000000000000000, 0x000000000000d380) + }, + { /* i=926; 128 / 93 */ + RTUINT128_INIT_C(0x3d5f56cac5aafbf3, 0x262811acd4b62451), RTUINT128_INIT_C(0x000000001b052045, 0x3511f03eced64505), + RTUINT128_INIT_C(0x0000000000000000, 0x000000024578602c), RTUINT128_INIT_C(0x0000000002cce580, 0x241dfa3c3aa86775) + }, + { /* i=927; 118 / 102 */ + RTUINT128_INIT_C(0x003bdb258547cc64, 0x32026ce741e962b1), RTUINT128_INIT_C(0x0000000537194ccf, 0xab9c6c2875087711), + RTUINT128_INIT_C(0x0000000000000000, 0x00000000000b7a27), RTUINT128_INIT_C(0x00000001c4e5c13f, 0xdbe5a39a4726251a) + }, + { /* i=928; 35 / 87 */ + RTUINT128_INIT_C(0x0000000000000000, 0x00000000ed734375), RTUINT128_INIT_C(0x00000000007cdf72, 0x722e1f2dc5af3415), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x0000000000000000, 0x00000000ed734375) + }, + { /* i=929; 102 / 81 */ + RTUINT128_INIT_C(0x0000001d7305c86e, 0x00f7ac630e1fd31d), RTUINT128_INIT_C(0x000000000001d4cd, 0xea8ce77f011f2181), + RTUINT128_INIT_C(0x0000000000000000, 0x00000000001014d5), RTUINT128_INIT_C(0x000000000000f9f8, 0x5fb511ae988adec8) + }, + { /* i=930; 121 / 30 */ + RTUINT128_INIT_C(0x01abd2a461c3968d, 0x95147ec3f38d4d73), RTUINT128_INIT_C(0x0000000000000000, 0x0000000023f7d3d7), + RTUINT128_INIT_C(0x000000000be4feef, 0x05283fd79e2191f6), RTUINT128_INIT_C(0x0000000000000000, 0x0000000003b3f5d9) + }, + { /* i=931; 126 / 116 */ + RTUINT128_INIT_C(0x2b1009eafdcb01d4, 0xbcd82d3cd9756afd), RTUINT128_INIT_C(0x000b531575296889, 0xd5de2851e6707966), + RTUINT128_INIT_C(0x0000000000000000, 0x00000000000003cd), RTUINT128_INIT_C(0x0005415caf68adf2, 0xdf78edf3fff8024f) + }, + { /* i=932; 62 / 48 */ + RTUINT128_INIT_C(0x0000000000000000, 0x1ea5bb672061c04d), RTUINT128_INIT_C(0x0000000000000000, 0x0000b4341ed6ce47), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000002b89), RTUINT128_INIT_C(0x0000000000000000, 0x00008a548ac76f4e) + }, + { /* i=933; 127 / 69 */ + RTUINT128_INIT_C(0x247b8cae6c7b24c2, 0x7039f5f2296f11be), RTUINT128_INIT_C(0x000000000000000e, 0xdfdd0aae0913f0e4), + RTUINT128_INIT_C(0x0000000000000000, 0x0273e43250829c0e), RTUINT128_INIT_C(0x0000000000000007, 0x298e5ef5efc4f546) + }, + { /* i=934; 128 / 104 */ + RTUINT128_INIT_C(0x2846ae6433943afa, 0x3c678b01e1719a5f), RTUINT128_INIT_C(0x0000001a9001a58c, 0x674bbd075532f079), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000001842a9c), RTUINT128_INIT_C(0x00000015449dc1ae, 0x5e20055b238f36a3) + }, + { /* i=935; 36 / 36 */ + RTUINT128_INIT_C(0x0000000000000000, 0x00000006680c1cc1), RTUINT128_INIT_C(0x0000000000000000, 0x0000000983e5042c), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x0000000000000000, 0x00000006680c1cc1) + }, + { /* i=936; 81 / 5 */ + RTUINT128_INIT_C(0x0000000000014709, 0x03aba5184198b2ef), RTUINT128_INIT_C(0x0000000000000000, 0x000000000000001e), + RTUINT128_INIT_C(0x0000000000000ae6, 0xb3528580cefc8e7f), RTUINT128_INIT_C(0x0000000000000000, 0x000000000000000d) + }, + { /* i=937; 113 / 122 */ + RTUINT128_INIT_C(0x0000e3b3f90bf466, 0xed893d06bb4ba05a), RTUINT128_INIT_C(0x0222f8f2316e90bc, 0x645ea2b9daed832e), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x0000e3b3f90bf466, 0xed893d06bb4ba05a) + }, + { /* i=938; 105 / 42 */ + RTUINT128_INIT_C(0x000000e227ae08d2, 0x1059ac98fad81c5b), RTUINT128_INIT_C(0x0000000000000000, 0x000001b8443e11d8), + RTUINT128_INIT_C(0x0000000000000000, 0x83805d1f51de8fc0), RTUINT128_INIT_C(0x0000000000000000, 0x000001a64f03125b) + }, + { /* i=939; 86 / 73 */ + RTUINT128_INIT_C(0x0000000000161d84, 0x412fe40c60d5578c), RTUINT128_INIT_C(0x00000000000001de, 0xd08aa0d173231849), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000bd2), RTUINT128_INIT_C(0x00000000000001c7, 0x3a8ef8496c0048aa) + }, + { /* i=940; 120 / 60 */ + RTUINT128_INIT_C(0x009d2e3602220326, 0x16327694c8660daa), RTUINT128_INIT_C(0x0000000000000000, 0x00dc1d6b463dfc58), + RTUINT128_INIT_C(0x0000000000000000, 0xb6ce334124baaac2), RTUINT128_INIT_C(0x0000000000000000, 0x003693c6abea62fa) + }, + { /* i=941; 123 / 72 */ + RTUINT128_INIT_C(0x0757eec20087d71d, 0xfb5993e58252031e), RTUINT128_INIT_C(0x00000000000000e5, 0x64cd9d7186030961), + RTUINT128_INIT_C(0x0000000000000000, 0x000831fa05e5fc31), RTUINT128_INIT_C(0x000000000000005e, 0x7c0d079f95bcbb8d) + }, + { /* i=942; 105 / 50 */ + RTUINT128_INIT_C(0x000001457294a5b9, 0xac03f27393581279), RTUINT128_INIT_C(0x0000000000000000, 0x00022e8896c72a1c), + RTUINT128_INIT_C(0x0000000000000000, 0x00952aa9ceaa8583), RTUINT128_INIT_C(0x0000000000000000, 0x0001639873f4fa25) + }, + { /* i=943; 120 / 119 */ + RTUINT128_INIT_C(0x00e5cd836ae11ce2, 0x465b788c7e17af7d), RTUINT128_INIT_C(0x001b6a75c62592f8, 0x9e39fc636f7db649), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000008), RTUINT128_INIT_C(0x000a79d539b4851d, 0x548b95710229fd35) + }, + { /* i=944; 63 / 53 */ + RTUINT128_INIT_C(0x0000000000000000, 0x6e2952d73b761cef), RTUINT128_INIT_C(0x0000000000000000, 0x0009012f15392049), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000c3b), RTUINT128_INIT_C(0x0000000000000000, 0x0007d7fea9c8401c) + }, + { /* i=945; 6 / 110 */ + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000005), RTUINT128_INIT_C(0x00003b81898fb2f8, 0xb1b7c24d26dad26a), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000005) + }, + { /* i=946; 54 / 31 */ + RTUINT128_INIT_C(0x0000000000000000, 0x003d58a5e233271d), RTUINT128_INIT_C(0x0000000000000000, 0x0000000046bcc651), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000de036b), RTUINT128_INIT_C(0x0000000000000000, 0x0000000020bb5042) + }, + { /* i=947; 97 / 80 */ + RTUINT128_INIT_C(0x000000015c2935d3, 0x9db6da7e5f6ad39d), RTUINT128_INIT_C(0x0000000000008a80, 0xc451c9cd9889df7b), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000028384), RTUINT128_INIT_C(0x0000000000005e54, 0xf5ab66596c01a731) + }, + { /* i=948; 92 / 78 */ + RTUINT128_INIT_C(0x000000000ddf9ee2, 0x197a71fa6abb1cff), RTUINT128_INIT_C(0x0000000000003e4a, 0xdd300481b9e4516c), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000003903), RTUINT128_INIT_C(0x00000000000038c1, 0xd0e9821166ed1cbb) + }, + { /* i=949; 116 / 108 */ + RTUINT128_INIT_C(0x000069fa4cf87f79, 0x9d71e83b0f0d3578), RTUINT128_INIT_C(0x000004740ba6132d, 0x80e4036fa8601c29), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000017), RTUINT128_INIT_C(0x0000038d410cc663, 0x08f59932ee6aadc9) + }, + { /* i=950; 93 / 68 */ + RTUINT128_INIT_C(0x000000001dc8d4a3, 0x8a75582b10a5f640), RTUINT128_INIT_C(0x000000000000000f, 0xfa3c871a887ca5fe), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000001dd3932), RTUINT128_INIT_C(0x0000000000000005, 0x741dbc575d11fca4) + }, + { /* i=951; 124 / 35 */ + RTUINT128_INIT_C(0x020920d202c33a83, 0x9f0938bec0e19284), RTUINT128_INIT_C(0x0000000000000000, 0x000000077e56f4d0), + RTUINT128_INIT_C(0x0000000000458b3c, 0xf5ffa59726cd7db8), RTUINT128_INIT_C(0x0000000000000000, 0x0000000292480d04) + }, + { /* i=952; 114 / 12 */ + RTUINT128_INIT_C(0x0000f5bf22e6b9c7, 0x5344e402e8a6f7ec), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000dff), + RTUINT128_INIT_C(0x000000118ee8210f, 0xa1a3c779f6a23c16), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000002) + }, + { /* i=953; 60 / 46 */ + RTUINT128_INIT_C(0x0000000000000000, 0x039e43e82a9e4ca7), RTUINT128_INIT_C(0x0000000000000000, 0x000017194190c252), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000002819), RTUINT128_INIT_C(0x0000000000000000, 0x00001032251e82a5) + }, + { /* i=954; 127 / 97 */ + RTUINT128_INIT_C(0x388abcb601a296f6, 0xb8d423752fb4dd20), RTUINT128_INIT_C(0x00000001f1493244, 0x3fe0aa132d21fb9b), + RTUINT128_INIT_C(0x0000000000000000, 0x000000001d1b836c), RTUINT128_INIT_C(0x00000001b9994585, 0xb2e1f72fa94566bc) + }, + { /* i=955; 114 / 91 */ + RTUINT128_INIT_C(0x000063d74548177b, 0x5591de62a8ee4d4f), RTUINT128_INIT_C(0x0000000001caf367, 0xb356737882c644ed), + RTUINT128_INIT_C(0x0000000000000000, 0x000000000037b0ce), RTUINT128_INIT_C(0x000000000159672a, 0xc7ba00e84f14e699) + }, + { /* i=956; 118 / 61 */ + RTUINT128_INIT_C(0x000e9bbb84f85161, 0x49bc48283c79ad0e), RTUINT128_INIT_C(0x0000000000000000, 0x0fa09f8f68b5efe1), + RTUINT128_INIT_C(0x0000000000000000, 0x00ef4e3b38825387), RTUINT128_INIT_C(0x0000000000000000, 0x0e7dd4dcff803a67) + }, + { /* i=957; 120 / 109 */ + RTUINT128_INIT_C(0x0097d00af00c1813, 0xb3099e807e0d4b20), RTUINT128_INIT_C(0x000014dddec74574, 0x6fda3ee201884f71), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000746), RTUINT128_INIT_C(0x00000a4892a8eb2e, 0x25a43ea9589b7b3a) + }, + { /* i=958; 66 / 3 */ + RTUINT128_INIT_C(0x0000000000000000, 0x39ee02cd3210a416), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000002), + RTUINT128_INIT_C(0x0000000000000000, 0x1cf701669908520b), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000) + }, + { /* i=959; 112 / 5 */ + RTUINT128_INIT_C(0x0000d3147c6f9f01, 0xea36500d80c0304f), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000003), + RTUINT128_INIT_C(0x0000465c297a8a55, 0xf8bcc559d595656f), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000002) + }, + { /* i=960; 50 / 85 */ + RTUINT128_INIT_C(0x0000000000000000, 0x0002fe65af01e497), RTUINT128_INIT_C(0x00000000001b9608, 0x90d95442b8ce879a), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x0000000000000000, 0x0002fe65af01e497) + }, + { /* i=961; 118 / 113 */ + RTUINT128_INIT_C(0x0029afe948933285, 0x2b7215e95b14d4ec), RTUINT128_INIT_C(0x000164dd65c10b58, 0x4da24d025bfeca20), + RTUINT128_INIT_C(0x0000000000000000, 0x000000000000001d), RTUINT128_INIT_C(0x000142d4c1b4e984, 0x600f5ca4ef37ef4c) + }, + { /* i=962; 42 / 19 */ + RTUINT128_INIT_C(0x0000000000000000, 0x000000c37d4b05f6), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000051d39), + RTUINT128_INIT_C(0x0000000000000000, 0x00000000002639a6), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000026200) + }, + { /* i=963; 113 / 68 */ + RTUINT128_INIT_C(0x00018014560d1178, 0x298437eaa450d3ba), RTUINT128_INIT_C(0x0000000000000001, 0x12a48a4e3442f92f), + RTUINT128_INIT_C(0x0000000000000000, 0x0001660215c4cb9f), RTUINT128_INIT_C(0x0000000000000000, 0xbc7f1fd17023ca89) + }, + { /* i=964; 113 / 70 */ + RTUINT128_INIT_C(0x00001664f38f8e0f, 0x12e56c8c45b3dc91), RTUINT128_INIT_C(0x0000000000000009, 0x49260b17e7f9d36f), + RTUINT128_INIT_C(0x0000000000000000, 0x0000026964ad9851), RTUINT128_INIT_C(0x0000000000000007, 0x6861c74d4c1b0e72) + }, + { /* i=965; 88 / 64 */ + RTUINT128_INIT_C(0x0000000000327b5c, 0x9fb8c004848a6bfd), RTUINT128_INIT_C(0x0000000000000000, 0xddb66f629d11de3e), + RTUINT128_INIT_C(0x0000000000000000, 0x00000000003a49ee), RTUINT128_INIT_C(0x0000000000000000, 0x3e027d800b822059) + }, + { /* i=966; 118 / 50 */ + RTUINT128_INIT_C(0x00164987be16e1e2, 0xdd4e64fc120d4b0c), RTUINT128_INIT_C(0x0000000000000000, 0x0003c42b4291ddcd), + RTUINT128_INIT_C(0x0000000000000005, 0xeae56090d2ea08e8), RTUINT128_INIT_C(0x0000000000000000, 0x00021f1c478be144) + }, + { /* i=967; 28 / 25 */ + RTUINT128_INIT_C(0x0000000000000000, 0x0000000001fd0e1c), RTUINT128_INIT_C(0x0000000000000000, 0x000000000134f446), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000001), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000c819d6) + }, + { /* i=968; 120 / 122 */ + RTUINT128_INIT_C(0x0052d66e5bb3961e, 0xb3007909dfc7f047), RTUINT128_INIT_C(0x035b923866433993, 0x043858bf0caea3a6), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x0052d66e5bb3961e, 0xb3007909dfc7f047) + }, + { /* i=969; 79 / 29 */ + RTUINT128_INIT_C(0x000000000000065d, 0x295ddc34382d7f44), RTUINT128_INIT_C(0x0000000000000000, 0x00000000155c726d), + RTUINT128_INIT_C(0x0000000000000000, 0x00004c4481e9f514), RTUINT128_INIT_C(0x0000000000000000, 0x00000000013d3dc0) + }, + { /* i=970; 121 / 99 */ + RTUINT128_INIT_C(0x00e18e1e7c073b0d, 0x61b0801facd78cd7), RTUINT128_INIT_C(0x0000000591080a11, 0x66752c8974663e8f), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000288517), RTUINT128_INIT_C(0x00000003b45b46f3, 0x578be65352cfa2fe) + }, + { /* i=971; 125 / 118 */ + RTUINT128_INIT_C(0x0e2a41f8b4721ab3, 0xe1b647c6d897a61f), RTUINT128_INIT_C(0x0031fffbcfd67295, 0x93c0a6a3c618f1cf), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000048), RTUINT128_INIT_C(0x001a43264021e0a2, 0x538769b72193a3e7) + }, + { /* i=972; 114 / 112 */ + RTUINT128_INIT_C(0x00020b8376dbcabc, 0x056f3e8014a1dadf), RTUINT128_INIT_C(0x0000ee326a77e343, 0x05a13a60d6b0cc54), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000002), RTUINT128_INIT_C(0x00002f1ea1ec0435, 0xfa2cc9be67404237) + }, + { /* i=973; 127 / 101 */ + RTUINT128_INIT_C(0x524e6216c0c8cc2b, 0x9565fef1f8431367), RTUINT128_INIT_C(0x00000003e30838c5, 0x4a616d84faa0f72e), + RTUINT128_INIT_C(0x0000000000000000, 0x00000000152cf2e0), RTUINT128_INIT_C(0x0000000062e9d87f, 0xab342db93fd94f27) + }, + { /* i=974; 116 / 57 */ + RTUINT128_INIT_C(0x0008a416d9190e8d, 0x9b8a822e509b0f42), RTUINT128_INIT_C(0x0000000000000000, 0x0045ad1e9570c581), + RTUINT128_INIT_C(0x0000000000000000, 0x1fbf84332370ba9b), RTUINT128_INIT_C(0x0000000000000000, 0x0035cf0bda63c027) + }, + { /* i=975; 86 / 74 */ + RTUINT128_INIT_C(0x0000000000353025, 0x1f2d336c3a06d7cf), RTUINT128_INIT_C(0x000000000000034e, 0x00e9acb692e3ac8d), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000001018), RTUINT128_INIT_C(0x00000000000000c6, 0x6e79992039e5da97) + }, + { /* i=976; 37 / 73 */ + RTUINT128_INIT_C(0x0000000000000000, 0x000000078b6dea8a), RTUINT128_INIT_C(0x000000000000017f, 0x78a3dc74bfefb90a), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x0000000000000000, 0x000000078b6dea8a) + }, + { /* i=977; 113 / 103 */ + RTUINT128_INIT_C(0x000020544d897ac6, 0x77c87451f03304d7), RTUINT128_INIT_C(0x0000005c2cecbe75, 0xb841e370066e0533), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000059), RTUINT128_INIT_C(0x00000048af3b43d9, 0x68e0625fb3f3361c) + }, + { /* i=978; 127 / 61 */ + RTUINT128_INIT_C(0x38e84fbe0bf1c71e, 0xbcb409fc32b9484a), RTUINT128_INIT_C(0x0000000000000000, 0x0a55abf1ce57e31f), + RTUINT128_INIT_C(0x0000000000000005, 0x81a803ce40ae1d30), RTUINT128_INIT_C(0x0000000000000000, 0x087f0fcf6e722f7a) + }, + { /* i=979; 113 / 125 */ + RTUINT128_INIT_C(0x0001753bc47e15ed, 0x05c7cda0d1a1a97b), RTUINT128_INIT_C(0x02a67807260c2655, 0x06bacff4d84c3492), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x0001753bc47e15ed, 0x05c7cda0d1a1a97b) + }, + { /* i=980; 120 / 98 */ + RTUINT128_INIT_C(0x0041ef1ff633bf65, 0x8cae7ea7c46def96), RTUINT128_INIT_C(0x00000001a3f4a59f, 0xf0f8915c45d51a36), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000283150), RTUINT128_INIT_C(0x00000001050eb973, 0xf4c37f280f6168b6) + }, + { /* i=981; 118 / 46 */ + RTUINT128_INIT_C(0x0029a21c733b2f08, 0x94f4ad07197b3e66), RTUINT128_INIT_C(0x0000000000000000, 0x00001bf9b98bab68), + RTUINT128_INIT_C(0x000000000000017c, 0xfaf8875ac3235dae), RTUINT128_INIT_C(0x0000000000000000, 0x000014aa980ff5b6) + }, + { /* i=982; 123 / 84 */ + RTUINT128_INIT_C(0x067aef25c58acd42, 0x7ccddd218a3dc482), RTUINT128_INIT_C(0x00000000000aa2a4, 0x0235c105fce8daa0), + RTUINT128_INIT_C(0x0000000000000000, 0x0000009bfbc9bee0), RTUINT128_INIT_C(0x00000000000a7507, 0x1ada4620e49bb882) + }, + { /* i=983; 123 / 84 */ + RTUINT128_INIT_C(0x04107b159db9c06d, 0xe0fed82430515cf1), RTUINT128_INIT_C(0x00000000000fc134, 0xc8cd8df706e74e1b), + RTUINT128_INIT_C(0x0000000000000000, 0x000000420ae254d1), RTUINT128_INIT_C(0x000000000007cbbf, 0xbc9d9efda603bce6) + }, + { /* i=984; 120 / 48 */ + RTUINT128_INIT_C(0x00ffa6639d72ce65, 0xb66ec1b32c047a71), RTUINT128_INIT_C(0x0000000000000000, 0x00005f791673e5cf), + RTUINT128_INIT_C(0x00000000000002ad, 0x7f0ea7c6e38e69de), RTUINT128_INIT_C(0x0000000000000000, 0x00004c52246f49ef) + }, + { /* i=985; 52 / 16 */ + RTUINT128_INIT_C(0x0000000000000000, 0x000208312799832a), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000007012), + RTUINT128_INIT_C(0x0000000000000000, 0x00000004a443ab11), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000bf8) + }, + { /* i=986; 123 / 34 */ + RTUINT128_INIT_C(0x02195b80a80fd14c, 0x2c27ae172f3eb7d1), RTUINT128_INIT_C(0x0000000000000000, 0x000000011b818e7e), + RTUINT128_INIT_C(0x0000000001e538ef, 0x9d52ddeec2720126), RTUINT128_INIT_C(0x0000000000000000, 0x00000000a859131d) + }, + { /* i=987; 121 / 109 */ + RTUINT128_INIT_C(0x01011c73d256f568, 0x879c6378e20df1a4), RTUINT128_INIT_C(0x00000a5b007d7516, 0xcc48bb730df3bcc8), + RTUINT128_INIT_C(0x0000000000000000, 0x00000000000018d4), RTUINT128_INIT_C(0x0000010ba777db60, 0x89ce5ee27a82dc04) + }, + { /* i=988; 120 / 110 */ + RTUINT128_INIT_C(0x00bad2935a8002b2, 0x8b32a39651144e12), RTUINT128_INIT_C(0x00000cc03fc32dac, 0xd281c239e2862334), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000ea6), RTUINT128_INIT_C(0x00000a6d5570f11e, 0xf26f87aa182ca25a) + }, + { /* i=989; 46 / 43 */ + RTUINT128_INIT_C(0x0000000000000000, 0x0000333375a96bbd), RTUINT128_INIT_C(0x0000000000000000, 0x00000417a7f4e01b), + RTUINT128_INIT_C(0x0000000000000000, 0x000000000000000c), RTUINT128_INIT_C(0x0000000000000000, 0x00000217962eea79) + }, + { /* i=990; 127 / 60 */ + RTUINT128_INIT_C(0x45f8ec2b1cbd8e1b, 0x3df8fd031cebe046), RTUINT128_INIT_C(0x0000000000000000, 0x0ee0dfbb3fcbe2fa), + RTUINT128_INIT_C(0x0000000000000004, 0xb3f42a8a81dfae58), RTUINT128_INIT_C(0x0000000000000000, 0x0deb2089e8c9ee56) + }, + { /* i=991; 61 / 61 */ + RTUINT128_INIT_C(0x0000000000000000, 0x1851c88021b8257e), RTUINT128_INIT_C(0x0000000000000000, 0x123749b96c8b51a1), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000001), RTUINT128_INIT_C(0x0000000000000000, 0x061a7ec6b52cd3dd) + }, + { /* i=992; 71 / 38 */ + RTUINT128_INIT_C(0x000000000000005b, 0xb1a89ec2094361a5), RTUINT128_INIT_C(0x0000000000000000, 0x0000002872ac9d24), + RTUINT128_INIT_C(0x0000000000000000, 0x000000024457a82b), RTUINT128_INIT_C(0x0000000000000000, 0x0000000687e95c99) + }, + { /* i=993; 9 / 24 */ + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000019), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000017357), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000019) + }, + { /* i=994; 121 / 39 */ + RTUINT128_INIT_C(0x015fae9d91db71ad, 0x5e7567eac5ff304a), RTUINT128_INIT_C(0x0000000000000000, 0x000000763613f9a5), + RTUINT128_INIT_C(0x000000000002f99b, 0x9f0f4e751afb7095), RTUINT128_INIT_C(0x0000000000000000, 0x0000001b085fb341) + }, + { /* i=995; 128 / 75 */ + RTUINT128_INIT_C(0x2452b217fbf007c3, 0x5435d1bc961711ba), RTUINT128_INIT_C(0x0000000000000219, 0x0da15e302d22e664), + RTUINT128_INIT_C(0x0000000000000000, 0x00115075518bc7f3), RTUINT128_INIT_C(0x0000000000000186, 0xbbcade5ee092a4ce) + }, + { /* i=996; 111 / 22 */ + RTUINT128_INIT_C(0x00001cf3d716409f, 0xf82dd9451aceb095), RTUINT128_INIT_C(0x0000000000000000, 0x00000000001fd9c6), + RTUINT128_INIT_C(0x0000000000e8b4b5, 0x1090d9ca9a2066ab), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000035553) + }, + { /* i=997; 65 / 14 */ + RTUINT128_INIT_C(0x0000000000000000, 0xf1449151feb153c5), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000001d70), + RTUINT128_INIT_C(0x0000000000000000, 0x00083228cf268bbb), RTUINT128_INIT_C(0x0000000000000000, 0x00000000000002f5) + }, + { /* i=998; 121 / 37 */ + RTUINT128_INIT_C(0x0044c79b5bfd3290, 0x0058fb1692edcb7a), RTUINT128_INIT_C(0x0000000000000000, 0x00000011bab11f2f), + RTUINT128_INIT_C(0x000000000003e123, 0x53b166ccb9b29905), RTUINT128_INIT_C(0x0000000000000000, 0x000000056c27188f) + }, + { /* i=999; 103 / 16 */ + RTUINT128_INIT_C(0x0000007ef74cd7df, 0x64c944ee196e8008), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000008a08), + RTUINT128_INIT_C(0x0000000000eb7a53, 0x843292eeb4d099cf), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000001b90) + }, + { /* i=1000; 121 / 119 */ + RTUINT128_INIT_C(0x00879b78e0fbb725, 0xc8f341cbfeabdac9), RTUINT128_INIT_C(0x003e4193aaa47cb0, 0xedfdd91a7dde57bc), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000002), RTUINT128_INIT_C(0x000b18518bb2bdc3, 0xecf78f9702ef2b51) + }, + { /* i=1001; 124 / 7 */ + RTUINT128_INIT_C(0x0c56c34eb029d07b, 0xc833568007cc9a70), RTUINT128_INIT_C(0x0000000000000000, 0x000000000000002b), + RTUINT128_INIT_C(0x004975a88712d538, 0x75c5a8b59504c21a), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000012) + }, + { /* i=1002; 122 / 98 */ + RTUINT128_INIT_C(0x016ee21e924ce13a, 0x397959fbe0cf5022), RTUINT128_INIT_C(0x00000002e86b7d05, 0x98b392404ff9496b), + RTUINT128_INIT_C(0x0000000000000000, 0x00000000007e2b0f), RTUINT128_INIT_C(0x000000015d3f74de, 0x21bb9e162f3509dd) + }, + { /* i=1003; 122 / 79 */ + RTUINT128_INIT_C(0x0073472e345b6a20, 0x726defbfc14100f3), RTUINT128_INIT_C(0x0000000000005f37, 0xb041576b0c0a14b9), + RTUINT128_INIT_C(0x0000000000000000, 0x00000135ef2ef729), RTUINT128_INIT_C(0x0000000000003e95, 0xfefa1087a9673052) + }, + { /* i=1004; 111 / 56 */ + RTUINT128_INIT_C(0x00004e73f0c0ce80, 0x18945863bd9f3b65), RTUINT128_INIT_C(0x0000000000000000, 0x0087180fc0c17e20), + RTUINT128_INIT_C(0x0000000000000000, 0x0094aa9ac21c4852), RTUINT128_INIT_C(0x0000000000000000, 0x00175f2388abd525) + }, + { /* i=1005; 61 / 26 */ + RTUINT128_INIT_C(0x0000000000000000, 0x0c1b01ee59822abe), RTUINT128_INIT_C(0x0000000000000000, 0x000000000273b4d8), + RTUINT128_INIT_C(0x0000000000000000, 0x00000004efe16b28), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000ffa0fe) + }, + { /* i=1006; 120 / 94 */ + RTUINT128_INIT_C(0x0079aed4874ff8b0, 0xa0c06a0428180893), RTUINT128_INIT_C(0x000000002ba8051a, 0x968728f26a1f5511), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000002c98bf6), RTUINT128_INIT_C(0x00000000220862f7, 0x8c79e02f3e730f3d) + }, + { /* i=1007; 23 / 14 */ + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000507bd1), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000001df6), + RTUINT128_INIT_C(0x0000000000000000, 0x00000000000002af), RTUINT128_INIT_C(0x0000000000000000, 0x00000000000014a7) + }, + { /* i=1008; 102 / 30 */ + RTUINT128_INIT_C(0x00000008fe89d19e, 0xa7fc1b3e1aa56d22), RTUINT128_INIT_C(0x0000000000000000, 0x0000000028c8a34c), + RTUINT128_INIT_C(0x0000000000000038, 0x750f105cfc785273), RTUINT128_INIT_C(0x0000000000000000, 0x000000002895b9fe) + }, + { /* i=1009; 109 / 9 */ + RTUINT128_INIT_C(0x0000162a0197eacb, 0xe277ab2ea04d2f01), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000081), + RTUINT128_INIT_C(0x0000002bfc0b19a2, 0x531eb1f2784ffa69), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000018) + }, + { /* i=1010; 34 / 108 */ + RTUINT128_INIT_C(0x0000000000000000, 0x00000001677c295e), RTUINT128_INIT_C(0x00000dc4bcd44445, 0x10e1baa37e84515e), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x0000000000000000, 0x00000001677c295e) + }, + { /* i=1011; 122 / 105 */ + RTUINT128_INIT_C(0x02504dfc602fe298, 0xf128068e52f18f45), RTUINT128_INIT_C(0x0000018587c8d3e1, 0x37a5fd59c0f04390), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000018543), RTUINT128_INIT_C(0x000000b5acab3518, 0x26bd55e3bd661095) + }, + { /* i=1012; 46 / 24 */ + RTUINT128_INIT_C(0x0000000000000000, 0x00001b56e97e6d4b), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000346e42), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000857d23), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000332045) + }, + { /* i=1013; 46 / 22 */ + RTUINT128_INIT_C(0x0000000000000000, 0x0000240b7b0b67be), RTUINT128_INIT_C(0x0000000000000000, 0x00000000003fb56b), + RTUINT128_INIT_C(0x0000000000000000, 0x000000000090d6b5), RTUINT128_INIT_C(0x0000000000000000, 0x000000000028b117) + }, + { /* i=1014; 124 / 119 */ + RTUINT128_INIT_C(0x031d4499bcecb6e3, 0x4e05b6f4e85eb683), RTUINT128_INIT_C(0x001dbf6b27b31b00, 0xd01a7a2f26974d33), + RTUINT128_INIT_C(0x0000000000000000, 0x000000000000001a), RTUINT128_INIT_C(0x0017d3b7b4bbf8ce, 0x2b554e2afd00df55) + }, + { /* i=1015; 37 / 25 */ + RTUINT128_INIT_C(0x0000000000000000, 0x0000001cd128235b), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000cee271), + RTUINT128_INIT_C(0x0000000000000000, 0x00000000000023a8), RTUINT128_INIT_C(0x0000000000000000, 0x00000000006e1633) + }, + { /* i=1016; 121 / 109 */ + RTUINT128_INIT_C(0x0167a784ea2d08a8, 0x48a0dcd246857284), RTUINT128_INIT_C(0x00000f201dcca59e, 0x9af36221154ccca8), + RTUINT128_INIT_C(0x0000000000000000, 0x00000000000017c7), RTUINT128_INIT_C(0x000002e05d370a71, 0xf79e9c30d16f43ec) + }, + { /* i=1017; 127 / 61 */ + RTUINT128_INIT_C(0x652e685963c29912, 0x2412f93d039d5c2d), RTUINT128_INIT_C(0x0000000000000000, 0x0fc59b7b18cd29c1), + RTUINT128_INIT_C(0x0000000000000006, 0x6a503619739215e8), RTUINT128_INIT_C(0x0000000000000000, 0x01bce0093230b045) + }, + { /* i=1018; 122 / 96 */ + RTUINT128_INIT_C(0x02f452836fc33b12, 0x7d612a35f4f2f204), RTUINT128_INIT_C(0x00000000d3a45df2, 0x6e60480baf78ed62), + RTUINT128_INIT_C(0x0000000000000000, 0x000000000392d6e8), RTUINT128_INIT_C(0x00000000d0b75b58, 0xc02d9d305107e534) + }, + { /* i=1019; 58 / 12 */ + RTUINT128_INIT_C(0x0000000000000000, 0x034e5ccfd50458f5), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000bf8), + RTUINT128_INIT_C(0x0000000000000000, 0x000046b6e09221c8), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000735) + }, + { /* i=1020; 114 / 121 */ + RTUINT128_INIT_C(0x00010f85b39c8383, 0xe4cb300fb3f58e38), RTUINT128_INIT_C(0x01d924c4ecaba1ba, 0x2f2de4fd295cc336), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x00010f85b39c8383, 0xe4cb300fb3f58e38) + }, + { /* i=1021; 124 / 85 */ + RTUINT128_INIT_C(0x02e3dbb9555f8a57, 0x1e89ddeab522a157), RTUINT128_INIT_C(0x00000000000419e4, 0x45bbedae7a84a68a), + RTUINT128_INIT_C(0x0000000000000000, 0x000000b467321904), RTUINT128_INIT_C(0x0000000000007df2, 0xe8bfb747c9d88d2f) + }, + { /* i=1022; 115 / 25 */ + RTUINT128_INIT_C(0x000450891772e20d, 0x9d984b1b09b79ab1), RTUINT128_INIT_C(0x0000000000000000, 0x00000000007dd5bd), + RTUINT128_INIT_C(0x0000000008c7146b, 0x7ba78f2c92715d62), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000791f57) + }, + { /* i=1023; 116 / 54 */ + RTUINT128_INIT_C(0x0008fc25a645e9cc, 0x0b5329e6f5eaf31b), RTUINT128_INIT_C(0x0000000000000000, 0x002e08121c643bde), + RTUINT128_INIT_C(0x0000000000000000, 0x31f80d2648e31bd0), RTUINT128_INIT_C(0x0000000000000000, 0x000c2b85cc4fe4bb) + }, + { /* i=1024; 97 / 89 */ + RTUINT128_INIT_C(0x000000010e0d5a28, 0x3610de5d58c993e8), RTUINT128_INIT_C(0x000000000072f8df, 0x1dc14fc7fb7eec95), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000259), RTUINT128_INIT_C(0x000000000023165b, 0x5b3c91dfebd02a1b) + }, + { /* i=1025; 56 / 53 */ + RTUINT128_INIT_C(0x0000000000000000, 0x00b5a1baced2afcc), RTUINT128_INIT_C(0x0000000000000000, 0x000bc38fd3c9d9dd), + RTUINT128_INIT_C(0x0000000000000000, 0x000000000000000f), RTUINT128_INIT_C(0x0000000000000000, 0x00052c4d65feebd9) + }, + { /* i=1026; 57 / 24 */ + RTUINT128_INIT_C(0x0000000000000000, 0x00e100f33bef684d), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000db7ace), + RTUINT128_INIT_C(0x0000000000000000, 0x00000001067173b4), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000848575) + }, + { /* i=1027; 13 / 62 */ + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000275), RTUINT128_INIT_C(0x0000000000000000, 0x0667530ab4756c58), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000275) + }, + { /* i=1028; 120 / 75 */ + RTUINT128_INIT_C(0x00c29f4749df1275, 0x26d5a056600f5d38), RTUINT128_INIT_C(0x00000000000003f7, 0x429e180bbfd3972a), + RTUINT128_INIT_C(0x0000000000000000, 0x000031130b5e38ee), RTUINT128_INIT_C(0x0000000000000256, 0x9066ea2570dba42c) + }, + { /* i=1029; 58 / 56 */ + RTUINT128_INIT_C(0x0000000000000000, 0x02dae192b4a73c8e), RTUINT128_INIT_C(0x0000000000000000, 0x0015ab03f365b868), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000021), RTUINT128_INIT_C(0x0000000000000000, 0x000fd610548a7726) + }, + { /* i=1030; 57 / 41 */ + RTUINT128_INIT_C(0x0000000000000000, 0x01e9800401588973), RTUINT128_INIT_C(0x0000000000000000, 0x0000004ac99ebbd6), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000068b92), RTUINT128_INIT_C(0x0000000000000000, 0x0000002b6dd03767) + }, + { /* i=1031; 76 / 42 */ + RTUINT128_INIT_C(0x00000000000004ca, 0xecfb1c7d68b6da35), RTUINT128_INIT_C(0x0000000000000000, 0x0000027d5d654a56), + RTUINT128_INIT_C(0x0000000000000000, 0x00000001eccca314), RTUINT128_INIT_C(0x0000000000000000, 0x000000a619f0497d) + }, + { /* i=1032; 117 / 94 */ + RTUINT128_INIT_C(0x001272dee8493ffa, 0xe79267c0928ea364), RTUINT128_INIT_C(0x0000000002587ae7, 0x45198a0d0287bea9), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000007dd7afc), RTUINT128_INIT_C(0x000000000213b392, 0x2e576a572d2d6b08) + }, + { /* i=1033; 28 / 22 */ + RTUINT128_INIT_C(0x0000000000000000, 0x0000000003d6d347), RTUINT128_INIT_C(0x0000000000000000, 0x000000000004d74c), + RTUINT128_INIT_C(0x0000000000000000, 0x00000000000000cb), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000001a03) + }, + { /* i=1034; 113 / 18 */ + RTUINT128_INIT_C(0x0000826caee73514, 0x9d92f136f0f7d786), RTUINT128_INIT_C(0x0000000000000000, 0x000000000000879f), + RTUINT128_INIT_C(0x00000000f630e0cc, 0x047cd4776e0e62ab), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000006251) + }, + { /* i=1035; 121 / 126 */ + RTUINT128_INIT_C(0x01e7bd5c8f6b0fca, 0xd617032ab5cf78da), RTUINT128_INIT_C(0x077113d4cf1dc1e6, 0xf72a901bbd4a8705), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x01e7bd5c8f6b0fca, 0xd617032ab5cf78da) + }, + { /* i=1036; 128 / 62 */ + RTUINT128_INIT_C(0x2eb0b1e5cd5c06e3, 0x47f944cce543546f), RTUINT128_INIT_C(0x0000000000000000, 0x3adc02bf5dacb59d), + RTUINT128_INIT_C(0x0000000000000000, 0xcb1269782463094c), RTUINT128_INIT_C(0x0000000000000000, 0x15e5afc5b3e3e4d3) + }, + { /* i=1037; 121 / 126 */ + RTUINT128_INIT_C(0x01a2a86ec658b7a7, 0xbcb66ea1cf6d91b6), RTUINT128_INIT_C(0x37ece4aaf9c030f4, 0xcf1aae30de926470), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x01a2a86ec658b7a7, 0xbcb66ea1cf6d91b6) + }, + { /* i=1038; 73 / 68 */ + RTUINT128_INIT_C(0x0000000000000052, 0xa4a31c5ef12c0332), RTUINT128_INIT_C(0x000000000000000c, 0x065a8ab4d4c7db8f), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000006), RTUINT128_INIT_C(0x000000000000000a, 0x7e83dc21f47cddd8) + }, + { /* i=1039; 97 / 70 */ + RTUINT128_INIT_C(0x00000001b115db21, 0xd5549ba08d37af04), RTUINT128_INIT_C(0x0000000000000002, 0xbaebaf39e8e03e17), + RTUINT128_INIT_C(0x0000000000000000, 0x000000009ea14ea9), RTUINT128_INIT_C(0x0000000000000001, 0xaf346e183fccafd5) + }, + { /* i=1040; 35 / 44 */ + RTUINT128_INIT_C(0x0000000000000000, 0x00000003bfd20072), RTUINT128_INIT_C(0x0000000000000000, 0x00000f17ead6ecd7), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x0000000000000000, 0x00000003bfd20072) + }, + { /* i=1041; 30 / 19 */ + RTUINT128_INIT_C(0x0000000000000000, 0x00000000113f6b7a), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000052be0), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000355), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000043a1a) + }, + { /* i=1042; 126 / 104 */ + RTUINT128_INIT_C(0x3f5f89004ee5a76f, 0x153add7661486c6c), RTUINT128_INIT_C(0x000000da1d818df5, 0xc46df30d60929dbb), + RTUINT128_INIT_C(0x0000000000000000, 0x00000000004a616c), RTUINT128_INIT_C(0x0000005abc68dc8a, 0x4be257d87d9c0688) + }, + { /* i=1043; 120 / 124 */ + RTUINT128_INIT_C(0x009186afcf15dd3d, 0x14a472e698071035), RTUINT128_INIT_C(0x072d996396ea35ad, 0x53646ec993115000), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x009186afcf15dd3d, 0x14a472e698071035) + }, + { /* i=1044; 125 / 90 */ + RTUINT128_INIT_C(0x0da293f54ea35978, 0x709ca4a40e396997), RTUINT128_INIT_C(0x0000000001722014, 0x5817aba94050fe02), + RTUINT128_INIT_C(0x0000000000000000, 0x000000096e48f101), RTUINT128_INIT_C(0x0000000000961717, 0x8bd4d17042388995) + }, + { /* i=1045; 120 / 119 */ + RTUINT128_INIT_C(0x00dcf49620e51a34, 0xc5d19c43a000574c), RTUINT128_INIT_C(0x0015c47425ff4857, 0x7ef5f1faa770f28f), + RTUINT128_INIT_C(0x0000000000000000, 0x000000000000000a), RTUINT128_INIT_C(0x0003480ca4ec46c9, 0xd03628791596ddb6) + }, + { /* i=1046; 91 / 48 */ + RTUINT128_INIT_C(0x00000000064729ec, 0x5d06eef772afa459), RTUINT128_INIT_C(0x0000000000000000, 0x0000656fa0bfaa6a), + RTUINT128_INIT_C(0x0000000000000000, 0x00000fd817846d56), RTUINT128_INIT_C(0x0000000000000000, 0x00003972721542bd) + }, + { /* i=1047; 120 / 120 */ + RTUINT128_INIT_C(0x00416301bf574975, 0xbf4ab82d829c5201), RTUINT128_INIT_C(0x00c43ce46074558c, 0xbd16ffcc04cc497d), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x00416301bf574975, 0xbf4ab82d829c5201) + }, + { /* i=1048; 102 / 89 */ + RTUINT128_INIT_C(0x000000168fbce922, 0xf119c56db34c28d7), RTUINT128_INIT_C(0x000000000114a67a, 0x954be2d382f20249), + RTUINT128_INIT_C(0x0000000000000000, 0x00000000000014e0), RTUINT128_INIT_C(0x0000000000a9aa36, 0x60fac620375c74f7) + }, + { /* i=1049; 34 / 23 */ + RTUINT128_INIT_C(0x0000000000000000, 0x000000031710a07d), RTUINT128_INIT_C(0x0000000000000000, 0x000000000056c864), + RTUINT128_INIT_C(0x0000000000000000, 0x000000000000091d), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000306929) + }, + { /* i=1050; 123 / 55 */ + RTUINT128_INIT_C(0x013c5ec0a8d59a29, 0x5ff85d7ac9d32d7f), RTUINT128_INIT_C(0x0000000000000000, 0x00032fd2352b1d80), + RTUINT128_INIT_C(0x0000000000000063, 0x466f47114659f04e), RTUINT128_INIT_C(0x0000000000000000, 0x0000fe07e988307f) + }, + { /* i=1051; 85 / 25 */ + RTUINT128_INIT_C(0x00000000000fe296, 0x1b77547fcc05cc98), RTUINT128_INIT_C(0x0000000000000000, 0x0000000001b6a1c0), + RTUINT128_INIT_C(0x0000000000000000, 0x094564d42b693f26), RTUINT128_INIT_C(0x0000000000000000, 0x00000000015b8a18) + }, + { /* i=1052; 81 / 69 */ + RTUINT128_INIT_C(0x0000000000012aff, 0x245ee89a578bb75f), RTUINT128_INIT_C(0x0000000000000004, 0xefed240491e4f5cb), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000003c8f), RTUINT128_INIT_C(0x0000000000000001, 0x8a76b7db2f0ad6fa) + }, + { /* i=1053; 107 / 32 */ + RTUINT128_INIT_C(0x0000071bbe6eb029, 0xd084b2b398cfe552), RTUINT128_INIT_C(0x0000000000000000, 0x00000000483d3f49), + RTUINT128_INIT_C(0x0000000000001930, 0xc5a175db2b8d6d76), RTUINT128_INIT_C(0x0000000000000000, 0x000000001a6da4ac) + }, + { /* i=1054; 114 / 37 */ + RTUINT128_INIT_C(0x0000ae1081ad1b1e, 0xfeb691388da2b551), RTUINT128_INIT_C(0x0000000000000000, 0x00000007cbccb349), + RTUINT128_INIT_C(0x0000000000001653, 0xbfc0044104001733), RTUINT128_INIT_C(0x0000000000000000, 0x000000056bbf6ec6) + }, + { /* i=1055; 69 / 4 */ + RTUINT128_INIT_C(0x0000000000000004, 0x8df080edfc04637c), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000008), + RTUINT128_INIT_C(0x0000000000000000, 0x91be101dbf808c6f), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000004) + }, + { /* i=1056; 101 / 108 */ + RTUINT128_INIT_C(0x0000001d2a3ccf39, 0x61ba897845e554e8), RTUINT128_INIT_C(0x000001e5b4cc9a1d, 0x0bfa47d2327a109b), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x0000001d2a3ccf39, 0x61ba897845e554e8) + }, + { /* i=1057; 118 / 101 */ + RTUINT128_INIT_C(0x003e02d4dff1ab9e, 0x28ebe9cac556429e), RTUINT128_INIT_C(0x0000001ce002fb4b, 0xe785db169b510b83), + RTUINT128_INIT_C(0x0000000000000000, 0x00000000000225c6), RTUINT128_INIT_C(0x0000001938b98767, 0x088cfb39d6f76c4c) + }, + { /* i=1058; 63 / 58 */ + RTUINT128_INIT_C(0x0000000000000000, 0x310c8fbb00440e7a), RTUINT128_INIT_C(0x0000000000000000, 0x033825b4defc24e2), + RTUINT128_INIT_C(0x0000000000000000, 0x000000000000000f), RTUINT128_INIT_C(0x0000000000000000, 0x00c25a21ef7de53c) + }, + { /* i=1059; 114 / 23 */ + RTUINT128_INIT_C(0x0003571fa0a4151c, 0x8dcdc7ee30906961), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000042916), + RTUINT128_INIT_C(0x00000000cd88c3e1, 0x0d2a685c7fe01406), RTUINT128_INIT_C(0x0000000000000000, 0x000000000001badd) + }, + { /* i=1060; 66 / 59 */ + RTUINT128_INIT_C(0x0000000000000003, 0x1a24af6cda69c75a), RTUINT128_INIT_C(0x0000000000000000, 0x07fb9be63e5ffb47), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000063), RTUINT128_INIT_C(0x0000000000000000, 0x03d76562bb4b9ae5) + }, + { /* i=1061; 76 / 18 */ + RTUINT128_INIT_C(0x0000000000000fc2, 0x2d5d682c8ef8279b), RTUINT128_INIT_C(0x0000000000000000, 0x000000000002964d), + RTUINT128_INIT_C(0x0000000000000000, 0x061755fb91fbff4b), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000006c0c) + }, + { /* i=1062; 55 / 55 */ + RTUINT128_INIT_C(0x0000000000000000, 0x0024e4fecc15cbcc), RTUINT128_INIT_C(0x0000000000000000, 0x00142bbdde1aabba), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000001), RTUINT128_INIT_C(0x0000000000000000, 0x0010b940edfb2012) + }, + { /* i=1063; 70 / 9 */ + RTUINT128_INIT_C(0x000000000000001e, 0x3cf3090ee218671e), RTUINT128_INIT_C(0x0000000000000000, 0x00000000000001b5), + RTUINT128_INIT_C(0x0000000000000000, 0x11b6be68e4fbf485), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000015) + }, + { /* i=1064; 42 / 17 */ + RTUINT128_INIT_C(0x0000000000000000, 0x00000077f630912d), RTUINT128_INIT_C(0x0000000000000000, 0x000000000001ca2c), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000430714), RTUINT128_INIT_C(0x0000000000000000, 0x00000000000191bd) + }, + { /* i=1065; 61 / 61 */ + RTUINT128_INIT_C(0x0000000000000000, 0x1f2f57acee5601b4), RTUINT128_INIT_C(0x0000000000000000, 0x036afdb35b5fb834), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000009), RTUINT128_INIT_C(0x0000000000000000, 0x006c6c5eb7f887e0) + }, + { /* i=1066; 92 / 63 */ + RTUINT128_INIT_C(0x0000000006ab5fd9, 0x2264b6d746568f97), RTUINT128_INIT_C(0x0000000000000000, 0x47ff4940d8ea1567), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000017b6e651), RTUINT128_INIT_C(0x0000000000000000, 0x17370818dcd14000) + }, + { /* i=1067; 100 / 25 */ + RTUINT128_INIT_C(0x0000000a688add4a, 0x689cfe03c829aa00), RTUINT128_INIT_C(0x0000000000000000, 0x0000000001041fdc), + RTUINT128_INIT_C(0x0000000000000a3e, 0x4b5745043166d295), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000f8a6f4) + }, + { /* i=1068; 91 / 59 */ + RTUINT128_INIT_C(0x000000000159f41e, 0xb81e5b40ed2d1e4b), RTUINT128_INIT_C(0x0000000000000000, 0x02bcf6bac52fa6a1), + RTUINT128_INIT_C(0x0000000000000000, 0x000000007e58a16a), RTUINT128_INIT_C(0x0000000000000000, 0x01737f83ca4edea1) + }, + { /* i=1069; 118 / 65 */ + RTUINT128_INIT_C(0x003ea26537d7fd59, 0xa374f2806ec4e4c8), RTUINT128_INIT_C(0x0000000000000000, 0xef6f34d912cfbb88), + RTUINT128_INIT_C(0x0000000000000000, 0x0042f7c1d6f5cca0), RTUINT128_INIT_C(0x0000000000000000, 0x60c1aebcfa574fc8) + }, + { /* i=1070; 95 / 22 */ + RTUINT128_INIT_C(0x000000002f69b0af, 0xe4324f91144a3e8b), RTUINT128_INIT_C(0x0000000000000000, 0x00000000003f5c98), + RTUINT128_INIT_C(0x00000000000000bf, 0x8fdc6ec110ef20dd), RTUINT128_INIT_C(0x0000000000000000, 0x00000000001c4f53) + }, + { /* i=1071; 128 / 88 */ + RTUINT128_INIT_C(0xd161985aaf0196d7, 0xec97fc8ca29c84bc), RTUINT128_INIT_C(0x00000000002846e1, 0x12d7fef5db7aeb6c), + RTUINT128_INIT_C(0x0000000000000000, 0x00000532d402186a), RTUINT128_INIT_C(0x00000000002785c0, 0x02f8c528f4ccea04) + }, + { /* i=1072; 50 / 90 */ + RTUINT128_INIT_C(0x0000000000000000, 0x00008debc48dbe1a), RTUINT128_INIT_C(0x0000000001a08f58, 0xecf912c9ccd139af), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x0000000000000000, 0x00008debc48dbe1a) + }, + { /* i=1073; 122 / 16 */ + RTUINT128_INIT_C(0x01f24210ca45bd27, 0x8361eb6fefec874c), RTUINT128_INIT_C(0x0000000000000000, 0x00000000000075b9), + RTUINT128_INIT_C(0x0000043b8368a585, 0xbd479cbb6b358601), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000003b93) + }, + { /* i=1074; 101 / 82 */ + RTUINT128_INIT_C(0x0000001e35fafeef, 0x07f15d1e78513091), RTUINT128_INIT_C(0x000000000002ad0b, 0x03220695d9ffe335), + RTUINT128_INIT_C(0x0000000000000000, 0x00000000000b4a2e), RTUINT128_INIT_C(0x0000000000019596, 0x597c7f2e91620b0b) + }, + { /* i=1075; 42 / 2 */ + RTUINT128_INIT_C(0x0000000000000000, 0x000001b704f9ae56), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000003), + RTUINT128_INIT_C(0x0000000000000000, 0x0000009256fde4c7), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000001) + }, + { /* i=1076; 119 / 109 */ + RTUINT128_INIT_C(0x003daf1155ebfc15, 0xa5016b32b2386971), RTUINT128_INIT_C(0x000001c7948a2311, 0x53369e81eefc48b1), + RTUINT128_INIT_C(0x0000000000000000, 0x00000000000022a9), RTUINT128_INIT_C(0x00000095ee128898, 0x74e585ae6c04ea98) + }, + { /* i=1077; 52 / 8 */ + RTUINT128_INIT_C(0x0000000000000000, 0x00028d939488af49), RTUINT128_INIT_C(0x0000000000000000, 0x00000000000000ff), + RTUINT128_INIT_C(0x0000000000000000, 0x0000029023b840f0), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000039) + }, + { /* i=1078; 127 / 83 */ + RTUINT128_INIT_C(0x3c13955062c3c221, 0xd3ba73cb8954eb82), RTUINT128_INIT_C(0x0000000000060706, 0x4b382a93edaa66a2), + RTUINT128_INIT_C(0x0000000000000000, 0x000009f7983c92a7), RTUINT128_INIT_C(0x0000000000005399, 0x9d00b69212ab93d4) + }, + { /* i=1079; 52 / 16 */ + RTUINT128_INIT_C(0x0000000000000000, 0x0001452caeb9bd25), RTUINT128_INIT_C(0x0000000000000000, 0x00000000000046b1), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000499941ac9), RTUINT128_INIT_C(0x0000000000000000, 0x000000000000422c) + }, + { /* i=1080; 120 / 67 */ + RTUINT128_INIT_C(0x00c846d96170f55f, 0xf45f2dcb4e1222a4), RTUINT128_INIT_C(0x0000000000000007, 0x28b6420b2829097d), + RTUINT128_INIT_C(0x0000000000000000, 0x001bf9b3cae728df), RTUINT128_INIT_C(0x0000000000000003, 0x9e6d11e1b70c56c1) + }, + { /* i=1081; 51 / 47 */ + RTUINT128_INIT_C(0x0000000000000000, 0x00007b910b64baab), RTUINT128_INIT_C(0x0000000000000000, 0x000020c242cea266), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000003), RTUINT128_INIT_C(0x0000000000000000, 0x0000194a42f8d379) + }, + { /* i=1082; 119 / 55 */ + RTUINT128_INIT_C(0x007afdfb842db7ff, 0x88aaf3b3cb2e813c), RTUINT128_INIT_C(0x0000000000000000, 0x002688f3ba39ece7), + RTUINT128_INIT_C(0x0000000000000003, 0x311359cef6721e3b), RTUINT128_INIT_C(0x0000000000000000, 0x00224b619d33d5ff) + }, + { /* i=1083; 122 / 47 */ + RTUINT128_INIT_C(0x01da13eb486a4c5b, 0x2d2f22bbe96ff7e0), RTUINT128_INIT_C(0x0000000000000000, 0x000002fec54ebaab), + RTUINT128_INIT_C(0x0000000000009e47, 0x7edc1aef80aba5b5), RTUINT128_INIT_C(0x0000000000000000, 0x000002dd7a3cc5f9) + }, + { /* i=1084; 113 / 123 */ + RTUINT128_INIT_C(0x000062b0f6d3bef6, 0x882741b65fd0fffe), RTUINT128_INIT_C(0x000c727468fe2816, 0x99908a27e706d184), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x000062b0f6d3bef6, 0x882741b65fd0fffe) + }, + { /* i=1085; 125 / 50 */ + RTUINT128_INIT_C(0x1eee380a3d079f8d, 0x0a1ed0b53e2447e7), RTUINT128_INIT_C(0x0000000000000000, 0x00001abfb1d3f949), + RTUINT128_INIT_C(0x0000000000012805, 0x7960536c58d67d97), RTUINT128_INIT_C(0x0000000000000000, 0x0000151f5e5d98d8) + }, + { /* i=1086; 83 / 18 */ + RTUINT128_INIT_C(0x000000000003ea4d, 0xf379acacbebc0ce4), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000c11), + RTUINT128_INIT_C(0x0000000000000053, 0x10d1cb98a0d6b4d6), RTUINT128_INIT_C(0x0000000000000000, 0x00000000000002ae) + }, + { /* i=1087; 65 / 32 */ + RTUINT128_INIT_C(0x0000000000000000, 0x9bae7ef9c790542a), RTUINT128_INIT_C(0x0000000000000000, 0x00000000762e4645), + RTUINT128_INIT_C(0x0000000000000000, 0x00000001513bbe34), RTUINT128_INIT_C(0x0000000000000000, 0x00000000671bd826) + }, + { /* i=1088; 71 / 102 */ + RTUINT128_INIT_C(0x0000000000000030, 0x8577edb0c2869f58), RTUINT128_INIT_C(0x0000002302d1fe19, 0x02c32eb930b9e8fc), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x0000000000000030, 0x8577edb0c2869f58) + }, + { /* i=1089; 55 / 16 */ + RTUINT128_INIT_C(0x0000000000000000, 0x002d32f2a2a5e103), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000009485), + RTUINT128_INIT_C(0x0000000000000000, 0x0000004de899963c), RTUINT128_INIT_C(0x0000000000000000, 0x00000000000023d7) + }, + { /* i=1090; 118 / 111 */ + RTUINT128_INIT_C(0x003ec18bac6dd2cc, 0x3d43b157e1eaf791), RTUINT128_INIT_C(0x0000201aeb404372, 0xca7e54050b5cee9a), + RTUINT128_INIT_C(0x0000000000000000, 0x00000000000001f4), RTUINT128_INIT_C(0x00000cf832ea1698, 0xbe87977db068f2c9) + }, + { /* i=1091; 125 / 40 */ + RTUINT128_INIT_C(0x1e23ce472d7ba6b8, 0xfcf887f7552bf961), RTUINT128_INIT_C(0x0000000000000000, 0x000000e91d10faad), + RTUINT128_INIT_C(0x0000000000211952, 0xa38383896bf81d35), RTUINT128_INIT_C(0x0000000000000000, 0x0000009b3daa7a90) + }, + { /* i=1092; 127 / 84 */ + RTUINT128_INIT_C(0x32ebcd9239031343, 0x066be45790377437), RTUINT128_INIT_C(0x00000000000b1be4, 0x84a6189133b67c36), + RTUINT128_INIT_C(0x0000000000000000, 0x00000495732d4200), RTUINT128_INIT_C(0x000000000001a982, 0xb52e40b46cb38837) + }, + { /* i=1093; 126 / 53 */ + RTUINT128_INIT_C(0x3088aa0bdefba02c, 0x63b2caf24c200a86), RTUINT128_INIT_C(0x0000000000000000, 0x000208b87d387cd8), + RTUINT128_INIT_C(0x00000000000017dc, 0x4ad9b82f204d6b59), RTUINT128_INIT_C(0x0000000000000000, 0x0001c1379a565b6e) + }, + { /* i=1094; 78 / 7 */ + RTUINT128_INIT_C(0x0000000000000f08, 0x8282a35be7b828b2), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000068), + RTUINT128_INIT_C(0x0000000000000025, 0x014141921d4e1415), RTUINT128_INIT_C(0x0000000000000000, 0x000000000000002a) + }, + { /* i=1095; 121 / 98 */ + RTUINT128_INIT_C(0x004481a2d2675887, 0xaaa959edba022801), RTUINT128_INIT_C(0x00000001f68f5c2e, 0x6f357454b74192d6), + RTUINT128_INIT_C(0x0000000000000000, 0x000000000022e587), RTUINT128_INIT_C(0x00000001512d6d76, 0xc128e29deda84b27) + }, + { /* i=1096; 87 / 48 */ + RTUINT128_INIT_C(0x0000000000069583, 0xe7a609dddfdf9cd8), RTUINT128_INIT_C(0x0000000000000000, 0x00006fa0afdcda20), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000f1974c001), RTUINT128_INIT_C(0x0000000000000000, 0x00000d1795eac2b8) + }, + { /* i=1097; 113 / 88 */ + RTUINT128_INIT_C(0x0000d8622f51db9e, 0x4a4ec64b5fbe5272), RTUINT128_INIT_C(0x0000000000a3b30a, 0xdb6d45949a946b84), + RTUINT128_INIT_C(0x0000000000000000, 0x00000000015263c3), RTUINT128_INIT_C(0x00000000000d9138, 0x05f6365c46d460e6) + }, + { /* i=1098; 85 / 73 */ + RTUINT128_INIT_C(0x00000000000df944, 0x9f33d8f9dd32d2a8), RTUINT128_INIT_C(0x00000000000000b7, 0x6cb6cccb6340bd18), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000001380), RTUINT128_INIT_C(0x000000000000007c, 0xb29a5aea6ecb7ea8) + }, + { /* i=1099; 27 / 5 */ + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000c73573), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000014), + RTUINT128_INIT_C(0x0000000000000000, 0x000000000009f5df), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000007) + }, + { /* i=1100; 127 / 127 */ + RTUINT128_INIT_C(0x00ee14f93d2535bb, 0x9f716e86a724c831), RTUINT128_INIT_C(0x0b1f831548fd4b67, 0x6b9fba591563afbb), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x00ee14f93d2535bb, 0x9f716e86a724c831) + }, + { /* i=1101; 69 / 27 */ + RTUINT128_INIT_C(0x0000000000000012, 0x2cc1f2207a590aed), RTUINT128_INIT_C(0x0000000000000000, 0x0000000005e2c89f), + RTUINT128_INIT_C(0x0000000000000000, 0x000003167ee31b3d), RTUINT128_INIT_C(0x0000000000000000, 0x000000000129780a) + }, + { /* i=1102; 109 / 87 */ + RTUINT128_INIT_C(0x00001be0d0f0396e, 0x892e04c6bbbf9b86), RTUINT128_INIT_C(0x00000000003040d0, 0x7c57e76ffdb51332), + RTUINT128_INIT_C(0x0000000000000000, 0x000000000093e74e), RTUINT128_INIT_C(0x000000000008f33b, 0x6f40c3bf048ba44a) + }, + { /* i=1103; 64 / 49 */ + RTUINT128_INIT_C(0x0000000000000000, 0xe202851e16640a81), RTUINT128_INIT_C(0x0000000000000000, 0x00016819ac141611), + RTUINT128_INIT_C(0x0000000000000000, 0x000000000000a0ac), RTUINT128_INIT_C(0x0000000000000000, 0x00008851eb1a9715) + }, + { /* i=1104; 41 / 104 */ + RTUINT128_INIT_C(0x0000000000000000, 0x00000015a860c9f6), RTUINT128_INIT_C(0x000000887b56042e, 0x840757658ebf82a9), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x0000000000000000, 0x00000015a860c9f6) + }, + { /* i=1105; 46 / 13 */ + RTUINT128_INIT_C(0x0000000000000000, 0x00001bf131300c58), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000920), + RTUINT128_INIT_C(0x0000000000000000, 0x000000030fe955ec), RTUINT128_INIT_C(0x0000000000000000, 0x00000000000002d8) + }, + { /* i=1106; 115 / 104 */ + RTUINT128_INIT_C(0x0003b040a4591cd2, 0xd7b03c765d9b7be7), RTUINT128_INIT_C(0x00000050ef350741, 0x5539d4419e392896), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000baa), RTUINT128_INIT_C(0x0000003a83d27cc6, 0xc32a7716d6e8164b) + }, + { /* i=1107; 34 / 34 */ + RTUINT128_INIT_C(0x0000000000000000, 0x000000039608b879), RTUINT128_INIT_C(0x0000000000000000, 0x0000000222e3c725), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000001), RTUINT128_INIT_C(0x0000000000000000, 0x000000017324f154) + }, + { /* i=1108; 45 / 32 */ + RTUINT128_INIT_C(0x0000000000000000, 0x0000054b78dc8bb7), RTUINT128_INIT_C(0x0000000000000000, 0x000000007e41d713), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000abc), RTUINT128_INIT_C(0x0000000000000000, 0x000000002e1bdbc3) + }, + { /* i=1109; 79 / 76 */ + RTUINT128_INIT_C(0x0000000000000241, 0x171dc358fcbbf66f), RTUINT128_INIT_C(0x0000000000000452, 0x63f4ee64eec24b5a), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x0000000000000241, 0x171dc358fcbbf66f) + }, + { /* i=1110; 80 / 69 */ + RTUINT128_INIT_C(0x00000000000074ca, 0x50baeca16a98ad78), RTUINT128_INIT_C(0x000000000000000f, 0x37922c634cae762c), + RTUINT128_INIT_C(0x0000000000000000, 0x00000000000007ac), RTUINT128_INIT_C(0x000000000000000b, 0xfb4e62d1202613e8) + }, + { /* i=1111; 68 / 3 */ + RTUINT128_INIT_C(0x0000000000000001, 0x1a688907fb0486c7), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000003), + RTUINT128_INIT_C(0x0000000000000000, 0x5e22d857fe56d797), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000002) + }, + { /* i=1112; 93 / 41 */ + RTUINT128_INIT_C(0x000000000e617462, 0xee24d891e3c2bbbf), RTUINT128_INIT_C(0x0000000000000000, 0x000001cb08ed9fae), + RTUINT128_INIT_C(0x0000000000000000, 0x0008051dff069140), RTUINT128_INIT_C(0x0000000000000000, 0x0000016b00d5423f) + }, + { /* i=1113; 119 / 116 */ + RTUINT128_INIT_C(0x00713771a2e94fac, 0x99d3bfc4398b73cb), RTUINT128_INIT_C(0x0008313110c35474, 0x240e70c407784ffe), + RTUINT128_INIT_C(0x0000000000000000, 0x000000000000000d), RTUINT128_INIT_C(0x0006b7f3c8fe05c6, 0xc51805cfd86f63e5) + }, + { /* i=1114; 100 / 10 */ + RTUINT128_INIT_C(0x0000000770721bf9, 0xc4676254afb71116), RTUINT128_INIT_C(0x0000000000000000, 0x000000000000002a), + RTUINT128_INIT_C(0x000000002d580cdb, 0x47b951944d5398c9), RTUINT128_INIT_C(0x0000000000000000, 0x000000000000001c) + }, + { /* i=1115; 69 / 61 */ + RTUINT128_INIT_C(0x000000000000000d, 0x63206b3de2cfe8cd), RTUINT128_INIT_C(0x0000000000000000, 0x03d56e74ee2fff1a), + RTUINT128_INIT_C(0x0000000000000000, 0x000000000000037d), RTUINT128_INIT_C(0x0000000000000000, 0x039e1d5b05630b1b) + }, + { /* i=1116; 118 / 35 */ + RTUINT128_INIT_C(0x0029ac3e9ca34488, 0x072ca1167885a6e0), RTUINT128_INIT_C(0x0000000000000000, 0x0000000431d933f1), + RTUINT128_INIT_C(0x000000000009ef41, 0x525f00bd2e1a0ba0), RTUINT128_INIT_C(0x0000000000000000, 0x00000001670fd540) + }, + { /* i=1117; 121 / 21 */ + RTUINT128_INIT_C(0x00d53af573e80e40, 0x3673a59de7af69d0), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000180021), + RTUINT128_INIT_C(0x00000008e268ad84, 0x6757498221d3a5ce), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000170a42) + }, + { /* i=1118; 116 / 100 */ + RTUINT128_INIT_C(0x00014aa13e41bddc, 0x198a788f3ec287cc), RTUINT128_INIT_C(0x0000000acec06fe7, 0xbd928e9dc6c567cc), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000001e97), RTUINT128_INIT_C(0x00000006bda293f4, 0x1b61dc33de286678) + }, + { /* i=1119; 126 / 55 */ + RTUINT128_INIT_C(0x3b6c91184ed6e7e1, 0x4c08bd50d42b89b3), RTUINT128_INIT_C(0x0000000000000000, 0x007c3e75364fe22f), + RTUINT128_INIT_C(0x000000000000007a, 0x70eab56eaaa1441b), RTUINT128_INIT_C(0x0000000000000000, 0x005a64e46c1b32be) + }, + { /* i=1120; 67 / 7 */ + RTUINT128_INIT_C(0x0000000000000001, 0x6d31eaae259c2dde), RTUINT128_INIT_C(0x0000000000000000, 0x000000000000000a), + RTUINT128_INIT_C(0x0000000000000000, 0x2484fdde36f60496), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000002) + }, + { /* i=1121; 94 / 56 */ + RTUINT128_INIT_C(0x00000000220515ed, 0x03436f6e9f547537), RTUINT128_INIT_C(0x0000000000000000, 0x0041b6b0c9660300), + RTUINT128_INIT_C(0x0000000000000000, 0x0000008487e784cd), RTUINT128_INIT_C(0x0000000000000000, 0x001ce9630a180e37) + }, + { /* i=1122; 79 / 93 */ + RTUINT128_INIT_C(0x0000000000006d69, 0xf9dfcae58b26bc96), RTUINT128_INIT_C(0x0000000002554f08, 0x91e9562f7d5edb56), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x0000000000006d69, 0xf9dfcae58b26bc96) + }, + { /* i=1123; 76 / 18 */ + RTUINT128_INIT_C(0x0000000000000f71, 0x42182e7280f83c34), RTUINT128_INIT_C(0x0000000000000000, 0x000000000001666c), + RTUINT128_INIT_C(0x0000000000000000, 0x0b079560a7185206), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000013dac) + }, + { /* i=1124; 125 / 93 */ + RTUINT128_INIT_C(0x0d0f776e0d70b684, 0x06c9ed46029d31f5), RTUINT128_INIT_C(0x000000001f61d5e5, 0x00637f993bd08d0d), + RTUINT128_INIT_C(0x0000000000000000, 0x000000006a8a5297), RTUINT128_INIT_C(0x00000000149cc9d8, 0xb1dbfbe78269d54a) + }, + { /* i=1125; 115 / 88 */ + RTUINT128_INIT_C(0x0002682074869fe2, 0x1c6e8fc55fff60d4), RTUINT128_INIT_C(0x0000000000a61261, 0x4df2cf15c5e64b61), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000003b5c2b8), RTUINT128_INIT_C(0x000000000085b7c6, 0x694499712ec4b11c) + }, + { /* i=1126; 39 / 3 */ + RTUINT128_INIT_C(0x0000000000000000, 0x0000004dea4b29c0), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000003), + RTUINT128_INIT_C(0x0000000000000000, 0x00000019f8c3b895), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000001) + }, + { /* i=1127; 117 / 83 */ + RTUINT128_INIT_C(0x00102090b9de7397, 0x9cc22a74f7d4e1cb), RTUINT128_INIT_C(0x0000000000054c13, 0x8ed6c756229be9c7), + RTUINT128_INIT_C(0x0000000000000000, 0x000000030b63e791), RTUINT128_INIT_C(0x000000000000e8fd, 0xb59cb6c4b89de714) + }, + { /* i=1128; 90 / 81 */ + RTUINT128_INIT_C(0x0000000003662f30, 0xcb72e864eaa43983), RTUINT128_INIT_C(0x000000000001088f, 0xad8265c90c18d688), + RTUINT128_INIT_C(0x0000000000000000, 0x000000000000034a), RTUINT128_INIT_C(0x00000000000006a0, 0x1c90212320f29e33) + }, + { /* i=1129; 75 / 32 */ + RTUINT128_INIT_C(0x0000000000000365, 0xb69faa8ef104aa5b), RTUINT128_INIT_C(0x0000000000000000, 0x00000000804acb49), + RTUINT128_INIT_C(0x0000000000000000, 0x000006c7772a3bf4), RTUINT128_INIT_C(0x0000000000000000, 0x0000000023e715c7) + }, + { /* i=1130; 116 / 92 */ + RTUINT128_INIT_C(0x00051356163b7cef, 0x4bd7fbd47b610775), RTUINT128_INIT_C(0x000000000f61b594, 0xe8a40c5305b0d96e), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000547916), RTUINT128_INIT_C(0x0000000000262a59, 0xb8add0fa0f515a01) + }, + { /* i=1131; 121 / 40 */ + RTUINT128_INIT_C(0x00a219186b47775b, 0x4513b4c22bb01f4d), RTUINT128_INIT_C(0x0000000000000000, 0x0000004b0c6d1e51), + RTUINT128_INIT_C(0x00000000000228ef, 0xce7aee06178df5bf), RTUINT128_INIT_C(0x0000000000000000, 0x000000267ea5fbde) + }, + { /* i=1132; 109 / 1 */ + RTUINT128_INIT_C(0x000012b3af039d58, 0xc0eb843e0891b926), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000001), + RTUINT128_INIT_C(0x000012b3af039d58, 0xc0eb843e0891b926), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000) + }, + { /* i=1133; 113 / 26 */ + RTUINT128_INIT_C(0x0001291fb52a688d, 0xce54115f7bf4aece), RTUINT128_INIT_C(0x0000000000000000, 0x0000000003ff80f5), + RTUINT128_INIT_C(0x00000000004a5125, 0xa764cdc06ed7e856), RTUINT128_INIT_C(0x0000000000000000, 0x00000000037e5480) + }, + { /* i=1134; 114 / 44 */ + RTUINT128_INIT_C(0x000011796369dd74, 0x601bd98620cbebff), RTUINT128_INIT_C(0x0000000000000000, 0x00000b955ad0c838), + RTUINT128_INIT_C(0x0000000000000001, 0x823062eff7d3ce00), RTUINT128_INIT_C(0x0000000000000000, 0x000002e71186dbff) + }, + { /* i=1135; 118 / 87 */ + RTUINT128_INIT_C(0x0009fee62eb09bf0, 0x2a6b62e1777ac58d), RTUINT128_INIT_C(0x00000000005ef125, 0x457c866ecf48cec6), + RTUINT128_INIT_C(0x0000000000000000, 0x000000001af3c62d), RTUINT128_INIT_C(0x00000000000dc9c9, 0xc751e5f855cf48bf) + }, + { /* i=1136; 62 / 124 */ + RTUINT128_INIT_C(0x0000000000000000, 0x336a3af4dd3b8ba0), RTUINT128_INIT_C(0x068e5d92dade08cb, 0xb5cea9ee6ccecdd3), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x0000000000000000, 0x336a3af4dd3b8ba0) + }, + { /* i=1137; 125 / 54 */ + RTUINT128_INIT_C(0x1df3b3947d0e39a0, 0x6931adb3d942f2ca), RTUINT128_INIT_C(0x0000000000000000, 0x003e41f76e1a0d38), + RTUINT128_INIT_C(0x000000000000007b, 0x29258d8f239c1b5c), RTUINT128_INIT_C(0x0000000000000000, 0x001afe34d2614aaa) + }, + { /* i=1138; 119 / 120 */ + RTUINT128_INIT_C(0x001ecbc4a3185cd5, 0xcbed59ff780632c9), RTUINT128_INIT_C(0x00a9f9f8210042d8, 0xa593a1e53f0cf447), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x001ecbc4a3185cd5, 0xcbed59ff780632c9) + }, + { /* i=1139; 104 / 46 */ + RTUINT128_INIT_C(0x0000001ae352545d, 0x9aadca29e7ec65e7), RTUINT128_INIT_C(0x0000000000000000, 0x000013a39c4cfa0f), + RTUINT128_INIT_C(0x0000000000000000, 0x015e7d992765b2a7), RTUINT128_INIT_C(0x0000000000000000, 0x00000d537aebd81e) + }, + { /* i=1140; 98 / 21 */ + RTUINT128_INIT_C(0x000000039f5800c9, 0x5e183f08e45c60d9), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000184cf7), + RTUINT128_INIT_C(0x0000000000002629, 0x49e03059f42819c0), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000068899) + }, + { /* i=1141; 76 / 13 */ + RTUINT128_INIT_C(0x0000000000000c2c, 0x82a33430177bcd19), RTUINT128_INIT_C(0x0000000000000000, 0x00000000000007ec), + RTUINT128_INIT_C(0x0000000000000001, 0x8967d8028c61e434), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000129) + }, + { /* i=1142; 118 / 105 */ + RTUINT128_INIT_C(0x001e6d2ff7c470e0, 0x98fed35570c3e976), RTUINT128_INIT_C(0x000001373dafe461, 0xa8340c1ec37ec01c), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000001906), RTUINT128_INIT_C(0x000000de58578d29, 0x929789857b08acce) + }, + { /* i=1143; 88 / 53 */ + RTUINT128_INIT_C(0x00000000007ffe21, 0x3386317292a9cd10), RTUINT128_INIT_C(0x0000000000000000, 0x001d49b72f4e9b37), + RTUINT128_INIT_C(0x0000000000000000, 0x000000045ec20bae), RTUINT128_INIT_C(0x0000000000000000, 0x0008147c38e2f0ae) + }, + { /* i=1144; 115 / 77 */ + RTUINT128_INIT_C(0x0007fc273ccf0008, 0x130f80a314d86894), RTUINT128_INIT_C(0x00000000000013be, 0x7fcfe6f88150a352), + RTUINT128_INIT_C(0x0000000000000000, 0x00000067883bc71a), RTUINT128_INIT_C(0x00000000000013ba, 0x33fc84890fcd1440) + }, + { /* i=1145; 121 / 66 */ + RTUINT128_INIT_C(0x00e70163d69100a4, 0xd5bc7f72f1fb45d8), RTUINT128_INIT_C(0x0000000000000001, 0x146dcdc143620d16), + RTUINT128_INIT_C(0x0000000000000000, 0x00d5eef5ef4bca12), RTUINT128_INIT_C(0x0000000000000000, 0x83d346b17750fe4c) + }, + { /* i=1146; 121 / 66 */ + RTUINT128_INIT_C(0x0126a7abd814eb71, 0xc92b2366ab5baaff), RTUINT128_INIT_C(0x0000000000000000, 0x035baa6c3911030b), + RTUINT128_INIT_C(0x0000000000000000, 0x57becf6f3e5a106d), RTUINT128_INIT_C(0x0000000000000000, 0x019e6a44930eaf50) + }, + { /* i=1147; 75 / 8 */ + RTUINT128_INIT_C(0x00000000000003db, 0x6fde0ad98bd0278c), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000040), + RTUINT128_INIT_C(0x000000000000000f, 0x6dbf782b662f409e), RTUINT128_INIT_C(0x0000000000000000, 0x000000000000000c) + }, + { /* i=1148; 120 / 69 */ + RTUINT128_INIT_C(0x004003e6f63bfc02, 0x1587246ddbf51ccd), RTUINT128_INIT_C(0x000000000000001e, 0x1d872ab9323d8cf2), + RTUINT128_INIT_C(0x0000000000000000, 0x0002202bd294f0b4), RTUINT128_INIT_C(0x0000000000000017, 0xc04f0542d4a322a5) + }, + { /* i=1149; 46 / 24 */ + RTUINT128_INIT_C(0x0000000000000000, 0x000017a6585f3876), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000a39eb8), + RTUINT128_INIT_C(0x0000000000000000, 0x00000000002500a2), RTUINT128_INIT_C(0x0000000000000000, 0x00000000003cc806) + }, + { /* i=1150; 121 / 121 */ + RTUINT128_INIT_C(0x00a7e0e81494cb1a, 0x15c93864e7f8288c), RTUINT128_INIT_C(0x0199f6197c56b086, 0x8c301858a1fff093), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x00a7e0e81494cb1a, 0x15c93864e7f8288c) + }, + { /* i=1151; 91 / 56 */ + RTUINT128_INIT_C(0x00000000043b6ce9, 0x155bcbac2cc1028a), RTUINT128_INIT_C(0x0000000000000000, 0x00b1cdb42e8c72da), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000617e81a78), RTUINT128_INIT_C(0x0000000000000000, 0x005b93c66bb1085a) + }, + { /* i=1152; 31 / 126 */ + RTUINT128_INIT_C(0x0000000000000000, 0x0000000040a10390), RTUINT128_INIT_C(0x2b06c74a72b3cbca, 0x94c0e7584bb12e85), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x0000000000000000, 0x0000000040a10390) + }, + { /* i=1153; 114 / 95 */ + RTUINT128_INIT_C(0x0003e705902eb1d9, 0x39097cb918e60987), RTUINT128_INIT_C(0x0000000025573c43, 0x68feafa844f6550f), + RTUINT128_INIT_C(0x0000000000000000, 0x00000000001ac112), RTUINT128_INIT_C(0x000000000cc4f915, 0xfd9c45e1e5edbf79) + }, + { /* i=1154; 70 / 52 */ + RTUINT128_INIT_C(0x0000000000000008, 0x51f0a0479d850d4e), RTUINT128_INIT_C(0x0000000000000000, 0x000c840f0d9482a6), + RTUINT128_INIT_C(0x0000000000000000, 0x000000000000aa2d), RTUINT128_INIT_C(0x0000000000000000, 0x000b6a9d9ba7da20) + }, + { /* i=1155; 65 / 22 */ + RTUINT128_INIT_C(0x0000000000000000, 0x1037d307333829a6), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000110ee0), + RTUINT128_INIT_C(0x0000000000000000, 0x000000f3649ef7ea), RTUINT128_INIT_C(0x0000000000000000, 0x00000000000670e6) + }, + { /* i=1156; 122 / 36 */ + RTUINT128_INIT_C(0x02474ed7d2d674d0, 0xcfb6b99d3ee17a6c), RTUINT128_INIT_C(0x0000000000000000, 0x0000000961226f79), + RTUINT128_INIT_C(0x00000000003e30ab, 0xb10cd8e3d3414ad0), RTUINT128_INIT_C(0x0000000000000000, 0x0000000055f4ee1c) + }, + { /* i=1157; 78 / 30 */ + RTUINT128_INIT_C(0x00000000000034e3, 0x212d17bab5a3eb4c), RTUINT128_INIT_C(0x0000000000000000, 0x00000000026878c8), + RTUINT128_INIT_C(0x0000000000000000, 0x0015f6585475aa35), RTUINT128_INIT_C(0x0000000000000000, 0x00000000026619e4) + }, + { /* i=1158; 78 / 72 */ + RTUINT128_INIT_C(0x0000000000000e1c, 0xcbc3d928532b2829), RTUINT128_INIT_C(0x000000000000003e, 0xdf009d180dfa4d7c), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000039), RTUINT128_INIT_C(0x000000000000001d, 0x24a0decd366fe78d) + }, + { /* i=1159; 121 / 64 */ + RTUINT128_INIT_C(0x01ab4f6a22c72d97, 0x01234997bea4f7b1), RTUINT128_INIT_C(0x0000000000000000, 0xb5926f579e6b4a78), + RTUINT128_INIT_C(0x0000000000000000, 0x025a77ee9c46bbf0), RTUINT128_INIT_C(0x0000000000000000, 0xb47a30735dd97f31) + }, + { /* i=1160; 121 / 89 */ + RTUINT128_INIT_C(0x01fe6aee8fbb895e, 0xe068e89a020aa145), RTUINT128_INIT_C(0x0000000001e01d8a, 0x3dc8eb5b4511468e), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000110284804), RTUINT128_INIT_C(0x0000000000ad105f, 0xa76e6a162bbd970d) + }, + { /* i=1161; 113 / 79 */ + RTUINT128_INIT_C(0x000181971cdc19d6, 0x4932f9555c6e46fd), RTUINT128_INIT_C(0x00000000000069e1, 0x18494ecf8a842ae6), + RTUINT128_INIT_C(0x0000000000000000, 0x00000003a44c77f7), RTUINT128_INIT_C(0x00000000000036ae, 0xccef2a4932aff913) + }, + { /* i=1162; 120 / 121 */ + RTUINT128_INIT_C(0x00e41d5747a61f29, 0x169320718b362550), RTUINT128_INIT_C(0x0147cf0bcb04b058, 0xead0dab126033ffe), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x00e41d5747a61f29, 0x169320718b362550) + }, + { /* i=1163; 119 / 63 */ + RTUINT128_INIT_C(0x00059010b40bcbef, 0xc389824db7a7627d), RTUINT128_INIT_C(0x0000000000000000, 0x3bcc71e34094ddcc), + RTUINT128_INIT_C(0x0000000000000000, 0x0017d07968ba14d7), RTUINT128_INIT_C(0x0000000000000000, 0x18b01fb6d3152c29) + }, + { /* i=1164; 106 / 38 */ + RTUINT128_INIT_C(0x0000026a27c9e90f, 0x8a64f409ffbe9d56), RTUINT128_INIT_C(0x0000000000000000, 0x00000019337a11c8), + RTUINT128_INIT_C(0x0000000000000018, 0x876799fe82ea11a8), RTUINT128_INIT_C(0x0000000000000000, 0x000000094ba4aa16) + }, + { /* i=1165; 34 / 12 */ + RTUINT128_INIT_C(0x0000000000000000, 0x0000000137e56254), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000d90), + RTUINT128_INIT_C(0x0000000000000000, 0x000000000016ff37), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000864) + }, + { /* i=1166; 121 / 23 */ + RTUINT128_INIT_C(0x00982c291047ffb3, 0x508cc972bcf4dcdf), RTUINT128_INIT_C(0x0000000000000000, 0x00000000002dad14), + RTUINT128_INIT_C(0x0000000354e0f153, 0x32c0ddf1c1d5bc9e), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000055a87) + }, + { /* i=1167; 125 / 107 */ + RTUINT128_INIT_C(0x10f41bbc3559222a, 0x442f2a7dd7e208cb), RTUINT128_INIT_C(0x000005f05afe7722, 0x77475f0b715bc3f8), + RTUINT128_INIT_C(0x0000000000000000, 0x000000000002dacb), RTUINT128_INIT_C(0x000002aa6dd861b4, 0x29902b2b474c7323) + }, + { /* i=1168; 66 / 22 */ + RTUINT128_INIT_C(0x0000000000000000, 0xf6fae49bee85dac5), RTUINT128_INIT_C(0x0000000000000000, 0x000000000031f33e), + RTUINT128_INIT_C(0x0000000000000000, 0x000004f1ccab389e), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000122a81) + }, + { /* i=1169; 48 / 96 */ + RTUINT128_INIT_C(0x0000000000000000, 0x0000658d2da289cf), RTUINT128_INIT_C(0x000000002cde49d8, 0x84ea84596272fc41), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x0000000000000000, 0x0000658d2da289cf) + }, + { /* i=1170; 124 / 115 */ + RTUINT128_INIT_C(0x0c22a90cc1953ed5, 0xb59a5768337d1d1d), RTUINT128_INIT_C(0x00050070169611d9, 0x87af6108f767aab6), + RTUINT128_INIT_C(0x0000000000000000, 0x000000000000026d), RTUINT128_INIT_C(0x00009925f78bf227, 0x912bf4a80d04019f) + }, + { /* i=1171; 125 / 116 */ + RTUINT128_INIT_C(0x02c263e016b8cb5c, 0x29d58809939507a7), RTUINT128_INIT_C(0x000eba015adfb7ca, 0x94c6bd938a9e2a9a), + RTUINT128_INIT_C(0x0000000000000000, 0x000000000000002f), RTUINT128_INIT_C(0x000e3da067a60d2a, 0xd958b9f3208b3561) + }, + { /* i=1172; 113 / 117 */ + RTUINT128_INIT_C(0x0000e6e1c1cd23df, 0xb40b630bff6f7f61), RTUINT128_INIT_C(0x00028951301371e8, 0x08b3e592b4959a45), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x0000e6e1c1cd23df, 0xb40b630bff6f7f61) + }, + { /* i=1173; 107 / 11 */ + RTUINT128_INIT_C(0x00000238a8a77258, 0x165c9fb222221542), RTUINT128_INIT_C(0x0000000000000000, 0x000000000000057b), + RTUINT128_INIT_C(0x0000000067c2cf8b, 0xa63e1ac0fe61d37e), RTUINT128_INIT_C(0x0000000000000000, 0x00000000000001b8) + }, + { /* i=1174; 127 / 37 */ + RTUINT128_INIT_C(0x5f65704c42e7a2ba, 0xb299ac4a9d91ab66), RTUINT128_INIT_C(0x0000000000000000, 0x0000000b2b0d9a7e), + RTUINT128_INIT_C(0x00000000088ab2e9, 0xd77325cd8a51c989), RTUINT128_INIT_C(0x0000000000000000, 0x00000007171f0ff8) + }, + { /* i=1175; 126 / 46 */ + RTUINT128_INIT_C(0x31940c95793f53e7, 0x617258140a8e752f), RTUINT128_INIT_C(0x0000000000000000, 0x00001321bf37f9a4), + RTUINT128_INIT_C(0x0000000000029766, 0x5c7af90e2c9d83d6), RTUINT128_INIT_C(0x0000000000000000, 0x000005d04370da17) + }, + { /* i=1176; 122 / 110 */ + RTUINT128_INIT_C(0x03f6e1779ad76f84, 0xe9095ac89b6446c4), RTUINT128_INIT_C(0x00003791c53c0c69, 0x96eae216a01b3583), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000001243), RTUINT128_INIT_C(0x00001672c340c345, 0xe5aa979aca820f7b) + }, + { /* i=1177; 122 / 63 */ + RTUINT128_INIT_C(0x00accc6928aced9a, 0x3523489f918fcdc0), RTUINT128_INIT_C(0x0000000000000000, 0x76a9d8f8780538a3), + RTUINT128_INIT_C(0x0000000000000000, 0x0174c9ee6ca41ad5), RTUINT128_INIT_C(0x0000000000000000, 0x6ccacbec210b2021) + }, + { /* i=1178; 126 / 94 */ + RTUINT128_INIT_C(0x23986cfb0d22c94f, 0xa66e80ded5a5027a), RTUINT128_INIT_C(0x000000000a4603f9, 0x9007404fc1abe3e2), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000376fbd5b2), RTUINT128_INIT_C(0x0000000008fc1143, 0x6265a30d8cef8556) + }, + { /* i=1179; 113 / 85 */ + RTUINT128_INIT_C(0x00003ff6cadc5212, 0x61a687dfe179c908), RTUINT128_INIT_C(0x00000000000bf857, 0x410fcfe28b451c71), + RTUINT128_INIT_C(0x0000000000000000, 0x000000000557fa08), RTUINT128_INIT_C(0x00000000000aee5f, 0xd56f1ebf2a238b80) + }, + { /* i=1180; 92 / 76 */ + RTUINT128_INIT_C(0x00000000079448e6, 0x58bdbd08811c1712), RTUINT128_INIT_C(0x00000000000009e7, 0x4a38001c522d477d), + RTUINT128_INIT_C(0x0000000000000000, 0x000000000000c3eb), RTUINT128_INIT_C(0x000000000000040c, 0x8f40107094174053) + }, + { /* i=1181; 50 / 12 */ + RTUINT128_INIT_C(0x0000000000000000, 0x0000637bf9e8528d), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000a4e), + RTUINT128_INIT_C(0x0000000000000000, 0x00000009a77e890e), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000449) + }, + { /* i=1182; 116 / 43 */ + RTUINT128_INIT_C(0x000a86bc06545bd6, 0x5ea1d1a95025d909), RTUINT128_INIT_C(0x0000000000000000, 0x0000063dc18d3960), + RTUINT128_INIT_C(0x00000000000001af, 0xc35705fe8df3683a), RTUINT128_INIT_C(0x0000000000000000, 0x00000222c0b7d949) + }, + { /* i=1183; 125 / 126 */ + RTUINT128_INIT_C(0x1fac1d0ffdefcbe2, 0xd210e018f4b0f3a9), RTUINT128_INIT_C(0x0bd281d89e90721a, 0x00d481a656317652), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000002), RTUINT128_INIT_C(0x0807195ec0cee7ae, 0xd067dccc484e0705) + }, + { /* i=1184; 117 / 96 */ + RTUINT128_INIT_C(0x00067db7eb616dac, 0x86e2b91af3eee570), RTUINT128_INIT_C(0x00000000d6b5f523, 0x9be5e3f8e9894484), + RTUINT128_INIT_C(0x0000000000000000, 0x000000000007bd45), RTUINT128_INIT_C(0x000000000261cdb1, 0x8ccf1fd8cabdf9dc) + }, + { /* i=1185; 9 / 56 */ + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000130), RTUINT128_INIT_C(0x0000000000000000, 0x00e91cc292af9770), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000130) + }, + { /* i=1186; 91 / 29 */ + RTUINT128_INIT_C(0x00000000026d4748, 0xe0b35acd8b37b0c5), RTUINT128_INIT_C(0x0000000000000000, 0x000000000810b8d6), + RTUINT128_INIT_C(0x0000000000000000, 0x4d07e58ec5cf4a51), RTUINT128_INIT_C(0x0000000000000000, 0x000000000575590f) + }, + { /* i=1187; 121 / 86 */ + RTUINT128_INIT_C(0x01fa0bffacc70116, 0xf95b6f1f3a925d61), RTUINT128_INIT_C(0x0000000000318b05, 0x80d1ded8f75c70e0), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000a36db6509), RTUINT128_INIT_C(0x00000000001bc50d, 0x93a97b43402a0581) + }, + { /* i=1188; 93 / 68 */ + RTUINT128_INIT_C(0x0000000011a8318d, 0x5511771f92605f66), RTUINT128_INIT_C(0x0000000000000002, 0xb2cc6838dee19715), + RTUINT128_INIT_C(0x0000000000000000, 0x00000000068b1e6e), RTUINT128_INIT_C(0x0000000000000002, 0xa0ebb689d755fe60) + }, + { /* i=1189; 25 / 22 */ + RTUINT128_INIT_C(0x0000000000000000, 0x000000000138e42e), RTUINT128_INIT_C(0x0000000000000000, 0x00000000000aba4e), + RTUINT128_INIT_C(0x0000000000000000, 0x000000000000001d), RTUINT128_INIT_C(0x0000000000000000, 0x000000000001c958) + }, + { /* i=1190; 55 / 3 */ + RTUINT128_INIT_C(0x0000000000000000, 0x0020d1e3bc6d33f6), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000003), + RTUINT128_INIT_C(0x0000000000000000, 0x000af0a13ecf1152), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000) + }, + { /* i=1191; 104 / 74 */ + RTUINT128_INIT_C(0x000000d15720e2ea, 0xb91a4f7272bf83f9), RTUINT128_INIT_C(0x0000000000000176, 0xc2827c0c4ffc8a12), + RTUINT128_INIT_C(0x0000000000000000, 0x000000008f005356), RTUINT128_INIT_C(0x00000000000000aa, 0x325e9440a5254bed) + }, + { /* i=1192; 123 / 75 */ + RTUINT128_INIT_C(0x07058fdf1252a077, 0x898cbf7daf56ccfe), RTUINT128_INIT_C(0x00000000000000d5, 0x8870532aa1889ca1), + RTUINT128_INIT_C(0x0000000000000000, 0x00086b0ec97ca2f7), RTUINT128_INIT_C(0x0000000000000047, 0x3b192a2f1a6dcba7) + }, + { /* i=1193; 57 / 52 */ + RTUINT128_INIT_C(0x0000000000000000, 0x01d4669bb3581470), RTUINT128_INIT_C(0x0000000000000000, 0x0009bc7d21ff4d97), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000030), RTUINT128_INIT_C(0x0000000000000000, 0x00010f2553798820) + }, + { /* i=1194; 97 / 72 */ + RTUINT128_INIT_C(0x00000000437097a6, 0x9a6f9dae0c2d1eba), RTUINT128_INIT_C(0x00000000000000eb, 0x347605d8989d383c), + RTUINT128_INIT_C(0x0000000000000000, 0x00000000004966ff), RTUINT128_INIT_C(0x00000000000000ce, 0xa7c7f94a5a0e32f6) + }, + { /* i=1195; 116 / 113 */ + RTUINT128_INIT_C(0x000c21bcc8e3ea94, 0x2a3a6b514773621b), RTUINT128_INIT_C(0x0000333d2b9f0589, 0x86705c6eae7b8daf), + RTUINT128_INIT_C(0x0000000000000000, 0x000000000000003c), RTUINT128_INIT_C(0x00001f668f9e9e58, 0xa7e4c160627e2d17) + }, + { /* i=1196; 118 / 51 */ + RTUINT128_INIT_C(0x0023413334c284ca, 0xba7635a63805c63b), RTUINT128_INIT_C(0x0000000000000000, 0x0001e6dde7d12358), + RTUINT128_INIT_C(0x0000000000000012, 0x898cff5b1f4c9da8), RTUINT128_INIT_C(0x0000000000000000, 0x00013f34adf99c7b) + }, + { /* i=1197; 120 / 117 */ + RTUINT128_INIT_C(0x006e914477f09bbf, 0x086ca764bf5cf1e3), RTUINT128_INIT_C(0x0010149a8f0e4053, 0x9f9d493610b120ee), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000006), RTUINT128_INIT_C(0x000e15a51d9b19c9, 0x4abcf0205b362c4f) + }, + { /* i=1198; 114 / 98 */ + RTUINT128_INIT_C(0x00030b4f023bb2a8, 0xf8c3a64de0335a3f), RTUINT128_INIT_C(0x00000002b9af82b9, 0x620e5ff4cdf9f68e), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000011df3), RTUINT128_INIT_C(0x000000005c1a3a86, 0xe44b079f14723b75) + }, + { /* i=1199; 84 / 56 */ + RTUINT128_INIT_C(0x000000000006fe1d, 0x618eaea8f06d17fe), RTUINT128_INIT_C(0x0000000000000000, 0x009887c4a1489db4), + RTUINT128_INIT_C(0x0000000000000000, 0x000000000bbc7282), RTUINT128_INIT_C(0x0000000000000000, 0x004f9ce22722da96) + }, + { /* i=1200; 52 / 113 */ + RTUINT128_INIT_C(0x0000000000000000, 0x0007819c1ecb41b3), RTUINT128_INIT_C(0x0000db9a1a9ead6f, 0x2980049ec04f91f3), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x0000000000000000, 0x0007819c1ecb41b3) + }, + { /* i=1201; 120 / 124 */ + RTUINT128_INIT_C(0x000a095ecd580411, 0xd8eed3b8519373d3), RTUINT128_INIT_C(0x05312d297dc0066e, 0xb845b84f0f387edf), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x000a095ecd580411, 0xd8eed3b8519373d3) + }, + { /* i=1202; 79 / 47 */ + RTUINT128_INIT_C(0x0000000000000644, 0x4798c0e7ad0a5f83), RTUINT128_INIT_C(0x0000000000000000, 0x00002fe528095738), + RTUINT128_INIT_C(0x0000000000000000, 0x00000000217ee3f3), RTUINT128_INIT_C(0x0000000000000000, 0x00002f0b3e45ed5b) + }, + { /* i=1203; 112 / 26 */ + RTUINT128_INIT_C(0x000037944f2283d0, 0x351537aa9783bb6f), RTUINT128_INIT_C(0x0000000000000000, 0x000000000200e64a), + RTUINT128_INIT_C(0x00000000001bbdad, 0x59f86f7f8c326b62), RTUINT128_INIT_C(0x0000000000000000, 0x000000000076a51b) + }, + { /* i=1204; 87 / 83 */ + RTUINT128_INIT_C(0x00000000004fe75d, 0xd9a0289422748fc0), RTUINT128_INIT_C(0x00000000000296c8, 0xaa088c49cff4b615), + RTUINT128_INIT_C(0x0000000000000000, 0x000000000000001e), RTUINT128_INIT_C(0x0000000000023bd9, 0xec9fb7edc3c7394a) + }, + { /* i=1205; 107 / 60 */ + RTUINT128_INIT_C(0x0000065bb2c5882b, 0x26e29c5752afb633), RTUINT128_INIT_C(0x0000000000000000, 0x0698e74efec5d865), + RTUINT128_INIT_C(0x0000000000000000, 0x0000f6b9001213ce), RTUINT128_INIT_C(0x0000000000000000, 0x003544f7695215ed) + }, + { /* i=1206; 113 / 23 */ + RTUINT128_INIT_C(0x00015160ab8a02de, 0x26ab392d58802e8a), RTUINT128_INIT_C(0x0000000000000000, 0x000000000069a059), + RTUINT128_INIT_C(0x000000000331ae58, 0x816bc9d916d798c3), RTUINT128_INIT_C(0x0000000000000000, 0x00000000001732bf) + }, + { /* i=1207; 117 / 62 */ + RTUINT128_INIT_C(0x000725c648370c56, 0xa30422981379f523), RTUINT128_INIT_C(0x0000000000000000, 0x17ffc6866becd1a3), + RTUINT128_INIT_C(0x0000000000000000, 0x004c3e4eedd72e40), RTUINT128_INIT_C(0x0000000000000000, 0x07461df693b54263) + }, + { /* i=1208; 33 / 20 */ + RTUINT128_INIT_C(0x0000000000000000, 0x0000000112c7dcee), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000004fa8), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000037317), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000003cd6) + }, + { /* i=1209; 114 / 122 */ + RTUINT128_INIT_C(0x0000f1712e2b3ec7, 0xbd7bf28e9e5b0b0a), RTUINT128_INIT_C(0x037a259033898c14, 0x43928b29f728c602), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x0000f1712e2b3ec7, 0xbd7bf28e9e5b0b0a) + }, + { /* i=1210; 56 / 4 */ + RTUINT128_INIT_C(0x0000000000000000, 0x006bafd03c5b832a), RTUINT128_INIT_C(0x0000000000000000, 0x000000000000000c), + RTUINT128_INIT_C(0x0000000000000000, 0x0008f9515a5cf598), RTUINT128_INIT_C(0x0000000000000000, 0x000000000000000a) + }, + { /* i=1211; 127 / 62 */ + RTUINT128_INIT_C(0x3c9759f26b8bd2a2, 0x2b4d2afcd32e442f), RTUINT128_INIT_C(0x0000000000000000, 0x19573c85e02db2d6), + RTUINT128_INIT_C(0x0000000000000002, 0x641c4df7a7babc56), RTUINT128_INIT_C(0x0000000000000000, 0x16bfea0a6b03084b) + }, + { /* i=1212; 125 / 63 */ + RTUINT128_INIT_C(0x1d7a6b0e3e86e8f8, 0xdfd0e1abdb444370), RTUINT128_INIT_C(0x0000000000000000, 0x5306f28ffea39ce4), + RTUINT128_INIT_C(0x0000000000000000, 0x5ae41768b97266cb), RTUINT128_INIT_C(0x0000000000000000, 0x28e5502b1d7c02a4) + }, + { /* i=1213; 79 / 19 */ + RTUINT128_INIT_C(0x00000000000061c9, 0x466f5cf118e8be1e), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000044b2e), + RTUINT128_INIT_C(0x0000000000000000, 0x16c64611e21edb47), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000038a5c) + }, + { /* i=1214; 67 / 23 */ + RTUINT128_INIT_C(0x0000000000000001, 0xa69ba1a4d292f132), RTUINT128_INIT_C(0x0000000000000000, 0x00000000006f2e7f), + RTUINT128_INIT_C(0x0000000000000000, 0x000003cd12368370), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000599ca2) + }, + { /* i=1215; 102 / 40 */ + RTUINT128_INIT_C(0x00000003638e970c, 0x2ef6ed40595d5d13), RTUINT128_INIT_C(0x0000000000000000, 0x000000bebe894af3), + RTUINT128_INIT_C(0x0000000000000000, 0x048c5b97bedc27dc), RTUINT128_INIT_C(0x0000000000000000, 0x0000005bee21ef3f) + }, + { /* i=1216; 12 / 104 */ + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000c0c), RTUINT128_INIT_C(0x0000000fa4f00e87, 0xa42f8f58c1d7cd49), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000c0c) + }, + { /* i=1217; 100 / 34 */ + RTUINT128_INIT_C(0x0000000701a5835e, 0xe6048614e111bca3), RTUINT128_INIT_C(0x0000000000000000, 0x000000018962f512), + RTUINT128_INIT_C(0x0000000000000004, 0x8f3b7be59951ad3b), RTUINT128_INIT_C(0x0000000000000000, 0x000000010af4177d) + }, + { /* i=1218; 94 / 60 */ + RTUINT128_INIT_C(0x000000003f5501da, 0x2ec19d2466f3e691), RTUINT128_INIT_C(0x0000000000000000, 0x022542db20cf6c3d), + RTUINT128_INIT_C(0x0000000000000000, 0x0000001d8491ad33), RTUINT128_INIT_C(0x0000000000000000, 0x009f6a1beeef1d6a) + }, + { /* i=1219; 115 / 77 */ + RTUINT128_INIT_C(0x0007b24dad0f43a8, 0xcfb9dcc55cb50a51), RTUINT128_INIT_C(0x00000000000006ad, 0xe72e7010bf584cda), + RTUINT128_INIT_C(0x0000000000000000, 0x00000126fc72b4d7), RTUINT128_INIT_C(0x00000000000004d4, 0xddb594d5c26f373b) + }, + { /* i=1220; 123 / 119 */ + RTUINT128_INIT_C(0x024c0d1dbb85c862, 0x11e65bd567d6ed92), RTUINT128_INIT_C(0x0047ca8d05cf4e94, 0x83f060bb35616e4b), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000008), RTUINT128_INIT_C(0x000db8b58d0b53bd, 0xf26355fbbccb7b3a) + }, + { /* i=1221; 115 / 110 */ + RTUINT128_INIT_C(0x0005301f29ec57de, 0x492b1a3c7ffe1c0a), RTUINT128_INIT_C(0x0000179098b79706, 0x9c30f367b5ea45e3), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000038), RTUINT128_INIT_C(0x0000087dc1c34e6c, 0x1e75db8cb4bed262) + }, + { /* i=1222; 94 / 31 */ + RTUINT128_INIT_C(0x000000002e12819f, 0xa07e1e9c7cdb2f15), RTUINT128_INIT_C(0x0000000000000000, 0x0000000018dc4be2), + RTUINT128_INIT_C(0x0000000000000001, 0xda6d4b6a50823820), RTUINT128_INIT_C(0x0000000000000000, 0x0000000007f442d5) + }, + { /* i=1223; 22 / 14 */ + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000295687), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000001645), + RTUINT128_INIT_C(0x0000000000000000, 0x00000000000001db), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000480) + }, + { /* i=1224; 75 / 18 */ + RTUINT128_INIT_C(0x000000000000008a, 0x026ef8ca84765918), RTUINT128_INIT_C(0x0000000000000000, 0x00000000000183d0), + RTUINT128_INIT_C(0x0000000000000000, 0x005b1a1261ce6ba7), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000016c68) + }, + { /* i=1225; 64 / 10 */ + RTUINT128_INIT_C(0x0000000000000000, 0x1160d1c3fc77b53b), RTUINT128_INIT_C(0x0000000000000000, 0x00000000000000a2), + RTUINT128_INIT_C(0x0000000000000000, 0x001b763badce2bc9), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000009) + }, + { /* i=1226; 81 / 28 */ + RTUINT128_INIT_C(0x000000000001edc5, 0xa089c73819c44dc7), RTUINT128_INIT_C(0x0000000000000000, 0x000000000edc170a), + RTUINT128_INIT_C(0x0000000000000000, 0x00213a977c392527), RTUINT128_INIT_C(0x0000000000000000, 0x000000000dae5941) + }, + { /* i=1227; 84 / 22 */ + RTUINT128_INIT_C(0x000000000005643b, 0x1dcf4e26370e3c37), RTUINT128_INIT_C(0x0000000000000000, 0x00000000002f0d78), + RTUINT128_INIT_C(0x0000000000000000, 0x1d557287d859cad8), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000022ef7) + }, + { /* i=1228; 113 / 110 */ + RTUINT128_INIT_C(0x000006fbfb74e475, 0xc3c14d37be60bed9), RTUINT128_INIT_C(0x00003a49ec0ac21c, 0x25f933396cebfbb4), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x000006fbfb74e475, 0xc3c14d37be60bed9) + }, + { /* i=1229; 83 / 32 */ + RTUINT128_INIT_C(0x0000000000051412, 0xfe7fcabcaa1a8d4e), RTUINT128_INIT_C(0x0000000000000000, 0x00000000e90acd25), + RTUINT128_INIT_C(0x0000000000000000, 0x000594262a5fc42c), RTUINT128_INIT_C(0x0000000000000000, 0x000000002473f6f2) + }, + { /* i=1230; 128 / 79 */ + RTUINT128_INIT_C(0x2cedc11ba2b83e4b, 0xc116b250b3477883), RTUINT128_INIT_C(0x0000000000005f38, 0x2f22e6a1555a7e7f), + RTUINT128_INIT_C(0x0000000000000000, 0x000078cac366eeb1), RTUINT128_INIT_C(0x00000000000033bc, 0x2a8bf6cb6a81f0b4) + }, + { /* i=1231; 119 / 38 */ + RTUINT128_INIT_C(0x0057e22c38ff7585, 0x175308129989ab72), RTUINT128_INIT_C(0x0000000000000000, 0x000000306ace5f1b), + RTUINT128_INIT_C(0x000000000001d0ac, 0x4c36393e8fcd35d3), RTUINT128_INIT_C(0x0000000000000000, 0x000000219a21b131) + }, + { /* i=1232; 19 / 58 */ + RTUINT128_INIT_C(0x0000000000000000, 0x000000000000539b), RTUINT128_INIT_C(0x0000000000000000, 0x00def38f72601e97), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x0000000000000000, 0x000000000000539b) + }, + { /* i=1233; 113 / 105 */ + RTUINT128_INIT_C(0x000117d6bfa9cd6f, 0xb69a52c487f2b3a7), RTUINT128_INIT_C(0x000001af157e7c96, 0x1b0a36bdff88b324), + RTUINT128_INIT_C(0x0000000000000000, 0x00000000000000a6), RTUINT128_INIT_C(0x0000004ecfa5041a, 0x2dfad390d54e8a4f) + }, + { /* i=1234; 74 / 14 */ + RTUINT128_INIT_C(0x000000000000006d, 0xa2ca2968dc19384a), RTUINT128_INIT_C(0x0000000000000000, 0x000000000000211d), + RTUINT128_INIT_C(0x0000000000000000, 0x034f99632fe45721), RTUINT128_INIT_C(0x0000000000000000, 0x000000000000188d) + }, + { /* i=1235; 128 / 106 */ + RTUINT128_INIT_C(0x48622d5180938efc, 0x39f19f337a825621), RTUINT128_INIT_C(0x0000020d28ac165c, 0x10c3a3ceca2e207e), + RTUINT128_INIT_C(0x0000000000000000, 0x00000000002348ef), RTUINT128_INIT_C(0x00000011130a7f92, 0x27f3e3f94f14907f) + }, + { /* i=1236; 89 / 60 */ + RTUINT128_INIT_C(0x00000000004b8c39, 0xfc5f6bf47b473dcf), RTUINT128_INIT_C(0x0000000000000000, 0x0c0ff1d5918fcf5d), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000006435d13), RTUINT128_INIT_C(0x0000000000000000, 0x00076bb9fbef10e8) + }, + { /* i=1237; 110 / 15 */ + RTUINT128_INIT_C(0x00000513e133e6e9, 0x71bd5f92a62f49c2), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000003627), + RTUINT128_INIT_C(0x0000000018010e6b, 0xa39ee6147d662424), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000003046) + }, + { /* i=1238; 123 / 108 */ + RTUINT128_INIT_C(0x06180345e99a9df1, 0xba391d56a3fcba2b), RTUINT128_INIT_C(0x00000af977148259, 0x01c0b9c5362dfe0f), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000008e26), RTUINT128_INIT_C(0x00000230dc41e5c2, 0x90922603163cb1f1) + }, + { /* i=1239; 83 / 9 */ + RTUINT128_INIT_C(0x0000000000077823, 0x1c608eeacf583158), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000161), + RTUINT128_INIT_C(0x000000000000056a, 0xb4a885d80da425d9), RTUINT128_INIT_C(0x0000000000000000, 0x000000000000011f) + }, + { /* i=1240; 61 / 3 */ + RTUINT128_INIT_C(0x0000000000000000, 0x052645d788caa650), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000005), + RTUINT128_INIT_C(0x0000000000000000, 0x0107a79181c22143), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000001) + }, + { /* i=1241; 117 / 107 */ + RTUINT128_INIT_C(0x001d67fdaf2c0b1a, 0x174918bfa0ecf51a), RTUINT128_INIT_C(0x000005b20663cbed, 0x5527a71c30560273), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000529), RTUINT128_INIT_C(0x0000045ab634bf6d, 0xadabc84a351a51af) + }, + { /* i=1242; 5 / 2 */ + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000002), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000) + }, + { /* i=1243; 122 / 120 */ + RTUINT128_INIT_C(0x01aa503e85f19dcf, 0x7eff1fa33b1b0489), RTUINT128_INIT_C(0x00180eee54d5b4e2, 0x771abcd7fead33db), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000011), RTUINT128_INIT_C(0x0011526ae3c09ac5, 0x9638954b519a92fe) + }, + { /* i=1244; 120 / 73 */ + RTUINT128_INIT_C(0x00332274e1e3f74a, 0xd1224c8f3238fc70), RTUINT128_INIT_C(0x00000000000000d3, 0x4145761675c79118), + RTUINT128_INIT_C(0x0000000000000000, 0x00003df717742cab), RTUINT128_INIT_C(0x0000000000000024, 0x8f8e8cb1521af168) + }, + { /* i=1245; 125 / 6 */ + RTUINT128_INIT_C(0x1c350594f3b5ea50, 0x00bb3113a19bda71), RTUINT128_INIT_C(0x0000000000000000, 0x000000000000003f), + RTUINT128_INIT_C(0x00729e909627757f, 0x3cf6c7e3ddfe690d), RTUINT128_INIT_C(0x0000000000000000, 0x000000000000003e) + }, + { /* i=1246; 123 / 54 */ + RTUINT128_INIT_C(0x020d3f9b51a24dcc, 0x303b3cc63672332e), RTUINT128_INIT_C(0x0000000000000000, 0x000ffd2c3652b484), + RTUINT128_INIT_C(0x0000000000000020, 0xd9c7c420beafafd7), RTUINT128_INIT_C(0x0000000000000000, 0x000a3e7eaf5a5c52) + }, + { /* i=1247; 55 / 21 */ + RTUINT128_INIT_C(0x0000000000000000, 0x0016e08a3e86eba4), RTUINT128_INIT_C(0x0000000000000000, 0x000000000006acee), + RTUINT128_INIT_C(0x0000000000000000, 0x000000036d515412), RTUINT128_INIT_C(0x0000000000000000, 0x000000000002aae8) + }, + { /* i=1248; 3 / 89 */ + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000007), RTUINT128_INIT_C(0x00000000002f93b4, 0x40dcd2ef9c1b0c9b), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000007) + }, + { /* i=1249; 32 / 17 */ + RTUINT128_INIT_C(0x0000000000000000, 0x00000000855d9289), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000001f31), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000044695), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000504) + }, + { /* i=1250; 119 / 73 */ + RTUINT128_INIT_C(0x0073d4ddef989826, 0xf30b1762b20bcee4), RTUINT128_INIT_C(0x000000000000002b, 0xa64b73135772eaad), + RTUINT128_INIT_C(0x0000000000000000, 0x0002a756c721caa0), RTUINT128_INIT_C(0x0000000000000008, 0x6f919cf0a1bfa0c4) + }, + { /* i=1251; 127 / 117 */ + RTUINT128_INIT_C(0x76be98dd040004fe, 0x1a8521c47a490d1d), RTUINT128_INIT_C(0x000ad06ab79abf48, 0x2f3007a7017d32b8), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000afb), RTUINT128_INIT_C(0x0000150ef3cda75f, 0xf6211af7208d22b5) + }, + { /* i=1252; 118 / 109 */ + RTUINT128_INIT_C(0x00240d24542990a3, 0x094be21022da5e3f), RTUINT128_INIT_C(0x000014cb98e361d5, 0x21552b4189568fa4), + RTUINT128_INIT_C(0x0000000000000000, 0x00000000000001bb), RTUINT128_INIT_C(0x000010d2c2af44d2, 0x5aea07a77a0fcd73) + }, + { /* i=1253; 117 / 70 */ + RTUINT128_INIT_C(0x001ffebfc76b0514, 0x3590b2319e133aa5), RTUINT128_INIT_C(0x0000000000000002, 0xb93fde40059c86ae), + RTUINT128_INIT_C(0x0000000000000000, 0x000bbf4a60b43505), RTUINT128_INIT_C(0x0000000000000000, 0xe5fab4ec27ca933f) + }, + { /* i=1254; 82 / 79 */ + RTUINT128_INIT_C(0x000000000003b0f2, 0xa0991daf5af25531), RTUINT128_INIT_C(0x0000000000001a17, 0x79f5a063ea355556), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000024), RTUINT128_INIT_C(0x00000000000005a5, 0x7a0e8fa26b725519) + }, + { /* i=1255; 120 / 63 */ + RTUINT128_INIT_C(0x00009677e7bf47c3, 0x500463d70ad4498a), RTUINT128_INIT_C(0x0000000000000000, 0x4edbc27fbb87d632), + RTUINT128_INIT_C(0x0000000000000000, 0x0001e87813626422), RTUINT128_INIT_C(0x0000000000000000, 0x370e13495dfa4ee6) + }, + { /* i=1256; 128 / 106 */ + RTUINT128_INIT_C(0xbb6d5e65cb3f3866, 0xf54e6f23dae95f87), RTUINT128_INIT_C(0x000002f2b0921330, 0xbeef29154e6aebec), + RTUINT128_INIT_C(0x0000000000000000, 0x00000000003f93de), RTUINT128_INIT_C(0x0000009a128e99a2, 0xf113465265a444df) + }, + { /* i=1257; 125 / 73 */ + RTUINT128_INIT_C(0x08a9c68919821489, 0xd30b9d9c3bdc35d1), RTUINT128_INIT_C(0x0000000000000105, 0x9c52c578338208ca), + RTUINT128_INIT_C(0x0000000000000000, 0x00087a36430a0d78), RTUINT128_INIT_C(0x0000000000000017, 0x101cc8a94691d521) + }, + { /* i=1258; 114 / 120 */ + RTUINT128_INIT_C(0x0003c4db565ab199, 0xd6e31edbd745809e), RTUINT128_INIT_C(0x002cad4546898658, 0x1d17044be399a522), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x0003c4db565ab199, 0xd6e31edbd745809e) + }, + { /* i=1259; 116 / 89 */ + RTUINT128_INIT_C(0x000ce273e6432472, 0x2b751d3ee13f2ab2), RTUINT128_INIT_C(0x0000000001e0c417, 0x07319299ed3a1ea9), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000006dc5f3b), RTUINT128_INIT_C(0x0000000000bc0f6e, 0x85c9fa12543d62bf) + }, + { /* i=1260; 29 / 21 */ + RTUINT128_INIT_C(0x0000000000000000, 0x0000000006db0c38), RTUINT128_INIT_C(0x0000000000000000, 0x00000000001d0f53), + RTUINT128_INIT_C(0x0000000000000000, 0x000000000000003c), RTUINT128_INIT_C(0x0000000000000000, 0x00000000000b74c4) + }, + { /* i=1261; 119 / 91 */ + RTUINT128_INIT_C(0x003f7743518d999f, 0x313197f385ff7cb5), RTUINT128_INIT_C(0x0000000001fb82f0, 0x55f6b72a7415261c), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000020037a71), RTUINT128_INIT_C(0x0000000001926bc8, 0x37fe81e1422c5259) + }, + { /* i=1262; 116 / 36 */ + RTUINT128_INIT_C(0x000907f6f7bffd65, 0x516174e208b5bc44), RTUINT128_INIT_C(0x0000000000000000, 0x000000055493d956), + RTUINT128_INIT_C(0x000000000001b1bb, 0xc59314b79fe67afd), RTUINT128_INIT_C(0x0000000000000000, 0x000000034fc0f646) + }, + { /* i=1263; 124 / 99 */ + RTUINT128_INIT_C(0x016eb26ed4cd7c9c, 0xfe786ef5b3bc19c3), RTUINT128_INIT_C(0x000000041e29afee, 0xd918d8cb38bda50e), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000590d19), RTUINT128_INIT_C(0x000000019ac2b3a0, 0x2962374d25f74565) + }, + { /* i=1264; 80 / 93 */ + RTUINT128_INIT_C(0x000000000000d8f6, 0x3609138f4004d960), RTUINT128_INIT_C(0x000000001b03f118, 0x6d7a53622d53f72b), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x000000000000d8f6, 0x3609138f4004d960) + }, + { /* i=1265; 106 / 99 */ + RTUINT128_INIT_C(0x000001d5b9ec4f7a, 0xf876a6c02bdfd98e), RTUINT128_INIT_C(0x000000055d5f184d, 0x6c819ec37056739b), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000057), RTUINT128_INIT_C(0x00000002fe9b0d2b, 0x1869b254fe7e8fe1) + }, + { /* i=1266; 116 / 51 */ + RTUINT128_INIT_C(0x000baf20124c1c32, 0xfadf82c394602e9a), RTUINT128_INIT_C(0x0000000000000000, 0x00008b8996b927b1), + RTUINT128_INIT_C(0x0000000000000015, 0x6f9ddeadf6445a9f), RTUINT128_INIT_C(0x0000000000000000, 0x000033623e684dab) + }, + { /* i=1267; 116 / 24 */ + RTUINT128_INIT_C(0x000f5ae335b0a4f9, 0xcbdced057aab5c91), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000a592ea), + RTUINT128_INIT_C(0x0000000017bdb160, 0x68c53286aa92d8ec), RTUINT128_INIT_C(0x0000000000000000, 0x00000000009e7cd9) + }, + { /* i=1268; 120 / 117 */ + RTUINT128_INIT_C(0x00a1763f428d2e32, 0x97d686bac5bb8da0), RTUINT128_INIT_C(0x0009169ba5f3c32a, 0xafe607acbd67c3ea), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000011), RTUINT128_INIT_C(0x0006f5e93d5d385c, 0xe990044231d78b16) + }, + { /* i=1269; 114 / 107 */ + RTUINT128_INIT_C(0x0000243404f0f2fc, 0xd901b3f09f20551c), RTUINT128_INIT_C(0x00000716d2e6cb8e, 0x0fb900ead972f517), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000005), RTUINT128_INIT_C(0x000000c1e66ef936, 0x8a64af5a5fe18ba9) + }, + { /* i=1270; 26 / 17 */ + RTUINT128_INIT_C(0x0000000000000000, 0x0000000003b70aba), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000012760), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000338), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000004dba) + }, + { /* i=1271; 126 / 42 */ + RTUINT128_INIT_C(0x13fabe6530acf354, 0xb691a2dbf83d7f07), RTUINT128_INIT_C(0x0000000000000000, 0x00000264ecb03068), + RTUINT128_INIT_C(0x0000000000085845, 0xf8a5664b681796da), RTUINT128_INIT_C(0x0000000000000000, 0x00000044947f5677) + }, + { /* i=1272; 120 / 80 */ + RTUINT128_INIT_C(0x00038edba285a59d, 0xf303a63dcdfdc3d5), RTUINT128_INIT_C(0x000000000000fc3a, 0x75a1d74df0ddfb4c), + RTUINT128_INIT_C(0x0000000000000000, 0x000000039c7a6fba), RTUINT128_INIT_C(0x000000000000d5e5, 0x628c6b5c7a873a9d) + }, + { /* i=1273; 115 / 21 */ + RTUINT128_INIT_C(0x0004d9a16d8dcda2, 0x24cbc946c0dfc822), RTUINT128_INIT_C(0x0000000000000000, 0x00000000001640b8), + RTUINT128_INIT_C(0x0000000037cbecb7, 0xe5196a2e5baef5b6), RTUINT128_INIT_C(0x0000000000000000, 0x00000000000dad52) + }, + { /* i=1274; 115 / 66 */ + RTUINT128_INIT_C(0x0000458313da0bf0, 0x71204ba626ebf42b), RTUINT128_INIT_C(0x0000000000000003, 0x0189b2d475ee6372), + RTUINT128_INIT_C(0x0000000000000000, 0x0000171fd69b6bb3), RTUINT128_INIT_C(0x0000000000000002, 0x3c137c878ba5c575) + }, + { /* i=1275; 125 / 76 */ + RTUINT128_INIT_C(0x051837068873e0e2, 0x3fb4a3110b7e23aa), RTUINT128_INIT_C(0x0000000000000a3a, 0x584dc2abfcf2f504), + RTUINT128_INIT_C(0x0000000000000000, 0x00007f83ea561347), RTUINT128_INIT_C(0x0000000000000796, 0x69d376f7e494e38e) + }, + { /* i=1276; 119 / 121 */ + RTUINT128_INIT_C(0x005e87fe4a9970bf, 0x793e08c5c93b5926), RTUINT128_INIT_C(0x01efc622782d1e83, 0x134938fb577c8616), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x005e87fe4a9970bf, 0x793e08c5c93b5926) + }, + { /* i=1277; 120 / 94 */ + RTUINT128_INIT_C(0x0094dec5423c9e7b, 0xcabfc5fee09a9fd8), RTUINT128_INIT_C(0x0000000037ee7447, 0x96fee3298cdf663d), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000002a96227), RTUINT128_INIT_C(0x0000000021f4d3bb, 0xed6d8475ed29b28d) + }, + { /* i=1278; 126 / 91 */ + RTUINT128_INIT_C(0x046472954fc9851b, 0x0491684509fb5226), RTUINT128_INIT_C(0x0000000006abb644, 0x5ec98d09e76c9164), + RTUINT128_INIT_C(0x0000000000000000, 0x00000000a8905b6e), RTUINT128_INIT_C(0x00000000038d501a, 0xcf62dc4499664d2e) + }, + { /* i=1279; 122 / 50 */ + RTUINT128_INIT_C(0x00d7e4f1be476f8b, 0x1762f7f2fbe378ae), RTUINT128_INIT_C(0x0000000000000000, 0x00015f233e64a0e0), + RTUINT128_INIT_C(0x000000000000009d, 0x664f0e75034746b1), RTUINT128_INIT_C(0x0000000000000000, 0x00014b5a1632fdce) + }, + { /* i=1280; 43 / 4 */ + RTUINT128_INIT_C(0x0000000000000000, 0x000007370abe70fe), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000008), + RTUINT128_INIT_C(0x0000000000000000, 0x000000e6e157ce1f), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000006) + }, + { /* i=1281; 111 / 61 */ + RTUINT128_INIT_C(0x00006e4021ca877e, 0xc4a049df3fa17430), RTUINT128_INIT_C(0x0000000000000000, 0x11b29d91ba1802e7), + RTUINT128_INIT_C(0x0000000000000000, 0x00063aca19226086), RTUINT128_INIT_C(0x0000000000000000, 0x047f7a0fe44b4f46) + }, + { /* i=1282; 46 / 112 */ + RTUINT128_INIT_C(0x0000000000000000, 0x00000c5a121b317d), RTUINT128_INIT_C(0x0000bac50f76313d, 0x4b6fe0135bad40bf), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x0000000000000000, 0x00000c5a121b317d) + }, + { /* i=1283; 125 / 120 */ + RTUINT128_INIT_C(0x0eb8185cb4b5af9d, 0xc413567a4ae381db), RTUINT128_INIT_C(0x00642f05bdcc2709, 0x9698c668aa6a1525), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000025), RTUINT128_INIT_C(0x003d4c8846340b3a, 0xfffea959a98e7382) + }, + { /* i=1284; 127 / 50 */ + RTUINT128_INIT_C(0x61a0abca156b3774, 0xf805132a4f06e026), RTUINT128_INIT_C(0x0000000000000000, 0x0002e84c9ebc6751), + RTUINT128_INIT_C(0x0000000000002194, 0x2bb12ffeb8a5b472), RTUINT128_INIT_C(0x0000000000000000, 0x0002a6605746ea14) + }, + { /* i=1285; 47 / 12 */ + RTUINT128_INIT_C(0x0000000000000000, 0x00007f8a1cae1a6d), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000b09), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000b8ebc5e6f), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000386) + }, + { /* i=1286; 116 / 64 */ + RTUINT128_INIT_C(0x0007473ea7a8fd76, 0xcbdc4c22c4b47d5e), RTUINT128_INIT_C(0x0000000000000000, 0x3024f8d074b2e395), + RTUINT128_INIT_C(0x0000000000000000, 0x0026b37eecdbf30c), RTUINT128_INIT_C(0x0000000000000000, 0x1ebed26b71d46362) + }, + { /* i=1287; 36 / 2 */ + RTUINT128_INIT_C(0x0000000000000000, 0x0000000fbf2d4d15), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000003), + RTUINT128_INIT_C(0x0000000000000000, 0x000000053fb9c45c), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000001) + }, + { /* i=1288; 120 / 88 */ + RTUINT128_INIT_C(0x001e6281fd81e570, 0x7eed2bd27a0fad8c), RTUINT128_INIT_C(0x0000000000e02c15, 0x58a8b3272adb2edb), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000022b2e4f8), RTUINT128_INIT_C(0x00000000007620b4, 0x9703d31615b93d64) + }, + { /* i=1289; 125 / 67 */ + RTUINT128_INIT_C(0x0a9eae44a8f8ecc4, 0xb5763ed7cabcd1f6), RTUINT128_INIT_C(0x0000000000000007, 0x02d0d1e24a5642ed), + RTUINT128_INIT_C(0x0000000000000000, 0x0183c60f19939a12), RTUINT128_INIT_C(0x0000000000000005, 0x073a064219528b4c) + }, + { /* i=1290; 127 / 70 */ + RTUINT128_INIT_C(0x5a38adc48a338dca, 0xbbde050241cb65e6), RTUINT128_INIT_C(0x0000000000000027, 0x3b3b1db53a4649dd), + RTUINT128_INIT_C(0x0000000000000000, 0x024cbad703f813a1), RTUINT128_INIT_C(0x000000000000001e, 0x86ee01253f038ae9) + }, + { /* i=1291; 116 / 39 */ + RTUINT128_INIT_C(0x0004c1e3b3b068fb, 0x8c3cb36e76ef116e), RTUINT128_INIT_C(0x0000000000000000, 0x00000060f547bbdd), + RTUINT128_INIT_C(0x0000000000000c8f, 0x9ca49c7b1f96879c), RTUINT128_INIT_C(0x0000000000000000, 0x0000000954a90bc2) + }, + { /* i=1292; 114 / 94 */ + RTUINT128_INIT_C(0x00000a4e4dfdc2e1, 0x33b3683799b98e0a), RTUINT128_INIT_C(0x000000002bcf82d5, 0xe5e04d2bd645ac09), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000003c38), RTUINT128_INIT_C(0x0000000015ef0236, 0x588c40686629d012) + }, + { /* i=1293; 99 / 23 */ + RTUINT128_INIT_C(0x000000003ca8f375, 0xb4a81c9f3cc34aca), RTUINT128_INIT_C(0x0000000000000000, 0x00000000001d12f0), + RTUINT128_INIT_C(0x0000000000000216, 0x1e5d78a3b4fae4e0), RTUINT128_INIT_C(0x0000000000000000, 0x000000000014f8ca) + }, + { /* i=1294; 117 / 119 */ + RTUINT128_INIT_C(0x00075e4c8f36b39a, 0xa39f663f707d4950), RTUINT128_INIT_C(0x0012499aeafacef1, 0xb726e2aec08f98d9), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x00075e4c8f36b39a, 0xa39f663f707d4950) + }, + { /* i=1295; 84 / 24 */ + RTUINT128_INIT_C(0x000000000005eadd, 0x151fc998ba0bae41), RTUINT128_INIT_C(0x0000000000000000, 0x000000000058088b), + RTUINT128_INIT_C(0x0000000000000000, 0x1135349615f2ac4b), RTUINT128_INIT_C(0x0000000000000000, 0x00000000001dc988) + }, + { /* i=1296; 32 / 3 */ + RTUINT128_INIT_C(0x0000000000000000, 0x0000000063ae2663), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000005), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000013efa147), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000) + }, + { /* i=1297; 42 / 10 */ + RTUINT128_INIT_C(0x0000000000000000, 0x0000038281c672b0), RTUINT128_INIT_C(0x0000000000000000, 0x00000000000003e4), + RTUINT128_INIT_C(0x0000000000000000, 0x00000000e6f108da), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000288) + }, + { /* i=1298; 12 / 113 */ + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000778), RTUINT128_INIT_C(0x00004275805630af, 0x7246c718240f4939), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000778) + }, + { /* i=1299; 123 / 119 */ + RTUINT128_INIT_C(0x07b648eda5f8c149, 0xf4fa54ea02b0d4ee), RTUINT128_INIT_C(0x007d131760f6a226, 0x4896a7956769be0e), + RTUINT128_INIT_C(0x0000000000000000, 0x000000000000000f), RTUINT128_INIT_C(0x00622a8ef785410b, 0xb4268328f37eb21c) + }, + { /* i=1300; 121 / 37 */ + RTUINT128_INIT_C(0x004f715f5247b96c, 0x5ac5b444fc13481a), RTUINT128_INIT_C(0x0000000000000000, 0x0000000fc5d92885), + RTUINT128_INIT_C(0x0000000000050964, 0x3a9be6f451556476), RTUINT128_INIT_C(0x0000000000000000, 0x000000066cfda6cc) + }, + { /* i=1301; 117 / 19 */ + RTUINT128_INIT_C(0x000808c966177108, 0x6d98d623efc2ffb3), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000067631), + RTUINT128_INIT_C(0x000000013e4e149b, 0xa08a7a713413f615), RTUINT128_INIT_C(0x0000000000000000, 0x00000000000537ae) + }, + { /* i=1302; 123 / 13 */ + RTUINT128_INIT_C(0x05a590d278f19e0b, 0x206ae761d3e587f1), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000001793), + RTUINT128_INIT_C(0x00003d51dc8ebd00, 0xfa3c81ed0e089075), RTUINT128_INIT_C(0x0000000000000000, 0x00000000000011c2) + }, + { /* i=1303; 117 / 7 */ + RTUINT128_INIT_C(0x00140e9dde40b751, 0xa338d6cf7388b958), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000007), + RTUINT128_INIT_C(0x0002dd8444526354, 0xce2cb0f910813f0c), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000004) + }, + { /* i=1304; 116 / 90 */ + RTUINT128_INIT_C(0x00080f8bcad7620f, 0x02bddfdcb5b318c7), RTUINT128_INIT_C(0x0000000000db0f9a, 0x1c6369dd0ec8e0e3), + RTUINT128_INIT_C(0x0000000000000000, 0x00000000096b82b6), RTUINT128_INIT_C(0x0000000000c4abce, 0x53641d5436cef165) + }, + { /* i=1305; 65 / 7 */ + RTUINT128_INIT_C(0x0000000000000000, 0x6981da2f45a873f1), RTUINT128_INIT_C(0x0000000000000000, 0x000000000000003c), + RTUINT128_INIT_C(0x0000000000000000, 0x01c22a09523a4632), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000039) + }, + { /* i=1306; 92 / 91 */ + RTUINT128_INIT_C(0x000000000b704a12, 0xd72b9090570cd212), RTUINT128_INIT_C(0x0000000006937795, 0x5b49b8234adb3dad), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000001), RTUINT128_INIT_C(0x0000000004dcd27d, 0x7be1d86d0c319465) + }, + { /* i=1307; 119 / 83 */ + RTUINT128_INIT_C(0x005585321a975302, 0x466d47d1ed21c99a), RTUINT128_INIT_C(0x000000000001a7c9, 0x9b01e751ba909a27), + RTUINT128_INIT_C(0x0000000000000000, 0x00000033a929283a), RTUINT128_INIT_C(0x000000000000a4d1, 0xb0cb0d75a109c4c4) + }, + { /* i=1308; 124 / 113 */ + RTUINT128_INIT_C(0x0527e1afc164fb1f, 0xe1f3756c9660ca79), RTUINT128_INIT_C(0x00012ee3179874a1, 0x2fa9730968d7a886), + RTUINT128_INIT_C(0x0000000000000000, 0x000000000000045b), RTUINT128_INIT_C(0x0000aa97fc610115, 0x4aeb6b70f315cad7) + }, + { /* i=1309; 42 / 19 */ + RTUINT128_INIT_C(0x0000000000000000, 0x000003ec2e9e7c0c), RTUINT128_INIT_C(0x0000000000000000, 0x00000000000479ff), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000e05217), RTUINT128_INIT_C(0x0000000000000000, 0x000000000003d823) + }, + { /* i=1310; 126 / 66 */ + RTUINT128_INIT_C(0x15325d8ef923ccdf, 0x6c8a41c08655b2da), RTUINT128_INIT_C(0x0000000000000001, 0x4347ac1ed7afcf16), + RTUINT128_INIT_C(0x0000000000000000, 0x10c90c4ba8f84d18), RTUINT128_INIT_C(0x0000000000000001, 0x2d23d2535f40aaca) + }, + { /* i=1311; 114 / 101 */ + RTUINT128_INIT_C(0x00021df4b8b21419, 0xd51ff9fda7a879d9), RTUINT128_INIT_C(0x0000001280b8192e, 0x9f56ed0c38b5c87c), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000001d4a), RTUINT128_INIT_C(0x00000006a8a08492, 0xed251208ab667a01) + }, + { /* i=1312; 7 / 103 */ + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x00000007cfb0dd68, 0x82cbd16c39f2e1f5), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000) + }, + { /* i=1313; 124 / 113 */ + RTUINT128_INIT_C(0x0ea38d7a1f5e3ce9, 0x77872760181fb1ba), RTUINT128_INIT_C(0x000193877e60986f, 0x57d1799b43c19df3), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000949), RTUINT128_INIT_C(0x0000b865b076db13, 0x0f8504b7f75c1c6f) + }, + { /* i=1314; 84 / 58 */ + RTUINT128_INIT_C(0x00000000000d866a, 0x45800ca189b4502b), RTUINT128_INIT_C(0x0000000000000000, 0x00fc5cdd8a80aec5), + RTUINT128_INIT_C(0x0000000000000000, 0x000000000db8516e), RTUINT128_INIT_C(0x0000000000000000, 0x0069f73fb084e285) + }, + { /* i=1315; 113 / 91 */ + RTUINT128_INIT_C(0x0000d61b6f325142, 0xd4d8ccacb60b7b1f), RTUINT128_INIT_C(0x00000000037b5a26, 0xcff30633ed6471c0), + RTUINT128_INIT_C(0x0000000000000000, 0x00000000003d7e11), RTUINT128_INIT_C(0x000000000262ad6c, 0xee48437367a36d5f) + }, + { /* i=1316; 125 / 105 */ + RTUINT128_INIT_C(0x0f32d9768bb42346, 0xb1a73181b76441ba), RTUINT128_INIT_C(0x0000009ef07ac5a2, 0x7536b5e483e008a4), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000187ae6), RTUINT128_INIT_C(0x0000008d73fc2a54, 0x42648259a89e5662) + }, + { /* i=1317; 116 / 127 */ + RTUINT128_INIT_C(0x000c48cd2c2a6646, 0x31d882b73d786a2a), RTUINT128_INIT_C(0x705275dbe8664c26, 0x38f54b8ec8b3aa66), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x000c48cd2c2a6646, 0x31d882b73d786a2a) + }, + { /* i=1318; 116 / 87 */ + RTUINT128_INIT_C(0x000eb27651cd0340, 0x58f7b3541b5c36f9), RTUINT128_INIT_C(0x000000000012ddd6, 0xce704d2053622253), + RTUINT128_INIT_C(0x0000000000000000, 0x00000000c76cc82e), RTUINT128_INIT_C(0x000000000000f20a, 0xda14204b74e5340f) + }, + { /* i=1319; 65 / 32 */ + RTUINT128_INIT_C(0x0000000000000001, 0xce61c93433d12620), RTUINT128_INIT_C(0x0000000000000000, 0x0000000038553878), + RTUINT128_INIT_C(0x0000000000000000, 0x00000008354156e9), RTUINT128_INIT_C(0x0000000000000000, 0x000000001ed070e8) + }, + { /* i=1320; 113 / 61 */ + RTUINT128_INIT_C(0x0001c15643231e11, 0xe0aa7ee6cdb2c503), RTUINT128_INIT_C(0x0000000000000000, 0x09c0699fc8e4989e), + RTUINT128_INIT_C(0x0000000000000000, 0x002e140694b318fc), RTUINT128_INIT_C(0x0000000000000000, 0x04d1ff018fe3b97b) + }, + { /* i=1321; 64 / 9 */ + RTUINT128_INIT_C(0x0000000000000000, 0x59e9b4a82ac8f043), RTUINT128_INIT_C(0x0000000000000000, 0x000000000000012e), + RTUINT128_INIT_C(0x0000000000000000, 0x004c37b291f16836), RTUINT128_INIT_C(0x0000000000000000, 0x000000000000008f) + }, + { /* i=1322; 120 / 105 */ + RTUINT128_INIT_C(0x00d1438a303edd02, 0xb99e9e0aa7b9335a), RTUINT128_INIT_C(0x000000d212c50c68, 0xf55d613e2c82aeaa), + RTUINT128_INIT_C(0x0000000000000000, 0x000000000000ff03), RTUINT128_INIT_C(0x00000061b0932b5f, 0xd5a98bf9f635d15c) + }, + { /* i=1323; 70 / 63 */ + RTUINT128_INIT_C(0x0000000000000005, 0x3b06d0928ffd75c6), RTUINT128_INIT_C(0x0000000000000000, 0x5d6052a1326ce438), + RTUINT128_INIT_C(0x0000000000000000, 0x000000000000000e), RTUINT128_INIT_C(0x0000000000000000, 0x1fc24bc1ce08fab6) + }, + { /* i=1324; 127 / 115 */ + RTUINT128_INIT_C(0x42f506082098510c, 0x27c69833692fcf9f), RTUINT128_INIT_C(0x0003a75032dd0f6f, 0xf7f5d26bcec8abd3), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000001253), RTUINT128_INIT_C(0x0002237417d6704f, 0x7a47cab5420b4436) + }, + { /* i=1325; 114 / 96 */ + RTUINT128_INIT_C(0x0001636c23ecc99c, 0xf60a566799403011), RTUINT128_INIT_C(0x0000000012ab9195, 0x28a1cbdc62128420), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000130971), RTUINT128_INIT_C(0x0000000010014456, 0x3519534dda0ebdf1) + }, + { /* i=1326; 79 / 39 */ + RTUINT128_INIT_C(0x000000000000669e, 0xc22b4c3ce561fb2e), RTUINT128_INIT_C(0x0000000000000000, 0x00000028823c6bb9), + RTUINT128_INIT_C(0x0000000000000000, 0x000002888555bd89), RTUINT128_INIT_C(0x0000000000000000, 0x00000019b617c02d) + }, + { /* i=1327; 126 / 99 */ + RTUINT128_INIT_C(0x1f27cd1827ccffd9, 0x0d97be6f4da72a7e), RTUINT128_INIT_C(0x00000005b6a94329, 0xabf1e571b8e0afee), + RTUINT128_INIT_C(0x0000000000000000, 0x000000000573f3c3), RTUINT128_INIT_C(0x000000025e0a51bf, 0x2cd895f385983e34) + }, + { /* i=1328; 59 / 86 */ + RTUINT128_INIT_C(0x0000000000000000, 0x032e4e4f7d6d5c51), RTUINT128_INIT_C(0x00000000003bf176, 0x3efc23b9acaefdfb), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x0000000000000000, 0x032e4e4f7d6d5c51) + }, + { /* i=1329; 122 / 111 */ + RTUINT128_INIT_C(0x02aa1be5987f5eb6, 0x3263770fbdcf5572), RTUINT128_INIT_C(0x0000070f14746df7, 0xa04584469d2d0a17), + RTUINT128_INIT_C(0x0000000000000000, 0x00000000000060a1), RTUINT128_INIT_C(0x000003be120959e0, 0x5510cbb600b35cfb) + }, + { /* i=1330; 107 / 17 */ + RTUINT128_INIT_C(0x0000053750054ef2, 0xe65bc143ce9ee018), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000012137), + RTUINT128_INIT_C(0x00000000049df571, 0xe4f6e229c79053cf), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000002f9f) + }, + { /* i=1331; 128 / 80 */ + RTUINT128_INIT_C(0x127a89ba27f96358, 0xf56817a12addae29), RTUINT128_INIT_C(0x000000000000cc44, 0xf9d5473b2b44b698), + RTUINT128_INIT_C(0x0000000000000000, 0x0000172887fb6198), RTUINT128_INIT_C(0x00000000000018eb, 0xd4cf88b141d9abe9) + }, + { /* i=1332; 65 / 41 */ + RTUINT128_INIT_C(0x0000000000000000, 0x3a93b4ede2d92e03), RTUINT128_INIT_C(0x0000000000000000, 0x000001ca1ff074dc), + RTUINT128_INIT_C(0x0000000000000000, 0x000000000020bb98), RTUINT128_INIT_C(0x0000000000000000, 0x00000187ab371763) + }, + { /* i=1333; 122 / 100 */ + RTUINT128_INIT_C(0x02fbb6b66ee4bbdf, 0xb510d0cdf8cb17a8), RTUINT128_INIT_C(0x0000000b5f9f0cfe, 0x991ba9ab28cf9f20), + RTUINT128_INIT_C(0x0000000000000000, 0x00000000004325fd), RTUINT128_INIT_C(0x000000068b3205e3, 0xfd68b769fc3b3508) + }, + { /* i=1334; 128 / 73 */ + RTUINT128_INIT_C(0xf49a77ca27b4b140, 0x2cefe4b4ed4cb745), RTUINT128_INIT_C(0x0000000000000120, 0x33f7296281fc55ab), + RTUINT128_INIT_C(0x0000000000000000, 0x00d945a8204aedf3), RTUINT128_INIT_C(0x0000000000000061, 0xd2a7fcfecc0a16f4) + }, + { /* i=1335; 100 / 33 */ + RTUINT128_INIT_C(0x000000048a92e0b5, 0xb077eea09f1e9c96), RTUINT128_INIT_C(0x0000000000000000, 0x000000000cd6c701), + RTUINT128_INIT_C(0x000000000000005a, 0x8ce47c751471ff9a), RTUINT128_INIT_C(0x0000000000000000, 0x000000000a3fe6fc) + }, + { /* i=1336; 116 / 122 */ + RTUINT128_INIT_C(0x000850e7169e0508, 0x0ef977ed404cada8), RTUINT128_INIT_C(0x02cd61de3571c13b, 0x61fd63a7ec76498a), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x000850e7169e0508, 0x0ef977ed404cada8) + }, + { /* i=1337; 72 / 62 */ + RTUINT128_INIT_C(0x00000000000000f9, 0xb1eba6f200a44c7d), RTUINT128_INIT_C(0x0000000000000000, 0x01fe82ea4b5626d0), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000007d36), RTUINT128_INIT_C(0x0000000000000000, 0x004fa2bd0b848c9d) + }, + { /* i=1338; 17 / 13 */ + RTUINT128_INIT_C(0x0000000000000000, 0x000000000001d2bd), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000001a68), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000011), RTUINT128_INIT_C(0x0000000000000000, 0x00000000000011d5) + }, + { /* i=1339; 114 / 90 */ + RTUINT128_INIT_C(0x00034ca4430155a6, 0x3e44dbd13ce958fe), RTUINT128_INIT_C(0x0000000002d8ccbe, 0xc0f2888b22efbdf4), + RTUINT128_INIT_C(0x0000000000000000, 0x000000000128b0de), RTUINT128_INIT_C(0x0000000001ad8b26, 0x4d3265f07c4adf66) + }, + { /* i=1340; 81 / 16 */ + RTUINT128_INIT_C(0x0000000000012853, 0x3c6f5f7fe40cbad4), RTUINT128_INIT_C(0x0000000000000000, 0x000000000000b204), + RTUINT128_INIT_C(0x0000000000000001, 0xaa2358fff9872dee), RTUINT128_INIT_C(0x0000000000000000, 0x000000000000871c) + }, + { /* i=1341; 118 / 43 */ + RTUINT128_INIT_C(0x001d3050ac862c3e, 0xa13eb33c127c58eb), RTUINT128_INIT_C(0x0000000000000000, 0x000005e41dd3f7aa), + RTUINT128_INIT_C(0x00000000000004f4, 0x6966eef1a098721f), RTUINT128_INIT_C(0x0000000000000000, 0x000003a4c497a755) + }, + { /* i=1342; 55 / 36 */ + RTUINT128_INIT_C(0x0000000000000000, 0x0050fa633c92cf86), RTUINT128_INIT_C(0x0000000000000000, 0x00000004255b5c2e), + RTUINT128_INIT_C(0x0000000000000000, 0x000000000013882f), RTUINT128_INIT_C(0x0000000000000000, 0x00000000006a7314) + }, + { /* i=1343; 116 / 102 */ + RTUINT128_INIT_C(0x0009a4daf71c1376, 0x8bd9e0c03a3eddee), RTUINT128_INIT_C(0x000000059c163d9e, 0x0a2ce1fc22aa6980), + RTUINT128_INIT_C(0x0000000000000000, 0x000000000001b81a), RTUINT128_INIT_C(0x00000002e2f22fec, 0x5ee1918fcf9c26ee) + }, + { /* i=1344; 55 / 89 */ + RTUINT128_INIT_C(0x0000000000000000, 0x003c972cfb3174c7), RTUINT128_INIT_C(0x0000000000aa36a7, 0x49c194ec2cb19efd), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x0000000000000000, 0x003c972cfb3174c7) + }, + { /* i=1345; 127 / 44 */ + RTUINT128_INIT_C(0x7bf253217f887be0, 0x5ee7a16c18f2a206), RTUINT128_INIT_C(0x0000000000000000, 0x000008b8edbe2b84), + RTUINT128_INIT_C(0x00000000000e35ce, 0x89f8ad1fd00081f8), RTUINT128_INIT_C(0x0000000000000000, 0x00000221b4caf626) + }, + { /* i=1346; 123 / 73 */ + RTUINT128_INIT_C(0x053769fcae243256, 0xead647489dee8546), RTUINT128_INIT_C(0x0000000000000118, 0x6df4b08cb2eb94ec), + RTUINT128_INIT_C(0x0000000000000000, 0x0004c31474ccf66c), RTUINT128_INIT_C(0x000000000000006d, 0x343bde592560e9b6) + }, + { /* i=1347; 35 / 16 */ + RTUINT128_INIT_C(0x0000000000000000, 0x000000011e0d7277), RTUINT128_INIT_C(0x0000000000000000, 0x00000000000012e3), + RTUINT128_INIT_C(0x0000000000000000, 0x00000000000f254c), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000813) + }, + { /* i=1348; 114 / 70 */ + RTUINT128_INIT_C(0x0002393ed4d994b8, 0x09db52a46c48df1e), RTUINT128_INIT_C(0x0000000000000006, 0x0ad354321ec5fa7d), + RTUINT128_INIT_C(0x0000000000000000, 0x00005e35d38a1ee7), RTUINT128_INIT_C(0x0000000000000001, 0xbdf3f3c065e73253) + }, + { /* i=1349; 122 / 95 */ + RTUINT128_INIT_C(0x0006f8ccfeda64ef, 0x1b6a551e1c51fe84), RTUINT128_INIT_C(0x0000000075aadb9b, 0xd000d45522f8f03b), + RTUINT128_INIT_C(0x0000000000000000, 0x00000000000f2b0d), RTUINT128_INIT_C(0x000000007428e208, 0xf6b8335571dee285) + }, + { /* i=1350; 121 / 65 */ + RTUINT128_INIT_C(0x00138a22e4e8fff5, 0x887bd4ea3535dbdc), RTUINT128_INIT_C(0x0000000000000001, 0x38a1a02c4d0ce745), + RTUINT128_INIT_C(0x0000000000000000, 0x001000074631a17c), RTUINT128_INIT_C(0x0000000000000000, 0x1f3fc967a34e7170) + }, + { /* i=1351; 127 / 119 */ + RTUINT128_INIT_C(0x3bb76b93b2a60f8b, 0x44c34aa0d45b916f), RTUINT128_INIT_C(0x005d4f2b7f8c723b, 0x9bebc9383aa40c49), + RTUINT128_INIT_C(0x0000000000000000, 0x00000000000000a3), RTUINT128_INIT_C(0x004e02e17c395396, 0xfda22bd37de7bef4) + }, + { /* i=1352; 124 / 81 */ + RTUINT128_INIT_C(0x070969ebc1363a2b, 0xb0914c1a431714b2), RTUINT128_INIT_C(0x0000000000001d9b, 0x5236d87519b2e480), + RTUINT128_INIT_C(0x0000000000000000, 0x00003cd841b666f1), RTUINT128_INIT_C(0x000000000000036a, 0x356b606cd7a2f832) + }, + { /* i=1353; 116 / 61 */ + RTUINT128_INIT_C(0x00057bde103f33f4, 0x0dc9c54147c3c13d), RTUINT128_INIT_C(0x0000000000000000, 0x11ba1218adc2090a), + RTUINT128_INIT_C(0x0000000000000000, 0x004f31c836df6e40), RTUINT128_INIT_C(0x0000000000000000, 0x05f060ae7ba932bd) + }, + { /* i=1354; 79 / 77 */ + RTUINT128_INIT_C(0x000000000000467d, 0x6283d9f377136c77), RTUINT128_INIT_C(0x0000000000001504, 0x3faa67cd6d740f6b), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000003), RTUINT128_INIT_C(0x0000000000000770, 0xa384a28b2eb73e36) + }, + { /* i=1355; 101 / 60 */ + RTUINT128_INIT_C(0x00000010c19cf18f, 0xa5e6fe0d276a8118), RTUINT128_INIT_C(0x0000000000000000, 0x0a1e7780a0662d77), + RTUINT128_INIT_C(0x0000000000000000, 0x000001a7ea8e9519), RTUINT128_INIT_C(0x0000000000000000, 0x0893f74506f7cd79) + }, + { /* i=1356; 121 / 127 */ + RTUINT128_INIT_C(0x0065de307e465369, 0x29d4d4855d517a65), RTUINT128_INIT_C(0x1bb20aa6443d04e4, 0x6a8f11adc6d8f789), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x0065de307e465369, 0x29d4d4855d517a65) + }, + { /* i=1357; 86 / 58 */ + RTUINT128_INIT_C(0x000000000001366c, 0xdc6b58fb439e708c), RTUINT128_INIT_C(0x0000000000000000, 0x015bce0af52cfb57), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000e47ca6), RTUINT128_INIT_C(0x0000000000000000, 0x0154130ea5395222) + }, + { /* i=1358; 120 / 41 */ + RTUINT128_INIT_C(0x0027a14ce31e7d93, 0x0fa8b6686b6564a6), RTUINT128_INIT_C(0x0000000000000000, 0x000001189c4919ec), + RTUINT128_INIT_C(0x0000000000002427, 0x85ec6a199776a2ab), RTUINT128_INIT_C(0x0000000000000000, 0x000000099d61bc02) + }, + { /* i=1359; 50 / 34 */ + RTUINT128_INIT_C(0x0000000000000000, 0x0000276a198e1664), RTUINT128_INIT_C(0x0000000000000000, 0x00000003efc2a0b6), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000a03), RTUINT128_INIT_C(0x0000000000000000, 0x00000000afff1842) + }, + { /* i=1360; 67 / 58 */ + RTUINT128_INIT_C(0x0000000000000002, 0x798e543549b11777), RTUINT128_INIT_C(0x0000000000000000, 0x0209e6527ba25fee), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000136), RTUINT128_INIT_C(0x0000000000000000, 0x01916c539310ed43) + }, + { /* i=1361; 53 / 87 */ + RTUINT128_INIT_C(0x0000000000000000, 0x001a4fa870770bbd), RTUINT128_INIT_C(0x000000000036a0ea, 0x0601c349d662c90e), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x0000000000000000, 0x001a4fa870770bbd) + }, + { /* i=1362; 122 / 30 */ + RTUINT128_INIT_C(0x02d5ab87c6c842e7, 0x99ee69ab8c966660), RTUINT128_INIT_C(0x0000000000000000, 0x000000002dab20e8), + RTUINT128_INIT_C(0x000000000fe3d439, 0xac264d0212452f32), RTUINT128_INIT_C(0x0000000000000000, 0x0000000007976110) + }, + { /* i=1363; 126 / 108 */ + RTUINT128_INIT_C(0x00f0786fc96b0f7b, 0x52f7d73293163808), RTUINT128_INIT_C(0x0000023ef7c74805, 0x861bf8c4da1fda21), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000006b11), RTUINT128_INIT_C(0x000000b10a14f80f, 0xba220af4c6ccf0d7) + }, + { /* i=1364; 113 / 11 */ + RTUINT128_INIT_C(0x00013943813c9364, 0x63965b7f03264181), RTUINT128_INIT_C(0x0000000000000000, 0x00000000000003b1), + RTUINT128_INIT_C(0x00000054dceb79ca, 0x327e209ad1689b90), RTUINT128_INIT_C(0x0000000000000000, 0x00000000000002f1) + }, + { /* i=1365; 118 / 29 */ + RTUINT128_INIT_C(0x003d76c0d41bf986, 0xb8de44d860dd7344), RTUINT128_INIT_C(0x0000000000000000, 0x000000001ad12d14), + RTUINT128_INIT_C(0x00000000024abe50, 0x2173512369391d17), RTUINT128_INIT_C(0x0000000000000000, 0x0000000008832278) + }, + { /* i=1366; 67 / 29 */ + RTUINT128_INIT_C(0x0000000000000006, 0x6fc81d05ec66a3e0), RTUINT128_INIT_C(0x0000000000000000, 0x000000001cb1b914), + RTUINT128_INIT_C(0x0000000000000000, 0x000000396cf03d55), RTUINT128_INIT_C(0x0000000000000000, 0x00000000198a6c3c) + }, + { /* i=1367; 33 / 3 */ + RTUINT128_INIT_C(0x0000000000000000, 0x000000014b988727), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000005), + RTUINT128_INIT_C(0x0000000000000000, 0x000000004251b4a1), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000002) + }, + { /* i=1368; 65 / 13 */ + RTUINT128_INIT_C(0x0000000000000000, 0x1a6743d1734494cf), RTUINT128_INIT_C(0x0000000000000000, 0x000000000000033c), + RTUINT128_INIT_C(0x0000000000000000, 0x000829d22f718d2a), RTUINT128_INIT_C(0x0000000000000000, 0x00000000000000f7) + }, + { /* i=1369; 127 / 47 */ + RTUINT128_INIT_C(0x3f7d3a890af84d18, 0xe0a5d36f83eca9b3), RTUINT128_INIT_C(0x0000000000000000, 0x00001d18568aec2c), + RTUINT128_INIT_C(0x0000000000022e9f, 0xf474e8350b008e89), RTUINT128_INIT_C(0x0000000000000000, 0x000004264093de27) + }, + { /* i=1370; 117 / 72 */ + RTUINT128_INIT_C(0x0003a76d34b3e05b, 0xc030294093706f6d), RTUINT128_INIT_C(0x00000000000000d2, 0xd89470ad5d8a3c16), + RTUINT128_INIT_C(0x0000000000000000, 0x0000046fc1066ee2), RTUINT128_INIT_C(0x0000000000000019, 0xb54463ee9b11f001) + }, + { /* i=1371; 14 / 9 */ + RTUINT128_INIT_C(0x0000000000000000, 0x00000000000033d5), RTUINT128_INIT_C(0x0000000000000000, 0x00000000000000d8), + RTUINT128_INIT_C(0x0000000000000000, 0x000000000000003d), RTUINT128_INIT_C(0x0000000000000000, 0x000000000000005d) + }, + { /* i=1372; 72 / 11 */ + RTUINT128_INIT_C(0x0000000000000006, 0xac0658acef1a2c5f), RTUINT128_INIT_C(0x0000000000000000, 0x00000000000005a4), + RTUINT128_INIT_C(0x0000000000000000, 0x012ecec6ade7bae3), RTUINT128_INIT_C(0x0000000000000000, 0x00000000000003f3) + }, + { /* i=1373; 120 / 67 */ + RTUINT128_INIT_C(0x0089ee866e4f2aeb, 0x8d21a5b4b44d0742), RTUINT128_INIT_C(0x0000000000000003, 0x968a15eea9aecdab), + RTUINT128_INIT_C(0x0000000000000000, 0x002671294f745c64), RTUINT128_INIT_C(0x0000000000000002, 0xaba40f6fa39f3c76) + }, + { /* i=1374; 91 / 37 */ + RTUINT128_INIT_C(0x0000000005651551, 0x7bb43bba7b50fc7c), RTUINT128_INIT_C(0x0000000000000000, 0x00000012f8b50618), + RTUINT128_INIT_C(0x0000000000000000, 0x0048cc38e6e616ca), RTUINT128_INIT_C(0x0000000000000000, 0x00000005a4641d8c) + }, + { /* i=1375; 120 / 60 */ + RTUINT128_INIT_C(0x00f88e9744850462, 0x615a4ef045c80d99), RTUINT128_INIT_C(0x0000000000000000, 0x0821f5983137f081), + RTUINT128_INIT_C(0x0000000000000000, 0x1e90164a84e27aac), RTUINT128_INIT_C(0x0000000000000000, 0x025bde8bb5b2fced) + }, + { /* i=1376; 19 / 117 */ + RTUINT128_INIT_C(0x0000000000000000, 0x000000000006bb58), RTUINT128_INIT_C(0x000250c3bb828d1c, 0x3dc3b8d10449765b), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x0000000000000000, 0x000000000006bb58) + }, + { /* i=1377; 111 / 40 */ + RTUINT128_INIT_C(0x000064397f2f0513, 0xaf27f7fa94c22ea2), RTUINT128_INIT_C(0x0000000000000000, 0x0000006b94c05e1f), + RTUINT128_INIT_C(0x00000000000000ee, 0x7e9afab256e68076), RTUINT128_INIT_C(0x0000000000000000, 0x00000002db2d4c58) + }, + { /* i=1378; 104 / 52 */ + RTUINT128_INIT_C(0x000000c64f7371d1, 0xe4004dc176c2e011), RTUINT128_INIT_C(0x0000000000000000, 0x0007f1075bde8cc9), + RTUINT128_INIT_C(0x0000000000000000, 0x0018f8a9b4142e8c), RTUINT128_INIT_C(0x0000000000000000, 0x0007da27e80dc425) + }, + { /* i=1379; 36 / 7 */ + RTUINT128_INIT_C(0x0000000000000000, 0x000000005b37a4df), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000047), + RTUINT128_INIT_C(0x0000000000000000, 0x000000000148e57a), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000009) + }, + { /* i=1380; 121 / 110 */ + RTUINT128_INIT_C(0x01427ff59c046e09, 0xf5280ccc4cbad39e), RTUINT128_INIT_C(0x0000026437f08722, 0xe7b4be66a83bea75), + RTUINT128_INIT_C(0x0000000000000000, 0x00000000000086da), RTUINT128_INIT_C(0x0000015612751508, 0x09942d51acfbedfc) + }, + { /* i=1381; 128 / 34 */ + RTUINT128_INIT_C(0xc7a39b88b3720269, 0x2e970447ee6b7f9b), RTUINT128_INIT_C(0x0000000000000000, 0x00000002e87ad156), + RTUINT128_INIT_C(0x0000000044a614bb, 0x3dc302760a42629e), RTUINT128_INIT_C(0x0000000000000000, 0x000000021a4f6087) + }, + { /* i=1382; 120 / 119 */ + RTUINT128_INIT_C(0x004369184a9e1e58, 0x308f92b116b99106), RTUINT128_INIT_C(0x003b87dba3e3639c, 0x84cabb18570574df), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000001), RTUINT128_INIT_C(0x0007e13ca6bababb, 0xabc4d798bfb41c27) + }, + { /* i=1383; 120 / 27 */ + RTUINT128_INIT_C(0x009aa405cb821e87, 0xd223d938fcb86196), RTUINT128_INIT_C(0x0000000000000000, 0x0000000005db277f), + RTUINT128_INIT_C(0x000000001a682ad6, 0x0a4a97e2489619a2), RTUINT128_INIT_C(0x0000000000000000, 0x0000000004c3fc38) + }, + { /* i=1384; 125 / 100 */ + RTUINT128_INIT_C(0x07bb4afe789e8b82, 0x9eba22f0a328d44c), RTUINT128_INIT_C(0x0000000a55498c4f, 0x57f89ecb30aff454), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000bf8c3d), RTUINT128_INIT_C(0x000000043e2a1600, 0x380bda9e84f1ac48) + }, + { /* i=1385; 113 / 109 */ + RTUINT128_INIT_C(0x0001971e07811cce, 0x50d08bf50c8d292f), RTUINT128_INIT_C(0x000017be3340be19, 0xeef237d06dd78568), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000011), RTUINT128_INIT_C(0x0000037ca0347d15, 0x72bad71dc13d4d47) + }, + { /* i=1386; 103 / 53 */ + RTUINT128_INIT_C(0x0000001692005b56, 0x30f8f5128d4b6043), RTUINT128_INIT_C(0x0000000000000000, 0x0011953dd50f5cc4), + RTUINT128_INIT_C(0x0000000000000000, 0x0001489d08d7084f), RTUINT128_INIT_C(0x0000000000000000, 0x000489544a0b9fc7) + }, + { /* i=1387; 69 / 11 */ + RTUINT128_INIT_C(0x0000000000000007, 0x60f36034e72fc3df), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000227), + RTUINT128_INIT_C(0x0000000000000000, 0x036da00018944c16), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000085) + }, + { /* i=1388; 54 / 43 */ + RTUINT128_INIT_C(0x0000000000000000, 0x001a9a19b57b6c73), RTUINT128_INIT_C(0x0000000000000000, 0x0000007bcce76c53), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000003702), RTUINT128_INIT_C(0x0000000000000000, 0x0000001c6366becd) + }, + { /* i=1389; 81 / 2 */ + RTUINT128_INIT_C(0x00000000000115d4, 0x0bdfd4733e910170), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000003), + RTUINT128_INIT_C(0x0000000000005c9c, 0x03f546d114db007a), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000002) + }, + { /* i=1390; 128 / 114 */ + RTUINT128_INIT_C(0x28a9b42b17ba3523, 0x5df00c0530ad90f5), RTUINT128_INIT_C(0x00025fd6ec9981d0, 0x7e4a916578130e18), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000001120), RTUINT128_INIT_C(0x0000739752eb22b0, 0xa0f6225cea5c35f5) + }, + { /* i=1391; 118 / 118 */ + RTUINT128_INIT_C(0x001d0a153c28e212, 0x477f087fb5191e60), RTUINT128_INIT_C(0x000f5a44bbbd46b3, 0xd6de99d09edd907f), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000001), RTUINT128_INIT_C(0x000dafd0806b9b5e, 0x70a06eaf163b8de1) + }, + { /* i=1392; 77 / 76 */ + RTUINT128_INIT_C(0x000000000000129c, 0x207aae1995c53fcd), RTUINT128_INIT_C(0x00000000000004eb, 0xd180ecd79d6da073), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000003), RTUINT128_INIT_C(0x00000000000003d8, 0xabf7e792bd7c5e74) + }, + { /* i=1393; 19 / 105 */ + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000032829), RTUINT128_INIT_C(0x000000ca9a5e303c, 0x6633a3f0e7265af2), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000032829) + }, + { /* i=1394; 28 / 15 */ + RTUINT128_INIT_C(0x0000000000000000, 0x000000000e3a49bd), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000004250), + RTUINT128_INIT_C(0x0000000000000000, 0x00000000000036ed), RTUINT128_INIT_C(0x0000000000000000, 0x00000000000005ad) + }, + { /* i=1395; 16 / 9 */ + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000005f95), RTUINT128_INIT_C(0x0000000000000000, 0x000000000000000e), + RTUINT128_INIT_C(0x0000000000000000, 0x00000000000006d3), RTUINT128_INIT_C(0x0000000000000000, 0x000000000000000b) + }, + { /* i=1396; 120 / 76 */ + RTUINT128_INIT_C(0x00ed40a96da95cec, 0x4884c9503a6f973f), RTUINT128_INIT_C(0x0000000000000e17, 0x00ae274f307a1b29), + RTUINT128_INIT_C(0x0000000000000000, 0x000010d6aa9e11b4), RTUINT128_INIT_C(0x0000000000000ce3, 0x3c9e9dbe0b78c56b) + }, + { /* i=1397; 128 / 43 */ + RTUINT128_INIT_C(0x24021cdf4f744daa, 0x5b7627a9118e83e7), RTUINT128_INIT_C(0x0000000000000000, 0x000004b63b4f9562), + RTUINT128_INIT_C(0x000000000007a45f, 0x0414edf4ab0c1af9), RTUINT128_INIT_C(0x0000000000000000, 0x00000477d5624395) + }, + { /* i=1398; 103 / 65 */ + RTUINT128_INIT_C(0x0000003885db9772, 0x8ac31a40596d2407), RTUINT128_INIT_C(0x0000000000000001, 0xf17f0bf173b8e243), + RTUINT128_INIT_C(0x0000000000000000, 0x0000001d15da1616), RTUINT128_INIT_C(0x0000000000000001, 0xc8c4fbf75809f045) + }, + { /* i=1399; 115 / 85 */ + RTUINT128_INIT_C(0x0006611ffefed958, 0x034e63b5ddf2d525), RTUINT128_INIT_C(0x0000000000188570, 0x999250256144fd2a), + RTUINT128_INIT_C(0x0000000000000000, 0x000000004299b3b9), RTUINT128_INIT_C(0x0000000000152e7c, 0x311d6a2f33f983cb) + }, + { /* i=1400; 48 / 11 */ + RTUINT128_INIT_C(0x0000000000000000, 0x00007e8969c075dc), RTUINT128_INIT_C(0x0000000000000000, 0x00000000000005c9), + RTUINT128_INIT_C(0x0000000000000000, 0x00000015df66ce78), RTUINT128_INIT_C(0x0000000000000000, 0x00000000000001a4) + }, + { /* i=1401; 127 / 67 */ + RTUINT128_INIT_C(0x6fb70877be878b60, 0xb83a9861c7743dd7), RTUINT128_INIT_C(0x0000000000000003, 0x10fcba5eb8e390c1), + RTUINT128_INIT_C(0x0000000000000000, 0x246eb72b98ac8697), RTUINT128_INIT_C(0x0000000000000000, 0xe28e7778c1c8d600) + }, + { /* i=1402; 113 / 49 */ + RTUINT128_INIT_C(0x0001f68368adda51, 0xde28ce95ebf94b60), RTUINT128_INIT_C(0x0000000000000000, 0x00000ff1c51781e6), + RTUINT128_INIT_C(0x000000000000001f, 0x843e4ab6bfb8e6c9), RTUINT128_INIT_C(0x0000000000000000, 0x00000a5b167fa9ca) + }, + { /* i=1403; 122 / 65 */ + RTUINT128_INIT_C(0x03be800b5408f140, 0xa559414f35330737), RTUINT128_INIT_C(0x0000000000000001, 0x093c4032e27148dd), + RTUINT128_INIT_C(0x0000000000000000, 0x039d202e29d0ab11), RTUINT128_INIT_C(0x0000000000000000, 0x59db283fe771918a) + }, + { /* i=1404; 124 / 91 */ + RTUINT128_INIT_C(0x09fae7982e8f95cc, 0xe1f2f90c31814473), RTUINT128_INIT_C(0x00000000013f18ff, 0x587d4786961633f5), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000801b41f29), RTUINT128_INIT_C(0x0000000000a0b79e, 0x084ffad8fa644736) + }, + { /* i=1405; 121 / 3 */ + RTUINT128_INIT_C(0x007f8c781a9e76e8, 0x5d050f3958589614), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000005), + RTUINT128_INIT_C(0x0019827e6bb94afb, 0x45cdcfd844de846a), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000002) + }, + { /* i=1406; 64 / 40 */ + RTUINT128_INIT_C(0x0000000000000000, 0x58ffa4031095c8b4), RTUINT128_INIT_C(0x0000000000000000, 0x0000001481e3e4ab), + RTUINT128_INIT_C(0x0000000000000000, 0x000000000456ff38), RTUINT128_INIT_C(0x0000000000000000, 0x0000000328836e4c) + }, + { /* i=1407; 100 / 44 */ + RTUINT128_INIT_C(0x000000086f9720f2, 0xf21edf1423eb6859), RTUINT128_INIT_C(0x0000000000000000, 0x0000012f52d0f94f), + RTUINT128_INIT_C(0x0000000000000000, 0x071ea88d31a3fd2e), RTUINT128_INIT_C(0x0000000000000000, 0x00000070dfae8927) + }, + { /* i=1408; 41 / 4 */ + RTUINT128_INIT_C(0x0000000000000000, 0x000001d21d7caf02), RTUINT128_INIT_C(0x0000000000000000, 0x000000000000000f), + RTUINT128_INIT_C(0x0000000000000000, 0x0000001f13084fef), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000001) + }, + { /* i=1409; 100 / 51 */ + RTUINT128_INIT_C(0x000000046d5bc96d, 0x6dc05b6398386962), RTUINT128_INIT_C(0x0000000000000000, 0x00061bbb481eabf0), + RTUINT128_INIT_C(0x0000000000000000, 0x0000b98b104f2349), RTUINT128_INIT_C(0x0000000000000000, 0x0002e099c6e791f2) + }, + { /* i=1410; 80 / 53 */ + RTUINT128_INIT_C(0x000000000000512f, 0xc0986bf3f99ce3ed), RTUINT128_INIT_C(0x0000000000000000, 0x001f85efade065d3), + RTUINT128_INIT_C(0x0000000000000000, 0x00000000029350f9), RTUINT128_INIT_C(0x0000000000000000, 0x0017a6d79c5ee9b2) + }, + { /* i=1411; 74 / 51 */ + RTUINT128_INIT_C(0x0000000000000313, 0x7b2c928720e52f4d), RTUINT128_INIT_C(0x0000000000000000, 0x000772fce9c55a95), + RTUINT128_INIT_C(0x0000000000000000, 0x000000000069b6c3), RTUINT128_INIT_C(0x0000000000000000, 0x00044bbc9a0e41ce) + }, + { /* i=1412; 69 / 120 */ + RTUINT128_INIT_C(0x0000000000000007, 0x358cd705a41e64c2), RTUINT128_INIT_C(0x00efaf78888827d7, 0xb2ef5f16150867e8), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x0000000000000007, 0x358cd705a41e64c2) + }, + { /* i=1413; 116 / 68 */ + RTUINT128_INIT_C(0x000b0eb7b9ca1bb7, 0x9ab76dc4cfa998cd), RTUINT128_INIT_C(0x0000000000000006, 0x23d3879f6d44fbb7), + RTUINT128_INIT_C(0x0000000000000000, 0x0001cd08700b99ff), RTUINT128_INIT_C(0x0000000000000003, 0x47dcc4d9dca57e84) + }, + { /* i=1414; 90 / 39 */ + RTUINT128_INIT_C(0x0000000002065b2f, 0xcc616257b5a96cd1), RTUINT128_INIT_C(0x0000000000000000, 0x000000680a19cbb2), + RTUINT128_INIT_C(0x0000000000000000, 0x0004fb784658a6f5), RTUINT128_INIT_C(0x0000000000000000, 0x000000389fb40f77) + }, + { /* i=1415; 118 / 31 */ + RTUINT128_INIT_C(0x002bc9367a0e63a5, 0x24dbfea66e436e51), RTUINT128_INIT_C(0x0000000000000000, 0x0000000067e1cfd4), + RTUINT128_INIT_C(0x00000000006be73a, 0xc7012a54fd6e892e), RTUINT128_INIT_C(0x0000000000000000, 0x000000001a5fa239) + }, + { /* i=1416; 88 / 79 */ + RTUINT128_INIT_C(0x00000000006ce200, 0x63f4b9492f4f3739), RTUINT128_INIT_C(0x0000000000000d3f, 0x7da9068bd5f3caa3), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000838), RTUINT128_INIT_C(0x000000000000002f, 0x9ec6ec02c3a5cb91) + }, + { /* i=1417; 124 / 87 */ + RTUINT128_INIT_C(0x056bc74ededed583, 0x9db6f2e89530c7d0), RTUINT128_INIT_C(0x000000000026a9a8, 0xd3c3f278b4176d38), + RTUINT128_INIT_C(0x0000000000000000, 0x00000023e4fc6d92), RTUINT128_INIT_C(0x00000000000011b9, 0x9b4f32668333a5e0) + }, + { /* i=1418; 119 / 86 */ + RTUINT128_INIT_C(0x004ad0a16d2608f2, 0x82f65a463b37b160), RTUINT128_INIT_C(0x00000000000fd24a, 0x63e8eccdbba29d01), + RTUINT128_INIT_C(0x0000000000000000, 0x00000004ba8c6e3e), RTUINT128_INIT_C(0x00000000000b915a, 0x516b62ce53d33d22) + }, + { /* i=1419; 86 / 50 */ + RTUINT128_INIT_C(0x0000000000326d53, 0xd26bc0b57e736faa), RTUINT128_INIT_C(0x0000000000000000, 0x0003b19040f2437a), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000da70bc174), RTUINT128_INIT_C(0x0000000000000000, 0x000348c1ef8fe262) + }, + { /* i=1420; 115 / 88 */ + RTUINT128_INIT_C(0x0003b15c58b2e552, 0xfffa4c1acde50e3c), RTUINT128_INIT_C(0x00000000000c1a11, 0xbcb516b351608aef), + RTUINT128_INIT_C(0x0000000000000000, 0x000000004e1dfd9d), RTUINT128_INIT_C(0x000000000001d385, 0x18608670ed4ea6a9) + }, + { /* i=1421; 61 / 25 */ + RTUINT128_INIT_C(0x0000000000000000, 0x0735cda568eb8789), RTUINT128_INIT_C(0x0000000000000000, 0x00000000007db84a), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000eae8f3b66), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000050c0d) + }, + { /* i=1422; 93 / 59 */ + RTUINT128_INIT_C(0x000000001fea3c52, 0x7b9e28dcb7831dfd), RTUINT128_INIT_C(0x0000000000000000, 0x000361303b94ecd8), + RTUINT128_INIT_C(0x0000000000000000, 0x000009717c4144c7), RTUINT128_INIT_C(0x0000000000000000, 0x000165aa14fda215) + }, + { /* i=1423; 115 / 65 */ + RTUINT128_INIT_C(0x000215722515631d, 0x8e9aa120a3022bf5), RTUINT128_INIT_C(0x0000000000000000, 0xba75a4511e7fb18c), + RTUINT128_INIT_C(0x0000000000000000, 0x0002dc6545c8509a), RTUINT128_INIT_C(0x0000000000000000, 0x3bd6d3f2f1559dbd) + }, + { /* i=1424; 25 / 41 */ + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000b4f399), RTUINT128_INIT_C(0x0000000000000000, 0x0000012a1e84ea42), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000b4f399) + }, + { /* i=1425; 44 / 19 */ + RTUINT128_INIT_C(0x0000000000000000, 0x0000084ad0cbda29), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000020966), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000004124684), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000011d91) + }, + { /* i=1426; 122 / 120 */ + RTUINT128_INIT_C(0x00de9cd0dfc2d948, 0x61cfb06a06a8b907), RTUINT128_INIT_C(0x001684924a8d4a14, 0x8c7ee8593ae2304a), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000009), RTUINT128_INIT_C(0x0013f3ac40cb3e8f, 0x71598546f4b5066d) + }, + { /* i=1427; 128 / 124 */ + RTUINT128_INIT_C(0x6660cc133c2251d7, 0xdb2d90c09e34f8a7), RTUINT128_INIT_C(0x0e7f30a672659271, 0x8baa506ebca025d8), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000007), RTUINT128_INIT_C(0x00e677861b5b50bd, 0x09855db975d3efbf) + }, + { /* i=1428; 114 / 126 */ + RTUINT128_INIT_C(0x00019ea2b656365a, 0x091dffb136708e2f), RTUINT128_INIT_C(0x3e92d972ff26a086, 0xcf98d24c2448464e), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x00019ea2b656365a, 0x091dffb136708e2f) + }, + { /* i=1429; 115 / 126 */ + RTUINT128_INIT_C(0x000593590310b8ff, 0x95872e3676deb091), RTUINT128_INIT_C(0x2486aa04180c37d9, 0xda157d55e4ffc424), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x000593590310b8ff, 0x95872e3676deb091) + }, + { /* i=1430; 84 / 80 */ + RTUINT128_INIT_C(0x0000000000049f71, 0xab50464af942db64), RTUINT128_INIT_C(0x0000000000004105, 0xe010ab054879af01), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000012), RTUINT128_INIT_C(0x0000000000000d07, 0xea243febe0b48d52) + }, + { /* i=1431; 125 / 69 */ + RTUINT128_INIT_C(0x1b983e3a0b5ccd12, 0xf087574f3acad8a5), RTUINT128_INIT_C(0x0000000000000001, 0x406ee83b02a6942c), + RTUINT128_INIT_C(0x0000000000000000, 0x160bc0f11ff88315), RTUINT128_INIT_C(0x0000000000000001, 0x3444dd5fe6ae2d09) + }, + { /* i=1432; 113 / 59 */ + RTUINT128_INIT_C(0x0000993ee09b6502, 0x4ea04fd41b7bb734), RTUINT128_INIT_C(0x0000000000000000, 0x06bed9e8bc4034d0), + RTUINT128_INIT_C(0x0000000000000000, 0x0016b7d92831e61c), RTUINT128_INIT_C(0x0000000000000000, 0x04f5dc6339331074) + }, + { /* i=1433; 113 / 9 */ + RTUINT128_INIT_C(0x0000d961d773bd54, 0x4132bead41e6664c), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000136), + RTUINT128_INIT_C(0x000000b383ff8c2c, 0x0a1eb7f1b1c2cec8), RTUINT128_INIT_C(0x0000000000000000, 0x000000000000001c) + }, + { /* i=1434; 116 / 51 */ + RTUINT128_INIT_C(0x0004e3ca68d637d7, 0x8229155264163b36), RTUINT128_INIT_C(0x0000000000000000, 0x0000b2d15ae8a9cb), + RTUINT128_INIT_C(0x0000000000000007, 0x00183a7a939df681), RTUINT128_INIT_C(0x0000000000000000, 0x0000898a4f3099eb) + }, + { /* i=1435; 58 / 44 */ + RTUINT128_INIT_C(0x0000000000000000, 0x00ad45010c492eda), RTUINT128_INIT_C(0x0000000000000000, 0x000005776e13b18a), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000001fb2), RTUINT128_INIT_C(0x0000000000000000, 0x000001a2201806e6) + }, + { /* i=1436; 7 / 2 */ + RTUINT128_INIT_C(0x0000000000000000, 0x000000000000003b), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000001), + RTUINT128_INIT_C(0x0000000000000000, 0x000000000000003b), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000) + }, + { /* i=1437; 73 / 58 */ + RTUINT128_INIT_C(0x0000000000000082, 0xcf68132624a6ea50), RTUINT128_INIT_C(0x0000000000000000, 0x03ef559da2316770), + RTUINT128_INIT_C(0x0000000000000000, 0x000000000000213e), RTUINT128_INIT_C(0x0000000000000000, 0x016805107e5a6d30) + }, + { /* i=1438; 114 / 40 */ + RTUINT128_INIT_C(0x00011405331cb534, 0xd57bbcfd53c9e804), RTUINT128_INIT_C(0x0000000000000000, 0x000000b886df968b), + RTUINT128_INIT_C(0x000000000000017e, 0xee8ada80437383ca), RTUINT128_INIT_C(0x0000000000000000, 0x000000077be2fd56) + }, + { /* i=1439; 118 / 19 */ + RTUINT128_INIT_C(0x00200b8abfaa9fc5, 0xdd146fd881aca4ff), RTUINT128_INIT_C(0x0000000000000000, 0x000000000007c666), + RTUINT128_INIT_C(0x000000041f1e67a0, 0xf9c72f0c0d835c47), RTUINT128_INIT_C(0x0000000000000000, 0x000000000005f6b5) + }, + { /* i=1440; 44 / 20 */ + RTUINT128_INIT_C(0x0000000000000000, 0x00000f9cf9655ec8), RTUINT128_INIT_C(0x0000000000000000, 0x000000000002dcd8), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000005743d50), RTUINT128_INIT_C(0x0000000000000000, 0x000000000000e348) + }, + { /* i=1441; 66 / 48 */ + RTUINT128_INIT_C(0x0000000000000000, 0x398a0902ff018970), RTUINT128_INIT_C(0x0000000000000000, 0x000036edd78f4268), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000010c2a), RTUINT128_INIT_C(0x0000000000000000, 0x00000853a7fbc460) + }, + { /* i=1442; 33 / 20 */ + RTUINT128_INIT_C(0x0000000000000000, 0x000000011bf98ca3), RTUINT128_INIT_C(0x0000000000000000, 0x00000000000570d5), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000003431), RTUINT128_INIT_C(0x0000000000000000, 0x000000000003afde) + }, + { /* i=1443; 4 / 53 */ + RTUINT128_INIT_C(0x0000000000000000, 0x000000000000000f), RTUINT128_INIT_C(0x0000000000000000, 0x001138fd306d9f5a), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x0000000000000000, 0x000000000000000f) + }, + { /* i=1444; 58 / 13 */ + RTUINT128_INIT_C(0x0000000000000000, 0x013222ebdbe1f8e5), RTUINT128_INIT_C(0x0000000000000000, 0x00000000000009a1), + RTUINT128_INIT_C(0x0000000000000000, 0x00001fcb21528d3d), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000088) + }, + { /* i=1445; 69 / 6 */ + RTUINT128_INIT_C(0x0000000000000012, 0x6460d39ab528a5ed), RTUINT128_INIT_C(0x0000000000000000, 0x000000000000000b), + RTUINT128_INIT_C(0x0000000000000001, 0xac08cd6b27bde089), RTUINT128_INIT_C(0x0000000000000000, 0x000000000000000a) + }, + { /* i=1446; 118 / 110 */ + RTUINT128_INIT_C(0x002ad99f5ae7a511, 0x6882e2b03d8c0336), RTUINT128_INIT_C(0x00003a95ba32ebf6, 0xe825cf901c4897d5), + RTUINT128_INIT_C(0x0000000000000000, 0x00000000000000bb), RTUINT128_INIT_C(0x00000e4057b547b5, 0xd4e4446b94851a9f) + }, + { /* i=1447; 126 / 79 */ + RTUINT128_INIT_C(0x336b4af52359d607, 0x8ec3a9170e949c3d), RTUINT128_INIT_C(0x00000000000014d0, 0x4bd1345fefa6a21a), + RTUINT128_INIT_C(0x0000000000000000, 0x0002786f7473b14e), RTUINT128_INIT_C(0x0000000000001232, 0x86aebc953a0d3e51) + }, + { /* i=1448; 97 / 52 */ + RTUINT128_INIT_C(0x00000001fed9b5b8, 0x6aa2b4bf917d9c70), RTUINT128_INIT_C(0x0000000000000000, 0x000b2c58254e5ff7), + RTUINT128_INIT_C(0x0000000000000000, 0x00002db891549178), RTUINT128_INIT_C(0x0000000000000000, 0x0006f7b24c59b9a8) + }, + { /* i=1449; 126 / 61 */ + RTUINT128_INIT_C(0x0ca7dba396cf4f77, 0x9d5c4d9e3f2c50f9), RTUINT128_INIT_C(0x0000000000000000, 0x00cd688f5da0860d), + RTUINT128_INIT_C(0x000000000000000f, 0xc5d3978c3a97f460), RTUINT128_INIT_C(0x0000000000000000, 0x0053e0741f8aa819) + }, + { /* i=1450; 84 / 71 */ + RTUINT128_INIT_C(0x000000000008fb3d, 0xc8de908acfe861fb), RTUINT128_INIT_C(0x0000000000000019, 0x75e59a84a75489bf), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000005a4e), RTUINT128_INIT_C(0x0000000000000009, 0x2496d94c1bb943c9) + }, + { /* i=1451; 116 / 59 */ + RTUINT128_INIT_C(0x000a2865354ba253, 0x5ae8a688e3aa7705), RTUINT128_INIT_C(0x0000000000000000, 0x06c6a43664060c1d), + RTUINT128_INIT_C(0x0000000000000000, 0x017fc4cdc1c05930), RTUINT128_INIT_C(0x0000000000000000, 0x02de78ac15921c95) + }, + { /* i=1452; 125 / 93 */ + RTUINT128_INIT_C(0x039bebfe3d039e9f, 0xaecfb02c832b64d8), RTUINT128_INIT_C(0x0000000015b2888d, 0xa5e5593a0be0b539), + RTUINT128_INIT_C(0x0000000000000000, 0x000000002a9507ff), RTUINT128_INIT_C(0x0000000006c88add, 0xb52f7182b5355211) + }, + { /* i=1453; 126 / 41 */ + RTUINT128_INIT_C(0x03aa84ba5ec16d94, 0xaf37fb17337de7d9), RTUINT128_INIT_C(0x0000000000000000, 0x0000007da7799708), + RTUINT128_INIT_C(0x0000000000077814, 0x2b1cbfca61b3d12a), RTUINT128_INIT_C(0x0000000000000000, 0x00000030d2a59889) + }, + { /* i=1454; 72 / 71 */ + RTUINT128_INIT_C(0x000000000000009a, 0x95481c1401955db5), RTUINT128_INIT_C(0x000000000000004b, 0xeaf6f745bf7dc95d), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000002), RTUINT128_INIT_C(0x0000000000000002, 0xbf5a2d888299cafb) + }, + { /* i=1455; 120 / 7 */ + RTUINT128_INIT_C(0x00f64f6537b643fd, 0x0bc4762ff0c714a1), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000073), + RTUINT128_INIT_C(0x0002244ecb0ef102, 0x334d65339deb7863), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000028) + }, + { /* i=1456; 98 / 38 */ + RTUINT128_INIT_C(0x00000000b5855b53, 0xfebd6d4d5e4db737), RTUINT128_INIT_C(0x0000000000000000, 0x0000003ec9613410), + RTUINT128_INIT_C(0x0000000000000000, 0x02e41d88bda0260b), RTUINT128_INIT_C(0x0000000000000000, 0x00000005ef661a87) + }, + { /* i=1457; 38 / 24 */ + RTUINT128_INIT_C(0x0000000000000000, 0x00000039e1a80331), RTUINT128_INIT_C(0x0000000000000000, 0x000000000071fb33), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000008200), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000181d31) + }, + { /* i=1458; 84 / 100 */ + RTUINT128_INIT_C(0x00000000000b08e1, 0xf81f29be3f01bcf6), RTUINT128_INIT_C(0x0000000e9ead39fa, 0xa24b1e7ee3898696), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x00000000000b08e1, 0xf81f29be3f01bcf6) + }, + { /* i=1459; 120 / 81 */ + RTUINT128_INIT_C(0x008099946ba69b14, 0xcf2a0efcd9ac4622), RTUINT128_INIT_C(0x000000000001d38d, 0xd3b9cc3c6fd08526), + RTUINT128_INIT_C(0x0000000000000000, 0x00000046699031f3), RTUINT128_INIT_C(0x0000000000008020, 0x06d5cbec51e19d10) + }, + { /* i=1460; 45 / 17 */ + RTUINT128_INIT_C(0x0000000000000000, 0x0000145447299c79), RTUINT128_INIT_C(0x0000000000000000, 0x000000000000a20a), + RTUINT128_INIT_C(0x0000000000000000, 0x00000000201e0fc8), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000006ea9) + }, + { /* i=1461; 104 / 93 */ + RTUINT128_INIT_C(0x000000b7d8f1867c, 0xb8fdbf48423256f2), RTUINT128_INIT_C(0x00000000168f317a, 0x6cfbf26dcb272417), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000826), RTUINT128_INIT_C(0x0000000006245ae8, 0xac0454a2e1424388) + }, + { /* i=1462; 85 / 70 */ + RTUINT128_INIT_C(0x00000000000c8a1a, 0x000500e682c9f993), RTUINT128_INIT_C(0x000000000000000b, 0x873e21be39c4cc4e), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000011674), RTUINT128_INIT_C(0x0000000000000003, 0x3f3923f89fc0b23b) + }, + { /* i=1463; 120 / 114 */ + RTUINT128_INIT_C(0x00f66287283a0980, 0x030bf0600c2e5f73), RTUINT128_INIT_C(0x00025fc9757f806c, 0x5f4e61410ef67071), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000067), RTUINT128_INIT_C(0x0001d878e1ed5de5, 0xaa82cf33070721fc) + }, + { /* i=1464; 118 / 90 */ + RTUINT128_INIT_C(0x000d1bae7e2df71c, 0xd9c6945a002ba754), RTUINT128_INIT_C(0x00000000024e835e, 0xedf6d922287cb778), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000005aec25e), RTUINT128_INIT_C(0x0000000000a039e7, 0x289502c693c75944) + }, + { /* i=1465; 76 / 49 */ + RTUINT128_INIT_C(0x0000000000000e29, 0x6bd8c9f58eb925fb), RTUINT128_INIT_C(0x0000000000000000, 0x000042c0c8dc1ca7), + RTUINT128_INIT_C(0x0000000000000000, 0x00000000364f9958), RTUINT128_INIT_C(0x0000000000000000, 0x000035ace4667d93) + }, + { /* i=1466; 125 / 104 */ + RTUINT128_INIT_C(0x01cd7600c0a3ea66, 0xbb4d1e184ed2897b), RTUINT128_INIT_C(0x00000062d788e9fa, 0xf176eb54454490f5), + RTUINT128_INIT_C(0x0000000000000000, 0x000000000004ab2e), RTUINT128_INIT_C(0x00000021e9d37a29, 0x3b6c759ccbd8d675) + }, + { /* i=1467; 68 / 20 */ + RTUINT128_INIT_C(0x000000000000000e, 0x2c8eb52f18b398ca), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000064e42), + RTUINT128_INIT_C(0x0000000000000000, 0x00023f70fcd61cc9), RTUINT128_INIT_C(0x0000000000000000, 0x000000000004eef8) + }, + { /* i=1468; 118 / 86 */ + RTUINT128_INIT_C(0x001403c607134bf2, 0xd72efeb8700ed463), RTUINT128_INIT_C(0x000000000000aea3, 0xa05081eeece3e777), + RTUINT128_INIT_C(0x0000000000000000, 0x0000001d56d5dec0), RTUINT128_INIT_C(0x0000000000004581, 0x94ef783c92650923) + }, + { /* i=1469; 20 / 10 */ + RTUINT128_INIT_C(0x0000000000000000, 0x00000000000ae969), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000297), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000436), RTUINT128_INIT_C(0x0000000000000000, 0x000000000000018f) + }, + { /* i=1470; 87 / 69 */ + RTUINT128_INIT_C(0x0000000000689e74, 0xad5496772a06ae95), RTUINT128_INIT_C(0x0000000000000011, 0x09ad2ab9a7408c3a), + RTUINT128_INIT_C(0x0000000000000000, 0x00000000000623f1), RTUINT128_INIT_C(0x0000000000000008, 0xe41e104f99babdfb) + }, + { /* i=1471; 113 / 99 */ + RTUINT128_INIT_C(0x00007e2ae89a7205, 0x09b1836a793f667b), RTUINT128_INIT_C(0x0000000080e82592, 0x147a3f2d4683f2a2), + RTUINT128_INIT_C(0x0000000000000000, 0x000000000000fa8f), RTUINT128_INIT_C(0x00000000323ccd6c, 0x37b602433a98a9fd) + }, + { /* i=1472; 24 / 59 */ + RTUINT128_INIT_C(0x0000000000000000, 0x00000000003f2366), RTUINT128_INIT_C(0x0000000000000000, 0x05f63b235c4550a9), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x0000000000000000, 0x00000000003f2366) + }, + { /* i=1473; 20 / 13 */ + RTUINT128_INIT_C(0x0000000000000000, 0x00000000000cd81a), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000001c22), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000074), RTUINT128_INIT_C(0x0000000000000000, 0x00000000000018b2) + }, + { /* i=1474; 34 / 16 */ + RTUINT128_INIT_C(0x0000000000000000, 0x0000000227f360ca), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000005059), + RTUINT128_INIT_C(0x0000000000000000, 0x000000000006de99), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000002d99) + }, + { /* i=1475; 120 / 36 */ + RTUINT128_INIT_C(0x002a9d6fb13e8587, 0xb3c0893a0d258cb6), RTUINT128_INIT_C(0x0000000000000000, 0x000000033eafef26), + RTUINT128_INIT_C(0x00000000000d220d, 0xec904564b0f45c8a), RTUINT128_INIT_C(0x0000000000000000, 0x00000000f824fa3a) + }, + { /* i=1476; 44 / 1 */ + RTUINT128_INIT_C(0x0000000000000000, 0x00000b04141aa135), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000001), + RTUINT128_INIT_C(0x0000000000000000, 0x00000b04141aa135), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000) + }, + { /* i=1477; 117 / 49 */ + RTUINT128_INIT_C(0x00006ff0de2a293c, 0x81266df6391812c7), RTUINT128_INIT_C(0x0000000000000000, 0x00009b58839fc3c9), + RTUINT128_INIT_C(0x0000000000000000, 0xb878b562f503a20e), RTUINT128_INIT_C(0x0000000000000000, 0x00006aa3441b2bc9) + }, + { /* i=1478; 79 / 14 */ + RTUINT128_INIT_C(0x0000000000002890, 0xd7481fa934fc08ad), RTUINT128_INIT_C(0x0000000000000000, 0x00000000000027db), + RTUINT128_INIT_C(0x0000000000000001, 0x0490009af38f6af6), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000e3b) + }, + { /* i=1479; 124 / 17 */ + RTUINT128_INIT_C(0x052e9b15fd080d90, 0x7eaca6b2f814f58b), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000015b61), + RTUINT128_INIT_C(0x000003d1a3864a9f, 0x30df8584d6f49496), RTUINT128_INIT_C(0x0000000000000000, 0x00000000000156b5) + }, + { /* i=1480; 113 / 120 */ + RTUINT128_INIT_C(0x0001704147e7ec3d, 0x5486ca306e3810de), RTUINT128_INIT_C(0x0083ea8b80cc3f09, 0xa9d0f3d0ae08ac5e), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x0001704147e7ec3d, 0x5486ca306e3810de) + }, + { /* i=1481; 115 / 79 */ + RTUINT128_INIT_C(0x0002e83fe2b80e79, 0x25882d7d8a1fbab8), RTUINT128_INIT_C(0x0000000000001291, 0x85184c2d271e9759), + RTUINT128_INIT_C(0x0000000000000000, 0x0000002814d8bd75), RTUINT128_INIT_C(0x0000000000000932, 0x7740fb6e6c4fda0b) + }, + { /* i=1482; 128 / 50 */ + RTUINT128_INIT_C(0x91db834097aa893a, 0x934188a0dd5685de), RTUINT128_INIT_C(0x0000000000000000, 0x0000be512985eea3), + RTUINT128_INIT_C(0x000000000000c432, 0x456bb27abbb3d79c), RTUINT128_INIT_C(0x0000000000000000, 0x000077a72755358a) + }, + { /* i=1483; 119 / 73 */ + RTUINT128_INIT_C(0x00274fe29e5c6d90, 0x05031549ec7c85dd), RTUINT128_INIT_C(0x00000000000001d1, 0x651544bdf3bcc31f), + RTUINT128_INIT_C(0x0000000000000000, 0x0000159fd8c73f9a), RTUINT128_INIT_C(0x0000000000000137, 0x66be846b03d18437) + }, + { /* i=1484; 98 / 48 */ + RTUINT128_INIT_C(0x000000009fc13b16, 0x5114c28e0b617fe1), RTUINT128_INIT_C(0x0000000000000000, 0x00005d55f6184644), + RTUINT128_INIT_C(0x0000000000000000, 0x0001b62c5040cbc5), RTUINT128_INIT_C(0x0000000000000000, 0x00003d8b99fb818d) + }, + { /* i=1485; 43 / 14 */ + RTUINT128_INIT_C(0x0000000000000000, 0x000006f08a63d3ca), RTUINT128_INIT_C(0x0000000000000000, 0x00000000000010de), + RTUINT128_INIT_C(0x0000000000000000, 0x00000000695342fb), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000e20) + }, + { /* i=1486; 125 / 108 */ + RTUINT128_INIT_C(0x1f7c05797644cf9e, 0xaef2bdf06d5ee00f), RTUINT128_INIT_C(0x00000df0da6bdb1c, 0xbfaaef0cd1347a02), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000024228), RTUINT128_INIT_C(0x00000aafd0b3aa60, 0xcc82739741b34bbf) + }, + { /* i=1487; 77 / 56 */ + RTUINT128_INIT_C(0x0000000000000784, 0x369e9085f3cb7aac), RTUINT128_INIT_C(0x0000000000000000, 0x00193a550b8e4437), + RTUINT128_INIT_C(0x0000000000000000, 0x00000000004c45fa), RTUINT128_INIT_C(0x0000000000000000, 0x00033f1f122609f6) + }, + { /* i=1488; 125 / 46 */ + RTUINT128_INIT_C(0x1ed4bd578e10f7f7, 0x9e48725a00dc2316), RTUINT128_INIT_C(0x0000000000000000, 0x000006af55cd286d), + RTUINT128_INIT_C(0x0000000000049cae, 0x668eb973edb1b749), RTUINT128_INIT_C(0x0000000000000000, 0x000004c80518b101) + }, + { /* i=1489; 91 / 54 */ + RTUINT128_INIT_C(0x0000000001cf9cae, 0x91291ae40f0d1364), RTUINT128_INIT_C(0x0000000000000000, 0x00356bbdedd24925), + RTUINT128_INIT_C(0x0000000000000000, 0x00000008adb10165), RTUINT128_INIT_C(0x0000000000000000, 0x000f080cd53812cb) + }, + { /* i=1490; 31 / 90 */ + RTUINT128_INIT_C(0x0000000000000000, 0x000000001d9ac025), RTUINT128_INIT_C(0x00000000034cd690, 0xf5391e11a5f1c45c), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x0000000000000000, 0x000000001d9ac025) + }, + { /* i=1491; 115 / 90 */ + RTUINT128_INIT_C(0x00042534ce5d071a, 0x3ae0f4587cda990b), RTUINT128_INIT_C(0x0000000003bfe9a7, 0xca6378fb02e55b79), + RTUINT128_INIT_C(0x0000000000000000, 0x00000000011b039a), RTUINT128_INIT_C(0x0000000000b0c4d4, 0x932308c3f00c2741) + }, + { /* i=1492; 56 / 43 */ + RTUINT128_INIT_C(0x0000000000000000, 0x009b007fa86e0b49), RTUINT128_INIT_C(0x0000000000000000, 0x00000633dfdb5641), + RTUINT128_INIT_C(0x0000000000000000, 0x00000000000018fd), RTUINT128_INIT_C(0x0000000000000000, 0x0000023edc93b50c) + }, + { /* i=1493; 26 / 11 */ + RTUINT128_INIT_C(0x0000000000000000, 0x00000000004d53f6), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000656), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000c34), RTUINT128_INIT_C(0x0000000000000000, 0x000000000000027e) + }, + { /* i=1494; 114 / 35 */ + RTUINT128_INIT_C(0x0000a7d3b40d7dc0, 0xe8cc6c53d7818285), RTUINT128_INIT_C(0x0000000000000000, 0x00000002e5f0e8d5), + RTUINT128_INIT_C(0x00000000000039e8, 0x3bff842ed0810d47), RTUINT128_INIT_C(0x0000000000000000, 0x0000000072891e72) + }, + { /* i=1495; 128 / 124 */ + RTUINT128_INIT_C(0x3206cfd95e4c02c1, 0x3b3d70d73d33ce6a), RTUINT128_INIT_C(0x08d770a714feafdb, 0xb10ca2c4e23a1f32), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000005), RTUINT128_INIT_C(0x05d19c95f5529376, 0xc5fe42fed2113270) + }, + { /* i=1496; 127 / 98 */ + RTUINT128_INIT_C(0x4097339045e53eaa, 0x8e7010699efd6ccb), RTUINT128_INIT_C(0x00000003c46ea090, 0xb0dd5219ee7ac0ca), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000011251f90), RTUINT128_INIT_C(0x000000019191256b, 0xae6b1f675566852b) + }, + { /* i=1497; 25 / 25 */ + RTUINT128_INIT_C(0x0000000000000000, 0x0000000001118bd5), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000c7a609), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000001), RTUINT128_INIT_C(0x0000000000000000, 0x000000000049e5cc) + }, + { /* i=1498; 113 / 102 */ + RTUINT128_INIT_C(0x000073302602158f, 0xd82bfc1303c3ad85), RTUINT128_INIT_C(0x00000020f197c021, 0x97cd6cba1422167b), + RTUINT128_INIT_C(0x0000000000000000, 0x000000000000037f), RTUINT128_INIT_C(0x000000038479601e, 0x20fcdd86a0971580) + }, + { /* i=1499; 116 / 30 */ + RTUINT128_INIT_C(0x000b156af4fe8f51, 0x87532c5f1083d57e), RTUINT128_INIT_C(0x0000000000000000, 0x0000000009c60918), + RTUINT128_INIT_C(0x00000000012250b1, 0x4fae710dd0059a6f), RTUINT128_INIT_C(0x0000000000000000, 0x0000000004b57416) + }, + { /* i=1500; 84 / 18 */ + RTUINT128_INIT_C(0x0000000000083068, 0x3c3abdc25c5d0585), RTUINT128_INIT_C(0x0000000000000000, 0x000000000003b748), + RTUINT128_INIT_C(0x0000000000000002, 0x342a6a244f8eef9f), RTUINT128_INIT_C(0x0000000000000000, 0x000000000001f7cd) + }, + { /* i=1501; 53 / 14 */ + RTUINT128_INIT_C(0x0000000000000000, 0x000c6cdea3df7a15), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000002937), + RTUINT128_INIT_C(0x0000000000000000, 0x0000004d2d8243f8), RTUINT128_INIT_C(0x0000000000000000, 0x00000000000027cd) + }, + { /* i=1502; 63 / 17 */ + RTUINT128_INIT_C(0x0000000000000000, 0x383564c0d0d841d1), RTUINT128_INIT_C(0x0000000000000000, 0x000000000001d51b), + RTUINT128_INIT_C(0x0000000000000000, 0x00001eac92964cf5), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000014afa) + }, + { /* i=1503; 119 / 68 */ + RTUINT128_INIT_C(0x006d811080c4f27a, 0xf5c6077727f31434), RTUINT128_INIT_C(0x0000000000000006, 0x0506244378d93e0b), + RTUINT128_INIT_C(0x0000000000000000, 0x001230f2023ab83e), RTUINT128_INIT_C(0x0000000000000005, 0x4038f6299a40258a) + }, + { /* i=1504; 121 / 53 */ + RTUINT128_INIT_C(0x016a3069ec3f06b8, 0x044e11a286072f1e), RTUINT128_INIT_C(0x0000000000000000, 0x0012bca589e2127a), + RTUINT128_INIT_C(0x0000000000000013, 0x548bbe7f7d2cd3e7), RTUINT128_INIT_C(0x0000000000000000, 0x00069b3706d5f508) + }, + { /* i=1505; 22 / 65 */ + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000280d54), RTUINT128_INIT_C(0x0000000000000001, 0xc0bb859fc60cfccf), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000280d54) + }, + { /* i=1506; 74 / 29 */ + RTUINT128_INIT_C(0x000000000000028f, 0x1175b44e732cc57e), RTUINT128_INIT_C(0x0000000000000000, 0x000000000069f563), + RTUINT128_INIT_C(0x0000000000000000, 0x00062eaba6b7c350), RTUINT128_INIT_C(0x0000000000000000, 0x000000000060ad8e) + }, + { /* i=1507; 112 / 66 */ + RTUINT128_INIT_C(0x000050b5f87abf72, 0x5b0f543fe5144bb2), RTUINT128_INIT_C(0x0000000000000000, 0x8e0f9156dd5a8cdd), + RTUINT128_INIT_C(0x0000000000000000, 0x00009171cdf3250f), RTUINT128_INIT_C(0x0000000000000000, 0x44ad47dd27a319bf) + }, + { /* i=1508; 128 / 127 */ + RTUINT128_INIT_C(0xc976fc36188f71c1, 0xe09883d1b2775132), RTUINT128_INIT_C(0x6ab9a72416aedf9b, 0x419ef421299f834b), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000001), RTUINT128_INIT_C(0x5ebd551201e09226, 0x9ef98fb088d7cde7) + }, + { /* i=1509; 114 / 109 */ + RTUINT128_INIT_C(0x0002355d77326187, 0xe2ba565e732ae41b), RTUINT128_INIT_C(0x00000206a595bd4e, 0x3ecfc49ed707ab55), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000117), RTUINT128_INIT_C(0x0000001f01011141, 0x6e4b0d4219cf2a78) + }, + { /* i=1510; 90 / 50 */ + RTUINT128_INIT_C(0x00000000023300f7, 0xbf7ba7578d813199), RTUINT128_INIT_C(0x0000000000000000, 0x0000c171ccde3716), + RTUINT128_INIT_C(0x0000000000000000, 0x000002e910ed76a1), RTUINT128_INIT_C(0x0000000000000000, 0x0000ae26e8fe68c3) + }, + { /* i=1511; 117 / 121 */ + RTUINT128_INIT_C(0x0017a09d3249959e, 0x7edddf5437c9169c), RTUINT128_INIT_C(0x0062d57817165374, 0x41ee9c31cade5409), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x0017a09d3249959e, 0x7edddf5437c9169c) + }, + { /* i=1512; 126 / 119 */ + RTUINT128_INIT_C(0x2fda10c18ad9dfd4, 0x293f9c570d08f864), RTUINT128_INIT_C(0x0050e5b22a79ae63, 0x3c859f69f8867b02), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000097), RTUINT128_INIT_C(0x002294aa7d14034b, 0x766e94d575b66a36) + }, + { /* i=1513; 121 / 93 */ + RTUINT128_INIT_C(0x00cc22f50dcfcd95, 0x42e1f8666eee9c46), RTUINT128_INIT_C(0x0000000011123ff1, 0xf8bff74a5dc2253c), + RTUINT128_INIT_C(0x0000000000000000, 0x000000000bf53824), RTUINT128_INIT_C(0x0000000010fe91cc, 0x6d97db0791103fd6) + }, + { /* i=1514; 117 / 117 */ + RTUINT128_INIT_C(0x001d10229bbcc6ac, 0x0b1d67ee44e04fe4), RTUINT128_INIT_C(0x0005ea965e1af79f, 0xd1d6088cf0d7f687), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000004), RTUINT128_INIT_C(0x000565c92350e82c, 0xc3c545ba818075c8) + }, + { /* i=1515; 115 / 124 */ + RTUINT128_INIT_C(0x00027cf84e167e0f, 0xaefa3b2defa46fa2), RTUINT128_INIT_C(0x0dcd705d7308c8f7, 0x312586354fda7379), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x00027cf84e167e0f, 0xaefa3b2defa46fa2) + }, + { /* i=1516; 112 / 45 */ + RTUINT128_INIT_C(0x0000f06aed5a56b4, 0x3076f6a3cc450a62), RTUINT128_INIT_C(0x0000000000000000, 0x00000d651a6b32d9), + RTUINT128_INIT_C(0x0000000000000011, 0xf2ca8f05d07a2805), RTUINT128_INIT_C(0x0000000000000000, 0x000001e5fcd12425) + }, + { /* i=1517; 126 / 54 */ + RTUINT128_INIT_C(0x02d05640d90594b3, 0xbd9c3962136d4c04), RTUINT128_INIT_C(0x0000000000000000, 0x00199002be7ddddb), + RTUINT128_INIT_C(0x000000000000001c, 0x2decbbfad1b773d8), RTUINT128_INIT_C(0x0000000000000000, 0x0000ec876c03ba3c) + }, + { /* i=1518; 123 / 103 */ + RTUINT128_INIT_C(0x06ce25e90291dd41, 0xa6a34a4244e678be), RTUINT128_INIT_C(0x0000000b304aa9d7, 0x25bf238e9597845e), + RTUINT128_INIT_C(0x0000000000000000, 0x00000000009bb4f5), RTUINT128_INIT_C(0x0000000a766e3115, 0x9a616ee16ce8b2c8) + }, + { /* i=1519; 73 / 60 */ + RTUINT128_INIT_C(0x000000000000019f, 0x550eea0314c6d2e6), RTUINT128_INIT_C(0x0000000000000000, 0x04e75aca06b01abb), + RTUINT128_INIT_C(0x0000000000000000, 0x00000000000054b2), RTUINT128_INIT_C(0x0000000000000000, 0x02677f58a58ee0e0) + }, + { /* i=1520; 118 / 47 */ + RTUINT128_INIT_C(0x0034eb3702f01d20, 0xabdf2780d915268a), RTUINT128_INIT_C(0x0000000000000000, 0x000050e2a1b72f4d), + RTUINT128_INIT_C(0x00000000000000a7, 0x7c9d6f263eed84d6), RTUINT128_INIT_C(0x0000000000000000, 0x00003231c546e82c) + }, + { /* i=1521; 1 / 55 */ + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x0000000000000000, 0x002a9ac862dd9cac), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000) + }, + { /* i=1522; 41 / 4 */ + RTUINT128_INIT_C(0x0000000000000000, 0x000000e2bdab4f16), RTUINT128_INIT_C(0x0000000000000000, 0x000000000000000e), + RTUINT128_INIT_C(0x0000000000000000, 0x00000010321e85a6), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000002) + }, + { /* i=1523; 118 / 120 */ + RTUINT128_INIT_C(0x003c2656a6ae3208, 0x7fe0953e8cc6e497), RTUINT128_INIT_C(0x00a8871eba8db2ac, 0x9fbd636a8196425f), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x003c2656a6ae3208, 0x7fe0953e8cc6e497) + }, + { /* i=1524; 128 / 87 */ + RTUINT128_INIT_C(0x30ddbcd4d130b002, 0x62f0997cbac5d679), RTUINT128_INIT_C(0x00000000002fccef, 0x36f19224140be9fb), + RTUINT128_INIT_C(0x0000000000000000, 0x00000105b5059ee0), RTUINT128_INIT_C(0x000000000012dcf5, 0x6a5817facd0930d9) + }, + { /* i=1525; 76 / 3 */ + RTUINT128_INIT_C(0x0000000000000e1c, 0x3721fdfc3750abac), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000005), + RTUINT128_INIT_C(0x00000000000002d2, 0x716d32cc0b102255), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000003) + }, + { /* i=1526; 101 / 10 */ + RTUINT128_INIT_C(0x0000001839677223, 0x05f8d97c6e364043), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000117), + RTUINT128_INIT_C(0x00000000163a2d5e, 0xa26e14f7453654a5), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000070) + }, + { /* i=1527; 114 / 110 */ + RTUINT128_INIT_C(0x00010915309a1a15, 0x95cc65b398cc1406), RTUINT128_INIT_C(0x000000f538a5b680, 0x5c63939fcc73f113), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000114), RTUINT128_INIT_C(0x000000b41df157b1, 0xfa713d6b2bcc2b8a) + }, + { /* i=1528; 98 / 48 */ + RTUINT128_INIT_C(0x00000000c8b5f70e, 0x7ee9149088a484b2), RTUINT128_INIT_C(0x0000000000000000, 0x00003335cfe3186e), + RTUINT128_INIT_C(0x0000000000000000, 0x0003eb5aa32ef690), RTUINT128_INIT_C(0x0000000000000000, 0x00000c7ef1a912d2) + }, + { /* i=1529; 78 / 72 */ + RTUINT128_INIT_C(0x0000000000000a6c, 0x939b857a337acec7), RTUINT128_INIT_C(0x000000000000008f, 0x0ccc15f2ec20742a), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000012), RTUINT128_INIT_C(0x000000000000005d, 0xad41fa659932a3d3) + }, + { /* i=1530; 127 / 62 */ + RTUINT128_INIT_C(0x13bbf8e3ef4f0804, 0xfaa9cebda30d550b), RTUINT128_INIT_C(0x0000000000000000, 0x075b955d938964bd), + RTUINT128_INIT_C(0x0000000000000002, 0xae9e8f1d0dac902b), RTUINT128_INIT_C(0x0000000000000000, 0x0669fe324a53194c) + }, + { /* i=1531; 69 / 2 */ + RTUINT128_INIT_C(0x000000000000000b, 0xdb74905b8077b0bc), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000002), + RTUINT128_INIT_C(0x0000000000000005, 0xedba482dc03bd85e), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000) + }, + { /* i=1532; 127 / 48 */ + RTUINT128_INIT_C(0x1cdec0dfbd13ac7a, 0x23dcb3cbc8640d6f), RTUINT128_INIT_C(0x0000000000000000, 0x000069a5eb924d8f), + RTUINT128_INIT_C(0x00000000000045f4, 0xd0f713f6830c1658), RTUINT128_INIT_C(0x0000000000000000, 0x0000138e6bbb1a47) + }, + { /* i=1533; 102 / 100 */ + RTUINT128_INIT_C(0x000000163eca496d, 0x84a5c51b09b3f21a), RTUINT128_INIT_C(0x000000023c43d0da, 0xcec9377b5ff1cda1), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000009), RTUINT128_INIT_C(0x000000022067f1bc, 0x3f92d1c4aa33b771) + }, + { /* i=1534; 118 / 57 */ + RTUINT128_INIT_C(0x00194bf6ec1b399d, 0x2de3b5014b45430d), RTUINT128_INIT_C(0x0000000000000000, 0x0055aed5508d5cd7), + RTUINT128_INIT_C(0x0000000000000000, 0x4b949f675dd812d2), RTUINT128_INIT_C(0x0000000000000000, 0x003a14d9d65ffcaf) + }, + { /* i=1535; 65 / 46 */ + RTUINT128_INIT_C(0x0000000000000000, 0x272e1cb985e753b8), RTUINT128_INIT_C(0x0000000000000000, 0x000037108921b62c), + RTUINT128_INIT_C(0x0000000000000000, 0x000000000000b626), RTUINT128_INIT_C(0x0000000000000000, 0x00002ec733630130) + }, + { /* i=1536; 8 / 102 */ + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000059), RTUINT128_INIT_C(0x0000000af0f554e1, 0x655b528fb04731d5), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000059) + }, + { /* i=1537; 106 / 1 */ + RTUINT128_INIT_C(0x000002b5aeb3cb6b, 0x04ac30c7856de3c2), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000001), + RTUINT128_INIT_C(0x000002b5aeb3cb6b, 0x04ac30c7856de3c2), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000) + }, + { /* i=1538; 127 / 70 */ + RTUINT128_INIT_C(0x06ab335a471367df, 0x6ed43261d50fddee), RTUINT128_INIT_C(0x000000000000000d, 0xf7724ce9e03e8818), + RTUINT128_INIT_C(0x0000000000000000, 0x007a3c103dc038c4), RTUINT128_INIT_C(0x0000000000000006, 0x0968ef70ad6a6b8e) + }, + { /* i=1539; 116 / 45 */ + RTUINT128_INIT_C(0x000008152014bada, 0x6a629c7c27e63e69), RTUINT128_INIT_C(0x0000000000000000, 0x000018de2a1a12b4), + RTUINT128_INIT_C(0x0000000000000000, 0x5334745d3ac1ad6b), RTUINT128_INIT_C(0x0000000000000000, 0x000013e40ea8c92d) + }, + { /* i=1540; 48 / 39 */ + RTUINT128_INIT_C(0x0000000000000000, 0x000038f773134888), RTUINT128_INIT_C(0x0000000000000000, 0x00000007f6410625), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000727), RTUINT128_INIT_C(0x0000000000000000, 0x00000005280055e5) + }, + { /* i=1541; 125 / 124 */ + RTUINT128_INIT_C(0x0492afab4d86e83e, 0xf13300e6afae14c0), RTUINT128_INIT_C(0x05759b9ad7414b68, 0xb65e0f90f36c8b93), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x0492afab4d86e83e, 0xf13300e6afae14c0) + }, + { /* i=1542; 113 / 119 */ + RTUINT128_INIT_C(0x0000232b45815e70, 0x2dea371fafffc0c0), RTUINT128_INIT_C(0x001e8ee5c6903f2b, 0x132f0c0ec1cc1307), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x0000232b45815e70, 0x2dea371fafffc0c0) + }, + { /* i=1543; 63 / 36 */ + RTUINT128_INIT_C(0x0000000000000000, 0x2e8b2bc1cc24818c), RTUINT128_INIT_C(0x0000000000000000, 0x0000000322ba9369), + RTUINT128_INIT_C(0x0000000000000000, 0x000000000ed7e4a9), RTUINT128_INIT_C(0x0000000000000000, 0x000000002880ad3b) + }, + { /* i=1544; 36 / 3 */ + RTUINT128_INIT_C(0x0000000000000000, 0x000000054b76da6d), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000006), + RTUINT128_INIT_C(0x0000000000000000, 0x00000000e1e92467), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000003) + }, + { /* i=1545; 94 / 4 */ + RTUINT128_INIT_C(0x000000000736fa1c, 0x3516e7ba09649205), RTUINT128_INIT_C(0x0000000000000000, 0x000000000000000d), + RTUINT128_INIT_C(0x00000000008e133d, 0x3f29258476e05a00), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000005) + }, + { /* i=1546; 118 / 104 */ + RTUINT128_INIT_C(0x0033a1f26cee15e0, 0x31ef54ce0c52987a), RTUINT128_INIT_C(0x000000348e6cb6f1, 0xca1a2b5cf6dd6e9d), + RTUINT128_INIT_C(0x0000000000000000, 0x000000000000fb80), RTUINT128_INIT_C(0x000000069f338bd3, 0x7c55804782275afa) + }, + { /* i=1547; 120 / 38 */ + RTUINT128_INIT_C(0x007ef1531d718549, 0x2b27c61957f963f8), RTUINT128_INIT_C(0x0000000000000000, 0x0000001cd7842fbb), + RTUINT128_INIT_C(0x00000000000466bd, 0xda419259b5e7da5d), RTUINT128_INIT_C(0x0000000000000000, 0x0000000f3391cf09) + }, + { /* i=1548; 45 / 7 */ + RTUINT128_INIT_C(0x0000000000000000, 0x00001f602ff21539), RTUINT128_INIT_C(0x0000000000000000, 0x000000000000006a), + RTUINT128_INIT_C(0x0000000000000000, 0x0000004bc67d741f), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000063) + }, + { /* i=1549; 122 / 103 */ + RTUINT128_INIT_C(0x030e57517077f36b, 0x8864c9759806b58c), RTUINT128_INIT_C(0x00000022772467c2, 0x47f79befdec254ba), + RTUINT128_INIT_C(0x0000000000000000, 0x000000000016b306), RTUINT128_INIT_C(0x00000013465e7d44, 0x4ff14461363eab30) + }, + { /* i=1550; 119 / 116 */ + RTUINT128_INIT_C(0x003ae31fdf925f5c, 0xbbf7ea92654e6cf3), RTUINT128_INIT_C(0x000e1ad178db028d, 0xd7421b374bd006d0), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000004), RTUINT128_INIT_C(0x000277d9fc265525, 0x5eef7db5360e51b3) + }, + { /* i=1551; 122 / 18 */ + RTUINT128_INIT_C(0x03d9fa8a75d1e473, 0xba26647233bc2109), RTUINT128_INIT_C(0x0000000000000000, 0x000000000001e390), + RTUINT128_INIT_C(0x00000209fb30d97d, 0x60f470b5cb18e3c4), RTUINT128_INIT_C(0x0000000000000000, 0x00000000000136c9) + }, + { /* i=1552; 127 / 71 */ + RTUINT128_INIT_C(0x0d01e3408ada3987, 0x90157cec1214b852), RTUINT128_INIT_C(0x0000000000000029, 0x7e24517699268244), + RTUINT128_INIT_C(0x0000000000000000, 0x0050409656f55cec), RTUINT128_INIT_C(0x0000000000000002, 0x58feef1788b031a2) + }, + { /* i=1553; 124 / 127 */ + RTUINT128_INIT_C(0x08d553a2bf473a79, 0x06aed28c08d6fb3b), RTUINT128_INIT_C(0x7c6e3d66ff5be2b1, 0xf83f41d1f87bf7ec), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x08d553a2bf473a79, 0x06aed28c08d6fb3b) + }, + { /* i=1554; 117 / 127 */ + RTUINT128_INIT_C(0x00038bfd04e614d8, 0xadeea20513f267d8), RTUINT128_INIT_C(0x42f26f0dc00f478d, 0xa13715a9a77326fd), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x00038bfd04e614d8, 0xadeea20513f267d8) + }, + { /* i=1555; 114 / 46 */ + RTUINT128_INIT_C(0x00024e2a80734387, 0xb1850b90212fa361), RTUINT128_INIT_C(0x0000000000000000, 0x0000158870f762ba), + RTUINT128_INIT_C(0x000000000000001b, 0x685519b87d9f04df), RTUINT128_INIT_C(0x0000000000000000, 0x00001366b89fbb5b) + }, + { /* i=1556; 128 / 68 */ + RTUINT128_INIT_C(0x172ed7bda15aaec7, 0x4499ca25360e0129), RTUINT128_INIT_C(0x0000000000000004, 0xcfa99b2d76a4c2a1), + RTUINT128_INIT_C(0x0000000000000000, 0x04d18d4e52265e64), RTUINT128_INIT_C(0x0000000000000003, 0xf7c71df7e854dc45) + }, + { /* i=1557; 117 / 118 */ + RTUINT128_INIT_C(0x0002728e55733129, 0xe9e500f69c85e5ca), RTUINT128_INIT_C(0x003b8ba3dac20947, 0xeda5d3cc52de2bab), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x0002728e55733129, 0xe9e500f69c85e5ca) + }, + { /* i=1558; 127 / 112 */ + RTUINT128_INIT_C(0x204a8f62b1bd0c37, 0x47ce3c557a9310e8), RTUINT128_INIT_C(0x00007580ce4ff917, 0x1283a901b71463f9), + RTUINT128_INIT_C(0x0000000000000000, 0x000000000000465a), RTUINT128_INIT_C(0x000007b04b832b0a, 0xc54e59ab8a11d55e) + }, + { /* i=1559; 115 / 103 */ + RTUINT128_INIT_C(0x00066e126aac3bb4, 0xfa7de687708b28a0), RTUINT128_INIT_C(0x00000027ad15a3ec, 0x2be669c5fd0e881e), + RTUINT128_INIT_C(0x0000000000000000, 0x000000000000297c), RTUINT128_INIT_C(0x000000221cf00247, 0xcff1f51989b46c18) + }, + { /* i=1560; 126 / 121 */ + RTUINT128_INIT_C(0x1f0e27c8776b4e6c, 0x0e6e9833ad263614), RTUINT128_INIT_C(0x018eb3fcab176cf4, 0xc19c646c3e4f629a), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000013), RTUINT128_INIT_C(0x0176cc07c4ae3841, 0xafd3242b0d41e4a6) + }, + { /* i=1561; 113 / 95 */ + RTUINT128_INIT_C(0x0000b49c129867b4, 0xd046f71ea0030db2), RTUINT128_INIT_C(0x0000000038d5cce4, 0x61ded1ec1d59bf0d), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000032d83), RTUINT128_INIT_C(0x00000000017f4406, 0x1a96b215975a010b) + }, + { /* i=1562; 122 / 79 */ + RTUINT128_INIT_C(0x0350c0c47457b9e0, 0x7b6c0e4d52f749f4), RTUINT128_INIT_C(0x0000000000001f32, 0xff9ab24e676a3b7a), + RTUINT128_INIT_C(0x0000000000000000, 0x00001b344d8a812a), RTUINT128_INIT_C(0x0000000000001ada, 0xaef8a56411cd0df0) + }, + { /* i=1563; 71 / 67 */ + RTUINT128_INIT_C(0x0000000000000073, 0xba0c22eb71bd44d5), RTUINT128_INIT_C(0x0000000000000002, 0x3984d75b9d7bf23f), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000034), RTUINT128_INIT_C(0x0000000000000000, 0x0b10644f74901009) + }, + { /* i=1564; 127 / 13 */ + RTUINT128_INIT_C(0x1c6708dabc7551d1, 0x4f46a81fbdbfee4b), RTUINT128_INIT_C(0x0000000000000000, 0x000000000000093e), + RTUINT128_INIT_C(0x000312b8e5add166, 0x8daaa91423762073), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000771) + }, + { /* i=1565; 125 / 96 */ + RTUINT128_INIT_C(0x0b9e91f9aa7c4704, 0x8b176d46aba42532), RTUINT128_INIT_C(0x00000000bf0d65d2, 0xf31becdb1063cb67), + RTUINT128_INIT_C(0x0000000000000000, 0x000000000f91c432), RTUINT128_INIT_C(0x000000000f2e8bfd, 0xb041507fd2148f14) + }, + { /* i=1566; 122 / 104 */ + RTUINT128_INIT_C(0x024fad24461ff05c, 0xcad521c1f49c1727), RTUINT128_INIT_C(0x0000004b6b48527f, 0x69e1cc926c839001), + RTUINT128_INIT_C(0x0000000000000000, 0x000000000007d85d), RTUINT128_INIT_C(0x0000003f05c29190, 0x37314d689748eeca) + }, + { /* i=1567; 43 / 7 */ + RTUINT128_INIT_C(0x0000000000000000, 0x0000079de3c0c530), RTUINT128_INIT_C(0x0000000000000000, 0x000000000000002a), + RTUINT128_INIT_C(0x0000000000000000, 0x0000002e6d0aaf5c), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000018) + }, + { /* i=1568; 11 / 63 */ + RTUINT128_INIT_C(0x0000000000000000, 0x00000000000004ef), RTUINT128_INIT_C(0x0000000000000000, 0x5f70bfa4852b15ed), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x0000000000000000, 0x00000000000004ef) + }, + { /* i=1569; 60 / 56 */ + RTUINT128_INIT_C(0x0000000000000000, 0x064094ab1af24127), RTUINT128_INIT_C(0x0000000000000000, 0x000f57302a89782d), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000068), RTUINT128_INIT_C(0x0000000000000000, 0x00052919d3196edf) + }, + { /* i=1570; 119 / 56 */ + RTUINT128_INIT_C(0x00522b847150de96, 0xfa7c13fa9290da01), RTUINT128_INIT_C(0x0000000000000000, 0x0064080abbfc2e69), + RTUINT128_INIT_C(0x0000000000000000, 0xd24a035be8102a06), RTUINT128_INIT_C(0x0000000000000000, 0x00401cbdbc7a898b) + }, + { /* i=1571; 128 / 45 */ + RTUINT128_INIT_C(0xf325cdef332a4246, 0x3a05aab615656d26), RTUINT128_INIT_C(0x0000000000000000, 0x0000029e16682679), + RTUINT128_INIT_C(0x00000000005ce45d, 0x6d71dced2290da00), RTUINT128_INIT_C(0x0000000000000000, 0x000001eaae926326) + }, + { /* i=1572; 111 / 23 */ + RTUINT128_INIT_C(0x000051b65e579f85, 0x028f7bc09ba1b9e0), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000625b7b), + RTUINT128_INIT_C(0x0000000000d4ad5f, 0x6c27c6490db3acd0), RTUINT128_INIT_C(0x0000000000000000, 0x00000000003fc1f0) + }, + { /* i=1573; 124 / 76 */ + RTUINT128_INIT_C(0x03a161a67f01adf6, 0x2be52dd833a3edf4), RTUINT128_INIT_C(0x000000000000043f, 0xc55413f349bf5b29), + RTUINT128_INIT_C(0x0000000000000000, 0x0000dab95c16e8bc), RTUINT128_INIT_C(0x000000000000004a, 0xabbf26830ef9d3d8) + }, + { /* i=1574; 115 / 59 */ + RTUINT128_INIT_C(0x000494a8e1c9787f, 0x727b872efb49f393), RTUINT128_INIT_C(0x0000000000000000, 0x0321a98a977d0a9c), + RTUINT128_INIT_C(0x0000000000000000, 0x017679170c96598a), RTUINT128_INIT_C(0x0000000000000000, 0x01eea40751c9ff7b) + }, + { /* i=1575; 115 / 88 */ + RTUINT128_INIT_C(0x000459a2e3b1995d, 0x4536855c1fa32cc7), RTUINT128_INIT_C(0x0000000000b0ec2b, 0x4b8d557547787e84), + RTUINT128_INIT_C(0x0000000000000000, 0x00000000064b6362), RTUINT128_INIT_C(0x00000000002e0029, 0xe806b08f01e9b23f) + }, + { /* i=1576; 120 / 127 */ + RTUINT128_INIT_C(0x001c916c05db982c, 0x3a44de52332afb14), RTUINT128_INIT_C(0x15f9beae9aeea2db, 0xd490aca57491468a), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x001c916c05db982c, 0x3a44de52332afb14) + }, + { /* i=1577; 125 / 117 */ + RTUINT128_INIT_C(0x110632a2f324cc87, 0x082388c82c963513), RTUINT128_INIT_C(0x000acacba452ac59, 0xcd973f21c5cc67fc), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000193), RTUINT128_INIT_C(0x0008f40f44ff7b28, 0x630b269dcbce835f) + }, + { /* i=1578; 121 / 120 */ + RTUINT128_INIT_C(0x0171932185409b75, 0x7560b69e740eb92d), RTUINT128_INIT_C(0x002be2acb8bd6c17, 0xd39999176543bd22), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000008), RTUINT128_INIT_C(0x00127dbbbf553ab6, 0xd893ede349f0d01d) + }, + { /* i=1579; 118 / 73 */ + RTUINT128_INIT_C(0x002900554599ce0e, 0xcb00cc743475d880), RTUINT128_INIT_C(0x00000000000001d8, 0xdba3e7ad5f2d948b), + RTUINT128_INIT_C(0x0000000000000000, 0x0000163298d3d3d9), RTUINT128_INIT_C(0x0000000000000083, 0x1f0a0d21fed35dad) + }, + { /* i=1580; 120 / 6 */ + RTUINT128_INIT_C(0x007e3ba3923ca913, 0xa95e39cfb40f1036), RTUINT128_INIT_C(0x0000000000000000, 0x000000000000003b), + RTUINT128_INIT_C(0x000223b9027a8509, 0x02dee29b62826cbf), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000031) + }, + { /* i=1581; 64 / 34 */ + RTUINT128_INIT_C(0x0000000000000000, 0xed54801aac33a2ae), RTUINT128_INIT_C(0x0000000000000000, 0x0000000143901479), + RTUINT128_INIT_C(0x0000000000000000, 0x00000000bbc5ffc5), RTUINT128_INIT_C(0x0000000000000000, 0x0000000105d25a91) + }, + { /* i=1582; 33 / 14 */ + RTUINT128_INIT_C(0x0000000000000000, 0x00000001205fcdfb), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000a92), + RTUINT128_INIT_C(0x0000000000000000, 0x00000000001b4811), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000a49) + }, + { /* i=1583; 60 / 5 */ + RTUINT128_INIT_C(0x0000000000000000, 0x05cda11319ec6600), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000014), + RTUINT128_INIT_C(0x0000000000000000, 0x004a480dc14bd1e6), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000008) + }, + { /* i=1584; 92 / 123 */ + RTUINT128_INIT_C(0x000000000a0396f0, 0x352a0e10dd6c0af9), RTUINT128_INIT_C(0x018f8eec24f6f461, 0x8aaeb4460310e95f), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x000000000a0396f0, 0x352a0e10dd6c0af9) + }, + { /* i=1585; 106 / 15 */ + RTUINT128_INIT_C(0x0000039662227a72, 0xa999323777a6e9e1), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000003b7b), + RTUINT128_INIT_C(0x000000000f70a93d, 0x74ce478a15240e70), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000002a11) + }, + { /* i=1586; 126 / 108 */ + RTUINT128_INIT_C(0x044a09a198b67725, 0x007b9172b39700ed), RTUINT128_INIT_C(0x000001afaf767f7d, 0x717e3817595fe506), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000028b29), RTUINT128_INIT_C(0x0000014c28880c71, 0xdaa1356e87d510f7) + }, + { /* i=1587; 120 / 77 */ + RTUINT128_INIT_C(0x0071ce52e0746738, 0x31f0fd3710fa09ae), RTUINT128_INIT_C(0x00000000000010d6, 0x5bb08a77f329f27b), + RTUINT128_INIT_C(0x0000000000000000, 0x000006c2572499de), RTUINT128_INIT_C(0x0000000000000e0c, 0xae1d225a3a624004) + }, + { /* i=1588; 123 / 73 */ + RTUINT128_INIT_C(0x02a72e2484a480a0, 0xd63b77321fdc9891), RTUINT128_INIT_C(0x0000000000000187, 0x91ffddcf7acd04d9), + RTUINT128_INIT_C(0x0000000000000000, 0x0001bc08732ff5ce), RTUINT128_INIT_C(0x00000000000000ba, 0x22fd421dba6804f3) + }, + { /* i=1589; 124 / 92 */ + RTUINT128_INIT_C(0x095c482296f592a5, 0xf99c16a332c80584), RTUINT128_INIT_C(0x000000000b54f23b, 0x3d0cbc4791d573de), + RTUINT128_INIT_C(0x0000000000000000, 0x00000000d376ffed), RTUINT128_INIT_C(0x000000000168acf0, 0xff16573a2f6d9efe) + }, + { /* i=1590; 121 / 113 */ + RTUINT128_INIT_C(0x015860346d429266, 0xb81a0ebfdd8b626a), RTUINT128_INIT_C(0x00007de563af5cdb, 0xca18a38975b464bf), + RTUINT128_INIT_C(0x0000000000000000, 0x00000000000002bc), RTUINT128_INIT_C(0x000020f7d9c0a96a, 0x1cbae2e20447e826) + }, + { /* i=1591; 127 / 10 */ + RTUINT128_INIT_C(0x112059e7451f592b, 0xd68dfbdc01dfdde8), RTUINT128_INIT_C(0x0000000000000000, 0x00000000000001c5), + RTUINT128_INIT_C(0x0009adb0d412b7dc, 0x7e7ee68f761d50bc), RTUINT128_INIT_C(0x0000000000000000, 0x000000000000013c) + }, + { /* i=1592; 123 / 33 */ + RTUINT128_INIT_C(0x0397254c8f2e816c, 0x1fc2d61d5c1d65ff), RTUINT128_INIT_C(0x0000000000000000, 0x000000004c0cdd31), + RTUINT128_INIT_C(0x000000000c160624, 0xde17e36ce795ace7), RTUINT128_INIT_C(0x0000000000000000, 0x00000000235fe2c8) + }, + { /* i=1593; 126 / 49 */ + RTUINT128_INIT_C(0x24819da9d6c998bb, 0x115663dd016ea67c), RTUINT128_INIT_C(0x0000000000000000, 0x0000b8cb474a94b0), + RTUINT128_INIT_C(0x0000000000003292, 0xb95dce33546ec0c6), RTUINT128_INIT_C(0x0000000000000000, 0x0000a7464a9ba65c) + }, + { /* i=1594; 53 / 17 */ + RTUINT128_INIT_C(0x0000000000000000, 0x0016e95d1f3c713f), RTUINT128_INIT_C(0x0000000000000000, 0x000000000001983a), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000e5e2f8cd6), RTUINT128_INIT_C(0x0000000000000000, 0x00000000000178c3) + }, + { /* i=1595; 59 / 2 */ + RTUINT128_INIT_C(0x0000000000000000, 0x01a61d60266f41ac), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000003), + RTUINT128_INIT_C(0x0000000000000000, 0x008cb475622515e4), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000) + }, + { /* i=1596; 42 / 21 */ + RTUINT128_INIT_C(0x0000000000000000, 0x000000b9e39625bc), RTUINT128_INIT_C(0x0000000000000000, 0x00000000000912fd), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000147c4a), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000001c9a) + }, + { /* i=1597; 88 / 32 */ + RTUINT128_INIT_C(0x0000000000453300, 0x26d3fd50332c1987), RTUINT128_INIT_C(0x0000000000000000, 0x000000008f3381b1), + RTUINT128_INIT_C(0x0000000000000000, 0x007bb5028ae15e4c), RTUINT128_INIT_C(0x0000000000000000, 0x000000005fb19afb) + }, + { /* i=1598; 113 / 57 */ + RTUINT128_INIT_C(0x0000e4b6854399d9, 0x6a1a6a3a34165e79), RTUINT128_INIT_C(0x0000000000000000, 0x016098f083ccb003), + RTUINT128_INIT_C(0x0000000000000000, 0x00a60e0c4cd3730a), RTUINT128_INIT_C(0x0000000000000000, 0x01189586248d255b) + }, + { /* i=1599; 21 / 2 */ + RTUINT128_INIT_C(0x0000000000000000, 0x00000000000d8889), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000003), + RTUINT128_INIT_C(0x0000000000000000, 0x00000000000482d8), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000001) + }, + { /* i=1600; 87 / 6 */ + RTUINT128_INIT_C(0x00000000007c0bc1, 0x36904cad5d1175e0), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000038), + RTUINT128_INIT_C(0x0000000000023711, 0x2a1e015e863bbd88), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000020) + }, + { /* i=1601; 16 / 67 */ + RTUINT128_INIT_C(0x0000000000000000, 0x000000000000ad82), RTUINT128_INIT_C(0x0000000000000007, 0x9ef09e80cf92a230), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x0000000000000000, 0x000000000000ad82) + }, + { /* i=1602; 69 / 59 */ + RTUINT128_INIT_C(0x0000000000000005, 0x48f3b3dfc15b4d3e), RTUINT128_INIT_C(0x0000000000000000, 0x00fb3b87016d72a7), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000562), RTUINT128_INIT_C(0x0000000000000000, 0x009d472a12382650) + }, + { /* i=1603; 117 / 21 */ + RTUINT128_INIT_C(0x000d656944652590, 0x683f45e022e61d7b), RTUINT128_INIT_C(0x0000000000000000, 0x00000000001f27e6), + RTUINT128_INIT_C(0x000000006e12a153, 0x3e2395f30c9987a7), RTUINT128_INIT_C(0x0000000000000000, 0x000000000012cc71) + }, + { /* i=1604; 123 / 81 */ + RTUINT128_INIT_C(0x041d8fe6e3fee5bd, 0x1e89d5c7f288fc3b), RTUINT128_INIT_C(0x000000000000ab15, 0xa52aafa687925e17), + RTUINT128_INIT_C(0x0000000000000000, 0x000006287bab9ab6), RTUINT128_INIT_C(0x0000000000000fe3, 0x1013a8439d8341e1) + }, + { /* i=1605; 123 / 63 */ + RTUINT128_INIT_C(0x07ec60cb4a02aa0a, 0x5a45b78187bd2a75), RTUINT128_INIT_C(0x0000000000000000, 0x16bfe7b4b649bfe5), + RTUINT128_INIT_C(0x0000000000000000, 0x592932b29d9a8f1b), RTUINT128_INIT_C(0x0000000000000000, 0x0baa4b583b03024e) + }, + { /* i=1606; 98 / 43 */ + RTUINT128_INIT_C(0x0000000095853515, 0xa4e09f1aa18c44b4), RTUINT128_INIT_C(0x0000000000000000, 0x0000052a9d034619), + RTUINT128_INIT_C(0x0000000000000000, 0x001cf0ca5e43c80e), RTUINT128_INIT_C(0x0000000000000000, 0x000000c8f60fe756) + }, + { /* i=1607; 125 / 45 */ + RTUINT128_INIT_C(0x07faa13e18f53411, 0x890c02a335b9b027), RTUINT128_INIT_C(0x0000000000000000, 0x00001ff97f1cf8f5), + RTUINT128_INIT_C(0x0000000000003fe2, 0x059f256480d4735c), RTUINT128_INIT_C(0x0000000000000000, 0x000007b2d896291b) + }, + { /* i=1608; 120 / 117 */ + RTUINT128_INIT_C(0x003e8970329840fd, 0x479a4dd69990e693), RTUINT128_INIT_C(0x0011acbf1d2bace7, 0x04e321640c3d811e), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000003), RTUINT128_INIT_C(0x00098332db153a48, 0x38f0e9aa74d86339) + }, + { /* i=1609; 110 / 12 */ + RTUINT128_INIT_C(0x00001635b8c84ce6, 0x4d8adc1b0c1fce5c), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000073), + RTUINT128_INIT_C(0x0000003170e94139, 0xa7a17c594757180e), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000012) + }, + { /* i=1610; 126 / 85 */ + RTUINT128_INIT_C(0x2f35b8c0b8c24d2b, 0x42a098169d17c8e8), RTUINT128_INIT_C(0x000000000005f13c, 0xa383211f37d8addc), + RTUINT128_INIT_C(0x0000000000000000, 0x000007f1d5c0fae4), RTUINT128_INIT_C(0x00000000000175a9, 0x42e0c078d55418f8) + }, + { /* i=1611; 125 / 71 */ + RTUINT128_INIT_C(0x061c298fee74de87, 0x933056244373466c), RTUINT128_INIT_C(0x0000000000000000, 0x486c1451c4148313), + RTUINT128_INIT_C(0x0000000000000000, 0x15990bab369154bd), RTUINT128_INIT_C(0x0000000000000000, 0x225dbf7a85894565) + }, + { /* i=1612; 120 / 64 */ + RTUINT128_INIT_C(0x001979a6ce9c0649, 0x3a6c3b4c440dbd8e), RTUINT128_INIT_C(0x0000000000000000, 0x056b83f0bc624617), + RTUINT128_INIT_C(0x0000000000000000, 0x04b342c04fa891a3), RTUINT128_INIT_C(0x0000000000000000, 0x03426af18fb015e9) + }, + { /* i=1613; 16 / 5 */ + RTUINT128_INIT_C(0x0000000000000000, 0x000000000000a112), RTUINT128_INIT_C(0x0000000000000000, 0x000000000000000e), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000b81), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000004) + }, + { /* i=1614; 67 / 50 */ + RTUINT128_INIT_C(0x0000000000000005, 0x12d52e83bcb270d5), RTUINT128_INIT_C(0x0000000000000000, 0x0000d2f926ca301c), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000062808), RTUINT128_INIT_C(0x0000000000000000, 0x0000bfedce348ff5) + }, + { /* i=1615; 72 / 71 */ + RTUINT128_INIT_C(0x000000000000002d, 0x42048a79dd679a01), RTUINT128_INIT_C(0x0000000000000013, 0x1106746d6206258a), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000002), RTUINT128_INIT_C(0x0000000000000007, 0x1ff7a19f195b4eed) + }, + { /* i=1616; 62 / 100 */ + RTUINT128_INIT_C(0x0000000000000000, 0x0b274b53274f4158), RTUINT128_INIT_C(0x000000011fc647ce, 0x3905081007936a00), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x0000000000000000, 0x0b274b53274f4158) + }, + { /* i=1617; 99 / 78 */ + RTUINT128_INIT_C(0x00000001888cd5a5, 0x5e2dbdad2861308b), RTUINT128_INIT_C(0x0000000000001b16, 0x797e801da260a6de), + RTUINT128_INIT_C(0x0000000000000000, 0x00000000000e7de4), RTUINT128_INIT_C(0x0000000000001763, 0x635649b638ae2cd3) + }, + { /* i=1618; 119 / 58 */ + RTUINT128_INIT_C(0x00327a9f1ff3dc63, 0x067ce12059152228), RTUINT128_INIT_C(0x0000000000000000, 0x03c7760d8550d2c2), + RTUINT128_INIT_C(0x0000000000000000, 0x0d5b74d18a5aba05), RTUINT128_INIT_C(0x0000000000000000, 0x01c15797592c105e) + }, + { /* i=1619; 54 / 18 */ + RTUINT128_INIT_C(0x0000000000000000, 0x0025960b06da2853), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000037656), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000adb2158e4), RTUINT128_INIT_C(0x0000000000000000, 0x00000000000133bb) + }, + { /* i=1620; 127 / 125 */ + RTUINT128_INIT_C(0x3899b0d45629e687, 0x11bcb55c080a4439), RTUINT128_INIT_C(0x1b6ebf50e3b52a5c, 0xccb9c4ae6c020fcb), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000002), RTUINT128_INIT_C(0x01bc32328ebf91cd, 0x78492bff300624a3) + }, + { /* i=1621; 117 / 81 */ + RTUINT128_INIT_C(0x000c6190ae50d8e3, 0xa9f29f40df5d8ac9), RTUINT128_INIT_C(0x00000000000168e2, 0x2b80ef3328054b72), + RTUINT128_INIT_C(0x0000000000000000, 0x00000008c8652cbd), RTUINT128_INIT_C(0x0000000000002c17, 0xcc07f30396833f9f) + }, + { /* i=1622; 124 / 84 */ + RTUINT128_INIT_C(0x0ad28100e618efac, 0x728ba414f3238e33), RTUINT128_INIT_C(0x00000000000eda2a, 0xafc967c76bcab54c), + RTUINT128_INIT_C(0x0000000000000000, 0x000000ba89c1a9e8), RTUINT128_INIT_C(0x00000000000654ab, 0xe733792217741553) + }, + { /* i=1623; 95 / 88 */ + RTUINT128_INIT_C(0x000000004a1e7e9b, 0x9e1117b99794380f), RTUINT128_INIT_C(0x0000000000b32430, 0x6f010d07bbe4ea02), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000069), RTUINT128_INIT_C(0x0000000000a4a6be, 0x16a2bf8d86b03d3d) + }, + { /* i=1624; 14 / 4 */ + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000002052), RTUINT128_INIT_C(0x0000000000000000, 0x000000000000000c), + RTUINT128_INIT_C(0x0000000000000000, 0x00000000000002b1), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000006) + }, + { /* i=1625; 116 / 107 */ + RTUINT128_INIT_C(0x0007159631ccb758, 0xe6cd3dfd4f5c32a7), RTUINT128_INIT_C(0x000003ac67076417, 0xc85cc58abbe4622a), + RTUINT128_INIT_C(0x0000000000000000, 0x00000000000001ed), RTUINT128_INIT_C(0x00000293c890f58c, 0x0c24d1d1788b27c5) + }, + { /* i=1626; 39 / 3 */ + RTUINT128_INIT_C(0x0000000000000000, 0x0000003ef0c1bc2d), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000005), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000c968d25a2), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000003) + }, + { /* i=1627; 94 / 74 */ + RTUINT128_INIT_C(0x000000000976dad7, 0x6a728ba3b1221d55), RTUINT128_INIT_C(0x000000000000037e, 0x118c7ff6d546053f), + RTUINT128_INIT_C(0x0000000000000000, 0x000000000002b5bd), RTUINT128_INIT_C(0x0000000000000143, 0x1f50e311b03cb2d2) + }, + { /* i=1628; 113 / 116 */ + RTUINT128_INIT_C(0x00016687b040a506, 0xdd255c228db360d5), RTUINT128_INIT_C(0x000230a3f60fe110, 0x653474bf9b478637), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x00016687b040a506, 0xdd255c228db360d5) + }, + { /* i=1629; 124 / 59 */ + RTUINT128_INIT_C(0x03849b4b99e4cf51, 0x05657a06a234f2a5), RTUINT128_INIT_C(0x0000000000000000, 0x07cbca8ef58cb307), + RTUINT128_INIT_C(0x0000000000000000, 0x73854faca0717032), RTUINT128_INIT_C(0x0000000000000000, 0x06fc99f9b84feb47) + }, + { /* i=1630; 116 / 13 */ + RTUINT128_INIT_C(0x0000b1e48eedc5ef, 0xd0373aea434e7819), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000b6b), + RTUINT128_INIT_C(0x0000000f947fc65a, 0x072a521573313f5c), RTUINT128_INIT_C(0x0000000000000000, 0x00000000000008a5) + }, + { /* i=1631; 86 / 82 */ + RTUINT128_INIT_C(0x00000000000f212c, 0xd4a7fbbebbd33274), RTUINT128_INIT_C(0x000000000001a4b6, 0xea7ceee6113acdf2), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000009), RTUINT128_INIT_C(0x00000000000056be, 0x964395a820c1f4f2) + }, + { /* i=1632; 114 / 75 */ + RTUINT128_INIT_C(0x00009b0706ae06d2, 0xe6d3e87f84df8feb), RTUINT128_INIT_C(0x00000000000000f7, 0x9e43578261c33716), + RTUINT128_INIT_C(0x0000000000000000, 0x000000a0466ad034), RTUINT128_INIT_C(0x00000000000000a3, 0x0d51e8f0395a7f73) + }, + { /* i=1633; 65 / 25 */ + RTUINT128_INIT_C(0x0000000000000000, 0x480e8ea0baf9258f), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000caa0a5), + RTUINT128_INIT_C(0x0000000000000000, 0x0000005b096a8a3b), RTUINT128_INIT_C(0x0000000000000000, 0x00000000005b2d88) + }, + { /* i=1634; 48 / 70 */ + RTUINT128_INIT_C(0x0000000000000000, 0x00000b3754b678ab), RTUINT128_INIT_C(0x0000000000000019, 0x47884b22cdf75eea), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x0000000000000000, 0x00000b3754b678ab) + }, + { /* i=1635; 90 / 36 */ + RTUINT128_INIT_C(0x0000000000b92b0d, 0x27795dcea92ff1dc), RTUINT128_INIT_C(0x0000000000000000, 0x00000000e7ab5476), + RTUINT128_INIT_C(0x0000000000000000, 0x00cc9d7db9a1460f), RTUINT128_INIT_C(0x0000000000000000, 0x00000000d8d7baf2) + }, + { /* i=1636; 87 / 58 */ + RTUINT128_INIT_C(0x00000000001c4ec1, 0xaf4bf03aef3c6363), RTUINT128_INIT_C(0x0000000000000000, 0x00ae37fddd31eb09), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000029988275), RTUINT128_INIT_C(0x0000000000000000, 0x00151a997fb96646) + }, + { /* i=1637; 126 / 77 */ + RTUINT128_INIT_C(0x3f3507b3fdce617d, 0x793f9a91be378df0), RTUINT128_INIT_C(0x0000000000001637, 0x49b97638751ff7c4), + RTUINT128_INIT_C(0x0000000000000000, 0x0002d859f001657b), RTUINT128_INIT_C(0x0000000000001594, 0xdcc696b023572ec4) + }, + { /* i=1638; 31 / 27 */ + RTUINT128_INIT_C(0x0000000000000000, 0x000000005597fc60), RTUINT128_INIT_C(0x0000000000000000, 0x000000000525e6b4), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000010), RTUINT128_INIT_C(0x0000000000000000, 0x0000000003399120) + }, + { /* i=1639; 118 / 56 */ + RTUINT128_INIT_C(0x001f1523e78147a0, 0x48ae56d009e6632c), RTUINT128_INIT_C(0x0000000000000000, 0x00d1b424625fe1c8), + RTUINT128_INIT_C(0x0000000000000000, 0x25f1d6ed5ffb6e73), RTUINT128_INIT_C(0x0000000000000000, 0x001b893f0eb80654) + }, + { /* i=1640; 123 / 116 */ + RTUINT128_INIT_C(0x01243afd8687d322, 0xf4c4b990343016ea), RTUINT128_INIT_C(0x00030c44571ffd8f, 0xdf7616f030654704), + RTUINT128_INIT_C(0x0000000000000000, 0x000000000000005f), RTUINT128_INIT_C(0x0002ada131a8babf, 0x07f2366e3e9abc6e) + }, + { /* i=1641; 111 / 93 */ + RTUINT128_INIT_C(0x00000a81a1ab64e9, 0xd7fc52da1244c22e), RTUINT128_INIT_C(0x00000000076a2a03, 0xa0f22a4f18d10d55), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000016abe), RTUINT128_INIT_C(0x00000000017714a1, 0xf46d130e0a42ab18) + }, + { /* i=1642; 86 / 58 */ + RTUINT128_INIT_C(0x00000000002f17b5, 0x90ffdb940cad4306), RTUINT128_INIT_C(0x0000000000000000, 0x002cad2cea7e308d), + RTUINT128_INIT_C(0x0000000000000000, 0x000000010dd8407a), RTUINT128_INIT_C(0x0000000000000000, 0x001da60fa06edfd4) + }, + { /* i=1643; 118 / 103 */ + RTUINT128_INIT_C(0x0011cda742e6ba68, 0x218a1631f178d006), RTUINT128_INIT_C(0x0000003d2690a6f4, 0x3bbc6b24ec2da4fd), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000004a88), RTUINT128_INIT_C(0x00000004f5cb6f63, 0xee787e4f4788079e) + }, + { /* i=1644; 58 / 42 */ + RTUINT128_INIT_C(0x0000000000000000, 0x01e1b737661e35b8), RTUINT128_INIT_C(0x0000000000000000, 0x000003fbd310c2d4), + RTUINT128_INIT_C(0x0000000000000000, 0x00000000000078ec), RTUINT128_INIT_C(0x0000000000000000, 0x00000020f7573a48) + }, + { /* i=1645; 103 / 26 */ + RTUINT128_INIT_C(0x0000006cce512e5b, 0xfa2ed4cfe82d535f), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000b0cc19), + RTUINT128_INIT_C(0x0000000000009d8c, 0xab33322058f5799c), RTUINT128_INIT_C(0x0000000000000000, 0x00000000000c2323) + }, + { /* i=1646; 127 / 121 */ + RTUINT128_INIT_C(0x394e6d284cc74d3d, 0x189914af2b43ca8f), RTUINT128_INIT_C(0x00a9be70eb38e263, 0x1b3c025fae422b61), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000056), RTUINT128_INIT_C(0x0048733947ab3ff1, 0xf270488aa10937f9) + }, + { /* i=1647; 62 / 23 */ + RTUINT128_INIT_C(0x0000000000000000, 0x257b682e6e175928), RTUINT128_INIT_C(0x0000000000000000, 0x00000000003b4639), + RTUINT128_INIT_C(0x0000000000000000, 0x000000a1e1a27427), RTUINT128_INIT_C(0x0000000000000000, 0x00000000002bd279) + }, + { /* i=1648; 63 / 51 */ + RTUINT128_INIT_C(0x0000000000000000, 0x40759ed92a0316c2), RTUINT128_INIT_C(0x0000000000000000, 0x00015fec886b3c4c), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000002ee3), RTUINT128_INIT_C(0x0000000000000000, 0x00010f98ee16f75e) + }, + { /* i=1649; 9 / 4 */ + RTUINT128_INIT_C(0x0000000000000000, 0x00000000000001a9), RTUINT128_INIT_C(0x0000000000000000, 0x000000000000000e), + RTUINT128_INIT_C(0x0000000000000000, 0x000000000000001e), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000005) + }, + { /* i=1650; 2 / 115 */ + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000001), RTUINT128_INIT_C(0x000554072afdd0e6, 0x2d8a46a2ed86e162), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000001) + }, + { /* i=1651; 116 / 113 */ + RTUINT128_INIT_C(0x0002c747b222aa60, 0x103eb71ead57b146), RTUINT128_INIT_C(0x00017597bc24dbdf, 0xc9163f6bb90e001b), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000001), RTUINT128_INIT_C(0x000151aff5fdce80, 0x472877b2f449b12b) + }, + { /* i=1652; 123 / 49 */ + RTUINT128_INIT_C(0x004342da7b4644b4, 0x121cf43010c31db5), RTUINT128_INIT_C(0x0000000000000000, 0x0000542b3b81abe7), + RTUINT128_INIT_C(0x00000000000000cc, 0x93377817a516cf63), RTUINT128_INIT_C(0x0000000000000000, 0x000007a88ac3da60) + }, + { /* i=1653; 123 / 30 */ + RTUINT128_INIT_C(0x0643e4c7ec7fb862, 0x9e030190d74ea104), RTUINT128_INIT_C(0x0000000000000000, 0x000000002671d635), + RTUINT128_INIT_C(0x0000000029b832f7, 0xfb431d832570c5a5), RTUINT128_INIT_C(0x0000000000000000, 0x0000000015e8c7db) + }, + { /* i=1654; 124 / 97 */ + RTUINT128_INIT_C(0x0327f4829c2d9811, 0x36288e53432c8416), RTUINT128_INIT_C(0x00000001233e3992, 0x9ab2c5a6d2fc3496), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000002c62f68), RTUINT128_INIT_C(0x0000000031bb3e4b, 0x5e917a57670b9d26) + }, + { /* i=1655; 116 / 47 */ + RTUINT128_INIT_C(0x000c53598d214c99, 0x6126970dab24f7f3), RTUINT128_INIT_C(0x0000000000000000, 0x000059957215c809), + RTUINT128_INIT_C(0x0000000000000023, 0x38eb1407f4aa18d3), RTUINT128_INIT_C(0x0000000000000000, 0x00000cd02e764088) + }, + { /* i=1656; 121 / 85 */ + RTUINT128_INIT_C(0x008cf4052c62c876, 0x8d0412aae74f56ca), RTUINT128_INIT_C(0x00000000000dfd4e, 0x6949a495083e12d0), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000a135e5fb5), RTUINT128_INIT_C(0x00000000000308df, 0xf71d08ecb210d9ba) + }, + { /* i=1657; 118 / 81 */ + RTUINT128_INIT_C(0x0035a7328bd68b89, 0x0ee39a53ff6d7154), RTUINT128_INIT_C(0x0000000000015aaa, 0x7913cdf153801fa0), + RTUINT128_INIT_C(0x0000000000000000, 0x000000279eefeac9), RTUINT128_INIT_C(0x000000000000e6a7, 0xf5bd78040c8c5cb4) + }, + { /* i=1658; 61 / 42 */ + RTUINT128_INIT_C(0x0000000000000000, 0x0c0433acbc6f4b06), RTUINT128_INIT_C(0x0000000000000000, 0x00000355a441a21d), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000039a86), RTUINT128_INIT_C(0x0000000000000000, 0x000003446037fdd8) + }, + { /* i=1659; 119 / 85 */ + RTUINT128_INIT_C(0x002989e311eb402a, 0xec9837fde301a8c3), RTUINT128_INIT_C(0x00000000001976b1, 0x8757b58bc61906f1), + RTUINT128_INIT_C(0x0000000000000000, 0x00000001a19c4c0a), RTUINT128_INIT_C(0x00000000000b90e2, 0x4a6a2629ec1bd759) + }, + { /* i=1660; 126 / 96 */ + RTUINT128_INIT_C(0x03ba2483ebdbb061, 0x344b7a3757afb3c9), RTUINT128_INIT_C(0x00000000493ec951, 0xf0cc0a436a9052e7), + RTUINT128_INIT_C(0x0000000000000000, 0x000000000d06d492), RTUINT128_INIT_C(0x00000000462f02ef, 0x3d6ff7ed604f200b) + }, + { /* i=1661; 121 / 80 */ + RTUINT128_INIT_C(0x01dfac216d7bbee0, 0x904a7cbf49cdd311), RTUINT128_INIT_C(0x000000000000190b, 0x12f2db359f738dfa), + RTUINT128_INIT_C(0x0000000000000000, 0x000013275c617cd2), RTUINT128_INIT_C(0x00000000000001d0, 0x302190a1e08443fd) + }, + { /* i=1662; 79 / 38 */ + RTUINT128_INIT_C(0x000000000000559f, 0x23ceaa054e5e59ff), RTUINT128_INIT_C(0x0000000000000000, 0x0000002b292d47a3), + RTUINT128_INIT_C(0x0000000000000000, 0x000001fbd90748d9), RTUINT128_INIT_C(0x0000000000000000, 0x000000138a61c8d4) + }, + { /* i=1663; 119 / 84 */ + RTUINT128_INIT_C(0x0008011e180bcab3, 0xfe28c5952cb65d21), RTUINT128_INIT_C(0x00000000000313f6, 0x04dd295266f42cf7), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000299bc714d), RTUINT128_INIT_C(0x0000000000011ecd, 0x8272143bc907cfd6) + }, + { /* i=1664; 35 / 123 */ + RTUINT128_INIT_C(0x0000000000000000, 0x000000030997edc6), RTUINT128_INIT_C(0x063443d814ee094a, 0xe72bf5ea26fc42c0), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x0000000000000000, 0x000000030997edc6) + }, + { /* i=1665; 127 / 86 */ + RTUINT128_INIT_C(0x0720f8e6b5e18ea4, 0x5c2f3356128f5bb8), RTUINT128_INIT_C(0x00000000002bfb3e, 0x0cb07d9bba4db637), + RTUINT128_INIT_C(0x0000000000000000, 0x000000297e81d4a9), RTUINT128_INIT_C(0x000000000001ef79, 0x0c0a0198d6a58569) + }, + { /* i=1666; 89 / 73 */ + RTUINT128_INIT_C(0x0000000001e1ec36, 0x04cb2fca07c97491), RTUINT128_INIT_C(0x0000000000000114, 0xa3c5dcbb2c0572a5), + RTUINT128_INIT_C(0x0000000000000000, 0x000000000001bdf7), RTUINT128_INIT_C(0x000000000000009d, 0x1031dbad163f065e) + }, + { /* i=1667; 115 / 103 */ + RTUINT128_INIT_C(0x0002a17542d25ce5, 0x21b62b9a5582251a), RTUINT128_INIT_C(0x000000128f40a963, 0x61d8c9b693de6f3d), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000002449), RTUINT128_INIT_C(0x00000005519015cb, 0xbe86f9bee36fd8b5) + }, + { /* i=1668; 116 / 68 */ + RTUINT128_INIT_C(0x0004ccd97a0ff3fa, 0x37828e35213a075f), RTUINT128_INIT_C(0x0000000000000004, 0xc5e78a924bd442fc), + RTUINT128_INIT_C(0x0000000000000000, 0x000101747e5739c1), RTUINT128_INIT_C(0x0000000000000001, 0xe9a0eebce7a56b63) + }, + { /* i=1669; 118 / 96 */ + RTUINT128_INIT_C(0x000e41a7c711824a, 0x0c7b619e89c89726), RTUINT128_INIT_C(0x0000000033df244d, 0x610c0d10fbf75cae), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000465bfe), RTUINT128_INIT_C(0x00000000109b72b8, 0xe73c7b9044d4c882) + }, + { /* i=1670; 114 / 69 */ + RTUINT128_INIT_C(0x0001f6f121a18bfe, 0x0f538cd74ed67702), RTUINT128_INIT_C(0x0000000000000010, 0x49f69ec53a5082f9), + RTUINT128_INIT_C(0x0000000000000000, 0x00001ee056a33810), RTUINT128_INIT_C(0x0000000000000005, 0xae37869f029ccf72) + }, + { /* i=1671; 116 / 79 */ + RTUINT128_INIT_C(0x000ccd3a05223620, 0xb09215c7bdc4d51d), RTUINT128_INIT_C(0x0000000000003e8d, 0x070e3bded274a269), + RTUINT128_INIT_C(0x0000000000000000, 0x0000003464997781), RTUINT128_INIT_C(0x00000000000032a0, 0xf27f023164bf2f34) + }, + { /* i=1672; 39 / 11 */ + RTUINT128_INIT_C(0x0000000000000000, 0x0000001069675df0), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000047), + RTUINT128_INIT_C(0x0000000000000000, 0x000000003b2cb935), RTUINT128_INIT_C(0x0000000000000000, 0x000000000000003d) + }, + { /* i=1673; 121 / 52 */ + RTUINT128_INIT_C(0x01755df52d3158ec, 0xc282f1a8408de4e8), RTUINT128_INIT_C(0x0000000000000000, 0x00078444679c8706), + RTUINT128_INIT_C(0x0000000000000031, 0xabffeb0ff520dd55), RTUINT128_INIT_C(0x0000000000000000, 0x0006cd5c1a44e1ea) + }, + { /* i=1674; 106 / 41 */ + RTUINT128_INIT_C(0x000003d617081cc3, 0xa57cf4f827c89218), RTUINT128_INIT_C(0x0000000000000000, 0x000000572f0b2466), + RTUINT128_INIT_C(0x000000000000000b, 0x43bca1bf1db3420e), RTUINT128_INIT_C(0x0000000000000000, 0x0000000eb4784884) + }, + { /* i=1675; 125 / 125 */ + RTUINT128_INIT_C(0x161874eda03309c7, 0x1f82a546aa923090), RTUINT128_INIT_C(0x08fb2dc75aaa0b6c, 0x66d861f6972fd549), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000002), RTUINT128_INIT_C(0x0422195eeadef2ee, 0x51d1e1597c3285fe) + }, + { /* i=1676; 124 / 82 */ + RTUINT128_INIT_C(0x0df845f9511c2bff, 0xf2322a3b6e55b56e), RTUINT128_INIT_C(0x0000000000020b47, 0x070446c408551b80), + RTUINT128_INIT_C(0x0000000000000000, 0x000006d59979c827), RTUINT128_INIT_C(0x0000000000019e15, 0x002a8cb22c6284ee) + }, + { /* i=1677; 113 / 39 */ + RTUINT128_INIT_C(0x0000a996c7085160, 0xa0afc3097f6dc3e0), RTUINT128_INIT_C(0x0000000000000000, 0x0000005620736b96), + RTUINT128_INIT_C(0x00000000000001f8, 0x147aa68793ac3787), RTUINT128_INIT_C(0x0000000000000000, 0x000000382baacdc6) + }, + { /* i=1678; 78 / 60 */ + RTUINT128_INIT_C(0x0000000000001822, 0x8e202b0e4dcd355b), RTUINT128_INIT_C(0x0000000000000000, 0x038d15685323d512), + RTUINT128_INIT_C(0x0000000000000000, 0x000000000006cbe5), RTUINT128_INIT_C(0x0000000000000000, 0x008057f7865e5641) + }, + { /* i=1679; 114 / 79 */ + RTUINT128_INIT_C(0x0002ee952f663036, 0x1db3f3a9c1dfabf3), RTUINT128_INIT_C(0x000000000000696c, 0xbdea6b6ec6bbb61b), + RTUINT128_INIT_C(0x0000000000000000, 0x000000071e9e7134), RTUINT128_INIT_C(0x00000000000026fe, 0x57df9981f9b2c377) + }, + { /* i=1680; 28 / 111 */ + RTUINT128_INIT_C(0x0000000000000000, 0x00000000096c3e84), RTUINT128_INIT_C(0x00007e1ba6aa8e53, 0x27a220cc32045eb0), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x0000000000000000, 0x00000000096c3e84) + }, + { /* i=1681; 110 / 20 */ + RTUINT128_INIT_C(0x00002f8dd58298b2, 0x04e3c8f9be41c246), RTUINT128_INIT_C(0x0000000000000000, 0x000000000005dcff), + RTUINT128_INIT_C(0x00000000081c49f4, 0x8dab80dcea4fee5c), RTUINT128_INIT_C(0x0000000000000000, 0x00000000000044a2) + }, + { /* i=1682; 103 / 82 */ + RTUINT128_INIT_C(0x00000042fde12b18, 0x58a78dda9011c2a1), RTUINT128_INIT_C(0x0000000000000044, 0xbb090a4b309b4b15), + RTUINT128_INIT_C(0x0000000000000000, 0x00000000f985ef24), RTUINT128_INIT_C(0x000000000000001b, 0x1f6e9c31503998ad) + }, + { /* i=1683; 125 / 39 */ + RTUINT128_INIT_C(0x0f42e731cd550c6e, 0x74ebe821d1f66536), RTUINT128_INIT_C(0x0000000000000000, 0x0000001f893a4a69), + RTUINT128_INIT_C(0x00000000007be30c, 0x38422b3a13aa283e), RTUINT128_INIT_C(0x0000000000000000, 0x00000008457df7c8) + }, + { /* i=1684; 117 / 122 */ + RTUINT128_INIT_C(0x001a12f801dc6fdf, 0x2e0523b9eab4169a), RTUINT128_INIT_C(0x031c432835460705, 0x4c7b5fdceaabeb53), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x001a12f801dc6fdf, 0x2e0523b9eab4169a) + }, + { /* i=1685; 75 / 19 */ + RTUINT128_INIT_C(0x00000000000003ef, 0xfd18174fd7453fac), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000046ebf), + RTUINT128_INIT_C(0x0000000000000000, 0x00e36743bc396eb6), RTUINT128_INIT_C(0x0000000000000000, 0x00000000000171e2) + }, + { /* i=1686; 118 / 117 */ + RTUINT128_INIT_C(0x0022768b9e4ae38c, 0x58c68979be23c013), RTUINT128_INIT_C(0x0018851ef2cef0e8, 0x9087fc67525c6005), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000001), RTUINT128_INIT_C(0x0009f16cab7bf2a3, 0xc83e8d126bc7600e) + }, + { /* i=1687; 119 / 73 */ + RTUINT128_INIT_C(0x006e4b8cbf00c66b, 0xa0a1e72cf638370c), RTUINT128_INIT_C(0x00000000000001b0, 0xd331562e79ec886b), + RTUINT128_INIT_C(0x0000000000000000, 0x0000413c492d2632), RTUINT128_INIT_C(0x0000000000000170, 0x053126718bf6b026) + }, + { /* i=1688; 116 / 117 */ + RTUINT128_INIT_C(0x000d7f06effa9d49, 0xd7700e0c9e401dd3), RTUINT128_INIT_C(0x00007bc51e7f327f, 0x0ce36404cd78d177), + RTUINT128_INIT_C(0x0000000000000000, 0x000000000000001b), RTUINT128_INIT_C(0x0000713cb89049e3, 0x7b74818af2820646) + }, + { /* i=1689; 117 / 114 */ + RTUINT128_INIT_C(0x00111eba86046285, 0xe08d19c68d09a885), RTUINT128_INIT_C(0x000281c246758730, 0xb3c351f00b98feea), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000006), RTUINT128_INIT_C(0x0002142cdf433761, 0xa9f92e264773af09) + }, + { /* i=1690; 34 / 29 */ + RTUINT128_INIT_C(0x0000000000000000, 0x000000035a85b631), RTUINT128_INIT_C(0x0000000000000000, 0x000000001d5eea86), + RTUINT128_INIT_C(0x0000000000000000, 0x000000000000001d), RTUINT128_INIT_C(0x0000000000000000, 0x0000000006c52503) + }, + { /* i=1691; 26 / 17 */ + RTUINT128_INIT_C(0x0000000000000000, 0x0000000002cb00d8), RTUINT128_INIT_C(0x0000000000000000, 0x000000000001079f), + RTUINT128_INIT_C(0x0000000000000000, 0x00000000000002b6), RTUINT128_INIT_C(0x0000000000000000, 0x00000000000057ce) + }, + { /* i=1692; 122 / 9 */ + RTUINT128_INIT_C(0x020e842460a1b19c, 0x89d38b2e5f4d93a1), RTUINT128_INIT_C(0x0000000000000000, 0x00000000000001cf), + RTUINT128_INIT_C(0x0001231e7d2aec7a, 0x8850a132f7e97f7d), RTUINT128_INIT_C(0x0000000000000000, 0x000000000000008e) + }, + { /* i=1693; 65 / 37 */ + RTUINT128_INIT_C(0x0000000000000000, 0x5e371ef598db00bb), RTUINT128_INIT_C(0x0000000000000000, 0x00000011fa6a8301), + RTUINT128_INIT_C(0x0000000000000000, 0x00000000053d93ae), RTUINT128_INIT_C(0x0000000000000000, 0x00000001feff630d) + }, + { /* i=1694; 116 / 34 */ + RTUINT128_INIT_C(0x000edd2dafacb1bb, 0x217dbd4a4b24ee28), RTUINT128_INIT_C(0x0000000000000000, 0x00000002b873b7da), + RTUINT128_INIT_C(0x00000000000576b2, 0x8d98698fe20ffa7a), RTUINT128_INIT_C(0x0000000000000000, 0x0000000128ae6c44) + }, + { /* i=1695; 120 / 103 */ + RTUINT128_INIT_C(0x00af667399bfc913, 0x20f2fe204e5754de), RTUINT128_INIT_C(0x0000001a223118b5, 0xd99446f6a26bf50c), + RTUINT128_INIT_C(0x0000000000000000, 0x000000000006b630), RTUINT128_INIT_C(0x00000017b4b6c4d1, 0x40ea89e15b9ada9e) + }, + { /* i=1696; 5 / 100 */ + RTUINT128_INIT_C(0x0000000000000000, 0x000000000000000d), RTUINT128_INIT_C(0x000000007c86f6e1, 0x9e4ee6930b68e620), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x0000000000000000, 0x000000000000000d) + }, + { /* i=1697; 118 / 98 */ + RTUINT128_INIT_C(0x003b8fd2e0f61d5b, 0xbe525f04b2385843), RTUINT128_INIT_C(0x000000023825975a, 0x95bcb8892565c101), + RTUINT128_INIT_C(0x0000000000000000, 0x00000000001ad67b), RTUINT128_INIT_C(0x000000011b2d767f, 0x4c75438710e3c6c8) + }, + { /* i=1698; 128 / 95 */ + RTUINT128_INIT_C(0xa6aba37d4e34a818, 0x24374188f0c4ac02), RTUINT128_INIT_C(0x0000000030ea9b9c, 0xe250e8db2bdbb3e8), + RTUINT128_INIT_C(0x0000000000000000, 0x000000036841726d), RTUINT128_INIT_C(0x000000001b4b79ce, 0x130803188033c23a) + }, + { /* i=1699; 113 / 62 */ + RTUINT128_INIT_C(0x0001b9f77c8f8781, 0x69eb83280b6208f8), RTUINT128_INIT_C(0x0000000000000000, 0x2a9c3979655521d6), + RTUINT128_INIT_C(0x0000000000000000, 0x000a5f4fb5ec4ad9), RTUINT128_INIT_C(0x0000000000000000, 0x23233d850b287e92) + }, + { /* i=1700; 114 / 91 */ + RTUINT128_INIT_C(0x0001bac12e85a4ca, 0x9808e7a597bb184d), RTUINT128_INIT_C(0x000000000174237b, 0x9b564be8c3df7e17), + RTUINT128_INIT_C(0x0000000000000000, 0x00000000013093ee), RTUINT128_INIT_C(0x0000000001643733, 0x7bcf13606d3ca9eb) + }, + { /* i=1701; 77 / 33 */ + RTUINT128_INIT_C(0x0000000000001454, 0xb405219ec9791a13), RTUINT128_INIT_C(0x0000000000000000, 0x000000006b1a6248), + RTUINT128_INIT_C(0x0000000000000000, 0x000030986436e7a5), RTUINT128_INIT_C(0x0000000000000000, 0x000000001798c9ab) + }, + { /* i=1702; 101 / 22 */ + RTUINT128_INIT_C(0x0000000e08b49760, 0x73486cb03c4a0dea), RTUINT128_INIT_C(0x0000000000000000, 0x00000000003fb4b5), + RTUINT128_INIT_C(0x0000000000003865, 0x2b02771794e4dfa3), RTUINT128_INIT_C(0x0000000000000000, 0x00000000001c53ab) + }, + { /* i=1703; 127 / 106 */ + RTUINT128_INIT_C(0x56ac23608b51a6bd, 0xc2e5d30790a81a16), RTUINT128_INIT_C(0x0000024b018a08c3, 0xe9b3a831191503b9), + RTUINT128_INIT_C(0x0000000000000000, 0x000000000025cc7f), RTUINT128_INIT_C(0x000001fd848a685a, 0x59a5a2a5d686d54f) + }, + { /* i=1704; 116 / 88 */ + RTUINT128_INIT_C(0x000cf8d19ee02022, 0xa08c181c1956883d), RTUINT128_INIT_C(0x0000000000e1462f, 0x8f51f44889dbf1dd), + RTUINT128_INIT_C(0x0000000000000000, 0x000000000ebdc16a), RTUINT128_INIT_C(0x0000000000bbea87, 0x2e5a73888cc3c5bb) + }, + { /* i=1705; 122 / 48 */ + RTUINT128_INIT_C(0x01d18f9658895911, 0x686f983f2668e9a9), RTUINT128_INIT_C(0x0000000000000000, 0x00004b81a0d4c0d5), + RTUINT128_INIT_C(0x000000000000062a, 0x752460371e37a8b9), RTUINT128_INIT_C(0x0000000000000000, 0x00002bf4ea5ac7bc) + }, + { /* i=1706; 125 / 77 */ + RTUINT128_INIT_C(0x17e7fe44c738fca9, 0x2ffaf11058214095), RTUINT128_INIT_C(0x0000000000001e70, 0xdcaa015fb100d419), + RTUINT128_INIT_C(0x0000000000000000, 0x0000c90b98bfc696), RTUINT128_INIT_C(0x000000000000171e, 0x4e3fd477e6f2a3ef) + }, + { /* i=1707; 113 / 20 */ + RTUINT128_INIT_C(0x0000cd05a2e897b8, 0xb360f5b5655e1bdb), RTUINT128_INIT_C(0x0000000000000000, 0x00000000000b90ac), + RTUINT128_INIT_C(0x0000000011ba44a6, 0x447f8a2dace364b8), RTUINT128_INIT_C(0x0000000000000000, 0x000000000006f03b) + }, + { /* i=1708; 128 / 122 */ + RTUINT128_INIT_C(0x906d57edf2fb0616, 0x0cdd26d774c9994a), RTUINT128_INIT_C(0x00ff444440c5ca1e, 0x348f38aa6bad1c15), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000090), RTUINT128_INIT_C(0x00d6f18983b95518, 0x7c4d46fae369cd7a) + }, + { /* i=1709; 121 / 71 */ + RTUINT128_INIT_C(0x014ef38f5eec826a, 0xe6114203a27ef219), RTUINT128_INIT_C(0x0000000000000050, 0x06c55ed3a980ad46), + RTUINT128_INIT_C(0x0000000000000000, 0x00042f7d811158e8), RTUINT128_INIT_C(0x0000000000000031, 0xdd6601e402abdaa9) + }, + { /* i=1710; 118 / 64 */ + RTUINT128_INIT_C(0x001692a98845cd2d, 0x86b724d78542815f), RTUINT128_INIT_C(0x0000000000000000, 0x83d004c26152f1cd), + RTUINT128_INIT_C(0x0000000000000000, 0x002bd709c4c3b7b0), RTUINT128_INIT_C(0x0000000000000000, 0x0f4c9d1e2e3bb96f) + }, + { /* i=1711; 73 / 33 */ + RTUINT128_INIT_C(0x0000000000000032, 0x98d2ac85aecdb987), RTUINT128_INIT_C(0x0000000000000000, 0x000000002e6127ed), + RTUINT128_INIT_C(0x0000000000000000, 0x00000117476a1028), RTUINT128_INIT_C(0x0000000000000000, 0x0000000019feac7f) + }, + { /* i=1712; 109 / 70 */ + RTUINT128_INIT_C(0x00000af39f5faf03, 0x604ba886bd960998), RTUINT128_INIT_C(0x000000000000001b, 0x0b4ebd3b7d82fb85), + RTUINT128_INIT_C(0x0000000000000000, 0x00000067ab1442e8), RTUINT128_INIT_C(0x0000000000000019, 0xcef75580bca5cf10) + }, + { /* i=1713; 69 / 86 */ + RTUINT128_INIT_C(0x0000000000000007, 0x30a9f261176cb813), RTUINT128_INIT_C(0x000000000028bf1f, 0xddd6f00938b89074), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x0000000000000007, 0x30a9f261176cb813) + }, + { /* i=1714; 120 / 89 */ + RTUINT128_INIT_C(0x00bf287b6557b7fb, 0x5559806e5e35898c), RTUINT128_INIT_C(0x00000000019487c2, 0x2d35c944a8a0f3f6), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000078f89af4), RTUINT128_INIT_C(0x0000000000ce8142, 0xb9738f452bbb0714) + }, + { /* i=1715; 121 / 75 */ + RTUINT128_INIT_C(0x018a617b2a013763, 0x567f667a782c277e), RTUINT128_INIT_C(0x0000000000000379, 0xed08a9ebc3009452), + RTUINT128_INIT_C(0x0000000000000000, 0x00007173060028bc), RTUINT128_INIT_C(0x00000000000002d8, 0x8848f08f40926b46) + }, + { /* i=1716; 32 / 9 */ + RTUINT128_INIT_C(0x0000000000000000, 0x00000000a9a45576), RTUINT128_INIT_C(0x0000000000000000, 0x00000000000000a9), + RTUINT128_INIT_C(0x0000000000000000, 0x000000000100f8ee), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000058) + }, + { /* i=1717; 29 / 16 */ + RTUINT128_INIT_C(0x0000000000000000, 0x000000001d25b743), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000007934), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000003d90), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000002603) + }, + { /* i=1718; 41 / 14 */ + RTUINT128_INIT_C(0x0000000000000000, 0x0000001141dd65f8), RTUINT128_INIT_C(0x0000000000000000, 0x000000000000247f), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000790ce3), RTUINT128_INIT_C(0x0000000000000000, 0x000000000000155b) + }, + { /* i=1719; 114 / 67 */ + RTUINT128_INIT_C(0x0001fa56b8ad7292, 0x49625fb0aa24288c), RTUINT128_INIT_C(0x0000000000000003, 0x8ea486401d8254d2), + RTUINT128_INIT_C(0x0000000000000000, 0x00008e578ee48cf5), RTUINT128_INIT_C(0x0000000000000001, 0x58b2f1b31efe2392) + }, + { /* i=1720; 38 / 17 */ + RTUINT128_INIT_C(0x0000000000000000, 0x00000010d6484730), RTUINT128_INIT_C(0x0000000000000000, 0x000000000000ee74), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000121375), RTUINT128_INIT_C(0x0000000000000000, 0x000000000000b02c) + }, + { /* i=1721; 124 / 105 */ + RTUINT128_INIT_C(0x0c990647b43b6270, 0x90438fe369d4ba53), RTUINT128_INIT_C(0x000001caa4eb96cd, 0x5cfe370f8be9ef56), + RTUINT128_INIT_C(0x0000000000000000, 0x000000000007081a), RTUINT128_INIT_C(0x0000001a77fa1bb9, 0xab4ca88a593dbb97) + }, + { /* i=1722; 97 / 52 */ + RTUINT128_INIT_C(0x0000000047e3f392, 0x9c0b6a10ba02f3d4), RTUINT128_INIT_C(0x0000000000000000, 0x00063fbfe7c4a6df), + RTUINT128_INIT_C(0x0000000000000000, 0x00000b8117d45fb3), RTUINT128_INIT_C(0x0000000000000000, 0x00025aa877e984e7) + }, + { /* i=1723; 116 / 117 */ + RTUINT128_INIT_C(0x000bc3bc6132c8bb, 0xafb19f833a080c1c), RTUINT128_INIT_C(0x00119abe9f81bb24, 0xd6c86830331487e4), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x000bc3bc6132c8bb, 0xafb19f833a080c1c) + }, + { /* i=1724; 122 / 14 */ + RTUINT128_INIT_C(0x03e004d56b432dc5, 0xdcb058610d92f2de), RTUINT128_INIT_C(0x0000000000000000, 0x000000000000396c), + RTUINT128_INIT_C(0x00001146a64d84c1, 0xe4ef4b2b43efcbf2), RTUINT128_INIT_C(0x0000000000000000, 0x00000000000006c6) + }, + { /* i=1725; 115 / 65 */ + RTUINT128_INIT_C(0x000423209298eec2, 0x4e1b732bf767b5a2), RTUINT128_INIT_C(0x0000000000000001, 0x02133aaa1886af6b), + RTUINT128_INIT_C(0x0000000000000000, 0x00041a9c6f5c7041), RTUINT128_INIT_C(0x0000000000000000, 0x2a3c299661025b77) + }, + { /* i=1726; 66 / 46 */ + RTUINT128_INIT_C(0x0000000000000002, 0x4c94e726dce745fc), RTUINT128_INIT_C(0x0000000000000000, 0x00000a6a09ce22ee), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000388464), RTUINT128_INIT_C(0x0000000000000000, 0x000003951a4ee904) + }, + { /* i=1727; 113 / 94 */ + RTUINT128_INIT_C(0x0001e8f2f1cd4cb8, 0x89d238d710a3b64e), RTUINT128_INIT_C(0x000000002f7f0802, 0x0407ae39fd1ca762), + RTUINT128_INIT_C(0x0000000000000000, 0x00000000000a4b63), RTUINT128_INIT_C(0x000000000c407475, 0xec8af8243fb14568) + }, + { /* i=1728; 70 / 27 */ + RTUINT128_INIT_C(0x0000000000000002, 0xf615b51aaff7ca08), RTUINT128_INIT_C(0x0000000000000000, 0x00000000042df55f), + RTUINT128_INIT_C(0x0000000000000000, 0x000000b5616ec4f9), RTUINT128_INIT_C(0x0000000000000000, 0x00000000019564a1) + }, + { /* i=1729; 85 / 20 */ + RTUINT128_INIT_C(0x00000000001aa891, 0x167b39d02dec9bfd), RTUINT128_INIT_C(0x0000000000000000, 0x00000000000998bf), + RTUINT128_INIT_C(0x0000000000000002, 0xc723b394748a227c), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000074179) + }, + { /* i=1730; 39 / 5 */ + RTUINT128_INIT_C(0x0000000000000000, 0x00000040384fabf6), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000016), + RTUINT128_INIT_C(0x0000000000000000, 0x00000002eb49708b), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000004) + }, + { /* i=1731; 48 / 20 */ + RTUINT128_INIT_C(0x0000000000000000, 0x000057858352eb56), RTUINT128_INIT_C(0x0000000000000000, 0x00000000000732de), + RTUINT128_INIT_C(0x0000000000000000, 0x000000000c287054), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000051a7e) + }, + { /* i=1732; 62 / 11 */ + RTUINT128_INIT_C(0x0000000000000000, 0x02da371be95337a2), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000155), + RTUINT128_INIT_C(0x0000000000000000, 0x0002243261876041), RTUINT128_INIT_C(0x0000000000000000, 0x000000000000010d) + }, + { /* i=1733; 108 / 26 */ + RTUINT128_INIT_C(0x00000f24e7098168, 0x6ca7cf43e3a9acf1), RTUINT128_INIT_C(0x0000000000000000, 0x00000000008a7da0), + RTUINT128_INIT_C(0x00000000001bfe73, 0x90c7653e53a9aa36), RTUINT128_INIT_C(0x0000000000000000, 0x000000000066ed31) + }, + { /* i=1734; 1 / 124 */ + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000001), RTUINT128_INIT_C(0x03392192fc0710c4, 0xac6a39960c03b45a), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000001) + }, + { /* i=1735; 124 / 126 */ + RTUINT128_INIT_C(0x0c113768085dfcb8, 0x19220e9f8740985f), RTUINT128_INIT_C(0x30bf4242a1dee97a, 0x6e3bab6d7145b2a8), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x0c113768085dfcb8, 0x19220e9f8740985f) + }, + { /* i=1736; 123 / 69 */ + RTUINT128_INIT_C(0x04a7b237ad555cf6, 0xd9754266875779f6), RTUINT128_INIT_C(0x0000000000000007, 0x2e127ff629bde0e5), + RTUINT128_INIT_C(0x0000000000000000, 0x00a5f99fc767a534), RTUINT128_INIT_C(0x0000000000000006, 0x2a75cb0c2baf3272) + }, + { /* i=1737; 89 / 88 */ + RTUINT128_INIT_C(0x00000000011bbcfb, 0x96b64b876516840f), RTUINT128_INIT_C(0x0000000000253a2b, 0xe27654954036df10), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000007), RTUINT128_INIT_C(0x00000000001725c8, 0x6579fb72a3966a9f) + }, + { /* i=1738; 39 / 1 */ + RTUINT128_INIT_C(0x0000000000000000, 0x0000004dfe76245e), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000001), + RTUINT128_INIT_C(0x0000000000000000, 0x0000004dfe76245e), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000) + }, + { /* i=1739; 125 / 115 */ + RTUINT128_INIT_C(0x0bc15ebedca16e65, 0xfa1ab5493ad16b19), RTUINT128_INIT_C(0x00012aa9c283812c, 0x0051c5a6e5b294fc), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000a13), RTUINT128_INIT_C(0x0000928c49d3201e, 0xc25084ed34be8465) + }, + { /* i=1740; 115 / 69 */ + RTUINT128_INIT_C(0x0001b4731cab388f, 0x09a2312cd2d859ef), RTUINT128_INIT_C(0x0000000000000000, 0x2383da82ebdfb630), + RTUINT128_INIT_C(0x0000000000000000, 0x000c4a0571d72c49), RTUINT128_INIT_C(0x0000000000000000, 0x21201a0fea6d263f) + }, + { /* i=1741; 96 / 69 */ + RTUINT128_INIT_C(0x000000006024deee, 0xd17147d834261fbc), RTUINT128_INIT_C(0x000000000000001b, 0xd2b3bbd0696dad8b), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000003749f16), RTUINT128_INIT_C(0x0000000000000008, 0x88aca3b8c1f3e0ca) + }, + { /* i=1742; 120 / 99 */ + RTUINT128_INIT_C(0x00a3be8c51921d94, 0x47df3e44f753077e), RTUINT128_INIT_C(0x00000003bada5e03, 0xc39dc6b1ad908bc5), + RTUINT128_INIT_C(0x0000000000000000, 0x00000000002be688), RTUINT128_INIT_C(0x000000031276ee54, 0x3bb1e6a96adec8d6) + }, + { /* i=1743; 99 / 71 */ + RTUINT128_INIT_C(0x00000004cdb759ae, 0x7825320d7bfcf1f7), RTUINT128_INIT_C(0x0000000000000022, 0x03713c4ae3ea759f), + RTUINT128_INIT_C(0x0000000000000000, 0x000000002427611b), RTUINT128_INIT_C(0x000000000000000f, 0x7be5c48954784b32) + }, + { /* i=1744; 84 / 4 */ + RTUINT128_INIT_C(0x000000000002660d, 0xa58d5b405786e1e5), RTUINT128_INIT_C(0x0000000000000000, 0x000000000000000e), + RTUINT128_INIT_C(0x0000000000002bdc, 0x6740f43b73f75947), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000003) + }, + { /* i=1745; 108 / 122 */ + RTUINT128_INIT_C(0x00000c1f9bd401d5, 0x260ae8604f5cf0b0), RTUINT128_INIT_C(0x008ac75e171361dc, 0xbfe988f42b9371a9), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x00000c1f9bd401d5, 0x260ae8604f5cf0b0) + }, + { /* i=1746; 117 / 48 */ + RTUINT128_INIT_C(0x001d436eb84eb012, 0xb009a3da58248a2d), RTUINT128_INIT_C(0x0000000000000000, 0x00000f6545e66ba7), + RTUINT128_INIT_C(0x00000000000001e6, 0x98832a44824d3e75), RTUINT128_INIT_C(0x0000000000000000, 0x00000c4e6887e4da) + }, + { /* i=1747; 122 / 47 */ + RTUINT128_INIT_C(0x0356d880818f86b3, 0xb715d6995ac8d535), RTUINT128_INIT_C(0x0000000000000000, 0x000013ad29b96621), + RTUINT128_INIT_C(0x0000000000002b71, 0xf7f589c8a34ee600), RTUINT128_INIT_C(0x0000000000000000, 0x00000dd0a7f92f35) + }, + { /* i=1748; 113 / 121 */ + RTUINT128_INIT_C(0x0000a7c3b91d7fae, 0x3ecd600887343512), RTUINT128_INIT_C(0x01b9dab82cf3069d, 0xf911efe652a80d8f), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x0000a7c3b91d7fae, 0x3ecd600887343512) + }, + { /* i=1749; 77 / 38 */ + RTUINT128_INIT_C(0x0000000000001cff, 0x0dcbab8e1b6e207c), RTUINT128_INIT_C(0x0000000000000000, 0x000000022b1236c2), + RTUINT128_INIT_C(0x0000000000000000, 0x00000d5f87400ed1), RTUINT128_INIT_C(0x0000000000000000, 0x00000001f410d01a) + }, + { /* i=1750; 126 / 111 */ + RTUINT128_INIT_C(0x17e91f4b4dbd4a49, 0x104a91234a6835f6), RTUINT128_INIT_C(0x00003b810f228bbc, 0x9f5dced737940703), + RTUINT128_INIT_C(0x0000000000000000, 0x00000000000066de), RTUINT128_INIT_C(0x000019586a1af537, 0x7c87725c1d3eef5c) + }, + { /* i=1751; 17 / 13 */ + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000009737), RTUINT128_INIT_C(0x0000000000000000, 0x00000000000008bd), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000011), RTUINT128_INIT_C(0x0000000000000000, 0x00000000000002aa) + }, + { /* i=1752; 113 / 56 */ + RTUINT128_INIT_C(0x000154f5db0ca34e, 0x4a8f8a46c9664ec0), RTUINT128_INIT_C(0x0000000000000000, 0x004bde56ce721545), + RTUINT128_INIT_C(0x0000000000000000, 0x047e7d12acd9bf6f), RTUINT128_INIT_C(0x0000000000000000, 0x001f89c3c4939ad5) + }, + { /* i=1753; 82 / 38 */ + RTUINT128_INIT_C(0x000000000002bfcf, 0xe6f8930bd725a38f), RTUINT128_INIT_C(0x0000000000000000, 0x0000002b6ba86c57), + RTUINT128_INIT_C(0x0000000000000000, 0x000010358e039f53), RTUINT128_INIT_C(0x0000000000000000, 0x00000005cd3b7a5a) + }, + { /* i=1754; 128 / 52 */ + RTUINT128_INIT_C(0x9dbabf2b613f6ce2, 0xc2e844585fa03df0), RTUINT128_INIT_C(0x0000000000000000, 0x0008341921ad8517), + RTUINT128_INIT_C(0x000000000000133a, 0x21a4273464374639), RTUINT128_INIT_C(0x0000000000000000, 0x00063d99d9a851d1) + }, + { /* i=1755; 79 / 50 */ + RTUINT128_INIT_C(0x0000000000003d30, 0xae6fa331a39f1de7), RTUINT128_INIT_C(0x0000000000000000, 0x0000350e0c69c97d), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000127411ad9), RTUINT128_INIT_C(0x0000000000000000, 0x00002efb2bbfa0f2) + }, + { /* i=1756; 116 / 109 */ + RTUINT128_INIT_C(0x0004cf0263700ca3, 0x99799919a038c7b9), RTUINT128_INIT_C(0x000004bb843a7e6d, 0x8c3e5006ae4a88ef), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000104), RTUINT128_INIT_C(0x000000901807a561, 0x2a3052509c85b4fd) + }, + { /* i=1757; 114 / 56 */ + RTUINT128_INIT_C(0x00015045435e5f4f, 0x45ba14c26fe1f19b), RTUINT128_INIT_C(0x0000000000000000, 0x00c7e8e687694293), + RTUINT128_INIT_C(0x0000000000000000, 0x01ae9edf580f7181), RTUINT128_INIT_C(0x0000000000000000, 0x007020b84ed78288) + }, + { /* i=1758; 62 / 58 */ + RTUINT128_INIT_C(0x0000000000000000, 0x004183adf0987845), RTUINT128_INIT_C(0x0000000000000000, 0x033b17d664e38e77), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x0000000000000000, 0x004183adf0987845) + }, + { /* i=1759; 124 / 112 */ + RTUINT128_INIT_C(0x0c638f46d295ed72, 0x834ef404bb0515ed), RTUINT128_INIT_C(0x0000881c95c545cc, 0x31107dfdd22b7a50), + RTUINT128_INIT_C(0x0000000000000000, 0x000000000000174d), RTUINT128_INIT_C(0x00000d390cfa969f, 0x460740ca9bf41bdd) + }, + { /* i=1760; 1 / 104 */ + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x0000008680fc8202, 0xc8665ae140fcd7d3), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000) + }, + { /* i=1761; 123 / 77 */ + RTUINT128_INIT_C(0x05ed29827ada3a90, 0x2f8609984e7dfba6), RTUINT128_INIT_C(0x000000000000129c, 0x28ba886808ca20be), + RTUINT128_INIT_C(0x0000000000000000, 0x0000518627a9e68d), RTUINT128_INIT_C(0x0000000000000ecd, 0xb60d96854e513f00) + }, + { /* i=1762; 67 / 36 */ + RTUINT128_INIT_C(0x0000000000000002, 0xa898061fccd2d156), RTUINT128_INIT_C(0x0000000000000000, 0x000000016058b39a), + RTUINT128_INIT_C(0x0000000000000000, 0x00000001ee7d974c), RTUINT128_INIT_C(0x0000000000000000, 0x00000000025ba99e) + }, + { /* i=1763; 34 / 11 */ + RTUINT128_INIT_C(0x0000000000000000, 0x000000021e9d380a), RTUINT128_INIT_C(0x0000000000000000, 0x00000000000007e0), + RTUINT128_INIT_C(0x0000000000000000, 0x000000000044e744), RTUINT128_INIT_C(0x0000000000000000, 0x000000000000008a) + }, + { /* i=1764; 91 / 2 */ + RTUINT128_INIT_C(0x000000000631ef72, 0x632893f5d758278e), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000002), + RTUINT128_INIT_C(0x000000000318f7b9, 0x319449faebac13c7), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000) + }, + { /* i=1765; 128 / 60 */ + RTUINT128_INIT_C(0x63542ebfd5b03df9, 0x844552e810764688), RTUINT128_INIT_C(0x0000000000000000, 0x0a7e36db01722ee4), + RTUINT128_INIT_C(0x0000000000000009, 0x775771a1aa629847), RTUINT128_INIT_C(0x0000000000000000, 0x00e7911182abe54c) + }, + { /* i=1766; 121 / 84 */ + RTUINT128_INIT_C(0x00dae902242276a8, 0x6f8974854192c047), RTUINT128_INIT_C(0x0000000000036124, 0x2c5669ef8ca6f578), + RTUINT128_INIT_C(0x0000000000000000, 0x00000040c6d68e08), RTUINT128_INIT_C(0x000000000002fae0, 0x1f4d31983de28487) + }, + { /* i=1767; 124 / 119 */ + RTUINT128_INIT_C(0x0c59830b4e4f97ed, 0x86958c8b0dc307b2), RTUINT128_INIT_C(0x007e5fc2f6627311, 0xe03b6e35908d697b), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000019), RTUINT128_INIT_C(0x000229013eb25b2e, 0xa0c7c94feff3baaf) + }, + { /* i=1768; 120 / 98 */ + RTUINT128_INIT_C(0x004ff35e60d477f8, 0x24df3c737616467a), RTUINT128_INIT_C(0x00000002ba5031f0, 0xcfcc168ee9fca1e5), + RTUINT128_INIT_C(0x0000000000000000, 0x00000000001d4f4a), RTUINT128_INIT_C(0x000000001df52e1d, 0x8aba1b508628cf48) + }, + { /* i=1769; 120 / 60 */ + RTUINT128_INIT_C(0x0098457a9a91185f, 0xacddf99c5e0775b6), RTUINT128_INIT_C(0x0000000000000000, 0x02c05131ce2c0e5b), + RTUINT128_INIT_C(0x0000000000000000, 0x3758b3307abf8873), RTUINT128_INIT_C(0x0000000000000000, 0x0258e6ef44b7aad5) + }, + { /* i=1770; 122 / 61 */ + RTUINT128_INIT_C(0x01a019f0dda32227, 0x81fcb43d5a7aec8e), RTUINT128_INIT_C(0x0000000000000000, 0x145d0be89d0c613f), + RTUINT128_INIT_C(0x0000000000000000, 0x146f085fd0c66893), RTUINT128_INIT_C(0x0000000000000000, 0x0d41c8e6be237d61) + }, + { /* i=1771; 70 / 44 */ + RTUINT128_INIT_C(0x0000000000000031, 0x6ca48bdee5d2b6c4), RTUINT128_INIT_C(0x0000000000000000, 0x00000be324041577), + RTUINT128_INIT_C(0x0000000000000000, 0x00000000042862d5), RTUINT128_INIT_C(0x0000000000000000, 0x0000031f279d4cc1) + }, + { /* i=1772; 58 / 1 */ + RTUINT128_INIT_C(0x0000000000000000, 0x03e5e798d88da00f), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000001), + RTUINT128_INIT_C(0x0000000000000000, 0x03e5e798d88da00f), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000) + }, + { /* i=1773; 122 / 65 */ + RTUINT128_INIT_C(0x0049a9cdc5496481, 0x3181f42607f86046), RTUINT128_INIT_C(0x0000000000000000, 0x86ed6d3675c397dd), + RTUINT128_INIT_C(0x0000000000000000, 0x008bc3364cbcad48), RTUINT128_INIT_C(0x0000000000000000, 0x240a82e89909511e) + }, + { /* i=1774; 126 / 122 */ + RTUINT128_INIT_C(0x083c6013340319a8, 0x33024af7c8859637), RTUINT128_INIT_C(0x013d7777147360d9, 0xa63c0363d1df0c7c), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000006), RTUINT128_INIT_C(0x00cb9348b94ed48e, 0x4d9a36a0dd4b4b4f) + }, + { /* i=1775; 119 / 108 */ + RTUINT128_INIT_C(0x0062def812bfe48f, 0x7cd3e48e234028bb), RTUINT128_INIT_C(0x00000c58d007bb1e, 0x162fdb8b8f2000e1), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000801), RTUINT128_INIT_C(0x00000c1f04df38bf, 0xe7c7ac8994191fda) + }, + { /* i=1776; 25 / 68 */ + RTUINT128_INIT_C(0x0000000000000000, 0x00000000013cb7b4), RTUINT128_INIT_C(0x0000000000000003, 0xdacc33b552a16941), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x0000000000000000, 0x00000000013cb7b4) + }, + { /* i=1777; 116 / 85 */ + RTUINT128_INIT_C(0x000dd0b9f1bc82dc, 0x0bbec1ea16831224), RTUINT128_INIT_C(0x000000000011713a, 0x486abd82c6a90912), + RTUINT128_INIT_C(0x0000000000000000, 0x00000000cac46aa2), RTUINT128_INIT_C(0x00000000000d0ebb, 0xbcd934533c01e0c0) + }, + { /* i=1778; 78 / 38 */ + RTUINT128_INIT_C(0x000000000000000e, 0xcee30b4a6b0d4254), RTUINT128_INIT_C(0x0000000000000000, 0x0000002892d4470a), + RTUINT128_INIT_C(0x0000000000000000, 0x000000005d6eb5f2), RTUINT128_INIT_C(0x0000000000000000, 0x0000001a5fdc08e0) + }, + { /* i=1779; 40 / 18 */ + RTUINT128_INIT_C(0x0000000000000000, 0x0000000a7d4b5686), RTUINT128_INIT_C(0x0000000000000000, 0x00000000000205eb), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000052f4e), RTUINT128_INIT_C(0x0000000000000000, 0x00000000000063ec) + }, + { /* i=1780; 114 / 125 */ + RTUINT128_INIT_C(0x0002c4cdf81ac817, 0xde83913392e2e734), RTUINT128_INIT_C(0x1d7ada5e792d853e, 0x25c1f27987021792), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x0002c4cdf81ac817, 0xde83913392e2e734) + }, + { /* i=1781; 114 / 98 */ + RTUINT128_INIT_C(0x0002fb7d44370b29, 0xb50ad4d81e2aa759), RTUINT128_INIT_C(0x00000003de0ed5c0, 0xe6743eff12f3aa74), + RTUINT128_INIT_C(0x0000000000000000, 0x000000000000c56a), RTUINT128_INIT_C(0x00000001e79517f2, 0xd46e75a4c31acf51) + }, + { /* i=1782; 84 / 43 */ + RTUINT128_INIT_C(0x00000000000ccfa1, 0x8ee7f98c16bf6a0b), RTUINT128_INIT_C(0x0000000000000000, 0x000003f51652669f), + RTUINT128_INIT_C(0x0000000000000000, 0x0000033cbd5bb47e), RTUINT128_INIT_C(0x0000000000000000, 0x000003e74c841bc9) + }, + { /* i=1783; 127 / 105 */ + RTUINT128_INIT_C(0x2fdb2cf94b66dfb5, 0xe8ccc90b06558964), RTUINT128_INIT_C(0x00000115bf1b3561, 0x2297d3a4b06721fc), + RTUINT128_INIT_C(0x0000000000000000, 0x00000000002c1bf4), RTUINT128_INIT_C(0x0000006a1a24ce62, 0x8c765fbe2c239134) + }, + { /* i=1784; 123 / 53 */ + RTUINT128_INIT_C(0x01fecc8584405714, 0xb84bf0114e6f3da4), RTUINT128_INIT_C(0x0000000000000000, 0x0014febe90a5cf3e), + RTUINT128_INIT_C(0x0000000000000018, 0x54562eed2ebb82c5), RTUINT128_INIT_C(0x0000000000000000, 0x0003ad36454f46ee) + }, + { /* i=1785; 87 / 44 */ + RTUINT128_INIT_C(0x00000000005a5679, 0x34fafe27f5f631be), RTUINT128_INIT_C(0x0000000000000000, 0x000009593f85ab44), + RTUINT128_INIT_C(0x0000000000000000, 0x000009a9c884c1a6), RTUINT128_INIT_C(0x0000000000000000, 0x000002c7901adfa6) + }, + { /* i=1786; 77 / 74 */ + RTUINT128_INIT_C(0x0000000000001f1e, 0x8232cb6bc73ac738), RTUINT128_INIT_C(0x0000000000000391, 0xc598ff0d7d282a96), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000008), RTUINT128_INIT_C(0x0000000000000290, 0x556ad2ffddf97288) + }, + { /* i=1787; 120 / 88 */ + RTUINT128_INIT_C(0x00c75d0a90a484e2, 0x94cc4f23de692940), RTUINT128_INIT_C(0x0000000000cd1748, 0x523a247f9ae3fbea), + RTUINT128_INIT_C(0x0000000000000000, 0x00000000f8d9cc6b), RTUINT128_INIT_C(0x000000000068217d, 0x533237153b066672) + }, + { /* i=1788; 121 / 77 */ + RTUINT128_INIT_C(0x00130e01073c1f4d, 0xf13fbecb849ace11), RTUINT128_INIT_C(0x00000000000006a3, 0x9a5ea05af3ebce82), + RTUINT128_INIT_C(0x0000000000000000, 0x000002debdd957c2), RTUINT128_INIT_C(0x000000000000027c, 0x5bc35de58288218d) + }, + { /* i=1789; 126 / 110 */ + RTUINT128_INIT_C(0x3dfe0dfa55ab1ac9, 0xa919bc991157a5b9), RTUINT128_INIT_C(0x0000132b3be4d54c, 0xb850c1011462b3b1), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000033be8), RTUINT128_INIT_C(0x0000044fd13af5d5, 0xc06c56c3bd680251) + }, + { /* i=1790; 113 / 66 */ + RTUINT128_INIT_C(0x00006b0503c1b989, 0x909ae34d0b75e37b), RTUINT128_INIT_C(0x0000000000000000, 0x4830cf4ccb6b40a9), + RTUINT128_INIT_C(0x0000000000000000, 0x00017b82555aa0fa), RTUINT128_INIT_C(0x0000000000000000, 0x19a54a2c83e51e71) + }, + { /* i=1791; 127 / 118 */ + RTUINT128_INIT_C(0x209a18b566461c8d, 0xfa686ff7fce28a1a), RTUINT128_INIT_C(0x001830109cd1f2be, 0x652b3cdca672b5a3), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000159), RTUINT128_INIT_C(0x000152520f55f9f7, 0xa3236a9bac4bc16f) + }, + { /* i=1792; 33 / 5 */ + RTUINT128_INIT_C(0x0000000000000000, 0x0000000103eecbc6), RTUINT128_INIT_C(0x0000000000000000, 0x000000000000000d), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000013fead36), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000008) + }, + { /* i=1793; 34 / 76 */ + RTUINT128_INIT_C(0x0000000000000000, 0x00000002d41e4829), RTUINT128_INIT_C(0x0000000000000832, 0x225d4283e08950cb), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x0000000000000000, 0x00000002d41e4829) + }, + { /* i=1794; 118 / 70 */ + RTUINT128_INIT_C(0x000375b260f5edcc, 0xba31cfdf9a6385b4), RTUINT128_INIT_C(0x000000000000000a, 0x279713bd76dd11a7), + RTUINT128_INIT_C(0x0000000000000000, 0x0000573887864757), RTUINT128_INIT_C(0x0000000000000009, 0xff2a24f696f334f3) + }, + { /* i=1795; 125 / 96 */ + RTUINT128_INIT_C(0x0e38e0d1246ef089, 0xfc40d4723578d380), RTUINT128_INIT_C(0x0000000085b55d5d, 0x186da780b0e668d2), + RTUINT128_INIT_C(0x0000000000000000, 0x000000001b3adfc7), RTUINT128_INIT_C(0x000000003f742b61, 0xf44a240e177a6a42) + }, + { /* i=1796; 119 / 127 */ + RTUINT128_INIT_C(0x0020a1f378f1e1fc, 0x771cfa47163198e8), RTUINT128_INIT_C(0x1fcdceeab0b767be, 0x3c7cecc5eebb6d20), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x0020a1f378f1e1fc, 0x771cfa47163198e8) + }, + { /* i=1797; 126 / 67 */ + RTUINT128_INIT_C(0x0669b61f1a2c18af, 0x94f566f6f2b816f6), RTUINT128_INIT_C(0x0000000000000005, 0xf6adc24c2b436478), + RTUINT128_INIT_C(0x0000000000000000, 0x01134a06e6c0a8b5), RTUINT128_INIT_C(0x0000000000000004, 0x91130118f8234e1e) + }, + { /* i=1798; 29 / 14 */ + RTUINT128_INIT_C(0x0000000000000000, 0x000000001f38f4fa), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000001674), + RTUINT128_INIT_C(0x0000000000000000, 0x00000000000163fb), RTUINT128_INIT_C(0x0000000000000000, 0x000000000000153e) + }, + { /* i=1799; 124 / 81 */ + RTUINT128_INIT_C(0x056bd43794fad27a, 0xba883fee92fcbe28), RTUINT128_INIT_C(0x000000000000676e, 0xc523c0921681c39b), + RTUINT128_INIT_C(0x0000000000000000, 0x00000d6aee723d5c), RTUINT128_INIT_C(0x000000000000131c, 0xe227b5405bb88374) + }, + { /* i=1800; 31 / 3 */ + RTUINT128_INIT_C(0x0000000000000000, 0x0000000037e75c07), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000003), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000012a27402), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000001) + }, + { /* i=1801; 91 / 67 */ + RTUINT128_INIT_C(0x000000000768f87c, 0x56efa78a4ac01489), RTUINT128_INIT_C(0x0000000000000005, 0xf5c749ebb190878a), + RTUINT128_INIT_C(0x0000000000000000, 0x00000000013e47a1), RTUINT128_INIT_C(0x0000000000000004, 0xac533a882bd790bf) + }, + { /* i=1802; 118 / 40 */ + RTUINT128_INIT_C(0x0005efa7c303e8d5, 0xce71376aa347ebbf), RTUINT128_INIT_C(0x0000000000000000, 0x00000017b9a705f0), + RTUINT128_INIT_C(0x000000000000400d, 0x675a21de5d208ef0), RTUINT128_INIT_C(0x0000000000000000, 0x0000000903673abf) + }, + { /* i=1803; 127 / 90 */ + RTUINT128_INIT_C(0x0e27dc2a5b5cf26d, 0x552d5a84365acdcb), RTUINT128_INIT_C(0x0000000000ae3378, 0x9b0b533011129a64), + RTUINT128_INIT_C(0x0000000000000000, 0x00000014cd80a014), RTUINT128_INIT_C(0x00000000003d7511, 0xb9245157fa683dfb) + }, + { /* i=1804; 118 / 63 */ + RTUINT128_INIT_C(0x0033a016c797136d, 0x762b3a904b3776e1), RTUINT128_INIT_C(0x0000000000000000, 0x184261323e6411c1), + RTUINT128_INIT_C(0x0000000000000000, 0x0220c8d70c0549bd), RTUINT128_INIT_C(0x0000000000000000, 0x10808acd4d815264) + }, + { /* i=1805; 125 / 109 */ + RTUINT128_INIT_C(0x197e7a2fce994b2e, 0x8ce93908c155b177), RTUINT128_INIT_C(0x00001ebdfd4b0266, 0xa5b4861470cdb5d4), + RTUINT128_INIT_C(0x0000000000000000, 0x000000000000d44c), RTUINT128_INIT_C(0x000004067e57937b, 0xdc487d8ce9b02687) + }, + { /* i=1806; 120 / 66 */ + RTUINT128_INIT_C(0x0074d3513fa1d602, 0x9efe6da37b07b78c), RTUINT128_INIT_C(0x0000000000000000, 0x663d9b2d9abe337e), + RTUINT128_INIT_C(0x0000000000000000, 0x012484d38945fa7a), RTUINT128_INIT_C(0x0000000000000000, 0x27f4091daf242180) + }, + { /* i=1807; 26 / 9 */ + RTUINT128_INIT_C(0x0000000000000000, 0x00000000013fe4ba), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000167), + RTUINT128_INIT_C(0x0000000000000000, 0x000000000000e41d), RTUINT128_INIT_C(0x0000000000000000, 0x000000000000000f) + }, + { /* i=1808; 107 / 113 */ + RTUINT128_INIT_C(0x000005eca60e8577, 0x8e879e7b5a7c5f93), RTUINT128_INIT_C(0x0001b826aabe6cbb, 0x26fcf666141e3d2f), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x000005eca60e8577, 0x8e879e7b5a7c5f93) + }, + { /* i=1809; 77 / 15 */ + RTUINT128_INIT_C(0x0000000000001ec8, 0x63dd0ead6eeb8db9), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000003543), + RTUINT128_INIT_C(0x0000000000000000, 0x93f4bb78b7f2e984), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000001c2d) + }, + { /* i=1810; 64 / 2 */ + RTUINT128_INIT_C(0x0000000000000000, 0xc43ba97cf36b0924), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000003), + RTUINT128_INIT_C(0x0000000000000000, 0x4169387efbce5861), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000001) + }, + { /* i=1811; 83 / 78 */ + RTUINT128_INIT_C(0x000000000007b99c, 0x545a0085aa86fe5f), RTUINT128_INIT_C(0x00000000000020fc, 0x382c60a14bc295ab), + RTUINT128_INIT_C(0x0000000000000000, 0x000000000000003b), RTUINT128_INIT_C(0x0000000000001f7b, 0x621fbb5934ae7ff6) + }, + { /* i=1812; 116 / 105 */ + RTUINT128_INIT_C(0x000d5e53c6908848, 0x7f31d1880500c596), RTUINT128_INIT_C(0x000000866618d9f7, 0xea4269e370b6baf7), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000001976), RTUINT128_INIT_C(0x0000006849d2da22, 0x083dccb0388478bc) + }, + { /* i=1813; 123 / 33 */ + RTUINT128_INIT_C(0x05957d5765b054a1, 0x80746bca08382d70), RTUINT128_INIT_C(0x0000000000000000, 0x0000000190dc8345), + RTUINT128_INIT_C(0x000000000390e84f, 0x21c2b1bc2e4753e5), RTUINT128_INIT_C(0x0000000000000000, 0x00000001264461b7) + }, + { /* i=1814; 113 / 106 */ + RTUINT128_INIT_C(0x00015bde69a8f2ba, 0xa582942536dd829e), RTUINT128_INIT_C(0x000002b863ec97d6, 0x7e163009bcb7fb3c), + RTUINT128_INIT_C(0x0000000000000000, 0x000000000000007f), RTUINT128_INIT_C(0x00000264d7499f52, 0x1880bf509797dfda) + }, + { /* i=1815; 120 / 7 */ + RTUINT128_INIT_C(0x008f627cb3b84897, 0x6278127b175b3479), RTUINT128_INIT_C(0x0000000000000000, 0x000000000000007a), + RTUINT128_INIT_C(0x00012cdf72c8dad3, 0x13b13f1a3074284c), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000041) + }, + { /* i=1816; 125 / 81 */ + RTUINT128_INIT_C(0x0d3086bb52271411, 0x1e20e02f69fa6572), RTUINT128_INIT_C(0x0000000000011d68, 0xba4abc1b60ff3747), + RTUINT128_INIT_C(0x0000000000000000, 0x00000bd49a46b682), RTUINT128_INIT_C(0x000000000000d702, 0x2fe2027ce3a9d964) + }, + { /* i=1817; 59 / 29 */ + RTUINT128_INIT_C(0x0000000000000000, 0x033c1b39245d1b1c), RTUINT128_INIT_C(0x0000000000000000, 0x0000000006f5b1c6), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000076fc346d), RTUINT128_INIT_C(0x0000000000000000, 0x0000000002bc31ce) + }, + { /* i=1818; 76 / 54 */ + RTUINT128_INIT_C(0x0000000000000a0e, 0xd2e42bde830173f9), RTUINT128_INIT_C(0x0000000000000000, 0x001794b2033b5f44), + RTUINT128_INIT_C(0x0000000000000000, 0x00000000006d30fc), RTUINT128_INIT_C(0x0000000000000000, 0x00010bc0a2beed09) + }, + { /* i=1819; 102 / 46 */ + RTUINT128_INIT_C(0x00000009ef4eb6c9, 0xa00ca7edb5ab69bd), RTUINT128_INIT_C(0x0000000000000000, 0x0000222f92f45baa), + RTUINT128_INIT_C(0x0000000000000000, 0x004a6582ca4f0f1e), RTUINT128_INIT_C(0x0000000000000000, 0x000014adbe33b5d1) + }, + { /* i=1820; 96 / 5 */ + RTUINT128_INIT_C(0x00000000f4d02e94, 0x1b4439c943073db2), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000017), + RTUINT128_INIT_C(0x000000000aa4e0a2, 0x43f7d5fd9ebd883f), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000009) + }, + { /* i=1821; 93 / 90 */ + RTUINT128_INIT_C(0x0000000011ce90ef, 0x7f1663f9284c3b54), RTUINT128_INIT_C(0x00000000011e6b60, 0x211ba0352bd47cfe), + RTUINT128_INIT_C(0x0000000000000000, 0x000000000000000f), RTUINT128_INIT_C(0x000000000106464d, 0x8e7800db96d8e872) + }, + { /* i=1822; 75 / 29 */ + RTUINT128_INIT_C(0x0000000000000499, 0x78ee1df1d6a8c66f), RTUINT128_INIT_C(0x0000000000000000, 0x0000000001b73b07), + RTUINT128_INIT_C(0x0000000000000000, 0x0002ae4661761ee0), RTUINT128_INIT_C(0x0000000000000000, 0x0000000001304e4f) + }, + { /* i=1823; 43 / 7 */ + RTUINT128_INIT_C(0x0000000000000000, 0x000003104bb1a427), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000039), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000dc27365af), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000030) + }, + { /* i=1824; 60 / 26 */ + RTUINT128_INIT_C(0x0000000000000000, 0x092742d1e47a2e4b), RTUINT128_INIT_C(0x0000000000000000, 0x0000000002451241), + RTUINT128_INIT_C(0x0000000000000000, 0x00000004085c2e64), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000db5ee7) + }, + { /* i=1825; 81 / 34 */ + RTUINT128_INIT_C(0x0000000000001780, 0x64b4533c4ebe9212), RTUINT128_INIT_C(0x0000000000000000, 0x00000002a9e5bdad), + RTUINT128_INIT_C(0x0000000000000000, 0x000008d2b151a5be), RTUINT128_INIT_C(0x0000000000000000, 0x00000001823e4aac) + }, + { /* i=1826; 31 / 36 */ + RTUINT128_INIT_C(0x0000000000000000, 0x0000000003bf813f), RTUINT128_INIT_C(0x0000000000000000, 0x00000007b22389e6), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x0000000000000000, 0x0000000003bf813f) + }, + { /* i=1827; 117 / 69 */ + RTUINT128_INIT_C(0x000ef6e274ba6fdf, 0xadc1ca3fddbb2857), RTUINT128_INIT_C(0x0000000000000008, 0x9fb4111a5712c46f), + RTUINT128_INIT_C(0x0000000000000000, 0x0001bc385f82f02f), RTUINT128_INIT_C(0x0000000000000000, 0x7d2e4a1357c307f6) + }, + { /* i=1828; 120 / 83 */ + RTUINT128_INIT_C(0x00a2a335973a85ac, 0xec2b1c786defc24b), RTUINT128_INIT_C(0x000000000007acc8, 0x6ab3ecb566ee776a), + RTUINT128_INIT_C(0x0000000000000000, 0x0000001530d48b37), RTUINT128_INIT_C(0x000000000007106a, 0xd2e7030b12158c85) + }, + { /* i=1829; 121 / 108 */ + RTUINT128_INIT_C(0x01c108d5c5d540c7, 0xe4df624d84c18f24), RTUINT128_INIT_C(0x0000020027fbc234, 0xa81758badaa09237), + RTUINT128_INIT_C(0x0000000000000000, 0x000000000000e072), RTUINT128_INIT_C(0x000001c7adcab240, 0x9cd65fcba95052a6) + }, + { /* i=1830; 116 / 114 */ + RTUINT128_INIT_C(0x000cedfd4b576356, 0x00db0cc2121c265d), RTUINT128_INIT_C(0x00013e8e33ce7bbf, 0x4f28261905dc4be3), + RTUINT128_INIT_C(0x0000000000000000, 0x000000000000000a), RTUINT128_INIT_C(0x00007c6f45468ddc, 0xe9498fc7d7812f7f) + }, + { /* i=1831; 115 / 69 */ + RTUINT128_INIT_C(0x0007269672de4e9a, 0xf00002ca566c40b1), RTUINT128_INIT_C(0x0000000000000011, 0x124d0a23f9ad9968), + RTUINT128_INIT_C(0x0000000000000000, 0x00006b3b0f7500d4), RTUINT128_INIT_C(0x0000000000000003, 0xf00081b35e213691) + }, + { /* i=1832; 113 / 113 */ + RTUINT128_INIT_C(0x0000fd5a22d83d89, 0xa14c2f33b8d880ee), RTUINT128_INIT_C(0x000186fe60a07bbc, 0x0cfc0b67f7b0493e), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x0000fd5a22d83d89, 0xa14c2f33b8d880ee) + }, + { /* i=1833; 118 / 103 */ + RTUINT128_INIT_C(0x002d934e970d9711, 0xbf5e692962dcb778), RTUINT128_INIT_C(0x0000000b10d3ab57, 0x21ede9c04c6cb9e2), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000041e5d), RTUINT128_INIT_C(0x00000001feb79ab8, 0xe38ac3a5fa0cb45e) + }, + { /* i=1834; 121 / 66 */ + RTUINT128_INIT_C(0x0019f0a936c2a3b2, 0xe12bcdacc91accf7), RTUINT128_INIT_C(0x0000000000000000, 0x9e1c93545bae57c9), + RTUINT128_INIT_C(0x0000000000000000, 0x0029fff4bc3cbf4f), RTUINT128_INIT_C(0x0000000000000000, 0x2e86fe553bb2bef0) + }, + { /* i=1835; 62 / 5 */ + RTUINT128_INIT_C(0x0000000000000000, 0x0a5a07abb1e87f7a), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000012), + RTUINT128_INIT_C(0x0000000000000000, 0x00933950a6540715), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000) + }, + { /* i=1836; 89 / 52 */ + RTUINT128_INIT_C(0x0000000001877dd7, 0x84982c0d05a4e93b), RTUINT128_INIT_C(0x0000000000000000, 0x000b5f58b94232c7), + RTUINT128_INIT_C(0x0000000000000000, 0x000000226cb05884), RTUINT128_INIT_C(0x0000000000000000, 0x00027941e13e529f) + }, + { /* i=1837; 109 / 14 */ + RTUINT128_INIT_C(0x00001ea00289d98f, 0x6cd0abe223c92f19), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000002445), + RTUINT128_INIT_C(0x00000000d828e026, 0xa495ca411ecd11df), RTUINT128_INIT_C(0x0000000000000000, 0x00000000000001fe) + }, + { /* i=1838; 90 / 39 */ + RTUINT128_INIT_C(0x00000000036182e2, 0x63f8bfede4578999), RTUINT128_INIT_C(0x0000000000000000, 0x000000485e212af4), + RTUINT128_INIT_C(0x0000000000000000, 0x000bf5bccf90b7ad), RTUINT128_INIT_C(0x0000000000000000, 0x000000291cf916b5) + }, + { /* i=1839; 122 / 49 */ + RTUINT128_INIT_C(0x023779503af10cc9, 0xe90c762288c69ddb), RTUINT128_INIT_C(0x0000000000000000, 0x0001f066792177e0), + RTUINT128_INIT_C(0x0000000000000124, 0xa7500c3c3fea35b0), RTUINT128_INIT_C(0x0000000000000000, 0x00016b03a132d3db) + }, + { /* i=1840; 38 / 44 */ + RTUINT128_INIT_C(0x0000000000000000, 0x00000011b53e45db), RTUINT128_INIT_C(0x0000000000000000, 0x000004871b1c1b8f), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x0000000000000000, 0x00000011b53e45db) + }, + { /* i=1841; 126 / 34 */ + RTUINT128_INIT_C(0x233daa8b1156978e, 0xb5df9c799ba7ba6a), RTUINT128_INIT_C(0x0000000000000000, 0x0000000166c02378), + RTUINT128_INIT_C(0x000000001925c02d, 0x0a6e801a32b5985c), RTUINT128_INIT_C(0x0000000000000000, 0x0000000015b3bb4a) + }, + { /* i=1842; 123 / 121 */ + RTUINT128_INIT_C(0x02e6630d0d65cdb7, 0x97b44600d69e2d9b), RTUINT128_INIT_C(0x005585e73395e974, 0x6bab1950f65748fc), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000008), RTUINT128_INIT_C(0x003a33d370b68214, 0x3a5b7b7923e3e5bb) + }, + { /* i=1843; 25 / 16 */ + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000f9314b), RTUINT128_INIT_C(0x0000000000000000, 0x000000000000839b), + RTUINT128_INIT_C(0x0000000000000000, 0x00000000000001e4), RTUINT128_INIT_C(0x0000000000000000, 0x000000000000603f) + }, + { /* i=1844; 88 / 61 */ + RTUINT128_INIT_C(0x00000000000d8857, 0xc4a163bc6df61b4d), RTUINT128_INIT_C(0x0000000000000000, 0x112dd9ee39b61861), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000c9a905), RTUINT128_INIT_C(0x0000000000000000, 0x0dd28e02f3269868) + }, + { /* i=1845; 110 / 69 */ + RTUINT128_INIT_C(0x00000bff4c30bb0b, 0x89d46e3fcebbcd57), RTUINT128_INIT_C(0x0000000000000017, 0x61086532f4f21fb5), + RTUINT128_INIT_C(0x0000000000000000, 0x000000835ea72706), RTUINT128_INIT_C(0x0000000000000000, 0xea22608709277c19) + }, + { /* i=1846; 120 / 58 */ + RTUINT128_INIT_C(0x00d1a108e2a2572d, 0xbde92b3b9df78da6), RTUINT128_INIT_C(0x0000000000000000, 0x028a6e9a684e5ced), + RTUINT128_INIT_C(0x0000000000000000, 0x5281ba7031a1ed74), RTUINT128_INIT_C(0x0000000000000000, 0x027da7f200610942) + }, + { /* i=1847; 119 / 56 */ + RTUINT128_INIT_C(0x004795165580d1b4, 0xb93fc1753dd3eda1), RTUINT128_INIT_C(0x0000000000000000, 0x0082ad59a410737b), + RTUINT128_INIT_C(0x0000000000000000, 0x8c3b54f16e7f709a), RTUINT128_INIT_C(0x0000000000000000, 0x001ab92e3563a5a3) + }, + { /* i=1848; 68 / 65 */ + RTUINT128_INIT_C(0x0000000000000008, 0xc942649edc5e5a10), RTUINT128_INIT_C(0x0000000000000001, 0xf6c0b852432bcfe5), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000004), RTUINT128_INIT_C(0x0000000000000000, 0xee3f8355cfaf1a7c) + }, + { /* i=1849; 116 / 110 */ + RTUINT128_INIT_C(0x000a6aab1d41824b, 0x430592ff9badaf55), RTUINT128_INIT_C(0x00003f4ced31ed0b, 0xe380577d53247207), + RTUINT128_INIT_C(0x0000000000000000, 0x000000000000002a), RTUINT128_INIT_C(0x0000080c33109e57, 0xeff7386ff7b2fa2f) + }, + { /* i=1850; 113 / 70 */ + RTUINT128_INIT_C(0x0001f37ad310e44a, 0x2669487114b72149), RTUINT128_INIT_C(0x000000000000000b, 0x9e345ce21bd8abe6), + RTUINT128_INIT_C(0x0000000000000000, 0x00002afdefceac18), RTUINT128_INIT_C(0x0000000000000007, 0x3bd15964d7d47bb9) + }, + { /* i=1851; 116 / 122 */ + RTUINT128_INIT_C(0x000b33ccf612fc76, 0x775d773097c569e2), RTUINT128_INIT_C(0x011499f3711e45ac, 0x982a1fa93f037740), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x000b33ccf612fc76, 0x775d773097c569e2) + }, + { /* i=1852; 85 / 52 */ + RTUINT128_INIT_C(0x00000000001ca246, 0x5e51da73f94ce2f7), RTUINT128_INIT_C(0x0000000000000000, 0x0000b4202c33b2e4), + RTUINT128_INIT_C(0x0000000000000000, 0x00000028b2018d3e), RTUINT128_INIT_C(0x0000000000000000, 0x0000701a905bfbbf) + }, + { /* i=1853; 55 / 13 */ + RTUINT128_INIT_C(0x0000000000000000, 0x0068bfaf507f535e), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000adf), + RTUINT128_INIT_C(0x0000000000000000, 0x000009a2b23536da), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000778) + }, + { /* i=1854; 116 / 89 */ + RTUINT128_INIT_C(0x000370dc2e4295f1, 0x1207adedabd803b2), RTUINT128_INIT_C(0x000000000067009b, 0x22dfcdcd6327d14c), + RTUINT128_INIT_C(0x0000000000000000, 0x00000000088d4596), RTUINT128_INIT_C(0x00000000003536f1, 0x8b33e063303de52a) + }, + { /* i=1855; 96 / 81 */ + RTUINT128_INIT_C(0x0000000026e196a3, 0x4f4f0fa7609c6049), RTUINT128_INIT_C(0x00000000000117bf, 0xb1001c62ba2a4e6c), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000002394), RTUINT128_INIT_C(0x000000000000a69d, 0xf75d271ff76e45d9) + }, + { /* i=1856; 52 / 51 */ + RTUINT128_INIT_C(0x0000000000000000, 0x00004cb320b8fc43), RTUINT128_INIT_C(0x0000000000000000, 0x0007fd1c168d75a8), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x0000000000000000, 0x00004cb320b8fc43) + }, + { /* i=1857; 34 / 37 */ + RTUINT128_INIT_C(0x0000000000000000, 0x00000002d561ad58), RTUINT128_INIT_C(0x0000000000000000, 0x0000000e0ca331b4), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x0000000000000000, 0x00000002d561ad58) + }, + { /* i=1858; 80 / 40 */ + RTUINT128_INIT_C(0x0000000000003694, 0x891c70e3b2d2588a), RTUINT128_INIT_C(0x0000000000000000, 0x000000d19308eb14), + RTUINT128_INIT_C(0x0000000000000000, 0x00000042abc7d679), RTUINT128_INIT_C(0x0000000000000000, 0x000000cea68c8416) + }, + { /* i=1859; 118 / 75 */ + RTUINT128_INIT_C(0x0032da8da2721178, 0x365b8835f3fc8210), RTUINT128_INIT_C(0x0000000000000635, 0x01fb78569e8f0be5), + RTUINT128_INIT_C(0x0000000000000000, 0x0000083160ba5eaa), RTUINT128_INIT_C(0x000000000000002b, 0xd308893e9e3e85fe) + }, + { /* i=1860; 116 / 72 */ + RTUINT128_INIT_C(0x000cc8433a379390, 0x649275265a8af72a), RTUINT128_INIT_C(0x0000000000000015, 0x6098b7be2f238495), + RTUINT128_INIT_C(0x0000000000000000, 0x0000991255c6ae86), RTUINT128_INIT_C(0x000000000000000c, 0x3a43639785984b2c) + }, + { /* i=1861; 122 / 64 */ + RTUINT128_INIT_C(0x01aece662d384802, 0xd1e8eef284c1e15b), RTUINT128_INIT_C(0x0000000000000000, 0xe57016a76b4149e1), + RTUINT128_INIT_C(0x0000000000000000, 0x01e0ae5206b43304), RTUINT128_INIT_C(0x0000000000000000, 0xcc69b0419dd0e6d7) + }, + { /* i=1862; 121 / 50 */ + RTUINT128_INIT_C(0x015820c053883508, 0x073fc4075125bfe4), RTUINT128_INIT_C(0x0000000000000000, 0x0000ec4252c4f46f), + RTUINT128_INIT_C(0x0000000000000174, 0xe1c94811a0fdc75e), RTUINT128_INIT_C(0x0000000000000000, 0x00001c8be11eb622) + }, + { /* i=1863; 113 / 41 */ + RTUINT128_INIT_C(0x000012a9ea571855, 0x18d146a6c3bdb604), RTUINT128_INIT_C(0x0000000000000000, 0x000001c4ea7278bb), + RTUINT128_INIT_C(0x000000000000000a, 0x8c9aad610d92a71a), RTUINT128_INIT_C(0x0000000000000000, 0x00000070edb57606) + }, + { /* i=1864; 86 / 7 */ + RTUINT128_INIT_C(0x0000000000304c28, 0x157f986e9aedc665), RTUINT128_INIT_C(0x0000000000000000, 0x000000000000000a), + RTUINT128_INIT_C(0x000000000004d46a, 0x688cc27175e493d6), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000009) + }, + { /* i=1865; 67 / 32 */ + RTUINT128_INIT_C(0x0000000000000003, 0x3c7be89c419aed42), RTUINT128_INIT_C(0x0000000000000000, 0x00000000bed9e784), + RTUINT128_INIT_C(0x0000000000000000, 0x00000004574b6f5f), RTUINT128_INIT_C(0x0000000000000000, 0x0000000043afc746) + }, + { /* i=1866; 125 / 102 */ + RTUINT128_INIT_C(0x09391381d327c376, 0x5b00dea4bdbce68b), RTUINT128_INIT_C(0x00000002f858d306, 0x93676089632aee20), + RTUINT128_INIT_C(0x0000000000000000, 0x00000000031af26b), RTUINT128_INIT_C(0x000000018c2629bd, 0x9b6c125326711f2b) + }, + { /* i=1867; 122 / 115 */ + RTUINT128_INIT_C(0x01bd26a593472339, 0xdc1e5f1d665717e7), RTUINT128_INIT_C(0x0003e78fc05dd0b5, 0x3e3481813af3853b), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000072), RTUINT128_INIT_C(0x000008a1e9803284, 0x28bcb39125e5c3a1) + }, + { /* i=1868; 92 / 26 */ + RTUINT128_INIT_C(0x000000000607aba5, 0x871fabb6dbff42c5), RTUINT128_INIT_C(0x0000000000000000, 0x00000000039d9561), + RTUINT128_INIT_C(0x0000000000000001, 0xaaf3b04584f57ac5), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000b61520) + }, + { /* i=1869; 125 / 75 */ + RTUINT128_INIT_C(0x17ed044262b31cec, 0xf308174569e26e87), RTUINT128_INIT_C(0x0000000000000174, 0x57bdd507e1098ce8), + RTUINT128_INIT_C(0x0000000000000000, 0x0010732f6d1a5505), RTUINT128_INIT_C(0x0000000000000066, 0xcd6c4dd6c159a5ff) + }, + { /* i=1870; 122 / 124 */ + RTUINT128_INIT_C(0x00beb3e881d4bb4a, 0xf3cdf45303556e92), RTUINT128_INIT_C(0x05354a3e3eafaf91, 0xf336ed0f13f369fc), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x00beb3e881d4bb4a, 0xf3cdf45303556e92) + }, + { /* i=1871; 127 / 120 */ + RTUINT128_INIT_C(0x430c3927b3963a05, 0xb2356db5053b2778), RTUINT128_INIT_C(0x00ccf243b1930827, 0x37e9d3135c870da4), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000053), RTUINT128_INIT_C(0x0099ad3520ea954e, 0x9165fe6e0571bb4c) + }, + { /* i=1872; 83 / 102 */ + RTUINT128_INIT_C(0x000000000004f5f7, 0x66283cbfaafbf53f), RTUINT128_INIT_C(0x00000006977f238e, 0xda33875b5512c87f), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x000000000004f5f7, 0x66283cbfaafbf53f) + }, + { /* i=1873; 124 / 98 */ + RTUINT128_INIT_C(0x05faaf917fd2c422, 0xd43151ba21e1c1a6), RTUINT128_INIT_C(0x00000002177346cc, 0x4a538cd707a8278e), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000002dbd308), RTUINT128_INIT_C(0x000000019785efea, 0x7a7cd289598c7b36) + }, + { /* i=1874; 128 / 47 */ + RTUINT128_INIT_C(0xd29703c9952875bc, 0x9465e08ecdea625d), RTUINT128_INIT_C(0x0000000000000000, 0x00005ea91e438aa2), + RTUINT128_INIT_C(0x0000000000023984, 0xd937722823ea0f19), RTUINT128_INIT_C(0x0000000000000000, 0x00000644061e5a8b) + }, + { /* i=1875; 128 / 69 */ + RTUINT128_INIT_C(0x75b80e7224e7a876, 0xd91b13329f608ba1), RTUINT128_INIT_C(0x0000000000000009, 0x5896ac025dfbb2de), + RTUINT128_INIT_C(0x0000000000000000, 0x0c98785d0289f311), RTUINT128_INIT_C(0x0000000000000008, 0x23bb1a160212f0e3) + }, + { /* i=1876; 74 / 42 */ + RTUINT128_INIT_C(0x00000000000001b6, 0x054cf70b7fa6f88e), RTUINT128_INIT_C(0x0000000000000000, 0x000002a6c94fa68a), + RTUINT128_INIT_C(0x0000000000000000, 0x00000000a5325e06), RTUINT128_INIT_C(0x0000000000000000, 0x000001520fae6552) + }, + { /* i=1877; 86 / 4 */ + RTUINT128_INIT_C(0x000000000016a2a3, 0xfa47ce6986b20d70), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000002), + RTUINT128_INIT_C(0x00000000000b5151, 0xfd23e734c35906b8), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000) + }, + { /* i=1878; 113 / 92 */ + RTUINT128_INIT_C(0x00013991a38d715e, 0xa5ae571663384e14), RTUINT128_INIT_C(0x00000000024943c9, 0xecc3e4dc2a16de38), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000892866), RTUINT128_INIT_C(0x0000000000b52d16, 0x3a0c3a8d1f6b03c4) + }, + { /* i=1879; 127 / 103 */ + RTUINT128_INIT_C(0x04530450e0d62740, 0xd35e2f3eea479398), RTUINT128_INIT_C(0x000000711de689cc, 0xa4d9890726efb987), + RTUINT128_INIT_C(0x0000000000000000, 0x000000000009c957), RTUINT128_INIT_C(0x0000004add19d9a0, 0x2f99a1d0f06587b7) + }, + { /* i=1880; 68 / 51 */ + RTUINT128_INIT_C(0x000000000000000d, 0xe2056b4b55ba7c4f), RTUINT128_INIT_C(0x0000000000000000, 0x000640b5ee8a7033), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000023864), RTUINT128_INIT_C(0x0000000000000000, 0x00007af6feb58063) + }, + { /* i=1881; 118 / 83 */ + RTUINT128_INIT_C(0x000e75328c368c80, 0x3b471711586b1305), RTUINT128_INIT_C(0x00000000000066a6, 0x77d475cc4075add9), + RTUINT128_INIT_C(0x0000000000000000, 0x000000240e6f35e0), RTUINT128_INIT_C(0x0000000000001fbf, 0x1559e5f4555e0825) + }, + { /* i=1882; 113 / 95 */ + RTUINT128_INIT_C(0x0000b65200cc71b2, 0x1eb038cb73cbd580), RTUINT128_INIT_C(0x00000000665dcce3, 0x905a3c36c49d9dee), + RTUINT128_INIT_C(0x0000000000000000, 0x000000000001c7f3), RTUINT128_INIT_C(0x000000001e9a801f, 0xb803b95aae7cea96) + }, + { /* i=1883; 121 / 74 */ + RTUINT128_INIT_C(0x01dbde88d5c245b0, 0xa78d7fa7906f1c32), RTUINT128_INIT_C(0x0000000000000043, 0xf7f4903cb23319be), + RTUINT128_INIT_C(0x0000000000000000, 0x000700560d88e8c3), RTUINT128_INIT_C(0x000000000000002b, 0xdee4b6a5313e5078) + }, + { /* i=1884; 46 / 44 */ + RTUINT128_INIT_C(0x0000000000000000, 0x000013aed91d7f2c), RTUINT128_INIT_C(0x0000000000000000, 0x0000086d8aee76b9), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000002), RTUINT128_INIT_C(0x0000000000000000, 0x000002d3c34091ba) + }, + { /* i=1885; 118 / 91 */ + RTUINT128_INIT_C(0x003ebb2bafa28b0a, 0xae974e6757bd1504), RTUINT128_INIT_C(0x00000000042f8a9c, 0x2a2e7b117468b1cf), + RTUINT128_INIT_C(0x0000000000000000, 0x000000000efcaabf), RTUINT128_INIT_C(0x0000000002165c08, 0x3ea3944b9dc8f593) + }, + { /* i=1886; 15 / 8 */ + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000001ce1), RTUINT128_INIT_C(0x0000000000000000, 0x000000000000005c), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000050), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000021) + }, + { /* i=1887; 117 / 108 */ + RTUINT128_INIT_C(0x00102ef07648a17d, 0xb9a65422c21a2bb1), RTUINT128_INIT_C(0x000006af7f9e3e9c, 0x8ec11ee3d956b605), + RTUINT128_INIT_C(0x0000000000000000, 0x000000000000026b), RTUINT128_INIT_C(0x00000496e2a73cf0, 0x8cb0a3343d700d9a) + }, + { /* i=1888; 87 / 45 */ + RTUINT128_INIT_C(0x00000000003e89fd, 0xc2fd16c6faf4d56e), RTUINT128_INIT_C(0x0000000000000000, 0x00001804bb2d05cd), + RTUINT128_INIT_C(0x0000000000000000, 0x0000029a91d69403), RTUINT128_INIT_C(0x0000000000000000, 0x00000344cbb54007) + }, + { /* i=1889; 60 / 100 */ + RTUINT128_INIT_C(0x0000000000000000, 0x01d76cccfb8fa175), RTUINT128_INIT_C(0x000000008f3bb9c8, 0x5356ac4f2f3bf64a), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x0000000000000000, 0x01d76cccfb8fa175) + }, + { /* i=1890; 89 / 47 */ + RTUINT128_INIT_C(0x0000000001be34e8, 0x5749e306b6daac5b), RTUINT128_INIT_C(0x0000000000000000, 0x000022ad2d55533f), + RTUINT128_INIT_C(0x0000000000000000, 0x00000cde2200366d), RTUINT128_INIT_C(0x0000000000000000, 0x00001e0a0bf6f088) + }, + { /* i=1891; 88 / 5 */ + RTUINT128_INIT_C(0x0000000000a513fa, 0xe22e3faef2037967), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000004), + RTUINT128_INIT_C(0x00000000002944fe, 0xb88b8febbc80de59), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000003) + }, + { /* i=1892; 104 / 27 */ + RTUINT128_INIT_C(0x000000b4cd6d7fd0, 0x93f47ad5ee916341), RTUINT128_INIT_C(0x0000000000000000, 0x00000000014c2031), + RTUINT128_INIT_C(0x0000000000008b5c, 0x74a3e284d5fd6cf3), RTUINT128_INIT_C(0x0000000000000000, 0x00000000004d28be) + }, + { /* i=1893; 114 / 69 */ + RTUINT128_INIT_C(0x000188de2261e709, 0xb0e9eca7cc2a2f54), RTUINT128_INIT_C(0x0000000000000018, 0x7365bcafe0639598), + RTUINT128_INIT_C(0x0000000000000000, 0x0000101154f07bad), RTUINT128_INIT_C(0x0000000000000013, 0x19076f73317e0f9c) + }, + { /* i=1894; 115 / 87 */ + RTUINT128_INIT_C(0x0005a93374c0e2bc, 0x4c1df5c7fd08ffc7), RTUINT128_INIT_C(0x000000000030cbb3, 0x2b73d3e8839cc445), + RTUINT128_INIT_C(0x0000000000000000, 0x000000001db30911), RTUINT128_INIT_C(0x0000000000268e50, 0xd47cedddaf7a8a32) + }, + { /* i=1895; 118 / 41 */ + RTUINT128_INIT_C(0x000e757539efbc70, 0x0f9a0288bbaac065), RTUINT128_INIT_C(0x0000000000000000, 0x00000010b23af353), + RTUINT128_INIT_C(0x000000000000ddb1, 0xc8f374bb9ea0f385), RTUINT128_INIT_C(0x0000000000000000, 0x00000007e0328d46) + }, + { /* i=1896; 121 / 72 */ + RTUINT128_INIT_C(0x00b3089cf7794c78, 0x52c2a12df8c0b07b), RTUINT128_INIT_C(0x00000000000000cc, 0xf30f5c2a4ffc238b), + RTUINT128_INIT_C(0x0000000000000000, 0x0000dfa0fd287144), RTUINT128_INIT_C(0x0000000000000023, 0x22ca7e3c815ee48f) + }, + { /* i=1897; 95 / 88 */ + RTUINT128_INIT_C(0x000000005d2bb76e, 0x194e8d251337462e), RTUINT128_INIT_C(0x0000000000d31934, 0x208b86a331d603ac), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000070), RTUINT128_INIT_C(0x0000000000d0b09f, 0xdc43a5bf4595aaee) + }, + { /* i=1898; 119 / 66 */ + RTUINT128_INIT_C(0x0016b9b9f7b25898, 0x3922d6a7572d6935), RTUINT128_INIT_C(0x0000000000000002, 0x3221aa35c4e58065), + RTUINT128_INIT_C(0x0000000000000000, 0x000a5972967b2922), RTUINT128_INIT_C(0x0000000000000001, 0x676b4180909b2ecb) + }, + { /* i=1899; 127 / 111 */ + RTUINT128_INIT_C(0x736b4332a2722c7a, 0x23f42c5c5d2433ea), RTUINT128_INIT_C(0x000020e1d85fb018, 0x50ef9a56f85fd7c6), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000038294), RTUINT128_INIT_C(0x000007a1e36b1282, 0xde09ded492d6e972) + }, + { /* i=1900; 117 / 15 */ + RTUINT128_INIT_C(0x001533036366f964, 0x6a7992bb03172071), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000004995), + RTUINT128_INIT_C(0x00000049c12d6c96, 0x004dfcc971e9f1b7), RTUINT128_INIT_C(0x0000000000000000, 0x00000000000041ee) + }, + { /* i=1901; 120 / 114 */ + RTUINT128_INIT_C(0x0008e211647f79d3, 0xfaf0a0b1eb96300a), RTUINT128_INIT_C(0x0003c13c0cd47332, 0x367a61df75d2d511), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000002), RTUINT128_INIT_C(0x00015f994ad6936f, 0x8dfbdcf2fff085e8) + }, + { /* i=1902; 77 / 59 */ + RTUINT128_INIT_C(0x0000000000000235, 0x271e9cf8ac5a9426), RTUINT128_INIT_C(0x0000000000000000, 0x05cac33556a62857), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000006192), RTUINT128_INIT_C(0x0000000000000000, 0x058412b84c4e9b88) + }, + { /* i=1903; 115 / 101 */ + RTUINT128_INIT_C(0x000329b90e7d33fe, 0x697aed72e1fa1cad), RTUINT128_INIT_C(0x00000016e55c2b76, 0x5c7893e49f9c8e49), + RTUINT128_INIT_C(0x0000000000000000, 0x000000000000235d), RTUINT128_INIT_C(0x0000000c22103b5a, 0x5574f1927ea67128) + }, + { /* i=1904; 39 / 101 */ + RTUINT128_INIT_C(0x0000000000000000, 0x0000004c0c42c1d4), RTUINT128_INIT_C(0x0000001e0dccffde, 0xe3709bc7d586460c), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x0000000000000000, 0x0000004c0c42c1d4) + }, + { /* i=1905; 119 / 77 */ + RTUINT128_INIT_C(0x00079dd27aecad9a, 0x4b113c1d45f8da95), RTUINT128_INIT_C(0x00000000000009bc, 0xaae11649a25ae3d7), + RTUINT128_INIT_C(0x0000000000000000, 0x000000c83fc68619), RTUINT128_INIT_C(0x00000000000000a1, 0x9681939ab68c1096) + }, + { /* i=1906; 127 / 120 */ + RTUINT128_INIT_C(0x3061f6eb1cd4cd5b, 0x76dcb398a995c803), RTUINT128_INIT_C(0x00514b870b327fe1, 0x00f7e26cd2003a4e), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000098), RTUINT128_INIT_C(0x001d1ebc76d8dfc2, 0xe3ae42fbf97329b3) + }, + { /* i=1907; 124 / 122 */ + RTUINT128_INIT_C(0x0afc7a88297b5694, 0x8656d715d5705ec7), RTUINT128_INIT_C(0x02696169bd847ab7, 0x82d32a70e2f425f5), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000004), RTUINT128_INIT_C(0x0156f4e133696bb6, 0x7b0a2d52499fc6f3) + }, + { /* i=1908; 35 / 33 */ + RTUINT128_INIT_C(0x0000000000000000, 0x0000000291e4f276), RTUINT128_INIT_C(0x0000000000000000, 0x00000000431efdcf), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000009), RTUINT128_INIT_C(0x0000000000000000, 0x0000000035ce062f) + }, + { /* i=1909; 118 / 76 */ + RTUINT128_INIT_C(0x002351c4d2903fb7, 0x141689dcfa03cdff), RTUINT128_INIT_C(0x0000000000000f24, 0xe0f2fd6d7554d0dd), + RTUINT128_INIT_C(0x0000000000000000, 0x000002550cf533ce), RTUINT128_INIT_C(0x0000000000000a89, 0x5e0576116aa6b529) + }, + { /* i=1910; 74 / 27 */ + RTUINT128_INIT_C(0x0000000000000199, 0xbc32ae43bc926b52), RTUINT128_INIT_C(0x0000000000000000, 0x0000000006cbea98), + RTUINT128_INIT_C(0x0000000000000000, 0x00003c492830e32c), RTUINT128_INIT_C(0x0000000000000000, 0x0000000004015132) + }, + { /* i=1911; 102 / 2 */ + RTUINT128_INIT_C(0x0000001a0689bed3, 0xcc689d256a537d2f), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000003), + RTUINT128_INIT_C(0x00000008acd894f1, 0x4422df0c78c67f0f), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000002) + }, + { /* i=1912; 122 / 121 */ + RTUINT128_INIT_C(0x025af7d04e2e78a9, 0x0c4c00d8ce52595a), RTUINT128_INIT_C(0x01837d8ccb414c9b, 0xf053c1347324e968), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000001), RTUINT128_INIT_C(0x00d77a4382ed2c0d, 0x1bf83fa45b2d6ff2) + }, + { /* i=1913; 114 / 43 */ + RTUINT128_INIT_C(0x0003619dd86d95c3, 0xee74254f14f955f1), RTUINT128_INIT_C(0x0000000000000000, 0x000006487df751cf), + RTUINT128_INIT_C(0x0000000000000089, 0xc4777782525c5a10), RTUINT128_INIT_C(0x0000000000000000, 0x0000034a8e5d7301) + }, + { /* i=1914; 123 / 73 */ + RTUINT128_INIT_C(0x0665205fd4247086, 0x9778348c6c6b42f7), RTUINT128_INIT_C(0x00000000000000c2, 0x7108c314bd799ee6), + RTUINT128_INIT_C(0x0000000000000000, 0x00086b6d164e5a4f), RTUINT128_INIT_C(0x0000000000000085, 0xef31bde503f25dfd) + }, + { /* i=1915; 91 / 13 */ + RTUINT128_INIT_C(0x0000000000ce29cc, 0x49edf4b8fa2ed879), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000001f38), + RTUINT128_INIT_C(0x000000000000069a, 0x94827f09a1fc39e0), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000f79) + }, + { /* i=1916; 116 / 67 */ + RTUINT128_INIT_C(0x000384fd9d3d2572, 0x1e766633057448db), RTUINT128_INIT_C(0x0000000000000001, 0xf6311696b09fb3ad), + RTUINT128_INIT_C(0x0000000000000000, 0x0001cb4b3ddd0f38), RTUINT128_INIT_C(0x0000000000000000, 0xe5494685b1a4d803) + }, + { /* i=1917; 117 / 120 */ + RTUINT128_INIT_C(0x00123c8d427d43c5, 0xe9c386b5b42abdb7), RTUINT128_INIT_C(0x00b0031556095e77, 0xe389b4e279c9a327), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x00123c8d427d43c5, 0xe9c386b5b42abdb7) + }, + { /* i=1918; 119 / 21 */ + RTUINT128_INIT_C(0x001fd7f3af063019, 0x9a2397d1788ec986), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000140fff), + RTUINT128_INIT_C(0x0000000196540044, 0x4bc811d71c64e9ea), RTUINT128_INIT_C(0x0000000000000000, 0x00000000000d1370) + }, + { /* i=1919; 108 / 41 */ + RTUINT128_INIT_C(0x00000b19560b2d3f, 0x7d318321ce047489), RTUINT128_INIT_C(0x0000000000000000, 0x000000061030b76a), + RTUINT128_INIT_C(0x00000000000001d4, 0x9dd56a9e1e03beed), RTUINT128_INIT_C(0x0000000000000000, 0x00000004168bfb67) + }, + { /* i=1920; 111 / 14 */ + RTUINT128_INIT_C(0x0000276600491d72, 0x1b2f348da1b9c9d3), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000262), + RTUINT128_INIT_C(0x0000001088d046f9, 0x0d795cd56cf5d011), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000151) + }, + { /* i=1921; 90 / 87 */ + RTUINT128_INIT_C(0x0000000002bbf402, 0x938ccc5cb005df2a), RTUINT128_INIT_C(0x0000000000608763, 0xc2c653871495025d), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000007), RTUINT128_INIT_C(0x0000000000184048, 0x402083ab1ff2ce9f) + }, + { /* i=1922; 31 / 98 */ + RTUINT128_INIT_C(0x0000000000000000, 0x000000002ae5c0dd), RTUINT128_INIT_C(0x00000001b018b089, 0xd3c9eee5b45ecbee), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x0000000000000000, 0x000000002ae5c0dd) + }, + { /* i=1923; 115 / 108 */ + RTUINT128_INIT_C(0x000449532d0a3ed3, 0x369d9dec5a0b2da8), RTUINT128_INIT_C(0x00000fadac9afbde, 0x33467d77b1804e18), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000045), RTUINT128_INIT_C(0x00000f83a7445bef, 0x649dcca982762130) + }, + { /* i=1924; 117 / 39 */ + RTUINT128_INIT_C(0x0019410955b39c99, 0x5fc9ef5b22a5efe8), RTUINT128_INIT_C(0x0000000000000000, 0x0000003875152cde), + RTUINT128_INIT_C(0x0000000000007283, 0x0908064d265662ac), RTUINT128_INIT_C(0x0000000000000000, 0x0000000e56aacec0) + }, + { /* i=1925; 123 / 34 */ + RTUINT128_INIT_C(0x026ed3d9c3c02b8f, 0xee5f354669cbcdc8), RTUINT128_INIT_C(0x0000000000000000, 0x00000003806fdf5a), + RTUINT128_INIT_C(0x0000000000b1dd2d, 0x9fa620b11e7bc639), RTUINT128_INIT_C(0x0000000000000000, 0x000000016de576be) + }, + { /* i=1926; 121 / 113 */ + RTUINT128_INIT_C(0x00f7b33939c8c4a4, 0xb8b1198f262781fc), RTUINT128_INIT_C(0x000101c09270ae9c, 0xa08d14c159756b5c), + RTUINT128_INIT_C(0x0000000000000000, 0x00000000000000f6), RTUINT128_INIT_C(0x0000042c8180fa22, 0x711f27c32f525794) + }, + { /* i=1927; 125 / 92 */ + RTUINT128_INIT_C(0x090524743c150529, 0x0906aba875904ecf), RTUINT128_INIT_C(0x0000000008824ebf, 0xe8f14e6232040af8), + RTUINT128_INIT_C(0x0000000000000000, 0x000000010f6042ef), RTUINT128_INIT_C(0x0000000002913979, 0x01c423f613f62147) + }, + { /* i=1928; 88 / 3 */ + RTUINT128_INIT_C(0x0000000000f6fc83, 0xa4b5aa2c15da6216), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000005), + RTUINT128_INIT_C(0x00000000003165b3, 0xedbdeed59df87a04), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000002) + }, + { /* i=1929; 121 / 104 */ + RTUINT128_INIT_C(0x00ecd1e7705ef8b0, 0x4c6ec4919c7cd0f2), RTUINT128_INIT_C(0x0000004640d412a1, 0x59d9546cdd869b22), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000035ef6), RTUINT128_INIT_C(0x0000001b0dd9c51a, 0x2b5112097ec74246) + }, + { /* i=1930; 53 / 1 */ + RTUINT128_INIT_C(0x0000000000000000, 0x000abe4a16b75dce), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000001), + RTUINT128_INIT_C(0x0000000000000000, 0x000abe4a16b75dce), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000) + }, + { /* i=1931; 126 / 100 */ + RTUINT128_INIT_C(0x06dec2fdaed02ca1, 0x6816d11d79093d1c), RTUINT128_INIT_C(0x00000006cd4afcaf, 0x70bdcec632f5fcba), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000001029176), RTUINT128_INIT_C(0x00000000ec50b59d, 0x8abbe2fbf40d6560) + }, + { /* i=1932; 104 / 28 */ + RTUINT128_INIT_C(0x0000003e37faaf72, 0xb6184c4ce39dc2a2), RTUINT128_INIT_C(0x0000000000000000, 0x0000000006b8cc5f), + RTUINT128_INIT_C(0x0000000000000941, 0x937f315b78462dbe), RTUINT128_INIT_C(0x0000000000000000, 0x00000000008f6120) + }, + { /* i=1933; 120 / 122 */ + RTUINT128_INIT_C(0x0036af1a4b3aa569, 0x6cf039c7289b58de), RTUINT128_INIT_C(0x03dfacd048cb97ab, 0x769e1f881b308a68), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x0036af1a4b3aa569, 0x6cf039c7289b58de) + }, + { /* i=1934; 117 / 43 */ + RTUINT128_INIT_C(0x000348cc9d3ff890, 0x3d4de464ed91df49), RTUINT128_INIT_C(0x0000000000000000, 0x0000055d9ceaee03), + RTUINT128_INIT_C(0x000000000000009c, 0xb3199a014cc6eb05), RTUINT128_INIT_C(0x0000000000000000, 0x000002253a2c783a) + }, + { /* i=1935; 76 / 46 */ + RTUINT128_INIT_C(0x0000000000000ab9, 0x9340aff3e5da8d74), RTUINT128_INIT_C(0x0000000000000000, 0x00001ddbe902077f), + RTUINT128_INIT_C(0x0000000000000000, 0x000000005bf38675), RTUINT128_INIT_C(0x0000000000000000, 0x000008e41573a669) + }, + { /* i=1936; 98 / 102 */ + RTUINT128_INIT_C(0x000000032b41a9bc, 0x5e4bba14765a458b), RTUINT128_INIT_C(0x000000198643c191, 0x19723c3a4244f8e3), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x000000032b41a9bc, 0x5e4bba14765a458b) + }, + { /* i=1937; 35 / 26 */ + RTUINT128_INIT_C(0x0000000000000000, 0x000000020ee5f8f3), RTUINT128_INIT_C(0x0000000000000000, 0x00000000015e3470), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000181), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000391c83) + }, + { /* i=1938; 127 / 79 */ + RTUINT128_INIT_C(0x160d3806cc8356df, 0x4448d201fd9c7c8f), RTUINT128_INIT_C(0x0000000000006545, 0x50e9455606897bea), + RTUINT128_INIT_C(0x0000000000000000, 0x000037be6aabb7bb), RTUINT128_INIT_C(0x0000000000003c9f, 0x167e24ae464cb2a1) + }, + { /* i=1939; 59 / 32 */ + RTUINT128_INIT_C(0x0000000000000000, 0x019838dd4bd2cb6c), RTUINT128_INIT_C(0x0000000000000000, 0x0000000068ed3506), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000003e3fb12), RTUINT128_INIT_C(0x0000000000000000, 0x0000000041d62f00) + }, + { /* i=1940; 108 / 77 */ + RTUINT128_INIT_C(0x000000c2bf97c42b, 0xa9463ed18d311cd8), RTUINT128_INIT_C(0x0000000000001c94, 0x3093fb11759b9734), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000006d07ddb), RTUINT128_INIT_C(0x000000000000058f, 0x7225bc7ee6025f5c) + }, + { /* i=1941; 91 / 71 */ + RTUINT128_INIT_C(0x000000000281c07d, 0x180a07eaa0d6adaf), RTUINT128_INIT_C(0x0000000000000005, 0xf1eefee539994818), + RTUINT128_INIT_C(0x0000000000000000, 0x00000000006bf27c), RTUINT128_INIT_C(0x0000000000000003, 0x7182cd5eb269120f) + }, + { /* i=1942; 21 / 10 */ + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000030edb), RTUINT128_INIT_C(0x0000000000000000, 0x000000000000013a), + RTUINT128_INIT_C(0x0000000000000000, 0x000000000000027e), RTUINT128_INIT_C(0x0000000000000000, 0x000000000000004f) + }, + { /* i=1943; 128 / 117 */ + RTUINT128_INIT_C(0xf0ad55200504b671, 0xd6e32af3dfec17e5), RTUINT128_INIT_C(0x0005d853a6d256b5, 0xbe1cf56ee8020c72), + RTUINT128_INIT_C(0x0000000000000000, 0x000000000000292d), RTUINT128_INIT_C(0x0000e8b402285d0c, 0xc87d434cc391a5db) + }, + { /* i=1944; 118 / 79 */ + RTUINT128_INIT_C(0x001d8a53b49fb839, 0x997d73b7feb8fc9a), RTUINT128_INIT_C(0x00000000000025a4, 0x72c238b729f43376), + RTUINT128_INIT_C(0x0000000000000000, 0x000000c8e6387922), RTUINT128_INIT_C(0x000000000000159a, 0xd05890b8ba2760ee) + }, + { /* i=1945; 83 / 77 */ + RTUINT128_INIT_C(0x000000000002a78c, 0x9a1ba00ae95e32ee), RTUINT128_INIT_C(0x00000000000014c2, 0x2ea5a6eae0e6009e), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000020), RTUINT128_INIT_C(0x0000000000000f46, 0xc566c2aecc9e1f2e) + }, + { /* i=1946; 110 / 72 */ + RTUINT128_INIT_C(0x000028272b0862de, 0x9f0c5d20b1bc41a7), RTUINT128_INIT_C(0x000000000000002d, 0xf4a8370cfc1f1ad8), + RTUINT128_INIT_C(0x0000000000000000, 0x000000dfacf5ca08), RTUINT128_INIT_C(0x0000000000000019, 0x366fd3d274dcfae7) + }, + { /* i=1947; 121 / 17 */ + RTUINT128_INIT_C(0x00243004f708361d, 0xb4374ab7bde98159), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000014bf8), + RTUINT128_INIT_C(0x0000001be803401a, 0x61e1beaa9a413465), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000002881) + }, + { /* i=1948; 119 / 55 */ + RTUINT128_INIT_C(0x000445abbe4804a1, 0x7179a5abcee0cf06), RTUINT128_INIT_C(0x0000000000000000, 0x005513e0ae292568), + RTUINT128_INIT_C(0x0000000000000000, 0x0cdadf85d1d62826), RTUINT128_INIT_C(0x0000000000000000, 0x0036622459fd0196) + }, + { /* i=1949; 99 / 69 */ + RTUINT128_INIT_C(0x00000007ec3fa0ec, 0x6747b27056ce084a), RTUINT128_INIT_C(0x0000000000000013, 0x7653c41b8ccbe27d), + RTUINT128_INIT_C(0x0000000000000000, 0x000000006836f52b), RTUINT128_INIT_C(0x0000000000000012, 0xcd84dd0c026f5c4b) + }, + { /* i=1950; 126 / 50 */ + RTUINT128_INIT_C(0x01ca8d4a5a65749d, 0xcd9ae628047291f0), RTUINT128_INIT_C(0x0000000000000000, 0x0000a8a77072ba6d), + RTUINT128_INIT_C(0x00000000000002b8, 0x0934be84c33bda1f), RTUINT128_INIT_C(0x0000000000000000, 0x00008f79b5ae2cbd) + }, + { /* i=1951; 128 / 92 */ + RTUINT128_INIT_C(0xe5feafdc7065377f, 0x6e092b07103a83a7), RTUINT128_INIT_C(0x000000000f2dc77c, 0x5bc2d633c88e10a9), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000f2700684c), RTUINT128_INIT_C(0x00000000035e3da2, 0x654bebbd1048e97b) + }, + { /* i=1952; 78 / 84 */ + RTUINT128_INIT_C(0x0000000000001c44, 0xbedc86d1dad761c8), RTUINT128_INIT_C(0x000000000004931f, 0x07626e8db81f3ca3), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x0000000000001c44, 0xbedc86d1dad761c8) + }, + { /* i=1953; 127 / 65 */ + RTUINT128_INIT_C(0x0e12f57888fe18d6, 0x5e37648f9ebd690d), RTUINT128_INIT_C(0x0000000000000000, 0x1a5b7545a11f1e7b), + RTUINT128_INIT_C(0x0000000000000000, 0x88b2707476d38367), RTUINT128_INIT_C(0x0000000000000000, 0x0ccacfaa0d3e3490) + }, + { /* i=1954; 128 / 91 */ + RTUINT128_INIT_C(0x26d601614d5ae6b7, 0xa8b105cc30aeb4b7), RTUINT128_INIT_C(0x000000000295bed2, 0x1cbc0e84a63581ef), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000f061f2de0), RTUINT128_INIT_C(0x0000000000a642ee, 0xda7f01fc04150097) + }, + { /* i=1955; 96 / 7 */ + RTUINT128_INIT_C(0x00000000d728ce98, 0xbdc73fd54394112d), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000038), + RTUINT128_INIT_C(0x0000000003d795f9, 0x95acb36cf37e1297), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000025) + }, + { /* i=1956; 121 / 58 */ + RTUINT128_INIT_C(0x01d4e4ad352b2b99, 0xd417764168a1fc57), RTUINT128_INIT_C(0x0000000000000000, 0x03e275fb3f141c05), + RTUINT128_INIT_C(0x0000000000000000, 0x78b48d316a6d5069), RTUINT128_INIT_C(0x0000000000000000, 0x0172415f407fee4a) + }, + { /* i=1957; 117 / 106 */ + RTUINT128_INIT_C(0x00188b3f99292a07, 0x53ea77017d5b5d3f), RTUINT128_INIT_C(0x0000016d6b6f58c4, 0x18380a7d101f003a), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000001131), RTUINT128_INIT_C(0x0000012ba3f426e2, 0xf87e26ff58687825) + }, + { /* i=1958; 126 / 66 */ + RTUINT128_INIT_C(0x3fadd8bbdd2a40eb, 0xc0c945a353be45b4), RTUINT128_INIT_C(0x0000000000000000, 0xf6cff9d5c355bd39), + RTUINT128_INIT_C(0x0000000000000000, 0x420caed97d2cfd84), RTUINT128_INIT_C(0x0000000000000000, 0x378f9dec84bb5f50) + }, + { /* i=1959; 99 / 41 */ + RTUINT128_INIT_C(0x000000029db2b81d, 0x1b7ef9b230da8cb1), RTUINT128_INIT_C(0x0000000000000000, 0x00000194a25ded44), + RTUINT128_INIT_C(0x0000000000000000, 0x01a7b2afe4e02f4f), RTUINT128_INIT_C(0x0000000000000000, 0x00000008abced8b5) + }, + { /* i=1960; 55 / 45 */ + RTUINT128_INIT_C(0x0000000000000000, 0x00009545c1e39409), RTUINT128_INIT_C(0x0000000000000000, 0x00000b8292698996), + RTUINT128_INIT_C(0x0000000000000000, 0x000000000000000c), RTUINT128_INIT_C(0x0000000000000000, 0x00000b26e4f12101) + }, + { /* i=1961; 100 / 99 */ + RTUINT128_INIT_C(0x000000048c2686ff, 0xb5e35bc750dffccb), RTUINT128_INIT_C(0x0000000576baea64, 0x7b2e0af572e82ab2), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x000000048c2686ff, 0xb5e35bc750dffccb) + }, + { /* i=1962; 115 / 119 */ + RTUINT128_INIT_C(0x00057719aaeaaf58, 0xb36fae6348ee0fcb), RTUINT128_INIT_C(0x002a66204a23156a, 0x27c05138114f6642), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x00057719aaeaaf58, 0xb36fae6348ee0fcb) + }, + { /* i=1963; 70 / 51 */ + RTUINT128_INIT_C(0x000000000000001e, 0xd9da077794775a31), RTUINT128_INIT_C(0x0000000000000000, 0x00007bfba29e5799), + RTUINT128_INIT_C(0x0000000000000000, 0x00000000003fb37c), RTUINT128_INIT_C(0x0000000000000000, 0x000001e889ddf115) + }, + { /* i=1964; 89 / 68 */ + RTUINT128_INIT_C(0x00000000007cdd3c, 0xb8ebf00de24b3d87), RTUINT128_INIT_C(0x0000000000000001, 0xd9d7365d8938a02b), + RTUINT128_INIT_C(0x0000000000000000, 0x00000000004375bb), RTUINT128_INIT_C(0x0000000000000000, 0x02639031d979971e) + }, + { /* i=1965; 126 / 82 */ + RTUINT128_INIT_C(0x305ab0d8f61e942e, 0x0789c3fc63dddd47), RTUINT128_INIT_C(0x000000000002d15c, 0x31a87992356e8447), + RTUINT128_INIT_C(0x0000000000000000, 0x000011290378ec72), RTUINT128_INIT_C(0x000000000001ecfc, 0x01cb99e4e06d81a9) + }, + { /* i=1966; 55 / 11 */ + RTUINT128_INIT_C(0x0000000000000000, 0x005f5c053a6859a2), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000318), + RTUINT128_INIT_C(0x0000000000000000, 0x00001ed2c10b1f24), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000242) + }, + { /* i=1967; 116 / 106 */ + RTUINT128_INIT_C(0x00063b168242efb7, 0xeee423d24e0f5eee), RTUINT128_INIT_C(0x000001e557976bc5, 0xd40b62fb4423dbf7), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000349), RTUINT128_INIT_C(0x000000a9c1d1e2d2, 0x557bf85f7441c07f) + }, + { /* i=1968; 17 / 75 */ + RTUINT128_INIT_C(0x0000000000000000, 0x000000000001acbf), RTUINT128_INIT_C(0x00000000000004f8, 0xd974f00773cbe1bf), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x0000000000000000, 0x000000000001acbf) + }, + { /* i=1969; 90 / 12 */ + RTUINT128_INIT_C(0x000000000175f95d, 0x9d01910c4a0fe7d9), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000760), + RTUINT128_INIT_C(0x00000000000032b5, 0x5674bf20af39c569), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000179) + }, + { /* i=1970; 116 / 94 */ + RTUINT128_INIT_C(0x000b61063437bb4d, 0x46c1ccd440ec13ec), RTUINT128_INIT_C(0x0000000012935e55, 0x1e8703c4814dd1ab), + RTUINT128_INIT_C(0x0000000000000000, 0x00000000009cd1c6), RTUINT128_INIT_C(0x000000000a5aad45, 0x2482a9dbf25b4eaa) + }, + { /* i=1971; 102 / 96 */ + RTUINT128_INIT_C(0x00000000fc0f26a4, 0xfa662c637863d6cf), RTUINT128_INIT_C(0x00000000cfb2aee2, 0x3d5d4e42a8a730e3), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000001), RTUINT128_INIT_C(0x000000002c5c77c2, 0xbd08de20cfbca5ec) + }, + { /* i=1972; 113 / 65 */ + RTUINT128_INIT_C(0x00006fb8c72e7b4b, 0xc35cd766bf2daca6), RTUINT128_INIT_C(0x0000000000000001, 0xdcc6303a3c7aff5b), + RTUINT128_INIT_C(0x0000000000000000, 0x00003bfcf44b8a88), RTUINT128_INIT_C(0x0000000000000000, 0x1f7189dcc485f64e) + }, + { /* i=1973; 123 / 63 */ + RTUINT128_INIT_C(0x072e4cffd943e17b, 0x10e7521bdb6dd16a), RTUINT128_INIT_C(0x0000000000000000, 0x2c6f9a09b067b594), + RTUINT128_INIT_C(0x0000000000000000, 0x295ea3548ea09f27), RTUINT128_INIT_C(0x0000000000000000, 0x0a563df7fd5a3bde) + }, + { /* i=1974; 120 / 93 */ + RTUINT128_INIT_C(0x00d7867ed272d45a, 0x5f68a2a4e7019d09), RTUINT128_INIT_C(0x000000000cf7cd6a, 0xb8bf6626bc98c291), + RTUINT128_INIT_C(0x0000000000000000, 0x00000000109eac11), RTUINT128_INIT_C(0x0000000004907fa0, 0x0a5ee0ea98a54568) + }, + { /* i=1975; 95 / 55 */ + RTUINT128_INIT_C(0x0000000008e94f1d, 0x755206de530c2668), RTUINT128_INIT_C(0x0000000000000000, 0x000858f9d97cd5b9), + RTUINT128_INIT_C(0x0000000000000000, 0x000001114a5a9a1d), RTUINT128_INIT_C(0x0000000000000000, 0x00052fc7fa4ca673) + }, + { /* i=1976; 126 / 64 */ + RTUINT128_INIT_C(0x0dc5b74cc90dd171, 0x1826829a13d86d58), RTUINT128_INIT_C(0x0000000000000000, 0x3406324dcde5cbb0), + RTUINT128_INIT_C(0x0000000000000000, 0x43c54b9cf4f56fa4), RTUINT128_INIT_C(0x0000000000000000, 0x2e84ca2bd9e0a098) + }, + { /* i=1977; 62 / 17 */ + RTUINT128_INIT_C(0x0000000000000000, 0x136b7854452d2b65), RTUINT128_INIT_C(0x0000000000000000, 0x000000000000daeb), + RTUINT128_INIT_C(0x0000000000000000, 0x000016b5938cb607), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000001cf8) + }, + { /* i=1978; 42 / 26 */ + RTUINT128_INIT_C(0x0000000000000000, 0x0000028575df86ba), RTUINT128_INIT_C(0x0000000000000000, 0x00000000010de91a), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000026431), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000f3c0c0) + }, + { /* i=1979; 102 / 59 */ + RTUINT128_INIT_C(0x0000000ad25bd9c6, 0x7ee4d508ce761449), RTUINT128_INIT_C(0x0000000000000000, 0x06d4d18509cabc7a), + RTUINT128_INIT_C(0x0000000000000000, 0x0000019589a85e51), RTUINT128_INIT_C(0x0000000000000000, 0x0157976d4a0ba5af) + }, + { /* i=1980; 122 / 98 */ + RTUINT128_INIT_C(0x03cb9d10b1b7f5cc, 0x8f69d8b82b2db8d7), RTUINT128_INIT_C(0x00000001c589a3ff, 0x7b969b4bf799c4f9), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000002246dbe), RTUINT128_INIT_C(0x000000016bd7e82b, 0x46e538c0492b8309) + }, + { /* i=1981; 126 / 72 */ + RTUINT128_INIT_C(0x2be6f135244d4db5, 0x9ffee3bf8eadb19d), RTUINT128_INIT_C(0x0000000000000056, 0xab9e36598482ae88), + RTUINT128_INIT_C(0x0000000000000000, 0x0081acaecb3e3083), RTUINT128_INIT_C(0x000000000000000a, 0x2d78929c2224e205) + }, + { /* i=1982; 117 / 69 */ + RTUINT128_INIT_C(0x001557ff0afe0e0a, 0x871b1afc602deac2), RTUINT128_INIT_C(0x000000000000000d, 0x97e79d49ead27204), + RTUINT128_INIT_C(0x0000000000000000, 0x000191f5cc94d5cc), RTUINT128_INIT_C(0x0000000000000002, 0x8ed06d5b0d4dbb92) + }, + { /* i=1983; 126 / 35 */ + RTUINT128_INIT_C(0x170fddcae5ba8d0d, 0x81fcc9520e830674), RTUINT128_INIT_C(0x0000000000000000, 0x0000000148128c4e), + RTUINT128_INIT_C(0x0000000011fee0c9, 0x8a1f52a8f6224234), RTUINT128_INIT_C(0x0000000000000000, 0x000000010c366a9c) + }, + { /* i=1984; 43 / 4 */ + RTUINT128_INIT_C(0x0000000000000000, 0x000001f4824be36c), RTUINT128_INIT_C(0x0000000000000000, 0x000000000000000c), + RTUINT128_INIT_C(0x0000000000000000, 0x00000029b58652f3), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000008) + }, + { /* i=1985; 108 / 43 */ + RTUINT128_INIT_C(0x0000018b4d99fbd4, 0x40acac75eff750de), RTUINT128_INIT_C(0x0000000000000000, 0x000003828ec63f8b), + RTUINT128_INIT_C(0x0000000000000000, 0x709f4c8457099c7b), RTUINT128_INIT_C(0x0000000000000000, 0x0000017e0f1b1515) + }, + { /* i=1986; 40 / 68 */ + RTUINT128_INIT_C(0x0000000000000000, 0x000000d8ce616195), RTUINT128_INIT_C(0x0000000000000004, 0x627033d30c64a6c5), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x0000000000000000, 0x000000d8ce616195) + }, + { /* i=1987; 27 / 15 */ + RTUINT128_INIT_C(0x0000000000000000, 0x00000000024f3b3e), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000001add), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000001602), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000784) + }, + { /* i=1988; 120 / 97 */ + RTUINT128_INIT_C(0x0058db96def09a40, 0x5571a2e566875091), RTUINT128_INIT_C(0x000000001ca48966, 0x26c463614ece7d2e), + RTUINT128_INIT_C(0x0000000000000000, 0x00000000031a2f16), RTUINT128_INIT_C(0x000000000cbecd3e, 0xb683cea077211c9d) + }, + { /* i=1989; 126 / 21 */ + RTUINT128_INIT_C(0x3b913dac3abe0936, 0x5782586ca093237a), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000132d40), + RTUINT128_INIT_C(0x0000031b31a3afc9, 0x0a1d4c4dc4b49dab), RTUINT128_INIT_C(0x0000000000000000, 0x000000000003a9ba) + }, + { /* i=1990; 65 / 7 */ + RTUINT128_INIT_C(0x0000000000000001, 0xca778494d75c8288), RTUINT128_INIT_C(0x0000000000000000, 0x000000000000002c), + RTUINT128_INIT_C(0x0000000000000000, 0x0a6b718f04e502f7), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000014) + }, + { /* i=1991; 45 / 6 */ + RTUINT128_INIT_C(0x0000000000000000, 0x00000ee4b2b89fee), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000003), + RTUINT128_INIT_C(0x0000000000000000, 0x000004f6e63d8aa4), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000002) + }, + { /* i=1992; 118 / 94 */ + RTUINT128_INIT_C(0x001f4916db10a224, 0x9c9d7c9b6cd465a2), RTUINT128_INIT_C(0x0000000036113a8d, 0xed00dd713c8a6fbf), + RTUINT128_INIT_C(0x0000000000000000, 0x00000000009421c1), RTUINT128_INIT_C(0x00000000057a2d17, 0xccf3f16655a287a3) + }, + { /* i=1993; 67 / 51 */ + RTUINT128_INIT_C(0x0000000000000007, 0xe804d903c52fcfe9), RTUINT128_INIT_C(0x0000000000000000, 0x0000aae8693d9fae), + RTUINT128_INIT_C(0x0000000000000000, 0x00000000000bd7be), RTUINT128_INIT_C(0x0000000000000000, 0x00004a7d0bde2ac5) + }, + { /* i=1994; 101 / 52 */ + RTUINT128_INIT_C(0x000000067176b4f6, 0x7cbd7c90f72084a8), RTUINT128_INIT_C(0x0000000000000000, 0x00085dfce0872bc6), + RTUINT128_INIT_C(0x0000000000000000, 0x0000c522cac4dadf), RTUINT128_INIT_C(0x0000000000000000, 0x000087c28682c72e) + }, + { /* i=1995; 86 / 54 */ + RTUINT128_INIT_C(0x0000000000244946, 0xd203055cfe4d96a8), RTUINT128_INIT_C(0x0000000000000000, 0x0005744bbfb50fe4), + RTUINT128_INIT_C(0x0000000000000000, 0x00000006a71dde6a), RTUINT128_INIT_C(0x0000000000000000, 0x0004f98810b94a40) + }, + { /* i=1996; 117 / 118 */ + RTUINT128_INIT_C(0x001c90cb3c832883, 0x6063129c9606996a), RTUINT128_INIT_C(0x002fdb9b784273ef, 0x866a5e1d4d721a85), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x001c90cb3c832883, 0x6063129c9606996a) + }, + { /* i=1997; 124 / 111 */ + RTUINT128_INIT_C(0x085a998b1838590c, 0x0012c9b82a2e0c84), RTUINT128_INIT_C(0x00004b6387ab970e, 0xae7b849beac089b8), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000001c5e), RTUINT128_INIT_C(0x0000082882b14692, 0x6c370acae86b5af4) + }, + { /* i=1998; 128 / 80 */ + RTUINT128_INIT_C(0x6e7081a2a332738f, 0x450d68997146c692), RTUINT128_INIT_C(0x00000000000081b2, 0xac0785d9e8633d1a), + RTUINT128_INIT_C(0x0000000000000000, 0x0000d9fcc14d6868), RTUINT128_INIT_C(0x0000000000004a6c, 0xe8659b28bd516402) + }, + { /* i=1999; 114 / 85 */ + RTUINT128_INIT_C(0x000240a5fdda7f28, 0x9021ebda321c17e9), RTUINT128_INIT_C(0x00000000001d524e, 0x8b63d667c4a445be), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000013aa98d5), RTUINT128_INIT_C(0x00000000001567d5, 0x3a42247ea1d940d3) + }, + { /* i=2000; 101 / 2 */ + RTUINT128_INIT_C(0x0000000e5052c7ed, 0x2611c5fd7ec614a7), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000002), + RTUINT128_INIT_C(0x00000007282963f6, 0x9308e2febf630a53), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000001) + }, + { /* i=2001; 23 / 103 */ + RTUINT128_INIT_C(0x0000000000000000, 0x00000000001bf75f), RTUINT128_INIT_C(0x0000002d16cdf7ea, 0x8b45c97b15010afa), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x0000000000000000, 0x00000000001bf75f) + }, + { /* i=2002; 8 / 2 */ + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000034), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000001), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000034), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000) + }, + { /* i=2003; 121 / 118 */ + RTUINT128_INIT_C(0x01ab248f786c5848, 0x00e7471f4ff0fdcf), RTUINT128_INIT_C(0x001c26b47508d0c8, 0x3b41ba640529498f), + RTUINT128_INIT_C(0x0000000000000000, 0x000000000000000f), RTUINT128_INIT_C(0x0004dffc9ce81c8c, 0x880d5b430285ae6e) + }, + { /* i=2004; 72 / 20 */ + RTUINT128_INIT_C(0x0000000000000024, 0x2b83406ab8dfe964), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000078bff), + RTUINT128_INIT_C(0x0000000000000000, 0x0004caef93428e97), RTUINT128_INIT_C(0x0000000000000000, 0x000000000006e3fb) + }, + { /* i=2005; 82 / 55 */ + RTUINT128_INIT_C(0x000000000003885a, 0x9b8b024a74ef2c63), RTUINT128_INIT_C(0x0000000000000000, 0x0012b0e351a50d99), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000030627146), RTUINT128_INIT_C(0x0000000000000000, 0x0006195c623aeb8d) + }, + { /* i=2006; 123 / 18 */ + RTUINT128_INIT_C(0x062636de60b4183f, 0x542605033a6f17dd), RTUINT128_INIT_C(0x0000000000000000, 0x000000000000adff), + RTUINT128_INIT_C(0x0000090c232fd6a4, 0xaeeb6b80a58a1d62), RTUINT128_INIT_C(0x0000000000000000, 0x000000000000993f) + }, + { /* i=2007; 116 / 21 */ + RTUINT128_INIT_C(0x000341de167fd949, 0x97514a8436fa1d26), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000098a13), + RTUINT128_INIT_C(0x000000005769d6a8, 0xaa89a33bfb7fbe37), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000065911) + }, + { /* i=2008; 86 / 46 */ + RTUINT128_INIT_C(0x00000000002d0078, 0xb12f0b0b31de113f), RTUINT128_INIT_C(0x0000000000000000, 0x000022cdda9abe9a), + RTUINT128_INIT_C(0x0000000000000000, 0x0000014b02456654), RTUINT128_INIT_C(0x0000000000000000, 0x000008153ba42ab7) + }, + { /* i=2009; 39 / 14 */ + RTUINT128_INIT_C(0x0000000000000000, 0x0000004875a1089a), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000001529), + RTUINT128_INIT_C(0x0000000000000000, 0x00000000036ca14b), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000c97) + }, + { /* i=2010; 74 / 6 */ + RTUINT128_INIT_C(0x00000000000003c1, 0xd44c2581e9503af1), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000037), + RTUINT128_INIT_C(0x0000000000000011, 0x7ce0cd7b61553d94), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000025) + }, + { /* i=2011; 121 / 125 */ + RTUINT128_INIT_C(0x0037dbe2ebbfeb40, 0x0f7bd30e5227ec8c), RTUINT128_INIT_C(0x0ef4d5aa32cdb910, 0x87b958b9f9ecfa0c), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x0037dbe2ebbfeb40, 0x0f7bd30e5227ec8c) + }, + { /* i=2012; 122 / 100 */ + RTUINT128_INIT_C(0x000e81246f4a9f27, 0xc2f7c3c94b439a1f), RTUINT128_INIT_C(0x0000000bc0627d69, 0xa0b87279d77c12c7), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000013bf8), RTUINT128_INIT_C(0x00000008df902811, 0x1b6cf19adff68c57) + }, + { /* i=2013; 119 / 71 */ + RTUINT128_INIT_C(0x0055140f747959a7, 0xaa99d842650a8130), RTUINT128_INIT_C(0x0000000000000038, 0x5376c32cbc972e8e), + RTUINT128_INIT_C(0x0000000000000000, 0x000182adac9e6724), RTUINT128_INIT_C(0x0000000000000021, 0x3ab0db8ae868d338) + }, + { /* i=2014; 111 / 72 */ + RTUINT128_INIT_C(0x00006102836937b3, 0x3875475afec93714), RTUINT128_INIT_C(0x0000000000000027, 0xd8a4e344315aedef), + RTUINT128_INIT_C(0x0000000000000000, 0x0000026f421b8bf4), RTUINT128_INIT_C(0x0000000000000027, 0x8ab2f4ffdeb8aa48) + }, + { /* i=2015; 125 / 33 */ + RTUINT128_INIT_C(0x17589c1046ec58d0, 0xce95be2cd35eb39e), RTUINT128_INIT_C(0x0000000000000000, 0x00000001993de5d6), + RTUINT128_INIT_C(0x000000000e9aa68e, 0xbc2d7040899536d4), RTUINT128_INIT_C(0x0000000000000000, 0x0000000092133a66) + }, + { /* i=2016; 25 / 120 */ + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000f7e7ae), RTUINT128_INIT_C(0x003c1dc2ecee4bf5, 0x23c38787468d0616), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000f7e7ae) + }, + { /* i=2017; 115 / 76 */ + RTUINT128_INIT_C(0x000700fa8b33d852, 0x26710362ae7ce2fa), RTUINT128_INIT_C(0x000000000000052a, 0xad803499f89c9a44), + RTUINT128_INIT_C(0x0000000000000000, 0x0000015b06755bc9), RTUINT128_INIT_C(0x000000000000049b, 0xb79d95c2b79d9796) + }, + { /* i=2018; 115 / 3 */ + RTUINT128_INIT_C(0x0006d1283c1f758f, 0x779e7e97290a9238), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000003), + RTUINT128_INIT_C(0x000245b8140a7c85, 0x27df7f87b858db68), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000) + }, + { /* i=2019; 121 / 33 */ + RTUINT128_INIT_C(0x0128a698a4a5dbb6, 0x4f420373005db20d), RTUINT128_INIT_C(0x0000000000000000, 0x0000000072d6850b), + RTUINT128_INIT_C(0x0000000002954d5a, 0x80e013368fcdc43c), RTUINT128_INIT_C(0x0000000000000000, 0x00000000296b1779) + }, + { /* i=2020; 95 / 48 */ + RTUINT128_INIT_C(0x0000000064322b75, 0x91056f36270caf33), RTUINT128_INIT_C(0x0000000000000000, 0x000002a57adf046a), + RTUINT128_INIT_C(0x0000000000000000, 0x0025dc743ef3c33e), RTUINT128_INIT_C(0x0000000000000000, 0x000001bfa80edf87) + }, + { /* i=2021; 113 / 108 */ + RTUINT128_INIT_C(0x00005d3d97f9a9bd, 0x8a6ea93c40c74145), RTUINT128_INIT_C(0x00000783dcd03d1b, 0xfdaee4b292a809ee), + RTUINT128_INIT_C(0x0000000000000000, 0x000000000000000c), RTUINT128_INIT_C(0x0000030f3e36cc6d, 0xa63bf0dd60e6ca1d) + }, + { /* i=2022; 115 / 79 */ + RTUINT128_INIT_C(0x00056ec944214988, 0x36493eaf140a1153), RTUINT128_INIT_C(0x000000000000285d, 0x8c9bf6a3fa616b59), + RTUINT128_INIT_C(0x0000000000000000, 0x000000227473701e), RTUINT128_INIT_C(0x0000000000000974, 0x260cb9b390ad8ce5) + }, + { /* i=2023; 91 / 79 */ + RTUINT128_INIT_C(0x00000000046bcceb, 0x2b056cb627aa5f62), RTUINT128_INIT_C(0x00000000000068a7, 0xab25169092f27661), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000ad0), RTUINT128_INIT_C(0x0000000000003800, 0xaa0171814a0a6692) + }, + { /* i=2024; 121 / 110 */ + RTUINT128_INIT_C(0x0139302ee440ad0c, 0x213c02e96de6e9d6), RTUINT128_INIT_C(0x0000113a07a67b7d, 0x4019918794deead0), + RTUINT128_INIT_C(0x0000000000000000, 0x000000000000122e), RTUINT128_INIT_C(0x00000337cfa7ae08, 0xd068541501561876) + }, + { /* i=2025; 123 / 88 */ + RTUINT128_INIT_C(0x05bf57e9b6629b58, 0x2b7cbf54a3d88d1a), RTUINT128_INIT_C(0x000000000018ac0c, 0xed9c2625d3ecdfc7), + RTUINT128_INIT_C(0x0000000000000000, 0x0000003ba2d01ee8), RTUINT128_INIT_C(0x000000000002820d, 0xc312154813446ec2) + }, + { /* i=2026; 123 / 127 */ + RTUINT128_INIT_C(0x025e2b8ff2e03106, 0x2dbfc459e112964b), RTUINT128_INIT_C(0x501ef7a0eb289cbb, 0x3929813e8c6d36dc), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x025e2b8ff2e03106, 0x2dbfc459e112964b) + }, + { /* i=2027; 103 / 62 */ + RTUINT128_INIT_C(0x0000001cf59fbb94, 0x4454541194ddc5f9), RTUINT128_INIT_C(0x0000000000000000, 0x1b60d489bf9c71ff), + RTUINT128_INIT_C(0x0000000000000000, 0x0000010ec90517a9), RTUINT128_INIT_C(0x0000000000000000, 0x192cd669975d9ba2) + }, + { /* i=2028; 63 / 34 */ + RTUINT128_INIT_C(0x0000000000000000, 0x22b44361d4c876b9), RTUINT128_INIT_C(0x0000000000000000, 0x00000001b395b107), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000014656bd7), RTUINT128_INIT_C(0x0000000000000000, 0x000000010d4fdcd8) + }, + { /* i=2029; 105 / 77 */ + RTUINT128_INIT_C(0x000001bd2d6cc2bb, 0xe9686c3fee2cf7ca), RTUINT128_INIT_C(0x0000000000001d88, 0x0b421fc723fbd427), + RTUINT128_INIT_C(0x0000000000000000, 0x000000000f131fcc), RTUINT128_INIT_C(0x0000000000000b30, 0xe7fa8f14baea2fb6) + }, + { /* i=2030; 47 / 17 */ + RTUINT128_INIT_C(0x0000000000000000, 0x00007bd7b126ae66), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000018d45), + RTUINT128_INIT_C(0x0000000000000000, 0x000000004fcdd201), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000018721) + }, + { /* i=2031; 118 / 105 */ + RTUINT128_INIT_C(0x000f5c0e580696f6, 0xe77836b71d469d34), RTUINT128_INIT_C(0x000001dee5796606, 0x316b4e58ce32462a), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000835), RTUINT128_INIT_C(0x000001bd0ab44623, 0x51ce37e2daacc682) + }, + { /* i=2032; 59 / 44 */ + RTUINT128_INIT_C(0x0000000000000000, 0x000e6b2873ddf3f1), RTUINT128_INIT_C(0x0000000000000000, 0x00000c246023f7a1), + RTUINT128_INIT_C(0x0000000000000000, 0x000000000000012f), RTUINT128_INIT_C(0x0000000000000000, 0x00000c1aa94bdc62) + }, + { /* i=2033; 122 / 48 */ + RTUINT128_INIT_C(0x02bdf9743bfd17a8, 0x235290237cf549bd), RTUINT128_INIT_C(0x0000000000000000, 0x000045ede4b2421f), + RTUINT128_INIT_C(0x0000000000000a09, 0xd13e488a2068ed91), RTUINT128_INIT_C(0x0000000000000000, 0x00002a47302f232e) + }, + { /* i=2034; 96 / 91 */ + RTUINT128_INIT_C(0x0000000089892234, 0x107c9ade7f79712c), RTUINT128_INIT_C(0x0000000003904228, 0x7fc59b3b39e5e038), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000026), RTUINT128_INIT_C(0x00000000021f5031, 0x19279013e75a28dc) + }, + { /* i=2035; 73 / 2 */ + RTUINT128_INIT_C(0x00000000000000c0, 0x743622aa3bc6c282), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000003), + RTUINT128_INIT_C(0x0000000000000040, 0x26bcb638be97962b), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000001) + }, + { /* i=2036; 74 / 11 */ + RTUINT128_INIT_C(0x0000000000000236, 0xfd63a65c6a0b2337), RTUINT128_INIT_C(0x0000000000000000, 0x00000000000000f8), + RTUINT128_INIT_C(0x0000000000000002, 0x4947a0abba3bea76), RTUINT128_INIT_C(0x0000000000000000, 0x00000000000000e7) + }, + { /* i=2037; 2 / 92 */ + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000002), RTUINT128_INIT_C(0x0000000001029190, 0xf54f8effd2148098), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000002) + }, + { /* i=2038; 117 / 122 */ + RTUINT128_INIT_C(0x00097651bc31b250, 0xca9ec47b55fda876), RTUINT128_INIT_C(0x01a8038470595141, 0x40dc1b6f50b4be98), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x00097651bc31b250, 0xca9ec47b55fda876) + }, + { /* i=2039; 120 / 52 */ + RTUINT128_INIT_C(0x002d89dc11254bc0, 0xb70398f6f712afe7), RTUINT128_INIT_C(0x0000000000000000, 0x000e969a2555762c), + RTUINT128_INIT_C(0x0000000000000003, 0x1f1fdf53ae645678), RTUINT128_INIT_C(0x0000000000000000, 0x0004e832b0208347) + }, + { /* i=2040; 104 / 53 */ + RTUINT128_INIT_C(0x000000fa528e65b1, 0x62f81da19d7aeb5c), RTUINT128_INIT_C(0x0000000000000000, 0x00053a4492c6e2e2), + RTUINT128_INIT_C(0x0000000000000000, 0x002fe27bbfccc5b1), RTUINT128_INIT_C(0x0000000000000000, 0x00042eebab48231a) + }, + { /* i=2041; 118 / 105 */ + RTUINT128_INIT_C(0x000e63af4dc3daba, 0x0a8cb707230a69dc), RTUINT128_INIT_C(0x00000034e539a328, 0xff3e9e8c21242444), + RTUINT128_INIT_C(0x0000000000000000, 0x00000000000045a4), RTUINT128_INIT_C(0x00000003ebdd47aa, 0xa5b360532a1cda4c) + }, + { /* i=2042; 113 / 67 */ + RTUINT128_INIT_C(0x00014b428f2f3f89, 0xf1e8edf0cc6cc335), RTUINT128_INIT_C(0x0000000000000006, 0xfb80cb3a57ddcbdb), + RTUINT128_INIT_C(0x0000000000000000, 0x00002f7120f16cb3), RTUINT128_INIT_C(0x0000000000000004, 0xa2e19520812bd514) + }, + { /* i=2043; 110 / 105 */ + RTUINT128_INIT_C(0x00000b32649f6a8f, 0x3c362d99ebfc5915), RTUINT128_INIT_C(0x0000014313fa4052, 0x2b2430bb9c85efa3), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000008), RTUINT128_INIT_C(0x00000119c4cd67fd, 0xe314a7bd07ccdbfd) + }, + { /* i=2044; 125 / 125 */ + RTUINT128_INIT_C(0x0edcae056d0a349e, 0x80ac4d74d163253c), RTUINT128_INIT_C(0x0f7e25ac47cc6c51, 0x07163eec6df367c0), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x0edcae056d0a349e, 0x80ac4d74d163253c) + }, + { /* i=2045; 119 / 74 */ + RTUINT128_INIT_C(0x0046b975f50816e4, 0x2205cb2ef22d12f9), RTUINT128_INIT_C(0x00000000000001e2, 0xdd453e9a374b74fb), + RTUINT128_INIT_C(0x0000000000000000, 0x0000257ef714e4f9), RTUINT128_INIT_C(0x0000000000000174, 0x6f7893a2a4fcbed6) + }, + { /* i=2046; 127 / 125 */ + RTUINT128_INIT_C(0x07137d0e1d0840c0, 0xdf276a84b7ed9559), RTUINT128_INIT_C(0x0c58192b3555c174, 0x02f5d1201d44650f), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x07137d0e1d0840c0, 0xdf276a84b7ed9559) + }, + { /* i=2047; 119 / 46 */ + RTUINT128_INIT_C(0x0021c86938071102, 0xa7b50d1584fc9877), RTUINT128_INIT_C(0x0000000000000000, 0x0000158f01fa01c5), + RTUINT128_INIT_C(0x0000000000000191, 0x28683b7c517aaaea), RTUINT128_INIT_C(0x0000000000000000, 0x000012ed84682865) + }, + { /* i=2048; 100 / 32 */ + RTUINT128_INIT_C(0x000000065fee6d7a, 0x109133589dc77f30), RTUINT128_INIT_C(0x0000000000000000, 0x00000000bfe91f84), + RTUINT128_INIT_C(0x0000000000000008, 0x80ebf39288c433ce), RTUINT128_INIT_C(0x0000000000000000, 0x000000007dd8d6f8) + }, + { /* i=2049; 50 / 9 */ + RTUINT128_INIT_C(0x0000000000000000, 0x0003a52916236ed7), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000156), + RTUINT128_INIT_C(0x0000000000000000, 0x000002ba818fd2a9), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000111) + }, + { /* i=2050; 124 / 29 */ + RTUINT128_INIT_C(0x0ce3f14dff25abb7, 0xef5bdb541c1302aa), RTUINT128_INIT_C(0x0000000000000000, 0x000000000d301d76), + RTUINT128_INIT_C(0x00000000fa395d95, 0xec2ca7210cbec2a0), RTUINT128_INIT_C(0x0000000000000000, 0x0000000002192cea) + }, + { /* i=2051; 101 / 96 */ + RTUINT128_INIT_C(0x0000001b70c7dd5e, 0xe75d8812d1995457), RTUINT128_INIT_C(0x000000009e63a564, 0x84c436623064c11d), + RTUINT128_INIT_C(0x0000000000000000, 0x000000000000002c), RTUINT128_INIT_C(0x0000000037a77018, 0x15a42f328048235b) + }, + { /* i=2052; 21 / 58 */ + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000152df1), RTUINT128_INIT_C(0x0000000000000000, 0x019160508dfdb524), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000152df1) + }, + { /* i=2053; 94 / 89 */ + RTUINT128_INIT_C(0x00000000313a61a4, 0xae78e8c42fc5131b), RTUINT128_INIT_C(0x0000000000cd0a89, 0x51bb95a36ccc24d9), + RTUINT128_INIT_C(0x0000000000000000, 0x000000000000003d), RTUINT128_INIT_C(0x00000000005edeec, 0x34c640d343204b66) + }, + { /* i=2054; 117 / 53 */ + RTUINT128_INIT_C(0x000711c6216d640c, 0x89351194cd338a5b), RTUINT128_INIT_C(0x0000000000000000, 0x00031a03cc45ee79), + RTUINT128_INIT_C(0x0000000000000002, 0x477e37e48499b0da), RTUINT128_INIT_C(0x0000000000000000, 0x0002c662db624751) + }, + { /* i=2055; 117 / 94 */ + RTUINT128_INIT_C(0x00071a7e38ea2b33, 0xfc5e5de306b40fd1), RTUINT128_INIT_C(0x0000000008b04a71, 0x5c0eacb536544e52), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000d14baa), RTUINT128_INIT_C(0x00000000077d5df9, 0x8e153bce4ed4075d) + }, + { /* i=2056; 95 / 8 */ + RTUINT128_INIT_C(0x00000000100faa4f, 0xeebdaac56ecd2501), RTUINT128_INIT_C(0x0000000000000000, 0x00000000000000a6), + RTUINT128_INIT_C(0x000000000018c4e1, 0xa35dac359f82c729), RTUINT128_INIT_C(0x0000000000000000, 0x000000000000006b) + }, + { /* i=2057; 123 / 85 */ + RTUINT128_INIT_C(0x05e241776ec64f79, 0x08c498cc50aa3311), RTUINT128_INIT_C(0x000000000008caf7, 0x726874979cb6fa71), + RTUINT128_INIT_C(0x0000000000000000, 0x000000ab4e09d9d7), RTUINT128_INIT_C(0x0000000000035f35, 0x6ee89d685cbb152a) + }, + { /* i=2058; 126 / 122 */ + RTUINT128_INIT_C(0x0163d3fea9edb643, 0x10fc24368d4f3035), RTUINT128_INIT_C(0x03c857bb243e8f65, 0xa5f2be70e18d0d0f), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x0163d3fea9edb643, 0x10fc24368d4f3035) + }, + { /* i=2059; 119 / 123 */ + RTUINT128_INIT_C(0x0053affa7713e0ca, 0x13048d9044963748), RTUINT128_INIT_C(0x0277302b8ed9990e, 0x79ebfbefbacaa85f), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x0053affa7713e0ca, 0x13048d9044963748) + }, + { /* i=2060; 121 / 77 */ + RTUINT128_INIT_C(0x01822e07bfd1467d, 0x234b7cfbb9098335), RTUINT128_INIT_C(0x0000000000001e1b, 0x63e0e4c282ed86e1), + RTUINT128_INIT_C(0x0000000000000000, 0x00000cd3b0a2063c), RTUINT128_INIT_C(0x00000000000017ae, 0xec0671d66dd2a079) + }, + { /* i=2061; 125 / 77 */ + RTUINT128_INIT_C(0x0aaa5d9dd62e4e37, 0xf1094d189056d28a), RTUINT128_INIT_C(0x000000000000010d, 0xbc8da47df7748be6), + RTUINT128_INIT_C(0x0000000000000000, 0x000a1f51dbce293a), RTUINT128_INIT_C(0x00000000000000d6, 0x89beeab080734a6e) + }, + { /* i=2062; 68 / 29 */ + RTUINT128_INIT_C(0x0000000000000006, 0x57a3c111029e9f66), RTUINT128_INIT_C(0x0000000000000000, 0x0000000002e0f56c), + RTUINT128_INIT_C(0x0000000000000000, 0x000002340273bfb8), RTUINT128_INIT_C(0x0000000000000000, 0x00000000024ea5c6) + }, + { /* i=2063; 120 / 107 */ + RTUINT128_INIT_C(0x00e438c00c3406e4, 0x10b3f9875e40bc81), RTUINT128_INIT_C(0x0000028552b7aa92, 0x2a15d459889a527f), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000005a89), RTUINT128_INIT_C(0x0000005235f25bdf, 0xde5ddb9702a9f08a) + }, + { /* i=2064; 89 / 12 */ + RTUINT128_INIT_C(0x0000000000cb6c17, 0x520f8e923de588b8), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000b95), + RTUINT128_INIT_C(0x0000000000001190, 0x4877ac624e12a401), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000923) + }, + { /* i=2065; 38 / 19 */ + RTUINT128_INIT_C(0x0000000000000000, 0x0000001c2c70d292), RTUINT128_INIT_C(0x0000000000000000, 0x000000000000e984), + RTUINT128_INIT_C(0x0000000000000000, 0x00000000001ee2e6), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000007dfa) + }, + { /* i=2066; 81 / 37 */ + RTUINT128_INIT_C(0x0000000000018961, 0xaef2da214065eb09), RTUINT128_INIT_C(0x0000000000000000, 0x000000110a447195), + RTUINT128_INIT_C(0x0000000000000000, 0x00001715ebbedcd2), RTUINT128_INIT_C(0x0000000000000000, 0x0000000aef0eb2cf) + }, + { /* i=2067; 92 / 92 */ + RTUINT128_INIT_C(0x000000000cd0c154, 0xf3c7118accb7859c), RTUINT128_INIT_C(0x000000000c59762b, 0x07769cf89dc969b1), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000001), RTUINT128_INIT_C(0x0000000000774b29, 0xec5074922eee1beb) + }, + { /* i=2068; 98 / 39 */ + RTUINT128_INIT_C(0x000000021314d63f, 0x28963277a23b2c14), RTUINT128_INIT_C(0x0000000000000000, 0x00000020328c7001), + RTUINT128_INIT_C(0x0000000000000000, 0x107e98801a516a19), RTUINT128_INIT_C(0x0000000000000000, 0x0000001501d2d1fb) + }, + { /* i=2069; 65 / 40 */ + RTUINT128_INIT_C(0x0000000000000001, 0xd595442c975b6079), RTUINT128_INIT_C(0x0000000000000000, 0x0000008a0cc76f3e), + RTUINT128_INIT_C(0x0000000000000000, 0x000000000366cbae), RTUINT128_INIT_C(0x0000000000000000, 0x00000071b5e39a55) + }, + { /* i=2070; 5 / 7 */ + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000012), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000056), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000012) + }, + { /* i=2071; 98 / 52 */ + RTUINT128_INIT_C(0x000000026ad9f052, 0x0e60a76f2f1c4ae2), RTUINT128_INIT_C(0x0000000000000000, 0x000be5d443df054c), + RTUINT128_INIT_C(0x0000000000000000, 0x000034039964de13), RTUINT128_INIT_C(0x0000000000000000, 0x000538a64146fe3e) + }, + { /* i=2072; 122 / 81 */ + RTUINT128_INIT_C(0x02609c44e974cef6, 0x53c5ae34caff4cd8), RTUINT128_INIT_C(0x0000000000001979, 0xc90115198d844da1), + RTUINT128_INIT_C(0x0000000000000000, 0x000017e3cb3254a8), RTUINT128_INIT_C(0x00000000000001c5, 0x4ea398d7ae418730) + }, + { /* i=2073; 111 / 71 */ + RTUINT128_INIT_C(0x000021e6c412a48a, 0xedcdb82409b6879d), RTUINT128_INIT_C(0x0000000000000025, 0x1021c26ce0bd6d38), + RTUINT128_INIT_C(0x0000000000000000, 0x000000ea29956881), RTUINT128_INIT_C(0x0000000000000001, 0x0f4b8a0b4c4bbe65) + }, + { /* i=2074; 107 / 105 */ + RTUINT128_INIT_C(0x00000456511c8d98, 0x2ae47a7179675f22), RTUINT128_INIT_C(0x000001094ef20fc3, 0xda719e51bdde5644), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000004), RTUINT128_INIT_C(0x0000003115544e88, 0xc11e012a81ee0612) + }, + { /* i=2075; 114 / 71 */ + RTUINT128_INIT_C(0x0002cacb7d20900d, 0x22df08e420f768a8), RTUINT128_INIT_C(0x000000000000000c, 0xe9c874635b7cad5e), + RTUINT128_INIT_C(0x0000000000000000, 0x0000375a8f644f63), RTUINT128_INIT_C(0x0000000000000002, 0xf470d6a50b885b4e) + }, + { /* i=2076; 124 / 83 */ + RTUINT128_INIT_C(0x016d5cf40c9f7882, 0x1fcc2231bd25cd66), RTUINT128_INIT_C(0x000000000007a266, 0xc909663c55ef681a), + RTUINT128_INIT_C(0x0000000000000000, 0x0000002fdb8b4420), RTUINT128_INIT_C(0x000000000003e69e, 0x983cc001a373e226) + }, + { /* i=2077; 125 / 51 */ + RTUINT128_INIT_C(0x0a372b21567a7bb5, 0x957f59b68d5fd08f), RTUINT128_INIT_C(0x0000000000000000, 0x0007645176209f7b), + RTUINT128_INIT_C(0x0000000000000161, 0xca38fa568185659a), RTUINT128_INIT_C(0x0000000000000000, 0x00045c78c8ed5991) + }, + { /* i=2078; 99 / 74 */ + RTUINT128_INIT_C(0x000000050ba7d182, 0x6d01063771229bfb), RTUINT128_INIT_C(0x0000000000000120, 0xd677a718fa7f003f), + RTUINT128_INIT_C(0x0000000000000000, 0x000000000478cee1), RTUINT128_INIT_C(0x000000000000005e, 0xedc1a827fbc8b29c) + }, + { /* i=2079; 119 / 32 */ + RTUINT128_INIT_C(0x0077e002ac3ad203, 0xd0f133fa2452f979), RTUINT128_INIT_C(0x0000000000000000, 0x000000008495822c), + RTUINT128_INIT_C(0x0000000000e775fa, 0xc8dda2bc2c002163), RTUINT128_INIT_C(0x0000000000000000, 0x0000000008b9f675) + }, + { /* i=2080; 86 / 84 */ + RTUINT128_INIT_C(0x00000000001c7a6d, 0x28a04eecd0220bde), RTUINT128_INIT_C(0x0000000000045717, 0xc799566a3fafc6df), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000006), RTUINT128_INIT_C(0x0000000000026fde, 0x7b08486f520362a4) + }, + { /* i=2081; 103 / 33 */ + RTUINT128_INIT_C(0x0000004c7a7cc5a6, 0x67706c1a2353a63f), RTUINT128_INIT_C(0x0000000000000000, 0x00000001f1b77dc9), + RTUINT128_INIT_C(0x0000000000000027, 0x562bb3ff5978c40a), RTUINT128_INIT_C(0x0000000000000000, 0x000000015ea2d865) + }, + { /* i=2082; 87 / 51 */ + RTUINT128_INIT_C(0x000000000069ed66, 0xd93ba5b64f26656b), RTUINT128_INIT_C(0x0000000000000000, 0x00036b7230e1cfd0), + RTUINT128_INIT_C(0x0000000000000000, 0x0000001ef9bc0aed), RTUINT128_INIT_C(0x0000000000000000, 0x0000d3c04f3ae1db) + }, + { /* i=2083; 62 / 50 */ + RTUINT128_INIT_C(0x0000000000000000, 0x1f3b64063cf1e149), RTUINT128_INIT_C(0x0000000000000000, 0x0001f60263d0771d), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000fed), RTUINT128_INIT_C(0x0000000000000000, 0x00007ff69df8e870) + }, + { /* i=2084; 14 / 74 */ + RTUINT128_INIT_C(0x0000000000000000, 0x000000000000184d), RTUINT128_INIT_C(0x0000000000000047, 0x889880b4ca161af6), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x0000000000000000, 0x000000000000184d) + }, + { /* i=2085; 126 / 27 */ + RTUINT128_INIT_C(0x0b73995441b6eca5, 0x6d3697aa60893495), RTUINT128_INIT_C(0x0000000000000000, 0x000000000154affc), + RTUINT128_INIT_C(0x000000089ade1c97, 0xbd06d296fe8cd0f9), RTUINT128_INIT_C(0x0000000000000000, 0x00000000005d4879) + }, + { /* i=2086; 113 / 23 */ + RTUINT128_INIT_C(0x000167751b000f04, 0x7eaaf15f1b003da8), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000092585), + RTUINT128_INIT_C(0x00000000274cbbaa, 0xfba56d6f1d44a9f9), RTUINT128_INIT_C(0x0000000000000000, 0x000000000001f24b) + }, + { /* i=2087; 124 / 61 */ + RTUINT128_INIT_C(0x0d988c168124485d, 0x37c5db2103030bf3), RTUINT128_INIT_C(0x0000000000000000, 0x0f0cfbd7b885b59d), + RTUINT128_INIT_C(0x0000000000000000, 0xe7412b3f5b543e78), RTUINT128_INIT_C(0x0000000000000000, 0x0d0b6b40bbd5e45b) + }, + { /* i=2088; 56 / 7 */ + RTUINT128_INIT_C(0x0000000000000000, 0x00a48ddbf2dac530), RTUINT128_INIT_C(0x0000000000000000, 0x000000000000004d), + RTUINT128_INIT_C(0x0000000000000000, 0x00022316cdf58adf), RTUINT128_INIT_C(0x0000000000000000, 0x000000000000001d) + }, + { /* i=2089; 121 / 126 */ + RTUINT128_INIT_C(0x012138d66a808675, 0xfc2f9bb27abda62d), RTUINT128_INIT_C(0x34d9deae326e0793, 0x0e1c5c01a02ca8d3), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x012138d66a808675, 0xfc2f9bb27abda62d) + }, + { /* i=2090; 100 / 53 */ + RTUINT128_INIT_C(0x00000005894aa8cd, 0x85bfe283c6c14b64), RTUINT128_INIT_C(0x0000000000000000, 0x000c90262bde580c), + RTUINT128_INIT_C(0x0000000000000000, 0x000070d0629713ae), RTUINT128_INIT_C(0x0000000000000000, 0x00074bb5ee048f3c) + }, + { /* i=2091; 35 / 2 */ + RTUINT128_INIT_C(0x0000000000000000, 0x000000045654c1d1), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000002), + RTUINT128_INIT_C(0x0000000000000000, 0x000000022b2a60e8), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000001) + }, + { /* i=2092; 87 / 27 */ + RTUINT128_INIT_C(0x000000000040704c, 0x6a546d6bac83df03), RTUINT128_INIT_C(0x0000000000000000, 0x0000000006d0780d), + RTUINT128_INIT_C(0x0000000000000000, 0x0974d2f617d519eb), RTUINT128_INIT_C(0x0000000000000000, 0x00000000019b6614) + }, + { /* i=2093; 96 / 82 */ + RTUINT128_INIT_C(0x00000000cb76f1f8, 0xa4d419b1930335ec), RTUINT128_INIT_C(0x00000000000010f5, 0xbc07f2e32b72fde4), + RTUINT128_INIT_C(0x0000000000000000, 0x00000000000bff2e), RTUINT128_INIT_C(0x0000000000000b2d, 0x80b34ea750a77af4) + }, + { /* i=2094; 56 / 11 */ + RTUINT128_INIT_C(0x0000000000000000, 0x009ff1280306e967), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000271), + RTUINT128_INIT_C(0x0000000000000000, 0x0000418322d222c7), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000190) + }, + { /* i=2095; 115 / 94 */ + RTUINT128_INIT_C(0x000288d7e91eab05, 0x1d3f1a61145c141a), RTUINT128_INIT_C(0x000000003d1c13d3, 0x03bf86a8ebd246ed), + RTUINT128_INIT_C(0x0000000000000000, 0x00000000000a9e20), RTUINT128_INIT_C(0x000000002b21ced9, 0x2d98cd810d0af07a) + }, + { /* i=2096; 79 / 83 */ + RTUINT128_INIT_C(0x00000000000020d0, 0x21c7c548bca385da), RTUINT128_INIT_C(0x0000000000037f6d, 0xba395fc1eeb8edd7), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x00000000000020d0, 0x21c7c548bca385da) + }, + { /* i=2097; 115 / 49 */ + RTUINT128_INIT_C(0x0006cc5478b8b255, 0x10a15aa53e3b2db8), RTUINT128_INIT_C(0x0000000000000000, 0x00002ffa188c9268), + RTUINT128_INIT_C(0x0000000000000024, 0x4638bd98ec690b4b), RTUINT128_INIT_C(0x0000000000000000, 0x00002ef21619d140) + }, + { /* i=2098; 114 / 34 */ + RTUINT128_INIT_C(0x0000b972eb25bb21, 0x2738098acc30fbf8), RTUINT128_INIT_C(0x0000000000000000, 0x000000033610b926), + RTUINT128_INIT_C(0x00000000000039c0, 0x3380534411fbc0b0), RTUINT128_INIT_C(0x0000000000000000, 0x00000000079331d8) + }, + { /* i=2099; 120 / 108 */ + RTUINT128_INIT_C(0x00571535e51fca9f, 0x6adafcfda6a5ad93), RTUINT128_INIT_C(0x00000405a011b295, 0x0081db9d63a8ee48), + RTUINT128_INIT_C(0x0000000000000000, 0x00000000000015a6), RTUINT128_INIT_C(0x0000036ea5ffc4f6, 0x6fa2abc22b8f42e3) + }, + { /* i=2100; 114 / 36 */ + RTUINT128_INIT_C(0x00023b9c6d8d3399, 0xf189c7e60afd7bbb), RTUINT128_INIT_C(0x0000000000000000, 0x000000023b3bb310), + RTUINT128_INIT_C(0x000000000001002b, 0x5963a7ddebbadca4), RTUINT128_INIT_C(0x0000000000000000, 0x00000001013d057b) + }, + { /* i=2101; 113 / 113 */ + RTUINT128_INIT_C(0x000151178498c9c6, 0x053c7c5a746f8879), RTUINT128_INIT_C(0x0001a8afa8b1acd8, 0xb423f1f1f781232c), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x000151178498c9c6, 0x053c7c5a746f8879) + }, + { /* i=2102; 120 / 53 */ + RTUINT128_INIT_C(0x00abd34e016ffe3a, 0xdf90c0f065b0bcad), RTUINT128_INIT_C(0x0000000000000000, 0x001f83a0839c6c80), + RTUINT128_INIT_C(0x0000000000000005, 0x73cb6938c7eff17c), RTUINT128_INIT_C(0x0000000000000000, 0x00012fe99847aead) + }, + { /* i=2103; 95 / 49 */ + RTUINT128_INIT_C(0x00000000048e7f8c, 0x56f49cd1c763eb94), RTUINT128_INIT_C(0x0000000000000000, 0x0000e6deb02b67cd), + RTUINT128_INIT_C(0x0000000000000000, 0x0000050d78a449b8), RTUINT128_INIT_C(0x0000000000000000, 0x0000b1a73043db3c) + }, + { /* i=2104; 116 / 51 */ + RTUINT128_INIT_C(0x000a3e1e20f3dcd3, 0x014a202d92256c12), RTUINT128_INIT_C(0x0000000000000000, 0x00067ddfc810e944), + RTUINT128_INIT_C(0x0000000000000001, 0x93eb333b4ea9c7eb), RTUINT128_INIT_C(0x0000000000000000, 0x000116530f676ea6) + }, + { /* i=2105; 119 / 90 */ + RTUINT128_INIT_C(0x001aa4be473b805d, 0xb3f782f69f2b96f0), RTUINT128_INIT_C(0x00000000002ed4c7, 0xff2b9b00778fc3f5), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000091a535de), RTUINT128_INIT_C(0x0000000000226934, 0x3a0a82271b04ef7a) + }, + { /* i=2106; 126 / 94 */ + RTUINT128_INIT_C(0x009ec983e1f2e1fd, 0xd26bd621d92e379d), RTUINT128_INIT_C(0x0000000013be43d4, 0xccbb19a66c70e46a), + RTUINT128_INIT_C(0x0000000000000000, 0x00000000080ae8eb), RTUINT128_INIT_C(0x00000000081bec00, 0x1f88b489c2687a4f) + }, + { /* i=2107; 113 / 79 */ + RTUINT128_INIT_C(0x0000d912c2c156b1, 0xe6929285f5de8d5d), RTUINT128_INIT_C(0x0000000000002c81, 0xf0b3e4608faaf5b3), + RTUINT128_INIT_C(0x0000000000000000, 0x00000004e091887e), RTUINT128_INIT_C(0x00000000000017a2, 0xc5a2110ea2cf8743) + }, + { /* i=2108; 116 / 96 */ + RTUINT128_INIT_C(0x000d93c489b17730, 0xe29840ad87e70b23), RTUINT128_INIT_C(0x00000000c4aae0e4, 0x8aeb2b45279f10ca), + RTUINT128_INIT_C(0x0000000000000000, 0x000000000011ac5e), RTUINT128_INIT_C(0x0000000094ac1c51, 0xff944519fecd28f7) + }, + { /* i=2109; 116 / 108 */ + RTUINT128_INIT_C(0x00052b06f49026d4, 0xb0262de5fa0d50cf), RTUINT128_INIT_C(0x00000e8a7ce26a1e, 0xd1c5a33e20780844), + RTUINT128_INIT_C(0x0000000000000000, 0x000000000000005a), RTUINT128_INIT_C(0x00000e570cf6d7fe, 0xf0aaca0e8fda68e7) + }, + { /* i=2110; 118 / 126 */ + RTUINT128_INIT_C(0x0038236d1e5acaac, 0xd686bee22d98ab4a), RTUINT128_INIT_C(0x06214be4003db012, 0xa7ee1c6c1b7ad323), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x0038236d1e5acaac, 0xd686bee22d98ab4a) + }, + { /* i=2111; 83 / 52 */ + RTUINT128_INIT_C(0x0000000000038f88, 0x88acff3580afbde2), RTUINT128_INIT_C(0x0000000000000000, 0x0007d5c7f70ea0cd), + RTUINT128_INIT_C(0x0000000000000000, 0x00000000745708e7), RTUINT128_INIT_C(0x0000000000000000, 0x0005413793cb3ce7) + }, + { /* i=2112; 77 / 108 */ + RTUINT128_INIT_C(0x0000000000000f0f, 0xf1bd74df29664857), RTUINT128_INIT_C(0x00000b7da7f5f812, 0xe01b6f35e8ece487), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x0000000000000f0f, 0xf1bd74df29664857) + }, + { /* i=2113; 29 / 27 */ + RTUINT128_INIT_C(0x0000000000000000, 0x00000000154fa172), RTUINT128_INIT_C(0x0000000000000000, 0x0000000005157beb), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000004), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000f9b1c6) + }, + { /* i=2114; 118 / 48 */ + RTUINT128_INIT_C(0x003c9aaa33ac0351, 0x2c7c0447def11f44), RTUINT128_INIT_C(0x0000000000000000, 0x0000824cf98a9ac1), + RTUINT128_INIT_C(0x0000000000000077, 0x11741921f412018f), RTUINT128_INIT_C(0x0000000000000000, 0x00007b2f1a57ec75) + }, + { /* i=2115; 110 / 101 */ + RTUINT128_INIT_C(0x00001777150489af, 0x573699e88e8db9cf), RTUINT128_INIT_C(0x0000001fde6d1780, 0x7f59e19ead4e0a48), + RTUINT128_INIT_C(0x0000000000000000, 0x00000000000000bc), RTUINT128_INIT_C(0x0000000fbce74751, 0xd134e961493e2cef) + }, + { /* i=2116; 118 / 117 */ + RTUINT128_INIT_C(0x0036dce357eb8fec, 0xbc6995f9f8571bda), RTUINT128_INIT_C(0x0019c0bb84d43620, 0x7be70dc56fbd4a7d), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000002), RTUINT128_INIT_C(0x00035b6c4e4323ab, 0xc49b7a6f18dc86e0) + }, + { /* i=2117; 113 / 90 */ + RTUINT128_INIT_C(0x00009924f1171ff9, 0x9010eff876cf5016), RTUINT128_INIT_C(0x00000000012ea890, 0x209d2653d1c27bbd), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000818906), RTUINT128_INIT_C(0x0000000001299bf4, 0x62a27bc01dcb44a8) + }, + { /* i=2118; 128 / 104 */ + RTUINT128_INIT_C(0xa2c255d56e16be55, 0xec7d2467a1bb05b5), RTUINT128_INIT_C(0x000000b0368f5059, 0x297242a9b07587db), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000ec7447), RTUINT128_INIT_C(0x0000001f49bcd97e, 0x3329170931af1bf8) + }, + { /* i=2119; 45 / 11 */ + RTUINT128_INIT_C(0x0000000000000000, 0x00001437b1f04725), RTUINT128_INIT_C(0x0000000000000000, 0x000000000000010a), + RTUINT128_INIT_C(0x0000000000000000, 0x00000013751ebce6), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000029) + }, + { /* i=2120; 107 / 49 */ + RTUINT128_INIT_C(0x000001c5a0468487, 0x210f63846be43d9d), RTUINT128_INIT_C(0x0000000000000000, 0x0000afa52eebc262), + RTUINT128_INIT_C(0x0000000000000000, 0x02952703357f9ed7), RTUINT128_INIT_C(0x0000000000000000, 0x0000a17ac94d814f) + }, + { /* i=2121; 118 / 95 */ + RTUINT128_INIT_C(0x001e0965a66ba1d6, 0x4aed35efa1d42356), RTUINT128_INIT_C(0x000000003352beaf, 0x538e365e293d627c), + RTUINT128_INIT_C(0x0000000000000000, 0x000000000095d2ad), RTUINT128_INIT_C(0x000000001b09510a, 0x866b39bf1662dd8a) + }, + { /* i=2122; 91 / 73 */ + RTUINT128_INIT_C(0x00000000001f403b, 0x892adabc96190fb8), RTUINT128_INIT_C(0x00000000000000d7, 0xcab08707cdcde8ae), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000002512), RTUINT128_INIT_C(0x00000000000000c3, 0xc53d3b715afd8d7c) + }, + { /* i=2123; 103 / 54 */ + RTUINT128_INIT_C(0x0000002f0b1b7511, 0xa683bb103d0cc3c3), RTUINT128_INIT_C(0x0000000000000000, 0x003ddc78a31c0ae4), + RTUINT128_INIT_C(0x0000000000000000, 0x0000c2adf036d146), RTUINT128_INIT_C(0x0000000000000000, 0x000a1eb5b265a56b) + }, + { /* i=2124; 125 / 88 */ + RTUINT128_INIT_C(0x0b8c68f79ea60549, 0x9c1a3f8fd27873f7), RTUINT128_INIT_C(0x00000000008b769e, 0x8af57401bd06937a), + RTUINT128_INIT_C(0x0000000000000000, 0x0000001532cf0ba3), RTUINT128_INIT_C(0x000000000047dd18, 0xeff815341b4c4f49) + }, + { /* i=2125; 122 / 83 */ + RTUINT128_INIT_C(0x003ce0d4fd266262, 0x25b1426485ff5051), RTUINT128_INIT_C(0x000000000000c696, 0xd0b04a09d0e77f7b), + RTUINT128_INIT_C(0x0000000000000000, 0x0000004e7a4f51c8), RTUINT128_INIT_C(0x0000000000008bda, 0x276badf51cd8cd39) + }, + { /* i=2126; 127 / 127 */ + RTUINT128_INIT_C(0x4947e44c58a2532c, 0xcf1e5c63e3f9c921), RTUINT128_INIT_C(0x37edca2b7daf3691, 0xf607b06a084beeaa), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000001), RTUINT128_INIT_C(0x115a1a20daf31c9a, 0xd916abf9dbadda77) + }, + { /* i=2127; 98 / 9 */ + RTUINT128_INIT_C(0x000000016c14a9f0, 0x121afe404015b086), RTUINT128_INIT_C(0x0000000000000000, 0x00000000000001f5), + RTUINT128_INIT_C(0x0000000000ba0989, 0x6bda3dd3298462f8), RTUINT128_INIT_C(0x0000000000000000, 0x000000000000012e) + }, + { /* i=2128; 13 / 37 */ + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000001d9e), RTUINT128_INIT_C(0x0000000000000000, 0x0000000fe4bf6f92), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000001d9e) + }, + { /* i=2129; 122 / 122 */ + RTUINT128_INIT_C(0x03c13fb3fdac621f, 0xe425606e8cf20a3f), RTUINT128_INIT_C(0x03616974c50c865f, 0xa8cbe64a552a6739), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000001), RTUINT128_INIT_C(0x005fd63f389fdbc0, 0x3b597a2437c7a306) + }, + { /* i=2130; 112 / 67 */ + RTUINT128_INIT_C(0x00007b240d0d022c, 0x21389caf0ca3ae40), RTUINT128_INIT_C(0x0000000000000007, 0xf39219f860d06e2f), + RTUINT128_INIT_C(0x0000000000000000, 0x00000f7c9139fe09), RTUINT128_INIT_C(0x0000000000000001, 0x08c3864fb0862c99) + }, + { /* i=2131; 124 / 49 */ + RTUINT128_INIT_C(0x065c64dcf7054cbf, 0xbc6853e1803ec455), RTUINT128_INIT_C(0x0000000000000000, 0x00011b5252664893), + RTUINT128_INIT_C(0x00000000000005bf, 0x5cead7701a74cb01), RTUINT128_INIT_C(0x0000000000000000, 0x0000023041afeac2) + }, + { /* i=2132; 90 / 71 */ + RTUINT128_INIT_C(0x00000000014915a5, 0xdc0389261e2211e2), RTUINT128_INIT_C(0x000000000000005f, 0xec2798045f480dd0), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000036e44), RTUINT128_INIT_C(0x000000000000003b, 0x56202933af9f06a2) + }, + { /* i=2133; 126 / 42 */ + RTUINT128_INIT_C(0x359f6bb6a7099f4c, 0x22e5c9b385faee38), RTUINT128_INIT_C(0x0000000000000000, 0x000002bca2f9907c), + RTUINT128_INIT_C(0x00000000001397c0, 0x942900a2856dc683), RTUINT128_INIT_C(0x0000000000000000, 0x0000025429ba16c4) + }, + { /* i=2134; 55 / 45 */ + RTUINT128_INIT_C(0x0000000000000000, 0x002bc029ab124ddc), RTUINT128_INIT_C(0x0000000000000000, 0x00000232e7e834df), + RTUINT128_INIT_C(0x0000000000000000, 0x00000000000013e5), RTUINT128_INIT_C(0x0000000000000000, 0x00000169fc6e7561) + }, + { /* i=2135; 51 / 3 */ + RTUINT128_INIT_C(0x0000000000000000, 0x0004935edf1e41f6), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000002), + RTUINT128_INIT_C(0x0000000000000000, 0x000249af6f8f20fb), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000) + }, + { /* i=2136; 124 / 117 */ + RTUINT128_INIT_C(0x0101247dcc35ecc9, 0xb3a2282f8b8750af), RTUINT128_INIT_C(0x0002c687fdded560, 0x979e2fd57ce4df15), + RTUINT128_INIT_C(0x0000000000000000, 0x000000000000005c), RTUINT128_INIT_C(0x0001cb9e90213e13, 0x36c8f776a9472523) + }, + { /* i=2137; 119 / 116 */ + RTUINT128_INIT_C(0x0003c79692a97792, 0x989d678c725b0975), RTUINT128_INIT_C(0x000233f5a5fb1598, 0x3219c77d27ba11b8), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000001), RTUINT128_INIT_C(0x000193a0ecae61fa, 0x6683a00f4aa0f7bd) + }, + { /* i=2138; 113 / 125 */ + RTUINT128_INIT_C(0x000193ef82e514f7, 0x940cf90ec0880834), RTUINT128_INIT_C(0x09fdaaebaeb6d458, 0x41ae367cde7ca0e3), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x000193ef82e514f7, 0x940cf90ec0880834) + }, + { /* i=2139; 116 / 35 */ + RTUINT128_INIT_C(0x000e5dabc76d661b, 0x99786150fa5d1554), RTUINT128_INIT_C(0x0000000000000000, 0x00000005530cbac6), + RTUINT128_INIT_C(0x000000000002b2b7, 0xf544eefb6b623321), RTUINT128_INIT_C(0x0000000000000000, 0x000000037ab78fce) + }, + { /* i=2140; 127 / 41 */ + RTUINT128_INIT_C(0x669c1881f79e4d8f, 0x763c03967b4dab94), RTUINT128_INIT_C(0x0000000000000000, 0x00000070d622b33b), + RTUINT128_INIT_C(0x0000000000e8cc45, 0x04ed5fbaa5f70219), RTUINT128_INIT_C(0x0000000000000000, 0x000000075796b4d1) + }, + { /* i=2141; 121 / 78 */ + RTUINT128_INIT_C(0x0058c0d113da6b50, 0x5cba86db17564104), RTUINT128_INIT_C(0x0000000000001677, 0x908284fa33bc68d3), + RTUINT128_INIT_C(0x0000000000000000, 0x000003f34b8cb2a9), RTUINT128_INIT_C(0x0000000000000776, 0xdf0c4eadcaae57b9) + }, + { /* i=2142; 81 / 3 */ + RTUINT128_INIT_C(0x00000000000134dc, 0x35febc5d84a3c8d0), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000006), + RTUINT128_INIT_C(0x000000000000337a, 0x08ffca0f961b4c22), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000004) + }, + { /* i=2143; 122 / 92 */ + RTUINT128_INIT_C(0x034923b8176eb1f8, 0x4526524bd234fb6b), RTUINT128_INIT_C(0x000000000f041455, 0x5792a4fc2e880c1b), + RTUINT128_INIT_C(0x0000000000000000, 0x00000000380436ae), RTUINT128_INIT_C(0x0000000009e16d1c, 0x128e804d66c30f11) + }, + { /* i=2144; 31 / 20 */ + RTUINT128_INIT_C(0x0000000000000000, 0x000000000870909f), RTUINT128_INIT_C(0x0000000000000000, 0x00000000000ff2a0), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000087), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000079e3f) + }, + { /* i=2145; 76 / 76 */ + RTUINT128_INIT_C(0x0000000000000e2c, 0x3f5ff90d15a37c0f), RTUINT128_INIT_C(0x000000000000010f, 0xacebaf355b87e8e8), + RTUINT128_INIT_C(0x0000000000000000, 0x000000000000000d), RTUINT128_INIT_C(0x0000000000000060, 0x776813576fbca847) + }, + { /* i=2146; 48 / 33 */ + RTUINT128_INIT_C(0x0000000000000000, 0x0000bc1deb93c432), RTUINT128_INIT_C(0x0000000000000000, 0x000000005e00e60a), + RTUINT128_INIT_C(0x0000000000000000, 0x000000000002004c), RTUINT128_INIT_C(0x0000000000000000, 0x00000000373b793a) + }, + { /* i=2147; 13 / 87 */ + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000001103), RTUINT128_INIT_C(0x0000000000007368, 0xcbf99a7b9207e59b), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000001103) + }, + { /* i=2148; 116 / 96 */ + RTUINT128_INIT_C(0x0009f6a7840b53cd, 0x8effdcedc5febfce), RTUINT128_INIT_C(0x000000000420221a, 0x882b426883f77259), + RTUINT128_INIT_C(0x0000000000000000, 0x00000000026a4330), RTUINT128_INIT_C(0x00000000010b44c2, 0x64337b7139d2041e) + }, + { /* i=2149; 104 / 10 */ + RTUINT128_INIT_C(0x0000009f75c6111a, 0x40ff8261da2b33e7), RTUINT128_INIT_C(0x0000000000000000, 0x00000000000000e6), + RTUINT128_INIT_C(0x00000000b17c68b3, 0x506bf68cab3e84ad), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000079) + }, + { /* i=2150; 114 / 49 */ + RTUINT128_INIT_C(0x0001e324b3574f71, 0x644a32e16ccc4fd5), RTUINT128_INIT_C(0x0000000000000000, 0x000198071522390d), + RTUINT128_INIT_C(0x0000000000000001, 0x2f20d31629cb1a29), RTUINT128_INIT_C(0x0000000000000000, 0x000146353e36dac0) + }, + { /* i=2151; 52 / 21 */ + RTUINT128_INIT_C(0x0000000000000000, 0x00021a76daa0c773), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000095484), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000039b65caf), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000089137) + }, + { /* i=2152; 122 / 80 */ + RTUINT128_INIT_C(0x03bf41f9342027c6, 0x4b6677e6cdcf9cde), RTUINT128_INIT_C(0x0000000000008859, 0x2908bcf02964d43c), + RTUINT128_INIT_C(0x0000000000000000, 0x000007090c9c7ac8), RTUINT128_INIT_C(0x00000000000084ce, 0x77e55b0c455535fe) + }, + { /* i=2153; 115 / 3 */ + RTUINT128_INIT_C(0x00055aa7488b2234, 0x5ddd5945b4d5103c), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000005), + RTUINT128_INIT_C(0x0001122174e8a070, 0xdf92ab74575dd00c), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000) + }, + { /* i=2154; 116 / 52 */ + RTUINT128_INIT_C(0x00047bf408736d2f, 0x29ae2d82a5e90c9c), RTUINT128_INIT_C(0x0000000000000000, 0x000117f601010be5), + RTUINT128_INIT_C(0x0000000000000004, 0x19b4222ac20d72e7), RTUINT128_INIT_C(0x0000000000000000, 0x0000cc72220a56f9) + }, + { /* i=2155; 116 / 75 */ + RTUINT128_INIT_C(0x000e424ac94207a3, 0x0d64903f427b4a97), RTUINT128_INIT_C(0x0000000000000343, 0x146a0c3359e026b5), + RTUINT128_INIT_C(0x0000000000000000, 0x0000045f064d049f), RTUINT128_INIT_C(0x0000000000000002, 0xfcffb4740d376c2c) + }, + { /* i=2156; 8 / 6 */ + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000011), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000011), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000001), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000) + }, + { /* i=2157; 127 / 15 */ + RTUINT128_INIT_C(0x2809a2a4131bb21b, 0xfeb1661e76e4ef8e), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000002953), + RTUINT128_INIT_C(0x0000f8079d2c6e88, 0x7bfeb5c4793f6605), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000eef) + }, + { /* i=2158; 114 / 84 */ + RTUINT128_INIT_C(0x0001be21caeaadbc, 0xc71a983e82603b3b), RTUINT128_INIT_C(0x00000000000d0776, 0x043baa044e82df88), + RTUINT128_INIT_C(0x0000000000000000, 0x00000000223db787), RTUINT128_INIT_C(0x00000000000772ad, 0xcfa6c4fa3a2a2283) + }, + { /* i=2159; 120 / 92 */ + RTUINT128_INIT_C(0x00ee1b9c94bf42a2, 0x0ebb7f4c211a4dc8), RTUINT128_INIT_C(0x0000000001e1a813, 0xaef588e0c2801ff0), + RTUINT128_INIT_C(0x0000000000000000, 0x000000007e8dd98d), RTUINT128_INIT_C(0x000000000108c9e1, 0x8cf26658ae464698) + }, + { /* i=2160; 113 / 10 */ + RTUINT128_INIT_C(0x00012046cc6bbd97, 0xbe7cb96cfb9d8384), RTUINT128_INIT_C(0x0000000000000000, 0x00000000000003db), + RTUINT128_INIT_C(0x0000004ac55467ae, 0x739d0bdc0ec79dd4), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000328) + }, + { /* i=2161; 115 / 44 */ + RTUINT128_INIT_C(0x0006d17f35e46fce, 0x484730d2c90abd73), RTUINT128_INIT_C(0x0000000000000000, 0x00000aa538761233), + RTUINT128_INIT_C(0x00000000000000a3, 0xf7a4b1ccfafb1354), RTUINT128_INIT_C(0x0000000000000000, 0x0000023dd8f1fbb7) + }, + { /* i=2162; 31 / 94 */ + RTUINT128_INIT_C(0x0000000000000000, 0x0000000066c05118), RTUINT128_INIT_C(0x000000000f8d186e, 0xef82dd093157de28), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x0000000000000000, 0x0000000066c05118) + }, + { /* i=2163; 119 / 88 */ + RTUINT128_INIT_C(0x0045474dbc8f412f, 0xa9fe0aa9452dbdda), RTUINT128_INIT_C(0x000000000057f053, 0x1ea0aa5dc4f0d316), + RTUINT128_INIT_C(0x0000000000000000, 0x00000000c9ad8905), RTUINT128_INIT_C(0x0000000000033bd5, 0x54af5bf49fa4d86c) + }, + { /* i=2164; 126 / 119 */ + RTUINT128_INIT_C(0x083ffb925575e4f7, 0x56e62833be9197c5), RTUINT128_INIT_C(0x006a2368bfff277d, 0x740c5b4af0558b2f), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000013), RTUINT128_INIT_C(0x005f5acc1585f6a7, 0xb9fb61a3e8384348) + }, + { /* i=2165; 117 / 95 */ + RTUINT128_INIT_C(0x0018eb2cac836a71, 0x81ee303f7cf1d88f), RTUINT128_INIT_C(0x000000004a49ac88, 0xb78983e1ffa23297), + RTUINT128_INIT_C(0x0000000000000000, 0x000000000055df00), RTUINT128_INIT_C(0x0000000035d361e7, 0xee0271b666bd4f8f) + }, + { /* i=2166; 101 / 29 */ + RTUINT128_INIT_C(0x0000000b0eb730e3, 0x29b60556fc0a660d), RTUINT128_INIT_C(0x0000000000000000, 0x000000001d56b5c7), + RTUINT128_INIT_C(0x0000000000000060, 0x7be608e7716d16d3), RTUINT128_INIT_C(0x0000000000000000, 0x000000001d387908) + }, + { /* i=2167; 121 / 103 */ + RTUINT128_INIT_C(0x00e351d99d9c4488, 0x93db5601f10477c9), RTUINT128_INIT_C(0x0000005195e22960, 0xeb85deea8c754879), + RTUINT128_INIT_C(0x0000000000000000, 0x000000000002c949), RTUINT128_INIT_C(0x00000022fadf87ed, 0x90d383ed3cb9cc48) + }, + { /* i=2168; 108 / 73 */ + RTUINT128_INIT_C(0x0000065dd8a8c2d0, 0x1f6d84ddd9b8d4ba), RTUINT128_INIT_C(0x0000000000000102, 0xaa9d4c4146777c9d), + RTUINT128_INIT_C(0x0000000000000000, 0x000000064d0b88e7), RTUINT128_INIT_C(0x000000000000008b, 0x0b2e253c35f4fb0f) + }, + { /* i=2169; 21 / 13 */ + RTUINT128_INIT_C(0x0000000000000000, 0x00000000000c26e1), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000fe3), + RTUINT128_INIT_C(0x0000000000000000, 0x00000000000000c3), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000cf8) + }, + { /* i=2170; 119 / 67 */ + RTUINT128_INIT_C(0x006534f25dfd629b, 0xbf85470fe3877fe0), RTUINT128_INIT_C(0x0000000000000002, 0x066013859edf7b3a), + RTUINT128_INIT_C(0x0000000000000000, 0x0031fb26bbab4f68), RTUINT128_INIT_C(0x0000000000000000, 0x941095d9b3f88a50) + }, + { /* i=2171; 49 / 14 */ + RTUINT128_INIT_C(0x0000000000000000, 0x0000aa8654460527), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000315), + RTUINT128_INIT_C(0x0000000000000000, 0x0000003754246dac), RTUINT128_INIT_C(0x0000000000000000, 0x000000000000020b) + }, + { /* i=2172; 110 / 38 */ + RTUINT128_INIT_C(0x00001fca583fd91e, 0xf1510e51643deed2), RTUINT128_INIT_C(0x0000000000000000, 0x00000008fa5f02b3), + RTUINT128_INIT_C(0x000000000000038a, 0x79a17001ca4b0bc4), RTUINT128_INIT_C(0x0000000000000000, 0x0000000595f12cc6) + }, + { /* i=2173; 119 / 83 */ + RTUINT128_INIT_C(0x00323c8d0d195565, 0x76aa0d046d3d6a8e), RTUINT128_INIT_C(0x000000000006bda5, 0x0159e36de3d1ceef), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000773de1075), RTUINT128_INIT_C(0x00000000000293c7, 0x68fec51e6128e753) + }, + { /* i=2174; 109 / 106 */ + RTUINT128_INIT_C(0x000005e6e43e8abe, 0xcdd48daca238e959), RTUINT128_INIT_C(0x000003bed90bfc04, 0x4644aa8720afd91a), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000001), RTUINT128_INIT_C(0x000002280b328eba, 0x878fe3258189103f) + }, + { /* i=2175; 111 / 88 */ + RTUINT128_INIT_C(0x00006c03c1f63f3a, 0x3e22719d77b71632), RTUINT128_INIT_C(0x0000000000eae856, 0x8cb5e1aec0ab04dc), + RTUINT128_INIT_C(0x0000000000000000, 0x000000000075b69e), RTUINT128_INIT_C(0x00000000003f02a5, 0xf290dc9fc029ae6a) + }, + { /* i=2176; 79 / 12 */ + RTUINT128_INIT_C(0x0000000000006836, 0x5cb455261d430619), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000ac3), + RTUINT128_INIT_C(0x0000000000000009, 0xaf017593c27f0c74), RTUINT128_INIT_C(0x0000000000000000, 0x00000000000001bd) + }, + { /* i=2177; 124 / 69 */ + RTUINT128_INIT_C(0x00e4c61acfce05d1, 0x67c1f53d998f2860), RTUINT128_INIT_C(0x000000000000001b, 0x63866ff44542c614), + RTUINT128_INIT_C(0x0000000000000000, 0x00085a535215edf4), RTUINT128_INIT_C(0x000000000000000d, 0x89d7c9e41ce5d950) + }, + { /* i=2178; 125 / 126 */ + RTUINT128_INIT_C(0x102718351d2a22bc, 0xf1e49be5e5d1a7e9), RTUINT128_INIT_C(0x2418c08f84558b9c, 0x17c349a06ffdb629), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x102718351d2a22bc, 0xf1e49be5e5d1a7e9) + }, + { /* i=2179; 123 / 122 */ + RTUINT128_INIT_C(0x04b45b3d624a9a51, 0xde45fc7896304411), RTUINT128_INIT_C(0x02bd73820731d68f, 0xe0bf67bd067ac3d8), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000001), RTUINT128_INIT_C(0x01f6e7bb5b18c3c1, 0xfd8694bb8fb58039) + }, + { /* i=2180; 92 / 15 */ + RTUINT128_INIT_C(0x00000000062f18ff, 0xe6c75768ca48f86f), RTUINT128_INIT_C(0x0000000000000000, 0x00000000000077e4), + RTUINT128_INIT_C(0x0000000000000d34, 0x5b261fe3e71e0358), RTUINT128_INIT_C(0x0000000000000000, 0x000000000000160f) + }, + { /* i=2181; 128 / 45 */ + RTUINT128_INIT_C(0xa09c78bdfaf5a958, 0xad7bb0fa97e2a1b3), RTUINT128_INIT_C(0x0000000000000000, 0x000016e254841a2c), + RTUINT128_INIT_C(0x00000000000704b9, 0xf8e970019dc1917f), RTUINT128_INIT_C(0x0000000000000000, 0x00000f03205ab9df) + }, + { /* i=2182; 127 / 121 */ + RTUINT128_INIT_C(0x4a0be148b32905fc, 0x0a7082b0e769be85), RTUINT128_INIT_C(0x0109c1f79e1eb632, 0x9f6b02dc37c18464), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000047), RTUINT128_INIT_C(0x0057159bd8a47df1, 0xd3c2b79d70be06c9) + }, + { /* i=2183; 117 / 9 */ + RTUINT128_INIT_C(0x0004b4d2706ef761, 0x3b0c971ad1a9fdda), RTUINT128_INIT_C(0x0000000000000000, 0x00000000000000ed), + RTUINT128_INIT_C(0x00000515694032bb, 0x478a5091ef9a19ea), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000038) + }, + { /* i=2184; 123 / 110 */ + RTUINT128_INIT_C(0x050af69d20ac761e, 0xf65a9ad0db43fbe1), RTUINT128_INIT_C(0x0000263bd9648636, 0xb0758d9632f44474), + RTUINT128_INIT_C(0x0000000000000000, 0x00000000000021c3), RTUINT128_INIT_C(0x0000200093cd2db7, 0x658f64d68e60e385) + }, + { /* i=2185; 37 / 29 */ + RTUINT128_INIT_C(0x0000000000000000, 0x000000061c4d40f8), RTUINT128_INIT_C(0x0000000000000000, 0x000000001baa874d), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000038), RTUINT128_INIT_C(0x0000000000000000, 0x000000000effa820) + }, + { /* i=2186; 116 / 124 */ + RTUINT128_INIT_C(0x000e858973cf6483, 0x22c29f28350310ec), RTUINT128_INIT_C(0x032941d773894212, 0x79160786e7f82d86), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x000e858973cf6483, 0x22c29f28350310ec) + }, + { /* i=2187; 128 / 36 */ + RTUINT128_INIT_C(0x67ece44fda77c3e7, 0xea2281c1cbe2c53b), RTUINT128_INIT_C(0x0000000000000000, 0x00000000d3685902), + RTUINT128_INIT_C(0x000000007dd8af5a, 0x25d7935f9bc0b7e5), RTUINT128_INIT_C(0x0000000000000000, 0x00000000206ab871) + }, + { /* i=2188; 117 / 54 */ + RTUINT128_INIT_C(0x001ae4b7766ca888, 0xdd62d8fbd7133855), RTUINT128_INIT_C(0x0000000000000000, 0x0015af8507df046f), + RTUINT128_INIT_C(0x0000000000000001, 0x3d7a7713f6888d52), RTUINT128_INIT_C(0x0000000000000000, 0x0004f10f773aa9c7) + }, + { /* i=2189; 117 / 48 */ + RTUINT128_INIT_C(0x00051b073ba670d7, 0x6c6cf4b05e64ffc0), RTUINT128_INIT_C(0x0000000000000000, 0x0000053c1b915d65), + RTUINT128_INIT_C(0x00000000000000f9, 0xae4c82f8e7d19ea7), RTUINT128_INIT_C(0x0000000000000000, 0x000000ab4877bcdd) + }, + { /* i=2190; 119 / 28 */ + RTUINT128_INIT_C(0x0028e829741d8fdc, 0x65c2462410944802), RTUINT128_INIT_C(0x0000000000000000, 0x000000000705b1d2), + RTUINT128_INIT_C(0x0000000005d348bd, 0x1da6b5c05e79ce30), RTUINT128_INIT_C(0x0000000000000000, 0x000000000229f4a2) + }, + { /* i=2191; 36 / 33 */ + RTUINT128_INIT_C(0x0000000000000000, 0x0000000a3a5935e3), RTUINT128_INIT_C(0x0000000000000000, 0x000000009c2216dd), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000010), RTUINT128_INIT_C(0x0000000000000000, 0x000000007837c813) + }, + { /* i=2192; 125 / 78 */ + RTUINT128_INIT_C(0x19a27651c4cd35c1, 0xa6c22d4cd7e625a0), RTUINT128_INIT_C(0x00000000000027d3, 0x2496c8a2ef3a842f), + RTUINT128_INIT_C(0x0000000000000000, 0x0000a4c88cee9b52), RTUINT128_INIT_C(0x0000000000000284, 0x9e4778db316d5992) + }, + { /* i=2193; 79 / 30 */ + RTUINT128_INIT_C(0x0000000000006d3b, 0xaa809f6226bce20d), RTUINT128_INIT_C(0x0000000000000000, 0x000000002afda764), + RTUINT128_INIT_C(0x0000000000000000, 0x00028a74d9a5e074), RTUINT128_INIT_C(0x0000000000000000, 0x0000000011e188bd) + }, + { /* i=2194; 116 / 22 */ + RTUINT128_INIT_C(0x000c5d889d3f4a2f, 0x0e514fcb1cf10143), RTUINT128_INIT_C(0x0000000000000000, 0x000000000033e122), + RTUINT128_INIT_C(0x000000003d0462aa, 0x667fd34e6b0b865b), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000322e2d) + }, + { /* i=2195; 72 / 114 */ + RTUINT128_INIT_C(0x000000000000008c, 0x1ef1389795cb5def), RTUINT128_INIT_C(0x00008bd60203eb5e, 0x367c0cd1be43bf94), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x000000000000008c, 0x1ef1389795cb5def) + }, + { /* i=2196; 126 / 120 */ + RTUINT128_INIT_C(0x213fb4369267ddeb, 0x2b38a8cb005f7f41), RTUINT128_INIT_C(0x003b7893ba88f3ec, 0x57e421b37223707e), + RTUINT128_INIT_C(0x0000000000000000, 0x000000000000008f), RTUINT128_INIT_C(0x000759b15fe79ce6, 0x12c9d58e3e93a8df) + }, + { /* i=2197; 117 / 109 */ + RTUINT128_INIT_C(0x0007614c18773f5b, 0x8dacb936888d96c7), RTUINT128_INIT_C(0x00001b854e649aac, 0x26b422d5d8773614), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000044), RTUINT128_INIT_C(0x000011e345be29a1, 0x45d3786908e33977) + }, + { /* i=2198; 127 / 48 */ + RTUINT128_INIT_C(0x3d6efb063fc48506, 0x61a8250c9400c343), RTUINT128_INIT_C(0x0000000000000000, 0x0000db7cdf686ae0), + RTUINT128_INIT_C(0x00000000000047a7, 0x31b0e0679c36730f), RTUINT128_INIT_C(0x0000000000000000, 0x00006f18899fe023) + }, + { /* i=2199; 30 / 24 */ + RTUINT128_INIT_C(0x0000000000000000, 0x000000002016df29), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000cc1343), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000028), RTUINT128_INIT_C(0x0000000000000000, 0x000000000033dcb1) + }, + { /* i=2200; 123 / 46 */ + RTUINT128_INIT_C(0x034e228fde0f7a77, 0x68c69ebbb18c4dc4), RTUINT128_INIT_C(0x0000000000000000, 0x00003785a197a3e5), + RTUINT128_INIT_C(0x0000000000000f3d, 0x58c427085176d8c8), RTUINT128_INIT_C(0x0000000000000000, 0x00000514803d0adc) + }, + { /* i=2201; 53 / 51 */ + RTUINT128_INIT_C(0x0000000000000000, 0x0003d027160c373c), RTUINT128_INIT_C(0x0000000000000000, 0x000537954770fc01), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x0000000000000000, 0x0003d027160c373c) + }, + { /* i=2202; 50 / 21 */ + RTUINT128_INIT_C(0x0000000000000000, 0x00004c61aac5b58f), RTUINT128_INIT_C(0x0000000000000000, 0x00000000001ddcdd), + RTUINT128_INIT_C(0x0000000000000000, 0x00000000028ec8db), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000171c80) + }, + { /* i=2203; 110 / 63 */ + RTUINT128_INIT_C(0x00003a0b2d2aaebe, 0x8bda5298eba457be), RTUINT128_INIT_C(0x0000000000000000, 0x7b46f4ee84ef5068), + RTUINT128_INIT_C(0x0000000000000000, 0x00007888e1a4de2c), RTUINT128_INIT_C(0x0000000000000000, 0x7aca6c17a02855de) + }, + { /* i=2204; 123 / 72 */ + RTUINT128_INIT_C(0x05d5640f04ec5dbb, 0x777a5246f403fec5), RTUINT128_INIT_C(0x0000000000000044, 0x498315dedeb78271), + RTUINT128_INIT_C(0x0000000000000000, 0x0015de890c07ca51), RTUINT128_INIT_C(0x000000000000000c, 0xb39e0d6ad1ef8f04) + }, + { /* i=2205; 117 / 109 */ + RTUINT128_INIT_C(0x0000f10313d80ef9, 0xff35ebc7a2535e6e), RTUINT128_INIT_C(0x000019ec436fea34, 0x398b13490c804f85), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000009), RTUINT128_INIT_C(0x000007b4b4e8d323, 0xf9523e3631d092c1) + }, + { /* i=2206; 124 / 120 */ + RTUINT128_INIT_C(0x0038f580024979a4, 0x8c7dee628d9eac12), RTUINT128_INIT_C(0x000c42c17017696b, 0x0f452c7374197936), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000004), RTUINT128_INIT_C(0x0007ea7a41ebd3f8, 0x4f693c94bd38c73a) + }, + { /* i=2207; 126 / 54 */ + RTUINT128_INIT_C(0x26838d1aef607b01, 0xa5435ce158d6c6b0), RTUINT128_INIT_C(0x0000000000000000, 0x0021e7a413090752), + RTUINT128_INIT_C(0x0000000000000122, 0xccf68827af890aec), RTUINT128_INIT_C(0x0000000000000000, 0x00145f8d7958d318) + }, + { /* i=2208; 9 / 25 */ + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000165), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000af3142), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000165) + }, + { /* i=2209; 122 / 91 */ + RTUINT128_INIT_C(0x02aa3ea8b7edcf42, 0x0778d509f2b0fd45), RTUINT128_INIT_C(0x00000000078edfcf, 0x97b78bc2d7f29815), + RTUINT128_INIT_C(0x0000000000000000, 0x000000005a444492), RTUINT128_INIT_C(0x00000000068432ad, 0x1ffeb8a6925cad4b) + }, + { /* i=2210; 42 / 5 */ + RTUINT128_INIT_C(0x0000000000000000, 0x000003e0bdd5a791), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000014), + RTUINT128_INIT_C(0x0000000000000000, 0x00000031a3177b94), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000001) + }, + { /* i=2211; 122 / 23 */ + RTUINT128_INIT_C(0x02c993c34ac04922, 0xe54180b839db0461), RTUINT128_INIT_C(0x0000000000000000, 0x00000000003a3a03), + RTUINT128_INIT_C(0x0000000c4153105d, 0x001a95805270b826), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000343fef) + }, + { /* i=2212; 124 / 48 */ + RTUINT128_INIT_C(0x07d8f3af37633e33, 0xe12194d62937831f), RTUINT128_INIT_C(0x0000000000000000, 0x000099d59016ccf4), + RTUINT128_INIT_C(0x0000000000000d0f, 0x27b23241af806ccb), RTUINT128_INIT_C(0x0000000000000000, 0x00002c3e02ac0da3) + }, + { /* i=2213; 125 / 109 */ + RTUINT128_INIT_C(0x0bb1b95a2329b79e, 0x9b7cec85d7f7dbf0), RTUINT128_INIT_C(0x00000efc1be3c8c8, 0x5369d849eec0418b), + RTUINT128_INIT_C(0x0000000000000000, 0x000000000000c7c8), RTUINT128_INIT_C(0x00000ab648212246, 0x29aa7a2bded19a58) + }, + { /* i=2214; 126 / 107 */ + RTUINT128_INIT_C(0x3c88657549a17d2c, 0xcca3849b2ee72ae6), RTUINT128_INIT_C(0x0000033a4fa21548, 0x2df478f9941af1f0), + RTUINT128_INIT_C(0x0000000000000000, 0x000000000012c0f2), RTUINT128_INIT_C(0x00000336f3600149, 0x7f418fb3f51a7606) + }, + { /* i=2215; 115 / 110 */ + RTUINT128_INIT_C(0x00042b1c8f390495, 0x4eabf9bcdfcf9413), RTUINT128_INIT_C(0x000027625cec40f5, 0xcbfbb886e9178219), + RTUINT128_INIT_C(0x0000000000000000, 0x000000000000001b), RTUINT128_INIT_C(0x000003bcc24e2aa8, 0xcb1f83824a54db70) + }, + { /* i=2216; 58 / 24 */ + RTUINT128_INIT_C(0x0000000000000000, 0x00896713623e7636), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000228b5f), + RTUINT128_INIT_C(0x0000000000000000, 0x00000003fa41a4b0), RTUINT128_INIT_C(0x0000000000000000, 0x000000000016c8e6) + }, + { /* i=2217; 117 / 91 */ + RTUINT128_INIT_C(0x0012621f1b500604, 0xc35eda46d181788b), RTUINT128_INIT_C(0x0000000005c25e0a, 0x89d87e799874e572), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000003312449), RTUINT128_INIT_C(0x000000000207cdb5, 0x60ca2319a7160309) + }, + { /* i=2218; 119 / 89 */ + RTUINT128_INIT_C(0x00133fa3d0b9f2df, 0x9523dd9f94bc5e0c), RTUINT128_INIT_C(0x00000000016fc73d, 0x5ea0672b0fa0bc69), + RTUINT128_INIT_C(0x0000000000000000, 0x000000000d65fd6f), RTUINT128_INIT_C(0x0000000000566e39, 0x23d93f864969e785) + }, + { /* i=2219; 42 / 14 */ + RTUINT128_INIT_C(0x0000000000000000, 0x000002d7c77aa05d), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000002d61), + RTUINT128_INIT_C(0x0000000000000000, 0x000000001009af45), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000001638) + }, + { /* i=2220; 119 / 59 */ + RTUINT128_INIT_C(0x007a9d74cbb4bb1b, 0x05432f0b12681ed1), RTUINT128_INIT_C(0x0000000000000000, 0x064db5a003aa3bf7), + RTUINT128_INIT_C(0x0000000000000000, 0x1373a532868093f8), RTUINT128_INIT_C(0x0000000000000000, 0x03e8802d7f8f3289) + }, + { /* i=2221; 81 / 60 */ + RTUINT128_INIT_C(0x000000000000563a, 0x9495ff2b842858b7), RTUINT128_INIT_C(0x0000000000000000, 0x0be0876da46b1045), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000074296), RTUINT128_INIT_C(0x0000000000000000, 0x081ce19c21580649) + }, + { /* i=2222; 114 / 39 */ + RTUINT128_INIT_C(0x00031bb1209592d2, 0x7e46e9fe51c4d8e8), RTUINT128_INIT_C(0x0000000000000000, 0x0000005cd9b5b2f9), + RTUINT128_INIT_C(0x0000000000000891, 0xd1eb4851be0bd72e), RTUINT128_INIT_C(0x0000000000000000, 0x0000000b1b1c912a) + }, + { /* i=2223; 115 / 101 */ + RTUINT128_INIT_C(0x0000b356af0e00d3, 0xa01bff14200561cd), RTUINT128_INIT_C(0x0000000a0a98a02c, 0x55f43abfd155c7a3), + RTUINT128_INIT_C(0x0000000000000000, 0x00000000000011dc), RTUINT128_INIT_C(0x0000000171416904, 0x8a52c555880bfeb9) + }, + { /* i=2224; 97 / 102 */ + RTUINT128_INIT_C(0x000000004e07918d, 0x38de70374d830506), RTUINT128_INIT_C(0x00000001e933c2de, 0x81dbb0ef114bd124), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x000000004e07918d, 0x38de70374d830506) + }, + { /* i=2225; 123 / 82 */ + RTUINT128_INIT_C(0x042a432f13bc42b0, 0x36d48fd07f8e327b), RTUINT128_INIT_C(0x00000000000086fa, 0xa5e3e5faaec50cc1), + RTUINT128_INIT_C(0x0000000000000000, 0x000007e6433ef98a), RTUINT128_INIT_C(0x00000000000067d5, 0x6873203b062f9971) + }, + { /* i=2226; 122 / 54 */ + RTUINT128_INIT_C(0x00c0fd82cec581ee, 0xf9f7f0d8e425814d), RTUINT128_INIT_C(0x0000000000000000, 0x002a4881896ae300), + RTUINT128_INIT_C(0x0000000000000004, 0x90713b4823ec6ca2), RTUINT128_INIT_C(0x0000000000000000, 0x000a455492bddb4d) + }, + { /* i=2227; 123 / 48 */ + RTUINT128_INIT_C(0x00969fc3550964b9, 0xe86a34ee57d885ec), RTUINT128_INIT_C(0x0000000000000000, 0x00005ba77265a90e), + RTUINT128_INIT_C(0x00000000000001a4, 0xb5ade59f651b20f1), RTUINT128_INIT_C(0x0000000000000000, 0x00004be196889fbe) + }, + { /* i=2228; 120 / 111 */ + RTUINT128_INIT_C(0x00e2ee846adc8b70, 0xe26a028d979c4053), RTUINT128_INIT_C(0x0000381ecec6098a, 0x60831e84898be4fb), + RTUINT128_INIT_C(0x0000000000000000, 0x000000000000040b), RTUINT128_INIT_C(0x000009f67033f8fc, 0xb04da0b57f057d8a) + }, + { /* i=2229; 123 / 120 */ + RTUINT128_INIT_C(0x07a0ac31ca80b29c, 0x9ef549f60487db8d), RTUINT128_INIT_C(0x00cb4b69fe35964d, 0x431dfcbc45719031), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000009), RTUINT128_INIT_C(0x007b0577da9e69e5, 0x42e767579389c9d4) + }, + { /* i=2230; 128 / 89 */ + RTUINT128_INIT_C(0x0930464630dbab74, 0xf981aaad626afdaa), RTUINT128_INIT_C(0x000000000020f0d3, 0x27cf01af04ed9726), + RTUINT128_INIT_C(0x0000000000000000, 0x0000004768c91983), RTUINT128_INIT_C(0x00000000001bfec2, 0x991967258c3def38) + }, + { /* i=2231; 121 / 119 */ + RTUINT128_INIT_C(0x01f509d8401c7f58, 0xbc6502fb30eccd96), RTUINT128_INIT_C(0x00096726aa91da07, 0xb150696b63d05aa2), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000035), RTUINT128_INIT_C(0x0002aed6efea5bc1, 0x06bf2fbf86ca0a0c) + }, + { /* i=2232; 116 / 60 */ + RTUINT128_INIT_C(0x000414115f2cd170, 0x85a931884a4fcfbd), RTUINT128_INIT_C(0x0000000000000000, 0x08fb6fb9c31ea709), + RTUINT128_INIT_C(0x0000000000000000, 0x00743cdec10bf7c7), RTUINT128_INIT_C(0x0000000000000000, 0x0484a8d213ef48be) + }, + { /* i=2233; 124 / 55 */ + RTUINT128_INIT_C(0x02641a405811026b, 0x6c25953ac72d84ad), RTUINT128_INIT_C(0x0000000000000000, 0x0008e49e3344f5c5), + RTUINT128_INIT_C(0x0000000000000044, 0xd453a1065a8c7e3a), RTUINT128_INIT_C(0x0000000000000000, 0x0003fc6b8edae00b) + }, + { /* i=2234; 120 / 101 */ + RTUINT128_INIT_C(0x005190fe8da4ff44, 0x8e6fedd2e5af4529), RTUINT128_INIT_C(0x000000062c43e7de, 0x0d737d73483ccb3a), + RTUINT128_INIT_C(0x0000000000000000, 0x00000000000d36ae), RTUINT128_INIT_C(0x000000035e4de0a3, 0xae9fad24a78ce7bd) + }, + { /* i=2235; 117 / 108 */ + RTUINT128_INIT_C(0x000af157c86b80f4, 0x25df042d51118e33), RTUINT128_INIT_C(0x0000010514a88866, 0xa9d6870f7bb60e8e), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000aba), RTUINT128_INIT_C(0x000000d830a463ba, 0x5eba481852396f07) + }, + { /* i=2236; 102 / 96 */ + RTUINT128_INIT_C(0x00000006df68ec1e, 0x337556fb8499a35e), RTUINT128_INIT_C(0x000000009f4db771, 0x4022969b837b81de), + RTUINT128_INIT_C(0x0000000000000000, 0x000000000000000b), RTUINT128_INIT_C(0x0000000007120a40, 0x71f8de4cde4b0ed4) + }, + { /* i=2237; 58 / 52 */ + RTUINT128_INIT_C(0x0000000000000000, 0x011248867750432c), RTUINT128_INIT_C(0x0000000000000000, 0x000d62cebc31415d), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000014), RTUINT128_INIT_C(0x0000000000000000, 0x0006905fc37727e8) + }, + { /* i=2238; 125 / 69 */ + RTUINT128_INIT_C(0x092f12259fb30dda, 0xb7a8cbaed5786529), RTUINT128_INIT_C(0x0000000000000015, 0x098cc011b520836c), + RTUINT128_INIT_C(0x0000000000000000, 0x006fc1da0d5fda0c), RTUINT128_INIT_C(0x0000000000000005, 0x802382e766f44419) + }, + { /* i=2239; 127 / 70 */ + RTUINT128_INIT_C(0x1aeb722c136c4ce8, 0x83268d22169f4023), RTUINT128_INIT_C(0x000000000000002d, 0x7cd7817d24c79a11), + RTUINT128_INIT_C(0x0000000000000000, 0x0097805da0e9d40a), RTUINT128_INIT_C(0x0000000000000016, 0x100a29a681c42779) + }, + { /* i=2240; 79 / 53 */ + RTUINT128_INIT_C(0x0000000000005b63, 0xae1458dec9a5ac3a), RTUINT128_INIT_C(0x0000000000000000, 0x001e3a7c5c6e1b59), + RTUINT128_INIT_C(0x0000000000000000, 0x000000000305f646), RTUINT128_INIT_C(0x0000000000000000, 0x0019c1932185abe4) + }, + { /* i=2241; 18 / 36 */ + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000009991), RTUINT128_INIT_C(0x0000000000000000, 0x0000000f955d8267), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000009991) + }, + { /* i=2242; 118 / 118 */ + RTUINT128_INIT_C(0x000f375f3708a078, 0xc5d600358d254fc8), RTUINT128_INIT_C(0x0014c3da10670edd, 0xd2e33e82f6d57867), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x000f375f3708a078, 0xc5d600358d254fc8) + }, + { /* i=2243; 118 / 51 */ + RTUINT128_INIT_C(0x0034f62ca4066ee9, 0x12ea1634b32c2c66), RTUINT128_INIT_C(0x0000000000000000, 0x000180d9b8a048e8), + RTUINT128_INIT_C(0x0000000000000023, 0x3aceec3322ab35f8), RTUINT128_INIT_C(0x0000000000000000, 0x00002d1925d583a6) + }, + { /* i=2244; 31 / 18 */ + RTUINT128_INIT_C(0x0000000000000000, 0x000000004d817bc0), RTUINT128_INIT_C(0x0000000000000000, 0x000000000000c204), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000006644), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000005ab0) + }, + { /* i=2245; 113 / 76 */ + RTUINT128_INIT_C(0x0001f5679ce32d64, 0xe0d997277e21821a), RTUINT128_INIT_C(0x00000000000004cc, 0x1c4c7a784a22f539), + RTUINT128_INIT_C(0x0000000000000000, 0x0000006884994218), RTUINT128_INIT_C(0x000000000000013d, 0x2bc924459490d2c2) + }, + { /* i=2246; 83 / 72 */ + RTUINT128_INIT_C(0x000000000001d983, 0xec5883921a3cdd22), RTUINT128_INIT_C(0x000000000000004f, 0xdcca72ded79dfff5), + RTUINT128_INIT_C(0x0000000000000000, 0x00000000000005ed), RTUINT128_INIT_C(0x0000000000000044, 0x90add10e66f71e51) + }, + { /* i=2247; 113 / 116 */ + RTUINT128_INIT_C(0x0000300f8e5c5ed2, 0x11d26ce065c9d965), RTUINT128_INIT_C(0x00006f1da6840503, 0x918dc95be204670c), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x0000300f8e5c5ed2, 0x11d26ce065c9d965) + }, + { /* i=2248; 123 / 98 */ + RTUINT128_INIT_C(0x01a1a0a6fcb8c305, 0xbeaea7719a65daca), RTUINT128_INIT_C(0x0000000026b433fb, 0x5dc0313aa9d8e26d), + RTUINT128_INIT_C(0x0000000000000000, 0x000000000aca5237), RTUINT128_INIT_C(0x000000001d599869, 0xe7b2cb74b8444b5f) + }, + { /* i=2249; 113 / 124 */ + RTUINT128_INIT_C(0x000041adfabef52e, 0x5f4458f2970ffcc3), RTUINT128_INIT_C(0x0f7289f99180bd6b, 0xfd42343ac9cbaaf1), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x000041adfabef52e, 0x5f4458f2970ffcc3) + }, + { /* i=2250; 121 / 107 */ + RTUINT128_INIT_C(0x0175e2c954cb18ad, 0x885706a4932e4ce1), RTUINT128_INIT_C(0x000003f14be58228, 0x4984b36c30ae88b8), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000005ed5), RTUINT128_INIT_C(0x00000126e90b0229, 0xa30c03bffbc2fbc9) + }, + { /* i=2251; 120 / 29 */ + RTUINT128_INIT_C(0x0015b5e261fc16a4, 0xe0f478e03e984cf4), RTUINT128_INIT_C(0x0000000000000000, 0x0000000001826fa9), + RTUINT128_INIT_C(0x000000000e61e5c3, 0x78799c4397e11820), RTUINT128_INIT_C(0x0000000000000000, 0x0000000001497fd4) + }, + { /* i=2252; 120 / 103 */ + RTUINT128_INIT_C(0x00e83d4804d14a27, 0xb0546cffcd64c1b9), RTUINT128_INIT_C(0x0000007c7a9c0450, 0x1ef92e5439ee9e8e), + RTUINT128_INIT_C(0x0000000000000000, 0x000000000001dd9d), RTUINT128_INIT_C(0x0000007c1f195b4e, 0x66301366a89eeea3) + }, + { /* i=2253; 69 / 63 */ + RTUINT128_INIT_C(0x000000000000001c, 0x0c2d3e4cf3092218), RTUINT128_INIT_C(0x0000000000000000, 0x3066197ce7b3e8dc), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000094), RTUINT128_INIT_C(0x0000000000000000, 0x11268216ff0682e8) + }, + { /* i=2254; 127 / 111 */ + RTUINT128_INIT_C(0x7959d27a80743bbf, 0x8ab27bbdd1604030), RTUINT128_INIT_C(0x0000039b0b900fd8, 0xdbd8159cf79b0eac), + RTUINT128_INIT_C(0x0000000000000000, 0x000000000021a7e2), RTUINT128_INIT_C(0x0000017d45fb7008, 0xb69a16a82fbf1858) + }, + { /* i=2255; 126 / 127 */ + RTUINT128_INIT_C(0x3d81c65741ab253f, 0xae0147d8e7fd4b58), RTUINT128_INIT_C(0x389a62fc18a5d550, 0x57c8498da1d449a9), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000001), RTUINT128_INIT_C(0x04e7635b29054fef, 0x5638fe4b462901af) + }, + { /* i=2256; 33 / 65 */ + RTUINT128_INIT_C(0x0000000000000000, 0x0000000110c9a458), RTUINT128_INIT_C(0x0000000000000000, 0x0d532cf3023a653e), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x0000000000000000, 0x0000000110c9a458) + }, + { /* i=2257; 126 / 34 */ + RTUINT128_INIT_C(0x07105f78dd710886, 0x876a28f76ec4d5a0), RTUINT128_INIT_C(0x0000000000000000, 0x00000002d8c786ed), + RTUINT128_INIT_C(0x00000000027b3b35, 0x1cdcd440146afd1c), RTUINT128_INIT_C(0x0000000000000000, 0x000000022677dab4) + }, + { /* i=2258; 116 / 116 */ + RTUINT128_INIT_C(0x00041559ee2ebca7, 0xfcaf45b0bd7e236b), RTUINT128_INIT_C(0x000ecd6a500f11c7, 0xc829cd5fe293869a), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x00041559ee2ebca7, 0xfcaf45b0bd7e236b) + }, + { /* i=2259; 67 / 27 */ + RTUINT128_INIT_C(0x0000000000000005, 0xf3e4f2ae0b3f7972), RTUINT128_INIT_C(0x0000000000000000, 0x00000000013abd01), + RTUINT128_INIT_C(0x0000000000000000, 0x000004d77f0c4341), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000d23931) + }, + { /* i=2260; 115 / 49 */ + RTUINT128_INIT_C(0x000252d289779b1e, 0xe60dc5fe9dc0ce4a), RTUINT128_INIT_C(0x0000000000000000, 0x000103ec90b2dd08), + RTUINT128_INIT_C(0x0000000000000002, 0x49d7a49b6b3cfaac), RTUINT128_INIT_C(0x0000000000000000, 0x00007d9893da7cea) + }, + { /* i=2261; 125 / 123 */ + RTUINT128_INIT_C(0x03bebd31c7a235bd, 0x87ccf6ee2a26c312), RTUINT128_INIT_C(0x00f9b5b38ff89cc3, 0x780f6b87c3a1b446), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000003), RTUINT128_INIT_C(0x00d19c1717b85f73, 0x1f9eb456df41a640) + }, + { /* i=2262; 86 / 30 */ + RTUINT128_INIT_C(0x000000000012f78c, 0xd108c62256c30029), RTUINT128_INIT_C(0x0000000000000000, 0x000000000b2aeae1), + RTUINT128_INIT_C(0x0000000000000000, 0x01b2c987dab09f97), RTUINT128_INIT_C(0x0000000000000000, 0x0000000003e0b672) + }, + { /* i=2263; 120 / 10 */ + RTUINT128_INIT_C(0x00004b0b802108d1, 0x18515602251e0c8d), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000297), + RTUINT128_INIT_C(0x0000001cfa03e93b, 0x646dc8244c822b43), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000208) + }, + { /* i=2264; 123 / 107 */ + RTUINT128_INIT_C(0x00f18b7d0df8c504, 0xe7b1a255931cb86a), RTUINT128_INIT_C(0x000006ff0f202c65, 0x0eb0cc0ac76ac55e), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000002286), RTUINT128_INIT_C(0x000001f8dd3c1c2b, 0xbc0d66350302ed36) + }, + { /* i=2265; 117 / 101 */ + RTUINT128_INIT_C(0x000741a90079be14, 0x2ee6b1c0bdea814a), RTUINT128_INIT_C(0x00000011b4b7d990, 0x2bc025a35923665a), + RTUINT128_INIT_C(0x0000000000000000, 0x00000000000068ea), RTUINT128_INIT_C(0x0000000f200a4e86, 0x21f9ee3ae1fa6306) + }, + { /* i=2266; 117 / 114 */ + RTUINT128_INIT_C(0x0015620a8e5470bf, 0x945a3685c1e1cf7c), RTUINT128_INIT_C(0x0001ca570ab77805, 0x4c68b0e55d217970), + RTUINT128_INIT_C(0x0000000000000000, 0x000000000000000b), RTUINT128_INIT_C(0x0001b04d18724885, 0x4bda9caac17197ac) + }, + { /* i=2267; 116 / 118 */ + RTUINT128_INIT_C(0x00066d9ca1210bef, 0x2dce9e8364fd32e7), RTUINT128_INIT_C(0x002d77026bfadaef, 0xfb474b5ce440802f), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x00066d9ca1210bef, 0x2dce9e8364fd32e7) + }, + { /* i=2268; 117 / 57 */ + RTUINT128_INIT_C(0x001d9a0ab9f48448, 0x8494f7ba601c1a22), RTUINT128_INIT_C(0x0000000000000000, 0x01927a034f5ce8fa), + RTUINT128_INIT_C(0x0000000000000000, 0x12d41a5da7aa87d5), RTUINT128_INIT_C(0x0000000000000000, 0x00f35d9f8cee6c20) + }, + { /* i=2269; 98 / 88 */ + RTUINT128_INIT_C(0x000000017b4f19f0, 0x1079bbd443bfce0a), RTUINT128_INIT_C(0x0000000000e61d90, 0xe4352a2ea3152539), + RTUINT128_INIT_C(0x0000000000000000, 0x00000000000001a5), RTUINT128_INIT_C(0x0000000000e07aa8, 0xc50b5d2211f9974d) + }, + { /* i=2270; 115 / 32 */ + RTUINT128_INIT_C(0x000514d15048c7bc, 0xd523ccc9828214f0), RTUINT128_INIT_C(0x0000000000000000, 0x000000004fb154eb), + RTUINT128_INIT_C(0x00000000001052aa, 0xe955d2748da9dbee), RTUINT128_INIT_C(0x0000000000000000, 0x0000000039dd1976) + }, + { /* i=2271; 119 / 111 */ + RTUINT128_INIT_C(0x005b74adcd33be73, 0xe30867ac22d91679), RTUINT128_INIT_C(0x00006b974689203d, 0x1ced392276d05b6a), + RTUINT128_INIT_C(0x0000000000000000, 0x00000000000000d9), RTUINT128_INIT_C(0x0000417302f76aa6, 0x5df2f9756c3b999f) + }, + { /* i=2272; 110 / 13 */ + RTUINT128_INIT_C(0x0000107a3f84e180, 0xb285819bd5f9107d), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000001633), + RTUINT128_INIT_C(0x00000000be0492b6, 0x256b8cbf9c59761d), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000ab6) + }, + { /* i=2273; 48 / 66 */ + RTUINT128_INIT_C(0x0000000000000000, 0x000032f4dd3887ad), RTUINT128_INIT_C(0x0000000000000003, 0x5f3dc645884665e0), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x0000000000000000, 0x000032f4dd3887ad) + }, + { /* i=2274; 113 / 124 */ + RTUINT128_INIT_C(0x0001d1787455253f, 0x15d3165bcdcbafdf), RTUINT128_INIT_C(0x0255fcd7961ade56, 0x5799b7162ceaddaf), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x0001d1787455253f, 0x15d3165bcdcbafdf) + }, + { /* i=2275; 99 / 40 */ + RTUINT128_INIT_C(0x0000000298b6994b, 0x564ce08cd0307ab9), RTUINT128_INIT_C(0x0000000000000000, 0x000000c707170d84), + RTUINT128_INIT_C(0x0000000000000000, 0x0356fd52d0a0147e), RTUINT128_INIT_C(0x0000000000000000, 0x0000005dd34983c1) + }, + { /* i=2276; 104 / 97 */ + RTUINT128_INIT_C(0x000000541b8be28b, 0x466db7b06bf1d953), RTUINT128_INIT_C(0x000000001f6df9c2, 0x91e2766a43f84dc0), + RTUINT128_INIT_C(0x0000000000000000, 0x00000000000002ad), RTUINT128_INIT_C(0x00000000024694ea, 0xeb76dd588c89ce93) + }, + { /* i=2277; 123 / 15 */ + RTUINT128_INIT_C(0x067cdf093a448144, 0xc32e078438832d11), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000140), + RTUINT128_INIT_C(0x000530b26dc836cd, 0xd09c24d2d02d35bd), RTUINT128_INIT_C(0x0000000000000000, 0x00000000000000d1) + }, + { /* i=2278; 116 / 113 */ + RTUINT128_INIT_C(0x0001823e9fe05f92, 0x5fd41eb61873dce6), RTUINT128_INIT_C(0x0001086b4e054d76, 0x682d3c176154cfdc), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000001), RTUINT128_INIT_C(0x000079d351db121b, 0xf7a6e29eb71f0d0a) + }, + { /* i=2279; 96 / 25 */ + RTUINT128_INIT_C(0x0000000025048d4a, 0xa722666633b6e7a4), RTUINT128_INIT_C(0x0000000000000000, 0x0000000001f66a05), + RTUINT128_INIT_C(0x0000000000000012, 0xdcae2cfd80cb066f), RTUINT128_INIT_C(0x0000000000000000, 0x00000000016bd179) + }, + { /* i=2280; 103 / 42 */ + RTUINT128_INIT_C(0x0000002910592e71, 0x4f189729bed41ab3), RTUINT128_INIT_C(0x0000000000000000, 0x0000030a43867128), + RTUINT128_INIT_C(0x0000000000000000, 0x0d81e759ce65e410), RTUINT128_INIT_C(0x0000000000000000, 0x00000060f4dd6833) + }, + { /* i=2281; 123 / 83 */ + RTUINT128_INIT_C(0x0384c3c217b9073a, 0x5400749783962820), RTUINT128_INIT_C(0x00000000000740bd, 0x3f1c171d97edbc7f), + RTUINT128_INIT_C(0x0000000000000000, 0x0000007c31a5e80d), RTUINT128_INIT_C(0x000000000005fc8f, 0x8351bb948cd57dad) + }, + { /* i=2282; 120 / 114 */ + RTUINT128_INIT_C(0x00bcae9075e88355, 0x483d19ace879eed4), RTUINT128_INIT_C(0x0002bb27777b4074, 0xd5276f6ca8591a2c), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000045), RTUINT128_INIT_C(0x00003ced41b023d7, 0xd49c11638875e0f8) + }, + { /* i=2283; 95 / 7 */ + RTUINT128_INIT_C(0x00000000611e995d, 0x49e7cfe14930d1c8), RTUINT128_INIT_C(0x0000000000000000, 0x000000000000006d), + RTUINT128_INIT_C(0x0000000000e418e4, 0xac20a8a8d1b2f17b), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000069) + }, + { /* i=2284; 112 / 41 */ + RTUINT128_INIT_C(0x0000da6592e1a615, 0xf0762c27aaa9a7f8), RTUINT128_INIT_C(0x0000000000000000, 0x000000067ee5b6a2), + RTUINT128_INIT_C(0x000000000000219f, 0x2d359124b91295fb), RTUINT128_INIT_C(0x0000000000000000, 0x00000003a2bf4d22) + }, + { /* i=2285; 11 / 3 */ + RTUINT128_INIT_C(0x0000000000000000, 0x00000000000006a2), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000001), + RTUINT128_INIT_C(0x0000000000000000, 0x00000000000006a2), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000) + }, + { /* i=2286; 115 / 23 */ + RTUINT128_INIT_C(0x00025a2c4060946c, 0x80872efac80c2399), RTUINT128_INIT_C(0x0000000000000000, 0x00000000001d1060), + RTUINT128_INIT_C(0x0000000014b808a6, 0x2bb3e45f4bcf7ef9), RTUINT128_INIT_C(0x0000000000000000, 0x000000000017f639) + }, + { /* i=2287; 125 / 86 */ + RTUINT128_INIT_C(0x14e3afdd1a3293f2, 0x21a2adf9b3b278b4), RTUINT128_INIT_C(0x00000000002c651b, 0x7088b8b26a4c80ff), + RTUINT128_INIT_C(0x0000000000000000, 0x000000787504917e), RTUINT128_INIT_C(0x0000000000217385, 0x0c7fa0457dfe8c32) + }, + { /* i=2288; 103 / 78 */ + RTUINT128_INIT_C(0x000000113681f7db, 0xa76414a66aa53b74), RTUINT128_INIT_C(0x0000000000003b93, 0x5e5032adbd1532e7), + RTUINT128_INIT_C(0x0000000000000000, 0x000000000049f703), RTUINT128_INIT_C(0x0000000000003043, 0xb802f0223b69c1bf) + }, + { /* i=2289; 55 / 25 */ + RTUINT128_INIT_C(0x0000000000000000, 0x00640a948cbed8c3), RTUINT128_INIT_C(0x0000000000000000, 0x00000000015abe16), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000049dc4a82), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000cff597) + }, + { /* i=2290; 51 / 12 */ + RTUINT128_INIT_C(0x0000000000000000, 0x0000d053d46d859f), RTUINT128_INIT_C(0x0000000000000000, 0x000000000000083b), + RTUINT128_INIT_C(0x0000000000000000, 0x000000194fcdfe7b), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000746) + }, + { /* i=2291; 95 / 26 */ + RTUINT128_INIT_C(0x000000001150770d, 0xe1322964c7a18eb1), RTUINT128_INIT_C(0x0000000000000000, 0x0000000001194f21), + RTUINT128_INIT_C(0x000000000000000f, 0xc1ae3d2b99cd43f8), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000fa43b9) + }, + { /* i=2292; 5 / 7 */ + RTUINT128_INIT_C(0x0000000000000000, 0x000000000000000f), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000066), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x0000000000000000, 0x000000000000000f) + }, + { /* i=2293; 116 / 79 */ + RTUINT128_INIT_C(0x000fde4c43a88f6d, 0x7a658707d88681ae), RTUINT128_INIT_C(0x0000000000000161, 0x0e7c9d5ad6d67cbd), + RTUINT128_INIT_C(0x0000000000000000, 0x00000b818e8f9e2e), RTUINT128_INIT_C(0x0000000000000026, 0x34893adf596c71b8) + }, + { /* i=2294; 92 / 46 */ + RTUINT128_INIT_C(0x000000000c00c98f, 0x1efd3036cd313c22), RTUINT128_INIT_C(0x0000000000000000, 0x0000160b16f71daa), + RTUINT128_INIT_C(0x0000000000000000, 0x00008b65cdb9dc76), RTUINT128_INIT_C(0x0000000000000000, 0x000001f647f177c6) + }, + { /* i=2295; 125 / 69 */ + RTUINT128_INIT_C(0x16c55918112741bc, 0xc155d83b1ef4cff8), RTUINT128_INIT_C(0x000000000000001e, 0x7142f06dcd99fc60), + RTUINT128_INIT_C(0x0000000000000000, 0x00bf7cd4ac1b404f), RTUINT128_INIT_C(0x0000000000000005, 0xca768ea40f37ee58) + }, + { /* i=2296; 122 / 22 */ + RTUINT128_INIT_C(0x0362e9c741c4aea9, 0xf6db999382d10c1f), RTUINT128_INIT_C(0x0000000000000000, 0x00000000002703c1), + RTUINT128_INIT_C(0x00000016385e4c81, 0xd5365fbcac0f388e), RTUINT128_INIT_C(0x0000000000000000, 0x00000000000bbf11) + }, + { /* i=2297; 96 / 9 */ + RTUINT128_INIT_C(0x00000000e7e24026, 0x1122b0d61b73ba02), RTUINT128_INIT_C(0x0000000000000000, 0x00000000000000aa), + RTUINT128_INIT_C(0x00000000015d3090, 0xc9e397a0e20b38cf), RTUINT128_INIT_C(0x0000000000000000, 0x000000000000008c) + }, + { /* i=2298; 116 / 105 */ + RTUINT128_INIT_C(0x000296cb457f4900, 0xfab20bb50c36f20c), RTUINT128_INIT_C(0x0000011659437c79, 0xfc91e55b791c1586), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000261), RTUINT128_INIT_C(0x000000a0ebf42acf, 0x239f6d19f067be46) + }, + { /* i=2299; 121 / 27 */ + RTUINT128_INIT_C(0x00dac49699f3064d, 0x94befa4c4785131d), RTUINT128_INIT_C(0x0000000000000000, 0x0000000006ea161e), + RTUINT128_INIT_C(0x000000001fa3b40a, 0xe3cb90417209164a), RTUINT128_INIT_C(0x0000000000000000, 0x0000000006e61a71) + }, + { /* i=2300; 125 / 62 */ + RTUINT128_INIT_C(0x11d2e68d956db3af, 0xbf9c78281d10e6d4), RTUINT128_INIT_C(0x0000000000000000, 0x230ec63d45918373), + RTUINT128_INIT_C(0x0000000000000000, 0x82276adc2bb6871f), RTUINT128_INIT_C(0x0000000000000000, 0x0609abb12f5e56e7) + }, + { /* i=2301; 59 / 33 */ + RTUINT128_INIT_C(0x0000000000000000, 0x045ce18485d16352), RTUINT128_INIT_C(0x0000000000000000, 0x000000008de44b0d), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000007df1152), RTUINT128_INIT_C(0x0000000000000000, 0x000000002e627c28) + }, + { /* i=2302; 75 / 75 */ + RTUINT128_INIT_C(0x000000000000041d, 0x6e38bcc8105146e4), RTUINT128_INIT_C(0x000000000000004f, 0xb9617fe329c4e5cf), + RTUINT128_INIT_C(0x0000000000000000, 0x000000000000000d), RTUINT128_INIT_C(0x0000000000000011, 0x04453e3ef1519b61) + }, + { /* i=2303; 56 / 47 */ + RTUINT128_INIT_C(0x0000000000000000, 0x00c6904f5626a8ca), RTUINT128_INIT_C(0x0000000000000000, 0x00005f6b4f893588), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000214), RTUINT128_INIT_C(0x0000000000000000, 0x0000454e0d036a2a) + }, + { /* i=2304; 57 / 91 */ + RTUINT128_INIT_C(0x0000000000000000, 0x01fbdb09a942fe2d), RTUINT128_INIT_C(0x0000000001240cf1, 0xdf7d643439f8667e), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x0000000000000000, 0x01fbdb09a942fe2d) + }, + { /* i=2305; 126 / 107 */ + RTUINT128_INIT_C(0x00002f216efa48b4, 0x9fdb8472e5f8ac6d), RTUINT128_INIT_C(0x00000700f4321409, 0xd06ab34ba2cc1502), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000006), RTUINT128_INIT_C(0x0000051bb5cdd079, 0xbd5b50ad15302e61) + }, + { /* i=2306; 120 / 20 */ + RTUINT128_INIT_C(0x00bd6dbe0bf4f971, 0x54013dbc95701dfa), RTUINT128_INIT_C(0x0000000000000000, 0x000000000002071d), + RTUINT128_INIT_C(0x0000005d6a9f4e62, 0x34712594765764e3), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000017b43) + }, + { /* i=2307; 120 / 33 */ + RTUINT128_INIT_C(0x00da20701bc08949, 0x67705bd8fe7e16e8), RTUINT128_INIT_C(0x0000000000000000, 0x0000000164479e61), + RTUINT128_INIT_C(0x00000000009cbb64, 0x141a064955d4ca1e), RTUINT128_INIT_C(0x0000000000000000, 0x000000005dccfd8a) + }, + { /* i=2308; 126 / 120 */ + RTUINT128_INIT_C(0x00a412e910eed42e, 0x16602121ee6c4121), RTUINT128_INIT_C(0x00f219c2cd136d40, 0x93c41e6c0e147729), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x00a412e910eed42e, 0x16602121ee6c4121) + }, + { /* i=2309; 99 / 78 */ + RTUINT128_INIT_C(0x00000002b69c89d4, 0x3b939e03e73d4a24), RTUINT128_INIT_C(0x0000000000001b0d, 0xfb6126d8eab1b327), + RTUINT128_INIT_C(0x0000000000000000, 0x000000000019aca6), RTUINT128_INIT_C(0x0000000000000d61, 0x294bc451d4d5eada) + }, + { /* i=2310; 60 / 14 */ + RTUINT128_INIT_C(0x0000000000000000, 0x05b8cb6a26ee420b), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000002c5b), + RTUINT128_INIT_C(0x0000000000000000, 0x0000210624418982), RTUINT128_INIT_C(0x0000000000000000, 0x00000000000008d5) + }, + { /* i=2311; 107 / 26 */ + RTUINT128_INIT_C(0x00000056ca81f112, 0xa9689439a59e400c), RTUINT128_INIT_C(0x0000000000000000, 0x0000000003718084), + RTUINT128_INIT_C(0x0000000000001934, 0x8d6a6dfe1f08e9f8), RTUINT128_INIT_C(0x0000000000000000, 0x0000000001919c2c) + }, + { /* i=2312; 123 / 86 */ + RTUINT128_INIT_C(0x0578f0c4e04dec60, 0x8231b5ae23c2f9c9), RTUINT128_INIT_C(0x00000000003275ac, 0x4a52f13efde3f61a), + RTUINT128_INIT_C(0x0000000000000000, 0x0000001bc379940c), RTUINT128_INIT_C(0x00000000001d0cb9, 0x49a061ff52826891) + }, + { /* i=2313; 113 / 3 */ + RTUINT128_INIT_C(0x0000c0bdffa9f87c, 0xfb05663feb33c2df), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000005), + RTUINT128_INIT_C(0x0000268c665531b2, 0x989aae0cc8a3f3c6), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000001) + }, + { /* i=2314; 123 / 70 */ + RTUINT128_INIT_C(0x079e9bfeb72fba72, 0x3befecac98b7534b), RTUINT128_INIT_C(0x0000000000000002, 0x252abad1468398f1), + RTUINT128_INIT_C(0x0000000000000000, 0x038d4c1c49a28124), RTUINT128_INIT_C(0x0000000000000001, 0xbcb6c676dca26067) + }, + { /* i=2315; 125 / 124 */ + RTUINT128_INIT_C(0x13423c0b31144e8e, 0x86d4c16cce32c0ab), RTUINT128_INIT_C(0x0c44a08bca7f03e1, 0xa1033c601c315148), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000001), RTUINT128_INIT_C(0x06fd9b7f66954aac, 0xe5d1850cb2016f63) + }, + { /* i=2316; 128 / 25 */ + RTUINT128_INIT_C(0x6cbae57a5562573a, 0x88636c89effb29ec), RTUINT128_INIT_C(0x0000000000000000, 0x000000000004525d), + RTUINT128_INIT_C(0x00001928ae746ab9, 0xff754a3fc1d2c123), RTUINT128_INIT_C(0x0000000000000000, 0x000000000001ca35) + }, + { /* i=2317; 125 / 70 */ + RTUINT128_INIT_C(0x1fc1b1b3d96e876d, 0xa732ad671ad974c5), RTUINT128_INIT_C(0x0000000000000023, 0xa3a20a0a93de55fa), + RTUINT128_INIT_C(0x0000000000000000, 0x00e41c6f42525e56), RTUINT128_INIT_C(0x000000000000001a, 0x3c1a1cc5cc82c6c9) + }, + { /* i=2318; 123 / 32 */ + RTUINT128_INIT_C(0x065587268cc6a153, 0xeb0dc6f6f546daae), RTUINT128_INIT_C(0x0000000000000000, 0x00000000278d1b6d), + RTUINT128_INIT_C(0x0000000028ff89ed, 0x73cc043990a5aa5c), RTUINT128_INIT_C(0x0000000000000000, 0x000000000d199d82) + }, + { /* i=2319; 40 / 25 */ + RTUINT128_INIT_C(0x0000000000000000, 0x00000048d1c3754e), RTUINT128_INIT_C(0x0000000000000000, 0x00000000005a3118), + RTUINT128_INIT_C(0x0000000000000000, 0x000000000000ceb0), RTUINT128_INIT_C(0x0000000000000000, 0x00000000004064ce) + }, + { /* i=2320; 59 / 65 */ + RTUINT128_INIT_C(0x0000000000000000, 0x06cbc128e2873a25), RTUINT128_INIT_C(0x0000000000000000, 0xb7bc5c5df2a246a0), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x0000000000000000, 0x06cbc128e2873a25) + }, + { /* i=2321; 120 / 99 */ + RTUINT128_INIT_C(0x008252ab4e31773e, 0xa741b82f4a2221df), RTUINT128_INIT_C(0x00000004a745f2ce, 0xebdc452a06842939), + RTUINT128_INIT_C(0x0000000000000000, 0x00000000001c0182), RTUINT128_INIT_C(0x0000000088178f27, 0x7488b85cf49ff9ed) + }, + { /* i=2322; 114 / 123 */ + RTUINT128_INIT_C(0x0002725c256f49ee, 0x004209beda3fa7b6), RTUINT128_INIT_C(0x02de981b8f6069f8, 0x9138b67ebb31be1e), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x0002725c256f49ee, 0x004209beda3fa7b6) + }, + { /* i=2323; 125 / 57 */ + RTUINT128_INIT_C(0x1a568af731ad56d9, 0x4959ab07f787ed4b), RTUINT128_INIT_C(0x0000000000000000, 0x0031ba852850a291), + RTUINT128_INIT_C(0x0000000000000087, 0x963afa778339638f), RTUINT128_INIT_C(0x0000000000000000, 0x00129383de560b4c) + }, + { /* i=2324; 79 / 19 */ + RTUINT128_INIT_C(0x0000000000006233, 0xb72f927092492313), RTUINT128_INIT_C(0x0000000000000000, 0x000000000000ab9f), + RTUINT128_INIT_C(0x0000000000000000, 0x927bdc743f3c5390), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000ca3) + }, + { /* i=2325; 120 / 69 */ + RTUINT128_INIT_C(0x0026753ee229aa1c, 0x828680c893de812e), RTUINT128_INIT_C(0x0000000000000013, 0xdbf2320950c1a2e0), + RTUINT128_INIT_C(0x0000000000000000, 0x0001efc0d6325673), RTUINT128_INIT_C(0x0000000000000008, 0xcd6df97f306b168e) + }, + { /* i=2326; 124 / 36 */ + RTUINT128_INIT_C(0x0dfa7f76a28e7575, 0xe30871276499c72b), RTUINT128_INIT_C(0x0000000000000000, 0x00000005d82f9f5d), + RTUINT128_INIT_C(0x0000000002644982, 0x0cef813bd7bf4454), RTUINT128_INIT_C(0x0000000000000000, 0x00000001cd41c8a7) + }, + { /* i=2327; 108 / 5 */ + RTUINT128_INIT_C(0x00000200844973bd, 0x061af034174fb2ec), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000018), + RTUINT128_INIT_C(0x000000155ad864d2, 0x8aebca022ba3521f), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000004) + }, + { /* i=2328; 58 / 45 */ + RTUINT128_INIT_C(0x0000000000000000, 0x026bf9747a75ee41), RTUINT128_INIT_C(0x0000000000000000, 0x000001524dfc24ba), + RTUINT128_INIT_C(0x0000000000000000, 0x000000000001d524), RTUINT128_INIT_C(0x0000000000000000, 0x0000010293b80219) + }, + { /* i=2329; 126 / 38 */ + RTUINT128_INIT_C(0x0cbbd5b4322c3142, 0xb0a154fe90247cc7), RTUINT128_INIT_C(0x0000000000000000, 0x00000036808e9007), + RTUINT128_INIT_C(0x00000000003bcfa3, 0xea40e7ed4003be5f), RTUINT128_INIT_C(0x0000000000000000, 0x000000329c42d82e) + }, + { /* i=2330; 91 / 59 */ + RTUINT128_INIT_C(0x00000000027c6566, 0xb8c651caeef5c182), RTUINT128_INIT_C(0x0000000000000000, 0x04e0f3a8e429d0ab), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000082717c80), RTUINT128_INIT_C(0x0000000000000000, 0x00dcbc68a77f9802) + }, + { /* i=2331; 59 / 45 */ + RTUINT128_INIT_C(0x0000000000000000, 0x05464430be75f102), RTUINT128_INIT_C(0x0000000000000000, 0x00000b12b3868b3d), + RTUINT128_INIT_C(0x0000000000000000, 0x00000000000079f1), RTUINT128_INIT_C(0x0000000000000000, 0x000000bb24fd0795) + }, + { /* i=2332; 77 / 47 */ + RTUINT128_INIT_C(0x000000000000087c, 0x7fe1a95eac4c6966), RTUINT128_INIT_C(0x0000000000000000, 0x00005aea97853b7c), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000017e544c1), RTUINT128_INIT_C(0x0000000000000000, 0x00004bbcb321a0ea) + }, + { /* i=2333; 89 / 66 */ + RTUINT128_INIT_C(0x0000000001825f4d, 0x22a8f13680cfd2c7), RTUINT128_INIT_C(0x0000000000000003, 0xd7a41ba83e4db0b0), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000648e69), RTUINT128_INIT_C(0x0000000000000001, 0xdb49f04cd630ba97) + }, + { /* i=2334; 124 / 62 */ + RTUINT128_INIT_C(0x065b26ffc59bfa21, 0x4ffa1c0e83b24aea), RTUINT128_INIT_C(0x0000000000000000, 0x3a2966a1ad40d58f), + RTUINT128_INIT_C(0x0000000000000000, 0x1bf9f1ab4e61efd7), RTUINT128_INIT_C(0x0000000000000000, 0x19e64d5efdaf6ed1) + }, + { /* i=2335; 53 / 1 */ + RTUINT128_INIT_C(0x0000000000000000, 0x001145e5d8c5f59f), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000001), + RTUINT128_INIT_C(0x0000000000000000, 0x001145e5d8c5f59f), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000) + }, + { /* i=2336; 119 / 107 */ + RTUINT128_INIT_C(0x004871a89a503a43, 0x8311e01cb27350a3), RTUINT128_INIT_C(0x000001fe34355f3d, 0x5ae6c77ee849db96), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000002459), RTUINT128_INIT_C(0x000000f0f25d7d26, 0x74c8ac538de4e17d) + }, + { /* i=2337; 125 / 13 */ + RTUINT128_INIT_C(0x0c3ea8bfa15ab22f, 0xdf004759b04d1972), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000886), + RTUINT128_INIT_C(0x00016fc4f4ed9f2c, 0x22b67031ab41807b), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000110) + }, + { /* i=2338; 37 / 84 */ + RTUINT128_INIT_C(0x0000000000000000, 0x00000018a76cae4a), RTUINT128_INIT_C(0x000000000003923a, 0xc44870807c4d966d), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x0000000000000000, 0x00000018a76cae4a) + }, + { /* i=2339; 124 / 107 */ + RTUINT128_INIT_C(0x0bd196d915c59589, 0x4573a811ec04ce4f), RTUINT128_INIT_C(0x000005a11150584c, 0x83c30ea694ba194a), + RTUINT128_INIT_C(0x0000000000000000, 0x000000000002197b), RTUINT128_INIT_C(0x000005243af2a861, 0xcd00300e178e6dc1) + }, + { /* i=2340; 110 / 99 */ + RTUINT128_INIT_C(0x0000320e6147fc42, 0x27e8cfe727da0df5), RTUINT128_INIT_C(0x000000057a982833, 0xbcf85dc4ba604e37), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000922), RTUINT128_INIT_C(0x00000004bfa8d3be, 0x53a07139044fbba7) + }, + { /* i=2341; 118 / 66 */ + RTUINT128_INIT_C(0x0010f0a4c43241eb, 0xd743b0765d869d96), RTUINT128_INIT_C(0x0000000000000002, 0x13dad2cbd2810a85), + RTUINT128_INIT_C(0x0000000000000000, 0x0008276030ee0b46), RTUINT128_INIT_C(0x0000000000000000, 0xe4432fde8b240638) + }, + { /* i=2342; 114 / 114 */ + RTUINT128_INIT_C(0x00005b6e64d8270e, 0xe0532fc6a2ccc25f), RTUINT128_INIT_C(0x00013e49e5a5d827, 0x66c473176a3d55e8), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x00005b6e64d8270e, 0xe0532fc6a2ccc25f) + }, + { /* i=2343; 81 / 73 */ + RTUINT128_INIT_C(0x000000000000e927, 0x5d7cf29c44d288a2), RTUINT128_INIT_C(0x0000000000000032, 0x28e4a5e434f97386), + RTUINT128_INIT_C(0x0000000000000000, 0x00000000000004a5), RTUINT128_INIT_C(0x000000000000002f, 0x6f8675b23a3cfb44) + }, + { /* i=2344; 99 / 50 */ + RTUINT128_INIT_C(0x000000076bfce7f3, 0xfdf395fab88422fd), RTUINT128_INIT_C(0x0000000000000000, 0x00027316273db210), + RTUINT128_INIT_C(0x0000000000000000, 0x000307a54559cb3d), RTUINT128_INIT_C(0x0000000000000000, 0x00021ed43b0e052d) + }, + { /* i=2345; 98 / 74 */ + RTUINT128_INIT_C(0x0000000218f017d5, 0x4ece925a34e4b048), RTUINT128_INIT_C(0x0000000000000253, 0x071da8b65ef96c8a), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000e70202), RTUINT128_INIT_C(0x000000000000015d, 0xc8b2211e9392c334) + }, + { /* i=2346; 90 / 70 */ + RTUINT128_INIT_C(0x0000000002e6aed7, 0xc109e79f243c3489), RTUINT128_INIT_C(0x0000000000000027, 0xdb5292fda06625c2), + RTUINT128_INIT_C(0x0000000000000000, 0x000000000012a241), RTUINT128_INIT_C(0x0000000000000020, 0x7a38ce8a1ec3da47) + }, + { /* i=2347; 68 / 46 */ + RTUINT128_INIT_C(0x000000000000000a, 0x13712a9bf1965dc8), RTUINT128_INIT_C(0x0000000000000000, 0x0000035a0fea461d), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000003019166), RTUINT128_INIT_C(0x0000000000000000, 0x000002f94b6b013a) + }, + { /* i=2348; 77 / 59 */ + RTUINT128_INIT_C(0x0000000000001714, 0x8f4c4570ff1db1eb), RTUINT128_INIT_C(0x0000000000000000, 0x07070849d00a9f0f), + RTUINT128_INIT_C(0x0000000000000000, 0x00000000000348c7), RTUINT128_INIT_C(0x0000000000000000, 0x05a2a16d6cf2d542) + }, + { /* i=2349; 126 / 50 */ + RTUINT128_INIT_C(0x0cdd19929a48c5b5, 0x51c92a5f1f2c8c0f), RTUINT128_INIT_C(0x0000000000000000, 0x0001066be528cbf5), + RTUINT128_INIT_C(0x0000000000000c8c, 0x84808304cd10bc4e), RTUINT128_INIT_C(0x0000000000000000, 0x00006c8166a67b69) + }, + { /* i=2350; 116 / 119 */ + RTUINT128_INIT_C(0x0007524c52e6fab0, 0x522c66124543ae14), RTUINT128_INIT_C(0x00220ba54e7a6b09, 0x02fce0eefaaaab5f), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x0007524c52e6fab0, 0x522c66124543ae14) + }, + { /* i=2351; 121 / 6 */ + RTUINT128_INIT_C(0x0164cc6700a13736, 0x159eaa1d26832b0b), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000021), + RTUINT128_INIT_C(0x000acfe4174ab418, 0xe961e61fe9e4f1ca), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000001) + }, + { /* i=2352; 124 / 95 */ + RTUINT128_INIT_C(0x057a584f54f4a526, 0x700d9d04def576fe), RTUINT128_INIT_C(0x000000004d38f021, 0x6201da2e12e9b8e8), + RTUINT128_INIT_C(0x0000000000000000, 0x000000001228e9cf), RTUINT128_INIT_C(0x000000003340a653, 0x2c72df07a66dcb66) + }, + { /* i=2353; 53 / 19 */ + RTUINT128_INIT_C(0x0000000000000000, 0x0013857231dd5d40), RTUINT128_INIT_C(0x0000000000000000, 0x000000000002fabc), + RTUINT128_INIT_C(0x0000000000000000, 0x000000068d50c50e), RTUINT128_INIT_C(0x0000000000000000, 0x000000000000faf8) + }, + { /* i=2354; 83 / 50 */ + RTUINT128_INIT_C(0x0000000000067581, 0x156859302ed149b3), RTUINT128_INIT_C(0x0000000000000000, 0x0000eabb74698b14), + RTUINT128_INIT_C(0x0000000000000000, 0x000000070b51a08b), RTUINT128_INIT_C(0x0000000000000000, 0x000090bb254245d7) + }, + { /* i=2355; 66 / 16 */ + RTUINT128_INIT_C(0x0000000000000000, 0x9583040616cb748c), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000008715), + RTUINT128_INIT_C(0x0000000000000000, 0x00011b58b1c62ca2), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000005d42) + }, + { /* i=2356; 3 / 10 */ + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000003), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000175), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000003) + }, + { /* i=2357; 126 / 104 */ + RTUINT128_INIT_C(0x1c080bdfa84def21, 0xbb73fd6606d6e31c), RTUINT128_INIT_C(0x000000def0ce5e86, 0x794f36e38b4f1442), + RTUINT128_INIT_C(0x0000000000000000, 0x000000000020302a), RTUINT128_INIT_C(0x00000059a3ea0c6c, 0x1db8e80fcfd13048) + }, + { /* i=2358; 85 / 72 */ + RTUINT128_INIT_C(0x000000000017a29a, 0x8fdc99413634a431), RTUINT128_INIT_C(0x0000000000000009, 0x95eb7e9edde3a0a0), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000027737), RTUINT128_INIT_C(0x0000000000000003, 0xe52ad0337962c1d1) + }, + { /* i=2359; 116 / 39 */ + RTUINT128_INIT_C(0x0005a870cf83cd07, 0x3f263c66c969c015), RTUINT128_INIT_C(0x0000000000000000, 0x000000316fb9c36a), + RTUINT128_INIT_C(0x0000000000001d4c, 0x8eea5b37285a3f88), RTUINT128_INIT_C(0x0000000000000000, 0x00000007745ed9c5) + }, + { /* i=2360; 76 / 47 */ + RTUINT128_INIT_C(0x0000000000000df0, 0x1a2a400366ee8acd), RTUINT128_INIT_C(0x0000000000000000, 0x0000090566b09fe8), + RTUINT128_INIT_C(0x0000000000000000, 0x000000018b87516d), RTUINT128_INIT_C(0x0000000000000000, 0x000005597fca0d05) + }, + { /* i=2361; 115 / 95 */ + RTUINT128_INIT_C(0x0000d43300e3fbd4, 0x1aa1f718cd308abe), RTUINT128_INIT_C(0x00000000017bc1a5, 0x836a51f35ec97ef2), + RTUINT128_INIT_C(0x0000000000000000, 0x00000000008f0c05), RTUINT128_INIT_C(0x0000000000f1090b, 0xc6c50258981fb804) + }, + { /* i=2362; 70 / 70 */ + RTUINT128_INIT_C(0x0000000000000024, 0x9414c092881c574d), RTUINT128_INIT_C(0x000000000000000b, 0x5d3b143871eb5dd1), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000003), RTUINT128_INIT_C(0x0000000000000002, 0x7c6383e9325a3dda) + }, + { /* i=2363; 123 / 76 */ + RTUINT128_INIT_C(0x0201464ddd6fafc0, 0xbe5d58664d5367e4), RTUINT128_INIT_C(0x0000000000000927, 0xc53f0f10c6be7538), + RTUINT128_INIT_C(0x0000000000000000, 0x0000381012c23d4b), RTUINT128_INIT_C(0x00000000000001bb, 0x40115b0ded28b87c) + }, + { /* i=2364; 103 / 65 */ + RTUINT128_INIT_C(0x000000759f33fb44, 0x0a5a146786bafffe), RTUINT128_INIT_C(0x0000000000000001, 0xd30fd1ef2cca0e95), + RTUINT128_INIT_C(0x0000000000000000, 0x00000040782be4c8), RTUINT128_INIT_C(0x0000000000000001, 0x7c562ba248dbe796) + }, + { /* i=2365; 114 / 5 */ + RTUINT128_INIT_C(0x0001f6137678343e, 0x1a6bd9fe1c5aad3d), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000012), + RTUINT128_INIT_C(0x00001be4a306ad91, 0xac226faa8fcc2611), RTUINT128_INIT_C(0x0000000000000000, 0x000000000000000b) + }, + { /* i=2366; 118 / 44 */ + RTUINT128_INIT_C(0x0034d6d58020d44d, 0x7fa4086144aab2c6), RTUINT128_INIT_C(0x0000000000000000, 0x0000006d2c4dfbf8), + RTUINT128_INIT_C(0x0000000000007be7, 0x153ac4ae23c166c9), RTUINT128_INIT_C(0x0000000000000000, 0x000000348b130d0e) + }, + { /* i=2367; 94 / 43 */ + RTUINT128_INIT_C(0x000000001f068486, 0xbcbe7da90a6482a8), RTUINT128_INIT_C(0x0000000000000000, 0x0000007eea667d67), + RTUINT128_INIT_C(0x0000000000000000, 0x003e94c207068051), RTUINT128_INIT_C(0x0000000000000000, 0x0000006adfd95511) + }, + { /* i=2368; 64 / 62 */ + RTUINT128_INIT_C(0x0000000000000000, 0x02b8cae53d304d2d), RTUINT128_INIT_C(0x0000000000000000, 0x24345cd273089199), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x0000000000000000, 0x02b8cae53d304d2d) + }, + { /* i=2369; 106 / 106 */ + RTUINT128_INIT_C(0x000000c3b6277ad5, 0x1bd2da7daad2f94e), RTUINT128_INIT_C(0x0000034fcc66185f, 0x462f81de42b22c48), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x000000c3b6277ad5, 0x1bd2da7daad2f94e) + }, + { /* i=2370; 92 / 26 */ + RTUINT128_INIT_C(0x0000000003f96a11, 0x904db9c8b5e51743), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000b5f594), + RTUINT128_INIT_C(0x0000000000000005, 0x9768919db0453253), RTUINT128_INIT_C(0x0000000000000000, 0x00000000000b9047) + }, + { /* i=2371; 75 / 79 */ + RTUINT128_INIT_C(0x000000000000020c, 0x288a01f9f3311f2e), RTUINT128_INIT_C(0x0000000000004696, 0x419aed692c837ebf), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x000000000000020c, 0x288a01f9f3311f2e) + }, + { /* i=2372; 90 / 5 */ + RTUINT128_INIT_C(0x00000000034d3994, 0x0202d31e622402e3), RTUINT128_INIT_C(0x0000000000000000, 0x000000000000001c), + RTUINT128_INIT_C(0x00000000001e2fc5, 0x4936f54115ca6dd1), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000007) + }, + { /* i=2373; 60 / 35 */ + RTUINT128_INIT_C(0x0000000000000000, 0x0225f3738aff087d), RTUINT128_INIT_C(0x0000000000000000, 0x000000005ee0f8e8), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000005cbddc6), RTUINT128_INIT_C(0x0000000000000000, 0x000000000a263d0d) + }, + { /* i=2374; 13 / 9 */ + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000001c80), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000167), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000014), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000074) + }, + { /* i=2375; 113 / 82 */ + RTUINT128_INIT_C(0x000047097b0637af, 0xae1216f9d2e95018), RTUINT128_INIT_C(0x0000000000015952, 0x6f38d5c1cb78b072), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000034a9920d), RTUINT128_INIT_C(0x000000000000b321, 0x2402df9405e5564e) + }, + { /* i=2376; 121 / 119 */ + RTUINT128_INIT_C(0x00de13eb532e804f, 0x3a1a5c5871ec4735), RTUINT128_INIT_C(0x002abba0725b34bf, 0x051dc45ea6bfb0fc), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000005), RTUINT128_INIT_C(0x000869c917667894, 0x2085867f302dd249) + }, + { /* i=2377; 113 / 108 */ + RTUINT128_INIT_C(0x000020c385d637ff, 0x2f6ddc1b6a2b5b09), RTUINT128_INIT_C(0x00000c77cd30b5ec, 0x57ed57063546c331), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000002), RTUINT128_INIT_C(0x000007d3eb74cc26, 0x7f932e0eff9dd4a7) + }, + { /* i=2378; 124 / 91 */ + RTUINT128_INIT_C(0x068183320936d4e4, 0xcca81e69df186099), RTUINT128_INIT_C(0x0000000005e4021c, 0x91f1693658aa819c), + RTUINT128_INIT_C(0x0000000000000000, 0x000000011abcebcc), RTUINT128_INIT_C(0x0000000003d5d0f8, 0xc31e73b9abaee449) + }, + { /* i=2379; 127 / 79 */ + RTUINT128_INIT_C(0x55c32fe95b51135f, 0x4e7f31f83b029eb8), RTUINT128_INIT_C(0x000000000000427f, 0x53c89ccf0683a0d1), + RTUINT128_INIT_C(0x0000000000000000, 0x00014a2a8e845cef), RTUINT128_INIT_C(0x000000000000299b, 0x8e983afcfe905f99) + }, + { /* i=2380; 126 / 95 */ + RTUINT128_INIT_C(0x328aeda0afa3c4d5, 0x66a4136e129b535a), RTUINT128_INIT_C(0x0000000025b31051, 0xfd12073a5f0c7304), + RTUINT128_INIT_C(0x0000000000000000, 0x00000001573665c9), RTUINT128_INIT_C(0x00000000253d1220, 0xdaf8a45ee99c7136) + }, + { /* i=2381; 116 / 60 */ + RTUINT128_INIT_C(0x0005b186ff9dc713, 0x4502277a842438a1), RTUINT128_INIT_C(0x0000000000000000, 0x00013b18fdb533b1), + RTUINT128_INIT_C(0x0000000000000004, 0xa029c5996f268ee2), RTUINT128_INIT_C(0x0000000000000000, 0x0000ca979c3a685f) + }, + { /* i=2382; 66 / 41 */ + RTUINT128_INIT_C(0x0000000000000000, 0x77d7bacb406c1063), RTUINT128_INIT_C(0x0000000000000000, 0x000000dbfacad42d), + RTUINT128_INIT_C(0x0000000000000000, 0x00000000008b7759), RTUINT128_INIT_C(0x0000000000000000, 0x0000009b92d861be) + }, + { /* i=2383; 126 / 121 */ + RTUINT128_INIT_C(0x05c51165c2417ca7, 0x39ca7cf346d28414), RTUINT128_INIT_C(0x00f3b04fd96ee0e4, 0xcefcead2d7b056f1), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000006), RTUINT128_INIT_C(0x000eef86a9a8374a, 0x5fdcfc0238b07a6e) + }, + { /* i=2384; 126 / 57 */ + RTUINT128_INIT_C(0x2893a564b26055c5, 0x1d64b9e1cd7bab1a), RTUINT128_INIT_C(0x0000000000000000, 0x017df00e3973c1d4), + RTUINT128_INIT_C(0x000000000000001b, 0x327d583ca59ba718), RTUINT128_INIT_C(0x0000000000000000, 0x00123e5de7d4333a) + }, + { /* i=2385; 30 / 59 */ + RTUINT128_INIT_C(0x0000000000000000, 0x00000000374f6992), RTUINT128_INIT_C(0x0000000000000000, 0x06eb328b8fbf8eca), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x0000000000000000, 0x00000000374f6992) + }, + { /* i=2386; 121 / 63 */ + RTUINT128_INIT_C(0x015d4dbb57f482d5, 0x089eeac6c845ec0d), RTUINT128_INIT_C(0x0000000000000000, 0x7487f3f8b013c2f9), + RTUINT128_INIT_C(0x0000000000000000, 0x02ff5d2787270548), RTUINT128_INIT_C(0x0000000000000000, 0x220309a1dcf93905) + }, + { /* i=2387; 126 / 107 */ + RTUINT128_INIT_C(0x2958f59f1cf54799, 0x778e4cc2adc8cac1), RTUINT128_INIT_C(0x0000040179924ec9, 0x8fba8c7f018a89a1), + RTUINT128_INIT_C(0x0000000000000000, 0x00000000000a526f), RTUINT128_INIT_C(0x000000537568f0e0, 0xe7b4a3c942578bf2) + }, + { /* i=2388; 126 / 124 */ + RTUINT128_INIT_C(0x20df22817bc1b56e, 0x0d981197219708f2), RTUINT128_INIT_C(0x02e2460a0a21ec29, 0x250f93afda41391e), + RTUINT128_INIT_C(0x0000000000000000, 0x000000000000000b), RTUINT128_INIT_C(0x012620130c4c8fa9, 0x75ecb908c0c994a8) + }, + { /* i=2389; 117 / 48 */ + RTUINT128_INIT_C(0x000f4eb9d648ff4a, 0x68ca8a8644d0d2e4), RTUINT128_INIT_C(0x0000000000000000, 0x000041005bc509c3), + RTUINT128_INIT_C(0x000000000000003c, 0x496b3a3b68a8828c), RTUINT128_INIT_C(0x0000000000000000, 0x00001c8366227640) + }, + { /* i=2390; 87 / 66 */ + RTUINT128_INIT_C(0x0000000000199b4c, 0xf7426d6f522cbf30), RTUINT128_INIT_C(0x0000000000000002, 0xaa738dba2c8ca2a7), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000099b03), RTUINT128_INIT_C(0x0000000000000001, 0x058c7a55ee2cba3b) + }, + { /* i=2391; 114 / 71 */ + RTUINT128_INIT_C(0x0002e9320ecc08e5, 0x6efd53b6fc415307), RTUINT128_INIT_C(0x0000000000000034, 0xb29ae2a78fa784a5), + RTUINT128_INIT_C(0x0000000000000000, 0x00000e2415b87433), RTUINT128_INIT_C(0x0000000000000021, 0xa76693c0962f2228) + }, + { /* i=2392; 123 / 124 */ + RTUINT128_INIT_C(0x005ed9e562fd03a3, 0x42123f5ec2d9be86), RTUINT128_INIT_C(0x05d5eebe7214e327, 0x2d9cc6c1c82adc33), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x005ed9e562fd03a3, 0x42123f5ec2d9be86) + }, + { /* i=2393; 117 / 126 */ + RTUINT128_INIT_C(0x000c336ad3c524ac, 0x51161149ed6c922e), RTUINT128_INIT_C(0x256cb2c707f3d12b, 0xf041535fb0697090), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x000c336ad3c524ac, 0x51161149ed6c922e) + }, + { /* i=2394; 118 / 35 */ + RTUINT128_INIT_C(0x00377595a05688f1, 0x02719552ec9895f2), RTUINT128_INIT_C(0x0000000000000000, 0x00000001897529d4), + RTUINT128_INIT_C(0x000000000024158a, 0xac60dd9f3d33d648), RTUINT128_INIT_C(0x0000000000000000, 0x0000000179719a52) + }, + { /* i=2395; 110 / 34 */ + RTUINT128_INIT_C(0x0000111a8ce0c34a, 0x539d992ea66099fd), RTUINT128_INIT_C(0x0000000000000000, 0x00000000fb433e93), + RTUINT128_INIT_C(0x000000000000116d, 0x1a954a96521650b8), RTUINT128_INIT_C(0x0000000000000000, 0x0000000093dbb055) + }, + { /* i=2396; 122 / 71 */ + RTUINT128_INIT_C(0x03ff1f18b40483ee, 0xc621b44297f4daf9), RTUINT128_INIT_C(0x0000000000000000, 0x32be9f766c53da65), + RTUINT128_INIT_C(0x0000000000000000, 0x142983b777ad9e74), RTUINT128_INIT_C(0x0000000000000000, 0x1b145f5b37ea8f35) + }, + { /* i=2397; 115 / 107 */ + RTUINT128_INIT_C(0x00055fbc896a92d4, 0x2714be4a661330ab), RTUINT128_INIT_C(0x000006d46131f688, 0xb8e96e26b6412760), + RTUINT128_INIT_C(0x0000000000000000, 0x00000000000000c9), RTUINT128_INIT_C(0x000002fc3930017a, 0xf7cd41e54ceb464b) + }, + { /* i=2398; 126 / 117 */ + RTUINT128_INIT_C(0x0d08cf3101d9ec5e, 0xd0bd94872dc14ab4), RTUINT128_INIT_C(0x001a531f7ada1fe0, 0x20f9797b0547e107), + RTUINT128_INIT_C(0x0000000000000000, 0x000000000000007e), RTUINT128_INIT_C(0x0013e5b28a7e3c0e, 0x95f3c9fa94608942) + }, + { /* i=2399; 108 / 41 */ + RTUINT128_INIT_C(0x0000036e9babd71a, 0xa52f31f454a25cea), RTUINT128_INIT_C(0x0000000000000000, 0x0000017da38ec61a), + RTUINT128_INIT_C(0x0000000000000002, 0x4d5ccfa83438d795), RTUINT128_INIT_C(0x0000000000000000, 0x000000ee9c7939c8) + }, + { /* i=2400; 52 / 80 */ + RTUINT128_INIT_C(0x0000000000000000, 0x000c06462a82c0d7), RTUINT128_INIT_C(0x00000000000040c5, 0x5d6d83097fd5e7d4), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x0000000000000000, 0x000c06462a82c0d7) + }, + { /* i=2401; 81 / 24 */ + RTUINT128_INIT_C(0x0000000000003101, 0xdf0c8d59d0f9c2e8), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000e5d68e), + RTUINT128_INIT_C(0x0000000000000000, 0x003695efb7551acf), RTUINT128_INIT_C(0x0000000000000000, 0x000000000030da16) + }, + { /* i=2402; 35 / 33 */ + RTUINT128_INIT_C(0x0000000000000000, 0x000000009ed9f06e), RTUINT128_INIT_C(0x0000000000000000, 0x00000000441fbfd3), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000002), RTUINT128_INIT_C(0x0000000000000000, 0x00000000169a70c8) + }, + { /* i=2403; 88 / 8 */ + RTUINT128_INIT_C(0x0000000000cf071f, 0x8e1d904fff8c013d), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000093), + RTUINT128_INIT_C(0x0000000000016889, 0xcafafa0406f680e1), RTUINT128_INIT_C(0x0000000000000000, 0x000000000000000a) + }, + { /* i=2404; 126 / 109 */ + RTUINT128_INIT_C(0x2f6d80baa76b5098, 0x60832c694d603b06), RTUINT128_INIT_C(0x000013b80325855e, 0x1466928cee14a9ff), + RTUINT128_INIT_C(0x0000000000000000, 0x00000000000267bb), RTUINT128_INIT_C(0x000009c1379de1dd, 0x0f858f83bfe474c1) + }, + { /* i=2405; 26 / 9 */ + RTUINT128_INIT_C(0x0000000000000000, 0x0000000002d9253c), RTUINT128_INIT_C(0x0000000000000000, 0x00000000000000d4), + RTUINT128_INIT_C(0x0000000000000000, 0x000000000003707a), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000034) + }, + { /* i=2406; 79 / 3 */ + RTUINT128_INIT_C(0x0000000000005668, 0x59ac177ee690d52e), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000002), + RTUINT128_INIT_C(0x0000000000002b34, 0x2cd60bbf73486a97), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000) + }, + { /* i=2407; 123 / 107 */ + RTUINT128_INIT_C(0x0083783dc9199e37, 0xc12f179574369ca8), RTUINT128_INIT_C(0x000004b588c49b91, 0x216c3490d3571e7e), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000001beb), RTUINT128_INIT_C(0x0000002c80368177, 0xa94f9059430654fe) + }, + { /* i=2408; 128 / 121 */ + RTUINT128_INIT_C(0xa0c79ae197fbd195, 0x34cac4ab2561047e), RTUINT128_INIT_C(0x0151ff4628ebb694, 0x666bfd74ec5dc962), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000079), RTUINT128_INIT_C(0x0105f2b840928570, 0xcbbff8676d0cd52c) + }, + { /* i=2409; 116 / 25 */ + RTUINT128_INIT_C(0x0007f753a9e1ac5e, 0x1188fb0491361efd), RTUINT128_INIT_C(0x0000000000000000, 0x0000000001889fb0), + RTUINT128_INIT_C(0x000000000531b07a, 0x31ed4a08c307bf22), RTUINT128_INIT_C(0x0000000000000000, 0x00000000001c999d) + }, + { /* i=2410; 120 / 49 */ + RTUINT128_INIT_C(0x00f5a2b8398be3fb, 0x183e27b0c154a015), RTUINT128_INIT_C(0x0000000000000000, 0x00007debbec52cd7), + RTUINT128_INIT_C(0x00000000000001f3, 0x61fe38f7e1d6fc5d), RTUINT128_INIT_C(0x0000000000000000, 0x00004894e8d5b1fa) + }, + { /* i=2411; 113 / 107 */ + RTUINT128_INIT_C(0x00010a06b68f6be8, 0x54869d39b0f6cddf), RTUINT128_INIT_C(0x000003c98939e250, 0xec18fc46c8a517b0), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000046), RTUINT128_INIT_C(0x000000eb30bb89c7, 0xc5b1a1ded3d253bf) + }, + { /* i=2412; 128 / 87 */ + RTUINT128_INIT_C(0x983b9d994f7a1057, 0x034ccfb9fedb3b2d), RTUINT128_INIT_C(0x00000000006a64cc, 0xf4f5a1055610d258), + RTUINT128_INIT_C(0x0000000000000000, 0x0000016e4bcca08c), RTUINT128_INIT_C(0x000000000007779d, 0x9bd12e2d0411330d) + }, + { /* i=2413; 121 / 18 */ + RTUINT128_INIT_C(0x01cb3a236c4f62f7, 0x716b812681da0c24), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000028464), + RTUINT128_INIT_C(0x000000b670724902, 0xbacaec2f66cfa412), RTUINT128_INIT_C(0x0000000000000000, 0x000000000000ad1c) + }, + { /* i=2414; 125 / 33 */ + RTUINT128_INIT_C(0x0d8351ecd7190d4f, 0x0fc27d12b889f400), RTUINT128_INIT_C(0x0000000000000000, 0x00000001a8662515), + RTUINT128_INIT_C(0x000000000826aeb0, 0xe45841969b309bb9), RTUINT128_INIT_C(0x0000000000000000, 0x00000001835570d3) + }, + { /* i=2415; 122 / 48 */ + RTUINT128_INIT_C(0x03091a3f93c8e78b, 0xc4b7c648c3165b65), RTUINT128_INIT_C(0x0000000000000000, 0x00004a708312f71d), + RTUINT128_INIT_C(0x0000000000000a70, 0x7b79dafdbe5c4f82), RTUINT128_INIT_C(0x0000000000000000, 0x000028d204c6ebab) + }, + { /* i=2416; 103 / 63 */ + RTUINT128_INIT_C(0x00000071fc45bb18, 0x7b709ea321e51e42), RTUINT128_INIT_C(0x0000000000000000, 0x2f7fe256d384e143), + RTUINT128_INIT_C(0x0000000000000000, 0x0000026653cf0050), RTUINT128_INIT_C(0x0000000000000000, 0x27fc7f542a31b952) + }, + { /* i=2417; 38 / 43 */ + RTUINT128_INIT_C(0x0000000000000000, 0x00000026d9ec15ed), RTUINT128_INIT_C(0x0000000000000000, 0x00000295c6c1604f), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x0000000000000000, 0x00000026d9ec15ed) + }, + { /* i=2418; 121 / 103 */ + RTUINT128_INIT_C(0x0145503a024759bc, 0xf024860027a05544), RTUINT128_INIT_C(0x00000020e3f81525, 0x4ae051d65510becd), + RTUINT128_INIT_C(0x0000000000000000, 0x000000000009e40b), RTUINT128_INIT_C(0x0000000e85799890, 0x0f152070e0c48e75) + }, + { /* i=2419; 116 / 84 */ + RTUINT128_INIT_C(0x000abec2d394c190, 0xd3f99052d0ca4fb7), RTUINT128_INIT_C(0x00000000000ddff8, 0x7b14c2c042e34a89), + RTUINT128_INIT_C(0x0000000000000000, 0x00000000c6413331), RTUINT128_INIT_C(0x0000000000051395, 0xfba734d6d8a6c07e) + }, + { /* i=2420; 82 / 9 */ + RTUINT128_INIT_C(0x00000000000000e4, 0xf2079d305edd3000), RTUINT128_INIT_C(0x0000000000000000, 0x000000000000009a), + RTUINT128_INIT_C(0x0000000000000001, 0x7c95a8eab42601f9), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000036) + }, + { /* i=2421; 122 / 108 */ + RTUINT128_INIT_C(0x03ea17683c6efb30, 0xeacf4f399015ae81), RTUINT128_INIT_C(0x00000fcb10a81785, 0xa73e699e80324f70), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000003f73), RTUINT128_INIT_C(0x00000616632285fe, 0x6dc7db7997ef6f31) + }, + { /* i=2422; 118 / 62 */ + RTUINT128_INIT_C(0x001643c252f4d32a, 0x5e4ff06f37be6390), RTUINT128_INIT_C(0x0000000000000000, 0x180838611195cd05), + RTUINT128_INIT_C(0x0000000000000000, 0x00ed2c323dbe94c6), RTUINT128_INIT_C(0x0000000000000000, 0x1200912ea8a4edb2) + }, + { /* i=2423; 118 / 59 */ + RTUINT128_INIT_C(0x0025b96d1071fee5, 0xfe45a18e6ebb1638), RTUINT128_INIT_C(0x0000000000000000, 0x01795b48504cb2d8), + RTUINT128_INIT_C(0x0000000000000000, 0x1997a1918bb951b8), RTUINT128_INIT_C(0x0000000000000000, 0x00fb534becec32f8) + }, + { /* i=2424; 106 / 44 */ + RTUINT128_INIT_C(0x000002ee2584ac28, 0xf62086e4e8d2c0ba), RTUINT128_INIT_C(0x0000000000000000, 0x00000677a23dc429), + RTUINT128_INIT_C(0x0000000000000000, 0x73fd86c489ca5fae), RTUINT128_INIT_C(0x0000000000000000, 0x00000444fdb235dc) + }, + { /* i=2425; 120 / 101 */ + RTUINT128_INIT_C(0x00b98aaab2893e3b, 0x30be7d0038b61479), RTUINT128_INIT_C(0x0000000efda225e7, 0x0419d6caf2028adf), + RTUINT128_INIT_C(0x0000000000000000, 0x00000000000c6087), RTUINT128_INIT_C(0x0000000c5cfc6ea8, 0x450ec51b22d738e0) + }, + { /* i=2426; 117 / 33 */ + RTUINT128_INIT_C(0x00133b01f1786520, 0xbeb1a9c7150fd7c6), RTUINT128_INIT_C(0x0000000000000000, 0x00000001202a0a4c), + RTUINT128_INIT_C(0x0000000000111583, 0x500355c0b4365253), RTUINT128_INIT_C(0x0000000000000000, 0x00000000941a2922) + }, + { /* i=2427; 97 / 19 */ + RTUINT128_INIT_C(0x000000010e3874c5, 0x3a1bbd2531cf9e96), RTUINT128_INIT_C(0x0000000000000000, 0x000000000007c740), + RTUINT128_INIT_C(0x00000000000022bd, 0x7ed4599f3921eef0), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000075296) + }, + { /* i=2428; 96 / 87 */ + RTUINT128_INIT_C(0x000000002a2f5723, 0x88bc9d61ca64c9ed), RTUINT128_INIT_C(0x00000000003f1201, 0xfc8244015f32a10b), + RTUINT128_INIT_C(0x0000000000000000, 0x00000000000000ab), RTUINT128_INIT_C(0x00000000000e4fcf, 0xddb9307733933794) + }, + { /* i=2429; 37 / 8 */ + RTUINT128_INIT_C(0x0000000000000000, 0x0000001bf3aa2817), RTUINT128_INIT_C(0x0000000000000000, 0x00000000000000bb), + RTUINT128_INIT_C(0x0000000000000000, 0x000000002643fd79), RTUINT128_INIT_C(0x0000000000000000, 0x00000000000000b4) + }, + { /* i=2430; 118 / 116 */ + RTUINT128_INIT_C(0x000e60db911b2a5a, 0xab1cb7250d6e7ea4), RTUINT128_INIT_C(0x000f821fdb4cb7a8, 0x92457ae1ab0016ba), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x000e60db911b2a5a, 0xab1cb7250d6e7ea4) + }, + { /* i=2431; 75 / 56 */ + RTUINT128_INIT_C(0x0000000000000003, 0xf6995a96acc8d3ab), RTUINT128_INIT_C(0x0000000000000000, 0x0065409c2b85b667), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000a05), RTUINT128_INIT_C(0x0000000000000000, 0x0018fdd69a0c3da8) + }, + { /* i=2432; 69 / 33 */ + RTUINT128_INIT_C(0x0000000000000017, 0xb20517fc1da8382f), RTUINT128_INIT_C(0x0000000000000000, 0x0000000070998da2), + RTUINT128_INIT_C(0x0000000000000000, 0x00000035df5425ef), RTUINT128_INIT_C(0x0000000000000000, 0x0000000035ac93f1) + }, + { /* i=2433; 98 / 80 */ + RTUINT128_INIT_C(0x000000014001c1df, 0x77806960465fe3e8), RTUINT128_INIT_C(0x0000000000004d45, 0xbb7790fae2db4cc0), + RTUINT128_INIT_C(0x0000000000000000, 0x000000000004242b), RTUINT128_INIT_C(0x0000000000000aed, 0xe61c3be821beffa8) + }, + { /* i=2434; 125 / 122 */ + RTUINT128_INIT_C(0x1496c92937c00b3a, 0xc953f6f3046aa503), RTUINT128_INIT_C(0x02ec1d3fbdc24ebe, 0xeebfc588dadfb599), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000007), RTUINT128_INIT_C(0x0021fc6b076fe402, 0x42159035084cadd4) + }, + { /* i=2435; 117 / 117 */ + RTUINT128_INIT_C(0x00051051cc4a72e1, 0xb8375b745e9447af), RTUINT128_INIT_C(0x00078b3ee1aa37eb, 0x980e78a2eabdbaf4), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x00051051cc4a72e1, 0xb8375b745e9447af) + }, + { /* i=2436; 54 / 43 */ + RTUINT128_INIT_C(0x0000000000000000, 0x000e326808542659), RTUINT128_INIT_C(0x0000000000000000, 0x000000ead1984495), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000f7a), RTUINT128_INIT_C(0x0000000000000000, 0x0000003839bebc57) + }, + { /* i=2437; 89 / 25 */ + RTUINT128_INIT_C(0x0000000000b1b6c7, 0xbdc1ee1198596063), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000d5b08d), + RTUINT128_INIT_C(0x0000000000000000, 0xd4e6b4204658da74), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000b54e7f) + }, + { /* i=2438; 105 / 42 */ + RTUINT128_INIT_C(0x000001e4626beb10, 0xd50ac9800a047259), RTUINT128_INIT_C(0x0000000000000000, 0x0000013230999919), + RTUINT128_INIT_C(0x0000000000000001, 0x94fc444ab472b4cd), RTUINT128_INIT_C(0x0000000000000000, 0x000000dd5e3d4554) + }, + { /* i=2439; 84 / 120 */ + RTUINT128_INIT_C(0x00000000000dd3c0, 0xd68e02a41c0166d9), RTUINT128_INIT_C(0x00b68e7e0640ccdc, 0x59a657944c3087ea), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x00000000000dd3c0, 0xd68e02a41c0166d9) + }, + { /* i=2440; 105 / 91 */ + RTUINT128_INIT_C(0x000001ca0dea912d, 0x21badc54f254a930), RTUINT128_INIT_C(0x0000000001059a81, 0x24f144d44a7831f0), + RTUINT128_INIT_C(0x0000000000000000, 0x000000000001c03e), RTUINT128_INIT_C(0x00000000002d253f, 0xf6d8ae9891d49110) + }, + { /* i=2441; 125 / 50 */ + RTUINT128_INIT_C(0x04fbeebf051b24ce, 0xdf9b03159b093b63), RTUINT128_INIT_C(0x0000000000000000, 0x0003cf097f40aafb), + RTUINT128_INIT_C(0x000000000000014f, 0x00589c8a11b61265), RTUINT128_INIT_C(0x0000000000000000, 0x0002c6c1a10e205c) + }, + { /* i=2442; 65 / 15 */ + RTUINT128_INIT_C(0x0000000000000000, 0x5e87b2901b5b7abd), RTUINT128_INIT_C(0x0000000000000000, 0x000000000000486d), + RTUINT128_INIT_C(0x0000000000000000, 0x00014e218820855e), RTUINT128_INIT_C(0x0000000000000000, 0x00000000000041b7) + }, + { /* i=2443; 127 / 39 */ + RTUINT128_INIT_C(0x4c780eaad99e5fc4, 0xea7a7d302a4b2e70), RTUINT128_INIT_C(0x0000000000000000, 0x0000001a37991dbd), + RTUINT128_INIT_C(0x0000000002eab029, 0x88e411b60337586f), RTUINT128_INIT_C(0x0000000000000000, 0x00000018d213517d) + }, + { /* i=2444; 123 / 82 */ + RTUINT128_INIT_C(0x07aaefbb8adfbb35, 0xfb310f0340d47d51), RTUINT128_INIT_C(0x000000000003652d, 0xdf91721f93aa81ba), + RTUINT128_INIT_C(0x0000000000000000, 0x0000024225286424), RTUINT128_INIT_C(0x000000000000f5e9, 0xede90f8bbb1d9729) + }, + { /* i=2445; 127 / 84 */ + RTUINT128_INIT_C(0x0af9266519ff8655, 0xd51cc6dc59769e29), RTUINT128_INIT_C(0x000000000008dc60, 0x704572bbc323e22e), + RTUINT128_INIT_C(0x0000000000000000, 0x0000013d078f09d3), RTUINT128_INIT_C(0x000000000002cf77, 0xfe2f8d0da63d943f) + }, + { /* i=2446; 11 / 7 */ + RTUINT128_INIT_C(0x0000000000000000, 0x00000000000007f2), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000047), + RTUINT128_INIT_C(0x0000000000000000, 0x000000000000001c), RTUINT128_INIT_C(0x0000000000000000, 0x000000000000002e) + }, + { /* i=2447; 85 / 35 */ + RTUINT128_INIT_C(0x000000000005e33d, 0x8e696bc3a3cedaf9), RTUINT128_INIT_C(0x0000000000000000, 0x000000043930c9f4), + RTUINT128_INIT_C(0x0000000000000000, 0x000164e0de4debb3), RTUINT128_INIT_C(0x0000000000000000, 0x0000000186eaa95d) + }, + { /* i=2448; 125 / 38 */ + RTUINT128_INIT_C(0x12b47348cb3db452, 0xcf60ededb313df85), RTUINT128_INIT_C(0x0000000000000000, 0x00000025329bbbb7), + RTUINT128_INIT_C(0x000000000080bad2, 0xebdd3eb4412d53da), RTUINT128_INIT_C(0x0000000000000000, 0x00000022a66eb0af) + }, + { /* i=2449; 17 / 107 */ + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000019ce1), RTUINT128_INIT_C(0x000001240edd9995, 0x192c8f79e838eaa1), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000019ce1) + }, + { /* i=2450; 90 / 61 */ + RTUINT128_INIT_C(0x0000000002c747ff, 0xa04346cebec02bfa), RTUINT128_INIT_C(0x0000000000000000, 0x0cc2693d56d35ff2), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000037bedeaf), RTUINT128_INIT_C(0x0000000000000000, 0x06ec4a16e371b98c) + }, + { /* i=2451; 119 / 107 */ + RTUINT128_INIT_C(0x0079b2975c1f781e, 0xed2d50411821b815), RTUINT128_INIT_C(0x000001d01b9e0f01, 0x524288f4cb927d5b), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000004320), RTUINT128_INIT_C(0x000001598a703f6d, 0x3b0420604f033bb5) + }, + { /* i=2452; 117 / 119 */ + RTUINT128_INIT_C(0x00073b41b8c84e49, 0x398260c611032679), RTUINT128_INIT_C(0x00792f596a825019, 0x24f3784b115f7064), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x00073b41b8c84e49, 0x398260c611032679) + }, + { /* i=2453; 128 / 100 */ + RTUINT128_INIT_C(0x4aff9db6380041b1, 0xf72e4ce3d44c84ab), RTUINT128_INIT_C(0x0000000eee23e048, 0x4240518ca4e578ca), + RTUINT128_INIT_C(0x0000000000000000, 0x000000000505f494), RTUINT128_INIT_C(0x000000058ec92bed, 0x054d66927a9027e3) + }, + { /* i=2454; 7 / 6 */ + RTUINT128_INIT_C(0x0000000000000000, 0x000000000000004d), RTUINT128_INIT_C(0x0000000000000000, 0x000000000000002a), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000001), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000023) + }, + { /* i=2455; 123 / 114 */ + RTUINT128_INIT_C(0x05e9aa6639ebe7b1, 0xd5d0905873dde219), RTUINT128_INIT_C(0x0003add2c8b7436f, 0xe7d59868fe9b4df6), + RTUINT128_INIT_C(0x0000000000000000, 0x000000000000019b), RTUINT128_INIT_C(0x000198fdfbb2a308, 0xa1e4dfc7b087b827) + }, + { /* i=2456; 125 / 42 */ + RTUINT128_INIT_C(0x17c075b8214ef807, 0x4a65b0cd568e1d04), RTUINT128_INIT_C(0x0000000000000000, 0x000003e6e7ca723a), + RTUINT128_INIT_C(0x000000000006164d, 0xaac4e79b742c292a), RTUINT128_INIT_C(0x0000000000000000, 0x0000001ff9141580) + }, + { /* i=2457; 114 / 125 */ + RTUINT128_INIT_C(0x0002bacbbe8dc2e2, 0x2b49f21958c4dedf), RTUINT128_INIT_C(0x088c33d02abb0caa, 0x56678da812ca9eef), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x0002bacbbe8dc2e2, 0x2b49f21958c4dedf) + }, + { /* i=2458; 123 / 72 */ + RTUINT128_INIT_C(0x0278435b8accfa1e, 0xb7a37ef9dc8822d9), RTUINT128_INIT_C(0x0000000000000006, 0x8dca68374101c50b), + RTUINT128_INIT_C(0x0000000000000000, 0x006078c2ef877495), RTUINT128_INIT_C(0x0000000000000003, 0xf2f364220b6a7772) + }, + { /* i=2459; 91 / 30 */ + RTUINT128_INIT_C(0x0000000004538657, 0x703ff42e17ca7d0d), RTUINT128_INIT_C(0x0000000000000000, 0x0000000010be8519), + RTUINT128_INIT_C(0x0000000000000000, 0x4224ca5ae13cf0ea), RTUINT128_INIT_C(0x0000000000000000, 0x0000000002016433) + }, + { /* i=2460; 113 / 109 */ + RTUINT128_INIT_C(0x000037cd4dc6aa26, 0xa950a6fe6765a301), RTUINT128_INIT_C(0x000000d85cc24891, 0x7636b0b26bcf3818), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000042), RTUINT128_INIT_C(0x0000000563aff4a6, 0x2f3718fe9bf92cd1) + }, + { /* i=2461; 124 / 110 */ + RTUINT128_INIT_C(0x04738481d83ba36d, 0xf11116414a534aca), RTUINT128_INIT_C(0x000033273b6ad073, 0x764b3ccd83f1274f), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000001646), RTUINT128_INIT_C(0x000028ac6b1cb7b1, 0x2144ccb87d01c130) + }, + { /* i=2462; 120 / 101 */ + RTUINT128_INIT_C(0x008e5ad019e793b7, 0x9c9144301822f9a7), RTUINT128_INIT_C(0x0000001a7b0a6002, 0x79e2a8d6efcba274), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000056034), RTUINT128_INIT_C(0x0000001757bec414, 0x8f03afa0d9967a17) + }, + { /* i=2463; 117 / 24 */ + RTUINT128_INIT_C(0x001c5f0dfc78ddc5, 0x1a935bbaea4cf625), RTUINT128_INIT_C(0x0000000000000000, 0x00000000009c6fd4), + RTUINT128_INIT_C(0x000000002e6d93bc, 0x2dd56ef0c6b4ceb6), RTUINT128_INIT_C(0x0000000000000000, 0x000000000008dd6d) + }, + { /* i=2464; 95 / 29 */ + RTUINT128_INIT_C(0x00000000525b62ce, 0x574a5c798b13836e), RTUINT128_INIT_C(0x0000000000000000, 0x000000001db1fa7c), + RTUINT128_INIT_C(0x0000000000000002, 0xc5fe0ce090b74c4c), RTUINT128_INIT_C(0x0000000000000000, 0x00000000153c569e) + }, + { /* i=2465; 112 / 84 */ + RTUINT128_INIT_C(0x000065eb2b895e0c, 0x6a981edbc65419bb), RTUINT128_INIT_C(0x00000000000f9b75, 0xdb64761e625d7c77), + RTUINT128_INIT_C(0x0000000000000000, 0x000000000687bb6d), RTUINT128_INIT_C(0x00000000000a08dc, 0x9e3591da2dda2e10) + }, + { /* i=2466; 19 / 57 */ + RTUINT128_INIT_C(0x0000000000000000, 0x00000000000507ac), RTUINT128_INIT_C(0x0000000000000000, 0x009a9d9c49997080), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x0000000000000000, 0x00000000000507ac) + }, + { /* i=2467; 38 / 3 */ + RTUINT128_INIT_C(0x0000000000000000, 0x0000002435da8714), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000006), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000608f9c12e), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000) + }, + { /* i=2468; 118 / 36 */ + RTUINT128_INIT_C(0x002aa5f9721691de, 0x1e1e131abdf000f2), RTUINT128_INIT_C(0x0000000000000000, 0x0000000e4a6ebeaf), + RTUINT128_INIT_C(0x000000000002fbfd, 0x207d959b9a45136c), RTUINT128_INIT_C(0x0000000000000000, 0x0000000973e5921e) + }, + { /* i=2469; 39 / 22 */ + RTUINT128_INIT_C(0x0000000000000000, 0x000000428c3bd1f8), RTUINT128_INIT_C(0x0000000000000000, 0x00000000003dcc44), + RTUINT128_INIT_C(0x0000000000000000, 0x00000000000113ad), RTUINT128_INIT_C(0x0000000000000000, 0x00000000000bbc04) + }, + { /* i=2470; 113 / 98 */ + RTUINT128_INIT_C(0x0000603b19de95ab, 0xb68ec3be1ae3ddb9), RTUINT128_INIT_C(0x000000034fcb2588, 0x3b57e1be0209612e), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000001d0e), RTUINT128_INIT_C(0x00000002b982197f, 0x832de51eee5e5735) + }, + { /* i=2471; 128 / 96 */ + RTUINT128_INIT_C(0x37159326684dcc15, 0x7e423955c3187738), RTUINT128_INIT_C(0x000000007186cf46, 0x3404f860d0d18edf), + RTUINT128_INIT_C(0x0000000000000000, 0x000000007c36be20), RTUINT128_INIT_C(0x000000006f9c6758, 0x03b9c4d7f9d31958) + }, + { /* i=2472; 95 / 89 */ + RTUINT128_INIT_C(0x0000000033cff244, 0x3bdf285e2983c541), RTUINT128_INIT_C(0x00000000008a8e3f, 0x4ff4d953e5d77991), + RTUINT128_INIT_C(0x0000000000000000, 0x000000000000005f), RTUINT128_INIT_C(0x00000000006528c5, 0x9002823bde8da872) + }, + { /* i=2473; 113 / 121 */ + RTUINT128_INIT_C(0x000055f8b1e6da0b, 0x6d003b7ba6f797f9), RTUINT128_INIT_C(0x018a54a262d7a0bd, 0xcba68c8d3a39b389), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x000055f8b1e6da0b, 0x6d003b7ba6f797f9) + }, + { /* i=2474; 116 / 119 */ + RTUINT128_INIT_C(0x00080dac53ea51ef, 0xbcfeb84da070901f), RTUINT128_INIT_C(0x007960adab258db6, 0x4c81dca29035af3f), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x00080dac53ea51ef, 0xbcfeb84da070901f) + }, + { /* i=2475; 113 / 61 */ + RTUINT128_INIT_C(0x0000beb039a57a77, 0x5fdc14fcfef86874), RTUINT128_INIT_C(0x0000000000000000, 0x1dc3c34f8b118f51), + RTUINT128_INIT_C(0x0000000000000000, 0x000668123963a176), RTUINT128_INIT_C(0x0000000000000000, 0x06b65b77646b681e) + }, + { /* i=2476; 116 / 115 */ + RTUINT128_INIT_C(0x000210a59f935ced, 0x4f7f1e733594a8e2), RTUINT128_INIT_C(0x0004789772a51ab0, 0xe78c5adfd534d384), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x000210a59f935ced, 0x4f7f1e733594a8e2) + }, + { /* i=2477; 64 / 10 */ + RTUINT128_INIT_C(0x0000000000000000, 0xc6e572c6ee23d11f), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000276), + RTUINT128_INIT_C(0x0000000000000000, 0x0050d243c50d0f5d), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000241) + }, + { /* i=2478; 117 / 114 */ + RTUINT128_INIT_C(0x001e3ff68d91c4b7, 0xc6344c6f5a5dc86b), RTUINT128_INIT_C(0x0001c4d79b156e8c, 0x370d6d03297a9cf2), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000011), RTUINT128_INIT_C(0x00002da541256d68, 0x1e500f3999395c59) + }, + { /* i=2479; 123 / 93 */ + RTUINT128_INIT_C(0x0249321074928d11, 0x6d4954ef0fc83fe2), RTUINT128_INIT_C(0x000000001050d8a5, 0xaeadbc41262ecc6e), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000023dde5e2), RTUINT128_INIT_C(0x000000000d7d88d3, 0x620c7fe9f8a360c6) + }, + { /* i=2480; 107 / 102 */ + RTUINT128_INIT_C(0x0000039a8c5baf9a, 0xa5c2c906f71d500a), RTUINT128_INIT_C(0x000000319acb474c, 0x94785b50b8a0611f), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000012), RTUINT128_INIT_C(0x0000001daa10ac38, 0x354c5d59fbd67bdc) + }, + { /* i=2481; 78 / 53 */ + RTUINT128_INIT_C(0x0000000000000348, 0x6dadbb7857a79404), RTUINT128_INIT_C(0x0000000000000000, 0x000f587101499ac6), + RTUINT128_INIT_C(0x0000000000000000, 0x000000000036c466), RTUINT128_INIT_C(0x0000000000000000, 0x0003b3eed4105120) + }, + { /* i=2482; 58 / 58 */ + RTUINT128_INIT_C(0x0000000000000000, 0x00d6dddd294bd3a4), RTUINT128_INIT_C(0x0000000000000000, 0x03cd103eba166ac8), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x0000000000000000, 0x00d6dddd294bd3a4) + }, + { /* i=2483; 25 / 21 */ + RTUINT128_INIT_C(0x0000000000000000, 0x000000000019b1b0), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000043001), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000006), RTUINT128_INIT_C(0x0000000000000000, 0x00000000000091aa) + }, + { /* i=2484; 70 / 5 */ + RTUINT128_INIT_C(0x0000000000000032, 0xbe5a46b3584bd429), RTUINT128_INIT_C(0x0000000000000000, 0x000000000000001e), + RTUINT128_INIT_C(0x0000000000000001, 0xb103025b4fbe42ce), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000005) + }, + { /* i=2485; 19 / 36 */ + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000043f90), RTUINT128_INIT_C(0x0000000000000000, 0x0000000c0d59ed91), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000043f90) + }, + { /* i=2486; 115 / 125 */ + RTUINT128_INIT_C(0x0007a5f793e47056, 0x9030fad289bb4949), RTUINT128_INIT_C(0x1d8a2cf089d14b99, 0x316b9594321ad97d), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x0007a5f793e47056, 0x9030fad289bb4949) + }, + { /* i=2487; 119 / 46 */ + RTUINT128_INIT_C(0x00558ba83e2bf422, 0xb957e7f2c3343e3f), RTUINT128_INIT_C(0x0000000000000000, 0x0000116e2bbfe010), + RTUINT128_INIT_C(0x00000000000004e8, 0x68bc9464ff2ae2f3), RTUINT128_INIT_C(0x0000000000000000, 0x000005d525a46f0f) + }, + { /* i=2488; 113 / 47 */ + RTUINT128_INIT_C(0x00009da46a8dfa86, 0x3dbbbf24cf1628a0), RTUINT128_INIT_C(0x0000000000000000, 0x0000350dcdc330ee), + RTUINT128_INIT_C(0x0000000000000002, 0xf8aafd79b63fc2e5), RTUINT128_INIT_C(0x0000000000000000, 0x0000158d95d507ba) + }, + { /* i=2489; 100 / 4 */ + RTUINT128_INIT_C(0x0000000b75f3476c, 0x23e2f77d4b120cff), RTUINT128_INIT_C(0x0000000000000000, 0x000000000000000f), + RTUINT128_INIT_C(0x00000000c398c07e, 0xad0f2190e2df11ee), RTUINT128_INIT_C(0x0000000000000000, 0x000000000000000d) + }, + { /* i=2490; 93 / 85 */ + RTUINT128_INIT_C(0x000000000c4f28f6, 0xe0cbcd19aec94eed), RTUINT128_INIT_C(0x0000000000092a15, 0xfd03ba62b94c63a4), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000157), RTUINT128_INIT_C(0x000000000007c580, 0xe0cd12d3696fce31) + }, + { /* i=2491; 119 / 121 */ + RTUINT128_INIT_C(0x007471a2edbd6772, 0x1fdc0813c4dcfc9f), RTUINT128_INIT_C(0x00636ac5f519a187, 0xfb1bf339289b53e4), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000001), RTUINT128_INIT_C(0x001106dcf8a3c5ea, 0x24c014da9c41a8bb) + }, + { /* i=2492; 113 / 68 */ + RTUINT128_INIT_C(0x000117ec38c9bd75, 0x803368ba60ad9f11), RTUINT128_INIT_C(0x0000000000000002, 0x7fbcacc86bc182af), + RTUINT128_INIT_C(0x0000000000000000, 0x00007003df4919df), RTUINT128_INIT_C(0x0000000000000001, 0x0683f08ce872b1a0) + }, + { /* i=2493; 83 / 24 */ + RTUINT128_INIT_C(0x000000000001b4e5, 0x330d8980eb3236e9), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000009167), + RTUINT128_INIT_C(0x0000000000000003, 0x013638ea2ca41e4d), RTUINT128_INIT_C(0x0000000000000000, 0x00000000000068ee) + }, + { /* i=2494; 113 / 79 */ + RTUINT128_INIT_C(0x000120bd9ff83543, 0x44017ea04aeba18f), RTUINT128_INIT_C(0x0000000000006f8f, 0x1e649c9c17103063), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000296965f45), RTUINT128_INIT_C(0x0000000000000b79, 0x55abfb62b597d9e0) + }, + { /* i=2495; 124 / 33 */ + RTUINT128_INIT_C(0x09cb3ee3e7a12c15, 0xadc9e51f30bae758), RTUINT128_INIT_C(0x0000000000000000, 0x0000000046760f64), + RTUINT128_INIT_C(0x0000000023955774, 0xd1a2df6ea87a6c3b), RTUINT128_INIT_C(0x0000000000000000, 0x000000002f5f2b4c) + }, + { /* i=2496; 29 / 31 */ + RTUINT128_INIT_C(0x0000000000000000, 0x0000000009bec241), RTUINT128_INIT_C(0x0000000000000000, 0x000000003716aebe), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x0000000000000000, 0x0000000009bec241) + }, + { /* i=2497; 128 / 80 */ + RTUINT128_INIT_C(0x4d0cfb8dab12c5d3, 0xdd2ba8785c9ef457), RTUINT128_INIT_C(0x000000000000fbb1, 0x31ccab9ced8d629b), + RTUINT128_INIT_C(0x0000000000000000, 0x00004e5e95d67fac), RTUINT128_INIT_C(0x0000000000002e17, 0xc51e33b0f923cf33) + }, + { /* i=2498; 124 / 123 */ + RTUINT128_INIT_C(0x0e830c5867dc00c7, 0xb407bdecb305ef4b), RTUINT128_INIT_C(0x035cd583aa541174, 0xe8a61c066f0e380c), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000004), RTUINT128_INIT_C(0x010fb649be8bbaf4, 0x116f4dd2f6cd0f1b) + }, + { /* i=2499; 113 / 31 */ + RTUINT128_INIT_C(0x0001ba2d6efaff50, 0x494fa3ac3eaa6626), RTUINT128_INIT_C(0x0000000000000000, 0x000000006593bcc6), + RTUINT128_INIT_C(0x0000000000045a66, 0x2f052a8aa365a271), RTUINT128_INIT_C(0x0000000000000000, 0x000000005ee0c6c0) + }, + { /* i=2500; 78 / 61 */ + RTUINT128_INIT_C(0x00000000000023bf, 0xc0b96d040e70ff98), RTUINT128_INIT_C(0x0000000000000000, 0x14e2c86a04207930), + RTUINT128_INIT_C(0x0000000000000000, 0x000000000001b62d), RTUINT128_INIT_C(0x0000000000000000, 0x11f6cf51c5639228) + }, + { /* i=2501; 91 / 77 */ + RTUINT128_INIT_C(0x000000000552328e, 0x97f101d3d875cf24), RTUINT128_INIT_C(0x0000000000000240, 0xa5284eb6e18bf659), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000025cbe), RTUINT128_INIT_C(0x00000000000000e8, 0xea4f19f2395afd16) + }, + { /* i=2502; 110 / 93 */ + RTUINT128_INIT_C(0x000024384b1bb514, 0x0e4fcf81a28ecc68), RTUINT128_INIT_C(0x000000000df38a67, 0xd1e1b5a5417a5bda), + RTUINT128_INIT_C(0x0000000000000000, 0x000000000002989d), RTUINT128_INIT_C(0x000000000dc28b06, 0xe7bec7531c4707b6) + }, + { /* i=2503; 98 / 61 */ + RTUINT128_INIT_C(0x0000000281051791, 0xa829b9842cead2cb), RTUINT128_INIT_C(0x0000000000000000, 0x137ddf4ede6570ae), + RTUINT128_INIT_C(0x0000000000000000, 0x00000020e3076c72), RTUINT128_INIT_C(0x0000000000000000, 0x08dce521f9733d4f) + }, + { /* i=2504; 73 / 20 */ + RTUINT128_INIT_C(0x00000000000000c8, 0xed3b85c07377faa8), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000038908), + RTUINT128_INIT_C(0x0000000000000000, 0x0038d5b2bb4f1731), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000030820) + }, + { /* i=2505; 125 / 114 */ + RTUINT128_INIT_C(0x0476dffc6837d1c6, 0xd3bf98135b84c33e), RTUINT128_INIT_C(0x0003aff8963351b1, 0xd37cdcfb58bfe2ba), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000135), RTUINT128_INIT_C(0x000378ef1c463622, 0x8e08dcb13be818bc) + }, + { /* i=2506; 93 / 11 */ + RTUINT128_INIT_C(0x00000000139084ab, 0xe739472c5487ec2d), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000781), + RTUINT128_INIT_C(0x0000000000029b74, 0x6dcbec727f2d8385), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000328) + }, + { /* i=2507; 128 / 66 */ + RTUINT128_INIT_C(0x54ed4046bc3bd3c9, 0x4de1ddd26260eeb3), RTUINT128_INIT_C(0x0000000000000001, 0x886230b391ffecb4), + RTUINT128_INIT_C(0x0000000000000000, 0x37687d3714e76cc0), RTUINT128_INIT_C(0x0000000000000000, 0x74911a74442777b3) + }, + { /* i=2508; 76 / 14 */ + RTUINT128_INIT_C(0x000000000000053c, 0x82a7ff037e34857d), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000365), + RTUINT128_INIT_C(0x0000000000000001, 0x8ae7272df5d5a3a6), RTUINT128_INIT_C(0x0000000000000000, 0x00000000000002ff) + }, + { /* i=2509; 124 / 64 */ + RTUINT128_INIT_C(0x0a9d656a51dd56af, 0x9548bb86015a890f), RTUINT128_INIT_C(0x0000000000000000, 0x9d8044b0a66990b1), + RTUINT128_INIT_C(0x0000000000000000, 0x1140d1540749e437), RTUINT128_INIT_C(0x0000000000000000, 0x5f9c53392255cf08) + }, + { /* i=2510; 72 / 42 */ + RTUINT128_INIT_C(0x0000000000000042, 0x83bca2444221e9d4), RTUINT128_INIT_C(0x0000000000000000, 0x0000012831bd9f13), + RTUINT128_INIT_C(0x0000000000000000, 0x00000000397d07e3), RTUINT128_INIT_C(0x0000000000000000, 0x00000042105d56fb) + }, + { /* i=2511; 122 / 114 */ + RTUINT128_INIT_C(0x00301d6cf42bf5bc, 0x7d8b5f3c4bc0e5f0), RTUINT128_INIT_C(0x0003ca872b98d320, 0x0a9766bb6d882f9d), + RTUINT128_INIT_C(0x0000000000000000, 0x000000000000000c), RTUINT128_INIT_C(0x00029f16e902103b, 0xfe728e73295eaa94) + }, + { /* i=2512; 123 / 50 */ + RTUINT128_INIT_C(0x0233c1226f1ee215, 0xb404bcc02dd9be88), RTUINT128_INIT_C(0x0000000000000000, 0x0001c0251d89f284), + RTUINT128_INIT_C(0x0000000000000142, 0x0a8a24d0aebf799f), RTUINT128_INIT_C(0x0000000000000000, 0x000072baf90fba8c) + }, + { /* i=2513; 40 / 55 */ + RTUINT128_INIT_C(0x0000000000000000, 0x000000fc5bfe8342), RTUINT128_INIT_C(0x0000000000000000, 0x005f7ebb39cfed12), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x0000000000000000, 0x000000fc5bfe8342) + }, + { /* i=2514; 122 / 90 */ + RTUINT128_INIT_C(0x00479aeb5119a157, 0x04712fb07fb18b18), RTUINT128_INIT_C(0x000000000301d485, 0xeffd605ae7e69584), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000017cfc7ab), RTUINT128_INIT_C(0x0000000001cfbcc8, 0xabf3edd198b60fec) + }, + { /* i=2515; 113 / 103 */ + RTUINT128_INIT_C(0x00019b32ebe8f6ae, 0xe3c10eca4561a146), RTUINT128_INIT_C(0x0000002692733d48, 0x7f76bedac6b7ceb7), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000aa9), RTUINT128_INIT_C(0x00000003bd70acd8, 0x1ae88499e7f70477) + }, + { /* i=2516; 83 / 46 */ + RTUINT128_INIT_C(0x000000000007e17b, 0x2c19d86c73c300bb), RTUINT128_INIT_C(0x0000000000000000, 0x0000298cc00b3ef7), + RTUINT128_INIT_C(0x0000000000000000, 0x000000308e4456c2), RTUINT128_INIT_C(0x0000000000000000, 0x00000505687a4f8d) + }, + { /* i=2517; 115 / 70 */ + RTUINT128_INIT_C(0x0002d973dbdb25e9, 0x947b096abaedfb12), RTUINT128_INIT_C(0x000000000000003a, 0x33cfb77a66861494), + RTUINT128_INIT_C(0x0000000000000000, 0x00000c8874fc9921), RTUINT128_INIT_C(0x0000000000000000, 0xeee8af6e0fa8dffe) + }, + { /* i=2518; 125 / 92 */ + RTUINT128_INIT_C(0x180cb48e3787d92e, 0x3ba74b7adb2de8ca), RTUINT128_INIT_C(0x0000000009804f6e, 0xaf33a61735c9d37b), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000287fdd771), RTUINT128_INIT_C(0x000000000600255e, 0xb77c3f1dbeec427f) + }, + { /* i=2519; 123 / 112 */ + RTUINT128_INIT_C(0x06dc15c8e74e6028, 0x2ab893fbbfbab14c), RTUINT128_INIT_C(0x00003377e20dac5c, 0x37337d638948779a), + RTUINT128_INIT_C(0x0000000000000000, 0x000000000000221e), RTUINT128_INIT_C(0x000021b698cfee04, 0xdc08aa16095a3940) + }, + { /* i=2520; 121 / 85 */ + RTUINT128_INIT_C(0x0151ddd741264405, 0x3871e5e48caa6123), RTUINT128_INIT_C(0x000000000019d5c2, 0xabec66b3a60fec54), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000d13eeb5c8), RTUINT128_INIT_C(0x00000000001507da, 0x83fe13859c0a5b83) + }, + { /* i=2521; 119 / 99 */ + RTUINT128_INIT_C(0x003b15f5bf71c1ee, 0x3d0d16e1d635ec6d), RTUINT128_INIT_C(0x00000005b5b43081, 0x8c8d6e38edd123fd), + RTUINT128_INIT_C(0x0000000000000000, 0x00000000000a5921), RTUINT128_INIT_C(0x00000003c94af9d7, 0xa546ccb210db53d0) + }, + { /* i=2522; 66 / 50 */ + RTUINT128_INIT_C(0x0000000000000002, 0x71b31f2789fb36d4), RTUINT128_INIT_C(0x0000000000000000, 0x00021dc959529fe7), + RTUINT128_INIT_C(0x0000000000000000, 0x00000000000127a6), RTUINT128_INIT_C(0x0000000000000000, 0x0000c8a96824560a) + }, + { /* i=2523; 99 / 78 */ + RTUINT128_INIT_C(0x00000006d1310544, 0x0c9eef462e2b63e8), RTUINT128_INIT_C(0x0000000000003832, 0x779ad1eec00a05f7), + RTUINT128_INIT_C(0x0000000000000000, 0x00000000001f0e08), RTUINT128_INIT_C(0x0000000000000566, 0x6c641018e89eb230) + }, + { /* i=2524; 121 / 40 */ + RTUINT128_INIT_C(0x01ff29623946bf5f, 0x11a32d16867aac77), RTUINT128_INIT_C(0x0000000000000000, 0x00000049d8cb9f7b), + RTUINT128_INIT_C(0x000000000006ec02, 0x9c443210a0f8302f), RTUINT128_INIT_C(0x0000000000000000, 0x000000422c0954e2) + }, + { /* i=2525; 114 / 67 */ + RTUINT128_INIT_C(0x0003cb94f0cf24b2, 0xec1bd59051752b33), RTUINT128_INIT_C(0x0000000000000000, 0x2494e85e56b24da8), + RTUINT128_INIT_C(0x0000000000000000, 0x001a8f2b1ee80ef5), RTUINT128_INIT_C(0x0000000000000000, 0x14d8f0a18851a96b) + }, + { /* i=2526; 117 / 66 */ + RTUINT128_INIT_C(0x0006852fbbda75e1, 0x219f70dbef84b187), RTUINT128_INIT_C(0x0000000000000001, 0x724a19daf530c462), + RTUINT128_INIT_C(0x0000000000000000, 0x000481fe6900dd08), RTUINT128_INIT_C(0x0000000000000000, 0xdd8b6090fa75f477) + }, + { /* i=2527; 120 / 99 */ + RTUINT128_INIT_C(0x00fcb7b93ad8dce8, 0xf14e4da25d136dd1), RTUINT128_INIT_C(0x000000041d1301f3, 0x2b406b5c9dbaa9a2), + RTUINT128_INIT_C(0x0000000000000000, 0x00000000003d6f62), RTUINT128_INIT_C(0x0000000364c85fb7, 0xdf06764fa0773fcd) + }, + { /* i=2528; 95 / 53 */ + RTUINT128_INIT_C(0x000000002c44a29c, 0xd4489e65fb31e0f4), RTUINT128_INIT_C(0x0000000000000000, 0x000b31f6cd1c0374), + RTUINT128_INIT_C(0x0000000000000000, 0x000003f4475e328f), RTUINT128_INIT_C(0x0000000000000000, 0x0005c5ab7f474b28) + }, + { /* i=2529; 21 / 10 */ + RTUINT128_INIT_C(0x0000000000000000, 0x00000000000ba1f5), RTUINT128_INIT_C(0x0000000000000000, 0x00000000000000ea), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000cb9), RTUINT128_INIT_C(0x0000000000000000, 0x00000000000000db) + }, + { /* i=2530; 19 / 69 */ + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000030290), RTUINT128_INIT_C(0x0000000000000016, 0xc60079779529bfea), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000030290) + }, + { /* i=2531; 109 / 77 */ + RTUINT128_INIT_C(0x00000ac8a790c125, 0x3b90caee38d4530e), RTUINT128_INIT_C(0x0000000000001864, 0xf33c3e079a562a23), + RTUINT128_INIT_C(0x0000000000000000, 0x00000000712af80f), RTUINT128_INIT_C(0x0000000000000855, 0x1692703c5837f301) + }, + { /* i=2532; 73 / 22 */ + RTUINT128_INIT_C(0x0000000000000105, 0x4b4e3fcf9992f644), RTUINT128_INIT_C(0x0000000000000000, 0x00000000002972cf), + RTUINT128_INIT_C(0x0000000000000000, 0x00064dd7b06f5fc6), RTUINT128_INIT_C(0x0000000000000000, 0x000000000028592a) + }, + { /* i=2533; 116 / 116 */ + RTUINT128_INIT_C(0x000f155d37b0db7d, 0xba3d9b85cfce9610), RTUINT128_INIT_C(0x0008d6691b1d7604, 0xa78484ec6a1a0539), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000001), RTUINT128_INIT_C(0x00063ef41c936579, 0x12b9169965b490d7) + }, + { /* i=2534; 81 / 65 */ + RTUINT128_INIT_C(0x000000000001c11a, 0xac13f91a52a11cd4), RTUINT128_INIT_C(0x0000000000000000, 0xbdf6887170847c12), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000025d3a), RTUINT128_INIT_C(0x0000000000000000, 0x01c4f87dbb6676c0) + }, + { /* i=2535; 64 / 63 */ + RTUINT128_INIT_C(0x0000000000000000, 0x061be4caf5c65e0e), RTUINT128_INIT_C(0x0000000000000000, 0x75b44636b954dca3), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x0000000000000000, 0x061be4caf5c65e0e) + }, + { /* i=2536; 126 / 125 */ + RTUINT128_INIT_C(0x24216e1b0d7605f1, 0x39ad61a92ad1a90a), RTUINT128_INIT_C(0x09778289d6569e92, 0xba35525e70fb23f0), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000003), RTUINT128_INIT_C(0x07bae67d8a722a39, 0x0b0d6a8dd7e03d3a) + }, + { /* i=2537; 82 / 26 */ + RTUINT128_INIT_C(0x0000000000016b34, 0x7e368af44c47c3e5), RTUINT128_INIT_C(0x0000000000000000, 0x000000000333345a), + RTUINT128_INIT_C(0x0000000000000000, 0x0071803e98c4e59d), RTUINT128_INIT_C(0x0000000000000000, 0x00000000032426b3) + }, + { /* i=2538; 126 / 77 */ + RTUINT128_INIT_C(0x3e433b0eff7bef1e, 0x3ebf27edfc959e3f), RTUINT128_INIT_C(0x00000000000015fb, 0xed837201d8af3fdd), + RTUINT128_INIT_C(0x0000000000000000, 0x0002d508e38ae9f7), RTUINT128_INIT_C(0x0000000000000c35, 0x44af65ed063cdb04) + }, + { /* i=2539; 121 / 109 */ + RTUINT128_INIT_C(0x001ced1e58cfdd6b, 0x11caeef630710c9e), RTUINT128_INIT_C(0x000005f6cf6984a1, 0xb7b8dc98b82512a4), + RTUINT128_INIT_C(0x0000000000000000, 0x00000000000004d9), RTUINT128_INIT_C(0x000003aae24be977, 0x72a58ea184b9af9a) + }, + { /* i=2540; 44 / 39 */ + RTUINT128_INIT_C(0x0000000000000000, 0x00000cdeb44b0487), RTUINT128_INIT_C(0x0000000000000000, 0x00000027d6446b68), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000052), RTUINT128_INIT_C(0x0000000000000000, 0x0000001c12609d37) + }, + { /* i=2541; 65 / 50 */ + RTUINT128_INIT_C(0x0000000000000000, 0x41d24040f225127d), RTUINT128_INIT_C(0x0000000000000000, 0x0001db345ee7df75), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000002375), RTUINT128_INIT_C(0x0000000000000000, 0x0000e857de9ef304) + }, + { /* i=2542; 91 / 86 */ + RTUINT128_INIT_C(0x000000000008c2c6, 0x0588b23e938d8591), RTUINT128_INIT_C(0x00000000001f5573, 0x3f1452c1668e3de8), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x000000000008c2c6, 0x0588b23e938d8591) + }, + { /* i=2543; 121 / 95 */ + RTUINT128_INIT_C(0x000fd5b6c840df59, 0x7743c01635238399), RTUINT128_INIT_C(0x0000000071715ec8, 0xb08f6ca60efc6cb9), + RTUINT128_INIT_C(0x0000000000000000, 0x000000000023bbc8), RTUINT128_INIT_C(0x00000000620215fa, 0xe82584e53f387011) + }, + { /* i=2544; 59 / 6 */ + RTUINT128_INIT_C(0x0000000000000000, 0x033b4d59621ced25), RTUINT128_INIT_C(0x0000000000000000, 0x000000000000001e), + RTUINT128_INIT_C(0x0000000000000000, 0x001b93a51cded4b4), RTUINT128_INIT_C(0x0000000000000000, 0x000000000000000d) + }, + { /* i=2545; 110 / 74 */ + RTUINT128_INIT_C(0x0000073e6be9ac52, 0x227bd69590b5c906), RTUINT128_INIT_C(0x00000000000000d5, 0xcf2147863ff0125a), + RTUINT128_INIT_C(0x0000000000000000, 0x00000008ac5aa58a), RTUINT128_INIT_C(0x000000000000009c, 0xafc9677671d3e282) + }, + { /* i=2546; 107 / 104 */ + RTUINT128_INIT_C(0x000007495d7ca911, 0x6c9d6d8e1ac1aff1), RTUINT128_INIT_C(0x0000005799527fe6, 0xb1ad733b365a42e1), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000015), RTUINT128_INIT_C(0x00000019c9b82b24, 0xd962f9b2a55a337c) + }, + { /* i=2547; 57 / 42 */ + RTUINT128_INIT_C(0x0000000000000000, 0x00027bae3b17797b), RTUINT128_INIT_C(0x0000000000000000, 0x000001226cae4014), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000230), RTUINT128_INIT_C(0x0000000000000000, 0x000000607deb4dbb) + }, + { /* i=2548; 27 / 82 */ + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000a6e279), RTUINT128_INIT_C(0x0000000000013ce7, 0xbc5470ff75eb525f), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000a6e279) + }, + { /* i=2549; 124 / 62 */ + RTUINT128_INIT_C(0x051149d9ed69a56e, 0x236a62a774a6f11f), RTUINT128_INIT_C(0x0000000000000000, 0x0409e26c578bd4bc), + RTUINT128_INIT_C(0x0000000000000001, 0x4138aff0386984a1), RTUINT128_INIT_C(0x0000000000000000, 0x0038ac3ceae936e3) + }, + { /* i=2550; 127 / 21 */ + RTUINT128_INIT_C(0x1c564760f6f286fb, 0x68f0b2522091b5b4), RTUINT128_INIT_C(0x0000000000000000, 0x000000000003c54c), + RTUINT128_INIT_C(0x00000783dbfbaa1c, 0x20884a68271a6698), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000004894) + }, + { /* i=2551; 116 / 83 */ + RTUINT128_INIT_C(0x00034d6e20636e69, 0x84a339f38189946b), RTUINT128_INIT_C(0x0000000000034c26, 0x4a0a3b61497187e0), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000100636bd2), RTUINT128_INIT_C(0x00000000000218b8, 0x415bebab42fd7eab) + }, + { /* i=2552; 127 / 100 */ + RTUINT128_INIT_C(0x4b33a822a37df569, 0x4299e7af16f9c64f), RTUINT128_INIT_C(0x0000000b055e90a8, 0xf63bf7eccc2faf88), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000006d2d1e3), RTUINT128_INIT_C(0x000000040c2a598f, 0x08fc20c7ecd318b7) + }, + { /* i=2553; 123 / 24 */ + RTUINT128_INIT_C(0x0157f1f5fc58bd1b, 0x37cc6cc9365671ad), RTUINT128_INIT_C(0x0000000000000000, 0x00000000007ce653), + RTUINT128_INIT_C(0x00000002c0f71fc9, 0xa19bf303eda31e2c), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000082169) + }, + { /* i=2554; 38 / 2 */ + RTUINT128_INIT_C(0x0000000000000000, 0x00000025ad0d00d7), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000001), + RTUINT128_INIT_C(0x0000000000000000, 0x00000025ad0d00d7), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000) + }, + { /* i=2555; 96 / 40 */ + RTUINT128_INIT_C(0x00000000968937e2, 0x578feb629d7f4747), RTUINT128_INIT_C(0x0000000000000000, 0x000000427785fbcc), + RTUINT128_INIT_C(0x0000000000000000, 0x0243cbb54d674fdd), RTUINT128_INIT_C(0x0000000000000000, 0x0000003e6b0cf42b) + }, + { /* i=2556; 114 / 115 */ + RTUINT128_INIT_C(0x00039d5dfaaffae1, 0x0fc895eedca82f09), RTUINT128_INIT_C(0x0005694ba13e3df7, 0x11df8cf355c1cf17), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x00039d5dfaaffae1, 0x0fc895eedca82f09) + }, + { /* i=2557; 46 / 24 */ + RTUINT128_INIT_C(0x0000000000000000, 0x000007fd490e2d35), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000d48665), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000099fad), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000699ff4) + }, + { /* i=2558; 33 / 29 */ + RTUINT128_INIT_C(0x0000000000000000, 0x0000000053ea49b2), RTUINT128_INIT_C(0x0000000000000000, 0x0000000015aea29b), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000003), RTUINT128_INIT_C(0x0000000000000000, 0x0000000012de61e1) + }, + { /* i=2559; 93 / 38 */ + RTUINT128_INIT_C(0x000000000c089764, 0xd0fa51c8e9bf0899), RTUINT128_INIT_C(0x0000000000000000, 0x00000035add51b96), + RTUINT128_INIT_C(0x0000000000000000, 0x0039639c0b1f60c9), RTUINT128_INIT_C(0x0000000000000000, 0x0000000db9ea1fd3) + }, + { /* i=2560; 111 / 44 */ + RTUINT128_INIT_C(0x0000687c7498ddf3, 0x6fe46f604a4d14be), RTUINT128_INIT_C(0x0000000000000000, 0x00000370c5a4051f), + RTUINT128_INIT_C(0x000000000000001e, 0x5e8c5446e31d66e6), RTUINT128_INIT_C(0x0000000000000000, 0x000002b64d6320e4) + }, + { /* i=2561; 111 / 41 */ + RTUINT128_INIT_C(0x00007d4667038049, 0xcaafaa29f1700ab3), RTUINT128_INIT_C(0x0000000000000000, 0x000001c785af0598), + RTUINT128_INIT_C(0x0000000000000046, 0x6752422a1eca6a88), RTUINT128_INIT_C(0x0000000000000000, 0x0000011e3a3421f3) + }, + { /* i=2562; 36 / 98 */ + RTUINT128_INIT_C(0x0000000000000000, 0x0000000819d04e14), RTUINT128_INIT_C(0x000000015de122eb, 0xfee2260035f65850), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x0000000000000000, 0x0000000819d04e14) + }, + { /* i=2563; 22 / 11 */ + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000176bc8), RTUINT128_INIT_C(0x0000000000000000, 0x000000000000036c), + RTUINT128_INIT_C(0x0000000000000000, 0x00000000000006d8), RTUINT128_INIT_C(0x0000000000000000, 0x00000000000000a8) + }, + { /* i=2564; 51 / 16 */ + RTUINT128_INIT_C(0x0000000000000000, 0x0003f96ab323d0e2), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000007918), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000866e27ebe), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000002112) + }, + { /* i=2565; 124 / 94 */ + RTUINT128_INIT_C(0x0fdc0b00b6152288, 0x8f0d7590c47bcbd7), RTUINT128_INIT_C(0x000000003f3589c8, 0xbe632eed54e5bbaa), + RTUINT128_INIT_C(0x0000000000000000, 0x00000000403b5e08), RTUINT128_INIT_C(0x0000000022f471c3, 0x0accd91d02378287) + }, + { /* i=2566; 73 / 43 */ + RTUINT128_INIT_C(0x00000000000001d9, 0x4b4974da44aee177), RTUINT128_INIT_C(0x0000000000000000, 0x0000031748350184), + RTUINT128_INIT_C(0x0000000000000000, 0x00000000991f6cb7), RTUINT128_INIT_C(0x0000000000000000, 0x0000006c372b1c1b) + }, + { /* i=2567; 124 / 65 */ + RTUINT128_INIT_C(0x06101290194aca18, 0x49062d01751b7460), RTUINT128_INIT_C(0x0000000000000000, 0x33713ed6d13a2b0a), + RTUINT128_INIT_C(0x0000000000000000, 0x1e2bccea86df988f), RTUINT128_INIT_C(0x0000000000000000, 0x20aa8371525979ca) + }, + { /* i=2568; 118 / 52 */ + RTUINT128_INIT_C(0x0024d107d083bb8d, 0xd518937d2d7c2387), RTUINT128_INIT_C(0x0000000000000000, 0x0001df02d6a4f2bf), + RTUINT128_INIT_C(0x0000000000000013, 0xad0f7af2cd982dd0), RTUINT128_INIT_C(0x0000000000000000, 0x0000da92b4635557) + }, + { /* i=2569; 124 / 93 */ + RTUINT128_INIT_C(0x0158a523916c857e, 0x231af855c2ae0678), RTUINT128_INIT_C(0x0000000002229d4b, 0x14aad966ab148eac), + RTUINT128_INIT_C(0x0000000000000000, 0x00000000a1690243), RTUINT128_INIT_C(0x000000000157d7e1, 0xa7fd2bf822a35774) + }, + { /* i=2570; 124 / 89 */ + RTUINT128_INIT_C(0x01d472ae4f9e431f, 0xcaf3d284aa7a33b9), RTUINT128_INIT_C(0x0000000001acb51b, 0x2377d70bf1c5c775), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000117bb165b), RTUINT128_INIT_C(0x00000000012f0985, 0xc8a732a584913f22) + }, + { /* i=2571; 120 / 49 */ + RTUINT128_INIT_C(0x00e55adef4c95f4a, 0xb7886abe75a8944e), RTUINT128_INIT_C(0x0000000000000000, 0x0001eece7a57adb7), + RTUINT128_INIT_C(0x0000000000000076, 0xa98ac9eeb0ee5ea1), RTUINT128_INIT_C(0x0000000000000000, 0x000135e402992237) + }, + { /* i=2572; 52 / 32 */ + RTUINT128_INIT_C(0x0000000000000000, 0x0004df08a49b461f), RTUINT128_INIT_C(0x0000000000000000, 0x0000000090b9a015), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000089dd7), RTUINT128_INIT_C(0x0000000000000000, 0x0000000040e0f37c) + }, + { /* i=2573; 92 / 33 */ + RTUINT128_INIT_C(0x0000000000e51e8a, 0xbf8c1a123d1ad4bd), RTUINT128_INIT_C(0x0000000000000000, 0x000000007a7351d7), + RTUINT128_INIT_C(0x0000000000000000, 0x01df019b0ee2a243), RTUINT128_INIT_C(0x0000000000000000, 0x0000000035545b78) + }, + { /* i=2574; 124 / 78 */ + RTUINT128_INIT_C(0x0628532d75b8997d, 0x9acd0166a1f40bdb), RTUINT128_INIT_C(0x0000000000003909, 0xd391c10349694ae0), + RTUINT128_INIT_C(0x0000000000000000, 0x00001ba2ded18503), RTUINT128_INIT_C(0x0000000000003743, 0x69f1c994b0f1cb3b) + }, + { /* i=2575; 126 / 14 */ + RTUINT128_INIT_C(0x1d7b1a28e1f40759, 0x9f148af46e738725), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000003e88), + RTUINT128_INIT_C(0x000078b17b582ddd, 0x9327017adda7f48a), RTUINT128_INIT_C(0x0000000000000000, 0x00000000000031d5) + }, + { /* i=2576; 41 / 69 */ + RTUINT128_INIT_C(0x0000000000000000, 0x000001ad8665b379), RTUINT128_INIT_C(0x0000000000000016, 0x34c4f873f3fe6343), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x0000000000000000, 0x000001ad8665b379) + }, + { /* i=2577; 120 / 82 */ + RTUINT128_INIT_C(0x00cd46fe7cb0c35d, 0x5b4146ecab9fc02f), RTUINT128_INIT_C(0x000000000001eeae, 0x433eb5dbcf0c92ed), + RTUINT128_INIT_C(0x0000000000000000, 0x0000006a3b6df5d4), RTUINT128_INIT_C(0x000000000000f211, 0xd4c36b64feb042eb) + }, + { /* i=2578; 115 / 57 */ + RTUINT128_INIT_C(0x000383cd2d5db6a9, 0xfc6cb14849f98e38), RTUINT128_INIT_C(0x0000000000000000, 0x007776b327bf1c53), + RTUINT128_INIT_C(0x0000000000000000, 0x078831c1aed87426), RTUINT128_INIT_C(0x0000000000000000, 0x0022389a7abdbde6) + }, + { /* i=2579; 113 / 7 */ + RTUINT128_INIT_C(0x0001566cff0a209a, 0xc1f649b1ca6fa632), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000001), + RTUINT128_INIT_C(0x0001566cff0a209a, 0xc1f649b1ca6fa632), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000) + }, + { /* i=2580; 115 / 123 */ + RTUINT128_INIT_C(0x0005daa1e6c537b3, 0xfdf5916371b38529), RTUINT128_INIT_C(0x01eb4b26fdd91e31, 0xd85c75f92a136809), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x0005daa1e6c537b3, 0xfdf5916371b38529) + }, + { /* i=2581; 117 / 112 */ + RTUINT128_INIT_C(0x001d8f0968020974, 0x1872071a88a8991a), RTUINT128_INIT_C(0x0000061921ad7ae0, 0x22f5efbbb0c0b5ac), + RTUINT128_INIT_C(0x0000000000000000, 0x00000000000004d8), RTUINT128_INIT_C(0x0000054e47b6dbca, 0xc130d1fa63389ffa) + }, + { /* i=2582; 119 / 35 */ + RTUINT128_INIT_C(0x004d10665f60df8d, 0x087a66fe7fff10ce), RTUINT128_INIT_C(0x0000000000000000, 0x0000000297b23644), + RTUINT128_INIT_C(0x00000000001db99c, 0xc56f4a1703333772), RTUINT128_INIT_C(0x0000000000000000, 0x000000000d6e4a86) + }, + { /* i=2583; 124 / 57 */ + RTUINT128_INIT_C(0x0e0654a12baa973b, 0x8bbd95f325b22fc0), RTUINT128_INIT_C(0x0000000000000000, 0x013c3b2a4c32da4b), + RTUINT128_INIT_C(0x000000000000000b, 0x5a7f1b42c2f31258), RTUINT128_INIT_C(0x0000000000000000, 0x00a4380555acdff8) + }, + { /* i=2584; 118 / 53 */ + RTUINT128_INIT_C(0x002365c7987bb60c, 0xbeb8c3db31aa6f79), RTUINT128_INIT_C(0x0000000000000000, 0x00117f9c1f3c279c), + RTUINT128_INIT_C(0x0000000000000002, 0x05dc6fbccc7c061a), RTUINT128_INIT_C(0x0000000000000000, 0x00075a011d10c1a1) + }, + { /* i=2585; 45 / 8 */ + RTUINT128_INIT_C(0x0000000000000000, 0x000015e57ab9f468), RTUINT128_INIT_C(0x0000000000000000, 0x00000000000000bc), + RTUINT128_INIT_C(0x0000000000000000, 0x0000001dd0fe4406), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000) + }, + { /* i=2586; 52 / 2 */ + RTUINT128_INIT_C(0x0000000000000000, 0x0009b0acd178da36), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000001), + RTUINT128_INIT_C(0x0000000000000000, 0x0009b0acd178da36), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000) + }, + { /* i=2587; 125 / 7 */ + RTUINT128_INIT_C(0x1c41e7515fc698d0, 0x01ad8ad8d372476d), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000012), + RTUINT128_INIT_C(0x0191e22f2ffccf99, 0xc7344ed3283103f7), RTUINT128_INIT_C(0x0000000000000000, 0x000000000000000f) + }, + { /* i=2588; 50 / 8 */ + RTUINT128_INIT_C(0x0000000000000000, 0x000218882c33eee0), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000060), + RTUINT128_INIT_C(0x0000000000000000, 0x00000596c075dfd2), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000020) + }, + { /* i=2589; 122 / 37 */ + RTUINT128_INIT_C(0x001cc6ba93e2a855, 0x80bffea35e075b5c), RTUINT128_INIT_C(0x0000000000000000, 0x000000073cd08f2d), + RTUINT128_INIT_C(0x000000000003f9d8, 0xee14c0532f8fe828), RTUINT128_INIT_C(0x0000000000000000, 0x000000049e8d3454) + }, + { /* i=2590; 65 / 15 */ + RTUINT128_INIT_C(0x0000000000000001, 0x63764ad0f7de1eb5), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000004783), + RTUINT128_INIT_C(0x0000000000000000, 0x0004f87ead0c515b), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000004024) + }, + { /* i=2591; 117 / 74 */ + RTUINT128_INIT_C(0x001876df457bcc9e, 0xd653f74f292ad60d), RTUINT128_INIT_C(0x000000000000036e, 0x9be8ebb59813037b), + RTUINT128_INIT_C(0x0000000000000000, 0x00000720cf936416), RTUINT128_INIT_C(0x0000000000000103, 0xbd864731358b7d7b) + }, + { /* i=2592; 80 / 113 */ + RTUINT128_INIT_C(0x000000000000a14e, 0x7ca8f4daafbe566f), RTUINT128_INIT_C(0x000010971aba229e, 0x5dbb7f1f457e2c53), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x000000000000a14e, 0x7ca8f4daafbe566f) + }, + { /* i=2593; 123 / 46 */ + RTUINT128_INIT_C(0x07556ecf01dd9091, 0x6579c29a89c76910), RTUINT128_INIT_C(0x0000000000000000, 0x00002e72a62f826b), + RTUINT128_INIT_C(0x000000000000286b, 0x94625656baefe1c4), RTUINT128_INIT_C(0x0000000000000000, 0x000001b50be28424) + }, + { /* i=2594; 117 / 71 */ + RTUINT128_INIT_C(0x0017a8e598c46fec, 0xb4d49cfff9b9245c), RTUINT128_INIT_C(0x000000000000005b, 0x3bd4ce88f64db7bf), + RTUINT128_INIT_C(0x0000000000000000, 0x00004263885b056d), RTUINT128_INIT_C(0x0000000000000013, 0x9c39dbc4cd262d09) + }, + { /* i=2595; 115 / 70 */ + RTUINT128_INIT_C(0x0000377fa929a3b0, 0x892fe0aa98ad288a), RTUINT128_INIT_C(0x000000000000001f, 0xd67cc758184c85bc), + RTUINT128_INIT_C(0x0000000000000000, 0x000001be40317961), RTUINT128_INIT_C(0x000000000000000c, 0xc66eef309f7ca04e) + }, + { /* i=2596; 72 / 55 */ + RTUINT128_INIT_C(0x0000000000000078, 0x93f9b8917b68e7c9), RTUINT128_INIT_C(0x0000000000000000, 0x007e074d85fa3441), + RTUINT128_INIT_C(0x0000000000000000, 0x000000000000f4ed), RTUINT128_INIT_C(0x0000000000000000, 0x00571219f8f8939c) + }, + { /* i=2597; 114 / 126 */ + RTUINT128_INIT_C(0x000117bfe03aa260, 0x63593bc2b9529bf4), RTUINT128_INIT_C(0x2359848e0691617c, 0x972b4bbb1b0c6e67), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x000117bfe03aa260, 0x63593bc2b9529bf4) + }, + { /* i=2598; 116 / 56 */ + RTUINT128_INIT_C(0x0003fed09e45c9cb, 0xec44a17957a552fd), RTUINT128_INIT_C(0x0000000000000000, 0x002f63463d2ea9f4), + RTUINT128_INIT_C(0x0000000000000000, 0x15957ca90446fc93), RTUINT128_INIT_C(0x0000000000000000, 0x0007a46bfdd58be1) + }, + { /* i=2599; 122 / 110 */ + RTUINT128_INIT_C(0x03a2a6ceb5e40109, 0xbd2f2ad8f6071472), RTUINT128_INIT_C(0x00000c9c52bfea33, 0xdbde0f8427a7defb), + RTUINT128_INIT_C(0x0000000000000000, 0x00000000000049cc), RTUINT128_INIT_C(0x000006a40b2c9604, 0x35ce1e3a7dabd16e) + }, + { /* i=2600; 122 / 117 */ + RTUINT128_INIT_C(0x00b6bc08100bdfe9, 0xe18d417fdd401415), RTUINT128_INIT_C(0x0006f47c8f009806, 0xf5579b15f6154a10), + RTUINT128_INIT_C(0x0000000000000000, 0x000000000000001a), RTUINT128_INIT_C(0x0001e76189fc6f34, 0xf6a78144df168e75) + }, + { /* i=2601; 121 / 66 */ + RTUINT128_INIT_C(0x00c740f3a238118d, 0x2b991869df08d1e6), RTUINT128_INIT_C(0x0000000000000001, 0x9c6855a7223247bd), + RTUINT128_INIT_C(0x0000000000000000, 0x007baf8f7d7158a1), RTUINT128_INIT_C(0x0000000000000000, 0x9521dbc02153bc09) + }, + { /* i=2602; 102 / 58 */ + RTUINT128_INIT_C(0x000000143613d8c6, 0x8668bd2616003f0c), RTUINT128_INIT_C(0x0000000000000000, 0x03086763a8b865ac), + RTUINT128_INIT_C(0x0000000000000000, 0x000006aa0637773b), RTUINT128_INIT_C(0x0000000000000000, 0x023677889c49dc68) + }, + { /* i=2603; 123 / 94 */ + RTUINT128_INIT_C(0x018505166d653aeb, 0xf47f49cf550ebbd6), RTUINT128_INIT_C(0x000000001ce7ee2d, 0x80bd77088812db87), + RTUINT128_INIT_C(0x0000000000000000, 0x000000000d7546ca), RTUINT128_INIT_C(0x0000000008ed642d, 0xbaa3e21a9e739950) + }, + { /* i=2604; 114 / 103 */ + RTUINT128_INIT_C(0x0002fc4f6a934c00, 0xfe9e5e911a7ac010), RTUINT128_INIT_C(0x00000009b25b83c2, 0xe3990c1c1170727a), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000004ed2), RTUINT128_INIT_C(0x00000003395bd4c9, 0xa961e23a895babfc) + }, + { /* i=2605; 115 / 14 */ + RTUINT128_INIT_C(0x0005154dcd7e4a5b, 0x7a21c6f9a97a5f95), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000003668), + RTUINT128_INIT_C(0x00000017eb14648b, 0x960bf317cd4d13bf), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000ffd) + }, + { /* i=2606; 121 / 70 */ + RTUINT128_INIT_C(0x00c8ca5670c780f5, 0xf97557b0d52de430), RTUINT128_INIT_C(0x0000000000000018, 0xcc41e15604776af0), + RTUINT128_INIT_C(0x0000000000000000, 0x000818da21e8a33b), RTUINT128_INIT_C(0x000000000000000a, 0x500da2a3eb116ee0) + }, + { /* i=2607; 99 / 65 */ + RTUINT128_INIT_C(0x0000000529e080fe, 0x030bd9e51f01416a), RTUINT128_INIT_C(0x0000000000000000, 0xf2a38481318b8d3b), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000572ab0694), RTUINT128_INIT_C(0x0000000000000000, 0xe55238c8989b394e) + }, + { /* i=2608; 36 / 36 */ + RTUINT128_INIT_C(0x0000000000000000, 0x000000063f305121), RTUINT128_INIT_C(0x0000000000000000, 0x0000000844fc0d13), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x0000000000000000, 0x000000063f305121) + }, + { /* i=2609; 31 / 127 */ + RTUINT128_INIT_C(0x0000000000000000, 0x0000000033e18273), RTUINT128_INIT_C(0x4ee6e3da1dba0a00, 0xd245074c7f3ac0f3), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x0000000000000000, 0x0000000033e18273) + }, + { /* i=2610; 106 / 15 */ + RTUINT128_INIT_C(0x0000028f762d515e, 0xd303e6765680ddd1), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000006d0f), + RTUINT128_INIT_C(0x0000000006029b10, 0xfc2f15bd5c753e8d), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000002a8e) + }, + { /* i=2611; 115 / 76 */ + RTUINT128_INIT_C(0x00006b1cef46565c, 0xa47d7cb03998721e), RTUINT128_INIT_C(0x000000000000050a, 0x2c4bb85750f9dbfb), + RTUINT128_INIT_C(0x0000000000000000, 0x0000001540f1ad56), RTUINT128_INIT_C(0x000000000000047a, 0x9489cfd454b4eccc) + }, + { /* i=2612; 65 / 30 */ + RTUINT128_INIT_C(0x0000000000000000, 0x4890f82c5977a2ba), RTUINT128_INIT_C(0x0000000000000000, 0x000000002490dfeb), + RTUINT128_INIT_C(0x0000000000000000, 0x00000001fc0a6340), RTUINT128_INIT_C(0x0000000000000000, 0x000000001b79c6fa) + }, + { /* i=2613; 78 / 55 */ + RTUINT128_INIT_C(0x0000000000003865, 0xc33fb3cad447210d), RTUINT128_INIT_C(0x0000000000000000, 0x00331b0bf8f4fbd2), + RTUINT128_INIT_C(0x0000000000000000, 0x00000000011a8215), RTUINT128_INIT_C(0x0000000000000000, 0x002229859af9d4d3) + }, + { /* i=2614; 123 / 115 */ + RTUINT128_INIT_C(0x001bc1073c85855f, 0x2ac766a83e96c5e6), RTUINT128_INIT_C(0x0004c70d604b9f16, 0x4c9749f972e9bbce), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000005), RTUINT128_INIT_C(0x0003ddc45b0b69ef, 0xabd2f4c900061ae0) + }, + { /* i=2615; 46 / 7 */ + RTUINT128_INIT_C(0x0000000000000000, 0x0000248676de9055), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000058), + RTUINT128_INIT_C(0x0000000000000000, 0x0000006a4159cd46), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000045) + }, + { /* i=2616; 125 / 80 */ + RTUINT128_INIT_C(0x19985f0bc8ab865f, 0x3cdbc41528d26bc4), RTUINT128_INIT_C(0x0000000000005170, 0x960d0d6b1946e6a5), + RTUINT128_INIT_C(0x0000000000000000, 0x00005074e5e89e22), RTUINT128_INIT_C(0x000000000000038c, 0xadf87aeb6c85f3da) + }, + { /* i=2617; 114 / 126 */ + RTUINT128_INIT_C(0x00011cc9c064566d, 0x4a2cba1b50cdb747), RTUINT128_INIT_C(0x3d97294964cefbc4, 0xf1baf1134c6602f7), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x00011cc9c064566d, 0x4a2cba1b50cdb747) + }, + { /* i=2618; 121 / 75 */ + RTUINT128_INIT_C(0x0075846e86045080, 0xba84ad58aef32d32), RTUINT128_INIT_C(0x00000000000007cb, 0x2ee3d074ed872b0b), + RTUINT128_INIT_C(0x0000000000000000, 0x00000f141aa02927), RTUINT128_INIT_C(0x000000000000016e, 0x762400c7d496db85) + }, + { /* i=2619; 122 / 123 */ + RTUINT128_INIT_C(0x034127b1e69ab2a4, 0xe80a35231a579fcd), RTUINT128_INIT_C(0x0776add4fa071a69, 0x47aa5b86a3a698c4), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x034127b1e69ab2a4, 0xe80a35231a579fcd) + }, + { /* i=2620; 88 / 17 */ + RTUINT128_INIT_C(0x000000000039dc25, 0x3f4a49e9b6dc5b52), RTUINT128_INIT_C(0x0000000000000000, 0x000000000001cc7b), + RTUINT128_INIT_C(0x0000000000000020, 0x2aae0c0ebeca9954), RTUINT128_INIT_C(0x0000000000000000, 0x000000000001bff6) + }, + { /* i=2621; 12 / 8 */ + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000eb2), RTUINT128_INIT_C(0x0000000000000000, 0x000000000000008e), + RTUINT128_INIT_C(0x0000000000000000, 0x000000000000001a), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000046) + }, + { /* i=2622; 114 / 65 */ + RTUINT128_INIT_C(0x00006c3ef18c820b, 0xe984a93351522c40), RTUINT128_INIT_C(0x0000000000000000, 0x62159afb0ab2b07d), + RTUINT128_INIT_C(0x0000000000000000, 0x00011a857c3e9b63), RTUINT128_INIT_C(0x0000000000000000, 0x5f1932efb3163ce9) + }, + { /* i=2623; 122 / 69 */ + RTUINT128_INIT_C(0x015786b68008e46c, 0xac7970f48514eb13), RTUINT128_INIT_C(0x0000000000000007, 0x2d229e309fd86f98), + RTUINT128_INIT_C(0x0000000000000000, 0x002fde966ab0bdf8), RTUINT128_INIT_C(0x0000000000000001, 0xaa0995c5388597d3) + }, + { /* i=2624; 70 / 3 */ + RTUINT128_INIT_C(0x000000000000002e, 0x992988dc138d39b3), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000003), + RTUINT128_INIT_C(0x000000000000000f, 0x88632d9eb12f133b), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000002) + }, + { /* i=2625; 32 / 119 */ + RTUINT128_INIT_C(0x0000000000000000, 0x0000000030dfd86a), RTUINT128_INIT_C(0x001fdf72a249a274, 0xe03432d193e7473a), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x0000000000000000, 0x0000000030dfd86a) + }, + { /* i=2626; 126 / 122 */ + RTUINT128_INIT_C(0x26df9ffc0030d049, 0xfc504499d89172d7), RTUINT128_INIT_C(0x00ab419216f54dcb, 0x771f601f82b4dffd), + RTUINT128_INIT_C(0x0000000000000000, 0x000000000000003a), RTUINT128_INIT_C(0x0012c4e2cc9d3030, 0xff347d763b96b385) + }, + { /* i=2627; 80 / 2 */ + RTUINT128_INIT_C(0x0000000000007034, 0xedde61dc7e457909), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000003), + RTUINT128_INIT_C(0x0000000000002566, 0xf9f4cb497f6c7dad), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000002) + }, + { /* i=2628; 120 / 83 */ + RTUINT128_INIT_C(0x00cf51c117af7252, 0x55f955e38e098b80), RTUINT128_INIT_C(0x000000000003faeb, 0x54299bba10986016), + RTUINT128_INIT_C(0x0000000000000000, 0x000000341699b4bc), RTUINT128_INIT_C(0x0000000000013447, 0xd7579dc8e96d8358) + }, + { /* i=2629; 44 / 7 */ + RTUINT128_INIT_C(0x0000000000000000, 0x00000a381be77924), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000058), + RTUINT128_INIT_C(0x0000000000000000, 0x0000001dba7fb8a6), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000014) + }, + { /* i=2630; 21 / 16 */ + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000190027), RTUINT128_INIT_C(0x0000000000000000, 0x000000000000d1e6), + RTUINT128_INIT_C(0x0000000000000000, 0x000000000000001e), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000006733) + }, + { /* i=2631; 119 / 42 */ + RTUINT128_INIT_C(0x00734950a85c87e7, 0xc8652ccf31c5d916), RTUINT128_INIT_C(0x0000000000000000, 0x000003fd6ab659ba), + RTUINT128_INIT_C(0x0000000000001ce4, 0xfd0e74d9dc8cad61), RTUINT128_INIT_C(0x0000000000000000, 0x0000012d9e53279c) + }, + { /* i=2632; 57 / 35 */ + RTUINT128_INIT_C(0x0000000000000000, 0x01659a5a780928ca), RTUINT128_INIT_C(0x0000000000000000, 0x000000008aab1bc8), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000002942e8c), RTUINT128_INIT_C(0x0000000000000000, 0x0000000043d8076a) + }, + { /* i=2633; 90 / 2 */ + RTUINT128_INIT_C(0x0000000002f77e10, 0x4e22065feed6f2bc), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000002), + RTUINT128_INIT_C(0x00000000017bbf08, 0x2711032ff76b795e), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000) + }, + { /* i=2634; 19 / 8 */ + RTUINT128_INIT_C(0x0000000000000000, 0x000000000007c567), RTUINT128_INIT_C(0x0000000000000000, 0x000000000000000b), + RTUINT128_INIT_C(0x0000000000000000, 0x000000000000b4da), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000009) + }, + { /* i=2635; 22 / 3 */ + RTUINT128_INIT_C(0x0000000000000000, 0x00000000001b65ae), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000004), + RTUINT128_INIT_C(0x0000000000000000, 0x000000000006d96b), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000002) + }, + { /* i=2636; 111 / 39 */ + RTUINT128_INIT_C(0x000036e390564af1, 0xcb467a1b84db1e1c), RTUINT128_INIT_C(0x0000000000000000, 0x0000007a664474a2), + RTUINT128_INIT_C(0x0000000000000072, 0xcd0418f85d9b7c78), RTUINT128_INIT_C(0x0000000000000000, 0x00000070f42ffa2c) + }, + { /* i=2637; 122 / 78 */ + RTUINT128_INIT_C(0x0247e7bf5af2e28c, 0xdeb10673c899c4d9), RTUINT128_INIT_C(0x0000000000001291, 0x4459fdc174e8534d), + RTUINT128_INIT_C(0x0000000000000000, 0x00001f72a26f965d), RTUINT128_INIT_C(0x00000000000002d2, 0xaae85bef570163e0) + }, + { /* i=2638; 116 / 29 */ + RTUINT128_INIT_C(0x00040c7f1cbdbe3d, 0x3e600abd6f4ae5b1), RTUINT128_INIT_C(0x0000000000000000, 0x000000000047417c), + RTUINT128_INIT_C(0x000000000e8bcf91, 0x5ecca392d30af321), RTUINT128_INIT_C(0x0000000000000000, 0x00000000001ac0b5) + }, + { /* i=2639; 115 / 65 */ + RTUINT128_INIT_C(0x00030898d13c33b0, 0x3c8719ff2cfca66d), RTUINT128_INIT_C(0x0000000000000000, 0xa1860b282c0c8f03), + RTUINT128_INIT_C(0x0000000000000000, 0x0004ced59d10f4b6), RTUINT128_INIT_C(0x0000000000000000, 0x517f05771c901e4b) + }, + { /* i=2640; 116 / 83 */ + RTUINT128_INIT_C(0x0006f24522aab681, 0x73c2e93e8aefad4b), RTUINT128_INIT_C(0x000000000003f12d, 0x43348422a0ccc669), + RTUINT128_INIT_C(0x0000000000000000, 0x00000001c318f5d0), RTUINT128_INIT_C(0x0000000000029eb4, 0x321a947a55d3fafb) + }, + { /* i=2641; 22 / 78 */ + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000078af0), RTUINT128_INIT_C(0x0000000000003c23, 0xd03094c936d93ea5), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000078af0) + }, + { /* i=2642; 123 / 113 */ + RTUINT128_INIT_C(0x0297086640e2cab3, 0x52ab594aa4699c03), RTUINT128_INIT_C(0x0001884286489a06, 0xd9c505064712cc73), + RTUINT128_INIT_C(0x0000000000000000, 0x00000000000001b0), RTUINT128_INIT_C(0x00011823a65edf23, 0xd632deb2b4b099f3) + }, + { /* i=2643; 84 / 62 */ + RTUINT128_INIT_C(0x00000000000b55f6, 0xbc3ac27807d6451a), RTUINT128_INIT_C(0x0000000000000000, 0x23de91c3e5b4919a), + RTUINT128_INIT_C(0x0000000000000000, 0x000000000050e751), RTUINT128_INIT_C(0x0000000000000000, 0x000f16c8ea323d60) + }, + { /* i=2644; 73 / 27 */ + RTUINT128_INIT_C(0x00000000000000e7, 0x14b2565c637c6daf), RTUINT128_INIT_C(0x0000000000000000, 0x000000000524b841), + RTUINT128_INIT_C(0x0000000000000000, 0x00002ced6536ba6d), RTUINT128_INIT_C(0x0000000000000000, 0x000000000244c002) + }, + { /* i=2645; 125 / 45 */ + RTUINT128_INIT_C(0x1c116699919eb0a5, 0xa4e77bf8a39d9d26), RTUINT128_INIT_C(0x0000000000000000, 0x0000079279a74a85), + RTUINT128_INIT_C(0x000000000003b4ec, 0x242cae75d0c4a751), RTUINT128_INIT_C(0x0000000000000000, 0x000003d9e63e4611) + }, + { /* i=2646; 116 / 95 */ + RTUINT128_INIT_C(0x000f76c873d1750e, 0x25c0ab840a7bf26b), RTUINT128_INIT_C(0x000000007bce81e9, 0x2161307079dc7261), + RTUINT128_INIT_C(0x0000000000000000, 0x00000000001ff9bb), RTUINT128_INIT_C(0x000000006c61c386, 0x5e062121c1750c90) + }, + { /* i=2647; 123 / 115 */ + RTUINT128_INIT_C(0x03d293f195a0ddb9, 0xd4eb1e9f28f4776d), RTUINT128_INIT_C(0x00001d1cbd4d0afe, 0x99f424d90b5b38eb), + RTUINT128_INIT_C(0x0000000000000000, 0x000000000000219d), RTUINT128_INIT_C(0x000004ea8ef64dbc, 0xf1708b0c6fac444e) + }, + { /* i=2648; 106 / 57 */ + RTUINT128_INIT_C(0x00000068901b3459, 0xc07e3d10614e97fb), RTUINT128_INIT_C(0x0000000000000000, 0x0050576ba916871f), + RTUINT128_INIT_C(0x0000000000000000, 0x00014d2ddb353179), RTUINT128_INIT_C(0x0000000000000000, 0x001ff51ba760cb54) + }, + { /* i=2649; 113 / 43 */ + RTUINT128_INIT_C(0x0000216276bbd138, 0xb5783648ed1943d2), RTUINT128_INIT_C(0x0000000000000000, 0x000001fcbb96b6a8), + RTUINT128_INIT_C(0x0000000000000010, 0xccad04cbfec57c38), RTUINT128_INIT_C(0x0000000000000000, 0x000000b5a45fef12) + }, + { /* i=2650; 98 / 14 */ + RTUINT128_INIT_C(0x00000001cb98d1c4, 0x29a8492912dc7e9d), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000003db9), + RTUINT128_INIT_C(0x0000000000077237, 0xbab99951c9ad7379), RTUINT128_INIT_C(0x0000000000000000, 0x000000000000372c) + }, + { /* i=2651; 110 / 44 */ + RTUINT128_INIT_C(0x000003acf3fa4b47, 0xf1e7a25b4a75a215), RTUINT128_INIT_C(0x0000000000000000, 0x00000dcaa110d903), + RTUINT128_INIT_C(0x0000000000000000, 0x443a17e104c75aca), RTUINT128_INIT_C(0x0000000000000000, 0x00000bb8898a57b7) + }, + { /* i=2652; 118 / 124 */ + RTUINT128_INIT_C(0x00005674669a5e01, 0x14cddb78e4a6f3b2), RTUINT128_INIT_C(0x0e1e335b4a24a573, 0x1335ab73c4c7634e), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x00005674669a5e01, 0x14cddb78e4a6f3b2) + }, + { /* i=2653; 58 / 49 */ + RTUINT128_INIT_C(0x0000000000000000, 0x02be179e4991e6ec), RTUINT128_INIT_C(0x0000000000000000, 0x0000b9b25bc77f60), + RTUINT128_INIT_C(0x0000000000000000, 0x00000000000003c7), RTUINT128_INIT_C(0x0000000000000000, 0x0000a6e59affc34c) + }, + { /* i=2654; 100 / 45 */ + RTUINT128_INIT_C(0x00000008361b4d41, 0x6f7620d5090ed21f), RTUINT128_INIT_C(0x0000000000000000, 0x0000061724614d2c), + RTUINT128_INIT_C(0x0000000000000000, 0x015926a15b4f3ca0), RTUINT128_INIT_C(0x0000000000000000, 0x000004b60994469f) + }, + { /* i=2655; 119 / 75 */ + RTUINT128_INIT_C(0x0034dbe3ca9d8af4, 0x28d2615a7b56a86d), RTUINT128_INIT_C(0x000000000000053c, 0x70d89db232812f64), + RTUINT128_INIT_C(0x0000000000000000, 0x00000a1858c24bf9), RTUINT128_INIT_C(0x0000000000000510, 0x6590c2ab39054429) + }, + { /* i=2656; 19 / 5 */ + RTUINT128_INIT_C(0x0000000000000000, 0x000000000002b181), RTUINT128_INIT_C(0x0000000000000000, 0x000000000000001c), + RTUINT128_INIT_C(0x0000000000000000, 0x00000000000018a0), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000001) + }, + { /* i=2657; 25 / 101 */ + RTUINT128_INIT_C(0x0000000000000000, 0x00000000008532ae), RTUINT128_INIT_C(0x0000001d816ec357, 0x4c787d69127041cd), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x0000000000000000, 0x00000000008532ae) + }, + { /* i=2658; 96 / 46 */ + RTUINT128_INIT_C(0x00000000db64f8c2, 0xfbe59665758d01f2), RTUINT128_INIT_C(0x0000000000000000, 0x00001ba8bd5e8865), + RTUINT128_INIT_C(0x0000000000000000, 0x0007ee9c96d5cf0a), RTUINT128_INIT_C(0x0000000000000000, 0x0000198ff5890300) + }, + { /* i=2659; 114 / 120 */ + RTUINT128_INIT_C(0x000174bed4c42cd4, 0x035b1f390ca95303), RTUINT128_INIT_C(0x00fd85511609dd22, 0x125065fb408d7380), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x000174bed4c42cd4, 0x035b1f390ca95303) + }, + { /* i=2660; 83 / 77 */ + RTUINT128_INIT_C(0x0000000000043492, 0xe27fae6285588f5c), RTUINT128_INIT_C(0x0000000000000c84, 0x30cf187c1ff26b90), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000056), RTUINT128_INIT_C(0x000000000000002a, 0x7ced74afc9e86cfc) + }, + { /* i=2661; 126 / 52 */ + RTUINT128_INIT_C(0x1188ef858631754e, 0x8c2ce1d62eafe222), RTUINT128_INIT_C(0x0000000000000000, 0x0006195354f44d24), + RTUINT128_INIT_C(0x00000000000002e0, 0x053cc6020e8a7b66), RTUINT128_INIT_C(0x0000000000000000, 0x0000269f66e0d9ca) + }, + { /* i=2662; 122 / 68 */ + RTUINT128_INIT_C(0x0359ecc46c98864f, 0x7c0e8fc9a7cb396e), RTUINT128_INIT_C(0x0000000000000000, 0x22e8339ea8d1f629), + RTUINT128_INIT_C(0x0000000000000000, 0x1893d1b27d2cba5b), RTUINT128_INIT_C(0x0000000000000000, 0x08cfc4f0c442eedb) + }, + { /* i=2663; 122 / 23 */ + RTUINT128_INIT_C(0x0115a9c5e8cbb6d6, 0x86b01b66befefa24), RTUINT128_INIT_C(0x0000000000000000, 0x00000000003b2107), + RTUINT128_INIT_C(0x00000004b225aa03, 0xb01e858948b76cf7), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000022863) + }, + { /* i=2664; 101 / 34 */ + RTUINT128_INIT_C(0x0000000d034a9ce2, 0x7b945278c0c07358), RTUINT128_INIT_C(0x0000000000000000, 0x0000000350a0e7af), + RTUINT128_INIT_C(0x0000000000000003, 0xeced9434147edae5), RTUINT128_INIT_C(0x0000000000000000, 0x00000000e7642dcd) + }, + { /* i=2665; 128 / 120 */ + RTUINT128_INIT_C(0x1c0b248fe41ee62b, 0x7ec0f8f8e05ec4b8), RTUINT128_INIT_C(0x002b01e73bd309ab, 0x0995b40043cbf876), + RTUINT128_INIT_C(0x0000000000000000, 0x00000000000000a6), RTUINT128_INIT_C(0x0027e89f1946a143, 0x47ae40ccea1ba834) + }, + { /* i=2666; 87 / 76 */ + RTUINT128_INIT_C(0x0000000000527111, 0xd68cb84af7529ed5), RTUINT128_INIT_C(0x0000000000000857, 0x201012c86c9e39f8), + RTUINT128_INIT_C(0x0000000000000000, 0x00000000000009e2), RTUINT128_INIT_C(0x0000000000000406, 0xf7b317898399b9e5) + }, + { /* i=2667; 122 / 95 */ + RTUINT128_INIT_C(0x035dc57d7fd42f32, 0xe35f1edcdc6dbfc5), RTUINT128_INIT_C(0x0000000005282943, 0xeb374003941b4fd3), + RTUINT128_INIT_C(0x0000000000000000, 0x00000000a71c6c24), RTUINT128_INIT_C(0x0000000002e6f59d, 0x2a9697d122d58219) + }, + { /* i=2668; 124 / 125 */ + RTUINT128_INIT_C(0x06508d3d78be5fb2, 0x4fb54ca0dc7ec5fc), RTUINT128_INIT_C(0x1747662fa76c554f, 0xe07732e57b0bc732), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x06508d3d78be5fb2, 0x4fb54ca0dc7ec5fc) + }, + { /* i=2669; 119 / 83 */ + RTUINT128_INIT_C(0x0069850d465288b9, 0x78dff7f83fb47c85), RTUINT128_INIT_C(0x0000000000008a08, 0x5c89fab32a0bdf1f), + RTUINT128_INIT_C(0x0000000000000000, 0x000000c3b34fa316), RTUINT128_INIT_C(0x00000000000059bc, 0xffa91d838c0d92db) + }, + { /* i=2670; 126 / 100 */ + RTUINT128_INIT_C(0x12bcb0a3212f949e, 0xa91c099c3014bbbf), RTUINT128_INIT_C(0x00000002a72c70af, 0xe8d9336aba403ef0), + RTUINT128_INIT_C(0x0000000000000000, 0x000000000710028e), RTUINT128_INIT_C(0x00000000334b353e, 0xac774937e0f3f29f) + }, + { /* i=2671; 124 / 90 */ + RTUINT128_INIT_C(0x04efcd7b90bf92ab, 0x49be9cd47341e7b3), RTUINT128_INIT_C(0x0000000000350001, 0xfb4fca2f8644cf11), + RTUINT128_INIT_C(0x0000000000000000, 0x00000017d866dfb1), RTUINT128_INIT_C(0x00000000001838ba, 0x4e0c435ad488edf2) + }, + { /* i=2672; 90 / 28 */ + RTUINT128_INIT_C(0x0000000002e79f94, 0x071ff50101fca9b8), RTUINT128_INIT_C(0x0000000000000000, 0x0000000001b51d66), + RTUINT128_INIT_C(0x0000000000000001, 0xb38261ace138024c), RTUINT128_INIT_C(0x0000000000000000, 0x0000000001ad2370) + }, + { /* i=2673; 89 / 45 */ + RTUINT128_INIT_C(0x0000000000e0fa8c, 0xfcece1e921ed8d8d), RTUINT128_INIT_C(0x0000000000000000, 0x00000a6eed380ebd), + RTUINT128_INIT_C(0x0000000000000000, 0x00001590422142e8), RTUINT128_INIT_C(0x0000000000000000, 0x000000e312f67845) + }, + { /* i=2674; 76 / 123 */ + RTUINT128_INIT_C(0x00000000000000d0, 0xb0d3afd9c05c7267), RTUINT128_INIT_C(0x0370b50c607cd2d1, 0xacf39f54daab63c0), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x00000000000000d0, 0xb0d3afd9c05c7267) + }, + { /* i=2675; 115 / 71 */ + RTUINT128_INIT_C(0x000399cd53dc03fb, 0x819bf8af563a86fb), RTUINT128_INIT_C(0x000000000000002b, 0x7b24464523152c53), + RTUINT128_INIT_C(0x0000000000000000, 0x0000153339d0b7c9), RTUINT128_INIT_C(0x000000000000000b, 0xad0e84b7297b64d0) + }, + { /* i=2676; 87 / 15 */ + RTUINT128_INIT_C(0x00000000000ba2c1, 0x9ebf79c72661ecc0), RTUINT128_INIT_C(0x0000000000000000, 0x000000000000765e), + RTUINT128_INIT_C(0x0000000000000019, 0x2a56f06f0f2ece86), RTUINT128_INIT_C(0x0000000000000000, 0x000000000000538c) + }, + { /* i=2677; 73 / 44 */ + RTUINT128_INIT_C(0x00000000000001a8, 0x6100335543c6ccda), RTUINT128_INIT_C(0x0000000000000000, 0x000007f41b88877f), + RTUINT128_INIT_C(0x0000000000000000, 0x00000000355b718d), RTUINT128_INIT_C(0x0000000000000000, 0x0000042560a01ce7) + }, + { /* i=2678; 128 / 127 */ + RTUINT128_INIT_C(0x3e8959504491c65d, 0x4d582db6e862c281), RTUINT128_INIT_C(0x3f12448c43834509, 0xf2cf01ef6895a41e), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x3e8959504491c65d, 0x4d582db6e862c281) + }, + { /* i=2679; 122 / 89 */ + RTUINT128_INIT_C(0x011b7cf9b16aa7ed, 0xe12642879bbbcaad), RTUINT128_INIT_C(0x0000000000963909, 0x294602cc1395db12), + RTUINT128_INIT_C(0x0000000000000000, 0x00000001e31a2f0f), RTUINT128_INIT_C(0x000000000057596d, 0x49dae76ebce7a69f) + }, + { /* i=2680; 114 / 72 */ + RTUINT128_INIT_C(0x0003295053291057, 0xc901a2357645b53b), RTUINT128_INIT_C(0x000000000000006e, 0x8e28cfee43c582b8), + RTUINT128_INIT_C(0x0000000000000000, 0x0000075208819447), RTUINT128_INIT_C(0x0000000000000042, 0x6e74fe65dc341433) + }, + { /* i=2681; 14 / 11 */ + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000002571), RTUINT128_INIT_C(0x0000000000000000, 0x00000000000004ba), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000007), RTUINT128_INIT_C(0x0000000000000000, 0x000000000000045b) + }, + { /* i=2682; 107 / 12 */ + RTUINT128_INIT_C(0x00000412c33b7764, 0x81f9576d5284b776), RTUINT128_INIT_C(0x0000000000000000, 0x00000000000004c4), + RTUINT128_INIT_C(0x00000000dacf282d, 0x327799e1a9d33430), RTUINT128_INIT_C(0x0000000000000000, 0x00000000000002b6) + }, + { /* i=2683; 124 / 70 */ + RTUINT128_INIT_C(0x02d5d951c23d4728, 0xb25048f1a51c84d3), RTUINT128_INIT_C(0x0000000000000017, 0xa3356f19286aeff2), + RTUINT128_INIT_C(0x0000000000000000, 0x001eb51cd9c8ec1f), RTUINT128_INIT_C(0x000000000000000f, 0x67ce123b93e65e85) + }, + { /* i=2684; 126 / 113 */ + RTUINT128_INIT_C(0x25d6bbffd042ab09, 0x0520f75ac3ae6fc0), RTUINT128_INIT_C(0x00000d48d51fc829, 0x6bf98968b3c674e1), + RTUINT128_INIT_C(0x0000000000000000, 0x000000000002d92c), RTUINT128_INIT_C(0x00000c93adce4f70, 0xddf2316bbabda014) + }, + { /* i=2685; 57 / 6 */ + RTUINT128_INIT_C(0x0000000000000000, 0x0001bfcf3e69fff6), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000026), + RTUINT128_INIT_C(0x0000000000000000, 0x00000bc8d27c0d79), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000) + }, + { /* i=2686; 125 / 123 */ + RTUINT128_INIT_C(0x0b5aeebecd20d1fb, 0xc3e04f003e058dc5), RTUINT128_INIT_C(0x01cf679d18a7fa1c, 0x7a82b2d0705c2b1d), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000006), RTUINT128_INIT_C(0x007e81103930f550, 0xe4d01e1d9bdc8b17) + }, + { /* i=2687; 128 / 107 */ + RTUINT128_INIT_C(0x0c141171a32c2734, 0xdfad455d4f5647b7), RTUINT128_INIT_C(0x000006c8f263ebdf, 0xe05d7e98b97e85f9), + RTUINT128_INIT_C(0x0000000000000000, 0x000000000001c7b9), RTUINT128_INIT_C(0x0000036ae0bbcaa5, 0x901b574f62c9e7c6) + }, + { /* i=2688; 111 / 118 */ + RTUINT128_INIT_C(0x000042b3aa91fa77, 0xdd69024cd085aa15), RTUINT128_INIT_C(0x0012b9b3eec9d512, 0x0b87f93def39941b), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x000042b3aa91fa77, 0xdd69024cd085aa15) + }, + { /* i=2689; 31 / 11 */ + RTUINT128_INIT_C(0x0000000000000000, 0x000000003e024c3c), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000707), + RTUINT128_INIT_C(0x0000000000000000, 0x000000000008d2ee), RTUINT128_INIT_C(0x0000000000000000, 0x00000000000005ba) + }, + { /* i=2690; 60 / 17 */ + RTUINT128_INIT_C(0x0000000000000000, 0x0d9739398b07d501), RTUINT128_INIT_C(0x0000000000000000, 0x00000000000145c5), + RTUINT128_INIT_C(0x0000000000000000, 0x00000aae157951a9), RTUINT128_INIT_C(0x0000000000000000, 0x00000000000070f4) + }, + { /* i=2691; 54 / 28 */ + RTUINT128_INIT_C(0x0000000000000000, 0x002db85064b7012f), RTUINT128_INIT_C(0x0000000000000000, 0x000000000981ecda), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000004cf0efc), RTUINT128_INIT_C(0x0000000000000000, 0x000000000197ee97) + }, + { /* i=2692; 72 / 55 */ + RTUINT128_INIT_C(0x00000000000000ea, 0xc16a826673f8fe86), RTUINT128_INIT_C(0x0000000000000000, 0x003802452a0cb2ca), + RTUINT128_INIT_C(0x0000000000000000, 0x00000000000430ff), RTUINT128_INIT_C(0x0000000000000000, 0x001e9f6c64a50750) + }, + { /* i=2693; 113 / 85 */ + RTUINT128_INIT_C(0x0000b313c3f322a6, 0xc550d5dad4d3514a), RTUINT128_INIT_C(0x000000000009214e, 0xd41756d2af9ffa4e), + RTUINT128_INIT_C(0x0000000000000000, 0x00000000139d29b7), RTUINT128_INIT_C(0x000000000000e593, 0x897b726e5e8ae588) + }, + { /* i=2694; 65 / 57 */ + RTUINT128_INIT_C(0x0000000000000000, 0x6af2f3170bd50660), RTUINT128_INIT_C(0x0000000000000000, 0x00bcd409c4828f3a), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000090), RTUINT128_INIT_C(0x0000000000000000, 0x00bbad98826475c0) + }, + { /* i=2695; 125 / 89 */ + RTUINT128_INIT_C(0x140217d8ff39f56e, 0x9ab1e316ff18a32c), RTUINT128_INIT_C(0x0000000000be8cf6, 0x8a4ac6bfb9d4a707), + RTUINT128_INIT_C(0x0000000000000000, 0x0000001ae1675560), RTUINT128_INIT_C(0x0000000000a1b0d2, 0x9199106b5913ad8c) + }, + { /* i=2696; 80 / 16 */ + RTUINT128_INIT_C(0x000000000000fc78, 0x260d7b69eecd2b13), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000004a9c), + RTUINT128_INIT_C(0x0000000000000003, 0x62461960ec7512e3), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000abf) + }, + { /* i=2697; 75 / 9 */ + RTUINT128_INIT_C(0x000000000000032e, 0x7c4bee9835150b73), RTUINT128_INIT_C(0x0000000000000000, 0x00000000000001c7), + RTUINT128_INIT_C(0x0000000000000001, 0xca428edf239014d7), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000152) + }, + { /* i=2698; 124 / 115 */ + RTUINT128_INIT_C(0x08a8fc4388bbf9c1, 0xbf869b2de1e32521), RTUINT128_INIT_C(0x0000ca4908a2e95a, 0xee9d72d3dc0959ed), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000af5), RTUINT128_INIT_C(0x00008a07e7b51869, 0x3c5b6fd3ef6cd350) + }, + { /* i=2699; 117 / 103 */ + RTUINT128_INIT_C(0x00154ade55557d10, 0x62fa172bc6597c98), RTUINT128_INIT_C(0x000000457e79ebd5, 0x5e00cc551e7c013a), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000004e6f), RTUINT128_INIT_C(0x00000033589d38e8, 0x625f8ef9c6354872) + }, + { /* i=2700; 78 / 34 */ + RTUINT128_INIT_C(0x0000000000002924, 0xe4b3bf1208f4c391), RTUINT128_INIT_C(0x0000000000000000, 0x000000026e6e1ed6), + RTUINT128_INIT_C(0x0000000000000000, 0x000010ec15e78536), RTUINT128_INIT_C(0x0000000000000000, 0x00000002269b146d) + }, + { /* i=2701; 36 / 30 */ + RTUINT128_INIT_C(0x0000000000000000, 0x0000000bd7cb3116), RTUINT128_INIT_C(0x0000000000000000, 0x000000000bb0148e), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000103), RTUINT128_INIT_C(0x0000000000000000, 0x0000000004a6656c) + }, + { /* i=2702; 118 / 51 */ + RTUINT128_INIT_C(0x001f820016bab7df, 0xfa26a4f8a8189ee6), RTUINT128_INIT_C(0x0000000000000000, 0x0007202b9eba77b1), + RTUINT128_INIT_C(0x0000000000000004, 0x6bf6e8325c46c653), RTUINT128_INIT_C(0x0000000000000000, 0x0003477da2aaea83) + }, + { /* i=2703; 114 / 42 */ + RTUINT128_INIT_C(0x00012c6da75f944e, 0xeed8b15dfd7c47e4), RTUINT128_INIT_C(0x0000000000000000, 0x000003ae5a8eb19e), + RTUINT128_INIT_C(0x0000000000000051, 0x9d4a9f1bf3d1ae41), RTUINT128_INIT_C(0x0000000000000000, 0x000001ca0689cac6) + }, + { /* i=2704; 17 / 48 */ + RTUINT128_INIT_C(0x0000000000000000, 0x000000000000caa6), RTUINT128_INIT_C(0x0000000000000000, 0x00001b5c0abf4835), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x0000000000000000, 0x000000000000caa6) + }, + { /* i=2705; 117 / 99 */ + RTUINT128_INIT_C(0x001fcef0e5457b66, 0xcfc0085c3ded16dd), RTUINT128_INIT_C(0x00000006a455ee6a, 0x1b2631b862316708), + RTUINT128_INIT_C(0x0000000000000000, 0x000000000004c9fd), RTUINT128_INIT_C(0x000000014a7f20a0, 0x37159744cd14fbf5) + }, + { /* i=2706; 114 / 121 */ + RTUINT128_INIT_C(0x00035c83a8d38382, 0x9cca61bbab5a6ce1), RTUINT128_INIT_C(0x01e67cccae7b949c, 0xbf1b9b106b401ab0), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x00035c83a8d38382, 0x9cca61bbab5a6ce1) + }, + { /* i=2707; 123 / 36 */ + RTUINT128_INIT_C(0x078ada59454bfbce, 0xcbf18cf10a0ca0d8), RTUINT128_INIT_C(0x0000000000000000, 0x00000004a1aabe3e), + RTUINT128_INIT_C(0x0000000001a0e50f, 0x32d170d731983636), RTUINT128_INIT_C(0x0000000000000000, 0x0000000019176bc4) + }, + { /* i=2708; 28 / 17 */ + RTUINT128_INIT_C(0x0000000000000000, 0x000000000861aca3), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000016509), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000602), RTUINT128_INIT_C(0x0000000000000000, 0x000000000000ac91) + }, + { /* i=2709; 109 / 81 */ + RTUINT128_INIT_C(0x00001d95728b30e2, 0xba175642b8a1a224), RTUINT128_INIT_C(0x000000000001cdd9, 0xfc7968454b1f23b9), + RTUINT128_INIT_C(0x0000000000000000, 0x000000001065e43c), RTUINT128_INIT_C(0x0000000000009a84, 0xf4bc9998b9877ec8) + }, + { /* i=2710; 127 / 122 */ + RTUINT128_INIT_C(0x269d43be4d99e3a1, 0x8bae8b6263443024), RTUINT128_INIT_C(0x0112b53c891ec9a3, 0x0035a8695045cdbf), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000023), RTUINT128_INIT_C(0x010e7c778e645258, 0x845884fc69b90f07) + }, + { /* i=2711; 126 / 64 */ + RTUINT128_INIT_C(0x31eaee77f3375e7e, 0x97b13d4e0eb7b1de), RTUINT128_INIT_C(0x0000000000000000, 0x876b84641afbf43e), + RTUINT128_INIT_C(0x0000000000000000, 0x5e5d7c62564ef336), RTUINT128_INIT_C(0x0000000000000000, 0x237fe605f5d752ca) + }, + { /* i=2712; 119 / 125 */ + RTUINT128_INIT_C(0x0079bdf0724ba0c7, 0x0333415c6e98d492), RTUINT128_INIT_C(0x0d7b58ff33f69cbc, 0xd3b71280351a629e), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x0079bdf0724ba0c7, 0x0333415c6e98d492) + }, + { /* i=2713; 120 / 104 */ + RTUINT128_INIT_C(0x00ef4c9b6c03702c, 0x9565727e5e2fe9f3), RTUINT128_INIT_C(0x0000002ec49e11c8, 0xc1a984a61c91e327), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000051de1), RTUINT128_INIT_C(0x000000245c26487a, 0x94227c694b78d9ac) + }, + { /* i=2714; 119 / 104 */ + RTUINT128_INIT_C(0x006ce171eed71dd6, 0xc3e951b0002defd2), RTUINT128_INIT_C(0x000000d20c116877, 0xd10e93fe97e21a4a), + RTUINT128_INIT_C(0x0000000000000000, 0x00000000000084b3), RTUINT128_INIT_C(0x0000005a84cd4a44, 0x1268905b37876614) + }, + { /* i=2715; 120 / 96 */ + RTUINT128_INIT_C(0x00cfb58ffaa7c31a, 0x320c3164d4469390), RTUINT128_INIT_C(0x00000000590d2791, 0x2680989b6b4c726f), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000002551c6b), RTUINT128_INIT_C(0x000000000c558f55, 0x272a2f6bc1f39b2b) + }, + { /* i=2716; 99 / 77 */ + RTUINT128_INIT_C(0x00000004054ff6b3, 0x479c93c7ccc3a1a7), RTUINT128_INIT_C(0x0000000000001f44, 0xc8614bca3a946302), + RTUINT128_INIT_C(0x0000000000000000, 0x000000000020eb16), RTUINT128_INIT_C(0x00000000000016af, 0x45661a142ce0497b) + }, + { /* i=2717; 23 / 20 */ + RTUINT128_INIT_C(0x0000000000000000, 0x00000000001375bb), RTUINT128_INIT_C(0x0000000000000000, 0x00000000000b914d), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000001), RTUINT128_INIT_C(0x0000000000000000, 0x000000000007e46e) + }, + { /* i=2718; 114 / 82 */ + RTUINT128_INIT_C(0x00030c58764fa5cb, 0x3ce5ad139baa99a0), RTUINT128_INIT_C(0x000000000001d938, 0x18c9a07668325d3c), + RTUINT128_INIT_C(0x0000000000000000, 0x00000001a625dce7), RTUINT128_INIT_C(0x0000000000007b38, 0x38300bb7ec6ce87c) + }, + { /* i=2719; 106 / 73 */ + RTUINT128_INIT_C(0x000000efadba7812, 0x60d8113bb3dd1bb7), RTUINT128_INIT_C(0x000000000000009e, 0x6c594879d84092a3), + RTUINT128_INIT_C(0x0000000000000000, 0x00000001834d75d0), RTUINT128_INIT_C(0x000000000000006a, 0x8b9dd54df85a7847) + }, + { /* i=2720; 34 / 2 */ + RTUINT128_INIT_C(0x0000000000000000, 0x00000000225bcbce), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000001), + RTUINT128_INIT_C(0x0000000000000000, 0x00000000225bcbce), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000) + }, + { /* i=2721; 123 / 40 */ + RTUINT128_INIT_C(0x0603f3896e190c2d, 0x3cddf12aac07798a), RTUINT128_INIT_C(0x0000000000000000, 0x000000f15fae0921), + RTUINT128_INIT_C(0x0000000000066144, 0x183e38e159e7e70f), RTUINT128_INIT_C(0x0000000000000000, 0x0000007850d1299b) + }, + { /* i=2722; 45 / 71 */ + RTUINT128_INIT_C(0x0000000000000000, 0x00001947ac3c3381), RTUINT128_INIT_C(0x000000000000004a, 0x9599362721314aa6), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x0000000000000000, 0x00001947ac3c3381) + }, + { /* i=2723; 109 / 42 */ + RTUINT128_INIT_C(0x0000081937c0e28f, 0x72045cc4c571a35e), RTUINT128_INIT_C(0x0000000000000000, 0x000000aa60da99ff), + RTUINT128_INIT_C(0x000000000000000c, 0x2b16e5531d32569e), RTUINT128_INIT_C(0x0000000000000000, 0x0000004297fcedfc) + }, + { /* i=2724; 104 / 23 */ + RTUINT128_INIT_C(0x00000027eb76016e, 0x8846dd74f19daac1), RTUINT128_INIT_C(0x0000000000000000, 0x000000000031427d), + RTUINT128_INIT_C(0x000000000000cf75, 0xf71593f8a49fe7a1), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000010f24) + }, + { /* i=2725; 88 / 18 */ + RTUINT128_INIT_C(0x0000000000957c24, 0x9d6b89954caff9d1), RTUINT128_INIT_C(0x0000000000000000, 0x000000000002e313), + RTUINT128_INIT_C(0x0000000000000033, 0xc74ac3ade7a38b72), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000028a5b) + }, + { /* i=2726; 115 / 92 */ + RTUINT128_INIT_C(0x0006620a9aeec769, 0x3a517da3ad00c287), RTUINT128_INIT_C(0x000000000c2f78ce, 0xb834c4350027beb1), + RTUINT128_INIT_C(0x0000000000000000, 0x000000000086190f), RTUINT128_INIT_C(0x00000000052617b0, 0x9452bcb6f8674d28) + }, + { /* i=2727; 125 / 93 */ + RTUINT128_INIT_C(0x127cd5f352e64df6, 0xa6f2b5cf56d69121), RTUINT128_INIT_C(0x000000001b18d725, 0xd714bd5e06066dc1), + RTUINT128_INIT_C(0x0000000000000000, 0x00000000aea99a2b), RTUINT128_INIT_C(0x00000000142251d2, 0x2161fe8cd35307b6) + }, + { /* i=2728; 127 / 36 */ + RTUINT128_INIT_C(0x5c5dde2e29cc0c7a, 0x3d4ee0ad2afe559a), RTUINT128_INIT_C(0x0000000000000000, 0x0000000d7d55b7be), + RTUINT128_INIT_C(0x0000000006d8e5c6, 0x012c4dc4e70c9496), RTUINT128_INIT_C(0x0000000000000000, 0x000000071da2d446) + }, + { /* i=2729; 100 / 95 */ + RTUINT128_INIT_C(0x00000006f61da2c1, 0xf79f81090842c025), RTUINT128_INIT_C(0x000000004b36a801, 0x8fef6b1a0d9d178c), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000017), RTUINT128_INIT_C(0x0000000034348a9e, 0x091ce1b1cf25a291) + }, + { /* i=2730; 124 / 25 */ + RTUINT128_INIT_C(0x0e29afe3791fbe8a, 0x196e82638170321e), RTUINT128_INIT_C(0x0000000000000000, 0x000000000092f3ec), + RTUINT128_INIT_C(0x00000018ac261d19, 0x311b883b27eca335), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000246e42) + }, + { /* i=2731; 118 / 125 */ + RTUINT128_INIT_C(0x003dc4b428a27010, 0xa6c16337dd6230d7), RTUINT128_INIT_C(0x16f90f5151549450, 0x664594e6aed7af11), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x003dc4b428a27010, 0xa6c16337dd6230d7) + }, + { /* i=2732; 45 / 21 */ + RTUINT128_INIT_C(0x0000000000000000, 0x0000161b2ef7fe13), RTUINT128_INIT_C(0x0000000000000000, 0x00000000001c709b), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000c6fcda), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000058615) + }, + { /* i=2733; 86 / 58 */ + RTUINT128_INIT_C(0x0000000000382b27, 0x17c03cfea62fb0b4), RTUINT128_INIT_C(0x0000000000000000, 0x00f20526b9b6963b), + RTUINT128_INIT_C(0x0000000000000000, 0x000000003b69bd65), RTUINT128_INIT_C(0x0000000000000000, 0x00c75d185d09dc6d) + }, + { /* i=2734; 108 / 54 */ + RTUINT128_INIT_C(0x0000042ef6a8b26f, 0xed77420b55385b8b), RTUINT128_INIT_C(0x0000000000000000, 0x00032a63213ce40f), + RTUINT128_INIT_C(0x0000000000000000, 0x015250cca65f17dc), RTUINT128_INIT_C(0x0000000000000000, 0x0000af6ff0d605a7) + }, + { /* i=2735; 76 / 23 */ + RTUINT128_INIT_C(0x0000000000000edc, 0x1cb9b7805ce2ee14), RTUINT128_INIT_C(0x0000000000000000, 0x00000000003ea575), + RTUINT128_INIT_C(0x0000000000000000, 0x003cb9404cd50805), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000250acb) + }, + { /* i=2736; 83 / 40 */ + RTUINT128_INIT_C(0x000000000002258a, 0xa1c6b5c5bfa21b7c), RTUINT128_INIT_C(0x0000000000000000, 0x000000ccf2cfa21b), + RTUINT128_INIT_C(0x0000000000000000, 0x000002ae6de355b2), RTUINT128_INIT_C(0x0000000000000000, 0x00000029bd7f6db6) + }, + { /* i=2737; 18 / 76 */ + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000033a2e), RTUINT128_INIT_C(0x00000000000002ff, 0x37681155cb4ac397), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000033a2e) + }, + { /* i=2738; 125 / 120 */ + RTUINT128_INIT_C(0x00269c6a5c303a06, 0x503fe18acc752947), RTUINT128_INIT_C(0x008dbf097559112b, 0xc856dcf2c5c5096a), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x00269c6a5c303a06, 0x503fe18acc752947) + }, + { /* i=2739; 126 / 89 */ + RTUINT128_INIT_C(0x292d70152e296cf6, 0x3201f9d8161a2079), RTUINT128_INIT_C(0x0000000001b9a3ce, 0x16b1aa45b226f083), + RTUINT128_INIT_C(0x0000000000000000, 0x00000017de6d4688), RTUINT128_INIT_C(0x00000000005c05b4, 0x9d663b2fc9df88e1) + }, + { /* i=2740; 116 / 76 */ + RTUINT128_INIT_C(0x0008204ec7ea523b, 0x07d9f28d99dfd53b), RTUINT128_INIT_C(0x00000000000004ac, 0xb86fba540165b1ee), + RTUINT128_INIT_C(0x0000000000000000, 0x000001bd03e3829d), RTUINT128_INIT_C(0x000000000000005d, 0x8c6e4b5a8a1cda45) + }, + { /* i=2741; 74 / 1 */ + RTUINT128_INIT_C(0x000000000000004e, 0x259d7c168d63ac6a), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000001), + RTUINT128_INIT_C(0x000000000000004e, 0x259d7c168d63ac6a), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000) + }, + { /* i=2742; 84 / 32 */ + RTUINT128_INIT_C(0x00000000000891ce, 0xac7dcda4c28837bf), RTUINT128_INIT_C(0x0000000000000000, 0x0000000017481e3c), + RTUINT128_INIT_C(0x0000000000000000, 0x005e3a918155263f), RTUINT128_INIT_C(0x0000000000000000, 0x000000000d5fdefb) + }, + { /* i=2743; 121 / 100 */ + RTUINT128_INIT_C(0x00339eb93e5ff09c, 0x5f99ac84c152f68b), RTUINT128_INIT_C(0x0000000d119e8ffb, 0x91925cc767b4bb95), + RTUINT128_INIT_C(0x0000000000000000, 0x000000000003f329), RTUINT128_INIT_C(0x0000000c395c616d, 0x0ac1520664937cae) + }, + { /* i=2744; 123 / 50 */ + RTUINT128_INIT_C(0x00d08c7e9d51ab47, 0xff5e3982253590ad), RTUINT128_INIT_C(0x0000000000000000, 0x000354993a9daca6), + RTUINT128_INIT_C(0x000000000000003e, 0x9e5a0821f910e982), RTUINT128_INIT_C(0x0000000000000000, 0x0002552a9ea0ce61) + }, + { /* i=2745; 124 / 110 */ + RTUINT128_INIT_C(0x053c7263f18c0204, 0x4fd60182db554ae9), RTUINT128_INIT_C(0x0000394e34594972, 0x9ca01d3742982e86), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000001764), RTUINT128_INIT_C(0x000009237912052c, 0xbeaaa0f12bb51491) + }, + { /* i=2746; 126 / 123 */ + RTUINT128_INIT_C(0x05d3e1108e14d62e, 0xa480215495d722c2), RTUINT128_INIT_C(0x026436b39b181d4a, 0x6990df957bf5c018), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000002), RTUINT128_INIT_C(0x010b73a957e49b99, 0xd15e62299deba292) + }, + { /* i=2747; 127 / 80 */ + RTUINT128_INIT_C(0x71531e9e50267e43, 0xd65d7688e9a238df), RTUINT128_INIT_C(0x000000000000490c, 0xcf62203b015fa9ed), + RTUINT128_INIT_C(0x0000000000000000, 0x00018d23ef377883), RTUINT128_INIT_C(0x0000000000000821, 0x2a7cf019991c2c98) + }, + { /* i=2748; 122 / 107 */ + RTUINT128_INIT_C(0x0255b40aeace584b, 0x1b956fba2bad2bc5), RTUINT128_INIT_C(0x000001aa3f9edae5, 0x74ad858ee4923fb2), + RTUINT128_INIT_C(0x0000000000000000, 0x00000000000166f9), RTUINT128_INIT_C(0x0000007ae32e8df1, 0xf608b419545a4ba3) + }, + { /* i=2749; 101 / 4 */ + RTUINT128_INIT_C(0x0000001a19fa30ab, 0x7d4bced84e4d24fe), RTUINT128_INIT_C(0x0000000000000000, 0x000000000000000e), + RTUINT128_INIT_C(0x00000001dd48ba55, 0x6460d7eae10582a4), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000006) + }, + { /* i=2750; 96 / 8 */ + RTUINT128_INIT_C(0x00000000789cd761, 0xae680ae4d413613e), RTUINT128_INIT_C(0x0000000000000000, 0x000000000000005d), + RTUINT128_INIT_C(0x00000000014c0250, 0xe0d7d412fa05b6b9), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000009) + }, + { /* i=2751; 114 / 94 */ + RTUINT128_INIT_C(0x00027317bbbea9cf, 0xbffe3bfbf01a4ab9), RTUINT128_INIT_C(0x000000000cc59dd4, 0xb093fa854b6fa370), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000311968), RTUINT128_INIT_C(0x000000000956f9d6, 0x9ce601191b59f539) + }, + { /* i=2752; 124 / 114 */ + RTUINT128_INIT_C(0x06a7a055e37e1d0c, 0xe49f4149b5265344), RTUINT128_INIT_C(0x0000bc6e1da6523d, 0xac7e364d5d0be77a), + RTUINT128_INIT_C(0x0000000000000000, 0x000000000000090a), RTUINT128_INIT_C(0x000064fde21abb93, 0xb7c869fea78bfe80) + }, + { /* i=2753; 51 / 69 */ + RTUINT128_INIT_C(0x0000000000000000, 0x0001b39a33c24093), RTUINT128_INIT_C(0x000000000000000b, 0x103c291054847ba9), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x0000000000000000, 0x0001b39a33c24093) + }, + { /* i=2754; 125 / 123 */ + RTUINT128_INIT_C(0x0cff989a0fb4f2d7, 0x0dc1481763024e84), RTUINT128_INIT_C(0x07412e3a8092c886, 0x1721a4b29ba68dc0), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000001), RTUINT128_INIT_C(0x05be6a5f8f222a50, 0xf69fa364c75bc0c4) + }, + { /* i=2755; 112 / 3 */ + RTUINT128_INIT_C(0x0000056a1a3aa1bd, 0x80cf2a0c7b41ae82), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000001), + RTUINT128_INIT_C(0x0000056a1a3aa1bd, 0x80cf2a0c7b41ae82), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000) + }, + { /* i=2756; 123 / 22 */ + RTUINT128_INIT_C(0x054f35bd49e3efb1, 0xc842aa8d51f680b5), RTUINT128_INIT_C(0x0000000000000000, 0x00000000003fa896), + RTUINT128_INIT_C(0x000000155a00ab21, 0x4c71d87fe71c3668), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000225fc5) + }, + { /* i=2757; 119 / 25 */ + RTUINT128_INIT_C(0x007fa1454306d0c3, 0x7181f25c14359abd), RTUINT128_INIT_C(0x0000000000000000, 0x0000000001f0c267), + RTUINT128_INIT_C(0x0000000041c5d830, 0xd27ec373d047b419), RTUINT128_INIT_C(0x0000000000000000, 0x00000000007132ae) + }, + { /* i=2758; 66 / 40 */ + RTUINT128_INIT_C(0x0000000000000000, 0x46277c96dc33fb00), RTUINT128_INIT_C(0x0000000000000000, 0x00000000e3cd8e2a), + RTUINT128_INIT_C(0x0000000000000000, 0x000000004ed67afd), RTUINT128_INIT_C(0x0000000000000000, 0x000000002132777e) + }, + { /* i=2759; 117 / 122 */ + RTUINT128_INIT_C(0x0010a4f9bd655777, 0x65ac1edf598334dd), RTUINT128_INIT_C(0x03ed46070c2bf363, 0xa5b3372108eee2d2), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x0010a4f9bd655777, 0x65ac1edf598334dd) + }, + { /* i=2760; 68 / 3 */ + RTUINT128_INIT_C(0x000000000000000b, 0x0381454ecb0c9b4b), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000001), + RTUINT128_INIT_C(0x000000000000000b, 0x0381454ecb0c9b4b), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000) + }, + { /* i=2761; 115 / 24 */ + RTUINT128_INIT_C(0x0006358e1b17d24d, 0x0dc9f17f98ee8d6c), RTUINT128_INIT_C(0x0000000000000000, 0x00000000003288c2), + RTUINT128_INIT_C(0x000000001f747cd9, 0x8d7c46b886c2eb20), RTUINT128_INIT_C(0x0000000000000000, 0x00000000000f5f2c) + }, + { /* i=2762; 125 / 103 */ + RTUINT128_INIT_C(0x1db224c8193938d7, 0x00ca9b5af5454960), RTUINT128_INIT_C(0x0000000c7ee2a2f6, 0x20fe8519e2fd3214), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000002606227), RTUINT128_INIT_C(0x0000000af9c1d03a, 0x6d95522d84070054) + }, + { /* i=2763; 127 / 99 */ + RTUINT128_INIT_C(0x6b9e88238c2e36fd, 0x97c2d53a0cbe8245), RTUINT128_INIT_C(0x000000077b3db834, 0x2c4a583debec5cf1), + RTUINT128_INIT_C(0x0000000000000000, 0x000000000e628821), RTUINT128_INIT_C(0x0000000080f8bb73, 0x38b152584fa47f34) + }, + { /* i=2764; 67 / 56 */ + RTUINT128_INIT_C(0x0000000000000002, 0x678c84b9588f2cc0), RTUINT128_INIT_C(0x0000000000000000, 0x0016007cae741ede), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000001bfa), RTUINT128_INIT_C(0x0000000000000000, 0x0002e490bbe79df4) + }, + { /* i=2765; 82 / 63 */ + RTUINT128_INIT_C(0x00000000000357cd, 0xa82654ddc2a5b9f6), RTUINT128_INIT_C(0x0000000000000000, 0x742396315f83e62c), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000075e68), RTUINT128_INIT_C(0x0000000000000000, 0x4d3193213b581016) + }, + { /* i=2766; 124 / 117 */ + RTUINT128_INIT_C(0x017e02104f12c055, 0x5b1cb23cca6ab6de), RTUINT128_INIT_C(0x001bca80fbbdaf96, 0x1c761f4447192347), + RTUINT128_INIT_C(0x0000000000000000, 0x000000000000000d), RTUINT128_INIT_C(0x0014b9838670d5b5, 0xe91d1bc52e23ec43) + }, + { /* i=2767; 115 / 59 */ + RTUINT128_INIT_C(0x00003edab7e62069, 0xf45aa341e34432ed), RTUINT128_INIT_C(0x0000000000000000, 0x000cddd4f6f022e9), + RTUINT128_INIT_C(0x0000000000000000, 0x04e29650a481bb33), RTUINT128_INIT_C(0x0000000000000000, 0x000c2d446c840b82) + }, + { /* i=2768; 30 / 17 */ + RTUINT128_INIT_C(0x0000000000000000, 0x0000000005808d69), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000005b04), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000f79), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000004c85) + }, + { /* i=2769; 53 / 11 */ + RTUINT128_INIT_C(0x0000000000000000, 0x00137367c80586b5), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000457), + RTUINT128_INIT_C(0x0000000000000000, 0x0000047b5ea74ac7), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000114) + }, + { /* i=2770; 33 / 123 */ + RTUINT128_INIT_C(0x0000000000000000, 0x000000003ed25855), RTUINT128_INIT_C(0x046191e86a1ce84e, 0xb3ef30097e3e0918), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x0000000000000000, 0x000000003ed25855) + }, + { /* i=2771; 127 / 118 */ + RTUINT128_INIT_C(0x111a2e44e05d58dd, 0xa6f9df9eacb4b176), RTUINT128_INIT_C(0x0018a24bb27f7bbb, 0xd22c994609bf82db), + RTUINT128_INIT_C(0x0000000000000000, 0x00000000000000b1), RTUINT128_INIT_C(0x0011f7ee7638cc01, 0x5623e631ef4b380b) + }, + { /* i=2772; 113 / 28 */ + RTUINT128_INIT_C(0x0000779b2155b825, 0x08ecadaabce838e9), RTUINT128_INIT_C(0x0000000000000000, 0x000000000f11f65e), + RTUINT128_INIT_C(0x000000000007efc5, 0x75cea5bf12882d56), RTUINT128_INIT_C(0x0000000000000000, 0x0000000006a0ef55) + }, + { /* i=2773; 39 / 35 */ + RTUINT128_INIT_C(0x0000000000000000, 0x000000743f23e9c7), RTUINT128_INIT_C(0x0000000000000000, 0x000000071723faa6), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000010), RTUINT128_INIT_C(0x0000000000000000, 0x00000002cce43f67) + }, + { /* i=2774; 126 / 124 */ + RTUINT128_INIT_C(0x1573fe8002f088c3, 0x8e791935eedfac1d), RTUINT128_INIT_C(0x0db44f46f1a73e23, 0xd03d09d257059f8f), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000001), RTUINT128_INIT_C(0x07bfaf3911494a9f, 0xbe3c0f6397da0c8e) + }, + { /* i=2775; 124 / 94 */ + RTUINT128_INIT_C(0x00f4689161b0661d, 0x70a3a6ba85b1c8e0), RTUINT128_INIT_C(0x000000000b801e5b, 0x0eba6e0bd8f1ed0f), + RTUINT128_INIT_C(0x0000000000000000, 0x00000000154086a1), RTUINT128_INIT_C(0x000000000740ab81, 0x1c0828caf4b5d871) + }, + { /* i=2776; 58 / 48 */ + RTUINT128_INIT_C(0x0000000000000000, 0x00e2b7cfdc295403), RTUINT128_INIT_C(0x0000000000000000, 0x00007550476a1105), + RTUINT128_INIT_C(0x0000000000000000, 0x00000000000001ee), RTUINT128_INIT_C(0x0000000000000000, 0x000056e60d7c7c5d) + }, + { /* i=2777; 90 / 49 */ + RTUINT128_INIT_C(0x000000000194b1c4, 0xd2365415e7952f9c), RTUINT128_INIT_C(0x0000000000000000, 0x00013523748a3aaa), + RTUINT128_INIT_C(0x0000000000000000, 0x0000014f216ec1d5), RTUINT128_INIT_C(0x0000000000000000, 0x0000b94e9b4c362a) + }, + { /* i=2778; 32 / 16 */ + RTUINT128_INIT_C(0x0000000000000000, 0x0000000079e66c5b), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000f08), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000081c1a), RTUINT128_INIT_C(0x0000000000000000, 0x000000000000058b) + }, + { /* i=2779; 68 / 54 */ + RTUINT128_INIT_C(0x0000000000000008, 0x19c3e9e6f7746a5f), RTUINT128_INIT_C(0x0000000000000000, 0x00292beac1afa6bc), + RTUINT128_INIT_C(0x0000000000000000, 0x000000000000325e), RTUINT128_INIT_C(0x0000000000000000, 0x0011efdf8a647957) + }, + { /* i=2780; 105 / 39 */ + RTUINT128_INIT_C(0x000001618623d2fb, 0xdfd1cb515d5f3926), RTUINT128_INIT_C(0x0000000000000000, 0x00000045dce5400f), + RTUINT128_INIT_C(0x0000000000000005, 0x0f6ce6ab5999f124), RTUINT128_INIT_C(0x0000000000000000, 0x0000003cfbdd180a) + }, + { /* i=2781; 62 / 23 */ + RTUINT128_INIT_C(0x0000000000000000, 0x13b8b81a895db696), RTUINT128_INIT_C(0x0000000000000000, 0x00000000003c4e8b), + RTUINT128_INIT_C(0x0000000000000000, 0x00000053b79c9a23), RTUINT128_INIT_C(0x0000000000000000, 0x00000000002b5b95) + }, + { /* i=2782; 120 / 85 */ + RTUINT128_INIT_C(0x00ed2401cd9f9163, 0x2751cfe81a3104b6), RTUINT128_INIT_C(0x00000000001158a2, 0xb00d3a37596208b2), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000dabc7d2ee), RTUINT128_INIT_C(0x00000000000e10bd, 0xdd8ee112ed8ceb3a) + }, + { /* i=2783; 117 / 73 */ + RTUINT128_INIT_C(0x001966f6e03542f8, 0x6db3d15c6f5c542f), RTUINT128_INIT_C(0x0000000000000170, 0x6a9fbf82aafcb9a6), + RTUINT128_INIT_C(0x0000000000000000, 0x000011a6afe3ed67), RTUINT128_INIT_C(0x0000000000000060, 0xd72d02d8939cf465) + }, + { /* i=2784; 52 / 90 */ + RTUINT128_INIT_C(0x0000000000000000, 0x000810f1c462dc93), RTUINT128_INIT_C(0x0000000003179af0, 0x00ea088c91cca2db), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x0000000000000000, 0x000810f1c462dc93) + }, + { /* i=2785; 117 / 75 */ + RTUINT128_INIT_C(0x000e2fb66c9cdf4e, 0xfe9a32ea99a34167), RTUINT128_INIT_C(0x00000000000007df, 0x2b6f9261e5746504), + RTUINT128_INIT_C(0x0000000000000000, 0x000001cd5c20a8cc), RTUINT128_INIT_C(0x000000000000041f, 0x7c54e3454e182237) + }, + { /* i=2786; 116 / 112 */ + RTUINT128_INIT_C(0x000076eccdae354d, 0xf061099196a701f6), RTUINT128_INIT_C(0x000080411ff2d42c, 0xc618a7e51a75485f), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x000076eccdae354d, 0xf061099196a701f6) + }, + { /* i=2787; 113 / 87 */ + RTUINT128_INIT_C(0x0001d9d37dd9af70, 0x88bcdaa193c9678d), RTUINT128_INIT_C(0x00000000000538b5, 0x5f53153d67f8145c), + RTUINT128_INIT_C(0x0000000000000000, 0x000000005abeb270), RTUINT128_INIT_C(0x000000000002cead, 0xb57e7c3224d0874d) + }, + { /* i=2788; 127 / 11 */ + RTUINT128_INIT_C(0x70719dccdb3994a3, 0xca2489124a9cd5f3), RTUINT128_INIT_C(0x0000000000000000, 0x000000000000068e), + RTUINT128_INIT_C(0x0011279b95563b6f, 0x77e1d07b6f1c2a3c), RTUINT128_INIT_C(0x0000000000000000, 0x00000000000000ab) + }, + { /* i=2789; 110 / 28 */ + RTUINT128_INIT_C(0x00000b64a63d60bc, 0x7a90cfebe7856995), RTUINT128_INIT_C(0x0000000000000000, 0x000000000cf46601), + RTUINT128_INIT_C(0x000000000000e124, 0x7ae6e16dc4b97246), RTUINT128_INIT_C(0x0000000000000000, 0x000000000c8c134f) + }, + { /* i=2790; 79 / 57 */ + RTUINT128_INIT_C(0x00000000000026cb, 0x7532c3e66bfce2d6), RTUINT128_INIT_C(0x0000000000000000, 0x01b7a8c494cf9726), + RTUINT128_INIT_C(0x0000000000000000, 0x00000000001696c7), RTUINT128_INIT_C(0x0000000000000000, 0x01a69a0e1eca204c) + }, + { /* i=2791; 119 / 83 */ + RTUINT128_INIT_C(0x00003bc83b131a6d, 0x1364ea1c93aa413c), RTUINT128_INIT_C(0x0000000000010b1f, 0xbabe5e8dd3fbee17), + RTUINT128_INIT_C(0x0000000000000000, 0x00000000394ae930), RTUINT128_INIT_C(0x000000000000c56d, 0xe271babe9714adec) + }, + { /* i=2792; 124 / 87 */ + RTUINT128_INIT_C(0x0e2279803ced71db, 0x465db2e2101a07d7), RTUINT128_INIT_C(0x0000000000316422, 0x768c17448cd9462c), + RTUINT128_INIT_C(0x0000000000000000, 0x0000004942f80d2e), RTUINT128_INIT_C(0x0000000000121b62, 0x7b55904a65df2fef) + }, + { /* i=2793; 123 / 57 */ + RTUINT128_INIT_C(0x07d10e5e0d7127a1, 0x61050767b537bf57), RTUINT128_INIT_C(0x0000000000000000, 0x000cbe3f3330f651), + RTUINT128_INIT_C(0x000000000000009d, 0x07a8de97dfc2c1aa), RTUINT128_INIT_C(0x0000000000000000, 0x00011265949f1c8d) + }, + { /* i=2794; 125 / 85 */ + RTUINT128_INIT_C(0x169d6eb945ad7906, 0x4863a490ed5d9147), RTUINT128_INIT_C(0x000000000019f7bc, 0xd12aafa4964144f4), + RTUINT128_INIT_C(0x0000000000000000, 0x000000def27e221e), RTUINT128_INIT_C(0x00000000000dbf57, 0xc469c06c0e7714af) + }, + { /* i=2795; 83 / 24 */ + RTUINT128_INIT_C(0x000000000004c7ea, 0x617e92e72030e5bb), RTUINT128_INIT_C(0x0000000000000000, 0x000000000085540d), + RTUINT128_INIT_C(0x0000000000000000, 0x092e019384fbb85a), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000290129) + }, + { /* i=2796; 58 / 29 */ + RTUINT128_INIT_C(0x0000000000000000, 0x00be7a823382150f), RTUINT128_INIT_C(0x0000000000000000, 0x0000000006caed4f), + RTUINT128_INIT_C(0x0000000000000000, 0x000000001c0aae59), RTUINT128_INIT_C(0x0000000000000000, 0x000000000093e298) + }, + { /* i=2797; 71 / 15 */ + RTUINT128_INIT_C(0x000000000000006b, 0x4e0af8dbc9860079), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000005bd1), + RTUINT128_INIT_C(0x0000000000000000, 0x012b2f39706db6b9), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000001070) + }, + { /* i=2798; 114 / 66 */ + RTUINT128_INIT_C(0x000108327320822e, 0x1ccc80bfdc3efdde), RTUINT128_INIT_C(0x0000000000000002, 0x57af4c57bde6aec3), + RTUINT128_INIT_C(0x0000000000000000, 0x000070c888efa2c9), RTUINT128_INIT_C(0x0000000000000002, 0x2a5f5a23077b60c3) + }, + { /* i=2799; 93 / 65 */ + RTUINT128_INIT_C(0x000000000106416e, 0xa8f360ffc230feb0), RTUINT128_INIT_C(0x0000000000000001, 0x720051103725fcde), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000b573b0), RTUINT128_INIT_C(0x0000000000000000, 0xd3da5f37fe856c10) + }, + { /* i=2800; 8 / 88 */ + RTUINT128_INIT_C(0x0000000000000000, 0x00000000000000fa), RTUINT128_INIT_C(0x0000000000c0c1a0, 0xe591a8be1e7a29e8), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x0000000000000000, 0x00000000000000fa) + }, + { /* i=2801; 120 / 14 */ + RTUINT128_INIT_C(0x00c133bcf2947475, 0xd41c5fc4533f2a91), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000001f4e), + RTUINT128_INIT_C(0x0000062bf25bb2b5, 0xb6758ecd54476727), RTUINT128_INIT_C(0x0000000000000000, 0x00000000000003af) + }, + { /* i=2802; 96 / 86 */ + RTUINT128_INIT_C(0x00000000bfa14b31, 0x7b6ddd400f431392), RTUINT128_INIT_C(0x0000000000276938, 0x69ee2e073a988891), + RTUINT128_INIT_C(0x0000000000000000, 0x00000000000004dc), RTUINT128_INIT_C(0x00000000001dfd0e, 0xba06321f520b72f6) + }, + { /* i=2803; 47 / 40 */ + RTUINT128_INIT_C(0x0000000000000000, 0x000052c8e5431bce), RTUINT128_INIT_C(0x0000000000000000, 0x000000bfb08f8cde), + RTUINT128_INIT_C(0x0000000000000000, 0x000000000000006e), RTUINT128_INIT_C(0x0000000000000000, 0x0000006b0794946a) + }, + { /* i=2804; 116 / 64 */ + RTUINT128_INIT_C(0x00026ed05f95a6b8, 0xd34aec9bc300812e), RTUINT128_INIT_C(0x0000000000000000, 0x398d5e9bbb86b229), + RTUINT128_INIT_C(0x0000000000000000, 0x000ad25c1f877b05), RTUINT128_INIT_C(0x0000000000000000, 0x2f16642077265361) + }, + { /* i=2805; 122 / 107 */ + RTUINT128_INIT_C(0x02641572328ac538, 0xbfbe4858bcc0fd39), RTUINT128_INIT_C(0x0000013275fdbf5c, 0x8cceb1cd2d61e98b), + RTUINT128_INIT_C(0x0000000000000000, 0x000000000001ff4c), RTUINT128_INIT_C(0x000000f1aa3c38ae, 0x5d78f1d8d28332f5) + }, + { /* i=2806; 114 / 117 */ + RTUINT128_INIT_C(0x0003b8befd0e2afe, 0xa8a22b2bf1e250ba), RTUINT128_INIT_C(0x00118133c17693b3, 0x79b4003f42afa7c3), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x0003b8befd0e2afe, 0xa8a22b2bf1e250ba) + }, + { /* i=2807; 87 / 57 */ + RTUINT128_INIT_C(0x000000000028961a, 0x172abacba3fd037b), RTUINT128_INIT_C(0x0000000000000000, 0x0016b2100e510af4), + RTUINT128_INIT_C(0x0000000000000000, 0x00000001c9cda760), RTUINT128_INIT_C(0x0000000000000000, 0x001557fc0e0fbbfb) + }, + { /* i=2808; 118 / 106 */ + RTUINT128_INIT_C(0x000f70d2a6a0227a, 0x1ab7fe36b2d44aeb), RTUINT128_INIT_C(0x000002577b3fd4a2, 0xc06581c1d04e4b42), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000697), RTUINT128_INIT_C(0x0000025574fde5f8, 0x3dcdea02fee25afd) + }, + { /* i=2809; 113 / 24 */ + RTUINT128_INIT_C(0x0001c5b1cd27ef8d, 0x7bab6e7440a2bd19), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000d52805), + RTUINT128_INIT_C(0x000000000220e2b3, 0x30b00270cc07a859), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000218b5c) + }, + { /* i=2810; 71 / 53 */ + RTUINT128_INIT_C(0x000000000000007a, 0x4ceeea73bd7a2cf2), RTUINT128_INIT_C(0x0000000000000000, 0x0007925725027d69), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000102706), RTUINT128_INIT_C(0x0000000000000000, 0x0003e59da7c03d7c) + }, + { /* i=2811; 90 / 15 */ + RTUINT128_INIT_C(0x0000000003ea4a0d, 0x0e2df38cdd2959d4), RTUINT128_INIT_C(0x0000000000000000, 0x000000000000285d), + RTUINT128_INIT_C(0x00000000000018d4, 0xeae4a0c9db01efbb), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000ae5) + }, + { /* i=2812; 126 / 52 */ + RTUINT128_INIT_C(0x16d5bd8c1437eac6, 0xf38d85a5fe594046), RTUINT128_INIT_C(0x0000000000000000, 0x00011884b766f1fd), + RTUINT128_INIT_C(0x00000000000014d6, 0xccac72eea64cf9d8), RTUINT128_INIT_C(0x0000000000000000, 0x0000e8983901fdce) + }, + { /* i=2813; 117 / 105 */ + RTUINT128_INIT_C(0x0006358c0445a512, 0xb81edb1ca9c56b70), RTUINT128_INIT_C(0x00000013571acc56, 0x20980d18c3588752), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000005230), RTUINT128_INIT_C(0x0000000519cbbe7b, 0xe76a77e5add3c810) + }, + { /* i=2814; 126 / 112 */ + RTUINT128_INIT_C(0x1a50a3a0060a80b2, 0xb77ef636eeceb5bd), RTUINT128_INIT_C(0x00006fa5257bc83e, 0x20344f8701c5580f), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000003c56), RTUINT128_INIT_C(0x00006d5c6b86ac47, 0xa3489a7215df9cb3) + }, + { /* i=2815; 124 / 50 */ + RTUINT128_INIT_C(0x01fd4c4b62e5e142, 0xcdac952f1cb14b38), RTUINT128_INIT_C(0x0000000000000000, 0x000293eef419b855), + RTUINT128_INIT_C(0x00000000000000c5, 0x90da72f22c18ba68), RTUINT128_INIT_C(0x0000000000000000, 0x0001764f5e58a6b0) + }, + { /* i=2816; 57 / 117 */ + RTUINT128_INIT_C(0x0000000000000000, 0x013dd03028d98d3e), RTUINT128_INIT_C(0x00127f422cdb6210, 0xbe56b804fe13e1c1), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x0000000000000000, 0x013dd03028d98d3e) + }, + { /* i=2817; 128 / 113 */ + RTUINT128_INIT_C(0x4ef945927f7b766e, 0x072cba8fcd24d150), RTUINT128_INIT_C(0x0000da1533790d0e, 0x67ae4ea73c8bfd51), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000005cb4), RTUINT128_INIT_C(0x0000502acdad1b0a, 0x7c595336ebad985c) + }, + { /* i=2818; 79 / 68 */ + RTUINT128_INIT_C(0x00000000000012df, 0x8dfbc818f65f02d4), RTUINT128_INIT_C(0x0000000000000005, 0xf99bc5d337910d65), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000328), RTUINT128_INIT_C(0x0000000000000003, 0xba536571948cbc0c) + }, + { /* i=2819; 115 / 113 */ + RTUINT128_INIT_C(0x00019651e6298a95, 0x8cd70a00e8d44dba), RTUINT128_INIT_C(0x000174ac7b7428c4, 0xccfd9ec3daf0697b), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000001), RTUINT128_INIT_C(0x000021a56ab561d0, 0xbfd96b3d0de3e43f) + }, + { /* i=2820; 68 / 66 */ + RTUINT128_INIT_C(0x0000000000000005, 0x28622f4310f96985), RTUINT128_INIT_C(0x0000000000000001, 0xb0b7ec0da2a5c25d), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000003), RTUINT128_INIT_C(0x0000000000000000, 0x163a6b1a2908226e) + }, + { /* i=2821; 125 / 126 */ + RTUINT128_INIT_C(0x0ce0c09c2d18ef51, 0xc7b9f2795083d5e5), RTUINT128_INIT_C(0x31ca1c9ae6f76462, 0x0394f5ccd1eef896), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x0ce0c09c2d18ef51, 0xc7b9f2795083d5e5) + }, + { /* i=2822; 122 / 104 */ + RTUINT128_INIT_C(0x027c1fc161084a39, 0xfdd8b648c178e24c), RTUINT128_INIT_C(0x00000056791c7532, 0x039cb27afa981473), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000075b38), RTUINT128_INIT_C(0x0000000290c7c6b7, 0x9ec31a2551ca8824) + }, + { /* i=2823; 22 / 9 */ + RTUINT128_INIT_C(0x0000000000000000, 0x00000000000e332f), RTUINT128_INIT_C(0x0000000000000000, 0x00000000000001ed), + RTUINT128_INIT_C(0x0000000000000000, 0x000000000000075f), RTUINT128_INIT_C(0x0000000000000000, 0x000000000000013c) + }, + { /* i=2824; 118 / 101 */ + RTUINT128_INIT_C(0x002e03031302ff35, 0x86fdb4453668d4e0), RTUINT128_INIT_C(0x0000001b2e0856da, 0x927bac9aa7f2f6d0), + RTUINT128_INIT_C(0x0000000000000000, 0x000000000001b15f), RTUINT128_INIT_C(0x00000010e3031255, 0xfc2710ceefc96db0) + }, + { /* i=2825; 51 / 32 */ + RTUINT128_INIT_C(0x0000000000000000, 0x0002a174afee0ed5), RTUINT128_INIT_C(0x0000000000000000, 0x000000005f5e9873), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000070fc1), RTUINT128_INIT_C(0x0000000000000000, 0x0000000013896322) + }, + { /* i=2826; 114 / 113 */ + RTUINT128_INIT_C(0x00005239aa52c78b, 0x9038f733dce3f8e4), RTUINT128_INIT_C(0x0000e5ed2fc18a4c, 0x63541484a2ef0368), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x00005239aa52c78b, 0x9038f733dce3f8e4) + }, + { /* i=2827; 117 / 103 */ + RTUINT128_INIT_C(0x00190728ae4f88bf, 0x6227fb5b49bd0e70), RTUINT128_INIT_C(0x0000003c5e687b75, 0x110d13550924b9df), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000006a22), RTUINT128_INIT_C(0x0000000ce150aa23, 0xb46a3446dde608d2) + }, + { /* i=2828; 119 / 17 */ + RTUINT128_INIT_C(0x0048dee9d9359272, 0xfac1a6b8b6828a45), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000016229), + RTUINT128_INIT_C(0x00000034ac75514c, 0x54c5b706c0d30aa3), RTUINT128_INIT_C(0x0000000000000000, 0x000000000000702a) + }, + { /* i=2829; 114 / 110 */ + RTUINT128_INIT_C(0x0003782b3612987a, 0x0a8ee9022cc8f0ab), RTUINT128_INIT_C(0x0000111cb5ac7e96, 0xfe66265d874c77a3), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000033), RTUINT128_INIT_C(0x00000f7304b56065, 0x5c354460388d1b32) + }, + { /* i=2830; 65 / 63 */ + RTUINT128_INIT_C(0x0000000000000001, 0xa4c2fbeade2a524e), RTUINT128_INIT_C(0x0000000000000000, 0x47301694db539557), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000005), RTUINT128_INIT_C(0x0000000000000000, 0x40d28b029588679b) + }, + { /* i=2831; 120 / 102 */ + RTUINT128_INIT_C(0x004619f27905ef5c, 0x1412c2d9776fbdd5), RTUINT128_INIT_C(0x00000038cceffaea, 0x113fd93cc1cb8e7a), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000013bf2), RTUINT128_INIT_C(0x00000015746cbade, 0x3569a4f4ccb2f081) + }, + { /* i=2832; 82 / 49 */ + RTUINT128_INIT_C(0x000000000001a214, 0x673231915d7250cb), RTUINT128_INIT_C(0x0000000000000000, 0x0000d049970232d4), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000201d9777a), RTUINT128_INIT_C(0x0000000000000000, 0x0000509577118bc3) + }, + { /* i=2833; 84 / 114 */ + RTUINT128_INIT_C(0x00000000000da601, 0x0cabc466fcc77b4b), RTUINT128_INIT_C(0x00038720926b78ac, 0xdc3bf9812fede986), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x00000000000da601, 0x0cabc466fcc77b4b) + }, + { /* i=2834; 99 / 83 */ + RTUINT128_INIT_C(0x000000026c761155, 0x741dae2f97c2c89a), RTUINT128_INIT_C(0x000000000007a16f, 0x4ba7019cdd989ef4), + RTUINT128_INIT_C(0x0000000000000000, 0x000000000000514f), RTUINT128_INIT_C(0x000000000007090d, 0x44118ca9eb5e874e) + }, + { /* i=2835; 60 / 37 */ + RTUINT128_INIT_C(0x0000000000000000, 0x032e80f12c7e951c), RTUINT128_INIT_C(0x0000000000000000, 0x0000000672c225e3), + RTUINT128_INIT_C(0x0000000000000000, 0x00000000007e503c), RTUINT128_INIT_C(0x0000000000000000, 0x00000002f56cc3e8) + }, + { /* i=2836; 114 / 73 */ + RTUINT128_INIT_C(0x000268f9f3d06ef8, 0xc5dc75a3d0842ebe), RTUINT128_INIT_C(0x0000000000000150, 0x9444fe10c2637ae8), + RTUINT128_INIT_C(0x0000000000000000, 0x000001d544b2012f), RTUINT128_INIT_C(0x0000000000000070, 0x0ca9fef4a775b626) + }, + { /* i=2837; 89 / 22 */ + RTUINT128_INIT_C(0x00000000009e8575, 0x9730c66598e6c71b), RTUINT128_INIT_C(0x0000000000000000, 0x00000000003ea976), + RTUINT128_INIT_C(0x0000000000000002, 0x87a00a035a9d08ed), RTUINT128_INIT_C(0x0000000000000000, 0x00000000003a34dd) + }, + { /* i=2838; 90 / 86 */ + RTUINT128_INIT_C(0x000000000321162a, 0x17c990e68f199c59), RTUINT128_INIT_C(0x0000000000353353, 0xe2e0a17983570777), + RTUINT128_INIT_C(0x0000000000000000, 0x000000000000000f), RTUINT128_INIT_C(0x000000000003143f, 0xcca01ac7dd002c60) + }, + { /* i=2839; 69 / 62 */ + RTUINT128_INIT_C(0x000000000000000d, 0xb352225db6ba4b07), RTUINT128_INIT_C(0x0000000000000000, 0x0949b5351bd7d2c7), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000179), RTUINT128_INIT_C(0x0000000000000000, 0x05c64727b5e4e3f8) + }, + { /* i=2840; 123 / 72 */ + RTUINT128_INIT_C(0x078042a731a65d7b, 0x6455a78b3382637a), RTUINT128_INIT_C(0x0000000000000032, 0x6df3181d1849b274), + RTUINT128_INIT_C(0x0000000000000000, 0x002613ffe4b4131f), RTUINT128_INIT_C(0x0000000000000017, 0x04257eeb00c72b6e) + }, + { /* i=2841; 59 / 35 */ + RTUINT128_INIT_C(0x0000000000000000, 0x0672897dfa78b3bc), RTUINT128_INIT_C(0x0000000000000000, 0x00000003ad3499e8), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000001c0eea8), RTUINT128_INIT_C(0x0000000000000000, 0x0000000012de037c) + }, + { /* i=2842; 127 / 66 */ + RTUINT128_INIT_C(0x5ea341372b7196fb, 0x794950a5bf99cb01), RTUINT128_INIT_C(0x0000000000000003, 0x4528bcc862185e6b), + RTUINT128_INIT_C(0x0000000000000000, 0x1cf0999fe85244ad), RTUINT128_INIT_C(0x0000000000000003, 0x23a66a58c5c790b2) + }, + { /* i=2843; 48 / 14 */ + RTUINT128_INIT_C(0x0000000000000000, 0x000008767ff00601), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000002fce), + RTUINT128_INIT_C(0x0000000000000000, 0x000000002d51df9e), RTUINT128_INIT_C(0x0000000000000000, 0x00000000000012dd) + }, + { /* i=2844; 116 / 126 */ + RTUINT128_INIT_C(0x000918492bdcc11c, 0x4d71b32a883328c7), RTUINT128_INIT_C(0x27f2f383983bfb31, 0xeabbda8b0666c64e), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x000918492bdcc11c, 0x4d71b32a883328c7) + }, + { /* i=2845; 124 / 71 */ + RTUINT128_INIT_C(0x0e1a43458fcc794d, 0xabea3ecfd0bd8167), RTUINT128_INIT_C(0x000000000000006c, 0x86c8ea46bae67a4e), + RTUINT128_INIT_C(0x0000000000000000, 0x00214424ba71dbca), RTUINT128_INIT_C(0x0000000000000029, 0x5eff018c83d245db) + }, + { /* i=2846; 125 / 68 */ + RTUINT128_INIT_C(0x0b746bde177bac4c, 0x506d57337b362864), RTUINT128_INIT_C(0x0000000000000005, 0xdd52f3cf19130e33), + RTUINT128_INIT_C(0x0000000000000000, 0x01f4067448edb4cb), RTUINT128_INIT_C(0x0000000000000003, 0xfbdd309ab5e709f3) + }, + { /* i=2847; 70 / 32 */ + RTUINT128_INIT_C(0x000000000000001c, 0x92891c6a2b7339f4), RTUINT128_INIT_C(0x0000000000000000, 0x00000000ec5c0a69), + RTUINT128_INIT_C(0x0000000000000000, 0x0000001ef2579adf), RTUINT128_INIT_C(0x0000000000000000, 0x000000001d53fe7d) + }, + { /* i=2848; 88 / 96 */ + RTUINT128_INIT_C(0x000000000045a602, 0x8cfe0bc8064c6738), RTUINT128_INIT_C(0x00000000127df48d, 0xc5bf8668d870702c), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x000000000045a602, 0x8cfe0bc8064c6738) + }, + { /* i=2849; 113 / 33 */ + RTUINT128_INIT_C(0x00018ab17f42ca17, 0xc23369efe4fc63ea), RTUINT128_INIT_C(0x0000000000000000, 0x000000018b5b62f2), + RTUINT128_INIT_C(0x000000000000ff91, 0xfe6f629189aeb71e), RTUINT128_INIT_C(0x0000000000000000, 0x000000007a0fcd8e) + }, + { /* i=2850; 60 / 23 */ + RTUINT128_INIT_C(0x0000000000000000, 0x03d0b893bea252f7), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000786434), + RTUINT128_INIT_C(0x0000000000000000, 0x000000081ce5a281), RTUINT128_INIT_C(0x0000000000000000, 0x00000000000aecc3) + }, + { /* i=2851; 125 / 28 */ + RTUINT128_INIT_C(0x0e4e4573fe845824, 0xb8cd7026fe533879), RTUINT128_INIT_C(0x0000000000000000, 0x000000000f69a746), + RTUINT128_INIT_C(0x00000000ed9d1de2, 0x7a5993d04beed8b3), RTUINT128_INIT_C(0x0000000000000000, 0x000000000d3c3287) + }, + { /* i=2852; 115 / 124 */ + RTUINT128_INIT_C(0x00024fe3ae8d69f0, 0x0fb2085c216fe445), RTUINT128_INIT_C(0x011e9d1198419dcf, 0x4eeef3f4e9bb6669), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x00024fe3ae8d69f0, 0x0fb2085c216fe445) + }, + { /* i=2853; 118 / 80 */ + RTUINT128_INIT_C(0x002cb823905b12ee, 0x56687b48bee8c807), RTUINT128_INIT_C(0x000000000000933e, 0x2989b72fad5ced27), + RTUINT128_INIT_C(0x0000000000000000, 0x0000004dc00441bc), RTUINT128_INIT_C(0x0000000000001fda, 0x1a0b1d34e1d7b863) + }, + { /* i=2854; 120 / 115 */ + RTUINT128_INIT_C(0x007e1d0b8f262e5a, 0x73f8a90263d9e83f), RTUINT128_INIT_C(0x00003b3590fb19fe, 0xf6897bd3226c0184), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000221), RTUINT128_INIT_C(0x00001001e893d68f, 0x99480c861beaae3b) + }, + { /* i=2855; 117 / 59 */ + RTUINT128_INIT_C(0x00093320904c9597, 0x104d21ab03520940), RTUINT128_INIT_C(0x0000000000000000, 0x0058477ef1d7c997), + RTUINT128_INIT_C(0x0000000000000000, 0x1aad9ab96be2bbbe), RTUINT128_INIT_C(0x0000000000000000, 0x002720e9d09b1e2e) + }, + { /* i=2856; 64 / 42 */ + RTUINT128_INIT_C(0x0000000000000000, 0x8e262080a95c01db), RTUINT128_INIT_C(0x0000000000000000, 0x0000012fe2678050), + RTUINT128_INIT_C(0x0000000000000000, 0x000000000077bff9), RTUINT128_INIT_C(0x0000000000000000, 0x000000e594c4840b) + }, + { /* i=2857; 123 / 104 */ + RTUINT128_INIT_C(0x0039327c24617e95, 0x05fc1e05282e0504), RTUINT128_INIT_C(0x0000005a5aa62efe, 0x6a2a21fa50757497), + RTUINT128_INIT_C(0x0000000000000000, 0x000000000000a20e), RTUINT128_INIT_C(0x0000002e058ded7c, 0x8e2ddb6a6dfa16c2) + }, + { /* i=2858; 58 / 14 */ + RTUINT128_INIT_C(0x0000000000000000, 0x02dc5974c9eee0f6), RTUINT128_INIT_C(0x0000000000000000, 0x00000000000020dd), + RTUINT128_INIT_C(0x0000000000000000, 0x00001648e43e0330), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000002086) + }, + { /* i=2859; 120 / 55 */ + RTUINT128_INIT_C(0x0090196ad388c48e, 0x456909b65fee4b7c), RTUINT128_INIT_C(0x0000000000000000, 0x002a1cf5b58ffffa), + RTUINT128_INIT_C(0x0000000000000003, 0x6bf5ca54d76b1315), RTUINT128_INIT_C(0x0000000000000000, 0x002257e1d7a0bdfa) + }, + { /* i=2860; 124 / 72 */ + RTUINT128_INIT_C(0x0194f887a556d3a7, 0x55b9177dc70d4ad5), RTUINT128_INIT_C(0x000000000000008e, 0x885229cadcb30268), + RTUINT128_INIT_C(0x0000000000000000, 0x0002d75c516829e8), RTUINT128_INIT_C(0x0000000000000064, 0xcc29387137307495) + }, + { /* i=2861; 23 / 14 */ + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000477af8), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000003af3), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000136), RTUINT128_INIT_C(0x0000000000000000, 0x00000000000018b6) + }, + { /* i=2862; 122 / 43 */ + RTUINT128_INIT_C(0x03a723f02740447f, 0x7b43d55af92542ea), RTUINT128_INIT_C(0x0000000000000000, 0x0000007fe17c1d2a), + RTUINT128_INIT_C(0x0000000000075006, 0x2a9c51759d22e684), RTUINT128_INIT_C(0x0000000000000000, 0x00000044915e7d42) + }, + { /* i=2863; 34 / 28 */ + RTUINT128_INIT_C(0x0000000000000000, 0x0000000397fbb8c3), RTUINT128_INIT_C(0x0000000000000000, 0x000000000237b457), + RTUINT128_INIT_C(0x0000000000000000, 0x000000000000019e), RTUINT128_INIT_C(0x0000000000000000, 0x0000000001e61411) + }, + { /* i=2864; 45 / 11 */ + RTUINT128_INIT_C(0x0000000000000000, 0x00001a6a86834852), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000777), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000389eaa288), RTUINT128_INIT_C(0x0000000000000000, 0x000000000000031a) + }, + { /* i=2865; 72 / 88 */ + RTUINT128_INIT_C(0x00000000000000ed, 0xd263f65a7b1b2e32), RTUINT128_INIT_C(0x0000000000d8bc00, 0x7e00ea0570f0d519), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x00000000000000ed, 0xd263f65a7b1b2e32) + }, + { /* i=2866; 99 / 44 */ + RTUINT128_INIT_C(0x00000000f52200b1, 0x3be3d26d087476f0), RTUINT128_INIT_C(0x0000000000000000, 0x0000096565815fff), + RTUINT128_INIT_C(0x0000000000000000, 0x001a16be2ae4b83a), RTUINT128_INIT_C(0x0000000000000000, 0x00000643b7096f2a) + }, + { /* i=2867; 126 / 40 */ + RTUINT128_INIT_C(0x1685818d82571ee2, 0x6d4e0781b1fde3c6), RTUINT128_INIT_C(0x0000000000000000, 0x00000064870b7966), + RTUINT128_INIT_C(0x0000000000395a3e, 0x71ee42d63226bc5a), RTUINT128_INIT_C(0x0000000000000000, 0x0000004fd9aa4dea) + }, + { /* i=2868; 124 / 69 */ + RTUINT128_INIT_C(0x099fe16a2bdb7c9d, 0xe9e914a7a7a88d99), RTUINT128_INIT_C(0x0000000000000019, 0xa87a9ca15e9278ab), + RTUINT128_INIT_C(0x0000000000000000, 0x006006fe49d1490f), RTUINT128_INIT_C(0x000000000000000d, 0xac122d94120fb894) + }, + { /* i=2869; 127 / 60 */ + RTUINT128_INIT_C(0x0d5389bb2c5b573b, 0x983d926325dd3f0c), RTUINT128_INIT_C(0x0000000000000000, 0x06c69fd8e30ca062), + RTUINT128_INIT_C(0x0000000000000001, 0xf77b9f91c6613070), RTUINT128_INIT_C(0x0000000000000000, 0x03bb7796e122b42c) + }, + { /* i=2870; 64 / 62 */ + RTUINT128_INIT_C(0x0000000000000000, 0x10dd9dc685ebab68), RTUINT128_INIT_C(0x0000000000000000, 0x3fc4b0316772518a), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x0000000000000000, 0x10dd9dc685ebab68) + }, + { /* i=2871; 106 / 60 */ + RTUINT128_INIT_C(0x00000261db87559b, 0xc74d217d1234ac42), RTUINT128_INIT_C(0x0000000000000000, 0x047a064e6bd26f71), + RTUINT128_INIT_C(0x0000000000000000, 0x0000883b032d29cb), RTUINT128_INIT_C(0x0000000000000000, 0x03c76fb1f4a034a7) + }, + { /* i=2872; 119 / 47 */ + RTUINT128_INIT_C(0x0051c57ffb722b29, 0x0fedc90f68c7cd0c), RTUINT128_INIT_C(0x0000000000000000, 0x0000148d5b0b1656), + RTUINT128_INIT_C(0x00000000000003fa, 0x8de14a682a2ddb33), RTUINT128_INIT_C(0x0000000000000000, 0x00000276c058c7ea) + }, + { /* i=2873; 90 / 18 */ + RTUINT128_INIT_C(0x0000000001b5b290, 0x75e3cb161cfafa0b), RTUINT128_INIT_C(0x0000000000000000, 0x000000000000b6ae), + RTUINT128_INIT_C(0x0000000000000265, 0x5f2cb08c5f31cef2), RTUINT128_INIT_C(0x0000000000000000, 0x000000000000458f) + }, + { /* i=2874; 125 / 68 */ + RTUINT128_INIT_C(0x0aabf181e47da80c, 0x6dee76980529e362), RTUINT128_INIT_C(0x000000000000000c, 0xb2c5f1c58004fcbf), + RTUINT128_INIT_C(0x0000000000000000, 0x00d724532938b8e3), RTUINT128_INIT_C(0x000000000000000c, 0xa45c84f50a4c7e05) + }, + { /* i=2875; 121 / 107 */ + RTUINT128_INIT_C(0x00e7626a4cabf827, 0x49e8f5e7ed6f09a1), RTUINT128_INIT_C(0x0000040f842a8d2c, 0x61a4471a5d81c356), + RTUINT128_INIT_C(0x0000000000000000, 0x00000000000038fb), RTUINT128_INIT_C(0x0000024a6811d847, 0x9e497a99dc79b44f) + }, + { /* i=2876; 122 / 36 */ + RTUINT128_INIT_C(0x00fd1579eded940e, 0x07c8bfcff6566487), RTUINT128_INIT_C(0x0000000000000000, 0x00000003133c5d4a), + RTUINT128_INIT_C(0x0000000000524cca, 0x4efcde5eba9e314c), RTUINT128_INIT_C(0x0000000000000000, 0x000000025ae3888f) + }, + { /* i=2877; 28 / 21 */ + RTUINT128_INIT_C(0x0000000000000000, 0x000000000fb234eb), RTUINT128_INIT_C(0x0000000000000000, 0x00000000000acc5e), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000174), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000013c53) + }, + { /* i=2878; 115 / 3 */ + RTUINT128_INIT_C(0x0003ebb8d232029c, 0x7719db0a5b3819b7), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000005), + RTUINT128_INIT_C(0x0000c8be907066ec, 0x17d1f89babd80524), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000003) + }, + { /* i=2879; 124 / 89 */ + RTUINT128_INIT_C(0x0971b4cb894e51e4, 0xb01bc99e7de99569), RTUINT128_INIT_C(0x000000000179ead6, 0xf22a3022f180ac56), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000665bf18f5), RTUINT128_INIT_C(0x0000000000b5f831, 0x9cda7486cb72971b) + }, + { /* i=2880; 9 / 30 */ + RTUINT128_INIT_C(0x0000000000000000, 0x000000000000014a), RTUINT128_INIT_C(0x0000000000000000, 0x0000000020921f54), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x0000000000000000, 0x000000000000014a) + }, + { /* i=2881; 118 / 51 */ + RTUINT128_INIT_C(0x001d9f259899cc4f, 0x5a5faa933d0ec84f), RTUINT128_INIT_C(0x0000000000000000, 0x000290c1f1146377), + RTUINT128_INIT_C(0x000000000000000b, 0x8bdcfca5cdf309b5), RTUINT128_INIT_C(0x0000000000000000, 0x000216465d30462c) + }, + { /* i=2882; 127 / 119 */ + RTUINT128_INIT_C(0x44de13f8e51908ad, 0x245d2ad3eb0720f4), RTUINT128_INIT_C(0x001746046bcb5f2b, 0x5df3195a091d5ba5), + RTUINT128_INIT_C(0x0000000000000000, 0x00000000000002f5), RTUINT128_INIT_C(0x000c08e624b89d70, 0x54833396f737220b) + }, + { /* i=2883; 125 / 102 */ + RTUINT128_INIT_C(0x0f0d22995bdfdd43, 0xfd41f7ea59f3ded1), RTUINT128_INIT_C(0x0000002c84d1ed3b, 0x1d1c378f0c4de9ad), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000568cf9), RTUINT128_INIT_C(0x00000023ac18035e, 0x945f90e04642f98c) + }, + { /* i=2884; 107 / 39 */ + RTUINT128_INIT_C(0x00000158e4a29865, 0x566645fd5b14f3ad), RTUINT128_INIT_C(0x0000000000000000, 0x00000074936b10d3), + RTUINT128_INIT_C(0x0000000000000002, 0xf562318d845d296a), RTUINT128_INIT_C(0x0000000000000000, 0x000000534267314f) + }, + { /* i=2885; 107 / 52 */ + RTUINT128_INIT_C(0x000005cec29591a8, 0xf081c06f80057150), RTUINT128_INIT_C(0x0000000000000000, 0x000a15e0cf3550b8), + RTUINT128_INIT_C(0x0000000000000000, 0x00936a89f891d673), RTUINT128_INIT_C(0x0000000000000000, 0x0002995ee1605ea8) + }, + { /* i=2886; 14 / 7 */ + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000c21), RTUINT128_INIT_C(0x0000000000000000, 0x000000000000002d), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000045), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000) + }, + { /* i=2887; 85 / 73 */ + RTUINT128_INIT_C(0x000000000006e36a, 0x28ba0d4e1c8aa6eb), RTUINT128_INIT_C(0x0000000000000086, 0xd016cd67869605f2), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000d14), RTUINT128_INIT_C(0x0000000000000050, 0xbe83bf61fa84e603) + }, + { /* i=2888; 65 / 32 */ + RTUINT128_INIT_C(0x0000000000000000, 0x1cc95bd1111dd357), RTUINT128_INIT_C(0x0000000000000000, 0x00000000e69def4b), + RTUINT128_INIT_C(0x0000000000000000, 0x000000001ff47956), RTUINT128_INIT_C(0x0000000000000000, 0x00000000c978fd25) + }, + { /* i=2889; 125 / 100 */ + RTUINT128_INIT_C(0x08fa11e9e344b787, 0x907122ff998bb7ad), RTUINT128_INIT_C(0x0000000e5e71bde9, 0x70ee9507981e2bc7), + RTUINT128_INIT_C(0x0000000000000000, 0x00000000009feeef), RTUINT128_INIT_C(0x0000000d04883f6a, 0xc36f76bf5814d6e4) + }, + { /* i=2890; 19 / 5 */ + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000070757), RTUINT128_INIT_C(0x0000000000000000, 0x000000000000000f), + RTUINT128_INIT_C(0x0000000000000000, 0x00000000000077f4), RTUINT128_INIT_C(0x0000000000000000, 0x000000000000000b) + }, + { /* i=2891; 119 / 68 */ + RTUINT128_INIT_C(0x00213bcd7a2ea9d4, 0xf02c58f91182e504), RTUINT128_INIT_C(0x0000000000000000, 0x9b6b529ed1842d23), + RTUINT128_INIT_C(0x0000000000000000, 0x0036bdb196aef0a8), RTUINT128_INIT_C(0x0000000000000000, 0x267b55d778aa760c) + }, + { /* i=2892; 124 / 123 */ + RTUINT128_INIT_C(0x02345da052b6229d, 0x359d364aa1b7eb66), RTUINT128_INIT_C(0x01a6f650e64f566b, 0x1dea07fa586eea2a), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000001), RTUINT128_INIT_C(0x008d674f6c66cc32, 0x17b32e504949013c) + }, + { /* i=2893; 93 / 52 */ + RTUINT128_INIT_C(0x000000001f8cde89, 0xbce3dfe12751a511), RTUINT128_INIT_C(0x0000000000000000, 0x000b619deee0d2d0), + RTUINT128_INIT_C(0x0000000000000000, 0x000002c5a90fa16e), RTUINT128_INIT_C(0x0000000000000000, 0x0000566173f23fb1) + }, + { /* i=2894; 122 / 40 */ + RTUINT128_INIT_C(0x01f06c38b0d4b079, 0xfdb992ea20273d9d), RTUINT128_INIT_C(0x0000000000000000, 0x0000004c9ad6672c), + RTUINT128_INIT_C(0x0000000000067af5, 0x4fe8ca2b9c285929), RTUINT128_INIT_C(0x0000000000000000, 0x0000000ddb126b91) + }, + { /* i=2895; 122 / 30 */ + RTUINT128_INIT_C(0x028afdaa5e8d13ce, 0x66112100711f0834), RTUINT128_INIT_C(0x0000000000000000, 0x000000001acc2955), + RTUINT128_INIT_C(0x00000000184affc9, 0x778642c4f4a232f2), RTUINT128_INIT_C(0x0000000000000000, 0x0000000010435bda) + }, + { /* i=2896; 80 / 90 */ + RTUINT128_INIT_C(0x000000000000f419, 0xed20c6474d2a1b7b), RTUINT128_INIT_C(0x0000000001172d2b, 0x04771952458a2692), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x000000000000f419, 0xed20c6474d2a1b7b) + }, + { /* i=2897; 106 / 4 */ + RTUINT128_INIT_C(0x0000029a778ffab7, 0xb089c4734c1ff0d4), RTUINT128_INIT_C(0x0000000000000000, 0x000000000000000f), + RTUINT128_INIT_C(0x0000002c6e5eee94, 0xc780a6b25a688785), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000009) + }, + { /* i=2898; 4 / 3 */ + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000004), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000004), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000001), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000) + }, + { /* i=2899; 128 / 90 */ + RTUINT128_INIT_C(0x90f648d34d0d50ac, 0xa254c622f71d13ab), RTUINT128_INIT_C(0x00000000009334d3, 0x30c87e00dcf691e3), + RTUINT128_INIT_C(0x0000000000000000, 0x000000fc18d79cb7), RTUINT128_INIT_C(0x0000000000550eef, 0x2c11e0a8f44f7666) + }, + { /* i=2900; 88 / 85 */ + RTUINT128_INIT_C(0x0000000000cdde22, 0xcd1be0fe9af57fb8), RTUINT128_INIT_C(0x00000000000daa98, 0x17c987ebc4ffc155), + RTUINT128_INIT_C(0x0000000000000000, 0x000000000000000f), RTUINT128_INIT_C(0x000000000000df39, 0x684cea2e0ff92bbd) + }, + { /* i=2901; 119 / 62 */ + RTUINT128_INIT_C(0x00049a3c4785e753, 0x76c9f33d0b4707fb), RTUINT128_INIT_C(0x0000000000000000, 0x33a9917326a22e45), + RTUINT128_INIT_C(0x0000000000000000, 0x0016ce739ba80fff), RTUINT128_INIT_C(0x0000000000000000, 0x0f6276d4eabce640) + }, + { /* i=2902; 114 / 63 */ + RTUINT128_INIT_C(0x0002c76ed7d411ff, 0xf6a215625cac75d5), RTUINT128_INIT_C(0x0000000000000000, 0x1d1dcd8eb72978f3), + RTUINT128_INIT_C(0x0000000000000000, 0x00186f2016d0ed2a), RTUINT128_INIT_C(0x0000000000000000, 0x19565eefc375a6f7) + }, + { /* i=2903; 73 / 64 */ + RTUINT128_INIT_C(0x0000000000000130, 0xb8d57d4a626a00f2), RTUINT128_INIT_C(0x0000000000000000, 0xd2c725df9a98b1f2), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000172), RTUINT128_INIT_C(0x0000000000000000, 0x1500c01cf1b8d12e) + }, + { /* i=2904; 124 / 60 */ + RTUINT128_INIT_C(0x009654a284044b09, 0xfb8f2f31dcce02a5), RTUINT128_INIT_C(0x0000000000000000, 0x03421162f9c079c4), + RTUINT128_INIT_C(0x0000000000000000, 0x2e2411469d3a3fd1), RTUINT128_INIT_C(0x0000000000000000, 0x0278b20cce4b5da1) + }, + { /* i=2905; 98 / 90 */ + RTUINT128_INIT_C(0x0000000363e9119c, 0x036ceee5f5f6cec3), RTUINT128_INIT_C(0x0000000003c146a2, 0x7807958d6e77ba5f), + RTUINT128_INIT_C(0x0000000000000000, 0x00000000000000e7), RTUINT128_INIT_C(0x0000000000825501, 0xb494fc4747eda30a) + }, + { /* i=2906; 118 / 65 */ + RTUINT128_INIT_C(0x0005f89491c03109, 0x43da6736a73063ff), RTUINT128_INIT_C(0x0000000000000001, 0x38feab3ac1faea86), + RTUINT128_INIT_C(0x0000000000000000, 0x0004e23bc375a5a1), RTUINT128_INIT_C(0x0000000000000000, 0x61c0b708adfc87b9) + }, + { /* i=2907; 116 / 38 */ + RTUINT128_INIT_C(0x000ddfa7d3093e9f, 0x73d4888715e57279), RTUINT128_INIT_C(0x0000000000000000, 0x0000002af320c5c9), + RTUINT128_INIT_C(0x00000000000052b1, 0x7e85458d893b34be), RTUINT128_INIT_C(0x0000000000000000, 0x00000028d512d34b) + }, + { /* i=2908; 127 / 109 */ + RTUINT128_INIT_C(0x6f4e0d57b9666d89, 0x8d5ab5c3f133024b), RTUINT128_INIT_C(0x00001a7cc64f2ace, 0xb788ee5ecbf5a53c), + RTUINT128_INIT_C(0x0000000000000000, 0x00000000000433c2), RTUINT128_INIT_C(0x0000060b00a5f02e, 0x769dff74dc30d6d3) + }, + { /* i=2909; 79 / 20 */ + RTUINT128_INIT_C(0x00000000000061df, 0x6b369e282229c34c), RTUINT128_INIT_C(0x0000000000000000, 0x00000000000e69e7), + RTUINT128_INIT_C(0x0000000000000000, 0x06ca4ee1148b86b7), RTUINT128_INIT_C(0x0000000000000000, 0x000000000000252b) + }, + { /* i=2910; 51 / 39 */ + RTUINT128_INIT_C(0x0000000000000000, 0x0003f3c55b58c7a9), RTUINT128_INIT_C(0x0000000000000000, 0x0000001335704080), + RTUINT128_INIT_C(0x0000000000000000, 0x00000000000034ac), RTUINT128_INIT_C(0x0000000000000000, 0x00000002a6d371a9) + }, + { /* i=2911; 117 / 39 */ + RTUINT128_INIT_C(0x0008a0f89830a8c4, 0xb8cb4dd2065238d0), RTUINT128_INIT_C(0x0000000000000000, 0x0000004bc4b5f673), + RTUINT128_INIT_C(0x0000000000001d27, 0x7d0f35160c009752), RTUINT128_INIT_C(0x0000000000000000, 0x000000164bab72fa) + }, + { /* i=2912; 38 / 90 */ + RTUINT128_INIT_C(0x0000000000000000, 0x0000000fb036caf0), RTUINT128_INIT_C(0x0000000002854fe4, 0xb271d7088c78d812), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x0000000000000000, 0x0000000fb036caf0) + }, + { /* i=2913; 126 / 25 */ + RTUINT128_INIT_C(0x3d15ec3569813ecf, 0xa292ab7321722280), RTUINT128_INIT_C(0x0000000000000000, 0x00000000010727ea), + RTUINT128_INIT_C(0x0000003b6caf8897, 0x1d903bff9aa8a399), RTUINT128_INIT_C(0x0000000000000000, 0x00000000003149a6) + }, + { /* i=2914; 115 / 109 */ + RTUINT128_INIT_C(0x000560ecfb30abcb, 0xbeadc73222afdcc2), RTUINT128_INIT_C(0x00001f6216398a67, 0xfca238af4d7ce587), + RTUINT128_INIT_C(0x0000000000000000, 0x000000000000002b), RTUINT128_INIT_C(0x00001b733f866c54, 0x4f6e41c01eb54f15) + }, + { /* i=2915; 117 / 16 */ + RTUINT128_INIT_C(0x0010ea330de6303f, 0x9cfec72982211dbf), RTUINT128_INIT_C(0x0000000000000000, 0x000000000000a491), + RTUINT128_INIT_C(0x0000001a501243fc, 0x613f44ee6a5649c3), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000006a4c) + }, + { /* i=2916; 121 / 115 */ + RTUINT128_INIT_C(0x005d40b9439855d6, 0x500169e7972bac12), RTUINT128_INIT_C(0x00010dae2ea0c2d8, 0xed97dd94b5322e32), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000058), RTUINT128_INIT_C(0x00008cd93c555b44, 0xa3cd3ec94debcae2) + }, + { /* i=2917; 118 / 66 */ + RTUINT128_INIT_C(0x003eac2cfe063f05, 0x028a322da4833a75), RTUINT128_INIT_C(0x0000000000000000, 0x78d81e8c20cb8b9f), + RTUINT128_INIT_C(0x0000000000000000, 0x0084c47627c0dfc1), RTUINT128_INIT_C(0x0000000000000000, 0x703367bfac2f7696) + }, + { /* i=2918; 116 / 113 */ + RTUINT128_INIT_C(0x00071aebc727cae6, 0x675ecd7e349a44c8), RTUINT128_INIT_C(0x0000944c0fa04619, 0x2b4682d5eb94f89b), + RTUINT128_INIT_C(0x0000000000000000, 0x000000000000000c), RTUINT128_INIT_C(0x0000275b0ba481b8, 0x6010ab77299e9d84) + }, + { /* i=2919; 109 / 52 */ + RTUINT128_INIT_C(0x00000ef5015d7d71, 0x52bed4ad8c7f8c33), RTUINT128_INIT_C(0x0000000000000000, 0x00097e47d48b78ee), + RTUINT128_INIT_C(0x0000000000000000, 0x0193569e31504906), RTUINT128_INIT_C(0x0000000000000000, 0x0003aec3735ed89f) + }, + { /* i=2920; 126 / 111 */ + RTUINT128_INIT_C(0x2167180c2cc0e136, 0x6134e36bd9aeb695), RTUINT128_INIT_C(0x00000fd32131b0e1, 0xe07d22dcd9aec462), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000021c5c), RTUINT128_INIT_C(0x00000e276dc8da81, 0xbeb280e0f8a16b5d) + }, + { /* i=2921; 123 / 63 */ + RTUINT128_INIT_C(0x07ab648976e528bf, 0xe94e593a1fed86e0), RTUINT128_INIT_C(0x0000000000000000, 0x1eb4ae1ab4941936), + RTUINT128_INIT_C(0x0000000000000000, 0x3ff12eab1bdd78df), RTUINT128_INIT_C(0x0000000000000000, 0x18ea1dbcf17c40d6) + }, + { /* i=2922; 115 / 19 */ + RTUINT128_INIT_C(0x0006965459de6440, 0xb792ec26c71354ba), RTUINT128_INIT_C(0x0000000000000000, 0x000000000005a75e), + RTUINT128_INIT_C(0x000000012a441562, 0x48eb4a564514f2f9), RTUINT128_INIT_C(0x0000000000000000, 0x000000000004ae4c) + }, + { /* i=2923; 115 / 55 */ + RTUINT128_INIT_C(0x00034add0ba9093a, 0x5cc8243aa77e26c3), RTUINT128_INIT_C(0x0000000000000000, 0x006b4cc75ae89ffd), + RTUINT128_INIT_C(0x0000000000000000, 0x07daef1737760d74), RTUINT128_INIT_C(0x0000000000000000, 0x0021c5f38c57cf1f) + }, + { /* i=2924; 128 / 118 */ + RTUINT128_INIT_C(0x085d5a23a1431b22, 0xa34aa82220c5754a), RTUINT128_INIT_C(0x00157e1d11c48828, 0xf362414690e12068), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000063), RTUINT128_INIT_C(0x000d94e5c242734c, 0x844b69d819b5ed12) + }, + { /* i=2925; 115 / 27 */ + RTUINT128_INIT_C(0x0006b6b7bd80cd12, 0x2675092050f34769), RTUINT128_INIT_C(0x0000000000000000, 0x0000000006684451), + RTUINT128_INIT_C(0x00000000010c3e76, 0xa3d3fba1557930b7), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000524182) + }, + { /* i=2926; 124 / 105 */ + RTUINT128_INIT_C(0x0d4cc587b607e84a, 0x6a2d1b54d81aedd0), RTUINT128_INIT_C(0x000000b9f8840ce0, 0xb21e102d642b407e), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000124edf), RTUINT128_INIT_C(0x000000871747b42c, 0xf5de243adfeb5c0e) + }, + { /* i=2927; 104 / 11 */ + RTUINT128_INIT_C(0x0000005a8cbebf2d, 0x25dd8ab03dc7dd8c), RTUINT128_INIT_C(0x0000000000000000, 0x00000000000006a7), + RTUINT128_INIT_C(0x000000000d9c9924, 0x1aa12040241d2133), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000347) + }, + { /* i=2928; 63 / 43 */ + RTUINT128_INIT_C(0x0000000000000000, 0x33947859f907ccd5), RTUINT128_INIT_C(0x0000000000000000, 0x000000875699d6ec), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000619100), RTUINT128_INIT_C(0x0000000000000000, 0x0000000266e020d5) + }, + { /* i=2929; 95 / 2 */ + RTUINT128_INIT_C(0x000000006237326d, 0x017d0f4ece79a6ec), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000001), + RTUINT128_INIT_C(0x000000006237326d, 0x017d0f4ece79a6ec), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000) + }, + { /* i=2930; 11 / 32 */ + RTUINT128_INIT_C(0x0000000000000000, 0x000000000000063e), RTUINT128_INIT_C(0x0000000000000000, 0x0000000046248535), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x0000000000000000, 0x000000000000063e) + }, + { /* i=2931; 119 / 29 */ + RTUINT128_INIT_C(0x0027ad63c6520c25, 0x40f2c28826f807ab), RTUINT128_INIT_C(0x0000000000000000, 0x0000000006b769b6), + RTUINT128_INIT_C(0x0000000005e85050, 0x2753b3266ab979ff), RTUINT128_INIT_C(0x0000000000000000, 0x0000000004c8b561) + }, + { /* i=2932; 115 / 98 */ + RTUINT128_INIT_C(0x000531708d401b62, 0x4fbb14cc3cd9d779), RTUINT128_INIT_C(0x0000000118dfb558, 0x84b1578673ea1d04), + RTUINT128_INIT_C(0x0000000000000000, 0x000000000004bbb4), RTUINT128_INIT_C(0x00000000d11add72, 0x1a0083ee44fb84a9) + }, + { /* i=2933; 106 / 1 */ + RTUINT128_INIT_C(0x0000005c8cb3fc3f, 0xcec627639f4b040a), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000001), + RTUINT128_INIT_C(0x0000005c8cb3fc3f, 0xcec627639f4b040a), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000) + }, + { /* i=2934; 118 / 93 */ + RTUINT128_INIT_C(0x00391aef7b40449d, 0x0df8ec6479082636), RTUINT128_INIT_C(0x00000000179166f3, 0xee7986ea5c96a183), + RTUINT128_INIT_C(0x0000000000000000, 0x00000000026c49c0), RTUINT128_INIT_C(0x000000000111f056, 0xcbc2ab68eabca8f6) + }, + { /* i=2935; 123 / 113 */ + RTUINT128_INIT_C(0x01d3bc0cdcc6356e, 0xcb51400996783971), RTUINT128_INIT_C(0x0000dd93272fea44, 0xc2a13ce0bf0d810f), + RTUINT128_INIT_C(0x0000000000000000, 0x000000000000021c), RTUINT128_INIT_C(0x000059a633b40c64, 0x3f34d5f695fbfdcd) + }, + { /* i=2936; 119 / 114 */ + RTUINT128_INIT_C(0x005da3b361d3ce0f, 0xd133bc9c69dc65ff), RTUINT128_INIT_C(0x000296f471bfae89, 0x71539daa832b1734), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000024), RTUINT128_INIT_C(0x0000695362df42bb, 0xe17190a1f7cd22af) + }, + { /* i=2937; 82 / 57 */ + RTUINT128_INIT_C(0x0000000000026970, 0x8062693940fcbde5), RTUINT128_INIT_C(0x0000000000000000, 0x00508ef8ef4f06fc), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000007aa1bcf), RTUINT128_INIT_C(0x0000000000000000, 0x00507906e3018421) + }, + { /* i=2938; 117 / 12 */ + RTUINT128_INIT_C(0x000f5895206cd709, 0xdc69fe830117000c), RTUINT128_INIT_C(0x0000000000000000, 0x00000000000004e1), + RTUINT128_INIT_C(0x0000032537c6b27d, 0xa69b7292dbed5ddf), RTUINT128_INIT_C(0x0000000000000000, 0x000000000000030d) + }, + { /* i=2939; 116 / 105 */ + RTUINT128_INIT_C(0x000ed30e0d9c1401, 0xfda0263410b7157d), RTUINT128_INIT_C(0x0000004b4853e8ea, 0x5174e542df67b53f), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000003269), RTUINT128_INIT_C(0x0000000cffb3c7fd, 0xbfe70e242dc770a6) + }, + { /* i=2940; 98 / 45 */ + RTUINT128_INIT_C(0x0000000340c4419e, 0x45071c52a819caa0), RTUINT128_INIT_C(0x0000000000000000, 0x0000167a39d80301), + RTUINT128_INIT_C(0x0000000000000000, 0x00250c8a91c50574), RTUINT128_INIT_C(0x0000000000000000, 0x000002575964692c) + }, + { /* i=2941; 120 / 71 */ + RTUINT128_INIT_C(0x0059f06b8429ab73, 0x820624aa52b87808), RTUINT128_INIT_C(0x000000000000003b, 0x68cdafe79a9f1f17), + RTUINT128_INIT_C(0x0000000000000000, 0x0001838e246095bf), RTUINT128_INIT_C(0x000000000000000b, 0xc052ba127447e2df) + }, + { /* i=2942; 91 / 73 */ + RTUINT128_INIT_C(0x0000000000d6a04a, 0x1e34960ab652375b), RTUINT128_INIT_C(0x00000000000001df, 0xf8ac6bd90248a00a), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000007279), RTUINT128_INIT_C(0x00000000000000b0, 0xccaef9744aba1ea1) + }, + { /* i=2943; 28 / 25 */ + RTUINT128_INIT_C(0x0000000000000000, 0x00000000055283d0), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000e7c238), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000005), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000cbb8b8) + }, + { /* i=2944; 91 / 42 */ + RTUINT128_INIT_C(0x0000000005f6f343, 0xa6a6c7e20f25d878), RTUINT128_INIT_C(0x0000000000000000, 0x00000126652ce2cc), + RTUINT128_INIT_C(0x0000000000000000, 0x00052fcded5c8a16), RTUINT128_INIT_C(0x0000000000000000, 0x00000096cdb862f0) + }, + { /* i=2945; 69 / 62 */ + RTUINT128_INIT_C(0x0000000000000018, 0x4d7885fad747faa8), RTUINT128_INIT_C(0x0000000000000000, 0x3677e662b004b3f1), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000072), RTUINT128_INIT_C(0x0000000000000000, 0x0c13ee08752fd956) + }, + { /* i=2946; 100 / 111 */ + RTUINT128_INIT_C(0x0000000c4eab3913, 0xc9a6f642b9a9a570), RTUINT128_INIT_C(0x00003b4b7f2adc5f, 0xee081a4adec94030), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x0000000c4eab3913, 0xc9a6f642b9a9a570) + }, + { /* i=2947; 63 / 10 */ + RTUINT128_INIT_C(0x0000000000000000, 0x7f5b334f925c326a), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000283), + RTUINT128_INIT_C(0x0000000000000000, 0x0032b46f33fc297b), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000279) + }, + { /* i=2948; 85 / 54 */ + RTUINT128_INIT_C(0x00000000001f65d1, 0x69a4413249afc019), RTUINT128_INIT_C(0x0000000000000000, 0x0008f22918552fcf), + RTUINT128_INIT_C(0x0000000000000000, 0x00000003827ce3db), RTUINT128_INIT_C(0x0000000000000000, 0x00000c7fa9274d04) + }, + { /* i=2949; 124 / 122 */ + RTUINT128_INIT_C(0x0c704cca22d3150e, 0xbda5ad1d9b602aab), RTUINT128_INIT_C(0x009db5a042077143, 0x9aeff2010bd3fce9), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000014), RTUINT128_INIT_C(0x001e1c44fa3e3bc6, 0xa2e6c508aed06877) + }, + { /* i=2950; 86 / 54 */ + RTUINT128_INIT_C(0x00000000001a2970, 0xb07b2f95ccffb617), RTUINT128_INIT_C(0x0000000000000000, 0x0026756727b30209), + RTUINT128_INIT_C(0x0000000000000000, 0x00000000ae258fd5), RTUINT128_INIT_C(0x0000000000000000, 0x000279535d9efd9a) + }, + { /* i=2951; 122 / 127 */ + RTUINT128_INIT_C(0x0181be4425be380e, 0xf4519c5962302b90), RTUINT128_INIT_C(0x3b7cf09501fa7c1c, 0xd79990535d18f355), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x0181be4425be380e, 0xf4519c5962302b90) + }, + { /* i=2952; 68 / 4 */ + RTUINT128_INIT_C(0x0000000000000008, 0x583172432e80c02d), RTUINT128_INIT_C(0x0000000000000000, 0x000000000000000d), + RTUINT128_INIT_C(0x0000000000000000, 0xa45292a2b4ced3b4), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000009) + }, + { /* i=2953; 114 / 108 */ + RTUINT128_INIT_C(0x00038980c962d932, 0x67492c31d6ca08d8), RTUINT128_INIT_C(0x00000d6929ac2609, 0x945e574f174571d7), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000043), RTUINT128_INIT_C(0x000006fae154e4b0, 0x9298527ebf9d3d93) + }, + { /* i=2954; 126 / 109 */ + RTUINT128_INIT_C(0x3e6c124c8275c0c3, 0x5b05a4bd9ae724dc), RTUINT128_INIT_C(0x0000002ec2678edf, 0x3623cdb5d58025c6), + RTUINT128_INIT_C(0x0000000000000000, 0x000000000155c044), RTUINT128_INIT_C(0x00000021e479472d, 0x1c053c9e77ca9c44) + }, + { /* i=2955; 87 / 36 */ + RTUINT128_INIT_C(0x00000000007f1bb0, 0xbaaa0a61e8b88cf6), RTUINT128_INIT_C(0x0000000000000000, 0x0000000a3b4e53df), + RTUINT128_INIT_C(0x0000000000000000, 0x000c6c4b0977fbee), RTUINT128_INIT_C(0x0000000000000000, 0x000000082601eea4) + }, + { /* i=2956; 83 / 5 */ + RTUINT128_INIT_C(0x0000000000071f79, 0x04c82362c7c0d685), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000016), + RTUINT128_INIT_C(0x00000000000052e2, 0x977d75f8da88c3ee), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000011) + }, + { /* i=2957; 47 / 11 */ + RTUINT128_INIT_C(0x0000000000000000, 0x00002ae9e15bee3f), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000602), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000724995c33), RTUINT128_INIT_C(0x0000000000000000, 0x00000000000003d9) + }, + { /* i=2958; 93 / 38 */ + RTUINT128_INIT_C(0x0000000012a2b9b7, 0x2e0b7e791c9222c4), RTUINT128_INIT_C(0x0000000000000000, 0x0000003100132fff), + RTUINT128_INIT_C(0x0000000000000000, 0x00615c751fae7b00), RTUINT128_INIT_C(0x0000000000000000, 0x0000000a64309dc4) + }, + { /* i=2959; 125 / 77 */ + RTUINT128_INIT_C(0x0a307c741526ce9d, 0x6a3e1bfc09b09cac), RTUINT128_INIT_C(0x0000000000000be2, 0x77445bd5f76c09e1), + RTUINT128_INIT_C(0x0000000000000000, 0x0000db7be4a3c8ea), RTUINT128_INIT_C(0x00000000000007a6, 0xa70e0469caf4cd02) + }, + { /* i=2960; 32 / 36 */ + RTUINT128_INIT_C(0x0000000000000000, 0x000000001ef032c5), RTUINT128_INIT_C(0x0000000000000000, 0x0000000471f74b19), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x0000000000000000, 0x000000001ef032c5) + }, + { /* i=2961; 114 / 70 */ + RTUINT128_INIT_C(0x0001a8ac64c36a1e, 0x9a32730691d50176), RTUINT128_INIT_C(0x0000000000000027, 0x47ac1d11fde4d12d), + RTUINT128_INIT_C(0x0000000000000000, 0x00000acfbb27c730), RTUINT128_INIT_C(0x000000000000001e, 0x90ef4b3f5b78ce06) + }, + { /* i=2962; 117 / 75 */ + RTUINT128_INIT_C(0x00183f780de126c2, 0x8543adaf66ff4904), RTUINT128_INIT_C(0x000000000000079d, 0xf0eb680b0e55f7b8), + RTUINT128_INIT_C(0x0000000000000000, 0x0000032ef4315422), RTUINT128_INIT_C(0x000000000000015a, 0x3ebae1e380140294) + }, + { /* i=2963; 72 / 58 */ + RTUINT128_INIT_C(0x0000000000000074, 0x4187467d1f307b9f), RTUINT128_INIT_C(0x0000000000000000, 0x02c7c4adbb68a379), + RTUINT128_INIT_C(0x0000000000000000, 0x00000000000029d0), RTUINT128_INIT_C(0x0000000000000000, 0x00b7a65117fd484f) + }, + { /* i=2964; 27 / 22 */ + RTUINT128_INIT_C(0x0000000000000000, 0x0000000004cefe28), RTUINT128_INIT_C(0x0000000000000000, 0x00000000001b9226), + RTUINT128_INIT_C(0x0000000000000000, 0x000000000000002c), RTUINT128_INIT_C(0x0000000000000000, 0x000000000011dfa0) + }, + { /* i=2965; 128 / 101 */ + RTUINT128_INIT_C(0x1ad0b16bde1284e7, 0x54083bab1bc8a386), RTUINT128_INIT_C(0x0000001fd8a3b830, 0x7909f19d9594d1ec), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000d78eae), RTUINT128_INIT_C(0x0000001c1deac977, 0x9fe7f99a96fd0d1e) + }, + { /* i=2966; 19 / 12 */ + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000015720), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000dab), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000019), RTUINT128_INIT_C(0x0000000000000000, 0x000000000000016d) + }, + { /* i=2967; 69 / 62 */ + RTUINT128_INIT_C(0x000000000000001b, 0xb5d92eeb149426a7), RTUINT128_INIT_C(0x0000000000000000, 0x35766b2e45a0ce06), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000084), RTUINT128_INIT_C(0x0000000000000000, 0x24c9eb0f2da9eb8f) + }, + { /* i=2968; 123 / 109 */ + RTUINT128_INIT_C(0x05894f4860336500, 0x4f967c4891f7c317), RTUINT128_INIT_C(0x00000e75c7bca908, 0xea14e5e7d86246b1), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000006203), RTUINT128_INIT_C(0x00000d70d0480049, 0x915509bb69c12d04) + }, + { /* i=2969; 126 / 56 */ + RTUINT128_INIT_C(0x1159147b5f837775, 0x3f5cfd09a90e15bf), RTUINT128_INIT_C(0x0000000000000000, 0x004cdc98168d9f09), + RTUINT128_INIT_C(0x0000000000000039, 0xc7b7a7fc8d80cae3), RTUINT128_INIT_C(0x0000000000000000, 0x0017ad1e707cf6c4) + }, + { /* i=2970; 114 / 108 */ + RTUINT128_INIT_C(0x000056e9ea2c4d96, 0x6208b25d75ff43fd), RTUINT128_INIT_C(0x00000770f174eec8, 0x13c1ce0b3bc9e22c), + RTUINT128_INIT_C(0x0000000000000000, 0x000000000000000b), RTUINT128_INIT_C(0x0000050f8a260afd, 0x88b4d7e1e4528c19) + }, + { /* i=2971; 124 / 41 */ + RTUINT128_INIT_C(0x05e83a6ef6b012ea, 0x6cf196fe21057d2b), RTUINT128_INIT_C(0x0000000000000000, 0x0000006c9070c7a7), + RTUINT128_INIT_C(0x00000000000dede9, 0x69ffce9cb89a3546), RTUINT128_INIT_C(0x0000000000000000, 0x0000004b26635281) + }, + { /* i=2972; 98 / 4 */ + RTUINT128_INIT_C(0x00000000b4cefb0a, 0x28a6f01a178467e0), RTUINT128_INIT_C(0x0000000000000000, 0x000000000000000f), + RTUINT128_INIT_C(0x000000000c0dcc78, 0x24d7eddf9b2af5db), RTUINT128_INIT_C(0x0000000000000000, 0x000000000000000b) + }, + { /* i=2973; 70 / 67 */ + RTUINT128_INIT_C(0x000000000000002b, 0xe2fe62114f754030), RTUINT128_INIT_C(0x0000000000000001, 0x30312bf42b68cdc3), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000024), RTUINT128_INIT_C(0x0000000000000001, 0x1c1433bb34b850c4) + }, + { /* i=2974; 122 / 53 */ + RTUINT128_INIT_C(0x03e50db5e2b56d72, 0xc59053ce9024f48f), RTUINT128_INIT_C(0x0000000000000000, 0x001191f8aabe0f75), + RTUINT128_INIT_C(0x0000000000000038, 0xbf31a13f4c839849), RTUINT128_INIT_C(0x0000000000000000, 0x000edfe161e61432) + }, + { /* i=2975; 87 / 13 */ + RTUINT128_INIT_C(0x00000000004ce46b, 0x5d1d542455d1aa30), RTUINT128_INIT_C(0x0000000000000000, 0x000000000000161e), + RTUINT128_INIT_C(0x000000000000037a, 0x016b06a9495a0eb9), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000a82) + }, + { /* i=2976; 25 / 28 */ + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000539a30), RTUINT128_INIT_C(0x0000000000000000, 0x000000000331e1df), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000539a30) + }, + { /* i=2977; 127 / 127 */ + RTUINT128_INIT_C(0x1848eb131a3fd4cd, 0xec05812e4c70fb60), RTUINT128_INIT_C(0x19e4c491040de529, 0x9474a09187d303b4), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x1848eb131a3fd4cd, 0xec05812e4c70fb60) + }, + { /* i=2978; 125 / 70 */ + RTUINT128_INIT_C(0x0e5d16d0453aee8e, 0x5a3d61d4947a10a3), RTUINT128_INIT_C(0x0000000000000015, 0x04bf9f960a9ee230), + RTUINT128_INIT_C(0x0000000000000000, 0x00aef1e89f97189e), RTUINT128_INIT_C(0x0000000000000007, 0x335db487e6e5f703) + }, + { /* i=2979; 123 / 62 */ + RTUINT128_INIT_C(0x078d97dc04983bbb, 0x7fb5687f807220ed), RTUINT128_INIT_C(0x0000000000000000, 0x05c81ba124aa8a06), + RTUINT128_INIT_C(0x0000000000000001, 0x4e6f5a9894b51e56), RTUINT128_INIT_C(0x0000000000000000, 0x02bbaa2224bd0ee9) + }, + { /* i=2980; 93 / 21 */ + RTUINT128_INIT_C(0x000000000a8dd41e, 0xd19dea3851865b5a), RTUINT128_INIT_C(0x0000000000000000, 0x00000000000925a4), + RTUINT128_INIT_C(0x0000000000000127, 0x60a88138a90de3da), RTUINT128_INIT_C(0x0000000000000000, 0x000000000007e1b2) + }, + { /* i=2981; 122 / 77 */ + RTUINT128_INIT_C(0x00202d7afd712bfc, 0xd840aaa348484215), RTUINT128_INIT_C(0x0000000000001b06, 0xa9d9a6fe44a97165), + RTUINT128_INIT_C(0x0000000000000000, 0x00000130cc4b9dfb), RTUINT128_INIT_C(0x0000000000001481, 0xc00433495704230e) + }, + { /* i=2982; 101 / 48 */ + RTUINT128_INIT_C(0x00000013a8887201, 0x9f7d633043389d4c), RTUINT128_INIT_C(0x0000000000000000, 0x000054b9d346dee6), + RTUINT128_INIT_C(0x0000000000000000, 0x003b65d7da5066d6), RTUINT128_INIT_C(0x0000000000000000, 0x0000348be54aa508) + }, + { /* i=2983; 120 / 64 */ + RTUINT128_INIT_C(0x0091d735317bd2d3, 0x0bc98a1c03b87ba2), RTUINT128_INIT_C(0x0000000000000000, 0xa376555829533593), + RTUINT128_INIT_C(0x0000000000000000, 0x00e46713b0ba256c), RTUINT128_INIT_C(0x0000000000000000, 0x1a6970be9111a29e) + }, + { /* i=2984; 117 / 40 */ + RTUINT128_INIT_C(0x000064c604542e12, 0x618053924d77acaa), RTUINT128_INIT_C(0x0000000000000000, 0x00000083612bb1cc), + RTUINT128_INIT_C(0x00000000000000c4, 0x5cca8f90a50f9aec), RTUINT128_INIT_C(0x0000000000000000, 0x0000001889470c9a) + }, + { /* i=2985; 120 / 80 */ + RTUINT128_INIT_C(0x00a3e5d16a0e9fb5, 0x131da3ff7c14596e), RTUINT128_INIT_C(0x000000000000e674, 0xae1b764b200b3c1d), + RTUINT128_INIT_C(0x0000000000000000, 0x000000b6108375af), RTUINT128_INIT_C(0x000000000000d984, 0x7ed89adfdf16009b) + }, + { /* i=2986; 126 / 40 */ + RTUINT128_INIT_C(0x0db9e14819732817, 0x9103f327dc993ddc), RTUINT128_INIT_C(0x0000000000000000, 0x000000b7fd002e27), + RTUINT128_INIT_C(0x0000000000131930, 0x169115658320d76c), RTUINT128_INIT_C(0x0000000000000000, 0x000000073fe30468) + }, + { /* i=2987; 114 / 112 */ + RTUINT128_INIT_C(0x00035920340fae4d, 0xc78ca9c40f0fb628), RTUINT128_INIT_C(0x0000454bff22ce2b, 0xc6feac529cc972c0), + RTUINT128_INIT_C(0x0000000000000000, 0x000000000000000c), RTUINT128_INIT_C(0x000019903e6e0440, 0x739c95e4b59e5528) + }, + { /* i=2988; 111 / 107 */ + RTUINT128_INIT_C(0x00005b17bf0b698f, 0xfc3a1efde316287b), RTUINT128_INIT_C(0x0000008cd56e69f4, 0x7113c343514e165f), + RTUINT128_INIT_C(0x0000000000000000, 0x00000000000000a5), RTUINT128_INIT_C(0x000000522ee11f03, 0x1a7d449a7bc1bd40) + }, + { /* i=2989; 90 / 22 */ + RTUINT128_INIT_C(0x00000000011035e8, 0x4dfcdc0d868f3ca5), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000304f48), + RTUINT128_INIT_C(0x0000000000000005, 0xa27ba26b2b3db1bc), RTUINT128_INIT_C(0x0000000000000000, 0x00000000001c3bc5) + }, + { /* i=2990; 126 / 83 */ + RTUINT128_INIT_C(0x09910a89284c620a, 0xfe2258748dbc5306), RTUINT128_INIT_C(0x0000000000044fa9, 0x216f922e1e4a0deb), + RTUINT128_INIT_C(0x0000000000000000, 0x000002381176014a), RTUINT128_INIT_C(0x0000000000038990, 0x3ebc268a7cf46218) + }, + { /* i=2991; 125 / 47 */ + RTUINT128_INIT_C(0x0901644fcb435a67, 0x8119909cab91c06e), RTUINT128_INIT_C(0x0000000000000000, 0x00007296a694a237), + RTUINT128_INIT_C(0x000000000000141e, 0x6ee82f10e2e440ae), RTUINT128_INIT_C(0x0000000000000000, 0x0000348d4301bf0c) + }, + { /* i=2992; 25 / 7 */ + RTUINT128_INIT_C(0x0000000000000000, 0x000000000186176e), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000069), + RTUINT128_INIT_C(0x0000000000000000, 0x000000000003b714), RTUINT128_INIT_C(0x0000000000000000, 0x000000000000003a) + }, + { /* i=2993; 40 / 60 */ + RTUINT128_INIT_C(0x0000000000000000, 0x00000058e0642bf6), RTUINT128_INIT_C(0x0000000000000000, 0x0b600e1ee6b6062e), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x0000000000000000, 0x00000058e0642bf6) + }, + { /* i=2994; 115 / 120 */ + RTUINT128_INIT_C(0x00064b7595bf4fad, 0xadd663210503c9b6), RTUINT128_INIT_C(0x00d6c2c04f375bd0, 0x4c6a9eefba38f950), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x00064b7595bf4fad, 0xadd663210503c9b6) + }, + { /* i=2995; 124 / 108 */ + RTUINT128_INIT_C(0x08c68eac78a54709, 0xca9f7468e3a28a33), RTUINT128_INIT_C(0x0000049db317d6e8, 0x16a4df3474e16473), + RTUINT128_INIT_C(0x0000000000000000, 0x000000000001e6b0), RTUINT128_INIT_C(0x000000421644ec7d, 0x39886a74a3fb2923) + }, + { /* i=2996; 121 / 17 */ + RTUINT128_INIT_C(0x01685f7bdfa43bae, 0xb79c302c09a05525), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000013bbc), + RTUINT128_INIT_C(0x00000124317f3501, 0xdfbdb09ad070ef7e), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000006a9d) + }, + { /* i=2997; 87 / 74 */ + RTUINT128_INIT_C(0x00000000002e4904, 0x8d7dbcdc65bf961e), RTUINT128_INIT_C(0x0000000000000238, 0xbf0723b2e169267a), + RTUINT128_INIT_C(0x0000000000000000, 0x00000000000014d5), RTUINT128_INIT_C(0x00000000000000e1, 0x0dc30f6aa2410a9c) + }, + { /* i=2998; 82 / 36 */ + RTUINT128_INIT_C(0x00000000000050b8, 0x3719572115937db8), RTUINT128_INIT_C(0x0000000000000000, 0x000000022cf6be75), + RTUINT128_INIT_C(0x0000000000000000, 0x00002519fe659604), RTUINT128_INIT_C(0x0000000000000000, 0x0000000193f6f5e4) + }, + { /* i=2999; 114 / 103 */ + RTUINT128_INIT_C(0x0002bd9b5c53a14f, 0xec55e963d2970203), RTUINT128_INIT_C(0x0000005ec280cf1c, 0x501bdfd108d46d34), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000767), RTUINT128_INIT_C(0x0000002994d686ba, 0xee00250b7622a617) + }, + { /* i=3000; 77 / 22 */ + RTUINT128_INIT_C(0x0000000000000f93, 0x8eb9fff951376bbf), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000213118), + RTUINT128_INIT_C(0x0000000000000000, 0x0078230d9bfec167), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000099317) + }, + { /* i=3001; 66 / 59 */ + RTUINT128_INIT_C(0x0000000000000001, 0x1fd3a17b07966e9e), RTUINT128_INIT_C(0x0000000000000000, 0x0463525a045a31e6), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000041), RTUINT128_INIT_C(0x0000000000000000, 0x029bb89fecafc338) + }, + { /* i=3002; 124 / 84 */ + RTUINT128_INIT_C(0x077f316257c8bfd4, 0xaef40aa7c169b89d), RTUINT128_INIT_C(0x000000000003aeda, 0x0a92c63242cc2e2d), + RTUINT128_INIT_C(0x0000000000000000, 0x0000020917cb6e06), RTUINT128_INIT_C(0x00000000000207b1, 0xbef48322cc1a4d8f) + }, + { /* i=3003; 66 / 7 */ + RTUINT128_INIT_C(0x0000000000000000, 0x1182e48988f0d0b5), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000024), + RTUINT128_INIT_C(0x0000000000000000, 0x007c8659275c05cc), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000005) + }, + { /* i=3004; 117 / 18 */ + RTUINT128_INIT_C(0x0016e79a0b0faf85, 0xe3b00f473cba8f80), RTUINT128_INIT_C(0x0000000000000000, 0x000000000000ba61), + RTUINT128_INIT_C(0x0000001f75ed3a0b, 0xf65a365f98d9e773), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000004eed) + }, + { /* i=3005; 119 / 97 */ + RTUINT128_INIT_C(0x002c68bad4ccd74b, 0x186c3411ac5a5db1), RTUINT128_INIT_C(0x0000000161a37878, 0x486577096edadd89), + RTUINT128_INIT_C(0x0000000000000000, 0x00000000002025db), RTUINT128_INIT_C(0x000000009e82593f, 0x9e3d269e83fa0c7e) + }, + { /* i=3006; 105 / 97 */ + RTUINT128_INIT_C(0x0000012fcb37315b, 0x914548fd8db94f08), RTUINT128_INIT_C(0x00000001fc9cde46, 0xe65e20a30ca73804), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000098), RTUINT128_INIT_C(0x00000001ce133742, 0xc961e82e0a700ca8) + }, + { /* i=3007; 93 / 28 */ + RTUINT128_INIT_C(0x0000000015a170c7, 0xff505b94bed8e209), RTUINT128_INIT_C(0x0000000000000000, 0x000000000afe3e10), + RTUINT128_INIT_C(0x0000000000000001, 0xf7b7d3c948445dda), RTUINT128_INIT_C(0x0000000000000000, 0x00000000098c3869) + }, + { /* i=3008; 106 / 111 */ + RTUINT128_INIT_C(0x000001c94e498e51, 0x6c46c46d6a75155d), RTUINT128_INIT_C(0x00002ee518e9a5c1, 0x716855feb5b7e369), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x000001c94e498e51, 0x6c46c46d6a75155d) + }, + { /* i=3009; 117 / 57 */ + RTUINT128_INIT_C(0x00155cecdfb1702d, 0x79e7866ea56be464), RTUINT128_INIT_C(0x0000000000000000, 0x01ba41f51a6f0ac6), + RTUINT128_INIT_C(0x0000000000000000, 0x0c5dad521a8ccfb2), RTUINT128_INIT_C(0x0000000000000000, 0x008f7c647a384cb8) + }, + { /* i=3010; 46 / 41 */ + RTUINT128_INIT_C(0x0000000000000000, 0x00000f2949e784ac), RTUINT128_INIT_C(0x0000000000000000, 0x000000693289326f), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000024), RTUINT128_INIT_C(0x0000000000000000, 0x0000005e2e9c6d10) + }, + { /* i=3011; 124 / 108 */ + RTUINT128_INIT_C(0x0fd88908e113654b, 0x8ca5c7ddd601d56d), RTUINT128_INIT_C(0x00000497cd6db1bc, 0x4450d3ac9179d5c3), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000037334), RTUINT128_INIT_C(0x000000a1cabeeb6a, 0xe21e8f090cf2d0d1) + }, + { /* i=3012; 71 / 37 */ + RTUINT128_INIT_C(0x0000000000000059, 0x26ae568ebace7bce), RTUINT128_INIT_C(0x0000000000000000, 0x0000000ae2758938), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000830c904d9), RTUINT128_INIT_C(0x0000000000000000, 0x00000007b2104b56) + }, + { /* i=3013; 83 / 6 */ + RTUINT128_INIT_C(0x0000000000077187, 0x37fa73710d78e13c), RTUINT128_INIT_C(0x0000000000000000, 0x000000000000000f), + RTUINT128_INIT_C(0x0000000000007f09, 0x03bb5d07896e756a), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000006) + }, + { /* i=3014; 113 / 122 */ + RTUINT128_INIT_C(0x0000b6ab1ae3aa77, 0xf01d2dfc30081b64), RTUINT128_INIT_C(0x03767d1fe7f3e2cd, 0x56d9d6025eb256f9), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x0000b6ab1ae3aa77, 0xf01d2dfc30081b64) + }, + { /* i=3015; 99 / 21 */ + RTUINT128_INIT_C(0x000000019b171042, 0xacb6ecb7fd0131d7), RTUINT128_INIT_C(0x0000000000000000, 0x000000000010002a), + RTUINT128_INIT_C(0x00000000000019b1, 0x2d9313295c7eed02), RTUINT128_INIT_C(0x0000000000000000, 0x00000000000e4f83) + }, + { /* i=3016; 113 / 28 */ + RTUINT128_INIT_C(0x00016b6add2cd0e2, 0xf62ab50d3093a102), RTUINT128_INIT_C(0x0000000000000000, 0x00000000016bdca7), + RTUINT128_INIT_C(0x0000000000ffaff1, 0x50dcb8709c4a3f11), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000d6e0eb) + }, + { /* i=3017; 114 / 39 */ + RTUINT128_INIT_C(0x000038dd0e7336b4, 0x164ecf85a9223b3c), RTUINT128_INIT_C(0x0000000000000000, 0x000000304788bce6), + RTUINT128_INIT_C(0x000000000000012d, 0x844920e8fcf80526), RTUINT128_INIT_C(0x0000000000000000, 0x0000001bf855b318) + }, + { /* i=3018; 119 / 34 */ + RTUINT128_INIT_C(0x00174b0f48e21300, 0xa1b8246fc3fce998), RTUINT128_INIT_C(0x0000000000000000, 0x0000000086bfdb98), + RTUINT128_INIT_C(0x00000000002c40c0, 0xfab66aaffdc67f84), RTUINT128_INIT_C(0x0000000000000000, 0x000000000b8f4738) + }, + { /* i=3019; 111 / 17 */ + RTUINT128_INIT_C(0x00003a3f4a9a71f9, 0x70fa9479f8d9e671), RTUINT128_INIT_C(0x0000000000000000, 0x00000000000106e9), + RTUINT128_INIT_C(0x0000000038b75f77, 0xbf7f2b38e83d2a31), RTUINT128_INIT_C(0x0000000000000000, 0x00000000000059d8) + }, + { /* i=3020; 128 / 63 */ + RTUINT128_INIT_C(0x2ea992f274608694, 0x0b5ba62006dc3212), RTUINT128_INIT_C(0x0000000000000000, 0x6aca1c705b705a47), + RTUINT128_INIT_C(0x0000000000000000, 0x6fdc66e7fa6f4be4), RTUINT128_INIT_C(0x0000000000000000, 0x06a44953318ffdd6) + }, + { /* i=3021; 48 / 3 */ + RTUINT128_INIT_C(0x0000000000000000, 0x000059ad931d9567), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000003), + RTUINT128_INIT_C(0x0000000000000000, 0x00001de4865f31cd), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000) + }, + { /* i=3022; 110 / 16 */ + RTUINT128_INIT_C(0x0000154bf5925f18, 0x664083fa3a071c91), RTUINT128_INIT_C(0x0000000000000000, 0x000000000000a1b7), + RTUINT128_INIT_C(0x0000000021b6a236, 0xb869dac3c9f7d01b), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000005e44) + }, + { /* i=3023; 54 / 37 */ + RTUINT128_INIT_C(0x0000000000000000, 0x00201ddc207efa84), RTUINT128_INIT_C(0x0000000000000000, 0x00000001780b5573), + RTUINT128_INIT_C(0x0000000000000000, 0x000000000015dd33), RTUINT128_INIT_C(0x0000000000000000, 0x000000016b09ad9b) + }, + { /* i=3024; 54 / 58 */ + RTUINT128_INIT_C(0x0000000000000000, 0x001ca79d6b1b6fa7), RTUINT128_INIT_C(0x0000000000000000, 0x002d1f42ef660d6f), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x0000000000000000, 0x001ca79d6b1b6fa7) + }, + { /* i=3025; 70 / 13 */ + RTUINT128_INIT_C(0x0000000000000001, 0xe5480b2f697bde70), RTUINT128_INIT_C(0x0000000000000000, 0x00000000000005a3), + RTUINT128_INIT_C(0x0000000000000000, 0x005617c7cb6203e1), RTUINT128_INIT_C(0x0000000000000000, 0x000000000000012d) + }, + { /* i=3026; 117 / 53 */ + RTUINT128_INIT_C(0x001aaeb2a02038d9, 0xc05e94aef829cd08), RTUINT128_INIT_C(0x0000000000000000, 0x001cf0cefb8bff05), + RTUINT128_INIT_C(0x0000000000000000, 0xec063692b34f85e3), RTUINT128_INIT_C(0x0000000000000000, 0x00168217fdfe1299) + }, + { /* i=3027; 127 / 117 */ + RTUINT128_INIT_C(0x42e74435598bdd9e, 0xe1c218a9b7964397), RTUINT128_INIT_C(0x000fda363ffa4288, 0x0bb05c23248cfffb), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000438), RTUINT128_INIT_C(0x0006af5771c32fad, 0x91bd646784be58af) + }, + { /* i=3028; 125 / 63 */ + RTUINT128_INIT_C(0x11cc0d666a478c25, 0xe59ffd3032485b58), RTUINT128_INIT_C(0x0000000000000000, 0x52ed933001e90fbb), + RTUINT128_INIT_C(0x0000000000000000, 0x36f099325b119c92), RTUINT128_INIT_C(0x0000000000000000, 0x2256fc0d915c6eb2) + }, + { /* i=3029; 94 / 77 */ + RTUINT128_INIT_C(0x00000000303e624d, 0x35648110068d4f12), RTUINT128_INIT_C(0x0000000000000ab9, 0x42e8801e9523cfd8), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000047fb1), RTUINT128_INIT_C(0x0000000000000462, 0x9a9a6b5ee54e72ba) + }, + { /* i=3030; 121 / 75 */ + RTUINT128_INIT_C(0x01ce3d0fcb2f6285, 0x937c8ccda7eb0ef3), RTUINT128_INIT_C(0x000000000000023c, 0x90b1310ec54ff9af), + RTUINT128_INIT_C(0x0000000000000000, 0x0000ceabf8d808f0), RTUINT128_INIT_C(0x000000000000008c, 0x88e38988f97b82e3) + }, + { /* i=3031; 124 / 122 */ + RTUINT128_INIT_C(0x0127739517150a37, 0x5080c9fc18d072bc), RTUINT128_INIT_C(0x0178c15b5274fe91, 0xa8f1732f40bc6ab1), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x0127739517150a37, 0x5080c9fc18d072bc) + }, + { /* i=3032; 128 / 65 */ + RTUINT128_INIT_C(0x90236e2d62d24a2a, 0x1401c7e2e24a1ac5), RTUINT128_INIT_C(0x0000000000000001, 0xe2862aafdfc703c9), + RTUINT128_INIT_C(0x0000000000000000, 0x4c78c061e7e5d05e), RTUINT128_INIT_C(0x0000000000000000, 0x825844e3425666f7) + }, + { /* i=3033; 117 / 116 */ + RTUINT128_INIT_C(0x000b108a8a17f93b, 0xe60efaf433d1372f), RTUINT128_INIT_C(0x000a02561da03199, 0x1fa4d82c7a931f8c), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000001), RTUINT128_INIT_C(0x00010e346c77c7a2, 0xc66a22c7b93e17a3) + }, + { /* i=3034; 98 / 43 */ + RTUINT128_INIT_C(0x0000000249eec4ff, 0x6495990b8e78a68c), RTUINT128_INIT_C(0x0000000000000000, 0x00000279f30b7a7d), + RTUINT128_INIT_C(0x0000000000000000, 0x00ec9c2950956139), RTUINT128_INIT_C(0x0000000000000000, 0x000000d2bcc003b7) + }, + { /* i=3035; 120 / 24 */ + RTUINT128_INIT_C(0x004c17bec493eda1, 0xb1fe184a1ed9b6e5), RTUINT128_INIT_C(0x0000000000000000, 0x000000000081cc85), + RTUINT128_INIT_C(0x0000000096138b5c, 0x0656dca4cab4df9a), RTUINT128_INIT_C(0x0000000000000000, 0x000000000018d3e3) + }, + { /* i=3036; 80 / 23 */ + RTUINT128_INIT_C(0x00000000000082cd, 0x7d28ff67bdbf1549), RTUINT128_INIT_C(0x0000000000000000, 0x00000000006aae36), + RTUINT128_INIT_C(0x0000000000000000, 0x0139e2be64db08ad), RTUINT128_INIT_C(0x0000000000000000, 0x000000000003aacb) + }, + { /* i=3037; 117 / 121 */ + RTUINT128_INIT_C(0x001712db0cc82fea, 0xe8f5a6a6b9f55488), RTUINT128_INIT_C(0x0003e6e238822bc5, 0xeb8ef75ed55a17b5), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000005), RTUINT128_INIT_C(0x0003906ff23d550d, 0x4f2ad1cc8f32ddff) + }, + { /* i=3038; 105 / 87 */ + RTUINT128_INIT_C(0x000001dc14627c3d, 0x2c316ff298adc65d), RTUINT128_INIT_C(0x00000000003dac68, 0x7e71d61dbc85e809), + RTUINT128_INIT_C(0x0000000000000000, 0x000000000007b827), RTUINT128_INIT_C(0x000000000036a853, 0x3c244a414941f4fe) + }, + { /* i=3039; 114 / 125 */ + RTUINT128_INIT_C(0x00022c76f72437b7, 0x15876a4665ffcbc8), RTUINT128_INIT_C(0x0a106db46ae55446, 0x957aaa25c21b119d), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x00022c76f72437b7, 0x15876a4665ffcbc8) + }, + { /* i=3040; 89 / 80 */ + RTUINT128_INIT_C(0x00000000007b634b, 0x62d6bbade70fcf2a), RTUINT128_INIT_C(0x000000000000ab47, 0x8558d2c8fcfd5ea6), + RTUINT128_INIT_C(0x0000000000000000, 0x00000000000000b8), RTUINT128_INIT_C(0x00000000000047e3, 0x8aff3b3810f3c7da) + }, + { /* i=3041; 124 / 92 */ + RTUINT128_INIT_C(0x0b5b5ddda86ee529, 0x10036f12bb85170b), RTUINT128_INIT_C(0x0000000000ab404f, 0x1eaf162f55add5f6), + RTUINT128_INIT_C(0x0000000000000000, 0x00000010fa2a08db), RTUINT128_INIT_C(0x000000000009012b, 0x1f3cc90faac35d99) + }, + { /* i=3042; 43 / 10 */ + RTUINT128_INIT_C(0x0000000000000000, 0x0000029770349739), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000071), + RTUINT128_INIT_C(0x0000000000000000, 0x00000005df02bb1b), RTUINT128_INIT_C(0x0000000000000000, 0x000000000000004e) + }, + { /* i=3043; 86 / 15 */ + RTUINT128_INIT_C(0x0000000000280baa, 0xd015484b230e19fc), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000003e6b), + RTUINT128_INIT_C(0x00000000000000a4, 0x3e03afa8b8de6bba), RTUINT128_INIT_C(0x0000000000000000, 0x000000000000073e) + }, + { /* i=3044; 49 / 26 */ + RTUINT128_INIT_C(0x0000000000000000, 0x0001ca043647a210), RTUINT128_INIT_C(0x0000000000000000, 0x0000000003ee9f3d), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000747b1a), RTUINT128_INIT_C(0x0000000000000000, 0x0000000001e526de) + }, + { /* i=3045; 39 / 77 */ + RTUINT128_INIT_C(0x0000000000000000, 0x0000003c702ddf50), RTUINT128_INIT_C(0x0000000000000530, 0xf9880a425adbcf5f), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x0000000000000000, 0x0000003c702ddf50) + }, + { /* i=3046; 108 / 22 */ + RTUINT128_INIT_C(0x00000d3089ce1abf, 0x06be94409f368bb6), RTUINT128_INIT_C(0x0000000000000000, 0x00000000000c5279), + RTUINT128_INIT_C(0x000000000112058a, 0xea6aabf009130521), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000088d1d) + }, + { /* i=3047; 120 / 49 */ + RTUINT128_INIT_C(0x00eb6c9536668508, 0xb482997c17330eec), RTUINT128_INIT_C(0x0000000000000000, 0x00003baab46677d0), + RTUINT128_INIT_C(0x00000000000003f2, 0x15e1239cb37c9663), RTUINT128_INIT_C(0x0000000000000000, 0x0000069bd09ed97c) + }, + { /* i=3048; 128 / 41 */ + RTUINT128_INIT_C(0x93e412fe9a9c12a2, 0xa86baf322ee158b1), RTUINT128_INIT_C(0x0000000000000000, 0x0000000009cbd66d), + RTUINT128_INIT_C(0x0000000f18c1641c, 0xdaf73fe5a093ad38), RTUINT128_INIT_C(0x0000000000000000, 0x0000000009cbc7d9) + }, + { /* i=3049; 119 / 85 */ + RTUINT128_INIT_C(0x00285953ab2a4422, 0x4228de818ce5959d), RTUINT128_INIT_C(0x0000000000116b05, 0x4c2b882c09fef0ff), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000251063928), RTUINT128_INIT_C(0x00000000000cbde5, 0x75da012de46d26c5) + }, + { /* i=3050; 128 / 98 */ + RTUINT128_INIT_C(0x45241150fc77924e, 0xf47368de67c3c913), RTUINT128_INIT_C(0x00000003fdc05d8d, 0x99e9f6ffe20ec37c), + RTUINT128_INIT_C(0x0000000000000000, 0x000000001152c14b), RTUINT128_INIT_C(0x0000000340009271, 0x5db7bec4325807bf) + }, + { /* i=3051; 118 / 108 */ + RTUINT128_INIT_C(0x002acb7cfd763dc7, 0xe39478c4f6455f1e), RTUINT128_INIT_C(0x0000028f8125cd1c, 0xf4c119adadcfb0c1), + RTUINT128_INIT_C(0x0000000000000000, 0x00000000000010b6), RTUINT128_INIT_C(0x00000164cfc49be5, 0xd0b15c6e6991a5e8) + }, + { /* i=3052; 120 / 82 */ + RTUINT128_INIT_C(0x00ddb8a526a44bc0, 0x9723996569add47a), RTUINT128_INIT_C(0x000000000003b440, 0x6cbeee9dc3e065d9), + RTUINT128_INIT_C(0x0000000000000000, 0x0000003bdbb3860e), RTUINT128_INIT_C(0x0000000000025950, 0xc0339232645dac9c) + }, + { /* i=3053; 95 / 6 */ + RTUINT128_INIT_C(0x000000003ec1d8a4, 0x298de670e6a92192), RTUINT128_INIT_C(0x0000000000000000, 0x000000000000001f), + RTUINT128_INIT_C(0x00000000020640cb, 0x7d36203530bb221d), RTUINT128_INIT_C(0x0000000000000000, 0x000000000000000f) + }, + { /* i=3054; 63 / 16 */ + RTUINT128_INIT_C(0x0000000000000000, 0x6155781bf5d2f456), RTUINT128_INIT_C(0x0000000000000000, 0x000000000000fe69), + RTUINT128_INIT_C(0x0000000000000000, 0x000061f12e8cf7f1), RTUINT128_INIT_C(0x0000000000000000, 0x000000000000247d) + }, + { /* i=3055; 123 / 23 */ + RTUINT128_INIT_C(0x04df4c2d961be5f7, 0x0389d9f65d5ea7bc), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000430ab7), + RTUINT128_INIT_C(0x000000129ad180e2, 0xa025174165e9f5f6), RTUINT128_INIT_C(0x0000000000000000, 0x00000000002238e2) + }, + { /* i=3056; 97 / 77 */ + RTUINT128_INIT_C(0x000000007bc0119b, 0xd4f03a33fb92d5d1), RTUINT128_INIT_C(0x0000000000000182, 0x7e4831ed2a5e3a5c), + RTUINT128_INIT_C(0x0000000000000000, 0x000000000051f7cc), RTUINT128_INIT_C(0x00000000000000ef, 0xbf323584d7119081) + }, + { /* i=3057; 12 / 69 */ + RTUINT128_INIT_C(0x0000000000000000, 0x00000000000005a2), RTUINT128_INIT_C(0x0000000000000016, 0xbfcf87a89d0db8f4), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x0000000000000000, 0x00000000000005a2) + }, + { /* i=3058; 117 / 103 */ + RTUINT128_INIT_C(0x00133d35846e9d9a, 0xa3173b78311339fd), RTUINT128_INIT_C(0x0000005e240ec827, 0x8d23f9faef0e0dbb), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000003451), RTUINT128_INIT_C(0x000000191b19406b, 0xabee2a83b2d6e5d2) + }, + { /* i=3059; 20 / 10 */ + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000037651), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000006), + RTUINT128_INIT_C(0x0000000000000000, 0x00000000000093b8), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000001) + }, + { /* i=3060; 117 / 87 */ + RTUINT128_INIT_C(0x00175e5febca0715, 0x732e50abf8ef2881), RTUINT128_INIT_C(0x00000000000aa2d9, 0xc754a586fcea0a6a), + RTUINT128_INIT_C(0x0000000000000000, 0x00000002327521b8), RTUINT128_INIT_C(0x000000000006faca, 0x47158f388eee0251) + }, + { /* i=3061; 63 / 48 */ + RTUINT128_INIT_C(0x0000000000000000, 0x66f8500746a0e43b), RTUINT128_INIT_C(0x0000000000000000, 0x000090264d5ae327), + RTUINT128_INIT_C(0x0000000000000000, 0x000000000000b6de), RTUINT128_INIT_C(0x0000000000000000, 0x000013d194522e69) + }, + { /* i=3062; 118 / 80 */ + RTUINT128_INIT_C(0x0023ae1a627950f0, 0x3dd0b189fb924948), RTUINT128_INIT_C(0x00000000000095c8, 0x26fa6fca8223504a), + RTUINT128_INIT_C(0x0000000000000000, 0x0000003cfb92ff5d), RTUINT128_INIT_C(0x0000000000008e80, 0xd01db4232f906866) + }, + { /* i=3063; 108 / 5 */ + RTUINT128_INIT_C(0x00000823142f615b, 0x2c1faa2cdbeb84a0), RTUINT128_INIT_C(0x0000000000000000, 0x000000000000001d), + RTUINT128_INIT_C(0x00000047d48ee00b, 0xf8b1a4c3c0f67754), RTUINT128_INIT_C(0x0000000000000000, 0x000000000000001c) + }, + { /* i=3064; 124 / 24 */ + RTUINT128_INIT_C(0x0c8493077324c89c, 0xf407768cb3c23da9), RTUINT128_INIT_C(0x0000000000000000, 0x00000000007451a9), + RTUINT128_INIT_C(0x0000001b8cc51438, 0x973c7955714749a1), RTUINT128_INIT_C(0x0000000000000000, 0x000000000072b160) + }, + { /* i=3065; 100 / 63 */ + RTUINT128_INIT_C(0x0000000bb3fe26a3, 0xeb5ea8c1517ab480), RTUINT128_INIT_C(0x0000000000000000, 0x20675bba5e69cb17), + RTUINT128_INIT_C(0x0000000000000000, 0x0000005c754e9813), RTUINT128_INIT_C(0x0000000000000000, 0x1748178c1b08f9cb) + }, + { /* i=3066; 89 / 80 */ + RTUINT128_INIT_C(0x0000000000666761, 0xb1527805d204b457), RTUINT128_INIT_C(0x0000000000001643, 0x2cec1815a88c5a37), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000499), RTUINT128_INIT_C(0x0000000000000c88, 0x27d7bc71e4b9ed78) + }, + { /* i=3067; 39 / 25 */ + RTUINT128_INIT_C(0x0000000000000000, 0x00000044c16d3153), RTUINT128_INIT_C(0x0000000000000000, 0x000000000017d0d2), + RTUINT128_INIT_C(0x0000000000000000, 0x000000000002e311), RTUINT128_INIT_C(0x0000000000000000, 0x00000000000a1d61) + }, + { /* i=3068; 46 / 19 */ + RTUINT128_INIT_C(0x0000000000000000, 0x00001c53cae8e5e7), RTUINT128_INIT_C(0x0000000000000000, 0x000000000005e938), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000004cad3ee), RTUINT128_INIT_C(0x0000000000000000, 0x000000000000ebd7) + }, + { /* i=3069; 117 / 111 */ + RTUINT128_INIT_C(0x001612b3b80f7890, 0x174eb9ac57ab8f84), RTUINT128_INIT_C(0x000056c2195f9764, 0x8638ec6548622cd2), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000041), RTUINT128_INIT_C(0x00000b6b46ca080a, 0x02dab3f4f6be2e32) + }, + { /* i=3070; 68 / 48 */ + RTUINT128_INIT_C(0x000000000000000c, 0x9c6eee37845ca4a7), RTUINT128_INIT_C(0x0000000000000000, 0x0000edf62a00746f), + RTUINT128_INIT_C(0x0000000000000000, 0x00000000000d9129), RTUINT128_INIT_C(0x0000000000000000, 0x000041fa9eb41fe0) + }, + { /* i=3071; 119 / 112 */ + RTUINT128_INIT_C(0x002b741ec9f0b95a, 0x2d3a46a2c8cf27c8), RTUINT128_INIT_C(0x000011e9ba7fe5b2, 0x88a18d1bc6733aba), + RTUINT128_INIT_C(0x0000000000000000, 0x000000000000026d), RTUINT128_INIT_C(0x0000002561b08744, 0xbd56fa426349b296) + }, + { /* i=3072; 58 / 100 */ + RTUINT128_INIT_C(0x0000000000000000, 0x0040dc27170a1312), RTUINT128_INIT_C(0x00000004e8708cd6, 0x05c09cdcdfc14174), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x0000000000000000, 0x0040dc27170a1312) + }, + { /* i=3073; 71 / 21 */ + RTUINT128_INIT_C(0x0000000000000001, 0x364656bd60edf0f3), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000077e95), + RTUINT128_INIT_C(0x0000000000000000, 0x000029668a04ad8a), RTUINT128_INIT_C(0x0000000000000000, 0x00000000000503a1) + }, + { /* i=3074; 127 / 122 */ + RTUINT128_INIT_C(0x3346f421a4cb2e93, 0x74a8dcb8cd3c75fc), RTUINT128_INIT_C(0x005ca527af632d81, 0xc1ae69871cd1ad85), + RTUINT128_INIT_C(0x0000000000000000, 0x000000000000008d), RTUINT128_INIT_C(0x003ffd460b2b1e1b, 0xc798bd4dedbfe3bb) + }, + { /* i=3075; 116 / 103 */ + RTUINT128_INIT_C(0x00050e9a0442bee5, 0x49234e8538df9a30), RTUINT128_INIT_C(0x0000002364e14fe4, 0x9e8da916d6b0085e), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000002493), RTUINT128_INIT_C(0x0000001767a5b852, 0x52040037309d9436) + }, + { /* i=3076; 128 / 118 */ + RTUINT128_INIT_C(0xae0470da20a1bd9a, 0xe3132474f276b75f), RTUINT128_INIT_C(0x000f2c8e0b79f35c, 0x4c36905fcfb95e99), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000b77), RTUINT128_INIT_C(0x000ca0548d7ca66d, 0x1d81e9fe6c3b2b40) + }, + { /* i=3077; 122 / 17 */ + RTUINT128_INIT_C(0x00c4e4060d9238f5, 0xe2747562e21ca850), RTUINT128_INIT_C(0x0000000000000000, 0x000000000001ec0e), + RTUINT128_INIT_C(0x000000666f91aa76, 0x0fdf3a67aeae7b17), RTUINT128_INIT_C(0x0000000000000000, 0x000000000001b90e) + }, + { /* i=3078; 119 / 83 */ + RTUINT128_INIT_C(0x0030f11ed27b6a36, 0xdc1d13ec0ca84515), RTUINT128_INIT_C(0x0000000000042cfb, 0x52d433036cf8d2fe), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000bb87a0b82), RTUINT128_INIT_C(0x0000000000019717, 0x39842f5ae8303619) + }, + { /* i=3079; 127 / 22 */ + RTUINT128_INIT_C(0x2b24dbf5c5f453eb, 0x06b76ac83b3f6919), RTUINT128_INIT_C(0x0000000000000000, 0x000000000014c54e), + RTUINT128_INIT_C(0x00000213c058a5c4, 0xddc398d3688bbdf9), RTUINT128_INIT_C(0x0000000000000000, 0x000000000006ea3b) + }, + { /* i=3080; 114 / 93 */ + RTUINT128_INIT_C(0x0001f47f08586f51, 0x2e4635654991707a), RTUINT128_INIT_C(0x0000000018ab47ee, 0x7b4b200de7b5e954), + RTUINT128_INIT_C(0x0000000000000000, 0x00000000001449d5), RTUINT128_INIT_C(0x000000000bb0f2dd, 0xab8a788a651d5996) + }, + { /* i=3081; 123 / 97 */ + RTUINT128_INIT_C(0x002b1858f2c0023d, 0x9bf52af38ff10ca0), RTUINT128_INIT_C(0x000000001ca65e25, 0xe7ea6360bc72dd10), + RTUINT128_INIT_C(0x0000000000000000, 0x000000000181132c), RTUINT128_INIT_C(0x0000000016293c03, 0xe5d07f9830badde0) + }, + { /* i=3082; 49 / 18 */ + RTUINT128_INIT_C(0x0000000000000000, 0x00001054d4b13420), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000023d93), + RTUINT128_INIT_C(0x0000000000000000, 0x00000000074a016d), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000016989) + }, + { /* i=3083; 119 / 26 */ + RTUINT128_INIT_C(0x003f448548738328, 0xecb5c9c137b30245), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000fe610b), + RTUINT128_INIT_C(0x000000003fabb9ee, 0x7c21234f87317fa6), RTUINT128_INIT_C(0x0000000000000000, 0x000000000080a023) + }, + { /* i=3084; 122 / 115 */ + RTUINT128_INIT_C(0x0372ae8138c3c793, 0x479c790238b2e1a0), RTUINT128_INIT_C(0x00036ad0d7ceeb11, 0x6f29db73b8608c39), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000102), RTUINT128_INIT_C(0x00010807ba3ae001, 0x3f6d4e626765902e) + }, + { /* i=3085; 115 / 91 */ + RTUINT128_INIT_C(0x0006a2bd778ea9e5, 0xd5f84a7e5be2bde4), RTUINT128_INIT_C(0x0000000003127edc, 0x2dbab8a6e8c725fe), + RTUINT128_INIT_C(0x0000000000000000, 0x000000000228ee3c), RTUINT128_INIT_C(0x000000000285a129, 0x5ea3e98cbc33b25c) + }, + { /* i=3086; 81 / 25 */ + RTUINT128_INIT_C(0x000000000001d51a, 0x9be73356716c2444), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000645b1f), + RTUINT128_INIT_C(0x0000000000000000, 0x04aca58fbb08d399), RTUINT128_INIT_C(0x0000000000000000, 0x00000000005f21bd) + }, + { /* i=3087; 69 / 32 */ + RTUINT128_INIT_C(0x000000000000000b, 0x02724b02bb5752ad), RTUINT128_INIT_C(0x0000000000000000, 0x00000000ab3a881f), + RTUINT128_INIT_C(0x0000000000000000, 0x0000001075cb61d9), RTUINT128_INIT_C(0x0000000000000000, 0x000000004d913166) + }, + { /* i=3088; 6 / 28 */ + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000018), RTUINT128_INIT_C(0x0000000000000000, 0x000000000589f3bd), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000018) + }, + { /* i=3089; 95 / 40 */ + RTUINT128_INIT_C(0x000000001ec0488e, 0x7dfd839c3eb2fe87), RTUINT128_INIT_C(0x0000000000000000, 0x000000b3604a3d2b), + RTUINT128_INIT_C(0x0000000000000000, 0x002be3138f1007a5), RTUINT128_INIT_C(0x0000000000000000, 0x0000005d4f7d64d0) + }, + { /* i=3090; 119 / 39 */ + RTUINT128_INIT_C(0x006ed64a515ad4e3, 0x01958be4eb5f12b1), RTUINT128_INIT_C(0x0000000000000000, 0x0000006560da19db), + RTUINT128_INIT_C(0x00000000000117e2, 0x9a56cb8321010f8f), RTUINT128_INIT_C(0x0000000000000000, 0x00000056b52bcc5c) + }, + { /* i=3091; 122 / 114 */ + RTUINT128_INIT_C(0x01bcaaa5293ee016, 0x9562243f228eb927), RTUINT128_INIT_C(0x000356a2af6b6221, 0xea399079d97a216b), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000085), RTUINT128_INIT_C(0x0000a8200674e477, 0xe57a14f1261b5c90) + }, + { /* i=3092; 42 / 25 */ + RTUINT128_INIT_C(0x0000000000000000, 0x0000034bd760bcde), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000de1521), + RTUINT128_INIT_C(0x0000000000000000, 0x000000000003ccb7), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000665647) + }, + { /* i=3093; 100 / 82 */ + RTUINT128_INIT_C(0x00000007c9bc4090, 0x59c0d8abe5831b8c), RTUINT128_INIT_C(0x000000000001fa1b, 0x822ff533e605ae90), + RTUINT128_INIT_C(0x0000000000000000, 0x000000000003f079), RTUINT128_INIT_C(0x000000000000b8f2, 0xfb99996dcd7c997c) + }, + { /* i=3094; 125 / 82 */ + RTUINT128_INIT_C(0x1bb9fd5209a2cc97, 0x6493d861ba77da53), RTUINT128_INIT_C(0x000000000003e050, 0x40b336b6cba581c8), + RTUINT128_INIT_C(0x0000000000000000, 0x00000727291a6cb1), RTUINT128_INIT_C(0x0000000000033e6d, 0xaba47804e3f8bf0b) + }, + { /* i=3095; 113 / 122 */ + RTUINT128_INIT_C(0x0000f5821c132061, 0xd696db18ebdda5e4), RTUINT128_INIT_C(0x00bb43bf7c757fde, 0x12f4998af848271e), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x0000f5821c132061, 0xd696db18ebdda5e4) + }, + { /* i=3096; 117 / 91 */ + RTUINT128_INIT_C(0x000610eb6d43299b, 0x1e8a07d33485cb11), RTUINT128_INIT_C(0x000000000164c626, 0xd77f3237b3dde677), + RTUINT128_INIT_C(0x0000000000000000, 0x00000000045a4895), RTUINT128_INIT_C(0x0000000000db28e3, 0x64fd6f3439b72fce) + }, + { /* i=3097; 128 / 94 */ + RTUINT128_INIT_C(0xfa9207ac0d0ca97a, 0xf277e099133e8d03), RTUINT128_INIT_C(0x00000000379818ca, 0x1da123ef667bd175), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000481d3d242), RTUINT128_INIT_C(0x0000000035774a67, 0x448d18617d1192d9) + }, + { /* i=3098; 58 / 40 */ + RTUINT128_INIT_C(0x0000000000000000, 0x033c89ac06008aeb), RTUINT128_INIT_C(0x0000000000000000, 0x000000436c534fea), + RTUINT128_INIT_C(0x0000000000000000, 0x00000000000c49e3), RTUINT128_INIT_C(0x0000000000000000, 0x00000017775ef46d) + }, + { /* i=3099; 113 / 19 */ + RTUINT128_INIT_C(0x000086a44058919c, 0xb501c1d4931de20c), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000010fed), + RTUINT128_INIT_C(0x000000007ec18fba, 0x93418a3b4f470512), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000002262) + }, + { /* i=3100; 118 / 90 */ + RTUINT128_INIT_C(0x001c347185f1d06f, 0x1510d2db9fe828f6), RTUINT128_INIT_C(0x00000000028aa851, 0xd91e1d4978b7ee62), + RTUINT128_INIT_C(0x0000000000000000, 0x000000000b18dec7), RTUINT128_INIT_C(0x0000000002315872, 0x4a2f1f92b904dec8) + }, + { /* i=3101; 124 / 62 */ + RTUINT128_INIT_C(0x0800d5abeb9942fe, 0x3e603fc5f1b2e135), RTUINT128_INIT_C(0x0000000000000000, 0x0bf19dad82dccb96), + RTUINT128_INIT_C(0x0000000000000000, 0xab8a179cc64eff7c), RTUINT128_INIT_C(0x0000000000000000, 0x0580dc3c9441da8d) + }, + { /* i=3102; 119 / 93 */ + RTUINT128_INIT_C(0x00052147e6ea33c1, 0x0877955b92e59e34), RTUINT128_INIT_C(0x0000000012ed56ea, 0x46b9e6f2809b5de8), + RTUINT128_INIT_C(0x0000000000000000, 0x00000000004562e0), RTUINT128_INIT_C(0x000000000ed36794, 0xbc08020f4178a334) + }, + { /* i=3103; 101 / 51 */ + RTUINT128_INIT_C(0x00000012f08aed8b, 0x19c545ed3bead527), RTUINT128_INIT_C(0x0000000000000000, 0x000784b792aa15a3), + RTUINT128_INIT_C(0x0000000000000000, 0x000284e3533cbd42), RTUINT128_INIT_C(0x0000000000000000, 0x0006c6e7eee3ea21) + }, + { /* i=3104; 109 / 93 */ + RTUINT128_INIT_C(0x00001b20acce20f3, 0x3df7dbacdc659efa), RTUINT128_INIT_C(0x0000000005c461ce, 0x93ef27787b552211), + RTUINT128_INIT_C(0x0000000000000000, 0x000000000004b42f), RTUINT128_INIT_C(0x0000000001c09c45, 0x4f6cf881d38c69db) + }, + { /* i=3105; 55 / 19 */ + RTUINT128_INIT_C(0x0000000000000000, 0x001860fa062e1bc9), RTUINT128_INIT_C(0x0000000000000000, 0x000000000007cb31), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000320c5327c), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000031e0d) + }, + { /* i=3106; 1 / 69 */ + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000001), RTUINT128_INIT_C(0x0000000000000012, 0x211916a8b9c59c1e), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000001) + }, + { /* i=3107; 120 / 121 */ + RTUINT128_INIT_C(0x004cae8f03c51487, 0x34c43aa6b2773e9d), RTUINT128_INIT_C(0x017f294b23ffad85, 0xfd336ff659a9b31d), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x004cae8f03c51487, 0x34c43aa6b2773e9d) + }, + { /* i=3108; 57 / 48 */ + RTUINT128_INIT_C(0x0000000000000000, 0x00c584b741eed850), RTUINT128_INIT_C(0x0000000000000000, 0x00009bc55a7a66b2), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000144), RTUINT128_INIT_C(0x0000000000000000, 0x00005ef0bf04df08) + }, + { /* i=3109; 95 / 40 */ + RTUINT128_INIT_C(0x000000005f483092, 0xc0ed7cc15de8b077), RTUINT128_INIT_C(0x0000000000000000, 0x000000307b6577c6), + RTUINT128_INIT_C(0x0000000000000000, 0x01f71e4892e804c2), RTUINT128_INIT_C(0x0000000000000000, 0x00000022cdb4d46b) + }, + { /* i=3110; 58 / 8 */ + RTUINT128_INIT_C(0x0000000000000000, 0x00c55e7c5f90536c), RTUINT128_INIT_C(0x0000000000000000, 0x00000000000000c8), + RTUINT128_INIT_C(0x0000000000000000, 0x0000fca1e6e0b8bc), RTUINT128_INIT_C(0x0000000000000000, 0x000000000000008c) + }, + { /* i=3111; 22 / 6 */ + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000333ff0), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000006), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000088aa8), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000) + }, + { /* i=3112; 67 / 29 */ + RTUINT128_INIT_C(0x0000000000000006, 0x0d778b4dc9d40fa8), RTUINT128_INIT_C(0x0000000000000000, 0x0000000009bf42aa), + RTUINT128_INIT_C(0x0000000000000000, 0x0000009ef77fbc89), RTUINT128_INIT_C(0x0000000000000000, 0x00000000052e8aae) + }, + { /* i=3113; 126 / 49 */ + RTUINT128_INIT_C(0x04e402c84249a842, 0xe48d5aaf062f1061), RTUINT128_INIT_C(0x0000000000000000, 0x0001c393ea59a374), + RTUINT128_INIT_C(0x00000000000002c5, 0xc4381b5a680a6d18), RTUINT128_INIT_C(0x0000000000000000, 0x0000c55960a75981) + }, + { /* i=3114; 111 / 21 */ + RTUINT128_INIT_C(0x0000113ba4e95f63, 0xfca1477b0a9853ee), RTUINT128_INIT_C(0x0000000000000000, 0x00000000000e8b0f), + RTUINT128_INIT_C(0x00000000012f58fc, 0xb5d89f5110f733a5), RTUINT128_INIT_C(0x0000000000000000, 0x00000000000bb643) + }, + { /* i=3115; 96 / 33 */ + RTUINT128_INIT_C(0x0000000017b98b2d, 0xddcdbc8f9297a076), RTUINT128_INIT_C(0x0000000000000000, 0x0000000089e02fcf), + RTUINT128_INIT_C(0x0000000000000000, 0x2c0d04c9313f3ae1), RTUINT128_INIT_C(0x0000000000000000, 0x0000000036c7b587) + }, + { /* i=3116; 18 / 6 */ + RTUINT128_INIT_C(0x0000000000000000, 0x000000000002a895), RTUINT128_INIT_C(0x0000000000000000, 0x000000000000003a), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000bbb), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000037) + }, + { /* i=3117; 125 / 45 */ + RTUINT128_INIT_C(0x0ed61234c5621194, 0x92bf9fcd27bfa40b), RTUINT128_INIT_C(0x0000000000000000, 0x0000196331cd3922), + RTUINT128_INIT_C(0x000000000000959a, 0xa6de4a3c413a7e5c), RTUINT128_INIT_C(0x0000000000000000, 0x000011abac2c5fd3) + }, + { /* i=3118; 121 / 91 */ + RTUINT128_INIT_C(0x01d0d9a2deaa9186, 0x3efaacfdc28923f8), RTUINT128_INIT_C(0x0000000003a1c99c, 0x157dc19d4fbd93f0), + RTUINT128_INIT_C(0x0000000000000000, 0x000000007ffcecc7), RTUINT128_INIT_C(0x0000000001bc6a89, 0xfa529b305189e468) + }, + { /* i=3119; 114 / 71 */ + RTUINT128_INIT_C(0x000353895da4a438, 0x5d40e6939d7431ba), RTUINT128_INIT_C(0x0000000000000066, 0x1b646dcd18b06107), + RTUINT128_INIT_C(0x0000000000000000, 0x00000856f3425f28), RTUINT128_INIT_C(0x0000000000000050, 0x05380871a5156fa2) + }, + { /* i=3120; 56 / 106 */ + RTUINT128_INIT_C(0x0000000000000000, 0x007d880bf9222778), RTUINT128_INIT_C(0x0000037a43d766f5, 0x7ab83e5d925c6e9f), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x0000000000000000, 0x007d880bf9222778) + }, + { /* i=3121; 116 / 127 */ + RTUINT128_INIT_C(0x0007a681ce5d97eb, 0xbf633585ec993ae2), RTUINT128_INIT_C(0x08ea24f18eda9ce0, 0xd9a29adad17ea6ad), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x0007a681ce5d97eb, 0xbf633585ec993ae2) + }, + { /* i=3122; 117 / 11 */ + RTUINT128_INIT_C(0x00118871bcc3c41f, 0xd2f39638555f78e4), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000271), + RTUINT128_INIT_C(0x0000072e777ee12f, 0x27a8bc3f2b25044a), RTUINT128_INIT_C(0x0000000000000000, 0x000000000000003a) + }, + { /* i=3123; 123 / 116 */ + RTUINT128_INIT_C(0x02ebf3429c89e7bc, 0x7f1cae8b305dccbd), RTUINT128_INIT_C(0x000b49ca1f0b12c3, 0xceddb9d29391c1df), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000042), RTUINT128_INIT_C(0x0002ed269baf1141, 0x29f2c64124c9d13f) + }, + { /* i=3124; 113 / 127 */ + RTUINT128_INIT_C(0x0000be8e8705e1ff, 0x27af55b61de27617), RTUINT128_INIT_C(0x2a69bc7fef668450, 0x499a9f47a3bdaff1), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x0000be8e8705e1ff, 0x27af55b61de27617) + }, + { /* i=3125; 114 / 84 */ + RTUINT128_INIT_C(0x0001f3a1e0adb886, 0xbf681a9aa240a69b), RTUINT128_INIT_C(0x00000000000143a1, 0x8fdaa28e14442f0a), + RTUINT128_INIT_C(0x0000000000000000, 0x000000018b38a1aa), RTUINT128_INIT_C(0x000000000000631f, 0xefa32a0393341ff7) + }, + { /* i=3126; 92 / 73 */ + RTUINT128_INIT_C(0x0000000001e1e966, 0x2534804b7cfc8cbc), RTUINT128_INIT_C(0x00000000000000be, 0xd9eff4f194337d77), + RTUINT128_INIT_C(0x0000000000000000, 0x000000000002866a), RTUINT128_INIT_C(0x000000000000006c, 0x63bf784a31104f76) + }, + { /* i=3127; 121 / 109 */ + RTUINT128_INIT_C(0x01c62156c8d710dd, 0x8ccd6ebfefba21db), RTUINT128_INIT_C(0x00001df9a6b5fa78, 0x727624030e01ba08), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000f26), RTUINT128_INIT_C(0x00000d836026d447, 0xa327e879c1920cab) + }, + { /* i=3128; 117 / 42 */ + RTUINT128_INIT_C(0x0019337947ad3ea0, 0x010bbbaa587b10ff), RTUINT128_INIT_C(0x0000000000000000, 0x0000002a086e2781), + RTUINT128_INIT_C(0x000000000000997c, 0x75eca9e744d7a804), RTUINT128_INIT_C(0x0000000000000000, 0x000000117b7ecafb) + }, + { /* i=3129; 127 / 121 */ + RTUINT128_INIT_C(0x7d06b0d32f166fb7, 0xc5dc4e7ca1b7aed6), RTUINT128_INIT_C(0x00b09f756c30696d, 0xc861ffdf5c0e51ac), + RTUINT128_INIT_C(0x0000000000000000, 0x00000000000000b5), RTUINT128_INIT_C(0x0025f2cdb0dbe519, 0x189265908b97f03a) + }, + { /* i=3130; 25 / 1 */ + RTUINT128_INIT_C(0x0000000000000000, 0x0000000001c8ae7a), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000001), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000001c8ae7a), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000) + }, + { /* i=3131; 120 / 28 */ + RTUINT128_INIT_C(0x00475bee82abcba9, 0x1d47f30f9ceb4b21), RTUINT128_INIT_C(0x0000000000000000, 0x000000000cc0f954), + RTUINT128_INIT_C(0x00000000059859ff, 0xc6a0470ff7616d8b), RTUINT128_INIT_C(0x0000000000000000, 0x0000000001272685) + }, + { /* i=3132; 116 / 70 */ + RTUINT128_INIT_C(0x000776242ab886cb, 0x68d6b90ec4533995), RTUINT128_INIT_C(0x000000000000002e, 0x8718e85a8a5e81e8), + RTUINT128_INIT_C(0x0000000000000000, 0x0000290dc7d252c4), RTUINT128_INIT_C(0x0000000000000016, 0xd9e81a20a60b73f5) + }, + { /* i=3133; 128 / 99 */ + RTUINT128_INIT_C(0x744224d79813d98e, 0x641cfc64a2f151f5), RTUINT128_INIT_C(0x00000000c735a17b, 0x03ce393f9849bdd2), + RTUINT128_INIT_C(0x0000000000000000, 0x000000009566b71b), RTUINT128_INIT_C(0x000000004ec2565f, 0xbf76e3f600cd2ecf) + }, + { /* i=3134; 115 / 118 */ + RTUINT128_INIT_C(0x00041ccbc6430e50, 0xd288a1d4f53ac7ae), RTUINT128_INIT_C(0x00274bad47c8a1a0, 0xe3e667899576106d), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x00041ccbc6430e50, 0xd288a1d4f53ac7ae) + }, + { /* i=3135; 42 / 10 */ + RTUINT128_INIT_C(0x0000000000000000, 0x000003bd19ea0eee), RTUINT128_INIT_C(0x0000000000000000, 0x000000000000033d), + RTUINT128_INIT_C(0x0000000000000000, 0x00000001278ef35b), RTUINT128_INIT_C(0x0000000000000000, 0x000000000000013f) + }, + { /* i=3136; 56 / 59 */ + RTUINT128_INIT_C(0x0000000000000000, 0x00f007697a98810b), RTUINT128_INIT_C(0x0000000000000000, 0x02c4389a8a3f7f5e), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x0000000000000000, 0x00f007697a98810b) + }, + { /* i=3137; 116 / 114 */ + RTUINT128_INIT_C(0x0008041bdf32a91f, 0x19a6500c1bada074), RTUINT128_INIT_C(0x000171ddea157fad, 0x2b5704a61c7d203d), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000005), RTUINT128_INIT_C(0x0000cac64cc72abd, 0x40f338cd8d3bff43) + }, + { /* i=3138; 112 / 14 */ + RTUINT128_INIT_C(0x0000a9f3b04b0ef7, 0xde68cff5a9f0dd00), RTUINT128_INIT_C(0x0000000000000000, 0x000000000000324c), + RTUINT128_INIT_C(0x00000003610489f6, 0x46efaa490176eec2), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000001768) + }, + { /* i=3139; 125 / 123 */ + RTUINT128_INIT_C(0x0e711439411f0db2, 0xa356eb57218ed43a), RTUINT128_INIT_C(0x070ac4c9584f2c46, 0x9ef262f7f57d6782), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000002), RTUINT128_INIT_C(0x005b8aa69080b525, 0x6572256736940536) + }, + { /* i=3140; 122 / 100 */ + RTUINT128_INIT_C(0x014056a395f9fc78, 0x4e92dcbb40daf5f4), RTUINT128_INIT_C(0x00000001fb26337c, 0xe43306092440771a), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000a1b381), RTUINT128_INIT_C(0x00000001f02e32e2, 0xd7e4a13c01bdc3da) + }, + { /* i=3141; 119 / 120 */ + RTUINT128_INIT_C(0x0027e51a4c6e275f, 0x60e4424639751662), RTUINT128_INIT_C(0x00c69810f1c3bcda, 0xd6696cd18e010fca), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x0027e51a4c6e275f, 0x60e4424639751662) + }, + { /* i=3142; 125 / 83 */ + RTUINT128_INIT_C(0x112f0b7361ad8583, 0xfc4aae5975ae32e3), RTUINT128_INIT_C(0x000000000005d637, 0x10bf6db4f95a17fc), + RTUINT128_INIT_C(0x0000000000000000, 0x000002f1ad4b5e41), RTUINT128_INIT_C(0x000000000004f2d8, 0x8edfe400be2b93e7) + }, + { /* i=3143; 120 / 118 */ + RTUINT128_INIT_C(0x0091ce0081935b7d, 0x31b562914e86edb8), RTUINT128_INIT_C(0x003e946654ca8503, 0xd9731c0c62671ee4), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000002), RTUINT128_INIT_C(0x0014a533d7fe5175, 0x7ecf2a7889b8aff0) + }, + { /* i=3144; 128 / 126 */ + RTUINT128_INIT_C(0x3e13fc9149343b54, 0x5f04f588d346dfa1), RTUINT128_INIT_C(0x3f3dcff1d2af7181, 0x034d819c587dfef0), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x3e13fc9149343b54, 0x5f04f588d346dfa1) + }, + { /* i=3145; 99 / 93 */ + RTUINT128_INIT_C(0x000000007d09d64e, 0xa5a49eedc0363ae9), RTUINT128_INIT_C(0x0000000018105bb8, 0x6bd7f79f4fd4609f), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000005), RTUINT128_INIT_C(0x0000000004b80bb4, 0x8a6cc8d1311057ce) + }, + { /* i=3146; 126 / 106 */ + RTUINT128_INIT_C(0x29490cb36f2dbf7e, 0x5b7aefa1ff0ba4d6), RTUINT128_INIT_C(0x000001887dabc40d, 0xddcbb35b2ec8471b), + RTUINT128_INIT_C(0x0000000000000000, 0x00000000001aed9a), RTUINT128_INIT_C(0x000000cde7f07221, 0x22a2e02137fedf98) + }, + { /* i=3147; 68 / 9 */ + RTUINT128_INIT_C(0x0000000000000005, 0xfafc98243d4d6579), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000182), + RTUINT128_INIT_C(0x0000000000000000, 0x03f75e920028a80e), RTUINT128_INIT_C(0x0000000000000000, 0x000000000000005d) + }, + { /* i=3148; 124 / 71 */ + RTUINT128_INIT_C(0x0d8ebec684879bb7, 0xe333eee13199da6a), RTUINT128_INIT_C(0x0000000000000012, 0xb3c67fd15f1d7252), + RTUINT128_INIT_C(0x0000000000000000, 0x00b9943c2c9553c7), RTUINT128_INIT_C(0x000000000000000d, 0x7900124813eb66ac) + }, + { /* i=3149; 122 / 65 */ + RTUINT128_INIT_C(0x01967b4c5957e6cb, 0xee7de79d9e1ef1e7), RTUINT128_INIT_C(0x0000000000000001, 0x46cffde30bff4fb8), + RTUINT128_INIT_C(0x0000000000000000, 0x013e682145fe8f1f), RTUINT128_INIT_C(0x0000000000000000, 0xc81e96e5dc1c829f) + }, + { /* i=3150; 86 / 38 */ + RTUINT128_INIT_C(0x0000000000045bf8, 0x9f2aa61b65066240), RTUINT128_INIT_C(0x0000000000000000, 0x00000032ef398756), + RTUINT128_INIT_C(0x0000000000000000, 0x000015e8f1c7a4ff), RTUINT128_INIT_C(0x0000000000000000, 0x0000000e162b7b96) + }, + { /* i=3151; 83 / 48 */ + RTUINT128_INIT_C(0x000000000001f2f7, 0x4b974681a76e79b5), RTUINT128_INIT_C(0x0000000000000000, 0x00000e031e185303), + RTUINT128_INIT_C(0x0000000000000000, 0x000000239c052214), RTUINT128_INIT_C(0x0000000000000000, 0x000001cb9f729779) + }, + { /* i=3152; 92 / 77 */ + RTUINT128_INIT_C(0x000000000da0c3f1, 0xe79efaed22bc7bbc), RTUINT128_INIT_C(0x0000000000001e84, 0xac782f531a437eae), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000007251), RTUINT128_INIT_C(0x0000000000000729, 0xd084ffefc4f7eaae) + }, + { /* i=3153; 3 / 127 */ + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000004), RTUINT128_INIT_C(0x4bf135c784ddbda5, 0x2161196edfce5eac), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000004) + }, + { /* i=3154; 28 / 5 */ + RTUINT128_INIT_C(0x0000000000000000, 0x0000000002cfd30c), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000011), + RTUINT128_INIT_C(0x0000000000000000, 0x00000000002a57b5), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000007) + }, + { /* i=3155; 113 / 127 */ + RTUINT128_INIT_C(0x00011d852562debc, 0x9ef8a0ee4b36e5b1), RTUINT128_INIT_C(0x7277a86788627e20, 0xed1cacafbee453e6), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x00011d852562debc, 0x9ef8a0ee4b36e5b1) + }, + { /* i=3156; 125 / 125 */ + RTUINT128_INIT_C(0x0d7a2b8b59c8609b, 0xf8dee45ed64ddd3f), RTUINT128_INIT_C(0x018426f286c8d240, 0xb204a13f05b9a101), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000008), RTUINT128_INIT_C(0x0158f3f72381ce96, 0x68b9da66a880d537) + }, + { /* i=3157; 101 / 6 */ + RTUINT128_INIT_C(0x0000000f399ed26e, 0xa26d7810e041bda8), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000002), + RTUINT128_INIT_C(0x000000079ccf6937, 0x5136bc087020ded4), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000) + }, + { /* i=3158; 118 / 22 */ + RTUINT128_INIT_C(0x001b6b80709271fb, 0xd4240d0d1519bb4d), RTUINT128_INIT_C(0x0000000000000000, 0x00000000001433d9), + RTUINT128_INIT_C(0x000000015b74e1ad, 0x480997bd2fdb89f9), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000112c3c) + }, + { /* i=3159; 126 / 68 */ + RTUINT128_INIT_C(0x112207f599e78d6b, 0xa239c23f6c490aa0), RTUINT128_INIT_C(0x0000000000000004, 0xabbb3aeb619d24d4), + RTUINT128_INIT_C(0x0000000000000000, 0x03ab06e51a43489e), RTUINT128_INIT_C(0x0000000000000002, 0x9289c602cf74afc8) + }, + { /* i=3160; 120 / 7 */ + RTUINT128_INIT_C(0x002e30b153e7770c, 0xcf62afb4fa5bee40), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000077), + RTUINT128_INIT_C(0x0000635dfe8dc6ea, 0x9854ba7c24862692), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000062) + }, + { /* i=3161; 118 / 67 */ + RTUINT128_INIT_C(0x002a6e70439417c3, 0x9f67bdf4c73291ba), RTUINT128_INIT_C(0x0000000000000001, 0x5d374094a3427b12), + RTUINT128_INIT_C(0x0000000000000000, 0x001f1af052ffd4a2), RTUINT128_INIT_C(0x0000000000000001, 0x3a9aa92e0e47c856) + }, + { /* i=3162; 109 / 60 */ + RTUINT128_INIT_C(0x000004245f739086, 0xd053e18afc72b5bb), RTUINT128_INIT_C(0x0000000000000000, 0x0910bf5529d6d533), + RTUINT128_INIT_C(0x0000000000000000, 0x000074f80ef5d5e8), RTUINT128_INIT_C(0x0000000000000000, 0x047030e27e8f1083) + }, + { /* i=3163; 128 / 34 */ + RTUINT128_INIT_C(0x163681915df9ead5, 0x3c54cb626c3c3203), RTUINT128_INIT_C(0x0000000000000000, 0x00000000b5d6bba7), + RTUINT128_INIT_C(0x000000001f45b157, 0x6cbf97a0a8b7251d), RTUINT128_INIT_C(0x0000000000000000, 0x000000000d68cd18) + }, + { /* i=3164; 118 / 44 */ + RTUINT128_INIT_C(0x002766c816403e15, 0xdc79d01a885f6f75), RTUINT128_INIT_C(0x0000000000000000, 0x00000571635a5f1b), + RTUINT128_INIT_C(0x000000000000073d, 0x313a4254c35847f4), RTUINT128_INIT_C(0x0000000000000000, 0x0000051b83944cb9) + }, + { /* i=3165; 119 / 107 */ + RTUINT128_INIT_C(0x00084968e97cf58b, 0x7ba841807b437de9), RTUINT128_INIT_C(0x0000025a07dcc342, 0x1d86b79ef3ebb085), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000386), RTUINT128_INIT_C(0x0000003135a4fa97, 0x72fd47710ad3894b) + }, + { /* i=3166; 40 / 17 */ + RTUINT128_INIT_C(0x0000000000000000, 0x00000010ef38aa5d), RTUINT128_INIT_C(0x0000000000000000, 0x000000000001eec1), + RTUINT128_INIT_C(0x0000000000000000, 0x000000000008c32b), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000008cf2) + }, + { /* i=3167; 128 / 87 */ + RTUINT128_INIT_C(0xc39a2d90ce20bd57, 0xb7027706f6c5465d), RTUINT128_INIT_C(0x00000000002aae11, 0xff3de1e4136ccfe8), + RTUINT128_INIT_C(0x0000000000000000, 0x000004953f798d68), RTUINT128_INIT_C(0x00000000000c338f, 0x094a7c0bc766081d) + }, + { /* i=3168; 77 / 107 */ + RTUINT128_INIT_C(0x0000000000001800, 0xc0c20d0889aacfeb), RTUINT128_INIT_C(0x000003907b6919de, 0x049be939726488e8), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x0000000000001800, 0xc0c20d0889aacfeb) + }, + { /* i=3169; 125 / 104 */ + RTUINT128_INIT_C(0x1ea39ada303ea082, 0x496a94f9a3f30be2), RTUINT128_INIT_C(0x0000004a4e8462b2, 0x26476bedeed96fb7), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000698ea1), RTUINT128_INIT_C(0x00000044e52c09f1, 0x540ac2aaff2d47cb) + }, + { /* i=3170; 121 / 20 */ + RTUINT128_INIT_C(0x0113c80c45383416, 0x0779d3cbc6cf0bcf), RTUINT128_INIT_C(0x0000000000000000, 0x000000000006abae), + RTUINT128_INIT_C(0x0000002957b99c47, 0x622a7cdd801c9979), RTUINT128_INIT_C(0x0000000000000000, 0x000000000004e891) + }, + { /* i=3171; 88 / 27 */ + RTUINT128_INIT_C(0x0000000000400a5e, 0xa8d721988ca87d97), RTUINT128_INIT_C(0x0000000000000000, 0x0000000003bef6ce), + RTUINT128_INIT_C(0x0000000000000000, 0x11188dfa4b746c7b), RTUINT128_INIT_C(0x0000000000000000, 0x000000000071009d) + }, + { /* i=3172; 36 / 24 */ + RTUINT128_INIT_C(0x0000000000000000, 0x0000000088a8be9c), RTUINT128_INIT_C(0x0000000000000000, 0x00000000002f2276), + RTUINT128_INIT_C(0x0000000000000000, 0x00000000000002e6), RTUINT128_INIT_C(0x0000000000000000, 0x00000000000adc98) + }, + { /* i=3173; 122 / 72 */ + RTUINT128_INIT_C(0x01e3cbf2a6bf69ea, 0x5cb8f8923fd00065), RTUINT128_INIT_C(0x000000000000004b, 0x964b7bb5a78993ca), + RTUINT128_INIT_C(0x0000000000000000, 0x00066688795ba6eb), RTUINT128_INIT_C(0x0000000000000049, 0x54bf0a1c3be259f7) + }, + { /* i=3174; 124 / 114 */ + RTUINT128_INIT_C(0x0887aa6a48160d04, 0xba3f5d8c28d3fb97), RTUINT128_INIT_C(0x0003873821352517, 0x98e03e6dbdc70846), + RTUINT128_INIT_C(0x0000000000000000, 0x000000000000026a), RTUINT128_INIT_C(0x00033cea1dca820d, 0xace8a8a0065a029b) + }, + { /* i=3175; 60 / 21 */ + RTUINT128_INIT_C(0x0000000000000000, 0x0b4d2bc725bc0420), RTUINT128_INIT_C(0x0000000000000000, 0x00000000000ad026), + RTUINT128_INIT_C(0x0000000000000000, 0x0000010b8fe9c89a), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000071d44) + }, + { /* i=3176; 125 / 49 */ + RTUINT128_INIT_C(0x0aa5a8cef5484ee7, 0xd5c8d9ea69203baa), RTUINT128_INIT_C(0x0000000000000000, 0x00000877bcac0032), + RTUINT128_INIT_C(0x00000000000141e3, 0x5c7798ecb99ce45c), RTUINT128_INIT_C(0x0000000000000000, 0x000007cd2aaba1b2) + }, + { /* i=3177; 92 / 20 */ + RTUINT128_INIT_C(0x000000000fc243c9, 0x0d80aac2de9e6c7b), RTUINT128_INIT_C(0x0000000000000000, 0x000000000009d61d), + RTUINT128_INIT_C(0x000000000000019a, 0x231bc3572f2988bc), RTUINT128_INIT_C(0x0000000000000000, 0x000000000000c72f) + }, + { /* i=3178; 84 / 63 */ + RTUINT128_INIT_C(0x0000000000041cc1, 0x2535ec4ffdb3812b), RTUINT128_INIT_C(0x0000000000000000, 0x091ed465b6abe3ea), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000736d9d), RTUINT128_INIT_C(0x0000000000000000, 0x032d4bf0642018a9) + }, + { /* i=3179; 108 / 17 */ + RTUINT128_INIT_C(0x00000a8fe2001590, 0x8d61b2b73e3e101f), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000017cfc), + RTUINT128_INIT_C(0x000000000718db4e, 0x4918a7d286630087), RTUINT128_INIT_C(0x0000000000000000, 0x000000000001273b) + }, + { /* i=3180; 126 / 100 */ + RTUINT128_INIT_C(0x0d4d577efd16b011, 0x08d72b3fb0890666), RTUINT128_INIT_C(0x0000000c1e74bb98, 0x3b8720f224d3c1f6), + RTUINT128_INIT_C(0x0000000000000000, 0x000000000118fe21), RTUINT128_INIT_C(0x0000000a0f685a95, 0x40e363e2b1baf1b0) + }, + { /* i=3181; 124 / 88 */ + RTUINT128_INIT_C(0x0ab47475190045cc, 0xcea89d646e3e4b5f), RTUINT128_INIT_C(0x0000000000070d01, 0xda44ce13191bb2ed), + RTUINT128_INIT_C(0x0000000000000000, 0x00000184ac210d2a), RTUINT128_INIT_C(0x0000000000035924, 0x0d97cdfe9b0fe77d) + }, + { /* i=3182; 37 / 16 */ + RTUINT128_INIT_C(0x0000000000000000, 0x0000000343988baa), RTUINT128_INIT_C(0x0000000000000000, 0x00000000000010fa), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000313876), RTUINT128_INIT_C(0x0000000000000000, 0x000000000000086e) + }, + { /* i=3183; 79 / 50 */ + RTUINT128_INIT_C(0x0000000000003e00, 0x62f41fa371abee8a), RTUINT128_INIT_C(0x0000000000000000, 0x000100890b743d17), + RTUINT128_INIT_C(0x0000000000000000, 0x000000003ddf43b4), RTUINT128_INIT_C(0x0000000000000000, 0x0000347845eaf55e) + }, + { /* i=3184; 68 / 2 */ + RTUINT128_INIT_C(0x0000000000000003, 0x6ab75d25bd57a8f2), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000001), + RTUINT128_INIT_C(0x0000000000000003, 0x6ab75d25bd57a8f2), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000) + }, + { /* i=3185; 59 / 119 */ + RTUINT128_INIT_C(0x0000000000000000, 0x017632df0774a832), RTUINT128_INIT_C(0x00222559aa2e96c7, 0xfb364deefecc4c77), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x0000000000000000, 0x017632df0774a832) + }, + { /* i=3186; 89 / 29 */ + RTUINT128_INIT_C(0x0000000000f18020, 0x7f8e94efae01562f), RTUINT128_INIT_C(0x0000000000000000, 0x0000000016a70929), + RTUINT128_INIT_C(0x0000000000000000, 0x0aa93e265fcee278), RTUINT128_INIT_C(0x0000000000000000, 0x0000000003a0d8f7) + }, + { /* i=3187; 116 / 72 */ + RTUINT128_INIT_C(0x0000b0add4a6162c, 0xe3cf85bbf10aa077), RTUINT128_INIT_C(0x000000000000002c, 0x01ee6c13afec5ba9), + RTUINT128_INIT_C(0x0000000000000000, 0x00000403c643e65f), RTUINT128_INIT_C(0x0000000000000023, 0xb2d029a39abfc6c0) + }, + { /* i=3188; 115 / 113 */ + RTUINT128_INIT_C(0x0001f707ab9c699e, 0x47fc7e1b06e2658e), RTUINT128_INIT_C(0x00010a4aeb1b5f0e, 0xcb3618875eea2fe0), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000001), RTUINT128_INIT_C(0x0000ecbcc0810a8f, 0x7cc66593a7f835ae) + }, + { /* i=3189; 119 / 20 */ + RTUINT128_INIT_C(0x0029d53831144b5f, 0xcae13381bd2060b2), RTUINT128_INIT_C(0x0000000000000000, 0x00000000000b66b9), + RTUINT128_INIT_C(0x00000003ab4d26a1, 0x5efde8425b33923c), RTUINT128_INIT_C(0x0000000000000000, 0x000000000003cb56) + }, + { /* i=3190; 75 / 19 */ + RTUINT128_INIT_C(0x0000000000000209, 0x038a0ac629bf7bae), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000057b02), + RTUINT128_INIT_C(0x0000000000000000, 0x005f111d5c3eaaa7), RTUINT128_INIT_C(0x0000000000000000, 0x000000000000e960) + }, + { /* i=3191; 87 / 77 */ + RTUINT128_INIT_C(0x0000000000665962, 0x39d595e93f2ae880), RTUINT128_INIT_C(0x0000000000001be2, 0x87c1e6bd6df5188a), + RTUINT128_INIT_C(0x0000000000000000, 0x00000000000003ab), RTUINT128_INIT_C(0x000000000000117a, 0x459c3d16ed29e652) + }, + { /* i=3192; 115 / 92 */ + RTUINT128_INIT_C(0x00037aab2f4042bb, 0xc0bc38c82651ede5), RTUINT128_INIT_C(0x00000000050ac467, 0x8d0547f73af7255e), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000b0a5d6), RTUINT128_INIT_C(0x00000000007862a5, 0xfcf72d31e0031b51) + }, + { /* i=3193; 109 / 33 */ + RTUINT128_INIT_C(0x00001f73ddb87b99, 0x3d2d7ef2e22292bd), RTUINT128_INIT_C(0x0000000000000000, 0x00000000215e04bd), + RTUINT128_INIT_C(0x000000000000f14f, 0x74f94a439c4795c4), RTUINT128_INIT_C(0x0000000000000000, 0x0000000020f9f109) + }, + { /* i=3194; 119 / 107 */ + RTUINT128_INIT_C(0x0079cb4f1fc06c1e, 0xc848d4c4e751836e), RTUINT128_INIT_C(0x000003aa94c827a2, 0x4111cffd02704999), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000002138), RTUINT128_INIT_C(0x000000d0c6dbd63d, 0x4093b81be544b0f6) + }, + { /* i=3195; 76 / 64 */ + RTUINT128_INIT_C(0x0000000000000f8b, 0x146accc761820f73), RTUINT128_INIT_C(0x0000000000000000, 0x37c533ff9b9b5005), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000004758), RTUINT128_INIT_C(0x0000000000000000, 0x373508c1d0ed2abb) + }, + { /* i=3196; 123 / 70 */ + RTUINT128_INIT_C(0x03aa46c948751e40, 0xfe56b253386e164f), RTUINT128_INIT_C(0x0000000000000011, 0x86f637b3be5654dd), + RTUINT128_INIT_C(0x0000000000000000, 0x00358859496e8d0b), RTUINT128_INIT_C(0x0000000000000001, 0xc9b7fda40204b7d0) + }, + { /* i=3197; 115 / 66 */ + RTUINT128_INIT_C(0x0004758d3fd9f6f0, 0xf327a31b2891c419), RTUINT128_INIT_C(0x0000000000000001, 0xd8afa9cd5933b4cb), + RTUINT128_INIT_C(0x0000000000000000, 0x00026a3f77885ead), RTUINT128_INIT_C(0x0000000000000000, 0x945e841d7b660cea) + }, + { /* i=3198; 82 / 1 */ + RTUINT128_INIT_C(0x000000000002cc53, 0xd68f671fd25433b2), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000001), + RTUINT128_INIT_C(0x000000000002cc53, 0xd68f671fd25433b2), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000) + }, + { /* i=3199; 117 / 53 */ + RTUINT128_INIT_C(0x000fe3a1cee867ce, 0x12be86c25235f1a6), RTUINT128_INIT_C(0x0000000000000000, 0x00145dd24d8bd041), + RTUINT128_INIT_C(0x0000000000000000, 0xc7b8c7cfea5c4581), RTUINT128_INIT_C(0x0000000000000000, 0x0013fab94e447be5) + }, + { /* i=3200; 75 / 91 */ + RTUINT128_INIT_C(0x0000000000000077, 0x5a880144908bc8d0), RTUINT128_INIT_C(0x0000000007199ea1, 0xc952387849e1e2c5), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x0000000000000077, 0x5a880144908bc8d0) + }, + { /* i=3201; 127 / 96 */ + RTUINT128_INIT_C(0x0ac78fc669178e51, 0x35ecf10a47891f8b), RTUINT128_INIT_C(0x00000000bc5020ce, 0x5ebdb44012a15fa1), + RTUINT128_INIT_C(0x0000000000000000, 0x000000000ea77484), RTUINT128_INIT_C(0x00000000511af35e, 0x4f9dfd0f5cf7dc87) + }, + { /* i=3202; 88 / 24 */ + RTUINT128_INIT_C(0x00000000003c84b2, 0x525ff04c83025360), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000c3b2fe), + RTUINT128_INIT_C(0x0000000000000000, 0x4f2a767b39600653), RTUINT128_INIT_C(0x0000000000000000, 0x00000000001d5706) + }, + { /* i=3203; 118 / 124 */ + RTUINT128_INIT_C(0x002c06f0053ec94e, 0x662690c98c715f0c), RTUINT128_INIT_C(0x0f5cb1325e7a3745, 0x944236d854df91f0), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x002c06f0053ec94e, 0x662690c98c715f0c) + }, + { /* i=3204; 36 / 11 */ + RTUINT128_INIT_C(0x0000000000000000, 0x000000032621954e), RTUINT128_INIT_C(0x0000000000000000, 0x00000000000003f9), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000caeb81), RTUINT128_INIT_C(0x0000000000000000, 0x00000000000001d5) + }, + { /* i=3205; 117 / 125 */ + RTUINT128_INIT_C(0x0000bb1fd8ce6466, 0xf22efb378b26df01), RTUINT128_INIT_C(0x0fbfa63a82e7282d, 0x4aa9377b37a09c2b), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x0000bb1fd8ce6466, 0xf22efb378b26df01) + }, + { /* i=3206; 44 / 2 */ + RTUINT128_INIT_C(0x0000000000000000, 0x0000040b05502249), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000001), + RTUINT128_INIT_C(0x0000000000000000, 0x0000040b05502249), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000) + }, + { /* i=3207; 118 / 116 */ + RTUINT128_INIT_C(0x003565f9b66427aa, 0xadaa2ec2effe3b41), RTUINT128_INIT_C(0x0000d81da02f5085, 0xd75299a0198e7e61), + RTUINT128_INIT_C(0x0000000000000000, 0x000000000000003f), RTUINT128_INIT_C(0x000036af4abf56ba, 0xb056605ca5ed2162) + }, + { /* i=3208; 113 / 90 */ + RTUINT128_INIT_C(0x00009ae03da24679, 0x5da70e3ecae69f63), RTUINT128_INIT_C(0x0000000003a5780c, 0x9d04ff1a5682b652), + RTUINT128_INIT_C(0x0000000000000000, 0x00000000002a795d), RTUINT128_INIT_C(0x0000000002b5f0db, 0x1bf0bd57abc9a199) + }, + { /* i=3209; 121 / 107 */ + RTUINT128_INIT_C(0x01b7adb3c58e7273, 0x55dec058bc729fec), RTUINT128_INIT_C(0x000004b4b2141b03, 0x723d65238353cc2f), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000005d6e), RTUINT128_INIT_C(0x0000035df31a9677, 0xf1bf6460dd43d0ba) + }, + { /* i=3210; 112 / 99 */ + RTUINT128_INIT_C(0x00003d9afa96e9fa, 0xede27baac5c5898e), RTUINT128_INIT_C(0x00000001546841e4, 0x3ae599b99f06df60), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000002e54), RTUINT128_INIT_C(0x000000008c8a4882, 0x58ecb02f5b60fe0e) + }, + { /* i=3211; 114 / 3 */ + RTUINT128_INIT_C(0x0002fe61e9852a6a, 0x751e85ed41079633), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000004), + RTUINT128_INIT_C(0x0000bf987a614a9a, 0x9d47a17b5041e58c), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000003) + }, + { /* i=3212; 115 / 15 */ + RTUINT128_INIT_C(0x00075a6b96af8628, 0x688a84f69dc8b76f), RTUINT128_INIT_C(0x0000000000000000, 0x00000000000076fd), + RTUINT128_INIT_C(0x0000000fd1f9a6f6, 0x4716082c593da8e3), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000002d18) + }, + { /* i=3213; 57 / 36 */ + RTUINT128_INIT_C(0x0000000000000000, 0x0138d51fe0e6387d), RTUINT128_INIT_C(0x0000000000000000, 0x0000000b4f788bde), + RTUINT128_INIT_C(0x0000000000000000, 0x00000000001ba8a4), RTUINT128_INIT_C(0x0000000000000000, 0x000000031b78ee45) + }, + { /* i=3214; 108 / 8 */ + RTUINT128_INIT_C(0x000005d1747bc757, 0xf55df4df04691df3), RTUINT128_INIT_C(0x0000000000000000, 0x000000000000002d), + RTUINT128_INIT_C(0x000000211958157f, 0x1c3549b54fbe11bb), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000014) + }, + { /* i=3215; 29 / 5 */ + RTUINT128_INIT_C(0x0000000000000000, 0x000000001a7e4f6b), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000005), + RTUINT128_INIT_C(0x0000000000000000, 0x00000000054c7648), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000003) + }, + { /* i=3216; 67 / 59 */ + RTUINT128_INIT_C(0x0000000000000003, 0xa73b4569a5a7f9a0), RTUINT128_INIT_C(0x0000000000000000, 0x068903620fd0f757), + RTUINT128_INIT_C(0x0000000000000000, 0x000000000000008f), RTUINT128_INIT_C(0x0000000000000000, 0x00b261a2cfedd007) + }, + { /* i=3217; 100 / 2 */ + RTUINT128_INIT_C(0x0000000e88639a54, 0x2ce795c1b89a1c35), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000001), + RTUINT128_INIT_C(0x0000000e88639a54, 0x2ce795c1b89a1c35), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000) + }, + { /* i=3218; 93 / 56 */ + RTUINT128_INIT_C(0x00000000072cfe12, 0x50e0cfc57deaa823), RTUINT128_INIT_C(0x0000000000000000, 0x003273f4a91027e7), + RTUINT128_INIT_C(0x0000000000000000, 0x0000002468f66411), RTUINT128_INIT_C(0x0000000000000000, 0x002ce843c447c5cc) + }, + { /* i=3219; 33 / 18 */ + RTUINT128_INIT_C(0x0000000000000000, 0x00000001e7461109), RTUINT128_INIT_C(0x0000000000000000, 0x000000000000246d), + RTUINT128_INIT_C(0x0000000000000000, 0x00000000000d608d), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000002100) + }, + { /* i=3220; 1 / 41 */ + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000001), RTUINT128_INIT_C(0x0000000000000000, 0x0000000ad319d60a), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000001) + }, + { /* i=3221; 114 / 113 */ + RTUINT128_INIT_C(0x0002ec99fe0c5e8c, 0xf6aa694b14837e9a), RTUINT128_INIT_C(0x0001b847060dfa2e, 0x2b0a726de28e27fb), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000001), RTUINT128_INIT_C(0x00013452f7fe645e, 0xcb9ff6dd31f5569f) + }, + { /* i=3222; 125 / 71 */ + RTUINT128_INIT_C(0x03b8df411cd563b4, 0x96be16ec32b28d6d), RTUINT128_INIT_C(0x000000000000003c, 0x88de83d62f635986), + RTUINT128_INIT_C(0x0000000000000000, 0x000fbdae19b74d6a), RTUINT128_INIT_C(0x0000000000000026, 0x06beb9249cd82df1) + }, + { /* i=3223; 118 / 72 */ + RTUINT128_INIT_C(0x000b6ac451fe8a01, 0x7078920ed876afe2), RTUINT128_INIT_C(0x0000000000000060, 0x851ffc8cd93b46e8), + RTUINT128_INIT_C(0x0000000000000000, 0x00001e480d9b8953), RTUINT128_INIT_C(0x0000000000000035, 0x0da7a565fad48aaa) + }, + { /* i=3224; 120 / 96 */ + RTUINT128_INIT_C(0x00dbb46659b67eb2, 0x8adecd4c079ae6ed), RTUINT128_INIT_C(0x000000002634b781, 0x53b36f93e60ef806), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000005c0235d), RTUINT128_INIT_C(0x000000001bd7de84, 0x0803360b45c1fabf) + }, + { /* i=3225; 117 / 119 */ + RTUINT128_INIT_C(0x0000671bc9ddc1d0, 0x3f63dff8ad0cd15e), RTUINT128_INIT_C(0x006225cd47ce60ec, 0xa5ee29be2eb0e683), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x0000671bc9ddc1d0, 0x3f63dff8ad0cd15e) + }, + { /* i=3226; 116 / 119 */ + RTUINT128_INIT_C(0x00048995391b3a29, 0x236f23e3a95cc836), RTUINT128_INIT_C(0x00602d3b14d7b0a2, 0xcf92d55fd38faaba), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x00048995391b3a29, 0x236f23e3a95cc836) + }, + { /* i=3227; 124 / 117 */ + RTUINT128_INIT_C(0x01b946ea15d88c9d, 0xa1958fb3a6437f7f), RTUINT128_INIT_C(0x000f45c35b6f8675, 0x13ab827a9e1b97bd), + RTUINT128_INIT_C(0x0000000000000000, 0x000000000000001c), RTUINT128_INIT_C(0x000da58c15a5d7cf, 0x7ad34a4a5b3ee6d3) + }, + { /* i=3228; 114 / 126 */ + RTUINT128_INIT_C(0x0003db1f0b924f98, 0x91cda01e8d4199b0), RTUINT128_INIT_C(0x0e87fbee77ebfa5e, 0xef78f17efbfa9729), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x0003db1f0b924f98, 0x91cda01e8d4199b0) + }, + { /* i=3229; 55 / 23 */ + RTUINT128_INIT_C(0x0000000000000000, 0x0005bff88afd31f8), RTUINT128_INIT_C(0x0000000000000000, 0x00000000005cb2f1), + RTUINT128_INIT_C(0x0000000000000000, 0x000000000fe108b2), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000203e66) + }, + { /* i=3230; 70 / 4 */ + RTUINT128_INIT_C(0x000000000000000f, 0x3a6a276a597cfd24), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000008), + RTUINT128_INIT_C(0x0000000000000001, 0xe74d44ed4b2f9fa4), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000004) + }, + { /* i=3231; 120 / 53 */ + RTUINT128_INIT_C(0x00ba349611d3ad48, 0x376f36f8e0e3f6ca), RTUINT128_INIT_C(0x0000000000000000, 0x000e835a6cac5ea9), + RTUINT128_INIT_C(0x000000000000000c, 0xd4858a7adfeb0089), RTUINT128_INIT_C(0x0000000000000000, 0x0005cc5a9c824e59) + }, + { /* i=3232; 52 / 103 */ + RTUINT128_INIT_C(0x0000000000000000, 0x000127ee50f54387), RTUINT128_INIT_C(0x00000038a71d9c96, 0x4bf46e0e123d0e34), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x0000000000000000, 0x000127ee50f54387) + }, + { /* i=3233; 102 / 14 */ + RTUINT128_INIT_C(0x000000271493382d, 0x2d075aa74aef405a), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000003323), + RTUINT128_INIT_C(0x0000000000c3a4c7, 0x3bebd6c3b9320f83), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000871) + }, + { /* i=3234; 75 / 68 */ + RTUINT128_INIT_C(0x00000000000000fa, 0x34e282113827e913), RTUINT128_INIT_C(0x000000000000000d, 0x465fb2b76641230e), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000012), RTUINT128_INIT_C(0x000000000000000b, 0x4227f12c07937217) + }, + { /* i=3235; 121 / 99 */ + RTUINT128_INIT_C(0x01e59f058868f91b, 0xe43eded5d2d3013d), RTUINT128_INIT_C(0x000000038fcddb26, 0x233c9fc32a95c98d), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000885810), RTUINT128_INIT_C(0x000000015bf37267, 0xf9db2c6c9945f06d) + }, + { /* i=3236; 111 / 22 */ + RTUINT128_INIT_C(0x0000656cac3bbc01, 0x2353aad45f67f204), RTUINT128_INIT_C(0x0000000000000000, 0x00000000000dbeb9), + RTUINT128_INIT_C(0x000000000761067c, 0x2591d3d34a4e9100), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000032904) + }, + { /* i=3237; 118 / 115 */ + RTUINT128_INIT_C(0x0031337a8af9bed6, 0xb73cd53c1fac4d38), RTUINT128_INIT_C(0x000187630507d617, 0x4ad60b1b515f482a), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000020), RTUINT128_INIT_C(0x00004719e9fefbed, 0x5c7b71d1f3c347f8) + }, + { /* i=3238; 124 / 95 */ + RTUINT128_INIT_C(0x05c5d9db953503ea, 0x0cf356df4df6e999), RTUINT128_INIT_C(0x000000003f74c7df, 0xce85580fe829cc39), + RTUINT128_INIT_C(0x0000000000000000, 0x00000000174a10b7), RTUINT128_INIT_C(0x0000000009fc7890, 0x33ab878f93d85cda) + }, + { /* i=3239; 69 / 50 */ + RTUINT128_INIT_C(0x0000000000000010, 0x07e2cdaac264ae3a), RTUINT128_INIT_C(0x0000000000000000, 0x0000c194d4cc68f4), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000153325), RTUINT128_INIT_C(0x0000000000000000, 0x0000b7feabece6f6) + }, + { /* i=3240; 127 / 106 */ + RTUINT128_INIT_C(0x65b921bcfbe54976, 0x8a25968ed665bc95), RTUINT128_INIT_C(0x0000018f2916f7ed, 0x2f9da4f9a856b3c9), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000413d60), RTUINT128_INIT_C(0x0000006e26fbb525, 0x3b547dcf67026c35) + }, + { /* i=3241; 122 / 108 */ + RTUINT128_INIT_C(0x0085cdf99b7c44f4, 0x992374e24f18411d), RTUINT128_INIT_C(0x000001679029e8fc, 0x00c3d97259ca9e9f), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000005f43), RTUINT128_INIT_C(0x0000015f530ec6b7, 0xb8301ca29e33bc80) + }, + { /* i=3242; 125 / 110 */ + RTUINT128_INIT_C(0x097af5b37726642f, 0x48d15c17f41c4ad2), RTUINT128_INIT_C(0x00000bd9321a2346, 0xe83f85e1b1beecab), + RTUINT128_INIT_C(0x0000000000000000, 0x000000000000ccd5), RTUINT128_INIT_C(0x0000060ff34a891d, 0x6d471daaeba91c8b) + }, + { /* i=3243; 117 / 96 */ + RTUINT128_INIT_C(0x00003333ef9c8fc0, 0x7d76b7ad3416014b), RTUINT128_INIT_C(0x00000000cbe34770, 0x32d864853aba6fef), + RTUINT128_INIT_C(0x0000000000000000, 0x000000000000404a), RTUINT128_INIT_C(0x000000002e0ddc9b, 0xb1c85a7b9e35e635) + }, + { /* i=3244; 127 / 52 */ + RTUINT128_INIT_C(0x4bfd7c3d353a40e3, 0x162f8211e939bcc8), RTUINT128_INIT_C(0x0000000000000000, 0x000466850a10a85a), + RTUINT128_INIT_C(0x0000000000001144, 0xc6e52fe9368670ae), RTUINT128_INIT_C(0x0000000000000000, 0x00011718ad23ef9c) + }, + { /* i=3245; 125 / 2 */ + RTUINT128_INIT_C(0x033fc9013dbf159d, 0xaebb22de1ad819d2), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000002), + RTUINT128_INIT_C(0x019fe4809edf8ace, 0xd75d916f0d6c0ce9), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000) + }, + { /* i=3246; 119 / 31 */ + RTUINT128_INIT_C(0x002d2f957aa4324f, 0x7376f56753ee4a4f), RTUINT128_INIT_C(0x0000000000000000, 0x000000001bd87dba), + RTUINT128_INIT_C(0x00000000019f6aef, 0x3fd84a12898e771f), RTUINT128_INIT_C(0x0000000000000000, 0x000000000b199ac9) + }, + { /* i=3247; 98 / 76 */ + RTUINT128_INIT_C(0x00000003474e2096, 0xc5304849b9d93ad4), RTUINT128_INIT_C(0x0000000000000bdf, 0x2a72cc18c5b3e1fc), + RTUINT128_INIT_C(0x0000000000000000, 0x000000000046b29e), RTUINT128_INIT_C(0x00000000000005f2, 0xf1a70858d6ca894c) + }, + { /* i=3248; 67 / 68 */ + RTUINT128_INIT_C(0x0000000000000002, 0x57304ac43f8aef86), RTUINT128_INIT_C(0x0000000000000002, 0x7c441d63d9910cf6), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x0000000000000002, 0x57304ac43f8aef86) + }, + { /* i=3249; 118 / 101 */ + RTUINT128_INIT_C(0x000f58cb10a433d0, 0xd19ec91b5509a955), RTUINT128_INIT_C(0x00000015470ccd95, 0x05da8838ca0a7dde), + RTUINT128_INIT_C(0x0000000000000000, 0x000000000000b8a5), RTUINT128_INIT_C(0x0000000311a0968e, 0xf9dc2b4991cef93f) + }, + { /* i=3250; 122 / 45 */ + RTUINT128_INIT_C(0x03072b04164d7239, 0x173580643bdb166e), RTUINT128_INIT_C(0x0000000000000000, 0x0000149781017b5f), + RTUINT128_INIT_C(0x00000000000025a4, 0xfc89e56ba6a26e34), RTUINT128_INIT_C(0x0000000000000000, 0x0000138ab86d3522) + }, + { /* i=3251; 85 / 12 */ + RTUINT128_INIT_C(0x0000000000165f1a, 0x91594a6f0660a411), RTUINT128_INIT_C(0x0000000000000000, 0x000000000000091f), + RTUINT128_INIT_C(0x0000000000000273, 0xe587c47fe21275d1), RTUINT128_INIT_C(0x0000000000000000, 0x00000000000006c2) + }, + { /* i=3252; 128 / 77 */ + RTUINT128_INIT_C(0x989d206b09ec1e40, 0x73f7980b057efb2f), RTUINT128_INIT_C(0x0000000000000aaa, 0x2039f11b544b67d0), + RTUINT128_INIT_C(0x0000000000000000, 0x000e4f74c53ae241), RTUINT128_INIT_C(0x000000000000096b, 0x51c3e5777793ff5f) + }, + { /* i=3253; 93 / 89 */ + RTUINT128_INIT_C(0x0000000005eaa325, 0xb8396d83b25d8c10), RTUINT128_INIT_C(0x00000000005bef88, 0x87fe85dbb6204920), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000010), RTUINT128_INIT_C(0x00000000002baa9d, 0x38510fc85058fa10) + }, + { /* i=3254; 86 / 69 */ + RTUINT128_INIT_C(0x000000000023d62b, 0x750c58910968cbb7), RTUINT128_INIT_C(0x0000000000000017, 0x595d43dc8b1c6253), + RTUINT128_INIT_C(0x0000000000000000, 0x00000000000188e9), RTUINT128_INIT_C(0x0000000000000014, 0x4f3fdfd2f604362c) + }, + { /* i=3255; 117 / 118 */ + RTUINT128_INIT_C(0x000ad9f8bdf8d7b3, 0x2f6ac8085aaa448b), RTUINT128_INIT_C(0x00253e0f6aaac72a, 0xf8e4431a9ac381ca), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x000ad9f8bdf8d7b3, 0x2f6ac8085aaa448b) + }, + { /* i=3256; 88 / 46 */ + RTUINT128_INIT_C(0x0000000000f8427e, 0x47df706d8ed2db49), RTUINT128_INIT_C(0x0000000000000000, 0x000027dd07f05138), + RTUINT128_INIT_C(0x0000000000000000, 0x0000063a4e8a1964), RTUINT128_INIT_C(0x0000000000000000, 0x0000115524d4a969) + }, + { /* i=3257; 120 / 75 */ + RTUINT128_INIT_C(0x006cbd6f28512bb8, 0xa144bbab3b11235e), RTUINT128_INIT_C(0x0000000000000177, 0x4971e20105966120), + RTUINT128_INIT_C(0x0000000000000000, 0x00004a2d292705f2), RTUINT128_INIT_C(0x000000000000012e, 0xeea3cf811723b31e) + }, + { /* i=3258; 84 / 30 */ + RTUINT128_INIT_C(0x00000000000c8a65, 0x3da835e46ce123f2), RTUINT128_INIT_C(0x0000000000000000, 0x000000003b4522be), + RTUINT128_INIT_C(0x0000000000000000, 0x00362a617be36fe2), RTUINT128_INIT_C(0x0000000000000000, 0x00000000074e1636) + }, + { /* i=3259; 88 / 68 */ + RTUINT128_INIT_C(0x0000000000dca5d1, 0xbb320d3fbcbef054), RTUINT128_INIT_C(0x000000000000000b, 0x94354b9e2acdcc27), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000130e53), RTUINT128_INIT_C(0x0000000000000001, 0x270ab55a73f69daf) + }, + { /* i=3260; 94 / 4 */ + RTUINT128_INIT_C(0x00000000372d74ba, 0x09921d82c5185294), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000004), + RTUINT128_INIT_C(0x000000000dcb5d2e, 0x82648760b14614a5), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000) + }, + { /* i=3261; 56 / 23 */ + RTUINT128_INIT_C(0x0000000000000000, 0x003eeadbcca816b2), RTUINT128_INIT_C(0x0000000000000000, 0x00000000006b2cb0), + RTUINT128_INIT_C(0x0000000000000000, 0x000000009649451b), RTUINT128_INIT_C(0x0000000000000000, 0x00000000001ef022) + }, + { /* i=3262; 119 / 90 */ + RTUINT128_INIT_C(0x0023ada7630b7e1d, 0x8e851a1c46ba4578), RTUINT128_INIT_C(0x00000000029462d7, 0xfb07cf487df88423), + RTUINT128_INIT_C(0x0000000000000000, 0x000000000dd4ade3), RTUINT128_INIT_C(0x0000000000109bf7, 0x59165f306e15736f) + }, + { /* i=3263; 56 / 35 */ + RTUINT128_INIT_C(0x0000000000000000, 0x00b5ce8785af34ec), RTUINT128_INIT_C(0x0000000000000000, 0x00000005f1838c31), + RTUINT128_INIT_C(0x0000000000000000, 0x00000000001e96f1), RTUINT128_INIT_C(0x0000000000000000, 0x00000001a6f584cb) + }, + { /* i=3264; 3 / 58 */ + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000006), RTUINT128_INIT_C(0x0000000000000000, 0x01f9222935228b01), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000006) + }, + { /* i=3265; 122 / 17 */ + RTUINT128_INIT_C(0x009ea85a88c42462, 0xebbbdbf64112e50b), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000003420), + RTUINT128_INIT_C(0x0000030b35eb4b97, 0x1b116a2075aefc10), RTUINT128_INIT_C(0x0000000000000000, 0x000000000000230b) + }, + { /* i=3266; 115 / 24 */ + RTUINT128_INIT_C(0x0006bde86296aa36, 0x74d5a02fa02cb22e), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000416815), + RTUINT128_INIT_C(0x000000001a632b0f, 0x98cc3ecf05667082), RTUINT128_INIT_C(0x0000000000000000, 0x00000000000ea784) + }, + { /* i=3267; 126 / 13 */ + RTUINT128_INIT_C(0x12ab4009baf5e438, 0xbe4ee9a4e64d7f7e), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000b9f), + RTUINT128_INIT_C(0x00019b41a8e4cdfe, 0xd07a63e5a350a7c1), RTUINT128_INIT_C(0x0000000000000000, 0x000000000000039f) + }, + { /* i=3268; 127 / 117 */ + RTUINT128_INIT_C(0x166817a406f3262a, 0x8abbd1a93194fb6c), RTUINT128_INIT_C(0x00084c8462c0afc9, 0x0075e3d5d1c0596c), + RTUINT128_INIT_C(0x0000000000000000, 0x00000000000002b3), RTUINT128_INIT_C(0x00018e4d78d8aa9e, 0x4c85d78407639ce8) + }, + { /* i=3269; 34 / 26 */ + RTUINT128_INIT_C(0x0000000000000000, 0x00000000034c5732), RTUINT128_INIT_C(0x0000000000000000, 0x0000000001dca567), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000001), RTUINT128_INIT_C(0x0000000000000000, 0x00000000016fb1cb) + }, + { /* i=3270; 53 / 29 */ + RTUINT128_INIT_C(0x0000000000000000, 0x00067b659d3ae501), RTUINT128_INIT_C(0x0000000000000000, 0x0000000002530720), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000002c9ecf5), RTUINT128_INIT_C(0x0000000000000000, 0x0000000001139361) + }, + { /* i=3271; 106 / 56 */ + RTUINT128_INIT_C(0x0000014984f078e9, 0x4ba75719107aa170), RTUINT128_INIT_C(0x0000000000000000, 0x0078727581649326), + RTUINT128_INIT_C(0x0000000000000000, 0x0002bc5d71e550d1), RTUINT128_INIT_C(0x0000000000000000, 0x006dac0198649f6a) + }, + { /* i=3272; 123 / 95 */ + RTUINT128_INIT_C(0x07feb3c361e4f2d3, 0x21c595ab18f713c9), RTUINT128_INIT_C(0x000000001dc00c86, 0x1aacd09250095e3d), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000044cbd865), RTUINT128_INIT_C(0x000000000d21ccf8, 0x8a53e3f3af626db8) + }, + { /* i=3273; 54 / 14 */ + RTUINT128_INIT_C(0x0000000000000000, 0x0039a6035fee2c5b), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000002a9b), + RTUINT128_INIT_C(0x0000000000000000, 0x0000015a6344b2ce), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000001da1) + }, + { /* i=3274; 119 / 9 */ + RTUINT128_INIT_C(0x007b4b3bc7ecc5f2, 0x4ba8762cfa03d246), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000175), + RTUINT128_INIT_C(0x0000549eb3aad809, 0x9263f814b5dc523c), RTUINT128_INIT_C(0x0000000000000000, 0x00000000000000da) + }, + { /* i=3275; 106 / 100 */ + RTUINT128_INIT_C(0x000000609c77e842, 0x3fada50bf6931ff9), RTUINT128_INIT_C(0x00000007f42c647d, 0xa1aaec462d78633a), + RTUINT128_INIT_C(0x0000000000000000, 0x000000000000000c), RTUINT128_INIT_C(0x000000012a63325e, 0xabaa91c1d4ee7941) + }, + { /* i=3276; 127 / 87 */ + RTUINT128_INIT_C(0x3006e54ae093e830, 0x0f161520d1ee6261), RTUINT128_INIT_C(0x00000000004a5d0b, 0x553c6eba9770a55e), + RTUINT128_INIT_C(0x0000000000000000, 0x000000a555cee0d1), RTUINT128_INIT_C(0x00000000001501b1, 0xedd3912556a120a3) + }, + { /* i=3277; 116 / 127 */ + RTUINT128_INIT_C(0x0002fc57a99fc688, 0x7321a0c21cc98606), RTUINT128_INIT_C(0x69b89d814547a8f1, 0x672765413a691ebe), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x0002fc57a99fc688, 0x7321a0c21cc98606) + }, + { /* i=3278; 123 / 112 */ + RTUINT128_INIT_C(0x07cb4469229b3580, 0x57f6c1b18742a870), RTUINT128_INIT_C(0x0000f173bb21198e, 0xe4ce8c5e33fbc5c7), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000843), RTUINT128_INIT_C(0x0000754620250df4, 0x0185136a0e2fad5b) + }, + { /* i=3279; 113 / 10 */ + RTUINT128_INIT_C(0x0001d2f876280aa8, 0xb0a8bf30dda66b32), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000149), + RTUINT128_INIT_C(0x0000016b5b660e09, 0xd9a1953381101171), RTUINT128_INIT_C(0x0000000000000000, 0x00000000000000f9) + }, + { /* i=3280; 66 / 71 */ + RTUINT128_INIT_C(0x0000000000000001, 0x2aa97d0ef9f63d80), RTUINT128_INIT_C(0x000000000000007d, 0x91442b25033d5575), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x0000000000000001, 0x2aa97d0ef9f63d80) + }, + { /* i=3281; 86 / 22 */ + RTUINT128_INIT_C(0x00000000000801f9, 0x54ce10688e001431), RTUINT128_INIT_C(0x0000000000000000, 0x00000000000a29cb), + RTUINT128_INIT_C(0x0000000000000000, 0xc9b459a4c25cf450), RTUINT128_INIT_C(0x0000000000000000, 0x00000000000988c1) + }, + { /* i=3282; 114 / 5 */ + RTUINT128_INIT_C(0x00029c567bb2dfd3, 0x2cbafb2305f7d82c), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000018), + RTUINT128_INIT_C(0x00001bd8efd21ea8, 0xcc87ca76caea53ac), RTUINT128_INIT_C(0x0000000000000000, 0x000000000000000c) + }, + { /* i=3283; 113 / 119 */ + RTUINT128_INIT_C(0x00008117ab418f98, 0x32c14096d686397f), RTUINT128_INIT_C(0x007090c9cfb50a36, 0xba6125cfa9c97df3), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x00008117ab418f98, 0x32c14096d686397f) + }, + { /* i=3284; 19 / 19 */ + RTUINT128_INIT_C(0x0000000000000000, 0x00000000000642a0), RTUINT128_INIT_C(0x0000000000000000, 0x000000000007e947), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x0000000000000000, 0x00000000000642a0) + }, + { /* i=3285; 81 / 62 */ + RTUINT128_INIT_C(0x000000000001fa03, 0x300e1045194ab761), RTUINT128_INIT_C(0x0000000000000000, 0x056b8ab383e7d6e7), + RTUINT128_INIT_C(0x0000000000000000, 0x00000000005d5bd7), RTUINT128_INIT_C(0x0000000000000000, 0x0537d864d6461e60) + }, + { /* i=3286; 114 / 112 */ + RTUINT128_INIT_C(0x00032472fa4e1d9f, 0x36b8ab5b969c936a), RTUINT128_INIT_C(0x00003671dbd1b7de, 0x81765671323be150), + RTUINT128_INIT_C(0x0000000000000000, 0x000000000000000e), RTUINT128_INIT_C(0x00002a38f4d60f74, 0x223ff12ad756410a) + }, + { /* i=3287; 127 / 24 */ + RTUINT128_INIT_C(0x55ca2372dba1562d, 0x14bb3687f23b4606), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000d643eb), + RTUINT128_INIT_C(0x000000667fef1a20, 0xa9a272a8322c435a), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000bce468) + }, + { /* i=3288; 119 / 126 */ + RTUINT128_INIT_C(0x00280db8a9a3e0e5, 0x1c13c4f94dedd22f), RTUINT128_INIT_C(0x3d94ddb7eff1f3bd, 0xa88d9bc5d2748b1e), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x00280db8a9a3e0e5, 0x1c13c4f94dedd22f) + }, + { /* i=3289; 125 / 108 */ + RTUINT128_INIT_C(0x02d4d856c6d740a4, 0xcca818d83ea0bbd1), RTUINT128_INIT_C(0x00000199d495f35f, 0x0dc7ec9b2bb12cd7), + RTUINT128_INIT_C(0x0000000000000000, 0x000000000001c4c6), RTUINT128_INIT_C(0x00000003992930cb, 0x26451fafa06c7187) + }, + { /* i=3290; 116 / 78 */ + RTUINT128_INIT_C(0x0009b976ffd6c90c, 0x2e728391fa2f4d90), RTUINT128_INIT_C(0x000000000000130e, 0xddca05025b46f0dc), + RTUINT128_INIT_C(0x0000000000000000, 0x00000082a00e83e7), RTUINT128_INIT_C(0x0000000000000bc3, 0x93642599a3e3630c) + }, + { /* i=3291; 126 / 99 */ + RTUINT128_INIT_C(0x164e3b2f9ee12160, 0xfce0ceb092950f1d), RTUINT128_INIT_C(0x00000005bf9ed751, 0xeee7287453d355cd), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000003e156fd), RTUINT128_INIT_C(0x00000000adc12082, 0x4f9d98d0ebb96584) + }, + { /* i=3292; 93 / 28 */ + RTUINT128_INIT_C(0x000000000a665171, 0xc9f7b80f81767957), RTUINT128_INIT_C(0x0000000000000000, 0x000000000a678820), + RTUINT128_INIT_C(0x0000000000000000, 0xffe223baa964b8a7), RTUINT128_INIT_C(0x0000000000000000, 0x000000000195ac77) + }, + { /* i=3293; 124 / 14 */ + RTUINT128_INIT_C(0x039794fa7940a109, 0xea41c50c55407e79), RTUINT128_INIT_C(0x0000000000000000, 0x00000000000023be), + RTUINT128_INIT_C(0x000019ba6af21a17, 0xddceeefb9bd8fa40), RTUINT128_INIT_C(0x0000000000000000, 0x00000000000002f9) + }, + { /* i=3294; 68 / 61 */ + RTUINT128_INIT_C(0x0000000000000005, 0xc2a91613529bb443), RTUINT128_INIT_C(0x0000000000000000, 0x111793ea218f9ebe), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000056), RTUINT128_INIT_C(0x0000000000000000, 0x04bd656c0c5c606f) + }, + { /* i=3295; 69 / 65 */ + RTUINT128_INIT_C(0x0000000000000017, 0x55e60e8f52d51370), RTUINT128_INIT_C(0x0000000000000000, 0x765f1b628ca8e97a), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000032), RTUINT128_INIT_C(0x0000000000000000, 0x3752b54fd9d7799c) + }, + { /* i=3296; 118 / 7 */ + RTUINT128_INIT_C(0x0000e04a25ceacfa, 0x65c56ad03cec7676), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000002), + RTUINT128_INIT_C(0x0000702512e7567d, 0x32e2b5681e763b3b), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000) + }, + { /* i=3297; 78 / 48 */ + RTUINT128_INIT_C(0x0000000000003fc0, 0x490b7d26bce60c5f), RTUINT128_INIT_C(0x0000000000000000, 0x0000875dbcfce23e), + RTUINT128_INIT_C(0x0000000000000000, 0x00000000789061d4), RTUINT128_INIT_C(0x0000000000000000, 0x0000069e16e13307) + }, + { /* i=3298; 89 / 25 */ + RTUINT128_INIT_C(0x00000000008e1bd1, 0x36b98781c988cf3a), RTUINT128_INIT_C(0x0000000000000000, 0x00000000000da9e5), + RTUINT128_INIT_C(0x000000000000000a, 0x668683f20de86143), RTUINT128_INIT_C(0x0000000000000000, 0x00000000000d934b) + }, + { /* i=3299; 7 / 28 */ + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000053), RTUINT128_INIT_C(0x0000000000000000, 0x000000000798f6bf), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000053) + }, + { /* i=3300; 126 / 115 */ + RTUINT128_INIT_C(0x1c6de1f11cfd4b80, 0xdb43697492138e1c), RTUINT128_INIT_C(0x0003ae3173b4552b, 0xbd9ef7f9e4f47fc9), + RTUINT128_INIT_C(0x0000000000000000, 0x00000000000007b9), RTUINT128_INIT_C(0x0001a60a91578cb5, 0x7a9a609b6de4b6db) + }, + { /* i=3301; 119 / 81 */ + RTUINT128_INIT_C(0x0004feaffa94e44b, 0xf816c82ee37c5375), RTUINT128_INIT_C(0x000000000001289a, 0xcfe4da5bcb95cc37), + RTUINT128_INIT_C(0x0000000000000000, 0x000000044fa316ae), RTUINT128_INIT_C(0x00000000000095ac, 0x75296f09a419cc13) + }, + { /* i=3302; 92 / 50 */ + RTUINT128_INIT_C(0x000000000816f97a, 0xd17169ddb17a8929), RTUINT128_INIT_C(0x0000000000000000, 0x00001a0a2d1a0c27), + RTUINT128_INIT_C(0x0000000000000000, 0x00004f880187790c), RTUINT128_INIT_C(0x0000000000000000, 0x00000191b4f28855) + }, + { /* i=3303; 85 / 32 */ + RTUINT128_INIT_C(0x000000000010f674, 0xd70ba866a62452be), RTUINT128_INIT_C(0x0000000000000000, 0x000000000d2574b3), + RTUINT128_INIT_C(0x0000000000000000, 0x014a51453ff07b17), RTUINT128_INIT_C(0x0000000000000000, 0x0000000003e4d5a9) + }, + { /* i=3304; 124 / 79 */ + RTUINT128_INIT_C(0x0fa038876e0c8cd4, 0xe6cc59e459aa3016), RTUINT128_INIT_C(0x0000000000006ff8, 0xe1bfad4f205d9972), + RTUINT128_INIT_C(0x0000000000000000, 0x000023b9a1e3a070), RTUINT128_INIT_C(0x0000000000003a49, 0xb67c0929eeb9ce36) + }, + { /* i=3305; 125 / 20 */ + RTUINT128_INIT_C(0x084299dff4f62447, 0x481e29af5d48d9d4), RTUINT128_INIT_C(0x0000000000000000, 0x00000000000c588f), + RTUINT128_INIT_C(0x000000ab47782502, 0xb618eaa0faf53d6e), RTUINT128_INIT_C(0x0000000000000000, 0x000000000005b962) + }, + { /* i=3306; 116 / 104 */ + RTUINT128_INIT_C(0x000123e59663738d, 0xe4a7e9a8ccc4b93a), RTUINT128_INIT_C(0x000000158b7db62c, 0x13f774d64d3ee6ec), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000d8c), RTUINT128_INIT_C(0x00000007eb63966f, 0x6865228a5ca4742a) + }, + { /* i=3307; 60 / 55 */ + RTUINT128_INIT_C(0x0000000000000000, 0x0760678afadfbf78), RTUINT128_INIT_C(0x0000000000000000, 0x004a309012cbb400), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000019), RTUINT128_INIT_C(0x0000000000000000, 0x0021a97924fb2b78) + }, + { /* i=3308; 53 / 6 */ + RTUINT128_INIT_C(0x0000000000000000, 0x000347b0b13fd649), RTUINT128_INIT_C(0x0000000000000000, 0x000000000000003e), + RTUINT128_INIT_C(0x0000000000000000, 0x00000d8b1ba20fd7), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000037) + }, + { /* i=3309; 62 / 17 */ + RTUINT128_INIT_C(0x0000000000000000, 0x176d8c1889221257), RTUINT128_INIT_C(0x0000000000000000, 0x000000000001c69a), + RTUINT128_INIT_C(0x0000000000000000, 0x00000d3166d6a6e9), RTUINT128_INIT_C(0x0000000000000000, 0x000000000000742d) + }, + { /* i=3310; 67 / 46 */ + RTUINT128_INIT_C(0x0000000000000003, 0x1906b0d3b04e2a2b), RTUINT128_INIT_C(0x0000000000000000, 0x000035896b346638), + RTUINT128_INIT_C(0x0000000000000000, 0x00000000000ed00f), RTUINT128_INIT_C(0x0000000000000000, 0x000009ce3e1eace3) + }, + { /* i=3311; 118 / 77 */ + RTUINT128_INIT_C(0x000a1db79e6ff576, 0x8e3a96aaaebde4ec), RTUINT128_INIT_C(0x0000000000001c2d, 0x52d2393f62723114), + RTUINT128_INIT_C(0x0000000000000000, 0x0000005be8a47bb8), RTUINT128_INIT_C(0x0000000000000201, 0xe935fd117e46028c) + }, + { /* i=3312; 117 / 119 */ + RTUINT128_INIT_C(0x001b200986ede1b3, 0x2603db4a78ab2af9), RTUINT128_INIT_C(0x0020b3d1c53f5d2e, 0xe1aca742cb078149), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x001b200986ede1b3, 0x2603db4a78ab2af9) + }, + { /* i=3313; 35 / 11 */ + RTUINT128_INIT_C(0x0000000000000000, 0x000000076b4b42a2), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000162), + RTUINT128_INIT_C(0x0000000000000000, 0x00000000055d8030), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000042) + }, + { /* i=3314; 121 / 87 */ + RTUINT128_INIT_C(0x00e3a4c0f39ed737, 0x58924479b7500396), RTUINT128_INIT_C(0x0000000000462978, 0x5428ad8d5963295a), + RTUINT128_INIT_C(0x0000000000000000, 0x000000033e9a571e), RTUINT128_INIT_C(0x00000000000f935a, 0xf9fb9ecfde7f950a) + }, + { /* i=3315; 127 / 88 */ + RTUINT128_INIT_C(0x56ec7de714a28da0, 0x07de40bedd06a18e), RTUINT128_INIT_C(0x000000000009c17a, 0x8d7bb26bb1f7c17a), + RTUINT128_INIT_C(0x0000000000000000, 0x000008e8f49dab61), RTUINT128_INIT_C(0x000000000003a79a, 0xb39246260017d454) + }, + { /* i=3316; 70 / 42 */ + RTUINT128_INIT_C(0x000000000000001e, 0x9558c210b1776dc7), RTUINT128_INIT_C(0x0000000000000000, 0x00000381d2343514), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000008b86b39), RTUINT128_INIT_C(0x0000000000000000, 0x0000001e4b484053) + }, + { /* i=3317; 85 / 10 */ + RTUINT128_INIT_C(0x0000000000070ecf, 0x84e8961fa19dc086), RTUINT128_INIT_C(0x0000000000000000, 0x000000000000029c), + RTUINT128_INIT_C(0x00000000000002b4, 0x6e2fde800c1f472f), RTUINT128_INIT_C(0x0000000000000000, 0x00000000000001e2) + }, + { /* i=3318; 65 / 53 */ + RTUINT128_INIT_C(0x0000000000000001, 0x77fa977afb3f9b1a), RTUINT128_INIT_C(0x0000000000000000, 0x00184fa86b3dea8b), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000f77), RTUINT128_INIT_C(0x0000000000000000, 0x0002b1e880b96f7d) + }, + { /* i=3319; 114 / 119 */ + RTUINT128_INIT_C(0x000218daab245ae1, 0xc5f180ecaea12ead), RTUINT128_INIT_C(0x0070b27b9b2eea44, 0x85bcb75d8678b060), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x000218daab245ae1, 0xc5f180ecaea12ead) + }, + { /* i=3320; 127 / 56 */ + RTUINT128_INIT_C(0x6b416637e71df8df, 0x8059026732f3ef20), RTUINT128_INIT_C(0x0000000000000000, 0x0030b7da269021b4), + RTUINT128_INIT_C(0x0000000000000233, 0x98beb8845ee3a2ed), RTUINT128_INIT_C(0x0000000000000000, 0x002ae20c4f94d37c) + }, + { /* i=3321; 113 / 119 */ + RTUINT128_INIT_C(0x0001e7bee7bfc1f6, 0xa649dc875a2f6f31), RTUINT128_INIT_C(0x005b7478bba692f4, 0x1c10f4f55727c959), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x0001e7bee7bfc1f6, 0xa649dc875a2f6f31) + }, + { /* i=3322; 79 / 14 */ + RTUINT128_INIT_C(0x0000000000000507, 0xd22411fd990e1fad), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000001083), + RTUINT128_INIT_C(0x0000000000000000, 0x4dfe8e15cd584de4), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000401) + }, + { /* i=3323; 126 / 39 */ + RTUINT128_INIT_C(0x2947a2e0a04dcbcf, 0x712855dc28e52de2), RTUINT128_INIT_C(0x0000000000000000, 0x0000004586d1c8b4), + RTUINT128_INIT_C(0x000000000097fe7a, 0xe00b3f55809a860a), RTUINT128_INIT_C(0x0000000000000000, 0x00000042595d1eda) + }, + { /* i=3324; 66 / 26 */ + RTUINT128_INIT_C(0x0000000000000003, 0x4a258c6f7b7d1686), RTUINT128_INIT_C(0x0000000000000000, 0x00000000026f3ead), + RTUINT128_INIT_C(0x0000000000000000, 0x00000159ea29e5bd), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000960fcd) + }, + { /* i=3325; 126 / 52 */ + RTUINT128_INIT_C(0x3a8d354965383e14, 0x1b9f02418b21d2f5), RTUINT128_INIT_C(0x0000000000000000, 0x00002cff56d1239f), + RTUINT128_INIT_C(0x0000000000014d1c, 0xd4f13d155ed94422), RTUINT128_INIT_C(0x0000000000000000, 0x000003e1e21ddbd7) + }, + { /* i=3326; 121 / 45 */ + RTUINT128_INIT_C(0x002071dadd2202ce, 0x4f8c910dbd6818f2), RTUINT128_INIT_C(0x0000000000000000, 0x000018a23fea73aa), + RTUINT128_INIT_C(0x0000000000000151, 0x2c5bd88fc7e81322), RTUINT128_INIT_C(0x0000000000000000, 0x0000086ae19f1e5e) + }, + { /* i=3327; 125 / 117 */ + RTUINT128_INIT_C(0x12143a25e29c26c4, 0x521ef798ef314e9e), RTUINT128_INIT_C(0x000ab2341bcb233e, 0x3f8738349e7901e4), + RTUINT128_INIT_C(0x0000000000000000, 0x00000000000001b0), RTUINT128_INIT_C(0x00078236fbd0adb9, 0x1df01ecd82fe1dde) + }, + { /* i=3328; 8 / 13 */ + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000080), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000be5), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000080) + }, + { /* i=3329; 34 / 11 */ + RTUINT128_INIT_C(0x0000000000000000, 0x000000029df216e8), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000790), + RTUINT128_INIT_C(0x0000000000000000, 0x000000000058967d), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000598) + }, + { /* i=3330; 85 / 1 */ + RTUINT128_INIT_C(0x000000000014bbec, 0xa99b44ce4d0e2bea), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000001), + RTUINT128_INIT_C(0x000000000014bbec, 0xa99b44ce4d0e2bea), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000) + }, + { /* i=3331; 44 / 16 */ + RTUINT128_INIT_C(0x0000000000000000, 0x00000569ea082053), RTUINT128_INIT_C(0x0000000000000000, 0x000000000000edf8), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000005d2ed4f), RTUINT128_INIT_C(0x0000000000000000, 0x00000000000018cb) + }, + { /* i=3332; 101 / 55 */ + RTUINT128_INIT_C(0x00000007b67a58e9, 0xb34d23ec1d62ffc7), RTUINT128_INIT_C(0x0000000000000000, 0x002762e47c3855cf), + RTUINT128_INIT_C(0x0000000000000000, 0x000032218ed2395a), RTUINT128_INIT_C(0x0000000000000000, 0x0014dc71b0abbe01) + }, + { /* i=3333; 91 / 11 */ + RTUINT128_INIT_C(0x00000000026a22da, 0xb578fe1c632f53c0), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000139), + RTUINT128_INIT_C(0x000000000001f991, 0x772c8d7d3a631db6), RTUINT128_INIT_C(0x0000000000000000, 0x000000000000003a) + }, + { /* i=3334; 106 / 95 */ + RTUINT128_INIT_C(0x000001e9f68b3fc0, 0xac78fe64a409cf24), RTUINT128_INIT_C(0x00000000362dcafd, 0xd7880187c8a58e93), + RTUINT128_INIT_C(0x0000000000000000, 0x000000000000090b), RTUINT128_INIT_C(0x0000000006709a44, 0xa193278132e983d3) + }, + { /* i=3335; 123 / 41 */ + RTUINT128_INIT_C(0x032c1afe58c60ebe, 0x8156e6d59a3fe177), RTUINT128_INIT_C(0x0000000000000000, 0x0000009e4ec198f4), + RTUINT128_INIT_C(0x0000000000052142, 0x6609b3edbfd6cace), RTUINT128_INIT_C(0x0000000000000000, 0x000000758fce451f) + }, + { /* i=3336; 96 / 30 */ + RTUINT128_INIT_C(0x00000000856e2198, 0x936dfd9ae7386f97), RTUINT128_INIT_C(0x0000000000000000, 0x0000000033ec74ad), + RTUINT128_INIT_C(0x0000000000000002, 0x91da5cb2bf23dd8d), RTUINT128_INIT_C(0x0000000000000000, 0x00000000269bd34e) + }, + { /* i=3337; 35 / 6 */ + RTUINT128_INIT_C(0x0000000000000000, 0x0000000355629188), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000022), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000019197cc0), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000008) + }, + { /* i=3338; 127 / 99 */ + RTUINT128_INIT_C(0x752eb43f257235c9, 0x9a23edd588d48dde), RTUINT128_INIT_C(0x00000001e8003b45, 0x5ceb06906b40da2d), + RTUINT128_INIT_C(0x0000000000000000, 0x000000003d78fef5), RTUINT128_INIT_C(0x0000000092c31b7a, 0xff72a0d18d331acd) + }, + { /* i=3339; 16 / 2 */ + RTUINT128_INIT_C(0x0000000000000000, 0x000000000000f933), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000001), + RTUINT128_INIT_C(0x0000000000000000, 0x000000000000f933), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000) + }, + { /* i=3340; 90 / 71 */ + RTUINT128_INIT_C(0x0000000001086ce4, 0x3cf884a6f12ca492), RTUINT128_INIT_C(0x0000000000000000, 0x52387ad886e21522), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000003374ed4), RTUINT128_INIT_C(0x0000000000000000, 0x02ab2f6c6b34c86a) + }, + { /* i=3341; 88 / 21 */ + RTUINT128_INIT_C(0x00000000005f9330, 0x46bfe21bbec784c5), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000087923), + RTUINT128_INIT_C(0x000000000000000b, 0x4799ba735bbf1bee), RTUINT128_INIT_C(0x0000000000000000, 0x000000000003353b) + }, + { /* i=3342; 119 / 111 */ + RTUINT128_INIT_C(0x0044e81e8968ea20, 0x175c694f33cac23e), RTUINT128_INIT_C(0x0000575672608d41, 0x32ecbc8f382e15a5), + RTUINT128_INIT_C(0x0000000000000000, 0x00000000000000c9), RTUINT128_INIT_C(0x0000553ebb9a01ef, 0x1b7c5cdc179bc3b1) + }, + { /* i=3343; 111 / 29 */ + RTUINT128_INIT_C(0x0000324901a90f5a, 0x1a1227253faa6f54), RTUINT128_INIT_C(0x0000000000000000, 0x000000001326cbbe), + RTUINT128_INIT_C(0x000000000002a02a, 0x5683ac34c9810070), RTUINT128_INIT_C(0x0000000000000000, 0x0000000005f34c34) + }, + { /* i=3344; 16 / 19 */ + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000009ace), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000065edf), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000009ace) + }, + { /* i=3345; 123 / 49 */ + RTUINT128_INIT_C(0x060d0acd64851c17, 0x9557ceb30c7d3fa0), RTUINT128_INIT_C(0x0000000000000000, 0x00000418c062d981), + RTUINT128_INIT_C(0x0000000000017a1e, 0xef6f59b14204d84b), RTUINT128_INIT_C(0x0000000000000000, 0x0000004f9ffeaed5) + }, + { /* i=3346; 124 / 74 */ + RTUINT128_INIT_C(0x065fe8f24d822103, 0xa4de0de894f0ffb3), RTUINT128_INIT_C(0x0000000000000124, 0x3651242206d1b0d9), + RTUINT128_INIT_C(0x0000000000000000, 0x000595ad3de8313f), RTUINT128_INIT_C(0x0000000000000080, 0xc8a5b169cad4f14c) + }, + { /* i=3347; 121 / 104 */ + RTUINT128_INIT_C(0x014978b8cfef1ea5, 0x79571b7a5753b6cf), RTUINT128_INIT_C(0x000000fc11b6684b, 0x6d45c736065299ef), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000014e9c), RTUINT128_INIT_C(0x0000000208b5281d, 0xd8e93a4eb828172b) + }, + { /* i=3348; 128 / 85 */ + RTUINT128_INIT_C(0x63b2419b2262e85f, 0x9d27e83662ef640e), RTUINT128_INIT_C(0x000000000019556e, 0xfd35fac451e9dd21), + RTUINT128_INIT_C(0x0000000000000000, 0x000003ef7121702e), RTUINT128_INIT_C(0x00000000000c1dc2, 0x4d5b568947ea3820) + }, + { /* i=3349; 103 / 4 */ + RTUINT128_INIT_C(0x0000003581b0039a, 0x4b642398b96a93cb), RTUINT128_INIT_C(0x0000000000000000, 0x000000000000000b), + RTUINT128_INIT_C(0x00000004dd3e8bf6, 0xc1091a823f66c79e), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000001) + }, + { /* i=3350; 79 / 59 */ + RTUINT128_INIT_C(0x0000000000000c5b, 0xaf31f52b8347638a), RTUINT128_INIT_C(0x0000000000000000, 0x03d74754d02c861e), + RTUINT128_INIT_C(0x0000000000000000, 0x00000000000337ad), RTUINT128_INIT_C(0x0000000000000000, 0x0065179bb2064f44) + }, + { /* i=3351; 28 / 12 */ + RTUINT128_INIT_C(0x0000000000000000, 0x00000000056e03e2), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000a09), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000008a83), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000747) + }, + { /* i=3352; 128 / 109 */ + RTUINT128_INIT_C(0x54224e476c69b2b1, 0x70741a8e95769c7a), RTUINT128_INIT_C(0x000000ff0781bfb4, 0xc1968e6de242fed9), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000547448), RTUINT128_INIT_C(0x000000939dbe5abc, 0x09840324f7f09b72) + }, + { /* i=3353; 61 / 5 */ + RTUINT128_INIT_C(0x0000000000000000, 0x13022001e6492d02), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000007), + RTUINT128_INIT_C(0x0000000000000000, 0x02b72924d7c14f92), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000004) + }, + { /* i=3354; 114 / 109 */ + RTUINT128_INIT_C(0x000368cb47535494, 0x34a5de097eccca7c), RTUINT128_INIT_C(0x00001c73633d8509, 0x8df54bf99c9dfc74), + RTUINT128_INIT_C(0x0000000000000000, 0x000000000000001e), RTUINT128_INIT_C(0x00001345a61dbd75, 0x91e6f6c9244934e4) + }, + { /* i=3355; 115 / 104 */ + RTUINT128_INIT_C(0x000461f9da37ba92, 0x5c7abfde01e1f191), RTUINT128_INIT_C(0x000000bcbac391ff, 0xe0516e398d9393a2), + RTUINT128_INIT_C(0x0000000000000000, 0x00000000000005f1), RTUINT128_INIT_C(0x000000a83641494e, 0x98aadbebd811cc0f) + }, + { /* i=3356; 118 / 20 */ + RTUINT128_INIT_C(0x0006795ffc2dfd4f, 0x0245dc1a86c06142), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000080575), + RTUINT128_INIT_C(0x00000000ce9f0e46, 0xa2bb1f64719f4f8c), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000034a46) + }, + { /* i=3357; 117 / 40 */ + RTUINT128_INIT_C(0x001cf772046a266e, 0x5eab8a328c8cb2a6), RTUINT128_INIT_C(0x0000000000000000, 0x00000077fba502ab), + RTUINT128_INIT_C(0x0000000000003dcd, 0xdc295c16113421ad), RTUINT128_INIT_C(0x0000000000000000, 0x0000004952f5da17) + }, + { /* i=3358; 80 / 5 */ + RTUINT128_INIT_C(0x000000000000607f, 0xdc39df3c5c5eeeaf), RTUINT128_INIT_C(0x0000000000000000, 0x000000000000000a), + RTUINT128_INIT_C(0x00000000000009a6, 0x62d29652d6097e44), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000007) + }, + { /* i=3359; 121 / 37 */ + RTUINT128_INIT_C(0x01f3639172f081fd, 0x7578dbfcd74cf2f8), RTUINT128_INIT_C(0x0000000000000000, 0x0000000f21864dbd), + RTUINT128_INIT_C(0x0000000000210123, 0xf247638ef8ba68a3), RTUINT128_INIT_C(0x0000000000000000, 0x000000025be2aba1) + }, + { /* i=3360; 64 / 21 */ + RTUINT128_INIT_C(0x0000000000000000, 0x0b9748ee85a22a44), RTUINT128_INIT_C(0x0000000000000000, 0x00000000001ec802), + RTUINT128_INIT_C(0x0000000000000000, 0x00000060662559f7), RTUINT128_INIT_C(0x0000000000000000, 0x00000000001c7e56) + }, + { /* i=3361; 112 / 118 */ + RTUINT128_INIT_C(0x000093761d01dd9c, 0x0f52703ebd90b71e), RTUINT128_INIT_C(0x00115f80ccd38fa2, 0x4aa0afe1434def1d), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x000093761d01dd9c, 0x0f52703ebd90b71e) + }, + { /* i=3362; 125 / 123 */ + RTUINT128_INIT_C(0x0dc112e6037aa94a, 0xa3b8f8ceaac62723), RTUINT128_INIT_C(0x00c5dc93bd24ee7b, 0x5c3fa92fe456d810), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000011), RTUINT128_INIT_C(0x009d6d167406d319, 0x837ebca08101ce13) + }, + { /* i=3363; 117 / 97 */ + RTUINT128_INIT_C(0x000bc994f3df2064, 0xf240819fa9ae4989), RTUINT128_INIT_C(0x00000001c02a20c2, 0x6a37ba0b9ed16be6), + RTUINT128_INIT_C(0x0000000000000000, 0x000000000006bbb3), RTUINT128_INIT_C(0x000000000bedb78f, 0x9c1d35941c0ad5b7) + }, + { /* i=3364; 24 / 21 */ + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000667df7), RTUINT128_INIT_C(0x0000000000000000, 0x00000000001a0774), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000003), RTUINT128_INIT_C(0x0000000000000000, 0x000000000018679b) + }, + { /* i=3365; 123 / 109 */ + RTUINT128_INIT_C(0x03436d8cd6ab549c, 0xe4a3cc402224233d), RTUINT128_INIT_C(0x0000153eef7c85e3, 0xb27a490b17914a02), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000002752), RTUINT128_INIT_C(0x000008e82862c17d, 0x1857b61b73542099) + }, + { /* i=3366; 11 / 10 */ + RTUINT128_INIT_C(0x0000000000000000, 0x00000000000006cb), RTUINT128_INIT_C(0x0000000000000000, 0x00000000000003e5), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000001), RTUINT128_INIT_C(0x0000000000000000, 0x00000000000002e6) + }, + { /* i=3367; 125 / 126 */ + RTUINT128_INIT_C(0x03347dd08f4947dc, 0x53813e0215255fb0), RTUINT128_INIT_C(0x2c97df0129dec691, 0x238ec7f9e77d8194), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x03347dd08f4947dc, 0x53813e0215255fb0) + }, + { /* i=3368; 126 / 84 */ + RTUINT128_INIT_C(0x33ef7bc90cbda747, 0x4b14a34da903e25a), RTUINT128_INIT_C(0x0000000000036c1a, 0x7dee043c2fb0bf22), + RTUINT128_INIT_C(0x0000000000000000, 0x00000f2cfaaad183), RTUINT128_INIT_C(0x0000000000016394, 0x64b537b3d4f351f4) + }, + { /* i=3369; 125 / 63 */ + RTUINT128_INIT_C(0x17567a7fda9a8b01, 0x1b9b69b7fc6e0fd2), RTUINT128_INIT_C(0x0000000000000000, 0x6e8936c32559ee3f), + RTUINT128_INIT_C(0x0000000000000000, 0x360cd1a25a69a228), RTUINT128_INIT_C(0x0000000000000000, 0x6cf93b145fc5f7fa) + }, + { /* i=3370; 122 / 123 */ + RTUINT128_INIT_C(0x02766def14bf68d9, 0x39c33bb3b598285d), RTUINT128_INIT_C(0x0581e2bde1d520c4, 0x1324acf200955532), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x02766def14bf68d9, 0x39c33bb3b598285d) + }, + { /* i=3371; 120 / 98 */ + RTUINT128_INIT_C(0x00f40ace93985f1f, 0xa5ecb462dc07c309), RTUINT128_INIT_C(0x0000000006d4dc46, 0xddeb947abc78c30d), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000023b92074), RTUINT128_INIT_C(0x00000000000e1eba, 0x90275f46a188c125) + }, + { /* i=3372; 117 / 24 */ + RTUINT128_INIT_C(0x00166034abc96cfd, 0x339ea5bdf4d321d4), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000ea94e2), + RTUINT128_INIT_C(0x00000000186b37ef, 0x5db73dd8b89f612d), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000cf541a) + }, + { /* i=3373; 88 / 2 */ + RTUINT128_INIT_C(0x0000000000ebbb69, 0x78e27a146d38babb), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000003), + RTUINT128_INIT_C(0x00000000004e93cd, 0xd2f628b179bd9393), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000002) + }, + { /* i=3374; 89 / 31 */ + RTUINT128_INIT_C(0x00000000010364e9, 0x1c2fe11ab7b781a5), RTUINT128_INIT_C(0x0000000000000000, 0x000000005008fb6e), + RTUINT128_INIT_C(0x0000000000000000, 0x033db28edd4088dd), RTUINT128_INIT_C(0x0000000000000000, 0x0000000008e403af) + }, + { /* i=3375; 123 / 94 */ + RTUINT128_INIT_C(0x05d09a3ea109c575, 0xa20c0ac658471714), RTUINT128_INIT_C(0x000000000dee2e8b, 0xedb658d118b731f0), + RTUINT128_INIT_C(0x0000000000000000, 0x000000006adc29f8), RTUINT128_INIT_C(0x000000000c2a7b5a, 0x3d3f6b24c58f4694) + }, + { /* i=3376; 117 / 3 */ + RTUINT128_INIT_C(0x0003978a381efe72, 0x308c21c7f1990af7), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000006), + RTUINT128_INIT_C(0x00009941b4052a68, 0x5d6cb04bfd9981d3), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000005) + }, + { /* i=3377; 123 / 32 */ + RTUINT128_INIT_C(0x02911a75d6279979, 0x7595e625d946fc16), RTUINT128_INIT_C(0x0000000000000000, 0x000000005cbdd73f), + RTUINT128_INIT_C(0x000000000715d750, 0x1b4ba427066432a6), RTUINT128_INIT_C(0x0000000000000000, 0x0000000013871b3c) + }, + { /* i=3378; 112 / 33 */ + RTUINT128_INIT_C(0x00002f165d8c7faf, 0x4e4661aa04338142), RTUINT128_INIT_C(0x0000000000000000, 0x00000000a67c96aa), + RTUINT128_INIT_C(0x0000000000004867, 0x85d955310fd6f641), RTUINT128_INIT_C(0x0000000000000000, 0x000000001dade418) + }, + { /* i=3379; 61 / 76 */ + RTUINT128_INIT_C(0x0000000000000000, 0x1a3b065717a5236f), RTUINT128_INIT_C(0x000000000000015a, 0x6046289e84e87e68), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x0000000000000000, 0x1a3b065717a5236f) + }, + { /* i=3380; 124 / 69 */ + RTUINT128_INIT_C(0x07fc08b469237d1f, 0xc80efa5287116e11), RTUINT128_INIT_C(0x000000000000001e, 0xca8ab6f0393de12e), + RTUINT128_INIT_C(0x0000000000000000, 0x0042623d94aed283), RTUINT128_INIT_C(0x0000000000000011, 0xbed55c3cd46b7787) + }, + { /* i=3381; 67 / 3 */ + RTUINT128_INIT_C(0x0000000000000005, 0x766c07bb418f26d1), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000004), + RTUINT128_INIT_C(0x0000000000000001, 0x5d9b01eed063c9b4), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000001) + }, + { /* i=3382; 115 / 13 */ + RTUINT128_INIT_C(0x000172a8124b8a9d, 0xf894b723fbf0861d), RTUINT128_INIT_C(0x0000000000000000, 0x00000000000007dd), + RTUINT128_INIT_C(0x0000002f233c71e3, 0x9775b5913ff75832), RTUINT128_INIT_C(0x0000000000000000, 0x00000000000004f3) + }, + { /* i=3383; 67 / 37 */ + RTUINT128_INIT_C(0x0000000000000001, 0x54ca97365dc0241d), RTUINT128_INIT_C(0x0000000000000000, 0x00000012275f395b), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000012c5bfbe), RTUINT128_INIT_C(0x0000000000000000, 0x0000000d9041ad93) + }, + { /* i=3384; 124 / 121 */ + RTUINT128_INIT_C(0x0d94c9c516e48692, 0xe022d185c95c922c), RTUINT128_INIT_C(0x0118945b47c2e4cc, 0x6100f9d99db074de), + RTUINT128_INIT_C(0x0000000000000000, 0x000000000000000c), RTUINT128_INIT_C(0x006dd57db9c1ccfe, 0x54171b52651717c4) + }, + { /* i=3385; 106 / 44 */ + RTUINT128_INIT_C(0x00000058ec686a29, 0xd3b0fee20aa04d30), RTUINT128_INIT_C(0x0000000000000000, 0x0000014a951f34f7), + RTUINT128_INIT_C(0x0000000000000000, 0x44dc8b5eb6c1bf23), RTUINT128_INIT_C(0x0000000000000000, 0x0000008cd6a0c66b) + }, + { /* i=3386; 66 / 14 */ + RTUINT128_INIT_C(0x0000000000000000, 0xf5d1592fc851a2cc), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000001623), + RTUINT128_INIT_C(0x0000000000000000, 0x000b1ac235ed7e3e), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000c52) + }, + { /* i=3387; 125 / 81 */ + RTUINT128_INIT_C(0x1a855c1f29e7ec2f, 0x1a852f191efdfcf7), RTUINT128_INIT_C(0x000000000001cb35, 0x7870b97531e9cdd5), + RTUINT128_INIT_C(0x0000000000000000, 0x00000ec8ef956589), RTUINT128_INIT_C(0x0000000000007103, 0x0a4cea0982b0ccfa) + }, + { /* i=3388; 113 / 34 */ + RTUINT128_INIT_C(0x00001bc133324874, 0x64a2f6bee7343af6), RTUINT128_INIT_C(0x0000000000000000, 0x000000019f5f5243), + RTUINT128_INIT_C(0x000000000000111b, 0x09a9fbcea21eaa79), RTUINT128_INIT_C(0x0000000000000000, 0x000000013cabdb4b) + }, + { /* i=3389; 87 / 21 */ + RTUINT128_INIT_C(0x0000000000739002, 0x551971380aa58979), RTUINT128_INIT_C(0x0000000000000000, 0x00000000001c095f), + RTUINT128_INIT_C(0x0000000000000004, 0x1f31371a80910b43), RTUINT128_INIT_C(0x0000000000000000, 0x000000000019009c) + }, + { /* i=3390; 42 / 25 */ + RTUINT128_INIT_C(0x0000000000000000, 0x00000240af95cc1c), RTUINT128_INIT_C(0x0000000000000000, 0x00000000002a19d2), + RTUINT128_INIT_C(0x0000000000000000, 0x00000000000db29d), RTUINT128_INIT_C(0x0000000000000000, 0x000000000025f252) + }, + { /* i=3391; 66 / 9 */ + RTUINT128_INIT_C(0x0000000000000000, 0x3dc71dcaeb21d713), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000054), + RTUINT128_INIT_C(0x0000000000000000, 0x00bc46732d77428f), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000027) + }, + { /* i=3392; 87 / 24 */ + RTUINT128_INIT_C(0x000000000034ad20, 0xff5d04f8e36a00db), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000f17c17), + RTUINT128_INIT_C(0x0000000000000000, 0x37d7b2fd1e191fe1), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000e627a4) + }, + { /* i=3393; 91 / 100 */ + RTUINT128_INIT_C(0x0000000000b6d7db, 0x66c99f2fed8d2058), RTUINT128_INIT_C(0x0000000cd6d9f93c, 0x2fd727b1e4438c4d), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x0000000000b6d7db, 0x66c99f2fed8d2058) + }, + { /* i=3394; 119 / 89 */ + RTUINT128_INIT_C(0x0056b41ff0747023, 0x42767b325e8dec6f), RTUINT128_INIT_C(0x0000000001b79953, 0xdc53b6d656b64b1b), + RTUINT128_INIT_C(0x0000000000000000, 0x00000000327de41a), RTUINT128_INIT_C(0x0000000000453ece, 0x2f87128542f73fb1) + }, + { /* i=3395; 105 / 34 */ + RTUINT128_INIT_C(0x0000004b776cdeac, 0xcbb365c63cbbcf0d), RTUINT128_INIT_C(0x0000000000000000, 0x00000003d5336bb8), + RTUINT128_INIT_C(0x0000000000000013, 0xb087ce98a8aa0392), RTUINT128_INIT_C(0x0000000000000000, 0x00000000c2f5381d) + }, + { /* i=3396; 113 / 31 */ + RTUINT128_INIT_C(0x00008f27a22dc046, 0x50a5d8e8d71c559f), RTUINT128_INIT_C(0x0000000000000000, 0x000000001b26bf34), + RTUINT128_INIT_C(0x00000000000545c0, 0xde360c2fd51cec12), RTUINT128_INIT_C(0x0000000000000000, 0x00000000086ef3f7) + }, + { /* i=3397; 115 / 78 */ + RTUINT128_INIT_C(0x00077e577ab16ef3, 0x5560ff7f29dc5dc3), RTUINT128_INIT_C(0x0000000000000b58, 0x00be9c77eff17959), + RTUINT128_INIT_C(0x0000000000000000, 0x000000a91c1ebf0c), RTUINT128_INIT_C(0x00000000000003a4, 0x3afe8a87cc934697) + }, + { /* i=3398; 123 / 76 */ + RTUINT128_INIT_C(0x051fad0a00c2ffda, 0x342b369e6dc453e2), RTUINT128_INIT_C(0x0000000000000549, 0x986cb9e470aad1c0), + RTUINT128_INIT_C(0x0000000000000000, 0x0000f8126aa8af6d), RTUINT128_INIT_C(0x00000000000004c9, 0xff077ce289a6c522) + }, + { /* i=3399; 122 / 127 */ + RTUINT128_INIT_C(0x00d655734f7780f4, 0x5bcc538711a9b1fb), RTUINT128_INIT_C(0x3c272478421b1a14, 0x6d74db6a9bafd5d6), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x00d655734f7780f4, 0x5bcc538711a9b1fb) + }, + { /* i=3400; 94 / 26 */ + RTUINT128_INIT_C(0x000000000d8d5d62, 0x16213be2f6d9c42f), RTUINT128_INIT_C(0x0000000000000000, 0x00000000006ba100), + RTUINT128_INIT_C(0x0000000000000020, 0x3c08adc3d2bb77c7), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000589d2f) + }, + { /* i=3401; 123 / 84 */ + RTUINT128_INIT_C(0x001ffbb596b1d8d3, 0x8616d36510a131ed), RTUINT128_INIT_C(0x000000000002d164, 0xbc8c5b296e7e03d4), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000b598fe30f), RTUINT128_INIT_C(0x00000000000137db, 0xf20f0d29026dfc81) + }, + { /* i=3402; 47 / 45 */ + RTUINT128_INIT_C(0x0000000000000000, 0x00002cb2a69ab909), RTUINT128_INIT_C(0x0000000000000000, 0x00000f2c393ac6df), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000002), RTUINT128_INIT_C(0x0000000000000000, 0x00000e5a34252b4b) + }, + { /* i=3403; 123 / 80 */ + RTUINT128_INIT_C(0x04f1c1c0713e10d2, 0x4c04de824ae430aa), RTUINT128_INIT_C(0x000000000000510e, 0x83f03a0093ba70a9), + RTUINT128_INIT_C(0x0000000000000000, 0x00000f9d9e4a3230), RTUINT128_INIT_C(0x0000000000000614, 0xfe5d1d7a4f140efa) + }, + { /* i=3404; 69 / 23 */ + RTUINT128_INIT_C(0x0000000000000017, 0x8d2c17b4eef55d32), RTUINT128_INIT_C(0x0000000000000000, 0x00000000005d04f4), + RTUINT128_INIT_C(0x0000000000000000, 0x000040d0faa1540a), RTUINT128_INIT_C(0x0000000000000000, 0x00000000003f1baa) + }, + { /* i=3405; 8 / 5 */ + RTUINT128_INIT_C(0x0000000000000000, 0x00000000000000e6), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000008), + RTUINT128_INIT_C(0x0000000000000000, 0x000000000000001c), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000006) + }, + { /* i=3406; 95 / 41 */ + RTUINT128_INIT_C(0x0000000024539be4, 0x6ed0d433388991eb), RTUINT128_INIT_C(0x0000000000000000, 0x000000c0b903a97e), + RTUINT128_INIT_C(0x0000000000000000, 0x003040fafdca6e85), RTUINT128_INIT_C(0x0000000000000000, 0x0000002243625f75) + }, + { /* i=3407; 125 / 4 */ + RTUINT128_INIT_C(0x06559e4b49bbb212, 0x5371848383755e90), RTUINT128_INIT_C(0x0000000000000000, 0x000000000000000d), + RTUINT128_INIT_C(0x007cbd6840bfab3c, 0x7c92940a1dcdf394), RTUINT128_INIT_C(0x0000000000000000, 0x000000000000000c) + }, + { /* i=3408; 92 / 54 */ + RTUINT128_INIT_C(0x000000000176677e, 0xf6e26f90f457ff00), RTUINT128_INIT_C(0x0000000000000000, 0x00241fe0d7ae50c9), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000a5d40b776), RTUINT128_INIT_C(0x0000000000000000, 0x00129cf8b6ff135a) + }, + { /* i=3409; 14 / 15 */ + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000de4), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000006a61), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000de4) + }, + { /* i=3410; 114 / 116 */ + RTUINT128_INIT_C(0x00027f332b30836d, 0x2038a3202adb8414), RTUINT128_INIT_C(0x000962a3e97bd949, 0xf8c48c46f1e53258), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x00027f332b30836d, 0x2038a3202adb8414) + }, + { /* i=3411; 115 / 34 */ + RTUINT128_INIT_C(0x00073fbecb7500d8, 0x239addd6609c5413), RTUINT128_INIT_C(0x0000000000000000, 0x0000000068a74e86), + RTUINT128_INIT_C(0x000000000011bb76, 0x50ec677bade8c804), RTUINT128_INIT_C(0x0000000000000000, 0x00000000513669fb) + }, + { /* i=3412; 122 / 107 */ + RTUINT128_INIT_C(0x00be89ec5a555650, 0x9c3aa4296b52999a), RTUINT128_INIT_C(0x00000794788e7d9a, 0x84cbc9ec4d936893), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000001923), RTUINT128_INIT_C(0x000000d9f4961338, 0x8da5f5476af4f281) + }, + { /* i=3413; 57 / 7 */ + RTUINT128_INIT_C(0x0000000000000000, 0x01ffe93a6c3b1b8e), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000058), + RTUINT128_INIT_C(0x0000000000000000, 0x0005d1321e522050), RTUINT128_INIT_C(0x0000000000000000, 0x000000000000000e) + }, + { /* i=3414; 40 / 10 */ + RTUINT128_INIT_C(0x0000000000000000, 0x000000e1b68198ea), RTUINT128_INIT_C(0x0000000000000000, 0x000000000000023d), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000064d791ea), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000028) + }, + { /* i=3415; 99 / 13 */ + RTUINT128_INIT_C(0x00000000a61cca6c, 0x212856a74a4fdeba), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000001e43), + RTUINT128_INIT_C(0x0000000000057d3b, 0xdbc972a4fb83f58d), RTUINT128_INIT_C(0x0000000000000000, 0x00000000000014d3) + }, + { /* i=3416; 113 / 82 */ + RTUINT128_INIT_C(0x0001d9cd53a807bf, 0x5bd8067ba9347265), RTUINT128_INIT_C(0x0000000000036936, 0xe9ebdb60ba7700b7), + RTUINT128_INIT_C(0x0000000000000000, 0x000000008ae785fb), RTUINT128_INIT_C(0x0000000000001f4b, 0x5fd24600b806abf8) + }, + { /* i=3417; 123 / 111 */ + RTUINT128_INIT_C(0x06f616fb7ff7f7a2, 0x883a643b69ef0204), RTUINT128_INIT_C(0x00003be86de1877e, 0x3c21d3567eb8b5da), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000001dbf), RTUINT128_INIT_C(0x0000101ef85a93a3, 0xd60cea57f185a25e) + }, + { /* i=3418; 120 / 91 */ + RTUINT128_INIT_C(0x003304c08463fadb, 0xd3a7a644c5d77f86), RTUINT128_INIT_C(0x00000000060fc5d7, 0x1033e73961000708), + RTUINT128_INIT_C(0x0000000000000000, 0x00000000086aaa8f), RTUINT128_INIT_C(0x0000000004a5523f, 0xc653389268d8420e) + }, + { /* i=3419; 125 / 97 */ + RTUINT128_INIT_C(0x0751353e608f1ab2, 0xcad08910faf14fe4), RTUINT128_INIT_C(0x000000003ff61990, 0xae60e68ab2d8f304), + RTUINT128_INIT_C(0x0000000000000000, 0x000000001d495cbd), RTUINT128_INIT_C(0x0000000008ab8877, 0xc69ce900394c75f0) + }, + { /* i=3420; 123 / 113 */ + RTUINT128_INIT_C(0x01568f69499ce56e, 0x573e01f702164a11), RTUINT128_INIT_C(0x0001602787f887d9, 0x309686ad833684c9), + RTUINT128_INIT_C(0x0000000000000000, 0x00000000000000f9), RTUINT128_INIT_C(0x000008f608e0c32e, 0x14d50332620f2290) + }, + { /* i=3421; 126 / 74 */ + RTUINT128_INIT_C(0x33f05412ef7be9bd, 0x71480fc17640d692), RTUINT128_INIT_C(0x0000000000000011, 0x9491bb10ec5bc49d), + RTUINT128_INIT_C(0x0000000000000000, 0x02f4515311dd659a), RTUINT128_INIT_C(0x000000000000000b, 0xaae74b24e9f19f20) + }, + { /* i=3422; 123 / 55 */ + RTUINT128_INIT_C(0x031293d490c8ba30, 0x21c1249353eb7403), RTUINT128_INIT_C(0x0000000000000000, 0x006256991b29b0cf), + RTUINT128_INIT_C(0x0000000000000007, 0xffaa362b572bdc38), RTUINT128_INIT_C(0x0000000000000000, 0x001d87e18315e2bb) + }, + { /* i=3423; 89 / 42 */ + RTUINT128_INIT_C(0x0000000000f62ed4, 0x7ff86a81556dd57e), RTUINT128_INIT_C(0x0000000000000000, 0x000003991ccb683f), + RTUINT128_INIT_C(0x0000000000000000, 0x0000446b9b7b12a7), RTUINT128_INIT_C(0x0000000000000000, 0x0000016b04236665) + }, + { /* i=3424; 42 / 93 */ + RTUINT128_INIT_C(0x0000000000000000, 0x000001259dc3d8c3), RTUINT128_INIT_C(0x000000000d60d677, 0x841a050d0288762e), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x0000000000000000, 0x000001259dc3d8c3) + }, + { /* i=3425; 119 / 118 */ + RTUINT128_INIT_C(0x007f849eb6a6a4cf, 0x9d00d85d4fe7759e), RTUINT128_INIT_C(0x0015ebecea538f8d, 0x19f7626aed742bd2), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000005), RTUINT128_INIT_C(0x0011e8fe2304d70e, 0x1b2bec46aca29a84) + }, + { /* i=3426; 117 / 70 */ + RTUINT128_INIT_C(0x00126ff8953c7421, 0x642943bdfa9b6a31), RTUINT128_INIT_C(0x0000000000000029, 0xa08541960f1c2a8d), + RTUINT128_INIT_C(0x0000000000000000, 0x000071631cd24d7f), RTUINT128_INIT_C(0x0000000000000003, 0x2fe76c77af2be53e) + }, + { /* i=3427; 86 / 27 */ + RTUINT128_INIT_C(0x00000000002dcbee, 0x4007efa3fa015ab9), RTUINT128_INIT_C(0x0000000000000000, 0x0000000006bb2b12), + RTUINT128_INIT_C(0x0000000000000000, 0x06cdbfb27f1adaa3), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000539a43) + }, + { /* i=3428; 123 / 117 */ + RTUINT128_INIT_C(0x03ea52f6fb413a7e, 0x5374f534423a7388), RTUINT128_INIT_C(0x000fb3b63985d1d8, 0x937849d8ff7aafa9), + RTUINT128_INIT_C(0x0000000000000000, 0x000000000000003f), RTUINT128_INIT_C(0x000d191ed3529632, 0x08dac8cd630938f1) + }, + { /* i=3429; 124 / 30 */ + RTUINT128_INIT_C(0x08b21e666728166e, 0x58f79757cfcd8b11), RTUINT128_INIT_C(0x0000000000000000, 0x000000003b4a5ef6), + RTUINT128_INIT_C(0x00000000258bc391, 0x3d00d9e7d0d35e9c), RTUINT128_INIT_C(0x0000000000000000, 0x000000003adb5929) + }, + { /* i=3430; 106 / 11 */ + RTUINT128_INIT_C(0x0000026cd8bce05a, 0xa68f4e113685513e), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000072), + RTUINT128_INIT_C(0x00000005722e91af, 0xf3fcc40d9feab69b), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000038) + }, + { /* i=3431; 122 / 3 */ + RTUINT128_INIT_C(0x03555951f8e6adf4, 0x4f9181dcba79b7d0), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000005), + RTUINT128_INIT_C(0x00aaab76cb6155fd, 0xa983805f587ebe5c), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000004) + }, + { /* i=3432; 73 / 25 */ + RTUINT128_INIT_C(0x0000000000000045, 0xf308b9bc40519db2), RTUINT128_INIT_C(0x0000000000000000, 0x0000000001bdb56b), + RTUINT128_INIT_C(0x0000000000000000, 0x0000282d3209792d), RTUINT128_INIT_C(0x0000000000000000, 0x00000000007626e3) + }, + { /* i=3433; 41 / 9 */ + RTUINT128_INIT_C(0x0000000000000000, 0x0000000c8468f4af), RTUINT128_INIT_C(0x0000000000000000, 0x000000000000011d), + RTUINT128_INIT_C(0x0000000000000000, 0x000000000b3e58e2), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000115) + }, + { /* i=3434; 113 / 105 */ + RTUINT128_INIT_C(0x0001e3dd09dd6160, 0xb3292bddbc4e156b), RTUINT128_INIT_C(0x0000017e229aac55, 0x4b423821bb1ae569), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000144), RTUINT128_INIT_C(0x000000393e1b456d, 0x735a212cee43bc87) + }, + { /* i=3435; 122 / 127 */ + RTUINT128_INIT_C(0x01737db206b98f27, 0x18dead7796b4ef5b), RTUINT128_INIT_C(0x2999163507fd23d2, 0x6088465a380ab807), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x01737db206b98f27, 0x18dead7796b4ef5b) + }, + { /* i=3436; 119 / 82 */ + RTUINT128_INIT_C(0x004b6316bc661e2c, 0xbc234898da18f085), RTUINT128_INIT_C(0x000000000002bee7, 0x1c3df20e8c818c8d), + RTUINT128_INIT_C(0x0000000000000000, 0x0000001b74ce2701), RTUINT128_INIT_C(0x000000000000d6e7, 0xfefb885493b7e8f8) + }, + { /* i=3437; 114 / 127 */ + RTUINT128_INIT_C(0x00037920b8147bd0, 0xa80a22b17f6ee31f), RTUINT128_INIT_C(0x2885ac93e2d29e8d, 0xf5cb4d60ccde22b7), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x00037920b8147bd0, 0xa80a22b17f6ee31f) + }, + { /* i=3438; 67 / 7 */ + RTUINT128_INIT_C(0x0000000000000000, 0x7f63d59a5f91da43), RTUINT128_INIT_C(0x0000000000000000, 0x000000000000002e), + RTUINT128_INIT_C(0x0000000000000000, 0x02c4f3f2a908bc65), RTUINT128_INIT_C(0x0000000000000000, 0x000000000000001d) + }, + { /* i=3439; 75 / 68 */ + RTUINT128_INIT_C(0x000000000000070c, 0x4d679672f4ff74e2), RTUINT128_INIT_C(0x0000000000000007, 0x635411e6bd4c80c6), + RTUINT128_INIT_C(0x0000000000000000, 0x00000000000000f4), RTUINT128_INIT_C(0x0000000000000001, 0xa14686868814b82a) + }, + { /* i=3440; 25 / 73 */ + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000e53115), RTUINT128_INIT_C(0x000000000000009e, 0xd00259414440237a), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000e53115) + }, + { /* i=3441; 124 / 77 */ + RTUINT128_INIT_C(0x0d2d8fec5d3db3d2, 0x1d683fcdd99dcdcb), RTUINT128_INIT_C(0x00000000000014d8, 0xfe1b209b417c42a1), + RTUINT128_INIT_C(0x0000000000000000, 0x0000a1d1e8d336b3), RTUINT128_INIT_C(0x00000000000011a6, 0x87e6773106fa4138) + }, + { /* i=3442; 114 / 71 */ + RTUINT128_INIT_C(0x00012a5cb05e3860, 0x39a2c765cba4f8cb), RTUINT128_INIT_C(0x0000000000000046, 0x8a87b66035c74518), + RTUINT128_INIT_C(0x0000000000000000, 0x0000043ac8434ca1), RTUINT128_INIT_C(0x000000000000003f, 0x9eb8bc5afb8764b3) + }, + { /* i=3443; 111 / 14 */ + RTUINT128_INIT_C(0x00003123e92bd514, 0x19f193a69a44dc98), RTUINT128_INIT_C(0x0000000000000000, 0x00000000000022dd), + RTUINT128_INIT_C(0x0000000168d5e5c7, 0x4b86c832d12d5b35), RTUINT128_INIT_C(0x0000000000000000, 0x00000000000015d7) + }, + { /* i=3444; 115 / 17 */ + RTUINT128_INIT_C(0x0003afab7c800214, 0xad1934bc50932e7a), RTUINT128_INIT_C(0x0000000000000000, 0x000000000001ac83), + RTUINT128_INIT_C(0x0000000233c39660, 0xee57c0b6c87ea28e), RTUINT128_INIT_C(0x0000000000000000, 0x00000000000097d0) + }, + { /* i=3445; 120 / 36 */ + RTUINT128_INIT_C(0x002bf2e14d7acba7, 0x37aefa776ec840ed), RTUINT128_INIT_C(0x0000000000000000, 0x0000000470b8b287), + RTUINT128_INIT_C(0x000000000009e5cc, 0xe5ae3603a34cc0dd), RTUINT128_INIT_C(0x0000000000000000, 0x00000001a45ce262) + }, + { /* i=3446; 122 / 110 */ + RTUINT128_INIT_C(0x01bb4553325989f9, 0x4f8d1e121b02423a), RTUINT128_INIT_C(0x00003333e9c982a0, 0x92a7392001825197), + RTUINT128_INIT_C(0x0000000000000000, 0x00000000000008a8), RTUINT128_INIT_C(0x00000bf37a06cc03, 0xd806a1050aefff22) + }, + { /* i=3447; 117 / 61 */ + RTUINT128_INIT_C(0x0006a45b11cfe746, 0xf8c2445c635ca71b), RTUINT128_INIT_C(0x0000000000000000, 0x19b3a8c0131ba83e), + RTUINT128_INIT_C(0x0000000000000000, 0x00422836b392e6fb), RTUINT128_INIT_C(0x0000000000000000, 0x16fcd56180bafe51) + }, + { /* i=3448; 90 / 63 */ + RTUINT128_INIT_C(0x0000000003ae40f5, 0x5bbd9d984db80e13), RTUINT128_INIT_C(0x0000000000000000, 0x6e1518b3008670b5), + RTUINT128_INIT_C(0x0000000000000000, 0x00000000088f3d66), RTUINT128_INIT_C(0x0000000000000000, 0x1471a087723104f5) + }, + { /* i=3449; 50 / 26 */ + RTUINT128_INIT_C(0x0000000000000000, 0x00003791fd737951), RTUINT128_INIT_C(0x0000000000000000, 0x0000000002b15bc8), + RTUINT128_INIT_C(0x0000000000000000, 0x000000000014a2f5), RTUINT128_INIT_C(0x0000000000000000, 0x00000000020212e9) + }, + { /* i=3450; 96 / 24 */ + RTUINT128_INIT_C(0x00000000999b63b3, 0x35320703e2cc2287), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000c80549), + RTUINT128_INIT_C(0x00000000000000c4, 0x98be47990213a3b9), RTUINT128_INIT_C(0x0000000000000000, 0x000000000077d5c6) + }, + { /* i=3451; 117 / 34 */ + RTUINT128_INIT_C(0x00154a7d31de5534, 0x399fbd165a32ff58), RTUINT128_INIT_C(0x0000000000000000, 0x000000022983fc98), + RTUINT128_INIT_C(0x000000000009d8d7, 0x805ddd36d0d1f94d), RTUINT128_INIT_C(0x0000000000000000, 0x00000001c4b82da0) + }, + { /* i=3452; 125 / 65 */ + RTUINT128_INIT_C(0x087c6a444225bd3e, 0x1de54f99c8889b37), RTUINT128_INIT_C(0x0000000000000001, 0x12f225f74fe2f222), + RTUINT128_INIT_C(0x0000000000000000, 0x07e6b80d5a7cb787), RTUINT128_INIT_C(0x0000000000000000, 0x0c14494c304c9d49) + }, + { /* i=3453; 121 / 120 */ + RTUINT128_INIT_C(0x01b1890d55f58d86, 0x48b941aa4986c0cb), RTUINT128_INIT_C(0x00d0b9bc92f61229, 0x6b5a6d7447824581), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000002), RTUINT128_INIT_C(0x0010159430096933, 0x720466c1ba8235c9) + }, + { /* i=3454; 121 / 4 */ + RTUINT128_INIT_C(0x01a3df3d80d1cc93, 0xad3fc36058a5b737), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000005), + RTUINT128_INIT_C(0x0053f972b35d28ea, 0x55d98d79ab5457d7), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000004) + }, + { /* i=3455; 74 / 55 */ + RTUINT128_INIT_C(0x000000000000035b, 0x6cfa6b560efe59e7), RTUINT128_INIT_C(0x0000000000000000, 0x001ada077cca6839), + RTUINT128_INIT_C(0x0000000000000000, 0x00000000002001a3), RTUINT128_INIT_C(0x0000000000000000, 0x0017f7c7c895c49c) + }, + { /* i=3456; 37 / 74 */ + RTUINT128_INIT_C(0x0000000000000000, 0x0000001eef0def24), RTUINT128_INIT_C(0x0000000000000323, 0x00fc152f41cb1764), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x0000000000000000, 0x0000001eef0def24) + }, + { /* i=3457; 123 / 18 */ + RTUINT128_INIT_C(0x04328d3c1da61012, 0xac692e0601f4842b), RTUINT128_INIT_C(0x0000000000000000, 0x00000000000320f6), + RTUINT128_INIT_C(0x0000015771aa8654, 0xcb11c58bf3b13a20), RTUINT128_INIT_C(0x0000000000000000, 0x000000000002a96b) + }, + { /* i=3458; 118 / 30 */ + RTUINT128_INIT_C(0x00291d95eaf20047, 0xefc610fa8f414021), RTUINT128_INIT_C(0x0000000000000000, 0x00000000267a49f3), + RTUINT128_INIT_C(0x0000000001118ce3, 0x69ff5aecf61a4c65), RTUINT128_INIT_C(0x0000000000000000, 0x000000000e5fef42) + }, + { /* i=3459; 126 / 97 */ + RTUINT128_INIT_C(0x24393ee4b55b8438, 0x1e0bcf545edb8105), RTUINT128_INIT_C(0x00000000fbf283df, 0x0194704ca6f7fbac), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000024ce68dc), RTUINT128_INIT_C(0x0000000031b372b1, 0x4fb2eeaf6f195935) + }, + { /* i=3460; 119 / 53 */ + RTUINT128_INIT_C(0x00330a71571c681f, 0xe43a907869e6a8e8), RTUINT128_INIT_C(0x0000000000000000, 0x0018ddc3a1c662d5), + RTUINT128_INIT_C(0x0000000000000002, 0x0d77f7a93fe6bedf), RTUINT128_INIT_C(0x0000000000000000, 0x001144d10a5e7b5d) + }, + { /* i=3461; 119 / 106 */ + RTUINT128_INIT_C(0x0040fafb1e8bfa60, 0x10f6f925f8571639), RTUINT128_INIT_C(0x0000019f4511915b, 0x9014addfd60690d1), + RTUINT128_INIT_C(0x0000000000000000, 0x000000000000280e), RTUINT128_INIT_C(0x0000017a98dfb8da, 0xf4aa7d773d5a82cb) + }, + { /* i=3462; 127 / 37 */ + RTUINT128_INIT_C(0x67c0467ca5bc0110, 0x08adfaffe405dbdb), RTUINT128_INIT_C(0x0000000000000000, 0x0000000cf8d84d1c), + RTUINT128_INIT_C(0x0000000007ff8009, 0xdc86dc225c471250), RTUINT128_INIT_C(0x0000000000000000, 0x00000007783dcb1b) + }, + { /* i=3463; 67 / 61 */ + RTUINT128_INIT_C(0x0000000000000007, 0xfd9027bf3b1fce94), RTUINT128_INIT_C(0x0000000000000000, 0x09cc4121604abe9f), + RTUINT128_INIT_C(0x0000000000000000, 0x00000000000000d0), RTUINT128_INIT_C(0x0000000000000000, 0x079b3ca0fe64ed64) + }, + { /* i=3464; 124 / 84 */ + RTUINT128_INIT_C(0x082d82b5e1d92fa1, 0xff7741f93e4fdbd6), RTUINT128_INIT_C(0x000000000001d6fe, 0xa566efdff6a97122), + RTUINT128_INIT_C(0x0000000000000000, 0x00000471e30baab2), RTUINT128_INIT_C(0x000000000001d4e6, 0x35b26dd834e89e32) + }, + { /* i=3465; 128 / 93 */ + RTUINT128_INIT_C(0x200c1241d06d4a01, 0x8b4635a299530332), RTUINT128_INIT_C(0x0000000018a92473, 0x8f73a25b0bce8d0d), + RTUINT128_INIT_C(0x0000000000000000, 0x000000014cad83a3), RTUINT128_INIT_C(0x000000000ef20a52, 0x3dba651d34d88ceb) + }, + { /* i=3466; 123 / 107 */ + RTUINT128_INIT_C(0x01a04bb2b5bc7414, 0x9d95203d984c9688), RTUINT128_INIT_C(0x000001eb2df228b7, 0x5c1d755fcad14eb3), + RTUINT128_INIT_C(0x0000000000000000, 0x000000000000d8f8), RTUINT128_INIT_C(0x00000119e0ca4cba, 0x8602985083215120) + }, + { /* i=3467; 45 / 40 */ + RTUINT128_INIT_C(0x0000000000000000, 0x000012bc0571484b), RTUINT128_INIT_C(0x0000000000000000, 0x00000014fa2e1664), + RTUINT128_INIT_C(0x0000000000000000, 0x00000000000000e4), RTUINT128_INIT_C(0x0000000000000000, 0x0000000d3465573b) + }, + { /* i=3468; 114 / 64 */ + RTUINT128_INIT_C(0x0002f481702b6c64, 0x5c2861b99b4e3272), RTUINT128_INIT_C(0x0000000000000000, 0xf6f5d4adf25403b6), + RTUINT128_INIT_C(0x0000000000000000, 0x000310325c138448), RTUINT128_INIT_C(0x0000000000000000, 0x399598bc73414f42) + }, + { /* i=3469; 125 / 73 */ + RTUINT128_INIT_C(0x06cebea5ed351da2, 0xf714502f0b298142), RTUINT128_INIT_C(0x000000000000009d, 0x8f3e6dec0907d55e), + RTUINT128_INIT_C(0x0000000000000000, 0x000b0f94c909da33), RTUINT128_INIT_C(0x0000000000000071, 0x3a9416534499f388) + }, + { /* i=3470; 122 / 114 */ + RTUINT128_INIT_C(0x01a8b25819d5b4d6, 0xbbb88cac4336b86d), RTUINT128_INIT_C(0x0000b24afb6746ae, 0x1b2c1f0f1db908bf), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000261), RTUINT128_INIT_C(0x00008df8092690a8, 0x17c2a9b68e08ea0e) + }, + { /* i=3471; 114 / 98 */ + RTUINT128_INIT_C(0x00002b054ca82f0c, 0xb76a74df8ef0a82c), RTUINT128_INIT_C(0x000000004cb0b06f, 0x5c0962a2c4050a6c), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000008f9b), RTUINT128_INIT_C(0x000000002b1f2736, 0xbfa2d0d40f1104c8) + }, + { /* i=3472; 115 / 94 */ + RTUINT128_INIT_C(0x00019eb71ccdc254, 0xc246df3b7b9f63fb), RTUINT128_INIT_C(0x000000000436d822, 0xe50480d8979a7fde), + RTUINT128_INIT_C(0x0000000000000000, 0x000000000062687f), RTUINT128_INIT_C(0x00000000006eb041, 0xfdc8ed0c8f0bc4d9) + }, + { /* i=3473; 61 / 99 */ + RTUINT128_INIT_C(0x0000000000000000, 0x137cd1f2ccaf5625), RTUINT128_INIT_C(0x0000000183d11768, 0x43d5fc9bef479080), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x0000000000000000, 0x137cd1f2ccaf5625) + }, + { /* i=3474; 125 / 108 */ + RTUINT128_INIT_C(0x1d2ee99c8c14beb5, 0xcaa272162c7ac304), RTUINT128_INIT_C(0x00000909d270ba5b, 0xd60eb5368154cc5a), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000033a93), RTUINT128_INIT_C(0x000007f8fc0d6b4e, 0x6b7e867e4d6f0756) + }, + { /* i=3475; 123 / 102 */ + RTUINT128_INIT_C(0x002521b8717aa0a8, 0xb620210b880f6f25), RTUINT128_INIT_C(0x0000001f472b2d80, 0xa85c7c7af875a720), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000012fe9), RTUINT128_INIT_C(0x000000049052ef4a, 0x029d490c242b7305) + }, + { /* i=3476; 80 / 73 */ + RTUINT128_INIT_C(0x000000000000d48f, 0x76e5cef82a0d90f4), RTUINT128_INIT_C(0x0000000000000146, 0xf678434675f0eeea), + RTUINT128_INIT_C(0x0000000000000000, 0x00000000000000a6), RTUINT128_INIT_C(0x000000000000008b, 0xa4ea2f47afd2a538) + }, + { /* i=3477; 114 / 89 */ + RTUINT128_INIT_C(0x0003d36f2fa3a2e1, 0x067f0de1e3871cd4), RTUINT128_INIT_C(0x0000000001b41a63, 0xa597f34936774bc1), + RTUINT128_INIT_C(0x0000000000000000, 0x00000000023ef1dc), RTUINT128_INIT_C(0x000000000097dba7, 0x2db9ef34ebf351f8) + }, + { /* i=3478; 118 / 118 */ + RTUINT128_INIT_C(0x00141ee0462ffdc6, 0x7e81a037814f72bb), RTUINT128_INIT_C(0x000fa37e7d4ac396, 0x01117258909c5222), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000001), RTUINT128_INIT_C(0x00047b61c8e53a30, 0x7d702ddef0b32099) + }, + { /* i=3479; 128 / 39 */ + RTUINT128_INIT_C(0x51a7a4740d735f8a, 0x2e82c7e01b2aed67), RTUINT128_INIT_C(0x0000000000000000, 0x000000071eb393ad), + RTUINT128_INIT_C(0x000000000b77ef46, 0xd5128c8df25f847e), RTUINT128_INIT_C(0x0000000000000000, 0x000000040f700a41) + }, + { /* i=3480; 115 / 114 */ + RTUINT128_INIT_C(0x00015c3bd77e28eb, 0x1c6144a0d9d3bca7), RTUINT128_INIT_C(0x0002659624419a0b, 0xec4b9b43308162ac), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x00015c3bd77e28eb, 0x1c6144a0d9d3bca7) + }, + { /* i=3481; 128 / 73 */ + RTUINT128_INIT_C(0x5158538582d7292f, 0xbe0d090847e95ecb), RTUINT128_INIT_C(0x0000000000000051, 0x2666dafcac213660), + RTUINT128_INIT_C(0x0000000000000000, 0x01009d7e8c854287), RTUINT128_INIT_C(0x0000000000000028, 0x8f412f2b3280f22b) + }, + { /* i=3482; 125 / 101 */ + RTUINT128_INIT_C(0x01b7e3f5cd6e2930, 0x303f3656242125c4), RTUINT128_INIT_C(0x0000001bac18b6c0, 0x1c469eaaf1f9ff26), + RTUINT128_INIT_C(0x0000000000000000, 0x00000000000fe57d), RTUINT128_INIT_C(0x0000000df4a16bf3, 0xe9d0a4c368989236) + }, + { /* i=3483; 75 / 41 */ + RTUINT128_INIT_C(0x00000000000005d2, 0x5072180482ea0306), RTUINT128_INIT_C(0x0000000000000000, 0x00000082670b9b25), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000b6db6b704), RTUINT128_INIT_C(0x0000000000000000, 0x0000006b8d862372) + }, + { /* i=3484; 101 / 74 */ + RTUINT128_INIT_C(0x000000029744750c, 0x0774d931cade7524), RTUINT128_INIT_C(0x0000000000000249, 0x83e351e710015f2a), + RTUINT128_INIT_C(0x0000000000000000, 0x000000000121feb6), RTUINT128_INIT_C(0x000000000000004d, 0x42bc4b7e9f0f2148) + }, + { /* i=3485; 118 / 55 */ + RTUINT128_INIT_C(0x0007777200cf98d3, 0xf4702346b4efeeff), RTUINT128_INIT_C(0x0000000000000000, 0x002fd11e61e15fef), + RTUINT128_INIT_C(0x0000000000000000, 0x27f96aefa1eebb71), RTUINT128_INIT_C(0x0000000000000000, 0x002d6060602f0180) + }, + { /* i=3486; 116 / 69 */ + RTUINT128_INIT_C(0x00042e0aaed1ec09, 0xff9d6e3185c9b197), RTUINT128_INIT_C(0x000000000000001c, 0xf9aeafc9c67db94c), + RTUINT128_INIT_C(0x0000000000000000, 0x000024edee401181), RTUINT128_INIT_C(0x000000000000000b, 0x9b7cb6472c21464b) + }, + { /* i=3487; 117 / 106 */ + RTUINT128_INIT_C(0x001b324f2cbf5922, 0xa3baf8ee14825257), RTUINT128_INIT_C(0x000002188cdc888e, 0x8a800cf76dda49f3), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000cf9), RTUINT128_INIT_C(0x000001d3d3d7d7ff, 0xec92c31dffb900fc) + }, + { /* i=3488; 90 / 124 */ + RTUINT128_INIT_C(0x0000000003ae1f40, 0x86efd3734c663726), RTUINT128_INIT_C(0x0ebe02557eced477, 0x534ed3598aecae05), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x0000000003ae1f40, 0x86efd3734c663726) + }, + { /* i=3489; 125 / 39 */ + RTUINT128_INIT_C(0x1da5d81fb5f59704, 0x88c27aa7e8d50cf7), RTUINT128_INIT_C(0x0000000000000000, 0x00000039f24bd1dd), + RTUINT128_INIT_C(0x000000000082faf3, 0x00767b2ba20466d8), RTUINT128_INIT_C(0x0000000000000000, 0x0000001d21c9ec7f) + }, + { /* i=3490; 41 / 6 */ + RTUINT128_INIT_C(0x0000000000000000, 0x0000019bd403b70b), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000010), + RTUINT128_INIT_C(0x0000000000000000, 0x00000019bd403b70), RTUINT128_INIT_C(0x0000000000000000, 0x000000000000000b) + }, + { /* i=3491; 83 / 70 */ + RTUINT128_INIT_C(0x0000000000018a54, 0xc1669a74647fceea), RTUINT128_INIT_C(0x0000000000000012, 0x810200e6a8c4d6dc), + RTUINT128_INIT_C(0x0000000000000000, 0x000000000000154f), RTUINT128_INIT_C(0x0000000000000009, 0xc7b5676e2a217506) + }, + { /* i=3492; 126 / 73 */ + RTUINT128_INIT_C(0x24ada8863d2175d0, 0xb245f83c5eef931a), RTUINT128_INIT_C(0x00000000000000de, 0x0f9ea30c0a84583c), + RTUINT128_INIT_C(0x0000000000000000, 0x002a48bd2fa8ac76), RTUINT128_INIT_C(0x000000000000005d, 0x3d678245af469772) + }, + { /* i=3493; 121 / 121 */ + RTUINT128_INIT_C(0x005bb67f4d75a400, 0x4f17d48e7fdcda6c), RTUINT128_INIT_C(0x01b0619f74137ba9, 0xcc86685cd3a9f1d5), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x005bb67f4d75a400, 0x4f17d48e7fdcda6c) + }, + { /* i=3494; 76 / 21 */ + RTUINT128_INIT_C(0x00000000000009d0, 0x9fd9dcd38c7f335c), RTUINT128_INIT_C(0x0000000000000000, 0x000000000013d53c), + RTUINT128_INIT_C(0x0000000000000000, 0x007eb07d7a8cd2f2), RTUINT128_INIT_C(0x0000000000000000, 0x00000000000468a4) + }, + { /* i=3495; 85 / 12 */ + RTUINT128_INIT_C(0x0000000000086651, 0x411bafe26097c9ed), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000b1f), + RTUINT128_INIT_C(0x00000000000000c1, 0x5ad75dc1f201abff), RTUINT128_INIT_C(0x0000000000000000, 0x000000000000010c) + }, + { /* i=3496; 110 / 8 */ + RTUINT128_INIT_C(0x000033fb9374acb1, 0x71621f6c24b9c7d9), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000054), + RTUINT128_INIT_C(0x0000009e6c6c0e3f, 0x1096805fc37c1dce), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000041) + }, + { /* i=3497; 123 / 98 */ + RTUINT128_INIT_C(0x07113cf281617e37, 0xc04cf56290578007), RTUINT128_INIT_C(0x0000000111a6eef9, 0x960c0b7305e5b51e), + RTUINT128_INIT_C(0x0000000000000000, 0x00000000069c883a), RTUINT128_INIT_C(0x0000000058ff0a59, 0xaf4247f81fcc873b) + }, + { /* i=3498; 127 / 77 */ + RTUINT128_INIT_C(0x5194702ab31151b5, 0x149a50be1d9cb111), RTUINT128_INIT_C(0x0000000000000205, 0x4b0539f5c996c282), + RTUINT128_INIT_C(0x0000000000000000, 0x00285f5f45376caa), RTUINT128_INIT_C(0x0000000000000039, 0x3619c46bd182aebd) + }, + { /* i=3499; 128 / 109 */ + RTUINT128_INIT_C(0xea457f2aaf6c5592, 0x652f12ebe8d6ab5d), RTUINT128_INIT_C(0x00001b78154429ed, 0x5de3ea3101cf98c2), + RTUINT128_INIT_C(0x0000000000000000, 0x000000000008874f), RTUINT128_INIT_C(0x000007c3dddc49af, 0xe9d1e75b1a28397f) + }, + { /* i=3500; 111 / 12 */ + RTUINT128_INIT_C(0x00001e1ac363e741, 0x3eec4ed3482da53e), RTUINT128_INIT_C(0x0000000000000000, 0x00000000000000c9), + RTUINT128_INIT_C(0x0000002657943d02, 0xdf32d8e8da266fa0), RTUINT128_INIT_C(0x0000000000000000, 0x000000000000009e) + }, + { /* i=3501; 117 / 60 */ + RTUINT128_INIT_C(0x0011519e97393dff, 0xab3312686f328ce1), RTUINT128_INIT_C(0x0000000000000000, 0x0ffd3c5fc4007801), + RTUINT128_INIT_C(0x0000000000000000, 0x011549d0fa4809c0), RTUINT128_INIT_C(0x0000000000000000, 0x0a200d8eb0588321) + }, + { /* i=3502; 74 / 66 */ + RTUINT128_INIT_C(0x0000000000000282, 0x55e16eb3e90e8555), RTUINT128_INIT_C(0x0000000000000002, 0xc8f4aeb15fa52af5), + RTUINT128_INIT_C(0x0000000000000000, 0x00000000000000e6), RTUINT128_INIT_C(0x0000000000000001, 0xca0c7b57faa9ed37) + }, + { /* i=3503; 127 / 102 */ + RTUINT128_INIT_C(0x5c164b9d6f4e10da, 0x689a2762ad6b6410), RTUINT128_INIT_C(0x00000021d34d307c, 0x9fdc13ba76d72a6e), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000002b8f0d1), RTUINT128_INIT_C(0x0000000bbd0206e7, 0xf07c23c294eaa042) + }, + { /* i=3504; 117 / 62 */ + RTUINT128_INIT_C(0x001203955c66ec31, 0xae585ec00f393bd4), RTUINT128_INIT_C(0x0000000000000000, 0x39b30df5f60b43f7), + RTUINT128_INIT_C(0x0000000000000000, 0x004fec9b3aa52e29), RTUINT128_INIT_C(0x0000000000000000, 0x362ff2efdd01f745) + }, + { /* i=3505; 22 / 21 */ + RTUINT128_INIT_C(0x0000000000000000, 0x00000000001129b7), RTUINT128_INIT_C(0x0000000000000000, 0x00000000000454eb), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000003), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000042af6) + }, + { /* i=3506; 69 / 56 */ + RTUINT128_INIT_C(0x000000000000000a, 0xad057c52faf474c5), RTUINT128_INIT_C(0x0000000000000000, 0x00f0c950acef5099), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000b59), RTUINT128_INIT_C(0x0000000000000000, 0x00a907d8934adc94) + }, + { /* i=3507; 116 / 19 */ + RTUINT128_INIT_C(0x000ee86534a6d988, 0xa63c2c46788f9275), RTUINT128_INIT_C(0x0000000000000000, 0x000000000006185f), + RTUINT128_INIT_C(0x0000000272219de5, 0x4b115c5b0f814433), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000007b88) + }, + { /* i=3508; 126 / 66 */ + RTUINT128_INIT_C(0x0d3a6ca87622eb3d, 0x80aa7ad340de718c), RTUINT128_INIT_C(0x0000000000000001, 0x5a06fb9627dc5012), + RTUINT128_INIT_C(0x0000000000000000, 0x09c95d767451870c), RTUINT128_INIT_C(0x0000000000000001, 0x0c529d7ab69f32b4) + }, + { /* i=3509; 2 / 15 */ + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000003), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000003a64), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000003) + }, + { /* i=3510; 123 / 68 */ + RTUINT128_INIT_C(0x05bb76011c782b19, 0x6b4a0003626e4ffd), RTUINT128_INIT_C(0x0000000000000006, 0x8ee48274667910dd), + RTUINT128_INIT_C(0x0000000000000000, 0x00dfc2b61c05067a), RTUINT128_INIT_C(0x0000000000000006, 0x667d64d0360618ab) + }, + { /* i=3511; 104 / 16 */ + RTUINT128_INIT_C(0x0000006c8d9df92e, 0x1fef353a389c5a2f), RTUINT128_INIT_C(0x0000000000000000, 0x000000000000bb03), + RTUINT128_INIT_C(0x0000000000949927, 0xf1ea7e33a67faf62), RTUINT128_INIT_C(0x0000000000000000, 0x000000000000b609) + }, + { /* i=3512; 117 / 102 */ + RTUINT128_INIT_C(0x0003aa9ac16aba20, 0xb5ab3ded789be95c), RTUINT128_INIT_C(0x00000006d4180f4c, 0xdec4524fb80de3bf), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000008974), RTUINT128_INIT_C(0x00000001c653a814, 0xb4a9484ea36f7fd0) + }, + { /* i=3513; 120 / 86 */ + RTUINT128_INIT_C(0x00927b6e0086662c, 0x2561a404f6cc0853), RTUINT128_INIT_C(0x0000000000320f58, 0xdf9a87493998fc4d), + RTUINT128_INIT_C(0x0000000000000000, 0x00000002ed1726dc), RTUINT128_INIT_C(0x000000000006cfe7, 0xa767bb9ecdf4c827) + }, + { /* i=3514; 119 / 101 */ + RTUINT128_INIT_C(0x007b3f1c5d93fbe2, 0xe52885256e1ca991), RTUINT128_INIT_C(0x00000018e6f7a652, 0x56633a0e849dce28), + RTUINT128_INIT_C(0x0000000000000000, 0x000000000004f300), RTUINT128_INIT_C(0x00000000b16a7a55, 0xccd2aacc6accb191) + }, + { /* i=3515; 125 / 27 */ + RTUINT128_INIT_C(0x165cb0caa0307b40, 0x94bb0f2aa63b18ea), RTUINT128_INIT_C(0x0000000000000000, 0x0000000007ef6d86), + RTUINT128_INIT_C(0x00000002d16c8b61, 0x6fef0ee63150c149), RTUINT128_INIT_C(0x0000000000000000, 0x000000000182d7b4) + }, + { /* i=3516; 118 / 58 */ + RTUINT128_INIT_C(0x0009398e07869af3, 0xc43669c7e8aa274d), RTUINT128_INIT_C(0x0000000000000000, 0x0001c1096f3c544f), + RTUINT128_INIT_C(0x0000000000000005, 0x425809ef5a336281), RTUINT128_INIT_C(0x0000000000000000, 0x0000ac0831406d7e) + }, + { /* i=3517; 123 / 26 */ + RTUINT128_INIT_C(0x03bc9e9ee77c5f12, 0xf3d6badc10ddf12a), RTUINT128_INIT_C(0x0000000000000000, 0x00000000017f0cc7), + RTUINT128_INIT_C(0x000000027f5406ad, 0x0565257144635462), RTUINT128_INIT_C(0x0000000000000000, 0x000000000114c0fc) + }, + { /* i=3518; 127 / 67 */ + RTUINT128_INIT_C(0x01cbf27d6f31bf8a, 0x687a3b9b6193039e), RTUINT128_INIT_C(0x0000000000000005, 0x7ae81965dd2edb40), + RTUINT128_INIT_C(0x0000000000000000, 0x0053ee2d8385c665), RTUINT128_INIT_C(0x0000000000000002, 0x8e567f8f3843035e) + }, + { /* i=3519; 31 / 3 */ + RTUINT128_INIT_C(0x0000000000000000, 0x00000000081493ac), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000001), + RTUINT128_INIT_C(0x0000000000000000, 0x00000000081493ac), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000) + }, + { /* i=3520; 45 / 103 */ + RTUINT128_INIT_C(0x0000000000000000, 0x0000050097404f80), RTUINT128_INIT_C(0x0000004684550a2d, 0x543b4e43f67b6cfc), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x0000000000000000, 0x0000050097404f80) + }, + { /* i=3521; 125 / 115 */ + RTUINT128_INIT_C(0x0ad67266e4466fea, 0xcd0800bab07d22b3), RTUINT128_INIT_C(0x0004076f7c61072b, 0xdcf164148bdda1ac), + RTUINT128_INIT_C(0x0000000000000000, 0x00000000000002b0), RTUINT128_INIT_C(0x000276c89f832a09, 0x044b0982ccdaa473) + }, + { /* i=3522; 114 / 112 */ + RTUINT128_INIT_C(0x00033defa38e6391, 0x3363b72a6bdb971f), RTUINT128_INIT_C(0x0000b560b1fcd7c1, 0xea6b30b0c29fc8ea), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000004), RTUINT128_INIT_C(0x0000686cdb9b0489, 0x89b6f467615c7377) + }, + { /* i=3523; 122 / 117 */ + RTUINT128_INIT_C(0x017585806d9e1cfe, 0x79a2e1454f64ddc9), RTUINT128_INIT_C(0x0013780711d5ff20, 0xfcc2c82bc9265501), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000013), RTUINT128_INIT_C(0x00039cfa1abc2d8b, 0xb72e0605618c8eb6) + }, + { /* i=3524; 114 / 98 */ + RTUINT128_INIT_C(0x0000b7ab4097d7f2, 0x6b4adbf50f75cb82), RTUINT128_INIT_C(0x00000002f6fa2616, 0x78c352227b5085ff), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000003df3), RTUINT128_INIT_C(0x00000001361255d7, 0x3f51add7d218d775) + }, + { /* i=3525; 125 / 59 */ + RTUINT128_INIT_C(0x10070043f7325576, 0xb50fec47c14e0ad7), RTUINT128_INIT_C(0x0000000000000000, 0x050f16e8b23d94dd), + RTUINT128_INIT_C(0x0000000000000003, 0x2b0a051e70e1484b), RTUINT128_INIT_C(0x0000000000000000, 0x03f167d3b1284618) + }, + { /* i=3526; 117 / 90 */ + RTUINT128_INIT_C(0x0018992dcb883c08, 0xb6bc4ffdb6e9bef6), RTUINT128_INIT_C(0x0000000001c7534a, 0xfe5ca1983ce68d5a), + RTUINT128_INIT_C(0x0000000000000000, 0x000000000dd47f12), RTUINT128_INIT_C(0x00000000002cd3a8, 0x52e448f86e0c28a2) + }, + { /* i=3527; 109 / 76 */ + RTUINT128_INIT_C(0x00001a6c6d0424bf, 0x7864ac3a8371eab4), RTUINT128_INIT_C(0x0000000000000fb3, 0xabdfa81097bd04c2), + RTUINT128_INIT_C(0x0000000000000000, 0x00000001aecdfbce), RTUINT128_INIT_C(0x0000000000000a41, 0x6c7a29bf6a53e098) + }, + { /* i=3528; 114 / 87 */ + RTUINT128_INIT_C(0x000084dbd41452c2, 0x35ebf4e730ccb92b), RTUINT128_INIT_C(0x0000000000041afb, 0x68488263a169020e), + RTUINT128_INIT_C(0x0000000000000000, 0x00000000205ca8ba), RTUINT128_INIT_C(0x000000000001314d, 0x8bb0b49884200aff) + }, + { /* i=3529; 124 / 69 */ + RTUINT128_INIT_C(0x0c88957b81cfefa8, 0xdcdeea01a3eee71c), RTUINT128_INIT_C(0x000000000000000c, 0xa72fbdaa151d2a9a), + RTUINT128_INIT_C(0x0000000000000000, 0x00fd94d7664414ab), RTUINT128_INIT_C(0x0000000000000005, 0x9d40e5b095376a3e) + }, + { /* i=3530; 115 / 56 */ + RTUINT128_INIT_C(0x0001ee83b6e0db58, 0x185a449ee902f109), RTUINT128_INIT_C(0x0000000000000000, 0x0047824b5dabc7ce), + RTUINT128_INIT_C(0x0000000000000000, 0x06ea58f709448b6d), RTUINT128_INIT_C(0x0000000000000000, 0x00205b4270aa0453) + }, + { /* i=3531; 113 / 49 */ + RTUINT128_INIT_C(0x0000f65ceed8d31c, 0x23659650151f429b), RTUINT128_INIT_C(0x0000000000000000, 0x0000ff7595443661), + RTUINT128_INIT_C(0x0000000000000000, 0xf6e26bd5ceda0f11), RTUINT128_INIT_C(0x0000000000000000, 0x0000f234cfcdf72a) + }, + { /* i=3532; 128 / 118 */ + RTUINT128_INIT_C(0x952d074200fd6369, 0xdb6b05135d0fa168), RTUINT128_INIT_C(0x00034e1f851e86a9, 0x160bfaf3bf62a2dc), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000002d22), RTUINT128_INIT_C(0x00011cabf543c814, 0xd2b6d80f9b555430) + }, + { /* i=3533; 116 / 102 */ + RTUINT128_INIT_C(0x000fa4fc3568ee91, 0x0a9d496bf173578f), RTUINT128_INIT_C(0x00000039bcc625bf, 0xc5e588d62690bc7f), + RTUINT128_INIT_C(0x0000000000000000, 0x000000000000455d), RTUINT128_INIT_C(0x000000213940878f, 0x4858db3aec10a26c) + }, + { /* i=3534; 121 / 76 */ + RTUINT128_INIT_C(0x0034e426ad1c0997, 0xabade59f3dd87a70), RTUINT128_INIT_C(0x0000000000000776, 0xf9b3cb0029158ca9), + RTUINT128_INIT_C(0x0000000000000000, 0x00000715e1184b25), RTUINT128_INIT_C(0x00000000000003d4, 0xc67b8f0d44ada303) + }, + { /* i=3535; 96 / 54 */ + RTUINT128_INIT_C(0x00000000138c70bc, 0x1785a8a0554d0979), RTUINT128_INIT_C(0x0000000000000000, 0x0030b9c6f4edb8d6), + RTUINT128_INIT_C(0x0000000000000000, 0x00000066b4d68f80), RTUINT128_INIT_C(0x0000000000000000, 0x00231862194d1479) + }, + { /* i=3536; 87 / 114 */ + RTUINT128_INIT_C(0x000000000030d175, 0x7aaafca2df1ff939), RTUINT128_INIT_C(0x0000d43db3a1b783, 0x576b45196324edb5), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x000000000030d175, 0x7aaafca2df1ff939) + }, + { /* i=3537; 123 / 59 */ + RTUINT128_INIT_C(0x0623b95bace69583, 0x0ba0e20a2e19dcf6), RTUINT128_INIT_C(0x0000000000000000, 0x06129fe619cae3af), + RTUINT128_INIT_C(0x0000000000000001, 0x02d0d60c3b7f2032), RTUINT128_INIT_C(0x0000000000000000, 0x00e15f8b7f3284c8) + }, + { /* i=3538; 128 / 102 */ + RTUINT128_INIT_C(0xb3adb1760377c63c, 0xc046a0a97bc57749), RTUINT128_INIT_C(0x00000010bd1b19ac, 0x7ced0fd2d2a13f0a), + RTUINT128_INIT_C(0x0000000000000000, 0x000000000abbfc54), RTUINT128_INIT_C(0x00000004cb6d0ae1, 0x9bafbfe63480f001) + }, + { /* i=3539; 105 / 53 */ + RTUINT128_INIT_C(0x0000019e75238212, 0xdd9a5c193a8c2104), RTUINT128_INIT_C(0x0000000000000000, 0x0002aa451a3e293b), + RTUINT128_INIT_C(0x0000000000000000, 0x009b83103b2af8f6), RTUINT128_INIT_C(0x0000000000000000, 0x000065e26e315a52) + }, + { /* i=3540; 113 / 39 */ + RTUINT128_INIT_C(0x00002d603c1024e8, 0xb80a35eb6fd4dde6), RTUINT128_INIT_C(0x0000000000000000, 0x0000005115673dfa), + RTUINT128_INIT_C(0x000000000000008f, 0x432eb2e2146f2a10), RTUINT128_INIT_C(0x0000000000000000, 0x00000007c1cffa46) + }, + { /* i=3541; 122 / 115 */ + RTUINT128_INIT_C(0x0376388e5ead278d, 0x8f0ecc0222f960f5), RTUINT128_INIT_C(0x00076d899be2bc7d, 0x7c3efb9903a1de20), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000077), RTUINT128_INIT_C(0x00024d96e8478938, 0xcdc7d7e172bb2015) + }, + { /* i=3542; 100 / 23 */ + RTUINT128_INIT_C(0x00000009d32218b0, 0x890717a31dfa66af), RTUINT128_INIT_C(0x0000000000000000, 0x00000000000d6b25), + RTUINT128_INIT_C(0x000000000000bb6f, 0xf09c6a0237fe49a6), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000035fb1) + }, + { /* i=3543; 97 / 86 */ + RTUINT128_INIT_C(0x00000001cf0485e6, 0x71788e5c5e313bcc), RTUINT128_INIT_C(0x00000000000834dd, 0xf45281dff3d0afab), + RTUINT128_INIT_C(0x0000000000000000, 0x000000000000386b), RTUINT128_INIT_C(0x000000000005dfaf, 0x4693486bcf8a6753) + }, + { /* i=3544; 95 / 2 */ + RTUINT128_INIT_C(0x000000007593aa7f, 0xa6b607b6104c7b20), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000001), + RTUINT128_INIT_C(0x000000007593aa7f, 0xa6b607b6104c7b20), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000) + }, + { /* i=3545; 122 / 122 */ + RTUINT128_INIT_C(0x00b7c1def7183b80, 0x8e329d70d6e11d57), RTUINT128_INIT_C(0x022b0b97809db200, 0x6491051aa2a7fdab), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x00b7c1def7183b80, 0x8e329d70d6e11d57) + }, + { /* i=3546; 54 / 50 */ + RTUINT128_INIT_C(0x0000000000000000, 0x003e0cdb0845a686), RTUINT128_INIT_C(0x0000000000000000, 0x0001cde386009cfc), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000022), RTUINT128_INIT_C(0x0000000000000000, 0x0000b4a33c30cd0e) + }, + { /* i=3547; 110 / 14 */ + RTUINT128_INIT_C(0x00000331c03aacb2, 0xf462aa341a253922), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000135), + RTUINT128_INIT_C(0x00000002a57d4a4b, 0x246a5d5728ae19de), RTUINT128_INIT_C(0x0000000000000000, 0x000000000000002c) + }, + { /* i=3548; 118 / 35 */ + RTUINT128_INIT_C(0x001bfda0e7e7b343, 0x7069217b0d1a8694), RTUINT128_INIT_C(0x0000000000000000, 0x000000018691c080), + RTUINT128_INIT_C(0x00000000001258bc, 0x4a85d83b4957f6d0), RTUINT128_INIT_C(0x0000000000000000, 0x00000000bc331e94) + }, + { /* i=3549; 63 / 32 */ + RTUINT128_INIT_C(0x0000000000000000, 0x39d85e5f27f583ec), RTUINT128_INIT_C(0x0000000000000000, 0x00000000b56a2c84), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000051a08d02), RTUINT128_INIT_C(0x0000000000000000, 0x00000000ac1c76e4) + }, + { /* i=3550; 95 / 77 */ + RTUINT128_INIT_C(0x0000000053549571, 0xd8e6af99ed73cd71), RTUINT128_INIT_C(0x00000000000000e5, 0xfc3601a1c25be9a3), + RTUINT128_INIT_C(0x0000000000000000, 0x00000000005cc19f), RTUINT128_INIT_C(0x000000000000000c, 0xe5fedf92f4a5ce34) + }, + { /* i=3551; 107 / 36 */ + RTUINT128_INIT_C(0x0000033980914d40, 0x8f918d68ae29f7ea), RTUINT128_INIT_C(0x0000000000000000, 0x0000000e76dc00a3), + RTUINT128_INIT_C(0x0000000000000039, 0x125c7b7757006d43), RTUINT128_INIT_C(0x0000000000000000, 0x0000000781506641) + }, + { /* i=3552; 72 / 33 */ + RTUINT128_INIT_C(0x0000000000000085, 0xb36dc1c77ca3476a), RTUINT128_INIT_C(0x0000000000000000, 0x0000000013ea53fa), + RTUINT128_INIT_C(0x0000000000000000, 0x000006b6a568f0ae), RTUINT128_INIT_C(0x0000000000000000, 0x000000000513d37e) + }, + { /* i=3553; 115 / 36 */ + RTUINT128_INIT_C(0x0004d64e03e4c5cc, 0xf9249e4de5cc674e), RTUINT128_INIT_C(0x0000000000000000, 0x0000000d7987bbbd), + RTUINT128_INIT_C(0x0000000000005be5, 0xf80029079486f978), RTUINT128_INIT_C(0x0000000000000000, 0x000000075fa391b6) + }, + { /* i=3554; 111 / 103 */ + RTUINT128_INIT_C(0x00004b1eee67fa89, 0xfc32d3de5edced80), RTUINT128_INIT_C(0x00000059c17e3c89, 0xdfd00d0806b4370f), + RTUINT128_INIT_C(0x0000000000000000, 0x00000000000000d6), RTUINT128_INIT_C(0x000000172ee15f48, 0xe447ef28c436e6f6) + }, + { /* i=3555; 11 / 29 */ + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000116), RTUINT128_INIT_C(0x0000000000000000, 0x000000000c34fe8d), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000116) + }, + { /* i=3556; 110 / 6 */ + RTUINT128_INIT_C(0x00002990be644d13, 0xe56196912fef9103), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000019), + RTUINT128_INIT_C(0x000001a9a1373648, 0x79d0b41a4998f152), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000001) + }, + { /* i=3557; 126 / 98 */ + RTUINT128_INIT_C(0x1c41c0463de89914, 0x1b384f3a8b0c4cab), RTUINT128_INIT_C(0x00000001464a7da5, 0x5383fc5b57185c7f), + RTUINT128_INIT_C(0x0000000000000000, 0x00000000162b6d07), RTUINT128_INIT_C(0x000000004a6d6624, 0x6355cb9b56aab232) + }, + { /* i=3558; 123 / 102 */ + RTUINT128_INIT_C(0x028e6e74e6653ab7, 0xd55472f750b92911), RTUINT128_INIT_C(0x0000001b73222a59, 0x8df8a45c21bc19b8), + RTUINT128_INIT_C(0x0000000000000000, 0x000000000017d751), RTUINT128_INIT_C(0x00000001f8f8dccf, 0x535809955b137dd9) + }, + { /* i=3559; 99 / 84 */ + RTUINT128_INIT_C(0x000000045235a81b, 0x8d2e4c4f18ca81f7), RTUINT128_INIT_C(0x00000000000370e6, 0x35fc2c441e14c73a), + RTUINT128_INIT_C(0x0000000000000000, 0x000000000001417a), RTUINT128_INIT_C(0x00000000000130b4, 0x9f7fca20b513d653) + }, + { /* i=3560; 123 / 100 */ + RTUINT128_INIT_C(0x001a4d062c288afc, 0xd00b4bc88862fd54), RTUINT128_INIT_C(0x0000000d3b5fafb8, 0x6126d36b6a8f9af9), + RTUINT128_INIT_C(0x0000000000000000, 0x000000000001fcd8), RTUINT128_INIT_C(0x0000000a32ba66a1, 0xcbbfc1b1a7b21f3c) + }, + { /* i=3561; 113 / 87 */ + RTUINT128_INIT_C(0x00005867140f47e3, 0x6e76ac579bb62765), RTUINT128_INIT_C(0x00000000005b1632, 0x816d4feab7ebdccc), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000f874d8), RTUINT128_INIT_C(0x00000000003848bb, 0x46a2b677a7076b45) + }, + { /* i=3562; 81 / 29 */ + RTUINT128_INIT_C(0x0000000000014bfe, 0x6a39df4cd4d3d510), RTUINT128_INIT_C(0x0000000000000000, 0x0000000009cb5990), + RTUINT128_INIT_C(0x0000000000000000, 0x0021e581d3229a80), RTUINT128_INIT_C(0x0000000000000000, 0x0000000006266d10) + }, + { /* i=3563; 78 / 36 */ + RTUINT128_INIT_C(0x00000000000032db, 0xbd660ec07947798b), RTUINT128_INIT_C(0x0000000000000000, 0x000000037681edb1), + RTUINT128_INIT_C(0x0000000000000000, 0x00000eafc1ef603c), RTUINT128_INIT_C(0x0000000000000000, 0x00000001a072640f) + }, + { /* i=3564; 75 / 17 */ + RTUINT128_INIT_C(0x0000000000000502, 0x6ea65da72f370935), RTUINT128_INIT_C(0x0000000000000000, 0x000000000000f7e6), + RTUINT128_INIT_C(0x0000000000000000, 0x052c57e67f0858d6), RTUINT128_INIT_C(0x0000000000000000, 0x000000000000bef1) + }, + { /* i=3565; 54 / 15 */ + RTUINT128_INIT_C(0x0000000000000000, 0x0006482695c91474), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000002d9c), + RTUINT128_INIT_C(0x0000000000000000, 0x00000023425bdcc4), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000001904) + }, + { /* i=3566; 117 / 72 */ + RTUINT128_INIT_C(0x000f9375c4432a30, 0x6ced76e8d20aeeca), RTUINT128_INIT_C(0x00000000000000a1, 0xe62b944dd031e4a5), + RTUINT128_INIT_C(0x0000000000000000, 0x000018a1192e9af0), RTUINT128_INIT_C(0x000000000000002d, 0x90bb12a76d13521a) + }, + { /* i=3567; 128 / 65 */ + RTUINT128_INIT_C(0x92be16fbaff1ac5c, 0x5f4cb1a2dde6d91e), RTUINT128_INIT_C(0x0000000000000000, 0x3f97742c4906105a), + RTUINT128_INIT_C(0x0000000000000002, 0x4ebd5a46e43ea624), RTUINT128_INIT_C(0x0000000000000000, 0x0d0e716a8ca63076) + }, + { /* i=3568; 36 / 68 */ + RTUINT128_INIT_C(0x0000000000000000, 0x00000009776c0f43), RTUINT128_INIT_C(0x0000000000000008, 0x02ac1c8e232827cb), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x0000000000000000, 0x00000009776c0f43) + }, + { /* i=3569; 109 / 6 */ + RTUINT128_INIT_C(0x00001bce6ac8566d, 0x343e7d434738cac7), RTUINT128_INIT_C(0x0000000000000000, 0x000000000000002b), + RTUINT128_INIT_C(0x000000a58b69de49, 0xfb42f10d78b9e0fe), RTUINT128_INIT_C(0x0000000000000000, 0x000000000000001d) + }, + { /* i=3570; 123 / 106 */ + RTUINT128_INIT_C(0x0768fc0ea178b6dd, 0xff044906ab1188dc), RTUINT128_INIT_C(0x00000245cfff4e92, 0x8cf71e1ea474b8a2), + RTUINT128_INIT_C(0x0000000000000000, 0x00000000000342ae), RTUINT128_INIT_C(0x000000fd83f7e005, 0x1eedfc6ea23c46c0) + }, + { /* i=3571; 94 / 31 */ + RTUINT128_INIT_C(0x0000000021920e98, 0xa76838df3e7b67bd), RTUINT128_INIT_C(0x0000000000000000, 0x00000000728453e4), + RTUINT128_INIT_C(0x0000000000000000, 0x4b0bd2e11e282179), RTUINT128_INIT_C(0x0000000000000000, 0x000000003b7f5cf9) + }, + { /* i=3572; 85 / 8 */ + RTUINT128_INIT_C(0x00000000001b5e28, 0x0676b3015286b214), RTUINT128_INIT_C(0x0000000000000000, 0x00000000000000e3), + RTUINT128_INIT_C(0x0000000000001edd, 0x3749d3adae099d8a), RTUINT128_INIT_C(0x0000000000000000, 0x00000000000000b6) + }, + { /* i=3573; 109 / 33 */ + RTUINT128_INIT_C(0x00000ddd085cc63b, 0x24d9262901c79a86), RTUINT128_INIT_C(0x0000000000000000, 0x000000010d448158), + RTUINT128_INIT_C(0x0000000000000d2e, 0x29578e0f4d2ebb18), RTUINT128_INIT_C(0x0000000000000000, 0x0000000003103246) + }, + { /* i=3574; 127 / 123 */ + RTUINT128_INIT_C(0x02c04c47bac1ac01, 0x3165476b52b6cc2a), RTUINT128_INIT_C(0x03945cfddc927c78, 0x2a58daf42b4db8f8), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x02c04c47bac1ac01, 0x3165476b52b6cc2a) + }, + { /* i=3575; 126 / 66 */ + RTUINT128_INIT_C(0x2b30d7c79ab9f4ba, 0x63b5f21220df5b31), RTUINT128_INIT_C(0x0000000000000002, 0x1051659c46a17ff9), + RTUINT128_INIT_C(0x0000000000000000, 0x14edaacc9d92f534), RTUINT128_INIT_C(0x0000000000000001, 0xed4b16b887960f9d) + }, + { /* i=3576; 57 / 47 */ + RTUINT128_INIT_C(0x0000000000000000, 0x01bb7dfaa8b4d2d9), RTUINT128_INIT_C(0x0000000000000000, 0x00003e4c9dc58294), + RTUINT128_INIT_C(0x0000000000000000, 0x000000000000071e), RTUINT128_INIT_C(0x0000000000000000, 0x000018afc4fd7981) + }, + { /* i=3577; 128 / 113 */ + RTUINT128_INIT_C(0xa54d1c3d77f83da4, 0xfcc6212f91864f6f), RTUINT128_INIT_C(0x0000681ef2be78b2, 0x8b15df5f55313227), + RTUINT128_INIT_C(0x0000000000000000, 0x000000000001966c), RTUINT128_INIT_C(0x00001a34fc3229bd, 0x9f4ab3db9b3b4cfb) + }, + { /* i=3578; 104 / 95 */ + RTUINT128_INIT_C(0x0000008316560977, 0xfee60ab5f516df64), RTUINT128_INIT_C(0x000000002f001c63, 0x2bc9029f062f88bb), + RTUINT128_INIT_C(0x0000000000000000, 0x00000000000002ca), RTUINT128_INIT_C(0x000000000006dcdf, 0xe044bb2eb48385d6) + }, + { /* i=3579; 85 / 49 */ + RTUINT128_INIT_C(0x00000000001dabdc, 0x0cad56c2c7845f8a), RTUINT128_INIT_C(0x0000000000000000, 0x00006bbaf118170c), + RTUINT128_INIT_C(0x0000000000000000, 0x000000468215d903), RTUINT128_INIT_C(0x0000000000000000, 0x00004d3e8cb6ee66) + }, + { /* i=3580; 120 / 90 */ + RTUINT128_INIT_C(0x00d1b76bd9f65c40, 0xf2b04bda074b71f4), RTUINT128_INIT_C(0x00000000016fd59e, 0x0e507bbf91d8ba6c), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000091f494be), RTUINT128_INIT_C(0x0000000000b535de, 0x5736ef31a1baa5cc) + }, + { /* i=3581; 98 / 25 */ + RTUINT128_INIT_C(0x0000000080b3e64b, 0x4c9aaf4c62f09f70), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000a1b770), + RTUINT128_INIT_C(0x00000000000000cb, 0xbd131493288711a7), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000338560) + }, + { /* i=3582; 121 / 105 */ + RTUINT128_INIT_C(0x01fbd172fbdcdf1b, 0x2f69be890de873d1), RTUINT128_INIT_C(0x000000bac1bf56f8, 0x6d34f1eb8cd27c82), + RTUINT128_INIT_C(0x0000000000000000, 0x000000000002b819), RTUINT128_INIT_C(0x00000075dbb9f7f0, 0x9385b7ac0ad8db1f) + }, + { /* i=3583; 89 / 4 */ + RTUINT128_INIT_C(0x0000000000310c14, 0x471fb1b50a213811), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000003), + RTUINT128_INIT_C(0x000000000010595c, 0x17b53b3c58b5bd5b), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000) + }, + { /* i=3584; 89 / 20 */ + RTUINT128_INIT_C(0x0000000000f29bb5, 0xaa00c7c7bff54360), RTUINT128_INIT_C(0x0000000000000000, 0x00000000000beafd), + RTUINT128_INIT_C(0x0000000000000014, 0x5b494ff3a457d2c5), RTUINT128_INIT_C(0x0000000000000000, 0x00000000000ae4af) + }, + { /* i=3585; 19 / 60 */ + RTUINT128_INIT_C(0x0000000000000000, 0x000000000003de98), RTUINT128_INIT_C(0x0000000000000000, 0x09bb25329f2cd2f7), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x0000000000000000, 0x000000000003de98) + }, + { /* i=3586; 21 / 7 */ + RTUINT128_INIT_C(0x0000000000000000, 0x00000000000d230f), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000061), + RTUINT128_INIT_C(0x0000000000000000, 0x00000000000022ab), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000044) + }, + { /* i=3587; 118 / 30 */ + RTUINT128_INIT_C(0x0016bca76786abe6, 0x5accad56cbf966d5), RTUINT128_INIT_C(0x0000000000000000, 0x000000000573242e), + RTUINT128_INIT_C(0x00000000042c0e08, 0x0205e79f51c86f31), RTUINT128_INIT_C(0x0000000000000000, 0x00000000024f8807) + }, + { /* i=3588; 100 / 87 */ + RTUINT128_INIT_C(0x0000000074dfdab3, 0xbd6ad5e832a299c9), RTUINT128_INIT_C(0x00000000006c0b9c, 0x5feb96b939141b03), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000114), RTUINT128_INIT_C(0x000000000063561c, 0x536c5636a8f57a8d) + }, + { /* i=3589; 119 / 96 */ + RTUINT128_INIT_C(0x003bf677998beeef, 0x91155ba529474d09), RTUINT128_INIT_C(0x000000003f30602d, 0xd9c91d900b764ee1), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000f2edf6), RTUINT128_INIT_C(0x000000002cad3023, 0x2749c2c70ddf33d3) + }, + { /* i=3590; 115 / 105 */ + RTUINT128_INIT_C(0x000206aa856c36cf, 0x19cb856870cdbbf9), RTUINT128_INIT_C(0x000001a21e233486, 0xb0fc344cfce3e28d), + RTUINT128_INIT_C(0x0000000000000000, 0x000000000000013d), RTUINT128_INIT_C(0x000000eb33d42c05, 0xf17ec2134a9e3360) + }, + { /* i=3591; 116 / 108 */ + RTUINT128_INIT_C(0x000374ea7aa91c5f, 0x2875c8eb37161008), RTUINT128_INIT_C(0x00000825729bd70e, 0x335e2822c6cbc7ef), + RTUINT128_INIT_C(0x0000000000000000, 0x000000000000006c), RTUINT128_INIT_C(0x0000051e20ea6261, 0x7cbcda3f591db734) + }, + { /* i=3592; 110 / 80 */ + RTUINT128_INIT_C(0x000010ad1989006a, 0xef4530a4d5ecd7a5), RTUINT128_INIT_C(0x000000000000b0b5, 0xa73c22f7efbde014), + RTUINT128_INIT_C(0x0000000000000000, 0x000000001828aa2f), RTUINT128_INIT_C(0x0000000000002956, 0x96cadd3ed8236bf9) + }, + { /* i=3593; 128 / 82 */ + RTUINT128_INIT_C(0xc506f74625a66895, 0x909adcac5ad44180), RTUINT128_INIT_C(0x000000000001483b, 0x8d998b267043f67e), + RTUINT128_INIT_C(0x0000000000000000, 0x000099ab18da8c56), RTUINT128_INIT_C(0x000000000000ad92, 0x51f42b37c1e68b2c) + }, + { /* i=3594; 61 / 59 */ + RTUINT128_INIT_C(0x0000000000000000, 0x0e0e807c558ccdb0), RTUINT128_INIT_C(0x0000000000000000, 0x0707c7b75ea21dd0), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000001), RTUINT128_INIT_C(0x0000000000000000, 0x0706b8c4f6eaafe0) + }, + { /* i=3595; 46 / 8 */ + RTUINT128_INIT_C(0x0000000000000000, 0x0000061391e27c92), RTUINT128_INIT_C(0x0000000000000000, 0x000000000000001e), + RTUINT128_INIT_C(0x0000000000000000, 0x00000033da32375a), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000006) + }, + { /* i=3596; 20 / 5 */ + RTUINT128_INIT_C(0x0000000000000000, 0x00000000000f13e0), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000001), + RTUINT128_INIT_C(0x0000000000000000, 0x00000000000f13e0), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000) + }, + { /* i=3597; 118 / 42 */ + RTUINT128_INIT_C(0x0023b06fe97e0325, 0x5f2991a7927ed94f), RTUINT128_INIT_C(0x0000000000000000, 0x00000222e74a6833), + RTUINT128_INIT_C(0x00000000000010b4, 0xac8df46cfe46a085), RTUINT128_INIT_C(0x0000000000000000, 0x000001b7cfc4d6d0) + }, + { /* i=3598; 21 / 7 */ + RTUINT128_INIT_C(0x0000000000000000, 0x00000000001fee34), RTUINT128_INIT_C(0x0000000000000000, 0x000000000000007a), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000004300), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000034) + }, + { /* i=3599; 121 / 74 */ + RTUINT128_INIT_C(0x0088edc35dcf3be2, 0xbd30265eda1e1bf9), RTUINT128_INIT_C(0x0000000000000243, 0xbcd6f53d18c82574), + RTUINT128_INIT_C(0x0000000000000000, 0x00003c7701db51ed), RTUINT128_INIT_C(0x000000000000005e, 0x706933ae16bdbb95) + }, + { /* i=3600; 74 / 48 */ + RTUINT128_INIT_C(0x00000000000003f3, 0x9689fc6e72cde481), RTUINT128_INIT_C(0x0000000000000000, 0x0000801bf1fdaf09), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000007e573bf), RTUINT128_INIT_C(0x0000000000000000, 0x000072291eda41ca) + }, + { /* i=3601; 84 / 7 */ + RTUINT128_INIT_C(0x00000000000e2443, 0x0d89fec6aa34b672), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000073), + RTUINT128_INIT_C(0x0000000000001f7b, 0x0491e546bc78aac4), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000066) + }, + { /* i=3602; 15 / 100 */ + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000007cc4), RTUINT128_INIT_C(0x000000098636357f, 0xd4314febcc80d7cb), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000007cc4) + }, + { /* i=3603; 79 / 42 */ + RTUINT128_INIT_C(0x000000000000405d, 0xb52c6f8d60a3b954), RTUINT128_INIT_C(0x0000000000000000, 0x0000025f35245254), + RTUINT128_INIT_C(0x0000000000000000, 0x0000001b23094ece), RTUINT128_INIT_C(0x0000000000000000, 0x0000005b2b5fe1bc) + }, + { /* i=3604; 79 / 77 */ + RTUINT128_INIT_C(0x0000000000005635, 0x03ab81b4a2495d88), RTUINT128_INIT_C(0x0000000000000a75, 0x36f5796ce35f02bf), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000008), RTUINT128_INIT_C(0x000000000000028b, 0x4bffb64d87514790) + }, + { /* i=3605; 121 / 97 */ + RTUINT128_INIT_C(0x00f3d1d7e595ad30, 0xf905718d490b4082), RTUINT128_INIT_C(0x000000019b527dc9, 0x65ba7af83e7be245), + RTUINT128_INIT_C(0x0000000000000000, 0x000000000097bfcf), RTUINT128_INIT_C(0x00000000903db373, 0x0d0ff121de5acfb7) + }, + { /* i=3606; 116 / 85 */ + RTUINT128_INIT_C(0x00051d293f732a73, 0x68aaac5f8876365f), RTUINT128_INIT_C(0x00000000001329a3, 0x27ad4dd3135097d4), + RTUINT128_INIT_C(0x0000000000000000, 0x000000004451820f), RTUINT128_INIT_C(0x000000000005493c, 0x6313685e1f8fa8f3) + }, + { /* i=3607; 119 / 124 */ + RTUINT128_INIT_C(0x0071a6eee2aafc2e, 0x65d280b295025697), RTUINT128_INIT_C(0x017de8abf1662320, 0xe3f07a59d952a4db), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x0071a6eee2aafc2e, 0x65d280b295025697) + }, + { /* i=3608; 93 / 49 */ + RTUINT128_INIT_C(0x0000000017954b61, 0xe244204672730688), RTUINT128_INIT_C(0x0000000000000000, 0x0001134ee89296d0), + RTUINT128_INIT_C(0x0000000000000000, 0x000015ede1432197), RTUINT128_INIT_C(0x0000000000000000, 0x00002d46161b41d8) + }, + { /* i=3609; 121 / 39 */ + RTUINT128_INIT_C(0x00846ed55b79bba4, 0xe3f00928bd978020), RTUINT128_INIT_C(0x0000000000000000, 0x0000000d59292761), + RTUINT128_INIT_C(0x000000000009ebdd, 0x51036bf38465ba5b), RTUINT128_INIT_C(0x0000000000000000, 0x00000004981506a5) + }, + { /* i=3610; 76 / 55 */ + RTUINT128_INIT_C(0x0000000000000d62, 0x5d176119d58ee8ca), RTUINT128_INIT_C(0x0000000000000000, 0x002734e1487ec94b), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000576481), RTUINT128_INIT_C(0x0000000000000000, 0x001e182c5e8d2dff) + }, + { /* i=3611; 74 / 23 */ + RTUINT128_INIT_C(0x00000000000000e4, 0xe403d8b5715d3a34), RTUINT128_INIT_C(0x0000000000000000, 0x000000000001f040), + RTUINT128_INIT_C(0x0000000000000000, 0x007613de63aba03c), RTUINT128_INIT_C(0x0000000000000000, 0x000000000000eb34) + }, + { /* i=3612; 127 / 98 */ + RTUINT128_INIT_C(0x32080278d3ce1f1e, 0x884d570e56a8df81), RTUINT128_INIT_C(0x0000000181afc5b5, 0x7da6ee499fc2bdef), + RTUINT128_INIT_C(0x0000000000000000, 0x000000002135555b), RTUINT128_INIT_C(0x0000000009e80c9b, 0x9e020309c1e4008c) + }, + { /* i=3613; 118 / 17 */ + RTUINT128_INIT_C(0x00292e29d7f8941f, 0x8de6fe9ec8c260f0), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000013df6), + RTUINT128_INIT_C(0x0000002127d0d305, 0x7ddb58eeaa9ef3e6), RTUINT128_INIT_C(0x0000000000000000, 0x00000000000033ec) + }, + { /* i=3614; 115 / 49 */ + RTUINT128_INIT_C(0x00030dfef2717ca9, 0xc863ceb3df87d8f0), RTUINT128_INIT_C(0x0000000000000000, 0x000104424b1789ad), + RTUINT128_INIT_C(0x0000000000000003, 0x0132f5d61bc1b444), RTUINT128_INIT_C(0x0000000000000000, 0x00005069560ca2fc) + }, + { /* i=3615; 82 / 39 */ + RTUINT128_INIT_C(0x000000000000c2d7, 0xa91423ecf3f615b2), RTUINT128_INIT_C(0x0000000000000000, 0x0000006dff96bde9), + RTUINT128_INIT_C(0x0000000000000000, 0x000001c57544b63c), RTUINT128_INIT_C(0x0000000000000000, 0x0000004cf2b9ed16) + }, + { /* i=3616; 38 / 102 */ + RTUINT128_INIT_C(0x0000000000000000, 0x0000003de58cb181), RTUINT128_INIT_C(0x0000000577a8a019, 0xdd4c03262ec3be80), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x0000000000000000, 0x0000003de58cb181) + }, + { /* i=3617; 122 / 82 */ + RTUINT128_INIT_C(0x000dce4549ad0e0d, 0xeff4fb8133e20fb8), RTUINT128_INIT_C(0x000000000000ff5f, 0xc3a738dda80a5f69), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000dd6eee227), RTUINT128_INIT_C(0x000000000000097b, 0xd035e5a7f874d4b9) + }, + { /* i=3618; 83 / 78 */ + RTUINT128_INIT_C(0x0000000000077d77, 0x6991bba4e6392898), RTUINT128_INIT_C(0x000000000000314e, 0xc1fa2a8795eeec92), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000026), RTUINT128_INIT_C(0x0000000000002bc6, 0x9e6f6b84a4c20aec) + }, + { /* i=3619; 89 / 2 */ + RTUINT128_INIT_C(0x00000000012ad8c7, 0x32ba50d17ebfc620), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000003), + RTUINT128_INIT_C(0x0000000000639d97, 0xbb937045d4ea9760), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000) + }, + { /* i=3620; 95 / 60 */ + RTUINT128_INIT_C(0x000000004ab94956, 0x4a45f3fe70dca7ac), RTUINT128_INIT_C(0x0000000000000000, 0x036814fce08e8118), + RTUINT128_INIT_C(0x0000000000000000, 0x00000015ef68cc17), RTUINT128_INIT_C(0x0000000000000000, 0x0321b2f2db6fee84) + }, + { /* i=3621; 120 / 126 */ + RTUINT128_INIT_C(0x00ebc7914d141b15, 0x2c1496db255333d6), RTUINT128_INIT_C(0x290ee928d0d41bf8, 0x4cd69a5fa3727b8a), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x00ebc7914d141b15, 0x2c1496db255333d6) + }, + { /* i=3622; 124 / 76 */ + RTUINT128_INIT_C(0x06fe8c6057ca4f0b, 0x1adc285bc1c6c5cc), RTUINT128_INIT_C(0x00000000000006a2, 0x1c367d3b4999b117), + RTUINT128_INIT_C(0x0000000000000000, 0x00010def82aace7d), RTUINT128_INIT_C(0x00000000000000b8, 0x012ae1b8ddf4cb91) + }, + { /* i=3623; 59 / 11 */ + RTUINT128_INIT_C(0x0000000000000000, 0x0450e8c107d98a66), RTUINT128_INIT_C(0x0000000000000000, 0x000000000000065f), + RTUINT128_INIT_C(0x0000000000000000, 0x0000ad6ce410ed90), RTUINT128_INIT_C(0x0000000000000000, 0x00000000000001f6) + }, + { /* i=3624; 74 / 60 */ + RTUINT128_INIT_C(0x000000000000008c, 0xb82d9a47a9d0c62d), RTUINT128_INIT_C(0x0000000000000000, 0x07f613b14699f9df), + RTUINT128_INIT_C(0x0000000000000000, 0x00000000000011ac), RTUINT128_INIT_C(0x0000000000000000, 0x0789997c00c51559) + }, + { /* i=3625; 113 / 66 */ + RTUINT128_INIT_C(0x0000690694599d77, 0xb5cb864d22fddc3a), RTUINT128_INIT_C(0x0000000000000002, 0xf3a459ff3c76a206), + RTUINT128_INIT_C(0x0000000000000000, 0x00002394c37d2e5c), RTUINT128_INIT_C(0x0000000000000000, 0x1523f0e668508e12) + }, + { /* i=3626; 113 / 119 */ + RTUINT128_INIT_C(0x000080d3b3970e43, 0xe760b8099d5c132a), RTUINT128_INIT_C(0x005e56662ef10405, 0xd6fc0c9608728768), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x000080d3b3970e43, 0xe760b8099d5c132a) + }, + { /* i=3627; 117 / 44 */ + RTUINT128_INIT_C(0x000d9cc4a90fc355, 0x4815fec314027703), RTUINT128_INIT_C(0x0000000000000000, 0x00000b7791b3630d), + RTUINT128_INIT_C(0x000000000000012f, 0xe4c2a469fea3914f), RTUINT128_INIT_C(0x0000000000000000, 0x000005828b458900) + }, + { /* i=3628; 120 / 58 */ + RTUINT128_INIT_C(0x004833a394d5186d, 0xc46fc751e0e8da1b), RTUINT128_INIT_C(0x0000000000000000, 0x00ce1ef52415f1d7), + RTUINT128_INIT_C(0x0000000000000000, 0x59ac7ba610993b54), RTUINT128_INIT_C(0x0000000000000000, 0x000610ec0179f28f) + }, + { /* i=3629; 83 / 24 */ + RTUINT128_INIT_C(0x0000000000035802, 0xf30bfec4e42210c8), RTUINT128_INIT_C(0x0000000000000000, 0x00000000002447ab), + RTUINT128_INIT_C(0x0000000000000000, 0x179838af43b84afa), RTUINT128_INIT_C(0x0000000000000000, 0x000000000014a5ca) + }, + { /* i=3630; 94 / 3 */ + RTUINT128_INIT_C(0x000000000e971797, 0x2c09dd0c54543372), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000002), + RTUINT128_INIT_C(0x00000000074b8bcb, 0x9604ee862a2a19b9), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000) + }, + { /* i=3631; 117 / 81 */ + RTUINT128_INIT_C(0x000fef1a81c96644, 0xa40aec56f2d5b215), RTUINT128_INIT_C(0x0000000000017817, 0x5aab7323285b3af9), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000ad8969bcf), RTUINT128_INIT_C(0x000000000000de81, 0xd07b9c896e763fbe) + }, + { /* i=3632; 96 / 5 */ + RTUINT128_INIT_C(0x0000000008313242, 0x5195aee550df139f), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000001), + RTUINT128_INIT_C(0x0000000008313242, 0x5195aee550df139f), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000) + }, + { /* i=3633; 89 / 53 */ + RTUINT128_INIT_C(0x0000000000a48c10, 0x6229d62a4b2b93b7), RTUINT128_INIT_C(0x0000000000000000, 0x0006e5449f5062c1), + RTUINT128_INIT_C(0x0000000000000000, 0x00000017dcd9fadd), RTUINT128_INIT_C(0x0000000000000000, 0x0003e6ffb0bcd91a) + }, + { /* i=3634; 62 / 14 */ + RTUINT128_INIT_C(0x0000000000000000, 0x1b36588b5e819dc9), RTUINT128_INIT_C(0x0000000000000000, 0x000000000000055b), + RTUINT128_INIT_C(0x0000000000000000, 0x000514ca82f69252), RTUINT128_INIT_C(0x0000000000000000, 0x00000000000000a3) + }, + { /* i=3635; 16 / 127 */ + RTUINT128_INIT_C(0x0000000000000000, 0x000000000000879b), RTUINT128_INIT_C(0x15743dafdd52ced4, 0xcfc1210667c0468d), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x0000000000000000, 0x000000000000879b) + }, + { /* i=3636; 117 / 49 */ + RTUINT128_INIT_C(0x000ba63914f97c5a, 0x7c789bc4ad9a79d7), RTUINT128_INIT_C(0x0000000000000000, 0x0001e595723cd718), + RTUINT128_INIT_C(0x0000000000000006, 0x243ab9607b7355ce), RTUINT128_INIT_C(0x0000000000000000, 0x0000b0e765726c87) + }, + { /* i=3637; 124 / 73 */ + RTUINT128_INIT_C(0x04effb45fd8d0fbe, 0x6f315ebf0caab4b9), RTUINT128_INIT_C(0x0000000000000103, 0xe9eaefba873056c3), + RTUINT128_INIT_C(0x0000000000000000, 0x0004dcf2ddd45924), RTUINT128_INIT_C(0x0000000000000019, 0x9e5588400b38b64d) + }, + { /* i=3638; 119 / 53 */ + RTUINT128_INIT_C(0x0059d12ca4ca887f, 0x3733c150099b1f8e), RTUINT128_INIT_C(0x0000000000000000, 0x0001f7082ea606a0), + RTUINT128_INIT_C(0x000000000000002d, 0xb58c495c2f269ae5), RTUINT128_INIT_C(0x0000000000000000, 0x00017192135af26e) + }, + { /* i=3639; 88 / 81 */ + RTUINT128_INIT_C(0x00000000000f8df5, 0xb7a49a698fbdbd02), RTUINT128_INIT_C(0x0000000000014578, 0x8ac97d47b11f7564), + RTUINT128_INIT_C(0x0000000000000000, 0x000000000000000c), RTUINT128_INIT_C(0x0000000000004c4f, 0x3632bb0d42443c52) + }, + { /* i=3640; 126 / 39 */ + RTUINT128_INIT_C(0x2b715f8b13ac7150, 0x1f52a103b4e8d0a5), RTUINT128_INIT_C(0x0000000000000000, 0x0000004132f6aa84), + RTUINT128_INIT_C(0x0000000000aa935c, 0x2eadf1e207ba46e6), RTUINT128_INIT_C(0x0000000000000000, 0x00000016f8c3860d) + }, + { /* i=3641; 120 / 86 */ + RTUINT128_INIT_C(0x0052af993e08c579, 0xda499e56c1517a8f), RTUINT128_INIT_C(0x0000000000222a57, 0xa35248239d4de372), + RTUINT128_INIT_C(0x0000000000000000, 0x000000026b8ffc65), RTUINT128_INIT_C(0x0000000000039cbd, 0x028fe5fa53048695) + }, + { /* i=3642; 114 / 80 */ + RTUINT128_INIT_C(0x0002be74ccfe5888, 0x90a729e8f5072d76), RTUINT128_INIT_C(0x0000000000000de0, 0xc45669674d0af419), + RTUINT128_INIT_C(0x0000000000000000, 0x000000329dd6217a), RTUINT128_INIT_C(0x0000000000000d0e, 0x5924d2027271a08c) + }, + { /* i=3643; 127 / 29 */ + RTUINT128_INIT_C(0x0190fb96cf6d4372, 0x26f3a6566f00024f), RTUINT128_INIT_C(0x0000000000000000, 0x0000000013bb4c5c), + RTUINT128_INIT_C(0x00000000145262fc, 0x8658bc84569903ff), RTUINT128_INIT_C(0x0000000000000000, 0x000000000a8ddeab) + }, + { /* i=3644; 126 / 112 */ + RTUINT128_INIT_C(0x02c88373919015a6, 0x00b57194ec0a2778), RTUINT128_INIT_C(0x0000e471174e36b5, 0x82059bcd1f951375), + RTUINT128_INIT_C(0x0000000000000000, 0x000000000000031e), RTUINT128_INIT_C(0x00006aecebc18bda, 0xb339c82c795780c2) + }, + { /* i=3645; 20 / 9 */ + RTUINT128_INIT_C(0x0000000000000000, 0x00000000000269e0), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000177), + RTUINT128_INIT_C(0x0000000000000000, 0x00000000000001a5), RTUINT128_INIT_C(0x0000000000000000, 0x000000000000012d) + }, + { /* i=3646; 113 / 115 */ + RTUINT128_INIT_C(0x0000f8c621ddbbe9, 0x627d3627c27f7555), RTUINT128_INIT_C(0x000165d87c0a9315, 0xff38c80ad4e3f6b3), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x0000f8c621ddbbe9, 0x627d3627c27f7555) + }, + { /* i=3647; 118 / 116 */ + RTUINT128_INIT_C(0x000a25dc13309694, 0x25f3c31ecb95d1a4), RTUINT128_INIT_C(0x000e4612b2cafcbd, 0xadcf2d250a96489c), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x000a25dc13309694, 0x25f3c31ecb95d1a4) + }, + { /* i=3648; 124 / 88 */ + RTUINT128_INIT_C(0x021c541fc45556a4, 0x1a6529592f6ceefb), RTUINT128_INIT_C(0x00000000000de66a, 0x61c73d1c0ec0c780), + RTUINT128_INIT_C(0x0000000000000000, 0x00000026df5513df), RTUINT128_INIT_C(0x00000000000da32a, 0x388568054930a67b) + }, + { /* i=3649; 31 / 71 */ + RTUINT128_INIT_C(0x0000000000000000, 0x0000000044708b36), RTUINT128_INIT_C(0x000000000000000f, 0xd53229c9ae7434e4), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x0000000000000000, 0x0000000044708b36) + }, + { /* i=3650; 113 / 44 */ + RTUINT128_INIT_C(0x0000954c718200d2, 0xc33f1f06be8cbaca), RTUINT128_INIT_C(0x0000000000000000, 0x000001a9294af886), + RTUINT128_INIT_C(0x0000000000000059, 0xe576523175ab65a1), RTUINT128_INIT_C(0x0000000000000000, 0x00000009f2d79084) + }, + { /* i=3651; 113 / 112 */ + RTUINT128_INIT_C(0x000103dc73615234, 0x4a4df2997c691036), RTUINT128_INIT_C(0x0000676df00aa3a0, 0x0fe6d903fcdf9cb1), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000002), RTUINT128_INIT_C(0x00003500934c0af4, 0x2a80409182a9d6d4) + }, + { /* i=3652; 126 / 61 */ + RTUINT128_INIT_C(0x02168fdf1e8e265e, 0x45cc4f86aba0af4f), RTUINT128_INIT_C(0x0000000000000000, 0x0babec0059f48512), + RTUINT128_INIT_C(0x0000000000000000, 0x2dcce3d16a1cd178), RTUINT128_INIT_C(0x0000000000000000, 0x0548b661de669cdf) + }, + { /* i=3653; 47 / 29 */ + RTUINT128_INIT_C(0x0000000000000000, 0x00001869119ddd30), RTUINT128_INIT_C(0x0000000000000000, 0x00000000034bd04a), + RTUINT128_INIT_C(0x0000000000000000, 0x00000000000767de), RTUINT128_INIT_C(0x0000000000000000, 0x00000000030b7704) + }, + { /* i=3654; 73 / 37 */ + RTUINT128_INIT_C(0x00000000000001d1, 0x317af8920ec32048), RTUINT128_INIT_C(0x0000000000000000, 0x00000007b028dd04), + RTUINT128_INIT_C(0x0000000000000000, 0x0000003c820ee1f4), RTUINT128_INIT_C(0x0000000000000000, 0x000000021f57f478) + }, + { /* i=3655; 66 / 48 */ + RTUINT128_INIT_C(0x0000000000000001, 0x1a01c42e339992d4), RTUINT128_INIT_C(0x0000000000000000, 0x000094ef77f27b6d), + RTUINT128_INIT_C(0x0000000000000000, 0x000000000001e4bb), RTUINT128_INIT_C(0x0000000000000000, 0x00003a7b241f5635) + }, + { /* i=3656; 38 / 17 */ + RTUINT128_INIT_C(0x0000000000000000, 0x0000002de56150af), RTUINT128_INIT_C(0x0000000000000000, 0x000000000001b3c8), + RTUINT128_INIT_C(0x0000000000000000, 0x00000000001af62e), RTUINT128_INIT_C(0x0000000000000000, 0x000000000000d2bf) + }, + { /* i=3657; 101 / 13 */ + RTUINT128_INIT_C(0x0000001456871ad6, 0x6bc2b2f4a1fe9d3c), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000001c26), + RTUINT128_INIT_C(0x0000000000b8f783, 0x556b59d59dafc83e), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000001c08) + }, + { /* i=3658; 116 / 107 */ + RTUINT128_INIT_C(0x000c3edb74baf01f, 0xf919daa3239aa3d5), RTUINT128_INIT_C(0x000004068451681a, 0x1fd4d520bb52c0ac), + RTUINT128_INIT_C(0x0000000000000000, 0x000000000000030a), RTUINT128_INIT_C(0x0000030d555490bb, 0x3c4a2529da1d191d) + }, + { /* i=3659; 123 / 104 */ + RTUINT128_INIT_C(0x0409385fed18777d, 0x3b39a3526fdbadb2), RTUINT128_INIT_C(0x0000009cb5763a7d, 0x1983f9de9b62bdc2), + RTUINT128_INIT_C(0x0000000000000000, 0x00000000000697df), RTUINT128_INIT_C(0x0000000fbfad215f, 0x4da90871645ef3b4) + }, + { /* i=3660; 57 / 38 */ + RTUINT128_INIT_C(0x0000000000000000, 0x002ed8b4ca852251), RTUINT128_INIT_C(0x0000000000000000, 0x0000003b92d2c3ab), + RTUINT128_INIT_C(0x0000000000000000, 0x000000000000c94f), RTUINT128_INIT_C(0x0000000000000000, 0x0000000affd97d8c) + }, + { /* i=3661; 128 / 124 */ + RTUINT128_INIT_C(0xad35a479f4e869f5, 0xae57e5ec2c6da30e), RTUINT128_INIT_C(0x0e85a2af47387c96, 0xa536e01f54939b33), + RTUINT128_INIT_C(0x0000000000000000, 0x000000000000000b), RTUINT128_INIT_C(0x0d77a6f1e57b0f7c, 0x94fc44938a15f7dd) + }, + { /* i=3662; 115 / 88 */ + RTUINT128_INIT_C(0x000387bad613518f, 0x73525ea2193550db), RTUINT128_INIT_C(0x00000000005fbcb6, 0xce728164d8657a85), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000009708ffc), RTUINT128_INIT_C(0x00000000002f17a5, 0x1c996cc81eb06aef) + }, + { /* i=3663; 119 / 99 */ + RTUINT128_INIT_C(0x0031d12c0237df2b, 0x9927d4ab5c604638), RTUINT128_INIT_C(0x000000048ecfe301, 0x65cee96732156c90), + RTUINT128_INIT_C(0x0000000000000000, 0x00000000000aee0f), RTUINT128_INIT_C(0x0000000380f04b5b, 0x27024239449109c8) + }, + { /* i=3664; 17 / 29 */ + RTUINT128_INIT_C(0x0000000000000000, 0x000000000000ebc1), RTUINT128_INIT_C(0x0000000000000000, 0x0000000005c1992d), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x0000000000000000, 0x000000000000ebc1) + }, + { /* i=3665; 118 / 113 */ + RTUINT128_INIT_C(0x001f01943e170468, 0xf1e15b557a85f2b9), RTUINT128_INIT_C(0x0000ed513d736586, 0x52fe59d1dc40a593), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000021), RTUINT128_INIT_C(0x00006a1b5236ee18, 0x3f17c74816309ac6) + }, + { /* i=3666; 61 / 43 */ + RTUINT128_INIT_C(0x0000000000000000, 0x049f363d18b8f120), RTUINT128_INIT_C(0x0000000000000000, 0x000001b47a7846f1), + RTUINT128_INIT_C(0x0000000000000000, 0x000000000002b5f7), RTUINT128_INIT_C(0x0000000000000000, 0x0000019356a21999) + }, + { /* i=3667; 123 / 42 */ + RTUINT128_INIT_C(0x018a8ce7fbc20093, 0xb08f5b7e6de5ccc1), RTUINT128_INIT_C(0x0000000000000000, 0x000002f511c1571f), + RTUINT128_INIT_C(0x000000000000856a, 0x688cbee81db62a90), RTUINT128_INIT_C(0x0000000000000000, 0x0000005045cfb551) + }, + { /* i=3668; 78 / 68 */ + RTUINT128_INIT_C(0x0000000000002492, 0x099d5c3efe860bfb), RTUINT128_INIT_C(0x0000000000000002, 0xeaa6a24b8fba3afe), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000c89), RTUINT128_INIT_C(0x0000000000000002, 0xa6d4f7125918920d) + }, + { /* i=3669; 109 / 92 */ + RTUINT128_INIT_C(0x00001dbd8a6b4908, 0xbade2b5b2f0227cd), RTUINT128_INIT_C(0x0000000004092b6e, 0x5e9c9dd2e425ad98), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000075e7d), RTUINT128_INIT_C(0x0000000003f9f71e, 0xb5ad6e9433b69495) + }, + { /* i=3670; 45 / 4 */ + RTUINT128_INIT_C(0x0000000000000000, 0x000017650fc5f222), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000005), + RTUINT128_INIT_C(0x0000000000000000, 0x000004adcff463a0), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000002) + }, + { /* i=3671; 45 / 24 */ + RTUINT128_INIT_C(0x0000000000000000, 0x00000e58881bdc6d), RTUINT128_INIT_C(0x0000000000000000, 0x000000000024b974), + RTUINT128_INIT_C(0x0000000000000000, 0x000000000064009e), RTUINT128_INIT_C(0x0000000000000000, 0x00000000002166d5) + }, + { /* i=3672; 120 / 95 */ + RTUINT128_INIT_C(0x00b9d3bbd76135a0, 0x6d1fcc86c83b27a2), RTUINT128_INIT_C(0x00000000606f06ee, 0xccdacfecfaf81f5d), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000001ed4f6d), RTUINT128_INIT_C(0x000000002b170f59, 0x426bd358f4cf1a09) + }, + { /* i=3673; 119 / 73 */ + RTUINT128_INIT_C(0x007f0c80ff3566b0, 0xe3513ff604c11bd1), RTUINT128_INIT_C(0x00000000000001f1, 0x1a1c6a77705b57b6), + RTUINT128_INIT_C(0x0000000000000000, 0x0000416da0809f17), RTUINT128_INIT_C(0x00000000000001ad, 0xfa88ad7696123077) + }, + { /* i=3674; 61 / 12 */ + RTUINT128_INIT_C(0x0000000000000000, 0x0f61baf62be6a97a), RTUINT128_INIT_C(0x0000000000000000, 0x000000000000053f), + RTUINT128_INIT_C(0x0000000000000000, 0x0002ee9a33e17b74), RTUINT128_INIT_C(0x0000000000000000, 0x00000000000003ee) + }, + { /* i=3675; 101 / 65 */ + RTUINT128_INIT_C(0x0000001a6edf4a40, 0x30c55e1a120c08c8), RTUINT128_INIT_C(0x0000000000000000, 0x1f79fe9c0bee27b0), + RTUINT128_INIT_C(0x0000000000000000, 0x000000d6fb3fc462), RTUINT128_INIT_C(0x0000000000000000, 0x1bf3cf95d62e1768) + }, + { /* i=3676; 125 / 33 */ + RTUINT128_INIT_C(0x0dc05aac43535d35, 0xda18dc47303d7c12), RTUINT128_INIT_C(0x0000000000000000, 0x00000000ccc7d8ca), + RTUINT128_INIT_C(0x000000001130dbc7, 0x110eb658234a440c), RTUINT128_INIT_C(0x0000000000000000, 0x0000000038e5aa9a) + }, + { /* i=3677; 128 / 62 */ + RTUINT128_INIT_C(0x5e97460fac3b882e, 0x44aff0e4ff4a8489), RTUINT128_INIT_C(0x0000000000000000, 0x3b09cea5c0030fea), + RTUINT128_INIT_C(0x0000000000000001, 0x9a297bb7e0e9e043), RTUINT128_INIT_C(0x0000000000000000, 0x141f9484d4969a4b) + }, + { /* i=3678; 46 / 28 */ + RTUINT128_INIT_C(0x0000000000000000, 0x00000267dfc61865), RTUINT128_INIT_C(0x0000000000000000, 0x000000000ae3e1c7), + RTUINT128_INIT_C(0x0000000000000000, 0x000000000000388d), RTUINT128_INIT_C(0x0000000000000000, 0x0000000006df35ca) + }, + { /* i=3679; 122 / 82 */ + RTUINT128_INIT_C(0x00275c7b5f6cfca1, 0x8b905cb8e024acb2), RTUINT128_INIT_C(0x0000000000014301, 0x678001dcdfb52b25), + RTUINT128_INIT_C(0x0000000000000000, 0x0000001f322d9fab), RTUINT128_INIT_C(0x000000000000efcc, 0x5972007d1cd3dffb) + }, + { /* i=3680; 45 / 22 */ + RTUINT128_INIT_C(0x0000000000000000, 0x0000089eddae6fd8), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000183919), + RTUINT128_INIT_C(0x0000000000000000, 0x00000000005b1b27), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000151a09) + }, + { /* i=3681; 5 / 74 */ + RTUINT128_INIT_C(0x0000000000000000, 0x000000000000001d), RTUINT128_INIT_C(0x0000000000000374, 0x43b59f9b0421b5eb), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x0000000000000000, 0x000000000000001d) + }, + { /* i=3682; 31 / 30 */ + RTUINT128_INIT_C(0x0000000000000000, 0x0000000057732810), RTUINT128_INIT_C(0x0000000000000000, 0x000000001cb6de72), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000003), RTUINT128_INIT_C(0x0000000000000000, 0x00000000014e8cba) + }, + { /* i=3683; 119 / 124 */ + RTUINT128_INIT_C(0x00698e6d21ef4bd3, 0xebbc8611e73704aa), RTUINT128_INIT_C(0x01ac33ba633e2265, 0x3a8a360664bc1123), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x00698e6d21ef4bd3, 0xebbc8611e73704aa) + }, + { /* i=3684; 12 / 5 */ + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000777), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000009), + RTUINT128_INIT_C(0x0000000000000000, 0x00000000000000d4), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000003) + }, + { /* i=3685; 99 / 30 */ + RTUINT128_INIT_C(0x000000032c6e4b86, 0x84ba079a9a369be5), RTUINT128_INIT_C(0x0000000000000000, 0x0000000035d99b65), + RTUINT128_INIT_C(0x000000000000000f, 0x164020925ed559ca), RTUINT128_INIT_C(0x0000000000000000, 0x000000001472e133) + }, + { /* i=3686; 124 / 121 */ + RTUINT128_INIT_C(0x0575d7597ca3e816, 0x0171f9f45d83cc84), RTUINT128_INIT_C(0x01b34a321aba8f41, 0xc1439eec8a195001), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000003), RTUINT128_INIT_C(0x005bf8c32c743a50, 0xbda71d2ebf37dc81) + }, + { /* i=3687; 62 / 61 */ + RTUINT128_INIT_C(0x0000000000000000, 0x03167720eb6651eb), RTUINT128_INIT_C(0x0000000000000000, 0x13439c44c66d647d), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x0000000000000000, 0x03167720eb6651eb) + }, + { /* i=3688; 122 / 80 */ + RTUINT128_INIT_C(0x030e99b11c7a148b, 0xac50f48060ad8a29), RTUINT128_INIT_C(0x0000000000003a86, 0xb52444cc54b348aa), + RTUINT128_INIT_C(0x0000000000000000, 0x00000d5f2df2319c), RTUINT128_INIT_C(0x0000000000001d47, 0xdbc7bd6fdfd0b891) + }, + { /* i=3689; 126 / 107 */ + RTUINT128_INIT_C(0x3225b9b9c0730574, 0x3a5401d76ed2e316), RTUINT128_INIT_C(0x000006bf410c6318, 0x5af0f7335c44df22), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000076eb4), RTUINT128_INIT_C(0x000005f5fb7e64a9, 0xfc469a32dc97632e) + }, + { /* i=3690; 64 / 46 */ + RTUINT128_INIT_C(0x0000000000000000, 0xc06dcc67049f04c1), RTUINT128_INIT_C(0x0000000000000000, 0x0000108195855542), + RTUINT128_INIT_C(0x0000000000000000, 0x00000000000ba871), RTUINT128_INIT_C(0x0000000000000000, 0x00000c59dafb129f) + }, + { /* i=3691; 29 / 4 */ + RTUINT128_INIT_C(0x0000000000000000, 0x000000000dd0f37b), RTUINT128_INIT_C(0x0000000000000000, 0x000000000000000d), + RTUINT128_INIT_C(0x0000000000000000, 0x00000000011012ba), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000009) + }, + { /* i=3692; 117 / 113 */ + RTUINT128_INIT_C(0x001389ebbea8962f, 0x53d4ca39ab140f9b), RTUINT128_INIT_C(0x00017926cdc90f02, 0xb6470bce7f6c1338), + RTUINT128_INIT_C(0x0000000000000000, 0x000000000000000d), RTUINT128_INIT_C(0x000062f34b72d30c, 0x123930bd329715c3) + }, + { /* i=3693; 117 / 69 */ + RTUINT128_INIT_C(0x00069f0c0af0e3ed, 0x84b2b7093b10ac7e), RTUINT128_INIT_C(0x000000000000001d, 0xe521db4808d322ba), + RTUINT128_INIT_C(0x0000000000000000, 0x000038b32e706ada), RTUINT128_INIT_C(0x0000000000000015, 0x24be635fad84161a) + }, + { /* i=3694; 114 / 82 */ + RTUINT128_INIT_C(0x0001246294e4910f, 0x8269f1c4b3211520), RTUINT128_INIT_C(0x000000000002b4b7, 0xf7a257ca0220be43), + RTUINT128_INIT_C(0x0000000000000000, 0x000000006c0da9a8), RTUINT128_INIT_C(0x0000000000007593, 0x25c40dddc2a2fe28) + }, + { /* i=3695; 34 / 7 */ + RTUINT128_INIT_C(0x0000000000000000, 0x000000011ec151c4), RTUINT128_INIT_C(0x0000000000000000, 0x000000000000006e), + RTUINT128_INIT_C(0x0000000000000000, 0x00000000029b5b81), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000056) + }, + { /* i=3696; 75 / 44 */ + RTUINT128_INIT_C(0x00000000000004da, 0xf9519c9e381c8dc9), RTUINT128_INIT_C(0x0000000000000000, 0x0000063ee2c1b42a), + RTUINT128_INIT_C(0x0000000000000000, 0x00000000c703b0d2), RTUINT128_INIT_C(0x0000000000000000, 0x000005d146dbe355) + }, + { /* i=3697; 102 / 83 */ + RTUINT128_INIT_C(0x000000040c150a3f, 0x5fd10944f2cde423), RTUINT128_INIT_C(0x000000000002fa2f, 0x1a82c4b5da1c9119), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000015bfe), RTUINT128_INIT_C(0x000000000002f693, 0xd16f5e31d1c90a55) + }, + { /* i=3698; 121 / 43 */ + RTUINT128_INIT_C(0x01549904b22d1368, 0xb05938be32f3be48), RTUINT128_INIT_C(0x0000000000000000, 0x000002d3d8bc57f2), + RTUINT128_INIT_C(0x0000000000007875, 0x369711fe346b77e8), RTUINT128_INIT_C(0x0000000000000000, 0x00000250513c8cf8) + }, + { /* i=3699; 17 / 89 */ + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000011171), RTUINT128_INIT_C(0x0000000001500df3, 0x3e0011ad2cf38973), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000011171) + }, + { /* i=3700; 122 / 105 */ + RTUINT128_INIT_C(0x018f9cea34a3dbe9, 0x05916498d6693f48), RTUINT128_INIT_C(0x00000114286a937f, 0x9ed4f936ad63ab19), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000017271), RTUINT128_INIT_C(0x0000009a546a4d04, 0x195e5cdc4020973f) + }, + { /* i=3701; 74 / 19 */ + RTUINT128_INIT_C(0x000000000000033d, 0x274a4a64e496d1e6), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000020659), + RTUINT128_INIT_C(0x0000000000000000, 0x01997ff6834eb304), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000007d82) + }, + { /* i=3702; 76 / 9 */ + RTUINT128_INIT_C(0x00000000000008cc, 0x706e275bdb3e1747), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000134), + RTUINT128_INIT_C(0x0000000000000007, 0x502840f57e37e3d0), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000107) + }, + { /* i=3703; 123 / 104 */ + RTUINT128_INIT_C(0x009b183818f50a9b, 0xeebc6e0468b93736), RTUINT128_INIT_C(0x00000098d6163726, 0x05495f21f49cd83d), + RTUINT128_INIT_C(0x0000000000000000, 0x00000000000103c8), RTUINT128_INIT_C(0x000000385dce7d8e, 0x922ac1029f6a908e) + }, + { /* i=3704; 109 / 6 */ + RTUINT128_INIT_C(0x000004625a2b0ad0, 0x055a95ad17c656fe), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000007), + RTUINT128_INIT_C(0x000000a05606261d, 0xb79f39f427f7c348), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000006) + }, + { /* i=3705; 125 / 65 */ + RTUINT128_INIT_C(0x08b66083964b4495, 0xda57fc5e7354c9ee), RTUINT128_INIT_C(0x0000000000000001, 0x5eb787bdfbdb0629), + RTUINT128_INIT_C(0x0000000000000000, 0x065c06d818e067ce), RTUINT128_INIT_C(0x0000000000000000, 0x658440576dbb55f0) + }, + { /* i=3706; 114 / 28 */ + RTUINT128_INIT_C(0x00003f43aa2b0331, 0xb1f069b23f2eabe1), RTUINT128_INIT_C(0x0000000000000000, 0x000000000a27a5ef), + RTUINT128_INIT_C(0x0000000000063add, 0xaa07416e6aca003b), RTUINT128_INIT_C(0x0000000000000000, 0x0000000003756dcc) + }, + { /* i=3707; 128 / 115 */ + RTUINT128_INIT_C(0x4de0ebb3a9eb59a1, 0xd2f180ba5d136491), RTUINT128_INIT_C(0x00074457eea6fd19, 0xdc19809193182c37), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000ab7), RTUINT128_INIT_C(0x0003a1858aa9698c, 0x7db0e8eb4511a340) + }, + { /* i=3708; 125 / 127 */ + RTUINT128_INIT_C(0x0748e29cc38e3cd1, 0x4299eae3ce678c2d), RTUINT128_INIT_C(0x43f7ddb739ecf9c0, 0xf8b056d65c47ee1c), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x0748e29cc38e3cd1, 0x4299eae3ce678c2d) + }, + { /* i=3709; 120 / 108 */ + RTUINT128_INIT_C(0x00ff14d1ee45b83a, 0x8ffa0f8cf5b3a43f), RTUINT128_INIT_C(0x00000899744406ab, 0xde5b62d2d0c3aaa8), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000001da9), RTUINT128_INIT_C(0x00000558789bd894, 0x6b73f0bafa32f357) + }, + { /* i=3710; 123 / 11 */ + RTUINT128_INIT_C(0x0388440fe1abf9a6, 0xa285308589487a5e), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000167), + RTUINT128_INIT_C(0x000284d31e9416cd, 0x1f1d9b96d598cdb6), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000024) + }, + { /* i=3711; 97 / 19 */ + RTUINT128_INIT_C(0x000000003d1d932a, 0x95de9eee84d516f8), RTUINT128_INIT_C(0x0000000000000000, 0x000000000003c6d9), + RTUINT128_INIT_C(0x000000000000102e, 0x9aad2d562dd0be83), RTUINT128_INIT_C(0x0000000000000000, 0x00000000000147ed) + }, + { /* i=3712; 24 / 64 */ + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000e0bac5), RTUINT128_INIT_C(0x0000000000000000, 0x8be3399fb2660474), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000e0bac5) + }, + { /* i=3713; 120 / 94 */ + RTUINT128_INIT_C(0x00eb8099fe092d4b, 0xb3520db3136f8acf), RTUINT128_INIT_C(0x0000000028aa096b, 0x6e41fea18c9d10ce), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000005ca98a6), RTUINT128_INIT_C(0x000000002242fe1e, 0xf21f00315b10553b) + }, + { /* i=3714; 83 / 2 */ + RTUINT128_INIT_C(0x000000000004d103, 0x46052f478262af32), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000001), + RTUINT128_INIT_C(0x000000000004d103, 0x46052f478262af32), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000) + }, + { /* i=3715; 95 / 38 */ + RTUINT128_INIT_C(0x000000001009e461, 0xf29cd7168e88828d), RTUINT128_INIT_C(0x0000000000000000, 0x0000000c199e8082), + RTUINT128_INIT_C(0x0000000000000000, 0x015353eca45a4dc8), RTUINT128_INIT_C(0x0000000000000000, 0x00000009685902fd) + }, + { /* i=3716; 98 / 49 */ + RTUINT128_INIT_C(0x00000002dcc2fff9, 0xb619fceff7074eb3), RTUINT128_INIT_C(0x0000000000000000, 0x00001c1aad7f5243), + RTUINT128_INIT_C(0x0000000000000000, 0x001a12b1a79b4120), RTUINT128_INIT_C(0x0000000000000000, 0x000002796fa90353) + }, + { /* i=3717; 121 / 95 */ + RTUINT128_INIT_C(0x00b1bd6013aa0b03, 0x8e9e07f4714f994e), RTUINT128_INIT_C(0x00000000184d26dd, 0x2950feb64bbff69f), + RTUINT128_INIT_C(0x0000000000000000, 0x00000000075060f1), RTUINT128_INIT_C(0x000000001337650a, 0xb4cff633ba6ccd9f) + }, + { /* i=3718; 117 / 88 */ + RTUINT128_INIT_C(0x00081fa3525243bb, 0xc90218d3d538adbb), RTUINT128_INIT_C(0x000000000007aac5, 0x69ad01f95bf6590e), + RTUINT128_INIT_C(0x0000000000000000, 0x000000010f3e20d2), RTUINT128_INIT_C(0x000000000001c398, 0x061940d8369de03f) + }, + { /* i=3719; 15 / 15 */ + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000004c5e), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000003b13), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000001), RTUINT128_INIT_C(0x0000000000000000, 0x000000000000114b) + }, + { /* i=3720; 123 / 109 */ + RTUINT128_INIT_C(0x0580cae6c70e5dbe, 0x4f558fcfb19b2930), RTUINT128_INIT_C(0x0000161f4e632f01, 0x4bea382ca52af489), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000003fae), RTUINT128_INIT_C(0x00000d551713192e, 0x125064d1dc3b3d12) + }, + { /* i=3721; 113 / 66 */ + RTUINT128_INIT_C(0x00011169bbcc9b65, 0x2988a334c923ad61), RTUINT128_INIT_C(0x0000000000000000, 0x9c55bd4dc791b598), + RTUINT128_INIT_C(0x0000000000000000, 0x0001bfb770ef0408), RTUINT128_INIT_C(0x0000000000000000, 0x17bb39853cd7a0a1) + }, + { /* i=3722; 125 / 59 */ + RTUINT128_INIT_C(0x0334a8028b0b72e6, 0x1d48d94f0818a408), RTUINT128_INIT_C(0x0000000000000000, 0x03e30068b999265d), + RTUINT128_INIT_C(0x0000000000000000, 0xd324b52c44708a22), RTUINT128_INIT_C(0x0000000000000000, 0x01461d2c566369ae) + }, + { /* i=3723; 125 / 18 */ + RTUINT128_INIT_C(0x16af647adb617143, 0x8a014fe8973be7e4), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000017a43), + RTUINT128_INIT_C(0x00000f5a53dec064, 0xf870c616aaa68dfb), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000002133) + }, + { /* i=3724; 123 / 119 */ + RTUINT128_INIT_C(0x06d593b2f714b821, 0xa2ca4728923507c8), RTUINT128_INIT_C(0x0077a8fc88859ae0, 0x9a01803d0bb7a454), + RTUINT128_INIT_C(0x0000000000000000, 0x000000000000000e), RTUINT128_INIT_C(0x004a55e37fc63fd9, 0x36b543d1ee2a0b30) + }, + { /* i=3725; 120 / 58 */ + RTUINT128_INIT_C(0x009f8b11ac611182, 0xd97084855e8a731d), RTUINT128_INIT_C(0x0000000000000000, 0x026a159f01f9dd17), + RTUINT128_INIT_C(0x0000000000000000, 0x42147ffa7713bf74), RTUINT128_INIT_C(0x0000000000000000, 0x00087937f3a91bb1) + }, + { /* i=3726; 100 / 77 */ + RTUINT128_INIT_C(0x0000000d27d7fceb, 0x8a0a0465378d8c9c), RTUINT128_INIT_C(0x0000000000000e3d, 0xb432d29d282278ff), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000ec7d1f), RTUINT128_INIT_C(0x000000000000039b, 0xbe2ac6fcfb3862bb) + }, + { /* i=3727; 119 / 102 */ + RTUINT128_INIT_C(0x003a683afe42f11d, 0xd031c02a1041613b), RTUINT128_INIT_C(0x00000025b63f7880, 0x9b3a262c7e021fbc), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000018c7c), RTUINT128_INIT_C(0x0000000c891da2b4, 0xacfa6fb1be23322b) + }, + { /* i=3728; 67 / 47 */ + RTUINT128_INIT_C(0x0000000000000005, 0x02e9e5ec467cb507), RTUINT128_INIT_C(0x0000000000000000, 0x000011257ae388e6), + RTUINT128_INIT_C(0x0000000000000000, 0x00000000004ad236), RTUINT128_INIT_C(0x0000000000000000, 0x0000037021b52883) + }, + { /* i=3729; 16 / 125 */ + RTUINT128_INIT_C(0x0000000000000000, 0x00000000000054b3), RTUINT128_INIT_C(0x1bb413056c791114, 0x8dd53f7cceb140a5), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x0000000000000000, 0x00000000000054b3) + }, + { /* i=3730; 95 / 34 */ + RTUINT128_INIT_C(0x0000000025997780, 0x1c7c42ab2cc47193), RTUINT128_INIT_C(0x0000000000000000, 0x00000003bb65d755), + RTUINT128_INIT_C(0x0000000000000000, 0x0a1327cc8691e026), RTUINT128_INIT_C(0x0000000000000000, 0x00000002ca171af5) + }, + { /* i=3731; 68 / 49 */ + RTUINT128_INIT_C(0x0000000000000005, 0x54ddc0bf317ab53c), RTUINT128_INIT_C(0x0000000000000000, 0x0000d49f3cc51808), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000066b51), RTUINT128_INIT_C(0x0000000000000000, 0x00007f5805e2c2b4) + }, + { /* i=3732; 123 / 117 */ + RTUINT128_INIT_C(0x014473a49c6f4358, 0xab7d68085143a14e), RTUINT128_INIT_C(0x00051aa5c8fbc634, 0x81c014bd37a4a35f), + RTUINT128_INIT_C(0x0000000000000000, 0x000000000000003f), RTUINT128_INIT_C(0x0002e4d826797c6c, 0xbd384d779fbf6ced) + }, + { /* i=3733; 124 / 66 */ + RTUINT128_INIT_C(0x0363818c5271d8ff, 0x7071ebb7420345de), RTUINT128_INIT_C(0x0000000000000002, 0x23af0bf735806ca9), + RTUINT128_INIT_C(0x0000000000000000, 0x01957e06a7818154), RTUINT128_INIT_C(0x0000000000000000, 0xdca6f614fcf5756a) + }, + { /* i=3734; 122 / 37 */ + RTUINT128_INIT_C(0x01befce8ddce9a22, 0xa355d33720795e00), RTUINT128_INIT_C(0x0000000000000000, 0x00000003e49289ce), + RTUINT128_INIT_C(0x000000000072d28d, 0x9dce7e30e19c21f4), RTUINT128_INIT_C(0x0000000000000000, 0x00000000598277a8) + }, + { /* i=3735; 116 / 106 */ + RTUINT128_INIT_C(0x000dcb1dbb72becc, 0x0e1c69a50eb7b5b5), RTUINT128_INIT_C(0x0000029bbd4fffb8, 0xa3d411c7ff770f59), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000549), RTUINT128_INIT_C(0x000002022fa437f2, 0x324a6f9fe2779854) + }, + { /* i=3736; 125 / 65 */ + RTUINT128_INIT_C(0x1ac5f9b42d175e0b, 0xe2c749d95daecc81), RTUINT128_INIT_C(0x0000000000000001, 0x0360d440491358ae), + RTUINT128_INIT_C(0x0000000000000000, 0x1a6cb4e8f25c44e3), RTUINT128_INIT_C(0x0000000000000000, 0x3610bef71370f237) + }, + { /* i=3737; 95 / 74 */ + RTUINT128_INIT_C(0x000000000c517f7c, 0xb14d4f5125c65c76), RTUINT128_INIT_C(0x00000000000001a7, 0x96b980728a857afd), + RTUINT128_INIT_C(0x0000000000000000, 0x00000000000771d8), RTUINT128_INIT_C(0x000000000000017b, 0x1ff495e0fcf1e9fe) + }, + { /* i=3738; 128 / 112 */ + RTUINT128_INIT_C(0x52c8a8ce4158321a, 0x2c146c0ef2d758b9), RTUINT128_INIT_C(0x000043f453cd23f4, 0xedbbe2ca4748e5ea), + RTUINT128_INIT_C(0x0000000000000000, 0x00000000000137dd), RTUINT128_INIT_C(0x00002d13b2919ad9, 0xb05de6d5d99997b7) + }, + { /* i=3739; 113 / 22 */ + RTUINT128_INIT_C(0x000110e57c3bdc1f, 0xf9d4a0bebed31fd4), RTUINT128_INIT_C(0x0000000000000000, 0x00000000003ead82), + RTUINT128_INIT_C(0x00000000045a9d10, 0xd5918d0ed69576cc), RTUINT128_INIT_C(0x0000000000000000, 0x00000000003cf03c) + }, + { /* i=3740; 116 / 112 */ + RTUINT128_INIT_C(0x000e191a3ef392fa, 0xd75b1eef2c2189a2), RTUINT128_INIT_C(0x00008b890fd9930c, 0xfa98a6e3d3019fcb), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000019), RTUINT128_INIT_C(0x000078b7b2b436b6, 0x5e72d2af90f8eecf) + }, + { /* i=3741; 126 / 98 */ + RTUINT128_INIT_C(0x21140f745e93f81b, 0x761cab36d82ccf1f), RTUINT128_INIT_C(0x00000000b5d52e76, 0x539bca678f292b46), + RTUINT128_INIT_C(0x0000000000000000, 0x000000002e92130a), RTUINT128_INIT_C(0x00000000af4bb20f, 0x97380849f06eec63) + }, + { /* i=3742; 113 / 87 */ + RTUINT128_INIT_C(0x0000c6f81a6b483f, 0xee5da565115c678a), RTUINT128_INIT_C(0x000000000077141e, 0xbd00a3fa0a1a0623), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000001abc081), RTUINT128_INIT_C(0x00000000000dd6f0, 0xb400a36a39440fe7) + }, + { /* i=3743; 83 / 28 */ + RTUINT128_INIT_C(0x000000000000f699, 0x56872b02bde1b8b7), RTUINT128_INIT_C(0x0000000000000000, 0x0000000006aaf5d6), + RTUINT128_INIT_C(0x0000000000000000, 0x0024fbc59373348d), RTUINT128_INIT_C(0x0000000000000000, 0x0000000006a6d9d9) + }, + { /* i=3744; 23 / 47 */ + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000397d9d), RTUINT128_INIT_C(0x0000000000000000, 0x000026b9f7662286), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000397d9d) + }, + { /* i=3745; 76 / 61 */ + RTUINT128_INIT_C(0x0000000000000774, 0x087425df85359371), RTUINT128_INIT_C(0x0000000000000000, 0x1322e87615cfff61), + RTUINT128_INIT_C(0x0000000000000000, 0x00000000000063b5), RTUINT128_INIT_C(0x0000000000000000, 0x00e01ff2a96380dc) + }, + { /* i=3746; 126 / 123 */ + RTUINT128_INIT_C(0x20aaaf07b5bc1dd6, 0xc4221b43dc930dc4), RTUINT128_INIT_C(0x07260d62d656c75e, 0x71c06209f759cb8e), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000004), RTUINT128_INIT_C(0x0412797c5c61005c, 0xfd20931bff2bdf8c) + }, + { /* i=3747; 43 / 6 */ + RTUINT128_INIT_C(0x0000000000000000, 0x000006d79800ff71), RTUINT128_INIT_C(0x0000000000000000, 0x000000000000001b), + RTUINT128_INIT_C(0x0000000000000000, 0x00000040dfb42f63), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000) + }, + { /* i=3748; 111 / 108 */ + RTUINT128_INIT_C(0x0000317a278214fa, 0x323cea4cfc2ec2c4), RTUINT128_INIT_C(0x000008b06ef6c6e6, 0xa3abd023d48ff95f), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000005), RTUINT128_INIT_C(0x00000607fcb03278, 0xffe1d999d55ee3e9) + }, + { /* i=3749; 119 / 83 */ + RTUINT128_INIT_C(0x005a677c2079399f, 0x5f42f6841bcc3df8), RTUINT128_INIT_C(0x000000000007988d, 0xabc769545cbad288), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000be6d598ce), RTUINT128_INIT_C(0x000000000001bd74, 0x53ba1123354e1488) + }, + { /* i=3750; 120 / 15 */ + RTUINT128_INIT_C(0x003bcf600d88dced, 0x4782d69ec9280ae2), RTUINT128_INIT_C(0x0000000000000000, 0x000000000000097d), + RTUINT128_INIT_C(0x0000064db6dcdae3, 0x1d5428593a5d800e), RTUINT128_INIT_C(0x0000000000000000, 0x000000000000060c) + }, + { /* i=3751; 127 / 87 */ + RTUINT128_INIT_C(0x2f2469008a179cc6, 0x287a51e034f6be0b), RTUINT128_INIT_C(0x000000000037a6d0, 0x42d18dd64615335c), + RTUINT128_INIT_C(0x0000000000000000, 0x000000d8db3e75c3), RTUINT128_INIT_C(0x00000000000d3db7, 0xb34be7eefe0f92f7) + }, + { /* i=3752; 81 / 2 */ + RTUINT128_INIT_C(0x000000000001b9f9, 0x689ea2961e803942), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000002), + RTUINT128_INIT_C(0x000000000000dcfc, 0xb44f514b0f401ca1), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000) + }, + { /* i=3753; 124 / 65 */ + RTUINT128_INIT_C(0x022eadb1177de9be, 0xfb772e22dac9d723), RTUINT128_INIT_C(0x0000000000000000, 0x0c10e38cae41122f), + RTUINT128_INIT_C(0x0000000000000000, 0x2e4d4f035e600cad), RTUINT128_INIT_C(0x0000000000000000, 0x0322db44f8565960) + }, + { /* i=3754; 96 / 21 */ + RTUINT128_INIT_C(0x000000007c077fd1, 0x377254337d9a0399), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000003970), + RTUINT128_INIT_C(0x00000000000228cd, 0x05090b2edf30b4f6), RTUINT128_INIT_C(0x0000000000000000, 0x00000000000011f9) + }, + { /* i=3755; 121 / 113 */ + RTUINT128_INIT_C(0x0164dcd00c5150a8, 0x85cc5493ba17e754), RTUINT128_INIT_C(0x0001922f8b08eb51, 0xa501a020167e94bf), + RTUINT128_INIT_C(0x0000000000000000, 0x00000000000000e3), RTUINT128_INIT_C(0x00003ca7c368a743, 0x355b581fc7da01f7) + }, + { /* i=3756; 123 / 99 */ + RTUINT128_INIT_C(0x07a87abffa4c5ffd, 0x8f3950ea8ee847d3), RTUINT128_INIT_C(0x00000003481c7576, 0xd655318bfc707db4), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000002556680), RTUINT128_INIT_C(0x00000002a722767f, 0xe76f12025fcfb5d3) + }, + { /* i=3757; 111 / 39 */ + RTUINT128_INIT_C(0x000012b8b5db13d6, 0xb8be80b1374a3235), RTUINT128_INIT_C(0x0000000000000000, 0x0000000d82441b1f), + RTUINT128_INIT_C(0x0000000000000162, 0xc86ff427aa43b41d), RTUINT128_INIT_C(0x0000000000000000, 0x00000002e36453b2) + }, + { /* i=3758; 115 / 87 */ + RTUINT128_INIT_C(0x0007012855ef107b, 0x55d712e518a7e08a), RTUINT128_INIT_C(0x0000000000074d1c, 0x9bc607eee1fa5c21), + RTUINT128_INIT_C(0x0000000000000000, 0x00000000f598d862), RTUINT128_INIT_C(0x00000000000264ec, 0x493bb3f5107cc3e8) + }, + { /* i=3759; 114 / 76 */ + RTUINT128_INIT_C(0x00021c95aaad0864, 0x968e16014b878d4e), RTUINT128_INIT_C(0x0000000000000632, 0x07d72e8b46234713), + RTUINT128_INIT_C(0x0000000000000000, 0x00000057415eff9f), RTUINT128_INIT_C(0x0000000000000459, 0x169b952eabd87b81) + }, + { /* i=3760; 61 / 112 */ + RTUINT128_INIT_C(0x0000000000000000, 0x12eed4622329e764), RTUINT128_INIT_C(0x0000814781c9ddc7, 0xbedc7970fcd72c13), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x0000000000000000, 0x12eed4622329e764) + }, + { /* i=3761; 99 / 85 */ + RTUINT128_INIT_C(0x000000058521060c, 0xc8b03836f63b9c48), RTUINT128_INIT_C(0x00000000001c13ee, 0x707e5222cb878c6c), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000003254), RTUINT128_INIT_C(0x000000000005e9d7, 0x3332790bb45470d8) + }, + { /* i=3762; 97 / 63 */ + RTUINT128_INIT_C(0x00000000c2e8c893, 0x5c41be44f3dde101), RTUINT128_INIT_C(0x0000000000000000, 0x5d45849cc065618d), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000216f665f8), RTUINT128_INIT_C(0x0000000000000000, 0x2ba3139ab6acbf69) + }, + { /* i=3763; 120 / 70 */ + RTUINT128_INIT_C(0x00b1951bb69c1702, 0x746a1bf1d131b0aa), RTUINT128_INIT_C(0x0000000000000004, 0x821ddfa758a13fc6), + RTUINT128_INIT_C(0x0000000000000000, 0x002763f0b0420664), RTUINT128_INIT_C(0x0000000000000002, 0x0d6dc174d9aa2352) + }, + { /* i=3764; 114 / 107 */ + RTUINT128_INIT_C(0x0001fc35e7971523, 0xb67dc7d1edb149d3), RTUINT128_INIT_C(0x00000766abf079b4, 0x0fb9dacaa27b9625), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000044), RTUINT128_INIT_C(0x000004f03bb6c14f, 0x891fa9fec4dd67ff) + }, + { /* i=3765; 125 / 98 */ + RTUINT128_INIT_C(0x094f0036d13c84f9, 0x8735c1ba76ff2d66), RTUINT128_INIT_C(0x00000001cdc76385, 0xf6b1e7eb3e06a58b), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000005291540), RTUINT128_INIT_C(0x0000000175f3aa39, 0x85d26a882f7e63a6) + }, + { /* i=3766; 124 / 11 */ + RTUINT128_INIT_C(0x0e28ec2373f3397d, 0xc720a525c82be55f), RTUINT128_INIT_C(0x0000000000000000, 0x00000000000006de), + RTUINT128_INIT_C(0x00020fdc7d274f65, 0x4707bc86b852bcb5), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000269) + }, + { /* i=3767; 14 / 5 */ + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000003c21), RTUINT128_INIT_C(0x0000000000000000, 0x000000000000001d), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000212), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000017) + }, + { /* i=3768; 95 / 34 */ + RTUINT128_INIT_C(0x00000000319030cd, 0x98a0e337c767de8b), RTUINT128_INIT_C(0x0000000000000000, 0x000000005bf053d5), + RTUINT128_INIT_C(0x0000000000000000, 0x8a01c7928cce4174), RTUINT128_INIT_C(0x0000000000000000, 0x0000000027d2cd07) + }, + { /* i=3769; 119 / 96 */ + RTUINT128_INIT_C(0x003fba14e13167b8, 0xc910a00ec9e506f1), RTUINT128_INIT_C(0x0000000085ea568c, 0x05716ca462e48a8e), + RTUINT128_INIT_C(0x0000000000000000, 0x000000000079d2e4), RTUINT128_INIT_C(0x00000000794ee3f0, 0x8b3a4681bf932479) + }, + { /* i=3770; 126 / 53 */ + RTUINT128_INIT_C(0x217b98df2bf60654, 0x18599e6c65c538eb), RTUINT128_INIT_C(0x0000000000000000, 0x0010b3a353047411), + RTUINT128_INIT_C(0x0000000000000201, 0x377a7c616759615d), RTUINT128_INIT_C(0x0000000000000000, 0x00069bf25c439dbe) + }, + { /* i=3771; 122 / 56 */ + RTUINT128_INIT_C(0x03813e49fb09eb8e, 0xa2946d39162cd51f), RTUINT128_INIT_C(0x0000000000000000, 0x00883d4ff170e3cb), + RTUINT128_INIT_C(0x0000000000000006, 0x95f5a592443d698e), RTUINT128_INIT_C(0x0000000000000000, 0x00335baba8c13785) + }, + { /* i=3772; 127 / 55 */ + RTUINT128_INIT_C(0x0e7ae789aab2e8b7, 0xc3ef67e35f55e22a), RTUINT128_INIT_C(0x0000000000000000, 0x003162760a336089), + RTUINT128_INIT_C(0x000000000000004b, 0x0fdaafd082d60ee5), RTUINT128_INIT_C(0x0000000000000000, 0x001f2b752b93099d) + }, + { /* i=3773; 124 / 44 */ + RTUINT128_INIT_C(0x09195f1f767bf99c, 0xd7ea7d51323c175a), RTUINT128_INIT_C(0x0000000000000000, 0x00000c9149a6a8ec), + RTUINT128_INIT_C(0x000000000000b959, 0x30a697cba67d1c59), RTUINT128_INIT_C(0x0000000000000000, 0x00000bb2d9958d4e) + }, + { /* i=3774; 124 / 72 */ + RTUINT128_INIT_C(0x0d6f7c1bb30c5938, 0x4a5f2e70a721336a), RTUINT128_INIT_C(0x0000000000000035, 0x49f45747cac7e7e3), + RTUINT128_INIT_C(0x0000000000000000, 0x00408b4c3adefb1b), RTUINT128_INIT_C(0x0000000000000008, 0x40d259c3bed62d79) + }, + { /* i=3775; 118 / 1 */ + RTUINT128_INIT_C(0x003b8a27d90fde3d, 0x72d02d41c9c6f5f2), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000001), + RTUINT128_INIT_C(0x003b8a27d90fde3d, 0x72d02d41c9c6f5f2), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000) + }, + { /* i=3776; 85 / 35 */ + RTUINT128_INIT_C(0x000000000012eabe, 0xc26b44fef19577b1), RTUINT128_INIT_C(0x0000000000000000, 0x00000001dee5d64e), + RTUINT128_INIT_C(0x0000000000000000, 0x000a1cbde7101b15), RTUINT128_INIT_C(0x0000000000000000, 0x00000001a440a94b) + }, + { /* i=3777; 16 / 4 */ + RTUINT128_INIT_C(0x0000000000000000, 0x000000000000811d), RTUINT128_INIT_C(0x0000000000000000, 0x000000000000000d), + RTUINT128_INIT_C(0x0000000000000000, 0x00000000000009ee), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000007) + }, + { /* i=3778; 53 / 67 */ + RTUINT128_INIT_C(0x0000000000000000, 0x0016144115fa614e), RTUINT128_INIT_C(0x0000000000000001, 0x4e4f14fa36d44456), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x0000000000000000, 0x0016144115fa614e) + }, + { /* i=3779; 121 / 113 */ + RTUINT128_INIT_C(0x01b853887ba66350, 0xf378e733a09981ae), RTUINT128_INIT_C(0x000053b640dcd933, 0x3cbd62f90e2791bb), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000542), RTUINT128_INIT_C(0x00002f47727863eb, 0x97b685b7348d4878) + }, + { /* i=3780; 113 / 100 */ + RTUINT128_INIT_C(0x0001949d18f9b297, 0xac692db4399b76fc), RTUINT128_INIT_C(0x0000000cbf3a5b2d, 0xbf54f6182a502464), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000001fbd), RTUINT128_INIT_C(0x0000000bd9d9d7a6, 0x20e290bd48087d28) + }, + { /* i=3781; 113 / 121 */ + RTUINT128_INIT_C(0x00001d5c745cc2b5, 0xae99d4ab1da92362), RTUINT128_INIT_C(0x0110447bcde96768, 0x2a7fd23bbf473e66), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x00001d5c745cc2b5, 0xae99d4ab1da92362) + }, + { /* i=3782; 45 / 22 */ + RTUINT128_INIT_C(0x0000000000000000, 0x00000aa907a1e074), RTUINT128_INIT_C(0x0000000000000000, 0x00000000001c979b), + RTUINT128_INIT_C(0x0000000000000000, 0x00000000005f7255), RTUINT128_INIT_C(0x0000000000000000, 0x00000000001b83fd) + }, + { /* i=3783; 108 / 42 */ + RTUINT128_INIT_C(0x000004c4c053adc3, 0xc838c17593d6433f), RTUINT128_INIT_C(0x0000000000000000, 0x000003aab14e6a48), + RTUINT128_INIT_C(0x0000000000000001, 0x4cec4798d9bdae5a), RTUINT128_INIT_C(0x0000000000000000, 0x0000013472dff5ef) + }, + { /* i=3784; 65 / 62 */ + RTUINT128_INIT_C(0x0000000000000000, 0x3f460e46357ee7ac), RTUINT128_INIT_C(0x0000000000000000, 0x3e4f916ac1b1d4e8), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000001), RTUINT128_INIT_C(0x0000000000000000, 0x00f67cdb73cd12c4) + }, + { /* i=3785; 116 / 112 */ + RTUINT128_INIT_C(0x000997acd51c2d42, 0xf4eec6922c34fe18), RTUINT128_INIT_C(0x00006678ff60c9a2, 0xaa7c94939e8297b5), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000017), RTUINT128_INIT_C(0x000062cde36a0fa5, 0xa3bd6d4eee795cd5) + }, + { /* i=3786; 125 / 121 */ + RTUINT128_INIT_C(0x15c594ca32cb676e, 0xb0677a3202bba0fa), RTUINT128_INIT_C(0x016854cb181d20f5, 0x709c37b0bfaaa663), + RTUINT128_INIT_C(0x0000000000000000, 0x000000000000000f), RTUINT128_INIT_C(0x00a89ce3c916790d, 0x174036d6c7bbe12d) + }, + { /* i=3787; 60 / 7 */ + RTUINT128_INIT_C(0x0000000000000000, 0x0ae68818527fba8f), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000053), + RTUINT128_INIT_C(0x0000000000000000, 0x00219ef0df10f5e9), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000004) + }, + { /* i=3788; 79 / 48 */ + RTUINT128_INIT_C(0x0000000000000675, 0x7cfccf89ee6294b5), RTUINT128_INIT_C(0x0000000000000000, 0x00005c139b8d39bd), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000011f52ef7), RTUINT128_INIT_C(0x0000000000000000, 0x000033ada9dee95a) + }, + { /* i=3789; 126 / 67 */ + RTUINT128_INIT_C(0x08286ea3c088d3ce, 0x3435ffad0dadc16b), RTUINT128_INIT_C(0x0000000000000004, 0x4e0aff115edcfd89), + RTUINT128_INIT_C(0x0000000000000000, 0x01e52255bb055c46), RTUINT128_INIT_C(0x0000000000000002, 0x104e5ad4ab7631f5) + }, + { /* i=3790; 123 / 39 */ + RTUINT128_INIT_C(0x07c96a0d768267fa, 0x93ba644602738a38), RTUINT128_INIT_C(0x0000000000000000, 0x0000004141017564), + RTUINT128_INIT_C(0x00000000001e8c6f, 0x26248731dbbfba1c), RTUINT128_INIT_C(0x0000000000000000, 0x00000040b5640b48) + }, + { /* i=3791; 98 / 28 */ + RTUINT128_INIT_C(0x0000000346c1e3ef, 0x0563b93867d86bfc), RTUINT128_INIT_C(0x0000000000000000, 0x000000000a83fe75), + RTUINT128_INIT_C(0x000000000000004f, 0xc35d199ff4cdb251), RTUINT128_INIT_C(0x0000000000000000, 0x0000000005768ef7) + }, + { /* i=3792; 24 / 31 */ + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000b8f151), RTUINT128_INIT_C(0x0000000000000000, 0x00000000540e7e00), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000b8f151) + }, + { /* i=3793; 42 / 5 */ + RTUINT128_INIT_C(0x0000000000000000, 0x00000015c1721784), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000002), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000ae0b90bc2), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000) + }, + { /* i=3794; 128 / 104 */ + RTUINT128_INIT_C(0x842636fc975bd08b, 0x840bbec9ade6ef48), RTUINT128_INIT_C(0x0000000a5279b259, 0x94daa86d32d6867a), + RTUINT128_INIT_C(0x0000000000000000, 0x000000000ccd6ebf), RTUINT128_INIT_C(0x00000008bf36cec1, 0x82b565612a5e2e42) + }, + { /* i=3795; 64 / 3 */ + RTUINT128_INIT_C(0x0000000000000000, 0x7950b51d24aae001), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000001), + RTUINT128_INIT_C(0x0000000000000000, 0x7950b51d24aae001), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000) + }, + { /* i=3796; 103 / 71 */ + RTUINT128_INIT_C(0x000000231f9e3f89, 0x093dfc951e30481e), RTUINT128_INIT_C(0x0000000000000018, 0x8ec937731326f169), + RTUINT128_INIT_C(0x0000000000000000, 0x000000016e2443ac), RTUINT128_INIT_C(0x0000000000000018, 0x1ef93ea2fe139a92) + }, + { /* i=3797; 79 / 78 */ + RTUINT128_INIT_C(0x0000000000004bb0, 0x147ab60c13eba4ff), RTUINT128_INIT_C(0x00000000000018c6, 0xfaa8d7762c4a8972), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000003), RTUINT128_INIT_C(0x000000000000015b, 0x24802fa98f0c08a9) + }, + { /* i=3798; 122 / 41 */ + RTUINT128_INIT_C(0x014b968f0ee69a45, 0xbc5951ba59843ca5), RTUINT128_INIT_C(0x0000000000000000, 0x000000c9b7648689), + RTUINT128_INIT_C(0x000000000001a4d2, 0x4424ced84fb232cc), RTUINT128_INIT_C(0x0000000000000000, 0x00000028c0e04579) + }, + { /* i=3799; 79 / 25 */ + RTUINT128_INIT_C(0x00000000000023f5, 0x47965c9909831d85), RTUINT128_INIT_C(0x0000000000000000, 0x00000000001521c6), + RTUINT128_INIT_C(0x0000000000000000, 0x01b39c2b24bcdecb), RTUINT128_INIT_C(0x0000000000000000, 0x00000000000fa183) + }, + { /* i=3800; 74 / 38 */ + RTUINT128_INIT_C(0x00000000000003ff, 0x57bad79663465244), RTUINT128_INIT_C(0x0000000000000000, 0x0000001c74c7e8c6), + RTUINT128_INIT_C(0x0000000000000000, 0x00000023f649957c), RTUINT128_INIT_C(0x0000000000000000, 0x00000013d380545c) + }, + { /* i=3801; 100 / 34 */ + RTUINT128_INIT_C(0x0000000f22e0d71a, 0xea04c1144042ddcb), RTUINT128_INIT_C(0x0000000000000000, 0x00000002dd1d2607), + RTUINT128_INIT_C(0x0000000000000005, 0x4916f8d7f2603265), RTUINT128_INIT_C(0x0000000000000000, 0x0000000171b57f08) + }, + { /* i=3802; 119 / 36 */ + RTUINT128_INIT_C(0x006f02755c6f2928, 0xc0a4ada0e54c9549), RTUINT128_INIT_C(0x0000000000000000, 0x0000000f72b4f5ea), + RTUINT128_INIT_C(0x0000000000072f9c, 0x9daa245a55a52621), RTUINT128_INIT_C(0x0000000000000000, 0x0000000f0da6261f) + }, + { /* i=3803; 119 / 77 */ + RTUINT128_INIT_C(0x0014f803e881ef61, 0xfdb737f52e389eb1), RTUINT128_INIT_C(0x0000000000001954, 0xedef31805f588168), + RTUINT128_INIT_C(0x0000000000000000, 0x000000d3e895e15d), RTUINT128_INIT_C(0x0000000000000885, 0x973e0c042fcd33e9) + }, + { /* i=3804; 79 / 8 */ + RTUINT128_INIT_C(0x000000000000787f, 0x2dfa89309372e695), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000038), + RTUINT128_INIT_C(0x0000000000000226, 0xd7ad9de0de0fc41e), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000005) + }, + { /* i=3805; 34 / 13 */ + RTUINT128_INIT_C(0x0000000000000000, 0x00000003a7599a6c), RTUINT128_INIT_C(0x0000000000000000, 0x000000000000077f), + RTUINT128_INIT_C(0x0000000000000000, 0x00000000007cc740), RTUINT128_INIT_C(0x0000000000000000, 0x00000000000001ac) + }, + { /* i=3806; 123 / 45 */ + RTUINT128_INIT_C(0x05fffe209bc6eb5c, 0x4cdec5106bd18a63), RTUINT128_INIT_C(0x0000000000000000, 0x000009c6acd71c70), + RTUINT128_INIT_C(0x0000000000009d1e, 0x162385e047e3a910), RTUINT128_INIT_C(0x0000000000000000, 0x000002ea5549d363) + }, + { /* i=3807; 109 / 63 */ + RTUINT128_INIT_C(0x000004ab7f5f3184, 0xc8302223fe17eae8), RTUINT128_INIT_C(0x0000000000000000, 0x35cc6fb5f46de781), + RTUINT128_INIT_C(0x0000000000000000, 0x00001638c3578aab), RTUINT128_INIT_C(0x0000000000000000, 0x2a73eaed8a0bbdbd) + }, + { /* i=3808; 86 / 17 */ + RTUINT128_INIT_C(0x000000000015fc50, 0x8e21b58d47063b38), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000017830), + RTUINT128_INIT_C(0x000000000000000e, 0xf622517eee211bca), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000005558) + }, + { /* i=3809; 25 / 105 */ + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000d67942), RTUINT128_INIT_C(0x00000007669a5020, 0xc33093811c505ddc), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000d67942) + }, + { /* i=3810; 123 / 91 */ + RTUINT128_INIT_C(0x009cb69123cd8011, 0xf5b14c6979817167), RTUINT128_INIT_C(0x000000000754791a, 0xccd015816765387f), + RTUINT128_INIT_C(0x0000000000000000, 0x00000000156138c2), RTUINT128_INIT_C(0x0000000005573059, 0x77c936be2751d929) + }, + { /* i=3811; 123 / 68 */ + RTUINT128_INIT_C(0x0018af2d6e049aa8, 0xd99f438f68003bff), RTUINT128_INIT_C(0x000000000000000c, 0xe14aaffed5c232b5), + RTUINT128_INIT_C(0x0000000000000000, 0x0001ea9e1c57bc66), RTUINT128_INIT_C(0x0000000000000004, 0xeab85eca97e01be1) + }, + { /* i=3812; 125 / 114 */ + RTUINT128_INIT_C(0x110579cba260faa0, 0xb12a4f85d869bdc0), RTUINT128_INIT_C(0x000066d11eb1fa8d, 0x375af409db629e91), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000002a61), RTUINT128_INIT_C(0x00003585cdd5e009, 0xcbaa39cb8a07decf) + }, + { /* i=3813; 102 / 94 */ + RTUINT128_INIT_C(0x0000003491261900, 0xe3849dd23505e171), RTUINT128_INIT_C(0x000000003938c6d6, 0x2f2662fac827d505), + RTUINT128_INIT_C(0x0000000000000000, 0x00000000000000eb), RTUINT128_INIT_C(0x000000000a079263, 0x9b47c19c787555da) + }, + { /* i=3814; 78 / 67 */ + RTUINT128_INIT_C(0x000000000000077e, 0x84159a52a0f69657), RTUINT128_INIT_C(0x0000000000000000, 0x57f75435a4ab7b14), + RTUINT128_INIT_C(0x0000000000000000, 0x00000000000015cf), RTUINT128_INIT_C(0x0000000000000000, 0x19301c7069356d2b) + }, + { /* i=3815; 127 / 110 */ + RTUINT128_INIT_C(0x63bbaac8bc5d262c, 0x202026d824c3d3a8), RTUINT128_INIT_C(0x0000100c73e94f3f, 0x890d25a5df2c6637), + RTUINT128_INIT_C(0x0000000000000000, 0x00000000000636e4), RTUINT128_INIT_C(0x000007c66e5df45e, 0x689666ff9e5f30ac) + }, + { /* i=3816; 117 / 49 */ + RTUINT128_INIT_C(0x000e1aac8f59751a, 0xf3efbc634b83f15b), RTUINT128_INIT_C(0x0000000000000000, 0x0001f95db68a86d9), + RTUINT128_INIT_C(0x0000000000000007, 0x2509215fde216cfb), RTUINT128_INIT_C(0x0000000000000000, 0x0001082c50d52e98) + }, + { /* i=3817; 125 / 21 */ + RTUINT128_INIT_C(0x069e6ffa430c8419, 0x46735afc85266ba4), RTUINT128_INIT_C(0x0000000000000000, 0x00000000000925f9), + RTUINT128_INIT_C(0x000000b937dc73a8, 0x14bc362c40836b6c), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000005398) + }, + { /* i=3818; 119 / 113 */ + RTUINT128_INIT_C(0x0060c40e0c8a396f, 0x90a300b522130660), RTUINT128_INIT_C(0x0001006e38dcce35, 0xfb6c8a6b16eca65d), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000060), RTUINT128_INIT_C(0x00009ab8b9bce531, 0x47ef188c8954a380) + }, + { /* i=3819; 126 / 114 */ + RTUINT128_INIT_C(0x3053fbf3774a10d9, 0x086c77529d5e1981), RTUINT128_INIT_C(0x0001e46e13efd592, 0xf090d92d7d657d1a), + RTUINT128_INIT_C(0x0000000000000000, 0x000000000000198a), RTUINT128_INIT_C(0x000018aa4c259625, 0x3521f38e1b711f7d) + }, + { /* i=3820; 107 / 12 */ + RTUINT128_INIT_C(0x000007bb629b1aad, 0x7bd6c5fa7ea48f57), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000bbc), + RTUINT128_INIT_C(0x00000000a8aec085, 0x2bc249867990c201), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000b9b) + }, + { /* i=3821; 119 / 59 */ + RTUINT128_INIT_C(0x001e2e4121bdfbe3, 0xf4e4eda0622ba973), RTUINT128_INIT_C(0x0000000000000000, 0x052ceb0477422e1a), + RTUINT128_INIT_C(0x0000000000000000, 0x05d4dcee62457a34), RTUINT128_INIT_C(0x0000000000000000, 0x033c613a3dbfe82b) + }, + { /* i=3822; 55 / 21 */ + RTUINT128_INIT_C(0x0000000000000000, 0x001e8723d04e482f), RTUINT128_INIT_C(0x0000000000000000, 0x00000000001806de), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000145446c2f), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000075d6d) + }, + { /* i=3823; 94 / 12 */ + RTUINT128_INIT_C(0x00000000302b6a7c, 0xe22c344c7e60e773), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000688), + RTUINT128_INIT_C(0x0000000000076010, 0x4dea48e962adaf4b), RTUINT128_INIT_C(0x0000000000000000, 0x000000000000059b) + }, + { /* i=3824; 44 / 57 */ + RTUINT128_INIT_C(0x0000000000000000, 0x0000039c72736373), RTUINT128_INIT_C(0x0000000000000000, 0x0176b40c1310c07f), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x0000000000000000, 0x0000039c72736373) + }, + { /* i=3825; 67 / 5 */ + RTUINT128_INIT_C(0x0000000000000001, 0x3e82a8ac34662678), RTUINT128_INIT_C(0x0000000000000000, 0x000000000000000b), + RTUINT128_INIT_C(0x0000000000000000, 0x1cf49af861dabdad), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000009) + }, + { /* i=3826; 102 / 53 */ + RTUINT128_INIT_C(0x000000261594ed8d, 0xa6880705673540fe), RTUINT128_INIT_C(0x0000000000000000, 0x001663d2587ae37c), + RTUINT128_INIT_C(0x0000000000000000, 0x0001b371e9bcb73d), RTUINT128_INIT_C(0x0000000000000000, 0x000bef9f8e3f6872) + }, + { /* i=3827; 116 / 75 */ + RTUINT128_INIT_C(0x000e8e218b1a2bee, 0xdc9828b10bbfbf60), RTUINT128_INIT_C(0x0000000000000660, 0xe6cad80141d0bbea), + RTUINT128_INIT_C(0x0000000000000000, 0x000002482b1efa92), RTUINT128_INIT_C(0x000000000000065d, 0x7b9749dd57c60fec) + }, + { /* i=3828; 121 / 100 */ + RTUINT128_INIT_C(0x01309e164f4c43a0, 0x6abcc9473a579ad2), RTUINT128_INIT_C(0x000000063ceeee64, 0x4cdb61cf2b64d9f7), + RTUINT128_INIT_C(0x0000000000000000, 0x000000000030d518), RTUINT128_INIT_C(0x0000000119be0d24, 0x56f21bd76138a8aa) + }, + { /* i=3829; 128 / 72 */ + RTUINT128_INIT_C(0x14667ed60df1fd94, 0x2559312cbb5edafe), RTUINT128_INIT_C(0x0000000000000080, 0x95b1e8493a88f1c2), + RTUINT128_INIT_C(0x0000000000000000, 0x00289d7de4139f2e), RTUINT128_INIT_C(0x000000000000005c, 0xf318a3746f35ec22) + }, + { /* i=3830; 114 / 12 */ + RTUINT128_INIT_C(0x0000f535d9667dd8, 0xefe4c20b4e709d02), RTUINT128_INIT_C(0x0000000000000000, 0x00000000000006f7), + RTUINT128_INIT_C(0x0000002334f56ec4, 0xf7a9d6789cb0170f), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000389) + }, + { /* i=3831; 116 / 86 */ + RTUINT128_INIT_C(0x00094abff380d47f, 0x950f5c384a4f8245), RTUINT128_INIT_C(0x00000000003efe2f, 0x3221aedc81e58ae4), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000025c31e88), RTUINT128_INIT_C(0x00000000000e359e, 0xefef80eea26b0125) + }, + { /* i=3832; 35 / 4 */ + RTUINT128_INIT_C(0x0000000000000000, 0x00000005662fcd2f), RTUINT128_INIT_C(0x0000000000000000, 0x000000000000000a), + RTUINT128_INIT_C(0x0000000000000000, 0x000000008a37faeb), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000001) + }, + { /* i=3833; 128 / 44 */ + RTUINT128_INIT_C(0xf47d64823992d6af, 0x046052cc173140a1), RTUINT128_INIT_C(0x0000000000000000, 0x000006968a9eee28), + RTUINT128_INIT_C(0x0000000000251c70, 0x61b7ec06e9bbf7b6), RTUINT128_INIT_C(0x0000000000000000, 0x0000063bd3335831) + }, + { /* i=3834; 119 / 65 */ + RTUINT128_INIT_C(0x0057f8a4e1460301, 0x57c2b87914e10c5b), RTUINT128_INIT_C(0x0000000000000000, 0x812ec743ccb9e6b6), + RTUINT128_INIT_C(0x0000000000000000, 0x00ae54ea060aa873), RTUINT128_INIT_C(0x0000000000000000, 0x4c33c1a2d6daf899) + }, + { /* i=3835; 30 / 6 */ + RTUINT128_INIT_C(0x0000000000000000, 0x0000000023c1f255), RTUINT128_INIT_C(0x0000000000000000, 0x000000000000002b), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000d4e1ea), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000007) + }, + { /* i=3836; 126 / 127 */ + RTUINT128_INIT_C(0x0b3715c78db1d03f, 0x3c683e45ccc3ba59), RTUINT128_INIT_C(0x20f821c930626f2d, 0x29fa839e2e9bdc4e), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x0b3715c78db1d03f, 0x3c683e45ccc3ba59) + }, + { /* i=3837; 112 / 4 */ + RTUINT128_INIT_C(0x0000da4316f33f4c, 0x72e1b09901726cff), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000004), + RTUINT128_INIT_C(0x00003690c5bccfd3, 0x1cb86c26405c9b3f), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000003) + }, + { /* i=3838; 106 / 21 */ + RTUINT128_INIT_C(0x000002c9cb93711b, 0xcf1521af0ab4f790), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000196f50), + RTUINT128_INIT_C(0x00000000001c104f, 0x333edc8d6561ae25), RTUINT128_INIT_C(0x0000000000000000, 0x00000000000f8100) + }, + { /* i=3839; 119 / 11 */ + RTUINT128_INIT_C(0x00298f3f187c4be5, 0xedb554bf8216d655), RTUINT128_INIT_C(0x0000000000000000, 0x000000000000014e), + RTUINT128_INIT_C(0x00001fdaa1cc409c, 0x47fe3e566aedac54), RTUINT128_INIT_C(0x0000000000000000, 0x00000000000000bd) + }, + { /* i=3840; 48 / 61 */ + RTUINT128_INIT_C(0x0000000000000000, 0x0000c6f3df9c389c), RTUINT128_INIT_C(0x0000000000000000, 0x17d8cd2e076e060c), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x0000000000000000, 0x0000c6f3df9c389c) + }, + { /* i=3841; 116 / 81 */ + RTUINT128_INIT_C(0x0004212fc1a1f967, 0x652362641ab639a4), RTUINT128_INIT_C(0x00000000000146ee, 0x2171878c0e44cffa), + RTUINT128_INIT_C(0x0000000000000000, 0x000000033bd23bb5), RTUINT128_INIT_C(0x000000000000c151, 0xf2a544c4ef0c8fe2) + }, + { /* i=3842; 19 / 5 */ + RTUINT128_INIT_C(0x0000000000000000, 0x000000000002b9f7), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000003), + RTUINT128_INIT_C(0x0000000000000000, 0x000000000000e8a7), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000002) + }, + { /* i=3843; 120 / 51 */ + RTUINT128_INIT_C(0x0011b7ee810e034b, 0x72ece5c14f9e5679), RTUINT128_INIT_C(0x0000000000000000, 0x0006817ef47eb462), + RTUINT128_INIT_C(0x0000000000000002, 0xb935779976929916), RTUINT128_INIT_C(0x0000000000000000, 0x0001b0be8708440d) + }, + { /* i=3844; 113 / 40 */ + RTUINT128_INIT_C(0x0000bab23fb72431, 0x9d31f80ac1569aa2), RTUINT128_INIT_C(0x0000000000000000, 0x000000eb341ba7b6), + RTUINT128_INIT_C(0x00000000000000cb, 0x342aaaddacd2272f), RTUINT128_INIT_C(0x0000000000000000, 0x000000701e6a1638) + }, + { /* i=3845; 118 / 89 */ + RTUINT128_INIT_C(0x0034b4e12ad592b2, 0x12c8229943dd7d51), RTUINT128_INIT_C(0x0000000001ffe998, 0xdd6e03f11f85a920), + RTUINT128_INIT_C(0x0000000000000000, 0x000000001a5b97d4), RTUINT128_INIT_C(0x00000000004b12fc, 0xeb6fdda2f40b8ed1) + }, + { /* i=3846; 81 / 6 */ + RTUINT128_INIT_C(0x00000000000047c6, 0x1d7f6822fba809bb), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000031), + RTUINT128_INIT_C(0x0000000000000176, 0xfb60a4159ca56376), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000025) + }, + { /* i=3847; 120 / 43 */ + RTUINT128_INIT_C(0x0031fa6e128df33d, 0x5ca8d9ca15edf044), RTUINT128_INIT_C(0x0000000000000000, 0x0000023ffcffe4b6), + RTUINT128_INIT_C(0x0000000000001636, 0x876e72da0efbf1c7), RTUINT128_INIT_C(0x0000000000000000, 0x0000007c5241d0ca) + }, + { /* i=3848; 119 / 83 */ + RTUINT128_INIT_C(0x003ca86d28adb298, 0x7b00e9aad161a74d), RTUINT128_INIT_C(0x00000000000791f8, 0x4477e5496752ba8e), + RTUINT128_INIT_C(0x0000000000000000, 0x00000008034231f2), RTUINT128_INIT_C(0x000000000006f7e8, 0x9b0ead8c8cdc1f11) + }, + { /* i=3849; 122 / 27 */ + RTUINT128_INIT_C(0x000d011d25c93a24, 0xd89f8d8997ba012d), RTUINT128_INIT_C(0x0000000000000000, 0x0000000007a2cb23), + RTUINT128_INIT_C(0x0000000001b3fb2d, 0x97cf33975eea324b), RTUINT128_INIT_C(0x0000000000000000, 0x00000000075da7ec) + }, + { /* i=3850; 84 / 20 */ + RTUINT128_INIT_C(0x00000000000a7a34, 0x7753693804738ced), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000083d6f), + RTUINT128_INIT_C(0x0000000000000001, 0x4582e464cb9fd490), RTUINT128_INIT_C(0x0000000000000000, 0x000000000000127d) + }, + { /* i=3851; 122 / 88 */ + RTUINT128_INIT_C(0x00b443373940a015, 0x583928a9cf41c194), RTUINT128_INIT_C(0x00000000008c7ebc, 0xc243c5ea2f017eb7), + RTUINT128_INIT_C(0x0000000000000000, 0x000000014876228b), RTUINT128_INIT_C(0x00000000003a5cf9, 0x96f803393643a637) + }, + { /* i=3852; 116 / 85 */ + RTUINT128_INIT_C(0x000f43374f699e7c, 0xa9c72a3ab0c1716d), RTUINT128_INIT_C(0x00000000000c4768, 0x280a20180d2d7427), + RTUINT128_INIT_C(0x0000000000000000, 0x000000013e347114), RTUINT128_INIT_C(0x00000000000a5ac0, 0xab90e7048f032761) + }, + { /* i=3853; 90 / 46 */ + RTUINT128_INIT_C(0x000000000104390e, 0x606590c500294fed), RTUINT128_INIT_C(0x0000000000000000, 0x00003efa2f32ba56), + RTUINT128_INIT_C(0x0000000000000000, 0x00000421cb8698b1), RTUINT128_INIT_C(0x0000000000000000, 0x00002e5e846f6a77) + }, + { /* i=3854; 58 / 46 */ + RTUINT128_INIT_C(0x0000000000000000, 0x03e2d6a1823df596), RTUINT128_INIT_C(0x0000000000000000, 0x000031899df6e99f), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000001415), RTUINT128_INIT_C(0x0000000000000000, 0x0000060042bc5f8b) + }, + { /* i=3855; 93 / 48 */ + RTUINT128_INIT_C(0x000000000bd57908, 0xdcb694c5f1c3054a), RTUINT128_INIT_C(0x0000000000000000, 0x0000e19b2586f550), + RTUINT128_INIT_C(0x0000000000000000, 0x00000d6d9b896871), RTUINT128_INIT_C(0x0000000000000000, 0x0000a93ad5b83cfa) + }, + { /* i=3856; 23 / 65 */ + RTUINT128_INIT_C(0x0000000000000000, 0x00000000000e0a2b), RTUINT128_INIT_C(0x0000000000000000, 0xb089b50ab6e888c4), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x0000000000000000, 0x00000000000e0a2b) + }, + { /* i=3857; 125 / 100 */ + RTUINT128_INIT_C(0x0c4819cacb160f71, 0x4027556a09994d1f), RTUINT128_INIT_C(0x00000009a935f233, 0x7d23cda7502d1f83), + RTUINT128_INIT_C(0x0000000000000000, 0x000000000145717a), RTUINT128_INIT_C(0x00000002dc1a0a36, 0xb9e7b000e7e075b1) + }, + { /* i=3858; 112 / 3 */ + RTUINT128_INIT_C(0x000009f80fc6786e, 0x5bbecf5aea024e08), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000004), + RTUINT128_INIT_C(0x0000027e03f19e1b, 0x96efb3d6ba809382), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000) + }, + { /* i=3859; 98 / 59 */ + RTUINT128_INIT_C(0x0000000067a937ef, 0x8e99c8c9c538ca23), RTUINT128_INIT_C(0x0000000000000000, 0x00c66a76fb92bec2), + RTUINT128_INIT_C(0x0000000000000000, 0x00000085bed5051e), RTUINT128_INIT_C(0x0000000000000000, 0x0051a677b8e2a567) + }, + { /* i=3860; 116 / 25 */ + RTUINT128_INIT_C(0x000939b776d7f687, 0x6c86ca96a02aadf4), RTUINT128_INIT_C(0x0000000000000000, 0x00000000016268cb), + RTUINT128_INIT_C(0x0000000006a9ef78, 0xa096e0c00edc06d6), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000fe5242) + }, + { /* i=3861; 127 / 5 */ + RTUINT128_INIT_C(0x350882687cc13e30, 0x75fc9a1523119f9f), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000015), + RTUINT128_INIT_C(0x0286801d5b462788, 0x672468dc6f625cef), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000004) + }, + { /* i=3862; 125 / 47 */ + RTUINT128_INIT_C(0x10bfcf059f55475b, 0x9c73994e4034027c), RTUINT128_INIT_C(0x0000000000000000, 0x000013a0a087281c), + RTUINT128_INIT_C(0x000000000000da75, 0xb57015500938f66f), RTUINT128_INIT_C(0x0000000000000000, 0x000009ad02eeb658) + }, + { /* i=3863; 121 / 127 */ + RTUINT128_INIT_C(0x01aaa417f6b1551e, 0x88798f1503e01940), RTUINT128_INIT_C(0x736610bef2b21274, 0x0e83398380eb630b), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x01aaa417f6b1551e, 0x88798f1503e01940) + }, + { /* i=3864; 126 / 118 */ + RTUINT128_INIT_C(0x31c27e94a63eca90, 0x0457b7f3cd867b35), RTUINT128_INIT_C(0x000e3e9bdd17355d, 0x6bf8371c32abdb25), + RTUINT128_INIT_C(0x0000000000000000, 0x000000000000037e), RTUINT128_INIT_C(0x0003da468f326e50, 0xf787437ad95f2fff) + }, + { /* i=3865; 115 / 98 */ + RTUINT128_INIT_C(0x0001ae24982337cb, 0xc8085c1c623efb5b), RTUINT128_INIT_C(0x00000000fde78308, 0xed0a2c776fc50902), + RTUINT128_INIT_C(0x0000000000000000, 0x000000000001b1b1), RTUINT128_INIT_C(0x00000000766f85b1, 0xaec9997bd6c75ef9) + }, + { /* i=3866; 120 / 121 */ + RTUINT128_INIT_C(0x00626716905449db, 0xf71f3b4dfa708248), RTUINT128_INIT_C(0x0158f99611f0c1e4, 0xc525ddd335e5ef96), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x00626716905449db, 0xf71f3b4dfa708248) + }, + { /* i=3867; 119 / 109 */ + RTUINT128_INIT_C(0x007b2aab6551a240, 0x932aa3d6f665c406), RTUINT128_INIT_C(0x00000454647f3e00, 0x5746aa5e95212f57), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000001c72), RTUINT128_INIT_C(0x00000218b9dffc8d, 0xfb106d68ec712b48) + }, + { /* i=3868; 114 / 117 */ + RTUINT128_INIT_C(0x0002a990a8e83ccc, 0x7cabe469db9fdf83), RTUINT128_INIT_C(0x00199cbab1652dbb, 0xf201d206a4cc0f8c), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x0002a990a8e83ccc, 0x7cabe469db9fdf83) + }, + { /* i=3869; 121 / 105 */ + RTUINT128_INIT_C(0x00aef2f6017c545b, 0xbbf6c18b212ce0c9), RTUINT128_INIT_C(0x000000e3f3ca1f31, 0x58e2e40049329163), + RTUINT128_INIT_C(0x0000000000000000, 0x000000000000c479), RTUINT128_INIT_C(0x000000910711cdfb, 0x0228c55dd0f65cfe) + }, + { /* i=3870; 115 / 108 */ + RTUINT128_INIT_C(0x0000003bbaf73d00, 0xe600685caf52502b), RTUINT128_INIT_C(0x000002249a8aaad3, 0x7d17800ed303e0d3), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x0000003bbaf73d00, 0xe600685caf52502b) + }, + { /* i=3871; 125 / 2 */ + RTUINT128_INIT_C(0x1f55ceefff57fad9, 0x2f07833adfb45114), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000003), + RTUINT128_INIT_C(0x0a71efa5551d539d, 0xba57d668f53c1b06), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000002) + }, + { /* i=3872; 1 / 121 */ + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000001), RTUINT128_INIT_C(0x001d11b6171d4c79, 0x844e7b1a064b623b), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000001) + }, + { /* i=3873; 114 / 80 */ + RTUINT128_INIT_C(0x0002f7e4ea28cd18, 0x6ef7df0f934fbf26), RTUINT128_INIT_C(0x00000000000048e7, 0x61f2c8253042787d), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000a6c597391), RTUINT128_INIT_C(0x00000000000045be, 0xbca9467ec2145959) + }, + { /* i=3874; 123 / 48 */ + RTUINT128_INIT_C(0x001d471ac20a64d2, 0xa1b0a74ae20a9ec4), RTUINT128_INIT_C(0x0000000000000000, 0x0000d4401253d43b), + RTUINT128_INIT_C(0x0000000000000023, 0x50051a0da60fbfe1), RTUINT128_INIT_C(0x0000000000000000, 0x000019c7899011e9) + }, + { /* i=3875; 127 / 54 */ + RTUINT128_INIT_C(0x0eb7e6867a8c4e3a, 0x2c6161c64889bd4b), RTUINT128_INIT_C(0x0000000000000000, 0x003a28fc27b86fdf), + RTUINT128_INIT_C(0x0000000000000040, 0xc8f4255d163f78fa), RTUINT128_INIT_C(0x0000000000000000, 0x002fa9e5581af585) + }, + { /* i=3876; 57 / 26 */ + RTUINT128_INIT_C(0x0000000000000000, 0x00ccafaa02eac282), RTUINT128_INIT_C(0x0000000000000000, 0x0000000001bcdd9a), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000075c9a17e), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000add6b6) + }, + { /* i=3877; 105 / 16 */ + RTUINT128_INIT_C(0x00000167593091b0, 0x34d57a6225be2520), RTUINT128_INIT_C(0x0000000000000000, 0x000000000000ee42), + RTUINT128_INIT_C(0x0000000001821b96, 0x0117953f7657cfb5), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000005276) + }, + { /* i=3878; 99 / 68 */ + RTUINT128_INIT_C(0x00000007a47326e4, 0x21b800d642fb0d1c), RTUINT128_INIT_C(0x0000000000000009, 0xf52188d9d1876590), + RTUINT128_INIT_C(0x0000000000000000, 0x00000000c47aab23), RTUINT128_INIT_C(0x0000000000000008, 0x3b7f47d08600fa6c) + }, + { /* i=3879; 30 / 2 */ + RTUINT128_INIT_C(0x0000000000000000, 0x000000003918f666), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000001), + RTUINT128_INIT_C(0x0000000000000000, 0x000000003918f666), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000) + }, + { /* i=3880; 128 / 111 */ + RTUINT128_INIT_C(0xee6d6e9ebc9e8481, 0x08661fb1a9d718ab), RTUINT128_INIT_C(0x000040be2999f5cd, 0xb9703050c8dc4ea6), + RTUINT128_INIT_C(0x0000000000000000, 0x000000000003aec4), RTUINT128_INIT_C(0x00001ff25c4352a4, 0x3cb7debd37c40d93) + }, + { /* i=3881; 114 / 122 */ + RTUINT128_INIT_C(0x0002a024dcdac322, 0xd912cfbc6a9917c4), RTUINT128_INIT_C(0x006b1d35f6c268c3, 0x5cc0db9b385d1d3d), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x0002a024dcdac322, 0xd912cfbc6a9917c4) + }, + { /* i=3882; 127 / 42 */ + RTUINT128_INIT_C(0x4ea744a4b5b930cb, 0xc28f5164e5641bd2), RTUINT128_INIT_C(0x0000000000000000, 0x0000003cbb12cd7a), + RTUINT128_INIT_C(0x00000000014b8cbd, 0xcd081cf50ef8e824), RTUINT128_INIT_C(0x0000000000000000, 0x0000001bd258a6aa) + }, + { /* i=3883; 30 / 4 */ + RTUINT128_INIT_C(0x0000000000000000, 0x000000002604aec1), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000001), + RTUINT128_INIT_C(0x0000000000000000, 0x000000002604aec1), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000) + }, + { /* i=3884; 128 / 107 */ + RTUINT128_INIT_C(0x9c14bdff4411a484, 0xe282d998682a2ae3), RTUINT128_INIT_C(0x0000013ea22dabcb, 0x1505d1d3752ca433), + RTUINT128_INIT_C(0x0000000000000000, 0x00000000007d667a), RTUINT128_INIT_C(0x0000013ae5b19785, 0x17e263569a909895) + }, + { /* i=3885; 113 / 8 */ + RTUINT128_INIT_C(0x000134dae9fd594c, 0x1b5b8aa677116edb), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000096), + RTUINT128_INIT_C(0x0000020f1cddd957, 0x8c21097529c0f834), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000063) + }, + { /* i=3886; 62 / 43 */ + RTUINT128_INIT_C(0x0000000000000000, 0x2b601ee602fafb81), RTUINT128_INIT_C(0x0000000000000000, 0x000005c30822a675), + RTUINT128_INIT_C(0x0000000000000000, 0x000000000007872e), RTUINT128_INIT_C(0x0000000000000000, 0x0000039db9c65f7b) + }, + { /* i=3887; 125 / 69 */ + RTUINT128_INIT_C(0x1f4a3b0381d89488, 0xa8ab5eb12c11d940), RTUINT128_INIT_C(0x000000000000001d, 0xea549e1eac95edee), + RTUINT128_INIT_C(0x0000000000000000, 0x010bc36068f3bd38), RTUINT128_INIT_C(0x0000000000000018, 0x4c81e45731b31730) + }, + { /* i=3888; 124 / 90 */ + RTUINT128_INIT_C(0x025c15750e112a74, 0xe4984bd5529e37ed), RTUINT128_INIT_C(0x000000000255f334, 0x17ffff4eb4265a6c), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000102a04597), RTUINT128_INIT_C(0x000000000212acf5, 0xda093ec15e1fc639) + }, + { /* i=3889; 35 / 38 */ + RTUINT128_INIT_C(0x0000000000000000, 0x000000007cadcadc), RTUINT128_INIT_C(0x0000000000000000, 0x00000011b649179f), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x0000000000000000, 0x000000007cadcadc) + }, + { /* i=3890; 115 / 111 */ + RTUINT128_INIT_C(0x000551d93f9efae6, 0x910eaeeac6f371f9), RTUINT128_INIT_C(0x000019c686da2615, 0x40926efac0e7b012), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000034), RTUINT128_INIT_C(0x00001585db4f3e95, 0x735023fb97e3ae51) + }, + { /* i=3891; 121 / 91 */ + RTUINT128_INIT_C(0x0092f35aee75b829, 0x00d344f3b011ef9a), RTUINT128_INIT_C(0x0000000003d49f0e, 0x3a2fdc20271a878d), + RTUINT128_INIT_C(0x0000000000000000, 0x00000000265cdeda), RTUINT128_INIT_C(0x0000000003b7ebb6, 0x11d1f201bd423b88) + }, + { /* i=3892; 66 / 27 */ + RTUINT128_INIT_C(0x0000000000000001, 0xd7c470ed93d3d2a2), RTUINT128_INIT_C(0x0000000000000000, 0x0000000004d1f795), + RTUINT128_INIT_C(0x0000000000000000, 0x00000061df90f979), RTUINT128_INIT_C(0x0000000000000000, 0x0000000003f5e035) + }, + { /* i=3893; 92 / 16 */ + RTUINT128_INIT_C(0x000000000807bf23, 0x78023fc71313e15d), RTUINT128_INIT_C(0x0000000000000000, 0x000000000000c560), + RTUINT128_INIT_C(0x0000000000000a6a, 0x59ffa2a02e6788c6), RTUINT128_INIT_C(0x0000000000000000, 0x000000000000391d) + }, + { /* i=3894; 97 / 55 */ + RTUINT128_INIT_C(0x00000000f124be8b, 0x619f925ea43570c6), RTUINT128_INIT_C(0x0000000000000000, 0x001775ac44596613), + RTUINT128_INIT_C(0x0000000000000000, 0x00000a4771432cb2), RTUINT128_INIT_C(0x0000000000000000, 0x000cbe1ea6883390) + }, + { /* i=3895; 122 / 95 */ + RTUINT128_INIT_C(0x0304aeedcb97aac4, 0x356366ec21ca1f78), RTUINT128_INIT_C(0x00000000728af023, 0xe98a5f6a8f31caa2), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000006beed50), RTUINT128_INIT_C(0x000000004dbacd66, 0xcf5e7d5a1966d2d8) + }, + { /* i=3896; 43 / 38 */ + RTUINT128_INIT_C(0x0000000000000000, 0x0000052fd6252928), RTUINT128_INIT_C(0x0000000000000000, 0x0000003cc74b8eaa), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000015), RTUINT128_INIT_C(0x0000000000000000, 0x000000337cf27536) + }, + { /* i=3897; 121 / 78 */ + RTUINT128_INIT_C(0x00ca3ac92100112d, 0x84be1626636dcdec), RTUINT128_INIT_C(0x000000000000128a, 0x4de773326c88dd4c), + RTUINT128_INIT_C(0x0000000000000000, 0x00000ae8586db4a1), RTUINT128_INIT_C(0x0000000000001056, 0xb2ba67e78c653120) + }, + { /* i=3898; 93 / 35 */ + RTUINT128_INIT_C(0x000000000e934331, 0x8c29b2dc32cc6773), RTUINT128_INIT_C(0x0000000000000000, 0x000000062e161f86), + RTUINT128_INIT_C(0x0000000000000000, 0x025bc2ff19d36bf0), RTUINT128_INIT_C(0x0000000000000000, 0x00000003ad6fd7d3) + }, + { /* i=3899; 116 / 24 */ + RTUINT128_INIT_C(0x000434fc088e8329, 0xa47b5a07139ffe1c), RTUINT128_INIT_C(0x0000000000000000, 0x00000000006e649c), + RTUINT128_INIT_C(0x0000000009c1837b, 0xfb3fec5fdf18578d), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000019030) + }, + { /* i=3900; 58 / 51 */ + RTUINT128_INIT_C(0x0000000000000000, 0x02a34405144cd4ff), RTUINT128_INIT_C(0x0000000000000000, 0x00010b610cfb69e0), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000286), RTUINT128_INIT_C(0x0000000000000000, 0x00008d1e51dfa9bf) + }, + { /* i=3901; 121 / 117 */ + RTUINT128_INIT_C(0x00454c95609036b4, 0xbd019bacfd7a5f4f), RTUINT128_INIT_C(0x0000deb217091904, 0x90f88a790bc68aee), + RTUINT128_INIT_C(0x0000000000000000, 0x000000000000004f), RTUINT128_INIT_C(0x000093a044c17e4c, 0x004ee0525b357fdd) + }, + { /* i=3902; 36 / 15 */ + RTUINT128_INIT_C(0x0000000000000000, 0x000000070b49ff57), RTUINT128_INIT_C(0x0000000000000000, 0x00000000000074d1), + RTUINT128_INIT_C(0x0000000000000000, 0x00000000000f6fdb), RTUINT128_INIT_C(0x0000000000000000, 0x000000000000718c) + }, + { /* i=3903; 112 / 100 */ + RTUINT128_INIT_C(0x00003e6cdd925ef3, 0xeb7cb230074ac696), RTUINT128_INIT_C(0x00000004ecac346b, 0x1cb2770bcfba91d7), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000cad), RTUINT128_INIT_C(0x00000000dabded39, 0x294db177e760244b) + }, + { /* i=3904; 88 / 86 */ + RTUINT128_INIT_C(0x0000000000a76a4b, 0x56e7ed08c678b5af), RTUINT128_INIT_C(0x000000000031772b, 0xa960bab93605fb78), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000003), RTUINT128_INIT_C(0x00000000001304c8, 0x5ac5bcdd2466c347) + }, + { /* i=3905; 29 / 51 */ + RTUINT128_INIT_C(0x0000000000000000, 0x000000001f10f77b), RTUINT128_INIT_C(0x0000000000000000, 0x00028685d44acede), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x0000000000000000, 0x000000001f10f77b) + }, + { /* i=3906; 50 / 22 */ + RTUINT128_INIT_C(0x0000000000000000, 0x0002bed7e7719edb), RTUINT128_INIT_C(0x0000000000000000, 0x00000000002f0129), + RTUINT128_INIT_C(0x0000000000000000, 0x000000000ef3e259), RTUINT128_INIT_C(0x0000000000000000, 0x000000000029059a) + }, + { /* i=3907; 122 / 23 */ + RTUINT128_INIT_C(0x0256a6945d99ff68, 0x22a450e409949103), RTUINT128_INIT_C(0x0000000000000000, 0x00000000003bc223), + RTUINT128_INIT_C(0x0000000a04926b86, 0xeed47b7ddd8166cb), RTUINT128_INIT_C(0x0000000000000000, 0x000000000034ad42) + }, + { /* i=3908; 98 / 59 */ + RTUINT128_INIT_C(0x00000002fded0f86, 0xbe4913fc6971920f), RTUINT128_INIT_C(0x0000000000000000, 0x02fe4bf7616cfdee), + RTUINT128_INIT_C(0x0000000000000000, 0x000000ffe04b618b), RTUINT128_INIT_C(0x0000000000000000, 0x01233f8f925283d5) + }, + { /* i=3909; 118 / 114 */ + RTUINT128_INIT_C(0x0039fcc202e83cb5, 0xf98956a2e31db22a), RTUINT128_INIT_C(0x0001734cfae4e920, 0xa66e2c65051d2a13), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000027), RTUINT128_INIT_C(0x00016c07ca08b8bc, 0x9ec0933f1bac4945) + }, + { /* i=3910; 125 / 34 */ + RTUINT128_INIT_C(0x0002a7d4a722e41b, 0xc1390fed90eee795), RTUINT128_INIT_C(0x0000000000000000, 0x0000000336539319), + RTUINT128_INIT_C(0x000000000000d3a3, 0xad9cf2779c9ddfa6), RTUINT128_INIT_C(0x0000000000000000, 0x000000021745be5f) + }, + { /* i=3911; 122 / 96 */ + RTUINT128_INIT_C(0x006f71b5581e9e9b, 0x6b62092cd6759147), RTUINT128_INIT_C(0x00000000eda4dfbf, 0xab4c9dfc843644b5), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000780d62), RTUINT128_INIT_C(0x000000001dcbef9e, 0xe5a9c25b435a12fd) + }, + { /* i=3912; 119 / 106 */ + RTUINT128_INIT_C(0x004fbce3c980206e, 0x4f1c128db3d0d004), RTUINT128_INIT_C(0x0000034c125e3780, 0x7418f725bbba8def), + RTUINT128_INIT_C(0x0000000000000000, 0x000000000000182f), RTUINT128_INIT_C(0x0000003394ffe4f6, 0xa75b2906bf425923) + }, + { /* i=3913; 115 / 78 */ + RTUINT128_INIT_C(0x0006624264d4f4e4, 0x0ad7ef99ce3f98c4), RTUINT128_INIT_C(0x0000000000003f56, 0x4ed8dfdac360dc5a), + RTUINT128_INIT_C(0x0000000000000000, 0x00000019cd738456), RTUINT128_INIT_C(0x0000000000003a31, 0xe860159d2ba92a88) + }, + { /* i=3914; 120 / 38 */ + RTUINT128_INIT_C(0x00ba9126d3464ce0, 0x9870a7f7bbc55c18), RTUINT128_INIT_C(0x0000000000000000, 0x0000001ebb35913f), + RTUINT128_INIT_C(0x0000000000061227, 0x6d69ea7fd3424ff5), RTUINT128_INIT_C(0x0000000000000000, 0x00000001aa70e9cd) + }, + { /* i=3915; 127 / 108 */ + RTUINT128_INIT_C(0x1ed0dede7bd62171, 0x59095ed9cbc6aeb1), RTUINT128_INIT_C(0x00000cffb23120ae, 0x1622c74ab8842217), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000025ee4), RTUINT128_INIT_C(0x000003537cb8edff, 0x4e4cff84ad65e035) + }, + { /* i=3916; 118 / 85 */ + RTUINT128_INIT_C(0x00142dbc192cc5ae, 0xdfa9bce59b45445b), RTUINT128_INIT_C(0x000000000012fd6f, 0x960a6b4784e03c95), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000110063081), RTUINT128_INIT_C(0x00000000000d8e17, 0xcf70e751df6ccd46) + }, + { /* i=3917; 124 / 3 */ + RTUINT128_INIT_C(0x07c4329991c4f288, 0xa03d6abbe73b96f9), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000001), + RTUINT128_INIT_C(0x07c4329991c4f288, 0xa03d6abbe73b96f9), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000) + }, + { /* i=3918; 120 / 96 */ + RTUINT128_INIT_C(0x00764100b330cbfb, 0x3919aa87d1e00e76), RTUINT128_INIT_C(0x0000000010ba1524, 0x1c4febdac605572d), + RTUINT128_INIT_C(0x0000000000000000, 0x000000000711d74c), RTUINT128_INIT_C(0x00000000100520ba, 0x0d599d898716621a) + }, + { /* i=3919; 116 / 118 */ + RTUINT128_INIT_C(0x00092db62b243d36, 0x22ac86c45f915f54), RTUINT128_INIT_C(0x0014808d0467c193, 0x05ec0973e03475cc), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x00092db62b243d36, 0x22ac86c45f915f54) + }, + { /* i=3920; 119 / 67 */ + RTUINT128_INIT_C(0x000cf7180a0a1b57, 0x3373c5a54c75d984), RTUINT128_INIT_C(0x0000000000000003, 0xc82fa2fe1bee05b2), + RTUINT128_INIT_C(0x0000000000000000, 0x00036d9bb2b1e3cc), RTUINT128_INIT_C(0x0000000000000003, 0xbc39841547aa79ac) + }, + { /* i=3921; 16 / 122 */ + RTUINT128_INIT_C(0x0000000000000000, 0x000000000000e620), RTUINT128_INIT_C(0x02d3a79809cb827c, 0xc07361addfebf772), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x0000000000000000, 0x000000000000e620) + }, + { /* i=3922; 94 / 35 */ + RTUINT128_INIT_C(0x00000000047cbda9, 0x6a32bba3d3322052), RTUINT128_INIT_C(0x0000000000000000, 0x000000079627202d), + RTUINT128_INIT_C(0x0000000000000000, 0x00976b1bd2c75b9e), RTUINT128_INIT_C(0x0000000000000000, 0x0000000751a1458c) + }, + { /* i=3923; 95 / 83 */ + RTUINT128_INIT_C(0x000000000ba5e0de, 0x6adb9b55d4086f70), RTUINT128_INIT_C(0x000000000006b03e, 0x8c38cdfe30c247d6), + RTUINT128_INIT_C(0x0000000000000000, 0x00000000000001bd), RTUINT128_INIT_C(0x0000000000058424, 0xac1d887b12519072) + }, + { /* i=3924; 85 / 59 */ + RTUINT128_INIT_C(0x000000000000e3a6, 0xa5edd82315e559f6), RTUINT128_INIT_C(0x0000000000000000, 0x07af59764305ad1d), + RTUINT128_INIT_C(0x0000000000000000, 0x00000000001d9f78), RTUINT128_INIT_C(0x0000000000000000, 0x00c5dd6e886e315e) + }, + { /* i=3925; 121 / 121 */ + RTUINT128_INIT_C(0x0140c7f5a1de54eb, 0x0c9bafab0205c356), RTUINT128_INIT_C(0x013938c9a23b6503, 0xb4f8271fa14dce7a), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000001), RTUINT128_INIT_C(0x00078f2bffa2efe7, 0x57a3888b60b7f4dc) + }, + { /* i=3926; 56 / 42 */ + RTUINT128_INIT_C(0x0000000000000000, 0x002466b0d4d36a95), RTUINT128_INIT_C(0x0000000000000000, 0x0000028033b84780), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000e8e), RTUINT128_INIT_C(0x0000000000000000, 0x000000c010b2c195) + }, + { /* i=3927; 125 / 80 */ + RTUINT128_INIT_C(0x185d48b491573837, 0x1597f42bad52c2cf), RTUINT128_INIT_C(0x000000000000fd5f, 0xa7fe0f3633b61310), + RTUINT128_INIT_C(0x0000000000000000, 0x0000189defc0648e), RTUINT128_INIT_C(0x000000000000b7b2, 0xdd5962bda2e1efef) + }, + { /* i=3928; 120 / 32 */ + RTUINT128_INIT_C(0x002ac20b6bb38fda, 0x92aaa64063bd692a), RTUINT128_INIT_C(0x0000000000000000, 0x0000000099d632ce), + RTUINT128_INIT_C(0x0000000000472756, 0x081b52537b824307), RTUINT128_INIT_C(0x0000000000000000, 0x0000000058fa1b88) + }, + { /* i=3929; 123 / 115 */ + RTUINT128_INIT_C(0x064845d8fc8ca6b0, 0x926c62fe22bbb3b0), RTUINT128_INIT_C(0x0007b75b26240290, 0x652cd63f12068156), + RTUINT128_INIT_C(0x0000000000000000, 0x00000000000000d0), RTUINT128_INIT_C(0x00034bc9ff4a915e, 0x5dfe4fbf7d729dd0) + }, + { /* i=3930; 116 / 92 */ + RTUINT128_INIT_C(0x0008b373ff71e43a, 0xb35b88f64c4eae66), RTUINT128_INIT_C(0x0000000002c58a7c, 0x0aca5c33bd25fadf), + RTUINT128_INIT_C(0x0000000000000000, 0x000000000323a85a), RTUINT128_INIT_C(0x000000000007f4ca, 0xe56adc82f6d52400) + }, + { /* i=3931; 82 / 49 */ + RTUINT128_INIT_C(0x0000000000018d8f, 0x1e4f2ddfb2f7c370), RTUINT128_INIT_C(0x0000000000000000, 0x000042dd1e68712e), + RTUINT128_INIT_C(0x0000000000000000, 0x00000005f2208963), RTUINT128_INIT_C(0x0000000000000000, 0x00003f256a4260a6) + }, + { /* i=3932; 77 / 64 */ + RTUINT128_INIT_C(0x0000000000001440, 0x806f636ced4aa7b4), RTUINT128_INIT_C(0x0000000000000000, 0xde4d02e84d36cc1b), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000001752), RTUINT128_INIT_C(0x0000000000000000, 0x608196144566da0e) + }, + { /* i=3933; 117 / 26 */ + RTUINT128_INIT_C(0x000a1ad5ea87f93a, 0xf52ce643821790ee), RTUINT128_INIT_C(0x0000000000000000, 0x0000000002510588), + RTUINT128_INIT_C(0x00000000045cb45c, 0x47d0dc0ceabc9343), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000d60656) + }, + { /* i=3934; 116 / 83 */ + RTUINT128_INIT_C(0x000c2d1f2221b7a2, 0x76395c4d5832899d), RTUINT128_INIT_C(0x0000000000070462, 0x43f34ac02fe6d1ca), + RTUINT128_INIT_C(0x0000000000000000, 0x00000001bc3764c7), RTUINT128_INIT_C(0x0000000000005dca, 0x38888fc0876c8d97) + }, + { /* i=3935; 24 / 21 */ + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000ef3131), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000119b96), + RTUINT128_INIT_C(0x0000000000000000, 0x000000000000000d), RTUINT128_INIT_C(0x0000000000000000, 0x00000000000a4a93) + }, + { /* i=3936; 99 / 91 */ + RTUINT128_INIT_C(0x00000003f4d06d96, 0x0b74e561a4a1ae5f), RTUINT128_INIT_C(0x00000000042625ff, 0x942d450374b36d1c), + RTUINT128_INIT_C(0x0000000000000000, 0x00000000000000f4), RTUINT128_INIT_C(0x00000000007435fc, 0xd04f1e16699dafaf) + }, + { /* i=3937; 70 / 46 */ + RTUINT128_INIT_C(0x0000000000000008, 0x1b9a205d43df12ed), RTUINT128_INIT_C(0x0000000000000000, 0x00001cf69492f0b6), + RTUINT128_INIT_C(0x0000000000000000, 0x000000000047a9d5), RTUINT128_INIT_C(0x0000000000000000, 0x00000a5de23aa57f) + }, + { /* i=3938; 58 / 22 */ + RTUINT128_INIT_C(0x0000000000000000, 0x01e1c8d87e8aa173), RTUINT128_INIT_C(0x0000000000000000, 0x000000000001541a), + RTUINT128_INIT_C(0x0000000000000000, 0x0000016aa5a868fc), RTUINT128_INIT_C(0x0000000000000000, 0x00000000000147db) + }, + { /* i=3939; 96 / 23 */ + RTUINT128_INIT_C(0x00000000650d8323, 0xa560c9c53443fa20), RTUINT128_INIT_C(0x0000000000000000, 0x000000000052a0d7), + RTUINT128_INIT_C(0x0000000000000139, 0x15414ae315bfe0d3), RTUINT128_INIT_C(0x0000000000000000, 0x00000000000448eb) + }, + { /* i=3940; 116 / 27 */ + RTUINT128_INIT_C(0x000a4afcff00bf8b, 0x300ff6a1f798dca1), RTUINT128_INIT_C(0x0000000000000000, 0x0000000007cfbedd), + RTUINT128_INIT_C(0x0000000001515248, 0x10ce4afd9b784ab8), RTUINT128_INIT_C(0x0000000000000000, 0x000000000683cbc9) + }, + { /* i=3941; 121 / 79 */ + RTUINT128_INIT_C(0x011bbd28b2358d39, 0xcdd097adf5a4979c), RTUINT128_INIT_C(0x000000000000632a, 0x6120fb0c83c6e493), + RTUINT128_INIT_C(0x0000000000000000, 0x000002dc7bdcff1a), RTUINT128_INIT_C(0x0000000000001b6c, 0x879e3e12666ef3ae) + }, + { /* i=3942; 48 / 61 */ + RTUINT128_INIT_C(0x0000000000000000, 0x00002568f4aab5e3), RTUINT128_INIT_C(0x0000000000000000, 0x1303ef05091cdfb3), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x0000000000000000, 0x00002568f4aab5e3) + }, + { /* i=3943; 117 / 126 */ + RTUINT128_INIT_C(0x000a1e01562caddc, 0xc98e0ef7c5045c03), RTUINT128_INIT_C(0x2753dbac362c4063, 0xc92052736493b9fa), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x000a1e01562caddc, 0xc98e0ef7c5045c03) + }, + { /* i=3944; 22 / 8 */ + RTUINT128_INIT_C(0x0000000000000000, 0x00000000001dccbe), RTUINT128_INIT_C(0x0000000000000000, 0x00000000000000cf), + RTUINT128_INIT_C(0x0000000000000000, 0x00000000000024da), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000078) + }, + { /* i=3945; 91 / 72 */ + RTUINT128_INIT_C(0x000000000020ef13, 0xe76cd307b3347cff), RTUINT128_INIT_C(0x000000000000008c, 0x2dbe15840bab0b4d), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000003c25), RTUINT128_INIT_C(0x0000000000000018, 0xbde8c435ecd5cede) + }, + { /* i=3946; 115 / 36 */ + RTUINT128_INIT_C(0x00016d4091ce6cf6, 0x0c719c3ec407375e), RTUINT128_INIT_C(0x0000000000000000, 0x0000000f99b0a0b3), + RTUINT128_INIT_C(0x0000000000001769, 0xbf66aae9361434cb), RTUINT128_INIT_C(0x0000000000000000, 0x0000000ab4576d6d) + }, + { /* i=3947; 68 / 49 */ + RTUINT128_INIT_C(0x0000000000000006, 0xf892ba606c34bd2a), RTUINT128_INIT_C(0x0000000000000000, 0x00019f5363f15a2d), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000044bfb), RTUINT128_INIT_C(0x0000000000000000, 0x000085905072240b) + }, + { /* i=3948; 78 / 10 */ + RTUINT128_INIT_C(0x0000000000002ff2, 0x19153f89362b6953), RTUINT128_INIT_C(0x0000000000000000, 0x00000000000003a2), + RTUINT128_INIT_C(0x000000000000000d, 0x32ad2abc27f8e3c2), RTUINT128_INIT_C(0x0000000000000000, 0x000000000000028f) + }, + { /* i=3949; 119 / 50 */ + RTUINT128_INIT_C(0x00561a1d3995a504, 0x6744828b0440c6fb), RTUINT128_INIT_C(0x0000000000000000, 0x000027507aef587c), + RTUINT128_INIT_C(0x0000000000000230, 0xa9b77759cabb786c), RTUINT128_INIT_C(0x0000000000000000, 0x000023337b3952ab) + }, + { /* i=3950; 117 / 76 */ + RTUINT128_INIT_C(0x00185b658cb09f0c, 0xbfd2728f94c99645), RTUINT128_INIT_C(0x000000000000056a, 0xcaa684fd744478e6), + RTUINT128_INIT_C(0x0000000000000000, 0x0000047f0be408af), RTUINT128_INIT_C(0x0000000000000123, 0xee3f8d63675bc10b) + }, + { /* i=3951; 128 / 68 */ + RTUINT128_INIT_C(0x45f920a350a18063, 0x5d3c057ffb7ec0a7), RTUINT128_INIT_C(0x0000000000000001, 0xf14aedaa52e3d6f2), + RTUINT128_INIT_C(0x0000000000000000, 0x240573b32d8e120a), RTUINT128_INIT_C(0x0000000000000000, 0x5cf4baa4f53f5733) + }, + { /* i=3952; 96 / 12 */ + RTUINT128_INIT_C(0x000000009d86a4a0, 0xbf0d7dd4a1594008), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000f2b), + RTUINT128_INIT_C(0x00000000000a62ab, 0xd9cf8bccf5d2992b), RTUINT128_INIT_C(0x0000000000000000, 0x00000000000000cf) + }, + { /* i=3953; 57 / 56 */ + RTUINT128_INIT_C(0x0000000000000000, 0x01f3f46f94ebe256), RTUINT128_INIT_C(0x0000000000000000, 0x00727789342741b4), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000004), RTUINT128_INIT_C(0x0000000000000000, 0x002a164ac44edb86) + }, + { /* i=3954; 26 / 14 */ + RTUINT128_INIT_C(0x0000000000000000, 0x00000000032876ba), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000002872), + RTUINT128_INIT_C(0x0000000000000000, 0x00000000000013fd), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000810) + }, + { /* i=3955; 26 / 3 */ + RTUINT128_INIT_C(0x0000000000000000, 0x0000000003e480bb), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000002), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000001f2405d), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000001) + }, + { /* i=3956; 58 / 74 */ + RTUINT128_INIT_C(0x0000000000000000, 0x014e664b84d82d56), RTUINT128_INIT_C(0x0000000000000220, 0x94f09ae57fb268ea), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x0000000000000000, 0x014e664b84d82d56) + }, + { /* i=3957; 124 / 76 */ + RTUINT128_INIT_C(0x07e11b8202f3ef86, 0x78e375646f1b5d92), RTUINT128_INIT_C(0x0000000000000ccb, 0x9ca01c291fe08850), + RTUINT128_INIT_C(0x0000000000000000, 0x00009da4c8583728), RTUINT128_INIT_C(0x0000000000000120, 0xab577630db3ce112) + }, + { /* i=3958; 122 / 40 */ + RTUINT128_INIT_C(0x00fbddf29601cfab, 0xe4e82a9f423ae37d), RTUINT128_INIT_C(0x0000000000000000, 0x00000051c596c962), + RTUINT128_INIT_C(0x0000000000031482, 0xafa770720e512518), RTUINT128_INIT_C(0x0000000000000000, 0x00000008dcfad84d) + }, + { /* i=3959; 113 / 77 */ + RTUINT128_INIT_C(0x0000d452a68c4c3f, 0xd5d51b2e386aa138), RTUINT128_INIT_C(0x00000000000014c4, 0xc7b2b3033b850ad1), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000a39256ac7), RTUINT128_INIT_C(0x00000000000007c8, 0xb0e1f738c44faec1) + }, + { /* i=3960; 118 / 117 */ + RTUINT128_INIT_C(0x003f2925555aaf6f, 0x046f764230bf2af7), RTUINT128_INIT_C(0x0003cbd8de84dec3, 0xccf5217a1c73c703), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000010), RTUINT128_INIT_C(0x00026b976d0cc332, 0x351d5ea06982bac7) + }, + { /* i=3961; 88 / 7 */ + RTUINT128_INIT_C(0x0000000000f7669a, 0x983820052f25b96e), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000069), + RTUINT128_INIT_C(0x0000000000025b2f, 0xcbcfc5ca6949808c), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000002) + }, + { /* i=3962; 61 / 20 */ + RTUINT128_INIT_C(0x0000000000000000, 0x14c1b07d5492e54b), RTUINT128_INIT_C(0x0000000000000000, 0x000000000002613c), + RTUINT128_INIT_C(0x0000000000000000, 0x000008b8cf4fc293), RTUINT128_INIT_C(0x0000000000000000, 0x00000000000197d7) + }, + { /* i=3963; 121 / 69 */ + RTUINT128_INIT_C(0x01ab717ddb58024c, 0xbd11fc4f4a430669), RTUINT128_INIT_C(0x0000000000000008, 0x28f2dec925dfc87b), + RTUINT128_INIT_C(0x0000000000000000, 0x0034620f26997532), RTUINT128_INIT_C(0x0000000000000007, 0x2021db008a6aa763) + }, + { /* i=3964; 125 / 112 */ + RTUINT128_INIT_C(0x1ccd59bee3048ca2, 0x5819d8251a71ca5c), RTUINT128_INIT_C(0x00002ad4ca0af2eb, 0xc920b53186779629), + RTUINT128_INIT_C(0x0000000000000000, 0x000000000000ac26), RTUINT128_INIT_C(0x000006698a2e1280, 0x8381ac72cbcdf446) + }, + { /* i=3965; 106 / 9 */ + RTUINT128_INIT_C(0x00000359a5f06484, 0x5ba189e118940369), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000029), + RTUINT128_INIT_C(0x00000014eb1259dd, 0xc3cbbeae1354c7e3), RTUINT128_INIT_C(0x0000000000000000, 0x000000000000000e) + }, + { /* i=3966; 119 / 61 */ + RTUINT128_INIT_C(0x005eafbf59ece816, 0xa25327c996bc21e8), RTUINT128_INIT_C(0x0000000000000000, 0x09ddb12bf6706320), + RTUINT128_INIT_C(0x0000000000000000, 0x0998e6a6ef6f0b0c), RTUINT128_INIT_C(0x0000000000000000, 0x0740281d5a551c68) + }, + { /* i=3967; 23 / 4 */ + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000125697), RTUINT128_INIT_C(0x0000000000000000, 0x000000000000000c), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000018737), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000003) + }, + { /* i=3968; 49 / 89 */ + RTUINT128_INIT_C(0x0000000000000000, 0x0001be67f3cf5110), RTUINT128_INIT_C(0x00000000015e0567, 0x16245ee326134f86), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x0000000000000000, 0x0001be67f3cf5110) + }, + { /* i=3969; 79 / 56 */ + RTUINT128_INIT_C(0x0000000000002aab, 0xbb32c2422a696e77), RTUINT128_INIT_C(0x0000000000000000, 0x001a8f506b6b6738), + RTUINT128_INIT_C(0x0000000000000000, 0x00000000019b49af), RTUINT128_INIT_C(0x0000000000000000, 0x0010663864a6e72f) + }, + { /* i=3970; 128 / 83 */ + RTUINT128_INIT_C(0x1d5468983a56457f, 0xd499f587cc249397), RTUINT128_INIT_C(0x000000000000a63a, 0xe37dd80fbcb78f10), + RTUINT128_INIT_C(0x0000000000000000, 0x00002d2b3576204e), RTUINT128_INIT_C(0x0000000000004a90, 0xf8f2543b18f4fcb7) + }, + { /* i=3971; 56 / 41 */ + RTUINT128_INIT_C(0x0000000000000000, 0x00b0b97498a74817), RTUINT128_INIT_C(0x0000000000000000, 0x000000723bc17126), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000018c0b), RTUINT128_INIT_C(0x0000000000000000, 0x0000001ccc50a375) + }, + { /* i=3972; 49 / 22 */ + RTUINT128_INIT_C(0x0000000000000000, 0x00005e4d7ed1c713), RTUINT128_INIT_C(0x0000000000000000, 0x00000000001ec2b7), + RTUINT128_INIT_C(0x0000000000000000, 0x000000000310d190), RTUINT128_INIT_C(0x0000000000000000, 0x00000000001cd923) + }, + { /* i=3973; 117 / 69 */ + RTUINT128_INIT_C(0x001c1ace2c3c3d32, 0x4a6adc831d60a28b), RTUINT128_INIT_C(0x000000000000001b, 0x2f3e1d56432639f3), + RTUINT128_INIT_C(0x0000000000000000, 0x000108aa525a6a5c), RTUINT128_INIT_C(0x0000000000000019, 0xa2f7ac56f2373137) + }, + { /* i=3974; 118 / 117 */ + RTUINT128_INIT_C(0x00081b838864124f, 0x5f04c54616de28cd), RTUINT128_INIT_C(0x0018ecb42542c73f, 0x64bdf0bee9d39f27), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x00081b838864124f, 0x5f04c54616de28cd) + }, + { /* i=3975; 124 / 127 */ + RTUINT128_INIT_C(0x098f5077603cb921, 0xd80427efc56dc0ea), RTUINT128_INIT_C(0x681c8099b371a47d, 0x16773e5b9b938d4c), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x098f5077603cb921, 0xd80427efc56dc0ea) + }, + { /* i=3976; 115 / 65 */ + RTUINT128_INIT_C(0x000286095dde38b4, 0x5db6e67b9aa69eab), RTUINT128_INIT_C(0x0000000000000001, 0xfd5e5e1b4846d719), + RTUINT128_INIT_C(0x0000000000000000, 0x000144afdec5c7b3), RTUINT128_INIT_C(0x0000000000000001, 0xb53f2916cbacc930) + }, + { /* i=3977; 53 / 10 */ + RTUINT128_INIT_C(0x0000000000000000, 0x0006e42dd86f6459), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000141), + RTUINT128_INIT_C(0x0000000000000000, 0x0000057ef251b15b), RTUINT128_INIT_C(0x0000000000000000, 0x000000000000013e) + }, + { /* i=3978; 108 / 34 */ + RTUINT128_INIT_C(0x000006c9e659b3bf, 0xdbf52629f8b968e4), RTUINT128_INIT_C(0x0000000000000000, 0x00000002d7bdab20), + RTUINT128_INIT_C(0x0000000000000263, 0x58e18382a604e289), RTUINT128_INIT_C(0x0000000000000000, 0x00000001a6a694c4) + }, + { /* i=3979; 116 / 73 */ + RTUINT128_INIT_C(0x000e8e424137f838, 0x03a7ad43f0ebf9c8), RTUINT128_INIT_C(0x0000000000000106, 0xd3164085d935ec2f), + RTUINT128_INIT_C(0x0000000000000000, 0x00000e2d8081c685), RTUINT128_INIT_C(0x0000000000000087, 0x91be2133df8ceb5d) + }, + { /* i=3980; 116 / 53 */ + RTUINT128_INIT_C(0x000a169728a5a140, 0xa5ee10b6147870d9), RTUINT128_INIT_C(0x0000000000000000, 0x00192f9f5b310734), + RTUINT128_INIT_C(0x0000000000000000, 0x668a65949de6233e), RTUINT128_INIT_C(0x0000000000000000, 0x0001111eede49641) + }, + { /* i=3981; 118 / 37 */ + RTUINT128_INIT_C(0x0034de0a91330de6, 0xbe5809233b9ee807), RTUINT128_INIT_C(0x0000000000000000, 0x0000001d78da9a00), + RTUINT128_INIT_C(0x000000000001cb37, 0x31229d0261ff5c42), RTUINT128_INIT_C(0x0000000000000000, 0x000000021deb3407) + }, + { /* i=3982; 118 / 56 */ + RTUINT128_INIT_C(0x001a161215feaa2c, 0x82e019a4a06eba19), RTUINT128_INIT_C(0x0000000000000000, 0x0073d29d72b29910), + RTUINT128_INIT_C(0x0000000000000000, 0x39a85ea0e644d607), RTUINT128_INIT_C(0x0000000000000000, 0x0073428029592aa9) + }, + { /* i=3983; 116 / 108 */ + RTUINT128_INIT_C(0x0006212ca3dad165, 0x21a994f43d58a977), RTUINT128_INIT_C(0x00000be091f2bdb8, 0xeacd062efc86ba7f), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000084), RTUINT128_INIT_C(0x0000016162b0fe0c, 0x0ff264ba07e07ffb) + }, + { /* i=3984; 82 / 37 */ + RTUINT128_INIT_C(0x0000000000038060, 0xe662ed188323132d), RTUINT128_INIT_C(0x0000000000000000, 0x000000078027fec4), + RTUINT128_INIT_C(0x0000000000000000, 0x00007781e5b0572f), RTUINT128_INIT_C(0x0000000000000000, 0x00000001e976b131) + }, + { /* i=3985; 103 / 24 */ + RTUINT128_INIT_C(0x000000651d6b7a4c, 0x0d016963a70737d8), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000e03bc8), + RTUINT128_INIT_C(0x0000000000007370, 0x8743ab2d5bafcc01), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000cb9c10) + }, + { /* i=3986; 107 / 20 */ + RTUINT128_INIT_C(0x00000536956f54c2, 0xc4326f622184be89), RTUINT128_INIT_C(0x0000000000000000, 0x00000000000baf0b), + RTUINT128_INIT_C(0x00000000007239bb, 0x99c79c1575b9d283), RTUINT128_INIT_C(0x0000000000000000, 0x00000000000025e8) + }, + { /* i=3987; 29 / 20 */ + RTUINT128_INIT_C(0x0000000000000000, 0x000000000a4f34d6), RTUINT128_INIT_C(0x0000000000000000, 0x00000000000ff4c8), + RTUINT128_INIT_C(0x0000000000000000, 0x00000000000000a5), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000066fee) + }, + { /* i=3988; 127 / 14 */ + RTUINT128_INIT_C(0x4641d9c627f43c63, 0xf34bac1ecd09e28a), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000001d7f), + RTUINT128_INIT_C(0x000261c545cfa72e, 0xc3e37f6df36a520a), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000d94) + }, + { /* i=3989; 33 / 110 */ + RTUINT128_INIT_C(0x0000000000000000, 0x00000001e9d6fcb4), RTUINT128_INIT_C(0x000029c8099044a6, 0x0d24d5f77541d9f6), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x0000000000000000, 0x00000001e9d6fcb4) + }, + { /* i=3990; 23 / 4 */ + RTUINT128_INIT_C(0x0000000000000000, 0x00000000006cbf81), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000008), + RTUINT128_INIT_C(0x0000000000000000, 0x00000000000d97f0), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000001) + }, + { /* i=3991; 87 / 10 */ + RTUINT128_INIT_C(0x000000000076a448, 0x84e2454b9cdfe3bc), RTUINT128_INIT_C(0x0000000000000000, 0x00000000000003e8), + RTUINT128_INIT_C(0x0000000000001e5f, 0x4df4f6575f220411), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000154) + }, + { /* i=3992; 116 / 45 */ + RTUINT128_INIT_C(0x0000a4d850cf7c3c, 0xc719a38ab46b1754), RTUINT128_INIT_C(0x0000000000000000, 0x00001c4dbdedb6a6), + RTUINT128_INIT_C(0x0000000000000005, 0xd2fbbf3c92422d2b), RTUINT128_INIT_C(0x0000000000000000, 0x000005bd41963b72) + }, + { /* i=3993; 108 / 94 */ + RTUINT128_INIT_C(0x000000e22e07b499, 0x866016341c49e4c4), RTUINT128_INIT_C(0x00000000189872b9, 0x202367f6cda4e3c6), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000932), RTUINT128_INIT_C(0x000000000438ca50, 0x00ce1ac526137218) + }, + { /* i=3994; 113 / 44 */ + RTUINT128_INIT_C(0x000098b60814cc70, 0x0801b10bdb3a90af), RTUINT128_INIT_C(0x0000000000000000, 0x000005c3ca00d66d), + RTUINT128_INIT_C(0x000000000000001a, 0x7d817802012d68ab), RTUINT128_INIT_C(0x0000000000000000, 0x0000055d77660de0) + }, + { /* i=3995; 122 / 85 */ + RTUINT128_INIT_C(0x01d367a559184403, 0xb95d0551076fa0a2), RTUINT128_INIT_C(0x00000000000808f5, 0x60732996a850cf20), + RTUINT128_INIT_C(0x0000000000000000, 0x0000003a2bd09f5b), RTUINT128_INIT_C(0x0000000000038c32, 0xae9b688658112042) + }, + { /* i=3996; 113 / 76 */ + RTUINT128_INIT_C(0x0001fbd06ec90263, 0xf2f3b9e9f9476227), RTUINT128_INIT_C(0x0000000000000351, 0x10be79dc4fbe2212), + RTUINT128_INIT_C(0x0000000000000000, 0x000000991c2b2673), RTUINT128_INIT_C(0x000000000000027e, 0xedefbab03cc96811) + }, + { /* i=3997; 59 / 40 */ + RTUINT128_INIT_C(0x0000000000000000, 0x05f4d00ca34134ed), RTUINT128_INIT_C(0x0000000000000000, 0x0000001080508572), + RTUINT128_INIT_C(0x0000000000000000, 0x00000000005c67f0), RTUINT128_INIT_C(0x0000000000000000, 0x00000003fd1b3c0d) + }, + { /* i=3998; 32 / 24 */ + RTUINT128_INIT_C(0x0000000000000000, 0x000000009f45b71c), RTUINT128_INIT_C(0x0000000000000000, 0x000000000023bd03), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000474), RTUINT128_INIT_C(0x0000000000000000, 0x00000000002005c0) + }, + { /* i=3999; 102 / 85 */ + RTUINT128_INIT_C(0x00000010256b7517, 0xd6715c14378d0821), RTUINT128_INIT_C(0x000000000006f1ed, 0x91c87bc961c5bfc7), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000025329), RTUINT128_INIT_C(0x0000000000038c36, 0x85a07a94f225cc42) + }, + { /* i=4000; 37 / 30 */ + RTUINT128_INIT_C(0x0000000000000000, 0x0000001ef800b255), RTUINT128_INIT_C(0x0000000000000000, 0x0000000005138ed8), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000619), RTUINT128_INIT_C(0x0000000000000000, 0x0000000003beaf3d) + }, + { /* i=4001; 88 / 49 */ + RTUINT128_INIT_C(0x00000000005718b4, 0xcd1e14e30c456da6), RTUINT128_INIT_C(0x0000000000000000, 0x000056473c4be5ed), + RTUINT128_INIT_C(0x0000000000000000, 0x000001026d879b71), RTUINT128_INIT_C(0x0000000000000000, 0x0000082951937109) + }, + { /* i=4002; 9 / 97 */ + RTUINT128_INIT_C(0x0000000000000000, 0x00000000000001d9), RTUINT128_INIT_C(0x000000019dfc2f18, 0x5a99e5c6f07d1ada), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x0000000000000000, 0x00000000000001d9) + }, + { /* i=4003; 36 / 8 */ + RTUINT128_INIT_C(0x0000000000000000, 0x0000000a5436752e), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000059), + RTUINT128_INIT_C(0x0000000000000000, 0x000000001db5d34b), RTUINT128_INIT_C(0x0000000000000000, 0x000000000000001b) + }, + { /* i=4004; 64 / 14 */ + RTUINT128_INIT_C(0x0000000000000000, 0x30e69cafda7f6855), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000003e62), + RTUINT128_INIT_C(0x0000000000000000, 0x0000c8ac8efc5a66), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000001949) + }, + { /* i=4005; 47 / 4 */ + RTUINT128_INIT_C(0x0000000000000000, 0x00005416bd473c74), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000002), + RTUINT128_INIT_C(0x0000000000000000, 0x00002a0b5ea39e3a), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000) + }, + { /* i=4006; 37 / 10 */ + RTUINT128_INIT_C(0x0000000000000000, 0x000000130190e8ce), RTUINT128_INIT_C(0x0000000000000000, 0x00000000000000d4), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000016f36688), RTUINT128_INIT_C(0x0000000000000000, 0x000000000000002e) + }, + { /* i=4007; 16 / 2 */ + RTUINT128_INIT_C(0x0000000000000000, 0x000000000000eb94), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000001), + RTUINT128_INIT_C(0x0000000000000000, 0x000000000000eb94), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000) + }, + { /* i=4008; 122 / 104 */ + RTUINT128_INIT_C(0x02e73449a57ba8d4, 0x2921c1b1f1dd69e4), RTUINT128_INIT_C(0x0000000ef6339036, 0xd6bbe60fd323cc4d), + RTUINT128_INIT_C(0x0000000000000000, 0x000000000031ac77), RTUINT128_INIT_C(0x0000000bf41fad19, 0x102fc4a0a438b619) + }, + { /* i=4009; 112 / 7 */ + RTUINT128_INIT_C(0x000039e509cb5730, 0x088e94dca2563acb), RTUINT128_INIT_C(0x0000000000000000, 0x000000000000000b), + RTUINT128_INIT_C(0x000005435dfb3678, 0xbaf5b0712607d6cc), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000007) + }, + { /* i=4010; 118 / 103 */ + RTUINT128_INIT_C(0x0008213b058f5c5c, 0x10e726f7fda68ac2), RTUINT128_INIT_C(0x000000193bf359fc, 0x50dbce1bf0b42310), + RTUINT128_INIT_C(0x0000000000000000, 0x000000000000527a), RTUINT128_INIT_C(0x0000000080c3a837, 0x2021fa8d9492b522) + }, + { /* i=4011; 120 / 72 */ + RTUINT128_INIT_C(0x00c84b3dcb988ec0, 0x4ff1ea35165f9c84), RTUINT128_INIT_C(0x00000000000000ce, 0xf53fd6bacaf889d4), + RTUINT128_INIT_C(0x0000000000000000, 0x0000f7c1b9ec5463), RTUINT128_INIT_C(0x000000000000008e, 0xc29067d1c798bf88) + }, + { /* i=4012; 122 / 109 */ + RTUINT128_INIT_C(0x00609911d53ba429, 0xa26b4073f53f1238), RTUINT128_INIT_C(0x0000047eb3664804, 0xe71afd9b04aae5fb), + RTUINT128_INIT_C(0x0000000000000000, 0x000000000000157d), RTUINT128_INIT_C(0x0000027cd86212cf, 0x936fb460a8ef2fa9) + }, + { /* i=4013; 120 / 122 */ + RTUINT128_INIT_C(0x00d6b666f4fc764a, 0x62030dadd6cc599c), RTUINT128_INIT_C(0x03adacff059ac489, 0x70d8eb3127937d56), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x00d6b666f4fc764a, 0x62030dadd6cc599c) + }, + { /* i=4014; 66 / 59 */ + RTUINT128_INIT_C(0x0000000000000002, 0xda55e0d6a4e7f3f8), RTUINT128_INIT_C(0x0000000000000000, 0x0445a1f1da92d775), + RTUINT128_INIT_C(0x0000000000000000, 0x00000000000000aa), RTUINT128_INIT_C(0x0000000000000000, 0x0418563b7f64e046) + }, + { /* i=4015; 72 / 50 */ + RTUINT128_INIT_C(0x0000000000000007, 0x7cd3f4effb53e36a), RTUINT128_INIT_C(0x0000000000000000, 0x00009ea0e37afd7d), + RTUINT128_INIT_C(0x0000000000000000, 0x00000000000c1571), RTUINT128_INIT_C(0x0000000000000000, 0x0000137e9962be3d) + }, + { /* i=4016; 55 / 27 */ + RTUINT128_INIT_C(0x0000000000000000, 0x004a564b6409ed28), RTUINT128_INIT_C(0x0000000000000000, 0x00000000012ece0a), + RTUINT128_INIT_C(0x0000000000000000, 0x000000003ed8c366), RTUINT128_INIT_C(0x0000000000000000, 0x000000000002372c) + }, + { /* i=4017; 45 / 53 */ + RTUINT128_INIT_C(0x0000000000000000, 0x00000d0c8451c3e5), RTUINT128_INIT_C(0x0000000000000000, 0x001f95a55a579936), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x0000000000000000, 0x00000d0c8451c3e5) + }, + { /* i=4018; 26 / 23 */ + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000355353), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000301258), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000001), RTUINT128_INIT_C(0x0000000000000000, 0x00000000000540fb) + }, + { /* i=4019; 118 / 38 */ + RTUINT128_INIT_C(0x00234a27646d87a8, 0x1f5ce733957f184b), RTUINT128_INIT_C(0x0000000000000000, 0x0000001cab51d1e6), + RTUINT128_INIT_C(0x0000000000013b1d, 0xeaeabeb9bff4a259), RTUINT128_INIT_C(0x0000000000000000, 0x0000000596019355) + }, + { /* i=4020; 121 / 126 */ + RTUINT128_INIT_C(0x0139c1d336daf44d, 0x53150fb8272d9874), RTUINT128_INIT_C(0x3f79c0bbc883c273, 0xe5c0dbf6852a253e), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x0139c1d336daf44d, 0x53150fb8272d9874) + }, + { /* i=4021; 120 / 60 */ + RTUINT128_INIT_C(0x0046ba73e8636bff, 0xbc73fa2a1e589529), RTUINT128_INIT_C(0x0000000000000000, 0x0cbd91d3ec21a6b8), + RTUINT128_INIT_C(0x0000000000000000, 0x058d2c116c851efa), RTUINT128_INIT_C(0x0000000000000000, 0x07492980565a3579) + }, + { /* i=4022; 66 / 27 */ + RTUINT128_INIT_C(0x0000000000000003, 0x7f38e7c7ef886560), RTUINT128_INIT_C(0x0000000000000000, 0x0000000003af7a91), + RTUINT128_INIT_C(0x0000000000000000, 0x000000f2e800fc7c), RTUINT128_INIT_C(0x0000000000000000, 0x0000000001e24b24) + }, + { /* i=4023; 127 / 80 */ + RTUINT128_INIT_C(0x73ef5be7e116aab1, 0x3c8f578986cc4a45), RTUINT128_INIT_C(0x000000000000240f, 0x2ce1f5ad4ee3b3a7), + RTUINT128_INIT_C(0x0000000000000000, 0x0003371243c91a73), RTUINT128_INIT_C(0x0000000000001dcd, 0x4cd155213324a040) + }, + { /* i=4024; 90 / 79 */ + RTUINT128_INIT_C(0x00000000032eed4c, 0x172e1e601f97793a), RTUINT128_INIT_C(0x00000000000007e5, 0x25a1a0fab4ad04c4), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000006738), RTUINT128_INIT_C(0x0000000000000107, 0xd40e08d6fcd3925a) + }, + { /* i=4025; 117 / 44 */ + RTUINT128_INIT_C(0x000e112d76d10d8d, 0x59f1c2bad70927f4), RTUINT128_INIT_C(0x0000000000000000, 0x000009e68e687667), + RTUINT128_INIT_C(0x000000000000016b, 0xbb9e3d4e3cfb4b0c), RTUINT128_INIT_C(0x0000000000000000, 0x000005a554766e20) + }, + { /* i=4026; 114 / 66 */ + RTUINT128_INIT_C(0x00026de2a3028dde, 0x9220ddd403b5ce02), RTUINT128_INIT_C(0x0000000000000002, 0xefc4a5dfc7a8ac7e), + RTUINT128_INIT_C(0x0000000000000000, 0x0000d3c55b403622), RTUINT128_INIT_C(0x0000000000000002, 0x90222b8c016c5146) + }, + { /* i=4027; 121 / 82 */ + RTUINT128_INIT_C(0x01047a15b4f9f243, 0xd6ac5e6feb7bbb8a), RTUINT128_INIT_C(0x00000000000376d3, 0xafdc7b3fccd09606), + RTUINT128_INIT_C(0x0000000000000000, 0x0000004b3117dd08), RTUINT128_INIT_C(0x00000000000360bd, 0xb757296ad2e9dd5a) + }, + { /* i=4028; 22 / 13 */ + RTUINT128_INIT_C(0x0000000000000000, 0x00000000001d1515), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000346), + RTUINT128_INIT_C(0x0000000000000000, 0x00000000000008e2), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000149) + }, + { /* i=4029; 119 / 35 */ + RTUINT128_INIT_C(0x0069df85c646d44f, 0xe4d190b58cc36fd5), RTUINT128_INIT_C(0x0000000000000000, 0x0000000191b1487d), + RTUINT128_INIT_C(0x000000000043792a, 0xb47e50ab62ec93df), RTUINT128_INIT_C(0x0000000000000000, 0x00000001297983f2) + }, + { /* i=4030; 119 / 66 */ + RTUINT128_INIT_C(0x0073488b8db65678, 0x75576ee829a8ab27), RTUINT128_INIT_C(0x0000000000000002, 0xb8920aa2228ced24), + RTUINT128_INIT_C(0x0000000000000000, 0x002a5e4c82c7dc5d), RTUINT128_INIT_C(0x0000000000000000, 0x64c031a7e1af9513) + }, + { /* i=4031; 114 / 109 */ + RTUINT128_INIT_C(0x000359fe28877521, 0xfe708f57aa399e06), RTUINT128_INIT_C(0x0000086e7f38bd01, 0x459dea7b63708528), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000065), RTUINT128_INIT_C(0x00000665f724e3a1, 0x87230ca96ed5153e) + }, + { /* i=4032; 84 / 6 */ + RTUINT128_INIT_C(0x0000000000092d2b, 0x3f98f3ab3b0e56d3), RTUINT128_INIT_C(0x0000000000000000, 0x000000000000003c), + RTUINT128_INIT_C(0x0000000000002727, 0x1eed3742da959283), RTUINT128_INIT_C(0x0000000000000000, 0x000000000000001f) + }, + { /* i=4033; 123 / 78 */ + RTUINT128_INIT_C(0x02c26cda2d1a904b, 0x809ab58f4be5f3ca), RTUINT128_INIT_C(0x0000000000002dc1, 0x9555cc95446dd5de), + RTUINT128_INIT_C(0x0000000000000000, 0x00000f705bcf0566), RTUINT128_INIT_C(0x0000000000000cd5, 0x77d154ca0a736756) + }, + { /* i=4034; 121 / 125 */ + RTUINT128_INIT_C(0x01e3cee549f158b0, 0x4bec8cfce2f506df), RTUINT128_INIT_C(0x02d3a26d230bbbd0, 0x1714622dc2030628), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x01e3cee549f158b0, 0x4bec8cfce2f506df) + }, + { /* i=4035; 116 / 87 */ + RTUINT128_INIT_C(0x0008df44d8859296, 0x77863ea103e6a6c8), RTUINT128_INIT_C(0x000000000072f0ea, 0x4d398e42fa3513a6), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000013c2a256), RTUINT128_INIT_C(0x00000000002a93d5, 0x52d6851d29d70104) + }, + { /* i=4036; 125 / 62 */ + RTUINT128_INIT_C(0x0fef78375f5dafff, 0xc1004a830a41988d), RTUINT128_INIT_C(0x0000000000000000, 0x19606c70317e12f1), + RTUINT128_INIT_C(0x0000000000000000, 0xa0c1bd2168892cf4), RTUINT128_INIT_C(0x0000000000000000, 0x056294d727dd1ed9) + }, + { /* i=4037; 117 / 82 */ + RTUINT128_INIT_C(0x00154aa014529aa6, 0x2933438f8cdae830), RTUINT128_INIT_C(0x0000000000033f80, 0xc13c2cd9da2bbb10), + RTUINT128_INIT_C(0x0000000000000000, 0x000000068e1e3662), RTUINT128_INIT_C(0x0000000000000f90, 0x4921eee202c7ec10) + }, + { /* i=4038; 107 / 54 */ + RTUINT128_INIT_C(0x0000071fa5a95abf, 0xeac11b1693c0cd40), RTUINT128_INIT_C(0x0000000000000000, 0x003379e11e174260), + RTUINT128_INIT_C(0x0000000000000000, 0x00236d547e4f1725), RTUINT128_INIT_C(0x0000000000000000, 0x0010e08067cd9560) + }, + { /* i=4039; 76 / 59 */ + RTUINT128_INIT_C(0x00000000000004c2, 0xc41cb5e6b8564b4b), RTUINT128_INIT_C(0x0000000000000000, 0x00efeedc35d14c70), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000051461), RTUINT128_INIT_C(0x0000000000000000, 0x003cf32b7bdf94db) + }, + { /* i=4040; 126 / 91 */ + RTUINT128_INIT_C(0x07a56bc850f856b3, 0x430b5c750b565cc6), RTUINT128_INIT_C(0x0000000004e7dff1, 0xddfd590be3e5aa93), + RTUINT128_INIT_C(0x0000000000000000, 0x000000018f012bb7), RTUINT128_INIT_C(0x0000000003a9e4bd, 0x23bcdcecc6efbcb1) + }, + { /* i=4041; 125 / 39 */ + RTUINT128_INIT_C(0x07ca022358d05132, 0x6669f40d7d166740), RTUINT128_INIT_C(0x0000000000000000, 0x00000059f0505b47), + RTUINT128_INIT_C(0x0000000000162bb5, 0xca5dc4d20a2362d6), RTUINT128_INIT_C(0x0000000000000000, 0x000000149643ebe6) + }, + { /* i=4042; 127 / 114 */ + RTUINT128_INIT_C(0x6473702094be6991, 0x2972979a791dd1a0), RTUINT128_INIT_C(0x0001758bf493fc46, 0x23cca703dd097f27), + RTUINT128_INIT_C(0x0000000000000000, 0x00000000000044d7), RTUINT128_INIT_C(0x00008a9edd72e926, 0xbc354ca5505dabdf) + }, + { /* i=4043; 117 / 116 */ + RTUINT128_INIT_C(0x0017fc8ba22da129, 0xa5e366238b4427b8), RTUINT128_INIT_C(0x00078bf41c09cc7e, 0x9f2b49ad81566496), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000003), RTUINT128_INIT_C(0x000158af4e103bad, 0xc861891b0740f9f6) + }, + { /* i=4044; 126 / 110 */ + RTUINT128_INIT_C(0x31a403f6c9bc4acf, 0x501f8a6096498583), RTUINT128_INIT_C(0x00000888d85f0e05, 0xf5bddf4971a20fe5), + RTUINT128_INIT_C(0x0000000000000000, 0x000000000005d102), RTUINT128_INIT_C(0x00000064386d846e, 0x04e99dde149270b9) + }, + { /* i=4045; 128 / 64 */ + RTUINT128_INIT_C(0x7168c3f3422589c6, 0x9b98a86c2429bebf), RTUINT128_INIT_C(0x0000000000000000, 0x53e90c798351705b), + RTUINT128_INIT_C(0x0000000000000001, 0x59ff5879ed0adebf), RTUINT128_INIT_C(0x0000000000000000, 0x4ed310ace86a00da) + }, + { /* i=4046; 97 / 23 */ + RTUINT128_INIT_C(0x00000001ebf7f0b4, 0x259387f7e0ea43da), RTUINT128_INIT_C(0x0000000000000000, 0x000000000016ba3d), + RTUINT128_INIT_C(0x00000000000015a5, 0x7ac69e105cd89061), RTUINT128_INIT_C(0x0000000000000000, 0x00000000001362bd) + }, + { /* i=4047; 119 / 79 */ + RTUINT128_INIT_C(0x006f9e874702507b, 0x360d05059c0d9353), RTUINT128_INIT_C(0x0000000000007b84, 0x65af6ab680f2a91b), + RTUINT128_INIT_C(0x0000000000000000, 0x000000e7572c9e5d), RTUINT128_INIT_C(0x0000000000005887, 0x494f6498c1e37a84) + }, + { /* i=4048; 3 / 107 */ + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000004), RTUINT128_INIT_C(0x0000052ef3532694, 0x1bafda07238c68e7), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000004) + }, + { /* i=4049; 124 / 112 */ + RTUINT128_INIT_C(0x0846f85694e9ce6a, 0x7d39d9661527e1c9), RTUINT128_INIT_C(0x0000385b76c32bd1, 0xab071b71383204af), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000002599), RTUINT128_INIT_C(0x0000118264ef5063, 0x3f03159c4495ca32) + }, + { /* i=4050; 125 / 116 */ + RTUINT128_INIT_C(0x07713cdf6e39b367, 0xff9c0ef57b106257), RTUINT128_INIT_C(0x000c8a11da4ac8a0, 0x211b4157362f98a4), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000097), RTUINT128_INIT_C(0x000bcc57ac1d5cf4, 0x7888848484fd599b) + }, + { /* i=4051; 125 / 85 */ + RTUINT128_INIT_C(0x1160708a4cfd41e7, 0x6474200e6d835043), RTUINT128_INIT_C(0x00000000000519fc, 0x4439647050c86925), + RTUINT128_INIT_C(0x0000000000000000, 0x00000367fc5379e1), RTUINT128_INIT_C(0x000000000001d753, 0x53bc8dcb30ad69be) + }, + { /* i=4052; 122 / 93 */ + RTUINT128_INIT_C(0x02593c3533c2e02c, 0x171cb912388fffd8), RTUINT128_INIT_C(0x00000000176be48b, 0x054b14c01379e256), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000019ab970e), RTUINT128_INIT_C(0x000000000bad8244, 0xe590618fadf2e524) + }, + { /* i=4053; 125 / 79 */ + RTUINT128_INIT_C(0x12bf7e4026c5cef6, 0xb4c25aca29e9d31a), RTUINT128_INIT_C(0x0000000000007975, 0xd08dccfd476b5444), + RTUINT128_INIT_C(0x0000000000000000, 0x00002783d32bad75), RTUINT128_INIT_C(0x0000000000004aeb, 0x7a41917dca7e5c06) + }, + { /* i=4054; 76 / 27 */ + RTUINT128_INIT_C(0x0000000000000adf, 0xd8c0be02e18745bf), RTUINT128_INIT_C(0x0000000000000000, 0x0000000007c675b4), + RTUINT128_INIT_C(0x0000000000000000, 0x0001660a4f060033), RTUINT128_INIT_C(0x0000000000000000, 0x0000000006c5d2e3) + }, + { /* i=4055; 119 / 89 */ + RTUINT128_INIT_C(0x001da16cf02719ef, 0xad10279435033530), RTUINT128_INIT_C(0x0000000001a4846c, 0xf37389f310d76119), + RTUINT128_INIT_C(0x0000000000000000, 0x000000001209cf5c), RTUINT128_INIT_C(0x000000000100bb2a, 0xd2444d35d4381934) + }, + { /* i=4056; 127 / 44 */ + RTUINT128_INIT_C(0x3c37f71b7c1bf172, 0x26a5cf829c3dc750), RTUINT128_INIT_C(0x0000000000000000, 0x00000491a96abb3d), + RTUINT128_INIT_C(0x00000000000d2e0a, 0x8f2da5bda6d7466c), RTUINT128_INIT_C(0x0000000000000000, 0x000002a625c91b94) + }, + { /* i=4057; 103 / 44 */ + RTUINT128_INIT_C(0x0000000b3e847593, 0xa3a897505e944842), RTUINT128_INIT_C(0x0000000000000000, 0x00000867be52cb9d), + RTUINT128_INIT_C(0x0000000000000000, 0x015677790e0f6f15), RTUINT128_INIT_C(0x0000000000000000, 0x00000516574d8161) + }, + { /* i=4058; 92 / 27 */ + RTUINT128_INIT_C(0x0000000008f40bb2, 0x89cfd40e624081a1), RTUINT128_INIT_C(0x0000000000000000, 0x0000000004a80573), + RTUINT128_INIT_C(0x0000000000000001, 0xec3e1d40498ae5b8), RTUINT128_INIT_C(0x0000000000000000, 0x00000000019eb7f9) + }, + { /* i=4059; 126 / 43 */ + RTUINT128_INIT_C(0x23f062f4ec6ae989, 0xeb5d6cde990106c6), RTUINT128_INIT_C(0x0000000000000000, 0x00000517a5c0c5ca), + RTUINT128_INIT_C(0x0000000000070eb3, 0x0455c1551362f243), RTUINT128_INIT_C(0x0000000000000000, 0x0000047247404ee8) + }, + { /* i=4060; 120 / 121 */ + RTUINT128_INIT_C(0x005f8d6f1ead1903, 0xab1e1b4c86a94721), RTUINT128_INIT_C(0x00cf45ac874f53ec, 0x629c6414dc6ffd9e), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x005f8d6f1ead1903, 0xab1e1b4c86a94721) + }, + { /* i=4061; 116 / 64 */ + RTUINT128_INIT_C(0x00090aabe30de67d, 0xf414a30c38cc17d3), RTUINT128_INIT_C(0x0000000000000000, 0x6d02d6d5d4bf7f73), + RTUINT128_INIT_C(0x0000000000000000, 0x00153bbd4d45c1be), RTUINT128_INIT_C(0x0000000000000000, 0x0732711a0296cd79) + }, + { /* i=4062; 42 / 40 */ + RTUINT128_INIT_C(0x0000000000000000, 0x0000011ae1c68890), RTUINT128_INIT_C(0x0000000000000000, 0x000000cbdd16f8c2), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000001), RTUINT128_INIT_C(0x0000000000000000, 0x0000004f04af8fce) + }, + { /* i=4063; 117 / 80 */ + RTUINT128_INIT_C(0x001a6741d29f3406, 0x1455edd25fdf1ae2), RTUINT128_INIT_C(0x000000000000fc95, 0x2814cd75a7fbc2a3), + RTUINT128_INIT_C(0x0000000000000000, 0x0000001ac2b52325), RTUINT128_INIT_C(0x00000000000055a0, 0xf42ed2cb89a0b053) + }, + { /* i=4064; 86 / 64 */ + RTUINT128_INIT_C(0x0000000000314001, 0xe08cd0e4508f946a), RTUINT128_INIT_C(0x0000000000000000, 0x2e9fc077294dcf6c), + RTUINT128_INIT_C(0x0000000000000000, 0x00000000010e6b2c), RTUINT128_INIT_C(0x0000000000000000, 0x19f85e14ed95c9da) + }, + { /* i=4065; 101 / 81 */ + RTUINT128_INIT_C(0x0000001aea199255, 0xb6f9af9d57047a6d), RTUINT128_INIT_C(0x0000000000014233, 0xef6ac44d22258dd5), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000156264), RTUINT128_INIT_C(0x00000000000130a3, 0x37cbad54fd948939) + }, + { /* i=4066; 89 / 42 */ + RTUINT128_INIT_C(0x00000000002c1424, 0x7721ff1e5368f2f1), RTUINT128_INIT_C(0x0000000000000000, 0x0000010e90d9c945), + RTUINT128_INIT_C(0x0000000000000000, 0x000029b4aa0faf57), RTUINT128_INIT_C(0x0000000000000000, 0x000000379bc4617e) + }, + { /* i=4067; 75 / 8 */ + RTUINT128_INIT_C(0x000000000000013a, 0xdb72db10f8eb4385), RTUINT128_INIT_C(0x0000000000000000, 0x00000000000000fc), + RTUINT128_INIT_C(0x0000000000000001, 0x3fdade546282f720), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000005) + }, + { /* i=4068; 80 / 60 */ + RTUINT128_INIT_C(0x0000000000003cc2, 0x6de924774b4906e1), RTUINT128_INIT_C(0x0000000000000000, 0x0fb57340d439825d), + RTUINT128_INIT_C(0x0000000000000000, 0x000000000003de2c), RTUINT128_INIT_C(0x0000000000000000, 0x0704a09c6b42f8e5) + }, + { /* i=4069; 103 / 80 */ + RTUINT128_INIT_C(0x0000001dcdf18c0c, 0x7fcf3b2c063384e4), RTUINT128_INIT_C(0x0000000000000bf0, 0x49ef2e5e64d7ad34), + RTUINT128_INIT_C(0x0000000000000000, 0x00000000027f18e0), RTUINT128_INIT_C(0x00000000000006d8, 0xa49018c63c731764) + }, + { /* i=4070; 29 / 82 */ + RTUINT128_INIT_C(0x0000000000000000, 0x000000001e05e8cb), RTUINT128_INIT_C(0x000000000001e6bb, 0x35fd104e62a1c3f5), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x0000000000000000, 0x000000001e05e8cb) + }, + { /* i=4071; 73 / 50 */ + RTUINT128_INIT_C(0x000000000000001d, 0xf60ed407790cec5a), RTUINT128_INIT_C(0x0000000000000000, 0x0001ea4f59db84a6), + RTUINT128_INIT_C(0x0000000000000000, 0x00000000000fa4ae), RTUINT128_INIT_C(0x0000000000000000, 0x000078aaff246b86) + }, + { /* i=4072; 105 / 76 */ + RTUINT128_INIT_C(0x00000045b04a3acb, 0x42f66cb9a045d4b9), RTUINT128_INIT_C(0x000000000000082b, 0x3a0d1800dadd4da0), + RTUINT128_INIT_C(0x0000000000000000, 0x000000000887f0b2), RTUINT128_INIT_C(0x00000000000000a8, 0xf01099d10a3fdb79) + }, + { /* i=4073; 125 / 110 */ + RTUINT128_INIT_C(0x1fe5258672ae41a1, 0xe21013b0e06acf2e), RTUINT128_INIT_C(0x000025fa8e5306ec, 0x5513f3cdc6c99b18), + RTUINT128_INIT_C(0x0000000000000000, 0x000000000000d6fe), RTUINT128_INIT_C(0x000003f3d483d406, 0xca7629591cbcdd5e) + }, + { /* i=4074; 119 / 115 */ + RTUINT128_INIT_C(0x006c3ad9959393bc, 0xa7069cbca359db14), RTUINT128_INIT_C(0x000081b3a4b121ff, 0x437c020ba6cd8939), + RTUINT128_INIT_C(0x0000000000000000, 0x00000000000000d5), RTUINT128_INIT_C(0x000050618e324a59, 0x80d8e90ada56aea7) + }, + { /* i=4075; 74 / 6 */ + RTUINT128_INIT_C(0x0000000000000361, 0x3f466a139beda8a2), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000028), + RTUINT128_INIT_C(0x0000000000000015, 0xa194f5da17192437), RTUINT128_INIT_C(0x0000000000000000, 0x000000000000000a) + }, + { /* i=4076; 37 / 13 */ + RTUINT128_INIT_C(0x0000000000000000, 0x0000001e44ceae58), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000bc2), + RTUINT128_INIT_C(0x0000000000000000, 0x00000000029308e7), RTUINT128_INIT_C(0x0000000000000000, 0x000000000000024a) + }, + { /* i=4077; 63 / 35 */ + RTUINT128_INIT_C(0x0000000000000000, 0x6d0f5c2bdcc99887), RTUINT128_INIT_C(0x0000000000000000, 0x000000074dcf8d96), + RTUINT128_INIT_C(0x0000000000000000, 0x000000000eee809f), RTUINT128_INIT_C(0x0000000000000000, 0x00000006eca1a85d) + }, + { /* i=4078; 120 / 3 */ + RTUINT128_INIT_C(0x002c00a0550a666d, 0xb70e4b53decf3a7d), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000006), + RTUINT128_INIT_C(0x000755700e2c6667, 0x9e8261e34fcd346a), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000001) + }, + { /* i=4079; 106 / 104 */ + RTUINT128_INIT_C(0x0000017835b9be3c, 0xd776582c98fc0bca), RTUINT128_INIT_C(0x000000f906e668f1, 0x329b137c2156348c), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000001), RTUINT128_INIT_C(0x0000007f2ed3554b, 0xa4db44b077a5d73e) + }, + { /* i=4080; 60 / 18 */ + RTUINT128_INIT_C(0x0000000000000000, 0x0fd2878b273b2978), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000028723), + RTUINT128_INIT_C(0x0000000000000000, 0x000006425806c5f4), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000026d1c) + }, + { /* i=4081; 71 / 6 */ + RTUINT128_INIT_C(0x000000000000006c, 0x96f39fa678d93b3c), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000023), + RTUINT128_INIT_C(0x0000000000000003, 0x1a4179970ac460c7), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000007) + }, + { /* i=4082; 26 / 11 */ + RTUINT128_INIT_C(0x0000000000000000, 0x000000000199a3bf), RTUINT128_INIT_C(0x0000000000000000, 0x00000000000001ee), + RTUINT128_INIT_C(0x0000000000000000, 0x000000000000d448), RTUINT128_INIT_C(0x0000000000000000, 0x00000000000000cf) + }, + { /* i=4083; 52 / 119 */ + RTUINT128_INIT_C(0x0000000000000000, 0x0009de4a01ff372a), RTUINT128_INIT_C(0x004418bad45af7e5, 0xae76f37bc5c93f6c), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x0000000000000000, 0x0009de4a01ff372a) + }, + { /* i=4084; 128 / 78 */ + RTUINT128_INIT_C(0xe633e266b9e88b81, 0x7b6e8b4364eb45ed), RTUINT128_INIT_C(0x0000000000003a7c, 0xa6e4b678999d4555), + RTUINT128_INIT_C(0x0000000000000000, 0x0003ef9b9f7d2802), RTUINT128_INIT_C(0x000000000000322b, 0xcae440fff95a7343) + }, + { /* i=4085; 123 / 113 */ + RTUINT128_INIT_C(0x035bea741ed9a821, 0xb6ca32ed157307c1), RTUINT128_INIT_C(0x0001f4fe5b06b33b, 0x1a579352aaf7dd0d), + RTUINT128_INIT_C(0x0000000000000000, 0x00000000000001b7), RTUINT128_INIT_C(0x0000ca46065c4dc7, 0x8a9c9029e666f676) + }, + { /* i=4086; 113 / 114 */ + RTUINT128_INIT_C(0x0001004e0ec61184, 0x5700145f6fc0b4bd), RTUINT128_INIT_C(0x000178dcf811869c, 0xc9dd04609f978b40), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000000), RTUINT128_INIT_C(0x0001004e0ec61184, 0x5700145f6fc0b4bd) + }, + { /* i=4087; 118 / 94 */ + RTUINT128_INIT_C(0x001d7ffab47b2758, 0x6cb20766fa125a93), RTUINT128_INIT_C(0x000000002376133d, 0xc7da9160cf8aa877), + RTUINT128_INIT_C(0x0000000000000000, 0x0000000000d4f6e2), RTUINT128_INIT_C(0x0000000000974bc1, 0x91dec9ad013b4785) + }, + { /* i=4088; 19 / 15 */ + RTUINT128_INIT_C(0x0000000000000000, 0x000000000006f969), RTUINT128_INIT_C(0x0000000000000000, 0x00000000000076da), + RTUINT128_INIT_C(0x0000000000000000, 0x000000000000000f), RTUINT128_INIT_C(0x0000000000000000, 0x00000000000002a3) + }, + { /* i=4089; 95 / 62 */ + RTUINT128_INIT_C(0x000000001b7e4163, 0x2697bc3121208d12), RTUINT128_INIT_C(0x0000000000000000, 0x13cc9697ef35ace9), + RTUINT128_INIT_C(0x0000000000000000, 0x00000001637b77b5), RTUINT128_INIT_C(0x0000000000000000, 0x01394501ddd9fd55) + }, + { /* i=4090; 127 / 89 */ + RTUINT128_INIT_C(0x114c53faba33c12f, 0xe8fa85e2d497d4b4), RTUINT128_INIT_C(0x00000000000e55ee, 0xf5d2a127e41adf34), + RTUINT128_INIT_C(0x0000000000000000, 0x00000134e710c404), RTUINT128_INIT_C(0x00000000000524ab, 0x4ca66af8d20887e4) + }, + { /* i=4091; 79 / 71 */ + RTUINT128_INIT_C(0x000000000000526d, 0xe75d7ed471863478), RTUINT128_INIT_C(0x0000000000000076, 0xa97035ed0bdb0bb4), + RTUINT128_INIT_C(0x0000000000000000, 0x00000000000000b1), RTUINT128_INIT_C(0x0000000000000062, 0xc0c835ef3f131d04) + }, + { /* i=4092; 122 / 28 */ + RTUINT128_INIT_C(0x034134b68331d4c9, 0x92817521418532d2), RTUINT128_INIT_C(0x0000000000000000, 0x000000000ce042b4), + RTUINT128_INIT_C(0x0000000040b5bc70, 0x87cac4f4e7c10619), RTUINT128_INIT_C(0x0000000000000000, 0x00000000085a773e) + }, + { /* i=4093; 118 / 85 */ + RTUINT128_INIT_C(0x002e6ce2070b784b, 0x866b933de6d511c4), RTUINT128_INIT_C(0x00000000001c9d09, 0x9e969389babdd075), + RTUINT128_INIT_C(0x0000000000000000, 0x000000019f5c3e9c), RTUINT128_INIT_C(0x0000000000085abd, 0x1fb57ef18da1b478) + }, + { /* i=4094; 106 / 4 */ + RTUINT128_INIT_C(0x00000319ec1851d7, 0x60d0e08539222b92), RTUINT128_INIT_C(0x0000000000000000, 0x000000000000000b), + RTUINT128_INIT_C(0x000000482cbc6487, 0xf1875a3aa81a610d), RTUINT128_INIT_C(0x0000000000000000, 0x0000000000000003) + }, + { /* i=4095; 122 / 24 */ + RTUINT128_INIT_C(0x00e001d849f6e934, 0xc5e7a59deafa68ee), RTUINT128_INIT_C(0x0000000000000000, 0x00000000000de052), + RTUINT128_INIT_C(0x0000001024a943ba, 0xc11be2cf1017d6ba), RTUINT128_INIT_C(0x0000000000000000, 0x000000000002e15a) + }, diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Runtime/testcase/tstRTBitOperations.cpp virtualbox-4.1.44-dfsg/src/VBox/Runtime/testcase/tstRTBitOperations.cpp --- virtualbox-4.1.12-dfsg/src/VBox/Runtime/testcase/tstRTBitOperations.cpp 2012-04-02 13:29:06.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Runtime/testcase/tstRTBitOperations.cpp 2015-11-11 15:09:13.000000000 +0000 @@ -163,7 +163,7 @@ MAP_CLEAR(p); CHECK_GUARD(p); - /* set */ + /* bit set */ MAP_CLEAR(p); ASMBitSet(&p->au32[0], 0); ASMBitSet(&p->au32[0], 31); @@ -186,7 +186,7 @@ CHECK(ASMAtomicBitTestAndSet(&p->au32[0], 16) && p->au32[0] == 0x40010001U); CHECK(!ASMAtomicBitTestAndSet(&p->au32[0], 80) && p->au32[2] == 0x00010001U); - /* clear */ + /* bit clear */ MAP_SET(p); ASMBitClear(&p->au32[0], 0); ASMBitClear(&p->au32[0], 31); @@ -209,6 +209,15 @@ CHECK(!ASMAtomicBitTestAndClear(&p->au32[0], 16) && p->au32[0] == ~0x40010001U); CHECK(ASMAtomicBitTestAndClear(&p->au32[0], 80) && p->au32[2] == ~0x00010001U); + /* range set */ + MAP_CLEAR(p); + ASMBitSetRange(&p->au32[0], 0, 5); + ASMBitSetRange(&p->au32[0], 6, 44); + ASMBitSetRange(&p->au32[0], 64, 65); + CHECK(p->au32[0] == 0xFFFFFFDFU); + CHECK(p->au32[1] == 0x00000FFFU); + CHECK(p->au32[2] == 0x00000001U); + /* toggle */ MAP_SET(p); ASMBitToggle(&p->au32[0], 0); diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Runtime/testcase/tstRTDarwinMachKernel.cpp virtualbox-4.1.44-dfsg/src/VBox/Runtime/testcase/tstRTDarwinMachKernel.cpp --- virtualbox-4.1.12-dfsg/src/VBox/Runtime/testcase/tstRTDarwinMachKernel.cpp 2012-04-02 13:29:06.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Runtime/testcase/tstRTDarwinMachKernel.cpp 2015-11-11 15:09:14.000000000 +0000 @@ -4,7 +4,7 @@ */ /* - * Copyright (C) 2011 Oracle Corporation + * Copyright (C) 2011-2012 Oracle Corporation * * This file is part of VirtualBox Open Source Edition (OSE), as * available from http://www.virtualbox.org. This file is free software; @@ -45,6 +45,9 @@ "cpu_interrupt", "dtrace_register", "dtrace_suspend", + "kext_alloc", + "kext_free", + "vm_map_protect" }; for (unsigned i = 0; i < RT_ELEMENTS(s_apszSyms); i++) { diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Runtime/testcase/tstRTDigest-2.cpp virtualbox-4.1.44-dfsg/src/VBox/Runtime/testcase/tstRTDigest-2.cpp --- virtualbox-4.1.12-dfsg/src/VBox/Runtime/testcase/tstRTDigest-2.cpp 1970-01-01 00:00:00.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Runtime/testcase/tstRTDigest-2.cpp 2015-11-11 15:09:14.000000000 +0000 @@ -0,0 +1,1278 @@ +/* $Id: tstRTDigest-2.cpp $ */ +/** @file + * IPRT Testcase - Checksums and Digests. + */ + +/* + * Copyright (C) 2014 Oracle Corporation + * + * This file is part of VirtualBox Open Source Edition (OSE), as + * available from http://www.virtualbox.org. This file is free software; + * you can redistribute it and/or modify it under the terms of the GNU + * General Public License (GPL) as published by the Free Software + * Foundation, in version 2 as it comes in the "COPYING" file of the + * VirtualBox OSE distribution. VirtualBox OSE is distributed in the + * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind. + * + * The contents of this file may alternatively be used under the terms + * of the Common Development and Distribution License Version 1.0 + * (CDDL) only, as it comes in the "COPYING.CDDL" file of the + * VirtualBox OSE distribution, in which case the provisions of the + * CDDL are applicable instead of those of the GPL. + * + * You may elect to license modified versions of this file under the + * terms and conditions of either the GPL or the CDDL or both. + */ + +/******************************************************************************* +* Header Files * +*******************************************************************************/ +#include +#include +#include +#include + +#include +#include +#include +#include +#include + + +/******************************************************************************* +* Structures and Typedefs * +*******************************************************************************/ +typedef struct TESTRTDIGEST +{ + /** Pointer to the input. */ + void const *pvInput; + /** The size of the input. */ + size_t cbInput; + /** The expected digest. */ + const char *pszDigest; + /** Clue what this is. Can be NULL. */ + const char *pszTest; +} TESTRTDIGEST; + + +/******************************************************************************* +* Global Variables * +*******************************************************************************/ +#include "72kb-random.h" + + +#define CHECK_STRING(a_pszActual, a_pszExpected) \ + do { \ + if (strcmp(a_pszActual, a_pszExpected)) \ + RTTestIFailed("line %u: Expected %s, got %s.", __LINE__, a_pszExpected, a_pszActual); \ + } while (0) + + +/** + * Worker for testGeneric that finalizes the digest and compares it with what is + * expected. + * + * @returns true on success, false on failure. + * @param hDigest The digest to finalize and check. + * @param iTest The test number (for reporting). + * @param pTest The test. + */ +static bool testGenericCheckResult(RTCRDIGEST hDigest, uint32_t iTest, TESTRTDIGEST const *pTest) +{ + RTTESTI_CHECK_RC_RET(RTCrDigestFinal(hDigest, NULL, 0), VINF_SUCCESS, false); + + char szDigest[_4K * 2]; + RTTESTI_CHECK_RC_RET(RTStrPrintHexBytes(szDigest, sizeof(szDigest), + RTCrDigestGetHash(hDigest), RTCrDigestGetHashSize(hDigest), 0 /*fFlags*/), + VINF_SUCCESS, false); + + if (strcmp(szDigest, pTest->pszDigest)) + { + RTTestIFailed("sub-test %#u (%s) failed: Expected %s, got %s.", iTest, pTest->pszTest, pTest->pszDigest, szDigest); + return false; + } + + return true; +} + + +/** + * Table driven generic digest test case. + * + * @param pszDigestObjId The object ID of the digest algorithm to test. + * @param paTests The test table. + * @param cTests The number of tests in the table. + * @param pszDigestName The name of the digest. + * @param enmDigestType The digest enum type value. + */ +static void testGeneric(const char *pszDigestObjId, TESTRTDIGEST const *paTests, size_t cTests, const char *pszDigestName, + RTDIGESTTYPE enmDigestType) +{ + /* + * Execute the tests. + */ + RTCRDIGEST hDigest; + for (uint32_t iTest = 0; iTest < cTests; iTest++) + { + /* + * The whole thing in one go. + */ + RTTESTI_CHECK_RC_RETV(RTCrDigestCreateByObjIdString(&hDigest, pszDigestObjId), VINF_SUCCESS); + uint32_t const cbHash = RTCrDigestGetHashSize(hDigest); + RTTESTI_CHECK_RETV(cbHash > 0); + RTTESTI_CHECK_RETV(cbHash < _1K); + RTTESTI_CHECK_RC_RETV(RTCrDigestUpdate(hDigest, paTests[iTest].pvInput, paTests[iTest].cbInput), VINF_SUCCESS); + if (!testGenericCheckResult(hDigest, iTest, &paTests[iTest])) + continue; /* skip the remaining tests if this failed. */ + + /* + * Repeat the test feeding the input in smaller chunks. + */ + static const uint32_t s_acbChunks[] = { 1, 2, 3, 7, 11, 16, 19, 31, 61, 127, 255, 511, 1023, 1024 }; + for (uint32_t i = 0; i < RT_ELEMENTS(s_acbChunks); i++) + { + uint32_t const cbChunk = s_acbChunks[i]; + + RTTESTI_CHECK_RC_RETV(RTCrDigestReset(hDigest), VINF_SUCCESS); + + uint8_t const *pbInput = (uint8_t const *)paTests[iTest].pvInput; + size_t cbInput = paTests[iTest].cbInput; + while (cbInput > 0) + { + size_t cbUpdate = RT_MIN(cbInput, cbChunk); + RTTESTI_CHECK_RC_RETV(RTCrDigestUpdate(hDigest, pbInput, cbUpdate), VINF_SUCCESS); + pbInput += cbUpdate; + cbInput -= cbUpdate; + } + + if (!testGenericCheckResult(hDigest, iTest, &paTests[iTest])) + break; /* No need to test the other permutations if this fails. */ + } + + RTTESTI_CHECK_RC(RTCrDigestRelease(hDigest), 0); + } + + /* + * Do a quick benchmark. + */ + RTTESTI_CHECK_RC_RETV(RTCrDigestCreateByObjIdString(&hDigest, pszDigestObjId), VINF_SUCCESS); + + /* Warmup. */ + uint32_t cChunks = enmDigestType == RTDIGESTTYPE_MD2 ? 12 : 128; + uint32_t cLeft = cChunks; + int rc = VINF_SUCCESS; + RTThreadYield(); + uint64_t uStartTS = RTTimeNanoTS(); + while (cLeft-- > 0) + rc |= RTCrDigestUpdate(hDigest, g_abRandom72KB, sizeof(g_abRandom72KB)); + uint64_t cNsPerChunk = (RTTimeNanoTS() - uStartTS) / cChunks; + if (!cNsPerChunk) + cNsPerChunk = 16000000 / cChunks; /* Time resolution kludge: 16ms. */ + RTTESTI_CHECK_RETV(rc == VINF_SUCCESS); + + /* Do it for real for about 2 seconds. */ + RTTESTI_CHECK_RC(RTCrDigestReset(hDigest), VINF_SUCCESS); + cChunks = _2G32 / cNsPerChunk; + cLeft = cChunks; + RTThreadYield(); + uStartTS = RTTimeNanoTS(); + while (cLeft-- > 0) + rc |= RTCrDigestUpdate(hDigest, g_abRandom72KB, sizeof(g_abRandom72KB)); + uint64_t cNsElapsed = RTTimeNanoTS() - uStartTS; + RTTESTI_CHECK(rc == VINF_SUCCESS); + + RTTestIValueF((uint64_t)cChunks * sizeof(g_abRandom72KB) / _1K / (0.000000001 * cNsElapsed), RTTESTUNIT_KILOBYTES_PER_SEC, + "%s throughput", pszDigestName); + RTTESTI_CHECK_RC(RTCrDigestRelease(hDigest), 0); +} + + +/** + * Tests MD2. + */ +static void testMd2(void) +{ + RTTestISub("MD2"); + + /* + * Some quick direct API tests. + */ + uint8_t abHash[RTMD2_HASH_SIZE]; + char szDigest[RTMD2_DIGEST_LEN + 1]; + const char *pszString; + + pszString = ""; + RTMd2(pszString, strlen(pszString), abHash); + RTTESTI_CHECK_RC_RETV(RTMd2ToString(abHash, szDigest, sizeof(szDigest)), VINF_SUCCESS); + CHECK_STRING(szDigest, "8350e5a3e24c153df2275c9f80692773"); + + pszString = "The quick brown fox jumps over the lazy dog"; + RTMd2(pszString, strlen(pszString), abHash); + RTTESTI_CHECK_RC_RETV(RTMd2ToString(abHash, szDigest, sizeof(szDigest)), VINF_SUCCESS); + CHECK_STRING(szDigest, "03d85a0d629d2c442e987525319fc471"); + + pszString = "a"; + RTMd2(pszString, strlen(pszString), abHash); + RTTESTI_CHECK_RC_RETV(RTMd2ToString(abHash, szDigest, sizeof(szDigest)), VINF_SUCCESS); + CHECK_STRING(szDigest, "32ec01ec4a6dac72c0ab96fb34c0b5d1"); + + pszString = "abc"; + RTMd2(pszString, strlen(pszString), abHash); + RTTESTI_CHECK_RC_RETV(RTMd2ToString(abHash, szDigest, sizeof(szDigest)), VINF_SUCCESS); + CHECK_STRING(szDigest, "da853b0d3f88d99b30283a69e6ded6bb"); + + pszString = "message digest"; + RTMd2(pszString, strlen(pszString), abHash); + RTTESTI_CHECK_RC_RETV(RTMd2ToString(abHash, szDigest, sizeof(szDigest)), VINF_SUCCESS); + CHECK_STRING(szDigest, "ab4f496bfb2a530b219ff33031fe06b0"); + + pszString = "abcdefghijklmnopqrstuvwxyz"; + RTMd2(pszString, strlen(pszString), abHash); + RTTESTI_CHECK_RC_RETV(RTMd2ToString(abHash, szDigest, sizeof(szDigest)), VINF_SUCCESS); + CHECK_STRING(szDigest, "4e8ddff3650292ab5a4108c3aa47940b"); + + pszString = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789"; + RTMd2(pszString, strlen(pszString), abHash); + RTTESTI_CHECK_RC_RETV(RTMd2ToString(abHash, szDigest, sizeof(szDigest)), VINF_SUCCESS); + CHECK_STRING(szDigest, "da33def2a42df13975352846c30338cd"); + + pszString = "12345678901234567890123456789012345678901234567890123456789012345678901234567890"; + RTMd2(pszString, strlen(pszString), abHash); + RTTESTI_CHECK_RC_RETV(RTMd2ToString(abHash, szDigest, sizeof(szDigest)), VINF_SUCCESS); + CHECK_STRING(szDigest, "d5976f79d83d3a0dc9806c3c66f3efd8"); + + + /* + * Generic API tests. + */ + static TESTRTDIGEST const s_abTests[] = + { + { &g_abRandom72KB[0], 0, "8350e5a3e24c153df2275c9f80692773", "MD2 0 bytes" }, + { &g_abRandom72KB[0], 1, "142ca23308e886f4249d147914889156", "MD2 1 byte" }, + { &g_abRandom72KB[0], 2, "5e962a3590849aff8038032cb55e4491", "MD2 2 bytes" }, + { &g_abRandom72KB[0], 3, "0d866c59a8b5e1c305570be5ade02d5e", "MD2 3 bytes" }, + { &g_abRandom72KB[0], 4, "dfd68bdf6826b5c8bf55675a0f0b8703", "MD2 4 bytes" }, + { &g_abRandom72KB[0], 5, "33f83255dcceaf8abbafdca5327f9886", "MD2 5 bytes" }, + { &g_abRandom72KB[0], 6, "586a0dac9c469e938adca3e405ba0ac8", "MD2 6 bytes" }, + { &g_abRandom72KB[0], 7, "88427c5c074552dfd2ced41d4fe5e853", "MD2 7 bytes" }, + { &g_abRandom72KB[0], 8, "927ac332618d50e49aae2d5f64c025b4", "MD2 8 bytes" }, + { &g_abRandom72KB[0], 9, "9fcae6b2526d3f089a3cccc31aa8ebf1", "MD2 9 bytes" }, + { &g_abRandom72KB[0], 10, "3ad05f9fd70ad323a0bbe77d2c320456", "MD2 10 bytes" }, + { &g_abRandom72KB[0], 11, "d9bdb0ccacdd65694d19482521256e5d", "MD2 11 bytes" }, + { &g_abRandom72KB[0], 12, "b79cb3a39d25750fa380f6e82c3cc239", "MD2 12 bytes" }, + { &g_abRandom72KB[0], 13, "b7db14f7057edd00e8c769060a3a8cb3", "MD2 13 bytes" }, + { &g_abRandom72KB[0], 14, "c3d3e05a1cb241890cbb164c800c4576", "MD2 14 bytes" }, + { &g_abRandom72KB[0], 15, "08a7b38a5e0891b07a0ed1a69f6037b2", "MD2 15 bytes" }, + { &g_abRandom72KB[0], 16, "7131c0f3b904678579fe4a64b79095a4", "MD2 16 bytes" }, + { &g_abRandom72KB[0], 17, "f91ba6efd6069ff46d604ecfdec15ac9", "MD2 17 bytes" }, + { &g_abRandom72KB[0], 18, "bea228d4e8358268071b440f41e68d21", "MD2 18 bytes" }, + { &g_abRandom72KB[0], 19, "ca4c5c896ed5dc6ac52fb8b5aedcb044", "MD2 19 bytes" }, + { &g_abRandom72KB[0], 20, "9e66429cd582564328b86f72208460f3", "MD2 20 bytes" }, + { &g_abRandom72KB[0], 21, "a366dd52bcd8baf3578e5ccff819074b", "MD2 21 bytes" }, + { &g_abRandom72KB[0], 22, "4f909f0f5101e87bb8652036fcd54fea", "MD2 22 bytes" }, + { &g_abRandom72KB[0], 23, "f74233c43a71736be4ae4d0259658106", "MD2 23 bytes" }, + { &g_abRandom72KB[0], 24, "3a245315355acb62a402646f3eb789e7", "MD2 24 bytes" }, + { &g_abRandom72KB[0], 25, "f9bbc496a41f2f377b9e7a665a503fc4", "MD2 25 bytes" }, + { &g_abRandom72KB[0], 26, "b90cc3e523c58b2ddee36dabf6544961", "MD2 26 bytes" }, + { &g_abRandom72KB[0], 27, "99a035865fbd3fe595afc01140fa8c34", "MD2 27 bytes" }, + { &g_abRandom72KB[0], 28, "8196f2d6989d824b828b483c8bf21390", "MD2 28 bytes" }, + { &g_abRandom72KB[0], 29, "957754cec1095bb3eed25827282c00db", "MD2 29 bytes" }, + { &g_abRandom72KB[0], 30, "8c392b65a3824de6edf94d4c4df064cd", "MD2 30 bytes" }, + { &g_abRandom72KB[0], 31, "cb7276510e070c82e5391e682c262e1d", "MD2 31 bytes" }, + { &g_abRandom72KB[0], 32, "cb6ba252ddd841c483095a58f2c2c78c", "MD2 32 bytes" }, + { &g_abRandom72KB[0], 33, "a74fdcd7798bb3d9153d486e0c2049bf", "MD2 33 bytes" }, + { &g_abRandom72KB[0], 34, "30f1d91b79c01fe15dda2d018e05ce8c", "MD2 34 bytes" }, + { &g_abRandom72KB[0], 35, "d24c79922d3168fc5ea3896cf6517067", "MD2 35 bytes" }, + { &g_abRandom72KB[0], 36, "eea7cb5dc0716cda6a1b97db655db057", "MD2 36 bytes" }, + { &g_abRandom72KB[0], 37, "85223ec3f4b266bb9ef9546dd4c6fbe0", "MD2 37 bytes" }, + { &g_abRandom72KB[0], 38, "4f45bdd2390452ab7ea46448f3e08d72", "MD2 38 bytes" }, + { &g_abRandom72KB[0], 39, "c2e0e4b3fbaab93342e952ff1f45bb3e", "MD2 39 bytes" }, + { &g_abRandom72KB[0], 40, "08967efe427009b4b4f1d6d444ae2897", "MD2 40 bytes" }, + { &g_abRandom72KB[0], 41, "ef66a72fb184b64d07b525dc1a6e0376", "MD2 41 bytes" }, + { &g_abRandom72KB[0], 42, "8e08b6337537406770c27584293ea515", "MD2 42 bytes" }, + { &g_abRandom72KB[0], 43, "08fe64ee6d9a811154d9312c586c0a08", "MD2 43 bytes" }, + { &g_abRandom72KB[0], 44, "4f29656bf1fe579357240d1a364415c5", "MD2 44 bytes" }, + { &g_abRandom72KB[0], 45, "7998eb00e5774b175db8fa91de555aab", "MD2 45 bytes" }, + { &g_abRandom72KB[0], 46, "a7692c36d342ba2b750f1f26fecdac56", "MD2 46 bytes" }, + { &g_abRandom72KB[0], 47, "038f0bb2828f03fcabde6aa9dcb10e6d", "MD2 47 bytes" }, + { &g_abRandom72KB[0], 48, "b178ffa99a7c5caefef81b8601fbd992", "MD2 48 bytes" }, + { &g_abRandom72KB[0], 49, "f139777906b3ca8785a893f4aacd2489", "MD2 49 bytes" }, + { &g_abRandom72KB[0], 50, "e1a57dcc846d8c0ad3853fde8278094e", "MD2 50 bytes" }, + { &g_abRandom72KB[0], 51, "e754995fa0fd61ba9e10a54e12afde4f", "MD2 51 bytes" }, + { &g_abRandom72KB[0], 52, "ddf17522138d919678f44eaeeb1c0901", "MD2 52 bytes" }, + { &g_abRandom72KB[0], 53, "7b588ece72a7dca79fcabfda083b7ac0", "MD2 53 bytes" }, + { &g_abRandom72KB[0], 54, "8b23c8a9261faeb9ebb2853a03f3f2eb", "MD2 54 bytes" }, + { &g_abRandom72KB[0], 55, "89d700920d22d2f4a655add9fce30295", "MD2 55 bytes" }, + { &g_abRandom72KB[0], 56, "c3ece99f88613724c8e6d17af9e728a9", "MD2 56 bytes" }, + { &g_abRandom72KB[0], 57, "271a0f4e6e270fb0264348cff440f36d", "MD2 57 bytes" }, + { &g_abRandom72KB[0], 58, "4b01b8d1f7912dea17b5c8f5aa0654f2", "MD2 58 bytes" }, + { &g_abRandom72KB[0], 59, "ed399fc4cab3cbcc1d65dda49f9496b7", "MD2 59 bytes" }, + { &g_abRandom72KB[0], 60, "59eab0ff60a2da2935cdd548082c3cf9", "MD2 60 bytes" }, + { &g_abRandom72KB[0], 61, "88c5169745df6ef88088bd5d162ef2f9", "MD2 61 bytes" }, + { &g_abRandom72KB[0], 62, "c4711f410d141f7e3fc40464cf117a98", "MD2 62 bytes" }, + { &g_abRandom72KB[0], 63, "d9bf4e2e3692082cf712466c90c7548b", "MD2 63 bytes" }, + { &g_abRandom72KB[0], 64, "cd8e18bede03bbc4620539b3d41091a0", "MD2 64 bytes" }, + { &g_abRandom72KB[0], 65, "4ccbf9b18f0a47a958efd71f4bcff1d5", "MD2 65 bytes" }, + { &g_abRandom72KB[0], 66, "5f0356e384a3ace42ddaa0053494e932", "MD2 66 bytes" }, + { &g_abRandom72KB[0], 67, "c90f40c059da2d14c45c9a6f72fbc06a", "MD2 67 bytes" }, + { &g_abRandom72KB[0], 68, "29d000bccfc0df57d79da8d275c5766d", "MD2 68 bytes" }, + { &g_abRandom72KB[0], 69, "2fb908536b6e0e4ead7aa5e8552a10cb", "MD2 69 bytes" }, + { &g_abRandom72KB[0], 70, "df1e18111f62b07aae8e3f81d74385d1", "MD2 70 bytes" }, + { &g_abRandom72KB[0], 71, "1213eca29ce71f0037527f8347da4c1c", "MD2 71 bytes" }, + { &g_abRandom72KB[0], 72, "bd6686795f936446534646f7d7f35e03", "MD2 72 bytes" }, + { &g_abRandom72KB[0], 73, "b5181c0b712b3aa024e67430edbd816a", "MD2 73 bytes" }, + { &g_abRandom72KB[0], 74, "3b05c33b18ac294e35cd18337d31a842", "MD2 74 bytes" }, + { &g_abRandom72KB[0], 75, "1d6e83621f88667536242ff538872758", "MD2 75 bytes" }, + { &g_abRandom72KB[0], 76, "d830d59fe1cba1da97f19c8750a130d6", "MD2 76 bytes" }, + { &g_abRandom72KB[0], 77, "2d290278d7c502b59a68ca47f22e2ffd", "MD2 77 bytes" }, + { &g_abRandom72KB[0], 78, "7fcf7fa7e54c5189c76c3724811fe105", "MD2 78 bytes" }, + { &g_abRandom72KB[0], 79, "f41c1697d5cb26734108aace37d2f8ee", "MD2 79 bytes" }, + { &g_abRandom72KB[0], 80, "ff814e4823539973251969c88f0aabd2", "MD2 80 bytes" }, + { &g_abRandom72KB[0], 81, "eaf947ace4636dd9fdf5f540d48afa18", "MD2 81 bytes" }, + { &g_abRandom72KB[0], 82, "89b69633a8f41d2f318a59157f7b1135", "MD2 82 bytes" }, + { &g_abRandom72KB[0], 83, "22b6a01cf22dda9aecd29903eb551b96", "MD2 83 bytes" }, + { &g_abRandom72KB[0], 84, "2ab03e9c9674df73c9316ae471275b9e", "MD2 84 bytes" }, + { &g_abRandom72KB[0], 85, "f3c3b113995ad4bb6ac011bce4c8aaeb", "MD2 85 bytes" }, + { &g_abRandom72KB[0], 86, "c47408bcce2ad6d88c27644381829d17", "MD2 86 bytes" }, + { &g_abRandom72KB[0], 87, "6a7eb6a1d8d6e2d32fbfb5e18b4a7d78", "MD2 87 bytes" }, + { &g_abRandom72KB[0], 88, "573d2746448f32b9fb2e7e96c902df5d", "MD2 88 bytes" }, + { &g_abRandom72KB[0], 89, "88043ead96eb9ad170a2a5c04b31473e", "MD2 89 bytes" }, + { &g_abRandom72KB[0], 90, "e08bf4255a9aceec98195d98fe23ca3a", "MD2 90 bytes" }, + { &g_abRandom72KB[0], 91, "8c5d08ff1e6cd07b13ea5c8f2679be54", "MD2 91 bytes" }, + { &g_abRandom72KB[0], 92, "229e41d0dea6c9fc50385a04107d34e1", "MD2 92 bytes" }, + { &g_abRandom72KB[0], 93, "9ba3f41db14506d0d72d2477086fc3b0", "MD2 93 bytes" }, + { &g_abRandom72KB[0], 94, "6838e101797e4af9db93cce7b7f08497", "MD2 94 bytes" }, + { &g_abRandom72KB[0], 95, "a936e8484a013da8fb2f76b1a5e0e577", "MD2 95 bytes" }, + { &g_abRandom72KB[0], 96, "34140248d6f7c3cfe08c52460bd5ae85", "MD2 96 bytes" }, + { &g_abRandom72KB[0], 97, "65022916cd54ab0dfddd5b6a5d88daf6", "MD2 97 bytes" }, + { &g_abRandom72KB[0], 98, "929a96dfeaca781892e1ef0114429d07", "MD2 98 bytes" }, + { &g_abRandom72KB[0], 99, "f3c117eff8a7693a34f60d8364b32fb4", "MD2 99 bytes" }, + { &g_abRandom72KB[0], 100, "b20414388581bc1f001bad02d34db98f", "MD2 100 bytes" }, + { &g_abRandom72KB[0], 101, "2e649b9250edc6a717f7a72ba5ad245b", "MD2 101 bytes" }, + { &g_abRandom72KB[0], 102, "84c30f8dfb3555f24320d1da1fe41845", "MD2 102 bytes" }, + { &g_abRandom72KB[0], 103, "ce647df6e37517be82a63eb5bb06c010", "MD2 103 bytes" }, + { &g_abRandom72KB[0], 104, "e58b4587f8d8654446b495054ca9a3c8", "MD2 104 bytes" }, + { &g_abRandom72KB[0], 105, "d0e5067a2fcdd00cbb058228b9f23a09", "MD2 105 bytes" }, + { &g_abRandom72KB[0], 106, "2666a7d835c27bf8e2b88e5260fc4b08", "MD2 106 bytes" }, + { &g_abRandom72KB[0], 107, "ba5f7980c93a5f63a921d11f74aa0c0b", "MD2 107 bytes" }, + { &g_abRandom72KB[0], 108, "c03ca631eed8a88ddd6aadb6b138da41", "MD2 108 bytes" }, + { &g_abRandom72KB[0], 109, "84c273d3e262c7d0d18f8d32ce6c87ab", "MD2 109 bytes" }, + { &g_abRandom72KB[0], 110, "8abc96f5ef0dd75a64ed4aebdb529e45", "MD2 110 bytes" }, + { &g_abRandom72KB[0], 111, "85d93a90b19e9dcaf2794d61eaf6095f", "MD2 111 bytes" }, + { &g_abRandom72KB[0], 112, "d14a45c32e48b9deee617a4682a6e47a", "MD2 112 bytes" }, + { &g_abRandom72KB[0], 113, "171a52a9b9df939ce634a530e1fdb571", "MD2 113 bytes" }, + { &g_abRandom72KB[0], 114, "bcfd33c67597ea544a54266c5b971ad5", "MD2 114 bytes" }, + { &g_abRandom72KB[0], 115, "76799540a3dace08d09dc1c23e33d7db", "MD2 115 bytes" }, + { &g_abRandom72KB[0], 116, "83ef334faedec13d17f5df823d0f98a1", "MD2 116 bytes" }, + { &g_abRandom72KB[0], 117, "cafcb95eac55ba3a07d8a216dc89bf3c", "MD2 117 bytes" }, + { &g_abRandom72KB[0], 118, "042c1f9c066204e9cb43a8ba6a73195a", "MD2 118 bytes" }, + { &g_abRandom72KB[0], 119, "829e12d96e1a3ce4c51dd70e9774da42", "MD2 119 bytes" }, + { &g_abRandom72KB[0], 120, "162c221e43624b03dee871e2ddf9275a", "MD2 120 bytes" }, + { &g_abRandom72KB[0], 121, "272eba7f65e4704a8200039351f7b7ed", "MD2 121 bytes" }, + { &g_abRandom72KB[0], 122, "4418e4c4ef6b6c9f5d6e35f934c54dc2", "MD2 122 bytes" }, + { &g_abRandom72KB[0], 123, "cbb78508b71600c067923bf200abd2d2", "MD2 123 bytes" }, + { &g_abRandom72KB[0], 124, "133e55a0236279fe2c3c8a616e6a4ec1", "MD2 124 bytes" }, + { &g_abRandom72KB[0], 125, "5aba7624888166ecfcf88607e7bca4ff", "MD2 125 bytes" }, + { &g_abRandom72KB[0], 126, "99fe0c4302b79f84b236eb125af38c9f", "MD2 126 bytes" }, + { &g_abRandom72KB[0], 127, "1c6aacae3441ab225a7aec2deefa5f8a", "MD2 127 bytes" }, + { &g_abRandom72KB[0], 128, "a971703ab10735c6df4e19ff5052da40", "MD2 128 bytes" }, + { &g_abRandom72KB[0], 129, "e7fd473d1f062183a18af88e947d0096", "MD2 129 bytes" }, + { &g_abRandom72KB[0], 1024, "bdccc17a55ced048a6937a2735b09cc6", "MD2 1024 bytes" }, + { &g_abRandom72KB[0], 73001, "54e982ce469bc379a71e2ca755eabe31", "MD2 73001 bytes" }, + { &g_abRandom72KB[0], 73728, "2cf3570a90117130c8879cca30dafb39", "MD2 73728 bytes" }, + { &g_abRandom72KB[0x20c9], 9991, "bbba194efa81238e5b613e20e937144e", "MD2 8393 bytes @9991" }, + }; + testGeneric("1.2.840.113549.2.2", s_abTests, RT_ELEMENTS(s_abTests), "MD2", RTDIGESTTYPE_MD2); +} + + +/** + * Tests MD5. + */ +static void testMd5(void) +{ + RTTestISub("MD5"); + + /* + * Some quick direct API tests. + */ + uint8_t abHash[RTMD5_HASH_SIZE]; + char szDigest[RTMD5_DIGEST_LEN + 1]; + const char *pszString; + + pszString = ""; + RTMd5(pszString, strlen(pszString), abHash); + RTTESTI_CHECK_RC_RETV(RTMd5ToString(abHash, szDigest, sizeof(szDigest)), VINF_SUCCESS); + CHECK_STRING(szDigest, "d41d8cd98f00b204e9800998ecf8427e"); + + pszString = "The quick brown fox jumps over the lazy dog"; + RTMd5(pszString, strlen(pszString), abHash); + RTTESTI_CHECK_RC_RETV(RTMd5ToString(abHash, szDigest, sizeof(szDigest)), VINF_SUCCESS); + CHECK_STRING(szDigest, "9e107d9d372bb6826bd81d3542a419d6"); + + pszString = "a"; + RTMd5(pszString, strlen(pszString), abHash); + RTTESTI_CHECK_RC_RETV(RTMd5ToString(abHash, szDigest, sizeof(szDigest)), VINF_SUCCESS); + CHECK_STRING(szDigest, "0cc175b9c0f1b6a831c399e269772661"); + + pszString = "abc"; + RTMd5(pszString, strlen(pszString), abHash); + RTTESTI_CHECK_RC_RETV(RTMd5ToString(abHash, szDigest, sizeof(szDigest)), VINF_SUCCESS); + CHECK_STRING(szDigest, "900150983cd24fb0d6963f7d28e17f72"); + + pszString = "message digest"; + RTMd5(pszString, strlen(pszString), abHash); + RTTESTI_CHECK_RC_RETV(RTMd5ToString(abHash, szDigest, sizeof(szDigest)), VINF_SUCCESS); + CHECK_STRING(szDigest, "f96b697d7cb7938d525a2f31aaf161d0"); + + pszString = "abcdefghijklmnopqrstuvwxyz"; + RTMd5(pszString, strlen(pszString), abHash); + RTTESTI_CHECK_RC_RETV(RTMd5ToString(abHash, szDigest, sizeof(szDigest)), VINF_SUCCESS); + CHECK_STRING(szDigest, "c3fcd3d76192e4007dfb496cca67e13b"); + + pszString = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789"; + RTMd5(pszString, strlen(pszString), abHash); + RTTESTI_CHECK_RC_RETV(RTMd5ToString(abHash, szDigest, sizeof(szDigest)), VINF_SUCCESS); + CHECK_STRING(szDigest, "d174ab98d277d9f5a5611c2c9f419d9f"); + + pszString = "12345678901234567890123456789012345678901234567890123456789012345678901234567890"; + RTMd5(pszString, strlen(pszString), abHash); + RTTESTI_CHECK_RC_RETV(RTMd5ToString(abHash, szDigest, sizeof(szDigest)), VINF_SUCCESS); + CHECK_STRING(szDigest, "57edf4a22be3c955ac49da2e2107b67a"); + + + /* + * Generic API tests. + */ + static TESTRTDIGEST const s_abTests[] = + { + { &g_abRandom72KB[0], 0, "d41d8cd98f00b204e9800998ecf8427e", "MD5 0 bytes" }, + { &g_abRandom72KB[0], 1, "785d512be4316d578e6650613b45e934", "MD5 1 bytes" }, + { &g_abRandom72KB[0], 2, "87ed1a6013d72148da0b0294e763048d", "MD5 2 bytes" }, + { &g_abRandom72KB[0], 3, "822de939633727229045cb7789af7df5", "MD5 3 bytes" }, + { &g_abRandom72KB[0], 4, "86287bc09cb9260cf25c132979051304", "MD5 4 bytes" }, + { &g_abRandom72KB[0], 5, "d3d1ce75037d39cf5de6c00f0ed3ca78", "MD5 5 bytes" }, + { &g_abRandom72KB[0], 6, "3dd3a9b4fdf9afecac4ff3a81fa42487", "MD5 6 bytes" }, + { &g_abRandom72KB[0], 7, "15644ca265e05e9c6cf19f297fd061d4", "MD5 7 bytes" }, + { &g_abRandom72KB[0], 8, "da96c8b71cd59cb6af75358ca6c85d7f", "MD5 8 bytes" }, + { &g_abRandom72KB[0], 9, "c2ad718a365c3b3ea6452d18911c9731", "MD5 9 bytes" }, + { &g_abRandom72KB[0], 10, "b5075641b6951182c10596c1f2e4f77a", "MD5 10 bytes" }, + { &g_abRandom72KB[0], 11, "ceea2cb4481c655b7057e1b8dd5a0bd1", "MD5 11 bytes" }, + { &g_abRandom72KB[0], 12, "006e60df0db98aaa0c7a920ea3b663e3", "MD5 12 bytes" }, + { &g_abRandom72KB[0], 13, "3a2cfd399b70235b276203b03dd6eb0e", "MD5 13 bytes" }, + { &g_abRandom72KB[0], 14, "e7829cff3b8c15a6771b9ee8e9dd2084", "MD5 14 bytes" }, + { &g_abRandom72KB[0], 15, "4277413716da82ffee61f36fc25fd5b1", "MD5 15 bytes" }, + { &g_abRandom72KB[0], 16, "823753a79e0677c9b7e41b5725dbce8f", "MD5 16 bytes" }, + { &g_abRandom72KB[0], 17, "3af2c16a115519a00fa8c38f99bdd531", "MD5 17 bytes" }, + { &g_abRandom72KB[0], 18, "e0d640f347fd089338434c4ddc826538", "MD5 18 bytes" }, + { &g_abRandom72KB[0], 19, "d07554497ee83534affa84a5af86c04d", "MD5 19 bytes" }, + { &g_abRandom72KB[0], 20, "b3156aab604ab535832243ff1ce0d3ea", "MD5 20 bytes" }, + { &g_abRandom72KB[0], 21, "a4fb150aab01d4ac4859ecaecf221c63", "MD5 21 bytes" }, + { &g_abRandom72KB[0], 22, "fe6aa2d9c68e100ebaca1bede6be7025", "MD5 22 bytes" }, + { &g_abRandom72KB[0], 23, "db6c3662d9a8950ddcd1b8603a5ab040", "MD5 23 bytes" }, + { &g_abRandom72KB[0], 24, "c56df7b41f9b1420e9e114e82484bcdf", "MD5 24 bytes" }, + { &g_abRandom72KB[0], 25, "7194fb3612d4f53d8eeaa80d60618e49", "MD5 25 bytes" }, + { &g_abRandom72KB[0], 26, "3355f00eac0c85ea8e84c713f55bca3a", "MD5 26 bytes" }, + { &g_abRandom72KB[0], 27, "127b104d22b2cb437ba3b34f6c977e05", "MD5 27 bytes" }, + { &g_abRandom72KB[0], 28, "ce4911fab274a55254cc8989252b47a9", "MD5 28 bytes" }, + { &g_abRandom72KB[0], 29, "f9dd6d60777fee2d654835d5b239979b", "MD5 29 bytes" }, + { &g_abRandom72KB[0], 30, "213779ae9dd7ce0cf199c42ad719da5d", "MD5 30 bytes" }, + { &g_abRandom72KB[0], 31, "5e561c81405437e2205aa64eff81fad3", "MD5 31 bytes" }, + { &g_abRandom72KB[0], 32, "e41238f661fa29883be2f387e56621fb", "MD5 32 bytes" }, + { &g_abRandom72KB[0], 33, "d474457edf9bb331935109b905b2ac9c", "MD5 33 bytes" }, + { &g_abRandom72KB[0], 34, "9c60aa7bb5380442a96fcc960c54f4cd", "MD5 34 bytes" }, + { &g_abRandom72KB[0], 35, "6c27d085e88368d951d0be70bcb83daa", "MD5 35 bytes" }, + { &g_abRandom72KB[0], 36, "e743d29943ddee43e2d3b20373868ace", "MD5 36 bytes" }, + { &g_abRandom72KB[0], 37, "7917ff3a754410f5f3e6a1e34543ad3b", "MD5 37 bytes" }, + { &g_abRandom72KB[0], 38, "d9f6b9d5188e836fa851a5900ac20f3a", "MD5 38 bytes" }, + { &g_abRandom72KB[0], 39, "cef18b503ba9beb5ddf8a70112aaad88", "MD5 39 bytes" }, + { &g_abRandom72KB[0], 40, "39be72035e1058aee305b984373a6b16", "MD5 40 bytes" }, + { &g_abRandom72KB[0], 41, "5f8eda0e0084622bf6233594f06af754", "MD5 41 bytes" }, + { &g_abRandom72KB[0], 42, "c30e55ff2004e7b90009dee503964bbf", "MD5 42 bytes" }, + { &g_abRandom72KB[0], 43, "7a7f33277aa22a9199951022ab96c383", "MD5 43 bytes" }, + { &g_abRandom72KB[0], 44, "4f02d1a4e1ab98f7aed56ba12964af62", "MD5 44 bytes" }, + { &g_abRandom72KB[0], 45, "e0802f8b1739e5c284184d595624392e", "MD5 45 bytes" }, + { &g_abRandom72KB[0], 46, "50ea8f8f8a2bc14f7c07a9ec42826daa", "MD5 46 bytes" }, + { &g_abRandom72KB[0], 47, "365f247ba76a2024d2ff234b4e99bc48", "MD5 47 bytes" }, + { &g_abRandom72KB[0], 48, "cea411e3c67e77b48170699fe259e1c6", "MD5 48 bytes" }, + { &g_abRandom72KB[0], 49, "8453cb1977439f97279e39cbd8408ced", "MD5 49 bytes" }, + { &g_abRandom72KB[0], 50, "e6288244d7ae6f30dafa113146044f1b", "MD5 50 bytes" }, + { &g_abRandom72KB[0], 51, "f0c19a27d2474b5a2076ad0013ce966d", "MD5 51 bytes" }, + { &g_abRandom72KB[0], 52, "9265e6aea5bb3e16b4771dc0e15e9b23", "MD5 52 bytes" }, + { &g_abRandom72KB[0], 53, "3efcf10c3fd84a1999a11a8f2474fddd", "MD5 53 bytes" }, + { &g_abRandom72KB[0], 54, "cd6004b92196226fc754794bb185c09e", "MD5 54 bytes" }, + { &g_abRandom72KB[0], 55, "3ad247a37a75767374e3808930ff1240", "MD5 55 bytes" }, + { &g_abRandom72KB[0], 56, "11e8564e3db197beeaa8b9665b2ee2aa", "MD5 56 bytes" }, + { &g_abRandom72KB[0], 57, "790119e207ba5bf9b95768bd4acec278", "MD5 57 bytes" }, + { &g_abRandom72KB[0], 58, "2ff7a27055eb975c8d36f7105b905422", "MD5 58 bytes" }, + { &g_abRandom72KB[0], 59, "d1d5be70e576e9db7145b68bfaf4b8f7", "MD5 59 bytes" }, + { &g_abRandom72KB[0], 60, "d4383ffab62bda08cf2222186954abc8", "MD5 60 bytes" }, + { &g_abRandom72KB[0], 61, "69454edb58ddb72d7a715125ac5eefec", "MD5 61 bytes" }, + { &g_abRandom72KB[0], 62, "c2ea1754ec455e15e83c79630e726295", "MD5 62 bytes" }, + { &g_abRandom72KB[0], 63, "5c05c6ca2dc4ddbd52e447c2683aed47", "MD5 63 bytes" }, + { &g_abRandom72KB[0], 64, "a9f2d51e24b01bef5c96d4ab09b00f7b", "MD5 64 bytes" }, + { &g_abRandom72KB[0], 65, "f9ac6f5e2f43481d5966d7b9f946df6e", "MD5 65 bytes" }, + { &g_abRandom72KB[0], 66, "004d20523ee8c581da762700d4856e95", "MD5 66 bytes" }, + { &g_abRandom72KB[0], 67, "54180f89561ec585155c83cdb332eda7", "MD5 67 bytes" }, + { &g_abRandom72KB[0], 68, "e6e884c81250372d2f6d1e297a58fd3d", "MD5 68 bytes" }, + { &g_abRandom72KB[0], 69, "1ece0e157d215cec78ac5e7fc6096899", "MD5 69 bytes" }, + { &g_abRandom72KB[0], 70, "998fc35762eb99548110129d81873b4b", "MD5 70 bytes" }, + { &g_abRandom72KB[0], 71, "54e6dd0d33bc39c7bae536d20a070074", "MD5 71 bytes" }, + { &g_abRandom72KB[0], 72, "0eef8b9cf8f1e008cec190ab021e42d2", "MD5 72 bytes" }, + { &g_abRandom72KB[0], 73, "5519c0cdf891efe0bd9ead66cd20d9b4", "MD5 73 bytes" }, + { &g_abRandom72KB[0], 74, "14deef0ce4d7e2105875532f21da2212", "MD5 74 bytes" }, + { &g_abRandom72KB[0], 75, "938fdf08e55106e588fec9659ecc3f4b", "MD5 75 bytes" }, + { &g_abRandom72KB[0], 76, "7f4f6a2114cd8552aa948b20d7cfd725", "MD5 76 bytes" }, + { &g_abRandom72KB[0], 77, "5c34a0fe473b856d9665d789f7107146", "MD5 77 bytes" }, + { &g_abRandom72KB[0], 78, "c0fe660ac18254a65efdc8f71da77635", "MD5 78 bytes" }, + { &g_abRandom72KB[0], 79, "2c2670f20850aaa3f5e0d8a8fc07ae6e", "MD5 79 bytes" }, + { &g_abRandom72KB[0], 80, "8e74b2fb1edfd2135fd7240c62906fce", "MD5 80 bytes" }, + { &g_abRandom72KB[0], 81, "724214ccd4c5f1608cc577d80f1c1d63", "MD5 81 bytes" }, + { &g_abRandom72KB[0], 82, "2215de010fdcc3fe82a4bda76fc4c00c", "MD5 82 bytes" }, + { &g_abRandom72KB[0], 83, "f022e4fd762db1e713deff528eb8ab15", "MD5 83 bytes" }, + { &g_abRandom72KB[0], 84, "262c82ee993d73543fb86f60d43849bc", "MD5 84 bytes" }, + { &g_abRandom72KB[0], 85, "dac379497414e4135ea8e42ccbe39a11", "MD5 85 bytes" }, + { &g_abRandom72KB[0], 86, "c01cb2483bbdf778b536b07d7b12d31b", "MD5 86 bytes" }, + { &g_abRandom72KB[0], 87, "8f4753f5e64fa725f1a2a9a638e97686", "MD5 87 bytes" }, + { &g_abRandom72KB[0], 88, "6f53a21288b8a107a237df50b99fbc63", "MD5 88 bytes" }, + { &g_abRandom72KB[0], 89, "1df7274ecf95aecf4cef76070b4bc703", "MD5 89 bytes" }, + { &g_abRandom72KB[0], 90, "ebde27beebf8649892818f2c1b94dbac", "MD5 90 bytes" }, + { &g_abRandom72KB[0], 91, "c259c1aa0277ef8f3fda149d657f2958", "MD5 91 bytes" }, + { &g_abRandom72KB[0], 92, "47654004a1761a853d3a052cf3207e04", "MD5 92 bytes" }, + { &g_abRandom72KB[0], 93, "4e3011d42a53c359dfb7ed0cdd9fca3c", "MD5 93 bytes" }, + { &g_abRandom72KB[0], 94, "eab81b49b0efad606e623cad773f9bad", "MD5 94 bytes" }, + { &g_abRandom72KB[0], 95, "77a15147669b80b13cebf7f944865f7a", "MD5 95 bytes" }, + { &g_abRandom72KB[0], 96, "6975f970c6c7f8d11a52b8465df6f752", "MD5 96 bytes" }, + { &g_abRandom72KB[0], 97, "a5628bb324d1bd34bc41f81501c73c6d", "MD5 97 bytes" }, + { &g_abRandom72KB[0], 98, "c1b67f871130569c8dcd56b13997011b", "MD5 98 bytes" }, + { &g_abRandom72KB[0], 99, "4225c0cda6c16259a74c0733f3fa3025", "MD5 99 bytes" }, + { &g_abRandom72KB[0], 100, "39d1a9671f5eee3fd63f571e5700fb18", "MD5 100 bytes" }, + { &g_abRandom72KB[0], 101, "743bed2b5485505ebcd9c2dcaf61afd3", "MD5 101 bytes" }, + { &g_abRandom72KB[0], 102, "7a0d60739b87793168113a695257de4b", "MD5 102 bytes" }, + { &g_abRandom72KB[0], 103, "d483ae1c829dc3244ede1f46488c0f0c", "MD5 103 bytes" }, + { &g_abRandom72KB[0], 104, "1502b082b28c1b60decad1c3ec8d637b", "MD5 104 bytes" }, + { &g_abRandom72KB[0], 105, "df0d769bad97093d00560e4221023dbf", "MD5 105 bytes" }, + { &g_abRandom72KB[0], 106, "bd3641699ffe5adb1c8a3c8917abb1ff", "MD5 106 bytes" }, + { &g_abRandom72KB[0], 107, "b5e585c6da2c40a7e5aab059e7bd15ee", "MD5 107 bytes" }, + { &g_abRandom72KB[0], 108, "e3f8ec4a683a3512f73639cd6ef69638", "MD5 108 bytes" }, + { &g_abRandom72KB[0], 109, "a4a4b065603644c6d50dc0a4426badf6", "MD5 109 bytes" }, + { &g_abRandom72KB[0], 110, "7b22226bdb2504211fa8b99d2860b2c0", "MD5 110 bytes" }, + { &g_abRandom72KB[0], 111, "ab89296851f6ffc435431b82a3247b15", "MD5 111 bytes" }, + { &g_abRandom72KB[0], 112, "20249b22ba14b007555e54c9366ddabd", "MD5 112 bytes" }, + { &g_abRandom72KB[0], 113, "6bf5d9a3a30b5eb7af2a4092eda69ecd", "MD5 113 bytes" }, + { &g_abRandom72KB[0], 114, "f7d97a06da8494176e0fe01934e31e1f", "MD5 114 bytes" }, + { &g_abRandom72KB[0], 115, "2616a77b387bb99afdf8bb1f54f7a000", "MD5 115 bytes" }, + { &g_abRandom72KB[0], 116, "bf81d63f172e2ce9b958f0da5c92c344", "MD5 116 bytes" }, + { &g_abRandom72KB[0], 117, "8633ee1f631841cb1887a487f22a9f9f", "MD5 117 bytes" }, + { &g_abRandom72KB[0], 118, "0f3b0311c0cf9d9eba3240404cae137d", "MD5 118 bytes" }, + { &g_abRandom72KB[0], 119, "f79c00a97df8d45a211e6d01409c119b", "MD5 119 bytes" }, + { &g_abRandom72KB[0], 120, "4d88da4ff44c801f692b46869f2fbb98", "MD5 120 bytes" }, + { &g_abRandom72KB[0], 121, "15ca57bd78833831f54dfdcfbd5e4d29", "MD5 121 bytes" }, + { &g_abRandom72KB[0], 122, "0877ba42c2b57ab3d0041ddbc4bd930b", "MD5 122 bytes" }, + { &g_abRandom72KB[0], 123, "66086909e3740dd20004b0968e3316b5", "MD5 123 bytes" }, + { &g_abRandom72KB[0], 124, "bafe834041396ce465f0995677ea6fba", "MD5 124 bytes" }, + { &g_abRandom72KB[0], 125, "634eff105e618d75ab738512aff11048", "MD5 125 bytes" }, + { &g_abRandom72KB[0], 126, "850257fc17096cce1e2d6de664e7ec04", "MD5 126 bytes" }, + { &g_abRandom72KB[0], 127, "f12f54a3ecee91de840103aaa0d3726a", "MD5 127 bytes" }, + { &g_abRandom72KB[0], 128, "1a266528b8119279e9639418a2d85e77", "MD5 128 bytes" }, + { &g_abRandom72KB[0], 129, "e4791e35863addd6fa74ff1662d6a908", "MD5 129 bytes" }, + { &g_abRandom72KB[0], 1024, "310e55220bd80529e76a544209f8e532", "MD5 1024 bytes" }, + { &g_abRandom72KB[0], 73001, "f3d05b52be86f1db66a9ebf5ababaaa8", "MD5 73001 bytes" }, + { &g_abRandom72KB[0], 73728, "aef57c3b2ec6e560b51b8094fe34def7", "MD5 73728 bytes" }, + { &g_abRandom72KB[0x20c9], 9991, "6461339c6615d23c704298a313e07cf5", "MD5 8393 bytes @9991" }, + }; + testGeneric("1.2.840.113549.2.5", s_abTests, RT_ELEMENTS(s_abTests), "MD5", RTDIGESTTYPE_MD5); +} + + +/** + * Tests SHA-1 + */ +static void testSha1(void) +{ + RTTestISub("SHA-1"); + + /* + * Some quick direct API tests. + */ + uint8_t abHash[RTSHA1_HASH_SIZE]; + char szDigest[RTSHA1_DIGEST_LEN + 1]; + const char *pszString; + + pszString = ""; + RTSha1(pszString, strlen(pszString), abHash); + RTTESTI_CHECK_RC_RETV(RTSha1ToString(abHash, szDigest, sizeof(szDigest)), VINF_SUCCESS); + CHECK_STRING(szDigest, "da39a3ee5e6b4b0d3255bfef95601890afd80709"); + + pszString = "The quick brown fox jumps over the lazy dog"; + RTSha1(pszString, strlen(pszString), abHash); + RTTESTI_CHECK_RC_RETV(RTSha1ToString(abHash, szDigest, sizeof(szDigest)), VINF_SUCCESS); + CHECK_STRING(szDigest, "2fd4e1c67a2d28fced849ee1bb76e7391b93eb12"); + + pszString = "a"; + RTSha1(pszString, strlen(pszString), abHash); + RTTESTI_CHECK_RC_RETV(RTSha1ToString(abHash, szDigest, sizeof(szDigest)), VINF_SUCCESS); + CHECK_STRING(szDigest, "86f7e437faa5a7fce15d1ddcb9eaeaea377667b8"); + + pszString = "abc"; + RTSha1(pszString, strlen(pszString), abHash); + RTTESTI_CHECK_RC_RETV(RTSha1ToString(abHash, szDigest, sizeof(szDigest)), VINF_SUCCESS); + CHECK_STRING(szDigest, "a9993e364706816aba3e25717850c26c9cd0d89d"); + + + /* + * Generic API tests. + */ + static TESTRTDIGEST const s_abTests[] = + { + { &g_abRandom72KB[0], 0, "da39a3ee5e6b4b0d3255bfef95601890afd80709", "SHA-1 0 bytes" }, + { &g_abRandom72KB[0], 1, "768aab37c292010133979e821ad5ac081ade388a", "SHA-1 1 bytes" }, + { &g_abRandom72KB[0], 2, "e1d72a3d75ec967fe2826670ed35ce5242204ad2", "SHA-1 2 bytes" }, + { &g_abRandom72KB[0], 3, "d76ef947caa78f5e786d4ea417edec1d8f5a399b", "SHA-1 3 bytes" }, + { &g_abRandom72KB[0], 4, "392932bb1bd20acce81b1c9df604cb149ca3089e", "SHA-1 4 bytes" }, + { &g_abRandom72KB[0], 5, "f13362588bcfe78afd6f2b4f264bfa10f9e18bcf", "SHA-1 5 bytes" }, + { &g_abRandom72KB[0], 6, "9f582f1afe75e3769d6afc95f266b114c1f42349", "SHA-1 6 bytes" }, + { &g_abRandom72KB[0], 7, "e9326429c1709dd2278220e72eab0de2eebcfa67", "SHA-1 7 bytes" }, + { &g_abRandom72KB[0], 8, "7882a61d6bd15b1377810d6a2083c20306b56b2d", "SHA-1 8 bytes" }, + { &g_abRandom72KB[0], 9, "71df6819243e6ff29be17628fd9e051d732bf26e", "SHA-1 9 bytes" }, + { &g_abRandom72KB[0], 10, "76f9029c260c99700fe14341d39067bcc746b766", "SHA-1 10 bytes" }, + { &g_abRandom72KB[0], 11, "b11df4de9916a760282f046f86d7e65ebc276daa", "SHA-1 11 bytes" }, + { &g_abRandom72KB[0], 12, "67af3a95329eb9d23b4db48e372befe02f93860d", "SHA-1 12 bytes" }, + { &g_abRandom72KB[0], 13, "add021eaaa1c315110708e307ff6cf838fac4764", "SHA-1 13 bytes" }, + { &g_abRandom72KB[0], 14, "b66297ac3211b967b27010316a4feeb87af377b1", "SHA-1 14 bytes" }, + { &g_abRandom72KB[0], 15, "8350ccd151d4fbc8fcaa76486854c82ce28bf1c2", "SHA-1 15 bytes" }, + { &g_abRandom72KB[0], 16, "e005dbbc5f955cf88e06ad92eb2fecb8d7abc829", "SHA-1 16 bytes" }, + { &g_abRandom72KB[0], 17, "d9b9101f8026e9c9e164370e11b6b14877642339", "SHA-1 17 bytes" }, + { &g_abRandom72KB[0], 18, "f999dfca047ee12be46b4141d9387d8694a8c03f", "SHA-1 18 bytes" }, + { &g_abRandom72KB[0], 19, "366324b23a2ef746fe5bedce961482c0e8816fd1", "SHA-1 19 bytes" }, + { &g_abRandom72KB[0], 20, "6f987e9f030a9b25790ec79b0c9c0a5d8085a565", "SHA-1 20 bytes" }, + { &g_abRandom72KB[0], 21, "799a3aa036d56809e459f757a4086a9b83549fd8", "SHA-1 21 bytes" }, + { &g_abRandom72KB[0], 22, "1fd879155acdd70d26b64533283b033db95cb264", "SHA-1 22 bytes" }, + { &g_abRandom72KB[0], 23, "888db854b475c3923f73090ad855d68c8708ecf4", "SHA-1 23 bytes" }, + { &g_abRandom72KB[0], 24, "c81e41a34ec7ae112a59bdcc1e31c9dd9f75cafc", "SHA-1 24 bytes" }, + { &g_abRandom72KB[0], 25, "a19edeb182e13e11c7371b6795f9f973544e25e2", "SHA-1 25 bytes" }, + { &g_abRandom72KB[0], 26, "7a98f96aa921d6932dd966d4f41f7afafef50992", "SHA-1 26 bytes" }, + { &g_abRandom72KB[0], 27, "847272961c5a5a1b10d2fefab9d95475bb246e6b", "SHA-1 27 bytes" }, + { &g_abRandom72KB[0], 28, "eb2b1dbc0ea2a23e308e1bf9d6e78167f62b9a5c", "SHA-1 28 bytes" }, + { &g_abRandom72KB[0], 29, "5050998e561c0887e3365d8c87f63ce00cc4084e", "SHA-1 29 bytes" }, + { &g_abRandom72KB[0], 30, "42278d4e8a70aeaa64f9194f1c90d827bba85a45", "SHA-1 30 bytes" }, + { &g_abRandom72KB[0], 31, "f87ad36842c6e36fbbe7b3edd6514d4670367b79", "SHA-1 31 bytes" }, + { &g_abRandom72KB[0], 32, "9faa3230afd8279a4b006d37b9f243b2f6430616", "SHA-1 32 bytes" }, + { &g_abRandom72KB[0], 33, "5ca875e82e84cfa9aee1adc5a54fdb8b276f9c9a", "SHA-1 33 bytes" }, + { &g_abRandom72KB[0], 34, "833d2bb01ec548b204750e0a3b9226059377aa66", "SHA-1 34 bytes" }, + { &g_abRandom72KB[0], 35, "aeb0843fc2978addc14cc42a184887a57678722b", "SHA-1 35 bytes" }, + { &g_abRandom72KB[0], 36, "77d4e5da16564461a0a44ce0ac4d0e885c46c127", "SHA-1 36 bytes" }, + { &g_abRandom72KB[0], 37, "dfe064bcfed5f8fa2fe8efca6a75a9ca51d2ef43", "SHA-1 37 bytes" }, + { &g_abRandom72KB[0], 38, "a89cf8c2af3a1ede699eb7421d0038030035b081", "SHA-1 38 bytes" }, + { &g_abRandom72KB[0], 39, "5f4eb0893c2ea7445fea51508573f9f8eab98862", "SHA-1 39 bytes" }, + { &g_abRandom72KB[0], 40, "2cf921e5e564b947c6ae98e709b49e9e7c7f9c2f", "SHA-1 40 bytes" }, + { &g_abRandom72KB[0], 41, "7788ea70ee17e475b360e4e59f3f7792137e836d", "SHA-1 41 bytes" }, + { &g_abRandom72KB[0], 42, "6506ab486671f2a2b7e8a19626da6ae531299f39", "SHA-1 42 bytes" }, + { &g_abRandom72KB[0], 43, "950096584b7a7aabd610ef466be73e544d9d0809", "SHA-1 43 bytes" }, + { &g_abRandom72KB[0], 44, "ff99e44ed9e8f30f81a9b50f61c376681ee16a91", "SHA-1 44 bytes" }, + { &g_abRandom72KB[0], 45, "f043b267447eaf18c89528e8f52fa0c8f33c0022", "SHA-1 45 bytes" }, + { &g_abRandom72KB[0], 46, "a9527c0a351fe0b4606eba0a8900b78c0f311f1a", "SHA-1 46 bytes" }, + { &g_abRandom72KB[0], 47, "579f1fea36188490d80bfe4f04bd5a0e625006d2", "SHA-1 47 bytes" }, + { &g_abRandom72KB[0], 48, "c43765e7b3565e7a78ccf96011a4afad18f7f781", "SHA-1 48 bytes" }, + { &g_abRandom72KB[0], 49, "a3130b7c92c6441e8c319c6768e611d74e419ce7", "SHA-1 49 bytes" }, + { &g_abRandom72KB[0], 50, "ef8fedfa73384d6c68c7e956ddc1c45239d40be0", "SHA-1 50 bytes" }, + { &g_abRandom72KB[0], 51, "a4dea447ae78523fec06a7e65d798f1a61c3b96b", "SHA-1 51 bytes" }, + { &g_abRandom72KB[0], 52, "86b4aa02ab3cc63badf544131087689ecaf25f24", "SHA-1 52 bytes" }, + { &g_abRandom72KB[0], 53, "a0faf581ceaa922d0530f90d76fbd93e93810d58", "SHA-1 53 bytes" }, + { &g_abRandom72KB[0], 54, "80ab7368ad003e5083d9804579a565de6a278c40", "SHA-1 54 bytes" }, + { &g_abRandom72KB[0], 55, "8b1bec05d4a56b1beb500f2d639b3f7887d68e81", "SHA-1 55 bytes" }, + { &g_abRandom72KB[0], 56, "66ba1322833fd92af27ae37e4382e95b525969b4", "SHA-1 56 bytes" }, + { &g_abRandom72KB[0], 57, "ecab320750baead21b14d31450512ec0584ccd8d", "SHA-1 57 bytes" }, + { &g_abRandom72KB[0], 58, "a4f13253e34d4dc4f65c4b4b3da694fdf8af3bf9", "SHA-1 58 bytes" }, + { &g_abRandom72KB[0], 59, "73f6b88c28af42df6a0ab207e33176078082f67d", "SHA-1 59 bytes" }, + { &g_abRandom72KB[0], 60, "d19f291905289ded6ed13b3dc8c47f94b999c100", "SHA-1 60 bytes" }, + { &g_abRandom72KB[0], 61, "bd0bef35c45892c13c27825de9920a8b9fc91d73", "SHA-1 61 bytes" }, + { &g_abRandom72KB[0], 62, "f62f8426087fea0bf3733f2b2f6d37fd155d01f6", "SHA-1 62 bytes" }, + { &g_abRandom72KB[0], 63, "22891a14ef0e27fabef93f768fd645e042254011", "SHA-1 63 bytes" }, + { &g_abRandom72KB[0], 64, "364a08a4a85f6fe61272125ae2e549a1c4cc3fe4", "SHA-1 64 bytes" }, + { &g_abRandom72KB[0], 65, "8bf19ebbe263845cd3c35b853f1892d959dc8bd4", "SHA-1 65 bytes" }, + { &g_abRandom72KB[0], 66, "ed3a0f2dc02fcc12e134bfd2f4e23a6294122e57", "SHA-1 66 bytes" }, + { &g_abRandom72KB[0], 67, "596308eb7eabf39431ec953d2c6bacb9bb7c6c70", "SHA-1 67 bytes" }, + { &g_abRandom72KB[0], 68, "d1d736e7d1a7ffe5613f6337248d67d7ebf8be01", "SHA-1 68 bytes" }, + { &g_abRandom72KB[0], 69, "6ebad117db6e9cdfedae52f44df3ba51eb95efa2", "SHA-1 69 bytes" }, + { &g_abRandom72KB[0], 70, "f5a05b4b156c07c23e8779f776a7f894922c148f", "SHA-1 70 bytes" }, + { &g_abRandom72KB[0], 71, "01aef4f832ad68e6708f31a97bc363d9da20b6ba", "SHA-1 71 bytes" }, + { &g_abRandom72KB[0], 72, "1bbf9dc55aa008a5e0c7fc4d34cb9e283f785b4e", "SHA-1 72 bytes" }, + { &g_abRandom72KB[0], 73, "1504867acdbe4b1db5015d272182d17a4620a8b9", "SHA-1 73 bytes" }, + { &g_abRandom72KB[0], 74, "7c96021e92a9bf98e5fb34ac17a3db487f1c7ac7", "SHA-1 74 bytes" }, + { &g_abRandom72KB[0], 75, "d53acd002a6fc89120bc1ae7698aa0996cfacf00", "SHA-1 75 bytes" }, + { &g_abRandom72KB[0], 76, "f8036f1ffdcaaadc1beb1542264f43060bf7c0c3", "SHA-1 76 bytes" }, + { &g_abRandom72KB[0], 77, "6bec2adc19d2229054499d035f9904b6a69ea89a", "SHA-1 77 bytes" }, + { &g_abRandom72KB[0], 78, "ad09365576f77c608afe0242caaae3604ce0fd17", "SHA-1 78 bytes" }, + { &g_abRandom72KB[0], 79, "8ef16b886a12c3ceadf67d6bf8ee016c72b4c02a", "SHA-1 79 bytes" }, + { &g_abRandom72KB[0], 80, "bd60ca67ea01e456de55bfbf0cc1095eadeda98a", "SHA-1 80 bytes" }, + { &g_abRandom72KB[0], 81, "6cb9bb8e6447fff7a04e46de9e8410bffe7185f9", "SHA-1 81 bytes" }, + { &g_abRandom72KB[0], 82, "2365ced0aa582dfdfe0b7ba0607e6953d64e1029", "SHA-1 82 bytes" }, + { &g_abRandom72KB[0], 83, "4597ee3f912cce76b81d05eb0d4941af76688995", "SHA-1 83 bytes" }, + { &g_abRandom72KB[0], 84, "287a99bcb83b395e9e0b1f36d492417f4bd25d6f", "SHA-1 84 bytes" }, + { &g_abRandom72KB[0], 85, "689caf3dd39ec1cf99baba13c549d9a25797e3e1", "SHA-1 85 bytes" }, + { &g_abRandom72KB[0], 86, "1fc2a6da9ba7a623f5eac73b56134772de374d1c", "SHA-1 86 bytes" }, + { &g_abRandom72KB[0], 87, "a2c3cb4c5b1dc6dfdf553614bf846ed794874f16", "SHA-1 87 bytes" }, + { &g_abRandom72KB[0], 88, "3e9b451561c66d9eb9e9052c3027d4d91f495771", "SHA-1 88 bytes" }, + { &g_abRandom72KB[0], 89, "a47b63438fdaaab0bb4ea5e31b84aaae118bc9a9", "SHA-1 89 bytes" }, + { &g_abRandom72KB[0], 90, "5c1b3fbc228add14796ed049b00924ed7140340d", "SHA-1 90 bytes" }, + { &g_abRandom72KB[0], 91, "b873c08cb5329f82bd6adcd134f81e29597c4964", "SHA-1 91 bytes" }, + { &g_abRandom72KB[0], 92, "f77066f9a0908d50e6018300cb82f436df9c8045", "SHA-1 92 bytes" }, + { &g_abRandom72KB[0], 93, "b4c97048c643c9e5b6355683d36a1faee6d023ac", "SHA-1 93 bytes" }, + { &g_abRandom72KB[0], 94, "d6b48d223bd97d3b53c0868c0528f18a3d5ebc88", "SHA-1 94 bytes" }, + { &g_abRandom72KB[0], 95, "9562095eccd53bf5a968bc3eda65f3e327326b8e", "SHA-1 95 bytes" }, + { &g_abRandom72KB[0], 96, "b394b8e175238834daf9c4d3b5fc8dbcfd982ae9", "SHA-1 96 bytes" }, + { &g_abRandom72KB[0], 97, "c0127c82cb667da52892e462b5e9cdafb4f0deaa", "SHA-1 97 bytes" }, + { &g_abRandom72KB[0], 98, "f51474c9995eb341748dea0f07f60cac46d5fa87", "SHA-1 98 bytes" }, + { &g_abRandom72KB[0], 99, "6ae3406d41332cfe86c40d275b5e1e394893361b", "SHA-1 99 bytes" }, + { &g_abRandom72KB[0], 100, "0d5823c081f69ad4e7fbd7ee0ed12092f6e2ed75", "SHA-1 100 bytes" }, + { &g_abRandom72KB[0], 101, "fc8527f9c789abf67e2bcc78e2048f4eda8f7d7d", "SHA-1 101 bytes" }, + { &g_abRandom72KB[0], 102, "a322eb5d5e65833310953a3a7bb1081e05b69318", "SHA-1 102 bytes" }, + { &g_abRandom72KB[0], 103, "5a4fac64b273263043c771a5f9bae1fb243cd7d6", "SHA-1 103 bytes" }, + { &g_abRandom72KB[0], 104, "bad4d3f3091817273dbac07b8712eec27b16cb6b", "SHA-1 104 bytes" }, + { &g_abRandom72KB[0], 105, "ca0721a40610ea6290b97b541806b195e659af19", "SHA-1 105 bytes" }, + { &g_abRandom72KB[0], 106, "cf3fb01cc0d95898e3b698ebdbd3c1e2624eacd2", "SHA-1 106 bytes" }, + { &g_abRandom72KB[0], 107, "e3509ada3e264733cd36e2dab301650797fa8351", "SHA-1 107 bytes" }, + { &g_abRandom72KB[0], 108, "045ca9690e7ac3336fd8907c28650c3ad489cbfe", "SHA-1 108 bytes" }, + { &g_abRandom72KB[0], 109, "44a6c85d7d9053679fde01139ee0cf6176754227", "SHA-1 109 bytes" }, + { &g_abRandom72KB[0], 110, "2ea6df640202b8799a885887a7c62a05247e60da", "SHA-1 110 bytes" }, + { &g_abRandom72KB[0], 111, "38b0a91b3b2949cf752d3273157b9fa911972ad3", "SHA-1 111 bytes" }, + { &g_abRandom72KB[0], 112, "962b950eab71062e7bc619e33cee36ceded923ee", "SHA-1 112 bytes" }, + { &g_abRandom72KB[0], 113, "ccdecb735b377f1023ac2ad1e5ef0cb264bccf63", "SHA-1 113 bytes" }, + { &g_abRandom72KB[0], 114, "4491b4e057d62e9c875b9153e9d76860657ab1a7", "SHA-1 114 bytes" }, + { &g_abRandom72KB[0], 115, "f2d6c27c001222592fe06ba3e8c408b7033d14e1", "SHA-1 115 bytes" }, + { &g_abRandom72KB[0], 116, "c9651c478f36ddacbca4cd680b37db6869473ed4", "SHA-1 116 bytes" }, + { &g_abRandom72KB[0], 117, "b69442fcaa3e3bd617d3d3a0d436eb170e580083", "SHA-1 117 bytes" }, + { &g_abRandom72KB[0], 118, "a48a7f361bf44d4e055a7e6aaa51f5b2f8de4419", "SHA-1 118 bytes" }, + { &g_abRandom72KB[0], 119, "257d756bebc29cd408394b23f1891739cfd00755", "SHA-1 119 bytes" }, + { &g_abRandom72KB[0], 120, "1ef9f2becc7217db45b97d7a0f47da9ed23f8957", "SHA-1 120 bytes" }, + { &g_abRandom72KB[0], 121, "06ac75dc3ffee76eeefa11bb10dae6f4fb94ece8", "SHA-1 121 bytes" }, + { &g_abRandom72KB[0], 122, "883c7780a8926ac22cb6dff4dbb8889c579ebb99", "SHA-1 122 bytes" }, + { &g_abRandom72KB[0], 123, "004e08413617c1bb262d95f66a5ed5fff82b718b", "SHA-1 123 bytes" }, + { &g_abRandom72KB[0], 124, "f68155afc2ee6292c881db5721f3e0f6e77a0bca", "SHA-1 124 bytes" }, + { &g_abRandom72KB[0], 125, "e9ec6e4b4b1123adceda9d0f7db99c10712af649", "SHA-1 125 bytes" }, + { &g_abRandom72KB[0], 126, "bcf570708b73c20d9805172f50935ab44d122e6b", "SHA-1 126 bytes" }, + { &g_abRandom72KB[0], 127, "4b5f949b1b8a0a2b3716aba8cad91f45ae0f9408", "SHA-1 127 bytes" }, + { &g_abRandom72KB[0], 128, "fd78703c7d7ce4a29bd79230898b7ac382f117cc", "SHA-1 128 bytes" }, + { &g_abRandom72KB[0], 129, "461d0063059b9d4b8255f621bd329dfecdfaedef", "SHA-1 129 bytes" }, + { &g_abRandom72KB[0], 1024, "2abd8ddb6c13b55596f31c74d96a04411ad39e8e", "SHA-1 1024 bytes" }, + { &g_abRandom72KB[0], 73001, "e8c68bf7f6bd3b5c2a482c8a2ca9849b1e5afff1", "SHA-1 73001 bytes" }, + { &g_abRandom72KB[0], 73728, "e89f36633ad2745ab2aac50ea7b2fe23e49ba69f", "SHA-1 73728 bytes" }, + { &g_abRandom72KB[0x20c9], 9991, "62001184bacacce3774566d916055d425a85eba5", "SHA-1 8393 bytes @9991" }, + }; + testGeneric("1.3.14.3.2.26", s_abTests, RT_ELEMENTS(s_abTests), "SHA-1", RTDIGESTTYPE_SHA1); +} + + +/** + * Tests SHA-256 + */ +static void testSha256(void) +{ + RTTestISub("SHA-256"); + + /* + * Some quick direct API tests. + */ + uint8_t abHash[RTSHA256_HASH_SIZE]; + char szDigest[RTSHA256_DIGEST_LEN + 1]; + const char *pszString; + + pszString = ""; + RTSha256(pszString, strlen(pszString), abHash); + RTTESTI_CHECK_RC_RETV(RTSha256ToString(abHash, szDigest, sizeof(szDigest)), VINF_SUCCESS); + CHECK_STRING(szDigest, "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"); + + pszString = "The quick brown fox jumps over the lazy dog"; + RTSha256(pszString, strlen(pszString), abHash); + RTTESTI_CHECK_RC_RETV(RTSha256ToString(abHash, szDigest, sizeof(szDigest)), VINF_SUCCESS); + CHECK_STRING(szDigest, "d7a8fbb307d7809469ca9abcb0082e4f8d5651e46d3cdb762d02d0bf37c9e592"); + + /* + * Generic API tests. + */ + static TESTRTDIGEST const s_abTests[] = + { + { &g_abRandom72KB[0], 0, "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "SHA-256 0 bytes" }, + { &g_abRandom72KB[0], 1, "e6f207509afa3908da116ce61a7576954248d9fe64a3c652b493cca57ce36e2e", "SHA-256 1 bytes" }, + { &g_abRandom72KB[0], 2, "51f3435c5f25f051c7e9209728c37a062d7d93c1d7c4075a5e383f2600cd1422", "SHA-256 2 bytes" }, + { &g_abRandom72KB[0], 3, "37cd6662639ecea8c1c26ae10cf307f6884b5ab6ddba99885a9fd92349044de1", "SHA-256 3 bytes" }, + { &g_abRandom72KB[0], 4, "a31bb0a349218352bb721a901b7bf8b9290d1b81eec4ac7e6005a2cfd5b3baa9", "SHA-256 4 bytes" }, + { &g_abRandom72KB[0], 5, "00a42e462920c577ae608ddcaedf9478b53d25541b696e454dd8d7fb14f61c35", "SHA-256 5 bytes" }, + { &g_abRandom72KB[0], 6, "6c80d81f45f18cfaaf6c3de33dc505936f7faa41f714cdc7b0c8a3bdba15ade4", "SHA-256 6 bytes" }, + { &g_abRandom72KB[0], 7, "540ea7cc49b1aa11cfd4004b0faebc1b72cfa4aa0bcd940c4341bbd9ac4f6913", "SHA-256 7 bytes" }, + { &g_abRandom72KB[0], 8, "b5822d2199e3b3d7e6260d083dbf8bd79aa5ea7e27c3b879997c90098cbf1f06", "SHA-256 8 bytes" }, + { &g_abRandom72KB[0], 9, "6d983a270c13e529d6a7b1d86f702c588884e6e109cfc975dfebce3b65afa538", "SHA-256 9 bytes" }, + { &g_abRandom72KB[0], 10, "66da7649b7bd8f814d8af92347c8fca9102f27449dacd72b7dfe05bb1937ff84", "SHA-256 10 bytes" }, + { &g_abRandom72KB[0], 11, "1fcec1b28467ffe6e80422a5150bf885ab58452b335a525e363aa06d5ae70c20", "SHA-256 11 bytes" }, + { &g_abRandom72KB[0], 12, "22ae8615a76d6e274a819cf2ee4a8af8dc3b6b985b59136218013e309c94a5d8", "SHA-256 12 bytes" }, + { &g_abRandom72KB[0], 13, "e4b439cdd6ed214dbc53d4312e65dea93129e4093e9dedea6c19f5d8961ee86c", "SHA-256 13 bytes" }, + { &g_abRandom72KB[0], 14, "8eee4ceba622ee53987910b3f8491e38094a569b9e9caafd857fd71626cc1066", "SHA-256 14 bytes" }, + { &g_abRandom72KB[0], 15, "c819dadb248aca10440334ba0d271705f83640c0a8a718679e6faaa48debdbd2", "SHA-256 15 bytes" }, + { &g_abRandom72KB[0], 16, "4019ab801bf80475e963c9d1458785cd4a24c9b00adda273fa1aa4f0c345ee8b", "SHA-256 16 bytes" }, + { &g_abRandom72KB[0], 17, "9fc7b643bfa14072f47ad05f96e6760dd78c15baee67c91c759cd49031d33138", "SHA-256 17 bytes" }, + { &g_abRandom72KB[0], 18, "9985cf02258c07b7134061bfde8434599e9e5e4d8342d8df659637236394d093", "SHA-256 18 bytes" }, + { &g_abRandom72KB[0], 19, "e345757094c316b6b5f0959da146586687fb282c1e415645c15f898932f47d9c", "SHA-256 19 bytes" }, + { &g_abRandom72KB[0], 20, "ae0d944c727221bc51da45956d40f3586ce69d76c8853c3a1ddf97cf64b562b4", "SHA-256 20 bytes" }, + { &g_abRandom72KB[0], 21, "95cc050b256d723d38357896c12fe6008e34f9dde4be67dbd057e34007956d33", "SHA-256 21 bytes" }, + { &g_abRandom72KB[0], 22, "f1aecdc3bca51bb2a9c4904d0c71d7acb61ddae166cfa748df1fc89b151844d8", "SHA-256 22 bytes" }, + { &g_abRandom72KB[0], 23, "269189cca3f6bb406782e7ed40beab1934b01af599daeb9bfdd68b102b11224d", "SHA-256 23 bytes" }, + { &g_abRandom72KB[0], 24, "70600ca44cdd0b8c81e20127768e8a42d4546c408681d7681854fa06a2953319", "SHA-256 24 bytes" }, + { &g_abRandom72KB[0], 25, "dc26c41fcbe49afbe6b05fb581484caad8782a4350959277cd4070fb46c798ac", "SHA-256 25 bytes" }, + { &g_abRandom72KB[0], 26, "ed78ad5525b97311df46d02db582bc951cc2671250912f045f5d29be87063552", "SHA-256 26 bytes" }, + { &g_abRandom72KB[0], 27, "6cc53426c84a5c449367fb9b1a9bb50411a1c4de858da1153fa1ccb7cf6646e3", "SHA-256 27 bytes" }, + { &g_abRandom72KB[0], 28, "ecb2ed45ceb2e0ce2415eb8dccfadd7353410cdffd3641541eb84f8f225ef748", "SHA-256 28 bytes" }, + { &g_abRandom72KB[0], 29, "335eacfe3cf7d86c4b4a83e0a7810371cc1f4773240790b56edc5e804fa5c3f8", "SHA-256 29 bytes" }, + { &g_abRandom72KB[0], 30, "070f657fa091df733f56565338bd9e2bce13246426ff2daba1c9c11c32f502f3", "SHA-256 30 bytes" }, + { &g_abRandom72KB[0], 31, "dfb7b82fd9524de158614fb1c0f232df6903a4247313d7e52891ea1a274bcad8", "SHA-256 31 bytes" }, + { &g_abRandom72KB[0], 32, "c21553469f65bc2bb449fa366467fd0ae16e5fc82c87bbba3ee59e9ccacf881d", "SHA-256 32 bytes" }, + { &g_abRandom72KB[0], 33, "a3532bf13ab6c55b001b32a3dd71204fcc5543c1e3c6afa4ec9d68b6d67557ae", "SHA-256 33 bytes" }, + { &g_abRandom72KB[0], 34, "7ea71b61c7419219d4fdafbff4dcc181b2db6a9cfa0bfd8389e1c679031f2458", "SHA-256 34 bytes" }, + { &g_abRandom72KB[0], 35, "07cbd9a6996f1f98d2734d818c2b833707fc11ef157517efd30dcffd33409b65", "SHA-256 35 bytes" }, + { &g_abRandom72KB[0], 36, "9347e18a41e55e4b199274583ad8ac8a6f72712b12ff08454dc9a94ed28f2405", "SHA-256 36 bytes" }, + { &g_abRandom72KB[0], 37, "b4d8a36d40ed9def9cc08fc64e0bb5792d4b2f7e6bdbb3003bae503f2ef2afd4", "SHA-256 37 bytes" }, + { &g_abRandom72KB[0], 38, "829c2b0c1785ebff89f5caf2f7f5b7529e1ccbbefb171e23b054058327c2c478", "SHA-256 38 bytes" }, + { &g_abRandom72KB[0], 39, "11d3c0ec52501e78f668a241957939c113c08b0a83420924397f97869b3d018a", "SHA-256 39 bytes" }, + { &g_abRandom72KB[0], 40, "476271f9371bf76d4aa627bafb5924959c033b0298e0b9ea4b5eb3012e095b4e", "SHA-256 40 bytes" }, + { &g_abRandom72KB[0], 41, "b818241e2f5c0b415ed49095abbfe465653946ddf67b78d1b0ebc9c2fa70371f", "SHA-256 41 bytes" }, + { &g_abRandom72KB[0], 42, "a02f6bc7f79a7b96dd16fa4f7ecbc0dfcc9719c5d41c51c4df9504c81b10cd56", "SHA-256 42 bytes" }, + { &g_abRandom72KB[0], 43, "f6f32fb00cdec042f70d38f20f92b73a6534d84b1af1fb4386a22cb1419f2f33", "SHA-256 43 bytes" }, + { &g_abRandom72KB[0], 44, "946d66e920b1f034186876cba8509b8e92dd6ddb41f29a48c9a9fb9a40ed27e6", "SHA-256 44 bytes" }, + { &g_abRandom72KB[0], 45, "b9e5f490e4505ce834759d0239e6b91499eafaedfe2e20f53b649ed719226f09", "SHA-256 45 bytes" }, + { &g_abRandom72KB[0], 46, "3dee1256de4dabbd8ae8eb463f294aaa187c6eb2a8b158e89bd01d24cc0e5ea6", "SHA-256 46 bytes" }, + { &g_abRandom72KB[0], 47, "f32ad8377e24bca4b664069e23d7e306d0ed0bec04b86834d245bea3b25e03b9", "SHA-256 47 bytes" }, + { &g_abRandom72KB[0], 48, "bd539ac8985f6f251d4ed3486dd7d45a3a316eecb872815873cf75858bbe90fc", "SHA-256 48 bytes" }, + { &g_abRandom72KB[0], 49, "685e1aaa3ca611b74c4bcfe62d6597f54c8f16236e1d990f21c61b5952a205f0", "SHA-256 49 bytes" }, + { &g_abRandom72KB[0], 50, "32d6fc76312316bf96cb57bb5f0f9c6a799ffcdc29571de437d5b2dd15ec788a", "SHA-256 50 bytes" }, + { &g_abRandom72KB[0], 51, "921be210954a8de9563c2dd652be14e1c9abf659b8485c5c7ac70fd381291ac6", "SHA-256 51 bytes" }, + { &g_abRandom72KB[0], 52, "848d5c2eafb58011f5f513735405c43e55fc6d6c23d1792cd891a921f69a74e3", "SHA-256 52 bytes" }, + { &g_abRandom72KB[0], 53, "052edfc879cb6a63ce33ef2a28da5ef418dd7ad20209ccdeb8247ca7325bbb97", "SHA-256 53 bytes" }, + { &g_abRandom72KB[0], 54, "862af02ee839897dde32d564b18316889176eac0e62b7a982cd79d5d3f9800d4", "SHA-256 54 bytes" }, + { &g_abRandom72KB[0], 55, "82042a5fcaa02dd245583b4fa198ddad31052a687979f76f0085d14c8ed22221", "SHA-256 55 bytes" }, + { &g_abRandom72KB[0], 56, "49869627a2ee03d8374d6fe5557dabb5211d59cac1186fe5502064eefe52e3e5", "SHA-256 56 bytes" }, + { &g_abRandom72KB[0], 57, "12f63c4012024e962996eb341be18c41f098e9b69739fe5262cb124567cb26ac", "SHA-256 57 bytes" }, + { &g_abRandom72KB[0], 58, "c8830941fdb38ccd160036d18e4969154361e615de37d8ac9edcf9b601727acd", "SHA-256 58 bytes" }, + { &g_abRandom72KB[0], 59, "9b953c0e044a932bd90c256dfc1c6fe1e49aaf15d3f6fe07b1b524da29c96d3e", "SHA-256 59 bytes" }, + { &g_abRandom72KB[0], 60, "590f234c6c5ab3ea01981e01468be82c13da5b07370991d92b8ecfd0e3d36030", "SHA-256 60 bytes" }, + { &g_abRandom72KB[0], 61, "6490bdb3fc554899f53705a6729d67008b20b802359fcb944fed95fe7e05caf5", "SHA-256 61 bytes" }, + { &g_abRandom72KB[0], 62, "c85c5c3d945b2c728388cb9af0913e28f6c74d907a01df3756748c4ef82635ea", "SHA-256 62 bytes" }, + { &g_abRandom72KB[0], 63, "46dcc81342ef03e4a313827e0bcdc72f5b97145483fd9fc280f2a39b9f2e6a0f", "SHA-256 63 bytes" }, + { &g_abRandom72KB[0], 64, "89eda27523b81a333fccd4be824a84a60f602a4bfe774ae7aa63c98a9b12ebf6", "SHA-256 64 bytes" }, + { &g_abRandom72KB[0], 65, "10ce93270e7fca1e7bdc0b7475845eeb3adcf39c47867aa2b36b41456b7627b0", "SHA-256 65 bytes" }, + { &g_abRandom72KB[0], 66, "3c4a3f92e8954ad710296d49227d85092249376b7e80f6c14056e961002a1811", "SHA-256 66 bytes" }, + { &g_abRandom72KB[0], 67, "64979dd99b6da8172ae79474bad1ccc8e91adfe803a47b2bb497f466a78cf95d", "SHA-256 67 bytes" }, + { &g_abRandom72KB[0], 68, "479f6c701cabd84516f25a45a3759e17a3b6ee56a439e08e03a682316651645c", "SHA-256 68 bytes" }, + { &g_abRandom72KB[0], 69, "7b401aba8fbcff05cdeb0ad35e66ba5d608a39c4f6542d46df439b2225e39a1e", "SHA-256 69 bytes" }, + { &g_abRandom72KB[0], 70, "4b397707574f2196e8023e86d2c1d060cbb0ab3bd9ce78d6ae971452f6b2cd36", "SHA-256 70 bytes" }, + { &g_abRandom72KB[0], 71, "ca6ec101132f05647f4aad51983dfbafc7b9044aafab1fa8dcfb395b767c2595", "SHA-256 71 bytes" }, + { &g_abRandom72KB[0], 72, "78605447fcbe1adecf6807c4a81ab0a756b09c777d3156f9993ad7b22f788ed6", "SHA-256 72 bytes" }, + { &g_abRandom72KB[0], 73, "ee529f31a4e0b71bf4bd182a45f800a5abb0e42169e8d875d725712306ad0fba", "SHA-256 73 bytes" }, + { &g_abRandom72KB[0], 74, "582bb8ec1c431e2468065a7d2b2dab2ed10b2a23e650cf2c295eb0d90bc4c6d5", "SHA-256 74 bytes" }, + { &g_abRandom72KB[0], 75, "faa6b7ec0cd4e13f8b53f9116675f3d91c90244eb8c84dadc81883c9421421e0", "SHA-256 75 bytes" }, + { &g_abRandom72KB[0], 76, "69e989716af62d1a255e53260e8bff7d680d507fdc432955dea7e616dc3a222a", "SHA-256 76 bytes" }, + { &g_abRandom72KB[0], 77, "619a27ee4575109a9880b2a7ff8f52f0b66346fe7281805e227390d24dc7f3e4", "SHA-256 77 bytes" }, + { &g_abRandom72KB[0], 78, "79efe7395bd9fbeb8964558c0a88be8a7293f75bf4513e0efa4cda0efb1621b6", "SHA-256 78 bytes" }, + { &g_abRandom72KB[0], 79, "361a1c3874a0145324c3ce6330e3321eef84fd46d2127e68c1e2596872d74983", "SHA-256 79 bytes" }, + { &g_abRandom72KB[0], 80, "42b3ec061a230faec1af95f685408d61c8025a30d8a9b04f7c9b2626f94d85e3", "SHA-256 80 bytes" }, + { &g_abRandom72KB[0], 81, "97aa260a9979f20997731c258dee85bc0936812cacae8325030b9df4e5c4762f", "SHA-256 81 bytes" }, + { &g_abRandom72KB[0], 82, "022d15b91d9e3849ca9e284bef29d5a2567c0bdd5af6145945705102165c3107", "SHA-256 82 bytes" }, + { &g_abRandom72KB[0], 83, "e45a484833a59bd0834dc2da045eac9747c1441f4318b1d535eb6e4c0bd869a3", "SHA-256 83 bytes" }, + { &g_abRandom72KB[0], 84, "ba0782193d5792d36b4a9cc5b1a47de9b661a7a05cbbcc1abd9334ee3778f6bd", "SHA-256 84 bytes" }, + { &g_abRandom72KB[0], 85, "f528b11135dc44642573857dbffcb361cb3fdeaefef8bb36eff4bdee1670fe59", "SHA-256 85 bytes" }, + { &g_abRandom72KB[0], 86, "0ba567b67c054bd794462540ca2049a008857b112d2fbd591ba2c56415d40924", "SHA-256 86 bytes" }, + { &g_abRandom72KB[0], 87, "21b09abfd9c2b78d081cd5d07aae172df9aea3c52b572fa96dbe107d5db02817", "SHA-256 87 bytes" }, + { &g_abRandom72KB[0], 88, "6cec2966f175b9bc5a15037a84cb2368b69837168368f316def4c75378ab5294", "SHA-256 88 bytes" }, + { &g_abRandom72KB[0], 89, "2d9628847f4638972646eb3265f45ebd8d4db4586a39cbf62e772ad2e0868436", "SHA-256 89 bytes" }, + { &g_abRandom72KB[0], 90, "5652de4228d477a5425dfde8d9652655d8c761480a57976dfa78bd88e4b11ff0", "SHA-256 90 bytes" }, + { &g_abRandom72KB[0], 91, "7a50a27207be3066ad1b349cf9c82e50d8610d0d95ec53d0fa0b677e0ef198c4", "SHA-256 91 bytes" }, + { &g_abRandom72KB[0], 92, "edcd28c7c6777bec4f9ff863554098055abcbc4ee6f777f669acf4c17e9b939e", "SHA-256 92 bytes" }, + { &g_abRandom72KB[0], 93, "f8e353f5033856bf1b3e29b1cf95acc977473e6e84c6aa7f467ff3a214a311f8", "SHA-256 93 bytes" }, + { &g_abRandom72KB[0], 94, "ff964737aaf19c5968393aa37d5a133bd42d26d49a1d342bc625cc23fbfcd3df", "SHA-256 94 bytes" }, + { &g_abRandom72KB[0], 95, "7b975c510c8d7eba8ba3688cd96452d18b3544bb5aed540845b8ed320862e6cb", "SHA-256 95 bytes" }, + { &g_abRandom72KB[0], 96, "39af3d95f2784e671171b02217344d41a50ca063db118940d940b103aa8f88df", "SHA-256 96 bytes" }, + { &g_abRandom72KB[0], 97, "a7f84a55605007267ab6b22478d82fc045b9ccdeb7bc29e2368b6d36ba5302ee", "SHA-256 97 bytes" }, + { &g_abRandom72KB[0], 98, "393755a20e107455a7d961494a23433b3aed585b6173231922ba83cd7980baba", "SHA-256 98 bytes" }, + { &g_abRandom72KB[0], 99, "555400c5ea1b138cf58c0941a4edd7733698ef35d9b7b599da1d27a4a1da9b56", "SHA-256 99 bytes" }, + { &g_abRandom72KB[0], 100, "f27524b39dff76ca3870c765955a86272f8136801a367638ab788a3ba9f57c04", "SHA-256 100 bytes" }, + { &g_abRandom72KB[0], 101, "4857c87e9c6477e57475b8ceff80a02de75a9c6a2c21cfa2a3ac35ef199b132d", "SHA-256 101 bytes" }, + { &g_abRandom72KB[0], 102, "9c41626db68168c7c3a1065fc507932ea87f6fe7f490343d2ed532ae244c756a", "SHA-256 102 bytes" }, + { &g_abRandom72KB[0], 103, "13c331f42ad5bb2216ccbfe8e9254111e97291da1ba242a21d99f62547720ab7", "SHA-256 103 bytes" }, + { &g_abRandom72KB[0], 104, "259dd0b292cac0f4bb6a26e5e8dce7cfde908561edda176b3d826228c7ec4836", "SHA-256 104 bytes" }, + { &g_abRandom72KB[0], 105, "5f90dce6a68f0ccf50e0ffbfbc1e7831ebe619ab053d59625d75a5805d1cfc91", "SHA-256 105 bytes" }, + { &g_abRandom72KB[0], 106, "9eedf570854b0e9b47fb9bddccdd7c02529b0ce1394f83fa968f8bd10061dc82", "SHA-256 106 bytes" }, + { &g_abRandom72KB[0], 107, "4dce09d513d26be436d43ab935164156441bfbe2a9ce39341b3c902071f2fb75", "SHA-256 107 bytes" }, + { &g_abRandom72KB[0], 108, "f1ba290596fedeabca8079a8fd8eafa0599751d677034e4d8c4c86f3542e8828", "SHA-256 108 bytes" }, + { &g_abRandom72KB[0], 109, "e7dfc612ca26e6fb1dbc7b75dff65bff2c6b134e8283a24b9434ad5d469cea09", "SHA-256 109 bytes" }, + { &g_abRandom72KB[0], 110, "7d3f395a5da0dd86fb14e29074c7e4f05cb32ae28ddf1bd4327a535df9f809fb", "SHA-256 110 bytes" }, + { &g_abRandom72KB[0], 111, "7d74c406261ff04c3c32498b3534ef70c6199adba0d1d91989a54a9f606ebeb5", "SHA-256 111 bytes" }, + { &g_abRandom72KB[0], 112, "ccc4acce4d2e89c2fe5cc5cc0e1e1b380de17095dee93516ee87f1d1fc6f5e01", "SHA-256 112 bytes" }, + { &g_abRandom72KB[0], 113, "301bb78408884937aed4eb3ff069a79c2b714ee18519339ccac4afb10bfb3421", "SHA-256 113 bytes" }, + { &g_abRandom72KB[0], 114, "2afe58676676f4a44a422cafd1c3ca187a7cf7dd54d4901448e59b683a7ce025", "SHA-256 114 bytes" }, + { &g_abRandom72KB[0], 115, "5b88845e99afb754ce84cc42d99ddfc9022b55175d3cda8c56d304450d403ff3", "SHA-256 115 bytes" }, + { &g_abRandom72KB[0], 116, "4255156c12f13ba85659d5d0b8872ae63e0c98075c06c64673ab6b1e253cab71", "SHA-256 116 bytes" }, + { &g_abRandom72KB[0], 117, "c5e0fe1632cd39d9bec9b7047fbdc66f6db3cb2b60d4eef863a4c5f43649f71d", "SHA-256 117 bytes" }, + { &g_abRandom72KB[0], 118, "e7be5a747eaf858c56ab45d1efd8317dddea74df01e188d2d899aeb00a747873", "SHA-256 118 bytes" }, + { &g_abRandom72KB[0], 119, "e4642107146d4b94dcede9a4fdcd4f13ab88cf49605e8a7cfe303306288bb685", "SHA-256 119 bytes" }, + { &g_abRandom72KB[0], 120, "39261dcb052d46f1f811f6edd9f90805e0a2ff0b86afbdc59da4632b5817e512", "SHA-256 120 bytes" }, + { &g_abRandom72KB[0], 121, "b1e2988090ddd589757939f2b0912515998b7ac9ec8534655f586764b350fe78", "SHA-256 121 bytes" }, + { &g_abRandom72KB[0], 122, "c21143977ad672e9458d403b1da4da2553ac113eb0d1bb905c781badca957c30", "SHA-256 122 bytes" }, + { &g_abRandom72KB[0], 123, "173a78a19a11875f87163c5f111be2ec7a39d1358051fd80141b12576f4a17c2", "SHA-256 123 bytes" }, + { &g_abRandom72KB[0], 124, "e499062db198b79950bb482e99c0a5001bf76a339b3f0da5cec09e3ec3f11599", "SHA-256 124 bytes" }, + { &g_abRandom72KB[0], 125, "fbdfd0d05db20c67fda9f2d86f686e29f9fac48c57a7decf38c379eb217768b1", "SHA-256 125 bytes" }, + { &g_abRandom72KB[0], 126, "d8435c9cf281b3fd3d77b3f0dcab2d3e752c78884b76d13c710999731e753e3b", "SHA-256 126 bytes" }, + { &g_abRandom72KB[0], 127, "038900394e6f2fd78bf015df757862fb7b2da9bde1fbde97976d99156e6e5f3c", "SHA-256 127 bytes" }, + { &g_abRandom72KB[0], 128, "37b31b204988fc35aacec89dad4c3308e1db3f337a55d0ce51ed551d8605c047", "SHA-256 128 bytes" }, + { &g_abRandom72KB[0], 129, "069753c44ea75cddc3f41c720e3a99b455796c376a6f7454328fad79d25c5ea8", "SHA-256 129 bytes" }, + { &g_abRandom72KB[0], 1024, "c4bce478ad241b8d66bb71cf68ab71b2dc6f2eb39ac5203db944f20a52cf66f4", "SHA-256 1024 bytes" }, + { &g_abRandom72KB[0], 73001, "92a185a3bfadca11eab70e5ccbad2d40f06bb9a3f0471d021f2cab2f5c00657b", "SHA-256 73001 bytes" }, + { &g_abRandom72KB[0], 73728, "930de9a012e41bcb650a12328a45e3b25f010c2e1b531376ffce4247b3b16faf", "SHA-256 73728 bytes" }, + { &g_abRandom72KB[0x20c9], 9991, "8bd4c6142e36f15385769ebdeb855dcdf542f72d067315472a52ff626946310e", "SHA-256 8393 bytes @9991" }, + }; + testGeneric("2.16.840.1.101.3.4.2.1", s_abTests, RT_ELEMENTS(s_abTests), "SHA-256", RTDIGESTTYPE_SHA256); +} + + +/** + * Tests SHA-224 + */ +static void testSha224(void) +{ + RTTestISub("SHA-224"); + + /* + * Some quick direct API tests. + */ + uint8_t *pabHash = (uint8_t *)RTTestGuardedAllocTail(NIL_RTTEST, RTSHA224_HASH_SIZE); + char *pszDigest = (char *)RTTestGuardedAllocTail(NIL_RTTEST, RTSHA224_DIGEST_LEN + 1); + const char *pszString; + + pszString = "abc"; + RTSha224(pszString, strlen(pszString), pabHash); + RTTESTI_CHECK_RC_RETV(RTSha224ToString(pabHash, pszDigest, RTSHA224_DIGEST_LEN + 1), VINF_SUCCESS); + CHECK_STRING(pszDigest, "23097d223405d8228642a477bda255b32aadbce4bda0b3f7e36c9da7"); + + + pszString = "abcdbcdecdefdefgefghfghighijhijkijkljklmklmnlmnomnopnopq"; + RTSha224(pszString, strlen(pszString), pabHash); + RTTESTI_CHECK_RC_RETV(RTSha224ToString(pabHash, pszDigest, RTSHA224_DIGEST_LEN + 1), VINF_SUCCESS); + CHECK_STRING(pszDigest, "75388b16512776cc5dba5da1fd890150b0c6455cb4f58b1952522525"); + + /* + * Generic API tests. + */ + static TESTRTDIGEST const s_abTests[] = + { + { RT_STR_TUPLE("abc"), "23097d223405d8228642a477bda255b32aadbce4bda0b3f7e36c9da7", "SHA-224 abc" }, + { RT_STR_TUPLE("abcdbcdecdefdefgefghfghighijhijkijkljklmklmnlmnomnopnopq"), + "75388b16512776cc5dba5da1fd890150b0c6455cb4f58b1952522525", "SHA-224 abcdbc..." }, + }; + testGeneric("2.16.840.1.101.3.4.2.4", s_abTests, RT_ELEMENTS(s_abTests), "SHA-224", RTDIGESTTYPE_SHA224); +} + + +/** + * Tests SHA-512 + */ +static void testSha512(void) +{ + RTTestISub("SHA-512"); + + /* + * Some quick direct API tests. + */ + uint8_t abHash[RTSHA512_HASH_SIZE]; + char szDigest[RTSHA512_DIGEST_LEN + 1]; + const char *pszString; + + pszString = ""; + RTSha512(pszString, strlen(pszString), abHash); + RTTESTI_CHECK_RC_RETV(RTSha512ToString(abHash, szDigest, sizeof(szDigest)), VINF_SUCCESS); + CHECK_STRING(szDigest, "cf83e1357eefb8bdf1542850d66d8007d620e4050b5715dc83f4a921d36ce9ce47d0d13c5d85f2b0ff8318d2877eec2f63b931bd47417a81a538327af927da3e"); + + pszString = "The quick brown fox jumps over the lazy dog"; + RTSha512(pszString, strlen(pszString), abHash); + RTTESTI_CHECK_RC_RETV(RTSha512ToString(abHash, szDigest, sizeof(szDigest)), VINF_SUCCESS); + CHECK_STRING(szDigest, "07e547d9586f6a73f73fbac0435ed76951218fb7d0c8d788a309d785436bbb642e93a252a954f23912547d1e8a3b5ed6e1bfd7097821233fa0538f3db854fee6"); + + /* + * Generic API tests. + */ + static TESTRTDIGEST const s_abTests[] = + { + { &g_abRandom72KB[0], 0, "cf83e1357eefb8bdf1542850d66d8007d620e4050b5715dc83f4a921d36ce9ce47d0d13c5d85f2b0ff8318d2877eec2f63b931bd47417a81a538327af927da3e", "SHA-512 0 bytes" }, + { &g_abRandom72KB[0], 1, "a9e51cac9ab1a98a599a13d05bfefae0559fd8c46abae79bc15c830f0153ba5f05a7d8eb97578fc71594d872b12483a366125b2c71f27a9e3fb91af9c76e7606", "SHA-512 1 bytes" }, + { &g_abRandom72KB[0], 2, "0f69ca22d38f562e2221953cdf3ee0b360b034c5b644ee04e0f58567b462a488578b4b75b15ffab8622f591c5e74a314cc4539929f14941969bbd3bc6770f499", "SHA-512 2 bytes" }, + { &g_abRandom72KB[0], 3, "58bebd4e3f1e5e724a4b158db50c415ede9d870b52b86aa9f4e04eadc27881e8e0f0c48da1f2dc56bbf5885801267d10bdf29c68afabae29d43f72e005bcb113", "SHA-512 3 bytes" }, + { &g_abRandom72KB[0], 4, "e444e041d0f14e75f2cb073c3d6d75a5a5f805e7292b30dfa902a0df4191422a6ff7d7644d28715a9daf01c4580c4b5ea94523e11d858ffc3f4d9cbade1effb2", "SHA-512 4 bytes" }, + { &g_abRandom72KB[0], 5, "f950ebe051723a765edfa6653e9ebb034c62c93fcd059ba85b250236626bda33408204ff9dccc7a991ab4c29cedf02a995b8a418b65dd9f1b45a42d46240fdf0", "SHA-512 5 bytes" }, + { &g_abRandom72KB[0], 6, "c39979d4b972741bf90072ca4ce084693221370abcbfc12a07dbc248d195ad77d77d1fca2f4f4c98c07963d8a65d05a799456f98a9d3fc38f7bf19b913beccbb", "SHA-512 6 bytes" }, + { &g_abRandom72KB[0], 7, "ac5653cb0455277c9e3294a2ec5ad7f2ef8f9790a01e7cfabd9360d419a4c101d4567cf32b35d291e3cc73747e6f3b2d89a95c96421468db5eeae72845db236b", "SHA-512 7 bytes" }, + { &g_abRandom72KB[0], 8, "454a56d5f9df24303c163430d8ed19b624072e2cb082991e17abe46bb89c209fd53beecb5182f820feb13d0404ab862bb3abf219c7f32841f35930e2fdf6c858", "SHA-512 8 bytes" }, + { &g_abRandom72KB[0], 9, "e9841c44180cbe5130147161767d477d1a118b12fdf3791a896fdaeb02c9d547b4613a6a3d34bb1311ff68f6860f16f7bb341a2381a143daac3d3b803c25469d", "SHA-512 9 bytes" }, + { &g_abRandom72KB[0], 10, "450915d9d69e85ff87488f3c976962c32db18225ae5241a59e4c44739499dc073e1503f121065964c8b892c1aef4e98caf2a5eff10422ced179e1c8c58aeadf7", "SHA-512 10 bytes" }, + { &g_abRandom72KB[0], 11, "059d9629d61a58bede1ae2903aef1bcf1ef6b1175680a6e795def167163d05202167e22dba232750bc58a150764c13c048b2d83c0b077d819a1bd3a92432d97f", "SHA-512 11 bytes" }, + { &g_abRandom72KB[0], 12, "00e3ec8f76e1bbdeae3f051d20369b64759b9f45e15add04e4bb7590b90ce9c37706e36b68dfdbfaef8b8e8d41e42732de80314a1c58f89a8a26179d4ba144f2", "SHA-512 12 bytes" }, + { &g_abRandom72KB[0], 13, "dfde69e66f61bbd8c2d5c56493670d9c902df8b5fde0bdb61dbcc902390290c159ef1dfd988813a14c424c6bee49e62c17140918a4ad805edf9ac67ffe6af6ed", "SHA-512 13 bytes" }, + { &g_abRandom72KB[0], 14, "5d7908aada1445e9edecef34cbedd032baa646a88aafe4ebf3141008485b640539ee78e56b18d34bfcd298178412384d993d948e5711c61500a53085e63e3bf1", "SHA-512 14 bytes" }, + { &g_abRandom72KB[0], 15, "ab6102021cbf19cae1b0633ecb0757f4a280b8055fa353aa628ba8d21188af3daf08323367c315dd0eb9ba8b58f415decd231f319ad7cc9a88156229693c2061", "SHA-512 15 bytes" }, + { &g_abRandom72KB[0], 16, "75e2d97633b22af732caa606becf798945eb91be1d04f66b2ec86b8df98d12f7de8baa6db48b1294a713f17d792c89cc03726a7b03ae0d16837de1b4bfa5f249", "SHA-512 16 bytes" }, + { &g_abRandom72KB[0], 17, "e6bbf8ab9c68e99f569f6c68d93726eddab383e3695ab84383425617e73b6062970045fca422b393d479f3ba821ce205461ff76d0acf67fd4a83e5eeb5ccf594", "SHA-512 17 bytes" }, + { &g_abRandom72KB[0], 18, "68cfb17e1fe58ce145c3ce44efdb12b65a029d19ca684a410e0243166e86985b92f8e815de17f36f2b0f54e08c6a49c5446be14ebce6166c124d8605189adc24", "SHA-512 18 bytes" }, + { &g_abRandom72KB[0], 19, "fcaeefcae96683fb1337170f5f72247252843322029ee9edc7333f14386d619f2ecc12707ed4f1aea5f7c052c682d8c9e518a47c4fc9f347299688818baf0468", "SHA-512 19 bytes" }, + { &g_abRandom72KB[0], 20, "22dfd1b7af7118d93645f9b7baf861a317b4318a8881e4cb6a7669298560849c9169d86b57803c0de0c82f1a5e853ee571cae3e101cd8aad5d2045aec0805879", "SHA-512 20 bytes" }, + { &g_abRandom72KB[0], 21, "87de7e747b5ac2401e8540498ff8222e80b28bcb570c7f873332b01f5c6c0b672b8ac65d4986bd4463fc5f6f7f16656cc300bc9a5be9873295b1a0a13ce2aa28", "SHA-512 21 bytes" }, + { &g_abRandom72KB[0], 22, "deb01211010e06351e5215006bd0b09b353e6af5903a5afe9236f7418be7bd804119942be2be2cef9dd86b7d441300d8861ae564cad3dd5ae3eaea21de141f22", "SHA-512 22 bytes" }, + { &g_abRandom72KB[0], 23, "c7c62e3033755889d9b690f9b91288ea79e9225068b85981d4c3f2035ecde58a794fa59938b3206e0b9edea380fad3d9534bf40e889b59d8db52261f1e06e7cb", "SHA-512 23 bytes" }, + { &g_abRandom72KB[0], 24, "ae825238a7ac961c33b7b4e3faa131bca880bbd799657ab89e8e260fc5e81a160490137587c13b89af96cc494c884bac3e3c53a5e3838ffba7922c62f946fa77", "SHA-512 24 bytes" }, + { &g_abRandom72KB[0], 25, "a8bd5532033300fc15292726e8179c382735650e9c2430fedd45c6e0ec393f87e04a53901e76bf9ea089c41b9c73e34440f7c7503ed872ca61b61301aaacd71e", "SHA-512 25 bytes" }, + { &g_abRandom72KB[0], 26, "a2439151940845db0bfd7f4a955e0a7f19d594759917530fd2afa1f41ab30afa1122cc00875bbccf3cbe4c3afb94deaf6abcb23ccf379c6ee31ac1615a16b12a", "SHA-512 26 bytes" }, + { &g_abRandom72KB[0], 27, "5a0d49012aa539aef64a3f4e0933efdba3610b7aee6e8e2ca26a5550799141a3174001eff9669c8194eb2b60b7e264e02b73fb4bdeda61076423b26f50b210f1", "SHA-512 27 bytes" }, + { &g_abRandom72KB[0], 28, "09847f1c906c9f5507b499ae6a8543ee3dc04b81eee072148b0c55668ce363a139e54f74da9feb5fadddfa0c920bdf595ba68bf7ba21c6e131e6c4b598d444d9", "SHA-512 28 bytes" }, + { &g_abRandom72KB[0], 29, "80efb6be55a081fac36fc927326b5b6e53c91aadb9106d8b3861ecab9b08b7b6ebdea386b5132d6e6cd7d096ebe912577bccde6b709d5f2f2e8f2ce4cf8834cc", "SHA-512 29 bytes" }, + { &g_abRandom72KB[0], 30, "a052774739540e095f4e54ebc77b6b4a60253c20231d077224a9bfd69a882b5bb4db7ae52a8c475ef15a95d8fc2c33064fdaf356f151a429cd0625b218708eee", "SHA-512 30 bytes" }, + { &g_abRandom72KB[0], 31, "6501f635b4690ccd280443d2eeee36cc6d626df9f287a8e46e237a0528b82aafbce5a23d75a71ac611cee62c1c0423d5e4dcec14b5c31907fbe2f60406486bee", "SHA-512 31 bytes" }, + { &g_abRandom72KB[0], 32, "a7b4e870a1a4585439f62da7e99998f60daecc90849c16ce1f5b4bc15e68e567b8fb0c44d1294eea925bc14161bb9f9e724933bfe88d8aab9ab2dbf4e00f7b88", "SHA-512 32 bytes" }, + { &g_abRandom72KB[0], 33, "ce465a93568976550943c160907615974b5c7fbbeb05506905d516a56dbf6dd7f2c8f45cbcea10d1c85316595559e3ff8193629eadbcd941359e166874ae4058", "SHA-512 33 bytes" }, + { &g_abRandom72KB[0], 34, "b5f60488576dccbeca6924483f1732055af0383e63acefc6dfc13e4e6b77655a97f10eb5778a28d939ca3f49311f4c0d2920764f10aa2fdff6d60a24e8d68d04", "SHA-512 34 bytes" }, + { &g_abRandom72KB[0], 35, "9509b9052efcff757291296a58fbba6835ccfc1b4692307fbf683a22379242a4d6c8324dcea6a870e50c40960cd56e0f52c41102f25f357328d8abf1b9499441", "SHA-512 35 bytes" }, + { &g_abRandom72KB[0], 36, "dcaf59cf1dc3c5dfd74595e53bda617c313ab65dd4d04821e17bb65330458827d89efac7d64556bc439c12d326d4312d90789f39801d0d9a0faba59d23a57f40", "SHA-512 36 bytes" }, + { &g_abRandom72KB[0], 37, "fcd30053a81adf7a9e5135e55fed6f389b6e516b04a0e9972b18df387a3dcb064f2903ea58d4b3e2f51c30a2ff0d7353b9d744e13e215a3a63e486130acca9fe", "SHA-512 37 bytes" }, + { &g_abRandom72KB[0], 38, "36cc41b6dc5602f8d71a0ea7f7187a648c7b78d9386c3f4cb952153b57fe6c307957d2a39752a5f682dee98e68a4b4e99a6e681f76ad6b561be3ba2bb7409e88", "SHA-512 38 bytes" }, + { &g_abRandom72KB[0], 39, "09d0e8487f329c2b66618e8734e2a5e7a68654cd744e5941ceba04e2f7dcf92af1d3ac5ad3920abc4b3b0e121a68a4665e0b6ed6eaa3dbef06cd3c21217f0445", "SHA-512 39 bytes" }, + { &g_abRandom72KB[0], 40, "d24e246470f0fa260976b1063f5a46a73c54614881173f3793c70a47f925bb0d05feb376858bd838f550cd82f7122b02b438ad3facfc9049be3efd7e5f3b03f3", "SHA-512 40 bytes" }, + { &g_abRandom72KB[0], 41, "6e56434ce4c50a1989df0de44485697a53ca6b8560ea84290fbb54b4627a980412033f4ed2aa795cd653dbd0134d4e4e2f25b57a20d55ee1ae8aa47d6e8af7d4", "SHA-512 41 bytes" }, + { &g_abRandom72KB[0], 42, "f9cce63deb2f4291ef74c7b50cf573bd99500b6aeee2959fe3500a7b55b3693df4f5b4eb5c242271e5b9ada3049b2a601e85f32d0501b870fa1593ea9cfa6fb1", "SHA-512 42 bytes" }, + { &g_abRandom72KB[0], 43, "0781bf3344189b3c10dfc34e6bf3f822a78533f0a29b066c67f49753412c40075b6d988c2c0a338fb8372be0b66a97a73c382509613e7fb908bed5cce9804676", "SHA-512 43 bytes" }, + { &g_abRandom72KB[0], 44, "4af952c3a51e5b932b21ce3b335213235ed7d3a2a567d647d6faa7e32e647038d0dbde3b6638453a79badb9c882d75d5201c5b172989d3e8b1632a15773fd2aa", "SHA-512 44 bytes" }, + { &g_abRandom72KB[0], 45, "98e0b281d765b90360338afaa7cf1ec90d841dfa07c05e7db74dc96dc7bf53465eb78d6e8c915c53d273fb569593d51a81331b56bce69eb506a3a400c73b170e", "SHA-512 45 bytes" }, + { &g_abRandom72KB[0], 46, "50c7c00f254a13b2288c580ebb165be5669aa88ae247aaddc8f20750564b945849f5126a3cc0fdf7926a59b7c7b7866fe49174bf1dfbbe5734a2fd570ff26183", "SHA-512 46 bytes" }, + { &g_abRandom72KB[0], 47, "e5bcecb9ce32ccfd4916a267f64b9d478461d10066375f0088f7ffc2e43b393d09613e8f60c623268c863b91ef08059b0af491d15d040fff14ef3b2c89e84d46", "SHA-512 47 bytes" }, + { &g_abRandom72KB[0], 48, "f30c0d42f15fc467f454cc8b7d3fb3453150a57f28eacd9870fecc98cae43dc937b4e45cb3443e6c09eb8d82bfdd1c501870f827d5d792dbbaf3beb9dc7bfaba", "SHA-512 48 bytes" }, + { &g_abRandom72KB[0], 49, "12bb4030e966cf51ca3ead169bfdf399e1564b2c7a7636e8625d288473967643a85e932ed45d9b9ecf9a05001e34d259a8d4733faf7ee9093e1a64b57fe357a7", "SHA-512 49 bytes" }, + { &g_abRandom72KB[0], 50, "e21a552fe775cc337c4bccb934f4093d03c4c6c5e2e50ba6cdf0cd5ddd74d7b3de6690e8d3b2ff195b9015e3d137a6f4b6e683148e4a8c7914272767cb3fa68f", "SHA-512 50 bytes" }, + { &g_abRandom72KB[0], 51, "dd262372035812a20304a313866cbd9c6c9099d4c434630d3904618bee471967e4b715f7e3bc4f5d3283b4131b8885af5af645289faba8cfb095960883eb5d31", "SHA-512 51 bytes" }, + { &g_abRandom72KB[0], 52, "0541767fd127bd553915f6fc4e11336c734bee7409c972f014952128152658339bb641989b19eba9d73f7cbe2561fdf5c00e7ac6d7a3b4dedd3249cb11357a0c", "SHA-512 52 bytes" }, + { &g_abRandom72KB[0], 53, "6446470e96304a1e2ca9946de70d8c61c0c39e23900274db6262042e5555663af6b25d7d7dcd1f1f890e14e1a588b498e8cc26e8aba117bcd61ef74b25603645", "SHA-512 53 bytes" }, + { &g_abRandom72KB[0], 54, "946bb0ced082b07b965d57c3634011f13142b9dd84146103262483b7fb7c3413bd481ad1a3e01005e974792a6523a2c22eb2211ce7912c2e88378ac6d962f809", "SHA-512 54 bytes" }, + { &g_abRandom72KB[0], 55, "7d742669be7bef2a4df67e5853146cbd8e8ab9afb1b3429d5eac7e1fe66e050d7c08eac3e90b596eaad00ddb92ac8876a50eebb4fddc17b39abd79c83dc2523b", "SHA-512 55 bytes" }, + { &g_abRandom72KB[0], 56, "5b25df3a85495f600cc1cd92d53e969adbb3329a87cf8f32361fc2aea3331bedfed63c25a5e74a38790b2d4a96bf1e0e4df9f0ac8e8d07813197a575939cf444", "SHA-512 56 bytes" }, + { &g_abRandom72KB[0], 57, "9aefb636d982bf842ec37bf91f5c01f65796f954e26eb3cdd35515aef312b93f72ffc6fbbe3eb168fb07973471ebdd33b302e098c8b5d949d29afe129761137f", "SHA-512 57 bytes" }, + { &g_abRandom72KB[0], 58, "7deca25f1ca788598002368c2e07c5b65766bc28e66b1fe1b1a16dd38134a64f2a51be3a9c8930da939971e48ce5d9f25141a619386639eaaee11786c9c4df6f", "SHA-512 58 bytes" }, + { &g_abRandom72KB[0], 59, "27e4c254f1284dbece4f63aba4f61ff6cc23abe4ff2e86d24ccfd582a2cf65145849de27d8292a66391466f965e61b06772b1f8a7b5a5e69f8b0f0a6d4974d40", "SHA-512 59 bytes" }, + { &g_abRandom72KB[0], 60, "39e3a628a14f307028e3f690057ef24a02533d2141e0cf7070d4f2ba5d58e92d5c27e9d6dd8e07747915ea5535f8963ef350c424d6f3b3dc3850256a216b4ae0", "SHA-512 60 bytes" }, + { &g_abRandom72KB[0], 61, "8877a71d1e412e4fe0d60bbcc3ac61c458a221311b1425defbfa28096b74e18b2661ae03026da38d6ed7a42b49850fe235145bb177a7e0e99b12977bd5eb4ce5", "SHA-512 61 bytes" }, + { &g_abRandom72KB[0], 62, "a8623e4a43560950427020b64bd70f37ce354698d926c0292614b89100f6e30947db498bb88b165dc50da54439321a564739be36de02d134da893a4e239bdd01", "SHA-512 62 bytes" }, + { &g_abRandom72KB[0], 63, "62d7f6e428f8252723a265ce2311aa11fed41dfd07705cc50a24d744cf8ade4817cd3c5a22deae04bfdebe9292022ccd87e5fbe8fac717ee1ef01d2a336dcef3", "SHA-512 63 bytes" }, + { &g_abRandom72KB[0], 64, "1d356bccb9d9d089bec81a241818434ab1157bbafc7fa1fad78f17d085430bd6efffa409efdd8bf4306927407272e14f70f5344ee5085ccbc17aac16a9d40ae7", "SHA-512 64 bytes" }, + { &g_abRandom72KB[0], 65, "9c500cc115fbd8f609890b332ed6b933c2e1b60664ac57939776348b394a3af6ef55b740351cad611bed175bc932971d7803caa3802e765d14e795e83ef81727", "SHA-512 65 bytes" }, + { &g_abRandom72KB[0], 66, "862197dff8c67ea30846b25adeb191546c165cefa7c2fd3bebfdcb038884dac5bf0f5274417c2834a63751bfbc744193bd8bbfc2f261a01a9a3c2914d5069913", "SHA-512 66 bytes" }, + { &g_abRandom72KB[0], 67, "fadb5858a9071e696371c37287e0d7ee476fca005de6d1049162bded431bc9659c1f981c110fb8fade5495a6207af819260512d0160d11dea295856f4fb55d4c", "SHA-512 67 bytes" }, + { &g_abRandom72KB[0], 68, "029b208137092c9f38084ace884d371c34434e3268802aa7b6276697eca683d23082a9c4d81f8b871adb99cb2a4f73d1064c16feec7c3df282594045250eb594", "SHA-512 68 bytes" }, + { &g_abRandom72KB[0], 69, "a6f78eba388c4b96ae3b30a6204f0d4bc7ee6c3dadcaf18a938dba69a0a66fef1a6a2d6589da0e8990bea7bbe46cdbdae700a464f394c8f1c13821f49b9ce08b", "SHA-512 69 bytes" }, + { &g_abRandom72KB[0], 70, "f39c31993dd96a07cb0168c4d72a216ab957d56d2e5a73840ed7ea170659434c0ca6d5c4d70eae040ab0f488cd1b93453c85c398b3fb2cbece762e5eebeae3ae", "SHA-512 70 bytes" }, + { &g_abRandom72KB[0], 71, "90d60c76601deeb2f3c9c597a04a333724fa4efbca2fdbb09163bff812615841495b79225627b6da100aaec0ac7f532a782075308aed7c6760e530430f77c063", "SHA-512 71 bytes" }, + { &g_abRandom72KB[0], 72, "604e315e1db8ddf64b5d11151113c25b61b66d690046c1830bccfb0b92cee65ade2ed75691bb65be9df84d4d83bb9b0a3311453c9f7e30a04889882e74383d75", "SHA-512 72 bytes" }, + { &g_abRandom72KB[0], 73, "bfd93659349d3ee86f88ba312087c97cfb6989d33eef7f59ef9fd1ed650c4e10b5172b9cd90bf4982c85397c0de2fa691f5b49617e0bc168f45c084093cf3b41", "SHA-512 73 bytes" }, + { &g_abRandom72KB[0], 74, "6084b22bfbc488cc5c61ff382137fac5dea084d32e49aafcf2c9eec3d1cbdcff8f093df63913743b55a16304b0d8adb663dcc37e6d933a6212c1aa13e4acd2f5", "SHA-512 74 bytes" }, + { &g_abRandom72KB[0], 75, "2a9a4625797f6137b4200be28f07bc8b183e098e139d427c6f0b7b5ab19f5f0b4bad407424414e2475f05cf0a8055deefa0c8503bf1c09d545634c6cf4d4337a", "SHA-512 75 bytes" }, + { &g_abRandom72KB[0], 76, "88e7dd70a561537bb978e295cefd641a4bc653cc1dee9f8cafe653c934f99d2b7c18caf26abb803acbc8172eab34cc603aaa35aeca9444c5759016415f076430", "SHA-512 76 bytes" }, + { &g_abRandom72KB[0], 77, "78fbe62ea044c5601099b5605486bc911bb88e325077651722fd4790554f6a01c7cceaddd38d850925b05852616712118d356b7b023fdc7facae720a2b3008fb", "SHA-512 77 bytes" }, + { &g_abRandom72KB[0], 78, "1e35da455a47b0acc9ee2c6970de8376ee3ad22b53c39a6613651de23fb323aff796d9b9ee7c3f56684bca29bc16df9e2e4846d66ee4f6e720eb8c01b305f166", "SHA-512 78 bytes" }, + { &g_abRandom72KB[0], 79, "a1d26f27fc25892a1329434d6045384b62b32d61a645c06645493b32aaf0d6be7761828c04424d778214863db047fbc34865d0c4271f1d22206b60eb16cf92be", "SHA-512 79 bytes" }, + { &g_abRandom72KB[0], 80, "8ad44d72bb9a3a7436f26577275b97eef79a27a5de9eda9f1c5ebf740cb2e1198acb0ce774f395bba1962c570f19278eba8a5928f740a5cc3113cc6b6627d8e1", "SHA-512 80 bytes" }, + { &g_abRandom72KB[0], 81, "54556b5b7a14e090491256ab964cbb819d57e0f3fd8acf7fc9ff87ccb0a89f388e8083fe6e86eb3da3bb21c6dcaa291bb6e48e304628e9d1e2c13a3e907645e5", "SHA-512 81 bytes" }, + { &g_abRandom72KB[0], 82, "9997f6934072546a9ca5a1824589db692ac9b25b9be49f82b769efe094b8909e16037644ea88ca86501ff3ea533fdc5b81ce8e3456e07559b218aee682c151d5", "SHA-512 82 bytes" }, + { &g_abRandom72KB[0], 83, "5bc87e566b62eea1af01808cf4499dc7d0e06ced3b1903da2a807a87b9cd4c8ffd4d46e546a8a18e815efae0df5eb70191c8afbe44aefae02e2e2886593618f7", "SHA-512 83 bytes" }, + { &g_abRandom72KB[0], 84, "a3231d21aea1381fd85b475db976164dcae3cd9ce210285007b260b63797ca8d024becdd6b5b41ad1772170f915ecb03785e21224a574e118c5552e5689fcd47", "SHA-512 84 bytes" }, + { &g_abRandom72KB[0], 85, "d673935769d0ac3fe6f522b6bb537869c234828139a1a39e844c35592f361b4e39e55c7e49bd0dd7588ce8e30f7b6aeed6cf3ccfd951589a27dda37b1a2fadeb", "SHA-512 85 bytes" }, + { &g_abRandom72KB[0], 86, "a0fca2a6e0126fa9a9b84947167ea3a42aeaa69d8918a175e0bd0be20f8beba333e59dd3905029da37cb54740f94bc1bf688be4756e6c6769de9658566d07c90", "SHA-512 86 bytes" }, + { &g_abRandom72KB[0], 87, "a8730b6e7d1c850c40c797ec8d69dc4b26473e692cb0e3fe8781be355574bb921c4454a8d54fa2e607a0bc36be9a5ab324e0f9f439bf1cce93d0ebfd019154ed", "SHA-512 87 bytes" }, + { &g_abRandom72KB[0], 88, "77857fad35e564a8d5dcea9b981bcb074dc6aaed7626db8132e08555dae7f5445c0378a6dbfb24bf5f2c4c6afac09cb19ac1ab76ed4f41fe3a72d32ca1f39f00", "SHA-512 88 bytes" }, + { &g_abRandom72KB[0], 89, "6ac4c2044f4d9a983c1e41ae22daf47ef05a4ee2f013a174a3068d38c59994a19b8788541a29f47f3000b4c0491dacbf98e98dc0588a3a30fee42524697ab996", "SHA-512 89 bytes" }, + { &g_abRandom72KB[0], 90, "eb894f383342fed8371ec72403c636b1bcc7f6f39d6db1dbfc58f9fac8f41552af6dc0a5a968146c028c4db113b21831d80eb0ae166d68616ae3696832f4e563", "SHA-512 90 bytes" }, + { &g_abRandom72KB[0], 91, "8be91181345c9511f2c74df93db07ca739a586a2a84f38d5f063244d2e39fc4254c5747787e08b74a2a59916c9751aa30d0fe57a18d858d3346186facc86365d", "SHA-512 91 bytes" }, + { &g_abRandom72KB[0], 92, "43e007dc454a4303724a2baa860307083a3a1e1d52b587cc3b7a4b6bc252c8dccad0e9cf9f2b16ec178371e57033ac3c4e71dbcb2eb69cf7ef7f617c7ada8f76", "SHA-512 92 bytes" }, + { &g_abRandom72KB[0], 93, "2e2d6686c4e7a7919879ee03a4fd37ddc71a7e2ffa17a3cfe6eef24b29d8a1e7cc0fa5d8e9dab3c6c3190652ceb9e1ebe67a0ac7d92c6c205a9e8add91bbd2a7", "SHA-512 93 bytes" }, + { &g_abRandom72KB[0], 94, "c8b9e3825c4a81c63f79b88d91f61af15c714ccc611dc77635c1bf343e2c185caa2e0ef8eb76505f1544c8f78377c26d3a6f79c2b77abadba9906e583fb2e5c3", "SHA-512 94 bytes" }, + { &g_abRandom72KB[0], 95, "0bc63075ec108a5ee1f69a4e39ae03333da8c1f2d61a94fbe6357c143fa2dfeee44fb8cad0ee016fd42697f6848b7a174b4a77a268401f7cac4c4df1623cfc52", "SHA-512 95 bytes" }, + { &g_abRandom72KB[0], 96, "b4aa1d4a849840413e830e27c388baed9e8d4a0941048aad9a4b8751497d86e002e3e50b0197a9164ea440ec4324771229d0c5de04b9922c992d97ea736ff477", "SHA-512 96 bytes" }, + { &g_abRandom72KB[0], 97, "1c5142f15476f56abed2a0c5d9450e14f56a30af2d5d81f16e05ff0184d695fd1923488da707b570307370c4f1669a522230617f347c264465c12d82fa2018b8", "SHA-512 97 bytes" }, + { &g_abRandom72KB[0], 98, "7146b68a0670d5d901e312c78a728111975c312b8365a3cb9618cbe9c124c30d65cdf668902bd9ec76493caa0ff40e3c1f03ccb06e3b2380c69c154fd065d137", "SHA-512 98 bytes" }, + { &g_abRandom72KB[0], 99, "e591fc00af6733a6e308577e0043d5c12b81051848d8123e4350b82037350f27828ed6cdc0b1daf9ef57b30edd72b58370cd1851545d9e39ddeb00fbc66c8582", "SHA-512 99 bytes" }, + { &g_abRandom72KB[0], 100, "6328c48376ab29fbebd732db8b4073a96b2358de13c8a2a5a5ddc2502d8e0356822da65551bb079d4a90f3fefe5b8d00cd186696706900471348784a55009a0c", "SHA-512 100 bytes" }, + { &g_abRandom72KB[0], 101, "c90b01b14fd712be70ac318b21974181418365cd94a33d4121260c260d6f72e0819195d5c3f83b516e7e9aaf667957bc67c0c0a44a35d7756b41e33c3677d017", "SHA-512 101 bytes" }, + { &g_abRandom72KB[0], 102, "d23e5ca2c0f460d6831abd112b6a6f6d3aebdc500f7af96d887aebbaceae2e33f61f5a423deacee85276e796478d5002c0b94e85c0b2d55c75752a8a717785e2", "SHA-512 102 bytes" }, + { &g_abRandom72KB[0], 103, "e20df98010b277e188ddf6d3e953722287cffcf43c910e80ab9dceec32aff3c2059d0268bbbae414bc08919adb92d409035ab1a970a175aefeaced8df2395e13", "SHA-512 103 bytes" }, + { &g_abRandom72KB[0], 104, "774154db3993f0b4d05f03e187249cc9db94e736807691de26f734277149597ac68acdb412f8fdf3a71093cabcd0257d39f3c5e8eb7d3545474914a5b4ebc623", "SHA-512 104 bytes" }, + { &g_abRandom72KB[0], 105, "30df8e2d774fa706d8ffce6009237122540d20d4d92e5c9e2f19c4b9fc91ef9454254575e1a94cde8930439b679f2702ad22145c983418fc5b48d1b0d46e7677", "SHA-512 105 bytes" }, + { &g_abRandom72KB[0], 106, "091b5252043b7d47aab184c82c3317f2674ff8b0b76679de6c4e27ac15fc653597d635c8a0d3a0c0f271e86b7c9db86c622449bbb1044f6b26ebf7f681ab108f", "SHA-512 106 bytes" }, + { &g_abRandom72KB[0], 107, "152e06c5313eb9c58345878c73180ab82c0a66ab853653a54f1195f351eca82ebcbbb6c7705bd20440eb69e9b73df9a4696421205f9b2244e5765be5493b0fee", "SHA-512 107 bytes" }, + { &g_abRandom72KB[0], 108, "cdc5a8269c1aa916af26a6fefd395f338fd9ba7b7ad578fb5e7d92be956a83c43cc7cc8f590450878d45e28882d204bd244e2e5bf6309e425170024d8d307a87", "SHA-512 108 bytes" }, + { &g_abRandom72KB[0], 109, "6c120d70dda091f8de847241e6921e8540fcf0cca9927ac673bc9d2aa29bc5a782134a79250d9fa1bb436ebf73378ab0619a05140473ff0c2be7292f34e6d6a7", "SHA-512 109 bytes" }, + { &g_abRandom72KB[0], 110, "7094f3e32b2075db6290da8a3379b138675943f647d14444bc9299c01a5ea9c58706386030970f4d670132d9d7a2485064c901443f9f1050679ad09e576ae2df", "SHA-512 110 bytes" }, + { &g_abRandom72KB[0], 111, "a56e148f8cf9a20c96453ca2cd29aea8ec9b76c213f72d609a1052f81efba24b7de365214b21dd09447b8df272e1458f566f3af827d96ea866c921155ed5b85a", "SHA-512 111 bytes" }, + { &g_abRandom72KB[0], 112, "68ab4ac095d2aaa05c61ea622804c3164f27f8fb0adbd070906e75093cb09e2b283aeda64584cd856de8ef369f64a0900e0e191f08a7f729ac9b9077efd41c43", "SHA-512 112 bytes" }, + { &g_abRandom72KB[0], 113, "1ca365ab12d42b4ccd1561a2000b885fd38df9a60b0f8580c85e2547f40be8fcee465b24b7efd09fbac92c4aa74fe403fe7f00aacb7aec5d187403d34da4b6c2", "SHA-512 113 bytes" }, + { &g_abRandom72KB[0], 114, "17652cc2481a32c42f9cdc447bbbc3a95c76d7f7b2cd6ca93c29e0beeef219baf00f1d3514c3f9fba7a6c70177d3371a0e95638f1c210135f9bcb7322e513749", "SHA-512 114 bytes" }, + { &g_abRandom72KB[0], 115, "0d42ab4691599cdb280b61fd170a8dd7970639ab074109cdc91bbc94714ea257cb1c35a3c5c471d8853c02e66d90de0b66d9c04adeccbaed7e48d517d7b763b4", "SHA-512 115 bytes" }, + { &g_abRandom72KB[0], 116, "d410d63adf1dadec0eb6712f30ef2f3f56aef3e5e0ddd4fa3088516bdefe1af3d031869b9d4642013bd1d907a8687db86363a9e94d9e08bac6576b0cf0a3f877", "SHA-512 116 bytes" }, + { &g_abRandom72KB[0], 117, "adfa29d3e85a68a153a470cd271293a6fcf27b67b45b232cc6f1944375ae6254760bdc700ae33bfaaa26490a6a216982379e3973081d210034791f60a1e90259", "SHA-512 117 bytes" }, + { &g_abRandom72KB[0], 118, "35f41b486bae7cc4c6b2609dd5314deb8a5151da7e6ab1b0bfb1d7310dae8435152db8b75ebee106a583f16a4b0a3408492e15fba9f9f90c1fda7daae3b3dd71", "SHA-512 118 bytes" }, + { &g_abRandom72KB[0], 119, "dd9cc5aa2ee23e9bc94e80795d19f40adef09384365a805ee0c9b6c946734ca55e8c68c0baea51fb0693efbf04722f5236b9ebc8aed222ea4c47c2d2f20af1ef", "SHA-512 119 bytes" }, + { &g_abRandom72KB[0], 120, "6988719e25df98b8f6b779fe48f61d81f3e7f88ea4c3fed89b28f49b8113686dc5788e66da419c6dcb38a95b2fbd9b29259e7bb8754923913e3f8528ce884f59", "SHA-512 120 bytes" }, + { &g_abRandom72KB[0], 121, "b096a715acd6611dd57d66b547093c937ce73456e18f5d969c2bb1581f33b6ad89142d19850ae29648368adf53d0ff804ed661fb106f81dac514b75a7200d0df", "SHA-512 121 bytes" }, + { &g_abRandom72KB[0], 122, "3691d1ab30f41684f320a6161743b2113e3b452c23867248a8741a383410bb4c83f116404c649cd6983f79a156bf4933d1264d75662d93011a7764f5f962d26a", "SHA-512 122 bytes" }, + { &g_abRandom72KB[0], 123, "2b953227e77ad7415d5363a8f5eed23529b573e20dd6925fd357814daa184f4c4b69ef14a3599c476f589fcfd027c609ccb2fb247acd83f4812d8b72dd0800ff", "SHA-512 123 bytes" }, + { &g_abRandom72KB[0], 124, "639323ed76ab3ec433446d67b41a9f8b6c917627795caf266a58fe396c141988b73490a78d6e053d88ce8c2252051ca711ad2de4fa4fcfca9c26a6a8ea5f16b9", "SHA-512 124 bytes" }, + { &g_abRandom72KB[0], 125, "243b6196df1e1e5c6018644e71471d51e4320303f18749a2e7888430cf43e4f71598c394fbcb2f31b76acf5349233ee9614ab86b455364e54bd2013ee9e1bcbd", "SHA-512 125 bytes" }, + { &g_abRandom72KB[0], 126, "5dc477dcf848e23ba3a66c2ff9bccefdf83bc1134ff7f7a20fe7393269c7987939fbc264535a1ff0d3aba7201ee15a448d5545429a48c681ed5a8859857614f6", "SHA-512 126 bytes" }, + { &g_abRandom72KB[0], 127, "7ea868053923ca7112afb72d6d184ea4fa41191b5a2cfc30c4555ae4bc6223c7c6c834f9f34433947308838abee9d068cd18cd3021ca677141440fc03d5daddd", "SHA-512 127 bytes" }, + { &g_abRandom72KB[0], 128, "a2d7ee08394542488ee7c76954dc027826836161de10795eab31877dc0b56321ca0239a324985a5826a59ef60f70d591e543f56a5fa147d53f85d15ffc7f7791", "SHA-512 128 bytes" }, + { &g_abRandom72KB[0], 129, "e5df5295d00b085665aab5208d17d2c5b152984ca952a2f28599943fe613b38590e24b5552b9614ad38de16197599ac2464ba7a85b66b087b4162dbd8f1038e3", "SHA-512 129 bytes" }, + { &g_abRandom72KB[0], 1024, "213117257eedf07e76d9bd57f7b9b5fad2fbdccd8c9bf60a70e8b2feac5a30ccf83ca9041a07bb15727c81777d94ba75535f29a0bd92471b8899f5cd096e326a", "SHA-512 1024 bytes" }, + { &g_abRandom72KB[0], 73001, "73e458b0479638d5e0b89ed55ca34933fbca66dc2b8ec81490e4b0ee465d7045736a001bc37388e6f73b3acd5655a210092dd5533a88ba1679a6513fe0c70a74", "SHA-512 73001 bytes" }, + { &g_abRandom72KB[0], 73728, "80bd83278c0a26e0f2f952b44ff31057a33e971ea4d6d2f45097e1ff289c9b3c927152ec8ef972929b9b3222abecc3ed64bebc31779c6178b60b91e00a71f542", "SHA-512 73728 bytes" }, + { &g_abRandom72KB[0x20c9], 9991, "d6ac7c68664df2e34dc6be233b33f8dad196348350b70a4c2c5a78eb54d6e297c819771313d798de7552b7a3cb85370aab25087e189f3be8560d49406ebb6280", "SHA-512 8393 bytes @9991" }, + }; + testGeneric("2.16.840.1.101.3.4.2.3", s_abTests, RT_ELEMENTS(s_abTests), "SHA-512", RTDIGESTTYPE_SHA512); +} + + +#ifndef IPRT_WITHOUT_SHA512T224 +/** + * Tests SHA-512/224 + */ +static void testSha512t224(void) +{ + RTTestISub("SHA-512/224"); + + /* + * Some quick direct API tests. + */ + uint8_t abHash[RTSHA512T224_HASH_SIZE]; + char szDigest[RTSHA512T224_DIGEST_LEN + 1]; + const char *pszString; + + pszString = "abc"; + RTSha512t224(pszString, strlen(pszString), abHash); + RTTESTI_CHECK_RC_RETV(RTSha512t224ToString(abHash, szDigest, sizeof(szDigest)), VINF_SUCCESS); + CHECK_STRING(szDigest, "4634270f707b6a54daae7530460842e20e37ed265ceee9a43e8924aa"); + + pszString = "abcdefghbcdefghicdefghijdefghijkefghijklfghijklmghijklmnhijklmnoijklmnopjklmnopqklmnopqrlmnopqrsmnopqrstnopqrstu"; + RTSha512t224(pszString, strlen(pszString), abHash); + RTTESTI_CHECK_RC_RETV(RTSha512t224ToString(abHash, szDigest, sizeof(szDigest)), VINF_SUCCESS); + CHECK_STRING(szDigest, "23fec5bb94d60b23308192640b0c453335d664734fe40e7268674af9"); + + /* + * Generic API tests. + */ + static TESTRTDIGEST const s_abTests[] = + { + { RT_STR_TUPLE("abc"), "4634270f707b6a54daae7530460842e20e37ed265ceee9a43e8924aa", "SHA-512/224 abc" }, + { RT_STR_TUPLE("abcdefghbcdefghicdefghijdefghijkefghijklfghijklmghijklmnhijklmnoijklmnopjklmnopqklmnopqrlmnopqrsmnopqrstnopqrstu"), + "23fec5bb94d60b23308192640b0c453335d664734fe40e7268674af9", "SHA-512/256 abcdef..." }, + }; + testGeneric("2.16.840.1.101.3.4.2.5", s_abTests, RT_ELEMENTS(s_abTests), "SHA-512/224", RTDIGESTTYPE_SHA512T224); +} +#endif /* IPRT_WITHOUT_SHA512T224 */ + +#ifndef IPRT_WITHOUT_SHA512T256 +/** + * Tests SHA-512/256 + */ +static void testSha512t256(void) +{ + RTTestISub("SHA-512/256"); + + /* + * Some quick direct API tests. + */ + uint8_t abHash[RTSHA512T256_HASH_SIZE]; + char szDigest[RTSHA512T256_DIGEST_LEN + 1]; + const char *pszString; + + pszString = "abc"; + RTSha512t256(pszString, strlen(pszString), abHash); + RTTESTI_CHECK_RC_RETV(RTSha512t256ToString(abHash, szDigest, sizeof(szDigest)), VINF_SUCCESS); + CHECK_STRING(szDigest, "53048e2681941ef99b2e29b76b4c7dabe4c2d0c634fc6d46e0e2f13107e7af23"); + + pszString = "abcdefghbcdefghicdefghijdefghijkefghijklfghijklmghijklmnhijklmnoijklmnopjklmnopqklmnopqrlmnopqrsmnopqrstnopqrstu"; + RTSha512t256(pszString, strlen(pszString), abHash); + RTTESTI_CHECK_RC_RETV(RTSha512t256ToString(abHash, szDigest, sizeof(szDigest)), VINF_SUCCESS); + CHECK_STRING(szDigest, "3928e184fb8690f840da3988121d31be65cb9d3ef83ee6146feac861e19b563a"); + + /* + * Generic API tests. + */ + static TESTRTDIGEST const s_abTests[] = + { + { RT_STR_TUPLE("abc"), "53048e2681941ef99b2e29b76b4c7dabe4c2d0c634fc6d46e0e2f13107e7af23", "SHA-512/256 abc" }, + { RT_STR_TUPLE("abcdefghbcdefghicdefghijdefghijkefghijklfghijklmghijklmnhijklmnoijklmnopjklmnopqklmnopqrlmnopqrsmnopqrstnopqrstu"), + "3928e184fb8690f840da3988121d31be65cb9d3ef83ee6146feac861e19b563a", "SHA-512/256 abcdef..." }, + }; + testGeneric("2.16.840.1.101.3.4.2.6", s_abTests, RT_ELEMENTS(s_abTests), "SHA-512/256", RTDIGESTTYPE_SHA512T256); +} +#endif /* !IPRT_WITHOUT_SHA512T256 */ + +/** + * Tests SHA-384 + */ +static void testSha384(void) +{ + RTTestISub("SHA-384"); + + /* + * Some quick direct API tests. + */ + uint8_t abHash[RTSHA384_HASH_SIZE]; + char szDigest[RTSHA384_DIGEST_LEN + 1]; + const char *pszString; + + pszString = "abc"; + RTSha384(pszString, strlen(pszString), abHash); + RTTESTI_CHECK_RC_RETV(RTSha384ToString(abHash, szDigest, sizeof(szDigest)), VINF_SUCCESS); + CHECK_STRING(szDigest, "cb00753f45a35e8bb5a03d699ac65007272c32ab0eded1631a8b605a43ff5bed8086072ba1e7cc2358baeca134c825a7"); + + pszString = "abcdefghbcdefghicdefghijdefghijkefghijklfghijklmghijklmnhijklmnoijklmnopjklmnopqklmnopqrlmnopqrsmnopqrstnopqrstu"; + RTSha384(pszString, strlen(pszString), abHash); + RTTESTI_CHECK_RC_RETV(RTSha384ToString(abHash, szDigest, sizeof(szDigest)), VINF_SUCCESS); + CHECK_STRING(szDigest, "09330c33f71147e83d192fc782cd1b4753111b173b3b05d22fa08086e3b0f712fcc7c71a557e2db966c3e9fa91746039"); + + /* + * Generic API tests. + */ + static TESTRTDIGEST const s_abTests[] = + { + { RT_STR_TUPLE("abc"), "cb00753f45a35e8bb5a03d699ac65007272c32ab0eded1631a8b605a43ff5bed8086072ba1e7cc2358baeca134c825a7", "SHA-384 abc" }, + { RT_STR_TUPLE("abcdefghbcdefghicdefghijdefghijkefghijklfghijklmghijklmnhijklmnoijklmnopjklmnopqklmnopqrlmnopqrsmnopqrstnopqrstu"), + "09330c33f71147e83d192fc782cd1b4753111b173b3b05d22fa08086e3b0f712fcc7c71a557e2db966c3e9fa91746039", "SHA-384 abcdef..." }, + }; + testGeneric("2.16.840.1.101.3.4.2.2", s_abTests, RT_ELEMENTS(s_abTests), "SHA-384", RTDIGESTTYPE_SHA384); +} + + +int main() +{ + RTTEST hTest; + int rc = RTTestInitAndCreate("tstRTDigest-2", &hTest); + if (rc) + return rc; + RTTestBanner(hTest); + + testMd2(); + testMd5(); + testSha1(); + testSha256(); + testSha224(); + testSha512(); + testSha384(); +#ifndef IPRT_WITHOUT_SHA512T224 + testSha512t224(); +#endif +#ifndef IPRT_WITHOUT_SHA512T256 + testSha512t256(); +#endif + + return RTTestSummaryAndDestroy(hTest); +} + diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Runtime/testcase/tstRTDigest.cpp virtualbox-4.1.44-dfsg/src/VBox/Runtime/testcase/tstRTDigest.cpp --- virtualbox-4.1.12-dfsg/src/VBox/Runtime/testcase/tstRTDigest.cpp 2012-04-02 13:29:06.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Runtime/testcase/tstRTDigest.cpp 2015-11-11 15:09:14.000000000 +0000 @@ -29,6 +29,7 @@ * Header Files * *******************************************************************************/ #include +#include #include #include @@ -42,6 +43,7 @@ #include #include #include +#include static int Error(const char *pszFormat, ...) @@ -60,56 +62,143 @@ } +static int MyReadFile(RTFILE hFile, void *pvBuf, size_t cbToRead, size_t *pcbRead, uint64_t *pcbMaxLeft) +{ + int rc = VINF_SUCCESS; + if (*pcbMaxLeft > 0) + { + if (cbToRead > *pcbMaxLeft) + cbToRead = (size_t)*pcbMaxLeft; + rc = RTFileRead(hFile, pvBuf, cbToRead, pcbRead); + if (RT_SUCCESS(rc)) + *pcbMaxLeft -= *pcbRead; + } + else + *pcbRead = 0; + return rc; +} + + +static char *MyGetNextSignificantLine(PRTSTREAM pFile, char *pszBuf, size_t cbBuf, uint32_t *piLine, int *prc) +{ + for (;;) + { + *pszBuf = '\0'; + int rc = RTStrmGetLine(pFile, pszBuf, cbBuf); + if (RT_FAILURE(rc)) + { + if (rc != VERR_EOF) + { + Error("Read error: %Rrc", rc); + *prc = rc; + return NULL; + } + if (!*pszBuf) + return NULL; + } + *piLine += 1; + + /* Significant? */ + char *pszStart = RTStrStrip(pszBuf); + if (*pszStart && *pszStart != '#') + return pszStart; + } +} + + int main(int argc, char **argv) { RTR3Init(); - enum - { - kDigestType_NotSpecified, - kDigestType_CRC32, - kDigestType_CRC64, - kDigestType_MD5, - kDigestType_SHA1, - kDigestType_SHA256, - kDigestType_SHA512 - } enmDigestType = kDigestType_NotSpecified; + RTDIGESTTYPE enmDigestType = RTDIGESTTYPE_INVALID; + const char *pszDigestType = "NotSpecified"; enum { kMethod_Full, kMethod_Block, - kMethod_File + kMethod_File, + kMethod_CVAS } enmMethod = kMethod_Block; + uint64_t offStart = 0; + uint64_t cbMax = UINT64_MAX; + bool fTestcase = false; + static const RTGETOPTDEF s_aOptions[] = { { "--type", 't', RTGETOPT_REQ_STRING }, { "--method", 'm', RTGETOPT_REQ_STRING }, { "--help", 'h', RTGETOPT_REQ_NOTHING }, + { "--length", 'l', RTGETOPT_REQ_UINT64 }, + { "--offset", 'o', RTGETOPT_REQ_UINT64 }, + { "--testcase", 'x', RTGETOPT_REQ_NOTHING }, }; int ch; RTGETOPTUNION ValueUnion; RTGETOPTSTATE GetState; - RTGetOptInit(&GetState, argc, argv, s_aOptions, RT_ELEMENTS(s_aOptions), 1, 0); + RTGetOptInit(&GetState, argc, argv, s_aOptions, RT_ELEMENTS(s_aOptions), 1, RTGETOPTINIT_FLAGS_OPTS_FIRST); while ((ch = RTGetOpt(&GetState, &ValueUnion))) { switch (ch) { case 't': if (!RTStrICmp(ValueUnion.psz, "crc32")) - enmDigestType = kDigestType_CRC32; + { + pszDigestType = "CRC32"; + enmDigestType = RTDIGESTTYPE_CRC32; + } else if (!RTStrICmp(ValueUnion.psz, "crc64")) - enmDigestType = kDigestType_CRC64; + { + pszDigestType = "CRC64"; + enmDigestType = RTDIGESTTYPE_CRC64; + } + else if (!RTStrICmp(ValueUnion.psz, "md2")) + { + pszDigestType = "MD2"; + enmDigestType = RTDIGESTTYPE_MD2; + } else if (!RTStrICmp(ValueUnion.psz, "md5")) - enmDigestType = kDigestType_MD5; + { + pszDigestType = "MD5"; + enmDigestType = RTDIGESTTYPE_MD5; + } else if (!RTStrICmp(ValueUnion.psz, "sha1")) - enmDigestType = kDigestType_SHA1; + { + pszDigestType = "SHA-1"; + enmDigestType = RTDIGESTTYPE_SHA1; + } + else if (!RTStrICmp(ValueUnion.psz, "sha224")) + { + pszDigestType = "SHA-224"; + enmDigestType = RTDIGESTTYPE_SHA224; + } else if (!RTStrICmp(ValueUnion.psz, "sha256")) - enmDigestType = kDigestType_SHA256; + { + pszDigestType = "SHA-256"; + enmDigestType = RTDIGESTTYPE_SHA256; + } + else if (!RTStrICmp(ValueUnion.psz, "sha384")) + { + pszDigestType = "SHA-384"; + enmDigestType = RTDIGESTTYPE_SHA384; + } else if (!RTStrICmp(ValueUnion.psz, "sha512")) - enmDigestType = kDigestType_SHA512; + { + pszDigestType = "SHA-512"; + enmDigestType = RTDIGESTTYPE_SHA512; + } + else if (!RTStrICmp(ValueUnion.psz, "sha512/224")) + { + pszDigestType = "SHA-512/224"; + enmDigestType = RTDIGESTTYPE_SHA512T224; + } + else if (!RTStrICmp(ValueUnion.psz, "sha512/256")) + { + pszDigestType = "SHA-512/256"; + enmDigestType = RTDIGESTTYPE_SHA512T256; + } else { Error("Invalid digest type: %s\n", ValueUnion.psz); @@ -124,6 +213,8 @@ enmMethod = kMethod_Block; else if (!RTStrICmp(ValueUnion.psz, "file")) enmMethod = kMethod_File; + else if (!RTStrICmp(ValueUnion.psz, "cvas")) + enmMethod = kMethod_CVAS; else { Error("Invalid digest method: %s\n", ValueUnion.psz); @@ -131,13 +222,25 @@ } break; + case 'l': + cbMax = ValueUnion.u64; + break; + + case 'o': + offStart = ValueUnion.u64; + break; + + case 'x': + fTestcase = true; + break; + case 'h': - RTPrintf("syntax: tstRTDigest -t file [file2 [..]]\n"); + RTPrintf("usage: tstRTDigest -t [-o ] [-l ] [-x] file [file2 [..]]\n"); return 1; case VINF_GETOPT_NOT_OPTION: { - if (enmDigestType == kDigestType_NotSpecified) + if (enmDigestType == RTDIGESTTYPE_INVALID) return Error("No digest type was specified\n"); switch (enmMethod) @@ -146,9 +249,11 @@ return Error("Full file method is not implemented\n"); case kMethod_File: + if (offStart != 0 || cbMax != UINT64_MAX) + return Error("The -l and -o options do not work with the 'file' method."); switch (enmDigestType) { - case kDigestType_SHA1: + case RTDIGESTTYPE_SHA1: { char *pszDigest; int rc = RTSha1DigestFromFile(ValueUnion.psz, &pszDigest, NULL, NULL); @@ -159,6 +264,17 @@ break; } + case RTDIGESTTYPE_SHA256: + { + char *pszDigest; + int rc = RTSha256DigestFromFile(ValueUnion.psz, &pszDigest, NULL, NULL); + if (RT_FAILURE(rc)) + return Error("RTSha256Digest(%s,) -> %Rrc\n", ValueUnion.psz, rc); + RTPrintf("%s %s\n", pszDigest, ValueUnion.psz); + RTStrFree(pszDigest); + break; + } + default: return Error("The file method isn't implemented for this digest\n"); } @@ -170,18 +286,25 @@ int rc = RTFileOpen(&hFile, ValueUnion.psz, RTFILE_O_READ | RTFILE_O_OPEN | RTFILE_O_DENY_WRITE); if (RT_FAILURE(rc)) return Error("RTFileOpen(,%s,) -> %Rrc\n", ValueUnion.psz, rc); + if (offStart != 0) + { + rc = RTFileSeek(hFile, offStart, RTFILE_SEEK_BEGIN, NULL); + if (RT_FAILURE(rc)) + return Error("RTFileSeek(%s,%ull) -> %Rrc\n", ValueUnion.psz, offStart, rc); + } + uint64_t cbMaxLeft = cbMax; size_t cbRead; uint8_t abBuf[_64K]; char *pszDigest = (char *)&abBuf[0]; switch (enmDigestType) { - case kDigestType_CRC32: + case RTDIGESTTYPE_CRC32: { uint32_t uCRC32 = RTCrc32Start(); for (;;) { - rc = RTFileRead(hFile, abBuf, sizeof(abBuf), &cbRead); + rc = MyReadFile(hFile, abBuf, sizeof(abBuf), &cbRead, &cbMaxLeft); if (RT_FAILURE(rc) || !cbRead) break; uCRC32 = RTCrc32Process(uCRC32, abBuf, cbRead); @@ -191,12 +314,12 @@ break; } - case kDigestType_CRC64: + case RTDIGESTTYPE_CRC64: { uint64_t uCRC64 = RTCrc64Start(); for (;;) { - rc = RTFileRead(hFile, abBuf, sizeof(abBuf), &cbRead); + rc = MyReadFile(hFile, abBuf, sizeof(abBuf), &cbRead, &cbMaxLeft); if (RT_FAILURE(rc) || !cbRead) break; uCRC64 = RTCrc64Process(uCRC64, abBuf, cbRead); @@ -206,13 +329,30 @@ break; } - case kDigestType_MD5: + case RTDIGESTTYPE_MD2: + { + RTMD2CONTEXT Ctx; + RTMd2Init(&Ctx); + for (;;) + { + rc = MyReadFile(hFile, abBuf, sizeof(abBuf), &cbRead, &cbMaxLeft); + if (RT_FAILURE(rc) || !cbRead) + break; + RTMd2Update(&Ctx, abBuf, cbRead); + } + uint8_t abDigest[RTMD2_HASH_SIZE]; + RTMd2Final(&Ctx, abDigest); + RTMd2ToString(abDigest, pszDigest, sizeof(abBuf)); + break; + } + + case RTDIGESTTYPE_MD5: { RTMD5CONTEXT Ctx; RTMd5Init(&Ctx); for (;;) { - rc = RTFileRead(hFile, abBuf, sizeof(abBuf), &cbRead); + rc = MyReadFile(hFile, abBuf, sizeof(abBuf), &cbRead, &cbMaxLeft); if (RT_FAILURE(rc) || !cbRead) break; RTMd5Update(&Ctx, abBuf, cbRead); @@ -223,13 +363,13 @@ break; } - case kDigestType_SHA1: + case RTDIGESTTYPE_SHA1: { RTSHA1CONTEXT Ctx; RTSha1Init(&Ctx); for (;;) { - rc = RTFileRead(hFile, abBuf, sizeof(abBuf), &cbRead); + rc = MyReadFile(hFile, abBuf, sizeof(abBuf), &cbRead, &cbMaxLeft); if (RT_FAILURE(rc) || !cbRead) break; RTSha1Update(&Ctx, abBuf, cbRead); @@ -240,13 +380,13 @@ break; } - case kDigestType_SHA256: + case RTDIGESTTYPE_SHA256: { RTSHA256CONTEXT Ctx; RTSha256Init(&Ctx); for (;;) { - rc = RTFileRead(hFile, abBuf, sizeof(abBuf), &cbRead); + rc = MyReadFile(hFile, abBuf, sizeof(abBuf), &cbRead, &cbMaxLeft); if (RT_FAILURE(rc) || !cbRead) break; RTSha256Update(&Ctx, abBuf, cbRead); @@ -257,13 +397,13 @@ break; } - case kDigestType_SHA512: + case RTDIGESTTYPE_SHA512: { RTSHA512CONTEXT Ctx; RTSha512Init(&Ctx); for (;;) { - rc = RTFileRead(hFile, abBuf, sizeof(abBuf), &cbRead); + rc = MyReadFile(hFile, abBuf, sizeof(abBuf), &cbRead, &cbMaxLeft); if (RT_FAILURE(rc) || !cbRead) break; RTSha512Update(&Ctx, abBuf, cbRead); @@ -283,7 +423,131 @@ RTPrintf("Partial: %s %s\n", pszDigest, ValueUnion.psz); return Error("RTFileRead(%s) -> %Rrc\n", ValueUnion.psz, rc); } - RTPrintf("%s %s\n", pszDigest, ValueUnion.psz); + + if (!fTestcase) + RTPrintf("%s %s\n", pszDigest, ValueUnion.psz); + else if (offStart) + RTPrintf(" { &g_abRandom72KB[%#4llx], %5llu, \"%s\", \"%s %llu bytes @%llu\" },\n", + offStart, cbMax - cbMaxLeft, pszDigest, pszDigestType, offStart, cbMax - cbMaxLeft); + else + RTPrintf(" { &g_abRandom72KB[0], %5llu, \"%s\", \"%s %llu bytes\" },\n", + cbMax - cbMaxLeft, pszDigest, pszDigestType, cbMax - cbMaxLeft); + break; + } + + + /* + * Process a SHS response file: + * http://csrc.nist.gov/groups/STM/cavp/index.html#03 + */ + case kMethod_CVAS: + { + RTCRDIGEST hDigest; + int rc = RTCrDigestCreateByType(&hDigest, enmDigestType); + if (RT_FAILURE(rc)) + return Error("Failed to create digest calculator for %s: %Rrc", pszDigestType, rc); + + uint32_t const cbDigest = RTCrDigestGetHashSize(hDigest); + if (!cbDigest || cbDigest >= _1K) + return Error("Unexpected hash size: %#x\n", cbDigest); + + PRTSTREAM pFile; + rc = RTStrmOpen(ValueUnion.psz, "r", &pFile); + if (RT_FAILURE(rc)) + return Error("Failed to open CVAS file '%s': %Rrc", ValueUnion.psz, rc); + + /* + * Parse the input file. + * ASSUME order: Len, Msg, MD. + */ + static char s_szLine[_256K]; + char *psz; + uint32_t cPassed = 0; + uint32_t cErrors = 0; + uint32_t iLine = 1; + for (;;) + { + psz = MyGetNextSignificantLine(pFile, s_szLine, sizeof(s_szLine), &iLine, &rc); + if (!psz) + break; + + /* Skip [L = 20] stuff. */ + if (*psz == '[') + continue; + + /* Message length. */ + uint64_t cMessageBits; + if (RTStrNICmp(psz, RT_STR_TUPLE("Len ="))) + return Error("%s(%d): Expected 'Len =' found '%.10s...'", ValueUnion.psz, iLine, psz); + psz = RTStrStripL(psz + 5); + rc = RTStrToUInt64Full(psz, 0, &cMessageBits); + if (rc != VINF_SUCCESS) + return Error("%s(%d): Error parsing length '%s': %Rrc\n", ValueUnion.psz, iLine, psz, rc); + + /* The message text. */ + psz = MyGetNextSignificantLine(pFile, s_szLine, sizeof(s_szLine), &iLine, &rc); + if (!psz) + return Error("%s(%d): Expected message text not EOF.", ValueUnion.psz, iLine); + if (RTStrNICmp(psz, RT_STR_TUPLE("Msg ="))) + return Error("%s(%d): Expected 'Msg =' found '%.10s...'", ValueUnion.psz, iLine, psz); + psz = RTStrStripL(psz + 5); + + size_t const cbMessage = (cMessageBits + 7) / 8; + static uint8_t s_abMessage[sizeof(s_szLine) / 2]; + if (cbMessage > 0) + { + rc = RTStrConvertHexBytes(psz, s_abMessage, cbMessage, 0 /*fFlags*/); + if (rc != VINF_SUCCESS) + return Error("%s(%d): Error parsing message '%.10s...': %Rrc\n", + ValueUnion.psz, iLine, psz, rc); + } + + /* The message digest. */ + psz = MyGetNextSignificantLine(pFile, s_szLine, sizeof(s_szLine), &iLine, &rc); + if (!psz) + return Error("%s(%d): Expected message digest not EOF.", ValueUnion.psz, iLine); + if (RTStrNICmp(psz, RT_STR_TUPLE("MD ="))) + return Error("%s(%d): Expected 'MD =' found '%.10s...'", ValueUnion.psz, iLine, psz); + psz = RTStrStripL(psz + 4); + + static uint8_t s_abExpectedDigest[_1K]; + rc = RTStrConvertHexBytes(psz, s_abExpectedDigest, cbDigest, 0 /*fFlags*/); + if (rc != VINF_SUCCESS) + return Error("%s(%d): Error parsing message digest '%.10s...': %Rrc\n", + ValueUnion.psz, iLine, psz, rc); + + /* + * Do the testing. + */ + rc = RTCrDigestReset(hDigest); + if (rc != VINF_SUCCESS) + return Error("RTCrDigestReset failed: %Rrc", rc); + + rc = RTCrDigestUpdate(hDigest, s_abMessage, cbMessage); + if (rc != VINF_SUCCESS) + return Error("RTCrDigestUpdate failed: %Rrc", rc); + + static uint8_t s_abActualDigest[_1K]; + rc = RTCrDigestFinal(hDigest, s_abActualDigest, cbDigest); + if (rc != VINF_SUCCESS) + return Error("RTCrDigestFinal failed: %Rrc", rc); + + if (memcmp(s_abActualDigest, s_abExpectedDigest, cbDigest) == 0) + cPassed++; + else + { + Error("%s(%d): Message digest mismatch. Expected %.*RThxs, got %.*RThxs.", + ValueUnion.psz, iLine, cbDigest, s_abExpectedDigest, cbDigest, s_abActualDigest); + cErrors++; + } + } + + RTStrmClose(pFile); + if (cErrors > 0) + return Error("Failed: %u error%s (%u passed)", cErrors, cErrors == 1 ? "" : "s", cPassed); + RTPrintf("Passed %u test%s.\n", cPassed, cPassed == 1 ? "" : "s"); + if (RT_FAILURE(rc)) + return Error("Failed: %Rrc", rc); break; } diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Runtime/testcase/tstRTInlineAsm.cpp virtualbox-4.1.44-dfsg/src/VBox/Runtime/testcase/tstRTInlineAsm.cpp --- virtualbox-4.1.12-dfsg/src/VBox/Runtime/testcase/tstRTInlineAsm.cpp 2012-04-02 13:29:06.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Runtime/testcase/tstRTInlineAsm.cpp 2015-11-11 15:09:14.000000000 +0000 @@ -209,24 +209,49 @@ RTTestIPrintf(RTTESTLVL_ALWAYS, "%08x %08x %08x %08x %08x%s\n", iStd, s.uEAX, s.uEBX, s.uECX, s.uEDX, iStd <= cFunctions ? "" : "*"); - if (iStd == 0x04 || iStd == 0x0b || iStd == 0x0d || iStd > cFunctions) - continue; /* Leaf 04 and leaf 0d output depend on the initial value of ECX - * The same seems to apply to invalid standard functions */ - - u32 = ASMCpuId_EAX(iStd); - CHECKVAL(u32, s.uEAX, "%x"); - u32 = ASMCpuId_EBX(iStd); - CHECKVAL(u32, s.uEBX, "%x"); - u32 = ASMCpuId_ECX(iStd); - CHECKVAL(u32, s.uECX, "%x"); - u32 = ASMCpuId_EDX(iStd); - CHECKVAL(u32, s.uEDX, "%x"); - - uECX2 = s.uECX - 1; - uEDX2 = s.uEDX - 1; - ASMCpuId_ECX_EDX(iStd, &uECX2, &uEDX2); - CHECKVAL(uECX2, s.uECX, "%x"); - CHECKVAL(uEDX2, s.uEDX, "%x"); + /* Leaf 04 and leaf 0d output depend on the initial value of ECX + * The same seems to apply to invalid standard functions */ + if (iStd > cFunctions) + continue; + if (iStd != 0x04 && iStd != 0x0b && iStd != 0x0d) + { + u32 = ASMCpuId_EAX(iStd); + CHECKVAL(u32, s.uEAX, "%x"); + u32 = ASMCpuId_EBX(iStd); + CHECKVAL(u32, s.uEBX, "%x"); + u32 = ASMCpuId_ECX(iStd); + CHECKVAL(u32, s.uECX, "%x"); + u32 = ASMCpuId_EDX(iStd); + CHECKVAL(u32, s.uEDX, "%x"); + + uECX2 = s.uECX - 1; + uEDX2 = s.uEDX - 1; + ASMCpuId_ECX_EDX(iStd, &uECX2, &uEDX2); + CHECKVAL(uECX2, s.uECX, "%x"); + CHECKVAL(uEDX2, s.uEDX, "%x"); + } + + if (iStd == 0x04) + for (uint32_t uECX = 1; s.uEAX & 0x1f; uECX++) + { + ASMCpuId_Idx_ECX(iStd, uECX, &s.uEAX, &s.uEBX, &s.uECX, &s.uEDX); + RTTestIPrintf(RTTESTLVL_ALWAYS, " [%02x] %08x %08x %08x %08x\n", uECX, s.uEAX, s.uEBX, s.uECX, s.uEDX); + RTTESTI_CHECK_BREAK(uECX < 128); + } + else if (iStd == 0x0b) + for (uint32_t uECX = 1; (s.uEAX & 0x1f) && (s.uEBX & 0xffff); uECX++) + { + ASMCpuId_Idx_ECX(iStd, uECX, &s.uEAX, &s.uEBX, &s.uECX, &s.uEDX); + RTTestIPrintf(RTTESTLVL_ALWAYS, " [%02x] %08x %08x %08x %08x\n", uECX, s.uEAX, s.uEBX, s.uECX, s.uEDX); + RTTESTI_CHECK_BREAK(uECX < 128); + } + else if (iStd == 0x0d) + for (uint32_t uECX = 1; s.uEAX != 0 || s.uEBX != 0 || s.uECX != 0 || s.uEDX != 0; uECX++) + { + ASMCpuId_Idx_ECX(iStd, uECX, &s.uEAX, &s.uEBX, &s.uECX, &s.uEDX); + RTTestIPrintf(RTTESTLVL_ALWAYS, " [%02x] %08x %08x %08x %08x\n", uECX, s.uEAX, s.uEBX, s.uECX, s.uEDX); + RTTESTI_CHECK_BREAK(uECX < 128); + } } /* @@ -1519,6 +1544,7 @@ #if !defined(GCC44_32BIT_PIC) && (defined(RT_ARCH_AMD64) || defined(RT_ARCH_X86)) tstASMCpuId(); #endif +#if 1 tstASMAtomicXchgU8(); tstASMAtomicXchgU16(); tstASMAtomicXchgU32(); @@ -1549,6 +1575,7 @@ tstASMByteSwap(); tstASMBench(); +#endif /* * Show the result. diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Runtime/testcase/tstRTLdrVerifyPeImage.cpp virtualbox-4.1.44-dfsg/src/VBox/Runtime/testcase/tstRTLdrVerifyPeImage.cpp --- virtualbox-4.1.12-dfsg/src/VBox/Runtime/testcase/tstRTLdrVerifyPeImage.cpp 1970-01-01 00:00:00.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Runtime/testcase/tstRTLdrVerifyPeImage.cpp 2015-11-11 15:09:14.000000000 +0000 @@ -0,0 +1,105 @@ +/* $Id: tstRTLdrVerifyPeImage.cpp $ */ +/** @file + * SUP Testcase - Testing the Authenticode signature verification code. + */ + +/* + * Copyright (C) 2014 Oracle Corporation + * + * This file is part of VirtualBox Open Source Edition (OSE), as + * available from http://www.virtualbox.org. This file is free software; + * you can redistribute it and/or modify it under the terms of the GNU + * General Public License (GPL) as published by the Free Software + * Foundation, in version 2 as it comes in the "COPYING" file of the + * VirtualBox OSE distribution. VirtualBox OSE is distributed in the + * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind. + * + * The contents of this file may alternatively be used under the terms + * of the Common Development and Distribution License Version 1.0 + * (CDDL) only, as it comes in the "COPYING.CDDL" file of the + * VirtualBox OSE distribution, in which case the provisions of the + * CDDL are applicable instead of those of the GPL. + * + * You may elect to license modified versions of this file under the + * terms and conditions of either the GPL or the CDDL or both. + */ + + +/******************************************************************************* +* Header Files * +*******************************************************************************/ +#include +#include +#include +#include +#include +#include + + +/******************************************************************************* +* Global Variables * +*******************************************************************************/ +static int g_iDummy = 0; + +static DECLCALLBACK(int) TestCallback(RTLDRMOD hLdrMod, RTLDRSIGNATURETYPE enmSignature, + void const *pvSignature, size_t cbSignature, + PRTERRINFO pErrInfo, void *pvUser) +{ + return VINF_SUCCESS; +} + + + +int main(int argc, char **argv) +{ + RTTEST hTest; + RTEXITCODE rcExit = RTTestInitAndCreate("tstAuthenticode", &hTest); + if (rcExit != RTEXITCODE_SUCCESS) + return rcExit; + RTTestBanner(hTest); + + /* + * Process input. + */ + for (int i = 1; i < argc; i++) + { + const char *pszFullName = argv[i]; + const char *pszFilename = RTPathFilename(pszFullName); + RTTestSub(hTest, pszFilename); + + RTLDRMOD hLdrMod; + int rc = RTLdrOpen(pszFullName, RTLDR_O_FOR_VALIDATION, RTLDRARCH_WHATEVER, &hLdrMod); + if (RT_SUCCESS(rc)) + { + char szDigest[512]; + + RTTESTI_CHECK_RC(rc = RTLdrHashImage(hLdrMod, RTDIGESTTYPE_MD5, szDigest, sizeof(szDigest)), VINF_SUCCESS); + if (RT_SUCCESS(rc)) + RTTestPrintf(hTest, RTTESTLVL_ALWAYS, "md5=%s\n", szDigest); + RTTESTI_CHECK_RC(rc = RTLdrHashImage(hLdrMod, RTDIGESTTYPE_SHA1, szDigest, sizeof(szDigest)), VINF_SUCCESS); + if (RT_SUCCESS(rc)) + RTTestPrintf(hTest, RTTESTLVL_ALWAYS, "sha1=%s\n", szDigest); + RTTESTI_CHECK_RC(rc = RTLdrHashImage(hLdrMod, RTDIGESTTYPE_SHA256, szDigest, sizeof(szDigest)), VINF_SUCCESS); + if (RT_SUCCESS(rc)) + RTTestPrintf(hTest, RTTESTLVL_ALWAYS, "sha256=%s\n", szDigest); + RTTESTI_CHECK_RC(rc = RTLdrHashImage(hLdrMod, RTDIGESTTYPE_SHA512, szDigest, sizeof(szDigest)), VINF_SUCCESS); + if (RT_SUCCESS(rc)) + RTTestPrintf(hTest, RTTESTLVL_ALWAYS, "sha512=%s\n", szDigest); + + if (rc != VERR_NOT_SUPPORTED) + { + RTERRINFOSTATIC ErrInfo; + RTErrInfoInitStatic(&ErrInfo); + rc = RTLdrVerifySignature(hLdrMod, TestCallback, &g_iDummy, &ErrInfo.Core); + if (RT_FAILURE(rc)) + RTTestFailed(hTest, "%s: %s (rc=%Rrc)", pszFilename, ErrInfo.Core.pszMsg, rc); + } + RTLdrClose(hLdrMod); + } + else + RTTestFailed(hTest, "Error opening '%s': %Rrc\n", pszFullName, rc); + } + + return RTTestSummaryAndDestroy(hTest); +} + diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Runtime/testcase/tstRTPath.cpp virtualbox-4.1.44-dfsg/src/VBox/Runtime/testcase/tstRTPath.cpp --- virtualbox-4.1.12-dfsg/src/VBox/Runtime/testcase/tstRTPath.cpp 2012-04-02 13:29:06.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Runtime/testcase/tstRTPath.cpp 2015-11-11 15:09:14.000000000 +0000 @@ -134,7 +134,7 @@ { "C:\\MustDie", "\\from_root/dir/..", VINF_SUCCESS, "C:\\from_root" }, { "C:\\temp", "D:\\data", VINF_SUCCESS, "D:\\data" }, { NULL, "\\\\server\\..\\share", VINF_SUCCESS, "\\\\server\\..\\share" /* kind of strange */ }, - { NULL, "\\\\server/", VINF_SUCCESS, "\\\\server" }, + { NULL, "\\\\server/", VINF_SUCCESS, "\\\\server\\" }, { NULL, "\\\\", VINF_SUCCESS, "\\\\" }, { NULL, "\\\\\\something", VINF_SUCCESS, "\\\\\\something" /* kind of strange */ }, { "\\\\server\\share_as_base", "/from_root", VINF_SUCCESS, "\\\\server\\from_root" }, diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Runtime/testcase/tstRTR0MemUserKernelDriver.cpp virtualbox-4.1.44-dfsg/src/VBox/Runtime/testcase/tstRTR0MemUserKernelDriver.cpp --- virtualbox-4.1.12-dfsg/src/VBox/Runtime/testcase/tstRTR0MemUserKernelDriver.cpp 2012-04-02 13:29:06.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Runtime/testcase/tstRTR0MemUserKernelDriver.cpp 2015-11-11 15:09:14.000000000 +0000 @@ -42,7 +42,10 @@ #endif -int main(int argc, char **argv) +/** + * Entry point. + */ +extern "C" DECLEXPORT(int) TrustedMain(int argc, char **argv, char **envp) { #ifndef VBOX RTPrintf("tstSup: SKIPPED\n"); @@ -208,3 +211,14 @@ #endif } + +#if !defined(VBOX_WITH_HARDENING) || !defined(RT_OS_WINDOWS) +/** + * Main entry point. + */ +int main(int argc, char **argv, char **envp) +{ + return TrustedMain(argc, argv, envp); +} +#endif + diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Runtime/testcase/tstRTR0SemMutexDriver.cpp virtualbox-4.1.44-dfsg/src/VBox/Runtime/testcase/tstRTR0SemMutexDriver.cpp --- virtualbox-4.1.12-dfsg/src/VBox/Runtime/testcase/tstRTR0SemMutexDriver.cpp 2012-04-02 13:29:06.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Runtime/testcase/tstRTR0SemMutexDriver.cpp 2015-11-11 15:09:14.000000000 +0000 @@ -168,7 +168,10 @@ } -int main(int argc, char **argv) +/** + * Entry point. + */ +extern "C" DECLEXPORT(int) TrustedMain(int argc, char **argv, char **envp) { #ifndef VBOX RTPrintf("tstSup: SKIPPED\n"); @@ -288,3 +291,14 @@ #endif } + +#if !defined(VBOX_WITH_HARDENING) || !defined(RT_OS_WINDOWS) +/** + * Main entry point. + */ +int main(int argc, char **argv, char **envp) +{ + return TrustedMain(argc, argv, envp); +} +#endif + diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Runtime/testcase/tstRTR0TimerDriver.cpp virtualbox-4.1.44-dfsg/src/VBox/Runtime/testcase/tstRTR0TimerDriver.cpp --- virtualbox-4.1.12-dfsg/src/VBox/Runtime/testcase/tstRTR0TimerDriver.cpp 2012-04-02 13:29:06.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Runtime/testcase/tstRTR0TimerDriver.cpp 2015-11-11 15:09:14.000000000 +0000 @@ -43,7 +43,10 @@ #include "tstRTR0CommonDriver.h" -int main(int argc, char **argv) +/** + * Entry point. + */ +extern "C" DECLEXPORT(int) TrustedMain(int argc, char **argv, char **envp) { #ifndef VBOX RTPrintf("tstRTR0Timer: SKIPPED\n"); @@ -105,3 +108,14 @@ #endif } + +#if !defined(VBOX_WITH_HARDENING) || !defined(RT_OS_WINDOWS) +/** + * Main entry point. + */ +int main(int argc, char **argv, char **envp) +{ + return TrustedMain(argc, argv, envp); +} +#endif + diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Runtime/testcase/tstRTS3.cpp virtualbox-4.1.44-dfsg/src/VBox/Runtime/testcase/tstRTS3.cpp --- virtualbox-4.1.12-dfsg/src/VBox/Runtime/testcase/tstRTS3.cpp 2012-04-02 13:29:06.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Runtime/testcase/tstRTS3.cpp 1970-01-01 00:00:00.000000000 +0000 @@ -1,236 +0,0 @@ -/* $Id: tstRTS3.cpp $ */ -/** @file - * IPRT Testcase - Simple Storage Service (S3) Communication API - */ - -/* - * Copyright (C) 2009 Oracle Corporation - * - * This file is part of VirtualBox Open Source Edition (OSE), as - * available from http://www.virtualbox.org. This file is free software; - * you can redistribute it and/or modify it under the terms of the GNU - * General Public License (GPL) as published by the Free Software - * Foundation, in version 2 as it comes in the "COPYING" file of the - * VirtualBox OSE distribution. VirtualBox OSE is distributed in the - * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind. - * - * The contents of this file may alternatively be used under the terms - * of the Common Development and Distribution License Version 1.0 - * (CDDL) only, as it comes in the "COPYING.CDDL" file of the - * VirtualBox OSE distribution, in which case the provisions of the - * CDDL are applicable instead of those of the GPL. - * - * You may elect to license modified versions of this file under the - * terms and conditions of either the GPL or the CDDL or both. - */ - - -/******************************************************************************* -* Header Files * -*******************************************************************************/ -#include -#include -#include -#include -#include - - -/******************************************************************************* -* Defined Constants And Macros * -*******************************************************************************/ -/* Manual configuration of this testcase */ -#define TSTS3_CREATEBUCKET -#define TSTS3_PUTGETKEY -//#define TSTS3_SHOWPROGRESS - -#ifdef TSTS3_CREATEBUCKET -//# define TSTS3_CREATEBUCKET_BUCKETNAME "tstS3CreateBucket" -# define TSTS3_CREATEBUCKET_BUCKETNAME "tt9" -#endif /* TSTS3_CREATEBUCKET */ - -#ifdef TSTS3_PUTGETKEY -# define TSTS3_PUTGETKEY_BUCKETNAME "tstS3PutGetBucket" -# define TSTS3_PUTGETKEY_KEYNAME "tstS3PutGetKey" -# define TSTS3_PUTGETKEY_PUTFILE "tstS3" -# define TSTS3_PUTGETKEY_GETFILE "tstS3_fetched" -#endif /* TSTS3_PUTGETKEY */ - -static int progress(unsigned uPercent, void *pvUser) -{ -#ifdef TSTS3_SHOWPROGRESS - RTTestIPrintf(RTTESTLVL_ALWAYS, " Progress for %s - %d%% done.\n", (char*)pvUser, (int)uPercent); -#endif /* TSTS3_SHOWPROGRESS */ - return VINF_SUCCESS; -} - -void fetchAllBuckets(RTS3 hS3) -{ - /* Fetch all available buckets */ - RTTestIPrintf(RTTESTLVL_ALWAYS, " List all buckets...\n"); - char pszTitle[] = "RTS3GetBuckets"; - RTS3SetProgressCallback(hS3, progress, pszTitle); - PCRTS3BUCKETENTRY pBuckets = NULL; - int rc = RTS3GetBuckets(hS3, &pBuckets); - if (RT_SUCCESS(rc)) - { - if (pBuckets) - { - PCRTS3BUCKETENTRY pTmpBuckets = pBuckets; - while (pBuckets) - { - RTTestIPrintf(RTTESTLVL_ALWAYS, " > %s, %s\n", pBuckets->pszName, pBuckets->pszCreationDate); - pBuckets = pBuckets->pNext; - } - RTS3BucketsDestroy(pTmpBuckets); - } - else - RTTestIPrintf(RTTESTLVL_ALWAYS, " > empty\n"); - } - else - RTTestIFailed("RTS3GetBuckets -> %Rrc", rc); -} - -void createBucket(RTS3 hS3, const char *pszBucketName) -{ - /* Create the bucket */ - RTTestIPrintf(RTTESTLVL_ALWAYS, " Create bucket '%s'...\n", pszBucketName); - char pszTitle[] = "RTS3CreateBucket"; - RTS3SetProgressCallback(hS3, progress, pszTitle); - int rc = RTS3CreateBucket(hS3, pszBucketName); - if (RT_FAILURE(rc)) - RTTestIFailed("RTS3CreateBucket -> %Rrc", rc); -} - -void deleteBucket(RTS3 hS3, const char *pszBucketName) -{ - /* Delete the bucket */ - RTTestIPrintf(RTTESTLVL_ALWAYS, " Delete bucket '%s'...\n", pszBucketName); - char pszTitle[] = "RTS3DeleteBucket"; - RTS3SetProgressCallback(hS3, progress, pszTitle); - int rc = RTS3DeleteBucket(hS3, pszBucketName); - if (RT_FAILURE(rc)) - RTTestIFailed("RTS3DeleteBucket -> %Rrc", rc); -} - -void fetchAllKeys(RTS3 hS3, const char *pszBucketName) -{ - /* Fetch all available keys of a specific bucket */ - RTTestIPrintf(RTTESTLVL_ALWAYS, " List all keys of bucket '%s'...\n", pszBucketName); - PCRTS3KEYENTRY pKeys = NULL; - char pszTitle[] = "RTS3GetBucketKeys"; - RTS3SetProgressCallback(hS3, progress, pszTitle); - int rc = RTS3GetBucketKeys(hS3, pszBucketName, &pKeys); - if (RT_SUCCESS(rc)) - { - if (pKeys) - { - PCRTS3KEYENTRY pTmpKeys = pKeys; - while (pKeys) - { - RTTestIPrintf(RTTESTLVL_ALWAYS, " > %s, %s, %lu\n", pKeys->pszName, pKeys->pszLastModified, pKeys->cbFile); - pKeys = pKeys->pNext; - } - RTS3KeysDestroy(pTmpKeys); - } - else - RTTestIPrintf(RTTESTLVL_ALWAYS, " > empty\n"); - } - else - RTTestIFailed("RTS3GetBucketKeys -> %Rrc", rc); -} - -void deleteKey(RTS3 hS3, const char *pszBucketName, const char *pszKeyName) -{ - /* Delete the key */ - RTTestIPrintf(RTTESTLVL_ALWAYS, " Delete key '%s' in bucket '%s'...\n", pszKeyName, pszBucketName); - char pszTitle[] = "RTS3DeleteKey"; - RTS3SetProgressCallback(hS3, progress, pszTitle); - int rc = RTS3DeleteKey(hS3, pszBucketName, pszKeyName); - if (RT_FAILURE(rc)) - RTTestIFailed("RTS3DeleteKey -> %Rrc", rc); -} - -void getKey(RTS3 hS3, const char *pszBucketName, const char *pszKeyName, const char *pszFilename) -{ - /* Fetch the content of a key */ - RTTestIPrintf(RTTESTLVL_ALWAYS, " Get key '%s' from bucket '%s' into '%s' ...\n", pszKeyName, pszBucketName, pszFilename); - char pszTitle[] = "RTS3GetKey"; - RTS3SetProgressCallback(hS3, progress, pszTitle); - int rc = RTS3GetKey(hS3, pszBucketName, pszKeyName, pszFilename); - if (RT_FAILURE(rc)) - RTTestIFailed("RTS3GetKey -> %Rrc", rc); -} - -void putKey(RTS3 hS3, const char *pszBucketName, const char *pszKeyName, const char *pszFilename) -{ - /* Fetch the content of a key */ - RTTestIPrintf(RTTESTLVL_ALWAYS, " Put '%s' into key '%s' in bucket '%s' ...\n", pszFilename, pszKeyName, pszBucketName); - char pszTitle[] = "RTS3PutKey"; - RTS3SetProgressCallback(hS3, progress, pszTitle); - int rc = RTS3PutKey(hS3, pszBucketName, pszKeyName, pszFilename); - if (RT_FAILURE(rc)) - RTTestIFailed("RTS3PutKey -> %Rrc", rc); -} - -int main(int argc, char **argv) -{ - /* - * Initialize IPRT and create the test. - */ - RTTEST hTest; - int rc = RTTestInitAndCreate("tstRTS3", &hTest); - if (rc) - return rc; - RTTestBanner(hTest); - - /* - * If no args, display usage. - */ - if (argc <= 2) - { - RTTestPrintf(hTest, RTTESTLVL_ALWAYS, "Syntax: %s [Access Key] [Secret Key]\n", argv[0]); - return RTTestSkipAndDestroy(hTest, "Missing required arguments\n"); - } - - RTTestSubF(hTest, "Create S3"); - RTS3 hS3; - rc = RTS3Create(&hS3, argv[1], argv[2], "object.storage.network.com", "tstS3-agent/1.0"); - if (RT_FAILURE(rc)) - { - RTTestIFailed("RTS3Create -> %Rrc", rc); - return RTTestSummaryAndDestroy(hTest); - } - - RTTestSub(hTest, "Fetch buckets"); - fetchAllBuckets(hS3); - RTTestSub(hTest, "Fetch keys"); - fetchAllKeys(hS3, "bla"); - -#ifdef TSTS3_CREATEBUCKET - RTTestSub(hTest, "Create bucket"); - createBucket(hS3, TSTS3_CREATEBUCKET_BUCKETNAME); - fetchAllBuckets(hS3); - deleteBucket(hS3, TSTS3_CREATEBUCKET_BUCKETNAME); - fetchAllBuckets(hS3); -#endif /* TSTS3_CREATEBUCKET */ - - -#ifdef TSTS3_PUTGETKEY - RTTestSub(hTest, "Put key"); - createBucket(hS3, TSTS3_PUTGETKEY_BUCKETNAME); - putKey(hS3, TSTS3_PUTGETKEY_BUCKETNAME, TSTS3_PUTGETKEY_KEYNAME, TSTS3_PUTGETKEY_PUTFILE); - fetchAllKeys(hS3, TSTS3_PUTGETKEY_BUCKETNAME); - getKey(hS3, TSTS3_PUTGETKEY_BUCKETNAME, TSTS3_PUTGETKEY_KEYNAME, TSTS3_PUTGETKEY_GETFILE); - deleteKey(hS3, TSTS3_PUTGETKEY_BUCKETNAME, TSTS3_PUTGETKEY_KEYNAME); - fetchAllKeys(hS3, TSTS3_PUTGETKEY_BUCKETNAME); - deleteBucket(hS3, TSTS3_PUTGETKEY_BUCKETNAME); -#endif /* TSTS3_PUTGETKEY */ - - RTS3Destroy(hS3); - - /* - * Summary - */ - return RTTestSummaryAndDestroy(hTest); -} - diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Runtime/tools/Makefile.kmk virtualbox-4.1.44-dfsg/src/VBox/Runtime/tools/Makefile.kmk --- virtualbox-4.1.12-dfsg/src/VBox/Runtime/tools/Makefile.kmk 2012-04-02 13:29:07.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Runtime/tools/Makefile.kmk 2015-11-11 15:09:15.000000000 +0000 @@ -4,7 +4,7 @@ # # -# Copyright (C) 2006-2010 Oracle Corporation +# Copyright (C) 2006-2014 Oracle Corporation # # This file is part of VirtualBox Open Source Edition (OSE), as # available from http://www.virtualbox.org. This file is free software; @@ -33,28 +33,48 @@ bldRTManifest_TEMPLATE = VBoxAdvBldProg bldRTManifest_SOURCES = RTManifest.cpp -ifndef VBOX_ONLY_EXTPACKS_USE_IMPLIBS +# RTSignTool - Signing utility - build version. Signed on windows so we can get the certificate from it. +BLDPROGS += bldRTSignTool +bldRTSignTool_TEMPLATE = VBoxAdvBldProg +bldRTSignTool_SOURCES = RTSignTool.cpp +bldRTSignTool_DEFS = IPRT_IN_BUILD_TOOL +bldRTSignTool_POST_CMDS.win = $(VBOX_SIGN_IMAGE_CMDS) + +if !defined(VBOX_ONLY_EXTPACKS_USE_IMPLIBS) && !defined(VBOX_ONLY_VALIDATIONKIT) # RTManifest is a tool for creating and verifying manifest files. PROGRAMS += RTManifest - RTManifest_TEMPLATE = VBOXR3TSTEXE + RTManifest_TEMPLATE = VBoxR3Tool RTManifest_SOURCES = RTManifest.cpp # RTLdrFlt is similar to c++filt, except that it's for VMMR0.r0 stacks. PROGRAMS += RTLdrFlt - RTLdrFlt_TEMPLATE = VBOXR3TSTEXE + RTLdrFlt_TEMPLATE = VBoxR3Tool RTLdrFlt_SOURCES = RTLdrFlt.cpp # RTGzip - our gzip clone (for testing the gzip/gunzip streaming code) PROGRAMS += RTGzip - RTGzip_TEMPLATE = VBOXR3TSTEXE + RTGzip_TEMPLATE = VBoxR3Tool RTGzip_SOURCES = RTGzip.cpp # RTTar - our tar clone (for testing the tar/gzip/gunzip streaming code) PROGRAMS += RTTar - RTTar_TEMPLATE = VBOXR3TSTEXE + RTTar_TEMPLATE = VBoxR3Tool RTTar_SOURCES = RTTar.cpp + # RTSignTool - Signing utility. + PROGRAMS += RTSignTool + RTSignTool_TEMPLATE = VBoxR3Tool + RTSignTool_SOURCES = RTSignTool.cpp + RTSignTool_LIBS = $(PATH_STAGE_LIB)/SUPR3$(VBOX_SUFF_LIB) + + if 0 # disabled due to missing backports. + # RTDbgSymCache - Symbol cache manager. + PROGRAMS += RTDbgSymCache + RTDbgSymCache_TEMPLATE = VBoxR3Tool + RTDbgSymCache_SOURCES = RTDbgSymCache.cpp + endif + endif # !VBOX_ONLY_EXTPACKS_USE_IMPLIBS include $(KBUILD_PATH)/subfooter.kmk diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Runtime/tools/RTDbgSymCache.cpp virtualbox-4.1.44-dfsg/src/VBox/Runtime/tools/RTDbgSymCache.cpp --- virtualbox-4.1.12-dfsg/src/VBox/Runtime/tools/RTDbgSymCache.cpp 1970-01-01 00:00:00.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Runtime/tools/RTDbgSymCache.cpp 2015-11-11 15:09:15.000000000 +0000 @@ -0,0 +1,1204 @@ +/* $Id: RTDbgSymCache.cpp $ */ +/** @file + * IPRT - Debug Symbol Cache Utility. + */ + +/* + * Copyright (C) 2013 Oracle Corporation + * + * This file is part of VirtualBox Open Source Edition (OSE), as + * available from http://www.virtualbox.org. This file is free software; + * you can redistribute it and/or modify it under the terms of the GNU + * General Public License (GPL) as published by the Free Software + * Foundation, in version 2 as it comes in the "COPYING" file of the + * VirtualBox OSE distribution. VirtualBox OSE is distributed in the + * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind. + * + * The contents of this file may alternatively be used under the terms + * of the Common Development and Distribution License Version 1.0 + * (CDDL) only, as it comes in the "COPYING.CDDL" file of the + * VirtualBox OSE distribution, in which case the provisions of the + * CDDL are applicable instead of those of the GPL. + * + * You may elect to license modified versions of this file under the + * terms and conditions of either the GPL or the CDDL or both. + */ + + +/******************************************************************************* +* Header Files * +*******************************************************************************/ +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + + +/******************************************************************************* +* Structures and Typedefs * +*******************************************************************************/ +/** + * Cache file type. + */ +typedef enum RTDBGSYMCACHEFILETYPE +{ + RTDBGSYMCACHEFILETYPE_INVALID, + RTDBGSYMCACHEFILETYPE_DIR, + RTDBGSYMCACHEFILETYPE_DIR_FILTER, + RTDBGSYMCACHEFILETYPE_DEBUG_FILE, + RTDBGSYMCACHEFILETYPE_IMAGE_FILE, + RTDBGSYMCACHEFILETYPE_DEBUG_BUNDLE, + RTDBGSYMCACHEFILETYPE_IMAGE_BUNDLE, + RTDBGSYMCACHEFILETYPE_IGNORE +} RTDBGSYMCACHEFILETYPE; + + +/** + * Configuration for the 'add' command. + */ +typedef struct RTDBGSYMCACHEADDCFG +{ + bool fRecursive; + const char *pszFilter; + const char *pszCache; +} RTDBGSYMCACHEADDCFG; +/** Pointer to a read only 'add' config. */ +typedef RTDBGSYMCACHEADDCFG const *PCRTDBGSYMCACHEADDCFG; + + +/******************************************************************************* +* Global Variables * +*******************************************************************************/ +/** Bundle suffixes. */ +static const char * const g_apszBundleSuffixes[] = +{ + ".kext", + ".app", + ".framework", /** @todo framework is different. */ + ".component", + ".action", + ".caction", + ".bundle", + ".sourcebundle", + ".plugin", + ".ppp", + ".menu", + ".monitorpanel", + ".scripting", + ".prefPane", + ".qlgenerator", + ".brailledriver", + ".saver", + ".SpeechVoice", + ".SpeechRecognizer", + ".SpeechSynthesizer", + ".mdimporter", + ".spreporter", + ".xpc", + NULL +}; + +/** Debug bundle suffixes. (Same as above + .dSYM) */ +static const char * const g_apszDSymBundleSuffixes[] = +{ + ".kext.dSYM", + ".app.dSYM", + ".framework.dSYM", + ".component.dSYM", + ".action.dSYM", + ".caction.dSYM", + ".bundle.dSYM", + ".sourcebundle.dSYM", + ".menu.dSYM", + ".plugin.dSYM", + ".ppp.dSYM", + ".monitorpanel.dSYM", + ".scripting.dSYM", + ".prefPane.dSYM", + ".qlgenerator.dSYM", + ".brailledriver.dSYM", + ".saver.dSYM", + ".SpeechVoice.dSYM", + ".SpeechRecognizer.dSYM", + ".SpeechSynthesizer.dSYM", + ".mdimporter.dSYM", + ".spreporter.dSYM", + ".xpc.dSYM", + ".dSYM", + NULL +}; + + + +/** + * Display the version of the cache program. + * + * @returns exit code. + */ +static RTEXITCODE rtDbgSymCacheVersion(void) +{ + RTPrintf("%sr%d\n", RTBldCfgVersion(), RTBldCfgRevision()); + return RTEXITCODE_SUCCESS; +} + + +/** + * Shows the usage of the cache program. + * + * @returns Exit code. + * @param pszArg0 Program name. + * @param pszCommand Command selector, NULL if all. + */ +static RTEXITCODE rtDbgSymCacheUsage(const char *pszArg0, const char *pszCommand) +{ + if (!pszCommand || !strcmp(pszCommand, "add")) + RTPrintf("Usage: %s add [-rn] [fileN..]\n", pszArg0); + return RTEXITCODE_SUCCESS; +} + + +/** + * Creates a UUID mapping for the file. + * + * @returns IPRT status code. + * @param pszCacheFile The path to the file in the cache. + * @param pFileUuid The UUID of the file. + * @param pszUuidMapDir The UUID map subdirectory in the cache, if this is + * wanted, otherwise NULL. + * @param pCfg The configuration. + */ +static int rtDbgSymCacheAddCreateUuidMapping(const char *pszCacheFile, PRTUUID pFileUuid, + const char *pszUuidMapDir, PCRTDBGSYMCACHEADDCFG pCfg) +{ + /* + * Create the UUID map entry first, deep. + */ + char szMapPath[RTPATH_MAX]; + int rc = RTPathJoin(szMapPath, sizeof(szMapPath) - sizeof("/xxxx/yyyy/xxxx/yyyy/xxxx/zzzzzzzzzzzz") + 1, + pCfg->pszCache, pszUuidMapDir); + if (RT_FAILURE(rc)) + return RTMsgErrorRc(rc, "Error constructing UUID map path (RTPathJoin): %Rrc", rc); + + size_t cch = strlen(szMapPath); + szMapPath[cch] = '-'; + + rc = RTUuidToStr(pFileUuid, &szMapPath[cch + 2], sizeof(szMapPath) - cch); + if (RT_FAILURE(rc)) + return RTMsgErrorRc(rc, "Error constructing UUID map path (RTUuidToStr): %Rrc", rc); + + /* Uppercase the whole lot. */ + RTStrToUpper(&szMapPath[cch + 2]); + + /* Split the first dword in two. */ + szMapPath[cch + 1] = szMapPath[cch + 2]; + szMapPath[cch + 2] = szMapPath[cch + 3]; + szMapPath[cch + 3] = szMapPath[cch + 4]; + szMapPath[cch + 4] = szMapPath[cch + 5]; + szMapPath[cch + 5] = '-'; + + /* + * Create the directories in the path. + */ + char chSaved = RTPATH_SLASH; + for (unsigned i = 0; i < 6; i++, cch += 5) + { + Assert(szMapPath[cch] == '-'); + szMapPath[cch] = '\0'; + if (!RTDirExists(szMapPath)) + { + rc = RTDirCreate(szMapPath, 0755, 0/*fFlags*/); + if (RT_FAILURE(rc)) + return RTMsgErrorRc(rc, "RTDirCreate failed on '%s' (UUID map path): %Rrc", szMapPath, rc); + } + szMapPath[cch] = RTPATH_SLASH; + } + cch -= 5; + + /* + * Calculate a relative path from there to the actual file. + */ + char szLinkTarget[RTPATH_MAX]; + //szMapPath[cch] = '\0'; + rc = RTPathCalcRelative(szLinkTarget, sizeof(szLinkTarget), szMapPath, pszCacheFile); + //szMapPath[cch] = RTPATH_SLASH; + if (RT_FAILURE(rc)) + return RTMsgErrorRc(rc, "Failed to calculate relative path from '%s' to '%s': %Rrc", szMapPath, pszCacheFile, rc); + + /* + * If there is already a link there, check if it matches or whether + * perhaps it's target doesn't exist. + */ + RTFSOBJINFO ObjInfo; + rc = RTPathQueryInfoEx(szMapPath, &ObjInfo, RTFSOBJATTRADD_NOTHING, RTPATH_F_ON_LINK); + if (RT_SUCCESS(rc)) + { + if (RTFS_IS_SYMLINK(ObjInfo.Attr.fMode)) + { + rc = RTPathQueryInfoEx(szMapPath, &ObjInfo, RTFSOBJATTRADD_NOTHING, RTPATH_F_FOLLOW_LINK); + if (RT_SUCCESS(rc)) + { + char *pszCurTarget = NULL; + rc = RTSymlinkReadA(szMapPath, &pszCurTarget); + if (RT_FAILURE(rc)) + return RTMsgErrorRc(rc, "UUID map: failed to read existing symlink '%s': %Rrc", szMapPath, rc); + if (RTPathCompare(pszCurTarget, szLinkTarget) == 0) + RTMsgInfo("UUID map: existing link '%s' has the same target ('%s').", szMapPath, pszCurTarget); + else + { + RTMsgError("UUID map: Existing mapping '%s' pointing to '%s' insted of '%s'", + szMapPath, pszCurTarget, szLinkTarget); + rc = VERR_ALREADY_EXISTS; + } + RTStrFree(pszCurTarget); + return rc; + } + else + RTMsgInfo("UUID map: replacing dangling link '%s'", szMapPath); + RTSymlinkDelete(szMapPath, 0 /*fFlags*/); + } + else if (RTFS_IS_FILE(ObjInfo.Attr.fMode)) + return RTMsgErrorRc(VERR_IS_A_FILE, + "UUID map: found file at '%s', expect symbolic link or nothing.", szMapPath); + else if (RTFS_IS_DIRECTORY(ObjInfo.Attr.fMode)) + return RTMsgErrorRc(VERR_IS_A_DIRECTORY, + "UUID map: found directory at '%s', expect symbolic link or nothing.", szMapPath); + else + return RTMsgErrorRc(VERR_NOT_SYMLINK, + "UUID map: Expected symbolic link or nothing at '%s', found: fMode=%#x", + szMapPath, ObjInfo.Attr.fMode); + } + + /* + * Create the symbolic link. + */ + rc = RTSymlinkCreate(szMapPath, szLinkTarget, RTSYMLINKTYPE_FILE, 0); + if (RT_FAILURE(rc)) + return RTMsgErrorRc(rc, "Failed to create UUID map symlink '%s' to '%s': %Rrc", szMapPath, szLinkTarget, rc); + RTMsgInfo("UUID map: %s => %s", szMapPath, szLinkTarget); + return VINF_SUCCESS; +} + + +/** + * Adds a file to the cache. + * + * @returns IPRT status code. + * @param pszSrcPath Path to the source file. + * @param pszDstName The name of the destionation file (no path stuff). + * @param pszExtraSuff Optional extra suffix. Mach-O dSYM hack. + * @param pszDstSubDir The subdirectory to file it under. This is the + * stringification of a relatively unique identifier of + * the file in question. + * @param pAddToUuidMap Optional file UUID that is used to create a UUID map + * entry. + * @param pszUuidMapDir The UUID map subdirectory in the cache, if this is + * wanted, otherwise NULL. + * @param pCfg The configuration. + */ +static int rtDbgSymCacheAddOneFile(const char *pszSrcPath, const char *pszDstName, const char *pszExtraStuff, + const char *pszDstSubDir, PRTUUID pAddToUuidMap, const char *pszUuidMapDir, + PCRTDBGSYMCACHEADDCFG pCfg) +{ + /* + * Build and create the destination path, step by step. + */ + char szDstPath[RTPATH_MAX]; + int rc = RTPathJoin(szDstPath, sizeof(szDstPath), pCfg->pszCache, pszDstName); + if (RT_FAILURE(rc)) + return RTMsgErrorRc(rc, "Error constructing cache path for '%s': %Rrc", pszSrcPath, rc); + + if (!RTDirExists(szDstPath)) + { + rc = RTDirCreate(szDstPath, 0755, 0 /*fFlags*/); + if (RT_FAILURE(rc)) + return RTMsgErrorRc(rc, "Error creating '%s': %Rrc", szDstPath, rc); + } + + rc = RTPathAppend(szDstPath, sizeof(szDstPath), pszDstSubDir); + if (RT_FAILURE(rc)) + return RTMsgErrorRc(rc, "Error constructing cache path for '%s': %Rrc", pszSrcPath, rc); + + if (!RTDirExists(szDstPath)) + { + rc = RTDirCreate(szDstPath, 0755, 0 /*fFlags*/); + if (RT_FAILURE(rc)) + return RTMsgErrorRc(rc, "Error creating '%s': %Rrc", szDstPath, rc); + } + + rc = RTPathAppend(szDstPath, sizeof(szDstPath), pszDstName); + if (RT_FAILURE(rc)) + return RTMsgErrorRc(rc, "Error constructing cache path for '%s': %Rrc", pszSrcPath, rc); + if (pszExtraStuff) + { + rc = RTStrCat(szDstPath, sizeof(szDstPath), pszExtraStuff); + if (RT_FAILURE(rc)) + return RTMsgErrorRc(rc, "Error constructing cache path for '%s': %Rrc", pszSrcPath, rc); + } + + /* + * If the file exists, we compare the two and throws an error if the doesn't match. + */ + if (RTPathExists(szDstPath)) + { + rc = RTFileCompare(pszSrcPath, szDstPath); + if (RT_SUCCESS(rc)) + { + RTMsgInfo("%s is already in the cache.", pszSrcPath); + if (pAddToUuidMap && pszUuidMapDir) + return rtDbgSymCacheAddCreateUuidMapping(szDstPath, pAddToUuidMap, pszUuidMapDir, pCfg); + return VINF_SUCCESS; + } + if (rc == VERR_NOT_EQUAL) + RTMsgInfo("Cache conflict with existing entry '%s' when inserting '%s'.", szDstPath, pszSrcPath); + else + RTMsgInfo("Error comparing '%s' with '%s': %Rrc", pszSrcPath, szDstPath, rc); + return rc; + } + + /* + * The file doesn't exist or we should overwrite it, + */ + RTMsgInfo("Copying '%s' to '%s'...", pszSrcPath, szDstPath); + rc = RTFileCopy(pszSrcPath, szDstPath); + if (RT_FAILURE(rc)) + return RTMsgErrorRc(rc, "Error copying '%s' to '%s': %Rrc", pszSrcPath, szDstPath, rc); + if (pAddToUuidMap && pszUuidMapDir) + return rtDbgSymCacheAddCreateUuidMapping(szDstPath, pAddToUuidMap, pszUuidMapDir, pCfg); + return VINF_SUCCESS; +} + + +/** + * Worker that add the image file to the right place. + * + * @returns IPRT status code. + * @param pszPath Path to the image file. + * @param pCfg Configuration data. + * @param hLdrMod Image handle. + * @param pszExtraSuff Optional extra suffix. Mach-O dSYM hack. + * @param pszUuidMapDir Optional UUID map cache directory if the image + * should be mapped by UUID. + * The map is a Mac OS X debug feature supported by + * the two native debuggers gdb and lldb. Look for + * descriptions of DBGFileMappedPaths in the + * com.apple.DebugSymbols in the user defaults. + */ +static int rtDbgSymCacheAddImageFileWorker(const char *pszPath, PCRTDBGSYMCACHEADDCFG pCfg, RTLDRMOD hLdrMod, + const char *pszExtrSuff, const char *pszUuidMapDir) +{ + /* + * Determine which subdirectory to put the files in. + */ + RTUUID Uuid; + PRTUUID pUuid = NULL; + int rc; + char szSubDir[48]; + RTLDRFMT enmFmt = RTLdrGetFormat(hLdrMod); + switch (enmFmt) + { + case RTLDRFMT_MACHO: + { + rc = RTLdrQueryProp(hLdrMod, RTLDRPROP_UUID, &Uuid, sizeof(Uuid)); + if (RT_FAILURE(rc)) + return RTMsgErrorRc(rc, "Error quering image UUID from image '%s': %Rrc", pszPath, rc); + + rc = RTUuidToStr(&Uuid, szSubDir, sizeof(szSubDir)); + if (RT_FAILURE(rc)) + return RTMsgErrorRc(rc, "Error convering UUID for image '%s' to string: %Rrc", pszPath, rc); + pUuid = &Uuid; + break; + } + + case RTLDRFMT_PE: + { + uint32_t uTimestamp; + rc = RTLdrQueryProp(hLdrMod, RTLDRPROP_TIMESTAMP_SECONDS, &uTimestamp, sizeof(uTimestamp)); + if (RT_FAILURE(rc)) + return RTMsgErrorRc(rc, "Error quering timestamp from image '%s': %Rrc", pszPath, rc); + + size_t cbImage = RTLdrSize(hLdrMod); + if (cbImage == ~(size_t)0) + return RTMsgErrorRc(rc, "Error quering size of image '%s': %Rrc", pszPath, rc); + + RTStrPrintf(szSubDir, sizeof(szSubDir), "%08X%x", uTimestamp, cbImage); + break; + } + + case RTLDRFMT_AOUT: + return RTMsgErrorRc(VERR_NOT_SUPPORTED, "Caching of a.out image has not yet been implemented: %s", pszPath); + case RTLDRFMT_ELF: + return RTMsgErrorRc(VERR_NOT_SUPPORTED, "Caching of ELF image has not yet been implemented: %s", pszPath); + case RTLDRFMT_LX: + return RTMsgErrorRc(VERR_NOT_SUPPORTED, "Caching of LX image has not yet been implemented: %s", pszPath); + default: + return RTMsgErrorRc(VERR_NOT_SUPPORTED, "Unknown loader format for '%s': %d", pszPath, enmFmt); + } + + /* + * Now add it. + */ + return rtDbgSymCacheAddOneFile(pszPath, RTPathFilename(pszPath), pszExtrSuff, + szSubDir, pUuid, pszUuidMapDir, pCfg); +} + + +/** + * Adds what we think is an image file to the cache. + * + * @returns IPRT status code. + * @param pszPath Path to the image file. + * @param pszExtraSuff Optional extra suffix. Mach-O dSYM hack. + * @param pszUuidMapDir The UUID map subdirectory in the cache, if this is + * wanted, otherwise NULL. + * @param pCfg Configuration data. + */ +static int rtDbgSymCacheAddImageFile(const char *pszPath, const char *pszExtraSuff, const char *pszUuidMapDir, + PCRTDBGSYMCACHEADDCFG pCfg) +{ + /* + * Use the loader to open the alleged image file. We need to open it with + * arch set to amd64 and x86_32 in order to handle FAT images from the mac + * guys (we should actually enumerate archs, but that's currently not + * implemented nor necessary for our current use). + */ + /* Open it as AMD64. */ + RTLDRMOD hLdrMod64; + int rc = RTLdrOpen(pszPath, RTLDR_O_FOR_DEBUG, RTLDRARCH_AMD64, &hLdrMod64); + if (RT_FAILURE(rc)) + { + if (rc != VERR_LDR_ARCH_MISMATCH) + { + if (rc != VERR_INVALID_EXE_SIGNATURE) + return RTMsgErrorRc(rc, "RTLdrOpen failed opening '%s' [arch=amd64]: %Rrc", pszPath, rc); + RTMsgInfo("Skipping '%s', no a recognizable image file...", pszPath); + return VINF_SUCCESS; + } + hLdrMod64 = NIL_RTLDRMOD; + } + + /* Open it as X86. */ + RTLDRMOD hLdrMod32; + rc = RTLdrOpen(pszPath, RTLDR_O_FOR_DEBUG, RTLDRARCH_X86_32, &hLdrMod32); + if (RT_FAILURE(rc)) + { + if (rc != VERR_LDR_ARCH_MISMATCH) + { + RTLdrClose(hLdrMod32); + return RTMsgErrorRc(rc, "RTLdrOpen failed opening '%s' [arch=x86]: %Rrc", pszPath, rc); + } + hLdrMod32 = NIL_RTLDRMOD; + } + + /* + * Add the file. + */ + if (hLdrMod32 == NIL_RTLDRMOD) + rc = rtDbgSymCacheAddImageFileWorker(pszPath, pCfg, hLdrMod64, pszExtraSuff, pszUuidMapDir); + else if (hLdrMod64 == NIL_RTLDRMOD) + rc = rtDbgSymCacheAddImageFileWorker(pszPath, pCfg, hLdrMod32, pszExtraSuff, pszUuidMapDir); + else + { + /* + * Do we need to add it once or twice? + */ + RTLDRFMT enmFmt = RTLdrGetFormat(hLdrMod32); + bool fSame = enmFmt == RTLdrGetFormat(hLdrMod64); + if (fSame && enmFmt == RTLDRFMT_MACHO) + { + RTUUID Uuid32, Uuid64; + int rc32 = RTLdrQueryProp(hLdrMod32, RTLDRPROP_UUID, &Uuid32, sizeof(Uuid32)); + int rc64 = RTLdrQueryProp(hLdrMod64, RTLDRPROP_UUID, &Uuid64, sizeof(Uuid64)); + fSame = RT_SUCCESS(rc32) == RT_SUCCESS(rc64); + if (fSame && RT_SUCCESS(rc32)) + fSame = RTUuidCompare(&Uuid32, &Uuid64) == 0; + } + else if (fSame && enmFmt == RTLDRFMT_PE) + { + fSame = RTLdrSize(hLdrMod32) == RTLdrSize(hLdrMod64); + if (fSame) + { + uint32_t uTimestamp32, uTimestamp64; + int rc32 = RTLdrQueryProp(hLdrMod32, RTLDRPROP_TIMESTAMP_SECONDS, &uTimestamp32, sizeof(uTimestamp32)); + int rc64 = RTLdrQueryProp(hLdrMod64, RTLDRPROP_TIMESTAMP_SECONDS, &uTimestamp64, sizeof(uTimestamp64)); + fSame = RT_SUCCESS(rc32) == RT_SUCCESS(rc64); + if (fSame && RT_SUCCESS(rc32)) + fSame = uTimestamp32 == uTimestamp64; + } + } + + rc = rtDbgSymCacheAddImageFileWorker(pszPath, pCfg, hLdrMod64, pszExtraSuff, pszUuidMapDir); + if (!fSame) + { + /** @todo should symlink or hardlink this second copy. */ + int rc2 = rtDbgSymCacheAddImageFileWorker(pszPath, pCfg, hLdrMod32, pszExtraSuff, pszUuidMapDir); + if (RT_FAILURE(rc2) && RT_SUCCESS(rc)) + rc = rc2; + } + } + + RTLdrClose(hLdrMod32); + RTLdrClose(hLdrMod64); + return VINF_SUCCESS; +} + + +/** + * Worker for rtDbgSymCacheAddDebugFile that adds a Mach-O debug file to the + * cache. + * + * @returns IPRT status code + * @param pszPath The path to the PDB file. + * @param pCfg The configuration. + * @param hFile Handle to the file. + */ +static int rtDbgSymCacheAddDebugMachO(const char *pszPath, PCRTDBGSYMCACHEADDCFG pCfg) +{ + /* This shouldn't happen, figure out what to do if it does. */ + return RTMsgErrorRc(VERR_NOT_IMPLEMENTED, + "'%s' is an OS X image file, did you point me to a file inside a .dSYM or .sym file?", + pszPath); +} + + +/** + * Worker for rtDbgSymCacheAddDebugFile that adds PDBs to the cace. + * + * @returns IPRT status code + * @param pszPath The path to the PDB file. + * @param pCfg The configuration. + * @param hFile Handle to the file. + */ +static int rtDbgSymCacheAddDebugPdb(const char *pszPath, PCRTDBGSYMCACHEADDCFG pCfg, RTFILE hFile) +{ + return RTMsgErrorRc(VERR_NOT_IMPLEMENTED, "PDB support not implemented: '%s'"); +} + + +/** + * Adds a debug file to the cache. + * + * @returns IPRT status code + * @param pszPath The path to the debug file in question. + * @param pCfg The configuration. + */ +static int rtDbgSymCacheAddDebugFile(const char *pszPath, PCRTDBGSYMCACHEADDCFG pCfg) +{ + /* + * Need to extract an identifier of sorts here in order to put them in + * the right place in the cache. Currently only implemnted for Mach-O + * files since these use executable containers. + * + * We take a look at the file header in hope to figure out what to do + * with the file. + */ + RTFILE hFile; + int rc = RTFileOpen(&hFile, pszPath, RTFILE_O_READ | RTFILE_O_OPEN | RTFILE_O_DENY_WRITE); + if (RT_FAILURE(rc)) + return RTMsgErrorRc(rc, "Error opening '%s': %Rrc", pszPath, rc); + + union + { + uint64_t au64[16]; + uint32_t au32[16]; + uint16_t au16[32]; + uint8_t ab[64]; + } uBuf; + rc = RTFileRead(hFile, &uBuf, sizeof(uBuf), NULL); + if (RT_SUCCESS(rc)) + { + /* + * Look for magics and call workers. + */ + if (!memcmp(uBuf.ab, RT_STR_TUPLE("Microsoft C/C++ MSF 7.00"))) + rc = rtDbgSymCacheAddDebugPdb(pszPath, pCfg, hFile); + else if ( uBuf.au32[0] == IMAGE_FAT_SIGNATURE + || uBuf.au32[0] == IMAGE_FAT_SIGNATURE_OE + || uBuf.au32[0] == IMAGE_MACHO32_SIGNATURE + || uBuf.au32[0] == IMAGE_MACHO64_SIGNATURE + || uBuf.au32[0] == IMAGE_MACHO32_SIGNATURE_OE + || uBuf.au32[0] == IMAGE_MACHO64_SIGNATURE_OE) + rc = rtDbgSymCacheAddDebugMachO(pszPath, pCfg); + else + rc = RTMsgErrorRc(VERR_INVALID_MAGIC, "Unsupported debug file '%s' magic: %#010x", pszPath, uBuf.au32[0]); + } + else + rc = RTMsgErrorRc(rc, "Error reading '%s': %Rrc", pszPath, rc); + + /* close the file. */ + int rc2 = RTFileClose(hFile); + if (RT_FAILURE(rc2)) + { + RTMsgError("Error closing '%s': %Rrc", pszPath, rc2); + if (RT_SUCCESS(rc)) + rc = rc2; + } + return rc; +} + + +/** + * Constructs the path to the file instide the bundle that we're keen on. + * + * @returns IPRT status code. + * @param pszPath Path to the bundle on input, on successful + * return it's the path to the desired file. This + * a RTPATH_MAX size buffer. + * @param cchPath The length of the path up to the bundle name. + * @param cchName The length of the bundle name. + * @param pszSubDir The bundle subdirectory the file lives in. + * @param papszSuffixes Pointer to an array of bundle suffixes. + */ +static int rtDbgSymCacheConstructBundlePath(char *pszPath, size_t cchPath, size_t cchName, const char *pszSubDir, + const char * const *papszSuffixes) +{ + int rc = RTPathAppend(pszPath, RTPATH_MAX, pszSubDir); + if (RT_SUCCESS(rc)) + { + /* Strip off the bundle suffix. */ + const char *pszEnd = &pszPath[cchPath + cchName]; + for (unsigned i = 0; papszSuffixes[i]; i++) + { + Assert(papszSuffixes[i][0] == '.'); + size_t cchSuff = strlen(papszSuffixes[i]); + if ( cchSuff < cchName + && !memcmp(&pszEnd[-(ssize_t)cchSuff], papszSuffixes[i], cchSuff)) + { + cchName -= cchSuff; + break; + } + } + + /* Add the name. */ + rc = RTPathAppendEx(pszPath, RTPATH_MAX, &pszPath[cchPath], cchName); + } + if (RT_FAILURE(rc)) + { + pszPath[cchPath + cchName] = '\0'; + return RTMsgErrorRc(rc, "Error constructing image bundle path for '%s': %Rrc", pszPath, rc); + } + return VINF_SUCCESS; +} + + +/** + * Adds a image bundle of some sort. + * + * @returns IPRT status code. + * @param pszPath Path to the bundle. This a RTPATH_MAX size + * buffer that we can write to when creating the + * path to the file inside the bundle that we're + * interested in. + * @param cchPath The length of the path up to the bundle name. + * @param cchName The length of the bundle name. + * @param pCfg The configuration. + */ +static int rtDbgSymCacheAddImageBundle(char *pszPath, size_t cchPath, size_t cchName, PCRTDBGSYMCACHEADDCFG pCfg) +{ + /* Assuming these are kexts or simple applications, we only add the image + file itself to the cache. No Info.plist or other files. */ + /** @todo consider looking for Frameworks and handling framework bundles. */ + int rc = rtDbgSymCacheConstructBundlePath(pszPath, cchPath, cchName, "Contents/MacOS/", g_apszBundleSuffixes); + if (RT_SUCCESS(rc)) + rc = rtDbgSymCacheAddImageFile(pszPath, NULL, "image-uuids", pCfg); + return rc; +} + + +/** + * Adds a debug bundle. + * + * @returns IPRT status code. + * @param pszPath Path to the bundle. This a RTPATH_MAX size + * buffer that we can write to when creating the + * path to the file inside the bundle that we're + * interested in. + * @param cchPath The length of the path up to the bundle name. + * @param cchName The length of the bundle name. + * @param pCfg The configuration. + */ +static int rtDbgSymCacheAddDebugBundle(char *pszPath, size_t cchPath, size_t cchName, PCRTDBGSYMCACHEADDCFG pCfg) +{ + /* + * The current policy is not to add the whole .dSYM (or .sym) bundle, but + * rather just the dwarf image instide it. The .plist and Info.plist + * files generally doesn't contain much extra information that's really + * necessary, I hope. At least this is what the uuidmap example in the + * lldb hints at (it links to the dwarf file, not the .dSYM dir). + * + * To avoid confusion with a .dSYM bundle, as well as collision with the + * image file, we use .dwarf suffix for the file. + * + * For details on the uuid map see rtDbgSymCacheAddImageFile as well as + * http://lldb.llvm.org/symbols.html . + * + * ASSUMES bundles contains Mach-O DWARF files. + */ + int rc = rtDbgSymCacheConstructBundlePath(pszPath, cchPath, cchName, "Contents/Resources/DWARF/", g_apszDSymBundleSuffixes); + if (RT_SUCCESS(rc)) + rc = rtDbgSymCacheAddImageFile(pszPath, ".dwarf", "dsym-uuids", pCfg); + return rc; +} + + +/** + * Figure the type of a file/dir based on path and FS object info. + * + * @returns The type. + * @param pszPath The path to the file/dir. + * @param pObjInfo The object information, symlinks followed. + */ +static RTDBGSYMCACHEFILETYPE rtDbgSymCacheFigureType2(const char *pszPath, PCRTFSOBJINFO pObjInfo) +{ + const char *pszName = RTPathFilename(pszPath); + const char *pszExt = RTPathSuffix(pszName); + if (pszExt) + pszExt++; + else + pszExt = ""; + + if ( RTFS_IS_DIRECTORY(pObjInfo->Attr.fMode) + || (pObjInfo->Attr.fMode & RTFS_DOS_DIRECTORY)) /** @todo OS X samba reports reparse points in /Volumes/ that we cannot resolve. */ + { + /* Skip directories shouldn't bother with. */ + if ( !RTStrICmp(pszName, ".Trashes") + || !RTStrICmp(pszName, ".$RESCYCLE.BIN") + || !RTStrICmp(pszName, "System.kext") /* Usually only plugins here, so skip it. */ + ) + return RTDBGSYMCACHEFILETYPE_IGNORE; + + /* Directories can also be bundles on the mac. */ + if (!RTStrICmp(pszExt, "dSYM")) + return RTDBGSYMCACHEFILETYPE_DEBUG_BUNDLE; + + for (unsigned i = 0; i < RT_ELEMENTS(g_apszBundleSuffixes) - 1; i++) + if (!RTStrICmp(pszExt, &g_apszBundleSuffixes[i][1])) + return RTDBGSYMCACHEFILETYPE_IMAGE_BUNDLE; + + return RTDBGSYMCACHEFILETYPE_DIR; + } + + if (!RTFS_IS_FILE(pObjInfo->Attr.fMode)) + return RTDBGSYMCACHEFILETYPE_INVALID; + + /* Select image vs debug info based on extension. */ + if ( !RTStrICmp(pszExt, "pdb") + || !RTStrICmp(pszExt, "dbg") + || !RTStrICmp(pszExt, "sym") + || !RTStrICmp(pszExt, "dwo") + || !RTStrICmp(pszExt, "dwp") + || !RTStrICmp(pszExt, "debug") + || !RTStrICmp(pszExt, "dsym") + || !RTStrICmp(pszExt, "dwarf") + || !RTStrICmp(pszExt, "map") + || !RTStrICmp(pszExt, "cv")) + return RTDBGSYMCACHEFILETYPE_DEBUG_FILE; + + /* Filter out a bunch of files which obviously shouldn't be images. */ + if ( !RTStrICmp(pszExt, "txt") + || !RTStrICmp(pszExt, "html") + || !RTStrICmp(pszExt, "htm") + || !RTStrICmp(pszExt, "rtf") + || !RTStrICmp(pszExt, "zip") + || !RTStrICmp(pszExt, "doc") + || !RTStrICmp(pszExt, "gz") + || !RTStrICmp(pszExt, "bz2") + || !RTStrICmp(pszExt, "xz") + || !RTStrICmp(pszExt, "kmk") + || !RTStrICmp(pszExt, "c") + || !RTStrICmp(pszExt, "cpp") + || !RTStrICmp(pszExt, "h") + || !RTStrICmp(pszExt, "m") + || !RTStrICmp(pszExt, "mm") + || !RTStrICmp(pszExt, "asm") + || !RTStrICmp(pszExt, "S") + || !RTStrICmp(pszExt, "inc") + || !RTStrICmp(pszExt, "sh") + ) + return RTDBGSYMCACHEFILETYPE_IGNORE; + if ( !RTStrICmp(pszName, "Makefile") + || !RTStrICmp(pszName, "GNUmakefile") + || !RTStrICmp(pszName, "createsymbolfiles") + || !RTStrICmp(pszName, "kgmacros") + ) + return RTDBGSYMCACHEFILETYPE_IGNORE; + + return RTDBGSYMCACHEFILETYPE_IMAGE_FILE; +} + + +/** + * Figure file type based on name, will stat the file/dir. + * + * @returns File type. + * @param pszPath The path to the file/dir to figure. + */ +static RTDBGSYMCACHEFILETYPE rtDbgSymCacheFigureType(const char *pszPath) +{ + const char *pszName = RTPathFilename(pszPath); + + /* Trailing slash. */ + if (!pszName) + return RTDBGSYMCACHEFILETYPE_DIR; + + /* Wildcard means listing directory and filtering. */ + if (strpbrk(pszName, "?*")) + return RTDBGSYMCACHEFILETYPE_DIR_FILTER; + + /* Get object info, following links. */ + RTFSOBJINFO ObjInfo; + int rc = RTPathQueryInfoEx(pszPath, &ObjInfo, RTFSOBJATTRADD_NOTHING, RTPATH_F_FOLLOW_LINK); + if (RT_FAILURE(rc)) + return RTDBGSYMCACHEFILETYPE_INVALID; + return rtDbgSymCacheFigureType2(pszPath, &ObjInfo); +} + + +/** + * Recursive worker for rtDbgSymCacheAddDir, for minimal stack wasting. + * + * @returns IPRT status code (fully bitched). + * @param pszPath Pointer to a RTPATH_MAX size buffer containing + * the path to the current directory ending with a + * slash. + * @param cchPath The size of the current directory path. + * @param pDirEntry Pointer to the RTDIRENTRYEX structure to use. + * @param pCfg The configuration. + */ +static int rtDbgSymCacheAddDirWorker(char *pszPath, size_t cchPath, PRTDIRENTRYEX pDirEntry, PCRTDBGSYMCACHEADDCFG pCfg) +{ + /* + * Open the directory. + */ + PRTDIR pDir; + int rc, rc2; + if (pCfg->pszFilter) + { + rc = RTStrCopy(&pszPath[cchPath], RTPATH_MAX - cchPath, pCfg->pszFilter); + if (RT_FAILURE(rc)) + { + pszPath[cchPath] = '\0'; + return RTMsgErrorRc(rc, "Filename too long (%Rrc): '%s" RTPATH_SLASH_STR "%s'", rc, pszPath, pCfg->pszFilter); + } + rc = RTDirOpenFiltered(&pDir, pszPath, RTDIRFILTER_WINNT, 0 /*fFlags*/); + } + else + rc = RTDirOpen(&pDir, pszPath); + if (RT_FAILURE(rc)) + return RTMsgErrorRc(rc, "RTDirOpen%s failed on '%s': %Rrc", pCfg->pszFilter ? "Filtered" : "", pszPath, rc); + + /* + * Enumerate the files. + */ + for (;;) + { + rc2 = RTDirReadEx(pDir, pDirEntry, NULL, RTFSOBJATTRADD_NOTHING, RTPATH_F_FOLLOW_LINK); + if (RT_FAILURE(rc2)) + { + pszPath[cchPath] = '\0'; + if (rc2 != VERR_NO_MORE_FILES) + { + RTMsgError("RTDirReadEx failed in '%s': %Rrc\n", pszPath, rc2); + rc = rc2; + } + break; + } + + /* Skip dot and dot-dot. */ + if (RTDirEntryExIsStdDotLink(pDirEntry)) + continue; + + /* Construct a full path. */ + rc = RTStrCopy(&pszPath[cchPath], RTPATH_MAX, pDirEntry->szName); + if (RT_FAILURE(rc)) + { + pszPath[cchPath] = '\0'; + RTMsgError("File name too long in '%s': '%s' (%Rrc)", pszPath, pDirEntry->szName, rc); + break; + } + + switch (rtDbgSymCacheFigureType2(pszPath, &pDirEntry->Info)) + { + case RTDBGSYMCACHEFILETYPE_DIR: + if (!pCfg->fRecursive) + RTMsgInfo("Skipping directory '%s'...", pszPath); + else + { + if (cchPath + pDirEntry->cbName + 3 <= RTPATH_MAX) + { + pszPath[cchPath + pDirEntry->cbName] = RTPATH_SLASH; + pszPath[cchPath + pDirEntry->cbName + 1] = '\0'; + rc2 = rtDbgSymCacheAddDirWorker(pszPath, cchPath + pDirEntry->cbName + 1, pDirEntry, pCfg); + } + else + { + RTMsgError("File name too long in '%s': '%s' (%Rrc)", pszPath, pDirEntry->szName, rc); + rc2 = VERR_FILENAME_TOO_LONG; + } + } + break; + + case RTDBGSYMCACHEFILETYPE_DEBUG_FILE: + rc2 = rtDbgSymCacheAddDebugFile(pszPath, pCfg); + break; + + case RTDBGSYMCACHEFILETYPE_IMAGE_FILE: + rc2 = rtDbgSymCacheAddImageFile(pszPath, NULL /*pszExtraSuff*/, "image-uuids", pCfg); + break; + + case RTDBGSYMCACHEFILETYPE_DEBUG_BUNDLE: + rc2 = rtDbgSymCacheAddDebugBundle(pszPath, cchPath, pDirEntry->cbName, pCfg); + break; + + case RTDBGSYMCACHEFILETYPE_IMAGE_BUNDLE: + rc2 = rtDbgSymCacheAddImageBundle(pszPath, cchPath, pDirEntry->cbName, pCfg); + break; + + case RTDBGSYMCACHEFILETYPE_DIR_FILTER: + case RTDBGSYMCACHEFILETYPE_INVALID: + rc2 = RTMsgErrorRc(VERR_INTERNAL_ERROR_2, "Invalid: '%s'", pszPath); + break; + + case RTDBGSYMCACHEFILETYPE_IGNORE: + rc2 = VINF_SUCCESS; + break; + } + + if (RT_FAILURE(rc2) && RT_SUCCESS(rc)) + rc = rc2; + } + + /* + * Clean up. + */ + rc2 = RTDirClose(pDir); + if (RT_FAILURE(rc2)) + { + RTMsgError("RTDirClose failed in '%s': %Rrc", pszPath, rc); + rc = rc2; + } + return rc; +} + + +/** + * Adds a directory. + * + * @returns IPRT status code (fully bitched). + * @param pszPath The directory path. + * @param pCfg The configuration. + */ +static int rtDbgSymCacheAddDir(const char *pszPath, PCRTDBGSYMCACHEADDCFG pCfg) +{ + /* + * Set up the path buffer, stripping any filter. + */ + char szPath[RTPATH_MAX]; + int rc = RTStrCopy(szPath, sizeof(szPath) - 2, pszPath); + if (RT_FAILURE(rc)) + return RTMsgErrorExit(RTEXITCODE_FAILURE, "Path too long: '%s'", pszPath); + + size_t cchPath = strlen(pszPath); + if (!cchPath) + return RTMsgErrorExit(RTEXITCODE_FAILURE, "Path empty: '%s'", pszPath); + + if (pCfg->pszFilter) + szPath[cchPath - strlen(pCfg->pszFilter)] = '\0'; + cchPath = RTPathStripTrailingSlash(szPath); + if (!RTPATH_IS_SEP(pszPath[cchPath - 1])) + { + szPath[cchPath++] = RTPATH_SLASH; + szPath[cchPath] = '\0'; + } + + /* + * Let the worker do the rest. + */ + RTDIRENTRYEX DirEntry; + return rtDbgSymCacheAddDirWorker(szPath, cchPath, &DirEntry, pCfg); +} + + +/** + * Adds a file or directory. + * + * @returns Program exit code. + * @param pszPath The user supplied path to the file or directory. + * @param pszCache The path to the cache. + * @param fRecursive Whether to process directories recursively. + */ +static RTEXITCODE rtDbgSymCacheAddFileOrDir(const char *pszPath, const char *pszCache, bool fRecursive) +{ + RTDBGSYMCACHEADDCFG Cfg; + Cfg.fRecursive = fRecursive; + Cfg.pszCache = pszCache; + Cfg.pszFilter = NULL; + + int rc; + RTDBGSYMCACHEFILETYPE enmType = rtDbgSymCacheFigureType(pszPath); + switch (enmType) + { + default: + case RTDBGSYMCACHEFILETYPE_INVALID: + return RTMsgErrorExit(RTEXITCODE_FAILURE, "Invalid: '%s'", pszPath); + + case RTDBGSYMCACHEFILETYPE_DIR_FILTER: + Cfg.pszFilter = RTPathFilename(pszPath); + /* fall thru */ + case RTDBGSYMCACHEFILETYPE_DIR: + rc = rtDbgSymCacheAddDir(pszPath, &Cfg); + break; + + case RTDBGSYMCACHEFILETYPE_DEBUG_FILE: + rc = rtDbgSymCacheAddDebugFile(pszPath, &Cfg); + break; + + case RTDBGSYMCACHEFILETYPE_IMAGE_FILE: + rc = rtDbgSymCacheAddImageFile(pszPath, NULL /*pszExtraSuff*/, "image-uuids", &Cfg); + break; + + case RTDBGSYMCACHEFILETYPE_DEBUG_BUNDLE: + case RTDBGSYMCACHEFILETYPE_IMAGE_BUNDLE: + { + size_t cchPath = strlen(pszPath); + size_t cchFilename = strlen(RTPathFilename(pszPath)); + char szPathBuf[RTPATH_MAX]; + if (cchPath < sizeof(szPathBuf)) + { + memcpy(szPathBuf, pszPath, cchPath + 1); + if (enmType == RTDBGSYMCACHEFILETYPE_DEBUG_BUNDLE) + rc = rtDbgSymCacheAddDebugBundle(szPathBuf, cchPath - cchFilename, cchFilename, &Cfg); + else + rc = rtDbgSymCacheAddImageBundle(szPathBuf, cchPath - cchFilename, cchFilename, &Cfg); + } + else + rc = RTMsgErrorRc(VERR_FILENAME_TOO_LONG, "Filename too long: '%s'", pszPath); + break; + } + + case RTDBGSYMCACHEFILETYPE_IGNORE: + rc = RTMsgErrorRc(VERR_INVALID_PARAMETER, "Invalid file: '%s'"); + break; + } + return RT_SUCCESS(rc) ? RTEXITCODE_SUCCESS : RTEXITCODE_FAILURE; +} + + +/** + * Handles the 'add' command. + * + * @returns Program exit code. + * @param pszArg0 The program name. + * @param cArgs The number of arguments to the 'add' command. + * @param papszArgs The argument vector, starting after 'add'. + */ +static RTEXITCODE rtDbgSymCacheCmdAdd(const char *pszArg0, int cArgs, char **papszArgs) +{ + /* + * Parse the command line. + */ + static RTGETOPTDEF const s_aOptions[] = + { + { "--recursive", 'R', RTGETOPT_REQ_NOTHING }, + { "--no-recursive", 'n', RTGETOPT_REQ_NOTHING }, + }; + + const char *pszCache = NULL; + bool fRecursive = false; + + RTGETOPTSTATE State; + int rc = RTGetOptInit(&State, cArgs, papszArgs, &s_aOptions[0], RT_ELEMENTS(s_aOptions), 0, RTGETOPTINIT_FLAGS_OPTS_FIRST); + if (RT_FAILURE(rc)) + return RTMsgErrorExit(RTEXITCODE_FAILURE, "RTGetOptInit failed: %Rrc", rc); + + uint32_t cAdded = 0; + RTGETOPTUNION ValueUnion; + int chOpt; + while ((chOpt = RTGetOpt(&State, &ValueUnion)) != 0) + { + switch (chOpt) + { + case 'R': + fRecursive = true; + break; + + case 'n': + fRecursive = false; + break; + + case VINF_GETOPT_NOT_OPTION: + /* The first non-option is a cache directory. */ + if (!pszCache) + { + pszCache = ValueUnion.psz; + if (!RTPathExists(pszCache)) + { + rc = RTDirCreate(pszCache, 0755, 0 /*fFlags*/); + if (RT_FAILURE(rc)) + return RTMsgErrorExit(RTEXITCODE_SYNTAX, "Error creating cache directory '%s': %Rrc", pszCache, rc); + } + else if (!RTDirExists(pszCache)) + return RTMsgErrorExit(RTEXITCODE_SYNTAX, "Specified cache directory is not a directory: '%s'", pszCache); + } + /* Subsequent non-options are files to be added to the cache. */ + else + { + RTEXITCODE rcExit = rtDbgSymCacheAddFileOrDir(ValueUnion.psz, pszCache, fRecursive); + if (rcExit != RTEXITCODE_FAILURE) + return rcExit; + } + break; + + case 'h': + return rtDbgSymCacheUsage(pszArg0, "add"); + case 'V': + return rtDbgSymCacheVersion(); + default: + return RTGetOptPrintError(chOpt, &ValueUnion); + } + } + + if (!pszCache) + return RTMsgErrorExit(RTEXITCODE_SYNTAX, "No cache directory or files to add were specified."); + return RTEXITCODE_SUCCESS; +} + + +int main(int argc, char **argv) +{ + int rc = RTR3InitExe(argc, &argv, 0); + if (RT_FAILURE(rc)) + return RTMsgInitFailure(rc); + + /* + * Switch on the command. + */ + RTEXITCODE rcExit = RTEXITCODE_SYNTAX; + if (argc < 2) + rtDbgSymCacheUsage(argv[0], NULL); + else if (!strcmp(argv[1], "add")) + rcExit = rtDbgSymCacheCmdAdd(argv[0], argc - 2, argv + 2); + else if ( !strcmp(argv[1], "-h") + || !strcmp(argv[1], "-?") + || !strcmp(argv[1], "--help")) + rcExit = rtDbgSymCacheUsage(argv[0], NULL); + else if ( !strcmp(argv[1], "-V") + || !strcmp(argv[1], "--version")) + rcExit = rtDbgSymCacheVersion(); + else + RTMsgError("Unknown command: '%s'", argv[1]); + + return rcExit; +} + diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Runtime/tools/RTSignTool.cpp virtualbox-4.1.44-dfsg/src/VBox/Runtime/tools/RTSignTool.cpp --- virtualbox-4.1.12-dfsg/src/VBox/Runtime/tools/RTSignTool.cpp 1970-01-01 00:00:00.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Runtime/tools/RTSignTool.cpp 2015-11-11 15:09:15.000000000 +0000 @@ -0,0 +1,945 @@ +/* $Id: RTSignTool.cpp $ */ +/** @file + * IPRT - Signing Tool. + */ + +/* + * Copyright (C) 2006-2014 Oracle Corporation + * + * This file is part of VirtualBox Open Source Edition (OSE), as + * available from http://www.virtualbox.org. This file is free software; + * you can redistribute it and/or modify it under the terms of the GNU + * General Public License (GPL) as published by the Free Software + * Foundation, in version 2 as it comes in the "COPYING" file of the + * VirtualBox OSE distribution. VirtualBox OSE is distributed in the + * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind. + * + * The contents of this file may alternatively be used under the terms + * of the Common Development and Distribution License Version 1.0 + * (CDDL) only, as it comes in the "COPYING.CDDL" file of the + * VirtualBox OSE distribution, in which case the provisions of the + * CDDL are applicable instead of those of the GPL. + * + * You may elect to license modified versions of this file under the + * terms and conditions of either the GPL or the CDDL or both. + */ + + +/******************************************************************************* +* Header Files * +*******************************************************************************/ +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#ifdef VBOX +# include /* Certificates */ +#endif + + +/******************************************************************************* +* Structures and Typedefs * +*******************************************************************************/ +/** Help detail levels. */ +typedef enum RTSIGNTOOLHELP +{ + RTSIGNTOOLHELP_USAGE, + RTSIGNTOOLHELP_FULL +} RTSIGNTOOLHELP; + + +/******************************************************************************* +* Internal Functions * +*******************************************************************************/ +static RTEXITCODE HandleHelp(int cArgs, char **papszArgs); +static RTEXITCODE HelpHelp(PRTSTREAM pStrm, RTSIGNTOOLHELP enmLevel); +static RTEXITCODE HandleVersion(int cArgs, char **papszArgs); + + + + +/* + * The 'extract-exe-signer-cert' command. + */ +static RTEXITCODE HelpExtractExeSignerCert(PRTSTREAM pStrm, RTSIGNTOOLHELP enmLevel) +{ + RTStrmPrintf(pStrm, "extract-exe-signer-cert [--ber|--cer|--der] [--exe|-e] [--output|-o] \n"); + return RTEXITCODE_SUCCESS; +} + +static RTEXITCODE HandleExtractExeSignerCert(int cArgs, char **papszArgs) +{ + /* + * Parse arguments. + */ + static const RTGETOPTDEF s_aOptions[] = + { + { "--ber", 'b', RTGETOPT_REQ_NOTHING }, + { "--cer", 'c', RTGETOPT_REQ_NOTHING }, + { "--der", 'd', RTGETOPT_REQ_NOTHING }, + { "--exe", 'e', RTGETOPT_REQ_STRING }, + { "--output", 'o', RTGETOPT_REQ_STRING }, + }; + + const char *pszExe = NULL; + const char *pszOut = NULL; + RTLDRARCH enmLdrArch = RTLDRARCH_WHATEVER; + uint32_t fCursorFlags = RTASN1CURSOR_FLAGS_DER; + + RTGETOPTSTATE GetState; + int rc = RTGetOptInit(&GetState, cArgs, papszArgs, s_aOptions, RT_ELEMENTS(s_aOptions), 1, RTGETOPTINIT_FLAGS_OPTS_FIRST); + AssertRCReturn(rc, RTEXITCODE_FAILURE); + RTGETOPTUNION ValueUnion; + int ch; + while ((ch = RTGetOpt(&GetState, &ValueUnion))) + { + switch (ch) + { + case 'e': pszExe = ValueUnion.psz; break; + case 'o': pszOut = ValueUnion.psz; break; + case 'b': fCursorFlags = 0; break; + case 'c': fCursorFlags = RTASN1CURSOR_FLAGS_CER; break; + case 'd': fCursorFlags = RTASN1CURSOR_FLAGS_DER; break; + case 'V': return HandleVersion(cArgs, papszArgs); + case 'h': return HelpExtractExeSignerCert(g_pStdOut, RTSIGNTOOLHELP_FULL); + + case VINF_GETOPT_NOT_OPTION: + if (!pszExe) + pszExe = ValueUnion.psz; + else if (!pszOut) + pszOut = ValueUnion.psz; + else + return RTMsgErrorExit(RTEXITCODE_FAILURE, "Too many file arguments: %s", ValueUnion.psz); + break; + + default: + return RTGetOptPrintError(ch, &ValueUnion); + } + } + if (!pszExe) + return RTMsgErrorExit(RTEXITCODE_FAILURE, "No executable given."); + if (!pszOut) + return RTMsgErrorExit(RTEXITCODE_FAILURE, "No output file given."); + if (RTPathExists(pszOut)) + return RTMsgErrorExit(RTEXITCODE_FAILURE, "The output file '%s' exists.", pszOut); + + /* + * Do it. + */ + + /* Open the executable image and query the PKCS7 info. */ + RTLDRMOD hLdrMod; + rc = RTLdrOpen(pszExe, RTLDR_O_FOR_VALIDATION, enmLdrArch, &hLdrMod); + if (RT_FAILURE(rc)) + return RTMsgErrorExit(RTEXITCODE_FAILURE, "Error opening executable image '%s': %Rrc", pszExe, rc); + + RTEXITCODE rcExit = RTEXITCODE_FAILURE; +#ifdef DEBUG + size_t cbBuf = 64; +#else + size_t cbBuf = _512K; +#endif + void *pvBuf = RTMemAlloc(cbBuf); + size_t cbRet = 0; + rc = RTLdrQueryPropEx(hLdrMod, RTLDRPROP_PKCS7_SIGNED_DATA, NULL /*pvBits*/, pvBuf, cbBuf, &cbRet); + if (rc == VERR_BUFFER_OVERFLOW && cbRet < _4M && cbRet > 0) + { + RTMemFree(pvBuf); + cbBuf = cbRet; + pvBuf = RTMemAlloc(cbBuf); + rc = RTLdrQueryPropEx(hLdrMod, RTLDRPROP_PKCS7_SIGNED_DATA, NULL /*pvBits*/, pvBuf, cbBuf, &cbRet); + } + if (RT_SUCCESS(rc)) + { + static RTERRINFOSTATIC s_StaticErrInfo; + RTErrInfoInitStatic(&s_StaticErrInfo); + + /* + * Decode the output. + */ + RTASN1CURSORPRIMARY PrimaryCursor; + RTAsn1CursorInitPrimary(&PrimaryCursor, pvBuf, (uint32_t)cbRet, &s_StaticErrInfo.Core, + &g_RTAsn1DefaultAllocator, fCursorFlags, "exe"); + RTCRPKCS7CONTENTINFO Pkcs7Ci; + rc = RTCrPkcs7ContentInfo_DecodeAsn1(&PrimaryCursor.Cursor, 0, &Pkcs7Ci, "pkcs7"); + if (RT_SUCCESS(rc)) + { + if (RTCrPkcs7ContentInfo_IsSignedData(&Pkcs7Ci)) + { + PCRTCRPKCS7SIGNEDDATA pSd = Pkcs7Ci.u.pSignedData; + if (pSd->SignerInfos.cItems == 1) + { + PCRTCRPKCS7ISSUERANDSERIALNUMBER pISN = &pSd->SignerInfos.paItems[0].IssuerAndSerialNumber; + PCRTCRX509CERTIFICATE pCert; + pCert = RTCrPkcs7SetOfCerts_FindX509ByIssuerAndSerialNumber(&pSd->Certificates, + &pISN->Name, &pISN->SerialNumber); + if (pCert) + { + /* + * Write it out. + */ + RTFILE hFile; + rc = RTFileOpen(&hFile, pszOut, RTFILE_O_WRITE | RTFILE_O_DENY_WRITE | RTFILE_O_CREATE); + if (RT_SUCCESS(rc)) + { + uint32_t cbCert = pCert->SeqCore.Asn1Core.cbHdr + pCert->SeqCore.Asn1Core.cb; + rc = RTFileWrite(hFile, pCert->SeqCore.Asn1Core.uData.pu8 - pCert->SeqCore.Asn1Core.cbHdr, + cbCert, NULL); + if (RT_SUCCESS(rc)) + { + rc = RTFileClose(hFile); + if (RT_SUCCESS(rc)) + { + hFile = NIL_RTFILE; + rcExit = RTEXITCODE_SUCCESS; + RTMsgInfo("Successfully wrote %u bytes to '%s'", cbCert, pszOut); + } + else + RTMsgError("RTFileClose failed: %Rrc", rc); + } + else + RTMsgError("RTFileWrite failed: %Rrc", rc); + RTFileClose(hFile); + } + else + RTMsgError("Error opening '%s': %Rrc", pszOut, rc); + } + else + RTMsgError("Certificate not found."); + } + else + RTMsgError("SignerInfo count: %u", pSd->SignerInfos.cItems); + } + else + RTMsgError("No PKCS7 content: ContentType=%s", Pkcs7Ci.ContentType.szObjId); + RTAsn1VtDelete(&Pkcs7Ci.SeqCore.Asn1Core); + } + else + RTMsgError("RTPkcs7ContentInfoDecodeAsn1 failed: %Rrc - %s", rc, s_StaticErrInfo.szMsg); + } + else + RTMsgError("RTLDRPROP_PKCS7_SIGNED_DATA failed on '%s': %Rrc", pszExe, rc); + RTMemFree(pvBuf); + rc = RTLdrClose(hLdrMod); + if (RT_FAILURE(rc)) + rcExit = RTMsgErrorExit(RTEXITCODE_FAILURE, "RTLdrClose failed: %Rrc\n", rc); + return rcExit; +} + +#ifndef IPRT_IN_BUILD_TOOL + +/* + * The 'verify-exe' command. + */ +static RTEXITCODE HelpVerifyExe(PRTSTREAM pStrm, RTSIGNTOOLHELP enmLevel) +{ + RTStrmPrintf(pStrm, + "verify-exe [--verbose|--quiet] [--kernel] [--root ] [--additional ]\n" + " [--type ] [exe2 [..]]\n"); + return RTEXITCODE_SUCCESS; +} + +typedef struct VERIFYEXESTATE +{ + RTCRSTORE hRootStore; + RTCRSTORE hKernelRootStore; + RTCRSTORE hAdditionalStore; + bool fKernel; + int cVerbose; + enum { kSignType_Windows, kSignType_OSX } enmSignType; + uint64_t uTimestamp; + RTLDRARCH enmLdrArch; +} VERIFYEXESTATE; + +#ifdef VBOX +/** Certificate store load set. + * Declared outside HandleVerifyExe because of braindead gcc visibility crap. */ +struct STSTORESET +{ + RTCRSTORE hStore; + PCSUPTAENTRY paTAs; + unsigned cTAs; +}; +#endif + +/** + * @callback_method_impl{FNRTCRPKCS7VERIFYCERTCALLBACK, + * Standard code signing. Use this for Microsoft SPC.} + */ +static DECLCALLBACK(int) VerifyExecCertVerifyCallback(PCRTCRX509CERTIFICATE pCert, RTCRX509CERTPATHS hCertPaths, uint32_t fFlags, + void *pvUser, PRTERRINFO pErrInfo) +{ + VERIFYEXESTATE *pState = (VERIFYEXESTATE *)pvUser; + uint32_t cPaths = hCertPaths != NIL_RTCRX509CERTPATHS ? RTCrX509CertPathsGetPathCount(hCertPaths) : 0; + + /* + * Dump all the paths. + */ + if (pState->cVerbose > 0) + { + for (uint32_t iPath = 0; iPath < cPaths; iPath++) + { + RTPrintf("---\n"); + RTCrX509CertPathsDumpOne(hCertPaths, iPath, pState->cVerbose, RTStrmDumpPrintfV, g_pStdOut); + *pErrInfo->pszMsg = '\0'; + } + RTPrintf("---\n"); + } + + /* + * Test signing certificates normally doesn't have all the necessary + * features required below. So, treat them as special cases. + */ + if ( hCertPaths == NIL_RTCRX509CERTPATHS + && RTCrX509Name_Compare(&pCert->TbsCertificate.Issuer, &pCert->TbsCertificate.Subject) == 0) + { + RTMsgInfo("Test signed.\n"); + return VINF_SUCCESS; + } + + if (hCertPaths == NIL_RTCRX509CERTPATHS) + RTMsgInfo("Signed by trusted certificate.\n"); + + /* + * Standard code signing capabilites required. + */ + int rc = RTCrPkcs7VerifyCertCallbackCodeSigning(pCert, hCertPaths, fFlags, NULL, pErrInfo); + if ( RT_SUCCESS(rc) + && (fFlags & RTCRPKCS7VCC_F_SIGNED_DATA)) + { + /* + * If kernel signing, a valid certificate path must be anchored by the + * microsoft kernel signing root certificate. The only alternative is + * test signing. + */ + if (pState->fKernel && hCertPaths != NIL_RTCRX509CERTPATHS) + { + uint32_t cFound = 0; + uint32_t cValid = 0; + for (uint32_t iPath = 0; iPath < cPaths; iPath++) + { + bool fTrusted; + PCRTCRX509NAME pSubject; + PCRTCRX509SUBJECTPUBLICKEYINFO pPublicKeyInfo; + int rcVerify; + rc = RTCrX509CertPathsQueryPathInfo(hCertPaths, iPath, &fTrusted, NULL /*pcNodes*/, &pSubject, &pPublicKeyInfo, + NULL, NULL /*pCertCtx*/, &rcVerify); + AssertRCBreak(rc); + + if (RT_SUCCESS(rcVerify)) + { + Assert(fTrusted); + cValid++; + + /* Search the kernel signing root store for a matching anchor. */ + RTCRSTORECERTSEARCH Search; + rc = RTCrStoreCertFindBySubjectOrAltSubjectByRfc5280(pState->hKernelRootStore, pSubject, &Search); + AssertRCBreak(rc); + PCRTCRCERTCTX pCertCtx; + while ((pCertCtx = RTCrStoreCertSearchNext(pState->hKernelRootStore, &Search)) != NULL) + { + PCRTCRX509SUBJECTPUBLICKEYINFO pPubKeyInfo; + if (pCertCtx->pCert) + pPubKeyInfo = &pCertCtx->pCert->TbsCertificate.SubjectPublicKeyInfo; + else if (pCertCtx->pTaInfo) + pPubKeyInfo = &pCertCtx->pTaInfo->PubKey; + else + pPubKeyInfo = NULL; + if (RTCrX509SubjectPublicKeyInfo_Compare(pPubKeyInfo, pPublicKeyInfo) == 0) + cFound++; + RTCrCertCtxRelease(pCertCtx); + } + + int rc2 = RTCrStoreCertSearchDestroy(pState->hKernelRootStore, &Search); AssertRC(rc2); + } + } + if (RT_SUCCESS(rc) && cFound == 0) + rc = RTErrInfoSetF(pErrInfo, VERR_GENERAL_FAILURE, "Not valid kernel code signature."); + if (RT_SUCCESS(rc) && cValid != 2) + RTMsgWarning("%u valid paths, expected 2", cValid); + } + } + + return rc; +} + + +/** @callback_method_impl{FNRTLDRVALIDATESIGNEDDATA} */ +static DECLCALLBACK(int) VerifyExeCallback(RTLDRMOD hLdrMod, RTLDRSIGNATURETYPE enmSignature, + void const *pvSignature, size_t cbSignature, + PRTERRINFO pErrInfo, void *pvUser) +{ + VERIFYEXESTATE *pState = (VERIFYEXESTATE *)pvUser; + switch (enmSignature) + { + case RTLDRSIGNATURETYPE_PKCS7_SIGNED_DATA: + { + PCRTCRPKCS7CONTENTINFO pContentInfo = (PCRTCRPKCS7CONTENTINFO)pvSignature; + + RTTIMESPEC ValidationTime; + RTTimeSpecSetSeconds(&ValidationTime, pState->uTimestamp); + + /* + * Dump the signed data if so requested. + */ + if (pState->cVerbose) + RTAsn1Dump(&pContentInfo->SeqCore.Asn1Core, 0, 0, RTStrmDumpPrintfV, g_pStdOut); + + + /* + * Do the actual verification. Will have to modify this so it takes + * the authenticode policies into account. + */ + return RTCrPkcs7VerifySignedData(pContentInfo, + RTCRPKCS7VERIFY_SD_F_COUNTER_SIGNATURE_SIGNING_TIME_ONLY + | RTCRPKCS7VERIFY_SD_F_ALWAYS_USE_SIGNING_TIME_IF_PRESENT + | RTCRPKCS7VERIFY_SD_F_ALWAYS_USE_MS_TIMESTAMP_IF_PRESENT, + pState->hAdditionalStore, pState->hRootStore, &ValidationTime, + VerifyExecCertVerifyCallback, pState, pErrInfo); + } + + default: + return RTErrInfoSetF(pErrInfo, VERR_NOT_SUPPORTED, "Unsupported signature type: %d", enmSignature); + } + return VINF_SUCCESS; +} + +/** Worker for HandleVerifyExe. */ +static RTEXITCODE HandleVerifyExeWorker(VERIFYEXESTATE *pState, const char *pszFilename, PRTERRINFOSTATIC pStaticErrInfo) +{ + /* + * Open the executable image and verify it. + */ + RTLDRMOD hLdrMod; + int rc = RTLdrOpen(pszFilename, RTLDR_O_FOR_VALIDATION, pState->enmLdrArch, &hLdrMod); + if (RT_FAILURE(rc)) + return RTMsgErrorExit(RTEXITCODE_FAILURE, "Error opening executable image '%s': %Rrc", pszFilename, rc); + + + rc = RTLdrQueryProp(hLdrMod, RTLDRPROP_TIMESTAMP_SECONDS, &pState->uTimestamp, sizeof(pState->uTimestamp)); + if (RT_SUCCESS(rc)) + { + rc = RTLdrVerifySignature(hLdrMod, VerifyExeCallback, pState, RTErrInfoInitStatic(pStaticErrInfo)); + if (RT_SUCCESS(rc)) + RTMsgInfo("'%s' is valid.\n", pszFilename); + else + RTMsgError("RTLdrVerifySignature failed on '%s': %Rrc - %s\n", pszFilename, rc, pStaticErrInfo->szMsg); + } + else + RTMsgError("RTLdrQueryProp/RTLDRPROP_TIMESTAMP_SECONDS failed on '%s': %Rrc\n", pszFilename, rc); + + int rc2 = RTLdrClose(hLdrMod); + if (RT_FAILURE(rc2)) + return RTMsgErrorExit(RTEXITCODE_FAILURE, "RTLdrClose failed: %Rrc\n", rc2); + if (RT_FAILURE(rc)) + return rc != VERR_LDRVI_NOT_SIGNED ? RTEXITCODE_FAILURE : RTEXITCODE_SKIPPED; + + return RTEXITCODE_SUCCESS; +} + + +static RTEXITCODE HandleVerifyExe(int cArgs, char **papszArgs) +{ + RTERRINFOSTATIC StaticErrInfo; + + /* Note! This code does not try to clean up the crypto stores on failure. + This is intentional as the code is only expected to be used in a + one-command-per-process environment where we do exit() upon + returning from this function. */ + + /* + * Parse arguments. + */ + static const RTGETOPTDEF s_aOptions[] = + { + { "--kernel", 'k', RTGETOPT_REQ_NOTHING }, + { "--root", 'r', RTGETOPT_REQ_STRING }, + { "--additional", 'a', RTGETOPT_REQ_STRING }, + { "--add", 'a', RTGETOPT_REQ_STRING }, + { "--type", 't', RTGETOPT_REQ_STRING }, + { "--verbose", 'v', RTGETOPT_REQ_NOTHING }, + { "--quiet", 'q', RTGETOPT_REQ_NOTHING }, + }; + + VERIFYEXESTATE State = + { + NIL_RTCRSTORE, NIL_RTCRSTORE, NIL_RTCRSTORE, false, false, + VERIFYEXESTATE::kSignType_Windows, 0, RTLDRARCH_WHATEVER + }; + int rc = RTCrStoreCreateInMem(&State.hRootStore, 0); + if (RT_SUCCESS(rc)) + rc = RTCrStoreCreateInMem(&State.hKernelRootStore, 0); + if (RT_SUCCESS(rc)) + rc = RTCrStoreCreateInMem(&State.hAdditionalStore, 0); + if (RT_FAILURE(rc)) + return RTMsgErrorExit(RTEXITCODE_FAILURE, "Error creating in-memory certificate store: %Rrc", rc); + + RTGETOPTSTATE GetState; + rc = RTGetOptInit(&GetState, cArgs, papszArgs, s_aOptions, RT_ELEMENTS(s_aOptions), 1, RTGETOPTINIT_FLAGS_OPTS_FIRST); + AssertRCReturn(rc, RTEXITCODE_FAILURE); + RTGETOPTUNION ValueUnion; + int ch; + while ((ch = RTGetOpt(&GetState, &ValueUnion)) && ch != VINF_GETOPT_NOT_OPTION) + { + switch (ch) + { + case 'r': case 'a': + rc = RTCrStoreCertAddFromFile(ch == 'r' ? State.hRootStore : State.hAdditionalStore, 0, ValueUnion.psz, + RTErrInfoInitStatic(&StaticErrInfo)); + if (RT_FAILURE(rc)) + return RTMsgErrorExit(RTEXITCODE_FAILURE, "Error loading certificate '%s': %Rrc - %s", + ValueUnion.psz, rc, StaticErrInfo.szMsg); + break; + + case 't': + if (!strcmp(ValueUnion.psz, "win") || !strcmp(ValueUnion.psz, "windows")) + State.enmSignType = VERIFYEXESTATE::kSignType_Windows; + else if (!strcmp(ValueUnion.psz, "osx") || !strcmp(ValueUnion.psz, "apple")) + State.enmSignType = VERIFYEXESTATE::kSignType_OSX; + else + return RTMsgErrorExit(RTEXITCODE_SYNTAX, "Unknown signing type: '%s'", ValueUnion.psz); + break; + + case 'k': State.fKernel = true; break; + case 'v': State.cVerbose++; break; + case 'q': State.cVerbose = 0; break; + case 'V': return HandleVersion(cArgs, papszArgs); + case 'h': return HelpVerifyExe(g_pStdOut, RTSIGNTOOLHELP_FULL); + default: return RTGetOptPrintError(ch, &ValueUnion); + } + } + if (ch != VINF_GETOPT_NOT_OPTION) + return RTMsgErrorExit(RTEXITCODE_FAILURE, "No executable given."); + + /* + * Populate the certificate stores according to the signing type. + */ +#ifdef VBOX + unsigned cSets = 0; + struct STSTORESET aSets[6]; +#endif + + switch (State.enmSignType) + { + case VERIFYEXESTATE::kSignType_Windows: +#ifdef VBOX + aSets[cSets].hStore = State.hRootStore; + aSets[cSets].paTAs = g_aSUPTimestampTAs; + aSets[cSets].cTAs = g_cSUPTimestampTAs; + cSets++; + aSets[cSets].hStore = State.hRootStore; + aSets[cSets].paTAs = g_aSUPSpcRootTAs; + aSets[cSets].cTAs = g_cSUPSpcRootTAs; + cSets++; + aSets[cSets].hStore = State.hRootStore; + aSets[cSets].paTAs = g_aSUPNtKernelRootTAs; + aSets[cSets].cTAs = g_cSUPNtKernelRootTAs; + cSets++; + aSets[cSets].hStore = State.hKernelRootStore; + aSets[cSets].paTAs = g_aSUPNtKernelRootTAs; + aSets[cSets].cTAs = g_cSUPNtKernelRootTAs; + cSets++; +#endif + break; + + case VERIFYEXESTATE::kSignType_OSX: + return RTMsgErrorExit(RTEXITCODE_FAILURE, "Mac OS X executable signing is not implemented."); + } + +#ifdef VBOX + for (unsigned i = 0; i < cSets; i++) + for (unsigned j = 0; j < aSets[i].cTAs; j++) + { + rc = RTCrStoreCertAddEncoded(aSets[i].hStore, RTCRCERTCTX_F_ENC_TAF_DER, aSets[i].paTAs[j].pch, + aSets[i].paTAs[j].cb, RTErrInfoInitStatic(&StaticErrInfo)); + if (RT_FAILURE(rc)) + return RTMsgErrorExit(RTEXITCODE_FAILURE, "RTCrStoreCertAddEncoded failed (%u/%u): %s", + i, j, StaticErrInfo.szMsg); + } +#endif + + /* + * Do it. + */ + RTEXITCODE rcExit; + for (;;) + { + rcExit = HandleVerifyExeWorker(&State, ValueUnion.psz, &StaticErrInfo); + if (rcExit != RTEXITCODE_SUCCESS) + break; + + /* + * Next file + */ + ch = RTGetOpt(&GetState, &ValueUnion); + if (ch == 0) + break; + if (ch != VINF_GETOPT_NOT_OPTION) + { + rcExit = RTGetOptPrintError(ch, &ValueUnion); + break; + } + } + + /* + * Clean up. + */ + uint32_t cRefs; + cRefs = RTCrStoreRelease(State.hRootStore); Assert(cRefs == 0); + cRefs = RTCrStoreRelease(State.hKernelRootStore); Assert(cRefs == 0); + cRefs = RTCrStoreRelease(State.hAdditionalStore); Assert(cRefs == 0); + + return rcExit; +} + +#endif /* !IPRT_IN_BUILD_TOOL */ + +/* + * The 'make-tainfo' command. + */ +static RTEXITCODE HelpMakeTaInfo(PRTSTREAM pStrm, RTSIGNTOOLHELP enmLevel) +{ + RTStrmPrintf(pStrm, + "make-tainfo [--verbose|--quiet] [--cert ] [-o|--output] \n"); + return RTEXITCODE_SUCCESS; +} + + +typedef struct MAKETAINFOSTATE +{ + int cVerbose; + const char *pszCert; + const char *pszOutput; +} MAKETAINFOSTATE; + + +/** @callback_method_impl{FNRTASN1ENCODEWRITER} */ +static DECLCALLBACK(int) handleMakeTaInfoWriter(const void *pvBuf, size_t cbToWrite, void *pvUser, PRTERRINFO pErrInfo) +{ + return RTStrmWrite((PRTSTREAM)pvUser, pvBuf, cbToWrite); +} + + +static RTEXITCODE HandleMakeTaInfo(int cArgs, char **papszArgs) +{ + /* + * Parse arguments. + */ + static const RTGETOPTDEF s_aOptions[] = + { + { "--cert", 'c', RTGETOPT_REQ_STRING }, + { "--output", 'o', RTGETOPT_REQ_STRING }, + { "--verbose", 'v', RTGETOPT_REQ_NOTHING }, + { "--quiet", 'q', RTGETOPT_REQ_NOTHING }, + }; + + RTLDRARCH enmLdrArch = RTLDRARCH_WHATEVER; + MAKETAINFOSTATE State = { 0, NULL, NULL }; + + RTGETOPTSTATE GetState; + int rc = RTGetOptInit(&GetState, cArgs, papszArgs, s_aOptions, RT_ELEMENTS(s_aOptions), 1, RTGETOPTINIT_FLAGS_OPTS_FIRST); + AssertRCReturn(rc, RTEXITCODE_FAILURE); + RTGETOPTUNION ValueUnion; + int ch; + while ((ch = RTGetOpt(&GetState, &ValueUnion)) != 0) + { + switch (ch) + { + case 'c': + if (State.pszCert) + return RTMsgErrorExit(RTEXITCODE_FAILURE, "The --cert option can only be used once."); + State.pszCert = ValueUnion.psz; + break; + + case 'o': + case VINF_GETOPT_NOT_OPTION: + if (State.pszOutput) + return RTMsgErrorExit(RTEXITCODE_FAILURE, "Multiple output files specified."); + State.pszOutput = ValueUnion.psz; + break; + + case 'v': State.cVerbose++; break; + case 'q': State.cVerbose = 0; break; + case 'V': return HandleVersion(cArgs, papszArgs); + case 'h': return HelpMakeTaInfo(g_pStdOut, RTSIGNTOOLHELP_FULL); + default: return RTGetOptPrintError(ch, &ValueUnion); + } + } + if (!State.pszCert) + return RTMsgErrorExit(RTEXITCODE_FAILURE, "No input certificate was specified."); + if (!State.pszOutput) + return RTMsgErrorExit(RTEXITCODE_FAILURE, "No output file was specified."); + + /* + * Read the certificate. + */ + RTERRINFOSTATIC StaticErrInfo; + RTCRX509CERTIFICATE Certificate; + rc = RTCrX509Certificate_ReadFromFile(&Certificate, State.pszCert, 0, &g_RTAsn1DefaultAllocator, + RTErrInfoInitStatic(&StaticErrInfo)); + if (RT_FAILURE(rc)) + return RTMsgErrorExit(RTEXITCODE_FAILURE, "Error reading certificate from %s: %Rrc - %s", + State.pszCert, rc, StaticErrInfo.szMsg); + /* + * Construct the trust anchor information. + */ + RTCRTAFTRUSTANCHORINFO TrustAnchor; + rc = RTCrTafTrustAnchorInfo_Init(&TrustAnchor, &g_RTAsn1DefaultAllocator); + if (RT_SUCCESS(rc)) + { + /* Public key. */ + Assert(RTCrX509SubjectPublicKeyInfo_IsPresent(&TrustAnchor.PubKey)); + RTCrX509SubjectPublicKeyInfo_Delete(&TrustAnchor.PubKey); + rc = RTCrX509SubjectPublicKeyInfo_Clone(&TrustAnchor.PubKey, &Certificate.TbsCertificate.SubjectPublicKeyInfo, + &g_RTAsn1DefaultAllocator); + if (RT_FAILURE(rc)) + RTMsgError("RTCrX509SubjectPublicKeyInfo_Clone failed: %Rrc", rc); + RTAsn1Core_ResetImplict(RTCrX509SubjectPublicKeyInfo_GetAsn1Core(&TrustAnchor.PubKey)); /* temporary hack. */ + + /* Key Identifier. */ + PCRTASN1OCTETSTRING pKeyIdentifier = NULL; + if (Certificate.TbsCertificate.T3.fFlags & RTCRX509TBSCERTIFICATE_F_PRESENT_SUBJECT_KEY_IDENTIFIER) + pKeyIdentifier = Certificate.TbsCertificate.T3.pSubjectKeyIdentifier; + else if ( (Certificate.TbsCertificate.T3.fFlags & RTCRX509TBSCERTIFICATE_F_PRESENT_AUTHORITY_KEY_IDENTIFIER) + && RTCrX509Certificate_IsSelfSigned(&Certificate) + && RTAsn1OctetString_IsPresent(&Certificate.TbsCertificate.T3.pAuthorityKeyIdentifier->KeyIdentifier) ) + pKeyIdentifier = &Certificate.TbsCertificate.T3.pAuthorityKeyIdentifier->KeyIdentifier; + else if ( (Certificate.TbsCertificate.T3.fFlags & RTCRX509TBSCERTIFICATE_F_PRESENT_OLD_AUTHORITY_KEY_IDENTIFIER) + && RTCrX509Certificate_IsSelfSigned(&Certificate) + && RTAsn1OctetString_IsPresent(&Certificate.TbsCertificate.T3.pOldAuthorityKeyIdentifier->KeyIdentifier) ) + pKeyIdentifier = &Certificate.TbsCertificate.T3.pOldAuthorityKeyIdentifier->KeyIdentifier; + if (pKeyIdentifier && pKeyIdentifier->Asn1Core.cb > 0) + { + Assert(RTAsn1OctetString_IsPresent(&TrustAnchor.KeyIdentifier)); + RTAsn1OctetString_Delete(&TrustAnchor.KeyIdentifier); + rc = RTAsn1OctetString_Clone(&TrustAnchor.KeyIdentifier, pKeyIdentifier, &g_RTAsn1DefaultAllocator); + if (RT_FAILURE(rc)) + RTMsgError("RTAsn1OctetString_Clone failed: %Rrc", rc); + RTAsn1Core_ResetImplict(RTAsn1OctetString_GetAsn1Core(&TrustAnchor.KeyIdentifier)); /* temporary hack. */ + } + else + RTMsgWarning("No key identifier found or has zero length."); + + /* Subject */ + if (RT_SUCCESS(rc)) + { + Assert(!RTCrTafCertPathControls_IsPresent(&TrustAnchor.CertPath)); + rc = RTCrTafCertPathControls_Init(&TrustAnchor.CertPath, &g_RTAsn1DefaultAllocator); + if (RT_SUCCESS(rc)) + { + Assert(RTCrX509Name_IsPresent(&TrustAnchor.CertPath.TaName)); + RTCrX509Name_Delete(&TrustAnchor.CertPath.TaName); + rc = RTCrX509Name_Clone(&TrustAnchor.CertPath.TaName, &Certificate.TbsCertificate.Subject, + &g_RTAsn1DefaultAllocator); + if (RT_SUCCESS(rc)) + { + RTAsn1Core_ResetImplict(RTCrX509Name_GetAsn1Core(&TrustAnchor.CertPath.TaName)); /* temporary hack. */ + rc = RTCrX509Name_RecodeAsUtf8(&TrustAnchor.CertPath.TaName, &g_RTAsn1DefaultAllocator); + if (RT_FAILURE(rc)) + RTMsgError("RTCrX509Name_RecodeAsUtf8 failed: %Rrc", rc); + } + else + RTMsgError("RTCrX509Name_Clone failed: %Rrc", rc); + } + else + RTMsgError("RTCrTafCertPathControls_Init failed: %Rrc", rc); + } + + /* Check that what we've constructed makes some sense. */ + if (RT_SUCCESS(rc)) + { + rc = RTCrTafTrustAnchorInfo_CheckSanity(&TrustAnchor, 0, RTErrInfoInitStatic(&StaticErrInfo), "TAI"); + if (RT_FAILURE(rc)) + RTMsgError("RTCrTafTrustAnchorInfo_CheckSanity failed: %Rrc - %s", rc, StaticErrInfo.szMsg); + } + + if (RT_SUCCESS(rc)) + { + /* + * Encode it and write it to the output file. + */ + uint32_t cbEncoded; + rc = RTAsn1EncodePrepare(RTCrTafTrustAnchorInfo_GetAsn1Core(&TrustAnchor), RTASN1ENCODE_F_DER, &cbEncoded, + RTErrInfoInitStatic(&StaticErrInfo)); + if (RT_SUCCESS(rc)) + { + if (State.cVerbose >= 1) + RTAsn1Dump(RTCrTafTrustAnchorInfo_GetAsn1Core(&TrustAnchor), 0, 0, RTStrmDumpPrintfV, g_pStdOut); + + PRTSTREAM pStrm; + rc = RTStrmOpen(State.pszOutput, "wb", &pStrm); + if (RT_SUCCESS(rc)) + { + rc = RTAsn1EncodeWrite(RTCrTafTrustAnchorInfo_GetAsn1Core(&TrustAnchor), RTASN1ENCODE_F_DER, + handleMakeTaInfoWriter, pStrm, RTErrInfoInitStatic(&StaticErrInfo)); + if (RT_SUCCESS(rc)) + { + rc = RTStrmClose(pStrm); + if (RT_SUCCESS(rc)) + RTMsgInfo("Successfully wrote TrustedAnchorInfo to '%s'.", State.pszOutput); + else + RTMsgError("RTStrmClose failed: %Rrc"); + } + else + { + RTMsgError("RTAsn1EncodeWrite failed: %Rrc - %s", rc, StaticErrInfo.szMsg); + RTStrmClose(pStrm); + } + } + else + RTMsgError("Error opening '%s' for writing: %Rrcs", State.pszOutput, rc); + } + else + RTMsgError("RTAsn1EncodePrepare failed: %Rrc - %s", rc, StaticErrInfo.szMsg); + } + + RTCrTafTrustAnchorInfo_Delete(&TrustAnchor); + } + else + RTMsgError("RTCrTafTrustAnchorInfo_Init failed: %Rrc", rc); + + RTCrX509Certificate_Delete(&Certificate); + return RT_SUCCESS(rc) ? RTEXITCODE_SUCCESS : RTEXITCODE_FAILURE; +} + + + +/* + * The 'version' command. + */ +static RTEXITCODE HelpVersion(PRTSTREAM pStrm, RTSIGNTOOLHELP enmLevel) +{ + RTStrmPrintf(pStrm, "version\n"); + return RTEXITCODE_SUCCESS; +} + +static RTEXITCODE HandleVersion(int cArgs, char **papszArgs) +{ + RTPrintf("%s\n", RTBldCfgVersion()); + return RTEXITCODE_SUCCESS; +} + + + +/** + * Command mapping. + */ +static struct +{ + /** The command. */ + const char *pszCmd; + /** + * Handle the command. + * @returns Program exit code. + * @param cArgs Number of arguments. + * @param papszArgs The argument vector, starting with the command name. + */ + RTEXITCODE (*pfnHandler)(int cArgs, char **papszArgs); + /** + * Produce help. + * @returns RTEXITCODE_SUCCESS to simplify handling '--help' in the handler. + * @param pStrm Where to send help text. + * @param enmLevel The level of the help information. + */ + RTEXITCODE (*pfnHelp)(PRTSTREAM pStrm, RTSIGNTOOLHELP enmLevel); +} +/** Mapping commands to handler and helper functions. */ +const g_aCommands[] = +{ + { "extract-exe-signer-cert", HandleExtractExeSignerCert, HelpExtractExeSignerCert }, +#ifndef IPRT_IN_BUILD_TOOL + { "verify-exe", HandleVerifyExe, HelpVerifyExe }, +#endif + { "make-tainfo", HandleMakeTaInfo, HelpMakeTaInfo }, + { "help", HandleHelp, HelpHelp }, + { "--help", HandleHelp, NULL }, + { "-h", HandleHelp, NULL }, + { "version", HandleVersion, HelpVersion }, + { "--version", HandleVersion, NULL }, + { "-V", HandleVersion, NULL }, +}; + + +/* + * The 'help' command. + */ +static RTEXITCODE HelpHelp(PRTSTREAM pStrm, RTSIGNTOOLHELP enmLevel) +{ + RTStrmPrintf(pStrm, "help [cmd-patterns]\n"); + return RTEXITCODE_SUCCESS; +} + +static RTEXITCODE HandleHelp(int cArgs, char **papszArgs) +{ + RTSIGNTOOLHELP enmLevel = cArgs <= 1 ? RTSIGNTOOLHELP_USAGE : RTSIGNTOOLHELP_FULL; + uint32_t cShowed = 0; + for (uint32_t iCmd = 0; iCmd < RT_ELEMENTS(g_aCommands); iCmd++) + { + if (g_aCommands[iCmd].pfnHelp) + { + bool fShow = false; /* shut up gcc warning */ + if (cArgs <= 1) + fShow = true; + else + { + for (int iArg = 1; iArg < cArgs; iArg++) + if (RTStrSimplePatternMultiMatch(papszArgs[iArg], RTSTR_MAX, g_aCommands[iCmd].pszCmd, RTSTR_MAX, NULL)) + { + fShow = true; + break; + } + } + if (fShow) + { + g_aCommands[iCmd].pfnHelp(g_pStdOut, enmLevel); + cShowed++; + } + } + } + return cShowed ? RTEXITCODE_SUCCESS : RTEXITCODE_FAILURE; +} + + + +int main(int argc, char **argv) +{ + int rc = RTR3Init(); + if (RT_FAILURE(rc)) + return RTMsgInitFailure(rc); + + /* + * Parse global arguments. + */ + int iArg = 1; + /* none presently. */ + + /* + * Command dispatcher. + */ + if (iArg < argc) + { + const char *pszCmd = argv[iArg]; + uint32_t i = RT_ELEMENTS(g_aCommands); + while (i-- > 0) + if (!strcmp(g_aCommands[i].pszCmd, pszCmd)) + return g_aCommands[i].pfnHandler(argc - iArg, &argv[iArg]); + RTMsgError("Unknown command '%s'.", pszCmd); + } + else + RTMsgError("No command given. (try --help)"); + + return RTEXITCODE_SYNTAX; +} + + diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Runtime/VBox/VBoxRTDeps.cpp virtualbox-4.1.44-dfsg/src/VBox/Runtime/VBox/VBoxRTDeps.cpp --- virtualbox-4.1.12-dfsg/src/VBox/Runtime/VBox/VBoxRTDeps.cpp 2012-04-02 13:28:59.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Runtime/VBox/VBoxRTDeps.cpp 2015-11-11 15:08:57.000000000 +0000 @@ -35,7 +35,7 @@ #include #include -#include +#include #include #include #include @@ -56,7 +56,7 @@ (PFNRT)SUPR3PageAllocEx, (PFNRT)SUPSemEventCreate, #endif - (PFNRT)xmlModuleOpen, + (PFNRT)xmlLoadCatalogs, (PFNRT)MD5_Init, (PFNRT)RC4, (PFNRT)RC4_set_key, diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Runtime/win/errmsgwin.cpp virtualbox-4.1.44-dfsg/src/VBox/Runtime/win/errmsgwin.cpp --- virtualbox-4.1.12-dfsg/src/VBox/Runtime/win/errmsgwin.cpp 2012-04-02 13:29:07.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Runtime/win/errmsgwin.cpp 2015-11-11 15:09:15.000000000 +0000 @@ -27,7 +27,7 @@ /******************************************************************************* * Header Files * *******************************************************************************/ -#include +#include /* 200702 sdk + asm.h hack */ #include #include @@ -43,9 +43,13 @@ */ static const RTWINERRMSG g_aStatusMsgs[] = { -#include "errmsgcomdata.h" -#if defined(VBOX) && !defined(IN_GUEST) -# include "errmsgvboxcomdata.h" +#ifndef IPRT_NO_ERROR_DATA +# include "errmsgcomdata.h" +# if defined(VBOX) && !defined(IN_GUEST) +# include "errmsgvboxcomdata.h" +# endif +#else + { "Success.", "ERROR_SUCCESS", 0 }, #endif { NULL, NULL, 0 } }; @@ -76,7 +80,7 @@ RTDECL(PCRTWINERRMSG) RTErrWinGet(long rc) { unsigned i; - for (i = 0; i < RT_ELEMENTS(g_aStatusMsgs); i++) + for (i = 0; i < RT_ELEMENTS(g_aStatusMsgs) - 1U; i++) if (g_aStatusMsgs[i].iCode == rc) return &g_aStatusMsgs[i]; @@ -85,7 +89,7 @@ * was no exact match. Try to find a non-exact match, and include the * actual value in case we pick the wrong entry. Better than always using * the "Unknown Status" case. */ - for (i = 0; i < RT_ELEMENTS(g_aStatusMsgs); i++) + for (i = 0; i < RT_ELEMENTS(g_aStatusMsgs) - 1U; i++) if (g_aStatusMsgs[i].iCode == HRESULT_CODE(rc)) { int32_t iMsg = (ASMAtomicIncU32(&g_iUnknownMsgs) - 1) % RT_ELEMENTS(g_aUnknownMsgs); diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Runtime/win/RTErrConvertFromWin32.cpp virtualbox-4.1.44-dfsg/src/VBox/Runtime/win/RTErrConvertFromWin32.cpp --- virtualbox-4.1.12-dfsg/src/VBox/Runtime/win/RTErrConvertFromWin32.cpp 2012-04-02 13:29:07.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Runtime/win/RTErrConvertFromWin32.cpp 2015-11-11 15:09:15.000000000 +0000 @@ -402,6 +402,7 @@ #endif case ERROR_NOT_A_REPARSE_POINT: return VERR_NOT_SYMLINK; + case NTE_BAD_ALGID: return VERR_CR_PKIX_UNKNOWN_DIGEST_TYPE; } /* unknown error. */ diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Storage/ISCSI.cpp virtualbox-4.1.44-dfsg/src/VBox/Storage/ISCSI.cpp --- virtualbox-4.1.12-dfsg/src/VBox/Storage/ISCSI.cpp 2012-04-02 13:29:07.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Storage/ISCSI.cpp 2015-11-11 15:09:15.000000000 +0000 @@ -256,7 +256,7 @@ } ISCSISTATE; /** - * iSCSI PDU send flags (and maybe more in the future). */ + * iSCSI PDU send/receive flags (and maybe more in the future). */ typedef enum ISCSIPDUFLAGS { /** No special flags */ @@ -679,7 +679,7 @@ /* iSCSI low-level functions (only to be used from the iSCSI high-level functions). */ static uint32_t iscsiNewITT(PISCSIIMAGE pImage); static int iscsiSendPDU(PISCSIIMAGE pImage, PISCSIREQ paReq, uint32_t cnReq, uint32_t uFlags); -static int iscsiRecvPDU(PISCSIIMAGE pImage, uint32_t itt, PISCSIRES paRes, uint32_t cnRes); +static int iscsiRecvPDU(PISCSIIMAGE pImage, uint32_t itt, PISCSIRES paRes, uint32_t cnRes, uint32_t fFlags); static int iscsiRecvPDUAsync(PISCSIIMAGE pImage); static int iscsiSendPDUAsync(PISCSIIMAGE pImage); static int iscsiValidatePDU(PISCSIRES paRes, uint32_t cnRes); @@ -1252,6 +1252,7 @@ uint32_t cnISCSIRes; ISCSIRES aISCSIRes[2]; uint32_t aResBHS[12]; + unsigned cRetries = 5; char *pszNext; PISCSIIMAGE pImage = (PISCSIIMAGE)pvUser; @@ -1288,6 +1289,20 @@ iscsiTransportClose(pImage); restart: + if (!cRetries) + { + /* + * Prevent the iSCSI initiator to go into normal state if we are here, + * even if there is no error code set. + */ + if (RT_SUCCESS(rc)) + { + AssertMsgFailed(("Success status code set while out of retries\n")); + rc = VERR_IPE_UNEXPECTED_STATUS; + } + goto out; + } + if (!iscsiIsClientConnected(pImage)) { rc = iscsiTransportOpen(pImage); @@ -1427,8 +1442,17 @@ aISCSIRes[cnISCSIRes].cbSeg = sizeof(bBuf); cnISCSIRes++; - rc = iscsiRecvPDU(pImage, itt, aISCSIRes, cnISCSIRes); - if (RT_FAILURE(rc)) + rc = iscsiRecvPDU(pImage, itt, aISCSIRes, cnISCSIRes, ISCSIPDU_NO_REATTACH); + if (rc == VERR_BROKEN_PIPE || rc == VERR_NET_CONNECTION_REFUSED) + { + /* + * We lost connection to the target while receiving the answer, + * start from the beginning. + */ + cRetries--; + goto restart; + } + else if (RT_FAILURE(rc)) break; /** @todo collect partial login responses with Continue bit set. */ Assert(aISCSIRes[0].pvSeg == aResBHS); @@ -1718,7 +1742,7 @@ aISCSIRes.pvSeg = aResBHS; aISCSIRes.cbSeg = sizeof(aResBHS); - rc = iscsiRecvPDU(pImage, itt, &aISCSIRes, 1); + rc = iscsiRecvPDU(pImage, itt, &aISCSIRes, 1, ISCSIPDU_NO_REATTACH); if (RT_SUCCESS(rc)) { if (RT_N2H_U32(aResBHS[0]) != (ISCSI_FINAL_BIT | ISCSIOP_LOGOUT_RES)) @@ -1879,7 +1903,7 @@ aISCSIRes[cnISCSIRes].cbSeg = sizeof(aStatus); cnISCSIRes++; - rc = iscsiRecvPDU(pImage, itt, aISCSIRes, cnISCSIRes); + rc = iscsiRecvPDU(pImage, itt, aISCSIRes, cnISCSIRes, ISCSIPDU_DEFAULT); if (RT_FAILURE(rc)) break; @@ -2058,8 +2082,10 @@ * @param pImage The iSCSI connection state to be used. * @param paRes Pointer to array of iSCSI response sections. * @param cnRes Number of valid iSCSI response sections in the array. + * @param fRecvFlags PDU receive flags. */ -static int iscsiRecvPDU(PISCSIIMAGE pImage, uint32_t itt, PISCSIRES paRes, uint32_t cnRes) +static int iscsiRecvPDU(PISCSIIMAGE pImage, uint32_t itt, PISCSIRES paRes, uint32_t cnRes, + uint32_t fRecvFlags) { int rc = VINF_SUCCESS; ISCSIRES aResBuf; @@ -2080,19 +2106,21 @@ * try to restart by re-sending the original request (if any). * This also handles the connection reestablishment (login etc.). */ RTThreadSleep(500); - if (pImage->state != ISCSISTATE_IN_LOGIN) + if ( pImage->state != ISCSISTATE_IN_LOGIN + && !(fRecvFlags & ISCSIPDU_NO_REATTACH)) { /* Attempt to re-login when a connection fails, but only when not * currently logging in. */ rc = iscsiAttach(pImage); if (RT_FAILURE(rc)) break; - } - if (pImage->paCurrReq != NULL) - { - rc = iscsiSendPDU(pImage, pImage->paCurrReq, pImage->cnCurrReq, ISCSIPDU_DEFAULT); - if (RT_FAILURE(rc)) - break; + + if (pImage->paCurrReq != NULL) + { + rc = iscsiSendPDU(pImage, pImage->paCurrReq, pImage->cnCurrReq, ISCSIPDU_DEFAULT); + if (RT_FAILURE(rc)) + break; + } } } else diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Storage/Parallels.cpp virtualbox-4.1.44-dfsg/src/VBox/Storage/Parallels.cpp --- virtualbox-4.1.12-dfsg/src/VBox/Storage/Parallels.cpp 2012-04-02 13:29:07.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Storage/Parallels.cpp 2015-11-11 15:09:15.000000000 +0000 @@ -335,6 +335,8 @@ pImage->pInterfaceIOCallbacks = VDGetInterfaceIOInt(pImage->pInterfaceIO); AssertPtrReturn(pImage->pInterfaceIOCallbacks, VERR_INVALID_PARAMETER); + pImage->uOpenFlags = uOpenFlags; + rc = parallelsFileOpen(pImage, pImage->pszFilename, VDOpenFlagsToFileOpenFlags(uOpenFlags, false /* fCreate */)); diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Storage/testcase/vbox-img.cpp virtualbox-4.1.44-dfsg/src/VBox/Storage/testcase/vbox-img.cpp --- virtualbox-4.1.12-dfsg/src/VBox/Storage/testcase/vbox-img.cpp 2012-04-02 13:29:08.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Storage/testcase/vbox-img.cpp 2015-11-11 15:09:16.000000000 +0000 @@ -437,6 +437,8 @@ pFS->offBuffer = 0; pFS->cbBuffer = cbSumRead; + if (!cbSumRead && !pcbRead) /* Caller can't handle partial reads. */ + return VERR_EOF; } /* Read several blocks and assemble the result if necessary */ @@ -479,6 +481,8 @@ pvBuffer = (uint8_t *)pvBuffer + cbThisRead; cbBuffer -= cbThisRead; cbTotalRead += cbThisRead; + if (!cbTotalRead && !pcbRead) /* Caller can't handle partial reads. */ + return VERR_EOF; } while (cbBuffer > 0); if (pcbRead) diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Storage/VD.cpp virtualbox-4.1.44-dfsg/src/VBox/Storage/VD.cpp --- virtualbox-4.1.12-dfsg/src/VBox/Storage/VD.cpp 2012-04-02 13:29:07.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Storage/VD.cpp 2015-11-11 15:09:15.000000000 +0000 @@ -914,7 +914,10 @@ else cbBufClear += cbThisRead; - rc = VINF_SUCCESS; + if (pImage->uOpenFlags & VD_OPEN_FLAGS_INFORM_ABOUT_ZERO_BLOCKS) + rc = VINF_VD_NEW_ZEROED_BLOCK; + else + rc = VINF_SUCCESS; } else if (RT_SUCCESS(rc)) { @@ -3691,10 +3694,13 @@ pIoCtx->fBlocked = false; ASMAtomicSubU32(&pIoCtx->cbTransferLeft, cbCompleted); - /* Clear the pointer to next transfer function in case we have nothing to transfer anymore. - * @todo: Find a better way to prevent vdIoCtxContinue from calling the read/write helper again. */ + /* Set next transfer function if the current one finished. + * @todo: Find a better way to prevent vdIoCtxContinue from calling the current helper again. */ if (!pIoCtx->cbTransferLeft) - pIoCtx->pfnIoCtxTransfer = NULL; + { + pIoCtx->pfnIoCtxTransfer = pIoCtx->pfnIoCtxTransferNext; + pIoCtx->pfnIoCtxTransferNext = NULL; + } vdIoCtxContinue(pIoCtx, rcReq); @@ -4455,10 +4461,10 @@ &pDisk->VDIIOIntCallbacks, &pImage->VDIo, &pImage->pVDIfsImage); AssertRC(rc); - pImage->uOpenFlags = uOpenFlags & (VD_OPEN_FLAGS_HONOR_SAME | VD_OPEN_FLAGS_IGNORE_FLUSH); + pImage->uOpenFlags = uOpenFlags & (VD_OPEN_FLAGS_HONOR_SAME | VD_OPEN_FLAGS_IGNORE_FLUSH | VD_OPEN_FLAGS_INFORM_ABOUT_ZERO_BLOCKS); pImage->VDIo.fIgnoreFlush = (uOpenFlags & VD_OPEN_FLAGS_IGNORE_FLUSH) != 0; rc = pImage->Backend->pfnOpen(pImage->pszFilename, - uOpenFlags & ~(VD_OPEN_FLAGS_HONOR_SAME | VD_OPEN_FLAGS_IGNORE_FLUSH), + uOpenFlags & ~(VD_OPEN_FLAGS_HONOR_SAME | VD_OPEN_FLAGS_IGNORE_FLUSH | VD_OPEN_FLAGS_INFORM_ABOUT_ZERO_BLOCKS), pDisk->pVDIfsDisk, pImage->pVDIfsImage, pDisk->enmType, @@ -4473,7 +4479,7 @@ || rc == VERR_SHARING_VIOLATION || rc == VERR_FILE_LOCK_FAILED)) rc = pImage->Backend->pfnOpen(pImage->pszFilename, - (uOpenFlags & ~VD_OPEN_FLAGS_HONOR_SAME) + (uOpenFlags & ~(VD_OPEN_FLAGS_HONOR_SAME | VD_OPEN_FLAGS_INFORM_ABOUT_ZERO_BLOCKS)) | VD_OPEN_FLAGS_READONLY, pDisk->pVDIfsDisk, pImage->pVDIfsImage, @@ -6615,6 +6621,8 @@ { if (pCbProgress && pCbProgress->pfnProgress) pCbProgress->pfnProgress(pIfProgress->pvUser, 100); + + pDisk->cbSize = cbSize; } LogFlowFunc(("returns %Rrc\n", rc)); @@ -7750,7 +7758,9 @@ AssertPtrBreakStmt(pImage, rc = VERR_VD_IMAGE_NOT_FOUND); rc = pImage->Backend->pfnSetOpenFlags(pImage->pBackendData, - uOpenFlags); + uOpenFlags & ~(VD_OPEN_FLAGS_HONOR_SAME | VD_OPEN_FLAGS_IGNORE_FLUSH | VD_OPEN_FLAGS_INFORM_ABOUT_ZERO_BLOCKS)); + if (RT_SUCCESS(rc)) + pImage->uOpenFlags = uOpenFlags & (VD_OPEN_FLAGS_HONOR_SAME | VD_OPEN_FLAGS_IGNORE_FLUSH | VD_OPEN_FLAGS_INFORM_ABOUT_ZERO_BLOCKS); } while (0); if (RT_UNLIKELY(fLockWrite)) diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Storage/VDI.cpp virtualbox-4.1.44-dfsg/src/VBox/Storage/VDI.cpp --- virtualbox-4.1.12-dfsg/src/VBox/Storage/VDI.cpp 2012-04-02 13:29:07.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Storage/VDI.cpp 2015-11-11 15:09:15.000000000 +0000 @@ -2519,8 +2519,6 @@ void *pvBuf = NULL, *pvZero = NULL; do { - VDIIMAGEBLOCKPOINTER uBlock = 0; - /* Allocate data buffer. */ pvBuf = RTMemAllocZ(pImage->cbTotalBlockData); if (!pvBuf) @@ -2542,7 +2540,7 @@ /* Search the index in the block table. */ for (unsigned idxBlock = 0; idxBlock < cBlocksOld; idxBlock++) { - if (pImage->paBlocks[idxBlock] == uBlock) + if (!pImage->paBlocks[idxBlock]) { /* Read data and append to the end of the image. */ rc = vdiFileReadSync(pImage, offStartDataNew, pvBuf, pImage->cbTotalBlockData, NULL); @@ -2588,7 +2586,6 @@ if (RT_FAILURE(rc)) break; - uBlock++; offStartDataNew += pImage->cbTotalBlockData; } } while (0); diff -Nru virtualbox-4.1.12-dfsg/src/VBox/Storage/VHD.cpp virtualbox-4.1.44-dfsg/src/VBox/Storage/VHD.cpp --- virtualbox-4.1.12-dfsg/src/VBox/Storage/VHD.cpp 2012-04-02 13:29:07.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/Storage/VHD.cpp 2015-11-11 15:09:15.000000000 +0000 @@ -2653,8 +2653,8 @@ */ rc = vhdFileWriteMetaAsync(pImage, pImage->uCurrentEndOfFile, pExpand->au8Bitmap, - pImage->cbDataBlockBitmap, pIoCtx, - vhdAsyncExpansionDataBlockBitmapComplete, + pImage->cDataBlockBitmapSectors * VHD_SECTOR_SIZE, + pIoCtx, vhdAsyncExpansionDataBlockBitmapComplete, pExpand); if (RT_SUCCESS(rc)) VHDIMAGEEXPAND_STATUS_SET(pExpand->fFlags, VHDIMAGEEXPAND_BLOCKBITMAP_STATUS_SHIFT, VHDIMAGEEXPAND_STEP_SUCCESS); @@ -2674,7 +2674,7 @@ * Write the new block at the current end of the file. */ rc = vhdFileWriteUserAsync(pImage, - pImage->uCurrentEndOfFile + pImage->cbDataBlockBitmap, + pImage->uCurrentEndOfFile + pImage->cDataBlockBitmapSectors * VHD_SECTOR_SIZE, pIoCtx, cbWrite, vhdAsyncExpansionDataComplete, pExpand); @@ -2714,7 +2714,7 @@ * Set the new end of the file and link the new block into the BAT. */ pImage->pBlockAllocationTable[cBlockAllocationTableEntry] = pImage->uCurrentEndOfFile / VHD_SECTOR_SIZE; - pImage->uCurrentEndOfFile += pImage->cbDataBlockBitmap + pImage->cbDataBlock; + pImage->uCurrentEndOfFile += pImage->cDataBlockBitmapSectors * VHD_SECTOR_SIZE + pImage->cbDataBlock; /* Update the footer. */ rc = vhdFileWriteMetaAsync(pImage, pImage->uCurrentEndOfFile, @@ -3106,7 +3106,7 @@ { if (pImage->pBlockAllocationTable[idxBlock] != ~0U) { - uint64_t offStartBlock = pImage->pBlockAllocationTable[idxBlock] * VHD_SECTOR_SIZE; + uint64_t offStartBlock = (uint64_t)pImage->pBlockAllocationTable[idxBlock] * VHD_SECTOR_SIZE; if (offStartBlock < offStartDataOld) offStartDataOld = offStartBlock; cBlocksAllocated++; diff -Nru virtualbox-4.1.12-dfsg/src/VBox/VMM/include/CPUMInternal.h virtualbox-4.1.44-dfsg/src/VBox/VMM/include/CPUMInternal.h --- virtualbox-4.1.12-dfsg/src/VBox/VMM/include/CPUMInternal.h 2012-04-02 13:29:10.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/VMM/include/CPUMInternal.h 2015-11-11 15:09:20.000000000 +0000 @@ -289,7 +289,7 @@ /** CR4 mask */ struct { - uint32_t AndMask; + uint32_t AndMask; /**< @todo Move these to the per-CPU structure and fix the switchers. Saves a register! */ uint32_t OrMask; } CR4; @@ -315,12 +315,6 @@ uint8_t abPadding2[4]; #endif -#ifdef VBOX_WITH_VMMR0_DISABLE_LAPIC_NMI - RTHCPTR pvApicBase; - uint32_t fApicDisVectors; - uint8_t abPadding3[HC_ARCH_BITS == 32 ? 56 : 52]; -#endif - /** * Guest context on raw mode entry. 64-byte aligned! * This a debug feature, see CPUMR3SaveEntryCtx. @@ -390,14 +384,30 @@ * 32-64 switcher. */ uint32_t u32RetCode; + uint8_t abPadding1[4]; + +#ifdef VBOX_WITH_VMMR0_DISABLE_LAPIC_NMI + /** The address of the APIC mapping, NULL if no APIC. + * Call CPUMR0SetLApic to update this before doing a world switch. */ + RTHCPTR pvApicBase; + /** Used by the world switcher code to store which vectors needs restoring on + * the way back. */ + uint32_t fApicDisVectors; + /** Set if the CPU has the X2APIC mode enabled. + * Call CPUMR0SetLApic to update this before doing a world switch. */ + bool fX2Apic; +#else + uint8_t abPadding3[(HC_ARCH_BITS == 64 ? 8 : 4) + 4 + 1]; +#endif + /** Have we entered raw-mode? */ bool fRawEntered; /** Have we entered the recompiler? */ bool fRemEntered; /** Align the structure on a 64-byte boundary. */ - uint8_t abPadding2[HC_ARCH_BITS == 32 ? 34 : 26]; -} CPUMCPU, *PCPUMCPU; + uint8_t abPadding2[64 - (HC_ARCH_BITS == 64 ? 20 : 12) - 20 - (HC_ARCH_BITS == 64 ? 8 : 4) - 4 - 1 - 2]; +} CPUMCPU; /** Pointer to the CPUMCPU instance data residing in the shared VMCPU structure. */ typedef CPUMCPU *PCPUMCPU; diff -Nru virtualbox-4.1.12-dfsg/src/VBox/VMM/include/CPUMInternal.mac virtualbox-4.1.44-dfsg/src/VBox/VMM/include/CPUMInternal.mac --- virtualbox-4.1.12-dfsg/src/VBox/VMM/include/CPUMInternal.mac 2012-04-02 13:29:10.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/VMM/include/CPUMInternal.mac 2015-11-11 15:09:20.000000000 +0000 @@ -85,11 +85,6 @@ .abPadding2 resb 4 %endif -%ifdef VBOX_WITH_VMMR0_DISABLE_LAPIC_NMI - .pvApicBase RTR0PTR_RES 1 - .fApicDisVectors resd 1 -%endif - alignb 64 ; CPUMCTX debug stuff... .GuestEntry resb 1024 @@ -425,15 +420,21 @@ .fChanged resd 1 .offCPUM resd 1 .u32RetCode resd 1 - .fRawEntered resb 1 - .fRemEntered resb 1 -%if RTHCPTR_CB == 8 - .abPadding2 resb 26 + .abPadding1 resb 4 + +%ifdef VBOX_WITH_VMMR0_DISABLE_LAPIC_NMI + .pvApicBase RTR0PTR_RES 1 + .fApicDisVectors resd 1 + .fX2Apic resb 1 %else - .abPadding2 resb 34 + .abPadding3 resb (RTR0PTR_CB + 4 + 1) %endif + .fRawEntered resb 1 + .fRemEntered resb 1 + + .abPadding2 resb (64 - RTR3PTR_CB - RTR0PTR_CB - RTRCPTR_CB - 20 - RTR0PTR_CB - 4 - 1 - 2) endstruc diff -Nru virtualbox-4.1.12-dfsg/src/VBox/VMM/include/EMHandleRCTmpl.h virtualbox-4.1.44-dfsg/src/VBox/VMM/include/EMHandleRCTmpl.h --- virtualbox-4.1.12-dfsg/src/VBox/VMM/include/EMHandleRCTmpl.h 2012-04-02 13:29:10.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/VMM/include/EMHandleRCTmpl.h 2015-11-11 15:09:21.000000000 +0000 @@ -319,6 +319,7 @@ case VERR_VMM_RING0_ASSERTION: case VERR_VMM_HYPER_CR3_MISMATCH: case VERR_VMM_RING3_CALL_DISABLED: + case VERR_EM_GUEST_CPU_HANG: break; #ifdef EMHANDLERC_WITH_HWACCM diff -Nru virtualbox-4.1.12-dfsg/src/VBox/VMM/include/HWACCMInternal.h virtualbox-4.1.44-dfsg/src/VBox/VMM/include/HWACCMInternal.h --- virtualbox-4.1.12-dfsg/src/VBox/VMM/include/HWACCMInternal.h 2012-04-02 13:29:10.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/VMM/include/HWACCMInternal.h 2015-11-11 15:09:21.000000000 +0000 @@ -118,11 +118,11 @@ * Currently #NM and #PF only */ #ifdef VBOX_STRICT -#define HWACCM_VMX_TRAP_MASK RT_BIT(X86_XCPT_BP) | RT_BIT(X86_XCPT_DB) | RT_BIT(X86_XCPT_DE) | RT_BIT(X86_XCPT_NM) | RT_BIT(X86_XCPT_PF) | RT_BIT(X86_XCPT_UD) | RT_BIT(X86_XCPT_NP) | RT_BIT(X86_XCPT_SS) | RT_BIT(X86_XCPT_GP) | RT_BIT(X86_XCPT_MF) +#define HWACCM_VMX_TRAP_MASK RT_BIT(X86_XCPT_AC) | RT_BIT(X86_XCPT_BP) | RT_BIT(X86_XCPT_DB) | RT_BIT(X86_XCPT_DE) | RT_BIT(X86_XCPT_NM) | RT_BIT(X86_XCPT_PF) | RT_BIT(X86_XCPT_UD) | RT_BIT(X86_XCPT_NP) | RT_BIT(X86_XCPT_SS) | RT_BIT(X86_XCPT_GP) | RT_BIT(X86_XCPT_MF) #define HWACCM_SVM_TRAP_MASK HWACCM_VMX_TRAP_MASK #else -#define HWACCM_VMX_TRAP_MASK RT_BIT(X86_XCPT_DB) | RT_BIT(X86_XCPT_NM) | RT_BIT(X86_XCPT_PF) -#define HWACCM_SVM_TRAP_MASK RT_BIT(X86_XCPT_NM) | RT_BIT(X86_XCPT_PF) +#define HWACCM_VMX_TRAP_MASK RT_BIT(X86_XCPT_AC) | RT_BIT(X86_XCPT_DB) | RT_BIT(X86_XCPT_NM) | RT_BIT(X86_XCPT_PF) +#define HWACCM_SVM_TRAP_MASK RT_BIT(X86_XCPT_AC) | RT_BIT(X86_XCPT_DB) | RT_BIT(X86_XCPT_NM) | RT_BIT(X86_XCPT_PF) #endif /* All exceptions have to be intercept in emulated real-mode (minus NM & PF as they are always intercepted. */ #define HWACCM_VMX_TRAP_MASK_REALMODE RT_BIT(X86_XCPT_DE) | RT_BIT(X86_XCPT_DB) | RT_BIT(X86_XCPT_NMI) | RT_BIT(X86_XCPT_BP) | RT_BIT(X86_XCPT_OF) | RT_BIT(X86_XCPT_BR) | RT_BIT(X86_XCPT_UD) | RT_BIT(X86_XCPT_DF) | RT_BIT(X86_XCPT_CO_SEG_OVERRUN) | RT_BIT(X86_XCPT_TS) | RT_BIT(X86_XCPT_NP) | RT_BIT(X86_XCPT_SS) | RT_BIT(X86_XCPT_GP) | RT_BIT(X86_XCPT_MF) | RT_BIT(X86_XCPT_AC) | RT_BIT(X86_XCPT_MC) | RT_BIT(X86_XCPT_XF) diff -Nru virtualbox-4.1.12-dfsg/src/VBox/VMM/include/PATMInternal.h virtualbox-4.1.44-dfsg/src/VBox/VMM/include/PATMInternal.h --- virtualbox-4.1.12-dfsg/src/VBox/VMM/include/PATMInternal.h 2012-04-02 13:29:10.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/VMM/include/PATMInternal.h 2015-11-11 15:09:21.000000000 +0000 @@ -373,7 +373,7 @@ /** Maximum nr of pointers in the array. */ uint32_t cMaxPatches; /** Array of patch pointers for this page. */ - R3PTRTYPE(PPATCHINFO *) aPatch; + R3PTRTYPE(PPATCHINFO *) papPatch; } PATMPATCHPAGE, *PPATMPATCHPAGE; #define PATM_PATCHREC_FROM_COREOFFSET(a) (PPATMPATCHREC)((uintptr_t)a - RT_OFFSETOF(PATMPATCHREC, CoreOffset)) diff -Nru virtualbox-4.1.12-dfsg/src/VBox/VMM/include/PGMInline.h virtualbox-4.1.44-dfsg/src/VBox/VMM/include/PGMInline.h --- virtualbox-4.1.12-dfsg/src/VBox/VMM/include/PGMInline.h 2012-04-02 13:29:10.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/VMM/include/PGMInline.h 2015-11-11 15:09:21.000000000 +0000 @@ -491,7 +491,9 @@ STAM_COUNTER_INC(&pVM->pgm.s.CTX_SUFF(pStats)->CTX_MID_Z(Stat,PageMapTlbHits)); rc = VINF_SUCCESS; AssertPtr(pTlbe->pv); +# ifndef VBOX_WITH_2X_4GB_ADDR_SPACE_IN_R0 Assert(!pTlbe->pMap || RT_VALID_PTR(pTlbe->pMap->pv)); +# endif } else rc = pgmPhysPageLoadIntoTlbWithPage(pVM, pPage, GCPhys); diff -Nru virtualbox-4.1.12-dfsg/src/VBox/VMM/include/PGMInternal.h virtualbox-4.1.44-dfsg/src/VBox/VMM/include/PGMInternal.h --- virtualbox-4.1.12-dfsg/src/VBox/VMM/include/PGMInternal.h 2012-04-02 13:29:10.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/VMM/include/PGMInternal.h 2015-11-11 15:09:21.000000000 +0000 @@ -2996,10 +2996,14 @@ /** We're not in a state which permits writes to guest memory. * (Only used in strict builds.) */ bool fNoMorePhysWrites; - /** Set if PCI passthrough is enabled. */ + /** @cfgm{/PageFusionAllowed, boolean, false} + * Whether page fusion is allowed. */ + bool fPageFusionAllowed; + /** @cfgm{/PGM/PciPassThrough, boolean, false} + * Whether PCI passthrough is enabled. */ bool fPciPassthrough; /** Alignment padding that makes the next member start on a 8 byte boundary. */ - bool afAlignment1[2]; + bool afAlignment1[1]; /** Indicates that PGMR3FinalizeMappings has been called and that further * PGMR3MapIntermediate calls will be rejected. */ diff -Nru virtualbox-4.1.12-dfsg/src/VBox/VMM/testcase/Makefile.kmk virtualbox-4.1.44-dfsg/src/VBox/VMM/testcase/Makefile.kmk --- virtualbox-4.1.12-dfsg/src/VBox/VMM/testcase/Makefile.kmk 2012-04-02 13:29:11.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/VMM/testcase/Makefile.kmk 2015-11-11 15:09:21.000000000 +0000 @@ -26,37 +26,57 @@ PROGRAMS += tstVMStructRC tstAsmStructsRC endif ifndef VBOX_ONLY_EXTPACKS_USE_IMPLIBS - PROGRAMS += tstGlobalConfig tstInstrEmul + PROGRAMS += tstInstrEmul + if defined(VBOX_WITH_HARDENING) && "$(KBUILD_TARGET)" == "win" + PROGRAMS += tstGlobalConfigHardened + DLL += tstGlobalConfig + else + PROGRAMS += tstGlobalConfig + endif + ifdef VBOX_WITH_RAW_MODE - PROGRAMS += tstVMM tstVMM-HwAccm + if defined(VBOX_WITH_HARDENING) && "$(KBUILD_TARGET)" == "win" + PROGRAMS += tstVMMHardened + DLLS += tstVMM + else + PROGRAMS += tstVMM tstVMM-HwAccm + endif ifneq ($(KBUILD_TARGET),win) PROGRAMS += tstVMMFork endif endif ifdef VBOX_WITH_TESTCASES - PROGRAMS += \ - tstCFGM \ + if defined(VBOX_WITH_HARDENING) && "$(KBUILD_TARGET)" == "win" + PROGRAMS += tstCFGMHardened tstSSMHardened tstVMREQHardened tstMMHyperHeapHardened tstAnimateHardened + DLLS += tstCFGM tstSSM tstVMREQ tstMMHyperHeap tstAnimate + else + PROGRAMS += tstCFGM tstSSM tstVMREQ tstMMHyperHeap tstAnimate + endif + PROGRAMS += \ tstCompiler \ tstCompressionBenchmark \ tstIEMCheckMc \ - tstMMHyperHeap \ - tstSSM \ tstVMMR0CallHost-1 \ - tstVMMR0CallHost-2 \ - tstVMREQ + tstVMMR0CallHost-2 ifn1of ($(KBUILD_TARGET).$(KBUILD_TARGET_ARCH), solaris.x86 solaris.amd64 win.amd64 ) ## TODO: Fix the code. PROGRAMS += tstX86-1 endif - ifneq ($(KBUILD_TARGET),l4) - PROGRAMS += tstAnimate - endif ifdef VBOX_WITH_RAW_MODE - PROGRAMS += tstMicro - SYSMODS += tstMicroRC + if defined(VBOX_WITH_HARDENING) && "$(KBUILD_TARGET)" == "win" + PROGRAMS += tstMicroHardened + DLLS += tstMicro + else + PROGRAMS += tstMicro + endif + SYSMODS += tstMicroRC endif ifdef VBOX_WITH_PDM_ASYNC_COMPLETION - PROGRAMS += tstPDMAsyncCompletion - PROGRAMS += tstPDMAsyncCompletionStress + if defined(VBOX_WITH_HARDENING) && "$(KBUILD_TARGET)" == "win" + PROGRAMS += tstPDMAsyncCompletionHardened tstPDMAsyncCompletionStressHardened + DLLS += tstPDMAsyncCompletion tstPDMAsyncCompletionStress + else + PROGRAMS += tstPDMAsyncCompletion tstPDMAsyncCompletionStress + endif endif endif # VBOX_WITH_TESTCASES endif # !VBOX_ONLY_EXTPACKS_USE_IMPLIBS @@ -187,34 +207,90 @@ endif # VBOX_WITH_RAW_MODE -tstGlobalConfig_TEMPLATE= VBOXR3TSTEXE +# +# Glboal config tool. +# +if defined(VBOX_WITH_HARDENING) && "$(KBUILD_TARGET)" == "win" + tstGlobalConfigHardened_TEMPLATE = VBoxR3HardenedTstExe + tstGlobalConfigHardened_NAME = tstGlobalConfig + tstGlobalConfigHardened_DEFS = PROGRAM_NAME_STR=\"tstGlobalConfig\" + tstGlobalConfigHardened_SOURCES = ../../HostDrivers/Support/SUPR3HardenedMainTemplate.cpp + tstGlobalConfig_TEMPLATE = VBoxR3TstDll +else + tstGlobalConfig_TEMPLATE = VBOXR3TSTEXE +endif tstGlobalConfig_SOURCES = tstGlobalConfig.cpp tstGlobalConfig_LIBS = $(LIB_RUNTIME) +# +# Testcase for checking the repurposing of the IEM instruction code. +# tstIEMCheckMc_TEMPLATE = VBOXR3TSTEXE tstIEMCheckMc_SOURCES = tstIEMCheckMc.cpp tstIEMCheckMc_LIBS = $(LIB_RUNTIME) -tstMMHyperHeap_TEMPLATE = VBOXR3TSTEXE +# +# VMM heap testcase. +# +if defined(VBOX_WITH_HARDENING) && "$(KBUILD_TARGET)" == "win" + tstMMHyperHeapHardened_TEMPLATE = VBoxR3HardenedTstExe + tstMMHyperHeapHardened_NAME = tstMMHyperHeap + tstMMHyperHeapHardened_DEFS = PROGRAM_NAME_STR=\"tstMMHyperHeap\" + tstMMHyperHeapHardened_SOURCES = ../../HostDrivers/Support/SUPR3HardenedMainTemplate.cpp + tstMMHyperHeap_TEMPLATE = VBoxR3TstDll +else + tstMMHyperHeap_TEMPLATE = VBOXR3TSTEXE +endif tstMMHyperHeap_SOURCES = tstMMHyperHeap.cpp tstMMHyperHeap_LIBS = $(LIB_VMM) $(LIB_REM) $(LIB_RUNTIME) -tstSSM_TEMPLATE = VBOXR3TSTEXE +# +# Saved state manager testcase. +# +if defined(VBOX_WITH_HARDENING) && "$(KBUILD_TARGET)" == "win" + tstSSMHardened_TEMPLATE = VBoxR3HardenedTstExe + tstSSMHardened_NAME = tstSSM + tstSSMHardened_DEFS = PROGRAM_NAME_STR=\"tstSSM\" + tstSSMHardened_SOURCES = ../../HostDrivers/Support/SUPR3HardenedMainTemplate.cpp + tstSSM_TEMPLATE = VBoxR3TstDll +else + tstSSM_TEMPLATE = VBOXR3TSTEXE +endif tstSSM_INCS = $(VBOX_PATH_VMM_SRC)/include tstSSM_SOURCES = tstSSM.cpp tstSSM_LIBS = $(LIB_VMM) $(LIB_REM) $(LIB_RUNTIME) +# +# Test some EM assembly routines used in instruction emulation. +# tstInstrEmul_TEMPLATE = VBOXR3EXE tstInstrEmul_SOURCES = tstInstrEmul.cpp ../VMMAll/EMAllA.asm tstInstrEmul_LIBS = $(LIB_VMM) $(LIB_REM) $(LIB_RUNTIME) -tstCFGM_TEMPLATE = VBOXR3TSTEXE +# +# VMM configuration manager tests. +# +if defined(VBOX_WITH_HARDENING) && "$(KBUILD_TARGET)" == "win" + tstCFGMHardened_TEMPLATE = VBoxR3HardenedTstExe + tstCFGMHardened_NAME = tstCFGM + tstCFGMHardened_DEFS = PROGRAM_NAME_STR=\"tstCFGM\" + tstCFGMHardened_SOURCES = ../../HostDrivers/Support/SUPR3HardenedMainTemplate.cpp + tstCFGM_TEMPLATE = VBoxR3TstDll +else + tstCFGM_TEMPLATE = VBOXR3TSTEXE +endif tstCFGM_SOURCES = tstCFGM.cpp tstCFGM_LIBS = $(LIB_VMM) $(LIB_REM) $(LIB_RUNTIME) +# +# Comparing some compression algorithms considered for SSM usage. +# tstCompressionBenchmark_TEMPLATE = VBOXR3TSTEXE tstCompressionBenchmark_SOURCES = tstCompressionBenchmark.cpp +# +# Two testcases for checking the ring-3 "long jump" code. +# tstVMMR0CallHost-1_TEMPLATE = VBOXR3TSTEXE tstVMMR0CallHost-1_DEFS = VMM_R0_NO_SWITCH_STACK tstVMMR0CallHost-1_INCS = $(VBOX_PATH_VMM_SRC)/include @@ -228,11 +304,33 @@ tstVMMR0CallHost-2_EXTENDS = tstVMMR0CallHost-1 tstVMMR0CallHost-2_DEFS = VMM_R0_SWITCH_STACK -tstVMREQ_TEMPLATE = VBOXR3EXE +# +# For testing the VM request queue code. +# +if defined(VBOX_WITH_HARDENING) && "$(KBUILD_TARGET)" == "win" + tstVMREQHardened_TEMPLATE = VBOXR3HARDENEDEXE + tstVMREQHardened_NAME = tstVMREQ + tstVMREQHardened_DEFS = PROGRAM_NAME_STR=\"tstVMREQ\" + tstVMREQHardened_SOURCES = ../../HostDrivers/Support/SUPR3HardenedMainTemplate.cpp + tstVMREQ_TEMPLATE = VBOXR3 +else + tstVMREQ_TEMPLATE = VBOXR3EXE +endif tstVMREQ_SOURCES = tstVMREQ.cpp tstVMREQ_LIBS = $(LIB_VMM) $(LIB_REM) $(LIB_RUNTIME) -tstAnimate_TEMPLATE = VBOXR3EXE +# +# Tool for reanimate things like OS/2 dumps. +# +if defined(VBOX_WITH_HARDENING) && "$(KBUILD_TARGET)" == "win" + tstAnimateHardened_TEMPLATE = VBOXR3HARDENEDEXE + tstAnimateHardened_NAME = tstAnimate + tstAnimateHardened_DEFS = PROGRAM_NAME_STR=\"tstAnimate\" + tstAnimateHardened_SOURCES = ../../HostDrivers/Support/SUPR3HardenedMainTemplate.cpp + tstAnimate_TEMPLATE = VBOXR3 +else + tstAnimate_TEMPLATE = VBOXR3EXE +endif tstAnimate_SOURCES = tstAnimate.cpp tstAnimate_LIBS = $(LIB_VMM) $(LIB_REM) $(LIB_RUNTIME) @@ -246,19 +344,47 @@ ifdef VBOX_WITH_RAW_MODE - tstVMM_TEMPLATE = VBOXR3EXE + # + # Raw-mode VMM testcase. + # + if defined(VBOX_WITH_HARDENING) && "$(KBUILD_TARGET)" == "win" + tstVMMHardened_TEMPLATE = VBOXR3HARDENEDEXE + tstVMMHardened_NAME = tstVMM + tstVMMHardened_DEFS = PROGRAM_NAME_STR=\"tstVMM\" + tstVMMHardened_SOURCES = ../../HostDrivers/Support/SUPR3HardenedMainTemplate.cpp + tstVMM_TEMPLATE = VBOXR3 + else + tstVMM_TEMPLATE = VBOXR3EXE + endif tstVMM_SOURCES = tstVMM.cpp tstVMM_LIBS = $(LIB_VMM) $(LIB_REM) $(LIB_RUNTIME) - tstVMM-HwAccm_TEMPLATE = VBOXR3EXE - tstVMM-HwAccm_SOURCES = tstVMM-HwAccm.cpp - tstVMM-HwAccm_LIBS = $(LIB_VMM) $(LIB_REM) $(LIB_RUNTIME) - + # + # HM VMM testcase. + # + tstVMM-HwAccm_TEMPLATE = VBOXR3EXE + tstVMM-HwAccm_SOURCES = tstVMM-HwAccm.cpp + tstVMM-HwAccm_LIBS = $(LIB_VMM) $(LIB_REM) $(LIB_RUNTIME) + + # + # VMM host process fork test case (memory ++). + # tstVMMFork_TEMPLATE = VBOXR3EXE tstVMMFork_SOURCES = tstVMMFork.cpp tstVMMFork_LIBS = $(LIB_VMM) $(LIB_REM) $(LIB_RUNTIME) - tstMicro_TEMPLATE = VBOXR3EXE + # + # Raw-mode micro benchmark. + # + if defined(VBOX_WITH_HARDENING) && "$(KBUILD_TARGET)" == "win" + tstMicroHardened_TEMPLATE = VBOXR3HARDENEDEXE + tstMicroHardened_NAME = tstMicro + tstMicroHardened_DEFS = PROGRAM_NAME_STR=\"tstMicro\" + tstMicroHardened_SOURCES = ../../HostDrivers/Support/SUPR3HardenedMainTemplate.cpp + tstMicro_TEMPLATE = VBOXR3 + else + tstMicro_TEMPLATE = VBOXR3EXE + endif tstMicro_SOURCES = tstMicro.cpp tstMicro_LIBS = $(LIB_VMM) $(LIB_REM) $(LIB_RUNTIME) @@ -283,12 +409,34 @@ endif # VBOX_WITH_RAW_MODE ifdef VBOX_WITH_PDM_ASYNC_COMPLETION - tstPDMAsyncCompletion_TEMPLATE = VBOXR3EXE + # + # PDM asynchronous completation test. + # + if defined(VBOX_WITH_HARDENING) && "$(KBUILD_TARGET)" == "win" + tstPDMAsyncCompletionHardened_TEMPLATE = VBOXR3HARDENEDEXE + tstPDMAsyncCompletionHardened_NAME = tstPDMAsyncCompletion + tstPDMAsyncCompletionHardened_DEFS = PROGRAM_NAME_STR=\"tstPDMAsyncCompletion\" + tstPDMAsyncCompletionHardened_SOURCES = ../../HostDrivers/Support/SUPR3HardenedMainTemplate.cpp + tstPDMAsyncCompletion_TEMPLATE = VBOXR3 + else + tstPDMAsyncCompletion_TEMPLATE = VBOXR3EXE + endif tstPDMAsyncCompletion_INCS = $(VBOX_PATH_VMM_SRC)/include tstPDMAsyncCompletion_SOURCES = tstPDMAsyncCompletion.cpp tstPDMAsyncCompletion_LIBS = $(LIB_VMM) $(LIB_REM) $(LIB_RUNTIME) - tstPDMAsyncCompletionStress_TEMPLATE = VBOXR3EXE + # + # PDM asynchronous completation stress test. + # + if defined(VBOX_WITH_HARDENING) && "$(KBUILD_TARGET)" == "win" + tstPDMAsyncCompletionStressHardened_TEMPLATE = VBOXR3HARDENEDEXE + tstPDMAsyncCompletionStressHardened_NAME = tstPDMAsyncCompletionStress + tstPDMAsyncCompletionStressHardened_DEFS = PROGRAM_NAME_STR=\"tstPDMAsyncCompletionStress\" + tstPDMAsyncCompletionStressHardened_SOURCES = ../../HostDrivers/Support/SUPR3HardenedMainTemplate.cpp + tstPDMAsyncCompletionStress_TEMPLATE = VBOXR3 + else + tstPDMAsyncCompletionStress_TEMPLATE = VBOXR3EXE + endif tstPDMAsyncCompletionStress_INCS = $(VBOX_PATH_VMM_SRC)/include tstPDMAsyncCompletionStress_SOURCES = tstPDMAsyncCompletionStress.cpp tstPDMAsyncCompletionStress_LIBS = $(LIB_VMM) $(LIB_REM) $(LIB_RUNTIME) diff -Nru virtualbox-4.1.12-dfsg/src/VBox/VMM/testcase/tstAnimate.cpp virtualbox-4.1.44-dfsg/src/VBox/VMM/testcase/tstAnimate.cpp --- virtualbox-4.1.12-dfsg/src/VBox/VMM/testcase/tstAnimate.cpp 2012-04-02 13:29:11.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/VMM/testcase/tstAnimate.cpp 2015-11-11 15:09:21.000000000 +0000 @@ -616,7 +616,10 @@ } -int main(int argc, char **argv) +/** + * Entry point. + */ +extern "C" DECLEXPORT(int) TrustedMain(int argc, char **argv, char **envp) { int rcRet = 1; int rc; @@ -927,3 +930,14 @@ return rcRet; } + +#if !defined(VBOX_WITH_HARDENING) || !defined(RT_OS_WINDOWS) +/** + * Main entry point. + */ +int main(int argc, char **argv, char **envp) +{ + return TrustedMain(argc, argv, envp); +} +#endif + diff -Nru virtualbox-4.1.12-dfsg/src/VBox/VMM/testcase/tstCFGM.cpp virtualbox-4.1.44-dfsg/src/VBox/VMM/testcase/tstCFGM.cpp --- virtualbox-4.1.12-dfsg/src/VBox/VMM/testcase/tstCFGM.cpp 2012-04-02 13:29:11.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/VMM/testcase/tstCFGM.cpp 2015-11-11 15:09:21.000000000 +0000 @@ -33,7 +33,10 @@ #include -int main() +/** + * Entry point. + */ +extern "C" DECLEXPORT(int) TrustedMain(int argc, char **argv, char **envp) { /* * Init runtime. @@ -170,3 +173,15 @@ RTPrintf("tstCFGM: SUCCESS\n"); return rc; } + + +#if !defined(VBOX_WITH_HARDENING) || !defined(RT_OS_WINDOWS) +/** + * Main entry point. + */ +int main(int argc, char **argv, char **envp) +{ + return TrustedMain(argc, argv, envp); +} +#endif + diff -Nru virtualbox-4.1.12-dfsg/src/VBox/VMM/testcase/tstGlobalConfig.cpp virtualbox-4.1.44-dfsg/src/VBox/VMM/testcase/tstGlobalConfig.cpp --- virtualbox-4.1.12-dfsg/src/VBox/VMM/testcase/tstGlobalConfig.cpp 2012-04-02 13:29:11.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/VMM/testcase/tstGlobalConfig.cpp 2015-11-11 15:09:22.000000000 +0000 @@ -38,7 +38,10 @@ } -int main(int argc, char **argv) +/** + * Entry point. + */ +extern "C" DECLEXPORT(int) TrustedMain(int argc, char **argv, char **envp) { RTR3Init(); @@ -120,3 +123,15 @@ return RT_FAILURE(rc) ? 1 : 0; } + + +#if !defined(VBOX_WITH_HARDENING) || !defined(RT_OS_WINDOWS) +/** + * Main entry point. + */ +int main(int argc, char **argv, char **envp) +{ + return TrustedMain(argc, argv, envp); +} +#endif + diff -Nru virtualbox-4.1.12-dfsg/src/VBox/VMM/testcase/tstMicro.cpp virtualbox-4.1.44-dfsg/src/VBox/VMM/testcase/tstMicro.cpp --- virtualbox-4.1.12-dfsg/src/VBox/VMM/testcase/tstMicro.cpp 2012-04-02 13:29:11.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/VMM/testcase/tstMicro.cpp 2015-11-11 15:09:22.000000000 +0000 @@ -334,7 +334,10 @@ } -int main(int argc, char **argv) +/** + * Entry point. + */ +extern "C" DECLEXPORT(int) TrustedMain(int argc, char **argv, char **envp) { int rcRet = 0; /* error count. */ @@ -372,3 +375,15 @@ return rcRet; } + + +#if !defined(VBOX_WITH_HARDENING) || !defined(RT_OS_WINDOWS) +/** + * Main entry point. + */ +int main(int argc, char **argv, char **envp) +{ + return TrustedMain(argc, argv, envp); +} +#endif + diff -Nru virtualbox-4.1.12-dfsg/src/VBox/VMM/testcase/tstMMHyperHeap.cpp virtualbox-4.1.44-dfsg/src/VBox/VMM/testcase/tstMMHyperHeap.cpp --- virtualbox-4.1.12-dfsg/src/VBox/VMM/testcase/tstMMHyperHeap.cpp 2012-04-02 13:29:11.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/VMM/testcase/tstMMHyperHeap.cpp 2015-11-11 15:09:22.000000000 +0000 @@ -37,7 +37,10 @@ #define NUM_CPUS 16 -int main(int argc, char **argv) +/** + * Entry point. + */ +extern "C" DECLEXPORT(int) TrustedMain(int argc, char **argv, char **envp) { /* @@ -233,3 +236,15 @@ #endif return 0; } + + +#if !defined(VBOX_WITH_HARDENING) || !defined(RT_OS_WINDOWS) +/** + * Main entry point. + */ +int main(int argc, char **argv, char **envp) +{ + return TrustedMain(argc, argv, envp); +} +#endif + diff -Nru virtualbox-4.1.12-dfsg/src/VBox/VMM/testcase/tstPDMAsyncCompletion.cpp virtualbox-4.1.44-dfsg/src/VBox/VMM/testcase/tstPDMAsyncCompletion.cpp --- virtualbox-4.1.12-dfsg/src/VBox/VMM/testcase/tstPDMAsyncCompletion.cpp 2012-04-02 13:29:11.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/VMM/testcase/tstPDMAsyncCompletion.cpp 2015-11-11 15:09:22.000000000 +0000 @@ -72,7 +72,10 @@ } } -int main(int argc, char *argv[]) +/** + * Entry point. + */ +extern "C" DECLEXPORT(int) TrustedMain(int argc, char **argv, char **envp) { int rcRet = 0; /* error count */ int rc = VINF_SUCCESS; @@ -256,3 +259,14 @@ return rcRet; } + +#if !defined(VBOX_WITH_HARDENING) || !defined(RT_OS_WINDOWS) +/** + * Main entry point. + */ +int main(int argc, char **argv, char **envp) +{ + return TrustedMain(argc, argv, envp); +} +#endif + diff -Nru virtualbox-4.1.12-dfsg/src/VBox/VMM/testcase/tstPDMAsyncCompletionStress.cpp virtualbox-4.1.44-dfsg/src/VBox/VMM/testcase/tstPDMAsyncCompletionStress.cpp --- virtualbox-4.1.12-dfsg/src/VBox/VMM/testcase/tstPDMAsyncCompletionStress.cpp 2012-04-02 13:29:11.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/VMM/testcase/tstPDMAsyncCompletionStress.cpp 2015-11-11 15:09:22.000000000 +0000 @@ -567,7 +567,10 @@ RTMemFree(g_pbTestPattern); } -int main(int argc, char *argv[]) +/** + * Entry point. + */ +extern "C" DECLEXPORT(int) TrustedMain(int argc, char **argv, char **envp) { int rcRet = 0; /* error count */ int rc = VINF_SUCCESS; @@ -629,3 +632,14 @@ return rcRet; } + +#if !defined(VBOX_WITH_HARDENING) || !defined(RT_OS_WINDOWS) +/** + * Main entry point. + */ +int main(int argc, char **argv, char **envp) +{ + return TrustedMain(argc, argv, envp); +} +#endif + diff -Nru virtualbox-4.1.12-dfsg/src/VBox/VMM/testcase/tstSSM.cpp virtualbox-4.1.44-dfsg/src/VBox/VMM/testcase/tstSSM.cpp --- virtualbox-4.1.12-dfsg/src/VBox/VMM/testcase/tstSSM.cpp 2012-04-02 13:29:11.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/VMM/testcase/tstSSM.cpp 2015-11-11 15:09:22.000000000 +0000 @@ -31,6 +31,7 @@ #include #include #include +#include #include #include #include @@ -436,7 +437,7 @@ /* next */ cb -= PAGE_SIZE; pu8Org += PAGE_SIZE; - if (pu8Org > &gabBigMem[sizeof(gabBigMem)]) + if (pu8Org >= &gabBigMem[sizeof(gabBigMem)]) pu8Org = &gabBigMem[0]; } @@ -500,7 +501,7 @@ /* next */ cb -= PAGE_SIZE; pu8Org += PAGE_SIZE; - if (pu8Org > &gabBigMem[sizeof(gabBigMem)]) + if (pu8Org >= &gabBigMem[sizeof(gabBigMem)]) pu8Org = &gabBigMem[0]; } @@ -674,7 +675,10 @@ } -int main(int argc, char **argv) +/** + * Entry point. + */ +extern "C" DECLEXPORT(int) TrustedMain(int argc, char **argv, char **envp) { /* * Init runtime and static data. @@ -900,7 +904,21 @@ return 1; } + /* delete */ + RTFileDelete(pszFilename); + RTPrintf("tstSSM: SUCCESS\n"); return 0; } + +#if !defined(VBOX_WITH_HARDENING) || !defined(RT_OS_WINDOWS) +/** + * Main entry point. + */ +int main(int argc, char **argv, char **envp) +{ + return TrustedMain(argc, argv, envp); +} +#endif + diff -Nru virtualbox-4.1.12-dfsg/src/VBox/VMM/testcase/tstVMM.cpp virtualbox-4.1.44-dfsg/src/VBox/VMM/testcase/tstVMM.cpp --- virtualbox-4.1.12-dfsg/src/VBox/VMM/testcase/tstVMM.cpp 2012-04-02 13:29:11.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/VMM/testcase/tstVMM.cpp 2015-11-11 15:09:22.000000000 +0000 @@ -174,7 +174,10 @@ } -int main(int argc, char **argv) +/** + * Entry point. + */ +extern "C" DECLEXPORT(int) TrustedMain(int argc, char **argv, char **envp) { /* * Init runtime and the test environment. @@ -292,6 +295,9 @@ /* * Cleanup. */ + rc = VMR3PowerOff(pVM); + if (RT_FAILURE(rc)) + RTTestFailed(hTest, "VMR3PowerOff failed: rc=%Rrc\n", rc); rc = VMR3Destroy(pVM); if (RT_FAILURE(rc)) RTTestFailed(hTest, "VMR3Destroy failed: rc=%Rrc\n", rc); @@ -301,3 +307,15 @@ return RTTestSummaryAndDestroy(hTest); } + + +#if !defined(VBOX_WITH_HARDENING) || !defined(RT_OS_WINDOWS) +/** + * Main entry point. + */ +int main(int argc, char **argv, char **envp) +{ + return TrustedMain(argc, argv, envp); +} +#endif + diff -Nru virtualbox-4.1.12-dfsg/src/VBox/VMM/testcase/tstVMMFork.cpp virtualbox-4.1.44-dfsg/src/VBox/VMM/testcase/tstVMMFork.cpp --- virtualbox-4.1.12-dfsg/src/VBox/VMM/testcase/tstVMMFork.cpp 2012-04-02 13:29:11.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/VMM/testcase/tstVMMFork.cpp 2015-11-11 15:09:22.000000000 +0000 @@ -145,16 +145,22 @@ /* * Cleanup. */ + rc = VMR3PowerOff(pVM); + if (!RT_SUCCESS(rc)) + { + RTPrintf(TESTCASE ": error: failed to power off vm! rc=%Rrc\n", rc); + rcErrors++; + } rc = VMR3Destroy(pVM); if (!RT_SUCCESS(rc)) { - RTPrintf(TESTCASE ": error: failed to destroy vm! rc=%d\n", rc); + RTPrintf(TESTCASE ": error: failed to destroy vm! rc=%Rrc\n", rc); rcErrors++; } } else { - RTPrintf(TESTCASE ": fatal error: failed to create vm! rc=%d\n", rc); + RTPrintf(TESTCASE ": fatal error: failed to create vm! rc=%Rrc\n", rc); rcErrors++; } diff -Nru virtualbox-4.1.12-dfsg/src/VBox/VMM/testcase/tstVMREQ.cpp virtualbox-4.1.44-dfsg/src/VBox/VMM/testcase/tstVMREQ.cpp --- virtualbox-4.1.12-dfsg/src/VBox/VMM/testcase/tstVMREQ.cpp 2012-04-02 13:29:11.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/VMM/testcase/tstVMREQ.cpp 2015-11-11 15:09:22.000000000 +0000 @@ -208,8 +208,10 @@ } - -int main(int argc, char **argv) +/** + * Entry point. + */ +extern "C" DECLEXPORT(int) TrustedMain(int argc, char **argv, char **envp) { RTR3InitAndSUPLib(); RTPrintf(TESTCASE ": TESTING...\n"); @@ -283,6 +285,12 @@ /* * Cleanup. */ + rc = VMR3PowerOff(pVM); + if (!RT_SUCCESS(rc)) + { + RTPrintf(TESTCASE ": error: failed to power off vm! rc=%Rrc\n", rc); + g_cErrors++; + } rc = VMR3Destroy(pVM); if (!RT_SUCCESS(rc)) { @@ -306,3 +314,15 @@ return !!g_cErrors; } + + +#if !defined(VBOX_WITH_HARDENING) || !defined(RT_OS_WINDOWS) +/** + * Main entry point. + */ +int main(int argc, char **argv, char **envp) +{ + return TrustedMain(argc, argv, envp); +} +#endif + diff -Nru virtualbox-4.1.12-dfsg/src/VBox/VMM/testcase/tstVMStructRC.cpp virtualbox-4.1.44-dfsg/src/VBox/VMM/testcase/tstVMStructRC.cpp --- virtualbox-4.1.12-dfsg/src/VBox/VMM/testcase/tstVMStructRC.cpp 2012-04-02 13:29:11.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/VMM/testcase/tstVMStructRC.cpp 2015-11-11 15:09:22.000000000 +0000 @@ -1201,7 +1201,7 @@ GEN_CHECK_OFF(PATMPATCHPAGE, pHighestAddrGC); GEN_CHECK_OFF(PATMPATCHPAGE, cCount); GEN_CHECK_OFF(PATMPATCHPAGE, cMaxPatches); - GEN_CHECK_OFF(PATMPATCHPAGE, aPatch); + GEN_CHECK_OFF(PATMPATCHPAGE, papPatch); return (0); } diff -Nru virtualbox-4.1.12-dfsg/src/VBox/VMM/testcase/tstVMStructSize.cpp virtualbox-4.1.44-dfsg/src/VBox/VMM/testcase/tstVMStructSize.cpp --- virtualbox-4.1.12-dfsg/src/VBox/VMM/testcase/tstVMStructSize.cpp 2012-04-02 13:29:11.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/VMM/testcase/tstVMStructSize.cpp 2015-11-11 15:09:22.000000000 +0000 @@ -264,8 +264,10 @@ CHECK_MEMBER_ALIGNMENT(VM, aCpus[1].cpum.s.Guest, 64); CHECK_MEMBER_ALIGNMENT(VM, aCpus[0].cpum.s.Hyper, 64); CHECK_MEMBER_ALIGNMENT(VM, aCpus[1].cpum.s.Hyper, 64); + CHECK_MEMBER_ALIGNMENT(VM, aCpus[0].cpum.s.GuestMsr, 64); + CHECK_MEMBER_ALIGNMENT(VM, aCpus[0].cpum.s.pHyperCoreR3, 64); #ifdef VBOX_WITH_VMMR0_DISABLE_LAPIC_NMI - CHECK_MEMBER_ALIGNMENT(VM, cpum.s.pvApicBase, 8); + CHECK_MEMBER_ALIGNMENT(VM, aCpus[0].cpum.s.pvApicBase, 8); #endif CHECK_MEMBER_ALIGNMENT(VM, cpum.s.GuestEntry, 64); diff -Nru virtualbox-4.1.12-dfsg/src/VBox/VMM/VMMAll/CPUMAllRegs.cpp virtualbox-4.1.44-dfsg/src/VBox/VMM/VMMAll/CPUMAllRegs.cpp --- virtualbox-4.1.12-dfsg/src/VBox/VMM/VMMAll/CPUMAllRegs.cpp 2012-04-02 13:29:08.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/VMM/VMMAll/CPUMAllRegs.cpp 2015-11-11 15:09:16.000000000 +0000 @@ -890,8 +890,8 @@ default: /* In X2APIC specification this range is reserved for APIC control. */ - if ( idMsr >= MSR_IA32_APIC_START - && idMsr < MSR_IA32_APIC_END) + if ( idMsr >= MSR_IA32_X2APIC_START + && idMsr <= MSR_IA32_X2APIC_END) { rc = PDMApicReadMSR(pVCpu->CTX_SUFF(pVM), pVCpu->idCpu, idMsr, puValue); if (RT_SUCCESS(rc)) @@ -1057,8 +1057,8 @@ default: /* In X2APIC specification this range is reserved for APIC control. */ - if ( idMsr >= MSR_IA32_APIC_START - && idMsr < MSR_IA32_APIC_END) + if ( idMsr >= MSR_IA32_X2APIC_START + && idMsr <= MSR_IA32_X2APIC_END) { rc = PDMApicWriteMSR(pVCpu->CTX_SUFF(pVM), pVCpu->idCpu, idMsr, uValue); if (rc != VINF_SUCCESS) diff -Nru virtualbox-4.1.12-dfsg/src/VBox/VMM/VMMAll/EMAll.cpp virtualbox-4.1.44-dfsg/src/VBox/VMM/VMMAll/EMAll.cpp --- virtualbox-4.1.12-dfsg/src/VBox/VMM/VMMAll/EMAll.cpp 2012-04-02 13:29:08.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/VMM/VMMAll/EMAll.cpp 2015-11-11 15:09:16.000000000 +0000 @@ -183,8 +183,12 @@ { if (PAGE_ADDRESS(InstrGC) == PAGE_ADDRESS(InstrGC + sizeof(State.aOpcode) - 1)) { - if (rc == VERR_PAGE_TABLE_NOT_PRESENT) - HWACCMInvalidatePage(pVCpu, InstrGC); + /* + * If we fail to find the page via the guest's page tables we invalidate the page + * in the host TLB (pertaining to the guest in the NestedPaging case). See #6043 + */ + if (rc == VERR_PAGE_TABLE_NOT_PRESENT || rc == VERR_PAGE_NOT_PRESENT) + HWACCMInvalidatePage(pVCpu, InstrGC); Log(("emDisCoreOne: read failed with %d\n", rc)); return rc; @@ -272,8 +276,12 @@ { if (PAGE_ADDRESS(GCPtrInstr) == PAGE_ADDRESS(GCPtrInstr + sizeof(State.aOpcode) - 1)) { - if (rc == VERR_PAGE_TABLE_NOT_PRESENT) - HWACCMInvalidatePage(pVCpu, GCPtrInstr); + /* + * If we fail to find the page via the guest's page tables we invalidate the page + * in the host TLB (pertaining to the guest in the NestedPaging case). See #6043 + */ + if (rc == VERR_PAGE_TABLE_NOT_PRESENT || rc == VERR_PAGE_NOT_PRESENT) + HWACCMInvalidatePage(pVCpu, GCPtrInstr); Log(("EMInterpretDisasOneEx: read failed with %d\n", rc)); return rc; diff -Nru virtualbox-4.1.12-dfsg/src/VBox/VMM/VMMAll/IOMAllMMIO.cpp virtualbox-4.1.44-dfsg/src/VBox/VMM/VMMAll/IOMAllMMIO.cpp --- virtualbox-4.1.12-dfsg/src/VBox/VMM/VMMAll/IOMAllMMIO.cpp 2012-04-02 13:29:08.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/VMM/VMMAll/IOMAllMMIO.cpp 2015-11-11 15:09:16.000000000 +0000 @@ -614,7 +614,11 @@ /* Note: This will fail in R0 or RC if it hits an access handler. That isn't a problem though since the operation can be restarted in REM. */ #ifdef IN_RC - return MMGCRamReadNoTrapHandler(pDest, (void *)(uintptr_t)GCSrc, cb); + int rc = MMGCRamReadNoTrapHandler(pDest, (void *)(uintptr_t)GCSrc, cb); + /* Page may be protected and not directly accessible. */ + if (rc == VERR_ACCESS_DENIED) + rc = VINF_IOM_HC_IOPORT_WRITE; + return rc; #else return PGMPhysReadGCPtr(pVCpu, pDest, GCSrc, cb); #endif @@ -1516,7 +1520,6 @@ PDISCPUSTATE pDis = &pVCpu->iom.s.DisState; unsigned cbOp; rc = EMInterpretDisasOne(pVM, pVCpu, pCtxCore, pDis, &cbOp); - AssertRC(rc); if (RT_FAILURE(rc)) { iomMmioReleaseRange(pVM, pRange); @@ -1693,7 +1696,14 @@ if (rc2 == VERR_SEM_BUSY) return VINF_IOM_HC_MMIO_READ_WRITE; #endif - VBOXSTRICTRC rcStrict = iomMMIOHandler(pVM, (uint32_t)uErrorCode, pCtxCore, GCPhysFault, iomMmioGetRange(pVM, GCPhysFault)); + PIOMMMIORANGE pRange = iomMmioGetRange(pVM, GCPhysFault); + if (RT_UNLIKELY(!pRange)) + { + IOM_UNLOCK(pVM); + return VERR_IOM_MMIO_RANGE_NOT_FOUND; + } + + VBOXSTRICTRC rcStrict = iomMMIOHandler(pVM, (uint32_t)uErrorCode, pCtxCore, GCPhysFault, pRange); IOM_UNLOCK(pVM); return VBOXSTRICTRC_VAL(rcStrict); } diff -Nru virtualbox-4.1.12-dfsg/src/VBox/VMM/VMMAll/PGMAllPhys.cpp virtualbox-4.1.44-dfsg/src/VBox/VMM/VMMAll/PGMAllPhys.cpp --- virtualbox-4.1.12-dfsg/src/VBox/VMM/VMMAll/PGMAllPhys.cpp 2012-04-02 13:29:08.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/VMM/VMMAll/PGMAllPhys.cpp 2015-11-11 15:09:17.000000000 +0000 @@ -3251,11 +3251,17 @@ /* copy */ size_t cbRead = PAGE_SIZE - ((RTGCUINTPTR)GCPtrSrc & PAGE_OFFSET_MASK); - rc = PGMPhysRead(pVM, GCPhys, pvDst, cbRead); - if (cbRead >= cb || RT_FAILURE(rc)) - return rc; + if (cbRead < cb) + { + rc = PGMPhysRead(pVM, GCPhys, pvDst, cbRead); + if (RT_FAILURE(rc)) + return rc; + } + else /* Last page (cbRead is PAGE_SIZE, we only need cb!) */ + return PGMPhysRead(pVM, GCPhys, pvDst, cb); /* next */ + Assert(cb > cbRead); cb -= cbRead; pvDst = (uint8_t *)pvDst + cbRead; GCPtrSrc += cbRead; @@ -3341,11 +3347,17 @@ /* copy */ size_t cbWrite = PAGE_SIZE - ((RTGCUINTPTR)GCPtrDst & PAGE_OFFSET_MASK); - rc = PGMPhysWrite(pVM, GCPhys, pvSrc, cbWrite); - if (cbWrite >= cb || RT_FAILURE(rc)) - return rc; + if (cbWrite < cb) + { + rc = PGMPhysWrite(pVM, GCPhys, pvSrc, cbWrite); + if (RT_FAILURE(rc)) + return rc; + } + else /* Last page (cbWrite is PAGE_SIZE, we only need cb!) */ + rc = PGMPhysWrite(pVM, GCPhys, pvSrc, cb); /* next */ + Assert(cb > cbWrite); cb -= cbWrite; pvSrc = (uint8_t *)pvSrc + cbWrite; GCPtrDst += cbWrite; diff -Nru virtualbox-4.1.12-dfsg/src/VBox/VMM/VMMAll/PGMAllPool.cpp virtualbox-4.1.44-dfsg/src/VBox/VMM/VMMAll/PGMAllPool.cpp --- virtualbox-4.1.12-dfsg/src/VBox/VMM/VMMAll/PGMAllPool.cpp 2012-04-02 13:29:08.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/VMM/VMMAll/PGMAllPool.cpp 2015-11-11 15:09:17.000000000 +0000 @@ -3693,17 +3693,22 @@ uint32_t iUserTable = pUser->iUserTable; /* - * Map the user page. + * Map the user page. Ignore references made by fictitious pages. */ PPGMPOOLPAGE pUserPage = &pPool->aPages[pUser->iUser]; + LogFlow(("pgmPoolTrackClearPageUser: clear %x in %s (%RGp) (flushing %s)\n", iUserTable, pgmPoolPoolKindToStr(pUserPage->enmKind), pUserPage->Core.Key, pgmPoolPoolKindToStr(pPage->enmKind))); union { uint64_t *pau64; uint32_t *pau32; } u; + if (pUserPage->idx < PGMPOOL_IDX_FIRST) + { + Assert(!pUserPage->pvPageR3); + return; + } u.pau64 = (uint64_t *)PGMPOOL_PAGE_2_PTR(pPool->CTX_SUFF(pVM), pUserPage); - LogFlow(("pgmPoolTrackClearPageUser: clear %x in %s (%RGp) (flushing %s)\n", iUserTable, pgmPoolPoolKindToStr(pUserPage->enmKind), pUserPage->Core.Key, pgmPoolPoolKindToStr(pPage->enmKind))); /* Safety precaution in case we change the paging for other modes too in the future. */ Assert(!pgmPoolIsPageLocked(pPage)); diff -Nru virtualbox-4.1.12-dfsg/src/VBox/VMM/VMMR0/CPUMR0.cpp virtualbox-4.1.44-dfsg/src/VBox/VMM/VMMR0/CPUMR0.cpp --- virtualbox-4.1.12-dfsg/src/VBox/VMM/VMMR0/CPUMR0.cpp 2012-04-02 13:29:08.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/VMM/VMMR0/CPUMR0.cpp 2015-11-11 15:09:17.000000000 +0000 @@ -4,7 +4,7 @@ */ /* - * Copyright (C) 2006-2007 Oracle Corporation + * Copyright (C) 2006-2013 Oracle Corporation * * This file is part of VirtualBox Open Source Edition (OSE), as * available from http://www.virtualbox.org. This file is free software; @@ -36,19 +36,50 @@ #include +/******************************************************************************* +* Structures and Typedefs * +*******************************************************************************/ #ifdef VBOX_WITH_VMMR0_DISABLE_LAPIC_NMI -/** Local APIC mappings */ -typedef struct +/** + * Local APIC mappings. + */ +typedef struct CPUMHOSTLAPIC { + /** Indicates that the entry is in use and have valid data. */ bool fEnabled; - uint64_t PhysBase; + /** Whether it's operating in X2APIC mode (EXTD). */ + bool fX2Apic; + /** The APIC version number. */ + uint32_t uVersion; + /** Has APIC_REG_LVT_THMR. Not used. */ + uint32_t fHasThermal; + /** The physical address of the APIC registers. */ + RTHCPHYS PhysBase; + /** The memory object entering the physical address. */ RTR0MEMOBJ hMemObj; + /** The mapping object for hMemObj. */ RTR0MEMOBJ hMapObj; + /** The mapping address APIC registers. + * @remarks Different CPUs may use the same physical address to map their + * APICs, so this pointer is only valid when on the CPU owning the + * APIC. */ void *pv; - uint32_t fHasThermal; } CPUMHOSTLAPIC; +#endif + +/******************************************************************************* +* Global Variables * +*******************************************************************************/ +#ifdef VBOX_WITH_VMMR0_DISABLE_LAPIC_NMI static CPUMHOSTLAPIC g_aLApics[RTCPUSET_MAX_CPUS]; +#endif + + +/******************************************************************************* +* Internal Functions * +*******************************************************************************/ +#ifdef VBOX_WITH_VMMR0_DISABLE_LAPIC_NMI static int cpumR0MapLocalApics(void); static void cpumR0UnmapLocalApics(void); #endif @@ -81,6 +112,54 @@ /** + * Check the CPUID features of this particular CPU and disable relevant features + * for the guest which do not exist on this CPU. We have seen systems where the + * X86_CPUID_FEATURE_ECX_MONITOR feature flag is only set on some host CPUs, see + * @{bugref 5436}. + * + * @note This function might be called simultaneously on more than one CPU! + * + * @param idCpu The identifier for the CPU the function is called on. + * @param pvUser1 Pointer to the VM structure. + * @param pvUser2 Ignored. + */ +static DECLCALLBACK(void) cpumR0CheckCpuid(RTCPUID idCpu, void *pvUser1, void *pvUser2) +{ + struct + { + uint32_t uLeave; /* leave to check */ + uint32_t ecx; /* which bits in ecx to unify between CPUs */ + uint32_t edx; /* which bits in edx to unify between CPUs */ + } aCpuidUnify[] + = + { + { 0x00000001, X86_CPUID_FEATURE_ECX_CX16 + | X86_CPUID_FEATURE_ECX_MONITOR, + X86_CPUID_FEATURE_EDX_CX8 } + }; + PVM pVM = (PVM)pvUser1; + PCPUM pCPUM = &pVM->cpum.s; + for (uint32_t i = 0; i < RT_ELEMENTS(aCpuidUnify); i++) + { + uint32_t uLeave = aCpuidUnify[i].uLeave; + uint32_t eax, ebx, ecx, edx; + + ASMCpuId_Idx_ECX(uLeave, 0, &eax, &ebx, &ecx, &edx); + PCPUMCPUID paLeaves; + if (uLeave < 0x80000000) + paLeaves = &pCPUM->aGuestCpuIdStd[uLeave - 0x00000000]; + else if (uLeave < 0xc0000000) + paLeaves = &pCPUM->aGuestCpuIdExt[uLeave - 0x80000000]; + else + paLeaves = &pCPUM->aGuestCpuIdCentaur[uLeave - 0xc0000000]; + /* unify important bits */ + ASMAtomicAndU32(&paLeaves->ecx, ecx | ~aCpuidUnify[i].ecx); + ASMAtomicAndU32(&paLeaves->edx, edx | ~aCpuidUnify[i].edx); + } +} + + +/** * Does Ring-0 CPUM initialization. * * This is mainly to check that the Host CPU mode is compatible @@ -177,6 +256,8 @@ } } } + + RTMpOnAll(cpumR0CheckCpuid, pVM, NULL); } @@ -640,14 +721,20 @@ #ifdef VBOX_WITH_VMMR0_DISABLE_LAPIC_NMI /** - * Worker for cpumR0MapLocalApics. Check each CPU for a present Local APIC. - * Play safe and treat each CPU separate. + * Per-CPU callback that probes the CPU for APIC support. + * + * @param idCpu The identifier for the CPU the function is called on. + * @param pvUser1 Ignored. + * @param pvUser2 Ignored. */ -static DECLCALLBACK(void) cpumR0MapLocalApicWorker(RTCPUID idCpu, void *pvUser1, void *pvUser2) +static DECLCALLBACK(void) cpumR0MapLocalApicCpuProber(RTCPUID idCpu, void *pvUser1, void *pvUser2) { int iCpu = RTMpCpuIdToSetIndex(idCpu); AssertReturnVoid(iCpu >= 0 && (unsigned)iCpu < RT_ELEMENTS(g_aLApics)); + /* + * Check for APIC support. + */ uint32_t u32MaxIdx, u32EBX, u32ECX, u32EDX; ASMCpuId(0, &u32MaxIdx, &u32EBX, &u32ECX, &u32EDX); if ( ( ( u32EBX == X86_CPUID_VENDOR_INTEL_EBX @@ -662,8 +749,11 @@ if ( (u32EDX & X86_CPUID_FEATURE_EDX_APIC) && (u32EDX & X86_CPUID_FEATURE_EDX_MSR)) { + /* + * Safe to access the MSR. Read it and calc the BASE (a little complicated). + */ uint64_t u64ApicBase = ASMRdMsr(MSR_IA32_APICBASE); - uint64_t u64Mask = UINT64_C(0x0000000ffffff000); + uint64_t u64Mask = MSR_IA32_APICBASE_BASE_MIN; /* see Intel Manual: Local APIC Status and Location: MAXPHYADDR default is bit 36 */ uint32_t u32MaxExtIdx; @@ -677,13 +767,68 @@ u64Mask = ((UINT64_C(1) << u32PhysBits) - 1) & UINT64_C(0xfffffffffffff000); } - g_aLApics[iCpu].fEnabled = true; - g_aLApics[iCpu].PhysBase = u64ApicBase & u64Mask; + AssertCompile(sizeof(g_aLApics[iCpu].PhysBase) == sizeof(u64ApicBase)); + g_aLApics[iCpu].PhysBase = u64ApicBase & u64Mask; + g_aLApics[iCpu].fEnabled = RT_BOOL(u64ApicBase & MSR_IA32_APICBASE_EN); + g_aLApics[iCpu].fX2Apic = (u64ApicBase & (MSR_IA32_APICBASE_EXTD | MSR_IA32_APICBASE_EN)) + == (MSR_IA32_APICBASE_EXTD | MSR_IA32_APICBASE_EN); } } } + +/** + * Per-CPU callback that verifies our APIC expectations. + * + * @param idCpu The identifier for the CPU the function is called on. + * @param pvUser1 Ignored. + * @param pvUser2 Ignored. + */ +static DECLCALLBACK(void) cpumR0MapLocalApicCpuChecker(RTCPUID idCpu, void *pvUser1, void *pvUser2) +{ + int iCpu = RTMpCpuIdToSetIndex(idCpu); + AssertReturnVoid(iCpu >= 0 && (unsigned)iCpu < RT_ELEMENTS(g_aLApics)); + if (!g_aLApics[iCpu].fEnabled) + return; + + /* + * 0x0X 82489 external APIC + * 0x1X Local APIC + * 0x2X..0xFF reserved + */ + uint32_t uApicVersion; + if (g_aLApics[iCpu].fX2Apic) + uApicVersion = ApicX2RegRead32(APIC_REG_VERSION); + else + uApicVersion = ApicRegRead(g_aLApics[iCpu].pv, APIC_REG_VERSION); + if ((APIC_REG_VERSION_GET_VER(uApicVersion) & 0xF0) == 0x10) + { + g_aLApics[iCpu].uVersion = uApicVersion; + g_aLApics[iCpu].fHasThermal = APIC_REG_VERSION_GET_MAX_LVT(uApicVersion) >= 5; + +#if 0 /* enable if you need it. */ + if (g_aLApics[iCpu].fX2Apic) + SUPR0Printf("CPUM: X2APIC %02u - ver %#010x, lint0=%#07x lint1=%#07x pc=%#07x thmr=%#07x\n", + iCpu, uApicVersion, + ApicX2RegRead32(APIC_REG_LVT_LINT0), ApicX2RegRead32(APIC_REG_LVT_LINT1), + ApicX2RegRead32(APIC_REG_LVT_PC), ApicX2RegRead32(APIC_REG_LVT_THMR) ); + else + SUPR0Printf("CPUM: APIC %02u at %RGp (mapped at %p) - ver %#010x, lint0=%#07x lint1=%#07x pc=%#07x thmr=%#07x\n", + iCpu, g_aLApics[iCpu].PhysBase, g_aLApics[iCpu].pv, uApicVersion, + ApicRegRead(g_aLApics[iCpu].pv, APIC_REG_LVT_LINT0), ApicRegRead(g_aLApics[iCpu].pv, APIC_REG_LVT_LINT1), + ApicRegRead(g_aLApics[iCpu].pv, APIC_REG_LVT_PC), ApicRegRead(g_aLApics[iCpu].pv, APIC_REG_LVT_THMR) ); +#endif + } + else + { + g_aLApics[iCpu].fEnabled = false; + g_aLApics[iCpu].fX2Apic = false; + SUPR0Printf("VBox/CPUM: Unsupported APIC version %#x (iCpu=%d)\n", uApicVersion, iCpu); + } +} + + /** * Map the MMIO page of each local APIC in the system. */ @@ -699,15 +844,13 @@ } /* - * Create mappings for all online CPUs we think have APICs. + * Create mappings for all online CPUs we think have legacy APICs. */ - /** @todo r=bird: This code is not adequately handling CPUs that are - * offline or unplugged at init time and later bought into action. */ - int rc = RTMpOnAll(cpumR0MapLocalApicWorker, NULL, NULL); + int rc = RTMpOnAll(cpumR0MapLocalApicCpuProber, NULL, NULL); for (unsigned iCpu = 0; RT_SUCCESS(rc) && iCpu < RT_ELEMENTS(g_aLApics); iCpu++) { - if (g_aLApics[iCpu].fEnabled) + if (g_aLApics[iCpu].fEnabled && !g_aLApics[iCpu].fX2Apic) { rc = RTR0MemObjEnterPhys(&g_aLApics[iCpu].hMemObj, g_aLApics[iCpu].PhysBase, PAGE_SIZE, RTMEM_CACHE_POLICY_MMIO); @@ -717,34 +860,47 @@ PAGE_SIZE, RTMEM_PROT_READ | RTMEM_PROT_WRITE); if (RT_SUCCESS(rc)) { - void *pvApicBase = RTR0MemObjAddress(g_aLApics[iCpu].hMapObj); - - /* - * 0x0X 82489 external APIC - * 0x1X Local APIC - * 0x2X..0xFF reserved - */ - uint32_t ApicVersion = ApicRegRead(pvApicBase, APIC_REG_VERSION); - if ((APIC_REG_VERSION_GET_VER(ApicVersion) & 0xF0) == 0x10) - { - g_aLApics[iCpu].fHasThermal = APIC_REG_VERSION_GET_MAX_LVT(ApicVersion) >= 5; - g_aLApics[iCpu].pv = pvApicBase; - continue; - } - - RTR0MemObjFree(g_aLApics[iCpu].hMapObj, true /* fFreeMappings */); + g_aLApics[iCpu].pv = RTR0MemObjAddress(g_aLApics[iCpu].hMapObj); + continue; } RTR0MemObjFree(g_aLApics[iCpu].hMemObj, true /* fFreeMappings */); } g_aLApics[iCpu].fEnabled = false; } + g_aLApics[iCpu].pv = NULL; } + + /* + * Check the APICs. + */ + if (RT_SUCCESS(rc)) + rc = RTMpOnAll(cpumR0MapLocalApicCpuChecker, NULL, NULL); + if (RT_FAILURE(rc)) { cpumR0UnmapLocalApics(); return rc; } +#ifdef LOG_ENABLED + /* + * Log the result (pretty useless, requires enabling CPUM in VBoxDrv + * and !VBOX_WITH_R0_LOGGING). + */ + if (LogIsEnabled()) + { + uint32_t cEnabled = 0; + uint32_t cX2Apics = 0; + for (unsigned iCpu = 0; iCpu < RT_ELEMENTS(g_aLApics); iCpu++) + if (g_aLApics[iCpu].fEnabled) + { + cEnabled++; + cX2Apics += g_aLApics[iCpu].fX2Apic; + } + Log(("CPUM: %u APICs, %u X2APICs\n", cEnabled, cX2Apics)); + } +#endif + return VINF_SUCCESS; } @@ -763,6 +919,7 @@ g_aLApics[iCpu].hMapObj = NIL_RTR0MEMOBJ; g_aLApics[iCpu].hMemObj = NIL_RTR0MEMOBJ; g_aLApics[iCpu].fEnabled = false; + g_aLApics[iCpu].fX2Apic = false; g_aLApics[iCpu].pv = NULL; } } @@ -770,17 +927,24 @@ /** - * Write the Local APIC mapping address of the current host CPU to CPUM to be - * able to access the APIC registers in the raw mode switcher for disabling/ - * re-enabling the NMI. Must be called with disabled preemption or disabled - * interrupts! + * Updates CPUMCPU::pvApicBase and CPUMCPU::fX2Apic prior to world switch. * - * @param pVM VM handle. + * Writes the Local APIC mapping address of the current host CPU to CPUMCPU so + * the world switchers can access the APIC registers for the purpose of + * disabling and re-enabling the NMIs. Must be called with disabled preemption + * or disabled interrupts! + * + * @param pVCpu Pointer to the cross context CPU structure of the + * calling EMT. * @param idHostCpu The ID of the current host CPU. */ -VMMR0DECL(void) CPUMR0SetLApic(PVM pVM, RTCPUID idHostCpu) +VMMR0DECL(void) CPUMR0SetLApic(PVMCPU pVCpu, RTCPUID idHostCpu) { - pVM->cpum.s.pvApicBase = g_aLApics[RTMpCpuIdToSetIndex(idHostCpu)].pv; + int idxCpu = RTMpCpuIdToSetIndex(idHostCpu); + pVCpu->cpum.s.pvApicBase = g_aLApics[idxCpu].pv; + pVCpu->cpum.s.fX2Apic = g_aLApics[idxCpu].fX2Apic; +// Log6(("CPUMR0SetLApic: pvApicBase=%p fX2Apic=%d\n", g_aLApics[idxCpu].pv, g_aLApics[idxCpu].fX2Apic)); } #endif /* VBOX_WITH_VMMR0_DISABLE_LAPIC_NMI */ + diff -Nru virtualbox-4.1.12-dfsg/src/VBox/VMM/VMMR0/GMMR0.cpp virtualbox-4.1.44-dfsg/src/VBox/VMM/VMMR0/GMMR0.cpp --- virtualbox-4.1.12-dfsg/src/VBox/VMM/VMMR0/GMMR0.cpp 2012-04-02 13:29:08.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/VMM/VMMR0/GMMR0.cpp 2015-11-11 15:09:17.000000000 +0000 @@ -164,6 +164,7 @@ #ifdef VBOX_STRICT # include #endif +#include #include #include #include @@ -174,6 +175,19 @@ /******************************************************************************* +* Defined Constants And Macros * +*******************************************************************************/ +/** @def VBOX_USE_CRIT_SECT_FOR_GIANT + * Use a critical section instead of a fast mutex for the giant GMM lock. + * + * @remarks This is primarily a way of avoiding the deadlock checks in the + * windows driver verifier. */ +#if defined(RT_OS_WINDOWS) || defined(DOXYGEN_RUNNING) +# define VBOX_USE_CRIT_SECT_FOR_GIANT +#endif + + +/******************************************************************************* * Structures and Typedefs * *******************************************************************************/ /** Pointer to set of free chunks. */ @@ -475,9 +489,15 @@ uint32_t u32Magic; /** The number of threads waiting on the mutex. */ uint32_t cMtxContenders; +#ifdef VBOX_USE_CRIT_SECT_FOR_GIANT + /** The critical section protecting the GMM. + * More fine grained locking can be implemented later if necessary. */ + RTCRITSECT GiantCritSect; +#else /** The fast mutex protecting the GMM. * More fine grained locking can be implemented later if necessary. */ RTSEMFASTMUTEX hMtx; +#endif #ifdef VBOX_STRICT /** The current mutex owner. */ RTNATIVETHREAD hMtxOwner; @@ -755,7 +775,11 @@ RTListInit(&pGMM->ChunkList); ASMBitSet(&pGMM->bmChunkId[0], NIL_GMM_CHUNKID); +#ifdef VBOX_USE_CRIT_SECT_FOR_GIANT + int rc = RTCritSectInit(&pGMM->GiantCritSect); +#else int rc = RTSemFastMutexCreate(&pGMM->hMtx); +#endif if (RT_SUCCESS(rc)) { unsigned iMtx; @@ -813,7 +837,11 @@ */ while (iMtx-- > 0) RTSemFastMutexDestroy(pGMM->aChunkMtx[iMtx].hMtx); +#ifdef VBOX_USE_CRIT_SECT_FOR_GIANT + RTCritSectDelete(&pGMM->GiantCritSect); +#else RTSemFastMutexDestroy(pGMM->hMtx); +#endif } pGMM->u32Magic = 0; @@ -848,8 +876,12 @@ /* Destroy the fundamentals. */ g_pGMM = NULL; pGMM->u32Magic = ~GMM_MAGIC; +#ifdef VBOX_USE_CRIT_SECT_FOR_GIANT + RTCritSectDelete(&pGMM->GiantCritSect); +#else RTSemFastMutexDestroy(pGMM->hMtx); pGMM->hMtx = NIL_RTSEMFASTMUTEX; +#endif /* Free any chunks still hanging around. */ RTAvlU32Destroy(&pGMM->pChunks, gmmR0TermDestroyChunk, pGMM); @@ -930,7 +962,11 @@ static int gmmR0MutexAcquire(PGMM pGMM) { ASMAtomicIncU32(&pGMM->cMtxContenders); +#ifdef VBOX_USE_CRIT_SECT_FOR_GIANT + int rc = RTCritSectEnter(&pGMM->GiantCritSect); +#else int rc = RTSemFastMutexRequest(pGMM->hMtx); +#endif ASMAtomicDecU32(&pGMM->cMtxContenders); AssertRC(rc); #ifdef VBOX_STRICT @@ -951,8 +987,12 @@ #ifdef VBOX_STRICT pGMM->hMtxOwner = NIL_RTNATIVETHREAD; #endif +#ifdef VBOX_USE_CRIT_SECT_FOR_GIANT + int rc = RTCritSectLeave(&pGMM->GiantCritSect); +#else int rc = RTSemFastMutexRelease(pGMM->hMtx); AssertRC(rc); +#endif return rc; } @@ -988,11 +1028,19 @@ pGMM->hMtxOwner = NIL_RTNATIVETHREAD; #endif ASMAtomicIncU32(&pGMM->cMtxContenders); +#ifdef VBOX_USE_CRIT_SECT_FOR_GIANT + int rc1 = RTCritSectLeave(&pGMM->GiantCritSect); AssertRC(rc1); +#else int rc1 = RTSemFastMutexRelease(pGMM->hMtx); AssertRC(rc1); +#endif RTThreadYield(); +#ifdef VBOX_USE_CRIT_SECT_FOR_GIANT + int rc2 = RTCritSectEnter(&pGMM->GiantCritSect); AssertRC(rc2); +#else int rc2 = RTSemFastMutexRequest(pGMM->hMtx); AssertRC(rc2); +#endif *puLockNanoTS = RTTimeSystemNanoTS(); ASMAtomicDecU32(&pGMM->cMtxContenders); #ifdef VBOX_STRICT @@ -1212,6 +1260,7 @@ * and leftover mappings. (This'll only catch private pages, * shared pages will be 'left behind'.) */ + /** @todo r=bird: This scanning+freeing could be optimized in bound mode! */ uint64_t cPrivatePages = pGVM->gmm.s.Stats.cPrivatePages; /* save */ unsigned iCountDown = 64; @@ -1223,7 +1272,9 @@ RTListForEachReverse(&pGMM->ChunkList, pChunk, GMMCHUNK, ListNode) { uint32_t const cFreeChunksOld = pGMM->cFreedChunks; - if (gmmR0CleanupVMScanChunk(pGMM, pGVM, pChunk)) + if ( ( !pGMM->fBoundMemoryMode + || pChunk->hGVM == pGVM->hSelf) + && gmmR0CleanupVMScanChunk(pGMM, pGVM, pChunk)) { /* We left the giant mutex, so reset the yield counters. */ uLockNanoTS = RTTimeSystemNanoTS(); @@ -1238,7 +1289,10 @@ iCountDown--; } if (pGMM->cFreedChunks != cFreeChunksOld) + { + fRedoFromStart = true; break; + } } } while (fRedoFromStart); @@ -1346,6 +1400,8 @@ */ static bool gmmR0CleanupVMScanChunk(PGMM pGMM, PGVM pGVM, PGMMCHUNK pChunk) { + Assert(!pGMM->fBoundMemoryMode || pChunk->hGVM == pGVM->hSelf); + /* * Look for pages belonging to the VM. * (Perform some internal checks while we're scanning.) @@ -2373,12 +2429,13 @@ /** - * Checks if we should start picking pages from chunks of other VMs. + * Checks if we should start picking pages from chunks of other VMs because + * we're getting close to the system memory or reserved limit. * * @returns @c true if we should, @c false if we should first try allocate more * chunks. */ -static bool gmmR0ShouldAllocatePagesInOtherChunks(PGVM pGVM) +static bool gmmR0ShouldAllocatePagesInOtherChunksBecauseOfLimits(PGVM pGVM) { /* * Don't allocate a new chunk if we're @@ -2406,6 +2463,24 @@ /** + * Checks if we should start picking pages from chunks of other VMs because + * there is a lot of free pages around. + * + * @returns @c true if we should, @c false if we should first try allocate more + * chunks. + */ +static bool gmmR0ShouldAllocatePagesInOtherChunksBecauseOfLotsFree(PGMM pGMM) +{ + /* + * Setting the limit at 16 chunks (32 MB) at the moment. + */ + if (pGMM->PrivateX.cFreePages >= GMM_CHUNK_NUM_PAGES * 16) + return true; + return false; +} + + +/** * Common worker for GMMR0AllocateHandyPages and GMMR0AllocatePages. * * @returns VBox status code: @@ -2529,8 +2604,12 @@ { /* Maybe we should try getting pages from chunks "belonging" to other VMs before allocating more chunks? */ - if (gmmR0ShouldAllocatePagesInOtherChunks(pGVM)) + bool fTriedOnSameAlready = false; + if (gmmR0ShouldAllocatePagesInOtherChunksBecauseOfLimits(pGVM)) + { iPage = gmmR0AllocatePagesFromSameNode(pGMM, pGVM, &pGMM->PrivateX, iPage, cPages, paPages); + fTriedOnSameAlready = true; + } /* Allocate memory from empty chunks. */ if (iPage < cPages) @@ -2540,6 +2619,16 @@ if (iPage < cPages) iPage = gmmR0AllocatePagesFromEmptyChunksOnSameNode(pGMM, pGVM, &pGMM->Shared, iPage, cPages, paPages); + /* If there is a lof of free pages spread around, try not waste + system memory on more chunks. (Should trigger defragmentation.) */ + if ( !fTriedOnSameAlready + && gmmR0ShouldAllocatePagesInOtherChunksBecauseOfLotsFree(pGMM)) + { + iPage = gmmR0AllocatePagesFromSameNode(pGMM, pGVM, &pGMM->PrivateX, iPage, cPages, paPages); + if (iPage < cPages) + iPage = gmmR0AllocatePagesIndiscriminately(pGMM, pGVM, &pGMM->PrivateX, iPage, cPages, paPages); + } + /* * Ok, try allocate new chunks. */ @@ -2781,7 +2870,7 @@ } } /* for each page to update */ - if (RT_SUCCESS(rc)) + if (RT_SUCCESS(rc) && cPagesToAlloc > 0) { #if defined(VBOX_STRICT) && 0 /** @todo re-test this later. Appeared to be a PGM init bug. */ for (iPage = 0; iPage < cPagesToAlloc; iPage++) diff -Nru virtualbox-4.1.12-dfsg/src/VBox/VMM/VMMR0/GVMMR0.cpp virtualbox-4.1.44-dfsg/src/VBox/VMM/VMMR0/GVMMR0.cpp --- virtualbox-4.1.12-dfsg/src/VBox/VMM/VMMR0/GVMMR0.cpp 2012-04-02 13:29:08.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/VMM/VMMR0/GVMMR0.cpp 2015-11-11 15:09:17.000000000 +0000 @@ -816,11 +816,7 @@ */ const uint32_t cbVM = RT_UOFFSETOF(VM, aCpus[cCpus]); const uint32_t cPages = RT_ALIGN_32(cbVM, PAGE_SIZE) >> PAGE_SHIFT; -#ifdef RT_OS_DARWIN /** @todo Figure out why this is broken. Is it only on snow leopard? */ - rc = RTR0MemObjAllocLow(&pGVM->gvmm.s.VMMemObj, (cPages + 1) << PAGE_SHIFT, false /* fExecutable */); -#else rc = RTR0MemObjAllocLow(&pGVM->gvmm.s.VMMemObj, cPages << PAGE_SHIFT, false /* fExecutable */); -#endif if (RT_SUCCESS(rc)) { PVM pVM = (PVM)RTR0MemObjAddress(pGVM->gvmm.s.VMMemObj); AssertPtr(pVM); diff -Nru virtualbox-4.1.12-dfsg/src/VBox/VMM/VMMR0/HWACCMR0.cpp virtualbox-4.1.44-dfsg/src/VBox/VMM/VMMR0/HWACCMR0.cpp --- virtualbox-4.1.12-dfsg/src/VBox/VMM/VMMR0/HWACCMR0.cpp 2012-04-02 13:29:08.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/VMM/VMMR0/HWACCMR0.cpp 2015-11-11 15:09:17.000000000 +0000 @@ -361,12 +361,12 @@ g_HvmR0.vmx.fUsingSUPR0EnableVTx = rc != VERR_NOT_SUPPORTED; if (g_HvmR0.vmx.fUsingSUPR0EnableVTx) { - AssertMsg(rc == VINF_SUCCESS || rc == VERR_VMX_IN_VMX_ROOT_MODE || rc == VERR_VMX_NO_VMX, ("%Rrc\n", rc)); + AssertLogRelMsg(rc == VINF_SUCCESS || rc == VERR_VMX_IN_VMX_ROOT_MODE || rc == VERR_VMX_NO_VMX, ("%Rrc\n", rc)); if (RT_SUCCESS(rc)) { g_HvmR0.vmx.fSupported = true; rc = SUPR0EnableVTx(false /* fEnable */); - AssertRC(rc); + AssertLogRelRC(rc); } } else @@ -420,9 +420,12 @@ * Enter root mode */ RTR0MEMOBJ hScatchMemObj; - rc = RTR0MemObjAllocCont(&hScatchMemObj, PAGE_SIZE, true /* executable R0 mapping */); + rc = RTR0MemObjAllocCont(&hScatchMemObj, PAGE_SIZE, true /*fExecutable*/); if (RT_FAILURE(rc)) + { + LogRel(("hmR0InitIntel: RTR0MemObjAllocCont(,PAGE_SIZE,true) -> %Rrc\n", rc)); return rc; + } void *pvScatchPage = RTR0MemObjAddress(hScatchMemObj); RTHCPHYS HCPhysScratchPage = RTR0MemObjGetPagePhysAddr(hScatchMemObj, 0); @@ -781,7 +784,7 @@ == (MSR_IA32_FEATURE_CONTROL_VMXON | MSR_IA32_FEATURE_CONTROL_LOCK)) rc = VINF_SUCCESS; else - rc = VERR_VMX_MSR_LOCKED_OR_DISABLED; + rc = VERR_VMX_MSR_LOCKING_FAILED; hmR0FirstRcSetStatus(pFirstRc, rc); } @@ -898,10 +901,9 @@ * @param pvUser The VM handle. * @param pvUserIgnore NULL, ignored. */ -static DECLCALLBACK(int32_t) hmR0EnableAllCpuOnce(void *pvUser, void *pvUserIgnore) +static DECLCALLBACK(int32_t) hmR0EnableAllCpuOnce(void *pvUser) { PVM pVM = (PVM)pvUser; - NOREF(pvUserIgnore); /* * Indicate that we've initialized. @@ -991,7 +993,7 @@ if (ASMAtomicReadBool(&g_HvmR0.fSuspended)) return VERR_HWACCM_SUSPEND_PENDING; - return RTOnce(&g_HvmR0.EnableAllCpusOnce, hmR0EnableAllCpuOnce, pVM, NULL); + return RTOnce(&g_HvmR0.EnableAllCpusOnce, hmR0EnableAllCpuOnce, pVM); } diff -Nru virtualbox-4.1.12-dfsg/src/VBox/VMM/VMMR0/HWSVMR0.cpp virtualbox-4.1.44-dfsg/src/VBox/VMM/VMMR0/HWSVMR0.cpp --- virtualbox-4.1.12-dfsg/src/VBox/VMM/VMMR0/HWSVMR0.cpp 2012-04-02 13:29:08.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/VMM/VMMR0/HWSVMR0.cpp 2015-11-11 15:09:17.000000000 +0000 @@ -929,14 +929,9 @@ pVMCB->guest.u64SFMASK = pCtx->msrSFMASK; /* syscall flag mask */ pVMCB->guest.u64KernelGSBase = pCtx->msrKERNELGSBASE; /* swapgs exchange value */ -#ifdef DEBUG - /* Intercept X86_XCPT_DB if stepping is enabled */ - if ( DBGFIsStepping(pVCpu) - || CPUMIsHyperDebugStateActive(pVCpu)) - pVMCB->ctrl.u32InterceptException |= RT_BIT(X86_XCPT_DB); - else - pVMCB->ctrl.u32InterceptException &= ~RT_BIT(X86_XCPT_DB); -#endif + /* Always intercept #AC and #DB for security reasons. */ + Assert(pVMCB->ctrl.u32InterceptException & RT_BIT(X86_XCPT_AC)); + Assert(pVMCB->ctrl.u32InterceptException & RT_BIT(X86_XCPT_DB)); /* Done. */ pVCpu->hwaccm.s.fContextUseFlags &= ~HWACCM_CHANGED_ALL_GUEST; @@ -1615,6 +1610,27 @@ Log2(("Hardware/software interrupt %d\n", vector)); switch (vector) { + case X86_XCPT_AC: + { + if ( pVCpu->hwaccm.s.Event.fPending + && pVMCB->ctrl.ExitIntInfo.n.u3Type == SVM_EVENT_EXCEPTION + && pVMCB->ctrl.ExitIntInfo.n.u8Vector == X86_XCPT_AC) + { + Assert(pVMCB->ctrl.ExitIntInfo.n.u1Valid); + Log(("Nested #AC - Bad guest\n")); + rc = VERR_EM_GUEST_CPU_HANG; + break; + } + + /* Reinject the exception. */ + Event.au64[0] = 0; + Event.n.u3Type = SVM_EVENT_EXCEPTION; + Event.n.u1Valid = 1; + Event.n.u8Vector = X86_XCPT_AC; + SVMR0InjectEvent(pVCpu, pVMCB, pCtx, &Event); + goto ResumeExecution; + } + case X86_XCPT_DB: { STAM_COUNTER_INC(&pVCpu->hwaccm.s.StatExitGuestDB); @@ -1904,7 +1920,17 @@ if ((errCode & (X86_TRAP_PF_RSVD | X86_TRAP_PF_P)) == (X86_TRAP_PF_RSVD | X86_TRAP_PF_P)) { rc = PGMR0Trap0eHandlerNPMisconfig(pVM, pVCpu, enmShwPagingMode, CPUMCTX2CORE(pCtx), GCPhysFault, errCode); - if (rc == VINF_SUCCESS) + + /* + * If we succeed, resume execution. + * Or, if fail in interpreting the instruction because we couldn't get the guest physical address + * of the page containing the instruction via the guest's page tables (we would invalidate the guest page + * in the host TLB), resume execution which would cause a guest page fault to let the guest handle this + * weird case. See #6043. + */ + if ( rc == VINF_SUCCESS + || rc == VERR_PAGE_TABLE_NOT_PRESENT + || rc == VERR_PAGE_NOT_PRESENT) { Log2(("PGMR0Trap0eHandlerNPMisconfig(,,,%RGp) at %RGv -> resume\n", GCPhysFault, (RTGCPTR)pCtx->rip)); goto ResumeExecution; @@ -1920,7 +1946,13 @@ rc = PGMR0Trap0eHandlerNestedPaging(pVM, pVCpu, enmShwPagingMode, errCode, CPUMCTX2CORE(pCtx), GCPhysFault); Log2(("PGMR0Trap0eHandlerNestedPaging %RGv returned %Rrc\n", (RTGCPTR)pCtx->rip, VBOXSTRICTRC_VAL(rc))); - if (rc == VINF_SUCCESS) + + /* + * Same case as PGMR0Trap0eHandlerNPMisconfig(). See comment above, #6043. + */ + if ( rc == VINF_SUCCESS + || rc == VERR_PAGE_TABLE_NOT_PRESENT + || rc == VERR_PAGE_NOT_PRESENT) { /* We've successfully synced our shadow pages, so let's just continue execution. */ Log2(("Shadow page fault at %RGv cr2=%RGp error code %x\n", (RTGCPTR)pCtx->rip, GCPhysFault, errCode)); STAM_COUNTER_INC(&pVCpu->hwaccm.s.StatExitShadowPF); @@ -2866,6 +2898,11 @@ /* Disable interrupts. */ uOldEFlags = ASMIntDisableFlags(); +#ifdef VBOX_WITH_VMMR0_DISABLE_LAPIC_NMI + RTCPUID idHostCpu = RTMpCpuId(); + CPUMR0SetLApic(pVCpu, idHostCpu); +#endif + CPUMSetHyperESP(pVCpu, VMMGetStackRC(pVCpu)); CPUMSetHyperEIP(pVCpu, pfnHandler); for (int i=(int)cbParam-1;i>=0;i--) diff -Nru virtualbox-4.1.12-dfsg/src/VBox/VMM/VMMR0/HWVMXR0.cpp virtualbox-4.1.44-dfsg/src/VBox/VMM/VMMR0/HWVMXR0.cpp --- virtualbox-4.1.12-dfsg/src/VBox/VMM/VMMR0/HWVMXR0.cpp 2012-04-02 13:29:08.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/VMM/VMMR0/HWVMXR0.cpp 2015-11-11 15:09:17.000000000 +0000 @@ -784,7 +784,7 @@ { uint32_t intInfo2; - intInfo2 = (iGate == X86_XCPT_GP) ? (uint32_t)X86_XCPT_DF : iGate; + intInfo2 = (iGate == X86_XCPT_GP) ? (uint32_t)X86_XCPT_DF : (uint32_t)X86_XCPT_GP; intInfo2 |= (1 << VMX_EXIT_INTERRUPTION_INFO_VALID_SHIFT); intInfo2 |= VMX_EXIT_INTERRUPTION_INFO_ERROR_CODE_VALID; intInfo2 |= (VMX_EXIT_INTERRUPTION_INFO_TYPE_HWEXCPT << VMX_EXIT_INTERRUPTION_INFO_TYPE_SHIFT); @@ -1318,6 +1318,10 @@ && pVM->hwaccm.s.vmx.pRealModeTSS) u32TrapMask |= HWACCM_VMX_TRAP_MASK_REALMODE; + /* Always intercept #AC and #DB for security reasons. */ + Assert(u32TrapMask & RT_BIT(X86_XCPT_AC)); + Assert(u32TrapMask & RT_BIT(X86_XCPT_DB)); + int rc = VMXWriteVMCS(VMX_VMCS_CTRL_EXCEPTION_BITMAP, u32TrapMask); AssertRC(rc); } @@ -1442,39 +1446,6 @@ pCtx->fsHid.Attr.n.u2Dpl = 0; pCtx->gsHid.Attr.n.u2Dpl = 0; pCtx->ssHid.Attr.n.u2Dpl = 0; - - /* The limit must correspond to the 32 bits setting. */ - if (!pCtx->csHid.Attr.n.u1DefBig) - pCtx->csHid.u32Limit &= 0xffff; - if (!pCtx->dsHid.Attr.n.u1DefBig) - pCtx->dsHid.u32Limit &= 0xffff; - if (!pCtx->esHid.Attr.n.u1DefBig) - pCtx->esHid.u32Limit &= 0xffff; - if (!pCtx->fsHid.Attr.n.u1DefBig) - pCtx->fsHid.u32Limit &= 0xffff; - if (!pCtx->gsHid.Attr.n.u1DefBig) - pCtx->gsHid.u32Limit &= 0xffff; - if (!pCtx->ssHid.Attr.n.u1DefBig) - pCtx->ssHid.u32Limit &= 0xffff; - } - else - /* Switching from protected mode to real mode. */ - if ( pVCpu->hwaccm.s.vmx.enmLastSeenGuestMode >= PGMMODE_PROTECTED - && enmGuestMode == PGMMODE_REAL) - { - /* The limit must also be set to 0xffff. */ - pCtx->csHid.u32Limit = 0xffff; - pCtx->dsHid.u32Limit = 0xffff; - pCtx->esHid.u32Limit = 0xffff; - pCtx->fsHid.u32Limit = 0xffff; - pCtx->gsHid.u32Limit = 0xffff; - pCtx->ssHid.u32Limit = 0xffff; - - Assert(pCtx->csHid.u64Base <= 0xfffff); - Assert(pCtx->dsHid.u64Base <= 0xfffff); - Assert(pCtx->esHid.u64Base <= 0xfffff); - Assert(pCtx->fsHid.u64Base <= 0xfffff); - Assert(pCtx->gsHid.u64Base <= 0xfffff); } pVCpu->hwaccm.s.vmx.enmLastSeenGuestMode = enmGuestMode; } @@ -3110,6 +3081,24 @@ break; } + case X86_XCPT_AC: /* Alignment Check. */ + { + if ( pVCpu->hwaccm.s.Event.fPending + && VMX_EXIT_INTERRUPTION_INFO_TYPE(pVCpu->hwaccm.s.Event.intInfo) == VMX_EXIT_INTERRUPTION_INFO_TYPE_HWEXCPT + && VMX_EXIT_INTERRUPTION_INFO_VECTOR(pVCpu->hwaccm.s.Event.intInfo) == X86_XCPT_AC) + { + Assert(VMX_EXIT_INTERRUPTION_INFO_VALID(pVCpu->hwaccm.s.Event.intInfo)); + Log(("Nested #AC - Bad guest\n")); + rc = VERR_EM_GUEST_CPU_HANG; + STAM_PROFILE_ADV_STOP(&pVCpu->hwaccm.s.StatExit2Sub3, y3); + break; + } + rc2 = VMXR0InjectEvent(pVM, pVCpu, pCtx, VMX_VMCS_CTRL_ENTRY_IRQ_INFO_FROM_EXIT_INT_INFO(intInfo), cbInstr, errCode); + AssertRC(rc2); + STAM_PROFILE_ADV_STOP(&pVCpu->hwaccm.s.StatExit2Sub3, y3); + goto ResumeExecution; + } + case X86_XCPT_BP: /* Breakpoint. */ { rc = DBGFRZTrap03Handler(pVM, pVCpu, CPUMCTX2CORE(pCtx)); @@ -3493,7 +3482,6 @@ /* Handle the pagefault trap for the nested shadow table. */ rc = PGMR0Trap0eHandlerNestedPaging(pVM, pVCpu, PGMMODE_EPT, errCode, CPUMCTX2CORE(pCtx), GCPhys); - Log2(("PGMR0Trap0eHandlerNestedPaging %RGv returned %Rrc\n", (RTGCPTR)pCtx->rip, VBOXSTRICTRC_VAL(rc))); if (rc == VINF_SUCCESS) { /* We've successfully synced our shadow pages, so let's just continue execution. */ Log2(("Shadow page fault at %RGv cr2=%RGp error code %x\n", (RTGCPTR)pCtx->rip, exitQualification , errCode)); @@ -3502,10 +3490,13 @@ TRPMResetTrap(pVCpu); goto ResumeExecution; } + /** @todo We probably should handle failure to get the instruction page + * (VERR_PAGE_NOT_PRESENT, VERR_PAGE_TABLE_NOT_PRESENT). See + * @bugref{6043}. */ #ifdef VBOX_STRICT if (rc != VINF_EM_RAW_EMULATE_INSTR) - LogFlow(("PGMTrap0eHandlerNestedPaging failed with %d\n", VBOXSTRICTRC_VAL(rc))); + LogFlow(("PGMTrap0eHandlerNestedPaging at %RGv failed with %Rrc\n", (RTGCPTR)pCtx->rip, VBOXSTRICTRC_VAL(rc))); #endif /* Need to go back to the recompiler to emulate the instruction. */ TRPMResetTrap(pVCpu); @@ -3545,6 +3536,9 @@ Log2(("PGMR0Trap0eHandlerNPMisconfig(,,,%RGp) at %RGv -> resume\n", GCPhys, (RTGCPTR)pCtx->rip)); goto ResumeExecution; } + /** @todo We probably should handle failure to get the instruction page + * (VERR_PAGE_NOT_PRESENT, VERR_PAGE_TABLE_NOT_PRESENT). See + * @bugref{6043}. */ Log2(("PGMR0Trap0eHandlerNPMisconfig(,,,%RGp) at %RGv -> %Rrc\n", GCPhys, (RTGCPTR)pCtx->rip, VBOXSTRICTRC_VAL(rc))); break; @@ -4140,6 +4134,10 @@ case VMX_EXIT_VMWRITE: /* 25 Guest software executed VMWRITE. */ case VMX_EXIT_VMXOFF: /* 26 Guest software executed VMXOFF. */ case VMX_EXIT_VMXON: /* 27 Guest software executed VMXON. */ + case VMX_EXIT_INVEPT: /* 50 Guest software executed INVEPT. */ + case VMX_EXIT_INVVPID: /* 53 Guest software executed INVVPID. */ + case VMX_EXIT_INVPCID: /* 58 Guest software executed INVPCID. */ + case VMX_EXIT_VMFUNC: /* 59 Guest software executed VMFUNC. */ /** @todo inject #UD immediately */ rc = VERR_EM_INTERPRETER; break; @@ -4421,7 +4419,8 @@ Log2(("VMXR0InvalidatePage %RGv\n", GCVirt)); - /* Only relevant if we want to use VPID. + /* Only relevant if we want to use VPID as otherwise every VMX transition + * will flush the TLBs and paging-structure caches. * In the nested paging case we still see such calls, but * can safely ignore them. (e.g. after cr3 updates) */ @@ -4726,6 +4725,11 @@ /* Disable interrupts. */ uOldEFlags = ASMIntDisableFlags(); +#ifdef VBOX_WITH_VMMR0_DISABLE_LAPIC_NMI + RTCPUID idHostCpu = RTMpCpuId(); + CPUMR0SetLApic(pVCpu, idHostCpu); +#endif + pCpu = HWACCMR0GetCurrentCpu(); HCPhysCpuPage = RTR0MemObjGetPagePhysAddr(pCpu->hMemObj, 0); diff -Nru virtualbox-4.1.12-dfsg/src/VBox/VMM/VMMR0/PGMR0.cpp virtualbox-4.1.44-dfsg/src/VBox/VMM/VMMR0/PGMR0.cpp --- virtualbox-4.1.12-dfsg/src/VBox/VMM/VMMR0/PGMR0.cpp 2012-04-02 13:29:08.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/VMM/VMMR0/PGMR0.cpp 2015-11-11 15:09:17.000000000 +0000 @@ -65,7 +65,7 @@ * @remarks Must be called from within the PGM critical section. The caller * must clear the new pages. */ -VMMR0DECL(int) PGMR0PhysAllocateHandyPages(PVM pVM, PVMCPU pVCpu) +VMMR0_INT_DECL(int) PGMR0PhysAllocateHandyPages(PVM pVM, PVMCPU pVCpu) { PGM_LOCK_ASSERT_OWNER_EX(pVM, pVCpu); @@ -168,6 +168,38 @@ /** + * Flushes any changes pending in the handy page array. + * + * It is very important that this gets done when page sharing is enabled. + * + * @returns The following VBox status codes. + * @retval VINF_SUCCESS on success. FF cleared. + * + * @param pVM Pointer to the VM. + * @param pVCpu Pointer to the VMCPU. + * + * @remarks Must be called from within the PGM critical section. + */ +VMMR0_INT_DECL(int) PGMR0PhysFlushHandyPages(PVM pVM, PVMCPU pVCpu) +{ + PGM_LOCK_ASSERT_OWNER_EX(pVM, pVCpu); + + /* + * Try allocate a full set of handy pages. + */ + uint32_t iFirst = pVM->pgm.s.cHandyPages; + AssertReturn(iFirst <= RT_ELEMENTS(pVM->pgm.s.aHandyPages), VERR_PGM_HANDY_PAGE_IPE); + uint32_t cPages = RT_ELEMENTS(pVM->pgm.s.aHandyPages) - iFirst; + if (!cPages) + return VINF_SUCCESS; + int rc = GMMR0AllocateHandyPages(pVM, pVCpu->idCpu, cPages, 0, &pVM->pgm.s.aHandyPages[iFirst]); + + LogFlow(("PGMR0PhysFlushHandyPages: cPages=%d rc=%Rrc\n", cPages, rc)); + return rc; +} + + +/** * Worker function for PGMR3PhysAllocateLargeHandyPage * * @returns The following VBox status codes. @@ -180,7 +212,7 @@ * @remarks Must be called from within the PGM critical section. The caller * must clear the new pages. */ -VMMR0DECL(int) PGMR0PhysAllocateLargeHandyPage(PVM pVM, PVMCPU pVCpu) +VMMR0_INT_DECL(int) PGMR0PhysAllocateLargeHandyPage(PVM pVM, PVMCPU pVCpu) { PGM_LOCK_ASSERT_OWNER_EX(pVM, pVCpu); Assert(!pVM->pgm.s.cLargeHandyPages); diff -Nru virtualbox-4.1.12-dfsg/src/VBox/VMM/VMMR0/PGMR0SharedPage.cpp virtualbox-4.1.44-dfsg/src/VBox/VMM/VMMR0/PGMR0SharedPage.cpp --- virtualbox-4.1.12-dfsg/src/VBox/VMM/VMMR0/PGMR0SharedPage.cpp 2012-04-02 13:29:08.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/VMM/VMMR0/PGMR0SharedPage.cpp 2015-11-11 15:09:17.000000000 +0000 @@ -101,19 +101,20 @@ Log(("PGMR0SharedModuleCheck: shared page gst virt=%RGv phys=%RGp host %RHp->%RHp\n", GCPtrPage, PageDesc.GCPhys, PGM_PAGE_GET_HCPHYS(pPage), PageDesc.HCPhys)); + /* Page was either replaced by an existing shared + version of it or converted into a read-only shared + page, so, clear all references. */ + bool fFlush = false; + rc = pgmPoolTrackUpdateGCPhys(pVM, PageDesc.GCPhys, pPage, true /* clear the entries */, &fFlush); + Assert( rc == VINF_SUCCESS + || ( VMCPU_FF_ISSET(pVCpu, VMCPU_FF_PGM_SYNC_CR3) + && (pVCpu->pgm.s.fSyncFlags & PGM_SYNC_CLEAR_PGM_POOL))); + if (rc == VINF_SUCCESS) + fFlushTLBs |= fFlush; + fFlushRemTLBs = true; + if (PageDesc.HCPhys != PGM_PAGE_GET_HCPHYS(pPage)) { - /* Page was replaced by an existing shared version - of it; clear all references first. */ - bool fFlush = false; - rc = pgmPoolTrackUpdateGCPhys(pVM, PageDesc.GCPhys, pPage, true /* clear the entries */, &fFlush); - Assert( rc == VINF_SUCCESS - || ( VMCPU_FF_ISSET(pVCpu, VMCPU_FF_PGM_SYNC_CR3) - && (pVCpu->pgm.s.fSyncFlags & PGM_SYNC_CLEAR_PGM_POOL))); - if (rc == VINF_SUCCESS) - fFlushTLBs |= fFlush; - fFlushRemTLBs = true; - /* Update the physical address and page id now. */ PGM_PAGE_SET_HCPHYS(pVM, pPage, PageDesc.HCPhys); PGM_PAGE_SET_PAGEID(pVM, pPage, PageDesc.idPage); diff -Nru virtualbox-4.1.12-dfsg/src/VBox/VMM/VMMR0/VMMR0.cpp virtualbox-4.1.44-dfsg/src/VBox/VMM/VMMR0/VMMR0.cpp --- virtualbox-4.1.12-dfsg/src/VBox/VMM/VMMR0/VMMR0.cpp 2012-04-02 13:29:09.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/VMM/VMMR0/VMMR0.cpp 2015-11-11 15:09:17.000000000 +0000 @@ -143,24 +143,39 @@ /* * Bail out. */ + LogRel(("ModuleInit: CPUMR0ModuleInit -> %Rrc\n", rc)); #ifdef VBOX_WITH_PCI_PASSTHROUGH PciRawR0Term(); #endif } + else + LogRel(("ModuleInit: PciRawR0Init -> %Rrc\n", rc)); IntNetR0Term(); } + else + LogRel(("ModuleInit: IntNetR0Init -> %Rrc\n", rc)); #ifdef VBOX_WITH_2X_4GB_ADDR_SPACE PGMR0DynMapTerm(); #endif } + else + LogRel(("ModuleInit: PGMR0DynMapInit -> %Rrc\n", rc)); PGMDeregisterStringFormatTypes(); } + else + LogRel(("ModuleInit: PGMRegisterStringFormatTypes -> %Rrc\n", rc)); HWACCMR0Term(); } + else + LogRel(("ModuleInit: HWACCMR0Init -> %Rrc\n", rc)); GMMR0Term(); } + else + LogRel(("ModuleInit: GMMR0Init -> %Rrc\n", rc)); GVMMR0Term(); } + else + LogRel(("ModuleInit: GVMMR0Init -> %Rrc\n", rc)); LogFlow(("ModuleInit: failed %Rrc\n", rc)); return rc; @@ -331,7 +346,7 @@ /** - * Terminates the R0 driver for a particular VM instance. + * Terminates the R0 bits for a particular VM instance. * * This is normally called by ring-3 as part of the VM termination process, but * may alternatively be called during the support driver session cleanup when @@ -349,11 +364,14 @@ PciRawR0TermVM(pVM); #endif + /* * Tell GVMM what we're up to and check that we only do this once. */ if (GVMMR0DoingTermVM(pVM, pGVM)) { + /** @todo I wish to call PGMR0PhysFlushHandyPages(pVM, &pVM->aCpus[idCpu]) + * here to make sure we don't leak any shared pages if we crash... */ #ifdef VBOX_WITH_2X_4GB_ADDR_SPACE PGMR0DynMapTermVM(pVM); #endif @@ -621,7 +639,7 @@ RTThreadPreemptDisable(&PreemptState); RTCPUID idHostCpu = RTMpCpuId(); #ifdef VBOX_WITH_VMMR0_DISABLE_LAPIC_NMI - CPUMR0SetLApic(pVM, idHostCpu); + CPUMR0SetLApic(pVCpu, idHostCpu); #endif ASMAtomicWriteU32(&pVCpu->idHostCpu, idHostCpu); if (pVM->vmm.s.fUsePeriodicPreemptionTimers) @@ -933,7 +951,7 @@ #ifdef VBOX_WITH_VMMR0_DISABLE_LAPIC_NMI RTCPUID idHostCpu = RTMpCpuId(); - CPUMR0SetLApic(pVM, idHostCpu); + CPUMR0SetLApic(&pVM->aCpus[0], idHostCpu); #endif /* We might need to disable VT-x if the active switcher turns off paging. */ @@ -959,6 +977,11 @@ return VERR_INVALID_CPU_ID; return PGMR0PhysAllocateHandyPages(pVM, &pVM->aCpus[idCpu]); + case VMMR0_DO_PGM_FLUSH_HANDY_PAGES: + if (idCpu == NIL_VMCPUID) + return VERR_INVALID_CPU_ID; + return PGMR0PhysFlushHandyPages(pVM, &pVM->aCpus[idCpu]); + case VMMR0_DO_PGM_ALLOCATE_LARGE_HANDY_PAGE: if (idCpu == NIL_VMCPUID) return VERR_INVALID_CPU_ID; diff -Nru virtualbox-4.1.12-dfsg/src/VBox/VMM/VMMR3/CFGM.cpp virtualbox-4.1.44-dfsg/src/VBox/VMM/VMMR3/CFGM.cpp --- virtualbox-4.1.12-dfsg/src/VBox/VMM/VMMR3/CFGM.cpp 2012-04-02 13:29:09.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/VMM/VMMR3/CFGM.cpp 2015-11-11 15:09:18.000000000 +0000 @@ -3049,8 +3049,23 @@ switch (CFGMR3GetValueType(pLeaf)) { case CFGMVALUETYPE_INTEGER: - pHlp->pfnPrintf(pHlp, " %-*s = %#018llx (%lld)\n", (int)cchMax, pLeaf->szName, pLeaf->Value.Integer.u64, pLeaf->Value.Integer.u64); + { + pHlp->pfnPrintf(pHlp, " %-*s = %#018llx (%'lld", (int)cchMax, pLeaf->szName, pLeaf->Value.Integer.u64, pLeaf->Value.Integer.u64); + if ( ( pLeaf->cchName >= 4 + && !RTStrCmp(&pLeaf->szName[pLeaf->cchName - 4], "Size")) + || ( pLeaf->cchName >= 2 + && !RTStrNCmp(pLeaf->szName, "cb", 2)) ) + { + if (pLeaf->Value.Integer.u64 > _2G) + pHlp->pfnPrintf(pHlp, ", %'lld GB", pLeaf->Value.Integer.u64 / _1G); + else if (pLeaf->Value.Integer.u64 > _2M) + pHlp->pfnPrintf(pHlp, ", %'lld MB", pLeaf->Value.Integer.u64 / _1M); + else if (pLeaf->Value.Integer.u64 > _2K) + pHlp->pfnPrintf(pHlp, ", %'lld KB", pLeaf->Value.Integer.u64 / _1K); + } + pHlp->pfnPrintf(pHlp, ")\n"); break; + } case CFGMVALUETYPE_STRING: pHlp->pfnPrintf(pHlp, " %-*s = \"%s\" (cb=%zu)\n", (int)cchMax, pLeaf->szName, pLeaf->Value.String.psz, pLeaf->Value.String.cb); diff -Nru virtualbox-4.1.12-dfsg/src/VBox/VMM/VMMR3/CPUM.cpp virtualbox-4.1.44-dfsg/src/VBox/VMM/VMMR3/CPUM.cpp --- virtualbox-4.1.12-dfsg/src/VBox/VMM/VMMR3/CPUM.cpp 2012-04-02 13:29:09.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/VMM/VMMR3/CPUM.cpp 2015-11-11 15:09:18.000000000 +0000 @@ -941,20 +941,6 @@ rc = CFGMR3QueryBoolDef(pCpumCfg, "EnableHVP", &fEnable, false); AssertRCReturn(rc, rc); if (fEnable) CPUMSetGuestCpuIdFeature(pVM, CPUMCPUIDFEATURE_HVP); - /* - * Log the cpuid and we're good. - */ - bool fOldBuffered = RTLogRelSetBuffering(true /*fBuffered*/); - RTCPUSET OnlineSet; - LogRel(("Logical host processors: %u present, %u max, %u online, online mask: %016RX64\n", - (unsigned)RTMpGetPresentCount(), (unsigned)RTMpGetCount(), (unsigned)RTMpGetOnlineCount(), - RTCpuSetToU64(RTMpGetOnlineSet(&OnlineSet)) )); - LogRel(("************************* CPUID dump ************************\n")); - DBGFR3Info(pVM, "cpuid", "verbose", DBGFR3InfoLogRelHlp()); - LogRel(("\n")); - DBGFR3InfoLog(pVM, "cpuid", "verbose"); /* macro */ - RTLogRelSetBuffering(fOldBuffered); - LogRel(("******************** End of CPUID dump **********************\n")); #undef PORTABLE_DISABLE_FEATURE_BIT #undef PORTABLE_CLEAR_BITS_WHEN @@ -3991,3 +3977,26 @@ pVCpu->cpum.s.fRemEntered = false; } + +/** + * Called when the ring-0 init phases comleted. + * + * @param pVM Pointer to the VM. + */ +VMMR3DECL(void) CPUMR3LogCpuIds(PVM pVM) +{ + /* + * Log the cpuid. + */ + bool fOldBuffered = RTLogRelSetBuffering(true /*fBuffered*/); + RTCPUSET OnlineSet; + LogRel(("Logical host processors: %u present, %u max, %u online, online mask: %016RX64\n", + (unsigned)RTMpGetPresentCount(), (unsigned)RTMpGetCount(), (unsigned)RTMpGetOnlineCount(), + RTCpuSetToU64(RTMpGetOnlineSet(&OnlineSet)) )); + LogRel(("************************* CPUID dump ************************\n")); + DBGFR3Info(pVM, "cpuid", "verbose", DBGFR3InfoLogRelHlp()); + LogRel(("\n")); + DBGFR3InfoLog(pVM, "cpuid", "verbose"); /* macro */ + RTLogRelSetBuffering(fOldBuffered); + LogRel(("******************** End of CPUID dump **********************\n")); +} diff -Nru virtualbox-4.1.12-dfsg/src/VBox/VMM/VMMR3/EM.cpp virtualbox-4.1.44-dfsg/src/VBox/VMM/VMMR3/EM.cpp --- virtualbox-4.1.12-dfsg/src/VBox/VMM/VMMR3/EM.cpp 2012-04-02 13:29:09.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/VMM/VMMR3/EM.cpp 2015-11-11 15:09:18.000000000 +0000 @@ -1606,6 +1606,7 @@ /* * Interrupts. */ + bool fWakeupPending = false; if ( !VM_FF_ISPENDING(pVM, VM_FF_PGM_NO_MEMORY) && !VMCPU_FF_ISPENDING(pVCpu, VMCPU_FF_INHIBIT_INTERRUPTS) && (!rc || rc >= VINF_EM_RESCHEDULE_HWACC) @@ -1623,6 +1624,8 @@ rcIrq = rc2; #endif UPDATE_RC(); + /* Reschedule required: We must not miss the wakeup below! */ + fWakeupPending = true; } /** @todo really ugly; if we entered the hlt state when exiting the recompiler and an interrupt was pending, we previously got stuck in the halted state. */ else if (REMR3QueryPendingInterrupt(pVM, pVCpu) != REM_NO_PENDING_IRQ) @@ -1653,7 +1656,8 @@ /* * EMT Rendezvous (must be serviced before termination). */ - if (VM_FF_ISPENDING(pVM, VM_FF_EMT_RENDEZVOUS)) + if ( !fWakeupPending /* don't miss the wakeup from EMSTATE_HALTED! */ + && VM_FF_ISPENDING(pVM, VM_FF_EMT_RENDEZVOUS)) { rc2 = VMMR3EmtRendezvousFF(pVM, pVCpu); UPDATE_RC(); @@ -1672,7 +1676,8 @@ /* * State change request (cleared by vmR3SetStateLocked). */ - if (VM_FF_ISPENDING(pVM, VM_FF_CHECK_VM_STATE)) + if ( !fWakeupPending /* don't miss the wakeup from EMSTATE_HALTED! */ + && VM_FF_ISPENDING(pVM, VM_FF_CHECK_VM_STATE)) { VMSTATE enmState = VMR3GetState(pVM); switch (enmState) diff -Nru virtualbox-4.1.12-dfsg/src/VBox/VMM/VMMR3/HWACCM.cpp virtualbox-4.1.44-dfsg/src/VBox/VMM/VMMR3/HWACCM.cpp --- virtualbox-4.1.12-dfsg/src/VBox/VMM/VMMR3/HWACCM.cpp 2012-04-02 13:29:09.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/VMM/VMMR3/HWACCM.cpp 2015-11-11 15:09:18.000000000 +0000 @@ -1813,8 +1813,8 @@ PHWACCMTPRPATCH pPatch = (PHWACCMTPRPATCH)RTAvloU32Get(&pVM->hwaccm.s.PatchTree, (AVLOU32KEY)pCtx->eip); if (pPatch) return VINF_SUCCESS; - - Assert(pVM->hwaccm.s.cPatches < RT_ELEMENTS(pVM->hwaccm.s.aPatches)); + if (pVM->hwaccm.s.cPatches >= RT_ELEMENTS(pVM->hwaccm.s.aPatches)) + return VINF_SUCCESS; int rc = EMInterpretDisasOne(pVM, pVCpu, CPUMCTX2CORE(pCtx), pDis, &cbOp); AssertRC(rc); @@ -1905,7 +1905,7 @@ else { pPatch->enmType = HWACCMTPRINSTR_READ; - pPatch->uDstOperand = pDis->param1.base.reg_gen; + pPatch->uDstOperand = uMmioReg; rc = PGMPhysSimpleWriteGCPtr(pVCpu, pCtx->rip, aVMMCall, sizeof(aVMMCall)); AssertRC(rc); @@ -1979,6 +1979,8 @@ Log(("hwaccmR3PatchTprInstr: already patched %RGv\n", pCtx->rip)); return VINF_SUCCESS; } + if (pVM->hwaccm.s.cPatches >= RT_ELEMENTS(pVM->hwaccm.s.aPatches)) + return VINF_SUCCESS; Log(("hwaccmR3PatchTprInstr %RGv\n", pCtx->rip)); @@ -2275,6 +2277,12 @@ */ if ( ( pCtx->cs != (pCtx->csHid.u64Base >> 4) && pCtx->csHid.u64Base != 0xffff0000 /* we can deal with the BIOS code as it's also mapped into the lower region. */) + || (pCtx->csHid.u32Limit != 0xffff) + || (pCtx->dsHid.u32Limit != 0xffff) + || (pCtx->esHid.u32Limit != 0xffff) + || (pCtx->ssHid.u32Limit != 0xffff) + || (pCtx->fsHid.u32Limit != 0xffff) + || (pCtx->gsHid.u32Limit != 0xffff) || pCtx->ds != (pCtx->dsHid.u64Base >> 4) || pCtx->es != (pCtx->esHid.u64Base >> 4) || pCtx->fs != (pCtx->fsHid.u64Base >> 4) diff -Nru virtualbox-4.1.12-dfsg/src/VBox/VMM/VMMR3/PATM.cpp virtualbox-4.1.44-dfsg/src/VBox/VMM/VMMR3/PATM.cpp --- virtualbox-4.1.12-dfsg/src/VBox/VMM/VMMR3/PATM.cpp 2012-04-02 13:29:09.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/VMM/VMMR3/PATM.cpp 2015-11-11 15:09:18.000000000 +0000 @@ -3301,9 +3301,9 @@ for (i=0;icCount;i++) { - if (pPatchPage->aPatch[i]) + if (pPatchPage->papPatch[i]) { - pPatchToJmp = pPatchPage->aPatch[i]; + pPatchToJmp = pPatchPage->papPatch[i]; if ( (pPatchToJmp->flags & PATMFL_DUPLICATE_FUNCTION) && pPatchToJmp->uState == PATCH_ENABLED) @@ -3457,9 +3457,9 @@ for (i=0;icCount;i++) { - if (pPatchPage->aPatch[i]) + if (pPatchPage->papPatch[i]) { - PPATCHINFO pPatch = pPatchPage->aPatch[i]; + PPATCHINFO pPatch = pPatchPage->papPatch[i]; if ( (pPatch->flags & PATMFL_DUPLICATE_FUNCTION) && pPatch->uState == PATCH_ENABLED) @@ -4535,19 +4535,20 @@ if (pPatchPage->cCount == pPatchPage->cMaxPatches) { uint32_t cMaxPatchesOld = pPatchPage->cMaxPatches; - PPATCHINFO *paPatchOld = pPatchPage->aPatch; + PPATCHINFO *papPatchOld = pPatchPage->papPatch; pPatchPage->cMaxPatches += PATMPATCHPAGE_PREALLOC_INCREMENT; - rc = MMHyperAlloc(pVM, sizeof(PPATCHINFO)*pPatchPage->cMaxPatches, 0, MM_TAG_PATM_PATCH, (void **)&pPatchPage->aPatch); + rc = MMHyperAlloc(pVM, sizeof(pPatchPage->papPatch[0]) * pPatchPage->cMaxPatches, 0, MM_TAG_PATM_PATCH, + (void **)&pPatchPage->papPatch); if (RT_FAILURE(rc)) { Log(("Out of memory!!!!\n")); return VERR_NO_MEMORY; } - memcpy(pPatchPage->aPatch, paPatchOld, cMaxPatchesOld*sizeof(PPATCHINFO)); - MMHyperFree(pVM, paPatchOld); + memcpy(pPatchPage->papPatch, papPatchOld, cMaxPatchesOld * sizeof(pPatchPage->papPatch[0])); + MMHyperFree(pVM, papPatchOld); } - pPatchPage->aPatch[pPatchPage->cCount] = pPatch; + pPatchPage->papPatch[pPatchPage->cCount] = pPatch; pPatchPage->cCount++; } else @@ -4564,14 +4565,15 @@ pPatchPage->cCount = 1; pPatchPage->cMaxPatches = PATMPATCHPAGE_PREALLOC_INCREMENT; - rc = MMHyperAlloc(pVM, sizeof(PPATCHINFO)*PATMPATCHPAGE_PREALLOC_INCREMENT, 0, MM_TAG_PATM_PATCH, (void **)&pPatchPage->aPatch); + rc = MMHyperAlloc(pVM, sizeof(pPatchPage->papPatch[0]) * PATMPATCHPAGE_PREALLOC_INCREMENT, 0, MM_TAG_PATM_PATCH, + (void **)&pPatchPage->papPatch); if (RT_FAILURE(rc)) { Log(("Out of memory!!!!\n")); MMHyperFree(pVM, pPatchPage); return VERR_NO_MEMORY; } - pPatchPage->aPatch[0] = pPatch; + pPatchPage->papPatch[0] = pPatch; fInserted = RTAvloU32Insert(&pVM->patm.s.PatchLookupTreeHC->PatchTreeByPage, &pPatchPage->Core); Assert(fInserted); @@ -4595,7 +4597,9 @@ pPatchPage->pLowestAddrGC = (RTRCPTR)pGuestToPatchRec->Core.Key; offset = pPatchPage->pLowestAddrGC & PAGE_OFFSET_MASK; - /* If we're too close to the page boundary, then make sure an instruction from the previous page doesn't cross the boundary itself. */ + /* If we're too close to the page boundary, then make sure an + instruction from the previous page doesn't cross the + boundary itself. */ if (offset && offset < MAX_INSTR_SIZE) { /* Get the closest guest instruction (from above) */ @@ -4662,22 +4666,19 @@ uint32_t i; /* Used by multiple patches */ - for (i=0;icCount;i++) + for (i = 0; i < pPatchPage->cCount; i++) { - if (pPatchPage->aPatch[i] == pPatch) + if (pPatchPage->papPatch[i] == pPatch) { - pPatchPage->aPatch[i] = 0; - break; + /* close the gap between the remaining pointers. */ + uint32_t cNew = --pPatchPage->cCount; + if (i < cNew) + pPatchPage->papPatch[i] = pPatchPage->papPatch[cNew]; + pPatchPage->papPatch[cNew] = NULL; + return VINF_SUCCESS; } } - /* close the gap between the remaining pointers. */ - if (i < pPatchPage->cCount - 1) - { - memcpy(&pPatchPage->aPatch[i], &pPatchPage->aPatch[i+1], sizeof(PPATCHINFO)*(pPatchPage->cCount - (i+1))); - } - AssertMsg(i < pPatchPage->cCount, ("Unable to find patch %RHv in page %RRv\n", pPatch, pPage)); - - pPatchPage->cCount--; + AssertMsgFailed(("Unable to find patch %RHv in page %RRv\n", pPatch, pPage)); } else { @@ -4689,8 +4690,8 @@ pPatchNode = (PPATMPATCHPAGE)RTAvloU32Remove(&pVM->patm.s.PatchLookupTreeHC->PatchTreeByPage, pPage); Assert(pPatchNode && pPatchNode == pPatchPage); - Assert(pPatchPage->aPatch); - rc = MMHyperFree(pVM, pPatchPage->aPatch); + Assert(pPatchPage->papPatch); + rc = MMHyperFree(pVM, pPatchPage->papPatch); AssertRC(rc); rc = MMHyperFree(pVM, pPatchPage); AssertRC(rc); @@ -4812,13 +4813,13 @@ for (i=0;icCount;i++) { - if (pPatchPage->aPatch[i]) + if (pPatchPage->papPatch[i]) { - PPATCHINFO pPatch = pPatchPage->aPatch[i]; + PPATCHINFO pPatch = pPatchPage->papPatch[i]; RTRCPTR pPatchInstrGC; //unused: bool fForceBreak = false; - Assert(pPatchPage->aPatch[i]->flags & PATMFL_CODE_MONITORED); + Assert(pPatchPage->papPatch[i]->flags & PATMFL_CODE_MONITORED); /** @todo inefficient and includes redundant checks for multiple pages. */ for (uint32_t j=0; jcCount;i++) { - PPATCHINFO pPatch = pPatchPage->aPatch[i]; + PPATCHINFO pPatch = pPatchPage->papPatch[i]; if (pPatch->cInvalidWrites > PATM_MAX_INVALID_WRITES) { @@ -4961,9 +4962,9 @@ /* From top to bottom as the array is modified by PATMR3MarkDirtyPatch. */ for (i=(int)pPatchPage->cCount-1;i>=0;i--) { - if (pPatchPage->aPatch[i]) + if (pPatchPage->papPatch[i]) { - PPATCHINFO pPatch = pPatchPage->aPatch[i]; + PPATCHINFO pPatch = pPatchPage->papPatch[i]; Log(("PATMR3FlushPage %RRv remove patch at %RRv\n", addr, pPatch->pPrivInstrGC)); PATMR3MarkDirtyPatch(pVM, pPatch); diff -Nru virtualbox-4.1.12-dfsg/src/VBox/VMM/VMMR3/PDMAsyncCompletionFileNormal.cpp virtualbox-4.1.44-dfsg/src/VBox/VMM/VMMR3/PDMAsyncCompletionFileNormal.cpp --- virtualbox-4.1.12-dfsg/src/VBox/VMM/VMMR3/PDMAsyncCompletionFileNormal.cpp 2012-04-02 13:29:09.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/VMM/VMMR3/PDMAsyncCompletionFileNormal.cpp 2015-11-11 15:09:19.000000000 +0000 @@ -697,6 +697,9 @@ RTFOFF offStart, size_t cbRange, PPDMACTASKFILE pTask) { + LogFlowFunc(("pAioMgr=%#p pEndpoint=%#p offStart=%RTfoff cbRange=%zu pTask=%#p\n", + pAioMgr, pEndpoint, offStart, cbRange, pTask)); + AssertMsg(!pdmacFileAioMgrNormalIsRangeLocked(pEndpoint, offStart, cbRange, pTask), ("Range is already locked offStart=%RTfoff cbRange=%u\n", offStart, cbRange)); @@ -728,6 +731,9 @@ { PPDMACTASKFILE pTasksWaitingHead; + LogFlowFunc(("pAioMgr=%#p pEndpoint=%#p pRangeLock=%#p\n", + pAioMgr, pEndpoint, pRangeLock)); + AssertPtr(pRangeLock); Assert(pRangeLock->cRefs == 1); @@ -1006,6 +1012,7 @@ rc = RTFileAioReqPrepareFlush(hReq, pEndpoint->hFile, pCurr); if (RT_FAILURE(rc)) { + LogRel(("AIOMgr: Preparing flush failed with %Rrc, disabling async flushes\n", rc)); pEndpoint->fAsyncFlushSupported = false; pdmacFileAioMgrNormalRequestFree(pAioMgr, hReq); rc = VINF_SUCCESS; /* Fake success */ @@ -1357,10 +1364,16 @@ if (pTask->enmTransferType == PDMACTASKFILETRANSFER_FLUSH) { - LogFlow(("Async flushes are not supported for this endpoint, disabling\n")); + LogRel(("AIOMgr: Flush failed with %Rrc, disabling async flushes\n", rc)); pEndpoint->fAsyncFlushSupported = false; AssertMsg(pEndpoint->pFlushReq == pTask, ("Failed flush request doesn't match active one\n")); /* The other method will take over now. */ + + pEndpoint->pFlushReq = NULL; + /* Call completion callback */ + LogFlow(("Flush task=%#p completed with %Rrc\n", pTask, VINF_SUCCESS)); + pTask->pfnCompleted(pTask, pTask->pvUser, VINF_SUCCESS); + pdmacFileTaskFree(pEndpoint, pTask); } else { @@ -1499,8 +1512,8 @@ /* Write it now. */ pTask->fPrefetch = false; - size_t cbToTransfer = RT_ALIGN_Z(pTask->DataSeg.cbSeg, 512); RTFOFF offStart = pTask->Off & ~(RTFOFF)(512-1); + size_t cbToTransfer = RT_ALIGN_Z(pTask->DataSeg.cbSeg + (pTask->Off - offStart), 512); /* Grow the file if needed. */ if (RT_UNLIKELY((uint64_t)(pTask->Off + pTask->DataSeg.cbSeg) > pEndpoint->cbFile)) diff -Nru virtualbox-4.1.12-dfsg/src/VBox/VMM/VMMR3/PDM.cpp virtualbox-4.1.44-dfsg/src/VBox/VMM/VMMR3/PDM.cpp --- virtualbox-4.1.12-dfsg/src/VBox/VMM/VMMR3/PDM.cpp 2012-04-02 13:29:09.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/VMM/VMMR3/PDM.cpp 2015-11-11 15:09:19.000000000 +0000 @@ -1428,13 +1428,17 @@ { unsigned const cAsyncStart = Async.cAsync; + if (pDevIns->pReg->fFlags & PDM_DEVREG_FLAGS_FIRST_RESET_NOTIFICATION) + pdmR3ResetDev(pDevIns, &Async); + if (Async.cAsync == cAsyncStart) for (PPDMLUN pLun = pDevIns->Internal.s.pLunsR3; pLun; pLun = pLun->pNext) for (PPDMDRVINS pDrvIns = pLun->pTop; pDrvIns; pDrvIns = pDrvIns->Internal.s.pDown) if (!pdmR3ResetDrv(pDrvIns, &Async, pDevIns->pReg->szName, pDevIns->iInstance, pLun->iLun)) break; - if (Async.cAsync == cAsyncStart) + if ( Async.cAsync == cAsyncStart + && !(pDevIns->pReg->fFlags & PDM_DEVREG_FLAGS_FIRST_RESET_NOTIFICATION)) pdmR3ResetDev(pDevIns, &Async); } diff -Nru virtualbox-4.1.12-dfsg/src/VBox/VMM/VMMR3/PDMDriver.cpp virtualbox-4.1.44-dfsg/src/VBox/VMM/VMMR3/PDMDriver.cpp --- virtualbox-4.1.12-dfsg/src/VBox/VMM/VMMR3/PDMDriver.cpp 2012-04-02 13:29:09.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/VMM/VMMR3/PDMDriver.cpp 2015-11-11 15:09:19.000000000 +0000 @@ -394,7 +394,9 @@ /* * Gather the attributes used in the matching process. */ - const char *pszDevice = pLun->pDevIns->Internal.s.pDevR3->pReg->szName; + const char *pszDevice = pLun->pDevIns + ? pLun->pDevIns->Internal.s.pDevR3->pReg->szName + : pLun->pUsbIns->Internal.s.pUsbDev->pReg->szName; char szLun[32]; RTStrPrintf(szLun, sizeof(szLun), "%u", pLun->iLun); const char *pszAbove = pDrvAbove ? pDrvAbove->Internal.s.pDrv->pReg->szName : ""; @@ -685,7 +687,7 @@ rc = MMHyperAlloc(pVM, cb, 64, MM_TAG_PDM_DRIVER, (void **)&pNew); else rc = MMR3HeapAllocZEx(pVM, MM_TAG_PDM_DRIVER, cb, (void **)&pNew); - if (pNew) + if (RT_SUCCESS(rc)) { /* * Initialize the instance structure (declaration order). @@ -774,10 +776,7 @@ } } else - { - AssertMsgFailed(("Failed to allocate %d bytes for instantiating driver '%s'\n", cb, pszName)); - rc = VERR_NO_MEMORY; - } + AssertMsgFailed(("Failed to allocate %d bytes for instantiating driver '%s'! rc=%Rrc\n", cb, pszName, rc)); } else AssertMsgFailed(("Failed to create Config node! rc=%Rrc\n", rc)); @@ -829,9 +828,12 @@ * Check that we actually can detach this instance. * The requirement is that the driver/device above has a detach method. */ - if (pDrvIns->Internal.s.pUp + if ( pDrvIns->Internal.s.pUp ? !pDrvIns->Internal.s.pUp->pReg->pfnDetach - : !pDrvIns->Internal.s.pLun->pDevIns->pReg->pfnDetach) + : pDrvIns->Internal.s.pLun->pDevIns + ? !pDrvIns->Internal.s.pLun->pDevIns->pReg->pfnDetach + : !pDrvIns->Internal.s.pLun->pUsbIns->pReg->pfnDriverDetach + ) { AssertMsgFailed(("Cannot detach driver instance because the driver/device above doesn't support it!\n")); return VERR_PDM_DRIVER_DETACH_NOT_POSSIBLE; @@ -898,8 +900,19 @@ /* device parent */ Assert(pLun->pTop == pCur); pLun->pTop = NULL; - if (!(fFlags & PDM_TACH_FLAGS_NO_CALLBACKS) && pLun->pDevIns->pReg->pfnDetach) - pLun->pDevIns->pReg->pfnDetach(pLun->pDevIns, pLun->iLun, fFlags); + if (!(fFlags & PDM_TACH_FLAGS_NO_CALLBACKS)) + { + if (pLun->pDevIns) + { + if (pLun->pDevIns->pReg->pfnDetach) + pLun->pDevIns->pReg->pfnDetach(pLun->pDevIns, pLun->iLun, fFlags); + } + else + { + if (pLun->pUsbIns->pReg->pfnDriverDetach) + pLun->pUsbIns->pReg->pfnDriverDetach(pLun->pUsbIns, pLun->iLun); + } + } } /* diff -Nru virtualbox-4.1.12-dfsg/src/VBox/VMM/VMMR3/PDMLdr.cpp virtualbox-4.1.44-dfsg/src/VBox/VMM/VMMR3/PDMLdr.cpp --- virtualbox-4.1.12-dfsg/src/VBox/VMM/VMMR3/PDMLdr.cpp 2012-04-02 13:29:09.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/VMM/VMMR3/PDMLdr.cpp 2015-11-11 15:09:19.000000000 +0000 @@ -399,7 +399,7 @@ ) { /* Search for the symbol. */ - int rc = RTLdrGetSymbolEx(pCur->hLdrMod, pCur->pvBits, pCur->ImageBase, pszSymbol, pValue); + int rc = RTLdrGetSymbolEx(pCur->hLdrMod, pCur->pvBits, pCur->ImageBase, UINT32_MAX, pszSymbol, pValue); if (RT_SUCCESS(rc)) { AssertMsg(*pValue - pCur->ImageBase < RTLdrSize(pCur->hLdrMod), @@ -707,7 +707,7 @@ && !strcmp(pModule->szName, pszModule)) { RTUINTPTR Value = 0; - int rc = RTLdrGetSymbolEx(pModule->hLdrMod, pModule->pvBits, pModule->ImageBase, pszSymbol, &Value); + int rc = RTLdrGetSymbolEx(pModule->hLdrMod, pModule->pvBits, pModule->ImageBase, UINT32_MAX, pszSymbol, &Value); RTCritSectLeave(&pUVM->pdm.s.ListCritSect); if (RT_SUCCESS(rc)) { @@ -876,7 +876,7 @@ && !strcmp(pModule->szName, pszModule)) { RTUINTPTR Value; - int rc = RTLdrGetSymbolEx(pModule->hLdrMod, pModule->pvBits, pModule->ImageBase, pszSymbol, &Value); + int rc = RTLdrGetSymbolEx(pModule->hLdrMod, pModule->pvBits, pModule->ImageBase, UINT32_MAX, pszSymbol, &Value); RTCritSectLeave(&pUVM->pdm.s.ListCritSect); if (RT_SUCCESS(rc)) { @@ -1623,8 +1623,8 @@ } else { - RTUINTPTR Value; - rc = RTLdrGetSymbolEx(pModule->hLdrMod, pModule->pvBits, pModule->ImageBase, szSymbol, &Value); + RTLDRADDR Value; + rc = RTLdrGetSymbolEx(pModule->hLdrMod, pModule->pvBits, pModule->ImageBase, UINT32_MAX, szSymbol, &Value); AssertMsgRCBreak(rc, ("Couldn't find symbol '%s' in module '%s'\n", szSymbol, pModule->szName)); PRTRCPTR pValue = (PRTRCPTR)((uintptr_t)pvInterface + offInterface); diff -Nru virtualbox-4.1.12-dfsg/src/VBox/VMM/VMMR3/PGM.cpp virtualbox-4.1.44-dfsg/src/VBox/VMM/VMMR3/PGM.cpp --- virtualbox-4.1.12-dfsg/src/VBox/VMM/VMMR3/PGM.cpp 2012-04-02 13:29:09.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/VMM/VMMR3/PGM.cpp 2015-11-11 15:09:19.000000000 +0000 @@ -1296,12 +1296,15 @@ } /* - * Check for PCI pass-through. + * Check for PCI pass-through and other configurables. */ rc = CFGMR3QueryBoolDef(pCfgPGM, "PciPassThrough", &pVM->pgm.s.fPciPassthrough, false); AssertMsgRCReturn(rc, ("Configuration error: Failed to query integer \"PciPassThrough\", rc=%Rrc.\n", rc), rc); AssertLogRelReturn(!pVM->pgm.s.fPciPassthrough || pVM->pgm.s.fRamPreAlloc, VERR_INVALID_PARAMETER); + rc = CFGMR3QueryBoolDef(CFGMR3GetRoot(pVM), "PageFusionAllowed", &pVM->pgm.s.fPageFusionAllowed, false); + AssertLogRelRCReturn(rc, rc); + #ifdef VBOX_WITH_STATISTICS /* * Allocate memory for the statistics before someone tries to use them. diff -Nru virtualbox-4.1.12-dfsg/src/VBox/VMM/VMMR3/PGMPhys.cpp virtualbox-4.1.44-dfsg/src/VBox/VMM/VMMR3/PGMPhys.cpp --- virtualbox-4.1.12-dfsg/src/VBox/VMM/VMMR3/PGMPhys.cpp 2012-04-02 13:29:09.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/VMM/VMMR3/PGMPhys.cpp 2015-11-11 15:09:19.000000000 +0000 @@ -1982,9 +1982,17 @@ AssertRC(rc); #ifdef VBOX_WITH_PAGE_SHARING - /* Clear all registered shared modules. */ + /* + * Clear all registered shared modules. + */ rc = GMMR3ResetSharedModules(pVM); AssertRC(rc); + + /* + * Flush the handy pages updates to make sure no shared pages are hiding + * in there. (No unlikely if the VM shuts down, apparently.) + */ + rc = VMMR3CallR0(pVM, VMMR0_DO_PGM_FLUSH_HANDY_PAGES, 0, NULL); #endif /* @@ -2110,7 +2118,7 @@ AssertLogRelMsgReturnStmt( PGM_PAGE_GET_TYPE(pPage) == PGMPAGETYPE_RAM || PGM_PAGE_GET_TYPE(pPage) == PGMPAGETYPE_MMIO, ("%RGp-%RGp (MMIO/%s): %RGp is not a RAM or MMIO page - type=%d desc=%s\n", - GCPhys, GCPhysLast, pszDesc, PGM_PAGE_GET_TYPE(pPage), pRam->pszDesc), + GCPhys, GCPhysLast, pszDesc, pRam->GCPhys, PGM_PAGE_GET_TYPE(pPage), pRam->pszDesc), pgmUnlock(pVM), VERR_PGM_RAM_CONFLICT); pPage++; diff -Nru virtualbox-4.1.12-dfsg/src/VBox/VMM/VMMR3/PGMSavedState.cpp virtualbox-4.1.44-dfsg/src/VBox/VMM/VMMR3/PGMSavedState.cpp --- virtualbox-4.1.12-dfsg/src/VBox/VMM/VMMR3/PGMSavedState.cpp 2012-04-02 13:29:10.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/VMM/VMMR3/PGMSavedState.cpp 2015-11-11 15:09:19.000000000 +0000 @@ -2685,10 +2685,13 @@ AssertLogRelMsgReturn(PGM_PAGE_GET_STATE(pPage) == PGM_PAGE_STATE_ALLOCATED, ("GCPhys=%RGp %R[pgmpage]\n", GCPhys, pPage), VERR_PGM_UNEXPECTED_PAGE_STATE); - /* If this is a ROM page, we must clear it and not try - free it... */ + /* + * If this is a ROM page, we must clear it and not try to free it. + * If the VM is using RamPreAlloc, don't free the page either (see @bugref{6318}). + */ if ( PGM_PAGE_GET_TYPE(pPage) == PGMPAGETYPE_ROM - || PGM_PAGE_GET_TYPE(pPage) == PGMPAGETYPE_ROM_SHADOW) + || PGM_PAGE_GET_TYPE(pPage) == PGMPAGETYPE_ROM_SHADOW + || pVM->pgm.s.fRamPreAlloc) { PGMPAGEMAPLOCK PgMpLck; void *pvDstPage; diff -Nru virtualbox-4.1.12-dfsg/src/VBox/VMM/VMMR3/PGMSharedPage.cpp virtualbox-4.1.44-dfsg/src/VBox/VMM/VMMR3/PGMSharedPage.cpp --- virtualbox-4.1.12-dfsg/src/VBox/VMM/VMMR3/PGMSharedPage.cpp 2012-04-02 13:29:10.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/VMM/VMMR3/PGMSharedPage.cpp 2015-11-11 15:09:19.000000000 +0000 @@ -74,6 +74,8 @@ * Sanity check. */ AssertReturn(cRegions <= VMMDEVSHAREDREGIONDESC_MAX, VERR_INVALID_PARAMETER); + if (!pVM->pgm.s.fPageFusionAllowed) + return VERR_NOT_SUPPORTED; /* * Allocate and initialize a GMM request. @@ -145,8 +147,10 @@ VMMR3DECL(int) PGMR3SharedModuleUnregister(PVM pVM, char *pszModuleName, char *pszVersion, RTGCPTR GCBaseAddr, uint32_t cbModule) { Log(("PGMR3SharedModuleUnregister name=%s version=%s base=%RGv size=%x\n", pszModuleName, pszVersion, GCBaseAddr, cbModule)); - AssertMsgReturn(cbModule > 0 && cbModule < _1G, ("%u\n", cbModule), VERR_OUT_OF_RANGE); + AssertMsgReturn(cbModule > 0 && cbModule < _1G, ("%u\n", cbModule), VERR_OUT_OF_RANGE); + if (!pVM->pgm.s.fPageFusionAllowed) + return VERR_NOT_SUPPORTED; /* * Forward the request to GMM (ring-0). @@ -247,6 +251,9 @@ */ VMMR3DECL(int) PGMR3SharedModuleCheckAll(PVM pVM) { + if (!pVM->pgm.s.fPageFusionAllowed) + return VERR_NOT_SUPPORTED; + /* Queue the actual registration as we are under the IOM lock right now. Perform this operation on the way out. */ return VMR3ReqCallNoWait(pVM, VMCPUID_ANY_QUEUE, (PFNRT)pgmR3CheckSharedModulesHelper, 2, pVM, VMMGetCpuId(pVM)); } diff -Nru virtualbox-4.1.12-dfsg/src/VBox/VMM/VMMR3/VMM.cpp virtualbox-4.1.44-dfsg/src/VBox/VMM/VMMR3/VMM.cpp --- virtualbox-4.1.12-dfsg/src/VBox/VMM/VMMR3/VMM.cpp 2012-04-02 13:29:10.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/VMM/VMMR3/VMM.cpp 2015-11-11 15:09:19.000000000 +0000 @@ -681,6 +681,11 @@ && HWACCMR3IsVmxPreemptionTimerUsed(pVM)) pVM->vmm.s.fUsePeriodicPreemptionTimers = false; LogRel(("VMM: fUsePeriodicPreemptionTimers=%RTbool\n", pVM->vmm.s.fUsePeriodicPreemptionTimers)); + + /* + * CPUM's post-initialization (print CPUIDs). + */ + CPUMR3LogCpuIds(pVM); break; } diff -Nru virtualbox-4.1.12-dfsg/src/VBox/VMM/VMMRC/PATMRC.cpp virtualbox-4.1.44-dfsg/src/VBox/VMM/VMMRC/PATMRC.cpp --- virtualbox-4.1.12-dfsg/src/VBox/VMM/VMMRC/PATMRC.cpp 2012-04-02 13:29:10.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/VMM/VMMRC/PATMRC.cpp 2015-11-11 15:09:20.000000000 +0000 @@ -121,7 +121,7 @@ } STAM_COUNTER_INC(&pVM->patm.s.StatPatchWriteInterpretedFailed); } - R3PTRTYPE(PPATCHINFO) *paPatch = (R3PTRTYPE(PPATCHINFO) *)MMHyperR3ToRC(pVM, pPatchPage->aPatch); + R3PTRTYPE(PPATCHINFO) *paPatch = (R3PTRTYPE(PPATCHINFO) *)MMHyperR3ToRC(pVM, pPatchPage->papPatch); /* Increase the invalid write counter for each patch that's registered for that page. */ for (uint32_t i=0;icCount;i++) diff -Nru virtualbox-4.1.12-dfsg/src/VBox/VMM/VMMSwitcher/AMD64andLegacy.mac virtualbox-4.1.44-dfsg/src/VBox/VMM/VMMSwitcher/AMD64andLegacy.mac --- virtualbox-4.1.12-dfsg/src/VBox/VMM/VMMSwitcher/AMD64andLegacy.mac 2012-04-02 13:29:10.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/VMM/VMMSwitcher/AMD64andLegacy.mac 2015-11-11 15:09:20.000000000 +0000 @@ -100,8 +100,15 @@ %ifdef VBOX_WITH_VMMR0_DISABLE_LAPIC_NMI ; Unblock Local APIC NMI vectors ; Do this here to ensure the host CS is already restored - mov ecx, [rdx + CPUM.fApicDisVectors] - mov r8, [rdx + CPUM.pvApicBase] + mov r8d, [rdx + CPUM.offCPUMCPU0] + mov ecx, [rdx + r8 + CPUMCPU.fApicDisVectors] + test ecx, ecx + jz gth64_apic_done + cmp byte [rdx + r8 + CPUMCPU.fX2Apic], 1 + je gth64_x2apic + + ; Legacy APIC mode: + mov r8, [rdx + r8 + CPUMCPU.pvApicBase] shr ecx, 1 jnc gth64_nolint0 and dword [r8 + APIC_REG_LVT_LINT0], ~APIC_REG_LVT_MASKED @@ -118,6 +125,43 @@ jnc gth64_notherm and dword [r8 + APIC_REG_LVT_THMR], ~APIC_REG_LVT_MASKED gth64_notherm: + jmp gth64_apic_done + + ; X2 APIC mode: +gth64_x2apic: + mov r8, rax ; save rax + mov r10, rcx + shr r10d, 1 + jnc gth64_x2_nolint0 + mov ecx, MSR_IA32_X2APIC_START + (APIC_REG_LVT_LINT0 >> 4) + rdmsr + and eax, ~APIC_REG_LVT_MASKED + wrmsr +gth64_x2_nolint0: + shr r10d, 1 + jnc gth64_x2_nolint1 + mov ecx, MSR_IA32_X2APIC_START + (APIC_REG_LVT_LINT1 >> 4) + rdmsr + and eax, ~APIC_REG_LVT_MASKED + wrmsr +gth64_x2_nolint1: + shr r10d, 1 + jnc gth64_x2_nopc + mov ecx, MSR_IA32_X2APIC_START + (APIC_REG_LVT_PC >> 4) + rdmsr + and eax, ~APIC_REG_LVT_MASKED + wrmsr +gth64_x2_nopc: + shr r10d, 1 + jnc gth64_x2_notherm + mov ecx, MSR_IA32_X2APIC_START + (APIC_REG_LVT_THMR >> 4) + rdmsr + and eax, ~APIC_REG_LVT_MASKED + wrmsr +gth64_x2_notherm: + mov rax, r8 ; restore rax + +gth64_apic_done: %endif %ifdef VBOX_WITH_STATISTICS @@ -279,10 +323,12 @@ %ifdef VBOX_WITH_VMMR0_DISABLE_LAPIC_NMI ; Block Local APIC NMI vectors - mov rbx, [rdx + CPUM.pvApicBase] + cmp byte [rdx + r8 + CPUMCPU.fX2Apic], 1 + je htg_x2apic + mov rbx, [rdx + r8 + CPUMCPU.pvApicBase] or rbx, rbx - jz htg_noapic - xor edi, edi + jz htg_apic_done + xor edi, edi ; fApicDisVectors mov eax, [rbx + APIC_REG_LVT_LINT0] mov ecx, eax and ecx, (APIC_REG_LVT_MASKED | APIC_REG_LVT_MODE_MASK) @@ -327,8 +373,63 @@ mov [rbx + APIC_REG_LVT_THMR], eax mov eax, [rbx + APIC_REG_LVT_THMR] ; write completion htg_notherm: - mov [rdx + CPUM.fApicDisVectors], edi -htg_noapic: + mov [rdx + r8 + CPUMCPU.fApicDisVectors], edi + jmp htg_apic_done + + ; X2APIC? +htg_x2apic: + mov r15, rdx ; save rdx + xor edi, edi ; fApicDisVectors + + mov ecx, MSR_IA32_X2APIC_START + (APIC_REG_LVT_LINT0 >> 4) + rdmsr + mov ebx, eax + and ebx, (APIC_REG_LVT_MASKED | APIC_REG_LVT_MODE_MASK) + cmp ebx, APIC_REG_LVT_MODE_NMI + jne htg_x2_nolint0 + or edi, 0x01 + or eax, APIC_REG_LVT_MASKED + wrmsr +htg_x2_nolint0: + mov ecx, MSR_IA32_X2APIC_START + (APIC_REG_LVT_LINT1 >> 4) + rdmsr + mov ebx, eax + and ebx, (APIC_REG_LVT_MASKED | APIC_REG_LVT_MODE_MASK) + cmp ebx, APIC_REG_LVT_MODE_NMI + jne htg_x2_nolint1 + or edi, 0x02 + or eax, APIC_REG_LVT_MASKED + wrmsr +htg_x2_nolint1: + mov ecx, MSR_IA32_X2APIC_START + (APIC_REG_LVT_PC >> 4) + rdmsr + mov ebx, eax + and ebx, (APIC_REG_LVT_MASKED | APIC_REG_LVT_MODE_MASK) + cmp ebx, APIC_REG_LVT_MODE_NMI + jne htg_x2_nopc + or edi, 0x04 + or eax, APIC_REG_LVT_MASKED + wrmsr +htg_x2_nopc: + mov ecx, MSR_IA32_X2APIC_START + (APIC_REG_VERSION >> 4) + rdmsr + shr eax, 16 + cmp al, 5 + jb htg_x2_notherm + mov ecx, MSR_IA32_X2APIC_START + (APIC_REG_LVT_THMR >> 4) + rdmsr + mov ebx, eax + and ebx, (APIC_REG_LVT_MASKED | APIC_REG_LVT_MODE_MASK) + cmp ebx, APIC_REG_LVT_MODE_NMI + jne htg_x2_notherm + or edi, 0x08 + or eax, APIC_REG_LVT_MASKED + wrmsr +htg_x2_notherm: + mov rdx, r15 + mov [rdx + r8 + CPUMCPU.fApicDisVectors], edi +htg_apic_done: + %endif FIXUP FIX_NO_SYSENTER_JMP, 0, htg_no_sysenter - NAME(Start) ; this will insert a jmp htg_no_sysenter if host doesn't use sysenter. diff -Nru virtualbox-4.1.12-dfsg/src/VBox/VMM/VMMSwitcher/LegacyandAMD64.mac virtualbox-4.1.44-dfsg/src/VBox/VMM/VMMSwitcher/LegacyandAMD64.mac --- virtualbox-4.1.12-dfsg/src/VBox/VMM/VMMSwitcher/LegacyandAMD64.mac 2012-04-02 13:29:10.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/VMM/VMMSwitcher/LegacyandAMD64.mac 2015-11-11 15:09:20.000000000 +0000 @@ -86,10 +86,15 @@ call NAME(vmmR0HostToGuestAsm) %ifdef VBOX_WITH_VMMR0_DISABLE_LAPIC_NMI - CPUM_FROM_CPUMCPU(edx) ; Restore blocked Local APIC NMI vectors - mov ecx, [edx + CPUM.fApicDisVectors] - mov edx, [edx + CPUM.pvApicBase] + ; Do this here to ensure the host CS is already restored + mov ecx, [edx + CPUMCPU.fApicDisVectors] + test ecx, ecx + jz gth_apic_done + cmp byte [edx + CPUMCPU.fX2Apic], 1 + je gth_x2apic + + mov edx, [edx + CPUMCPU.pvApicBase] shr ecx, 1 jnc gth_nolint0 and dword [edx + APIC_REG_LVT_LINT0], ~APIC_REG_LVT_MASKED @@ -106,6 +111,46 @@ jnc gth_notherm and dword [edx + APIC_REG_LVT_THMR], ~APIC_REG_LVT_MASKED gth_notherm: + jmp gth_apic_done + +gth_x2apic: + push eax ; save eax + push ebx ; save it for fApicDisVectors + push edx ; save edx just in case. + mov ebx, ecx ; ebx = fApicDisVectors, ecx free for MSR use + shr ebx, 1 + jnc gth_x2_nolint0 + mov ecx, MSR_IA32_X2APIC_START + (APIC_REG_LVT_LINT0 >> 4) + rdmsr + and eax, ~APIC_REG_LVT_MASKED + wrmsr +gth_x2_nolint0: + shr ebx, 1 + jnc gth_x2_nolint1 + mov ecx, MSR_IA32_X2APIC_START + (APIC_REG_LVT_LINT1 >> 4) + rdmsr + and eax, ~APIC_REG_LVT_MASKED + wrmsr +gth_x2_nolint1: + shr ebx, 1 + jnc gth_x2_nopc + mov ecx, MSR_IA32_X2APIC_START + (APIC_REG_LVT_PC >> 4) + rdmsr + and eax, ~APIC_REG_LVT_MASKED + wrmsr +gth_x2_nopc: + shr ebx, 1 + jnc gth_x2_notherm + mov ecx, MSR_IA32_X2APIC_START + (APIC_REG_LVT_THMR >> 4) + rdmsr + and eax, ~APIC_REG_LVT_MASKED + wrmsr +gth_x2_notherm: + pop edx + pop ebx + pop eax + +gth_apic_done: %endif ; restore original flags @@ -161,7 +206,7 @@ mov [edx + CPUMCPU.Host.edi], edi mov [edx + CPUMCPU.Host.esi], esi mov [edx + CPUMCPU.Host.esp], esp - mov [edx + CPUMCPU.Host.ebp], ebp + mov [edx + CPUMCPU.Host.ebp], ebp ; offCpumCpu! ; selectors. mov [edx + CPUMCPU.Host.ds], ds mov [edx + CPUMCPU.Host.es], es @@ -179,10 +224,12 @@ %endif %ifdef VBOX_WITH_VMMR0_DISABLE_LAPIC_NMI - CPUM_FROM_CPUMCPU_WITH_OFFSET edx, ebp - mov ebx, [edx + CPUM.pvApicBase] + cmp byte [edx + CPUMCPU.pvApicBase], 1 + je htg_x2apic + + mov ebx, [edx + CPUMCPU.pvApicBase] or ebx, ebx - jz htg_noapic + jz htg_apic_done mov eax, [ebx + APIC_REG_LVT_LINT0] mov ecx, eax and ecx, (APIC_REG_LVT_MASKED | APIC_REG_LVT_MODE_MASK) @@ -227,9 +274,62 @@ mov [ebx + APIC_REG_LVT_THMR], eax mov eax, [ebx + APIC_REG_LVT_THMR] ; write completion htg_notherm: - mov [edx + CPUM.fApicDisVectors], edi -htg_noapic: - CPUMCPU_FROM_CPUM_WITH_OFFSET edx, ebp + mov [edx + CPUMCPU.fApicDisVectors], edi + jmp htg_apic_done + +htg_x2apic: + mov esi, edx ; Save edx. + xor edi, edi ; fApicDisVectors + + mov ecx, MSR_IA32_X2APIC_START + (APIC_REG_LVT_LINT0 >> 4) + rdmsr + mov ebx, eax + and ebx, (APIC_REG_LVT_MASKED | APIC_REG_LVT_MODE_MASK) + cmp ebx, APIC_REG_LVT_MODE_NMI + jne htg_x2_nolint0 + or edi, 0x01 + or eax, APIC_REG_LVT_MASKED + wrmsr +htg_x2_nolint0: + mov ecx, MSR_IA32_X2APIC_START + (APIC_REG_LVT_LINT1 >> 4) + rdmsr + mov ebx, eax + and ebx, (APIC_REG_LVT_MASKED | APIC_REG_LVT_MODE_MASK) + cmp ebx, APIC_REG_LVT_MODE_NMI + jne htg_x2_nolint1 + or edi, 0x02 + or eax, APIC_REG_LVT_MASKED + wrmsr +htg_x2_nolint1: + mov ecx, MSR_IA32_X2APIC_START + (APIC_REG_LVT_PC >> 4) + rdmsr + mov ebx, eax + and ebx, (APIC_REG_LVT_MASKED | APIC_REG_LVT_MODE_MASK) + cmp ebx, APIC_REG_LVT_MODE_NMI + jne htg_x2_nopc + or edi, 0x04 + or eax, APIC_REG_LVT_MASKED + wrmsr +htg_x2_nopc: + mov ecx, MSR_IA32_X2APIC_START + (APIC_REG_VERSION >> 4) + rdmsr + shr eax, 16 + cmp al, 5 + jb htg_x2_notherm + mov ecx, MSR_IA32_X2APIC_START + (APIC_REG_LVT_THMR >> 4) + rdmsr + mov ebx, eax + and ebx, (APIC_REG_LVT_MASKED | APIC_REG_LVT_MODE_MASK) + cmp ebx, APIC_REG_LVT_MODE_NMI + jne htg_x2_notherm + or edi, 0x08 + or eax, APIC_REG_LVT_MASKED + wrmsr +htg_x2_notherm: + mov edx, esi ; Restore edx. + mov [edx + CPUMCPU.fApicDisVectors], edi + +htg_apic_done: %endif ; control registers. diff -Nru virtualbox-4.1.12-dfsg/src/VBox/VMM/VMMSwitcher/PAEand32Bit.mac virtualbox-4.1.44-dfsg/src/VBox/VMM/VMMSwitcher/PAEand32Bit.mac --- virtualbox-4.1.12-dfsg/src/VBox/VMM/VMMSwitcher/PAEand32Bit.mac 2012-04-02 13:29:10.000000000 +0000 +++ virtualbox-4.1.44-dfsg/src/VBox/VMM/VMMSwitcher/PAEand32Bit.mac 2015-11-11 15:09:20.000000000 +0000 @@ -81,11 +81,15 @@ call NAME(vmmR0HostToGuestAsm) %ifdef VBOX_WITH_VMMR0_DISABLE_LAPIC_NMI - CPUM_FROM_CPUMCPU(edx) ; Restore blocked Local APIC NMI vectors ; Do this here to ensure the host CS is already restored - mov ecx, [edx + CPUM.fApicDisVectors] - mov edx, [edx + CPUM.pvApicBase] + mov ecx, [edx + CPUMCPU.fApicDisVectors] + test ecx, ecx + jz gth_apic_done + cmp byte [edx + CPUMCPU.fX2Apic], 1 + je gth_x2apic + + mov edx, [edx + CPUMCPU.pvApicBase] shr ecx, 1 jnc gth_nolint0 and dword [edx + APIC_REG_LVT_LINT0], ~APIC_REG_LVT_MASKED @@ -102,7 +106,47 @@ jnc gth_notherm and dword [edx + APIC_REG_LVT_THMR], ~APIC_REG_LVT_MASKED gth_notherm: -%endif + jmp gth_apic_done + +gth_x2apic: + push eax ; save eax + push ebx ; save it for fApicDisVectors + push edx ; save edx just in case. + mov ebx, ecx ; ebx = fApicDisVectors, ecx free for MSR use + shr ebx, 1 + jnc gth_x2_nolint0 + mov ecx, MSR_IA32_X2APIC_START + (APIC_REG_LVT_LINT0 >> 4) + rdmsr + and eax, ~APIC_REG_LVT_MASKED + wrmsr +gth_x2_nolint0: + shr ebx, 1 + jnc gth_x2_nolint1 + mov ecx, MSR_IA32_X2APIC_START + (APIC_REG_LVT_LINT1 >> 4) + rdmsr + and eax, ~APIC_REG_LVT_MASKED + wrmsr +gth_x2_nolint1: + shr ebx, 1 + jnc gth_x2_nopc + mov ecx, MSR_IA32_X2APIC_START + (APIC_REG_LVT_PC >> 4) + rdmsr + and eax, ~APIC_REG_LVT_MASKED + wrmsr +gth_x2_nopc: + shr ebx, 1 + jnc gth_x2_notherm + mov ecx, MSR_IA32_X2APIC_START + (APIC_REG_LVT_THMR >> 4) + rdmsr + and eax, ~APIC_REG_LVT_MASKED + wrmsr +gth_x2_notherm: + pop edx + pop ebx + pop eax + +gth_apic_done: +%endif ; VBOX_WITH_VMMR0_DISABLE_LAPIC_NMI %ifdef VBOX_WITH_STATISTICS ; @@ -162,14 +206,15 @@ pop dword [edx + CPUMCPU.Host.eflags] ; Block Local APIC NMI vectors - xor edi, edi - %ifdef VBOX_WITH_VMMR0_DISABLE_LAPIC_NMI - mov esi, edx - CPUM_FROM_CPUMCPU(edx) - mov ebx, [edx + CPUM.pvApicBase] + cmp byte [edx + CPUMCPU.pvApicBase], 1 + je htg_x2apic + + mov ebx, [edx + CPUMCPU.pvApicBase] or ebx, ebx - jz htg_noapic + jz htg_apic_done + xor edi, edi ; fApicDisVectors + mov eax, [ebx + APIC_REG_LVT_LINT0] mov ecx, eax and ecx, (APIC_REG_LVT_MASKED | APIC_REG_LVT_MODE_MASK) @@ -214,10 +259,63 @@ mov [ebx + APIC_REG_LVT_THMR], eax mov eax, [ebx + APIC_REG_LVT_THMR] ; write completion htg_notherm: - mov [edx + CPUM.fApicDisVectors], edi -htg_noapic: - mov edx, esi -%endif + mov [edx + CPUMCPU.fApicDisVectors], edi + jmp htg_apic_done + +htg_x2apic: + mov esi, edx ; Save edx. + xor edi, edi ; fApicDisVectors + + mov ecx, MSR_IA32_X2APIC_START + (APIC_REG_LVT_LINT0 >> 4) + rdmsr + mov ebx, eax + and ebx, (APIC_REG_LVT_MASKED | APIC_REG_LVT_MODE_MASK) + cmp ebx, APIC_REG_LVT_MODE_NMI + jne htg_x2_nolint0 + or edi, 0x01 + or eax, APIC_REG_LVT_MASKED + wrmsr +htg_x2_nolint0: + mov ecx, MSR_IA32_X2APIC_START + (APIC_REG_LVT_LINT1 >> 4) + rdmsr + mov ebx, eax + and ebx, (APIC_REG_LVT_MASKED | APIC_REG_LVT_MODE_MASK) + cmp ebx, APIC_REG_LVT_MODE_NMI + jne htg_x2_nolint1 + or edi, 0x02 + or eax, APIC_REG_LVT_MASKED + wrmsr +htg_x2_nolint1: + mov ecx, MSR_IA32_X2APIC_START + (APIC_REG_LVT_PC >> 4) + rdmsr + mov ebx, eax + and ebx, (APIC_REG_LVT_MASKED | APIC_REG_LVT_MODE_MASK) + cmp ebx, APIC_REG_LVT_MODE_NMI + jne htg_x2_nopc + or edi, 0x04 + or eax, APIC_REG_LVT_MASKED + wrmsr +htg_x2_nopc: + mov ecx, MSR_IA32_X2APIC_START + (APIC_REG_VERSION >> 4) + rdmsr + shr eax, 16 + cmp al, 5 + jb htg_x2_notherm + mov ecx, MSR_IA32_X2APIC_START + (APIC_REG_LVT_THMR >> 4) + rdmsr + mov ebx, eax + and ebx, (APIC_REG_LVT_MASKED | APIC_REG_LVT_MODE_MASK) + cmp ebx, APIC_REG_LVT_MODE_NMI + jne htg_x2_notherm + or edi, 0x08 + or eax, APIC_REG_LVT_MASKED + wrmsr +htg_x2_notherm: + mov edx, esi ; Restore edx. + mov [edx + CPUMCPU.fApicDisVectors], edi + +htg_apic_done: +%endif ; VBOX_WITH_VMMR0_DISABLE_LAPIC_NMI FIXUP FIX_NO_SYSENTER_JMP, 0, htg_no_sysenter - NAME(Start) ; this will insert a jmp htg_no_sysenter if host doesn't use sysenter. ; save MSR_IA32_SYSENTER_CS register.